diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..8f8c513 --- /dev/null +++ b/readme.md @@ -0,0 +1,69 @@ +This is a working Goldeneye 007 decompilation! + +## Setup +The only requirements for Ubuntu 16.04 and 18.04 should be +``` +sudo apt install binutils-mips-linux-gnu make +``` +Make sure you cloned the repo with git otherwise it won't build!! + +Place a USA rom in project root named +``` +baserom.u.z64 +``` +followed by +``` +./extract_baserom.u.sh && make +``` +For J support also place a baserom.j.z64 in root and run: +``` +./extract_baserom.u.sh && ./extract_diff.j.sh && make VERSION=JP +``` + +If you are upgrading from an old repo, run: +``` +./clean_baserom.sh && ./extract_baserom.u.sh && make clean && make +``` + +The extract and clean scripts support switches: +``` +name_baserom.sh files +name_baserom.sh images +``` +to do just one or the other, default is both + +## Project Structure + +``` +goldeneye_src +├── assets: game assets +│   ├── font: font data +│   ├── images: image data +│   │   └── split: split image data +│   ├── music: music data +│   ├── obseg: animation data +│   │   ├── bg: bg data +│   │   ├── brief: briefing data +│   │   ├── chr: c model data +│   │   ├── gun: g model data +│   │   ├── prop: p model data +│   │   ├── setup: setup data +│   │   ├── stan: stan data +│   │   └── text: text data +│   └── ramrom: demo data +├── bin: files that haven't been touched +├── build: output directory +├── ge007_libultra: to be merged with libreultra +├── include: header files +├── lib: SDK library code +├── notes: documentation +├── src: C source code for game +│   ├── game: core ge specific code 0x7f000000 range +│   ├── libultra: currently used libultra.s +│   └── inflate: statically linked initial decompression code +└── tools: build tools +``` + +This decompilation was only made possible thanks to many awesome 00 Agents who will be revealed only if they wish. + +GE and PD documentation made by Zoinkity diff --git a/rename_sym.sh b/rename_sym.sh new file mode 100644 index 0000000..20ed834 --- /dev/null +++ b/rename_sym.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +if [ "$#" -ne "2" ]; +then + echo "usage: $0 old_name new_name" + exit 1 +fi + +echo "Replace $1 with $2?" +read +grep -rl "$1" asm/*.s asm/code/*.s asm/libultra/*.s asm/game/*.s asm/rarezip/*.s src/*.c src/*.h include/*.h undefined_syms.txt sym_bss.txt notes/ge007.u.yaml include/globals.inc | xargs sed -i "s/\b$1\b/$2/g" diff --git a/rsp/rspboot.s b/rsp/rspboot.s new file mode 100644 index 0000000..2b65de6 --- /dev/null +++ b/rsp/rspboot.s @@ -0,0 +1,69 @@ +.rsp + +.create CODE_FILE, 0x04001000 + +// rspboot microcode by SGI +// this initalizes the RSP and gets it ready to load the next microcode. + + j rdpcheck + addi at, zero, 0x0fc0 +ucodeload: + lw v0, 0x0010(at) + addi v1, zero, 0x0f7f + addi a3, zero, 0x1080 + mtc0 a3, SP_MEM_ADDR + mtc0 v0, SP_DRAM_ADDR + mtc0 v1, SP_RD_LEN +ucodeloadloop: + mfc0 a0, SP_DMA_BUSY + bne a0, zero, ucodeloadloop + nop + jal checkyield + nop + jr a3 + mtc0 zero, SP_SEMAPHORE +checkyield: + mfc0 t0, SP_STATUS + andi t0, t0, 0x0080 + bne t0, zero, Yield + nop + jr ra +Yield: + mtc0 zero, SP_SEMAPHORE + ori t0, zero, 0x5200 + mtc0 t0, SP_STATUS + break + nop +rdpcheck: + lw v0, 0x0004(at) + andi v0, v0, 0x0002 + beq v0, zero, rdpwait + nop + jal checkyield + nop + mfc0 v0, DPC_STATUS + andi v0, v0, 0x0100 + bgtz v0, checkyield + nop +rdpwait: + lw v0, 0x0018(at) + lw v1, 0x001c(at) + addi v1, v1, -0x0001 +DMEMLoad: + mfc0 s8, SP_DMA_FULL + bne s8, zero, DMEMLoad + nop + mtc0 zero, SP_MEM_ADDR + mtc0 v0, SP_DRAM_ADDR + mtc0 v1, SP_RD_LEN +dmaloop: + mfc0 a0, SP_DMA_BUSY + bne a0, zero, dmaloop + nop + jal checkyield + nop + j ucodeload + nop + nop + +.close // CODE_FILE diff --git a/src/_start.s b/src/_start.s new file mode 100644 index 0000000..b0149f3 --- /dev/null +++ b/src/_start.s @@ -0,0 +1,40 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.section .text, "ax" +.include "macros.inc" + +# zoinkity note: +# 1000 80000400 memset (blanks) 8005D2E0 - 8008E360, sets SP->803AB410, JR to 80000450 +# technically, this is used in bootcode and used prior to TLB registration + +glabel _start +/* 001000 80000400 3C088006 */ lui $t0, %hi(_bssSegmentStart) +/* 001004 80000404 3C090003 */ lui $t1, %hi(_bssSegmentSize) # lui $t1, 3 +/* 001008 80000408 2508D2E0 */ addiu $t0, %lo(_bssSegmentStart) # addiu $t0, $t0, -0x2d20 +/* 00100C 8000040C 35291080 */ ori $t1, %lo(_bssSegmentSize) # ori $t1, $t1, 0x1080 +.L80000410: +/* 001010 80000410 2129FFF8 */ addi $t1, $t1, -8 +/* 001014 80000414 AD000000 */ sw $zero, ($t0) +/* 001018 80000418 AD000004 */ sw $zero, 4($t0) +/* 00101C 8000041C 1520FFFC */ bnez $t1, .L80000410 +/* 001020 80000420 21080008 */ addi $t0, $t0, 8 +/* 001024 80000424 3C0A8000 */ lui $t2, %hi(_boot_function) +/* 001028 80000428 3C1D803B */ lui $sp, %hi(sp_rmon) # $sp, 0x803b +/* 00102C 8000042C 254A0450 */ addiu $t2, %lo(_boot_function) # addiu $t2, $t2, 0x450 +/* 001030 80000430 01400008 */ jr $t2 +/* 001034 80000434 27BDB410 */ addiu $sp, %lo(sp_rmon) # addiu $sp, $sp, -0x4bf0 +/* 001038 80000438 00000000 */ nop +/* 00103C 8000043C 00000000 */ nop +/* 001040 80000440 00000000 */ nop +/* 001044 80000444 00000000 */ nop +/* 001048 80000448 00000000 */ nop +/* 00104C 8000044C 00000000 */ nop + +#hack to get us to first function of file boot0 using vaddr of 0x80000450 + _boot_function: + +.section .data +.section .rodata +.section .bss diff --git a/src/aspboot.s b/src/aspboot.s new file mode 100644 index 0000000..1b859ef --- /dev/null +++ b/src/aspboot.s @@ -0,0 +1,20 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + +.section .text, "ax" +glabel aspMainTextStart +.incbin "/bin/aspboot.text.bin" +glabel aspMainTextEnd + +.section .data +glabel aspMainDataStart +.incbin "/bin/aspboot.data.bin" +glabel aspMainDataEnd + diff --git a/src/audi.c b/src/audi.c new file mode 100644 index 0000000..ddc9459 --- /dev/null +++ b/src/audi.c @@ -0,0 +1,1370 @@ +//FIXME i still need data/bss love. +#include "ultra64.h" +#include "sched.h" +#include "audi.h" + +/** + * @file audi.c + * This file contains audio code. + */ + +u32 D_800230F0 = 0; +u32 audFrameCt = 0; +u32 nextDMA = 0; +u32 curAcmdList = 0; +u64 D_80023100[]= { + {0x000600001900}, + {0x0000000000A0}, + {0x2666FFFFD99A}, + {0x000000000000}, + {0x000000000000}, + {0x00A000000140}, + {0x2666FFFFD99A}, + {0x2B8400000000}, + {0x000000002500}, + {0x032000000A00}, + {0x4000FFFFC000}, + {0x11EB00000000}, + {0x000000003000}, + {0x0C80000015E0}, + {0x4000FFFFC000}, + {0x11EB00000000}, + {0x000000003500}, + {0x0D20000012C0}, + {0x2000FFFFE000}, + {0x000000000000}, + {0x000000004000}, + {0x000000001720}, + {0x32C8FFFFCD38}, + {0x00000000017C}, + {0x000A00004500}, +}; + +s32 firstTime = 1; + + +/*bss needs fixing */ +s32 dword_CODE_bss_8005E4B0[2]; +s32 dword_CODE_bss_8005E4B8[2]; +s32 dword_CODE_bss_8005E4C0; +s32 dword_CODE_bss_8005E4C4; +s32 dword_CODE_bss_8005E4C8; +s32 dword_CODE_bss_8005E4CC; +s32 dword_CODE_bss_8005E4D0[2]; +s32 dword_CODE_bss_8005E4D8[2]; +char dword_CODE_bss_8005E4E0[0x38]; +//8005e518 +char _am[0x284]; + + + + + + +//8005e7a0 +OSScClient audi_client[2]; +//8005e7b0 +s32 dmaState_initialized; +s32 dmaState_firstUsed; +s32 dmaState_firstFree[2]; +char dmaBuffs[0x500]; +s32 minFrameSize; +s32 frameSize; +s32 maxFrameSize; +s32 cmdLen; + +OSIoMesg audDMAIOMesgBuf[0x40]; +OSMesgQueue audDMAMessageQ; +char audDMAMessageBuf[0x108]; + + +/** + * 29D0 70001BD0 + */ +#ifdef NONMATCHING +void amCreateAudioMgr(void *arg0) +{ + ? sp48; + f32 temp_f0; + s32 temp_ret; + s32 temp_s2; + u32 temp_s0; + u32 temp_t0; + u32 temp_t9; + u32 temp_v1; + void *temp_s0_2; + void *temp_s1; + void *temp_t0_2; + void *temp_t7; + u32 phi_v1; + u32 phi_v1_2; + void *phi_t7; + void *phi_t0; + void *phi_s0; + s32 phi_s0_2; + void *phi_s1; + s32 phi_s2; + void *phi_s0_3; + + arg0->unk10 = &__amDmaNew; + temp_ret = osAiSetFrequency(0x5622); + arg0->unk18 = temp_ret; + temp_f0 = (f32) (temp_ret * 2) / 60.0f; + temp_t9 = (u32) temp_f0; + frameSize = temp_t9; + temp_t0 = temp_t9 + 1; + phi_v1 = temp_t9; + if ((f32) temp_t9 < temp_f0) + { + frameSize = temp_t0; + phi_v1 = temp_t0; + } + phi_v1_2 = phi_v1; + if ((phi_v1 & 0xf) != 0) + { + temp_v1 = (phi_v1 & -0x10) + 0x10; + frameSize = temp_v1; + phi_v1_2 = temp_v1; + } + minFrameSize = (s32) (phi_v1_2 + -0x10); + maxFrameSize = (s32) (phi_v1_2 + 0x35); + if (arg0->unk1C == 6) + { + phi_t7 = &D_80023100; + phi_t0 = &sp48; +loop_6: + temp_t7 = phi_t7 + 0xc; + temp_t0_2 = phi_t0 + 0xc; + temp_t0_2->unk-C = (?32) *phi_t7; + temp_t0_2->unk-8 = (?32) temp_t7->unk-8; + temp_t0_2->unk-4 = (?32) temp_t7->unk-4; + phi_t7 = temp_t7; + phi_t0 = temp_t0_2; + if (temp_t7 != (&D_80023100 + 0xc0)) + { + goto loop_6; + } + temp_t0_2->unk0 = (?32) temp_t7->unk0; + temp_t0_2->unk4 = (?32) temp_t7->unk4; + arg0->unk20 = &sp48; + alInit(&_am+0x238, arg0); + } + else + { + alInit(&_am+0x238, arg0); + } + phi_s0 = &_am; +loop_10: + phi_s0->unk8 = alHeapDBAlloc(0, 0, arg0->unk14, 1, 0x60); + temp_s0 = phi_s0 + 4; + *phi_s0->unk8 = alHeapDBAlloc(0, 0, arg0->unk14, 1, (s32) (maxFrameSize * 4)); + phi_s0 = temp_s0; + if (temp_s0 < &_am+0xC) + { + goto loop_10; + } + osCreateMesgQueue(&_am+0x200, &_am+0x218, 8); + osCreateMesgQueue(&_am+0x1C8, &_am+0x1E0, 8); + osCreateMesgQueue(&audDMAMessageQ, &audDMAMessageBuf, 0x40); + dmaBuffs.unk4 = 0; + dmaBuffs.unk0 = 0; + phi_s0_2 = dmaBuffs + 0xe; + phi_s1 = &dmaBuffs; + phi_s2 = 0; +loop_12: + alLink(phi_s0_2, phi_s1); + temp_s2 = phi_s2 + 1; + temp_s1 = phi_s1 + 0x14; + temp_s1->unk-4 = alHeapDBAlloc(0, 0, arg0->unk14, 1, 0x200); + phi_s0_2 = phi_s0_2 + 0x14; + phi_s1 = temp_s1; + phi_s2 = temp_s2; + if (temp_s2 < 0x3f) + { + goto loop_12; + } + temp_s1->unk10 = alHeapDBAlloc(0, 0, arg0->unk14, 1, 0x200); + phi_s0_3 = &_am; +loop_14: + temp_s0_2 = phi_s0_3 + 4; + temp_s0_2->unk-4 = alHeapDBAlloc(0, 0, arg0->unk14, 1, 0x5dc0); + phi_s0_3 = temp_s0_2; + if (temp_s0_2 != &_am+0x8) + { + goto loop_14; + } + osCreateThread(&_am+0x18, 4, &_amMain, 0, set_stack_entry(&sp_audi, 0x1000), 0x14); +} +#else +GLOBAL_ASM( +.text +glabel amCreateAudioMgr +/* 0027D0 70001BD0 27BDFEE8 */ addiu $sp, $sp, -0x118 +/* 0027D4 70001BD4 AFB3002C */ sw $s3, 0x2c($sp) +/* 0027D8 70001BD8 3C0E7000 */ lui $t6, %hi(__amDmaNew) # $t6, 0x7000 +/* 0027DC 70001BDC AFBF0034 */ sw $ra, 0x34($sp) +/* 0027E0 70001BE0 AFB40030 */ sw $s4, 0x30($sp) +/* 0027E4 70001BE4 AFB20028 */ sw $s2, 0x28($sp) +/* 0027E8 70001BE8 AFB10024 */ sw $s1, 0x24($sp) +/* 0027EC 70001BEC AFB00020 */ sw $s0, 0x20($sp) +/* 0027F0 70001BF0 25CE25D8 */ addiu $t6, %lo(__amDmaNew) # addiu $t6, $t6, 0x25d8 +/* 0027F4 70001BF4 00809825 */ move $s3, $a0 +/* 0027F8 70001BF8 AC8E0010 */ sw $t6, 0x10($a0) +/* 0027FC 70001BFC 0C003A4C */ jal osAiSetFrequency +/* 002800 70001C00 24045622 */ li $a0, 22050 +/* 002804 70001C04 00027840 */ sll $t7, $v0, 1 +/* 002808 70001C08 448F2000 */ mtc1 $t7, $f4 +/* 00280C 70001C0C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 002810 70001C10 44814000 */ mtc1 $at, $f8 +/* 002814 70001C14 468021A0 */ cvt.s.w $f6, $f4 +/* 002818 70001C18 24190001 */ li $t9, 1 +/* 00281C 70001C1C 3C048006 */ lui $a0, %hi(frameSize) +/* 002820 70001C20 3C148006 */ lui $s4, %hi(maxFrameSize) +/* 002824 70001C24 2484ECC4 */ addiu $a0, %lo(frameSize) # addiu $a0, $a0, -0x133c +/* 002828 70001C28 AE620018 */ sw $v0, 0x18($s3) +/* 00282C 70001C2C 46083003 */ div.s $f0, $f6, $f8 +/* 002830 70001C30 2694ECC8 */ addiu $s4, %lo(maxFrameSize) # addiu $s4, $s4, -0x1338 +/* 002834 70001C34 4458F800 */ cfc1 $t8, $31 +/* 002838 70001C38 44D9F800 */ ctc1 $t9, $31 +/* 00283C 70001C3C 00000000 */ nop +/* 002840 70001C40 460002A4 */ cvt.w.s $f10, $f0 +/* 002844 70001C44 4459F800 */ cfc1 $t9, $31 +/* 002848 70001C48 00000000 */ nop +/* 00284C 70001C4C 33390078 */ andi $t9, $t9, 0x78 +/* 002850 70001C50 13200012 */ beqz $t9, .L70001C9C +/* 002854 70001C54 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 002858 70001C58 44815000 */ mtc1 $at, $f10 +/* 00285C 70001C5C 24190001 */ li $t9, 1 +/* 002860 70001C60 460A0281 */ sub.s $f10, $f0, $f10 +/* 002864 70001C64 44D9F800 */ ctc1 $t9, $31 +/* 002868 70001C68 00000000 */ nop +/* 00286C 70001C6C 460052A4 */ cvt.w.s $f10, $f10 +/* 002870 70001C70 4459F800 */ cfc1 $t9, $31 +/* 002874 70001C74 00000000 */ nop +/* 002878 70001C78 33390078 */ andi $t9, $t9, 0x78 +/* 00287C 70001C7C 17200005 */ bnez $t9, .L70001C94 +/* 002880 70001C80 00000000 */ nop +/* 002884 70001C84 44195000 */ mfc1 $t9, $f10 +/* 002888 70001C88 3C018000 */ lui $at, 0x8000 +/* 00288C 70001C8C 10000007 */ b .L70001CAC +/* 002890 70001C90 0321C825 */ or $t9, $t9, $at +.L70001C94: +/* 002894 70001C94 10000005 */ b .L70001CAC +/* 002898 70001C98 2419FFFF */ li $t9, -1 +.L70001C9C: +/* 00289C 70001C9C 44195000 */ mfc1 $t9, $f10 +/* 0028A0 70001CA0 00000000 */ nop +/* 0028A4 70001CA4 0720FFFB */ bltz $t9, .L70001C94 +/* 0028A8 70001CA8 00000000 */ nop +.L70001CAC: +/* 0028AC 70001CAC 03201825 */ move $v1, $t9 +/* 0028B0 70001CB0 44D8F800 */ ctc1 $t8, $31 +/* 0028B4 70001CB4 44838000 */ mtc1 $v1, $f16 +/* 0028B8 70001CB8 AC990000 */ sw $t9, ($a0) +/* 0028BC 70001CBC 07210005 */ bgez $t9, .L70001CD4 +/* 0028C0 70001CC0 468084A0 */ cvt.s.w $f18, $f16 +/* 0028C4 70001CC4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0028C8 70001CC8 44812000 */ mtc1 $at, $f4 +/* 0028CC 70001CCC 00000000 */ nop +/* 0028D0 70001CD0 46049480 */ add.s $f18, $f18, $f4 +.L70001CD4: +/* 0028D4 70001CD4 4600903C */ c.lt.s $f18, $f0 +/* 0028D8 70001CD8 00000000 */ nop +/* 0028DC 70001CDC 45000003 */ bc1f .L70001CEC +/* 0028E0 70001CE0 24680001 */ addiu $t0, $v1, 1 +/* 0028E4 70001CE4 AC880000 */ sw $t0, ($a0) +/* 0028E8 70001CE8 01001825 */ move $v1, $t0 +.L70001CEC: +/* 0028EC 70001CEC 3069000F */ andi $t1, $v1, 0xf +/* 0028F0 70001CF0 11200004 */ beqz $t1, .L70001D04 +/* 0028F4 70001CF4 2401FFF0 */ li $at, -16 +/* 0028F8 70001CF8 00615024 */ and $t2, $v1, $at +/* 0028FC 70001CFC 25430010 */ addiu $v1, $t2, 0x10 +/* 002900 70001D00 AC830000 */ sw $v1, ($a0) +.L70001D04: +/* 002904 70001D04 246CFFF0 */ addiu $t4, $v1, -0x10 +/* 002908 70001D08 3C018006 */ lui $at, %hi(minFrameSize) +/* 00290C 70001D0C AC2CECC0 */ sw $t4, %lo(minFrameSize)($at) +/* 002910 70001D10 246D0035 */ addiu $t5, $v1, 0x35 +/* 002914 70001D14 AE8D0000 */ sw $t5, ($s4) +/* 002918 70001D18 926E001C */ lbu $t6, 0x1c($s3) +/* 00291C 70001D1C 24010006 */ li $at, 6 +/* 002920 70001D20 3C048006 */ lui $a0, %hi(_am+0x238) +/* 002924 70001D24 15C1001A */ bne $t6, $at, .L70001D90 +/* 002928 70001D28 2484E750 */ addiu $a0, %lo(_am+0x238) # addiu $a0, $a0, -0x18b0 +/* 00292C 70001D2C 3C0F8002 */ lui $t7, %hi(D_80023100) +/* 002930 70001D30 27A20048 */ addiu $v0, $sp, 0x48 +/* 002934 70001D34 25EF3100 */ addiu $t7, %lo(D_80023100) # addiu $t7, $t7, 0x3100 +/* 002938 70001D38 25F900C0 */ addiu $t9, $t7, 0xc0 +/* 00293C 70001D3C 00404025 */ move $t0, $v0 +.L70001D40: +/* 002940 70001D40 8DE10000 */ lw $at, ($t7) +/* 002944 70001D44 25EF000C */ addiu $t7, $t7, 0xc +/* 002948 70001D48 2508000C */ addiu $t0, $t0, 0xc +/* 00294C 70001D4C AD01FFF4 */ sw $at, -0xc($t0) +/* 002950 70001D50 8DE1FFF8 */ lw $at, -8($t7) +/* 002954 70001D54 AD01FFF8 */ sw $at, -8($t0) +/* 002958 70001D58 8DE1FFFC */ lw $at, -4($t7) +/* 00295C 70001D5C 15F9FFF8 */ bne $t7, $t9, .L70001D40 +/* 002960 70001D60 AD01FFFC */ sw $at, -4($t0) +/* 002964 70001D64 8DE10000 */ lw $at, ($t7) +/* 002968 70001D68 3C048006 */ lui $a0, %hi(_am+0x238) +/* 00296C 70001D6C 2484E750 */ addiu $a0, %lo(_am+0x238) # addiu $a0, $a0, -0x18b0 +/* 002970 70001D70 AD010000 */ sw $at, ($t0) +/* 002974 70001D74 8DF90004 */ lw $t9, 4($t7) +/* 002978 70001D78 02602825 */ move $a1, $s3 +/* 00297C 70001D7C AD190004 */ sw $t9, 4($t0) +/* 002980 70001D80 0C003AC7 */ jal alInit +/* 002984 70001D84 AE620020 */ sw $v0, 0x20($s3) +/* 002988 70001D88 10000003 */ b .L70001D98 +/* 00298C 70001D8C 00000000 */ nop +.L70001D90: +/* 002990 70001D90 0C003AC7 */ jal alInit +/* 002994 70001D94 02602825 */ move $a1, $s3 +.L70001D98: +/* 002998 70001D98 3C108006 */ lui $s0, %hi(_am) +/* 00299C 70001D9C 3C118006 */ lui $s1, %hi(_am+0xC) +/* 0029A0 70001DA0 2631E524 */ addiu $s1, %lo(_am+0xC) # addiu $s1, $s1, -0x1adc +/* 0029A4 70001DA4 2610E518 */ addiu $s0, %lo(_am) # addiu $s0, $s0, -0x1ae8 +.L70001DA8: +/* 0029A8 70001DA8 8E660014 */ lw $a2, 0x14($s3) +/* 0029AC 70001DAC 24090060 */ li $t1, 96 +/* 0029B0 70001DB0 AFA90010 */ sw $t1, 0x10($sp) +/* 0029B4 70001DB4 00002025 */ move $a0, $zero +/* 0029B8 70001DB8 00002825 */ move $a1, $zero +/* 0029BC 70001DBC 0C003AD4 */ jal alHeapDBAlloc +/* 0029C0 70001DC0 24070001 */ li $a3, 1 +/* 0029C4 70001DC4 8E8A0000 */ lw $t2, ($s4) +/* 0029C8 70001DC8 AE020008 */ sw $v0, 8($s0) +/* 0029CC 70001DCC 8E660014 */ lw $a2, 0x14($s3) +/* 0029D0 70001DD0 000A5880 */ sll $t3, $t2, 2 +/* 0029D4 70001DD4 AFAB0010 */ sw $t3, 0x10($sp) +/* 0029D8 70001DD8 00002025 */ move $a0, $zero +/* 0029DC 70001DDC 00002825 */ move $a1, $zero +/* 0029E0 70001DE0 0C003AD4 */ jal alHeapDBAlloc +/* 0029E4 70001DE4 24070001 */ li $a3, 1 +/* 0029E8 70001DE8 8E0C0008 */ lw $t4, 8($s0) +/* 0029EC 70001DEC 26100004 */ addiu $s0, $s0, 4 +/* 0029F0 70001DF0 0211082B */ sltu $at, $s0, $s1 +/* 0029F4 70001DF4 1420FFEC */ bnez $at, .L70001DA8 +/* 0029F8 70001DF8 AD820000 */ sw $v0, ($t4) +/* 0029FC 70001DFC 3C048006 */ lui $a0, %hi(_am+0x200) +/* 002A00 70001E00 3C058006 */ lui $a1, %hi(_am+0x218) +/* 002A04 70001E04 24A5E730 */ addiu $a1, %lo(_am+0x218) # addiu $a1, $a1, -0x18d0 +/* 002A08 70001E08 2484E718 */ addiu $a0, %lo(_am+0x200) # addiu $a0, $a0, -0x18e8 +/* 002A0C 70001E0C 0C0035B4 */ jal osCreateMesgQueue +/* 002A10 70001E10 24060008 */ li $a2, 8 +/* 002A14 70001E14 3C048006 */ lui $a0, %hi(_am+0x1C8) +/* 002A18 70001E18 3C058006 */ lui $a1, %hi(_am+0x1E0) +/* 002A1C 70001E1C 24A5E6F8 */ addiu $a1, %lo(_am+0x1E0) # addiu $a1, $a1, -0x1908 +/* 002A20 70001E20 2484E6E0 */ addiu $a0, %lo(_am+0x1C8) # addiu $a0, $a0, -0x1920 +/* 002A24 70001E24 0C0035B4 */ jal osCreateMesgQueue +/* 002A28 70001E28 24060008 */ li $a2, 8 +/* 002A2C 70001E2C 3C048006 */ lui $a0, %hi(audDMAMessageQ) +/* 002A30 70001E30 3C058006 */ lui $a1, %hi(audDMAMessageBuf) +/* 002A34 70001E34 24A5F2E8 */ addiu $a1, %lo(audDMAMessageBuf) # addiu $a1, $a1, -0xd18 +/* 002A38 70001E38 2484F2D0 */ addiu $a0, %lo(audDMAMessageQ) # addiu $a0, $a0, -0xd30 +/* 002A3C 70001E3C 0C0035B4 */ jal osCreateMesgQueue +/* 002A40 70001E40 24060040 */ li $a2, 64 +/* 002A44 70001E44 3C028006 */ lui $v0, %hi(dmaBuffs) +/* 002A48 70001E48 2442E7C0 */ addiu $v0, %lo(dmaBuffs) # addiu $v0, $v0, -0x1840 +/* 002A4C 70001E4C 3C118006 */ lui $s1, %hi(dmaBuffs) +/* 002A50 70001E50 3C108006 */ lui $s0, %hi(dmaBuffs+20) +/* 002A54 70001E54 AC400004 */ sw $zero, 4($v0) +/* 002A58 70001E58 AC400000 */ sw $zero, ($v0) +/* 002A5C 70001E5C 2610E7D4 */ addiu $s0, $s0, %lo(dmaBuffs+20) +/* 002A60 70001E60 2631E7C0 */ addiu $s1, %lo(dmaBuffs) # addiu $s1, $s1, -0x1840 +/* 002A64 70001E64 00009025 */ move $s2, $zero +.L70001E68: +/* 002A68 70001E68 02002025 */ move $a0, $s0 +/* 002A6C 70001E6C 0C003AB0 */ jal alLink +/* 002A70 70001E70 02202825 */ move $a1, $s1 +/* 002A74 70001E74 8E660014 */ lw $a2, 0x14($s3) +/* 002A78 70001E78 240D0200 */ li $t5, 512 +/* 002A7C 70001E7C AFAD0010 */ sw $t5, 0x10($sp) +/* 002A80 70001E80 00002025 */ move $a0, $zero +/* 002A84 70001E84 00002825 */ move $a1, $zero +/* 002A88 70001E88 0C003AD4 */ jal alHeapDBAlloc +/* 002A8C 70001E8C 24070001 */ li $a3, 1 +/* 002A90 70001E90 26520001 */ addiu $s2, $s2, 1 +/* 002A94 70001E94 2A41003F */ slti $at, $s2, 0x3f +/* 002A98 70001E98 26310014 */ addiu $s1, $s1, 0x14 +/* 002A9C 70001E9C 26100014 */ addiu $s0, $s0, 0x14 +/* 002AA0 70001EA0 1420FFF1 */ bnez $at, .L70001E68 +/* 002AA4 70001EA4 AE22FFFC */ sw $v0, -4($s1) +/* 002AA8 70001EA8 8E660014 */ lw $a2, 0x14($s3) +/* 002AAC 70001EAC 240E0200 */ li $t6, 512 +/* 002AB0 70001EB0 AFAE0010 */ sw $t6, 0x10($sp) +/* 002AB4 70001EB4 00002025 */ move $a0, $zero +/* 002AB8 70001EB8 00002825 */ move $a1, $zero +/* 002ABC 70001EBC 0C003AD4 */ jal alHeapDBAlloc +/* 002AC0 70001EC0 24070001 */ li $a3, 1 +/* 002AC4 70001EC4 AE220010 */ sw $v0, 0x10($s1) +/* 002AC8 70001EC8 3C118006 */ lui $s1, %hi(_am+0x8) +/* 002ACC 70001ECC 3C108006 */ lui $s0, %hi(_am) +/* 002AD0 70001ED0 2610E518 */ addiu $s0, %lo(_am) # addiu $s0, $s0, -0x1ae8 +/* 002AD4 70001ED4 2631E520 */ addiu $s1, %lo(_am+0x8) # addiu $s1, $s1, -0x1ae0 +.L70001ED8: +/* 002AD8 70001ED8 8E660014 */ lw $a2, 0x14($s3) +/* 002ADC 70001EDC 24185DC0 */ li $t8, 24000 +/* 002AE0 70001EE0 AFB80010 */ sw $t8, 0x10($sp) +/* 002AE4 70001EE4 00002025 */ move $a0, $zero +/* 002AE8 70001EE8 00002825 */ move $a1, $zero +/* 002AEC 70001EEC 0C003AD4 */ jal alHeapDBAlloc +/* 002AF0 70001EF0 24070001 */ li $a3, 1 +/* 002AF4 70001EF4 26100004 */ addiu $s0, $s0, 4 +/* 002AF8 70001EF8 1611FFF7 */ bne $s0, $s1, .L70001ED8 +/* 002AFC 70001EFC AE02FFFC */ sw $v0, -4($s0) +/* 002B00 70001F00 3C04803B */ lui $a0, %hi(sp_audi) # $a0, 0x803b +/* 002B04 70001F04 24843950 */ addiu $a0, %lo(sp_audi) # addiu $a0, $a0, 0x3950 +/* 002B08 70001F08 0C0001BC */ jal set_stack_entry +/* 002B0C 70001F0C 24051000 */ li $a1, 4096 +/* 002B10 70001F10 3C048006 */ lui $a0, %hi(_am+0x18) +/* 002B14 70001F14 3C067000 */ lui $a2, %hi(_amMain) # $a2, 0x7000 +/* 002B18 70001F18 24190014 */ li $t9, 20 +/* 002B1C 70001F1C AFB90014 */ sw $t9, 0x14($sp) +/* 002B20 70001F20 24C61F7C */ addiu $a2, %lo(_amMain) # addiu $a2, $a2, 0x1f7c +/* 002B24 70001F24 2484E530 */ addiu $a0, %lo(_am+0x18) # addiu $a0, $a0, -0x1ad0 +/* 002B28 70001F28 24050004 */ li $a1, 4 +/* 002B2C 70001F2C 00003825 */ move $a3, $zero +/* 002B30 70001F30 0C00350C */ jal osCreateThread +/* 002B34 70001F34 AFA20010 */ sw $v0, 0x10($sp) +/* 002B38 70001F38 8FBF0034 */ lw $ra, 0x34($sp) +/* 002B3C 70001F3C 8FB00020 */ lw $s0, 0x20($sp) +/* 002B40 70001F40 8FB10024 */ lw $s1, 0x24($sp) +/* 002B44 70001F44 8FB20028 */ lw $s2, 0x28($sp) +/* 002B48 70001F48 8FB3002C */ lw $s3, 0x2c($sp) +/* 002B4C 70001F4C 8FB40030 */ lw $s4, 0x30($sp) +/* 002B50 70001F50 03E00008 */ jr $ra +/* 002B54 70001F54 27BD0118 */ addiu $sp, $sp, 0x118 +) +#endif + +/** + * 2B58 70001F58 + * insert sound manager thread + * redirect to 7000D580: A0=8005E530 + */ +#ifdef NONMATCHING +void startaudiThread(void) { + osStartThread(&_am+0x18); +} +#else +GLOBAL_ASM( +glabel startaudiThread +/* 002B58 70001F58 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 002B5C 70001F5C AFBF0014 */ sw $ra, 0x14($sp) +/* 002B60 70001F60 3C048006 */ lui $a0, %hi(_am+0x18) +/* 002B64 70001F64 0C003560 */ jal osStartThread +/* 002B68 70001F68 2484E530 */ addiu $a0, $a0, %lo(_am+0x18) +/* 002B6C 70001F6C 8FBF0014 */ lw $ra, 0x14($sp) +/* 002B70 70001F70 27BD0018 */ addiu $sp, $sp, 0x18 +/* 002B74 70001F74 03E00008 */ jr $ra +/* 002B78 70001F78 00000000 */ nop +) +#endif + +/** + * 2B7C 70001F7C + */ +#ifdef NONMATCHING +void _amMain(s32 arg0) +{ + void *sp64; + ?32 sp60; + u32 sp54; + s32 sp50; + u32 sp4C; + s32 sp48; + u32 sp44; + u32 sp40; + ? temp_ret; + s32 temp_s1; + ? temp_ret_2; + u32 temp_t8; + u32 temp_t9; + ? temp_ret_3; + u32 temp_t7; + s32 phi_s1; + s32 phi_s2; + s32 phi_s2_2; + + sp64 = NULL; + sp60 = 0; + osScAddClient(&sc, &audi_client, &_am+0x1C8, 1); + phi_s1 = 0; + phi_s2_2 = 0; +loop_1: + osRecvMesg(&_am+0x1C8, &sp64, 1); + if (*sp64 != 1) + { + if (*sp64 != 5) + { + if (*sp64 != 0xa) + { + phi_s2 = phi_s2_2; + phi_s1 = phi_s1; + } + else + { + phi_s2 = 1; + phi_s1 = phi_s1; + } + } + else + { + phi_s2 = 1; + phi_s1 = phi_s1; + } + } + else + { + temp_ret = osGetTime(*sp64); + dword_CODE_bss_8005E4D8 = temp_ret; + dword_CODE_bss_8005E4D8.unk4 = temp_ret; + video_related_3(0x30000); + _amHandleFrameMsg((0x80060000 + (((u32) audFrameCt % 3U) * 4))->unk-1AE0, sp60); + temp_s1 = (phi_s1 + 1); + video_related_3(0x60000); + temp_ret_2 = osGetTime(); + dword_CODE_bss_8005E4E0 = temp_ret_2; + temp_t8 = ((temp_ret_2 - dword_CODE_bss_8005E4D8) - (temp_ret_2 < (u32) dword_CODE_bss_8005E4D8.unk4)); + dword_CODE_bss_8005E4E0.unk4 = temp_ret_2; + temp_t9 = (temp_ret_2 - dword_CODE_bss_8005E4D8.unk4); + dword_CODE_bss_8005E4C0 = temp_t9; + dword_CODE_bss_8005E4C0 = temp_t8; + sp44 = temp_t9; + sp40 = temp_t8; + sp50 = temp_ret_2; + sp54 = temp_ret_2; + sp48 = (s32) dword_CODE_bss_8005E4D8; + sp4C = (u32) dword_CODE_bss_8005E4D8.unk4; + if ((temp_s1 % 0xf0) == 0) + { + temp_ret_3 = __ull_div(dword_CODE_bss_8005E4D0, dword_CODE_bss_8005E4D0.unk4, 0, 0xf0); + dword_CODE_bss_8005E4CC = temp_ret_3; + dword_CODE_bss_8005E4CC = temp_ret_3; + sp44 = (u32) (dword_CODE_bss_8005E4E0.unk4 - dword_CODE_bss_8005E4D8.unk4); + dword_CODE_bss_8005E4B8.unk4 = 0U; + dword_CODE_bss_8005E4B8 = 0U; + dword_CODE_bss_8005E4D0.unk4 = 0; + sp40 = (u32) ((dword_CODE_bss_8005E4E0 - dword_CODE_bss_8005E4D8) - ((u32) dword_CODE_bss_8005E4E0.unk4 < (u32) dword_CODE_bss_8005E4D8.unk4)); + dword_CODE_bss_8005E4D0 = 0; + } + else + { + temp_t7 = (dword_CODE_bss_8005E4D0.unk4 + sp54); + dword_CODE_bss_8005E4D0.unk4 = (s32) (temp_t7 - sp4C); + dword_CODE_bss_8005E4D0 = (s32) (((((temp_t7 < sp54) + dword_CODE_bss_8005E4D0) + sp50) - sp48) - (temp_t7 < sp4C)); + } + if (sp40 >= (u32) dword_CODE_bss_8005E4B8) + { + if (((u32) dword_CODE_bss_8005E4B8 < sp40) || ((u32) dword_CODE_bss_8005E4B8.unk4 < sp44)) + { + dword_CODE_bss_8005E4B8 = sp40; + dword_CODE_bss_8005E4B8.unk4 = sp44; + } + else + { + + } + } + osRecvMesg(&_am+0x200, &sp60, 1); + __amHandleDoneMsg(sp60); + phi_s2 = phi_s2_2; + phi_s1 = temp_s1; + } + phi_s2_2 = phi_s2; + if (phi_s2 == 0) + { + goto loop_1; + } + alClose(&_am+0x238); +} +#else +GLOBAL_ASM( +.text +glabel _amMain +/* 002B7C 70001F7C 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 002B80 70001F80 AFB60030 */ sw $s6, 0x30($sp) +/* 002B84 70001F84 3C168006 */ lui $s6, %hi(_am+0x1C8) +/* 002B88 70001F88 AFA40070 */ sw $a0, 0x70($sp) +/* 002B8C 70001F8C 26D6E6E0 */ addiu $s6, %lo(_am+0x1C8) # addiu $s6, $s6, -0x1920 +/* 002B90 70001F90 AFBF003C */ sw $ra, 0x3c($sp) +/* 002B94 70001F94 AFB20020 */ sw $s2, 0x20($sp) +/* 002B98 70001F98 AFB1001C */ sw $s1, 0x1c($sp) +/* 002B9C 70001F9C 3C048006 */ lui $a0, %hi(sc) +/* 002BA0 70001FA0 3C058006 */ lui $a1, %hi(audi_client) +/* 002BA4 70001FA4 AFBE0038 */ sw $fp, 0x38($sp) +/* 002BA8 70001FA8 AFB70034 */ sw $s7, 0x34($sp) +/* 002BAC 70001FAC AFB5002C */ sw $s5, 0x2c($sp) +/* 002BB0 70001FB0 AFB40028 */ sw $s4, 0x28($sp) +/* 002BB4 70001FB4 AFB30024 */ sw $s3, 0x24($sp) +/* 002BB8 70001FB8 AFB00018 */ sw $s0, 0x18($sp) +/* 002BBC 70001FBC 00008825 */ move $s1, $zero +/* 002BC0 70001FC0 00009025 */ move $s2, $zero +/* 002BC4 70001FC4 AFA00064 */ sw $zero, 0x64($sp) +/* 002BC8 70001FC8 AFA00060 */ sw $zero, 0x60($sp) +/* 002BCC 70001FCC 24A5E7A0 */ addiu $a1, %lo(audi_client) # addiu $a1, $a1, -0x1860 +/* 002BD0 70001FD0 2484DA40 */ addiu $a0, %lo(sc) # addiu $a0, $a0, -0x25c0 +/* 002BD4 70001FD4 02C03025 */ move $a2, $s6 +/* 002BD8 70001FD8 0C000305 */ jal osScAddClient +/* 002BDC 70001FDC 24070001 */ li $a3, 1 +/* 002BE0 70001FE0 3C158006 */ lui $s5, %hi(dword_CODE_bss_8005E4E0) +/* 002BE4 70001FE4 3C148006 */ lui $s4, %hi(dword_CODE_bss_8005E4D8) +/* 002BE8 70001FE8 3C138006 */ lui $s3, %hi(dword_CODE_bss_8005E4B8) +/* 002BEC 70001FEC 3C108006 */ lui $s0, %hi(dword_CODE_bss_8005E4D0) +/* 002BF0 70001FF0 2610E4D0 */ addiu $s0, %lo(dword_CODE_bss_8005E4D0) # addiu $s0, $s0, -0x1b30 +/* 002BF4 70001FF4 2673E4B8 */ addiu $s3, %lo(dword_CODE_bss_8005E4B8) # addiu $s3, $s3, -0x1b48 +/* 002BF8 70001FF8 2694E4D8 */ addiu $s4, %lo(dword_CODE_bss_8005E4D8) # addiu $s4, $s4, -0x1b28 +/* 002BFC 70001FFC 26B5E4E0 */ addiu $s5, %lo(dword_CODE_bss_8005E4E0) # addiu $s5, $s5, -0x1b20 +/* 002C00 70002000 241E0001 */ li $fp, 1 +/* 002C04 70002004 27B70064 */ addiu $s7, $sp, 0x64 +/* 002C08 70002008 02C02025 */ move $a0, $s6 +.L7000200C: +/* 002C0C 7000200C 02E02825 */ move $a1, $s7 +/* 002C10 70002010 0C003774 */ jal osRecvMesg +/* 002C14 70002014 03C03025 */ move $a2, $fp +/* 002C18 70002018 8FAE0064 */ lw $t6, 0x64($sp) +/* 002C1C 7000201C 24010005 */ li $at, 5 +/* 002C20 70002020 85C40000 */ lh $a0, ($t6) +/* 002C24 70002024 109E0007 */ beq $a0, $fp, .L70002044 +/* 002C28 70002028 00000000 */ nop +/* 002C2C 7000202C 10810071 */ beq $a0, $at, .L700021F4 +/* 002C30 70002030 2401000A */ li $at, 10 +/* 002C34 70002034 50810072 */ beql $a0, $at, .L70002200 +/* 002C38 70002038 03C09025 */ move $s2, $fp +/* 002C3C 7000203C 10000070 */ b .L70002200 +/* 002C40 70002040 00000000 */ nop +.L70002044: +/* 002C44 70002044 0C003AEC */ jal osGetTime +/* 002C48 70002048 00000000 */ nop +/* 002C4C 7000204C AE820000 */ sw $v0, ($s4) +/* 002C50 70002050 AE830004 */ sw $v1, 4($s4) +/* 002C54 70002054 0C000A15 */ jal video_related_3 +/* 002C58 70002058 3C040003 */ lui $a0, 3 +/* 002C5C 7000205C 3C0F8002 */ lui $t7, %hi(audFrameCt) +/* 002C60 70002060 8DEF30F4 */ lw $t7, %lo(audFrameCt)($t7) +/* 002C64 70002064 24010003 */ li $at, 3 +/* 002C68 70002068 3C048006 */ lui $a0, %hi(_am+8) +/* 002C6C 7000206C 01E1001B */ divu $zero, $t7, $at +/* 002C70 70002070 0000C010 */ mfhi $t8 +/* 002C74 70002074 0018C880 */ sll $t9, $t8, 2 +/* 002C78 70002078 00992021 */ addu $a0, $a0, $t9 +/* 002C7C 7000207C 8C84E520 */ lw $a0, %lo(_am+8)($a0) +/* 002C80 70002080 0C000891 */ jal _amHandleFrameMsg +/* 002C84 70002084 8FA50060 */ lw $a1, 0x60($sp) +/* 002C88 70002088 26310001 */ addiu $s1, $s1, 1 +/* 002C8C 7000208C 0C000A15 */ jal video_related_3 +/* 002C90 70002090 3C040006 */ lui $a0, 6 +/* 002C94 70002094 0C003AEC */ jal osGetTime +/* 002C98 70002098 00000000 */ nop +/* 002C9C 7000209C 8E8A0000 */ lw $t2, ($s4) +/* 002CA0 700020A0 8E8B0004 */ lw $t3, 4($s4) +/* 002CA4 700020A4 AEA20000 */ sw $v0, ($s5) +/* 002CA8 700020A8 004AC023 */ subu $t8, $v0, $t2 +/* 002CAC 700020AC 006B082B */ sltu $at, $v1, $t3 +/* 002CB0 700020B0 0301C023 */ subu $t8, $t8, $at +/* 002CB4 700020B4 AEA30004 */ sw $v1, 4($s5) +/* 002CB8 700020B8 3C018006 */ lui $at, %hi(dword_CODE_bss_8005E4C0) +/* 002CBC 700020BC 006BC823 */ subu $t9, $v1, $t3 +/* 002CC0 700020C0 AC39E4C4 */ sw $t9, %lo(dword_CODE_bss_8005E4C4)($at) +/* 002CC4 700020C4 AC38E4C0 */ sw $t8, %lo(dword_CODE_bss_8005E4C0)($at) +/* 002CC8 700020C8 240100F0 */ li $at, 240 +/* 002CCC 700020CC 0221001A */ div $zero, $s1, $at +/* 002CD0 700020D0 00004010 */ mfhi $t0 +/* 002CD4 700020D4 AFB90044 */ sw $t9, 0x44($sp) +/* 002CD8 700020D8 AFB80040 */ sw $t8, 0x40($sp) +/* 002CDC 700020DC AFA20050 */ sw $v0, 0x50($sp) +/* 002CE0 700020E0 AFA30054 */ sw $v1, 0x54($sp) +/* 002CE4 700020E4 AFAA0048 */ sw $t2, 0x48($sp) +/* 002CE8 700020E8 1500001C */ bnez $t0, .L7000215C +/* 002CEC 700020EC AFAB004C */ sw $t3, 0x4c($sp) +/* 002CF0 700020F0 8E040000 */ lw $a0, ($s0) +/* 002CF4 700020F4 8E050004 */ lw $a1, 4($s0) +/* 002CF8 700020F8 24060000 */ li $a2, 0 +/* 002CFC 700020FC 0C003B2A */ jal __ull_div +/* 002D00 70002100 240700F0 */ li $a3, 240 +/* 002D04 70002104 3C018006 */ lui $at, %hi(dword_CODE_bss_8005E4CC) +/* 002D08 70002108 AC22E4C8 */ sw $v0, %lo(dword_CODE_bss_8005E4C8)($at) +/* 002D0C 7000210C AC23E4CC */ sw $v1, %lo(dword_CODE_bss_8005E4CC)($at) +/* 002D10 70002110 8E990004 */ lw $t9, 4($s4) +/* 002D14 70002114 8E980000 */ lw $t8, ($s4) +/* 002D18 70002118 8EAF0004 */ lw $t7, 4($s5) +/* 002D1C 7000211C 8EAE0000 */ lw $t6, ($s5) +/* 002D20 70002120 240A0000 */ li $t2, 0 +/* 002D24 70002124 01F9082B */ sltu $at, $t7, $t9 +/* 002D28 70002128 01D84023 */ subu $t0, $t6, $t8 +/* 002D2C 7000212C 01014023 */ subu $t0, $t0, $at +/* 002D30 70002130 240B0000 */ li $t3, 0 +/* 002D34 70002134 240C0000 */ li $t4, 0 +/* 002D38 70002138 240D0000 */ li $t5, 0 +/* 002D3C 7000213C 01F94823 */ subu $t1, $t7, $t9 +/* 002D40 70002140 AFA90044 */ sw $t1, 0x44($sp) +/* 002D44 70002144 AE6D0004 */ sw $t5, 4($s3) +/* 002D48 70002148 AE6C0000 */ sw $t4, ($s3) +/* 002D4C 7000214C AE0B0004 */ sw $t3, 4($s0) +/* 002D50 70002150 AFA80040 */ sw $t0, 0x40($sp) +/* 002D54 70002154 10000011 */ b .L7000219C +/* 002D58 70002158 AE0A0000 */ sw $t2, ($s0) +.L7000215C: +/* 002D5C 7000215C 8E0B0004 */ lw $t3, 4($s0) +/* 002D60 70002160 8FAD0054 */ lw $t5, 0x54($sp) +/* 002D64 70002164 8E0A0000 */ lw $t2, ($s0) +/* 002D68 70002168 8FAC0050 */ lw $t4, 0x50($sp) +/* 002D6C 7000216C 016D7821 */ addu $t7, $t3, $t5 +/* 002D70 70002170 8FB80048 */ lw $t8, 0x48($sp) +/* 002D74 70002174 8FB9004C */ lw $t9, 0x4c($sp) +/* 002D78 70002178 01ED082B */ sltu $at, $t7, $t5 +/* 002D7C 7000217C 002A7021 */ addu $t6, $at, $t2 +/* 002D80 70002180 01CC7021 */ addu $t6, $t6, $t4 +/* 002D84 70002184 01D84023 */ subu $t0, $t6, $t8 +/* 002D88 70002188 01F9082B */ sltu $at, $t7, $t9 +/* 002D8C 7000218C 01014023 */ subu $t0, $t0, $at +/* 002D90 70002190 01F94823 */ subu $t1, $t7, $t9 +/* 002D94 70002194 AE090004 */ sw $t1, 4($s0) +/* 002D98 70002198 AE080000 */ sw $t0, ($s0) +.L7000219C: +/* 002D9C 7000219C 8E6A0000 */ lw $t2, ($s3) +/* 002DA0 700021A0 8FAC0040 */ lw $t4, 0x40($sp) +/* 002DA4 700021A4 8E6B0004 */ lw $t3, 4($s3) +/* 002DA8 700021A8 8FAD0044 */ lw $t5, 0x44($sp) +/* 002DAC 700021AC 018A082B */ sltu $at, $t4, $t2 +/* 002DB0 700021B0 14200008 */ bnez $at, .L700021D4 +/* 002DB4 700021B4 3C048006 */ lui $a0, %hi(_am+0x200) +/* 002DB8 700021B8 014C082B */ sltu $at, $t2, $t4 +/* 002DBC 700021BC 14200003 */ bnez $at, .L700021CC +/* 002DC0 700021C0 016D082B */ sltu $at, $t3, $t5 +/* 002DC4 700021C4 10200003 */ beqz $at, .L700021D4 +/* 002DC8 700021C8 00000000 */ nop +.L700021CC: +/* 002DCC 700021CC AE6C0000 */ sw $t4, ($s3) +/* 002DD0 700021D0 AE6D0004 */ sw $t5, 4($s3) +.L700021D4: +/* 002DD4 700021D4 2484E718 */ addiu $a0, %lo(_am+0x200) # addiu $a0, $a0, -0x18e8 +/* 002DD8 700021D8 27A50060 */ addiu $a1, $sp, 0x60 +/* 002DDC 700021DC 0C003774 */ jal osRecvMesg +/* 002DE0 700021E0 03C03025 */ move $a2, $fp +/* 002DE4 700021E4 0C0008F9 */ jal __amHandleDoneMsg +/* 002DE8 700021E8 8FA40060 */ lw $a0, 0x60($sp) +/* 002DEC 700021EC 10000004 */ b .L70002200 +/* 002DF0 700021F0 00000000 */ nop +.L700021F4: +/* 002DF4 700021F4 10000002 */ b .L70002200 +/* 002DF8 700021F8 03C09025 */ move $s2, $fp +/* 002DFC 700021FC 03C09025 */ move $s2, $fp +.L70002200: +/* 002E00 70002200 5240FF82 */ beql $s2, $zero, .L7000200C +/* 002E04 70002204 02C02025 */ move $a0, $s6 +/* 002E08 70002208 3C048006 */ lui $a0, %hi(_am+0x238) +/* 002E0C 7000220C 0C003AB9 */ jal alClose +/* 002E10 70002210 2484E750 */ addiu $a0, %lo(_am+0x238) # addiu $a0, $a0, -0x18b0 +/* 002E14 70002214 8FBF003C */ lw $ra, 0x3c($sp) +/* 002E18 70002218 8FB00018 */ lw $s0, 0x18($sp) +/* 002E1C 7000221C 8FB1001C */ lw $s1, 0x1c($sp) +/* 002E20 70002220 8FB20020 */ lw $s2, 0x20($sp) +/* 002E24 70002224 8FB30024 */ lw $s3, 0x24($sp) +/* 002E28 70002228 8FB40028 */ lw $s4, 0x28($sp) +/* 002E2C 7000222C 8FB5002C */ lw $s5, 0x2c($sp) +/* 002E30 70002230 8FB60030 */ lw $s6, 0x30($sp) +/* 002E34 70002234 8FB70034 */ lw $s7, 0x34($sp) +/* 002E38 70002238 8FBE0038 */ lw $fp, 0x38($sp) +/* 002E3C 7000223C 03E00008 */ jr $ra +/* 002E40 70002240 27BD0070 */ addiu $sp, $sp, 0x70 +) +#endif + +/** + * 2E44 70002244 + * accepts: A0=, A1=p->audio packet + */ +#ifdef NONMATCHING +void _amHandleFrameMsg(void *arg0, s32 arg1, void *argB) { + s32 sp24; + + // Node 0 + __clearAudioDMA(); + sp24 = osVirtualToPhysical(*arg0); + if (argB != 0) + { + // Node 1 + osAiSetNextBuffer(*argB, (argB->unk4 * 4)); + } + // Node 2 + arg0->unk4 = (s16) (((frameSize - (osAiGetLength() >> 2)) + 0x35) & 0xfff0); + if (arg0->unk4 < ((s32) (minFrameSize << 0x10) >> 0x10)) + { + // Node 3 + arg0->unk4 = (s16) minFrameSize; + } + // Node 4 + arg0->unk8 = 0; + arg0->unk58 = &_am+0x200; + arg0->unk5C = arg0; + arg0->unk10 = 2; + arg0->unk48 = (?32) *(&_am + (curAcmdList * 4)); + arg0->unk4C = (s32) (((s32) (alAudioFrame((0x80060000 + (curAcmdList * 4))->unk-1AE8, &cmdLen, sp24, arg0->unk4) - *(&_am + (curAcmdList * 4))) >> 3) * 8); + arg0->unk18 = 2; + arg0->unk20 = &rspbootTextStart; + arg0->unk24 = (s32) (&gsp3DTextStart - &rspbootTextStart); + arg0->unk1C = 0; + arg0->unk28 = &aspMainTextStart; + arg0->unk30 = &aspMainDataStart; + arg0->unk34 = 0x800; + arg0->unk50 = 0; + arg0->unk54 = 0; + osSendMesg(osScGetCmdQ(&sc, &rspbootTextStart, &curAcmdList, &_am), (arg0 + 8), 0); + curAcmdList = (s32) (curAcmdList ^ 1); + return; + // (possible return value: osSendMesg(osScGetCmdQ(&sc, &rspbootTextStart, &curAcmdList, &_am), (arg0 + 8), 0)) +} +#else +GLOBAL_ASM( +.text +glabel _amHandleFrameMsg +/* 002E44 70002244 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 002E48 70002248 AFBF001C */ sw $ra, 0x1c($sp) +/* 002E4C 7000224C AFB00018 */ sw $s0, 0x18($sp) +/* 002E50 70002250 00808025 */ move $s0, $a0 +/* 002E54 70002254 0C000984 */ jal __clearAudioDMA +/* 002E58 70002258 AFA5002C */ sw $a1, 0x2c($sp) +/* 002E5C 7000225C 0C003A2C */ jal osVirtualToPhysical +/* 002E60 70002260 8E040000 */ lw $a0, ($s0) +/* 002E64 70002264 8FA3002C */ lw $v1, 0x2c($sp) +/* 002E68 70002268 AFA20024 */ sw $v0, 0x24($sp) +/* 002E6C 7000226C 10600006 */ beqz $v1, .L70002288 +/* 002E70 70002270 00000000 */ nop +/* 002E74 70002274 84650004 */ lh $a1, 4($v1) +/* 002E78 70002278 8C640000 */ lw $a0, ($v1) +/* 002E7C 7000227C 00057080 */ sll $t6, $a1, 2 +/* 002E80 70002280 0C003BC0 */ jal osAiSetNextBuffer +/* 002E84 70002284 01C02825 */ move $a1, $t6 +.L70002288: +/* 002E88 70002288 0C003BEC */ jal osAiGetLength +/* 002E8C 7000228C 00000000 */ nop +/* 002E90 70002290 3C0F8006 */ lui $t7, %hi(frameSize) +/* 002E94 70002294 8DEFECC4 */ lw $t7, %lo(frameSize)($t7) +/* 002E98 70002298 0002C082 */ srl $t8, $v0, 2 +/* 002E9C 7000229C 3C038006 */ lui $v1, %hi(minFrameSize) +/* 002EA0 700022A0 01F8C823 */ subu $t9, $t7, $t8 +/* 002EA4 700022A4 27280035 */ addiu $t0, $t9, 0x35 +/* 002EA8 700022A8 3109FFF0 */ andi $t1, $t0, 0xfff0 +/* 002EAC 700022AC A6090004 */ sh $t1, 4($s0) +/* 002EB0 700022B0 8C63ECC0 */ lw $v1, %lo(minFrameSize)($v1) +/* 002EB4 700022B4 86070004 */ lh $a3, 4($s0) +/* 002EB8 700022B8 3C0C8002 */ lui $t4, %hi(curAcmdList) +/* 002EBC 700022BC 00035400 */ sll $t2, $v1, 0x10 +/* 002EC0 700022C0 000A5C03 */ sra $t3, $t2, 0x10 +/* 002EC4 700022C4 00EB082A */ slt $at, $a3, $t3 +/* 002EC8 700022C8 10200003 */ beqz $at, .L700022D8 +/* 002ECC 700022CC 3C048006 */ lui $a0, %hi(_am) +/* 002ED0 700022D0 A6030004 */ sh $v1, 4($s0) +/* 002ED4 700022D4 86070004 */ lh $a3, 4($s0) +.L700022D8: +/* 002ED8 700022D8 8D8C30FC */ lw $t4, %lo(curAcmdList)($t4) +/* 002EDC 700022DC 3C058006 */ lui $a1, %hi(cmdLen) +/* 002EE0 700022E0 24A5ECCC */ addiu $a1, %lo(cmdLen) # addiu $a1, $a1, -0x1334 +/* 002EE4 700022E4 000C6880 */ sll $t5, $t4, 2 +/* 002EE8 700022E8 008D2021 */ addu $a0, $a0, $t5 +/* 002EEC 700022EC 8C84E518 */ lw $a0, %lo(_am)($a0) +/* 002EF0 700022F0 0C003C42 */ jal alAudioFrame +/* 002EF4 700022F4 8FA60024 */ lw $a2, 0x24($sp) +/* 002EF8 700022F8 3C0E8006 */ lui $t6, %hi(_am+0x200) +/* 002EFC 700022FC 24030002 */ li $v1, 2 +/* 002F00 70002300 3C068002 */ lui $a2, %hi(curAcmdList) +/* 002F04 70002304 25CEE718 */ addiu $t6, %lo(_am+0x200) # addiu $t6, $t6, -0x18e8 +/* 002F08 70002308 24C630FC */ addiu $a2, %lo(curAcmdList) # addiu $a2, $a2, 0x30fc +/* 002F0C 7000230C AE000008 */ sw $zero, 8($s0) +/* 002F10 70002310 AE0E0058 */ sw $t6, 0x58($s0) +/* 002F14 70002314 AE10005C */ sw $s0, 0x5c($s0) +/* 002F18 70002318 AE030010 */ sw $v1, 0x10($s0) +/* 002F1C 7000231C 8CCF0000 */ lw $t7, ($a2) +/* 002F20 70002320 3C078006 */ lui $a3, %hi(_am) +/* 002F24 70002324 24E7E518 */ addiu $a3, %lo(_am) # addiu $a3, $a3, -0x1ae8 +/* 002F28 70002328 000FC080 */ sll $t8, $t7, 2 +/* 002F2C 7000232C 00F8C821 */ addu $t9, $a3, $t8 +/* 002F30 70002330 8F280000 */ lw $t0, ($t9) +/* 002F34 70002334 3C058002 */ lui $a1, %hi(rspbootTextStart) +/* 002F38 70002338 3C188002 */ lui $t8, %hi(gsp3DTextStart) +/* 002F3C 7000233C AE080048 */ sw $t0, 0x48($s0) +/* 002F40 70002340 8CC90000 */ lw $t1, ($a2) +/* 002F44 70002344 24A50D90 */ addiu $a1, %lo(rspbootTextStart) # addiu $a1, $a1, 0xd90 +/* 002F48 70002348 27180E60 */ addiu $t8, %lo(gsp3DTextStart) # addiu $t8, $t8, 0xe60 +/* 002F4C 7000234C 00095080 */ sll $t2, $t1, 2 +/* 002F50 70002350 00EA5821 */ addu $t3, $a3, $t2 +/* 002F54 70002354 8D6C0000 */ lw $t4, ($t3) +/* 002F58 70002358 3C088002 */ lui $t0, %hi(aspMainTextStart) +/* 002F5C 7000235C 3C098006 */ lui $t1, %hi(aspMainDataStart) +/* 002F60 70002360 004C6823 */ subu $t5, $v0, $t4 +/* 002F64 70002364 000D70C3 */ sra $t6, $t5, 3 +/* 002F68 70002368 000E78C0 */ sll $t7, $t6, 3 +/* 002F6C 7000236C 0305C823 */ subu $t9, $t8, $a1 +/* 002F70 70002370 25082280 */ addiu $t0, %lo(aspMainTextStart) # addiu $t0, $t0, 0x2280 +/* 002F74 70002374 2529D020 */ addiu $t1, %lo(aspMainDataStart) # addiu $t1, $t1, -0x2fe0 +/* 002F78 70002378 240A0800 */ li $t2, 2048 +/* 002F7C 7000237C 3C048006 */ lui $a0, %hi(sc) +/* 002F80 70002380 AE0F004C */ sw $t7, 0x4c($s0) +/* 002F84 70002384 AE030018 */ sw $v1, 0x18($s0) +/* 002F88 70002388 AE050020 */ sw $a1, 0x20($s0) +/* 002F8C 7000238C AE190024 */ sw $t9, 0x24($s0) +/* 002F90 70002390 AE00001C */ sw $zero, 0x1c($s0) +/* 002F94 70002394 AE080028 */ sw $t0, 0x28($s0) +/* 002F98 70002398 AE090030 */ sw $t1, 0x30($s0) +/* 002F9C 7000239C AE0A0034 */ sw $t2, 0x34($s0) +/* 002FA0 700023A0 AE000050 */ sw $zero, 0x50($s0) +/* 002FA4 700023A4 AE000054 */ sw $zero, 0x54($s0) +/* 002FA8 700023A8 0C00033E */ jal osScGetCmdQ +/* 002FAC 700023AC 2484DA40 */ addiu $a0, %lo(sc) # addiu $a0, $a0, -0x25c0 +/* 002FB0 700023B0 00402025 */ move $a0, $v0 +/* 002FB4 700023B4 26050008 */ addiu $a1, $s0, 8 +/* 002FB8 700023B8 0C0037C4 */ jal osSendMesg +/* 002FBC 700023BC 00003025 */ move $a2, $zero +/* 002FC0 700023C0 3C038002 */ lui $v1, %hi(curAcmdList) +/* 002FC4 700023C4 246330FC */ addiu $v1, %lo(curAcmdList) # addiu $v1, $v1, 0x30fc +/* 002FC8 700023C8 8C6B0000 */ lw $t3, ($v1) +/* 002FCC 700023CC 8FBF001C */ lw $ra, 0x1c($sp) +/* 002FD0 700023D0 8FB00018 */ lw $s0, 0x18($sp) +/* 002FD4 700023D4 396C0001 */ xori $t4, $t3, 1 +/* 002FD8 700023D8 AC6C0000 */ sw $t4, ($v1) +/* 002FDC 700023DC 03E00008 */ jr $ra +/* 002FE0 700023E0 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + +/** + * 2FE4 700023E4 + */ +#ifdef NONMATCHING +void __amHandleDoneMsg(AudioInfo *info) { + int samplesLeft; + + samplesLeft = osAiGetLength(); + if ((samplesLeft >> 2 == 0) && (firstTime == 0)) { + firstTime = 0; + } +} +#else +GLOBAL_ASM( +.text +glabel __amHandleDoneMsg +/* 002FE4 700023E4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 002FE8 700023E8 AFBF0014 */ sw $ra, 0x14($sp) +/* 002FEC 700023EC 0C003BEC */ jal osAiGetLength +/* 002FF0 700023F0 AFA40018 */ sw $a0, 0x18($sp) +/* 002FF4 700023F4 00027083 */ sra $t6, $v0, 2 +/* 002FF8 700023F8 15C00006 */ bnez $t6, .L70002414 +/* 002FFC 700023FC 3C0F8002 */ lui $t7, %hi(firstTime) +/* 003000 70002400 8DEF31C8 */ lw $t7, %lo(firstTime)($t7) +/* 003004 70002404 3C018002 */ lui $at, %hi(firstTime) +/* 003008 70002408 55E00003 */ bnezl $t7, .L70002418 +/* 00300C 7000240C 8FBF0014 */ lw $ra, 0x14($sp) +/* 003010 70002410 AC2031C8 */ sw $zero, %lo(firstTime)($at) +.L70002414: +/* 003014 70002414 8FBF0014 */ lw $ra, 0x14($sp) +.L70002418: +/* 003018 70002418 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00301C 7000241C 03E00008 */ jr $ra +/* 003020 70002420 00000000 */ nop +) +#endif + +/** + * 3024 70002424 + */ +#ifdef NONMATCHING +s32 __amDMA(u32 arg0, s32 arg1, ? arg2, s32 arg14) { + s32 sp30; + s32 sp48; + ?32 sp4C; + s32 temp_t2; + s32 temp_a3; + + // Node 0 + temp_t2 = (arg0 & 1); + sp48 = temp_t2; + if (dmaState_initialized.unk4 != 0) + { + loop_1: + // Node 1 + if (arg0 >= (u32) dmaState_initialized.unk4->unk8) + { + // Node 2 + if ((dmaState_initialized.unk4->unk8 + 0x200) >= (arg0 + arg1)) + { + // Node 3 + dmaState_initialized.unk4->unkC = (?32) audFrameCt; + osVirtualToPhysical(((dmaState_initialized.unk4->unk10 + arg0) - dmaState_initialized.unk4->unk8), dmaState_initialized.unk4, arg0); + return; + // (possible return value: osVirtualToPhysical(((dmaState_initialized.unk4->unk10 + arg0) - dmaState_initialized.unk4->unk8), dmaState_initialized.unk4, arg0)) + } + // Node 4 + if (*dmaState_initialized.unk4 != 0) + { + goto loop_1; + } + } + } + // Node 5 + if (dmaState_initialized.unk8 == 0) + { + // Node 6 + if (NULL == 0) + { + // Node 7 + } + // Node 8 + sp30 = temp_t2; + osVirtualToPhysical(NULL->unk10, NULL, arg0); + } + else + { + // Node 9 + dmaState_initialized.unk8 = (void *) *dmaState_initialized.unk8; + alUnlink(dmaState_initialized.unk8, NULL, arg0); + if (sp38 != 0) + { + // Node 10 + alLink(dmaState_initialized.unk8, sp38, sp38, arg14); + } + else + { + // Node 11 + if (dmaState_initialized.unk4 != 0) + { + // Node 12 + dmaState_initialized.unk4 = (void *) dmaState_initialized.unk8; + *dmaState_initialized.unk8 = (void *) dmaState_initialized.unk4; + dmaState_initialized.unk8->unk4 = 0; + dmaState_initialized.unk4->unk4 = (void *) dmaState_initialized.unk8; + } + else + { + // Node 13 + dmaState_initialized.unk4 = (void *) dmaState_initialized.unk8; + *dmaState_initialized.unk8 = NULL; + dmaState_initialized.unk8->unk4 = 0; + } + } + // Node 14 + temp_a3 = (arg14 - sp48); + dmaState_initialized.unk8->unk8 = temp_a3; + dmaState_initialized.unk8->unkC = (?32) audFrameCt; + nextDMA = (s32) (nextDMA + 1); + sp4C = (?32) dmaState_initialized.unk8->unk10; + osPiStartDma(((nextDMA * 0x18) + &audDMAIOMesgBuf), 1, 0, temp_a3, (?32) dmaState_initialized.unk8->unk10, 0x200, &audDMAMessageQ); + osVirtualToPhysical(sp4C); + } + // Node 15 + return; + // (possible return value: (osVirtualToPhysical(sp4C) + sp48)) +} +#else +GLOBAL_ASM( +.text +glabel __amDMA +/* 003024 70002424 3C098006 */ lui $t1, %hi(dmaState_initialized) +/* 003028 70002428 2529E7B0 */ addiu $t1, %lo(dmaState_initialized) # addiu $t1, $t1, -0x1850 +/* 00302C 7000242C 8D280004 */ lw $t0, 4($t1) +/* 003030 70002430 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 003034 70002434 AFB00028 */ sw $s0, 0x28($sp) +/* 003038 70002438 AFA60058 */ sw $a2, 0x58($sp) +/* 00303C 7000243C 308A0001 */ andi $t2, $a0, 1 +/* 003040 70002440 AFBF002C */ sw $ra, 0x2c($sp) +/* 003044 70002444 00803825 */ move $a3, $a0 +/* 003048 70002448 00003025 */ move $a2, $zero +/* 00304C 7000244C AFAA0048 */ sw $t2, 0x48($sp) +/* 003050 70002450 11000015 */ beqz $t0, .L700024A8 +/* 003054 70002454 01008025 */ move $s0, $t0 +/* 003058 70002458 8E020008 */ lw $v0, 8($s0) +.L7000245C: +/* 00305C 7000245C 00E57021 */ addu $t6, $a3, $a1 +/* 003060 70002460 00E2082B */ sltu $at, $a3, $v0 +/* 003064 70002464 14200010 */ bnez $at, .L700024A8 +/* 003068 70002468 24430200 */ addiu $v1, $v0, 0x200 +/* 00306C 7000246C 006E082A */ slt $at, $v1, $t6 +/* 003070 70002470 1420000A */ bnez $at, .L7000249C +/* 003074 70002474 02003025 */ move $a2, $s0 +/* 003078 70002478 8E180010 */ lw $t8, 0x10($s0) +/* 00307C 7000247C 3C0F8002 */ lui $t7, %hi(audFrameCt) +/* 003080 70002480 8DEF30F4 */ lw $t7, %lo(audFrameCt)($t7) +/* 003084 70002484 0307C821 */ addu $t9, $t8, $a3 +/* 003088 70002488 03222023 */ subu $a0, $t9, $v0 +/* 00308C 7000248C 0C003A2C */ jal osVirtualToPhysical +/* 003090 70002490 AE0F000C */ sw $t7, 0xc($s0) +/* 003094 70002494 1000004C */ b .L700025C8 +/* 003098 70002498 8FBF002C */ lw $ra, 0x2c($sp) +.L7000249C: +/* 00309C 7000249C 8E100000 */ lw $s0, ($s0) +/* 0030A0 700024A0 5600FFEE */ bnezl $s0, .L7000245C +/* 0030A4 700024A4 8E020008 */ lw $v0, 8($s0) +.L700024A8: +/* 0030A8 700024A8 8D300008 */ lw $s0, 8($t1) +/* 0030AC 700024AC 1600000A */ bnez $s0, .L700024D8 +/* 0030B0 700024B0 02002025 */ move $a0, $s0 +/* 0030B4 700024B4 54C00003 */ bnezl $a2, .L700024C4 +/* 0030B8 700024B8 8CC40010 */ lw $a0, 0x10($a2) +/* 0030BC 700024BC 01003025 */ move $a2, $t0 +/* 0030C0 700024C0 8CC40010 */ lw $a0, 0x10($a2) +.L700024C4: +/* 0030C4 700024C4 0C003A2C */ jal osVirtualToPhysical +/* 0030C8 700024C8 AFAA0030 */ sw $t2, 0x30($sp) +/* 0030CC 700024CC 8FAA0030 */ lw $t2, 0x30($sp) +/* 0030D0 700024D0 1000003C */ b .L700025C4 +/* 0030D4 700024D4 004A1021 */ addu $v0, $v0, $t2 +.L700024D8: +/* 0030D8 700024D8 8E0B0000 */ lw $t3, ($s0) +/* 0030DC 700024DC AFA70050 */ sw $a3, 0x50($sp) +/* 0030E0 700024E0 AFA60038 */ sw $a2, 0x38($sp) +/* 0030E4 700024E4 0C003AA4 */ jal alUnlink +/* 0030E8 700024E8 AD2B0008 */ sw $t3, 8($t1) +/* 0030EC 700024EC 8FA60038 */ lw $a2, 0x38($sp) +/* 0030F0 700024F0 3C098006 */ lui $t1, %hi(dmaState_initialized) +/* 0030F4 700024F4 2529E7B0 */ addiu $t1, %lo(dmaState_initialized) # addiu $t1, $t1, -0x1850 +/* 0030F8 700024F8 10C00007 */ beqz $a2, .L70002518 +/* 0030FC 700024FC 8FA70050 */ lw $a3, 0x50($sp) +/* 003100 70002500 02002025 */ move $a0, $s0 +/* 003104 70002504 00C02825 */ move $a1, $a2 +/* 003108 70002508 0C003AB0 */ jal alLink +/* 00310C 7000250C AFA70050 */ sw $a3, 0x50($sp) +/* 003110 70002510 1000000C */ b .L70002544 +/* 003114 70002514 8FA70050 */ lw $a3, 0x50($sp) +.L70002518: +/* 003118 70002518 8D280004 */ lw $t0, 4($t1) +/* 00311C 7000251C 51000007 */ beql $t0, $zero, .L7000253C +/* 003120 70002520 AD300004 */ sw $s0, 4($t1) +/* 003124 70002524 AD300004 */ sw $s0, 4($t1) +/* 003128 70002528 AE080000 */ sw $t0, ($s0) +/* 00312C 7000252C AE000004 */ sw $zero, 4($s0) +/* 003130 70002530 10000004 */ b .L70002544 +/* 003134 70002534 AD100004 */ sw $s0, 4($t0) +/* 003138 70002538 AD300004 */ sw $s0, 4($t1) +.L7000253C: +/* 00313C 7000253C AE000000 */ sw $zero, ($s0) +/* 003140 70002540 AE000004 */ sw $zero, 4($s0) +.L70002544: +/* 003144 70002544 8FAC0048 */ lw $t4, 0x48($sp) +/* 003148 70002548 3C0D8002 */ lui $t5, %hi(audFrameCt) +/* 00314C 7000254C 3C088002 */ lui $t0, %hi(nextDMA) +/* 003150 70002550 00EC3823 */ subu $a3, $a3, $t4 +/* 003154 70002554 AE070008 */ sw $a3, 8($s0) +/* 003158 70002558 8DAD30F4 */ lw $t5, %lo(audFrameCt)($t5) +/* 00315C 7000255C 250830F8 */ addiu $t0, %lo(nextDMA) # addiu $t0, $t0, 0x30f8 +/* 003160 70002560 8E030010 */ lw $v1, 0x10($s0) +/* 003164 70002564 AE0D000C */ sw $t5, 0xc($s0) +/* 003168 70002568 8D020000 */ lw $v0, ($t0) +/* 00316C 7000256C 3C0F8006 */ lui $t7, %hi(audDMAIOMesgBuf) +/* 003170 70002570 3C198006 */ lui $t9, %hi(audDMAMessageQ) +/* 003174 70002574 00027080 */ sll $t6, $v0, 2 +/* 003178 70002578 01C27023 */ subu $t6, $t6, $v0 +/* 00317C 7000257C 000E70C0 */ sll $t6, $t6, 3 +/* 003180 70002580 2739F2D0 */ addiu $t9, %lo(audDMAMessageQ) # addiu $t9, $t9, -0xd30 +/* 003184 70002584 25EFECD0 */ addiu $t7, %lo(audDMAIOMesgBuf) # addiu $t7, $t7, -0x1330 +/* 003188 70002588 24180200 */ li $t8, 512 +/* 00318C 7000258C 244B0001 */ addiu $t3, $v0, 1 +/* 003190 70002590 AD0B0000 */ sw $t3, ($t0) +/* 003194 70002594 AFB80014 */ sw $t8, 0x14($sp) +/* 003198 70002598 01CF2021 */ addu $a0, $t6, $t7 +/* 00319C 7000259C AFB90018 */ sw $t9, 0x18($sp) +/* 0031A0 700025A0 24050001 */ li $a1, 1 +/* 0031A4 700025A4 00003025 */ move $a2, $zero +/* 0031A8 700025A8 AFA3004C */ sw $v1, 0x4c($sp) +/* 0031AC 700025AC 0C003DA8 */ jal osPiStartDma +/* 0031B0 700025B0 AFA30010 */ sw $v1, 0x10($sp) +/* 0031B4 700025B4 0C003A2C */ jal osVirtualToPhysical +/* 0031B8 700025B8 8FA4004C */ lw $a0, 0x4c($sp) +/* 0031BC 700025BC 8FAC0048 */ lw $t4, 0x48($sp) +/* 0031C0 700025C0 004C1021 */ addu $v0, $v0, $t4 +.L700025C4: +/* 0031C4 700025C4 8FBF002C */ lw $ra, 0x2c($sp) +.L700025C8: +/* 0031C8 700025C8 8FB00028 */ lw $s0, 0x28($sp) +/* 0031CC 700025CC 27BD0050 */ addiu $sp, $sp, 0x50 +/* 0031D0 700025D0 03E00008 */ jr $ra +/* 0031D4 700025D4 00000000 */ nop +) +#endif + +/** + * 31D8 700025D8 + */ +#ifdef NONMATCHING +void *__amDmaNew(void *arg0) { + // Node 0 + if (dmaState_initialized == 0) + { + // Node 1 + dmaState_initialized.unk4 = 0; + dmaState_initialized.unk8 = &dmaBuffs; + dmaState_initialized = (u8)1; + } + // Node 2 + *arg0 = &dmaState_initialized; + return; + // (possible return value: &__amDMA) +} +#else +GLOBAL_ASM( +.text +glabel __amDmaNew +/* 0031D8 700025D8 3C038006 */ lui $v1, %hi(dmaState_initialized) +/* 0031DC 700025DC 2463E7B0 */ addiu $v1, %lo(dmaState_initialized) # addiu $v1, $v1, -0x1850 +/* 0031E0 700025E0 906E0000 */ lbu $t6, ($v1) +/* 0031E4 700025E4 3C027000 */ lui $v0, %hi(__amDMA) # $v0, 0x7000 +/* 0031E8 700025E8 3C0F8006 */ lui $t7, %hi(dmaBuffs) +/* 0031EC 700025EC 15C00006 */ bnez $t6, .L70002608 +/* 0031F0 700025F0 24422424 */ addiu $v0, %lo(__amDMA) # addiu $v0, $v0, 0x2424 +/* 0031F4 700025F4 25EFE7C0 */ addiu $t7, %lo(dmaBuffs) # addiu $t7, $t7, -0x1840 +/* 0031F8 700025F8 24180001 */ li $t8, 1 +/* 0031FC 700025FC AC600004 */ sw $zero, 4($v1) +/* 003200 70002600 AC6F0008 */ sw $t7, 8($v1) +/* 003204 70002604 A0780000 */ sb $t8, ($v1) +.L70002608: +/* 003208 70002608 03E00008 */ jr $ra +/* 00320C 7000260C AC830000 */ sw $v1, ($a0) +) +#endif + +/** + * 3210 70002610 + */ +#ifdef NONMATCHING +void __clearAudioDMA(void) { + ?32 sp40; + + // Node 0 + sp40 = 0; + if (nextDMA != 0) + { + // Node 1 + // Node 2 + osRecvMesg(&audDMAMessageQ, &sp40, 0); + if ((u32) (0 + 1) < (u32) nextDMA) + { + goto loop_2; + } + } + // Node 3 + if (dmaState_initialized.unk4 != 0) + { + loop_4: + // Node 4 + if ((u32) (dmaState_initialized.unk4->unkC + 1) < (u32) audFrameCt) + { + // Node 5 + if (dmaState_initialized.unk4 == dmaState_initialized.unk4) + { + // Node 6 + dmaState_initialized.unk4 = (void *) *dmaState_initialized.unk4; + } + // Node 7 + alUnlink(dmaState_initialized.unk4); + if (dmaState_initialized.unk8 != 0) + { + // Node 8 + alLink(dmaState_initialized.unk4, dmaState_initialized.unk8); + } + else + { + // Node 9 + dmaState_initialized.unk8 = (void *) dmaState_initialized.unk4; + *dmaState_initialized.unk4 = NULL; + dmaState_initialized.unk4->unk4 = 0; + } + } + // Node 10 + if (*dmaState_initialized.unk4 != 0) + { + goto loop_4; + } + } + // Node 11 + nextDMA = 0U; + audFrameCt = (u32) (audFrameCt + 1); + return; + // (function likely void) +} +#else +GLOBAL_ASM( +.text +glabel __clearAudioDMA +/* 003210 70002610 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 003214 70002614 AFB40028 */ sw $s4, 0x28($sp) +/* 003218 70002618 3C148002 */ lui $s4, %hi(nextDMA) +/* 00321C 7000261C 269430F8 */ addiu $s4, %lo(nextDMA) # addiu $s4, $s4, 0x30f8 +/* 003220 70002620 8E8E0000 */ lw $t6, ($s4) +/* 003224 70002624 AFB00018 */ sw $s0, 0x18($sp) +/* 003228 70002628 AFBF002C */ sw $ra, 0x2c($sp) +/* 00322C 7000262C AFB30024 */ sw $s3, 0x24($sp) +/* 003230 70002630 AFB20020 */ sw $s2, 0x20($sp) +/* 003234 70002634 AFB1001C */ sw $s1, 0x1c($sp) +/* 003238 70002638 AFA00040 */ sw $zero, 0x40($sp) +/* 00323C 7000263C 11C0000D */ beqz $t6, .L70002674 +/* 003240 70002640 00008025 */ move $s0, $zero +/* 003244 70002644 3C118006 */ lui $s1, %hi(audDMAMessageQ) +/* 003248 70002648 2631F2D0 */ addiu $s1, %lo(audDMAMessageQ) # addiu $s1, $s1, -0xd30 +/* 00324C 7000264C 27B20040 */ addiu $s2, $sp, 0x40 +/* 003250 70002650 02202025 */ move $a0, $s1 +.L70002654: +/* 003254 70002654 02402825 */ move $a1, $s2 +/* 003258 70002658 0C003774 */ jal osRecvMesg +/* 00325C 7000265C 00003025 */ move $a2, $zero +/* 003260 70002660 8E8F0000 */ lw $t7, ($s4) +/* 003264 70002664 26100001 */ addiu $s0, $s0, 1 +/* 003268 70002668 020F082B */ sltu $at, $s0, $t7 +/* 00326C 7000266C 5420FFF9 */ bnezl $at, .L70002654 +/* 003270 70002670 02202025 */ move $a0, $s1 +.L70002674: +/* 003274 70002674 3C128006 */ lui $s2, %hi(dmaState_initialized) +/* 003278 70002678 2652E7B0 */ addiu $s2, %lo(dmaState_initialized) # addiu $s2, $s2, -0x1850 +/* 00327C 7000267C 8E500004 */ lw $s0, 4($s2) +/* 003280 70002680 3C138002 */ lui $s3, %hi(audFrameCt) +/* 003284 70002684 267330F4 */ addiu $s3, %lo(audFrameCt) # addiu $s3, $s3, 0x30f4 +/* 003288 70002688 1200001A */ beqz $s0, .L700026F4 +/* 00328C 7000268C 00000000 */ nop +.L70002690: +/* 003290 70002690 8E19000C */ lw $t9, 0xc($s0) +/* 003294 70002694 8E780000 */ lw $t8, ($s3) +/* 003298 70002698 8E020000 */ lw $v0, ($s0) +/* 00329C 7000269C 27280001 */ addiu $t0, $t9, 1 +/* 0032A0 700026A0 0118082B */ sltu $at, $t0, $t8 +/* 0032A4 700026A4 10200011 */ beqz $at, .L700026EC +/* 0032A8 700026A8 00408825 */ move $s1, $v0 +/* 0032AC 700026AC 8E490004 */ lw $t1, 4($s2) +/* 0032B0 700026B0 16090002 */ bne $s0, $t1, .L700026BC +/* 0032B4 700026B4 00000000 */ nop +/* 0032B8 700026B8 AE420004 */ sw $v0, 4($s2) +.L700026BC: +/* 0032BC 700026BC 0C003AA4 */ jal alUnlink +/* 0032C0 700026C0 02002025 */ move $a0, $s0 +/* 0032C4 700026C4 8E450008 */ lw $a1, 8($s2) +/* 0032C8 700026C8 50A00006 */ beql $a1, $zero, .L700026E4 +/* 0032CC 700026CC AE500008 */ sw $s0, 8($s2) +/* 0032D0 700026D0 0C003AB0 */ jal alLink +/* 0032D4 700026D4 02002025 */ move $a0, $s0 +/* 0032D8 700026D8 10000004 */ b .L700026EC +/* 0032DC 700026DC 00000000 */ nop +/* 0032E0 700026E0 AE500008 */ sw $s0, 8($s2) +.L700026E4: +/* 0032E4 700026E4 AE000000 */ sw $zero, ($s0) +/* 0032E8 700026E8 AE000004 */ sw $zero, 4($s0) +.L700026EC: +/* 0032EC 700026EC 1620FFE8 */ bnez $s1, .L70002690 +/* 0032F0 700026F0 02208025 */ move $s0, $s1 +.L700026F4: +/* 0032F4 700026F4 3C138002 */ lui $s3, %hi(audFrameCt) +/* 0032F8 700026F8 267330F4 */ addiu $s3, %lo(audFrameCt) # addiu $s3, $s3, 0x30f4 +/* 0032FC 700026FC 8E6A0000 */ lw $t2, ($s3) +/* 003300 70002700 8FBF002C */ lw $ra, 0x2c($sp) +/* 003304 70002704 AE800000 */ sw $zero, ($s4) +/* 003308 70002708 254B0001 */ addiu $t3, $t2, 1 +/* 00330C 7000270C AE6B0000 */ sw $t3, ($s3) +/* 003310 70002710 8FB30024 */ lw $s3, 0x24($sp) +/* 003314 70002714 8FB40028 */ lw $s4, 0x28($sp) +/* 003318 70002718 8FB00018 */ lw $s0, 0x18($sp) +/* 00331C 7000271C 8FB1001C */ lw $s1, 0x1c($sp) +/* 003320 70002720 8FB20020 */ lw $s2, 0x20($sp) +/* 003324 70002724 03E00008 */ jr $ra +/* 003328 70002728 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + diff --git a/src/audi.h b/src/audi.h new file mode 100644 index 0000000..6e1102d --- /dev/null +++ b/src/audi.h @@ -0,0 +1,7 @@ +#ifndef _AUDI_H_ +#define _AUDI_H_ + +void amCreateAudioMgr(void); +void startaudiThread(void); + +#endif diff --git a/src/bondaicommands.h b/src/bondaicommands.h new file mode 100644 index 0000000..d23287d --- /dev/null +++ b/src/bondaicommands.h @@ -0,0 +1,3907 @@ +#ifndef _BONDAICOMMANDS_H_ +#define _BONDAICOMMANDS_H_ +#include "ultra64.h" + +#define chararray16(input) (input & 0xFF00) >> 8, input & 0x00FF +#define chararray24(input) (input & 0xFF0000) >> 16, (input & 0x00FF00) >> 8, input & 0x0000FF +#define chararray32(input) (input & 0xFF000000) >> 24, (input & 0x00FF0000) >> 16, (input & 0x0000FF00) >> 8, input & 0x000000FF + +/*============================================================================= +// chr ai commands reference +// programmed by mark edmonds +//============================================================================= +// terminology: +// chr character +// obj objective +// list list of ai commands - list must end with 04 command +// glist global list +// chr ai lists 0401-04FF range +// obj ai lists 1000-10FF range +// global ai lists 0000-0011 range +//============================================================================= +// ai list intro +//============================================================================= +// ai list are a list of ai commands that are executed from top to bottom. +// they are used to control guard ai (fire, chase, go to position, etc) and +// objective ai (objective logic, mission fail state, spawning guards, etc) +//============================================================================= +// character ai list info +//============================================================================= +// chr ai lists drive the gameplay, such as attacking/chasing player. a chr ai +// list will not execute until a guard is assigned that list (unlike obj lists). +// multiple guards can use the same ai list - each guard is treated as a independent +// thread with their own instance of unique data +//============================================================================= +// objective ai list info +//============================================================================= +// each obj ai list (10XX) will have with a obj ai assigned at at level start. +// obj ai lists run continuously in the background without a guard attached. +// they still have a chr struct but lack a model/position in the level, they are +// commonly used for level scripting (objectives) or monitoring guard spawns. +// obj ai lists cannot run guard commands due to the lack of level presence +//============================================================================= +// global ai list info +//============================================================================= +// global ai lists are 0x11 useful lists accessible with every level. the above +// lists (chr/obj) are unique to each level setup file, compared to global lists +// which are accessible throughout the entire game. they contain generic ai lists +// used for most levels +//============================================================================= +// ai command note +//============================================================================= +// commands with guard/vehicle/aircraft prefix are exclusive to chr ai lists, +// they can't be executed by obj ai lists (10XX) or it will crash! commands with +// chr prefix can be used by obj/chr ai lists - exceptions to this rule are detailed +// within the command description +//============================================================================= +// ai commands with chr number argument +//============================================================================= +// most commands with a chr prefix use a chr number argument. for the most part, +// this can be used with any loaded chr num and it will work fine. there is however +// one exception to this and that is special chr num ID CHR_BOND_CINEMA. this ID +// only works when bond has a third person model assigned (intro/exit cutscene). +// only use CHR_BOND_CINEMA for intro/exit cutscene specific logic +//============================================================================= +// vehicle/aircraft ai command +//============================================================================= +// commands with a vehicle/aircraft prefix can only be executed by vehicle/aircraft +// objects. these types of objects do not use a chr struct. most non-vehicle +// commands will crash if they try to access caller's chr struct +//============================================================================= +// ai commands with label argument +//============================================================================= +// most commands will have a label argument in their function description. this +// is used when a command has a false/true state. for example, the run to bond +// command (28) has goto label argument. when the command is executed, it will +// check if the guard is able to run to bond. if for some reason the command fails +// (bond is unreachable/guard is dying/etc) then the command will not goto label +// and the next command will be executed. the most common use of commands with +// goto labels are jumping out of an infinite loop - for an example check global +// ai list GLIST_STARTLE_CHR_AND_RUN_TO_BOND_SUBROUTINE +//===========================================================================*/ + +#define AI_LIST_GLOBAL_START 0x0000 +#define AI_LIST_CHR_START 0x0401 +#define AI_LIST_OBJ_START 0x1000 + +#define AI_CMDS_TOTAL (object_rocket_launch_ID + 1) + +/*============================================================================= +// global ai lists - glists +//===========================================================================*/ +#define GLIST_AIM_AT_BOND 0x0000 // continuously aim at bond with weapon +#define GLIST_END_ROUTINE 0x0001 // end routine (loop forever) +#define GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE 0x0002 // wait for bond detection (spawn clone when heard bond) +#define GLIST_IDLE_RAND_ANIM_SUBROUTINE 0x0003 // play idle animation (subroutine) +#define GLIST_KEYBOARD_RAND_ANIM_SUBROUTINE 0x0004 // play use keyboard animation (subroutine) +#define GLIST_DETECT_BOND_DEAF_NO_CLONE_NO_IDLE_ANIM 0x0005 // wait for bond detection (deaf/no clones/no idling) +#define GLIST_FIRE_RAND_ANIM_SUBROUTINE 0x0006 // fire at bond with random animation (subroutine) +#define GLIST_DETECT_BOND_NO_CLONE_NO_IDLE_ANIM 0x0007 // wait for bond detection (no clones/no idling) +#define GLIST_RUN_TO_BOND_SUBROUTINE 0x0008 // run to bond and fire (subroutine) +#define GLIST_RUN_TO_CHR_PADPRESET_AND_ACTIVATE_ALARM 0x0009 // run to chr->padpreset1 and activate alarm +#define GLIST_STARTLE_CHR_AND_RUN_TO_BOND_SUBROUTINE 0x000A // startle character (subroutine) +#define GLIST_SPAWN_CLONE_OR_RUN_TO_BOND 0x000B // if chr has been seen, run to bond - else spawn clone +#define GLIST_RUN_TO_BOND_AND_FIRE 0x000C // run to bond and fire +#define GLIST_RUN_TO_BOND_AND_FIRE_HALT_CHR_RANDOMLY 0x000D // forever chase bond and fire (halt randomly) +#define GLIST_WAIT_ONE_SECOND_SUBROUTINE 0x000E // wait for one second (subroutine) +#define GLIST_EXIT_LEVEL 0x000F // exit level +#define GLIST_DRAW_DD44_AND_FIRE 0x0010 // draw dd44 and fire +#define GLIST_REMOVE_CHR 0x0011 // remove chr +/*===========================================================================*/ + +/*============================================================================= +// command bitfield flags and common settings +//===========================================================================*/ +// command 0A - animation flags +#define ANIM_MIRROR 0x01 // mirror animation +#define ANIM_UNKNOWN 0x02 // ?? (cancels no translation flag) +#define ANIM_LOOP_HOLD_LAST_FRAME 0x04 // loop/hold last frame (required for reverse flag) +#define ANIM_PLAY_SFX 0x08 // play sneeze sfx with animation 9F (triggers 50% of the time) +#define ANIM_IDLE_POSE_WHEN_COMPLETE 0x10 // idle pose after animation has completed (does not work with looping animations) +#define ANIM_TRANSLATION_SCALE_4X 0x20 // translation scale multiplier x4 (used for dam and cradle cinema) +#define ANIM_NO_TRANSLATION 0x40 // no translation +#define ANIM_REVERSE_LOOPING_ANIMATION 0x80 // reverse animation (only for looped animations) + +#define ANIM_DEFAULT_INTERPOLATION 0x10 // use this if interpolation value isn't important + +// command 14/15/16/17 - target flags +#define TARGET_BOND 0x0001 // set target to bond (ignores target argument) +#define TARGET_FRONT_OF_CHR 0x0002 // set target to front of chr +#define TARGET_CHR 0x0004 // set target type to chr_num +#define TARGET_PAD 0x0008 // set target type to pad +#define TARGET_COMPASS 0x0010 // set target to compass direction (hex) N: 0000 E: C000 S: 8000: W: 4000 +#define TARGET_AIM_ONLY 0x0020 // aim at target instead of firing +#define TARGET_180_RANGE 0x0040 // limits target to 180 degrees in front of guard (cannot be used with bond target flag) + +// command 18/19 - target body part values +#define HIT_NULL_PART 0x00 // null part, no reaction - 1x damage +#define HIT_LEFT_FOOT 0x01 // left foot - 1x damage +#define HIT_LEFT_LEG 0x02 // left leg - 1x damage +#define HIT_LEFT_THIGH 0x03 // left thigh - 1x damage +#define HIT_RIGHT_FOOT 0x04 // right foot - 1x damage +#define HIT_RIGHT_LEG 0x05 // right leg - 1x damage +#define HIT_RIGHT_THIGH 0x06 // right thigh - 1x damage +#define HIT_PELVIS 0x07 // pelvis - 1x damage +#define HIT_HEAD 0x08 // head - 4x damage +#define HIT_LEFT_HAND 0x09 // left hand - 1x damage +#define HIT_LEFT_ARM 0x0A // left arm - 1x damage +#define HIT_LEFT_SHOULDER 0x0B // left shoulder - 1x damage +#define HIT_RIGHT_HAND 0x0C // right hand - 1x damage +#define HIT_RIGHT_ARM 0x0D // right arm - 1x damage +#define HIT_RIGHT_SHOULDER 0x0E // right shoulder - 1x damage +#define HIT_CHEST 0x0F // chest - 2x damage + +// command 68 - door states +#define DOOR_STATE_CLOSED 0x01 // closed +#define DOOR_STATE_OPEN 0x02 // opened +#define DOOR_STATE_CLOSING 0x04 // closing +#define DOOR_STATE_OPENING 0x08 // opening + +// command BD/BE - spawn flags +#define SPAWN_SUNGLASSES 0x00000001 // sunglasses +#define SPAWN_SUNGLASSES_RANDOM 0x00000002 // sunglasses (random, 50% of the time) +#define SPAWN_00000004 0x00000004 // unknown +#define SPAWN_00000008 0x00000008 // unknown +#define SPAWN_IGNORE_PAD_SIGHT_CHECK 0x00000010 // ignore check for pad within view (force spawn) +#define SPAWN_00000020 0x00000020 // unknown +#define SPAWN_00000040 0x00000040 // unknown +#define SPAWN_00000080 0x00000080 // unknown +#define SPAWN_00000100 0x00000100 // unknown +#define SPAWN_00000200 0x00000200 // unknown +#define SPAWN_00000400 0x00000400 // unknown +#define SPAWN_00000800 0x00000800 // unknown +#define SPAWN_00001000 0x00001000 // unknown +#define SPAWN_00002000 0x00002000 // unknown +#define SPAWN_00004000 0x00004000 // unknown +#define SPAWN_00008000 0x00008000 // unknown +#define SPAWN_00010000 0x00010000 // unknown +#define SPAWN_00020000 0x00020000 // unknown +#define SPAWN_00040000 0x00040000 // unknown +#define SPAWN_00080000 0x00080000 // unknown +#define SPAWN_00100000 0x00100000 // unknown +#define SPAWN_00200000 0x00200000 // unknown +#define SPAWN_00400000 0x00400000 // unknown +#define SPAWN_00800000 0x00800000 // unknown +#define SPAWN_01000000 0x01000000 // unknown +#define SPAWN_02000000 0x02000000 // unknown +#define SPAWN_04000000 0x04000000 // unknown +#define SPAWN_08000000 0x08000000 // unknown +#define SPAWN_10000000 0x10000000 // unknown +#define SPAWN_20000000 0x20000000 // unknown +#define SPAWN_40000000 0x40000000 // unknown +#define SPAWN_80000000 0x80000000 // unknown + +// command D7 - hud flags +#define HUD_HIDE_ALL 0x00 // hide all +#define HUD_SHOW_TEXT_TOP 0x01 // don't hide top text +#define HUD_SHOW_TEXT_BOTTOM 0x02 // don't hide bottom text +#define HUD_SHOW_HUD_COUNTDOWN 0x04 // don't hide hud countdown + +// command 94/95/96/97/98/99 chr->BITFIELD - used for ai list GLIST_FIRE_RAND_ANIM_SUBROUTINE +#define BITFIELD_DONT_POINT_AT_BOND 0x01 // if set, don't point at bond +/*===========================================================================*/ + +/*============================================================================= +// ai command shortcuts +//===========================================================================*/ +#define goto_loop_start(label_id) \ + label(label_id) \ + ai_sleep + +#define goto_loop_repeat(label) \ + goto_first(label) + +#define goto_loop_infinite(label_id) \ + label(label_id) \ + ai_sleep \ + goto_first(label_id) + +#define random_generate_greater_than(byte, label) \ + random_generate_seed \ + if_random_seed_greater_than(byte, label) + +#define random_generate_less_than(byte, label) \ + random_generate_seed \ + if_random_seed_less_than(byte, label) + +#define if_guard_meters_to_bond_less_than(distance, label) \ + if_guard_distance_to_bond_less_than((distance * 10U), label) + +#define if_guard_meters_to_bond_greater_than(distance, label) \ + if_guard_distance_to_bond_greater_than((distance * 10U), label) + +#define if_chr_meters_to_pad_less_than(chr_num, distance, pad, label) \ + if_chr_distance_to_pad_less_than(chr_num, (distance * 10U), pad, label) + +#define if_chr_meters_to_pad_greater_than(chr_num, distance, pad, label) \ + if_chr_distance_to_pad_greater_than(chr_num, (distance * 10U), pad, label) + +#define if_guard_meters_to_chr_less_than(distance, chr_num, label) \ + if_guard_distance_to_chr_less_than((distance * 10U), chr_num, label) + +#define if_guard_meters_to_chr_greater_than(distance, chr_num, label) \ + if_guard_distance_to_chr_greater_than((distance * 10U), chr_num, label) + +#define guard_try_setting_chr_preset_to_guard_within_meters(distance, label) \ + guard_try_setting_chr_preset_to_guard_within_distance((distance * 10U), label) + +#define if_bond_meters_to_pad_less_than(distance, pad, label) \ + if_bond_distance_to_pad_less_than((distance * 10U), pad, label) + +#define if_bond_meters_to_pad_greater_than(distance, pad, label) \ + if_bond_distance_to_pad_greater_than((distance * 10U), pad, label) + +#define debug_log_end \ + '\0', + +#define if_local_timer_seconds_less_than(seconds, label) \ + if_local_timer_less_than((SECS_TO_TIMER60(seconds)), label) + +#define if_local_timer_seconds_greater_than(seconds, label) \ + if_local_timer_greater_than((SECS_TO_TIMER60(seconds)), label) + +#define camera_transition_from_bond \ + bond_hide_weapons \ + ai_sleep \ + ai_sleep \ + ai_sleep + +#define camera_transition_to_bond \ + ai_sleep \ + ai_sleep \ + ai_sleep +/*===========================================================================*/ + +/*============================================================================= +// ai commands macros and information +//============================================================================= +// name and description per command, please read carefully when creating new +// ai lists. ensure that you don't cause loops without a ai_sleep command or else +// command parser will never release and game will softlock +//===========================================================================*/ + +/*============================================================================= +// name: goto_next +// command id: 00 +// info: goto the next label (command 02) - skips all commands between command +// and goto label - continues executing after found label +//===========================================================================*/ +#define goto_next_ID 0x00 +#define goto_next_LENGTH 0x02 +#define goto_next(label) \ + goto_next_ID, \ + label, + +/*============================================================================= +// name: goto_first +// command id: 01 +// info: like goto_next, but it starts scanning label from start of list +//===========================================================================*/ +#define goto_first_ID 0x01 +#define goto_first_LENGTH 0x02 +#define goto_first(label) \ + goto_first_ID, \ + label, + +/*============================================================================= +// name: label +// command id: 02 +// info: label marker for ai list - used for all commands that return true +//===========================================================================*/ +#define label_ID 0x02 +#define label_LENGTH 0x02 +#define label(id) \ + label_ID, \ + id, + +/*============================================================================= +// name: ai_sleep +// command id: 03 +// info: halt the ai list - frees engine to start executing next ai list until +// all lists have been executed for game tick. +//============================================================================= +// note: offscreen/idle guards will take 14 game ticks instead of 1 tick on ai_sleep +//===========================================================================*/ +#define ai_sleep_ID 0x03 +#define ai_sleep_LENGTH 0x01 +#define ai_sleep \ + ai_sleep_ID, + +/*============================================================================= +// name: ai_list_end +// command id: 04 +// info: used for ai list parser to check when list ends +//============================================================================= +// note: not recommended to execute this command - to finish a list create an +// infinite loop (goto_loop_infinite) or jump to GLIST_END_ROUTINE when list has +// finished tasks +//===========================================================================*/ +#define ai_list_end_ID 0x04 +#define ai_list_end_LENGTH 0x01 +#define ai_list_end \ + ai_list_end_ID + +/*============================================================================= +// name: jump_to_ai_list +// command id: 05 +// info: set chr num's current ai list program counter to beginning of a list +//============================================================================= +// note: not recommended to goto an obj list (10XX) +//===========================================================================*/ +#define jump_to_ai_list_ID 0x05 +#define jump_to_ai_list_LENGTH 0x04 +#define jump_to_ai_list(chr_num, ai_list) \ + jump_to_ai_list_ID, \ + chr_num, \ + chararray16(ai_list), + +/*============================================================================= +// name: set_return_ai_list +// command id: 06 +// info: store a list ptr in current chr struct - used for command 07 return +//============================================================================= +// note: not recommended to set stored list to an obj list (10XX) +//===========================================================================*/ +#define set_return_ai_list_ID 0x06 +#define set_return_ai_list_LENGTH 0x03 +#define set_return_ai_list(ai_list) \ + set_return_ai_list_ID, \ + chararray16(ai_list), + +/*============================================================================= +// name: jump_to_return_ai_list +// command id: 07 +// info: jump the return ai list set in chr struct - pointer set by command 06. +// used for subroutine lists. if list pointer isn't set, game will crash +//============================================================================= +// note: after return, set chr->aioffset to top of ai list +//===========================================================================*/ +#define jump_to_return_ai_list_ID 0x07 +#define jump_to_return_ai_list_LENGTH 0x01 +#define jump_to_return_ai_list \ + jump_to_return_ai_list_ID, + +/*============================================================================= +// name: guard_animation_stop +// command id: 08 +// info: reset guard back to idle pose - can be used to stop guards in place +//===========================================================================*/ +#define guard_animation_stop_ID 0x08 +#define guard_animation_stop_LENGTH 0x01 +#define guard_animation_stop \ + guard_animation_stop_ID, + +/*============================================================================= +// name: guard_kneel +// command id: 09 +// info: make guard kneel on one knee +//===========================================================================*/ +#define guard_kneel_ID 0x09 +#define guard_kneel_LENGTH 0x01 +#define guard_kneel \ + guard_kneel_ID, + +/*============================================================================= +// name: guard_play_animation +// command id: 0A +// info: set guard to playback animation +//============================================================================= +// arguments: +// start/end set to -1/-1 will playback the entire animation length. +// interpolation time will set how long it will take to transition from the previous state. +// if interpolation time is too low it may crash! - use 0x10 if unsure. +// start/end keyframe uses animation 30 tick units - interpolation use 60 tick units. +// use ANIM_# flags for bitfield argument +//===========================================================================*/ +#define guard_play_animation_ID 0x0A +#define guard_play_animation_LENGTH 0x09 +#define guard_play_animation(animation_id, start_time30, end_time30, bitfield, interpol_time60) \ + guard_play_animation_ID, \ + chararray16(animation_id), \ + chararray16(start_time30), \ + chararray16(end_time30), \ + bitfield, \ + interpol_time60, + +/*============================================================================= +// name: if_guard_playing_animation +// command id: 0B +// info: if guard is in animation playback state (ACT_ANIM), goto label +//===========================================================================*/ +#define if_guard_playing_animation_ID 0x0B +#define if_guard_playing_animation_LENGTH 0x02 +#define if_guard_playing_animation(label) \ + if_guard_playing_animation_ID, \ + label, + +/*============================================================================= +// name: guard_points_at_bond +// command id: 0C +// info: guard points if bond is directly in front of guard, else command is ignored +//============================================================================= +// note: global ai list GLIST_FIRE_RAND_ANIM_SUBROUTINE skips this command if +// bitfield flag BITFIELD_DONT_POINT_AT_BOND is on +//===========================================================================*/ +#define guard_points_at_bond_ID 0x0C +#define guard_points_at_bond_LENGTH 0x01 +#define guard_points_at_bond \ + guard_points_at_bond_ID, + +/*============================================================================= +// name: guard_looks_around_self +// command id: 0D +// info: set guard to playback animation - used when shots land near guard +//===========================================================================*/ +#define guard_looks_around_self_ID 0x0D +#define guard_looks_around_self_LENGTH 0x01 +#define guard_looks_around_self \ + guard_looks_around_self_ID, + +/*============================================================================= +// name: guard_try_sidestepping +// command id: 0E +// info: trigger guard to sidestep, goto label if successful +//============================================================================= +// note: direction is random +//===========================================================================*/ +#define guard_try_sidestepping_ID 0x0E +#define guard_try_sidestepping_LENGTH 0x02 +#define guard_try_sidestepping(label) \ + guard_try_sidestepping_ID, \ + label, + +/*============================================================================= +// name: guard_try_hopping_sideways +// command id: 0F +// info: trigger guard to hop sideways, goto label if successful +//============================================================================= +// note: direction is random +//===========================================================================*/ +#define guard_try_hopping_sideways_ID 0x0F +#define guard_try_hopping_sideways_LENGTH 0x02 +#define guard_try_hopping_sideways(label) \ + guard_try_hopping_sideways_ID, \ + label, + +/*============================================================================= +// name: guard_try_running_to_side +// command id: 10 +// info: trigger guard to run sideways of bond, goto label if successful +//============================================================================= +// note: direction is random +//===========================================================================*/ +#define guard_try_running_to_side_ID 0x10 +#define guard_try_running_to_side_LENGTH 0x02 +#define guard_try_running_to_side(label) \ + guard_try_running_to_side_ID, \ + label, + +/*============================================================================= +// name: guard_try_firing_walk +// command id: 11 +// info: trigger guard to walk and fire at bond, goto label if successful +//============================================================================= +// note: bond needs to be at long distance away from guard to work +//===========================================================================*/ +#define guard_try_firing_walk_ID 0x11 +#define guard_try_firing_walk_LENGTH 0x02 +#define guard_try_firing_walk(label) \ + guard_try_firing_walk_ID, \ + label, + +/*============================================================================= +// name: guard_try_firing_run +// command id: 12 +// info: trigger guard to run and fire at bond, goto label if successful +//============================================================================= +// note: bond needs to be at long distance away from guard to work +//===========================================================================*/ +#define guard_try_firing_run_ID 0x12 +#define guard_try_firing_run_LENGTH 0x02 +#define guard_try_firing_run(label) \ + guard_try_firing_run_ID, \ + label, + +/*============================================================================= +// name: guard_try_firing_roll +// command id: 13 +// info: trigger guard to roll on ground then fire at bond, goto label if successful +//============================================================================= +// note: bond cannot be too close to guard or it won't work +//===========================================================================*/ +#define guard_try_firing_roll_ID 0x13 +#define guard_try_firing_roll_LENGTH 0x02 +#define guard_try_firing_roll(label) \ + guard_try_firing_roll_ID, \ + label, + +/*============================================================================= +// name: guard_try_fire_or_aim_at_target +// command id: 14 +// info: make guard aim/fire their weapon at target, goto label if successful +//============================================================================= +// note: bitfield argument is used to set the target type (pad/bond/chr). +// use TARGET_# flags for bitfield argument +//===========================================================================*/ +#define guard_try_fire_or_aim_at_target_ID 0x14 +#define guard_try_fire_or_aim_at_target_LENGTH 0x06 +#define guard_try_fire_or_aim_at_target(bitfield, target, label) \ + guard_try_fire_or_aim_at_target_ID, \ + chararray16(bitfield), \ + chararray16(target), \ + label, + +/*============================================================================= +// name: guard_try_fire_or_aim_at_target_kneel +// command id: 15 +// info: make guard kneel and aim/fire their weapon at target, goto label if successful +//============================================================================= +// note: bitfield argument is used to set the target type (pad/bond/chr). +// use TARGET_# flags for bitfield argument +//===========================================================================*/ +#define guard_try_fire_or_aim_at_target_kneel_ID 0x15 +#define guard_try_fire_or_aim_at_target_kneel_LENGTH 0x06 +#define guard_try_fire_or_aim_at_target_kneel(bitfield, target, label) \ + guard_try_fire_or_aim_at_target_kneel_ID, \ + chararray16(bitfield), \ + chararray16(target), \ + label, + +/*============================================================================= +// name: guard_try_fire_or_aim_at_target_update +// command id: 16 +// info: update guard's aim/fire target, goto label if successful +//============================================================================= +// note: this command only works if guard is currently aiming at a target. +// bitfield argument is used to set the target type (pad/bond/chr). +// use TARGET_# flags for bitfield argument +//===========================================================================*/ +#define guard_try_fire_or_aim_at_target_update_ID 0x16 +#define guard_try_fire_or_aim_at_target_update_LENGTH 0x06 +#define guard_try_fire_or_aim_at_target_update(bitfield, target, label) \ + guard_try_fire_or_aim_at_target_update_ID, \ + chararray16(bitfield), \ + chararray16(target), \ + label, + +/*============================================================================= +// name: guard_try_facing_target +// command id: 17 +// info: make guard continuously face target, goto label if successful +//============================================================================= +// note: if guard was shot while facing target, guard will snap out of facing state. +// bitfield argument is used to set the target type (pad/bond/chr). +// use TARGET_# flags for bitfield argument. command can't use TARGET_AIM_ONLY flag +//===========================================================================*/ +#define guard_try_facing_target_ID 0x17 +#define guard_try_facing_target_LENGTH 0x06 +#define guard_try_facing_target(bitfield, target, label) \ + guard_try_facing_target_ID, \ + chararray16(bitfield), \ + chararray16(target), \ + label, + +/*============================================================================= +// name: chr_hit_body_part_with_item_damage +// command id: 18 +// info: hit chr's body part with item's damage, play reaction to hit location +//============================================================================= +// note: command does not trigger item's fire sfx. item's damage uses body part +// damage modifier. use HIT_# define for hit part number +//===========================================================================*/ +#define chr_hit_body_part_with_item_damage_ID 0x18 +#define chr_hit_body_part_with_item_damage_LENGTH 0x04 +#define chr_hit_body_part_with_item_damage(chr_num, part_num, item_num) \ + chr_hit_body_part_with_item_damage_ID, \ + chr_num, \ + part_num, \ + item_num, + +/*============================================================================= +// name: chr_hit_chr_body_part_with_held_item +// command id: 19 +// info: chr hits chr's body part with held item, play reaction to hit location +//============================================================================= +// note: command does not trigger item's fire sfx or chr firing animation. +// item's damage uses body part damage modifier. use HIT_# define for hit part number +//===========================================================================*/ +#define chr_hit_chr_body_part_with_held_item_ID 0x19 +#define chr_hit_chr_body_part_with_held_item_LENGTH 0x04 +#define chr_hit_chr_body_part_with_held_item(chr_num, chr_num_target, part_num) \ + chr_hit_chr_body_part_with_held_item_ID, \ + chr_num, \ + chr_num_target, \ + part_num, + +/*============================================================================= +// name: guard_try_throwing_grenade +// command id: 1A +// info: trigger guard to throw a grenade at bond, goto label if successful +//============================================================================= +// note: a rng byte is generated and compared again chr->grenadeprob, if rng byte +// is less than grenadeprob throw grenade and goto label, else do nothing. +// chr->grenadeprob default is 0 - to change use setup object 12 or command 8D +//===========================================================================*/ +#define guard_try_throwing_grenade_ID 0x1A +#define guard_try_throwing_grenade_LENGTH 0x02 +#define guard_try_throwing_grenade(label) \ + guard_try_throwing_grenade_ID, \ + label, + +/*============================================================================= +// name: guard_try_dropping_item +// command id: 1B +// info: spawn and drop item with prop model from guard, goto label if successful +//============================================================================= +// note: dropped item uses item type (08) with model number - they can be picked up. +// grenade/mines will be dropped live - this is used for cradle (list #0411) +//===========================================================================*/ +#define guard_try_dropping_item_ID 0x1B +#define guard_try_dropping_item_LENGTH 0x05 +#define guard_try_dropping_item(prop_num, item_num, label) \ + guard_try_dropping_item_ID, \ + chararray16(prop_num), \ + item_num, \ + label, + +/*============================================================================= +// name: guard_runs_to_pad +// command id: 1C +// info: makes the guard run to pad +//===========================================================================*/ +#define guard_runs_to_pad_ID 0x1C +#define guard_runs_to_pad_LENGTH 0x03 +#define guard_runs_to_pad(pad) \ + guard_runs_to_pad_ID, \ + chararray16(pad), + +/*============================================================================= +// name: guard_runs_to_pad_preset +// command id: 1D +// info: makes the guard run to guard->padpreset1 (PAD_PRESET - 9000) +//===========================================================================*/ +#define guard_runs_to_pad_preset_ID 0x1D +#define guard_runs_to_pad_preset_LENGTH 0x01 +#define guard_runs_to_pad_preset \ + guard_runs_to_pad_preset_ID, + +/*============================================================================= +// name: guard_walks_to_pad +// command id: 1E +// info: makes the guard walk to pad +//===========================================================================*/ +#define guard_walks_to_pad_ID 0x1E +#define guard_walks_to_pad_LENGTH 0x03 +#define guard_walks_to_pad(pad) \ + guard_walks_to_pad_ID, \ + chararray16(pad), + +/*============================================================================= +// name: guard_sprints_to_pad +// command id: 1F +// info: makes the guard sprint to pad +//===========================================================================*/ +#define guard_sprints_to_pad_ID 0x1F +#define guard_sprints_to_pad_LENGTH 0x03 +#define guard_sprints_to_pad(pad) \ + guard_sprints_to_pad_ID, \ + chararray16(pad), + +/*============================================================================= +// name: guard_start_patrol +// command id: 20 +// info: makes guard walk a predefined path within setup +//============================================================================= +// note: usually paired with goto GLIST_DETECT_BOND_DEAF_NO_CLONE_NO_IDLE_ANIM +// or GLIST_DETECT_BOND_NO_CLONE_NO_IDLE_ANIM +//===========================================================================*/ +#define guard_start_patrol_ID 0x20 +#define guard_start_patrol_LENGTH 0x02 +#define guard_start_patrol(path_num) \ + guard_start_patrol_ID, \ + path_num, + +/*============================================================================= +// name: guard_surrenders +// command id: 21 +// info: makes a guard surrender and drop all attached and held items +//============================================================================= +// note: will not drop items embedded within guard +//===========================================================================*/ +#define guard_surrenders_ID 0x21 +#define guard_surrenders_LENGTH 0x01 +#define guard_surrenders \ + guard_surrenders_ID, + +/*============================================================================= +// name: guard_remove_fade +// command id: 22 +// info: sets guard to fade away - fade time is 90 ticks (1.5 seconds). when +// the fade finishes, automatically remove guard +//============================================================================= +// note: guard collision is ignored during fade - will not drop items +//===========================================================================*/ +#define guard_remove_fade_ID 0x22 +#define guard_remove_fade_LENGTH 0x01 +#define guard_remove_fade \ + guard_remove_fade_ID, + +/*============================================================================= +// name: chr_remove_instant +// command id: 23 +// info: instantly remove chr unlike above command +//============================================================================= +// note: will not drop items +//===========================================================================*/ +#define chr_remove_instant_ID 0x23 +#define chr_remove_instant_LENGTH 0x02 +#define chr_remove_instant(chr_num) \ + chr_remove_instant_ID, \ + chr_num, + +/*============================================================================= +// name: guard_try_triggering_alarm_at_pad +// command id: 24 +// info: guard activates alarm assigned to pad, goto label if successful +//============================================================================= +// note: command doesn't care what object type is at pad, as long as the object +// isn't destroyed. command also checks if guard is alive before activating alarm. +// when triggering alarm, guard will be set to state ACT_STARTALARM and play animation +//===========================================================================*/ +#define guard_try_triggering_alarm_at_pad_ID 0x24 +#define guard_try_triggering_alarm_at_pad_LENGTH 0x04 +#define guard_try_triggering_alarm_at_pad(pad, label) \ + guard_try_triggering_alarm_at_pad_ID, \ + chararray16(pad), \ + label, + +/*============================================================================= +// name: alarm_on +// command id: 25 +// info: activates alarm +//===========================================================================*/ +#define alarm_on_ID 0x25 +#define alarm_on_LENGTH 0x01 +#define alarm_on \ + alarm_on_ID, + +/*============================================================================= +// name: alarm_off +// command id: 26 +// info: deactivates alarm +//===========================================================================*/ +#define alarm_off_ID 0x26 +#define alarm_off_LENGTH 0x01 +#define alarm_off \ + alarm_off_ID, + +/*============================================================================= +// name: removed_command27 +// command id: 27 +// info: command no longer exists, never goto label +//===========================================================================*/ +#define removed_command27_ID 0x27 +#define removed_command27_LENGTH 0x02 +#define removed_command27(label) \ + removed_command27_ID, \ + label, + +/*============================================================================= +// name: guard_try_running_to_bond_position +// command id: 28 +// info: if guard is able to run to bond, goto label +//============================================================================= +// note: don't goto label if guard can't run to bond (guard has died) or bond is +// at an unreachable area (no navigation pads in area) +//===========================================================================*/ +#define guard_try_running_to_bond_position_ID 0x28 +#define guard_try_running_to_bond_position_LENGTH 0x02 +#define guard_try_running_to_bond_position(label) \ + guard_try_running_to_bond_position_ID, \ + label, + +/*============================================================================= +// name: guard_try_walking_to_bond_position +// command id: 29 +// info: if guard is able to walk to bond, goto label +//============================================================================= +// note: don't goto label if guard can't walk to bond (guard has died) or bond is +// at an unreachable area (no navigation pads in area) +//===========================================================================*/ +#define guard_try_walking_to_bond_position_ID 0x29 +#define guard_try_walking_to_bond_position_LENGTH 0x02 +#define guard_try_walking_to_bond_position(label) \ + guard_try_walking_to_bond_position_ID, \ + label, + +/*============================================================================= +// name: guard_try_sprinting_to_bond_position +// command id: 2A +// info: if guard is able to sprint to bond, goto label +//============================================================================= +// note: don't goto label if guard can't sprint to bond (guard has died) or bond +// is at an unreachable area (no navigation pads in area) +//===========================================================================*/ +#define guard_try_sprinting_to_bond_position_ID 0x2A +#define guard_try_sprinting_to_bond_position_LENGTH 0x02 +#define guard_try_sprinting_to_bond_position(label) \ + guard_try_sprinting_to_bond_position_ID, \ + label, + +/*============================================================================= +// name: removed_command2B +// command id: 2B +// info: command no longer exists, never goto label +//===========================================================================*/ +#define removed_command2B_ID 0x2B +#define removed_command2B_LENGTH 0x02 +#define removed_command2B(label) \ + removed_command2B_ID, \ + label, + +/*============================================================================= +// name: guard_try_running_to_chr_position +// command id: 2C +// info: if guard is able to run to chr, goto label +//============================================================================= +// note: don't goto label if guard can't run to chr (guard has died) or chr is +// at an unreachable area (no navigation pads in area) or chr doesn't exist +//===========================================================================*/ +#define guard_try_running_to_chr_position_ID 0x2C +#define guard_try_running_to_chr_position_LENGTH 0x03 +#define guard_try_running_to_chr_position(chr_num, label) \ + guard_try_running_to_chr_position_ID, \ + chr_num, \ + label, + +/*============================================================================= +// name: guard_try_walking_to_chr_position +// command id: 2D +// info: if guard is able to walk to chr, goto label +//============================================================================= +// note: don't goto label if guard can't walk to chr (guard has died) or chr is +// at an unreachable area (no navigation pads in area) or chr doesn't exist +//===========================================================================*/ +#define guard_try_walking_to_chr_position_ID 0x2D +#define guard_try_walking_to_chr_position_LENGTH 0x03 +#define guard_try_walking_to_chr_position(chr_num, label) \ + guard_try_walking_to_chr_position_ID, \ + chr_num, \ + label, + +/*============================================================================= +// name: guard_try_sprinting_to_chr_position +// command id: 2E +// info: if guard is able to sprint to chr, goto label +//============================================================================= +// note: don't goto label if guard can't sprint to chr (guard has died) or chr +// is at an unreachable area (no navigation pads in area) or chr doesn't exist +//===========================================================================*/ +#define guard_try_sprinting_to_chr_position_ID 0x2E +#define guard_try_sprinting_to_chr_position_LENGTH 0x03 +#define guard_try_sprinting_to_chr_position(chr_num, label) \ + guard_try_sprinting_to_chr_position_ID, \ + chr_num, \ + label, + +/*============================================================================= +// name: if_guard_has_stopped_moving +// command id: 2F +// info: if guard has stopped moving, goto label +//============================================================================= +// note: check if guard isn't looking for bond or if guard has finished moving +// to destination +//===========================================================================*/ +#define if_guard_has_stopped_moving_ID 0x2F +#define if_guard_has_stopped_moving_LENGTH 0x02 +#define if_guard_has_stopped_moving(label) \ + if_guard_has_stopped_moving_ID, \ + label, + +/*============================================================================= +// name: if_chr_dying_or_dead +// command id: 30 +// info: if chr has died (or in dying state), goto label +//===========================================================================*/ +#define if_chr_dying_or_dead_ID 0x30 +#define if_chr_dying_or_dead_LENGTH 0x03 +#define if_chr_dying_or_dead(chr_num, label) \ + if_chr_dying_or_dead_ID, \ + chr_num, \ + label, + +/*============================================================================= +// name: if_chr_does_not_exist +// command id: 31 +// info: if chr doesn't exist (died and faded/not spawned), goto label +//============================================================================= +// note: this command is used to check if chr has finished dying animation and +// faded away, or chr num is free +//===========================================================================*/ +#define if_chr_does_not_exist_ID 0x31 +#define if_chr_does_not_exist_LENGTH 0x03 +#define if_chr_does_not_exist(chr_num, label) \ + if_chr_does_not_exist_ID, \ + chr_num, \ + label, + +/*============================================================================= +// name: if_guard_sees_bond +// command id: 32 +// info: check vision for bond, goto label if spotted bond +//============================================================================= +// note: uses chr->visionrange while checking for bond. once bond has been spotted, +// check if bond and guard are within line of sight (ignores facing direction). +// if bond breaks line of sight, do not goto label. if bond has broken line of +// sight for more than 10 seconds, reset spotted bond state +//===========================================================================*/ +#define if_guard_sees_bond_ID 0x32 +#define if_guard_sees_bond_LENGTH 0x02 +#define if_guard_sees_bond(label) \ + if_guard_sees_bond_ID, \ + label, + +/*============================================================================= +// name: random_generate_seed +// command id: 33 +// info: generate a random byte and store to chr->random +//============================================================================= +// note: random byte range is 00-FF (unsigned) +//===========================================================================*/ +#define random_generate_seed_ID 0x33 +#define random_generate_seed_LENGTH 0x01 +#define random_generate_seed \ + random_generate_seed_ID, + +/*============================================================================= +// name: if_random_seed_less_than +// command id: 34 +// info: if chr->random < byte, goto label +//============================================================================= +// note: compare is unsigned +//===========================================================================*/ +#define if_random_seed_less_than_ID 0x34 +#define if_random_seed_less_than_LENGTH 0x03 +#define if_random_seed_less_than(byte, label) \ + if_random_seed_less_than_ID, \ + byte, \ + label, + +/*============================================================================= +// name: if_random_seed_greater_than +// command id: 35 +// info: if chr->random > byte, goto label +//============================================================================= +// note: compare is unsigned +//===========================================================================*/ +#define if_random_seed_greater_than_ID 0x35 +#define if_random_seed_greater_than_LENGTH 0x03 +#define if_random_seed_greater_than(byte, label) \ + if_random_seed_greater_than_ID, \ + byte, \ + label, + +/*============================================================================= +// name: if_alarm_is_on_unused +// command id: 36 +// info: if alarm is activated, goto label +//============================================================================= +// note: this command works but is unused in retail game, use command 37 instead +//===========================================================================*/ +#define if_alarm_is_on_unused_ID 0x36 +#define if_alarm_is_on_unused_LENGTH 0x02 +#define if_alarm_is_on_unused(label) \ + if_alarm_is_on_unused_ID, \ + label, + +/*============================================================================= +// name: if_alarm_is_on +// command id: 37 +// info: if alarm is activated, goto label +//===========================================================================*/ +#define if_alarm_is_on_ID 0x37 +#define if_alarm_is_on_LENGTH 0x02 +#define if_alarm_is_on(label) \ + if_alarm_is_on_ID, \ + label, + +/*============================================================================= +// name: if_gas_is_leaking +// command id: 38 +// info: if gas leak event triggered, goto label +//============================================================================= +// note: once gas leak event has started, always goto label +//===========================================================================*/ +#define if_gas_is_leaking_ID 0x38 +#define if_gas_is_leaking_LENGTH 0x02 +#define if_gas_is_leaking(label) \ + if_gas_is_leaking_ID, \ + label, + +/*============================================================================= +// name: if_guard_heard_bond +// command id: 39 +// info: if guard heard bond fire weapon, goto label +//============================================================================= +// note: uses chr->hearingscale while listening for bond. to check if bond has +// shot within the last 10 seconds, use command 3F +//===========================================================================*/ +#define if_guard_heard_bond_ID 0x39 +#define if_guard_heard_bond_LENGTH 0x02 +#define if_guard_heard_bond(label) \ + if_guard_heard_bond_ID, \ + label, + +/*============================================================================= +// name: if_guard_see_another_guard_shot +// command id: 3A +// info: if guard sees another guard shot (from anyone), goto label +//============================================================================= +// note: guard friendly fire (if flagged) will trigger this command to goto label. +// command checks if chr->chrseeshot is set to valid chrnum (not -1). does not +// work with shot invincible/armoured guards +//===========================================================================*/ +#define if_guard_see_another_guard_shot_ID 0x3A +#define if_guard_see_another_guard_shot_LENGTH 0x02 +#define if_guard_see_another_guard_shot(label) \ + if_guard_see_another_guard_shot_ID, \ + label, + +/*============================================================================= +// name: if_guard_see_another_guard_die +// command id: 3B +// info: if guard sees another guard die (from anyone), goto label +//============================================================================= +// note: when a guard in sight switches to ACT_DIE/ACT_DEAD, goto label. +// command checks if chr->chrseedie is set to valid chrnum (not -1) +//===========================================================================*/ +#define if_guard_see_another_guard_die_ID 0x3B +#define if_guard_see_another_guard_die_LENGTH 0x02 +#define if_guard_see_another_guard_die(label) \ + if_guard_see_another_guard_die_ID, \ + label, + +/*============================================================================= +// name: if_guard_and_bond_within_line_of_sight +// command id: 3C +// info: if guard and bond are within line of sight, goto label +//============================================================================= +// note: line of sight uses clipping - ignores facing direction of bond/guard. +// if prop/guard is in the way do not goto label. does not use chr->visionrange +// for line of sight check. use command 32 to check using chr->visionrange and +// command 42 to account for bond's view +//===========================================================================*/ +#define if_guard_and_bond_within_line_of_sight_ID 0x3C +#define if_guard_and_bond_within_line_of_sight_LENGTH 0x02 +#define if_guard_and_bond_within_line_of_sight(label) \ + if_guard_and_bond_within_line_of_sight_ID, \ + label, + +/*============================================================================= +// name: if_guard_and_bond_within_partial_line_of_sight +// command id: 3D +// info: if guard and bond are within partial line of sight, goto label +//============================================================================= +// note: unused command, functions like above but only goto label if bond is +// half occluded by clipping (not blocked or within full view) +//===========================================================================*/ +#define if_guard_and_bond_within_partial_line_of_sight_ID 0x3D +#define if_guard_and_bond_within_partial_line_of_sight_LENGTH 0x02 +#define if_guard_and_bond_within_partial_line_of_sight(label) \ + if_guard_and_bond_within_partial_line_of_sight_ID, \ + label, + +/*============================================================================= +// name: if_guard_was_shot_within_last_10_secs +// command id: 3E +// info: if guard was shot (from anyone) within the last 10 seconds, goto label +//============================================================================= +// note: command will not count guard as shot if they are invincible/have armour +//===========================================================================*/ +#define if_guard_was_shot_within_last_10_secs_ID 0x3E +#define if_guard_was_shot_within_last_10_secs_LENGTH 0x02 +#define if_guard_was_shot_within_last_10_secs(label) \ + if_guard_was_shot_within_last_10_secs_ID, \ + label, + +/*============================================================================= +// name: if_guard_heard_bond_within_last_10_secs +// command id: 3F +// info: if guard heard bond fire weapon within the last 10 seconds, goto label +//============================================================================= +// note: uses chr->hearingscale while listening for bond. to check if bond has +// now fired weapon instead of within the last 10 seconds, use command 39 +//===========================================================================*/ +#define if_guard_heard_bond_within_last_10_secs_ID 0x3F +#define if_guard_heard_bond_within_last_10_secs_LENGTH 0x02 +#define if_guard_heard_bond_within_last_10_secs(label) \ + if_guard_heard_bond_within_last_10_secs_ID, \ + label, + +/*============================================================================= +// name: if_guard_in_room_with_chr +// command id: 40 +// info: if guard is in same room with chr, goto label +//===========================================================================*/ +#define if_guard_in_room_with_chr_ID 0x40 +#define if_guard_in_room_with_chr_LENGTH 0x03 +#define if_guard_in_room_with_chr(chr_num, label) \ + if_guard_in_room_with_chr_ID, \ + chr_num, \ + label, + +/*============================================================================= +// name: if_guard_has_not_been_seen +// command id: 41 +// info: if guard has not been seen before on screen, goto label +//============================================================================= +// note: when bond has seen guard, it will add a flag to chr->chrflags. +// the seen flag will be kept true for duration of level +//===========================================================================*/ +#define if_guard_has_not_been_seen_ID 0x41 +#define if_guard_has_not_been_seen_LENGTH 0x02 +#define if_guard_has_not_been_seen(label) \ + if_guard_has_not_been_seen_ID, \ + label, + +/*============================================================================= +// name: if_guard_is_on_screen +// command id: 42 +// info: if guard is currently being rendered on screen, goto label +//============================================================================= +// note: portals will affect this command's output. if guard is being culled +// off screen, command will not goto label +//===========================================================================*/ +#define if_guard_is_on_screen_ID 0x42 +#define if_guard_is_on_screen_LENGTH 0x02 +#define if_guard_is_on_screen(label) \ + if_guard_is_on_screen_ID, \ + label, + +/*============================================================================= +// name: if_guard_room_containing_self_is_on_screen +// command id: 43 +// info: if the room containing guard is being rendered on screen, goto label +//============================================================================= +// note: only checks if room is being rendered, not if bond can see guard. +// to check if guard is being rendered use command 42 instead. +//===========================================================================*/ +#define if_guard_room_containing_self_is_on_screen_ID 0x43 +#define if_guard_room_containing_self_is_on_screen_LENGTH 0x02 +#define if_guard_room_containing_self_is_on_screen(label) \ + if_guard_room_containing_self_is_on_screen_ID, \ + label, + +/*============================================================================= +// name: if_room_containing_pad_is_on_screen +// command id: 44 +// info: if room containing pad is being rendered on screen, goto label +//============================================================================= +// note: only checks if room is being rendered, not if bond can see inside room +//===========================================================================*/ +#define if_room_containing_pad_is_on_screen_ID 0x44 +#define if_room_containing_pad_is_on_screen_LENGTH 0x04 +#define if_room_containing_pad_is_on_screen(pad, label) \ + if_room_containing_pad_is_on_screen_ID, \ + chararray16(pad), \ + label, + +/*============================================================================= +// name: if_guard_is_targeted_by_bond +// command id: 45 +// info: if bond is looking/aiming at guard, goto label +//============================================================================= +// note: also checks if crosshair is aiming at guard +//===========================================================================*/ +#define if_guard_is_targeted_by_bond_ID 0x45 +#define if_guard_is_targeted_by_bond_LENGTH 0x02 +#define if_guard_is_targeted_by_bond(label) \ + if_guard_is_targeted_by_bond_ID, \ + label, + +/*============================================================================= +// name: if_guard_shot_from_bond_missed +// command id: 46 +// info: if bond's shot missed/landed near guard, goto label +//============================================================================= +// note: command will sometimes goto label if guard was shot - use command +// 3E instead to check if guard was shot recently (more consistent) +//===========================================================================*/ +#define if_guard_shot_from_bond_missed_ID 0x46 +#define if_guard_shot_from_bond_missed_LENGTH 0x02 +#define if_guard_shot_from_bond_missed(label) \ + if_guard_shot_from_bond_missed_ID, \ + label, + +/*============================================================================= +// name: if_guard_counter_clockwise_direction_to_bond_less_than +// command id: 47 +// info: if guard's counter-clockwise direction to bond < direction argument, goto label +//============================================================================= +// note: direction input (hex): +// 00: no rotation, never goto label because degrees are always above 0 +// 40: bond and guard within 9-to-12 o'clock (90 degrees) +// 80: bond is on guard's left-side (180 degrees) +// C0: bond and guard within 3-to-12 o'clock (270 degrees) +// FF: full rotation, always goto label except for a tiny degree (0-359 degrees) +//===========================================================================*/ +#define if_guard_counter_clockwise_direction_to_bond_less_than_ID 0x47 +#define if_guard_counter_clockwise_direction_to_bond_less_than_LENGTH 0x03 +#define if_guard_counter_clockwise_direction_to_bond_less_than(direction, label) \ + if_guard_counter_clockwise_direction_to_bond_less_than_ID, \ + direction, \ + label, + +/*============================================================================= +// name: if_guard_counter_clockwise_direction_to_bond_greater_than +// command id: 48 +// info: if guard's counter-clockwise direction to bond > direction argument, goto label +//============================================================================= +// note: direction input (hex): +// FF: no rotation, never goto label except for a tiny degree (0-1 degrees) +// C0: bond and guard within 12-to-3 o'clock (90 degrees) +// 80: bond on guard's right-side (180 degrees) +// 40: bond and guard within 12-to-9 o'clock (270 degrees) +// 00: full rotation, always goto label +//===========================================================================*/ +#define if_guard_counter_clockwise_direction_to_bond_greater_than_ID 0x48 +#define if_guard_counter_clockwise_direction_to_bond_greater_than_LENGTH 0x03 +#define if_guard_counter_clockwise_direction_to_bond_greater_than(direction, label) \ + if_guard_counter_clockwise_direction_to_bond_greater_than_ID, \ + direction, \ + label, + +/*============================================================================= +// name: if_guard_counter_clockwise_direction_from_bond_less_than +// command id: 49 +// info: if bond's counter-clockwise direction to guard < direction argument, goto label +//============================================================================= +// note: direction input (hex): +// 00: no rotation, never goto label because degrees are always above 0 +// 40: guard and bond within 9-to-12 o'clock (90 degrees) +// 80: guard is on bond's left-side (180 degrees) +// C0: guard and bond within 3-to-12 o'clock (270 degrees) +// FF: full rotation, always goto label except for a tiny degree (0-359 degrees) +//===========================================================================*/ +#define if_guard_counter_clockwise_direction_from_bond_less_than_ID 0x49 +#define if_guard_counter_clockwise_direction_from_bond_less_than_LENGTH 0x03 +#define if_guard_counter_clockwise_direction_from_bond_less_than(direction, label) \ + if_guard_counter_clockwise_direction_from_bond_less_than_ID, \ + direction, \ + label, + +/*============================================================================= +// name: if_guard_counter_clockwise_direction_from_bond_greater_than +// command id: 4A +// info: if bond's counter-clockwise direction to guard > direction argument, goto label +//============================================================================= +// note: direction input (hex): +// FF: no rotation, never goto label except for a tiny degree (0-1 degrees) +// C0: guard and bond within 12-to-3 o'clock (90 degrees) +// 80: guard on bond's right-side (180 degrees) +// 40: guard and bond within 12-to-9 o'clock (270 degrees) +// 00: full rotation, always goto label +//===========================================================================*/ +#define if_guard_counter_clockwise_direction_from_bond_greater_than_ID 0x4A +#define if_guard_counter_clockwise_direction_from_bond_greater_than_LENGTH 0x03 +#define if_guard_counter_clockwise_direction_from_bond_greater_than(direction, label) \ + if_guard_counter_clockwise_direction_from_bond_greater_than_ID, \ + direction, \ + label, + +/*============================================================================= +// name: if_guard_distance_to_bond_less_than +// command id: 4B +// info: if guard's distance to bond < distance argument, goto label +//============================================================================= +// note: argument scale is 10 units per meter +//===========================================================================*/ +#define if_guard_distance_to_bond_less_than_ID 0x4B +#define if_guard_distance_to_bond_less_than_LENGTH 0x04 +#define if_guard_distance_to_bond_less_than(distance, label) \ + if_guard_distance_to_bond_less_than_ID, \ + chararray16(distance), \ + label, + +/*============================================================================= +// name: if_guard_distance_to_bond_greater_than +// command id: 4C +// info: if guard's distance to bond > distance argument, goto label +//============================================================================= +// note: argument scale is 10 units per meter +//===========================================================================*/ +#define if_guard_distance_to_bond_greater_than_ID 0x4C +#define if_guard_distance_to_bond_greater_than_LENGTH 0x04 +#define if_guard_distance_to_bond_greater_than(distance, label) \ + if_guard_distance_to_bond_greater_than_ID, \ + chararray16(distance), \ + label, + +/*============================================================================= +// name: if_chr_distance_to_pad_less_than +// command id: 4D +// info: if chr's distance to pad < distance argument, goto label +//============================================================================= +// note: argument scale is 10 units per meter +//===========================================================================*/ +#define if_chr_distance_to_pad_less_than_ID 0x4D +#define if_chr_distance_to_pad_less_than_LENGTH 0x07 +#define if_chr_distance_to_pad_less_than(chr_num, distance, pad, label) \ + if_chr_distance_to_pad_less_than_ID, \ + chr_num, \ + chararray16(distance), \ + chararray16(pad), \ + label, + +/*============================================================================= +// name: if_chr_distance_to_pad_greater_than +// command id: 4E +// info: if chr's distance to pad > distance argument, goto label +//============================================================================= +// note: argument scale is 10 units per meter +//===========================================================================*/ +#define if_chr_distance_to_pad_greater_than_ID 0x4E +#define if_chr_distance_to_pad_greater_than_LENGTH 0x07 +#define if_chr_distance_to_pad_greater_than(chr_num, distance, pad, label) \ + if_chr_distance_to_pad_greater_than_ID, \ + chr_num, \ + chararray16(distance), \ + chararray16(pad), \ + label, + +/*============================================================================= +// name: if_guard_distance_to_chr_less_than +// command id: 4F +// info: if guard's distance to chr < distance argument, goto label +//============================================================================= +// note: argument scale is 10 units per meter +//===========================================================================*/ +#define if_guard_distance_to_chr_less_than_ID 0x4F +#define if_guard_distance_to_chr_less_than_LENGTH 0x05 +#define if_guard_distance_to_chr_less_than(distance, chr_num, label) \ + if_guard_distance_to_chr_less_than_ID, \ + chararray16(distance), \ + chr_num, \ + label, + +/*============================================================================= +// name: if_guard_distance_to_chr_greater_than +// command id: 50 +// info: if guard's distance to chr > distance argument, goto label +//============================================================================= +// note: argument scale is 10 units per meter +//===========================================================================*/ +#define if_guard_distance_to_chr_greater_than_ID 0x50 +#define if_guard_distance_to_chr_greater_than_LENGTH 0x05 +#define if_guard_distance_to_chr_greater_than(distance, chr_num, label) \ + if_guard_distance_to_chr_greater_than_ID, \ + chararray16(distance), \ + chr_num, \ + label, + +/*============================================================================= +// name: guard_try_setting_chr_preset_to_guard_within_distance +// command id: 51 +// info: if guard's distance to any chr < distance argument, set chr->padpreset1 +// to found guard's chrnum and goto label +//============================================================================= +// note: argument scale is 10 units per meter. command does not pick the closest +// found chr, but whoever was first found within the distance argument. if no +// guards were found within distance range, do not goto label +//===========================================================================*/ +#define guard_try_setting_chr_preset_to_guard_within_distance_ID 0x51 +#define guard_try_setting_chr_preset_to_guard_within_distance_LENGTH 0x04 +#define guard_try_setting_chr_preset_to_guard_within_distance(distance, label) \ + guard_try_setting_chr_preset_to_guard_within_distance_ID, \ + chararray16(distance), \ + label, + +/*============================================================================= +// name: if_bond_distance_to_pad_less_than +// command id: 52 +// info: if bond's distance to pad < distance argument, goto label +//============================================================================= +// note: argument scale is 10 units per meter +//===========================================================================*/ +#define if_bond_distance_to_pad_less_than_ID 0x52 +#define if_bond_distance_to_pad_less_than_LENGTH 0x06 +#define if_bond_distance_to_pad_less_than(distance, pad, label) \ + if_bond_distance_to_pad_less_than_ID, \ + chararray16(distance), \ + chararray16(pad), \ + label, + +/*============================================================================= +// name: if_bond_distance_to_pad_greater_than +// command id: 53 +// info: if bond's distance to pad > distance argument, goto label +//============================================================================= +// note: argument scale is 10 units per meter +//===========================================================================*/ +#define if_bond_distance_to_pad_greater_than_ID 0x53 +#define if_bond_distance_to_pad_greater_than_LENGTH 0x06 +#define if_bond_distance_to_pad_greater_than(distance, pad, label) \ + if_bond_distance_to_pad_greater_than_ID, \ + chararray16(distance), \ + chararray16(pad), \ + label, + +/*============================================================================= +// name: if_chr_in_room_with_pad +// command id: 54 +// info: if chr id in same room with pad, goto label +//===========================================================================*/ +#define if_chr_in_room_with_pad_ID 0x54 +#define if_chr_in_room_with_pad_LENGTH 0x05 +#define if_chr_in_room_with_pad(chr_num, pad, label) \ + if_chr_in_room_with_pad_ID, \ + chr_num, \ + chararray16(pad), \ + label, + +/*============================================================================= +// name: if_bond_in_room_with_pad +// command id: 55 +// info: if bond in same room with pad, goto label +//===========================================================================*/ +#define if_bond_in_room_with_pad_ID 0x55 +#define if_bond_in_room_with_pad_LENGTH 0x04 +#define if_bond_in_room_with_pad(pad, label) \ + if_bond_in_room_with_pad_ID, \ + chararray16(pad), \ + label, + +/*============================================================================= +// name: if_bond_collected_object +// command id: 56 +// info: if bond collected tagged object, goto label +//===========================================================================*/ +#define if_bond_collected_object_ID 0x56 +#define if_bond_collected_object_LENGTH 0x03 +#define if_bond_collected_object(object_tag, label) \ + if_bond_collected_object_ID, \ + object_tag, \ + label, + +/*============================================================================= +// name: if_item_is_stationary_within_level +// command id: 57 +// info: if item exists in level and is stationary (not moving/in mid-air), goto label +//============================================================================= +// note: used to check if bond threw an item in level. also checks if item was +// attached to an object (item is stationary within level). so make sure command +// 58 takes priority over command 57 when using both commands +//===========================================================================*/ +#define if_item_is_stationary_within_level_ID 0x57 +#define if_item_is_stationary_within_level_LENGTH 0x03 +#define if_item_is_stationary_within_level(item_num, label) \ + if_item_is_stationary_within_level_ID, \ + item_num, \ + label, + +/*============================================================================= +// name: if_item_is_attached_to_object +// command id: 58 +// info: if item was thrown onto tagged object, goto label +//============================================================================= +// note: used to check if bond threw an item onto a tagged object. if used with +// command 57, make sure command 58 take priority over command 57 +//===========================================================================*/ +#define if_item_is_attached_to_object_ID 0x58 +#define if_item_is_attached_to_object_LENGTH 0x04 +#define if_item_is_attached_to_object(item_num, object_tag, label) \ + if_item_is_attached_to_object_ID, \ + item_num, \ + object_tag, \ + label, + +/*============================================================================= +// name: if_bond_has_item_equipped +// command id: 59 +// info: if bond has an item equipped (currently held), goto label +//===========================================================================*/ +#define if_bond_has_item_equipped_ID 0x59 +#define if_bond_has_item_equipped_LENGTH 0x03 +#define if_bond_has_item_equipped(item_num, label) \ + if_bond_has_item_equipped_ID, \ + item_num, \ + label, + +/*============================================================================= +// name: if_object_exists +// command id: 5A +// info: if tagged object exists in level, goto label +//===========================================================================*/ +#define if_object_exists_ID 0x5A +#define if_object_exists_LENGTH 0x03 +#define if_object_exists(object_tag, label) \ + if_object_exists_ID, \ + object_tag, \ + label, + +/*============================================================================= +// name: if_object_not_destroyed +// command id: 5B +// info: if tagged object is not destroyed, goto label +//===========================================================================*/ +#define if_object_not_destroyed_ID 0x5B +#define if_object_not_destroyed_LENGTH 0x03 +#define if_object_not_destroyed(object_tag, label) \ + if_object_not_destroyed_ID, \ + object_tag, \ + label, + +/*============================================================================= +// name: if_object_was_activated +// command id: 5C +// info: if tagged object was activated since last check, goto label +//============================================================================= +// note: when executed, it will clear tagged object's activated flag. only bond +// and command 5E can activate tagged objects. bond cannot activate destroyed +// objects +//===========================================================================*/ +#define if_object_was_activated_ID 0x5C +#define if_object_was_activated_LENGTH 0x03 +#define if_object_was_activated(object_tag, label) \ + if_object_was_activated_ID, \ + object_tag, \ + label, + +/*============================================================================= +// name: if_bond_used_gadget_on_object +// command id: 5D +// info: if bond used a gadget item on a tagged object since last check, goto label +//============================================================================= +// note: gadgets are a pre-defined list of items set to gadget flag: +// ITEM_BOMBDEFUSER +// ITEM_DATATHIEF +// ITEM_DOORDECODER +// ITEM_EXPLOSIVEFLOPPY +// ITEM_DATTAPE +//===========================================================================*/ +#define if_bond_used_gadget_on_object_ID 0x5D +#define if_bond_used_gadget_on_object_LENGTH 0x03 +#define if_bond_used_gadget_on_object(object_tag, label) \ + if_bond_used_gadget_on_object_ID, \ + object_tag, \ + label, + +/*============================================================================= +// name: object_activate +// command id: 5E +// info: activate a tagged object +//============================================================================= +// note: command does not check if object has been destroyed +//===========================================================================*/ +#define object_activate_ID 0x5E +#define object_activate_LENGTH 0x02 +#define object_activate(object_tag) \ + object_activate_ID, \ + object_tag, + +/*============================================================================= +// name: object_destroy +// command id: 5F +// info: destroy/explode a tagged object +//============================================================================= +// note: only works if object is not destroyed. cannot destroy invincible objects +//===========================================================================*/ +#define object_destroy_ID 0x5F +#define object_destroy_LENGTH 0x02 +#define object_destroy(object_tag) \ + object_destroy_ID, \ + object_tag, + +/*============================================================================= +// name: object_drop_from_chr +// command id: 60 +// info: drop tagged object held/attached to chr +//============================================================================= +// note: item must be held/attached to a chr. embedded objects will not drop, +// only works with attached objects. props can be damaged on drop +//===========================================================================*/ +#define object_drop_from_chr_ID 0x60 +#define object_drop_from_chr_LENGTH 0x02 +#define object_drop_from_chr(object_tag) \ + object_drop_from_chr_ID, \ + object_tag, + +/*============================================================================= +// name: chr_drop_all_concealed_items +// command id: 61 +// info: make chr drop all concealed attachments +//============================================================================= +// note: item must be attached to chr, to drop held items use command 62. embedded +// objects will not drop, only works with attached objects. props can be damaged +// on drop +//===========================================================================*/ +#define chr_drop_all_concealed_items_ID 0x61 +#define chr_drop_all_concealed_items_LENGTH 0x02 +#define chr_drop_all_concealed_items(chr_num) \ + chr_drop_all_concealed_items_ID, \ + chr_num, + +/*============================================================================= +// name: chr_drop_all_held_items +// command id: 62 +// info: make chr drop all held items +//============================================================================= +// note: items must be held by chr, to drop concealed attachments use command 61. +// embedded objects will not drop, only works with attached objects +//===========================================================================*/ +#define chr_drop_all_held_items_ID 0x62 +#define chr_drop_all_held_items_LENGTH 0x02 +#define chr_drop_all_held_items(chr_num) \ + chr_drop_all_held_items_ID, \ + chr_num, + +/*============================================================================= +// name: bond_collect_object +// command id: 63 +// info: force bond to instantly collect a tagged object +//============================================================================= +// note: does not trigger bottom text telling player they collected an item +//===========================================================================*/ +#define bond_collect_object_ID 0x63 +#define bond_collect_object_LENGTH 0x02 +#define bond_collect_object(object_tag) \ + bond_collect_object_ID, \ + object_tag, + +/*============================================================================= +// name: chr_equip_object +// command id: 64 +// info: makes chr hold tagged object +//============================================================================= +// note: if chr's hands are occupied, object will be equipped as an concealed +// attachment. but if tagged object's handedness flag is free on guard then +// guard will equip weapon. tagged object's prop must have a holding position +// command within the model file +//===========================================================================*/ +#define chr_equip_object_ID 0x64 +#define chr_equip_object_LENGTH 0x03 +#define chr_equip_object(object_tag, chr_num) \ + chr_equip_object_ID, \ + object_tag, \ + chr_num, + +/*============================================================================= +// name: object_move_to_pad +// command id: 65 +// info: move object to pad +//============================================================================= +// note: if object is assigned to padextra type, then object scale will be lost +// after moving to target pad. object will inherit rotation from target pad +//===========================================================================*/ +#define object_move_to_pad_ID 0x65 +#define object_move_to_pad_LENGTH 0x04 +#define object_move_to_pad(object_tag, pad) \ + object_move_to_pad_ID, \ + object_tag, \ + chrarray16(pad), + +/*============================================================================= +// name: door_open +// command id: 66 +// info: open tagged door +//============================================================================= +// note: open tagged door even if locked +//===========================================================================*/ +#define door_open_ID 0x66 +#define door_open_LENGTH 0x02 +#define door_open(object_tag) \ + door_open_ID, \ + object_tag, + +/*============================================================================= +// name: door_close +// command id: 67 +// info: close tagged door +//===========================================================================*/ +#define door_close_ID 0x67 +#define door_close_LENGTH 0x02 +#define door_close(object_tag) \ + door_close_ID, \ + object_tag, + +/*============================================================================= +// name: if_door_state_equal +// command id: 68 +// info: if tagged door state matches any of bitfield argument, goto label +//============================================================================= +// note: use DOOR_STATE_# flags for door state argument. flags can be combined +//===========================================================================*/ +#define if_door_state_equal_ID 0x68 +#define if_door_state_equal_LENGTH 0x04 +#define if_door_state_equal(object_tag, door_state, label) \ + if_door_state_equal_ID, \ + object_tag, \ + door_state, \ + label, + +/*============================================================================= +// name: if_door_has_been_opened_before +// command id: 69 +// info: if tagged door has been opened before, goto label +//============================================================================= +// note: if tagged door is open by default in setup, then it must be closed before +// it will check if opened again +//===========================================================================*/ +#define if_door_has_been_opened_before_ID 0x69 +#define if_door_has_been_opened_before_LENGTH 0x03 +#define if_door_has_been_opened_before(object_tag, label) \ + if_door_has_been_opened_before_ID, \ + object_tag, \ + label, + +/*============================================================================= +// name: door_set_lock +// command id: 6A +// info: set tagged door's lock with flags +//============================================================================= +// note: use DOOR_LOCK_# flags for lock argument. lock flags are same as used +// within setup for doors and keys +//===========================================================================*/ +#define door_set_lock_ID 0x6A +#define door_set_lock_LENGTH 0x03 +#define door_set_lock(object_tag, lock_flag) \ + door_set_lock_ID, \ + object_tag, \ + lock_flag, + +/*============================================================================= +// name: door_unset_lock +// command id: 6B +// info: unset tagged door's lock with flags +//============================================================================= +// note: use DOOR_LOCK_# flags for lock argument. lock flags are same as used +// within setup for doors and keys +//===========================================================================*/ +#define door_unset_lock_ID 0x6B +#define door_unset_lock_LENGTH 0x03 +#define door_unset_lock(object_tag, lock_flag) \ + door_unset_lock_ID, \ + object_tag, \ + lock_flag, + +/*============================================================================= +// name: if_door_lock_equal +// command id: 6C +// info: if tagged door's lock flags matches any lock flag argument, goto label +//============================================================================= +// note: use DOOR_LOCK_# flags for lock argument. lock flags are same as used +// within setup for doors and keys +//===========================================================================*/ +#define if_door_lock_equal_ID 0x6C +#define if_door_lock_equal_LENGTH 0x04 +#define if_door_lock_equal(object_tag, lock_flag, label) \ + if_door_lock_equal_ID, \ + object_tag, \ + lock_flag, \ + label, + +/*============================================================================= +// name: if_objective_num_complete +// command id: 6D +// info: if objective # completed, goto label +//============================================================================= +// note: ignores difficulty settings. for example - if game on agent and player +// completes an unlisted 00 agent objective, checking that objective num will +// goto label +//===========================================================================*/ +#define if_objective_num_complete_ID 0x6D +#define if_objective_num_complete_LENGTH 0x03 +#define if_objective_num_complete(obj_num, label) \ + if_objective_num_complete_ID, \ + obj_num, \ + label, + +/*============================================================================= +// name: guard_try_unknown6E +// command id: 6E +// info: unknown command, goto label +//============================================================================= +// note: sets chr->padpreset1 +// bitfield (hex): +// 0001: sets to nearest pad to path to bond +// 0004: ??? +// 0008: ??? +// 0010: ??? +// 0020: ??? +//===========================================================================*/ +#define guard_try_unknown6E_ID 0x6E +#define guard_try_unknown6E_LENGTH 0x03 +#define guard_try_unknown6E(unknown_flag, label) \ + guard_try_unknown6E_ID, \ + unknown_flag, \ + label, + +/*============================================================================= +// name: guard_try_unknown6F +// command id: 6F +// info: unknown command, goto label +//============================================================================= +// note: sets chr->padpreset1 +// bitfield (hex): +// 0001: set to nearest pad in direction of bond +// 0004: ??? +// 0008: ??? +// 0010: ??? +// 0020: ??? +//===========================================================================*/ +#define guard_try_unknown6F_ID 0x6F +#define guard_try_unknown6F_LENGTH 0x03 +#define guard_try_unknown6F(unknown_flag, label) \ + guard_try_unknown6F_ID, \ + unknown_flag, \ + label, + +/*============================================================================= +// name: if_game_difficulty_less_than +// command id: 70 +// info: if current difficulty < difficulty argument, goto label +//============================================================================= +// note: provided argument will compare the following difficult settings +// 01: agent only +// 02: agent/secret agent +// 03: agent/secret agent/00 agent +//===========================================================================*/ +#define if_game_difficulty_less_than_ID 0x70 +#define if_game_difficulty_less_than_LENGTH 0x03 +#define if_game_difficulty_less_than(argument, label) \ + if_game_difficulty_less_than_ID, \ + argument, \ + label, + +/*============================================================================= +// name: if_game_difficulty_greater_than +// command id: 71 +// info: if current difficulty > difficulty argument, goto label +//============================================================================= +// note: provided argument will compare the following difficult settings +// 00: secret agent/00 agent/007 +// 01: 00 agent/007 +// 02: 007 only +//===========================================================================*/ +#define if_game_difficulty_greater_than_ID 0x71 +#define if_game_difficulty_greater_than_LENGTH 0x03 +#define if_game_difficulty_greater_than(argument, label) \ + if_game_difficulty_greater_than_ID, \ + argument, \ + label, + +/*============================================================================= +// name: if_mission_time_less_than +// command id: 72 +// info: if current mission time (in seconds) < seconds argument, goto label +//============================================================================= +// note: converts (unsigned) seconds to float and compares against mission timer +//===========================================================================*/ +#define if_mission_time_less_than_ID 0x72 +#define if_mission_time_less_than_LENGTH 0x04 +#define if_mission_time_less_than(seconds, label) \ + if_mission_time_less_than_ID, \ + chararray16(seconds), \ + label, + +/*============================================================================= +// name: if_mission_time_greater_than +// command id: 73 +// info: if current mission time (in seconds) > seconds argument, goto label +//============================================================================= +// note: converts (unsigned) seconds to float and compares against mission timer +//===========================================================================*/ +#define if_mission_time_greater_than_ID 0x73 +#define if_mission_time_greater_than_LENGTH 0x04 +#define if_mission_time_greater_than(seconds, label) \ + if_mission_time_greater_than_ID, \ + chararray16(seconds), \ + label, + +/*============================================================================= +// name: if_system_power_time_less_than +// command id: 74 +// info: if system powered on time (in minutes) < minutes argument, goto label +//============================================================================= +// note: converts (unsigned) minutes to float and compares against system time +//===========================================================================*/ +#define if_system_power_time_less_than_ID 0x74 +#define if_system_power_time_less_than_LENGTH 0x04 +#define if_system_power_time_less_than(minutes, label) \ + if_system_power_time_less_than_ID, \ + chararray16(minutes), \ + label, + +/*============================================================================= +// name: if_system_power_time_greater_than +// command id: 75 +// info: if system powered on time (in minutes) > minutes argument, goto label +//============================================================================= +// note: converts (unsigned) minutes to float and compares against system time +//===========================================================================*/ +#define if_system_power_time_greater_than_ID 0x75 +#define if_system_power_time_greater_than_LENGTH 0x04 +#define if_system_power_time_greater_than(minutes, label) \ + if_system_power_time_greater_than_ID, \ + chararray16(minutes), \ + label, + +/*============================================================================= +// name: if_level_id_less_than +// command id: 76 +// info: if current level id < level id argument, goto label +//============================================================================= +// note: level id uses LEVELID enum values, not briefing menu stage number +//===========================================================================*/ +#define if_level_id_less_than_ID 0x76 +#define if_level_id_less_than_LENGTH 0x03 +#define if_level_id_less_than(level_id, label) \ + if_level_id_less_than_ID, \ + level_id, \ + label, + +/*============================================================================= +// name: if_level_id_greater_than +// command id: 77 +// info: if current level id > level id argument, goto label +//============================================================================= +// note: level id uses LEVELID enum values, not briefing menu stage number +//===========================================================================*/ +#define if_level_id_greater_than_ID 0x77 +#define if_level_id_greater_than_LENGTH 0x03 +#define if_level_id_greater_than(level_id, label) \ + if_level_id_greater_than_ID, \ + level_id, \ + label, + +/*============================================================================= +// name: if_guard_hits_less_than +// command id: 78 +// info: if guard's hits taken < hit_num, goto label +//============================================================================= +// note: compares signed byte against chr->numarghs. hits count even if guard +// is invincible +//===========================================================================*/ +#define if_guard_hits_less_than_ID 0x78 +#define if_guard_hits_less_than_LENGTH 0x03 +#define if_guard_hits_less_than(hit_num, label) \ + if_guard_hits_less_than_ID, \ + hit_num, \ + label, + +/*============================================================================= +// name: if_guard_hits_greater_than +// command id: 79 +// info: if guard's hits taken > hit_num, goto label +//============================================================================= +// note: compares signed byte against chr->numarghs. hits count even if guard +// is invincible +//===========================================================================*/ +#define if_guard_hits_greater_than_ID 0x79 +#define if_guard_hits_greater_than_LENGTH 0x03 +#define if_guard_hits_greater_than(hit_num, label) \ + if_guard_hits_greater_than_ID, \ + hit_num, \ + label, + +/*============================================================================= +// name: if_guard_hits_missed_less_than +// command id: 7A +// info: if bond's shot missed/landed near guard total < missed_num, goto label +//============================================================================= +// note: compares signed byte against chr->numclosearghs +//===========================================================================*/ +#define if_guard_hits_missed_less_than_ID 0x7A +#define if_guard_hits_missed_less_than_LENGTH 0x03 +#define if_guard_hits_missed_less_than(missed_num, label) \ + if_guard_hits_missed_less_than_ID, \ + missed_num, \ + label, + +/*============================================================================= +// name: if_guard_hits_missed_greater_than +// command id: 7B +// info: if bond's shot missed/landed near guard total > missed_num, goto label +//============================================================================= +// note: compares signed byte argument against chr->numclosearghs +//===========================================================================*/ +#define if_guard_hits_missed_greater_than_ID 0x7B +#define if_guard_hits_missed_greater_than_LENGTH 0x03 +#define if_guard_hits_missed_greater_than(missed_num, label) \ + if_guard_hits_missed_greater_than_ID, \ + missed_num, \ + label, + +/*============================================================================= +// name: if_chr_health_less_than +// command id: 7C +// info: if chr's health < health argument, goto label +//============================================================================= +// note: argument is unsigned. converted to float and compares different between +// chr->maxdamage - chr->damage. default guard health is 40 (0x28), or after +// float conversion 4.0f. armour is tested +//===========================================================================*/ +#define if_chr_health_less_than_ID 0x7C +#define if_chr_health_less_than_LENGTH 0x04 +#define if_chr_health_less_than(chr_num, health, label) \ + if_chr_health_less_than_ID, \ + chr_num, \ + health, \ + label, + +/*============================================================================= +// name: if_chr_health_greater_than +// command id: 7D +// info: if chr's health > health argument, goto label +//============================================================================= +// note: argument is unsigned. converted to float and compares different between +// chr->maxdamage - chr->damage. default guard health is 40 (0x28), or after +// float conversion 4.0f. armour is tested +//===========================================================================*/ +#define if_chr_health_greater_than_ID 0x7D +#define if_chr_health_greater_than_LENGTH 0x04 +#define if_chr_health_greater_than(chr_num, health, label) \ + if_chr_health_greater_than_ID, \ + chr_num, \ + health, \ + label, + +/*============================================================================= +// name: if_chr_was_damaged_since_last_check +// command id: 7E +// info: if chr has taken damage since last check, goto label +//============================================================================= +// note: checks chr->chrflags if CHRFLAG_WAS_DAMAGED is set. if true, unset flag +// and goto label. CHRFLAG_WAS_DAMAGED is set if guard took damage (not invincible) +//===========================================================================*/ +#define if_chr_was_damaged_since_last_check_ID 0x7E +#define if_chr_was_damaged_since_last_check_LENGTH 0x03 +#define if_chr_was_damaged_since_last_check(chr_num, label) \ + if_chr_was_damaged_since_last_check_ID, \ + chr_num, \ + label, + +/*============================================================================= +// name: if_bond_health_less_than +// command id: 7F +// info: if bond's health < health argument, goto label +//============================================================================= +// note: does not check armour. health argument is unsigned, argument range is +// between 00 and FF, with FF equal to 100% health +//===========================================================================*/ +#define if_bond_health_less_than_ID 0x7F +#define if_bond_health_less_than_LENGTH 0x03 +#define if_bond_health_less_than(health, label) \ + if_bond_health_less_than_ID, \ + health, \ + label, + +/*============================================================================= +// name: if_bond_health_greater_than +// command id: 80 +// info: if bond's health > health argument, goto label +//============================================================================= +// note: does not check armour. health argument is unsigned, argument range is +// between 00 and FF, with FF equal to 100% health +//===========================================================================*/ +#define if_bond_health_greater_than_ID 0x80 +#define if_bond_health_greater_than_LENGTH 0x03 +#define if_bond_health_greater_than(health, label) \ + if_bond_health_greater_than_ID, \ + health, \ + label, + +/*============================================================================= +// name: local_byte_1_set +// command id: 81 +// info: set chr->flags byte value to byte argument +//============================================================================= +// note: argument is unsigned. this is a private byte that is stored in chr struct. +// it can be used for anything. default value is 0 +//===========================================================================*/ +#define local_byte_1_set_ID 0x81 +#define local_byte_1_set_LENGTH 0x02 +#define local_byte_1_set(set_byte) \ + local_byte_1_set_ID, \ + set_byte, + +/*============================================================================= +// name: local_byte_1_add +// command id: 82 +// info: add byte argument to chr->flags byte value +//============================================================================= +// note: argument is unsigned, add value is clamped at 0xFF (255 dec). this is +// a private byte that is stored in chr struct. it can be used for anything. +// default value is 0 +//===========================================================================*/ +#define local_byte_1_add_ID 0x82 +#define local_byte_1_add_LENGTH 0x02 +#define local_byte_1_add(add_byte) \ + local_byte_1_add_ID, \ + add_byte, + +/*============================================================================= +// name: local_byte_1_subtract +// command id: 83 +// info: subtract byte argument from chr->flags byte value +//============================================================================= +// note: argument is unsigned, subtract value is clamped at 0. this is a private +// byte that is stored in chr struct. it can be used for anything. default value is 0 +//===========================================================================*/ +#define local_byte_1_subtract_ID 0x83 +#define local_byte_1_subtract_LENGTH 0x02 +#define local_byte_1_subtract(subtract_byte) \ + local_byte_1_subtract_ID, \ + subtract_byte, + +/*============================================================================= +// name: if_local_byte_1_less_than +// command id: 84 +// info: if chr->flags byte value < byte argument, goto label +//============================================================================= +// note: argument is unsigned. this is a private byte that is stored in chr struct. +// it can be used for anything. default value is 0 +//===========================================================================*/ +#define if_local_byte_1_less_than_ID 0x84 +#define if_local_byte_1_less_than_LENGTH 0x03 +#define if_local_byte_1_less_than(compare_byte, label) \ + if_local_byte_1_less_than_ID, \ + compare_byte, \ + label, + +/*============================================================================= +// name: if_local_byte_1_less_than_random_seed +// command id: 85 +// info: if chr->flags byte value < chr->random, goto label +//============================================================================= +// note: chr->random must be pre-generated by command 33 before comparing. this +// is a private byte that is stored in chr struct. it can be used for anything. +// default value is 0 +//===========================================================================*/ +#define if_local_byte_1_less_than_random_seed_ID 0x85 +#define if_local_byte_1_less_than_random_seed_LENGTH 0x02 +#define if_local_byte_1_less_than_random_seed(label) \ + if_local_byte_1_less_than_random_seed_ID, \ + label, + +/*============================================================================= +// name: local_byte_2_set +// command id: 86 +// info: set chr->flags2 byte value to byte argument +//============================================================================= +// note: argument is unsigned. this is a private byte that is stored in chr struct. +// it can be used for anything. default value is 0 +//===========================================================================*/ +#define local_byte_2_set_ID 0x86 +#define local_byte_2_set_LENGTH 0x02 +#define local_byte_2_set(set_byte) \ + local_byte_2_set_ID, \ + set_byte, + +/*============================================================================= +// name: local_byte_2_add +// command id: 87 +// info: add byte argument to chr->flags2 byte value +//============================================================================= +// note: argument is unsigned, add value is clamped at 0xFF (255 dec). this is +// a private byte that is stored in chr struct. it can be used for anything. +// default value is 0 +//===========================================================================*/ +#define local_byte_2_add_ID 0x87 +#define local_byte_2_add_LENGTH 0x02 +#define local_byte_2_add(add_byte) \ + local_byte_2_add_ID, \ + add_byte, + +/*============================================================================= +// name: local_byte_2_subtract +// command id: 88 +// info: subtract byte argument from chr->flags2 byte value +//============================================================================= +// note: argument is unsigned, subtract value is clamped at 0. this is a private +// byte that is stored in chr struct. it can be used for anything. default value is 0 +//===========================================================================*/ +#define local_byte_2_subtract_ID 0x88 +#define local_byte_2_subtract_LENGTH 0x02 +#define local_byte_2_subtract(subtract_byte) \ + local_byte_2_subtract_ID, \ + subtract_byte, + +/*============================================================================= +// name: if_local_byte_2_less_than +// command id: 89 +// info: if chr->flags2 byte value < byte argument, goto label +//============================================================================= +// note: argument is unsigned. this is a private byte that is stored in chr struct. +// it can be used for anything. default value is 0 +//===========================================================================*/ +#define if_local_byte_2_less_than_ID 0x89 +#define if_local_byte_2_less_than_LENGTH 0x03 +#define if_local_byte_2_less_than(compare_byte, label) \ + if_local_byte_2_less_than_ID, \ + compare_byte, \ + label, + +/*============================================================================= +// name: if_local_byte_2_less_than_random_seed +// command id: 8A +// info: if chr->flags2 byte value < chr->random, goto label +//============================================================================= +// note: chr->random must be pre-generated by command 33 before comparing. this +// is a private byte that is stored in chr struct. it can be used for anything. +// default value is 0 +//===========================================================================*/ +#define if_local_byte_2_less_than_random_seed_ID 0x8A +#define if_local_byte_2_less_than_random_seed_LENGTH 0x02 +#define if_local_byte_2_less_than_random_seed(label) \ + if_local_byte_2_less_than_random_seed_ID, \ + label, + +/*============================================================================= +// name: guard_set_hearing_scale +// command id: 8B +// info: set guard's hearing scale - the higher the value, the further away guard +// can hear bond's gunfire +//============================================================================= +// note: sets to chr->hearingscale. default value is 0x03E8 (1000 dec). argument +// is converted to float and divided by 1000 before setting to hearingscale +//===========================================================================*/ +#define guard_set_hearing_scale_ID 0x8B +#define guard_set_hearing_scale_LENGTH 0x03 +#define guard_set_hearing_scale(hearing_scale) \ + guard_set_hearing_scale_ID, \ + chararray16(hearing_scale), + +/*============================================================================= +// name: guard_set_vision_range +// command id: 8C +// info: set guard's vision range - the smaller the value, the longer the guard +// takes to detect bond with command 32. does not affect firing distance +//============================================================================= +// note: sets to chr->visionrange. default value is 0x0064 (100 dec). argument +// is unsigned and converted to float before setting to hearingscale +//===========================================================================*/ +#define guard_set_vision_range_ID 0x8C +#define guard_set_vision_range_LENGTH 0x02 +#define guard_set_vision_range(vision_range) \ + guard_set_vision_range_ID, \ + vision_range, + +/*============================================================================= +// name: guard_set_grenade_probability +// command id: 8D +// info: set guard's grenade probability - used for rng comparison by command 1A. +// the higher the value, the likelyhood of guard throwing a grenade +//============================================================================= +// note: sets to chr->grenadeprob - 0 by default. argument is unsigned. the only +// way to make guards throw grenades is by using this command or assigning setup +// object 0x12 to chr +//===========================================================================*/ +#define guard_set_grenade_probability_ID 0x8D +#define guard_set_grenade_probability_LENGTH 0x02 +#define guard_set_grenade_probability(grenade_prob) \ + guard_set_grenade_probability_ID, \ + grenade_prob, + +/*============================================================================= +// name: guard_set_chr_num +// command id: 8E +// info: set guard's chr num +//============================================================================= +// note: sets to chr->chrnum - commonly used for respawning guards +//===========================================================================*/ +#define guard_set_chr_num_ID 0x8E +#define guard_set_chr_num_LENGTH 0x02 +#define guard_set_chr_num(chr_num) \ + guard_set_chr_num_ID, \ + chr_num, + +/*============================================================================= +// name: guard_set_health_total +// command id: 8F +// info: set guard's total health - the higher the value, the more shots needed +// to kill guard. +//============================================================================= +// note: sets to chr->maxdamage. default health is 4.0f (0x0028/40 dec for argument). +// argument is converted to float and divided by 10 before setting to maxdamage. +// if difficulty mode 007 is active, command will use 007 health modifier +//===========================================================================*/ +#define guard_set_health_total_ID 0x8F +#define guard_set_health_total_LENGTH 0x03 +#define guard_set_health_total(total_health) \ + guard_set_health_total_ID, \ + chararray16(total_health), + +/*============================================================================= +// name: guard_set_armour +// command id: 90 +// info: set guard's armour value - the higher the value, the higher the armour. +// armoured guards will not show hit reactions. they also don't instantly die +// from explosions, instead taking damaged based on how close they are to explosions +// like bond. to any setup designers reading this, please use armour sparingly! +//============================================================================= +// note: subtracts from chr->damage - negative damage means guard has armour. +// instead of storing armour as a separate chr variable, we reuse the current +// damage and read negative damage as armour. technically this command should +// be titled 'guard_remove_damage' but its used mostly for adding armour to guards. +// argument is converted to float and divided by 10 before subtracting chr->damage. +// if difficulty mode 007 is active, command will use 007 health modifier. +// argument is unsigned - 0xFFFF will be set to 6553.5f armour, or -6553.5f damage +//===========================================================================*/ +#define guard_set_armour_ID 0x90 +#define guard_set_armour_LENGTH 0x03 +#define guard_set_armour(armour_value) \ + guard_set_armour_ID, \ + chararray16(armour_value), + +/*============================================================================= +// name: guard_set_speed_rating +// command id: 91 +// info: set guard's speed rating - controls how quickly the guard animates. +//============================================================================= +// note: sets to chr->speedrating. default speed is 0 - argument is signed. +// negative values will make guard animate slower - this affects firing animations. +// command does not use 007 reaction speed modifier. do not use values above/below +// 100 or it may crash +//===========================================================================*/ +#define guard_set_speed_rating_ID 0x91 +#define guard_set_speed_rating_LENGTH 0x02 +#define guard_set_speed_rating(speed_rating) \ + guard_set_speed_rating_ID, \ + speed_rating, + +/*============================================================================= +// name: guard_set_argh_rating +// command id: 92 +// info: set guard's argh rating - controls how quickly the guard recovers from +// being shot. range is -100 to 100 (100 show almost no hit reaction) +//============================================================================= +// note: sets to chr->arghrating. default value is 0 - argument is signed. +// negative values will make guard animate slower - this affects firing animations. +// command does not use 007 reaction speed modifier +//===========================================================================*/ +#define guard_set_argh_rating_ID 0x92 +#define guard_set_argh_rating_LENGTH 0x02 +#define guard_set_argh_rating(speed_rating) \ + guard_set_argh_rating_ID, \ + speed_rating, + +/*============================================================================= +// name: guard_set_accuracy_rating +// command id: 93 +// info: set guard's accuracy rating - controls how accurately the guard fires +// their weapon +//============================================================================= +// note: sets to chr->accuracyrating. default value is 0 and ranges from -100 +// to 100, argument is signed byte. command does not use 007 accuracy modifier +//===========================================================================*/ +#define guard_set_accuracy_rating_ID 0x93 +#define guard_set_accuracy_rating_LENGTH 0x02 +#define guard_set_accuracy_rating(accuracy_rating) \ + guard_set_accuracy_rating_ID, \ + accuracy_rating, + +/*============================================================================= +// name: guard_bitfield_set_on +// command id: 94 +// info: set chr->BITFIELD on +//============================================================================= +// note: can be used to store a custom flag per chr, useful for missions. global +// lists use flag 01, which is defined as BITFIELD_DONT_POINT_AT_BOND. other bits +// are free to use for setup's ai lists. can be used by obj ai lists, obj lists +// are free to utilize the entire spectrum of flags +//===========================================================================*/ +#define guard_bitfield_set_on_ID 0x94 +#define guard_bitfield_set_on_LENGTH 0x02 +#define guard_bitfield_set_on(bitfield) \ + guard_bitfield_set_on_ID, \ + bitfield, + +/*============================================================================= +// name: guard_bitfield_set_off +// command id: 95 +// info: set chr->BITFIELD off +//============================================================================= +// note: can be used to store a custom flag per chr, useful for missions. global +// lists use flag 01, which is defined as BITFIELD_DONT_POINT_AT_BOND. other bits +// are free to use for setup's ai lists. can be used by obj ai lists, obj lists +// are free to utilize the entire spectrum of flags +//===========================================================================*/ +#define guard_bitfield_set_off_ID 0x95 +#define guard_bitfield_set_off_LENGTH 0x02 +#define guard_bitfield_set_off(bitfield) \ + guard_bitfield_set_off_ID, \ + bitfield, + +/*============================================================================= +// name: if_guard_bitfield_is_set_on +// command id: 96 +// info: if bits is set on in chr->BITFIELD, goto label +//============================================================================= +// note: can be used by obj ai lists, obj lists are free to utilize the entire +// spectrum of flags +//===========================================================================*/ +#define if_guard_bitfield_is_set_on_ID 0x96 +#define if_guard_bitfield_is_set_on_LENGTH 0x03 +#define if_guard_bitfield_is_set_on(bitfield, label) \ + if_guard_bitfield_is_set_on_ID, \ + bitfield, \ + label, + +/*============================================================================= +// name: chr_bitfield_set_on +// command id: 97 +// info: set chr->BITFIELD on +//============================================================================= +// note: can be used to store a custom flag per chr, useful for missions. global +// lists use flag 01, which is defined as BITFIELD_DONT_POINT_AT_BOND. other bits +// are free to use for setup's ai lists +//===========================================================================*/ +#define chr_bitfield_set_on_ID 0x97 +#define chr_bitfield_set_on_LENGTH 0x03 +#define chr_bitfield_set_on(chr_num, bitfield) \ + chr_bitfield_set_on_ID, \ + chr_num, \ + bitfield, + +/*============================================================================= +// name: chr_bitfield_set_off +// command id: 98 +// info: set chr->BITFIELD off +//============================================================================= +// note: can be used to store a custom flag per chr, useful for missions. global +// lists use flag 01, which is defined as BITFIELD_DONT_POINT_AT_BOND. other bits +// are free to use for setup's ai lists +//===========================================================================*/ +#define chr_bitfield_set_off_ID 0x98 +#define chr_bitfield_set_off_LENGTH 0x03 +#define chr_bitfield_set_off(chr_num, bitfield) \ + chr_bitfield_set_off_ID, \ + chr_num, \ + bitfield, + +/*============================================================================= +// name: if_chr_bitfield_is_set_on +// command id: 99 +// info: if bits is set on in chr->BITFIELD, goto label +//===========================================================================*/ +#define if_chr_bitfield_is_set_on_ID 0x99 +#define if_chr_bitfield_is_set_on_LENGTH 0x04 +#define if_chr_bitfield_is_set_on(chr_num, bitfield, label) \ + if_chr_bitfield_is_set_on_ID, \ + chr_num, \ + bitfield, \ + label, + +/*============================================================================= +// name: objective_bitfield_set_on +// command id: 9A +// info: set bits in objective bitfield on +//============================================================================= +// note: can be used to store a mission unique objective flag, which can be linked +// to mission objectives. it can also be used to store miscellaneous flags used +// by other ai lists. if a mission objective is changed while in third person, +// it will not be updated on the briefing page - all mission objectives status +// are locked while in third person +//===========================================================================*/ +#define objective_bitfield_set_on_ID 0x9A +#define objective_bitfield_set_on_LENGTH 0x05 +#define objective_bitfield_set_on(bitfield) \ + objective_bitfield_set_on_ID, \ + chararray32(bitfield) + +/*============================================================================= +// name: objective_bitfield_set_off +// command id: 9B +// info: set bits in objective bitfield off +//============================================================================= +// note: can be used to store a mission unique objective flag, which can be linked +// to mission objectives. it can also be used to store miscellaneous flags used +// by other ai lists. if a mission objective is changed while in third person, +// it will not be updated on the briefing page - all mission objectives status +// are locked while in third person +//===========================================================================*/ +#define objective_bitfield_set_off_ID 0x9B +#define objective_bitfield_set_off_LENGTH 0x05 +#define objective_bitfield_set_off(bitfield) \ + objective_bitfield_set_off_ID, \ + chararray32(bitfield) + +/*============================================================================= +// name: if_objective_bitfield_is_set_on +// command id: 9C +// info: if bits in objective bitfield are set on, goto label +//============================================================================= +// note: can check multiple flags at once +//===========================================================================*/ +#define if_objective_bitfield_is_set_on_ID 0x9C +#define if_objective_bitfield_is_set_on_LENGTH 0x06 +#define if_objective_bitfield_is_set_on(bitfield, label) \ + if_objective_bitfield_is_set_on_ID, \ + chararray32(bitfield), \ + label, + +/*============================================================================= +// name: guard_flags_set_on +// command id: 9D +// info: set chr->chrflags on +//============================================================================= +// note: chr->chrflags are not ai list or setup exclusive, they are controlled +// by many parts of the engine. bitfield uses CHRFLAG_# defines. command can be +// used by obj ai lists, obj lists are free to utilize the entire spectrum of flags +//===========================================================================*/ +#define guard_flags_set_on_ID 0x9D +#define guard_flags_set_on_LENGTH 0x05 +#define guard_flags_set_on(bitfield) \ + guard_flags_set_on_ID, \ + chararray32(bitfield), + +/*============================================================================= +// name: guard_flags_set_off +// command id: 9E +// info: set chr->chrflags off +//============================================================================= +// note: chr->chrflags are not ai list or setup exclusive, they are controlled +// by many parts of the engine. bitfield uses CHRFLAG_# defines. can be used by +// obj ai lists, obj lists are free to utilize the entire spectrum of flags +//===========================================================================*/ +#define guard_flags_set_off_ID 0x9E +#define guard_flags_set_off_LENGTH 0x05 +#define guard_flags_set_off(bitfield) \ + guard_flags_set_off_ID, \ + chararray32(bitfield), + +/*============================================================================= +// name: if_guard_flags_is_set_on +// command id: 9F +// info: if bits is set on in chr->chrflags, goto label +//============================================================================= +// note: chr->chrflags are not ai list or setup exclusive, they are controlled +// by many parts of the engine. bitfield uses CHRFLAG_# defines. can be used by +// obj ai lists, obj lists are free to utilize the entire spectrum of flags +//===========================================================================*/ +#define if_guard_flags_is_set_on_ID 0x9F +#define if_guard_flags_is_set_on_LENGTH 0x06 +#define if_guard_flags_is_set_on(bitfield, label) \ + if_guard_flags_is_set_on_ID, \ + chararray32(bitfield), \ + label, + +/*============================================================================= +// name: chr_flags_set_on +// command id: A0 +// info: set chr->chrflags on +//============================================================================= +// note: chr->chrflags are not ai list or setup exclusive, they are controlled +// by many parts of the engine. bitfield uses CHRFLAG_# defines +//===========================================================================*/ +#define chr_flags_set_on_ID 0xA0 +#define chr_flags_set_on_LENGTH 0x06 +#define chr_flags_set_on(chr_num, bitfield) \ + chr_flags_set_on_ID, \ + chr_num, \ + chararray32(bitfield), + +/*============================================================================= +// name: chr_flags_set_off +// command id: A1 +// info: set chr->chrflags off +//============================================================================= +// note: chr->chrflags are not ai list or setup exclusive, they are controlled +// by many parts of the engine. bitfield uses CHRFLAG_# defines +//===========================================================================*/ +#define chr_flags_set_off_ID 0xA1 +#define chr_flags_set_off_LENGTH 0x06 +#define chr_flags_set_off(chr_num, bitfield) \ + chr_flags_set_off_ID, \ + chr_num, \ + chararray32(bitfield), + +/*============================================================================= +// name: if_chr_flags_is_set_on +// command id: A2 +// info: if bits is set on in chr->chrflags, goto label +//============================================================================= +// note: chr->chrflags are not ai list or setup exclusive, they are controlled +// by many parts of the engine. bitfield uses CHRFLAG_# defines +//===========================================================================*/ +#define if_chr_flags_is_set_on_ID 0xA2 +#define if_chr_flags_is_set_on_LENGTH 0x07 +#define if_chr_flags_is_set_on(chr_num, bitfield, label) \ + if_chr_flags_is_set_on_ID, \ + chr_num, \ + chararray32(bitfield), \ + label, + +/*============================================================================= +// name: object_flags_1_set_on +// command id: A3 +// info: set object->propflags on +//============================================================================= +// note: bitfield uses PROPFLAG_# defines +//===========================================================================*/ +#define object_flags_1_set_on_ID 0xA3 +#define object_flags_1_set_on_LENGTH 0x06 +#define object_flags_1_set_on(object_tag, bitfield) \ + object_flags_1_set_on_ID, \ + object_tag, \ + chararray32(bitfield), + +/*============================================================================= +// name: object_flags_1_set_off +// command id: A4 +// info: set object->propflags off +//============================================================================= +// note: bitfield uses PROPFLAG_# defines +//===========================================================================*/ +#define object_flags_1_set_off_ID 0xA4 +#define object_flags_1_set_off_LENGTH 0x06 +#define object_flags_1_set_off(object_tag, bitfield) \ + object_flags_1_set_off_ID, \ + object_tag, \ + chararray32(bitfield), + +/*============================================================================= +// name: if_object_flags_1_is_set_on +// command id: A5 +// info: if bits is set on in object->propflags, goto label +//============================================================================= +// note: bitfield uses PROPFLAG_# defines +//===========================================================================*/ +#define if_object_flags_1_is_set_on_ID 0xA5 +#define if_object_flags_1_is_set_on_LENGTH 0x07 +#define if_object_flags_1_is_set_on(object_tag, bitfield, label) \ + if_object_flags_1_is_set_on_ID, \ + object_tag, \ + chararray32(bitfield), \ + label, + +/*============================================================================= +// name: object_flags_2_set_on +// command id: A6 +// info: set object->propflags2 on +//============================================================================= +// note: bitfield uses PROPFLAG2_# defines +//===========================================================================*/ +#define object_flags_2_set_on_ID 0xA6 +#define object_flags_2_set_on_LENGTH 0x06 +#define object_flags_2_set_on(object_tag, bitfield) \ + object_flags_2_set_on_ID, \ + object_tag, \ + chararray32(bitfield), + +/*============================================================================= +// name: object_flags_2_set_off +// command id: A7 +// info: set object->propflags2 off +//============================================================================= +// note: bitfield uses PROPFLAG2_# defines +//===========================================================================*/ +#define object_flags_2_set_off_ID 0xA7 +#define object_flags_2_set_off_LENGTH 0x06 +#define object_flags_2_set_off(object_tag, bitfield) \ + object_flags_2_set_off_ID, \ + object_tag, \ + chararray32(bitfield), + +/*============================================================================= +// name: if_object_flags_2_is_set_on +// command id: A8 +// info: if bits is set on in object->propflags2, goto label +//============================================================================= +// note: bitfield uses PROPFLAG2_# defines +//===========================================================================*/ +#define if_object_flags_2_is_set_on_ID 0xA8 +#define if_object_flags_2_is_set_on_LENGTH 0x07 +#define if_object_flags_2_is_set_on(object_tag, bitfield, label) \ + if_object_flags_2_is_set_on_ID, \ + object_tag, \ + chararray32(bitfield), \ + label, + +/*============================================================================= +// name: guard_set_chr_preset +// command id: A9 +// info: set guard->chrpreset1 to chr_preset +//============================================================================= +// note: can be used by obj ai lists +//===========================================================================*/ +#define guard_set_chr_preset_ID 0xA9 +#define guard_set_chr_preset_LENGTH 0x02 +#define guard_set_chr_preset(chr_preset) \ + guard_set_chr_preset_ID, \ + chr_preset, + +/*============================================================================= +// name: chr_set_chr_preset +// command id: AA +// info: set chr->chrpreset1 to chr_preset +//===========================================================================*/ +#define chr_set_chr_preset_ID 0xAA +#define chr_set_chr_preset_LENGTH 0x03 +#define chr_set_chr_preset(chr_num, chr_preset) \ + chr_set_chr_preset_ID, \ + chr_num, \ + chr_preset, + +/*============================================================================= +// name: guard_set_pad_preset +// command id: AB +// info: set guard->padpreset1 to pad_preset +//============================================================================= +// note: can be used by obj ai lists +//===========================================================================*/ +#define guard_set_pad_preset_ID 0xAB +#define guard_set_pad_preset_LENGTH 0x03 +#define guard_set_pad_preset(chr_preset) \ + guard_set_pad_preset_ID, \ + chrarray16(pad_preset), + +/*============================================================================= +// name: chr_set_pad_preset +// command id: AC +// info: set chr->padpreset1 to pad_preset +//===========================================================================*/ +#define chr_set_pad_preset_ID 0xAC +#define chr_set_pad_preset_LENGTH 0x04 +#define chr_set_pad_preset(chr_num, chr_preset) \ + chr_set_pad_preset_ID, \ + chr_num, \ + chrarray16(pad_preset), + +/*============================================================================= +// name: debug_log +// command id: AD +// info: debug comment +//============================================================================= +// note: may have originally printed to stderr on host sgi devkit. command is +// variable length must end with null terminator character '\0' (debug_log_end) +//===========================================================================*/ +#define debug_log_ID 0xAD +#define debug_log_LENGTH 0x32 // max length +#define debug_log \ + debug_log_ID, + +/*============================================================================= +// name: local_timer_reset_start +// command id: AE +// info: reset and start chr->timer60 +//============================================================================= +// note: local timer is different to hud countdown. local timer is unique for each chr, +// while hud countdown is global for the entire mission. chr->timer60 only counts up +//===========================================================================*/ +#define local_timer_reset_start_ID 0xAE +#define local_timer_reset_start_LENGTH 0x01 +#define local_timer_reset_start \ + local_timer_reset_start_ID, + +/*============================================================================= +// name: local_timer_reset +// command id: AF +// info: reset chr->timer60 +//============================================================================= +// note: local timer is different to hud countdown. local timer is unique for each chr, +// while hud countdown is global for the entire mission. chr->timer60 only counts up +//===========================================================================*/ +#define local_timer_reset_ID 0xAF +#define local_timer_reset_LENGTH 0x01 +#define local_timer_reset \ + local_timer_reset_ID, + +/*============================================================================= +// name: local_timer_stop +// command id: B0 +// info: pauses chr->timer60 (does not reset value) +//============================================================================= +// note: local timer is different to hud countdown. local timer is unique for each chr, +// while hud countdown is global for the entire mission. chr->timer60 only counts up +//===========================================================================*/ +#define local_timer_stop_ID 0xB0 +#define local_timer_stop_LENGTH 0x01 +#define local_timer_stop \ + local_timer_stop_ID, + +/*============================================================================= +// name: local_timer_start +// command id: B1 +// info: start chr->timer60 (does not reset value) +//============================================================================= +// note: local timer is different to hud countdown. local timer is unique for each chr, +// while hud countdown is global for the entire mission. chr->timer60 only counts up +//===========================================================================*/ +#define local_timer_start_ID 0xB1 +#define local_timer_start_LENGTH 0x01 +#define local_timer_start \ + local_timer_start_ID, + +/*============================================================================= +// name: if_local_timer_has_stopped +// command id: B2 +// info: if chr->timer60 is not active (paused), goto label +//============================================================================= +// note: by default, chr->timer60 is inactive +//===========================================================================*/ +#define if_local_timer_has_stopped_ID 0xB2 +#define if_local_timer_has_stopped_LENGTH 0x02 +#define if_local_timer_has_stopped(label) \ + if_local_timer_has_stopped_ID, \ + label, + +/*============================================================================= +// name: if_local_timer_less_than +// command id: B3 +// info: if chr->timer60 < time60, goto label +//============================================================================= +// note: time60 argument is converted to float from unsigned int and compared. +// chr->timer60 only counts up +//===========================================================================*/ +#define if_local_timer_less_than_ID 0xB3 +#define if_local_timer_less_than_LENGTH 0x05 +#define if_local_timer_less_than(time60, label) \ + if_local_timer_less_than_ID, \ + chararray24(time60), \ + label, + +/*============================================================================= +// name: if_local_timer_greater_than +// command id: B4 +// info: if chr->timer60 > time60, goto label +//============================================================================= +// note: time60 argument is converted to float from unsigned int and compared. +// chr->timer60 only counts up +//===========================================================================*/ +#define if_local_timer_greater_than_ID 0xB4 +#define if_local_timer_greater_than_LENGTH 0x05 +#define if_local_timer_greater_than(time60, label) \ + if_local_timer_greater_than_ID, \ + chararray24(time60), \ + label, + +/*============================================================================= +// name: hud_countdown_show +// command id: B5 +//============================================================================= +// info: shows the hud countdown +//===========================================================================*/ +#define hud_countdown_show_ID 0xB5 +#define hud_countdown_show_LENGTH 0x01 +#define hud_countdown_show \ + hud_countdown_show_ID, + +/*============================================================================= +// name: hud_countdown_hide +// command id: B6 +// info: hides the hud countdown +//============================================================================= +// note: can be used as a hidden global timer for objective logic +//===========================================================================*/ +#define hud_countdown_hide_ID 0xB6 +#define hud_countdown_hide_LENGTH 0x01 +#define hud_countdown_hide \ + hud_countdown_hide_ID, + +/*============================================================================= +// name: hud_countdown_set +// command id: B7 +// info: set the hud countdown +//============================================================================= +// note: to make the timer count up, set to 0 and start timer +//===========================================================================*/ +#define hud_countdown_set_ID 0xB7 +#define hud_countdown_set_LENGTH 0x03 +#define hud_countdown_set(seconds) \ + hud_countdown_set_ID, \ + chararray16(seconds), + +/*============================================================================= +// name: hud_countdown_stop +// command id: B8 +// info: stops the hud countdown +//===========================================================================*/ +#define hud_countdown_stop_ID 0xB8 +#define hud_countdown_stop_LENGTH 0x01 +#define hud_countdown_stop \ + hud_countdown_stop_ID, + +/*============================================================================= +// name: hud_countdown_start +// command id: B9 +// info: start the hud countdown +//===========================================================================*/ +#define hud_countdown_start_ID 0xB9 +#define hud_countdown_start_LENGTH 0x01 +#define hud_countdown_start \ + hud_countdown_start_ID, + +/*============================================================================= +// name: if_hud_countdown_has_stopped +// command id: BA +// info: if hud countdown isn't active (paused), goto label +//============================================================================= +// note: by default, hud countdown is inactive +//===========================================================================*/ +#define if_hud_countdown_has_stopped_ID 0xBA +#define if_hud_countdown_has_stopped_LENGTH 0x02 +#define if_hud_countdown_has_stopped(label) \ + if_hud_countdown_has_stopped_ID, \ + label, + +/*============================================================================= +// name: if_hud_countdown_less_than +// command id: BB +// info: if hud countdown < seconds, goto label +//============================================================================= +// note: if seconds argument is 0, it will only goto label if timer is less than +// zero (counting up). seconds value is unsigned and can't test negative values +//===========================================================================*/ +#define if_hud_countdown_less_than_ID 0xBB +#define if_hud_countdown_less_than_LENGTH 0x04 +#define if_hud_countdown_less_than(seconds, label) \ + if_hud_countdown_less_than_ID, \ + chararray16(seconds), \ + label, + +/*============================================================================= +// name: if_hud_countdown_greater_than +// command id: BC +// info: if hud countdown > seconds, goto label +//============================================================================= +// note: if seconds argument is 0, it will only goto label if timer is greater than +// zero (counting down). seconds value is unsigned and can't test negative values +//===========================================================================*/ +#define if_hud_countdown_greater_than_ID 0xBC +#define if_hud_countdown_greater_than_LENGTH 0x04 +#define if_hud_countdown_greater_than(seconds, label) \ + if_hud_countdown_greater_than_ID, \ + chararray16(seconds), \ + label, + +/*============================================================================= +// name: chr_try_spawning_at_pad +// command id: BD +// info: spawn chr at pad, goto label if successful +//============================================================================= +// note: if out of memory/can't spawn chr, do not goto label. if pad is blocked, +// attempt to spawn chr around pad. bitfield uses SPAWN_# defines +//===========================================================================*/ +#define chr_try_spawning_at_pad_ID 0xBD +#define chr_try_spawning_at_pad_LENGTH 0x0C +#define chr_try_spawning_at_pad(body_num, head_num, pad, ai_list, bitfield, label) \ + chr_try_spawning_at_pad_ID, \ + body_num, \ + head_num, \ + chararray16(pad), \ + chararray16(ai_list), \ + chararray32(bitfield), \ + label, + +/*============================================================================= +// name: chr_try_spawning_next_to_unseen_chr +// command id: BE +// info: spawn a chr next to another chr, goto label if successful +//============================================================================= +// note: if out of memory/can't spawn chr, do not goto label. bitfield uses SPAWN_# defines. +// target chr must still exist in level or else command will crash. command will +// not spawn chr if target chr has been seen before (CHRFLAG_HAS_BEEN_ON_SCREEN) +//===========================================================================*/ +#define chr_try_spawning_next_to_unseen_chr_ID 0xBE +#define chr_try_spawning_next_to_unseen_chr_LENGTH 0x0B +#define chr_try_spawning_next_to_unseen_chr(body_num, head_num, chr_num_target, ai_list, bitfield, label) \ + chr_try_spawning_next_to_unseen_chr_ID, \ + body_num, \ + head_num, \ + chr_num_target, \ + chararray16(ai_list), \ + chararray32(bitfield), \ + label, + +/*============================================================================= +// name: guard_try_spawning_item +// command id: BF +// info: spawn weapon for guard, goto label if successful +//============================================================================= +// note: if out of memory/can't spawn item/hands occupied, do not goto label. +// spawned prop must have a holding position command within the model file, +// else use conceal flag so guard does not attempt to hold prop +//===========================================================================*/ +#define guard_try_spawning_item_ID 0xBF +#define guard_try_spawning_item_LENGTH 0x09 +#define guard_try_spawning_item(prop_num, item_num, prop_bitfield, label) \ + guard_try_spawning_item_ID, \ + chararray16(prop_num), \ + item_num, \ + chararray32(prop_bitfield), \ + label, + +/*============================================================================= +// name: guard_try_spawning_hat +// command id: C0 +// info: spawn hat for guard, goto label if successful +//============================================================================= +// note: if out of memory/can't spawn item/already have hat, do not goto label. +// spawned hat must have a holding position command within the model file +//===========================================================================*/ +#define guard_try_spawning_hat_ID 0xC0 +#define guard_try_spawning_hat_LENGTH 0x08 +#define guard_try_spawning_hat(prop_num, prop_bitfield, label) \ + guard_try_spawning_hat_ID, \ + chararray16(prop_num), \ + chararray32(prop_bitfield), \ + label, + +/*============================================================================= +// name: chr_try_spawning_clone +// command id: C1 +// info: if guard has clone flag on, spawn a new guard - goto label if successful +//============================================================================= +// note: clone flag is stored in chr->chrflags which is assigned at setup init. +// newly spawned guard is placed in front of original guard +//===========================================================================*/ +#define chr_try_spawning_clone_ID 0xC1 +#define chr_try_spawning_clone_LENGTH 0x05 +#define chr_try_spawning_clone(chr_num, ai_list, label) \ + chr_try_spawning_clone_ID, \ + chr_num, \ + chararray16(ai_list), \ + label, + +/*============================================================================= +// name: text_print_bottom +// command id: C2 +// info: print text slot to bottom left part of screen (where pickup text is located) +//============================================================================= +// note: if text slot is not currently allocated in memory, game will softlock. +// expects string to end with \n character +//===========================================================================*/ +#define text_print_bottom_ID 0xC2 +#define text_print_bottom_LENGTH 0x03 +#define text_print_bottom(text_slot) \ + text_print_bottom_ID, \ + chrarray16(text_slot), + +/*============================================================================= +// name: text_print_top +// command id: C3 +// info: print text slot to top part of screen +//============================================================================= +// note: if text slot is not currently allocated in memory, game will softlock. +// ensure that end of text has a \n character or text background will be misaligned +//===========================================================================*/ +#define text_print_top_ID 0xC3 +#define text_print_top_LENGTH 0x03 +#define text_print_top(text_slot) \ + text_print_top_ID, \ + chrarray16(text_slot), + +/*============================================================================= +// name: sfx_play +// command id: C4 +// info: play a sound effect +//============================================================================= +// note: channel argument range is 0-7. use a channel if you plan on modifying +// sfx volume with commands C5-CA. if you don't plan on doing this, use a invalid +// channel such as -1. this will play the sfx but not bother initializing channel +// data for commands C5-CA. if a sfx is already occupying channel, retriggering +// sfx will overwrite old sfx slot data and no longer can be used by commands C5-CA +//===========================================================================*/ +#define sfx_play_ID 0xC4 +#define sfx_play_LENGTH 0x04 +#define sfx_play(sound_num, channel_num) \ + sfx_play_ID, \ + chrarray16(sound_num), \ + channel_num, + +/*============================================================================= +// name: sfx_emit_from_object +// command id: C5 +// info: set a occupied sfx channel to emit from a tagged object +//============================================================================= +// note: panning is not calculated (mono), only affects volume. decay argument +// is number of ticks to fully transition from max volume to target volume +//===========================================================================*/ +#define sfx_emit_from_object_ID 0xC5 +#define sfx_emit_from_object_LENGTH 0x05 +#define sfx_emit_from_object(channel_num, object_tag, vol_decay_time60) \ + sfx_emit_from_object_ID, \ + channel_num, \ + object_tag, \ + chararray16(vol_decay_time60), + +/*============================================================================= +// name: sfx_emit_from_pad +// command id: C6 +// info: set a occupied sfx channel to emit from a pad +//============================================================================= +// note: panning is not calculated (mono), only affects volume. decay argument +// is number of ticks to fully transition from max volume to target volume +//===========================================================================*/ +#define sfx_emit_from_pad_ID 0xC6 +#define sfx_emit_from_pad_LENGTH 0x06 +#define sfx_emit_from_pad(channel_num, pad, vol_decay_time60) \ + sfx_emit_from_pad_ID, \ + channel_num, \ + chararray16(pad), \ + chararray16(vol_decay_time60), + +/*============================================================================= +// name: sfx_set_channel_volume +// command id: C7 +// info: set occupied sfx channel's volume +//============================================================================= +// note: time argument is number of ticks to fade between current volume to +// target volume. volume argument is signed. range is 0x0000-0x7FFF +//===========================================================================*/ +#define sfx_set_channel_volume_ID 0xC7 +#define sfx_set_channel_volume_LENGTH 0x06 +#define sfx_set_channel_volume(channel_num, target_volume, transition_time60) \ + sfx_set_channel_volume_ID, \ + channel_num, \ + chararray16(target_volume), \ + chararray16(transition_time60), + +/*============================================================================= +// name: sfx_fade_channel_volume +// command id: C8 +// info: fade out occupied sfx channel's volume by volume percent +//============================================================================= +// note: time argument is number of ticks to fade between current volume to +// target volume. volume argument is signed. range is 0x0000-0x7FFF (0-100%) +//===========================================================================*/ +#define sfx_fade_channel_volume_ID 0xC8 +#define sfx_fade_channel_volume_LENGTH 0x06 +#define sfx_fade_channel_volume(channel_num, fade_volume_percent, fade_time60) \ + sfx_fade_channel_volume_ID, \ + channel_num, \ + chararray16(fade_volume_percent), \ + chararray16(fade_time60), + +/*============================================================================= +// name: sfx_stop_channel +// command id: C9 +// info: stop playing sfx in occupied sfx channel +//===========================================================================*/ +#define sfx_stop_channel_ID 0xC9 +#define sfx_stop_channel_LENGTH 0x02 +#define sfx_stop_channel(channel_num) \ + sfx_stop_channel_ID, \ + channel_num, + +/*============================================================================= +// name: if_sfx_channel_volume_less_than +// command id: CA +// info: if sfx channel's volume is < volume argument, goto label +//============================================================================= +// note: if sfx channel is free (no audio playing), goto label. volume argument +// is signed. range is 0x0000-0x7FFF +//===========================================================================*/ +#define if_sfx_channel_volume_less_than_ID 0xCA +#define if_sfx_channel_volume_less_than_LENGTH 0x05 +#define if_sfx_channel_volume_less_than(channel_num, volume, label) \ + if_sfx_channel_volume_less_than_ID, \ + channel_num, \ + chararray16(volume), \ + label, + +/*============================================================================= +// name: vehicle_start_path +// command id: CB +// info: makes vehicle follow a predefined path within setup +//===========================================================================*/ +#define vehicle_start_path_ID 0xCB +#define vehicle_start_path_LENGTH 0x02 +#define vehicle_start_path(path_num) \ + vehicle_start_path_ID, \ + path_num, + +/*============================================================================= +// name: vehicle_speed +// command id: CC +// info: sets vehicle speed, usually paired with command CB +//============================================================================= +// note: arguments are unsigned. 1000 units = 1 meter per second travel speed. +// acceleration_time60 is number of game ticks to reach top speed (lower = faster) +//===========================================================================*/ +#define vehicle_speed_ID 0xCC +#define vehicle_speed_LENGTH 0x05 +#define vehicle_speed(top_speed, acceleration_time60) \ + vehicle_speed_ID, \ + chararray16(top_speed), \ + chararray16(acceleration_time60), + +/*============================================================================= +// name: aircraft_rotor_speed +// command id: CD +// info: sets aircraft's rotor speed +//============================================================================= +// note: arguments are unsigned. argument scale is 10 units per degree, per tick. +// acceleration_time60 is number of game ticks to reach top speed (lower = faster) +//===========================================================================*/ +#define aircraft_rotor_speed_ID 0xCD +#define aircraft_rotor_speed_LENGTH 0x05 +#define aircraft_rotor_speed(rotor_speed, acceleration_time60) \ + aircraft_rotor_speed_ID, \ + chararray16(rotor_speed), \ + chararray16(acceleration_time60), + +/*============================================================================= +// name: if_camera_is_in_intro +// command id: CE +// info: if camera mode equal to INTRO_CAM/FADESWIRL_CAM (viewing mission intro), +// goto label +//============================================================================= +// note: if setup lacks intro camera structs, intro will be skipped +//===========================================================================*/ +#define if_camera_is_in_intro_ID 0xCE +#define if_camera_is_in_intro_LENGTH 0x02 +#define if_camera_is_in_intro(label) \ + if_camera_is_in_intro_ID, \ + label, + +/*============================================================================= +// name: if_camera_is_in_bond_swirl +// command id: CF +// info: if camera mode equal to SWIRL_CAM (moving to back of bond's head), goto label +//============================================================================= +// note: if setup lacks swirl points, intro swirl will be skipped +//===========================================================================*/ +#define if_camera_is_in_bond_swirl_ID 0xCF +#define if_camera_is_in_bond_swirl_LENGTH 0x02 +#define if_camera_is_in_bond_swirl(label) \ + if_camera_is_in_bond_swirl_ID, \ + label, + +/*============================================================================= +// name: tv_change_screen_bank +// command id: D0 +// info: change the screen bank of a tagged tv monitor +//============================================================================= +// note: if tagged object has multiple screens, use screen index argument to set. +// if tagged object has one screen, screen index is ignored +//===========================================================================*/ +#define tv_change_screen_bank_ID 0xD0 +#define tv_change_screen_bank_LENGTH 0x04 +#define tv_change_screen_bank(object_tag, screen_index, screen_bank) \ + tv_change_screen_bank_ID, \ + object_tag, \ + screen_index, \ + screen_bank, + +/*============================================================================= +// name: if_bond_in_tank +// command id: D1 +// info: if bond is controlling tank, goto label +//===========================================================================*/ +#define if_bond_in_tank_ID 0xD1 +#define if_bond_in_tank_LENGTH 0x02 +#define if_bond_in_tank(label) \ + if_bond_in_tank_ID, \ + label, + +/*============================================================================= +// name: exit_level +// command id: D2 +// info: exits the level +//============================================================================= +// note: recommend not to use this command, instead goto GLIST_EXIT_LEVEL for +// exit cutscene list. retail game has a glitch with hires mode that needs to +// execute this command in a loop, check cuba's 1000 list +//===========================================================================*/ +#define exit_level_ID 0xD2 +#define exit_level_LENGTH 0x01 +#define exit_level \ + exit_level_ID, + +/*============================================================================= +// name: camera_return_to_bond +// command id: D3 +// info: switch back to first person view +//============================================================================= +// note: unused command, never used in retail game. tagged items within inventory +// will become invalid after command - only weapons are safe. command must have +// 3 ai_sleep commands before executing this command or else engine will crash +// on console (use camera_transition_to_bond). mission time is resumed on return +// to first person view +//===========================================================================*/ +#define camera_return_to_bond_ID 0xD3 +#define camera_return_to_bond_LENGTH 0x01 +#define camera_return_to_bond \ + camera_return_to_bond_ID, + +/*============================================================================= +// name: camera_look_at_bond_from_pad +// command id: D4 +// info: change view to pad and look at bond +//============================================================================= +// note: command must have a bond_hide_weapons command and 3 ai_sleep commands +// before executing this command or else engine will crash (use camera_transition_from_bond). +// if camera mode is already in third person then you don't need to do the above. +// mission time is paused while in third person +//===========================================================================*/ +#define camera_look_at_bond_from_pad_ID 0xD4 +#define camera_look_at_bond_from_pad_LENGTH 0x03 +#define camera_look_at_bond_from_pad(pad) \ + camera_look_at_bond_from_pad_ID, \ + chararray16(pad), + +/*============================================================================= +// name: camera_switch +// command id: D5 +// info: change view to tagged camera's position and rotation +//============================================================================= +// note: command must have a bond_hide_weapons command and 3 ai_sleep commands +// before executing this command or else engine will crash (use camera_transition_from_bond). +// if camera mode is already in third person then you don't need to do the above. +// only look at bond if flag is set. unused flag may have separated look at bond +// as x/y flags instead of a single flag - for retail unused flag does nothing. +// mission time is paused while in third person +//===========================================================================*/ +#define camera_switch_ID 0xD5 +#define camera_switch_LENGTH 0x06 +#define camera_switch(object_tag, look_at_bond_flag, unused_flag) \ + camera_switch_ID, \ + object_tag, \ + chararray16(look_at_bond_flag), \ + chararray16(unused_flag), + +/*============================================================================= +// name: if_bond_y_pos_less_than +// command id: D6 +// info: if bond's y axis position < position argument, goto label +//============================================================================= +// note: checks if bond's y axis is below the provided argument. command uses +// world units. argument is signed and scale is 1:1 to in-game position. +// bond's point of view is accounted for by command (like debug manpos) +//===========================================================================*/ +#define if_bond_y_pos_less_than_ID 0xD6 +#define if_bond_y_pos_less_than_LENGTH 0x04 +#define if_bond_y_pos_less_than(y_pos, label) \ + if_bond_y_pos_less_than_ID, \ + chararray16(y_pos), \ + label, + +/*============================================================================= +// name: hud_hide_and_lock_controls_and_pause_mission_time +// command id: D7 +// info: hide hud elements, lock player control and stop mission time. +// command is commonly used for exit mission lists +//============================================================================= +// note: argument flag will not hide element on command execution. this is +// needed for dialog/hud countdown while in cinema mode. flags can be combined +// together to show multiple elements. sequential executions of D7 can be used +// to hide more elements, but once an element has been hidden it cannot be shown +// again until command D8 is executed. bond can take damage while in locked state. +// use HUD_# flags for bitfield argument +//===========================================================================*/ +#define hud_hide_and_lock_controls_and_pause_mission_time_ID 0xD7 +#define hud_hide_and_lock_controls_and_pause_mission_time_LENGTH 0x02 +#define hud_hide_and_lock_controls_and_pause_mission_time(bitfield) \ + hud_hide_and_lock_controls_and_pause_mission_time_ID, \ + bitfield, + +/*============================================================================= +// name: hud_show_all_and_unlock_controls_and_resume_mission_time +// command id: D8 +// info: show all hud elements, unlock player control and resume mission time +//============================================================================= +// note: should only be executed after D7 command +//===========================================================================*/ +#define hud_show_all_and_unlock_controls_and_resume_mission_time_ID 0xD8 +#define hud_show_all_and_unlock_controls_and_resume_mission_time_LENGTH 0x01 +#define hud_show_all_and_unlock_controls_and_resume_mission_time \ + hud_show_all_and_unlock_controls_and_resume_mission_time_ID, + +/*============================================================================= +// name: chr_try_teleporting_to_pad +// command id: D9 +// info: teleport chr to pad, goto label if successful +//===========================================================================*/ +#define chr_try_teleporting_to_pad_ID 0xD9 +#define chr_try_teleporting_to_pad_LENGTH 0x05 +#define chr_try_teleporting_to_pad(chr_num, pad, label) \ + chr_try_teleporting_to_pad_ID, \ + chr_num, \ + chrarray16(pad), \ + label, + +/*============================================================================= +// name: screen_fade_to_black +// command id: DA +// info: fades the screen out to black +//============================================================================= +// note: fade duration is 1 second +//===========================================================================*/ +#define screen_fade_to_black_ID 0xDA +#define screen_fade_to_black_LENGTH 0x01 +#define screen_fade_to_black \ + screen_fade_to_black_ID, + +/*============================================================================= +// name: screen_fade_from_black +// command id: DB +// info: fades the screen from black +//============================================================================= +// note: fade duration is 1 second +//===========================================================================*/ +#define screen_fade_from_black_ID 0xDB +#define screen_fade_from_black_LENGTH 0x01 +#define screen_fade_from_black \ + screen_fade_from_black_ID, + +/*============================================================================= +// name: if_screen_fade_completed +// command id: DC +// info: when screen fade has completed (from/to black), goto label +//============================================================================= +// note: fade duration is 1 second +//===========================================================================*/ +#define if_screen_fade_completed_ID 0xDC +#define if_screen_fade_completed_LENGTH 0x02 +#define if_screen_fade_completed(label) \ + if_screen_fade_completed_ID, \ + label, + +/*============================================================================= +// name: chr_hide_all +// command id: DD +// info: hide all characters in level - including bond's third person model. +// execute this before switching to exit camera or bond will disappear +//============================================================================= +// note: hidden characters will halt their ai list execution until unhidden +//===========================================================================*/ +#define chr_hide_all_ID 0xDD +#define chr_hide_all_LENGTH 0x01 +#define chr_hide_all \ + chr_hide_all_ID, + +/*============================================================================= +// name: chr_show_all +// command id: DE +// info: show all characters previously hidden by command DD +//===========================================================================*/ +#define chr_show_all_ID 0xDE +#define chr_show_all_LENGTH 0x01 +#define chr_show_all \ + chr_show_all_ID, + +/*============================================================================= +// name: door_open_instant +// command id: DF +// info: instantly open tagged door +//============================================================================= +// note: mostly used for cutscenes, doesn't trigger door opening sfx. open tagged +// door even if locked +//===========================================================================*/ +#define door_open_instant_ID 0xDF +#define door_open_instant_LENGTH 0x02 +#define door_open_instant(object_tag) \ + door_open_instant_ID, \ + object_tag, + +/*============================================================================= +// name: chr_remove_item_in_hand +// command id: E0 +// info: remove the item held by hand index +//============================================================================= +// note: does not drop item, instead clears holding item flag for hand index +//===========================================================================*/ +#define chr_remove_item_in_hand_ID 0xE0 +#define chr_remove_item_in_hand_LENGTH 0x03 +#define chr_remove_item_in_hand(chr_num, hand_index) \ + chr_remove_item_in_hand_ID, \ + chr_num, \ + hand_index, + +/*============================================================================= +// name: if_number_of_active_players_less_than +// command id: E1 +// info: if the number of active players < argument, goto label +//============================================================================= +// note: single player always has a total of active players set to 1 +//===========================================================================*/ +#define if_number_of_active_players_less_than_ID 0xE1 +#define if_number_of_active_players_less_than_LENGTH 0x03 +#define if_number_of_active_players_less_than(number, label) \ + if_number_of_active_players_less_than_ID, \ + number, \ + label, + +/*============================================================================= +// name: if_bond_item_total_ammo_less_than +// command id: E2 +// info: if bond's total ammo for item < ammo_total argument, goto label +//============================================================================= +// note: ammo_total argument is signed. total ammo also accounts for loaded gun +//===========================================================================*/ +#define if_bond_item_total_ammo_less_than_ID 0xE2 +#define if_bond_item_total_ammo_less_than_LENGTH 0x04 +#define if_bond_item_total_ammo_less_than(item_num, ammo_total, label) \ + if_bond_item_total_ammo_less_than_ID, \ + item_num, \ + ammo_total, \ + label, + +/*============================================================================= +// name: bond_equip_item +// command id: E3 +// info: forces bond to equip an item - only works in first person +//============================================================================= +// note: can be used for any item, even if bond doesn't have it in inventory +//===========================================================================*/ +#define bond_equip_item_ID 0xE3 +#define bond_equip_item_LENGTH 0x02 +#define bond_equip_item(item_num) \ + bond_equip_item_ID, \ + item_num, + +/*============================================================================= +// name: bond_equip_item_cinema +// command id: E4 +// info: forces bond to equip an item - only works in third person (cinema) +//============================================================================= +// note: can be used for any item, even if bond doesn't have it in inventory +//===========================================================================*/ +#define bond_equip_item_cinema_ID 0xE4 +#define bond_equip_item_cinema_LENGTH 0x02 +#define bond_equip_item_cinema(item_num) \ + bond_equip_item_cinema_ID, \ + item_num, + +/*============================================================================= +// name: bond_set_locked_velocity +// command id: E5 +// info: forces bond to move in X/Z direction +//============================================================================= +// note: only works when bond has been locked by command D7. used for dam jump. +// argument is signed and scale is 1:1 to in-game position. speed is number of +// world units per tick +//===========================================================================*/ +#define bond_set_locked_velocity_ID 0xE5 +#define bond_set_locked_velocity_LENGTH 0x03 +#define bond_set_locked_velocity(x_speed60, z_speed60) \ + bond_set_locked_velocity_ID, \ + x_speed60, \ + z_speed60, + +/*============================================================================= +// name: if_object_in_room_with_pad +// command id: E6 +// info: if tagged object in the same room with pad, goto label +//===========================================================================*/ +#define if_object_in_room_with_pad_ID 0xE6 +#define if_object_in_room_with_pad_LENGTH 0x05 +#define if_object_in_room_with_pad(object_tag, pad, label) \ + if_object_in_room_with_pad_ID, \ + object_tag, \ + chrarray16(pad), \ + label, + +/*============================================================================= +// name: if_guard_is_firing_and_using_180_range_flag +// command id: E7 +// info: if guard is in firing state (ACT_ATTACK) and TARGET_180_RANGE is set, goto label +//===========================================================================*/ +#define if_guard_is_firing_and_using_180_range_flag_ID 0xE7 +#define if_guard_is_firing_and_using_180_range_flag_LENGTH 0x02 +#define if_guard_is_firing_and_using_180_range_flag(label) \ + if_guard_is_firing_and_using_180_range_flag_ID, \ + label, + +/*============================================================================= +// name: if_guard_is_firing +// command id: E8 +// info: if guard is in firing state (ACT_ATTACK), goto label +//===========================================================================*/ +#define if_guard_is_firing_ID 0xE8 +#define if_guard_is_firing_LENGTH 0x02 +#define if_guard_is_firing(label) \ + if_guard_is_firing_ID, \ + label, + +/*============================================================================= +// name: switch_fog_instantly +// command id: E9 +// info: instantly switch fog to the next fog's slot +//============================================================================= +// note: this command can't be stopped after executing. level must have a fog +// assigned or will crash! +//===========================================================================*/ +#define gas_leak_and_switch_fog_ID 0xE9 +#define gas_leak_and_switch_fog_LENGTH 0x01 +#define gas_leak_and_switch_fog \ + gas_leak_and_switch_fog_ID, + +/*============================================================================= +// name: trigger_fade_and_exit_level_on_button_press +// command id: EA +// info: if player pressed any button, fade to black and exit level +//============================================================================= +// note: this command activates a state where game will fade to black when button +// input is detected from controller 1. command does not pause mission time +//===========================================================================*/ +#define trigger_fade_and_exit_level_on_button_press_ID 0xEA +#define trigger_fade_and_exit_level_on_button_press_LENGTH 0x01 +#define trigger_fade_and_exit_level_on_button_press \ + trigger_fade_and_exit_level_on_button_press_ID, + +/*============================================================================= +// name: if_bond_is_dead +// command id: EB +// info: if bond has died/been killed, goto label +//===========================================================================*/ +#define if_bond_is_dead_ID 0xEB +#define if_bond_is_dead_LENGTH 0x02 +#define if_bond_is_dead(label) \ + if_bond_is_dead_ID, \ + label, + +/*============================================================================= +// name: bond_disable_damage_and_pickups +// command id: EC +// info: disables bond damage and ability to pick up items +//============================================================================= +// note: commonly used for level exit ai lists - prevents bond dying after +// triggering exit cutscene. use command F3 to check if flag is set on +//===========================================================================*/ +#define bond_disable_damage_and_pickups_ID 0xEC +#define bond_disable_damage_and_pickups_LENGTH 0x01 +#define bond_disable_damage_and_pickups \ + bond_disable_damage_and_pickups_ID, + +/*============================================================================= +// name: bond_hide_weapons +// command id: ED +// info: set bond's left/right weapons to be invisible +//===========================================================================*/ +#define bond_hide_weapons_ID 0xED +#define bond_hide_weapons_LENGTH 0x01 +#define bond_hide_weapons \ + bond_hide_weapons_ID, + +/*============================================================================= +// name: camera_orbit_pad +// command id: EE +// info: change view to orbit a pad with set speed +//============================================================================= +// note: command must have a bond_hide_weapons command and 3 ai_sleep commands +// before executing this command or else engine will crash (use camera_transition_from_bond). +// if camera mode is already in third person then you don't need to do the above. +// arguments: +// lat_distance: camera distance from pad, 100 units per meter. argument is unsigned +// vert_distance: camera distance from pad, 100 units per meter. argument is signed +// orbit_speed: speed to orbit around pad, argument is signed. unit format uses +// compass direction like target commands (14-17). generally stick +// to a low range as it is used for delta timing (0100-FF00) +// pad: pad for camera to target and orbit around +// y_pos_offset: offset the relative y position for pad (boom/jib), argument is signed +// initial_rotation: uses compass direction like target commands (14-17) +// but inverted - hex N: 0000 E: C000 S: 8000: W: 4000 +// mission time is paused while in third person +//===========================================================================*/ +#define camera_orbit_pad_ID 0xEE +#define camera_orbit_pad_LENGTH 0x0D +#define camera_orbit_pad(lat_distance, vert_distance, orbit_speed60, pad, y_pos_offset, initial_rotation) \ + camera_orbit_pad_ID, \ + chararray16(lat_distance), \ + chararray16(vert_distance), \ + chararray16(orbit_speed60), \ + chararray16(pad), \ + chararray16(y_pos_offset), \ + chararray16(initial_rotation), + +/*============================================================================= +// name: credits_roll +// command id: EF +// info: trigger credits crawl +//============================================================================= +// note: credits text and positions are stored in setup intro struct +//===========================================================================*/ +#define credits_roll_ID 0xEF +#define credits_roll_LENGTH 0x01 +#define credits_roll \ + credits_roll_ID, + +/*============================================================================= +// name: if_credits_has_completed +// command id: F0 +// info: credits crawl has finished, goto label +//===========================================================================*/ +#define if_credits_has_completed_ID 0xF0 +#define if_credits_has_completed_LENGTH 0x02 +#define if_credits_has_completed(label) \ + if_credits_has_completed_ID, \ + label, + +/*============================================================================= +// name: if_objective_all_completed +// command id: F1 +// info: if all objectives for current difficulty has been completed, goto label +//============================================================================= +// note: uses objective difficulty settings within setup, briefing file settings +// are not referenced. ensure both setup and briefing files are consistent +//===========================================================================*/ +#define if_objective_all_completed_ID 0xF1 +#define if_objective_all_completed_LENGTH 0x02 +#define if_objective_all_completed(label) \ + if_objective_all_completed_ID, \ + label, + +/*============================================================================= +// name: if_folder_actor_is_equal +// command id: F2 +// info: if current bond equal to folder actor index, goto label +//============================================================================= +// note: in retail release only index 0 works. originally this would have checked +// which bond (brosnan/connery/moore/dalton) is currently used, with each briefing +// folder using a different bond likeness in-game. however rare didn't have the +// license to use the other actor's faces so this feature was removed. +// command is only used for cuba (credits) +//===========================================================================*/ +#define if_folder_actor_is_equal_ID 0xF2 +#define if_folder_actor_is_equal_LENGTH 0x03 +#define if_folder_actor_is_equal(bond_actor_index, label) \ + if_folder_actor_is_equal_ID, \ + bond_actor_index, \ + label, + +/*============================================================================= +// name: if_bond_damage_and_pickups_disabled +// command id: F3 +// info: if bond damage and ability to pick up items disabled, goto label +//============================================================================= +// note: used to check when bond has exited level, usually to stop guards from +// spawning during mission cinema. use command EC to set state on +//===========================================================================*/ +#define if_bond_damage_and_pickups_disabled_ID 0xF3 +#define if_bond_damage_and_pickups_disabled_LENGTH 0x02 +#define if_bond_damage_and_pickups_disabled(label) \ + if_bond_damage_and_pickups_disabled_ID, \ + label, + +/*============================================================================= +// name: music_xtrack_play +// command id: F4 +// info: play level's x track for duration +//============================================================================= +// note: seconds arguments are unsigned, available music slots range is 0-3. +// stopped duration argument is used by command F5. when using F5 to stop a music +// slot, the xtrack will continue to play until this or total time reaches 0. +// if you don't want this to happen, set the seconds stopped duration argument to 0 +//===========================================================================*/ +#define music_xtrack_play_ID 0xF4 +#define music_xtrack_play_LENGTH 0x04 +#define music_xtrack_play(music_slot, seconds_stopped_duration, seconds_total_duration) \ + music_xtrack_play_ID, \ + music_slot, \ + seconds_stopped_duration, \ + seconds_total_duration, + +/*============================================================================= +// name: music_xtrack_stop +// command id: F5 +// info: stop currently playing x track in slot +//============================================================================= +// note: music slots range is 0-3. use slot -1 to stop all xtrack slots instantly. +// when stopping a music slot, it will let the track continue to play until the +// seconds stopped duration time or total time (set by command F4) reaches zero. +// this is ignored when using music slot -1 +//===========================================================================*/ +#define music_xtrack_stop_ID 0xF5 +#define music_xtrack_stop_LENGTH 0x02 +#define music_xtrack_stop(music_slot) \ + music_xtrack_stop_ID, \ + music_slot, + +/*============================================================================= +// name: trigger_explosions_around_bond +// command id: F6 +// info: triggers explosions around the player, will continue forever +//============================================================================= +// note: does not trigger level exit or killed in action state +//===========================================================================*/ +#define trigger_explosions_around_bond_ID 0xF6 +#define trigger_explosions_around_bond_LENGTH 0x01 +#define trigger_explosions_around_bond \ + trigger_explosions_around_bond_ID, + +/*============================================================================= +// name: if_killed_civilians_greater_than +// command id: F7 +// info: if total civilians killed > argument, goto label +//============================================================================= +// note: guards flagged with CHRFLAG_COUNT_DEATH_AS_CIVILIAN will count towards +// total when killed. usually set for scientists/civilians/innocent NPCs +//===========================================================================*/ +#define if_killed_civilians_greater_than_ID 0xF7 +#define if_killed_civilians_greater_than_LENGTH 0x03 +#define if_killed_civilians_greater_than(civilians_killed, label) \ + if_killed_civilians_greater_than_ID, \ + civilians_killed, \ + label, + +/*============================================================================= +// name: if_chr_was_shot_since_last_check +// command id: F8 +// info: if chr was shot since last check, goto label +//============================================================================= +// note: checks chr->chrflags if CHRFLAG_WAS_HIT is set. if true, unset flag and +// goto label. CHRFLAG_WAS_HIT is set even if guard is invincible +//===========================================================================*/ +#define if_chr_was_shot_since_last_check_ID 0xF8 +#define if_chr_was_shot_since_last_check_LENGTH 0x03 +#define if_chr_was_shot_since_last_check(chr_num, label) \ + if_chr_was_shot_since_last_check_ID, \ + chr_num, \ + label, + +/*============================================================================= +// name: bond_killed_in_action +// command id: F9 +// info: sets briefing status to killed in action, automatic mission failure +//============================================================================= +// note: does not kill the player, only changes the mission status +//===========================================================================*/ +#define bond_killed_in_action_ID 0xF9 +#define bond_killed_in_action_LENGTH 0x01 +#define bond_killed_in_action \ + bond_killed_in_action_ID, + +/*============================================================================= +// name: guard_raises_arms +// command id: FA +// info: makes guard raise their arms for half a second +//===========================================================================*/ +#define guard_raises_arms_ID 0xFA +#define guard_raises_arms_LENGTH 0x01 +#define guard_raises_arms \ + guard_raises_arms_ID, + +/*============================================================================= +// name: gas_leak_and_fade_fog +// command id: FB +// info: trigger gas leak event and slowly transition fog to the next fog's slot +//============================================================================= +// note: this command triggers a gas leak. for the level egypt, this command +// will not trigger a gas leak, but instead will only transition the fog. +// this command can't be stopped after executing. level must have a fog assigned +// or will crash! +//===========================================================================*/ +#define gas_leak_and_fade_fog_ID 0xFB +#define gas_leak_and_fade_fog_LENGTH 0x01 +#define gas_leak_and_fade_fog \ + gas_leak_and_fade_fog_ID, + +/*============================================================================= +// name: object_rocket_launch +// command id: FC +// info: launch a tagged object like a rocket +//============================================================================= +// note: if tagged object can't be turned upright, object will be destroyed instead. +// can be used to drop attached props +//===========================================================================*/ +#define object_rocket_launch_ID 0xFC +#define object_rocket_launch_LENGTH 0x02 +#define object_rocket_launch(object_tag) \ + object_rocket_launch_ID, \ + object_tag, + +#endif diff --git a/src/bondconstants.h b/src/bondconstants.h new file mode 100644 index 0000000..0adab7a --- /dev/null +++ b/src/bondconstants.h @@ -0,0 +1,1434 @@ +#ifndef _BONDCONSTANTS_H_ +#define _BONDCONSTANTS_H_ +#include "ultra64.h" + +#define GAME_TICKRATE 60 +#define SECS_TO_TIMER60(SECS) (SECS * GAME_TICKRATE) +#define MINS_TO_TIMER60(MINS) (SECS_TO_TIMER60(MINS * GAME_TICKRATE)) + +/* special chr num IDs */ +#define CHR_BOND_CINEMA -8 /* only works when bond has a third person model (intro/exit cutscene) */ +#define CHR_CLONE -7 +#define CHR_SEE_SHOT -6 /* stored as chr->chrseeshot */ +#define CHR_SEE_DIE -5 /* stored as chr->chrseedie */ +#define CHR_PRESET -4 /* stored as chr->chrpreset1 */ +#define CHR_SELF -3 + +/* private chr ID, cannot be accessed with ai commands */ +#define CHR_OBJECTIVE -2 /* objective ai list chr ID */ +#define CHR_FREE -1 /* chr IDs when free'd (killed or removed from level) */ +#define CHR_SPAWN_NUM_START 5000 /* default chr num for spawned guards with ai command BD/BE */ +#define CHR_CLONED_NUM_START 10000 /* default chr num for cloed guards with ai command C1 */ + +#define PAD_PRESET 9000 /* stored as chr->padpreset1 */ + +#define OBJECTIVES_MAX 10 + +typedef u16 PAD; +typedef u16 PADEXTRA; + +#define PADEXTRA_START 10000 +#define PADEX(PAD) (PAD + PADEXTRA_START) /* used for setups */ + +typedef enum RGBA_ENUM { + RED = 0, + GREEN, + BLUE, + ALPHA +} RGBA_ENUM; + +typedef enum MISSION_BRIEFING { + BRIEF_OVERVIEW = 0, + BRIEF_M, + BRIEF_Q, + BRIEF_MONEYPENNY +} MISSION_BRIEFING; + +typedef enum DIFFICULTY { + DIFFICULTY_AGENT = 0, + DIFFICULTY_SECRET, + DIFFICULTY_00, + DIFFICULTY_007, + DIFFICULTY_MULTI = 0xFFFFFFFF +} DIFFICULTY; + +typedef enum LEVELID { + LEVELID_BUNKER1 = 0x9, + LEVELID_SILO = 0x14, + LEVELID_STATUE = 0x16, + LEVELID_CONTROL = 0x17, + LEVELID_ARCHIVES = 0x18, + LEVELID_TRAIN = 0x19, + LEVELID_FRIGATE = 0x1A, + LEVELID_BUNKER2 = 0x1B, + LEVELID_AZTEC = 0x1C, + LEVELID_STREETS = 0x1D, + LEVELID_DEPOT = 0x1E, + LEVELID_COMPLEX = 0x1F, + LEVELID_EGYPT = 0x20, + LEVELID_DAM = 0x21, + LEVELID_FACILITY = 0x22, + LEVELID_RUNWAY = 0x23, + LEVELID_SURFACE = 0x24, + LEVELID_JUNGLE = 0x25, + LEVELID_TEMPLE = 0x26, + LEVELID_CAVERNS = 0x27, + LEVELID_CITADEL = 0x28, + LEVELID_CRADLE = 0x29, + LEVELID_SHO = 0x2A, + LEVELID_SURFACE2 = 0x2B, + LEVELID_ELD = 0x2C, + LEVELID_BASEMENT = 0x2D, + LEVELID_STACK = 0x2E, + LEVELID_LUE = 0x2F, + LEVELID_LIBRARY = 0x30, + LEVELID_RIT = 0x31, + LEVELID_CAVES = 0x32, + LEVELID_EAR = 0x33, + LEVELID_LEE = 0x34, + LEVELID_LIP = 0x35, + LEVELID_CUBA = 0x36, + LEVELID_WAX = 0x37, + LEVELID_PAM = 0x38, + LEVELID_MAX = 0x39, + LEVELID_TITLE = 0x5A, + LEVELID_NONE = 0xFFFFFFFF +} LEVELID; + +typedef enum LEVEL_SOLO_SEQUENCE +{ + SP_LEVEL_DAM = 0x1, + SP_LEVEL_FACILITY, + SP_LEVEL_RUNWAY, + SP_LEVEL_SURFACE1, + SP_LEVEL_BUNKER1, + SP_LEVEL_SILO, + SP_LEVEL_FRIGATE, + SP_LEVEL_SURFACE2, + SP_LEVEL_BUNKER2, + SP_LEVEL_STATUE, + SP_LEVEL_ARCHIVES, + SP_LEVEL_STREETS, + SP_LEVEL_DEPOT, + SP_LEVEL_TRAIN, + SP_LEVEL_JUNGLE, + SP_LEVEL_CONTROL, + SP_LEVEL_CAVERNS, + SP_LEVEL_CRADLE, + SP_LEVEL_AZTEC, + SP_LEVEL_EGYPT +} LEVEL_SOLO_SEQUENCE; + +typedef enum LEVEL_INDEX +{ + LEVEL_INDEX_SEVBUNKER = 0x0, + LEVEL_INDEX_SILO = 0x1, + LEVEL_INDEX_STATUE = 0x2, + LEVEL_INDEX_CONTROL = 0x3, + LEVEL_INDEX_ARCH = 0x4, + LEVEL_INDEX_TRA = 0x5, + LEVEL_INDEX_DEST = 0x6, + LEVEL_INDEX_SEVB = 0x7, + LEVEL_INDEX_AZT = 0x8, + LEVEL_INDEX_PETE = 0x9, + LEVEL_INDEX_DEPO = 0xA, + LEVEL_INDEX_REF = 0xB, + LEVEL_INDEX_CRYP = 0xC, + LEVEL_INDEX_DAM = 0xD, + LEVEL_INDEX_ARK = 0xE, + LEVEL_INDEX_RUN = 0xF, + LEVEL_INDEX_SEVX = 0x10, + LEVEL_INDEX_JUN = 0x11, + LEVEL_INDEX_DISH = 0x12, + LEVEL_INDEX_CAVE = 0x13, + LEVEL_INDEX_CAT = 0x14, + LEVEL_INDEX_CRAD = 0x15, + LEVEL_INDEX_SHO = 0x16, + LEVEL_INDEX_SEVXB = 0x17, + LEVEL_INDEX_ELD = 0x18, + LEVEL_INDEX_IMP = 0x19, + LEVEL_INDEX_ASH = 0x1A, + LEVEL_INDEX_LUE = 0x1B, + LEVEL_INDEX_AME = 0x1C, + LEVEL_INDEX_RIT = 0x1D, + LEVEL_INDEX_OAT = 0x1E, + LEVEL_INDEX_EAR = 0x1F, + LEVEL_INDEX_LEE = 0x20, + LEVEL_INDEX_LIP = 0x21, + LEVEL_INDEX_LEN = 0x22, + LEVEL_INDEX_WAX = 0x23, + LEVEL_INDEX_PAM = 0x24, + LEVEL_INDEX_X = 0x25 +} LEVEL_INDEX; + +/* language file to slot allocation */ +#define TEXT(TEXTBANK, TEXTSLOT) ((TEXTBANK * 0x0400U) + TEXTSLOT) + +typedef enum TEXTBANK_LEVEL_INDEX +{ + LNULL = 0, /* Null (unused) */ + LAME, /* Library (multi) */ + LARCH, /* Archives */ + LARK, /* Facility */ + LASH, /* Stack (multi) */ + LAZT, /* Aztec */ + LCAT, /* Citadel (multi) */ + LCAVE, /* Caverns */ + LAREC, /* Control */ + LCRAD, /* Cradle */ + LCRYP, /* Egypt */ + LDAM, /* Dam */ + LDEPO, /* Depot */ + LDEST, /* Frigate */ + LDISH, /* Temple (multi) */ + LEAR, /* Ear (unused) */ + LELD, /* Eld (unused) */ + LIMP, /* Basement (multi) */ + LJUN, /* Jungle */ + LLEE, /* Lee (unused) */ + LLEN, /* Cuba */ + LLIP, /* Lip (unused) */ + LLUE, /* Lue (unused) */ + LOAT, /* Cave (multi) */ + LPAM, /* Pam (unused) */ + LPETE, /* Streets */ + LREF, /* Complex (multi) */ + LRIT, /* Rit (unused) */ + LRUN, /* Runway */ + LSEVB, /* Bunker 2 */ + LSEV, /* Bunker 1 */ + LSEVX, /* Surface 1 */ + LSEVXB, /* Surface 2 */ + LSHO, /* Sho (unused) */ + LSILO, /* Silo */ + LSTAT, /* Statue */ + LTRA, /* Train */ + LWAX, /* Wax (unused) */ + LGUN, /* Guns */ + LTITLE, /* Stage and menu titles */ + LMPMENU, /* Multi menus */ + LPROPOBJ, /* In-game pickups */ + LMPWEAPONS, /* Multi weapon select */ + LOPTIONS, /* Solo in-game menus */ + LMISC /* Cheat options */ +} TEXTBANK_LEVEL_INDEX; + +typedef enum MP_STAGE_SELECTED { + MP_STAGE_RANDOM = 0x0, + MP_STAGE_TEMPLE = 0x1, + MP_STAGE_COMPLEX = 0x2, + MP_STAGE_CAVES = 0x3, + MP_STAGE_LIBRARY = 0x4, + MP_STAGE_BASEMENT = 0x5, + MP_STAGE_STACK = 0x6, + MP_STAGE_FACILITY = 0x7, + MP_STAGE_BUNKER = 0x8, + MP_STAGE_ARCHIVES = 0x9, + MP_STAGE_CAVERNS = 0xA, + MP_STAGE_EGYPT = 0xB +} MP_STAGE_SELECTED; + +typedef enum GENDER {FEMALE=0, MALE } GENDER; + +typedef enum BODIES { + BODY_Jungle_Commando = 0x0, + BODY_St_Petersburg_Guard = 0x1, + BODY_Russian_Soldier = 0x2, + BODY_Russian_Infantry = 0x3, + BODY_Janus_Special_Forces = 0x4, + BODY_Tuxedo = 0x5, + BODY_Boris = 0x6, + BODY_Ourumov = 0x7, + BODY_Trevelyan_Janus = 0x8, + BODY_Trevelyan_006 = 0x9, + BODY_Valentin_ = 0xA, + BODY_Xenia = 0xB, + BODY_Baron_Samedi = 0xC, + BODY_Jaws = 0xD, + BODY_Mayday = 0xE, + BODY_Oddjob = 0xF, + BODY_Natalya_Skirt = 0x10, + BODY_Janus_Marine = 0x11, + BODY_Russian_Commandant = 0x12, + BODY_Siberian_Guard_1_Mishkin = 0x13, + BODY_Naval_Officer = 0x14, + BODY_Siberian_Special_Forces = 0x15, + BODY_Special_Operations_Uniform = 0x16, + BODY_Formal_Wear = 0x17, + BODY_Jungle_Fatigues = 0x18, + BODY_Parka = 0x19, + BODY_Unused_Female = 0x1A, + BODY_Rosika = 0x1B, + BODY_Scientist_2_Female = 0x1C, + BODY_Civilian_1_Female = 0x1D, + BODY_Unused_Male_1 = 0x1E, + BODY_Unused_Male_2 = 0x1F, + BODY_Civilian_4 = 0x20, + BODY_Civilian_2 = 0x21, + BODY_Civilian_3 = 0x22, + BODY_Scientist_1_Male = 0x23, + BODY_Helicopter_Pilot = 0x24, + BODY_Siberian_Guard_2 = 0x25, + BODY_Arctic_Commando = 0x26, + BODY_Moonraker_Elite_1_Male = 0x27, + BODY_Moonraker_Elite_2_Female = 0x28, + BODY_Left_Suit_Hand_Floating_Arm = 0x29, + BODY_Male_Karl = 0x2A, + BODY_Male_Alan = 0x2B, + BODY_Male_Pete = 0x2C, + BODY_Male_Martin = 0x2D, + BODY_Male_Mark = 0x2E, + BODY_Male_Duncan = 0x2F, + BODY_Male_Shaun = 0x30, + BODY_Male_Dwayne = 0x31, + BODY_Male_B = 0x32, + BODY_Male_Dave_Dr_Doak = 0x33, + BODY_Male_Grant = 0x34, + BODY_Male_Des = 0x35, + BODY_Male_Chris = 0x36, + BODY_Male_Lee = 0x37, + BODY_Male_Neil = 0x38, + BODY_Male_Jim = 0x39, + BODY_Male_Robin = 0x3A, + BODY_Male_Steve_H = 0x3B, + BODY_Male_Terrorist = 0x3C, + BODY_Male_Biker = 0x3D, + BODY_Male_Graeme = 0x3E, + BODY_Male_Steve_Ellis = 0x3F, + BODY_Male_Joel = 0x40, + BODY_Male_Scott = 0x41, + BODY_Male_Joe_Altered = 0x42, + BODY_Male_Ken = 0x43, + BODY_Male_Joe = 0x44, + BODY_Male_Mishkin = 0x45, + BODY_Female_Sally = 0x46, + BODY_Female_Marion_Rosika = 0x47, + BODY_Female_Mandy = 0x48, + BODY_Female_Vivien = 0x49, + BODY_Male_Pierce_Bond_1 = 0x4A, + BODY_Male_Pierce_Bond_2 = 0x4B, + BODY_Male_Pierce_Bond_3 = 0x4C, + BODY_Male_Pierce_Bond_Parka = 0x4D, + BODY_Male_Pierce_Bond_Tuxedo = 0x4E, + BODY_Natalya_Jungle_Fatigues = 0x4F +} BODIES; + +typedef enum HEADS { + HEAD_Male_Karl = 0x2A, + HEAD_Male_Alan = 0x2B, + HEAD_Male_Pete = 0x2C, + HEAD_Male_Martin = 0x2D, + HEAD_Male_Mark = 0x2E, + HEAD_Male_Duncan = 0x2F, + HEAD_Male_Shaun = 0x30, + HEAD_Male_Dwayne = 0x31, + HEAD_Male_B = 0x32, + HEAD_Male_Dave_Dr_Doak = 0x33, + HEAD_Male_Grant = 0x34, + HEAD_Male_Des = 0x35, + HEAD_Male_Chris = 0x36, + HEAD_Male_Lee = 0x37, + HEAD_Male_Neil = 0x38, + HEAD_Male_Jim = 0x39, + HEAD_Male_Robin = 0x3A, + HEAD_Male_Steve_H = 0x3B, + HEAD_Male_Terrorist = 0x3C, + HEAD_Male_Biker = 0x3D, + HEAD_Male_Graeme = 0x3E, + HEAD_Male_Steve_Ellis = 0x3F, + HEAD_Male_Joel = 0x40, + HEAD_Male_Scott = 0x41, + HEAD_Male_Joe_Altered = 0x42, + HEAD_Male_Ken = 0x43, + HEAD_Male_Joe = 0x44, + HEAD_Male_Mishkin = 0x45, + HEAD_Female_Sally = 0x46, + HEAD_Female_Marion_Rosika = 0x47, + HEAD_Female_Mandy = 0x48, + HEAD_Female_Vivien = 0x49, + HEAD_Male_Pierce_Bond_1 = 0x4A, + HEAD_Male_Pierce_Bond_2 = 0x4B, + HEAD_Male_Pierce_Bond_3 = 0x4C, + HEAD_Male_Pierce_Bond_Parka = 0x4D, + HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT = 0x4E, + HEAD_Natalya_Jungle_Fatigues = 0x4F +} HEADS; + +typedef enum mission_setup_type { + MISSION_PART = 0, + MISSION_HEADER +} mission_setup_type; + +typedef enum MUSIC_TRACKS { + M_ARCHIVES = 11, + M_ARCHIVESX = 37, + M_AZTEC = 25, + M_AZTECX = 46, + M_BUNKER1 = 15, + M_BUNKER1X = 41, + M_BUNKER2 = 16, + M_BUNKER2X = 42, + M_CITADEL = 6, + M_CONTROL = 8, + M_CONTROLX = 33, + M_CRADLE = 19, + M_CRADLEX = 48, + M_CUBA = 49, + M_DAM = 9, + M_DAMX = 35, + M_DEATHSOLO = 27, + M_DEPOT = 4, + M_DEPOTX = 32, + M_EGYPTIAN = 22, + M_EGYPTIANX = 39, + M_EGYPTX = 47, + M_ELEVATOR_CONTROL = 18, + M_ELEVATOR_WC = 21, + M_END_SOMETHING = 62, + M_FACILITY = 7, + M_FACILITYX = 31, + M_FOLDERS = 23, + M_FRIGATE = 10, + M_FRIGATEX = 36, + M_GUITARGLISS = 54, + M_INTRO = 2, + M_INTROSWOOSH = 44, + M_JUNGLE = 55, + M_JUNGLEX = 43, + M_MPDEATH = 58, + M_MPTHEME = 5, + M_MPTHEME2 = 13, + M_MPTHEME3 = 52, + M_NONE = 0, + M_RUNWAY = 50, + M_RUNWAYPLANE = 51, + M_RUNWAYX = 56, + M_SHORT_SOLO_DEATH = 1, + M_SILO = 12, + M_SILOX = 38, + M_STATUE = 17, + M_STATUEPART = 61, + M_STATUEX = 45, + M_STREETS = 14, + M_STREETSX = 40, + M_SURFACE1 = 57, + M_SURFACE2 = 28, + M_SURFACE2END = 60, + M_SURFACE2X = 59, + M_TRAIN = 3, + M_TRAINX = 29, + M_UNK = 20, + M_UNK2 = 30, + M_WATCH = 24, + M_WATERCAVERNS = 26, + M_WATERCAVERNSX = 34, + M_WIND = 53 +} MUSIC_TRACKS; + +typedef enum GAMEMODE { + GAMEMODE_SOLO = 0x0, + GAMEMODE_MULTI, + GAMEMODE_CHEATS, + GAMEMODE_INTRO = 0xFFFFFFFF +} GAMEMODE; + +typedef enum MPSCENARIOS { + SCENARIO_NORMAL=0, + SCENARIO_YOLT, + SCENARIO_TLD, + SCENARIO_MWTGG, + SCENARIO_LTK, + SCENARIO_2v2, + SCENARIO_3v1, + SCENARIO_2v1 +} MPSCENARIOS; + +typedef enum WATCH_BRIEFING_PAGE { + BRIEFING_TITLE = 0x0, + BRIEFING_OVERVIEW, + BRIEFING_M, + BRIEFING_Q, + BRIEFING_MONEYPENNY, + BRIEFING_INVALID = -1 +} WATCH_BRIEFING_PAGE; + +typedef enum MENU { + MENU_LEGAL_SCREEN = 0x0, + MENU_NINTENDO_LOGO, + MENU_RAREWARE_LOGO, + MENU_EYE_INTRO, + MENU_GOLDENEYE_LOGO, + MENU_FILE_SELECT, + MENU_MODE_SELECT, + MENU_MISSION_SELECT, + MENU_DIFFICULTY, + MENU_007_OPTIONS, + MENU_BRIEFING, + MENU_RUN_STAGE, + MENU_MISSION_FAILED, + MENU_MISSION_COMPLETE, + MENU_MP_OPTIONS, + MENU_MP_CHAR_SELECT, + MENU_MP_HANDICAP, + MENU_MP_CONTROL_STYLE, + MENU_MP_STAGE_SELECT, + MENU_MP_SCENARIO_SELECT, + MENU_MP_TEAMS, + MENU_CHEAT, + MENU_NO_CONTROLLERS, + MENU_SWITCH_SCREENS, + MENU_DISPLAY_CAST, + MENU_SPECTRUM_EMU, + MENU_INVALID = -1 +} MENU; + +typedef enum CONTROLLER_CONFIG +{ + CONTROLLER_CONFIG_HONEY = 0x0, + CONTROLLER_CONFIG_SOLITARE, + CONTROLLER_CONFIG_KISSY, + CONTROLLER_CONFIG_GOODNIGHT, + CONTROLLER_CONFIG_PLENTY, + CONTROLLER_CONFIG_GALORE, + CONTROLLER_CONFIG_DOMINO, + CONTROLLER_CONFIG_GOODHEAD, + CONTROLLER_CONFIG_CINEMA +} CONTROLLER_CONFIG; + +typedef enum CUFF_TYPES +{ + CUFF_BLUE = 0x0, + CUFF_TUX, + CUFF_JUNGLE, + CUFF_BOILER, + CUFF_SNOW, + CUFF_WHITE, + CUFF_TUX6, + CUFF_TUX7, + CUFF_TUX8 +} CUFF_TYPES; + +typedef enum INV_ITEM_TYPE +{ + INV_ITEM_WEAPON = 1, + INV_ITEM_PROP, + INV_ITEM_DUAL +} INV_ITEM_TYPE; + +typedef enum ITEM_IDS +{ + ITEM_UNARMED = 0x0, + ITEM_FIST = 0x1, + ITEM_KNIFE = 0x2, + ITEM_THROWKNIFE = 0x3, + ITEM_WPPK = 0x4, + ITEM_WPPKSIL = 0x5, + ITEM_TT33 = 0x6, + ITEM_SKORPION = 0x7, + ITEM_AK47 = 0x8, + ITEM_UZI = 0x9, + ITEM_MP5K = 0xA, + ITEM_MP5KSIL = 0xB, + ITEM_SPECTRE = 0xC, + ITEM_M16 = 0xD, + ITEM_FNP90 = 0xE, + ITEM_SHOTGUN = 0xF, + ITEM_AUTOSHOT = 0x10, + ITEM_SNIPERRIFLE = 0x11, + ITEM_RUGER = 0x12, + ITEM_GOLDENGUN = 0x13, + ITEM_SILVERWPPK = 0x14, + ITEM_GOLDWPPK = 0x15, + ITEM_LASER = 0x16, + ITEM_WATCHLASER = 0x17, + ITEM_GRENADELAUNCH = 0x18, + ITEM_ROCKETLAUNCH = 0x19, + ITEM_GRENADE = 0x1A, + ITEM_TIMEDMINE = 0x1B, + ITEM_PROXIMITYMINE = 0x1C, + ITEM_REMOTEMINE = 0x1D, + ITEM_TRIGGER = 0x1E, + ITEM_TASER = 0x1F, + ITEM_TANKSHELLS = 0x20, + ITEM_BOMBCASE = 0x21, + ITEM_PLASTIQUE = 0x22, + ITEM_FLAREPISTOL = 0x23, + ITEM_PITONGUN = 0x24, + ITEM_BUNGEE = 0x25, + ITEM_DOORDECODER = 0x26, + ITEM_BOMBDEFUSER = 0x27, + ITEM_CAMERA = 0x28, + ITEM_LOCKEXPLODER = 0x29, + ITEM_DOOREXPLODER = 0x2A, + ITEM_BRIEFCASE = 0x2B, + ITEM_WEAPONCASE = 0x2C, + ITEM_SAFECRACKERCASE = 0x2D, + ITEM_KEYANALYSERCASE = 0x2E, + ITEM_BUG = 0x2F, + ITEM_MICROCAMERA = 0x30, + ITEM_BUGDETECTOR = 0x31, + ITEM_EXPLOSIVEFLOPPY = 0x32, + ITEM_POLARIZEDGLASSES = 0x33, + ITEM_DARKGLASSES = 0x34, + ITEM_CREDITCARD = 0x35, + ITEM_GASKEYRING = 0x36, + ITEM_DATATHIEF = 0x37, + ITEM_WATCHIDENTIFIER = 0x38, + ITEM_WATCHCOMMUNICATOR = 0x39, + ITEM_WATCHGEIGERCOUNTER = 0x3A, + ITEM_WATCHMAGNETREPEL = 0x3B, + ITEM_WATCHMAGNETATTRACT = 0x3C, + ITEM_GOLDENEYEKEY = 0x3D, + ITEM_BLACKBOX = 0x3E, + ITEM_CIRCUITBOARD = 0x3F, + ITEM_CLIPBOARD = 0x40, + ITEM_STAFFLIST = 0x41, + ITEM_DOSSIERRED = 0x42, + ITEM_PLANS = 0x43, + ITEM_SPYFILE = 0x44, + ITEM_BLUEPRINTS = 0x45, + ITEM_MAP = 0x46, + ITEM_AUDIOTAPE = 0x47, + ITEM_VIDEOTAPE = 0x48, + ITEM_DATTAPE = 0x49, + ITEM_SPOOLTAPE = 0x4A, + ITEM_MICROFILM = 0x4B, + ITEM_MICROCODE = 0x4C, + ITEM_LECTRE = 0x4D, + ITEM_MONEY = 0x4E, + ITEM_GOLDBAR = 0x4F, + ITEM_HEROIN = 0x50, + ITEM_KEYCARD = 0x51, + ITEM_KEYYALE = 0x52, + ITEM_KEYBOLT = 0x53, + ITEM_SUIT_LF_HAND = 0x54, + ITEM_JOYPAD = 0x55, + ITEM_56 = 0x56, + ITEM_57 = 0x57, + ITEM_TOKEN = 0x58 +} ITEM_IDS; + +typedef enum PROPS { + PROP_alarm1 = 0, /* Beta Alarm / Default Multi Weapon */ + PROP_alarm2 = 1, /* Alarm */ + PROP_explosionbit = 2, /* White Pyramid (Explosion Bit) */ + PROP_ammo_crate1 = 3, /* Ammo Crate (Brown w/ Edge Brace, 6x240 Black) */ + PROP_ammo_crate2 = 4, /* Ammo Crate (Brown w/ Center Brace, 12x8 Black) */ + PROP_ammo_crate3 = 5, /* Ammo Crate (Green w/ Center Brace, 12x8 Brown) */ + PROP_ammo_crate4 = 6, /* Ammo Crate (Green w/ Edge Brace, 6x8 White) */ + PROP_ammo_crate5 = 7, /* Ammo Crate (Green w/ Double Brace, 24x60 Black) */ + PROP_bin1 = 8, /* Rusted Trash Bin */ + PROP_blotter1 = 9, /* Desk Blotter */ + PROP_book1 = 10, /* Red Book */ + PROP_bookshelf1 = 11, /* Bookshelf */ + PROP_bridge_console1a = 12, /* Bridge Console w/ Monitor, Navigation + Keyboard 1A */ + PROP_bridge_console1b = 13, /* Bridge Console w/ Navigation 1B */ + PROP_bridge_console2a = 14, /* Bridge Console w/ Navigation, Monitor + Keyboard 2A */ + PROP_bridge_console2b = 15, /* Bridge Console w/ Various Controls 2B */ + PROP_bridge_console3a = 16, /* Bridge Console w/ Monitor, Navigation + Keyboard 3A */ + PROP_bridge_console3b = 17, /* Bridge Console w/ Monitor, Keyboard + Navigation 3B */ + PROP_card_box1 = 18, /* Cardboard Box, Kapto|Enb */ + PROP_card_box2 = 19, /* Cardboard Box, Red Arrow, Bahko */ + PROP_card_box3 = 20, /* Cardboard Box, Scrawled Text, Bahah */ + PROP_card_box4_lg = 21, /* Cardboard Box, Three Seams */ + PROP_card_box5_lg = 22, /* Cardboard Box, Two Seams, Bahah */ + PROP_card_box6_lg = 23, /* Cardboard Box, Bahko */ + PROP_cctv = 24, /* Surveillance Camera */ + PROP_console1 = 25, /* Double Screen Consoles w/ Keyboards */ + PROP_console2 = 26, /* Double Screen Consoles w/ Left Keyboard */ + PROP_console3 = 27, /* Double Screen Consoles w/ Right Keyboard */ + PROP_console_seva = 28, /* Console w/ Keyboard */ + PROP_console_sevb = 29, /* Console w/ Monitor + Keyboard */ + PROP_console_sevc = 30, /* Console w/ Switches */ + PROP_console_sevd = 31, /* Console w/ Five Gauges */ + PROP_console_sev2a = 32, /* Console w/ Four Faders */ + PROP_console_sev2b = 33, /* Console w/ Monitor, Keyboard + Switches */ + PROP_console_sev2c = 34, /* Console w/ Three Gauges */ + PROP_console_sev2d = 35, /* Console w/ Pressure Gauge */ + PROP_console_sev_GEa = 36, /* Console w/ GoldenEye Key Slot */ + PROP_console_sev_GEb = 37, /* Console w/ Faders + Pressure Gauge */ + PROP_desk1 = 38, /* Desk w/ Kickplate */ + PROP_desk2 = 39, /* Desk */ + PROP_desk_lamp2 = 40, /* Desk Lamp */ + PROP_disc_reader = 41, /* External Hard Drive */ + PROP_disk_drive1 = 42, /* Floppy Disc Drive */ + PROP_filing_cabinet1 = 43, /* Filing Cabinet */ + PROP_jerry_can1 = 44, /* Jerrycan (Fuel Container) */ + PROP_keyboard1 = 45, /* Computer Keyboard */ + PROP_kit_units1 = 46, /* Kitchen Cabinets */ + PROP_letter_tray1 = 47, /* Letter Tray */ + PROP_mainframe1 = 48, /* Mainframe, Basic */ + PROP_mainframe2 = 49, /* Mainframe, Advanced */ + PROP_metal_chair1 = 50, /* Chair (Metal) */ + PROP_metal_crate1 = 51, /* Metal Crate, 6 Top Corner */ + PROP_metal_crate2 = 52, /* Metal Crate, 6 Bottom Corner */ + PROP_metal_crate3 = 53, /* Metal Crate, Toxic Materials */ + PROP_metal_crate4 = 54, /* Metal Crate, Double Stripe - Class D1 Hazard */ + PROP_missile_rack = 55, /* Naval Harpoon Missile in Containment Rack */ + PROP_missile_rack2 = 56, /* Naval Harpoon Missiles in Containment Racks x4 */ + PROP_oil_drum1 = 57, /* Oil Drum, Single Stripe, Ribbed */ + PROP_oil_drum2 = 58, /* Oil Drum, Single Stripe, Ribbed - Class D1 Hazard */ + PROP_oil_drum3 = 59, /* Oil Drum, Single Stripe, Ribbed - Toxic Materials */ + PROP_oil_drum5 = 60, /* Oil Drum, Double Stripe - Toxic Materials */ + PROP_oil_drum6 = 61, /* Oil Drum - Toxic Materials */ + PROP_oil_drum7 = 62, /* Oil Drum, Double Dashes - Class D1 Hazard */ + PROP_padlock = 63, /* Padlock */ + PROP_phone1 = 64, /* Telephone */ + PROP_radio_unit1 = 65, /* Radio Tuner w/ 1 Knob + 2 Gauges */ + PROP_radio_unit2 = 66, /* Radio Tuner w/ 1 Knob + 5 Gauges */ + PROP_radio_unit3 = 67, /* Radio Tuner w/ 3 Knobs + 5 Gauges */ + PROP_radio_unit4 = 68, /* Radio Tuner w/ 3 Knobs + 2 Gauges */ + PROP_sat1_reflect = 69, /* GoldenEye Satellite */ + PROP_satdish = 70, /* Satellite Dish (Arkangelsk) */ + PROP_satbox = 71, /* Uplink Box */ + PROP_stool1 = 72, /* Wooden Stool */ + PROP_swivel_chair1 = 73, /* Swivel Chair */ + PROP_torpedo_rack = 74, /* Naval Torpedo Rack x3 */ + PROP_tv1 = 75, /* Television Monitor */ + PROP_tv_holder = 76, /* Hanging Monitor Rack */ + PROP_tvscreen = 77, /* Wall Monitor Screen */ + PROP_tv4screen = 78, /* Wall Monitor Screens, 4-in-1 */ + PROP_wood_lg_crate1 = 79, /* Wooden Crate w/ #4 Label, Bahah */ + PROP_wood_lg_crate2 = 80, /* Wooden Crate, Darker Shading, Kapto|Enb */ + PROP_wood_md_crate3 = 81, /* Wooden Crates x8, Bahko */ + PROP_wood_sm_crate4 = 82, /* Wooden Crate w/ #2 Label, Bahko */ + PROP_wood_sm_crate5 = 83, /* Wooden Crate w/ #4 Label, Darker Shading, Bahah */ + PROP_wood_sm_crate6 = 84, /* Wooden Crate w/ UP Arrow, Kapto|Enb */ + PROP_wooden_table1 = 85, /* Wooden Table */ + PROP_swipe_card2 = 86, /* Keycard */ + PROP_borg_crate = 87, /* Blue and Gold Printed Circuit Cube (Borg Crate) */ + PROP_boxes4x4 = 88, /* Metal Crate Stack, 4x4 */ + PROP_boxes3x4 = 89, /* Metal Crate Stack, 3x4 */ + PROP_boxes2x4 = 90, /* Metal Crate Stack, 2x4 */ + PROP_sec_panel = 91, /* Security Card Panel */ + PROP_ICBM_nose = 92, /* Silo Missile (ICBM), Nose Cone Only */ + PROP_ICBM = 93, /* Silo Missile (ICBM) */ + PROP_tuning_console1 = 94, /* Dual Consoles on Castors */ + PROP_desk_arecibo1 = 95, /* Computer Work Desk */ + PROP_locker3 = 96, /* Lockers, Single Venting */ + PROP_locker4 = 97, /* Lockers, Double Venting */ + PROP_roofgun = 98, /* Ceiling Mounted Drone Gun */ + PROP_dest_engine = 99, /* Frigate Engine */ + PROP_dest_exocet = 100, /* Naval MK 29 Missile Launcher (Exocet) */ + PROP_dest_gun = 101, /* Naval 100 mm Gun Turret (TR 100) */ + PROP_dest_harpoon = 102, /* Naval MK 141 Launch Canisters (Harpoon) */ + PROP_dest_seawolf = 103, /* Naval MK 26 Dual Missile Launcher (Seawolf) */ + PROP_window = 104, /* Window Glass */ + PROP_window_lib_lg1 = 105, /* Window Glass, Lattice Frame, 4x10 (single-sided) */ + PROP_window_lib_sm1 = 106, /* Window Glass, Lattice Frame, 4x3 (double-sided) */ + PROP_window_cor11 = 107, /* Window Glass, Lattice Frame, 4x4 (single-sided) */ + PROP_jungle3_tree = 108, /* Jungle Large Tree */ + PROP_palm = 109, /* Jungle Palm Tree */ + PROP_palmtree = 110, /* Jungle Palm Tree, Resprouting After Loss of Fronds */ + PROP_plant2b = 111, /* Jungle Plant, Low Shrub */ + PROP_labbench = 112, /* Laboratory Table w/ Sink Drains */ + PROP_gasbarrel = 113, /* White Bin */ + PROP_gasbarrels = 114, /* White Bins x4 */ + PROP_bodyarmour = 115, /* Body Armor */ + PROP_bodyarmourvest = 116, /* Body Armor (Vest) */ + PROP_gastank = 117, /* Bottling Tank */ + PROP_glassware1 = 118, /* Glass Cup */ + PROP_hatchbolt = 119, /* Metallic Securing Strip (Hatch Bolt) */ + PROP_brakeunit = 120, /* Train Brake Controller */ + PROP_ak47mag = 121, /* Gun Magazine (KF7 Soviet) */ + PROP_m16mag = 122, /* Gun Magazine (AR33 Assault Rifle) */ + PROP_mp5kmag = 123, /* Gun Magazine (D5K Deutsche) */ + PROP_skorpionmag = 124, /* Gun Magazine (Klobb) */ + PROP_spectremag = 125, /* Gun Magazine (Phantom) */ + PROP_uzimag = 126, /* Gun Magazine (ZMG (9mm)) */ + PROP_silencer = 127, /* Silencer */ + PROP_chrextinguisher = 128, /* Fire Extinguisher */ + PROP_boxcartridges = 129, /* Box of Shells (Shotgun Cartridges) */ + PROP_fnp90mag = 130, /* Gun Magazine (RC-P90) */ + PROP_goldenshells = 131, /* Box of Shells (Golden Gun Bullets) */ + PROP_magnumshells = 132, /* Box of Shells (Magnum Rounds) */ + PROP_wppkmag = 133, /* Gun Magazine (PP7) */ + PROP_tt33mag = 134, /* Gun Magazine (DD44 Dostovei) */ + PROP_sev_door = 135, /* Grey Containment Door w/ Caution Stripes and Window */ + PROP_sev_door3 = 136, /* Grey Electronic Door w/ LEFT Arrow */ + PROP_sev_door3_wind = 137, /* BETA Electronic Door w/ LEFT Arrow and Fake Window */ + PROP_sev_door4_wind = 138, /* Grey Electronic Door w/ LEFT Arrow and Window */ + PROP_sev_trislide = 139, /* Glass Door w/ Stone Frame */ + PROP_sev_door_v1 = 140, /* Grey Electronic Door w/ UP Arrow */ + PROP_steel_door1 = 141, /* Silver Corrugated Door w/ Caution Stripes */ + PROP_steel_door2 = 142, /* Rusty Door w/ Handle */ + PROP_steel_door3 = 143, /* Double Cross Brace Door */ + PROP_silo_lift_door = 144, /* Elevator Door */ + PROP_steel_door2b = 145, /* Rusty Door w/o Handle */ + PROP_door_roller1 = 146, /* Blue Bay Door w/ Caution Stripes */ + PROP_door_roller2 = 147, /* Blue Bay Door w/ Venting and Caution Stripes */ + PROP_door_roller3 = 148, /* Blue Bay Door w/ Venting and Caution Stripes */ + PROP_door_roller4 = 149, /* Cargo Bay Door w/ UP Arrow and Transportation Stripes */ + PROP_door_st_arec1 = 150, /* Blue Corrugated Door w/ Transportation Stripes */ + PROP_door_st_arec2 = 151, /* Blue Reversed Corrugated Door w/ Transportation Stripes */ + PROP_door_dest1 = 152, /* Grey Frigate Door w/ Indents and Caution Stripes */ + PROP_door_dest2 = 153, /* Grey Frigate Door w/ Indents, Caution Stripes and KEEP CLEAR Label */ + PROP_gas_plant_sw_do1 = 154, /* Grey Swinging Door w/ Blue Stripe */ + PROP_gas_plant_sw2_do1 = 155, /* Grey Swinging Door, Darker */ + PROP_gas_plant_sw3_do1 = 156, /* Grey Swinging Door, Lighter */ + PROP_gas_plant_sw4_do1 = 157, /* Light Wooden Door (Looks Like Sand) */ + PROP_gas_plant_met1_do1 = 158, /* Brown Electronic Door */ + PROP_gas_plant_wc_cub1 = 159, /* Bathroom Stall Door */ + PROP_gasplant_clear_door = 160, /* Laboratory Glass Door */ + PROP_train_door = 161, /* Dark Wooden Door */ + PROP_train_door2 = 162, /* Dark Wooden Door w/ Window */ + PROP_train_door3 = 163, /* Dark Wooden Door w/ Window + Shutter */ + PROP_door_eyelid = 164, /* Eyelid Door */ + PROP_door_iris = 165, /* Iris Door */ + PROP_sevdoorwood = 166, /* Cabin Door */ + PROP_sevdoorwind = 167, /* Weathered Swinging Door w/ Window */ + PROP_sevdoornowind = 168, /* Weathered Swinging Door */ + PROP_sevdoormetslide = 169, /* Brown Corrugated Electronic Door */ + PROP_cryptdoor1a = 170, /* Stone Door w/ Prints (Set A) */ + PROP_cryptdoor1b = 171, /* Sand Door w/ Damage (Set A) */ + PROP_cryptdoor2a = 172, /* Stone Door w/ Prints, Darker (Set B) */ + PROP_cryptdoor2b = 173, /* Sand Door w/ Damage, Darker (Set B) */ + PROP_cryptdoor3 = 174, /* Egyptian Moving Wall */ + PROP_cryptdoor4 = 175, /* Brown Sand Door (Temple) */ + PROP_vertdoor = 176, /* Blast Door (Control) */ + PROP_hatchdoor = 177, /* Train Floor Hatch */ + PROP_damgatedoor = 178, /* Security Gate (Dam) */ + PROP_damtundoor = 179, /* Tunnel Flood Door (Dam) */ + PROP_damchaindoor = 180, /* Mesh Gate */ + PROP_silotopdoor = 181, /* Launch Tube Ceiling Shutter (Silo) */ + PROP_doorprison1 = 182, /* Cell Door */ + PROP_doorstatgate = 183, /* Park Gate */ + PROP_chrkalash = 184, /* KF7 Soviet */ + PROP_chrgrenadelaunch = 185, /* Grenade Launcher */ + PROP_chrknife = 186, /* Hunting Knife */ + PROP_chrlaser = 187, /* Moonraker Laser */ + PROP_chrm16 = 188, /* AR33 Assault Rifle */ + PROP_chrmp5k = 189, /* D5K Deutsche */ + PROP_chrruger = 190, /* Cougar Magnum */ + PROP_chrwppk = 191, /* PP7 Special Issue */ + PROP_chrshotgun = 192, /* Shotgun */ + PROP_chrskorpion = 193, /* Klobb */ + PROP_chrspectre = 194, /* Phantom */ + PROP_chruzi = 195, /* ZMG (9mm) */ + PROP_chrgrenade = 196, /* Hand Grenade */ + PROP_chrfnp90 = 197, /* RC-P90 */ + PROP_chrbriefcase = 198, /* Briefcase */ + PROP_chrremotemine = 199, /* Remote Mine */ + PROP_chrproximitymine = 200, /* Proximity Mine */ + PROP_chrtimedmine = 201, /* Timed Mine */ + PROP_chrrocket = 202, /* Rocket */ + PROP_chrgrenaderound = 203, /* Grenade Round */ + PROP_chrwppksil = 204, /* PP7 (Silenced) */ + PROP_chrtt33 = 205, /* DD44 Dostovei */ + PROP_chrmp5ksil = 206, /* D5K (Silenced) */ + PROP_chrautoshot = 207, /* Automatic Shotgun */ + PROP_chrgolden = 208, /* Golden Gun */ + PROP_chrthrowknife = 209, /* Throwing Knife */ + PROP_chrsniperrifle = 210, /* Sniper Rifle */ + PROP_chrrocketlaunch = 211, /* Rocket Launcher */ + PROP_hatfurry = 212, /* Fur Hat, Blue */ + PROP_hatfurrybrown = 213, /* Fur Hat, Brown */ + PROP_hatfurryblack = 214, /* Fur Hat, Black */ + PROP_hattbird = 215, /* Side Cap, Light Green */ + PROP_hattbirdbrown = 216, /* Side Cap, Dark Green */ + PROP_hathelmet = 217, /* Combat Helmet, Green */ + PROP_hathelmetgrey = 218, /* Combat Helmet, Grey */ + PROP_hatmoon = 219, /* Elite Headgear */ + PROP_hatberet = 220, /* Special Forces Beret, Black */ + PROP_hatberetblue = 221, /* Special Forces Beret, Navy */ + PROP_hatberetred = 222, /* Special Forces Beret, Burgundy */ + PROP_hatpeaked = 223, /* Officer's Peaked Visor Cap */ + PROP_chrwristdart = 224, /* Pchrwristdart (BETA) */ + PROP_chrexplosivepen = 225, /* Pchrexplosivepen (BETA) */ + PROP_chrbombcase = 226, /* Bomb Case (Briefcase Laying Down) */ + PROP_chrflarepistol = 227, /* Pchrflarepistol (BETA Pickup) */ + PROP_chrpitongun = 228, /* Pchrpitongun (BETA Pickup) */ + PROP_chrfingergun = 229, /* Pchrfingergun (BETA Pickup) */ + PROP_chrsilverwppk = 230, /* Pchrsilverwppk (BETA Pickup) */ + PROP_chrgoldwppk = 231, /* Pchrgoldwppk (BETA Pickup) */ + PROP_chrdynamite = 232, /* Pchrdynamite (BETA Pickup) */ + PROP_chrbungee = 233, /* Pchrbungee (BETA Pickup) */ + PROP_chrdoordecoder = 234, /* Door Decoder */ + PROP_chrbombdefuser = 235, /* Bomb Defuser */ + PROP_chrbugdetector = 236, /* Pchrbugdetector (BETA Pickup) */ + PROP_chrsafecrackercase = 237, /* Safe Cracker Case (Briefcase Laying Down) */ + PROP_chrcamera = 238, /* Photo Camera (007) */ + PROP_chrlockexploder = 239, /* Pchrlockexploder (BETA Pickup) */ + PROP_chrdoorexploder = 240, /* Pchrdoorexploder (BETA Pickup) */ + PROP_chrkeyanalysercase = 241, /* Key Analyzer Case (Briefcase Laying Down) */ + PROP_chrweaponcase = 242, /* Weapon Case (Briefcase Standing Up) */ + PROP_chrkeyyale = 243, /* Yale Key */ + PROP_chrkeybolt = 244, /* Bolt Key */ + PROP_chrbug = 245, /* Covert Modem / Tracker Bug */ + PROP_chrmicrocamera = 246, /* Micro Camera */ + PROP_floppy = 247, /* Floppy Disc */ + PROP_chrgoldeneyekey = 248, /* GoldenEye Key */ + PROP_chrpolarizedglasses = 249, /* Polarized Glasses */ + PROP_chrcreditcard = 250, /* Pchrcreditcard (BETA Pickup) */ + PROP_chrdarkglasses = 251, /* Pchrdarkglasses (BETA Pickup) */ + PROP_chrgaskeyring = 252, /* Gas Keyring */ + PROP_chrdatathief = 253, /* Datathief */ + PROP_safe = 254, /* Safe Body */ + PROP_bomb = 255, /* Pbomb (BETA Pickup) */ + PROP_chrplans = 256, /* Plans (Briefing Folder) */ + PROP_chrspyfile = 257, /* Pchrspyfile (BETA Pickup) */ + PROP_chrblueprints = 258, /* Pirate Blueprints */ + PROP_chrcircuitboard = 259, /* Circuitboard */ + PROP_chrmap = 260, /* Bunker Expansion Plans */ + PROP_chrspooltape = 261, /* Pchrspooltape (BETA Pickup) */ + PROP_chraudiotape = 262, /* Audiotape */ + PROP_chrmicrofilm = 263, /* Pchrmicrofilm (BETA Pickup) */ + PROP_chrmicrocode = 264, /* Pchrmicrocode (BETA Pickup) */ + PROP_chrlectre = 265, /* Pchrlectre (BETA Pickup) */ + PROP_chrmoney = 266, /* Pchrmoney (BETA Pickup) */ + PROP_chrgoldbar = 267, /* Pchrgoldbar (BETA Pickup) */ + PROP_chrheroin = 268, /* Pchrheroin (BETA Pickup) */ + PROP_chrclipboard = 269, /* Clipboard */ + PROP_chrdossierred = 270, /* Red Dossier */ + PROP_chrstafflist = 271, /* Staff List */ + PROP_chrdattape = 272, /* DAT */ + PROP_chrplastique = 273, /* Plastique */ + PROP_chrblackbox = 274, /* Black Box (Orange Flight Recorder) */ + PROP_chrvideotape = 275, /* CCTV Tape (GoldenEye VHS) */ + PROP_nintendologo = 276, /* Nintendo Logo */ + PROP_goldeneyelogo = 277, /* GoldenEye Logo */ + PROP_walletbond = 278, /* Classified Folder w/ Royal Crest (Folder Menus) */ + PROP_miltruck = 279, /* Supply Truck */ + PROP_jeep = 280, /* Military Jeep */ + PROP_artic = 281, /* Red Prime Mover */ + PROP_helicopter = 282, /* Transport Helicopter w/ Natalya */ + PROP_tiger = 283, /* Pirate Euro Chopper */ + PROP_milcopter = 284, /* Hound Helicopter */ + PROP_hind = 285, /* Soviet Camouflage Chopper */ + PROP_artictrailer = 286, /* Black Trailer */ + PROP_motorbike = 287, /* Motorbike */ + PROP_tank = 288, /* Tank */ + PROP_apc = 289, /* Armored Personnel Carrier */ + PROP_speedboat = 290, /* Speedboat */ + PROP_plane = 291, /* Aeroplane */ + PROP_gun_runway1 = 292, /* Heavy Gun Emplacement */ + PROP_safedoor = 293, /* Safe Door */ + PROP_key_holder = 294, /* Key Rack */ + PROP_hatchsevx = 295, /* Grating (Ventshaft Hatch) */ + PROP_sevdish = 296, /* Satellite Dish (Severnaya) */ + PROP_archsecdoor1 = 297, /* Archives Moving Wall (Dark) */ + PROP_archsecdoor2 = 298, /* Archives Moving Wall (Light) */ + PROP_groundgun = 299, /* Free Standing Drone Gun */ + PROP_trainextdoor = 300, /* Train Exterior Door */ + PROP_carbmw = 301, /* White Car #1 (BMW) */ + PROP_carescort = 302, /* White Car #2 (Escort) */ + PROP_cargolf = 303, /* White Car #3 (Golf) */ + PROP_carweird = 304, /* Red Car (Cadillac) */ + PROP_carzil = 305, /* Ourumov's Car (ZIL) */ + PROP_shuttle_door_l = 306, /* Exhaust Bay Doors, Left Side */ + PROP_shuttle_door_r = 307, /* Exhaust Bay Doors, Right Side */ + PROP_depot_gate_entry = 308, /* Metallic Gate w/ Red Star */ + PROP_depot_door_steel = 309, /* Rusty Door w/ Handle (Lo-Res) */ + PROP_glassware2 = 310, /* Beaker w/ Blue Topper */ + PROP_glassware3 = 311, /* Erlenmeyer Flask */ + PROP_glassware4 = 312, /* Set of Five Beakers */ + PROP_landmine = 313, /* Land Mine */ + PROP_plant1 = 314, /* Jungle Plant, Withered and Dying */ + PROP_plant11 = 315, /* Jungle Plant, Turning Colour */ + PROP_plant2 = 316, /* Jungle Plant, Healthy and Thick */ + PROP_plant3 = 317, /* Jungle Plant, Tall Leaves */ + PROP_jungle5_tree = 318, /* Jungle Tree, Moss Covered */ + PROP_legalpage = 319, /* GoldenEye Certification Screen */ + PROP_st_pete_room_1i = 320, /* Roads and Buildings #1 (stretch of road) */ + PROP_st_pete_room_2i = 321, /* Roads and Buildings #2 (stretch of road) */ + PROP_st_pete_room_3t = 322, /* Roads and Buildings #3 (intersection) */ + PROP_st_pete_room_5c = 323, /* Roads and Buildings #4 (street corner) */ + PROP_st_pete_room_6c = 324, /* Roads and Buildings #5 (street corner) */ + PROP_door_rollertrain = 325, /* Roller Door */ + PROP_door_win = 326, /* Glass Sliding Door (Aztec) */ + PROP_door_aztec = 327, /* Stone Sliding Door (Aztec) */ + PROP_shuttle = 328, /* Moonraker Shuttle */ + PROP_door_azt_desk = 329, /* Boardroom Table (Aztec Exhaust Bay) */ + PROP_door_azt_desk_top = 330, /* Boardroom Table Extension (Aztec Exhaust Bay) */ + PROP_door_azt_chair = 331, /* Boardroom Chair (Aztec Exhaust Bay) */ + PROP_door_mf = 332, /* Mainframe Door */ + PROP_flag = 333, /* Flag Tag Token */ + PROP_barricade = 334, /* Road Barricade */ + PROP_modembox = 335, /* Covert Modem Connection Screen */ + PROP_doorpanel = 336, /* Sliding Door Activation Switch */ + PROP_doorconsole = 337, /* Console w/ Activation Light */ + PROP_chrtesttube = 338, /* Glass Test Tube */ + PROP_bollard = 339 /* Bollard */ +} PROPS; + +typedef enum PROJECTILES +{ + PROJECTILES_MAX = 0x2E, + PROJECTILES_TYPE_KNIFE = PROP_chrknife, + PROJECTILES_TYPE_GRENADE = PROP_chrgrenade, + PROJECTILES_TYPE_REMOTE_MINE = PROP_chrremotemine, + PROJECTILES_TYPE_PROX_MINE = PROP_chrproximitymine, + PROJECTILES_TYPE_TIMED_MINE = PROP_chrtimedmine, + PROJECTILES_TYPE_ROCKET_ROUND = PROP_chrrocket, + PROJECTILES_TYPE_ROCKET_ROUND2 = PROP_chrrocket, + PROJECTILES_TYPE_GLAUNCH_ROUND = PROP_chrgrenaderound, + PROJECTILES_TYPE_BOMBCASE = PROP_chrbombcase, + PROJECTILES_TYPE_BUG = PROP_chrbug, + PROJECTILES_TYPE_MICROCAMERA = PROP_chrmicrocamera, + PROJECTILES_TYPE_GE_KEY = PROP_chrgoldeneyekey, + PROJECTILES_TYPE_PLASTIQUE = PROP_chrplastique +} PROJECTILES; + +typedef enum AMMOTYPES { + AMMO_NONE = 0, + AMMO_9MM = 1, + AMMO_9MM_2 = 2, + AMMO_RIFLE = 3, + AMMO_SHOTGUN = 4, + AMMO_GRENADE = 5, + AMMO_ROCKETS = 6, + AMMO_REMOTEMINE = 7, + AMMO_PROXMINE = 8, + AMMO_TIMEDMINE = 9, + AMMO_KNIFE = 10, + AMMO_GRENADEROUND = 11, + AMMO_MAGNUM = 12, + AMMO_GGUN = 13, + AMMO_DARTS = 14, + AMMO_EXPLOSIVEPEN = 15, + AMMO_BOMBCASE = 16, + AMMO_FLARE = 17, + AMMO_PITON = 18, + AMMO_DYNAMITE = 19, + AMMO_BUG = 20, + AMMO_MICRO_CAMERA = 21, + AMMO_GEKEY = 22, + AMMO_PLASTIQUE = 23, + AMMO_WATCH_LASER = 24, + AMMO_WATCH_MAGNET = 25, + AMMO_UNK = 26, + AMMO_CAMERA = 27, + AMMO_TANK = 28, + AMMO_TOKEN = 29 +} AMMOTYPES; + +typedef enum DOORSTATE +{ + OPEN = 0x1, + CLOSED = 0x2 +} DOORSTATE; + +typedef enum SCREEN_SIZE +{ + SCREEN_SIZE_320x240 = 0x0, + SCREEN_SIZE_440x330 = 0x1 +} SCREEN_SIZE; + +typedef enum COLORMODE +{ + MODE_32BIT = 0x0, + MODE_16BIT = 0x1 +} COLORMODE; + +typedef enum CAMERAMODE { + INTRO_CAM = 1, + FADESWIRL_CAM, + SWIRL_CAM, + FP_CAM, + UNK5_CAM, + UNK6_CAM, + POSEND_CAM, + FP_NOINPUT_CAM, + MP_CAM, + UNK10_CAM +} CAMERAMODE; + +/* motion capture actor: duncan botwood */ +/* motion capture assistance: b jones */ +/* recorded using 'flock of birds' system by ascension technology corporation, in a freezing metal barn in the depths of winter */ +/* note: animations are double handed weapon (KF7) unless specified (unarmed, one_handed_weapon, dual_wield) */ +typedef enum ANIMATIONS { + ANIM_idle = 0, + ANIM_fire_standing = 1, + ANIM_fire_standing_fast = 2, + ANIM_fire_hip = 3, + ANIM_fire_shoulder_left = 4, + ANIM_fire_turn_right1 = 5, + ANIM_fire_turn_right2 = 6, + ANIM_fire_kneel_right_leg = 7, + ANIM_fire_kneel_left_leg = 8, + ANIM_fire_kneel_left = 9, + ANIM_fire_kneel_right = 10, + ANIM_fire_roll_left = 11, + ANIM_fire_roll_right1 = 12, + ANIM_fire_roll_left_fast = 13, + ANIM_hit_left_shoulder = 14, + ANIM_hit_right_shoulder = 15, + ANIM_hit_left_arm = 16, + ANIM_hit_right_arm = 17, + ANIM_hit_left_hand = 18, + ANIM_hit_right_hand = 19, + ANIM_hit_left_leg = 20, + ANIM_hit_right_leg = 21, + ANIM_death_genitalia = 22, /* thank you mr. botwood, here is your award */ + ANIM_hit_neck = 23, + ANIM_death_neck = 24, + ANIM_death_stagger_back_to_wall = 25, + ANIM_death_forward_face_down = 26, + ANIM_death_forward_spin_face_up = 27, + ANIM_death_backward_fall_face_up1 = 28, + ANIM_death_backward_spin_face_down_right = 29, + ANIM_death_backward_spin_face_up_right = 30, + ANIM_death_backward_spin_face_down_left = 31, + ANIM_death_backward_spin_face_up_left = 32, + ANIM_death_forward_face_down_hard = 33, + ANIM_death_forward_face_down_soft = 34, + ANIM_death_fetal_position_right = 35, + ANIM_death_fetal_position_left = 36, + ANIM_death_backward_fall_face_up2 = 37, + ANIM_side_step_left = 38, + ANIM_fire_roll_right2 = 39, + ANIM_walking = 40, + ANIM_sprinting = 41, + ANIM_running = 42, + ANIM_bond_eye_walk = 43, + ANIM_bond_eye_fire = 44, + ANIM_bond_watch = 45, + ANIM_surrendering_armed = 46, + ANIM_surrendering_armed_drop_weapon = 47, + ANIM_fire_walking = 48, + ANIM_fire_running = 49, + ANIM_null50 = 50, /* invalid slot */ + ANIM_null51 = 51, /* invalid slot */ + ANIM_fire_jump_to_side_left = 52, + ANIM_fire_jump_to_side_right = 53, + ANIM_hit_butt_long = 54, + ANIM_hit_butt_short = 55, + ANIM_death_head = 56, + ANIM_death_left_leg = 57, + ANIM_slide_right = 58, + ANIM_slide_left = 59, + ANIM_jump_backwards = 60, + ANIM_extending_left_hand = 61, + ANIM_fire_throw_grenade = 62, + ANIM_spotting_bond = 63, /* used by chr ai command guard_points_at_bond */ + ANIM_look_around = 64, /* used by chr ai command guard_animation_looks_around_self */ + ANIM_fire_standing_one_handed_weapon = 65, + ANIM_fire_standing_draw_one_handed_weapon_fast = 66, + ANIM_fire_standing_draw_one_handed_weapon_slow = 67, + ANIM_fire_hip_one_handed_weapon_fast = 68, + ANIM_fire_hip_one_handed_weapon_slow = 69, + ANIM_fire_hip_forward_one_handed_weapon = 70, + ANIM_fire_standing_right_one_handed_weapon = 71, + ANIM_fire_step_right_one_handed_weapon = 72, + ANIM_fire_standing_left_one_handed_weapon_slow = 73, + ANIM_fire_standing_left_one_handed_weapon_fast = 74, + ANIM_fire_kneel_forward_one_handed_weapon_slow = 75, + ANIM_fire_kneel_forward_one_handed_weapon_fast = 76, + ANIM_fire_kneel_right_one_handed_weapon_slow = 77, + ANIM_fire_kneel_right_one_handed_weapon_fast = 78, + ANIM_fire_kneel_left_one_handed_weapon_slow = 79, + ANIM_fire_kneel_left_one_handed_weapon_fast = 80, + ANIM_fire_kneel_left_one_handed_weapon = 81, + ANIM_aim_walking_one_handed_weapon = 82, + ANIM_aim_walking_left_one_handed_weapon = 83, + ANIM_aim_walking_right_one_handed_weapon = 84, + ANIM_aim_running_one_handed_weapon = 85, + ANIM_aim_running_right_one_handed_weapon = 86, + ANIM_aim_running_left_one_handed_weapon = 87, + ANIM_aim_sprinting_one_handed_weapon = 88, + ANIM_running_one_handed_weapon = 89, + ANIM_sprinting_one_handed_weapon = 90, + ANIM_null91 = 91, /* invalid slot */ + ANIM_null92 = 92, /* invalid slot */ + ANIM_null93 = 93, /* invalid slot */ + ANIM_null94 = 94, /* invalid slot */ + ANIM_null95 = 95, /* invalid slot */ + ANIM_null96 = 96, /* invalid slot */ + ANIM_draw_one_handed_weapon_and_look_around = 97, + ANIM_draw_one_handed_weapon_and_stand_up = 98, + ANIM_aim_one_handed_weapon_left_right = 99, + ANIM_cock_one_handed_weapon_and_turn_around = 100, + ANIM_holster_one_handed_weapon_and_cross_arms = 101, + ANIM_cock_one_handed_weapon_turn_around_and_stand_up = 102, + ANIM_draw_one_handed_weapon_and_turn_around = 103, + ANIM_step_forward_and_hold_one_handed_weapon = 104, + ANIM_holster_one_handed_weapon_and_adjust_suit = 105, + ANIM_idle_unarmed = 106, + ANIM_walking_unarmed = 107, + ANIM_fire_walking_dual_wield = 108, + ANIM_fire_walking_dual_wield_hands_crossed = 109, + ANIM_fire_running_dual_wield = 110, + ANIM_fire_running_dual_wield_hands_crossed = 111, + ANIM_fire_sprinting_dual_wield = 112, + ANIM_fire_sprinting_dual_wield_hands_crossed = 113, + ANIM_walking_female = 114, + ANIM_running_female = 115, + ANIM_fire_kneel_dual_wield = 116, + ANIM_fire_kneel_dual_wield_left = 117, + ANIM_fire_kneel_dual_wield_right = 118, + ANIM_fire_kneel_dual_wield_hands_crossed = 119, + ANIM_fire_kneel_dual_wield_hands_crossed_left = 120, + ANIM_fire_kneel_dual_wield_hands_crossed_right = 121, + ANIM_fire_standing_dual_wield = 122, + ANIM_fire_standing_dual_wield_left = 123, + ANIM_fire_standing_dual_wield_right = 124, + ANIM_fire_standing_dual_wield_hands_crossed_left = 125, + ANIM_fire_standing_dual_wield_hands_crossed_right = 126, + ANIM_fire_standing_aiming_down_sights = 127, + ANIM_fire_kneel_aiming_down_sights = 128, + ANIM_hit_taser = 129, /* unused tazer boy hit reaction */ + ANIM_death_explosion_forward = 130, + ANIM_death_explosion_left1 = 131, + ANIM_death_explosion_back_left = 132, + ANIM_death_explosion_back1 = 133, + ANIM_death_explosion_right = 134, + ANIM_death_explosion_forward_right1 = 135, + ANIM_death_explosion_back2 = 136, + ANIM_death_explosion_forward_roll = 137, + ANIM_death_explosion_forward_face_down = 138, + ANIM_death_explosion_left2 = 139, + ANIM_death_explosion_forward_right2 = 140, + ANIM_death_explosion_forward_right2_alt = 141, /* copy of right2 with different fall */ + ANIM_death_explosion_forward_right3 = 142, + ANIM_null143 = 143, /* invalid slot */ + ANIM_null144 = 144, /* invalid slot */ + ANIM_null145 = 145, /* invalid slot */ + ANIM_null146 = 146, /* invalid slot */ + ANIM_running_hands_up = 147, + ANIM_sprinting_hands_up = 148, + ANIM_aim_and_blow_one_handed_weapon = 149, /* reversed animation? */ + ANIM_aim_one_handed_weapon_left = 150, + ANIM_aim_one_handed_weapon_right = 151, + ANIM_conversation = 152, + ANIM_drop_weapon_and_show_fight_stance = 153, /* orthodox stance woo */ + ANIM_yawning = 154, + ANIM_swatting_flies = 155, + ANIM_scratching_leg = 156, + ANIM_scratching_butt = 157, + ANIM_adjusting_crotch = 158, + ANIM_sneeze = 159, + ANIM_conversation_cleaned = 160, /* cleaned up copy of ANIM_conversation (compare left wrist) */ + ANIM_conversation_listener = 161, + ANIM_startled_and_looking_around = 162, + ANIM_laughing_in_disbelief = 163, + ANIM_surrendering_unarmed = 164, + ANIM_coughing_standing = 165, + ANIM_coughing_kneel1 = 166, + ANIM_coughing_kneel2 = 167, + ANIM_standing_up = 168, + ANIM_null169 = 169, /* invalid slot */ + ANIM_dancing = 170, + ANIM_dancing_one_handed_weapon = 171, + ANIM_keyboard_right_hand1 = 172, + ANIM_keyboard_right_hand2 = 173, + ANIM_keyboard_left_hand = 174, + ANIM_keyboard_right_hand_tapping = 175, + ANIM_bond_eye_fire_alt = 176, /* unused */ + ANIM_dam_jump = 177, + ANIM_surface_vent_jump = 178, + ANIM_cradle_jump = 179, + ANIM_cradle_fall = 180, + ANIM_credits_bond_kissing = 181, + ANIM_credits_natalya_kissing = 182 +} ANIMATIONS; + +typedef enum AIRCRAFT_ANIMATIONS { + ANIM_helicopter_cradle = 0, + ANIM_plane_runway = 1, + ANIM_helicopter_takeoff = 2 +} AIRCRAFT_ANIMATIONS; + +typedef enum HANDEDNESS { + RIGHT_HAND = 0, + LEFT_HAND = 1 +} HANDEDNESS; + +// used by characters +typedef enum ACT_TYPE { + ACT_INIT = 0, + ACT_STAND, + ACT_KNEEL, + ACT_ANIM, + ACT_DIE, + ACT_DEAD, + ACT_ARGH, + ACT_PREARGH, + ACT_ATTACK, + ACT_ATTACKWALK, + ACT_ATTACKROLL, + ACT_SIDESTEP, + ACT_JUMPOUT, + ACT_RUNPOS, + ACT_PATROL, + ACT_GOPOS, + ACT_SURRENDER, + ACT_LOOKATTARGET, + ACT_SURPRISED, + ACT_STARTALARM, + ACT_THROWGRENADE, + ACT_TURNDIR, + ACT_TEST, + ACT_NULL +} ACT_TYPE; + +// character flags +#define CHRHIDDEN_DROP_HELD_ITEMS 0x0001 // drop held items/weapons +#define CHRHIDDEN_0002 0x0002 // unknown +#define CHRHIDDEN_FIRE_WEAPON_LEFT 0x0004 // firing left weapon +#define CHRHIDDEN_FIRE_WEAPON_RIGHT 0x0008 // firing right weapon +#define CHRHIDDEN_0010 0x0010 // unknown +#define CHRHIDDEN_REMOVE 0x0020 // remove character +#define CHRHIDDEN_TIMER_ACTIVE 0x0040 // chr timer is active +#define CHRHIDDEN_FIRE_TRACER 0x0080 // spawn a tracer +#define CHRHIDDEN_MOVING 0x0100 // moving +#define CHRHIDDEN_0200 0x0200 // unknown +#define CHRHIDDEN_0400 0x0400 // unknown +#define CHRHIDDEN_FREEZE 0x0800 // freeze current animation state +#define CHRHIDDEN_1000 0x1000 // unknown +#define CHRHIDDEN_2000 0x2000 // unknown +#define CHRHIDDEN_4000 0x4000 // unknown +#define CHRHIDDEN_8000 0x8000 // unknown + +#define CHRFLAG_INIT 0x00000001 // initialize chr +#define CHRFLAG_CLONE 0x00000002 // clone on heard gunfire (used by GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) +#define CHRFLAG_NEAR_MISS 0x00000004 // chr was just nearly shot (sometimes set on direct hit) +#define CHRFLAG_HAS_BEEN_ON_SCREEN 0x00000008 // chr has been on screen before +#define CHRFLAG_INVINCIBLE 0x00000010 // invincible +#define CHRFLAG_00000020 0x00000020 // unknown +#define CHRFLAG_CAN_SHOOT_CHRS 0x00000040 // can shoot other guards +#define CHRFLAG_00000080 0x00000080 // unknown +#define CHRFLAG_WAS_DAMAGED 0x00000100 // chr has taken damage (not invincible) +#define CHRFLAG_00000200 0x00000200 // unknown +#define CHRFLAG_HIDDEN 0x00000400 // hidden +#define CHRFLAG_NO_AUTOAIM 0x00000800 // no autoaim +#define CHRFLAG_LOCK_Y_POS 0x00001000 // lock y position (no gravity, used for dam/cradle jump) +#define CHRFLAG_NO_SHADOW 0x00002000 // no shadow +#define CHRFLAG_IGNORE_ANIM_TRANSLATION 0x00004000 // ignore animation translation +#define CHRFLAG_00008000 0x00008000 // unknown +#define CHRFLAG_00010000 0x00010000 // unknown +#define CHRFLAG_00020000 0x00020000 // unknown +#define CHRFLAG_00040000 0x00040000 // unknown +#define CHRFLAG_INCREASE_SPRINT_SPEED 0x00080000 // increase sprinting speed (used by trevelyan) +#define CHRFLAG_COUNT_DEATH_AS_CIVILIAN 0x00100000 // count death as civilian killed +#define CHRFLAG_WAS_HIT 0x00200000 // chr has been hit (even if invincible) +#define CHRFLAG_00400000 0x00400000 // unknown +#define CHRFLAG_CULL_USING_HITBOX 0x00800000 // cull chr using hitbox instead of tile/clipping (useful with lock y pos flag) +#define CHRFLAG_01000000 0x01000000 // unknown +#define CHRFLAG_02000000 0x02000000 // unknown +#define CHRFLAG_04000000 0x04000000 // unknown +#define CHRFLAG_08000000 0x08000000 // unknown +#define CHRFLAG_10000000 0x10000000 // unknown +#define CHRFLAG_20000000 0x20000000 // unknown +#define CHRFLAG_40000000 0x40000000 // unknown +#define CHRFLAG_80000000 0x80000000 // unknown + +// prop/object flags +#define PROPFLAG_00000001 0x00000001 // unknown +#define PROPFLAG_00000002 0x00000002 // unknown +#define PROPFLAG_00000004 0x00000004 // unknown +#define PROPFLAG_00000008 0x00000008 // unknown +#define PROPFLAG_00000010 0x00000010 // unknown +#define PROPFLAG_00000020 0x00000020 // unknown +#define PROPFLAG_00000040 0x00000040 // unknown +#define PROPFLAG_00000080 0x00000080 // unknown +#define PROPFLAG_00000100 0x00000100 // unknown +#define PROPFLAG_00000200 0x00000200 // unknown +#define PROPFLAG_00000400 0x00000400 // unknown +#define PROPFLAG_00000800 0x00000800 // unknown +#define PROPFLAG_00001000 0x00001000 // unknown +#define PROPFLAG_00002000 0x00002000 // unknown +#define PROPFLAG_00004000 0x00004000 // unknown +#define PROPFLAG_00008000 0x00008000 // unknown +#define PROPFLAG_00010000 0x00010000 // unknown +#define PROPFLAG_00020000 0x00020000 // unknown +#define PROPFLAG_00040000 0x00040000 // unknown +#define PROPFLAG_00080000 0x00080000 // unknown +#define PROPFLAG_00100000 0x00100000 // unknown +#define PROPFLAG_00200000 0x00200000 // unknown +#define PROPFLAG_00400000 0x00400000 // unknown +#define PROPFLAG_00800000 0x00800000 // unknown +#define PROPFLAG_01000000 0x01000000 // unknown +#define PROPFLAG_02000000 0x02000000 // unknown +#define PROPFLAG_04000000 0x04000000 // unknown +#define PROPFLAG_08000000 0x08000000 // unknown +#define PROPFLAG_10000000 0x10000000 // unknown +#define PROPFLAG_20000000 0x20000000 // unknown +#define PROPFLAG_40000000 0x40000000 // unknown +#define PROPFLAG_80000000 0x80000000 // unknown + +#define PROPFLAG2_00000001 0x00000001 // unknown +#define PROPFLAG2_00000002 0x00000002 // unknown +#define PROPFLAG2_00000004 0x00000004 // unknown +#define PROPFLAG2_00000008 0x00000008 // unknown +#define PROPFLAG2_00000010 0x00000010 // unknown +#define PROPFLAG2_00000020 0x00000020 // unknown +#define PROPFLAG2_00000040 0x00000040 // unknown +#define PROPFLAG2_00000080 0x00000080 // unknown +#define PROPFLAG2_00000100 0x00000100 // unknown +#define PROPFLAG2_00000200 0x00000200 // unknown +#define PROPFLAG2_00000400 0x00000400 // unknown +#define PROPFLAG2_00000800 0x00000800 // unknown +#define PROPFLAG2_00001000 0x00001000 // unknown +#define PROPFLAG2_00002000 0x00002000 // unknown +#define PROPFLAG2_00004000 0x00004000 // unknown +#define PROPFLAG2_00008000 0x00008000 // unknown +#define PROPFLAG2_00010000 0x00010000 // unknown +#define PROPFLAG2_00020000 0x00020000 // unknown +#define PROPFLAG2_00040000 0x00040000 // unknown +#define PROPFLAG2_00080000 0x00080000 // unknown +#define PROPFLAG2_00100000 0x00100000 // unknown +#define PROPFLAG2_00200000 0x00200000 // unknown +#define PROPFLAG2_00400000 0x00400000 // unknown +#define PROPFLAG2_00800000 0x00800000 // unknown +#define PROPFLAG2_01000000 0x01000000 // unknown +#define PROPFLAG2_02000000 0x02000000 // unknown +#define PROPFLAG2_04000000 0x04000000 // unknown +#define PROPFLAG2_08000000 0x08000000 // unknown +#define PROPFLAG2_10000000 0x10000000 // unknown +#define PROPFLAG2_20000000 0x20000000 // unknown +#define PROPFLAG2_40000000 0x40000000 // unknown +#define PROPFLAG2_80000000 0x80000000 // unknown + +// door lock flags +#define DOOR_LOCK_0 0x01 +#define DOOR_LOCK_1 0x02 +#define DOOR_LOCK_2 0x04 +#define DOOR_LOCK_3 0x08 +#define DOOR_LOCK_4 0x10 +#define DOOR_LOCK_5 0x20 +#define DOOR_LOCK_6 0x40 +#define DOOR_LOCK_7 0x80 + +#define OBJECTTYPE_00 0x00 +#define OBJECTTYPE_01 0x01 +#define OBJECTTYPE_02 0x02 +#define OBJECTTYPE_03 0x03 +#define OBJECTTYPE_04 0x04 +#define OBJECTTYPE_05 0x05 +#define OBJECTTYPE_06 0x06 +#define OBJECTTYPE_07 0x07 +#define OBJECTTYPE_WEAPON 0x08 +#define OBJECTTYPE_09 0x09 +#define OBJECTTYPE_10 0x10 +#define OBJECTTYPE_11 0x11 +#define OBJECTTYPE_12 0x12 +#define OBJECTTYPE_13 0x13 +#define OBJECTTYPE_14 0x14 +#define OBJECTTYPE_15 0x15 +#define OBJECTTYPE_16 0x16 +#define OBJECTTYPE_17 0x17 +#define OBJECTTYPE_18 0x18 +#define OBJECTTYPE_19 0x19 +#define OBJECTTYPE_20 0x20 +#define OBJECTTYPE_21 0x21 +#define OBJECTTYPE_22 0x22 +#define OBJECTTYPE_23 0x23 +#define OBJECTTYPE_24 0x24 +#define OBJECTTYPE_25 0x25 +#define OBJECTTYPE_26 0x26 +#define OBJECTTYPE_27 0x27 +#define OBJECTTYPE_28 0x28 +#define OBJECTTYPE_29 0x29 +#define OBJECTTYPE_30 0x30 +#define OBJECTTYPE_31 0x31 +#define OBJECTTYPE_32 0x32 +#define OBJECTTYPE_33 0x33 +#define OBJECTTYPE_34 0x34 +#define OBJECTTYPE_35 0x35 +#define OBJECTTYPE_36 0x36 + + + +#endif + diff --git a/src/bondgame.h b/src/bondgame.h new file mode 100644 index 0000000..f08c3c7 --- /dev/null +++ b/src/bondgame.h @@ -0,0 +1,41 @@ +#ifndef _BOND_H_ +#define _BOND_H_ +#include "ultra64.h" + +extern u8 cfb_16_a[]; +extern u8 cfb_16_b[]; + +extern u32 *_codeSegmentStart; +extern u32 *_codeSegmentEnd; +extern u32 *_codeSegmentRomStart; +extern u32 *_codeSegmentRomEnd; + +extern u32 *_csegmentSegmentStart; +extern u32 *_csegmentSegmentEnd; +extern u32 *_cdataSegmentRomStart; +extern u32 *_cdataSegmentRomEnd; + +extern u32 *_rarezipSegmentVaddrStart; +extern u32 *_rarezipSegmentVaddrEnd; +extern u32 *_rarezipSegmentRomStart; +extern u32 *_rarezipSegmentRomEnd; + +extern u32 *_gameSegmentVaddrStart; +extern u32 *_gameSegmentVaddrEnd; +extern u32 *_gameSegmentRomStart; +extern u32 *_gameSegmentRomEnd; + + +extern u8 sp_boot[]; +extern u8 sp_rmon[]; +extern u8 sp_idle[]; +extern u8 sp_shed[]; +extern u8 sp_main[]; +extern u8 sp_audi[]; +extern u8 sp_debug[]; + +#include "bondaicommands.h" // game ai commands +#include "bondconstants.h" // game constants +#include "bondtypes.h" // game structs and types + +#endif diff --git a/src/bondtypes.h b/src/bondtypes.h new file mode 100644 index 0000000..bd42b0a --- /dev/null +++ b/src/bondtypes.h @@ -0,0 +1,352 @@ +#ifndef _BONDTYPES_H_ +#define _BONDTYPES_H_ +#include "ultra64.h" +#include "bondconstants.h" +struct rgba_val{ + u8 r; + u8 g; + u8 b; + u8 a; +}; + +struct rgba_valf32{ + f32 r; + f32 g; + f32 b; + f32 a; +}; + +/****** + + The following struct ObjectRecord was copied from AIListLogic branch + and should be removed when merged + + note: only the necessary fields were copied in order to compile (not the full struct) + +******/ +typedef struct ObjectRecord +{ + u16 obj; +} ObjectRecord; + +/****** + + The following struct PropRecord was copied from AIListLogic branch + and should be removed when merged + + note: only the necessary fields were copied in order to compile (not the full struct) + +******/ +typedef struct PropRecord +{ + u8 type; + union + { + ObjectRecord *obj; + } Entityp; +} PropRecord; + +typedef struct CHRdata CHRdata, *PCHRdata; + +/* unfinished struct, WIP */ +struct CHRdata { + u16 chrnum; + s8 accuracyrating; + s8 speedrating; + u8 firecountleft; + u8 firecountright; + s8 headnum; + s8 actiontype; + s8 sleep; + s8 invalidmove; + s8 numclosearghs; + s8 numarghs; + u8 fadealpha; + s8 arghrating; + s8 aimendcount; + s8 bodynum; + /* 0x0010 */ + u8 grenadeprob; + s8 flinchcnt; + s16 hidden; + s32 chrflags; + void * pad; + void * model; + /* 0x0020 */ + void * field_20; + f32 chrwidth; + f32 chrheight; + void * bondpos; /* HACK - reused as fadeout counter on death, checks if pointer at 7F02B774 */ + /* 0x0030 */ + int field_30; + short field_34; + char field_36; + char field_37; + char field_38; + char field_39; + char field_3A; + char field_3B; + int path_target_position; + /* 0x0040 */ + int field_40; + int field_44; + int field_48; + int targetflag; + /* 0x0050 */ + int targettoshoot; + int field_54; + char type_of_motion; + char distance_counter_or_something; + short distance_to_target; + int field_5C; + /* 0x0060 */ + int target_position; + int field_64; + int field_68; + int field_6C; + /* 0x0070 */ + int path_segment_coverage; + int path_segment_length; + int field_78; + int field_7C; + /* 0x0080 */ + int field_80; + int field_84; + int field_88; + int field_8C; + /* 0x0090 */ + int field_90; + int segment_coverage; + int segment_length; + int field_9C; + /* 0x00A0 */ + int field_A0; + f32 sumground; + f32 manground; + f32 ground; + /* 0x00B0 */ + f32 fallspeed[3]; + f32 prevpos[3]; + /* 0x00B8 */ + s32 lastwalk60; + s32 lastmoveok60; + /* 0x00D0 */ + f32 visionrange; + s32 lastseetarget60; + f32 lastvisibletarg[3]; + /* 0x00E4 */ + void * field_E4; + s32 timeshooter; + f32 hearingscale; + /* 0x00F0 */ + s32 lastheartarget60; + u8 shadecol[4]; + u8 nextcol[4]; + f32 damage; + /* 0x0100 */ + f32 maxdamage; + void * ailist; + u16 aioffset; + u16 aireturnlist; + u8 flags; /* used by ai commands 81-85 */ + u8 flags2; /* used by ai commands 86-8A */ + u8 BITFIELD; + u8 random; + /* 0x0110 */ + s32 timer60; + u16 padpreset1; /* ID PAD_PRESET */ + u16 chrpreset1; /* ID CHR_PRESET */ + u16 chrseeshot; /* ID CHR_SEE_SHOT - ignores invincible/armoured guards */ + u16 chrseedie; /* ID CHR_SEE_DIE */ + /* 0x011C */ + f32 field_11C[2]; + f32 field_124[2]; + f32 field_12C[2]; + /* 0x0134 */ + int field_134; + int field_138; + f32 shotbondsum; + /* 0x0140 */ + f32 aimuplshoulder; + f32 aimuprshoulder; + f32 aimupback; + f32 aimsideback; + /* 0x0150 */ + f32 aimendlshoulder; + f32 aimendrshoulder; + f32 aimendback; + f32 aimendsideback; + /* 0x0160 */ + int * handle_positiondata[2]; + int * ptr_SEbuffer1; + int * ptr_SEbuffer2; + /* 0x0170 */ + int * ptr_SEbuffer3; + int * ptr_SEbuffer4; + int field_178; + int field_17C; + /* 0x0180 */ + char field_180; + char field_181; + char field_182; + char field_183; + int field_184; + int field_188; + int field_18C; + /* 0x0190 */ + int field_190; + int field_194; + int field_198; + int field_19C; + /* 0x01A0 */ + int field_1A0; + int field_1A4; + int field_1A8; + char field_1AC; + char field_1AD; + char field_1AE; + char field_1AF; + /* 0x01B0 */ + int field_1B0; + int field_1B4; + int field_1B8; + int field_1BC; + /* 0x01C0 */ + int field_1C0; + int field_1C4; + int field_1C8; + int field_1CC; + /* 0x01D0 */ + int field_1D0; + int field_1D4; + int * handle_positiondata_hat; +}; + +struct object_standard { + u16 extrascale:2; + u8 hidden2:1; + u8 type:1; + u16 obj; + u16 pad; + u32 flags; + u32 flags2; + void * runtime_ptr_obj_posdata; + void * runtime_ptr_obj_instance_controller; + void * runtime_MATRIX0; + void * runtime_MATRIX1; + void * runtime_MATRIX2; + void * runtime_MATRIX3; + void * runtime_MATRIX4; + void * runtime_MATRIX5; + void * runtime_MATRIX6; + void * runtime_MATRIX7; + void * runtime_MATRIX8; + void * runtime_MATRIX9; + void * runtime_MATRIXA; + void * runtime_MATRIXB; + void * runtime_MATRIXC; + void * runtime_MATRIXD; + void * runtime_MATRIXE; + void * runtime_MATRIXF; + f32 runtime_x_pos; + f32 runtime_y_pos; + f32 runtime_z_pos; + int runtime_bitflags; + int ptr_allocated_collisiondata_block; + int field_6C; + float field_70; + short damage; + short maxdamage; + char field_78; + char field_79; + char field_7A; + char field_7B; + char field_7C; + char field_7D; + char field_7E; + char field_7F; +}; + +struct watchMenuObjectiveText { + u32 id; + enum WATCH_BRIEFING_PAGE menu; + u16 reserved; + u16 text; + struct watchMenuObjectiveText * nextentry; +}; +//!FIXME all but text field cannot be trusted +struct objective_entry { + u32 id; + enum WATCH_BRIEFING_PAGE menu; + u16 reserved; + u16 text; + struct watchMenuObjectiveText * nextentry; +}; + +typedef struct sImageTableEntry { + u32 index; + u8 width; + u8 height; + u8 level; + u8 format; + u8 depth; + u8 flagsS; + u8 flagsT; + u8 pad; +} sImageTableEntry; + +typedef struct sGlobalImageTable { + u32 globalDL_0x000[30]; + u32 globalDL_0x078[42]; + u32 globalDL_0x120[42]; + u32 globalDL_0x1c8[42]; + u32 globalDL_0x270[42]; + u32 globalDL_0x318[42]; + u32 globalDL_0x3c0[42]; + u32 globalDL_0x468[42]; + u32 globalDL_0x510[42]; + u32 globalDL_0x5b8[42]; + u32 globalDL_0x660[42]; + u32 globalDL_0x708[42]; + u32 globalDL_0x7b0[42]; + u32 globalDL_0x858[42]; + u32 globalDL_0x900[42]; + u32 globalDL_0x9a8[42]; + u32 globalDL_0xa50[30]; + struct sImageTableEntry s_genericimage[1]; + struct sImageTableEntry s_impactimages[20]; + struct sImageTableEntry s_explosion_smokeimages[6]; + struct sImageTableEntry s_scattered_explosions[5]; + struct sImageTableEntry s_flareimage1[1]; + struct sImageTableEntry s_flareimage2[1]; + struct sImageTableEntry s_flareimage3[1]; + struct sImageTableEntry s_flareimage4[1]; + struct sImageTableEntry s_flareimage5[1]; + struct sImageTableEntry s_ammo9mmimage[1]; + struct sImageTableEntry s_rifleammoimage[1]; + struct sImageTableEntry s_shotgunammoimage[1]; + struct sImageTableEntry s_knifeammoimage[1]; + struct sImageTableEntry s_glammoimage[1]; + struct sImageTableEntry s_rocketammoimage[1]; + struct sImageTableEntry s_genericmineammoimage[1]; + struct sImageTableEntry s_grenadeammoimage[1]; + struct sImageTableEntry s_magnumammoimage[1]; + struct sImageTableEntry s_goldengunammoimage[1]; + struct sImageTableEntry s_remotemineammoimage[1]; + struct sImageTableEntry s_timedmineammoimage[1]; + struct sImageTableEntry s_proxmineammoimage[1]; + struct sImageTableEntry s_tankammoimage[1]; + struct sImageTableEntry s_crosshairimage[1]; + struct sImageTableEntry s_betacrosshairimage[1]; + struct sImageTableEntry s_glassoverlayimage[2]; + struct sImageTableEntry s_monitorimages[50]; + struct sImageTableEntry s_skywaterimages[3]; + struct sImageTableEntry s_mainfolderimages[6]; + struct sImageTableEntry s_mpradarimages[1]; + struct sImageTableEntry s_mpcharselimages[64]; + struct sImageTableEntry s_mpstageselimages[17]; +} sGlobalImageTable; + + + +#endif diff --git a/src/boot.c b/src/boot.c new file mode 100644 index 0000000..927ffa9 --- /dev/null +++ b/src/boot.c @@ -0,0 +1,108 @@ +#include +#include "boot.h" +#include "bondgame.h" +#include "inflate/inflate.h" + +/** + * @file boot.c + * This file sets up initial tlb mapping then jumps to boot1. + * + * In particular, it: + * - also contains functions that grab segment addresses + * - will likely always be asm as it manipulates tlb directly + */ + + +/** + * 1050 70000450 registers 70000000-70400000 in TLB, JR to 70000510 + * technically, this is used in bootcode and used prior to TLB registration + */ +GLOBAL_ASM( +glabel boot +/* 001050 70000450 24020001 */ li $v0, 1 +/* 001054 70000454 24030000 */ li $v1, 0 +/* 001058 70000458 24040000 */ li $a0, 0 +/* 00105C 7000045C 3C057000 */ lui $a1, 0x7000 +/* 001060 70000460 2406001F */ li $a2, 31 +/* 001064 70000464 24070001 */ li $a3, 1 +/* 001068 70000468 3C08007F */ lui $t0, (0x007FE000 >> 16) # lui $t0, 0x7f +/* 00106C 7000046C 3508E000 */ ori $t0, (0x007FE000 & 0xFFFF) # ori $t0, $t0, 0xe000 +/* 001070 70000470 40820000 */ mtc0 $v0, $0 +/* 001074 70000474 00031B02 */ srl $v1, $v1, 0xc +/* 001078 70000478 00031980 */ sll $v1, $v1, 6 +/* 00107C 7000047C 00661821 */ addu $v1, $v1, $a2 +/* 001080 70000480 40831000 */ mtc0 $v1, $2 +/* 001084 70000484 00042302 */ srl $a0, $a0, 0xc +/* 001088 70000488 00042180 */ sll $a0, $a0, 6 +/* 00108C 7000048C 00872021 */ addu $a0, $a0, $a3 +/* 001090 70000490 40841800 */ mtc0 $a0, $3 +/* 001094 70000494 00052342 */ srl $a0, $a1, 0xd +/* 001098 70000498 00042340 */ sll $a0, $a0, 0xd +/* 00109C 7000049C 40845000 */ mtc0 $a0, $10 +/* 0010A0 700004A0 40882800 */ mtc0 $t0, $5 +/* 0010A4 700004A4 00000000 */ nop +/* 0010A8 700004A8 42000002 */ tlbwi +/* 0010AC 700004AC 3C0A7000 */ lui $t2, %hi(init) # $t2, 0x7000 +/* 0010B0 700004B0 254A0510 */ addiu $t2, %lo(init) # addiu $t2, $t2, 0x510 +/* 0010B4 700004B4 01400008 */ jr $t2 +/* 0010B8 700004B8 00000000 */ nop +) + +/** + * Due to alignments the following functions are included here + * these could have been assembly originally, or more likely part + * of the code inserted by the custom makerom rare created + */ + +/** + *10BC 700004BC V0=80020D90: target address for 21990 (USA) + */ +u32 *get_csegmentSegmentStart(void) +{ + return &_csegmentSegmentStart; +} + +/** + *10C8 700004C8 V0=21990: ROM address of main compressed block (USA) + */ +u32 *get_cdataSegmentRomStart(void) +{ + return &_cdataSegmentRomStart; +} + +/** + *10D4 700004D4 V0=33590: ROM address of 70200000 RareZip ASM [33590-34B30 ROM] (USA) + */ +u32 *get_cdataSegmentRomEnd(void) +{ + return &_cdataSegmentRomEnd; +} + +/** + *10E0 700004E0 V0=33590: ROM address of 70200000 RareZip ASM [33590-34B30 ROM] (USA) + */ +u32 *get_rarezipSegmentRomStart(void) +{ + return &_rarezipSegmentRomStart; +} + +/** + *10EC 700004EC V0=34B30: ROM address of 7F- TLB routines (USA) + */ +u32 *get_rarezipSegmentRomEnd(void) +{ + return &_rarezipSegmentRomEnd; +} + +/** + * 10F8 700004F8 redirect to 7020141C: decompression routine + * accepts: A0=p->source, A1=p->target, A2=p->buffer + * sets A3=7020141C, then jumps to address + */ +GLOBAL_ASM( +glabel jump_decompressfile +/* 0010F8 700004F8 3C077020 */ lui $a3, %hi(decompress_entry) # $a3, 0x7020 +/* 0010FC 700004FC 24E7141C */ addiu $a3, %lo(decompress_entry) # addiu $a3, $a3, 0x141c +/* 001100 70000500 00E00008 */ jr $a3 +/* 001104 70000504 00000000 */ nop +) diff --git a/src/boot.h b/src/boot.h new file mode 100644 index 0000000..a1a8dbc --- /dev/null +++ b/src/boot.h @@ -0,0 +1,12 @@ +#ifndef _BOOT_H_ +#define _BOOT_H_ +#include + +u32 *get_csegmentSegmentStart(void); +u32 *get_cdataSegmentRomStart(void); +u32 *get_cdataSegmentRomEnd(void); +u32 *get_rarezipSegmentRomStart(void); +u32 *get_rarezipSegmentRomEnd(void); +u32 jump_decompressfile(u32 source, u32 target, u32 buffer); + +#endif diff --git a/src/bootcode.s b/src/bootcode.s new file mode 100644 index 0000000..dae7251 --- /dev/null +++ b/src/bootcode.s @@ -0,0 +1,899 @@ +# Super Mario 64 (J) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +/* 000040 00000000 40806800 */ mtc0 $zero, $13 +/* 000044 00000004 40804800 */ mtc0 $zero, $9 +/* 000048 00000008 40805800 */ mtc0 $zero, $11 +/* 00004C 0000000C 3C08A470 */ lui $t0, 0xa470 +/* 000050 00000010 25080000 */ addiu $t0, $t0, 0 +/* 000054 00000014 8D09000C */ lw $t1, 0xc($t0) +/* 000058 00000018 152000ED */ bnez $t1, .L000003D0 +/* 00005C 0000001C 00000000 */ nop +/* 000060 00000020 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 000064 00000024 AFB30000 */ sw $s3, ($sp) +/* 000068 00000028 AFB40004 */ sw $s4, 4($sp) +/* 00006C 0000002C AFB50008 */ sw $s5, 8($sp) +/* 000070 00000030 AFB6000C */ sw $s6, 0xc($sp) +/* 000074 00000034 AFB70010 */ sw $s7, 0x10($sp) +/* 000078 00000038 3C08A470 */ lui $t0, 0xa470 +/* 00007C 0000003C 25080000 */ addiu $t0, $t0, 0 +/* 000080 00000040 3C0AA3F8 */ lui $t2, %hi(0xA3F80004) # $t2, 0xa3f8 +/* 000084 00000044 3C0BA3F0 */ lui $t3, 0xa3f0 +/* 000088 00000048 3C0CA430 */ lui $t4, 0xa430 +/* 00008C 0000004C 258C0000 */ addiu $t4, $t4, 0 +/* 000090 00000050 34090040 */ ori $t1, $zero, 64 +/* 000094 00000054 AD090004 */ sw $t1, 4($t0) +/* 000098 00000058 24111F40 */ li $s1, 8000 +.L0000005C: +/* 00009C 0000005C 00000000 */ nop +/* 0000A0 00000060 2231FFFF */ addi $s1, $s1, -1 +/* 0000A4 00000064 1620FFFD */ bnez $s1, .L0000005C +/* 0000A8 00000068 00000000 */ nop +/* 0000AC 0000006C AD000008 */ sw $zero, 8($t0) +/* 0000B0 00000070 24090014 */ ori $t1, $zero, 20 +/* 0000B4 00000074 AD09000C */ sw $t1, 0xc($t0) +/* 0000B8 00000078 AD000000 */ sw $zero, ($t0) +/* 0000BC 0000007C 24110004 */ li $s1, 4 +.L00000080: +/* 0000C0 00000080 00000000 */ nop +/* 0000C4 00000084 2231FFFF */ addi $s1, $s1, -1 +/* 0000C8 00000088 1620FFFD */ bnez $s1, .L00000080 +/* 0000CC 0000008C 00000000 */ nop +/* 0000D0 00000090 3209000E */ ori $t1, $zero, 14 +/* 0000D4 00000094 AD090000 */ sw $t1, ($t0) +/* 0000D8 00000098 24110020 */ li $s1, 32 +.L0000009C: +/* 0000DC 0000009C 2231FFFF */ addi $s1, $s1, -1 +/* 0000E0 000000A0 1620FFFE */ bnez $s1, .L0000009C +/* 0000E4 000000A4 3409010F */ ori $t1, $zero, 271 +/* 0000E8 000000A8 AD890000 */ sw $t1, ($t4) +/* 0000EC 000000AC 3C091808 */ lui $t1, (0x18082838 >> 16) # lui $t1, 0x1808 +/* 0000F0 000000B0 35292838 */ ori $t1, (0x18082838 & 0xFFFF) # ori $t1, $t1, 0x2838 +/* 0000F4 000000B4 AD490008 */ sw $t1, %lo(0xA3F80008)($t2) +/* 0000F8 000000B8 AD400014 */ sw $zero, %lo(0xA3F80014)($t2) +/* 0000FC 000000BC 3C098000 */ lui $t1, 0x8000 +/* 000100 000000C0 AD490004 */ sw $t1, %lo(0xA3F80004)($t2) +/* 000104 000000C4 00006825 */ move $t5, $zero +/* 000108 000000C8 00007025 */ move $t6, $zero +/* 00010C 000000CC 3C0FA3F0 */ lui $t7, %hi(0xA3F00018) # $t7, 0xa3f0 +/* 000110 000000D0 0000C025 */ move $t8, $zero +/* 000114 000000D4 3C19A3F0 */ lui $t9, 0xa3f0 +/* 000118 000000D8 3C16A000 */ lui $s6, 0xa000 +/* 00011C 000000DC 0000B825 */ move $s7, $zero +/* 000120 000000E0 3C06A3F0 */ lui $a2, 0xa3f0 +/* 000124 000000E4 3C07A000 */ lui $a3, 0xa000 +/* 000128 000000E8 00009025 */ move $s2, $zero +/* 00012C 000000EC 3C14A000 */ lui $s4, 0xa000 +/* 000130 000000F0 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 000134 000000F4 03A0F025 */ move $fp, $sp +/* 000138 000000F8 3C10A430 */ lui $s0, %hi(0xA4300004) # $s0, 0xa430 +/* 00013C 000000FC 8E100004 */ lw $s0, %lo(0xA4300004)($s0) +/* 000140 00000100 3C110101 */ lui $s1, 0x0101 # $s1, 0x101 +/* 000144 00000104 26310101 */ addiu $s1, 0x0101 # addiu $s1, $s1, 0x101 +/* 000148 00000108 16110005 */ bne $s0, $s1, .L00000120 +/* 00014C 0000010C 00000000 */ nop +/* 000150 00000110 24100200 */ li $s0, 512 +/* 000154 00000114 35714000 */ ori $s1, $t3, 0x4000 +/* 000158 00000118 10000003 */ b .L00000128 +/* 00015C 0000011C 00000000 */ nop +.L00000120: +/* 000160 00000120 24100400 */ li $s0, 1024 +/* 000164 00000124 35718000 */ ori $s1, $t3, 0x8000 +.L00000128: +/* 000168 00000128 AE2E0004 */ sw $t6, 4($s1) +/* 00016C 0000012C 25F5000C */ addiu $s5, $t7, 0xc +/* 000170 00000130 0D0001DE */ jal func_04000778 +/* 000174 00000134 00000000 */ nop +/* 000178 00000138 10400038 */ beqz $v0, .L0000021C +/* 00017C 0000013C 00000000 */ nop +/* 000180 00000140 AFA20000 */ sw $v0, ($sp) +/* 000184 00000144 24092000 */ li $t1, 8192 +/* 000188 00000148 AD890000 */ sw $t1, ($t4) +/* 00018C 0000014C 8DEB0000 */ lw $t3, ($t7) +/* 000190 00000150 3C08F0FF */ lui $t0, 0xf0ff +/* 000194 00000154 01685824 */ and $t3, $t3, $t0 +/* 000198 00000158 AFAB0004 */ sw $t3, 4($sp) +/* 00019C 0000015C 23BD0008 */ addi $sp, $sp, 8 +/* 0001A0 00000160 24091000 */ li $t1, 4096 +/* 0001A4 00000164 AD890000 */ sw $t1, ($t4) +/* 0001A8 00000168 3C08B019 */ lui $t0, 0xb019 +/* 0001AC 0000016C 1568000C */ bne $t3, $t0, .L000001A0 +/* 0001B0 00000170 00000000 */ nop +/* 0001B4 00000174 3C080800 */ lui $t0, 0x800 +/* 0001B8 00000178 0308C020 */ add $t8, $t8, $t0 +/* 0001BC 0000017C 0330C820 */ add $t9, $t9, $s0 +/* 0001C0 00000180 0330C820 */ add $t9, $t9, $s0 +/* 0001C4 00000184 3C080020 */ lui $t0, 0x20 +/* 0001C8 00000188 02C8B020 */ add $s6, $s6, $t0 +/* 0001CC 0000018C 0288A020 */ add $s4, $s4, $t0 +/* 0001D0 00000190 00129040 */ sll $s2, $s2, 1 +/* 0001D4 00000194 22520001 */ addi $s2, $s2, 1 +/* 0001D8 00000198 10000003 */ b .L000001A8 +/* 0001DC 0000019C 00000000 */ nop +.L000001A0: +/* 0001E0 000001A0 3C080010 */ lui $t0, 0x10 +/* 0001E4 000001A4 0288A020 */ add $s4, $s4, $t0 +.L000001A8: +/* 0001E8 000001A8 24082000 */ li $t0, 8192 +/* 0001EC 000001AC AD880000 */ sw $t0, ($t4) +/* 0001F0 000001B0 8DE90024 */ lw $t1, %lo(0xA3F00024)($t7) +/* 0001F4 000001B4 8DFA0000 */ lw $k0, ($t7) +/* 0001F8 000001B8 24081000 */ li $t0, 4096 +/* 0001FC 000001BC AD880000 */ sw $t0, ($t4) +/* 000200 000001C0 3129FFFF */ andi $t1, $t1, 0xffff +/* 000204 000001C4 24080500 */ li $t0, 1280 +/* 000208 000001C8 15280009 */ bne $t1, $t0, .L000001F0 +/* 00020C 000001CC 00000000 */ nop +/* 000210 000001D0 3C1B0100 */ lui $k1, 0x100 +/* 000214 000001D4 035BD024 */ and $k0, $k0, $k1 +/* 000218 000001D8 17400005 */ bnez $k0, .L000001F0 +/* 00021C 000001DC 00000000 */ nop +/* 000220 000001E0 3C08101C */ lui $t0, (0x101C0A04 >> 16) # lui $t0, 0x101c +/* 000224 000001E4 35080A04 */ ori $t0, (0x101C0A04 & 0xFFFF) # ori $t0, $t0, 0xa04 +/* 000228 000001E8 ADE80018 */ sw $t0, %lo(0xA3F00018)($t7) +/* 00022C 000001EC 10000003 */ b .L000001FC +.L000001F0: +/* 000230 000001F0 3C08080C */ lui $t0, (0x080C1204 >> 16) # lui $t0, 0x80c +/* 000234 000001F4 35081204 */ ori $t0, (0x080C1204 & 0xFFFF) # ori $t0, $t0, 0x1204 +/* 000238 000001F8 ADE80018 */ sw $t0, %lo(0xA3F00018)($t7) +.L000001FC: +/* 00023C 000001FC 3C080800 */ lui $t0, 0x800 +/* 000240 00000200 01C87020 */ add $t6, $t6, $t0 +/* 000244 00000204 01F07820 */ add $t7, $t7, $s0 +/* 000248 00000208 01F07820 */ add $t7, $t7, $s0 +/* 00024C 0000020C 25AD0001 */ addiu $t5, $t5, 1 +/* 000250 00000210 2DA80008 */ sltiu $t0, $t5, 8 +/* 000254 00000214 1500FFC4 */ bnez $t0, .L00000128 +/* 000258 00000218 00000000 */ nop +.L0000021C: +/* 00025C 0000021C 3C08C400 */ lui $t0, 0xc400 +/* 000260 00000220 AD48000C */ sw $t0, %lo(0xA3F8000C)($t2) +/* 000264 00000224 3C088000 */ lui $t0, 0x8000 +/* 000268 00000228 AD480004 */ sw $t0, %lo(0xA3F80004)($t2) +/* 00026C 0000022C 03C0E825 */ move $sp, $fp +/* 000270 00000230 00001825 */ move $v1, $zero +.L00000234: +/* 000274 00000234 8FA90004 */ lw $t1, 4($sp) +/* 000278 00000238 3C08B009 */ lui $t0, 0xb009 +/* 00027C 0000023C 15280016 */ bne $t1, $t0, .L00000298 +/* 000280 00000240 00000000 */ nop +/* 000284 00000244 AE380004 */ sw $t8, 4($s1) +/* 000288 00000248 2735000C */ addiu $s5, $t9, 0xc +/* 00028C 0000024C 8FA40000 */ lw $a0, ($sp) +/* 000290 00000250 23BD0008 */ addi $sp, $sp, 8 +/* 000294 00000254 24050001 */ li $a1, 1 +/* 000298 00000258 0D000290 */ jal func_04000A40 +/* 00029C 0000025C 00000000 */ nop +/* 0002A0 00000260 8EC80000 */ lw $t0, ($s6) +/* 0002A4 00000264 3C080008 */ lui $t0, 8 +/* 0002A8 00000268 01164020 */ add $t0, $t0, $s6 +/* 0002AC 0000026C 8D090000 */ lw $t1, ($t0) +/* 0002B0 00000270 8EC80000 */ lw $t0, ($s6) +/* 0002B4 00000274 3C080008 */ lui $t0, 8 +/* 0002B8 00000278 01164020 */ add $t0, $t0, $s6 +/* 0002BC 0000027C 8D090000 */ lw $t1, ($t0) +/* 0002C0 00000280 3C080400 */ lui $t0, 0x400 +/* 0002C4 00000284 01C87020 */ add $t6, $t6, $t0 +/* 0002C8 00000288 0330C820 */ add $t9, $t9, $s0 +/* 0002CC 0000028C 3C080010 */ lui $t0, 0x10 +/* 0002D0 00000290 02C8B020 */ add $s6, $s6, $t0 +/* 0002D4 00000294 10000021 */ b .L0000031C +.L00000298: +/* 0002D8 00000298 AE370004 */ sw $s7, 4($s1) +/* 0002DC 0000029C 24D5000C */ addiu $s5, $a2, 0xc +/* 0002E0 000002A0 8FA40000 */ lw $a0, ($sp) +/* 0002E4 000002A4 23BD0008 */ addi $sp, $sp, 8 +/* 0002E8 000002A8 24050001 */ li $a1, 1 +/* 0002EC 000002AC 0D000290 */ jal func_04000A40 +/* 0002F0 000002B0 00000000 */ nop +/* 0002F4 000002B4 8CE80000 */ lw $t0, ($a3) +/* 0002F8 000002B8 3C080008 */ lui $t0, 8 +/* 0002FC 000002BC 01074020 */ add $t0, $t0, $a3 +/* 000300 000002C0 8D090000 */ lw $t1, ($t0) +/* 000304 000002C4 3C080010 */ lui $t0, 0x10 +/* 000308 000002C8 01074020 */ add $t0, $t0, $a3 +/* 00030C 000002CC 8D090000 */ lw $t1, ($t0) +/* 000310 000002D0 3C080018 */ lui $t0, 0x18 +/* 000314 000002D4 01074020 */ add $t0, $t0, $a3 +/* 000318 000002D8 8D090000 */ lw $t1, ($t0) +/* 00031C 000002DC 8CE80000 */ lw $t0, ($a3) +/* 000320 000002E0 3C080008 */ lui $t0, 8 +/* 000324 000002E4 01074020 */ add $t0, $t0, $a3 +/* 000328 000002E8 8D090000 */ lw $t1, ($t0) +/* 00032C 000002EC 3C080010 */ lui $t0, 0x10 +/* 000330 000002F0 01074020 */ add $t0, $t0, $a3 +/* 000334 000002F4 8D090000 */ lw $t1, ($t0) +/* 000338 000002F8 3C080018 */ lui $t0, 0x18 +/* 00033C 000002FC 01074020 */ add $t0, $t0, $a3 +/* 000340 00000300 8D090000 */ lw $t1, ($t0) +/* 000344 00000304 3C080800 */ lui $t0, 0x800 +/* 000348 00000308 02E8B820 */ add $s7, $s7, $t0 +/* 00034C 0000030C 00D03020 */ add $a2, $a2, $s0 +/* 000350 00000310 00D03020 */ add $a2, $a2, $s0 +/* 000354 00000314 3C080020 */ lui $t0, 0x20 +/* 000358 00000318 00E83820 */ add $a3, $a3, $t0 +.L0000031C: +/* 00035C 0000031C 24630001 */ addiu $v1, $v1, 1 +/* 000360 00000320 006D402A */ slt $t0, $v1, $t5 +/* 000364 00000324 1500FFC3 */ bnez $t0, .L00000234 +/* 000368 00000328 00000000 */ nop +/* 00036C 0000032C 3C0AA470 */ lui $t2, %hi(0xA4700010) # $t2, 0xa470 +/* 000370 00000330 001294C0 */ sll $s2, $s2, 0x13 +/* 000374 00000334 3C090006 */ lui $t1, (0x00063634 >> 16) # lui $t1, 6 +/* 000378 00000338 35293634 */ ori $t1, (0x00063634 & 0xFFFF) # ori $t1, $t1, 0x3634 +/* 00037C 0000033C 01324825 */ or $t1, $t1, $s2 +/* 000380 00000340 AD490010 */ sw $t1, %lo(0xA4700010)($t2) +/* 000384 00000344 8D490010 */ lw $t1, %lo(0xA4700010)($t2) +/* 000388 00000348 3C08A000 */ lui $t0, %hi(0xA0000018) # $t0, 0xa000 +/* 00038C 0000034C 35080300 */ ori $t0, (0xA0000300 & 0xFFFF) # ori $t0, $t0, 0x300 +/* 000390 00000350 3C090FFF */ lui $t1, (0x0FFFFFFF >> 16) # lui $t1, 0xfff +/* 000394 00000354 3529FFFF */ ori $t1, (0x0FFFFFFF & 0xFFFF) # ori $t1, $t1, 0xffff +/* 000398 00000358 02C9B024 */ and $s6, $s6, $t1 +/* 00039C 0000035C AD160018 */ sw $s6, %lo(0xA0000018)($t0) +/* 0003A0 00000360 03C0E825 */ move $sp, $fp +/* 0003A4 00000364 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0003A8 00000368 8FB30000 */ lw $s3, ($sp) +/* 0003AC 0000036C 8FB40004 */ lw $s4, 4($sp) +/* 0003B0 00000370 8FB50008 */ lw $s5, 8($sp) +/* 0003B4 00000374 8FB6000C */ lw $s6, 0xc($sp) +/* 0003B8 00000378 8FB70010 */ lw $s7, 0x10($sp) +/* 0003BC 0000037C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0003C0 00000380 3C088000 */ lui $t0, 0x8000 +/* 0003C4 00000384 25080000 */ addiu $t0, $t0, 0 +/* 0003C8 00000388 25094000 */ addiu $t1, $t0, 0x4000 +/* 0003CC 0000038C 2529FFE0 */ addiu $t1, $t1, -0x20 +/* 0003D0 00000390 4080E000 */ mtc0 $zero, $28 +/* 0003D4 00000394 4080E800 */ mtc0 $zero, $29 +.L00000398: +/* 0003D8 00000398 BD080000 */ cache 8, ($t0) +/* 0003DC 0000039C 0109082B */ sltu $at, $t0, $t1 +/* 0003E0 000003A0 1420FFFD */ bnez $at, .L00000398 +/* 0003E4 000003A4 25080020 */ addiu $t0, $t0, 0x20 +/* 0003E8 000003A8 3C088000 */ lui $t0, 0x8000 +/* 0003EC 000003AC 25080000 */ addiu $t0, $t0, 0 +/* 0003F0 000003B0 25092000 */ addiu $t1, $t0, 0x2000 +/* 0003F4 000003B4 2529FFF0 */ addiu $t1, $t1, -0x10 +.L000003B8: +/* 0003F8 000003B8 BD090000 */ cache 9, ($t0) +/* 0003FC 000003BC 0109082B */ sltu $at, $t0, $t1 +/* 000400 000003C0 1420FFFD */ bnez $at, .L000003B8 +/* 000404 000003C4 25080010 */ addiu $t0, $t0, 0x10 +/* 000408 000003C8 10000013 */ b .L00000418 +/* 00040C 000003CC 00000000 */ nop +.L000003D0: +/* 000410 000003D0 3C088000 */ lui $t0, 0x8000 +/* 000414 000003D4 25080000 */ addiu $t0, $t0, 0 +/* 000418 000003D8 25094000 */ addiu $t1, $t0, 0x4000 +/* 00041C 000003DC 2529FFE0 */ addiu $t1, $t1, -0x20 +/* 000420 000003E0 4080E000 */ mtc0 $zero, $28 +/* 000424 000003E4 4080E800 */ mtc0 $zero, $29 +.L000003E8: +/* 000428 000003E8 BD080000 */ cache 8, ($t0) +/* 00042C 000003EC 0109082B */ sltu $at, $t0, $t1 +/* 000430 000003F0 1420FFFD */ bnez $at, .L000003E8 +/* 000434 000003F4 25080020 */ addiu $t0, $t0, 0x20 +/* 000438 000003F8 3C088000 */ lui $t0, 0x8000 +/* 00043C 000003FC 25080000 */ addiu $t0, $t0, 0 +/* 000440 00000400 25092000 */ addiu $t1, $t0, 0x2000 +/* 000444 00000404 2529FFF0 */ addiu $t1, $t1, -0x10 +.L00000408: +/* 000448 00000408 BD010000 */ cache 1, ($t0) +/* 00044C 0000040C 0109082B */ sltu $at, $t0, $t1 +/* 000450 00000410 1420FFFD */ bnez $at, .L00000408 +/* 000454 00000414 25080010 */ addiu $t0, $t0, 0x10 +.L00000418: +/* 000458 00000418 3C0AA400 */ lui $t2, 0xa400 +/* 00045C 0000041C 254A0000 */ addiu $t2, $t2, 0 +/* 000460 00000420 3C0BFFF0 */ lui $t3, 0xfff0 +/* 000464 00000424 3C090010 */ lui $t1, 0x0010 # $t1, 0x10 +/* 000468 00000428 014B5024 */ and $t2, $t2, $t3 +/* 00046C 0000042C 3C08A400 */ lui $t0, %hi(0xA40004C0) # $t0, 0xa400 +/* 000470 00000430 2529FFFF */ addiu $t1, -1 # addiu $t1, $t1, -1 +/* 000474 00000434 3C0BA400 */ lui $t3, %hi(0xA4000774) # $t3, 0xa400 +/* 000478 00000438 250804C0 */ addiu $t0, %lo(0xA40004C0) # addiu $t0, $t0, 0x4c0 +/* 00047C 0000043C 256B0774 */ addiu $t3, %lo(0xA4000774) # addiu $t3, $t3, 0x774 +/* 000480 00000440 01094024 */ and $t0, $t0, $t1 +/* 000484 00000444 01695824 */ and $t3, $t3, $t1 +/* 000488 00000448 3C09A000 */ lui $t1, 0xa000 +/* 00048C 0000044C 010A4025 */ or $t0, $t0, $t2 +/* 000490 00000450 016A5825 */ or $t3, $t3, $t2 +/* 000494 00000454 25290000 */ addiu $t1, $t1, 0 +.L00000458: +/* 000498 00000458 8D0D0000 */ lw $t5, ($t0) +/* 00049C 0000045C 25080004 */ addiu $t0, $t0, 4 +/* 0004A0 00000460 010B082B */ sltu $at, $t0, $t3 +/* 0004A4 00000464 25290004 */ addiu $t1, $t1, 4 +/* 0004A8 00000468 1420FFFB */ bnez $at, .L00000458 +/* 0004AC 0000046C AD2DFFFC */ sw $t5, -4($t1) +/* 0004B0 00000470 3C0C8000 */ lui $t4, 0x8000 +/* 0004B4 00000474 258C0000 */ addiu $t4, $t4, 0 +/* 0004B8 00000478 01800008 */ jr $t4 +/* 0004BC 0000047C 00000000 */ nop +/* 0004C0 00000480 3C0BB000 */ lui $t3, %hi(0xB0000008) # $t3, 0xb000 +/* 0004C4 00000484 8D690008 */ lw $t1, %lo(0xB0000008)($t3) +/* 0004C8 00000488 3C0A1FFF */ lui $t2, (0x1FFFFFFF >> 16) # lui $t2, 0x1fff +/* 0004CC 0000048C 354AFFFF */ ori $t2, (0x1FFFFFFF & 0xFFFF) # ori $t2, $t2, 0xffff +/* 0004D0 00000490 3C01A460 */ lui $at, 0xa460 +/* 0004D4 00000494 012A4824 */ and $t1, $t1, $t2 +/* 0004D8 00000498 AC290000 */ sw $t1, ($at) +/* 0004DC 0000049C 3C08A460 */ lui $t0, %hi(0xA4600010) # $t0, 0xa460 +.L000004A0: +/* 0004E0 000004A0 8D080010 */ lw $t0, %lo(0xA4600010)($t0) +/* 0004E4 000004A4 31080002 */ andi $t0, $t0, 2 +/* 0004E8 000004A8 5500FFFD */ bnezl $t0, .L000004A0 +/* 0004EC 000004AC 3C08A460 */ lui $t0, 0xa460 +/* 0004F0 000004B0 24081000 */ li $t0, 4096 +/* 0004F4 000004B4 010B4020 */ add $t0, $t0, $t3 +/* 0004F8 000004B8 010A4024 */ and $t0, $t0, $t2 +/* 0004FC 000004BC 3C01A460 */ lui $at, %hi(0xA4600004) # $at, 0xa460 +/* 000500 000004C0 AC280004 */ sw $t0, %lo(0xA4600004)($at) +/* 000504 000004C4 3C0A0010 */ lui $t2, 0x0010 # $t2, 0x10 +/* 000508 000004C8 254AFFFF */ addiu $t2, 0xFFFF # addiu $t2, $t2, -1 +/* 00050C 000004CC 3C01A460 */ lui $at, %hi(0xA460000C) # $at, 0xa460 +/* 000510 000004D0 AC2A000C */ sw $t2, %lo(0xA460000C)($at) + +.L000004D4: +/* 000514 000004D4 00000000 */ nop +/* 000518 000004D8 00000000 */ nop +/* 00051C 000004DC 00000000 */ nop +/* 000520 000004E0 00000000 */ nop +/* 000524 000004E4 00000000 */ nop +/* 000528 000004E8 00000000 */ nop +/* 00052C 000004EC 00000000 */ nop +/* 000530 000004F0 00000000 */ nop +/* 000534 000004F4 00000000 */ nop +/* 000538 000004F8 00000000 */ nop +/* 00053C 000004FC 00000000 */ nop +/* 000540 00000500 00000000 */ nop +/* 000544 00000504 00000000 */ nop +/* 000548 00000508 00000000 */ nop +/* 00054C 0000050C 00000000 */ nop +/* 000550 00000510 00000000 */ nop +/* 000554 00000514 00000000 */ nop +/* 000558 00000518 00000000 */ nop +/* 00055C 0000051C 00000000 */ nop +/* 000560 00000520 00000000 */ nop +/* 000564 00000524 00000000 */ nop +/* 000568 00000528 00000000 */ nop +/* 00056C 0000052C 00000000 */ nop +/* 000570 00000530 00000000 */ nop +/* 000574 00000534 00000000 */ nop +/* 000578 00000538 00000000 */ nop +/* 00057C 0000053C 00000000 */ nop +/* 000580 00000540 00000000 */ nop +/* 000584 00000544 3C0BA460 */ lui $t3, %hi(0xA4600010) # $t3, 0xa460 +/* 000588 00000548 8D6B0010 */ lw $t3, %lo(0xA4600010)($t3) +/* 00058C 0000054C 316B0001 */ andi $t3, $t3, 1 +/* 000590 00000550 1560FFE0 */ bnez $t3, .L000004D4 +/* 000594 00000554 00000000 */ nop +/* 000598 00000558 3C0BB000 */ lui $t3, %hi(0xB0000008) # $t3, 0xb000 +/* 00059C 0000055C 8D640008 */ lw $a0, %lo(0xB0000008)($t3) +/* 0005A0 00000560 02C02825 */ move $a1, $s6 +/* 0005A4 00000564 3C015D58 */ lui $at, (0x5D588B65 >> 16) # lui $at, 0x5d58 +/* 0005A8 00000568 34218B65 */ ori $at, (0x5D588B65 & 0xFFFF) # ori $at, $at, 0x8b65 +/* 0005AC 0000056C 00A10019 */ multu $a1, $at +/* 0005B0 00000570 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0005B4 00000574 AFBF001C */ sw $ra, 0x1c($sp) +/* 0005B8 00000578 AFB00014 */ sw $s0, 0x14($sp) +/* 0005BC 0000057C 3C1F0010 */ lui $ra, 0x10 +/* 0005C0 00000580 00001825 */ move $v1, $zero +/* 0005C4 00000584 00004025 */ move $t0, $zero +/* 0005C8 00000588 00804825 */ move $t1, $a0 +/* 0005CC 0000058C 240D0020 */ li $t5, 32 +/* 0005D0 00000590 00001012 */ mflo $v0 +/* 0005D4 00000594 24420001 */ addiu $v0, $v0, 1 +/* 0005D8 00000598 00403825 */ move $a3, $v0 +/* 0005DC 0000059C 00405025 */ move $t2, $v0 +/* 0005E0 000005A0 00405825 */ move $t3, $v0 +/* 0005E4 000005A4 00408025 */ move $s0, $v0 +/* 0005E8 000005A8 00403025 */ move $a2, $v0 +/* 0005EC 000005AC 00406025 */ move $t4, $v0 +.L000005B0: +/* 0005F0 000005B0 8D220000 */ lw $v0, ($t1) +/* 0005F4 000005B4 00E21821 */ addu $v1, $a3, $v0 +/* 0005F8 000005B8 0067082B */ sltu $at, $v1, $a3 +/* 0005FC 000005BC 10200002 */ beqz $at, .L000005C8 +/* 000600 000005C0 00602825 */ move $a1, $v1 +/* 000604 000005C4 254A0001 */ addiu $t2, $t2, 1 +.L000005C8: +/* 000608 000005C8 3043001F */ andi $v1, $v0, 0x1f +/* 00060C 000005CC 01A37823 */ subu $t7, $t5, $v1 +/* 000610 000005D0 01E2C006 */ srlv $t8, $v0, $t7 +/* 000614 000005D4 00627004 */ sllv $t6, $v0, $v1 +/* 000618 000005D8 01D82025 */ or $a0, $t6, $t8 +/* 00061C 000005DC 00C2082B */ sltu $at, $a2, $v0 +/* 000620 000005E0 00A03825 */ move $a3, $a1 +/* 000624 000005E4 01625826 */ xor $t3, $t3, $v0 +/* 000628 000005E8 10200004 */ beqz $at, .L000005FC +/* 00062C 000005EC 02048021 */ addu $s0, $s0, $a0 +/* 000630 000005F0 00E2C826 */ xor $t9, $a3, $v0 +/* 000634 000005F4 10000002 */ b .L00000600 +/* 000638 000005F8 03263026 */ xor $a2, $t9, $a2 +.L000005FC: +/* 00063C 000005FC 00C43026 */ xor $a2, $a2, $a0 +.L00000600: +/* 000640 00000600 25080004 */ addiu $t0, $t0, 4 +/* 000644 00000604 00507826 */ xor $t7, $v0, $s0 +/* 000648 00000608 25290004 */ addiu $t1, $t1, 4 +/* 00064C 0000060C 151FFFE8 */ bne $t0, $ra, .L000005B0 +/* 000650 00000610 01EC6021 */ addu $t4, $t7, $t4 +/* 000654 00000614 00EA7026 */ xor $t6, $a3, $t2 +/* 000658 00000618 01CB3826 */ xor $a3, $t6, $t3 +/* 00065C 0000061C 0206C026 */ xor $t8, $s0, $a2 +/* 000660 00000620 030C8026 */ xor $s0, $t8, $t4 +/* 000664 00000624 3C0BB000 */ lui $t3, %hi(0xB0000014) # $t3, 0xb000 +/* 000668 00000628 8D680010 */ lw $t0, %lo(0xB0000010)($t3) +/* 00066C 0000062C 14E80006 */ bne $a3, $t0, .L00000648 +/* 000670 00000630 00000000 */ nop +/* 000674 00000634 8D680014 */ lw $t0, %lo(0xB0000014)($t3) +/* 000678 00000638 16080003 */ bne $s0, $t0, .L00000648 +/* 00067C 0000063C 00000000 */ nop +/* 000680 00000640 04110003 */ bal func_00000650 +/* 000684 00000644 00000000 */ nop +glabel func_00000648 +.L00000648: +/* 000688 00000648 0411FFFF */ bal func_00000648 +/* 00068C 0000064C 00000000 */ nop +glabel func_00000650 +/* 000690 00000650 3C09A408 */ lui $t1, 0xa408 +/* 000694 00000654 8D290000 */ lw $t1, ($t1) +/* 000698 00000658 8FB00014 */ lw $s0, 0x14($sp) +/* 00069C 0000065C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0006A0 00000660 11200006 */ beqz $t1, .L0000067C +/* 0006A4 00000664 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0006A8 00000668 240A0041 */ li $t2, 65 +/* 0006AC 0000066C 3C01A404 */ lui $at, %hi(0xA4040010) # $at, 0xa404 +/* 0006B0 00000670 AC2A0010 */ sw $t2, %lo(0xA4040010)($at) +/* 0006B4 00000674 3C01A408 */ lui $at, 0xa408 +/* 0006B8 00000678 AC200000 */ sw $zero, ($at) +.L0000067C: +/* 0006BC 0000067C 3C0B00AA */ lui $t3, (0x00AAAAAE >> 16) # lui $t3, 0xaa +/* 0006C0 00000680 356BAAAE */ ori $t3, (0x00AAAAAE & 0xFFFF) # ori $t3, $t3, 0xaaae +/* 0006C4 00000684 3C01A404 */ lui $at, %hi(0xA4040010) # $at, 0xa404 +/* 0006C8 00000688 AC2B0010 */ sw $t3, %lo(0xA4040010)($at) +/* 0006CC 0000068C 3C01A430 */ lui $at, %hi(0xA430000C) # $at, 0xa430 +/* 0006D0 00000690 24080555 */ li $t0, 1365 +/* 0006D4 00000694 AC28000C */ sw $t0, %lo(0xA430000C)($at) +/* 0006D8 00000698 3C01A480 */ lui $at, %hi(0xA4800018) # $at, 0xa480 +/* 0006DC 0000069C AC200018 */ sw $zero, %lo(0xA4800018)($at) +/* 0006E0 000006A0 3C01A450 */ lui $at, %hi(0xA450000C) # $at, 0xa450 +/* 0006E4 000006A4 AC20000C */ sw $zero, %lo(0xA450000C)($at) +/* 0006E8 000006A8 3C01A430 */ lui $at, 0xa430 +/* 0006EC 000006AC 24090800 */ li $t1, 2048 +/* 0006F0 000006B0 AC290000 */ sw $t1, ($at) +/* 0006F4 000006B4 24090002 */ li $t1, 2 +/* 0006F8 000006B8 3C01A460 */ lui $at, %hi(0xA4600010) # $at, 0xa460 +/* 0006FC 000006BC 3C08A000 */ lui $t0, %hi(0xA0000008) # $t0, 0xa000 +/* 000700 000006C0 35080300 */ ori $t0, (0xA0000300 & 0xFFFF) # ori $t0, $t0, 0x300 +/* 000704 000006C4 AC290010 */ sw $t1, %lo(0xA4600010)($at) +/* 000708 000006C8 AD170014 */ sw $s7, %lo(0xA0000014)($t0) +/* 00070C 000006CC AD15000C */ sw $s5, %lo(0xA000000C)($t0) +/* 000710 000006D0 AD130004 */ sw $s3, %lo(0xA0000004)($t0) +/* 000714 000006D4 12600004 */ beqz $s3, .L000006E8 +/* 000718 000006D8 AD140000 */ sw $s4, ($t0) +/* 00071C 000006DC 3C09A600 */ lui $t1, 0xa600 +/* 000720 000006E0 10000003 */ b .L000006F0 +/* 000724 000006E4 25290000 */ addiu $t1, $t1, 0 +.L000006E8: +/* 000728 000006E8 3C09B000 */ lui $t1, 0xb000 +/* 00072C 000006EC 25290000 */ addiu $t1, $t1, 0 +.L000006F0: +/* 000730 000006F0 AD090008 */ sw $t1, %lo(0xA0000008)($t0) +/* 000734 000006F4 3C08A400 */ lui $t0, 0xa400 +/* 000738 000006F8 25080000 */ addiu $t0, $t0, 0 +/* 00073C 000006FC 21091000 */ addi $t1, $t0, 0x1000 +.L00000700: +/* 000740 00000700 25080004 */ addiu $t0, $t0, 4 +/* 000744 00000704 1509FFFE */ bne $t0, $t1, .L00000700 +/* 000748 00000708 AD00FFFC */ sw $zero, -4($t0) +/* 00074C 0000070C 3C08A400 */ lui $t0, %hi(0xA4001000) # $t0, 0xa400 +/* 000750 00000710 25081000 */ addiu $t0, %lo(0xA4001000) # addiu $t0, $t0, 0x1000 +/* 000754 00000714 21091000 */ addi $t1, $t0, 0x1000 +.L00000718: +/* 000758 00000718 25080004 */ addiu $t0, $t0, 4 +/* 00075C 0000071C 1509FFFE */ bne $t0, $t1, .L00000718 +/* 000760 00000720 AD00FFFC */ sw $zero, -4($t0) +/* 000764 00000724 3C0BB000 */ lui $t3, %hi(0xB0000008) # $t3, 0xb000 +/* 000768 00000728 8D690008 */ lw $t1, %lo(0xB0000008)($t3) +/* 00076C 0000072C 01200008 */ jr $t1 +/* 000770 00000730 00000000 */ nop +/* 000774 00000734 00000000 */ nop +glabel func_04000778 +/* 000778 00000738 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 00077C 0000073C AFB00040 */ sw $s0, 0x40($sp) +/* 000780 00000740 AFB10044 */ sw $s1, 0x44($sp) +/* 000784 00000744 00008825 */ move $s1, $zero +/* 000788 00000748 00008025 */ move $s0, $zero +/* 00078C 0000074C AFA20000 */ sw $v0, ($sp) +/* 000790 00000750 AFA30004 */ sw $v1, 4($sp) +/* 000794 00000754 AFA40008 */ sw $a0, 8($sp) +/* 000798 00000758 AFA5000C */ sw $a1, 0xc($sp) +/* 00079C 0000075C AFA60010 */ sw $a2, 0x10($sp) +/* 0007A0 00000760 AFA70014 */ sw $a3, 0x14($sp) +/* 0007A4 00000764 AFA80018 */ sw $t0, 0x18($sp) +/* 0007A8 00000768 AFA9001C */ sw $t1, 0x1c($sp) +/* 0007AC 0000076C AFAA0020 */ sw $t2, 0x20($sp) +/* 0007B0 00000770 AFAB0024 */ sw $t3, 0x24($sp) +/* 0007B4 00000774 AFAC0028 */ sw $t4, 0x28($sp) +/* 0007B8 00000778 AFAD002C */ sw $t5, 0x2c($sp) +/* 0007BC 0000077C AFAE0030 */ sw $t6, 0x30($sp) +/* 0007C0 00000780 AFAF0034 */ sw $t7, 0x34($sp) +/* 0007C4 00000784 AFB80038 */ sw $t8, 0x38($sp) +/* 0007C8 00000788 AFB9003C */ sw $t9, 0x3c($sp) +/* 0007CC 0000078C AFB20048 */ sw $s2, 0x48($sp) +/* 0007D0 00000790 AFB3004C */ sw $s3, 0x4c($sp) +/* 0007D4 00000794 AFB40050 */ sw $s4, 0x50($sp) +/* 0007D8 00000798 AFB50054 */ sw $s5, 0x54($sp) +/* 0007DC 0000079C AFB60058 */ sw $s6, 0x58($sp) +/* 0007E0 000007A0 AFB7005C */ sw $s7, 0x5c($sp) +/* 0007E4 000007A4 AFBE0060 */ sw $fp, 0x60($sp) +/* 0007E8 000007A8 AFBF0064 */ sw $ra, 0x64($sp) +.L000007AC: +/* 0007EC 000007AC 0D000220 */ jal func_04000880 +/* 0007F0 000007B0 00000000 */ nop +/* 0007F4 000007B4 26100001 */ addiu $s0, $s0, 1 +/* 0007F8 000007B8 2A090004 */ slti $t1, $s0, 4 +/* 0007FC 000007BC 1520FFFB */ bnez $t1, .L000007AC +/* 000800 000007C0 02228821 */ addu $s1, $s1, $v0 +/* 000804 000007C4 00112082 */ srl $a0, $s1, 2 +/* 000808 000007C8 0D000290 */ jal func_04000A40 +/* 00080C 000007CC 24050001 */ li $a1, 1 +/* 000810 000007D0 8FBF0064 */ lw $ra, 0x64($sp) +/* 000814 000007D4 00111082 */ srl $v0, $s1, 2 +/* 000818 000007D8 8FB10044 */ lw $s1, 0x44($sp) +/* 00081C 000007DC 8FA30004 */ lw $v1, 4($sp) +/* 000820 000007E0 8FA40008 */ lw $a0, 8($sp) +/* 000824 000007E4 8FA5000C */ lw $a1, 0xc($sp) +/* 000828 000007E8 8FA60010 */ lw $a2, 0x10($sp) +/* 00082C 000007EC 8FA70014 */ lw $a3, 0x14($sp) +/* 000830 000007F0 8FA80018 */ lw $t0, 0x18($sp) +/* 000834 000007F4 8FA9001C */ lw $t1, 0x1c($sp) +/* 000838 000007F8 8FAA0020 */ lw $t2, 0x20($sp) +/* 00083C 000007FC 8FAB0024 */ lw $t3, 0x24($sp) +/* 000840 00000800 8FAC0028 */ lw $t4, 0x28($sp) +/* 000844 00000804 8FAD002C */ lw $t5, 0x2c($sp) +/* 000848 00000808 8FAE0030 */ lw $t6, 0x30($sp) +/* 00084C 0000080C 8FAF0034 */ lw $t7, 0x34($sp) +/* 000850 00000810 8FB80038 */ lw $t8, 0x38($sp) +/* 000854 00000814 8FB9003C */ lw $t9, 0x3c($sp) +/* 000858 00000818 8FB00040 */ lw $s0, 0x40($sp) +/* 00085C 0000081C 8FB20048 */ lw $s2, 0x48($sp) +/* 000860 00000820 8FB3004C */ lw $s3, 0x4c($sp) +/* 000864 00000824 8FB40050 */ lw $s4, 0x50($sp) +/* 000868 00000828 8FB50054 */ lw $s5, 0x54($sp) +/* 00086C 0000082C 8FB60058 */ lw $s6, 0x58($sp) +/* 000870 00000830 8FB7005C */ lw $s7, 0x5c($sp) +/* 000874 00000834 8FBE0060 */ lw $fp, 0x60($sp) +/* 000878 00000838 03E00008 */ jr $ra +/* 00087C 0000083C 27BD00A0 */ addiu $sp, $sp, 0xa0 + +glabel func_04000880 +/* 000880 00000840 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 000884 00000844 AFBF001C */ sw $ra, 0x1c($sp) +/* 000888 00000848 00004825 */ move $t1, $zero +/* 00088C 0000084C 00005825 */ move $t3, $zero +/* 000890 00000850 00006025 */ move $t4, $zero +.L00000854: +/* 000894 00000854 299A0040 */ slti $k0, $t4, 0x40 +/* 000898 00000858 53400018 */ beql $k0, $zero, .L000008BC +/* 00089C 0000085C 00001025 */ move $v0, $zero +/* 0008A0 00000860 0D000243 */ jal func_0400090C +/* 0008A4 00000864 01802025 */ move $a0, $t4 +/* 0008A8 00000868 58400008 */ blezl $v0, .L0000088C +/* 0008AC 0000086C 293A0050 */ slti $k0, $t1, 0x50 +/* 0008B0 00000870 0049D023 */ subu $k0, $v0, $t1 +/* 0008B4 00000874 034C0019 */ multu $k0, $t4 +/* 0008B8 00000878 00404825 */ move $t1, $v0 +/* 0008BC 0000087C 0000D012 */ mflo $k0 +/* 0008C0 00000880 017A5821 */ addu $t3, $t3, $k0 +/* 0008C4 00000884 00000000 */ nop +/* 0008C8 00000888 293A0050 */ slti $k0, $t1, 0x50 +.L0000088C: +/* 0008CC 0000088C 1740FFF1 */ bnez $k0, .L00000854 +/* 0008D0 00000890 258C0001 */ addiu $t4, $t4, 1 +/* 0008D4 00000894 000B2080 */ sll $a0, $t3, 2 +/* 0008D8 00000898 008B2023 */ subu $a0, $a0, $t3 +/* 0008DC 0000089C 00042080 */ sll $a0, $a0, 2 +/* 0008E0 000008A0 008B2023 */ subu $a0, $a0, $t3 +/* 0008E4 000008A4 00042040 */ sll $a0, $a0, 1 +/* 0008E8 000008A8 0D000260 */ jal func_04000980 +/* 0008EC 000008AC 2484FC90 */ addiu $a0, $a0, -0x370 +/* 0008F0 000008B0 10000003 */ b .L000008C0 +/* 0008F4 000008B4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0008F8 000008B8 00001025 */ move $v0, $zero +.L000008BC: +/* 0008FC 000008BC 8FBF001C */ lw $ra, 0x1c($sp) +.L000008C0: +/* 000900 000008C0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 000904 000008C4 03E00008 */ jr $ra +/* 000908 000008C8 00000000 */ nop + +glabel func_0400090C +/* 00090C 000008CC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 000910 000008D0 AFBF001C */ sw $ra, 0x1c($sp) +/* 000914 000008D4 00001025 */ move $v0, $zero +/* 000918 000008D8 0D000290 */ jal func_04000A40 +/* 00091C 000008DC 24050002 */ li $a1, 2 +/* 000920 000008E0 0000F025 */ move $fp, $zero +/* 000924 000008E4 241AFFFF */ li $k0, -1 +.L000008E8: +/* 000928 000008E8 AE9A0004 */ sw $k0, 4($s4) +/* 00092C 000008EC 8E830004 */ lw $v1, 4($s4) +/* 000930 000008F0 AE9A0000 */ sw $k0, ($s4) +/* 000934 000008F4 AE9A0000 */ sw $k0, ($s4) +/* 000938 000008F8 0000E025 */ move $gp, $zero +/* 00093C 000008FC 00031C02 */ srl $v1, $v1, 0x10 +.L00000900: +/* 000940 00000900 307A0001 */ andi $k0, $v1, 1 +/* 000944 00000904 53400003 */ beql $k0, $zero, .L00000914 +/* 000948 00000908 279C0001 */ addiu $gp, $gp, 1 +/* 00094C 0000090C 24420001 */ addiu $v0, $v0, 1 +/* 000950 00000910 279C0001 */ addiu $gp, $gp, 1 +.L00000914: +/* 000954 00000914 2B9A0008 */ slti $k0, $gp, 8 +/* 000958 00000918 1740FFF9 */ bnez $k0, .L00000900 +/* 00095C 0000091C 00031842 */ srl $v1, $v1, 1 +/* 000960 00000920 27DE0001 */ addiu $fp, $fp, 1 +/* 000964 00000924 2BDA000A */ slti $k0, $fp, 0xa +/* 000968 00000928 5740FFEF */ bnezl $k0, .L000008E8 +/* 00096C 0000092C 241AFFFF */ li $k0, -1 +/* 000970 00000930 8FBF001C */ lw $ra, 0x1c($sp) +/* 000974 00000934 27BD0028 */ addiu $sp, $sp, 0x28 +/* 000978 00000938 03E00008 */ jr $ra +/* 00097C 0000093C 00000000 */ nop +glabel func_04000980 +/* 000980 00000940 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 000984 00000944 AFBF001C */ sw $ra, 0x1c($sp) +/* 000988 00000948 AFA40020 */ sw $a0, 0x20($sp) +/* 00098C 0000094C A3A00027 */ sb $zero, 0x27($sp) +/* 000990 00000950 00004025 */ move $t0, $zero +/* 000994 00000954 00005025 */ move $t2, $zero +/* 000998 00000958 340DC800 */ li $t5, 51200 +/* 00099C 0000095C 00007025 */ move $t6, $zero +/* 0009A0 00000960 29DA0040 */ slti $k0, $t6, 0x40 +.L00000964: +/* 0009A4 00000964 57400004 */ bnezl $k0, .L00000978 +/* 0009A8 00000968 01C02025 */ move $a0, $t6 +/* 0009AC 0000096C 10000020 */ b .L000009F0 +/* 0009B0 00000970 00001025 */ move $v0, $zero +/* 0009B4 00000974 01C02025 */ move $a0, $t6 +.L00000978: +/* 0009B8 00000978 0D000290 */ jal func_04000A40 +/* 0009BC 0000097C 24050001 */ li $a1, 1 +/* 0009C0 00000980 0D0002B4 */ jal func_04000AD0 +/* 0009C4 00000984 27A40027 */ addiu $a0, $sp, 0x27 +/* 0009C8 00000988 0D0002B4 */ jal func_04000AD0 +/* 0009CC 0000098C 27A40027 */ addiu $a0, $sp, 0x27 +/* 0009D0 00000990 93BA0027 */ lbu $k0, 0x27($sp) +/* 0009D4 00000994 241B0320 */ li $k1, 800 +/* 0009D8 00000998 8FA40020 */ lw $a0, 0x20($sp) +/* 0009DC 0000099C 035B0019 */ multu $k0, $k1 +/* 0009E0 000009A0 00004012 */ mflo $t0 +/* 0009E4 000009A4 0104D023 */ subu $k0, $t0, $a0 +/* 0009E8 000009A8 07430003 */ bgezl $k0, .L000009B8 +/* 0009EC 000009AC 034DD82A */ slt $k1, $k0, $t5 +/* 0009F0 000009B0 0088D023 */ subu $k0, $a0, $t0 +/* 0009F4 000009B4 034DD82A */ slt $k1, $k0, $t5 +.L000009B8: +/* 0009F8 000009B8 53600004 */ beql $k1, $zero, .L000009CC +/* 0009FC 000009BC 8FA40020 */ lw $a0, 0x20($sp) +/* 000A00 000009C0 03406825 */ move $t5, $k0 +/* 000A04 000009C4 01C05025 */ move $t2, $t6 +/* 000A08 000009C8 8FA40020 */ lw $a0, 0x20($sp) +.L000009CC: +/* 000A0C 000009CC 0104D82A */ slt $k1, $t0, $a0 +/* 000A10 000009D0 53600006 */ beql $k1, $zero, .L000009EC +/* 000A14 000009D4 014E1021 */ addu $v0, $t2, $t6 +/* 000A18 000009D8 25CE0001 */ addiu $t6, $t6, 1 +/* 000A1C 000009DC 29DB0041 */ slti $k1, $t6, 0x41 +/* 000A20 000009E0 5760FFE0 */ bnezl $k1, .L00000964 +/* 000A24 000009E4 29DA0040 */ slti $k0, $t6, 0x40 +/* 000A28 000009E8 014E1021 */ addu $v0, $t2, $t6 +.L000009EC: +/* 000A2C 000009EC 00021042 */ srl $v0, $v0, 1 +.L000009F0: +/* 000A30 000009F0 8FBF001C */ lw $ra, 0x1c($sp) +/* 000A34 000009F4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 000A38 000009F8 03E00008 */ jr $ra +/* 000A3C 000009FC 00000000 */ nop + +glabel func_04000A40 +/* 000A40 00000A00 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 000A44 00000A04 308400FF */ andi $a0, $a0, 0xff +/* 000A48 00000A08 241B0001 */ li $k1, 1 +/* 000A4C 00000A0C 3884003F */ xori $a0, $a0, 0x3f +/* 000A50 00000A10 AFBF001C */ sw $ra, 0x1c($sp) +/* 000A54 00000A14 14BB0003 */ bne $a1, $k1, .L00000A24 +/* 000A58 00000A18 3C0F4600 */ lui $t7, 0x4600 +/* 000A5C 00000A1C 3C1A8000 */ lui $k0, 0x8000 +/* 000A60 00000A20 01FA7825 */ or $t7, $t7, $k0 +.L00000A24: +/* 000A64 00000A24 309A0001 */ andi $k0, $a0, 1 +/* 000A68 00000A28 001AD180 */ sll $k0, $k0, 6 +/* 000A6C 00000A2C 01FA7825 */ or $t7, $t7, $k0 +/* 000A70 00000A30 309A0002 */ andi $k0, $a0, 2 +/* 000A74 00000A34 001AD340 */ sll $k0, $k0, 0xd +/* 000A78 00000A38 01FA7825 */ or $t7, $t7, $k0 +/* 000A7C 00000A3C 309A0004 */ andi $k0, $a0, 4 +/* 000A80 00000A40 001AD500 */ sll $k0, $k0, 0x14 +/* 000A84 00000A44 01FA7825 */ or $t7, $t7, $k0 +/* 000A88 00000A48 309A0008 */ andi $k0, $a0, 8 +/* 000A8C 00000A4C 001AD100 */ sll $k0, $k0, 4 +/* 000A90 00000A50 01FA7825 */ or $t7, $t7, $k0 +/* 000A94 00000A54 309A0010 */ andi $k0, $a0, 0x10 +/* 000A98 00000A58 001AD2C0 */ sll $k0, $k0, 0xb +/* 000A9C 00000A5C 01FA7825 */ or $t7, $t7, $k0 +/* 000AA0 00000A60 309A0020 */ andi $k0, $a0, 0x20 +/* 000AA4 00000A64 001AD480 */ sll $k0, $k0, 0x12 +/* 000AA8 00000A68 01FA7825 */ or $t7, $t7, $k0 +/* 000AAC 00000A6C 241B0001 */ li $k1, 1 +/* 000AB0 00000A70 14BB0003 */ bne $a1, $k1, .L00000A80 +/* 000AB4 00000A74 AEAF0000 */ sw $t7, ($s5) +/* 000AB8 00000A78 3C1AA430 */ lui $k0, 0xa430 +/* 000ABC 00000A7C AF400000 */ sw $zero, ($k0) +.L00000A80: +/* 000AC0 00000A80 8FBF001C */ lw $ra, 0x1c($sp) +/* 000AC4 00000A84 27BD0028 */ addiu $sp, $sp, 0x28 +/* 000AC8 00000A88 03E00008 */ jr $ra +/* 000ACC 00000A8C 00000000 */ nop + +glabel func_04000AD0 +/* 000AD0 00000A90 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 000AD4 00000A94 AFBF001C */ sw $ra, 0x1c($sp) +/* 000AD8 00000A98 241A2000 */ li $k0, 8192 +/* 000ADC 00000A9C 3C1BA430 */ lui $k1, 0xa430 +/* 000AE0 00000AA0 AF7A0000 */ sw $k0, ($k1) +/* 000AE4 00000AA4 0000F025 */ move $fp, $zero +/* 000AE8 00000AA8 8EBE0000 */ lw $fp, ($s5) +/* 000AEC 00000AAC 241A1000 */ li $k0, 4096 +/* 000AF0 00000AB0 AF7A0000 */ sw $k0, ($k1) +/* 000AF4 00000AB4 241B0040 */ li $k1, 64 +/* 000AF8 00000AB8 037ED824 */ and $k1, $k1, $fp +/* 000AFC 00000ABC 001BD982 */ srl $k1, $k1, 6 +/* 000B00 00000AC0 0000D025 */ move $k0, $zero +/* 000B04 00000AC4 035BD025 */ or $k0, $k0, $k1 +/* 000B08 00000AC8 241B4000 */ li $k1, 16384 +/* 000B0C 00000ACC 037ED824 */ and $k1, $k1, $fp +/* 000B10 00000AD0 001BDB42 */ srl $k1, $k1, 0xd +/* 000B14 00000AD4 035BD025 */ or $k0, $k0, $k1 +/* 000B18 00000AD8 3C1B0040 */ lui $k1, 0x40 +/* 000B1C 00000ADC 037ED824 */ and $k1, $k1, $fp +/* 000B20 00000AE0 001BDD02 */ srl $k1, $k1, 0x14 +/* 000B24 00000AE4 035BD025 */ or $k0, $k0, $k1 +/* 000B28 00000AE8 241B0080 */ li $k1, 128 +/* 000B2C 00000AEC 037ED824 */ and $k1, $k1, $fp +/* 000B30 00000AF0 001BD902 */ srl $k1, $k1, 4 +/* 000B34 00000AF4 035BD025 */ or $k0, $k0, $k1 +/* 000B38 00000AF8 341B8000 */ li $k1, 32768 +/* 000B3C 00000AFC 037ED824 */ and $k1, $k1, $fp +/* 000B40 00000B00 001BDAC2 */ srl $k1, $k1, 0xb +/* 000B44 00000B04 035BD025 */ or $k0, $k0, $k1 +/* 000B48 00000B08 3C1B0080 */ lui $k1, 0x80 +/* 000B4C 00000B0C 037ED824 */ and $k1, $k1, $fp +/* 000B50 00000B10 001BDC82 */ srl $k1, $k1, 0x12 +/* 000B54 00000B14 035BD025 */ or $k0, $k0, $k1 +/* 000B58 00000B18 A09A0000 */ sb $k0, ($a0) +/* 000B5C 00000B1C 8FBF001C */ lw $ra, 0x1c($sp) +/* 000B60 00000B20 27BD0028 */ addiu $sp, $sp, 0x28 +/* 000B64 00000B24 03E00008 */ jr $ra +/* 000B68 00000B28 00000000 */ nop +/* 000B6C 00000B2C 00000000 */ nop + +glabel ipl3_font +/* replace me with converted images */ +.byte 0x02, 0x00, 0x10, 0x01, 0x40, 0x0a, 0x00, 0x88, 0x04, 0x40, 0x22 +.byte 0x02, 0x08, 0x10, 0x41, 0xff, 0x08, 0x08, 0x40, 0x44, 0x01, 0x20 +.byte 0x08, 0x7f, 0x02, 0x04, 0x10, 0x10, 0x80, 0x84, 0x04, 0x20, 0x41 +.byte 0xfe, 0x08, 0x08, 0x40, 0x22, 0x01, 0x10, 0x08, 0x80, 0x44, 0x04 +.byte 0x3f, 0xc0, 0x07, 0x00, 0xc6, 0x08, 0x08, 0x80, 0x24, 0x01, 0x40 +.byte 0x02, 0x00, 0x10, 0x00, 0x80, 0x02, 0x00, 0x90, 0x04, 0x40, 0x41 +.byte 0x8c, 0x03, 0x80, 0x7e, 0x02, 0x0c, 0x10, 0x10, 0x80, 0x44, 0x02 +.byte 0x20, 0x09, 0x00, 0x48, 0x02, 0x40, 0x12, 0x01, 0x10, 0x08, 0x80 +.byte 0x84, 0x18, 0x3f, 0x00, 0x7f, 0xe2, 0x00, 0x10, 0x00, 0x80, 0x04 +.byte 0x00, 0x20, 0x01, 0xff, 0x08, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00 +.byte 0x80, 0x04, 0x00, 0x3f, 0xf0, 0x7f, 0xe2, 0x00, 0x10, 0x00, 0x80 +.byte 0x04, 0x00, 0x20, 0x01, 0xff, 0x08, 0x00, 0x40, 0x02, 0x00, 0x10 +.byte 0x00, 0x80, 0x04, 0x00, 0x20, 0x00, 0x07, 0x00, 0xc6, 0x08, 0x08 +.byte 0x80, 0x24, 0x01, 0x40, 0x02, 0x00, 0x10, 0x00, 0x83, 0xf2, 0x00 +.byte 0x90, 0x04, 0x40, 0x61, 0x8d, 0x03, 0x88, 0x40, 0x12, 0x00, 0x90 +.byte 0x04, 0x80, 0x24, 0x01, 0x20, 0x09, 0xff, 0xc8, 0x02, 0x40, 0x12 +.byte 0x00, 0x90, 0x04, 0x80, 0x24, 0x01, 0x20, 0x08, 0x07, 0x00, 0x10 +.byte 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02 +.byte 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x03, 0x80, 0x00, 0x40 +.byte 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08 +.byte 0x00, 0x42, 0x02, 0x10, 0x10, 0x80, 0x82, 0x08, 0x0f, 0x80, 0x40 +.byte 0x22, 0x02, 0x10, 0x20, 0x82, 0x04, 0x20, 0x22, 0x01, 0x20, 0x0a +.byte 0x80, 0x62, 0x02, 0x08, 0x10, 0x20, 0x80, 0x84, 0x02, 0x20, 0x08 +.byte 0x40, 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00 +.byte 0x08, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x3f +.byte 0xf0, 0x80, 0x0c, 0x00, 0x70, 0x07, 0x40, 0x5a, 0x02, 0xc8, 0x26 +.byte 0x41, 0x31, 0x11, 0x88, 0x8c, 0x28, 0x61, 0x43, 0x04, 0x18, 0x20 +.byte 0xc0, 0x04, 0x40, 0x23, 0x01, 0x14, 0x08, 0xa0, 0x44, 0x82, 0x22 +.byte 0x11, 0x10, 0x88, 0x44, 0x42, 0x22, 0x09, 0x10, 0x28, 0x81, 0x44 +.byte 0x06, 0x20, 0x10, 0x0f, 0x01, 0x86, 0x10, 0x08, 0x80, 0x48, 0x01 +.byte 0x40, 0x0a, 0x00, 0x50, 0x02, 0x80, 0x14, 0x00, 0x90, 0x08, 0x80 +.byte 0x43, 0x0c, 0x07, 0x80, 0x7f, 0x82, 0x02, 0x10, 0x08, 0x80, 0x44 +.byte 0x02, 0x20, 0x11, 0x01, 0x0f, 0xf0, 0x40, 0x02, 0x00, 0x10, 0x00 +.byte 0x80, 0x04, 0x00, 0x20, 0x00, 0x0f, 0x01, 0x86, 0x10, 0x08, 0x80 +.byte 0x48, 0x01, 0x40, 0x0a, 0x00, 0x50, 0x02, 0x80, 0x14, 0x10, 0x90 +.byte 0x48, 0x81, 0x43, 0x0c, 0x07, 0x90, 0x7f, 0x82, 0x02, 0x10, 0x08 +.byte 0x80, 0x44, 0x02, 0x20, 0x21, 0xfe, 0x08, 0x20, 0x40, 0x82, 0x04 +.byte 0x10, 0x10, 0x80, 0x84, 0x02, 0x20, 0x10, 0x1f, 0x81, 0x02, 0x10 +.byte 0x08, 0x80, 0x44, 0x00, 0x10, 0x00, 0x70, 0x00, 0x70, 0x00, 0x40 +.byte 0x01, 0x10, 0x08, 0x80, 0x42, 0x04, 0x0f, 0xc0, 0x7f, 0xf0, 0x10 +.byte 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02 +.byte 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x40, 0x22 +.byte 0x01, 0x10, 0x08, 0x80, 0x44, 0x02, 0x20, 0x11, 0x00, 0x88, 0x04 +.byte 0x40, 0x22, 0x01, 0x08, 0x10, 0x40, 0x81, 0x08, 0x07, 0x80, 0x40 +.byte 0x12, 0x00, 0x88, 0x08, 0x40, 0x42, 0x02, 0x08, 0x20, 0x41, 0x01 +.byte 0x10, 0x08, 0x80, 0x44, 0x01, 0x40, 0x0a, 0x00, 0x20, 0x01, 0x00 +.byte 0x82, 0x0c, 0x10, 0x60, 0x82, 0x8a, 0x24, 0x51, 0x22, 0x89, 0x14 +.byte 0x45, 0x14, 0x28, 0xa1, 0x45, 0x0a, 0x28, 0x20, 0x81, 0x04, 0x08 +.byte 0x20, 0x40, 0x11, 0x01, 0x04, 0x10, 0x20, 0x80, 0x88, 0x02, 0x80 +.byte 0x08, 0x00, 0x40, 0x05, 0x00, 0x44, 0x04, 0x10, 0x20, 0x82, 0x02 +.byte 0x20, 0x08, 0x40, 0x11, 0x01, 0x08, 0x08, 0x20, 0x80, 0x88, 0x04 +.byte 0x40, 0x14, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x00 +.byte 0x20, 0x01, 0x00, 0x7f, 0xe0, 0x01, 0x00, 0x10, 0x01, 0x00, 0x08 +.byte 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x04, 0x00, 0x40 +.byte 0x04, 0x00, 0x3f, 0xf0, 0x0f, 0x80, 0x82, 0x08, 0x08, 0x40, 0x42 +.byte 0x02, 0x10, 0x10, 0x80, 0x84, 0x04, 0x20, 0x21, 0x01, 0x08, 0x08 +.byte 0x40, 0x41, 0x04, 0x07, 0xc0, 0x02, 0x00, 0x30, 0x02, 0x80, 0x04 +.byte 0x00, 0x20, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00 +.byte 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x0f, 0x00, 0x84, 0x08, 0x10 +.byte 0x40, 0x80, 0x04, 0x00, 0x20, 0x02, 0x00, 0x20, 0x02, 0x00, 0x20 +.byte 0x02, 0x00, 0x20, 0x02, 0x00, 0x1f, 0xe0, 0x0f, 0x00, 0x84, 0x08 +.byte 0x10, 0x40, 0x80, 0x04, 0x00, 0x40, 0x1c, 0x00, 0x10, 0x00, 0x40 +.byte 0x02, 0x08, 0x10, 0x40, 0x81, 0x08, 0x07, 0x80, 0x01, 0x00, 0x18 +.byte 0x00, 0xc0, 0x0a, 0x00, 0x90, 0x04, 0x80, 0x44, 0x04, 0x20, 0x21 +.byte 0x02, 0x08, 0x1f, 0xf8, 0x02, 0x00, 0x10, 0x00, 0x80, 0x1f, 0x81 +.byte 0x00, 0x08, 0x00, 0x40, 0x02, 0x00, 0x17, 0x80, 0xc2, 0x04, 0x08 +.byte 0x00, 0x40, 0x02, 0x08, 0x10, 0x40, 0x81, 0x08, 0x07, 0x80, 0x0f +.byte 0x00, 0x84, 0x08, 0x10, 0x40, 0x82, 0x00, 0x10, 0x00, 0xbc, 0x06 +.byte 0x10, 0x20, 0x41, 0x02, 0x08, 0x10, 0x40, 0x81, 0x08, 0x07, 0x80 +.byte 0x3f, 0xc0, 0x02, 0x00, 0x20, 0x01, 0x00, 0x10, 0x00, 0x80, 0x04 +.byte 0x00, 0x40, 0x02, 0x00, 0x10, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02 +.byte 0x00, 0x0f, 0x00, 0x84, 0x08, 0x10, 0x40, 0x82, 0x04, 0x08, 0x40 +.byte 0x3c, 0x02, 0x10, 0x20, 0x41, 0x02, 0x08, 0x10, 0x40, 0x81, 0x08 +.byte 0x07, 0x80, 0x0f, 0x00, 0x84, 0x08, 0x10, 0x40, 0x82, 0x04, 0x10 +.byte 0x20, 0x43, 0x01, 0xe8, 0x00, 0x40, 0x02, 0x08, 0x10, 0x40, 0x81 +.byte 0x08, 0x07, 0x80, 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20 +.byte 0x01, 0x00, 0x08, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00 +.byte 0x00, 0x20, 0x01, 0x00, 0xd8, 0x06, 0xc0, 0x12, 0x01, 0x20, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x22, 0x01, 0x10, 0x08 +.byte 0x87, 0xff, 0x04, 0x40, 0x22, 0x01, 0x10, 0x08, 0x83, 0xff, 0x84 +.byte 0x40, 0x22, 0x01, 0x10, 0x08, 0x80, 0xc0, 0x06, 0x00, 0x10, 0x01 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x80, 0x44, 0x41, 0x24, 0x05, 0x40, 0x1c, 0x00, 0x40, 0x07, 0x00 +.byte 0x54, 0x04, 0x90, 0x44, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x0f, 0xfe, 0x02 +.byte 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x30, 0x01, 0x80, 0x04, 0x00, 0x40, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f +.byte 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x01, 0x80, 0x00, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x00, 0x40, 0x04, 0x00, 0x40 +.byte 0x04, 0x00, 0x40, 0x04, 0x00, 0x40, 0x04, 0x00, 0x40, 0x04, 0x00 +.byte 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x60, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x0c, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x3f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x44, 0x04, 0x10, 0x20, 0x80 +.byte 0x04, 0x00, 0x40, 0x04, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00, 0x00 +.byte 0x00, 0x00, 0x20, 0x01, 0x00, 0x07, 0x00, 0xc6, 0x08, 0x08, 0x80 +.byte 0x24, 0x31, 0x42, 0x4a, 0x22, 0x51, 0x22, 0x89, 0x22, 0x36, 0x10 +.byte 0x02, 0x40, 0x21, 0x86, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.byte 0x00, 0x00 diff --git a/src/boss.c b/src/boss.c new file mode 100644 index 0000000..d0f2de9 --- /dev/null +++ b/src/boss.c @@ -0,0 +1,1315 @@ +#include "ultra64.h" +#include "ramrom.h" +#include "boss.h" +#include "bondgame.h" +#include "game/debugmenu_090490.h" +#include "game/room_model_buffer.h" +#include "deb.h" +#include "game/stan.h" +#include "game/rsp.h" +#include "bondconstants.h" +/** + * @file boss.c + * This file contains the main game loop code. + */ + +/* data */ +u32 boss_c_ptr_debug_notice_list_entry = 0; +s32 debug_and_update_stage_flag = 0; +LEVELID current_stage_num = LEVELID_TITLE; +u32 current_m_malloc_value = 0x234800; +u32 current_ma_malloc_value = 0x4B000; +s32 show_mem_use_flag = 0; +s32 show_mem_bars_flag = 0; + +struct memallocstring memallocstringtable[] = { +{ LEVELID_DAM, "-ml0 -me0 -mgfx70 -mvtx50 -mt625 -ma275"}, +{ LEVELID_FACILITY, "-ml0 -me0 -mgfx70 -mvtx50 -mt650 -ma160"}, +{ LEVELID_RUNWAY, "-ml0 -me0 -mgfx100 -mvtx50 -mt610 -ma300"}, +{ LEVELID_SURFACE, "-ml0 -me0 -mgfx70 -mvtx50 -mt600 -ma300"}, +{ LEVELID_BUNKER1, "-ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma150"}, +{ LEVELID_SILO, "-ml0 -me0 -mgfx70 -mvtx50 -mt660 -ma150"}, +{ LEVELID_FRIGATE, "-ml0 -me0 -mgfx70 -mvtx50 -mt750 -ma225"}, +{ LEVELID_SURFACE2, "-ml0 -me0 -mgfx100 -mvtx50 -mt550 -ma350"}, +{ LEVELID_BUNKER2, "-ml0 -me0 -mgfx100 -mvtx50 -mt725 -ma150"}, +{ LEVELID_STATUE, "-ml0 -me0 -mgfx70 -mvtx50 -mt750 -ma220"}, +{ LEVELID_ARCHIVES, "-ml0 -me0 -mgfx70 -mvtx50 -mt600 -ma250"}, +{ LEVELID_STREETS, "-ml0 -me0 -mgfx60 -mvtx40 -mt635 -ma290"}, +{ LEVELID_DEPOT, "-ml0 -me0 -mgfx60 -mvtx50 -mt710 -ma300"}, +{ LEVELID_TRAIN, "-ml0 -me0 -mgfx100 -mvtx50 -mt600 -ma200"}, +{ LEVELID_JUNGLE, "-ml0 -me0 -mgfx70 -mvtx50 -mt500 -ma200"}, +{ LEVELID_CONTROL, "-ml0 -me0 -mgfx70 -mvtx50 -mt671 -ma200"}, +{ LEVELID_CRADLE, "-ml0 -me0 -mgfx100 -mvtx50 -mt650 -ma250"}, +{ LEVELID_CAVERNS, "-ml0 -me0 -mgfx100 -mvtx50 -mt530 -ma250"}, +{ LEVELID_AZTEC, "-ml0 -me0 -mgfx60 -mvtx40 -mt855 -ma135"}, +{ LEVELID_EGYPT, "-ml0 -me0 -mgfx100 -mvtx50 -mt600 -ma250"}, +{ LEVELID_CITADEL, "-ml0 -me0 -mgfx100 -mvtx50 -mt650 -ma150"}, +{ LEVELID_CUBA, "-ml0 -me0 -mgfx100 -mvtx50 -mt300 -ma300"}, +{ LEVELID_TITLE, "-ml0 -me0 -mgfx80 -mvtx20 -mt646 -ma001"}, +{ 0x5B, "-ml0 -me0 -mgfx60 -mvtx20 -mt500 -ma001"}, +{ 0x63, "-ml0 -me0 -mgfx60 -mvtx20 -mt500 -ma001"}, +{ LEVELID_TEMPLE, "-ml0 -me0 -mgfx130 -mvtx100 -mt390 -ma100"}, +{ LEVELID_COMPLEX, "-ml0 -me0 -mgfx130 -mvtx100 -mt400 -ma100"}, +{ LEVELID_LIBRARY, "-ml0 -me0 -mgfx130 -mvtx100 -mt400 -ma100"}, +{ LEVELID_BASEMENT, "-ml0 -me0 -mgfx130 -mvtx100 -mt400 -ma100"}, +{ LEVELID_STACK, "-ml0 -me0 -mgfx130 -mvtx100 -mt400 -ma100"}, +{ LEVELID_CAVES, "-ml0 -me0 -mgfx130 -mvtx100 -mt400 -ma300"}, +{ 0x1AB, "-ml0 -me0 -mgfx130 -mvtx100 -mt550 -ma170"}, +{ 0x1A8, "-ml0 -me0 -mgfx80 -mvtx100 -mt550 -ma250"}, +{ 0x1B7, "-ml0 -me0 -mgfx130 -mvtx100 -mt440 -ma220"}, +{ 0x1B2, "-ml0 -me0 -mgfx90 -mvtx100 -mt550 -ma230"}, +{ 0x1B0, "-ml0 -me0 -mgfx110 -mvtx100 -mt350 -ma400"}, +{ 0x0, "-ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"}, +{ 0x0, }, +{ 0x0, }, +{ 0x0, } +}; + +LEVELID loadedstage = LEVELID_NONE; +s32 debug_feature_flag = 0; +s32 D_80024304 = 0x20000; +s32 D_80024308 = 0; +s32 D_8002430C = 0; +s32 D_80024310 = 0; +s32 D_80024314 = 0; +s32 D_80024318 = 0; +s32 D_8002431C = 0; +s32 D_80024320 = 0; +s32 taskgrab_ramdump_num = 1; + +/* rodata */ + +//const char aLevel_[] = "-level_"; +//const char aMl0Me0Mgfx100Mvtx50Mt700Ma400_1[] = " -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"; +//const char aM[] = "-m"; +//const char aM_1[] = "-m"; + +//***moved to mainloop +//const char aLevel__0[] = "-level_"; +//const char aLevel__1[] = "-level_"; +//const char aHard[] = "-hard"; +//const char aHard_1[] = "-hard"; +//const char aHard_2[] = "-hard"; +//const char aMa[] = "-ma"; +//const char aMa_0[] = "-ma"; +//const char aU64_taskgrab_D_core[] = "u64.taskgrab.%d.core"; + +/** + * 6930 70005D30 + * ??? - uses "-level_", "-m" strings + */ +#define OS_USEC_TO_CYCLES(n) (((u64)(n)*(osClockRate))/1000000LL) + +void init_mainthread_data(void) +{ + OSMesg bossmsg; + OSTimer bosstimer; + OSMesgQueue bossmq; + u32 temp_s0; + u32 unused; + s32 i; + + + debInitDebugNoticeList(); + romCreateMesgQueue(); + establish_TLB_buffer_management_table(); + image_entries_load(); + mempInitDebugNoticeList(); + memaInitDebugNoticeList(); + bgInitDebugNoticeList(); + viInitDebugNoticeList(); + init_video_settings(); + init_indy_if_not_ready(); + debug_and_update_stage_flag = rmon_debug_is_final_build(); + obInitDebugNoticeList(); + rspInitDebugNoticeList(); + dynInitDebugNoticeList(); + joyInitDebugNoticeList(); + osCreateMesgQueue(&bossmq, &bossmsg, 1); + + for (i = 0; i != 4; i++) + { + osSetTimer(&bosstimer, OS_USEC_TO_CYCLES(100000), 0, &bossmq, &bossmsg); + osRecvMesg(&bossmq, &bossmsg, 1); + if (i == 1) + { + test_controller_presence(); + } + else if (i >= 2) + { + redirect_to_ramrom_replay_and_record_handlers_if_set(); + } + } + + if (check_token(1, "-level_") == 0) + { + debug_and_update_stage_flag = 1; + } + stanInitDebugNoticeList(); + gameInitDebugNoticeList(); + if (debug_and_update_stage_flag != 0) + { + strtok(" -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"); + } + if (check_token(1, "-m") != 0) + { + current_m_malloc_value = (s32) (strtol(check_token(1, "-m"), 0, 0) << 0xa); + } + temp_s0 = (osVirtualToPhysical(&room_model_buffer) | 0x80000000); + mempCheckMemflagTokens(temp_s0, (return_ptr_TLBallocatedblock() - temp_s0)); + mempResetBank(6); + init_LnameX(); + lvInitDebugNoticeList(); + bossInitDebugNoticeList(); + textrelatedInit_REMOVED(); + debugmenuInit_REMOVED(); + default_player_perspective_and_height(); + store_osgetcount(); + null_init_main_1(); + displaylist_related(); + set_gu_scale(); + null_init_main_2(); + sub_GAME_7F000980(); + alloc_load_expand_ani_table(); + init_weapon_animation_groups_maybe(); + reset_counter_rand_body_head(); + null_init_main_3(); + sub_GAME_7F000B60(); + initGameData(); + sub_GAME_7F01D6E0(); + clear_ramrom_block_buffer_heading_ptrs(); +} + +/** + * 6BF4 70005FF4 + * 1 ->"show mem use" debug memory display [800241B4]; fry AT,T6 + */ +void enable_show_mem_use_flag(void) { + show_mem_use_flag=TRUE; +} + +/** + * 6C04 70006004 + * toggle "show mem bars" [800241B8]; fries V0,T6,T7 + */ +void mem_bars_flag_toggle(void) { + show_mem_bars_flag = show_mem_bars_flag ^ 1; +} + +/** + * 6C1C 7000601C + * loads primary resources and starts main program loop + * this is infinite. Loops unconditionally: JAL 70006060 + */ +void bossEntry(void) { + init_mainthread_data(); + allocate_init_rsp_buffers(); + setupaudio(); + while(1){ + mainloop(); + } +} + + + +/** + * 6C60 70006060 + * main program loop + * 70006090 tests memstring for "-level_##" + * 700060DC if not title, tests memstring for "-hard#" + * 70006160 follows... + * 700061FC test if debug console unconnected [800241A4] + * 700062EC follows... + * 700062FC tests memstring for "-ma" + * 7000633C allocates "-ma" bytes to mem bank 4 + * 7000635C reset player data pointers + * 70006364 offsets stage number based on number of players unless main menu + * 700063A0 parses and sets memory allocation, loads stage, etc. + * ... + * 70006708 displays memory usage when active + * 70006724 displays in-game debugger when active + * 7000674C writes a full sync, end display list combo + * 7000676C display mem use when active [800241B4] + * 700067A8 display mem bars when active [800241B8] + * 700067C0 follows... + * 700067D8 tests if "u64.taskgrab.#.core" activated and dumps memory + * 70006854 follows... (700068BC - stop demos) + */ +#ifdef NONMATCHING +void mainloop(void) +{ + s32 sp1DC; + void *sp1D4; + ? sp1B4; + s32 sp1AC; + s32 sp1A4; + ? sp5C; + ? sp58; + void *sp48; + s32 temp_a0; + s32 temp_a1; + s32 temp_a2; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_s0; + s32 temp_s0_2; + s32 temp_s0_3; + s32 temp_s1; + s32 temp_s3; + s32 temp_s3_2; + s32 temp_v0_3; + s32 temp_v0_4; + s32 temp_v1; + s32 temp_v1_2; + s32 temp_v1_3; + void *temp_s3_3; + void *temp_v0; + void *temp_v0_2; + void *temp_v0_5; + s32 phi_v1; + void *phi_v0; + s32 phi_s0; + s32 phi_s0_2; + s32 phi_v1_2; + void *phi_v0_2; + s32 phi_s0_3; + s32 phi_s1; + u32 phi_fp; + s32 phi_s1_2; + s32 phi_s3; + s32 phi_s3_2; + void *phi_s3_3; + s32 phi_v0_3; + u32 phi_fp_2; + s32 phi_s0_4; + s32 phi_s0_5; + + sp1DC = 0; + reset_mem_bank_5(); + if (check_token(1, "-level_") != 0) + { + temp_ret = check_token(1, "-level_"); + current_stage_num = (s32) ((temp_ret->unk1 + (temp_ret->unk0 * 0xa)) + -0x210); + } + if (current_stage_num != 0x5a) + { + sub_GAME_7F01DF90(); + set_selected_folder_num(0); + set_selected_difficulty(0); + set_solo_and_ptr_briefing(current_stage_num); + if (check_token(1, "-hard") != 0) + { + set_selected_difficulty(*check_token(1, "-hard") + -0x30); + set_difficulty(*check_token(1, "-hard") + -0x30); + } + } + increment_random_num(osGetCount()); +loop_6: + sp1D4 = NULL; + sp1B4.unk0 = (?32) D_80024304.unk0; + sp1B4.unk4 = (?32) D_80024304.unk4; + sp1B4.unkC = (?32) D_80024304.unkC; + sp1B4.unk8 = (?32) D_80024304.unk8; + sp1B4.unk10 = (?32) D_80024304.unk10; + sp1B4.unk14 = (?32) D_80024304.unk14; + sp1B4.unk1C = (?32) D_80024304.unk1C; + sp1B4.unk18 = (?32) D_80024304.unk18; + sp1AC = 0; + test_if_recording_demos_this_stage_load(current_stage_num, get_current_difficulty()); + if (debug_and_update_stage_flag != 0) + { + phi_s0_2 = -1; + if (current_stage_num != 0x5a) + { + phi_s0_2 = -1; + if (get_selected_num_players() >= 2) + { + phi_s0 = 0; + if (memallocstringtable != 0) + { + temp_v0 = 0x80020000 + 0x41bc; + phi_v1 = *temp_v0; + phi_v0 = temp_v0; + phi_s0_4 = 0; +loop_11: + phi_s0 = phi_s0_4; + if ((current_stage_num + 0x190) != phi_v1) + { + temp_v1 = phi_v0->unk8; + temp_s0 = phi_s0_4 + 1; + phi_v1 = temp_v1; + phi_v0 = phi_v0 + 8; + phi_s0 = temp_s0; + phi_s0_4 = temp_s0; + if (temp_v1 != 0) + { + goto loop_11; + } + } + } + phi_s0_2 = phi_s0; + if (*(&memallocstringtable + (phi_s0 * 8)) == 0) + { + phi_s0_2 = -1; + } + } + } + phi_s0_3 = phi_s0_2; + if (phi_s0_2 < 0) + { + phi_s0_3 = 0; + if (memallocstringtable != 0) + { + temp_v0_2 = 0x80020000 + 0x41bc; + phi_v1_2 = *temp_v0_2; + phi_v0_2 = temp_v0_2; + phi_s0_5 = 0; +loop_18: + phi_s0_3 = phi_s0_5; + if (current_stage_num != phi_v1_2) + { + temp_v1_2 = phi_v0_2->unk8; + temp_s0_2 = phi_s0_5 + 1; + phi_v1_2 = temp_v1_2; + phi_v0_2 = phi_v0_2 + 8; + phi_s0_3 = temp_s0_2; + phi_s0_5 = temp_s0_2; + if (temp_v1_2 != 0) + { + goto loop_18; + } + } + } + } + strtok((&memallocstringtable + (phi_s0_3 * 8))->unk4, &memallocstringtable); + } + mempResetBank(4); + obBlankResourcesLoadedInBank(4); + if (check_token(1, &aMa) != 0) + { + current_ma_malloc_value = (s32) (strtol(check_token(1, &aMa_0), 0, 0) << 0xa); + } + mempInitMallocTable(mempAllocBytesInBank(current_ma_malloc_value, 4), current_ma_malloc_value); + reset_play_data_ptrs(); + phi_s1 = 0; + if (current_stage_num != 0x5a) + { + phi_s1 = 1; + if (get_selected_num_players() >= 2) + { + phi_s1 = get_selected_num_players(); + } + } + init_player_data_ptrs_construct_viewports(phi_s1); + set_vtx_gfx_mem_alloc(); + test_controller_presence(); + stage_load(current_stage_num); + init_both_video_buffers(); + debug_text_related_2(); + sub_GAME_7F0C0B4C(); + video_related_2(); + if (osRecvMesg(&gfxFrameMsgQ, &sp1D4, 0) == 0) + { +loop_27: + if (osRecvMesg(&gfxFrameMsgQ, &sp1D4, 0) == 0) + { + goto loop_27; + } + } + phi_fp = 0U; + if (loadedstage < 0) + { +loop_29: + osRecvMesg(&gfxFrameMsgQ, &sp1D4, 1); + if (*sp1D4 != 1) + { + if (*sp1D4 != 2) + { + if (*sp1D4 != 5) + { + phi_v0_3 = loadedstage; + phi_fp_2 = phi_fp; + } + else + { + phi_v0_3 = (void *)0x80020000->unk42FC; + phi_fp_2 = 4U; + } + } + else + { + phi_v0_3 = (void *)0x80020000->unk42FC; + phi_fp_2 = phi_fp; + } + } + else + { + if ((u32) (osGetCount() - copy_of_osgetcount_value_1) < 0x5eb61U) + { + phi_v0_3 = loadedstage; + phi_fp_2 = phi_fp; + } + else + { + phi_v0_3 = (void *)0x80020000->unk42FC; + phi_fp_2 = phi_fp; + if ((void *)0x80020000->unk42FC < 0) + { + phi_v0_3 = (void *)0x80020000->unk42FC; + phi_fp_2 = phi_fp; + if ((u32) phi_fp < 2U) + { + sp48 = &sp1B4; + if (get_is_ramrom_flag() != 0) + { + iterate_ramrom_entries_handle_camera_out(); + } + else + { + sub_GAME_7F0C0B4C(); + } + video_DL_related_4(); + video_related_2(); + video_related_3(0x20000); + redirect_to_ramrom_replay_and_record_handlers_if_set(); + permit_stderr(0); + temp_ret_2 = get_ptr_displaylist(); + sp1A4 = temp_ret_2; + if (debug_feature_flag != 0) + { + debug_feature_flag = debug_menu_processor((s32) (((s32) (get_cur_controller_horz_stick_pos(0) << 0x18) >> 0x18) << 0x18) >> 0x18, (s32) (((s32) (get_cur_controller_vert_stick_pos(0) << 0x18) >> 0x18) << 0x18) >> 0x18, (get_controller_buttons_held(0, 0xffff) & 0xffff) & 0xffff, get_controller_buttons_pressed(0, 0xffff) & 0xffff); + } + manage_mp_game(); + sub_GAME_7F09B41C(); + if (current_stage_num != 0x5a) + { + phi_s1_2 = 0; + if (get_num_players() > 0) + { +loop_44: + set_cur_player(sub_GAME_7F09B528(phi_s1_2)); + set_video2_width_height(pPlayer->unk7F0, pPlayer->unk7F2); + set_video2_ulx_uly(pPlayer->viewleft, pPlayer->viewtop); + sub_GAME_7F0BF800(); + temp_s1 = phi_s1_2 + 1; + phi_s1_2 = temp_s1; + if (temp_s1 < get_num_players()) + { + goto loop_44; + } + } + } + temp_s3 = sub_GAME_7F0BE30C(temp_ret_2); + phi_s3 = temp_s3; + if (get_debug_VisCVG_flag() != 0) + { // Lets Visualise the Coverage Value used for Scilohete Anti-Ailising (edges) (done on the VI), also produces a cool looking linemode - providing AA is working. + temp_v0_3 = temp_s3; + // glistp = glist //make pointer to gfx list + temp_s3 = temp_s3 + 8; + temp_v1_3 = temp_s3; //increment pointer by SizeOf(gfx) + temp_v0_3->unk0 = 0xe7000000; + temp_v0_3->unk4 = 0; + //gDPPipesync(glistp++); + temp_s3 = temp_s3 + 8; + temp_a0 = temp_s3; + temp_s3 = temp_s3 + 8; + temp_v1_3->unk0 = 0xba001402; + temp_v1_3->unk4 = 0; + //gDPSetCycleType(glistp++, 2CYCLE); + temp_a1 = temp_s3; + temp_s3 = temp_s3 + 8; + temp_a0->unk0 = 0xf9000000; + temp_a0->unk4 = -1; + temp_a2 = temp_s3; + temp_s3 = temp_s3 + 8; + temp_a1->unk0 = 0xee000000; + temp_a1->unk4 = -1; + temp_v0_4 = temp_s3; + temp_s3 = temp_s3 + 8; + temp_a2->unk4 = 4; + temp_a2->unk0 = 0xb9000201; + //gDPSetAlphaCompare(glistp++); + temp_s0_3 = temp_s3; + temp_v0_4->unk0 = 0xb900031d; + temp_v0_4->unk4 = 0xfa54040; + //gDPSetRenderMode(glistp++, ); + + //above would most likly look like + //glistp = glist; + //gDPPipesync(glistp++); + //gDPSetCycleType(glistp++, 2CYCLE); + // ...etc + + temp_s0_3->unk0 = (s32) (((((get_video2_settings_txtClipH() + -1) & 0x3ff) * 4) | 0xf6000000) | (((((s32) (get_video2_settings_txtClipW(temp_a0, temp_a1, temp_a2, -1) << 0x10) >> 0x10) + -1) & 0x3ff) << 0xe)); + temp_s0_3->unk4 = 0; + phi_s3 = temp_s3 + 8; + } + temp_s3_2 = read_screen_display_block_and_write_chars(phi_s3); + phi_s3_2 = temp_s3_2; + if (get_memusage_display_flag() != 0) + { + phi_s3_2 = display_speed_graph(temp_s3_2); + } + phi_s3_3 = (void *) phi_s3_2; + if (debug_feature_flag != 0) + { + display_debug_menu_text_onscreen(); + phi_s3_3 = print_debug_mcm_to_stdout(phi_s3_2); + } + temp_v0_5 = phi_s3_3; + temp_s3_3 = phi_s3_3 + 8; + temp_v0_5->unk0 = 0xe9000000; + temp_v0_5->unk4 = 0; + temp_s3_3->unk0 = 0xb8000000; + temp_s3_3->unk4 = 0; + temp_s3_3 = temp_s3_3 + 8; + if (show_mem_use_flag != 0) + { + nulled_mempLoopAllMemBanks(); + memaGenerateListsBeforeAfterMerge(); + removed_debug_routine(temp_s3_3); + nullsub_41(0); + show_mem_use_flag = 0; + } + if (show_mem_bars_flag != 0) + { + draw_membars(temp_s3_3); + } + allocate_something_in_mgfx(temp_s3_3); + allocate_something_in_mvtx(); + video_related_8(); + if (get_debug_taskgrab_val() != 0) + { + if (get_controller_buttons_pressed(0, 0xc000) != 0) + { + if (get_controller_buttons_held(0, 0xc000) == 0xc000) + { +loop_58: + sprintf(&sp5C, &aU64_taskgrab_D_core, taskgrab_ramdump_num); + if (check_file_found_on_indy(&sp5C, &sp58) != 0) + { + taskgrab_ramdump_num = (s32) (taskgrab_ramdump_num + 1); + goto loop_58; + } + indy_send_capture_data(&sp5C, 0x80000000, 0x400000); + } + } + } + load_rsp_microcode(sp1A4, temp_s3_3, 0, sp48); + mem_related_calls_sort_merge_entries(); + sp1AC = (s32) (sp1AC ^ 1); + video_related_3(0x10000); + phi_v0_3 = loadedstage; + phi_fp_2 = phi_fp; + } + } + } + } + phi_fp = phi_fp_2; + if (phi_v0_3 < 0) + { + goto loop_29; + } + phi_fp = phi_fp_2; + if (phi_fp_2 != 0) + { + goto loop_29; + } + } + unload_stage_text_data(); + stop_demo_playback(); + mempNullNextEntryInBank(4); + obBlankResourcesLoadedInBank(4); + current_stage_num = (?32) loadedstage; + loadedstage = -1; + if (sp1DC == 0) + { + goto loop_6; + } + sub_GAME_7F0D1A7C(); +} +#else +GLOBAL_ASM( + +.rdata +glabel aLevel__0 +.word 0x2d6c6576, 0x656c5f00 /*"-level_"*/ +glabel aLevel__1 +.word 0x2d6c6576, 0x656c5f00 /*"-level_"*/ +glabel aHard +.word 0x2d686172, 0x64000000 /*"-hard"*/ +glabel aHard_1 +.word 0x2d686172, 0x64000000 /*"-hard"*/ +glabel aHard_2 +.word 0x2d686172, 0x64000000 /*"-hard"*/ +glabel aMa +.word 0x2d6d6100 /*"-ma"*/ +glabel aMa_0 +.word 0x2d6d6100 /*"-ma"*/ +glabel aU64_taskgrab_D_core +.word 0x7536342e, 0x7461736b, 0x67726162, 0x2e25642e, 0x636f7265, 0x00000000 /*"u64.taskgrab.%d.core"*/ + +.text +glabel mainloop +/* 006C60 70006060 27BDFE20 */ addiu $sp, $sp, -0x1e0 +/* 006C64 70006064 AFBF003C */ sw $ra, 0x3c($sp) +/* 006C68 70006068 AFBE0038 */ sw $fp, 0x38($sp) +/* 006C6C 7000606C AFB70034 */ sw $s7, 0x34($sp) +/* 006C70 70006070 AFB60030 */ sw $s6, 0x30($sp) +/* 006C74 70006074 AFB5002C */ sw $s5, 0x2c($sp) +/* 006C78 70006078 AFB40028 */ sw $s4, 0x28($sp) +/* 006C7C 7000607C AFB30024 */ sw $s3, 0x24($sp) +/* 006C80 70006080 AFB20020 */ sw $s2, 0x20($sp) +/* 006C84 70006084 AFB1001C */ sw $s1, 0x1c($sp) +/* 006C88 70006088 AFB00018 */ sw $s0, 0x18($sp) +/* 006C8C 7000608C 0FC34693 */ jal reset_mem_bank_5 +/* 006C90 70006090 AFA001DC */ sw $zero, 0x1dc($sp) +/* 006C94 70006094 3C058003 */ lui $a1, %hi(aLevel__0) +/* 006C98 70006098 24A59104 */ addiu $a1, %lo(aLevel__0) # addiu $a1, $a1, -0x6efc +/* 006C9C 7000609C 0C0029A8 */ jal check_token +/* 006CA0 700060A0 24040001 */ li $a0, 1 +/* 006CA4 700060A4 1040000D */ beqz $v0, .L700060DC +/* 006CA8 700060A8 24040001 */ li $a0, 1 +/* 006CAC 700060AC 3C058003 */ lui $a1, %hi(aLevel__1) +/* 006CB0 700060B0 0C0029A8 */ jal check_token +/* 006CB4 700060B4 24A5910C */ addiu $a1, %lo(aLevel__1) # addiu $a1, $a1, -0x6ef4 +/* 006CB8 700060B8 904F0000 */ lbu $t7, ($v0) +/* 006CBC 700060BC 904E0001 */ lbu $t6, 1($v0) +/* 006CC0 700060C0 3C018002 */ lui $at, %hi(current_stage_num) +/* 006CC4 700060C4 000FC080 */ sll $t8, $t7, 2 +/* 006CC8 700060C8 030FC021 */ addu $t8, $t8, $t7 +/* 006CCC 700060CC 0018C040 */ sll $t8, $t8, 1 +/* 006CD0 700060D0 01D8C821 */ addu $t9, $t6, $t8 +/* 006CD4 700060D4 2728FDF0 */ addiu $t0, $t9, -0x210 +/* 006CD8 700060D8 AC2841A8 */ sw $t0, %lo(current_stage_num)($at) +.L700060DC: +/* 006CDC 700060DC 3C098002 */ lui $t1, %hi(current_stage_num) +/* 006CE0 700060E0 8D2941A8 */ lw $t1, %lo(current_stage_num)($t1) +/* 006CE4 700060E4 2401005A */ li $at, 90 +/* 006CE8 700060E8 1121001D */ beq $t1, $at, .L70006160 +/* 006CEC 700060EC 00000000 */ nop +/* 006CF0 700060F0 0FC077E4 */ jal sub_GAME_7F01DF90 +/* 006CF4 700060F4 00000000 */ nop +/* 006CF8 700060F8 0FC07564 */ jal set_selected_folder_num +/* 006CFC 700060FC 00002025 */ move $a0, $zero +/* 006D00 70006100 0FC07567 */ jal set_selected_difficulty +/* 006D04 70006104 00002025 */ move $a0, $zero +/* 006D08 70006108 3C048002 */ lui $a0, %hi(current_stage_num) +/* 006D0C 7000610C 0FC0757B */ jal set_solo_and_ptr_briefing +/* 006D10 70006110 8C8441A8 */ lw $a0, %lo(current_stage_num)($a0) +/* 006D14 70006114 3C058003 */ lui $a1, %hi(aHard) +/* 006D18 70006118 24A59114 */ addiu $a1, %lo(aHard) # addiu $a1, $a1, -0x6eec +/* 006D1C 7000611C 0C0029A8 */ jal check_token +/* 006D20 70006120 24040001 */ li $a0, 1 +/* 006D24 70006124 1040000E */ beqz $v0, .L70006160 +/* 006D28 70006128 24040001 */ li $a0, 1 +/* 006D2C 7000612C 3C058003 */ lui $a1, %hi(aHard_1) +/* 006D30 70006130 0C0029A8 */ jal check_token +/* 006D34 70006134 24A5911C */ addiu $a1, %lo(aHard_1) # addiu $a1, $a1, -0x6ee4 +/* 006D38 70006138 90440000 */ lbu $a0, ($v0) +/* 006D3C 7000613C 0FC07567 */ jal set_selected_difficulty +/* 006D40 70006140 2484FFD0 */ addiu $a0, $a0, -0x30 +/* 006D44 70006144 3C058003 */ lui $a1, %hi(aHard_2) +/* 006D48 70006148 24A59124 */ addiu $a1, %lo(aHard_2) # addiu $a1, $a1, -0x6edc +/* 006D4C 7000614C 0C0029A8 */ jal check_token +/* 006D50 70006150 24040001 */ li $a0, 1 +/* 006D54 70006154 90440000 */ lbu $a0, ($v0) +/* 006D58 70006158 0FC2FF07 */ jal set_difficulty +/* 006D5C 7000615C 2484FFD0 */ addiu $a0, $a0, -0x30 +.L70006160: +/* 006D60 70006160 0C003638 */ jal osGetCount +/* 006D64 70006164 00000000 */ nop +/* 006D68 70006168 0C002926 */ jal increment_random_num +/* 006D6C 7000616C 00402025 */ move $a0, $v0 +/* 006D70 70006170 3C168003 */ lui $s6, %hi(aU64_taskgrab_D_core) +/* 006D74 70006174 3C158008 */ lui $s5, %hi(pPlayer) +/* 006D78 70006178 26B5A0B0 */ addiu $s5, %lo(pPlayer) # addiu $s5, $s5, -0x5f50 +/* 006D7C 7000617C 26D69134 */ addiu $s6, %lo(aU64_taskgrab_D_core) # addiu $s6, $s6, -0x6ecc +/* 006D80 70006180 27B70058 */ addiu $s7, $sp, 0x58 +/* 006D84 70006184 27B4005C */ addiu $s4, $sp, 0x5c +/* 006D88 70006188 8FB301A8 */ lw $s3, 0x1a8($sp) +.L7000618C: +/* 006D8C 7000618C 3C0B8002 */ lui $t3, %hi(D_80024304) +/* 006D90 70006190 AFA001D4 */ sw $zero, 0x1d4($sp) +/* 006D94 70006194 256B4304 */ addiu $t3, %lo(D_80024304) # addiu $t3, $t3, 0x4304 +/* 006D98 70006198 8D610000 */ lw $at, ($t3) +/* 006D9C 7000619C 8D6F0004 */ lw $t7, 4($t3) +/* 006DA0 700061A0 27AA01B4 */ addiu $t2, $sp, 0x1b4 +/* 006DA4 700061A4 AD410000 */ sw $at, ($t2) +/* 006DA8 700061A8 AD4F0004 */ sw $t7, 4($t2) +/* 006DAC 700061AC 8D6F000C */ lw $t7, 0xc($t3) +/* 006DB0 700061B0 8D610008 */ lw $at, 8($t3) +/* 006DB4 700061B4 0000F025 */ move $fp, $zero +/* 006DB8 700061B8 AD4F000C */ sw $t7, 0xc($t2) +/* 006DBC 700061BC AD410008 */ sw $at, 8($t2) +/* 006DC0 700061C0 8D610010 */ lw $at, 0x10($t3) +/* 006DC4 700061C4 8D6F0014 */ lw $t7, 0x14($t3) +/* 006DC8 700061C8 00008825 */ move $s1, $zero +/* 006DCC 700061CC AD410010 */ sw $at, 0x10($t2) +/* 006DD0 700061D0 AD4F0014 */ sw $t7, 0x14($t2) +/* 006DD4 700061D4 8D6F001C */ lw $t7, 0x1c($t3) +/* 006DD8 700061D8 8D610018 */ lw $at, 0x18($t3) +/* 006DDC 700061DC AD4F001C */ sw $t7, 0x1c($t2) +/* 006DE0 700061E0 AD410018 */ sw $at, 0x18($t2) +/* 006DE4 700061E4 0FC2FF04 */ jal get_current_difficulty +/* 006DE8 700061E8 AFA001AC */ sw $zero, 0x1ac($sp) +/* 006DEC 700061EC 3C048002 */ lui $a0, %hi(current_stage_num) +/* 006DF0 700061F0 8C8441A8 */ lw $a0, %lo(current_stage_num)($a0) +/* 006DF4 700061F4 0FC30190 */ jal test_if_recording_demos_this_stage_load +/* 006DF8 700061F8 00402825 */ move $a1, $v0 +/* 006DFC 700061FC 3C0E8002 */ lui $t6, %hi(debug_and_update_stage_flag) +/* 006E00 70006200 8DCE41A4 */ lw $t6, %lo(debug_and_update_stage_flag)($t6) +/* 006E04 70006204 3C188002 */ lui $t8, %hi(current_stage_num) +/* 006E08 70006208 11C00038 */ beqz $t6, .L700062EC +/* 006E0C 7000620C 00000000 */ nop +/* 006E10 70006210 8F1841A8 */ lw $t8, %lo(current_stage_num)($t8) +/* 006E14 70006214 2401005A */ li $at, 90 +/* 006E18 70006218 2410FFFF */ li $s0, -1 +/* 006E1C 7000621C 1301001D */ beq $t8, $at, .L70006294 +/* 006E20 70006220 00000000 */ nop +/* 006E24 70006224 0FC040A4 */ jal get_selected_num_players +/* 006E28 70006228 00000000 */ nop +/* 006E2C 7000622C 28410002 */ slti $at, $v0, 2 +/* 006E30 70006230 14200018 */ bnez $at, .L70006294 +/* 006E34 70006234 3C058002 */ lui $a1, %hi(memallocstringtable) +/* 006E38 70006238 24A541BC */ addiu $a1, %lo(memallocstringtable) # addiu $a1, $a1, 0x41bc +/* 006E3C 7000623C 8CB90000 */ lw $t9, ($a1) +/* 006E40 70006240 00008025 */ move $s0, $zero +/* 006E44 70006244 3C048002 */ lui $a0, %hi(current_stage_num) +/* 006E48 70006248 1320000C */ beqz $t9, .L7000627C +/* 006E4C 7000624C 3C088002 */ lui $t0, %hi(memallocstringtable) +/* 006E50 70006250 8C8441A8 */ lw $a0, %lo(current_stage_num)($a0) +/* 006E54 70006254 250241BC */ addiu $v0, $t0, %lo(memallocstringtable) +/* 006E58 70006258 8C430000 */ lw $v1, ($v0) +/* 006E5C 7000625C 24840190 */ addiu $a0, $a0, 0x190 +.L70006260: +/* 006E60 70006260 50830007 */ beql $a0, $v1, .L70006280 +/* 006E64 70006264 001048C0 */ sll $t1, $s0, 3 +/* 006E68 70006268 8C430008 */ lw $v1, 8($v0) +/* 006E6C 7000626C 26100001 */ addiu $s0, $s0, 1 +/* 006E70 70006270 24420008 */ addiu $v0, $v0, 8 +/* 006E74 70006274 1460FFFA */ bnez $v1, .L70006260 +/* 006E78 70006278 00000000 */ nop +.L7000627C: +/* 006E7C 7000627C 001048C0 */ sll $t1, $s0, 3 +.L70006280: +/* 006E80 70006280 00A96821 */ addu $t5, $a1, $t1 +/* 006E84 70006284 8DAC0000 */ lw $t4, ($t5) +/* 006E88 70006288 15800002 */ bnez $t4, .L70006294 +/* 006E8C 7000628C 00000000 */ nop +/* 006E90 70006290 2410FFFF */ li $s0, -1 +.L70006294: +/* 006E94 70006294 3C058002 */ lui $a1, %hi(memallocstringtable) +/* 006E98 70006298 06010010 */ bgez $s0, .L700062DC +/* 006E9C 7000629C 24A541BC */ addiu $a1, %lo(memallocstringtable) # addiu $a1, $a1, 0x41bc +/* 006EA0 700062A0 8CAA0000 */ lw $t2, ($a1) +/* 006EA4 700062A4 00008025 */ move $s0, $zero +/* 006EA8 700062A8 3C048002 */ lui $a0, %hi(current_stage_num) +/* 006EAC 700062AC 1140000B */ beqz $t2, .L700062DC +/* 006EB0 700062B0 3C0B8002 */ lui $t3, %hi(memallocstringtable) +/* 006EB4 700062B4 256241BC */ addiu $v0, $t3, %lo(memallocstringtable) +/* 006EB8 700062B8 8C430000 */ lw $v1, ($v0) +/* 006EBC 700062BC 8C8441A8 */ lw $a0, %lo(current_stage_num)($a0) +.L700062C0: +/* 006EC0 700062C0 50830007 */ beql $a0, $v1, .L700062E0 +/* 006EC4 700062C4 001078C0 */ sll $t7, $s0, 3 +/* 006EC8 700062C8 8C430008 */ lw $v1, 8($v0) +/* 006ECC 700062CC 26100001 */ addiu $s0, $s0, 1 +/* 006ED0 700062D0 24420008 */ addiu $v0, $v0, 8 +/* 006ED4 700062D4 1460FFFA */ bnez $v1, .L700062C0 +/* 006ED8 700062D8 00000000 */ nop +.L700062DC: +/* 006EDC 700062DC 001078C0 */ sll $t7, $s0, 3 +.L700062E0: +/* 006EE0 700062E0 00AF7021 */ addu $t6, $a1, $t7 +/* 006EE4 700062E4 0C002963 */ jal strtok +/* 006EE8 700062E8 8DC40004 */ lw $a0, 4($t6) +.L700062EC: +/* 006EEC 700062EC 0C002667 */ jal mempResetBank +/* 006EF0 700062F0 24040004 */ li $a0, 4 +/* 006EF4 700062F4 0FC2F46F */ jal obBlankResourcesLoadedInBank +/* 006EF8 700062F8 24040004 */ li $a0, 4 +/* 006EFC 700062FC 3C058003 */ lui $a1, %hi(aMa) +/* 006F00 70006300 24A5912C */ addiu $a1, %lo(aMa) # addiu $a1, $a1, -0x6ed4 +/* 006F04 70006304 0C0029A8 */ jal check_token +/* 006F08 70006308 24040001 */ li $a0, 1 +/* 006F0C 7000630C 1040000B */ beqz $v0, .L7000633C +/* 006F10 70006310 24040001 */ li $a0, 1 +/* 006F14 70006314 3C058003 */ lui $a1, %hi(aMa_0) +/* 006F18 70006318 0C0029A8 */ jal check_token +/* 006F1C 7000631C 24A59130 */ addiu $a1, %lo(aMa_0) # addiu $a1, $a1, -0x6ed0 +/* 006F20 70006320 00402025 */ move $a0, $v0 +/* 006F24 70006324 00002825 */ move $a1, $zero +/* 006F28 70006328 0C002A78 */ jal strtol +/* 006F2C 7000632C 00003025 */ move $a2, $zero +/* 006F30 70006330 0002C280 */ sll $t8, $v0, 0xa +/* 006F34 70006334 3C018002 */ lui $at, %hi(current_ma_malloc_value) +/* 006F38 70006338 AC3841B0 */ sw $t8, %lo(current_ma_malloc_value)($at) +.L7000633C: +/* 006F3C 7000633C 3C048002 */ lui $a0, %hi(current_ma_malloc_value) +/* 006F40 70006340 8C8441B0 */ lw $a0, %lo(current_ma_malloc_value)($a0) +/* 006F44 70006344 0C0025C8 */ jal mempAllocBytesInBank +/* 006F48 70006348 24050004 */ li $a1, 4 +/* 006F4C 7000634C 3C058002 */ lui $a1, %hi(current_ma_malloc_value) +/* 006F50 70006350 8CA541B0 */ lw $a1, %lo(current_ma_malloc_value)($a1) +/* 006F54 70006354 0C002766 */ jal mempInitMallocTable +/* 006F58 70006358 00402025 */ move $a0, $v0 +/* 006F5C 7000635C 0FC268CB */ jal reset_play_data_ptrs +/* 006F60 70006360 00000000 */ nop +/* 006F64 70006364 3C198002 */ lui $t9, %hi(current_stage_num) +/* 006F68 70006368 8F3941A8 */ lw $t9, %lo(current_stage_num)($t9) +/* 006F6C 7000636C 2401005A */ li $at, 90 +/* 006F70 70006370 13210009 */ beq $t9, $at, .L70006398 +/* 006F74 70006374 00000000 */ nop +/* 006F78 70006378 0FC040A4 */ jal get_selected_num_players +/* 006F7C 7000637C 24110001 */ li $s1, 1 +/* 006F80 70006380 28410002 */ slti $at, $v0, 2 +/* 006F84 70006384 14200004 */ bnez $at, .L70006398 +/* 006F88 70006388 00000000 */ nop +/* 006F8C 7000638C 0FC040A4 */ jal get_selected_num_players +/* 006F90 70006390 00000000 */ nop +/* 006F94 70006394 00408825 */ move $s1, $v0 +.L70006398: +/* 006F98 70006398 0FC268E3 */ jal init_player_data_ptrs_construct_viewports +/* 006F9C 7000639C 02202025 */ move $a0, $s1 +/* 006FA0 700063A0 0FC2F523 */ jal set_vtx_gfx_mem_alloc +/* 006FA4 700063A4 00000000 */ nop +/* 006FA8 700063A8 0C002DAB */ jal test_controller_presence +/* 006FAC 700063AC 00000000 */ nop +/* 006FB0 700063B0 3C048002 */ lui $a0, %hi(current_stage_num) +/* 006FB4 700063B4 0FC2F6AC */ jal stage_load +/* 006FB8 700063B8 8C8441A8 */ lw $a0, %lo(current_stage_num)($a0) +/* 006FBC 700063BC 0C000C49 */ jal init_both_video_buffers +/* 006FC0 700063C0 00000000 */ nop +/* 006FC4 700063C4 0C002B6C */ jal debug_text_related_2 +/* 006FC8 700063C8 00000000 */ nop +/* 006FCC 700063CC 0FC302D3 */ jal sub_GAME_7F0C0B4C +/* 006FD0 700063D0 00000000 */ nop +/* 006FD4 700063D4 0C000A04 */ jal video_related_2 +/* 006FD8 700063D8 00000000 */ nop +/* 006FDC 700063DC 3C048006 */ lui $a0, %hi(gfxFrameMsgQ) +/* 006FE0 700063E0 2484D9A0 */ addiu $a0, %lo(gfxFrameMsgQ) # addiu $a0, $a0, -0x2660 +/* 006FE4 700063E4 27A501D4 */ addiu $a1, $sp, 0x1d4 +/* 006FE8 700063E8 0C003774 */ jal osRecvMesg +/* 006FEC 700063EC 00003025 */ move $a2, $zero +/* 006FF0 700063F0 14400007 */ bnez $v0, .L70006410 +.L700063F4: +/* 006FF4 700063F4 3C048006 */ lui $a0, %hi(gfxFrameMsgQ) +/* 006FF8 700063F8 2484D9A0 */ addiu $a0, %lo(gfxFrameMsgQ) # addiu $a0, $a0, -0x2660 +/* 006FFC 700063FC 27A501D4 */ addiu $a1, $sp, 0x1d4 +/* 007000 70006400 0C003774 */ jal osRecvMesg +/* 007004 70006404 00003025 */ move $a2, $zero +/* 007008 70006408 1040FFFA */ beqz $v0, .L700063F4 +/* 00700C 7000640C 00000000 */ nop +.L70006410: +/* 007010 70006410 3C088002 */ lui $t0, %hi(loadedstage) +/* 007014 70006414 8D0842FC */ lw $t0, %lo(loadedstage)($t0) +/* 007018 70006418 05010126 */ bgez $t0, .L700068B4 +.L7000641C: +/* 00701C 7000641C 3C048006 */ lui $a0, %hi(gfxFrameMsgQ) +/* 007020 70006420 2484D9A0 */ addiu $a0, %lo(gfxFrameMsgQ) # addiu $a0, $a0, -0x2660 +/* 007024 70006424 27A501D4 */ addiu $a1, $sp, 0x1d4 +/* 007028 70006428 0C003774 */ jal osRecvMesg +/* 00702C 7000642C 24060001 */ li $a2, 1 +/* 007030 70006430 8FA901D4 */ lw $t1, 0x1d4($sp) +/* 007034 70006434 24010001 */ li $at, 1 +/* 007038 70006438 85230000 */ lh $v1, ($t1) +/* 00703C 7000643C 10610009 */ beq $v1, $at, .L70006464 +/* 007040 70006440 24010002 */ li $at, 2 +/* 007044 70006444 10610112 */ beq $v1, $at, .L70006890 +/* 007048 70006448 3C028002 */ lui $v0, %hi(loadedstage) +/* 00704C 7000644C 24010005 */ li $at, 5 +/* 007050 70006450 10610112 */ beq $v1, $at, .L7000689C +/* 007054 70006454 3C028002 */ lui $v0, %hi(loadedstage) +/* 007058 70006458 3C028002 */ lui $v0, %hi(loadedstage) +/* 00705C 7000645C 10000111 */ b .L700068A4 +/* 007060 70006460 8C4242FC */ lw $v0, %lo(loadedstage)($v0) +.L70006464: +/* 007064 70006464 0C003638 */ jal osGetCount +/* 007068 70006468 00000000 */ nop +/* 00706C 7000646C 3C0D8005 */ lui $t5, %hi(copy_of_osgetcount_value_1) +/* 007070 70006470 8DAD84B0 */ lw $t5, %lo(copy_of_osgetcount_value_1)($t5) +/* 007074 70006474 3C010005 */ lui $at, (0x0005EB61 >> 16) # lui $at, 5 +/* 007078 70006478 3421EB61 */ ori $at, (0x0005EB61 & 0xFFFF) # ori $at, $at, 0xeb61 +/* 00707C 7000647C 004D1823 */ subu $v1, $v0, $t5 +/* 007080 70006480 0061082B */ sltu $at, $v1, $at +/* 007084 70006484 10200004 */ beqz $at, .L70006498 +/* 007088 70006488 3C028002 */ lui $v0, %hi(loadedstage) +/* 00708C 7000648C 3C028002 */ lui $v0, %hi(loadedstage) +/* 007090 70006490 10000104 */ b .L700068A4 +/* 007094 70006494 8C4242FC */ lw $v0, %lo(loadedstage)($v0) +.L70006498: +/* 007098 70006498 8C4242FC */ lw $v0, %lo(loadedstage)($v0) +/* 00709C 7000649C 2FC10002 */ sltiu $at, $fp, 2 +/* 0070A0 700064A0 04410100 */ bgez $v0, .L700068A4 +/* 0070A4 700064A4 00000000 */ nop +/* 0070A8 700064A8 102000FE */ beqz $at, .L700068A4 +/* 0070AC 700064AC 27AC01B4 */ addiu $t4, $sp, 0x1b4 +/* 0070B0 700064B0 0FC2FF23 */ jal get_is_ramrom_flag +/* 0070B4 700064B4 AFAC0048 */ sw $t4, 0x48($sp) +/* 0070B8 700064B8 10400005 */ beqz $v0, .L700064D0 +/* 0070BC 700064BC 00000000 */ nop +/* 0070C0 700064C0 0FC3009A */ jal iterate_ramrom_entries_handle_camera_out +/* 0070C4 700064C4 00000000 */ nop +/* 0070C8 700064C8 10000003 */ b .L700064D8 +/* 0070CC 700064CC 00000000 */ nop +.L700064D0: +/* 0070D0 700064D0 0FC302D3 */ jal sub_GAME_7F0C0B4C +/* 0070D4 700064D4 00000000 */ nop +.L700064D8: +/* 0070D8 700064D8 0C000B36 */ jal video_DL_related_4 +/* 0070DC 700064DC 00000000 */ nop +/* 0070E0 700064E0 0C000A04 */ jal video_related_2 +/* 0070E4 700064E4 00000000 */ nop +/* 0070E8 700064E8 0C000A15 */ jal video_related_3 +/* 0070EC 700064EC 3C040002 */ lui $a0, 2 +/* 0070F0 700064F0 0C002F43 */ jal redirect_to_ramrom_replay_and_record_handlers_if_set +/* 0070F4 700064F4 00000000 */ nop +/* 0070F8 700064F8 0C000262 */ jal permit_stderr +/* 0070FC 700064FC 00002025 */ move $a0, $zero +/* 007100 70006500 0FC2F59D */ jal get_ptr_displaylist +/* 007104 70006504 00000000 */ nop +/* 007108 70006508 3C0A8002 */ lui $t2, %hi(debug_feature_flag) +/* 00710C 7000650C 8D4A4300 */ lw $t2, %lo(debug_feature_flag)($t2) +/* 007110 70006510 AFA201A4 */ sw $v0, 0x1a4($sp) +/* 007114 70006514 00409825 */ move $s3, $v0 +/* 007118 70006518 1140001D */ beqz $t2, .L70006590 +/* 00711C 7000651C 00000000 */ nop +/* 007120 70006520 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 007124 70006524 00002025 */ move $a0, $zero +/* 007128 70006528 00028600 */ sll $s0, $v0, 0x18 +/* 00712C 7000652C 00105E03 */ sra $t3, $s0, 0x18 +/* 007130 70006530 01608025 */ move $s0, $t3 +/* 007134 70006534 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 007138 70006538 00002025 */ move $a0, $zero +/* 00713C 7000653C 00028E00 */ sll $s1, $v0, 0x18 +/* 007140 70006540 00117E03 */ sra $t7, $s1, 0x18 +/* 007144 70006544 01E08825 */ move $s1, $t7 +/* 007148 70006548 00002025 */ move $a0, $zero +/* 00714C 7000654C 0C0030C3 */ jal get_controller_buttons_held +/* 007150 70006550 3405FFFF */ li $a1, 65535 +/* 007154 70006554 3052FFFF */ andi $s2, $v0, 0xffff +/* 007158 70006558 00002025 */ move $a0, $zero +/* 00715C 7000655C 0C0030EB */ jal get_controller_buttons_pressed +/* 007160 70006560 3405FFFF */ li $a1, 65535 +/* 007164 70006564 00102600 */ sll $a0, $s0, 0x18 +/* 007168 70006568 00112E00 */ sll $a1, $s1, 0x18 +/* 00716C 7000656C 0005C603 */ sra $t8, $a1, 0x18 +/* 007170 70006570 00047603 */ sra $t6, $a0, 0x18 +/* 007174 70006574 01C02025 */ move $a0, $t6 +/* 007178 70006578 03002825 */ move $a1, $t8 +/* 00717C 7000657C 3246FFFF */ andi $a2, $s2, 0xffff +/* 007180 70006580 0FC24168 */ jal debug_menu_processor +/* 007184 70006584 3047FFFF */ andi $a3, $v0, 0xffff +/* 007188 70006588 3C018002 */ lui $at, %hi(debug_feature_flag) +/* 00718C 7000658C AC224300 */ sw $v0, %lo(debug_feature_flag)($at) +.L70006590: +/* 007190 70006590 0FC2FAE2 */ jal manage_mp_game +/* 007194 70006594 00000000 */ nop +/* 007198 70006598 0FC26D07 */ jal sub_GAME_7F09B41C +/* 00719C 7000659C 00000000 */ nop +/* 0071A0 700065A0 3C198002 */ lui $t9, %hi(current_stage_num) +/* 0071A4 700065A4 8F3941A8 */ lw $t9, %lo(current_stage_num)($t9) +/* 0071A8 700065A8 2401005A */ li $at, 90 +/* 0071AC 700065AC 13210018 */ beq $t9, $at, .L70006610 +/* 0071B0 700065B0 00000000 */ nop +/* 0071B4 700065B4 0FC26919 */ jal get_num_players +/* 0071B8 700065B8 00008825 */ move $s1, $zero +/* 0071BC 700065BC 18400014 */ blez $v0, .L70006610 +/* 0071C0 700065C0 00000000 */ nop +.L700065C4: +/* 0071C4 700065C4 0FC26D4A */ jal sub_GAME_7F09B528 +/* 0071C8 700065C8 02202025 */ move $a0, $s1 +/* 0071CC 700065CC 0FC26C43 */ jal set_cur_player +/* 0071D0 700065D0 00402025 */ move $a0, $v0 +/* 0071D4 700065D4 8EB00000 */ lw $s0, ($s5) +/* 0071D8 700065D8 860407F0 */ lh $a0, 0x7f0($s0) +/* 0071DC 700065DC 0C00110F */ jal set_video2_width_height +/* 0071E0 700065E0 860507F2 */ lh $a1, 0x7f2($s0) +/* 0071E4 700065E4 8EB00000 */ lw $s0, ($s5) +/* 0071E8 700065E8 860407F4 */ lh $a0, 0x7f4($s0) +/* 0071EC 700065EC 0C00112F */ jal set_video2_ulx_uly +/* 0071F0 700065F0 860507F6 */ lh $a1, 0x7f6($s0) +/* 0071F4 700065F4 0FC2FE00 */ jal sub_GAME_7F0BF800 +/* 0071F8 700065F8 00000000 */ nop +/* 0071FC 700065FC 0FC26919 */ jal get_num_players +/* 007200 70006600 26310001 */ addiu $s1, $s1, 1 +/* 007204 70006604 0222082A */ slt $at, $s1, $v0 +/* 007208 70006608 1420FFEE */ bnez $at, .L700065C4 +/* 00720C 7000660C 00000000 */ nop +.L70006610: +/* 007210 70006610 0FC2F8C3 */ jal sub_GAME_7F0BE30C +/* 007214 70006614 02602025 */ move $a0, $s3 +/* 007218 70006618 0FC243F7 */ jal get_debug_VisCVG_flag +/* 00721C 7000661C 00409825 */ move $s3, $v0 +/* 007220 70006620 10400037 */ beqz $v0, .L70006700 +/* 007224 70006624 2407FFFF */ li $a3, -1 +/* 007228 70006628 02601025 */ move $v0, $s3 +/* 00722C 7000662C 26730008 */ addiu $s3, $s3, 8 +/* 007230 70006630 3C08E700 */ lui $t0, 0xe700 +/* 007234 70006634 02601825 */ move $v1, $s3 +/* 007238 70006638 AC480000 */ sw $t0, ($v0) +/* 00723C 7000663C AC400004 */ sw $zero, 4($v0) +/* 007240 70006640 26730008 */ addiu $s3, $s3, 8 +/* 007244 70006644 3C09BA00 */ lui $t1, (0xBA001402 >> 16) # lui $t1, 0xba00 +/* 007248 70006648 02602025 */ move $a0, $s3 +/* 00724C 7000664C 35291402 */ ori $t1, (0xBA001402 & 0xFFFF) # ori $t1, $t1, 0x1402 +/* 007250 70006650 26730008 */ addiu $s3, $s3, 8 +/* 007254 70006654 AC690000 */ sw $t1, ($v1) +/* 007258 70006658 AC600004 */ sw $zero, 4($v1) +/* 00725C 7000665C 02602825 */ move $a1, $s3 +/* 007260 70006660 3C0DF900 */ lui $t5, 0xf900 +/* 007264 70006664 26730008 */ addiu $s3, $s3, 8 +/* 007268 70006668 AC8D0000 */ sw $t5, 0($a0) +/* 00726C 7000666C AC870004 */ sw $a3, 4($a0) +/* 007270 70006670 02603025 */ move $a2, $s3 +/* 007274 70006674 3C0CEE00 */ lui $t4, 0xee00 +/* 007278 70006678 26730008 */ addiu $s3, $s3, 8 +/* 00727C 7000667C ACAC0000 */ sw $t4, ($a1) +/* 007280 70006680 ACA70004 */ sw $a3, 4($a1) +/* 007284 70006684 3C0AB900 */ lui $t2, (0xB9000201 >> 16) # lui $t2, 0xb900 +/* 007288 70006688 02601025 */ move $v0, $s3 +/* 00728C 7000668C 354A0201 */ ori $t2, (0xB9000201 & 0xFFFF) # ori $t2, $t2, 0x201 +/* 007290 70006690 240B0004 */ li $t3, 4 +/* 007294 70006694 26730008 */ addiu $s3, $s3, 8 +/* 007298 70006698 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 00729C 7000669C 3C0E0FA5 */ lui $t6, (0x0FA54040 >> 16) # lui $t6, 0xfa5 +/* 0072A0 700066A0 ACCB0004 */ sw $t3, 4($a2) +/* 0072A4 700066A4 ACCA0000 */ sw $t2, ($a2) +/* 0072A8 700066A8 35CE4040 */ ori $t6, (0x0FA54040 & 0xFFFF) # ori $t6, $t6, 0x4040 +/* 0072AC 700066AC 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 0072B0 700066B0 02608025 */ move $s0, $s3 +/* 0072B4 700066B4 AC4F0000 */ sw $t7, ($v0) +/* 0072B8 700066B8 AC4E0004 */ sw $t6, 4($v0) +/* 0072BC 700066BC 0C001107 */ jal get_video2_settings_txtClipW +/* 0072C0 700066C0 26730008 */ addiu $s3, $s3, 8 +/* 0072C4 700066C4 00028C00 */ sll $s1, $v0, 0x10 +/* 0072C8 700066C8 0011C403 */ sra $t8, $s1, 0x10 +/* 0072CC 700066CC 0C00110B */ jal get_video2_settings_txtClipH +/* 0072D0 700066D0 03008825 */ move $s1, $t8 +/* 0072D4 700066D4 2459FFFF */ addiu $t9, $v0, -1 +/* 0072D8 700066D8 332803FF */ andi $t0, $t9, 0x3ff +/* 0072DC 700066DC 262CFFFF */ addiu $t4, $s1, -1 +/* 0072E0 700066E0 318A03FF */ andi $t2, $t4, 0x3ff +/* 0072E4 700066E4 00084880 */ sll $t1, $t0, 2 +/* 0072E8 700066E8 3C01F600 */ lui $at, 0xf600 +/* 0072EC 700066EC 01216825 */ or $t5, $t1, $at +/* 0072F0 700066F0 000A5B80 */ sll $t3, $t2, 0xe +/* 0072F4 700066F4 01AB7825 */ or $t7, $t5, $t3 +/* 0072F8 700066F8 AE0F0000 */ sw $t7, ($s0) +/* 0072FC 700066FC AE000004 */ sw $zero, 4($s0) +.L70006700: +/* 007300 70006700 0C002C9F */ jal read_screen_display_block_and_write_chars +/* 007304 70006704 02602025 */ move $a0, $s3 +/* 007308 70006708 0FC243CD */ jal get_memusage_display_flag +/* 00730C 7000670C 00409825 */ move $s3, $v0 +/* 007310 70006710 10400004 */ beqz $v0, .L70006724 +/* 007314 70006714 00000000 */ nop +/* 007318 70006718 0C000A56 */ jal display_speed_graph +/* 00731C 7000671C 02602025 */ move $a0, $s3 +/* 007320 70006720 00409825 */ move $s3, $v0 +.L70006724: +/* 007324 70006724 3C0E8002 */ lui $t6, %hi(debug_feature_flag) +/* 007328 70006728 8DCE4300 */ lw $t6, %lo(debug_feature_flag)($t6) +/* 00732C 7000672C 51C00007 */ beql $t6, $zero, .L7000674C +/* 007330 70006730 02601025 */ move $v0, $s3 +/* 007334 70006734 0FC24124 */ jal display_debug_menu_text_onscreen +/* 007338 70006738 00000000 */ nop +/* 00733C 7000673C 0FC23F9D */ jal print_debug_mcm_to_stdout +/* 007340 70006740 02602025 */ move $a0, $s3 +/* 007344 70006744 00409825 */ move $s3, $v0 +/* 007348 70006748 02601025 */ move $v0, $s3 +.L7000674C: +/* 00734C 7000674C 26730008 */ addiu $s3, $s3, 8 +/* 007350 70006750 3C18E900 */ lui $t8, 0xe900 +/* 007354 70006754 AC580000 */ sw $t8, ($v0) +/* 007358 70006758 AC400004 */ sw $zero, 4($v0) +/* 00735C 7000675C 02601825 */ move $v1, $s3 +/* 007360 70006760 3C19B800 */ lui $t9, 0xb800 +/* 007364 70006764 AC790000 */ sw $t9, ($v1) +/* 007368 70006768 AC600004 */ sw $zero, 4($v1) +/* 00736C 7000676C 3C088002 */ lui $t0, %hi(show_mem_use_flag) +/* 007370 70006770 8D0841B4 */ lw $t0, %lo(show_mem_use_flag)($t0) +/* 007374 70006774 26730008 */ addiu $s3, $s3, 8 +/* 007378 70006778 1100000B */ beqz $t0, .L700067A8 +/* 00737C 7000677C 00000000 */ nop +/* 007380 70006780 0C00263C */ jal nulled_mempLoopAllMemBanks +/* 007384 70006784 00000000 */ nop +/* 007388 70006788 0C0028A7 */ jal memaGenerateListsBeforeAfterMerge +/* 00738C 7000678C 00000000 */ nop +/* 007390 70006790 0FC2F5DD */ jal removed_debug_routine +/* 007394 70006794 02602025 */ move $a0, $s3 +/* 007398 70006798 0FC31994 */ jal nullsub_41 +/* 00739C 7000679C 00002025 */ move $a0, $zero +/* 0073A0 700067A0 3C018002 */ lui $at, %hi(show_mem_use_flag) +/* 0073A4 700067A4 AC2041B4 */ sw $zero, %lo(show_mem_use_flag)($at) +.L700067A8: +/* 0073A8 700067A8 3C098002 */ lui $t1, %hi(show_mem_bars_flag) +/* 0073AC 700067AC 8D2941B8 */ lw $t1, %lo(show_mem_bars_flag)($t1) +/* 0073B0 700067B0 11200003 */ beqz $t1, .L700067C0 +/* 0073B4 700067B4 00000000 */ nop +/* 0073B8 700067B8 0FC2F604 */ jal draw_membars +/* 0073BC 700067BC 02602025 */ move $a0, $s3 +.L700067C0: +/* 0073C0 700067C0 0FC2F5A7 */ jal allocate_something_in_mgfx +/* 0073C4 700067C4 02602025 */ move $a0, $s3 +/* 0073C8 700067C8 0FC2F5CE */ jal allocate_something_in_mvtx +/* 0073CC 700067CC 00000000 */ nop +/* 0073D0 700067D0 0C000CA6 */ jal video_related_8 +/* 0073D4 700067D4 00000000 */ nop +/* 0073D8 700067D8 0FC2441B */ jal get_debug_taskgrab_val +/* 0073DC 700067DC 00000000 */ nop +/* 0073E0 700067E0 1040001C */ beqz $v0, .L70006854 +/* 0073E4 700067E4 00002025 */ move $a0, $zero +/* 0073E8 700067E8 0C0030EB */ jal get_controller_buttons_pressed +/* 0073EC 700067EC 3405C000 */ li $a1, 49152 +/* 0073F0 700067F0 10400018 */ beqz $v0, .L70006854 +/* 0073F4 700067F4 00002025 */ move $a0, $zero +/* 0073F8 700067F8 0C0030C3 */ jal get_controller_buttons_held +/* 0073FC 700067FC 3405C000 */ li $a1, 49152 +/* 007400 70006800 3401C000 */ li $at, 49152 +/* 007404 70006804 14410013 */ bne $v0, $at, .L70006854 +.L70006808: +/* 007408 70006808 3C068002 */ lui $a2, %hi(taskgrab_ramdump_num) +/* 00740C 7000680C 8CC64324 */ lw $a2, %lo(taskgrab_ramdump_num)($a2) +/* 007410 70006810 02802025 */ move $a0, $s4 +/* 007414 70006814 0C002B25 */ jal sprintf +/* 007418 70006818 02C02825 */ move $a1, $s6 +/* 00741C 7000681C 02802025 */ move $a0, $s4 +/* 007420 70006820 0FC34026 */ jal check_file_found_on_indy +/* 007424 70006824 02E02825 */ move $a1, $s7 +/* 007428 70006828 10400006 */ beqz $v0, .L70006844 +/* 00742C 7000682C 3C068002 */ lui $a2, %hi(taskgrab_ramdump_num) +/* 007430 70006830 8CC64324 */ lw $a2, %lo(taskgrab_ramdump_num)($a2) +/* 007434 70006834 3C018002 */ lui $at, %hi(taskgrab_ramdump_num) +/* 007438 70006838 24C60001 */ addiu $a2, $a2, 1 +/* 00743C 7000683C 1000FFF2 */ b .L70006808 +/* 007440 70006840 AC264324 */ sw $a2, %lo(taskgrab_ramdump_num)($at) +.L70006844: +/* 007444 70006844 02802025 */ move $a0, $s4 +/* 007448 70006848 3C058000 */ lui $a1, 0x8000 +/* 00744C 7000684C 0FC33FF8 */ jal indy_send_capture_data +/* 007450 70006850 3C060040 */ lui $a2, 0x40 +.L70006854: +/* 007454 70006854 8FA401A4 */ lw $a0, 0x1a4($sp) +/* 007458 70006858 02602825 */ move $a1, $s3 +/* 00745C 7000685C 00003025 */ move $a2, $zero +/* 007460 70006860 0FC33F86 */ jal load_rsp_microcode +/* 007464 70006864 8FA70048 */ lw $a3, 0x48($sp) +/* 007468 70006868 0C002784 */ jal mem_related_calls_sort_merge_entries +/* 00746C 7000686C 27DE0001 */ addiu $fp, $fp, 1 +/* 007470 70006870 8FAC01AC */ lw $t4, 0x1ac($sp) +/* 007474 70006874 3C040001 */ lui $a0, 1 +/* 007478 70006878 398A0001 */ xori $t2, $t4, 1 +/* 00747C 7000687C 0C000A15 */ jal video_related_3 +/* 007480 70006880 AFAA01AC */ sw $t2, 0x1ac($sp) +/* 007484 70006884 3C028002 */ lui $v0, %hi(loadedstage) +/* 007488 70006888 10000006 */ b .L700068A4 +/* 00748C 7000688C 8C4242FC */ lw $v0, %lo(loadedstage)($v0) +.L70006890: +/* 007490 70006890 27DEFFFF */ addiu $fp, $fp, -1 +/* 007494 70006894 10000003 */ b .L700068A4 +/* 007498 70006898 8C4242FC */ lw $v0, %lo(loadedstage)($v0) +.L7000689C: +/* 00749C 7000689C 241E0004 */ li $fp, 4 +/* 0074A0 700068A0 8C4242FC */ lw $v0, %lo(loadedstage)($v0) +.L700068A4: +/* 0074A4 700068A4 0440FEDD */ bltz $v0, .L7000641C +/* 0074A8 700068A8 00000000 */ nop +/* 0074AC 700068AC 17C0FEDB */ bnez $fp, .L7000641C +/* 0074B0 700068B0 00000000 */ nop +.L700068B4: +/* 0074B4 700068B4 0FC2FEC8 */ jal unload_stage_text_data +/* 0074B8 700068B8 00000000 */ nop +/* 0074BC 700068BC 0FC3023F */ jal stop_demo_playback +/* 0074C0 700068C0 00000000 */ nop +/* 0074C4 700068C4 0C002671 */ jal mempNullNextEntryInBank +/* 0074C8 700068C8 24040004 */ li $a0, 4 +/* 0074CC 700068CC 0FC2F46F */ jal obBlankResourcesLoadedInBank +/* 0074D0 700068D0 24040004 */ li $a0, 4 +/* 0074D4 700068D4 3C028002 */ lui $v0, %hi(loadedstage) +/* 0074D8 700068D8 244242FC */ addiu $v0, %lo(loadedstage) # addiu $v0, $v0, 0x42fc +/* 0074DC 700068DC 8C4D0000 */ lw $t5, ($v0) +/* 0074E0 700068E0 8FAF01DC */ lw $t7, 0x1dc($sp) +/* 0074E4 700068E4 3C018002 */ lui $at, %hi(current_stage_num) +/* 0074E8 700068E8 240BFFFF */ li $t3, -1 +/* 0074EC 700068EC AC2D41A8 */ sw $t5, %lo(current_stage_num)($at) +/* 0074F0 700068F0 11E0FE26 */ beqz $t7, .L7000618C +/* 0074F4 700068F4 AC4B0000 */ sw $t3, ($v0) +/* 0074F8 700068F8 0FC3469F */ jal sub_GAME_7F0D1A7C +/* 0074FC 700068FC AFB301A8 */ sw $s3, 0x1a8($sp) +/* 007500 70006900 8FBF003C */ lw $ra, 0x3c($sp) +/* 007504 70006904 8FB00018 */ lw $s0, 0x18($sp) +/* 007508 70006908 8FB1001C */ lw $s1, 0x1c($sp) +/* 00750C 7000690C 8FB20020 */ lw $s2, 0x20($sp) +/* 007510 70006910 8FB30024 */ lw $s3, 0x24($sp) +/* 007514 70006914 8FB40028 */ lw $s4, 0x28($sp) +/* 007518 70006918 8FB5002C */ lw $s5, 0x2c($sp) +/* 00751C 7000691C 8FB60030 */ lw $s6, 0x30($sp) +/* 007520 70006920 8FB70034 */ lw $s7, 0x34($sp) +/* 007524 70006924 8FBE0038 */ lw $fp, 0x38($sp) +/* 007528 70006928 03E00008 */ jr $ra +/* 00752C 7000692C 27BD01E0 */ addiu $sp, $sp, 0x1e0 +) +#endif + +/** + * 7530 70006930 + * run title [0x5A->loaded stage#]; fry AT + * redirect to 70006950: A0=0x5A + */ +void run_title_stage(void) { + set_loaded_stage(LEVELID_TITLE); +} + +/** + * 7550 70006950 + * A0->loaded stage# [800242FC]; fry AT + * 0x5A jumps to folder select + * 0x5B + * 0x63 + */ +void set_loaded_stage(LEVELID stage){ + loadedstage = stage; +} + +/** + * 755C 7000695C + * V0= stage# [800241A8] + */ +LEVELID get_stage_num(){ + return current_stage_num; +} + +/** + * 7568 70006968 + * return to title screen from stage + */ +void return_to_title_from_level_end(void) { +#ifdef VERSION_JP + display_objective_status_text_on_status_change(); + FUN_7f057a40(); +#endif + if ((get_stage_num() != LEVELID_CUBA) && (check_objectives_complete() != 0x0)) { + end_of_mission_briefing(); + } + run_title_stage(); +} + +/** + * 75B4 700069B4 + * V0=state of debug menu (1:on; 0:off) [80024300] + */ +s32 get_debug_parse_flag(void) { + return debug_feature_flag; +} + +/** + * 75C0 700069C0 + * V0= p->debug.notice.list entry for boss_c_debug using data at 800241A0 + */ +void bossInitDebugNoticeList(void) { + debCheckAddDebugNoticeListEntry(&boss_c_ptr_debug_notice_list_entry, "boss_c_debug"); +} + + diff --git a/src/boss.h b/src/boss.h new file mode 100644 index 0000000..25e54a5 --- /dev/null +++ b/src/boss.h @@ -0,0 +1,15 @@ +#ifndef _BOSS_H_ +#define _BOSS_H_ +#include +#include "bondgame.h" + +struct memallocstring +{ + s32 id; + void *string; +}; + +void set_loaded_stage(LEVELID stage); +void bossInitDebugNoticeList(void); + +#endif diff --git a/src/c_data_filler.c b/src/c_data_filler.c new file mode 100644 index 0000000..fc60593 --- /dev/null +++ b/src/c_data_filler.c @@ -0,0 +1,6 @@ +#include "ultra64.h" +#include "c_data_filler.h" + +//this defines the size of blank are to store compressed code at +u8 c_data_array[0x11c00] = {0}; + diff --git a/src/c_data_filler.h b/src/c_data_filler.h new file mode 100644 index 0000000..e982621 --- /dev/null +++ b/src/c_data_filler.h @@ -0,0 +1,7 @@ +#ifndef _C_DATA_FILLER_H_ +#define _C_DATA_FILLER_H_ +#include + +extern u8 c_data_array[0x11c00]; + +#endif diff --git a/src/cfb.c b/src/cfb.c new file mode 100644 index 0000000..af2fd9e --- /dev/null +++ b/src/cfb.c @@ -0,0 +1,5 @@ +#include "ultra64.h" +#include "bondgame.h" + +u8 cfb_16_a[320*240*2]; +u8 cfb_16_b[320*240*2]; \ No newline at end of file diff --git a/src/deb.c b/src/deb.c new file mode 100644 index 0000000..7b76e9f --- /dev/null +++ b/src/deb.c @@ -0,0 +1,278 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "ramrom.h" +#include "deb.h" + +/** + * @file deb.c + * This file contains debug related code. + * + * In particular, it seems to handle debug_notice_list + */ + +/* bss */ +extern char dword_CODE_bss_80060890[0x400]; + + + +/* data */ +u32 D_800232E0[] = {0, 0}; +u32 debug_notice_list[] = {0, 0, 0, 0}; +char * debug_notice_list_data = &dword_CODE_bss_80060890; + + + + + +/** + * 5920 70004D20 + * V0=p->match in debug.notice.list [800232E8] or NULL if not found + * accepts: A0=p->name, A1=p->data + */ +#ifdef NONMATCHING +void *debCheckIfDNLEntryExists(s32 arg0) +{ + void *temp_s0; + void *phi_s0; + + phi_s0 = debug_notice_list; + if (debug_notice_list != 0) + { +loop_1: + if (something_with_strings_0(phi_s0->unk8, arg0) == 0) + { + return phi_s0; + } + temp_s0 = phi_s0->unk0; + phi_s0 = temp_s0; + if (temp_s0 != 0) + { + goto loop_1; + } + } + return NULL; +} +#else +GLOBAL_ASM( +.text +glabel debCheckIfDNLEntryExists +/* 005920 70004D20 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 005924 70004D24 AFB00014 */ sw $s0, 0x14($sp) +/* 005928 70004D28 3C108002 */ lui $s0, %hi(debug_notice_list) +/* 00592C 70004D2C 8E1032E8 */ lw $s0, %lo(debug_notice_list)($s0) +/* 005930 70004D30 AFB10018 */ sw $s1, 0x18($sp) +/* 005934 70004D34 00808825 */ move $s1, $a0 +/* 005938 70004D38 1200000B */ beqz $s0, .L70004D68 +/* 00593C 70004D3C AFBF001C */ sw $ra, 0x1c($sp) +/* 005940 70004D40 8E040008 */ lw $a0, 8($s0) +.L70004D44: +/* 005944 70004D44 0C002A13 */ jal something_with_strings_0 +/* 005948 70004D48 02202825 */ move $a1, $s1 +/* 00594C 70004D4C 54400004 */ bnezl $v0, .L70004D60 +/* 005950 70004D50 8E100000 */ lw $s0, ($s0) +/* 005954 70004D54 10000005 */ b .L70004D6C +/* 005958 70004D58 02001025 */ move $v0, $s0 +/* 00595C 70004D5C 8E100000 */ lw $s0, ($s0) +.L70004D60: +/* 005960 70004D60 5600FFF8 */ bnezl $s0, .L70004D44 +/* 005964 70004D64 8E040008 */ lw $a0, 8($s0) +.L70004D68: +/* 005968 70004D68 00001025 */ move $v0, $zero +.L70004D6C: +/* 00596C 70004D6C 8FBF001C */ lw $ra, 0x1c($sp) +/* 005970 70004D70 8FB00014 */ lw $s0, 0x14($sp) +/* 005974 70004D74 8FB10018 */ lw $s1, 0x18($sp) +/* 005978 70004D78 03E00008 */ jr $ra +/* 00597C 70004D7C 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + +/** + * 5980 70004D80 + * V0=p->entry of size A0 allocated in debug.notice.list; entry allocated in block 6 on failure + * accepts: A0=size + */ +#ifdef NONMATCHING +u32 debAllocateDNLEntry(s32 arg0) +{ + u32 temp_v0; + + temp_v0 = (debug_notice_list_data + arg0); + if (&tlbthread >= temp_v0) + { + debug_notice_list_data = temp_v0; + return debug_notice_list_data; + } + debug_notice_list_data = (u32) (temp_v0 - arg0); + return mempAllocBytesInBank(6); +} +#else +GLOBAL_ASM( +.text +glabel debAllocateDNLEntry +/* 005980 70004D80 3C028002 */ lui $v0, %hi(debug_notice_list_data) +/* 005984 70004D84 8C4232F8 */ lw $v0, %lo(debug_notice_list_data)($v0) +/* 005988 70004D88 3C0E8006 */ lui $t6, %hi(tlbthread) +/* 00598C 70004D8C 25CE0C90 */ addiu $t6, %lo(tlbthread) # addiu $t6, $t6, 0xc90 +/* 005990 70004D90 00401825 */ move $v1, $v0 +/* 005994 70004D94 00441021 */ addu $v0, $v0, $a0 +/* 005998 70004D98 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00599C 70004D9C 01C2082B */ sltu $at, $t6, $v0 +/* 0059A0 70004DA0 10200008 */ beqz $at, .L70004DC4 +/* 0059A4 70004DA4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0059A8 70004DA8 00441023 */ subu $v0, $v0, $a0 +/* 0059AC 70004DAC 3C018002 */ lui $at, %hi(debug_notice_list_data) +/* 0059B0 70004DB0 AC2232F8 */ sw $v0, %lo(debug_notice_list_data)($at) +/* 0059B4 70004DB4 0C0025C8 */ jal mempAllocBytesInBank +/* 0059B8 70004DB8 24050006 */ li $a1, 6 +/* 0059BC 70004DBC 10000005 */ b .L70004DD4 +/* 0059C0 70004DC0 8FBF0014 */ lw $ra, 0x14($sp) +.L70004DC4: +/* 0059C4 70004DC4 3C018002 */ lui $at, %hi(debug_notice_list_data) +/* 0059C8 70004DC8 AC2232F8 */ sw $v0, %lo(debug_notice_list_data)($at) +/* 0059CC 70004DCC 00601025 */ move $v0, $v1 +/* 0059D0 70004DD0 8FBF0014 */ lw $ra, 0x14($sp) +.L70004DD4: +/* 0059D4 70004DD4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0059D8 70004DD8 03E00008 */ jr $ra +/* 0059DC 70004DDC 00000000 */ nop +) +#endif + + + + +/** + * 59E0 70004DE0 + * V0=p->new entry added in debug.notice.list + * accepts: A0=p->name, A1=p->data + */ +#ifdef NONMATCHING +void debAllocateAndAddDNLEntry(s32 arg0, s32 arg1) +{ + ? temp_ret; + + temp_ret = debAllocateDNLEntry(0x10); + *temp_ret = (s32) debug_notice_list; + temp_ret->unk4 = arg1; + temp_ret->unk8 = arg0; + debug_notice_list = temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel debAllocateAndAddDNLEntry +/* 0059E0 70004DE0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0059E4 70004DE4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0059E8 70004DE8 AFA40018 */ sw $a0, 0x18($sp) +/* 0059EC 70004DEC AFA5001C */ sw $a1, 0x1c($sp) +/* 0059F0 70004DF0 0C001360 */ jal debAllocateDNLEntry +/* 0059F4 70004DF4 24040010 */ li $a0, 16 +/* 0059F8 70004DF8 3C038002 */ lui $v1, %hi(debug_notice_list) +/* 0059FC 70004DFC 246332E8 */ addiu $v1, %lo(debug_notice_list) # addiu $v1, $v1, 0x32e8 +/* 005A00 70004E00 8C6E0000 */ lw $t6, ($v1) +/* 005A04 70004E04 AC4E0000 */ sw $t6, ($v0) +/* 005A08 70004E08 8FAF001C */ lw $t7, 0x1c($sp) +/* 005A0C 70004E0C AC4F0004 */ sw $t7, 4($v0) +/* 005A10 70004E10 8FB80018 */ lw $t8, 0x18($sp) +/* 005A14 70004E14 AC580008 */ sw $t8, 8($v0) +/* 005A18 70004E18 8FBF0014 */ lw $ra, 0x14($sp) +/* 005A1C 70004E1C AC620000 */ sw $v0, ($v1) +/* 005A20 70004E20 27BD0018 */ addiu $sp, $sp, 0x18 +/* 005A24 70004E24 03E00008 */ jr $ra +/* 005A28 70004E28 00000000 */ nop +) +#endif + + + + +/** + * 5A2C 70004E2C + * V0= p->debug.notice.list entry for boss_c_debug using data at 800241A0 + */ +void debInitDebugNoticeList(void) +{ + debCheckAddDebugNoticeListEntry(&D_800232E0, "deb_c_debug"); + init_tlb(); +} + + +/** + * 5A60 70004E60 + * V0=p->debug.notice.list entry for name A1 and data A0; generates if not found + * accepts: A0=p->data, A1=p->name + */ +void debCheckAddDebugNoticeListEntry(void* data, char * string) +{ + if (debCheckIfDNLEntryExists(string) == 0) + { + debAllocateAndAddDNLEntry(string, data); + } +} + + + +/** + * 5A98 70004E98 + * V0=0; scan debug.notice.list until a NULL pointer + * likely this would have executed some function for each entry... + */ +#ifdef NONMATCHING +void *debScanDNLEntries_NEUTERED(void) +{ + void *temp_v0; + void *phi_v0; + + phi_v0 = debug_notice_list; + if (debug_notice_list != 0) + { +loop_1: + temp_v0 = *phi_v0; + phi_v0 = temp_v0; + if (temp_v0 != 0) + { + goto loop_1; + } + } + return debug_notice_list; +} +#else +GLOBAL_ASM( +.text +glabel debScanDNLEntries_NEUTERED +/* 005A98 70004E98 3C028002 */ lui $v0, %hi(debug_notice_list) +/* 005A9C 70004E9C 8C4232E8 */ lw $v0, %lo(debug_notice_list)($v0) +/* 005AA0 70004EA0 10400004 */ beqz $v0, .L70004EB4 +/* 005AA4 70004EA4 00000000 */ nop +/* 005AA8 70004EA8 8C420000 */ lw $v0, ($v0) +.L70004EAC: +/* 005AAC 70004EAC 5440FFFF */ bnezl $v0, .L70004EAC +/* 005AB0 70004EB0 8C420000 */ lw $v0, ($v0) +.L70004EB4: +/* 005AB4 70004EB4 03E00008 */ jr $ra +/* 005AB8 70004EB8 00000000 */ nop +) +#endif + + + +/** + * 5ABC 70004EBC + * unconditional return + */ +void debRemoved70004EBC(void) +{ + return; +} + +/** + * 5AC4 70004EC4 + * A0->SP+0, A1->SP+4, A2->SP+8 + */ +void debRemoved70004EC4(s32 arg0, s32 arg1, s32 arg2) +{ + return; +} + + diff --git a/src/deb.h b/src/deb.h new file mode 100644 index 0000000..9075851 --- /dev/null +++ b/src/deb.h @@ -0,0 +1,9 @@ +#ifndef _DEB_H_ +#define _DEB_H_ + +#include "ultra64.h" + +void debInitDebugNoticeList(void); +void debCheckAddDebugNoticeListEntry(void *arg0, char *string); + +#endif diff --git a/src/deb_print.c b/src/deb_print.c new file mode 100644 index 0000000..a56e586 --- /dev/null +++ b/src/deb_print.c @@ -0,0 +1,698 @@ +#include "ultra64.h" +#include "deb_print.h" +#include "bondgame.h" + +/** + * @file deb_print.c + * This file contains the stderr manager. + */ + +//im just padding +u32 D_80023300 = 0; + + +struct debug_processor_error_entry debug_processor_error_table[] = { +{0x80000000, 0x80000000, "BD"}, +{0x8000, 0x8000, "IP8"}, +{0x4000, 0x4000, "IP7"}, +{0x2000, 0x2000, "IP6"}, +{0x1000, 0x1000, "IP5"}, +{0x800, 0x800, "IP4"}, +{0x400, 0x400, "IP3"}, +{0x200, 0x200, "IP2"}, +{0x100, 0x100, "IP1"}, +{0x7C, 0, "Int"}, +{0x7C, 4, "TLBmod"}, +{0x7C, 8, "TLBload"}, +{0x7C, 0xC, "TLBstore"}, +{0x7C, 0x10, "Address error on load or instruction fetch"}, +{0x7C, 0x14, "Address error on store"}, +{0x7C, 0x18, "Bus error exception on instruction fetch"}, +{0x7C, 0x1C, "Bus error exception on data reference"}, +{0x7C, 0x20, "Syscall"}, +{0x7C, 0x24, "Brk"}, +{0x7C, 0x28, "Reserved instruction"}, +{0x7C, 0x2C, "Cop unusable"}, +{0x7C, 0x30, "Overflow"}, +{0x7C, 0x34, "Trap"}, +{0x7C, 0x38, "Virtual coherency exception on intruction fetch"}, +{0x7C, 0x3C, "Fp exception"}, +{0x7C, 0x5C, "Watchpoint"}, +{0x7C, 0x7C, "Virtual coherency exception on data reference"}, +{0, 0, ""}, +{0x80000000, 0x80000000, "CU3"}, +{0x40000000, 0x40000000, "CU2"}, +{0x20000000, 0x20000000, "CU1"}, +{0x10000000, 0x10000000, "CU0"}, +{0x8000000, 0x8000000, "RP"}, +{0x4000000, 0x4000000, "FR"}, +{0x2000000, 0x2000000, "RE"}, +{0x400000, 0x400000, "BEV"}, +{0x200000, 0x200000, "TS"}, +{0x100000, 0x100000, "SR"}, +{0x40000, 0x40000, "CH"}, +{0x20000, 0x20000, "CE"}, +{0x10000, 0x10000, "DE"}, +{0x8000, 0x8000, "IM8"}, +{0x4000, 0x4000, "IM7"}, +{0x2000, 0x2000, "IM6"}, +{0x1000, 0x1000, "IM5"}, +{0x800, 0x800, "IM4"}, +{0x400, 0x400, "IM3"}, +{0x200, 0x200, "IM2"}, +{0x100, 0x100, "IM1"}, +{0x80, 0x80, "KX"}, +{0x40, 0x40, "SX"}, +{0x20, 0x20, "UX"}, +{0x18, 0x10, "USR"}, +{0x18, 8, "SUP"}, +{0x18, 0, "KER"}, +{4, 4, "ERL"}, +{2, 2, "EXL"}, +{1, 1, "IE"}, +{0, 0, ""}, +{0x1000000, 0x1000000, "FS"}, +{0x800000, 0x800000, "C"}, +{0x20000, 0x20000, "Unimplemented"}, +{0x10000, 0x10000, "Invalid op"}, +{0x8000, 0x8000, "/ by 0.0"}, +{0x4000, 0x4000, "Overflow"}, +{0x2000, 0x2000, "Underflow"}, +{0x1000, 0x1000, "Inexact op"}, +{0x800, 0x800, "EV"}, +{0x400, 0x400, "EZ"}, +{0x200, 0x200, "EO"}, +{0x100, 0x100, "EU"}, +{0x80, 0x80, "EI"}, +{0x40, 0x40, "FV"}, +{0x20, 0x20, "FZ"}, +{0x10, 0x10, "FO"}, +{8, 8, "FU"}, +{4, 4, "FI"}, +{3, 0, "RN"}, +{3, 1, "RZ"}, +{3, 2, "RP"}, +{3, 3, "RM"}, +{0, 0, ""} }; + +void *stack_ptrs_1[] = {&sp_rmon, &sp_idle, &sp_shed, &sp_main, &sp_audi}; +void *stack_ptrs_2[] = {&sp_idle, &sp_shed, &sp_main, &sp_audi, &sp_debug}; +void *stack_ptrs_3[] = {&sp_rmon, &sp_idle, &sp_shed, &sp_main, &sp_audi}; + +char stderr_buffer[2280] = {0x0}; + + +//split more here likely +u32 std_error_font_bitcode[] = { +0x00000000, 0x22220200, 0x55000000, 0x5F5F500, 0x27427200, +0x05124500, 0x34255300, 0x22000000, 0x24444420, 0x42222240, +0x06F6F600, 0x272000, 0x240, 0x70000, 0x200, +0x11224480, 0x25555200, 0x26222700, 0x25125700, 0x61211600, +0x33557300, 0x64611600, 0x24655200, 0x71112200, 0x25755200, +0x25531600, 0x200200, 0x200640, 0x1242100, 0x707000, + 0x4212400, 0x7120200, 0x25FF5700, 0x2557D00, 0x6575E00, + 0x7445300, 0x7555600, 0x7565700, 0x7564400, 0x7C95700, + 0x5575500, 0x7222700, 0x3111600, 0x5665500, 0x4445F00, + 0xDFF9D00, 0xF777D00, 0x7DD5700, 0x7564600, 0x7995770, + 0x7565500, 0x7461E00, 0x7222200, 0xD999600, 0xD552200, + 0xDF77500, 0xD625500, 0x5622600, 0x7125700, 0x32222230, +0x44222110, 0x62222260, 0x25000000, 0x700, 0x42200000, + 0x67D700, 0x44755700, 0x788600, 0x117DD700, 0x6FC700, +0x32722700, 0x7DD730, 0x44755500, 0x2622700, 0x2711130, +0x44766500, 0x62222700, 0xFFFF00, 0x755D00, 0x6DD600, + 0x755740, 0x799710, 0x744600, 0x775700, 0x2722300, + 0x555700, 0x552200, 0x577500, 0x562500, 0x552220, + 0x703700, 0x12242210, 0x2222220, 0x42212240, 0x5A0000 }; + +void *ptr_videobuffer1 = 0; +void *ptr_videobuffer2 = 0; + +u32 padding_80024184[4] = {0}; + + + + +/** + * 6230 70005630 + * write char A2 to (A0,A1) in stderr + * accepts: A0=xpos, A1=ypos, A2=char + */ +#ifdef NONMATCHING +void write_char_to_pos_stderr(int xpos,int ypos,u8 letter) { + if ((letter == 9) || (letter == 10)) { + letter = 0; + } + if ((letter <= 0 || letter >= 0x20) && letter >= 0x7f) { + letter = 0x3f; + } + if ((0 < xpos && xpos < 0x48) && (0 < ypos && ypos < 0x20)) { + stderr_buffer[ypos * 0x47 + xpos] = letter; + } + return; +} +#else +GLOBAL_ASM( +.text +glabel write_char_to_pos_stderr +/* 006230 70005630 30CE00FF */ andi $t6, $a2, 0xff +/* 006234 70005634 AFA60008 */ sw $a2, 8($sp) +/* 006238 70005638 24010009 */ li $at, 9 +/* 00623C 7000563C 01C03025 */ move $a2, $t6 +/* 006240 70005640 11C10004 */ beq $t6, $at, .L70005654 +/* 006244 70005644 01C01025 */ move $v0, $t6 +/* 006248 70005648 2401000A */ li $at, 10 +/* 00624C 7000564C 15C10003 */ bne $t6, $at, .L7000565C +/* 006250 70005650 00000000 */ nop +.L70005654: +/* 006254 70005654 00003025 */ move $a2, $zero +/* 006258 70005658 00001025 */ move $v0, $zero +.L7000565C: +/* 00625C 7000565C 18400002 */ blez $v0, .L70005668 +/* 006260 70005660 28410020 */ slti $at, $v0, 0x20 +/* 006264 70005664 14200003 */ bnez $at, .L70005674 +.L70005668: +/* 006268 70005668 2841007F */ slti $at, $v0, 0x7f +/* 00626C 7000566C 14200002 */ bnez $at, .L70005678 +/* 006270 70005670 00000000 */ nop +.L70005674: +/* 006274 70005674 2406003F */ li $a2, 63 +.L70005678: +/* 006278 70005678 0480000E */ bltz $a0, .L700056B4 +/* 00627C 7000567C 28810048 */ slti $at, $a0, 0x48 +/* 006280 70005680 1020000C */ beqz $at, .L700056B4 +/* 006284 70005684 00000000 */ nop +/* 006288 70005688 04A0000A */ bltz $a1, .L700056B4 +/* 00628C 7000568C 28A10020 */ slti $at, $a1, 0x20 +/* 006290 70005690 10200008 */ beqz $at, .L700056B4 +/* 006294 70005694 000578C0 */ sll $t7, $a1, 3 +/* 006298 70005698 01E57821 */ addu $t7, $t7, $a1 +/* 00629C 7000569C 000F78C0 */ sll $t7, $t7, 3 +/* 0062A0 700056A0 01E57823 */ subu $t7, $t7, $a1 +/* 0062A4 700056A4 01E4C021 */ addu $t8, $t7, $a0 +/* 0062A8 700056A8 3C018002 */ lui $at, %hi(stderr_buffer) +/* 0062AC 700056AC 00380821 */ addu $at, $at, $t8 +/* 0062B0 700056B0 A0263718 */ sb $a2, %lo(stderr_buffer)($at) +.L700056B4: +/* 0062B4 700056B4 03E00008 */ jr $ra +/* 0062B8 700056B8 00000000 */ nop +) +#endif + + + + +/** + * 62BC 700056BC + * write char A0 to stderr + * accepts: A0=char + */ +#ifdef NONMATCHING +void __osRdbSend(void) { + +} +#else +GLOBAL_ASM( +.text +glabel __osRdbSend +/* 0062BC 700056BC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0062C0 700056C0 308600FF */ andi $a2, $a0, 0xff +/* 0062C4 700056C4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0062C8 700056C8 AFB00018 */ sw $s0, 0x18($sp) +/* 0062CC 700056CC AFA40028 */ sw $a0, 0x28($sp) +/* 0062D0 700056D0 10C00039 */ beqz $a2, .L700057B8 +/* 0062D4 700056D4 00C01025 */ move $v0, $a2 +/* 0062D8 700056D8 24010009 */ li $at, 9 +/* 0062DC 700056DC 14C1000A */ bne $a2, $at, .L70005708 +/* 0062E0 700056E0 3C108002 */ lui $s0, %hi(stderr_buffer + 0x8E0) +/* 0062E4 700056E4 26103FF8 */ addiu $s0, %lo(stderr_buffer + 0x8E0) # addiu $s0, $s0, 0x3ff8 +.L700056E8: +/* 0062E8 700056E8 0C0015AF */ jal __osRdbSend +/* 0062EC 700056EC 24040020 */ li $a0, 32 +/* 0062F0 700056F0 8E0E0000 */ lw $t6, ($s0) +/* 0062F4 700056F4 31CF0007 */ andi $t7, $t6, 7 +/* 0062F8 700056F8 15E0FFFB */ bnez $t7, .L700056E8 +/* 0062FC 700056FC 00000000 */ nop +/* 006300 70005700 1000002E */ b .L700057BC +/* 006304 70005704 8FBF001C */ lw $ra, 0x1c($sp) +.L70005708: +/* 006308 70005708 2401000A */ li $at, 10 +/* 00630C 7000570C 14410008 */ bne $v0, $at, .L70005730 +/* 006310 70005710 3C038002 */ lui $v1, %hi(stderr_buffer + 0x8E4) +/* 006314 70005714 24633FFC */ addiu $v1, %lo(stderr_buffer + 0x8E4) # addiu $v1, $v1, 0x3ffc +/* 006318 70005718 8C780000 */ lw $t8, ($v1) +/* 00631C 7000571C 3C108002 */ lui $s0, %hi(stderr_buffer + 0x8E0) +/* 006320 70005720 26103FF8 */ addiu $s0, %lo(stderr_buffer + 0x8E0) # addiu $s0, $s0, 0x3ff8 +/* 006324 70005724 27190001 */ addiu $t9, $t8, 1 +/* 006328 70005728 AC790000 */ sw $t9, ($v1) +/* 00632C 7000572C AE000000 */ sw $zero, ($s0) +.L70005730: +/* 006330 70005730 3C038002 */ lui $v1, %hi(stderr_buffer + 0x8E4) +/* 006334 70005734 24633FFC */ addiu $v1, %lo(stderr_buffer + 0x8E4) # addiu $v1, $v1, 0x3ffc +/* 006338 70005738 8C650000 */ lw $a1, ($v1) +/* 00633C 7000573C 3C108002 */ lui $s0, %hi(stderr_buffer + 0x8E0) +/* 006340 70005740 26103FF8 */ addiu $s0, %lo(stderr_buffer + 0x8E0) # addiu $s0, $s0, 0x3ff8 +/* 006344 70005744 28A1001F */ slti $at, $a1, 0x1f +/* 006348 70005748 1420000A */ bnez $at, .L70005774 +/* 00634C 7000574C 24A4FFE2 */ addiu $a0, $a1, -0x1e +/* 006350 70005750 AFA20024 */ sw $v0, 0x24($sp) +/* 006354 70005754 0C0015F3 */ jal scroll_stderr_oneline +/* 006358 70005758 A3A6002B */ sb $a2, 0x2b($sp) +/* 00635C 7000575C 3C038002 */ lui $v1, %hi(stderr_buffer + 0x8E4) +/* 006360 70005760 24633FFC */ addiu $v1, %lo(stderr_buffer + 0x8E4) # addiu $v1, $v1, 0x3ffc +/* 006364 70005764 2408001E */ li $t0, 30 +/* 006368 70005768 8FA20024 */ lw $v0, 0x24($sp) +/* 00636C 7000576C 93A6002B */ lbu $a2, 0x2b($sp) +/* 006370 70005770 AC680000 */ sw $t0, ($v1) +.L70005774: +/* 006374 70005774 2401000A */ li $at, 10 +/* 006378 70005778 50410010 */ beql $v0, $at, .L700057BC +/* 00637C 7000577C 8FBF001C */ lw $ra, 0x1c($sp) +/* 006380 70005780 8E040000 */ lw $a0, ($s0) +/* 006384 70005784 0C00158C */ jal write_char_to_pos_stderr +/* 006388 70005788 8C650000 */ lw $a1, ($v1) +/* 00638C 7000578C 8E090000 */ lw $t1, ($s0) +/* 006390 70005790 3C038002 */ lui $v1, %hi(stderr_buffer + 0x8E4) +/* 006394 70005794 24633FFC */ addiu $v1, %lo(stderr_buffer + 0x8E4) # addiu $v1, $v1, 0x3ffc +/* 006398 70005798 252A0001 */ addiu $t2, $t1, 1 +/* 00639C 7000579C 29410047 */ slti $at, $t2, 0x47 +/* 0063A0 700057A0 14200005 */ bnez $at, .L700057B8 +/* 0063A4 700057A4 AE0A0000 */ sw $t2, ($s0) +/* 0063A8 700057A8 8C6C0000 */ lw $t4, ($v1) +/* 0063AC 700057AC AE000000 */ sw $zero, ($s0) +/* 0063B0 700057B0 258D0001 */ addiu $t5, $t4, 1 +/* 0063B4 700057B4 AC6D0000 */ sw $t5, ($v1) +.L700057B8: +/* 0063B8 700057B8 8FBF001C */ lw $ra, 0x1c($sp) +.L700057BC: +/* 0063BC 700057BC 8FB00018 */ lw $s0, 0x18($sp) +/* 0063C0 700057C0 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0063C4 700057C4 03E00008 */ jr $ra +/* 0063C8 700057C8 00000000 */ nop +) +#endif + + + + +/** + * 63CC 700057CC + * scroll stderr down one line + * accepts: A0=ypos + */ +#ifdef NONMATCHING +s32 scroll_stderr_oneline(s32 arg0) { + void *temp_a1_2; + void *temp_a1; + + // Node 0 + if (0 < arg0) + { + // Node 1 + // Node 2 + // Node 3 + temp_a1_2 = (&stderr_buffer + 3); + stderr_buffer = (s8) stderr_buffer.unk47; + stderr_buffer.unk1 = (s8) stderr_buffer.unk48; + stderr_buffer.unk2 = (s8) stderr_buffer.unk49; + // Node 4 + temp_a1 = (temp_a1_2 + 4); + temp_a1->unk-3 = (s8) temp_a1_2->unk48; + temp_a1->unk-2 = (s8) temp_a1_2->unk49; + temp_a1->unk-1 = (s8) temp_a1_2->unk4A; + temp_a1->unk-4 = (s8) temp_a1_2->unk47; + if ((3 + 4) != 0x47) + { + goto loop_4; + } + // Node 5 + if ((&stderr_buffer + 0x47) != (stderr_buffer + 0x899)) + { + goto loop_3; + } + // Node 6 + if (0 < (arg0 + -1)) + { + goto loop_2; + } + } + // (possible return value: (0 < arg0)) +} +#else +GLOBAL_ASM( +.text +glabel scroll_stderr_oneline +/* 0063CC 700057CC 0004102A */ slt $v0, $zero, $a0 +/* 0063D0 700057D0 10400020 */ beqz $v0, .L70005854 +/* 0063D4 700057D4 2484FFFF */ addiu $a0, $a0, -1 +/* 0063D8 700057D8 3C088002 */ lui $t0, %hi(stderr_buffer + 0x899) +/* 0063DC 700057DC 25083FB1 */ addiu $t0, %lo(stderr_buffer + 0x899) # addiu $t0, $t0, 0x3fb1 +/* 0063E0 700057E0 24070047 */ li $a3, 71 +.L700057E4: +/* 0063E4 700057E4 3C0E8002 */ lui $t6, %hi(stderr_buffer) +/* 0063E8 700057E8 25C63718 */ addiu $a2, $t6, %lo(stderr_buffer) +/* 0063EC 700057EC 00C01825 */ move $v1, $a2 +.L700057F0: +/* 0063F0 700057F0 90CF0047 */ lbu $t7, 0x47($a2) +/* 0063F4 700057F4 90D80048 */ lbu $t8, 0x48($a2) +/* 0063F8 700057F8 90D90049 */ lbu $t9, 0x49($a2) +/* 0063FC 700057FC 24020003 */ li $v0, 3 +/* 006400 70005800 24650003 */ addiu $a1, $v1, 3 +/* 006404 70005804 A0CF0000 */ sb $t7, ($a2) +/* 006408 70005808 A0D80001 */ sb $t8, 1($a2) +/* 00640C 7000580C A0D90002 */ sb $t9, 2($a2) +.L70005810: +/* 006410 70005810 90AA0048 */ lbu $t2, 0x48($a1) +/* 006414 70005814 90AB0049 */ lbu $t3, 0x49($a1) +/* 006418 70005818 90AC004A */ lbu $t4, 0x4a($a1) +/* 00641C 7000581C 90A90047 */ lbu $t1, 0x47($a1) +/* 006420 70005820 24420004 */ addiu $v0, $v0, 4 +/* 006424 70005824 24A50004 */ addiu $a1, $a1, 4 +/* 006428 70005828 A0AAFFFD */ sb $t2, -3($a1) +/* 00642C 7000582C A0ABFFFE */ sb $t3, -2($a1) +/* 006430 70005830 A0ACFFFF */ sb $t4, -1($a1) +/* 006434 70005834 1447FFF6 */ bne $v0, $a3, .L70005810 +/* 006438 70005838 A0A9FFFC */ sb $t1, -4($a1) +/* 00643C 7000583C 24C60047 */ addiu $a2, $a2, 0x47 +/* 006440 70005840 14C8FFEB */ bne $a2, $t0, .L700057F0 +/* 006444 70005844 24630047 */ addiu $v1, $v1, 0x47 +/* 006448 70005848 0004102A */ slt $v0, $zero, $a0 +/* 00644C 7000584C 1440FFE5 */ bnez $v0, .L700057E4 +/* 006450 70005850 2484FFFF */ addiu $a0, $a0, -1 +.L70005854: +/* 006454 70005854 03E00008 */ jr $ra +/* 006458 70005858 00000000 */ nop +) +#endif + + + + +/** + * 645C 7000585C + * print char A2 to stderr screen position (A0,A1) in video buffer 1 + * accepts: A0=xpos, A1=ypos, A2=char + */ +#ifdef NONMATCHING +void print_to_vidbuff1(s32 arg0, s32 arg1, ? arg2, s32 arg6, s32 arg7, s32 arg8) { + s32 temp_at; + void *temp_a0; + void *temp_v1; + void *temp_v1_2; + void *temp_v1_3; + void *temp_v1_4; + + // Node 0 + if (arg8 == 0) + { + // Node 1 + } + // Node 2 + temp_at = (arg8 < 0x7f); + if (temp_at == 0) + { + // Node 3 + if (temp_at != 0) + { + // Node 4 + temp_a0 = (0x80020000 + (arg8 * 4)); + temp_v1 = (((arg6 * 2) + ptr_videobuffer1) + ((arg7 * get_video2_settings_txtClipW()) * 2)); + // Node 5 + if ((temp_a0->unk3F80 & 0x80000000) != 0) + { + // Node 6 + *temp_v1 = (u16)0xffff; + } + else + { + // Node 7 + *temp_v1 = (u16)1; + } + // Node 8 + temp_v1_2 = (temp_v1 + 2); + if (((temp_a0->unk3F80 * 2) & 0x80000000) != 0) + { + // Node 9 + *temp_v1_2 = (u16)0xffff; + } + else + { + // Node 10 + *temp_v1_2 = (u16)1; + } + // Node 11 + temp_v1_3 = (temp_v1_2 + 2); + if (((temp_a0->unk3F80 * 4) & 0x80000000) != 0) + { + // Node 12 + *temp_v1_3 = (u16)0xffff; + } + else + { + // Node 13 + *temp_v1_3 = (u16)1; + } + // Node 14 + temp_v1_4 = (temp_v1_3 + 2); + if (((temp_a0->unk3F80 * 8) & 0x80000000) != 0) + { + // Node 15 + *temp_v1_4 = (u16)0xffff; + } + else + { + // Node 16 + *temp_v1_4 = (u16)1; + } + // Node 17 + if ((0 + 1) != 7) + { + goto loop_5; + } + } + } + // (possible return value: get_video2_settings_txtClipW()) +} + +#else +GLOBAL_ASM( +.text +glabel print_to_vidbuff1 +/* 00645C 7000585C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 006460 70005860 AFBF0014 */ sw $ra, 0x14($sp) +/* 006464 70005864 AFA40018 */ sw $a0, 0x18($sp) +/* 006468 70005868 AFA5001C */ sw $a1, 0x1c($sp) +/* 00646C 7000586C 0C001107 */ jal get_video2_settings_txtClipW +/* 006470 70005870 AFA60020 */ sw $a2, 0x20($sp) +/* 006474 70005874 93A50023 */ lbu $a1, 0x23($sp) +/* 006478 70005878 54A00003 */ bnezl $a1, .L70005888 +/* 00647C 7000587C 28A10020 */ slti $at, $a1, 0x20 +/* 006480 70005880 24050020 */ li $a1, 32 +/* 006484 70005884 28A10020 */ slti $at, $a1, 0x20 +.L70005888: +/* 006488 70005888 1420003A */ bnez $at, .L70005974 +/* 00648C 7000588C 28A1007F */ slti $at, $a1, 0x7f +/* 006490 70005890 10200038 */ beqz $at, .L70005974 +/* 006494 70005894 8FAE0018 */ lw $t6, 0x18($sp) +/* 006498 70005898 8FAB001C */ lw $t3, 0x1c($sp) +/* 00649C 7000589C 3C188002 */ lui $t8, %hi(ptr_videobuffer1) +/* 0064A0 700058A0 8F18417C */ lw $t8, %lo(ptr_videobuffer1)($t8) +/* 0064A4 700058A4 01620019 */ multu $t3, $v0 +/* 0064A8 700058A8 000E7840 */ sll $t7, $t6, 1 +/* 0064AC 700058AC 00057080 */ sll $t6, $a1, 2 +/* 0064B0 700058B0 3C048002 */ lui $a0, %hi(stderr_buffer+0x868) +/* 0064B4 700058B4 008E2021 */ addu $a0, $a0, $t6 +/* 0064B8 700058B8 01F8C821 */ addu $t9, $t7, $t8 +/* 0064BC 700058BC 8C843F80 */ lw $a0, %lo(stderr_buffer+0x868)($a0) +/* 0064C0 700058C0 3C058000 */ lui $a1, 0x8000 +/* 0064C4 700058C4 00004025 */ move $t0, $zero +/* 0064C8 700058C8 00024840 */ sll $t1, $v0, 1 +/* 0064CC 700058CC 00006012 */ mflo $t4 +/* 0064D0 700058D0 000C6840 */ sll $t5, $t4, 1 +/* 0064D4 700058D4 032D1821 */ addu $v1, $t9, $t5 +/* 0064D8 700058D8 240A0007 */ li $t2, 7 +/* 0064DC 700058DC 24070001 */ li $a3, 1 +/* 0064E0 700058E0 3406FFFF */ li $a2, 65535 +.L700058E4: +/* 0064E4 700058E4 00857824 */ and $t7, $a0, $a1 +/* 0064E8 700058E8 11E00003 */ beqz $t7, .L700058F8 +/* 0064EC 700058EC 0004C040 */ sll $t8, $a0, 1 +/* 0064F0 700058F0 10000002 */ b .L700058FC +/* 0064F4 700058F4 A4660000 */ sh $a2, ($v1) +.L700058F8: +/* 0064F8 700058F8 A4670000 */ sh $a3, ($v1) +.L700058FC: +/* 0064FC 700058FC 03055824 */ and $t3, $t8, $a1 +/* 006500 70005900 24630002 */ addiu $v1, $v1, 2 +/* 006504 70005904 11600003 */ beqz $t3, .L70005914 +/* 006508 70005908 03002025 */ move $a0, $t8 +/* 00650C 7000590C 10000002 */ b .L70005918 +/* 006510 70005910 A4660000 */ sh $a2, ($v1) +.L70005914: +/* 006514 70005914 A4670000 */ sh $a3, ($v1) +.L70005918: +/* 006518 70005918 00046040 */ sll $t4, $a0, 1 +/* 00651C 7000591C 0185C824 */ and $t9, $t4, $a1 +/* 006520 70005920 01802025 */ move $a0, $t4 +/* 006524 70005924 13200003 */ beqz $t9, .L70005934 +/* 006528 70005928 24630002 */ addiu $v1, $v1, 2 +/* 00652C 7000592C 10000002 */ b .L70005938 +/* 006530 70005930 A4660000 */ sh $a2, ($v1) +.L70005934: +/* 006534 70005934 A4670000 */ sh $a3, ($v1) +.L70005938: +/* 006538 70005938 00046840 */ sll $t5, $a0, 1 +/* 00653C 7000593C 01A57024 */ and $t6, $t5, $a1 +/* 006540 70005940 01A02025 */ move $a0, $t5 +/* 006544 70005944 11C00003 */ beqz $t6, .L70005954 +/* 006548 70005948 24630002 */ addiu $v1, $v1, 2 +/* 00654C 7000594C 10000002 */ b .L70005958 +/* 006550 70005950 A4660000 */ sh $a2, ($v1) +.L70005954: +/* 006554 70005954 A4670000 */ sh $a3, ($v1) +.L70005958: +/* 006558 70005958 24630002 */ addiu $v1, $v1, 2 +/* 00655C 7000595C 25080001 */ addiu $t0, $t0, 1 +/* 006560 70005960 00047840 */ sll $t7, $a0, 1 +/* 006564 70005964 00691821 */ addu $v1, $v1, $t1 +/* 006568 70005968 01E02025 */ move $a0, $t7 +/* 00656C 7000596C 150AFFDD */ bne $t0, $t2, .L700058E4 +/* 006570 70005970 2463FFF8 */ addiu $v1, $v1, -8 +.L70005974: +/* 006574 70005974 8FBF0014 */ lw $ra, 0x14($sp) +/* 006578 70005978 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00657C 7000597C 03E00008 */ jr $ra +/* 006580 70005980 00000000 */ nop +) +#endif + + + + +/** + * 6584 70005984 + * set pointers to video buffers 1 & 2 to A0 and A1, respectively + * sets values to uncached addresses + * A0 | A0000000 -> 8002417C + * A1 | A0000000 -> 80024180 + */ + +void set_ptr_video_buffers(s32 arg0, s32 arg1) { + ptr_videobuffer1 = (s32) (arg0 | 0xa0000000); + ptr_videobuffer2 = (s32) (arg1 | 0xa0000000); +} + + + + +/** + * 65A4 700059A4 + * set pointers to video buffers 1 & 2 + * calls 70005984: A0=803B5000, A1=803DA800 + */ +void set_video_buffer_pointers(void) { + set_ptr_video_buffers(&cfb_16_a, &cfb_16_b); +} + + + + + +/** + * 65D0 700059D0 + * write stderr to video buffer A0 + * accepts: A0=p->video buffer + */ +#ifdef NONMATCHING +void write_stderr_to_buffer(void) { + +} +#else +GLOBAL_ASM( +.text +glabel write_stderr_to_buffer +/* 0065D0 700059D0 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0065D4 700059D4 AFBF003C */ sw $ra, 0x3c($sp) +/* 0065D8 700059D8 AFB00018 */ sw $s0, 0x18($sp) +/* 0065DC 700059DC 00808025 */ move $s0, $a0 +/* 0065E0 700059E0 AFBE0038 */ sw $fp, 0x38($sp) +/* 0065E4 700059E4 AFB70034 */ sw $s7, 0x34($sp) +/* 0065E8 700059E8 AFB60030 */ sw $s6, 0x30($sp) +/* 0065EC 700059EC AFB5002C */ sw $s5, 0x2c($sp) +/* 0065F0 700059F0 AFB40028 */ sw $s4, 0x28($sp) +/* 0065F4 700059F4 AFB30024 */ sw $s3, 0x24($sp) +/* 0065F8 700059F8 AFB20020 */ sw $s2, 0x20($sp) +/* 0065FC 700059FC 0C001669 */ jal set_video_buffer_pointers +/* 006600 70005A00 AFB1001C */ sw $s1, 0x1c($sp) +/* 006604 70005A04 3C01A000 */ lui $at, 0xa000 +/* 006608 70005A08 02017025 */ or $t6, $s0, $at +/* 00660C 70005A0C 3C018002 */ lui $at, %hi(ptr_videobuffer1) +/* 006610 70005A10 0C001107 */ jal get_video2_settings_txtClipW +/* 006614 70005A14 AC2E417C */ sw $t6, %lo(ptr_videobuffer1)($at) +/* 006618 70005A18 2450FFF3 */ addiu $s0, $v0, -0xd +/* 00661C 70005A1C 06010003 */ bgez $s0, .L70005A2C +/* 006620 70005A20 00107883 */ sra $t7, $s0, 2 +/* 006624 70005A24 26010003 */ addiu $at, $s0, 3 +/* 006628 70005A28 00017883 */ sra $t7, $at, 2 +.L70005A2C: +/* 00662C 70005A2C 0C00110B */ jal get_video2_settings_txtClipH +/* 006630 70005A30 01E08025 */ move $s0, $t7 +/* 006634 70005A34 2443FFF6 */ addiu $v1, $v0, -0xa +/* 006638 70005A38 24010007 */ li $at, 7 +/* 00663C 70005A3C 0061001A */ div $zero, $v1, $at +/* 006640 70005A40 00001812 */ mflo $v1 +/* 006644 70005A44 247EFFFF */ addiu $fp, $v1, -1 +/* 006648 70005A48 1BC00023 */ blez $fp, .L70005AD8 +/* 00664C 70005A4C 0000A825 */ move $s5, $zero +/* 006650 70005A50 2616FFFB */ addiu $s6, $s0, -5 +/* 006654 70005A54 2417001F */ li $s7, 31 +/* 006658 70005A58 24140130 */ li $s4, 304 +.L70005A5C: +/* 00665C 70005A5C 1AC00018 */ blez $s6, .L70005AC0 +/* 006660 70005A60 00008080 */ sll $s0, $zero, 2 +/* 006664 70005A64 0015C8C0 */ sll $t9, $s5, 3 +/* 006668 70005A68 0335C821 */ addu $t9, $t9, $s5 +/* 00666C 70005A6C 0019C8C0 */ sll $t9, $t9, 3 +/* 006670 70005A70 001590C0 */ sll $s2, $s5, 3 +/* 006674 70005A74 3C098002 */ lui $t1, %hi(stderr_buffer) +/* 006678 70005A78 25293718 */ addiu $t1, %lo(stderr_buffer) # addiu $t1, $t1, 0x3718 +/* 00667C 70005A7C 02559023 */ subu $s2, $s2, $s5 +/* 006680 70005A80 0335C823 */ subu $t9, $t9, $s5 +/* 006684 70005A84 00169880 */ sll $s3, $s6, 2 +/* 006688 70005A88 26730014 */ addiu $s3, $s3, 0x14 +/* 00668C 70005A8C 03298821 */ addu $s1, $t9, $t1 +/* 006690 70005A90 26520007 */ addiu $s2, $s2, 7 +/* 006694 70005A94 26100014 */ addiu $s0, $s0, 0x14 +/* 006698 70005A98 02002025 */ move $a0, $s0 +.L70005A9C: +/* 00669C 70005A9C 02402825 */ move $a1, $s2 +/* 0066A0 70005AA0 0C001617 */ jal print_to_vidbuff1 +/* 0066A4 70005AA4 92260000 */ lbu $a2, ($s1) +/* 0066A8 70005AA8 26100004 */ addiu $s0, $s0, 4 +/* 0066AC 70005AAC 0213082A */ slt $at, $s0, $s3 +/* 0066B0 70005AB0 10200003 */ beqz $at, .L70005AC0 +/* 0066B4 70005AB4 26310001 */ addiu $s1, $s1, 1 +/* 0066B8 70005AB8 5614FFF8 */ bnel $s0, $s4, .L70005A9C +/* 0066BC 70005ABC 02002025 */ move $a0, $s0 +.L70005AC0: +/* 0066C0 70005AC0 26B50001 */ addiu $s5, $s5, 1 +/* 0066C4 70005AC4 02BE082A */ slt $at, $s5, $fp +/* 0066C8 70005AC8 50200004 */ beql $at, $zero, .L70005ADC +/* 0066CC 70005ACC 8FBF003C */ lw $ra, 0x3c($sp) +/* 0066D0 70005AD0 16B7FFE2 */ bne $s5, $s7, .L70005A5C +/* 0066D4 70005AD4 00000000 */ nop +.L70005AD8: +/* 0066D8 70005AD8 8FBF003C */ lw $ra, 0x3c($sp) +.L70005ADC: +/* 0066DC 70005ADC 8FB00018 */ lw $s0, 0x18($sp) +/* 0066E0 70005AE0 8FB1001C */ lw $s1, 0x1c($sp) +/* 0066E4 70005AE4 8FB20020 */ lw $s2, 0x20($sp) +/* 0066E8 70005AE8 8FB30024 */ lw $s3, 0x24($sp) +/* 0066EC 70005AEC 8FB40028 */ lw $s4, 0x28($sp) +/* 0066F0 70005AF0 8FB5002C */ lw $s5, 0x2c($sp) +/* 0066F4 70005AF4 8FB60030 */ lw $s6, 0x30($sp) +/* 0066F8 70005AF8 8FB70034 */ lw $s7, 0x34($sp) +/* 0066FC 70005AFC 8FBE0038 */ lw $fp, 0x38($sp) +/* 006700 70005B00 03E00008 */ jr $ra +/* 006704 70005B04 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif diff --git a/src/deb_print.h b/src/deb_print.h new file mode 100644 index 0000000..e962b1f --- /dev/null +++ b/src/deb_print.h @@ -0,0 +1,23 @@ +#ifndef _DEBUG_PRINT_H_ +#define _DEBUG_PRINT_H_ + +#include "ultra64.h" + +//im just padding +extern u32 D_80023300; + +struct debug_processor_error_entry +{ + u32 val1; + u32 val2; + void *string; +}; + +extern struct debug_processor_error_entry debug_processor_error_table[]; +extern void *stack_ptrs_1[]; +extern void *stack_ptrs_2[]; +extern void *stack_ptrs_3[]; +extern char stderr_buffer[2280]; + +void write_stderr_to_buffer(u32 *buffer); +#endif diff --git a/src/deb_video.c b/src/deb_video.c new file mode 100644 index 0000000..b9ef5e8 --- /dev/null +++ b/src/deb_video.c @@ -0,0 +1,852 @@ +//FIXME my c code is modtly copy/paste from mips_to_c +#include "ultra64.h" +#include "bondgame.h" +#include "deb_video.h" + +/** + * @file deb_video.c + * This file contains code to handle tlb paging. + * + * I should probably be renamed... + */ + +//bss +char tlbthread[0x6B0]; +char tlbStack[0x2300]; +OSMesgQueue tlbMesgQ; +u32 tlbMesgBuf; +OSThread *ptr_tlbthread_maybe; +u32 dword_CODE_bss_80063660; +u32 *current_indy_read_buf_resourceID; +u32 *ptr_indy_read_buf_string1; +u32 *ptr_indy_read_buf_string2; +char indy_read_buffer[0x60]; + + +/** + * 5AE0 70004EE0 + */ +void init_tlb(void) { + set_video_buffer_pointers(); + osCreateMesgQueue(&tlbMesgQ, &tlbMesgBuf, 1); + osCreateThread(&tlbthread, 5, &tlbproc, 0, &tlbStack, 0x28); + osStartThread(&tlbthread); +} + + + + + +/** + * 5B54 70004F54 + */ +#ifdef NONMATCHING +void tlbproc(void) { + +} +#else +GLOBAL_ASM( +.text +glabel tlbproc +/* 005B54 70004F54 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 005B58 70004F58 AFB70030 */ sw $s7, 0x30($sp) +/* 005B5C 70004F5C 3C178006 */ lui $s7, %hi(tlbMesgQ) +/* 005B60 70004F60 26F73640 */ addiu $s7, %lo(tlbMesgQ) # addiu $s7, $s7, 0x3640 +/* 005B64 70004F64 AFBF0034 */ sw $ra, 0x34($sp) +/* 005B68 70004F68 AFA40040 */ sw $a0, 0x40($sp) +/* 005B6C 70004F6C AFB6002C */ sw $s6, 0x2c($sp) +/* 005B70 70004F70 AFB50028 */ sw $s5, 0x28($sp) +/* 005B74 70004F74 AFB40024 */ sw $s4, 0x24($sp) +/* 005B78 70004F78 AFB30020 */ sw $s3, 0x20($sp) +/* 005B7C 70004F7C AFB2001C */ sw $s2, 0x1c($sp) +/* 005B80 70004F80 AFB10018 */ sw $s1, 0x18($sp) +/* 005B84 70004F84 AFB00014 */ sw $s0, 0x14($sp) +/* 005B88 70004F88 AFA0003C */ sw $zero, 0x3c($sp) +/* 005B8C 70004F8C 2404000C */ li $a0, 12 +/* 005B90 70004F90 02E02825 */ move $a1, $s7 +/* 005B94 70004F94 0C003714 */ jal osSetEventMesg +/* 005B98 70004F98 24060010 */ li $a2, 16 +/* 005B9C 70004F9C 3C018006 */ lui $at, %hi(dword_CODE_bss_80063660) +/* 005BA0 70004FA0 3C168002 */ lui $s6, %hi(__osRunQueue) +/* 005BA4 70004FA4 AC203660 */ sw $zero, %lo(dword_CODE_bss_80063660)($at) +/* 005BA8 70004FA8 26D67728 */ addiu $s6, %lo(__osRunQueue) # addiu $s6, $s6, 0x7728 +/* 005BAC 70004FAC 2415000A */ li $s5, 10 +/* 005BB0 70004FB0 3C14FFC0 */ lui $s4, 0xffc0 +/* 005BB4 70004FB4 3C137F00 */ lui $s3, 0x7f00 +/* 005BB8 70004FB8 24120008 */ li $s2, 8 +/* 005BBC 70004FBC 27B1003C */ addiu $s1, $sp, 0x3c +.L70004FC0: +/* 005BC0 70004FC0 02E02025 */ move $a0, $s7 +.L70004FC4: +/* 005BC4 70004FC4 02202825 */ move $a1, $s1 +/* 005BC8 70004FC8 0C003774 */ jal osRecvMesg +/* 005BCC 70004FCC 24060001 */ li $a2, 1 +/* 005BD0 70004FD0 0C00374C */ jal osSetIntMask +/* 005BD4 70004FD4 24040001 */ li $a0, 1 +/* 005BD8 70004FD8 0C004060 */ jal __osGetCurrFaultedThread +/* 005BDC 70004FDC 00408025 */ move $s0, $v0 +/* 005BE0 70004FE0 3C018006 */ lui $at, %hi(ptr_tlbthread_maybe) +/* 005BE4 70004FE4 1040FFF6 */ beqz $v0, .L70004FC0 +/* 005BE8 70004FE8 AC22365C */ sw $v0, %lo(ptr_tlbthread_maybe)($at) +/* 005BEC 70004FEC 8C4E0120 */ lw $t6, 0x120($v0) +/* 005BF0 70004FF0 3C088006 */ lui $t0, %hi(ptr_tlbthread_maybe) +/* 005BF4 70004FF4 31CF007C */ andi $t7, $t6, 0x7c +/* 005BF8 70004FF8 164F0018 */ bne $s2, $t7, .L7000505C +/* 005BFC 70004FFC 00000000 */ nop +/* 005C00 70005000 8C580124 */ lw $t8, 0x124($v0) +/* 005C04 70005004 0314C824 */ and $t9, $t8, $s4 +/* 005C08 70005008 16790014 */ bne $s3, $t9, .L7000505C +/* 005C0C 7000500C 00000000 */ nop +/* 005C10 70005010 8D08365C */ lw $t0, %lo(ptr_tlbthread_maybe)($t0) +/* 005C14 70005014 0C000676 */ jal translate_load_rom_from_TLBaddress +/* 005C18 70005018 8D040124 */ lw $a0, 0x124($t0) +/* 005C1C 7000501C 3C098006 */ lui $t1, %hi(ptr_tlbthread_maybe) +/* 005C20 70005020 8D29365C */ lw $t1, %lo(ptr_tlbthread_maybe)($t1) +/* 005C24 70005024 3C0A8006 */ lui $t2, %hi(ptr_tlbthread_maybe) +/* 005C28 70005028 3C058006 */ lui $a1, %hi(ptr_tlbthread_maybe) +/* 005C2C 7000502C A5350010 */ sh $s5, 0x10($t1) +/* 005C30 70005030 8D4A365C */ lw $t2, %lo(ptr_tlbthread_maybe)($t2) +/* 005C34 70005034 02C02025 */ move $a0, $s6 +/* 005C38 70005038 A5400012 */ sh $zero, 0x12($t2) +/* 005C3C 7000503C 0C00422B */ jal __osEnqueueThread +/* 005C40 70005040 8CA5365C */ lw $a1, %lo(ptr_tlbthread_maybe)($a1) +/* 005C44 70005044 0C00374C */ jal osSetIntMask +/* 005C48 70005048 02002025 */ move $a0, $s0 +/* 005C4C 7000504C 0C0042B4 */ jal osYieldThread +/* 005C50 70005050 00000000 */ nop +/* 005C54 70005054 1000FFDB */ b .L70004FC4 +/* 005C58 70005058 02E02025 */ move $a0, $s7 +.L7000505C: +/* 005C5C 7000505C 0C00374C */ jal osSetIntMask +/* 005C60 70005060 02002025 */ move $a0, $s0 +.L70005064: +/* 005C64 70005064 1000FFFF */ b .L70005064 +/* 005C68 70005068 00000000 */ nop +/* 005C6C 7000506C 00000000 */ nop +/* 005C70 70005070 00000000 */ nop +/* 005C74 70005074 00000000 */ nop +/* 005C78 70005078 00000000 */ nop +/* 005C7C 7000507C 00000000 */ nop +/* 005C80 70005080 8FBF0034 */ lw $ra, 0x34($sp) +/* 005C84 70005084 8FB00014 */ lw $s0, 0x14($sp) +/* 005C88 70005088 8FB10018 */ lw $s1, 0x18($sp) +/* 005C8C 7000508C 8FB2001C */ lw $s2, 0x1c($sp) +/* 005C90 70005090 8FB30020 */ lw $s3, 0x20($sp) +/* 005C94 70005094 8FB40024 */ lw $s4, 0x24($sp) +/* 005C98 70005098 8FB50028 */ lw $s5, 0x28($sp) +/* 005C9C 7000509C 8FB6002C */ lw $s6, 0x2c($sp) +/* 005CA0 700050A0 8FB70030 */ lw $s7, 0x30($sp) +/* 005CA4 700050A4 03E00008 */ jr $ra +/* 005CA8 700050A8 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + +/** + * 5CAC 700050AC + * V0= SP, A3=SP usage within function range (A1,A0) with initial SP A2 + * accepts: A0=p->opcode.cur, A1=p->opcode.start, A2=SP w/i function, A3=p->register buffer + */ +#ifdef NONMATCHING +void debug_related_8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel debug_related_8 +/* 005CAC 700050AC 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 005CB0 700050B0 AFA40010 */ sw $a0, 0x10($sp) +/* 005CB4 700050B4 AFB1000C */ sw $s1, 0xc($sp) +/* 005CB8 700050B8 AFB00008 */ sw $s0, 8($sp) +/* 005CBC 700050BC 00C01825 */ move $v1, $a2 +/* 005CC0 700050C0 00001025 */ move $v0, $zero +/* 005CC4 700050C4 00004025 */ move $t0, $zero +/* 005CC8 700050C8 24040020 */ li $a0, 32 +/* 005CCC 700050CC 00004825 */ move $t1, $zero +/* 005CD0 700050D0 00E05025 */ move $t2, $a3 +.L700050D4: +/* 005CD4 700050D4 25290004 */ addiu $t1, $t1, 4 +/* 005CD8 700050D8 AD400000 */ sw $zero, ($t2) +/* 005CDC 700050DC AD400004 */ sw $zero, 4($t2) +/* 005CE0 700050E0 AD400008 */ sw $zero, 8($t2) +/* 005CE4 700050E4 AD40000C */ sw $zero, 0xc($t2) +/* 005CE8 700050E8 1524FFFA */ bne $t1, $a0, .L700050D4 +/* 005CEC 700050EC 254A0010 */ addiu $t2, $t2, 0x10 +/* 005CF0 700050F0 8FA40010 */ lw $a0, 0x10($sp) +/* 005CF4 700050F4 3C1103E0 */ lui $s1, (0x03E00008 >> 16) # lui $s1, 0x3e0 +/* 005CF8 700050F8 36310008 */ ori $s1, (0x03E00008 & 0xFFFF) # ori $s1, $s1, 8 +/* 005CFC 700050FC 0085082B */ sltu $at, $a0, $a1 +/* 005D00 70005100 1420002D */ bnez $at, .L700051B8 +/* 005D04 70005104 2410001F */ li $s0, 31 +/* 005D08 70005108 3C0DFFE0 */ lui $t5, 0xffe0 +/* 005D0C 7000510C 3C0CAFA0 */ lui $t4, 0xafa0 +/* 005D10 70005110 3C0BFFFF */ lui $t3, 0xffff +/* 005D14 70005114 3C0A27BD */ lui $t2, 0x27bd +/* 005D18 70005118 8C890000 */ lw $t1, ($a0) +.L7000511C: +/* 005D1C 7000511C 2484FFFC */ addiu $a0, $a0, -4 +/* 005D20 70005120 0085082B */ sltu $at, $a0, $a1 +/* 005D24 70005124 012B7824 */ and $t7, $t1, $t3 +/* 005D28 70005128 154F000B */ bne $t2, $t7, .L70005158 +/* 005D2C 7000512C 012DC024 */ and $t8, $t1, $t5 +/* 005D30 70005130 0009C400 */ sll $t8, $t1, 0x10 +/* 005D34 70005134 0018CC03 */ sra $t9, $t8, 0x10 +/* 005D38 70005138 1F20001F */ bgtz $t9, .L700051B8 +/* 005D3C 7000513C 24020001 */ li $v0, 1 +/* 005D40 70005140 00197083 */ sra $t6, $t9, 2 +/* 005D44 70005144 000E7880 */ sll $t7, $t6, 2 +/* 005D48 70005148 11000019 */ beqz $t0, .L700051B0 +/* 005D4C 7000514C 006F1823 */ subu $v1, $v1, $t7 +/* 005D50 70005150 10000019 */ b .L700051B8 +/* 005D54 70005154 00000000 */ nop +.L70005158: +/* 005D58 70005158 15980013 */ bne $t4, $t8, .L700051A8 +/* 005D5C 7000515C 00093402 */ srl $a2, $t1, 0x10 +/* 005D60 70005160 30D9001F */ andi $t9, $a2, 0x1f +/* 005D64 70005164 00097C00 */ sll $t7, $t1, 0x10 +/* 005D68 70005168 000FC403 */ sra $t8, $t7, 0x10 +/* 005D6C 7000516C 03203025 */ move $a2, $t9 +/* 005D70 70005170 0018C883 */ sra $t9, $t8, 2 +/* 005D74 70005174 00197080 */ sll $t6, $t9, 2 +/* 005D78 70005178 0006C080 */ sll $t8, $a2, 2 +/* 005D7C 7000517C 00F8C821 */ addu $t9, $a3, $t8 +/* 005D80 70005180 01C37821 */ addu $t7, $t6, $v1 +/* 005D84 70005184 16060002 */ bne $s0, $a2, .L70005190 +/* 005D88 70005188 AF2F0000 */ sw $t7, ($t9) +/* 005D8C 7000518C 24080001 */ li $t0, 1 +.L70005190: +/* 005D90 70005190 10400007 */ beqz $v0, .L700051B0 +/* 005D94 70005194 00000000 */ nop +/* 005D98 70005198 11000005 */ beqz $t0, .L700051B0 +/* 005D9C 7000519C 00000000 */ nop +/* 005DA0 700051A0 10000005 */ b .L700051B8 +/* 005DA4 700051A4 00000000 */ nop +.L700051A8: +/* 005DA8 700051A8 11310003 */ beq $t1, $s1, .L700051B8 +/* 005DAC 700051AC 00000000 */ nop +.L700051B0: +/* 005DB0 700051B0 5020FFDA */ beql $at, $zero, .L7000511C +/* 005DB4 700051B4 8C890000 */ lw $t1, ($a0) +.L700051B8: +/* 005DB8 700051B8 10400005 */ beqz $v0, .L700051D0 +/* 005DBC 700051BC 8FB00008 */ lw $s0, 8($sp) +/* 005DC0 700051C0 51000004 */ beql $t0, $zero, .L700051D4 +/* 005DC4 700051C4 00001025 */ move $v0, $zero +/* 005DC8 700051C8 10000002 */ b .L700051D4 +/* 005DCC 700051CC 00601025 */ move $v0, $v1 +.L700051D0: +/* 005DD0 700051D0 00001025 */ move $v0, $zero +.L700051D4: +/* 005DD4 700051D4 8FB1000C */ lw $s1, 0xc($sp) +/* 005DD8 700051D8 03E00008 */ jr $ra +/* 005DDC 700051DC 27BD0010 */ addiu $sp, $sp, 0x10 +) +#endif + +/** + * 5DE0 700051E0 + * V0=TRUE if opcode that set RA A0 was a JAL or JALR type within bounds (70000450,70020D90) + * accepts: A0=p->70-mapped TLB function, presumably from RA + */ +s32 tlbIsJumpOpInCodeSeg(u32 *currop) +{ + u32 prevop; + + if ((((s32) currop & 3) == 0) && ((u32) currop >= (u32) &_codeSegmentStart) && ((u32) &_codeSegmentEnd >= (u32) currop)) + { + prevop = currop[-2]; + if ((prevop & 0xFC00003C) == 9) + { + return 1; + } + if ((prevop & 0xFC000000) == 0xC000000) + { + return 1; + } + } + return 0; +} + + + +/** + * 5E58 70005258 + * V0= strlen(A0); used exclusively for scanning ind.rea.buf + * accepts: A0=p->string + */ +#ifdef NONMATCHING +s32 return_strlen(void *arg0) +{ + s32 temp_v1; + s32 phi_v1; + void *phi_a0; + s32 phi_v1_2; + + phi_v1 = 0; + phi_a0 = (arg0 + 1); + phi_v1_2 = 0; + if (*arg0 != 0) + { +loop_1: + temp_v1 = (phi_v1 + 1); + phi_v1_2 = temp_v1; + if (temp_v1 < 0x100) + { + phi_v1 = temp_v1; + phi_a0 = (phi_a0 + 1); + phi_v1_2 = temp_v1; + if (*phi_a0 != 0) + { + goto loop_1; + } + } + } + return phi_v1_2; +} +#else +GLOBAL_ASM( +.text +glabel return_strlen +/* 005E58 70005258 90820000 */ lbu $v0, ($a0) +/* 005E5C 7000525C 00001825 */ move $v1, $zero +/* 005E60 70005260 24840001 */ addiu $a0, $a0, 1 +/* 005E64 70005264 10400009 */ beqz $v0, .L7000528C +/* 005E68 70005268 00000000 */ nop +/* 005E6C 7000526C 24630001 */ addiu $v1, $v1, 1 +.L70005270: +/* 005E70 70005270 28610100 */ slti $at, $v1, 0x100 +/* 005E74 70005274 10200005 */ beqz $at, .L7000528C +/* 005E78 70005278 00000000 */ nop +/* 005E7C 7000527C 90820000 */ lbu $v0, ($a0) +/* 005E80 70005280 24840001 */ addiu $a0, $a0, 1 +/* 005E84 70005284 5440FFFA */ bnezl $v0, .L70005270 +/* 005E88 70005288 24630001 */ addiu $v1, $v1, 1 +.L7000528C: +/* 005E8C 7000528C 03E00008 */ jr $ra +/* 005E90 70005290 00601025 */ move $v0, $v1 +) +#endif + + + +/** + * 5E94 70005294 + * V0= total size of one word, two strings at hardware A0 + * accepts: A0=hardware address + */ +#ifdef NONMATCHING +s32 indy_file_get_address_subsequent_data(s32 arg0) { + s32 sp18; + s32 temp_v1; + s32 phi_a0; + + // Node 0 + romCopy(&indy_read_buffer, arg0, 0x60); + current_indy_read_buf_resourceID = (?32) indy_read_buffer; + ptr_indy_read_buf_string1 = &indy_read_buffer; + ptr_indy_read_buf_string2 = (s32) ((return_strlen(&indy_read_buffer) + ptr_indy_read_buf_string1) + 1); + sp18 = return_strlen(ptr_indy_read_buf_string1); + temp_v1 = (((return_strlen(ptr_indy_read_buf_string2) + arg0) + sp18) + 6); + phi_a0 = temp_v1; + if ((temp_v1 & 3) != 0) + { + // Node 1 + phi_a0 = ((temp_v1 | 3) + 1); + } + // Node 2 + return phi_a0; +} +#else +GLOBAL_ASM( +.text +glabel indy_file_get_address_subsequent_data +/* 005E94 70005294 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 005E98 70005298 AFA40020 */ sw $a0, 0x20($sp) +/* 005E9C 7000529C AFBF0014 */ sw $ra, 0x14($sp) +/* 005EA0 700052A0 3C048006 */ lui $a0, %hi(indy_read_buffer) +/* 005EA4 700052A4 24843670 */ addiu $a0, %lo(indy_read_buffer) # addiu $a0, $a0, 0x3670 +/* 005EA8 700052A8 8FA50020 */ lw $a1, 0x20($sp) +/* 005EAC 700052AC 0C001707 */ jal romCopy +/* 005EB0 700052B0 24060060 */ li $a2, 96 +/* 005EB4 700052B4 3C0E8006 */ lui $t6, %hi(indy_read_buffer) +/* 005EB8 700052B8 8DCE3670 */ lw $t6, %lo(indy_read_buffer)($t6) +/* 005EBC 700052BC 3C028006 */ lui $v0, %hi(ptr_indy_read_buf_string1) +/* 005EC0 700052C0 3C018006 */ lui $at, %hi(current_indy_read_buf_resourceID) +/* 005EC4 700052C4 3C0F8006 */ lui $t7, %hi(indy_read_buffer+4) +/* 005EC8 700052C8 24423668 */ addiu $v0, %lo(ptr_indy_read_buf_string1) # addiu $v0, $v0, 0x3668 +/* 005ECC 700052CC 25E43674 */ addiu $a0, $t7, %lo(indy_read_buffer+4) +/* 005ED0 700052D0 AC2E3664 */ sw $t6, %lo(current_indy_read_buf_resourceID)($at) +/* 005ED4 700052D4 0C001496 */ jal return_strlen +/* 005ED8 700052D8 AC440000 */ sw $a0, ($v0) +/* 005EDC 700052DC 3C048006 */ lui $a0, %hi(ptr_indy_read_buf_string1) +/* 005EE0 700052E0 8C843668 */ lw $a0, %lo(ptr_indy_read_buf_string1)($a0) +/* 005EE4 700052E4 3C018006 */ lui $at, %hi(ptr_indy_read_buf_string2) +/* 005EE8 700052E8 0044C021 */ addu $t8, $v0, $a0 +/* 005EEC 700052EC 27190001 */ addiu $t9, $t8, 1 +/* 005EF0 700052F0 0C001496 */ jal return_strlen +/* 005EF4 700052F4 AC39366C */ sw $t9, %lo(ptr_indy_read_buf_string2)($at) +/* 005EF8 700052F8 3C048006 */ lui $a0, %hi(ptr_indy_read_buf_string2) +/* 005EFC 700052FC 8C84366C */ lw $a0, %lo(ptr_indy_read_buf_string2)($a0) +/* 005F00 70005300 0C001496 */ jal return_strlen +/* 005F04 70005304 AFA20018 */ sw $v0, 0x18($sp) +/* 005F08 70005308 8FA80020 */ lw $t0, 0x20($sp) +/* 005F0C 7000530C 8FAA0018 */ lw $t2, 0x18($sp) +/* 005F10 70005310 8FBF0014 */ lw $ra, 0x14($sp) +/* 005F14 70005314 00484821 */ addu $t1, $v0, $t0 +/* 005F18 70005318 012A1821 */ addu $v1, $t1, $t2 +/* 005F1C 7000531C 24630006 */ addiu $v1, $v1, 6 +/* 005F20 70005320 306B0003 */ andi $t3, $v1, 3 +/* 005F24 70005324 11600003 */ beqz $t3, .L70005334 +/* 005F28 70005328 00602025 */ move $a0, $v1 +/* 005F2C 7000532C 34640003 */ ori $a0, $v1, 3 +/* 005F30 70005330 24840001 */ addiu $a0, $a0, 1 +.L70005334: +/* 005F34 70005334 00801025 */ move $v0, $a0 +/* 005F38 70005338 03E00008 */ jr $ra +/* 005F3C 7000533C 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +/** + * 5F40 70005340 + * scan for and load resourceID A0 from indy.read.buf + * accepts: A0=resourceID + */ +#ifdef NONMATCHING +void scan_load_resourceID_from_indy_read_buf(void) { + +} +#else +GLOBAL_ASM( +.text +glabel scan_load_resourceID_from_indy_read_buf +/* 005F40 70005340 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 005F44 70005344 AFB30020 */ sw $s3, 0x20($sp) +/* 005F48 70005348 AFB2001C */ sw $s2, 0x1c($sp) +/* 005F4C 7000534C 3C0200E0 */ lui $v0, 0xe0 +/* 005F50 70005350 34530004 */ ori $s3, $v0, 4 +/* 005F54 70005354 AFB10018 */ sw $s1, 0x18($sp) +/* 005F58 70005358 AFB00014 */ sw $s0, 0x14($sp) +/* 005F5C 7000535C 3C128006 */ lui $s2, %hi(current_indy_read_buf_resourceID) +/* 005F60 70005360 00808825 */ move $s1, $a0 +/* 005F64 70005364 AFBF0024 */ sw $ra, 0x24($sp) +/* 005F68 70005368 02608025 */ move $s0, $s3 +/* 005F6C 7000536C 26523664 */ addiu $s2, %lo(current_indy_read_buf_resourceID) # addiu $s2, $s2, 0x3664 +.L70005370: +/* 005F70 70005370 0C0014A5 */ jal indy_file_get_address_subsequent_data +/* 005F74 70005374 02002025 */ move $a0, $s0 +/* 005F78 70005378 8E430000 */ lw $v1, ($s2) +/* 005F7C 7000537C 0223082B */ sltu $at, $s1, $v1 +/* 005F80 70005380 14200007 */ bnez $at, .L700053A0 +/* 005F84 70005384 00000000 */ nop +/* 005F88 70005388 14600003 */ bnez $v1, .L70005398 +/* 005F8C 7000538C 02009825 */ move $s3, $s0 +/* 005F90 70005390 10000006 */ b .L700053AC +/* 005F94 70005394 00001025 */ move $v0, $zero +.L70005398: +/* 005F98 70005398 1000FFF5 */ b .L70005370 +/* 005F9C 7000539C 00408025 */ move $s0, $v0 +.L700053A0: +/* 005FA0 700053A0 0C0014A5 */ jal indy_file_get_address_subsequent_data +/* 005FA4 700053A4 02602025 */ move $a0, $s3 +/* 005FA8 700053A8 24020001 */ li $v0, 1 +.L700053AC: +/* 005FAC 700053AC 8FBF0024 */ lw $ra, 0x24($sp) +/* 005FB0 700053B0 8FB00014 */ lw $s0, 0x14($sp) +/* 005FB4 700053B4 8FB10018 */ lw $s1, 0x18($sp) +/* 005FB8 700053B8 8FB2001C */ lw $s2, 0x1c($sp) +/* 005FBC 700053BC 8FB30020 */ lw $s3, 0x20($sp) +/* 005FC0 700053C0 03E00008 */ jr $ra +/* 005FC4 700053C4 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + +/** + * 5FC8 700053C8 + * V0= TRUE if valid indy.read.buf.resourceID [matches 826475BE] + */ +#ifdef NONMATCHING +u32 is_valid_indy_read_buf_resourceID(void) +{ + indy_file_get_address_subsequent_data(0xe00000); + return ((u32) (current_indy_read_buf_resourceID ^ 0x826475be) < 1U); +} +#else +GLOBAL_ASM( +.text +glabel is_valid_indy_read_buf_resourceID +/* 005FC8 700053C8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 005FCC 700053CC AFBF0014 */ sw $ra, 0x14($sp) +/* 005FD0 700053D0 0C0014A5 */ jal indy_file_get_address_subsequent_data +/* 005FD4 700053D4 3C0400E0 */ lui $a0, 0xe0 +/* 005FD8 700053D8 3C028006 */ lui $v0, %hi(current_indy_read_buf_resourceID) +/* 005FDC 700053DC 8C423664 */ lw $v0, %lo(current_indy_read_buf_resourceID)($v0) +/* 005FE0 700053E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 005FE4 700053E4 3C018264 */ lui $at, (0x826475BE >> 16) # lui $at, 0x8264 +/* 005FE8 700053E8 342175BE */ ori $at, (0x826475BE & 0xFFFF) # ori $at, $at, 0x75be +/* 005FEC 700053EC 00417026 */ xor $t6, $v0, $at +/* 005FF0 700053F0 2DC20001 */ sltiu $v0, $t6, 1 +/* 005FF4 700053F4 03E00008 */ jr $ra +/* 005FF8 700053F8 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +/** + * 5FFC 700053FC + * unconditional return + */ +void debug_indy_stub(void) { + return; +} + +/** + * 6004 70005404 + * unconditional return + */ +void debug_indy_stub_0(void) { + return; +} + +/** + * 600C 7000540C + * unconditional return + */ +void debug_indy_stub_1(void) { + return; +} + +/** + * 6014 70005414 + * V0= indy.read.buf.resourceID [80063664] + */ +u32 * return_indy_read_buf_resourceID(void) { + return current_indy_read_buf_resourceID; +} + +/** + * 6020 70005420 + * V0=hardcoded SP for debug thread A1, corrected for address range A0 + * accepts: A0=p->address space, A1=entry# + */ +#ifdef NONMATCHING +s32 debug_sp_related_11(u32 arg0, u32 arg1) +{ + ? sp1C; + ? sp8; + s32 temp_v0; + void *temp_t8; + + sp1C = (?32) stack_ptrs_1; + sp1C.unk4 = (?32) stack_ptrs_1.unk4; + sp1C.unk8 = (?32) stack_ptrs_1.unk8; + sp1C.unkC = (?32) stack_ptrs_1.unkC; + sp1C.unk10 = (?32) stack_ptrs_1.unk10; + sp8 = (?32) stack_ptrs_2; + sp8.unk4 = (?32) stack_ptrs_2.unk4; + sp8.unk8 = (?32) stack_ptrs_2.unk8; + sp8.unkC = (?32) stack_ptrs_2.unkC; + sp8.unk10 = (?32) stack_ptrs_2.unk10; + if (arg1 <= 0) + { + return 0; + } + temp_v0 = (arg1 * 4); + if (arg1 >= 6U) + { + return 0; + } + temp_t8 = (&sp8 + temp_v0); + if (arg0 < 0x80000000U) + { + return ((arg0 & 0xf0000000) | (*temp_t8 - *(&sp1C + temp_v0))); + } + return *temp_t8; +} +#else +GLOBAL_ASM( +.text +glabel debug_sp_related_11 +/* 006020 70005420 3C0E8002 */ lui $t6, %hi(stack_ptrs_1) +/* 006024 70005424 25CE36DC */ addiu $t6, %lo(stack_ptrs_1) # addiu $t6, $t6, 0x36dc +/* 006028 70005428 8DC10000 */ lw $at, ($t6) +/* 00602C 7000542C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 006030 70005430 27A7001C */ addiu $a3, $sp, 0x1c +/* 006034 70005434 ACE10000 */ sw $at, ($a3) +/* 006038 70005438 8DD90004 */ lw $t9, 4($t6) +/* 00603C 7000543C 3C098002 */ lui $t1, %hi(stack_ptrs_2) +/* 006040 70005440 252936F0 */ addiu $t1, %lo(stack_ptrs_2) # addiu $t1, $t1, 0x36f0 +/* 006044 70005444 ACF90004 */ sw $t9, 4($a3) +/* 006048 70005448 8DC10008 */ lw $at, 8($t6) +/* 00604C 7000544C 27A80008 */ addiu $t0, $sp, 8 +/* 006050 70005450 00803025 */ move $a2, $a0 +/* 006054 70005454 ACE10008 */ sw $at, 8($a3) +/* 006058 70005458 8DD9000C */ lw $t9, 0xc($t6) +/* 00605C 7000545C ACF9000C */ sw $t9, 0xc($a3) +/* 006060 70005460 8DC10010 */ lw $at, 0x10($t6) +/* 006064 70005464 ACE10010 */ sw $at, 0x10($a3) +/* 006068 70005468 8D210000 */ lw $at, ($t1) +/* 00606C 7000546C AD010000 */ sw $at, ($t0) +/* 006070 70005470 8D2C0004 */ lw $t4, 4($t1) +/* 006074 70005474 AD0C0004 */ sw $t4, 4($t0) +/* 006078 70005478 8D210008 */ lw $at, 8($t1) +/* 00607C 7000547C AD010008 */ sw $at, 8($t0) +/* 006080 70005480 8D2C000C */ lw $t4, 0xc($t1) +/* 006084 70005484 AD0C000C */ sw $t4, 0xc($t0) +/* 006088 70005488 8D210010 */ lw $at, 0x10($t1) +/* 00608C 7000548C 18A00004 */ blez $a1, .L700054A0 +/* 006090 70005490 AD010010 */ sw $at, 0x10($t0) +/* 006094 70005494 2CA10006 */ sltiu $at, $a1, 6 +/* 006098 70005498 14200003 */ bnez $at, .L700054A8 +/* 00609C 7000549C 00051080 */ sll $v0, $a1, 2 +.L700054A0: +/* 0060A0 700054A0 1000000E */ b .L700054DC +/* 0060A4 700054A4 00001025 */ move $v0, $zero +.L700054A8: +/* 0060A8 700054A8 3C018000 */ lui $at, 0x8000 +/* 0060AC 700054AC 00E26821 */ addu $t5, $a3, $v0 +/* 0060B0 700054B0 0102C021 */ addu $t8, $t0, $v0 +/* 0060B4 700054B4 00C1082B */ sltu $at, $a2, $at +/* 0060B8 700054B8 8DA30000 */ lw $v1, ($t5) +/* 0060BC 700054BC 14200003 */ bnez $at, .L700054CC +/* 0060C0 700054C0 8F040000 */ lw $a0, ($t8) +/* 0060C4 700054C4 10000005 */ b .L700054DC +/* 0060C8 700054C8 00801025 */ move $v0, $a0 +.L700054CC: +/* 0060CC 700054CC 3C01F000 */ lui $at, 0xf000 +/* 0060D0 700054D0 00C17824 */ and $t7, $a2, $at +/* 0060D4 700054D4 00837023 */ subu $t6, $a0, $v1 +/* 0060D8 700054D8 01EE1025 */ or $v0, $t7, $t6 +.L700054DC: +/* 0060DC 700054DC 03E00008 */ jr $ra +/* 0060E0 700054E0 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +/** + * 60E4 700054E4 + * V0=hardcoded SP for debug thread A1, corrected for address range A0 + * accepts: A0=p->address space, A1=entry# + */ +#ifdef NONMATCHING +s32 debug_sp_related_12(u32 arg0, u32 arg1) { + u32 sp4; + + // Node 0 + sp4 = (?32) stack_ptrs_3; + sp4.unk4 = (?32) stack_ptrs_3.unk4; + sp4.unk8 = (?32) stack_ptrs_3.unk8; + sp4.unkC = (?32) stack_ptrs_3.unkC; + sp4.unk10 = (?32) stack_ptrs_3.unk10; + if (arg1 <= 0) + { + // Node 2 + return; + // (possible return value: 0) + } + // Node 1 + if (arg1 >= 6U) + { + // Node 2 + return; + // (possible return value: 0) + } + // Node 3 + if (arg0 >= 0x80000000U) + { + // Node 4 + return; + // (possible return value: *(&sp4 + (arg1 * 4))) + } + // Node 5 + return; + // (possible return value: (arg0 & 0xf0000000)) +} +#else +GLOBAL_ASM( +.text +glabel debug_sp_related_12 +/* 0060E4 700054E4 3C0E8002 */ lui $t6, %hi(stack_ptrs_3) +/* 0060E8 700054E8 25CE3704 */ addiu $t6, %lo(stack_ptrs_3) # addiu $t6, $t6, 0x3704 +/* 0060EC 700054EC 8DC10000 */ lw $at, ($t6) +/* 0060F0 700054F0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0060F4 700054F4 27A20004 */ addiu $v0, $sp, 4 +/* 0060F8 700054F8 AC410000 */ sw $at, ($v0) +/* 0060FC 700054FC 8DD90004 */ lw $t9, 4($t6) +/* 006100 70005500 AC590004 */ sw $t9, 4($v0) +/* 006104 70005504 8DC10008 */ lw $at, 8($t6) +/* 006108 70005508 AC410008 */ sw $at, 8($v0) +/* 00610C 7000550C 8DD9000C */ lw $t9, 0xc($t6) +/* 006110 70005510 AC59000C */ sw $t9, 0xc($v0) +/* 006114 70005514 8DC10010 */ lw $at, 0x10($t6) +/* 006118 70005518 18A00004 */ blez $a1, .L7000552C +/* 00611C 7000551C AC410010 */ sw $at, 0x10($v0) +/* 006120 70005520 2CA10006 */ sltiu $at, $a1, 6 +/* 006124 70005524 14200003 */ bnez $at, .L70005534 +/* 006128 70005528 00054080 */ sll $t0, $a1, 2 +.L7000552C: +/* 00612C 7000552C 1000000A */ b .L70005558 +/* 006130 70005530 00001025 */ move $v0, $zero +.L70005534: +/* 006134 70005534 3C018000 */ lui $at, 0x8000 +/* 006138 70005538 00484821 */ addu $t1, $v0, $t0 +/* 00613C 7000553C 0081082B */ sltu $at, $a0, $at +/* 006140 70005540 14200003 */ bnez $at, .L70005550 +/* 006144 70005544 8D230000 */ lw $v1, ($t1) +/* 006148 70005548 10000003 */ b .L70005558 +/* 00614C 7000554C 00601025 */ move $v0, $v1 +.L70005550: +/* 006150 70005550 3C01F000 */ lui $at, 0xf000 +/* 006154 70005554 00811024 */ and $v0, $a0, $at +.L70005558: +/* 006158 70005558 03E00008 */ jr $ra +/* 00615C 7000555C 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + +//maybe newfile, falls on 0 address and logically does different things + +/** + * 6160 70005560 + * V0= TRUE if F12 a normal single precision float + * accepts: F12= single-precision float + */ +#ifdef NONMATCHING +s32 _is_normal_single_precision_float(f32 arg0) { + // Node 0 + if ((u32) (arg0 & 0x7fffff) >= 1U) + { + // Node 1 + if (0U < (u32) ((arg0 >> 0x17) & 0xff)) + { + // Node 2 + return; + // (possible return value: (0U < (u32) (((arg0 >> 0x17) & 0xff) ^ 0xff))) + } + } + // (possible return value: ((u32) (arg0 & 0x7fffff) < 1U)) +} +#else +GLOBAL_ASM( +.text +glabel _is_normal_single_precision_float +/* 006160 70005560 E7AC0000 */ swc1 $f12, ($sp) +/* 006164 70005564 8FA40000 */ lw $a0, ($sp) +/* 006168 70005568 3C01007F */ lui $at, (0x007FFFFF >> 16) # lui $at, 0x7f +/* 00616C 7000556C 3421FFFF */ ori $at, (0x007FFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 006170 70005570 00811024 */ and $v0, $a0, $at +/* 006174 70005574 2C4E0001 */ sltiu $t6, $v0, 1 +/* 006178 70005578 15C00008 */ bnez $t6, .L7000559C +/* 00617C 7000557C 01C01025 */ move $v0, $t6 +/* 006180 70005580 00041DC2 */ srl $v1, $a0, 0x17 +/* 006184 70005584 306F00FF */ andi $t7, $v1, 0xff +/* 006188 70005588 000F102B */ sltu $v0, $zero, $t7 +/* 00618C 7000558C 10400003 */ beqz $v0, .L7000559C +/* 006190 70005590 00000000 */ nop +/* 006194 70005594 39E200FF */ xori $v0, $t7, 0xff +/* 006198 70005598 0002102B */ sltu $v0, $zero, $v0 +.L7000559C: +/* 00619C 7000559C 03E00008 */ jr $ra +/* 0061A0 700055A0 00000000 */ nop +) +#endif + + + + +/** + * 61A4 700055A4 + * V0= TRUE if A1 a normal single precision float; would have set result as short at A0 + * accepts: A0=(unused) p->target, A1=single-precision float + */ +#ifdef NONMATCHING +void is_normal_single_precision_float(s32 arg0, s32 arg1) { + _is_normal_single_precision_float(arg1); +} +#else +GLOBAL_ASM( +.text +glabel is_normal_single_precision_float +/* 0061A4 700055A4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0061A8 700055A8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0061AC 700055AC 44856000 */ mtc1 $a1, $f12 +/* 0061B0 700055B0 0C001558 */ jal _is_normal_single_precision_float +/* 0061B4 700055B4 AFA40018 */ sw $a0, 0x18($sp) +/* 0061B8 700055B8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0061BC 700055BC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0061C0 700055C0 03E00008 */ jr $ra +/* 0061C4 700055C4 00000000 */ nop +) +#endif + + + + + +/** + * 61C8 700055C8 + * removed: set normality of single-precision floats A1, A2, A3, SP+10 in table at A0 + */ +#ifdef NONMATCHING +void set_normality_of_single_precision_floats(s32 arg0, s32 arg1, ? arg2, ? arg3, s32 arg6, ? arg8, ? arg9, ? argA) { + // Node 0 + is_normal_single_precision_float(arg1, arg1); + is_normal_single_precision_float((arg6 + 2), arg8); + is_normal_single_precision_float((arg6 + 4), arg9); + is_normal_single_precision_float((arg6 + 6), argA); + return; + // (possible return value: is_normal_single_precision_float((arg6 + 6), argA)) +} +#else +GLOBAL_ASM( +.text +glabel set_normality_of_single_precision_floats +/* 0061C8 700055C8 44856000 */ mtc1 $a1, $f12 +/* 0061CC 700055CC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0061D0 700055D0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0061D4 700055D4 44056000 */ mfc1 $a1, $f12 +/* 0061D8 700055D8 AFA40018 */ sw $a0, 0x18($sp) +/* 0061DC 700055DC AFA60020 */ sw $a2, 0x20($sp) +/* 0061E0 700055E0 0C001569 */ jal is_normal_single_precision_float +/* 0061E4 700055E4 AFA70024 */ sw $a3, 0x24($sp) +/* 0061E8 700055E8 8FA40018 */ lw $a0, 0x18($sp) +/* 0061EC 700055EC 8FA50020 */ lw $a1, 0x20($sp) +/* 0061F0 700055F0 0C001569 */ jal is_normal_single_precision_float +/* 0061F4 700055F4 24840002 */ addiu $a0, $a0, 2 +/* 0061F8 700055F8 8FA40018 */ lw $a0, 0x18($sp) +/* 0061FC 700055FC 8FA50024 */ lw $a1, 0x24($sp) +/* 006200 70005600 0C001569 */ jal is_normal_single_precision_float +/* 006204 70005604 24840004 */ addiu $a0, $a0, 4 +/* 006208 70005608 8FA40018 */ lw $a0, 0x18($sp) +/* 00620C 7000560C 8FA50028 */ lw $a1, 0x28($sp) +/* 006210 70005610 0C001569 */ jal is_normal_single_precision_float +/* 006214 70005614 24840006 */ addiu $a0, $a0, 6 +/* 006218 70005618 8FBF0014 */ lw $ra, 0x14($sp) +/* 00621C 7000561C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 006220 70005620 03E00008 */ jr $ra +/* 006224 70005624 00000000 */ nop +) +#endif + +/** + * 6228 70005628 + * unconditional return + */ +void debug_indy_stub_2(void) { + return; +} + + diff --git a/src/deb_video.h b/src/deb_video.h new file mode 100644 index 0000000..e9770ef --- /dev/null +++ b/src/deb_video.h @@ -0,0 +1,8 @@ +#ifndef _DEB_VIDEO_H_ +#define _DEB_VIDEO_H_ + +#include "ultra64.h" + +void tlbproc(void); + +#endif diff --git a/src/debug_getlastRA.c b/src/debug_getlastRA.c new file mode 100644 index 0000000..5841675 --- /dev/null +++ b/src/debug_getlastRA.c @@ -0,0 +1,56 @@ +#include "ultra64.h" + +/** + * @file debug_getlastRA.c + * This file contains code to get last return address on stack. + */ + + +/** + * 6710 70005B10 + * V0=value of RA previously saved to the stack or -1 if impossible to retrieve + * Searches backward from caller for last instance of RA saved to stack. + */ +#ifdef NONMATCHING +s32 return_last_RA_saved_to_stack(undefined4 param_1) { + uint uVar1; + uint *unaff_retaddr; + s32 auStackX0 [4]; + + while( true ) { + uVar1 = *unaff_retaddr >> 0x10; + if (uVar1 == 0x27bd) { + return -1; + } + if (uVar1 == 0xafbf) break; + unaff_retaddr = unaff_retaddr + -1; + } + return *(s32 *)((int)auStackX0 + (int)(short)*unaff_retaddr); +} +#else +GLOBAL_ASM( +.text +glabel return_last_RA_saved_to_stack +/* 006710 70005B10 03E02025 */ move $a0, $ra +/* 006714 70005B14 2402FFFF */ li $v0, -1 +glabel .L70005B18 +/* 006718 70005B18 8C880000 */ lw $t0, ($a0) +/* 00671C 70005B1C 240A27BD */ li $t2, 10173 +/* 006720 70005B20 00084C02 */ srl $t1, $t0, 0x10 +/* 006724 70005B24 112A000A */ beq $t1, $t2, .L70005B50 +/* 006728 70005B28 00000000 */ nop +/* 00672C 70005B2C 340AAFBF */ li $t2, 44991 +/* 006730 70005B30 512A0004 */ beql $t1, $t2, .L70005B44 +/* 006734 70005B34 00085400 */ sll $t2, $t0, 0x10 +/* 006738 70005B38 080016C6 */ j .L70005B18 +/* 00673C 70005B3C 2484FFFC */ addiu $a0, $a0, -4 +/* 006740 70005B40 00085400 */ sll $t2, $t0, 0x10 +.L70005B44: +/* 006744 70005B44 000A5403 */ sra $t2, $t2, 0x10 +/* 006748 70005B48 015D5020 */ add $t2, $t2, $sp +/* 00674C 70005B4C 8D420000 */ lw $v0, ($t2) +.L70005B50: +/* 006750 70005B50 03E00008 */ jr $ra +/* 006754 70005B54 00000000 */ nop +) +#endif \ No newline at end of file diff --git a/src/debugmenu.c b/src/debugmenu.c new file mode 100644 index 0000000..a0979c2 --- /dev/null +++ b/src/debugmenu.c @@ -0,0 +1,1102 @@ +#include "ultra64.h" +#include "debugmenu.h" +#include "vi.h" + +u32 image_resource[] = { + 0, 0x227A00, 0x7A348B, 0x223434, 0x115811, 0x696900, 0, 0x9C00, + 0x4600, 0x460000, 0x4600, 0, 0, 0, 0, 0x46, + 0x229C11, 0x346900, 0x229C11, 0x699C11, 0x5834, 0xADAD34, 0x118B34, 0x9CAD7A, + 0x229C11, 0x229C11, 0, 0, 0, 0, 0, 0x113411, + 0, 0x46CE00, 0xAD58DE, 0x466969, 0x9C9C69, 0x8B8B00, 0x469C00, 0x22CE00, + 0x583400, 0x345800, 0x7ACE69, 0x5800, 0, 0, 0, 0x3446, + 0x8B007A, 0x588B00, 0x8B008B, 0x22007A, 0x119C69, 0x8B0000, 0x9C1100, 0x22008B, + 0x8B007A, 0x8B007A, 0, 0, 0x225869, 0,0x69582200, 0x9C698B, + 0, 0x46CE00, 0x222258, 0xDEEF7A, 0xAD1111, 0x69EF9C, 0x8B0000, 0x460000, + 0x8B0000, 0x8B00, 0x58CE34, 0x8B00, 0, 0, 0, 0x8B00, + 0x8B008B, 0x8B00, 0x11007A, 0x118B46, 0x58467A, 0xCEAD22, 0x9C8B00, 0x117A, + 0x698B46, 0x8B00AD, 0x34AD00, 0x34AD00,0x228B4600,0x8B8B8B8B, 0x468B22, 0x11008B, + 0, 0x7A00, 0, 0x9C9C00, 0x118B34,0x22ADBD46, 0x8B8B34, 0, + 0x8B0000, 0x8B00, 0x7A2269,0x22ADEF9C, 0,0x22ADADAD, 0, 0x226900, + 0x8B008B, 0x8B00, 0x7A00, 0x117A, 0x9C347A, 0x8B, 0xCE117A, 0x2269, + 0x8B227A, 0x229C8B, 0x1100, 0x1100,0xAD580000,0x34343434, 0x58AD, 0xBD34, + 0, 0x112200, 0,0x22DEDE22, 0xCE5858, 0x46468B, 0x8BAD00, 0, + 0x8B0000, 0x8B00, 0, 0x8B00, 0x3400, 0, 0x2200, 0x691100, + 0x8B008B, 0x8B00, 0x691158, 0x11008B, 0x7A9CAD,0x1122008B, 0x8B008B, 0x8B00, + 0x8B008B, 0x227A, 0x2200, 0x2200,0x228B4600,0x8B8B8B8B, 0x468B22, 0x6900, + 0, 0x228B00, 0, 0x8B8B00, 0x34BD00, 0x119C46, 0x7A6969, 0, + 0x583400, 0x345800, 0, 0x5800, 0x11FF00, 0, 0x228B00, 0x8B0000, + 0x349C22, 0x8BCE69,0x22BDAD8B, 0x7A9C11, 0x8B8B,0x118B9C11, 0x349C22, 0x5800, + 0x349C11, 0x588B11, 0x228B00, 0x69AD00, 0x225869, 0,0x69582200, 0xBD00, + 0, 0, 0, 0x464600, 0x4600, 0, 0, 0, + 0x4600, 0x460000, 0, 0, 0x583400, 0, 0,0x58340000, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x8B0000, 0, 0, 0, 0, + 0x229C11, 0x221100,0x11223400, 0x3411,0x11342200, 0x343422, 0x343422, 0x2222, + 0x220022, 0x342222, 0x3434, 0x341122,0x22341100,0x11110022,0x22221134, 0x2200, + 0x343411, 0x3400, 0x343411, 0x113411, 0x343434,0x11341134,0x11220034,0x34220034, +0x11340022,0x11220034, 0x223422, 0x8B34, 0x460000, 0x587A00, 0x5800, 0, +0x348B008B, 0x69BD00,0x11DE7A58, 0xAD69DE,0x22CE7A9C,0x11CE7AAD,0x11CE7AAD, 0xAD7ADE, +0x22CE00CE, 0x69CE58, 0x8BCE,0x22CE22CE,0x46CE4600,0x7ABD00FF,0x58FF46CE, 0xAD7A9C, +0x11CE7A7A, 0xAD7A8B,0x22CE7A7A,0x118B7ABD,0x469CCECE,0x8B8B34CE,0x8B8B00BD,0xBD8B22BD, +0x58CE00CE,0x22BD00CE, 0xBD7AAD, 0x8B00, 0x7A1100, 0x8B00, 0x694658, 0, +0x468B7ABD, 0x588B22, 0x8B008B,0x46460011, 0x8B007A,0x118B3458, 0x8B3458,0x46460011, + 0x8B008B, 0x8B00, 0x117A, 0x8B7A11, 0x8B0000,0x589C58BD,0x11AD698B,0x4646007A, +0x118B007A,0x5846007A,0x118B007A,0x46580011,0x34228B46,0x6934008B, 0x7A008B,0x58348B7A, +0x11696946, 0x695846, 0x113458, 0x8B00, 0x116900, 0x8B00, 0x110011, 0, +0x468B8B9C, 0x9C228B, 0xDEAD7A,0x58340000, 0x8B007A,0x11DEAD00, 0xDEAD00,0x583400AD, +0x46DEADBD, 0x8B00,0x3411117A, 0xDEAD00, 0x8B0000,0x5846AD7A,0x118B8B8B,0x5834007A, +0x11DEAD34,0x5834007A,0x11DEDE46, 0x58AD34, 0x8B00,0x5834008B, 0x8B117A, 0xBDDE8B, + 0x22AD00, 0x11BD00, 0x226900, 0x8B00, 0x8B00, 0x8B00, 0, 0, +0x348B348B,0x469C8BAD, 0x8B007A,0x347A0058, 0x8B009C, 0x8B008B, 0x8B0000,0x228B007A, + 0x8B008B, 0x8B00,0x46462269, 0x8B117A, 0x8B007A,0x6934347A,0x118B34DE,0x118B009C, + 0x8B0000,0x228B009C, 0x8B117A,0x3434008B, 0x8B00,0x4646008B, 0x22CE00, 0xADBD8B, + 0x8B007A, 0x8B00, 0x8B0058, 0x8B00, 0x3446, 0x8B00, 0, 0, + 0x697A9C,0x7A9C00BD,0x69CEAD58, 0x58AD58,0x22BDAD34,0x22CEAD8B,0x22BD2200, 0x58AD58, +0x22AD00CE, 0x8BBD7A, 0x7A7A00,0x22BD228B,0x69BDADBD,0x8B9C00BD,0x69CE227A, 0x58AD34, +0x22CE6900, 0x9CEF69,0x22BD2258,0x7A9C9C22, 0x46CE34, 0x7AAD11, 0x5800, 0x580058, +0x22AD00CE, 0x58BD34, 0xAD9C9C, 0x8B00, 0x8B, 0x8B00, 0,0x22222222, + 0x2211, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0x58588B, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0xCE34, 0x7A,0x1158AD00, 0,0x7A7A7A7A, + 0x693400, 0,0x22690000, 0, 0x8B, 0, 0x589C,0x11000000, +0x22690000, 0x1100, 0x1100,0x22690000, 0x8B7A00, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0x4646, 0x4600, 0x464600, 0, 0, + 0x46AD00, 0, 0x8B0000, 0, 0x8B, 0, 0x116900, 0, + 0x8B0000, 0x6900, 0x6900, 0x8B0000, 0x8B00, 0, 0, 0, + 0, 0, 0, 0, 0x226900, 0, 0, 0, + 0, 0, 0, 0x8B00, 0x8B00, 0x8B00, 0, 0, + 0x5800, 0x8B9C34, 0xCEAD69, 0x7AAD9C, 0x8BADBD, 0x7AAD34, 0x9CDE7A, 0x8B9CCE, +0x11CEAD69, 0x589C00, 0x8BAD69, 0x8BAD69, 0x8B00,0x7AAD9C9C,0x22CEAD69, 0x7AAD34, +0x22CEAD69, 0x8B9CDE,0x22DE9C69, 0x7AAD9C, 0x9CDE7A,0x118B00AD,0x11CE00DE,0x34CE00DE, +0x22CE34AD,0x22CE00DE, 0xBD9CAD, 0x8B00, 0x8B00, 0x8B00,0x229C347A, 0, + 0, 0x9CAD7A, 0x8B007A,0x69340034,0x4634009C,0x46CE9CBD, 0x226900,0x4646008B, + 0x8B008B, 0x8B00, 0x7A, 0xDE7A00, 0x8B00,0x46468B69,0x119C008B,0x4646008B, + 0x8B0069,0x5846008B, 0x8B0000, 0x8B7A58, 0x226900, 0x8B008B, 0x7A117A, 0x8B8B8B, + 0x58BD00, 0x8B008B, 0x464646, 0x467A00, 0x8B00, 0x8B46,0x7A349C22, 0, + 0,0x4634227A, 0x9C007A,0x58460022,0x4646009C,0x34460034, 0x226900,0x3446009C, + 0x8B008B, 0x8B00, 0x7A, 0x8B6911, 0x8B00,0x46468B69,0x118B008B,0x3458008B, + 0xAD0069,0x584600AD, 0x8B0000, 0x69348B, 0x226911, 0x8B009C, 0x11DE00, 0xADBD8B, + 0x699C11, 0x469C34, 0x225858, 0x8B00, 0x8B00, 0x8B00, 0, 0, + 0,0x119C8BCE,0x22ADAD58, 0x7A9C46, 0x69ADAD,0x1169AD46, 0x8BBD7A, 0x69ADAD, +0x22AD00BD,0x118BCE69, 0x7A,0x227A34CE, 0x8BBD7A,0x7A699C46,0x69BD00CE, 0x7A9C22, + 0xBD9C58, 0x69ADAD,0x22CE9C34, 0x8BAD58, 0x9C8B, 0x699CAD,0x11005800, 0x580069, +0x11BD349C, 0x9C00, 0xADAD9C, 0x8B00, 0x8B00, 0x8B00, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x8B, + 0, 0, 0x4646, 0, 0, 0, 0, 0, + 0x8B0000, 0x8B, 0, 0, 0, 0, 0, 0, + 0, 0x226900, 0, 0x8B46, 0x8B00, 0x467A00, 0, 0 +}; + +s32 debug_menu_x_pos_offset = 5; +s32 debug_menu_y_pos_offset = 1; +s32 debug_menu_x_text_pos = 0x18; +s32 debug_menu_y_text_pos = 0x10; + +u32 stdout_display_list[] = { + 0xE7000000, 0, //gsDPPipeSync(), + 0xBA001402, 0, //gsDPSetCycleType(G_CYC_1CYCLE), + 0xBA000602, 0xC0, //gsDPSetTextureLOD + 0xB900031D,0x500A4240, //gsDPSetRenderMode + 0xFC30B261,0x5566DB6D, //gsDPSetCombineMode + 0xBA001301, 0, //gsDPSetTextureLOD + 0xB9000002, 0, //gsDPSetRenderMode + 0xFD700000,&image_resource[0], //gsDPSetTextureImage + 0xF5700000, 0x7000000, //gsDPSetTile + 0xE6000000, 0, //gsDPLoadSync(), + 0xF3000000, 0x753F080, //gsDPLoadBlock + 0xE7000000, 0, //gsDPPipeSync(), + 0xF5682000, 0, //gsDPSetTile + 0xF2000000, 0x1FC050, //gsDPSetTileSize + 0xE6000000, 0, //gsDPLoadSync(), + 0xB8000000, 0 //gsSPEndDisplayList(), +}; + +u32 stdout_debug_menu_screen_buffer[1400] = {0}; +u32 stdout_primary_color_table[64] = {0}; +u32 stdout_environment_color_table[64] = {0}; + +char *string_formatting[] = {0, +"\x1B[31m\x1B[40m", "\x1B[37m\x1B[40m", +"\x1B[32m\x1B[40m", "\x1B[33m\x1B[40m", +"\x1B[34m\x1B[40m", "\x1B[35m\x1B[40m", +"\x1B[36m\x1B[40m", "\x1B[37m\x1B[44m", +"\x1B[31m\x1B[44m", "\x1B[32m\x1B[44m", +"\x1B[33m\x1B[44m", "\x1B[30m\x1B[44m", +"\x1B[35m\x1B[44m", "\x1B[36m\x1B[44m", +"\x1B[37m\x1B[41m", "\x1B[30m\x1B[41m", +"\x1B[32m\x1B[41m", "\x1B[33m\x1B[41m", +"\x1B[34m\x1B[41m", "\x1B[35m\x1B[41m", +"\x1B[36m\x1B[41m", "\x1B[37m\x1B[45m", +"\x1B[31m\x1B[45m", "\x1B[32m\x1B[45m", +"\x1B[33m\x1B[45m", "\x1B[34m\x1B[45m", +"\x1B[30m\x1B[45m", "\x1B[36m\x1B[45m", +"\x1B[37m\x1B[42m", "\x1B[31m\x1B[42m", +"\x1B[30m\x1B[42m", "\x1B[33m\x1B[42m"}; + + + +u64 end_displaylist_command = 0xB800000000000000; +u64 blank_C0_command =0xC000000000000000; +u32 stdout_primary_color = 0xFA000000; +u32 debug_text_color = 0xFFFFFF00; +u32 debug_text_bg_color = 0xFB000000; +u32 speedgraph_color = 0; +u32 D_800268B8 = 0xFF; + + + + + +u32 dummied_function_7000AD80(s32 arg0, s32 arg1) +{ + return 0; +} + + +u32 dummied_function_7000AD90(s32 arg0, s32 arg1) +{ + return 0; +} + + +void null_function_7000ADA0(void) +{ +//empty +} + + +void debugmenuInit_REMOVED(void) +{ +//empty +} + + +void debug_text_related_2(void) +{ + blank_debug_buffer_chars(); +} + + + + + + +#ifdef NONMATCHING +s32 display_text_to_coord(s32 arg0, s32 arg1, s32 arg2) { + s32 temp_a0; + void *temp_t5; + void *temp_t8; + s32 temp_t7; + s32 temp_t5_2; + void *temp_v1; + + // Node 0 + // Node 1 + if ((debug_text_color != stdout_primary_color_table.unk4) || (debug_text_bg_color.unk4 != (&stdout_environment_color_table + 0)->unk4)) + { + // Node 3 + if ((0 + 1) < 0x20) + { + goto loop_1; + } + // Node 4 + temp_a0 = (string_formatting * 8); + temp_t5 = (temp_a0 + &stdout_primary_color_table); + *temp_t5 = (?32) stdout_primary_color; + temp_t8 = (&stdout_environment_color_table + temp_a0); + temp_t7 = (string_formatting + 1); + temp_t5->unk4 = (?32) stdout_primary_color.unk4; + *temp_t8 = (?32) debug_text_bg_color; + temp_t8->unk4 = (s32) debug_text_bg_color.unk4; + temp_t5_2 = (temp_t7 & 0x1f); + if (temp_t7 < 0) + { + // Node 5 + if (temp_t5_2 != 0) + { + // Node 6 + } + } + // Node 7 + string_formatting = temp_t5_2; + } + else + { + + } + // Node 8 + temp_v1 = (((arg0 * 0x46) + (arg1 * 2)) + &stdout_debug_menu_screen_buffer); + *temp_v1 = (s8) (arg2 & 0xff); + temp_v1->unk1 = temp_t5_2; + return; + // (possible return value: temp_t5_2) +} + +#else +GLOBAL_ASM( +.text +glabel display_text_to_coord +/* 00B9D0 7000ADD0 AFA60008 */ sw $a2, 8($sp) +/* 00B9D4 7000ADD4 30CE00FF */ andi $t6, $a2, 0xff +/* 00B9D8 7000ADD8 3C038002 */ lui $v1, %hi(debug_text_color) +/* 00B9DC 7000ADDC 3C088002 */ lui $t0, %hi(stdout_primary_color_table) +/* 00B9E0 7000ADE0 3C0A8002 */ lui $t2, %hi(stdout_environment_color_table) +/* 00B9E4 7000ADE4 3C098002 */ lui $t1, %hi(debug_text_bg_color) +/* 00B9E8 7000ADE8 01C03025 */ move $a2, $t6 +/* 00B9EC 7000ADEC AFA40000 */ sw $a0, ($sp) +/* 00B9F0 7000ADF0 252968B0 */ addiu $t1, %lo(debug_text_bg_color) # addiu $t1, $t1, 0x68b0 +/* 00B9F4 7000ADF4 254A6710 */ addiu $t2, %lo(stdout_environment_color_table) # addiu $t2, $t2, 0x6710 +/* 00B9F8 7000ADF8 25086610 */ addiu $t0, %lo(stdout_primary_color_table) # addiu $t0, $t0, 0x6610 +/* 00B9FC 7000ADFC 8C6368AC */ lw $v1, %lo(debug_text_color)($v1) +/* 00BA00 7000AE00 00001025 */ move $v0, $zero +/* 00BA04 7000AE04 00003825 */ move $a3, $zero +.L7000AE08: +/* 00BA08 7000AE08 8D0F0004 */ lw $t7, 4($t0) +/* 00BA0C 7000AE0C 25080008 */ addiu $t0, $t0, 8 +/* 00BA10 7000AE10 0147C821 */ addu $t9, $t2, $a3 +/* 00BA14 7000AE14 546F0006 */ bnel $v1, $t7, .L7000AE30 +/* 00BA18 7000AE18 24420001 */ addiu $v0, $v0, 1 +/* 00BA1C 7000AE1C 8D380004 */ lw $t8, 4($t1) +/* 00BA20 7000AE20 8F2B0004 */ lw $t3, 4($t9) +/* 00BA24 7000AE24 530B0020 */ beql $t8, $t3, .L7000AEA8 +/* 00BA28 7000AE28 8FAE0000 */ lw $t6, ($sp) +/* 00BA2C 7000AE2C 24420001 */ addiu $v0, $v0, 1 +.L7000AE30: +/* 00BA30 7000AE30 28410020 */ slti $at, $v0, 0x20 +/* 00BA34 7000AE34 1420FFF4 */ bnez $at, .L7000AE08 +/* 00BA38 7000AE38 24E70008 */ addiu $a3, $a3, 8 +/* 00BA3C 7000AE3C 3C078002 */ lui $a3, %hi(string_formatting) +/* 00BA40 7000AE40 24E76810 */ addiu $a3, %lo(string_formatting) # addiu $a3, $a3, 0x6810 +/* 00BA44 7000AE44 8CE30000 */ lw $v1, ($a3) +/* 00BA48 7000AE48 3C0E8002 */ lui $t6, %hi(stdout_primary_color) +/* 00BA4C 7000AE4C 25CE68A8 */ addiu $t6, %lo(stdout_primary_color) # addiu $t6, $t6, 0x68a8 +/* 00BA50 7000AE50 8DC10000 */ lw $at, ($t6) +/* 00BA54 7000AE54 3C0C8002 */ lui $t4, %hi(stdout_primary_color_table) +/* 00BA58 7000AE58 258C6610 */ addiu $t4, %lo(stdout_primary_color_table) # addiu $t4, $t4, 0x6610 +/* 00BA5C 7000AE5C 000320C0 */ sll $a0, $v1, 3 +/* 00BA60 7000AE60 008C6821 */ addu $t5, $a0, $t4 +/* 00BA64 7000AE64 ADA10000 */ sw $at, ($t5) +/* 00BA68 7000AE68 8DD90004 */ lw $t9, 4($t6) +/* 00BA6C 7000AE6C 0144C021 */ addu $t8, $t2, $a0 +/* 00BA70 7000AE70 246F0001 */ addiu $t7, $v1, 1 +/* 00BA74 7000AE74 ADB90004 */ sw $t9, 4($t5) +/* 00BA78 7000AE78 8D210000 */ lw $at, ($t1) +/* 00BA7C 7000AE7C AF010000 */ sw $at, ($t8) +/* 00BA80 7000AE80 8D2C0004 */ lw $t4, 4($t1) +/* 00BA84 7000AE84 AF0C0004 */ sw $t4, 4($t8) +/* 00BA88 7000AE88 05E10004 */ bgez $t7, .L7000AE9C +/* 00BA8C 7000AE8C 31ED001F */ andi $t5, $t7, 0x1f +/* 00BA90 7000AE90 11A00002 */ beqz $t5, .L7000AE9C +/* 00BA94 7000AE94 00000000 */ nop +/* 00BA98 7000AE98 25ADFFE0 */ addiu $t5, $t5, -0x20 +.L7000AE9C: +/* 00BA9C 7000AE9C ACED0000 */ sw $t5, ($a3) +/* 00BAA0 7000AEA0 01A01025 */ move $v0, $t5 +/* 00BAA4 7000AEA4 8FAE0000 */ lw $t6, ($sp) +.L7000AEA8: +/* 00BAA8 7000AEA8 00055840 */ sll $t3, $a1, 1 +/* 00BAAC 7000AEAC 3C0C8002 */ lui $t4, %hi(stdout_debug_menu_screen_buffer) +/* 00BAB0 7000AEB0 000EC8C0 */ sll $t9, $t6, 3 +/* 00BAB4 7000AEB4 032EC821 */ addu $t9, $t9, $t6 +/* 00BAB8 7000AEB8 0019C880 */ sll $t9, $t9, 2 +/* 00BABC 7000AEBC 032EC823 */ subu $t9, $t9, $t6 +/* 00BAC0 7000AEC0 0019C840 */ sll $t9, $t9, 1 +/* 00BAC4 7000AEC4 032BC021 */ addu $t8, $t9, $t3 +/* 00BAC8 7000AEC8 258C5030 */ addiu $t4, %lo(stdout_debug_menu_screen_buffer) # addiu $t4, $t4, 0x5030 +/* 00BACC 7000AECC 030C1821 */ addu $v1, $t8, $t4 +/* 00BAD0 7000AED0 A0660000 */ sb $a2, ($v1) +/* 00BAD4 7000AED4 03E00008 */ jr $ra +/* 00BAD8 7000AED8 A0620001 */ sb $v0, 1($v1) +) +#endif + + + + +void debugMenuSetTextPOStoOffset(void) +{ + debug_menu_x_text_pos = debug_menu_x_pos_offset; + debug_menu_y_text_pos = debug_menu_y_pos_offset; +} + + + + +void blank_debug_buffer_chars(void) +{ + int x; + int y; + + for (y = 0; y < 0x23; y++) + { + for (x = 0; x < 0x50; x++) + { + display_text_to_coord(x,y,'\0'); + } + } + debugMenuSetTextPOStoOffset(); + null_function_7000ADA0(); + string_formatting[0] = NULL; +} + + + + +void stubbed_function_7000AF84(s32 arg0, s32 arg1, s32 arg2, s32 arg3) +{ + return; +} + + + + + + +#ifdef NONMATCHING +void something_debug_info_related(s32 arg0) +{ + s32 temp_s0; + s32 temp_s0_2; + s32 phi_s3; + s32 phi_s0; + s32 phi_s1; + s32 phi_s0_2; + + phi_s3 = arg0 + 0x21; + phi_s1 = 0x21; +loop_1: + if ((phi_s3 >= 0) && (phi_s3 < 0x23)) + { +loop_3: + stubbed_function_7000AF84(phi_s0, phi_s3, phi_s0, phi_s1); + temp_s0 = phi_s0 + 1; + phi_s0 = temp_s0; + if (temp_s0 != 0x50) + { + goto loop_3; + } + } + else + { + phi_s0_2 = 0; +loop_6: + display_text_to_coord(phi_s0_2, phi_s1, 0); + temp_s0_2 = phi_s0_2 + 1; + phi_s0_2 = temp_s0_2; + if (temp_s0_2 != 0x50) + { + goto loop_6; + } + } + phi_s3 = phi_s3 - 1; + phi_s1 = phi_s1 - 1; + if (phi_s1 != 0) + { + goto loop_1; + } +} +#else +GLOBAL_ASM( +.text +glabel something_debug_info_related +/* 00BB98 7000AF98 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00BB9C 7000AF9C AFB30020 */ sw $s3, 0x20($sp) +/* 00BBA0 7000AFA0 AFB2001C */ sw $s2, 0x1c($sp) +/* 00BBA4 7000AFA4 AFB10018 */ sw $s1, 0x18($sp) +/* 00BBA8 7000AFA8 AFBF0024 */ sw $ra, 0x24($sp) +/* 00BBAC 7000AFAC AFB00014 */ sw $s0, 0x14($sp) +/* 00BBB0 7000AFB0 24110021 */ li $s1, 33 +/* 00BBB4 7000AFB4 24120050 */ li $s2, 80 +/* 00BBB8 7000AFB8 24930021 */ addiu $s3, $a0, 0x21 +.L7000AFBC: +/* 00BBBC 7000AFBC 0660000D */ bltz $s3, .L7000AFF4 +/* 00BBC0 7000AFC0 2A610023 */ slti $at, $s3, 0x23 +/* 00BBC4 7000AFC4 1020000B */ beqz $at, .L7000AFF4 +/* 00BBC8 7000AFC8 00008025 */ move $s0, $zero +/* 00BBCC 7000AFCC 02002025 */ move $a0, $s0 +.L7000AFD0: +/* 00BBD0 7000AFD0 02602825 */ move $a1, $s3 +/* 00BBD4 7000AFD4 02003025 */ move $a2, $s0 +/* 00BBD8 7000AFD8 0C002BE1 */ jal stubbed_function_7000AF84 +/* 00BBDC 7000AFDC 02203825 */ move $a3, $s1 +/* 00BBE0 7000AFE0 26100001 */ addiu $s0, $s0, 1 +/* 00BBE4 7000AFE4 5612FFFA */ bnel $s0, $s2, .L7000AFD0 +/* 00BBE8 7000AFE8 02002025 */ move $a0, $s0 +/* 00BBEC 7000AFEC 1000000A */ b .L7000B018 +/* 00BBF0 7000AFF0 02201025 */ move $v0, $s1 +.L7000AFF4: +/* 00BBF4 7000AFF4 00008025 */ move $s0, $zero +/* 00BBF8 7000AFF8 02002025 */ move $a0, $s0 +.L7000AFFC: +/* 00BBFC 7000AFFC 02202825 */ move $a1, $s1 +/* 00BC00 7000B000 0C002B74 */ jal display_text_to_coord +/* 00BC04 7000B004 00003025 */ move $a2, $zero +/* 00BC08 7000B008 26100001 */ addiu $s0, $s0, 1 +/* 00BC0C 7000B00C 5612FFFB */ bnel $s0, $s2, .L7000AFFC +/* 00BC10 7000B010 02002025 */ move $a0, $s0 +/* 00BC14 7000B014 02201025 */ move $v0, $s1 +.L7000B018: +/* 00BC18 7000B018 2673FFFF */ addiu $s3, $s3, -1 +/* 00BC1C 7000B01C 1620FFE7 */ bnez $s1, .L7000AFBC +/* 00BC20 7000B020 2631FFFF */ addiu $s1, $s1, -1 +/* 00BC24 7000B024 8FBF0024 */ lw $ra, 0x24($sp) +/* 00BC28 7000B028 8FB00014 */ lw $s0, 0x14($sp) +/* 00BC2C 7000B02C 8FB10018 */ lw $s1, 0x18($sp) +/* 00BC30 7000B030 8FB2001C */ lw $s2, 0x1c($sp) +/* 00BC34 7000B034 8FB30020 */ lw $s3, 0x20($sp) +/* 00BC38 7000B038 03E00008 */ jr $ra +/* 00BC3C 7000B03C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void set_final_debug_text_positions(s32 xadjust,s32 yadjust) +{ + debug_menu_x_text_pos = xadjust + debug_menu_x_pos_offset; + debug_menu_y_text_pos = yadjust + debug_menu_y_pos_offset; +} +#else +GLOBAL_ASM( +.text +glabel set_final_debug_text_positions +/* 00BC40 7000B040 3C0E8002 */ lui $t6, %hi(debug_menu_x_pos_offset) +/* 00BC44 7000B044 8DCE4FA0 */ lw $t6, %lo(debug_menu_x_pos_offset)($t6) +/* 00BC48 7000B048 3C0F8002 */ lui $t7, %hi(debug_menu_y_pos_offset) +/* 00BC4C 7000B04C 8DEF4FA4 */ lw $t7, %lo(debug_menu_y_pos_offset)($t7) +/* 00BC50 7000B050 3C018002 */ lui $at, %hi(debug_menu_x_text_pos) +/* 00BC54 7000B054 008E2021 */ addu $a0, $a0, $t6 +/* 00BC58 7000B058 AC244FA8 */ sw $a0, %lo(debug_menu_x_text_pos)($at) +/* 00BC5C 7000B05C 3C018002 */ lui $at, %hi(debug_menu_y_text_pos) +/* 00BC60 7000B060 00AF2821 */ addu $a1, $a1, $t7 +/* 00BC64 7000B064 03E00008 */ jr $ra +/* 00BC68 7000B068 AC254FAC */ sw $a1, %lo(debug_menu_y_text_pos)($at) +) +#endif + + + + + + +void set_debug_text_color(s32 red,s32 blue,s32 green,s32 alpha) +{ + debug_text_color = red << 0x18 | blue << 0x10 | green << 8 | 0xffU - alpha; +} + + +void set_color_speedgraph(s32 red,s32 green,s32 blue,s32 alpha) +{ + speedgraph_color = red << 0x18 | green << 0x10 | blue << 8 | 0xffU - alpha; +} + + + + + +#ifdef NONMATCHING +void write_char_to_screen(u8 character) + +{ + short txtClipW; + short txtClipH; + int start_pos; + + txtClipW = get_video2_settings_txtClipW(); + start_pos = (int)txtClipW + -0xd; + if (start_pos < 0) { + start_pos = (int)txtClipW + -10; + } + txtClipH = get_video2_settings_txtClipH(); + if ((character == 0) || ((0x1f < character && (character < 0x7f)))) { + display_text_to_coord(debug_menu_x_text_pos,debug_menu_y_text_pos,character); + } + debug_menu_x_text_pos += 1; + if (((character == 0xd) || (character == 10)) || (start_pos >> 2 <= debug_menu_x_text_pos)) { + debug_menu_y_text_pos += 1; + debug_menu_x_text_pos = debug_menu_x_pos_offset; + if (((int)txtClipH + -10) / 7 <= debug_menu_y_text_pos) { + debug_menu_y_text_pos = debug_menu_y_pos_offset; + } + } +} +#else +GLOBAL_ASM( +.text +glabel write_char_to_screen +/* 00BCC4 7000B0C4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00BCC8 7000B0C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 00BCCC 7000B0CC 0C001107 */ jal get_video2_settings_txtClipW +/* 00BCD0 7000B0D0 AFA40028 */ sw $a0, 0x28($sp) +/* 00BCD4 7000B0D4 244EFFF3 */ addiu $t6, $v0, -0xd +/* 00BCD8 7000B0D8 05C10003 */ bgez $t6, .L7000B0E8 +/* 00BCDC 7000B0DC 000E7883 */ sra $t7, $t6, 2 +/* 00BCE0 7000B0E0 25C10003 */ addiu $at, $t6, 3 +/* 00BCE4 7000B0E4 00017883 */ sra $t7, $at, 2 +.L7000B0E8: +/* 00BCE8 7000B0E8 0C00110B */ jal get_video2_settings_txtClipH +/* 00BCEC 7000B0EC AFAF0024 */ sw $t7, 0x24($sp) +/* 00BCF0 7000B0F0 2448FFF6 */ addiu $t0, $v0, -0xa +/* 00BCF4 7000B0F4 24010007 */ li $at, 7 +/* 00BCF8 7000B0F8 0101001A */ div $zero, $t0, $at +/* 00BCFC 7000B0FC 93A6002B */ lbu $a2, 0x2b($sp) +/* 00BD00 7000B100 00004012 */ mflo $t0 +/* 00BD04 7000B104 3C028002 */ lui $v0, %hi(debug_menu_x_text_pos) +/* 00BD08 7000B108 10C00005 */ beqz $a2, .L7000B120 +/* 00BD0C 7000B10C 00C01825 */ move $v1, $a2 +/* 00BD10 7000B110 28610020 */ slti $at, $v1, 0x20 +/* 00BD14 7000B114 1420000C */ bnez $at, .L7000B148 +/* 00BD18 7000B118 2861007F */ slti $at, $v1, 0x7f +/* 00BD1C 7000B11C 1020000A */ beqz $at, .L7000B148 +.L7000B120: +/* 00BD20 7000B120 3C078002 */ lui $a3, %hi(debug_menu_y_text_pos) +/* 00BD24 7000B124 24E74FAC */ addiu $a3, %lo(debug_menu_y_text_pos) # addiu $a3, $a3, 0x4fac +/* 00BD28 7000B128 24424FA8 */ addiu $v0, %lo(debug_menu_x_text_pos) # addiu $v0, $v0, 0x4fa8 +/* 00BD2C 7000B12C 8C440000 */ lw $a0, ($v0) +/* 00BD30 7000B130 8CE50000 */ lw $a1, ($a3) +/* 00BD34 7000B134 AFA3001C */ sw $v1, 0x1c($sp) +/* 00BD38 7000B138 0C002B74 */ jal display_text_to_coord +/* 00BD3C 7000B13C AFA80020 */ sw $t0, 0x20($sp) +/* 00BD40 7000B140 8FA3001C */ lw $v1, 0x1c($sp) +/* 00BD44 7000B144 8FA80020 */ lw $t0, 0x20($sp) +.L7000B148: +/* 00BD48 7000B148 3C028002 */ lui $v0, %hi(debug_menu_x_text_pos) +/* 00BD4C 7000B14C 24424FA8 */ addiu $v0, %lo(debug_menu_x_text_pos) # addiu $v0, $v0, 0x4fa8 +/* 00BD50 7000B150 8C590000 */ lw $t9, ($v0) +/* 00BD54 7000B154 3C078002 */ lui $a3, %hi(debug_menu_y_text_pos) +/* 00BD58 7000B158 2401000D */ li $at, 13 +/* 00BD5C 7000B15C 27290001 */ addiu $t1, $t9, 1 +/* 00BD60 7000B160 24E74FAC */ addiu $a3, %lo(debug_menu_y_text_pos) # addiu $a3, $a3, 0x4fac +/* 00BD64 7000B164 10610007 */ beq $v1, $at, .L7000B184 +/* 00BD68 7000B168 AC490000 */ sw $t1, ($v0) +/* 00BD6C 7000B16C 2401000A */ li $at, 10 +/* 00BD70 7000B170 10610004 */ beq $v1, $at, .L7000B184 +/* 00BD74 7000B174 8FAB0024 */ lw $t3, 0x24($sp) +/* 00BD78 7000B178 012B082A */ slt $at, $t1, $t3 +/* 00BD7C 7000B17C 5420000D */ bnezl $at, .L7000B1B4 +/* 00BD80 7000B180 8FBF0014 */ lw $ra, 0x14($sp) +.L7000B184: +/* 00BD84 7000B184 8CED0000 */ lw $t5, ($a3) +/* 00BD88 7000B188 3C0C8002 */ lui $t4, %hi(debug_menu_x_pos_offset) +/* 00BD8C 7000B18C 8D8C4FA0 */ lw $t4, %lo(debug_menu_x_pos_offset)($t4) +/* 00BD90 7000B190 25AE0001 */ addiu $t6, $t5, 1 +/* 00BD94 7000B194 01C8082A */ slt $at, $t6, $t0 +/* 00BD98 7000B198 ACEE0000 */ sw $t6, ($a3) +/* 00BD9C 7000B19C 14200004 */ bnez $at, .L7000B1B0 +/* 00BDA0 7000B1A0 AC4C0000 */ sw $t4, ($v0) +/* 00BDA4 7000B1A4 3C188002 */ lui $t8, %hi(debug_menu_y_pos_offset) +/* 00BDA8 7000B1A8 8F184FA4 */ lw $t8, %lo(debug_menu_y_pos_offset)($t8) +/* 00BDAC 7000B1AC ACF80000 */ sw $t8, ($a3) +.L7000B1B0: +/* 00BDB0 7000B1B0 8FBF0014 */ lw $ra, 0x14($sp) +.L7000B1B4: +/* 00BDB4 7000B1B4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00BDB8 7000B1B8 03E00008 */ jr $ra +/* 00BDBC 7000B1BC 00000000 */ nop +) +#endif + + + + +void debug_printcharatpos(int x,int y, u8 character) +{ + set_final_debug_text_positions(x,y); + write_char_to_screen(character); +} + + + +#ifdef NONMATCHING +void write_string_stdout(void *arg0) +{ + void *temp_s1; + s32 phi_s0; + void *phi_s1; + + phi_s0 = *arg0; + phi_s1 = arg0; + if (*arg0 != 0) + { +loop_1: + temp_s1 = phi_s1 + 1; + write_char_to_screen(phi_s0 & 0xff); + phi_s0 = *temp_s1; + phi_s1 = temp_s1; + if (*temp_s1 != 0) + { + goto loop_1; + } + } +} +#else +GLOBAL_ASM( +.text +glabel write_string_stdout +/* 00BDE8 7000B1E8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00BDEC 7000B1EC AFBF001C */ sw $ra, 0x1c($sp) +/* 00BDF0 7000B1F0 AFB10018 */ sw $s1, 0x18($sp) +/* 00BDF4 7000B1F4 AFB00014 */ sw $s0, 0x14($sp) +/* 00BDF8 7000B1F8 90900000 */ lbu $s0, ($a0) +/* 00BDFC 7000B1FC 00808825 */ move $s1, $a0 +/* 00BE00 7000B200 12000006 */ beqz $s0, .L7000B21C +/* 00BE04 7000B204 320400FF */ andi $a0, $s0, 0xff +.L7000B208: +/* 00BE08 7000B208 0C002C31 */ jal write_char_to_screen +/* 00BE0C 7000B20C 26310001 */ addiu $s1, $s1, 1 +/* 00BE10 7000B210 92300000 */ lbu $s0, ($s1) +/* 00BE14 7000B214 5600FFFC */ bnezl $s0, .L7000B208 +/* 00BE18 7000B218 320400FF */ andi $a0, $s0, 0xff +.L7000B21C: +/* 00BE1C 7000B21C 8FBF001C */ lw $ra, 0x1c($sp) +/* 00BE20 7000B220 8FB00014 */ lw $s0, 0x14($sp) +/* 00BE24 7000B224 8FB10018 */ lw $s1, 0x18($sp) +/* 00BE28 7000B228 03E00008 */ jr $ra +/* 00BE2C 7000B22C 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +void debug_text_related(void *arg2) +{ + void *temp_s1; + s32 phi_s0; + void *phi_s1; + + set_final_debug_text_positions(); + phi_s0 = *arg2; + phi_s1 = arg2; + if (*arg2 != 0) + { +loop_1: + temp_s1 = phi_s1 + 1; + write_char_to_screen(phi_s0 & 0xff); + phi_s0 = *temp_s1; + phi_s1 = temp_s1; + if (*temp_s1 != 0) + { + goto loop_1; + } + } +} +#else +GLOBAL_ASM( +.text +glabel debug_text_related +/* 00BE30 7000B230 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00BE34 7000B234 AFBF001C */ sw $ra, 0x1c($sp) +/* 00BE38 7000B238 AFB10018 */ sw $s1, 0x18($sp) +/* 00BE3C 7000B23C 00C08825 */ move $s1, $a2 +/* 00BE40 7000B240 0C002C10 */ jal set_final_debug_text_positions +/* 00BE44 7000B244 AFB00014 */ sw $s0, 0x14($sp) +/* 00BE48 7000B248 92300000 */ lbu $s0, ($s1) +/* 00BE4C 7000B24C 12000006 */ beqz $s0, .L7000B268 +/* 00BE50 7000B250 320400FF */ andi $a0, $s0, 0xff +.L7000B254: +/* 00BE54 7000B254 0C002C31 */ jal write_char_to_screen +/* 00BE58 7000B258 26310001 */ addiu $s1, $s1, 1 +/* 00BE5C 7000B25C 92300000 */ lbu $s0, ($s1) +/* 00BE60 7000B260 5600FFFC */ bnezl $s0, .L7000B254 +/* 00BE64 7000B264 320400FF */ andi $a0, $s0, 0xff +.L7000B268: +/* 00BE68 7000B268 8FBF001C */ lw $ra, 0x1c($sp) +/* 00BE6C 7000B26C 8FB00014 */ lw $s0, 0x14($sp) +/* 00BE70 7000B270 8FB10018 */ lw $s1, 0x18($sp) +/* 00BE74 7000B274 03E00008 */ jr $ra +/* 00BE78 7000B278 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +void *read_screen_display_block_and_write_chars(void *arg0) +{ + s32 sp40; + s32 temp_a0; + s32 temp_a0_2; + s32 temp_a1; + s32 temp_a1_2; + s32 temp_a2; + s32 temp_s1; + s32 temp_s3; + s32 temp_s5; + s32 temp_t0; + s32 temp_v0; + s32 temp_v1; + s32 temp_v1_2; + s32 temp_v1_3; + s32 temp_v1_4; + void *temp_a1_3; + void *temp_s0; + void *temp_s0_2; + void *temp_t5; + void *temp_t8; + void *temp_v0_2; + void *phi_a0; + s32 phi_a2; + s32 phi_a1; + s32 phi_t0; + s32 phi_a2_2; + void *phi_s1; + void *phi_s2; + s32 phi_s4; + void *phi_s0; + void *phi_s0_2; + s32 phi_s1_2; + s32 phi_s5; + void *phi_s0_3; + void *phi_s1_3; + void *phi_s1_4; + s32 phi_s4_2; + s32 phi_s4_3; + + phi_t0 = 0; + phi_a2 = -1; + phi_s1_4 = arg0; +loop_1: + temp_a1 = 0x80020000 + 0x5030; + phi_a0 = phi_t0 + temp_a1; + phi_a1 = temp_a1; +loop_2: + temp_a1_2 = phi_a1 + 0x46; + temp_v1 = phi_a0->unk1; + phi_a2_2 = phi_a2; + phi_s1 = phi_s1_4; + if (phi_a0->unk0 != 0) + { + phi_a2_2 = phi_a2; + phi_s1_3 = phi_s1_4; + if (temp_v1 != phi_a2) + { + phi_a2_2 = temp_v1; + phi_s1_3 = phi_s1_4 + 0x10; + } + phi_s1 = phi_s1_3 + 0x18; + } + phi_a0 = phi_a0 + 0x46; + phi_a2 = phi_a2_2; + phi_a1 = temp_a1_2; + phi_s1_4 = phi_s1; + if (temp_a1_2 != &stdout_primary_color_table) + { + goto loop_2; + } + temp_t0 = phi_t0 + 2; + phi_t0 = temp_t0; + phi_a2 = phi_a2_2; + phi_s1_4 = phi_s1; + if (temp_t0 < 0x46) + { + goto loop_1; + } + temp_a0 = phi_s1 - arg0; + temp_v1_2 = num_microcode_cmds_that_fit(arg0, temp_a1_2, phi_a2_2, &stdout_primary_color_table) + -0x800; + if (temp_a0 <= 0) + { + return arg0; + } + if (temp_v1_2 <= 0) + { + D_800268B8 = 0; +block_15: + } + else + { + if (temp_v1_2 < temp_a0) + { + D_800268B8 = (s32) ((s32) (temp_v1_2 * 0xff) / temp_a0); + } + else + { + D_800268B8 = 0x100; + goto block_15; + } + } + arg0->unk0 = 0x6000000; + arg0->unk4 = &stdout_display_list; + sp40 = 0; + phi_s5 = 0; + phi_s4 = -1; + phi_s0 = arg0 + 8; +loop_17: + phi_s2 = sp40 + &stdout_debug_menu_screen_buffer; + phi_s1_2 = 0; +loop_18: + temp_s3 = phi_s2->unk0; + temp_v1_3 = phi_s2->unk1; + phi_s0_3 = phi_s0; + phi_s4_2 = phi_s4; + if (temp_s3 != 0) + { + temp_v0 = temp_v1_3 * 8; + phi_s0_2 = phi_s0; + phi_s4_3 = phi_s4; + if (temp_v1_3 != phi_s4) + { + temp_t5 = &stdout_primary_color_table + temp_v0; + temp_t8 = &stdout_environment_color_table + temp_v0; + temp_s0 = phi_s0 + 0x10; + temp_s0->unk-10 = (?32) temp_t5->unk0; + temp_s0->unk-C = (?32) temp_t5->unk4; + temp_s0->unk-8 = (?32) temp_t8->unk0; + temp_s0->unk-4 = (?32) temp_t8->unk4; + phi_s0_2 = temp_s0; + phi_s4_3 = temp_v1_3; + } + phi_s0_3 = phi_s0_2; + phi_s4_2 = phi_s4_3; + if ((u32) (get_random_value() & 0xff) < (u32) D_800268B8) + { + temp_v0_2 = phi_s0_2; + phi_s0_3 = phi_s0_2; + phi_s4_2 = phi_s4_3; + if (num_microcode_cmds_that_fit(phi_s0_2) >= 0x400) + { + temp_v1_4 = phi_s1_2 * 0x10; + temp_a0_2 = ((phi_s5 * 8) - phi_s5) * 4; + temp_a2 = temp_s3 + -0x20; + temp_s0_2 = phi_s0_2 + 8; + temp_a1_3 = temp_s0_2; + temp_v0_2->unk0 = (s32) (((((temp_v1_4 + 0x10) & 0xfff) << 0xc) | 0xe4000000) | ((temp_a0_2 + 0x1c) & 0xfff)); + temp_v0_2->unk4 = (s32) (((temp_v1_4 & 0xfff) << 0xc) | (temp_a0_2 & 0xfff)); + temp_s0_2 = temp_s0_2 + 8; + temp_a1_3->unk0 = 0xb4000000; + temp_a1_3->unk4 = (s32) (((temp_a2 & 0x1f) << 0x17) | (((temp_a2 >> 5) * 0xe0) & 0xffff)); + temp_s0_2->unk0 = 0xb3000000; + temp_s0_2->unk4 = 0x4000400; + phi_s0_3 = temp_s0_2 + 8; + phi_s4_2 = phi_s4_3; + } + } + } + temp_s1 = phi_s1_2 + 1; + phi_s2 = phi_s2 + 0x46; + phi_s4 = phi_s4_2; + phi_s0 = phi_s0_3; + phi_s1_2 = temp_s1; + if (temp_s1 != 0x50) + { + goto loop_18; + } + temp_s5 = phi_s5 + 1; + sp40 = (s32) (sp40 + 2); + phi_s5 = temp_s5; + phi_s4 = phi_s4_2; + phi_s0 = phi_s0_3; + if (temp_s5 != 0x23) + { + goto loop_17; + } + return phi_s0_3; +} +#else +GLOBAL_ASM( +.text +glabel read_screen_display_block_and_write_chars +/* 00BE7C 7000B27C 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 00BE80 7000B280 AFB5002C */ sw $s5, 0x2c($sp) +/* 00BE84 7000B284 AFB1001C */ sw $s1, 0x1c($sp) +/* 00BE88 7000B288 AFB00018 */ sw $s0, 0x18($sp) +/* 00BE8C 7000B28C 3C078002 */ lui $a3, %hi(stdout_primary_color_table) +/* 00BE90 7000B290 00808025 */ move $s0, $a0 +/* 00BE94 7000B294 AFBF003C */ sw $ra, 0x3c($sp) +/* 00BE98 7000B298 AFBE0038 */ sw $fp, 0x38($sp) +/* 00BE9C 7000B29C AFB70034 */ sw $s7, 0x34($sp) +/* 00BEA0 7000B2A0 AFB60030 */ sw $s6, 0x30($sp) +/* 00BEA4 7000B2A4 AFB40028 */ sw $s4, 0x28($sp) +/* 00BEA8 7000B2A8 AFB30024 */ sw $s3, 0x24($sp) +/* 00BEAC 7000B2AC AFB20020 */ sw $s2, 0x20($sp) +/* 00BEB0 7000B2B0 00808825 */ move $s1, $a0 +/* 00BEB4 7000B2B4 2406FFFF */ li $a2, -1 +/* 00BEB8 7000B2B8 24E76610 */ addiu $a3, %lo(stdout_primary_color_table) # addiu $a3, $a3, 0x6610 +/* 00BEBC 7000B2BC 0000A825 */ move $s5, $zero +/* 00BEC0 7000B2C0 00004025 */ move $t0, $zero +.L7000B2C4: +/* 00BEC4 7000B2C4 3C0E8002 */ lui $t6, %hi(stdout_debug_menu_screen_buffer) +/* 00BEC8 7000B2C8 25C55030 */ addiu $a1, $t6, %lo(stdout_debug_menu_screen_buffer) +/* 00BECC 7000B2CC 01052021 */ addu $a0, $t0, $a1 +.L7000B2D0: +/* 00BED0 7000B2D0 90820000 */ lbu $v0, ($a0) +/* 00BED4 7000B2D4 24A50046 */ addiu $a1, $a1, 0x46 +/* 00BED8 7000B2D8 90830001 */ lbu $v1, 1($a0) +/* 00BEDC 7000B2DC 10400006 */ beqz $v0, .L7000B2F8 +/* 00BEE0 7000B2E0 00000000 */ nop +/* 00BEE4 7000B2E4 50660004 */ beql $v1, $a2, .L7000B2F8 +/* 00BEE8 7000B2E8 26310018 */ addiu $s1, $s1, 0x18 +/* 00BEEC 7000B2EC 26310010 */ addiu $s1, $s1, 0x10 +/* 00BEF0 7000B2F0 00603025 */ move $a2, $v1 +/* 00BEF4 7000B2F4 26310018 */ addiu $s1, $s1, 0x18 +.L7000B2F8: +/* 00BEF8 7000B2F8 14A7FFF5 */ bne $a1, $a3, .L7000B2D0 +/* 00BEFC 7000B2FC 24840046 */ addiu $a0, $a0, 0x46 +/* 00BF00 7000B300 25080002 */ addiu $t0, $t0, 2 +/* 00BF04 7000B304 29010046 */ slti $at, $t0, 0x46 +/* 00BF08 7000B308 1420FFEE */ bnez $at, .L7000B2C4 +/* 00BF0C 7000B30C 00000000 */ nop +/* 00BF10 7000B310 0FC2F5DF */ jal num_microcode_cmds_that_fit +/* 00BF14 7000B314 02002025 */ move $a0, $s0 +/* 00BF18 7000B318 02302023 */ subu $a0, $s1, $s0 +/* 00BF1C 7000B31C 1C800003 */ bgtz $a0, .L7000B32C +/* 00BF20 7000B320 2443F800 */ addiu $v1, $v0, -0x800 +/* 00BF24 7000B324 10000080 */ b .L7000B528 +/* 00BF28 7000B328 02001025 */ move $v0, $s0 +.L7000B32C: +/* 00BF2C 7000B32C 1C600004 */ bgtz $v1, .L7000B340 +/* 00BF30 7000B330 2414FFFF */ li $s4, -1 +/* 00BF34 7000B334 3C018002 */ lui $at, %hi(D_800268B8) +/* 00BF38 7000B338 10000017 */ b .L7000B398 +/* 00BF3C 7000B33C AC2068B8 */ sw $zero, %lo(D_800268B8)($at) +.L7000B340: +/* 00BF40 7000B340 0064082A */ slt $at, $v1, $a0 +/* 00BF44 7000B344 10200011 */ beqz $at, .L7000B38C +/* 00BF48 7000B348 00037A00 */ sll $t7, $v1, 8 +/* 00BF4C 7000B34C 01E37823 */ subu $t7, $t7, $v1 +/* 00BF50 7000B350 01E4001A */ div $zero, $t7, $a0 +/* 00BF54 7000B354 14800002 */ bnez $a0, .L7000B360 +/* 00BF58 7000B358 00000000 */ nop +/* 00BF5C 7000B35C 0007000D */ break 7 +.L7000B360: +/* 00BF60 7000B360 2401FFFF */ li $at, -1 +/* 00BF64 7000B364 14810004 */ bne $a0, $at, .L7000B378 +/* 00BF68 7000B368 3C018000 */ lui $at, 0x8000 +/* 00BF6C 7000B36C 15E10002 */ bne $t7, $at, .L7000B378 +/* 00BF70 7000B370 00000000 */ nop +/* 00BF74 7000B374 0006000D */ break 6 +.L7000B378: +/* 00BF78 7000B378 3C018002 */ lui $at, %hi(D_800268B8) +/* 00BF7C 7000B37C 0000C012 */ mflo $t8 +/* 00BF80 7000B380 AC3868B8 */ sw $t8, %lo(D_800268B8)($at) +/* 00BF84 7000B384 10000005 */ b .L7000B39C +/* 00BF88 7000B388 02001025 */ move $v0, $s0 +.L7000B38C: +/* 00BF8C 7000B38C 24190100 */ li $t9, 256 +/* 00BF90 7000B390 3C018002 */ lui $at, %hi(D_800268B8) +/* 00BF94 7000B394 AC3968B8 */ sw $t9, %lo(D_800268B8)($at) +.L7000B398: +/* 00BF98 7000B398 02001025 */ move $v0, $s0 +.L7000B39C: +/* 00BF9C 7000B39C 3C0A8002 */ lui $t2, %hi(stdout_display_list) +/* 00BFA0 7000B3A0 254A4FB0 */ addiu $t2, %lo(stdout_display_list) # addiu $t2, $t2, 0x4fb0 +/* 00BFA4 7000B3A4 3C090600 */ lui $t1, 0x600 +/* 00BFA8 7000B3A8 AC490000 */ sw $t1, ($v0) +/* 00BFAC 7000B3AC AC4A0004 */ sw $t2, 4($v0) +/* 00BFB0 7000B3B0 3C1E8002 */ lui $fp, %hi(stdout_environment_color_table) +/* 00BFB4 7000B3B4 3C178002 */ lui $s7, %hi(stdout_primary_color_table) +/* 00BFB8 7000B3B8 26100008 */ addiu $s0, $s0, 8 +/* 00BFBC 7000B3BC 26F76610 */ addiu $s7, %lo(stdout_primary_color_table) # addiu $s7, $s7, 0x6610 +/* 00BFC0 7000B3C0 27DE6710 */ addiu $fp, %lo(stdout_environment_color_table) # addiu $fp, $fp, 0x6710 +/* 00BFC4 7000B3C4 AFA00040 */ sw $zero, 0x40($sp) +/* 00BFC8 7000B3C8 0000A825 */ move $s5, $zero +/* 00BFCC 7000B3CC 24160050 */ li $s6, 80 +.L7000B3D0: +/* 00BFD0 7000B3D0 8FAB0040 */ lw $t3, 0x40($sp) +/* 00BFD4 7000B3D4 3C0C8002 */ lui $t4, %hi(stdout_debug_menu_screen_buffer) +/* 00BFD8 7000B3D8 258C5030 */ addiu $t4, %lo(stdout_debug_menu_screen_buffer) # addiu $t4, $t4, 0x5030 +/* 00BFDC 7000B3DC 00008825 */ move $s1, $zero +/* 00BFE0 7000B3E0 016C9021 */ addu $s2, $t3, $t4 +.L7000B3E4: +/* 00BFE4 7000B3E4 92530000 */ lbu $s3, ($s2) +/* 00BFE8 7000B3E8 92430001 */ lbu $v1, 1($s2) +/* 00BFEC 7000B3EC 52600045 */ beql $s3, $zero, .L7000B504 +/* 00BFF0 7000B3F0 26310001 */ addiu $s1, $s1, 1 +/* 00BFF4 7000B3F4 1074000D */ beq $v1, $s4, .L7000B42C +/* 00BFF8 7000B3F8 000310C0 */ sll $v0, $v1, 3 +/* 00BFFC 7000B3FC 02E26821 */ addu $t5, $s7, $v0 +/* 00C000 7000B400 8DA10000 */ lw $at, ($t5) +/* 00C004 7000B404 03C2C021 */ addu $t8, $fp, $v0 +/* 00C008 7000B408 26100010 */ addiu $s0, $s0, 0x10 +/* 00C00C 7000B40C AE01FFF0 */ sw $at, -0x10($s0) +/* 00C010 7000B410 8DAF0004 */ lw $t7, 4($t5) +/* 00C014 7000B414 0060A025 */ move $s4, $v1 +/* 00C018 7000B418 AE0FFFF4 */ sw $t7, -0xc($s0) +/* 00C01C 7000B41C 8F010000 */ lw $at, ($t8) +/* 00C020 7000B420 AE01FFF8 */ sw $at, -8($s0) +/* 00C024 7000B424 8F090004 */ lw $t1, 4($t8) +/* 00C028 7000B428 AE09FFFC */ sw $t1, -4($s0) +.L7000B42C: +/* 00C02C 7000B42C 0C002914 */ jal get_random_value +/* 00C030 7000B430 00000000 */ nop +/* 00C034 7000B434 3C0B8002 */ lui $t3, %hi(D_800268B8) +/* 00C038 7000B438 8D6B68B8 */ lw $t3, %lo(D_800268B8)($t3) +/* 00C03C 7000B43C 304A00FF */ andi $t2, $v0, 0xff +/* 00C040 7000B440 014B082B */ sltu $at, $t2, $t3 +/* 00C044 7000B444 5020002F */ beql $at, $zero, .L7000B504 +/* 00C048 7000B448 26310001 */ addiu $s1, $s1, 1 +/* 00C04C 7000B44C 0FC2F5DF */ jal num_microcode_cmds_that_fit +/* 00C050 7000B450 02002025 */ move $a0, $s0 +/* 00C054 7000B454 28410400 */ slti $at, $v0, 0x400 +/* 00C058 7000B458 14200029 */ bnez $at, .L7000B500 +/* 00C05C 7000B45C 02001025 */ move $v0, $s0 +/* 00C060 7000B460 00111900 */ sll $v1, $s1, 4 +/* 00C064 7000B464 001520C0 */ sll $a0, $s5, 3 +/* 00C068 7000B468 00952023 */ subu $a0, $a0, $s5 +/* 00C06C 7000B46C 246C0010 */ addiu $t4, $v1, 0x10 +/* 00C070 7000B470 318E0FFF */ andi $t6, $t4, 0xfff +/* 00C074 7000B474 00042080 */ sll $a0, $a0, 2 +/* 00C078 7000B478 306A0FFF */ andi $t2, $v1, 0xfff +/* 00C07C 7000B47C 000A5B00 */ sll $t3, $t2, 0xc +/* 00C080 7000B480 000E6B00 */ sll $t5, $t6, 0xc +/* 00C084 7000B484 2499001C */ addiu $t9, $a0, 0x1c +/* 00C088 7000B488 308C0FFF */ andi $t4, $a0, 0xfff +/* 00C08C 7000B48C 3C01E400 */ lui $at, 0xe400 +/* 00C090 7000B490 2666FFE0 */ addiu $a2, $s3, -0x20 +/* 00C094 7000B494 00065143 */ sra $t2, $a2, 5 +/* 00C098 7000B498 01A17825 */ or $t7, $t5, $at +/* 00C09C 7000B49C 016C7025 */ or $t6, $t3, $t4 +/* 00C0A0 7000B4A0 33380FFF */ andi $t8, $t9, 0xfff +/* 00C0A4 7000B4A4 01F84825 */ or $t1, $t7, $t8 +/* 00C0A8 7000B4A8 000A58C0 */ sll $t3, $t2, 3 +/* 00C0AC 7000B4AC 016A5823 */ subu $t3, $t3, $t2 +/* 00C0B0 7000B4B0 26100008 */ addiu $s0, $s0, 8 +/* 00C0B4 7000B4B4 02002825 */ move $a1, $s0 +/* 00C0B8 7000B4B8 000B5940 */ sll $t3, $t3, 5 +/* 00C0BC 7000B4BC AC490000 */ sw $t1, ($v0) +/* 00C0C0 7000B4C0 30D8001F */ andi $t8, $a2, 0x1f +/* 00C0C4 7000B4C4 AC4E0004 */ sw $t6, 4($v0) +/* 00C0C8 7000B4C8 00184DC0 */ sll $t1, $t8, 0x17 +/* 00C0CC 7000B4CC 316CFFFF */ andi $t4, $t3, 0xffff +/* 00C0D0 7000B4D0 26100008 */ addiu $s0, $s0, 8 +/* 00C0D4 7000B4D4 3C0DB400 */ lui $t5, 0xb400 +/* 00C0D8 7000B4D8 ACAD0000 */ sw $t5, ($a1) +/* 00C0DC 7000B4DC 02003825 */ move $a3, $s0 +/* 00C0E0 7000B4E0 012C7025 */ or $t6, $t1, $t4 +/* 00C0E4 7000B4E4 ACAE0004 */ sw $t6, 4($a1) +/* 00C0E8 7000B4E8 3C190400 */ lui $t9, (0x04000400 >> 16) # lui $t9, 0x400 +/* 00C0EC 7000B4EC 37390400 */ ori $t9, (0x04000400 & 0xFFFF) # ori $t9, $t9, 0x400 +/* 00C0F0 7000B4F0 3C0DB300 */ lui $t5, 0xb300 +/* 00C0F4 7000B4F4 ACED0000 */ sw $t5, ($a3) +/* 00C0F8 7000B4F8 ACF90004 */ sw $t9, 4($a3) +/* 00C0FC 7000B4FC 26100008 */ addiu $s0, $s0, 8 +.L7000B500: +/* 00C100 7000B500 26310001 */ addiu $s1, $s1, 1 +.L7000B504: +/* 00C104 7000B504 1636FFB7 */ bne $s1, $s6, .L7000B3E4 +/* 00C108 7000B508 26520046 */ addiu $s2, $s2, 0x46 +/* 00C10C 7000B50C 8FAF0040 */ lw $t7, 0x40($sp) +/* 00C110 7000B510 26B50001 */ addiu $s5, $s5, 1 +/* 00C114 7000B514 24010023 */ li $at, 35 +/* 00C118 7000B518 25F80002 */ addiu $t8, $t7, 2 +/* 00C11C 7000B51C 16A1FFAC */ bne $s5, $at, .L7000B3D0 +/* 00C120 7000B520 AFB80040 */ sw $t8, 0x40($sp) +/* 00C124 7000B524 02001025 */ move $v0, $s0 +.L7000B528: +/* 00C128 7000B528 8FBF003C */ lw $ra, 0x3c($sp) +/* 00C12C 7000B52C 8FB00018 */ lw $s0, 0x18($sp) +/* 00C130 7000B530 8FB1001C */ lw $s1, 0x1c($sp) +/* 00C134 7000B534 8FB20020 */ lw $s2, 0x20($sp) +/* 00C138 7000B538 8FB30024 */ lw $s3, 0x24($sp) +/* 00C13C 7000B53C 8FB40028 */ lw $s4, 0x28($sp) +/* 00C140 7000B540 8FB5002C */ lw $s5, 0x2c($sp) +/* 00C144 7000B544 8FB60030 */ lw $s6, 0x30($sp) +/* 00C148 7000B548 8FB70034 */ lw $s7, 0x34($sp) +/* 00C14C 7000B54C 8FBE0038 */ lw $fp, 0x38($sp) +/* 00C150 7000B550 03E00008 */ jr $ra +/* 00C154 7000B554 27BD0088 */ addiu $sp, $sp, 0x88 +) +#endif diff --git a/src/debugmenu.h b/src/debugmenu.h new file mode 100644 index 0000000..8e4b637 --- /dev/null +++ b/src/debugmenu.h @@ -0,0 +1,7 @@ +#ifndef _DEBUGMENU_H_ +#define _DEBUGMENU_H_ + +#include +void blank_debug_buffer_chars(void); +void debugmenuInit_REMOVED(void); +#endif diff --git a/src/decompressbuffer.c b/src/decompressbuffer.c new file mode 100644 index 0000000..cc9d6ad --- /dev/null +++ b/src/decompressbuffer.c @@ -0,0 +1,3 @@ +#include "ultra64.h" + +u8 _decompressBuffer[0xAB400]; diff --git a/src/game/bg.c b/src/game/bg.c new file mode 100644 index 0000000..01f93c4 --- /dev/null +++ b/src/game/bg.c @@ -0,0 +1,12195 @@ +#include "ultra64.h" +#include "game/bg.h" + +// bss +//CODE.bss:8007BF90 +s32 ptr_bg_data; +//CODE.bss:8007BF94 +s32 ptr_clipping; +//CODE.bss:8007BF98 +s32 dword_CODE_bss_8007BF98; +/* +CODE.bss:8007BF9C .align 4 +*/ +//CODE.bss:8007BFA0 +char list_visible_rooms_in_cur_global_vis_packet[0x98]; +//CODE.bss:8007C038 +s32 num_visible_rooms_in_cur_global_vis_packet; +/* +CODE.bss:8007C03C .align 4 +*/ +//CODE.bss:8007C040 +char dword_CODE_bss_8007C040[0x60]; +//CODE.bss:8007C0A0 +char dword_CODE_bss_8007C0A0[0x60]; +//CODE.bss:8007C100 +char dword_CODE_bss_8007C100[0x3E80]; +//CODE.bss:8007FF80 +s32 ptr_bgdata_portals; +//CODE.bss:8007FF84 +s32 ptr_bgdata_offsets; +//CODE.bss:8007FF88 +s32 dword_CODE_bss_8007FF88; +//CODE.bss:8007FF8C +s32 ptr_bgdata_room_fileposition_list; +//CODE.bss:8007FF90 +s32 dword_CODE_bss_8007FF90; +//CODE.bss:8007FF94 +s32 dword_CODE_bss_8007FF94; +//CODE.bss:8007FF98 +s32 dword_CODE_bss_8007FF98; + +//CODE.bss:8007FF9C +s32 dword_CODE_bss_8007FF9C; + +//CODE.bss:8007FFA0 +s32 dword_CODE_bss_8007FFA0; + +//CODE.bss:8007FFA4 +char dword_CODE_bss_8007FFA4; +char dword_CODE_bss_8007FFA5; +char dword_CODE_bss_8007FFA6; +char dword_CODE_bss_8007FFA7; +char dword_CODE_bss_8007FFA8[0x1658]; +//CODE.bss:80081600 +char dword_CODE_bss_80081600[0x18]; +//CODE.bss:80081618 +char table_for_portals[0xFA8]; + + +// data +//D:800413F0 +s32 *ptr_bg_c_debug_debug_notice_list = 0; +//D:800413F4 +f32 room_data_float1 = 1.0; +//D:800413F8 +f32 room_data_float2 = 1.0; +//D:800413FC +f32 D_800413FC = 1.0; +//D:80041400 +s32 D_80041400 = 1; +//D:80041404 +s32 D_80041404 = 1; +//D:80041408 +s32 D_80041408 = 1; +//D:8004140C +s32 D_8004140C = -1; +//D:80041410 +s32 D_80041410 = -1; + +//D:80041414 +s_room_info array_room_info[0x96] = {0}; + +//D:800442F4 +s32 MaxNumRooms = 0x96 ; +//D:800442F8 +s32 D_800442F8 = 0; +//D:800442FC +s32 D_800442FC[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; +//D:800443C4 +s32 D_800443C4[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +//D:8004448C +struct levelentry levelinfotable[] = { + {LEVELID_BUNKER1, "bg/bg_sev_all_p.seg", "Tbg_sev_all_p_stanZ", 0.53931433, 1.0, 23.148148}, + {LEVELID_SILO, "bg/bg_silo_all_p.seg", "Tbg_silo_all_p_stanZ", 0.47256002, 1.0, 29.069}, + {LEVELID_STATUE, "bg/bg_stat_all_p.seg", "Tbg_stat_all_p_stanZ", 0.107202865, 1.0, 0.0801}, + {LEVELID_CONTROL, "bg/bg_arec_all_p.seg", "Tbg_arec_all_p_stanZ", 0.49886572, 1.0, 80.645164}, + {LEVELID_ARCHIVES, "bg/bg_arch_all_p.seg", "Tbg_arch_all_p_stanZ", 0.50678575, 1.0, 54.347824}, + {LEVELID_TRAIN, "bg/bg_tra_all_p.seg", "Tbg_tra_all_p_stanZ", 0.15019713, 1.0, 19.53125}, + {LEVELID_FRIGATE, "bg/bg_dest_all_p.seg", "Tbg_dest_all_p_stanZ", 0.44757429, 1.0, 36.764706}, + {LEVELID_BUNKER2, "bg/bg_sevb_all_p.seg", "Tbg_sevb_all_p_stanZ", 0.53931433, 1.0, 23.148148}, + {LEVELID_AZTEC, "bg/bg_azt_all_p.seg", "Tbg_azt_all_p_stanZ", 0.35300568, 1.0, 52.083332}, + {LEVELID_STREETS, "bg/bg_pete_all_p.seg", "Tbg_pete_all_p_stanZ", 0.34187999, 1.0, 42.372883}, + {LEVELID_DEPOT, "bg/bg_depo_all_p.seg", "Tbg_depo_all_p_stanZ", 0.21847887, 1.0, 17.605633}, + {LEVELID_COMPLEX, "bg/bg_ref_all_p.seg", "Tbg_ref_all_p_stanZ", 0.94285715, 1.0, 37.878788}, + {LEVELID_EGYPT, "bg/bg_cryp_all_p.seg", "Tbg_cryp_all_p_stanZ", 0.25608, 1.0, 23.584906}, + {LEVELID_DAM, "bg/bg_dam_all_p.seg", "Tbg_dam_all_p_stanZ", 0.23363999, 0.2, 100.0}, + {LEVELID_FACILITY, "bg/bg_ark_all_p.seg", "Tbg_ark_all_p_stanZ", 1.20648, 1.0, 64.102562}, + {LEVELID_RUNWAY, "bg/bg_run_all_p.seg", "Tbg_run_all_p_stanZ", 0.089571431, 1.0, 4.5537338}, + {LEVELID_SURFACE, "bg/bg_sevx_all_p.seg", "Tbg_sevx_all_p_stanZ", 0.45445713, 0.2, 22.603975}, + {LEVELID_JUNGLE, "bg/bg_jun_all_p.seg", "Tbg_jun_all_p_stanZ", 0.094662853, 1.0, 6.6844921}, + {LEVELID_TEMPLE, "bg/bg_dish_all_p.seg", "Tbg_dish_all_p_stanZ", 0.47142857, 1.0, 147.05882}, + {LEVELID_CAVERNS, "bg/bg_cave_all_p.seg", "Tbg_cave_all_p_stanZ", 0.26824287, 1.0, 13.44086}, + {LEVELID_CITADEL, "bg/bg_cat_all_p.seg", "Tbg_cat_all_p_stanZ", 0.76852286, 1.0, 38.461536}, + {LEVELID_CRADLE, "bg/bg_crad_all_p.seg", "Tbg_crad_all_p_stanZ", 0.23571429, 1.0, 43.103451}, + {LEVELID_SHO, "bg/bg_sho_all_p.seg", "Tbg_sho_all_p_stanZ", 0.528, 1.0, 21.18644}, + {LEVELID_SURFACE2, "bg/bg_sevx_all_p.seg", "Tbg_sevx_all_p_stanZ", 0.45445713, 0.2, 22.603975}, + {LEVELID_ELD, "bg/bg_eld_all_p.seg", "Tbg_eld_all_p_stanZ", 0.94285715, 1.0, 10.123456}, + {LEVELID_BASEMENT, "bg/bg_ame_all_p.seg", "Tbg_ame_all_p_stanZ", 0.65999997, 1.0, 37.878788}, + {LEVELID_STACK, "bg/bg_ame_all_p.seg", "Tbg_ame_all_p_stanZ", 0.65999997, 1.0, 37.878788}, + {LEVELID_LUE, "bg/bg_lue_all_p.seg", "Tbg_lue_all_p_stanZ", 0.94285715, 1.0, 10.123456}, + {LEVELID_LIBRARY, "bg/bg_ame_all_p.seg", "Tbg_ame_all_p_stanZ", 0.65999997, 1.0, 37.878788}, + {LEVELID_RIT, "bg/bg_rit_all_p.seg", "Tbg_rit_all_p_stanZ", 0.94285715, 1.0, 10.123456}, + {LEVELID_CAVES, "bg/bg_oat_all_p.seg", "Tbg_oat_all_p_stanZ", 0.14142857, 1.0, 10.123456}, + {LEVELID_EAR, "bg/bg_ear_all_p.seg", "Tbg_ear_all_p_stanZ", 0.94285715, 1.0, 10.123456}, + {LEVELID_LEE, "bg/bg_lee_all_p.seg", "Tbg_lee_all_p_stanZ", 0.94285715, 1.0, 10.123456}, + {LEVELID_LIP, "bg/bg_lip_all_p.seg", "Tbg_lip_all_p_stanZ", 0.94285715, 1.0, 10.123456}, + {LEVELID_CUBA, "bg/bg_len_all_p.seg", "Tbg_len_all_p_stanZ", 0.094662853, 1.0, 6.6844921}, + {LEVELID_WAX, "bg/bg_wax_all_p.seg", "Tbg_wax_all_p_stanZ", 0.94285715, 1.0, 10.123456}, + {LEVELID_PAM, "bg/bg_pam_all_p.seg", "Tbg_pam_all_p_stanZ", 0.94285715, 1.0, 10.123456}, + {LEVELID_MAX, "bg/bgx.seg", "TbgxZ", 0.94285715, 1.0, 1.0} +}; + +//D:8004481C +u32 D_8004481C[] = {0x1000100, 0}; +//D:80044824 +u32 D_80044824[] = {0x32C2E32, 0x373E3F4E, 0x56595D72, 0x76797AFF, 0x11003AFF}; +//D:80044838 +s32 current_room_maybe = 1; +//D:8004483C +s32 NumberOfRoomsDrawn = 0; +//back for now to build till rom is compiling and this can be determined +//D:80044840 +u32 GlobalLight[] = {0x96969600, 0x96969600, 0xFFFFFF00, 0xFFFFFF00, 0x4D4D2E00, 0}; +//Lights1 GlobalLight = gdSPDefLights1( +// 150,150,150 /* ambient color grey */ //D:80044840 +// 255,255,255,77,77,46 /* white light from the upper west-south-west (42 up, 244') */ //D:80044848 +//); +// OR +//Lights1 GlobalLight = { 255,255,255, 0xff, /* diffuse */ +// 77,77,46, 0, /* direction */ +// 150,150,150 , 0xff /* ambient */ +//}; //to be honest, while this looks simpler but Im confused at the order... +// Light has Ambient first then directional, its stored in mem this way too, so why is this declaired diffuse then ambient (taken from topgun.c) +//At the end of the day though, whichever is the same as bin should be used, even if the first is as SDK wants (Def Lights) + + +//D:80044858 +s32 D_80044858 = 0; +//D:8004485C +s32 D_8004485C = 1; +//D:80044860 +s32 D_80044860 = 0; +//D:80044864 +s32 D_80044864 = 0; +//D:80044868 +s32 D_80044868 = 0x7FFF; +//D:8004486C +s32 D_8004486C = 0x7FFF; +//D:80044870 +s32 D_80044870 = 0x7FFF; +//D:80044874 +s32 D_80044874 = 0xFFFF8000; +//D:80044878 +s32 D_80044878 = 0xFFFF8000; +//D:8004487C +s32 D_8004487C = 0xFFFF8000; +//D:80044880 +s32 D_80044880 = 0x7FFF; +//D:80044884 +s32 D_80044884 = 0x7FFF; +//D:80044888 +s32 D_80044888 = 0x7FFF; +//D:8004488C +s32 D_8004488C = 0xFFFF8000; +//D:80044890 +s32 D_80044890 = 0xFFFF8000; +//D:80044894 +s32 D_80044894 = 0xFFFF8000; +//D:80044898 +s32 D_80044898 = 0; +//D:8004489C +s32 D_8004489C = 0xF; +//D:800448A0 +s32 D_800448A0 = 0; +//D:800448A4 +s32 D_800448A4 = 0; +//D:800448A8 +s32 D_800448A8[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:800448F8 +s32 D_800448F8 = 0; +//D:800448FC +s32 current_visibility = 0; +//D:80044900 +s32 D_80044900 = 0; + +//D:80044904 +s32 D_80044904 = 0x7F7FFFFF; +//D:80044908 +s32 D_80044908 = 0x7F7FFFFF; +//D:8004490C +s32 D_8004490C = 0x7F7FFFFF; +//D:80044910 +s32 D_80044910 = 0xFF7FFFFF; +//D:80044914 +s32 D_80044914 = 0xFF7FFFFF; +//D:80044918 +s32 D_80044918 = 0xFF7FFFFF; +//D:8004491C +u32 D_8004491C = 0; +//D:80044920 +u32 D_80044920 = 0; +//D:80044924 +u32 D_80044924 = 0; + + +// RenderMode/Combiner Look-Up-Tables +// Looks for value on left, and replaces with correct value on right +// eg 0x0C192078 = C8112078, or had they used macros gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2 ) +// The reason for this LUT is to dynamicly change the rendermode and combiner to FOG / NoFog or any other setting they might have wanted to test during development as it applies during runtime +/*Reminder: + 1cycle combiners repeat both cycles gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2) + ( - )* + , ( - )* + + G_CC_MODULATERGBA2 COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0 +*/ +/* +//New Defines to be added to gbi.h +#define ModulateRGB_EnvA TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT //custom combiner for triangle alpha +#define ModulateRGB_EnvA2 COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT //custom combiner for triangle alpha +#define ModulateRGBA_EnvA TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0 //custom combiner for Texture*triangle alpha +#define ModulateRGBA_EnvA2 COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0 //custom combiner for texture*triangle alpha +#define SHADE_EnvA 0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT //custom combiner for triangle alpha +#define TLRGB_ATile1 TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0 +*/ +//D:80044928 +Gfx D_80044928[] = { + 0xFC26A004, 0x1F1093FF, 0xFC232DFF, 0xFFFFFE38, + //gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2), + //gDPSetCombineLERP(TEXEL1, 0, COMBINED_ALPHA, 0, TEXEL1, 0, PRIM_LOD_FRAC, 0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + 0x0,0x0 +}; + +//D:80044940 - Primary +Gfx D_80044940[] = { + 0xB900031D, 0x0C192078, 0xB900031D, 0xC8112078, + 0xB900031D, 0x0C182078, 0xB900031D, 0xC8102078, + 0xB900031D, 0x0C192D58, 0xB900031D, 0xC8112D58, + 0xB900031D, 0x0C184DD8, 0xB900031D, 0xC8104DD8, + 0xB900031D, 0x0C1849D8, 0xB900031D, 0xC81049D8, + 0xB900031D, 0x0C193078, 0xB900031D, 0xC8113078, + 0xB900031D, 0x0C192048, 0xB900031D, 0xC8112048, + 0xB900031D, 0x0C182048, 0xB900031D, 0xC8102048, + + /* + //Add FOG to all rendermodes + //Standard HiQuality Surface to Standard Fogable HiQuality Surface + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2), + //Terrain to Fogable Terrain + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_TERR2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_TERR2), + //Standard DECAL to FOG DECAL + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_DECAL2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_DECAL2), + //Transparent DECAL to FOG Transparent DECAL + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_DECAL2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_DECAL2), + //Transparent Surface to FOG Transparent Surface + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2), + // Billboard Cut-out to FOG Billboard Cut-out - eg, Mario Tree or Depot lamp + // See PGDLists\Transparent Textures.htm for more info + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2), + //Standard Z-Less OPA to Standard FOG Z-Less OPA + gDPSetRenderMode(G_RM_PASS, G_RM_AA_OPA_SURF2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_OPA_SURF2), + //Z-Less OPA Terrain to Z-Less Fog OPA Terrain + gDPSetRenderMode(G_RM_PASS, G_RM_AA_OPA_TERR2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_OPA_TERR2), + */ +0x0, 0x0 +}; + +//D:800449C8 - Secondary +Gfx D_800449C8[] = { + 0xB900031D, 0x0C184DD8, 0xB900031D, 0xC8104DD8, + 0xB900031D, 0x0C1849D8, 0xB900031D, 0xC81049D8, + 0xB900031D, 0x0C193078, 0xB900031D, 0xC8113078, + 0xFC26A004, 0x1F1093FF, 0xFC26A004, 0x1F1493FF, + 0xFC121824, 0xFF33FFFF, 0xFC121A24, 0xFF37FFFF, + 0xFC26A004, 0x1FFC93FC, 0xFC26A004, 0x1FFC93FD, + 0xFC127E24, 0xFFFFF9FC, 0xFC127E24, 0xFFFFFBFD, + 0xFC26A004, 0x1F1093FF, 0xFC26A004, 0x1F1493FF, + 0xFC121824, 0xFF33FFFF, 0xFC121A24, 0xFF37FFFF, + 0xFC26A004, 0x1FFC93FC, 0xFC26A004, 0x1FFC93FD, + 0xFC127E24, 0xFFFFF9FC, 0xFC127E24, 0xFFFFFBFD, + 0xFCFFFFFF, 0xFFFE7838, 0xFCFFFFFF, 0xFFFE7A38, + 0xFCFFFFFF, 0xFFFE793C, 0xFCFFFFFF, 0xFFFE7B3D, + 0xFC26E404, 0x1F10FFFF, 0xFC26E404, 0x1F14FFFF, + /* + //Add FOG to Rendermodes + //Transparent DECAL to FOG Transparent DECAL + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_DECAL2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_DECAL2), + //Transparent Surface to FOG Transparent Surface + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2), + // Billboard Cut-out to FOG Billboard Cut-out - eg, Mario Tree or Depot lamp + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2), + + // Swap all refrences to Shade in Alpha to Environment + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA), + gDPSetCombineMode(G_CC_SHADE, G_CC_PASS2) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_PASS2), + gDPSetCombineMode(G_CC_SHADE, G_CC_SHADE) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_SHADE_EnvA), + // This one is an oddball... its extra here AND is weird using Tile1 only for Alpha + gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGBA) , gDPSetCombineMode(TLRGB_ATile1, ModulateRGB_EnvA2), + */ + 0x0, 0x0 +}; + +//D:80044AB0 +// Loaded once on first time entering level, only once ever +u64 D_80044AB0[] = { + 0xFC26A0041F1093FF, 0xFC26A0041F1493FF, + 0xFC121824FF33FFFF, 0xFC121A24FF37FFFF, + 0xFC26A0041FFC93FC, 0xFC26A0041FFC93FD, + 0xFC127E24FFFFF9FC, 0xFC127E24FFFFFBFD, + 0xFC26A0041F1093FF, 0xFC26A0041F1493FF, + 0xFC121824FF33FFFF, 0xFC121A24FF37FFFF, + 0xFC26A0041FFC93FC, 0xFC26A0041FFC93FD, + 0xFC127E24FFFFF9FC, 0xFC127E24FFFFFBFD, + 0xFCFFFFFFFFFE7838, 0xFCFFFFFFFFFE7A38, + 0xFCFFFFFFFFFE793C, 0xFCFFFFFFFFFE7B3D, + /* + // Swap all refrences to Shade in Alpha to Environment + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA), + gDPSetCombineMode(G_CC_SHADE, G_CC_PASS2) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_PASS2), + gDPSetCombineMode(G_CC_SHADE, G_CC_SHADE) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_SHADE_EnvA), + */ + 0x0 +}; + +//D:80044B58 +// Loaded once on first time entering level, only once ever +u64 D_80044B58[] = { + 0xFC26A0041F1093FF, 0xFC26A0041F1493FF, + 0xFC121824FF33FFFF, 0xFC121A24FF37FFFF, + 0xFC26A0041FFC93FC, 0xFC26A0041FFC93FD, + 0xFC127E24FFFFF9FC, 0xFC127E24FFFFFBFD, + 0xFC26A0041F1093FF, 0xFC26A0041F1493FF, + 0xFC121824FF33FFFF, 0xFC121A24FF37FFFF, + 0xFC26A0041FFC93FC, 0xFC26A0041FFC93FD, + 0xFC127E24FFFFF9FC, 0xFC127E24FFFFFBFD, + 0xFCFFFFFFFFFE7838, 0xFCFFFFFFFFFE7A38, + 0xFCFFFFFFFFFE793C, 0xFCFFFFFFFFFE7B3D, + /* + // Swap all refrences to Shade in Alpha to Environment + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB2) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB2) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_SHADE, G_CC_PASS2) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_PASS2), + gDPSetCombineMode(G_CC_SHADE, G_CC_SHADE2) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_SHADE_EnvA2), + */ + 0x0 +}; + +//D:80044C00 +u64 D_80044C00[] = { + 0xB900031D005049D8, 0xB900031D00553078, + 0xB900031D0C1849D8, 0xB900031D0C193078, + /* + //Transparent 1Cycle to BillBoard 1Cycle + gDPSetRenderMode(G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + //Transparent Surface to Billboard + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2), + */ + 0x0 +}; + +//D:80044C28 +//water +u64 D_80044C28[] = { + 0xB900031D00552078, 0xB900031D00502078, + 0xB900031D0C192078, 0xB900031D0C182078, + /* + //1 Cycle Opa to Particle + gDPSetRenderMode(RM_AA_ZB_OPA_SURF, RM_AA_ZB_OPA_SURF2), gDPSetRenderMode(G_RM_AA_ZB_PCL_SURF, G_RM_AA_ZB_PCL_SURF2), + //2 cycle Opa to Particle + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2), gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_PCL_SURF2), + */ + 0x0 +}; + +//D:80044C50 +u64 D_80044C50[] = { + 0xB900031D0C1849D8, 0xB900031D0C184B50, + /* + //Transparent to Cloud (Saves AA - Stops Jaggies from appearing behind BillBoard) + gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_PASS, G_RM_ZB_CLD_SURF2), + */ + 0x0 +}; + +//D:80044C68 +//(Wallet Bond - Main Menu) +u64 D_80044C68[] = { + 0xBA00140200000000, 0xBA00140200100000, //1Cycle --> 2Cycle + 0xB900031D00502048, 0xB900031D08D02048, + 0xFC127E24FFFFF9FC, 0xFC127FFFFFFFF838, + /* + //1 Cycle particle Surface to 2 Cycle colour + 1-a*Fog ??? + gsDPSetCycleType(G_CYC_2CYCLE), + gDPSetRenderMode(G_RM_AA_PCL_SURF, G_RM_AA_PCL_SURF2), gDPSetRenderMode(AA_EN | IM_RD | CVG_DST_CLAMP | ALPHA_CVG_SEL | ZMODE_OPA | GBL_c1(G_BL_CLR_IN, G_BL_A_SHADE, G_BL_CLR_FOG, G_BL_1MA) | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)), + gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_PASS2), gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2), + */ + 0x0 +}; + +//D:80044CA0 +u64 D_80044CA0[] = { + 0xFC127E24FFFFF9FC, 0xFC137E26FFFFFBFD, + 0xFC121824FF33FFFF, 0xFC131A26FF37FFFF, + 0xFC127E24FFFFF9FC, 0xFC137E26FFFFFBFD, + 0xFC121824FF33FFFF, 0xFC131A26FF37FFFF, + 0xFCFFFFFFFFFE793C, 0xFC637EC6FFFFFBFD, + 0xFC26A0041FFC93FC, 0xFC26A0061FFC93FD, + 0xFC26A0041F1093FF, 0xFC26A0061F1493FF, + 0xFC26A0041FFC93FC, 0xFC26A0061FFC93FD, + 0xFC26A0041F1093FF, 0xFC26A0061F1493FF, + 0xFC26E4041FFCFFFC, 0xFC26E4061FFCFFFD, + 0xFC26E4041F10FFFF, 0xFC26E4061F14FFFF, + 0xFC26E4041FFCFFFC, 0xFC26E4061FFCFFFD, + 0xFC26E4041F10FFFF, 0xFC26E4061F14FFFF, + 0xFCFFFFFFFFFE7838, 0xFC637FFFFFFFFA38, + /* + gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB2) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB2) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA2), + gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA2), + gDPSetCombineMode(G_CC_SHADE, G_CC_SHADE2), gDPSetCombineLERP(CENTER, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT, CENTER, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, COMBINED_ALPHA, 0, COMBINED, 0, ENVIRONMENT, 0), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT), + gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, COMBINED_ALPHA, 0, COMBINED, 0, ENVIRONMENT, 0), + gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGB2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT), + gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGBA2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, COMBINED_ALPHA, 0, COMBINED, 0, ENVIRONMENT, 0), + gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGB2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT), + gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGBA2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, COMBINED_ALPHA, 0, COMBINED, 0, ENVIRONMENT, 0), + gDPSetCombineMode(G_CC_SHADE, G_CC_PASS2), gDPSetCombineLERP(CENTER, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + */ + 0x0 +}; + +//D:80044D88 +s32 *ptrDynamic_CC_RM_LUT[] = { + &D_80044928, &D_80044940, &D_80044C00, &D_80044C28, &D_80044C50, + &D_800449C8, &D_80044AB0, &D_80044B58, &D_80044C68, &D_80044CA0 +}; +//D:80044DB0 +s32 D_80044DB0 = 0; + + +// rodata + + + + +void bgInitDebugNoticeList(void) { + debCheckAddDebugNoticeListEntry(&ptr_bg_c_debug_debug_notice_list, "bg_c_debug"); +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B37EC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B37EC +/* 0E831C 7F0B37EC 3C028004 */ lui $v0, %hi(D_80044824) +/* 0E8320 7F0B37F0 3C038004 */ lui $v1, %hi(current_room_maybe) +/* 0E8324 7F0B37F4 3C088008 */ lui $t0, %hi(ptr_bgdata_portals) +/* 0E8328 7F0B37F8 3C078004 */ lui $a3, %hi(D_80041400) +/* 0E832C 7F0B37FC 24424824 */ addiu $v0, %lo(D_80044824) # addiu $v0, $v0, 0x4824 +/* 0E8330 7F0B3800 24634838 */ addiu $v1, %lo(current_room_maybe) # addiu $v1, $v1, 0x4838 +/* 0E8334 7F0B3804 24E71400 */ addiu $a3, %lo(D_80041400) # addiu $a3, $a3, 0x1400 +/* 0E8338 7F0B3808 2508FF80 */ addiu $t0, %lo(ptr_bgdata_portals) # addiu $t0, $t0, -0x80 +/* 0E833C 7F0B380C 240900FF */ li $t1, 255 +/* 0E8340 7F0B3810 8CEE0000 */ lw $t6, ($a3) +.L7F0B3814: +/* 0E8344 7F0B3814 904F0000 */ lbu $t7, ($v0) +/* 0E8348 7F0B3818 24420001 */ addiu $v0, $v0, 1 +/* 0E834C 7F0B381C 55CF001C */ bnel $t6, $t7, .L7F0B3890 +/* 0E8350 7F0B3820 904F0002 */ lbu $t7, 2($v0) +/* 0E8354 7F0B3824 90440000 */ lbu $a0, ($v0) +/* 0E8358 7F0B3828 90580001 */ lbu $t8, 1($v0) +.L7F0B382C: +/* 0E835C 7F0B382C 308500FF */ andi $a1, $a0, 0xff +/* 0E8360 7F0B3830 00A03025 */ move $a2, $a1 +/* 0E8364 7F0B3834 0305082A */ slt $at, $t8, $a1 +/* 0E8368 7F0B3838 5420000F */ bnezl $at, .L7F0B3878 +/* 0E836C 7F0B383C 90440002 */ lbu $a0, 2($v0) +/* 0E8370 7F0B3840 8D190000 */ lw $t9, ($t0) +.L7F0B3844: +/* 0E8374 7F0B3844 000650C0 */ sll $t2, $a2, 3 +/* 0E8378 7F0B3848 24A50001 */ addiu $a1, $a1, 1 +/* 0E837C 7F0B384C 032A2021 */ addu $a0, $t9, $t2 +/* 0E8380 7F0B3850 908B0006 */ lbu $t3, 6($a0) +/* 0E8384 7F0B3854 30A600FF */ andi $a2, $a1, 0xff +/* 0E8388 7F0B3858 00C02825 */ move $a1, $a2 +/* 0E838C 7F0B385C 356C0002 */ ori $t4, $t3, 2 +/* 0E8390 7F0B3860 A08C0006 */ sb $t4, 6($a0) +/* 0E8394 7F0B3864 904E0001 */ lbu $t6, 1($v0) +/* 0E8398 7F0B3868 01C6082A */ slt $at, $t6, $a2 +/* 0E839C 7F0B386C 5020FFF5 */ beql $at, $zero, .L7F0B3844 +/* 0E83A0 7F0B3870 8D190000 */ lw $t9, ($t0) +/* 0E83A4 7F0B3874 90440002 */ lbu $a0, 2($v0) +.L7F0B3878: +/* 0E83A8 7F0B3878 24420002 */ addiu $v0, $v0, 2 +/* 0E83AC 7F0B387C 5524FFEB */ bnel $t1, $a0, .L7F0B382C +/* 0E83B0 7F0B3880 90580001 */ lbu $t8, 1($v0) +/* 0E83B4 7F0B3884 10000006 */ b .L7F0B38A0 +/* 0E83B8 7F0B3888 24420001 */ addiu $v0, $v0, 1 +/* 0E83BC 7F0B388C 904F0002 */ lbu $t7, 2($v0) +.L7F0B3890: +/* 0E83C0 7F0B3890 24420002 */ addiu $v0, $v0, 2 +/* 0E83C4 7F0B3894 552FFFFE */ bnel $t1, $t7, .L7F0B3890 +/* 0E83C8 7F0B3898 904F0002 */ lbu $t7, 2($v0) +/* 0E83CC 7F0B389C 24420001 */ addiu $v0, $v0, 1 +.L7F0B38A0: +/* 0E83D0 7F0B38A0 0043082B */ sltu $at, $v0, $v1 +/* 0E83D4 7F0B38A4 5420FFDB */ bnezl $at, .L7F0B3814 +/* 0E83D8 7F0B38A8 8CEE0000 */ lw $t6, ($a3) +/* 0E83DC 7F0B38AC 03E00008 */ jr $ra +/* 0E83E0 7F0B38B0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B38B4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B38B4 +/* 0E83E4 7F0B38B4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E83E8 7F0B38B8 AFB00014 */ sw $s0, 0x14($sp) +/* 0E83EC 7F0B38BC AFBF001C */ sw $ra, 0x1c($sp) +/* 0E83F0 7F0B38C0 AFB10018 */ sw $s1, 0x18($sp) +/* 0E83F4 7F0B38C4 00A08025 */ move $s0, $a1 +/* 0E83F8 7F0B38C8 90A20000 */ lbu $v0, ($a1) +/* 0E83FC 7F0B38CC 308300FF */ andi $v1, $a0, 0xff +/* 0E8400 7F0B38D0 02002025 */ move $a0, $s0 +.L7F0B38D4: +/* 0E8404 7F0B38D4 1062000B */ beq $v1, $v0, .L7F0B3904 +/* 0E8408 7F0B38D8 00000000 */ nop +/* 0E840C 7F0B38DC 92020001 */ lbu $v0, 1($s0) +/* 0E8410 7F0B38E0 26100001 */ addiu $s0, $s0, 1 +/* 0E8414 7F0B38E4 1440FFFB */ bnez $v0, .L7F0B38D4 +/* 0E8418 7F0B38E8 00000000 */ nop +/* 0E841C 7F0B38EC 920E0001 */ lbu $t6, 1($s0) +.L7F0B38F0: +/* 0E8420 7F0B38F0 26100001 */ addiu $s0, $s0, 1 +/* 0E8424 7F0B38F4 55C0FFFE */ bnezl $t6, .L7F0B38F0 +/* 0E8428 7F0B38F8 920E0001 */ lbu $t6, 1($s0) +/* 0E842C 7F0B38FC 10000027 */ b .L7F0B399C +/* 0E8430 7F0B3900 26100001 */ addiu $s0, $s0, 1 +.L7F0B3904: +/* 0E8434 7F0B3904 3C118008 */ lui $s1, %hi(pPlayer) +/* 0E8438 7F0B3908 00808025 */ move $s0, $a0 +/* 0E843C 7F0B390C 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 0E8440 7F0B3910 90820000 */ lbu $v0, ($a0) +/* 0E8444 7F0B3914 8E250000 */ lw $a1, ($s1) +.L7F0B3918: +/* 0E8448 7F0B3918 00402025 */ move $a0, $v0 +/* 0E844C 7F0B391C 0FC2D482 */ jal sub_GAME_7F0B5208 +/* 0E8450 7F0B3920 24A51118 */ addiu $a1, $a1, 0x1118 +/* 0E8454 7F0B3924 10400006 */ beqz $v0, .L7F0B3940 +/* 0E8458 7F0B3928 00002825 */ move $a1, $zero +/* 0E845C 7F0B392C 8E260000 */ lw $a2, ($s1) +/* 0E8460 7F0B3930 92040000 */ lbu $a0, ($s0) +/* 0E8464 7F0B3934 24070001 */ li $a3, 1 +/* 0E8468 7F0B3938 0FC2CE6F */ jal sub_GAME_7F0B39BC +/* 0E846C 7F0B393C 24C61118 */ addiu $a2, $a2, 0x1118 +.L7F0B3940: +/* 0E8470 7F0B3940 92020001 */ lbu $v0, 1($s0) +/* 0E8474 7F0B3944 26100001 */ addiu $s0, $s0, 1 +/* 0E8478 7F0B3948 5440FFF3 */ bnezl $v0, .L7F0B3918 +/* 0E847C 7F0B394C 8E250000 */ lw $a1, ($s1) +/* 0E8480 7F0B3950 26100001 */ addiu $s0, $s0, 1 +/* 0E8484 7F0B3954 92020000 */ lbu $v0, ($s0) +/* 0E8488 7F0B3958 8E250000 */ lw $a1, ($s1) +.L7F0B395C: +/* 0E848C 7F0B395C 00402025 */ move $a0, $v0 +/* 0E8490 7F0B3960 0FC2D482 */ jal sub_GAME_7F0B5208 +/* 0E8494 7F0B3964 24A51118 */ addiu $a1, $a1, 0x1118 +/* 0E8498 7F0B3968 10400006 */ beqz $v0, .L7F0B3984 +/* 0E849C 7F0B396C 00002825 */ move $a1, $zero +/* 0E84A0 7F0B3970 8E260000 */ lw $a2, ($s1) +/* 0E84A4 7F0B3974 92040000 */ lbu $a0, ($s0) +/* 0E84A8 7F0B3978 24070001 */ li $a3, 1 +/* 0E84AC 7F0B397C 0FC2CE6F */ jal sub_GAME_7F0B39BC +/* 0E84B0 7F0B3980 24C61118 */ addiu $a2, $a2, 0x1118 +.L7F0B3984: +/* 0E84B4 7F0B3984 92020001 */ lbu $v0, 1($s0) +/* 0E84B8 7F0B3988 26100001 */ addiu $s0, $s0, 1 +/* 0E84BC 7F0B398C 5440FFF3 */ bnezl $v0, .L7F0B395C +/* 0E84C0 7F0B3990 8E250000 */ lw $a1, ($s1) +/* 0E84C4 7F0B3994 10000005 */ b .L7F0B39AC +/* 0E84C8 7F0B3998 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0B399C: +/* 0E84CC 7F0B399C 92020000 */ lbu $v0, ($s0) +/* 0E84D0 7F0B39A0 5440FFCC */ bnezl $v0, .L7F0B38D4 +/* 0E84D4 7F0B39A4 02002025 */ move $a0, $s0 +/* 0E84D8 7F0B39A8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0B39AC: +/* 0E84DC 7F0B39AC 8FB00014 */ lw $s0, 0x14($sp) +/* 0E84E0 7F0B39B0 8FB10018 */ lw $s1, 0x18($sp) +/* 0E84E4 7F0B39B4 03E00008 */ jr $ra +/* 0E84E8 7F0B39B8 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B39BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B39BC +/* 0E84EC 7F0B39BC 00047080 */ sll $t6, $a0, 2 +/* 0E84F0 7F0B39C0 01C47021 */ addu $t6, $t6, $a0 +/* 0E84F4 7F0B39C4 3C0F8004 */ lui $t7, %hi(array_room_info) +/* 0E84F8 7F0B39C8 25EF1414 */ addiu $t7, %lo(array_room_info) # addiu $t7, $t7, 0x1414 +/* 0E84FC 7F0B39CC 000E7100 */ sll $t6, $t6, 4 +/* 0E8500 7F0B39D0 01CF1021 */ addu $v0, $t6, $t7 +/* 0E8504 7F0B39D4 90590034 */ lbu $t9, 0x34($v0) +/* 0E8508 7F0B39D8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0E850C 7F0B39DC AFB00018 */ sw $s0, 0x18($sp) +/* 0E8510 7F0B39E0 24180001 */ li $t8, 1 +/* 0E8514 7F0B39E4 00808025 */ move $s0, $a0 +/* 0E8518 7F0B39E8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0E851C 7F0B39EC AFA7003C */ sw $a3, 0x3c($sp) +/* 0E8520 7F0B39F0 13200003 */ beqz $t9, .L7F0B3A00 +/* 0E8524 7F0B39F4 A0580000 */ sb $t8, ($v0) +/* 0E8528 7F0B39F8 1000003D */ b .L7F0B3AF0 +/* 0E852C 7F0B39FC 00001025 */ move $v0, $zero +.L7F0B3A00: +/* 0E8530 7F0B3A00 3C078004 */ lui $a3, %hi(NumberOfRoomsDrawn) +/* 0E8534 7F0B3A04 24E7483C */ addiu $a3, %lo(NumberOfRoomsDrawn) # addiu $a3, $a3, 0x483c +/* 0E8538 7F0B3A08 8CE40000 */ lw $a0, ($a3) +/* 0E853C 7F0B3A0C 00001025 */ move $v0, $zero +/* 0E8540 7F0B3A10 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_8007FFA0) +/* 0E8544 7F0B3A14 18800023 */ blez $a0, .L7F0B3AA4 +/* 0E8548 7F0B3A18 000460C0 */ sll $t4, $a0, 3 +/* 0E854C 7F0B3A1C 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007FFA0) +/* 0E8550 7F0B3A20 2463FFA0 */ addiu $v1, %lo(dword_CODE_bss_8007FFA0) # addiu $v1, $v1, -0x60 +.L7F0B3A24: +/* 0E8554 7F0B3A24 8C680000 */ lw $t0, ($v1) +/* 0E8558 7F0B3A28 24420001 */ addiu $v0, $v0, 1 +/* 0E855C 7F0B3A2C 0044082A */ slt $at, $v0, $a0 +/* 0E8560 7F0B3A30 1608001A */ bne $s0, $t0, .L7F0B3A9C +/* 0E8564 7F0B3A34 00000000 */ nop +/* 0E8568 7F0B3A38 8C690004 */ lw $t1, 4($v1) +/* 0E856C 7F0B3A3C 00C02025 */ move $a0, $a2 +/* 0E8570 7F0B3A40 0125082A */ slt $at, $t1, $a1 +/* 0E8574 7F0B3A44 50200003 */ beql $at, $zero, .L7F0B3A54 +/* 0E8578 7F0B3A48 24650008 */ addiu $a1, $v1, 8 +/* 0E857C 7F0B3A4C AC650004 */ sw $a1, 4($v1) +/* 0E8580 7F0B3A50 24650008 */ addiu $a1, $v1, 8 +.L7F0B3A54: +/* 0E8584 7F0B3A54 AFA30020 */ sw $v1, 0x20($sp) +/* 0E8588 7F0B3A58 0FC2D730 */ jal sub_GAME_7F0B5CC0 +/* 0E858C 7F0B3A5C AFA60038 */ sw $a2, 0x38($sp) +/* 0E8590 7F0B3A60 8FA60038 */ lw $a2, 0x38($sp) +/* 0E8594 7F0B3A64 8FA30020 */ lw $v1, 0x20($sp) +/* 0E8598 7F0B3A68 8FAA003C */ lw $t2, 0x3c($sp) +/* 0E859C 7F0B3A6C C4C40000 */ lwc1 $f4, ($a2) +/* 0E85A0 7F0B3A70 8C620018 */ lw $v0, 0x18($v1) +/* 0E85A4 7F0B3A74 E4640008 */ swc1 $f4, 8($v1) +/* 0E85A8 7F0B3A78 C4C60004 */ lwc1 $f6, 4($a2) +/* 0E85AC 7F0B3A7C 004A5825 */ or $t3, $v0, $t2 +/* 0E85B0 7F0B3A80 E466000C */ swc1 $f6, 0xc($v1) +/* 0E85B4 7F0B3A84 C4C80008 */ lwc1 $f8, 8($a2) +/* 0E85B8 7F0B3A88 E4680010 */ swc1 $f8, 0x10($v1) +/* 0E85BC 7F0B3A8C C4CA000C */ lwc1 $f10, 0xc($a2) +/* 0E85C0 7F0B3A90 AC6B0018 */ sw $t3, 0x18($v1) +/* 0E85C4 7F0B3A94 10000016 */ b .L7F0B3AF0 +/* 0E85C8 7F0B3A98 E46A0014 */ swc1 $f10, 0x14($v1) +.L7F0B3A9C: +/* 0E85CC 7F0B3A9C 1420FFE1 */ bnez $at, .L7F0B3A24 +/* 0E85D0 7F0B3AA0 2463001C */ addiu $v1, $v1, 0x1c +.L7F0B3AA4: +/* 0E85D4 7F0B3AA4 01846023 */ subu $t4, $t4, $a0 +/* 0E85D8 7F0B3AA8 000C6080 */ sll $t4, $t4, 2 +/* 0E85DC 7F0B3AAC 25ADFFA0 */ addiu $t5, %lo(dword_CODE_bss_8007FFA0) # addiu $t5, $t5, -0x60 +/* 0E85E0 7F0B3AB0 018D1821 */ addu $v1, $t4, $t5 +/* 0E85E4 7F0B3AB4 AC700000 */ sw $s0, ($v1) +/* 0E85E8 7F0B3AB8 AC650004 */ sw $a1, 4($v1) +/* 0E85EC 7F0B3ABC C4D00000 */ lwc1 $f16, ($a2) +/* 0E85F0 7F0B3AC0 8FAE003C */ lw $t6, 0x3c($sp) +/* 0E85F4 7F0B3AC4 248F0001 */ addiu $t7, $a0, 1 +/* 0E85F8 7F0B3AC8 E4700008 */ swc1 $f16, 8($v1) +/* 0E85FC 7F0B3ACC C4D20004 */ lwc1 $f18, 4($a2) +/* 0E8600 7F0B3AD0 00001025 */ move $v0, $zero +/* 0E8604 7F0B3AD4 E472000C */ swc1 $f18, 0xc($v1) +/* 0E8608 7F0B3AD8 C4C40008 */ lwc1 $f4, 8($a2) +/* 0E860C 7F0B3ADC E4640010 */ swc1 $f4, 0x10($v1) +/* 0E8610 7F0B3AE0 C4C6000C */ lwc1 $f6, 0xc($a2) +/* 0E8614 7F0B3AE4 ACEF0000 */ sw $t7, ($a3) +/* 0E8618 7F0B3AE8 AC6E0018 */ sw $t6, 0x18($v1) +/* 0E861C 7F0B3AEC E4660014 */ swc1 $f6, 0x14($v1) +.L7F0B3AF0: +/* 0E8620 7F0B3AF0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0E8624 7F0B3AF4 8FB00018 */ lw $s0, 0x18($sp) +/* 0E8628 7F0B3AF8 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0E862C 7F0B3AFC 03E00008 */ jr $ra +/* 0E8630 7F0B3B00 00000000 */ nop +) +#endif + + + + +void bgZeroBitflags2ForRoom(s32 roomnum) +{ + array_room_info[roomnum].bitflags2 = '\0'; +} + + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B3B20(void) +{ + s32 i; + + if (array_room_info[0].bitflags2) { + return 0; + } + if (array_room_info[1].bitflags2) { + return 1; + } + for (i=2;i<0x96;i+=4) + { + if (array_room_info[i].bitflags2) { + return i; + }; + if (array_room_info[i+1].bitflags2) { + return i+1; + }; + if (array_room_info[i+2].bitflags2) { + return i+2; + }; + if (array_room_info[i+3].bitflags2) { + return i+3; + }; + } + return -1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B3B20 +/* 0E8650 7F0B3B20 3C0E8004 */ lui $t6, %hi(array_room_info+0x3) +/* 0E8654 7F0B3B24 91CE1417 */ lbu $t6, %lo(array_room_info+0x3)($t6) +/* 0E8658 7F0B3B28 3C0F8004 */ lui $t7, %hi(array_room_info + 0x53) +/* 0E865C 7F0B3B2C 11C00003 */ beqz $t6, .L7F0B3B3C +/* 0E8660 7F0B3B30 00000000 */ nop +/* 0E8664 7F0B3B34 03E00008 */ jr $ra +/* 0E8668 7F0B3B38 00001025 */ move $v0, $zero + +.L7F0B3B3C: +/* 0E866C 7F0B3B3C 91EF1467 */ lbu $t7, %lo(array_room_info + 0x53)($t7) +/* 0E8670 7F0B3B40 3C028004 */ lui $v0, %hi(array_room_info + 0xA0) +/* 0E8674 7F0B3B44 244214B4 */ addiu $v0, %lo(array_room_info + 0xA0) # addiu $v0, $v0, 0x14b4 +/* 0E8678 7F0B3B48 11E00003 */ beqz $t7, .L7F0B3B58 +/* 0E867C 7F0B3B4C 24030002 */ li $v1, 2 +/* 0E8680 7F0B3B50 03E00008 */ jr $ra +/* 0E8684 7F0B3B54 24020001 */ li $v0, 1 + +.L7F0B3B58: +/* 0E8688 7F0B3B58 24040096 */ li $a0, 150 +.L7F0B3B5C: +/* 0E868C 7F0B3B5C 90580003 */ lbu $t8, 3($v0) +/* 0E8690 7F0B3B60 53000004 */ beql $t8, $zero, .L7F0B3B74 +/* 0E8694 7F0B3B64 90590053 */ lbu $t9, 0x53($v0) +/* 0E8698 7F0B3B68 03E00008 */ jr $ra +/* 0E869C 7F0B3B6C 00601025 */ move $v0, $v1 + +/* 0E86A0 7F0B3B70 90590053 */ lbu $t9, 0x53($v0) +.L7F0B3B74: +/* 0E86A4 7F0B3B74 53200004 */ beql $t9, $zero, .L7F0B3B88 +/* 0E86A8 7F0B3B78 904800A3 */ lbu $t0, 0xa3($v0) +/* 0E86AC 7F0B3B7C 03E00008 */ jr $ra +/* 0E86B0 7F0B3B80 24620001 */ addiu $v0, $v1, 1 + +/* 0E86B4 7F0B3B84 904800A3 */ lbu $t0, 0xa3($v0) +.L7F0B3B88: +/* 0E86B8 7F0B3B88 51000004 */ beql $t0, $zero, .L7F0B3B9C +/* 0E86BC 7F0B3B8C 904900F3 */ lbu $t1, 0xf3($v0) +/* 0E86C0 7F0B3B90 03E00008 */ jr $ra +/* 0E86C4 7F0B3B94 24620002 */ addiu $v0, $v1, 2 + +/* 0E86C8 7F0B3B98 904900F3 */ lbu $t1, 0xf3($v0) +.L7F0B3B9C: +/* 0E86CC 7F0B3B9C 51200004 */ beql $t1, $zero, .L7F0B3BB0 +/* 0E86D0 7F0B3BA0 24630004 */ addiu $v1, $v1, 4 +/* 0E86D4 7F0B3BA4 03E00008 */ jr $ra +/* 0E86D8 7F0B3BA8 24620003 */ addiu $v0, $v1, 3 + +/* 0E86DC 7F0B3BAC 24630004 */ addiu $v1, $v1, 4 +.L7F0B3BB0: +/* 0E86E0 7F0B3BB0 1464FFEA */ bne $v1, $a0, .L7F0B3B5C +/* 0E86E4 7F0B3BB4 24420140 */ addiu $v0, $v0, 0x140 +/* 0E86E8 7F0B3BB8 2402FFFF */ li $v0, -1 +/* 0E86EC 7F0B3BBC 03E00008 */ jr $ra +/* 0E86F0 7F0B3BC0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B3BC4(void) +{ + s32 i; + + NumberOfRoomsDrawn = 0; + array_room_info[0].bitflags2 = '\0'; + array_room_info[1].bitflags2 = '\0'; + for (i=2;i!=MaxNumRooms;i=i+4) + { + array_room_info[i].bitflags2 = '\0'; + array_room_info[i+1].bitflags2 = '\0'; + array_room_info[i+2].bitflags2 = '\0'; + array_room_info[i+3].bitflags2 = '\0'; + } +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B3BC4 +/* 0E86F4 7F0B3BC4 3C018004 */ lui $at, %hi(NumberOfRoomsDrawn) +/* 0E86F8 7F0B3BC8 AC20483C */ sw $zero, %lo(NumberOfRoomsDrawn)($at) +/* 0E86FC 7F0B3BCC 3C018004 */ lui $at, %hi(array_room_info+0x3) +/* 0E8700 7F0B3BD0 A0201417 */ sb $zero, %lo(array_room_info+0x3)($at) +/* 0E8704 7F0B3BD4 3C018004 */ lui $at, %hi(array_room_info + 0x53) +/* 0E8708 7F0B3BD8 3C038004 */ lui $v1, %hi(array_room_info + 0xA0) +/* 0E870C 7F0B3BDC 3C028004 */ lui $v0, %hi(MaxNumRooms) +/* 0E8710 7F0B3BE0 244242F4 */ addiu $v0, %lo(MaxNumRooms) # addiu $v0, $v0, 0x42f4 +/* 0E8714 7F0B3BE4 246314B4 */ addiu $v1, %lo(array_room_info + 0xA0) # addiu $v1, $v1, 0x14b4 +/* 0E8718 7F0B3BE8 A0201467 */ sb $zero, %lo(array_room_info + 0x53)($at) +.L7F0B3BEC: +/* 0E871C 7F0B3BEC 24630140 */ addiu $v1, $v1, 0x140 +/* 0E8720 7F0B3BF0 A060FEC3 */ sb $zero, -0x13d($v1) +/* 0E8724 7F0B3BF4 A060FF13 */ sb $zero, -0xed($v1) +/* 0E8728 7F0B3BF8 A060FF63 */ sb $zero, -0x9d($v1) +/* 0E872C 7F0B3BFC 1462FFFB */ bne $v1, $v0, .L7F0B3BEC +/* 0E8730 7F0B3C00 A060FFB3 */ sb $zero, -0x4d($v1) +/* 0E8734 7F0B3C04 03E00008 */ jr $ra +/* 0E8738 7F0B3C08 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B3C0C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B3C0C +/* 0E873C 7F0B3C0C 3C038004 */ lui $v1, %hi(NumberOfRoomsDrawn) +/* 0E8740 7F0B3C10 8C63483C */ lw $v1, %lo(NumberOfRoomsDrawn)($v1) +/* 0E8744 7F0B3C14 00A03025 */ move $a2, $a1 +/* 0E8748 7F0B3C18 3C058008 */ lui $a1, %hi(dword_CODE_bss_8007FFA0) +/* 0E874C 7F0B3C1C 18600013 */ blez $v1, .L7F0B3C6C +/* 0E8750 7F0B3C20 00001025 */ move $v0, $zero +/* 0E8754 7F0B3C24 24A5FFA0 */ addiu $a1, %lo(dword_CODE_bss_8007FFA0) # addiu $a1, $a1, -0x60 +.L7F0B3C28: +/* 0E8758 7F0B3C28 8CAE0000 */ lw $t6, ($a1) +/* 0E875C 7F0B3C2C 24420001 */ addiu $v0, $v0, 1 +/* 0E8760 7F0B3C30 0043082A */ slt $at, $v0, $v1 +/* 0E8764 7F0B3C34 148E000B */ bne $a0, $t6, .L7F0B3C64 +/* 0E8768 7F0B3C38 00000000 */ nop +/* 0E876C 7F0B3C3C C4A40008 */ lwc1 $f4, 8($a1) +/* 0E8770 7F0B3C40 24020001 */ li $v0, 1 +/* 0E8774 7F0B3C44 E4C40000 */ swc1 $f4, ($a2) +/* 0E8778 7F0B3C48 C4A6000C */ lwc1 $f6, 0xc($a1) +/* 0E877C 7F0B3C4C E4C60004 */ swc1 $f6, 4($a2) +/* 0E8780 7F0B3C50 C4A80010 */ lwc1 $f8, 0x10($a1) +/* 0E8784 7F0B3C54 E4C80008 */ swc1 $f8, 8($a2) +/* 0E8788 7F0B3C58 C4AA0014 */ lwc1 $f10, 0x14($a1) +/* 0E878C 7F0B3C5C 03E00008 */ jr $ra +/* 0E8790 7F0B3C60 E4CA000C */ swc1 $f10, 0xc($a2) + +.L7F0B3C64: +/* 0E8794 7F0B3C64 1420FFF0 */ bnez $at, .L7F0B3C28 +/* 0E8798 7F0B3C68 24A5001C */ addiu $a1, $a1, 0x1c +.L7F0B3C6C: +/* 0E879C 7F0B3C6C 44800000 */ mtc1 $zero, $f0 +/* 0E87A0 7F0B3C70 00001025 */ move $v0, $zero +/* 0E87A4 7F0B3C74 E4C00000 */ swc1 $f0, ($a2) +/* 0E87A8 7F0B3C78 E4C00004 */ swc1 $f0, 4($a2) +/* 0E87AC 7F0B3C7C E4C00008 */ swc1 $f0, 8($a2) +/* 0E87B0 7F0B3C80 E4C0000C */ swc1 $f0, 0xc($a2) +/* 0E87B4 7F0B3C84 03E00008 */ jr $ra +/* 0E87B8 7F0B3C88 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B3C8C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B3C8C +/* 0E87BC 7F0B3C8C 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0E87C0 7F0B3C90 3C028004 */ lui $v0, %hi(NumberOfRoomsDrawn) +/* 0E87C4 7F0B3C94 8C42483C */ lw $v0, %lo(NumberOfRoomsDrawn)($v0) +/* 0E87C8 7F0B3C98 AFB70038 */ sw $s7, 0x38($sp) +/* 0E87CC 7F0B3C9C AFB60034 */ sw $s6, 0x34($sp) +/* 0E87D0 7F0B3CA0 AFB0001C */ sw $s0, 0x1c($sp) +/* 0E87D4 7F0B3CA4 3C1705F5 */ lui $s7, (0x05F5E0FF >> 16) # lui $s7, 0x5f5 +/* 0E87D8 7F0B3CA8 00808025 */ move $s0, $a0 +/* 0E87DC 7F0B3CAC AFBF003C */ sw $ra, 0x3c($sp) +/* 0E87E0 7F0B3CB0 AFB50030 */ sw $s5, 0x30($sp) +/* 0E87E4 7F0B3CB4 AFB4002C */ sw $s4, 0x2c($sp) +/* 0E87E8 7F0B3CB8 AFB30028 */ sw $s3, 0x28($sp) +/* 0E87EC 7F0B3CBC AFB20024 */ sw $s2, 0x24($sp) +/* 0E87F0 7F0B3CC0 AFB10020 */ sw $s1, 0x20($sp) +/* 0E87F4 7F0B3CC4 36F7E0FF */ ori $s7, (0x05F5E0FF & 0xFFFF) # ori $s7, $s7, 0xe0ff +/* 0E87F8 7F0B3CC8 18400014 */ blez $v0, .L7F0B3D1C +/* 0E87FC 7F0B3CCC 0000B025 */ move $s6, $zero +/* 0E8800 7F0B3CD0 000278C0 */ sll $t7, $v0, 3 +/* 0E8804 7F0B3CD4 01E27823 */ subu $t7, $t7, $v0 +/* 0E8808 7F0B3CD8 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_8007FFA0) +/* 0E880C 7F0B3CDC 25D2FFA0 */ addiu $s2, $t6, %lo(dword_CODE_bss_8007FFA0) +/* 0E8810 7F0B3CE0 000F7880 */ sll $t7, $t7, 2 +/* 0E8814 7F0B3CE4 01F22021 */ addu $a0, $t7, $s2 +/* 0E8818 7F0B3CE8 8E430004 */ lw $v1, 4($s2) +.L7F0B3CEC: +/* 0E881C 7F0B3CEC 2652001C */ addiu $s2, $s2, 0x1c +/* 0E8820 7F0B3CF0 02C3082A */ slt $at, $s6, $v1 +/* 0E8824 7F0B3CF4 50200003 */ beql $at, $zero, .L7F0B3D04 +/* 0E8828 7F0B3CF8 0077082A */ slt $at, $v1, $s7 +/* 0E882C 7F0B3CFC 0060B025 */ move $s6, $v1 +/* 0E8830 7F0B3D00 0077082A */ slt $at, $v1, $s7 +.L7F0B3D04: +/* 0E8834 7F0B3D04 50200003 */ beql $at, $zero, .L7F0B3D14 +/* 0E8838 7F0B3D08 0244082B */ sltu $at, $s2, $a0 +/* 0E883C 7F0B3D0C 0060B825 */ move $s7, $v1 +/* 0E8840 7F0B3D10 0244082B */ sltu $at, $s2, $a0 +.L7F0B3D14: +/* 0E8844 7F0B3D14 5420FFF5 */ bnezl $at, .L7F0B3CEC +/* 0E8848 7F0B3D18 8E430004 */ lw $v1, 4($s2) +.L7F0B3D1C: +/* 0E884C 7F0B3D1C 02D7082A */ slt $at, $s6, $s7 +/* 0E8850 7F0B3D20 1420005C */ bnez $at, .L7F0B3E94 +/* 0E8854 7F0B3D24 02E0A825 */ move $s5, $s7 +/* 0E8858 7F0B3D28 26D80001 */ addiu $t8, $s6, 1 +/* 0E885C 7F0B3D2C 3C140103 */ lui $s4, (0x01030040 >> 16) # lui $s4, 0x103 +/* 0E8860 7F0B3D30 36940040 */ ori $s4, (0x01030040 & 0xFFFF) # ori $s4, $s4, 0x40 +/* 0E8864 7F0B3D34 AFB80044 */ sw $t8, 0x44($sp) +.L7F0B3D38: +/* 0E8868 7F0B3D38 18400052 */ blez $v0, .L7F0B3E84 +/* 0E886C 7F0B3D3C 00009825 */ move $s3, $zero +/* 0E8870 7F0B3D40 3C128008 */ lui $s2, %hi(dword_CODE_bss_8007FFA0) +/* 0E8874 7F0B3D44 2652FFA0 */ addiu $s2, %lo(dword_CODE_bss_8007FFA0) # addiu $s2, $s2, -0x60 +.L7F0B3D48: +/* 0E8878 7F0B3D48 8E590004 */ lw $t9, 4($s2) +/* 0E887C 7F0B3D4C 02008825 */ move $s1, $s0 +/* 0E8880 7F0B3D50 56B90049 */ bnel $s5, $t9, .L7F0B3E78 +/* 0E8884 7F0B3D54 26730001 */ addiu $s3, $s3, 1 +/* 0E8888 7F0B3D58 26100008 */ addiu $s0, $s0, 8 +/* 0E888C 7F0B3D5C 0FC1E0DD */ jal get_BONDdata_field_10D8 +/* 0E8890 7F0B3D60 AE340000 */ sw $s4, ($s1) +/* 0E8894 7F0B3D64 0C003A2C */ jal osVirtualToPhysical +/* 0E8898 7F0B3D68 00402025 */ move $a0, $v0 +/* 0E889C 7F0B3D6C AE220004 */ sw $v0, 4($s1) +/* 0E88A0 7F0B3D70 0FC2ECA6 */ jal sub_GAME_7F0BB298 +/* 0E88A4 7F0B3D74 02002025 */ move $a0, $s0 +/* 0E88A8 7F0B3D78 0FC243D3 */ jal get_debug_do_draw_obj +/* 0E88AC 7F0B3D7C 00408025 */ move $s0, $v0 +/* 0E88B0 7F0B3D80 5040000A */ beql $v0, $zero, .L7F0B3DAC +/* 0E88B4 7F0B3D84 02008825 */ move $s1, $s0 +/* 0E88B8 7F0B3D88 0FC2F63C */ jal sub_GAME_7F0BD8F0 +/* 0E88BC 7F0B3D8C 00000000 */ nop +/* 0E88C0 7F0B3D90 10400005 */ beqz $v0, .L7F0B3DA8 +/* 0E88C4 7F0B3D94 02002025 */ move $a0, $s0 +/* 0E88C8 7F0B3D98 8E450000 */ lw $a1, ($s2) +/* 0E88CC 7F0B3D9C 0FC0E9BD */ jal sub_GAME_7F03A6F4 +/* 0E88D0 7F0B3DA0 00003025 */ move $a2, $zero +/* 0E88D4 7F0B3DA4 00408025 */ move $s0, $v0 +.L7F0B3DA8: +/* 0E88D8 7F0B3DA8 02008825 */ move $s1, $s0 +.L7F0B3DAC: +/* 0E88DC 7F0B3DAC AE340000 */ sw $s4, ($s1) +/* 0E88E0 7F0B3DB0 0FC1E0E5 */ jal get_BONDdata_field_10E0 +/* 0E88E4 7F0B3DB4 26100008 */ addiu $s0, $s0, 8 +/* 0E88E8 7F0B3DB8 0C003A2C */ jal osVirtualToPhysical +/* 0E88EC 7F0B3DBC 00402025 */ move $a0, $v0 +/* 0E88F0 7F0B3DC0 AE220004 */ sw $v0, 4($s1) +/* 0E88F4 7F0B3DC4 C6440014 */ lwc1 $f4, 0x14($s2) +/* 0E88F8 7F0B3DC8 8E470010 */ lw $a3, 0x10($s2) +/* 0E88FC 7F0B3DCC 8E46000C */ lw $a2, 0xc($s2) +/* 0E8900 7F0B3DD0 8E450008 */ lw $a1, 8($s2) +/* 0E8904 7F0B3DD4 02002025 */ move $a0, $s0 +/* 0E8908 7F0B3DD8 0FC2D3FD */ jal sub_GAME_7F0B4FF4 +/* 0E890C 7F0B3DDC E7A40010 */ swc1 $f4, 0x10($sp) +/* 0E8910 7F0B3DE0 00402025 */ move $a0, $v0 +/* 0E8914 7F0B3DE4 0FC2EC1C */ jal sub_GAME_7F0BB070 +/* 0E8918 7F0B3DE8 00002825 */ move $a1, $zero +/* 0E891C 7F0B3DEC 0FC243D0 */ jal get_debug_do_draw_bg +/* 0E8920 7F0B3DF0 00408025 */ move $s0, $v0 +/* 0E8924 7F0B3DF4 50400009 */ beql $v0, $zero, .L7F0B3E1C +/* 0E8928 7F0B3DF8 02008825 */ move $s1, $s0 +/* 0E892C 7F0B3DFC 0FC2F63C */ jal sub_GAME_7F0BD8F0 +/* 0E8930 7F0B3E00 00000000 */ nop +/* 0E8934 7F0B3E04 10400004 */ beqz $v0, .L7F0B3E18 +/* 0E8938 7F0B3E08 02002025 */ move $a0, $s0 +/* 0E893C 7F0B3E0C 0FC2D9DF */ jal sub_GAME_7F0B677C +/* 0E8940 7F0B3E10 8E450000 */ lw $a1, ($s2) +/* 0E8944 7F0B3E14 00408025 */ move $s0, $v0 +.L7F0B3E18: +/* 0E8948 7F0B3E18 02008825 */ move $s1, $s0 +.L7F0B3E1C: +/* 0E894C 7F0B3E1C AE340000 */ sw $s4, ($s1) +/* 0E8950 7F0B3E20 0FC1E0DD */ jal get_BONDdata_field_10D8 +/* 0E8954 7F0B3E24 26100008 */ addiu $s0, $s0, 8 +/* 0E8958 7F0B3E28 0C003A2C */ jal osVirtualToPhysical +/* 0E895C 7F0B3E2C 00402025 */ move $a0, $v0 +/* 0E8960 7F0B3E30 AE220004 */ sw $v0, 4($s1) +/* 0E8964 7F0B3E34 0FC2ECA6 */ jal sub_GAME_7F0BB298 +/* 0E8968 7F0B3E38 02002025 */ move $a0, $s0 +/* 0E896C 7F0B3E3C 0FC243D3 */ jal get_debug_do_draw_obj +/* 0E8970 7F0B3E40 00408025 */ move $s0, $v0 +/* 0E8974 7F0B3E44 10400009 */ beqz $v0, .L7F0B3E6C +/* 0E8978 7F0B3E48 00000000 */ nop +/* 0E897C 7F0B3E4C 0FC2F63C */ jal sub_GAME_7F0BD8F0 +/* 0E8980 7F0B3E50 00000000 */ nop +/* 0E8984 7F0B3E54 10400005 */ beqz $v0, .L7F0B3E6C +/* 0E8988 7F0B3E58 02002025 */ move $a0, $s0 +/* 0E898C 7F0B3E5C 8E450000 */ lw $a1, ($s2) +/* 0E8990 7F0B3E60 0FC0E9BD */ jal sub_GAME_7F03A6F4 +/* 0E8994 7F0B3E64 24060002 */ li $a2, 2 +/* 0E8998 7F0B3E68 00408025 */ move $s0, $v0 +.L7F0B3E6C: +/* 0E899C 7F0B3E6C 3C028004 */ lui $v0, %hi(NumberOfRoomsDrawn) +/* 0E89A0 7F0B3E70 8C42483C */ lw $v0, %lo(NumberOfRoomsDrawn)($v0) +/* 0E89A4 7F0B3E74 26730001 */ addiu $s3, $s3, 1 +.L7F0B3E78: +/* 0E89A8 7F0B3E78 0262082A */ slt $at, $s3, $v0 +/* 0E89AC 7F0B3E7C 1420FFB2 */ bnez $at, .L7F0B3D48 +/* 0E89B0 7F0B3E80 2652001C */ addiu $s2, $s2, 0x1c +.L7F0B3E84: +/* 0E89B4 7F0B3E84 8FA80044 */ lw $t0, 0x44($sp) +/* 0E89B8 7F0B3E88 26B50001 */ addiu $s5, $s5, 1 +/* 0E89BC 7F0B3E8C 1515FFAA */ bne $t0, $s5, .L7F0B3D38 +/* 0E89C0 7F0B3E90 00000000 */ nop +.L7F0B3E94: +/* 0E89C4 7F0B3E94 3C140103 */ lui $s4, (0x01030040 >> 16) # lui $s4, 0x103 +/* 0E89C8 7F0B3E98 36940040 */ ori $s4, (0x01030040 & 0xFFFF) # ori $s4, $s4, 0x40 +/* 0E89CC 7F0B3E9C 0FC2ECA6 */ jal sub_GAME_7F0BB298 +/* 0E89D0 7F0B3EA0 02002025 */ move $a0, $s0 +/* 0E89D4 7F0B3EA4 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 0E89D8 7F0B3EA8 00402025 */ move $a0, $v0 +/* 0E89DC 7F0B3EAC 00408825 */ move $s1, $v0 +/* 0E89E0 7F0B3EB0 24500008 */ addiu $s0, $v0, 8 +/* 0E89E4 7F0B3EB4 0FC1E0E5 */ jal get_BONDdata_field_10E0 +/* 0E89E8 7F0B3EB8 AC540000 */ sw $s4, ($v0) +/* 0E89EC 7F0B3EBC 0C003A2C */ jal osVirtualToPhysical +/* 0E89F0 7F0B3EC0 00402025 */ move $a0, $v0 +/* 0E89F4 7F0B3EC4 0FC2F63C */ jal sub_GAME_7F0BD8F0 +/* 0E89F8 7F0B3EC8 AE220004 */ sw $v0, 4($s1) +/* 0E89FC 7F0B3ECC 10400006 */ beqz $v0, .L7F0B3EE8 +/* 0E8A00 7F0B3ED0 00000000 */ nop +/* 0E8A04 7F0B3ED4 0FC282AD */ jal sub_GAME_7F0A0AB4 +/* 0E8A08 7F0B3ED8 02002025 */ move $a0, $s0 +/* 0E8A0C 7F0B3EDC 0FC2875E */ jal sub_GAME_7F0A1D78 +/* 0E8A10 7F0B3EE0 00402025 */ move $a0, $v0 +/* 0E8A14 7F0B3EE4 00408025 */ move $s0, $v0 +.L7F0B3EE8: +/* 0E8A18 7F0B3EE8 3C028004 */ lui $v0, %hi(NumberOfRoomsDrawn) +/* 0E8A1C 7F0B3EEC 02D7082A */ slt $at, $s6, $s7 +/* 0E8A20 7F0B3EF0 8C42483C */ lw $v0, %lo(NumberOfRoomsDrawn)($v0) +/* 0E8A24 7F0B3EF4 14200043 */ bnez $at, .L7F0B4004 +/* 0E8A28 7F0B3EF8 02C0A825 */ move $s5, $s6 +/* 0E8A2C 7F0B3EFC 26F6FFFF */ addiu $s6, $s7, -1 +.L7F0B3F00: +/* 0E8A30 7F0B3F00 1840003D */ blez $v0, .L7F0B3FF8 +/* 0E8A34 7F0B3F04 00009825 */ move $s3, $zero +/* 0E8A38 7F0B3F08 3C128008 */ lui $s2, %hi(dword_CODE_bss_8007FFA0) +/* 0E8A3C 7F0B3F0C 2652FFA0 */ addiu $s2, %lo(dword_CODE_bss_8007FFA0) # addiu $s2, $s2, -0x60 +.L7F0B3F10: +/* 0E8A40 7F0B3F10 8E490004 */ lw $t1, 4($s2) +/* 0E8A44 7F0B3F14 02008825 */ move $s1, $s0 +/* 0E8A48 7F0B3F18 56A90034 */ bnel $s5, $t1, .L7F0B3FEC +/* 0E8A4C 7F0B3F1C 26730001 */ addiu $s3, $s3, 1 +/* 0E8A50 7F0B3F20 26100008 */ addiu $s0, $s0, 8 +/* 0E8A54 7F0B3F24 0FC1E0E5 */ jal get_BONDdata_field_10E0 +/* 0E8A58 7F0B3F28 AE340000 */ sw $s4, ($s1) +/* 0E8A5C 7F0B3F2C 0C003A2C */ jal osVirtualToPhysical +/* 0E8A60 7F0B3F30 00402025 */ move $a0, $v0 +/* 0E8A64 7F0B3F34 AE220004 */ sw $v0, 4($s1) +/* 0E8A68 7F0B3F38 C6460014 */ lwc1 $f6, 0x14($s2) +/* 0E8A6C 7F0B3F3C 8E470010 */ lw $a3, 0x10($s2) +/* 0E8A70 7F0B3F40 8E46000C */ lw $a2, 0xc($s2) +/* 0E8A74 7F0B3F44 8E450008 */ lw $a1, 8($s2) +/* 0E8A78 7F0B3F48 02002025 */ move $a0, $s0 +/* 0E8A7C 7F0B3F4C 0FC2D3FD */ jal sub_GAME_7F0B4FF4 +/* 0E8A80 7F0B3F50 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0E8A84 7F0B3F54 00402025 */ move $a0, $v0 +/* 0E8A88 7F0B3F58 0FC2EC1C */ jal sub_GAME_7F0BB070 +/* 0E8A8C 7F0B3F5C 24050001 */ li $a1, 1 +/* 0E8A90 7F0B3F60 0FC243D0 */ jal get_debug_do_draw_bg +/* 0E8A94 7F0B3F64 00408025 */ move $s0, $v0 +/* 0E8A98 7F0B3F68 50400009 */ beql $v0, $zero, .L7F0B3F90 +/* 0E8A9C 7F0B3F6C 02008825 */ move $s1, $s0 +/* 0E8AA0 7F0B3F70 0FC2F63C */ jal sub_GAME_7F0BD8F0 +/* 0E8AA4 7F0B3F74 00000000 */ nop +/* 0E8AA8 7F0B3F78 10400004 */ beqz $v0, .L7F0B3F8C +/* 0E8AAC 7F0B3F7C 02002025 */ move $a0, $s0 +/* 0E8AB0 7F0B3F80 0FC2DA26 */ jal sub_GAME_7F0B6898 +/* 0E8AB4 7F0B3F84 8E450000 */ lw $a1, ($s2) +/* 0E8AB8 7F0B3F88 00408025 */ move $s0, $v0 +.L7F0B3F8C: +/* 0E8ABC 7F0B3F8C 02008825 */ move $s1, $s0 +.L7F0B3F90: +/* 0E8AC0 7F0B3F90 AE340000 */ sw $s4, ($s1) +/* 0E8AC4 7F0B3F94 0FC1E0DD */ jal get_BONDdata_field_10D8 +/* 0E8AC8 7F0B3F98 26100008 */ addiu $s0, $s0, 8 +/* 0E8ACC 7F0B3F9C 0C003A2C */ jal osVirtualToPhysical +/* 0E8AD0 7F0B3FA0 00402025 */ move $a0, $v0 +/* 0E8AD4 7F0B3FA4 AE220004 */ sw $v0, 4($s1) +/* 0E8AD8 7F0B3FA8 0FC2ECA6 */ jal sub_GAME_7F0BB298 +/* 0E8ADC 7F0B3FAC 02002025 */ move $a0, $s0 +/* 0E8AE0 7F0B3FB0 0FC243D3 */ jal get_debug_do_draw_obj +/* 0E8AE4 7F0B3FB4 00408025 */ move $s0, $v0 +/* 0E8AE8 7F0B3FB8 10400009 */ beqz $v0, .L7F0B3FE0 +/* 0E8AEC 7F0B3FBC 00000000 */ nop +/* 0E8AF0 7F0B3FC0 0FC2F63C */ jal sub_GAME_7F0BD8F0 +/* 0E8AF4 7F0B3FC4 00000000 */ nop +/* 0E8AF8 7F0B3FC8 10400005 */ beqz $v0, .L7F0B3FE0 +/* 0E8AFC 7F0B3FCC 02002025 */ move $a0, $s0 +/* 0E8B00 7F0B3FD0 8E450000 */ lw $a1, ($s2) +/* 0E8B04 7F0B3FD4 0FC0E9BD */ jal sub_GAME_7F03A6F4 +/* 0E8B08 7F0B3FD8 24060001 */ li $a2, 1 +/* 0E8B0C 7F0B3FDC 00408025 */ move $s0, $v0 +.L7F0B3FE0: +/* 0E8B10 7F0B3FE0 3C028004 */ lui $v0, %hi(NumberOfRoomsDrawn) +/* 0E8B14 7F0B3FE4 8C42483C */ lw $v0, %lo(NumberOfRoomsDrawn)($v0) +/* 0E8B18 7F0B3FE8 26730001 */ addiu $s3, $s3, 1 +.L7F0B3FEC: +/* 0E8B1C 7F0B3FEC 0262082A */ slt $at, $s3, $v0 +/* 0E8B20 7F0B3FF0 1420FFC7 */ bnez $at, .L7F0B3F10 +/* 0E8B24 7F0B3FF4 2652001C */ addiu $s2, $s2, 0x1c +.L7F0B3FF8: +/* 0E8B28 7F0B3FF8 26B5FFFF */ addiu $s5, $s5, -1 +/* 0E8B2C 7F0B3FFC 16B6FFC0 */ bne $s5, $s6, .L7F0B3F00 +/* 0E8B30 7F0B4000 00000000 */ nop +.L7F0B4004: +/* 0E8B34 7F0B4004 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E8B38 7F0B4008 02001025 */ move $v0, $s0 +/* 0E8B3C 7F0B400C 8FB0001C */ lw $s0, 0x1c($sp) +/* 0E8B40 7F0B4010 8FB10020 */ lw $s1, 0x20($sp) +/* 0E8B44 7F0B4014 8FB20024 */ lw $s2, 0x24($sp) +/* 0E8B48 7F0B4018 8FB30028 */ lw $s3, 0x28($sp) +/* 0E8B4C 7F0B401C 8FB4002C */ lw $s4, 0x2c($sp) +/* 0E8B50 7F0B4020 8FB50030 */ lw $s5, 0x30($sp) +/* 0E8B54 7F0B4024 8FB60034 */ lw $s6, 0x34($sp) +/* 0E8B58 7F0B4028 8FB70038 */ lw $s7, 0x38($sp) +/* 0E8B5C 7F0B402C 03E00008 */ jr $ra +/* 0E8B60 7F0B4030 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B4034(s32 arg0) { + s32 temp_v1; + void *phi_a0; + s32 phi_v1; + s32 phi_v1_2; + + // Node 0 + phi_v1 = arg0; + if ((ptr_bgdata_room_fileposition_list + (arg0 * 0x18))->unk4 == 0) + { + // Node 1 + phi_a0 = (ptr_bgdata_room_fileposition_list + (arg0 * 0x18)); + phi_v1_2 = arg0; +loop_2: + // Node 2 + temp_v1 = (phi_v1_2 + 1); + phi_a0 = (phi_a0 + 0x18); + phi_v1 = temp_v1; + phi_v1_2 = temp_v1; + if (phi_a0->unk1C == 0) + { + goto loop_2; + } + } + // Node 3 + return phi_v1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B4034 +/* 0E8B64 7F0B4034 3C028008 */ lui $v0, %hi(ptr_bgdata_room_fileposition_list) +/* 0E8B68 7F0B4038 8C42FF8C */ lw $v0, %lo(ptr_bgdata_room_fileposition_list)($v0) +/* 0E8B6C 7F0B403C 00047080 */ sll $t6, $a0, 2 +/* 0E8B70 7F0B4040 01C47023 */ subu $t6, $t6, $a0 +/* 0E8B74 7F0B4044 000E70C0 */ sll $t6, $t6, 3 +/* 0E8B78 7F0B4048 004E7821 */ addu $t7, $v0, $t6 +/* 0E8B7C 7F0B404C 8DF80004 */ lw $t8, 4($t7) +/* 0E8B80 7F0B4050 0004C880 */ sll $t9, $a0, 2 +/* 0E8B84 7F0B4054 00801825 */ move $v1, $a0 +/* 0E8B88 7F0B4058 17000008 */ bnez $t8, .L7F0B407C +/* 0E8B8C 7F0B405C 0324C823 */ subu $t9, $t9, $a0 +/* 0E8B90 7F0B4060 0019C8C0 */ sll $t9, $t9, 3 +/* 0E8B94 7F0B4064 00592021 */ addu $a0, $v0, $t9 +/* 0E8B98 7F0B4068 8C88001C */ lw $t0, 0x1c($a0) +.L7F0B406C: +/* 0E8B9C 7F0B406C 24630001 */ addiu $v1, $v1, 1 +/* 0E8BA0 7F0B4070 24840018 */ addiu $a0, $a0, 0x18 +/* 0E8BA4 7F0B4074 5100FFFD */ beql $t0, $zero, .L7F0B406C +/* 0E8BA8 7F0B4078 8C88001C */ lw $t0, 0x1c($a0) +.L7F0B407C: +/* 0E8BAC 7F0B407C 03E00008 */ jr $ra +/* 0E8BB0 7F0B4080 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B4084(s32 arg0) { + s32 temp_v1; + void *phi_a0; + s32 phi_v1; + s32 phi_v1_2; + + // Node 0 + phi_v1 = arg0; + if ((ptr_bgdata_room_fileposition_list + (arg0 * 0x18))->unk8 == 0) + { + // Node 1 + phi_a0 = (ptr_bgdata_room_fileposition_list + (arg0 * 0x18)); + phi_v1_2 = arg0; +loop_2: + // Node 2 + temp_v1 = (phi_v1_2 + 1); + phi_a0 = (phi_a0 + 0x18); + phi_v1 = temp_v1; + phi_v1_2 = temp_v1; + if (phi_a0->unk20 == 0) + { + goto loop_2; + } + } + // Node 3 + return phi_v1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B4084 +/* 0E8BB4 7F0B4084 3C028008 */ lui $v0, %hi(ptr_bgdata_room_fileposition_list) +/* 0E8BB8 7F0B4088 8C42FF8C */ lw $v0, %lo(ptr_bgdata_room_fileposition_list)($v0) +/* 0E8BBC 7F0B408C 00047080 */ sll $t6, $a0, 2 +/* 0E8BC0 7F0B4090 01C47023 */ subu $t6, $t6, $a0 +/* 0E8BC4 7F0B4094 000E70C0 */ sll $t6, $t6, 3 +/* 0E8BC8 7F0B4098 004E7821 */ addu $t7, $v0, $t6 +/* 0E8BCC 7F0B409C 8DF80008 */ lw $t8, 8($t7) +/* 0E8BD0 7F0B40A0 0004C880 */ sll $t9, $a0, 2 +/* 0E8BD4 7F0B40A4 00801825 */ move $v1, $a0 +/* 0E8BD8 7F0B40A8 17000008 */ bnez $t8, .L7F0B40CC +/* 0E8BDC 7F0B40AC 0324C823 */ subu $t9, $t9, $a0 +/* 0E8BE0 7F0B40B0 0019C8C0 */ sll $t9, $t9, 3 +/* 0E8BE4 7F0B40B4 00592021 */ addu $a0, $v0, $t9 +/* 0E8BE8 7F0B40B8 8C880020 */ lw $t0, 0x20($a0) +.L7F0B40BC: +/* 0E8BEC 7F0B40BC 24630001 */ addiu $v1, $v1, 1 +/* 0E8BF0 7F0B40C0 24840018 */ addiu $a0, $a0, 0x18 +/* 0E8BF4 7F0B40C4 5100FFFD */ beql $t0, $zero, .L7F0B40BC +/* 0E8BF8 7F0B40C8 8C880020 */ lw $t0, 0x20($a0) +.L7F0B40CC: +/* 0E8BFC 7F0B40CC 03E00008 */ jr $ra +/* 0E8C00 7F0B40D0 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B40D4(s32 arg0) { + s32 temp_v1; + void *phi_a0; + s32 phi_v1; + s32 phi_v1_2; + + // Node 0 + phi_v1 = arg0; + if (*(ptr_bgdata_room_fileposition_list + (arg0 * 0x18)) == 0) + { + // Node 1 + phi_a0 = (ptr_bgdata_room_fileposition_list + (arg0 * 0x18)); + phi_v1_2 = arg0; +loop_2: + // Node 2 + temp_v1 = (phi_v1_2 + 1); + phi_a0 = (phi_a0 + 0x18); + phi_v1 = temp_v1; + phi_v1_2 = temp_v1; + if (phi_a0->unk18 == 0) + { + goto loop_2; + } + } + // Node 3 + return phi_v1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B40D4 +/* 0E8C04 7F0B40D4 3C028008 */ lui $v0, %hi(ptr_bgdata_room_fileposition_list) +/* 0E8C08 7F0B40D8 8C42FF8C */ lw $v0, %lo(ptr_bgdata_room_fileposition_list)($v0) +/* 0E8C0C 7F0B40DC 00047080 */ sll $t6, $a0, 2 +/* 0E8C10 7F0B40E0 01C47023 */ subu $t6, $t6, $a0 +/* 0E8C14 7F0B40E4 000E70C0 */ sll $t6, $t6, 3 +/* 0E8C18 7F0B40E8 004E7821 */ addu $t7, $v0, $t6 +/* 0E8C1C 7F0B40EC 8DF80000 */ lw $t8, ($t7) +/* 0E8C20 7F0B40F0 0004C880 */ sll $t9, $a0, 2 +/* 0E8C24 7F0B40F4 00801825 */ move $v1, $a0 +/* 0E8C28 7F0B40F8 17000008 */ bnez $t8, .L7F0B411C +/* 0E8C2C 7F0B40FC 0324C823 */ subu $t9, $t9, $a0 +/* 0E8C30 7F0B4100 0019C8C0 */ sll $t9, $t9, 3 +/* 0E8C34 7F0B4104 00592021 */ addu $a0, $v0, $t9 +/* 0E8C38 7F0B4108 8C880018 */ lw $t0, 0x18($a0) +.L7F0B410C: +/* 0E8C3C 7F0B410C 24630001 */ addiu $v1, $v1, 1 +/* 0E8C40 7F0B4110 24840018 */ addiu $a0, $a0, 0x18 +/* 0E8C44 7F0B4114 5100FFFD */ beql $t0, $zero, .L7F0B410C +/* 0E8C48 7F0B4118 8C880018 */ lw $t0, 0x18($a0) +.L7F0B411C: +/* 0E8C4C 7F0B411C 03E00008 */ jr $ra +/* 0E8C50 7F0B4120 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void load_bg_file(STAGENUM stagenum) +{ + +} +#else +GLOBAL_ASM( +.text +glabel load_bg_file +/* 0E8C54 7F0B4124 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0E8C58 7F0B4128 AFB20020 */ sw $s2, 0x20($sp) +/* 0E8C5C 7F0B412C 3C128004 */ lui $s2, %hi(D_80041400) +/* 0E8C60 7F0B4130 AFB00018 */ sw $s0, 0x18($sp) +/* 0E8C64 7F0B4134 26521400 */ addiu $s2, %lo(D_80041400) # addiu $s2, $s2, 0x1400 +/* 0E8C68 7F0B4138 3C108004 */ lui $s0, %hi(array_room_info) +/* 0E8C6C 7F0B413C 3C028004 */ lui $v0, %hi(MaxNumRooms) +/* 0E8C70 7F0B4140 AFBF003C */ sw $ra, 0x3c($sp) +/* 0E8C74 7F0B4144 AFBE0038 */ sw $fp, 0x38($sp) +/* 0E8C78 7F0B4148 AFB70034 */ sw $s7, 0x34($sp) +/* 0E8C7C 7F0B414C AFB60030 */ sw $s6, 0x30($sp) +/* 0E8C80 7F0B4150 AFB5002C */ sw $s5, 0x2c($sp) +/* 0E8C84 7F0B4154 AFB40028 */ sw $s4, 0x28($sp) +/* 0E8C88 7F0B4158 AFB30024 */ sw $s3, 0x24($sp) +/* 0E8C8C 7F0B415C AFB1001C */ sw $s1, 0x1c($sp) +/* 0E8C90 7F0B4160 AE400000 */ sw $zero, ($s2) +/* 0E8C94 7F0B4164 244242F4 */ addiu $v0, %lo(MaxNumRooms) # addiu $v0, $v0, 0x42f4 +/* 0E8C98 7F0B4168 26101414 */ addiu $s0, %lo(array_room_info) # addiu $s0, $s0, 0x1414 +.L7F0B416C: +/* 0E8C9C 7F0B416C 26100050 */ addiu $s0, $s0, 0x50 +/* 0E8CA0 7F0B4170 0202082B */ sltu $at, $s0, $v0 +/* 0E8CA4 7F0B4174 1420FFFD */ bnez $at, .L7F0B416C +/* 0E8CA8 7F0B4178 AE00FFDC */ sw $zero, -0x24($s0) +/* 0E8CAC 7F0B417C 3C028004 */ lui $v0, %hi(levelinfotable) +/* 0E8CB0 7F0B4180 2442448C */ addiu $v0, %lo(levelinfotable) # addiu $v0, $v0, 0x448c +/* 0E8CB4 7F0B4184 00008825 */ move $s1, $zero +.L7F0B4188: +/* 0E8CB8 7F0B4188 8C4E0000 */ lw $t6, ($v0) +/* 0E8CBC 7F0B418C 548E0003 */ bnel $a0, $t6, .L7F0B419C +/* 0E8CC0 7F0B4190 26310001 */ addiu $s1, $s1, 1 +/* 0E8CC4 7F0B4194 AE510000 */ sw $s1, ($s2) +/* 0E8CC8 7F0B4198 26310001 */ addiu $s1, $s1, 1 +.L7F0B419C: +/* 0E8CCC 7F0B419C 2A210026 */ slti $at, $s1, 0x26 +/* 0E8CD0 7F0B41A0 1420FFF9 */ bnez $at, .L7F0B4188 +/* 0E8CD4 7F0B41A4 24420018 */ addiu $v0, $v0, 0x18 +/* 0E8CD8 7F0B41A8 0FC2ED34 */ jal init_lightfixture_tables +/* 0E8CDC 7F0B41AC AFA400B8 */ sw $a0, 0xb8($sp) +/* 0E8CE0 7F0B41B0 8E580000 */ lw $t8, ($s2) +/* 0E8CE4 7F0B41B4 24140018 */ li $s4, 24 +/* 0E8CE8 7F0B41B8 3C118004 */ lui $s1, %hi(levelinfotable) +/* 0E8CEC 7F0B41BC 03140019 */ multu $t8, $s4 +/* 0E8CF0 7F0B41C0 2631448C */ addiu $s1, %lo(levelinfotable) # addiu $s1, $s1, 0x448c +/* 0E8CF4 7F0B41C4 3C178008 */ lui $s7, %hi(ptr_bg_data) +/* 0E8CF8 7F0B41C8 26F7BF90 */ addiu $s7, %lo(ptr_bg_data) # addiu $s7, $s7, -0x4070 +/* 0E8CFC 7F0B41CC 27A50070 */ addiu $a1, $sp, 0x70 +/* 0E8D00 7F0B41D0 AEE50000 */ sw $a1, ($s7) +/* 0E8D04 7F0B41D4 00003025 */ move $a2, $zero +/* 0E8D08 7F0B41D8 24070040 */ li $a3, 64 +/* 0E8D0C 7F0B41DC 0000C812 */ mflo $t9 +/* 0E8D10 7F0B41E0 02394021 */ addu $t0, $s1, $t9 +/* 0E8D14 7F0B41E4 0FC2F35F */ jal obLoadBGFileBytesAtOffset +/* 0E8D18 7F0B41E8 8D040004 */ lw $a0, 4($t0) +/* 0E8D1C 7F0B41EC 8EE20000 */ lw $v0, ($s7) +/* 0E8D20 7F0B41F0 3C168008 */ lui $s6, %hi(ptr_bgdata_offsets) +/* 0E8D24 7F0B41F4 26D6FF84 */ addiu $s6, %lo(ptr_bgdata_offsets) # addiu $s6, $s6, -0x7c +/* 0E8D28 7F0B41F8 AEC20000 */ sw $v0, ($s6) +/* 0E8D2C 7F0B41FC 8C4A0004 */ lw $t2, 4($v0) +/* 0E8D30 7F0B4200 3C13F100 */ lui $s3, 0xf100 +/* 0E8D34 7F0B4204 3C158008 */ lui $s5, %hi(ptr_bgdata_room_fileposition_list) +/* 0E8D38 7F0B4208 01425821 */ addu $t3, $t2, $v0 +/* 0E8D3C 7F0B420C 26B5FF8C */ addiu $s5, %lo(ptr_bgdata_room_fileposition_list) # addiu $s5, $s5, -0x74 +/* 0E8D40 7F0B4210 01736021 */ addu $t4, $t3, $s3 +/* 0E8D44 7F0B4214 AEAC0000 */ sw $t4, ($s5) +/* 0E8D48 7F0B4218 8D900018 */ lw $s0, 0x18($t4) +/* 0E8D4C 7F0B421C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 0E8D50 7F0B4220 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 0E8D54 7F0B4224 02017024 */ and $t6, $s0, $at +/* 0E8D58 7F0B4228 25D0FFFF */ addiu $s0, $t6, -1 +/* 0E8D5C 7F0B422C 360F000F */ ori $t7, $s0, 0xf +/* 0E8D60 7F0B4230 25F00001 */ addiu $s0, $t7, 1 +/* 0E8D64 7F0B4234 02002025 */ move $a0, $s0 +/* 0E8D68 7F0B4238 0C0025C8 */ jal mempAllocBytesInBank +/* 0E8D6C 7F0B423C 24050004 */ li $a1, 4 +/* 0E8D70 7F0B4240 8E580000 */ lw $t8, ($s2) +/* 0E8D74 7F0B4244 AEE20000 */ sw $v0, ($s7) +/* 0E8D78 7F0B4248 00402825 */ move $a1, $v0 +/* 0E8D7C 7F0B424C 03140019 */ multu $t8, $s4 +/* 0E8D80 7F0B4250 00003025 */ move $a2, $zero +/* 0E8D84 7F0B4254 02003825 */ move $a3, $s0 +/* 0E8D88 7F0B4258 0000C812 */ mflo $t9 +/* 0E8D8C 7F0B425C 02394021 */ addu $t0, $s1, $t9 +/* 0E8D90 7F0B4260 0FC2F35F */ jal obLoadBGFileBytesAtOffset +/* 0E8D94 7F0B4264 8D040004 */ lw $a0, 4($t0) +/* 0E8D98 7F0B4268 8E490000 */ lw $t1, ($s2) +/* 0E8D9C 7F0B426C 24050002 */ li $a1, 2 +/* 0E8DA0 7F0B4270 00003025 */ move $a2, $zero +/* 0E8DA4 7F0B4274 01340019 */ multu $t1, $s4 +/* 0E8DA8 7F0B4278 24070004 */ li $a3, 4 +/* 0E8DAC 7F0B427C 00005012 */ mflo $t2 +/* 0E8DB0 7F0B4280 022A5821 */ addu $t3, $s1, $t2 +/* 0E8DB4 7F0B4284 0FC2F341 */ jal _load_resource_named_to_membank +/* 0E8DB8 7F0B4288 8D640008 */ lw $a0, 8($t3) +/* 0E8DBC 7F0B428C 3C108008 */ lui $s0, %hi(ptr_clipping) +/* 0E8DC0 7F0B4290 2610BF94 */ addiu $s0, %lo(ptr_clipping) # addiu $s0, $s0, -0x406c +/* 0E8DC4 7F0B4294 AE020000 */ sw $v0, ($s0) +/* 0E8DC8 7F0B4298 00402025 */ move $a0, $v0 +/* 0E8DCC 7F0B429C 00002825 */ move $a1, $zero +/* 0E8DD0 7F0B42A0 0FC2CBCB */ jal stanDetermineEOF +/* 0E8DD4 7F0B42A4 00403025 */ move $a2, $v0 +/* 0E8DD8 7F0B42A8 0FC2BD6E */ jal stanLoadFile +/* 0E8DDC 7F0B42AC 8E040000 */ lw $a0, ($s0) +/* 0E8DE0 7F0B42B0 8E4C0000 */ lw $t4, ($s2) +/* 0E8DE4 7F0B42B4 01940019 */ multu $t4, $s4 +/* 0E8DE8 7F0B42B8 00006812 */ mflo $t5 +/* 0E8DEC 7F0B42BC 022D7021 */ addu $t6, $s1, $t5 +/* 0E8DF0 7F0B42C0 0FC2D204 */ jal sub_GAME_7F0B4810 +/* 0E8DF4 7F0B42C4 C5CC000C */ lwc1 $f12, 0xc($t6) +/* 0E8DF8 7F0B42C8 8E4F0000 */ lw $t7, ($s2) +/* 0E8DFC 7F0B42CC 01F40019 */ multu $t7, $s4 +/* 0E8E00 7F0B42D0 0000C012 */ mflo $t8 +/* 0E8E04 7F0B42D4 0238C821 */ addu $t9, $s1, $t8 +/* 0E8E08 7F0B42D8 0FC2CA54 */ jal sub_GAME_7F0B2950 +/* 0E8E0C 7F0B42DC C72C000C */ lwc1 $f12, 0xc($t9) +/* 0E8E10 7F0B42E0 8E480000 */ lw $t0, ($s2) +/* 0E8E14 7F0B42E4 01140019 */ multu $t0, $s4 +/* 0E8E18 7F0B42E8 00004812 */ mflo $t1 +/* 0E8E1C 7F0B42EC 02295021 */ addu $t2, $s1, $t1 +/* 0E8E20 7F0B42F0 0FC2456F */ jal sub_GAME_7F0915BC +/* 0E8E24 7F0B42F4 C54C000C */ lwc1 $f12, 0xc($t2) +/* 0E8E28 7F0B42F8 8E4B0000 */ lw $t3, ($s2) +/* 0E8E2C 7F0B42FC 01740019 */ multu $t3, $s4 +/* 0E8E30 7F0B4300 00006012 */ mflo $t4 +/* 0E8E34 7F0B4304 022C6821 */ addu $t5, $s1, $t4 +/* 0E8E38 7F0B4308 0FC08B87 */ jal sub_GAME_7F022E1C +/* 0E8E3C 7F0B430C C5AC000C */ lwc1 $f12, 0xc($t5) +/* 0E8E40 7F0B4310 8E4E0000 */ lw $t6, ($s2) +/* 0E8E44 7F0B4314 3C108004 */ lui $s0, %hi(D_800413FC) +/* 0E8E48 7F0B4318 261013FC */ addiu $s0, %lo(D_800413FC) # addiu $s0, $s0, 0x13fc +/* 0E8E4C 7F0B431C 01D40019 */ multu $t6, $s4 +/* 0E8E50 7F0B4320 00007812 */ mflo $t7 +/* 0E8E54 7F0B4324 022FC021 */ addu $t8, $s1, $t7 +/* 0E8E58 7F0B4328 C7040010 */ lwc1 $f4, 0x10($t8) +/* 0E8E5C 7F0B432C E6040000 */ swc1 $f4, ($s0) +/* 0E8E60 7F0B4330 0FC225DB */ jal sub_GAME_7F08976C +/* 0E8E64 7F0B4334 C60C0000 */ lwc1 $f12, ($s0) +/* 0E8E68 7F0B4338 0FC16313 */ jal sub_GAME_7F058C4C +/* 0E8E6C 7F0B433C C60C0000 */ lwc1 $f12, ($s0) +/* 0E8E70 7F0B4340 8EE20000 */ lw $v0, ($s7) +/* 0E8E74 7F0B4344 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007BF98) +/* 0E8E78 7F0B4348 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007FF88) +/* 0E8E7C 7F0B434C 8C590000 */ lw $t9, ($v0) +/* 0E8E80 7F0B4350 2484FF88 */ addiu $a0, %lo(dword_CODE_bss_8007FF88) # addiu $a0, $a0, -0x78 +/* 0E8E84 7F0B4354 2463BF98 */ addiu $v1, %lo(dword_CODE_bss_8007BF98) # addiu $v1, $v1, -0x4068 +/* 0E8E88 7F0B4358 24080001 */ li $t0, 1 +/* 0E8E8C 7F0B435C AC880000 */ sw $t0, ($a0) +/* 0E8E90 7F0B4360 1720010E */ bnez $t9, .L7F0B479C +/* 0E8E94 7F0B4364 AC790000 */ sw $t9, ($v1) +/* 0E8E98 7F0B4368 240A0002 */ li $t2, 2 +/* 0E8E9C 7F0B436C AC8A0000 */ sw $t2, ($a0) +/* 0E8EA0 7F0B4370 AEC20000 */ sw $v0, ($s6) +/* 0E8EA4 7F0B4374 8C4B0004 */ lw $t3, 4($v0) +/* 0E8EA8 7F0B4378 3C168004 */ lui $s6, %hi(MaxNumRooms) +/* 0E8EAC 7F0B437C 26D642F4 */ addiu $s6, %lo(MaxNumRooms) # addiu $s6, $s6, 0x42f4 +/* 0E8EB0 7F0B4380 01626021 */ addu $t4, $t3, $v0 +/* 0E8EB4 7F0B4384 01936821 */ addu $t5, $t4, $s3 +/* 0E8EB8 7F0B4388 AEAD0000 */ sw $t5, ($s5) +/* 0E8EBC 7F0B438C AEC00000 */ sw $zero, ($s6) +/* 0E8EC0 7F0B4390 8DAE001C */ lw $t6, 0x1c($t5) +/* 0E8EC4 7F0B4394 00402825 */ move $a1, $v0 +/* 0E8EC8 7F0B4398 11C00008 */ beqz $t6, .L7F0B43BC +/* 0E8ECC 7F0B439C 25A40018 */ addiu $a0, $t5, 0x18 +/* 0E8ED0 7F0B43A0 8ECF0000 */ lw $t7, ($s6) +.L7F0B43A4: +/* 0E8ED4 7F0B43A4 24840018 */ addiu $a0, $a0, 0x18 +/* 0E8ED8 7F0B43A8 25F80001 */ addiu $t8, $t7, 1 +/* 0E8EDC 7F0B43AC AED80000 */ sw $t8, ($s6) +/* 0E8EE0 7F0B43B0 8C990004 */ lw $t9, 4($a0) +/* 0E8EE4 7F0B43B4 5720FFFB */ bnezl $t9, .L7F0B43A4 +/* 0E8EE8 7F0B43B8 8ECF0000 */ lw $t7, ($s6) +.L7F0B43BC: +/* 0E8EEC 7F0B43BC 8CA80008 */ lw $t0, 8($a1) +/* 0E8EF0 7F0B43C0 3C1E8008 */ lui $fp, %hi(ptr_bgdata_portals) +/* 0E8EF4 7F0B43C4 27DEFF80 */ addiu $fp, %lo(ptr_bgdata_portals) # addiu $fp, $fp, -0x80 +/* 0E8EF8 7F0B43C8 01024821 */ addu $t1, $t0, $v0 +/* 0E8EFC 7F0B43CC 01335021 */ addu $t2, $t1, $s3 +/* 0E8F00 7F0B43D0 AFCA0000 */ sw $t2, ($fp) +/* 0E8F04 7F0B43D4 8CA3000C */ lw $v1, 0xc($a1) +/* 0E8F08 7F0B43D8 14600004 */ bnez $v1, .L7F0B43EC +/* 0E8F0C 7F0B43DC 3C128008 */ lui $s2, %hi(dword_CODE_bss_8007FF90) +/* 0E8F10 7F0B43E0 2652FF90 */ addiu $s2, %lo(dword_CODE_bss_8007FF90) # addiu $s2, $s2, -0x70 +/* 0E8F14 7F0B43E4 1000000F */ b .L7F0B4424 +/* 0E8F18 7F0B43E8 AE400000 */ sw $zero, ($s2) +.L7F0B43EC: +/* 0E8F1C 7F0B43EC 3C128008 */ lui $s2, %hi(dword_CODE_bss_8007FF90) +/* 0E8F20 7F0B43F0 00625821 */ addu $t3, $v1, $v0 +/* 0E8F24 7F0B43F4 2652FF90 */ addiu $s2, %lo(dword_CODE_bss_8007FF90) # addiu $s2, $s2, -0x70 +/* 0E8F28 7F0B43F8 01736021 */ addu $t4, $t3, $s3 +/* 0E8F2C 7F0B43FC AE4C0000 */ sw $t4, ($s2) +/* 0E8F30 7F0B4400 8CA40010 */ lw $a0, 0x10($a1) +/* 0E8F34 7F0B4404 3C018008 */ lui $at, %hi(dword_CODE_bss_8007FF94) +/* 0E8F38 7F0B4408 14800004 */ bnez $a0, .L7F0B441C +/* 0E8F3C 7F0B440C 00826821 */ addu $t5, $a0, $v0 +/* 0E8F40 7F0B4410 3C018008 */ lui $at, %hi(dword_CODE_bss_8007FF94) +/* 0E8F44 7F0B4414 10000003 */ b .L7F0B4424 +/* 0E8F48 7F0B4418 AC20FF94 */ sw $zero, %lo(dword_CODE_bss_8007FF94)($at) +.L7F0B441C: +/* 0E8F4C 7F0B441C 01B37021 */ addu $t6, $t5, $s3 +/* 0E8F50 7F0B4420 AC2EFF94 */ sw $t6, %lo(dword_CODE_bss_8007FF94)($at) +.L7F0B4424: +/* 0E8F54 7F0B4424 8FC40000 */ lw $a0, ($fp) +/* 0E8F58 7F0B4428 00008025 */ move $s0, $zero +/* 0E8F5C 7F0B442C 8C8F0000 */ lw $t7, ($a0) +/* 0E8F60 7F0B4430 00801025 */ move $v0, $a0 +/* 0E8F64 7F0B4434 11E0000B */ beqz $t7, .L7F0B4464 +/* 0E8F68 7F0B4438 01E01825 */ move $v1, $t7 +/* 0E8F6C 7F0B443C 8EF80000 */ lw $t8, ($s7) +.L7F0B4440: +/* 0E8F70 7F0B4440 26100008 */ addiu $s0, $s0, 8 +/* 0E8F74 7F0B4444 0078C821 */ addu $t9, $v1, $t8 +/* 0E8F78 7F0B4448 03334021 */ addu $t0, $t9, $s3 +/* 0E8F7C 7F0B444C AC480000 */ sw $t0, ($v0) +/* 0E8F80 7F0B4450 8FC90000 */ lw $t1, ($fp) +/* 0E8F84 7F0B4454 01301021 */ addu $v0, $t1, $s0 +/* 0E8F88 7F0B4458 8C430000 */ lw $v1, ($v0) +/* 0E8F8C 7F0B445C 5460FFF8 */ bnezl $v1, .L7F0B4440 +/* 0E8F90 7F0B4460 8EF80000 */ lw $t8, ($s7) +.L7F0B4464: +/* 0E8F94 7F0B4464 8E440000 */ lw $a0, ($s2) +/* 0E8F98 7F0B4468 50800019 */ beql $a0, $zero, .L7F0B44D0 +/* 0E8F9C 7F0B446C 8ED90000 */ lw $t9, ($s6) +/* 0E8FA0 7F0B4470 908A0000 */ lbu $t2, ($a0) +/* 0E8FA4 7F0B4474 00008025 */ move $s0, $zero +/* 0E8FA8 7F0B4478 00801825 */ move $v1, $a0 +/* 0E8FAC 7F0B447C 11400013 */ beqz $t2, .L7F0B44CC +/* 0E8FB0 7F0B4480 314200FF */ andi $v0, $t2, 0xff +/* 0E8FB4 7F0B4484 24110064 */ li $s1, 100 +.L7F0B4488: +/* 0E8FB8 7F0B4488 5622000C */ bnel $s1, $v0, .L7F0B44BC +/* 0E8FBC 7F0B448C 90620008 */ lbu $v0, 8($v1) +/* 0E8FC0 7F0B4490 8C6B0004 */ lw $t3, 4($v1) +/* 0E8FC4 7F0B4494 8EEC0000 */ lw $t4, ($s7) +/* 0E8FC8 7F0B4498 016C6821 */ addu $t5, $t3, $t4 +/* 0E8FCC 7F0B449C 0FC2D7A2 */ jal sub_GAME_7F0B5E88 +/* 0E8FD0 7F0B44A0 01B32021 */ addu $a0, $t5, $s3 +/* 0E8FD4 7F0B44A4 8E4E0000 */ lw $t6, ($s2) +/* 0E8FD8 7F0B44A8 01D07821 */ addu $t7, $t6, $s0 +/* 0E8FDC 7F0B44AC ADE20004 */ sw $v0, 4($t7) +/* 0E8FE0 7F0B44B0 8E580000 */ lw $t8, ($s2) +/* 0E8FE4 7F0B44B4 03101821 */ addu $v1, $t8, $s0 +/* 0E8FE8 7F0B44B8 90620008 */ lbu $v0, 8($v1) +.L7F0B44BC: +/* 0E8FEC 7F0B44BC 26100008 */ addiu $s0, $s0, 8 +/* 0E8FF0 7F0B44C0 24630008 */ addiu $v1, $v1, 8 +/* 0E8FF4 7F0B44C4 1440FFF0 */ bnez $v0, .L7F0B4488 +/* 0E8FF8 7F0B44C8 00000000 */ nop +.L7F0B44CC: +/* 0E8FFC 7F0B44CC 8ED90000 */ lw $t9, ($s6) +.L7F0B44D0: +/* 0E9000 7F0B44D0 3C108004 */ lui $s0, %hi(array_room_info + 0x10 +0x40) +/* 0E9004 7F0B44D4 26101464 */ addiu $s0, %lo(array_room_info + 0x10 +0x40) # addiu $s0, $s0, 0x1464 +/* 0E9008 7F0B44D8 2B210002 */ slti $at, $t9, 2 +/* 0E900C 7F0B44DC 14200064 */ bnez $at, .L7F0B4670 +/* 0E9010 7F0B44E0 24110001 */ li $s1, 1 +/* 0E9014 7F0B44E4 8EA40000 */ lw $a0, ($s5) +/* 0E9018 7F0B44E8 24130018 */ li $s3, 24 +/* 0E901C 7F0B44EC 2417FFFF */ li $s7, -1 +/* 0E9020 7F0B44F0 24840018 */ addiu $a0, $a0, 0x18 +.L7F0B44F4: +/* 0E9024 7F0B44F4 A2000002 */ sb $zero, 2($s0) +/* 0E9028 7F0B44F8 A2000035 */ sb $zero, 0x35($s0) +/* 0E902C 7F0B44FC 8C880004 */ lw $t0, 4($a0) +/* 0E9030 7F0B4500 26320001 */ addiu $s2, $s1, 1 +/* 0E9034 7F0B4504 51000020 */ beql $t0, $zero, .L7F0B4588 +/* 0E9038 7F0B4508 AE000014 */ sw $zero, 0x14($s0) +/* 0E903C 7F0B450C 26320001 */ addiu $s2, $s1, 1 +/* 0E9040 7F0B4510 0FC2D00D */ jal sub_GAME_7F0B4034 +/* 0E9044 7F0B4514 02402025 */ move $a0, $s2 +/* 0E9048 7F0B4518 02202025 */ move $a0, $s1 +/* 0E904C 7F0B451C 0FC2D021 */ jal sub_GAME_7F0B4084 +/* 0E9050 7F0B4520 AFA20068 */ sw $v0, 0x68($sp) +/* 0E9054 7F0B4524 8FA50068 */ lw $a1, 0x68($sp) +/* 0E9058 7F0B4528 0045082A */ slt $at, $v0, $a1 +/* 0E905C 7F0B452C 1420000B */ bnez $at, .L7F0B455C +/* 0E9060 7F0B4530 00000000 */ nop +/* 0E9064 7F0B4534 00B40019 */ multu $a1, $s4 +/* 0E9068 7F0B4538 8EA30000 */ lw $v1, ($s5) +/* 0E906C 7F0B453C 00732021 */ addu $a0, $v1, $s3 +/* 0E9070 7F0B4540 8C8C0004 */ lw $t4, 4($a0) +/* 0E9074 7F0B4544 00004812 */ mflo $t1 +/* 0E9078 7F0B4548 00695021 */ addu $t2, $v1, $t1 +/* 0E907C 7F0B454C 8D4B0004 */ lw $t3, 4($t2) +/* 0E9080 7F0B4550 016C6823 */ subu $t5, $t3, $t4 +/* 0E9084 7F0B4554 1000000C */ b .L7F0B4588 +/* 0E9088 7F0B4558 AE0D0014 */ sw $t5, 0x14($s0) +.L7F0B455C: +/* 0E908C 7F0B455C 00540019 */ multu $v0, $s4 +/* 0E9090 7F0B4560 8EA30000 */ lw $v1, ($s5) +/* 0E9094 7F0B4564 00732021 */ addu $a0, $v1, $s3 +/* 0E9098 7F0B4568 8C990004 */ lw $t9, 4($a0) +/* 0E909C 7F0B456C 00007012 */ mflo $t6 +/* 0E90A0 7F0B4570 006E7821 */ addu $t7, $v1, $t6 +/* 0E90A4 7F0B4574 8DF80008 */ lw $t8, 8($t7) +/* 0E90A8 7F0B4578 03194023 */ subu $t0, $t8, $t9 +/* 0E90AC 7F0B457C 10000002 */ b .L7F0B4588 +/* 0E90B0 7F0B4580 AE080014 */ sw $t0, 0x14($s0) +/* 0E90B4 7F0B4584 AE000014 */ sw $zero, 0x14($s0) +.L7F0B4588: +/* 0E90B8 7F0B4588 8C890008 */ lw $t1, 8($a0) +/* 0E90BC 7F0B458C 5120001E */ beql $t1, $zero, .L7F0B4608 +/* 0E90C0 7F0B4590 AE000018 */ sw $zero, 0x18($s0) +/* 0E90C4 7F0B4594 0FC2D00D */ jal sub_GAME_7F0B4034 +/* 0E90C8 7F0B4598 02402025 */ move $a0, $s2 +/* 0E90CC 7F0B459C 00408825 */ move $s1, $v0 +/* 0E90D0 7F0B45A0 0FC2D021 */ jal sub_GAME_7F0B4084 +/* 0E90D4 7F0B45A4 02402025 */ move $a0, $s2 +/* 0E90D8 7F0B45A8 0051082A */ slt $at, $v0, $s1 +/* 0E90DC 7F0B45AC 1420000B */ bnez $at, .L7F0B45DC +/* 0E90E0 7F0B45B0 00000000 */ nop +/* 0E90E4 7F0B45B4 02340019 */ multu $s1, $s4 +/* 0E90E8 7F0B45B8 8EA30000 */ lw $v1, ($s5) +/* 0E90EC 7F0B45BC 00732021 */ addu $a0, $v1, $s3 +/* 0E90F0 7F0B45C0 8C8D0008 */ lw $t5, 8($a0) +/* 0E90F4 7F0B45C4 00005012 */ mflo $t2 +/* 0E90F8 7F0B45C8 006A5821 */ addu $t3, $v1, $t2 +/* 0E90FC 7F0B45CC 8D6C0004 */ lw $t4, 4($t3) +/* 0E9100 7F0B45D0 018D7023 */ subu $t6, $t4, $t5 +/* 0E9104 7F0B45D4 1000000C */ b .L7F0B4608 +/* 0E9108 7F0B45D8 AE0E0018 */ sw $t6, 0x18($s0) +.L7F0B45DC: +/* 0E910C 7F0B45DC 00540019 */ multu $v0, $s4 +/* 0E9110 7F0B45E0 8EA30000 */ lw $v1, ($s5) +/* 0E9114 7F0B45E4 00732021 */ addu $a0, $v1, $s3 +/* 0E9118 7F0B45E8 8C880008 */ lw $t0, 8($a0) +/* 0E911C 7F0B45EC 00007812 */ mflo $t7 +/* 0E9120 7F0B45F0 006FC021 */ addu $t8, $v1, $t7 +/* 0E9124 7F0B45F4 8F190008 */ lw $t9, 8($t8) +/* 0E9128 7F0B45F8 03284823 */ subu $t1, $t9, $t0 +/* 0E912C 7F0B45FC 10000002 */ b .L7F0B4608 +/* 0E9130 7F0B4600 AE090018 */ sw $t1, 0x18($s0) +/* 0E9134 7F0B4604 AE000018 */ sw $zero, 0x18($s0) +.L7F0B4608: +/* 0E9138 7F0B4608 8C8A0000 */ lw $t2, ($a0) +/* 0E913C 7F0B460C 5140000F */ beql $t2, $zero, .L7F0B464C +/* 0E9140 7F0B4610 AE000010 */ sw $zero, 0x10($s0) +/* 0E9144 7F0B4614 0FC2D035 */ jal sub_GAME_7F0B40D4 +/* 0E9148 7F0B4618 02402025 */ move $a0, $s2 +/* 0E914C 7F0B461C 00540019 */ multu $v0, $s4 +/* 0E9150 7F0B4620 8EA30000 */ lw $v1, ($s5) +/* 0E9154 7F0B4624 8EC50000 */ lw $a1, ($s6) +/* 0E9158 7F0B4628 00732021 */ addu $a0, $v1, $s3 +/* 0E915C 7F0B462C 8C8E0000 */ lw $t6, ($a0) +/* 0E9160 7F0B4630 00005812 */ mflo $t3 +/* 0E9164 7F0B4634 006B6021 */ addu $t4, $v1, $t3 +/* 0E9168 7F0B4638 8D8D0000 */ lw $t5, ($t4) +/* 0E916C 7F0B463C 01AE7823 */ subu $t7, $t5, $t6 +/* 0E9170 7F0B4640 10000003 */ b .L7F0B4650 +/* 0E9174 7F0B4644 AE0F0010 */ sw $t7, 0x10($s0) +/* 0E9178 7F0B4648 AE000010 */ sw $zero, 0x10($s0) +.L7F0B464C: +/* 0E917C 7F0B464C 8EC50000 */ lw $a1, ($s6) +.L7F0B4650: +/* 0E9180 7F0B4650 0245082A */ slt $at, $s2, $a1 +/* 0E9184 7F0B4654 02408825 */ move $s1, $s2 +/* 0E9188 7F0B4658 26100050 */ addiu $s0, $s0, 0x50 +/* 0E918C 7F0B465C 26730018 */ addiu $s3, $s3, 0x18 +/* 0E9190 7F0B4660 24840018 */ addiu $a0, $a0, 0x18 +/* 0E9194 7F0B4664 1420FFA3 */ bnez $at, .L7F0B44F4 +/* 0E9198 7F0B4668 AE17FFD8 */ sw $s7, -0x28($s0) +/* 0E919C 7F0B466C 24110001 */ li $s1, 1 +.L7F0B4670: +/* 0E91A0 7F0B4670 0FC2F14C */ jal sub_GAME_7F0BC530 +/* 0E91A4 7F0B4674 00000000 */ nop +/* 0E91A8 7F0B4678 8ED80000 */ lw $t8, ($s6) +/* 0E91AC 7F0B467C 2B010002 */ slti $at, $t8, 2 +/* 0E91B0 7F0B4680 54200009 */ bnezl $at, .L7F0B46A8 +/* 0E91B4 7F0B4684 8FC40000 */ lw $a0, ($fp) +.L7F0B4688: +/* 0E91B8 7F0B4688 0FC2E4CE */ jal sub_GAME_7F0B9338 +/* 0E91BC 7F0B468C 02202025 */ move $a0, $s1 +/* 0E91C0 7F0B4690 8ED90000 */ lw $t9, ($s6) +/* 0E91C4 7F0B4694 26310001 */ addiu $s1, $s1, 1 +/* 0E91C8 7F0B4698 0239082A */ slt $at, $s1, $t9 +/* 0E91CC 7F0B469C 1420FFFA */ bnez $at, .L7F0B4688 +/* 0E91D0 7F0B46A0 00000000 */ nop +/* 0E91D4 7F0B46A4 8FC40000 */ lw $a0, ($fp) +.L7F0B46A8: +/* 0E91D8 7F0B46A8 3C038004 */ lui $v1, %hi(D_800443C4) +/* 0E91DC 7F0B46AC 246343C4 */ addiu $v1, %lo(D_800443C4) # addiu $v1, $v1, 0x43c4 +/* 0E91E0 7F0B46B0 8C820000 */ lw $v0, ($a0) +/* 0E91E4 7F0B46B4 00008825 */ move $s1, $zero +/* 0E91E8 7F0B46B8 00008025 */ move $s0, $zero +/* 0E91EC 7F0B46BC 10400010 */ beqz $v0, .L7F0B4700 +/* 0E91F0 7F0B46C0 00000000 */ nop +/* 0E91F4 7F0B46C4 02202025 */ move $a0, $s1 +.L7F0B46C8: +/* 0E91F8 7F0B46C8 0FC2E64F */ jal sub_GAME_7F0B993C +/* 0E91FC 7F0B46CC AFA3004C */ sw $v1, 0x4c($sp) +/* 0E9200 7F0B46D0 8FC40000 */ lw $a0, ($fp) +/* 0E9204 7F0B46D4 8FA3004C */ lw $v1, 0x4c($sp) +/* 0E9208 7F0B46D8 26100008 */ addiu $s0, $s0, 8 +/* 0E920C 7F0B46DC 00904021 */ addu $t0, $a0, $s0 +/* 0E9210 7F0B46E0 A0620000 */ sb $v0, ($v1) +/* 0E9214 7F0B46E4 8D090000 */ lw $t1, ($t0) +/* 0E9218 7F0B46E8 26310001 */ addiu $s1, $s1, 1 +/* 0E921C 7F0B46EC 24630001 */ addiu $v1, $v1, 1 +/* 0E9220 7F0B46F0 5520FFF5 */ bnezl $t1, .L7F0B46C8 +/* 0E9224 7F0B46F4 02202025 */ move $a0, $s1 +/* 0E9228 7F0B46F8 00008825 */ move $s1, $zero +/* 0E922C 7F0B46FC 8C820000 */ lw $v0, ($a0) +.L7F0B4700: +/* 0E9230 7F0B4700 1040000B */ beqz $v0, .L7F0B4730 +/* 0E9234 7F0B4704 00008025 */ move $s0, $zero +.L7F0B4708: +/* 0E9238 7F0B4708 0FC2E6E5 */ jal sub_GAME_7F0B9B94 +/* 0E923C 7F0B470C 02202025 */ move $a0, $s1 +/* 0E9240 7F0B4710 8FC40000 */ lw $a0, ($fp) +/* 0E9244 7F0B4714 26100008 */ addiu $s0, $s0, 8 +/* 0E9248 7F0B4718 26310001 */ addiu $s1, $s1, 1 +/* 0E924C 7F0B471C 00905021 */ addu $t2, $a0, $s0 +/* 0E9250 7F0B4720 8D4B0000 */ lw $t3, ($t2) +/* 0E9254 7F0B4724 1560FFF8 */ bnez $t3, .L7F0B4708 +/* 0E9258 7F0B4728 00000000 */ nop +/* 0E925C 7F0B472C 00008825 */ move $s1, $zero +.L7F0B4730: +/* 0E9260 7F0B4730 8ECC0000 */ lw $t4, ($s6) +/* 0E9264 7F0B4734 5980000A */ blezl $t4, .L7F0B4760 +/* 0E9268 7F0B4738 8C8E0000 */ lw $t6, ($a0) +.L7F0B473C: +/* 0E926C 7F0B473C 0FC2E576 */ jal sub_GAME_7F0B95D8 +/* 0E9270 7F0B4740 02202025 */ move $a0, $s1 +/* 0E9274 7F0B4744 8ECD0000 */ lw $t5, ($s6) +/* 0E9278 7F0B4748 26310001 */ addiu $s1, $s1, 1 +/* 0E927C 7F0B474C 022D082A */ slt $at, $s1, $t5 +/* 0E9280 7F0B4750 1420FFFA */ bnez $at, .L7F0B473C +/* 0E9284 7F0B4754 00000000 */ nop +/* 0E9288 7F0B4758 8FC40000 */ lw $a0, ($fp) +/* 0E928C 7F0B475C 8C8E0000 */ lw $t6, ($a0) +.L7F0B4760: +/* 0E9290 7F0B4760 00008025 */ move $s0, $zero +/* 0E9294 7F0B4764 00801025 */ move $v0, $a0 +/* 0E9298 7F0B4768 11C0000A */ beqz $t6, .L7F0B4794 +/* 0E929C 7F0B476C 00000000 */ nop +/* 0E92A0 7F0B4770 904F0006 */ lbu $t7, 6($v0) +.L7F0B4774: +/* 0E92A4 7F0B4774 26100008 */ addiu $s0, $s0, 8 +/* 0E92A8 7F0B4778 31F800FE */ andi $t8, $t7, 0xfe +/* 0E92AC 7F0B477C A0580006 */ sb $t8, 6($v0) +/* 0E92B0 7F0B4780 8FD90000 */ lw $t9, ($fp) +/* 0E92B4 7F0B4784 03301021 */ addu $v0, $t9, $s0 +/* 0E92B8 7F0B4788 8C480000 */ lw $t0, ($v0) +/* 0E92BC 7F0B478C 5500FFF9 */ bnezl $t0, .L7F0B4774 +/* 0E92C0 7F0B4790 904F0006 */ lbu $t7, 6($v0) +.L7F0B4794: +/* 0E92C4 7F0B4794 0FC2CDFB */ jal sub_GAME_7F0B37EC +/* 0E92C8 7F0B4798 00000000 */ nop +.L7F0B479C: +/* 0E92CC 7F0B479C 0FC2EA97 */ jal sub_GAME_7F0BAA5C +/* 0E92D0 7F0B47A0 8FA400B8 */ lw $a0, 0xb8($sp) +/* 0E92D4 7F0B47A4 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E92D8 7F0B47A8 240900C8 */ li $t1, 200 +/* 0E92DC 7F0B47AC 3C018004 */ lui $at, %hi(D_800442F8) +/* 0E92E0 7F0B47B0 8FB00018 */ lw $s0, 0x18($sp) +/* 0E92E4 7F0B47B4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0E92E8 7F0B47B8 8FB20020 */ lw $s2, 0x20($sp) +/* 0E92EC 7F0B47BC 8FB30024 */ lw $s3, 0x24($sp) +/* 0E92F0 7F0B47C0 8FB40028 */ lw $s4, 0x28($sp) +/* 0E92F4 7F0B47C4 8FB5002C */ lw $s5, 0x2c($sp) +/* 0E92F8 7F0B47C8 8FB60030 */ lw $s6, 0x30($sp) +/* 0E92FC 7F0B47CC 8FB70034 */ lw $s7, 0x34($sp) +/* 0E9300 7F0B47D0 8FBE0038 */ lw $fp, 0x38($sp) +/* 0E9304 7F0B47D4 AC2942F8 */ sw $t1, %lo(D_800442F8)($at) +/* 0E9308 7F0B47D8 03E00008 */ jr $ra +/* 0E930C 7F0B47DC 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B47E0(void) { + sub_GAME_7F0B667C(); + sub_GAME_7F058C4C(1.0); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B47E0 +/* 0E9310 7F0B47E0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E9314 7F0B47E4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E9318 7F0B47E8 0FC2D99F */ jal sub_GAME_7F0B667C +/* 0E931C 7F0B47EC 00000000 */ nop +/* 0E9320 7F0B47F0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E9324 7F0B47F4 44816000 */ mtc1 $at, $f12 +/* 0E9328 7F0B47F8 0FC16313 */ jal sub_GAME_7F058C4C +/* 0E932C 7F0B47FC 00000000 */ nop +/* 0E9330 7F0B4800 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E9334 7F0B4804 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E9338 7F0B4808 03E00008 */ jr $ra +/* 0E933C 7F0B480C 00000000 */ nop +) +#endif + + + + + + +void sub_GAME_7F0B4810(f32 arg0) { + room_data_float1 = arg0; + room_data_float2 = (f32) (1.0f / arg0); +} + + +f32 get_room_data_float2(void){ + return room_data_float2; +} + +f32 get_room_data_float1(void){ + return room_data_float1; +} + + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B4848(void) { + void *temp_v0; + + temp_v0 = ((D_80041400 * 0x18) + &levelinfotable); + return (temp_v0->unk14 / temp_v0->unkC); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B4848 +/* 0E9378 7F0B4848 3C0E8004 */ lui $t6, %hi(D_80041400) +/* 0E937C 7F0B484C 8DCE1400 */ lw $t6, %lo(D_80041400)($t6) +/* 0E9380 7F0B4850 3C188004 */ lui $t8, %hi(levelinfotable) +/* 0E9384 7F0B4854 2718448C */ addiu $t8, %lo(levelinfotable) # addiu $t8, $t8, 0x448c +/* 0E9388 7F0B4858 000E7880 */ sll $t7, $t6, 2 +/* 0E938C 7F0B485C 01EE7823 */ subu $t7, $t7, $t6 +/* 0E9390 7F0B4860 000F78C0 */ sll $t7, $t7, 3 +/* 0E9394 7F0B4864 01F81021 */ addu $v0, $t7, $t8 +/* 0E9398 7F0B4868 C4440014 */ lwc1 $f4, 0x14($v0) +/* 0E939C 7F0B486C C446000C */ lwc1 $f6, 0xc($v0) +/* 0E93A0 7F0B4870 03E00008 */ jr $ra +/* 0E93A4 7F0B4874 46062003 */ div.s $f0, $f4, $f6 +) +#endif + + + + + +f32 sub_GAME_7F0B4878(void) { + return D_800413FC; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B4884(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80058C58*/ +glabel jpt_80058C58 +.word .L7F0B4914 +.word .L7F0B4914 +.word .L7F0B4914 +.word .L7F0B491C +.word .L7F0B491C +.word .L7F0B491C +.word .L7F0B4914 +.word .L7F0B491C +.word .L7F0B4914 + +.text +glabel sub_GAME_7F0B4884 +/* 0E93B4 7F0B4884 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0E93B8 7F0B4888 AFBF003C */ sw $ra, 0x3c($sp) +/* 0E93BC 7F0B488C AFB60030 */ sw $s6, 0x30($sp) +/* 0E93C0 7F0B4890 3C018008 */ lui $at, %hi(num_visible_rooms_in_cur_global_vis_packet) +/* 0E93C4 7F0B4894 AFBE0038 */ sw $fp, 0x38($sp) +/* 0E93C8 7F0B4898 AFB70034 */ sw $s7, 0x34($sp) +/* 0E93CC 7F0B489C AFB5002C */ sw $s5, 0x2c($sp) +/* 0E93D0 7F0B48A0 AFB40028 */ sw $s4, 0x28($sp) +/* 0E93D4 7F0B48A4 AFB30024 */ sw $s3, 0x24($sp) +/* 0E93D8 7F0B48A8 AFB20020 */ sw $s2, 0x20($sp) +/* 0E93DC 7F0B48AC AFB1001C */ sw $s1, 0x1c($sp) +/* 0E93E0 7F0B48B0 AFB00018 */ sw $s0, 0x18($sp) +/* 0E93E4 7F0B48B4 2416FFFF */ li $s6, -1 +/* 0E93E8 7F0B48B8 0FC26C54 */ jal get_cur_playernum +/* 0E93EC 7F0B48BC AC20C038 */ sw $zero, %lo(num_visible_rooms_in_cur_global_vis_packet)($at) +/* 0E93F0 7F0B48C0 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 0E93F4 7F0B48C4 00402025 */ move $a0, $v0 +/* 0E93F8 7F0B48C8 14400003 */ bnez $v0, .L7F0B48D8 +/* 0E93FC 7F0B48CC 00000000 */ nop +/* 0E9400 7F0B48D0 0FC2D9BA */ jal sub_GAME_7F0B66E8 +/* 0E9404 7F0B48D4 00000000 */ nop +.L7F0B48D8: +/* 0E9408 7F0B48D8 0FC1E94A */ jal get_camera_mode +/* 0E940C 7F0B48DC 00000000 */ nop +/* 0E9410 7F0B48E0 3C038004 */ lui $v1, %hi(D_800442F8) +/* 0E9414 7F0B48E4 244FFFFF */ addiu $t7, $v0, -1 +/* 0E9418 7F0B48E8 246342F8 */ addiu $v1, %lo(D_800442F8) # addiu $v1, $v1, 0x42f8 +/* 0E941C 7F0B48EC 240E0003 */ li $t6, 3 +/* 0E9420 7F0B48F0 2DE10009 */ sltiu $at, $t7, 9 +/* 0E9424 7F0B48F4 10200009 */ beqz $at, .L7F0B491C +/* 0E9428 7F0B48F8 AC6E0000 */ sw $t6, ($v1) +/* 0E942C 7F0B48FC 000F7880 */ sll $t7, $t7, 2 +/* 0E9430 7F0B4900 3C018006 */ lui $at, %hi(jpt_80058C58) +/* 0E9434 7F0B4904 002F0821 */ addu $at, $at, $t7 +/* 0E9438 7F0B4908 8C2F8C58 */ lw $t7, %lo(jpt_80058C58)($at) +.L7F0B490C: +/* 0E943C 7F0B490C 01E00008 */ jr $t7 +/* 0E9440 7F0B4910 00000000 */ nop +.L7F0B4914: +/* 0E9444 7F0B4914 241800C8 */ li $t8, 200 +/* 0E9448 7F0B4918 AC780000 */ sw $t8, ($v1) +def_7F0B490C: +.L7F0B491C: +/* 0E944C 7F0B491C 0FC227E6 */ jal get_cur_players_room +/* 0E9450 7F0B4920 00000000 */ nop +/* 0E9454 7F0B4924 3C018004 */ lui $at, %hi(current_room_maybe) +/* 0E9458 7F0B4928 00409825 */ move $s3, $v0 +/* 0E945C 7F0B492C 0FC227F5 */ jal get_BONDdata_position +/* 0E9460 7F0B4930 AC224838 */ sw $v0, %lo(current_room_maybe)($at) +/* 0E9464 7F0B4934 0FC22800 */ jal get_BONDdata_position3 +/* 0E9468 7F0B4938 0040A025 */ move $s4, $v0 +/* 0E946C 7F0B493C 3C038008 */ lui $v1, %hi(ptr_bgdata_portals) +/* 0E9470 7F0B4940 0040A825 */ move $s5, $v0 +/* 0E9474 7F0B4944 8C63FF80 */ lw $v1, %lo(ptr_bgdata_portals)($v1) +/* 0E9478 7F0B4948 0000B825 */ move $s7, $zero +/* 0E947C 7F0B494C 241E000B */ li $fp, 11 +/* 0E9480 7F0B4950 8C790000 */ lw $t9, ($v1) +.L7F0B4954: +/* 0E9484 7F0B4954 3C128004 */ lui $s2, %hi(D_800443C4) +/* 0E9488 7F0B4958 265243C4 */ addiu $s2, %lo(D_800443C4) # addiu $s2, $s2, 0x43c4 +/* 0E948C 7F0B495C 13200025 */ beqz $t9, .L7F0B49F4 +/* 0E9490 7F0B4960 00008025 */ move $s0, $zero +/* 0E9494 7F0B4964 00008825 */ move $s1, $zero +/* 0E9498 7F0B4968 00601025 */ move $v0, $v1 +.L7F0B496C: +/* 0E949C 7F0B496C 92480000 */ lbu $t0, ($s2) +/* 0E94A0 7F0B4970 5500001B */ bnezl $t0, .L7F0B49E0 +/* 0E94A4 7F0B4974 8C4E0008 */ lw $t6, 8($v0) +/* 0E94A8 7F0B4978 52160019 */ beql $s0, $s6, .L7F0B49E0 +/* 0E94AC 7F0B497C 8C4E0008 */ lw $t6, 8($v0) +/* 0E94B0 7F0B4980 90490004 */ lbu $t1, 4($v0) +/* 0E94B4 7F0B4984 02002025 */ move $a0, $s0 +/* 0E94B8 7F0B4988 02802825 */ move $a1, $s4 +/* 0E94BC 7F0B498C 12690004 */ beq $s3, $t1, .L7F0B49A0 +/* 0E94C0 7F0B4990 00000000 */ nop +/* 0E94C4 7F0B4994 904A0005 */ lbu $t2, 5($v0) +/* 0E94C8 7F0B4998 166A000D */ bne $s3, $t2, .L7F0B49D0 +/* 0E94CC 7F0B499C 00000000 */ nop +.L7F0B49A0: +/* 0E94D0 7F0B49A0 0FC2E7C5 */ jal sub_GAME_7F0B9F14 +/* 0E94D4 7F0B49A4 02A03025 */ move $a2, $s5 +/* 0E94D8 7F0B49A8 10400009 */ beqz $v0, .L7F0B49D0 +/* 0E94DC 7F0B49AC 3C038008 */ lui $v1, %hi(ptr_bgdata_portals) +/* 0E94E0 7F0B49B0 8C63FF80 */ lw $v1, %lo(ptr_bgdata_portals)($v1) +/* 0E94E4 7F0B49B4 0200B025 */ move $s6, $s0 +/* 0E94E8 7F0B49B8 00711021 */ addu $v0, $v1, $s1 +/* 0E94EC 7F0B49BC 904C0004 */ lbu $t4, 4($v0) +/* 0E94F0 7F0B49C0 904B0005 */ lbu $t3, 5($v0) +/* 0E94F4 7F0B49C4 026C6826 */ xor $t5, $s3, $t4 +/* 0E94F8 7F0B49C8 1000000A */ b .L7F0B49F4 +/* 0E94FC 7F0B49CC 016D9826 */ xor $s3, $t3, $t5 +.L7F0B49D0: +/* 0E9500 7F0B49D0 3C038008 */ lui $v1, %hi(ptr_bgdata_portals) +/* 0E9504 7F0B49D4 8C63FF80 */ lw $v1, %lo(ptr_bgdata_portals)($v1) +/* 0E9508 7F0B49D8 00711021 */ addu $v0, $v1, $s1 +/* 0E950C 7F0B49DC 8C4E0008 */ lw $t6, 8($v0) +.L7F0B49E0: +/* 0E9510 7F0B49E0 26100001 */ addiu $s0, $s0, 1 +/* 0E9514 7F0B49E4 26520001 */ addiu $s2, $s2, 1 +/* 0E9518 7F0B49E8 26310008 */ addiu $s1, $s1, 8 +/* 0E951C 7F0B49EC 15C0FFDF */ bnez $t6, .L7F0B496C +/* 0E9520 7F0B49F0 24420008 */ addiu $v0, $v0, 8 +.L7F0B49F4: +/* 0E9524 7F0B49F4 001078C0 */ sll $t7, $s0, 3 +/* 0E9528 7F0B49F8 006FC021 */ addu $t8, $v1, $t7 +/* 0E952C 7F0B49FC 8F190000 */ lw $t9, ($t8) +/* 0E9530 7F0B4A00 26F70001 */ addiu $s7, $s7, 1 +/* 0E9534 7F0B4A04 13200003 */ beqz $t9, .L7F0B4A14 +/* 0E9538 7F0B4A08 00000000 */ nop +/* 0E953C 7F0B4A0C 56FEFFD1 */ bnel $s7, $fp, .L7F0B4954 +/* 0E9540 7F0B4A10 8C790000 */ lw $t9, ($v1) +.L7F0B4A14: +/* 0E9544 7F0B4A14 3C018004 */ lui $at, %hi(current_room_maybe) +/* 0E9548 7F0B4A18 0FC2E29B */ jal sub_GAME_7F0B8A6C +/* 0E954C 7F0B4A1C AC334838 */ sw $s3, %lo(current_room_maybe)($at) +/* 0E9550 7F0B4A20 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E9554 7F0B4A24 8FB00018 */ lw $s0, 0x18($sp) +/* 0E9558 7F0B4A28 8FB1001C */ lw $s1, 0x1c($sp) +/* 0E955C 7F0B4A2C 8FB20020 */ lw $s2, 0x20($sp) +/* 0E9560 7F0B4A30 8FB30024 */ lw $s3, 0x24($sp) +/* 0E9564 7F0B4A34 8FB40028 */ lw $s4, 0x28($sp) +/* 0E9568 7F0B4A38 8FB5002C */ lw $s5, 0x2c($sp) +/* 0E956C 7F0B4A3C 8FB60030 */ lw $s6, 0x30($sp) +/* 0E9570 7F0B4A40 8FB70034 */ lw $s7, 0x34($sp) +/* 0E9574 7F0B4A44 8FBE0038 */ lw $fp, 0x38($sp) +/* 0E9578 7F0B4A48 03E00008 */ jr $ra +/* 0E957C 7F0B4A4C 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B4A50(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B4A50 +/* 0E9580 7F0B4A50 AFA50004 */ sw $a1, 4($sp) +/* 0E9584 7F0B4A54 908E0000 */ lbu $t6, ($a0) +/* 0E9588 7F0B4A58 240800FF */ li $t0, 255 +/* 0E958C 7F0B4A5C 30A600FF */ andi $a2, $a1, 0xff +/* 0E9590 7F0B4A60 110E000C */ beq $t0, $t6, .L7F0B4A94 +/* 0E9594 7F0B4A64 00001025 */ move $v0, $zero +/* 0E9598 7F0B4A68 00801821 */ addu $v1, $a0, $zero +/* 0E959C 7F0B4A6C 90850000 */ lbu $a1, ($a0) +/* 0E95A0 7F0B4A70 00C03825 */ move $a3, $a2 +.L7F0B4A74: +/* 0E95A4 7F0B4A74 10E5000D */ beq $a3, $a1, .L7F0B4AAC +/* 0E95A8 7F0B4A78 24420001 */ addiu $v0, $v0, 1 +/* 0E95AC 7F0B4A7C 28410010 */ slti $at, $v0, 0x10 +/* 0E95B0 7F0B4A80 10200004 */ beqz $at, .L7F0B4A94 +/* 0E95B4 7F0B4A84 24630001 */ addiu $v1, $v1, 1 +/* 0E95B8 7F0B4A88 90650000 */ lbu $a1, ($v1) +/* 0E95BC 7F0B4A8C 1505FFF9 */ bne $t0, $a1, .L7F0B4A74 +/* 0E95C0 7F0B4A90 00000000 */ nop +.L7F0B4A94: +/* 0E95C4 7F0B4A94 2841000F */ slti $at, $v0, 0xf +/* 0E95C8 7F0B4A98 10200004 */ beqz $at, .L7F0B4AAC +/* 0E95CC 7F0B4A9C 00821821 */ addu $v1, $a0, $v0 +/* 0E95D0 7F0B4AA0 240F00FF */ li $t7, 255 +/* 0E95D4 7F0B4AA4 A0660000 */ sb $a2, ($v1) +/* 0E95D8 7F0B4AA8 A06F0001 */ sb $t7, 1($v1) +.L7F0B4AAC: +/* 0E95DC 7F0B4AAC 03E00008 */ jr $ra +/* 0E95E0 7F0B4AB0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B4AB4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B4AB4 +/* 0E95E4 7F0B4AB4 27BDFEA0 */ addiu $sp, $sp, -0x160 +/* 0E95E8 7F0B4AB8 AFB5002C */ sw $s5, 0x2c($sp) +/* 0E95EC 7F0B4ABC 3C158008 */ lui $s5, %hi(ptr_bgdata_portals) +/* 0E95F0 7F0B4AC0 26B5FF80 */ addiu $s5, %lo(ptr_bgdata_portals) # addiu $s5, $s5, -0x80 +/* 0E95F4 7F0B4AC4 8EA80000 */ lw $t0, ($s5) +/* 0E95F8 7F0B4AC8 AFBF003C */ sw $ra, 0x3c($sp) +/* 0E95FC 7F0B4ACC AFBE0038 */ sw $fp, 0x38($sp) +/* 0E9600 7F0B4AD0 AFB70034 */ sw $s7, 0x34($sp) +/* 0E9604 7F0B4AD4 AFB60030 */ sw $s6, 0x30($sp) +/* 0E9608 7F0B4AD8 AFB40028 */ sw $s4, 0x28($sp) +/* 0E960C 7F0B4ADC AFB30024 */ sw $s3, 0x24($sp) +/* 0E9610 7F0B4AE0 AFB20020 */ sw $s2, 0x20($sp) +/* 0E9614 7F0B4AE4 AFB1001C */ sw $s1, 0x1c($sp) +/* 0E9618 7F0B4AE8 AFB00018 */ sw $s0, 0x18($sp) +/* 0E961C 7F0B4AEC AFA7016C */ sw $a3, 0x16c($sp) +/* 0E9620 7F0B4AF0 8D0E0000 */ lw $t6, ($t0) +/* 0E9624 7F0B4AF4 00809825 */ move $s3, $a0 +/* 0E9628 7F0B4AF8 00A0A025 */ move $s4, $a1 +/* 0E962C 7F0B4AFC 11C00013 */ beqz $t6, .L7F0B4B4C +/* 0E9630 7F0B4B00 00C0B025 */ move $s6, $a2 +/* 0E9634 7F0B4B04 27B1005C */ addiu $s1, $sp, 0x5c +/* 0E9638 7F0B4B08 00009025 */ move $s2, $zero +/* 0E963C 7F0B4B0C AFA0012C */ sw $zero, 0x12c($sp) +/* 0E9640 7F0B4B10 8FA4012C */ lw $a0, 0x12c($sp) +.L7F0B4B14: +/* 0E9644 7F0B4B14 02602825 */ move $a1, $s3 +/* 0E9648 7F0B4B18 0FC2E7C5 */ jal sub_GAME_7F0B9F14 +/* 0E964C 7F0B4B1C 02803025 */ move $a2, $s4 +/* 0E9650 7F0B4B20 A2220000 */ sb $v0, ($s1) +/* 0E9654 7F0B4B24 8FAF012C */ lw $t7, 0x12c($sp) +/* 0E9658 7F0B4B28 8EA80000 */ lw $t0, ($s5) +/* 0E965C 7F0B4B2C 26520008 */ addiu $s2, $s2, 8 +/* 0E9660 7F0B4B30 25F80001 */ addiu $t8, $t7, 1 +/* 0E9664 7F0B4B34 AFB8012C */ sw $t8, 0x12c($sp) +/* 0E9668 7F0B4B38 0112C821 */ addu $t9, $t0, $s2 +/* 0E966C 7F0B4B3C 8F290000 */ lw $t1, ($t9) +/* 0E9670 7F0B4B40 26310001 */ addiu $s1, $s1, 1 +/* 0E9674 7F0B4B44 5520FFF3 */ bnezl $t1, .L7F0B4B14 +/* 0E9678 7F0B4B48 8FA4012C */ lw $a0, 0x12c($sp) +.L7F0B4B4C: +/* 0E967C 7F0B4B4C 27A30150 */ addiu $v1, $sp, 0x150 +/* 0E9680 7F0B4B50 02C02025 */ move $a0, $s6 +/* 0E9684 7F0B4B54 27A20158 */ addiu $v0, $sp, 0x158 +.L7F0B4B58: +/* 0E9688 7F0B4B58 908A0000 */ lbu $t2, ($a0) +/* 0E968C 7F0B4B5C 24630001 */ addiu $v1, $v1, 1 +/* 0E9690 7F0B4B60 0062082B */ sltu $at, $v1, $v0 +/* 0E9694 7F0B4B64 24840001 */ addiu $a0, $a0, 1 +/* 0E9698 7F0B4B68 1420FFFB */ bnez $at, .L7F0B4B58 +/* 0E969C 7F0B4B6C A06AFFFF */ sb $t2, -1($v1) +/* 0E96A0 7F0B4B70 02C02025 */ move $a0, $s6 +/* 0E96A4 7F0B4B74 27A20130 */ addiu $v0, $sp, 0x130 +/* 0E96A8 7F0B4B78 27A30138 */ addiu $v1, $sp, 0x138 +.L7F0B4B7C: +/* 0E96AC 7F0B4B7C 908B0000 */ lbu $t3, ($a0) +/* 0E96B0 7F0B4B80 24420001 */ addiu $v0, $v0, 1 +/* 0E96B4 7F0B4B84 0043082B */ sltu $at, $v0, $v1 +/* 0E96B8 7F0B4B88 24840001 */ addiu $a0, $a0, 1 +/* 0E96BC 7F0B4B8C 1420FFFB */ bnez $at, .L7F0B4B7C +/* 0E96C0 7F0B4B90 A04BFFFF */ sb $t3, -1($v0) +/* 0E96C4 7F0B4B94 93AC0150 */ lbu $t4, 0x150($sp) +/* 0E96C8 7F0B4B98 240500FF */ li $a1, 255 +/* 0E96CC 7F0B4B9C AFA00124 */ sw $zero, 0x124($sp) +/* 0E96D0 7F0B4BA0 10AC0009 */ beq $a1, $t4, .L7F0B4BC8 +/* 0E96D4 7F0B4BA4 27BE0160 */ addiu $fp, $sp, 0x160 +/* 0E96D8 7F0B4BA8 27A30150 */ addiu $v1, $sp, 0x150 +/* 0E96DC 7F0B4BAC 27A20160 */ addiu $v0, $sp, 0x160 +/* 0E96E0 7F0B4BB0 906D0001 */ lbu $t5, 1($v1) +.L7F0B4BB4: +/* 0E96E4 7F0B4BB4 24630001 */ addiu $v1, $v1, 1 +/* 0E96E8 7F0B4BB8 50AD0004 */ beql $a1, $t5, .L7F0B4BCC +/* 0E96EC 7F0B4BBC AFA00124 */ sw $zero, 0x124($sp) +/* 0E96F0 7F0B4BC0 5462FFFC */ bnel $v1, $v0, .L7F0B4BB4 +/* 0E96F4 7F0B4BC4 906D0001 */ lbu $t5, 1($v1) +.L7F0B4BC8: +/* 0E96F8 7F0B4BC8 AFA00124 */ sw $zero, 0x124($sp) +.L7F0B4BCC: +/* 0E96FC 7F0B4BCC 24170002 */ li $s7, 2 +/* 0E9700 7F0B4BD0 24160001 */ li $s6, 1 +/* 0E9704 7F0B4BD4 27B40130 */ addiu $s4, $sp, 0x130 +/* 0E9708 7F0B4BD8 27B30140 */ addiu $s3, $sp, 0x140 +.L7F0B4BDC: +/* 0E970C 7F0B4BDC 240E00FF */ li $t6, 255 +/* 0E9710 7F0B4BE0 A3AE0140 */ sb $t6, 0x140($sp) +/* 0E9714 7F0B4BE4 AFA0012C */ sw $zero, 0x12c($sp) +/* 0E9718 7F0B4BE8 8D0F0000 */ lw $t7, ($t0) +/* 0E971C 7F0B4BEC 00009025 */ move $s2, $zero +/* 0E9720 7F0B4BF0 01001825 */ move $v1, $t0 +/* 0E9724 7F0B4BF4 51E0003D */ beql $t7, $zero, .L7F0B4CEC +/* 0E9728 7F0B4BF8 93A40140 */ lbu $a0, 0x140($sp) +/* 0E972C 7F0B4BFC 93B80150 */ lbu $t8, 0x150($sp) +.L7F0B4C00: +/* 0E9730 7F0B4C00 8FB9012C */ lw $t9, 0x12c($sp) +/* 0E9734 7F0B4C04 27A9005C */ addiu $t1, $sp, 0x5c +/* 0E9738 7F0B4C08 10B8002E */ beq $a1, $t8, .L7F0B4CC4 +/* 0E973C 7F0B4C0C 03298821 */ addu $s1, $t9, $t1 +/* 0E9740 7F0B4C10 27AA0150 */ addiu $t2, $sp, 0x150 +/* 0E9744 7F0B4C14 000A8021 */ addu $s0, $zero, $t2 +/* 0E9748 7F0B4C18 92220000 */ lbu $v0, ($s1) +.L7F0B4C1C: +/* 0E974C 7F0B4C1C 16C20011 */ bne $s6, $v0, .L7F0B4C64 +/* 0E9750 7F0B4C20 00000000 */ nop +/* 0E9754 7F0B4C24 906B0004 */ lbu $t3, 4($v1) +/* 0E9758 7F0B4C28 920C0000 */ lbu $t4, ($s0) +/* 0E975C 7F0B4C2C 02602025 */ move $a0, $s3 +/* 0E9760 7F0B4C30 156C000C */ bne $t3, $t4, .L7F0B4C64 +/* 0E9764 7F0B4C34 00000000 */ nop +/* 0E9768 7F0B4C38 0FC2D294 */ jal sub_GAME_7F0B4A50 +/* 0E976C 7F0B4C3C 90650005 */ lbu $a1, 5($v1) +/* 0E9770 7F0B4C40 8EAD0000 */ lw $t5, ($s5) +/* 0E9774 7F0B4C44 02802025 */ move $a0, $s4 +/* 0E9778 7F0B4C48 01B27021 */ addu $t6, $t5, $s2 +/* 0E977C 7F0B4C4C 0FC2D294 */ jal sub_GAME_7F0B4A50 +/* 0E9780 7F0B4C50 91C50005 */ lbu $a1, 5($t6) +/* 0E9784 7F0B4C54 8EA80000 */ lw $t0, ($s5) +/* 0E9788 7F0B4C58 A2200000 */ sb $zero, ($s1) +/* 0E978C 7F0B4C5C 300200FF */ andi $v0, $zero, 0xff +/* 0E9790 7F0B4C60 01121821 */ addu $v1, $t0, $s2 +.L7F0B4C64: +/* 0E9794 7F0B4C64 56E20011 */ bnel $s7, $v0, .L7F0B4CAC +/* 0E9798 7F0B4C68 920A0001 */ lbu $t2, 1($s0) +/* 0E979C 7F0B4C6C 906F0005 */ lbu $t7, 5($v1) +/* 0E97A0 7F0B4C70 92180000 */ lbu $t8, ($s0) +/* 0E97A4 7F0B4C74 02602025 */ move $a0, $s3 +/* 0E97A8 7F0B4C78 55F8000C */ bnel $t7, $t8, .L7F0B4CAC +/* 0E97AC 7F0B4C7C 920A0001 */ lbu $t2, 1($s0) +/* 0E97B0 7F0B4C80 0FC2D294 */ jal sub_GAME_7F0B4A50 +/* 0E97B4 7F0B4C84 90650004 */ lbu $a1, 4($v1) +/* 0E97B8 7F0B4C88 8EB90000 */ lw $t9, ($s5) +/* 0E97BC 7F0B4C8C 02802025 */ move $a0, $s4 +/* 0E97C0 7F0B4C90 03324821 */ addu $t1, $t9, $s2 +/* 0E97C4 7F0B4C94 0FC2D294 */ jal sub_GAME_7F0B4A50 +/* 0E97C8 7F0B4C98 91250004 */ lbu $a1, 4($t1) +/* 0E97CC 7F0B4C9C 8EA80000 */ lw $t0, ($s5) +/* 0E97D0 7F0B4CA0 A2200000 */ sb $zero, ($s1) +/* 0E97D4 7F0B4CA4 01121821 */ addu $v1, $t0, $s2 +/* 0E97D8 7F0B4CA8 920A0001 */ lbu $t2, 1($s0) +.L7F0B4CAC: +/* 0E97DC 7F0B4CAC 240100FF */ li $at, 255 +/* 0E97E0 7F0B4CB0 26100001 */ addiu $s0, $s0, 1 +/* 0E97E4 7F0B4CB4 51410004 */ beql $t2, $at, .L7F0B4CC8 +/* 0E97E8 7F0B4CB8 8FAB012C */ lw $t3, 0x12c($sp) +/* 0E97EC 7F0B4CBC 561EFFD7 */ bnel $s0, $fp, .L7F0B4C1C +/* 0E97F0 7F0B4CC0 92220000 */ lbu $v0, ($s1) +.L7F0B4CC4: +/* 0E97F4 7F0B4CC4 8FAB012C */ lw $t3, 0x12c($sp) +.L7F0B4CC8: +/* 0E97F8 7F0B4CC8 26520008 */ addiu $s2, $s2, 8 +/* 0E97FC 7F0B4CCC 24630008 */ addiu $v1, $v1, 8 +/* 0E9800 7F0B4CD0 256C0001 */ addiu $t4, $t3, 1 +/* 0E9804 7F0B4CD4 AFAC012C */ sw $t4, 0x12c($sp) +/* 0E9808 7F0B4CD8 8C6D0000 */ lw $t5, ($v1) +/* 0E980C 7F0B4CDC 240500FF */ li $a1, 255 +/* 0E9810 7F0B4CE0 55A0FFC7 */ bnezl $t5, .L7F0B4C00 +/* 0E9814 7F0B4CE4 93B80150 */ lbu $t8, 0x150($sp) +/* 0E9818 7F0B4CE8 93A40140 */ lbu $a0, 0x140($sp) +.L7F0B4CEC: +/* 0E981C 7F0B4CEC 27A30150 */ addiu $v1, $sp, 0x150 +/* 0E9820 7F0B4CF0 27A20140 */ addiu $v0, $sp, 0x140 +/* 0E9824 7F0B4CF4 14A40003 */ bne $a1, $a0, .L7F0B4D04 +/* 0E9828 7F0B4CF8 00000000 */ nop +/* 0E982C 7F0B4CFC 10000015 */ b .L7F0B4D54 +/* 0E9830 7F0B4D00 93A20150 */ lbu $v0, 0x150($sp) +.L7F0B4D04: +/* 0E9834 7F0B4D04 904E0000 */ lbu $t6, ($v0) +/* 0E9838 7F0B4D08 24420001 */ addiu $v0, $v0, 1 +/* 0E983C 7F0B4D0C 27AF0150 */ addiu $t7, $sp, 0x150 +/* 0E9840 7F0B4D10 004F082B */ sltu $at, $v0, $t7 +/* 0E9844 7F0B4D14 24630001 */ addiu $v1, $v1, 1 +/* 0E9848 7F0B4D18 1420FFFA */ bnez $at, .L7F0B4D04 +/* 0E984C 7F0B4D1C A06EFFFF */ sb $t6, -1($v1) +/* 0E9850 7F0B4D20 10A40009 */ beq $a1, $a0, .L7F0B4D48 +/* 0E9854 7F0B4D24 AFA00124 */ sw $zero, 0x124($sp) +/* 0E9858 7F0B4D28 02601025 */ move $v0, $s3 +/* 0E985C 7F0B4D2C 90580001 */ lbu $t8, 1($v0) +.L7F0B4D30: +/* 0E9860 7F0B4D30 24420001 */ addiu $v0, $v0, 1 +/* 0E9864 7F0B4D34 27B90150 */ addiu $t9, $sp, 0x150 +/* 0E9868 7F0B4D38 10B80003 */ beq $a1, $t8, .L7F0B4D48 +/* 0E986C 7F0B4D3C 00000000 */ nop +/* 0E9870 7F0B4D40 5459FFFB */ bnel $v0, $t9, .L7F0B4D30 +/* 0E9874 7F0B4D44 90580001 */ lbu $t8, 1($v0) +.L7F0B4D48: +/* 0E9878 7F0B4D48 14A4FFA4 */ bne $a1, $a0, .L7F0B4BDC +/* 0E987C 7F0B4D4C AFA00124 */ sw $zero, 0x124($sp) +/* 0E9880 7F0B4D50 93A20150 */ lbu $v0, 0x150($sp) +.L7F0B4D54: +/* 0E9884 7F0B4D54 10A20011 */ beq $a1, $v0, .L7F0B4D9C +/* 0E9888 7F0B4D58 8FA90124 */ lw $t1, 0x124($sp) +/* 0E988C 7F0B4D5C 8FAB016C */ lw $t3, 0x16c($sp) +/* 0E9890 7F0B4D60 27AA0150 */ addiu $t2, $sp, 0x150 +/* 0E9894 7F0B4D64 012A1821 */ addu $v1, $t1, $t2 +/* 0E9898 7F0B4D68 90620000 */ lbu $v0, ($v1) +/* 0E989C 7F0B4D6C 01692021 */ addu $a0, $t3, $t1 +/* 0E98A0 7F0B4D70 A0820000 */ sb $v0, ($a0) +.L7F0B4D74: +/* 0E98A4 7F0B4D74 8FAD0124 */ lw $t5, 0x124($sp) +/* 0E98A8 7F0B4D78 24630001 */ addiu $v1, $v1, 1 +/* 0E98AC 7F0B4D7C 24840001 */ addiu $a0, $a0, 1 +/* 0E98B0 7F0B4D80 25AE0001 */ addiu $t6, $t5, 1 +/* 0E98B4 7F0B4D84 29C10007 */ slti $at, $t6, 7 +/* 0E98B8 7F0B4D88 10200004 */ beqz $at, .L7F0B4D9C +/* 0E98BC 7F0B4D8C AFAE0124 */ sw $t6, 0x124($sp) +/* 0E98C0 7F0B4D90 90620000 */ lbu $v0, ($v1) +/* 0E98C4 7F0B4D94 54A2FFF7 */ bnel $a1, $v0, .L7F0B4D74 +/* 0E98C8 7F0B4D98 A0820000 */ sb $v0, ($a0) +.L7F0B4D9C: +/* 0E98CC 7F0B4D9C 8FB8016C */ lw $t8, 0x16c($sp) +/* 0E98D0 7F0B4DA0 8FB90124 */ lw $t9, 0x124($sp) +/* 0E98D4 7F0B4DA4 8FA60178 */ lw $a2, 0x178($sp) +/* 0E98D8 7F0B4DA8 240F00FF */ li $t7, 255 +/* 0E98DC 7F0B4DAC 03194821 */ addu $t1, $t8, $t9 +/* 0E98E0 7F0B4DB0 A12F0000 */ sb $t7, ($t1) +/* 0E98E4 7F0B4DB4 18C00013 */ blez $a2, .L7F0B4E04 +/* 0E98E8 7F0B4DB8 AFA00124 */ sw $zero, 0x124($sp) +/* 0E98EC 7F0B4DBC 93AA0130 */ lbu $t2, 0x130($sp) +/* 0E98F0 7F0B4DC0 27A20130 */ addiu $v0, $sp, 0x130 +/* 0E98F4 7F0B4DC4 8FA40170 */ lw $a0, 0x170($sp) +/* 0E98F8 7F0B4DC8 50AA000F */ beql $a1, $t2, .L7F0B4E08 +/* 0E98FC 7F0B4DCC 8FAD0124 */ lw $t5, 0x124($sp) +/* 0E9900 7F0B4DD0 90430000 */ lbu $v1, ($v0) +/* 0E9904 7F0B4DD4 AC830000 */ sw $v1, ($a0) +.L7F0B4DD8: +/* 0E9908 7F0B4DD8 8FAB0124 */ lw $t3, 0x124($sp) +/* 0E990C 7F0B4DDC 24420001 */ addiu $v0, $v0, 1 +/* 0E9910 7F0B4DE0 24840004 */ addiu $a0, $a0, 4 +/* 0E9914 7F0B4DE4 256C0001 */ addiu $t4, $t3, 1 +/* 0E9918 7F0B4DE8 0186082A */ slt $at, $t4, $a2 +/* 0E991C 7F0B4DEC 10200005 */ beqz $at, .L7F0B4E04 +/* 0E9920 7F0B4DF0 AFAC0124 */ sw $t4, 0x124($sp) +/* 0E9924 7F0B4DF4 90430000 */ lbu $v1, ($v0) +/* 0E9928 7F0B4DF8 240100FF */ li $at, 255 +/* 0E992C 7F0B4DFC 5461FFF6 */ bnel $v1, $at, .L7F0B4DD8 +/* 0E9930 7F0B4E00 AC830000 */ sw $v1, ($a0) +.L7F0B4E04: +/* 0E9934 7F0B4E04 8FAD0124 */ lw $t5, 0x124($sp) +.L7F0B4E08: +/* 0E9938 7F0B4E08 8FAE0174 */ lw $t6, 0x174($sp) +/* 0E993C 7F0B4E0C ADCD0000 */ sw $t5, ($t6) +/* 0E9940 7F0B4E10 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E9944 7F0B4E14 8FBE0038 */ lw $fp, 0x38($sp) +/* 0E9948 7F0B4E18 8FB70034 */ lw $s7, 0x34($sp) +/* 0E994C 7F0B4E1C 8FB60030 */ lw $s6, 0x30($sp) +/* 0E9950 7F0B4E20 8FB5002C */ lw $s5, 0x2c($sp) +/* 0E9954 7F0B4E24 8FB40028 */ lw $s4, 0x28($sp) +/* 0E9958 7F0B4E28 8FB30024 */ lw $s3, 0x24($sp) +/* 0E995C 7F0B4E2C 8FB20020 */ lw $s2, 0x20($sp) +/* 0E9960 7F0B4E30 8FB1001C */ lw $s1, 0x1c($sp) +/* 0E9964 7F0B4E34 8FB00018 */ lw $s0, 0x18($sp) +/* 0E9968 7F0B4E38 03E00008 */ jr $ra +/* 0E996C 7F0B4E3C 27BD0160 */ addiu $sp, $sp, 0x160 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B4E40(void *arg0) { + void *temp_v1; + void *temp_a1; + void *temp_a2; + void *temp_a0; + void *temp_v0; + void *phi_a0; + + // Node 0 + temp_v1 = (arg0 + 8); + *arg0 = 0xbc000002; + arg0->unk4 = 0x80000040; + temp_a1 = (temp_v1 + 8); + *temp_v1 = 0x3860010; + temp_v1->unk4 = &GlobalLight.l[0];// D_80044848; + temp_a2 = (temp_a1 + 8); + *temp_a1 = 0x3880010; + temp_a1->unk4 = &//GlobalLight.a; //D_80044840; + *temp_a2 = 0x3840010; + sp20->unk4 = sub_GAME_7F078474((temp_a2 + 8), temp_a1, temp_a2); + *arg0 = 0x3820010; + sp1C->unk4 = (s32) (sub_GAME_7F078474((arg0 + 8), arg0, sp20) + 0x10); + *arg0 = 0xbc003c06; + arg0->unk4 = (s32) ptr_bg_data; + temp_a0 = (arg0 + 8); + if (dword_CODE_bss_8007FF88 == 1) + { + // Node 1 + *temp_a0 = 0x6000000; + temp_a0->unk4 = (?32) dword_CODE_bss_8007BF98; + phi_a0 = (temp_a0 + 8); + } + else + { + // Node 2 + phi_a0 = sub_GAME_7F0BB298(sub_GAME_7F0B4FB4(sub_GAME_7F0B8D78(sub_GAME_7F0BB070(temp_a0, 0)))); + } + // Node 3 + temp_v0 = phi_a0; + *temp_v0 = 0x1030040; + temp_v0->unk4 = (?32) m; + return sub_GAME_7F08BCF4((phi_a0 + 8)); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B4E40 +/* 0E9970 7F0B4E40 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0E9974 7F0B4E44 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E9978 7F0B4E48 00801025 */ move $v0, $a0 +/* 0E997C 7F0B4E4C 3C0EBC00 */ lui $t6, (0xBC000002 >> 16) # lui $t6, 0xbc00 +/* 0E9980 7F0B4E50 3C0F8000 */ lui $t7, (0x80000040 >> 16) +/* 0E9984 7F0B4E54 35EF0040 */ ori $t7, (0x80000040 & 0xFFFF) # ori $t7, $t7, 0x40 +/* 0E9988 7F0B4E58 35CE0002 */ ori $t6, (0xBC000002 & 0xFFFF) # ori $t6, $t6, 2 +/* 0E998C 7F0B4E5C 24830008 */ addiu $v1, $a0, 8 +/* 0E9990 7F0B4E60 AC4E0000 */ sw $t6, ($v0) +/* 0E9994 7F0B4E64 AC4F0004 */ sw $t7, 4($v0) +/* 0E9998 7F0B4E68 3C180386 */ lui $t8, (0x03860010 >> 16) # lui $t8, 0x386 +/* 0E999C 7F0B4E6C 3C198004 */ lui $t9, %hi(GlobalLight+0x8) +/* 0E99A0 7F0B4E70 27394848 */ addiu $t9, %lo(GlobalLight+0x8) # addiu $t9, $t9, 0x4848 +/* 0E99A4 7F0B4E74 37180010 */ ori $t8, (0x03860010 & 0xFFFF) # ori $t8, $t8, 0x10 +/* 0E99A8 7F0B4E78 24650008 */ addiu $a1, $v1, 8 +/* 0E99AC 7F0B4E7C AC780000 */ sw $t8, ($v1) +/* 0E99B0 7F0B4E80 AC790004 */ sw $t9, 4($v1) +/* 0E99B4 7F0B4E84 3C080388 */ lui $t0, (0x03880010 >> 16) # lui $t0, 0x388 +/* 0E99B8 7F0B4E88 3C098004 */ lui $t1, %hi(GlobalLight) +/* 0E99BC 7F0B4E8C 25294840 */ addiu $t1, %lo(GlobalLight) # addiu $t1, $t1, 0x4840 +/* 0E99C0 7F0B4E90 35080010 */ ori $t0, (0x03880010 & 0xFFFF) # ori $t0, $t0, 0x10 +/* 0E99C4 7F0B4E94 24A60008 */ addiu $a2, $a1, 8 +/* 0E99C8 7F0B4E98 3C0A0384 */ lui $t2, (0x03840010 >> 16) # lui $t2, 0x384 +/* 0E99CC 7F0B4E9C ACA80000 */ sw $t0, ($a1) +/* 0E99D0 7F0B4EA0 ACA90004 */ sw $t1, 4($a1) +/* 0E99D4 7F0B4EA4 354A0010 */ ori $t2, (0x03840010 & 0xFFFF) # ori $t2, $t2, 0x10 +/* 0E99D8 7F0B4EA8 ACCA0000 */ sw $t2, ($a2) +/* 0E99DC 7F0B4EAC 24C40008 */ addiu $a0, $a2, 8 +/* 0E99E0 7F0B4EB0 AFA40030 */ sw $a0, 0x30($sp) +/* 0E99E4 7F0B4EB4 0FC1E11D */ jal sub_GAME_7F078474 +/* 0E99E8 7F0B4EB8 AFA60020 */ sw $a2, 0x20($sp) +/* 0E99EC 7F0B4EBC 8FA50030 */ lw $a1, 0x30($sp) +/* 0E99F0 7F0B4EC0 8FA60020 */ lw $a2, 0x20($sp) +/* 0E99F4 7F0B4EC4 3C0B0382 */ lui $t3, (0x03820010 >> 16) # lui $t3, 0x382 +/* 0E99F8 7F0B4EC8 356B0010 */ ori $t3, (0x03820010 & 0xFFFF) # ori $t3, $t3, 0x10 +/* 0E99FC 7F0B4ECC ACC20004 */ sw $v0, 4($a2) +/* 0E9A00 7F0B4ED0 ACAB0000 */ sw $t3, ($a1) +/* 0E9A04 7F0B4ED4 24A40008 */ addiu $a0, $a1, 8 +/* 0E9A08 7F0B4ED8 AFA40030 */ sw $a0, 0x30($sp) +/* 0E9A0C 7F0B4EDC 0FC1E11D */ jal sub_GAME_7F078474 +/* 0E9A10 7F0B4EE0 AFA5001C */ sw $a1, 0x1c($sp) +/* 0E9A14 7F0B4EE4 8FA40030 */ lw $a0, 0x30($sp) +/* 0E9A18 7F0B4EE8 8FA5001C */ lw $a1, 0x1c($sp) +/* 0E9A1C 7F0B4EEC 244C0010 */ addiu $t4, $v0, 0x10 +/* 0E9A20 7F0B4EF0 3C0DBC00 */ lui $t5, (0xBC003C06 >> 16) # lui $t5, 0xbc00 +/* 0E9A24 7F0B4EF4 35AD3C06 */ ori $t5, (0xBC003C06 & 0xFFFF) # ori $t5, $t5, 0x3c06 +/* 0E9A28 7F0B4EF8 00801825 */ move $v1, $a0 +/* 0E9A2C 7F0B4EFC ACAC0004 */ sw $t4, 4($a1) +/* 0E9A30 7F0B4F00 AC6D0000 */ sw $t5, ($v1) +/* 0E9A34 7F0B4F04 3C0E8008 */ lui $t6, %hi(ptr_bg_data) +/* 0E9A38 7F0B4F08 8DCEBF90 */ lw $t6, %lo(ptr_bg_data)($t6) +/* 0E9A3C 7F0B4F0C 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_8007FF88) +/* 0E9A40 7F0B4F10 24010001 */ li $at, 1 +/* 0E9A44 7F0B4F14 AC6E0004 */ sw $t6, 4($v1) +/* 0E9A48 7F0B4F18 8DEFFF88 */ lw $t7, %lo(dword_CODE_bss_8007FF88)($t7) +/* 0E9A4C 7F0B4F1C 24840008 */ addiu $a0, $a0, 8 +/* 0E9A50 7F0B4F20 00801025 */ move $v0, $a0 +/* 0E9A54 7F0B4F24 15E10007 */ bne $t7, $at, .L7F0B4F44 +/* 0E9A58 7F0B4F28 3C180600 */ lui $t8, 0x600 +/* 0E9A5C 7F0B4F2C AC580000 */ sw $t8, ($v0) +/* 0E9A60 7F0B4F30 3C198008 */ lui $t9, %hi(dword_CODE_bss_8007BF98) +/* 0E9A64 7F0B4F34 8F39BF98 */ lw $t9, %lo(dword_CODE_bss_8007BF98)($t9) +/* 0E9A68 7F0B4F38 24840008 */ addiu $a0, $a0, 8 +/* 0E9A6C 7F0B4F3C 1000000A */ b .L7F0B4F68 +/* 0E9A70 7F0B4F40 AC590004 */ sw $t9, 4($v0) +.L7F0B4F44: +/* 0E9A74 7F0B4F44 0FC2EC1C */ jal sub_GAME_7F0BB070 +/* 0E9A78 7F0B4F48 00002825 */ move $a1, $zero +/* 0E9A7C 7F0B4F4C 0FC2E35E */ jal sub_GAME_7F0B8D78 +/* 0E9A80 7F0B4F50 00402025 */ move $a0, $v0 +/* 0E9A84 7F0B4F54 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 0E9A88 7F0B4F58 00402025 */ move $a0, $v0 +/* 0E9A8C 7F0B4F5C 0FC2ECA6 */ jal sub_GAME_7F0BB298 +/* 0E9A90 7F0B4F60 00402025 */ move $a0, $v0 +/* 0E9A94 7F0B4F64 00402025 */ move $a0, $v0 +.L7F0B4F68: +/* 0E9A98 7F0B4F68 3C080103 */ lui $t0, (0x01030040 >> 16) # lui $t0, 0x103 +/* 0E9A9C 7F0B4F6C 35080040 */ ori $t0, (0x01030040 & 0xFFFF) # ori $t0, $t0, 0x40 +/* 0E9AA0 7F0B4F70 00801025 */ move $v0, $a0 +/* 0E9AA4 7F0B4F74 AC480000 */ sw $t0, ($v0) +/* 0E9AA8 7F0B4F78 3C098006 */ lui $t1, %hi(m) +/* 0E9AAC 7F0B4F7C 8D290820 */ lw $t1, %lo(m)($t1) +/* 0E9AB0 7F0B4F80 24840008 */ addiu $a0, $a0, 8 +/* 0E9AB4 7F0B4F84 0FC22F3D */ jal sub_GAME_7F08BCF4 +/* 0E9AB8 7F0B4F88 AC490004 */ sw $t1, 4($v0) +/* 0E9ABC 7F0B4F8C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E9AC0 7F0B4F90 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0E9AC4 7F0B4F94 03E00008 */ jr $ra +/* 0E9AC8 7F0B4F98 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B4F9C(s32 arg0) { + return (dword_CODE_bss_8007FF94 + (arg0 * 4))->unk4; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B4F9C +/* 0E9ACC 7F0B4F9C 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_8007FF94) +/* 0E9AD0 7F0B4FA0 8DCEFF94 */ lw $t6, %lo(dword_CODE_bss_8007FF94)($t6) +/* 0E9AD4 7F0B4FA4 00047880 */ sll $t7, $a0, 2 +/* 0E9AD8 7F0B4FA8 01CFC021 */ addu $t8, $t6, $t7 +/* 0E9ADC 7F0B4FAC 03E00008 */ jr $ra +/* 0E9AE0 7F0B4FB0 C7000004 */ lwc1 $f0, 4($t8) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B4FB4(void) { + return sub_GAME_7F0B5058(pPlayer->viewleft, pPlayer->viewtop, (pPlayer->viewleft + pPlayer->unk7F0), (s32) (pPlayer->viewtop + pPlayer->unk7F2)); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B4FB4 +/* 0E9AE4 7F0B4FB4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0E9AE8 7F0B4FB8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0E9AEC 7F0B4FBC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E9AF0 7F0B4FC0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0E9AF4 7F0B4FC4 844F07F2 */ lh $t7, 0x7f2($v0) +/* 0E9AF8 7F0B4FC8 844607F6 */ lh $a2, 0x7f6($v0) +/* 0E9AFC 7F0B4FCC 844E07F0 */ lh $t6, 0x7f0($v0) +/* 0E9B00 7F0B4FD0 844507F4 */ lh $a1, 0x7f4($v0) +/* 0E9B04 7F0B4FD4 00CFC021 */ addu $t8, $a2, $t7 +/* 0E9B08 7F0B4FD8 AFB80010 */ sw $t8, 0x10($sp) +/* 0E9B0C 7F0B4FDC 0FC2D416 */ jal sub_GAME_7F0B5058 +/* 0E9B10 7F0B4FE0 00AE3821 */ addu $a3, $a1, $t6 +/* 0E9B14 7F0B4FE4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0E9B18 7F0B4FE8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0E9B1C 7F0B4FEC 03E00008 */ jr $ra +/* 0E9B20 7F0B4FF0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B4FF4(s32 arg0, s32 arg1, f32 arg2, ? arg3, ? arg4) { + s32 sp20; + + sp20 = sub_GAME_7F05C4B8(arg3); + return sub_GAME_7F0B5058(arg0, (s32) arg1, (s32) arg2, sp20, sub_GAME_7F05C4B8(arg4)); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B4FF4 +/* 0E9B24 7F0B4FF4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0E9B28 7F0B4FF8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0E9B2C 7F0B4FFC 44876000 */ mtc1 $a3, $f12 +/* 0E9B30 7F0B5000 AFA40028 */ sw $a0, 0x28($sp) +/* 0E9B34 7F0B5004 AFA5002C */ sw $a1, 0x2c($sp) +/* 0E9B38 7F0B5008 0FC1712E */ jal sub_GAME_7F05C4B8 +/* 0E9B3C 7F0B500C AFA60030 */ sw $a2, 0x30($sp) +/* 0E9B40 7F0B5010 AFA20020 */ sw $v0, 0x20($sp) +/* 0E9B44 7F0B5014 0FC1712E */ jal sub_GAME_7F05C4B8 +/* 0E9B48 7F0B5018 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 0E9B4C 7F0B501C C7A4002C */ lwc1 $f4, 0x2c($sp) +/* 0E9B50 7F0B5020 C7A80030 */ lwc1 $f8, 0x30($sp) +/* 0E9B54 7F0B5024 8FA40028 */ lw $a0, 0x28($sp) +/* 0E9B58 7F0B5028 4600218D */ trunc.w.s $f6, $f4 +/* 0E9B5C 7F0B502C 8FA70020 */ lw $a3, 0x20($sp) +/* 0E9B60 7F0B5030 AFA20010 */ sw $v0, 0x10($sp) +/* 0E9B64 7F0B5034 4600428D */ trunc.w.s $f10, $f8 +/* 0E9B68 7F0B5038 44053000 */ mfc1 $a1, $f6 +/* 0E9B6C 7F0B503C 44065000 */ mfc1 $a2, $f10 +/* 0E9B70 7F0B5040 0FC2D416 */ jal sub_GAME_7F0B5058 +/* 0E9B74 7F0B5044 00000000 */ nop +/* 0E9B78 7F0B5048 8FBF001C */ lw $ra, 0x1c($sp) +/* 0E9B7C 7F0B504C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0E9B80 7F0B5050 03E00008 */ jr $ra +/* 0E9B84 7F0B5054 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5058(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5058 +/* 0E9B88 7F0B5058 3C028008 */ lui $v0, %hi(pPlayer) +/* 0E9B8C 7F0B505C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0E9B90 7F0B5060 AFA40000 */ sw $a0, ($sp) +/* 0E9B94 7F0B5064 AFA7000C */ sw $a3, 0xc($sp) +/* 0E9B98 7F0B5068 844307F4 */ lh $v1, 0x7f4($v0) +/* 0E9B9C 7F0B506C 00A3082A */ slt $at, $a1, $v1 +/* 0E9BA0 7F0B5070 50200003 */ beql $at, $zero, .L7F0B5080 +/* 0E9BA4 7F0B5074 844407F6 */ lh $a0, 0x7f6($v0) +/* 0E9BA8 7F0B5078 00602825 */ move $a1, $v1 +/* 0E9BAC 7F0B507C 844407F6 */ lh $a0, 0x7f6($v0) +.L7F0B5080: +/* 0E9BB0 7F0B5080 44852000 */ mtc1 $a1, $f4 +/* 0E9BB4 7F0B5084 00C4082A */ slt $at, $a2, $a0 +/* 0E9BB8 7F0B5088 10200002 */ beqz $at, .L7F0B5094 +/* 0E9BBC 7F0B508C 468021A0 */ cvt.s.w $f6, $f4 +/* 0E9BC0 7F0B5090 00803025 */ move $a2, $a0 +.L7F0B5094: +/* 0E9BC4 7F0B5094 844E07F0 */ lh $t6, 0x7f0($v0) +/* 0E9BC8 7F0B5098 8FAF000C */ lw $t7, 0xc($sp) +/* 0E9BCC 7F0B509C 44868000 */ mtc1 $a2, $f16 +/* 0E9BD0 7F0B50A0 006E3821 */ addu $a3, $v1, $t6 +/* 0E9BD4 7F0B50A4 00EF082A */ slt $at, $a3, $t7 +/* 0E9BD8 7F0B50A8 10200002 */ beqz $at, .L7F0B50B4 +/* 0E9BDC 7F0B50AC 468084A0 */ cvt.s.w $f18, $f16 +/* 0E9BE0 7F0B50B0 AFA7000C */ sw $a3, 0xc($sp) +.L7F0B50B4: +/* 0E9BE4 7F0B50B4 845807F2 */ lh $t8, 0x7f2($v0) +/* 0E9BE8 7F0B50B8 8FA70010 */ lw $a3, 0x10($sp) +/* 0E9BEC 7F0B50BC 00981821 */ addu $v1, $a0, $t8 +/* 0E9BF0 7F0B50C0 0067082A */ slt $at, $v1, $a3 +/* 0E9BF4 7F0B50C4 50200003 */ beql $at, $zero, .L7F0B50D4 +/* 0E9BF8 7F0B50C8 3C014080 */ lui $at, 0x4080 +/* 0E9BFC 7F0B50CC 00603825 */ move $a3, $v1 +/* 0E9C00 7F0B50D0 3C014080 */ li $at, 0x40800000 # 4.000000 +.L7F0B50D4: +/* 0E9C04 7F0B50D4 44810000 */ mtc1 $at, $f0 +/* 0E9C08 7F0B50D8 8FA30000 */ lw $v1, ($sp) +/* 0E9C0C 7F0B50DC 3C01ED00 */ lui $at, 0xed00 +/* 0E9C10 7F0B50E0 46003202 */ mul.s $f8, $f6, $f0 +/* 0E9C14 7F0B50E4 24680008 */ addiu $t0, $v1, 8 +/* 0E9C18 7F0B50E8 AFA80000 */ sw $t0, ($sp) +/* 0E9C1C 7F0B50EC 46009102 */ mul.s $f4, $f18, $f0 +/* 0E9C20 7F0B50F0 4600428D */ trunc.w.s $f10, $f8 +/* 0E9C24 7F0B50F4 4600218D */ trunc.w.s $f6, $f4 +/* 0E9C28 7F0B50F8 440A5000 */ mfc1 $t2, $f10 +/* 0E9C2C 7F0B50FC 44872000 */ mtc1 $a3, $f4 +/* 0E9C30 7F0B5100 440F3000 */ mfc1 $t7, $f6 +/* 0E9C34 7F0B5104 314B0FFF */ andi $t3, $t2, 0xfff +/* 0E9C38 7F0B5108 000B6300 */ sll $t4, $t3, 0xc +/* 0E9C3C 7F0B510C 01816825 */ or $t5, $t4, $at +/* 0E9C40 7F0B5110 31F80FFF */ andi $t8, $t7, 0xfff +/* 0E9C44 7F0B5114 01B8C825 */ or $t9, $t5, $t8 +/* 0E9C48 7F0B5118 AC790000 */ sw $t9, ($v1) +/* 0E9C4C 7F0B511C 8FA8000C */ lw $t0, 0xc($sp) +/* 0E9C50 7F0B5120 468021A0 */ cvt.s.w $f6, $f4 +/* 0E9C54 7F0B5124 44884000 */ mtc1 $t0, $f8 +/* 0E9C58 7F0B5128 00000000 */ nop +/* 0E9C5C 7F0B512C 468042A0 */ cvt.s.w $f10, $f8 +/* 0E9C60 7F0B5130 46005402 */ mul.s $f16, $f10, $f0 +/* 0E9C64 7F0B5134 00000000 */ nop +/* 0E9C68 7F0B5138 46003202 */ mul.s $f8, $f6, $f0 +/* 0E9C6C 7F0B513C 4600848D */ trunc.w.s $f18, $f16 +/* 0E9C70 7F0B5140 4600428D */ trunc.w.s $f10, $f8 +/* 0E9C74 7F0B5144 440A9000 */ mfc1 $t2, $f18 +/* 0E9C78 7F0B5148 440F5000 */ mfc1 $t7, $f10 +/* 0E9C7C 7F0B514C 314B0FFF */ andi $t3, $t2, 0xfff +/* 0E9C80 7F0B5150 000B6300 */ sll $t4, $t3, 0xc +/* 0E9C84 7F0B5154 31ED0FFF */ andi $t5, $t7, 0xfff +/* 0E9C88 7F0B5158 018DC025 */ or $t8, $t4, $t5 +/* 0E9C8C 7F0B515C AC780004 */ sw $t8, 4($v1) +/* 0E9C90 7F0B5160 03E00008 */ jr $ra +/* 0E9C94 7F0B5164 8FA20000 */ lw $v0, ($sp) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B5168(void) { + void *temp_v1; + void *phi_v1; + + // Node 0 + phi_v1 = &table_for_portals; +loop_1: + // Node 1 + temp_v1 = (phi_v1 + 0x50); + temp_v1->unk-3C = -1; + temp_v1->unk-28 = -1; + temp_v1->unk-14 = -1; + temp_v1->unk-50 = -1; + phi_v1 = temp_v1; + if (temp_v1 != &table_for_portals+0xFA0) + { + goto loop_1; + } + // Node 2 + return -1; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5168 +/* 0E9C98 7F0B5168 3C038008 */ lui $v1, %hi(table_for_portals) +/* 0E9C9C 7F0B516C 3C048008 */ lui $a0, %hi(table_for_portals+0xFA0) +/* 0E9CA0 7F0B5170 248425B8 */ addiu $a0, %lo(table_for_portals+0xFA0) # addiu $a0, $a0, 0x25b8 +/* 0E9CA4 7F0B5174 24631618 */ addiu $v1, %lo(table_for_portals) # addiu $v1, $v1, 0x1618 +/* 0E9CA8 7F0B5178 2402FFFF */ li $v0, -1 +.L7F0B517C: +/* 0E9CAC 7F0B517C 24630050 */ addiu $v1, $v1, 0x50 +/* 0E9CB0 7F0B5180 AC62FFC4 */ sw $v0, -0x3c($v1) +/* 0E9CB4 7F0B5184 AC62FFD8 */ sw $v0, -0x28($v1) +/* 0E9CB8 7F0B5188 AC62FFEC */ sw $v0, -0x14($v1) +/* 0E9CBC 7F0B518C 1464FFFB */ bne $v1, $a0, .L7F0B517C +/* 0E9CC0 7F0B5190 AC62FFB0 */ sw $v0, -0x50($v1) +/* 0E9CC4 7F0B5194 03E00008 */ jr $ra +/* 0E9CC8 7F0B5198 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B519C(void *arg0, void *arg1) { + // Node 0 + if (*arg1 <= *arg0) + { + // Node 1 + if (*arg0 <= arg1->unk8) + { + // Node 2 + if (arg1->unk4 <= arg0->unk4) + { + // Node 3 + if (arg0->unk4 <= arg1->unkC) + { + // Node 4 + return 1; + } + } + } + } + // Node 5 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B519C +/* 0E9CCC 7F0B519C C4800000 */ lwc1 $f0, ($a0) +/* 0E9CD0 7F0B51A0 C4A40000 */ lwc1 $f4, ($a1) +/* 0E9CD4 7F0B51A4 00001025 */ move $v0, $zero +/* 0E9CD8 7F0B51A8 4600203E */ c.le.s $f4, $f0 +/* 0E9CDC 7F0B51AC 00000000 */ nop +/* 0E9CE0 7F0B51B0 45000013 */ bc1f .L7F0B5200 +/* 0E9CE4 7F0B51B4 00000000 */ nop +/* 0E9CE8 7F0B51B8 C4A60008 */ lwc1 $f6, 8($a1) +/* 0E9CEC 7F0B51BC 4606003E */ c.le.s $f0, $f6 +/* 0E9CF0 7F0B51C0 00000000 */ nop +/* 0E9CF4 7F0B51C4 4500000E */ bc1f .L7F0B5200 +/* 0E9CF8 7F0B51C8 00000000 */ nop +/* 0E9CFC 7F0B51CC C4800004 */ lwc1 $f0, 4($a0) +/* 0E9D00 7F0B51D0 C4A80004 */ lwc1 $f8, 4($a1) +/* 0E9D04 7F0B51D4 4600403E */ c.le.s $f8, $f0 +/* 0E9D08 7F0B51D8 00000000 */ nop +/* 0E9D0C 7F0B51DC 45000008 */ bc1f .L7F0B5200 +/* 0E9D10 7F0B51E0 00000000 */ nop +/* 0E9D14 7F0B51E4 C4AA000C */ lwc1 $f10, 0xc($a1) +/* 0E9D18 7F0B51E8 460A003E */ c.le.s $f0, $f10 +/* 0E9D1C 7F0B51EC 00000000 */ nop +/* 0E9D20 7F0B51F0 45000003 */ bc1f .L7F0B5200 +/* 0E9D24 7F0B51F4 00000000 */ nop +/* 0E9D28 7F0B51F8 03E00008 */ jr $ra +/* 0E9D2C 7F0B51FC 24020001 */ li $v0, 1 + +.L7F0B5200: +/* 0E9D30 7F0B5200 03E00008 */ jr $ra +/* 0E9D34 7F0B5204 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5208(s32 arg0, void *arg1) { + ? sp3C; + f32 sp40; + f32 sp5C; + f32 sp60; + f32 sp64; + f32 sp68; + s32 sp74; + ? temp_ret; + s32 temp_v1; + s32 phi_v1; + void *phi_a2; + s32 phi_s6; + s32 phi_s1; + s32 phi_s2; + s32 phi_s3; + s32 phi_s4; + s32 phi_s5; + s32 phi_s6_2; + s32 phi_s1_2; + s32 phi_s2_2; + s32 phi_s3_2; + s32 phi_s4_2; + s32 phi_s5_2; + s32 phi_s1_3; + s32 phi_s2_3; + s32 phi_s3_3; + + // Node 0 + video_related_27(&sp3C); + sp40 = (f32) (sp40 / D_800413FC); + phi_v1 = 0; + phi_a2 = ((arg0 * 0x50) + &array_room_info); + phi_s6_2 = 0; + phi_s4_2 = 0; + phi_s5_2 = 0; + phi_s1_3 = 0; + phi_s2_3 = 0; + phi_s3_3 = 0; +loop_1: + // Node 1 + if ((phi_v1 & 1) != 0) + { + // Node 2 + sp5C = (f32) phi_a2->unk38; + } + else + { + // Node 3 + sp5C = (f32) phi_a2->unk44; + } + // Node 4 + if ((phi_v1 & 2) != 0) + { + // Node 5 + sp60 = (f32) phi_a2->unk3C; + } + else + { + // Node 6 + sp60 = (f32) phi_a2->unk48; + } + // Node 7 + if ((phi_v1 & 4) != 0) + { + // Node 8 + sp64 = (f32) phi_a2->unk40; + } + else + { + // Node 9 + sp64 = (f32) phi_a2->unk4C; + } + // Node 10 + sp74 = (s32) phi_v1; + temp_ret = sub_GAME_7F0B5488(&sp5C, &sp68, phi_a2); + if (temp_ret == 0) + { + // Node 11 + phi_s1 = phi_s1_3; + if (sp40 <= -sp70) + { + // Node 12 + phi_s1 = (phi_s1_3 + 1); + } + // Node 13 + phi_s2 = phi_s2_3; + if (*arg1 <= sp68) + { + // Node 14 + phi_s2 = (phi_s2_3 + 1); + } + // Node 15 + phi_s3 = phi_s3_3; + if (sp68 <= arg1->unk8) + { + // Node 16 + phi_s3 = (phi_s3_3 + 1); + } + // Node 17 + phi_s4 = phi_s4_2; + if (arg1->unk4 <= sp6C) + { + // Node 18 + phi_s4 = (phi_s4_2 + 1); + } + // Node 19 + phi_s5 = phi_s5_2; + if (sp6C <= arg1->unkC) + { + // Node 20 + phi_s5 = (phi_s5_2 + 1); + } + // Node 21 + phi_s6 = (phi_s6_2 + 1); + } + else + { + // Node 22 + phi_s1_2 = phi_s1_3; + if (sp40 <= -sp70) + { + // Node 23 + phi_s1_2 = (phi_s1_3 + 1); + } + // Node 24 + if (sp68 <= *arg1) + { + // Node 25 + phi_s2_2 = (phi_s2_3 + 1); + phi_s3_2 = phi_s3_3; + } + else + { + // Node 26 + phi_s2_2 = phi_s2_3; + phi_s3_2 = phi_s3_3; + if (arg1->unk8 <= sp68) + { + // Node 27 + phi_s2_2 = phi_s2_3; + phi_s3_2 = (phi_s3_3 + 1); + } + } + // Node 28 + if (sp6C <= arg1->unk4) + { + // Node 29 + phi_s6 = phi_s6_2; + phi_s1 = phi_s1_2; + phi_s2 = phi_s2_2; + phi_s3 = phi_s3_2; + phi_s4 = (phi_s4_2 + 1); + phi_s5 = phi_s5_2; + } + else + { + // Node 30 + phi_s6 = phi_s6_2; + phi_s1 = phi_s1_2; + phi_s2 = phi_s2_2; + phi_s3 = phi_s3_2; + phi_s4 = phi_s4_2; + phi_s5 = phi_s5_2; + if (arg1->unkC <= sp6C) + { + // Node 31 + phi_s6 = phi_s6_2; + phi_s1 = phi_s1_2; + phi_s2 = phi_s2_2; + phi_s3 = phi_s3_2; + phi_s4 = phi_s4_2; + phi_s5 = (phi_s5_2 + 1); + } + } + } + // Node 32 + temp_v1 = (phi_v1 + 1); + phi_v1 = temp_v1; + phi_a2 = sp38; + phi_s6_2 = phi_s6; + phi_s4_2 = phi_s4; + phi_s5_2 = phi_s5; + phi_s1_3 = phi_s1; + phi_s2_3 = phi_s2; + phi_s3_3 = phi_s3; + if (temp_v1 != 8) + { + goto loop_1; + } + // Node 33 + if ((((((phi_s6 == 8) || (phi_s1 == 8)) || (phi_s2 == 8)) || (phi_s3 == 8)) || (phi_s4 == 8)) || (phi_s5 == 8)) + { + // Node 39 + } + else + { + + } + // Node 40 + return temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5208 +/* 0E9D38 7F0B5208 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 0E9D3C 7F0B520C AFBF0034 */ sw $ra, 0x34($sp) +/* 0E9D40 7F0B5210 AFB60030 */ sw $s6, 0x30($sp) +/* 0E9D44 7F0B5214 AFB5002C */ sw $s5, 0x2c($sp) +/* 0E9D48 7F0B5218 AFB40028 */ sw $s4, 0x28($sp) +/* 0E9D4C 7F0B521C AFB30024 */ sw $s3, 0x24($sp) +/* 0E9D50 7F0B5220 AFB20020 */ sw $s2, 0x20($sp) +/* 0E9D54 7F0B5224 AFB1001C */ sw $s1, 0x1c($sp) +/* 0E9D58 7F0B5228 AFB00018 */ sw $s0, 0x18($sp) +/* 0E9D5C 7F0B522C AFA40078 */ sw $a0, 0x78($sp) +/* 0E9D60 7F0B5230 00A08025 */ move $s0, $a1 +/* 0E9D64 7F0B5234 00008825 */ move $s1, $zero +/* 0E9D68 7F0B5238 0000B025 */ move $s6, $zero +/* 0E9D6C 7F0B523C 00009025 */ move $s2, $zero +/* 0E9D70 7F0B5240 00009825 */ move $s3, $zero +/* 0E9D74 7F0B5244 0000A025 */ move $s4, $zero +/* 0E9D78 7F0B5248 0000A825 */ move $s5, $zero +/* 0E9D7C 7F0B524C 0C0011AB */ jal video_related_27 +/* 0E9D80 7F0B5250 27A4003C */ addiu $a0, $sp, 0x3c +/* 0E9D84 7F0B5254 3C018004 */ lui $at, %hi(D_800413FC) +/* 0E9D88 7F0B5258 C42613FC */ lwc1 $f6, %lo(D_800413FC)($at) +/* 0E9D8C 7F0B525C C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0E9D90 7F0B5260 8FAE0078 */ lw $t6, 0x78($sp) +/* 0E9D94 7F0B5264 3C188004 */ lui $t8, %hi(array_room_info) +/* 0E9D98 7F0B5268 46062203 */ div.s $f8, $f4, $f6 +/* 0E9D9C 7F0B526C 000E7880 */ sll $t7, $t6, 2 +/* 0E9DA0 7F0B5270 01EE7821 */ addu $t7, $t7, $t6 +/* 0E9DA4 7F0B5274 000F7900 */ sll $t7, $t7, 4 +/* 0E9DA8 7F0B5278 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414 +/* 0E9DAC 7F0B527C 01F83021 */ addu $a2, $t7, $t8 +/* 0E9DB0 7F0B5280 00001825 */ move $v1, $zero +/* 0E9DB4 7F0B5284 E7A80040 */ swc1 $f8, 0x40($sp) +/* 0E9DB8 7F0B5288 30790001 */ andi $t9, $v1, 1 +.L7F0B528C: +/* 0E9DBC 7F0B528C 13200004 */ beqz $t9, .L7F0B52A0 +/* 0E9DC0 7F0B5290 30680002 */ andi $t0, $v1, 2 +/* 0E9DC4 7F0B5294 C4CA0038 */ lwc1 $f10, 0x38($a2) +/* 0E9DC8 7F0B5298 10000003 */ b .L7F0B52A8 +/* 0E9DCC 7F0B529C E7AA005C */ swc1 $f10, 0x5c($sp) +.L7F0B52A0: +/* 0E9DD0 7F0B52A0 C4D00044 */ lwc1 $f16, 0x44($a2) +/* 0E9DD4 7F0B52A4 E7B0005C */ swc1 $f16, 0x5c($sp) +.L7F0B52A8: +/* 0E9DD8 7F0B52A8 11000004 */ beqz $t0, .L7F0B52BC +/* 0E9DDC 7F0B52AC 30690004 */ andi $t1, $v1, 4 +/* 0E9DE0 7F0B52B0 C4D2003C */ lwc1 $f18, 0x3c($a2) +/* 0E9DE4 7F0B52B4 10000003 */ b .L7F0B52C4 +/* 0E9DE8 7F0B52B8 E7B20060 */ swc1 $f18, 0x60($sp) +.L7F0B52BC: +/* 0E9DEC 7F0B52BC C4C40048 */ lwc1 $f4, 0x48($a2) +/* 0E9DF0 7F0B52C0 E7A40060 */ swc1 $f4, 0x60($sp) +.L7F0B52C4: +/* 0E9DF4 7F0B52C4 11200004 */ beqz $t1, .L7F0B52D8 +/* 0E9DF8 7F0B52C8 27A4005C */ addiu $a0, $sp, 0x5c +/* 0E9DFC 7F0B52CC C4C60040 */ lwc1 $f6, 0x40($a2) +/* 0E9E00 7F0B52D0 10000003 */ b .L7F0B52E0 +/* 0E9E04 7F0B52D4 E7A60064 */ swc1 $f6, 0x64($sp) +.L7F0B52D8: +/* 0E9E08 7F0B52D8 C4C8004C */ lwc1 $f8, 0x4c($a2) +/* 0E9E0C 7F0B52DC E7A80064 */ swc1 $f8, 0x64($sp) +.L7F0B52E0: +/* 0E9E10 7F0B52E0 27A50068 */ addiu $a1, $sp, 0x68 +/* 0E9E14 7F0B52E4 AFA30074 */ sw $v1, 0x74($sp) +/* 0E9E18 7F0B52E8 0FC2D522 */ jal sub_GAME_7F0B5488 +/* 0E9E1C 7F0B52EC AFA60038 */ sw $a2, 0x38($sp) +/* 0E9E20 7F0B52F0 8FA30074 */ lw $v1, 0x74($sp) +/* 0E9E24 7F0B52F4 8FA60038 */ lw $a2, 0x38($sp) +/* 0E9E28 7F0B52F8 14400025 */ bnez $v0, .L7F0B5390 +/* 0E9E2C 7F0B52FC 24070008 */ li $a3, 8 +/* 0E9E30 7F0B5300 C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 0E9E34 7F0B5304 C7B20040 */ lwc1 $f18, 0x40($sp) +/* 0E9E38 7F0B5308 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 0E9E3C 7F0B530C 46005407 */ neg.s $f16, $f10 +/* 0E9E40 7F0B5310 C7AA0068 */ lwc1 $f10, 0x68($sp) +/* 0E9E44 7F0B5314 4610903E */ c.le.s $f18, $f16 +/* 0E9E48 7F0B5318 C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 0E9E4C 7F0B531C 45020003 */ bc1fl .L7F0B532C +/* 0E9E50 7F0B5320 C6060000 */ lwc1 $f6, ($s0) +/* 0E9E54 7F0B5324 26310001 */ addiu $s1, $s1, 1 +/* 0E9E58 7F0B5328 C6060000 */ lwc1 $f6, ($s0) +.L7F0B532C: +/* 0E9E5C 7F0B532C 4604303E */ c.le.s $f6, $f4 +/* 0E9E60 7F0B5330 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 0E9E64 7F0B5334 45020003 */ bc1fl .L7F0B5344 +/* 0E9E68 7F0B5338 C6080008 */ lwc1 $f8, 8($s0) +/* 0E9E6C 7F0B533C 26520001 */ addiu $s2, $s2, 1 +/* 0E9E70 7F0B5340 C6080008 */ lwc1 $f8, 8($s0) +.L7F0B5344: +/* 0E9E74 7F0B5344 4608503E */ c.le.s $f10, $f8 +/* 0E9E78 7F0B5348 00000000 */ nop +/* 0E9E7C 7F0B534C 45020003 */ bc1fl .L7F0B535C +/* 0E9E80 7F0B5350 C6120004 */ lwc1 $f18, 4($s0) +/* 0E9E84 7F0B5354 26730001 */ addiu $s3, $s3, 1 +/* 0E9E88 7F0B5358 C6120004 */ lwc1 $f18, 4($s0) +.L7F0B535C: +/* 0E9E8C 7F0B535C 4610903E */ c.le.s $f18, $f16 +/* 0E9E90 7F0B5360 00000000 */ nop +/* 0E9E94 7F0B5364 45020003 */ bc1fl .L7F0B5374 +/* 0E9E98 7F0B5368 C604000C */ lwc1 $f4, 0xc($s0) +/* 0E9E9C 7F0B536C 26940001 */ addiu $s4, $s4, 1 +/* 0E9EA0 7F0B5370 C604000C */ lwc1 $f4, 0xc($s0) +.L7F0B5374: +/* 0E9EA4 7F0B5374 4604303E */ c.le.s $f6, $f4 +/* 0E9EA8 7F0B5378 00000000 */ nop +/* 0E9EAC 7F0B537C 45000002 */ bc1f .L7F0B5388 +/* 0E9EB0 7F0B5380 00000000 */ nop +/* 0E9EB4 7F0B5384 26B50001 */ addiu $s5, $s5, 1 +.L7F0B5388: +/* 0E9EB8 7F0B5388 10000025 */ b .L7F0B5420 +/* 0E9EBC 7F0B538C 26D60001 */ addiu $s6, $s6, 1 +.L7F0B5390: +/* 0E9EC0 7F0B5390 C7A80070 */ lwc1 $f8, 0x70($sp) +/* 0E9EC4 7F0B5394 C7B00040 */ lwc1 $f16, 0x40($sp) +/* 0E9EC8 7F0B5398 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 0E9ECC 7F0B539C 46004287 */ neg.s $f10, $f8 +/* 0E9ED0 7F0B53A0 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 0E9ED4 7F0B53A4 460A803E */ c.le.s $f16, $f10 +/* 0E9ED8 7F0B53A8 C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 0E9EDC 7F0B53AC 45020003 */ bc1fl .L7F0B53BC +/* 0E9EE0 7F0B53B0 C6120000 */ lwc1 $f18, ($s0) +/* 0E9EE4 7F0B53B4 26310001 */ addiu $s1, $s1, 1 +/* 0E9EE8 7F0B53B8 C6120000 */ lwc1 $f18, ($s0) +.L7F0B53BC: +/* 0E9EEC 7F0B53BC 4612203E */ c.le.s $f4, $f18 +/* 0E9EF0 7F0B53C0 C7B2006C */ lwc1 $f18, 0x6c($sp) +/* 0E9EF4 7F0B53C4 45020004 */ bc1fl .L7F0B53D8 +/* 0E9EF8 7F0B53C8 C6080008 */ lwc1 $f8, 8($s0) +/* 0E9EFC 7F0B53CC 10000007 */ b .L7F0B53EC +/* 0E9F00 7F0B53D0 26520001 */ addiu $s2, $s2, 1 +/* 0E9F04 7F0B53D4 C6080008 */ lwc1 $f8, 8($s0) +.L7F0B53D8: +/* 0E9F08 7F0B53D8 4606403E */ c.le.s $f8, $f6 +/* 0E9F0C 7F0B53DC 00000000 */ nop +/* 0E9F10 7F0B53E0 45020003 */ bc1fl .L7F0B53F0 +/* 0E9F14 7F0B53E4 C60A0004 */ lwc1 $f10, 4($s0) +/* 0E9F18 7F0B53E8 26730001 */ addiu $s3, $s3, 1 +.L7F0B53EC: +/* 0E9F1C 7F0B53EC C60A0004 */ lwc1 $f10, 4($s0) +.L7F0B53F0: +/* 0E9F20 7F0B53F0 460A803E */ c.le.s $f16, $f10 +/* 0E9F24 7F0B53F4 00000000 */ nop +/* 0E9F28 7F0B53F8 45020004 */ bc1fl .L7F0B540C +/* 0E9F2C 7F0B53FC C604000C */ lwc1 $f4, 0xc($s0) +/* 0E9F30 7F0B5400 10000007 */ b .L7F0B5420 +/* 0E9F34 7F0B5404 26940001 */ addiu $s4, $s4, 1 +/* 0E9F38 7F0B5408 C604000C */ lwc1 $f4, 0xc($s0) +.L7F0B540C: +/* 0E9F3C 7F0B540C 4612203E */ c.le.s $f4, $f18 +/* 0E9F40 7F0B5410 00000000 */ nop +/* 0E9F44 7F0B5414 45020003 */ bc1fl .L7F0B5424 +/* 0E9F48 7F0B5418 24630001 */ addiu $v1, $v1, 1 +/* 0E9F4C 7F0B541C 26B50001 */ addiu $s5, $s5, 1 +.L7F0B5420: +/* 0E9F50 7F0B5420 24630001 */ addiu $v1, $v1, 1 +.L7F0B5424: +/* 0E9F54 7F0B5424 5467FF99 */ bnel $v1, $a3, .L7F0B528C +/* 0E9F58 7F0B5428 30790001 */ andi $t9, $v1, 1 +/* 0E9F5C 7F0B542C 12C7000B */ beq $s6, $a3, .L7F0B545C +/* 0E9F60 7F0B5430 8FB00018 */ lw $s0, 0x18($sp) +/* 0E9F64 7F0B5434 12270009 */ beq $s1, $a3, .L7F0B545C +/* 0E9F68 7F0B5438 00000000 */ nop +/* 0E9F6C 7F0B543C 12470007 */ beq $s2, $a3, .L7F0B545C +/* 0E9F70 7F0B5440 00000000 */ nop +/* 0E9F74 7F0B5444 12670005 */ beq $s3, $a3, .L7F0B545C +/* 0E9F78 7F0B5448 00000000 */ nop +/* 0E9F7C 7F0B544C 12870003 */ beq $s4, $a3, .L7F0B545C +/* 0E9F80 7F0B5450 00000000 */ nop +/* 0E9F84 7F0B5454 16A70003 */ bne $s5, $a3, .L7F0B5464 +/* 0E9F88 7F0B5458 24020001 */ li $v0, 1 +.L7F0B545C: +/* 0E9F8C 7F0B545C 10000001 */ b .L7F0B5464 +/* 0E9F90 7F0B5460 00001025 */ move $v0, $zero +.L7F0B5464: +/* 0E9F94 7F0B5464 8FBF0034 */ lw $ra, 0x34($sp) +/* 0E9F98 7F0B5468 8FB1001C */ lw $s1, 0x1c($sp) +/* 0E9F9C 7F0B546C 8FB20020 */ lw $s2, 0x20($sp) +/* 0E9FA0 7F0B5470 8FB30024 */ lw $s3, 0x24($sp) +/* 0E9FA4 7F0B5474 8FB40028 */ lw $s4, 0x28($sp) +/* 0E9FA8 7F0B5478 8FB5002C */ lw $s5, 0x2c($sp) +/* 0E9FAC 7F0B547C 8FB60030 */ lw $s6, 0x30($sp) +/* 0E9FB0 7F0B5480 03E00008 */ jr $ra +/* 0E9FB4 7F0B5484 27BD0078 */ addiu $sp, $sp, 0x78 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5488(void *arg0, void *arg1) { + // Node 0 + *arg1 = (f32) (*arg0 * room_data_float2); + arg1->unk4 = (f32) (arg0->unk4 * room_data_float2); + arg1->unk8 = (f32) (arg0->unk8 * room_data_float2); + matrix_4x4_transform_vector_in_place(get_BONDdata_field_10CC(), arg1, arg0); + sub_GAME_7F078060(arg1, arg1); + if (0.0f < arg1->unk8) + { + // Node 1 + } + // Node 2 + return 1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5488 +/* 0E9FB8 7F0B5488 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E9FBC 7F0B548C AFBF001C */ sw $ra, 0x1c($sp) +/* 0E9FC0 7F0B5490 AFB00018 */ sw $s0, 0x18($sp) +/* 0E9FC4 7F0B5494 00A08025 */ move $s0, $a1 +/* 0E9FC8 7F0B5498 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0E9FCC 7F0B549C AFA40020 */ sw $a0, 0x20($sp) +/* 0E9FD0 7F0B54A0 8FA60020 */ lw $a2, 0x20($sp) +/* 0E9FD4 7F0B54A4 3C038004 */ lui $v1, %hi(room_data_float2) +/* 0E9FD8 7F0B54A8 246313F8 */ addiu $v1, %lo(room_data_float2) # addiu $v1, $v1, 0x13f8 +/* 0E9FDC 7F0B54AC C4660000 */ lwc1 $f6, ($v1) +/* 0E9FE0 7F0B54B0 C4C40000 */ lwc1 $f4, ($a2) +/* 0E9FE4 7F0B54B4 00402025 */ move $a0, $v0 +/* 0E9FE8 7F0B54B8 02002825 */ move $a1, $s0 +/* 0E9FEC 7F0B54BC 46062202 */ mul.s $f8, $f4, $f6 +/* 0E9FF0 7F0B54C0 E6080000 */ swc1 $f8, ($s0) +/* 0E9FF4 7F0B54C4 C4700000 */ lwc1 $f16, ($v1) +/* 0E9FF8 7F0B54C8 C4CA0004 */ lwc1 $f10, 4($a2) +/* 0E9FFC 7F0B54CC 46105482 */ mul.s $f18, $f10, $f16 +/* 0EA000 7F0B54D0 E6120004 */ swc1 $f18, 4($s0) +/* 0EA004 7F0B54D4 C4660000 */ lwc1 $f6, ($v1) +/* 0EA008 7F0B54D8 C4C40008 */ lwc1 $f4, 8($a2) +/* 0EA00C 7F0B54DC 46062202 */ mul.s $f8, $f4, $f6 +/* 0EA010 7F0B54E0 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 0EA014 7F0B54E4 E6080008 */ swc1 $f8, 8($s0) +/* 0EA018 7F0B54E8 02002025 */ move $a0, $s0 +/* 0EA01C 7F0B54EC 0FC1E018 */ jal sub_GAME_7F078060 +/* 0EA020 7F0B54F0 02002825 */ move $a1, $s0 +/* 0EA024 7F0B54F4 44805000 */ mtc1 $zero, $f10 +/* 0EA028 7F0B54F8 C6100008 */ lwc1 $f16, 8($s0) +/* 0EA02C 7F0B54FC 8FBF001C */ lw $ra, 0x1c($sp) +/* 0EA030 7F0B5500 24020001 */ li $v0, 1 +/* 0EA034 7F0B5504 4610503C */ c.lt.s $f10, $f16 +/* 0EA038 7F0B5508 00000000 */ nop +/* 0EA03C 7F0B550C 45000003 */ bc1f .L7F0B551C +/* 0EA040 7F0B5510 00000000 */ nop +/* 0EA044 7F0B5514 10000001 */ b .L7F0B551C +/* 0EA048 7F0B5518 00001025 */ move $v0, $zero +.L7F0B551C: +/* 0EA04C 7F0B551C 8FB00018 */ lw $s0, 0x18($sp) +/* 0EA050 7F0B5520 03E00008 */ jr $ra +/* 0EA054 7F0B5524 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5528(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058C7C +.word 0x3f666666 /*0.89999998*/ +.text +glabel sub_GAME_7F0B5528 +/* 0EA058 7F0B5528 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 0EA05C 7F0B552C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0EA060 7F0B5530 4485A000 */ mtc1 $a1, $f20 +/* 0EA064 7F0B5534 AFBF0054 */ sw $ra, 0x54($sp) +/* 0EA068 7F0B5538 AFB60048 */ sw $s6, 0x48($sp) +/* 0EA06C 7F0B553C 00C0B025 */ move $s6, $a2 +/* 0EA070 7F0B5540 AFBE0050 */ sw $fp, 0x50($sp) +/* 0EA074 7F0B5544 AFB7004C */ sw $s7, 0x4c($sp) +/* 0EA078 7F0B5548 AFB50044 */ sw $s5, 0x44($sp) +/* 0EA07C 7F0B554C AFB40040 */ sw $s4, 0x40($sp) +/* 0EA080 7F0B5550 AFB3003C */ sw $s3, 0x3c($sp) +/* 0EA084 7F0B5554 AFB20038 */ sw $s2, 0x38($sp) +/* 0EA088 7F0B5558 AFB10034 */ sw $s1, 0x34($sp) +/* 0EA08C 7F0B555C AFB00030 */ sw $s0, 0x30($sp) +/* 0EA090 7F0B5560 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0EA094 7F0B5564 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0EA098 7F0B5568 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0EA09C 7F0B556C AFA400B0 */ sw $a0, 0xb0($sp) +/* 0EA0A0 7F0B5570 AFA200AC */ sw $v0, 0xac($sp) +/* 0EA0A4 7F0B5574 241E0001 */ li $fp, 1 +/* 0EA0A8 7F0B5578 0C0011AB */ jal video_related_27 +/* 0EA0AC 7F0B557C 27A40098 */ addiu $a0, $sp, 0x98 +/* 0EA0B0 7F0B5580 3C018004 */ lui $at, %hi(D_800413FC) +/* 0EA0B4 7F0B5584 C42613FC */ lwc1 $f6, %lo(D_800413FC)($at) +/* 0EA0B8 7F0B5588 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0EA0BC 7F0B558C 3C138008 */ lui $s3, %hi(ptr_bgdata_portals) +/* 0EA0C0 7F0B5590 8FB500B0 */ lw $s5, 0xb0($sp) +/* 0EA0C4 7F0B5594 46062203 */ div.s $f8, $f4, $f6 +/* 0EA0C8 7F0B5598 2673FF80 */ addiu $s3, %lo(ptr_bgdata_portals) # addiu $s3, $s3, -0x80 +/* 0EA0CC 7F0B559C 8E6F0000 */ lw $t7, ($s3) +/* 0EA0D0 7F0B55A0 001570C0 */ sll $t6, $s5, 3 +/* 0EA0D4 7F0B55A4 01C0A825 */ move $s5, $t6 +/* 0EA0D8 7F0B55A8 01EEC021 */ addu $t8, $t7, $t6 +/* 0EA0DC 7F0B55AC 00009025 */ move $s2, $zero +/* 0EA0E0 7F0B55B0 02C08025 */ move $s0, $s6 +/* 0EA0E4 7F0B55B4 E7A8009C */ swc1 $f8, 0x9c($sp) +/* 0EA0E8 7F0B55B8 8F020000 */ lw $v0, ($t8) +/* 0EA0EC 7F0B55BC 90440000 */ lbu $a0, ($v0) +/* 0EA0F0 7F0B55C0 5880004E */ blezl $a0, .L7F0B56FC +/* 0EA0F4 7F0B55C4 4480B000 */ mtc1 $zero, $f22 +/* 0EA0F8 7F0B55C8 3C018006 */ lui $at, %hi(D_80058C7C) +/* 0EA0FC 7F0B55CC 3C148004 */ lui $s4, %hi(room_data_float2) +/* 0EA100 7F0B55D0 4480B000 */ mtc1 $zero, $f22 +/* 0EA104 7F0B55D4 269413F8 */ addiu $s4, %lo(room_data_float2) # addiu $s4, $s4, 0x13f8 +/* 0EA108 7F0B55D8 C4388C7C */ lwc1 $f24, %lo(D_80058C7C)($at) +/* 0EA10C 7F0B55DC 00008825 */ move $s1, $zero +/* 0EA110 7F0B55E0 27B70080 */ addiu $s7, $sp, 0x80 +/* 0EA114 7F0B55E4 0051C821 */ addu $t9, $v0, $s1 +.L7F0B55E8: +/* 0EA118 7F0B55E8 C72A0004 */ lwc1 $f10, 4($t9) +/* 0EA11C 7F0B55EC 4616A032 */ c.eq.s $f20, $f22 +/* 0EA120 7F0B55F0 02E02825 */ move $a1, $s7 +/* 0EA124 7F0B55F4 E60A0000 */ swc1 $f10, ($s0) +/* 0EA128 7F0B55F8 8E680000 */ lw $t0, ($s3) +/* 0EA12C 7F0B55FC 01154821 */ addu $t1, $t0, $s5 +/* 0EA130 7F0B5600 8D2A0000 */ lw $t2, ($t1) +/* 0EA134 7F0B5604 01515821 */ addu $t3, $t2, $s1 +/* 0EA138 7F0B5608 C5720008 */ lwc1 $f18, 8($t3) +/* 0EA13C 7F0B560C E6120004 */ swc1 $f18, 4($s0) +/* 0EA140 7F0B5610 8E6C0000 */ lw $t4, ($s3) +/* 0EA144 7F0B5614 01956821 */ addu $t5, $t4, $s5 +/* 0EA148 7F0B5618 8DAE0000 */ lw $t6, ($t5) +/* 0EA14C 7F0B561C 01D17821 */ addu $t7, $t6, $s1 +/* 0EA150 7F0B5620 C5E4000C */ lwc1 $f4, 0xc($t7) +/* 0EA154 7F0B5624 45010012 */ bc1t .L7F0B5670 +/* 0EA158 7F0B5628 E6040008 */ swc1 $f4, 8($s0) +/* 0EA15C 7F0B562C 0FC2E5B3 */ jal sub_GAME_7F0B96CC +/* 0EA160 7F0B5630 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0EA164 7F0B5634 C7A80080 */ lwc1 $f8, 0x80($sp) +/* 0EA168 7F0B5638 C6060000 */ lwc1 $f6, ($s0) +/* 0EA16C 7F0B563C C6040004 */ lwc1 $f4, 4($s0) +/* 0EA170 7F0B5640 46144282 */ mul.s $f10, $f8, $f20 +/* 0EA174 7F0B5644 460A3480 */ add.s $f18, $f6, $f10 +/* 0EA178 7F0B5648 E6120000 */ swc1 $f18, ($s0) +/* 0EA17C 7F0B564C C7A80084 */ lwc1 $f8, 0x84($sp) +/* 0EA180 7F0B5650 C6120008 */ lwc1 $f18, 8($s0) +/* 0EA184 7F0B5654 46144182 */ mul.s $f6, $f8, $f20 +/* 0EA188 7F0B5658 46062280 */ add.s $f10, $f4, $f6 +/* 0EA18C 7F0B565C E60A0004 */ swc1 $f10, 4($s0) +/* 0EA190 7F0B5660 C7A80088 */ lwc1 $f8, 0x88($sp) +/* 0EA194 7F0B5664 46144102 */ mul.s $f4, $f8, $f20 +/* 0EA198 7F0B5668 46049180 */ add.s $f6, $f18, $f4 +/* 0EA19C 7F0B566C E6060008 */ swc1 $f6, 8($s0) +.L7F0B5670: +/* 0EA1A0 7F0B5670 C60A0000 */ lwc1 $f10, ($s0) +/* 0EA1A4 7F0B5674 C6880000 */ lwc1 $f8, ($s4) +/* 0EA1A8 7F0B5678 C6040004 */ lwc1 $f4, 4($s0) +/* 0EA1AC 7F0B567C 02002825 */ move $a1, $s0 +/* 0EA1B0 7F0B5680 46085482 */ mul.s $f18, $f10, $f8 +/* 0EA1B4 7F0B5684 C6080008 */ lwc1 $f8, 8($s0) +/* 0EA1B8 7F0B5688 E6120000 */ swc1 $f18, ($s0) +/* 0EA1BC 7F0B568C C6860000 */ lwc1 $f6, ($s4) +/* 0EA1C0 7F0B5690 46062282 */ mul.s $f10, $f4, $f6 +/* 0EA1C4 7F0B5694 E60A0004 */ swc1 $f10, 4($s0) +/* 0EA1C8 7F0B5698 C6920000 */ lwc1 $f18, ($s4) +/* 0EA1CC 7F0B569C 46124102 */ mul.s $f4, $f8, $f18 +/* 0EA1D0 7F0B56A0 E6040008 */ swc1 $f4, 8($s0) +/* 0EA1D4 7F0B56A4 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 0EA1D8 7F0B56A8 8FA400AC */ lw $a0, 0xac($sp) +/* 0EA1DC 7F0B56AC C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 0EA1E0 7F0B56B0 C6120008 */ lwc1 $f18, 8($s0) +/* 0EA1E4 7F0B56B4 46003287 */ neg.s $f10, $f6 +/* 0EA1E8 7F0B56B8 46185202 */ mul.s $f8, $f10, $f24 +/* 0EA1EC 7F0B56BC 4612403C */ c.lt.s $f8, $f18 +/* 0EA1F0 7F0B56C0 00000000 */ nop +/* 0EA1F4 7F0B56C4 45020003 */ bc1fl .L7F0B56D4 +/* 0EA1F8 7F0B56C8 8E780000 */ lw $t8, ($s3) +/* 0EA1FC 7F0B56CC 0000F025 */ move $fp, $zero +/* 0EA200 7F0B56D0 8E780000 */ lw $t8, ($s3) +.L7F0B56D4: +/* 0EA204 7F0B56D4 26520001 */ addiu $s2, $s2, 1 +/* 0EA208 7F0B56D8 2631000C */ addiu $s1, $s1, 0xc +/* 0EA20C 7F0B56DC 0315C821 */ addu $t9, $t8, $s5 +/* 0EA210 7F0B56E0 8F220000 */ lw $v0, ($t9) +/* 0EA214 7F0B56E4 2610000C */ addiu $s0, $s0, 0xc +/* 0EA218 7F0B56E8 90440000 */ lbu $a0, ($v0) +/* 0EA21C 7F0B56EC 0244082A */ slt $at, $s2, $a0 +/* 0EA220 7F0B56F0 5420FFBD */ bnezl $at, .L7F0B55E8 +/* 0EA224 7F0B56F4 0051C821 */ addu $t9, $v0, $s1 +/* 0EA228 7F0B56F8 4480B000 */ mtc1 $zero, $f22 +.L7F0B56FC: +/* 0EA22C 7F0B56FC 13C00003 */ beqz $fp, .L7F0B570C +/* 0EA230 7F0B5700 00803825 */ move $a3, $a0 +/* 0EA234 7F0B5704 10000048 */ b .L7F0B5828 +/* 0EA238 7F0B5708 00001025 */ move $v0, $zero +.L7F0B570C: +/* 0EA23C 7F0B570C 18800045 */ blez $a0, .L7F0B5824 +/* 0EA240 7F0B5710 00009025 */ move $s2, $zero +/* 0EA244 7F0B5714 02C08025 */ move $s0, $s6 +/* 0EA248 7F0B5718 2406000C */ li $a2, 12 +.L7F0B571C: +/* 0EA24C 7F0B571C 26450001 */ addiu $a1, $s2, 1 +/* 0EA250 7F0B5720 00A4001A */ div $zero, $a1, $a0 +/* 0EA254 7F0B5724 C6100008 */ lwc1 $f16, 8($s0) +/* 0EA258 7F0B5728 00001810 */ mfhi $v1 +/* 0EA25C 7F0B572C 00A09025 */ move $s2, $a1 +/* 0EA260 7F0B5730 4610B03C */ c.lt.s $f22, $f16 +/* 0EA264 7F0B5734 14800002 */ bnez $a0, .L7F0B5740 +/* 0EA268 7F0B5738 00000000 */ nop +/* 0EA26C 7F0B573C 0007000D */ break 7 +.L7F0B5740: +/* 0EA270 7F0B5740 2401FFFF */ li $at, -1 +/* 0EA274 7F0B5744 14810004 */ bne $a0, $at, .L7F0B5758 +/* 0EA278 7F0B5748 3C018000 */ lui $at, 0x8000 +/* 0EA27C 7F0B574C 14A10002 */ bne $a1, $at, .L7F0B5758 +/* 0EA280 7F0B5750 00000000 */ nop +/* 0EA284 7F0B5754 0006000D */ break 6 +.L7F0B5758: +/* 0EA288 7F0B5758 4502000A */ bc1fl .L7F0B5784 +/* 0EA28C 7F0B575C 4616803E */ c.le.s $f16, $f22 +/* 0EA290 7F0B5760 00660019 */ multu $v1, $a2 +/* 0EA294 7F0B5764 00004012 */ mflo $t0 +/* 0EA298 7F0B5768 02C81021 */ addu $v0, $s6, $t0 +/* 0EA29C 7F0B576C C44E0008 */ lwc1 $f14, 8($v0) +/* 0EA2A0 7F0B5770 4616703E */ c.le.s $f14, $f22 +/* 0EA2A4 7F0B5774 00000000 */ nop +/* 0EA2A8 7F0B5778 4503000E */ bc1tl .L7F0B57B4 +/* 0EA2AC 7F0B577C 46107181 */ sub.s $f6, $f14, $f16 +/* 0EA2B0 7F0B5780 4616803E */ c.le.s $f16, $f22 +.L7F0B5784: +/* 0EA2B4 7F0B5784 00000000 */ nop +/* 0EA2B8 7F0B5788 45020024 */ bc1fl .L7F0B581C +/* 0EA2BC 7F0B578C 00A4082A */ slt $at, $a1, $a0 +/* 0EA2C0 7F0B5790 00660019 */ multu $v1, $a2 +/* 0EA2C4 7F0B5794 00004812 */ mflo $t1 +/* 0EA2C8 7F0B5798 02C91021 */ addu $v0, $s6, $t1 +/* 0EA2CC 7F0B579C C44E0008 */ lwc1 $f14, 8($v0) +/* 0EA2D0 7F0B57A0 460EB03C */ c.lt.s $f22, $f14 +/* 0EA2D4 7F0B57A4 00000000 */ nop +/* 0EA2D8 7F0B57A8 4502001C */ bc1fl .L7F0B581C +/* 0EA2DC 7F0B57AC 00A4082A */ slt $at, $a1, $a0 +/* 0EA2E0 7F0B57B0 46107181 */ sub.s $f6, $f14, $f16 +.L7F0B57B4: +/* 0EA2E4 7F0B57B4 C6000000 */ lwc1 $f0, ($s0) +/* 0EA2E8 7F0B57B8 C44A0000 */ lwc1 $f10, ($v0) +/* 0EA2EC 7F0B57BC 46008107 */ neg.s $f4, $f16 +/* 0EA2F0 7F0B57C0 00E60019 */ multu $a3, $a2 +/* 0EA2F4 7F0B57C4 46062303 */ div.s $f12, $f4, $f6 +/* 0EA2F8 7F0B57C8 3C0B8008 */ lui $t3, %hi(ptr_bgdata_portals) +/* 0EA2FC 7F0B57CC 24E70001 */ addiu $a3, $a3, 1 +/* 0EA300 7F0B57D0 46005201 */ sub.s $f8, $f10, $f0 +/* 0EA304 7F0B57D4 00005012 */ mflo $t2 +/* 0EA308 7F0B57D8 02CA1821 */ addu $v1, $s6, $t2 +/* 0EA30C 7F0B57DC 2463000C */ addiu $v1, $v1, 0xc +/* 0EA310 7F0B57E0 460C4482 */ mul.s $f18, $f8, $f12 +/* 0EA314 7F0B57E4 46009100 */ add.s $f4, $f18, $f0 +/* 0EA318 7F0B57E8 E464FFF4 */ swc1 $f4, -0xc($v1) +/* 0EA31C 7F0B57EC C4460004 */ lwc1 $f6, 4($v0) +/* 0EA320 7F0B57F0 C6020004 */ lwc1 $f2, 4($s0) +/* 0EA324 7F0B57F4 E476FFFC */ swc1 $f22, -4($v1) +/* 0EA328 7F0B57F8 46023281 */ sub.s $f10, $f6, $f2 +/* 0EA32C 7F0B57FC 460C5202 */ mul.s $f8, $f10, $f12 +/* 0EA330 7F0B5800 46024480 */ add.s $f18, $f8, $f2 +/* 0EA334 7F0B5804 E472FFF8 */ swc1 $f18, -8($v1) +/* 0EA338 7F0B5808 8D6BFF80 */ lw $t3, %lo(ptr_bgdata_portals)($t3) +/* 0EA33C 7F0B580C 01756021 */ addu $t4, $t3, $s5 +/* 0EA340 7F0B5810 8D8D0000 */ lw $t5, ($t4) +/* 0EA344 7F0B5814 91A40000 */ lbu $a0, ($t5) +/* 0EA348 7F0B5818 00A4082A */ slt $at, $a1, $a0 +.L7F0B581C: +/* 0EA34C 7F0B581C 1420FFBF */ bnez $at, .L7F0B571C +/* 0EA350 7F0B5820 2610000C */ addiu $s0, $s0, 0xc +.L7F0B5824: +/* 0EA354 7F0B5824 00E01025 */ move $v0, $a3 +.L7F0B5828: +/* 0EA358 7F0B5828 8FBF0054 */ lw $ra, 0x54($sp) +/* 0EA35C 7F0B582C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0EA360 7F0B5830 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0EA364 7F0B5834 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0EA368 7F0B5838 8FB00030 */ lw $s0, 0x30($sp) +/* 0EA36C 7F0B583C 8FB10034 */ lw $s1, 0x34($sp) +/* 0EA370 7F0B5840 8FB20038 */ lw $s2, 0x38($sp) +/* 0EA374 7F0B5844 8FB3003C */ lw $s3, 0x3c($sp) +/* 0EA378 7F0B5848 8FB40040 */ lw $s4, 0x40($sp) +/* 0EA37C 7F0B584C 8FB50044 */ lw $s5, 0x44($sp) +/* 0EA380 7F0B5850 8FB60048 */ lw $s6, 0x48($sp) +/* 0EA384 7F0B5854 8FB7004C */ lw $s7, 0x4c($sp) +/* 0EA388 7F0B5858 8FBE0050 */ lw $fp, 0x50($sp) +/* 0EA38C 7F0B585C 03E00008 */ jr $ra +/* 0EA390 7F0B5860 27BD00B0 */ addiu $sp, $sp, 0xb0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5864(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5864 +/* 0EA394 7F0B5864 27BDFE90 */ addiu $sp, $sp, -0x170 +/* 0EA398 7F0B5868 00047080 */ sll $t6, $a0, 2 +/* 0EA39C 7F0B586C 01C47021 */ addu $t6, $t6, $a0 +/* 0EA3A0 7F0B5870 3C0F8008 */ lui $t7, %hi(table_for_portals) +/* 0EA3A4 7F0B5874 AFB5003C */ sw $s5, 0x3c($sp) +/* 0EA3A8 7F0B5878 25EF1618 */ addiu $t7, %lo(table_for_portals) # addiu $t7, $t7, 0x1618 +/* 0EA3AC 7F0B587C 000E7080 */ sll $t6, $t6, 2 +/* 0EA3B0 7F0B5880 01CFA821 */ addu $s5, $t6, $t7 +/* 0EA3B4 7F0B5884 8EB80000 */ lw $t8, ($s5) +/* 0EA3B8 7F0B5888 AFB60040 */ sw $s6, 0x40($sp) +/* 0EA3BC 7F0B588C AFB00028 */ sw $s0, 0x28($sp) +/* 0EA3C0 7F0B5890 00808025 */ move $s0, $a0 +/* 0EA3C4 7F0B5894 00A0B025 */ move $s6, $a1 +/* 0EA3C8 7F0B5898 AFBF0044 */ sw $ra, 0x44($sp) +/* 0EA3CC 7F0B589C AFB40038 */ sw $s4, 0x38($sp) +/* 0EA3D0 7F0B58A0 AFB30034 */ sw $s3, 0x34($sp) +/* 0EA3D4 7F0B58A4 AFB20030 */ sw $s2, 0x30($sp) +/* 0EA3D8 7F0B58A8 AFB1002C */ sw $s1, 0x2c($sp) +/* 0EA3DC 7F0B58AC F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0EA3E0 7F0B58B0 0700000B */ bltz $t8, .L7F0B58E0 +/* 0EA3E4 7F0B58B4 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0EA3E8 7F0B58B8 C6A40004 */ lwc1 $f4, 4($s5) +/* 0EA3EC 7F0B58BC E4A40000 */ swc1 $f4, ($a1) +/* 0EA3F0 7F0B58C0 C6A60008 */ lwc1 $f6, 8($s5) +/* 0EA3F4 7F0B58C4 E4A60004 */ swc1 $f6, 4($a1) +/* 0EA3F8 7F0B58C8 C6A8000C */ lwc1 $f8, 0xc($s5) +/* 0EA3FC 7F0B58CC E4A80008 */ swc1 $f8, 8($a1) +/* 0EA400 7F0B58D0 C6AA0010 */ lwc1 $f10, 0x10($s5) +/* 0EA404 7F0B58D4 E4AA000C */ swc1 $f10, 0xc($a1) +/* 0EA408 7F0B58D8 10000082 */ b .L7F0B5AE4 +/* 0EA40C 7F0B58DC 8EA20000 */ lw $v0, ($s5) +.L7F0B58E0: +/* 0EA410 7F0B58E0 0FC2E664 */ jal sub_GAME_7F0B9990 +/* 0EA414 7F0B58E4 02002025 */ move $a0, $s0 +/* 0EA418 7F0B58E8 27B10080 */ addiu $s1, $sp, 0x80 +/* 0EA41C 7F0B58EC 44050000 */ mfc1 $a1, $f0 +/* 0EA420 7F0B58F0 46000586 */ mov.s $f22, $f0 +/* 0EA424 7F0B58F4 02203025 */ move $a2, $s1 +/* 0EA428 7F0B58F8 0FC2D54A */ jal sub_GAME_7F0B5528 +/* 0EA42C 7F0B58FC 02002025 */ move $a0, $s0 +/* 0EA430 7F0B5900 4480A000 */ mtc1 $zero, $f20 +/* 0EA434 7F0B5904 0002C880 */ sll $t9, $v0, 2 +/* 0EA438 7F0B5908 00409825 */ move $s3, $v0 +/* 0EA43C 7F0B590C 4616A03C */ c.lt.s $f20, $f22 +/* 0EA440 7F0B5910 0322C823 */ subu $t9, $t9, $v0 +/* 0EA444 7F0B5914 02002025 */ move $a0, $s0 +/* 0EA448 7F0B5918 45020008 */ bc1fl .L7F0B593C +/* 0EA44C 7F0B591C 00009025 */ move $s2, $zero +/* 0EA450 7F0B5920 4600B107 */ neg.s $f4, $f22 +/* 0EA454 7F0B5924 0019C880 */ sll $t9, $t9, 2 +/* 0EA458 7F0B5928 44052000 */ mfc1 $a1, $f4 +/* 0EA45C 7F0B592C 0FC2D54A */ jal sub_GAME_7F0B5528 +/* 0EA460 7F0B5930 02393021 */ addu $a2, $s1, $t9 +/* 0EA464 7F0B5934 02629821 */ addu $s3, $s3, $v0 +/* 0EA468 7F0B5938 00009025 */ move $s2, $zero +.L7F0B593C: +/* 0EA46C 7F0B593C 1A600039 */ blez $s3, .L7F0B5A24 +/* 0EA470 7F0B5940 00008825 */ move $s1, $zero +/* 0EA474 7F0B5944 27B00080 */ addiu $s0, $sp, 0x80 +/* 0EA478 7F0B5948 27B40078 */ addiu $s4, $sp, 0x78 +.L7F0B594C: +/* 0EA47C 7F0B594C C6060008 */ lwc1 $f6, 8($s0) +/* 0EA480 7F0B5950 C7AE0074 */ lwc1 $f14, 0x74($sp) +/* 0EA484 7F0B5954 C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 0EA488 7F0B5958 4614303E */ c.le.s $f6, $f20 +/* 0EA48C 7F0B595C C7B20070 */ lwc1 $f18, 0x70($sp) +/* 0EA490 7F0B5960 C7B60068 */ lwc1 $f22, 0x68($sp) +/* 0EA494 7F0B5964 02002025 */ move $a0, $s0 +/* 0EA498 7F0B5968 45020024 */ bc1fl .L7F0B59FC +/* 0EA49C 7F0B596C 26310001 */ addiu $s1, $s1, 1 +/* 0EA4A0 7F0B5970 0FC1E018 */ jal sub_GAME_7F078060 +/* 0EA4A4 7F0B5974 02802825 */ move $a1, $s4 +/* 0EA4A8 7F0B5978 16400006 */ bnez $s2, .L7F0B5994 +/* 0EA4AC 7F0B597C C7A20078 */ lwc1 $f2, 0x78($sp) +/* 0EA4B0 7F0B5980 C7B60078 */ lwc1 $f22, 0x78($sp) +/* 0EA4B4 7F0B5984 C7B0007C */ lwc1 $f16, 0x7c($sp) +/* 0EA4B8 7F0B5988 4600B486 */ mov.s $f18, $f22 +/* 0EA4BC 7F0B598C 10000019 */ b .L7F0B59F4 +/* 0EA4C0 7F0B5990 46008386 */ mov.s $f14, $f16 +.L7F0B5994: +/* 0EA4C4 7F0B5994 C7B60068 */ lwc1 $f22, 0x68($sp) +/* 0EA4C8 7F0B5998 C7B20070 */ lwc1 $f18, 0x70($sp) +/* 0EA4CC 7F0B599C C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 0EA4D0 7F0B59A0 4616103C */ c.lt.s $f2, $f22 +/* 0EA4D4 7F0B59A4 C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 0EA4D8 7F0B59A8 C7AE0074 */ lwc1 $f14, 0x74($sp) +/* 0EA4DC 7F0B59AC 45020003 */ bc1fl .L7F0B59BC +/* 0EA4E0 7F0B59B0 4602903C */ c.lt.s $f18, $f2 +/* 0EA4E4 7F0B59B4 46001586 */ mov.s $f22, $f2 +/* 0EA4E8 7F0B59B8 4602903C */ c.lt.s $f18, $f2 +.L7F0B59BC: +/* 0EA4EC 7F0B59BC 00000000 */ nop +/* 0EA4F0 7F0B59C0 45020003 */ bc1fl .L7F0B59D0 +/* 0EA4F4 7F0B59C4 4610603C */ c.lt.s $f12, $f16 +/* 0EA4F8 7F0B59C8 46001486 */ mov.s $f18, $f2 +/* 0EA4FC 7F0B59CC 4610603C */ c.lt.s $f12, $f16 +.L7F0B59D0: +/* 0EA500 7F0B59D0 00000000 */ nop +/* 0EA504 7F0B59D4 45020003 */ bc1fl .L7F0B59E4 +/* 0EA508 7F0B59D8 460C703C */ c.lt.s $f14, $f12 +/* 0EA50C 7F0B59DC 46006406 */ mov.s $f16, $f12 +/* 0EA510 7F0B59E0 460C703C */ c.lt.s $f14, $f12 +.L7F0B59E4: +/* 0EA514 7F0B59E4 00000000 */ nop +/* 0EA518 7F0B59E8 45020003 */ bc1fl .L7F0B59F8 +/* 0EA51C 7F0B59EC 26520001 */ addiu $s2, $s2, 1 +/* 0EA520 7F0B59F0 46006386 */ mov.s $f14, $f12 +.L7F0B59F4: +/* 0EA524 7F0B59F4 26520001 */ addiu $s2, $s2, 1 +.L7F0B59F8: +/* 0EA528 7F0B59F8 26310001 */ addiu $s1, $s1, 1 +.L7F0B59FC: +/* 0EA52C 7F0B59FC 2610000C */ addiu $s0, $s0, 0xc +/* 0EA530 7F0B5A00 E7AE0074 */ swc1 $f14, 0x74($sp) +/* 0EA534 7F0B5A04 E7B0006C */ swc1 $f16, 0x6c($sp) +/* 0EA538 7F0B5A08 E7B20070 */ swc1 $f18, 0x70($sp) +/* 0EA53C 7F0B5A0C 1633FFCF */ bne $s1, $s3, .L7F0B594C +/* 0EA540 7F0B5A10 E7B60068 */ swc1 $f22, 0x68($sp) +/* 0EA544 7F0B5A14 E7AE0074 */ swc1 $f14, 0x74($sp) +/* 0EA548 7F0B5A18 E7B0006C */ swc1 $f16, 0x6c($sp) +/* 0EA54C 7F0B5A1C E7B20070 */ swc1 $f18, 0x70($sp) +/* 0EA550 7F0B5A20 E7B60068 */ swc1 $f22, 0x68($sp) +.L7F0B5A24: +/* 0EA554 7F0B5A24 C7AE0074 */ lwc1 $f14, 0x74($sp) +/* 0EA558 7F0B5A28 C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 0EA55C 7F0B5A2C C7B20070 */ lwc1 $f18, 0x70($sp) +/* 0EA560 7F0B5A30 16400006 */ bnez $s2, .L7F0B5A4C +/* 0EA564 7F0B5A34 C7B60068 */ lwc1 $f22, 0x68($sp) +/* 0EA568 7F0B5A38 E7B40074 */ swc1 $f20, 0x74($sp) +/* 0EA56C 7F0B5A3C E7B4006C */ swc1 $f20, 0x6c($sp) +/* 0EA570 7F0B5A40 E7B40070 */ swc1 $f20, 0x70($sp) +/* 0EA574 7F0B5A44 10000015 */ b .L7F0B5A9C +/* 0EA578 7F0B5A48 E7B40068 */ swc1 $f20, 0x68($sp) +.L7F0B5A4C: +/* 0EA57C 7F0B5A4C 4616903E */ c.le.s $f18, $f22 +/* 0EA580 7F0B5A50 E7AE0074 */ swc1 $f14, 0x74($sp) +/* 0EA584 7F0B5A54 E7B0006C */ swc1 $f16, 0x6c($sp) +/* 0EA588 7F0B5A58 E7B20070 */ swc1 $f18, 0x70($sp) +/* 0EA58C 7F0B5A5C 45010005 */ bc1t .L7F0B5A74 +/* 0EA590 7F0B5A60 E7B60068 */ swc1 $f22, 0x68($sp) +/* 0EA594 7F0B5A64 4610703E */ c.le.s $f14, $f16 +/* 0EA598 7F0B5A68 E7AE0074 */ swc1 $f14, 0x74($sp) +/* 0EA59C 7F0B5A6C E7B0006C */ swc1 $f16, 0x6c($sp) +/* 0EA5A0 7F0B5A70 4500000A */ bc1f .L7F0B5A9C +.L7F0B5A74: +/* 0EA5A4 7F0B5A74 3C028008 */ lui $v0, %hi(pPlayer) +/* 0EA5A8 7F0B5A78 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0EA5AC 7F0B5A7C C4481118 */ lwc1 $f8, 0x1118($v0) +/* 0EA5B0 7F0B5A80 E7A80068 */ swc1 $f8, 0x68($sp) +/* 0EA5B4 7F0B5A84 C44A111C */ lwc1 $f10, 0x111c($v0) +/* 0EA5B8 7F0B5A88 E7AA006C */ swc1 $f10, 0x6c($sp) +/* 0EA5BC 7F0B5A8C C4441120 */ lwc1 $f4, 0x1120($v0) +/* 0EA5C0 7F0B5A90 E7A40070 */ swc1 $f4, 0x70($sp) +/* 0EA5C4 7F0B5A94 C4461124 */ lwc1 $f6, 0x1124($v0) +/* 0EA5C8 7F0B5A98 E7A60074 */ swc1 $f6, 0x74($sp) +.L7F0B5A9C: +/* 0EA5CC 7F0B5A9C C7A80068 */ lwc1 $f8, 0x68($sp) +/* 0EA5D0 7F0B5AA0 02401025 */ move $v0, $s2 +/* 0EA5D4 7F0B5AA4 E6C80000 */ swc1 $f8, ($s6) +/* 0EA5D8 7F0B5AA8 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 0EA5DC 7F0B5AAC C6C80000 */ lwc1 $f8, ($s6) +/* 0EA5E0 7F0B5AB0 E6CA0004 */ swc1 $f10, 4($s6) +/* 0EA5E4 7F0B5AB4 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 0EA5E8 7F0B5AB8 E6C40008 */ swc1 $f4, 8($s6) +/* 0EA5EC 7F0B5ABC C7A60074 */ lwc1 $f6, 0x74($sp) +/* 0EA5F0 7F0B5AC0 E6C6000C */ swc1 $f6, 0xc($s6) +/* 0EA5F4 7F0B5AC4 E6A80004 */ swc1 $f8, 4($s5) +/* 0EA5F8 7F0B5AC8 C6CA0004 */ lwc1 $f10, 4($s6) +/* 0EA5FC 7F0B5ACC E6AA0008 */ swc1 $f10, 8($s5) +/* 0EA600 7F0B5AD0 C6C40008 */ lwc1 $f4, 8($s6) +/* 0EA604 7F0B5AD4 E6A4000C */ swc1 $f4, 0xc($s5) +/* 0EA608 7F0B5AD8 C6C6000C */ lwc1 $f6, 0xc($s6) +/* 0EA60C 7F0B5ADC AEB20000 */ sw $s2, ($s5) +/* 0EA610 7F0B5AE0 E6A60010 */ swc1 $f6, 0x10($s5) +.L7F0B5AE4: +/* 0EA614 7F0B5AE4 8FBF0044 */ lw $ra, 0x44($sp) +/* 0EA618 7F0B5AE8 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0EA61C 7F0B5AEC D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0EA620 7F0B5AF0 8FB00028 */ lw $s0, 0x28($sp) +/* 0EA624 7F0B5AF4 8FB1002C */ lw $s1, 0x2c($sp) +/* 0EA628 7F0B5AF8 8FB20030 */ lw $s2, 0x30($sp) +/* 0EA62C 7F0B5AFC 8FB30034 */ lw $s3, 0x34($sp) +/* 0EA630 7F0B5B00 8FB40038 */ lw $s4, 0x38($sp) +/* 0EA634 7F0B5B04 8FB5003C */ lw $s5, 0x3c($sp) +/* 0EA638 7F0B5B08 8FB60040 */ lw $s6, 0x40($sp) +/* 0EA63C 7F0B5B0C 03E00008 */ jr $ra +/* 0EA640 7F0B5B10 27BD0170 */ addiu $sp, $sp, 0x170 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B5B14(void *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + // Node 0 + arg0->unk4 = (s32) (((arg1 & 0x3ff) << 0xe) | ((arg2 & 0x3ff) * 4)); + *arg0 = (s32) (((((arg3 + 1) & 0x3ff) << 0xe) | 0xf6000000) | (((arg4 + 1) & 0x3ff) * 4)); + return (arg0 + 8); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5B14 +/* 0EA644 7F0B5B14 8FA80010 */ lw $t0, 0x10($sp) +/* 0EA648 7F0B5B18 24EE0001 */ addiu $t6, $a3, 1 +/* 0EA64C 7F0B5B1C 31CF03FF */ andi $t7, $t6, 0x3ff +/* 0EA650 7F0B5B20 000FC380 */ sll $t8, $t7, 0xe +/* 0EA654 7F0B5B24 3C01F600 */ lui $at, 0xf600 +/* 0EA658 7F0B5B28 25090001 */ addiu $t1, $t0, 1 +/* 0EA65C 7F0B5B2C 312A03FF */ andi $t2, $t1, 0x3ff +/* 0EA660 7F0B5B30 0301C825 */ or $t9, $t8, $at +/* 0EA664 7F0B5B34 30CF03FF */ andi $t7, $a2, 0x3ff +/* 0EA668 7F0B5B38 30AD03FF */ andi $t5, $a1, 0x3ff +/* 0EA66C 7F0B5B3C 000D7380 */ sll $t6, $t5, 0xe +/* 0EA670 7F0B5B40 000FC080 */ sll $t8, $t7, 2 +/* 0EA674 7F0B5B44 000A5880 */ sll $t3, $t2, 2 +/* 0EA678 7F0B5B48 032B6025 */ or $t4, $t9, $t3 +/* 0EA67C 7F0B5B4C 01D84025 */ or $t0, $t6, $t8 +/* 0EA680 7F0B5B50 AC880004 */ sw $t0, 4($a0) +/* 0EA684 7F0B5B54 AC8C0000 */ sw $t4, ($a0) +/* 0EA688 7F0B5B58 03E00008 */ jr $ra +/* 0EA68C 7F0B5B5C 24820008 */ addiu $v0, $a0, 8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5B60(s32 arg1, ? arg2, ? arg3, ?32 arg4) { + // Node 0 + return sub_GAME_7F0B5B14(sub_GAME_7F0B5B14(sub_GAME_7F0B5B14(sub_GAME_7F0B5B14(), arg3, arg2, arg3, arg4), arg1, arg4, arg3), arg1, arg2, arg1, arg4); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5B60 +/* 0EA690 7F0B5B60 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0EA694 7F0B5B64 AFBF001C */ sw $ra, 0x1c($sp) +/* 0EA698 7F0B5B68 AFA50024 */ sw $a1, 0x24($sp) +/* 0EA69C 7F0B5B6C AFA7002C */ sw $a3, 0x2c($sp) +/* 0EA6A0 7F0B5B70 AFA60010 */ sw $a2, 0x10($sp) +/* 0EA6A4 7F0B5B74 0FC2D6C5 */ jal sub_GAME_7F0B5B14 +/* 0EA6A8 7F0B5B78 AFA60028 */ sw $a2, 0x28($sp) +/* 0EA6AC 7F0B5B7C 8FA5002C */ lw $a1, 0x2c($sp) +/* 0EA6B0 7F0B5B80 8FAE0030 */ lw $t6, 0x30($sp) +/* 0EA6B4 7F0B5B84 00402025 */ move $a0, $v0 +/* 0EA6B8 7F0B5B88 8FA60028 */ lw $a2, 0x28($sp) +/* 0EA6BC 7F0B5B8C 00A03825 */ move $a3, $a1 +/* 0EA6C0 7F0B5B90 0FC2D6C5 */ jal sub_GAME_7F0B5B14 +/* 0EA6C4 7F0B5B94 AFAE0010 */ sw $t6, 0x10($sp) +/* 0EA6C8 7F0B5B98 8FA60030 */ lw $a2, 0x30($sp) +/* 0EA6CC 7F0B5B9C 00402025 */ move $a0, $v0 +/* 0EA6D0 7F0B5BA0 8FA50024 */ lw $a1, 0x24($sp) +/* 0EA6D4 7F0B5BA4 8FA7002C */ lw $a3, 0x2c($sp) +/* 0EA6D8 7F0B5BA8 0FC2D6C5 */ jal sub_GAME_7F0B5B14 +/* 0EA6DC 7F0B5BAC AFA60010 */ sw $a2, 0x10($sp) +/* 0EA6E0 7F0B5BB0 8FA70024 */ lw $a3, 0x24($sp) +/* 0EA6E4 7F0B5BB4 8FB80030 */ lw $t8, 0x30($sp) +/* 0EA6E8 7F0B5BB8 00402025 */ move $a0, $v0 +/* 0EA6EC 7F0B5BBC 8FA60028 */ lw $a2, 0x28($sp) +/* 0EA6F0 7F0B5BC0 00E02825 */ move $a1, $a3 +/* 0EA6F4 7F0B5BC4 0FC2D6C5 */ jal sub_GAME_7F0B5B14 +/* 0EA6F8 7F0B5BC8 AFB80010 */ sw $t8, 0x10($sp) +/* 0EA6FC 7F0B5BCC 8FBF001C */ lw $ra, 0x1c($sp) +/* 0EA700 7F0B5BD0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0EA704 7F0B5BD4 03E00008 */ jr $ra +/* 0EA708 7F0B5BD8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 vis_is_inline_of_sight(void *arg0, void *arg1) { + // Node 0 + if (*arg1 < *arg0) + { + // Node 1 + *arg0 = (f32) *arg0; + } + else + { + // Node 2 + *arg0 = (f32) *arg1; + } + // Node 3 + if (arg1->unk4 < arg0->unk4) + { + // Node 4 + arg0->unk4 = (f32) arg0->unk4; + } + else + { + // Node 5 + arg0->unk4 = (f32) arg1->unk4; + } + // Node 6 + if (arg0->unk8 < arg1->unk8) + { + // Node 7 + arg0->unk8 = (f32) arg0->unk8; + } + else + { + // Node 8 + arg0->unk8 = (f32) arg1->unk8; + } + // Node 9 + if (arg0->unkC < arg1->unkC) + { + // Node 10 + arg0->unkC = (f32) arg0->unkC; + } + else + { + // Node 11 + arg0->unkC = (f32) arg1->unkC; + } + // Node 12 + if (arg0->unk8 <= *arg0) + { + // Node 13 + *arg0 = (f32) arg0->unk8; + return arg0->unk8; + } + // Node 14 + if (arg0->unkC <= arg0->unk4) + { + // Node 15 + arg0->unk4 = (f32) arg0->unkC; + return 0.0f; + } + // Node 16 + return 1.401298464324817e-45f; +} +#else +GLOBAL_ASM( +.text +glabel vis_is_inline_of_sight +/* 0EA70C 7F0B5BDC C4A00000 */ lwc1 $f0, ($a1) +/* 0EA710 7F0B5BE0 C4820000 */ lwc1 $f2, ($a0) +/* 0EA714 7F0B5BE4 4602003C */ c.lt.s $f0, $f2 +/* 0EA718 7F0B5BE8 00000000 */ nop +/* 0EA71C 7F0B5BEC 45020004 */ bc1fl .L7F0B5C00 +/* 0EA720 7F0B5BF0 E4800000 */ swc1 $f0, ($a0) +/* 0EA724 7F0B5BF4 10000002 */ b .L7F0B5C00 +/* 0EA728 7F0B5BF8 E4820000 */ swc1 $f2, ($a0) +/* 0EA72C 7F0B5BFC E4800000 */ swc1 $f0, ($a0) +.L7F0B5C00: +/* 0EA730 7F0B5C00 C4A00004 */ lwc1 $f0, 4($a1) +/* 0EA734 7F0B5C04 C4820004 */ lwc1 $f2, 4($a0) +/* 0EA738 7F0B5C08 00001025 */ move $v0, $zero +/* 0EA73C 7F0B5C0C 4602003C */ c.lt.s $f0, $f2 +/* 0EA740 7F0B5C10 00000000 */ nop +/* 0EA744 7F0B5C14 45020004 */ bc1fl .L7F0B5C28 +/* 0EA748 7F0B5C18 E4800004 */ swc1 $f0, 4($a0) +/* 0EA74C 7F0B5C1C 10000002 */ b .L7F0B5C28 +/* 0EA750 7F0B5C20 E4820004 */ swc1 $f2, 4($a0) +/* 0EA754 7F0B5C24 E4800004 */ swc1 $f0, 4($a0) +.L7F0B5C28: +/* 0EA758 7F0B5C28 C4800008 */ lwc1 $f0, 8($a0) +/* 0EA75C 7F0B5C2C C4A20008 */ lwc1 $f2, 8($a1) +/* 0EA760 7F0B5C30 4602003C */ c.lt.s $f0, $f2 +/* 0EA764 7F0B5C34 00000000 */ nop +/* 0EA768 7F0B5C38 45020004 */ bc1fl .L7F0B5C4C +/* 0EA76C 7F0B5C3C E4820008 */ swc1 $f2, 8($a0) +/* 0EA770 7F0B5C40 10000002 */ b .L7F0B5C4C +/* 0EA774 7F0B5C44 E4800008 */ swc1 $f0, 8($a0) +/* 0EA778 7F0B5C48 E4820008 */ swc1 $f2, 8($a0) +.L7F0B5C4C: +/* 0EA77C 7F0B5C4C C480000C */ lwc1 $f0, 0xc($a0) +/* 0EA780 7F0B5C50 C4A2000C */ lwc1 $f2, 0xc($a1) +/* 0EA784 7F0B5C54 4602003C */ c.lt.s $f0, $f2 +/* 0EA788 7F0B5C58 00000000 */ nop +/* 0EA78C 7F0B5C5C 45020004 */ bc1fl .L7F0B5C70 +/* 0EA790 7F0B5C60 E482000C */ swc1 $f2, 0xc($a0) +/* 0EA794 7F0B5C64 10000002 */ b .L7F0B5C70 +/* 0EA798 7F0B5C68 E480000C */ swc1 $f0, 0xc($a0) +/* 0EA79C 7F0B5C6C E482000C */ swc1 $f2, 0xc($a0) +.L7F0B5C70: +/* 0EA7A0 7F0B5C70 C4800008 */ lwc1 $f0, 8($a0) +/* 0EA7A4 7F0B5C74 C4840000 */ lwc1 $f4, ($a0) +/* 0EA7A8 7F0B5C78 4604003E */ c.le.s $f0, $f4 +/* 0EA7AC 7F0B5C7C 00000000 */ nop +/* 0EA7B0 7F0B5C80 45020004 */ bc1fl .L7F0B5C94 +/* 0EA7B4 7F0B5C84 C480000C */ lwc1 $f0, 0xc($a0) +/* 0EA7B8 7F0B5C88 03E00008 */ jr $ra +/* 0EA7BC 7F0B5C8C E4800000 */ swc1 $f0, ($a0) + +/* 0EA7C0 7F0B5C90 C480000C */ lwc1 $f0, 0xc($a0) +.L7F0B5C94: +/* 0EA7C4 7F0B5C94 C4860004 */ lwc1 $f6, 4($a0) +/* 0EA7C8 7F0B5C98 24020001 */ li $v0, 1 +/* 0EA7CC 7F0B5C9C 4606003E */ c.le.s $f0, $f6 +/* 0EA7D0 7F0B5CA0 00000000 */ nop +/* 0EA7D4 7F0B5CA4 45000004 */ bc1f .L7F0B5CB8 +/* 0EA7D8 7F0B5CA8 00000000 */ nop +/* 0EA7DC 7F0B5CAC E4800004 */ swc1 $f0, 4($a0) +/* 0EA7E0 7F0B5CB0 03E00008 */ jr $ra +/* 0EA7E4 7F0B5CB4 00001025 */ move $v0, $zero + +.L7F0B5CB8: +/* 0EA7E8 7F0B5CB8 03E00008 */ jr $ra +/* 0EA7EC 7F0B5CBC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B5CC0(void *arg0, void *arg1) { + // Node 0 + if (*arg0 < *arg1) + { + // Node 1 + *arg0 = (f32) *arg0; + } + else + { + // Node 2 + *arg0 = (f32) *arg1; + } + // Node 3 + if (arg0->unk4 < arg1->unk4) + { + // Node 4 + arg0->unk4 = (f32) arg0->unk4; + } + else + { + // Node 5 + arg0->unk4 = (f32) arg1->unk4; + } + // Node 6 + if (arg1->unk8 < arg0->unk8) + { + // Node 7 + arg0->unk8 = (f32) arg0->unk8; + } + else + { + // Node 8 + arg0->unk8 = (f32) arg1->unk8; + } + // Node 9 + if (arg1->unkC < arg0->unkC) + { + // Node 10 + arg0->unkC = (f32) arg0->unkC; + return arg1->unkC; + } + // Node 11 + arg0->unkC = (f32) arg1->unkC; + return arg1->unkC; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5CC0 +/* 0EA7F0 7F0B5CC0 C4800000 */ lwc1 $f0, ($a0) +/* 0EA7F4 7F0B5CC4 C4A20000 */ lwc1 $f2, ($a1) +/* 0EA7F8 7F0B5CC8 4602003C */ c.lt.s $f0, $f2 +/* 0EA7FC 7F0B5CCC 00000000 */ nop +/* 0EA800 7F0B5CD0 45020004 */ bc1fl .L7F0B5CE4 +/* 0EA804 7F0B5CD4 E4820000 */ swc1 $f2, ($a0) +/* 0EA808 7F0B5CD8 10000002 */ b .L7F0B5CE4 +/* 0EA80C 7F0B5CDC E4800000 */ swc1 $f0, ($a0) +/* 0EA810 7F0B5CE0 E4820000 */ swc1 $f2, ($a0) +.L7F0B5CE4: +/* 0EA814 7F0B5CE4 C4800004 */ lwc1 $f0, 4($a0) +/* 0EA818 7F0B5CE8 C4A20004 */ lwc1 $f2, 4($a1) +/* 0EA81C 7F0B5CEC 4602003C */ c.lt.s $f0, $f2 +/* 0EA820 7F0B5CF0 00000000 */ nop +/* 0EA824 7F0B5CF4 45020004 */ bc1fl .L7F0B5D08 +/* 0EA828 7F0B5CF8 E4820004 */ swc1 $f2, 4($a0) +/* 0EA82C 7F0B5CFC 10000002 */ b .L7F0B5D08 +/* 0EA830 7F0B5D00 E4800004 */ swc1 $f0, 4($a0) +/* 0EA834 7F0B5D04 E4820004 */ swc1 $f2, 4($a0) +.L7F0B5D08: +/* 0EA838 7F0B5D08 C4A00008 */ lwc1 $f0, 8($a1) +/* 0EA83C 7F0B5D0C C4820008 */ lwc1 $f2, 8($a0) +/* 0EA840 7F0B5D10 4602003C */ c.lt.s $f0, $f2 +/* 0EA844 7F0B5D14 00000000 */ nop +/* 0EA848 7F0B5D18 45020004 */ bc1fl .L7F0B5D2C +/* 0EA84C 7F0B5D1C E4800008 */ swc1 $f0, 8($a0) +/* 0EA850 7F0B5D20 10000002 */ b .L7F0B5D2C +/* 0EA854 7F0B5D24 E4820008 */ swc1 $f2, 8($a0) +/* 0EA858 7F0B5D28 E4800008 */ swc1 $f0, 8($a0) +.L7F0B5D2C: +/* 0EA85C 7F0B5D2C C4A0000C */ lwc1 $f0, 0xc($a1) +/* 0EA860 7F0B5D30 C482000C */ lwc1 $f2, 0xc($a0) +/* 0EA864 7F0B5D34 4602003C */ c.lt.s $f0, $f2 +/* 0EA868 7F0B5D38 00000000 */ nop +/* 0EA86C 7F0B5D3C 45020004 */ bc1fl .L7F0B5D50 +/* 0EA870 7F0B5D40 E480000C */ swc1 $f0, 0xc($a0) +/* 0EA874 7F0B5D44 03E00008 */ jr $ra +/* 0EA878 7F0B5D48 E482000C */ swc1 $f2, 0xc($a0) + +/* 0EA87C 7F0B5D4C E480000C */ swc1 $f0, 0xc($a0) +.L7F0B5D50: +/* 0EA880 7F0B5D50 03E00008 */ jr $ra +/* 0EA884 7F0B5D54 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void copy_4_floats_a1_to_a0(void *arg0, void *arg1) { + // Node 0 + *arg0 = (f32) *arg1; + arg0->unk4 = (f32) arg1->unk4; + arg0->unk8 = (f32) arg1->unk8; + arg0->unkC = (f32) arg1->unkC; + return; +} +#else +GLOBAL_ASM( +.text +glabel copy_4_floats_a1_to_a0 +/* 0EA888 7F0B5D58 C4A40000 */ lwc1 $f4, ($a1) +/* 0EA88C 7F0B5D5C E4840000 */ swc1 $f4, ($a0) +/* 0EA890 7F0B5D60 C4A60004 */ lwc1 $f6, 4($a1) +/* 0EA894 7F0B5D64 E4860004 */ swc1 $f6, 4($a0) +/* 0EA898 7F0B5D68 C4A80008 */ lwc1 $f8, 8($a1) +/* 0EA89C 7F0B5D6C E4880008 */ swc1 $f8, 8($a0) +/* 0EA8A0 7F0B5D70 C4AA000C */ lwc1 $f10, 0xc($a1) +/* 0EA8A4 7F0B5D74 03E00008 */ jr $ra +/* 0EA8A8 7F0B5D78 E48A000C */ swc1 $f10, 0xc($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5D7C(s32 arg0) { + s32 temp_hi; + + // Node 0 + temp_hi = ((s32) (D_80044860 + 1) % 0xa); + D_80044860 = temp_hi; + sprintf(((temp_hi * 9) + &dword_CODE_bss_8007C040), "PORT%d", arg0); + return sp1C; +} +#else +GLOBAL_ASM( +.rdata +/*D:80058C48*/ +glabel aPortD +/*"PORT%d"*/ +.word 0x504F5254, 0x25640000 + + + +.text +glabel sub_GAME_7F0B5D7C +/* 0EA8AC 7F0B5D7C 3C028004 */ lui $v0, %hi(D_80044860) +/* 0EA8B0 7F0B5D80 8C424860 */ lw $v0, %lo(D_80044860)($v0) +/* 0EA8B4 7F0B5D84 2401000A */ li $at, 10 +/* 0EA8B8 7F0B5D88 3C188008 */ lui $t8, %hi(dword_CODE_bss_8007C040) +/* 0EA8BC 7F0B5D8C 24420001 */ addiu $v0, $v0, 1 +/* 0EA8C0 7F0B5D90 0041001A */ div $zero, $v0, $at +/* 0EA8C4 7F0B5D94 00007010 */ mfhi $t6 +/* 0EA8C8 7F0B5D98 000E78C0 */ sll $t7, $t6, 3 +/* 0EA8CC 7F0B5D9C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0EA8D0 7F0B5DA0 00803025 */ move $a2, $a0 +/* 0EA8D4 7F0B5DA4 01EE7821 */ addu $t7, $t7, $t6 +/* 0EA8D8 7F0B5DA8 2718C040 */ addiu $t8, %lo(dword_CODE_bss_8007C040) # addiu $t8, $t8, -0x3fc0 +/* 0EA8DC 7F0B5DAC AFBF0014 */ sw $ra, 0x14($sp) +/* 0EA8E0 7F0B5DB0 01F82021 */ addu $a0, $t7, $t8 +/* 0EA8E4 7F0B5DB4 3C018004 */ lui $at, %hi(D_80044860) +/* 0EA8E8 7F0B5DB8 3C058006 */ lui $a1, %hi(aPortD) +/* 0EA8EC 7F0B5DBC AFA4001C */ sw $a0, 0x1c($sp) +/* 0EA8F0 7F0B5DC0 24A58C48 */ addiu $a1, %lo(aPortD) # addiu $a1, $a1, -0x73b8 +/* 0EA8F4 7F0B5DC4 0C002B25 */ jal sprintf +/* 0EA8F8 7F0B5DC8 AC2E4860 */ sw $t6, %lo(D_80044860)($at) +/* 0EA8FC 7F0B5DCC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EA900 7F0B5DD0 8FA2001C */ lw $v0, 0x1c($sp) +/* 0EA904 7F0B5DD4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0EA908 7F0B5DD8 03E00008 */ jr $ra +/* 0EA90C 7F0B5DDC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5DE0(s32 arg0) { + s32 temp_hi; + + // Node 0 + temp_hi = ((s32) (D_80044864 + 1) % 0xa); + D_80044864 = temp_hi; + sprintf(((temp_hi * 9) + &dword_CODE_bss_8007C0A0), "ROOM%d", arg0); + return sp1C; +} +#else +GLOBAL_ASM( +.rdata +/*D:80058C50*/ +glabel aRoomD +/*"ROOM%d"*/ +.word 0x524F4F4D, 0x25640000 + +.text +glabel sub_GAME_7F0B5DE0 +/* 0EA910 7F0B5DE0 3C028004 */ lui $v0, %hi(D_80044864) +/* 0EA914 7F0B5DE4 8C424864 */ lw $v0, %lo(D_80044864)($v0) +/* 0EA918 7F0B5DE8 2401000A */ li $at, 10 +/* 0EA91C 7F0B5DEC 3C188008 */ lui $t8, %hi(dword_CODE_bss_8007C0A0) +/* 0EA920 7F0B5DF0 24420001 */ addiu $v0, $v0, 1 +/* 0EA924 7F0B5DF4 0041001A */ div $zero, $v0, $at +/* 0EA928 7F0B5DF8 00007010 */ mfhi $t6 +/* 0EA92C 7F0B5DFC 000E78C0 */ sll $t7, $t6, 3 +/* 0EA930 7F0B5E00 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0EA934 7F0B5E04 00803025 */ move $a2, $a0 +/* 0EA938 7F0B5E08 01EE7821 */ addu $t7, $t7, $t6 +/* 0EA93C 7F0B5E0C 2718C0A0 */ addiu $t8, %lo(dword_CODE_bss_8007C0A0) # addiu $t8, $t8, -0x3f60 +/* 0EA940 7F0B5E10 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EA944 7F0B5E14 01F82021 */ addu $a0, $t7, $t8 +/* 0EA948 7F0B5E18 3C018004 */ lui $at, %hi(D_80044864) +/* 0EA94C 7F0B5E1C 3C058006 */ lui $a1, %hi(aRoomD) +/* 0EA950 7F0B5E20 AFA4001C */ sw $a0, 0x1c($sp) +/* 0EA954 7F0B5E24 24A58C50 */ addiu $a1, %lo(aRoomD) # addiu $a1, $a1, -0x73b0 +/* 0EA958 7F0B5E28 0C002B25 */ jal sprintf +/* 0EA95C 7F0B5E2C AC2E4864 */ sw $t6, %lo(D_80044864)($at) +/* 0EA960 7F0B5E30 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EA964 7F0B5E34 8FA2001C */ lw $v0, 0x1c($sp) +/* 0EA968 7F0B5E38 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0EA96C 7F0B5E3C 03E00008 */ jr $ra +/* 0EA970 7F0B5E40 00000000 */ nop +) +#endif + + + + + + +s32 getMaxNumRooms(void) { + return MaxNumRooms; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5E50(s32 arg0) { + return *(&array_room_info + (arg0 * 0x50)); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5E50 +/* 0EA980 7F0B5E50 00047080 */ sll $t6, $a0, 2 +/* 0EA984 7F0B5E54 01C47021 */ addu $t6, $t6, $a0 +/* 0EA988 7F0B5E58 000E7100 */ sll $t6, $t6, 4 +/* 0EA98C 7F0B5E5C 3C028004 */ lui $v0, %hi(array_room_info) +/* 0EA990 7F0B5E60 004E1021 */ addu $v0, $v0, $t6 +/* 0EA994 7F0B5E64 03E00008 */ jr $ra +/* 0EA998 7F0B5E68 90421414 */ lbu $v0, %lo(array_room_info)($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5E6C(s32 arg0) { + return *(&array_room_info+0x1 + (arg0 * 0x50)); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5E6C +/* 0EA99C 7F0B5E6C 00047080 */ sll $t6, $a0, 2 +/* 0EA9A0 7F0B5E70 01C47021 */ addu $t6, $t6, $a0 +/* 0EA9A4 7F0B5E74 000E7100 */ sll $t6, $t6, 4 +/* 0EA9A8 7F0B5E78 3C028004 */ lui $v0, %hi(array_room_info+0x1) +/* 0EA9AC 7F0B5E7C 004E1021 */ addu $v0, $v0, $t6 +/* 0EA9B0 7F0B5E80 03E00008 */ jr $ra +/* 0EA9B4 7F0B5E84 90421415 */ lbu $v0, %lo(array_room_info+0x1)($v0) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B5E88(s32 arg0) { + s32 temp_a2; + s32 phi_a2; + s32 phi_v1; + void *phi_a1; + + // Node 0 + if (*ptr_bgdata_portals != 0) + { + // Node 1 + phi_a2 = *ptr_bgdata_portals; + phi_v1 = 0; + phi_a1 = ptr_bgdata_portals; +loop_2: + // Node 2 + if (arg0 == phi_a2) + { + // Node 3 + return phi_v1; + } + // Node 4 + temp_a2 = phi_a1->unk8; + phi_a2 = temp_a2; + phi_v1 = (phi_v1 + 1); + phi_a1 = (phi_a1 + 8); + if (temp_a2 != 0) + { + goto loop_2; + } + } + // Node 5 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5E88 +/* 0EA9B8 7F0B5E88 3C028008 */ lui $v0, %hi(ptr_bgdata_portals) +/* 0EA9BC 7F0B5E8C 8C42FF80 */ lw $v0, %lo(ptr_bgdata_portals)($v0) +/* 0EA9C0 7F0B5E90 00001825 */ move $v1, $zero +/* 0EA9C4 7F0B5E94 8C4E0000 */ lw $t6, ($v0) +/* 0EA9C8 7F0B5E98 00402825 */ move $a1, $v0 +/* 0EA9CC 7F0B5E9C 51C0000C */ beql $t6, $zero, .L7F0B5ED0 +/* 0EA9D0 7F0B5EA0 00001025 */ move $v0, $zero +/* 0EA9D4 7F0B5EA4 8C460000 */ lw $a2, ($v0) +.L7F0B5EA8: +/* 0EA9D8 7F0B5EA8 54860004 */ bnel $a0, $a2, .L7F0B5EBC +/* 0EA9DC 7F0B5EAC 8CA60008 */ lw $a2, 8($a1) +/* 0EA9E0 7F0B5EB0 03E00008 */ jr $ra +/* 0EA9E4 7F0B5EB4 00601025 */ move $v0, $v1 + +/* 0EA9E8 7F0B5EB8 8CA60008 */ lw $a2, 8($a1) +.L7F0B5EBC: +/* 0EA9EC 7F0B5EBC 24630001 */ addiu $v1, $v1, 1 +/* 0EA9F0 7F0B5EC0 24A50008 */ addiu $a1, $a1, 8 +/* 0EA9F4 7F0B5EC4 14C0FFF8 */ bnez $a2, .L7F0B5EA8 +/* 0EA9F8 7F0B5EC8 00000000 */ nop +/* 0EA9FC 7F0B5ECC 00001025 */ move $v0, $zero +.L7F0B5ED0: +/* 0EAA00 7F0B5ED0 03E00008 */ jr $ra +/* 0EAA04 7F0B5ED4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void generate_room_load_string(void) { + ? sp29; + ? temp_ret; + void *phi_v1; + s32 phi_a0; + void *phi_v0; + s32 phi_a0_2; + s32 phi_a0_3; + + // Node 0 + temp_ret = get_debug_prroomloads_flag(); + if (temp_ret != 0) + { + // Node 1 + phi_a0_3 = 1; + if (MaxNumRooms >= 2) + { + // Node 2 + phi_v1 = &array_room_info + 0x10 +0x40; + phi_a0 = 1; + phi_v0 = &sp29; +loop_3: + // Node 3 + if (phi_v1->unk2 != 0) + { + // Node 4 + *phi_v0 = (s8) (((s32) phi_a0 % 0xa) + 0x30); + phi_a0_2 = (phi_a0 + 1); + } + else + { + // Node 5 + *phi_v0 = (u8)0x2e; + phi_a0_2 = (phi_a0 + 1); + } + // Node 6 + phi_v1 = (phi_v1 + 0x50); + phi_a0 = phi_a0_2; + phi_v0 = (phi_v0 + 1); + phi_a0_3 = phi_a0_2; + if (phi_a0_2 < MaxNumRooms) + { + goto loop_3; + } + } + // Node 7 + (sp + phi_a0_3)->unk28 = (u8)0; + } + // Node 8 + return temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel generate_room_load_string +/* 0EAA08 7F0B5ED8 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 0EAA0C 7F0B5EDC AFBF0014 */ sw $ra, 0x14($sp) +/* 0EAA10 7F0B5EE0 0FC243F4 */ jal get_debug_prroomloads_flag +/* 0EAA14 7F0B5EE4 00000000 */ nop +/* 0EAA18 7F0B5EE8 10400024 */ beqz $v0, .L7F0B5F7C +/* 0EAA1C 7F0B5EEC 3C078004 */ lui $a3, %hi(MaxNumRooms) +/* 0EAA20 7F0B5EF0 8CE742F4 */ lw $a3, %lo(MaxNumRooms)($a3) +/* 0EAA24 7F0B5EF4 3C038004 */ lui $v1, %hi(array_room_info + 0x10 +0x40) +/* 0EAA28 7F0B5EF8 24631464 */ addiu $v1, %lo(array_room_info + 0x10 +0x40) # addiu $v1, $v1, 0x1464 +/* 0EAA2C 7F0B5EFC 28E10002 */ slti $at, $a3, 2 +/* 0EAA30 7F0B5F00 1420001C */ bnez $at, .L7F0B5F74 +/* 0EAA34 7F0B5F04 24040001 */ li $a0, 1 +/* 0EAA38 7F0B5F08 27A20029 */ addiu $v0, $sp, 0x29 +/* 0EAA3C 7F0B5F0C 2406002E */ li $a2, 46 +/* 0EAA40 7F0B5F10 2405000A */ li $a1, 10 +.L7F0B5F14: +/* 0EAA44 7F0B5F14 906E0002 */ lbu $t6, 2($v1) +/* 0EAA48 7F0B5F18 24630050 */ addiu $v1, $v1, 0x50 +/* 0EAA4C 7F0B5F1C 51C00011 */ beql $t6, $zero, .L7F0B5F64 +/* 0EAA50 7F0B5F20 A0460000 */ sb $a2, ($v0) +/* 0EAA54 7F0B5F24 0085001A */ div $zero, $a0, $a1 +/* 0EAA58 7F0B5F28 00007810 */ mfhi $t7 +/* 0EAA5C 7F0B5F2C 25F80030 */ addiu $t8, $t7, 0x30 +/* 0EAA60 7F0B5F30 14A00002 */ bnez $a1, .L7F0B5F3C +/* 0EAA64 7F0B5F34 00000000 */ nop +/* 0EAA68 7F0B5F38 0007000D */ break 7 +.L7F0B5F3C: +/* 0EAA6C 7F0B5F3C 2401FFFF */ li $at, -1 +/* 0EAA70 7F0B5F40 14A10004 */ bne $a1, $at, .L7F0B5F54 +/* 0EAA74 7F0B5F44 3C018000 */ lui $at, 0x8000 +/* 0EAA78 7F0B5F48 14810002 */ bne $a0, $at, .L7F0B5F54 +/* 0EAA7C 7F0B5F4C 00000000 */ nop +/* 0EAA80 7F0B5F50 0006000D */ break 6 +.L7F0B5F54: +/* 0EAA84 7F0B5F54 A0580000 */ sb $t8, ($v0) +/* 0EAA88 7F0B5F58 10000003 */ b .L7F0B5F68 +/* 0EAA8C 7F0B5F5C 24840001 */ addiu $a0, $a0, 1 +/* 0EAA90 7F0B5F60 A0460000 */ sb $a2, ($v0) +.L7F0B5F64: +/* 0EAA94 7F0B5F64 24840001 */ addiu $a0, $a0, 1 +.L7F0B5F68: +/* 0EAA98 7F0B5F68 0087082A */ slt $at, $a0, $a3 +/* 0EAA9C 7F0B5F6C 1420FFE9 */ bnez $at, .L7F0B5F14 +/* 0EAAA0 7F0B5F70 24420001 */ addiu $v0, $v0, 1 +.L7F0B5F74: +/* 0EAAA4 7F0B5F74 03A4C821 */ addu $t9, $sp, $a0 +/* 0EAAA8 7F0B5F78 A3200028 */ sb $zero, 0x28($t9) +.L7F0B5F7C: +/* 0EAAAC 7F0B5F7C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EAAB0 7F0B5F80 27BD00C0 */ addiu $sp, $sp, 0xc0 +/* 0EAAB4 7F0B5F84 03E00008 */ jr $ra +/* 0EAAB8 7F0B5F88 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5F8C(void) { + ? sp18; + + // Node 0 + return decompressdata(&sp18); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5F8C +/* 0EAABC 7F0B5F8C 27BDDEE8 */ addiu $sp, $sp, -0x2118 +/* 0EAAC0 7F0B5F90 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EAAC4 7F0B5F94 0FC339FC */ jal decompressdata +/* 0EAAC8 7F0B5F98 27A60018 */ addiu $a2, $sp, 0x18 +/* 0EAACC 7F0B5F9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EAAD0 7F0B5FA0 27BD2118 */ addiu $sp, $sp, 0x2118 +/* 0EAAD4 7F0B5FA4 03E00008 */ jr $ra +/* 0EAAD8 7F0B5FA8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B5FAC(s32 arg0, s32 arg1, s32 arg2) { + void *sp1C; + void *temp_v1; + s32 temp_t9; + ? temp_ret; + + // Node 0 + temp_v1 = ((arg0 * 0x50) + &array_room_info); + temp_t9 = ((temp_v1->unk10 + 0xf) & -0x10); + if (arg2 >= (temp_t9 + 0x20)) + { + // Node 2 + sp1C = temp_v1; + obLoadBGFileBytesAtOffset(*(&levelinfotable + (D_80041400 * 0x18)), ((arg2 - temp_t9) + arg1), (((*(ptr_bgdata_room_fileposition_list + (arg0 * 0x18)) + ptr_bg_data) - ptr_bg_data) + 0xf1000000), temp_t9); + temp_ret = sub_GAME_7F0B5F8C(sp18, arg1); + temp_v1->unk1C = temp_ret; + temp_v1->unk4 = arg1; + // Node 3 + return temp_ret; + } + // Node 1 + return temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B5FAC +/* 0EAADC 7F0B5FAC 00047880 */ sll $t7, $a0, 2 +/* 0EAAE0 7F0B5FB0 01E47821 */ addu $t7, $t7, $a0 +/* 0EAAE4 7F0B5FB4 3C188004 */ lui $t8, %hi(array_room_info) +/* 0EAAE8 7F0B5FB8 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414 +/* 0EAAEC 7F0B5FBC 000F7900 */ sll $t7, $t7, 4 +/* 0EAAF0 7F0B5FC0 01F81821 */ addu $v1, $t7, $t8 +/* 0EAAF4 7F0B5FC4 8C670010 */ lw $a3, 0x10($v1) +/* 0EAAF8 7F0B5FC8 2401FFF0 */ li $at, -16 +/* 0EAAFC 7F0B5FCC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0EAB00 7F0B5FD0 24E7000F */ addiu $a3, $a3, 0xf +/* 0EAB04 7F0B5FD4 00E1C824 */ and $t9, $a3, $at +/* 0EAB08 7F0B5FD8 272A0020 */ addiu $t2, $t9, 0x20 +/* 0EAB0C 7F0B5FDC 00CA082A */ slt $at, $a2, $t2 +/* 0EAB10 7F0B5FE0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EAB14 7F0B5FE4 AFA40030 */ sw $a0, 0x30($sp) +/* 0EAB18 7F0B5FE8 AFA50034 */ sw $a1, 0x34($sp) +/* 0EAB1C 7F0B5FEC AFA60038 */ sw $a2, 0x38($sp) +/* 0EAB20 7F0B5FF0 10200003 */ beqz $at, .L7F0B6000 +/* 0EAB24 7F0B5FF4 03203825 */ move $a3, $t9 +/* 0EAB28 7F0B5FF8 10000024 */ b .L7F0B608C +/* 0EAB2C 7F0B5FFC 2402FFFF */ li $v0, -1 +.L7F0B6000: +/* 0EAB30 7F0B6000 8FAC0030 */ lw $t4, 0x30($sp) +/* 0EAB34 7F0B6004 24080018 */ li $t0, 24 +/* 0EAB38 7F0B6008 3C198004 */ lui $t9, %hi(D_80041400) +/* 0EAB3C 7F0B600C 01880019 */ multu $t4, $t0 +/* 0EAB40 7F0B6010 8F391400 */ lw $t9, %lo(D_80041400)($t9) +/* 0EAB44 7F0B6014 3C0B8008 */ lui $t3, %hi(ptr_bgdata_room_fileposition_list) +/* 0EAB48 7F0B6018 8D6BFF8C */ lw $t3, %lo(ptr_bgdata_room_fileposition_list)($t3) +/* 0EAB4C 7F0B601C 3C028008 */ lui $v0, %hi(ptr_bg_data) +/* 0EAB50 7F0B6020 8C42BF90 */ lw $v0, %lo(ptr_bg_data)($v0) +/* 0EAB54 7F0B6024 8FAA0038 */ lw $t2, 0x38($sp) +/* 0EAB58 7F0B6028 3C048004 */ lui $a0, %hi(levelinfotable) +/* 0EAB5C 7F0B602C 3C01F100 */ lui $at, 0xf100 +/* 0EAB60 7F0B6030 01476023 */ subu $t4, $t2, $a3 +/* 0EAB64 7F0B6034 00006812 */ mflo $t5 +/* 0EAB68 7F0B6038 016D7021 */ addu $t6, $t3, $t5 +/* 0EAB6C 7F0B603C 8DCF0000 */ lw $t7, ($t6) +/* 0EAB70 7F0B6040 03280019 */ multu $t9, $t0 +/* 0EAB74 7F0B6044 8FAB0034 */ lw $t3, 0x34($sp) +/* 0EAB78 7F0B6048 01E2C021 */ addu $t8, $t7, $v0 +/* 0EAB7C 7F0B604C 03023023 */ subu $a2, $t8, $v0 +/* 0EAB80 7F0B6050 018B2821 */ addu $a1, $t4, $t3 +/* 0EAB84 7F0B6054 00C13021 */ addu $a2, $a2, $at +/* 0EAB88 7F0B6058 AFA50018 */ sw $a1, 0x18($sp) +/* 0EAB8C 7F0B605C AFA3001C */ sw $v1, 0x1c($sp) +/* 0EAB90 7F0B6060 00004812 */ mflo $t1 +/* 0EAB94 7F0B6064 00892021 */ addu $a0, $a0, $t1 +/* 0EAB98 7F0B6068 0FC2F35F */ jal obLoadBGFileBytesAtOffset +/* 0EAB9C 7F0B606C 8C844490 */ lw $a0, %lo(levelinfotable+4)($a0) +/* 0EABA0 7F0B6070 8FA40018 */ lw $a0, 0x18($sp) +/* 0EABA4 7F0B6074 0FC2D7E3 */ jal sub_GAME_7F0B5F8C +/* 0EABA8 7F0B6078 8FA50034 */ lw $a1, 0x34($sp) +/* 0EABAC 7F0B607C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EABB0 7F0B6080 8FAD0034 */ lw $t5, 0x34($sp) +/* 0EABB4 7F0B6084 AC62001C */ sw $v0, 0x1c($v1) +/* 0EABB8 7F0B6088 AC6D0004 */ sw $t5, 4($v1) +.L7F0B608C: +/* 0EABBC 7F0B608C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EABC0 7F0B6090 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0EABC4 7F0B6094 03E00008 */ jr $ra +/* 0EABC8 7F0B6098 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B609C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B609C +/* 0EABCC 7F0B609C 00047880 */ sll $t7, $a0, 2 +/* 0EABD0 7F0B60A0 01E47821 */ addu $t7, $t7, $a0 +/* 0EABD4 7F0B60A4 3C188004 */ lui $t8, %hi(array_room_info) +/* 0EABD8 7F0B60A8 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414 +/* 0EABDC 7F0B60AC 000F7900 */ sll $t7, $t7, 4 +/* 0EABE0 7F0B60B0 01F84021 */ addu $t0, $t7, $t8 +/* 0EABE4 7F0B60B4 8D070014 */ lw $a3, 0x14($t0) +/* 0EABE8 7F0B60B8 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0EABEC 7F0B60BC 2401FFF0 */ li $at, -16 +/* 0EABF0 7F0B60C0 24E7000F */ addiu $a3, $a3, 0xf +/* 0EABF4 7F0B60C4 00E1C824 */ and $t9, $a3, $at +/* 0EABF8 7F0B60C8 272A0020 */ addiu $t2, $t9, 0x20 +/* 0EABFC 7F0B60CC AFB00014 */ sw $s0, 0x14($sp) +/* 0EAC00 7F0B60D0 00CA082A */ slt $at, $a2, $t2 +/* 0EAC04 7F0B60D4 00A08025 */ move $s0, $a1 +/* 0EAC08 7F0B60D8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0EAC0C 7F0B60DC AFB10018 */ sw $s1, 0x18($sp) +/* 0EAC10 7F0B60E0 AFA40038 */ sw $a0, 0x38($sp) +/* 0EAC14 7F0B60E4 AFA60040 */ sw $a2, 0x40($sp) +/* 0EAC18 7F0B60E8 10200003 */ beqz $at, .L7F0B60F8 +/* 0EAC1C 7F0B60EC 03203825 */ move $a3, $t9 +/* 0EAC20 7F0B60F0 10000035 */ b .L7F0B61C8 +/* 0EAC24 7F0B60F4 2402FFFF */ li $v0, -1 +.L7F0B60F8: +/* 0EAC28 7F0B60F8 8FAC0038 */ lw $t4, 0x38($sp) +/* 0EAC2C 7F0B60FC 24030018 */ li $v1, 24 +/* 0EAC30 7F0B6100 3C198004 */ lui $t9, %hi(D_80041400) +/* 0EAC34 7F0B6104 01830019 */ multu $t4, $v1 +/* 0EAC38 7F0B6108 8F391400 */ lw $t9, %lo(D_80041400)($t9) +/* 0EAC3C 7F0B610C 3C0B8008 */ lui $t3, %hi(ptr_bgdata_room_fileposition_list) +/* 0EAC40 7F0B6110 8D6BFF8C */ lw $t3, %lo(ptr_bgdata_room_fileposition_list)($t3) +/* 0EAC44 7F0B6114 3C028008 */ lui $v0, %hi(ptr_bg_data) +/* 0EAC48 7F0B6118 8C42BF90 */ lw $v0, %lo(ptr_bg_data)($v0) +/* 0EAC4C 7F0B611C 8FAA0040 */ lw $t2, 0x40($sp) +/* 0EAC50 7F0B6120 3C048004 */ lui $a0, %hi(levelinfotable) +/* 0EAC54 7F0B6124 3C01F100 */ lui $at, 0xf100 +/* 0EAC58 7F0B6128 01476023 */ subu $t4, $t2, $a3 +/* 0EAC5C 7F0B612C 00006812 */ mflo $t5 +/* 0EAC60 7F0B6130 016D7021 */ addu $t6, $t3, $t5 +/* 0EAC64 7F0B6134 8DCF0004 */ lw $t7, 4($t6) +/* 0EAC68 7F0B6138 03230019 */ multu $t9, $v1 +/* 0EAC6C 7F0B613C 01908821 */ addu $s1, $t4, $s0 +/* 0EAC70 7F0B6140 01E2C021 */ addu $t8, $t7, $v0 +/* 0EAC74 7F0B6144 03023023 */ subu $a2, $t8, $v0 +/* 0EAC78 7F0B6148 00C13021 */ addu $a2, $a2, $at +/* 0EAC7C 7F0B614C 02202825 */ move $a1, $s1 +/* 0EAC80 7F0B6150 AFA80020 */ sw $t0, 0x20($sp) +/* 0EAC84 7F0B6154 00004812 */ mflo $t1 +/* 0EAC88 7F0B6158 00892021 */ addu $a0, $a0, $t1 +/* 0EAC8C 7F0B615C 0FC2F35F */ jal obLoadBGFileBytesAtOffset +/* 0EAC90 7F0B6160 8C844490 */ lw $a0, %lo(levelinfotable+4)($a0) +/* 0EAC94 7F0B6164 02202025 */ move $a0, $s1 +/* 0EAC98 7F0B6168 0FC2D7E3 */ jal sub_GAME_7F0B5F8C +/* 0EAC9C 7F0B616C 02002825 */ move $a1, $s0 +/* 0EACA0 7F0B6170 8FAB0040 */ lw $t3, 0x40($sp) +/* 0EACA4 7F0B6174 00408825 */ move $s1, $v0 +/* 0EACA8 7F0B6178 02002025 */ move $a0, $s0 +/* 0EACAC 7F0B617C 01626823 */ subu $t5, $t3, $v0 +/* 0EACB0 7F0B6180 01B02821 */ addu $a1, $t5, $s0 +/* 0EACB4 7F0B6184 AFA50028 */ sw $a1, 0x28($sp) +/* 0EACB8 7F0B6188 0FC339E5 */ jal sub_GAME_7F0CE794 +/* 0EACBC 7F0B618C 00403025 */ move $a2, $v0 +/* 0EACC0 7F0B6190 0FC2F131 */ jal sub_GAME_7F0BC4C4 +/* 0EACC4 7F0B6194 8FA40038 */ lw $a0, 0x38($sp) +/* 0EACC8 7F0B6198 8FA40028 */ lw $a0, 0x28($sp) +/* 0EACCC 7F0B619C 02202825 */ move $a1, $s1 +/* 0EACD0 7F0B61A0 02003025 */ move $a2, $s0 +/* 0EACD4 7F0B61A4 0FC33846 */ jal process_microcode_sort_display_modes_expand_image_calls +/* 0EACD8 7F0B61A8 00003825 */ move $a3, $zero +/* 0EACDC 7F0B61AC 0222082A */ slt $at, $s1, $v0 +/* 0EACE0 7F0B61B0 10200002 */ beqz $at, .L7F0B61BC +/* 0EACE4 7F0B61B4 8FA30020 */ lw $v1, 0x20($sp) +/* 0EACE8 7F0B61B8 00408825 */ move $s1, $v0 +.L7F0B61BC: +/* 0EACEC 7F0B61BC AC700008 */ sw $s0, 8($v1) +/* 0EACF0 7F0B61C0 AC710020 */ sw $s1, 0x20($v1) +/* 0EACF4 7F0B61C4 02201025 */ move $v0, $s1 +.L7F0B61C8: +/* 0EACF8 7F0B61C8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0EACFC 7F0B61CC 8FB00014 */ lw $s0, 0x14($sp) +/* 0EAD00 7F0B61D0 8FB10018 */ lw $s1, 0x18($sp) +/* 0EAD04 7F0B61D4 03E00008 */ jr $ra +/* 0EAD08 7F0B61D8 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B61DC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B61DC +/* 0EAD0C 7F0B61DC 00047880 */ sll $t7, $a0, 2 +/* 0EAD10 7F0B61E0 01E47821 */ addu $t7, $t7, $a0 +/* 0EAD14 7F0B61E4 3C188004 */ lui $t8, %hi(array_room_info) +/* 0EAD18 7F0B61E8 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414 +/* 0EAD1C 7F0B61EC 000F7900 */ sll $t7, $t7, 4 +/* 0EAD20 7F0B61F0 01F84021 */ addu $t0, $t7, $t8 +/* 0EAD24 7F0B61F4 8D070018 */ lw $a3, 0x18($t0) +/* 0EAD28 7F0B61F8 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0EAD2C 7F0B61FC 2401FFF0 */ li $at, -16 +/* 0EAD30 7F0B6200 24E7000F */ addiu $a3, $a3, 0xf +/* 0EAD34 7F0B6204 00E1C824 */ and $t9, $a3, $at +/* 0EAD38 7F0B6208 272A0020 */ addiu $t2, $t9, 0x20 +/* 0EAD3C 7F0B620C AFB10018 */ sw $s1, 0x18($sp) +/* 0EAD40 7F0B6210 00CA082A */ slt $at, $a2, $t2 +/* 0EAD44 7F0B6214 00A08825 */ move $s1, $a1 +/* 0EAD48 7F0B6218 AFBF001C */ sw $ra, 0x1c($sp) +/* 0EAD4C 7F0B621C AFB00014 */ sw $s0, 0x14($sp) +/* 0EAD50 7F0B6220 AFA40038 */ sw $a0, 0x38($sp) +/* 0EAD54 7F0B6224 AFA60040 */ sw $a2, 0x40($sp) +/* 0EAD58 7F0B6228 10200003 */ beqz $at, .L7F0B6238 +/* 0EAD5C 7F0B622C 03203825 */ move $a3, $t9 +/* 0EAD60 7F0B6230 10000033 */ b .L7F0B6300 +/* 0EAD64 7F0B6234 2402FFFF */ li $v0, -1 +.L7F0B6238: +/* 0EAD68 7F0B6238 8FAC0038 */ lw $t4, 0x38($sp) +/* 0EAD6C 7F0B623C 24030018 */ li $v1, 24 +/* 0EAD70 7F0B6240 3C198004 */ lui $t9, %hi(D_80041400) +/* 0EAD74 7F0B6244 01830019 */ multu $t4, $v1 +/* 0EAD78 7F0B6248 8F391400 */ lw $t9, %lo(D_80041400)($t9) +/* 0EAD7C 7F0B624C 3C0B8008 */ lui $t3, %hi(ptr_bgdata_room_fileposition_list) +/* 0EAD80 7F0B6250 8D6BFF8C */ lw $t3, %lo(ptr_bgdata_room_fileposition_list)($t3) +/* 0EAD84 7F0B6254 3C028008 */ lui $v0, %hi(ptr_bg_data) +/* 0EAD88 7F0B6258 8C42BF90 */ lw $v0, %lo(ptr_bg_data)($v0) +/* 0EAD8C 7F0B625C 8FAA0040 */ lw $t2, 0x40($sp) +/* 0EAD90 7F0B6260 3C048004 */ lui $a0, %hi(levelinfotable) +/* 0EAD94 7F0B6264 3C01F100 */ lui $at, 0xf100 +/* 0EAD98 7F0B6268 01476023 */ subu $t4, $t2, $a3 +/* 0EAD9C 7F0B626C 00006812 */ mflo $t5 +/* 0EADA0 7F0B6270 016D7021 */ addu $t6, $t3, $t5 +/* 0EADA4 7F0B6274 8DCF0008 */ lw $t7, 8($t6) +/* 0EADA8 7F0B6278 03230019 */ multu $t9, $v1 +/* 0EADAC 7F0B627C 01918021 */ addu $s0, $t4, $s1 +/* 0EADB0 7F0B6280 01E2C021 */ addu $t8, $t7, $v0 +/* 0EADB4 7F0B6284 03023023 */ subu $a2, $t8, $v0 +/* 0EADB8 7F0B6288 00C13021 */ addu $a2, $a2, $at +/* 0EADBC 7F0B628C 02002825 */ move $a1, $s0 +/* 0EADC0 7F0B6290 AFA80020 */ sw $t0, 0x20($sp) +/* 0EADC4 7F0B6294 00004812 */ mflo $t1 +/* 0EADC8 7F0B6298 00892021 */ addu $a0, $a0, $t1 +/* 0EADCC 7F0B629C 0FC2F35F */ jal obLoadBGFileBytesAtOffset +/* 0EADD0 7F0B62A0 8C844490 */ lw $a0, %lo(levelinfotable+4)($a0) +/* 0EADD4 7F0B62A4 02002025 */ move $a0, $s0 +/* 0EADD8 7F0B62A8 0FC2D7E3 */ jal sub_GAME_7F0B5F8C +/* 0EADDC 7F0B62AC 02202825 */ move $a1, $s1 +/* 0EADE0 7F0B62B0 8FAB0040 */ lw $t3, 0x40($sp) +/* 0EADE4 7F0B62B4 00408025 */ move $s0, $v0 +/* 0EADE8 7F0B62B8 02202025 */ move $a0, $s1 +/* 0EADEC 7F0B62BC 01626823 */ subu $t5, $t3, $v0 +/* 0EADF0 7F0B62C0 01B12821 */ addu $a1, $t5, $s1 +/* 0EADF4 7F0B62C4 AFA50028 */ sw $a1, 0x28($sp) +/* 0EADF8 7F0B62C8 0FC339E5 */ jal sub_GAME_7F0CE794 +/* 0EADFC 7F0B62CC 00403025 */ move $a2, $v0 +/* 0EAE00 7F0B62D0 8FA40028 */ lw $a0, 0x28($sp) +/* 0EAE04 7F0B62D4 02002825 */ move $a1, $s0 +/* 0EAE08 7F0B62D8 02203025 */ move $a2, $s1 +/* 0EAE0C 7F0B62DC 0FC33846 */ jal process_microcode_sort_display_modes_expand_image_calls +/* 0EAE10 7F0B62E0 00003825 */ move $a3, $zero +/* 0EAE14 7F0B62E4 0202082A */ slt $at, $s0, $v0 +/* 0EAE18 7F0B62E8 10200002 */ beqz $at, .L7F0B62F4 +/* 0EAE1C 7F0B62EC 8FA30020 */ lw $v1, 0x20($sp) +/* 0EAE20 7F0B62F0 00408025 */ move $s0, $v0 +.L7F0B62F4: +/* 0EAE24 7F0B62F4 AC71000C */ sw $s1, 0xc($v1) +/* 0EAE28 7F0B62F8 AC700024 */ sw $s0, 0x24($v1) +/* 0EAE2C 7F0B62FC 02001025 */ move $v0, $s0 +.L7F0B6300: +/* 0EAE30 7F0B6300 8FBF001C */ lw $ra, 0x1c($sp) +/* 0EAE34 7F0B6304 8FB00014 */ lw $s0, 0x14($sp) +/* 0EAE38 7F0B6308 8FB10018 */ lw $s1, 0x18($sp) +/* 0EAE3C 7F0B630C 03E00008 */ jr $ra +/* 0EAE40 7F0B6310 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B6314(s32 arg0) { + void *temp_v0; + + // Node 0 + temp_v0 = ((arg0 * 0x50) + &array_room_info); + temp_v0->unk35 = (u8)1; + if (temp_v0->unk2 != 0) + { + // Node 2 + // Node 3 + return 0; + } + // Node 1 + sub_GAME_7F0B6368(); + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B6314 +/* 0EAE44 7F0B6314 00047080 */ sll $t6, $a0, 2 +/* 0EAE48 7F0B6318 01C47021 */ addu $t6, $t6, $a0 +/* 0EAE4C 7F0B631C 3C0F8004 */ lui $t7, %hi(array_room_info) +/* 0EAE50 7F0B6320 25EF1414 */ addiu $t7, %lo(array_room_info) # addiu $t7, $t7, 0x1414 +/* 0EAE54 7F0B6324 000E7100 */ sll $t6, $t6, 4 +/* 0EAE58 7F0B6328 01CF1021 */ addu $v0, $t6, $t7 +/* 0EAE5C 7F0B632C 90590002 */ lbu $t9, 2($v0) +/* 0EAE60 7F0B6330 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0EAE64 7F0B6334 24180001 */ li $t8, 1 +/* 0EAE68 7F0B6338 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EAE6C 7F0B633C 17200005 */ bnez $t9, .L7F0B6354 +/* 0EAE70 7F0B6340 A0580035 */ sb $t8, 0x35($v0) +/* 0EAE74 7F0B6344 0FC2D8DA */ jal sub_GAME_7F0B6368 +/* 0EAE78 7F0B6348 00000000 */ nop +/* 0EAE7C 7F0B634C 10000002 */ b .L7F0B6358 +/* 0EAE80 7F0B6350 24020001 */ li $v0, 1 +.L7F0B6354: +/* 0EAE84 7F0B6354 00001025 */ move $v0, $zero +.L7F0B6358: +/* 0EAE88 7F0B6358 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EAE8C 7F0B635C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0EAE90 7F0B6360 03E00008 */ jr $ra +/* 0EAE94 7F0B6364 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B6368(s32 rooms) { + void *sp1C; + s32 sp20; + s32 sp28; + s32 sp2C; + void *temp_v1; + ? temp_ret; + void *temp_v1_2; + ? temp_ret_2; + ? temp_ret_3; + void *temp_v1_5; + ? temp_ret_4; + void *temp_v1_6; + s32 temp_t1; + s32 temp_a0; + void *temp_v1_3; + s32 temp_a0_2; + void *temp_v1_4; + void *phi_v1; + s32 phi_a3; + s32 phi_a3_2; + void *phi_v1_2; + void *phi_v1_3; + + // Node 0 + if (rooms < MaxNumRooms) + { + // Node 1 + temp_v1 = ((rooms * 0x50) + &array_room_info); + if (temp_v1->unk2 == 0) + { + // Node 2 + if (temp_v1->unk28 > 0) + { + // Node 3 + sp2C = (s32) temp_v1->unk28; + sp1C = temp_v1; + sp28 = 0; + if (get_debug_joy2detailedit_flag(0) != 0) + { + // Node 4 + sp2C = (s32) (sp2C + 0x400); + } + } + else + { + // Node 5 + sp1C = temp_v1; + sp2C = mem_related_0(0); + } + // Node 6 + sp1C = (void *) temp_v1; + temp_ret = mem_related_something_find_first(sp2C, sp28); + temp_v1_2 = temp_v1; + sp20 = temp_ret; + if (temp_ret != 0) + { + // Node 7 + if (temp_v1_2->unk10 != 0) + { + // Node 8 + sp1C = temp_v1_2; + temp_ret_2 = sub_GAME_7F0B5FAC(rooms, temp_ret, sp2C, sp28); + if (temp_ret_2 >= 0) + { + // Node 9 + sp1C = temp_v1_2; + sp28 = temp_ret_2; + sub_GAME_7F0BB978(rooms, sp28); + } + } + else + { + // Node 10 + temp_v1_2->unk4 = 0; + temp_v1_2->unk1C = 0; + } + // Node 11 + phi_v1 = temp_v1_2; + phi_a3 = sp28; + if (temp_v1_2->unk14 != 0) + { + // Node 12 + sp1C = (void *) temp_v1_2; + temp_ret_3 = sub_GAME_7F0B609C(rooms, (sp20 + sp28), (sp2C - sp28), sp28); + temp_v1_5 = temp_v1_2; + phi_v1 = temp_v1_5; + phi_a3 = sp28; + if (temp_ret_3 >= 0) + { + // Node 13 + phi_v1 = temp_v1_5; + phi_a3 = (sp28 + temp_ret_3); + } + } + // Node 14 + if (phi_v1->unk18 != 0) + { + // Node 15 + sp1C = (void *) phi_v1; + temp_ret_4 = sub_GAME_7F0B61DC(rooms, (sp20 + phi_a3), (sp2C - phi_a3), phi_a3); + temp_v1_6 = phi_v1; + phi_a3_2 = sp28; + phi_v1_2 = temp_v1_6; + if (temp_ret_4 > 0) + { + // Node 16 + phi_a3_2 = (sp28 + temp_ret_4); + phi_v1_2 = temp_v1_6; + } + } + else + { + // Node 17 + phi_v1->unkC = 0; + phi_a3_2 = phi_a3; + phi_v1_2 = phi_v1; + } + // Node 18 + temp_t1 = ((phi_a3_2 + 0x20) & -0x10); + phi_v1_2->unk28 = temp_t1; + phi_v1_2->unk2 = (u8)1; + phi_v1_3 = phi_v1_2; + if (sp2C != temp_t1) + { + // Node 19 + sp1C = (void *) phi_v1_2; + mem_related_1(sp20, sp2C, temp_t1, phi_a3_2); + phi_v1_3 = phi_v1_2; + } + // Node 20 + if (sky_enabled != 0) + { + // Node 21 + temp_a0 = phi_v1_3->unk8; + sp1C = (void *) phi_v1_3; + sub_GAME_7F0BA640(temp_a0, (phi_v1_3->unk20 + temp_a0), 1); + temp_v1_3 = phi_v1_3; + if (temp_v1_3->unkC != 0) + { + // Node 22 + sub_GAME_7F0BA640(temp_v1_3->unkC, (temp_v1_3->unk24 + temp_v1_3->unkC), 5); + } + } + else + { + // Node 23 + temp_a0_2 = phi_v1_3->unk8; + sp1C = (void *) phi_v1_3; + sub_GAME_7F0BA640(temp_a0_2, (phi_v1_3->unk20 + temp_a0_2), 6); + temp_v1_4 = phi_v1_3; + if (temp_v1_4->unkC != 0) + { + // Node 24 + sub_GAME_7F0BA640(temp_v1_4->unkC, (temp_v1_4->unk24 + temp_v1_4->unkC), 7); + } + } + // Node 25 + sub_GAME_7F0B6994(rooms); + generate_room_load_string(); + } + } + } + // Node 26 + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B6368 +/* 0EAE98 7F0B6368 3C0F8004 */ lui $t7, %hi(MaxNumRooms) +/* 0EAE9C 7F0B636C 8DEF42F4 */ lw $t7, %lo(MaxNumRooms)($t7) +/* 0EAEA0 7F0B6370 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0EAEA4 7F0B6374 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EAEA8 7F0B6378 008F082A */ slt $at, $a0, $t7 +/* 0EAEAC 7F0B637C AFA40030 */ sw $a0, 0x30($sp) +/* 0EAEB0 7F0B6380 1020008C */ beqz $at, .L7F0B65B4 +/* 0EAEB4 7F0B6384 00003825 */ move $a3, $zero +/* 0EAEB8 7F0B6388 0004C880 */ sll $t9, $a0, 2 +/* 0EAEBC 7F0B638C 0324C821 */ addu $t9, $t9, $a0 +/* 0EAEC0 7F0B6390 3C088004 */ lui $t0, %hi(array_room_info) +/* 0EAEC4 7F0B6394 25081414 */ addiu $t0, %lo(array_room_info) # addiu $t0, $t0, 0x1414 +/* 0EAEC8 7F0B6398 0019C900 */ sll $t9, $t9, 4 +/* 0EAECC 7F0B639C 03281821 */ addu $v1, $t9, $t0 +/* 0EAED0 7F0B63A0 90690002 */ lbu $t1, 2($v1) +/* 0EAED4 7F0B63A4 55200084 */ bnezl $t1, .L7F0B65B8 +/* 0EAED8 7F0B63A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EAEDC 7F0B63AC 8C620028 */ lw $v0, 0x28($v1) +/* 0EAEE0 7F0B63B0 5840000D */ blezl $v0, .L7F0B63E8 +/* 0EAEE4 7F0B63B4 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EAEE8 7F0B63B8 AFA2002C */ sw $v0, 0x2c($sp) +/* 0EAEEC 7F0B63BC AFA3001C */ sw $v1, 0x1c($sp) +/* 0EAEF0 7F0B63C0 0FC243EE */ jal get_debug_joy2detailedit_flag +/* 0EAEF4 7F0B63C4 AFA00028 */ sw $zero, 0x28($sp) +/* 0EAEF8 7F0B63C8 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EAEFC 7F0B63CC 1040000B */ beqz $v0, .L7F0B63FC +/* 0EAF00 7F0B63D0 8FA70028 */ lw $a3, 0x28($sp) +/* 0EAF04 7F0B63D4 8FAA002C */ lw $t2, 0x2c($sp) +/* 0EAF08 7F0B63D8 254B0400 */ addiu $t3, $t2, 0x400 +/* 0EAF0C 7F0B63DC 10000007 */ b .L7F0B63FC +/* 0EAF10 7F0B63E0 AFAB002C */ sw $t3, 0x2c($sp) +/* 0EAF14 7F0B63E4 AFA3001C */ sw $v1, 0x1c($sp) +.L7F0B63E8: +/* 0EAF18 7F0B63E8 0C0028DC */ jal mem_related_0 +/* 0EAF1C 7F0B63EC AFA70028 */ sw $a3, 0x28($sp) +/* 0EAF20 7F0B63F0 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EAF24 7F0B63F4 8FA70028 */ lw $a3, 0x28($sp) +/* 0EAF28 7F0B63F8 AFA2002C */ sw $v0, 0x2c($sp) +.L7F0B63FC: +/* 0EAF2C 7F0B63FC 8FA4002C */ lw $a0, 0x2c($sp) +/* 0EAF30 7F0B6400 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EAF34 7F0B6404 0C00278D */ jal mem_related_something_find_first +/* 0EAF38 7F0B6408 AFA70028 */ sw $a3, 0x28($sp) +/* 0EAF3C 7F0B640C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EAF40 7F0B6410 8FA70028 */ lw $a3, 0x28($sp) +/* 0EAF44 7F0B6414 10400067 */ beqz $v0, .L7F0B65B4 +/* 0EAF48 7F0B6418 AFA20020 */ sw $v0, 0x20($sp) +/* 0EAF4C 7F0B641C 8C6C0010 */ lw $t4, 0x10($v1) +/* 0EAF50 7F0B6420 8FA40030 */ lw $a0, 0x30($sp) +/* 0EAF54 7F0B6424 00402825 */ move $a1, $v0 +/* 0EAF58 7F0B6428 1180000E */ beqz $t4, .L7F0B6464 +/* 0EAF5C 7F0B642C 8FA6002C */ lw $a2, 0x2c($sp) +/* 0EAF60 7F0B6430 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EAF64 7F0B6434 0FC2D7EB */ jal sub_GAME_7F0B5FAC +/* 0EAF68 7F0B6438 AFA70028 */ sw $a3, 0x28($sp) +/* 0EAF6C 7F0B643C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EAF70 7F0B6440 0440000A */ bltz $v0, .L7F0B646C +/* 0EAF74 7F0B6444 8FA70028 */ lw $a3, 0x28($sp) +/* 0EAF78 7F0B6448 8FA40030 */ lw $a0, 0x30($sp) +/* 0EAF7C 7F0B644C AFA3001C */ sw $v1, 0x1c($sp) +/* 0EAF80 7F0B6450 0FC2EE5E */ jal sub_GAME_7F0BB978 +/* 0EAF84 7F0B6454 AFA20028 */ sw $v0, 0x28($sp) +/* 0EAF88 7F0B6458 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EAF8C 7F0B645C 10000003 */ b .L7F0B646C +/* 0EAF90 7F0B6460 8FA70028 */ lw $a3, 0x28($sp) +.L7F0B6464: +/* 0EAF94 7F0B6464 AC600004 */ sw $zero, 4($v1) +/* 0EAF98 7F0B6468 AC60001C */ sw $zero, 0x1c($v1) +.L7F0B646C: +/* 0EAF9C 7F0B646C 8C6D0014 */ lw $t5, 0x14($v1) +/* 0EAFA0 7F0B6470 8FAE0020 */ lw $t6, 0x20($sp) +/* 0EAFA4 7F0B6474 8FA40030 */ lw $a0, 0x30($sp) +/* 0EAFA8 7F0B6478 11A0000A */ beqz $t5, .L7F0B64A4 +/* 0EAFAC 7F0B647C 01C72821 */ addu $a1, $t6, $a3 +/* 0EAFB0 7F0B6480 8FAF002C */ lw $t7, 0x2c($sp) +/* 0EAFB4 7F0B6484 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EAFB8 7F0B6488 AFA70028 */ sw $a3, 0x28($sp) +/* 0EAFBC 7F0B648C 0FC2D827 */ jal sub_GAME_7F0B609C +/* 0EAFC0 7F0B6490 01E73023 */ subu $a2, $t7, $a3 +/* 0EAFC4 7F0B6494 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EAFC8 7F0B6498 04400002 */ bltz $v0, .L7F0B64A4 +/* 0EAFCC 7F0B649C 8FA70028 */ lw $a3, 0x28($sp) +/* 0EAFD0 7F0B64A0 00E23821 */ addu $a3, $a3, $v0 +.L7F0B64A4: +/* 0EAFD4 7F0B64A4 8C780018 */ lw $t8, 0x18($v1) +/* 0EAFD8 7F0B64A8 8FB90020 */ lw $t9, 0x20($sp) +/* 0EAFDC 7F0B64AC 8FA40030 */ lw $a0, 0x30($sp) +/* 0EAFE0 7F0B64B0 1300000B */ beqz $t8, .L7F0B64E0 +/* 0EAFE4 7F0B64B4 03272821 */ addu $a1, $t9, $a3 +/* 0EAFE8 7F0B64B8 8FA8002C */ lw $t0, 0x2c($sp) +/* 0EAFEC 7F0B64BC AFA3001C */ sw $v1, 0x1c($sp) +/* 0EAFF0 7F0B64C0 AFA70028 */ sw $a3, 0x28($sp) +/* 0EAFF4 7F0B64C4 0FC2D877 */ jal sub_GAME_7F0B61DC +/* 0EAFF8 7F0B64C8 01073023 */ subu $a2, $t0, $a3 +/* 0EAFFC 7F0B64CC 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EB000 7F0B64D0 18400004 */ blez $v0, .L7F0B64E4 +/* 0EB004 7F0B64D4 8FA70028 */ lw $a3, 0x28($sp) +/* 0EB008 7F0B64D8 10000002 */ b .L7F0B64E4 +/* 0EB00C 7F0B64DC 00E23821 */ addu $a3, $a3, $v0 +.L7F0B64E0: +/* 0EB010 7F0B64E0 AC60000C */ sw $zero, 0xc($v1) +.L7F0B64E4: +/* 0EB014 7F0B64E4 8FAB002C */ lw $t3, 0x2c($sp) +/* 0EB018 7F0B64E8 24E20020 */ addiu $v0, $a3, 0x20 +/* 0EB01C 7F0B64EC 2401FFF0 */ li $at, -16 +/* 0EB020 7F0B64F0 00414824 */ and $t1, $v0, $at +/* 0EB024 7F0B64F4 240A0001 */ li $t2, 1 +/* 0EB028 7F0B64F8 AC690028 */ sw $t1, 0x28($v1) +/* 0EB02C 7F0B64FC 11690007 */ beq $t3, $t1, .L7F0B651C +/* 0EB030 7F0B6500 A06A0002 */ sb $t2, 2($v1) +/* 0EB034 7F0B6504 8FA40020 */ lw $a0, 0x20($sp) +/* 0EB038 7F0B6508 01602825 */ move $a1, $t3 +/* 0EB03C 7F0B650C 01203025 */ move $a2, $t1 +/* 0EB040 7F0B6510 0C0028F7 */ jal mem_related_1 +/* 0EB044 7F0B6514 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EB048 7F0B6518 8FA3001C */ lw $v1, 0x1c($sp) +.L7F0B651C: +/* 0EB04C 7F0B651C 3C0C8008 */ lui $t4, %hi(sky_enabled) +/* 0EB050 7F0B6520 8D8C25C0 */ lw $t4, %lo(sky_enabled)($t4) +/* 0EB054 7F0B6524 24060006 */ li $a2, 6 +/* 0EB058 7F0B6528 51800012 */ beql $t4, $zero, .L7F0B6574 +/* 0EB05C 7F0B652C 8C640008 */ lw $a0, 8($v1) +/* 0EB060 7F0B6530 8C640008 */ lw $a0, 8($v1) +/* 0EB064 7F0B6534 8C6D0020 */ lw $t5, 0x20($v1) +/* 0EB068 7F0B6538 24060001 */ li $a2, 1 +/* 0EB06C 7F0B653C AFA3001C */ sw $v1, 0x1c($sp) +/* 0EB070 7F0B6540 0FC2E990 */ jal sub_GAME_7F0BA640 +/* 0EB074 7F0B6544 01A42821 */ addu $a1, $t5, $a0 +/* 0EB078 7F0B6548 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EB07C 7F0B654C 8C64000C */ lw $a0, 0xc($v1) +/* 0EB080 7F0B6550 10800014 */ beqz $a0, .L7F0B65A4 +/* 0EB084 7F0B6554 00000000 */ nop +/* 0EB088 7F0B6558 8C6E0024 */ lw $t6, 0x24($v1) +/* 0EB08C 7F0B655C 24060005 */ li $a2, 5 +/* 0EB090 7F0B6560 0FC2E990 */ jal sub_GAME_7F0BA640 +/* 0EB094 7F0B6564 01C42821 */ addu $a1, $t6, $a0 +/* 0EB098 7F0B6568 1000000E */ b .L7F0B65A4 +/* 0EB09C 7F0B656C 00000000 */ nop +/* 0EB0A0 7F0B6570 8C640008 */ lw $a0, 8($v1) +.L7F0B6574: +/* 0EB0A4 7F0B6574 8C6F0020 */ lw $t7, 0x20($v1) +/* 0EB0A8 7F0B6578 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EB0AC 7F0B657C 0FC2E990 */ jal sub_GAME_7F0BA640 +/* 0EB0B0 7F0B6580 01E42821 */ addu $a1, $t7, $a0 +/* 0EB0B4 7F0B6584 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EB0B8 7F0B6588 8C64000C */ lw $a0, 0xc($v1) +/* 0EB0BC 7F0B658C 10800005 */ beqz $a0, .L7F0B65A4 +/* 0EB0C0 7F0B6590 00000000 */ nop +/* 0EB0C4 7F0B6594 8C780024 */ lw $t8, 0x24($v1) +/* 0EB0C8 7F0B6598 24060007 */ li $a2, 7 +/* 0EB0CC 7F0B659C 0FC2E990 */ jal sub_GAME_7F0BA640 +/* 0EB0D0 7F0B65A0 03042821 */ addu $a1, $t8, $a0 +.L7F0B65A4: +/* 0EB0D4 7F0B65A4 0FC2DA65 */ jal sub_GAME_7F0B6994 +/* 0EB0D8 7F0B65A8 8FA40030 */ lw $a0, 0x30($sp) +/* 0EB0DC 7F0B65AC 0FC2D7B6 */ jal generate_room_load_string +/* 0EB0E0 7F0B65B0 00000000 */ nop +.L7F0B65B4: +/* 0EB0E4 7F0B65B4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0B65B8: +/* 0EB0E8 7F0B65B8 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0EB0EC 7F0B65BC 03E00008 */ jr $ra +/* 0EB0F0 7F0B65C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B65C4(s32 arg0) { + void *temp_s0; + + // Node 0 + temp_s0 = ((arg0 * 0x50) + &array_room_info); + if (temp_s0->unk2C != 0) + { + // Node 1 + mem_related_model_room_buffers_0(temp_s0->unk2C, (((temp_s0->unk30 * 0x1c) + 0xf) & -0x10), temp_s0->unk2C); + temp_s0->unk2C = 0; + } + // Node 2 + if (temp_s0->unk28 > 0) + { + // Node 3 + if (temp_s0->unk4 != 0) + { + // Node 4 + mem_related_model_room_buffers_0(temp_s0->unk4, temp_s0->unk28); + temp_s0->unk4 = 0; + } + else + { + // Node 5 + mem_related_model_room_buffers_0(temp_s0->unk8, temp_s0->unk28); + temp_s0->unk4 = 0; + } + // Node 6 + temp_s0->unk8 = 0; + temp_s0->unkC = 0; + } + // Node 7 + temp_s0->unk2 = (u8)0; + return generate_room_load_string(); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B65C4 +/* 0EB0F4 7F0B65C4 00047080 */ sll $t6, $a0, 2 +/* 0EB0F8 7F0B65C8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0EB0FC 7F0B65CC 01C47021 */ addu $t6, $t6, $a0 +/* 0EB100 7F0B65D0 3C0F8004 */ lui $t7, %hi(array_room_info) +/* 0EB104 7F0B65D4 AFB00018 */ sw $s0, 0x18($sp) +/* 0EB108 7F0B65D8 25EF1414 */ addiu $t7, %lo(array_room_info) # addiu $t7, $t7, 0x1414 +/* 0EB10C 7F0B65DC 000E7100 */ sll $t6, $t6, 4 +/* 0EB110 7F0B65E0 01CF8021 */ addu $s0, $t6, $t7 +/* 0EB114 7F0B65E4 8E06002C */ lw $a2, 0x2c($s0) +/* 0EB118 7F0B65E8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0EB11C 7F0B65EC 50C0000D */ beql $a2, $zero, .L7F0B6624 +/* 0EB120 7F0B65F0 8E020028 */ lw $v0, 0x28($s0) +/* 0EB124 7F0B65F4 86050030 */ lh $a1, 0x30($s0) +/* 0EB128 7F0B65F8 2401FFF0 */ li $at, -16 +/* 0EB12C 7F0B65FC 00C02025 */ move $a0, $a2 +/* 0EB130 7F0B6600 0005C0C0 */ sll $t8, $a1, 3 +/* 0EB134 7F0B6604 0305C023 */ subu $t8, $t8, $a1 +/* 0EB138 7F0B6608 0018C080 */ sll $t8, $t8, 2 +/* 0EB13C 7F0B660C 2705000F */ addiu $a1, $t8, 0xf +/* 0EB140 7F0B6610 00A1C824 */ and $t9, $a1, $at +/* 0EB144 7F0B6614 0C002808 */ jal mem_related_model_room_buffers_0 +/* 0EB148 7F0B6618 03202825 */ move $a1, $t9 +/* 0EB14C 7F0B661C AE00002C */ sw $zero, 0x2c($s0) +/* 0EB150 7F0B6620 8E020028 */ lw $v0, 0x28($s0) +.L7F0B6624: +/* 0EB154 7F0B6624 1840000E */ blez $v0, .L7F0B6660 +/* 0EB158 7F0B6628 00000000 */ nop +/* 0EB15C 7F0B662C 8E040004 */ lw $a0, 4($s0) +/* 0EB160 7F0B6630 00402825 */ move $a1, $v0 +/* 0EB164 7F0B6634 10800005 */ beqz $a0, .L7F0B664C +/* 0EB168 7F0B6638 00000000 */ nop +/* 0EB16C 7F0B663C 0C002808 */ jal mem_related_model_room_buffers_0 +/* 0EB170 7F0B6640 00402825 */ move $a1, $v0 +/* 0EB174 7F0B6644 10000004 */ b .L7F0B6658 +/* 0EB178 7F0B6648 AE000004 */ sw $zero, 4($s0) +.L7F0B664C: +/* 0EB17C 7F0B664C 0C002808 */ jal mem_related_model_room_buffers_0 +/* 0EB180 7F0B6650 8E040008 */ lw $a0, 8($s0) +/* 0EB184 7F0B6654 AE000004 */ sw $zero, 4($s0) +.L7F0B6658: +/* 0EB188 7F0B6658 AE000008 */ sw $zero, 8($s0) +/* 0EB18C 7F0B665C AE00000C */ sw $zero, 0xc($s0) +.L7F0B6660: +/* 0EB190 7F0B6660 0FC2D7B6 */ jal generate_room_load_string +/* 0EB194 7F0B6664 A2000002 */ sb $zero, 2($s0) +/* 0EB198 7F0B6668 8FBF001C */ lw $ra, 0x1c($sp) +/* 0EB19C 7F0B666C 8FB00018 */ lw $s0, 0x18($sp) +/* 0EB1A0 7F0B6670 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0EB1A4 7F0B6674 03E00008 */ jr $ra +/* 0EB1A8 7F0B6678 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B667C(void) { + s32 temp_s1; + void *phi_s0; + s32 phi_s1; + s32 phi_v0; + s32 phi_return; + s32 phi_return_2; + + // Node 0 + phi_return = MaxNumRooms; + if (MaxNumRooms >= 2) + { + // Node 1 + phi_s0 = &array_room_info + 0x10 +0x40; + phi_s1 = 1; + phi_v0 = MaxNumRooms; + phi_return_2 = MaxNumRooms; +loop_2: + // Node 2 + if (phi_s0->unk2 != 0) + { + // Node 3 + sub_GAME_7F0B65C4(phi_s1); + phi_v0 = MaxNumRooms; + phi_return_2 = MaxNumRooms; + } + // Node 4 + temp_s1 = (phi_s1 + 1); + phi_s0 = (phi_s0 + 0x50); + phi_s1 = temp_s1; + phi_return = phi_return_2; + phi_v0 = phi_v0; + phi_return_2 = phi_return_2; + if (temp_s1 < phi_v0) + { + goto loop_2; + } + } + // Node 5 + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B667C +/* 0EB1AC 7F0B667C 3C028004 */ lui $v0, %hi(MaxNumRooms) +/* 0EB1B0 7F0B6680 8C4242F4 */ lw $v0, %lo(MaxNumRooms)($v0) +/* 0EB1B4 7F0B6684 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0EB1B8 7F0B6688 AFB10018 */ sw $s1, 0x18($sp) +/* 0EB1BC 7F0B668C 28410002 */ slti $at, $v0, 2 +/* 0EB1C0 7F0B6690 AFBF001C */ sw $ra, 0x1c($sp) +/* 0EB1C4 7F0B6694 AFB00014 */ sw $s0, 0x14($sp) +/* 0EB1C8 7F0B6698 1420000E */ bnez $at, .L7F0B66D4 +/* 0EB1CC 7F0B669C 24110001 */ li $s1, 1 +/* 0EB1D0 7F0B66A0 3C108004 */ lui $s0, %hi(array_room_info + 0x10 +0x40) +/* 0EB1D4 7F0B66A4 26101464 */ addiu $s0, %lo(array_room_info + 0x10 +0x40) # addiu $s0, $s0, 0x1464 +.L7F0B66A8: +/* 0EB1D8 7F0B66A8 920E0002 */ lbu $t6, 2($s0) +/* 0EB1DC 7F0B66AC 51C00006 */ beql $t6, $zero, .L7F0B66C8 +/* 0EB1E0 7F0B66B0 26310001 */ addiu $s1, $s1, 1 +/* 0EB1E4 7F0B66B4 0FC2D971 */ jal sub_GAME_7F0B65C4 +/* 0EB1E8 7F0B66B8 02202025 */ move $a0, $s1 +/* 0EB1EC 7F0B66BC 3C028004 */ lui $v0, %hi(MaxNumRooms) +/* 0EB1F0 7F0B66C0 8C4242F4 */ lw $v0, %lo(MaxNumRooms)($v0) +/* 0EB1F4 7F0B66C4 26310001 */ addiu $s1, $s1, 1 +.L7F0B66C8: +/* 0EB1F8 7F0B66C8 0222082A */ slt $at, $s1, $v0 +/* 0EB1FC 7F0B66CC 1420FFF6 */ bnez $at, .L7F0B66A8 +/* 0EB200 7F0B66D0 26100050 */ addiu $s0, $s0, 0x50 +.L7F0B66D4: +/* 0EB204 7F0B66D4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0EB208 7F0B66D8 8FB00014 */ lw $s0, 0x14($sp) +/* 0EB20C 7F0B66DC 8FB10018 */ lw $s1, 0x18($sp) +/* 0EB210 7F0B66E0 03E00008 */ jr $ra +/* 0EB214 7F0B66E4 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B66E8(void) { + s8 temp_v0; + s32 temp_s1; + void *phi_s0; + s32 phi_s1; + s32 phi_v1; + s32 phi_v1_2; + + // Node 0 + if (MaxNumRooms >= 2) + { + // Node 1 + phi_s0 = &array_room_info + 0x10 +0x40; + phi_s1 = 1; + phi_v1_2 = MaxNumRooms; +loop_2: + // Node 2 + phi_v1 = phi_v1_2; + if (phi_s0->unk35 == 0) + { + // Node 3 + temp_v0 = phi_s0->unk2; + if (4 == temp_v0) + { + // Node 4 + sub_GAME_7F0B65C4(phi_s1); + phi_v1 = MaxNumRooms; + } + else + { + // Node 5 + phi_v1 = phi_v1_2; + if (temp_v0 != 0) + { + // Node 6 + phi_s0->unk2 = (s8) (temp_v0 + 1); + phi_v1 = phi_v1_2; + } + } + } + // Node 7 + temp_s1 = (phi_s1 + 1); + phi_s0 = (phi_s0 + 0x50); + phi_s1 = temp_s1; + phi_v1_2 = phi_v1; + if (temp_s1 < phi_v1) + { + goto loop_2; + } + } + // Node 8 + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B66E8 +/* 0EB218 7F0B66E8 3C038004 */ lui $v1, %hi(MaxNumRooms) +/* 0EB21C 7F0B66EC 8C6342F4 */ lw $v1, %lo(MaxNumRooms)($v1) +/* 0EB220 7F0B66F0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0EB224 7F0B66F4 AFB1001C */ sw $s1, 0x1c($sp) +/* 0EB228 7F0B66F8 28610002 */ slti $at, $v1, 2 +/* 0EB22C 7F0B66FC AFBF0024 */ sw $ra, 0x24($sp) +/* 0EB230 7F0B6700 AFB20020 */ sw $s2, 0x20($sp) +/* 0EB234 7F0B6704 AFB00018 */ sw $s0, 0x18($sp) +/* 0EB238 7F0B6708 14200016 */ bnez $at, .L7F0B6764 +/* 0EB23C 7F0B670C 24110001 */ li $s1, 1 +/* 0EB240 7F0B6710 3C108004 */ lui $s0, %hi(array_room_info + 0x10 +0x40) +/* 0EB244 7F0B6714 26101464 */ addiu $s0, %lo(array_room_info + 0x10 +0x40) # addiu $s0, $s0, 0x1464 +/* 0EB248 7F0B6718 24120004 */ li $s2, 4 +.L7F0B671C: +/* 0EB24C 7F0B671C 920E0035 */ lbu $t6, 0x35($s0) +/* 0EB250 7F0B6720 55C0000D */ bnezl $t6, .L7F0B6758 +/* 0EB254 7F0B6724 26310001 */ addiu $s1, $s1, 1 +/* 0EB258 7F0B6728 92020002 */ lbu $v0, 2($s0) +/* 0EB25C 7F0B672C 16420006 */ bne $s2, $v0, .L7F0B6748 +/* 0EB260 7F0B6730 00000000 */ nop +/* 0EB264 7F0B6734 0FC2D971 */ jal sub_GAME_7F0B65C4 +/* 0EB268 7F0B6738 02202025 */ move $a0, $s1 +/* 0EB26C 7F0B673C 3C038004 */ lui $v1, %hi(MaxNumRooms) +/* 0EB270 7F0B6740 10000004 */ b .L7F0B6754 +/* 0EB274 7F0B6744 8C6342F4 */ lw $v1, %lo(MaxNumRooms)($v1) +.L7F0B6748: +/* 0EB278 7F0B6748 10400002 */ beqz $v0, .L7F0B6754 +/* 0EB27C 7F0B674C 244F0001 */ addiu $t7, $v0, 1 +/* 0EB280 7F0B6750 A20F0002 */ sb $t7, 2($s0) +.L7F0B6754: +/* 0EB284 7F0B6754 26310001 */ addiu $s1, $s1, 1 +.L7F0B6758: +/* 0EB288 7F0B6758 0223082A */ slt $at, $s1, $v1 +/* 0EB28C 7F0B675C 1420FFEF */ bnez $at, .L7F0B671C +/* 0EB290 7F0B6760 26100050 */ addiu $s0, $s0, 0x50 +.L7F0B6764: +/* 0EB294 7F0B6764 8FBF0024 */ lw $ra, 0x24($sp) +/* 0EB298 7F0B6768 8FB00018 */ lw $s0, 0x18($sp) +/* 0EB29C 7F0B676C 8FB1001C */ lw $s1, 0x1c($sp) +/* 0EB2A0 7F0B6770 8FB20020 */ lw $s2, 0x20($sp) +/* 0EB2A4 7F0B6774 03E00008 */ jr $ra +/* 0EB2A8 7F0B6778 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B677C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B677C +/* 0EB2AC 7F0B677C 3C0E8004 */ lui $t6, %hi(MaxNumRooms) +/* 0EB2B0 7F0B6780 8DCE42F4 */ lw $t6, %lo(MaxNumRooms)($t6) +/* 0EB2B4 7F0B6784 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0EB2B8 7F0B6788 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EB2BC 7F0B678C 00AE082A */ slt $at, $a1, $t6 +/* 0EB2C0 7F0B6790 00803825 */ move $a3, $a0 +/* 0EB2C4 7F0B6794 14200003 */ bnez $at, .L7F0B67A4 +/* 0EB2C8 7F0B6798 00A03025 */ move $a2, $a1 +/* 0EB2CC 7F0B679C 1000003A */ b .L7F0B6888 +/* 0EB2D0 7F0B67A0 00801025 */ move $v0, $a0 +.L7F0B67A4: +/* 0EB2D4 7F0B67A4 3C0F8004 */ lui $t7, %hi(D_8004485C) +/* 0EB2D8 7F0B67A8 8DEF485C */ lw $t7, %lo(D_8004485C)($t7) +/* 0EB2DC 7F0B67AC 3C188004 */ lui $t8, %hi(D_80044858) +/* 0EB2E0 7F0B67B0 2401000A */ li $at, 10 +/* 0EB2E4 7F0B67B4 15E00005 */ bnez $t7, .L7F0B67CC +/* 0EB2E8 7F0B67B8 00064880 */ sll $t1, $a2, 2 +/* 0EB2EC 7F0B67BC 00C1001A */ div $zero, $a2, $at +/* 0EB2F0 7F0B67C0 8F184858 */ lw $t8, %lo(D_80044858)($t8) +/* 0EB2F4 7F0B67C4 0000C810 */ mfhi $t9 +/* 0EB2F8 7F0B67C8 1719002E */ bne $t8, $t9, .L7F0B6884 +.L7F0B67CC: +/* 0EB2FC 7F0B67CC 01264821 */ addu $t1, $t1, $a2 +/* 0EB300 7F0B67D0 3C0A8004 */ lui $t2, %hi(array_room_info) +/* 0EB304 7F0B67D4 254A1414 */ addiu $t2, %lo(array_room_info) # addiu $t2, $t2, 0x1414 +/* 0EB308 7F0B67D8 00094900 */ sll $t1, $t1, 4 +/* 0EB30C 7F0B67DC 012A1821 */ addu $v1, $t1, $t2 +/* 0EB310 7F0B67E0 90620002 */ lbu $v0, 2($v1) +/* 0EB314 7F0B67E4 3C088004 */ lui $t0, %hi(D_800442F8) +/* 0EB318 7F0B67E8 250842F8 */ addiu $t0, %lo(D_800442F8) # addiu $t0, $t0, 0x42f8 +/* 0EB31C 7F0B67EC 1440000E */ bnez $v0, .L7F0B6828 +/* 0EB320 7F0B67F0 00000000 */ nop +/* 0EB324 7F0B67F4 8D050000 */ lw $a1, ($t0) +/* 0EB328 7F0B67F8 00C02025 */ move $a0, $a2 +/* 0EB32C 7F0B67FC 18A0000A */ blez $a1, .L7F0B6828 +/* 0EB330 7F0B6800 24ABFFFF */ addiu $t3, $a1, -1 +/* 0EB334 7F0B6804 AD0B0000 */ sw $t3, ($t0) +/* 0EB338 7F0B6808 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EB33C 7F0B680C AFA6002C */ sw $a2, 0x2c($sp) +/* 0EB340 7F0B6810 0FC2D8DA */ jal sub_GAME_7F0B6368 +/* 0EB344 7F0B6814 AFA70028 */ sw $a3, 0x28($sp) +/* 0EB348 7F0B6818 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EB34C 7F0B681C 8FA6002C */ lw $a2, 0x2c($sp) +/* 0EB350 7F0B6820 8FA70028 */ lw $a3, 0x28($sp) +/* 0EB354 7F0B6824 90620002 */ lbu $v0, 2($v1) +.L7F0B6828: +/* 0EB358 7F0B6828 14400003 */ bnez $v0, .L7F0B6838 +/* 0EB35C 7F0B682C 00E02025 */ move $a0, $a3 +/* 0EB360 7F0B6830 10000015 */ b .L7F0B6888 +/* 0EB364 7F0B6834 00E01025 */ move $v0, $a3 +.L7F0B6838: +/* 0EB368 7F0B6838 00C02825 */ move $a1, $a2 +/* 0EB36C 7F0B683C 0FC2F271 */ jal sub_GAME_7F0BC9C4 +/* 0EB370 7F0B6840 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EB374 7F0B6844 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EB378 7F0B6848 3C0CBC00 */ lui $t4, (0xBC003806 >> 16) # lui $t4, 0xbc00 +/* 0EB37C 7F0B684C 358C3806 */ ori $t4, (0xBC003806 & 0xFFFF) # ori $t4, $t4, 0x3806 +/* 0EB380 7F0B6850 AC4C0000 */ sw $t4, ($v0) +/* 0EB384 7F0B6854 8C6D0004 */ lw $t5, 4($v1) +/* 0EB388 7F0B6858 3C048000 */ lui $a0, 0x8000 +/* 0EB38C 7F0B685C 3C0F0600 */ lui $t7, 0x600 +/* 0EB390 7F0B6860 01A47021 */ addu $t6, $t5, $a0 +/* 0EB394 7F0B6864 AC4E0004 */ sw $t6, 4($v0) +/* 0EB398 7F0B6868 AC4F0008 */ sw $t7, 8($v0) +/* 0EB39C 7F0B686C 8C780008 */ lw $t8, 8($v1) +/* 0EB3A0 7F0B6870 24090001 */ li $t1, 1 +/* 0EB3A4 7F0B6874 24470010 */ addiu $a3, $v0, 0x10 +/* 0EB3A8 7F0B6878 0304C821 */ addu $t9, $t8, $a0 +/* 0EB3AC 7F0B687C AC59000C */ sw $t9, 0xc($v0) +/* 0EB3B0 7F0B6880 A0690002 */ sb $t1, 2($v1) +.L7F0B6884: +/* 0EB3B4 7F0B6884 00E01025 */ move $v0, $a3 +.L7F0B6888: +/* 0EB3B8 7F0B6888 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EB3BC 7F0B688C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0EB3C0 7F0B6890 03E00008 */ jr $ra +/* 0EB3C4 7F0B6894 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B6898(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B6898 +/* 0EB3C8 7F0B6898 3C0E8004 */ lui $t6, %hi(MaxNumRooms) +/* 0EB3CC 7F0B689C 8DCE42F4 */ lw $t6, %lo(MaxNumRooms)($t6) +/* 0EB3D0 7F0B68A0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0EB3D4 7F0B68A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EB3D8 7F0B68A8 00AE082A */ slt $at, $a1, $t6 +/* 0EB3DC 7F0B68AC 14200003 */ bnez $at, .L7F0B68BC +/* 0EB3E0 7F0B68B0 00803025 */ move $a2, $a0 +/* 0EB3E4 7F0B68B4 10000033 */ b .L7F0B6984 +/* 0EB3E8 7F0B68B8 00801025 */ move $v0, $a0 +.L7F0B68BC: +/* 0EB3EC 7F0B68BC 00057880 */ sll $t7, $a1, 2 +/* 0EB3F0 7F0B68C0 01E57821 */ addu $t7, $t7, $a1 +/* 0EB3F4 7F0B68C4 3C188004 */ lui $t8, %hi(array_room_info) +/* 0EB3F8 7F0B68C8 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414 +/* 0EB3FC 7F0B68CC 000F7900 */ sll $t7, $t7, 4 +/* 0EB400 7F0B68D0 01F81821 */ addu $v1, $t7, $t8 +/* 0EB404 7F0B68D4 8C79000C */ lw $t9, 0xc($v1) +/* 0EB408 7F0B68D8 3C088004 */ lui $t0, %hi(D_8004485C) +/* 0EB40C 7F0B68DC 17200003 */ bnez $t9, .L7F0B68EC +/* 0EB410 7F0B68E0 00000000 */ nop +/* 0EB414 7F0B68E4 10000027 */ b .L7F0B6984 +/* 0EB418 7F0B68E8 00C01025 */ move $v0, $a2 +.L7F0B68EC: +/* 0EB41C 7F0B68EC 8D08485C */ lw $t0, %lo(D_8004485C)($t0) +/* 0EB420 7F0B68F0 3C098004 */ lui $t1, %hi(D_80044858) +/* 0EB424 7F0B68F4 2401000A */ li $at, 10 +/* 0EB428 7F0B68F8 55000007 */ bnezl $t0, .L7F0B6918 +/* 0EB42C 7F0B68FC 906B0002 */ lbu $t3, 2($v1) +/* 0EB430 7F0B6900 00A1001A */ div $zero, $a1, $at +/* 0EB434 7F0B6904 8D294858 */ lw $t1, %lo(D_80044858)($t1) +/* 0EB438 7F0B6908 00005010 */ mfhi $t2 +/* 0EB43C 7F0B690C 552A001D */ bnel $t1, $t2, .L7F0B6984 +/* 0EB440 7F0B6910 00C01025 */ move $v0, $a2 +/* 0EB444 7F0B6914 906B0002 */ lbu $t3, 2($v1) +.L7F0B6918: +/* 0EB448 7F0B6918 00C02025 */ move $a0, $a2 +/* 0EB44C 7F0B691C 51600015 */ beql $t3, $zero, .L7F0B6974 +/* 0EB450 7F0B6920 00A02025 */ move $a0, $a1 +/* 0EB454 7F0B6924 0FC2F271 */ jal sub_GAME_7F0BC9C4 +/* 0EB458 7F0B6928 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EB45C 7F0B692C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EB460 7F0B6930 3C0CBC00 */ lui $t4, (0xBC003806 >> 16) # lui $t4, 0xbc00 +/* 0EB464 7F0B6934 358C3806 */ ori $t4, (0xBC003806 & 0xFFFF) # ori $t4, $t4, 0x3806 +/* 0EB468 7F0B6938 AC4C0000 */ sw $t4, ($v0) +/* 0EB46C 7F0B693C 8C6D0004 */ lw $t5, 4($v1) +/* 0EB470 7F0B6940 3C048000 */ lui $a0, 0x8000 +/* 0EB474 7F0B6944 3C0F0600 */ lui $t7, 0x600 +/* 0EB478 7F0B6948 01A47021 */ addu $t6, $t5, $a0 +/* 0EB47C 7F0B694C AC4E0004 */ sw $t6, 4($v0) +/* 0EB480 7F0B6950 AC4F0008 */ sw $t7, 8($v0) +/* 0EB484 7F0B6954 8C78000C */ lw $t8, 0xc($v1) +/* 0EB488 7F0B6958 24080001 */ li $t0, 1 +/* 0EB48C 7F0B695C 24460010 */ addiu $a2, $v0, 0x10 +/* 0EB490 7F0B6960 0304C821 */ addu $t9, $t8, $a0 +/* 0EB494 7F0B6964 AC59000C */ sw $t9, 0xc($v0) +/* 0EB498 7F0B6968 10000005 */ b .L7F0B6980 +/* 0EB49C 7F0B696C A0680002 */ sb $t0, 2($v1) +/* 0EB4A0 7F0B6970 00A02025 */ move $a0, $a1 +.L7F0B6974: +/* 0EB4A4 7F0B6974 0FC2D8DA */ jal sub_GAME_7F0B6368 +/* 0EB4A8 7F0B6978 AFA60028 */ sw $a2, 0x28($sp) +/* 0EB4AC 7F0B697C 8FA60028 */ lw $a2, 0x28($sp) +.L7F0B6980: +/* 0EB4B0 7F0B6980 00C01025 */ move $v0, $a2 +.L7F0B6984: +/* 0EB4B4 7F0B6984 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EB4B8 7F0B6988 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0EB4BC 7F0B698C 03E00008 */ jr $ra +/* 0EB4C0 7F0B6990 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B6994(s32 arg0) { + s32 sp24; + s32 sp3C; + s32 sp44; + void *temp_a1; + s32 temp_v1_8; + s32 temp_t8; + ? temp_ret; + void *temp_a0; + s32 temp_t2; + s32 temp_a2; + void *temp_v1; + s32 temp_a3; + s32 temp_v1_2; + s32 temp_a2_2; + s32 temp_v1_3; + s32 temp_v1_4; + s32 temp_v1_5; + s32 temp_v1_6; + s32 temp_v1_7; + s32 temp_v1_9; + s32 phi_v1; + void *phi_t3; + s32 phi_t5; + s32 phi_v1_2; + s16 phi_ra; + s32 phi_t5_2; + void *phi_v1_3; + s32 phi_a2; + void *phi_t3_2; + void *phi_a1; + s32 phi_a2_2; + s32 phi_t5_3; + s32 phi_t5_4; + + // Node 0 + temp_a1 = ((arg0 * 0x50) + &array_room_info); + if (temp_a1->unk2C == 0) + { + // Node 1 + sp44 = (s32) temp_a1->unk4; + phi_t5 = 0; + if (-0x48 != *temp_a1->unk8) + { + // Node 2 + phi_v1 = *temp_a1->unk8; + phi_t3 = temp_a1->unk8; + phi_t5_4 = 0; +loop_3: + // Node 3 + phi_t5_3 = phi_t5_4; + if (4 == phi_v1) + { + // Node 4 + phi_t5_3 = (phi_t5_4 + 1); + } + // Node 5 + temp_v1_8 = phi_t3->unk8; + phi_v1 = temp_v1_8; + phi_t3 = (phi_t3 + 8); + phi_t5 = phi_t5_3; + phi_t5_4 = phi_t5_3; + if (-0x48 != temp_v1_8) + { + goto loop_3; + } + } + // Node 6 + temp_t8 = (((((phi_t5 * 8) - phi_t5) * 4) + 0xf) & -0x10); + sp24 = temp_t8; + sp3C = (s32) phi_t5; + temp_ret = mem_related_something_find_first(temp_t8, temp_a1, temp_a1->unk8); + if (temp_ret != 0) + { + // Node 7 + sp28->unk2C = temp_ret; + sp28->unk30 = (s16) phi_t5; + if (-0x48 != *sp48) + { + // Node 8 + phi_v1_2 = *sp48; + phi_ra = (u16)0; + phi_t5_2 = 0; + phi_t3_2 = sp48; +loop_9: + // Node 9 + phi_t5_2 = phi_t5_2; + if (4 == phi_v1_2) + { + // Node 10 + temp_a0 = (temp_ret + (((phi_t5_2 * 8) - phi_t5_2) * 4)); + *temp_a0 = (s16) phi_ra; + temp_t2 = (arg0 * 0x18); + phi_v1_3 = (temp_ret + (((phi_t5_2 * 8) - phi_t5_2) * 4)); + phi_a2 = 0; +loop_11: + // Node 11 + temp_a2 = (phi_a2 + 1); + temp_v1 = (phi_v1_3 + 4); + *temp_v1 = 0x7fff; + temp_v1->unkC = -0x8000; + phi_v1_3 = temp_v1; + phi_a2 = temp_a2; + if (temp_a2 < 3) + { + goto loop_11; + } + // Node 12 + temp_a3 = ((((u32) phi_t3_2->unk1 >> 4) & 0xf) + 1); + if (temp_a3 > 0) + { + // Node 13 + phi_a1 = ((phi_t3_2->unk4 & 0xffffff) + sp44); + phi_a2_2 = 0; +loop_14: + // Node 14 + temp_v1_2 = *phi_a1; + temp_a2_2 = (phi_a2_2 + 1); + if (temp_v1_2 < temp_a0->unk4) + { + // Node 15 + temp_a0->unk4 = temp_v1_2; + } + // Node 16 + temp_v1_3 = phi_a1->unk2; + if (temp_v1_3 < temp_a0->unk8) + { + // Node 17 + temp_a0->unk8 = temp_v1_3; + } + // Node 18 + temp_v1_4 = phi_a1->unk4; + if (temp_v1_4 < temp_a0->unkC) + { + // Node 19 + temp_a0->unkC = temp_v1_4; + } + // Node 20 + temp_v1_5 = *phi_a1; + if (temp_a0->unk10 < temp_v1_5) + { + // Node 21 + temp_a0->unk10 = temp_v1_5; + } + // Node 22 + temp_v1_6 = phi_a1->unk2; + if (temp_a0->unk14 < temp_v1_6) + { + // Node 23 + temp_a0->unk14 = temp_v1_6; + } + // Node 24 + temp_v1_7 = phi_a1->unk4; + if (temp_a0->unk18 < temp_v1_7) + { + // Node 25 + temp_a0->unk18 = temp_v1_7; + } + // Node 26 + phi_a1 = (phi_a1 + 0x10); + phi_a2_2 = temp_a2_2; + if (temp_a2_2 != temp_a3) + { + goto loop_14; + } + } + // Node 27 + if (temp_a0->unk4 == temp_a0->unk10) + { + // Node 28 + temp_a0->unk10 = (s32) (temp_a0->unk10 + 1); + } + // Node 29 + if (temp_a0->unk8 == temp_a0->unk14) + { + // Node 30 + temp_a0->unk14 = (s32) (temp_a0->unk14 + 1); + } + // Node 31 + if (temp_a0->unkC == temp_a0->unk18) + { + // Node 32 + temp_a0->unk18 = (s32) (temp_a0->unk18 + 1); + } + // Node 33 + temp_a0->unk4 = (s32) (temp_a0->unk4 + (s32) (ptr_bgdata_room_fileposition_list + temp_t2)->unkC); + temp_a0->unk8 = (s32) (temp_a0->unk8 + (s32) (ptr_bgdata_room_fileposition_list + temp_t2)->unk10); + temp_a0->unkC = (s32) (temp_a0->unkC + (s32) (ptr_bgdata_room_fileposition_list + temp_t2)->unk14); + temp_a0->unk10 = (s32) (temp_a0->unk10 + (s32) (ptr_bgdata_room_fileposition_list + temp_t2)->unkC); + temp_a0->unk14 = (s32) (temp_a0->unk14 + (s32) (ptr_bgdata_room_fileposition_list + temp_t2)->unk10); + temp_a0->unk18 = (s32) (temp_a0->unk18 + (s32) (ptr_bgdata_room_fileposition_list + temp_t2)->unk14); + phi_t5_2 = (phi_t5_2 + 1); + } + // Node 34 + temp_v1_9 = phi_t3_2->unk8; + phi_v1_2 = temp_v1_9; + phi_ra = (phi_ra + 1); + phi_t3_2 = (phi_t3_2 + 8); + if (-0x48 != temp_v1_9) + { + goto loop_9; + } + } + } + } + // Node 35 + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B6994 +/* 0EB4C4 7F0B6994 00047880 */ sll $t7, $a0, 2 +/* 0EB4C8 7F0B6998 01E47821 */ addu $t7, $t7, $a0 +/* 0EB4CC 7F0B699C 3C188004 */ lui $t8, %hi(array_room_info) +/* 0EB4D0 7F0B69A0 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414 +/* 0EB4D4 7F0B69A4 000F7900 */ sll $t7, $t7, 4 +/* 0EB4D8 7F0B69A8 01F82821 */ addu $a1, $t7, $t8 +/* 0EB4DC 7F0B69AC 8CB9002C */ lw $t9, 0x2c($a1) +/* 0EB4E0 7F0B69B0 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0EB4E4 7F0B69B4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0EB4E8 7F0B69B8 AFB10018 */ sw $s1, 0x18($sp) +/* 0EB4EC 7F0B69BC AFB00014 */ sw $s0, 0x14($sp) +/* 0EB4F0 7F0B69C0 172000C5 */ bnez $t9, .L7F0B6CD8 +/* 0EB4F4 7F0B69C4 AFA40050 */ sw $a0, 0x50($sp) +/* 0EB4F8 7F0B69C8 8CAE0004 */ lw $t6, 4($a1) +/* 0EB4FC 7F0B69CC 8CA60008 */ lw $a2, 8($a1) +/* 0EB500 7F0B69D0 2410FFB8 */ li $s0, -72 +/* 0EB504 7F0B69D4 AFAE0044 */ sw $t6, 0x44($sp) +/* 0EB508 7F0B69D8 80CF0000 */ lb $t7, ($a2) +/* 0EB50C 7F0B69DC 00006825 */ move $t5, $zero +/* 0EB510 7F0B69E0 2401FFF0 */ li $at, -16 +/* 0EB514 7F0B69E4 120F000A */ beq $s0, $t7, .L7F0B6A10 +/* 0EB518 7F0B69E8 00C05825 */ move $t3, $a2 +/* 0EB51C 7F0B69EC 80C30000 */ lb $v1, ($a2) +/* 0EB520 7F0B69F0 24110004 */ li $s1, 4 +.L7F0B69F4: +/* 0EB524 7F0B69F4 56230003 */ bnel $s1, $v1, .L7F0B6A04 +/* 0EB528 7F0B69F8 81630008 */ lb $v1, 8($t3) +/* 0EB52C 7F0B69FC 25AD0001 */ addiu $t5, $t5, 1 +/* 0EB530 7F0B6A00 81630008 */ lb $v1, 8($t3) +.L7F0B6A04: +/* 0EB534 7F0B6A04 256B0008 */ addiu $t3, $t3, 8 +/* 0EB538 7F0B6A08 1603FFFA */ bne $s0, $v1, .L7F0B69F4 +/* 0EB53C 7F0B6A0C 00000000 */ nop +.L7F0B6A10: +/* 0EB540 7F0B6A10 000D20C0 */ sll $a0, $t5, 3 +/* 0EB544 7F0B6A14 008D2023 */ subu $a0, $a0, $t5 +/* 0EB548 7F0B6A18 00042080 */ sll $a0, $a0, 2 +/* 0EB54C 7F0B6A1C 2484000F */ addiu $a0, $a0, 0xf +/* 0EB550 7F0B6A20 0081C024 */ and $t8, $a0, $at +/* 0EB554 7F0B6A24 24110004 */ li $s1, 4 +/* 0EB558 7F0B6A28 03002025 */ move $a0, $t8 +/* 0EB55C 7F0B6A2C AFB80024 */ sw $t8, 0x24($sp) +/* 0EB560 7F0B6A30 AFA50028 */ sw $a1, 0x28($sp) +/* 0EB564 7F0B6A34 AFA60048 */ sw $a2, 0x48($sp) +/* 0EB568 7F0B6A38 0C00278D */ jal mem_related_something_find_first +/* 0EB56C 7F0B6A3C AFAD003C */ sw $t5, 0x3c($sp) +/* 0EB570 7F0B6A40 8FA50028 */ lw $a1, 0x28($sp) +/* 0EB574 7F0B6A44 8FA60048 */ lw $a2, 0x48($sp) +/* 0EB578 7F0B6A48 104000A3 */ beqz $v0, .L7F0B6CD8 +/* 0EB57C 7F0B6A4C 8FAD003C */ lw $t5, 0x3c($sp) +/* 0EB580 7F0B6A50 ACA2002C */ sw $v0, 0x2c($a1) +/* 0EB584 7F0B6A54 A4AD0030 */ sh $t5, 0x30($a1) +/* 0EB588 7F0B6A58 80D90000 */ lb $t9, ($a2) +/* 0EB58C 7F0B6A5C 00006825 */ move $t5, $zero +/* 0EB590 7F0B6A60 0000F825 */ move $ra, $zero +/* 0EB594 7F0B6A64 1219009C */ beq $s0, $t9, .L7F0B6CD8 +/* 0EB598 7F0B6A68 00C05825 */ move $t3, $a2 +/* 0EB59C 7F0B6A6C 3C0C8008 */ lui $t4, %hi(ptr_bgdata_room_fileposition_list) +/* 0EB5A0 7F0B6A70 258CFF8C */ addiu $t4, %lo(ptr_bgdata_room_fileposition_list) # addiu $t4, $t4, -0x74 +/* 0EB5A4 7F0B6A74 80C30000 */ lb $v1, ($a2) +/* 0EB5A8 7F0B6A78 24098000 */ li $t1, -32768 +/* 0EB5AC 7F0B6A7C 24087FFF */ li $t0, 32767 +.L7F0B6A80: +/* 0EB5B0 7F0B6A80 16230090 */ bne $s1, $v1, .L7F0B6CC4 +/* 0EB5B4 7F0B6A84 000D70C0 */ sll $t6, $t5, 3 +/* 0EB5B8 7F0B6A88 01CD7023 */ subu $t6, $t6, $t5 +/* 0EB5BC 7F0B6A8C 000E7080 */ sll $t6, $t6, 2 +/* 0EB5C0 7F0B6A90 004E2021 */ addu $a0, $v0, $t6 +/* 0EB5C4 7F0B6A94 A49F0000 */ sh $ra, ($a0) +/* 0EB5C8 7F0B6A98 8FAA0050 */ lw $t2, 0x50($sp) +/* 0EB5CC 7F0B6A9C 000DC0C0 */ sll $t8, $t5, 3 +/* 0EB5D0 7F0B6AA0 030DC023 */ subu $t8, $t8, $t5 +/* 0EB5D4 7F0B6AA4 000A7880 */ sll $t7, $t2, 2 +/* 0EB5D8 7F0B6AA8 0018C080 */ sll $t8, $t8, 2 +/* 0EB5DC 7F0B6AAC 01EA7823 */ subu $t7, $t7, $t2 +/* 0EB5E0 7F0B6AB0 000F50C0 */ sll $t2, $t7, 3 +/* 0EB5E4 7F0B6AB4 00581821 */ addu $v1, $v0, $t8 +/* 0EB5E8 7F0B6AB8 00003025 */ move $a2, $zero +.L7F0B6ABC: +/* 0EB5EC 7F0B6ABC 24C60001 */ addiu $a2, $a2, 1 +/* 0EB5F0 7F0B6AC0 28C10003 */ slti $at, $a2, 3 +/* 0EB5F4 7F0B6AC4 24630004 */ addiu $v1, $v1, 4 +/* 0EB5F8 7F0B6AC8 AC680000 */ sw $t0, ($v1) +/* 0EB5FC 7F0B6ACC 1420FFFB */ bnez $at, .L7F0B6ABC +/* 0EB600 7F0B6AD0 AC69000C */ sw $t1, 0xc($v1) +/* 0EB604 7F0B6AD4 91670001 */ lbu $a3, 1($t3) +/* 0EB608 7F0B6AD8 8D6F0004 */ lw $t7, 4($t3) +/* 0EB60C 7F0B6ADC 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 0EB610 7F0B6AE0 0007C902 */ srl $t9, $a3, 4 +/* 0EB614 7F0B6AE4 332E000F */ andi $t6, $t9, 0xf +/* 0EB618 7F0B6AE8 8FB90044 */ lw $t9, 0x44($sp) +/* 0EB61C 7F0B6AEC 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 0EB620 7F0B6AF0 25C70001 */ addiu $a3, $t6, 1 +/* 0EB624 7F0B6AF4 01E1C024 */ and $t8, $t7, $at +/* 0EB628 7F0B6AF8 00003025 */ move $a2, $zero +/* 0EB62C 7F0B6AFC 18E00029 */ blez $a3, .L7F0B6BA4 +/* 0EB630 7F0B6B00 03191821 */ addu $v1, $t8, $t9 +/* 0EB634 7F0B6B04 00602825 */ move $a1, $v1 +.L7F0B6B08: +/* 0EB638 7F0B6B08 84A30000 */ lh $v1, ($a1) +/* 0EB63C 7F0B6B0C 8C8E0004 */ lw $t6, 4($a0) +/* 0EB640 7F0B6B10 24C60001 */ addiu $a2, $a2, 1 +/* 0EB644 7F0B6B14 006E082A */ slt $at, $v1, $t6 +/* 0EB648 7F0B6B18 50200003 */ beql $at, $zero, .L7F0B6B28 +/* 0EB64C 7F0B6B1C 84A30002 */ lh $v1, 2($a1) +/* 0EB650 7F0B6B20 AC830004 */ sw $v1, 4($a0) +/* 0EB654 7F0B6B24 84A30002 */ lh $v1, 2($a1) +.L7F0B6B28: +/* 0EB658 7F0B6B28 8C8F0008 */ lw $t7, 8($a0) +/* 0EB65C 7F0B6B2C 006F082A */ slt $at, $v1, $t7 +/* 0EB660 7F0B6B30 50200003 */ beql $at, $zero, .L7F0B6B40 +/* 0EB664 7F0B6B34 84A30004 */ lh $v1, 4($a1) +/* 0EB668 7F0B6B38 AC830008 */ sw $v1, 8($a0) +/* 0EB66C 7F0B6B3C 84A30004 */ lh $v1, 4($a1) +.L7F0B6B40: +/* 0EB670 7F0B6B40 8C98000C */ lw $t8, 0xc($a0) +/* 0EB674 7F0B6B44 0078082A */ slt $at, $v1, $t8 +/* 0EB678 7F0B6B48 50200003 */ beql $at, $zero, .L7F0B6B58 +/* 0EB67C 7F0B6B4C 84A30000 */ lh $v1, ($a1) +/* 0EB680 7F0B6B50 AC83000C */ sw $v1, 0xc($a0) +/* 0EB684 7F0B6B54 84A30000 */ lh $v1, ($a1) +.L7F0B6B58: +/* 0EB688 7F0B6B58 8C990010 */ lw $t9, 0x10($a0) +/* 0EB68C 7F0B6B5C 0323082A */ slt $at, $t9, $v1 +/* 0EB690 7F0B6B60 50200003 */ beql $at, $zero, .L7F0B6B70 +/* 0EB694 7F0B6B64 84A30002 */ lh $v1, 2($a1) +/* 0EB698 7F0B6B68 AC830010 */ sw $v1, 0x10($a0) +/* 0EB69C 7F0B6B6C 84A30002 */ lh $v1, 2($a1) +.L7F0B6B70: +/* 0EB6A0 7F0B6B70 8C8E0014 */ lw $t6, 0x14($a0) +/* 0EB6A4 7F0B6B74 01C3082A */ slt $at, $t6, $v1 +/* 0EB6A8 7F0B6B78 50200003 */ beql $at, $zero, .L7F0B6B88 +/* 0EB6AC 7F0B6B7C 84A30004 */ lh $v1, 4($a1) +/* 0EB6B0 7F0B6B80 AC830014 */ sw $v1, 0x14($a0) +/* 0EB6B4 7F0B6B84 84A30004 */ lh $v1, 4($a1) +.L7F0B6B88: +/* 0EB6B8 7F0B6B88 8C8F0018 */ lw $t7, 0x18($a0) +/* 0EB6BC 7F0B6B8C 01E3082A */ slt $at, $t7, $v1 +/* 0EB6C0 7F0B6B90 10200002 */ beqz $at, .L7F0B6B9C +/* 0EB6C4 7F0B6B94 00000000 */ nop +/* 0EB6C8 7F0B6B98 AC830018 */ sw $v1, 0x18($a0) +.L7F0B6B9C: +/* 0EB6CC 7F0B6B9C 14C7FFDA */ bne $a2, $a3, .L7F0B6B08 +/* 0EB6D0 7F0B6BA0 24A50010 */ addiu $a1, $a1, 0x10 +.L7F0B6BA4: +/* 0EB6D4 7F0B6BA4 8C830010 */ lw $v1, 0x10($a0) +/* 0EB6D8 7F0B6BA8 8C980004 */ lw $t8, 4($a0) +/* 0EB6DC 7F0B6BAC 24790001 */ addiu $t9, $v1, 1 +/* 0EB6E0 7F0B6BB0 57030003 */ bnel $t8, $v1, .L7F0B6BC0 +/* 0EB6E4 7F0B6BB4 8C830014 */ lw $v1, 0x14($a0) +/* 0EB6E8 7F0B6BB8 AC990010 */ sw $t9, 0x10($a0) +/* 0EB6EC 7F0B6BBC 8C830014 */ lw $v1, 0x14($a0) +.L7F0B6BC0: +/* 0EB6F0 7F0B6BC0 8C8E0008 */ lw $t6, 8($a0) +/* 0EB6F4 7F0B6BC4 246F0001 */ addiu $t7, $v1, 1 +/* 0EB6F8 7F0B6BC8 55C30003 */ bnel $t6, $v1, .L7F0B6BD8 +/* 0EB6FC 7F0B6BCC 8C83000C */ lw $v1, 0xc($a0) +/* 0EB700 7F0B6BD0 AC8F0014 */ sw $t7, 0x14($a0) +/* 0EB704 7F0B6BD4 8C83000C */ lw $v1, 0xc($a0) +.L7F0B6BD8: +/* 0EB708 7F0B6BD8 8C850018 */ lw $a1, 0x18($a0) +/* 0EB70C 7F0B6BDC 14650003 */ bne $v1, $a1, .L7F0B6BEC +/* 0EB710 7F0B6BE0 24B80001 */ addiu $t8, $a1, 1 +/* 0EB714 7F0B6BE4 AC980018 */ sw $t8, 0x18($a0) +/* 0EB718 7F0B6BE8 8C83000C */ lw $v1, 0xc($a0) +.L7F0B6BEC: +/* 0EB71C 7F0B6BEC 8D8E0000 */ lw $t6, ($t4) +/* 0EB720 7F0B6BF0 8C990004 */ lw $t9, 4($a0) +/* 0EB724 7F0B6BF4 8C980008 */ lw $t8, 8($a0) +/* 0EB728 7F0B6BF8 01CA7821 */ addu $t7, $t6, $t2 +/* 0EB72C 7F0B6BFC C5E4000C */ lwc1 $f4, 0xc($t7) +/* 0EB730 7F0B6C00 25AD0001 */ addiu $t5, $t5, 1 +/* 0EB734 7F0B6C04 4600218D */ trunc.w.s $f6, $f4 +/* 0EB738 7F0B6C08 440E3000 */ mfc1 $t6, $f6 +/* 0EB73C 7F0B6C0C 00000000 */ nop +/* 0EB740 7F0B6C10 032E7821 */ addu $t7, $t9, $t6 +/* 0EB744 7F0B6C14 AC8F0004 */ sw $t7, 4($a0) +/* 0EB748 7F0B6C18 8D990000 */ lw $t9, ($t4) +/* 0EB74C 7F0B6C1C 032A7021 */ addu $t6, $t9, $t2 +/* 0EB750 7F0B6C20 C5C80010 */ lwc1 $f8, 0x10($t6) +/* 0EB754 7F0B6C24 4600428D */ trunc.w.s $f10, $f8 +/* 0EB758 7F0B6C28 44195000 */ mfc1 $t9, $f10 +/* 0EB75C 7F0B6C2C 00000000 */ nop +/* 0EB760 7F0B6C30 03197021 */ addu $t6, $t8, $t9 +/* 0EB764 7F0B6C34 AC8E0008 */ sw $t6, 8($a0) +/* 0EB768 7F0B6C38 8D8F0000 */ lw $t7, ($t4) +/* 0EB76C 7F0B6C3C 01EAC021 */ addu $t8, $t7, $t2 +/* 0EB770 7F0B6C40 C7100014 */ lwc1 $f16, 0x14($t8) +/* 0EB774 7F0B6C44 8C980010 */ lw $t8, 0x10($a0) +/* 0EB778 7F0B6C48 4600848D */ trunc.w.s $f18, $f16 +/* 0EB77C 7F0B6C4C 440E9000 */ mfc1 $t6, $f18 +/* 0EB780 7F0B6C50 00000000 */ nop +/* 0EB784 7F0B6C54 006E7821 */ addu $t7, $v1, $t6 +/* 0EB788 7F0B6C58 AC8F000C */ sw $t7, 0xc($a0) +/* 0EB78C 7F0B6C5C 8D990000 */ lw $t9, ($t4) +/* 0EB790 7F0B6C60 8C8F0014 */ lw $t7, 0x14($a0) +/* 0EB794 7F0B6C64 032A7021 */ addu $t6, $t9, $t2 +/* 0EB798 7F0B6C68 C5C4000C */ lwc1 $f4, 0xc($t6) +/* 0EB79C 7F0B6C6C 4600218D */ trunc.w.s $f6, $f4 +/* 0EB7A0 7F0B6C70 44193000 */ mfc1 $t9, $f6 +/* 0EB7A4 7F0B6C74 00000000 */ nop +/* 0EB7A8 7F0B6C78 03197021 */ addu $t6, $t8, $t9 +/* 0EB7AC 7F0B6C7C AC8E0010 */ sw $t6, 0x10($a0) +/* 0EB7B0 7F0B6C80 8D980000 */ lw $t8, ($t4) +/* 0EB7B4 7F0B6C84 8C8E0018 */ lw $t6, 0x18($a0) +/* 0EB7B8 7F0B6C88 030AC821 */ addu $t9, $t8, $t2 +/* 0EB7BC 7F0B6C8C C7280010 */ lwc1 $f8, 0x10($t9) +/* 0EB7C0 7F0B6C90 4600428D */ trunc.w.s $f10, $f8 +/* 0EB7C4 7F0B6C94 44185000 */ mfc1 $t8, $f10 +/* 0EB7C8 7F0B6C98 00000000 */ nop +/* 0EB7CC 7F0B6C9C 01F8C821 */ addu $t9, $t7, $t8 +/* 0EB7D0 7F0B6CA0 AC990014 */ sw $t9, 0x14($a0) +/* 0EB7D4 7F0B6CA4 8D8F0000 */ lw $t7, ($t4) +/* 0EB7D8 7F0B6CA8 01EAC021 */ addu $t8, $t7, $t2 +/* 0EB7DC 7F0B6CAC C7100014 */ lwc1 $f16, 0x14($t8) +/* 0EB7E0 7F0B6CB0 4600848D */ trunc.w.s $f18, $f16 +/* 0EB7E4 7F0B6CB4 440F9000 */ mfc1 $t7, $f18 +/* 0EB7E8 7F0B6CB8 00000000 */ nop +/* 0EB7EC 7F0B6CBC 01CFC021 */ addu $t8, $t6, $t7 +/* 0EB7F0 7F0B6CC0 AC980018 */ sw $t8, 0x18($a0) +.L7F0B6CC4: +/* 0EB7F4 7F0B6CC4 81630008 */ lb $v1, 8($t3) +/* 0EB7F8 7F0B6CC8 27FF0001 */ addiu $ra, $ra, 1 +/* 0EB7FC 7F0B6CCC 256B0008 */ addiu $t3, $t3, 8 +/* 0EB800 7F0B6CD0 1603FF6B */ bne $s0, $v1, .L7F0B6A80 +/* 0EB804 7F0B6CD4 00000000 */ nop +.L7F0B6CD8: +/* 0EB808 7F0B6CD8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0EB80C 7F0B6CDC 8FB00014 */ lw $s0, 0x14($sp) +/* 0EB810 7F0B6CE0 8FB10018 */ lw $s1, 0x18($sp) +/* 0EB814 7F0B6CE4 03E00008 */ jr $ra +/* 0EB818 7F0B6CE8 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B6CEC(void *arg0, void *arg1, void *arg2, void *arg3) { + f32 sp0; + f32 sp4; + f32 sp20; + f32 sp30; + f32 sp34; + f32 sp60; + f32 sp64; + f32 sp68; + f32 sp6C; + f32 sp70; + f32 sp74; + f32 temp_f6; + f32 temp_f16_2; + f32 temp_f14; + f32 temp_f2; + f32 temp_f0; + f32 temp_f0_2; + f32 temp_f18; + f32 temp_f12; + f32 temp_f16; + f32 phi_f14; + f32 phi_f16; + f32 phi_f0; + f32 phi_f2; + f32 phi_f14_2; + f32 phi_f12; + f32 phi_f0_2; + f32 phi_f18; + f32 phi_f2_2; + f32 phi_f16_2; + f32 phi_f0_3; + f32 phi_f18_2; + f32 phi_f12_2; + f32 phi_f2_3; + f32 phi_f18_3; + f32 phi_f0_4; + f32 phi_f14_3; + f32 phi_f12_3; + + // Node 0 + temp_f6 = (f32) *arg2; + sp6C = temp_f6; + sp70 = (f32) arg2->unk4; + sp74 = (f32) arg2->unk8; + sp60 = (f32) *arg3; + sp64 = (f32) arg3->unk4; + sp68 = (f32) arg3->unk8; + temp_f16_2 = (sp60 - *arg0); + temp_f14 = (temp_f6 - *arg0); + phi_f14 = temp_f14; + phi_f16 = temp_f16_2; + phi_f18 = *arg1; + if (*arg1 < 0.0f) + { + // Node 1 + phi_f14 = -temp_f14; + phi_f16 = -temp_f16_2; + phi_f18 = -*arg1; + } + // Node 2 + if (phi_f14 < 0.0f) + { + // Node 3 + if (phi_f16 < 0.0f) + { + // Node 4 + return 1; + } + } + // Node 5 + phi_f14_2 = phi_f14; + phi_f16_2 = phi_f16; + if (phi_f16 < phi_f14) + { + // Node 6 + phi_f14_2 = phi_f16; + phi_f16_2 = phi_f14; + } + // Node 7 + sp4 = (f32) arg0->unk4; + temp_f2 = (sp64 - sp4); + temp_f0 = (sp70 - sp4); + phi_f0 = temp_f0; + phi_f2 = temp_f2; + phi_f12 = arg1->unk4; + if (arg1->unk4 < 0.0f) + { + // Node 8 + phi_f0 = -temp_f0; + phi_f2 = -temp_f2; + phi_f12 = -arg1->unk4; + } + // Node 9 + if (phi_f0 < 0.0f) + { + // Node 10 + if (phi_f2 < 0.0f) + { + // Node 11 + return 1; + } + } + // Node 12 + phi_f0_2 = phi_f0; + phi_f2_2 = phi_f2; + if (phi_f2 < phi_f0) + { + // Node 13 + sp20 = (f32) phi_f0; + phi_f0_2 = phi_f2; + phi_f2_2 = sp20; + } + // Node 14 + sp4 = (f32) (phi_f14_2 * phi_f12); + sp0 = (f32) (phi_f0_2 * phi_f18); + if (sp0 < sp4) + { + // Node 15 + temp_f0_2 = (phi_f2_2 * phi_f18); + if (temp_f0_2 < sp4) + { + // Node 16 + return 1; + } + // Node 17 + sp30 = (f32) phi_f18; + sp4 = (f32) (phi_f16_2 * phi_f12); + phi_f0_3 = temp_f0_2; + } + else + { + // Node 18 + if ((phi_f16_2 * phi_f12) < sp0) + { + // Node 19 + return 1; + } + // Node 20 + sp34 = (f32) phi_f0_2; + sp0 = (f32) (phi_f2_2 * phi_f18); + phi_f0_3 = sp0; + } + // Node 21 + if (sp4 < phi_f0_3) + { + // Node 22 + phi_f0_4 = phi_f16_2; + phi_f14_3 = phi_f18; + } + else + { + // Node 23 + phi_f0_4 = phi_f2_2; + phi_f14_3 = phi_f12; + } + // Node 24 + temp_f18 = (sp74 - arg0->unk8); + temp_f12 = (sp68 - arg0->unk8); + phi_f18_2 = temp_f18; + phi_f12_2 = temp_f12; + phi_f2_3 = arg1->unk8; + if (arg1->unk8 < 0.0f) + { + // Node 25 + phi_f18_2 = -temp_f18; + phi_f12_2 = -temp_f12; + phi_f2_3 = -arg1->unk8; + } + // Node 26 + if (phi_f18_2 < 0.0f) + { + // Node 27 + if (phi_f12_2 < 0.0f) + { + // Node 28 + return 1; + } + } + // Node 29 + phi_f18_3 = phi_f18_2; + phi_f12_3 = phi_f12_2; + if (phi_f12_2 < phi_f18_2) + { + // Node 30 + phi_f18_3 = phi_f12_2; + phi_f12_3 = phi_f18_2; + } + // Node 31 + temp_f16 = (sp34 * phi_f2_3); + if (temp_f16 < (phi_f18_3 * sp30)) + { + // Node 32 + if ((phi_f0_4 * phi_f2_3) >= (phi_f18_3 * phi_f14_3)) + { + // Node 36 + // Node 37 + return 1; + } + // Node 33 + return 1; + } + // Node 34 + if ((phi_f12_3 * sp30) >= temp_f16) + { + // Node 36 + // Node 37 + return 1; + } + // Node 35 + return 1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B6CEC +/* 0EB81C 7F0B6CEC 8CCE0000 */ lw $t6, ($a2) +/* 0EB820 7F0B6CF0 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 0EB824 7F0B6CF4 448E2000 */ mtc1 $t6, $f4 +/* 0EB828 7F0B6CF8 00000000 */ nop +/* 0EB82C 7F0B6CFC 468021A0 */ cvt.s.w $f6, $f4 +/* 0EB830 7F0B6D00 E7A6006C */ swc1 $f6, 0x6c($sp) +/* 0EB834 7F0B6D04 8CCF0004 */ lw $t7, 4($a2) +/* 0EB838 7F0B6D08 448F4000 */ mtc1 $t7, $f8 +/* 0EB83C 7F0B6D0C 00000000 */ nop +/* 0EB840 7F0B6D10 468042A0 */ cvt.s.w $f10, $f8 +/* 0EB844 7F0B6D14 E7AA0070 */ swc1 $f10, 0x70($sp) +/* 0EB848 7F0B6D18 8CD80008 */ lw $t8, 8($a2) +/* 0EB84C 7F0B6D1C 44982000 */ mtc1 $t8, $f4 +/* 0EB850 7F0B6D20 00000000 */ nop +/* 0EB854 7F0B6D24 468021A0 */ cvt.s.w $f6, $f4 +/* 0EB858 7F0B6D28 E7A60074 */ swc1 $f6, 0x74($sp) +/* 0EB85C 7F0B6D2C 8CF90000 */ lw $t9, ($a3) +/* 0EB860 7F0B6D30 44994000 */ mtc1 $t9, $f8 +/* 0EB864 7F0B6D34 00000000 */ nop +/* 0EB868 7F0B6D38 468042A0 */ cvt.s.w $f10, $f8 +/* 0EB86C 7F0B6D3C E7AA0060 */ swc1 $f10, 0x60($sp) +/* 0EB870 7F0B6D40 8CE80004 */ lw $t0, 4($a3) +/* 0EB874 7F0B6D44 44882000 */ mtc1 $t0, $f4 +/* 0EB878 7F0B6D48 00000000 */ nop +/* 0EB87C 7F0B6D4C 468021A0 */ cvt.s.w $f6, $f4 +/* 0EB880 7F0B6D50 C7A40060 */ lwc1 $f4, 0x60($sp) +/* 0EB884 7F0B6D54 E7A60064 */ swc1 $f6, 0x64($sp) +/* 0EB888 7F0B6D58 8CE90008 */ lw $t1, 8($a3) +/* 0EB88C 7F0B6D5C C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 0EB890 7F0B6D60 44894000 */ mtc1 $t1, $f8 +/* 0EB894 7F0B6D64 00000000 */ nop +/* 0EB898 7F0B6D68 468042A0 */ cvt.s.w $f10, $f8 +/* 0EB89C 7F0B6D6C 44804000 */ mtc1 $zero, $f8 +/* 0EB8A0 7F0B6D70 E7AA0068 */ swc1 $f10, 0x68($sp) +/* 0EB8A4 7F0B6D74 C4B20000 */ lwc1 $f18, ($a1) +/* 0EB8A8 7F0B6D78 C4800000 */ lwc1 $f0, ($a0) +/* 0EB8AC 7F0B6D7C 44805000 */ mtc1 $zero, $f10 +/* 0EB8B0 7F0B6D80 4608903C */ c.lt.s $f18, $f8 +/* 0EB8B4 7F0B6D84 46002401 */ sub.s $f16, $f4, $f0 +/* 0EB8B8 7F0B6D88 45000004 */ bc1f .L7F0B6D9C +/* 0EB8BC 7F0B6D8C 46003381 */ sub.s $f14, $f6, $f0 +/* 0EB8C0 7F0B6D90 46009487 */ neg.s $f18, $f18 +/* 0EB8C4 7F0B6D94 46007387 */ neg.s $f14, $f14 +/* 0EB8C8 7F0B6D98 46008407 */ neg.s $f16, $f16 +.L7F0B6D9C: +/* 0EB8CC 7F0B6D9C 460A703C */ c.lt.s $f14, $f10 +/* 0EB8D0 7F0B6DA0 00000000 */ nop +/* 0EB8D4 7F0B6DA4 4502000A */ bc1fl .L7F0B6DD0 +/* 0EB8D8 7F0B6DA8 460E803C */ c.lt.s $f16, $f14 +/* 0EB8DC 7F0B6DAC 44802000 */ mtc1 $zero, $f4 +/* 0EB8E0 7F0B6DB0 00000000 */ nop +/* 0EB8E4 7F0B6DB4 4604803C */ c.lt.s $f16, $f4 +/* 0EB8E8 7F0B6DB8 00000000 */ nop +/* 0EB8EC 7F0B6DBC 45020004 */ bc1fl .L7F0B6DD0 +/* 0EB8F0 7F0B6DC0 460E803C */ c.lt.s $f16, $f14 +/* 0EB8F4 7F0B6DC4 10000090 */ b .L7F0B7008 +/* 0EB8F8 7F0B6DC8 00001025 */ move $v0, $zero +/* 0EB8FC 7F0B6DCC 460E803C */ c.lt.s $f16, $f14 +.L7F0B6DD0: +/* 0EB900 7F0B6DD0 00000000 */ nop +/* 0EB904 7F0B6DD4 45020005 */ bc1fl .L7F0B6DEC +/* 0EB908 7F0B6DD8 C4860004 */ lwc1 $f6, 4($a0) +/* 0EB90C 7F0B6DDC 46007006 */ mov.s $f0, $f14 +/* 0EB910 7F0B6DE0 46008386 */ mov.s $f14, $f16 +/* 0EB914 7F0B6DE4 46000406 */ mov.s $f16, $f0 +/* 0EB918 7F0B6DE8 C4860004 */ lwc1 $f6, 4($a0) +.L7F0B6DEC: +/* 0EB91C 7F0B6DEC C4AC0004 */ lwc1 $f12, 4($a1) +/* 0EB920 7F0B6DF0 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 0EB924 7F0B6DF4 E7A60004 */ swc1 $f6, 4($sp) +/* 0EB928 7F0B6DF8 44803000 */ mtc1 $zero, $f6 +/* 0EB92C 7F0B6DFC C7AA0004 */ lwc1 $f10, 4($sp) +/* 0EB930 7F0B6E00 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 0EB934 7F0B6E04 4606603C */ c.lt.s $f12, $f6 +/* 0EB938 7F0B6E08 460A4081 */ sub.s $f2, $f8, $f10 +/* 0EB93C 7F0B6E0C 44804000 */ mtc1 $zero, $f8 +/* 0EB940 7F0B6E10 45000004 */ bc1f .L7F0B6E24 +/* 0EB944 7F0B6E14 460A2001 */ sub.s $f0, $f4, $f10 +/* 0EB948 7F0B6E18 46006307 */ neg.s $f12, $f12 +/* 0EB94C 7F0B6E1C 46000007 */ neg.s $f0, $f0 +/* 0EB950 7F0B6E20 46001087 */ neg.s $f2, $f2 +.L7F0B6E24: +/* 0EB954 7F0B6E24 4608003C */ c.lt.s $f0, $f8 +/* 0EB958 7F0B6E28 00000000 */ nop +/* 0EB95C 7F0B6E2C 4502000A */ bc1fl .L7F0B6E58 +/* 0EB960 7F0B6E30 4600103C */ c.lt.s $f2, $f0 +/* 0EB964 7F0B6E34 44802000 */ mtc1 $zero, $f4 +/* 0EB968 7F0B6E38 00000000 */ nop +/* 0EB96C 7F0B6E3C 4604103C */ c.lt.s $f2, $f4 +/* 0EB970 7F0B6E40 00000000 */ nop +/* 0EB974 7F0B6E44 45020004 */ bc1fl .L7F0B6E58 +/* 0EB978 7F0B6E48 4600103C */ c.lt.s $f2, $f0 +/* 0EB97C 7F0B6E4C 1000006E */ b .L7F0B7008 +/* 0EB980 7F0B6E50 00001025 */ move $v0, $zero +/* 0EB984 7F0B6E54 4600103C */ c.lt.s $f2, $f0 +.L7F0B6E58: +/* 0EB988 7F0B6E58 460C7182 */ mul.s $f6, $f14, $f12 +/* 0EB98C 7F0B6E5C 45000004 */ bc1f .L7F0B6E70 +/* 0EB990 7F0B6E60 00000000 */ nop +/* 0EB994 7F0B6E64 E7A00020 */ swc1 $f0, 0x20($sp) +/* 0EB998 7F0B6E68 46001006 */ mov.s $f0, $f2 +/* 0EB99C 7F0B6E6C C7A20020 */ lwc1 $f2, 0x20($sp) +.L7F0B6E70: +/* 0EB9A0 7F0B6E70 46120282 */ mul.s $f10, $f0, $f18 +/* 0EB9A4 7F0B6E74 E7A60004 */ swc1 $f6, 4($sp) +/* 0EB9A8 7F0B6E78 C7A40004 */ lwc1 $f4, 4($sp) +/* 0EB9AC 7F0B6E7C E7AA0000 */ swc1 $f10, ($sp) +/* 0EB9B0 7F0B6E80 C7A80000 */ lwc1 $f8, ($sp) +/* 0EB9B4 7F0B6E84 4604403C */ c.lt.s $f8, $f4 +/* 0EB9B8 7F0B6E88 00000000 */ nop +/* 0EB9BC 7F0B6E8C 4500000D */ bc1f .L7F0B6EC4 +/* 0EB9C0 7F0B6E90 00000000 */ nop +/* 0EB9C4 7F0B6E94 46121002 */ mul.s $f0, $f2, $f18 +/* 0EB9C8 7F0B6E98 4604003C */ c.lt.s $f0, $f4 +/* 0EB9CC 7F0B6E9C 00000000 */ nop +/* 0EB9D0 7F0B6EA0 45000003 */ bc1f .L7F0B6EB0 +/* 0EB9D4 7F0B6EA4 00000000 */ nop +/* 0EB9D8 7F0B6EA8 10000057 */ b .L7F0B7008 +/* 0EB9DC 7F0B6EAC 00001025 */ move $v0, $zero +.L7F0B6EB0: +/* 0EB9E0 7F0B6EB0 460C8282 */ mul.s $f10, $f16, $f12 +/* 0EB9E4 7F0B6EB4 E7AE0034 */ swc1 $f14, 0x34($sp) +/* 0EB9E8 7F0B6EB8 E7B20030 */ swc1 $f18, 0x30($sp) +/* 0EB9EC 7F0B6EBC 1000000F */ b .L7F0B6EFC +/* 0EB9F0 7F0B6EC0 E7AA0004 */ swc1 $f10, 4($sp) +.L7F0B6EC4: +/* 0EB9F4 7F0B6EC4 460C8382 */ mul.s $f14, $f16, $f12 +/* 0EB9F8 7F0B6EC8 C7A60000 */ lwc1 $f6, ($sp) +/* 0EB9FC 7F0B6ECC 4606703C */ c.lt.s $f14, $f6 +/* 0EBA00 7F0B6ED0 00000000 */ nop +/* 0EBA04 7F0B6ED4 45000003 */ bc1f .L7F0B6EE4 +/* 0EBA08 7F0B6ED8 00000000 */ nop +/* 0EBA0C 7F0B6EDC 1000004A */ b .L7F0B7008 +/* 0EBA10 7F0B6EE0 00001025 */ move $v0, $zero +.L7F0B6EE4: +/* 0EBA14 7F0B6EE4 46121202 */ mul.s $f8, $f2, $f18 +/* 0EBA18 7F0B6EE8 E7A00034 */ swc1 $f0, 0x34($sp) +/* 0EBA1C 7F0B6EEC E7AC0030 */ swc1 $f12, 0x30($sp) +/* 0EBA20 7F0B6EF0 E7AE0004 */ swc1 $f14, 4($sp) +/* 0EBA24 7F0B6EF4 E7A80000 */ swc1 $f8, ($sp) +/* 0EBA28 7F0B6EF8 C7A00000 */ lwc1 $f0, ($sp) +.L7F0B6EFC: +/* 0EBA2C 7F0B6EFC C7A40004 */ lwc1 $f4, 4($sp) +/* 0EBA30 7F0B6F00 44804000 */ mtc1 $zero, $f8 +/* 0EBA34 7F0B6F04 4600203C */ c.lt.s $f4, $f0 +/* 0EBA38 7F0B6F08 44802000 */ mtc1 $zero, $f4 +/* 0EBA3C 7F0B6F0C 45020005 */ bc1fl .L7F0B6F24 +/* 0EBA40 7F0B6F10 46001006 */ mov.s $f0, $f2 +/* 0EBA44 7F0B6F14 46008006 */ mov.s $f0, $f16 +/* 0EBA48 7F0B6F18 10000003 */ b .L7F0B6F28 +/* 0EBA4C 7F0B6F1C 46009386 */ mov.s $f14, $f18 +/* 0EBA50 7F0B6F20 46001006 */ mov.s $f0, $f2 +.L7F0B6F24: +/* 0EBA54 7F0B6F24 46006386 */ mov.s $f14, $f12 +.L7F0B6F28: +/* 0EBA58 7F0B6F28 C4A20008 */ lwc1 $f2, 8($a1) +/* 0EBA5C 7F0B6F2C C4900008 */ lwc1 $f16, 8($a0) +/* 0EBA60 7F0B6F30 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 0EBA64 7F0B6F34 4608103C */ c.lt.s $f2, $f8 +/* 0EBA68 7F0B6F38 C7AA0068 */ lwc1 $f10, 0x68($sp) +/* 0EBA6C 7F0B6F3C 46103481 */ sub.s $f18, $f6, $f16 +/* 0EBA70 7F0B6F40 C7A60034 */ lwc1 $f6, 0x34($sp) +/* 0EBA74 7F0B6F44 45000004 */ bc1f .L7F0B6F58 +/* 0EBA78 7F0B6F48 46105301 */ sub.s $f12, $f10, $f16 +/* 0EBA7C 7F0B6F4C 46001087 */ neg.s $f2, $f2 +/* 0EBA80 7F0B6F50 46009487 */ neg.s $f18, $f18 +/* 0EBA84 7F0B6F54 46006307 */ neg.s $f12, $f12 +.L7F0B6F58: +/* 0EBA88 7F0B6F58 4604903C */ c.lt.s $f18, $f4 +/* 0EBA8C 7F0B6F5C C7A80030 */ lwc1 $f8, 0x30($sp) +/* 0EBA90 7F0B6F60 4502000A */ bc1fl .L7F0B6F8C +/* 0EBA94 7F0B6F64 4612603C */ c.lt.s $f12, $f18 +/* 0EBA98 7F0B6F68 44805000 */ mtc1 $zero, $f10 +/* 0EBA9C 7F0B6F6C 00000000 */ nop +/* 0EBAA0 7F0B6F70 460A603C */ c.lt.s $f12, $f10 +/* 0EBAA4 7F0B6F74 00000000 */ nop +/* 0EBAA8 7F0B6F78 45020004 */ bc1fl .L7F0B6F8C +/* 0EBAAC 7F0B6F7C 4612603C */ c.lt.s $f12, $f18 +/* 0EBAB0 7F0B6F80 10000021 */ b .L7F0B7008 +/* 0EBAB4 7F0B6F84 00001025 */ move $v0, $zero +/* 0EBAB8 7F0B6F88 4612603C */ c.lt.s $f12, $f18 +.L7F0B6F8C: +/* 0EBABC 7F0B6F8C 00000000 */ nop +/* 0EBAC0 7F0B6F90 45000004 */ bc1f .L7F0B6FA4 +/* 0EBAC4 7F0B6F94 00000000 */ nop +/* 0EBAC8 7F0B6F98 46009406 */ mov.s $f16, $f18 +/* 0EBACC 7F0B6F9C 46006486 */ mov.s $f18, $f12 +/* 0EBAD0 7F0B6FA0 46008306 */ mov.s $f12, $f16 +.L7F0B6FA4: +/* 0EBAD4 7F0B6FA4 46023402 */ mul.s $f16, $f6, $f2 +/* 0EBAD8 7F0B6FA8 00000000 */ nop +/* 0EBADC 7F0B6FAC 46089102 */ mul.s $f4, $f18, $f8 +/* 0EBAE0 7F0B6FB0 C7A80030 */ lwc1 $f8, 0x30($sp) +/* 0EBAE4 7F0B6FB4 4604803C */ c.lt.s $f16, $f4 +/* 0EBAE8 7F0B6FB8 00000000 */ nop +/* 0EBAEC 7F0B6FBC 4500000A */ bc1f .L7F0B6FE8 +/* 0EBAF0 7F0B6FC0 00000000 */ nop +/* 0EBAF4 7F0B6FC4 46020282 */ mul.s $f10, $f0, $f2 +/* 0EBAF8 7F0B6FC8 00000000 */ nop +/* 0EBAFC 7F0B6FCC 460E9182 */ mul.s $f6, $f18, $f14 +/* 0EBB00 7F0B6FD0 4606503C */ c.lt.s $f10, $f6 +/* 0EBB04 7F0B6FD4 00000000 */ nop +/* 0EBB08 7F0B6FD8 4500000A */ bc1f .L7F0B7004 +/* 0EBB0C 7F0B6FDC 00000000 */ nop +/* 0EBB10 7F0B6FE0 10000009 */ b .L7F0B7008 +/* 0EBB14 7F0B6FE4 00001025 */ move $v0, $zero +.L7F0B6FE8: +/* 0EBB18 7F0B6FE8 46086102 */ mul.s $f4, $f12, $f8 +/* 0EBB1C 7F0B6FEC 4610203C */ c.lt.s $f4, $f16 +/* 0EBB20 7F0B6FF0 00000000 */ nop +/* 0EBB24 7F0B6FF4 45020004 */ bc1fl .L7F0B7008 +/* 0EBB28 7F0B6FF8 24020001 */ li $v0, 1 +/* 0EBB2C 7F0B6FFC 10000002 */ b .L7F0B7008 +/* 0EBB30 7F0B7000 00001025 */ move $v0, $zero +.L7F0B7004: +/* 0EBB34 7F0B7004 24020001 */ li $v0, 1 +.L7F0B7008: +/* 0EBB38 7F0B7008 03E00008 */ jr $ra +/* 0EBB3C 7F0B700C 27BD0078 */ addiu $sp, $sp, 0x78 +) +#endif + + + + + +#ifdef NONMATCHING +?32 sub_GAME_7F0B7010(void *arg0, s32 arg1, ?32 arg2, void *arg3, s32 arg4, void *arg5) { + s32 sp54; + void *sp64; + s32 sp80; + s32 sp84; + s32 sp88; + s32 sp8C; + s32 sp90; + s32 sp94; + s32 sp9C; + s32 spA0; + s32 spA4; + ? spA8; + s32 spC8; + s32 spCC; + s32 spD0; + s32 spD4; + s32 spD8; + s32 spDC; + s32 spE4; + s32 spE8; + s32 spEC; + s32 spF0; + f32 spF8; + ?32 sp12C; + void *temp_t0; + void *temp_s3; + s32 temp_t2; + s32 temp_s1; + void *temp_a0; + void *temp_v1; + void *temp_v0; + void *temp_v0_4; + u32 temp_v0_5; + void *temp_a0_2; + void *temp_v1_2; + void *temp_v0_2; + void *temp_v0_6; + u32 temp_v0_7; + s32 temp_s5; + s32 temp_v0_3; + s32 phi_v0; + void *phi_s3; + void *phi_a0; + void *phi_v0_2; + void *phi_v0_3; + s16 phi_s0; + s32 phi_s5; + void *phi_a0_2; + void *phi_t0; + void *phi_v0_4; + void *phi_v0_5; + s16 phi_s0_2; + void *phi_t0_2; + + // Node 0 + temp_t0 = ((arg4 * 0x50) + &array_room_info); + temp_s3 = ((*arg3 * 8) + temp_t0->unk8); + spF0 = 0x7fffffff; + sp12C = 0; + temp_t2 = (temp_s3->unk1 & 0xf); + temp_s1 = ((temp_s3->unk4 & 0xffffff) + temp_t0->unk4); + if (temp_s3->unk8 != 4) + { + // Node 1 + if (temp_s3->unk8 != -0x48) + { + // Node 2 + sp64 = temp_t0; + phi_v0 = temp_s3->unk8; + phi_s3 = (temp_s3 + 8); + phi_t0_2 = &spA8; +loop_3: + // Node 3 + if (phi_v0 == -0x41) + { + // Node 4 + spD4 = (?32) D_80044868; + spD4.unk4 = (?32) D_80044868.unk4; + spD4.unk8 = (?32) D_80044868.unk8; + spC8 = (?32) D_80044874; + spC8.unk4 = (?32) D_80044874.unk4; + spC8.unk8 = (?32) D_80044874.unk8; + spE4 = (s32) (((s32) phi_s3->unk5 / 0xa) - temp_t2); + spE8 = (s32) (((s32) phi_s3->unk6 / 0xa) - temp_t2); + spEC = (s32) (((s32) phi_s3->unk7 / 0xa) - temp_t2); + sp54 = (s32) (arg4 * 0x18); + phi_a0 = &spE4; +loop_5: + // Node 5 + temp_a0 = (phi_a0 + 4); + temp_v1 = (temp_s1 + (*phi_a0 * 0x10)); + if (*temp_v1 < spD4) + { + // Node 6 + spD4 = (s32) *temp_v1; + } + // Node 7 + if (spC8 < *temp_v1) + { + // Node 8 + spC8 = (s32) *temp_v1; + } + // Node 9 + if (temp_v1->unk2 < spD8) + { + // Node 10 + spD8 = (s32) temp_v1->unk2; + } + // Node 11 + if (spCC < temp_v1->unk2) + { + // Node 12 + spCC = (s32) temp_v1->unk2; + } + // Node 13 + if (temp_v1->unk4 < spDC) + { + // Node 14 + spDC = (s32) temp_v1->unk4; + } + // Node 15 + if (spD0 < temp_v1->unk4) + { + // Node 16 + spD0 = (s32) temp_v1->unk4; + } + // Node 17 + phi_a0 = temp_a0; + if (temp_a0 != &spF0) + { + goto loop_5; + } + // Node 18 + temp_v0 = (ptr_bgdata_room_fileposition_list + sp54); + spD4 = (s32) (spD4 + (s32) temp_v0->unkC); + spD8 = (s32) (spD8 + (s32) temp_v0->unk10); + spDC = (s32) (spDC + (s32) temp_v0->unk14); + spC8 = (s32) (spC8 + (s32) temp_v0->unkC); + spCC = (s32) (spCC + (s32) temp_v0->unk10); + spD0 = (s32) (spD0 + (s32) temp_v0->unk14); + phi_t0_2 = &spA8; + if (sub_GAME_7F0B6CEC(arg0, arg2, &spD4, &spC8) != 0) + { + // Node 19 + phi_t0_2 = &spA8; + if (sub_GAME_7F092890((temp_s1 + (spE4 * 0x10)), (temp_s1 + (spE8 * 0x10)), (temp_s1 + (spEC * 0x10)), ((sp54 + ptr_bgdata_room_fileposition_list) + 0xc), arg0, arg1, arg2, &spF8) != 0) + { + // Node 20 + temp_v0_4 = phi_s3; + sp12C = 1; + phi_v0_3 = temp_v0_4; + if (0xfd != *phi_s3) + { + // Node 21 + phi_v0_2 = temp_v0_4; + phi_v0_3 = temp_v0_4; + if ((u32) sp64->unk8 < (u32) phi_s3) + { +loop_22: + // Node 22 + temp_v0_5 = (phi_v0_2 + -8); + phi_v0_3 = temp_v0_5; + if (0xfd != phi_v0_2->unk-8) + { + // Node 23 + phi_v0_2 = temp_v0_5; + phi_v0_3 = temp_v0_5; + if ((u32) sp64->unk8 < temp_v0_5) + { + goto loop_22; + } + } + } + } + // Node 24 + if (phi_v0_3 == sp64->unk8) + { + // Node 25 + phi_s0 = (u16)-1; + } + else + { + // Node 26 + phi_s0 = *((phi_v0_3->unk4 + -8) | 0x80000000); + } + // Node 27 + if (check_if_imageID_is_light(phi_s0, ((s32) sp100 - (s32) arg0->unk8), arg0) != 0) + { + // Node 28 + } + // Node 29 + phi_t0_2 = &spA8; + if (0x4fd != 0) + { + // Node 30 + phi_t0_2 = &spA8; + if (phi_s0 != 0x4fd) + { + // Node 31 + *arg5 = spF8; + arg5->unk4 = spFC; + arg5->unk8 = sp100; + arg5->unkC = sp104; + arg5->unk10 = sp108; + arg5->unk14 = sp10C; + arg5->unk18 = (s32) ((spE4 * 0x10) + temp_s1); + arg5->unk1C = (s32) ((spE8 * 0x10) + temp_s1); + arg5->unk2A = (s16) phi_s0; + arg5->unk24 = (void *) phi_s3; + arg5->unk20 = (s32) ((spEC * 0x10) + temp_s1); + arg5->unk28 = (u16)0; + phi_t0_2 = &spA8; + } + } + } + } + } + else + { + // Node 32 + phi_t0_2 = phi_t0_2; + if (phi_v0 == -0x4f) + { + // Node 33 + sp54 = (s32) (arg4 * 0x18); + phi_s5 = 0; + phi_t0 = phi_t0_2; +loop_34: + // Node 34 + sp8C = (?32) D_80044880; + sp8C.unk4 = (?32) D_80044880.unk4; + sp8C.unk8 = (?32) D_80044880.unk8; + sp80 = (?32) D_8004488C; + sp80.unk4 = (?32) D_8004488C.unk4; + sp80.unk8 = (?32) D_8004488C.unk8; + if (phi_s5 == 0) + { + // Node 35 + sp9C = (s32) ((phi_s3->unk4 & 0xf) - temp_t2); + spA0 = (s32) (((u32) phi_s3->unk7 >> 4) - temp_t2); + spA4 = (s32) ((*phi_s3 & 0xf) - temp_t2); + } + else + { + // Node 36 + if (phi_s5 == 1) + { + // Node 37 + sp9C = (s32) ((phi_s3->unk6 & 0xf) - temp_t2); + spA0 = (s32) (((u32) phi_s3->unk6 >> 0xc) - temp_t2); + spA4 = (s32) (((u32) phi_s3->unk3 >> 4) - temp_t2); + } + else + { + // Node 38 + if (phi_s5 == 2) + { + // Node 39 + sp9C = (s32) ((phi_s3->unk4 & 0xf) - temp_t2); + spA0 = (s32) (((u32) phi_s3->unk5 >> 4) - temp_t2); + spA4 = (s32) ((phi_s3->unk2 & 0xf) - temp_t2); + } + else + { + // Node 40 + sp9C = (s32) ((phi_s3->unk4 & 0xf) - temp_t2); + spA0 = (s32) (((u32) phi_s3->unk4 >> 0x1c) - temp_t2); + spA4 = (s32) (((u32) phi_s3->unk2 >> 0xc) - temp_t2); + } + } + } + // Node 41 + phi_a0_2 = &sp9C; +loop_42: + // Node 42 + temp_a0_2 = (phi_a0_2 + 4); + temp_v1_2 = (temp_s1 + (*phi_a0_2 * 0x10)); + if (*temp_v1_2 < sp8C) + { + // Node 43 + sp8C = (s32) *temp_v1_2; + } + // Node 44 + if (sp80 < *temp_v1_2) + { + // Node 45 + sp80 = (s32) *temp_v1_2; + } + // Node 46 + if (temp_v1_2->unk2 < sp90) + { + // Node 47 + sp90 = (s32) temp_v1_2->unk2; + } + // Node 48 + if (sp84 < temp_v1_2->unk2) + { + // Node 49 + sp84 = (s32) temp_v1_2->unk2; + } + // Node 50 + if (temp_v1_2->unk4 < sp94) + { + // Node 51 + sp94 = (s32) temp_v1_2->unk4; + } + // Node 52 + if (sp88 < temp_v1_2->unk4) + { + // Node 53 + sp88 = (s32) temp_v1_2->unk4; + } + // Node 54 + phi_a0_2 = temp_a0_2; + if (temp_a0_2 != phi_t0) + { + goto loop_42; + } + // Node 55 + temp_v0_2 = (ptr_bgdata_room_fileposition_list + sp54); + sp8C = (s32) (sp8C + (s32) temp_v0_2->unkC); + sp90 = (s32) (sp90 + (s32) temp_v0_2->unk10); + sp94 = (s32) (sp94 + (s32) temp_v0_2->unk14); + sp80 = (s32) (sp80 + (s32) temp_v0_2->unkC); + sp84 = (s32) (sp84 + (s32) temp_v0_2->unk10); + sp88 = (s32) (sp88 + (s32) temp_v0_2->unk14); + if (sub_GAME_7F0B6CEC(arg0, arg2, &sp8C, &sp80) != 0) + { + // Node 56 + if (sub_GAME_7F092890((temp_s1 + (sp9C * 0x10)), (temp_s1 + (spA0 * 0x10)), (temp_s1 + (spA4 * 0x10)), ((sp54 + ptr_bgdata_room_fileposition_list) + 0xc), arg0, arg1, arg2, &spF8) != 0) + { + // Node 57 + temp_v0_6 = phi_s3; + sp12C = 1; + phi_v0_5 = temp_v0_6; + if (0xfd != *phi_s3) + { + // Node 58 + phi_v0_4 = temp_v0_6; + phi_v0_5 = temp_v0_6; + if ((u32) sp64->unk8 < (u32) phi_s3) + { +loop_59: + // Node 59 + temp_v0_7 = (phi_v0_4 + -8); + phi_v0_5 = temp_v0_7; + if (0xfd != phi_v0_4->unk-8) + { + // Node 60 + phi_v0_4 = temp_v0_7; + phi_v0_5 = temp_v0_7; + if ((u32) sp64->unk8 < temp_v0_7) + { + goto loop_59; + } + } + } + } + // Node 61 + if (phi_v0_5 == sp64->unk8) + { + // Node 62 + phi_s0_2 = (u16)-1; + } + else + { + // Node 63 + phi_s0_2 = *((phi_v0_5->unk4 + -8) | 0x80000000); + } + // Node 64 + if (check_if_imageID_is_light(phi_s0_2, ((s32) sp100 - (s32) arg0->unk8), arg0) != 0) + { + // Node 65 + } + // Node 66 + if (0x4fd != 0) + { + // Node 67 + if (phi_s0_2 != 0x4fd) + { + // Node 68 + *arg5 = spF8; + arg5->unk4 = spFC; + arg5->unk8 = sp100; + arg5->unkC = sp104; + arg5->unk10 = sp108; + arg5->unk14 = sp10C; + arg5->unk18 = (s32) ((sp9C * 0x10) + temp_s1); + arg5->unk1C = (s32) ((spA0 * 0x10) + temp_s1); + arg5->unk2A = (s16) phi_s0_2; + arg5->unk24 = (void *) phi_s3; + arg5->unk20 = (s32) ((spA4 * 0x10) + temp_s1); + arg5->unk28 = (s16) (phi_s5 + 1); + } + } + } + } + // Node 69 + temp_s5 = (phi_s5 + 1); + phi_s5 = temp_s5; + phi_t0 = &spA8; + phi_t0_2 = &spA8; + if (temp_s5 != 4) + { + goto loop_34; + } + } + } + // Node 70 + temp_v0_3 = phi_s3->unk8; + if (temp_v0_3 != -0x48) + { + // Node 71 + phi_v0 = temp_v0_3; + phi_s3 = (phi_s3 + 8); + if (temp_v0_3 != -0x48) + { + goto loop_3; + } + } + } + } + // Node 72 + return sp12C; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B7010 +/* 0EBB40 7F0B7010 27BDFEC0 */ addiu $sp, $sp, -0x140 +/* 0EBB44 7F0B7014 8FAE0150 */ lw $t6, 0x150($sp) +/* 0EBB48 7F0B7018 3C188004 */ lui $t8, %hi(array_room_info) +/* 0EBB4C 7F0B701C AFBF004C */ sw $ra, 0x4c($sp) +/* 0EBB50 7F0B7020 000E7880 */ sll $t7, $t6, 2 +/* 0EBB54 7F0B7024 01EE7821 */ addu $t7, $t7, $t6 +/* 0EBB58 7F0B7028 AFBE0048 */ sw $fp, 0x48($sp) +/* 0EBB5C 7F0B702C AFB70044 */ sw $s7, 0x44($sp) +/* 0EBB60 7F0B7030 AFB60040 */ sw $s6, 0x40($sp) +/* 0EBB64 7F0B7034 AFB5003C */ sw $s5, 0x3c($sp) +/* 0EBB68 7F0B7038 AFB40038 */ sw $s4, 0x38($sp) +/* 0EBB6C 7F0B703C AFB30034 */ sw $s3, 0x34($sp) +/* 0EBB70 7F0B7040 AFB20030 */ sw $s2, 0x30($sp) +/* 0EBB74 7F0B7044 AFB1002C */ sw $s1, 0x2c($sp) +/* 0EBB78 7F0B7048 AFB00028 */ sw $s0, 0x28($sp) +/* 0EBB7C 7F0B704C AFA40140 */ sw $a0, 0x140($sp) +/* 0EBB80 7F0B7050 AFA50144 */ sw $a1, 0x144($sp) +/* 0EBB84 7F0B7054 AFA60148 */ sw $a2, 0x148($sp) +/* 0EBB88 7F0B7058 000F7900 */ sll $t7, $t7, 4 +/* 0EBB8C 7F0B705C 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414 +/* 0EBB90 7F0B7060 84F90000 */ lh $t9, ($a3) +/* 0EBB94 7F0B7064 01F84021 */ addu $t0, $t7, $t8 +/* 0EBB98 7F0B7068 8D130008 */ lw $s3, 8($t0) +/* 0EBB9C 7F0B706C 001948C0 */ sll $t1, $t9, 3 +/* 0EBBA0 7F0B7070 3C0D7FFF */ lui $t5, (0x7FFFFFFF >> 16) # lui $t5, 0x7fff +/* 0EBBA4 7F0B7074 01339821 */ addu $s3, $t1, $s3 +/* 0EBBA8 7F0B7078 8E6B0004 */ lw $t3, 4($s3) +/* 0EBBAC 7F0B707C 92770001 */ lbu $s7, 1($s3) +/* 0EBBB0 7F0B7080 35ADFFFF */ ori $t5, (0x7FFFFFFF & 0xFFFF) # ori $t5, $t5, 0xffff +/* 0EBBB4 7F0B7084 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 0EBBB8 7F0B7088 AFAD00F0 */ sw $t5, 0xf0($sp) +/* 0EBBBC 7F0B708C AFA0012C */ sw $zero, 0x12c($sp) +/* 0EBBC0 7F0B7090 82620008 */ lb $v0, 8($s3) +/* 0EBBC4 7F0B7094 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 0EBBC8 7F0B7098 8D030004 */ lw $v1, 4($t0) +/* 0EBBCC 7F0B709C 01616024 */ and $t4, $t3, $at +/* 0EBBD0 7F0B70A0 24010004 */ li $at, 4 +/* 0EBBD4 7F0B70A4 32EA000F */ andi $t2, $s7, 0xf +/* 0EBBD8 7F0B70A8 0140B825 */ move $s7, $t2 +/* 0EBBDC 7F0B70AC 26730008 */ addiu $s3, $s3, 8 +/* 0EBBE0 7F0B70B0 10410264 */ beq $v0, $at, .L7F0B7A44 +/* 0EBBE4 7F0B70B4 01838821 */ addu $s1, $t4, $v1 +/* 0EBBE8 7F0B70B8 2401FFB8 */ li $at, -72 +/* 0EBBEC 7F0B70BC 10410261 */ beq $v0, $at, .L7F0B7A44 +/* 0EBBF0 7F0B70C0 241600FD */ li $s6, 253 +/* 0EBBF4 7F0B70C4 AFA80064 */ sw $t0, 0x64($sp) +/* 0EBBF8 7F0B70C8 27A800A8 */ addiu $t0, $sp, 0xa8 +/* 0EBBFC 7F0B70CC 8FB40154 */ lw $s4, 0x154($sp) +/* 0EBC00 7F0B70D0 2401FFBF */ li $at, -65 +.L7F0B70D4: +/* 0EBC04 7F0B70D4 1441011F */ bne $v0, $at, .L7F0B7554 +/* 0EBC08 7F0B70D8 3C0E8004 */ lui $t6, %hi(D_80044868) +/* 0EBC0C 7F0B70DC 25CE4868 */ addiu $t6, %lo(D_80044868) # addiu $t6, $t6, 0x4868 +/* 0EBC10 7F0B70E0 8DC10000 */ lw $at, ($t6) +/* 0EBC14 7F0B70E4 27A600D4 */ addiu $a2, $sp, 0xd4 +/* 0EBC18 7F0B70E8 3C198004 */ lui $t9, %hi(D_80044874) +/* 0EBC1C 7F0B70EC ACC10000 */ sw $at, ($a2) +/* 0EBC20 7F0B70F0 8DD80004 */ lw $t8, 4($t6) +/* 0EBC24 7F0B70F4 27394874 */ addiu $t9, %lo(D_80044874) # addiu $t9, $t9, 0x4874 +/* 0EBC28 7F0B70F8 27A700C8 */ addiu $a3, $sp, 0xc8 +/* 0EBC2C 7F0B70FC ACD80004 */ sw $t8, 4($a2) +/* 0EBC30 7F0B7100 8DC10008 */ lw $at, 8($t6) +/* 0EBC34 7F0B7104 2405000A */ li $a1, 10 +/* 0EBC38 7F0B7108 00001025 */ move $v0, $zero +/* 0EBC3C 7F0B710C ACC10008 */ sw $at, 8($a2) +/* 0EBC40 7F0B7110 8F210000 */ lw $at, ($t9) +/* 0EBC44 7F0B7114 27A400E4 */ addiu $a0, $sp, 0xe4 +/* 0EBC48 7F0B7118 ACE10000 */ sw $at, ($a3) +/* 0EBC4C 7F0B711C 8F2A0004 */ lw $t2, 4($t9) +/* 0EBC50 7F0B7120 ACEA0004 */ sw $t2, 4($a3) +/* 0EBC54 7F0B7124 8F210008 */ lw $at, 8($t9) +/* 0EBC58 7F0B7128 ACE10008 */ sw $at, 8($a3) +/* 0EBC5C 7F0B712C 926B0005 */ lbu $t3, 5($s3) +/* 0EBC60 7F0B7130 0165001A */ div $zero, $t3, $a1 +/* 0EBC64 7F0B7134 00006012 */ mflo $t4 +/* 0EBC68 7F0B7138 01976823 */ subu $t5, $t4, $s7 +/* 0EBC6C 7F0B713C AFAD00E4 */ sw $t5, 0xe4($sp) +/* 0EBC70 7F0B7140 926F0006 */ lbu $t7, 6($s3) +/* 0EBC74 7F0B7144 14A00002 */ bnez $a1, .L7F0B7150 +/* 0EBC78 7F0B7148 00000000 */ nop +/* 0EBC7C 7F0B714C 0007000D */ break 7 +.L7F0B7150: +/* 0EBC80 7F0B7150 2401FFFF */ li $at, -1 +/* 0EBC84 7F0B7154 14A10004 */ bne $a1, $at, .L7F0B7168 +/* 0EBC88 7F0B7158 3C018000 */ lui $at, 0x8000 +/* 0EBC8C 7F0B715C 15610002 */ bne $t3, $at, .L7F0B7168 +/* 0EBC90 7F0B7160 00000000 */ nop +/* 0EBC94 7F0B7164 0006000D */ break 6 +.L7F0B7168: +/* 0EBC98 7F0B7168 01E5001A */ div $zero, $t7, $a1 +/* 0EBC9C 7F0B716C 00007012 */ mflo $t6 +/* 0EBCA0 7F0B7170 01D7C023 */ subu $t8, $t6, $s7 +/* 0EBCA4 7F0B7174 AFB800E8 */ sw $t8, 0xe8($sp) +/* 0EBCA8 7F0B7178 92690007 */ lbu $t1, 7($s3) +/* 0EBCAC 7F0B717C 14A00002 */ bnez $a1, .L7F0B7188 +/* 0EBCB0 7F0B7180 00000000 */ nop +/* 0EBCB4 7F0B7184 0007000D */ break 7 +.L7F0B7188: +/* 0EBCB8 7F0B7188 2401FFFF */ li $at, -1 +/* 0EBCBC 7F0B718C 14A10004 */ bne $a1, $at, .L7F0B71A0 +/* 0EBCC0 7F0B7190 3C018000 */ lui $at, 0x8000 +/* 0EBCC4 7F0B7194 15E10002 */ bne $t7, $at, .L7F0B71A0 +/* 0EBCC8 7F0B7198 00000000 */ nop +/* 0EBCCC 7F0B719C 0006000D */ break 6 +.L7F0B71A0: +/* 0EBCD0 7F0B71A0 0125001A */ div $zero, $t1, $a1 +/* 0EBCD4 7F0B71A4 8FAB0150 */ lw $t3, 0x150($sp) +/* 0EBCD8 7F0B71A8 0000C812 */ mflo $t9 +/* 0EBCDC 7F0B71AC 03375023 */ subu $t2, $t9, $s7 +/* 0EBCE0 7F0B71B0 000B6080 */ sll $t4, $t3, 2 +/* 0EBCE4 7F0B71B4 018B6023 */ subu $t4, $t4, $t3 +/* 0EBCE8 7F0B71B8 000C60C0 */ sll $t4, $t4, 3 +/* 0EBCEC 7F0B71BC AFAA00EC */ sw $t2, 0xec($sp) +/* 0EBCF0 7F0B71C0 AFAC0054 */ sw $t4, 0x54($sp) +/* 0EBCF4 7F0B71C4 14A00002 */ bnez $a1, .L7F0B71D0 +/* 0EBCF8 7F0B71C8 00000000 */ nop +/* 0EBCFC 7F0B71CC 0007000D */ break 7 +.L7F0B71D0: +/* 0EBD00 7F0B71D0 2401FFFF */ li $at, -1 +/* 0EBD04 7F0B71D4 14A10004 */ bne $a1, $at, .L7F0B71E8 +/* 0EBD08 7F0B71D8 3C018000 */ lui $at, 0x8000 +/* 0EBD0C 7F0B71DC 15210002 */ bne $t1, $at, .L7F0B71E8 +/* 0EBD10 7F0B71E0 00000000 */ nop +/* 0EBD14 7F0B71E4 0006000D */ break 6 +.L7F0B71E8: +/* 0EBD18 7F0B71E8 8C8D0000 */ lw $t5, ($a0) +.L7F0B71EC: +/* 0EBD1C 7F0B71EC 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0EBD20 7F0B71F0 24840004 */ addiu $a0, $a0, 4 +/* 0EBD24 7F0B71F4 000D7900 */ sll $t7, $t5, 4 +/* 0EBD28 7F0B71F8 022F1821 */ addu $v1, $s1, $t7 +/* 0EBD2C 7F0B71FC 84620000 */ lh $v0, ($v1) +/* 0EBD30 7F0B7200 27AC00F0 */ addiu $t4, $sp, 0xf0 +/* 0EBD34 7F0B7204 004E082A */ slt $at, $v0, $t6 +/* 0EBD38 7F0B7208 50200004 */ beql $at, $zero, .L7F0B721C +/* 0EBD3C 7F0B720C 8FB800C8 */ lw $t8, 0xc8($sp) +/* 0EBD40 7F0B7210 AFA200D4 */ sw $v0, 0xd4($sp) +/* 0EBD44 7F0B7214 84620000 */ lh $v0, ($v1) +/* 0EBD48 7F0B7218 8FB800C8 */ lw $t8, 0xc8($sp) +.L7F0B721C: +/* 0EBD4C 7F0B721C 0302082A */ slt $at, $t8, $v0 +/* 0EBD50 7F0B7220 50200003 */ beql $at, $zero, .L7F0B7230 +/* 0EBD54 7F0B7224 84620002 */ lh $v0, 2($v1) +/* 0EBD58 7F0B7228 AFA200C8 */ sw $v0, 0xc8($sp) +/* 0EBD5C 7F0B722C 84620002 */ lh $v0, 2($v1) +.L7F0B7230: +/* 0EBD60 7F0B7230 8FA900D8 */ lw $t1, 0xd8($sp) +/* 0EBD64 7F0B7234 0049082A */ slt $at, $v0, $t1 +/* 0EBD68 7F0B7238 50200004 */ beql $at, $zero, .L7F0B724C +/* 0EBD6C 7F0B723C 8FB900CC */ lw $t9, 0xcc($sp) +/* 0EBD70 7F0B7240 AFA200D8 */ sw $v0, 0xd8($sp) +/* 0EBD74 7F0B7244 84620002 */ lh $v0, 2($v1) +/* 0EBD78 7F0B7248 8FB900CC */ lw $t9, 0xcc($sp) +.L7F0B724C: +/* 0EBD7C 7F0B724C 0322082A */ slt $at, $t9, $v0 +/* 0EBD80 7F0B7250 50200003 */ beql $at, $zero, .L7F0B7260 +/* 0EBD84 7F0B7254 84620004 */ lh $v0, 4($v1) +/* 0EBD88 7F0B7258 AFA200CC */ sw $v0, 0xcc($sp) +/* 0EBD8C 7F0B725C 84620004 */ lh $v0, 4($v1) +.L7F0B7260: +/* 0EBD90 7F0B7260 8FAA00DC */ lw $t2, 0xdc($sp) +/* 0EBD94 7F0B7264 004A082A */ slt $at, $v0, $t2 +/* 0EBD98 7F0B7268 50200004 */ beql $at, $zero, .L7F0B727C +/* 0EBD9C 7F0B726C 8FAB00D0 */ lw $t3, 0xd0($sp) +/* 0EBDA0 7F0B7270 AFA200DC */ sw $v0, 0xdc($sp) +/* 0EBDA4 7F0B7274 84620004 */ lh $v0, 4($v1) +/* 0EBDA8 7F0B7278 8FAB00D0 */ lw $t3, 0xd0($sp) +.L7F0B727C: +/* 0EBDAC 7F0B727C 0162082A */ slt $at, $t3, $v0 +/* 0EBDB0 7F0B7280 10200002 */ beqz $at, .L7F0B728C +/* 0EBDB4 7F0B7284 00000000 */ nop +/* 0EBDB8 7F0B7288 AFA200D0 */ sw $v0, 0xd0($sp) +.L7F0B728C: +/* 0EBDBC 7F0B728C 548CFFD7 */ bnel $a0, $t4, .L7F0B71EC +/* 0EBDC0 7F0B7290 8C8D0000 */ lw $t5, ($a0) +/* 0EBDC4 7F0B7294 3C0D8008 */ lui $t5, %hi(ptr_bgdata_room_fileposition_list) +/* 0EBDC8 7F0B7298 8DADFF8C */ lw $t5, %lo(ptr_bgdata_room_fileposition_list)($t5) +/* 0EBDCC 7F0B729C 8FAF0054 */ lw $t7, 0x54($sp) +/* 0EBDD0 7F0B72A0 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0EBDD4 7F0B72A4 8FAA00D8 */ lw $t2, 0xd8($sp) +/* 0EBDD8 7F0B72A8 01AF1021 */ addu $v0, $t5, $t7 +/* 0EBDDC 7F0B72AC C444000C */ lwc1 $f4, 0xc($v0) +/* 0EBDE0 7F0B72B0 8FAF00DC */ lw $t7, 0xdc($sp) +/* 0EBDE4 7F0B72B4 8FA40140 */ lw $a0, 0x140($sp) +/* 0EBDE8 7F0B72B8 4600218D */ trunc.w.s $f6, $f4 +/* 0EBDEC 7F0B72BC 8FA50148 */ lw $a1, 0x148($sp) +/* 0EBDF0 7F0B72C0 44093000 */ mfc1 $t1, $f6 +/* 0EBDF4 7F0B72C4 00000000 */ nop +/* 0EBDF8 7F0B72C8 01C9C821 */ addu $t9, $t6, $t1 +/* 0EBDFC 7F0B72CC AFB900D4 */ sw $t9, 0xd4($sp) +/* 0EBE00 7F0B72D0 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0EBE04 7F0B72D4 8FB900C8 */ lw $t9, 0xc8($sp) +/* 0EBE08 7F0B72D8 4600428D */ trunc.w.s $f10, $f8 +/* 0EBE0C 7F0B72DC 440C5000 */ mfc1 $t4, $f10 +/* 0EBE10 7F0B72E0 00000000 */ nop +/* 0EBE14 7F0B72E4 014C6821 */ addu $t5, $t2, $t4 +/* 0EBE18 7F0B72E8 AFAD00D8 */ sw $t5, 0xd8($sp) +/* 0EBE1C 7F0B72EC C4500014 */ lwc1 $f16, 0x14($v0) +/* 0EBE20 7F0B72F0 8FAD00CC */ lw $t5, 0xcc($sp) +/* 0EBE24 7F0B72F4 4600848D */ trunc.w.s $f18, $f16 +/* 0EBE28 7F0B72F8 440E9000 */ mfc1 $t6, $f18 +/* 0EBE2C 7F0B72FC 00000000 */ nop +/* 0EBE30 7F0B7300 01EE4821 */ addu $t1, $t7, $t6 +/* 0EBE34 7F0B7304 AFA900DC */ sw $t1, 0xdc($sp) +/* 0EBE38 7F0B7308 C444000C */ lwc1 $f4, 0xc($v0) +/* 0EBE3C 7F0B730C 8FA900D0 */ lw $t1, 0xd0($sp) +/* 0EBE40 7F0B7310 4600218D */ trunc.w.s $f6, $f4 +/* 0EBE44 7F0B7314 440A3000 */ mfc1 $t2, $f6 +/* 0EBE48 7F0B7318 00000000 */ nop +/* 0EBE4C 7F0B731C 032A6021 */ addu $t4, $t9, $t2 +/* 0EBE50 7F0B7320 AFAC00C8 */ sw $t4, 0xc8($sp) +/* 0EBE54 7F0B7324 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0EBE58 7F0B7328 4600428D */ trunc.w.s $f10, $f8 +/* 0EBE5C 7F0B732C 440F5000 */ mfc1 $t7, $f10 +/* 0EBE60 7F0B7330 00000000 */ nop +/* 0EBE64 7F0B7334 01AF7021 */ addu $t6, $t5, $t7 +/* 0EBE68 7F0B7338 AFAE00CC */ sw $t6, 0xcc($sp) +/* 0EBE6C 7F0B733C C4500014 */ lwc1 $f16, 0x14($v0) +/* 0EBE70 7F0B7340 4600848D */ trunc.w.s $f18, $f16 +/* 0EBE74 7F0B7344 44199000 */ mfc1 $t9, $f18 +/* 0EBE78 7F0B7348 00000000 */ nop +/* 0EBE7C 7F0B734C 01395021 */ addu $t2, $t1, $t9 +/* 0EBE80 7F0B7350 0FC2DB3B */ jal sub_GAME_7F0B6CEC +/* 0EBE84 7F0B7354 AFAA00D0 */ sw $t2, 0xd0($sp) +/* 0EBE88 7F0B7358 104001B3 */ beqz $v0, .L7F0B7A28 +/* 0EBE8C 7F0B735C 27A800A8 */ addiu $t0, $sp, 0xa8 +/* 0EBE90 7F0B7360 8FAC00E4 */ lw $t4, 0xe4($sp) +/* 0EBE94 7F0B7364 8FAD00E8 */ lw $t5, 0xe8($sp) +/* 0EBE98 7F0B7368 3C198008 */ lui $t9, %hi(ptr_bgdata_room_fileposition_list) +/* 0EBE9C 7F0B736C 000CC100 */ sll $t8, $t4, 4 +/* 0EBEA0 7F0B7370 8F39FF8C */ lw $t9, %lo(ptr_bgdata_room_fileposition_list)($t9) +/* 0EBEA4 7F0B7374 8FAE00EC */ lw $t6, 0xec($sp) +/* 0EBEA8 7F0B7378 8FA90054 */ lw $t1, 0x54($sp) +/* 0EBEAC 7F0B737C 02382021 */ addu $a0, $s1, $t8 +/* 0EBEB0 7F0B7380 8FB80148 */ lw $t8, 0x148($sp) +/* 0EBEB4 7F0B7384 8FAC0144 */ lw $t4, 0x144($sp) +/* 0EBEB8 7F0B7388 8FAA0140 */ lw $t2, 0x140($sp) +/* 0EBEBC 7F0B738C 000D7900 */ sll $t7, $t5, 4 +/* 0EBEC0 7F0B7390 27AD00F8 */ addiu $t5, $sp, 0xf8 +/* 0EBEC4 7F0B7394 000E5900 */ sll $t3, $t6, 4 +/* 0EBEC8 7F0B7398 01393821 */ addu $a3, $t1, $t9 +/* 0EBECC 7F0B739C 24E7000C */ addiu $a3, $a3, 0xc +/* 0EBED0 7F0B73A0 022B3021 */ addu $a2, $s1, $t3 +/* 0EBED4 7F0B73A4 AFAD001C */ sw $t5, 0x1c($sp) +/* 0EBED8 7F0B73A8 022F2821 */ addu $a1, $s1, $t7 +/* 0EBEDC 7F0B73AC AFB80018 */ sw $t8, 0x18($sp) +/* 0EBEE0 7F0B73B0 AFAC0014 */ sw $t4, 0x14($sp) +/* 0EBEE4 7F0B73B4 0FC24A24 */ jal sub_GAME_7F092890 +/* 0EBEE8 7F0B73B8 AFAA0010 */ sw $t2, 0x10($sp) +/* 0EBEEC 7F0B73BC 1040019A */ beqz $v0, .L7F0B7A28 +/* 0EBEF0 7F0B73C0 27A800A8 */ addiu $t0, $sp, 0xa8 +/* 0EBEF4 7F0B73C4 8FA60140 */ lw $a2, 0x140($sp) +/* 0EBEF8 7F0B73C8 C7A400F8 */ lwc1 $f4, 0xf8($sp) +/* 0EBEFC 7F0B73CC C7B000FC */ lwc1 $f16, 0xfc($sp) +/* 0EBF00 7F0B73D0 C4C80000 */ lwc1 $f8, ($a2) +/* 0EBF04 7F0B73D4 4600218D */ trunc.w.s $f6, $f4 +/* 0EBF08 7F0B73D8 C4C40004 */ lwc1 $f4, 4($a2) +/* 0EBF0C 7F0B73DC 02601025 */ move $v0, $s3 +/* 0EBF10 7F0B73E0 4600428D */ trunc.w.s $f10, $f8 +/* 0EBF14 7F0B73E4 440E3000 */ mfc1 $t6, $f6 +/* 0EBF18 7F0B73E8 C7A80100 */ lwc1 $f8, 0x100($sp) +/* 0EBF1C 7F0B73EC 4600848D */ trunc.w.s $f18, $f16 +/* 0EBF20 7F0B73F0 44095000 */ mfc1 $t1, $f10 +/* 0EBF24 7F0B73F4 C4D00008 */ lwc1 $f16, 8($a2) +/* 0EBF28 7F0B73F8 4600218D */ trunc.w.s $f6, $f4 +/* 0EBF2C 7F0B73FC 01C91823 */ subu $v1, $t6, $t1 +/* 0EBF30 7F0B7400 00630019 */ multu $v1, $v1 +/* 0EBF34 7F0B7404 440A9000 */ mfc1 $t2, $f18 +/* 0EBF38 7F0B7408 44183000 */ mfc1 $t8, $f6 +/* 0EBF3C 7F0B740C 4600428D */ trunc.w.s $f10, $f8 +/* 0EBF40 7F0B7410 8FAB0064 */ lw $t3, 0x64($sp) +/* 0EBF44 7F0B7414 01582023 */ subu $a0, $t2, $t8 +/* 0EBF48 7F0B7418 4600848D */ trunc.w.s $f18, $f16 +/* 0EBF4C 7F0B741C 440F5000 */ mfc1 $t7, $f10 +/* 0EBF50 7F0B7420 24180001 */ li $t8, 1 +/* 0EBF54 7F0B7424 AFB8012C */ sw $t8, 0x12c($sp) +/* 0EBF58 7F0B7428 00004812 */ mflo $t1 +/* 0EBF5C 7F0B742C 440E9000 */ mfc1 $t6, $f18 +/* 0EBF60 7F0B7430 926D0000 */ lbu $t5, ($s3) +/* 0EBF64 7F0B7434 00840019 */ multu $a0, $a0 +/* 0EBF68 7F0B7438 01EE2823 */ subu $a1, $t7, $t6 +/* 0EBF6C 7F0B743C 8FAE0064 */ lw $t6, 0x64($sp) +/* 0EBF70 7F0B7440 0000C812 */ mflo $t9 +/* 0EBF74 7F0B7444 01396021 */ addu $t4, $t1, $t9 +/* 0EBF78 7F0B7448 00000000 */ nop +/* 0EBF7C 7F0B744C 00A50019 */ multu $a1, $a1 +/* 0EBF80 7F0B7450 00005012 */ mflo $t2 +/* 0EBF84 7F0B7454 018A9021 */ addu $s2, $t4, $t2 +/* 0EBF88 7F0B7458 12CD000C */ beq $s6, $t5, .L7F0B748C +/* 0EBF8C 7F0B745C 0240F025 */ move $fp, $s2 +/* 0EBF90 7F0B7460 8D630008 */ lw $v1, 8($t3) +/* 0EBF94 7F0B7464 0073082B */ sltu $at, $v1, $s3 +/* 0EBF98 7F0B7468 50200009 */ beql $at, $zero, .L7F0B7490 +/* 0EBF9C 7F0B746C 8DC90008 */ lw $t1, 8($t6) +/* 0EBFA0 7F0B7470 904FFFF8 */ lbu $t7, -8($v0) +.L7F0B7474: +/* 0EBFA4 7F0B7474 2442FFF8 */ addiu $v0, $v0, -8 +/* 0EBFA8 7F0B7478 0062082B */ sltu $at, $v1, $v0 +/* 0EBFAC 7F0B747C 52CF0004 */ beql $s6, $t7, .L7F0B7490 +/* 0EBFB0 7F0B7480 8DC90008 */ lw $t1, 8($t6) +/* 0EBFB4 7F0B7484 5420FFFB */ bnezl $at, .L7F0B7474 +/* 0EBFB8 7F0B7488 904FFFF8 */ lbu $t7, -8($v0) +.L7F0B748C: +/* 0EBFBC 7F0B748C 8DC90008 */ lw $t1, 8($t6) +.L7F0B7490: +/* 0EBFC0 7F0B7490 54490004 */ bnel $v0, $t1, .L7F0B74A4 +/* 0EBFC4 7F0B7494 8C430004 */ lw $v1, 4($v0) +/* 0EBFC8 7F0B7498 10000006 */ b .L7F0B74B4 +/* 0EBFCC 7F0B749C 2410FFFF */ li $s0, -1 +/* 0EBFD0 7F0B74A0 8C430004 */ lw $v1, 4($v0) +.L7F0B74A4: +/* 0EBFD4 7F0B74A4 3C018000 */ lui $at, 0x8000 +/* 0EBFD8 7F0B74A8 2463FFF8 */ addiu $v1, $v1, -8 +/* 0EBFDC 7F0B74AC 0061C825 */ or $t9, $v1, $at +/* 0EBFE0 7F0B74B0 97300000 */ lhu $s0, ($t9) +.L7F0B74B4: +/* 0EBFE4 7F0B74B4 0FC2ED8C */ jal check_if_imageID_is_light +/* 0EBFE8 7F0B74B8 02002025 */ move $a0, $s0 +/* 0EBFEC 7F0B74BC 10400002 */ beqz $v0, .L7F0B74C8 +/* 0EBFF0 7F0B74C0 27A800A8 */ addiu $t0, $sp, 0xa8 +/* 0EBFF4 7F0B74C4 265EFFFC */ addiu $fp, $s2, -4 +.L7F0B74C8: +/* 0EBFF8 7F0B74C8 8FAC00F0 */ lw $t4, 0xf0($sp) +/* 0EBFFC 7F0B74CC 03CC082A */ slt $at, $fp, $t4 +/* 0EC000 7F0B74D0 10200155 */ beqz $at, .L7F0B7A28 +/* 0EC004 7F0B74D4 240104FD */ li $at, 1277 +/* 0EC008 7F0B74D8 52010154 */ beql $s0, $at, .L7F0B7A2C +/* 0EC00C 7F0B74DC 82620008 */ lb $v0, 8($s3) +/* 0EC010 7F0B74E0 C7A400F8 */ lwc1 $f4, 0xf8($sp) +/* 0EC014 7F0B74E4 AFBE00F0 */ sw $fp, 0xf0($sp) +/* 0EC018 7F0B74E8 E6840000 */ swc1 $f4, ($s4) +/* 0EC01C 7F0B74EC C7A600FC */ lwc1 $f6, 0xfc($sp) +/* 0EC020 7F0B74F0 E6860004 */ swc1 $f6, 4($s4) +/* 0EC024 7F0B74F4 C7A80100 */ lwc1 $f8, 0x100($sp) +/* 0EC028 7F0B74F8 E6880008 */ swc1 $f8, 8($s4) +/* 0EC02C 7F0B74FC C7AA0104 */ lwc1 $f10, 0x104($sp) +/* 0EC030 7F0B7500 E68A000C */ swc1 $f10, 0xc($s4) +/* 0EC034 7F0B7504 C7B00108 */ lwc1 $f16, 0x108($sp) +/* 0EC038 7F0B7508 E6900010 */ swc1 $f16, 0x10($s4) +/* 0EC03C 7F0B750C C7B2010C */ lwc1 $f18, 0x10c($sp) +/* 0EC040 7F0B7510 E6920014 */ swc1 $f18, 0x14($s4) +/* 0EC044 7F0B7514 8FAA00E4 */ lw $t2, 0xe4($sp) +/* 0EC048 7F0B7518 000AC100 */ sll $t8, $t2, 4 +/* 0EC04C 7F0B751C 03116821 */ addu $t5, $t8, $s1 +/* 0EC050 7F0B7520 AE8D0018 */ sw $t5, 0x18($s4) +/* 0EC054 7F0B7524 8FAB00E8 */ lw $t3, 0xe8($sp) +/* 0EC058 7F0B7528 000B7900 */ sll $t7, $t3, 4 +/* 0EC05C 7F0B752C 01F17021 */ addu $t6, $t7, $s1 +/* 0EC060 7F0B7530 AE8E001C */ sw $t6, 0x1c($s4) +/* 0EC064 7F0B7534 8FA900EC */ lw $t1, 0xec($sp) +/* 0EC068 7F0B7538 A690002A */ sh $s0, 0x2a($s4) +/* 0EC06C 7F0B753C AE930024 */ sw $s3, 0x24($s4) +/* 0EC070 7F0B7540 0009C900 */ sll $t9, $t1, 4 +/* 0EC074 7F0B7544 03316021 */ addu $t4, $t9, $s1 +/* 0EC078 7F0B7548 AE8C0020 */ sw $t4, 0x20($s4) +/* 0EC07C 7F0B754C 10000136 */ b .L7F0B7A28 +/* 0EC080 7F0B7550 A6800028 */ sh $zero, 0x28($s4) +.L7F0B7554: +/* 0EC084 7F0B7554 2401FFB1 */ li $at, -79 +/* 0EC088 7F0B7558 14410133 */ bne $v0, $at, .L7F0B7A28 +/* 0EC08C 7F0B755C 8FAA0150 */ lw $t2, 0x150($sp) +/* 0EC090 7F0B7560 000AC080 */ sll $t8, $t2, 2 +/* 0EC094 7F0B7564 030AC023 */ subu $t8, $t8, $t2 +/* 0EC098 7F0B7568 0018C0C0 */ sll $t8, $t8, 3 +/* 0EC09C 7F0B756C AFB80054 */ sw $t8, 0x54($sp) +/* 0EC0A0 7F0B7570 0000A825 */ move $s5, $zero +.L7F0B7574: +/* 0EC0A4 7F0B7574 3C0B8004 */ lui $t3, %hi(D_80044880) +/* 0EC0A8 7F0B7578 256B4880 */ addiu $t3, %lo(D_80044880) # addiu $t3, $t3, 0x4880 +/* 0EC0AC 7F0B757C 8D610000 */ lw $at, ($t3) +/* 0EC0B0 7F0B7580 27AD008C */ addiu $t5, $sp, 0x8c +/* 0EC0B4 7F0B7584 8D690004 */ lw $t1, 4($t3) +/* 0EC0B8 7F0B7588 ADA10000 */ sw $at, ($t5) +/* 0EC0BC 7F0B758C 8D610008 */ lw $at, 8($t3) +/* 0EC0C0 7F0B7590 3C0C8004 */ lui $t4, %hi(D_8004488C) +/* 0EC0C4 7F0B7594 258C488C */ addiu $t4, %lo(D_8004488C) # addiu $t4, $t4, 0x488c +/* 0EC0C8 7F0B7598 ADA90004 */ sw $t1, 4($t5) +/* 0EC0CC 7F0B759C ADA10008 */ sw $at, 8($t5) +/* 0EC0D0 7F0B75A0 8D810000 */ lw $at, ($t4) +/* 0EC0D4 7F0B75A4 27B90080 */ addiu $t9, $sp, 0x80 +/* 0EC0D8 7F0B75A8 8D8E0004 */ lw $t6, 4($t4) +/* 0EC0DC 7F0B75AC AF210000 */ sw $at, ($t9) +/* 0EC0E0 7F0B75B0 8D810008 */ lw $at, 8($t4) +/* 0EC0E4 7F0B75B4 AF2E0004 */ sw $t6, 4($t9) +/* 0EC0E8 7F0B75B8 16A0000E */ bnez $s5, .L7F0B75F4 +/* 0EC0EC 7F0B75BC AF210008 */ sw $at, 8($t9) +/* 0EC0F0 7F0B75C0 8E6F0004 */ lw $t7, 4($s3) +/* 0EC0F4 7F0B75C4 31ED000F */ andi $t5, $t7, 0xf +/* 0EC0F8 7F0B75C8 01B75823 */ subu $t3, $t5, $s7 +/* 0EC0FC 7F0B75CC AFAB009C */ sw $t3, 0x9c($sp) +/* 0EC100 7F0B75D0 92690007 */ lbu $t1, 7($s3) +/* 0EC104 7F0B75D4 0009C102 */ srl $t8, $t1, 4 +/* 0EC108 7F0B75D8 03175023 */ subu $t2, $t8, $s7 +/* 0EC10C 7F0B75DC AFAA00A0 */ sw $t2, 0xa0($sp) +/* 0EC110 7F0B75E0 8E790000 */ lw $t9, ($s3) +/* 0EC114 7F0B75E4 332C000F */ andi $t4, $t9, 0xf +/* 0EC118 7F0B75E8 01977023 */ subu $t6, $t4, $s7 +/* 0EC11C 7F0B75EC 1000002D */ b .L7F0B76A4 +/* 0EC120 7F0B75F0 AFAE00A4 */ sw $t6, 0xa4($sp) +.L7F0B75F4: +/* 0EC124 7F0B75F4 24010001 */ li $at, 1 +/* 0EC128 7F0B75F8 56A1000F */ bnel $s5, $at, .L7F0B7638 +/* 0EC12C 7F0B75FC 24010002 */ li $at, 2 +/* 0EC130 7F0B7600 926F0006 */ lbu $t7, 6($s3) +/* 0EC134 7F0B7604 31ED000F */ andi $t5, $t7, 0xf +/* 0EC138 7F0B7608 01B75823 */ subu $t3, $t5, $s7 +/* 0EC13C 7F0B760C AFAB009C */ sw $t3, 0x9c($sp) +/* 0EC140 7F0B7610 96690006 */ lhu $t1, 6($s3) +/* 0EC144 7F0B7614 0009C302 */ srl $t8, $t1, 0xc +/* 0EC148 7F0B7618 03175023 */ subu $t2, $t8, $s7 +/* 0EC14C 7F0B761C AFAA00A0 */ sw $t2, 0xa0($sp) +/* 0EC150 7F0B7620 92790003 */ lbu $t9, 3($s3) +/* 0EC154 7F0B7624 00196102 */ srl $t4, $t9, 4 +/* 0EC158 7F0B7628 01977023 */ subu $t6, $t4, $s7 +/* 0EC15C 7F0B762C 1000001D */ b .L7F0B76A4 +/* 0EC160 7F0B7630 AFAE00A4 */ sw $t6, 0xa4($sp) +/* 0EC164 7F0B7634 24010002 */ li $at, 2 +.L7F0B7638: +/* 0EC168 7F0B7638 56A1000F */ bnel $s5, $at, .L7F0B7678 +/* 0EC16C 7F0B763C 926F0004 */ lbu $t7, 4($s3) +/* 0EC170 7F0B7640 966F0004 */ lhu $t7, 4($s3) +/* 0EC174 7F0B7644 31ED000F */ andi $t5, $t7, 0xf +/* 0EC178 7F0B7648 01B75823 */ subu $t3, $t5, $s7 +/* 0EC17C 7F0B764C AFAB009C */ sw $t3, 0x9c($sp) +/* 0EC180 7F0B7650 92690005 */ lbu $t1, 5($s3) +/* 0EC184 7F0B7654 0009C102 */ srl $t8, $t1, 4 +/* 0EC188 7F0B7658 03175023 */ subu $t2, $t8, $s7 +/* 0EC18C 7F0B765C AFAA00A0 */ sw $t2, 0xa0($sp) +/* 0EC190 7F0B7660 92790002 */ lbu $t9, 2($s3) +/* 0EC194 7F0B7664 332C000F */ andi $t4, $t9, 0xf +/* 0EC198 7F0B7668 01977023 */ subu $t6, $t4, $s7 +/* 0EC19C 7F0B766C 1000000D */ b .L7F0B76A4 +/* 0EC1A0 7F0B7670 AFAE00A4 */ sw $t6, 0xa4($sp) +/* 0EC1A4 7F0B7674 926F0004 */ lbu $t7, 4($s3) +.L7F0B7678: +/* 0EC1A8 7F0B7678 31ED000F */ andi $t5, $t7, 0xf +/* 0EC1AC 7F0B767C 01B75823 */ subu $t3, $t5, $s7 +/* 0EC1B0 7F0B7680 AFAB009C */ sw $t3, 0x9c($sp) +/* 0EC1B4 7F0B7684 8E690004 */ lw $t1, 4($s3) +/* 0EC1B8 7F0B7688 0009C702 */ srl $t8, $t1, 0x1c +/* 0EC1BC 7F0B768C 03175023 */ subu $t2, $t8, $s7 +/* 0EC1C0 7F0B7690 AFAA00A0 */ sw $t2, 0xa0($sp) +/* 0EC1C4 7F0B7694 96790002 */ lhu $t9, 2($s3) +/* 0EC1C8 7F0B7698 00196302 */ srl $t4, $t9, 0xc +/* 0EC1CC 7F0B769C 01977023 */ subu $t6, $t4, $s7 +/* 0EC1D0 7F0B76A0 AFAE00A4 */ sw $t6, 0xa4($sp) +.L7F0B76A4: +/* 0EC1D4 7F0B76A4 27A4009C */ addiu $a0, $sp, 0x9c +/* 0EC1D8 7F0B76A8 8C8F0000 */ lw $t7, ($a0) +.L7F0B76AC: +/* 0EC1DC 7F0B76AC 8FAB008C */ lw $t3, 0x8c($sp) +/* 0EC1E0 7F0B76B0 24840004 */ addiu $a0, $a0, 4 +/* 0EC1E4 7F0B76B4 000F6900 */ sll $t5, $t7, 4 +/* 0EC1E8 7F0B76B8 022D1821 */ addu $v1, $s1, $t5 +/* 0EC1EC 7F0B76BC 84620000 */ lh $v0, ($v1) +/* 0EC1F0 7F0B76C0 004B082A */ slt $at, $v0, $t3 +/* 0EC1F4 7F0B76C4 50200004 */ beql $at, $zero, .L7F0B76D8 +/* 0EC1F8 7F0B76C8 8FA90080 */ lw $t1, 0x80($sp) +/* 0EC1FC 7F0B76CC AFA2008C */ sw $v0, 0x8c($sp) +/* 0EC200 7F0B76D0 84620000 */ lh $v0, ($v1) +/* 0EC204 7F0B76D4 8FA90080 */ lw $t1, 0x80($sp) +.L7F0B76D8: +/* 0EC208 7F0B76D8 0122082A */ slt $at, $t1, $v0 +/* 0EC20C 7F0B76DC 50200003 */ beql $at, $zero, .L7F0B76EC +/* 0EC210 7F0B76E0 84620002 */ lh $v0, 2($v1) +/* 0EC214 7F0B76E4 AFA20080 */ sw $v0, 0x80($sp) +/* 0EC218 7F0B76E8 84620002 */ lh $v0, 2($v1) +.L7F0B76EC: +/* 0EC21C 7F0B76EC 8FB80090 */ lw $t8, 0x90($sp) +/* 0EC220 7F0B76F0 0058082A */ slt $at, $v0, $t8 +/* 0EC224 7F0B76F4 50200004 */ beql $at, $zero, .L7F0B7708 +/* 0EC228 7F0B76F8 8FAA0084 */ lw $t2, 0x84($sp) +/* 0EC22C 7F0B76FC AFA20090 */ sw $v0, 0x90($sp) +/* 0EC230 7F0B7700 84620002 */ lh $v0, 2($v1) +/* 0EC234 7F0B7704 8FAA0084 */ lw $t2, 0x84($sp) +.L7F0B7708: +/* 0EC238 7F0B7708 0142082A */ slt $at, $t2, $v0 +/* 0EC23C 7F0B770C 50200003 */ beql $at, $zero, .L7F0B771C +/* 0EC240 7F0B7710 84620004 */ lh $v0, 4($v1) +/* 0EC244 7F0B7714 AFA20084 */ sw $v0, 0x84($sp) +/* 0EC248 7F0B7718 84620004 */ lh $v0, 4($v1) +.L7F0B771C: +/* 0EC24C 7F0B771C 8FB90094 */ lw $t9, 0x94($sp) +/* 0EC250 7F0B7720 0059082A */ slt $at, $v0, $t9 +/* 0EC254 7F0B7724 50200004 */ beql $at, $zero, .L7F0B7738 +/* 0EC258 7F0B7728 8FAC0088 */ lw $t4, 0x88($sp) +/* 0EC25C 7F0B772C AFA20094 */ sw $v0, 0x94($sp) +/* 0EC260 7F0B7730 84620004 */ lh $v0, 4($v1) +/* 0EC264 7F0B7734 8FAC0088 */ lw $t4, 0x88($sp) +.L7F0B7738: +/* 0EC268 7F0B7738 0182082A */ slt $at, $t4, $v0 +/* 0EC26C 7F0B773C 10200002 */ beqz $at, .L7F0B7748 +/* 0EC270 7F0B7740 00000000 */ nop +/* 0EC274 7F0B7744 AFA20088 */ sw $v0, 0x88($sp) +.L7F0B7748: +/* 0EC278 7F0B7748 5488FFD8 */ bnel $a0, $t0, .L7F0B76AC +/* 0EC27C 7F0B774C 8C8F0000 */ lw $t7, ($a0) +/* 0EC280 7F0B7750 3C0E8008 */ lui $t6, %hi(ptr_bgdata_room_fileposition_list) +/* 0EC284 7F0B7754 8DCEFF8C */ lw $t6, %lo(ptr_bgdata_room_fileposition_list)($t6) +/* 0EC288 7F0B7758 8FAF0054 */ lw $t7, 0x54($sp) +/* 0EC28C 7F0B775C 8FAD008C */ lw $t5, 0x8c($sp) +/* 0EC290 7F0B7760 8FAA0090 */ lw $t2, 0x90($sp) +/* 0EC294 7F0B7764 01CF1021 */ addu $v0, $t6, $t7 +/* 0EC298 7F0B7768 C444000C */ lwc1 $f4, 0xc($v0) +/* 0EC29C 7F0B776C 8FAF0094 */ lw $t7, 0x94($sp) +/* 0EC2A0 7F0B7770 8FA40140 */ lw $a0, 0x140($sp) +/* 0EC2A4 7F0B7774 4600218D */ trunc.w.s $f6, $f4 +/* 0EC2A8 7F0B7778 8FA50148 */ lw $a1, 0x148($sp) +/* 0EC2AC 7F0B777C 27A6008C */ addiu $a2, $sp, 0x8c +/* 0EC2B0 7F0B7780 27A70080 */ addiu $a3, $sp, 0x80 +/* 0EC2B4 7F0B7784 44093000 */ mfc1 $t1, $f6 +/* 0EC2B8 7F0B7788 00000000 */ nop +/* 0EC2BC 7F0B778C 01A9C021 */ addu $t8, $t5, $t1 +/* 0EC2C0 7F0B7790 AFB8008C */ sw $t8, 0x8c($sp) +/* 0EC2C4 7F0B7794 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0EC2C8 7F0B7798 8FB80080 */ lw $t8, 0x80($sp) +/* 0EC2CC 7F0B779C 4600428D */ trunc.w.s $f10, $f8 +/* 0EC2D0 7F0B77A0 440C5000 */ mfc1 $t4, $f10 +/* 0EC2D4 7F0B77A4 00000000 */ nop +/* 0EC2D8 7F0B77A8 014C7021 */ addu $t6, $t2, $t4 +/* 0EC2DC 7F0B77AC AFAE0090 */ sw $t6, 0x90($sp) +/* 0EC2E0 7F0B77B0 C4500014 */ lwc1 $f16, 0x14($v0) +/* 0EC2E4 7F0B77B4 8FAE0084 */ lw $t6, 0x84($sp) +/* 0EC2E8 7F0B77B8 4600848D */ trunc.w.s $f18, $f16 +/* 0EC2EC 7F0B77BC 440D9000 */ mfc1 $t5, $f18 +/* 0EC2F0 7F0B77C0 00000000 */ nop +/* 0EC2F4 7F0B77C4 01ED4821 */ addu $t1, $t7, $t5 +/* 0EC2F8 7F0B77C8 AFA90094 */ sw $t1, 0x94($sp) +/* 0EC2FC 7F0B77CC C444000C */ lwc1 $f4, 0xc($v0) +/* 0EC300 7F0B77D0 8FA90088 */ lw $t1, 0x88($sp) +/* 0EC304 7F0B77D4 4600218D */ trunc.w.s $f6, $f4 +/* 0EC308 7F0B77D8 440A3000 */ mfc1 $t2, $f6 +/* 0EC30C 7F0B77DC 00000000 */ nop +/* 0EC310 7F0B77E0 030A6021 */ addu $t4, $t8, $t2 +/* 0EC314 7F0B77E4 AFAC0080 */ sw $t4, 0x80($sp) +/* 0EC318 7F0B77E8 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0EC31C 7F0B77EC 4600428D */ trunc.w.s $f10, $f8 +/* 0EC320 7F0B77F0 440F5000 */ mfc1 $t7, $f10 +/* 0EC324 7F0B77F4 00000000 */ nop +/* 0EC328 7F0B77F8 01CF6821 */ addu $t5, $t6, $t7 +/* 0EC32C 7F0B77FC AFAD0084 */ sw $t5, 0x84($sp) +/* 0EC330 7F0B7800 C4500014 */ lwc1 $f16, 0x14($v0) +/* 0EC334 7F0B7804 4600848D */ trunc.w.s $f18, $f16 +/* 0EC338 7F0B7808 44189000 */ mfc1 $t8, $f18 +/* 0EC33C 7F0B780C 00000000 */ nop +/* 0EC340 7F0B7810 01385021 */ addu $t2, $t1, $t8 +/* 0EC344 7F0B7814 0FC2DB3B */ jal sub_GAME_7F0B6CEC +/* 0EC348 7F0B7818 AFAA0088 */ sw $t2, 0x88($sp) +/* 0EC34C 7F0B781C 1040007E */ beqz $v0, .L7F0B7A18 +/* 0EC350 7F0B7820 27A800A8 */ addiu $t0, $sp, 0xa8 +/* 0EC354 7F0B7824 8FAC009C */ lw $t4, 0x9c($sp) +/* 0EC358 7F0B7828 8FAE00A0 */ lw $t6, 0xa0($sp) +/* 0EC35C 7F0B782C 3C188008 */ lui $t8, %hi(ptr_bgdata_room_fileposition_list) +/* 0EC360 7F0B7830 000C5900 */ sll $t3, $t4, 4 +/* 0EC364 7F0B7834 8F18FF8C */ lw $t8, %lo(ptr_bgdata_room_fileposition_list)($t8) +/* 0EC368 7F0B7838 8FAD00A4 */ lw $t5, 0xa4($sp) +/* 0EC36C 7F0B783C 8FA90054 */ lw $t1, 0x54($sp) +/* 0EC370 7F0B7840 022B2021 */ addu $a0, $s1, $t3 +/* 0EC374 7F0B7844 8FAB0148 */ lw $t3, 0x148($sp) +/* 0EC378 7F0B7848 8FAC0144 */ lw $t4, 0x144($sp) +/* 0EC37C 7F0B784C 8FAA0140 */ lw $t2, 0x140($sp) +/* 0EC380 7F0B7850 000E7900 */ sll $t7, $t6, 4 +/* 0EC384 7F0B7854 27AE00F8 */ addiu $t6, $sp, 0xf8 +/* 0EC388 7F0B7858 000DC900 */ sll $t9, $t5, 4 +/* 0EC38C 7F0B785C 01383821 */ addu $a3, $t1, $t8 +/* 0EC390 7F0B7860 24E7000C */ addiu $a3, $a3, 0xc +/* 0EC394 7F0B7864 02393021 */ addu $a2, $s1, $t9 +/* 0EC398 7F0B7868 AFAE001C */ sw $t6, 0x1c($sp) +/* 0EC39C 7F0B786C 022F2821 */ addu $a1, $s1, $t7 +/* 0EC3A0 7F0B7870 AFAB0018 */ sw $t3, 0x18($sp) +/* 0EC3A4 7F0B7874 AFAC0014 */ sw $t4, 0x14($sp) +/* 0EC3A8 7F0B7878 0FC24A24 */ jal sub_GAME_7F092890 +/* 0EC3AC 7F0B787C AFAA0010 */ sw $t2, 0x10($sp) +/* 0EC3B0 7F0B7880 10400065 */ beqz $v0, .L7F0B7A18 +/* 0EC3B4 7F0B7884 27A800A8 */ addiu $t0, $sp, 0xa8 +/* 0EC3B8 7F0B7888 8FA60140 */ lw $a2, 0x140($sp) +/* 0EC3BC 7F0B788C C7A400F8 */ lwc1 $f4, 0xf8($sp) +/* 0EC3C0 7F0B7890 C7B000FC */ lwc1 $f16, 0xfc($sp) +/* 0EC3C4 7F0B7894 C4C80000 */ lwc1 $f8, ($a2) +/* 0EC3C8 7F0B7898 4600218D */ trunc.w.s $f6, $f4 +/* 0EC3CC 7F0B789C C4C40004 */ lwc1 $f4, 4($a2) +/* 0EC3D0 7F0B78A0 02601025 */ move $v0, $s3 +/* 0EC3D4 7F0B78A4 4600428D */ trunc.w.s $f10, $f8 +/* 0EC3D8 7F0B78A8 440D3000 */ mfc1 $t5, $f6 +/* 0EC3DC 7F0B78AC C7A80100 */ lwc1 $f8, 0x100($sp) +/* 0EC3E0 7F0B78B0 4600848D */ trunc.w.s $f18, $f16 +/* 0EC3E4 7F0B78B4 44095000 */ mfc1 $t1, $f10 +/* 0EC3E8 7F0B78B8 C4D00008 */ lwc1 $f16, 8($a2) +/* 0EC3EC 7F0B78BC 4600218D */ trunc.w.s $f6, $f4 +/* 0EC3F0 7F0B78C0 01A91823 */ subu $v1, $t5, $t1 +/* 0EC3F4 7F0B78C4 00630019 */ multu $v1, $v1 +/* 0EC3F8 7F0B78C8 440A9000 */ mfc1 $t2, $f18 +/* 0EC3FC 7F0B78CC 440B3000 */ mfc1 $t3, $f6 +/* 0EC400 7F0B78D0 4600428D */ trunc.w.s $f10, $f8 +/* 0EC404 7F0B78D4 8FB90064 */ lw $t9, 0x64($sp) +/* 0EC408 7F0B78D8 014B2023 */ subu $a0, $t2, $t3 +/* 0EC40C 7F0B78DC 4600848D */ trunc.w.s $f18, $f16 +/* 0EC410 7F0B78E0 440F5000 */ mfc1 $t7, $f10 +/* 0EC414 7F0B78E4 240B0001 */ li $t3, 1 +/* 0EC418 7F0B78E8 AFAB012C */ sw $t3, 0x12c($sp) +/* 0EC41C 7F0B78EC 00004812 */ mflo $t1 +/* 0EC420 7F0B78F0 440D9000 */ mfc1 $t5, $f18 +/* 0EC424 7F0B78F4 926E0000 */ lbu $t6, ($s3) +/* 0EC428 7F0B78F8 00840019 */ multu $a0, $a0 +/* 0EC42C 7F0B78FC 01ED2823 */ subu $a1, $t7, $t5 +/* 0EC430 7F0B7900 8FAD0064 */ lw $t5, 0x64($sp) +/* 0EC434 7F0B7904 0000C012 */ mflo $t8 +/* 0EC438 7F0B7908 01386021 */ addu $t4, $t1, $t8 +/* 0EC43C 7F0B790C 00000000 */ nop +/* 0EC440 7F0B7910 00A50019 */ multu $a1, $a1 +/* 0EC444 7F0B7914 00005012 */ mflo $t2 +/* 0EC448 7F0B7918 018A9021 */ addu $s2, $t4, $t2 +/* 0EC44C 7F0B791C 12CE000C */ beq $s6, $t6, .L7F0B7950 +/* 0EC450 7F0B7920 0240F025 */ move $fp, $s2 +/* 0EC454 7F0B7924 8F230008 */ lw $v1, 8($t9) +/* 0EC458 7F0B7928 0073082B */ sltu $at, $v1, $s3 +/* 0EC45C 7F0B792C 50200009 */ beql $at, $zero, .L7F0B7954 +/* 0EC460 7F0B7930 8DA90008 */ lw $t1, 8($t5) +/* 0EC464 7F0B7934 904FFFF8 */ lbu $t7, -8($v0) +.L7F0B7938: +/* 0EC468 7F0B7938 2442FFF8 */ addiu $v0, $v0, -8 +/* 0EC46C 7F0B793C 0062082B */ sltu $at, $v1, $v0 +/* 0EC470 7F0B7940 52CF0004 */ beql $s6, $t7, .L7F0B7954 +/* 0EC474 7F0B7944 8DA90008 */ lw $t1, 8($t5) +/* 0EC478 7F0B7948 5420FFFB */ bnezl $at, .L7F0B7938 +/* 0EC47C 7F0B794C 904FFFF8 */ lbu $t7, -8($v0) +.L7F0B7950: +/* 0EC480 7F0B7950 8DA90008 */ lw $t1, 8($t5) +.L7F0B7954: +/* 0EC484 7F0B7954 54490004 */ bnel $v0, $t1, .L7F0B7968 +/* 0EC488 7F0B7958 8C430004 */ lw $v1, 4($v0) +/* 0EC48C 7F0B795C 10000006 */ b .L7F0B7978 +/* 0EC490 7F0B7960 2410FFFF */ li $s0, -1 +/* 0EC494 7F0B7964 8C430004 */ lw $v1, 4($v0) +.L7F0B7968: +/* 0EC498 7F0B7968 3C018000 */ lui $at, 0x8000 +/* 0EC49C 7F0B796C 2463FFF8 */ addiu $v1, $v1, -8 +/* 0EC4A0 7F0B7970 0061C025 */ or $t8, $v1, $at +/* 0EC4A4 7F0B7974 97100000 */ lhu $s0, ($t8) +.L7F0B7978: +/* 0EC4A8 7F0B7978 0FC2ED8C */ jal check_if_imageID_is_light +/* 0EC4AC 7F0B797C 02002025 */ move $a0, $s0 +/* 0EC4B0 7F0B7980 10400002 */ beqz $v0, .L7F0B798C +/* 0EC4B4 7F0B7984 27A800A8 */ addiu $t0, $sp, 0xa8 +/* 0EC4B8 7F0B7988 265EFFFC */ addiu $fp, $s2, -4 +.L7F0B798C: +/* 0EC4BC 7F0B798C 8FAC00F0 */ lw $t4, 0xf0($sp) +/* 0EC4C0 7F0B7990 03CC082A */ slt $at, $fp, $t4 +/* 0EC4C4 7F0B7994 10200020 */ beqz $at, .L7F0B7A18 +/* 0EC4C8 7F0B7998 240104FD */ li $at, 1277 +/* 0EC4CC 7F0B799C 5201001F */ beql $s0, $at, .L7F0B7A1C +/* 0EC4D0 7F0B79A0 26B50001 */ addiu $s5, $s5, 1 +/* 0EC4D4 7F0B79A4 C7A400F8 */ lwc1 $f4, 0xf8($sp) +/* 0EC4D8 7F0B79A8 AFBE00F0 */ sw $fp, 0xf0($sp) +/* 0EC4DC 7F0B79AC E6840000 */ swc1 $f4, ($s4) +/* 0EC4E0 7F0B79B0 C7A600FC */ lwc1 $f6, 0xfc($sp) +/* 0EC4E4 7F0B79B4 E6860004 */ swc1 $f6, 4($s4) +/* 0EC4E8 7F0B79B8 C7A80100 */ lwc1 $f8, 0x100($sp) +/* 0EC4EC 7F0B79BC E6880008 */ swc1 $f8, 8($s4) +/* 0EC4F0 7F0B79C0 C7AA0104 */ lwc1 $f10, 0x104($sp) +/* 0EC4F4 7F0B79C4 E68A000C */ swc1 $f10, 0xc($s4) +/* 0EC4F8 7F0B79C8 C7B00108 */ lwc1 $f16, 0x108($sp) +/* 0EC4FC 7F0B79CC E6900010 */ swc1 $f16, 0x10($s4) +/* 0EC500 7F0B79D0 C7B2010C */ lwc1 $f18, 0x10c($sp) +/* 0EC504 7F0B79D4 E6920014 */ swc1 $f18, 0x14($s4) +/* 0EC508 7F0B79D8 8FAA009C */ lw $t2, 0x9c($sp) +/* 0EC50C 7F0B79DC 000A5900 */ sll $t3, $t2, 4 +/* 0EC510 7F0B79E0 01717021 */ addu $t6, $t3, $s1 +/* 0EC514 7F0B79E4 AE8E0018 */ sw $t6, 0x18($s4) +/* 0EC518 7F0B79E8 8FB900A0 */ lw $t9, 0xa0($sp) +/* 0EC51C 7F0B79EC 26AA0001 */ addiu $t2, $s5, 1 +/* 0EC520 7F0B79F0 00197900 */ sll $t7, $t9, 4 +/* 0EC524 7F0B79F4 01F16821 */ addu $t5, $t7, $s1 +/* 0EC528 7F0B79F8 AE8D001C */ sw $t5, 0x1c($s4) +/* 0EC52C 7F0B79FC 8FA900A4 */ lw $t1, 0xa4($sp) +/* 0EC530 7F0B7A00 A690002A */ sh $s0, 0x2a($s4) +/* 0EC534 7F0B7A04 AE930024 */ sw $s3, 0x24($s4) +/* 0EC538 7F0B7A08 0009C100 */ sll $t8, $t1, 4 +/* 0EC53C 7F0B7A0C 03116021 */ addu $t4, $t8, $s1 +/* 0EC540 7F0B7A10 AE8C0020 */ sw $t4, 0x20($s4) +/* 0EC544 7F0B7A14 A68A0028 */ sh $t2, 0x28($s4) +.L7F0B7A18: +/* 0EC548 7F0B7A18 26B50001 */ addiu $s5, $s5, 1 +.L7F0B7A1C: +/* 0EC54C 7F0B7A1C 24010004 */ li $at, 4 +/* 0EC550 7F0B7A20 16A1FED4 */ bne $s5, $at, .L7F0B7574 +/* 0EC554 7F0B7A24 00000000 */ nop +.L7F0B7A28: +/* 0EC558 7F0B7A28 82620008 */ lb $v0, 8($s3) +.L7F0B7A2C: +/* 0EC55C 7F0B7A2C 24010004 */ li $at, 4 +/* 0EC560 7F0B7A30 26730008 */ addiu $s3, $s3, 8 +/* 0EC564 7F0B7A34 10410003 */ beq $v0, $at, .L7F0B7A44 +/* 0EC568 7F0B7A38 2401FFB8 */ li $at, -72 +/* 0EC56C 7F0B7A3C 5441FDA5 */ bnel $v0, $at, .L7F0B70D4 +/* 0EC570 7F0B7A40 2401FFBF */ li $at, -65 +.L7F0B7A44: +/* 0EC574 7F0B7A44 8FBF004C */ lw $ra, 0x4c($sp) +/* 0EC578 7F0B7A48 8FA2012C */ lw $v0, 0x12c($sp) +/* 0EC57C 7F0B7A4C 8FB00028 */ lw $s0, 0x28($sp) +/* 0EC580 7F0B7A50 8FB1002C */ lw $s1, 0x2c($sp) +/* 0EC584 7F0B7A54 8FB20030 */ lw $s2, 0x30($sp) +/* 0EC588 7F0B7A58 8FB30034 */ lw $s3, 0x34($sp) +/* 0EC58C 7F0B7A5C 8FB40038 */ lw $s4, 0x38($sp) +/* 0EC590 7F0B7A60 8FB5003C */ lw $s5, 0x3c($sp) +/* 0EC594 7F0B7A64 8FB60040 */ lw $s6, 0x40($sp) +/* 0EC598 7F0B7A68 8FB70044 */ lw $s7, 0x44($sp) +/* 0EC59C 7F0B7A6C 8FBE0048 */ lw $fp, 0x48($sp) +/* 0EC5A0 7F0B7A70 03E00008 */ jr $ra +/* 0EC5A4 7F0B7A74 27BD0140 */ addiu $sp, $sp, 0x140 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B7A78(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B7A78 +/* 0EC5A8 7F0B7A78 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 0EC5AC 7F0B7A7C 3C0E7FFF */ lui $t6, (0x7FFFFFFF >> 16) # lui $t6, 0x7fff +/* 0EC5B0 7F0B7A80 35CEFFFF */ ori $t6, (0x7FFFFFFF & 0xFFFF) # ori $t6, $t6, 0xffff +/* 0EC5B4 7F0B7A84 AFBF0044 */ sw $ra, 0x44($sp) +/* 0EC5B8 7F0B7A88 AFBE0040 */ sw $fp, 0x40($sp) +/* 0EC5BC 7F0B7A8C AFB7003C */ sw $s7, 0x3c($sp) +/* 0EC5C0 7F0B7A90 AFB60038 */ sw $s6, 0x38($sp) +/* 0EC5C4 7F0B7A94 AFB50034 */ sw $s5, 0x34($sp) +/* 0EC5C8 7F0B7A98 AFB40030 */ sw $s4, 0x30($sp) +/* 0EC5CC 7F0B7A9C AFB3002C */ sw $s3, 0x2c($sp) +/* 0EC5D0 7F0B7AA0 AFB20028 */ sw $s2, 0x28($sp) +/* 0EC5D4 7F0B7AA4 AFB10024 */ sw $s1, 0x24($sp) +/* 0EC5D8 7F0B7AA8 AFB00020 */ sw $s0, 0x20($sp) +/* 0EC5DC 7F0B7AAC AFA600E0 */ sw $a2, 0xe0($sp) +/* 0EC5E0 7F0B7AB0 AFA0006C */ sw $zero, 0x6c($sp) +/* 0EC5E4 7F0B7AB4 AFAE0074 */ sw $t6, 0x74($sp) +/* 0EC5E8 7F0B7AB8 3C018004 */ lui $at, %hi(room_data_float1) +/* 0EC5EC 7F0B7ABC C42013F4 */ lwc1 $f0, %lo(room_data_float1)($at) +/* 0EC5F0 7F0B7AC0 C4840000 */ lwc1 $f4, ($a0) +/* 0EC5F4 7F0B7AC4 0006C080 */ sll $t8, $a2, 2 +/* 0EC5F8 7F0B7AC8 0306C021 */ addu $t8, $t8, $a2 +/* 0EC5FC 7F0B7ACC 46002182 */ mul.s $f6, $f4, $f0 +/* 0EC600 7F0B7AD0 3C198004 */ lui $t9, %hi(array_room_info) +/* 0EC604 7F0B7AD4 27391414 */ addiu $t9, %lo(array_room_info) # addiu $t9, $t9, 0x1414 +/* 0EC608 7F0B7AD8 0018C100 */ sll $t8, $t8, 4 +/* 0EC60C 7F0B7ADC 03194021 */ addu $t0, $t8, $t9 +/* 0EC610 7F0B7AE0 8D02002C */ lw $v0, 0x2c($t0) +/* 0EC614 7F0B7AE4 00E08825 */ move $s1, $a3 +/* 0EC618 7F0B7AE8 E7A600C4 */ swc1 $f6, 0xc4($sp) +/* 0EC61C 7F0B7AEC C4880004 */ lwc1 $f8, 4($a0) +/* 0EC620 7F0B7AF0 46004282 */ mul.s $f10, $f8, $f0 +/* 0EC624 7F0B7AF4 E7AA00C8 */ swc1 $f10, 0xc8($sp) +/* 0EC628 7F0B7AF8 C4900008 */ lwc1 $f16, 8($a0) +/* 0EC62C 7F0B7AFC 46008482 */ mul.s $f18, $f16, $f0 +/* 0EC630 7F0B7B00 E7B200CC */ swc1 $f18, 0xcc($sp) +/* 0EC634 7F0B7B04 C4A40000 */ lwc1 $f4, ($a1) +/* 0EC638 7F0B7B08 46002182 */ mul.s $f6, $f4, $f0 +/* 0EC63C 7F0B7B0C E7A600B8 */ swc1 $f6, 0xb8($sp) +/* 0EC640 7F0B7B10 C4A80004 */ lwc1 $f8, 4($a1) +/* 0EC644 7F0B7B14 C7A400B8 */ lwc1 $f4, 0xb8($sp) +/* 0EC648 7F0B7B18 C7A600C4 */ lwc1 $f6, 0xc4($sp) +/* 0EC64C 7F0B7B1C 46004282 */ mul.s $f10, $f8, $f0 +/* 0EC650 7F0B7B20 46062201 */ sub.s $f8, $f4, $f6 +/* 0EC654 7F0B7B24 C7A600CC */ lwc1 $f6, 0xcc($sp) +/* 0EC658 7F0B7B28 E7AA00BC */ swc1 $f10, 0xbc($sp) +/* 0EC65C 7F0B7B2C C4B00008 */ lwc1 $f16, 8($a1) +/* 0EC660 7F0B7B30 C7AA00BC */ lwc1 $f10, 0xbc($sp) +/* 0EC664 7F0B7B34 E7A800AC */ swc1 $f8, 0xac($sp) +/* 0EC668 7F0B7B38 46008482 */ mul.s $f18, $f16, $f0 +/* 0EC66C 7F0B7B3C C7B000C8 */ lwc1 $f16, 0xc8($sp) +/* 0EC670 7F0B7B40 E7B200C0 */ swc1 $f18, 0xc0($sp) +/* 0EC674 7F0B7B44 C7A400C0 */ lwc1 $f4, 0xc0($sp) +/* 0EC678 7F0B7B48 46105481 */ sub.s $f18, $f10, $f16 +/* 0EC67C 7F0B7B4C 46062201 */ sub.s $f8, $f4, $f6 +/* 0EC680 7F0B7B50 E7B200B0 */ swc1 $f18, 0xb0($sp) +/* 0EC684 7F0B7B54 14400003 */ bnez $v0, .L7F0B7B64 +/* 0EC688 7F0B7B58 E7A800B4 */ swc1 $f8, 0xb4($sp) +/* 0EC68C 7F0B7B5C 10000081 */ b .L7F0B7D64 +/* 0EC690 7F0B7B60 00001025 */ move $v0, $zero +.L7F0B7B64: +/* 0EC694 7F0B7B64 85030030 */ lh $v1, 0x30($t0) +/* 0EC698 7F0B7B68 0000A025 */ move $s4, $zero +/* 0EC69C 7F0B7B6C 00409825 */ move $s3, $v0 +/* 0EC6A0 7F0B7B70 1860005A */ blez $v1, .L7F0B7CDC +/* 0EC6A4 7F0B7B74 24550004 */ addiu $s5, $v0, 4 +/* 0EC6A8 7F0B7B78 24560010 */ addiu $s6, $v0, 0x10 +/* 0EC6AC 7F0B7B7C A7A300D2 */ sh $v1, 0xd2($sp) +/* 0EC6B0 7F0B7B80 AFA80058 */ sw $t0, 0x58($sp) +/* 0EC6B4 7F0B7B84 27BE00AC */ addiu $fp, $sp, 0xac +/* 0EC6B8 7F0B7B88 27B700C4 */ addiu $s7, $sp, 0xc4 +.L7F0B7B8C: +/* 0EC6BC 7F0B7B8C 02E02025 */ move $a0, $s7 +/* 0EC6C0 7F0B7B90 03C02825 */ move $a1, $fp +/* 0EC6C4 7F0B7B94 02A03025 */ move $a2, $s5 +/* 0EC6C8 7F0B7B98 0FC2DB3B */ jal sub_GAME_7F0B6CEC +/* 0EC6CC 7F0B7B9C 02C03825 */ move $a3, $s6 +/* 0EC6D0 7F0B7BA0 10400047 */ beqz $v0, .L7F0B7CC0 +/* 0EC6D4 7F0B7BA4 02E02025 */ move $a0, $s7 +/* 0EC6D8 7F0B7BA8 8FA900E0 */ lw $t1, 0xe0($sp) +/* 0EC6DC 7F0B7BAC 27AA007C */ addiu $t2, $sp, 0x7c +/* 0EC6E0 7F0B7BB0 AFAA0014 */ sw $t2, 0x14($sp) +/* 0EC6E4 7F0B7BB4 27A500B8 */ addiu $a1, $sp, 0xb8 +/* 0EC6E8 7F0B7BB8 03C03025 */ move $a2, $fp +/* 0EC6EC 7F0B7BBC 02603825 */ move $a3, $s3 +/* 0EC6F0 7F0B7BC0 0FC2DC04 */ jal sub_GAME_7F0B7010 +/* 0EC6F4 7F0B7BC4 AFA90010 */ sw $t1, 0x10($sp) +/* 0EC6F8 7F0B7BC8 1040003D */ beqz $v0, .L7F0B7CC0 +/* 0EC6FC 7F0B7BCC C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 0EC700 7F0B7BD0 C7B000C4 */ lwc1 $f16, 0xc4($sp) +/* 0EC704 7F0B7BD4 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 0EC708 7F0B7BD8 C7A800C8 */ lwc1 $f8, 0xc8($sp) +/* 0EC70C 7F0B7BDC 46105481 */ sub.s $f18, $f10, $f16 +/* 0EC710 7F0B7BE0 24090001 */ li $t1, 1 +/* 0EC714 7F0B7BE4 AFA9006C */ sw $t1, 0x6c($sp) +/* 0EC718 7F0B7BE8 46083281 */ sub.s $f10, $f6, $f8 +/* 0EC71C 7F0B7BEC 87A400A6 */ lh $a0, 0xa6($sp) +/* 0EC720 7F0B7BF0 4600910D */ trunc.w.s $f4, $f18 +/* 0EC724 7F0B7BF4 C7B20084 */ lwc1 $f18, 0x84($sp) +/* 0EC728 7F0B7BF8 4600540D */ trunc.w.s $f16, $f10 +/* 0EC72C 7F0B7BFC 44022000 */ mfc1 $v0, $f4 +/* 0EC730 7F0B7C00 C7A400CC */ lwc1 $f4, 0xcc($sp) +/* 0EC734 7F0B7C04 00420019 */ multu $v0, $v0 +/* 0EC738 7F0B7C08 44038000 */ mfc1 $v1, $f16 +/* 0EC73C 7F0B7C0C 46049181 */ sub.s $f6, $f18, $f4 +/* 0EC740 7F0B7C10 4600320D */ trunc.w.s $f8, $f6 +/* 0EC744 7F0B7C14 00007012 */ mflo $t6 +/* 0EC748 7F0B7C18 44054000 */ mfc1 $a1, $f8 +/* 0EC74C 7F0B7C1C 00000000 */ nop +/* 0EC750 7F0B7C20 00630019 */ multu $v1, $v1 +/* 0EC754 7F0B7C24 00007812 */ mflo $t7 +/* 0EC758 7F0B7C28 01CFC021 */ addu $t8, $t6, $t7 +/* 0EC75C 7F0B7C2C 00000000 */ nop +/* 0EC760 7F0B7C30 00A50019 */ multu $a1, $a1 +/* 0EC764 7F0B7C34 0000C812 */ mflo $t9 +/* 0EC768 7F0B7C38 03199021 */ addu $s2, $t8, $t9 +/* 0EC76C 7F0B7C3C 0FC2ED8C */ jal check_if_imageID_is_light +/* 0EC770 7F0B7C40 02408025 */ move $s0, $s2 +/* 0EC774 7F0B7C44 10400002 */ beqz $v0, .L7F0B7C50 +/* 0EC778 7F0B7C48 8FAA0074 */ lw $t2, 0x74($sp) +/* 0EC77C 7F0B7C4C 2650FFFC */ addiu $s0, $s2, -4 +.L7F0B7C50: +/* 0EC780 7F0B7C50 020A082A */ slt $at, $s0, $t2 +/* 0EC784 7F0B7C54 5020001B */ beql $at, $zero, .L7F0B7CC4 +/* 0EC788 7F0B7C58 87B900D2 */ lh $t9, 0xd2($sp) +/* 0EC78C 7F0B7C5C C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 0EC790 7F0B7C60 AFB00074 */ sw $s0, 0x74($sp) +/* 0EC794 7F0B7C64 E62A0000 */ swc1 $f10, ($s1) +/* 0EC798 7F0B7C68 C7B00080 */ lwc1 $f16, 0x80($sp) +/* 0EC79C 7F0B7C6C E6300004 */ swc1 $f16, 4($s1) +/* 0EC7A0 7F0B7C70 C7B20084 */ lwc1 $f18, 0x84($sp) +/* 0EC7A4 7F0B7C74 E6320008 */ swc1 $f18, 8($s1) +/* 0EC7A8 7F0B7C78 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0EC7AC 7F0B7C7C E624000C */ swc1 $f4, 0xc($s1) +/* 0EC7B0 7F0B7C80 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 0EC7B4 7F0B7C84 E6260010 */ swc1 $f6, 0x10($s1) +/* 0EC7B8 7F0B7C88 C7A80090 */ lwc1 $f8, 0x90($sp) +/* 0EC7BC 7F0B7C8C E6280014 */ swc1 $f8, 0x14($s1) +/* 0EC7C0 7F0B7C90 8FAB0094 */ lw $t3, 0x94($sp) +/* 0EC7C4 7F0B7C94 AE2B0018 */ sw $t3, 0x18($s1) +/* 0EC7C8 7F0B7C98 8FAC0098 */ lw $t4, 0x98($sp) +/* 0EC7CC 7F0B7C9C AE2C001C */ sw $t4, 0x1c($s1) +/* 0EC7D0 7F0B7CA0 8FAD009C */ lw $t5, 0x9c($sp) +/* 0EC7D4 7F0B7CA4 AE2D0020 */ sw $t5, 0x20($s1) +/* 0EC7D8 7F0B7CA8 87AE00A6 */ lh $t6, 0xa6($sp) +/* 0EC7DC 7F0B7CAC A62E002A */ sh $t6, 0x2a($s1) +/* 0EC7E0 7F0B7CB0 8FAF00A0 */ lw $t7, 0xa0($sp) +/* 0EC7E4 7F0B7CB4 AE2F0024 */ sw $t7, 0x24($s1) +/* 0EC7E8 7F0B7CB8 87B800A4 */ lh $t8, 0xa4($sp) +/* 0EC7EC 7F0B7CBC A6380028 */ sh $t8, 0x28($s1) +.L7F0B7CC0: +/* 0EC7F0 7F0B7CC0 87B900D2 */ lh $t9, 0xd2($sp) +.L7F0B7CC4: +/* 0EC7F4 7F0B7CC4 26940001 */ addiu $s4, $s4, 1 +/* 0EC7F8 7F0B7CC8 2673001C */ addiu $s3, $s3, 0x1c +/* 0EC7FC 7F0B7CCC 26B5001C */ addiu $s5, $s5, 0x1c +/* 0EC800 7F0B7CD0 1699FFAE */ bne $s4, $t9, .L7F0B7B8C +/* 0EC804 7F0B7CD4 26D6001C */ addiu $s6, $s6, 0x1c +/* 0EC808 7F0B7CD8 8FA80058 */ lw $t0, 0x58($sp) +.L7F0B7CDC: +/* 0EC80C 7F0B7CDC 8FA9006C */ lw $t1, 0x6c($sp) +/* 0EC810 7F0B7CE0 51200020 */ beql $t1, $zero, .L7F0B7D64 +/* 0EC814 7F0B7CE4 8FA2006C */ lw $v0, 0x6c($sp) +/* 0EC818 7F0B7CE8 8E220024 */ lw $v0, 0x24($s1) +/* 0EC81C 7F0B7CEC 240400F5 */ li $a0, 245 +/* 0EC820 7F0B7CF0 904A0000 */ lbu $t2, ($v0) +/* 0EC824 7F0B7CF4 508A000D */ beql $a0, $t2, .L7F0B7D2C +/* 0EC828 7F0B7CF8 8D0C0008 */ lw $t4, 8($t0) +/* 0EC82C 7F0B7CFC 8D030008 */ lw $v1, 8($t0) +/* 0EC830 7F0B7D00 0062082B */ sltu $at, $v1, $v0 +/* 0EC834 7F0B7D04 50200009 */ beql $at, $zero, .L7F0B7D2C +/* 0EC838 7F0B7D08 8D0C0008 */ lw $t4, 8($t0) +/* 0EC83C 7F0B7D0C 904BFFF8 */ lbu $t3, -8($v0) +.L7F0B7D10: +/* 0EC840 7F0B7D10 2442FFF8 */ addiu $v0, $v0, -8 +/* 0EC844 7F0B7D14 0062082B */ sltu $at, $v1, $v0 +/* 0EC848 7F0B7D18 508B0004 */ beql $a0, $t3, .L7F0B7D2C +/* 0EC84C 7F0B7D1C 8D0C0008 */ lw $t4, 8($t0) +/* 0EC850 7F0B7D20 5420FFFB */ bnezl $at, .L7F0B7D10 +/* 0EC854 7F0B7D24 904BFFF8 */ lbu $t3, -8($v0) +/* 0EC858 7F0B7D28 8D0C0008 */ lw $t4, 8($t0) +.L7F0B7D2C: +/* 0EC85C 7F0B7D2C 544C0006 */ bnel $v0, $t4, .L7F0B7D48 +/* 0EC860 7F0B7D30 904D0001 */ lbu $t5, 1($v0) +/* 0EC864 7F0B7D34 2402FFFF */ li $v0, -1 +/* 0EC868 7F0B7D38 A622002C */ sh $v0, 0x2c($s1) +/* 0EC86C 7F0B7D3C 10000008 */ b .L7F0B7D60 +/* 0EC870 7F0B7D40 A622002E */ sh $v0, 0x2e($s1) +/* 0EC874 7F0B7D44 904D0001 */ lbu $t5, 1($v0) +.L7F0B7D48: +/* 0EC878 7F0B7D48 000D7142 */ srl $t6, $t5, 5 +/* 0EC87C 7F0B7D4C A62E002C */ sh $t6, 0x2c($s1) +/* 0EC880 7F0B7D50 8C4F0000 */ lw $t7, ($v0) +/* 0EC884 7F0B7D54 000FC2C0 */ sll $t8, $t7, 0xb +/* 0EC888 7F0B7D58 0018CF82 */ srl $t9, $t8, 0x1e +/* 0EC88C 7F0B7D5C A639002E */ sh $t9, 0x2e($s1) +.L7F0B7D60: +/* 0EC890 7F0B7D60 8FA2006C */ lw $v0, 0x6c($sp) +.L7F0B7D64: +/* 0EC894 7F0B7D64 8FBF0044 */ lw $ra, 0x44($sp) +/* 0EC898 7F0B7D68 8FB00020 */ lw $s0, 0x20($sp) +/* 0EC89C 7F0B7D6C 8FB10024 */ lw $s1, 0x24($sp) +/* 0EC8A0 7F0B7D70 8FB20028 */ lw $s2, 0x28($sp) +/* 0EC8A4 7F0B7D74 8FB3002C */ lw $s3, 0x2c($sp) +/* 0EC8A8 7F0B7D78 8FB40030 */ lw $s4, 0x30($sp) +/* 0EC8AC 7F0B7D7C 8FB50034 */ lw $s5, 0x34($sp) +/* 0EC8B0 7F0B7D80 8FB60038 */ lw $s6, 0x38($sp) +/* 0EC8B4 7F0B7D84 8FB7003C */ lw $s7, 0x3c($sp) +/* 0EC8B8 7F0B7D88 8FBE0040 */ lw $fp, 0x40($sp) +/* 0EC8BC 7F0B7D8C 03E00008 */ jr $ra +/* 0EC8C0 7F0B7D90 27BD00D8 */ addiu $sp, $sp, 0xd8 +) +#endif + + + + + + +void sub_GAME_7F0B7D94(void) { + D_800448A0 = 0; + D_800448A4 = 0; +} + + + + + + +#ifdef NONMATCHING +s8 sub_GAME_7F0B7DA8(s32 arg0) { + void *temp_v0; + s8 temp_t8; + s8 phi_a1; + + // Node 0 + temp_v0 = ((arg0 * 0x50) + &array_room_info); + phi_a1 = temp_v0->unk3; + if (temp_v0->unk3 < 0xff) + { + // Node 1 + temp_t8 = (temp_v0->unk3 + 1); + temp_v0->unk3 = temp_t8; + phi_a1 = (temp_t8 & 0xff); + } + // Node 2 + return phi_a1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B7DA8 +/* 0EC8D8 7F0B7DA8 00047080 */ sll $t6, $a0, 2 +/* 0EC8DC 7F0B7DAC 01C47021 */ addu $t6, $t6, $a0 +/* 0EC8E0 7F0B7DB0 3C0F8004 */ lui $t7, %hi(array_room_info) +/* 0EC8E4 7F0B7DB4 25EF1414 */ addiu $t7, %lo(array_room_info) # addiu $t7, $t7, 0x1414 +/* 0EC8E8 7F0B7DB8 000E7100 */ sll $t6, $t6, 4 +/* 0EC8EC 7F0B7DBC 01CF1021 */ addu $v0, $t6, $t7 +/* 0EC8F0 7F0B7DC0 90430003 */ lbu $v1, 3($v0) +/* 0EC8F4 7F0B7DC4 286100FF */ slti $at, $v1, 0xff +/* 0EC8F8 7F0B7DC8 10200004 */ beqz $at, .L7F0B7DDC +/* 0EC8FC 7F0B7DCC 00602825 */ move $a1, $v1 +/* 0EC900 7F0B7DD0 24780001 */ addiu $t8, $v1, 1 +/* 0EC904 7F0B7DD4 A0580003 */ sb $t8, 3($v0) +/* 0EC908 7F0B7DD8 330500FF */ andi $a1, $t8, 0xff +.L7F0B7DDC: +/* 0EC90C 7F0B7DDC 03E00008 */ jr $ra +/* 0EC910 7F0B7DE0 00A01025 */ move $v0, $a1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B7DE4(s32 arg0, s32 arg1, s32 arg2, s32 arg3, void *arg4) { + void *sp1C; + void *temp_v1; + void *temp_v0; + s32 temp_a0; + s32 phi_a0; + + // Node 0 + temp_v1 = ((D_800448A0 << 5) + &dword_CODE_bss_8007C100); + if ((arg3 < 2) || (sub_GAME_7F0B7DA8(((temp_v0->unk4 ^ temp_v0->unk5) ^ arg1)) < 9)) + { + // Node 2 + *temp_v1 = arg0; + temp_v1->unk4 = arg1; + temp_v1->unkC = (s32) arg3; + temp_v1->unk8 = arg2; + temp_v1->unk10 = (f32) *arg4; + temp_v1->unk14 = (f32) arg4->unk4; + temp_v1->unk18 = (f32) arg4->unk8; + temp_v1->unk1C = (f32) arg4->unkC; + temp_a0 = (*&D_800448A0 + 1); + *&D_800448A0 = temp_a0; + phi_a0 = temp_a0; + if (temp_a0 == 0x1f4) + { + // Node 3 + *&D_800448A0 = 0; + phi_a0 = 0; + } + // Node 4 + if (D_800448A4 == phi_a0) + { + // Node 5 + *&D_800448A0 = (s32) (phi_a0 + -1); + } + } + else + { + + } + // Node 6 + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B7DE4 +/* 0EC914 7F0B7DE4 3C088004 */ lui $t0, %hi(D_800448A0) +/* 0EC918 7F0B7DE8 250848A0 */ addiu $t0, %lo(D_800448A0) # addiu $t0, $t0, 0x48a0 +/* 0EC91C 7F0B7DEC 8D0E0000 */ lw $t6, ($t0) +/* 0EC920 7F0B7DF0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0EC924 7F0B7DF4 3C188008 */ lui $t8, %hi(dword_CODE_bss_8007C100) +/* 0EC928 7F0B7DF8 2718C100 */ addiu $t8, %lo(dword_CODE_bss_8007C100) # addiu $t8, $t8, -0x3f00 +/* 0EC92C 7F0B7DFC 28E10002 */ slti $at, $a3, 2 +/* 0EC930 7F0B7E00 000E7940 */ sll $t7, $t6, 5 +/* 0EC934 7F0B7E04 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EC938 7F0B7E08 AFA40020 */ sw $a0, 0x20($sp) +/* 0EC93C 7F0B7E0C AFA50024 */ sw $a1, 0x24($sp) +/* 0EC940 7F0B7E10 AFA60028 */ sw $a2, 0x28($sp) +/* 0EC944 7F0B7E14 14200012 */ bnez $at, .L7F0B7E60 +/* 0EC948 7F0B7E18 01F81821 */ addu $v1, $t7, $t8 +/* 0EC94C 7F0B7E1C 3C198008 */ lui $t9, %hi(ptr_bgdata_portals) +/* 0EC950 7F0B7E20 8F39FF80 */ lw $t9, %lo(ptr_bgdata_portals)($t9) +/* 0EC954 7F0B7E24 000650C0 */ sll $t2, $a2, 3 +/* 0EC958 7F0B7E28 032A1021 */ addu $v0, $t9, $t2 +/* 0EC95C 7F0B7E2C 904B0004 */ lbu $t3, 4($v0) +/* 0EC960 7F0B7E30 904C0005 */ lbu $t4, 5($v0) +/* 0EC964 7F0B7E34 AFA7002C */ sw $a3, 0x2c($sp) +/* 0EC968 7F0B7E38 AFA3001C */ sw $v1, 0x1c($sp) +/* 0EC96C 7F0B7E3C 016C6826 */ xor $t5, $t3, $t4 +/* 0EC970 7F0B7E40 0FC2DF6A */ jal sub_GAME_7F0B7DA8 +/* 0EC974 7F0B7E44 01A52026 */ xor $a0, $t5, $a1 +/* 0EC978 7F0B7E48 3C088004 */ lui $t0, %hi(D_800448A0) +/* 0EC97C 7F0B7E4C 28410009 */ slti $at, $v0, 9 +/* 0EC980 7F0B7E50 250848A0 */ addiu $t0, %lo(D_800448A0) # addiu $t0, $t0, 0x48a0 +/* 0EC984 7F0B7E54 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EC988 7F0B7E58 1020001E */ beqz $at, .L7F0B7ED4 +/* 0EC98C 7F0B7E5C 8FA7002C */ lw $a3, 0x2c($sp) +.L7F0B7E60: +/* 0EC990 7F0B7E60 8FAF0020 */ lw $t7, 0x20($sp) +/* 0EC994 7F0B7E64 8FA20030 */ lw $v0, 0x30($sp) +/* 0EC998 7F0B7E68 240101F4 */ li $at, 500 +/* 0EC99C 7F0B7E6C AC6F0000 */ sw $t7, ($v1) +/* 0EC9A0 7F0B7E70 8FB80024 */ lw $t8, 0x24($sp) +/* 0EC9A4 7F0B7E74 3C0B8004 */ lui $t3, %hi(D_800448A4) +/* 0EC9A8 7F0B7E78 AC780004 */ sw $t8, 4($v1) +/* 0EC9AC 7F0B7E7C 8FA90028 */ lw $t1, 0x28($sp) +/* 0EC9B0 7F0B7E80 AC67000C */ sw $a3, 0xc($v1) +/* 0EC9B4 7F0B7E84 AC690008 */ sw $t1, 8($v1) +/* 0EC9B8 7F0B7E88 C4440000 */ lwc1 $f4, ($v0) +/* 0EC9BC 7F0B7E8C E4640010 */ swc1 $f4, 0x10($v1) +/* 0EC9C0 7F0B7E90 C4460004 */ lwc1 $f6, 4($v0) +/* 0EC9C4 7F0B7E94 E4660014 */ swc1 $f6, 0x14($v1) +/* 0EC9C8 7F0B7E98 C4480008 */ lwc1 $f8, 8($v0) +/* 0EC9CC 7F0B7E9C E4680018 */ swc1 $f8, 0x18($v1) +/* 0EC9D0 7F0B7EA0 C44A000C */ lwc1 $f10, 0xc($v0) +/* 0EC9D4 7F0B7EA4 E46A001C */ swc1 $f10, 0x1c($v1) +/* 0EC9D8 7F0B7EA8 8D190000 */ lw $t9, ($t0) +/* 0EC9DC 7F0B7EAC 27240001 */ addiu $a0, $t9, 1 +/* 0EC9E0 7F0B7EB0 14810003 */ bne $a0, $at, .L7F0B7EC0 +/* 0EC9E4 7F0B7EB4 AD040000 */ sw $a0, ($t0) +/* 0EC9E8 7F0B7EB8 AD000000 */ sw $zero, ($t0) +/* 0EC9EC 7F0B7EBC 00002025 */ move $a0, $zero +.L7F0B7EC0: +/* 0EC9F0 7F0B7EC0 8D6B48A4 */ lw $t3, %lo(D_800448A4)($t3) +/* 0EC9F4 7F0B7EC4 248CFFFF */ addiu $t4, $a0, -1 +/* 0EC9F8 7F0B7EC8 55640003 */ bnel $t3, $a0, .L7F0B7ED8 +/* 0EC9FC 7F0B7ECC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0ECA00 7F0B7ED0 AD0C0000 */ sw $t4, ($t0) +.L7F0B7ED4: +/* 0ECA04 7F0B7ED4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0B7ED8: +/* 0ECA08 7F0B7ED8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0ECA0C 7F0B7EDC 03E00008 */ jr $ra +/* 0ECA10 7F0B7EE0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B7EE4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B7EE4 +/* 0ECA14 7F0B7EE4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0ECA18 7F0B7EE8 3C038004 */ lui $v1, %hi(D_800448A4) +/* 0ECA1C 7F0B7EEC 246348A4 */ addiu $v1, %lo(D_800448A4) # addiu $v1, $v1, 0x48a4 +/* 0ECA20 7F0B7EF0 3C188004 */ lui $t8, %hi(D_800448A0) +/* 0ECA24 7F0B7EF4 8F1848A0 */ lw $t8, %lo(D_800448A0)($t8) +/* 0ECA28 7F0B7EF8 8C680000 */ lw $t0, ($v1) +/* 0ECA2C 7F0B7EFC AFBF001C */ sw $ra, 0x1c($sp) +/* 0ECA30 7F0B7F00 AFA40028 */ sw $a0, 0x28($sp) +/* 0ECA34 7F0B7F04 8C8F0000 */ lw $t7, ($a0) +/* 0ECA38 7F0B7F08 0008C940 */ sll $t9, $t0, 5 +/* 0ECA3C 7F0B7F0C 17080003 */ bne $t8, $t0, .L7F0B7F1C +/* 0ECA40 7F0B7F10 AFAF0020 */ sw $t7, 0x20($sp) +/* 0ECA44 7F0B7F14 10000017 */ b .L7F0B7F74 +/* 0ECA48 7F0B7F18 00001025 */ move $v0, $zero +.L7F0B7F1C: +/* 0ECA4C 7F0B7F1C 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007C100) +/* 0ECA50 7F0B7F20 2529C100 */ addiu $t1, %lo(dword_CODE_bss_8007C100) # addiu $t1, $t1, -0x3f00 +/* 0ECA54 7F0B7F24 03291021 */ addu $v0, $t9, $t1 +/* 0ECA58 7F0B7F28 8C450004 */ lw $a1, 4($v0) +/* 0ECA5C 7F0B7F2C 8C460008 */ lw $a2, 8($v0) +/* 0ECA60 7F0B7F30 8C47000C */ lw $a3, 0xc($v0) +/* 0ECA64 7F0B7F34 244A0010 */ addiu $t2, $v0, 0x10 +/* 0ECA68 7F0B7F38 AFAA0010 */ sw $t2, 0x10($sp) +/* 0ECA6C 7F0B7F3C 0FC2DFE1 */ jal sub_GAME_7F0B7F84 +/* 0ECA70 7F0B7F40 8FA40020 */ lw $a0, 0x20($sp) +/* 0ECA74 7F0B7F44 3C038004 */ lui $v1, %hi(D_800448A4) +/* 0ECA78 7F0B7F48 246348A4 */ addiu $v1, %lo(D_800448A4) # addiu $v1, $v1, 0x48a4 +/* 0ECA7C 7F0B7F4C 8C6B0000 */ lw $t3, ($v1) +/* 0ECA80 7F0B7F50 240101F4 */ li $at, 500 +/* 0ECA84 7F0B7F54 00402025 */ move $a0, $v0 +/* 0ECA88 7F0B7F58 256C0001 */ addiu $t4, $t3, 1 +/* 0ECA8C 7F0B7F5C 15810002 */ bne $t4, $at, .L7F0B7F68 +/* 0ECA90 7F0B7F60 AC6C0000 */ sw $t4, ($v1) +/* 0ECA94 7F0B7F64 AC600000 */ sw $zero, ($v1) +.L7F0B7F68: +/* 0ECA98 7F0B7F68 8FAE0028 */ lw $t6, 0x28($sp) +/* 0ECA9C 7F0B7F6C 24020001 */ li $v0, 1 +/* 0ECAA0 7F0B7F70 ADC40000 */ sw $a0, ($t6) +.L7F0B7F74: +/* 0ECAA4 7F0B7F74 8FBF001C */ lw $ra, 0x1c($sp) +/* 0ECAA8 7F0B7F78 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0ECAAC 7F0B7F7C 03E00008 */ jr $ra +/* 0ECAB0 7F0B7F80 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B7F84(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B7F84 +/* 0ECAB4 7F0B7F84 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0ECAB8 7F0B7F88 3C028004 */ lui $v0, %hi(D_80044898) +/* 0ECABC 7F0B7F8C 24424898 */ addiu $v0, %lo(D_80044898) # addiu $v0, $v0, 0x4898 +/* 0ECAC0 7F0B7F90 8C4E0000 */ lw $t6, ($v0) +/* 0ECAC4 7F0B7F94 AFB40030 */ sw $s4, 0x30($sp) +/* 0ECAC8 7F0B7F98 AFB3002C */ sw $s3, 0x2c($sp) +/* 0ECACC 7F0B7F9C AFB20028 */ sw $s2, 0x28($sp) +/* 0ECAD0 7F0B7FA0 28E10065 */ slti $at, $a3, 0x65 +/* 0ECAD4 7F0B7FA4 25CF0001 */ addiu $t7, $t6, 1 +/* 0ECAD8 7F0B7FA8 00809025 */ move $s2, $a0 +/* 0ECADC 7F0B7FAC 00E09825 */ move $s3, $a3 +/* 0ECAE0 7F0B7FB0 00C0A025 */ move $s4, $a2 +/* 0ECAE4 7F0B7FB4 AFBF0034 */ sw $ra, 0x34($sp) +/* 0ECAE8 7F0B7FB8 AFB10024 */ sw $s1, 0x24($sp) +/* 0ECAEC 7F0B7FBC AFB00020 */ sw $s0, 0x20($sp) +/* 0ECAF0 7F0B7FC0 AFA50084 */ sw $a1, 0x84($sp) +/* 0ECAF4 7F0B7FC4 14200003 */ bnez $at, .L7F0B7FD4 +/* 0ECAF8 7F0B7FC8 AC4F0000 */ sw $t7, ($v0) +/* 0ECAFC 7F0B7FCC 100000E1 */ b .L7F0B8354 +/* 0ECB00 7F0B7FD0 00801025 */ move $v0, $a0 +.L7F0B7FD4: +/* 0ECB04 7F0B7FD4 3C188004 */ lui $t8, %hi(D_8004489C) +/* 0ECB08 7F0B7FD8 8F18489C */ lw $t8, %lo(D_8004489C)($t8) +/* 0ECB0C 7F0B7FDC 0313082A */ slt $at, $t8, $s3 +/* 0ECB10 7F0B7FE0 50200004 */ beql $at, $zero, .L7F0B7FF4 +/* 0ECB14 7F0B7FE4 2A610010 */ slti $at, $s3, 0x10 +/* 0ECB18 7F0B7FE8 100000DA */ b .L7F0B8354 +/* 0ECB1C 7F0B7FEC 02401025 */ move $v0, $s2 +/* 0ECB20 7F0B7FF0 2A610010 */ slti $at, $s3, 0x10 +.L7F0B7FF4: +/* 0ECB24 7F0B7FF4 14200003 */ bnez $at, .L7F0B8004 +/* 0ECB28 7F0B7FF8 3C198008 */ lui $t9, %hi(ptr_bgdata_portals) +/* 0ECB2C 7F0B7FFC 100000D5 */ b .L7F0B8354 +/* 0ECB30 7F0B8000 02401025 */ move $v0, $s2 +.L7F0B8004: +/* 0ECB34 7F0B8004 8F39FF80 */ lw $t9, %lo(ptr_bgdata_portals)($t9) +/* 0ECB38 7F0B8008 001410C0 */ sll $v0, $s4, 3 +/* 0ECB3C 7F0B800C 3C0B8004 */ lui $t3, %hi(D_800442FC) +/* 0ECB40 7F0B8010 03224021 */ addu $t0, $t9, $v0 +/* 0ECB44 7F0B8014 91090006 */ lbu $t1, 6($t0) +/* 0ECB48 7F0B8018 256B42FC */ addiu $t3, %lo(D_800442FC) # addiu $t3, $t3, 0x42fc +/* 0ECB4C 7F0B801C 028B1821 */ addu $v1, $s4, $t3 +/* 0ECB50 7F0B8020 312A0001 */ andi $t2, $t1, 1 +/* 0ECB54 7F0B8024 51400004 */ beql $t2, $zero, .L7F0B8038 +/* 0ECB58 7F0B8028 AFA20044 */ sw $v0, 0x44($sp) +/* 0ECB5C 7F0B802C 100000C9 */ b .L7F0B8354 +/* 0ECB60 7F0B8030 02401025 */ move $v0, $s2 +/* 0ECB64 7F0B8034 AFA20044 */ sw $v0, 0x44($sp) +.L7F0B8038: +/* 0ECB68 7F0B8038 0FC227F5 */ jal get_BONDdata_position +/* 0ECB6C 7F0B803C AFA3003C */ sw $v1, 0x3c($sp) +/* 0ECB70 7F0B8040 00408025 */ move $s0, $v0 +/* 0ECB74 7F0B8044 02802025 */ move $a0, $s4 +/* 0ECB78 7F0B8048 0FC2E5B3 */ jal sub_GAME_7F0B96CC +/* 0ECB7C 7F0B804C 27A50054 */ addiu $a1, $sp, 0x54 +/* 0ECB80 7F0B8050 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 0ECB84 7F0B8054 C6060000 */ lwc1 $f6, ($s0) +/* 0ECB88 7F0B8058 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 0ECB8C 7F0B805C C6100004 */ lwc1 $f16, 4($s0) +/* 0ECB90 7F0B8060 46062202 */ mul.s $f8, $f4, $f6 +/* 0ECB94 7F0B8064 C6060008 */ lwc1 $f6, 8($s0) +/* 0ECB98 7F0B8068 3C018004 */ lui $at, %hi(room_data_float1) +/* 0ECB9C 7F0B806C 46105482 */ mul.s $f18, $f10, $f16 +/* 0ECBA0 7F0B8070 C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 0ECBA4 7F0B8074 02802025 */ move $a0, $s4 +/* 0ECBA8 7F0B8078 460A3402 */ mul.s $f16, $f6, $f10 +/* 0ECBAC 7F0B807C 46124100 */ add.s $f4, $f8, $f18 +/* 0ECBB0 7F0B8080 C43213F4 */ lwc1 $f18, %lo(room_data_float1)($at) +/* 0ECBB4 7F0B8084 46048200 */ add.s $f8, $f16, $f4 +/* 0ECBB8 7F0B8088 46124082 */ mul.s $f2, $f8, $f18 +/* 0ECBBC 7F0B808C 0FC2E664 */ jal sub_GAME_7F0B9990 +/* 0ECBC0 7F0B8090 E7A20050 */ swc1 $f2, 0x50($sp) +/* 0ECBC4 7F0B8094 3C0C8008 */ lui $t4, %hi(ptr_bgdata_portals) +/* 0ECBC8 7F0B8098 8D8CFF80 */ lw $t4, %lo(ptr_bgdata_portals)($t4) +/* 0ECBCC 7F0B809C 8FAD0044 */ lw $t5, 0x44($sp) +/* 0ECBD0 7F0B80A0 8FAE0084 */ lw $t6, 0x84($sp) +/* 0ECBD4 7F0B80A4 C7A20050 */ lwc1 $f2, 0x50($sp) +/* 0ECBD8 7F0B80A8 018D1021 */ addu $v0, $t4, $t5 +/* 0ECBDC 7F0B80AC 90430004 */ lbu $v1, 4($v0) +/* 0ECBE0 7F0B80B0 55C3000B */ bnel $t6, $v1, .L7F0B80E0 +/* 0ECBE4 7F0B80B4 46001100 */ add.s $f4, $f2, $f0 +/* 0ECBE8 7F0B80B8 46001181 */ sub.s $f6, $f2, $f0 +/* 0ECBEC 7F0B80BC C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 0ECBF0 7F0B80C0 90510005 */ lbu $s1, 5($v0) +/* 0ECBF4 7F0B80C4 4606503E */ c.le.s $f10, $f6 +/* 0ECBF8 7F0B80C8 00000000 */ nop +/* 0ECBFC 7F0B80CC 4502000D */ bc1fl .L7F0B8104 +/* 0ECC00 7F0B80D0 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 0ECC04 7F0B80D4 1000009F */ b .L7F0B8354 +/* 0ECC08 7F0B80D8 02401025 */ move $v0, $s2 +/* 0ECC0C 7F0B80DC 46001100 */ add.s $f4, $f2, $f0 +.L7F0B80E0: +/* 0ECC10 7F0B80E0 C7B00060 */ lwc1 $f16, 0x60($sp) +/* 0ECC14 7F0B80E4 00608825 */ move $s1, $v1 +/* 0ECC18 7F0B80E8 4610203E */ c.le.s $f4, $f16 +/* 0ECC1C 7F0B80EC 00000000 */ nop +/* 0ECC20 7F0B80F0 45020004 */ bc1fl .L7F0B8104 +/* 0ECC24 7F0B80F4 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 0ECC28 7F0B80F8 10000096 */ b .L7F0B8354 +/* 0ECC2C 7F0B80FC 02401025 */ move $v0, $s2 +/* 0ECC30 7F0B8100 C7A80060 */ lwc1 $f8, 0x60($sp) +.L7F0B8104: +/* 0ECC34 7F0B8104 C7A60064 */ lwc1 $f6, 0x64($sp) +/* 0ECC38 7F0B8108 46004481 */ sub.s $f18, $f8, $f0 +/* 0ECC3C 7F0B810C 4602903C */ c.lt.s $f18, $f2 +/* 0ECC40 7F0B8110 00000000 */ nop +/* 0ECC44 7F0B8114 45020012 */ bc1fl .L7F0B8160 +/* 0ECC48 7F0B8118 904F0006 */ lbu $t7, 6($v0) +/* 0ECC4C 7F0B811C 46003280 */ add.s $f10, $f6, $f0 +/* 0ECC50 7F0B8120 460A103C */ c.lt.s $f2, $f10 +/* 0ECC54 7F0B8124 00000000 */ nop +/* 0ECC58 7F0B8128 4502000D */ bc1fl .L7F0B8160 +/* 0ECC5C 7F0B812C 904F0006 */ lbu $t7, 6($v0) +/* 0ECC60 7F0B8130 3C028008 */ lui $v0, %hi(pPlayer) +/* 0ECC64 7F0B8134 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0ECC68 7F0B8138 C4501118 */ lwc1 $f16, 0x1118($v0) +/* 0ECC6C 7F0B813C E7B00070 */ swc1 $f16, 0x70($sp) +/* 0ECC70 7F0B8140 C444111C */ lwc1 $f4, 0x111c($v0) +/* 0ECC74 7F0B8144 E7A40074 */ swc1 $f4, 0x74($sp) +/* 0ECC78 7F0B8148 C4481120 */ lwc1 $f8, 0x1120($v0) +/* 0ECC7C 7F0B814C E7A80078 */ swc1 $f8, 0x78($sp) +/* 0ECC80 7F0B8150 C4521124 */ lwc1 $f18, 0x1124($v0) +/* 0ECC84 7F0B8154 10000042 */ b .L7F0B8260 +/* 0ECC88 7F0B8158 E7B2007C */ swc1 $f18, 0x7c($sp) +/* 0ECC8C 7F0B815C 904F0006 */ lbu $t7, 6($v0) +.L7F0B8160: +/* 0ECC90 7F0B8160 27A50070 */ addiu $a1, $sp, 0x70 +/* 0ECC94 7F0B8164 02802025 */ move $a0, $s4 +/* 0ECC98 7F0B8168 31F80002 */ andi $t8, $t7, 2 +/* 0ECC9C 7F0B816C 13000021 */ beqz $t8, .L7F0B81F4 +/* 0ECCA0 7F0B8170 00000000 */ nop +/* 0ECCA4 7F0B8174 0FC2D619 */ jal sub_GAME_7F0B5864 +/* 0ECCA8 7F0B8178 02802025 */ move $a0, $s4 +/* 0ECCAC 7F0B817C 14400003 */ bnez $v0, .L7F0B818C +/* 0ECCB0 7F0B8180 3C198008 */ lui $t9, %hi(ptr_bgdata_portals) +/* 0ECCB4 7F0B8184 10000073 */ b .L7F0B8354 +/* 0ECCB8 7F0B8188 02401025 */ move $v0, $s2 +.L7F0B818C: +/* 0ECCBC 7F0B818C 8F39FF80 */ lw $t9, %lo(ptr_bgdata_portals)($t9) +/* 0ECCC0 7F0B8190 8FA80044 */ lw $t0, 0x44($sp) +/* 0ECCC4 7F0B8194 8FAC0084 */ lw $t4, 0x84($sp) +/* 0ECCC8 7F0B8198 27A50070 */ addiu $a1, $sp, 0x70 +/* 0ECCCC 7F0B819C 03281021 */ addu $v0, $t9, $t0 +/* 0ECCD0 7F0B81A0 90490005 */ lbu $t1, 5($v0) +/* 0ECCD4 7F0B81A4 904A0004 */ lbu $t2, 4($v0) +/* 0ECCD8 7F0B81A8 012A5826 */ xor $t3, $t1, $t2 +/* 0ECCDC 7F0B81AC 016C8826 */ xor $s1, $t3, $t4 +/* 0ECCE0 7F0B81B0 0FC2D482 */ jal sub_GAME_7F0B5208 +/* 0ECCE4 7F0B81B4 02202025 */ move $a0, $s1 +/* 0ECCE8 7F0B81B8 14400003 */ bnez $v0, .L7F0B81C8 +/* 0ECCEC 7F0B81BC 00000000 */ nop +/* 0ECCF0 7F0B81C0 10000064 */ b .L7F0B8354 +/* 0ECCF4 7F0B81C4 02401025 */ move $v0, $s2 +.L7F0B81C8: +/* 0ECCF8 7F0B81C8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0ECCFC 7F0B81CC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0ECD00 7F0B81D0 C4461118 */ lwc1 $f6, 0x1118($v0) +/* 0ECD04 7F0B81D4 E7A60070 */ swc1 $f6, 0x70($sp) +/* 0ECD08 7F0B81D8 C44A111C */ lwc1 $f10, 0x111c($v0) +/* 0ECD0C 7F0B81DC E7AA0074 */ swc1 $f10, 0x74($sp) +/* 0ECD10 7F0B81E0 C4501120 */ lwc1 $f16, 0x1120($v0) +/* 0ECD14 7F0B81E4 E7B00078 */ swc1 $f16, 0x78($sp) +/* 0ECD18 7F0B81E8 C4441124 */ lwc1 $f4, 0x1124($v0) +/* 0ECD1C 7F0B81EC 1000000E */ b .L7F0B8228 +/* 0ECD20 7F0B81F0 E7A4007C */ swc1 $f4, 0x7c($sp) +.L7F0B81F4: +/* 0ECD24 7F0B81F4 0FC2D619 */ jal sub_GAME_7F0B5864 +/* 0ECD28 7F0B81F8 27A50070 */ addiu $a1, $sp, 0x70 +/* 0ECD2C 7F0B81FC 14400003 */ bnez $v0, .L7F0B820C +/* 0ECD30 7F0B8200 27A40070 */ addiu $a0, $sp, 0x70 +/* 0ECD34 7F0B8204 10000053 */ b .L7F0B8354 +/* 0ECD38 7F0B8208 02401025 */ move $v0, $s2 +.L7F0B820C: +/* 0ECD3C 7F0B820C 0FC2D6F7 */ jal vis_is_inline_of_sight +/* 0ECD40 7F0B8210 8FA50090 */ lw $a1, 0x90($sp) +/* 0ECD44 7F0B8214 3C058008 */ lui $a1, %hi(pPlayer) +/* 0ECD48 7F0B8218 8CA5A0B0 */ lw $a1, %lo(pPlayer)($a1) +/* 0ECD4C 7F0B821C 27A40070 */ addiu $a0, $sp, 0x70 +/* 0ECD50 7F0B8220 0FC2D6F7 */ jal vis_is_inline_of_sight +/* 0ECD54 7F0B8224 24A51118 */ addiu $a1, $a1, 0x1118 +.L7F0B8228: +/* 0ECD58 7F0B8228 C7A80070 */ lwc1 $f8, 0x70($sp) +/* 0ECD5C 7F0B822C C7B20078 */ lwc1 $f18, 0x78($sp) +/* 0ECD60 7F0B8230 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 0ECD64 7F0B8234 C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 0ECD68 7F0B8238 4608903E */ c.le.s $f18, $f8 +/* 0ECD6C 7F0B823C 00000000 */ nop +/* 0ECD70 7F0B8240 45010005 */ bc1t .L7F0B8258 +/* 0ECD74 7F0B8244 00000000 */ nop +/* 0ECD78 7F0B8248 4606503E */ c.le.s $f10, $f6 +/* 0ECD7C 7F0B824C 00000000 */ nop +/* 0ECD80 7F0B8250 45020004 */ bc1fl .L7F0B8264 +/* 0ECD84 7F0B8254 8FAD003C */ lw $t5, 0x3c($sp) +.L7F0B8258: +/* 0ECD88 7F0B8258 1000003E */ b .L7F0B8354 +/* 0ECD8C 7F0B825C 02401025 */ move $v0, $s2 +.L7F0B8260: +/* 0ECD90 7F0B8260 8FAD003C */ lw $t5, 0x3c($sp) +.L7F0B8264: +/* 0ECD94 7F0B8264 A1B30000 */ sb $s3, ($t5) +/* 0ECD98 7F0B8268 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 0ECD9C 7F0B826C C7B00070 */ lwc1 $f16, 0x70($sp) +/* 0ECDA0 7F0B8270 C7B2007C */ lwc1 $f18, 0x7c($sp) +/* 0ECDA4 7F0B8274 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 0ECDA8 7F0B8278 4604803C */ c.lt.s $f16, $f4 +/* 0ECDAC 7F0B827C 00000000 */ nop +/* 0ECDB0 7F0B8280 45000013 */ bc1f .L7F0B82D0 +/* 0ECDB4 7F0B8284 00000000 */ nop +/* 0ECDB8 7F0B8288 4612403C */ c.lt.s $f8, $f18 +/* 0ECDBC 7F0B828C 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0ECDC0 7F0B8290 8FAF0044 */ lw $t7, 0x44($sp) +/* 0ECDC4 7F0B8294 4500000E */ bc1f .L7F0B82D0 +/* 0ECDC8 7F0B8298 00000000 */ nop +/* 0ECDCC 7F0B829C 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0ECDD0 7F0B82A0 02202025 */ move $a0, $s1 +/* 0ECDD4 7F0B82A4 02602825 */ move $a1, $s3 +/* 0ECDD8 7F0B82A8 01CFC021 */ addu $t8, $t6, $t7 +/* 0ECDDC 7F0B82AC 93070006 */ lbu $a3, 6($t8) +/* 0ECDE0 7F0B82B0 27A60070 */ addiu $a2, $sp, 0x70 +/* 0ECDE4 7F0B82B4 30F90002 */ andi $t9, $a3, 2 +/* 0ECDE8 7F0B82B8 0FC2CE6F */ jal sub_GAME_7F0B39BC +/* 0ECDEC 7F0B82BC 03203825 */ move $a3, $t9 +/* 0ECDF0 7F0B82C0 10400005 */ beqz $v0, .L7F0B82D8 +/* 0ECDF4 7F0B82C4 3C048008 */ lui $a0, %hi(ptr_bgdata_portals) +/* 0ECDF8 7F0B82C8 10000022 */ b .L7F0B8354 +/* 0ECDFC 7F0B82CC 02401025 */ move $v0, $s2 +.L7F0B82D0: +/* 0ECE00 7F0B82D0 10000020 */ b .L7F0B8354 +/* 0ECE04 7F0B82D4 02401025 */ move $v0, $s2 +.L7F0B82D8: +/* 0ECE08 7F0B82D8 8C84FF80 */ lw $a0, %lo(ptr_bgdata_portals)($a0) +/* 0ECE0C 7F0B82DC 00008025 */ move $s0, $zero +/* 0ECE10 7F0B82E0 00001825 */ move $v1, $zero +/* 0ECE14 7F0B82E4 8C880000 */ lw $t0, ($a0) +/* 0ECE18 7F0B82E8 00801025 */ move $v0, $a0 +/* 0ECE1C 7F0B82EC 51000019 */ beql $t0, $zero, .L7F0B8354 +/* 0ECE20 7F0B82F0 02401025 */ move $v0, $s2 +.L7F0B82F4: +/* 0ECE24 7F0B82F4 52140012 */ beql $s0, $s4, .L7F0B8340 +/* 0ECE28 7F0B82F8 8C4D0008 */ lw $t5, 8($v0) +/* 0ECE2C 7F0B82FC 90490004 */ lbu $t1, 4($v0) +/* 0ECE30 7F0B8300 02402025 */ move $a0, $s2 +/* 0ECE34 7F0B8304 02202825 */ move $a1, $s1 +/* 0ECE38 7F0B8308 12290003 */ beq $s1, $t1, .L7F0B8318 +/* 0ECE3C 7F0B830C 02003025 */ move $a2, $s0 +/* 0ECE40 7F0B8310 904A0005 */ lbu $t2, 5($v0) +/* 0ECE44 7F0B8314 162A0009 */ bne $s1, $t2, .L7F0B833C +.L7F0B8318: +/* 0ECE48 7F0B8318 27AB0070 */ addiu $t3, $sp, 0x70 +/* 0ECE4C 7F0B831C AFAB0010 */ sw $t3, 0x10($sp) +/* 0ECE50 7F0B8320 26670001 */ addiu $a3, $s3, 1 +/* 0ECE54 7F0B8324 0FC2DF79 */ jal sub_GAME_7F0B7DE4 +/* 0ECE58 7F0B8328 AFA30040 */ sw $v1, 0x40($sp) +/* 0ECE5C 7F0B832C 3C0C8008 */ lui $t4, %hi(ptr_bgdata_portals) +/* 0ECE60 7F0B8330 8D8CFF80 */ lw $t4, %lo(ptr_bgdata_portals)($t4) +/* 0ECE64 7F0B8334 8FA30040 */ lw $v1, 0x40($sp) +/* 0ECE68 7F0B8338 01831021 */ addu $v0, $t4, $v1 +.L7F0B833C: +/* 0ECE6C 7F0B833C 8C4D0008 */ lw $t5, 8($v0) +.L7F0B8340: +/* 0ECE70 7F0B8340 26100001 */ addiu $s0, $s0, 1 +/* 0ECE74 7F0B8344 24630008 */ addiu $v1, $v1, 8 +/* 0ECE78 7F0B8348 15A0FFEA */ bnez $t5, .L7F0B82F4 +/* 0ECE7C 7F0B834C 24420008 */ addiu $v0, $v0, 8 +/* 0ECE80 7F0B8350 02401025 */ move $v0, $s2 +.L7F0B8354: +/* 0ECE84 7F0B8354 8FBF0034 */ lw $ra, 0x34($sp) +/* 0ECE88 7F0B8358 8FB00020 */ lw $s0, 0x20($sp) +/* 0ECE8C 7F0B835C 8FB10024 */ lw $s1, 0x24($sp) +/* 0ECE90 7F0B8360 8FB20028 */ lw $s2, 0x28($sp) +/* 0ECE94 7F0B8364 8FB3002C */ lw $s3, 0x2c($sp) +/* 0ECE98 7F0B8368 8FB40030 */ lw $s4, 0x30($sp) +/* 0ECE9C 7F0B836C 03E00008 */ jr $ra +/* 0ECEA0 7F0B8370 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + +#ifdef NONMATCHING +s32 push_arg_to_table(s32 arg0) { + // Node 0 + *(&D_800448A8 + (D_800448F8 * 4)) = arg0; + D_800448F8 = (s32) ((s32) (D_800448F8 + 1) % 0x14); + return arg0; +} +#else +GLOBAL_ASM( +.text +glabel push_arg_to_table +/* 0ECEA4 7F0B8374 3C058004 */ lui $a1, %hi(D_800448F8) +/* 0ECEA8 7F0B8378 24A548F8 */ addiu $a1, %lo(D_800448F8) # addiu $a1, $a1, 0x48f8 +/* 0ECEAC 7F0B837C 8CA30000 */ lw $v1, ($a1) +/* 0ECEB0 7F0B8380 3C018004 */ lui $at, %hi(D_800448A8) +/* 0ECEB4 7F0B8384 00801025 */ move $v0, $a0 +/* 0ECEB8 7F0B8388 00037080 */ sll $t6, $v1, 2 +/* 0ECEBC 7F0B838C 002E0821 */ addu $at, $at, $t6 +/* 0ECEC0 7F0B8390 AC2448A8 */ sw $a0, %lo(D_800448A8)($at) +/* 0ECEC4 7F0B8394 24010014 */ li $at, 20 +/* 0ECEC8 7F0B8398 246F0001 */ addiu $t7, $v1, 1 +/* 0ECECC 7F0B839C 01E1001A */ div $zero, $t7, $at +/* 0ECED0 7F0B83A0 0000C010 */ mfhi $t8 +/* 0ECED4 7F0B83A4 ACB80000 */ sw $t8, ($a1) +/* 0ECED8 7F0B83A8 03E00008 */ jr $ra +/* 0ECEDC 7F0B83AC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void pull_arg_from_stack(void) { + s32 temp_hi; + + // Node 0 + temp_hi = ((s32) (D_800448F8 + 0x13) % 0x14); + D_800448F8 = temp_hi; + return *(&D_800448A8 + (temp_hi * 4)); +} +#else +GLOBAL_ASM( +.text +glabel pull_arg_from_stack +/* 0ECEE0 7F0B83B0 3C048004 */ lui $a0, %hi(D_800448F8) +/* 0ECEE4 7F0B83B4 248448F8 */ addiu $a0, %lo(D_800448F8) # addiu $a0, $a0, 0x48f8 +/* 0ECEE8 7F0B83B8 8C8E0000 */ lw $t6, ($a0) +/* 0ECEEC 7F0B83BC 24010014 */ li $at, 20 +/* 0ECEF0 7F0B83C0 3C038004 */ lui $v1, %hi(D_800448A8) +/* 0ECEF4 7F0B83C4 25CF0013 */ addiu $t7, $t6, 0x13 +/* 0ECEF8 7F0B83C8 01E1001A */ div $zero, $t7, $at +/* 0ECEFC 7F0B83CC 0000C010 */ mfhi $t8 +/* 0ECF00 7F0B83D0 00184080 */ sll $t0, $t8, 2 +/* 0ECF04 7F0B83D4 00681821 */ addu $v1, $v1, $t0 +/* 0ECF08 7F0B83D8 AC980000 */ sw $t8, ($a0) +/* 0ECF0C 7F0B83DC 03E00008 */ jr $ra +/* 0ECF10 7F0B83E0 8C6248A8 */ lw $v0, %lo(D_800448A8)($v1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B83E4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B83E4 +/* 0ECF14 7F0B83E4 3C0E8004 */ lui $t6, %hi(D_800448F8) +/* 0ECF18 7F0B83E8 8DCE48F8 */ lw $t6, %lo(D_800448F8)($t6) +/* 0ECF1C 7F0B83EC 24010014 */ li $at, 20 +/* 0ECF20 7F0B83F0 3C028004 */ lui $v0, %hi(D_800448A8) +/* 0ECF24 7F0B83F4 01C47823 */ subu $t7, $t6, $a0 +/* 0ECF28 7F0B83F8 25F80013 */ addiu $t8, $t7, 0x13 +/* 0ECF2C 7F0B83FC 0301001A */ div $zero, $t8, $at +/* 0ECF30 7F0B8400 0000C810 */ mfhi $t9 +/* 0ECF34 7F0B8404 00194080 */ sll $t0, $t9, 2 +/* 0ECF38 7F0B8408 00481021 */ addu $v0, $v0, $t0 +/* 0ECF3C 7F0B840C 03E00008 */ jr $ra +/* 0ECF40 7F0B8410 8C4248A8 */ lw $v0, %lo(D_800448A8)($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void parse_global_vis_command_list(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80058C80*/ +glabel jpt_80058C80 +.word if_statement +.word dont_exec_commands_even_on_return +.word endif_continue_exec +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word if_statement_pull_from_stack +.word toggle_exec_vs_ro +.word endif + +/*D:80058CB4*/ +glabel vis_command_jpt +.word break +.word push_to_stack +.word pull_from_stack +.word and_merge_last_two_on_stack +.word or_merge_last_two_on_stack +.word not_merge_last_two_on_stack +.word carrot_merge_last_two_on_stack +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word push_tf_if_in_range_rooms +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word invalid_type_terminate +.word force_visible +.word match_portal_vis +.word add_visible_room +.word remove_vis +.word visible_if_seen_through_portal +.word not_visible_if_seen_through_portal +.word disable_room +.word disable_room_range +.word preload_room +.word preload_room_range +.text +glabel parse_global_vis_command_list +/* 0ECF44 7F0B8414 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0ECF48 7F0B8418 AFB30024 */ sw $s3, 0x24($sp) +/* 0ECF4C 7F0B841C AFB20020 */ sw $s2, 0x20($sp) +/* 0ECF50 7F0B8420 AFB1001C */ sw $s1, 0x1c($sp) +/* 0ECF54 7F0B8424 3C018008 */ lui $at, %hi(dword_CODE_bss_80081600 + 0x10) +/* 0ECF58 7F0B8428 00808825 */ move $s1, $a0 +/* 0ECF5C 7F0B842C 00A09025 */ move $s2, $a1 +/* 0ECF60 7F0B8430 AFBF003C */ sw $ra, 0x3c($sp) +/* 0ECF64 7F0B8434 AFBE0038 */ sw $fp, 0x38($sp) +/* 0ECF68 7F0B8438 AFB70034 */ sw $s7, 0x34($sp) +/* 0ECF6C 7F0B843C AFB60030 */ sw $s6, 0x30($sp) +/* 0ECF70 7F0B8440 AFB5002C */ sw $s5, 0x2c($sp) +/* 0ECF74 7F0B8444 AFB40028 */ sw $s4, 0x28($sp) +/* 0ECF78 7F0B8448 AFB00018 */ sw $s0, 0x18($sp) +/* 0ECF7C 7F0B844C 24130001 */ li $s3, 1 +/* 0ECF80 7F0B8450 14800003 */ bnez $a0, .L7F0B8460 +/* 0ECF84 7F0B8454 AC201610 */ sw $zero, %lo(dword_CODE_bss_80081600 + 0x10)($at) +/* 0ECF88 7F0B8458 10000166 */ b .L7F0B89F4 +/* 0ECF8C 7F0B845C 00801025 */ move $v0, $a0 +.L7F0B8460: +/* 0ECF90 7F0B8460 3C1E8008 */ lui $fp, %hi(pPlayer) +/* 0ECF94 7F0B8464 3C168008 */ lui $s6, %hi(dword_CODE_bss_80081600) +/* 0ECF98 7F0B8468 3C148004 */ lui $s4, %hi(current_visibility) +/* 0ECF9C 7F0B846C 269448FC */ addiu $s4, %lo(current_visibility) # addiu $s4, $s4, 0x48fc +/* 0ECFA0 7F0B8470 26D61600 */ addiu $s6, %lo(dword_CODE_bss_80081600) # addiu $s6, $s6, 0x1600 +/* 0ECFA4 7F0B8474 27DEA0B0 */ addiu $fp, %lo(pPlayer) # addiu $fp, $fp, -0x5f50 +/* 0ECFA8 7F0B8478 24170001 */ li $s7, 1 +/* 0ECFAC 7F0B847C 24150001 */ li $s5, 1 +.L7F0B8480: +/* 0ECFB0 7F0B8480 92240000 */ lbu $a0, ($s1) +.L7F0B8484: +/* 0ECFB4 7F0B8484 28810028 */ slti $at, $a0, 0x28 +/* 0ECFB8 7F0B8488 14200009 */ bnez $at, .L7F0B84B0 +/* 0ECFBC 7F0B848C 248EFFB0 */ addiu $t6, $a0, -0x50 +/* 0ECFC0 7F0B8490 2DC1000D */ sltiu $at, $t6, 0xd +/* 0ECFC4 7F0B8494 10200156 */ beqz $at, .L7F0B89F0 +/* 0ECFC8 7F0B8498 000E7080 */ sll $t6, $t6, 2 +/* 0ECFCC 7F0B849C 3C018006 */ lui $at, %hi(jpt_80058C80) +/* 0ECFD0 7F0B84A0 002E0821 */ addu $at, $at, $t6 +/* 0ECFD4 7F0B84A4 8C2E8C80 */ lw $t6, %lo(jpt_80058C80)($at) +/* 0ECFD8 7F0B84A8 01C00008 */ jr $t6 +/* 0ECFDC 7F0B84AC 00000000 */ nop +.L7F0B84B0: +/* 0ECFE0 7F0B84B0 2C810028 */ sltiu $at, $a0, 0x28 +/* 0ECFE4 7F0B84B4 1020014E */ beqz $at, .L7F0B89F0 +/* 0ECFE8 7F0B84B8 00047880 */ sll $t7, $a0, 2 +/* 0ECFEC 7F0B84BC 3C018006 */ lui $at, %hi(vis_command_jpt) +/* 0ECFF0 7F0B84C0 002F0821 */ addu $at, $at, $t7 +/* 0ECFF4 7F0B84C4 8C2F8CB4 */ lw $t7, %lo(vis_command_jpt)($at) +/* 0ECFF8 7F0B84C8 01E00008 */ jr $t7 +/* 0ECFFC 7F0B84CC 00000000 */ nop +break: +/* 0ED000 7F0B84D0 10000148 */ b .L7F0B89F4 +/* 0ED004 7F0B84D4 02201025 */ move $v0, $s1 +push_to_stack: +/* 0ED008 7F0B84D8 52400004 */ beql $s2, $zero, .L7F0B84EC +/* 0ED00C 7F0B84DC 92380001 */ lbu $t8, 1($s1) +/* 0ED010 7F0B84E0 0FC2E0DD */ jal push_arg_to_table +/* 0ED014 7F0B84E4 8E240004 */ lw $a0, 4($s1) +/* 0ED018 7F0B84E8 92380001 */ lbu $t8, 1($s1) +.L7F0B84EC: +/* 0ED01C 7F0B84EC 0018C8C0 */ sll $t9, $t8, 3 +/* 0ED020 7F0B84F0 1000FFE3 */ b .L7F0B8480 +/* 0ED024 7F0B84F4 02398821 */ addu $s1, $s1, $t9 +pull_from_stack: +/* 0ED028 7F0B84F8 52400004 */ beql $s2, $zero, .L7F0B850C +/* 0ED02C 7F0B84FC 92280001 */ lbu $t0, 1($s1) +/* 0ED030 7F0B8500 0FC2E0EC */ jal pull_arg_from_stack +/* 0ED034 7F0B8504 00000000 */ nop +/* 0ED038 7F0B8508 92280001 */ lbu $t0, 1($s1) +.L7F0B850C: +/* 0ED03C 7F0B850C 000848C0 */ sll $t1, $t0, 3 +/* 0ED040 7F0B8510 1000FFDB */ b .L7F0B8480 +/* 0ED044 7F0B8514 02298821 */ addu $s1, $s1, $t1 +and_merge_last_two_on_stack: +/* 0ED048 7F0B8518 52400008 */ beql $s2, $zero, .L7F0B853C +/* 0ED04C 7F0B851C 922A0001 */ lbu $t2, 1($s1) +/* 0ED050 7F0B8520 0FC2E0EC */ jal pull_arg_from_stack +/* 0ED054 7F0B8524 00000000 */ nop +/* 0ED058 7F0B8528 0FC2E0EC */ jal pull_arg_from_stack +/* 0ED05C 7F0B852C 00408025 */ move $s0, $v0 +/* 0ED060 7F0B8530 0FC2E0DD */ jal push_arg_to_table +/* 0ED064 7F0B8534 00502024 */ and $a0, $v0, $s0 +/* 0ED068 7F0B8538 922A0001 */ lbu $t2, 1($s1) +.L7F0B853C: +/* 0ED06C 7F0B853C 000A58C0 */ sll $t3, $t2, 3 +/* 0ED070 7F0B8540 1000FFCF */ b .L7F0B8480 +/* 0ED074 7F0B8544 022B8821 */ addu $s1, $s1, $t3 +or_merge_last_two_on_stack: +/* 0ED078 7F0B8548 52400008 */ beql $s2, $zero, .L7F0B856C +/* 0ED07C 7F0B854C 922C0001 */ lbu $t4, 1($s1) +/* 0ED080 7F0B8550 0FC2E0EC */ jal pull_arg_from_stack +/* 0ED084 7F0B8554 00000000 */ nop +/* 0ED088 7F0B8558 0FC2E0EC */ jal pull_arg_from_stack +/* 0ED08C 7F0B855C 00408025 */ move $s0, $v0 +/* 0ED090 7F0B8560 0FC2E0DD */ jal push_arg_to_table +/* 0ED094 7F0B8564 00502025 */ or $a0, $v0, $s0 +/* 0ED098 7F0B8568 922C0001 */ lbu $t4, 1($s1) +.L7F0B856C: +/* 0ED09C 7F0B856C 000C68C0 */ sll $t5, $t4, 3 +/* 0ED0A0 7F0B8570 1000FFC3 */ b .L7F0B8480 +/* 0ED0A4 7F0B8574 022D8821 */ addu $s1, $s1, $t5 +not_merge_last_two_on_stack: +/* 0ED0A8 7F0B8578 52400006 */ beql $s2, $zero, .L7F0B8594 +/* 0ED0AC 7F0B857C 922E0001 */ lbu $t6, 1($s1) +/* 0ED0B0 7F0B8580 0FC2E0EC */ jal pull_arg_from_stack +/* 0ED0B4 7F0B8584 00000000 */ nop +/* 0ED0B8 7F0B8588 0FC2E0DD */ jal push_arg_to_table +/* 0ED0BC 7F0B858C 2C440001 */ sltiu $a0, $v0, 1 +/* 0ED0C0 7F0B8590 922E0001 */ lbu $t6, 1($s1) +.L7F0B8594: +/* 0ED0C4 7F0B8594 000E78C0 */ sll $t7, $t6, 3 +/* 0ED0C8 7F0B8598 1000FFB9 */ b .L7F0B8480 +/* 0ED0CC 7F0B859C 022F8821 */ addu $s1, $s1, $t7 +carrot_merge_last_two_on_stack: +/* 0ED0D0 7F0B85A0 52400008 */ beql $s2, $zero, .L7F0B85C4 +/* 0ED0D4 7F0B85A4 92380001 */ lbu $t8, 1($s1) +/* 0ED0D8 7F0B85A8 0FC2E0EC */ jal pull_arg_from_stack +/* 0ED0DC 7F0B85AC 00000000 */ nop +/* 0ED0E0 7F0B85B0 0FC2E0EC */ jal pull_arg_from_stack +/* 0ED0E4 7F0B85B4 00408025 */ move $s0, $v0 +/* 0ED0E8 7F0B85B8 0FC2E0DD */ jal push_arg_to_table +/* 0ED0EC 7F0B85BC 00502026 */ xor $a0, $v0, $s0 +/* 0ED0F0 7F0B85C0 92380001 */ lbu $t8, 1($s1) +.L7F0B85C4: +/* 0ED0F4 7F0B85C4 0018C8C0 */ sll $t9, $t8, 3 +/* 0ED0F8 7F0B85C8 1000FFAD */ b .L7F0B8480 +/* 0ED0FC 7F0B85CC 02398821 */ addu $s1, $s1, $t9 +push_tf_if_in_range_rooms: +/* 0ED100 7F0B85D0 1240000C */ beqz $s2, .L7F0B8604 +/* 0ED104 7F0B85D4 3C028004 */ lui $v0, %hi(current_room_maybe) +/* 0ED108 7F0B85D8 8C424838 */ lw $v0, %lo(current_room_maybe)($v0) +/* 0ED10C 7F0B85DC 8E28000C */ lw $t0, 0xc($s1) +/* 0ED110 7F0B85E0 0048202A */ slt $a0, $v0, $t0 +/* 0ED114 7F0B85E4 38840001 */ xori $a0, $a0, 1 +/* 0ED118 7F0B85E8 10800004 */ beqz $a0, .L7F0B85FC +/* 0ED11C 7F0B85EC 00000000 */ nop +/* 0ED120 7F0B85F0 8E290014 */ lw $t1, 0x14($s1) +/* 0ED124 7F0B85F4 0122202A */ slt $a0, $t1, $v0 +/* 0ED128 7F0B85F8 38840001 */ xori $a0, $a0, 1 +.L7F0B85FC: +/* 0ED12C 7F0B85FC 0FC2E0DD */ jal push_arg_to_table +/* 0ED130 7F0B8600 00000000 */ nop +.L7F0B8604: +/* 0ED134 7F0B8604 922A0001 */ lbu $t2, 1($s1) +/* 0ED138 7F0B8608 000A58C0 */ sll $t3, $t2, 3 +/* 0ED13C 7F0B860C 1000FF9C */ b .L7F0B8480 +/* 0ED140 7F0B8610 022B8821 */ addu $s1, $s1, $t3 +force_visible: +/* 0ED144 7F0B8614 5240000C */ beql $s2, $zero, .L7F0B8648 +/* 0ED148 7F0B8618 922C0001 */ lbu $t4, 1($s1) +/* 0ED14C 7F0B861C 8FC20000 */ lw $v0, ($fp) +/* 0ED150 7F0B8620 C4441118 */ lwc1 $f4, 0x1118($v0) +/* 0ED154 7F0B8624 E6C40000 */ swc1 $f4, ($s6) +/* 0ED158 7F0B8628 C446111C */ lwc1 $f6, 0x111c($v0) +/* 0ED15C 7F0B862C E6C60004 */ swc1 $f6, 4($s6) +/* 0ED160 7F0B8630 C4481120 */ lwc1 $f8, 0x1120($v0) +/* 0ED164 7F0B8634 E6C80008 */ swc1 $f8, 8($s6) +/* 0ED168 7F0B8638 C44A1124 */ lwc1 $f10, 0x1124($v0) +/* 0ED16C 7F0B863C AE800000 */ sw $zero, ($s4) +/* 0ED170 7F0B8640 E6CA000C */ swc1 $f10, 0xc($s6) +/* 0ED174 7F0B8644 922C0001 */ lbu $t4, 1($s1) +.L7F0B8648: +/* 0ED178 7F0B8648 000C68C0 */ sll $t5, $t4, 3 +/* 0ED17C 7F0B864C 1000FF8C */ b .L7F0B8480 +/* 0ED180 7F0B8650 022D8821 */ addu $s1, $s1, $t5 +match_portal_vis: +/* 0ED184 7F0B8654 12400010 */ beqz $s2, .L7F0B8698 +/* 0ED188 7F0B8658 02C02825 */ move $a1, $s6 +/* 0ED18C 7F0B865C 0FC2D619 */ jal sub_GAME_7F0B5864 +/* 0ED190 7F0B8660 8E24000C */ lw $a0, 0xc($s1) +/* 0ED194 7F0B8664 54400004 */ bnezl $v0, .L7F0B8678 +/* 0ED198 7F0B8668 8FC50000 */ lw $a1, ($fp) +/* 0ED19C 7F0B866C 1000000A */ b .L7F0B8698 +/* 0ED1A0 7F0B8670 AE970000 */ sw $s7, ($s4) +/* 0ED1A4 7F0B8674 8FC50000 */ lw $a1, ($fp) +.L7F0B8678: +/* 0ED1A8 7F0B8678 02C02025 */ move $a0, $s6 +/* 0ED1AC 7F0B867C 0FC2D6F7 */ jal vis_is_inline_of_sight +/* 0ED1B0 7F0B8680 24A51118 */ addiu $a1, $a1, 0x1118 +/* 0ED1B4 7F0B8684 54400004 */ bnezl $v0, .L7F0B8698 +/* 0ED1B8 7F0B8688 AE800000 */ sw $zero, ($s4) +/* 0ED1BC 7F0B868C 10000002 */ b .L7F0B8698 +/* 0ED1C0 7F0B8690 AE970000 */ sw $s7, ($s4) +/* 0ED1C4 7F0B8694 AE800000 */ sw $zero, ($s4) +.L7F0B8698: +/* 0ED1C8 7F0B8698 922E0001 */ lbu $t6, 1($s1) +/* 0ED1CC 7F0B869C 000E78C0 */ sll $t7, $t6, 3 +/* 0ED1D0 7F0B86A0 1000FF77 */ b .L7F0B8480 +/* 0ED1D4 7F0B86A4 022F8821 */ addu $s1, $s1, $t7 +visible_if_seen_through_portal: +/* 0ED1D8 7F0B86A8 12400016 */ beqz $s2, .L7F0B8704 +/* 0ED1DC 7F0B86AC 27A50068 */ addiu $a1, $sp, 0x68 +/* 0ED1E0 7F0B86B0 0FC2D619 */ jal sub_GAME_7F0B5864 +/* 0ED1E4 7F0B86B4 8E24000C */ lw $a0, 0xc($s1) +/* 0ED1E8 7F0B86B8 50400013 */ beql $v0, $zero, .L7F0B8708 +/* 0ED1EC 7F0B86BC 92390001 */ lbu $t9, 1($s1) +/* 0ED1F0 7F0B86C0 8FC50000 */ lw $a1, ($fp) +/* 0ED1F4 7F0B86C4 27A40068 */ addiu $a0, $sp, 0x68 +/* 0ED1F8 7F0B86C8 0FC2D6F7 */ jal vis_is_inline_of_sight +/* 0ED1FC 7F0B86CC 24A51118 */ addiu $a1, $a1, 0x1118 +/* 0ED200 7F0B86D0 5040000D */ beql $v0, $zero, .L7F0B8708 +/* 0ED204 7F0B86D4 92390001 */ lbu $t9, 1($s1) +/* 0ED208 7F0B86D8 8E980000 */ lw $t8, ($s4) +/* 0ED20C 7F0B86DC 27A50068 */ addiu $a1, $sp, 0x68 +/* 0ED210 7F0B86E0 02C02025 */ move $a0, $s6 +/* 0ED214 7F0B86E4 13000005 */ beqz $t8, .L7F0B86FC +/* 0ED218 7F0B86E8 00000000 */ nop +/* 0ED21C 7F0B86EC 0FC2D756 */ jal copy_4_floats_a1_to_a0 +/* 0ED220 7F0B86F0 02C02025 */ move $a0, $s6 +/* 0ED224 7F0B86F4 10000003 */ b .L7F0B8704 +/* 0ED228 7F0B86F8 AE800000 */ sw $zero, ($s4) +.L7F0B86FC: +/* 0ED22C 7F0B86FC 0FC2D730 */ jal sub_GAME_7F0B5CC0 +/* 0ED230 7F0B8700 27A50068 */ addiu $a1, $sp, 0x68 +.L7F0B8704: +/* 0ED234 7F0B8704 92390001 */ lbu $t9, 1($s1) +.L7F0B8708: +/* 0ED238 7F0B8708 001940C0 */ sll $t0, $t9, 3 +/* 0ED23C 7F0B870C 1000FF5C */ b .L7F0B8480 +/* 0ED240 7F0B8710 02288821 */ addu $s1, $s1, $t0 +not_visible_if_seen_through_portal: +/* 0ED244 7F0B8714 52400019 */ beql $s2, $zero, .L7F0B877C +/* 0ED248 7F0B8718 922A0001 */ lbu $t2, 1($s1) +/* 0ED24C 7F0B871C 8E890000 */ lw $t1, ($s4) +/* 0ED250 7F0B8720 27A50058 */ addiu $a1, $sp, 0x58 +/* 0ED254 7F0B8724 55200015 */ bnezl $t1, .L7F0B877C +/* 0ED258 7F0B8728 922A0001 */ lbu $t2, 1($s1) +/* 0ED25C 7F0B872C 0FC2D619 */ jal sub_GAME_7F0B5864 +/* 0ED260 7F0B8730 8E24000C */ lw $a0, 0xc($s1) +/* 0ED264 7F0B8734 54400004 */ bnezl $v0, .L7F0B8748 +/* 0ED268 7F0B8738 8FC50000 */ lw $a1, ($fp) +/* 0ED26C 7F0B873C 1000000E */ b .L7F0B8778 +/* 0ED270 7F0B8740 AE970000 */ sw $s7, ($s4) +/* 0ED274 7F0B8744 8FC50000 */ lw $a1, ($fp) +.L7F0B8748: +/* 0ED278 7F0B8748 27A40058 */ addiu $a0, $sp, 0x58 +/* 0ED27C 7F0B874C 0FC2D6F7 */ jal vis_is_inline_of_sight +/* 0ED280 7F0B8750 24A51118 */ addiu $a1, $a1, 0x1118 +/* 0ED284 7F0B8754 14400003 */ bnez $v0, .L7F0B8764 +/* 0ED288 7F0B8758 02C02025 */ move $a0, $s6 +/* 0ED28C 7F0B875C 10000006 */ b .L7F0B8778 +/* 0ED290 7F0B8760 AE970000 */ sw $s7, ($s4) +.L7F0B8764: +/* 0ED294 7F0B8764 0FC2D6F7 */ jal vis_is_inline_of_sight +/* 0ED298 7F0B8768 27A50058 */ addiu $a1, $sp, 0x58 +/* 0ED29C 7F0B876C 54400003 */ bnezl $v0, .L7F0B877C +/* 0ED2A0 7F0B8770 922A0001 */ lbu $t2, 1($s1) +/* 0ED2A4 7F0B8774 AE970000 */ sw $s7, ($s4) +.L7F0B8778: +/* 0ED2A8 7F0B8778 922A0001 */ lbu $t2, 1($s1) +.L7F0B877C: +/* 0ED2AC 7F0B877C 000A58C0 */ sll $t3, $t2, 3 +/* 0ED2B0 7F0B8780 1000FF3F */ b .L7F0B8480 +/* 0ED2B4 7F0B8784 022B8821 */ addu $s1, $s1, $t3 +add_visible_room: +/* 0ED2B8 7F0B8788 52400017 */ beql $s2, $zero, .L7F0B87E8 +/* 0ED2BC 7F0B878C 922F0001 */ lbu $t7, 1($s1) +/* 0ED2C0 7F0B8790 8E8C0000 */ lw $t4, ($s4) +/* 0ED2C4 7F0B8794 02C02825 */ move $a1, $s6 +/* 0ED2C8 7F0B8798 55800013 */ bnezl $t4, .L7F0B87E8 +/* 0ED2CC 7F0B879C 922F0001 */ lbu $t7, 1($s1) +/* 0ED2D0 7F0B87A0 0FC2D482 */ jal sub_GAME_7F0B5208 +/* 0ED2D4 7F0B87A4 8E24000C */ lw $a0, 0xc($s1) +/* 0ED2D8 7F0B87A8 1040000E */ beqz $v0, .L7F0B87E4 +/* 0ED2DC 7F0B87AC 00002825 */ move $a1, $zero +/* 0ED2E0 7F0B87B0 8E24000C */ lw $a0, 0xc($s1) +/* 0ED2E4 7F0B87B4 02C03025 */ move $a2, $s6 +/* 0ED2E8 7F0B87B8 0FC2CE6F */ jal sub_GAME_7F0B39BC +/* 0ED2EC 7F0B87BC 00003825 */ move $a3, $zero +/* 0ED2F0 7F0B87C0 3C038008 */ lui $v1, %hi(num_visible_rooms_in_cur_global_vis_packet) +/* 0ED2F4 7F0B87C4 8C63C038 */ lw $v1, %lo(num_visible_rooms_in_cur_global_vis_packet)($v1) +/* 0ED2F8 7F0B87C8 8E2D000C */ lw $t5, 0xc($s1) +/* 0ED2FC 7F0B87CC 3C018008 */ lui $at, %hi(list_visible_rooms_in_cur_global_vis_packet) +/* 0ED300 7F0B87D0 00230821 */ addu $at, $at, $v1 +/* 0ED304 7F0B87D4 A02DBFA0 */ sb $t5, %lo(list_visible_rooms_in_cur_global_vis_packet)($at) +/* 0ED308 7F0B87D8 3C018008 */ lui $at, %hi(num_visible_rooms_in_cur_global_vis_packet) +/* 0ED30C 7F0B87DC 246E0001 */ addiu $t6, $v1, 1 +/* 0ED310 7F0B87E0 AC2EC038 */ sw $t6, %lo(num_visible_rooms_in_cur_global_vis_packet)($at) +.L7F0B87E4: +/* 0ED314 7F0B87E4 922F0001 */ lbu $t7, 1($s1) +.L7F0B87E8: +/* 0ED318 7F0B87E8 000FC0C0 */ sll $t8, $t7, 3 +/* 0ED31C 7F0B87EC 1000FF24 */ b .L7F0B8480 +/* 0ED320 7F0B87F0 02388821 */ addu $s1, $s1, $t8 +disable_room: +/* 0ED324 7F0B87F4 52400009 */ beql $s2, $zero, .L7F0B881C +/* 0ED328 7F0B87F8 92290001 */ lbu $t1, 1($s1) +/* 0ED32C 7F0B87FC 8E39000C */ lw $t9, 0xc($s1) +/* 0ED330 7F0B8800 3C018004 */ lui $at, %hi(array_room_info + 0x10 +0x24) +/* 0ED334 7F0B8804 00194080 */ sll $t0, $t9, 2 +/* 0ED338 7F0B8808 01194021 */ addu $t0, $t0, $t9 +/* 0ED33C 7F0B880C 00084100 */ sll $t0, $t0, 4 +/* 0ED340 7F0B8810 00280821 */ addu $at, $at, $t0 +/* 0ED344 7F0B8814 A0351448 */ sb $s5, %lo(array_room_info + 0x10 +0x24)($at) +/* 0ED348 7F0B8818 92290001 */ lbu $t1, 1($s1) +.L7F0B881C: +/* 0ED34C 7F0B881C 000950C0 */ sll $t2, $t1, 3 +/* 0ED350 7F0B8820 1000FF17 */ b .L7F0B8480 +/* 0ED354 7F0B8824 022A8821 */ addu $s1, $s1, $t2 +disable_room_range: +/* 0ED358 7F0B8828 52400013 */ beql $s2, $zero, .L7F0B8878 +/* 0ED35C 7F0B882C 922F0001 */ lbu $t7, 1($s1) +/* 0ED360 7F0B8830 8E22000C */ lw $v0, 0xc($s1) +/* 0ED364 7F0B8834 8E2B0014 */ lw $t3, 0x14($s1) +/* 0ED368 7F0B8838 3C0D8004 */ lui $t5, %hi(array_room_info) +/* 0ED36C 7F0B883C 00026080 */ sll $t4, $v0, 2 +/* 0ED370 7F0B8840 0162082A */ slt $at, $t3, $v0 +/* 0ED374 7F0B8844 1420000B */ bnez $at, .L7F0B8874 +/* 0ED378 7F0B8848 01826021 */ addu $t4, $t4, $v0 +/* 0ED37C 7F0B884C 000C6100 */ sll $t4, $t4, 4 +/* 0ED380 7F0B8850 25AD1414 */ addiu $t5, %lo(array_room_info) # addiu $t5, $t5, 0x1414 +/* 0ED384 7F0B8854 018D1821 */ addu $v1, $t4, $t5 +/* 0ED388 7F0B8858 A0750034 */ sb $s5, 0x34($v1) +.L7F0B885C: +/* 0ED38C 7F0B885C 8E2E0014 */ lw $t6, 0x14($s1) +/* 0ED390 7F0B8860 24420001 */ addiu $v0, $v0, 1 +/* 0ED394 7F0B8864 24630050 */ addiu $v1, $v1, 0x50 +/* 0ED398 7F0B8868 01C2082A */ slt $at, $t6, $v0 +/* 0ED39C 7F0B886C 5020FFFB */ beql $at, $zero, .L7F0B885C +/* 0ED3A0 7F0B8870 A0750034 */ sb $s5, 0x34($v1) +.L7F0B8874: +/* 0ED3A4 7F0B8874 922F0001 */ lbu $t7, 1($s1) +.L7F0B8878: +/* 0ED3A8 7F0B8878 000FC0C0 */ sll $t8, $t7, 3 +/* 0ED3AC 7F0B887C 1000FF00 */ b .L7F0B8480 +/* 0ED3B0 7F0B8880 02388821 */ addu $s1, $s1, $t8 +preload_room: +/* 0ED3B4 7F0B8884 52400009 */ beql $s2, $zero, .L7F0B88AC +/* 0ED3B8 7F0B8888 92280001 */ lbu $t0, 1($s1) +/* 0ED3BC 7F0B888C 52600007 */ beql $s3, $zero, .L7F0B88AC +/* 0ED3C0 7F0B8890 92280001 */ lbu $t0, 1($s1) +/* 0ED3C4 7F0B8894 0FC2D8C5 */ jal sub_GAME_7F0B6314 +/* 0ED3C8 7F0B8898 8E24000C */ lw $a0, 0xc($s1) +/* 0ED3CC 7F0B889C 2C530001 */ sltiu $s3, $v0, 1 +/* 0ED3D0 7F0B88A0 327900FF */ andi $t9, $s3, 0xff +/* 0ED3D4 7F0B88A4 03209825 */ move $s3, $t9 +/* 0ED3D8 7F0B88A8 92280001 */ lbu $t0, 1($s1) +.L7F0B88AC: +/* 0ED3DC 7F0B88AC 000848C0 */ sll $t1, $t0, 3 +/* 0ED3E0 7F0B88B0 1000FEF3 */ b .L7F0B8480 +/* 0ED3E4 7F0B88B4 02298821 */ addu $s1, $s1, $t1 +preload_room_range: +/* 0ED3E8 7F0B88B8 52400013 */ beql $s2, $zero, .L7F0B8908 +/* 0ED3EC 7F0B88BC 922B0001 */ lbu $t3, 1($s1) +/* 0ED3F0 7F0B88C0 8E30000C */ lw $s0, 0xc($s1) +/* 0ED3F4 7F0B88C4 8E230014 */ lw $v1, 0x14($s1) +/* 0ED3F8 7F0B88C8 0070082A */ slt $at, $v1, $s0 +/* 0ED3FC 7F0B88CC 5420000E */ bnezl $at, .L7F0B8908 +/* 0ED400 7F0B88D0 922B0001 */ lbu $t3, 1($s1) +.L7F0B88D4: +/* 0ED404 7F0B88D4 52600008 */ beql $s3, $zero, .L7F0B88F8 +/* 0ED408 7F0B88D8 26100001 */ addiu $s0, $s0, 1 +/* 0ED40C 7F0B88DC 0FC2D8C5 */ jal sub_GAME_7F0B6314 +/* 0ED410 7F0B88E0 02002025 */ move $a0, $s0 +/* 0ED414 7F0B88E4 2C530001 */ sltiu $s3, $v0, 1 +/* 0ED418 7F0B88E8 326A00FF */ andi $t2, $s3, 0xff +/* 0ED41C 7F0B88EC 01409825 */ move $s3, $t2 +/* 0ED420 7F0B88F0 8E230014 */ lw $v1, 0x14($s1) +/* 0ED424 7F0B88F4 26100001 */ addiu $s0, $s0, 1 +.L7F0B88F8: +/* 0ED428 7F0B88F8 0070082A */ slt $at, $v1, $s0 +/* 0ED42C 7F0B88FC 1020FFF5 */ beqz $at, .L7F0B88D4 +/* 0ED430 7F0B8900 00000000 */ nop +/* 0ED434 7F0B8904 922B0001 */ lbu $t3, 1($s1) +.L7F0B8908: +/* 0ED438 7F0B8908 000B60C0 */ sll $t4, $t3, 3 +/* 0ED43C 7F0B890C 1000FEDC */ b .L7F0B8480 +/* 0ED440 7F0B8910 022C8821 */ addu $s1, $s1, $t4 +remove_vis: +/* 0ED444 7F0B8914 52400003 */ beql $s2, $zero, .L7F0B8924 +/* 0ED448 7F0B8918 922D0001 */ lbu $t5, 1($s1) +/* 0ED44C 7F0B891C AE970000 */ sw $s7, ($s4) +/* 0ED450 7F0B8920 922D0001 */ lbu $t5, 1($s1) +.L7F0B8924: +/* 0ED454 7F0B8924 000D70C0 */ sll $t6, $t5, 3 +/* 0ED458 7F0B8928 1000FED5 */ b .L7F0B8480 +/* 0ED45C 7F0B892C 022E8821 */ addu $s1, $s1, $t6 +if_statement: +/* 0ED460 7F0B8930 922F0001 */ lbu $t7, 1($s1) +/* 0ED464 7F0B8934 02402825 */ move $a1, $s2 +/* 0ED468 7F0B8938 000FC0C0 */ sll $t8, $t7, 3 +/* 0ED46C 7F0B893C 0FC2E105 */ jal parse_global_vis_command_list +/* 0ED470 7F0B8940 03112021 */ addu $a0, $t8, $s1 +/* 0ED474 7F0B8944 90590001 */ lbu $t9, 1($v0) +/* 0ED478 7F0B8948 001940C0 */ sll $t0, $t9, 3 +/* 0ED47C 7F0B894C 1000FECC */ b .L7F0B8480 +/* 0ED480 7F0B8950 00488821 */ addu $s1, $v0, $t0 +endif_continue_exec: +/* 0ED484 7F0B8954 92290001 */ lbu $t1, 1($s1) +/* 0ED488 7F0B8958 3C018008 */ lui $at, %hi(dword_CODE_bss_80081600 + 0x10) +/* 0ED48C 7F0B895C AC201610 */ sw $zero, %lo(dword_CODE_bss_80081600 + 0x10)($at) +/* 0ED490 7F0B8960 000950C0 */ sll $t2, $t1, 3 +/* 0ED494 7F0B8964 10000023 */ b .L7F0B89F4 +/* 0ED498 7F0B8968 022A1021 */ addu $v0, $s1, $t2 +dont_exec_commands_even_on_return: +/* 0ED49C 7F0B896C 922B0001 */ lbu $t3, 1($s1) +/* 0ED4A0 7F0B8970 0012102B */ sltu $v0, $zero, $s2 +/* 0ED4A4 7F0B8974 00009025 */ move $s2, $zero +/* 0ED4A8 7F0B8978 000B60C0 */ sll $t4, $t3, 3 +/* 0ED4AC 7F0B897C 1040FEC0 */ beqz $v0, .L7F0B8480 +/* 0ED4B0 7F0B8980 022C8821 */ addu $s1, $s1, $t4 +/* 0ED4B4 7F0B8984 3C018008 */ lui $at, %hi(dword_CODE_bss_80081600 + 0x10) +/* 0ED4B8 7F0B8988 1000FEBD */ b .L7F0B8480 +/* 0ED4BC 7F0B898C AC371610 */ sw $s7, %lo(dword_CODE_bss_80081600 + 0x10)($at) +if_statement_pull_from_stack: +/* 0ED4C0 7F0B8990 0FC2E0EC */ jal pull_arg_from_stack +/* 0ED4C4 7F0B8994 00000000 */ nop +/* 0ED4C8 7F0B8998 922D0001 */ lbu $t5, 1($s1) +/* 0ED4CC 7F0B899C 00522824 */ and $a1, $v0, $s2 +/* 0ED4D0 7F0B89A0 000D70C0 */ sll $t6, $t5, 3 +/* 0ED4D4 7F0B89A4 0FC2E105 */ jal parse_global_vis_command_list +/* 0ED4D8 7F0B89A8 01D12021 */ addu $a0, $t6, $s1 +/* 0ED4DC 7F0B89AC 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_80081600 + 0x10) +/* 0ED4E0 7F0B89B0 8DEF1610 */ lw $t7, %lo(dword_CODE_bss_80081600 + 0x10)($t7) +/* 0ED4E4 7F0B89B4 00408825 */ move $s1, $v0 +/* 0ED4E8 7F0B89B8 51E0FEB2 */ beql $t7, $zero, .L7F0B8484 +/* 0ED4EC 7F0B89BC 92240000 */ lbu $a0, ($s1) +/* 0ED4F0 7F0B89C0 1000FEAF */ b .L7F0B8480 +/* 0ED4F4 7F0B89C4 00009025 */ move $s2, $zero +toggle_exec_vs_ro: +/* 0ED4F8 7F0B89C8 92390001 */ lbu $t9, 1($s1) +/* 0ED4FC 7F0B89CC 3A580001 */ xori $t8, $s2, 1 +/* 0ED500 7F0B89D0 03009025 */ move $s2, $t8 +/* 0ED504 7F0B89D4 001940C0 */ sll $t0, $t9, 3 +/* 0ED508 7F0B89D8 1000FEA9 */ b .L7F0B8480 +/* 0ED50C 7F0B89DC 02288821 */ addu $s1, $s1, $t0 +endif: +/* 0ED510 7F0B89E0 92290001 */ lbu $t1, 1($s1) +/* 0ED514 7F0B89E4 000950C0 */ sll $t2, $t1, 3 +/* 0ED518 7F0B89E8 10000002 */ b .L7F0B89F4 +/* 0ED51C 7F0B89EC 022A1021 */ addu $v0, $s1, $t2 +invalid_type_terminate: +.L7F0B89F0: +/* 0ED520 7F0B89F0 02201025 */ move $v0, $s1 +.L7F0B89F4: +/* 0ED524 7F0B89F4 8FBF003C */ lw $ra, 0x3c($sp) +/* 0ED528 7F0B89F8 8FB00018 */ lw $s0, 0x18($sp) +/* 0ED52C 7F0B89FC 8FB1001C */ lw $s1, 0x1c($sp) +/* 0ED530 7F0B8A00 8FB20020 */ lw $s2, 0x20($sp) +/* 0ED534 7F0B8A04 8FB30024 */ lw $s3, 0x24($sp) +/* 0ED538 7F0B8A08 8FB40028 */ lw $s4, 0x28($sp) +/* 0ED53C 7F0B8A0C 8FB5002C */ lw $s5, 0x2c($sp) +/* 0ED540 7F0B8A10 8FB60030 */ lw $s6, 0x30($sp) +/* 0ED544 7F0B8A14 8FB70034 */ lw $s7, 0x34($sp) +/* 0ED548 7F0B8A18 8FBE0038 */ lw $fp, 0x38($sp) +/* 0ED54C 7F0B8A1C 03E00008 */ jr $ra +/* 0ED550 7F0B8A20 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B8A24(s32 arg0) { + // Node 0 + current_visibility = 0; + if (arg0 != 0) + { + // Node 2 + sub_GAME_7F0B83E4(0, arg0); + // Node 3 + return parse_global_vis_command_list(arg0, 1); + } + // Node 1 + return parse_global_vis_command_list(arg0, 1); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B8A24 +/* 0ED554 7F0B8A24 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0ED558 7F0B8A28 3C018004 */ lui $at, %hi(current_visibility) +/* 0ED55C 7F0B8A2C AFBF0014 */ sw $ra, 0x14($sp) +/* 0ED560 7F0B8A30 00803025 */ move $a2, $a0 +/* 0ED564 7F0B8A34 14800003 */ bnez $a0, .L7F0B8A44 +/* 0ED568 7F0B8A38 AC2048FC */ sw $zero, %lo(current_visibility)($at) +/* 0ED56C 7F0B8A3C 10000007 */ b .L7F0B8A5C +/* 0ED570 7F0B8A40 00801025 */ move $v0, $a0 +.L7F0B8A44: +/* 0ED574 7F0B8A44 00002025 */ move $a0, $zero +/* 0ED578 7F0B8A48 0FC2E0F9 */ jal sub_GAME_7F0B83E4 +/* 0ED57C 7F0B8A4C AFA60018 */ sw $a2, 0x18($sp) +/* 0ED580 7F0B8A50 8FA40018 */ lw $a0, 0x18($sp) +/* 0ED584 7F0B8A54 0FC2E105 */ jal parse_global_vis_command_list +/* 0ED588 7F0B8A58 24050001 */ li $a1, 1 +.L7F0B8A5C: +/* 0ED58C 7F0B8A5C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0ED590 7F0B8A60 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0ED594 7F0B8A64 03E00008 */ jr $ra +/* 0ED598 7F0B8A68 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B8A6C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B8A6C +/* 0ED59C 7F0B8A6C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0ED5A0 7F0B8A70 AFBF0024 */ sw $ra, 0x24($sp) +/* 0ED5A4 7F0B8A74 AFB10020 */ sw $s1, 0x20($sp) +/* 0ED5A8 7F0B8A78 0FC2E423 */ jal sub_GAME_7F0B908C +/* 0ED5AC 7F0B8A7C AFB0001C */ sw $s0, 0x1c($sp) +/* 0ED5B0 7F0B8A80 3C118008 */ lui $s1, %hi(pPlayer) +/* 0ED5B4 7F0B8A84 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 0ED5B8 7F0B8A88 8E220000 */ lw $v0, ($s1) +/* 0ED5BC 7F0B8A8C C4441118 */ lwc1 $f4, 0x1118($v0) +/* 0ED5C0 7F0B8A90 E7A40050 */ swc1 $f4, 0x50($sp) +/* 0ED5C4 7F0B8A94 C446111C */ lwc1 $f6, 0x111c($v0) +/* 0ED5C8 7F0B8A98 E7A60054 */ swc1 $f6, 0x54($sp) +/* 0ED5CC 7F0B8A9C C4481120 */ lwc1 $f8, 0x1120($v0) +/* 0ED5D0 7F0B8AA0 E7A80058 */ swc1 $f8, 0x58($sp) +/* 0ED5D4 7F0B8AA4 C44A1124 */ lwc1 $f10, 0x1124($v0) +/* 0ED5D8 7F0B8AA8 0FC2CEF1 */ jal sub_GAME_7F0B3BC4 +/* 0ED5DC 7F0B8AAC E7AA005C */ swc1 $f10, 0x5c($sp) +/* 0ED5E0 7F0B8AB0 3C028004 */ lui $v0, %hi(array_room_info) +/* 0ED5E4 7F0B8AB4 3C038004 */ lui $v1, %hi(MaxNumRooms) +/* 0ED5E8 7F0B8AB8 246342F4 */ addiu $v1, %lo(MaxNumRooms) # addiu $v1, $v1, 0x42f4 +/* 0ED5EC 7F0B8ABC 24421414 */ addiu $v0, %lo(array_room_info) # addiu $v0, $v0, 0x1414 +.L7F0B8AC0: +/* 0ED5F0 7F0B8AC0 24420050 */ addiu $v0, $v0, 0x50 +/* 0ED5F4 7F0B8AC4 0043082B */ sltu $at, $v0, $v1 +/* 0ED5F8 7F0B8AC8 A040FFB0 */ sb $zero, -0x50($v0) +/* 0ED5FC 7F0B8ACC A040FFB1 */ sb $zero, -0x4f($v0) +/* 0ED600 7F0B8AD0 1420FFFB */ bnez $at, .L7F0B8AC0 +/* 0ED604 7F0B8AD4 A040FFE4 */ sb $zero, -0x1c($v0) +/* 0ED608 7F0B8AD8 3C028004 */ lui $v0, %hi(D_800442FC) +/* 0ED60C 7F0B8ADC 3C038004 */ lui $v1, %hi(D_800443C4) +/* 0ED610 7F0B8AE0 246343C4 */ addiu $v1, %lo(D_800443C4) # addiu $v1, $v1, 0x43c4 +/* 0ED614 7F0B8AE4 244242FC */ addiu $v0, %lo(D_800442FC) # addiu $v0, $v0, 0x42fc +.L7F0B8AE8: +/* 0ED618 7F0B8AE8 24420004 */ addiu $v0, $v0, 4 +/* 0ED61C 7F0B8AEC A040FFFD */ sb $zero, -3($v0) +/* 0ED620 7F0B8AF0 A040FFFE */ sb $zero, -2($v0) +/* 0ED624 7F0B8AF4 A040FFFF */ sb $zero, -1($v0) +/* 0ED628 7F0B8AF8 1443FFFB */ bne $v0, $v1, .L7F0B8AE8 +/* 0ED62C 7F0B8AFC A040FFFC */ sb $zero, -4($v0) +/* 0ED630 7F0B8B00 3C028004 */ lui $v0, %hi(D_80044858) +/* 0ED634 7F0B8B04 24424858 */ addiu $v0, %lo(D_80044858) # addiu $v0, $v0, 0x4858 +/* 0ED638 7F0B8B08 8C4E0000 */ lw $t6, ($v0) +/* 0ED63C 7F0B8B0C 2401000A */ li $at, 10 +/* 0ED640 7F0B8B10 25CF0001 */ addiu $t7, $t6, 1 +/* 0ED644 7F0B8B14 01E1001A */ div $zero, $t7, $at +/* 0ED648 7F0B8B18 0000C010 */ mfhi $t8 +/* 0ED64C 7F0B8B1C AC580000 */ sw $t8, ($v0) +/* 0ED650 7F0B8B20 3C018008 */ lui $at, %hi(dword_CODE_bss_8007FF98) +/* 0ED654 7F0B8B24 AC20FF98 */ sw $zero, %lo(dword_CODE_bss_8007FF98)($at) +/* 0ED658 7F0B8B28 3C018004 */ lui $at, %hi(D_80044898) +/* 0ED65C 7F0B8B2C 0FC2DF65 */ jal sub_GAME_7F0B7D94 +/* 0ED660 7F0B8B30 AC204898 */ sw $zero, %lo(D_80044898)($at) +/* 0ED664 7F0B8B34 0FC2D45A */ jal sub_GAME_7F0B5168 +/* 0ED668 7F0B8B38 00000000 */ nop +/* 0ED66C 7F0B8B3C 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007FF90) +/* 0ED670 7F0B8B40 0FC2E289 */ jal sub_GAME_7F0B8A24 +/* 0ED674 7F0B8B44 8C84FF90 */ lw $a0, %lo(dword_CODE_bss_8007FF90)($a0) +/* 0ED678 7F0B8B48 3C028004 */ lui $v0, %hi(D_80041400) +/* 0ED67C 7F0B8B4C 8C421400 */ lw $v0, %lo(D_80041400)($v0) +/* 0ED680 7F0B8B50 24030015 */ li $v1, 21 +/* 0ED684 7F0B8B54 3C198008 */ lui $t9, %hi(ptr_bgdata_portals) +/* 0ED688 7F0B8B58 10620005 */ beq $v1, $v0, .L7F0B8B70 +/* 0ED68C 7F0B8B5C 00000000 */ nop +/* 0ED690 7F0B8B60 8F39FF80 */ lw $t9, %lo(ptr_bgdata_portals)($t9) +/* 0ED694 7F0B8B64 8F2A0000 */ lw $t2, ($t9) +/* 0ED698 7F0B8B68 15400023 */ bnez $t2, .L7F0B8BF8 +/* 0ED69C 7F0B8B6C 00000000 */ nop +.L7F0B8B70: +/* 0ED6A0 7F0B8B70 14620006 */ bne $v1, $v0, .L7F0B8B8C +/* 0ED6A4 7F0B8B74 24040009 */ li $a0, 9 +/* 0ED6A8 7F0B8B78 8E260000 */ lw $a2, ($s1) +/* 0ED6AC 7F0B8B7C 00002825 */ move $a1, $zero +/* 0ED6B0 7F0B8B80 24070001 */ li $a3, 1 +/* 0ED6B4 7F0B8B84 0FC2CE6F */ jal sub_GAME_7F0B39BC +/* 0ED6B8 7F0B8B88 24C61118 */ addiu $a2, $a2, 0x1118 +.L7F0B8B8C: +/* 0ED6BC 7F0B8B8C 3C0B8004 */ lui $t3, %hi(MaxNumRooms) +/* 0ED6C0 7F0B8B90 8D6B42F4 */ lw $t3, %lo(MaxNumRooms)($t3) +/* 0ED6C4 7F0B8B94 24100001 */ li $s0, 1 +/* 0ED6C8 7F0B8B98 29610002 */ slti $at, $t3, 2 +/* 0ED6CC 7F0B8B9C 14200012 */ bnez $at, .L7F0B8BE8 +/* 0ED6D0 7F0B8BA0 00000000 */ nop +/* 0ED6D4 7F0B8BA4 8E250000 */ lw $a1, ($s1) +.L7F0B8BA8: +/* 0ED6D8 7F0B8BA8 02002025 */ move $a0, $s0 +/* 0ED6DC 7F0B8BAC 0FC2D482 */ jal sub_GAME_7F0B5208 +/* 0ED6E0 7F0B8BB0 24A51118 */ addiu $a1, $a1, 0x1118 +/* 0ED6E4 7F0B8BB4 10400006 */ beqz $v0, .L7F0B8BD0 +/* 0ED6E8 7F0B8BB8 02002025 */ move $a0, $s0 +/* 0ED6EC 7F0B8BBC 8E260000 */ lw $a2, ($s1) +/* 0ED6F0 7F0B8BC0 00002825 */ move $a1, $zero +/* 0ED6F4 7F0B8BC4 24070001 */ li $a3, 1 +/* 0ED6F8 7F0B8BC8 0FC2CE6F */ jal sub_GAME_7F0B39BC +/* 0ED6FC 7F0B8BCC 24C61118 */ addiu $a2, $a2, 0x1118 +.L7F0B8BD0: +/* 0ED700 7F0B8BD0 3C0C8004 */ lui $t4, %hi(MaxNumRooms) +/* 0ED704 7F0B8BD4 8D8C42F4 */ lw $t4, %lo(MaxNumRooms)($t4) +/* 0ED708 7F0B8BD8 26100001 */ addiu $s0, $s0, 1 +/* 0ED70C 7F0B8BDC 020C082A */ slt $at, $s0, $t4 +/* 0ED710 7F0B8BE0 5420FFF1 */ bnezl $at, .L7F0B8BA8 +/* 0ED714 7F0B8BE4 8E250000 */ lw $a1, ($s1) +.L7F0B8BE8: +/* 0ED718 7F0B8BE8 3C048008 */ lui $a0, %hi(ptr_bgdata_portals) +/* 0ED71C 7F0B8BEC 8C84FF80 */ lw $a0, %lo(ptr_bgdata_portals)($a0) +/* 0ED720 7F0B8BF0 10000039 */ b .L7F0B8CD8 +/* 0ED724 7F0B8BF4 8C820000 */ lw $v0, ($a0) +.L7F0B8BF8: +/* 0ED728 7F0B8BF8 14620006 */ bne $v1, $v0, .L7F0B8C14 +/* 0ED72C 7F0B8BFC 24040009 */ li $a0, 9 +/* 0ED730 7F0B8C00 8E260000 */ lw $a2, ($s1) +/* 0ED734 7F0B8C04 00002825 */ move $a1, $zero +/* 0ED738 7F0B8C08 24070001 */ li $a3, 1 +/* 0ED73C 7F0B8C0C 0FC2CE6F */ jal sub_GAME_7F0B39BC +/* 0ED740 7F0B8C10 24C61118 */ addiu $a2, $a2, 0x1118 +.L7F0B8C14: +/* 0ED744 7F0B8C14 8E260000 */ lw $a2, ($s1) +/* 0ED748 7F0B8C18 3C048004 */ lui $a0, %hi(current_room_maybe) +/* 0ED74C 7F0B8C1C 8C844838 */ lw $a0, %lo(current_room_maybe)($a0) +/* 0ED750 7F0B8C20 00002825 */ move $a1, $zero +/* 0ED754 7F0B8C24 24070001 */ li $a3, 1 +/* 0ED758 7F0B8C28 0FC2CE6F */ jal sub_GAME_7F0B39BC +/* 0ED75C 7F0B8C2C 24C61118 */ addiu $a2, $a2, 0x1118 +/* 0ED760 7F0B8C30 3C048008 */ lui $a0, %hi(ptr_bgdata_portals) +/* 0ED764 7F0B8C34 8C84FF80 */ lw $a0, %lo(ptr_bgdata_portals)($a0) +/* 0ED768 7F0B8C38 00008025 */ move $s0, $zero +/* 0ED76C 7F0B8C3C 00001825 */ move $v1, $zero +/* 0ED770 7F0B8C40 8C8D0000 */ lw $t5, ($a0) +/* 0ED774 7F0B8C44 00801025 */ move $v0, $a0 +/* 0ED778 7F0B8C48 11A00016 */ beqz $t5, .L7F0B8CA4 +.L7F0B8C4C: +/* 0ED77C 7F0B8C4C 3C058004 */ lui $a1, %hi(current_room_maybe) +/* 0ED780 7F0B8C50 8CA54838 */ lw $a1, %lo(current_room_maybe)($a1) +/* 0ED784 7F0B8C54 904E0004 */ lbu $t6, 4($v0) +/* 0ED788 7F0B8C58 00002025 */ move $a0, $zero +/* 0ED78C 7F0B8C5C 02003025 */ move $a2, $s0 +/* 0ED790 7F0B8C60 10AE0003 */ beq $a1, $t6, .L7F0B8C70 +/* 0ED794 7F0B8C64 24070001 */ li $a3, 1 +/* 0ED798 7F0B8C68 904F0005 */ lbu $t7, 5($v0) +/* 0ED79C 7F0B8C6C 14AF0008 */ bne $a1, $t7, .L7F0B8C90 +.L7F0B8C70: +/* 0ED7A0 7F0B8C70 27B80050 */ addiu $t8, $sp, 0x50 +/* 0ED7A4 7F0B8C74 AFB80010 */ sw $t8, 0x10($sp) +/* 0ED7A8 7F0B8C78 0FC2DF79 */ jal sub_GAME_7F0B7DE4 +/* 0ED7AC 7F0B8C7C AFA30034 */ sw $v1, 0x34($sp) +/* 0ED7B0 7F0B8C80 3C198008 */ lui $t9, %hi(ptr_bgdata_portals) +/* 0ED7B4 7F0B8C84 8F39FF80 */ lw $t9, %lo(ptr_bgdata_portals)($t9) +/* 0ED7B8 7F0B8C88 8FA30034 */ lw $v1, 0x34($sp) +/* 0ED7BC 7F0B8C8C 03231021 */ addu $v0, $t9, $v1 +.L7F0B8C90: +/* 0ED7C0 7F0B8C90 8C4A0008 */ lw $t2, 8($v0) +/* 0ED7C4 7F0B8C94 26100001 */ addiu $s0, $s0, 1 +/* 0ED7C8 7F0B8C98 24630008 */ addiu $v1, $v1, 8 +/* 0ED7CC 7F0B8C9C 1540FFEB */ bnez $t2, .L7F0B8C4C +/* 0ED7D0 7F0B8CA0 24420008 */ addiu $v0, $v0, 8 +.L7F0B8CA4: +/* 0ED7D4 7F0B8CA4 27B00044 */ addiu $s0, $sp, 0x44 +/* 0ED7D8 7F0B8CA8 AFA00044 */ sw $zero, 0x44($sp) +/* 0ED7DC 7F0B8CAC 0FC2DFB9 */ jal sub_GAME_7F0B7EE4 +/* 0ED7E0 7F0B8CB0 02002025 */ move $a0, $s0 +/* 0ED7E4 7F0B8CB4 10400005 */ beqz $v0, .L7F0B8CCC +/* 0ED7E8 7F0B8CB8 00000000 */ nop +.L7F0B8CBC: +/* 0ED7EC 7F0B8CBC 0FC2DFB9 */ jal sub_GAME_7F0B7EE4 +/* 0ED7F0 7F0B8CC0 02002025 */ move $a0, $s0 +/* 0ED7F4 7F0B8CC4 1440FFFD */ bnez $v0, .L7F0B8CBC +/* 0ED7F8 7F0B8CC8 00000000 */ nop +.L7F0B8CCC: +/* 0ED7FC 7F0B8CCC 3C048008 */ lui $a0, %hi(ptr_bgdata_portals) +/* 0ED800 7F0B8CD0 8C84FF80 */ lw $a0, %lo(ptr_bgdata_portals)($a0) +/* 0ED804 7F0B8CD4 8C820000 */ lw $v0, ($a0) +.L7F0B8CD8: +/* 0ED808 7F0B8CD8 10400022 */ beqz $v0, .L7F0B8D64 +/* 0ED80C 7F0B8CDC 24090001 */ li $t1, 1 +/* 0ED810 7F0B8CE0 3C078004 */ lui $a3, %hi(array_room_info) +/* 0ED814 7F0B8CE4 24E71414 */ addiu $a3, %lo(array_room_info) # addiu $a3, $a3, 0x1414 +/* 0ED818 7F0B8CE8 00801025 */ move $v0, $a0 +/* 0ED81C 7F0B8CEC 24080050 */ li $t0, 80 +/* 0ED820 7F0B8CF0 90430004 */ lbu $v1, 4($v0) +.L7F0B8CF4: +/* 0ED824 7F0B8CF4 90440005 */ lbu $a0, 5($v0) +/* 0ED828 7F0B8CF8 00680019 */ multu $v1, $t0 +/* 0ED82C 7F0B8CFC 00005812 */ mflo $t3 +/* 0ED830 7F0B8D00 00EB2821 */ addu $a1, $a3, $t3 +/* 0ED834 7F0B8D04 90A60000 */ lbu $a2, ($a1) +/* 0ED838 7F0B8D08 10C00009 */ beqz $a2, .L7F0B8D30 +/* 0ED83C 7F0B8D0C 00000000 */ nop +/* 0ED840 7F0B8D10 00880019 */ multu $a0, $t0 +/* 0ED844 7F0B8D14 00006012 */ mflo $t4 +/* 0ED848 7F0B8D18 00EC1821 */ addu $v1, $a3, $t4 +/* 0ED84C 7F0B8D1C 906D0000 */ lbu $t5, ($v1) +/* 0ED850 7F0B8D20 15A00003 */ bnez $t5, .L7F0B8D30 +/* 0ED854 7F0B8D24 00000000 */ nop +/* 0ED858 7F0B8D28 1000000A */ b .L7F0B8D54 +/* 0ED85C 7F0B8D2C A0690001 */ sb $t1, 1($v1) +.L7F0B8D30: +/* 0ED860 7F0B8D30 00880019 */ multu $a0, $t0 +/* 0ED864 7F0B8D34 00007012 */ mflo $t6 +/* 0ED868 7F0B8D38 00EE7821 */ addu $t7, $a3, $t6 +/* 0ED86C 7F0B8D3C 91F80000 */ lbu $t8, ($t7) +/* 0ED870 7F0B8D40 53000005 */ beql $t8, $zero, .L7F0B8D58 +/* 0ED874 7F0B8D44 8C590008 */ lw $t9, 8($v0) +/* 0ED878 7F0B8D48 54C00003 */ bnezl $a2, .L7F0B8D58 +/* 0ED87C 7F0B8D4C 8C590008 */ lw $t9, 8($v0) +/* 0ED880 7F0B8D50 A0A90001 */ sb $t1, 1($a1) +.L7F0B8D54: +/* 0ED884 7F0B8D54 8C590008 */ lw $t9, 8($v0) +.L7F0B8D58: +/* 0ED888 7F0B8D58 24420008 */ addiu $v0, $v0, 8 +/* 0ED88C 7F0B8D5C 5720FFE5 */ bnezl $t9, .L7F0B8CF4 +/* 0ED890 7F0B8D60 90430004 */ lbu $v1, 4($v0) +.L7F0B8D64: +/* 0ED894 7F0B8D64 8FBF0024 */ lw $ra, 0x24($sp) +/* 0ED898 7F0B8D68 8FB0001C */ lw $s0, 0x1c($sp) +/* 0ED89C 7F0B8D6C 8FB10020 */ lw $s1, 0x20($sp) +/* 0ED8A0 7F0B8D70 03E00008 */ jr $ra +/* 0ED8A4 7F0B8D74 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B8D78(s32 arg0, s32 arg1) { + s32 temp_v1; + void *phi_v0; + s32 phi_v1; + s32 phi_a1; + + // Node 0 + phi_a1 = arg1; + if (D_80041400 == 0xd) + { + // Node 1 + phi_a1 = arg1; + if (NumberOfRoomsDrawn > 0) + { + // Node 2 + phi_v0 = &dword_CODE_bss_8007FFA0; + phi_v1 = 0; +loop_3: + // Node 3 + temp_v1 = (phi_v1 + 1); + if (0x23 == *phi_v0) + { + // Node 4 + phi_v0->unk4 = 0; + phi_a1 = 0x23; + } + else + { + // Node 5 + phi_v0 = (phi_v0 + 0x1c); + phi_v1 = temp_v1; + phi_a1 = 0x23; + if (temp_v1 < NumberOfRoomsDrawn) + { + goto loop_3; + } + } + } + } + // Node 6 + sub_GAME_7F0B4FB4(sub_GAME_7F0B3C8C(arg0, phi_a1, arg0)); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B8D78 +/* 0ED8A8 7F0B8D78 3C0E8004 */ lui $t6, %hi(D_80041400) +/* 0ED8AC 7F0B8D7C 8DCE1400 */ lw $t6, %lo(D_80041400)($t6) +/* 0ED8B0 7F0B8D80 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0ED8B4 7F0B8D84 2401000D */ li $at, 13 +/* 0ED8B8 7F0B8D88 AFBF0014 */ sw $ra, 0x14($sp) +/* 0ED8BC 7F0B8D8C 15C10011 */ bne $t6, $at, .L7F0B8DD4 +/* 0ED8C0 7F0B8D90 00803025 */ move $a2, $a0 +/* 0ED8C4 7F0B8D94 3C048004 */ lui $a0, %hi(NumberOfRoomsDrawn) +/* 0ED8C8 7F0B8D98 8C84483C */ lw $a0, %lo(NumberOfRoomsDrawn)($a0) +/* 0ED8CC 7F0B8D9C 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007FFA0) +/* 0ED8D0 7F0B8DA0 2442FFA0 */ addiu $v0, %lo(dword_CODE_bss_8007FFA0) # addiu $v0, $v0, -0x60 +/* 0ED8D4 7F0B8DA4 1880000B */ blez $a0, .L7F0B8DD4 +/* 0ED8D8 7F0B8DA8 00001825 */ move $v1, $zero +/* 0ED8DC 7F0B8DAC 24050023 */ li $a1, 35 +.L7F0B8DB0: +/* 0ED8E0 7F0B8DB0 8C4F0000 */ lw $t7, ($v0) +/* 0ED8E4 7F0B8DB4 24630001 */ addiu $v1, $v1, 1 +/* 0ED8E8 7F0B8DB8 0064082A */ slt $at, $v1, $a0 +/* 0ED8EC 7F0B8DBC 14AF0003 */ bne $a1, $t7, .L7F0B8DCC +/* 0ED8F0 7F0B8DC0 00000000 */ nop +/* 0ED8F4 7F0B8DC4 10000003 */ b .L7F0B8DD4 +/* 0ED8F8 7F0B8DC8 AC400004 */ sw $zero, 4($v0) +.L7F0B8DCC: +/* 0ED8FC 7F0B8DCC 1420FFF8 */ bnez $at, .L7F0B8DB0 +/* 0ED900 7F0B8DD0 2442001C */ addiu $v0, $v0, 0x1c +.L7F0B8DD4: +/* 0ED904 7F0B8DD4 0FC2CF23 */ jal sub_GAME_7F0B3C8C +/* 0ED908 7F0B8DD8 00C02025 */ move $a0, $a2 +/* 0ED90C 7F0B8DDC 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 0ED910 7F0B8DE0 00402025 */ move $a0, $v0 +/* 0ED914 7F0B8DE4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0ED918 7F0B8DE8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0ED91C 7F0B8DEC 03E00008 */ jr $ra +/* 0ED920 7F0B8DF0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B8DF4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B8DF4 +/* 0ED924 7F0B8DF4 3C088008 */ lui $t0, %hi(ptr_bgdata_portals) +/* 0ED928 7F0B8DF8 2508FF80 */ addiu $t0, %lo(ptr_bgdata_portals) # addiu $t0, $t0, -0x80 +/* 0ED92C 7F0B8DFC 8D070000 */ lw $a3, ($t0) +/* 0ED930 7F0B8E00 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 0ED934 7F0B8E04 AFB1000C */ sw $s1, 0xc($sp) +/* 0ED938 7F0B8E08 AFB00008 */ sw $s0, 8($sp) +/* 0ED93C 7F0B8E0C 8CEE0000 */ lw $t6, ($a3) +/* 0ED940 7F0B8E10 00A08025 */ move $s0, $a1 +/* 0ED944 7F0B8E14 00C08825 */ move $s1, $a2 +/* 0ED948 7F0B8E18 00001825 */ move $v1, $zero +/* 0ED94C 7F0B8E1C 11C00019 */ beqz $t6, .L7F0B8E84 +/* 0ED950 7F0B8E20 00001025 */ move $v0, $zero +/* 0ED954 7F0B8E24 00002825 */ move $a1, $zero +/* 0ED958 7F0B8E28 00E03025 */ move $a2, $a3 +/* 0ED95C 7F0B8E2C 90CF0004 */ lbu $t7, 4($a2) +.L7F0B8E30: +/* 0ED960 7F0B8E30 0003C880 */ sll $t9, $v1, 2 +/* 0ED964 7F0B8E34 02194821 */ addu $t1, $s0, $t9 +/* 0ED968 7F0B8E38 508F0005 */ beql $a0, $t7, .L7F0B8E50 +/* 0ED96C 7F0B8E3C AD220000 */ sw $v0, ($t1) +/* 0ED970 7F0B8E40 90D80005 */ lbu $t8, 5($a2) +/* 0ED974 7F0B8E44 54980004 */ bnel $a0, $t8, .L7F0B8E58 +/* 0ED978 7F0B8E48 0071082A */ slt $at, $v1, $s1 +/* 0ED97C 7F0B8E4C AD220000 */ sw $v0, ($t1) +.L7F0B8E50: +/* 0ED980 7F0B8E50 24630001 */ addiu $v1, $v1, 1 +/* 0ED984 7F0B8E54 0071082A */ slt $at, $v1, $s1 +.L7F0B8E58: +/* 0ED988 7F0B8E58 54200004 */ bnezl $at, .L7F0B8E6C +/* 0ED98C 7F0B8E5C 8D0A0000 */ lw $t2, ($t0) +/* 0ED990 7F0B8E60 10000009 */ b .L7F0B8E88 +/* 0ED994 7F0B8E64 00601025 */ move $v0, $v1 +/* 0ED998 7F0B8E68 8D0A0000 */ lw $t2, ($t0) +.L7F0B8E6C: +/* 0ED99C 7F0B8E6C 24A50008 */ addiu $a1, $a1, 8 +/* 0ED9A0 7F0B8E70 24420001 */ addiu $v0, $v0, 1 +/* 0ED9A4 7F0B8E74 01453021 */ addu $a2, $t2, $a1 +/* 0ED9A8 7F0B8E78 8CCB0000 */ lw $t3, ($a2) +/* 0ED9AC 7F0B8E7C 5560FFEC */ bnezl $t3, .L7F0B8E30 +/* 0ED9B0 7F0B8E80 90CF0004 */ lbu $t7, 4($a2) +.L7F0B8E84: +/* 0ED9B4 7F0B8E84 00601025 */ move $v0, $v1 +.L7F0B8E88: +/* 0ED9B8 7F0B8E88 8FB00008 */ lw $s0, 8($sp) +/* 0ED9BC 7F0B8E8C 8FB1000C */ lw $s1, 0xc($sp) +/* 0ED9C0 7F0B8E90 03E00008 */ jr $ra +/* 0ED9C4 7F0B8E94 27BD0010 */ addiu $sp, $sp, 0x10 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B8E98(s32 arg0, s32 arg1) { + s32 temp_v1; + void *temp_v0; + s32 temp_at; + void *phi_a2; + void *phi_v0; + s32 phi_v1; + s32 phi_v1_2; + + // Node 0 + phi_v1_2 = 0; + if (num_visible_rooms_in_cur_global_vis_packet > 0) + { + // Node 1 + phi_v1_2 = 0; + if (arg1 > 0) + { + // Node 2 + phi_a2 = (0 + &list_visible_rooms_in_cur_global_vis_packet); + phi_v0 = (arg0 + (0 * 4)); + phi_v1 = 0; +loop_3: + // Node 3 + temp_v1 = (phi_v1 + 1); + temp_v0 = (phi_v0 + 4); + temp_v0->unk-4 = (?32) *phi_a2; + temp_at = (temp_v1 < arg1); + phi_v1_2 = temp_v1; + if (temp_at != 0) + { + // Node 4 + phi_a2 = (phi_a2 + 1); + phi_v0 = temp_v0; + phi_v1 = temp_v1; + phi_v1_2 = temp_v1; + if (temp_at != 0) + { + goto loop_3; + } + } + } + } + // Node 5 + return phi_v1_2; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B8E98 +/* 0ED9C8 7F0B8E98 3C078008 */ lui $a3, %hi(num_visible_rooms_in_cur_global_vis_packet) +/* 0ED9CC 7F0B8E9C 24E7C038 */ addiu $a3, %lo(num_visible_rooms_in_cur_global_vis_packet) # addiu $a3, $a3, -0x3fc8 +/* 0ED9D0 7F0B8EA0 8CEE0000 */ lw $t6, ($a3) +/* 0ED9D4 7F0B8EA4 00001825 */ move $v1, $zero +/* 0ED9D8 7F0B8EA8 19C00012 */ blez $t6, .L7F0B8EF4 +/* 0ED9DC 7F0B8EAC 00000000 */ nop +/* 0ED9E0 7F0B8EB0 18A00010 */ blez $a1, .L7F0B8EF4 +/* 0ED9E4 7F0B8EB4 00007880 */ sll $t7, $zero, 2 +/* 0ED9E8 7F0B8EB8 3C188008 */ lui $t8, %hi(list_visible_rooms_in_cur_global_vis_packet) +/* 0ED9EC 7F0B8EBC 2718BFA0 */ addiu $t8, %lo(list_visible_rooms_in_cur_global_vis_packet) # addiu $t8, $t8, -0x4060 +/* 0ED9F0 7F0B8EC0 00183021 */ addu $a2, $zero, $t8 +/* 0ED9F4 7F0B8EC4 008F1021 */ addu $v0, $a0, $t7 +/* 0ED9F8 7F0B8EC8 90D90000 */ lbu $t9, ($a2) +.L7F0B8ECC: +/* 0ED9FC 7F0B8ECC 24630001 */ addiu $v1, $v1, 1 +/* 0EDA00 7F0B8ED0 24420004 */ addiu $v0, $v0, 4 +/* 0EDA04 7F0B8ED4 AC59FFFC */ sw $t9, -4($v0) +/* 0EDA08 7F0B8ED8 8CE80000 */ lw $t0, ($a3) +/* 0EDA0C 7F0B8EDC 24C60001 */ addiu $a2, $a2, 1 +/* 0EDA10 7F0B8EE0 0068082A */ slt $at, $v1, $t0 +/* 0EDA14 7F0B8EE4 10200003 */ beqz $at, .L7F0B8EF4 +/* 0EDA18 7F0B8EE8 0065082A */ slt $at, $v1, $a1 +/* 0EDA1C 7F0B8EEC 5420FFF7 */ bnezl $at, .L7F0B8ECC +/* 0EDA20 7F0B8EF0 90D90000 */ lbu $t9, ($a2) +.L7F0B8EF4: +/* 0EDA24 7F0B8EF4 03E00008 */ jr $ra +/* 0EDA28 7F0B8EF8 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B8EFC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B8EFC +/* 0EDA2C 7F0B8EFC 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 0EDA30 7F0B8F00 3C078008 */ lui $a3, %hi(ptr_bgdata_portals) +/* 0EDA34 7F0B8F04 8CE7FF80 */ lw $a3, %lo(ptr_bgdata_portals)($a3) +/* 0EDA38 7F0B8F08 AFB2000C */ sw $s2, 0xc($sp) +/* 0EDA3C 7F0B8F0C AFB10008 */ sw $s1, 8($sp) +/* 0EDA40 7F0B8F10 AFB00004 */ sw $s0, 4($sp) +/* 0EDA44 7F0B8F14 8CEE0000 */ lw $t6, ($a3) +/* 0EDA48 7F0B8F18 00808025 */ move $s0, $a0 +/* 0EDA4C 7F0B8F1C 00A08825 */ move $s1, $a1 +/* 0EDA50 7F0B8F20 00C09025 */ move $s2, $a2 +/* 0EDA54 7F0B8F24 11C00024 */ beqz $t6, .L7F0B8FB8 +/* 0EDA58 7F0B8F28 00001825 */ move $v1, $zero +/* 0EDA5C 7F0B8F2C 00002025 */ move $a0, $zero +/* 0EDA60 7F0B8F30 00E02825 */ move $a1, $a3 +/* 0EDA64 7F0B8F34 90A20004 */ lbu $v0, 4($a1) +.L7F0B8F38: +/* 0EDA68 7F0B8F38 90A60005 */ lbu $a2, 5($a1) +/* 0EDA6C 7F0B8F3C 14500003 */ bne $v0, $s0, .L7F0B8F4C +/* 0EDA70 7F0B8F40 00000000 */ nop +/* 0EDA74 7F0B8F44 00C01025 */ move $v0, $a2 +/* 0EDA78 7F0B8F48 02003025 */ move $a2, $s0 +.L7F0B8F4C: +/* 0EDA7C 7F0B8F4C 54D00016 */ bnel $a2, $s0, .L7F0B8FA8 +/* 0EDA80 7F0B8F50 8CA90008 */ lw $t1, 8($a1) +/* 0EDA84 7F0B8F54 18600008 */ blez $v1, .L7F0B8F78 +/* 0EDA88 7F0B8F58 00003025 */ move $a2, $zero +/* 0EDA8C 7F0B8F5C 02203825 */ move $a3, $s1 +.L7F0B8F60: +/* 0EDA90 7F0B8F60 8CEF0000 */ lw $t7, ($a3) +/* 0EDA94 7F0B8F64 24C60001 */ addiu $a2, $a2, 1 +/* 0EDA98 7F0B8F68 504F000F */ beql $v0, $t7, .L7F0B8FA8 +/* 0EDA9C 7F0B8F6C 8CA90008 */ lw $t1, 8($a1) +/* 0EDAA0 7F0B8F70 14C3FFFB */ bne $a2, $v1, .L7F0B8F60 +/* 0EDAA4 7F0B8F74 24E70004 */ addiu $a3, $a3, 4 +.L7F0B8F78: +/* 0EDAA8 7F0B8F78 0003C080 */ sll $t8, $v1, 2 +/* 0EDAAC 7F0B8F7C 24630001 */ addiu $v1, $v1, 1 +/* 0EDAB0 7F0B8F80 0238C821 */ addu $t9, $s1, $t8 +/* 0EDAB4 7F0B8F84 0072082A */ slt $at, $v1, $s2 +/* 0EDAB8 7F0B8F88 14200003 */ bnez $at, .L7F0B8F98 +/* 0EDABC 7F0B8F8C AF220000 */ sw $v0, ($t9) +/* 0EDAC0 7F0B8F90 1000000A */ b .L7F0B8FBC +/* 0EDAC4 7F0B8F94 00601025 */ move $v0, $v1 +.L7F0B8F98: +/* 0EDAC8 7F0B8F98 3C088008 */ lui $t0, %hi(ptr_bgdata_portals) +/* 0EDACC 7F0B8F9C 8D08FF80 */ lw $t0, %lo(ptr_bgdata_portals)($t0) +/* 0EDAD0 7F0B8FA0 01042821 */ addu $a1, $t0, $a0 +/* 0EDAD4 7F0B8FA4 8CA90008 */ lw $t1, 8($a1) +.L7F0B8FA8: +/* 0EDAD8 7F0B8FA8 24840008 */ addiu $a0, $a0, 8 +/* 0EDADC 7F0B8FAC 24A50008 */ addiu $a1, $a1, 8 +/* 0EDAE0 7F0B8FB0 5520FFE1 */ bnezl $t1, .L7F0B8F38 +/* 0EDAE4 7F0B8FB4 90A20004 */ lbu $v0, 4($a1) +.L7F0B8FB8: +/* 0EDAE8 7F0B8FB8 00601025 */ move $v0, $v1 +.L7F0B8FBC: +/* 0EDAEC 7F0B8FBC 8FB00004 */ lw $s0, 4($sp) +/* 0EDAF0 7F0B8FC0 8FB10008 */ lw $s1, 8($sp) +/* 0EDAF4 7F0B8FC4 8FB2000C */ lw $s2, 0xc($sp) +/* 0EDAF8 7F0B8FC8 03E00008 */ jr $ra +/* 0EDAFC 7F0B8FCC 27BD0010 */ addiu $sp, $sp, 0x10 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B8FD0(s32 arg0, s32 arg1) { + s32 temp_v0; + s32 temp_v1; + void *phi_a0; + + // Node 0 + phi_a0 = ptr_bgdata_portals; + if (*ptr_bgdata_portals != 0) + { +loop_1: + // Node 1 + temp_v0 = phi_a0->unk4; + temp_v1 = phi_a0->unk5; + if (temp_v0 == arg0) + { + // Node 2 + if (temp_v1 == arg1) + { + // Node 3 + return 1; + } + } + // Node 4 + if (temp_v1 == arg0) + { + // Node 5 + if (temp_v0 == arg1) + { + // Node 6 + return 1; + } + } + // Node 7 + phi_a0 = (phi_a0 + 8); + if (phi_a0->unk8 != 0) + { + goto loop_1; + } + } + // Node 8 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B8FD0 +/* 0EDB00 7F0B8FD0 3C038008 */ lui $v1, %hi(ptr_bgdata_portals) +/* 0EDB04 7F0B8FD4 8C63FF80 */ lw $v1, %lo(ptr_bgdata_portals)($v1) +/* 0EDB08 7F0B8FD8 00803025 */ move $a2, $a0 +/* 0EDB0C 7F0B8FDC 8C6E0000 */ lw $t6, ($v1) +/* 0EDB10 7F0B8FE0 00602025 */ move $a0, $v1 +/* 0EDB14 7F0B8FE4 51C00014 */ beql $t6, $zero, .L7F0B9038 +/* 0EDB18 7F0B8FE8 00001025 */ move $v0, $zero +/* 0EDB1C 7F0B8FEC 90820004 */ lbu $v0, 4($a0) +.L7F0B8FF0: +/* 0EDB20 7F0B8FF0 90830005 */ lbu $v1, 5($a0) +/* 0EDB24 7F0B8FF4 14460005 */ bne $v0, $a2, .L7F0B900C +/* 0EDB28 7F0B8FF8 00000000 */ nop +/* 0EDB2C 7F0B8FFC 14650003 */ bne $v1, $a1, .L7F0B900C +/* 0EDB30 7F0B9000 00000000 */ nop +/* 0EDB34 7F0B9004 03E00008 */ jr $ra +/* 0EDB38 7F0B9008 24020001 */ li $v0, 1 + +.L7F0B900C: +/* 0EDB3C 7F0B900C 54660006 */ bnel $v1, $a2, .L7F0B9028 +/* 0EDB40 7F0B9010 8C8F0008 */ lw $t7, 8($a0) +/* 0EDB44 7F0B9014 54450004 */ bnel $v0, $a1, .L7F0B9028 +/* 0EDB48 7F0B9018 8C8F0008 */ lw $t7, 8($a0) +/* 0EDB4C 7F0B901C 03E00008 */ jr $ra +/* 0EDB50 7F0B9020 24020001 */ li $v0, 1 + +/* 0EDB54 7F0B9024 8C8F0008 */ lw $t7, 8($a0) +.L7F0B9028: +/* 0EDB58 7F0B9028 24840008 */ addiu $a0, $a0, 8 +/* 0EDB5C 7F0B902C 55E0FFF0 */ bnezl $t7, .L7F0B8FF0 +/* 0EDB60 7F0B9030 90820004 */ lbu $v0, 4($a0) +/* 0EDB64 7F0B9034 00001025 */ move $v0, $zero +.L7F0B9038: +/* 0EDB68 7F0B9038 03E00008 */ jr $ra +/* 0EDB6C 7F0B903C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B9040(s32 arg0, s32 arg1, f32 arg2) { + void *temp_v0; + s32 temp_f16; + + // Node 0 + temp_v0 = ((arg0 * 4) + &D_80041404); + temp_f16 = (s32) (((f32) *temp_v0 * arg1) + arg2); + *temp_v0 = temp_f16; + return (f32) temp_f16; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9040 +/* 0EDB70 7F0B9040 3C0F8004 */ lui $t7, %hi(D_80041404) +/* 0EDB74 7F0B9044 25EF1404 */ addiu $t7, %lo(D_80041404) # addiu $t7, $t7, 0x1404 +/* 0EDB78 7F0B9048 00047080 */ sll $t6, $a0, 2 +/* 0EDB7C 7F0B904C 01CF1021 */ addu $v0, $t6, $t7 +/* 0EDB80 7F0B9050 8C580000 */ lw $t8, ($v0) +/* 0EDB84 7F0B9054 44856000 */ mtc1 $a1, $f12 +/* 0EDB88 7F0B9058 44867000 */ mtc1 $a2, $f14 +/* 0EDB8C 7F0B905C 44982000 */ mtc1 $t8, $f4 +/* 0EDB90 7F0B9060 00000000 */ nop +/* 0EDB94 7F0B9064 468021A0 */ cvt.s.w $f6, $f4 +/* 0EDB98 7F0B9068 460C3202 */ mul.s $f8, $f6, $f12 +/* 0EDB9C 7F0B906C 460E4280 */ add.s $f10, $f8, $f14 +/* 0EDBA0 7F0B9070 4600540D */ trunc.w.s $f16, $f10 +/* 0EDBA4 7F0B9074 44098000 */ mfc1 $t1, $f16 +/* 0EDBA8 7F0B9078 00000000 */ nop +/* 0EDBAC 7F0B907C 44899000 */ mtc1 $t1, $f18 +/* 0EDBB0 7F0B9080 AC490000 */ sw $t1, ($v0) +/* 0EDBB4 7F0B9084 03E00008 */ jr $ra +/* 0EDBB8 7F0B9088 46809020 */ cvt.s.w $f0, $f18 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B908C(void) { + s16 sp1E; + f32 sp20; + f32 sp24; + f32 sp28; + f32 sp2C; + + // Node 0 + sp2C = (f32) D_80041404; + sp24 = (f32) D_80041404.unk4; + sp28 = (f32) ((f32) D_8004140C + (f32) get_video2_settings_txtClipW()); + sp20 = (f32) ((f32) D_80041410 + (f32) get_video2_settings_txtClipH()); + pPlayer->unk1118 = (f32) get_video2_settings_ulx(); + if (pPlayer->unk1118 < sp2C) + { + // Node 1 + pPlayer->unk1118 = sp2C; + } + // Node 2 + if (sp28 < pPlayer->unk1118) + { + // Node 3 + pPlayer->unk1118 = sp28; + } + // Node 4 + pPlayer->unk111C = (f32) get_video2_settings_uly(sp28, &pPlayer); + if (pPlayer->unk111C < sp24) + { + // Node 5 + pPlayer->unk111C = sp24; + } + // Node 6 + if (sp20 < pPlayer->unk111C) + { + // Node 7 + pPlayer->unk111C = sp20; + } + // Node 8 + sp1E = get_video2_settings_ulx(sp20, &pPlayer); + pPlayer->unk1120 = (f32) (get_video2_settings_width() + sp1E); + if (pPlayer->unk1120 < sp2C) + { + // Node 9 + pPlayer->unk1120 = sp2C; + } + // Node 10 + if (sp28 < pPlayer->unk1120) + { + // Node 11 + pPlayer->unk1120 = sp28; + } + // Node 12 + sp1E = get_video2_settings_uly(&pPlayer); + pPlayer->unk1124 = (f32) (get_video2_settings_height() + sp1E); + if (pPlayer->unk1124 < sp24) + { + // Node 13 + pPlayer->unk1124 = sp24; + } + // Node 14 + if (sp20 < pPlayer->unk1124) + { + // Node 15 + pPlayer->unk1124 = sp20; + } + // Node 16 + return pPlayer->unk1124; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B908C +/* 0EDBBC 7F0B908C 3C028004 */ lui $v0, %hi(D_80041404) +/* 0EDBC0 7F0B9090 24421404 */ addiu $v0, %lo(D_80041404) # addiu $v0, $v0, 0x1404 +/* 0EDBC4 7F0B9094 8C4E0000 */ lw $t6, ($v0) +/* 0EDBC8 7F0B9098 8C4F0004 */ lw $t7, 4($v0) +/* 0EDBCC 7F0B909C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0EDBD0 7F0B90A0 448E2000 */ mtc1 $t6, $f4 +/* 0EDBD4 7F0B90A4 448F4000 */ mtc1 $t7, $f8 +/* 0EDBD8 7F0B90A8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EDBDC 7F0B90AC 468021A0 */ cvt.s.w $f6, $f4 +/* 0EDBE0 7F0B90B0 468042A0 */ cvt.s.w $f10, $f8 +/* 0EDBE4 7F0B90B4 E7A6002C */ swc1 $f6, 0x2c($sp) +/* 0EDBE8 7F0B90B8 0C001107 */ jal get_video2_settings_txtClipW +/* 0EDBEC 7F0B90BC E7AA0024 */ swc1 $f10, 0x24($sp) +/* 0EDBF0 7F0B90C0 3C188004 */ lui $t8, %hi(D_8004140C) +/* 0EDBF4 7F0B90C4 8F18140C */ lw $t8, %lo(D_8004140C)($t8) +/* 0EDBF8 7F0B90C8 44822000 */ mtc1 $v0, $f4 +/* 0EDBFC 7F0B90CC 44988000 */ mtc1 $t8, $f16 +/* 0EDC00 7F0B90D0 468021A0 */ cvt.s.w $f6, $f4 +/* 0EDC04 7F0B90D4 468084A0 */ cvt.s.w $f18, $f16 +/* 0EDC08 7F0B90D8 46069200 */ add.s $f8, $f18, $f6 +/* 0EDC0C 7F0B90DC 0C00110B */ jal get_video2_settings_txtClipH +/* 0EDC10 7F0B90E0 E7A80028 */ swc1 $f8, 0x28($sp) +/* 0EDC14 7F0B90E4 3C198004 */ lui $t9, %hi(D_80041410) +/* 0EDC18 7F0B90E8 8F391410 */ lw $t9, %lo(D_80041410)($t9) +/* 0EDC1C 7F0B90EC 44822000 */ mtc1 $v0, $f4 +/* 0EDC20 7F0B90F0 44995000 */ mtc1 $t9, $f10 +/* 0EDC24 7F0B90F4 468024A0 */ cvt.s.w $f18, $f4 +/* 0EDC28 7F0B90F8 46805420 */ cvt.s.w $f16, $f10 +/* 0EDC2C 7F0B90FC 46128180 */ add.s $f6, $f16, $f18 +/* 0EDC30 7F0B9100 0C001145 */ jal get_video2_settings_ulx +/* 0EDC34 7F0B9104 E7A60020 */ swc1 $f6, 0x20($sp) +/* 0EDC38 7F0B9108 44824000 */ mtc1 $v0, $f8 +/* 0EDC3C 7F0B910C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0EDC40 7F0B9110 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0EDC44 7F0B9114 468042A0 */ cvt.s.w $f10, $f8 +/* 0EDC48 7F0B9118 8C880000 */ lw $t0, ($a0) +/* 0EDC4C 7F0B911C C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 0EDC50 7F0B9120 E50A1118 */ swc1 $f10, 0x1118($t0) +/* 0EDC54 7F0B9124 8C830000 */ lw $v1, ($a0) +/* 0EDC58 7F0B9128 C4601118 */ lwc1 $f0, 0x1118($v1) +/* 0EDC5C 7F0B912C 4602003C */ c.lt.s $f0, $f2 +/* 0EDC60 7F0B9130 00000000 */ nop +/* 0EDC64 7F0B9134 45020005 */ bc1fl .L7F0B914C +/* 0EDC68 7F0B9138 C7AC0028 */ lwc1 $f12, 0x28($sp) +/* 0EDC6C 7F0B913C E4621118 */ swc1 $f2, 0x1118($v1) +/* 0EDC70 7F0B9140 8C830000 */ lw $v1, ($a0) +/* 0EDC74 7F0B9144 C4601118 */ lwc1 $f0, 0x1118($v1) +/* 0EDC78 7F0B9148 C7AC0028 */ lwc1 $f12, 0x28($sp) +.L7F0B914C: +/* 0EDC7C 7F0B914C 4600603C */ c.lt.s $f12, $f0 +/* 0EDC80 7F0B9150 00000000 */ nop +/* 0EDC84 7F0B9154 45000002 */ bc1f .L7F0B9160 +/* 0EDC88 7F0B9158 00000000 */ nop +/* 0EDC8C 7F0B915C E46C1118 */ swc1 $f12, 0x1118($v1) +.L7F0B9160: +/* 0EDC90 7F0B9160 0C001149 */ jal get_video2_settings_uly +/* 0EDC94 7F0B9164 00000000 */ nop +/* 0EDC98 7F0B9168 44822000 */ mtc1 $v0, $f4 +/* 0EDC9C 7F0B916C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0EDCA0 7F0B9170 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0EDCA4 7F0B9174 46802420 */ cvt.s.w $f16, $f4 +/* 0EDCA8 7F0B9178 8C890000 */ lw $t1, ($a0) +/* 0EDCAC 7F0B917C C7A20024 */ lwc1 $f2, 0x24($sp) +/* 0EDCB0 7F0B9180 E530111C */ swc1 $f16, 0x111c($t1) +/* 0EDCB4 7F0B9184 8C830000 */ lw $v1, ($a0) +/* 0EDCB8 7F0B9188 C460111C */ lwc1 $f0, 0x111c($v1) +/* 0EDCBC 7F0B918C 4602003C */ c.lt.s $f0, $f2 +/* 0EDCC0 7F0B9190 00000000 */ nop +/* 0EDCC4 7F0B9194 45020005 */ bc1fl .L7F0B91AC +/* 0EDCC8 7F0B9198 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 0EDCCC 7F0B919C E462111C */ swc1 $f2, 0x111c($v1) +/* 0EDCD0 7F0B91A0 8C830000 */ lw $v1, ($a0) +/* 0EDCD4 7F0B91A4 C460111C */ lwc1 $f0, 0x111c($v1) +/* 0EDCD8 7F0B91A8 C7AC0020 */ lwc1 $f12, 0x20($sp) +.L7F0B91AC: +/* 0EDCDC 7F0B91AC 4600603C */ c.lt.s $f12, $f0 +/* 0EDCE0 7F0B91B0 00000000 */ nop +/* 0EDCE4 7F0B91B4 45000002 */ bc1f .L7F0B91C0 +/* 0EDCE8 7F0B91B8 00000000 */ nop +/* 0EDCEC 7F0B91BC E46C111C */ swc1 $f12, 0x111c($v1) +.L7F0B91C0: +/* 0EDCF0 7F0B91C0 0C001145 */ jal get_video2_settings_ulx +/* 0EDCF4 7F0B91C4 00000000 */ nop +/* 0EDCF8 7F0B91C8 0C001127 */ jal get_video2_settings_width +/* 0EDCFC 7F0B91CC A7A2001E */ sh $v0, 0x1e($sp) +/* 0EDD00 7F0B91D0 87AA001E */ lh $t2, 0x1e($sp) +/* 0EDD04 7F0B91D4 3C048008 */ lui $a0, %hi(pPlayer) +/* 0EDD08 7F0B91D8 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0EDD0C 7F0B91DC 004A5821 */ addu $t3, $v0, $t2 +/* 0EDD10 7F0B91E0 448B9000 */ mtc1 $t3, $f18 +/* 0EDD14 7F0B91E4 8C8C0000 */ lw $t4, ($a0) +/* 0EDD18 7F0B91E8 468091A0 */ cvt.s.w $f6, $f18 +/* 0EDD1C 7F0B91EC E5861120 */ swc1 $f6, 0x1120($t4) +/* 0EDD20 7F0B91F0 8C830000 */ lw $v1, ($a0) +/* 0EDD24 7F0B91F4 C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 0EDD28 7F0B91F8 C4601120 */ lwc1 $f0, 0x1120($v1) +/* 0EDD2C 7F0B91FC 4608003C */ c.lt.s $f0, $f8 +/* 0EDD30 7F0B9200 00000000 */ nop +/* 0EDD34 7F0B9204 45020005 */ bc1fl .L7F0B921C +/* 0EDD38 7F0B9208 C7AA0028 */ lwc1 $f10, 0x28($sp) +/* 0EDD3C 7F0B920C E4681120 */ swc1 $f8, 0x1120($v1) +/* 0EDD40 7F0B9210 8C830000 */ lw $v1, ($a0) +/* 0EDD44 7F0B9214 C4601120 */ lwc1 $f0, 0x1120($v1) +/* 0EDD48 7F0B9218 C7AA0028 */ lwc1 $f10, 0x28($sp) +.L7F0B921C: +/* 0EDD4C 7F0B921C 4600503C */ c.lt.s $f10, $f0 +/* 0EDD50 7F0B9220 00000000 */ nop +/* 0EDD54 7F0B9224 45000002 */ bc1f .L7F0B9230 +/* 0EDD58 7F0B9228 00000000 */ nop +/* 0EDD5C 7F0B922C E46A1120 */ swc1 $f10, 0x1120($v1) +.L7F0B9230: +/* 0EDD60 7F0B9230 0C001149 */ jal get_video2_settings_uly +/* 0EDD64 7F0B9234 00000000 */ nop +/* 0EDD68 7F0B9238 0C00112B */ jal get_video2_settings_height +/* 0EDD6C 7F0B923C A7A2001E */ sh $v0, 0x1e($sp) +/* 0EDD70 7F0B9240 87AD001E */ lh $t5, 0x1e($sp) +/* 0EDD74 7F0B9244 3C048008 */ lui $a0, %hi(pPlayer) +/* 0EDD78 7F0B9248 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0EDD7C 7F0B924C 004D7021 */ addu $t6, $v0, $t5 +/* 0EDD80 7F0B9250 448E2000 */ mtc1 $t6, $f4 +/* 0EDD84 7F0B9254 8C8F0000 */ lw $t7, ($a0) +/* 0EDD88 7F0B9258 46802420 */ cvt.s.w $f16, $f4 +/* 0EDD8C 7F0B925C E5F01124 */ swc1 $f16, 0x1124($t7) +/* 0EDD90 7F0B9260 8C830000 */ lw $v1, ($a0) +/* 0EDD94 7F0B9264 C7B20024 */ lwc1 $f18, 0x24($sp) +/* 0EDD98 7F0B9268 C4601124 */ lwc1 $f0, 0x1124($v1) +/* 0EDD9C 7F0B926C 4612003C */ c.lt.s $f0, $f18 +/* 0EDDA0 7F0B9270 00000000 */ nop +/* 0EDDA4 7F0B9274 45020006 */ bc1fl .L7F0B9290 +/* 0EDDA8 7F0B9278 C7A60020 */ lwc1 $f6, 0x20($sp) +/* 0EDDAC 7F0B927C E4721124 */ swc1 $f18, 0x1124($v1) +/* 0EDDB0 7F0B9280 3C038008 */ lui $v1, %hi(pPlayer) +/* 0EDDB4 7F0B9284 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0EDDB8 7F0B9288 C4601124 */ lwc1 $f0, 0x1124($v1) +/* 0EDDBC 7F0B928C C7A60020 */ lwc1 $f6, 0x20($sp) +.L7F0B9290: +/* 0EDDC0 7F0B9290 4600303C */ c.lt.s $f6, $f0 +/* 0EDDC4 7F0B9294 00000000 */ nop +/* 0EDDC8 7F0B9298 45020003 */ bc1fl .L7F0B92A8 +/* 0EDDCC 7F0B929C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EDDD0 7F0B92A0 E4661124 */ swc1 $f6, 0x1124($v1) +/* 0EDDD4 7F0B92A4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0B92A8: +/* 0EDDD8 7F0B92A8 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0EDDDC 7F0B92AC 03E00008 */ jr $ra +/* 0EDDE0 7F0B92B0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B92B4(s32 arg0, void *arg1) { + void *temp_a2; + s32 temp_v0; + f32 temp_f18; + void *temp_a2_2; + s32 temp_v0_2; + void *temp_v1; + f32 temp_f18_2; + f32 phi_f18; + void *phi_v1; + s32 phi_v0; + f32 phi_f18_2; + void *phi_v1_2; + void *phi_a2; + + // Node 0 + temp_a2 = ((arg0 * 0x50) + &array_room_info); + temp_v0 = (0 + 1); + temp_f18 = ((temp_a2->unk44 + temp_a2->unk38) * 0.5f); + phi_f18 = temp_f18; + phi_v1 = arg1; + phi_v0 = temp_v0; + phi_f18_2 = temp_f18; + phi_v1_2 = arg1; + phi_a2 = temp_a2; + if (temp_v0 != 3) + { +loop_1: + // Node 1 + *phi_v1 = (f32) phi_f18; + temp_a2_2 = (phi_a2 + 4); + temp_v0_2 = (phi_v0 + 1); + temp_v1 = (phi_v1 + 4); + temp_f18_2 = ((phi_a2->unk48 + temp_a2_2->unk38) * 0.5f); + phi_f18 = temp_f18_2; + phi_v1 = temp_v1; + phi_v0 = temp_v0_2; + phi_f18_2 = temp_f18_2; + phi_v1_2 = temp_v1; + phi_a2 = temp_a2_2; + if (temp_v0_2 != 3) + { + goto loop_1; + } + } + // Node 2 + (phi_v1_2 + 4)->unk-4 = (f32) phi_f18_2; + return temp_v0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B92B4 +/* 0EDDE4 7F0B92B4 00047080 */ sll $t6, $a0, 2 +/* 0EDDE8 7F0B92B8 01C47021 */ addu $t6, $t6, $a0 +/* 0EDDEC 7F0B92BC 3C0F8004 */ lui $t7, %hi(array_room_info) +/* 0EDDF0 7F0B92C0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0EDDF4 7F0B92C4 25EF1414 */ addiu $t7, %lo(array_room_info) # addiu $t7, $t7, 0x1414 +/* 0EDDF8 7F0B92C8 000E7100 */ sll $t6, $t6, 4 +/* 0EDDFC 7F0B92CC 44810000 */ mtc1 $at, $f0 +/* 0EDE00 7F0B92D0 01CF3021 */ addu $a2, $t6, $t7 +/* 0EDE04 7F0B92D4 24040003 */ li $a0, 3 +/* 0EDE08 7F0B92D8 00001025 */ move $v0, $zero +/* 0EDE0C 7F0B92DC 00A01825 */ move $v1, $a1 +/* 0EDE10 7F0B92E0 C4D00044 */ lwc1 $f16, 0x44($a2) +/* 0EDE14 7F0B92E4 C4CE0038 */ lwc1 $f14, 0x38($a2) +/* 0EDE18 7F0B92E8 24420001 */ addiu $v0, $v0, 1 +/* 0EDE1C 7F0B92EC 460E8380 */ add.s $f14, $f16, $f14 +/* 0EDE20 7F0B92F0 46007482 */ mul.s $f18, $f14, $f0 +/* 0EDE24 7F0B92F4 5044000C */ beql $v0, $a0, .L7F0B9328 +/* 0EDE28 7F0B92F8 24C60004 */ addiu $a2, $a2, 4 +/* 0EDE2C 7F0B92FC E4720000 */ swc1 $f18, ($v1) +.L7F0B9300: +/* 0EDE30 7F0B9300 C4D00048 */ lwc1 $f16, 0x48($a2) +/* 0EDE34 7F0B9304 24C60004 */ addiu $a2, $a2, 4 +/* 0EDE38 7F0B9308 C4CE0038 */ lwc1 $f14, 0x38($a2) +/* 0EDE3C 7F0B930C 24420001 */ addiu $v0, $v0, 1 +/* 0EDE40 7F0B9310 24630004 */ addiu $v1, $v1, 4 +/* 0EDE44 7F0B9314 460E8380 */ add.s $f14, $f16, $f14 +/* 0EDE48 7F0B9318 46007482 */ mul.s $f18, $f14, $f0 +/* 0EDE4C 7F0B931C 5444FFF8 */ bnel $v0, $a0, .L7F0B9300 +/* 0EDE50 7F0B9320 E4720000 */ swc1 $f18, ($v1) +/* 0EDE54 7F0B9324 24C60004 */ addiu $a2, $a2, 4 +.L7F0B9328: +/* 0EDE58 7F0B9328 24630004 */ addiu $v1, $v1, 4 +/* 0EDE5C 7F0B932C E472FFFC */ swc1 $f18, -4($v1) +/* 0EDE60 7F0B9330 03E00008 */ jr $ra +/* 0EDE64 7F0B9334 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B9338(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9338 +/* 0EDE68 7F0B9338 3C088008 */ lui $t0, %hi(ptr_bgdata_room_fileposition_list) +/* 0EDE6C 7F0B933C 2508FF8C */ addiu $t0, %lo(ptr_bgdata_room_fileposition_list) # addiu $t0, $t0, -0x74 +/* 0EDE70 7F0B9340 8D0E0000 */ lw $t6, ($t0) +/* 0EDE74 7F0B9344 00041080 */ sll $v0, $a0, 2 +/* 0EDE78 7F0B9348 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0EDE7C 7F0B934C 00441023 */ subu $v0, $v0, $a0 +/* 0EDE80 7F0B9350 000210C0 */ sll $v0, $v0, 3 +/* 0EDE84 7F0B9354 AFBF001C */ sw $ra, 0x1c($sp) +/* 0EDE88 7F0B9358 AFB00018 */ sw $s0, 0x18($sp) +/* 0EDE8C 7F0B935C 01C24821 */ addu $t1, $t6, $v0 +/* 0EDE90 7F0B9360 8D2F0000 */ lw $t7, ($t1) +/* 0EDE94 7F0B9364 3C188004 */ lui $t8, %hi(array_room_info) +/* 0EDE98 7F0B9368 00808025 */ move $s0, $a0 +/* 0EDE9C 7F0B936C 15E00035 */ bnez $t7, .L7F0B9444 +/* 0EDEA0 7F0B9370 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414 +/* 0EDEA4 7F0B9374 3C188008 */ lui $t8, %hi(dword_CODE_bss_8007B9DC) +/* 0EDEA8 7F0B9378 8F18B9DC */ lw $t8, %lo(dword_CODE_bss_8007B9DC)($t8) +/* 0EDEAC 7F0B937C 0004C880 */ sll $t9, $a0, 2 +/* 0EDEB0 7F0B9380 3C0B8008 */ lui $t3, %hi(dword_CODE_bss_8007B128) +/* 0EDEB4 7F0B9384 0098082A */ slt $at, $a0, $t8 +/* 0EDEB8 7F0B9388 1020008E */ beqz $at, .L7F0B95C4 +/* 0EDEBC 7F0B938C 01795821 */ addu $t3, $t3, $t9 +/* 0EDEC0 7F0B9390 8D6BB128 */ lw $t3, %lo(dword_CODE_bss_8007B128)($t3) +/* 0EDEC4 7F0B9394 00106080 */ sll $t4, $s0, 2 +/* 0EDEC8 7F0B9398 01906021 */ addu $t4, $t4, $s0 +/* 0EDECC 7F0B939C 11600089 */ beqz $t3, .L7F0B95C4 +/* 0EDED0 7F0B93A0 00002025 */ move $a0, $zero +/* 0EDED4 7F0B93A4 00107080 */ sll $t6, $s0, 2 +/* 0EDED8 7F0B93A8 01D07023 */ subu $t6, $t6, $s0 +/* 0EDEDC 7F0B93AC 3C0D8004 */ lui $t5, %hi(array_room_info) +/* 0EDEE0 7F0B93B0 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_8007B358) +/* 0EDEE4 7F0B93B4 25EFB358 */ addiu $t7, %lo(dword_CODE_bss_8007B358) # addiu $t7, $t7, -0x4ca8 +/* 0EDEE8 7F0B93B8 25AD1414 */ addiu $t5, %lo(array_room_info) # addiu $t5, $t5, 0x1414 +/* 0EDEEC 7F0B93BC 000E7080 */ sll $t6, $t6, 2 +/* 0EDEF0 7F0B93C0 000C6100 */ sll $t4, $t4, 4 +/* 0EDEF4 7F0B93C4 018D2821 */ addu $a1, $t4, $t5 +/* 0EDEF8 7F0B93C8 01CF3021 */ addu $a2, $t6, $t7 +/* 0EDEFC 7F0B93CC 2407000C */ li $a3, 12 +.L7F0B93D0: +/* 0EDF00 7F0B93D0 84C20000 */ lh $v0, ($a2) +/* 0EDF04 7F0B93D4 84C30006 */ lh $v1, 6($a2) +/* 0EDF08 7F0B93D8 8D0B0000 */ lw $t3, ($t0) +/* 0EDF0C 7F0B93DC 44822000 */ mtc1 $v0, $f4 +/* 0EDF10 7F0B93E0 44834000 */ mtc1 $v1, $f8 +/* 0EDF14 7F0B93E4 0062C021 */ addu $t8, $v1, $v0 +/* 0EDF18 7F0B93E8 468021A0 */ cvt.s.w $f6, $f4 +/* 0EDF1C 7F0B93EC 00106080 */ sll $t4, $s0, 2 +/* 0EDF20 7F0B93F0 01906023 */ subu $t4, $t4, $s0 +/* 0EDF24 7F0B93F4 000C60C0 */ sll $t4, $t4, 3 +/* 0EDF28 7F0B93F8 016C6821 */ addu $t5, $t3, $t4 +/* 0EDF2C 7F0B93FC 468042A0 */ cvt.s.w $f10, $f8 +/* 0EDF30 7F0B9400 01A47021 */ addu $t6, $t5, $a0 +/* 0EDF34 7F0B9404 24840004 */ addiu $a0, $a0, 4 +/* 0EDF38 7F0B9408 E4A60038 */ swc1 $f6, 0x38($a1) +/* 0EDF3C 7F0B940C 24A50004 */ addiu $a1, $a1, 4 +/* 0EDF40 7F0B9410 24C60002 */ addiu $a2, $a2, 2 +/* 0EDF44 7F0B9414 E4AA0040 */ swc1 $f10, 0x40($a1) +/* 0EDF48 7F0B9418 07010003 */ bgez $t8, .L7F0B9428 +/* 0EDF4C 7F0B941C 0018C843 */ sra $t9, $t8, 1 +/* 0EDF50 7F0B9420 27010001 */ addiu $at, $t8, 1 +/* 0EDF54 7F0B9424 0001C843 */ sra $t9, $at, 1 +.L7F0B9428: +/* 0EDF58 7F0B9428 44998000 */ mtc1 $t9, $f16 +/* 0EDF5C 7F0B942C 00000000 */ nop +/* 0EDF60 7F0B9430 468084A0 */ cvt.s.w $f18, $f16 +/* 0EDF64 7F0B9434 1487FFE6 */ bne $a0, $a3, .L7F0B93D0 +/* 0EDF68 7F0B9438 E5D2000C */ swc1 $f18, 0xc($t6) +/* 0EDF6C 7F0B943C 10000062 */ b .L7F0B95C8 +/* 0EDF70 7F0B9440 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0B9444: +/* 0EDF74 7F0B9444 00107880 */ sll $t7, $s0, 2 +/* 0EDF78 7F0B9448 01F07821 */ addu $t7, $t7, $s0 +/* 0EDF7C 7F0B944C 000F7900 */ sll $t7, $t7, 4 +/* 0EDF80 7F0B9450 01F84021 */ addu $t0, $t7, $t8 +/* 0EDF84 7F0B9454 910A0002 */ lbu $t2, 2($t0) +/* 0EDF88 7F0B9458 02002025 */ move $a0, $s0 +/* 0EDF8C 7F0B945C 5540000C */ bnezl $t2, .L7F0B9490 +/* 0EDF90 7F0B9460 8D060004 */ lw $a2, 4($t0) +/* 0EDF94 7F0B9464 AFA20030 */ sw $v0, 0x30($sp) +/* 0EDF98 7F0B9468 AFA80028 */ sw $t0, 0x28($sp) +/* 0EDF9C 7F0B946C 0FC2D8DA */ jal sub_GAME_7F0B6368 +/* 0EDFA0 7F0B9470 A3AA0037 */ sb $t2, 0x37($sp) +/* 0EDFA4 7F0B9474 3C198008 */ lui $t9, %hi(ptr_bgdata_room_fileposition_list) +/* 0EDFA8 7F0B9478 8F39FF8C */ lw $t9, %lo(ptr_bgdata_room_fileposition_list)($t9) +/* 0EDFAC 7F0B947C 8FA20030 */ lw $v0, 0x30($sp) +/* 0EDFB0 7F0B9480 8FA80028 */ lw $t0, 0x28($sp) +/* 0EDFB4 7F0B9484 93AA0037 */ lbu $t2, 0x37($sp) +/* 0EDFB8 7F0B9488 03224821 */ addu $t1, $t9, $v0 +/* 0EDFBC 7F0B948C 8D060004 */ lw $a2, 4($t0) +.L7F0B9490: +/* 0EDFC0 7F0B9490 8D19001C */ lw $t9, 0x1c($t0) +/* 0EDFC4 7F0B9494 240B7FFF */ li $t3, 32767 +/* 0EDFC8 7F0B9498 240C7FFF */ li $t4, 32767 +/* 0EDFCC 7F0B949C 03263821 */ addu $a3, $t9, $a2 +/* 0EDFD0 7F0B94A0 240D7FFF */ li $t5, 32767 +/* 0EDFD4 7F0B94A4 240E8001 */ li $t6, -32767 +/* 0EDFD8 7F0B94A8 240F8001 */ li $t7, -32767 +/* 0EDFDC 7F0B94AC 24188001 */ li $t8, -32767 +/* 0EDFE0 7F0B94B0 00C7082B */ sltu $at, $a2, $a3 +/* 0EDFE4 7F0B94B4 A7AB0038 */ sh $t3, 0x38($sp) +/* 0EDFE8 7F0B94B8 A7AC003A */ sh $t4, 0x3a($sp) +/* 0EDFEC 7F0B94BC A7AD003C */ sh $t5, 0x3c($sp) +/* 0EDFF0 7F0B94C0 A7AE003E */ sh $t6, 0x3e($sp) +/* 0EDFF4 7F0B94C4 A7AF0040 */ sh $t7, 0x40($sp) +/* 0EDFF8 7F0B94C8 10200017 */ beqz $at, .L7F0B9528 +/* 0EDFFC 7F0B94CC A7B80042 */ sh $t8, 0x42($sp) +/* 0EE000 7F0B94D0 27A5003E */ addiu $a1, $sp, 0x3e +/* 0EE004 7F0B94D4 00C02025 */ move $a0, $a2 +.L7F0B94D8: +/* 0EE008 7F0B94D8 27A30038 */ addiu $v1, $sp, 0x38 +.L7F0B94DC: +/* 0EE00C 7F0B94DC 84820000 */ lh $v0, ($a0) +/* 0EE010 7F0B94E0 846B0000 */ lh $t3, ($v1) +/* 0EE014 7F0B94E4 004B082A */ slt $at, $v0, $t3 +/* 0EE018 7F0B94E8 50200004 */ beql $at, $zero, .L7F0B94FC +/* 0EE01C 7F0B94EC 846C0006 */ lh $t4, 6($v1) +/* 0EE020 7F0B94F0 A4620000 */ sh $v0, ($v1) +/* 0EE024 7F0B94F4 84820000 */ lh $v0, ($a0) +/* 0EE028 7F0B94F8 846C0006 */ lh $t4, 6($v1) +.L7F0B94FC: +/* 0EE02C 7F0B94FC 0182082A */ slt $at, $t4, $v0 +/* 0EE030 7F0B9500 50200003 */ beql $at, $zero, .L7F0B9510 +/* 0EE034 7F0B9504 24630002 */ addiu $v1, $v1, 2 +/* 0EE038 7F0B9508 A4620006 */ sh $v0, 6($v1) +/* 0EE03C 7F0B950C 24630002 */ addiu $v1, $v1, 2 +.L7F0B9510: +/* 0EE040 7F0B9510 1465FFF2 */ bne $v1, $a1, .L7F0B94DC +/* 0EE044 7F0B9514 24840002 */ addiu $a0, $a0, 2 +/* 0EE048 7F0B9518 24C60010 */ addiu $a2, $a2, 0x10 +/* 0EE04C 7F0B951C 00C7082B */ sltu $at, $a2, $a3 +/* 0EE050 7F0B9520 5420FFED */ bnezl $at, .L7F0B94D8 +/* 0EE054 7F0B9524 00C02025 */ move $a0, $a2 +.L7F0B9528: +/* 0EE058 7F0B9528 87AD0038 */ lh $t5, 0x38($sp) +/* 0EE05C 7F0B952C 87AE003A */ lh $t6, 0x3a($sp) +/* 0EE060 7F0B9530 C524000C */ lwc1 $f4, 0xc($t1) +/* 0EE064 7F0B9534 448D3000 */ mtc1 $t5, $f6 +/* 0EE068 7F0B9538 448E9000 */ mtc1 $t6, $f18 +/* 0EE06C 7F0B953C 87AF003C */ lh $t7, 0x3c($sp) +/* 0EE070 7F0B9540 46803220 */ cvt.s.w $f8, $f6 +/* 0EE074 7F0B9544 87B8003E */ lh $t8, 0x3e($sp) +/* 0EE078 7F0B9548 87B90040 */ lh $t9, 0x40($sp) +/* 0EE07C 7F0B954C 87AB0042 */ lh $t3, 0x42($sp) +/* 0EE080 7F0B9550 468091A0 */ cvt.s.w $f6, $f18 +/* 0EE084 7F0B9554 46082280 */ add.s $f10, $f4, $f8 +/* 0EE088 7F0B9558 E50A0038 */ swc1 $f10, 0x38($t0) +/* 0EE08C 7F0B955C C5300010 */ lwc1 $f16, 0x10($t1) +/* 0EE090 7F0B9560 448F5000 */ mtc1 $t7, $f10 +/* 0EE094 7F0B9564 46068100 */ add.s $f4, $f16, $f6 +/* 0EE098 7F0B9568 468054A0 */ cvt.s.w $f18, $f10 +/* 0EE09C 7F0B956C E504003C */ swc1 $f4, 0x3c($t0) +/* 0EE0A0 7F0B9570 C5280014 */ lwc1 $f8, 0x14($t1) +/* 0EE0A4 7F0B9574 44982000 */ mtc1 $t8, $f4 +/* 0EE0A8 7F0B9578 46124400 */ add.s $f16, $f8, $f18 +/* 0EE0AC 7F0B957C 468022A0 */ cvt.s.w $f10, $f4 +/* 0EE0B0 7F0B9580 E5100040 */ swc1 $f16, 0x40($t0) +/* 0EE0B4 7F0B9584 C526000C */ lwc1 $f6, 0xc($t1) +/* 0EE0B8 7F0B9588 44998000 */ mtc1 $t9, $f16 +/* 0EE0BC 7F0B958C 460A3200 */ add.s $f8, $f6, $f10 +/* 0EE0C0 7F0B9590 46808120 */ cvt.s.w $f4, $f16 +/* 0EE0C4 7F0B9594 E5080044 */ swc1 $f8, 0x44($t0) +/* 0EE0C8 7F0B9598 C5320010 */ lwc1 $f18, 0x10($t1) +/* 0EE0CC 7F0B959C 448B4000 */ mtc1 $t3, $f8 +/* 0EE0D0 7F0B95A0 46049180 */ add.s $f6, $f18, $f4 +/* 0EE0D4 7F0B95A4 46804420 */ cvt.s.w $f16, $f8 +/* 0EE0D8 7F0B95A8 E5060048 */ swc1 $f6, 0x48($t0) +/* 0EE0DC 7F0B95AC C52A0014 */ lwc1 $f10, 0x14($t1) +/* 0EE0E0 7F0B95B0 46105480 */ add.s $f18, $f10, $f16 +/* 0EE0E4 7F0B95B4 15400003 */ bnez $t2, .L7F0B95C4 +/* 0EE0E8 7F0B95B8 E512004C */ swc1 $f18, 0x4c($t0) +/* 0EE0EC 7F0B95BC 0FC2D971 */ jal sub_GAME_7F0B65C4 +/* 0EE0F0 7F0B95C0 02002025 */ move $a0, $s0 +.L7F0B95C4: +/* 0EE0F4 7F0B95C4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0B95C8: +/* 0EE0F8 7F0B95C8 8FB00018 */ lw $s0, 0x18($sp) +/* 0EE0FC 7F0B95CC 27BD0050 */ addiu $sp, $sp, 0x50 +/* 0EE100 7F0B95D0 03E00008 */ jr $ra +/* 0EE104 7F0B95D4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B95D8(s32 arg0) { + void *temp_a2; + void *temp_t8; + s32 temp_t0; + void *temp_a2_2; + s32 temp_a1; + void *phi_v1; + void *phi_a2; + s32 phi_a1; + s32 phi_t0; + void *phi_t2; + + // Node 0 + phi_v1 = ptr_bgdata_portals; + if (*ptr_bgdata_portals != 0) + { +loop_1: + // Node 1 + if ((arg0 == phi_v1->unk4) || (arg0 == phi_v1->unk5)) + { + // Node 3 + temp_a2 = *phi_v1; + if (*temp_a2 > 0) + { + // Node 4 + phi_a1 = 0; + phi_a2 = temp_a2; +loop_5: + // Node 5 + phi_t0 = 0; + phi_t2 = ((arg0 * 0x50) + &array_room_info); +loop_6: + // Node 6 + temp_t8 = ((phi_a2 + (((phi_a1 * 4) - phi_a1) * 4)) + phi_t0); + temp_t0 = (phi_t0 + 4); + if (temp_t8->unk4 < phi_t2->unk38) + { + // Node 7 + phi_t2->unk38 = (f32) temp_t8->unk4; + } + // Node 8 + if (phi_t2->unk44 < temp_t8->unk4) + { + // Node 9 + phi_t2->unk44 = (f32) temp_t8->unk4; + } + // Node 10 + temp_a2_2 = *phi_v1; + phi_a2 = temp_a2_2; + phi_t0 = temp_t0; + phi_t2 = (phi_t2 + 4); + if (temp_t0 != 0xc) + { + goto loop_6; + } + // Node 11 + temp_a1 = (phi_a1 + 1); + phi_a1 = temp_a1; + phi_a2 = temp_a2_2; + if (temp_a1 < *temp_a2_2) + { + goto loop_5; + } + } + } + else + { + + } + // Node 12 + phi_v1 = (phi_v1 + 8); + if (phi_v1->unk8 != 0) + { + goto loop_1; + } + } + // Node 13 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B95D8 +/* 0EE108 7F0B95D8 3C058008 */ lui $a1, %hi(ptr_bgdata_portals) +/* 0EE10C 7F0B95DC 8CA5FF80 */ lw $a1, %lo(ptr_bgdata_portals)($a1) +/* 0EE110 7F0B95E0 00001025 */ move $v0, $zero +/* 0EE114 7F0B95E4 240B000C */ li $t3, 12 +/* 0EE118 7F0B95E8 8CAE0000 */ lw $t6, ($a1) +/* 0EE11C 7F0B95EC 00A01825 */ move $v1, $a1 +/* 0EE120 7F0B95F0 11C00034 */ beqz $t6, .L7F0B96C4 +/* 0EE124 7F0B95F4 00000000 */ nop +/* 0EE128 7F0B95F8 906F0004 */ lbu $t7, 4($v1) +.L7F0B95FC: +/* 0EE12C 7F0B95FC 508F0005 */ beql $a0, $t7, .L7F0B9614 +/* 0EE130 7F0B9600 8C660000 */ lw $a2, ($v1) +/* 0EE134 7F0B9604 90780005 */ lbu $t8, 5($v1) +/* 0EE138 7F0B9608 5498002B */ bnel $a0, $t8, .L7F0B96B8 +/* 0EE13C 7F0B960C 8C790008 */ lw $t9, 8($v1) +/* 0EE140 7F0B9610 8C660000 */ lw $a2, ($v1) +.L7F0B9614: +/* 0EE144 7F0B9614 00046080 */ sll $t4, $a0, 2 +/* 0EE148 7F0B9618 01846021 */ addu $t4, $t4, $a0 +/* 0EE14C 7F0B961C 90D90000 */ lbu $t9, ($a2) +/* 0EE150 7F0B9620 000C6100 */ sll $t4, $t4, 4 +/* 0EE154 7F0B9624 00002825 */ move $a1, $zero +/* 0EE158 7F0B9628 1B200022 */ blez $t9, .L7F0B96B4 +/* 0EE15C 7F0B962C 3C0D8004 */ lui $t5, %hi(array_room_info) +/* 0EE160 7F0B9630 25AD1414 */ addiu $t5, %lo(array_room_info) # addiu $t5, $t5, 0x1414 +/* 0EE164 7F0B9634 018D4821 */ addu $t1, $t4, $t5 +/* 0EE168 7F0B9638 00004025 */ move $t0, $zero +.L7F0B963C: +/* 0EE16C 7F0B963C 01205025 */ move $t2, $t1 +.L7F0B9640: +/* 0EE170 7F0B9640 00057080 */ sll $t6, $a1, 2 +/* 0EE174 7F0B9644 01C57023 */ subu $t6, $t6, $a1 +/* 0EE178 7F0B9648 000E7080 */ sll $t6, $t6, 2 +/* 0EE17C 7F0B964C 00CE7821 */ addu $t7, $a2, $t6 +/* 0EE180 7F0B9650 01E8C021 */ addu $t8, $t7, $t0 +/* 0EE184 7F0B9654 C7000004 */ lwc1 $f0, 4($t8) +/* 0EE188 7F0B9658 C5440038 */ lwc1 $f4, 0x38($t2) +/* 0EE18C 7F0B965C 25080004 */ addiu $t0, $t0, 4 +/* 0EE190 7F0B9660 4604003C */ c.lt.s $f0, $f4 +/* 0EE194 7F0B9664 00000000 */ nop +/* 0EE198 7F0B9668 45020004 */ bc1fl .L7F0B967C +/* 0EE19C 7F0B966C C5460044 */ lwc1 $f6, 0x44($t2) +/* 0EE1A0 7F0B9670 E5400038 */ swc1 $f0, 0x38($t2) +/* 0EE1A4 7F0B9674 24420001 */ addiu $v0, $v0, 1 +/* 0EE1A8 7F0B9678 C5460044 */ lwc1 $f6, 0x44($t2) +.L7F0B967C: +/* 0EE1AC 7F0B967C 4600303C */ c.lt.s $f6, $f0 +/* 0EE1B0 7F0B9680 00000000 */ nop +/* 0EE1B4 7F0B9684 45020004 */ bc1fl .L7F0B9698 +/* 0EE1B8 7F0B9688 254A0004 */ addiu $t2, $t2, 4 +/* 0EE1BC 7F0B968C E5400044 */ swc1 $f0, 0x44($t2) +/* 0EE1C0 7F0B9690 24420001 */ addiu $v0, $v0, 1 +/* 0EE1C4 7F0B9694 254A0004 */ addiu $t2, $t2, 4 +.L7F0B9698: +/* 0EE1C8 7F0B9698 150BFFE9 */ bne $t0, $t3, .L7F0B9640 +/* 0EE1CC 7F0B969C 8C660000 */ lw $a2, ($v1) +/* 0EE1D0 7F0B96A0 90C70000 */ lbu $a3, ($a2) +/* 0EE1D4 7F0B96A4 24A50001 */ addiu $a1, $a1, 1 +/* 0EE1D8 7F0B96A8 00A7082A */ slt $at, $a1, $a3 +/* 0EE1DC 7F0B96AC 5420FFE3 */ bnezl $at, .L7F0B963C +/* 0EE1E0 7F0B96B0 00004025 */ move $t0, $zero +.L7F0B96B4: +/* 0EE1E4 7F0B96B4 8C790008 */ lw $t9, 8($v1) +.L7F0B96B8: +/* 0EE1E8 7F0B96B8 24630008 */ addiu $v1, $v1, 8 +/* 0EE1EC 7F0B96BC 5720FFCF */ bnezl $t9, .L7F0B95FC +/* 0EE1F0 7F0B96C0 906F0004 */ lbu $t7, 4($v1) +.L7F0B96C4: +/* 0EE1F4 7F0B96C4 03E00008 */ jr $ra +/* 0EE1F8 7F0B96C8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B96CC(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058D54 +.word 0x7f7fffff /*3.4028235e38*/ +glabel D_80058D58 +.word 0xff7fffff /*-3.4028235e38*/ +.text +glabel sub_GAME_7F0B96CC +/* 0EE1FC 7F0B96CC 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 0EE200 7F0B96D0 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE204 7F0B96D4 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE208 7F0B96D8 000440C0 */ sll $t0, $a0, 3 +/* 0EE20C 7F0B96DC AFB00020 */ sw $s0, 0x20($sp) +/* 0EE210 7F0B96E0 00A08025 */ move $s0, $a1 +/* 0EE214 7F0B96E4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0EE218 7F0B96E8 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0EE21C 7F0B96EC 27A40078 */ addiu $a0, $sp, 0x78 +/* 0EE220 7F0B96F0 27A6006C */ addiu $a2, $sp, 0x6c +/* 0EE224 7F0B96F4 00001025 */ move $v0, $zero +/* 0EE228 7F0B96F8 01C83821 */ addu $a3, $t6, $t0 +/* 0EE22C 7F0B96FC 24C60004 */ addiu $a2, $a2, 4 +/* 0EE230 7F0B9700 00C4082B */ sltu $at, $a2, $a0 +/* 0EE234 7F0B9704 1020000B */ beqz $at, .L7F0B9734 +/* 0EE238 7F0B9708 8CEF0000 */ lw $t7, ($a3) +.L7F0B970C: +/* 0EE23C 7F0B970C 01E21821 */ addu $v1, $t7, $v0 +/* 0EE240 7F0B9710 C4740004 */ lwc1 $f20, 4($v1) +/* 0EE244 7F0B9714 C4720010 */ lwc1 $f18, 0x10($v1) +/* 0EE248 7F0B9718 24C60004 */ addiu $a2, $a2, 4 +/* 0EE24C 7F0B971C 00C4082B */ sltu $at, $a2, $a0 +/* 0EE250 7F0B9720 4612A481 */ sub.s $f18, $f20, $f18 +/* 0EE254 7F0B9724 24420004 */ addiu $v0, $v0, 4 +/* 0EE258 7F0B9728 E4D2FFF8 */ swc1 $f18, -8($a2) +/* 0EE25C 7F0B972C 1420FFF7 */ bnez $at, .L7F0B970C +/* 0EE260 7F0B9730 8CEF0000 */ lw $t7, ($a3) +.L7F0B9734: +/* 0EE264 7F0B9734 01E21821 */ addu $v1, $t7, $v0 +/* 0EE268 7F0B9738 C4740004 */ lwc1 $f20, 4($v1) +/* 0EE26C 7F0B973C C4720010 */ lwc1 $f18, 0x10($v1) +/* 0EE270 7F0B9740 24420004 */ addiu $v0, $v0, 4 +/* 0EE274 7F0B9744 4612A481 */ sub.s $f18, $f20, $f18 +/* 0EE278 7F0B9748 E4D2FFFC */ swc1 $f18, -4($a2) +/* 0EE27C 7F0B974C 00001025 */ move $v0, $zero +/* 0EE280 7F0B9750 27A40060 */ addiu $a0, $sp, 0x60 +/* 0EE284 7F0B9754 27A5006C */ addiu $a1, $sp, 0x6c +/* 0EE288 7F0B9758 24840004 */ addiu $a0, $a0, 4 +/* 0EE28C 7F0B975C 0085082B */ sltu $at, $a0, $a1 +/* 0EE290 7F0B9760 1020000B */ beqz $at, .L7F0B9790 +/* 0EE294 7F0B9764 8CF80000 */ lw $t8, ($a3) +.L7F0B9768: +/* 0EE298 7F0B9768 03021821 */ addu $v1, $t8, $v0 +/* 0EE29C 7F0B976C C474001C */ lwc1 $f20, 0x1c($v1) +/* 0EE2A0 7F0B9770 C4720010 */ lwc1 $f18, 0x10($v1) +/* 0EE2A4 7F0B9774 24840004 */ addiu $a0, $a0, 4 +/* 0EE2A8 7F0B9778 0085082B */ sltu $at, $a0, $a1 +/* 0EE2AC 7F0B977C 4612A481 */ sub.s $f18, $f20, $f18 +/* 0EE2B0 7F0B9780 24420004 */ addiu $v0, $v0, 4 +/* 0EE2B4 7F0B9784 E492FFF8 */ swc1 $f18, -8($a0) +/* 0EE2B8 7F0B9788 1420FFF7 */ bnez $at, .L7F0B9768 +/* 0EE2BC 7F0B978C 8CF80000 */ lw $t8, ($a3) +.L7F0B9790: +/* 0EE2C0 7F0B9790 03021821 */ addu $v1, $t8, $v0 +/* 0EE2C4 7F0B9794 C474001C */ lwc1 $f20, 0x1c($v1) +/* 0EE2C8 7F0B9798 C4720010 */ lwc1 $f18, 0x10($v1) +/* 0EE2CC 7F0B979C 24420004 */ addiu $v0, $v0, 4 +/* 0EE2D0 7F0B97A0 4612A481 */ sub.s $f18, $f20, $f18 +/* 0EE2D4 7F0B97A4 E492FFFC */ swc1 $f18, -4($a0) +/* 0EE2D8 7F0B97A8 C7A80070 */ lwc1 $f8, 0x70($sp) +/* 0EE2DC 7F0B97AC C7AA0068 */ lwc1 $f10, 0x68($sp) +/* 0EE2E0 7F0B97B0 C7A60064 */ lwc1 $f6, 0x64($sp) +/* 0EE2E4 7F0B97B4 460A4102 */ mul.s $f4, $f8, $f10 +/* 0EE2E8 7F0B97B8 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 0EE2EC 7F0B97BC 46083282 */ mul.s $f10, $f6, $f8 +/* 0EE2F0 7F0B97C0 460A2181 */ sub.s $f6, $f4, $f10 +/* 0EE2F4 7F0B97C4 E6060000 */ swc1 $f6, ($s0) +/* 0EE2F8 7F0B97C8 C7A40060 */ lwc1 $f4, 0x60($sp) +/* 0EE2FC 7F0B97CC C7A80074 */ lwc1 $f8, 0x74($sp) +/* 0EE300 7F0B97D0 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 0EE304 7F0B97D4 C6100000 */ lwc1 $f16, ($s0) +/* 0EE308 7F0B97D8 46044282 */ mul.s $f10, $f8, $f4 +/* 0EE30C 7F0B97DC C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 0EE310 7F0B97E0 46083102 */ mul.s $f4, $f6, $f8 +/* 0EE314 7F0B97E4 46045181 */ sub.s $f6, $f10, $f4 +/* 0EE318 7F0B97E8 E6060004 */ swc1 $f6, 4($s0) +/* 0EE31C 7F0B97EC C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 0EE320 7F0B97F0 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 0EE324 7F0B97F4 C7A60060 */ lwc1 $f6, 0x60($sp) +/* 0EE328 7F0B97F8 C6120004 */ lwc1 $f18, 4($s0) +/* 0EE32C 7F0B97FC 460A4102 */ mul.s $f4, $f8, $f10 +/* 0EE330 7F0B9800 C7A80070 */ lwc1 $f8, 0x70($sp) +/* 0EE334 7F0B9804 46083282 */ mul.s $f10, $f6, $f8 +/* 0EE338 7F0B9808 460A2181 */ sub.s $f6, $f4, $f10 +/* 0EE33C 7F0B980C 46108202 */ mul.s $f8, $f16, $f16 +/* 0EE340 7F0B9810 00000000 */ nop +/* 0EE344 7F0B9814 46129102 */ mul.s $f4, $f18, $f18 +/* 0EE348 7F0B9818 E6060008 */ swc1 $f6, 8($s0) +/* 0EE34C 7F0B981C C60E0008 */ lwc1 $f14, 8($s0) +/* 0EE350 7F0B9820 AFA80040 */ sw $t0, 0x40($sp) +/* 0EE354 7F0B9824 460E7182 */ mul.s $f6, $f14, $f14 +/* 0EE358 7F0B9828 46044280 */ add.s $f10, $f8, $f4 +/* 0EE35C 7F0B982C 0C007DF8 */ jal sqrtf +/* 0EE360 7F0B9830 460A3300 */ add.s $f12, $f6, $f10 +/* 0EE364 7F0B9834 44804000 */ mtc1 $zero, $f8 +/* 0EE368 7F0B9838 8FA80040 */ lw $t0, 0x40($sp) +/* 0EE36C 7F0B983C 46000506 */ mov.s $f20, $f0 +/* 0EE370 7F0B9840 46080032 */ c.eq.s $f0, $f8 +/* 0EE374 7F0B9844 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0EE378 7F0B9848 00001825 */ move $v1, $zero +/* 0EE37C 7F0B984C 45030005 */ bc1tl .L7F0B9864 +/* 0EE380 7F0B9850 C6060000 */ lwc1 $f6, ($s0) +/* 0EE384 7F0B9854 44812000 */ mtc1 $at, $f4 +/* 0EE388 7F0B9858 00000000 */ nop +/* 0EE38C 7F0B985C 46002503 */ div.s $f20, $f4, $f0 +/* 0EE390 7F0B9860 C6060000 */ lwc1 $f6, ($s0) +.L7F0B9864: +/* 0EE394 7F0B9864 C6080004 */ lwc1 $f8, 4($s0) +/* 0EE398 7F0B9868 3C198008 */ lui $t9, %hi(ptr_bgdata_portals) +/* 0EE39C 7F0B986C 46143282 */ mul.s $f10, $f6, $f20 +/* 0EE3A0 7F0B9870 C6060008 */ lwc1 $f6, 8($s0) +/* 0EE3A4 7F0B9874 3C018006 */ lui $at, %hi(D_80058D54) +/* 0EE3A8 7F0B9878 46144102 */ mul.s $f4, $f8, $f20 +/* 0EE3AC 7F0B987C E60A0000 */ swc1 $f10, ($s0) +/* 0EE3B0 7F0B9880 46143282 */ mul.s $f10, $f6, $f20 +/* 0EE3B4 7F0B9884 E6040004 */ swc1 $f4, 4($s0) +/* 0EE3B8 7F0B9888 E60A0008 */ swc1 $f10, 8($s0) +/* 0EE3BC 7F0B988C 8F39FF80 */ lw $t9, %lo(ptr_bgdata_portals)($t9) +/* 0EE3C0 7F0B9890 C4228D54 */ lwc1 $f2, %lo(D_80058D54)($at) +/* 0EE3C4 7F0B9894 3C018006 */ lui $at, %hi(D_80058D58) +/* 0EE3C8 7F0B9898 03284821 */ addu $t1, $t9, $t0 +/* 0EE3CC 7F0B989C 8D250000 */ lw $a1, ($t1) +/* 0EE3D0 7F0B98A0 C42C8D58 */ lwc1 $f12, %lo(D_80058D58)($at) +/* 0EE3D4 7F0B98A4 90A60000 */ lbu $a2, ($a1) +/* 0EE3D8 7F0B98A8 00A01025 */ move $v0, $a1 +/* 0EE3DC 7F0B98AC 18C0001C */ blez $a2, .L7F0B9920 +/* 0EE3E0 7F0B98B0 00062080 */ sll $a0, $a2, 2 +/* 0EE3E4 7F0B98B4 00862023 */ subu $a0, $a0, $a2 +/* 0EE3E8 7F0B98B8 00042080 */ sll $a0, $a0, 2 +/* 0EE3EC 7F0B98BC C60E0008 */ lwc1 $f14, 8($s0) +/* 0EE3F0 7F0B98C0 C6100000 */ lwc1 $f16, ($s0) +/* 0EE3F4 7F0B98C4 C6120004 */ lwc1 $f18, 4($s0) +.L7F0B98C8: +/* 0EE3F8 7F0B98C8 C4480004 */ lwc1 $f8, 4($v0) +/* 0EE3FC 7F0B98CC C4460008 */ lwc1 $f6, 8($v0) +/* 0EE400 7F0B98D0 2463000C */ addiu $v1, $v1, 0xc +/* 0EE404 7F0B98D4 46104102 */ mul.s $f4, $f8, $f16 +/* 0EE408 7F0B98D8 0064082A */ slt $at, $v1, $a0 +/* 0EE40C 7F0B98DC 46123282 */ mul.s $f10, $f6, $f18 +/* 0EE410 7F0B98E0 C446000C */ lwc1 $f6, 0xc($v0) +/* 0EE414 7F0B98E4 460A2200 */ add.s $f8, $f4, $f10 +/* 0EE418 7F0B98E8 46067102 */ mul.s $f4, $f14, $f6 +/* 0EE41C 7F0B98EC 46082000 */ add.s $f0, $f4, $f8 +/* 0EE420 7F0B98F0 4602003C */ c.lt.s $f0, $f2 +/* 0EE424 7F0B98F4 00000000 */ nop +/* 0EE428 7F0B98F8 45020003 */ bc1fl .L7F0B9908 +/* 0EE42C 7F0B98FC 4600603C */ c.lt.s $f12, $f0 +/* 0EE430 7F0B9900 46000086 */ mov.s $f2, $f0 +/* 0EE434 7F0B9904 4600603C */ c.lt.s $f12, $f0 +.L7F0B9908: +/* 0EE438 7F0B9908 00000000 */ nop +/* 0EE43C 7F0B990C 45000002 */ bc1f .L7F0B9918 +/* 0EE440 7F0B9910 00000000 */ nop +/* 0EE444 7F0B9914 46000306 */ mov.s $f12, $f0 +.L7F0B9918: +/* 0EE448 7F0B9918 1420FFEB */ bnez $at, .L7F0B98C8 +/* 0EE44C 7F0B991C 2442000C */ addiu $v0, $v0, 0xc +.L7F0B9920: +/* 0EE450 7F0B9920 E602000C */ swc1 $f2, 0xc($s0) +/* 0EE454 7F0B9924 E60C0010 */ swc1 $f12, 0x10($s0) +/* 0EE458 7F0B9928 8FBF0024 */ lw $ra, 0x24($sp) +/* 0EE45C 7F0B992C 8FB00020 */ lw $s0, 0x20($sp) +/* 0EE460 7F0B9930 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0EE464 7F0B9934 03E00008 */ jr $ra +/* 0EE468 7F0B9938 27BD0078 */ addiu $sp, $sp, 0x78 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B993C(void) { + f32 sp1C; + + // Node 0 + sub_GAME_7F0B96CC(&sp1C); + if (((sp24 * sp24) + (sp1C * sp1C)) < D_80058D5C) + { + // Node 1 + } + // Node 2 + return 1; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058D5C +.word 0x3f7fbe77 /*0.99900001*/ +.text +glabel sub_GAME_7F0B993C +/* 0EE46C 7F0B993C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0EE470 7F0B9940 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EE474 7F0B9944 0FC2E5B3 */ jal sub_GAME_7F0B96CC +/* 0EE478 7F0B9948 27A5001C */ addiu $a1, $sp, 0x1c +/* 0EE47C 7F0B994C C7A00024 */ lwc1 $f0, 0x24($sp) +/* 0EE480 7F0B9950 C7A2001C */ lwc1 $f2, 0x1c($sp) +/* 0EE484 7F0B9954 3C018006 */ lui $at, %hi(D_80058D5C) +/* 0EE488 7F0B9958 46000102 */ mul.s $f4, $f0, $f0 +/* 0EE48C 7F0B995C C42A8D5C */ lwc1 $f10, %lo(D_80058D5C)($at) +/* 0EE490 7F0B9960 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EE494 7F0B9964 46021182 */ mul.s $f6, $f2, $f2 +/* 0EE498 7F0B9968 24020001 */ li $v0, 1 +/* 0EE49C 7F0B996C 46062200 */ add.s $f8, $f4, $f6 +/* 0EE4A0 7F0B9970 460A403C */ c.lt.s $f8, $f10 +/* 0EE4A4 7F0B9974 00000000 */ nop +/* 0EE4A8 7F0B9978 45000003 */ bc1f .L7F0B9988 +/* 0EE4AC 7F0B997C 00000000 */ nop +/* 0EE4B0 7F0B9980 10000001 */ b .L7F0B9988 +/* 0EE4B4 7F0B9984 00001025 */ move $v0, $zero +.L7F0B9988: +/* 0EE4B8 7F0B9988 03E00008 */ jr $ra +/* 0EE4BC 7F0B998C 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B9990(s32 arg0) { + void *temp_t8; + s32 temp_t9; + s32 temp_a0; + f32 temp_f2; + s32 temp_v1; + f32 temp_f2_6; + f32 temp_f2_2; + s32 temp_v1_2; + f32 temp_f2_3; + f32 temp_f2_4; + f32 temp_f2_5; + s32 phi_v1; + s32 phi_v1_2; + f32 phi_f2; + f32 phi_f2_2; + f32 phi_f2_3; + + // Node 0 + temp_t8 = (ptr_bgdata_portals + (arg0 * 8)); + temp_t9 = (((s32) temp_t8->unk7 >> 4) & 0xf); + temp_a0 = -(s32) (temp_t9 & 3); + temp_f2 = ((f32) (temp_t8->unk7 & 0xf) * 0.25f); + phi_f2 = temp_f2; + if (temp_t9 != 0) + { + // Node 1 + phi_v1 = temp_t9; + phi_v1_2 = temp_t9; + phi_f2_2 = temp_f2; + phi_f2_3 = temp_f2; + if (((temp_a0 == 0) || ((temp_a0 + temp_t9) != temp_v1)) || (temp_v1 != 0)) + { +loop_4: + // Node 4 + temp_f2_2 = (phi_f2_2 + phi_f2_2); + temp_v1_2 = (phi_v1_2 + -4); + temp_f2_3 = (temp_f2_2 + temp_f2_2); + temp_f2_4 = (temp_f2_3 + temp_f2_3); + temp_f2_5 = (temp_f2_4 + temp_f2_4); + phi_v1_2 = temp_v1_2; + phi_f2 = temp_f2_5; + phi_f2_2 = temp_f2_5; + if (temp_v1_2 != 0) + { + goto loop_4; + } + } + else + { + + } + } + // Node 5 + return phi_f2; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9990 +/* 0EE4C0 7F0B9990 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE4C4 7F0B9994 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE4C8 7F0B9998 000478C0 */ sll $t7, $a0, 3 +/* 0EE4CC 7F0B999C 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0EE4D0 7F0B99A0 01CFC021 */ addu $t8, $t6, $t7 +/* 0EE4D4 7F0B99A4 93020007 */ lbu $v0, 7($t8) +/* 0EE4D8 7F0B99A8 44814000 */ mtc1 $at, $f8 +/* 0EE4DC 7F0B99AC 3048000F */ andi $t0, $v0, 0xf +/* 0EE4E0 7F0B99B0 44882000 */ mtc1 $t0, $f4 +/* 0EE4E4 7F0B99B4 00022903 */ sra $a1, $v0, 4 +/* 0EE4E8 7F0B99B8 30B9000F */ andi $t9, $a1, 0xf +/* 0EE4EC 7F0B99BC 468021A0 */ cvt.s.w $f6, $f4 +/* 0EE4F0 7F0B99C0 33240003 */ andi $a0, $t9, 3 +/* 0EE4F4 7F0B99C4 03201825 */ move $v1, $t9 +/* 0EE4F8 7F0B99C8 00042023 */ negu $a0, $a0 +/* 0EE4FC 7F0B99CC 46083082 */ mul.s $f2, $f6, $f8 +/* 0EE500 7F0B99D0 1320000E */ beqz $t9, .L7F0B9A0C +/* 0EE504 7F0B99D4 00000000 */ nop +/* 0EE508 7F0B99D8 10800006 */ beqz $a0, .L7F0B99F4 +/* 0EE50C 7F0B99DC 00991021 */ addu $v0, $a0, $t9 +.L7F0B99E0: +/* 0EE510 7F0B99E0 2463FFFF */ addiu $v1, $v1, -1 +/* 0EE514 7F0B99E4 1443FFFE */ bne $v0, $v1, .L7F0B99E0 +/* 0EE518 7F0B99E8 46021080 */ add.s $f2, $f2, $f2 +/* 0EE51C 7F0B99EC 10600007 */ beqz $v1, .L7F0B9A0C +/* 0EE520 7F0B99F0 00000000 */ nop +.L7F0B99F4: +/* 0EE524 7F0B99F4 46021080 */ add.s $f2, $f2, $f2 +/* 0EE528 7F0B99F8 2463FFFC */ addiu $v1, $v1, -4 +/* 0EE52C 7F0B99FC 46021080 */ add.s $f2, $f2, $f2 +/* 0EE530 7F0B9A00 46021080 */ add.s $f2, $f2, $f2 +/* 0EE534 7F0B9A04 1460FFFB */ bnez $v1, .L7F0B99F4 +/* 0EE538 7F0B9A08 46021080 */ add.s $f2, $f2, $f2 +.L7F0B9A0C: +/* 0EE53C 7F0B9A0C 03E00008 */ jr $ra +/* 0EE540 7F0B9A10 46001006 */ mov.s $f0, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B9A14(s32 arg0) { + // Node 0 + return (ptr_bgdata_portals + (arg0 * 8))->unk7; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9A14 +/* 0EE544 7F0B9A14 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE548 7F0B9A18 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE54C 7F0B9A1C 000478C0 */ sll $t7, $a0, 3 +/* 0EE550 7F0B9A20 01CFC021 */ addu $t8, $t6, $t7 +/* 0EE554 7F0B9A24 03E00008 */ jr $ra +/* 0EE558 7F0B9A28 93020007 */ lbu $v0, 7($t8) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B9A2C(s32 arg0) { + void *temp_v1; + s32 temp_v0; + s32 temp_t8; + s8 phi_v0; + + // Node 0 + temp_v1 = (ptr_bgdata_portals + (arg0 * 8)); + temp_v0 = (temp_v1->unk7 + 1); + if (temp_v1->unk7 >= 0xff) + { + // Node 1 + phi_v0 = (u8)0xff; + } + else + { + // Node 2 + temp_t8 = (temp_v0 & 0xff); + phi_v0 = temp_t8; + if (((temp_t8 >> 4) & 0xf) > 0) + { + // Node 3 + phi_v0 = ((temp_t8 | 8) & 0xff); + } + } + // Node 4 + temp_v1->unk7 = (s8) phi_v0; + return temp_v0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9A2C +/* 0EE55C 7F0B9A2C 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE560 7F0B9A30 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE564 7F0B9A34 000478C0 */ sll $t7, $a0, 3 +/* 0EE568 7F0B9A38 01CF1821 */ addu $v1, $t6, $t7 +/* 0EE56C 7F0B9A3C 90620007 */ lbu $v0, 7($v1) +/* 0EE570 7F0B9A40 284100FF */ slti $at, $v0, 0xff +/* 0EE574 7F0B9A44 14200003 */ bnez $at, .L7F0B9A54 +/* 0EE578 7F0B9A48 24420001 */ addiu $v0, $v0, 1 +/* 0EE57C 7F0B9A4C 10000009 */ b .L7F0B9A74 +/* 0EE580 7F0B9A50 240200FF */ li $v0, 255 +.L7F0B9A54: +/* 0EE584 7F0B9A54 305800FF */ andi $t8, $v0, 0xff +/* 0EE588 7F0B9A58 0018C903 */ sra $t9, $t8, 4 +/* 0EE58C 7F0B9A5C 3328000F */ andi $t0, $t9, 0xf +/* 0EE590 7F0B9A60 19000004 */ blez $t0, .L7F0B9A74 +/* 0EE594 7F0B9A64 03001025 */ move $v0, $t8 +/* 0EE598 7F0B9A68 37020008 */ ori $v0, $t8, 8 +/* 0EE59C 7F0B9A6C 304900FF */ andi $t1, $v0, 0xff +/* 0EE5A0 7F0B9A70 01201025 */ move $v0, $t1 +.L7F0B9A74: +/* 0EE5A4 7F0B9A74 03E00008 */ jr $ra +/* 0EE5A8 7F0B9A78 A0620007 */ sb $v0, 7($v1) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B9A7C(s32 arg0) { + void *temp_v1; + s8 temp_t1; + s8 phi_v0; + + // Node 0 + temp_v1 = (ptr_bgdata_portals + (arg0 * 8)); + if ((((s32) temp_v1->unk7 >> 4) & 0xf) == 0) + { + // Node 1 + phi_v0 = (s8) temp_v1->unk7; + if (temp_v1->unk7 > 0) + { + // Node 2 + phi_v0 = ((temp_v1->unk7 + -1) & 0xff); + } + } + else + { + // Node 3 + temp_t1 = ((temp_v1->unk7 + -1) & 0xff); + phi_v0 = temp_t1; + if ((temp_t1 & 0xf) < 8) + { + // Node 4 + phi_v0 = ((temp_t1 + -8) & 0xff); + } + } + // Node 5 + temp_v1->unk7 = (s8) phi_v0; + return temp_v1->unk7; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9A7C +/* 0EE5AC 7F0B9A7C 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE5B0 7F0B9A80 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE5B4 7F0B9A84 000478C0 */ sll $t7, $a0, 3 +/* 0EE5B8 7F0B9A88 01CF1821 */ addu $v1, $t6, $t7 +/* 0EE5BC 7F0B9A8C 90620007 */ lbu $v0, 7($v1) +/* 0EE5C0 7F0B9A90 0002C103 */ sra $t8, $v0, 4 +/* 0EE5C4 7F0B9A94 3319000F */ andi $t9, $t8, 0xf +/* 0EE5C8 7F0B9A98 17200007 */ bnez $t9, .L7F0B9AB8 +/* 0EE5CC 7F0B9A9C 00402825 */ move $a1, $v0 +/* 0EE5D0 7F0B9AA0 18A0000E */ blez $a1, .L7F0B9ADC +/* 0EE5D4 7F0B9AA4 00000000 */ nop +/* 0EE5D8 7F0B9AA8 2442FFFF */ addiu $v0, $v0, -1 +/* 0EE5DC 7F0B9AAC 304800FF */ andi $t0, $v0, 0xff +/* 0EE5E0 7F0B9AB0 1000000A */ b .L7F0B9ADC +/* 0EE5E4 7F0B9AB4 01001025 */ move $v0, $t0 +.L7F0B9AB8: +/* 0EE5E8 7F0B9AB8 2442FFFF */ addiu $v0, $v0, -1 +/* 0EE5EC 7F0B9ABC 304900FF */ andi $t1, $v0, 0xff +/* 0EE5F0 7F0B9AC0 312A000F */ andi $t2, $t1, 0xf +/* 0EE5F4 7F0B9AC4 29410008 */ slti $at, $t2, 8 +/* 0EE5F8 7F0B9AC8 10200004 */ beqz $at, .L7F0B9ADC +/* 0EE5FC 7F0B9ACC 01201025 */ move $v0, $t1 +/* 0EE600 7F0B9AD0 2522FFF8 */ addiu $v0, $t1, -8 +/* 0EE604 7F0B9AD4 304B00FF */ andi $t3, $v0, 0xff +/* 0EE608 7F0B9AD8 01601025 */ move $v0, $t3 +.L7F0B9ADC: +/* 0EE60C 7F0B9ADC 03E00008 */ jr $ra +/* 0EE610 7F0B9AE0 A0620007 */ sb $v0, 7($v1) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B9AE4(s32 arg0) { + // Node 0 + return ((ptr_bgdata_portals + (arg0 * 8))->unk6 & 1); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9AE4 +/* 0EE614 7F0B9AE4 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE618 7F0B9AE8 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE61C 7F0B9AEC 000478C0 */ sll $t7, $a0, 3 +/* 0EE620 7F0B9AF0 01CFC021 */ addu $t8, $t6, $t7 +/* 0EE624 7F0B9AF4 93020006 */ lbu $v0, 6($t8) +/* 0EE628 7F0B9AF8 30590001 */ andi $t9, $v0, 1 +/* 0EE62C 7F0B9AFC 03E00008 */ jr $ra +/* 0EE630 7F0B9B00 03201025 */ move $v0, $t9 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B9B04(s32 arg0) { + // Node 0 + return ((ptr_bgdata_portals + (arg0 * 8))->unk6 & 2); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9B04 +/* 0EE634 7F0B9B04 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE638 7F0B9B08 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE63C 7F0B9B0C 000478C0 */ sll $t7, $a0, 3 +/* 0EE640 7F0B9B10 01CFC021 */ addu $t8, $t6, $t7 +/* 0EE644 7F0B9B14 93020006 */ lbu $v0, 6($t8) +/* 0EE648 7F0B9B18 30590002 */ andi $t9, $v0, 2 +/* 0EE64C 7F0B9B1C 03E00008 */ jr $ra +/* 0EE650 7F0B9B20 03201025 */ move $v0, $t9 +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0B9B24(s32 arg0) { + void *temp_v0; + + // Node 0 + temp_v0 = (ptr_bgdata_portals + (arg0 * 8)); + temp_v0->unk6 = (s8) (temp_v0->unk6 | 2); + return temp_v0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9B24 +/* 0EE654 7F0B9B24 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE658 7F0B9B28 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE65C 7F0B9B2C 000478C0 */ sll $t7, $a0, 3 +/* 0EE660 7F0B9B30 01CF1021 */ addu $v0, $t6, $t7 +/* 0EE664 7F0B9B34 90580006 */ lbu $t8, 6($v0) +/* 0EE668 7F0B9B38 37190002 */ ori $t9, $t8, 2 +/* 0EE66C 7F0B9B3C 03E00008 */ jr $ra +/* 0EE670 7F0B9B40 A0590006 */ sb $t9, 6($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0B9B44(s32 arg0) { + void *temp_v0; + + // Node 0 + temp_v0 = (ptr_bgdata_portals + (arg0 * 8)); + temp_v0->unk6 = (s8) (temp_v0->unk6 & 0xfd); + return temp_v0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9B44 +/* 0EE674 7F0B9B44 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE678 7F0B9B48 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE67C 7F0B9B4C 000478C0 */ sll $t7, $a0, 3 +/* 0EE680 7F0B9B50 01CF1021 */ addu $v0, $t6, $t7 +/* 0EE684 7F0B9B54 90580006 */ lbu $t8, 6($v0) +/* 0EE688 7F0B9B58 331900FD */ andi $t9, $t8, 0xfd +/* 0EE68C 7F0B9B5C 03E00008 */ jr $ra +/* 0EE690 7F0B9B60 A0590006 */ sb $t9, 6($v0) +) +#endif + + + + + +#ifdef NONMATCHING +s8 sub_GAME_7F0B9B64(s32 arg0) { + s32 temp_v1; + void *temp_a1; + + // Node 0 + temp_v1 = (arg0 * 8); + temp_a1 = (ptr_bgdata_portals + temp_v1); + temp_a1->unk4 = (s8) temp_a1->unk5; + (ptr_bgdata_portals + temp_v1)->unk5 = (s8) temp_a1->unk4; + return temp_a1->unk4; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9B64 +/* 0EE694 7F0B9B64 3C068008 */ lui $a2, %hi(ptr_bgdata_portals) +/* 0EE698 7F0B9B68 24C6FF80 */ addiu $a2, %lo(ptr_bgdata_portals) # addiu $a2, $a2, -0x80 +/* 0EE69C 7F0B9B6C 8CCE0000 */ lw $t6, ($a2) +/* 0EE6A0 7F0B9B70 000418C0 */ sll $v1, $a0, 3 +/* 0EE6A4 7F0B9B74 01C32821 */ addu $a1, $t6, $v1 +/* 0EE6A8 7F0B9B78 90AF0005 */ lbu $t7, 5($a1) +/* 0EE6AC 7F0B9B7C 90A20004 */ lbu $v0, 4($a1) +/* 0EE6B0 7F0B9B80 A0AF0004 */ sb $t7, 4($a1) +/* 0EE6B4 7F0B9B84 8CD80000 */ lw $t8, ($a2) +/* 0EE6B8 7F0B9B88 0303C821 */ addu $t9, $t8, $v1 +/* 0EE6BC 7F0B9B8C 03E00008 */ jr $ra +/* 0EE6C0 7F0B9B90 A3220005 */ sb $v0, 5($t9) +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B9B94(s32 arg0) { + s32 sp24; + ?32 sp28; + f32 sp34; + f32 sp38; + f32 sp3C; + f32 sp48; + f32 sp54; + void *temp_v0; + f32 temp_f0; + f32 phi_f16; + f32 phi_f18; + f32 phi_f14; + s32 phi_v0; + f32 phi_f12; + f32 phi_return; + + // Node 0 + temp_v0 = (ptr_bgdata_portals + (arg0 * 8)); + sp28 = (?32) temp_v0->unk5; + sub_GAME_7F0B92B4(temp_v0->unk4, &sp54); + sub_GAME_7F0B92B4(sp28, &sp48); + sub_GAME_7F0B96CC(arg0, &sp34); + phi_f16 = sp3C; + phi_f18 = sp34; + phi_f14 = sp40; + phi_v0 = 0; + phi_f12 = sp44; + if (sp44 < ((sp5C * sp3C) + ((sp34 * sp54) + (sp38 * sp58)))) + { + // Node 1 + sp24 = 1; + sub_GAME_7F0B9B64(sp44, sp40, arg0); + sp38 = (f32) -sp38; + phi_f16 = -sp3C; + phi_f18 = -sp34; + phi_f14 = -sp44; + phi_v0 = 1; + phi_f12 = -sp40; + } + // Node 2 + sp3C = (f32) phi_f16; + sp34 = (f32) phi_f18; + temp_f0 = ((sp50 * phi_f16) + ((phi_f18 * sp48) + (sp38 * sp4C))); + phi_return = temp_f0; + if (temp_f0 <= phi_f14) + { + // Node 3 + phi_return = temp_f0; + if (phi_v0 != 0) + { + // Node 4 + sp24 = (s32) phi_v0; + phi_return = sub_GAME_7F0B9B64(phi_f12, phi_f14, arg0); + } + } + // Node 5 + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9B94 +/* 0EE6C4 7F0B9B94 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE6C8 7F0B9B98 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE6CC 7F0B9B9C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0EE6D0 7F0B9BA0 0004C0C0 */ sll $t8, $a0, 3 +/* 0EE6D4 7F0B9BA4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EE6D8 7F0B9BA8 AFA40060 */ sw $a0, 0x60($sp) +/* 0EE6DC 7F0B9BAC 01D81021 */ addu $v0, $t6, $t8 +/* 0EE6E0 7F0B9BB0 90590005 */ lbu $t9, 5($v0) +/* 0EE6E4 7F0B9BB4 90440004 */ lbu $a0, 4($v0) +/* 0EE6E8 7F0B9BB8 27A50054 */ addiu $a1, $sp, 0x54 +/* 0EE6EC 7F0B9BBC 0FC2E4AD */ jal sub_GAME_7F0B92B4 +/* 0EE6F0 7F0B9BC0 AFB90028 */ sw $t9, 0x28($sp) +/* 0EE6F4 7F0B9BC4 8FA40028 */ lw $a0, 0x28($sp) +/* 0EE6F8 7F0B9BC8 0FC2E4AD */ jal sub_GAME_7F0B92B4 +/* 0EE6FC 7F0B9BCC 27A50048 */ addiu $a1, $sp, 0x48 +/* 0EE700 7F0B9BD0 8FA40060 */ lw $a0, 0x60($sp) +/* 0EE704 7F0B9BD4 0FC2E5B3 */ jal sub_GAME_7F0B96CC +/* 0EE708 7F0B9BD8 27A50034 */ addiu $a1, $sp, 0x34 +/* 0EE70C 7F0B9BDC C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0EE710 7F0B9BE0 C7A60058 */ lwc1 $f6, 0x58($sp) +/* 0EE714 7F0B9BE4 C7B20034 */ lwc1 $f18, 0x34($sp) +/* 0EE718 7F0B9BE8 C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 0EE71C 7F0B9BEC 46062202 */ mul.s $f8, $f4, $f6 +/* 0EE720 7F0B9BF0 C7B0003C */ lwc1 $f16, 0x3c($sp) +/* 0EE724 7F0B9BF4 C7AC0044 */ lwc1 $f12, 0x44($sp) +/* 0EE728 7F0B9BF8 460A9102 */ mul.s $f4, $f18, $f10 +/* 0EE72C 7F0B9BFC C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 0EE730 7F0B9C00 C7AE0040 */ lwc1 $f14, 0x40($sp) +/* 0EE734 7F0B9C04 00001025 */ move $v0, $zero +/* 0EE738 7F0B9C08 8FA40060 */ lw $a0, 0x60($sp) +/* 0EE73C 7F0B9C0C 46082180 */ add.s $f6, $f4, $f8 +/* 0EE740 7F0B9C10 46105102 */ mul.s $f4, $f10, $f16 +/* 0EE744 7F0B9C14 46062080 */ add.s $f2, $f4, $f6 +/* 0EE748 7F0B9C18 4602603C */ c.lt.s $f12, $f2 +/* 0EE74C 7F0B9C1C 00000000 */ nop +/* 0EE750 7F0B9C20 45020012 */ bc1fl .L7F0B9C6C +/* 0EE754 7F0B9C24 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0EE758 7F0B9C28 24020001 */ li $v0, 1 +/* 0EE75C 7F0B9C2C 0FC2E6D9 */ jal sub_GAME_7F0B9B64 +/* 0EE760 7F0B9C30 AFA20024 */ sw $v0, 0x24($sp) +/* 0EE764 7F0B9C34 C7AC0044 */ lwc1 $f12, 0x44($sp) +/* 0EE768 7F0B9C38 C7A00040 */ lwc1 $f0, 0x40($sp) +/* 0EE76C 7F0B9C3C C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0EE770 7F0B9C40 C7B0003C */ lwc1 $f16, 0x3c($sp) +/* 0EE774 7F0B9C44 C7B20034 */ lwc1 $f18, 0x34($sp) +/* 0EE778 7F0B9C48 46006387 */ neg.s $f14, $f12 +/* 0EE77C 7F0B9C4C 46000307 */ neg.s $f12, $f0 +/* 0EE780 7F0B9C50 46004287 */ neg.s $f10, $f8 +/* 0EE784 7F0B9C54 8FA20024 */ lw $v0, 0x24($sp) +/* 0EE788 7F0B9C58 E7AA0038 */ swc1 $f10, 0x38($sp) +/* 0EE78C 7F0B9C5C E7AC0044 */ swc1 $f12, 0x44($sp) +/* 0EE790 7F0B9C60 46008407 */ neg.s $f16, $f16 +/* 0EE794 7F0B9C64 46009487 */ neg.s $f18, $f18 +/* 0EE798 7F0B9C68 C7A40038 */ lwc1 $f4, 0x38($sp) +.L7F0B9C6C: +/* 0EE79C 7F0B9C6C C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 0EE7A0 7F0B9C70 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 0EE7A4 7F0B9C74 E7AE0040 */ swc1 $f14, 0x40($sp) +/* 0EE7A8 7F0B9C78 46062202 */ mul.s $f8, $f4, $f6 +/* 0EE7AC 7F0B9C7C E7B0003C */ swc1 $f16, 0x3c($sp) +/* 0EE7B0 7F0B9C80 E7B20034 */ swc1 $f18, 0x34($sp) +/* 0EE7B4 7F0B9C84 460A9102 */ mul.s $f4, $f18, $f10 +/* 0EE7B8 7F0B9C88 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 0EE7BC 7F0B9C8C 46082180 */ add.s $f6, $f4, $f8 +/* 0EE7C0 7F0B9C90 46105102 */ mul.s $f4, $f10, $f16 +/* 0EE7C4 7F0B9C94 46062000 */ add.s $f0, $f4, $f6 +/* 0EE7C8 7F0B9C98 460E003E */ c.le.s $f0, $f14 +/* 0EE7CC 7F0B9C9C 00000000 */ nop +/* 0EE7D0 7F0B9CA0 45020006 */ bc1fl .L7F0B9CBC +/* 0EE7D4 7F0B9CA4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EE7D8 7F0B9CA8 10400003 */ beqz $v0, .L7F0B9CB8 +/* 0EE7DC 7F0B9CAC 8FA40060 */ lw $a0, 0x60($sp) +/* 0EE7E0 7F0B9CB0 0FC2E6D9 */ jal sub_GAME_7F0B9B64 +/* 0EE7E4 7F0B9CB4 AFA20024 */ sw $v0, 0x24($sp) +.L7F0B9CB8: +/* 0EE7E8 7F0B9CB8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0B9CBC: +/* 0EE7EC 7F0B9CBC 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0EE7F0 7F0B9CC0 03E00008 */ jr $ra +/* 0EE7F4 7F0B9CC4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B9CC8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9CC8 +/* 0EE7F8 7F0B9CC8 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0EE7FC 7F0B9CCC AFBE0038 */ sw $fp, 0x38($sp) +/* 0EE800 7F0B9CD0 3C1E8008 */ lui $fp, %hi(ptr_bgdata_portals) +/* 0EE804 7F0B9CD4 27DEFF80 */ addiu $fp, %lo(ptr_bgdata_portals) # addiu $fp, $fp, -0x80 +/* 0EE808 7F0B9CD8 8FC30000 */ lw $v1, ($fp) +/* 0EE80C 7F0B9CDC AFBF003C */ sw $ra, 0x3c($sp) +/* 0EE810 7F0B9CE0 AFB70034 */ sw $s7, 0x34($sp) +/* 0EE814 7F0B9CE4 AFB60030 */ sw $s6, 0x30($sp) +/* 0EE818 7F0B9CE8 AFB5002C */ sw $s5, 0x2c($sp) +/* 0EE81C 7F0B9CEC AFB40028 */ sw $s4, 0x28($sp) +/* 0EE820 7F0B9CF0 AFB30024 */ sw $s3, 0x24($sp) +/* 0EE824 7F0B9CF4 AFB20020 */ sw $s2, 0x20($sp) +/* 0EE828 7F0B9CF8 AFB1001C */ sw $s1, 0x1c($sp) +/* 0EE82C 7F0B9CFC AFB00018 */ sw $s0, 0x18($sp) +/* 0EE830 7F0B9D00 8C6E0000 */ lw $t6, ($v1) +/* 0EE834 7F0B9D04 00809025 */ move $s2, $a0 +/* 0EE838 7F0B9D08 00A09825 */ move $s3, $a1 +/* 0EE83C 7F0B9D0C 00C0B025 */ move $s6, $a2 +/* 0EE840 7F0B9D10 00E0B825 */ move $s7, $a3 +/* 0EE844 7F0B9D14 2414FFFF */ li $s4, -1 +/* 0EE848 7F0B9D18 11C0001B */ beqz $t6, .L7F0B9D88 +/* 0EE84C 7F0B9D1C 00008025 */ move $s0, $zero +/* 0EE850 7F0B9D20 00008825 */ move $s1, $zero +/* 0EE854 7F0B9D24 00601025 */ move $v0, $v1 +/* 0EE858 7F0B9D28 90430004 */ lbu $v1, 4($v0) +.L7F0B9D2C: +/* 0EE85C 7F0B9D2C 16430004 */ bne $s2, $v1, .L7F0B9D40 +/* 0EE860 7F0B9D30 00000000 */ nop +/* 0EE864 7F0B9D34 904F0005 */ lbu $t7, 5($v0) +/* 0EE868 7F0B9D38 526F0006 */ beql $s3, $t7, .L7F0B9D54 +/* 0EE86C 7F0B9D3C 02002025 */ move $a0, $s0 +.L7F0B9D40: +/* 0EE870 7F0B9D40 5663000B */ bnel $s3, $v1, .L7F0B9D70 +/* 0EE874 7F0B9D44 8FD90000 */ lw $t9, ($fp) +/* 0EE878 7F0B9D48 90580005 */ lbu $t8, 5($v0) +/* 0EE87C 7F0B9D4C 16580007 */ bne $s2, $t8, .L7F0B9D6C +/* 0EE880 7F0B9D50 02002025 */ move $a0, $s0 +.L7F0B9D54: +/* 0EE884 7F0B9D54 02C02825 */ move $a1, $s6 +/* 0EE888 7F0B9D58 0FC2E7C5 */ jal sub_GAME_7F0B9F14 +/* 0EE88C 7F0B9D5C 02E03025 */ move $a2, $s7 +/* 0EE890 7F0B9D60 50400003 */ beql $v0, $zero, .L7F0B9D70 +/* 0EE894 7F0B9D64 8FD90000 */ lw $t9, ($fp) +/* 0EE898 7F0B9D68 0200A025 */ move $s4, $s0 +.L7F0B9D6C: +/* 0EE89C 7F0B9D6C 8FD90000 */ lw $t9, ($fp) +.L7F0B9D70: +/* 0EE8A0 7F0B9D70 26310008 */ addiu $s1, $s1, 8 +/* 0EE8A4 7F0B9D74 26100001 */ addiu $s0, $s0, 1 +/* 0EE8A8 7F0B9D78 03311021 */ addu $v0, $t9, $s1 +/* 0EE8AC 7F0B9D7C 8C480000 */ lw $t0, ($v0) +/* 0EE8B0 7F0B9D80 5500FFEA */ bnezl $t0, .L7F0B9D2C +/* 0EE8B4 7F0B9D84 90430004 */ lbu $v1, 4($v0) +.L7F0B9D88: +/* 0EE8B8 7F0B9D88 8FBF003C */ lw $ra, 0x3c($sp) +/* 0EE8BC 7F0B9D8C 02801025 */ move $v0, $s4 +/* 0EE8C0 7F0B9D90 8FB40028 */ lw $s4, 0x28($sp) +/* 0EE8C4 7F0B9D94 8FB00018 */ lw $s0, 0x18($sp) +/* 0EE8C8 7F0B9D98 8FB1001C */ lw $s1, 0x1c($sp) +/* 0EE8CC 7F0B9D9C 8FB20020 */ lw $s2, 0x20($sp) +/* 0EE8D0 7F0B9DA0 8FB30024 */ lw $s3, 0x24($sp) +/* 0EE8D4 7F0B9DA4 8FB5002C */ lw $s5, 0x2c($sp) +/* 0EE8D8 7F0B9DA8 8FB60030 */ lw $s6, 0x30($sp) +/* 0EE8DC 7F0B9DAC 8FB70034 */ lw $s7, 0x34($sp) +/* 0EE8E0 7F0B9DB0 8FBE0038 */ lw $fp, 0x38($sp) +/* 0EE8E4 7F0B9DB4 03E00008 */ jr $ra +/* 0EE8E8 7F0B9DB8 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0B9DBC(s32 arg0, u32 arg1) { + void *temp_v0; + + // Node 0 + temp_v0 = (ptr_bgdata_portals + (arg0 * 8)); + temp_v0->unk6 = (s8) ((temp_v0->unk6 | 1) ^ (0U < arg1)); + return temp_v0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9DBC +/* 0EE8EC 7F0B9DBC 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EE8F0 7F0B9DC0 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EE8F4 7F0B9DC4 000478C0 */ sll $t7, $a0, 3 +/* 0EE8F8 7F0B9DC8 0005402B */ sltu $t0, $zero, $a1 +/* 0EE8FC 7F0B9DCC 01CF1021 */ addu $v0, $t6, $t7 +/* 0EE900 7F0B9DD0 90580006 */ lbu $t8, 6($v0) +/* 0EE904 7F0B9DD4 37190001 */ ori $t9, $t8, 1 +/* 0EE908 7F0B9DD8 03284826 */ xor $t1, $t9, $t0 +/* 0EE90C 7F0B9DDC 03E00008 */ jr $ra +/* 0EE910 7F0B9DE0 A0490006 */ sb $t1, 6($v0) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B9DE4(s32 arg0, s32 arg1, ? arg2) { + // Node 0 + return arg0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9DE4 +/* 0EE914 7F0B9DE4 AFA50004 */ sw $a1, 4($sp) +/* 0EE918 7F0B9DE8 AFA60008 */ sw $a2, 8($sp) +/* 0EE91C 7F0B9DEC 03E00008 */ jr $ra +/* 0EE920 7F0B9DF0 00801025 */ move $v0, $a0 +) +#endif + + + + + +void sub_GAME_7F0B9DF4(s32 arg0) { + return; +} + +void sub_GAME_7F0B9DFC(s32 arg0) { + return; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B9E04(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058D60 +.word 0x7f7fffff /*3.4028235e38*/ +.text +glabel sub_GAME_7F0B9E04 +/* 0EE934 7F0B9E04 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0EE938 7F0B9E08 AFB6003C */ sw $s6, 0x3c($sp) +/* 0EE93C 7F0B9E0C 3C168008 */ lui $s6, %hi(ptr_bgdata_portals) +/* 0EE940 7F0B9E10 26D6FF80 */ addiu $s6, %lo(ptr_bgdata_portals) # addiu $s6, $s6, -0x80 +/* 0EE944 7F0B9E14 8ECE0000 */ lw $t6, ($s6) +/* 0EE948 7F0B9E18 AFBF0044 */ sw $ra, 0x44($sp) +/* 0EE94C 7F0B9E1C AFB70040 */ sw $s7, 0x40($sp) +/* 0EE950 7F0B9E20 AFB50038 */ sw $s5, 0x38($sp) +/* 0EE954 7F0B9E24 AFB40034 */ sw $s4, 0x34($sp) +/* 0EE958 7F0B9E28 AFB30030 */ sw $s3, 0x30($sp) +/* 0EE95C 7F0B9E2C AFB2002C */ sw $s2, 0x2c($sp) +/* 0EE960 7F0B9E30 AFB10028 */ sw $s1, 0x28($sp) +/* 0EE964 7F0B9E34 AFB00024 */ sw $s0, 0x24($sp) +/* 0EE968 7F0B9E38 F7B60018 */ sdc1 $f22, 0x18($sp) +/* 0EE96C 7F0B9E3C F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0EE970 7F0B9E40 8DCF0000 */ lw $t7, ($t6) +/* 0EE974 7F0B9E44 3C018006 */ lui $at, %hi(D_80058D60) +/* 0EE978 7F0B9E48 0080A025 */ move $s4, $a0 +/* 0EE97C 7F0B9E4C 00A0A825 */ move $s5, $a1 +/* 0EE980 7F0B9E50 2413FFFF */ li $s3, -1 +/* 0EE984 7F0B9E54 00008825 */ move $s1, $zero +/* 0EE988 7F0B9E58 C4348D60 */ lwc1 $f20, %lo(D_80058D60)($at) +/* 0EE98C 7F0B9E5C 11E0001F */ beqz $t7, .L7F0B9EDC +/* 0EE990 7F0B9E60 00008025 */ move $s0, $zero +/* 0EE994 7F0B9E64 3C178004 */ lui $s7, %hi(D_80044900) +/* 0EE998 7F0B9E68 4480B000 */ mtc1 $zero, $f22 +/* 0EE99C 7F0B9E6C 26F74900 */ addiu $s7, %lo(D_80044900) # addiu $s7, $s7, 0x4900 +/* 0EE9A0 7F0B9E70 00009025 */ move $s2, $zero +/* 0EE9A4 7F0B9E74 02002025 */ move $a0, $s0 +.L7F0B9E78: +/* 0EE9A8 7F0B9E78 02802825 */ move $a1, $s4 +/* 0EE9AC 7F0B9E7C 0FC2E7C5 */ jal sub_GAME_7F0B9F14 +/* 0EE9B0 7F0B9E80 02A03025 */ move $a2, $s5 +/* 0EE9B4 7F0B9E84 5040000F */ beql $v0, $zero, .L7F0B9EC4 +/* 0EE9B8 7F0B9E88 8ED80000 */ lw $t8, ($s6) +/* 0EE9BC 7F0B9E8C C6E00000 */ lwc1 $f0, ($s7) +/* 0EE9C0 7F0B9E90 4616003C */ c.lt.s $f0, $f22 +/* 0EE9C4 7F0B9E94 00000000 */ nop +/* 0EE9C8 7F0B9E98 45020003 */ bc1fl .L7F0B9EA8 +/* 0EE9CC 7F0B9E9C 4614003C */ c.lt.s $f0, $f20 +/* 0EE9D0 7F0B9EA0 46000007 */ neg.s $f0, $f0 +/* 0EE9D4 7F0B9EA4 4614003C */ c.lt.s $f0, $f20 +.L7F0B9EA8: +/* 0EE9D8 7F0B9EA8 00000000 */ nop +/* 0EE9DC 7F0B9EAC 45020005 */ bc1fl .L7F0B9EC4 +/* 0EE9E0 7F0B9EB0 8ED80000 */ lw $t8, ($s6) +/* 0EE9E4 7F0B9EB4 02009825 */ move $s3, $s0 +/* 0EE9E8 7F0B9EB8 46000506 */ mov.s $f20, $f0 +/* 0EE9EC 7F0B9EBC 26310001 */ addiu $s1, $s1, 1 +/* 0EE9F0 7F0B9EC0 8ED80000 */ lw $t8, ($s6) +.L7F0B9EC4: +/* 0EE9F4 7F0B9EC4 26520008 */ addiu $s2, $s2, 8 +/* 0EE9F8 7F0B9EC8 26100001 */ addiu $s0, $s0, 1 +/* 0EE9FC 7F0B9ECC 0312C821 */ addu $t9, $t8, $s2 +/* 0EEA00 7F0B9ED0 8F280000 */ lw $t0, ($t9) +/* 0EEA04 7F0B9ED4 5500FFE8 */ bnezl $t0, .L7F0B9E78 +/* 0EEA08 7F0B9ED8 02002025 */ move $a0, $s0 +.L7F0B9EDC: +/* 0EEA0C 7F0B9EDC 8FBF0044 */ lw $ra, 0x44($sp) +/* 0EEA10 7F0B9EE0 02601025 */ move $v0, $s3 +/* 0EEA14 7F0B9EE4 8FB30030 */ lw $s3, 0x30($sp) +/* 0EEA18 7F0B9EE8 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0EEA1C 7F0B9EEC D7B60018 */ ldc1 $f22, 0x18($sp) +/* 0EEA20 7F0B9EF0 8FB00024 */ lw $s0, 0x24($sp) +/* 0EEA24 7F0B9EF4 8FB10028 */ lw $s1, 0x28($sp) +/* 0EEA28 7F0B9EF8 8FB2002C */ lw $s2, 0x2c($sp) +/* 0EEA2C 7F0B9EFC 8FB40034 */ lw $s4, 0x34($sp) +/* 0EEA30 7F0B9F00 8FB50038 */ lw $s5, 0x38($sp) +/* 0EEA34 7F0B9F04 8FB6003C */ lw $s6, 0x3c($sp) +/* 0EEA38 7F0B9F08 8FB70040 */ lw $s7, 0x40($sp) +/* 0EEA3C 7F0B9F0C 03E00008 */ jr $ra +/* 0EEA40 7F0B9F10 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B9F14(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B9F14 +/* 0EEA44 7F0B9F14 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 0EEA48 7F0B9F18 AFB00018 */ sw $s0, 0x18($sp) +/* 0EEA4C 7F0B9F1C 00A08025 */ move $s0, $a1 +/* 0EEA50 7F0B9F20 AFBF001C */ sw $ra, 0x1c($sp) +/* 0EEA54 7F0B9F24 AFA400A0 */ sw $a0, 0xa0($sp) +/* 0EEA58 7F0B9F28 27A50060 */ addiu $a1, $sp, 0x60 +/* 0EEA5C 7F0B9F2C AFA600A8 */ sw $a2, 0xa8($sp) +/* 0EEA60 7F0B9F30 A3A0004B */ sb $zero, 0x4b($sp) +/* 0EEA64 7F0B9F34 0FC2E5B3 */ jal sub_GAME_7F0B96CC +/* 0EEA68 7F0B9F38 A3A0004A */ sb $zero, 0x4a($sp) +/* 0EEA6C 7F0B9F3C 8FA600A8 */ lw $a2, 0xa8($sp) +/* 0EEA70 7F0B9F40 C6100000 */ lwc1 $f16, ($s0) +/* 0EEA74 7F0B9F44 3C018004 */ lui $at, %hi(room_data_float1) +/* 0EEA78 7F0B9F48 C4CA0000 */ lwc1 $f10, ($a2) +/* 0EEA7C 7F0B9F4C C42C13F4 */ lwc1 $f12, %lo(room_data_float1)($at) +/* 0EEA80 7F0B9F50 93AA004B */ lbu $t2, 0x4b($sp) +/* 0EEA84 7F0B9F54 46105181 */ sub.s $f6, $f10, $f16 +/* 0EEA88 7F0B9F58 93AB004A */ lbu $t3, 0x4a($sp) +/* 0EEA8C 7F0B9F5C E7A6008C */ swc1 $f6, 0x8c($sp) +/* 0EEA90 7F0B9F60 C6080004 */ lwc1 $f8, 4($s0) +/* 0EEA94 7F0B9F64 C4C40004 */ lwc1 $f4, 4($a2) +/* 0EEA98 7F0B9F68 46082481 */ sub.s $f18, $f4, $f8 +/* 0EEA9C 7F0B9F6C C7A80060 */ lwc1 $f8, 0x60($sp) +/* 0EEAA0 7F0B9F70 E7B20090 */ swc1 $f18, 0x90($sp) +/* 0EEAA4 7F0B9F74 C6100008 */ lwc1 $f16, 8($s0) +/* 0EEAA8 7F0B9F78 C4CA0008 */ lwc1 $f10, 8($a2) +/* 0EEAAC 7F0B9F7C 46105181 */ sub.s $f6, $f10, $f16 +/* 0EEAB0 7F0B9F80 C7B00064 */ lwc1 $f16, 0x64($sp) +/* 0EEAB4 7F0B9F84 E7A60094 */ swc1 $f6, 0x94($sp) +/* 0EEAB8 7F0B9F88 C6040000 */ lwc1 $f4, ($s0) +/* 0EEABC 7F0B9F8C C60A0004 */ lwc1 $f10, 4($s0) +/* 0EEAC0 7F0B9F90 46082482 */ mul.s $f18, $f4, $f8 +/* 0EEAC4 7F0B9F94 00000000 */ nop +/* 0EEAC8 7F0B9F98 46105182 */ mul.s $f6, $f10, $f16 +/* 0EEACC 7F0B9F9C C7AA0068 */ lwc1 $f10, 0x68($sp) +/* 0EEAD0 7F0B9FA0 46069100 */ add.s $f4, $f18, $f6 +/* 0EEAD4 7F0B9FA4 C6120008 */ lwc1 $f18, 8($s0) +/* 0EEAD8 7F0B9FA8 46125182 */ mul.s $f6, $f10, $f18 +/* 0EEADC 7F0B9FAC 46043480 */ add.s $f18, $f6, $f4 +/* 0EEAE0 7F0B9FB0 C4C60000 */ lwc1 $f6, ($a2) +/* 0EEAE4 7F0B9FB4 460C9382 */ mul.s $f14, $f18, $f12 +/* 0EEAE8 7F0B9FB8 C4D20004 */ lwc1 $f18, 4($a2) +/* 0EEAEC 7F0B9FBC 46083102 */ mul.s $f4, $f6, $f8 +/* 0EEAF0 7F0B9FC0 00000000 */ nop +/* 0EEAF4 7F0B9FC4 46109182 */ mul.s $f6, $f18, $f16 +/* 0EEAF8 7F0B9FC8 C4D20008 */ lwc1 $f18, 8($a2) +/* 0EEAFC 7F0B9FCC 46125402 */ mul.s $f16, $f10, $f18 +/* 0EEB00 7F0B9FD0 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 0EEB04 7F0B9FD4 46062200 */ add.s $f8, $f4, $f6 +/* 0EEB08 7F0B9FD8 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 0EEB0C 7F0B9FDC 46088100 */ add.s $f4, $f16, $f8 +/* 0EEB10 7F0B9FE0 4606703C */ c.lt.s $f14, $f6 +/* 0EEB14 7F0B9FE4 460C2002 */ mul.s $f0, $f4, $f12 +/* 0EEB18 7F0B9FE8 45000005 */ bc1f .L7F0BA000 +/* 0EEB1C 7F0B9FEC 00000000 */ nop +/* 0EEB20 7F0B9FF0 4606003C */ c.lt.s $f0, $f6 +/* 0EEB24 7F0B9FF4 00000000 */ nop +/* 0EEB28 7F0B9FF8 45010009 */ bc1t .L7F0BA020 +/* 0EEB2C 7F0B9FFC 00000000 */ nop +.L7F0BA000: +/* 0EEB30 7F0BA000 460E503C */ c.lt.s $f10, $f14 +/* 0EEB34 7F0BA004 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0EEB38 7F0BA008 45020008 */ bc1fl .L7F0BA02C +/* 0EEB3C 7F0BA00C 46007480 */ add.s $f18, $f14, $f0 +/* 0EEB40 7F0BA010 4600503C */ c.lt.s $f10, $f0 +/* 0EEB44 7F0BA014 00000000 */ nop +/* 0EEB48 7F0BA018 45020004 */ bc1fl .L7F0BA02C +/* 0EEB4C 7F0BA01C 46007480 */ add.s $f18, $f14, $f0 +.L7F0BA020: +/* 0EEB50 7F0BA020 1000008D */ b .L7F0BA258 +/* 0EEB54 7F0BA024 00001025 */ move $v0, $zero +/* 0EEB58 7F0BA028 46007480 */ add.s $f18, $f14, $f0 +.L7F0BA02C: +/* 0EEB5C 7F0BA02C 44818000 */ mtc1 $at, $f16 +/* 0EEB60 7F0BA030 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 0EEB64 7F0BA034 8FAE00A0 */ lw $t6, 0xa0($sp) +/* 0EEB68 7F0BA038 46109202 */ mul.s $f8, $f18, $f16 +/* 0EEB6C 7F0BA03C 3C0F8008 */ lui $t7, %hi(ptr_bgdata_portals) +/* 0EEB70 7F0BA040 8DEFFF80 */ lw $t7, %lo(ptr_bgdata_portals)($t7) +/* 0EEB74 7F0BA044 3C018004 */ lui $at, %hi(D_80044900) +/* 0EEB78 7F0BA048 000EC0C0 */ sll $t8, $t6, 3 +/* 0EEB7C 7F0BA04C 01F84021 */ addu $t0, $t7, $t8 +/* 0EEB80 7F0BA050 00003825 */ move $a3, $zero +/* 0EEB84 7F0BA054 46044181 */ sub.s $f6, $f8, $f4 +/* 0EEB88 7F0BA058 00002025 */ move $a0, $zero +/* 0EEB8C 7F0BA05C E4264900 */ swc1 $f6, %lo(D_80044900)($at) +/* 0EEB90 7F0BA060 8D020000 */ lw $v0, ($t0) +/* 0EEB94 7F0BA064 90460000 */ lbu $a2, ($v0) +/* 0EEB98 7F0BA068 58C00073 */ blezl $a2, .L7F0BA238 +/* 0EEB9C 7F0BA06C C7B2006C */ lwc1 $f18, 0x6c($sp) +/* 0EEBA0 7F0BA070 44801000 */ mtc1 $zero, $f2 +/* 0EEBA4 7F0BA074 240C000C */ li $t4, 12 +/* 0EEBA8 7F0BA078 24E90001 */ addiu $t1, $a3, 1 +.L7F0BA07C: +/* 0EEBAC 7F0BA07C 0126001A */ div $zero, $t1, $a2 +/* 0EEBB0 7F0BA080 00002810 */ mfhi $a1 +/* 0EEBB4 7F0BA084 00446821 */ addu $t5, $v0, $a0 +/* 0EEBB8 7F0BA088 C5B20004 */ lwc1 $f18, 4($t5) +/* 0EEBBC 7F0BA08C 00AC0019 */ multu $a1, $t4 +/* 0EEBC0 7F0BA090 14C00002 */ bnez $a2, .L7F0BA09C +/* 0EEBC4 7F0BA094 00000000 */ nop +/* 0EEBC8 7F0BA098 0007000D */ break 7 +.L7F0BA09C: +/* 0EEBCC 7F0BA09C 2401FFFF */ li $at, -1 +/* 0EEBD0 7F0BA0A0 14C10004 */ bne $a2, $at, .L7F0BA0B4 +/* 0EEBD4 7F0BA0A4 3C018000 */ lui $at, 0x8000 +/* 0EEBD8 7F0BA0A8 15210002 */ bne $t1, $at, .L7F0BA0B4 +/* 0EEBDC 7F0BA0AC 00000000 */ nop +/* 0EEBE0 7F0BA0B0 0006000D */ break 6 +.L7F0BA0B4: +/* 0EEBE4 7F0BA0B4 00001812 */ mflo $v1 +/* 0EEBE8 7F0BA0B8 0043C821 */ addu $t9, $v0, $v1 +/* 0EEBEC 7F0BA0BC C72A0004 */ lwc1 $f10, 4($t9) +/* 0EEBF0 7F0BA0C0 46125401 */ sub.s $f16, $f10, $f18 +/* 0EEBF4 7F0BA0C4 E7B00074 */ swc1 $f16, 0x74($sp) +/* 0EEBF8 7F0BA0C8 8D020000 */ lw $v0, ($t0) +/* 0EEBFC 7F0BA0CC 00437021 */ addu $t6, $v0, $v1 +/* 0EEC00 7F0BA0D0 00447821 */ addu $t7, $v0, $a0 +/* 0EEC04 7F0BA0D4 C5E40008 */ lwc1 $f4, 8($t7) +/* 0EEC08 7F0BA0D8 C5C80008 */ lwc1 $f8, 8($t6) +/* 0EEC0C 7F0BA0DC 46044181 */ sub.s $f6, $f8, $f4 +/* 0EEC10 7F0BA0E0 C7A40094 */ lwc1 $f4, 0x94($sp) +/* 0EEC14 7F0BA0E4 E7A60078 */ swc1 $f6, 0x78($sp) +/* 0EEC18 7F0BA0E8 8D020000 */ lw $v0, ($t0) +/* 0EEC1C 7F0BA0EC C7A80078 */ lwc1 $f8, 0x78($sp) +/* 0EEC20 7F0BA0F0 0043C021 */ addu $t8, $v0, $v1 +/* 0EEC24 7F0BA0F4 0044C821 */ addu $t9, $v0, $a0 +/* 0EEC28 7F0BA0F8 C732000C */ lwc1 $f18, 0xc($t9) +/* 0EEC2C 7F0BA0FC C70A000C */ lwc1 $f10, 0xc($t8) +/* 0EEC30 7F0BA100 46044182 */ mul.s $f6, $f8, $f4 +/* 0EEC34 7F0BA104 E7A80020 */ swc1 $f8, 0x20($sp) +/* 0EEC38 7F0BA108 46125401 */ sub.s $f16, $f10, $f18 +/* 0EEC3C 7F0BA10C C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 0EEC40 7F0BA110 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 0EEC44 7F0BA114 E7B0007C */ swc1 $f16, 0x7c($sp) +/* 0EEC48 7F0BA118 C7B2007C */ lwc1 $f18, 0x7c($sp) +/* 0EEC4C 7F0BA11C 46125402 */ mul.s $f16, $f10, $f18 +/* 0EEC50 7F0BA120 46103181 */ sub.s $f6, $f6, $f16 +/* 0EEC54 7F0BA124 C7B0008C */ lwc1 $f16, 0x8c($sp) +/* 0EEC58 7F0BA128 46109482 */ mul.s $f18, $f18, $f16 +/* 0EEC5C 7F0BA12C E7A60050 */ swc1 $f6, 0x50($sp) +/* 0EEC60 7F0BA130 46082102 */ mul.s $f4, $f4, $f8 +/* 0EEC64 7F0BA134 46049481 */ sub.s $f18, $f18, $f4 +/* 0EEC68 7F0BA138 460A4102 */ mul.s $f4, $f8, $f10 +/* 0EEC6C 7F0BA13C C7A80020 */ lwc1 $f8, 0x20($sp) +/* 0EEC70 7F0BA140 E7B20054 */ swc1 $f18, 0x54($sp) +/* 0EEC74 7F0BA144 46088282 */ mul.s $f10, $f16, $f8 +/* 0EEC78 7F0BA148 460A2401 */ sub.s $f16, $f4, $f10 +/* 0EEC7C 7F0BA14C 46063202 */ mul.s $f8, $f6, $f6 +/* 0EEC80 7F0BA150 00000000 */ nop +/* 0EEC84 7F0BA154 46129102 */ mul.s $f4, $f18, $f18 +/* 0EEC88 7F0BA158 E7B00058 */ swc1 $f16, 0x58($sp) +/* 0EEC8C 7F0BA15C 46108182 */ mul.s $f6, $f16, $f16 +/* 0EEC90 7F0BA160 46044280 */ add.s $f10, $f8, $f4 +/* 0EEC94 7F0BA164 460A3000 */ add.s $f0, $f6, $f10 +/* 0EEC98 7F0BA168 46020032 */ c.eq.s $f0, $f2 +/* 0EEC9C 7F0BA16C 00000000 */ nop +/* 0EECA0 7F0BA170 45000003 */ bc1f .L7F0BA180 +/* 0EECA4 7F0BA174 00000000 */ nop +/* 0EECA8 7F0BA178 10000037 */ b .L7F0BA258 +/* 0EECAC 7F0BA17C 00001025 */ move $v0, $zero +.L7F0BA180: +/* 0EECB0 7F0BA180 8D0D0000 */ lw $t5, ($t0) +/* 0EECB4 7F0BA184 C7B20050 */ lwc1 $f18, 0x50($sp) +/* 0EECB8 7F0BA188 C7B00054 */ lwc1 $f16, 0x54($sp) +/* 0EECBC 7F0BA18C 01A41021 */ addu $v0, $t5, $a0 +/* 0EECC0 7F0BA190 C4480004 */ lwc1 $f8, 4($v0) +/* 0EECC4 7F0BA194 C4460008 */ lwc1 $f6, 8($v0) +/* 0EECC8 7F0BA198 46089102 */ mul.s $f4, $f18, $f8 +/* 0EECCC 7F0BA19C 00000000 */ nop +/* 0EECD0 7F0BA1A0 46068282 */ mul.s $f10, $f16, $f6 +/* 0EECD4 7F0BA1A4 C446000C */ lwc1 $f6, 0xc($v0) +/* 0EECD8 7F0BA1A8 460A2200 */ add.s $f8, $f4, $f10 +/* 0EECDC 7F0BA1AC C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0EECE0 7F0BA1B0 46043282 */ mul.s $f10, $f6, $f4 +/* 0EECE4 7F0BA1B4 46085180 */ add.s $f6, $f10, $f8 +/* 0EECE8 7F0BA1B8 E7A6005C */ swc1 $f6, 0x5c($sp) +/* 0EECEC 7F0BA1BC C60A0000 */ lwc1 $f10, ($s0) +/* 0EECF0 7F0BA1C0 460A9202 */ mul.s $f8, $f18, $f10 +/* 0EECF4 7F0BA1C4 C6120004 */ lwc1 $f18, 4($s0) +/* 0EECF8 7F0BA1C8 46128282 */ mul.s $f10, $f16, $f18 +/* 0EECFC 7F0BA1CC C6120008 */ lwc1 $f18, 8($s0) +/* 0EED00 7F0BA1D0 460A4400 */ add.s $f16, $f8, $f10 +/* 0EED04 7F0BA1D4 46049202 */ mul.s $f8, $f18, $f4 +/* 0EED08 7F0BA1D8 46104280 */ add.s $f10, $f8, $f16 +/* 0EED0C 7F0BA1DC 460C5002 */ mul.s $f0, $f10, $f12 +/* 0EED10 7F0BA1E0 4606003C */ c.lt.s $f0, $f6 +/* 0EED14 7F0BA1E4 00000000 */ nop +/* 0EED18 7F0BA1E8 45000007 */ bc1f .L7F0BA208 +/* 0EED1C 7F0BA1EC 00000000 */ nop +/* 0EED20 7F0BA1F0 11600003 */ beqz $t3, .L7F0BA200 +/* 0EED24 7F0BA1F4 00000000 */ nop +/* 0EED28 7F0BA1F8 10000017 */ b .L7F0BA258 +/* 0EED2C 7F0BA1FC 00001025 */ move $v0, $zero +.L7F0BA200: +/* 0EED30 7F0BA200 10000005 */ b .L7F0BA218 +/* 0EED34 7F0BA204 240A0001 */ li $t2, 1 +.L7F0BA208: +/* 0EED38 7F0BA208 11400003 */ beqz $t2, .L7F0BA218 +/* 0EED3C 7F0BA20C 240B0001 */ li $t3, 1 +/* 0EED40 7F0BA210 10000011 */ b .L7F0BA258 +/* 0EED44 7F0BA214 00001025 */ move $v0, $zero +.L7F0BA218: +/* 0EED48 7F0BA218 8D020000 */ lw $v0, ($t0) +/* 0EED4C 7F0BA21C 01203825 */ move $a3, $t1 +/* 0EED50 7F0BA220 2484000C */ addiu $a0, $a0, 0xc +/* 0EED54 7F0BA224 90460000 */ lbu $a2, ($v0) +/* 0EED58 7F0BA228 0126082A */ slt $at, $t1, $a2 +/* 0EED5C 7F0BA22C 5420FF93 */ bnezl $at, .L7F0BA07C +/* 0EED60 7F0BA230 24E90001 */ addiu $t1, $a3, 1 +/* 0EED64 7F0BA234 C7B2006C */ lwc1 $f18, 0x6c($sp) +.L7F0BA238: +/* 0EED68 7F0BA238 24030002 */ li $v1, 2 +/* 0EED6C 7F0BA23C 4612703C */ c.lt.s $f14, $f18 +/* 0EED70 7F0BA240 00000000 */ nop +/* 0EED74 7F0BA244 45000003 */ bc1f .L7F0BA254 +/* 0EED78 7F0BA248 00000000 */ nop +/* 0EED7C 7F0BA24C 10000001 */ b .L7F0BA254 +/* 0EED80 7F0BA250 24030001 */ li $v1, 1 +.L7F0BA254: +/* 0EED84 7F0BA254 00601025 */ move $v0, $v1 +.L7F0BA258: +/* 0EED88 7F0BA258 8FBF001C */ lw $ra, 0x1c($sp) +/* 0EED8C 7F0BA25C 8FB00018 */ lw $s0, 0x18($sp) +/* 0EED90 7F0BA260 27BD00A0 */ addiu $sp, $sp, 0xa0 +/* 0EED94 7F0BA264 03E00008 */ jr $ra +/* 0EED98 7F0BA268 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BA26C(s32 arg0, void *arg1, void *arg2, s32 arg3) { + s32 temp_v1; + void *phi_t0; + void *phi_t1; + s32 phi_v1; + + // Node 0 + phi_t0 = arg1; + phi_t1 = arg2; + phi_v1 = 0; +loop_1: + // Node 1 + temp_v1 = (phi_v1 + 4); + if (*phi_t0 < *phi_t1) + { + // Node 3 + return 0; + } + // Node 2 + if (*(arg3 + phi_v1) < *(arg0 + phi_v1)) + { + // Node 3 + return 0; + } + // Node 4 + phi_t0 = (phi_t0 + 4); + phi_t1 = (phi_t1 + 4); + phi_v1 = temp_v1; + if (temp_v1 != 0xc) + { + goto loop_1; + } + // Node 5 + return 1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BA26C +/* 0EED9C 7F0BA26C 00001825 */ move $v1, $zero +/* 0EEDA0 7F0BA270 00A04025 */ move $t0, $a1 +/* 0EEDA4 7F0BA274 00C04825 */ move $t1, $a2 +/* 0EEDA8 7F0BA278 2402000C */ li $v0, 12 +.L7F0BA27C: +/* 0EEDAC 7F0BA27C C5040000 */ lwc1 $f4, ($t0) +/* 0EEDB0 7F0BA280 C5260000 */ lwc1 $f6, ($t1) +/* 0EEDB4 7F0BA284 00E37021 */ addu $t6, $a3, $v1 +/* 0EEDB8 7F0BA288 00837821 */ addu $t7, $a0, $v1 +/* 0EEDBC 7F0BA28C 4606203C */ c.lt.s $f4, $f6 +/* 0EEDC0 7F0BA290 24630004 */ addiu $v1, $v1, 4 +/* 0EEDC4 7F0BA294 25080004 */ addiu $t0, $t0, 4 +/* 0EEDC8 7F0BA298 45010007 */ bc1t .L7F0BA2B8 +/* 0EEDCC 7F0BA29C 00000000 */ nop +/* 0EEDD0 7F0BA2A0 C5C80000 */ lwc1 $f8, ($t6) +/* 0EEDD4 7F0BA2A4 C5EA0000 */ lwc1 $f10, ($t7) +/* 0EEDD8 7F0BA2A8 460A403C */ c.lt.s $f8, $f10 +/* 0EEDDC 7F0BA2AC 00000000 */ nop +/* 0EEDE0 7F0BA2B0 45000003 */ bc1f .L7F0BA2C0 +/* 0EEDE4 7F0BA2B4 00000000 */ nop +.L7F0BA2B8: +/* 0EEDE8 7F0BA2B8 03E00008 */ jr $ra +/* 0EEDEC 7F0BA2BC 00001025 */ move $v0, $zero + +.L7F0BA2C0: +/* 0EEDF0 7F0BA2C0 1462FFEE */ bne $v1, $v0, .L7F0BA27C +/* 0EEDF4 7F0BA2C4 25290004 */ addiu $t1, $t1, 4 +/* 0EEDF8 7F0BA2C8 24020001 */ li $v0, 1 +/* 0EEDFC 7F0BA2CC 03E00008 */ jr $ra +/* 0EEE00 7F0BA2D0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BA2D4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BA2D4 +/* 0EEE04 7F0BA2D4 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0EEE08 7F0BA2D8 AFBF003C */ sw $ra, 0x3c($sp) +/* 0EEE0C 7F0BA2DC AFBE0038 */ sw $fp, 0x38($sp) +/* 0EEE10 7F0BA2E0 AFB70034 */ sw $s7, 0x34($sp) +/* 0EEE14 7F0BA2E4 AFB60030 */ sw $s6, 0x30($sp) +/* 0EEE18 7F0BA2E8 AFB5002C */ sw $s5, 0x2c($sp) +/* 0EEE1C 7F0BA2EC AFB40028 */ sw $s4, 0x28($sp) +/* 0EEE20 7F0BA2F0 AFB30024 */ sw $s3, 0x24($sp) +/* 0EEE24 7F0BA2F4 AFB20020 */ sw $s2, 0x20($sp) +/* 0EEE28 7F0BA2F8 AFB1001C */ sw $s1, 0x1c($sp) +/* 0EEE2C 7F0BA2FC AFB00018 */ sw $s0, 0x18($sp) +/* 0EEE30 7F0BA300 AFA700C4 */ sw $a3, 0xc4($sp) +/* 0EEE34 7F0BA304 3C018004 */ lui $at, %hi(room_data_float1) +/* 0EEE38 7F0BA308 C42013F4 */ lwc1 $f0, %lo(room_data_float1)($at) +/* 0EEE3C 7F0BA30C C4840000 */ lwc1 $f4, ($a0) +/* 0EEE40 7F0BA310 8CF10000 */ lw $s1, ($a3) +/* 0EEE44 7F0BA314 3C1E8004 */ lui $fp, %hi(D_80044904) +/* 0EEE48 7F0BA318 46002182 */ mul.s $f6, $f4, $f0 +/* 0EEE4C 7F0BA31C 00C0A025 */ move $s4, $a2 +/* 0EEE50 7F0BA320 00004025 */ move $t0, $zero +/* 0EEE54 7F0BA324 27DE4904 */ addiu $fp, %lo(D_80044904) # addiu $fp, $fp, 0x4904 +/* 0EEE58 7F0BA328 27B00070 */ addiu $s0, $sp, 0x70 +/* 0EEE5C 7F0BA32C 8FB500C8 */ lw $s5, 0xc8($sp) +/* 0EEE60 7F0BA330 27B60070 */ addiu $s6, $sp, 0x70 +/* 0EEE64 7F0BA334 E7A600A0 */ swc1 $f6, 0xa0($sp) +/* 0EEE68 7F0BA338 C4880004 */ lwc1 $f8, 4($a0) +/* 0EEE6C 7F0BA33C 27B70064 */ addiu $s7, $sp, 0x64 +/* 0EEE70 7F0BA340 46004282 */ mul.s $f10, $f8, $f0 +/* 0EEE74 7F0BA344 E7AA00A4 */ swc1 $f10, 0xa4($sp) +/* 0EEE78 7F0BA348 C4900008 */ lwc1 $f16, 8($a0) +/* 0EEE7C 7F0BA34C 46008482 */ mul.s $f18, $f16, $f0 +/* 0EEE80 7F0BA350 E7B200A8 */ swc1 $f18, 0xa8($sp) +/* 0EEE84 7F0BA354 C4A40000 */ lwc1 $f4, ($a1) +/* 0EEE88 7F0BA358 46002182 */ mul.s $f6, $f4, $f0 +/* 0EEE8C 7F0BA35C E7A60094 */ swc1 $f6, 0x94($sp) +/* 0EEE90 7F0BA360 C4A80004 */ lwc1 $f8, 4($a1) +/* 0EEE94 7F0BA364 46004282 */ mul.s $f10, $f8, $f0 +/* 0EEE98 7F0BA368 E7AA0098 */ swc1 $f10, 0x98($sp) +/* 0EEE9C 7F0BA36C C4B00008 */ lwc1 $f16, 8($a1) +/* 0EEEA0 7F0BA370 AFB1007C */ sw $s1, 0x7c($sp) +/* 0EEEA4 7F0BA374 46008482 */ mul.s $f18, $f16, $f0 +/* 0EEEA8 7F0BA378 E7B2009C */ swc1 $f18, 0x9c($sp) +.L7F0BA37C: +/* 0EEEAC 7F0BA37C 0111082A */ slt $at, $t0, $s1 +/* 0EEEB0 7F0BA380 1020007C */ beqz $at, .L7F0BA574 +/* 0EEEB4 7F0BA384 00087880 */ sll $t7, $t0, 2 +/* 0EEEB8 7F0BA388 028FC021 */ addu $t8, $s4, $t7 +/* 0EEEBC 7F0BA38C 3C028008 */ lui $v0, %hi(ptr_bgdata_portals) +/* 0EEEC0 7F0BA390 8C42FF80 */ lw $v0, %lo(ptr_bgdata_portals)($v0) +/* 0EEEC4 7F0BA394 AFB8005C */ sw $t8, 0x5c($sp) +.L7F0BA398: +/* 0EEEC8 7F0BA398 8C490000 */ lw $t1, ($v0) +/* 0EEECC 7F0BA39C 8FB9005C */ lw $t9, 0x5c($sp) +/* 0EEED0 7F0BA3A0 00009025 */ move $s2, $zero +/* 0EEED4 7F0BA3A4 1120006C */ beqz $t1, .L7F0BA558 +/* 0EEED8 7F0BA3A8 8F330000 */ lw $s3, ($t9) +/* 0EEEDC 7F0BA3AC AFA8008C */ sw $t0, 0x8c($sp) +/* 0EEEE0 7F0BA3B0 00403825 */ move $a3, $v0 +/* 0EEEE4 7F0BA3B4 90EA0006 */ lbu $t2, 6($a3) +.L7F0BA3B8: +/* 0EEEE8 7F0BA3B8 314B0001 */ andi $t3, $t2, 1 +/* 0EEEEC 7F0BA3BC 55600061 */ bnezl $t3, .L7F0BA544 +/* 0EEEF0 7F0BA3C0 8CEA0008 */ lw $t2, 8($a3) +/* 0EEEF4 7F0BA3C4 90EC0004 */ lbu $t4, 4($a3) +/* 0EEEF8 7F0BA3C8 526C0005 */ beql $s3, $t4, .L7F0BA3E0 +/* 0EEEFC 7F0BA3CC 8FC10000 */ lw $at, ($fp) +/* 0EEF00 7F0BA3D0 90ED0005 */ lbu $t5, 5($a3) +/* 0EEF04 7F0BA3D4 566D005B */ bnel $s3, $t5, .L7F0BA544 +/* 0EEF08 7F0BA3D8 8CEA0008 */ lw $t2, 8($a3) +/* 0EEF0C 7F0BA3DC 8FC10000 */ lw $at, ($fp) +.L7F0BA3E0: +/* 0EEF10 7F0BA3E0 8FCF0004 */ lw $t7, 4($fp) +/* 0EEF14 7F0BA3E4 3C188004 */ lui $t8, %hi(D_80044910) +/* 0EEF18 7F0BA3E8 AEC10000 */ sw $at, ($s6) +/* 0EEF1C 7F0BA3EC 8FC10008 */ lw $at, 8($fp) +/* 0EEF20 7F0BA3F0 27184910 */ addiu $t8, %lo(D_80044910) # addiu $t8, $t8, 0x4910 +/* 0EEF24 7F0BA3F4 AECF0004 */ sw $t7, 4($s6) +/* 0EEF28 7F0BA3F8 AEC10008 */ sw $at, 8($s6) +/* 0EEF2C 7F0BA3FC 8F010000 */ lw $at, ($t8) +/* 0EEF30 7F0BA400 00003025 */ move $a2, $zero +/* 0EEF34 7F0BA404 AEE10000 */ sw $at, ($s7) +/* 0EEF38 7F0BA408 8F090004 */ lw $t1, 4($t8) +/* 0EEF3C 7F0BA40C AEE90004 */ sw $t1, 4($s7) +/* 0EEF40 7F0BA410 8F010008 */ lw $at, 8($t8) +/* 0EEF44 7F0BA414 AEE10008 */ sw $at, 8($s7) +/* 0EEF48 7F0BA418 8CE50000 */ lw $a1, ($a3) +/* 0EEF4C 7F0BA41C 90AA0000 */ lbu $t2, ($a1) +/* 0EEF50 7F0BA420 1940001F */ blez $t2, .L7F0BA4A0 +/* 0EEF54 7F0BA424 00002025 */ move $a0, $zero +.L7F0BA428: +/* 0EEF58 7F0BA428 27A30070 */ addiu $v1, $sp, 0x70 +/* 0EEF5C 7F0BA42C 27A20064 */ addiu $v0, $sp, 0x64 +.L7F0BA430: +/* 0EEF60 7F0BA430 00065880 */ sll $t3, $a2, 2 +/* 0EEF64 7F0BA434 01665823 */ subu $t3, $t3, $a2 +/* 0EEF68 7F0BA438 000B5880 */ sll $t3, $t3, 2 +/* 0EEF6C 7F0BA43C 00AB6021 */ addu $t4, $a1, $t3 +/* 0EEF70 7F0BA440 01846821 */ addu $t5, $t4, $a0 +/* 0EEF74 7F0BA444 C5A00004 */ lwc1 $f0, 4($t5) +/* 0EEF78 7F0BA448 C4640000 */ lwc1 $f4, ($v1) +/* 0EEF7C 7F0BA44C 24840004 */ addiu $a0, $a0, 4 +/* 0EEF80 7F0BA450 4604003C */ c.lt.s $f0, $f4 +/* 0EEF84 7F0BA454 00000000 */ nop +/* 0EEF88 7F0BA458 45020003 */ bc1fl .L7F0BA468 +/* 0EEF8C 7F0BA45C C4460000 */ lwc1 $f6, ($v0) +/* 0EEF90 7F0BA460 E4600000 */ swc1 $f0, ($v1) +/* 0EEF94 7F0BA464 C4460000 */ lwc1 $f6, ($v0) +.L7F0BA468: +/* 0EEF98 7F0BA468 24630004 */ addiu $v1, $v1, 4 +/* 0EEF9C 7F0BA46C 4600303C */ c.lt.s $f6, $f0 +/* 0EEFA0 7F0BA470 00000000 */ nop +/* 0EEFA4 7F0BA474 45020003 */ bc1fl .L7F0BA484 +/* 0EEFA8 7F0BA478 24420004 */ addiu $v0, $v0, 4 +/* 0EEFAC 7F0BA47C E4400000 */ swc1 $f0, ($v0) +/* 0EEFB0 7F0BA480 24420004 */ addiu $v0, $v0, 4 +.L7F0BA484: +/* 0EEFB4 7F0BA484 1450FFEA */ bne $v0, $s0, .L7F0BA430 +/* 0EEFB8 7F0BA488 8CE50000 */ lw $a1, ($a3) +/* 0EEFBC 7F0BA48C 90A20000 */ lbu $v0, ($a1) +/* 0EEFC0 7F0BA490 24C60001 */ addiu $a2, $a2, 1 +/* 0EEFC4 7F0BA494 00C2082A */ slt $at, $a2, $v0 +/* 0EEFC8 7F0BA498 5420FFE3 */ bnezl $at, .L7F0BA428 +/* 0EEFCC 7F0BA49C 00002025 */ move $a0, $zero +.L7F0BA4A0: +/* 0EEFD0 7F0BA4A0 02C02025 */ move $a0, $s6 +/* 0EEFD4 7F0BA4A4 02E02825 */ move $a1, $s7 +/* 0EEFD8 7F0BA4A8 27A600A0 */ addiu $a2, $sp, 0xa0 +/* 0EEFDC 7F0BA4AC 0FC2E89B */ jal sub_GAME_7F0BA26C +/* 0EEFE0 7F0BA4B0 27A70094 */ addiu $a3, $sp, 0x94 +/* 0EEFE4 7F0BA4B4 1040001F */ beqz $v0, .L7F0BA534 +/* 0EEFE8 7F0BA4B8 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) +/* 0EEFEC 7F0BA4BC 8DCEFF80 */ lw $t6, %lo(ptr_bgdata_portals)($t6) +/* 0EEFF0 7F0BA4C0 00004025 */ move $t0, $zero +/* 0EEFF4 7F0BA4C4 0235082A */ slt $at, $s1, $s5 +/* 0EEFF8 7F0BA4C8 01D23821 */ addu $a3, $t6, $s2 +/* 0EEFFC 7F0BA4CC 90E20004 */ lbu $v0, 4($a3) +/* 0EF000 7F0BA4D0 16620003 */ bne $s3, $v0, .L7F0BA4E0 +/* 0EF004 7F0BA4D4 00401825 */ move $v1, $v0 +/* 0EF008 7F0BA4D8 10000001 */ b .L7F0BA4E0 +/* 0EF00C 7F0BA4DC 90E30005 */ lbu $v1, 5($a3) +.L7F0BA4E0: +/* 0EF010 7F0BA4E0 1A200007 */ blez $s1, .L7F0BA500 +/* 0EF014 7F0BA4E4 02801025 */ move $v0, $s4 +.L7F0BA4E8: +/* 0EF018 7F0BA4E8 8C4F0000 */ lw $t7, ($v0) +/* 0EF01C 7F0BA4EC 106F0004 */ beq $v1, $t7, .L7F0BA500 +/* 0EF020 7F0BA4F0 00000000 */ nop +/* 0EF024 7F0BA4F4 25080001 */ addiu $t0, $t0, 1 +/* 0EF028 7F0BA4F8 1511FFFB */ bne $t0, $s1, .L7F0BA4E8 +/* 0EF02C 7F0BA4FC 24420004 */ addiu $v0, $v0, 4 +.L7F0BA500: +/* 0EF030 7F0BA500 1511000C */ bne $t0, $s1, .L7F0BA534 +/* 0EF034 7F0BA504 00000000 */ nop +/* 0EF038 7F0BA508 10200004 */ beqz $at, .L7F0BA51C +/* 0EF03C 7F0BA50C 0011C880 */ sll $t9, $s1, 2 +/* 0EF040 7F0BA510 0299C021 */ addu $t8, $s4, $t9 +/* 0EF044 7F0BA514 AF030000 */ sw $v1, ($t8) +/* 0EF048 7F0BA518 26310001 */ addiu $s1, $s1, 1 +.L7F0BA51C: +/* 0EF04C 7F0BA51C 0235082A */ slt $at, $s1, $s5 +/* 0EF050 7F0BA520 14200004 */ bnez $at, .L7F0BA534 +/* 0EF054 7F0BA524 00000000 */ nop +/* 0EF058 7F0BA528 8FA900C4 */ lw $t1, 0xc4($sp) +/* 0EF05C 7F0BA52C 10000018 */ b .L7F0BA590 +/* 0EF060 7F0BA530 AD310000 */ sw $s1, ($t1) +.L7F0BA534: +/* 0EF064 7F0BA534 3C028008 */ lui $v0, %hi(ptr_bgdata_portals) +/* 0EF068 7F0BA538 8C42FF80 */ lw $v0, %lo(ptr_bgdata_portals)($v0) +/* 0EF06C 7F0BA53C 00523821 */ addu $a3, $v0, $s2 +/* 0EF070 7F0BA540 8CEA0008 */ lw $t2, 8($a3) +.L7F0BA544: +/* 0EF074 7F0BA544 26520008 */ addiu $s2, $s2, 8 +/* 0EF078 7F0BA548 24E70008 */ addiu $a3, $a3, 8 +/* 0EF07C 7F0BA54C 5540FF9A */ bnezl $t2, .L7F0BA3B8 +/* 0EF080 7F0BA550 90EA0006 */ lbu $t2, 6($a3) +/* 0EF084 7F0BA554 8FA8008C */ lw $t0, 0x8c($sp) +.L7F0BA558: +/* 0EF088 7F0BA558 8FAB005C */ lw $t3, 0x5c($sp) +/* 0EF08C 7F0BA55C 8FAD007C */ lw $t5, 0x7c($sp) +/* 0EF090 7F0BA560 25080001 */ addiu $t0, $t0, 1 +/* 0EF094 7F0BA564 256C0004 */ addiu $t4, $t3, 4 +/* 0EF098 7F0BA568 010D082A */ slt $at, $t0, $t5 +/* 0EF09C 7F0BA56C 1420FF8A */ bnez $at, .L7F0BA398 +/* 0EF0A0 7F0BA570 AFAC005C */ sw $t4, 0x5c($sp) +.L7F0BA574: +/* 0EF0A4 7F0BA574 8FAE007C */ lw $t6, 0x7c($sp) +/* 0EF0A8 7F0BA578 522E0004 */ beql $s1, $t6, .L7F0BA58C +/* 0EF0AC 7F0BA57C 8FAF00C4 */ lw $t7, 0xc4($sp) +/* 0EF0B0 7F0BA580 1000FF7E */ b .L7F0BA37C +/* 0EF0B4 7F0BA584 AFB1007C */ sw $s1, 0x7c($sp) +/* 0EF0B8 7F0BA588 8FAF00C4 */ lw $t7, 0xc4($sp) +.L7F0BA58C: +/* 0EF0BC 7F0BA58C ADF10000 */ sw $s1, ($t7) +.L7F0BA590: +/* 0EF0C0 7F0BA590 8FBF003C */ lw $ra, 0x3c($sp) +/* 0EF0C4 7F0BA594 8FB00018 */ lw $s0, 0x18($sp) +/* 0EF0C8 7F0BA598 8FB1001C */ lw $s1, 0x1c($sp) +/* 0EF0CC 7F0BA59C 8FB20020 */ lw $s2, 0x20($sp) +/* 0EF0D0 7F0BA5A0 8FB30024 */ lw $s3, 0x24($sp) +/* 0EF0D4 7F0BA5A4 8FB40028 */ lw $s4, 0x28($sp) +/* 0EF0D8 7F0BA5A8 8FB5002C */ lw $s5, 0x2c($sp) +/* 0EF0DC 7F0BA5AC 8FB60030 */ lw $s6, 0x30($sp) +/* 0EF0E0 7F0BA5B0 8FB70034 */ lw $s7, 0x34($sp) +/* 0EF0E4 7F0BA5B4 8FBE0038 */ lw $fp, 0x38($sp) +/* 0EF0E8 7F0BA5B8 03E00008 */ jr $ra +/* 0EF0EC 7F0BA5BC 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +u32 sub_GAME_7F0BA5C0(u32 arg0, u32 arg1) { + s32 temp_a0; + u32 temp_v0; + void *phi_v0; + s32 phi_a0; + void *phi_v1; + + // Node 0 + if (arg0 < arg1) + { + // Node 1 + phi_v0 = arg0; +loop_2: + // Node 2 + if (D_80044940 != 0) + { + // Node 3 + phi_a0 = D_80044940; + phi_v1 = &D_80044940; +loop_4: + // Node 4 + if (*phi_v0 == phi_a0) + { + // Node 5 + if (phi_v0->unk4 == phi_v1->unk4) + { + // Node 6 + *phi_v0 = (s32) phi_v1->unk8; + phi_v0->unk4 = (s32) phi_v1->unkC; + } + } + // Node 7 + temp_a0 = phi_v1->unk10; + phi_a0 = temp_a0; + phi_v1 = (phi_v1 + 0x10); + if (temp_a0 != 0) + { + goto loop_4; + } + } + // Node 8 + temp_v0 = (phi_v0 + 8); + phi_v0 = temp_v0; + if (temp_v0 < arg1) + { + goto loop_2; + } + } + // Node 9 + return arg0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BA5C0 +/* 0EF0F0 7F0BA5C0 0085082B */ sltu $at, $a0, $a1 +/* 0EF0F4 7F0BA5C4 1020001C */ beqz $at, .L7F0BA638 +/* 0EF0F8 7F0BA5C8 00801025 */ move $v0, $a0 +/* 0EF0FC 7F0BA5CC 3C068004 */ lui $a2, %hi(D_80044940) +/* 0EF100 7F0BA5D0 24C64940 */ addiu $a2, %lo(D_80044940) # addiu $a2, $a2, 0x4940 +/* 0EF104 7F0BA5D4 8CCE0000 */ lw $t6, ($a2) +.L7F0BA5D8: +/* 0EF108 7F0BA5D8 3C0F8004 */ lui $t7, %hi(D_80044940) +/* 0EF10C 7F0BA5DC 25EF4940 */ addiu $t7, %lo(D_80044940) # addiu $t7, $t7, 0x4940 +/* 0EF110 7F0BA5E0 11C00011 */ beqz $t6, .L7F0BA628 +/* 0EF114 7F0BA5E4 00C01825 */ move $v1, $a2 +/* 0EF118 7F0BA5E8 8DE40000 */ lw $a0, ($t7) +/* 0EF11C 7F0BA5EC 8C580000 */ lw $t8, ($v0) +.L7F0BA5F0: +/* 0EF120 7F0BA5F0 5704000A */ bnel $t8, $a0, .L7F0BA61C +/* 0EF124 7F0BA5F4 8C640010 */ lw $a0, 0x10($v1) +/* 0EF128 7F0BA5F8 8C590004 */ lw $t9, 4($v0) +/* 0EF12C 7F0BA5FC 8C680004 */ lw $t0, 4($v1) +/* 0EF130 7F0BA600 57280006 */ bnel $t9, $t0, .L7F0BA61C +/* 0EF134 7F0BA604 8C640010 */ lw $a0, 0x10($v1) +/* 0EF138 7F0BA608 8C610008 */ lw $at, 8($v1) +/* 0EF13C 7F0BA60C AC410000 */ sw $at, ($v0) +/* 0EF140 7F0BA610 8C6A000C */ lw $t2, 0xc($v1) +/* 0EF144 7F0BA614 AC4A0004 */ sw $t2, 4($v0) +/* 0EF148 7F0BA618 8C640010 */ lw $a0, 0x10($v1) +.L7F0BA61C: +/* 0EF14C 7F0BA61C 24630010 */ addiu $v1, $v1, 0x10 +/* 0EF150 7F0BA620 5480FFF3 */ bnezl $a0, .L7F0BA5F0 +/* 0EF154 7F0BA624 8C580000 */ lw $t8, ($v0) +.L7F0BA628: +/* 0EF158 7F0BA628 24420008 */ addiu $v0, $v0, 8 +/* 0EF15C 7F0BA62C 0045082B */ sltu $at, $v0, $a1 +/* 0EF160 7F0BA630 5420FFE9 */ bnezl $at, .L7F0BA5D8 +/* 0EF164 7F0BA634 8CCE0000 */ lw $t6, ($a2) +.L7F0BA638: +/* 0EF168 7F0BA638 03E00008 */ jr $ra +/* 0EF16C 7F0BA63C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BA640(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BA640 /*DynamicCCRMLUT(Int DLSize (a0), Gfx GBICommand(a1), Gfx ReplacementGBICommand (a2))*/ +/* 0EF170 7F0BA640 10A00004 */ beqz $a1, .L7F0BA654 /*if a1 = 0 goto L7F0BA654*/ +/* 0EF174 7F0BA644 00801025 */ move $v0, $a0 /*v0 = a0*/ +/* 0EF178 7F0BA648 0045082B */ sltu $at, $v0, $a1 /*if a1 < v0 then goto L7F0BA668*/ +/* 0EF17C 7F0BA64C 14200006 */ bnez $at, .L7F0BA668 +/* 0EF180 7F0BA650 00000000 */ nop +.L7F0BA654: +/* 0EF184 7F0BA654 14A0002E */ bnez $a1, .L7F0BA710 /*if a1 != 0 goto return*/ +/* 0EF188 7F0BA658 00000000 */ nop +/* 0EF18C 7F0BA65C 808E0000 */ lb $t6, ($a0) /*t6 = byte(a0)*/ +/* 0EF190 7F0BA660 2408FFB8 */ li $t0, -72 /*t0 = 0xB8*/ +/* 0EF194 7F0BA664 110E002A */ beq $t0, $t6, .L7F0BA710 /*if t6 = 0xB8 return (B8 = EndDl())*/ +.L7F0BA668: +/* 0EF198 7F0BA668 3C098004 */ lui $t1, %hi(ptrDynamic_CC_RM_LUT) +/* 0EF19C 7F0BA66C 25294D88 */ addiu $t1, %lo(ptrDynamic_CC_RM_LUT) # addiu $t1, $t1, 0x4d88 +/* 0EF1A0 7F0BA670 00067880 */ sll $t7, $a2, 2 /*t7 = a2 << 2*/ +/* 0EF1A4 7F0BA674 012FC021 */ addu $t8, $t1, $t7 /*t8 = t7 + t1*/ +/* 0EF1A8 7F0BA678 8F030000 */ lw $v1, ($t8) +/* 0EF1AC 7F0BA67C 3C078004 */ lui $a3, %hi(D_80044DB0) +/* 0EF1B0 7F0BA680 8CE74DB0 */ lw $a3, %lo(D_80044DB0)($a3) # 0x4DB0($a3), +/* 0EF1B4 7F0BA684 8C640000 */ lw $a0, ($v1) +/* 0EF1B8 7F0BA688 2408FFB8 */ li $t0, -72 +/* 0EF1BC 7F0BA68C 10800011 */ beqz $a0, .L7F0BA6D4 +/* 0EF1C0 7F0BA690 00000000 */ nop +/* 0EF1C4 7F0BA694 8C590000 */ lw $t9, ($v0) +.L7F0BA698: +/* 0EF1C8 7F0BA698 5724000B */ bnel $t9, $a0, .L7F0BA6C8 +/* 0EF1CC 7F0BA69C 8C640010 */ lw $a0, 0x10($v1) +/* 0EF1D0 7F0BA6A0 8C4A0004 */ lw $t2, 4($v0) +/* 0EF1D4 7F0BA6A4 8C6B0004 */ lw $t3, 4($v1) +/* 0EF1D8 7F0BA6A8 554B0007 */ bnel $t2, $t3, .L7F0BA6C8 +/* 0EF1DC 7F0BA6AC 8C640010 */ lw $a0, 0x10($v1) +/* 0EF1E0 7F0BA6B0 8C610008 */ lw $at, 8($v1) +/* 0EF1E4 7F0BA6B4 24E70001 */ addiu $a3, $a3, 1 +/* 0EF1E8 7F0BA6B8 AC410000 */ sw $at, ($v0) +/* 0EF1EC 7F0BA6BC 8C6D000C */ lw $t5, 0xc($v1) +/* 0EF1F0 7F0BA6C0 AC4D0004 */ sw $t5, 4($v0) +/* 0EF1F4 7F0BA6C4 8C640010 */ lw $a0, 0x10($v1) +.L7F0BA6C8: +/* 0EF1F8 7F0BA6C8 24630010 */ addiu $v1, $v1, 0x10 +/* 0EF1FC 7F0BA6CC 5480FFF2 */ bnezl $a0, .L7F0BA698 +/* 0EF200 7F0BA6D0 8C590000 */ lw $t9, ($v0) +.L7F0BA6D4: +/* 0EF204 7F0BA6D4 10A00006 */ beqz $a1, .L7F0BA6F0 +/* 0EF208 7F0BA6D8 24420008 */ addiu $v0, $v0, 8 +/* 0EF20C 7F0BA6DC 3C018004 */ lui $at, %hi(D_80044DB0) +/* 0EF210 7F0BA6E0 AC274DB0 */ sw $a3, %lo(D_80044DB0)($at) +/* 0EF214 7F0BA6E4 0045082B */ sltu $at, $v0, $a1 +/* 0EF218 7F0BA6E8 1420FFDF */ bnez $at, .L7F0BA668 +/* 0EF21C 7F0BA6EC 00000000 */ nop +.L7F0BA6F0: +/* 0EF220 7F0BA6F0 3C018004 */ lui $at, %hi(D_80044DB0) +/* 0EF224 7F0BA6F4 14A00006 */ bnez $a1, .L7F0BA710 +/* 0EF228 7F0BA6F8 AC274DB0 */ sw $a3, %lo(D_80044DB0)($at) +/* 0EF22C 7F0BA6FC 3C018004 */ lui $at, %hi(D_80044DB0) +/* 0EF230 7F0BA700 AC274DB0 */ sw $a3, %lo(D_80044DB0)($at) +/* 0EF234 7F0BA704 804E0000 */ lb $t6, ($v0) +/* 0EF238 7F0BA708 150EFFD7 */ bne $t0, $t6, .L7F0BA668 +/* 0EF23C 7F0BA70C 00000000 */ nop +.L7F0BA710: +/* 0EF240 7F0BA710 03E00008 */ jr $ra +/* 0EF244 7F0BA714 00000000 */ nop +) +#endif + + + diff --git a/src/game/bg.h b/src/game/bg.h new file mode 100644 index 0000000..d2d2bde --- /dev/null +++ b/src/game/bg.h @@ -0,0 +1,45 @@ +#ifndef _BG_H_ +#define _BG_H_ +#include "ultra64.h" +#include "bondgame.h" + +struct levelentry +{ + s32 levelID; + void *bg_seg_filename; + void *bg_stan_filename; + f32 levelscale; + f32 visibility; + f32 unknownfloat; +}; + +typedef struct s_room_info { + s16 bitflags; + u8 model_bin_loaded; + u8 bitflags2; + void * ptr_point_index; + void * ptr_expanded_mapping_info; + void * ptr_secondary_expanded_mapping_info; + s32 csize_point_index_binary; + s32 csize_primary_DL_binary; + s32 csize_secondary_DL_binary; + s32 usize_point_index_binary; + s32 usize_primary_DL_binary; + s32 usize_secondary_DL_binary; + s32 cur_room_totalsize; + void * ptr_unique_collision_points; + s32 bitflags3; + u8 room_loaded_mask; + u8 field_35; + s16 field_36; + f32 minxbounds; + f32 minybounds; + f32 minzbounds; + f32 maxxbounds; + f32 maxybounds; + f32 maxzbounds; +} s_room_info; + +void bgInitDebugNoticeList(void); + +#endif diff --git a/src/game/blood_animation.c b/src/game/blood_animation.c new file mode 100644 index 0000000..fa85bfa --- /dev/null +++ b/src/game/blood_animation.c @@ -0,0 +1,933 @@ +#include "ultra64.h" + + +char die_blood_image_1[] = { + 0,0x20, 3, 5, 4, 2,0x60,0x21,0x22, 1,0xE0,0xE0,0xE0,0xE0, + 0xE0,0xE0,0xE0,0x60, 3,0x24, 2,0xA0, 2,0xC0, 1,0x22, 0, 3, + 6, 7, 6, 4,0x20, 1, 2,0x23,0x24, 3, 2,0x80,0x21,0xE0, + 0xE0,0xE0,0xE0,0xE0,0xE0,0x60, 5,0x46, 4,0x80,0x24,0xFF, 0, 1, + 3,0xFF,0x80, 3,0x44, 0,0x29, 8, 7,0xFF, 0, 2, 2,0xFF, + 2,0x24,0x25,0x26, 5, 4, 2,0x41, 2, 3, 4, 6,0xFF, 0, + 4, 4,0xFF,0xFF, 0, 5, 2,0xFF,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0, + 0,0xFF, 0, 3, 3,0xFF, 7,0x48, 6,0x60,0xFF, 0, 2, 3, + 0xFF, 6, 7,0xFF, 0, 2, 4,0xFF,0x60, 5,0x66, 0, 0xB, 0xA, + 9, 8,0x26,0x47, 8,0x27, 5, 4,0x43, 4, 5, 7, 0xB,0xFF, + 0, 3, 8,0xFF,0xFF, 0, 5, 5,0xFF,0xFF, 0, 5, 4,0xFF, + 0xE0,0x80, 1,0x22, 1,0xE0,0x20, 1,0x22,0x21,0xE0,0xE0, 0,0xFF, + 0, 2, 7,0xFF,0x4A, 9, 7,0x60, 8,0x29,0xFF, 0, 2, 6, + 0xFF,0xFF, 0, 4, 3,0xFF,0xFF, 0, 5, 2,0xFF,0xFF, 0, 5, + 2,0xFF,0xFF, 0, 2, 5,0xFF,0x88, 0, 0xC, 0xB, 0xA,0xE9, 7, + 0x65, 6, 8, 0xF, 0xE, 0xD,0xFF, 0, 5, 7,0xFF,0xFF, 0, 6, + 5,0xFF,0xFF, 0, 6, 4,0xFF,0xE0,0x60, 2,0x43, 2, 1,0xE0, + 0x64, 3,0x22,0x21,0xE0,0x80,0xFF, 0, 5, 5,0xFF, 0xB,0x4C, 0xB, + 9,0x40,0xFF, 0, 4, 5,0xFF, 0xA, 0xB, 0xA,0xFF, 0, 3, 7, + 0xFF,0xFF, 0, 5, 5,0xFF,0xFF, 0, 5, 4,0xFF,0xFF, 0, 4, + 5,0xFF,0xAA, 0,0x2D, 0xC,0xAB, 0xA, 9, 7,0x26, 7, 8,0xFF, + 0xB, 3, 3,0xFF,0x12,0x11,0x10,0xFF, 1, 4, 0xA,0xFF,0xFF, 0, + 6, 8,0xFF,0xFF, 0, 7, 5,0xFF,0xFF, 0, 8, 3,0xFF,0xE0, + 0x20, 1, 4,0x45,0x24, 3,0xA0, 2, 8, 7,0x26, 5,0x24,0x23, + 0x22, 1,0x20,0x41,0x42, 1, 0,0xFF, 0, 6, 5,0xFF,0xFF, 2, + 1, 0xA,0xFF, 0xD,0x4E, 0xD,0xFF, 0, 5, 6,0xFF,0x20,0xFF, 0, + 8, 2,0xFF,0x6C,0xFF, 2, 1, 9,0xFF,0xFF, 0, 5, 7,0xFF, + 0xFF, 0, 5, 7,0xFF,0xCC, 0, 0xF,0x2E,0x8D, 0xC, 0xB, 9,0x28, + 9, 0xB,0x34,0x13,0x12,0x11,0xFF, 2, 5, 9,0xFF,0xFF, 1, 6, + 8,0xFF,0xFF, 1, 7, 5,0xFF,0xFF, 0, 9, 2,0xFF, 0,0x41, + 0x80, 3, 5,0x47,0x26, 5, 4, 3, 1, 0, 1, 2, 0xB, 0xC, + 0xA, 9, 8, 7,0x26,0x25,0x24,0xA3,0x64, 3,0xFF, 2, 6, 4, + 0xFF,0xFF, 3, 2, 9,0xFF,0x2F,0x50, 0xF,0xFF, 0, 6, 8,0xFF, + 0,0xFF, 0, 0xA, 2,0xFF,0xFF, 0, 6, 7,0xFF,0x8E,0xFF, 2, + 3, 9,0xFF,0xFF, 3, 1, 0xA,0xFF,0xCE, 0,0x11,0x30,0x4F,0x2E, + 0xC, 0xB,0x2A, 0xB,0x16,0x17,0x16,0x15,0x14,0x13,0xFF, 4, 3, 0xB, + 0xFF,0xFF, 3, 5, 8,0xFF,0xFF, 2, 6, 7,0xFF,0xFF, 2, 7, + 5,0xFF,0xFF, 2, 8, 2,0xFF,0x43, 2, 1,0x40, 5, 7, 8, + 0x29,0x28,0x27, 6, 5, 4, 5, 0xB, 0xE, 0xF, 0xD, 0xB, 0xA, 9, + 0x28,0x27,0x46,0xA5,0x66,0xFF, 5, 3, 5,0xFF, 0xF,0x10,0x31,0x32, + 0x31,0xFF, 1, 6, 9,0xFF,0xFF, 0, 9, 6,0xFF,0xFF, 0, 9, + 6,0xFF,0xF0,0xD0, 1,0x11,0x30,0x4F, 0xE, 0xD, 0xC,0x2B,0xFF, 0xE, + 6, 3,0xFF,0x38,0x17,0x16,0x14,0x13,0x12,0xFF, 6, 1, 0xB,0xFF, + 0xFF, 5, 3, 9,0xFF,0xFF, 4, 5, 7,0xFF,0xFF, 4, 6, 5, + 0xFF,0x44, 3, 2, 1, 0, 2, 5, 8,0x89,0x28,0x47, 8, 0xC, + 0xF,0x30, 0xE, 0xC, 0xA,0x29,0x28,0x67,0xA6,0x27, 8, 0xC,0x10,0x31, + 0xB2,0xFF, 3, 4, 0xB,0xFF,0xFF, 1, 8, 9,0xFF,0xFF, 3, 4, + 0xB,0xFF,0x91,0x30,0xF1, 4,0x2F,0x2E,0x2D, 0xC,0x4A,0x57,0x16,0x14, + 0x13,0x12,0x11,0x10, 0xF, 0xE,0xFF, 7, 2, 8,0xFF,0xFF, 7, 3, + 6,0xFF,0x23, 2, 1,0x20, 1, 4, 6, 7,0x48,0x47,0x26, 7, + 8, 0xB, 0xE,0x2F, 0xE, 0xB, 0xA, 8,0x27,0xA6,0x85,0x26, 7, 0xA, + 0xE, 0xF,0x30,0xB1,0x10,0xFF, 4, 4, 0xC,0xFF,0x70,0x8F,0xD0, 6, + 0x2E,0x2D, 0xC, 0xB,0x2A,0xFF,0x12, 3, 6,0xFF,0x57,0x15,0x14,0x13, + 0x12,0x11,0x10, 0xF, 0xE, 0xD, 0xC, 0xA, 3, 2, 1,0x20, 2, 4, + 6, 7,0x48,0x47,0x26, 7, 8, 0xB, 0xE, 0xF,0x10, 0xF, 0xD, 0xA, + 9, 8, 7,0x26, 5,0x46,0xA5, 6, 7, 9, 0xD, 0xF,0x50,0xB1, + 0x50,0xEF,0x90, 0xF,0x10, 9,0x2C,0x2B, 0xA, 9, 0xA,0x16,0x17,0x16, + 0x15,0x14,0x13,0x11,0x10, 0xF, 0xE,0x2D, 0xC, 0xB, 0xA, 7, 2, 1, + 0x20, 1, 3, 4, 6,0x47, 6,0xFF, 0xF, 8, 5,0xFF,0x66, 7, + 0xA, 0xC, 0xE, 0xF, 0xE, 0xD, 0xA, 8, 7, 6, 5,0x64, 5,0xC4, + 6, 8, 0xB, 0xD, 0xE,0x4F,0xB0,0x2F,0xEE, 0xE,0x6F,0x4E, 0xB,0x4B, + 0xA, 0xB,0x14,0x16,0x17,0x16,0x15,0x13,0x12,0x11,0x10, 0xF, 0xE, 0xD, + 0x2C, 0xB, 0xA, 8, 4, 1,0x20, 1, 2, 4, 5, 6,0x27,0xFF, + 0x12, 6, 4,0xFF,0xFF,0x11, 6, 7,0xFF,0xFF,0x11, 6, 7,0xFF, + 0x46, 8, 9, 0xC, 0xE,0x2F, 0xE, 0xB, 9, 7, 6, 5,0xE4,0x23, + 0x24, 5, 7, 0xB, 0xD,0x4E,0x4F,0x90,0x2F,0x4E,0x6D,0x2E,0x6F,0x4E, + 0xD,0x2A, 0xB,0x12,0x16,0x17,0x16,0x15,0x14,0x13,0x11,0x10, 0xF, 0xE, + 0x2D, 0xC,0x2B, 0xA, 9, 5, 2,0x20, 1, 2, 4, 5, 6,0x27, + 0xFF,0x15, 1, 9,0xFF,0x13,0xFF,0x15, 1, 0xB,0xFF,0xFF,0x14, 5, + 5,0xFF, 6, 7, 8, 9, 0xB, 0xD,0x2F, 0xE, 0xC, 0xA, 8, 6, + 5, 4,0x23,0x84,0x43, 4, 5, 7, 0xB,0x2D,0x4E,0x8F,0x30,0x2F, + 0x2E,0xCD, 0xE,0x4F,0x6E, 0xF, 0xB, 0xF,0x15,0x56,0x15,0x13,0x12,0x11, + 0x10, 0xF, 0xE, 0xD,0x2C,0x2B, 0xA, 9, 6, 2,0x20, 1, 2, 4, + 5, 6, 7, 0xC,0x12,0x13,0x14,0x13,0x27, 8, 9, 0xB, 0xD, 0xE, + 0xF, 0xE, 0xD, 0xB, 9, 7, 5, 4,0x43,0x84,0x43, 4, 6, 0xB, + 0x4D,0x6E,0xEF, 0xE,0xED,0x2E,0x2F,0x6E,0x11,0x14,0x56,0x15,0x14,0x13, + 0x11,0x10, 0xF, 0xE, 0xD,0x2C,0x4B,0x2A, 7, 3, 1, 0, 1, 2, + 4, 5, 6, 8, 0xE,0x12,0x13,0x14,0x13, 0xD,0x28, 9, 0xB, 0xD, + 0xE, 0xF,0x2E, 0xC, 0xA, 8, 5, 4,0x63,0x64,0x43, 4, 7, 0xB, + 0xC,0x4D,0x8E,0xAF,0x2E,0x2D,0x6C,0x2D,0x2E,0x2F,0x6E,0x13,0x56,0x15, + 0x13,0x12,0x10, 0xF, 0xE,0x2D, 0xC,0x6B,0x2A, 8, 4, 1, 0, 1, + 2, 4, 5, 7, 0xA, 0xF,0x12,0x13,0x34,0x13, 9, 8, 9, 0xB, + 0xD,0x6E, 0xD, 0xC, 0xA, 6, 4, 3,0x22, 3,0x84,0x23, 4, 8, + 0xB, 0xC,0xAD,0x8E,0x4F,0x2E,0x2D,0xAC, 0xD,0xEE,0x16,0x15,0x14,0x13, + 0x11,0x10, 0xE,0x2D, 0xC, 0xB,0x2A,0x89, 8, 4, 1,0x20, 1, 3, + 5, 7, 0xB, 0xF,0x11,0x12,0x33,0x12, 0xA,0x28, 0xA, 0xC,0xCD,0xFF, + 0x20, 4, 4,0xFF,0xFF,0x1B, 8, 6,0xFF,0xFF,0x18, 0xC, 5,0xFF, + 0xFF,0x17, 0xF, 2,0xFF, 1, 2,0xC3, 4, 8, 0xA,0x2B,0xCC,0xED, + 0x2C,0x4B,0x2A,0x2B,0x2C,0xCD,0x18,0x13,0x12,0x10, 0xF, 0xD,0x2C, 0xB, + 0x2A,0xA9, 8, 6, 2, 0, 1, 2, 4, 6, 8, 0xC, 0xF,0x11, + 0x32,0x13,0x32,0x29, 0xA,0x2C,0x4D, 0xE, 0xF,0x11,0x12,0x33,0xFF,0x1A, + 9, 8,0xFF,0xFF,0x1A, 0xB, 6,0xFF, 2,0xA3, 4, 6, 8, 9, + 0xA,0x4B,0xEC,0xAD, 0xC,0x4B,0x6A,0x2B, 0xC,0xCD,0x1C, 0xF, 0xD, 0xB, + 0x2A, 9, 8,0xE7, 6, 5, 3, 0, 1, 2, 3, 5, 8, 0xB, + 0xD, 0xF,0x90, 0xF, 0xC,0x6A,0x2B, 0xC, 0xE, 0xF,0x10,0x71,0xFF,0x1D, + 9, 7,0xFF,0xFF,0x1D, 0xC, 2,0xFF,0x61, 2, 3, 4, 6, 7, + 0x28,0xC9,0xAA,0x2B,0x4A,0x29,0x88,0x29, 0xA,0xCB,0x1F, 0xA, 9,0x28, + 7,0x26,0x45,0x66, 5, 4, 3,0x22, 3, 4, 5, 8, 0xB, 0xD, + 0x2E,0x6F, 0xE, 0xD, 0xA,0x69, 0xA, 0xB, 0xD, 0xE,0x2F,0x70,0xFF,0x21, + 5, 9,0xFF,0xFF,0x20, 9, 6,0xFF,0x20,0x21, 2, 3, 5,0x26, + 0x27,0xE8,0x28,0xC9,0x28,0x27,0x26,0x47, 8,0x29,0x2A,0x4B, 0xA,0x22, + 7,0x26, 5,0x84,0x65,0x24,0x63, 4, 6, 9, 0xA, 0xC,0x2D,0x6E, + 0xD, 0xC, 0xA, 9,0x48, 9, 0xA, 0xC, 0xD,0x4E,0x6F,0x10,0xFF,0x22, + 7, 9,0xFF,0x20, 1, 2,0x23, 4,0x25,0x86,0xE7,0x88,0x27,0x26, + 0x65,0x26, 7,0x28, 9,0x6A, 9,0x25,0x24,0x23,0x22,0x23,0x64,0x23, + 0x42, 3, 5, 7, 8, 9, 0xA, 0xB,0x2C, 0xD,0x4C, 0xB, 9, 8, + 0x47, 8, 9, 0xB,0x2C,0x6D,0x2E, 0xF,0x10,0xFF,0x27, 1, 0xD,0xFF, + 0,0x21,0x22,0x23,0x44,0xE5,0x25,0x46,0x47,0x26,0x45,0x84, 5, 6, + 7, 8,0x29, 0xA,0x49,0x29, 1,0x60,0x21,0x42,0xA1, 2, 4, 5, + 6, 7, 8, 9,0x8A, 9, 8, 7, 6, 5, 4, 5, 6, 7, + 8, 9,0x4A,0x4B, 0xC, 0xD,0x2E, 0xD, 2,0x60,0x41,0x62,0xE3, 3, + 0xC4,0x23,0x42, 1, 2,0xFF,0x2B, 0xB, 3,0xFF,0xFF,0x2C, 9, 4, + 0xFF,0xFF,0x2D, 7, 5,0xFF,0xFF,0x2F, 5, 4,0xFF, 7,0x68,0x27, + 0x2B,0x60,0xFF,0x2C, 0xB, 2,0xFF,0xFF,0x2D, 9, 4,0xFF,0xFF,0x2D, + 8, 5,0xFF,0xFF,0x2D, 8, 5,0xFF, 2,0x81, 2, 3, 4, 5, + 6, 7, 8,0x29,0x2A,0x49, 8, 7, 5,0x24, 5, 6, 7, 8, + 0x29,0x6A, 0xB, 0xC, 0xD,0x4E, 0xC, 3, 1,0x40,0x61,0x62,0xE3,0x24, + 0x45,0x24,0x23,0x22, 1,0xFF,0x2C, 0xA, 4,0xFF,0xFF,0x2D, 8, 7, + 0xFF,0xFF,0x2E, 6, 8,0xFF,0xFF,0x2F, 4, 9,0xFF,0x10, 0xF, 0xE, + 0xB, 9,0x28,0x27,0x2C, 0,0xFF,0x2D, 0xB, 2,0xFF,0xFF,0x2E, 8, + 6,0xFF,0xFF,0x2F, 6, 7,0xFF,0xFF,0x30, 3, 9,0xFF,0x10,0xFF, + 0x31, 2, 9,0xFF,0xFF,0x30, 5, 6,0xFF, 3,0x22,0x23, 4, 5, + 0x26, 7, 8, 9,0x8A,0x29, 8, 7, 6,0x45, 7, 8,0x29,0x6A, + 0x2B, 0xC,0x2E,0x2F, 0xE, 0xC, 3, 2,0x61,0x62,0xC3,0x44,0x25,0x86, + 0x25,0x24,0xFF,0x2F, 8, 2,0xFF,0xFF,0x2F, 6, 7,0xFF,0xFF,0x2F, + 5, 9,0xFF,0xFF,0x30, 3, 0xB,0xFF,0x12,0x31,0x10, 0xF, 0xD, 0xB, + 0xA,0x29, 8,0x2F,0xFF,0x30, 4, 0xA,0xFF,0x6F,0x2E, 0xC,0x63,0x24, + 0x25, 6, 7,0x28,0x29,0x48,0x27, 6, 5,0x24, 5, 6,0x27,0x48, + 0x49, 0xA, 0xB, 0xC,0x6D, 0xC, 8, 2,0xA0,0x41,0x82,0x43,0x24, 5, + 0xE6, 9, 0xC, 0xE, 0xF,0x70, 0xF, 0xE, 0xD, 0xC, 0xA, 9,0x48,0x31, + 0x2F,0x4E, 0xD, 0xC, 8, 5,0x84, 5, 6, 7,0x88,0x27,0x26, 5, + 0x44, 5,0x26,0x27,0x68, 9, 0xA, 0xB, 0xC,0x4D,0x2C, 0xA, 6, 2, + 0xC0,0x21,0x62,0x23, 4, 6,0xE8,0x28, 9, 0xB, 0xD, 0xE, 0xF,0x50, + 0x2F, 0xE, 0xD, 0xC, 0xA, 9,0x28, 9,0x33,0x4E,0x2D, 0xC, 9, 6, + 0x24, 3,0x24, 5, 6, 7,0x68,0x27,0x26,0x25,0x44, 5,0x26,0x47, + 0x48, 9, 0xA, 0xB,0x8C, 0xB, 0xA, 8, 5, 1,0xC0,0x21,0x22,0x23, + 5, 7, 9,0x4A,0x49,0x68, 9, 0xA, 0xC, 0xD, 0xE,0x6F,0x2E,0x2D, + 0xB, 0xA, 9, 8, 9, 0xA,0x34,0x6E, 0xC, 0xA, 6, 5,0x44, 5, + 6, 7, 8,0x49,0x28,0x27,0x46,0x25,0x26,0x27,0x68,0x29, 0xA, 0xB, + 0xC,0x6D,0x2C, 0xB, 0xA, 8, 5, 2,0x21, 0,0x61,0x22, 3, 4, + 5, 7, 9, 0xB,0x4C,0x2B,0x2A,0x49,0x2A, 0xB, 0xD, 0xE, 0xF,0x50, + 0xF,0x4E, 0xD, 0xC, 0xB,0x2A, 0xB, 0xD,0x36,0x2E, 0xD, 0xC, 0xA, 6, + 0x64, 5, 7,0x28, 9,0x28,0x47,0xA6,0x67,0x68, 9, 0xA, 0xB,0xCC, + 0x2B, 0xA, 9, 7, 4, 2,0x21,0x20,0x21,0x22, 3, 4, 5, 7, + 9, 0xB,0x2D, 0xC,0x2B,0x2A,0x69,0x2A, 0xC, 0xD, 0xE,0x6F,0x2E,0x2D, + 0x2C, 0xB, 0xA, 0xB, 0xC, 0xE,0x38,0x4D, 0xA, 6,0x44, 5, 6,0x28, + 0x29,0x28,0xA7,0xFF,0x41, 3, 1,0xFF, 0xE, 0xD, 9,0xA8, 9, 0xA, + 0xD, 0xE,0x2D,0x2C,0x6B,0x2A, 9, 7, 5, 3, 2, 1,0x40,0x21, + 2, 3, 4, 5, 7, 0xA, 0xC,0x4D, 0xC, 0xB,0x2A,0x89,0x2A, 0xC, + 0xD, 0xE,0x4F, 0xE,0x2D,0x4C,0x4B, 0xC, 0xD, 0xF,0x3A,0x4D,0xFF,0x41, + 2, 3,0xFF,0x45, 7, 8,0x49,0x28,0x67, 8, 0xC, 0xE,0x2F, 0xE, + 0xD, 0xA,0x68, 9, 0xB, 0xD, 0xF,0x2E, 0xD, 0xC,0x2B,0x6A,0x29, 8, + 6, 4, 2,0x21,0x20,0x21, 2, 3, 4, 5, 7, 0xA, 0xC, 0xD, + 0x2E, 0xC, 0xB,0x2A,0x29,0x48,0x29, 0xA, 0xC, 0xD, 0xE,0x2F, 0xE,0x2D, + 0x2C,0x6B, 0xC, 0xD, 0xE, 0xF,0x3C,0x6D, 0xC, 0xB, 0xA,0x69,0x68, 9, + 0xA, 0xC, 0xE,0x4F, 0xE, 0xD, 0xB, 9,0x28, 9, 0xB, 0xD, 0xE,0x2F, + 0xE, 0xC, 0xB,0x2A,0x89,0x28, 6, 5, 3, 2,0x21, 0,0x21,0x22, + 4, 5, 7, 0xA, 0xC, 0xD,0x2E, 0xD, 0xC, 0xB, 0xA, 9,0xA8, 9, + 0xA, 0xC, 0xD,0x4E, 0xD,0x2C,0x8B,0x2C, 0xD, 0xE, 0xF,0x3F,0x2C,0x2B, + 0xA,0x29,0xA8, 9, 0xA, 0xB,0x2D,0x2E,0x2D, 0xB, 0xA,0x48, 9, 0xB, + 0xD,0x2E, 0xD, 0xC, 0xB, 9,0x68,0x67,0x26, 4, 3, 1,0x80,0x21, + 2, 4, 6, 8, 0xB, 0xC, 0xD, 0xE, 0xD, 0xC, 0xA, 9, 8,0x27, + 0x66, 7, 8, 0xA, 0xC,0x6D, 0xC, 0xB,0xAA, 0xB,0x2C,0x2D,0x41,0x2B, + 0xA,0x29,0x88,0x29, 0xA, 0xB, 0xC,0x6D,0x2C, 0xB,0x69, 0xB, 0xC, 0xD, + 0xE,0x2D, 0xC, 0xA, 9, 8,0xE7, 6, 5, 3, 2, 1,0x60,0x21, + 2, 4, 6, 8, 0xB, 0xC,0x4E, 0xD, 0xB, 0xA, 9, 8, 7,0x86, + 7, 9, 0xB, 0xC,0x4D, 0xC, 0xB,0x2A,0x49,0x2A, 0xB,0x4C, 0xD,0x43, + 0xA,0x49,0x48,0x29,0x2A, 0xB,0x4C, 0xD,0x4C, 0xB, 0xA,0x49, 0xA, 0xC, + 0x6D, 0xC, 0xB, 9, 8, 7,0x46,0x87, 6, 5, 4, 3, 2,0x21, + 0,0x21, 2, 3, 4, 6, 8, 0xA, 0xC,0x8D, 0xB, 0xA, 8, 7, + 0x26,0x25, 6, 7, 8, 0xB, 0xC,0x6D, 0xB,0x2A,0x69,0x2A,0x2B,0x4C, + 0x46, 8,0x67,0x28,0x29,0xEA, 0xA,0x29, 8,0x29,0xCA, 9, 7, 6, + 0x85, 6,0x27, 8, 7, 6, 4, 3, 2, 1,0x60, 1, 2, 3, + 5, 7, 9,0xEA, 9, 8, 7,0x65, 6, 8,0xEA, 9,0x88, 9, + 0xAA,0x49, 6,0xE7,0xE7,0xE7,0x87, 5,0x24,0x23, 4, 5,0xA7, 6, + 4, 2,0x21,0x60, 1, 2, 4, 6,0xE7,0xA7, 6,0xE7,0xE7,0xE7, + 7,0x4B,0xE5,0xE5,0xE5,0xA5, 4,0x23, 4,0xE5,0x45, 3, 2, 1, + 0x40, 1, 2, 4,0xE5,0xE5,0xE5,0xE5,0xE5,0x25,0x4B,0xE5,0xE5,0xE5, + 0xA5, 4,0x23, 4,0xE5,0x45, 3, 2, 1,0x40, 1, 2, 4,0xE5, + 0xE5,0xE5,0xE5,0xE5,0x25,0x4B,0xE5,0xE5,0xE5,0xE5,0xE5,0xE5,0xE5,0xE5, + 0xE5,0xE5,0xE5,0xE5 +}; + +s32 D_8002C50C = 0; + +#ifdef NONMATCHING +void insert_imageDL(void) { + +} +#else +GLOBAL_ASM( +.text +glabel insert_imageDL +/* 050C00 7F01C0D0 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 050C04 7F01C0D4 AFB00018 */ sw $s0, 0x18($sp) +/* 050C08 7F01C0D8 AFBF001C */ sw $ra, 0x1c($sp) +/* 050C0C 7F01C0DC 3C0EBA00 */ lui $t6, (0xBA001402 >> 16) # lui $t6, 0xba00 +/* 050C10 7F01C0E0 35CE1402 */ ori $t6, (0xBA001402 & 0xFFFF) # ori $t6, $t6, 0x1402 +/* 050C14 7F01C0E4 3C0F0030 */ lui $t7, 0x30 +/* 050C18 7F01C0E8 AC8F0004 */ sw $t7, 4($a0) +/* 050C1C 7F01C0EC AC8E0000 */ sw $t6, ($a0) +/* 050C20 7F01C0F0 24900008 */ addiu $s0, $a0, 8 +/* 050C24 7F01C0F4 AFB00030 */ sw $s0, 0x30($sp) +/* 050C28 7F01C0F8 0C001107 */ jal get_video2_settings_txtClipW +/* 050C2C 7F01C0FC 26100008 */ addiu $s0, $s0, 8 +/* 050C30 7F01C100 2458FFFF */ addiu $t8, $v0, -1 +/* 050C34 7F01C104 8FA90030 */ lw $t1, 0x30($sp) +/* 050C38 7F01C108 33190FFF */ andi $t9, $t8, 0xfff +/* 050C3C 7F01C10C 3C01FF10 */ lui $at, 0xff10 +/* 050C40 7F01C110 03214025 */ or $t0, $t9, $at +/* 050C44 7F01C114 0C000F07 */ jal get_video_settings2_frameb +/* 050C48 7F01C118 AD280000 */ sw $t0, ($t1) +/* 050C4C 7F01C11C 0C003A2C */ jal osVirtualToPhysical +/* 050C50 7F01C120 00402025 */ move $a0, $v0 +/* 050C54 7F01C124 8FAA0030 */ lw $t2, 0x30($sp) +/* 050C58 7F01C128 02001825 */ move $v1, $s0 +/* 050C5C 7F01C12C 3C0C0001 */ lui $t4, (0x00010001 >> 16) # lui $t4, 1 +/* 050C60 7F01C130 AD420004 */ sw $v0, 4($t2) +/* 050C64 7F01C134 358C0001 */ ori $t4, (0x00010001 & 0xFFFF) # ori $t4, $t4, 1 +/* 050C68 7F01C138 3C0BF700 */ lui $t3, 0xf700 +/* 050C6C 7F01C13C AC6B0000 */ sw $t3, ($v1) +/* 050C70 7F01C140 AC6C0004 */ sw $t4, 4($v1) +/* 050C74 7F01C144 26100008 */ addiu $s0, $s0, 8 +/* 050C78 7F01C148 AFB00028 */ sw $s0, 0x28($sp) +/* 050C7C 7F01C14C 0C001107 */ jal get_video2_settings_txtClipW +/* 050C80 7F01C150 26100008 */ addiu $s0, $s0, 8 +/* 050C84 7F01C154 0C00110B */ jal get_video2_settings_txtClipH +/* 050C88 7F01C158 A7A20022 */ sh $v0, 0x22($sp) +/* 050C8C 7F01C15C 87B90022 */ lh $t9, 0x22($sp) +/* 050C90 7F01C160 244DFFFF */ addiu $t5, $v0, -1 +/* 050C94 7F01C164 8FA30028 */ lw $v1, 0x28($sp) +/* 050C98 7F01C168 31AE03FF */ andi $t6, $t5, 0x3ff +/* 050C9C 7F01C16C 2728FFFF */ addiu $t0, $t9, -1 +/* 050CA0 7F01C170 310903FF */ andi $t1, $t0, 0x3ff +/* 050CA4 7F01C174 000E7880 */ sll $t7, $t6, 2 +/* 050CA8 7F01C178 3C01F600 */ lui $at, 0xf600 +/* 050CAC 7F01C17C 01E1C025 */ or $t8, $t7, $at +/* 050CB0 7F01C180 00095380 */ sll $t2, $t1, 0xe +/* 050CB4 7F01C184 030A5825 */ or $t3, $t8, $t2 +/* 050CB8 7F01C188 AC6B0000 */ sw $t3, ($v1) +/* 050CBC 7F01C18C AC600004 */ sw $zero, 4($v1) +/* 050CC0 7F01C190 8FBF001C */ lw $ra, 0x1c($sp) +/* 050CC4 7F01C194 02001025 */ move $v0, $s0 +/* 050CC8 7F01C198 8FB00018 */ lw $s0, 0x18($sp) +/* 050CCC 7F01C19C 03E00008 */ jr $ra +/* 050CD0 7F01C1A0 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01C1A4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01C1A4 +/* 050CD4 7F01C1A4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 050CD8 7F01C1A8 3C0E0103 */ lui $t6, (0x01030040 >> 16) # lui $t6, 0x103 +/* 050CDC 7F01C1AC AFBF0014 */ sw $ra, 0x14($sp) +/* 050CE0 7F01C1B0 35CE0040 */ ori $t6, (0x01030040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 050CE4 7F01C1B4 AC8E0000 */ sw $t6, ($a0) +/* 050CE8 7F01C1B8 00801825 */ move $v1, $a0 +/* 050CEC 7F01C1BC 24850008 */ addiu $a1, $a0, 8 +/* 050CF0 7F01C1C0 3C048007 */ lui $a0, %hi(matrix_buffer_gunbarrel_0) +/* 050CF4 7F01C1C4 8C84955C */ lw $a0, %lo(matrix_buffer_gunbarrel_0)($a0) +/* 050CF8 7F01C1C8 AFA50020 */ sw $a1, 0x20($sp) +/* 050CFC 7F01C1CC 0C003A2C */ jal osVirtualToPhysical +/* 050D00 7F01C1D0 AFA3001C */ sw $v1, 0x1c($sp) +/* 050D04 7F01C1D4 8FA3001C */ lw $v1, 0x1c($sp) +/* 050D08 7F01C1D8 8FA80020 */ lw $t0, 0x20($sp) +/* 050D0C 7F01C1DC 3C0F0102 */ lui $t7, (0x01020040 >> 16) # lui $t7, 0x102 +/* 050D10 7F01C1E0 35EF0040 */ ori $t7, (0x01020040 & 0xFFFF) # ori $t7, $t7, 0x40 +/* 050D14 7F01C1E4 AC620004 */ sw $v0, 4($v1) +/* 050D18 7F01C1E8 3C188003 */ lui $t8, %hi(D_8002A7D0) +/* 050D1C 7F01C1EC AD0F0000 */ sw $t7, ($t0) +/* 050D20 7F01C1F0 8F18A7D0 */ lw $t8, %lo(D_8002A7D0)($t8) +/* 050D24 7F01C1F4 3C098007 */ lui $t1, %hi(matrix_buffer_rarelogo_2) +/* 050D28 7F01C1F8 8D299564 */ lw $t1, %lo(matrix_buffer_rarelogo_2)($t1) +/* 050D2C 7F01C1FC 25050008 */ addiu $a1, $t0, 8 +/* 050D30 7F01C200 0018C980 */ sll $t9, $t8, 6 +/* 050D34 7F01C204 AFA50020 */ sw $a1, 0x20($sp) +/* 050D38 7F01C208 AFA80018 */ sw $t0, 0x18($sp) +/* 050D3C 7F01C20C 0C003A2C */ jal osVirtualToPhysical +/* 050D40 7F01C210 03292021 */ addu $a0, $t9, $t1 +/* 050D44 7F01C214 8FA30020 */ lw $v1, 0x20($sp) +/* 050D48 7F01C218 8FA80018 */ lw $t0, 0x18($sp) +/* 050D4C 7F01C21C 3C0AE700 */ lui $t2, 0xe700 +/* 050D50 7F01C220 24640008 */ addiu $a0, $v1, 8 +/* 050D54 7F01C224 AD020004 */ sw $v0, 4($t0) +/* 050D58 7F01C228 3C0BBA00 */ lui $t3, (0xBA001402 >> 16) # lui $t3, 0xba00 gDPSetCycleType(2cycle) +/* 050D5C 7F01C22C AC600004 */ sw $zero, 4($v1) +/* 050D60 7F01C230 AC6A0000 */ sw $t2, ($v1) +/* 050D64 7F01C234 356B1402 */ ori $t3, (0xBA001402 & 0xFFFF) # ori $t3, $t3, 0x1402 +/* 050D68 7F01C238 24860008 */ addiu $a2, $a0, 8 +/* 050D6C 7F01C23C AC8B0000 */ sw $t3, ($a0) +/* 050D70 7F01C240 AC800004 */ sw $zero, 4($a0) +/* 050D74 7F01C244 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 gDPSetRenderMode(AAOpaSurf) +/* 050D78 7F01C248 3C0D0055 */ lui $t5, (0x00552048 >> 16) # lui $t5, 0x55 +/* 050D7C 7F01C24C 35AD2048 */ ori $t5, (0x00552048 & 0xFFFF) # ori $t5, $t5, 0x2048 +/* 050D80 7F01C250 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d +/* 050D84 7F01C254 ACCC0000 */ sw $t4, ($a2) +/* 050D88 7F01C258 ACCD0004 */ sw $t5, 4($a2) +/* 050D8C 7F01C25C 24C70008 */ addiu $a3, $a2, 8 +/* 050D90 7F01C260 3C0EB700 */ lui $t6, 0xb700 +/* 050D94 7F01C264 240F0204 */ li $t7, 516 +/* 050D98 7F01C268 ACEF0004 */ sw $t7, 4($a3) +/* 050D9C 7F01C26C ACEE0000 */ sw $t6, ($a3) +/* 050DA0 7F01C270 8FBF0014 */ lw $ra, 0x14($sp) +/* 050DA4 7F01C274 24E20008 */ addiu $v0, $a3, 8 +/* 050DA8 7F01C278 27BD0020 */ addiu $sp, $sp, 0x20 +/* 050DAC 7F01C27C 03E00008 */ jr $ra +/* 050DB0 7F01C280 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void die_blood_image_routine(void) { + +} +#else +GLOBAL_ASM( +.text +glabel die_blood_image_routine +/* 050DB4 7F01C284 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 050DB8 7F01C288 AFBF0024 */ sw $ra, 0x24($sp) +/* 050DBC 7F01C28C AFB10020 */ sw $s1, 0x20($sp) +/* 050DC0 7F01C290 14800008 */ bnez $a0, .L7F01C2B4 +/* 050DC4 7F01C294 AFB0001C */ sw $s0, 0x1c($sp) +/* 050DC8 7F01C298 3C118008 */ lui $s1, %hi(pPlayer) +/* 050DCC 7F01C29C 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 050DD0 7F01C2A0 8E2F0000 */ lw $t7, ($s1) +/* 050DD4 7F01C2A4 3C0E8003 */ lui $t6, %hi(die_blood_image_1) +/* 050DD8 7F01C2A8 25CEBB30 */ addiu $t6, %lo(die_blood_image_1) # addiu $t6, $t6, -0x44d0 +/* 050DDC 7F01C2AC 1000000D */ b .L7F01C2E4 +/* 050DE0 7F01C2B0 ADEE11A8 */ sw $t6, 0x11a8($t7) +.L7F01C2B4: +/* 050DE4 7F01C2B4 24010001 */ li $at, 1 +/* 050DE8 7F01C2B8 1481000A */ bne $a0, $at, .L7F01C2E4 +/* 050DEC 7F01C2BC 3C118008 */ lui $s1, %hi(pPlayer) +/* 050DF0 7F01C2C0 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 050DF4 7F01C2C4 8E300000 */ lw $s0, ($s1) +/* 050DF8 7F01C2C8 3C188003 */ lui $t8, %hi(D_8002C50C) +/* 050DFC 7F01C2CC 2718C50C */ addiu $t8, %lo(D_8002C50C) # addiu $t8, $t8, -0x3af4 +/* 050E00 7F01C2D0 8E0211AC */ lw $v0, 0x11ac($s0) +/* 050E04 7F01C2D4 0058082B */ sltu $at, $v0, $t8 +/* 050E08 7F01C2D8 10200002 */ beqz $at, .L7F01C2E4 +/* 050E0C 7F01C2DC 00000000 */ nop +/* 050E10 7F01C2E0 AE0211A8 */ sw $v0, 0x11a8($s0) +.L7F01C2E4: +/* 050E14 7F01C2E4 3C118008 */ lui $s1, %hi(pPlayer) +/* 050E18 7F01C2E8 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 050E1C 7F01C2EC 8E300000 */ lw $s0, ($s1) +/* 050E20 7F01C2F0 24080001 */ li $t0, 1 +/* 050E24 7F01C2F4 24041E00 */ li $a0, 7680 +/* 050E28 7F01C2F8 8E1911B8 */ lw $t9, 0x11b8($s0) +/* 050E2C 7F01C2FC 01194823 */ subu $t1, $t0, $t9 +/* 050E30 7F01C300 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 050E34 7F01C304 AE0911B8 */ sw $t1, 0x11b8($s0) +/* 050E38 7F01C308 8E300000 */ lw $s0, ($s1) +/* 050E3C 7F01C30C 24041E00 */ li $a0, 7680 +/* 050E40 7F01C310 8E0A11B8 */ lw $t2, 0x11b8($s0) +/* 050E44 7F01C314 000A5880 */ sll $t3, $t2, 2 +/* 050E48 7F01C318 020B6021 */ addu $t4, $s0, $t3 +/* 050E4C 7F01C31C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 050E50 7F01C320 AD8211B0 */ sw $v0, 0x11b0($t4) +/* 050E54 7F01C324 8E2D0000 */ lw $t5, ($s1) +/* 050E58 7F01C328 AFA20030 */ sw $v0, 0x30($sp) +/* 050E5C 7F01C32C 27AE0037 */ addiu $t6, $sp, 0x37 +/* 050E60 7F01C330 8DA411A8 */ lw $a0, 0x11a8($t5) +/* 050E64 7F01C334 AFAE0010 */ sw $t6, 0x10($sp) +/* 050E68 7F01C338 24050050 */ li $a1, 80 +/* 050E6C 7F01C33C 24060060 */ li $a2, 96 +/* 050E70 7F01C340 0FC072B8 */ jal decrypt_bleeding_animation_data +/* 050E74 7F01C344 00403825 */ move $a3, $v0 +/* 050E78 7F01C348 8E2F0000 */ lw $t7, ($s1) +/* 050E7C 7F01C34C 24050050 */ li $a1, 80 +/* 050E80 7F01C350 24060060 */ li $a2, 96 +/* 050E84 7F01C354 ADE211AC */ sw $v0, 0x11ac($t7) +/* 050E88 7F01C358 8E300000 */ lw $s0, ($s1) +/* 050E8C 7F01C35C 8FA40030 */ lw $a0, 0x30($sp) +/* 050E90 7F01C360 8E1811B8 */ lw $t8, 0x11b8($s0) +/* 050E94 7F01C364 00184080 */ sll $t0, $t8, 2 +/* 050E98 7F01C368 0208C821 */ addu $t9, $s0, $t0 +/* 050E9C 7F01C36C 0FC0745B */ jal sub_GAME_7F01D16C +/* 050EA0 7F01C370 8F2711B0 */ lw $a3, 0x11b0($t9) +/* 050EA4 7F01C374 8E300000 */ lw $s0, ($s1) +/* 050EA8 7F01C378 24050050 */ li $a1, 80 +/* 050EAC 7F01C37C 8E0911B8 */ lw $t1, 0x11b8($s0) +/* 050EB0 7F01C380 00095080 */ sll $t2, $t1, 2 +/* 050EB4 7F01C384 020A5821 */ addu $t3, $s0, $t2 +/* 050EB8 7F01C388 8D6411B0 */ lw $a0, 0x11b0($t3) +/* 050EBC 7F01C38C 0FC0740B */ jal sub_GAME_7F01D02C +/* 050EC0 7F01C390 00803025 */ move $a2, $a0 +/* 050EC4 7F01C394 8E300000 */ lw $s0, ($s1) +/* 050EC8 7F01C398 24050050 */ li $a1, 80 +/* 050ECC 7F01C39C 8E0C11B8 */ lw $t4, 0x11b8($s0) +/* 050ED0 7F01C3A0 000C6880 */ sll $t5, $t4, 2 +/* 050ED4 7F01C3A4 020D7021 */ addu $t6, $s0, $t5 +/* 050ED8 7F01C3A8 8DC411B0 */ lw $a0, 0x11b0($t6) +/* 050EDC 7F01C3AC 0FC073BB */ jal sub_GAME_7F01CEEC +/* 050EE0 7F01C3B0 00803025 */ move $a2, $a0 +/* 050EE4 7F01C3B4 8E300000 */ lw $s0, ($s1) +/* 050EE8 7F01C3B8 24051E00 */ li $a1, 7680 +/* 050EEC 7F01C3BC 8E0F11B8 */ lw $t7, 0x11b8($s0) +/* 050EF0 7F01C3C0 000FC080 */ sll $t8, $t7, 2 +/* 050EF4 7F01C3C4 02184021 */ addu $t0, $s0, $t8 +/* 050EF8 7F01C3C8 8D0411B0 */ lw $a0, 0x11b0($t0) +/* 050EFC 7F01C3CC 0FC07325 */ jal sub_GAME_7F01CC94 +/* 050F00 7F01C3D0 00803025 */ move $a2, $a0 +/* 050F04 7F01C3D4 8E390000 */ lw $t9, ($s1) +/* 050F08 7F01C3D8 8FBF0024 */ lw $ra, 0x24($sp) +/* 050F0C 7F01C3DC 3C0A8003 */ lui $t2, %hi(D_8002C50C) +/* 050F10 7F01C3E0 8F2911AC */ lw $t1, 0x11ac($t9) +/* 050F14 7F01C3E4 254AC50C */ addiu $t2, %lo(D_8002C50C) # addiu $t2, $t2, -0x3af4 +/* 050F18 7F01C3E8 8FB10020 */ lw $s1, 0x20($sp) +/* 050F1C 7F01C3EC 8FB0001C */ lw $s0, 0x1c($sp) +/* 050F20 7F01C3F0 012A102B */ sltu $v0, $t1, $t2 +/* 050F24 7F01C3F4 38420001 */ xori $v0, $v0, 1 +/* 050F28 7F01C3F8 03E00008 */ jr $ra +/* 050F2C 7F01C3FC 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01C400(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01C400 +/* 050F30 7F01C400 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 050F34 7F01C404 AFBF001C */ sw $ra, 0x1c($sp) +/* 050F38 7F01C408 AFB00018 */ sw $s0, 0x18($sp) +/* 050F3C 7F01C40C 3C0EBA00 */ lui $t6, (0xBA000E02 >> 16) # lui $t6, 0xba00 #G_SETOTHERMODE_H +/* 050F40 7F01C410 35CE0E02 */ ori $t6, (0xBA000E02 & 0xFFFF) # ori $t6, $t6, 0xe02 +/* 050F44 7F01C414 AC8E0000 */ sw $t6, ($a0) +/* 050F48 7F01C418 AC800004 */ sw $zero, 4($a0) +/* 050F4C 7F01C41C 24830008 */ addiu $v1, $a0, 8 +/* 050F50 7F01C420 3C0FBA00 */ lui $t7, (0xBA000C02 >> 16) # lui $t7, 0xba00 +/* 050F54 7F01C424 35EF0C02 */ ori $t7, (0xBA000C02 & 0xFFFF) # ori $t7, $t7, 0xc02 +/* 050F58 7F01C428 24182000 */ li $t8, 8192 +/* 050F5C 7F01C42C AC780004 */ sw $t8, 4($v1) +/* 050F60 7F01C430 AC6F0000 */ sw $t7, ($v1) +/* 050F64 7F01C434 0FC07069 */ jal sub_GAME_7F01C1A4 +/* 050F68 7F01C438 24640008 */ addiu $a0, $v1, 8 +/* 050F6C 7F01C43C 3C19BB00 */ lui $t9, (0xBB000001 >> 16) # lui $t9, 0xbb00 +/* 050F70 7F01C440 37390001 */ ori $t9, (0xBB000001 & 0xFFFF) # ori $t9, $t9, 1 +/* 050F74 7F01C444 AC590000 */ sw $t9, ($v0) +/* 050F78 7F01C448 3C088000 */ lui $t0, (0x80008000 >> 16) +/* 050F7C 7F01C44C 3C09B900 */ lui $t1, (0xB900031D >> 16) # lui $t1, 0xb900 #gDPSetRenderMode(OpaSurf) +/* 050F80 7F01C450 3C0A0050 */ lui $t2, (0x00504340 >> 16) # lui $t2, 0x50 +/* 050F84 7F01C454 3C0BFC11 */ lui $t3, (0xFC119623 >> 16) # lui $t3, 0xfc11 +/* 050F88 7F01C458 3C0CFF2F */ lui $t4, (0xFF2FFFFF >> 16) # lui $t4, 0xff2f +/* 050F8C 7F01C45C 3C0DBA00 */ lui $t5, (0xBA000602 >> 16) # lui $t5, 0xba00 +/* 050F90 7F01C460 3C0F9600 */ lui $t7, (0x960000B4 >> 16) # lui $t7, 0x9600 +/* 050F94 7F01C464 3C18BA00 */ lui $t8, (0xBA001301 >> 16) # lui $t8, 0xba00 +/* 050F98 7F01C468 35088000 */ ori $t0, (0x80008000 & 0xFFFF) # ori $t0, $t0, 0x8000 +/* 050F9C 7F01C46C 354A4340 */ ori $t2, (0x00504340 & 0xFFFF) # ori $t2, $t2, 0x4340 +/* 050FA0 7F01C470 3529031D */ ori $t1, (0xB900031D & 0xFFFF) # ori $t1, $t1, 0x31d +/* 050FA4 7F01C474 358CFFFF */ ori $t4, (0xFF2FFFFF & 0xFFFF) # ori $t4, $t4, 0xffff +/* 050FA8 7F01C478 356B9623 */ ori $t3, (0xFC119623 & 0xFFFF) # ori $t3, $t3, 0x9623 #setcombine() +/* 050FAC 7F01C47C 35AD0602 */ ori $t5, (0xBA000602 & 0xFFFF) # ori $t5, $t5, 0x602 +/* 050FB0 7F01C480 35EF00B4 */ ori $t7, (0x960000B4 & 0xFFFF) # ori $t7, $t7, 0xb4 +/* 050FB4 7F01C484 3C0EFA00 */ lui $t6, 0xfa00 +/* 050FB8 7F01C488 37181301 */ ori $t8, (0xBA001301 & 0xFFFF) # ori $t8, $t8, 0x1301 +/* 050FBC 7F01C48C 3C19FD90 */ lui $t9, 0xfd90 +/* 050FC0 7F01C490 AC480004 */ sw $t0, 4($v0) +/* 050FC4 7F01C494 AC490008 */ sw $t1, 8($v0) +/* 050FC8 7F01C498 AC4A000C */ sw $t2, 0xc($v0) +/* 050FCC 7F01C49C AC4B0010 */ sw $t3, 0x10($v0) +/* 050FD0 7F01C4A0 AC4C0014 */ sw $t4, 0x14($v0) +/* 050FD4 7F01C4A4 AC4D0018 */ sw $t5, 0x18($v0) +/* 050FD8 7F01C4A8 AC40001C */ sw $zero, 0x1c($v0) +/* 050FDC 7F01C4AC AC4E0020 */ sw $t6, 0x20($v0) +/* 050FE0 7F01C4B0 AC4F0024 */ sw $t7, 0x24($v0) +/* 050FE4 7F01C4B4 AC580028 */ sw $t8, 0x28($v0) +/* 050FE8 7F01C4B8 AC40002C */ sw $zero, 0x2c($v0) +/* 050FEC 7F01C4BC AC590030 */ sw $t9, 0x30($v0) +/* 050FF0 7F01C4C0 3C038008 */ lui $v1, %hi(pPlayer) +/* 050FF4 7F01C4C4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 050FF8 7F01C4C8 3C018000 */ lui $at, 0x8000 +/* 050FFC 7F01C4CC 3C190777 */ lui $t9, (0x0777F156 >> 16) # lui $t9, 0x777 +/* 051000 7F01C4D0 8C6811B8 */ lw $t0, 0x11b8($v1) +/* 051004 7F01C4D4 3C0E0708 */ lui $t6, (0x07080200 >> 16) # lui $t6, 0x708 +/* 051008 7F01C4D8 3C0DF590 */ lui $t5, 0xf590 +/* 05100C 7F01C4DC 00084880 */ sll $t1, $t0, 2 +/* 051010 7F01C4E0 00695021 */ addu $t2, $v1, $t1 +/* 051014 7F01C4E4 8D4B11B0 */ lw $t3, 0x11b0($t2) +/* 051018 7F01C4E8 3C0A0008 */ lui $t2, (0x00080200 >> 16) # lui $t2, 8 +/* 05101C 7F01C4EC 3C09F580 */ lui $t1, (0xF5800C00 >> 16) # lui $t1, 0xf580 +/* 051020 7F01C4F0 01616021 */ addu $t4, $t3, $at +/* 051024 7F01C4F4 AC4C0034 */ sw $t4, 0x34($v0) +/* 051028 7F01C4F8 3C0C0017 */ lui $t4, (0x0017C13C >> 16) # lui $t4, 0x17 +/* 05102C 7F01C4FC 358CC13C */ ori $t4, (0x0017C13C & 0xFFFF) # ori $t4, $t4, 0xc13c +/* 051030 7F01C500 3C0BF200 */ lui $t3, 0xf200 +/* 051034 7F01C504 35290C00 */ ori $t1, (0xF5800C00 & 0xFFFF) # ori $t1, $t1, 0xc00 +/* 051038 7F01C508 354A0200 */ ori $t2, (0x00080200 & 0xFFFF) # ori $t2, $t2, 0x200 +/* 05103C 7F01C50C AC4D0038 */ sw $t5, 0x38($v0) +/* 051040 7F01C510 3C08E700 */ lui $t0, 0xe700 +/* 051044 7F01C514 35CE0200 */ ori $t6, (0x07080200 & 0xFFFF) # ori $t6, $t6, 0x200 +/* 051048 7F01C518 3739F156 */ ori $t9, (0x0777F156 & 0xFFFF) # ori $t9, $t9, 0xf156 +/* 05104C 7F01C51C 3C18F300 */ lui $t8, 0xf300 +/* 051050 7F01C520 3C0FE600 */ lui $t7, 0xe600 +/* 051054 7F01C524 AC4F0040 */ sw $t7, 0x40($v0) +/* 051058 7F01C528 AC580048 */ sw $t8, 0x48($v0) +/* 05105C 7F01C52C AC59004C */ sw $t9, 0x4c($v0) +/* 051060 7F01C530 AC4E003C */ sw $t6, 0x3c($v0) +/* 051064 7F01C534 AC480050 */ sw $t0, 0x50($v0) +/* 051068 7F01C538 AC4A005C */ sw $t2, 0x5c($v0) +/* 05106C 7F01C53C AC490058 */ sw $t1, 0x58($v0) +/* 051070 7F01C540 AC4B0060 */ sw $t3, 0x60($v0) +/* 051074 7F01C544 AC4C0064 */ sw $t4, 0x64($v0) +/* 051078 7F01C548 AC400054 */ sw $zero, 0x54($v0) +/* 05107C 7F01C54C AC400044 */ sw $zero, 0x44($v0) +/* 051080 7F01C550 244D0068 */ addiu $t5, $v0, 0x68 +/* 051084 7F01C554 AFAD0030 */ sw $t5, 0x30($sp) +/* 051088 7F01C558 0C001107 */ jal get_video2_settings_txtClipW +/* 05108C 7F01C55C 24500070 */ addiu $s0, $v0, 0x70 +/* 051090 7F01C560 0C00110B */ jal get_video2_settings_txtClipH +/* 051094 7F01C564 A7A20026 */ sh $v0, 0x26($sp) +/* 051098 7F01C568 87A80026 */ lh $t0, 0x26($sp) +/* 05109C 7F01C56C 00027080 */ sll $t6, $v0, 2 +/* 0510A0 7F01C570 8FA50030 */ lw $a1, 0x30($sp) +/* 0510A4 7F01C574 00084880 */ sll $t1, $t0, 2 +/* 0510A8 7F01C578 252AFFFF */ addiu $t2, $t1, -1 +/* 0510AC 7F01C57C 25CFFFFF */ addiu $t7, $t6, -1 +/* 0510B0 7F01C580 31F80FFF */ andi $t8, $t7, 0xfff +/* 0510B4 7F01C584 314B0FFF */ andi $t3, $t2, 0xfff +/* 0510B8 7F01C588 3C01E400 */ lui $at, 0xe400 +/* 0510BC 7F01C58C 0301C825 */ or $t9, $t8, $at +/* 0510C0 7F01C590 000B6300 */ sll $t4, $t3, 0xc +/* 0510C4 7F01C594 032C6825 */ or $t5, $t9, $t4 +/* 0510C8 7F01C598 02001825 */ move $v1, $s0 +/* 0510CC 7F01C59C ACAD0000 */ sw $t5, ($a1) +/* 0510D0 7F01C5A0 ACA00004 */ sw $zero, 4($a1) +/* 0510D4 7F01C5A4 26100008 */ addiu $s0, $s0, 8 +/* 0510D8 7F01C5A8 3C0EB400 */ lui $t6, 0xb400 +/* 0510DC 7F01C5AC AC6E0000 */ sw $t6, ($v1) +/* 0510E0 7F01C5B0 02002025 */ move $a0, $s0 +/* 0510E4 7F01C5B4 AC600004 */ sw $zero, 4($v1) +/* 0510E8 7F01C5B8 3C0FB300 */ lui $t7, 0xb300 +/* 0510EC 7F01C5BC AC8F0000 */ sw $t7, ($a0) +/* 0510F0 7F01C5C0 AFA40028 */ sw $a0, 0x28($sp) +/* 0510F4 7F01C5C4 0C001107 */ jal get_video2_settings_txtClipW +/* 0510F8 7F01C5C8 26100008 */ addiu $s0, $s0, 8 +/* 0510FC 7F01C5CC 0C00110B */ jal get_video2_settings_txtClipH +/* 051100 7F01C5D0 A7A20026 */ sh $v0, 0x26($sp) +/* 051104 7F01C5D4 3C180001 */ lui $t8, (0x00014000 >> 16) # lui $t8, 1 +/* 051108 7F01C5D8 37184000 */ ori $t8, (0x00014000 & 0xFFFF) # ori $t8, $t8, 0x4000 +/* 05110C 7F01C5DC 0302001A */ div $zero, $t8, $v0 +/* 051110 7F01C5E0 00004012 */ mflo $t0 +/* 051114 7F01C5E4 87AA0026 */ lh $t2, 0x26($sp) +/* 051118 7F01C5E8 3C0B0001 */ lui $t3, (0x00018000 >> 16) # lui $t3, 1 +/* 05111C 7F01C5EC 356B8000 */ ori $t3, (0x00018000 & 0xFFFF) # ori $t3, $t3, 0x8000 +/* 051120 7F01C5F0 016A001A */ div $zero, $t3, $t2 +/* 051124 7F01C5F4 14400002 */ bnez $v0, .L7F01C600 +/* 051128 7F01C5F8 00000000 */ nop +/* 05112C 7F01C5FC 0007000D */ break 7 +.L7F01C600: +/* 051130 7F01C600 2401FFFF */ li $at, -1 +/* 051134 7F01C604 14410004 */ bne $v0, $at, .L7F01C618 +/* 051138 7F01C608 3C018000 */ lui $at, 0x8000 +/* 05113C 7F01C60C 17010002 */ bne $t8, $at, .L7F01C618 +/* 051140 7F01C610 00000000 */ nop +/* 051144 7F01C614 0006000D */ break 6 +.L7F01C618: +/* 051148 7F01C618 0000C812 */ mflo $t9 +/* 05114C 7F01C61C 8FAF0028 */ lw $t7, 0x28($sp) +/* 051150 7F01C620 332CFFFF */ andi $t4, $t9, 0xffff +/* 051154 7F01C624 000C6C00 */ sll $t5, $t4, 0x10 +/* 051158 7F01C628 3109FFFF */ andi $t1, $t0, 0xffff +/* 05115C 7F01C62C 012D7025 */ or $t6, $t1, $t5 +/* 051160 7F01C630 ADEE0004 */ sw $t6, 4($t7) +/* 051164 7F01C634 8FBF001C */ lw $ra, 0x1c($sp) +/* 051168 7F01C638 02001025 */ move $v0, $s0 +/* 05116C 7F01C63C 8FB00018 */ lw $s0, 0x18($sp) +/* 051170 7F01C640 15400002 */ bnez $t2, .L7F01C64C +/* 051174 7F01C644 00000000 */ nop +/* 051178 7F01C648 0007000D */ break 7 +.L7F01C64C: +/* 05117C 7F01C64C 2401FFFF */ li $at, -1 +/* 051180 7F01C650 15410004 */ bne $t2, $at, .L7F01C664 +/* 051184 7F01C654 3C018000 */ lui $at, 0x8000 +/* 051188 7F01C658 15610002 */ bne $t3, $at, .L7F01C664 +/* 05118C 7F01C65C 00000000 */ nop +/* 051190 7F01C660 0006000D */ break 6 +.L7F01C664: +/* 051194 7F01C664 27BD0070 */ addiu $sp, $sp, 0x70 +/* 051198 7F01C668 03E00008 */ jr $ra +/* 05119C 7F01C66C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01C670(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01C670 +/* 0511A0 7F01C670 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 0511A4 7F01C674 AFB00014 */ sw $s0, 0x14($sp) +/* 0511A8 7F01C678 AFBF001C */ sw $ra, 0x1c($sp) +/* 0511AC 7F01C67C AFB10018 */ sw $s1, 0x18($sp) +/* 0511B0 7F01C680 24900008 */ addiu $s0, $a0, 8 +/* 0511B4 7F01C684 3C0EBA00 */ lui $t6, (0xBA000E02 >> 16) # lui $t6, 0xba00 #G_SETOTHERMODE_H() +/* 0511B8 7F01C688 35CE0E02 */ ori $t6, (0xBA000E02 & 0xFFFF) # ori $t6, $t6, 0xe02 +/* 0511BC 7F01C68C 02001825 */ move $v1, $s0 +/* 0511C0 7F01C690 3C0FBA00 */ lui $t7, (0xBA000C02 >> 16) # lui $t7, 0xba00 +/* 0511C4 7F01C694 AC8E0000 */ sw $t6, ($a0) +/* 0511C8 7F01C698 AC800004 */ sw $zero, 4($a0) +/* 0511CC 7F01C69C 35EF0C02 */ ori $t7, (0xBA000C02 & 0xFFFF) # ori $t7, $t7, 0xc02 #G_SETOTHERMODE_H() +/* 0511D0 7F01C6A0 26100008 */ addiu $s0, $s0, 8 +/* 0511D4 7F01C6A4 AC6F0000 */ sw $t7, ($v1) +/* 0511D8 7F01C6A8 24182000 */ li $t8, 8192 +/* 0511DC 7F01C6AC 02002825 */ move $a1, $s0 +/* 0511E0 7F01C6B0 AC780004 */ sw $t8, 4($v1) +/* 0511E4 7F01C6B4 26100008 */ addiu $s0, $s0, 8 +/* 0511E8 7F01C6B8 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 #gDPSetCycleType(2Cycle) +/* 0511EC 7F01C6BC 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 +/* 0511F0 7F01C6C0 02003025 */ move $a2, $s0 +/* 0511F4 7F01C6C4 ACB90000 */ sw $t9, ($a1) +/* 0511F8 7F01C6C8 ACA00004 */ sw $zero, 4($a1) +/* 0511FC 7F01C6CC 26100008 */ addiu $s0, $s0, 8 +/* 051200 7F01C6D0 3C08B700 */ lui $t0, 0xb700 +/* 051204 7F01C6D4 24090204 */ li $t1, 516 +/* 051208 7F01C6D8 ACC90004 */ sw $t1, 4($a2) +/* 05120C 7F01C6DC ACC80000 */ sw $t0, ($a2) +/* 051210 7F01C6E0 02003825 */ move $a3, $s0 +/* 051214 7F01C6E4 26100008 */ addiu $s0, $s0, 8 +/* 051218 7F01C6E8 3C0ABB00 */ lui $t2, (0xBB000001 >> 16) # lui $t2, 0xbb00 +/* 05121C 7F01C6EC 3C0B8000 */ lui $t3, (0x80008000 >> 16) # lui $t3, 0x8000 +/* 051220 7F01C6F0 356B8000 */ ori $t3, (0x80008000 & 0xFFFF) # ori $t3, $t3, 0x8000 +/* 051224 7F01C6F4 354A0001 */ ori $t2, (0xBB000001 & 0xFFFF) # ori $t2, $t2, 1 +/* 051228 7F01C6F8 02001025 */ move $v0, $s0 +/* 05122C 7F01C6FC ACEA0000 */ sw $t2, ($a3) +/* 051230 7F01C700 ACEB0004 */ sw $t3, 4($a3) +/* 051234 7F01C704 26100008 */ addiu $s0, $s0, 8 +/* 051238 7F01C708 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 #gDPSetRenderMode() +/* 05123C 7F01C70C 3C0D0050 */ lui $t5, (0x00504340 >> 16) # lui $t5, 0x50 +/* 051240 7F01C710 35AD4340 */ ori $t5, (0x00504340 & 0xFFFF) # ori $t5, $t5, 0x4340 +/* 051244 7F01C714 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d +/* 051248 7F01C718 02001825 */ move $v1, $s0 +/* 05124C 7F01C71C AC4C0000 */ sw $t4, ($v0) +/* 051250 7F01C720 AC4D0004 */ sw $t5, 4($v0) +/* 051254 7F01C724 3C0FFF2F */ lui $t7, (0xFF2FFFFF >> 16) # lui $t7, 0xff2f +/* 051258 7F01C728 3C0EFC11 */ lui $t6, (0xFC119623 >> 16) # lui $t6, 0xfc11 #Setcombine() +/* 05125C 7F01C72C 35CE9623 */ ori $t6, (0xFC119623 & 0xFFFF) # ori $t6, $t6, 0x9623 +/* 051260 7F01C730 35EFFFFF */ ori $t7, (0xFF2FFFFF & 0xFFFF) # ori $t7, $t7, 0xffff +/* 051264 7F01C734 26100008 */ addiu $s0, $s0, 8 +/* 051268 7F01C738 AC6F0004 */ sw $t7, 4($v1) +/* 05126C 7F01C73C AC6E0000 */ sw $t6, ($v1) +/* 051270 7F01C740 02002025 */ move $a0, $s0 +/* 051274 7F01C744 26100008 */ addiu $s0, $s0, 8 +/* 051278 7F01C748 3C18BA00 */ lui $t8, (0xBA000602 >> 16) # lui $t8, 0xba00 #G_SETOTHERMODE_H(envmapping) +/* 05127C 7F01C74C 37180602 */ ori $t8, (0xBA000602 & 0xFFFF) # ori $t8, $t8, 0x602 +/* 051280 7F01C750 02002825 */ move $a1, $s0 +/* 051284 7F01C754 AC980000 */ sw $t8, ($a0) +/* 051288 7F01C758 AC800004 */ sw $zero, 4($a0) +/* 05128C 7F01C75C 26100008 */ addiu $s0, $s0, 8 +/* 051290 7F01C760 3C089600 */ lui $t0, (0x960000B4 >> 16) # lui $t0, 0x9600 +/* 051294 7F01C764 350800B4 */ ori $t0, (0x960000B4 & 0xFFFF) # ori $t0, $t0, 0xb4 +/* 051298 7F01C768 3C19FA00 */ lui $t9, 0xfa00 +/* 05129C 7F01C76C 02003025 */ move $a2, $s0 +/* 0512A0 7F01C770 ACB90000 */ sw $t9, ($a1) +/* 0512A4 7F01C774 ACA80004 */ sw $t0, 4($a1) +/* 0512A8 7F01C778 3C09BA00 */ lui $t1, (0xBA001301 >> 16) # lui $t1, 0xba00 #G_SETOTHERMODE_H() +/* 0512AC 7F01C77C 35291301 */ ori $t1, (0xBA001301 & 0xFFFF) # ori $t1, $t1, 0x1301 +/* 0512B0 7F01C780 26100008 */ addiu $s0, $s0, 8 +/* 0512B4 7F01C784 ACC90000 */ sw $t1, ($a2) +/* 0512B8 7F01C788 ACC00004 */ sw $zero, 4($a2) +/* 0512BC 7F01C78C 02001025 */ move $v0, $s0 +/* 0512C0 7F01C790 3C0AFD90 */ lui $t2, 0xfd90 +/* 0512C4 7F01C794 AC4A0000 */ sw $t2, ($v0) +/* 0512C8 7F01C798 3C038008 */ lui $v1, %hi(pPlayer) +/* 0512CC 7F01C79C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0512D0 7F01C7A0 3C018000 */ lui $at, 0x8000 +/* 0512D4 7F01C7A4 26100008 */ addiu $s0, $s0, 8 +/* 0512D8 7F01C7A8 8C6B11B8 */ lw $t3, 0x11b8($v1) +/* 0512DC 7F01C7AC 02002025 */ move $a0, $s0 +/* 0512E0 7F01C7B0 26100008 */ addiu $s0, $s0, 8 +/* 0512E4 7F01C7B4 000B6080 */ sll $t4, $t3, 2 +/* 0512E8 7F01C7B8 006C6821 */ addu $t5, $v1, $t4 +/* 0512EC 7F01C7BC 8DAE11B0 */ lw $t6, 0x11b0($t5) +/* 0512F0 7F01C7C0 3C190708 */ lui $t9, (0x07080200 >> 16) # lui $t9, 0x708 +/* 0512F4 7F01C7C4 37390200 */ ori $t9, (0x07080200 & 0xFFFF) # ori $t9, $t9, 0x200 +/* 0512F8 7F01C7C8 01C17821 */ addu $t7, $t6, $at +/* 0512FC 7F01C7CC AC4F0004 */ sw $t7, 4($v0) +/* 051300 7F01C7D0 02002825 */ move $a1, $s0 +/* 051304 7F01C7D4 3C18F590 */ lui $t8, 0xf590 +/* 051308 7F01C7D8 AC980000 */ sw $t8, ($a0) +/* 05130C 7F01C7DC 26100008 */ addiu $s0, $s0, 8 +/* 051310 7F01C7E0 AC990004 */ sw $t9, 4($a0) +/* 051314 7F01C7E4 02003025 */ move $a2, $s0 +/* 051318 7F01C7E8 3C08E600 */ lui $t0, 0xe600 +/* 05131C 7F01C7EC ACA80000 */ sw $t0, ($a1) +/* 051320 7F01C7F0 26100008 */ addiu $s0, $s0, 8 +/* 051324 7F01C7F4 ACA00004 */ sw $zero, 4($a1) +/* 051328 7F01C7F8 3C0A0777 */ lui $t2, (0x0777F156 >> 16) # lui $t2, 0x777 +/* 05132C 7F01C7FC 354AF156 */ ori $t2, (0x0777F156 & 0xFFFF) # ori $t2, $t2, 0xf156 +/* 051330 7F01C800 02003825 */ move $a3, $s0 +/* 051334 7F01C804 3C09F300 */ lui $t1, 0xf300 +/* 051338 7F01C808 ACC90000 */ sw $t1, ($a2) +/* 05133C 7F01C80C 26100008 */ addiu $s0, $s0, 8 +/* 051340 7F01C810 ACCA0004 */ sw $t2, 4($a2) +/* 051344 7F01C814 02001025 */ move $v0, $s0 +/* 051348 7F01C818 3C0BE700 */ lui $t3, 0xe700 +/* 05134C 7F01C81C ACEB0000 */ sw $t3, ($a3) +/* 051350 7F01C820 26100008 */ addiu $s0, $s0, 8 +/* 051354 7F01C824 ACE00004 */ sw $zero, 4($a3) +/* 051358 7F01C828 3C0D0008 */ lui $t5, (0x00080200 >> 16) # lui $t5, 8 +/* 05135C 7F01C82C 3C0CF580 */ lui $t4, (0xF5800C00 >> 16) # lui $t4, 0xf580 #settilesize() +/* 051360 7F01C830 358C0C00 */ ori $t4, (0xF5800C00 & 0xFFFF) # ori $t4, $t4, 0xc00 +/* 051364 7F01C834 35AD0200 */ ori $t5, (0x00080200 & 0xFFFF) # ori $t5, $t5, 0x200 +/* 051368 7F01C838 02001825 */ move $v1, $s0 +/* 05136C 7F01C83C AC4D0004 */ sw $t5, 4($v0) +/* 051370 7F01C840 AC4C0000 */ sw $t4, ($v0) +/* 051374 7F01C844 3C0F0017 */ lui $t7, (0x0017C13C >> 16) # lui $t7, 0x17 +/* 051378 7F01C848 35EFC13C */ ori $t7, (0x0017C13C & 0xFFFF) # ori $t7, $t7, 0xc13c +/* 05137C 7F01C84C 3C0EF200 */ lui $t6, 0xf200 +/* 051380 7F01C850 AC6E0000 */ sw $t6, ($v1) +/* 051384 7F01C854 AC6F0004 */ sw $t7, 4($v1) +/* 051388 7F01C858 26100008 */ addiu $s0, $s0, 8 +/* 05138C 7F01C85C AFB00040 */ sw $s0, 0x40($sp) +/* 051390 7F01C860 0C001127 */ jal get_video2_settings_width +/* 051394 7F01C864 26100008 */ addiu $s0, $s0, 8 +/* 051398 7F01C868 0C001145 */ jal get_video2_settings_ulx +/* 05139C 7F01C86C A7A20026 */ sh $v0, 0x26($sp) +/* 0513A0 7F01C870 0C001149 */ jal get_video2_settings_uly +/* 0513A4 7F01C874 A7A20028 */ sh $v0, 0x28($sp) +/* 0513A8 7F01C878 00028C00 */ sll $s1, $v0, 0x10 +/* 0513AC 7F01C87C 0011C403 */ sra $t8, $s1, 0x10 +/* 0513B0 7F01C880 0C00112B */ jal get_video2_settings_height +/* 0513B4 7F01C884 03008825 */ move $s1, $t8 +/* 0513B8 7F01C888 87B90028 */ lh $t9, 0x28($sp) +/* 0513BC 7F01C88C 87A80026 */ lh $t0, 0x26($sp) +/* 0513C0 7F01C890 00517021 */ addu $t6, $v0, $s1 +/* 0513C4 7F01C894 000E7880 */ sll $t7, $t6, 2 +/* 0513C8 7F01C898 03284821 */ addu $t1, $t9, $t0 +/* 0513CC 7F01C89C 00095080 */ sll $t2, $t1, 2 +/* 0513D0 7F01C8A0 254BFFFF */ addiu $t3, $t2, -1 +/* 0513D4 7F01C8A4 25F8FFFF */ addiu $t8, $t7, -1 +/* 0513D8 7F01C8A8 33190FFF */ andi $t9, $t8, 0xfff +/* 0513DC 7F01C8AC 316C0FFF */ andi $t4, $t3, 0xfff +/* 0513E0 7F01C8B0 3C01E400 */ lui $at, 0xe400 +/* 0513E4 7F01C8B4 8FAA0040 */ lw $t2, 0x40($sp) +/* 0513E8 7F01C8B8 03214025 */ or $t0, $t9, $at +/* 0513EC 7F01C8BC 000C6B00 */ sll $t5, $t4, 0xc +/* 0513F0 7F01C8C0 010D4825 */ or $t1, $t0, $t5 +/* 0513F4 7F01C8C4 0C001145 */ jal get_video2_settings_ulx +/* 0513F8 7F01C8C8 AD490000 */ sw $t1, ($t2) +/* 0513FC 7F01C8CC 00028C00 */ sll $s1, $v0, 0x10 +/* 051400 7F01C8D0 00115C03 */ sra $t3, $s1, 0x10 +/* 051404 7F01C8D4 0C001149 */ jal get_video2_settings_uly +/* 051408 7F01C8D8 01608825 */ move $s1, $t3 +/* 05140C 7F01C8DC 00117880 */ sll $t7, $s1, 2 +/* 051410 7F01C8E0 8FAD0040 */ lw $t5, 0x40($sp) +/* 051414 7F01C8E4 31F80FFF */ andi $t8, $t7, 0xfff +/* 051418 7F01C8E8 00026080 */ sll $t4, $v0, 2 +/* 05141C 7F01C8EC 318E0FFF */ andi $t6, $t4, 0xfff +/* 051420 7F01C8F0 0018CB00 */ sll $t9, $t8, 0xc +/* 051424 7F01C8F4 01D94025 */ or $t0, $t6, $t9 +/* 051428 7F01C8F8 02001825 */ move $v1, $s0 +/* 05142C 7F01C8FC ADA80004 */ sw $t0, 4($t5) +/* 051430 7F01C900 26100008 */ addiu $s0, $s0, 8 +/* 051434 7F01C904 3C09B400 */ lui $t1, 0xb400 +/* 051438 7F01C908 AC690000 */ sw $t1, ($v1) +/* 05143C 7F01C90C 02002025 */ move $a0, $s0 +/* 051440 7F01C910 AC600004 */ sw $zero, 4($v1) +/* 051444 7F01C914 3C0AB300 */ lui $t2, 0xb300 +/* 051448 7F01C918 AC8A0000 */ sw $t2, ($a0) +/* 05144C 7F01C91C AFA40038 */ sw $a0, 0x38($sp) +/* 051450 7F01C920 0C001127 */ jal get_video2_settings_width +/* 051454 7F01C924 26100008 */ addiu $s0, $s0, 8 +/* 051458 7F01C928 00028C00 */ sll $s1, $v0, 0x10 +/* 05145C 7F01C92C 00115C03 */ sra $t3, $s1, 0x10 +/* 051460 7F01C930 0C00112B */ jal get_video2_settings_height +/* 051464 7F01C934 01608825 */ move $s1, $t3 +/* 051468 7F01C938 3C0C0001 */ lui $t4, (0x00014000 >> 16) # lui $t4, 1 +/* 05146C 7F01C93C 358C4000 */ ori $t4, (0x00014000 & 0xFFFF) # ori $t4, $t4, 0x4000 +/* 051470 7F01C940 0182001A */ div $zero, $t4, $v0 +/* 051474 7F01C944 00007812 */ mflo $t7 +/* 051478 7F01C948 3C0E0001 */ lui $t6, (0x00018000 >> 16) # lui $t6, 1 +/* 05147C 7F01C94C 35CE8000 */ ori $t6, (0x00018000 & 0xFFFF) # ori $t6, $t6, 0x8000 +/* 051480 7F01C950 01D1001A */ div $zero, $t6, $s1 +/* 051484 7F01C954 14400002 */ bnez $v0, .L7F01C960 +/* 051488 7F01C958 00000000 */ nop +/* 05148C 7F01C95C 0007000D */ break 7 +.L7F01C960: +/* 051490 7F01C960 2401FFFF */ li $at, -1 +/* 051494 7F01C964 14410004 */ bne $v0, $at, .L7F01C978 +/* 051498 7F01C968 3C018000 */ lui $at, 0x8000 +/* 05149C 7F01C96C 15810002 */ bne $t4, $at, .L7F01C978 +/* 0514A0 7F01C970 00000000 */ nop +/* 0514A4 7F01C974 0006000D */ break 6 +.L7F01C978: +/* 0514A8 7F01C978 0000C812 */ mflo $t9 +/* 0514AC 7F01C97C 8FAA0038 */ lw $t2, 0x38($sp) +/* 0514B0 7F01C980 3328FFFF */ andi $t0, $t9, 0xffff +/* 0514B4 7F01C984 00086C00 */ sll $t5, $t0, 0x10 +/* 0514B8 7F01C988 31F8FFFF */ andi $t8, $t7, 0xffff +/* 0514BC 7F01C98C 030D4825 */ or $t1, $t8, $t5 +/* 0514C0 7F01C990 02001825 */ move $v1, $s0 +/* 0514C4 7F01C994 26100008 */ addiu $s0, $s0, 8 +/* 0514C8 7F01C998 AD490004 */ sw $t1, 4($t2) +/* 0514CC 7F01C99C 3C0BE700 */ lui $t3, 0xe700 +/* 0514D0 7F01C9A0 02002025 */ move $a0, $s0 +/* 0514D4 7F01C9A4 AC6B0000 */ sw $t3, ($v1) +/* 0514D8 7F01C9A8 AC600004 */ sw $zero, 4($v1) +/* 0514DC 7F01C9AC 3C0CBA00 */ lui $t4, (0xBA000602 >> 16) # lui $t4, 0xba00 #G_SETOTHERMODE_H() +/* 0514E0 7F01C9B0 16200002 */ bnez $s1, .L7F01C9BC +/* 0514E4 7F01C9B4 00000000 */ nop +/* 0514E8 7F01C9B8 0007000D */ break 7 +.L7F01C9BC: +/* 0514EC 7F01C9BC 2401FFFF */ li $at, -1 +/* 0514F0 7F01C9C0 16210004 */ bne $s1, $at, .L7F01C9D4 +/* 0514F4 7F01C9C4 3C018000 */ lui $at, 0x8000 +/* 0514F8 7F01C9C8 15C10002 */ bne $t6, $at, .L7F01C9D4 +/* 0514FC 7F01C9CC 00000000 */ nop +/* 051500 7F01C9D0 0006000D */ break 6 +.L7F01C9D4: +/* 051504 7F01C9D4 358C0602 */ ori $t4, (0xBA000602 & 0xFFFF) # ori $t4, $t4, 0x602 #G_SETOTHERMODE_H() +/* 051508 7F01C9D8 26100008 */ addiu $s0, $s0, 8 +/* 05150C 7F01C9DC 240F0040 */ li $t7, 64 +/* 051510 7F01C9E0 AC8F0004 */ sw $t7, 4($a0) +/* 051514 7F01C9E4 AC8C0000 */ sw $t4, ($a0) +/* 051518 7F01C9E8 02002825 */ move $a1, $s0 +/* 05151C 7F01C9EC 3C0EBA00 */ lui $t6, (0xBA001301 >> 16) # lui $t6, 0xba00 #G_SETOTHERMODE_H() +/* 051520 7F01C9F0 35CE1301 */ ori $t6, (0xBA001301 & 0xFFFF) # ori $t6, $t6, 0x1301 +/* 051524 7F01C9F4 3C190008 */ lui $t9, 8 +/* 051528 7F01C9F8 ACB90004 */ sw $t9, 4($a1) +/* 05152C 7F01C9FC ACAE0000 */ sw $t6, ($a1) +/* 051530 7F01CA00 8FBF001C */ lw $ra, 0x1c($sp) +/* 051534 7F01CA04 26020008 */ addiu $v0, $s0, 8 +/* 051538 7F01CA08 8FB00014 */ lw $s0, 0x14($sp) +/* 05153C 7F01CA0C 8FB10018 */ lw $s1, 0x18($sp) +/* 051540 7F01CA10 03E00008 */ jr $ra +/* 051544 7F01CA14 27BD0088 */ addiu $sp, $sp, 0x88 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01CA18(Gfx *glistp) //BloodRed_Dl_Setup +{ + sub_GAME_7F01C1A4(); + //1 cycle settings + gDPSetRenderMode(glistp++, G_RM_CLD_SURF, G_RM_CLD_SURF2); + gDPSetCombineMode(glistp++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + gDPSetPrimColor(glistp++, 0, 0, 150, 00, 00, 180); //dark red + gDPSetColorDither(glistp++, G_CD_MAGICSQ); + + get_video2_settings_txtClipW(); + //... +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01CA18 +/* 051548 7F01CA18 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 05154C 7F01CA1C AFBF0014 */ sw $ra, 0x14($sp) +/* 051550 7F01CA20 0FC07069 */ jal sub_GAME_7F01C1A4 +/* 051554 7F01CA24 00000000 */ nop +/* 051558 7F01CA28 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 05155C 7F01CA2C 3C0F0050 */ lui $t7, (0x00504340 >> 16) # lui $t7, 0x50 +/* 051560 7F01CA30 3C18FCFF */ lui $t8, (0xFCFFFFFF >> 16) # lui $t8, 0xfcff +/* 051564 7F01CA34 3C19FFFD */ lui $t9, (0xFFFDF6FB >> 16) # lui $t9, 0xfffd +/* 051568 7F01CA38 3C099600 */ lui $t1, (0x960000B4 >> 16) # lui $t1, 0x9600 +/* 05156C 7F01CA3C 3C0ABA00 */ lui $t2, (0xBA000602 >> 16) # lui $t2, 0xba00 +/* 051570 7F01CA40 35EF4340 */ ori $t7, (0x00504340 & 0xFFFF) # ori $t7, $t7, 0x4340 +/* 051574 7F01CA44 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 051578 7F01CA48 3739F6FB */ ori $t9, (0xFFFDF6FB & 0xFFFF) # ori $t9, $t9, 0xf6fb +/* 05157C 7F01CA4C 3718FFFF */ ori $t8, (0xFCFFFFFF & 0xFFFF) # ori $t8, $t8, 0xffff +/* 051580 7F01CA50 352900B4 */ ori $t1, (0x960000B4 & 0xFFFF) # ori $t1, $t1, 0xb4 +/* 051584 7F01CA54 3C08FA00 */ lui $t0, 0xfa00 +/* 051588 7F01CA58 354A0602 */ ori $t2, (0xBA000602 & 0xFFFF) # ori $t2, $t2, 0x602 +/* 05158C 7F01CA5C AC4E0000 */ sw $t6, ($v0) #$v0 = gfx glist +/* 051590 7F01CA60 AC4F0004 */ sw $t7, 4($v0) +/* 051594 7F01CA64 AC580008 */ sw $t8, 8($v0) +/* 051598 7F01CA68 AC59000C */ sw $t9, 0xc($v0) +/* 05159C 7F01CA6C AC480010 */ sw $t0, 0x10($v0) +/* 0515A0 7F01CA70 AC490014 */ sw $t1, 0x14($v0) +/* 0515A4 7F01CA74 AC4A0018 */ sw $t2, 0x18($v0) +/* 0515A8 7F01CA78 AC40001C */ sw $zero, 0x1c($v0) +/* 0515AC 7F01CA7C 244B0020 */ addiu $t3, $v0, 0x20 +/* 0515B0 7F01CA80 244C0028 */ addiu $t4, $v0, 0x28 +/* 0515B4 7F01CA84 AFAC0030 */ sw $t4, 0x30($sp) +/* 0515B8 7F01CA88 0C001107 */ jal get_video2_settings_txtClipW +/* 0515BC 7F01CA8C AFAB001C */ sw $t3, 0x1c($sp) +/* 0515C0 7F01CA90 0C00110B */ jal get_video2_settings_txtClipH +/* 0515C4 7F01CA94 A7A2001A */ sh $v0, 0x1a($sp) +/* 0515C8 7F01CA98 87B8001A */ lh $t8, 0x1a($sp) +/* 0515CC 7F01CA9C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0515D0 7F01CAA0 304D03FF */ andi $t5, $v0, 0x3ff +/* 0515D4 7F01CAA4 000D7080 */ sll $t6, $t5, 2 +/* 0515D8 7F01CAA8 3C01F600 */ lui $at, 0xf600 +/* 0515DC 7F01CAAC 331903FF */ andi $t9, $t8, 0x3ff +/* 0515E0 7F01CAB0 00194380 */ sll $t0, $t9, 0xe +/* 0515E4 7F01CAB4 01C17825 */ or $t7, $t6, $at +/* 0515E8 7F01CAB8 01E84825 */ or $t1, $t7, $t0 +/* 0515EC 7F01CABC AC690000 */ sw $t1, ($v1) +/* 0515F0 7F01CAC0 AC600004 */ sw $zero, 4($v1) +/* 0515F4 7F01CAC4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0515F8 7F01CAC8 8FA20030 */ lw $v0, 0x30($sp) +/* 0515FC 7F01CACC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 051600 7F01CAD0 03E00008 */ jr $ra +/* 051604 7F01CAD4 00000000 */ nop +) +#endif + + + + + + + + diff --git a/src/game/blood_decrypt.c b/src/game/blood_decrypt.c new file mode 100644 index 0000000..51dc0f6 --- /dev/null +++ b/src/game/blood_decrypt.c @@ -0,0 +1,653 @@ +#include "ultra64.h" + + + + + +#ifdef NONMATCHING +void decrypt_bleeding_animation_data(void) { + +} +#else +GLOBAL_ASM( +.text +glabel decrypt_bleeding_animation_data +/* 051610 7F01CAE0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 051614 7F01CAE4 AFB30014 */ sw $s3, 0x14($sp) +/* 051618 7F01CAE8 AFB20010 */ sw $s2, 0x10($sp) +/* 05161C 7F01CAEC AFB1000C */ sw $s1, 0xc($sp) +/* 051620 7F01CAF0 AFB00008 */ sw $s0, 8($sp) +/* 051624 7F01CAF4 AFA5001C */ sw $a1, 0x1c($sp) +/* 051628 7F01CAF8 AFA60020 */ sw $a2, 0x20($sp) +/* 05162C 7F01CAFC 90820000 */ lbu $v0, ($a0) +/* 051630 7F01CB00 8FAF0028 */ lw $t7, 0x28($sp) +/* 051634 7F01CB04 00E08025 */ move $s0, $a3 +/* 051638 7F01CB08 30D100FF */ andi $s1, $a2, 0xff +/* 05163C 7F01CB0C 30A900FF */ andi $t1, $a1, 0xff +/* 051640 7F01CB10 24840001 */ addiu $a0, $a0, 1 +/* 051644 7F01CB14 241200FF */ li $s2, 255 +/* 051648 7F01CB18 241300FF */ li $s3, 255 +/* 05164C 7F01CB1C A1E20000 */ sb $v0, ($t7) +/* 051650 7F01CB20 90850000 */ lbu $a1, ($a0) +.L7F01CB24: +/* 051654 7F01CB24 24840001 */ addiu $a0, $a0, 1 +/* 051658 7F01CB28 326600FF */ andi $a2, $s3, 0xff +/* 05165C 7F01CB2C 1645002B */ bne $s2, $a1, .L7F01CBDC +/* 051660 7F01CB30 30B8001F */ andi $t8, $a1, 0x1f +/* 051664 7F01CB34 90830000 */ lbu $v1, ($a0) +/* 051668 7F01CB38 00003825 */ move $a3, $zero +/* 05166C 7F01CB3C 24840001 */ addiu $a0, $a0, 1 +/* 051670 7F01CB40 12430016 */ beq $s2, $v1, .L7F01CB9C +/* 051674 7F01CB44 00602825 */ move $a1, $v1 +.L7F01CB48: +/* 051678 7F01CB48 00E53821 */ addu $a3, $a3, $a1 +/* 05167C 7F01CB4C 2463FFFF */ addiu $v1, $v1, -1 +/* 051680 7F01CB50 30F800FF */ andi $t8, $a3, 0xff +/* 051684 7F01CB54 307900FF */ andi $t9, $v1, 0xff +/* 051688 7F01CB58 0005402A */ slt $t0, $zero, $a1 +/* 05168C 7F01CB5C 03003825 */ move $a3, $t8 +/* 051690 7F01CB60 11000008 */ beqz $t0, .L7F01CB84 +/* 051694 7F01CB64 03201825 */ move $v1, $t9 +.L7F01CB68: +/* 051698 7F01CB68 0003402A */ slt $t0, $zero, $v1 +/* 05169C 7F01CB6C 2463FFFF */ addiu $v1, $v1, -1 +/* 0516A0 7F01CB70 306E00FF */ andi $t6, $v1, 0xff +/* 0516A4 7F01CB74 01C01825 */ move $v1, $t6 +/* 0516A8 7F01CB78 A2060000 */ sb $a2, ($s0) +/* 0516AC 7F01CB7C 1500FFFA */ bnez $t0, .L7F01CB68 +/* 0516B0 7F01CB80 26100001 */ addiu $s0, $s0, 1 +.L7F01CB84: +/* 0516B4 7F01CB84 90830000 */ lbu $v1, ($a0) +/* 0516B8 7F01CB88 38CF00FF */ xori $t7, $a2, 0xff +/* 0516BC 7F01CB8C 31E600FF */ andi $a2, $t7, 0xff +/* 0516C0 7F01CB90 24840001 */ addiu $a0, $a0, 1 +/* 0516C4 7F01CB94 1643FFEC */ bne $s2, $v1, .L7F01CB48 +/* 0516C8 7F01CB98 00602825 */ move $a1, $v1 +.L7F01CB9C: +/* 0516CC 7F01CB9C 00E9402A */ slt $t0, $a3, $t1 +/* 0516D0 7F01CBA0 24E70001 */ addiu $a3, $a3, 1 +/* 0516D4 7F01CBA4 30F900FF */ andi $t9, $a3, 0xff +/* 0516D8 7F01CBA8 11000008 */ beqz $t0, .L7F01CBCC +/* 0516DC 7F01CBAC 03203825 */ move $a3, $t9 +.L7F01CBB0: +/* 0516E0 7F01CBB0 00E9402A */ slt $t0, $a3, $t1 +/* 0516E4 7F01CBB4 24E70001 */ addiu $a3, $a3, 1 +/* 0516E8 7F01CBB8 30EE00FF */ andi $t6, $a3, 0xff +/* 0516EC 7F01CBBC 01C03825 */ move $a3, $t6 +/* 0516F0 7F01CBC0 A2060000 */ sb $a2, ($s0) +/* 0516F4 7F01CBC4 1500FFFA */ bnez $t0, .L7F01CBB0 +/* 0516F8 7F01CBC8 26100001 */ addiu $s0, $s0, 1 +.L7F01CBCC: +/* 0516FC 7F01CBCC 2631FFFF */ addiu $s1, $s1, -1 +/* 051700 7F01CBD0 322F00FF */ andi $t7, $s1, 0xff +/* 051704 7F01CBD4 10000026 */ b .L7F01CC70 +/* 051708 7F01CBD8 01E08825 */ move $s1, $t7 +.L7F01CBDC: +/* 05170C 7F01CBDC 00583821 */ addu $a3, $v0, $t8 +/* 051710 7F01CBE0 00051943 */ sra $v1, $a1, 5 +/* 051714 7F01CBE4 30F900FF */ andi $t9, $a3, 0xff +/* 051718 7F01CBE8 24630001 */ addiu $v1, $v1, 1 +/* 05171C 7F01CBEC 306E00FF */ andi $t6, $v1, 0xff +/* 051720 7F01CBF0 01393023 */ subu $a2, $t1, $t9 +/* 051724 7F01CBF4 022E8823 */ subu $s1, $s1, $t6 +/* 051728 7F01CBF8 30D800FF */ andi $t8, $a2, 0xff +/* 05172C 7F01CBFC 322F00FF */ andi $t7, $s1, 0xff +/* 051730 7F01CC00 01C01825 */ move $v1, $t6 +/* 051734 7F01CC04 01E08825 */ move $s1, $t7 +/* 051738 7F01CC08 0018602A */ slt $t4, $zero, $t8 +/* 05173C 7F01CC0C 270DFFFF */ addiu $t5, $t8, -1 +/* 051740 7F01CC10 0019502A */ slt $t2, $zero, $t9 +/* 051744 7F01CC14 272BFFFF */ addiu $t3, $t9, -1 +.L7F01CC18: +/* 051748 7F01CC18 11400008 */ beqz $t2, .L7F01CC3C +/* 05174C 7F01CC1C 316600FF */ andi $a2, $t3, 0xff +.L7F01CC20: +/* 051750 7F01CC20 0006402A */ slt $t0, $zero, $a2 +/* 051754 7F01CC24 24C6FFFF */ addiu $a2, $a2, -1 +/* 051758 7F01CC28 30D900FF */ andi $t9, $a2, 0xff +/* 05175C 7F01CC2C 03203025 */ move $a2, $t9 +/* 051760 7F01CC30 A2130000 */ sb $s3, ($s0) +/* 051764 7F01CC34 1500FFFA */ bnez $t0, .L7F01CC20 +/* 051768 7F01CC38 26100001 */ addiu $s0, $s0, 1 +.L7F01CC3C: +/* 05176C 7F01CC3C 11800008 */ beqz $t4, .L7F01CC60 +/* 051770 7F01CC40 31A600FF */ andi $a2, $t5, 0xff +.L7F01CC44: +/* 051774 7F01CC44 0006402A */ slt $t0, $zero, $a2 +/* 051778 7F01CC48 24C6FFFF */ addiu $a2, $a2, -1 +/* 05177C 7F01CC4C 30CE00FF */ andi $t6, $a2, 0xff +/* 051780 7F01CC50 01C03025 */ move $a2, $t6 +/* 051784 7F01CC54 A2000000 */ sb $zero, ($s0) +/* 051788 7F01CC58 1500FFFA */ bnez $t0, .L7F01CC44 +/* 05178C 7F01CC5C 26100001 */ addiu $s0, $s0, 1 +.L7F01CC60: +/* 051790 7F01CC60 2463FFFF */ addiu $v1, $v1, -1 +/* 051794 7F01CC64 306F00FF */ andi $t7, $v1, 0xff +/* 051798 7F01CC68 1DE0FFEB */ bgtz $t7, .L7F01CC18 +/* 05179C 7F01CC6C 01E01825 */ move $v1, $t7 +.L7F01CC70: +/* 0517A0 7F01CC70 5E20FFAC */ bgtzl $s1, .L7F01CB24 +/* 0517A4 7F01CC74 90850000 */ lbu $a1, ($a0) +/* 0517A8 7F01CC78 8FB00008 */ lw $s0, 8($sp) +/* 0517AC 7F01CC7C 8FB1000C */ lw $s1, 0xc($sp) +/* 0517B0 7F01CC80 8FB20010 */ lw $s2, 0x10($sp) +/* 0517B4 7F01CC84 8FB30014 */ lw $s3, 0x14($sp) +/* 0517B8 7F01CC88 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0517BC 7F01CC8C 03E00008 */ jr $ra +/* 0517C0 7F01CC90 00801025 */ move $v0, $a0 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01CC94(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01CC94 +/* 0517C4 7F01CC94 AFA50004 */ sw $a1, 4($sp) +/* 0517C8 7F01CC98 30AEFFFF */ andi $t6, $a1, 0xffff +/* 0517CC 7F01CC9C 25C5FFFF */ addiu $a1, $t6, -1 +/* 0517D0 7F01CCA0 30AFFFFF */ andi $t7, $a1, 0xffff +/* 0517D4 7F01CCA4 000E102A */ slt $v0, $zero, $t6 +/* 0517D8 7F01CCA8 1040000E */ beqz $v0, .L7F01CCE4 +/* 0517DC 7F01CCAC 01E02825 */ move $a1, $t7 +.L7F01CCB0: +/* 0517E0 7F01CCB0 90980001 */ lbu $t8, 1($a0) +/* 0517E4 7F01CCB4 90880000 */ lbu $t0, ($a0) +/* 0517E8 7F01CCB8 0005102A */ slt $v0, $zero, $a1 +/* 0517EC 7F01CCBC 24A5FFFF */ addiu $a1, $a1, -1 +/* 0517F0 7F01CCC0 0018C903 */ sra $t9, $t8, 4 +/* 0517F4 7F01CCC4 310900F0 */ andi $t1, $t0, 0xf0 +/* 0517F8 7F01CCC8 03295025 */ or $t2, $t9, $t1 +/* 0517FC 7F01CCCC 30ABFFFF */ andi $t3, $a1, 0xffff +/* 051800 7F01CCD0 A0CA0000 */ sb $t2, ($a2) +/* 051804 7F01CCD4 24C60001 */ addiu $a2, $a2, 1 +/* 051808 7F01CCD8 01602825 */ move $a1, $t3 +/* 05180C 7F01CCDC 1440FFF4 */ bnez $v0, .L7F01CCB0 +/* 051810 7F01CCE0 24840002 */ addiu $a0, $a0, 2 +.L7F01CCE4: +/* 051814 7F01CCE4 03E00008 */ jr $ra +/* 051818 7F01CCE8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01CCEC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01CCEC +/* 05181C 7F01CCEC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 051820 7F01CCF0 30CF00FF */ andi $t7, $a2, 0xff +/* 051824 7F01CCF4 AFBE0024 */ sw $fp, 0x24($sp) +/* 051828 7F01CCF8 AFB70020 */ sw $s7, 0x20($sp) +/* 05182C 7F01CCFC AFB6001C */ sw $s6, 0x1c($sp) +/* 051830 7F01CD00 AFB50018 */ sw $s5, 0x18($sp) +/* 051834 7F01CD04 AFB40014 */ sw $s4, 0x14($sp) +/* 051838 7F01CD08 AFB30010 */ sw $s3, 0x10($sp) +/* 05183C 7F01CD0C AFB2000C */ sw $s2, 0xc($sp) +/* 051840 7F01CD10 AFB10008 */ sw $s1, 8($sp) +/* 051844 7F01CD14 AFB00004 */ sw $s0, 4($sp) +/* 051848 7F01CD18 AFA5002C */ sw $a1, 0x2c($sp) +/* 05184C 7F01CD1C AFA60030 */ sw $a2, 0x30($sp) +/* 051850 7F01CD20 30AE00FF */ andi $t6, $a1, 0xff +/* 051854 7F01CD24 01E01825 */ move $v1, $t7 +/* 051858 7F01CD28 19E00065 */ blez $t7, .L7F01CEC0 +/* 05185C 7F01CD2C 00001025 */ move $v0, $zero +/* 051860 7F01CD30 01C03025 */ move $a2, $t6 +/* 051864 7F01CD34 93AA003B */ lbu $t2, 0x3b($sp) +.L7F01CD38: +/* 051868 7F01CD38 18C0005B */ blez $a2, .L7F01CEA8 +/* 05186C 7F01CD3C 00002825 */ move $a1, $zero +/* 051870 7F01CD40 00460019 */ multu $v0, $a2 +/* 051874 7F01CD44 01405825 */ move $t3, $t2 +/* 051878 7F01CD48 004A6023 */ subu $t4, $v0, $t2 +/* 05187C 7F01CD4C 2470FFFF */ addiu $s0, $v1, -1 +/* 051880 7F01CD50 004A8821 */ addu $s1, $v0, $t2 +/* 051884 7F01CD54 0000F012 */ mflo $fp +/* 051888 7F01CD58 00000000 */ nop +/* 05188C 7F01CD5C 00000000 */ nop +/* 051890 7F01CD60 00004025 */ move $t0, $zero +.L7F01CD64: +/* 051894 7F01CD64 05810003 */ bgez $t4, .L7F01CD74 +/* 051898 7F01CD68 00004825 */ move $t1, $zero +/* 05189C 7F01CD6C 10000004 */ b .L7F01CD80 +/* 0518A0 7F01CD70 00006825 */ move $t5, $zero +.L7F01CD74: +/* 0518A4 7F01CD74 000C6C00 */ sll $t5, $t4, 0x10 +/* 0518A8 7F01CD78 000DC403 */ sra $t8, $t5, 0x10 +/* 0518AC 7F01CD7C 03006825 */ move $t5, $t8 +.L7F01CD80: +/* 0518B0 7F01CD80 0211082A */ slt $at, $s0, $s1 +/* 0518B4 7F01CD84 10200003 */ beqz $at, .L7F01CD94 +/* 0518B8 7F01CD88 02209025 */ move $s2, $s1 +/* 0518BC 7F01CD8C 10000001 */ b .L7F01CD94 +/* 0518C0 7F01CD90 02009025 */ move $s2, $s0 +.L7F01CD94: +/* 0518C4 7F01CD94 024D082A */ slt $at, $s2, $t5 +/* 0518C8 7F01CD98 54200033 */ bnezl $at, .L7F01CE68 +/* 0518CC 7F01CD9C 0008C842 */ srl $t9, $t0, 1 +/* 0518D0 7F01CDA0 00AB9823 */ subu $s3, $a1, $t3 +/* 0518D4 7F01CDA4 24D5FFFF */ addiu $s5, $a2, -1 +/* 0518D8 7F01CDA8 00ABB021 */ addu $s6, $a1, $t3 +.L7F01CDAC: +/* 0518DC 7F01CDAC 06610003 */ bgez $s3, .L7F01CDBC +/* 0518E0 7F01CDB0 02B6082A */ slt $at, $s5, $s6 +/* 0518E4 7F01CDB4 10000004 */ b .L7F01CDC8 +/* 0518E8 7F01CDB8 0000A025 */ move $s4, $zero +.L7F01CDBC: +/* 0518EC 7F01CDBC 0013A400 */ sll $s4, $s3, 0x10 +/* 0518F0 7F01CDC0 0014CC03 */ sra $t9, $s4, 0x10 +/* 0518F4 7F01CDC4 0320A025 */ move $s4, $t9 +.L7F01CDC8: +/* 0518F8 7F01CDC8 10200003 */ beqz $at, .L7F01CDD8 +/* 0518FC 7F01CDCC 02C09025 */ move $s2, $s6 +/* 051900 7F01CDD0 10000001 */ b .L7F01CDD8 +/* 051904 7F01CDD4 02A09025 */ move $s2, $s5 +.L7F01CDD8: +/* 051908 7F01CDD8 0254082A */ slt $at, $s2, $s4 +/* 05190C 7F01CDDC 54200016 */ bnezl $at, .L7F01CE38 +/* 051910 7F01CDE0 25AD0001 */ addiu $t5, $t5, 1 +/* 051914 7F01CDE4 01A60019 */ multu $t5, $a2 +/* 051918 7F01CDE8 0000B812 */ mflo $s7 +/* 05191C 7F01CDEC 00000000 */ nop +/* 051920 7F01CDF0 00000000 */ nop +/* 051924 7F01CDF4 00947021 */ addu $t6, $a0, $s4 +.L7F01CDF8: +/* 051928 7F01CDF8 01D77821 */ addu $t7, $t6, $s7 +/* 05192C 7F01CDFC 91F80000 */ lbu $t8, ($t7) +/* 051930 7F01CE00 26940001 */ addiu $s4, $s4, 1 +/* 051934 7F01CE04 0014CC00 */ sll $t9, $s4, 0x10 +/* 051938 7F01CE08 02B6082A */ slt $at, $s5, $s6 +/* 05193C 7F01CE0C 0019A403 */ sra $s4, $t9, 0x10 +/* 051940 7F01CE10 25080001 */ addiu $t0, $t0, 1 +/* 051944 7F01CE14 10200003 */ beqz $at, .L7F01CE24 +/* 051948 7F01CE18 01384821 */ addu $t1, $t1, $t8 +/* 05194C 7F01CE1C 10000002 */ b .L7F01CE28 +/* 051950 7F01CE20 02A09025 */ move $s2, $s5 +.L7F01CE24: +/* 051954 7F01CE24 02C09025 */ move $s2, $s6 +.L7F01CE28: +/* 051958 7F01CE28 0254082A */ slt $at, $s2, $s4 +/* 05195C 7F01CE2C 5020FFF2 */ beql $at, $zero, .L7F01CDF8 +/* 051960 7F01CE30 00947021 */ addu $t6, $a0, $s4 +/* 051964 7F01CE34 25AD0001 */ addiu $t5, $t5, 1 +.L7F01CE38: +/* 051968 7F01CE38 000D7C00 */ sll $t7, $t5, 0x10 +/* 05196C 7F01CE3C 000FC403 */ sra $t8, $t7, 0x10 +/* 051970 7F01CE40 0211082A */ slt $at, $s0, $s1 +/* 051974 7F01CE44 10200003 */ beqz $at, .L7F01CE54 +/* 051978 7F01CE48 03006825 */ move $t5, $t8 +/* 05197C 7F01CE4C 10000002 */ b .L7F01CE58 +/* 051980 7F01CE50 02009025 */ move $s2, $s0 +.L7F01CE54: +/* 051984 7F01CE54 02209025 */ move $s2, $s1 +.L7F01CE58: +/* 051988 7F01CE58 024D082A */ slt $at, $s2, $t5 +/* 05198C 7F01CE5C 1020FFD3 */ beqz $at, .L7F01CDAC +/* 051990 7F01CE60 00000000 */ nop +/* 051994 7F01CE64 0008C842 */ srl $t9, $t0, 1 +.L7F01CE68: +/* 051998 7F01CE68 03297021 */ addu $t6, $t9, $t1 +/* 05199C 7F01CE6C 01C8001B */ divu $zero, $t6, $t0 +/* 0519A0 7F01CE70 00E5C021 */ addu $t8, $a3, $a1 +/* 0519A4 7F01CE74 24A50001 */ addiu $a1, $a1, 1 +/* 0519A8 7F01CE78 00057400 */ sll $t6, $a1, 0x10 +/* 0519AC 7F01CE7C 031EC821 */ addu $t9, $t8, $fp +/* 0519B0 7F01CE80 000EC403 */ sra $t8, $t6, 0x10 +/* 0519B4 7F01CE84 0306082A */ slt $at, $t8, $a2 +/* 0519B8 7F01CE88 00007812 */ mflo $t7 +/* 0519BC 7F01CE8C 03002825 */ move $a1, $t8 +/* 0519C0 7F01CE90 15000002 */ bnez $t0, .L7F01CE9C +/* 0519C4 7F01CE94 00000000 */ nop +/* 0519C8 7F01CE98 0007000D */ break 7 +.L7F01CE9C: +/* 0519CC 7F01CE9C A32F0000 */ sb $t7, ($t9) +/* 0519D0 7F01CEA0 5420FFB0 */ bnezl $at, .L7F01CD64 +/* 0519D4 7F01CEA4 00004025 */ move $t0, $zero +.L7F01CEA8: +/* 0519D8 7F01CEA8 24420001 */ addiu $v0, $v0, 1 +/* 0519DC 7F01CEAC 00027C00 */ sll $t7, $v0, 0x10 +/* 0519E0 7F01CEB0 000F1403 */ sra $v0, $t7, 0x10 +/* 0519E4 7F01CEB4 0043082A */ slt $at, $v0, $v1 +/* 0519E8 7F01CEB8 1420FF9F */ bnez $at, .L7F01CD38 +/* 0519EC 7F01CEBC 00000000 */ nop +.L7F01CEC0: +/* 0519F0 7F01CEC0 8FB00004 */ lw $s0, 4($sp) +/* 0519F4 7F01CEC4 8FB10008 */ lw $s1, 8($sp) +/* 0519F8 7F01CEC8 8FB2000C */ lw $s2, 0xc($sp) +/* 0519FC 7F01CECC 8FB30010 */ lw $s3, 0x10($sp) +/* 051A00 7F01CED0 8FB40014 */ lw $s4, 0x14($sp) +/* 051A04 7F01CED4 8FB50018 */ lw $s5, 0x18($sp) +/* 051A08 7F01CED8 8FB6001C */ lw $s6, 0x1c($sp) +/* 051A0C 7F01CEDC 8FB70020 */ lw $s7, 0x20($sp) +/* 051A10 7F01CEE0 8FBE0024 */ lw $fp, 0x24($sp) +/* 051A14 7F01CEE4 03E00008 */ jr $ra +/* 051A18 7F01CEE8 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01CEEC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01CEEC +/* 051A1C 7F01CEEC 24A3FFFF */ addiu $v1, $a1, -1 +/* 051A20 7F01CEF0 28610002 */ slti $at, $v1, 2 +/* 051A24 7F01CEF4 24840061 */ addiu $a0, $a0, 0x61 +/* 051A28 7F01CEF8 24C60061 */ addiu $a2, $a2, 0x61 +/* 051A2C 7F01CEFC 14200049 */ bnez $at, .L7F01D024 +/* 051A30 7F01CF00 24020001 */ li $v0, 1 +/* 051A34 7F01CF04 2407005F */ li $a3, 95 +.L7F01CF08: +/* 051A38 7F01CF08 908EFFA0 */ lbu $t6, -0x60($a0) +/* 051A3C 7F01CF0C 908FFFFF */ lbu $t7, -1($a0) +/* 051A40 7F01CF10 90990000 */ lbu $t9, ($a0) +/* 051A44 7F01CF14 9089FF9F */ lbu $t1, -0x61($a0) +/* 051A48 7F01CF18 01CFC021 */ addu $t8, $t6, $t7 +/* 051A4C 7F01CF1C 03194021 */ addu $t0, $t8, $t9 +/* 051A50 7F01CF20 01095021 */ addu $t2, $t0, $t1 +/* 051A54 7F01CF24 254B0002 */ addiu $t3, $t2, 2 +/* 051A58 7F01CF28 000B6083 */ sra $t4, $t3, 2 +/* 051A5C 7F01CF2C A0CC0000 */ sb $t4, ($a2) +/* 051A60 7F01CF30 908E0000 */ lbu $t6, ($a0) +/* 051A64 7F01CF34 908DFFA1 */ lbu $t5, -0x5f($a0) +/* 051A68 7F01CF38 90980001 */ lbu $t8, 1($a0) +/* 051A6C 7F01CF3C 9088FFA0 */ lbu $t0, -0x60($a0) +/* 051A70 7F01CF40 01AE7821 */ addu $t7, $t5, $t6 +/* 051A74 7F01CF44 01F8C821 */ addu $t9, $t7, $t8 +/* 051A78 7F01CF48 03284821 */ addu $t1, $t9, $t0 +/* 051A7C 7F01CF4C 252A0002 */ addiu $t2, $t1, 2 +/* 051A80 7F01CF50 000A5883 */ sra $t3, $t2, 2 +/* 051A84 7F01CF54 A0CB0001 */ sb $t3, 1($a2) +/* 051A88 7F01CF58 24050003 */ li $a1, 3 +/* 051A8C 7F01CF5C 24C60002 */ addiu $a2, $a2, 2 +/* 051A90 7F01CF60 24840002 */ addiu $a0, $a0, 2 +.L7F01CF64: +/* 051A94 7F01CF64 908CFFA0 */ lbu $t4, -0x60($a0) +/* 051A98 7F01CF68 908DFFFF */ lbu $t5, -1($a0) +/* 051A9C 7F01CF6C 908F0000 */ lbu $t7, ($a0) +/* 051AA0 7F01CF70 9099FF9F */ lbu $t9, -0x61($a0) +/* 051AA4 7F01CF74 018D7021 */ addu $t6, $t4, $t5 +/* 051AA8 7F01CF78 01CFC021 */ addu $t8, $t6, $t7 +/* 051AAC 7F01CF7C 03194021 */ addu $t0, $t8, $t9 +/* 051AB0 7F01CF80 25090002 */ addiu $t1, $t0, 2 +/* 051AB4 7F01CF84 00095083 */ sra $t2, $t1, 2 +/* 051AB8 7F01CF88 A0CA0000 */ sb $t2, ($a2) +/* 051ABC 7F01CF8C 908BFFA1 */ lbu $t3, -0x5f($a0) +/* 051AC0 7F01CF90 908C0000 */ lbu $t4, ($a0) +/* 051AC4 7F01CF94 908E0001 */ lbu $t6, 1($a0) +/* 051AC8 7F01CF98 9098FFA0 */ lbu $t8, -0x60($a0) +/* 051ACC 7F01CF9C 016C6821 */ addu $t5, $t3, $t4 +/* 051AD0 7F01CFA0 01AE7821 */ addu $t7, $t5, $t6 +/* 051AD4 7F01CFA4 01F8C821 */ addu $t9, $t7, $t8 +/* 051AD8 7F01CFA8 27280002 */ addiu $t0, $t9, 2 +/* 051ADC 7F01CFAC 00084883 */ sra $t1, $t0, 2 +/* 051AE0 7F01CFB0 A0C90001 */ sb $t1, 1($a2) +/* 051AE4 7F01CFB4 908AFFA2 */ lbu $t2, -0x5e($a0) +/* 051AE8 7F01CFB8 908B0001 */ lbu $t3, 1($a0) +/* 051AEC 7F01CFBC 908D0002 */ lbu $t5, 2($a0) +/* 051AF0 7F01CFC0 908FFFA1 */ lbu $t7, -0x5f($a0) +/* 051AF4 7F01CFC4 014B6021 */ addu $t4, $t2, $t3 +/* 051AF8 7F01CFC8 018D7021 */ addu $t6, $t4, $t5 +/* 051AFC 7F01CFCC 01CFC021 */ addu $t8, $t6, $t7 +/* 051B00 7F01CFD0 27190002 */ addiu $t9, $t8, 2 +/* 051B04 7F01CFD4 00194083 */ sra $t0, $t9, 2 +/* 051B08 7F01CFD8 A0C80002 */ sb $t0, 2($a2) +/* 051B0C 7F01CFDC 908A0002 */ lbu $t2, 2($a0) +/* 051B10 7F01CFE0 9089FFA3 */ lbu $t1, -0x5d($a0) +/* 051B14 7F01CFE4 908C0003 */ lbu $t4, 3($a0) +/* 051B18 7F01CFE8 908EFFA2 */ lbu $t6, -0x5e($a0) +/* 051B1C 7F01CFEC 012A5821 */ addu $t3, $t1, $t2 +/* 051B20 7F01CFF0 016C6821 */ addu $t5, $t3, $t4 +/* 051B24 7F01CFF4 01AE7821 */ addu $t7, $t5, $t6 +/* 051B28 7F01CFF8 25F80002 */ addiu $t8, $t7, 2 +/* 051B2C 7F01CFFC 0018C883 */ sra $t9, $t8, 2 +/* 051B30 7F01D000 24A50004 */ addiu $a1, $a1, 4 +/* 051B34 7F01D004 A0D90003 */ sb $t9, 3($a2) +/* 051B38 7F01D008 24C60004 */ addiu $a2, $a2, 4 +/* 051B3C 7F01D00C 14A7FFD5 */ bne $a1, $a3, .L7F01CF64 +/* 051B40 7F01D010 24840004 */ addiu $a0, $a0, 4 +/* 051B44 7F01D014 24420001 */ addiu $v0, $v0, 1 +/* 051B48 7F01D018 24C60002 */ addiu $a2, $a2, 2 +/* 051B4C 7F01D01C 1443FFBA */ bne $v0, $v1, .L7F01CF08 +/* 051B50 7F01D020 24840002 */ addiu $a0, $a0, 2 +.L7F01D024: +/* 051B54 7F01D024 03E00008 */ jr $ra +/* 051B58 7F01D028 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01D02C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01D02C +/* 051B5C 7F01D02C 24A3FFFF */ addiu $v1, $a1, -1 +/* 051B60 7F01D030 28610002 */ slti $at, $v1, 2 +/* 051B64 7F01D034 24840061 */ addiu $a0, $a0, 0x61 +/* 051B68 7F01D038 24C60061 */ addiu $a2, $a2, 0x61 +/* 051B6C 7F01D03C 14200049 */ bnez $at, .L7F01D164 +/* 051B70 7F01D040 24020001 */ li $v0, 1 +/* 051B74 7F01D044 2407005F */ li $a3, 95 +.L7F01D048: +/* 051B78 7F01D048 908E0060 */ lbu $t6, 0x60($a0) +/* 051B7C 7F01D04C 908F0001 */ lbu $t7, 1($a0) +/* 051B80 7F01D050 90990000 */ lbu $t9, ($a0) +/* 051B84 7F01D054 90890061 */ lbu $t1, 0x61($a0) +/* 051B88 7F01D058 01CFC021 */ addu $t8, $t6, $t7 +/* 051B8C 7F01D05C 03194021 */ addu $t0, $t8, $t9 +/* 051B90 7F01D060 01095021 */ addu $t2, $t0, $t1 +/* 051B94 7F01D064 254B0002 */ addiu $t3, $t2, 2 +/* 051B98 7F01D068 000B6083 */ sra $t4, $t3, 2 +/* 051B9C 7F01D06C A0CC0000 */ sb $t4, ($a2) +/* 051BA0 7F01D070 908E0002 */ lbu $t6, 2($a0) +/* 051BA4 7F01D074 908D0061 */ lbu $t5, 0x61($a0) +/* 051BA8 7F01D078 90980001 */ lbu $t8, 1($a0) +/* 051BAC 7F01D07C 90880062 */ lbu $t0, 0x62($a0) +/* 051BB0 7F01D080 01AE7821 */ addu $t7, $t5, $t6 +/* 051BB4 7F01D084 01F8C821 */ addu $t9, $t7, $t8 +/* 051BB8 7F01D088 03284821 */ addu $t1, $t9, $t0 +/* 051BBC 7F01D08C 252A0002 */ addiu $t2, $t1, 2 +/* 051BC0 7F01D090 000A5883 */ sra $t3, $t2, 2 +/* 051BC4 7F01D094 A0CB0001 */ sb $t3, 1($a2) +/* 051BC8 7F01D098 24050003 */ li $a1, 3 +/* 051BCC 7F01D09C 24C60002 */ addiu $a2, $a2, 2 +/* 051BD0 7F01D0A0 24840002 */ addiu $a0, $a0, 2 +.L7F01D0A4: +/* 051BD4 7F01D0A4 908C0060 */ lbu $t4, 0x60($a0) +/* 051BD8 7F01D0A8 908D0001 */ lbu $t5, 1($a0) +/* 051BDC 7F01D0AC 908F0000 */ lbu $t7, ($a0) +/* 051BE0 7F01D0B0 90990061 */ lbu $t9, 0x61($a0) +/* 051BE4 7F01D0B4 018D7021 */ addu $t6, $t4, $t5 +/* 051BE8 7F01D0B8 01CFC021 */ addu $t8, $t6, $t7 +/* 051BEC 7F01D0BC 03194021 */ addu $t0, $t8, $t9 +/* 051BF0 7F01D0C0 25090002 */ addiu $t1, $t0, 2 +/* 051BF4 7F01D0C4 00095083 */ sra $t2, $t1, 2 +/* 051BF8 7F01D0C8 A0CA0000 */ sb $t2, ($a2) +/* 051BFC 7F01D0CC 908C0002 */ lbu $t4, 2($a0) +/* 051C00 7F01D0D0 908B0061 */ lbu $t3, 0x61($a0) +/* 051C04 7F01D0D4 908E0001 */ lbu $t6, 1($a0) +/* 051C08 7F01D0D8 90980062 */ lbu $t8, 0x62($a0) +/* 051C0C 7F01D0DC 016C6821 */ addu $t5, $t3, $t4 +/* 051C10 7F01D0E0 01AE7821 */ addu $t7, $t5, $t6 +/* 051C14 7F01D0E4 01F8C821 */ addu $t9, $t7, $t8 +/* 051C18 7F01D0E8 27280002 */ addiu $t0, $t9, 2 +/* 051C1C 7F01D0EC 00084883 */ sra $t1, $t0, 2 +/* 051C20 7F01D0F0 A0C90001 */ sb $t1, 1($a2) +/* 051C24 7F01D0F4 908B0003 */ lbu $t3, 3($a0) +/* 051C28 7F01D0F8 908A0062 */ lbu $t2, 0x62($a0) +/* 051C2C 7F01D0FC 908D0002 */ lbu $t5, 2($a0) +/* 051C30 7F01D100 908F0063 */ lbu $t7, 0x63($a0) +/* 051C34 7F01D104 014B6021 */ addu $t4, $t2, $t3 +/* 051C38 7F01D108 018D7021 */ addu $t6, $t4, $t5 +/* 051C3C 7F01D10C 01CFC021 */ addu $t8, $t6, $t7 +/* 051C40 7F01D110 27190002 */ addiu $t9, $t8, 2 +/* 051C44 7F01D114 00194083 */ sra $t0, $t9, 2 +/* 051C48 7F01D118 A0C80002 */ sb $t0, 2($a2) +/* 051C4C 7F01D11C 908A0004 */ lbu $t2, 4($a0) +/* 051C50 7F01D120 90890063 */ lbu $t1, 0x63($a0) +/* 051C54 7F01D124 908C0003 */ lbu $t4, 3($a0) +/* 051C58 7F01D128 908E0064 */ lbu $t6, 0x64($a0) +/* 051C5C 7F01D12C 012A5821 */ addu $t3, $t1, $t2 +/* 051C60 7F01D130 016C6821 */ addu $t5, $t3, $t4 +/* 051C64 7F01D134 01AE7821 */ addu $t7, $t5, $t6 +/* 051C68 7F01D138 25F80002 */ addiu $t8, $t7, 2 +/* 051C6C 7F01D13C 0018C883 */ sra $t9, $t8, 2 +/* 051C70 7F01D140 24A50004 */ addiu $a1, $a1, 4 +/* 051C74 7F01D144 A0D90003 */ sb $t9, 3($a2) +/* 051C78 7F01D148 24C60004 */ addiu $a2, $a2, 4 +/* 051C7C 7F01D14C 14A7FFD5 */ bne $a1, $a3, .L7F01D0A4 +/* 051C80 7F01D150 24840004 */ addiu $a0, $a0, 4 +/* 051C84 7F01D154 24420001 */ addiu $v0, $v0, 1 +/* 051C88 7F01D158 24C60002 */ addiu $a2, $a2, 2 +/* 051C8C 7F01D15C 1443FFBA */ bne $v0, $v1, .L7F01D048 +/* 051C90 7F01D160 24840002 */ addiu $a0, $a0, 2 +.L7F01D164: +/* 051C94 7F01D164 03E00008 */ jr $ra +/* 051C98 7F01D168 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01D16C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01D16C +/* 051C9C 7F01D16C 00A60019 */ multu $a1, $a2 +/* 051CA0 7F01D170 00801825 */ move $v1, $a0 +/* 051CA4 7F01D174 00E04025 */ move $t0, $a3 +/* 051CA8 7F01D178 00855021 */ addu $t2, $a0, $a1 +/* 051CAC 7F01D17C 00001012 */ mflo $v0 +/* 051CB0 7F01D180 00824821 */ addu $t1, $a0, $v0 +/* 051CB4 7F01D184 00000000 */ nop +.L7F01D188: +/* 051CB8 7F01D188 01402025 */ move $a0, $t2 +.L7F01D18C: +/* 051CBC 7F01D18C 906E0000 */ lbu $t6, ($v1) +/* 051CC0 7F01D190 24630001 */ addiu $v1, $v1, 1 +/* 051CC4 7F01D194 0064082B */ sltu $at, $v1, $a0 +/* 051CC8 7F01D198 A10E0000 */ sb $t6, ($t0) +/* 051CCC 7F01D19C 254A0001 */ addiu $t2, $t2, 1 +/* 051CD0 7F01D1A0 1420FFFA */ bnez $at, .L7F01D18C +/* 051CD4 7F01D1A4 01064021 */ addu $t0, $t0, $a2 +/* 051CD8 7F01D1A8 01024023 */ subu $t0, $t0, $v0 +/* 051CDC 7F01D1AC 0069082B */ sltu $at, $v1, $t1 +/* 051CE0 7F01D1B0 1420FFF5 */ bnez $at, .L7F01D188 +/* 051CE4 7F01D1B4 25080001 */ addiu $t0, $t0, 1 +/* 051CE8 7F01D1B8 03E00008 */ jr $ra +/* 051CEC 7F01D1BC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01D1C0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01D1C0 +/* 051CF0 7F01D1C0 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 051CF4 7F01D1C4 240C00FF */ li $t4, 255 +/* 051CF8 7F01D1C8 90880000 */ lbu $t0, ($a0) +/* 051CFC 7F01D1CC 24840001 */ addiu $a0, $a0, 1 +.L7F01D1D0: +/* 051D00 7F01D1D0 90890000 */ lbu $t1, ($a0) +/* 051D04 7F01D1D4 24840001 */ addiu $a0, $a0, 1 +/* 051D08 7F01D1D8 152C001A */ bne $t1, $t4, .L7F01D244 +/* 051D0C 7F01D1DC 240B00FF */ li $t3, 255 +/* 051D10 7F01D1E0 90890000 */ lbu $t1, ($a0) +/* 051D14 7F01D1E4 240A0000 */ li $t2, 0 +/* 051D18 7F01D1E8 112C000C */ beq $t1, $t4, .L7F01D21C +/* 051D1C 7F01D1EC 24840001 */ addiu $a0, $a0, 1 +.L7F01D1F0: +/* 051D20 7F01D1F0 01495021 */ addu $t2, $t2, $t1 +/* 051D24 7F01D1F4 19200005 */ blez $t1, .L7F01D20C +/* 051D28 7F01D1F8 2529FFFF */ addiu $t1, $t1, -1 +.L7F01D1FC: +/* 051D2C 7F01D1FC A0EB0000 */ sb $t3, ($a3) +/* 051D30 7F01D200 24E70001 */ addiu $a3, $a3, 1 +/* 051D34 7F01D204 1D20FFFD */ bgtz $t1, .L7F01D1FC +/* 051D38 7F01D208 2529FFFF */ addiu $t1, $t1, -1 +.L7F01D20C: +/* 051D3C 7F01D20C 90890000 */ lbu $t1, ($a0) +/* 051D40 7F01D210 396B00FF */ xori $t3, $t3, 0xff +/* 051D44 7F01D214 152CFFF6 */ bne $t1, $t4, .L7F01D1F0 +/* 051D48 7F01D218 24840001 */ addiu $a0, $a0, 1 +.L7F01D21C: +/* 051D4C 7F01D21C 0145082A */ slt $at, $t2, $a1 +/* 051D50 7F01D220 10200006 */ beqz $at, .L7F01D23C +/* 051D54 7F01D224 254A0001 */ addiu $t2, $t2, 1 +.L7F01D228: +/* 051D58 7F01D228 A0EB0000 */ sb $t3, ($a3) +/* 051D5C 7F01D22C 24E70001 */ addiu $a3, $a3, 1 +/* 051D60 7F01D230 0145082A */ slt $at, $t2, $a1 +/* 051D64 7F01D234 1420FFFC */ bnez $at, .L7F01D228 +/* 051D68 7F01D238 254A0001 */ addiu $t2, $t2, 1 +.L7F01D23C: +/* 051D6C 7F01D23C 0BC074A7 */ j func_7F01D29C +/* 051D70 7F01D240 24C6FFFF */ addiu $a2, $a2, -1 + +.L7F01D244: +/* 051D74 7F01D244 312A001F */ andi $t2, $t1, 0x1f +/* 051D78 7F01D248 01485021 */ addu $t2, $t2, $t0 +/* 051D7C 7F01D24C 00094942 */ srl $t1, $t1, 5 +/* 051D80 7F01D250 25290001 */ addiu $t1, $t1, 1 +/* 051D84 7F01D254 00C93023 */ subu $a2, $a2, $t1 +.L7F01D258: +/* 051D88 7F01D258 01405825 */ move $t3, $t2 +/* 051D8C 7F01D25C 19600005 */ blez $t3, .L7F01D274 +/* 051D90 7F01D260 256BFFFF */ addiu $t3, $t3, -1 +.L7F01D264: +/* 051D94 7F01D264 A0EC0000 */ sb $t4, ($a3) +/* 051D98 7F01D268 24E70001 */ addiu $a3, $a3, 1 +/* 051D9C 7F01D26C 1D60FFFD */ bgtz $t3, .L7F01D264 +/* 051DA0 7F01D270 256BFFFF */ addiu $t3, $t3, -1 +.L7F01D274: +/* 051DA4 7F01D274 00AA5823 */ subu $t3, $a1, $t2 +/* 051DA8 7F01D278 19600005 */ blez $t3, .L7F01D290 +/* 051DAC 7F01D27C 256BFFFF */ addiu $t3, $t3, -1 +.L7F01D280: +/* 051DB0 7F01D280 A0E00000 */ sb $zero, ($a3) +/* 051DB4 7F01D284 24E70001 */ addiu $a3, $a3, 1 +/* 051DB8 7F01D288 1D60FFFD */ bgtz $t3, .L7F01D280 +/* 051DBC 7F01D28C 256BFFFF */ addiu $t3, $t3, -1 +.L7F01D290: +/* 051DC0 7F01D290 2529FFFF */ addiu $t1, $t1, -1 +/* 051DC4 7F01D294 1D20FFF0 */ bgtz $t1, .L7F01D258 +/* 051DC8 7F01D298 00000000 */ nop +glabel func_7F01D29C +/* 051DCC 7F01D29C 1CC0FFCC */ bgtz $a2, .L7F01D1D0 +/* 051DD0 7F01D2A0 00801025 */ move $v0, $a0 +/* 051DD4 7F01D2A4 03E00008 */ jr $ra +/* 051DD8 7F01D2A8 27BD0010 */ addiu $sp, $sp, 0x10 +) +#endif + + diff --git a/src/game/bond.c b/src/game/bond.c new file mode 100644 index 0000000..f96494f --- /dev/null +++ b/src/game/bond.c @@ -0,0 +1,35351 @@ +#include "ultra64.h" +#include "game/bond.h" +#include "game/chr.h" +#include "game/unk_093880.h" +#include "game/textrelated.h" +#include "game/lvl.h" +#include "game/bondinv.h" +#include "game/bondwalk.h" + +// bss +//CODE.bss:80079940 +f32 flt_CODE_bss_80079940; +//CODE.bss:80079944 +f32 flt_CODE_bss_80079944; +//CODE.bss:80079948 +f32 flt_CODE_bss_80079948; +//CODE.bss:8007994C +f32 flt_CODE_bss_8007994C; +//CODE.bss:80079950 +f32 flt_CODE_bss_80079950; +//CODE.bss:80079954 +f32 flt_CODE_bss_80079954; +//CODE.bss:80079958 +f32 flt_CODE_bss_80079958; +//CODE.bss:8007995C +f32 flt_CODE_bss_8007995C; +//CODE.bss:80079960 +f32 flt_CODE_bss_80079960; +//CODE.bss:80079964 +f32 flt_CODE_bss_80079964; +//CODE.bss:80079968 +f32 flt_CODE_bss_80079968; +//CODE.bss:8007996C +f32 flt_CODE_bss_8007996C; +//CODE.bss:80079970 +f32 flt_CODE_bss_80079970; +//CODE.bss:80079974 +f32 flt_CODE_bss_80079974; +//CODE.bss:80079978 +f32 flt_CODE_bss_80079978; +//CODE.bss:8007997C +f32 flt_CODE_bss_8007997C; +//CODE.bss:80079980 +f32 flt_CODE_bss_80079980; +//CODE.bss:80079984 +f32 flt_CODE_bss_80079984; +//CODE.bss:80079988 +f32 flt_CODE_bss_80079988; +//CODE.bss:8007998C +f32 flt_CODE_bss_8007998C; +//CODE.bss:80079990 +f32 flt_CODE_bss_80079990; +//CODE.bss:80079994 +f32 flt_CODE_bss_80079994; +//CODE.bss:80079998 +f32 flt_CODE_bss_80079998; +//CODE.bss:8007999C +s32 dword_CODE_bss_8007999C; +//CODE.bss:800799A0 +s32 dword_CODE_bss_800799A0; +//CODE.bss:800799A4 +s32 dword_CODE_bss_800799A4; +//CODE.bss:800799A8 +f32 flt_CODE_bss_800799A8; +//CODE.bss:800799AC +f32 flt_CODE_bss_800799AC; +//CODE.bss:800799B0 +f32 flt_CODE_bss_800799B0; +//CODE.bss:800799B4 +s32 dword_CODE_bss_800799B4; +//CODE.bss:800799B8 +s32 dword_CODE_bss_800799B8; +//CODE.bss:800799BC +f32 flt_CODE_bss_800799BC; +//CODE.bss:800799C0 +f32 flt_CODE_bss_800799C0; +//CODE.bss:800799C4 +f32 flt_CODE_bss_800799C4; +//CODE.bss:800799C8 +f32 flt_CODE_bss_800799C8; +//CODE.bss:800799CC +f32 flt_CODE_bss_800799CC; +//CODE.bss:800799D0 +f32 flt_CODE_bss_800799D0; +//CODE.bss:800799D4 +f32 flt_CODE_bss_800799D4; +//CODE.bss:800799D8 +f32 flt_CODE_bss_800799D8; +//CODE.bss:800799DC +f32 flt_CODE_bss_800799DC; +//CODE.bss:800799E0 +s32 starting_right_weapon; +//CODE.bss:800799E4 +s32 starting_left_weapon; +//CODE.bss:800799E8 +f32 flt_CODE_bss_800799E8; +//CODE.bss:800799EC +f32 flt_CODE_bss_800799EC; +//CODE.bss:800799F0 +f32 flt_CODE_bss_800799F0; +//CODE.bss:800799F4 +s32 dword_CODE_bss_800799F4; +//CODE.bss:800799F8 +s32 dword_CODE_bss_800799F8; +//CODE.bss:800799FC +s32 dword_CODE_bss_800799FC; +//CODE.bss:80079A00 +f32 flt_CODE_bss_80079A00; +//CODE.bss:80079A04 +f32 flt_CODE_bss_80079A04; +//CODE.bss:80079A08 +f32 flt_CODE_bss_80079A08; +//CODE.bss:80079A0C +f32 flt_CODE_bss_80079A0C; +//CODE.bss:80079A10 +f32 flt_CODE_bss_80079A10; +//CODE.bss:80079A14 +s32 dword_CODE_bss_80079A14; +//CODE.bss:80079A18 +s32 dword_CODE_bss_80079A18; +//CODE.bss:80079A1C +s32 dword_CODE_bss_80079A1C; +//CODE.bss:80079A20 +s32 mission_timer; +//CODE.bss:80079A24 +f32 watch_time_0; +//CODE.bss:80079A28 +char dword_CODE_bss_80079A28[0x200]; +#ifdef VERSION_JP +//CODE.bss:80079Cd8 +char dword_CODE_bss_jp80079Cd8[0x30]; +#endif +//CODE.bss:80079C28 +char dword_CODE_bss_80079C28[0x40]; +//CODE.bss:80079C68 +s32 dword_CODE_bss_80079C68; +//CODE.bss:80079C6C +s32 dword_CODE_bss_80079C6C; +//CODE.bss:80079C70 +char dword_CODE_bss_80079C70[0x130]; +//CODE.bss:80079DA0 +s32 dword_CODE_bss_80079DA0; +//CODE.bss:80079DA4 +s32 dword_CODE_bss_80079DA4; +//CODE.bss:80079DA8 +char dword_CODE_bss_80079DA8[0x20]; +//CODE.bss:80079DC8 +char dword_CODE_bss_80079DC8[0x3C]; +//CODE.bss:80079E04 +s32 flt_CODE_bss_80079E04; +//CODE.bss:80079E08 +s32 flt_CODE_bss_80079E08; +//CODE.bss:80079E0C +s32 flt_CODE_bss_80079E0C; +//CODE.bss:80079E10 +s32 flt_CODE_bss_80079E10; + + +// data +//D:80036420 +s32 D_80036420 = 0; +//D:80036424 +s32 camera_80036424 = 0; +//D:80036428 +s32 resolution = 0; +//D:8003642C +s32 camera_8003642C = 0; +//D:80036430 +s32 camera_80036430 = 0; +//D:80036434 +s32 camera_80036434 = 0; +//D:80036438 +s32 camera_80036438 = 0; +//D:8003643C +s32 D_8003643C = 0; +//D:80036440 +s32 D_80036440 = 0; +//D:80036444 +s32 D_80036444 = 0; +//D:80036448 +s32 in_tank_flag = 0; +//D:8003644C +s32 D_8003644C = 0; +//D:80036450 +s32 ptr_playerstank = 0; +//D:80036454 +s32 D_80036454 = 0; +//D:80036458 +s32 SFX_80036458 = 0; +//D:8003645C +s32 SFX_8003645C = 0; +//D:80036460 +s32 D_80036460 = 0; +//D:80036464 +s32 D_80036464 = 0; +//D:80036468 +s32 D_80036468 = 0; +//D:8003646C +s32 D_8003646C = 0; +//D:80036470 +s32 D_80036470 = 0; +//D:80036474 +s32 D_80036474 = 0; +//D:80036478 +s32 D_80036478 = 0; +//D:8003647C +s32 D_8003647C = 0; +//D:80036480 +s32 D_80036480 = 0; +//D:80036484 +s32 D_80036484 = 0; +//D:80036488 +s32 D_80036488 = 0; +//D:8003648C +s32 D_8003648C = 0; +//D:80036490 +s32 D_80036490 = 0; +//D:80036494 +s32 cameramode = 0; +//D:80036498 +s32 enable_move_after_cinema = 0; +//D:8003649C +s32 D_8003649C = 0; +//D:800364A0 +s32 stop_time_flag = 0; +//D:800364A4 +s32 D_800364A4 = 0; +//D:800364A8 +s32 D_800364A8 = 1; +//D:800364AC +s32 D_800364AC = 0; +//D:800364B0 +s32 D_800364B0 = 1; +//D:800364B4 +s32 disable_player_pickups_flag = 0; +//D:800364B8 +s32 D_800364B8 = 0; +//D:800364BC +s32 D_800364BC = 0; +//D:800364C0 +s32 ptr_random06cam_entry = 0; +//D:800364C4 +s32 invisible_to_guards_flag = 1; +//D:800364C8 +s32 obj_collision_flag = 1; +//D:800364CC +f32 D_800364CC = 1.0; +//D:800364D0 +f32 D_800364D0 = 1.0; +//D:800364D4 +f32 D_800364D4 = 1.0; +//D:800364D8 +s32 D_800364D8[] = { + 0x30B8, 0x31DC, 0x32C8, 0x33AC, 0x34D4, 0x35C8, 0x36D8, 0x384C, 0x39C0, 0x3AF0, 0x3C10, 0x3D04, 0 +}; + +//D:8003650C +s32 D_8003650C = 0; +//D:80036510 +s32 D_80036510 = 0; +//D:80036514 +s32 D_80036514 = 0; + +//D:80036518 +struct struct_4 stage_intro_anim_table[] = { + {0x5744, 95.0, -1.0, 0.02}, + {0x6254, 7.0, 40.0, 0.5}, + {0x78C8, 0.0, -1.0, 0.5}, + {0x7AA8, 0.0, -1.0, 0.5}, + {0x7C4C, 0.0, -1.0, 0.5}, + {0x7D04, 0.0, -1.0, 0.5}, + {0x7F0C, 0.0, -1.0, 0.5}, + {0x7FB4, 0.0, -1.0, 0.5}, + {0xD89C, 0.0, -1.0, 0.5} +}; + +//D:800365A8 +f32 watch_transition_time = 0.90909088; + +//D:800365AC +u32 dummy_08_pp7_obj[] = { + 0x01000008, 0x00bf4000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x3f800000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x3f800000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x3f800000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x3f800000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x447a0000, 0xffffff00, 0xffffff00, + 0x04ffffff +}; +//D:80036630 +u32 D_80036630 = 0; +#ifdef VERSION_US +//D:80036634 +u32 D_80036634[] = { + 0x0, 0xA, 0x3C, 0x3F19999A, + 0x0, 0x5, 0x28, 0x3F800000, + 0xFF, 0xFF, 0xFF, + 0x0, 0xA, 0x3C, 0x3F19999A, + 0x0, 0x5, 0x28, 0x3F800000, + 0xFF, 0xFF, 0xFF, + 0x0, 0xA, 0x32, 0x3F19999A, + 0x0, 0x5, 0x1E, 0x3F4CCCCD, + 0xFF, 0xFF, 0xFF, + 0x0, 0xA, 0x28, 0x3F19999A, + 0x0, 0x5, 0x19, 0x3F19999A, + 0xFF, 0xFF, 0xFF, + 0x0, 0xA, 0x23, 0x3F19999A, + 0x0, 0x5, 0x16, 0x3F0CCCCD, + 0xFF, 0xFF, 0xFF, + 0x0, 0xA, 0x1E, 0x3F19999A, + 0x0, 0x5, 0x13, 0x3F000000, + 0xFF, 0xFF, 0xFF, + 0x0, 0xA, 0x1E, 0x3F19999A, + 0x0, 0x5, 0x11, 0x3EE66666, + 0xFF, 0xFF, 0xFF, + 0x0, 0xA, 0x1E, 0x3F19999A, + 0x0, 0x5, 0xF, 0x3ECCCCCD, + 0xFF, 0xFF, 0xFF +}; +#endif +#ifdef VERSION_JP +//D:80036634 +u32 D_80036634[] = { + 0x0, 0x41200000, 0x42700000, 0x3F19999A, + 0x0, 0x40A00000, 0x42200000, 0x3F800000, + 0xFF, 0xFF, 0xFF, + 0x0, 0x41200000, 0x42700000, 0x3F19999A, + 0x0, 0x40A00000, 0x42200000, 0x3F800000, + 0xFF, 0xFF, 0xFF, + 0x0, 0x41200000, 0x42480000, 0x3F19999A, + 0x0, 0x40A00000, 0x41F00000, 0x3F4CCCCD, + 0xFF, 0xFF, 0xFF, + 0x0, 0x41200000, 0x42200000, 0x3F19999A, + 0x0, 0x40A00000, 0x41C80000, 0x3F19999A, + 0xFF, 0xFF, 0xFF, + 0x0, 0x41200000, 0x420C0000, 0x3F19999A, + 0x0, 0x40A00000, 0x41B00000, 0x3F0CCCCD, + 0xFF, 0xFF, 0xFF, + 0x0, 0x41200000, 0x41F00000, 0x3F19999A, + 0x0, 0x40A00000, 0x41980000, 0x3F000000, + 0xFF, 0xFF, 0xFF, + 0x0, 0x41200000, 0x41F00000, 0x3F19999A, + 0x0, 0x40A00000, 0x41880000, 0x3EE66666, + 0xFF, 0xFF, 0xFF, + 0x0, 0x41200000, 0x41F00000, 0x3F19999A, + 0x0, 0x40A00000, 0x41700000, 0x3ECCCCCD, + 0xFF, 0xFF, 0xFF +}; +#endif +//D:80036794 +u32 D_80036794 = 0; +//D:80036798 +u32 D_80036798 = 0x00000028; + +u32 D_8003679C[] = { + 0x00000064, 0x00000000, 0x0000001E, 0x00000050, + 0x00000000, 0x00000014, 0x0000003C, 0x00000000, + 0x00000014, 0x0000003C, 0x00000000, 0x00000014, + 0x0000003C, 0x00000000, 0x00000014, 0x00000032, + 0x00000000, 0x00000014, 0x00000032, 0x00000000, + 0x00000014, 0x00000032 +}; + +//D:800367F4 +s32 D_800367F4 = 0; +//D:800367F8 +s32 D_800367F8 = 0; +//D:800367FC +s32 D_800367FC = 0; +//D:80036800 +s32 D_80036800 = 0; +//D:80036804 +s32 D_80036804 = 0; +//D:80036808 +s32 D_80036808 = 0; +//D:8003680C +s32 D_8003680C = 0; +//D:80036810 +s32 D_80036810 = 0; +//D:80036814 +s32 D_80036814 = 0x3F800000; +//D:80036818 +s32 D_80036818 = 0; +//D:8003681C +s32 D_8003681C = 0x3F800000; +//D:80036820 +s32 D_80036820 = 0; +//D:80036824 +s32 D_80036824 = 0; +//D:80036828 +s32 D_80036828 = 0; +//D:8003682C +s32 D_8003682C = 0; +//D:80036830 +s32 D_80036830 = 0; +//D:80036834 +s32 D_80036834 = 0; +//D:80036838 +s32 D_80036838 = 0; +//D:8003683C +s32 D_8003683C[] = {0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:80036878 +s32 D_80036878 = 0; +//D:8003687C +s32 D_8003687C = 0; + +//D:80036880 +s32 D_80036880 = 0; +//D:80036884 +s32 D_80036884 = 0; +//D:80036888 +s32 D_80036888 = 0; + +//D:8003688C +s32 D_8003688C = 0; +//D:80036890 +s32 D_80036890 = 0; +//D:80036894 +s32 D_80036894 = 0; +//D:80036898 +s32 status_bar_text_buffer_index = 0; +//D:8003689C +s32 display_statusbar = 0; +#ifndef VERSION_JP +//D:800368A0 +s32 copy_1stfonttable = 0; +//D:800368A4 +s32 copy_2ndfonttable = 0; +#endif +//D:800368A8 +s32 upper_text_buffer_index = 0; +//D:800368AC +s32 display_upper_text_window = 0; +//D:800368B0 +s32 upper_text_window_timer = 0xFFFFFFFF; +s32 D_800368B4 = 0; +//D:800368B8 +u16 D_800368B8[] = {0x6E00, 0x006E, 0x6500, 0x6500, 0x73, 0x6500, 0x7300, 0x0073, 0x7700, 0x7700, 0x6E, 0x7700, 0x6E00, 0x0000, 0x0000, 0x0000}; + +//D:800368D8 +struct firing_anim_struct firing_animation_groups[] = { + {pistol_firing_animation_group1, 0, 0.1, 79.0, 87.0}, + {&D_800306F0, 0, 0.5, 0.0, -1.0}, + {&D_80030738, 0, 0.5, 0.0, -1.0}, + {&D_800308A0, 0, 0.5, 0.0, -1.0}, + {&D_800308E8, 0, 0.5, 0.0, -1.0}, + {crouched_pistol_firing_animation_group1, 0, 0.1, 56.0, 68.0}, + {rifle_firing_animation_group1, 0, 0.050000001, 35.0, 40.0}, + {&D_80030660, 0, 0.5, 0.0, -1.0}, + {&D_800306A8, 0, 0.5, 0.0, -1.0}, + {&D_800308A0, 0, 0.5, 0.0, -1.0}, + {&D_800308E8, 0, 0.5, 0.0, -1.0}, + {crouched_rifle_firing_animation_groupA, 0, 0.1, 45.0, 55.0}, + {NULL, 0x8194, 0.25, 0.0, -1.0}, + {NULL, 0x8204, 0.5, 0.0, -1.0}, + {NULL, 0x777C, 0.5, 0.0, -1.0}, + {&D_800308A0, 0, 0.5, 0.0, -1.0}, + {&D_800308E8, 0, 0.5, 0.0, -1.0}, + {NULL, 0x6C18, 0.050000001, 28.0, 29.0}, + {doubles_firing_animation_group1, 0, 0.1, 32.0, 42.0}, + {&D_80030780, 0, 0.5, 0.0, -1.0}, + {&D_800307C8, 0, 0.5, 0.0, -1.0}, + {&D_800308A0, 0, 0.5, 0.0, -1.0}, + {&D_800308A0, 0, 0.5, 0.0, -1.0}, + {crouched_doubles_firing_animation_group1, 0, 0.1, 37.0, 47.0} +}; + +//D:80036AB8 +s32 D_80036AB8 = 2; +//D:80036ABC +s32 D_80036ABC = 0xFFFFFFFF; +//D:80036AC0 +f32 D_80036AC0 = 1.0; +//D:80036AC4 +f32 D_80036AC4 = 0.1; + +void nullsub_75(void) +{ + return; +} + +void set_BONDdata_screensize(f32 width, f32 height) +{ + pPlayer->c_screenwidth = width; + pPlayer->c_screenheight = height; + pPlayer->c_halfwidth = (f32) (width * 0.5f); + pPlayer->c_halfheight = (f32) (height * 0.5f); +} + +void *set_ulx_uly(f32 ulx, f32 uly) +{ + pPlayer->c_screenleft = ulx; + pPlayer->c_screentop = uly; +} + +void sub_GAME_7F077C30(f32 arg0, f32 arg1, f32 arg2) +{ + pPlayer->c_perspnear = arg0; + pPlayer->c_perspfovy = arg1; + pPlayer->c_perspaspect = arg2; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F077C5C(void) +{ + f32 sp34; + f32 sp30; + f32 sp2C; + f32 temp_f14; + f32 temp_f16; + f32 temp_f2; + f32 temp_f2_2; + f32 temp_f2_3; + + sp2C = sinf((pPlayer->c_perspfovy * D_80054FA0) / 360.0f); + pPlayer->c_scaley = (f32) (sp2C / (cosf((pPlayer->c_perspfovy * D_80054FA0) / 360.0f) * pPlayer->c_halfheight)); + pPlayer->c_scalex = (f32) (((pPlayer->c_scaley * pPlayer->c_perspaspect) * pPlayer->c_halfheight) / pPlayer->c_halfwidth); + pPlayer->c_recipscalex = (f32) (1.0f / pPlayer->c_scalex); + pPlayer->c_recipscaley = (f32) (1.0f / pPlayer->c_scaley); + pPlayer->c_scalelod = (f32) pPlayer->c_scaley; + sp2C = sinf(D_80054FA4); + pPlayer->c_scalelod60 = (f32) (sp2C / (cosf(D_80054FA8) * 120.0f)); + pPlayer->c_lodscalez = (f32) (pPlayer->c_scalelod / pPlayer->c_scalelod60); + temp_f2 = pPlayer->c_lodscalez * 65536.0f; + if (4294967296.0f < temp_f2) + { + pPlayer->c_lodscalezu32 = -1U; + } + else + { + pPlayer->c_lodscalezu32 = (u32) temp_f2; + } + temp_f14 = pPlayer->c_halfheight * pPlayer->c_scaley; + sp30 = temp_f14; + temp_f2_2 = 1.0f / sqrtf((temp_f14 * temp_f14) + 1.0f, temp_f14); + (pPlayer->c_cameratopnorm).x = 0.0f; + (pPlayer->c_cameratopnorm).y = temp_f2_2; + (pPlayer->c_cameratopnorm).z = (f32) (temp_f14 * temp_f2_2); + temp_f16 = -pPlayer->c_halfwidth * pPlayer->c_scalex; + sp34 = temp_f16; + temp_f2_3 = 1.0f / sqrtf((temp_f16 * temp_f16) + 1.0f, temp_f14); + (pPlayer->c_cameraleftnorm).x = (f32) -temp_f2_3; + (pPlayer->c_cameraleftnorm).y = 0.0f; + (pPlayer->c_cameraleftnorm).z = (f32) (-temp_f16 * temp_f2_3); +} + +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054FA0 +.word 0x40490fdb /*3.1415927*/ +glabel D_80054FA4 +.word 0x3f060a92 /*0.52359879*/ +glabel D_80054FA8 +.word 0x3f060a92 /*0.52359879*/ +.text +glabel sub_GAME_7F077C5C +/* 0AC78C 7F077C5C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0AC790 7F077C60 AFB00020 */ sw $s0, 0x20($sp) +/* 0AC794 7F077C64 3C108008 */ lui $s0, %hi(pPlayer) +/* 0AC798 7F077C68 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0AC79C 7F077C6C 8E0E0000 */ lw $t6, ($s0) +/* 0AC7A0 7F077C70 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0AC7A4 7F077C74 AFBF0024 */ sw $ra, 0x24($sp) +/* 0AC7A8 7F077C78 3C018005 */ lui $at, %hi(D_80054FA0) +/* 0AC7AC 7F077C7C C4344FA0 */ lwc1 $f20, %lo(D_80054FA0)($at) +/* 0AC7B0 7F077C80 C5C410A4 */ lwc1 $f4, 0x10a4($t6) +/* 0AC7B4 7F077C84 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0AC7B8 7F077C88 44814000 */ mtc1 $at, $f8 +/* 0AC7BC 7F077C8C 46142182 */ mul.s $f6, $f4, $f20 +/* 0AC7C0 7F077C90 0FC15FAB */ jal sinf +/* 0AC7C4 7F077C94 46083303 */ div.s $f12, $f6, $f8 +/* 0AC7C8 7F077C98 8E0F0000 */ lw $t7, ($s0) +/* 0AC7CC 7F077C9C E7A0002C */ swc1 $f0, 0x2c($sp) +/* 0AC7D0 7F077CA0 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0AC7D4 7F077CA4 C5EA10A4 */ lwc1 $f10, 0x10a4($t7) +/* 0AC7D8 7F077CA8 44812000 */ mtc1 $at, $f4 +/* 0AC7DC 7F077CAC 46145482 */ mul.s $f18, $f10, $f20 +/* 0AC7E0 7F077CB0 0FC15FA8 */ jal cosf +/* 0AC7E4 7F077CB4 46049303 */ div.s $f12, $f18, $f4 +/* 0AC7E8 7F077CB8 8E020000 */ lw $v0, ($s0) +/* 0AC7EC 7F077CBC C7A6002C */ lwc1 $f6, 0x2c($sp) +/* 0AC7F0 7F077CC0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AC7F4 7F077CC4 C44810B0 */ lwc1 $f8, 0x10b0($v0) +/* 0AC7F8 7F077CC8 4481A000 */ mtc1 $at, $f20 +/* 0AC7FC 7F077CCC 3C018005 */ lui $at, %hi(D_80054FA4) +/* 0AC800 7F077CD0 46080282 */ mul.s $f10, $f0, $f8 +/* 0AC804 7F077CD4 460A3483 */ div.s $f18, $f6, $f10 +/* 0AC808 7F077CD8 E45210B8 */ swc1 $f18, 0x10b8($v0) +/* 0AC80C 7F077CDC 8E020000 */ lw $v0, ($s0) +/* 0AC810 7F077CE0 C44410B8 */ lwc1 $f4, 0x10b8($v0) +/* 0AC814 7F077CE4 C44810A8 */ lwc1 $f8, 0x10a8($v0) +/* 0AC818 7F077CE8 C44A10B0 */ lwc1 $f10, 0x10b0($v0) +/* 0AC81C 7F077CEC 46082182 */ mul.s $f6, $f4, $f8 +/* 0AC820 7F077CF0 C44410AC */ lwc1 $f4, 0x10ac($v0) +/* 0AC824 7F077CF4 460A3482 */ mul.s $f18, $f6, $f10 +/* 0AC828 7F077CF8 46049203 */ div.s $f8, $f18, $f4 +/* 0AC82C 7F077CFC E44810B4 */ swc1 $f8, 0x10b4($v0) +/* 0AC830 7F077D00 8E020000 */ lw $v0, ($s0) +/* 0AC834 7F077D04 C44610B4 */ lwc1 $f6, 0x10b4($v0) +/* 0AC838 7F077D08 4606A283 */ div.s $f10, $f20, $f6 +/* 0AC83C 7F077D0C E44A10BC */ swc1 $f10, 0x10bc($v0) +/* 0AC840 7F077D10 8E020000 */ lw $v0, ($s0) +/* 0AC844 7F077D14 C45210B8 */ lwc1 $f18, 0x10b8($v0) +/* 0AC848 7F077D18 4612A103 */ div.s $f4, $f20, $f18 +/* 0AC84C 7F077D1C E44410C0 */ swc1 $f4, 0x10c0($v0) +/* 0AC850 7F077D20 8E020000 */ lw $v0, ($s0) +/* 0AC854 7F077D24 C44810B8 */ lwc1 $f8, 0x10b8($v0) +/* 0AC858 7F077D28 E44810F4 */ swc1 $f8, 0x10f4($v0) +/* 0AC85C 7F077D2C 0FC15FAB */ jal sinf +/* 0AC860 7F077D30 C42C4FA4 */ lwc1 $f12, %lo(D_80054FA4)($at) +/* 0AC864 7F077D34 3C018005 */ lui $at, %hi(D_80054FA8) +/* 0AC868 7F077D38 C42C4FA8 */ lwc1 $f12, %lo(D_80054FA8)($at) +/* 0AC86C 7F077D3C 0FC15FA8 */ jal cosf +/* 0AC870 7F077D40 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 0AC874 7F077D44 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 0AC878 7F077D48 44815000 */ mtc1 $at, $f10 +/* 0AC87C 7F077D4C C7A6002C */ lwc1 $f6, 0x2c($sp) +/* 0AC880 7F077D50 8E180000 */ lw $t8, ($s0) +/* 0AC884 7F077D54 460A0482 */ mul.s $f18, $f0, $f10 +/* 0AC888 7F077D58 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0AC88C 7F077D5C 2419FFFF */ li $t9, -1 +/* 0AC890 7F077D60 24090001 */ li $t1, 1 +/* 0AC894 7F077D64 46123103 */ div.s $f4, $f6, $f18 +/* 0AC898 7F077D68 E70410F0 */ swc1 $f4, 0x10f0($t8) +/* 0AC89C 7F077D6C 8E020000 */ lw $v0, ($s0) +/* 0AC8A0 7F077D70 44812000 */ mtc1 $at, $f4 +/* 0AC8A4 7F077D74 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0AC8A8 7F077D78 C44810F4 */ lwc1 $f8, 0x10f4($v0) +/* 0AC8AC 7F077D7C C44A10F0 */ lwc1 $f10, 0x10f0($v0) +/* 0AC8B0 7F077D80 460A4183 */ div.s $f6, $f8, $f10 +/* 0AC8B4 7F077D84 44814000 */ mtc1 $at, $f8 +/* 0AC8B8 7F077D88 E44610F8 */ swc1 $f6, 0x10f8($v0) +/* 0AC8BC 7F077D8C 8E020000 */ lw $v0, ($s0) +/* 0AC8C0 7F077D90 C45210F8 */ lwc1 $f18, 0x10f8($v0) +/* 0AC8C4 7F077D94 46049082 */ mul.s $f2, $f18, $f4 +/* 0AC8C8 7F077D98 4602403C */ c.lt.s $f8, $f2 +/* 0AC8CC 7F077D9C 00000000 */ nop +/* 0AC8D0 7F077DA0 45020004 */ bc1fl .L7F077DB4 +/* 0AC8D4 7F077DA4 4448F800 */ cfc1 $t0, $31 +/* 0AC8D8 7F077DA8 10000022 */ b .L7F077E34 +/* 0AC8DC 7F077DAC AC5910FC */ sw $t9, 0x10fc($v0) +/* 0AC8E0 7F077DB0 4448F800 */ cfc1 $t0, $31 +.L7F077DB4: +/* 0AC8E4 7F077DB4 44C9F800 */ ctc1 $t1, $31 +/* 0AC8E8 7F077DB8 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0AC8EC 7F077DBC 460012A4 */ cvt.w.s $f10, $f2 +/* 0AC8F0 7F077DC0 4449F800 */ cfc1 $t1, $31 +/* 0AC8F4 7F077DC4 00000000 */ nop +/* 0AC8F8 7F077DC8 31290078 */ andi $t1, $t1, 0x78 +/* 0AC8FC 7F077DCC 51200013 */ beql $t1, $zero, .L7F077E1C +/* 0AC900 7F077DD0 44095000 */ mfc1 $t1, $f10 +/* 0AC904 7F077DD4 44815000 */ mtc1 $at, $f10 +/* 0AC908 7F077DD8 24090001 */ li $t1, 1 +/* 0AC90C 7F077DDC 460A1281 */ sub.s $f10, $f2, $f10 +/* 0AC910 7F077DE0 44C9F800 */ ctc1 $t1, $31 +/* 0AC914 7F077DE4 00000000 */ nop +/* 0AC918 7F077DE8 460052A4 */ cvt.w.s $f10, $f10 +/* 0AC91C 7F077DEC 4449F800 */ cfc1 $t1, $31 +/* 0AC920 7F077DF0 00000000 */ nop +/* 0AC924 7F077DF4 31290078 */ andi $t1, $t1, 0x78 +/* 0AC928 7F077DF8 15200005 */ bnez $t1, .L7F077E10 +/* 0AC92C 7F077DFC 00000000 */ nop +/* 0AC930 7F077E00 44095000 */ mfc1 $t1, $f10 +/* 0AC934 7F077E04 3C018000 */ lui $at, 0x8000 +/* 0AC938 7F077E08 10000007 */ b .L7F077E28 +/* 0AC93C 7F077E0C 01214825 */ or $t1, $t1, $at +.L7F077E10: +/* 0AC940 7F077E10 10000005 */ b .L7F077E28 +/* 0AC944 7F077E14 2409FFFF */ li $t1, -1 +/* 0AC948 7F077E18 44095000 */ mfc1 $t1, $f10 +.L7F077E1C: +/* 0AC94C 7F077E1C 00000000 */ nop +/* 0AC950 7F077E20 0520FFFB */ bltz $t1, .L7F077E10 +/* 0AC954 7F077E24 00000000 */ nop +.L7F077E28: +/* 0AC958 7F077E28 44C8F800 */ ctc1 $t0, $31 +/* 0AC95C 7F077E2C AC4910FC */ sw $t1, 0x10fc($v0) +/* 0AC960 7F077E30 00000000 */ nop +.L7F077E34: +/* 0AC964 7F077E34 8E020000 */ lw $v0, ($s0) +/* 0AC968 7F077E38 C44610B0 */ lwc1 $f6, 0x10b0($v0) +/* 0AC96C 7F077E3C C45210B8 */ lwc1 $f18, 0x10b8($v0) +/* 0AC970 7F077E40 46123382 */ mul.s $f14, $f6, $f18 +/* 0AC974 7F077E44 00000000 */ nop +/* 0AC978 7F077E48 460E7102 */ mul.s $f4, $f14, $f14 +/* 0AC97C 7F077E4C E7AE0030 */ swc1 $f14, 0x30($sp) +/* 0AC980 7F077E50 0C007DF8 */ jal sqrtf +/* 0AC984 7F077E54 46142300 */ add.s $f12, $f4, $f20 +/* 0AC988 7F077E58 4600A083 */ div.s $f2, $f20, $f0 +/* 0AC98C 7F077E5C 44804000 */ mtc1 $zero, $f8 +/* 0AC990 7F077E60 8E0A0000 */ lw $t2, ($s0) +/* 0AC994 7F077E64 C7AE0030 */ lwc1 $f14, 0x30($sp) +/* 0AC998 7F077E68 E5481100 */ swc1 $f8, 0x1100($t2) +/* 0AC99C 7F077E6C 8E0B0000 */ lw $t3, ($s0) +/* 0AC9A0 7F077E70 46027282 */ mul.s $f10, $f14, $f2 +/* 0AC9A4 7F077E74 E5621104 */ swc1 $f2, 0x1104($t3) +/* 0AC9A8 7F077E78 8E0C0000 */ lw $t4, ($s0) +/* 0AC9AC 7F077E7C E58A1108 */ swc1 $f10, 0x1108($t4) +/* 0AC9B0 7F077E80 8E020000 */ lw $v0, ($s0) +/* 0AC9B4 7F077E84 C44610AC */ lwc1 $f6, 0x10ac($v0) +/* 0AC9B8 7F077E88 C44410B4 */ lwc1 $f4, 0x10b4($v0) +/* 0AC9BC 7F077E8C 46003487 */ neg.s $f18, $f6 +/* 0AC9C0 7F077E90 46049402 */ mul.s $f16, $f18, $f4 +/* 0AC9C4 7F077E94 00000000 */ nop +/* 0AC9C8 7F077E98 46108202 */ mul.s $f8, $f16, $f16 +/* 0AC9CC 7F077E9C E7B00034 */ swc1 $f16, 0x34($sp) +/* 0AC9D0 7F077EA0 0C007DF8 */ jal sqrtf +/* 0AC9D4 7F077EA4 46144300 */ add.s $f12, $f8, $f20 +/* 0AC9D8 7F077EA8 4600A083 */ div.s $f2, $f20, $f0 +/* 0AC9DC 7F077EAC C7B00034 */ lwc1 $f16, 0x34($sp) +/* 0AC9E0 7F077EB0 8E0D0000 */ lw $t5, ($s0) +/* 0AC9E4 7F077EB4 44803000 */ mtc1 $zero, $f6 +/* 0AC9E8 7F077EB8 46008487 */ neg.s $f18, $f16 +/* 0AC9EC 7F077EBC 46001287 */ neg.s $f10, $f2 +/* 0AC9F0 7F077EC0 46029102 */ mul.s $f4, $f18, $f2 +/* 0AC9F4 7F077EC4 E5AA110C */ swc1 $f10, 0x110c($t5) +/* 0AC9F8 7F077EC8 8E0E0000 */ lw $t6, ($s0) +/* 0AC9FC 7F077ECC E5C61110 */ swc1 $f6, 0x1110($t6) +/* 0ACA00 7F077ED0 8E0F0000 */ lw $t7, ($s0) +/* 0ACA04 7F077ED4 E5E41114 */ swc1 $f4, 0x1114($t7) +/* 0ACA08 7F077ED8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0ACA0C 7F077EDC 8FB00020 */ lw $s0, 0x20($sp) +/* 0ACA10 7F077EE0 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0ACA14 7F077EE4 03E00008 */ jr $ra +/* 0ACA18 7F077EE8 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F077EEC(void *arg0, void *arg1, f32 arg2) { + f32 sp20; + f32 temp_f14; + f32 temp_f16; + ? temp_ret; + f32 temp_f2; + + // Node 0 + temp_f14 = ((pPlayer->c_halfheight - (arg0->unk4 - pPlayer->c_screentop)) * pPlayer->c_scaley); + temp_f16 = (((*arg0 - pPlayer->c_screenleft) - pPlayer->c_halfwidth) * pPlayer->c_scalex); + sp20 = temp_f16; + temp_ret = sqrtf((((temp_f16 * temp_f16) + (temp_f14 * temp_f14)) + (-1.0f * -1.0f)), temp_f14); + temp_f2 = (arg2 / temp_ret); + *arg1 = (f32) (temp_f16 * temp_f2); + arg1->unk4 = (f32) (sp1C * temp_f2); + arg1->unk8 = (f32) (-1.0f * temp_f2); + return temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F077EEC +/* 0ACA1C 7F077EEC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0ACA20 7F077EF0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0ACA24 7F077EF4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0ACA28 7F077EF8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0ACA2C 7F077EFC AFA60030 */ sw $a2, 0x30($sp) +/* 0ACA30 7F077F00 C4840004 */ lwc1 $f4, 4($a0) +/* 0ACA34 7F077F04 C446109C */ lwc1 $f6, 0x109c($v0) +/* 0ACA38 7F077F08 C44A10B0 */ lwc1 $f10, 0x10b0($v0) +/* 0ACA3C 7F077F0C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0ACA40 7F077F10 46062201 */ sub.s $f8, $f4, $f6 +/* 0ACA44 7F077F14 C4860000 */ lwc1 $f6, ($a0) +/* 0ACA48 7F077F18 C44410B8 */ lwc1 $f4, 0x10b8($v0) +/* 0ACA4C 7F077F1C 44810000 */ mtc1 $at, $f0 +/* 0ACA50 7F077F20 46085481 */ sub.s $f18, $f10, $f8 +/* 0ACA54 7F077F24 C44A1098 */ lwc1 $f10, 0x1098($v0) +/* 0ACA58 7F077F28 46049382 */ mul.s $f14, $f18, $f4 +/* 0ACA5C 7F077F2C 460A3201 */ sub.s $f8, $f6, $f10 +/* 0ACA60 7F077F30 C45210AC */ lwc1 $f18, 0x10ac($v0) +/* 0ACA64 7F077F34 C44610B4 */ lwc1 $f6, 0x10b4($v0) +/* 0ACA68 7F077F38 AFA5002C */ sw $a1, 0x2c($sp) +/* 0ACA6C 7F077F3C 46124101 */ sub.s $f4, $f8, $f18 +/* 0ACA70 7F077F40 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 0ACA74 7F077F44 46062402 */ mul.s $f16, $f4, $f6 +/* 0ACA78 7F077F48 00000000 */ nop +/* 0ACA7C 7F077F4C 46108282 */ mul.s $f10, $f16, $f16 +/* 0ACA80 7F077F50 E7B00020 */ swc1 $f16, 0x20($sp) +/* 0ACA84 7F077F54 460E7202 */ mul.s $f8, $f14, $f14 +/* 0ACA88 7F077F58 46085480 */ add.s $f18, $f10, $f8 +/* 0ACA8C 7F077F5C 46000102 */ mul.s $f4, $f0, $f0 +/* 0ACA90 7F077F60 0C007DF8 */ jal sqrtf +/* 0ACA94 7F077F64 46049300 */ add.s $f12, $f18, $f4 +/* 0ACA98 7F077F68 C7A60030 */ lwc1 $f6, 0x30($sp) +/* 0ACA9C 7F077F6C C7B00020 */ lwc1 $f16, 0x20($sp) +/* 0ACAA0 7F077F70 C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 0ACAA4 7F077F74 46003083 */ div.s $f2, $f6, $f0 +/* 0ACAA8 7F077F78 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0ACAAC 7F077F7C 44819000 */ mtc1 $at, $f18 +/* 0ACAB0 7F077F80 8FA5002C */ lw $a1, 0x2c($sp) +/* 0ACAB4 7F077F84 46028282 */ mul.s $f10, $f16, $f2 +/* 0ACAB8 7F077F88 00000000 */ nop +/* 0ACABC 7F077F8C 46027202 */ mul.s $f8, $f14, $f2 +/* 0ACAC0 7F077F90 00000000 */ nop +/* 0ACAC4 7F077F94 46029102 */ mul.s $f4, $f18, $f2 +/* 0ACAC8 7F077F98 E4AA0000 */ swc1 $f10, ($a1) +/* 0ACACC 7F077F9C E4A80004 */ swc1 $f8, 4($a1) +/* 0ACAD0 7F077FA0 E4A40008 */ swc1 $f4, 8($a1) +/* 0ACAD4 7F077FA4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0ACAD8 7F077FA8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0ACADC 7F077FAC 03E00008 */ jr $ra +/* 0ACAE0 7F077FB0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F077FB4(void *arg0, s32 arg1, void *arg2) { + // Node 0 + arg2->unk4 = (f32) ((arg0->unk4 * arg1) * pPlayer->c_scaley); + *arg2 = (f32) ((*arg0 * arg1) * pPlayer->c_scalex); + return &pPlayer; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F077FB4 +/* 0ACAE4 7F077FB4 44856000 */ mtc1 $a1, $f12 +/* 0ACAE8 7F077FB8 C4840004 */ lwc1 $f4, 4($a0) +/* 0ACAEC 7F077FBC 3C028008 */ lui $v0, %hi(pPlayer) +/* 0ACAF0 7F077FC0 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0ACAF4 7F077FC4 460C2182 */ mul.s $f6, $f4, $f12 +/* 0ACAF8 7F077FC8 8C4E0000 */ lw $t6, ($v0) +/* 0ACAFC 7F077FCC C5C810B8 */ lwc1 $f8, 0x10b8($t6) +/* 0ACB00 7F077FD0 46083282 */ mul.s $f10, $f6, $f8 +/* 0ACB04 7F077FD4 E4CA0004 */ swc1 $f10, 4($a2) +/* 0ACB08 7F077FD8 C4900000 */ lwc1 $f16, ($a0) +/* 0ACB0C 7F077FDC 8C4F0000 */ lw $t7, ($v0) +/* 0ACB10 7F077FE0 460C8482 */ mul.s $f18, $f16, $f12 +/* 0ACB14 7F077FE4 C5E410B4 */ lwc1 $f4, 0x10b4($t7) +/* 0ACB18 7F077FE8 46049182 */ mul.s $f6, $f18, $f4 +/* 0ACB1C 7F077FEC 03E00008 */ jr $ra +/* 0ACB20 7F077FF0 E4C60000 */ swc1 $f6, ($a2) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F077FF4(void *arg0, void *arg1) { + f32 temp_f0; + + // Node 0 + temp_f0 = (1.0f / arg0->unk8); + arg1->unk4 = (f32) (((arg0->unk4 * temp_f0) * pPlayer->c_recipscaley) + (pPlayer->c_screentop + pPlayer->c_halfheight)); + *arg1 = (f32) ((pPlayer->c_screenleft + pPlayer->c_halfwidth) - ((*arg0 * temp_f0) * pPlayer->c_recipscalex)); + return pPlayer; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F077FF4 +/* 0ACB24 7F077FF4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0ACB28 7F077FF8 44812000 */ mtc1 $at, $f4 +/* 0ACB2C 7F077FFC C4860008 */ lwc1 $f6, 8($a0) +/* 0ACB30 7F078000 C4880004 */ lwc1 $f8, 4($a0) +/* 0ACB34 7F078004 3C038008 */ lui $v1, %hi(pPlayer) +/* 0ACB38 7F078008 46062003 */ div.s $f0, $f4, $f6 +/* 0ACB3C 7F07800C 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0ACB40 7F078010 8C620000 */ lw $v0, ($v1) +/* 0ACB44 7F078014 C45010C0 */ lwc1 $f16, 0x10c0($v0) +/* 0ACB48 7F078018 C444109C */ lwc1 $f4, 0x109c($v0) +/* 0ACB4C 7F07801C C44610B0 */ lwc1 $f6, 0x10b0($v0) +/* 0ACB50 7F078020 46004282 */ mul.s $f10, $f8, $f0 +/* 0ACB54 7F078024 46062200 */ add.s $f8, $f4, $f6 +/* 0ACB58 7F078028 46105482 */ mul.s $f18, $f10, $f16 +/* 0ACB5C 7F07802C 46089280 */ add.s $f10, $f18, $f8 +/* 0ACB60 7F078030 E4AA0004 */ swc1 $f10, 4($a1) +/* 0ACB64 7F078034 C4920000 */ lwc1 $f18, ($a0) +/* 0ACB68 7F078038 8C620000 */ lw $v0, ($v1) +/* 0ACB6C 7F07803C 46009202 */ mul.s $f8, $f18, $f0 +/* 0ACB70 7F078040 C4501098 */ lwc1 $f16, 0x1098($v0) +/* 0ACB74 7F078044 C44410AC */ lwc1 $f4, 0x10ac($v0) +/* 0ACB78 7F078048 C44A10BC */ lwc1 $f10, 0x10bc($v0) +/* 0ACB7C 7F07804C 46048180 */ add.s $f6, $f16, $f4 +/* 0ACB80 7F078050 460A4402 */ mul.s $f16, $f8, $f10 +/* 0ACB84 7F078054 46103101 */ sub.s $f4, $f6, $f16 +/* 0ACB88 7F078058 03E00008 */ jr $ra +/* 0ACB8C 7F07805C E4A40000 */ swc1 $f4, ($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F078060(void *arg0, void *arg1) { + f32 phi_f2; + + // Node 0 + if (0.0f == arg0->unk8) + { + // Node 1 + phi_f2 = *(void *)0x80050000; + } + else + { + // Node 2 + phi_f2 = (1.0f / arg0->unk8); + } + // Node 3 + arg1->unk4 = (f32) (((arg0->unk4 * phi_f2) * pPlayer->c_recipscaley) + (pPlayer->c_screentop + pPlayer->c_halfheight)); + *arg1 = (f32) ((pPlayer->c_screenleft + pPlayer->c_halfwidth) - ((*arg0 * phi_f2) * pPlayer->c_recipscalex)); + return pPlayer; +} + +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054FAC +.word 0xe0ad78ec /*-1.0e20*/ +.text +glabel sub_GAME_7F078060 +/* 0ACB90 7F078060 C4800008 */ lwc1 $f0, 8($a0) +/* 0ACB94 7F078064 44802000 */ mtc1 $zero, $f4 +/* 0ACB98 7F078068 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0ACB9C 7F07806C 46002032 */ c.eq.s $f4, $f0 +/* 0ACBA0 7F078070 00000000 */ nop +/* 0ACBA4 7F078074 45020005 */ bc1fl .L7F07808C +/* 0ACBA8 7F078078 44813000 */ mtc1 $at, $f6 +/* 0ACBAC 7F07807C 3C018005 */ lui $at, %hi(D_80054FAC) +/* 0ACBB0 7F078080 10000004 */ b .L7F078094 +/* 0ACBB4 7F078084 C4224FAC */ lwc1 $f2, %lo(D_80054FAC)($at) +/* 0ACBB8 7F078088 44813000 */ mtc1 $at, $f6 +.L7F07808C: +/* 0ACBBC 7F07808C 00000000 */ nop +/* 0ACBC0 7F078090 46003083 */ div.s $f2, $f6, $f0 +.L7F078094: +/* 0ACBC4 7F078094 C4880004 */ lwc1 $f8, 4($a0) +/* 0ACBC8 7F078098 3C038008 */ lui $v1, %hi(pPlayer) +/* 0ACBCC 7F07809C 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0ACBD0 7F0780A0 46024282 */ mul.s $f10, $f8, $f2 +/* 0ACBD4 7F0780A4 8C620000 */ lw $v0, ($v1) +/* 0ACBD8 7F0780A8 C45010C0 */ lwc1 $f16, 0x10c0($v0) +/* 0ACBDC 7F0780AC C444109C */ lwc1 $f4, 0x109c($v0) +/* 0ACBE0 7F0780B0 C44610B0 */ lwc1 $f6, 0x10b0($v0) +/* 0ACBE4 7F0780B4 46105482 */ mul.s $f18, $f10, $f16 +/* 0ACBE8 7F0780B8 46062200 */ add.s $f8, $f4, $f6 +/* 0ACBEC 7F0780BC 46089280 */ add.s $f10, $f18, $f8 +/* 0ACBF0 7F0780C0 E4AA0004 */ swc1 $f10, 4($a1) +/* 0ACBF4 7F0780C4 C4920000 */ lwc1 $f18, ($a0) +/* 0ACBF8 7F0780C8 8C620000 */ lw $v0, ($v1) +/* 0ACBFC 7F0780CC 46029202 */ mul.s $f8, $f18, $f2 +/* 0ACC00 7F0780D0 C4501098 */ lwc1 $f16, 0x1098($v0) +/* 0ACC04 7F0780D4 C44410AC */ lwc1 $f4, 0x10ac($v0) +/* 0ACC08 7F0780D8 C44A10BC */ lwc1 $f10, 0x10bc($v0) +/* 0ACC0C 7F0780DC 46048180 */ add.s $f6, $f16, $f4 +/* 0ACC10 7F0780E0 460A4402 */ mul.s $f16, $f8, $f10 +/* 0ACC14 7F0780E4 46103101 */ sub.s $f4, $f6, $f16 +/* 0ACC18 7F0780E8 03E00008 */ jr $ra +/* 0ACC1C 7F0780EC E4A40000 */ swc1 $f4, ($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0780F0(void *arg0, s32 arg1, void *arg2) { + f32 temp_f0; + + // Node 0 + temp_f0 = (1.0f / arg1); + arg2->unk4 = (f32) ((arg0->unk4 * temp_f0) * pPlayer->c_recipscaley); + *arg2 = (f32) ((*arg0 * temp_f0) * pPlayer->c_recipscalex); + return &pPlayer; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0780F0 +/* 0ACC20 7F0780F0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0ACC24 7F0780F4 44856000 */ mtc1 $a1, $f12 +/* 0ACC28 7F0780F8 44812000 */ mtc1 $at, $f4 +/* 0ACC2C 7F0780FC C4860004 */ lwc1 $f6, 4($a0) +/* 0ACC30 7F078100 3C028008 */ lui $v0, %hi(pPlayer) +/* 0ACC34 7F078104 460C2003 */ div.s $f0, $f4, $f12 +/* 0ACC38 7F078108 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0ACC3C 7F07810C 8C4E0000 */ lw $t6, ($v0) +/* 0ACC40 7F078110 C5CA10C0 */ lwc1 $f10, 0x10c0($t6) +/* 0ACC44 7F078114 46003202 */ mul.s $f8, $f6, $f0 +/* 0ACC48 7F078118 00000000 */ nop +/* 0ACC4C 7F07811C 460A4402 */ mul.s $f16, $f8, $f10 +/* 0ACC50 7F078120 E4D00004 */ swc1 $f16, 4($a2) +/* 0ACC54 7F078124 C4920000 */ lwc1 $f18, ($a0) +/* 0ACC58 7F078128 8C4F0000 */ lw $t7, ($v0) +/* 0ACC5C 7F07812C 46009102 */ mul.s $f4, $f18, $f0 +/* 0ACC60 7F078130 C5E610BC */ lwc1 $f6, 0x10bc($t7) +/* 0ACC64 7F078134 46062202 */ mul.s $f8, $f4, $f6 +/* 0ACC68 7F078138 03E00008 */ jr $ra +/* 0ACC6C 7F07813C E4C80000 */ swc1 $f8, ($a2) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F078140(void *arg0, void *arg1, f32 arg2, f32 arg3, f32 arg4) { + f32 sp1C; + f32 sp2C; + f32 sp30; + f32 temp_f14; + f32 temp_f4; + f32 temp_f8; + f32 temp_f2; + + // Node 0 + sp1C = sinf(((arg3 * *(void *)0x80050000) / 360.0f), arg3); + temp_f14 = (sp1C / (cosf(sp18) * pPlayer->c_halfheight)); + temp_f4 = ((pPlayer->c_halfheight - (arg0->unk4 - pPlayer->c_screentop)) * temp_f14); + sp2C = temp_f4; + temp_f8 = (((*arg0 - pPlayer->c_screenleft) - pPlayer->c_halfwidth) * (((temp_f14 * arg4) * pPlayer->c_halfheight) / pPlayer->c_halfwidth)); + sp30 = temp_f8; + temp_f2 = (arg2 / sqrtf((((temp_f8 * temp_f8) + (temp_f4 * temp_f4)) + (-1.0f * -1.0f)), temp_f14)); + *arg1 = (f32) (sp30 * temp_f2); + arg1->unk4 = (f32) (sp2C * temp_f2); + arg1->unk8 = (f32) (-1.0f * temp_f2); + return arg1; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054FB0 +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F078140 +/* 0ACC70 7F078140 3C018005 */ lui $at, %hi(D_80054FB0) +/* 0ACC74 7F078144 44877000 */ mtc1 $a3, $f14 +/* 0ACC78 7F078148 C4244FB0 */ lwc1 $f4, %lo(D_80054FB0)($at) +/* 0ACC7C 7F07814C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0ACC80 7F078150 44814000 */ mtc1 $at, $f8 +/* 0ACC84 7F078154 46047182 */ mul.s $f6, $f14, $f4 +/* 0ACC88 7F078158 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0ACC8C 7F07815C AFBF0014 */ sw $ra, 0x14($sp) +/* 0ACC90 7F078160 AFA40038 */ sw $a0, 0x38($sp) +/* 0ACC94 7F078164 AFA5003C */ sw $a1, 0x3c($sp) +/* 0ACC98 7F078168 AFA60040 */ sw $a2, 0x40($sp) +/* 0ACC9C 7F07816C 46083303 */ div.s $f12, $f6, $f8 +/* 0ACCA0 7F078170 0FC15FAB */ jal sinf +/* 0ACCA4 7F078174 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0ACCA8 7F078178 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 0ACCAC 7F07817C 0FC15FA8 */ jal cosf +/* 0ACCB0 7F078180 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0ACCB4 7F078184 3C028008 */ lui $v0, %hi(pPlayer) +/* 0ACCB8 7F078188 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0ACCBC 7F07818C C7AA001C */ lwc1 $f10, 0x1c($sp) +/* 0ACCC0 7F078190 C7A60048 */ lwc1 $f6, 0x48($sp) +/* 0ACCC4 7F078194 C44210B0 */ lwc1 $f2, 0x10b0($v0) +/* 0ACCC8 7F078198 8FA30038 */ lw $v1, 0x38($sp) +/* 0ACCCC 7F07819C C45010AC */ lwc1 $f16, 0x10ac($v0) +/* 0ACCD0 7F0781A0 46020102 */ mul.s $f4, $f0, $f2 +/* 0ACCD4 7F0781A4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0ACCD8 7F0781A8 46045383 */ div.s $f14, $f10, $f4 +/* 0ACCDC 7F0781AC C4640004 */ lwc1 $f4, 4($v1) +/* 0ACCE0 7F0781B0 46067202 */ mul.s $f8, $f14, $f6 +/* 0ACCE4 7F0781B4 C446109C */ lwc1 $f6, 0x109c($v0) +/* 0ACCE8 7F0781B8 46024282 */ mul.s $f10, $f8, $f2 +/* 0ACCEC 7F0781BC 46062201 */ sub.s $f8, $f4, $f6 +/* 0ACCF0 7F0781C0 46105483 */ div.s $f18, $f10, $f16 +/* 0ACCF4 7F0781C4 46081281 */ sub.s $f10, $f2, $f8 +/* 0ACCF8 7F0781C8 460E5102 */ mul.s $f4, $f10, $f14 +/* 0ACCFC 7F0781CC E7A4002C */ swc1 $f4, 0x2c($sp) +/* 0ACD00 7F0781D0 C4481098 */ lwc1 $f8, 0x1098($v0) +/* 0ACD04 7F0781D4 C4660000 */ lwc1 $f6, ($v1) +/* 0ACD08 7F0781D8 46083281 */ sub.s $f10, $f6, $f8 +/* 0ACD0C 7F0781DC 46105181 */ sub.s $f6, $f10, $f16 +/* 0ACD10 7F0781E0 46123202 */ mul.s $f8, $f6, $f18 +/* 0ACD14 7F0781E4 00000000 */ nop +/* 0ACD18 7F0781E8 46084282 */ mul.s $f10, $f8, $f8 +/* 0ACD1C 7F0781EC E7A80030 */ swc1 $f8, 0x30($sp) +/* 0ACD20 7F0781F0 46042182 */ mul.s $f6, $f4, $f4 +/* 0ACD24 7F0781F4 44812000 */ mtc1 $at, $f4 +/* 0ACD28 7F0781F8 46065200 */ add.s $f8, $f10, $f6 +/* 0ACD2C 7F0781FC 44815000 */ mtc1 $at, $f10 +/* 0ACD30 7F078200 00000000 */ nop +/* 0ACD34 7F078204 460A2182 */ mul.s $f6, $f4, $f10 +/* 0ACD38 7F078208 0C007DF8 */ jal sqrtf +/* 0ACD3C 7F07820C 46064300 */ add.s $f12, $f8, $f6 +/* 0ACD40 7F078210 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0ACD44 7F078214 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 0ACD48 7F078218 8FA2003C */ lw $v0, 0x3c($sp) +/* 0ACD4C 7F07821C 46002083 */ div.s $f2, $f4, $f0 +/* 0ACD50 7F078220 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0ACD54 7F078224 46025202 */ mul.s $f8, $f10, $f2 +/* 0ACD58 7F078228 44815000 */ mtc1 $at, $f10 +/* 0ACD5C 7F07822C E4480000 */ swc1 $f8, ($v0) +/* 0ACD60 7F078230 C7A6002C */ lwc1 $f6, 0x2c($sp) +/* 0ACD64 7F078234 46023102 */ mul.s $f4, $f6, $f2 +/* 0ACD68 7F078238 00000000 */ nop +/* 0ACD6C 7F07823C 46025202 */ mul.s $f8, $f10, $f2 +/* 0ACD70 7F078240 E4440004 */ swc1 $f4, 4($v0) +/* 0ACD74 7F078244 E4480008 */ swc1 $f8, 8($v0) +/* 0ACD78 7F078248 8FBF0014 */ lw $ra, 0x14($sp) +/* 0ACD7C 7F07824C 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0ACD80 7F078250 03E00008 */ jr $ra +/* 0ACD84 7F078254 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F078258(void *arg0, void *arg1, f32 arg2, f32 arg3) { + f32 sp20; + f32 temp_f12; + + // Node 0 + sp20 = cosf(((arg2 * D_80054FB4) / 360.0f), arg2); + temp_f12 = ((sp20 * pPlayer->c_halfheight) / (arg0->unk8 * sinf(sp1C))); + arg1->unk4 = (f32) ((arg0->unk4 * temp_f12) + (pPlayer->c_screentop + pPlayer->c_halfheight)); + *arg1 = (f32) ((pPlayer->c_screenleft + pPlayer->c_halfwidth) - (*arg0 * ((pPlayer->c_halfwidth * temp_f12) / (arg3 * pPlayer->c_halfheight)))); + return pPlayer; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054FB4 +.word 0x40490fdb /*3.1415927*/ +glabel D_80054FB8 +.word 0 +glabel D_80054FBC +.word 0 + +/*D:80054FC0*/ +glabel a8s +/*"%8s"*/ +.word 0x25387300 + +glabel aX4_0f +/*"x %4.0f"*/ +.word 0x78202534 +.word 0x2E306600 + +glabel aY4_0f +/*"y %4.0f"*/ +.word 0x79202534 +.word 0x2E306600 + +glabel aZ4_0f +/*"z %4.0f"*/ +.word 0x7A202534 +.word 0x2E306600 + +glabel aS3d +/*"%s %3d"*/ +.word 0x25732025 +.word 0x33640000 + +.text +glabel sub_GAME_7F078258 +/* 0ACD88 7F078258 3C018005 */ lui $at, %hi(D_80054FB4) +/* 0ACD8C 7F07825C 44867000 */ mtc1 $a2, $f14 +/* 0ACD90 7F078260 C4244FB4 */ lwc1 $f4, %lo(D_80054FB4)($at) +/* 0ACD94 7F078264 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0ACD98 7F078268 44814000 */ mtc1 $at, $f8 +/* 0ACD9C 7F07826C 46047182 */ mul.s $f6, $f14, $f4 +/* 0ACDA0 7F078270 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0ACDA4 7F078274 AFBF0014 */ sw $ra, 0x14($sp) +/* 0ACDA8 7F078278 AFA40030 */ sw $a0, 0x30($sp) +/* 0ACDAC 7F07827C AFA50034 */ sw $a1, 0x34($sp) +/* 0ACDB0 7F078280 AFA7003C */ sw $a3, 0x3c($sp) +/* 0ACDB4 7F078284 46083303 */ div.s $f12, $f6, $f8 +/* 0ACDB8 7F078288 0FC15FA8 */ jal cosf +/* 0ACDBC 7F07828C E7AC001C */ swc1 $f12, 0x1c($sp) +/* 0ACDC0 7F078290 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 0ACDC4 7F078294 0FC15FAB */ jal sinf +/* 0ACDC8 7F078298 E7A00020 */ swc1 $f0, 0x20($sp) +/* 0ACDCC 7F07829C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0ACDD0 7F0782A0 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0ACDD4 7F0782A4 8C620000 */ lw $v0, ($v1) +/* 0ACDD8 7F0782A8 8FA40030 */ lw $a0, 0x30($sp) +/* 0ACDDC 7F0782AC C7AA0020 */ lwc1 $f10, 0x20($sp) +/* 0ACDE0 7F0782B0 C44210B0 */ lwc1 $f2, 0x10b0($v0) +/* 0ACDE4 7F0782B4 C4920008 */ lwc1 $f18, 8($a0) +/* 0ACDE8 7F0782B8 C44610AC */ lwc1 $f6, 0x10ac($v0) +/* 0ACDEC 7F0782BC 46025402 */ mul.s $f16, $f10, $f2 +/* 0ACDF0 7F0782C0 C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 0ACDF4 7F0782C4 8FA50034 */ lw $a1, 0x34($sp) +/* 0ACDF8 7F0782C8 46009102 */ mul.s $f4, $f18, $f0 +/* 0ACDFC 7F0782CC 46048303 */ div.s $f12, $f16, $f4 +/* 0ACE00 7F0782D0 C4900004 */ lwc1 $f16, 4($a0) +/* 0ACE04 7F0782D4 460C3202 */ mul.s $f8, $f6, $f12 +/* 0ACE08 7F0782D8 C446109C */ lwc1 $f6, 0x109c($v0) +/* 0ACE0C 7F0782DC 46025482 */ mul.s $f18, $f10, $f2 +/* 0ACE10 7F0782E0 46023280 */ add.s $f10, $f6, $f2 +/* 0ACE14 7F0782E4 460C8102 */ mul.s $f4, $f16, $f12 +/* 0ACE18 7F0782E8 46124383 */ div.s $f14, $f8, $f18 +/* 0ACE1C 7F0782EC 460A2200 */ add.s $f8, $f4, $f10 +/* 0ACE20 7F0782F0 E4A80004 */ swc1 $f8, 4($a1) +/* 0ACE24 7F0782F4 8C620000 */ lw $v0, ($v1) +/* 0ACE28 7F0782F8 C4840000 */ lwc1 $f4, ($a0) +/* 0ACE2C 7F0782FC C4521098 */ lwc1 $f18, 0x1098($v0) +/* 0ACE30 7F078300 C45010AC */ lwc1 $f16, 0x10ac($v0) +/* 0ACE34 7F078304 46109180 */ add.s $f6, $f18, $f16 +/* 0ACE38 7F078308 460E2282 */ mul.s $f10, $f4, $f14 +/* 0ACE3C 7F07830C 460A3201 */ sub.s $f8, $f6, $f10 +/* 0ACE40 7F078310 E4A80000 */ swc1 $f8, ($a1) +/* 0ACE44 7F078314 8FBF0014 */ lw $ra, 0x14($sp) +/* 0ACE48 7F078318 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0ACE4C 7F07831C 03E00008 */ jr $ra +/* 0ACE50 7F078320 00000000 */ nop +) +#endif + + + + + +void set_BONDdata_field_10C4(s32 arg0) { + pPlayer->field_10C4 = arg0; +} + +s32 get_BONDdata_field_10C4(void) { + return pPlayer->field_10C4; +} + +void set_BONDdata_field_10C8(s32 arg0) { + pPlayer->field_10C8 = arg0; +} + +s32 get_BONDdata_field_10C8(void) { + return pPlayer->field_10C8; +} + +void set_BONDdata_field_10D8(s32 arg0) { + pPlayer->field_10D8 = arg0; +} + +s32 get_BONDdata_field_10D8(void) { + return pPlayer->field_10D8; +} + +void set_BONDdata_field_10E0(s32 arg0) { + pPlayer->field_10E0 = arg0; +} + +s32 get_BONDdata_field_10E0(void) { + // Node 0 + return pPlayer->field_10E0; +} + +void *copy_BONDdata_field_10CC_to_10E8_set_10CC(s32 arg0) { + pPlayer->field_10E8 = (s32) pPlayer->field_10CC; + pPlayer->field_10CC = arg0; +} + +s32 get_BONDdata_field_10CC(void) { + return pPlayer->field_10CC; +} + +void set_BONDdata_field_10DC(s32 arg0) { + pPlayer->field_10DC = arg0; +} + +s32 get_BONDdata_field_10DC(void) { + return pPlayer->field_10DC; +} + +s32 sub_GAME_7F0783F4(void) { + return pPlayer->field_10E8; +} + +void sub_GAME_7F078404(s32 arg0) { + pPlayer->field_10D0 = arg0; +} + +s32 sub_GAME_7F078414(void) { + return pPlayer->field_10D0; +} + +void sub_GAME_7F078424(s32 arg0) { + pPlayer->field_10EC = pPlayer->field_10D4; + pPlayer->field_10D4 = arg0; +} + +s32 sub_GAME_7F078444(void) { + return pPlayer->field_10D4; +} + +s32 sub_GAME_7F078454(void) { + return pPlayer->field_10EC; +} + +void sub_GAME_7F078464(s32 arg0) { + pPlayer->field_10E4 = arg0; +} + +s32 sub_GAME_7F078474(void) { + return pPlayer->field_10E4; +} + +f32 getPlayer_c_lodscalez(void) +{ + return pPlayer->c_lodscalez; +} + +u32 getPlayer_c_lodscalezu32(void) +{ + return pPlayer->c_lodscalezu32; +} + +f32 getPlayer_c_screenwidth(void) +{ + return pPlayer->c_screenwidth; +} + +f32 getPlayer_c_screenheight(void) +{ + return pPlayer->c_screenheight; +} + +f32 getPlayer_c_screenleft(void) +{ + return pPlayer->c_screenleft; +} + +f32 getPlayer_c_screentop(void) +{ + return pPlayer->c_screentop; +} + +f32 getPlayer_c_perspfovy(void) +{ + return pPlayer->c_perspfovy; +} + +f32 getPlayer_c_perspaspect(void) +{ + return pPlayer->c_perspaspect; +} + + +#ifdef NONMATCHING +void proc_7F078504(xyzpoint *param_1) +{ + param_1->x = (pPlayer->c_cameratopnorm).x; + param_1->y = (pPlayer->c_cameratopnorm).y; + param_1->z = (pPlayer->c_cameratopnorm).z; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F078504 +/* 0AD034 7F078504 3C028008 */ lui $v0, %hi(pPlayer) +/* 0AD038 7F078508 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0AD03C 7F07850C 8C4E0000 */ lw $t6, ($v0) +/* 0AD040 7F078510 C5C41100 */ lwc1 $f4, 0x1100($t6) +/* 0AD044 7F078514 E4840000 */ swc1 $f4, ($a0) +/* 0AD048 7F078518 8C4F0000 */ lw $t7, ($v0) +/* 0AD04C 7F07851C C5E61104 */ lwc1 $f6, 0x1104($t7) +/* 0AD050 7F078520 E4860004 */ swc1 $f6, 4($a0) +/* 0AD054 7F078524 8C580000 */ lw $t8, ($v0) +/* 0AD058 7F078528 C7081108 */ lwc1 $f8, 0x1108($t8) +/* 0AD05C 7F07852C 03E00008 */ jr $ra +/* 0AD060 7F078530 E4880008 */ swc1 $f8, 8($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F078534(xyzpoint *param_1) +{ + param_1->x = (pPlayer->c_cameratopnorm).x; + param_1->y = -(pPlayer->c_cameratopnorm).y; + param_1->z = (pPlayer->c_cameratopnorm).z; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F078534 +/* 0AD064 7F078534 3C028008 */ lui $v0, %hi(pPlayer) +/* 0AD068 7F078538 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0AD06C 7F07853C 8C4E0000 */ lw $t6, ($v0) +/* 0AD070 7F078540 C5C41100 */ lwc1 $f4, 0x1100($t6) +/* 0AD074 7F078544 E4840000 */ swc1 $f4, ($a0) +/* 0AD078 7F078548 8C4F0000 */ lw $t7, ($v0) +/* 0AD07C 7F07854C C5E61104 */ lwc1 $f6, 0x1104($t7) +/* 0AD080 7F078550 46003207 */ neg.s $f8, $f6 +/* 0AD084 7F078554 E4880004 */ swc1 $f8, 4($a0) +/* 0AD088 7F078558 8C580000 */ lw $t8, ($v0) +/* 0AD08C 7F07855C C70A1108 */ lwc1 $f10, 0x1108($t8) +/* 0AD090 7F078560 03E00008 */ jr $ra +/* 0AD094 7F078564 E48A0008 */ swc1 $f10, 8($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F078568(xyzpoint *param_1) +{ + param_1->x = (pPlayer->c_cameraleftnorm).x; + param_1->y = (pPlayer->c_cameraleftnorm).y; + param_1->z = (pPlayer->c_cameraleftnorm).z; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F078568 +/* 0AD098 7F078568 3C028008 */ lui $v0, %hi(pPlayer) +/* 0AD09C 7F07856C 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0AD0A0 7F078570 8C4E0000 */ lw $t6, ($v0) +/* 0AD0A4 7F078574 C5C4110C */ lwc1 $f4, 0x110c($t6) +/* 0AD0A8 7F078578 E4840000 */ swc1 $f4, ($a0) +/* 0AD0AC 7F07857C 8C4F0000 */ lw $t7, ($v0) +/* 0AD0B0 7F078580 C5E61110 */ lwc1 $f6, 0x1110($t7) +/* 0AD0B4 7F078584 E4860004 */ swc1 $f6, 4($a0) +/* 0AD0B8 7F078588 8C580000 */ lw $t8, ($v0) +/* 0AD0BC 7F07858C C7081114 */ lwc1 $f8, 0x1114($t8) +/* 0AD0C0 7F078590 03E00008 */ jr $ra +/* 0AD0C4 7F078594 E4880008 */ swc1 $f8, 8($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F078598(xyzpoint *param_1) +{ + param_1->x = -(pPlayer->c_cameraleftnorm).x; + param_1->y = (pPlayer->c_cameraleftnorm).y; + param_1->z = (pPlayer->c_cameraleftnorm).z; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F078598 +/* 0AD0C8 7F078598 3C028008 */ lui $v0, %hi(pPlayer) +/* 0AD0CC 7F07859C 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0AD0D0 7F0785A0 8C4E0000 */ lw $t6, ($v0) +/* 0AD0D4 7F0785A4 C5C4110C */ lwc1 $f4, 0x110c($t6) +/* 0AD0D8 7F0785A8 46002187 */ neg.s $f6, $f4 +/* 0AD0DC 7F0785AC E4860000 */ swc1 $f6, ($a0) +/* 0AD0E0 7F0785B0 8C4F0000 */ lw $t7, ($v0) +/* 0AD0E4 7F0785B4 C5E81110 */ lwc1 $f8, 0x1110($t7) +/* 0AD0E8 7F0785B8 E4880004 */ swc1 $f8, 4($a0) +/* 0AD0EC 7F0785BC 8C580000 */ lw $t8, ($v0) +/* 0AD0F0 7F0785C0 C70A1114 */ lwc1 $f10, 0x1114($t8) +/* 0AD0F4 7F0785C4 03E00008 */ jr $ra +/* 0AD0F8 7F0785C8 E48A0008 */ swc1 $f10, 8($a0) +) +#endif + + + + + + +f32 getPlayer_c_perspnear(void) +{ + return pPlayer->c_perspnear; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0785DC(void) +{ + f32 sp28; + f32 sp24; + f32 temp_f14; + f32 temp_f14_2; + f32 temp_f16; + f32 temp_f16_2; + f32 temp_f18; + f32 temp_f18_2; + f32 temp_f20; + f32 temp_f20_2; + f32 temp_f2; + f32 temp_f2_2; + + temp_f2 = pPlayer->c_halfheight * pPlayer->c_scaley; + sp24 = temp_f2; + temp_f20 = 1.0f / sqrtf((temp_f2 * temp_f2) + 1.0f); + temp_f2_2 = temp_f2 * temp_f20; + temp_f16 = -temp_f20; + temp_f18 = -temp_f16; + flt_CODE_bss_80079940.unk0 = (f32) ((pPlayer->unk10D4->unk20 * temp_f2_2) + (temp_f18 * pPlayer->unk10D4->unk10)); + flt_CODE_bss_80079940.unk4 = (f32) ((pPlayer->unk10D4->unk24 * temp_f2_2) + (temp_f18 * pPlayer->unk10D4->unk14)); + flt_CODE_bss_80079940.unk8 = (f32) ((pPlayer->unk10D4->unk28 * temp_f2_2) + (temp_f18 * pPlayer->unk10D4->unk18)); + flt_CODE_bss_8007994C = (f32) ((pPlayer->unk10D4->unk38 * flt_CODE_bss_80079940.unk8) + ((flt_CODE_bss_80079940.unk0 * pPlayer->unk10D4->unk30) + (flt_CODE_bss_80079940.unk4 * pPlayer->unk10D4->unk34))); + flt_CODE_bss_80079950.unk0 = (f32) ((pPlayer->unk10D4->unk20 * temp_f2_2) + (temp_f16 * pPlayer->unk10D4->unk10)); + flt_CODE_bss_80079950.unk4 = (f32) ((pPlayer->unk10D4->unk24 * temp_f2_2) + (temp_f16 * pPlayer->unk10D4->unk14)); + flt_CODE_bss_80079950.unk8 = (f32) ((pPlayer->unk10D4->unk28 * temp_f2_2) + (temp_f16 * pPlayer->unk10D4->unk18)); + flt_CODE_bss_8007995C = (f32) ((pPlayer->unk10D4->unk38 * flt_CODE_bss_80079950.unk8) + ((flt_CODE_bss_80079950.unk0 * pPlayer->unk10D4->unk30) + (flt_CODE_bss_80079950.unk4 * pPlayer->unk10D4->unk34))); + temp_f14 = -pPlayer->unk10AC * pPlayer->unk10B4; + sp28 = temp_f14; + temp_f20_2 = 1.0f / sqrtf((temp_f14 * temp_f14) + 1.0f, temp_f14, &flt_CODE_bss_80079940, &flt_CODE_bss_80079950); + temp_f14_2 = temp_f14 * temp_f20_2; + temp_f16_2 = -temp_f20_2; + temp_f18_2 = -temp_f16_2; + flt_CODE_bss_80079960.unk0 = (f32) ((temp_f16_2 * pPlayer->unk10D4->unk0) - (pPlayer->unk10D4->unk20 * temp_f14_2)); + flt_CODE_bss_80079960.unk4 = (f32) ((temp_f16_2 * pPlayer->unk10D4->unk4) - (pPlayer->unk10D4->unk24 * temp_f14_2)); + flt_CODE_bss_80079960.unk8 = (f32) ((temp_f16_2 * pPlayer->unk10D4->unk8) - (pPlayer->unk10D4->unk28 * temp_f14_2)); + flt_CODE_bss_8007996C = (f32) ((pPlayer->unk10D4->unk38 * flt_CODE_bss_80079960.unk8) + ((flt_CODE_bss_80079960.unk0 * pPlayer->unk10D4->unk30) + (flt_CODE_bss_80079960.unk4 * pPlayer->unk10D4->unk34))); + flt_CODE_bss_80079970.unk0 = (f32) ((temp_f18_2 * pPlayer->unk10D4->unk0) - (pPlayer->unk10D4->unk20 * temp_f14_2)); + flt_CODE_bss_80079970.unk4 = (f32) ((temp_f18_2 * pPlayer->unk10D4->unk4) - (pPlayer->unk10D4->unk24 * temp_f14_2)); + flt_CODE_bss_80079970.unk8 = (f32) ((temp_f18_2 * pPlayer->unk10D4->unk8) - (pPlayer->unk10D4->unk28 * temp_f14_2)); + flt_CODE_bss_8007997C = (f32) ((pPlayer->unk10D4->unk38 * flt_CODE_bss_80079970.unk8) + ((flt_CODE_bss_80079970.unk0 * pPlayer->unk10D4->unk30) + (flt_CODE_bss_80079970.unk4 * pPlayer->unk10D4->unk34))); + flt_CODE_bss_80079980 = (f32) ((pPlayer->unk10D4->unk38 * pPlayer->unk10D4->unk28) + ((pPlayer->unk10D4->unk20 * pPlayer->unk10D4->unk30) + (pPlayer->unk10D4->unk24 * pPlayer->unk10D4->unk34))); +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0785DC +/* 0AD10C 7F0785DC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AD110 7F0785E0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0AD114 7F0785E4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0AD118 7F0785E8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0AD11C 7F0785EC F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0AD120 7F0785F0 C46610B8 */ lwc1 $f6, 0x10b8($v1) +/* 0AD124 7F0785F4 C46410B0 */ lwc1 $f4, 0x10b0($v1) +/* 0AD128 7F0785F8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AD12C 7F0785FC 44815000 */ mtc1 $at, $f10 +/* 0AD130 7F078600 46062082 */ mul.s $f2, $f4, $f6 +/* 0AD134 7F078604 00000000 */ nop +/* 0AD138 7F078608 46021202 */ mul.s $f8, $f2, $f2 +/* 0AD13C 7F07860C E7A20024 */ swc1 $f2, 0x24($sp) +/* 0AD140 7F078610 0C007DF8 */ jal sqrtf +/* 0AD144 7F078614 460A4300 */ add.s $f12, $f8, $f10 +/* 0AD148 7F078618 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AD14C 7F07861C 44812000 */ mtc1 $at, $f4 +/* 0AD150 7F078620 C7A20024 */ lwc1 $f2, 0x24($sp) +/* 0AD154 7F078624 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AD158 7F078628 46002503 */ div.s $f20, $f4, $f0 +/* 0AD15C 7F07862C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0AD160 7F078630 3C048008 */ lui $a0, %hi(flt_CODE_bss_80079940) +/* 0AD164 7F078634 24849940 */ addiu $a0, %lo(flt_CODE_bss_80079940) # addiu $a0, $a0, -0x66c0 +/* 0AD168 7F078638 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD16C 7F07863C 3C018008 */ lui $at, %hi(flt_CODE_bss_8007994C) +/* 0AD170 7F078640 3C058008 */ lui $a1, %hi(flt_CODE_bss_80079950) +/* 0AD174 7F078644 C4460020 */ lwc1 $f6, 0x20($v0) +/* 0AD178 7F078648 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 0AD17C 7F07864C 24A59950 */ addiu $a1, %lo(flt_CODE_bss_80079950) # addiu $a1, $a1, -0x66b0 +/* 0AD180 7F078650 46141082 */ mul.s $f2, $f2, $f20 +/* 0AD184 7F078654 4600A407 */ neg.s $f16, $f20 +/* 0AD188 7F078658 46008487 */ neg.s $f18, $f16 +/* 0AD18C 7F07865C 46023202 */ mul.s $f8, $f6, $f2 +/* 0AD190 7F078660 00000000 */ nop +/* 0AD194 7F078664 460A9102 */ mul.s $f4, $f18, $f10 +/* 0AD198 7F078668 46044180 */ add.s $f6, $f8, $f4 +/* 0AD19C 7F07866C E4860000 */ swc1 $f6, ($a0) +/* 0AD1A0 7F078670 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD1A4 7F078674 C44A0024 */ lwc1 $f10, 0x24($v0) +/* 0AD1A8 7F078678 C4440014 */ lwc1 $f4, 0x14($v0) +/* 0AD1AC 7F07867C 46025202 */ mul.s $f8, $f10, $f2 +/* 0AD1B0 7F078680 00000000 */ nop +/* 0AD1B4 7F078684 46049182 */ mul.s $f6, $f18, $f4 +/* 0AD1B8 7F078688 46064280 */ add.s $f10, $f8, $f6 +/* 0AD1BC 7F07868C E48A0004 */ swc1 $f10, 4($a0) +/* 0AD1C0 7F078690 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD1C4 7F078694 C4440028 */ lwc1 $f4, 0x28($v0) +/* 0AD1C8 7F078698 C4460018 */ lwc1 $f6, 0x18($v0) +/* 0AD1CC 7F07869C 46022202 */ mul.s $f8, $f4, $f2 +/* 0AD1D0 7F0786A0 00000000 */ nop +/* 0AD1D4 7F0786A4 46069282 */ mul.s $f10, $f18, $f6 +/* 0AD1D8 7F0786A8 C4860000 */ lwc1 $f6, ($a0) +/* 0AD1DC 7F0786AC 460A4100 */ add.s $f4, $f8, $f10 +/* 0AD1E0 7F0786B0 E4840008 */ swc1 $f4, 8($a0) +/* 0AD1E4 7F0786B4 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD1E8 7F0786B8 C4840004 */ lwc1 $f4, 4($a0) +/* 0AD1EC 7F0786BC C4480030 */ lwc1 $f8, 0x30($v0) +/* 0AD1F0 7F0786C0 46083282 */ mul.s $f10, $f6, $f8 +/* 0AD1F4 7F0786C4 C4460034 */ lwc1 $f6, 0x34($v0) +/* 0AD1F8 7F0786C8 46062202 */ mul.s $f8, $f4, $f6 +/* 0AD1FC 7F0786CC C4460038 */ lwc1 $f6, 0x38($v0) +/* 0AD200 7F0786D0 46085100 */ add.s $f4, $f10, $f8 +/* 0AD204 7F0786D4 C48A0008 */ lwc1 $f10, 8($a0) +/* 0AD208 7F0786D8 460A3202 */ mul.s $f8, $f6, $f10 +/* 0AD20C 7F0786DC 46044180 */ add.s $f6, $f8, $f4 +/* 0AD210 7F0786E0 E426994C */ swc1 $f6, %lo(flt_CODE_bss_8007994C)($at) +/* 0AD214 7F0786E4 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD218 7F0786E8 3C018008 */ lui $at, %hi(flt_CODE_bss_8007995C) +/* 0AD21C 7F0786EC C44A0020 */ lwc1 $f10, 0x20($v0) +/* 0AD220 7F0786F0 C4440010 */ lwc1 $f4, 0x10($v0) +/* 0AD224 7F0786F4 46025202 */ mul.s $f8, $f10, $f2 +/* 0AD228 7F0786F8 00000000 */ nop +/* 0AD22C 7F0786FC 46048182 */ mul.s $f6, $f16, $f4 +/* 0AD230 7F078700 46064280 */ add.s $f10, $f8, $f6 +/* 0AD234 7F078704 E4AA0000 */ swc1 $f10, ($a1) +/* 0AD238 7F078708 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD23C 7F07870C C4440024 */ lwc1 $f4, 0x24($v0) +/* 0AD240 7F078710 C4460014 */ lwc1 $f6, 0x14($v0) +/* 0AD244 7F078714 46022202 */ mul.s $f8, $f4, $f2 +/* 0AD248 7F078718 00000000 */ nop +/* 0AD24C 7F07871C 46068282 */ mul.s $f10, $f16, $f6 +/* 0AD250 7F078720 460A4100 */ add.s $f4, $f8, $f10 +/* 0AD254 7F078724 E4A40004 */ swc1 $f4, 4($a1) +/* 0AD258 7F078728 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD25C 7F07872C C4460028 */ lwc1 $f6, 0x28($v0) +/* 0AD260 7F078730 C44A0018 */ lwc1 $f10, 0x18($v0) +/* 0AD264 7F078734 46023202 */ mul.s $f8, $f6, $f2 +/* 0AD268 7F078738 00000000 */ nop +/* 0AD26C 7F07873C 460A8102 */ mul.s $f4, $f16, $f10 +/* 0AD270 7F078740 C4AA0000 */ lwc1 $f10, ($a1) +/* 0AD274 7F078744 46044180 */ add.s $f6, $f8, $f4 +/* 0AD278 7F078748 E4A60008 */ swc1 $f6, 8($a1) +/* 0AD27C 7F07874C 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD280 7F078750 C4A60004 */ lwc1 $f6, 4($a1) +/* 0AD284 7F078754 C4480030 */ lwc1 $f8, 0x30($v0) +/* 0AD288 7F078758 46085102 */ mul.s $f4, $f10, $f8 +/* 0AD28C 7F07875C C44A0034 */ lwc1 $f10, 0x34($v0) +/* 0AD290 7F078760 460A3202 */ mul.s $f8, $f6, $f10 +/* 0AD294 7F078764 C44A0038 */ lwc1 $f10, 0x38($v0) +/* 0AD298 7F078768 46082180 */ add.s $f6, $f4, $f8 +/* 0AD29C 7F07876C C4A40008 */ lwc1 $f4, 8($a1) +/* 0AD2A0 7F078770 46045202 */ mul.s $f8, $f10, $f4 +/* 0AD2A4 7F078774 46064280 */ add.s $f10, $f8, $f6 +/* 0AD2A8 7F078778 E42A995C */ swc1 $f10, %lo(flt_CODE_bss_8007995C)($at) +/* 0AD2AC 7F07877C C46410AC */ lwc1 $f4, 0x10ac($v1) +/* 0AD2B0 7F078780 C46610B4 */ lwc1 $f6, 0x10b4($v1) +/* 0AD2B4 7F078784 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AD2B8 7F078788 46002207 */ neg.s $f8, $f4 +/* 0AD2BC 7F07878C 44812000 */ mtc1 $at, $f4 +/* 0AD2C0 7F078790 46064382 */ mul.s $f14, $f8, $f6 +/* 0AD2C4 7F078794 00000000 */ nop +/* 0AD2C8 7F078798 460E7282 */ mul.s $f10, $f14, $f14 +/* 0AD2CC 7F07879C E7AE0028 */ swc1 $f14, 0x28($sp) +/* 0AD2D0 7F0787A0 0C007DF8 */ jal sqrtf +/* 0AD2D4 7F0787A4 46045300 */ add.s $f12, $f10, $f4 +/* 0AD2D8 7F0787A8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AD2DC 7F0787AC 44814000 */ mtc1 $at, $f8 +/* 0AD2E0 7F0787B0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AD2E4 7F0787B4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0AD2E8 7F0787B8 46004503 */ div.s $f20, $f8, $f0 +/* 0AD2EC 7F0787BC C7AE0028 */ lwc1 $f14, 0x28($sp) +/* 0AD2F0 7F0787C0 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD2F4 7F0787C4 3C048008 */ lui $a0, %hi(flt_CODE_bss_80079960) +/* 0AD2F8 7F0787C8 24849960 */ addiu $a0, %lo(flt_CODE_bss_80079960) # addiu $a0, $a0, -0x66a0 +/* 0AD2FC 7F0787CC C4460000 */ lwc1 $f6, ($v0) +/* 0AD300 7F0787D0 C4440020 */ lwc1 $f4, 0x20($v0) +/* 0AD304 7F0787D4 3C018008 */ lui $at, %hi(flt_CODE_bss_8007996C) +/* 0AD308 7F0787D8 3C058008 */ lui $a1, %hi(flt_CODE_bss_80079970) +/* 0AD30C 7F0787DC 24A59970 */ addiu $a1, %lo(flt_CODE_bss_80079970) # addiu $a1, $a1, -0x6690 +/* 0AD310 7F0787E0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AD314 7F0787E4 46147382 */ mul.s $f14, $f14, $f20 +/* 0AD318 7F0787E8 4600A407 */ neg.s $f16, $f20 +/* 0AD31C 7F0787EC D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0AD320 7F0787F0 46068282 */ mul.s $f10, $f16, $f6 +/* 0AD324 7F0787F4 46008487 */ neg.s $f18, $f16 +/* 0AD328 7F0787F8 460E2202 */ mul.s $f8, $f4, $f14 +/* 0AD32C 7F0787FC 46085181 */ sub.s $f6, $f10, $f8 +/* 0AD330 7F078800 E4860000 */ swc1 $f6, ($a0) +/* 0AD334 7F078804 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD338 7F078808 C4440004 */ lwc1 $f4, 4($v0) +/* 0AD33C 7F07880C C4480024 */ lwc1 $f8, 0x24($v0) +/* 0AD340 7F078810 46048282 */ mul.s $f10, $f16, $f4 +/* 0AD344 7F078814 00000000 */ nop +/* 0AD348 7F078818 460E4182 */ mul.s $f6, $f8, $f14 +/* 0AD34C 7F07881C 46065101 */ sub.s $f4, $f10, $f6 +/* 0AD350 7F078820 E4840004 */ swc1 $f4, 4($a0) +/* 0AD354 7F078824 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD358 7F078828 C4480008 */ lwc1 $f8, 8($v0) +/* 0AD35C 7F07882C C4460028 */ lwc1 $f6, 0x28($v0) +/* 0AD360 7F078830 46088282 */ mul.s $f10, $f16, $f8 +/* 0AD364 7F078834 00000000 */ nop +/* 0AD368 7F078838 460E3102 */ mul.s $f4, $f6, $f14 +/* 0AD36C 7F07883C C4860000 */ lwc1 $f6, ($a0) +/* 0AD370 7F078840 46045201 */ sub.s $f8, $f10, $f4 +/* 0AD374 7F078844 E4880008 */ swc1 $f8, 8($a0) +/* 0AD378 7F078848 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD37C 7F07884C C4880004 */ lwc1 $f8, 4($a0) +/* 0AD380 7F078850 C44A0030 */ lwc1 $f10, 0x30($v0) +/* 0AD384 7F078854 460A3102 */ mul.s $f4, $f6, $f10 +/* 0AD388 7F078858 C4460034 */ lwc1 $f6, 0x34($v0) +/* 0AD38C 7F07885C 46064282 */ mul.s $f10, $f8, $f6 +/* 0AD390 7F078860 C4460038 */ lwc1 $f6, 0x38($v0) +/* 0AD394 7F078864 460A2200 */ add.s $f8, $f4, $f10 +/* 0AD398 7F078868 C4840008 */ lwc1 $f4, 8($a0) +/* 0AD39C 7F07886C 46043282 */ mul.s $f10, $f6, $f4 +/* 0AD3A0 7F078870 46085180 */ add.s $f6, $f10, $f8 +/* 0AD3A4 7F078874 E426996C */ swc1 $f6, %lo(flt_CODE_bss_8007996C)($at) +/* 0AD3A8 7F078878 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD3AC 7F07887C 3C018008 */ lui $at, %hi(flt_CODE_bss_8007997C) +/* 0AD3B0 7F078880 C4440000 */ lwc1 $f4, ($v0) +/* 0AD3B4 7F078884 C4480020 */ lwc1 $f8, 0x20($v0) +/* 0AD3B8 7F078888 46049282 */ mul.s $f10, $f18, $f4 +/* 0AD3BC 7F07888C 00000000 */ nop +/* 0AD3C0 7F078890 460E4182 */ mul.s $f6, $f8, $f14 +/* 0AD3C4 7F078894 46065101 */ sub.s $f4, $f10, $f6 +/* 0AD3C8 7F078898 E4A40000 */ swc1 $f4, ($a1) +/* 0AD3CC 7F07889C 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD3D0 7F0788A0 C4480004 */ lwc1 $f8, 4($v0) +/* 0AD3D4 7F0788A4 C4460024 */ lwc1 $f6, 0x24($v0) +/* 0AD3D8 7F0788A8 46089282 */ mul.s $f10, $f18, $f8 +/* 0AD3DC 7F0788AC 00000000 */ nop +/* 0AD3E0 7F0788B0 460E3102 */ mul.s $f4, $f6, $f14 +/* 0AD3E4 7F0788B4 46045201 */ sub.s $f8, $f10, $f4 +/* 0AD3E8 7F0788B8 E4A80004 */ swc1 $f8, 4($a1) +/* 0AD3EC 7F0788BC 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD3F0 7F0788C0 C4460008 */ lwc1 $f6, 8($v0) +/* 0AD3F4 7F0788C4 C4440028 */ lwc1 $f4, 0x28($v0) +/* 0AD3F8 7F0788C8 46069282 */ mul.s $f10, $f18, $f6 +/* 0AD3FC 7F0788CC 00000000 */ nop +/* 0AD400 7F0788D0 460E2202 */ mul.s $f8, $f4, $f14 +/* 0AD404 7F0788D4 C4A40000 */ lwc1 $f4, ($a1) +/* 0AD408 7F0788D8 46085181 */ sub.s $f6, $f10, $f8 +/* 0AD40C 7F0788DC E4A60008 */ swc1 $f6, 8($a1) +/* 0AD410 7F0788E0 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD414 7F0788E4 C4A60004 */ lwc1 $f6, 4($a1) +/* 0AD418 7F0788E8 C44A0030 */ lwc1 $f10, 0x30($v0) +/* 0AD41C 7F0788EC 460A2202 */ mul.s $f8, $f4, $f10 +/* 0AD420 7F0788F0 C4440034 */ lwc1 $f4, 0x34($v0) +/* 0AD424 7F0788F4 46043282 */ mul.s $f10, $f6, $f4 +/* 0AD428 7F0788F8 C4440038 */ lwc1 $f4, 0x38($v0) +/* 0AD42C 7F0788FC 460A4180 */ add.s $f6, $f8, $f10 +/* 0AD430 7F078900 C4A80008 */ lwc1 $f8, 8($a1) +/* 0AD434 7F078904 46082282 */ mul.s $f10, $f4, $f8 +/* 0AD438 7F078908 46065100 */ add.s $f4, $f10, $f6 +/* 0AD43C 7F07890C E424997C */ swc1 $f4, %lo(flt_CODE_bss_8007997C)($at) +/* 0AD440 7F078910 8C6210D4 */ lw $v0, 0x10d4($v1) +/* 0AD444 7F078914 3C018008 */ lui $at, %hi(flt_CODE_bss_80079980) +/* 0AD448 7F078918 C4480020 */ lwc1 $f8, 0x20($v0) +/* 0AD44C 7F07891C C44A0030 */ lwc1 $f10, 0x30($v0) +/* 0AD450 7F078920 C4440024 */ lwc1 $f4, 0x24($v0) +/* 0AD454 7F078924 460A4182 */ mul.s $f6, $f8, $f10 +/* 0AD458 7F078928 C4480034 */ lwc1 $f8, 0x34($v0) +/* 0AD45C 7F07892C 46082282 */ mul.s $f10, $f4, $f8 +/* 0AD460 7F078930 C4480038 */ lwc1 $f8, 0x38($v0) +/* 0AD464 7F078934 460A3100 */ add.s $f4, $f6, $f10 +/* 0AD468 7F078938 C4460028 */ lwc1 $f6, 0x28($v0) +/* 0AD46C 7F07893C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0AD470 7F078940 46064282 */ mul.s $f10, $f8, $f6 +/* 0AD474 7F078944 46045200 */ add.s $f8, $f10, $f4 +/* 0AD478 7F078948 03E00008 */ jr $ra +/* 0AD47C 7F07894C E4289980 */ swc1 $f8, %lo(flt_CODE_bss_80079980)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F078950(void *arg0, void *arg1) { + // Node 0 + *arg0 = (f32) flt_CODE_bss_80079940; + arg0->unk4 = (f32) flt_CODE_bss_80079940.unk4; + arg0->unk8 = (f32) flt_CODE_bss_80079940.unk8; + *arg1 = (f32) flt_CODE_bss_8007994C; + return &flt_CODE_bss_80079940; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F078950 +/* 0AD480 7F078950 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079940) +/* 0AD484 7F078954 24429940 */ addiu $v0, %lo(flt_CODE_bss_80079940) # addiu $v0, $v0, -0x66c0 +/* 0AD488 7F078958 C4440000 */ lwc1 $f4, ($v0) +/* 0AD48C 7F07895C 3C018008 */ lui $at, %hi(flt_CODE_bss_8007994C) +/* 0AD490 7F078960 E4840000 */ swc1 $f4, ($a0) +/* 0AD494 7F078964 C4460004 */ lwc1 $f6, 4($v0) +/* 0AD498 7F078968 E4860004 */ swc1 $f6, 4($a0) +/* 0AD49C 7F07896C C4480008 */ lwc1 $f8, 8($v0) +/* 0AD4A0 7F078970 E4880008 */ swc1 $f8, 8($a0) +/* 0AD4A4 7F078974 C42A994C */ lwc1 $f10, %lo(flt_CODE_bss_8007994C)($at) +/* 0AD4A8 7F078978 03E00008 */ jr $ra +/* 0AD4AC 7F07897C E4AA0000 */ swc1 $f10, ($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F078980(void *arg0, void *arg1) { + // Node 0 + *arg0 = (f32) flt_CODE_bss_80079950; + arg0->unk4 = (f32) flt_CODE_bss_80079950.unk4; + arg0->unk8 = (f32) flt_CODE_bss_80079950.unk8; + *arg1 = (f32) flt_CODE_bss_8007995C; + return &flt_CODE_bss_80079950; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F078980 +/* 0AD4B0 7F078980 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079950) +/* 0AD4B4 7F078984 24429950 */ addiu $v0, %lo(flt_CODE_bss_80079950) # addiu $v0, $v0, -0x66b0 +/* 0AD4B8 7F078988 C4440000 */ lwc1 $f4, ($v0) +/* 0AD4BC 7F07898C 3C018008 */ lui $at, %hi(flt_CODE_bss_8007995C) +/* 0AD4C0 7F078990 E4840000 */ swc1 $f4, ($a0) +/* 0AD4C4 7F078994 C4460004 */ lwc1 $f6, 4($v0) +/* 0AD4C8 7F078998 E4860004 */ swc1 $f6, 4($a0) +/* 0AD4CC 7F07899C C4480008 */ lwc1 $f8, 8($v0) +/* 0AD4D0 7F0789A0 E4880008 */ swc1 $f8, 8($a0) +/* 0AD4D4 7F0789A4 C42A995C */ lwc1 $f10, %lo(flt_CODE_bss_8007995C)($at) +/* 0AD4D8 7F0789A8 03E00008 */ jr $ra +/* 0AD4DC 7F0789AC E4AA0000 */ swc1 $f10, ($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0789B0(void *arg0, void *arg1) { + // Node 0 + *arg0 = (f32) flt_CODE_bss_80079960; + arg0->unk4 = (f32) flt_CODE_bss_80079960.unk4; + arg0->unk8 = (f32) flt_CODE_bss_80079960.unk8; + *arg1 = (f32) flt_CODE_bss_8007996C; + return &flt_CODE_bss_80079960; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0789B0 +/* 0AD4E0 7F0789B0 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079960) +/* 0AD4E4 7F0789B4 24429960 */ addiu $v0, %lo(flt_CODE_bss_80079960) # addiu $v0, $v0, -0x66a0 +/* 0AD4E8 7F0789B8 C4440000 */ lwc1 $f4, ($v0) +/* 0AD4EC 7F0789BC 3C018008 */ lui $at, %hi(flt_CODE_bss_8007996C) +/* 0AD4F0 7F0789C0 E4840000 */ swc1 $f4, ($a0) +/* 0AD4F4 7F0789C4 C4460004 */ lwc1 $f6, 4($v0) +/* 0AD4F8 7F0789C8 E4860004 */ swc1 $f6, 4($a0) +/* 0AD4FC 7F0789CC C4480008 */ lwc1 $f8, 8($v0) +/* 0AD500 7F0789D0 E4880008 */ swc1 $f8, 8($a0) +/* 0AD504 7F0789D4 C42A996C */ lwc1 $f10, %lo(flt_CODE_bss_8007996C)($at) +/* 0AD508 7F0789D8 03E00008 */ jr $ra +/* 0AD50C 7F0789DC E4AA0000 */ swc1 $f10, ($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0789E0(void *arg0, void *arg1) { + // Node 0 + *arg0 = (f32) flt_CODE_bss_80079970; + arg0->unk4 = (f32) flt_CODE_bss_80079970.unk4; + arg0->unk8 = (f32) flt_CODE_bss_80079970.unk8; + *arg1 = (f32) flt_CODE_bss_8007997C; + return &flt_CODE_bss_80079970; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0789E0 +/* 0AD510 7F0789E0 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079970) +/* 0AD514 7F0789E4 24429970 */ addiu $v0, %lo(flt_CODE_bss_80079970) # addiu $v0, $v0, -0x6690 +/* 0AD518 7F0789E8 C4440000 */ lwc1 $f4, ($v0) +/* 0AD51C 7F0789EC 3C018008 */ lui $at, %hi(flt_CODE_bss_8007997C) +/* 0AD520 7F0789F0 E4840000 */ swc1 $f4, ($a0) +/* 0AD524 7F0789F4 C4460004 */ lwc1 $f6, 4($v0) +/* 0AD528 7F0789F8 E4860004 */ swc1 $f6, 4($a0) +/* 0AD52C 7F0789FC C4480008 */ lwc1 $f8, 8($v0) +/* 0AD530 7F078A00 E4880008 */ swc1 $f8, 8($a0) +/* 0AD534 7F078A04 C42A997C */ lwc1 $f10, %lo(flt_CODE_bss_8007997C)($at) +/* 0AD538 7F078A08 03E00008 */ jr $ra +/* 0AD53C 7F078A0C E4AA0000 */ swc1 $f10, ($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F078A10(void *arg0, void *arg1) { + // Node 0 + *arg0 = (f32) pPlayer->field_10D4->unk20; + arg0->unk4 = (f32) pPlayer->field_10D4->unk24; + arg0->unk8 = (f32) pPlayer->field_10D4->unk28; + *arg1 = (f32) flt_CODE_bss_80079980; + return &pPlayer; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F078A10 +/* 0AD540 7F078A10 3C028008 */ lui $v0, %hi(pPlayer) +/* 0AD544 7F078A14 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0AD548 7F078A18 8C4E0000 */ lw $t6, ($v0) +/* 0AD54C 7F078A1C 3C018008 */ lui $at, %hi(flt_CODE_bss_80079980) +/* 0AD550 7F078A20 8DCF10D4 */ lw $t7, 0x10d4($t6) +/* 0AD554 7F078A24 C5E40020 */ lwc1 $f4, 0x20($t7) +/* 0AD558 7F078A28 E4840000 */ swc1 $f4, ($a0) +/* 0AD55C 7F078A2C 8C580000 */ lw $t8, ($v0) +/* 0AD560 7F078A30 8F1910D4 */ lw $t9, 0x10d4($t8) +/* 0AD564 7F078A34 C7260024 */ lwc1 $f6, 0x24($t9) +/* 0AD568 7F078A38 E4860004 */ swc1 $f6, 4($a0) +/* 0AD56C 7F078A3C 8C480000 */ lw $t0, ($v0) +/* 0AD570 7F078A40 8D0910D4 */ lw $t1, 0x10d4($t0) +/* 0AD574 7F078A44 C5280028 */ lwc1 $f8, 0x28($t1) +/* 0AD578 7F078A48 E4880008 */ swc1 $f8, 8($a0) +/* 0AD57C 7F078A4C C42A9980 */ lwc1 $f10, %lo(flt_CODE_bss_80079980)($at) +/* 0AD580 7F078A50 03E00008 */ jr $ra +/* 0AD584 7F078A54 E4AA0000 */ swc1 $f10, ($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F078A58(void *arg0, s32 arg1) { + // Node 0 + if ((flt_CODE_bss_80079980 + arg1) < ((arg0->unk8 * pPlayer->field_10D4->unk28) + ((pPlayer->field_10D4->unk20 * *arg0) + (pPlayer->field_10D4->unk24 * arg0->unk4)))) + { + // Node 1 + return 0; + } + // Node 2 + if ((flt_CODE_bss_8007996C + arg1) < ((arg0->unk8 * flt_CODE_bss_80079960.unk8) + ((flt_CODE_bss_80079960 * *arg0) + (flt_CODE_bss_80079960.unk4 * arg0->unk4)))) + { + // Node 3 + return 0; + } + // Node 4 + if ((flt_CODE_bss_8007997C + arg1) < ((arg0->unk8 * flt_CODE_bss_80079970.unk8) + ((flt_CODE_bss_80079970 * *arg0) + (flt_CODE_bss_80079970.unk4 * arg0->unk4)))) + { + // Node 5 + return 0; + } + // Node 6 + if ((flt_CODE_bss_8007994C + arg1) < ((arg0->unk8 * flt_CODE_bss_80079940.unk8) + ((flt_CODE_bss_80079940 * *arg0) + (flt_CODE_bss_80079940.unk4 * arg0->unk4)))) + { + // Node 7 + return 0; + } + // Node 8 + if ((flt_CODE_bss_8007995C + arg1) < ((arg0->unk8 * flt_CODE_bss_80079950.unk8) + ((flt_CODE_bss_80079950 * *arg0) + (flt_CODE_bss_80079950.unk4 * arg0->unk4)))) + { + // Node 9 + return 0; + } + // Node 10 + return 1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F078A58 +/* 0AD588 7F078A58 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0AD58C 7F078A5C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0AD590 7F078A60 C4820000 */ lwc1 $f2, ($a0) +/* 0AD594 7F078A64 C48E0004 */ lwc1 $f14, 4($a0) +/* 0AD598 7F078A68 8DC210D4 */ lw $v0, 0x10d4($t6) +/* 0AD59C 7F078A6C C4800008 */ lwc1 $f0, 8($a0) +/* 0AD5A0 7F078A70 3C018008 */ lui $at, %hi(flt_CODE_bss_80079980) +/* 0AD5A4 7F078A74 C4480020 */ lwc1 $f8, 0x20($v0) +/* 0AD5A8 7F078A78 C4500024 */ lwc1 $f16, 0x24($v0) +/* 0AD5AC 7F078A7C 44856000 */ mtc1 $a1, $f12 +/* 0AD5B0 7F078A80 46024282 */ mul.s $f10, $f8, $f2 +/* 0AD5B4 7F078A84 C4480028 */ lwc1 $f8, 0x28($v0) +/* 0AD5B8 7F078A88 C4249980 */ lwc1 $f4, %lo(flt_CODE_bss_80079980)($at) +/* 0AD5BC 7F078A8C 460E8482 */ mul.s $f18, $f16, $f14 +/* 0AD5C0 7F078A90 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079960) +/* 0AD5C4 7F078A94 460C2180 */ add.s $f6, $f4, $f12 +/* 0AD5C8 7F078A98 46080402 */ mul.s $f16, $f0, $f8 +/* 0AD5CC 7F078A9C 24429960 */ addiu $v0, %lo(flt_CODE_bss_80079960) # addiu $v0, $v0, -0x66a0 +/* 0AD5D0 7F078AA0 46125100 */ add.s $f4, $f10, $f18 +/* 0AD5D4 7F078AA4 46048280 */ add.s $f10, $f16, $f4 +/* 0AD5D8 7F078AA8 460A303C */ c.lt.s $f6, $f10 +/* 0AD5DC 7F078AAC 00000000 */ nop +/* 0AD5E0 7F078AB0 45020004 */ bc1fl .L7F078AC4 +/* 0AD5E4 7F078AB4 C4500000 */ lwc1 $f16, ($v0) +/* 0AD5E8 7F078AB8 03E00008 */ jr $ra +/* 0AD5EC 7F078ABC 00001025 */ move $v0, $zero + +/* 0AD5F0 7F078AC0 C4500000 */ lwc1 $f16, ($v0) +.L7F078AC4: +/* 0AD5F4 7F078AC4 C4460004 */ lwc1 $f6, 4($v0) +/* 0AD5F8 7F078AC8 3C018008 */ lui $at, %hi(flt_CODE_bss_8007996C) +/* 0AD5FC 7F078ACC 46028102 */ mul.s $f4, $f16, $f2 +/* 0AD600 7F078AD0 C4500008 */ lwc1 $f16, 8($v0) +/* 0AD604 7F078AD4 C432996C */ lwc1 $f18, %lo(flt_CODE_bss_8007996C)($at) +/* 0AD608 7F078AD8 460E3282 */ mul.s $f10, $f6, $f14 +/* 0AD60C 7F078ADC 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079970) +/* 0AD610 7F078AE0 460C9200 */ add.s $f8, $f18, $f12 +/* 0AD614 7F078AE4 46100182 */ mul.s $f6, $f0, $f16 +/* 0AD618 7F078AE8 24429970 */ addiu $v0, %lo(flt_CODE_bss_80079970) # addiu $v0, $v0, -0x6690 +/* 0AD61C 7F078AEC 460A2480 */ add.s $f18, $f4, $f10 +/* 0AD620 7F078AF0 46123100 */ add.s $f4, $f6, $f18 +/* 0AD624 7F078AF4 4604403C */ c.lt.s $f8, $f4 +/* 0AD628 7F078AF8 00000000 */ nop +/* 0AD62C 7F078AFC 45020004 */ bc1fl .L7F078B10 +/* 0AD630 7F078B00 C4460000 */ lwc1 $f6, ($v0) +/* 0AD634 7F078B04 03E00008 */ jr $ra +/* 0AD638 7F078B08 00001025 */ move $v0, $zero + +/* 0AD63C 7F078B0C C4460000 */ lwc1 $f6, ($v0) +.L7F078B10: +/* 0AD640 7F078B10 C4480004 */ lwc1 $f8, 4($v0) +/* 0AD644 7F078B14 3C018008 */ lui $at, %hi(flt_CODE_bss_8007997C) +/* 0AD648 7F078B18 46023482 */ mul.s $f18, $f6, $f2 +/* 0AD64C 7F078B1C C4460008 */ lwc1 $f6, 8($v0) +/* 0AD650 7F078B20 C42A997C */ lwc1 $f10, %lo(flt_CODE_bss_8007997C)($at) +/* 0AD654 7F078B24 460E4102 */ mul.s $f4, $f8, $f14 +/* 0AD658 7F078B28 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079940) +/* 0AD65C 7F078B2C 460C5400 */ add.s $f16, $f10, $f12 +/* 0AD660 7F078B30 46060202 */ mul.s $f8, $f0, $f6 +/* 0AD664 7F078B34 24429940 */ addiu $v0, %lo(flt_CODE_bss_80079940) # addiu $v0, $v0, -0x66c0 +/* 0AD668 7F078B38 46049280 */ add.s $f10, $f18, $f4 +/* 0AD66C 7F078B3C 460A4480 */ add.s $f18, $f8, $f10 +/* 0AD670 7F078B40 4612803C */ c.lt.s $f16, $f18 +/* 0AD674 7F078B44 00000000 */ nop +/* 0AD678 7F078B48 45020004 */ bc1fl .L7F078B5C +/* 0AD67C 7F078B4C C4480000 */ lwc1 $f8, ($v0) +/* 0AD680 7F078B50 03E00008 */ jr $ra +/* 0AD684 7F078B54 00001025 */ move $v0, $zero + +/* 0AD688 7F078B58 C4480000 */ lwc1 $f8, ($v0) +.L7F078B5C: +/* 0AD68C 7F078B5C C4500004 */ lwc1 $f16, 4($v0) +/* 0AD690 7F078B60 3C018008 */ lui $at, %hi(flt_CODE_bss_8007994C) +/* 0AD694 7F078B64 46024282 */ mul.s $f10, $f8, $f2 +/* 0AD698 7F078B68 C4480008 */ lwc1 $f8, 8($v0) +/* 0AD69C 7F078B6C C424994C */ lwc1 $f4, %lo(flt_CODE_bss_8007994C)($at) +/* 0AD6A0 7F078B70 460E8482 */ mul.s $f18, $f16, $f14 +/* 0AD6A4 7F078B74 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079950) +/* 0AD6A8 7F078B78 460C2180 */ add.s $f6, $f4, $f12 +/* 0AD6AC 7F078B7C 46080402 */ mul.s $f16, $f0, $f8 +/* 0AD6B0 7F078B80 24429950 */ addiu $v0, %lo(flt_CODE_bss_80079950) # addiu $v0, $v0, -0x66b0 +/* 0AD6B4 7F078B84 46125100 */ add.s $f4, $f10, $f18 +/* 0AD6B8 7F078B88 46048280 */ add.s $f10, $f16, $f4 +/* 0AD6BC 7F078B8C 460A303C */ c.lt.s $f6, $f10 +/* 0AD6C0 7F078B90 00000000 */ nop +/* 0AD6C4 7F078B94 45020004 */ bc1fl .L7F078BA8 +/* 0AD6C8 7F078B98 C4500000 */ lwc1 $f16, ($v0) +/* 0AD6CC 7F078B9C 03E00008 */ jr $ra +/* 0AD6D0 7F078BA0 00001025 */ move $v0, $zero + +/* 0AD6D4 7F078BA4 C4500000 */ lwc1 $f16, ($v0) +.L7F078BA8: +/* 0AD6D8 7F078BA8 C4460004 */ lwc1 $f6, 4($v0) +/* 0AD6DC 7F078BAC 3C018008 */ lui $at, %hi(flt_CODE_bss_8007995C) +/* 0AD6E0 7F078BB0 46028102 */ mul.s $f4, $f16, $f2 +/* 0AD6E4 7F078BB4 C4500008 */ lwc1 $f16, 8($v0) +/* 0AD6E8 7F078BB8 C432995C */ lwc1 $f18, %lo(flt_CODE_bss_8007995C)($at) +/* 0AD6EC 7F078BBC 460E3282 */ mul.s $f10, $f6, $f14 +/* 0AD6F0 7F078BC0 24020001 */ li $v0, 1 +/* 0AD6F4 7F078BC4 460C9200 */ add.s $f8, $f18, $f12 +/* 0AD6F8 7F078BC8 46100182 */ mul.s $f6, $f0, $f16 +/* 0AD6FC 7F078BCC 460A2480 */ add.s $f18, $f4, $f10 +/* 0AD700 7F078BD0 46123100 */ add.s $f4, $f6, $f18 +/* 0AD704 7F078BD4 4604403C */ c.lt.s $f8, $f4 +/* 0AD708 7F078BD8 00000000 */ nop +/* 0AD70C 7F078BDC 45000003 */ bc1f .L7F078BEC +/* 0AD710 7F078BE0 00000000 */ nop +/* 0AD714 7F078BE4 03E00008 */ jr $ra +/* 0AD718 7F078BE8 00001025 */ move $v0, $zero + +.L7F078BEC: +/* 0AD71C 7F078BEC 03E00008 */ jr $ra +/* 0AD720 7F078BF0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F078BF4(void *arg0, s32 arg1, void *arg2) +{ + f32 sp7C; + f32 sp78; + f32 sp74; + f32 sp6C; + f32 sp68; + f32 sp64; + f32 sp5C; + f32 sp58; + f32 sp54; + f32 sp4C; + f32 sp48; + f32 sp44; + f32 sp38; + f32 sp34; + f32 temp_f2; + f32 temp_f12; + f32 temp_f2_2; + f32 temp_f14; + f32 temp_f10; + f32 temp_f4; + f32 temp_f18; + f32 temp_f2_3; + f32 temp_f12_2; + f32 temp_f2_4; + f32 temp_f14_2; + f32 temp_f6; + f32 temp_f8; + f32 temp_f4_2; + f32 temp_f2_5; + f32 temp_f12_3; + f32 temp_f2_6; + f32 temp_f14_3; + f32 temp_f8_2; + f32 temp_f18_2; + f32 temp_f4_3; + f32 temp_f2_7; + f32 temp_f12_4; + f32 temp_f2_8; + f32 temp_f14_4; + f32 temp_f6_2; + f32 temp_f10_2; + f32 temp_f18_3; + + if ((flt_CODE_bss_80079980 + arg1) < ((arg0->unk8 * pPlayer->field_10D4->unk28) + ((pPlayer->field_10D4->unk20 * *arg0) + (pPlayer->field_10D4->unk24 * arg0->unk4)))) + { + return 0; + } + temp_f2 = (((*arg2 - pPlayer->c_screenleft) - pPlayer->c_halfwidth) * pPlayer->c_scalex); + sp38 = temp_f2; + temp_f12 = (1.0f / sqrtf(((temp_f2 * temp_f2) + 1.0f))); + temp_f2_2 = (temp_f2 * temp_f12); + temp_f14 = -temp_f12; + temp_f10 = ((temp_f14 * *pPlayer->field_10D4) - (pPlayer->field_10D4->unk20 * temp_f2_2)); + sp54 = temp_f10; + temp_f4 = ((temp_f14 * pPlayer->field_10D4->unk4) - (pPlayer->field_10D4->unk24 * temp_f2_2)); + sp58 = temp_f4; + temp_f18 = ((temp_f14 * pPlayer->field_10D4->unk8) - (pPlayer->field_10D4->unk28 * temp_f2_2)); + sp5C = temp_f18; + if ((((pPlayer->field_10D4->unk38 * temp_f18) + ((temp_f10 * pPlayer->field_10D4->unk30) + (temp_f4 * pPlayer->field_10D4->unk34))) + arg1) < ((arg0->unk8 * temp_f18) + ((temp_f10 * *arg0) + (temp_f4 * arg0->unk4)))) + { + return 0; + } + temp_f2_3 = (-((arg2->unk8 - pPlayer->c_screenleft) - pPlayer->c_halfwidth) * pPlayer->c_scalex); + sp38 = temp_f2_3; + temp_f12_2 = (1.0f / sqrtf(((temp_f2_3 * temp_f2_3) + 1.0f), temp_f14, arg0)); + temp_f2_4 = (temp_f2_3 * temp_f12_2); + temp_f14_2 = --temp_f12_2; + temp_f6 = ((temp_f14_2 * *pPlayer->field_10D4) - (pPlayer->field_10D4->unk20 * temp_f2_4)); + sp44 = temp_f6; + temp_f8 = ((temp_f14_2 * pPlayer->field_10D4->unk4) - (pPlayer->field_10D4->unk24 * temp_f2_4)); + sp48 = temp_f8; + temp_f4_2 = ((temp_f14_2 * pPlayer->field_10D4->unk8) - (pPlayer->field_10D4->unk28 * temp_f2_4)); + sp4C = temp_f4_2; + if ((((pPlayer->field_10D4->unk38 * temp_f4_2) + ((temp_f6 * pPlayer->field_10D4->unk30) + (temp_f8 * pPlayer->field_10D4->unk34))) + arg1) < ((arg0->unk8 * temp_f4_2) + ((temp_f6 * *arg0) + (temp_f8 * arg0->unk4)))) + { + return 0; + } + temp_f2_5 = ((pPlayer->c_halfheight - (arg2->unk4 - pPlayer->c_screentop)) * pPlayer->c_scaley); + sp34 = temp_f2_5; + temp_f12_3 = (1.0f / sqrtf(((temp_f2_5 * temp_f2_5) + 1.0f), temp_f14_2, arg0)); + temp_f2_6 = (temp_f2_5 * temp_f12_3); + temp_f14_3 = --temp_f12_3; + temp_f8_2 = ((pPlayer->field_10D4->unk20 * temp_f2_6) + (temp_f14_3 * pPlayer->field_10D4->unk10)); + sp74 = temp_f8_2; + temp_f18_2 = ((pPlayer->field_10D4->unk24 * temp_f2_6) + (temp_f14_3 * pPlayer->field_10D4->unk14)); + sp78 = temp_f18_2; + temp_f4_3 = ((pPlayer->field_10D4->unk28 * temp_f2_6) + (temp_f14_3 * pPlayer->field_10D4->unk18)); + sp7C = temp_f4_3; + if ((((pPlayer->field_10D4->unk38 * temp_f4_3) + ((temp_f8_2 * pPlayer->field_10D4->unk30) + (temp_f18_2 * pPlayer->field_10D4->unk34))) + arg1) < ((arg0->unk8 * temp_f4_3) + ((temp_f8_2 * *arg0) + (temp_f18_2 * arg0->unk4)))) + { + return 0; + } + temp_f2_7 = (-(pPlayer->c_halfheight - (arg2->unkC - pPlayer->c_screentop)) * pPlayer->c_scaley); + sp34 = temp_f2_7; + temp_f12_4 = (1.0f / sqrtf(((temp_f2_7 * temp_f2_7) + 1.0f), temp_f14_3, arg0)); + temp_f2_8 = (temp_f2_7 * temp_f12_4); + temp_f14_4 = -temp_f12_4; + temp_f6_2 = ((pPlayer->field_10D4->unk20 * temp_f2_8) + (temp_f14_4 * pPlayer->field_10D4->unk10)); + sp64 = temp_f6_2; + temp_f10_2 = ((pPlayer->field_10D4->unk24 * temp_f2_8) + (temp_f14_4 * pPlayer->field_10D4->unk14)); + sp68 = temp_f10_2; + temp_f18_3 = ((pPlayer->field_10D4->unk28 * temp_f2_8) + (temp_f14_4 * pPlayer->field_10D4->unk18)); + sp6C = temp_f18_3; + if ((((pPlayer->field_10D4->unk38 * temp_f18_3) + ((temp_f6_2 * pPlayer->field_10D4->unk30) + (temp_f10_2 * pPlayer->field_10D4->unk34))) + arg1) < ((arg0->unk8 * temp_f18_3) + ((temp_f6_2 * *arg0) + (temp_f10_2 * arg0->unk4)))) + { + + } + return 1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F078BF4 +/* 0AD724 7F078BF4 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0AD728 7F078BF8 AFB00028 */ sw $s0, 0x28($sp) +/* 0AD72C 7F078BFC 3C108008 */ lui $s0, %hi(pPlayer) +/* 0AD730 7F078C00 8E10A0B0 */ lw $s0, %lo(pPlayer)($s0) +/* 0AD734 7F078C04 AFBF002C */ sw $ra, 0x2c($sp) +/* 0AD738 7F078C08 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0AD73C 7F078C0C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0AD740 7F078C10 AFA60088 */ sw $a2, 0x88($sp) +/* 0AD744 7F078C14 8E0210D4 */ lw $v0, 0x10d4($s0) +/* 0AD748 7F078C18 3C018008 */ lui $at, %hi(flt_CODE_bss_80079980) +/* 0AD74C 7F078C1C 4485B000 */ mtc1 $a1, $f22 +/* 0AD750 7F078C20 C4249980 */ lwc1 $f4, %lo(flt_CODE_bss_80079980)($at) +/* 0AD754 7F078C24 C48A0000 */ lwc1 $f10, ($a0) +/* 0AD758 7F078C28 C4480020 */ lwc1 $f8, 0x20($v0) +/* 0AD75C 7F078C2C 46162180 */ add.s $f6, $f4, $f22 +/* 0AD760 7F078C30 C4440024 */ lwc1 $f4, 0x24($v0) +/* 0AD764 7F078C34 460A4482 */ mul.s $f18, $f8, $f10 +/* 0AD768 7F078C38 C4880004 */ lwc1 $f8, 4($a0) +/* 0AD76C 7F078C3C 8FAE0088 */ lw $t6, 0x88($sp) +/* 0AD770 7F078C40 46082282 */ mul.s $f10, $f4, $f8 +/* 0AD774 7F078C44 C4880008 */ lwc1 $f8, 8($a0) +/* 0AD778 7F078C48 460A9100 */ add.s $f4, $f18, $f10 +/* 0AD77C 7F078C4C C4520028 */ lwc1 $f18, 0x28($v0) +/* 0AD780 7F078C50 46124282 */ mul.s $f10, $f8, $f18 +/* 0AD784 7F078C54 46045200 */ add.s $f8, $f10, $f4 +/* 0AD788 7F078C58 4608303C */ c.lt.s $f6, $f8 +/* 0AD78C 7F078C5C 00000000 */ nop +/* 0AD790 7F078C60 45020004 */ bc1fl .L7F078C74 +/* 0AD794 7F078C64 C5D20000 */ lwc1 $f18, ($t6) +/* 0AD798 7F078C68 1000011B */ b .L7F0790D8 +/* 0AD79C 7F078C6C 00001025 */ move $v0, $zero +/* 0AD7A0 7F078C70 C5D20000 */ lwc1 $f18, ($t6) +.L7F078C74: +/* 0AD7A4 7F078C74 C60A1098 */ lwc1 $f10, 0x1098($s0) +/* 0AD7A8 7F078C78 C60610AC */ lwc1 $f6, 0x10ac($s0) +/* 0AD7AC 7F078C7C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AD7B0 7F078C80 460A9101 */ sub.s $f4, $f18, $f10 +/* 0AD7B4 7F078C84 C61210B4 */ lwc1 $f18, 0x10b4($s0) +/* 0AD7B8 7F078C88 4481A000 */ mtc1 $at, $f20 +/* 0AD7BC 7F078C8C AFA40080 */ sw $a0, 0x80($sp) +/* 0AD7C0 7F078C90 46062201 */ sub.s $f8, $f4, $f6 +/* 0AD7C4 7F078C94 46124082 */ mul.s $f2, $f8, $f18 +/* 0AD7C8 7F078C98 00000000 */ nop +/* 0AD7CC 7F078C9C 46021282 */ mul.s $f10, $f2, $f2 +/* 0AD7D0 7F078CA0 E7A20038 */ swc1 $f2, 0x38($sp) +/* 0AD7D4 7F078CA4 0C007DF8 */ jal sqrtf +/* 0AD7D8 7F078CA8 46145300 */ add.s $f12, $f10, $f20 +/* 0AD7DC 7F078CAC 4600A303 */ div.s $f12, $f20, $f0 +/* 0AD7E0 7F078CB0 3C108008 */ lui $s0, %hi(pPlayer) +/* 0AD7E4 7F078CB4 8E10A0B0 */ lw $s0, %lo(pPlayer)($s0) +/* 0AD7E8 7F078CB8 C7A20038 */ lwc1 $f2, 0x38($sp) +/* 0AD7EC 7F078CBC 8FA40080 */ lw $a0, 0x80($sp) +/* 0AD7F0 7F078CC0 8E0210D4 */ lw $v0, 0x10d4($s0) +/* 0AD7F4 7F078CC4 8FAF0088 */ lw $t7, 0x88($sp) +/* 0AD7F8 7F078CC8 C4440000 */ lwc1 $f4, ($v0) +/* 0AD7FC 7F078CCC C4480020 */ lwc1 $f8, 0x20($v0) +/* 0AD800 7F078CD0 460C1082 */ mul.s $f2, $f2, $f12 +/* 0AD804 7F078CD4 46006387 */ neg.s $f14, $f12 +/* 0AD808 7F078CD8 46047182 */ mul.s $f6, $f14, $f4 +/* 0AD80C 7F078CDC 00000000 */ nop +/* 0AD810 7F078CE0 46024482 */ mul.s $f18, $f8, $f2 +/* 0AD814 7F078CE4 46123281 */ sub.s $f10, $f6, $f18 +/* 0AD818 7F078CE8 E7AA0054 */ swc1 $f10, 0x54($sp) +/* 0AD81C 7F078CEC 8E0210D4 */ lw $v0, 0x10d4($s0) +/* 0AD820 7F078CF0 C4440004 */ lwc1 $f4, 4($v0) +/* 0AD824 7F078CF4 C4460024 */ lwc1 $f6, 0x24($v0) +/* 0AD828 7F078CF8 46047202 */ mul.s $f8, $f14, $f4 +/* 0AD82C 7F078CFC 00000000 */ nop +/* 0AD830 7F078D00 46023482 */ mul.s $f18, $f6, $f2 +/* 0AD834 7F078D04 46124101 */ sub.s $f4, $f8, $f18 +/* 0AD838 7F078D08 E7A40058 */ swc1 $f4, 0x58($sp) +/* 0AD83C 7F078D0C 8E0210D4 */ lw $v0, 0x10d4($s0) +/* 0AD840 7F078D10 C4460008 */ lwc1 $f6, 8($v0) +/* 0AD844 7F078D14 C4520028 */ lwc1 $f18, 0x28($v0) +/* 0AD848 7F078D18 46067202 */ mul.s $f8, $f14, $f6 +/* 0AD84C 7F078D1C 00000000 */ nop +/* 0AD850 7F078D20 46029182 */ mul.s $f6, $f18, $f2 +/* 0AD854 7F078D24 46064481 */ sub.s $f18, $f8, $f6 +/* 0AD858 7F078D28 E7B2005C */ swc1 $f18, 0x5c($sp) +/* 0AD85C 7F078D2C 8E0210D4 */ lw $v0, 0x10d4($s0) +/* 0AD860 7F078D30 C4480030 */ lwc1 $f8, 0x30($v0) +/* 0AD864 7F078D34 46085182 */ mul.s $f6, $f10, $f8 +/* 0AD868 7F078D38 C4480034 */ lwc1 $f8, 0x34($v0) +/* 0AD86C 7F078D3C 46082202 */ mul.s $f8, $f4, $f8 +/* 0AD870 7F078D40 46083180 */ add.s $f6, $f6, $f8 +/* 0AD874 7F078D44 C4480038 */ lwc1 $f8, 0x38($v0) +/* 0AD878 7F078D48 46124202 */ mul.s $f8, $f8, $f18 +/* 0AD87C 7F078D4C 46064400 */ add.s $f16, $f8, $f6 +/* 0AD880 7F078D50 C4860000 */ lwc1 $f6, ($a0) +/* 0AD884 7F078D54 46065282 */ mul.s $f10, $f10, $f6 +/* 0AD888 7F078D58 C4860004 */ lwc1 $f6, 4($a0) +/* 0AD88C 7F078D5C 46168200 */ add.s $f8, $f16, $f22 +/* 0AD890 7F078D60 46062102 */ mul.s $f4, $f4, $f6 +/* 0AD894 7F078D64 46045180 */ add.s $f6, $f10, $f4 +/* 0AD898 7F078D68 C48A0008 */ lwc1 $f10, 8($a0) +/* 0AD89C 7F078D6C 46125102 */ mul.s $f4, $f10, $f18 +/* 0AD8A0 7F078D70 46062280 */ add.s $f10, $f4, $f6 +/* 0AD8A4 7F078D74 460A403C */ c.lt.s $f8, $f10 +/* 0AD8A8 7F078D78 00000000 */ nop +/* 0AD8AC 7F078D7C 45000003 */ bc1f .L7F078D8C +/* 0AD8B0 7F078D80 00000000 */ nop +/* 0AD8B4 7F078D84 100000D4 */ b .L7F0790D8 +/* 0AD8B8 7F078D88 00001025 */ move $v0, $zero +.L7F078D8C: +/* 0AD8BC 7F078D8C C5F20008 */ lwc1 $f18, 8($t7) +/* 0AD8C0 7F078D90 C6041098 */ lwc1 $f4, 0x1098($s0) +/* 0AD8C4 7F078D94 C60810AC */ lwc1 $f8, 0x10ac($s0) +/* 0AD8C8 7F078D98 46049181 */ sub.s $f6, $f18, $f4 +/* 0AD8CC 7F078D9C C60410B4 */ lwc1 $f4, 0x10b4($s0) +/* 0AD8D0 7F078DA0 AFA40080 */ sw $a0, 0x80($sp) +/* 0AD8D4 7F078DA4 46083281 */ sub.s $f10, $f6, $f8 +/* 0AD8D8 7F078DA8 46005487 */ neg.s $f18, $f10 +/* 0AD8DC 7F078DAC 46049082 */ mul.s $f2, $f18, $f4 +/* 0AD8E0 7F078DB0 00000000 */ nop +/* 0AD8E4 7F078DB4 46021182 */ mul.s $f6, $f2, $f2 +/* 0AD8E8 7F078DB8 E7A20038 */ swc1 $f2, 0x38($sp) +/* 0AD8EC 7F078DBC 0C007DF8 */ jal sqrtf +/* 0AD8F0 7F078DC0 46143300 */ add.s $f12, $f6, $f20 +/* 0AD8F4 7F078DC4 4600A303 */ div.s $f12, $f20, $f0 +/* 0AD8F8 7F078DC8 3C108008 */ lui $s0, %hi(pPlayer) +/* 0AD8FC 7F078DCC 8E10A0B0 */ lw $s0, %lo(pPlayer)($s0) +/* 0AD900 7F078DD0 C7A20038 */ lwc1 $f2, 0x38($sp) +/* 0AD904 7F078DD4 8FA40080 */ lw $a0, 0x80($sp) +/* 0AD908 7F078DD8 8E0210D4 */ lw $v0, 0x10d4($s0) +/* 0AD90C 7F078DDC 8FB80088 */ lw $t8, 0x88($sp) +/* 0AD910 7F078DE0 C4480000 */ lwc1 $f8, ($v0) +/* 0AD914 7F078DE4 C4520020 */ lwc1 $f18, 0x20($v0) +/* 0AD918 7F078DE8 460C1082 */ mul.s $f2, $f2, $f12 +/* 0AD91C 7F078DEC 46006387 */ neg.s $f14, $f12 +/* 0AD920 7F078DF0 46007387 */ neg.s $f14, $f14 +/* 0AD924 7F078DF4 46087282 */ mul.s $f10, $f14, $f8 +/* 0AD928 7F078DF8 00000000 */ nop +/* 0AD92C 7F078DFC 46029102 */ mul.s $f4, $f18, $f2 +/* 0AD930 7F078E00 46045181 */ sub.s $f6, $f10, $f4 +/* 0AD934 7F078E04 E7A60044 */ swc1 $f6, 0x44($sp) +/* 0AD938 7F078E08 8E0210D4 */ lw $v0, 0x10d4($s0) +/* 0AD93C 7F078E0C C4480004 */ lwc1 $f8, 4($v0) +/* 0AD940 7F078E10 C44A0024 */ lwc1 $f10, 0x24($v0) +/* 0AD944 7F078E14 46087482 */ mul.s $f18, $f14, $f8 +/* 0AD948 7F078E18 00000000 */ nop +/* 0AD94C 7F078E1C 46025102 */ mul.s $f4, $f10, $f2 +/* 0AD950 7F078E20 46049201 */ sub.s $f8, $f18, $f4 +/* 0AD954 7F078E24 E7A80048 */ swc1 $f8, 0x48($sp) +/* 0AD958 7F078E28 8E0210D4 */ lw $v0, 0x10d4($s0) +/* 0AD95C 7F078E2C C44A0008 */ lwc1 $f10, 8($v0) +/* 0AD960 7F078E30 C4440028 */ lwc1 $f4, 0x28($v0) +/* 0AD964 7F078E34 460A7482 */ mul.s $f18, $f14, $f10 +/* 0AD968 7F078E38 00000000 */ nop +/* 0AD96C 7F078E3C 46022282 */ mul.s $f10, $f4, $f2 +/* 0AD970 7F078E40 460A9101 */ sub.s $f4, $f18, $f10 +/* 0AD974 7F078E44 E7A4004C */ swc1 $f4, 0x4c($sp) +/* 0AD978 7F078E48 8E0210D4 */ lw $v0, 0x10d4($s0) +/* 0AD97C 7F078E4C C4520030 */ lwc1 $f18, 0x30($v0) +/* 0AD980 7F078E50 46123282 */ mul.s $f10, $f6, $f18 +/* 0AD984 7F078E54 C4520034 */ lwc1 $f18, 0x34($v0) +/* 0AD988 7F078E58 46124482 */ mul.s $f18, $f8, $f18 +/* 0AD98C 7F078E5C 46125280 */ add.s $f10, $f10, $f18 +/* 0AD990 7F078E60 C4520038 */ lwc1 $f18, 0x38($v0) +/* 0AD994 7F078E64 46049482 */ mul.s $f18, $f18, $f4 +/* 0AD998 7F078E68 460A9400 */ add.s $f16, $f18, $f10 +/* 0AD99C 7F078E6C C48A0000 */ lwc1 $f10, ($a0) +/* 0AD9A0 7F078E70 460A3182 */ mul.s $f6, $f6, $f10 +/* 0AD9A4 7F078E74 C48A0004 */ lwc1 $f10, 4($a0) +/* 0AD9A8 7F078E78 46168480 */ add.s $f18, $f16, $f22 +/* 0AD9AC 7F078E7C 460A4202 */ mul.s $f8, $f8, $f10 +/* 0AD9B0 7F078E80 46083280 */ add.s $f10, $f6, $f8 +/* 0AD9B4 7F078E84 C4860008 */ lwc1 $f6, 8($a0) +/* 0AD9B8 7F078E88 46043202 */ mul.s $f8, $f6, $f4 +/* 0AD9BC 7F078E8C 460A4180 */ add.s $f6, $f8, $f10 +/* 0AD9C0 7F078E90 4606903C */ c.lt.s $f18, $f6 +/* 0AD9C4 7F078E94 00000000 */ nop +/* 0AD9C8 7F078E98 45000003 */ bc1f .L7F078EA8 +/* 0AD9CC 7F078E9C 00000000 */ nop +/* 0AD9D0 7F078EA0 1000008D */ b .L7F0790D8 +/* 0AD9D4 7F078EA4 00001025 */ move $v0, $zero +.L7F078EA8: +/* 0AD9D8 7F078EA8 C7040004 */ lwc1 $f4, 4($t8) +/* 0AD9DC 7F078EAC C608109C */ lwc1 $f8, 0x109c($s0) +/* 0AD9E0 7F078EB0 C61210B0 */ lwc1 $f18, 0x10b0($s0) +/* 0AD9E4 7F078EB4 46082281 */ sub.s $f10, $f4, $f8 +/* 0AD9E8 7F078EB8 C60410B8 */ lwc1 $f4, 0x10b8($s0) +/* 0AD9EC 7F078EBC AFA40080 */ sw $a0, 0x80($sp) +/* 0AD9F0 7F078EC0 460A9181 */ sub.s $f6, $f18, $f10 +/* 0AD9F4 7F078EC4 46043082 */ mul.s $f2, $f6, $f4 +/* 0AD9F8 7F078EC8 00000000 */ nop +/* 0AD9FC 7F078ECC 46021202 */ mul.s $f8, $f2, $f2 +/* 0ADA00 7F078ED0 E7A20034 */ swc1 $f2, 0x34($sp) +/* 0ADA04 7F078ED4 0C007DF8 */ jal sqrtf +/* 0ADA08 7F078ED8 46144300 */ add.s $f12, $f8, $f20 +/* 0ADA0C 7F078EDC 4600A303 */ div.s $f12, $f20, $f0 +/* 0ADA10 7F078EE0 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 0ADA14 7F078EE4 3C108008 */ lui $s0, %hi(pPlayer) +/* 0ADA18 7F078EE8 8E10A0B0 */ lw $s0, %lo(pPlayer)($s0) +/* 0ADA1C 7F078EEC 8FA40080 */ lw $a0, 0x80($sp) +/* 0ADA20 7F078EF0 8FB90088 */ lw $t9, 0x88($sp) +/* 0ADA24 7F078EF4 8E0210D4 */ lw $v0, 0x10d4($s0) +/* 0ADA28 7F078EF8 C4520020 */ lwc1 $f18, 0x20($v0) +/* 0ADA2C 7F078EFC C4460010 */ lwc1 $f6, 0x10($v0) +/* 0ADA30 7F078F00 460C1082 */ mul.s $f2, $f2, $f12 +/* 0ADA34 7F078F04 46006387 */ neg.s $f14, $f12 +/* 0ADA38 7F078F08 46007387 */ neg.s $f14, $f14 +/* 0ADA3C 7F078F0C 46029282 */ mul.s $f10, $f18, $f2 +/* 0ADA40 7F078F10 00000000 */ nop +/* 0ADA44 7F078F14 46067102 */ mul.s $f4, $f14, $f6 +/* 0ADA48 7F078F18 46045200 */ add.s $f8, $f10, $f4 +/* 0ADA4C 7F078F1C E7A80074 */ swc1 $f8, 0x74($sp) +/* 0ADA50 7F078F20 8E0210D4 */ lw $v0, 0x10d4($s0) +/* 0ADA54 7F078F24 C4520024 */ lwc1 $f18, 0x24($v0) +/* 0ADA58 7F078F28 C44A0014 */ lwc1 $f10, 0x14($v0) +/* 0ADA5C 7F078F2C 46029182 */ mul.s $f6, $f18, $f2 +/* 0ADA60 7F078F30 00000000 */ nop +/* 0ADA64 7F078F34 460A7102 */ mul.s $f4, $f14, $f10 +/* 0ADA68 7F078F38 46043480 */ add.s $f18, $f6, $f4 +/* 0ADA6C 7F078F3C E7B20078 */ swc1 $f18, 0x78($sp) +/* 0ADA70 7F078F40 8E0210D4 */ lw $v0, 0x10d4($s0) +/* 0ADA74 7F078F44 C44A0028 */ lwc1 $f10, 0x28($v0) +/* 0ADA78 7F078F48 C4440018 */ lwc1 $f4, 0x18($v0) +/* 0ADA7C 7F078F4C 46025182 */ mul.s $f6, $f10, $f2 +/* 0ADA80 7F078F50 00000000 */ nop +/* 0ADA84 7F078F54 46047282 */ mul.s $f10, $f14, $f4 +/* 0ADA88 7F078F58 460A3100 */ add.s $f4, $f6, $f10 +/* 0ADA8C 7F078F5C E7A4007C */ swc1 $f4, 0x7c($sp) +/* 0ADA90 7F078F60 8E0210D4 */ lw $v0, 0x10d4($s0) +/* 0ADA94 7F078F64 C4460030 */ lwc1 $f6, 0x30($v0) +/* 0ADA98 7F078F68 46064282 */ mul.s $f10, $f8, $f6 +/* 0ADA9C 7F078F6C C4460034 */ lwc1 $f6, 0x34($v0) +/* 0ADAA0 7F078F70 46069182 */ mul.s $f6, $f18, $f6 +/* 0ADAA4 7F078F74 46065280 */ add.s $f10, $f10, $f6 +/* 0ADAA8 7F078F78 C4460038 */ lwc1 $f6, 0x38($v0) +/* 0ADAAC 7F078F7C 46043182 */ mul.s $f6, $f6, $f4 +/* 0ADAB0 7F078F80 460A3400 */ add.s $f16, $f6, $f10 +/* 0ADAB4 7F078F84 C48A0000 */ lwc1 $f10, ($a0) +/* 0ADAB8 7F078F88 460A4202 */ mul.s $f8, $f8, $f10 +/* 0ADABC 7F078F8C C48A0004 */ lwc1 $f10, 4($a0) +/* 0ADAC0 7F078F90 46168180 */ add.s $f6, $f16, $f22 +/* 0ADAC4 7F078F94 460A9482 */ mul.s $f18, $f18, $f10 +/* 0ADAC8 7F078F98 46124280 */ add.s $f10, $f8, $f18 +/* 0ADACC 7F078F9C C4880008 */ lwc1 $f8, 8($a0) +/* 0ADAD0 7F078FA0 46044482 */ mul.s $f18, $f8, $f4 +/* 0ADAD4 7F078FA4 460A9200 */ add.s $f8, $f18, $f10 +/* 0ADAD8 7F078FA8 4608303C */ c.lt.s $f6, $f8 +/* 0ADADC 7F078FAC 00000000 */ nop +/* 0ADAE0 7F078FB0 45000003 */ bc1f .L7F078FC0 +/* 0ADAE4 7F078FB4 00000000 */ nop +/* 0ADAE8 7F078FB8 10000047 */ b .L7F0790D8 +/* 0ADAEC 7F078FBC 00001025 */ move $v0, $zero +.L7F078FC0: +/* 0ADAF0 7F078FC0 C724000C */ lwc1 $f4, 0xc($t9) +/* 0ADAF4 7F078FC4 C612109C */ lwc1 $f18, 0x109c($s0) +/* 0ADAF8 7F078FC8 C60610B0 */ lwc1 $f6, 0x10b0($s0) +/* 0ADAFC 7F078FCC 46122281 */ sub.s $f10, $f4, $f18 +/* 0ADB00 7F078FD0 C61210B8 */ lwc1 $f18, 0x10b8($s0) +/* 0ADB04 7F078FD4 AFA40080 */ sw $a0, 0x80($sp) +/* 0ADB08 7F078FD8 460A3201 */ sub.s $f8, $f6, $f10 +/* 0ADB0C 7F078FDC 46004107 */ neg.s $f4, $f8 +/* 0ADB10 7F078FE0 46122082 */ mul.s $f2, $f4, $f18 +/* 0ADB14 7F078FE4 00000000 */ nop +/* 0ADB18 7F078FE8 46021182 */ mul.s $f6, $f2, $f2 +/* 0ADB1C 7F078FEC E7A20034 */ swc1 $f2, 0x34($sp) +/* 0ADB20 7F078FF0 0C007DF8 */ jal sqrtf +/* 0ADB24 7F078FF4 46143300 */ add.s $f12, $f6, $f20 +/* 0ADB28 7F078FF8 4600A303 */ div.s $f12, $f20, $f0 +/* 0ADB2C 7F078FFC C7A20034 */ lwc1 $f2, 0x34($sp) +/* 0ADB30 7F079000 3C108008 */ lui $s0, %hi(pPlayer) +/* 0ADB34 7F079004 8E10A0B0 */ lw $s0, %lo(pPlayer)($s0) +/* 0ADB38 7F079008 8FA40080 */ lw $a0, 0x80($sp) +/* 0ADB3C 7F07900C 8E0210D4 */ lw $v0, 0x10d4($s0) +/* 0ADB40 7F079010 C44A0020 */ lwc1 $f10, 0x20($v0) +/* 0ADB44 7F079014 C4440010 */ lwc1 $f4, 0x10($v0) +/* 0ADB48 7F079018 460C1082 */ mul.s $f2, $f2, $f12 +/* 0ADB4C 7F07901C 46006387 */ neg.s $f14, $f12 +/* 0ADB50 7F079020 46025202 */ mul.s $f8, $f10, $f2 +/* 0ADB54 7F079024 00000000 */ nop +/* 0ADB58 7F079028 46047482 */ mul.s $f18, $f14, $f4 +/* 0ADB5C 7F07902C 46124180 */ add.s $f6, $f8, $f18 +/* 0ADB60 7F079030 E7A60064 */ swc1 $f6, 0x64($sp) +/* 0ADB64 7F079034 8E0210D4 */ lw $v0, 0x10d4($s0) +/* 0ADB68 7F079038 C44A0024 */ lwc1 $f10, 0x24($v0) +/* 0ADB6C 7F07903C C4480014 */ lwc1 $f8, 0x14($v0) +/* 0ADB70 7F079040 46025102 */ mul.s $f4, $f10, $f2 +/* 0ADB74 7F079044 00000000 */ nop +/* 0ADB78 7F079048 46087482 */ mul.s $f18, $f14, $f8 +/* 0ADB7C 7F07904C 46122280 */ add.s $f10, $f4, $f18 +/* 0ADB80 7F079050 E7AA0068 */ swc1 $f10, 0x68($sp) +/* 0ADB84 7F079054 8E0210D4 */ lw $v0, 0x10d4($s0) +/* 0ADB88 7F079058 C4480028 */ lwc1 $f8, 0x28($v0) +/* 0ADB8C 7F07905C C4520018 */ lwc1 $f18, 0x18($v0) +/* 0ADB90 7F079060 46024102 */ mul.s $f4, $f8, $f2 +/* 0ADB94 7F079064 00000000 */ nop +/* 0ADB98 7F079068 46127202 */ mul.s $f8, $f14, $f18 +/* 0ADB9C 7F07906C 46082480 */ add.s $f18, $f4, $f8 +/* 0ADBA0 7F079070 E7B2006C */ swc1 $f18, 0x6c($sp) +/* 0ADBA4 7F079074 8E0210D4 */ lw $v0, 0x10d4($s0) +/* 0ADBA8 7F079078 C4440030 */ lwc1 $f4, 0x30($v0) +/* 0ADBAC 7F07907C 46043202 */ mul.s $f8, $f6, $f4 +/* 0ADBB0 7F079080 C4440034 */ lwc1 $f4, 0x34($v0) +/* 0ADBB4 7F079084 46045102 */ mul.s $f4, $f10, $f4 +/* 0ADBB8 7F079088 46044200 */ add.s $f8, $f8, $f4 +/* 0ADBBC 7F07908C C4440038 */ lwc1 $f4, 0x38($v0) +/* 0ADBC0 7F079090 24020001 */ li $v0, 1 +/* 0ADBC4 7F079094 46122102 */ mul.s $f4, $f4, $f18 +/* 0ADBC8 7F079098 46082400 */ add.s $f16, $f4, $f8 +/* 0ADBCC 7F07909C C4880000 */ lwc1 $f8, ($a0) +/* 0ADBD0 7F0790A0 46083182 */ mul.s $f6, $f6, $f8 +/* 0ADBD4 7F0790A4 C4880004 */ lwc1 $f8, 4($a0) +/* 0ADBD8 7F0790A8 46168100 */ add.s $f4, $f16, $f22 +/* 0ADBDC 7F0790AC 46085282 */ mul.s $f10, $f10, $f8 +/* 0ADBE0 7F0790B0 460A3200 */ add.s $f8, $f6, $f10 +/* 0ADBE4 7F0790B4 C4860008 */ lwc1 $f6, 8($a0) +/* 0ADBE8 7F0790B8 46123282 */ mul.s $f10, $f6, $f18 +/* 0ADBEC 7F0790BC 46085180 */ add.s $f6, $f10, $f8 +/* 0ADBF0 7F0790C0 4606203C */ c.lt.s $f4, $f6 +/* 0ADBF4 7F0790C4 00000000 */ nop +/* 0ADBF8 7F0790C8 45000003 */ bc1f .L7F0790D8 +/* 0ADBFC 7F0790CC 00000000 */ nop +/* 0ADC00 7F0790D0 10000001 */ b .L7F0790D8 +/* 0ADC04 7F0790D4 00001025 */ move $v0, $zero +.L7F0790D8: +/* 0ADC08 7F0790D8 8FBF002C */ lw $ra, 0x2c($sp) +/* 0ADC0C 7F0790DC D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0ADC10 7F0790E0 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0ADC14 7F0790E4 8FB00028 */ lw $s0, 0x28($sp) +/* 0ADC18 7F0790E8 03E00008 */ jr $ra +/* 0ADC1C 7F0790EC 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + +#ifdef NONMATCHING +u32 sub_GAME_7F0790F0(void) +{ + s32 temp_s6; + s32 temp_s2; + s32 temp_s7; + void *temp_t3; + void *temp_t6; + f32 temp_f0; + f32 temp_f2; + s32 temp_s0; + s32 temp_s7_2; + s32 temp_hi; + void *temp_t5; + void *temp_t8; + f32 temp_f0_2; + f32 temp_f2_2; + s32 temp_s0_2; + s32 phi_s0; + s32 phi_s1; + s32 phi_s7; + s32 phi_s1_2; + s32 phi_s7_2; + s32 phi_s0_2; + s32 phi_s1_3; + s32 phi_s7_3; + s32 phi_s1_4; + u32 phi_s3; + s32 phi_s1_5; + s32 phi_s1_6; + s32 phi_s1_7; + s32 phi_s1_8; + + temp_s6 = get_cur_playernum(); + temp_s2 = get_num_players(); + phi_s1_2 = 1; + phi_s7_2 = 0; + if (dword_CODE_bss_80079C68 > 0) + { + phi_s7 = 0; +block_2: + temp_s7 = (phi_s7 + 1); + subroutine_arg0->unk29E0 = (s32) (subroutine_arg0->unk29E0 + 1); + phi_s0 = 0; + phi_s1 = 0; + phi_s1_7 = 0; + if (temp_s2 > 0) + { +block_3: + phi_s1_5 = phi_s1_7; + if (phi_s0 != temp_s6) + { + temp_t3 = (&ptr_BONDdata_p1 + (phi_s0 * 4)); + phi_s1_5 = phi_s1_7; + if ((*temp_t3)->unkA8 != 0) + { + temp_t6 = (&dword_CODE_bss_80079C28 + (((s32) subroutine_arg0->unk29E0 % (s32) dword_CODE_bss_80079C68) * 4)); + temp_f0 = ((*temp_t3)->unkA8->unk8 - **temp_t6); + temp_f2 = ((*temp_t3)->unkA8->unk10 - (*temp_t6)->unk8); + phi_s1_5 = phi_s1_7; + if (sqrtf(((temp_f0 * temp_f0) + (temp_f2 * temp_f2))) < 1000.0f) + { + phi_s1_5 = 1; + } + } + } + temp_s0 = (phi_s0 + 1); + phi_s0 = temp_s0; + phi_s1 = phi_s1_5; + phi_s1_7 = phi_s1_5; + if (temp_s0 != temp_s2) + { + goto block_3; + } + } + phi_s1_2 = phi_s1; + phi_s7_2 = temp_s7; + if (phi_s1 != 0) + { + phi_s7 = temp_s7; + if (temp_s7 < dword_CODE_bss_80079C68) + { + goto block_2; + } + phi_s1_2 = phi_s1; + phi_s7_2 = temp_s7; + } + } + phi_s1_4 = phi_s1_2; + phi_s3 = sp4C; + if (phi_s1_2 != 0) + { + phi_s1_4 = phi_s1_2; + phi_s3 = sp4C; + if (phi_s7_2 < dword_CODE_bss_80079C68) + { + phi_s7_3 = phi_s7_2; +block_14: + temp_s7_2 = (phi_s7_3 + 1); + subroutine_arg0->unk29E0 = (s32) (subroutine_arg0->unk29E0 + 1); + temp_hi = ((s32) subroutine_arg0->unk29E0 % (s32) dword_CODE_bss_80079C68); + phi_s0_2 = 0; + phi_s1_3 = 0; + phi_s1_8 = 0; + if (temp_s2 > 0) + { +block_15: + phi_s1_6 = phi_s1_8; + if (phi_s0_2 != temp_s6) + { + temp_t5 = (&ptr_BONDdata_p1 + (phi_s0_2 * 4)); + phi_s1_6 = phi_s1_8; + if ((*temp_t5)->unkA8 != 0) + { + temp_t8 = (&dword_CODE_bss_80079C28 + (temp_hi * 4)); + temp_f0_2 = ((*temp_t5)->unkA8->unk8 - **temp_t8); + temp_f2_2 = ((*temp_t5)->unkA8->unk10 - (*temp_t8)->unk8); + phi_s1_6 = phi_s1_8; + if (sqrtf(((temp_f0_2 * temp_f0_2) + (temp_f2_2 * temp_f2_2))) < 100.0f) + { + phi_s1_6 = 1; + } + } + } + temp_s0_2 = (phi_s0_2 + 1); + phi_s0_2 = temp_s0_2; + phi_s1_3 = phi_s1_6; + phi_s1_8 = phi_s1_6; + if (temp_s0_2 != temp_s2) + { + goto block_15; + } + } + phi_s1_4 = phi_s1_3; + phi_s3 = temp_hi; + if (phi_s1_3 != 0) + { + phi_s7_3 = temp_s7_2; + phi_s1_4 = phi_s1_3; + phi_s3 = temp_hi; + if (temp_s7_2 < dword_CODE_bss_80079C68) + { + goto block_14; + } + } + } + } + if (phi_s1_4 != 0) + { + phi_s3 = (get_random_value() % (u32) dword_CODE_bss_80079C68); + } + return phi_s3; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0790F0 +/* 0ADC20 7F0790F0 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0ADC24 7F0790F4 AFBF0044 */ sw $ra, 0x44($sp) +/* 0ADC28 7F0790F8 AFBE0040 */ sw $fp, 0x40($sp) +/* 0ADC2C 7F0790FC AFB7003C */ sw $s7, 0x3c($sp) +/* 0ADC30 7F079100 AFB60038 */ sw $s6, 0x38($sp) +/* 0ADC34 7F079104 AFB50034 */ sw $s5, 0x34($sp) +/* 0ADC38 7F079108 AFB40030 */ sw $s4, 0x30($sp) +/* 0ADC3C 7F07910C AFB3002C */ sw $s3, 0x2c($sp) +/* 0ADC40 7F079110 AFB20028 */ sw $s2, 0x28($sp) +/* 0ADC44 7F079114 AFB10024 */ sw $s1, 0x24($sp) +/* 0ADC48 7F079118 AFB00020 */ sw $s0, 0x20($sp) +/* 0ADC4C 7F07911C 0FC26C54 */ jal get_cur_playernum +/* 0ADC50 7F079120 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0ADC54 7F079124 0FC26919 */ jal get_num_players +/* 0ADC58 7F079128 0040B025 */ move $s6, $v0 +/* 0ADC5C 7F07912C 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_80079C68) +/* 0ADC60 7F079130 8DCE9C68 */ lw $t6, %lo(dword_CODE_bss_80079C68)($t6) +/* 0ADC64 7F079134 00409025 */ move $s2, $v0 +/* 0ADC68 7F079138 24110001 */ li $s1, 1 +/* 0ADC6C 7F07913C 19C00047 */ blez $t6, .L7F07925C +/* 0ADC70 7F079140 0000B825 */ move $s7, $zero +/* 0ADC74 7F079144 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0ADC78 7F079148 3C1E8008 */ lui $fp, %hi(pPlayer) +/* 0ADC7C 7F07914C 3C158008 */ lui $s5, %hi(dword_CODE_bss_80079C28) +/* 0ADC80 7F079150 3C148008 */ lui $s4, %hi(ptr_BONDdata_p1) +/* 0ADC84 7F079154 4481A000 */ mtc1 $at, $f20 +/* 0ADC88 7F079158 26949EE0 */ addiu $s4, %lo(ptr_BONDdata_p1) # addiu $s4, $s4, -0x6120 +/* 0ADC8C 7F07915C 26B59C28 */ addiu $s5, %lo(dword_CODE_bss_80079C28) # addiu $s5, $s5, -0x63d8 +/* 0ADC90 7F079160 27DEA0B0 */ addiu $fp, %lo(pPlayer) # addiu $fp, $fp, -0x5f50 +/* 0ADC94 7F079164 8FC20000 */ lw $v0, ($fp) +.L7F079168: +/* 0ADC98 7F079168 3C098008 */ lui $t1, %hi(dword_CODE_bss_80079C68) +/* 0ADC9C 7F07916C 26F70001 */ addiu $s7, $s7, 1 +/* 0ADCA0 7F079170 8C4F29E0 */ lw $t7, 0x29e0($v0) +/* 0ADCA4 7F079174 00008825 */ move $s1, $zero +/* 0ADCA8 7F079178 00008025 */ move $s0, $zero +/* 0ADCAC 7F07917C 25F80001 */ addiu $t8, $t7, 1 +/* 0ADCB0 7F079180 AC5829E0 */ sw $t8, 0x29e0($v0) +/* 0ADCB4 7F079184 8FD90000 */ lw $t9, ($fp) +/* 0ADCB8 7F079188 8D299C68 */ lw $t1, %lo(dword_CODE_bss_80079C68)($t1) +/* 0ADCBC 7F07918C 8F2829E0 */ lw $t0, 0x29e0($t9) +/* 0ADCC0 7F079190 0109001A */ div $zero, $t0, $t1 +/* 0ADCC4 7F079194 00009810 */ mfhi $s3 +/* 0ADCC8 7F079198 15200002 */ bnez $t1, .L7F0791A4 +/* 0ADCCC 7F07919C 00000000 */ nop +/* 0ADCD0 7F0791A0 0007000D */ break 7 +.L7F0791A4: +/* 0ADCD4 7F0791A4 2401FFFF */ li $at, -1 +/* 0ADCD8 7F0791A8 15210004 */ bne $t1, $at, .L7F0791BC +/* 0ADCDC 7F0791AC 3C018000 */ lui $at, 0x8000 +/* 0ADCE0 7F0791B0 15010002 */ bne $t0, $at, .L7F0791BC +/* 0ADCE4 7F0791B4 00000000 */ nop +/* 0ADCE8 7F0791B8 0006000D */ break 6 +.L7F0791BC: +/* 0ADCEC 7F0791BC 1A40001F */ blez $s2, .L7F07923C +/* 0ADCF0 7F0791C0 00000000 */ nop +.L7F0791C4: +/* 0ADCF4 7F0791C4 5216001B */ beql $s0, $s6, .L7F079234 +/* 0ADCF8 7F0791C8 26100001 */ addiu $s0, $s0, 1 +/* 0ADCFC 7F0791CC 00105080 */ sll $t2, $s0, 2 +/* 0ADD00 7F0791D0 028A5821 */ addu $t3, $s4, $t2 +/* 0ADD04 7F0791D4 8D6C0000 */ lw $t4, ($t3) +/* 0ADD08 7F0791D8 8D8200A8 */ lw $v0, 0xa8($t4) +/* 0ADD0C 7F0791DC 50400015 */ beql $v0, $zero, .L7F079234 +/* 0ADD10 7F0791E0 26100001 */ addiu $s0, $s0, 1 +/* 0ADD14 7F0791E4 00136880 */ sll $t5, $s3, 2 +/* 0ADD18 7F0791E8 02AD7021 */ addu $t6, $s5, $t5 +/* 0ADD1C 7F0791EC 8DC30000 */ lw $v1, ($t6) +/* 0ADD20 7F0791F0 C4440008 */ lwc1 $f4, 8($v0) +/* 0ADD24 7F0791F4 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0ADD28 7F0791F8 C4660000 */ lwc1 $f6, ($v1) +/* 0ADD2C 7F0791FC C46A0008 */ lwc1 $f10, 8($v1) +/* 0ADD30 7F079200 46062001 */ sub.s $f0, $f4, $f6 +/* 0ADD34 7F079204 460A4081 */ sub.s $f2, $f8, $f10 +/* 0ADD38 7F079208 46000402 */ mul.s $f16, $f0, $f0 +/* 0ADD3C 7F07920C 00000000 */ nop +/* 0ADD40 7F079210 46021482 */ mul.s $f18, $f2, $f2 +/* 0ADD44 7F079214 0C007DF8 */ jal sqrtf +/* 0ADD48 7F079218 46128300 */ add.s $f12, $f16, $f18 +/* 0ADD4C 7F07921C 4614003C */ c.lt.s $f0, $f20 +/* 0ADD50 7F079220 00000000 */ nop +/* 0ADD54 7F079224 45020003 */ bc1fl .L7F079234 +/* 0ADD58 7F079228 26100001 */ addiu $s0, $s0, 1 +/* 0ADD5C 7F07922C 24110001 */ li $s1, 1 +/* 0ADD60 7F079230 26100001 */ addiu $s0, $s0, 1 +.L7F079234: +/* 0ADD64 7F079234 1612FFE3 */ bne $s0, $s2, .L7F0791C4 +/* 0ADD68 7F079238 00000000 */ nop +.L7F07923C: +/* 0ADD6C 7F07923C 12200007 */ beqz $s1, .L7F07925C +/* 0ADD70 7F079240 AFB3004C */ sw $s3, 0x4c($sp) +/* 0ADD74 7F079244 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_80079C68) +/* 0ADD78 7F079248 8DEF9C68 */ lw $t7, %lo(dword_CODE_bss_80079C68)($t7) +/* 0ADD7C 7F07924C 02EF082A */ slt $at, $s7, $t7 +/* 0ADD80 7F079250 5420FFC5 */ bnezl $at, .L7F079168 +/* 0ADD84 7F079254 8FC20000 */ lw $v0, ($fp) +/* 0ADD88 7F079258 AFB3004C */ sw $s3, 0x4c($sp) +.L7F07925C: +/* 0ADD8C 7F07925C 3C148008 */ lui $s4, %hi(ptr_BONDdata_p1) +/* 0ADD90 7F079260 3C158008 */ lui $s5, %hi(dword_CODE_bss_80079C28) +/* 0ADD94 7F079264 3C1E8008 */ lui $fp, %hi(pPlayer) +/* 0ADD98 7F079268 27DEA0B0 */ addiu $fp, %lo(pPlayer) # addiu $fp, $fp, -0x5f50 +/* 0ADD9C 7F07926C 26B59C28 */ addiu $s5, %lo(dword_CODE_bss_80079C28) # addiu $s5, $s5, -0x63d8 +/* 0ADDA0 7F079270 26949EE0 */ addiu $s4, %lo(ptr_BONDdata_p1) # addiu $s4, $s4, -0x6120 +/* 0ADDA4 7F079274 12200044 */ beqz $s1, .L7F079388 +/* 0ADDA8 7F079278 8FB3004C */ lw $s3, 0x4c($sp) +/* 0ADDAC 7F07927C 3C188008 */ lui $t8, %hi(dword_CODE_bss_80079C68) +/* 0ADDB0 7F079280 8F189C68 */ lw $t8, %lo(dword_CODE_bss_80079C68)($t8) +/* 0ADDB4 7F079284 02F8082A */ slt $at, $s7, $t8 +/* 0ADDB8 7F079288 1020003F */ beqz $at, .L7F079388 +/* 0ADDBC 7F07928C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0ADDC0 7F079290 4481A000 */ mtc1 $at, $f20 +/* 0ADDC4 7F079294 00000000 */ nop +/* 0ADDC8 7F079298 8FC20000 */ lw $v0, ($fp) +.L7F07929C: +/* 0ADDCC 7F07929C 3C0B8008 */ lui $t3, %hi(dword_CODE_bss_80079C68) +/* 0ADDD0 7F0792A0 26F70001 */ addiu $s7, $s7, 1 +/* 0ADDD4 7F0792A4 8C5929E0 */ lw $t9, 0x29e0($v0) +/* 0ADDD8 7F0792A8 00008825 */ move $s1, $zero +/* 0ADDDC 7F0792AC 00008025 */ move $s0, $zero +/* 0ADDE0 7F0792B0 27280001 */ addiu $t0, $t9, 1 +/* 0ADDE4 7F0792B4 AC4829E0 */ sw $t0, 0x29e0($v0) +/* 0ADDE8 7F0792B8 8FC90000 */ lw $t1, ($fp) +/* 0ADDEC 7F0792BC 8D6B9C68 */ lw $t3, %lo(dword_CODE_bss_80079C68)($t3) +/* 0ADDF0 7F0792C0 8D2A29E0 */ lw $t2, 0x29e0($t1) +/* 0ADDF4 7F0792C4 014B001A */ div $zero, $t2, $t3 +/* 0ADDF8 7F0792C8 00009810 */ mfhi $s3 +/* 0ADDFC 7F0792CC 15600002 */ bnez $t3, .L7F0792D8 +/* 0ADE00 7F0792D0 00000000 */ nop +/* 0ADE04 7F0792D4 0007000D */ break 7 +.L7F0792D8: +/* 0ADE08 7F0792D8 2401FFFF */ li $at, -1 +/* 0ADE0C 7F0792DC 15610004 */ bne $t3, $at, .L7F0792F0 +/* 0ADE10 7F0792E0 3C018000 */ lui $at, 0x8000 +/* 0ADE14 7F0792E4 15410002 */ bne $t2, $at, .L7F0792F0 +/* 0ADE18 7F0792E8 00000000 */ nop +/* 0ADE1C 7F0792EC 0006000D */ break 6 +.L7F0792F0: +/* 0ADE20 7F0792F0 1A40001F */ blez $s2, .L7F079370 +/* 0ADE24 7F0792F4 00000000 */ nop +.L7F0792F8: +/* 0ADE28 7F0792F8 5216001B */ beql $s0, $s6, .L7F079368 +/* 0ADE2C 7F0792FC 26100001 */ addiu $s0, $s0, 1 +/* 0ADE30 7F079300 00106080 */ sll $t4, $s0, 2 +/* 0ADE34 7F079304 028C6821 */ addu $t5, $s4, $t4 +/* 0ADE38 7F079308 8DAE0000 */ lw $t6, ($t5) +/* 0ADE3C 7F07930C 8DC200A8 */ lw $v0, 0xa8($t6) +/* 0ADE40 7F079310 50400015 */ beql $v0, $zero, .L7F079368 +/* 0ADE44 7F079314 26100001 */ addiu $s0, $s0, 1 +/* 0ADE48 7F079318 00137880 */ sll $t7, $s3, 2 +/* 0ADE4C 7F07931C 02AFC021 */ addu $t8, $s5, $t7 +/* 0ADE50 7F079320 8F030000 */ lw $v1, ($t8) +/* 0ADE54 7F079324 C4440008 */ lwc1 $f4, 8($v0) +/* 0ADE58 7F079328 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0ADE5C 7F07932C C4660000 */ lwc1 $f6, ($v1) +/* 0ADE60 7F079330 C46A0008 */ lwc1 $f10, 8($v1) +/* 0ADE64 7F079334 46062001 */ sub.s $f0, $f4, $f6 +/* 0ADE68 7F079338 460A4081 */ sub.s $f2, $f8, $f10 +/* 0ADE6C 7F07933C 46000402 */ mul.s $f16, $f0, $f0 +/* 0ADE70 7F079340 00000000 */ nop +/* 0ADE74 7F079344 46021482 */ mul.s $f18, $f2, $f2 +/* 0ADE78 7F079348 0C007DF8 */ jal sqrtf +/* 0ADE7C 7F07934C 46128300 */ add.s $f12, $f16, $f18 +/* 0ADE80 7F079350 4614003C */ c.lt.s $f0, $f20 +/* 0ADE84 7F079354 00000000 */ nop +/* 0ADE88 7F079358 45020003 */ bc1fl .L7F079368 +/* 0ADE8C 7F07935C 26100001 */ addiu $s0, $s0, 1 +/* 0ADE90 7F079360 24110001 */ li $s1, 1 +/* 0ADE94 7F079364 26100001 */ addiu $s0, $s0, 1 +.L7F079368: +/* 0ADE98 7F079368 1612FFE3 */ bne $s0, $s2, .L7F0792F8 +/* 0ADE9C 7F07936C 00000000 */ nop +.L7F079370: +/* 0ADEA0 7F079370 12200005 */ beqz $s1, .L7F079388 +/* 0ADEA4 7F079374 3C198008 */ lui $t9, %hi(dword_CODE_bss_80079C68) +/* 0ADEA8 7F079378 8F399C68 */ lw $t9, %lo(dword_CODE_bss_80079C68)($t9) +/* 0ADEAC 7F07937C 02F9082A */ slt $at, $s7, $t9 +/* 0ADEB0 7F079380 5420FFC6 */ bnezl $at, .L7F07929C +/* 0ADEB4 7F079384 8FC20000 */ lw $v0, ($fp) +.L7F079388: +/* 0ADEB8 7F079388 5220000B */ beql $s1, $zero, .L7F0793B8 +/* 0ADEBC 7F07938C 8FBF0044 */ lw $ra, 0x44($sp) +/* 0ADEC0 7F079390 0C002914 */ jal get_random_value +/* 0ADEC4 7F079394 00000000 */ nop +/* 0ADEC8 7F079398 3C088008 */ lui $t0, %hi(dword_CODE_bss_80079C68) +/* 0ADECC 7F07939C 8D089C68 */ lw $t0, %lo(dword_CODE_bss_80079C68)($t0) +/* 0ADED0 7F0793A0 0048001B */ divu $zero, $v0, $t0 +/* 0ADED4 7F0793A4 00009810 */ mfhi $s3 +/* 0ADED8 7F0793A8 15000002 */ bnez $t0, .L7F0793B4 +/* 0ADEDC 7F0793AC 00000000 */ nop +/* 0ADEE0 7F0793B0 0007000D */ break 7 +.L7F0793B4: +/* 0ADEE4 7F0793B4 8FBF0044 */ lw $ra, 0x44($sp) +.L7F0793B8: +/* 0ADEE8 7F0793B8 02601025 */ move $v0, $s3 +/* 0ADEEC 7F0793BC 8FB3002C */ lw $s3, 0x2c($sp) +/* 0ADEF0 7F0793C0 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0ADEF4 7F0793C4 8FB00020 */ lw $s0, 0x20($sp) +/* 0ADEF8 7F0793C8 8FB10024 */ lw $s1, 0x24($sp) +/* 0ADEFC 7F0793CC 8FB20028 */ lw $s2, 0x28($sp) +/* 0ADF00 7F0793D0 8FB40030 */ lw $s4, 0x30($sp) +/* 0ADF04 7F0793D4 8FB50034 */ lw $s5, 0x34($sp) +/* 0ADF08 7F0793D8 8FB60038 */ lw $s6, 0x38($sp) +/* 0ADF0C 7F0793DC 8FB7003C */ lw $s7, 0x3c($sp) +/* 0ADF10 7F0793E0 8FBE0040 */ lw $fp, 0x40($sp) +/* 0ADF14 7F0793E4 03E00008 */ jr $ra +/* 0ADF18 7F0793E8 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + +#ifdef NONMATCHING +void init_player_BONDdata(void) +{ + if (get_num_players() >= 2) + { + pPlayer->controlstyle = get_player_control_style(get_cur_playernum()); + cur_player_set_control_type(get_player_control_style(get_cur_playernum())); + } + pPlayer->current_model_xpos = 0.0f; + pPlayer->current_model_ypos = 0.0f; + pPlayer->current_model_zpos = 0.0f; + pPlayer->previous_model_xpos = 0.0f; + pPlayer->previous_model_ypos = 0.0f; + pPlayer->previous_model_zpos = 0.0f; + pPlayer->current_room_xpos = 0.0f; + pPlayer->current_room_ypos = 0.0f; + pPlayer->current_room_zpos = 0.0f; + pPlayer->unknown = 0; + pPlayer->xpos = 0.0f; + pPlayer->ypos = 0.0f; + pPlayer->zpos = 0.0f; + pPlayer->xpos2 = 0.0f; + pPlayer->ypos2 = 0.0f; + pPlayer->zpos2 = 1.0f; + pPlayer->xoffset = 0.0f; + pPlayer->yoffset = 1.0f; + pPlayer->zoffset = 0.0f; + pPlayer->xpos3 = 0.0f; + pPlayer->ypos3 = 0.0f; + pPlayer->zpos3 = 0.0f; + pPlayer->room_pointer = 0; + pPlayer->field_3C4 = 0.0f; + pPlayer->field_3C8 = 0.0f; + pPlayer->field_3CC = 1.0f; + pPlayer->field_84 = 0.0f; + pPlayer->field_88 = 0.0f; + pPlayer->field_8C = 0; + pPlayer->field_90 = 0.0f; + pPlayer->field_94 = 0; + pPlayer->field_98 = 0.0f; + pPlayer->field_1274 = 0.0f; + pPlayer->field_1278 = 0.0f; + pPlayer->field_127C = 0.0f; + pPlayer->crouchposition = 2; + pPlayer->field_29FC = 2; + pPlayer->ducking_height_offset = 0.0f; + pPlayer->field_A4 = 0.0f; + pPlayer->field_AC = 1; + pPlayer->field_D0 = 0; + pPlayer->bonddead = 0; + pPlayer->bondhealth = 1.0f; + pPlayer->bondarmour = 0.0f; + pPlayer->oldhealth = 1.0f; + pPlayer->oldarmour = 0.0f; + pPlayer->apparenthealth = 1.0f; + pPlayer->apparentarmour = 0.0f; + pPlayer->damageshowtime = -1; + pPlayer->healthshowtime = -1; + pPlayer->field_1C0 = 0; + pPlayer->field_1C4 = 0; + pPlayer->pause_animation_state = 0; + pPlayer->paused_flag = 1; + pPlayer->open_close_solo_watch_menu = 0; + pPlayer->field_1A0 = 0; + pPlayer->bondfadefracnew = 0.0f; + pPlayer->speedtheta = 0.0f; + pPlayer->vv_costheta = 1.0f; + pPlayer->vv_sintheta = 0.0f; + pPlayer->vv_verta = -4.0f; + pPlayer->vv_verta360 = (f32) pPlayer->vv_verta; + if (pPlayer->vv_verta360 < 0.0f) + { + pPlayer->vv_verta360 = (f32) (pPlayer->vv_verta360 + 360.0f); + } + pPlayer->speedverta = 0.0f; + pPlayer->vv_cosverta = 1.0f; + pPlayer->vv_sinverta = 0.0f; + pPlayer->speedsideways = 0.0f; + pPlayer->speedstrafe = 0.0f; + pPlayer->speedforwards = 0.0f; + pPlayer->field_2A4C = 0.0f; + pPlayer->speedboost = 1.0f; + pPlayer->speedmaxtime60 = 0; + pPlayer->boost_factor_x = 0.0f; + pPlayer->boost_factor_y = 0.0f; + pPlayer->boost_factor_z = 0.0f; + pPlayer->field_104 = 0; + pPlayer->field_108 = 0; + pPlayer->field_10C = 0; + pPlayer->movecentrerelease = 0; + pPlayer->lookaheadcentreenabled = 1; + pPlayer->automovecentreenabled = 1; + pPlayer->fastmovecentreenabled = 0; + pPlayer->automovecentre = 1; + pPlayer->insightaimmode = 0; + pPlayer->autoyaimenabled = 1; + pPlayer->autoaimy = 0.0f; + pPlayer->autoyaimtime = 0; + pPlayer->autoyaimtime60 = -1; + pPlayer->autoxaimenabled = 1; + pPlayer->autoaimx = 0.0f; + pPlayer->autoxaimtime = 0; + pPlayer->autoxaimtime60 = -1; + pPlayer->tint_red = 0xff; + pPlayer->tint_green = 0xff; + pPlayer->tint_blue = 0xff; + pPlayer->tint_alpha = 0.0f; + pPlayer->field_3E0 = -1.0f; + pPlayer->time_for_fade = -1.0f; + pPlayer->field_3E8 = 0xff; + pPlayer->field_3EC = 0xff; + pPlayer->field_3F0 = 0xff; + pPlayer->field_3F4 = 0xff; + pPlayer->field_3F8 = 0xff; + pPlayer->field_3FC = 0xff; + pPlayer->field_400 = 0.0f; + pPlayer->field_404 = 0.0f; + pPlayer->viewport_alpha = -1.0f; + pPlayer->bondfadetime60 = -1.0f; + pPlayer->bondfadetimemax = 0.0f; + pPlayer->bondfadefracold = 0.0f; + pPlayer->field_42C = 2; + pPlayer->controlstyle = 0; + pPlayer->pause_starting_angle = 0.0f; + pPlayer->field_208 = 0.0f; + pPlayer->pause_target_angle = 0.0f; + pPlayer->field_210 = 0.0f; + pPlayer->field_214 = 0.0f; + pPlayer->field_218 = 0; + pPlayer->step_in_view_watch_animation = 0; + pPlayer->pause_animation_counter = 0.0f; + pPlayer->pausing_flag = 0; + pPlayer->field_3B4 = (u16)0; + pPlayer->field_3B6 = (u16)0; + pPlayer->field_29C0 = 15.0f; + pPlayer->field_2A04 = -1; + pPlayer->field_2A08 = 0.0f; + pPlayer->field_2A0C = 0.0f; + pPlayer->field_2A6C = 0; + pPlayer->field_2A70 = 0; +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel init_player_BONDdata +/* 0ADF1C 7F0793EC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0ADF20 7F0793F0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0ADF24 7F0793F4 0FC26919 */ jal get_num_players +/* 0ADF28 7F0793F8 00000000 */ nop +/* 0ADF2C 7F0793FC 28410002 */ slti $at, $v0, 2 +/* 0ADF30 7F079400 1420000E */ bnez $at, .L7F07943C +/* 0ADF34 7F079404 00000000 */ nop +/* 0ADF38 7F079408 0FC26C54 */ jal get_cur_playernum +/* 0ADF3C 7F07940C 00000000 */ nop +/* 0ADF40 7F079410 0FC0402F */ jal get_player_control_style +/* 0ADF44 7F079414 00402025 */ move $a0, $v0 +/* 0ADF48 7F079418 3C038008 */ lui $v1, %hi(pPlayer) +/* 0ADF4C 7F07941C 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0ADF50 7F079420 8C6E0000 */ lw $t6, ($v1) +/* 0ADF54 7F079424 0FC26C54 */ jal get_cur_playernum +/* 0ADF58 7F079428 ADC20430 */ sw $v0, 0x430($t6) +/* 0ADF5C 7F07942C 0FC0402F */ jal get_player_control_style +/* 0ADF60 7F079430 00402025 */ move $a0, $v0 +/* 0ADF64 7F079434 0FC29374 */ jal cur_player_set_control_type +/* 0ADF68 7F079438 00402025 */ move $a0, $v0 +.L7F07943C: +/* 0ADF6C 7F07943C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0ADF70 7F079440 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0ADF74 7F079444 44800000 */ mtc1 $zero, $f0 +/* 0ADF78 7F079448 8C6F0000 */ lw $t7, ($v1) +/* 0ADF7C 7F07944C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0ADF80 7F079450 44811000 */ mtc1 $at, $f2 +/* 0ADF84 7F079454 E5E00038 */ swc1 $f0, 0x38($t7) +/* 0ADF88 7F079458 8C780000 */ lw $t8, ($v1) +/* 0ADF8C 7F07945C 24070002 */ li $a3, 2 +/* 0ADF90 7F079460 24050001 */ li $a1, 1 +/* 0ADF94 7F079464 E700003C */ swc1 $f0, 0x3c($t8) +/* 0ADF98 7F079468 8C790000 */ lw $t9, ($v1) +/* 0ADF9C 7F07946C 2406FFFF */ li $a2, -1 +/* 0ADFA0 7F079470 3C01C080 */ li $at, 0xC0800000 # -4.000000 +/* 0ADFA4 7F079474 E7200040 */ swc1 $f0, 0x40($t9) +/* 0ADFA8 7F079478 8C680000 */ lw $t0, ($v1) +/* 0ADFAC 7F07947C 44812000 */ mtc1 $at, $f4 +/* 0ADFB0 7F079480 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0ADFB4 7F079484 E5000044 */ swc1 $f0, 0x44($t0) +/* 0ADFB8 7F079488 8C690000 */ lw $t1, ($v1) +/* 0ADFBC 7F07948C E5200048 */ swc1 $f0, 0x48($t1) +/* 0ADFC0 7F079490 8C6A0000 */ lw $t2, ($v1) +/* 0ADFC4 7F079494 E540004C */ swc1 $f0, 0x4c($t2) +/* 0ADFC8 7F079498 8C6B0000 */ lw $t3, ($v1) +/* 0ADFCC 7F07949C E5600050 */ swc1 $f0, 0x50($t3) +/* 0ADFD0 7F0794A0 8C6C0000 */ lw $t4, ($v1) +/* 0ADFD4 7F0794A4 E5800054 */ swc1 $f0, 0x54($t4) +/* 0ADFD8 7F0794A8 8C6D0000 */ lw $t5, ($v1) +/* 0ADFDC 7F0794AC E5A00058 */ swc1 $f0, 0x58($t5) +/* 0ADFE0 7F0794B0 8C6E0000 */ lw $t6, ($v1) +/* 0ADFE4 7F0794B4 ADC00000 */ sw $zero, ($t6) +/* 0ADFE8 7F0794B8 8C6F0000 */ lw $t7, ($v1) +/* 0ADFEC 7F0794BC E5E00004 */ swc1 $f0, 4($t7) +/* 0ADFF0 7F0794C0 8C780000 */ lw $t8, ($v1) +/* 0ADFF4 7F0794C4 E7000008 */ swc1 $f0, 8($t8) +/* 0ADFF8 7F0794C8 8C790000 */ lw $t9, ($v1) +/* 0ADFFC 7F0794CC E720000C */ swc1 $f0, 0xc($t9) +/* 0AE000 7F0794D0 8C680000 */ lw $t0, ($v1) +/* 0AE004 7F0794D4 E5000010 */ swc1 $f0, 0x10($t0) +/* 0AE008 7F0794D8 8C690000 */ lw $t1, ($v1) +/* 0AE00C 7F0794DC E5200014 */ swc1 $f0, 0x14($t1) +/* 0AE010 7F0794E0 8C6A0000 */ lw $t2, ($v1) +/* 0AE014 7F0794E4 E5420018 */ swc1 $f2, 0x18($t2) +/* 0AE018 7F0794E8 8C6B0000 */ lw $t3, ($v1) +/* 0AE01C 7F0794EC E560001C */ swc1 $f0, 0x1c($t3) +/* 0AE020 7F0794F0 8C6C0000 */ lw $t4, ($v1) +/* 0AE024 7F0794F4 E5820020 */ swc1 $f2, 0x20($t4) +/* 0AE028 7F0794F8 8C6D0000 */ lw $t5, ($v1) +/* 0AE02C 7F0794FC E5A00024 */ swc1 $f0, 0x24($t5) +/* 0AE030 7F079500 8C6E0000 */ lw $t6, ($v1) +/* 0AE034 7F079504 E5C00028 */ swc1 $f0, 0x28($t6) +/* 0AE038 7F079508 8C6F0000 */ lw $t7, ($v1) +/* 0AE03C 7F07950C E5E0002C */ swc1 $f0, 0x2c($t7) +/* 0AE040 7F079510 8C780000 */ lw $t8, ($v1) +/* 0AE044 7F079514 E7000030 */ swc1 $f0, 0x30($t8) +/* 0AE048 7F079518 8C790000 */ lw $t9, ($v1) +/* 0AE04C 7F07951C AF200034 */ sw $zero, 0x34($t9) +/* 0AE050 7F079520 8C680000 */ lw $t0, ($v1) +/* 0AE054 7F079524 E50003C4 */ swc1 $f0, 0x3c4($t0) +/* 0AE058 7F079528 8C690000 */ lw $t1, ($v1) +/* 0AE05C 7F07952C E52003C8 */ swc1 $f0, 0x3c8($t1) +/* 0AE060 7F079530 8C6A0000 */ lw $t2, ($v1) +/* 0AE064 7F079534 E54203CC */ swc1 $f2, 0x3cc($t2) +/* 0AE068 7F079538 8C6B0000 */ lw $t3, ($v1) +/* 0AE06C 7F07953C E5600084 */ swc1 $f0, 0x84($t3) +/* 0AE070 7F079540 8C6C0000 */ lw $t4, ($v1) +/* 0AE074 7F079544 E5800088 */ swc1 $f0, 0x88($t4) +/* 0AE078 7F079548 8C6D0000 */ lw $t5, ($v1) +/* 0AE07C 7F07954C ADA0008C */ sw $zero, 0x8c($t5) +/* 0AE080 7F079550 8C6E0000 */ lw $t6, ($v1) +/* 0AE084 7F079554 E5C00090 */ swc1 $f0, 0x90($t6) +/* 0AE088 7F079558 8C6F0000 */ lw $t7, ($v1) +/* 0AE08C 7F07955C ADE00094 */ sw $zero, 0x94($t7) +/* 0AE090 7F079560 8C780000 */ lw $t8, ($v1) +/* 0AE094 7F079564 E7000098 */ swc1 $f0, 0x98($t8) +/* 0AE098 7F079568 8C790000 */ lw $t9, ($v1) +/* 0AE09C 7F07956C E7201274 */ swc1 $f0, 0x1274($t9) +/* 0AE0A0 7F079570 8C680000 */ lw $t0, ($v1) +/* 0AE0A4 7F079574 E5001278 */ swc1 $f0, 0x1278($t0) +/* 0AE0A8 7F079578 8C690000 */ lw $t1, ($v1) +/* 0AE0AC 7F07957C E520127C */ swc1 $f0, 0x127c($t1) +/* 0AE0B0 7F079580 8C6A0000 */ lw $t2, ($v1) +/* 0AE0B4 7F079584 AD47009C */ sw $a3, 0x9c($t2) +/* 0AE0B8 7F079588 8C6B0000 */ lw $t3, ($v1) +/* 0AE0BC 7F07958C AD6729FC */ sw $a3, 0x29fc($t3) +/* 0AE0C0 7F079590 8C6C0000 */ lw $t4, ($v1) +/* 0AE0C4 7F079594 E58000A0 */ swc1 $f0, 0xa0($t4) +/* 0AE0C8 7F079598 8C6D0000 */ lw $t5, ($v1) +/* 0AE0CC 7F07959C E5A000A4 */ swc1 $f0, 0xa4($t5) +/* 0AE0D0 7F0795A0 8C6E0000 */ lw $t6, ($v1) +/* 0AE0D4 7F0795A4 ADC500AC */ sw $a1, 0xac($t6) +/* 0AE0D8 7F0795A8 8C6F0000 */ lw $t7, ($v1) +/* 0AE0DC 7F0795AC ADE000D0 */ sw $zero, 0xd0($t7) +/* 0AE0E0 7F0795B0 8C780000 */ lw $t8, ($v1) +/* 0AE0E4 7F0795B4 AF0000D8 */ sw $zero, 0xd8($t8) +/* 0AE0E8 7F0795B8 8C790000 */ lw $t9, ($v1) +/* 0AE0EC 7F0795BC E72200DC */ swc1 $f2, 0xdc($t9) +/* 0AE0F0 7F0795C0 8C680000 */ lw $t0, ($v1) +/* 0AE0F4 7F0795C4 E50000E0 */ swc1 $f0, 0xe0($t0) +/* 0AE0F8 7F0795C8 8C690000 */ lw $t1, ($v1) +/* 0AE0FC 7F0795CC E52200E4 */ swc1 $f2, 0xe4($t1) +/* 0AE100 7F0795D0 8C6A0000 */ lw $t2, ($v1) +/* 0AE104 7F0795D4 E54000E8 */ swc1 $f0, 0xe8($t2) +/* 0AE108 7F0795D8 8C6B0000 */ lw $t3, ($v1) +/* 0AE10C 7F0795DC E56200EC */ swc1 $f2, 0xec($t3) +/* 0AE110 7F0795E0 8C6C0000 */ lw $t4, ($v1) +/* 0AE114 7F0795E4 E58000F0 */ swc1 $f0, 0xf0($t4) +/* 0AE118 7F0795E8 8C6D0000 */ lw $t5, ($v1) +/* 0AE11C 7F0795EC ADA600F4 */ sw $a2, 0xf4($t5) +/* 0AE120 7F0795F0 8C6E0000 */ lw $t6, ($v1) +/* 0AE124 7F0795F4 ADC600F8 */ sw $a2, 0xf8($t6) +/* 0AE128 7F0795F8 8C6F0000 */ lw $t7, ($v1) +/* 0AE12C 7F0795FC ADE001C0 */ sw $zero, 0x1c0($t7) +/* 0AE130 7F079600 8C780000 */ lw $t8, ($v1) +/* 0AE134 7F079604 AF0001C4 */ sw $zero, 0x1c4($t8) +/* 0AE138 7F079608 8C790000 */ lw $t9, ($v1) +/* 0AE13C 7F07960C AF2001C8 */ sw $zero, 0x1c8($t9) +/* 0AE140 7F079610 8C680000 */ lw $t0, ($v1) +/* 0AE144 7F079614 AD0501CC */ sw $a1, 0x1cc($t0) +/* 0AE148 7F079618 8C690000 */ lw $t1, ($v1) +/* 0AE14C 7F07961C AD2001D0 */ sw $zero, 0x1d0($t1) +/* 0AE150 7F079620 8C6A0000 */ lw $t2, ($v1) +/* 0AE154 7F079624 AD4001A0 */ sw $zero, 0x1a0($t2) +/* 0AE158 7F079628 8C6B0000 */ lw $t3, ($v1) +/* 0AE15C 7F07962C E560019C */ swc1 $f0, 0x19c($t3) +/* 0AE160 7F079630 8C6C0000 */ lw $t4, ($v1) +/* 0AE164 7F079634 E580014C */ swc1 $f0, 0x14c($t4) +/* 0AE168 7F079638 8C6D0000 */ lw $t5, ($v1) +/* 0AE16C 7F07963C E5A20150 */ swc1 $f2, 0x150($t5) +/* 0AE170 7F079640 8C6E0000 */ lw $t6, ($v1) +/* 0AE174 7F079644 E5C00154 */ swc1 $f0, 0x154($t6) +/* 0AE178 7F079648 8C6F0000 */ lw $t7, ($v1) +/* 0AE17C 7F07964C E5E40158 */ swc1 $f4, 0x158($t7) +/* 0AE180 7F079650 8C640000 */ lw $a0, ($v1) +/* 0AE184 7F079654 C4860158 */ lwc1 $f6, 0x158($a0) +/* 0AE188 7F079658 E486015C */ swc1 $f6, 0x15c($a0) +/* 0AE18C 7F07965C 8C640000 */ lw $a0, ($v1) +/* 0AE190 7F079660 C48C015C */ lwc1 $f12, 0x15c($a0) +/* 0AE194 7F079664 4600603C */ c.lt.s $f12, $f0 +/* 0AE198 7F079668 00000000 */ nop +/* 0AE19C 7F07966C 45020007 */ bc1fl .L7F07968C +/* 0AE1A0 7F079670 E4800160 */ swc1 $f0, 0x160($a0) +/* 0AE1A4 7F079674 44814000 */ mtc1 $at, $f8 +/* 0AE1A8 7F079678 00000000 */ nop +/* 0AE1AC 7F07967C 46086280 */ add.s $f10, $f12, $f8 +/* 0AE1B0 7F079680 E48A015C */ swc1 $f10, 0x15c($a0) +/* 0AE1B4 7F079684 8C640000 */ lw $a0, ($v1) +/* 0AE1B8 7F079688 E4800160 */ swc1 $f0, 0x160($a0) +.L7F07968C: +/* 0AE1BC 7F07968C 8C780000 */ lw $t8, ($v1) +/* 0AE1C0 7F079690 240200FF */ li $v0, 255 +/* 0AE1C4 7F079694 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0AE1C8 7F079698 E7020164 */ swc1 $f2, 0x164($t8) +/* 0AE1CC 7F07969C 8C790000 */ lw $t9, ($v1) +/* 0AE1D0 7F0796A0 44816000 */ mtc1 $at, $f12 +/* 0AE1D4 7F0796A4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0AE1D8 7F0796A8 E7200168 */ swc1 $f0, 0x168($t9) +/* 0AE1DC 7F0796AC 8C680000 */ lw $t0, ($v1) +/* 0AE1E0 7F0796B0 44818000 */ mtc1 $at, $f16 +/* 0AE1E4 7F0796B4 E500016C */ swc1 $f0, 0x16c($t0) +/* 0AE1E8 7F0796B8 8C690000 */ lw $t1, ($v1) +/* 0AE1EC 7F0796BC E5200170 */ swc1 $f0, 0x170($t1) +/* 0AE1F0 7F0796C0 8C6A0000 */ lw $t2, ($v1) +/* 0AE1F4 7F0796C4 E5400174 */ swc1 $f0, 0x174($t2) +/* 0AE1F8 7F0796C8 8C6B0000 */ lw $t3, ($v1) +/* 0AE1FC 7F0796CC E5602A4C */ swc1 $f0, 0x2a4c($t3) +/* 0AE200 7F0796D0 8C6C0000 */ lw $t4, ($v1) +/* 0AE204 7F0796D4 E5820178 */ swc1 $f2, 0x178($t4) +/* 0AE208 7F0796D8 8C6D0000 */ lw $t5, ($v1) +/* 0AE20C 7F0796DC ADA0017C */ sw $zero, 0x17c($t5) +/* 0AE210 7F0796E0 8C6E0000 */ lw $t6, ($v1) +/* 0AE214 7F0796E4 E5C00180 */ swc1 $f0, 0x180($t6) +/* 0AE218 7F0796E8 8C6F0000 */ lw $t7, ($v1) +/* 0AE21C 7F0796EC E5E00184 */ swc1 $f0, 0x184($t7) +/* 0AE220 7F0796F0 8C780000 */ lw $t8, ($v1) +/* 0AE224 7F0796F4 E7000188 */ swc1 $f0, 0x188($t8) +/* 0AE228 7F0796F8 8C790000 */ lw $t9, ($v1) +/* 0AE22C 7F0796FC AF200104 */ sw $zero, 0x104($t9) +/* 0AE230 7F079700 8C680000 */ lw $t0, ($v1) +/* 0AE234 7F079704 AD000108 */ sw $zero, 0x108($t0) +/* 0AE238 7F079708 8C690000 */ lw $t1, ($v1) +/* 0AE23C 7F07970C AD20010C */ sw $zero, 0x10c($t1) +/* 0AE240 7F079710 8C6A0000 */ lw $t2, ($v1) +/* 0AE244 7F079714 AD400110 */ sw $zero, 0x110($t2) +/* 0AE248 7F079718 8C6B0000 */ lw $t3, ($v1) +/* 0AE24C 7F07971C AD650114 */ sw $a1, 0x114($t3) +/* 0AE250 7F079720 8C6C0000 */ lw $t4, ($v1) +/* 0AE254 7F079724 AD850118 */ sw $a1, 0x118($t4) +/* 0AE258 7F079728 8C6D0000 */ lw $t5, ($v1) +/* 0AE25C 7F07972C ADA0011C */ sw $zero, 0x11c($t5) +/* 0AE260 7F079730 8C6E0000 */ lw $t6, ($v1) +/* 0AE264 7F079734 ADC50120 */ sw $a1, 0x120($t6) +/* 0AE268 7F079738 8C6F0000 */ lw $t7, ($v1) +/* 0AE26C 7F07973C ADE00124 */ sw $zero, 0x124($t7) +/* 0AE270 7F079740 8C780000 */ lw $t8, ($v1) +/* 0AE274 7F079744 AF050128 */ sw $a1, 0x128($t8) +/* 0AE278 7F079748 8C790000 */ lw $t9, ($v1) +/* 0AE27C 7F07974C E720012C */ swc1 $f0, 0x12c($t9) +/* 0AE280 7F079750 8C680000 */ lw $t0, ($v1) +/* 0AE284 7F079754 AD000130 */ sw $zero, 0x130($t0) +/* 0AE288 7F079758 8C690000 */ lw $t1, ($v1) +/* 0AE28C 7F07975C AD260134 */ sw $a2, 0x134($t1) +/* 0AE290 7F079760 8C6A0000 */ lw $t2, ($v1) +/* 0AE294 7F079764 AD450138 */ sw $a1, 0x138($t2) +/* 0AE298 7F079768 8C6B0000 */ lw $t3, ($v1) +/* 0AE29C 7F07976C E560013C */ swc1 $f0, 0x13c($t3) +/* 0AE2A0 7F079770 8C6C0000 */ lw $t4, ($v1) +/* 0AE2A4 7F079774 AD800140 */ sw $zero, 0x140($t4) +/* 0AE2A8 7F079778 8C6D0000 */ lw $t5, ($v1) +/* 0AE2AC 7F07977C ADA60144 */ sw $a2, 0x144($t5) +/* 0AE2B0 7F079780 8C6E0000 */ lw $t6, ($v1) +/* 0AE2B4 7F079784 ADC203D0 */ sw $v0, 0x3d0($t6) +/* 0AE2B8 7F079788 8C6F0000 */ lw $t7, ($v1) +/* 0AE2BC 7F07978C ADE203D4 */ sw $v0, 0x3d4($t7) +/* 0AE2C0 7F079790 8C780000 */ lw $t8, ($v1) +/* 0AE2C4 7F079794 AF0203D8 */ sw $v0, 0x3d8($t8) +/* 0AE2C8 7F079798 8C790000 */ lw $t9, ($v1) +/* 0AE2CC 7F07979C E72003DC */ swc1 $f0, 0x3dc($t9) +/* 0AE2D0 7F0797A0 8C680000 */ lw $t0, ($v1) +/* 0AE2D4 7F0797A4 E50C03E0 */ swc1 $f12, 0x3e0($t0) +/* 0AE2D8 7F0797A8 8C690000 */ lw $t1, ($v1) +/* 0AE2DC 7F0797AC E52C03E4 */ swc1 $f12, 0x3e4($t1) +/* 0AE2E0 7F0797B0 8C6A0000 */ lw $t2, ($v1) +/* 0AE2E4 7F0797B4 AD4203E8 */ sw $v0, 0x3e8($t2) +/* 0AE2E8 7F0797B8 8C6B0000 */ lw $t3, ($v1) +/* 0AE2EC 7F0797BC AD6203EC */ sw $v0, 0x3ec($t3) +/* 0AE2F0 7F0797C0 8C6C0000 */ lw $t4, ($v1) +/* 0AE2F4 7F0797C4 AD8203F0 */ sw $v0, 0x3f0($t4) +/* 0AE2F8 7F0797C8 8C6D0000 */ lw $t5, ($v1) +/* 0AE2FC 7F0797CC ADA203F4 */ sw $v0, 0x3f4($t5) +/* 0AE300 7F0797D0 8C6E0000 */ lw $t6, ($v1) +/* 0AE304 7F0797D4 ADC203F8 */ sw $v0, 0x3f8($t6) +/* 0AE308 7F0797D8 8C6F0000 */ lw $t7, ($v1) +/* 0AE30C 7F0797DC ADE203FC */ sw $v0, 0x3fc($t7) +/* 0AE310 7F0797E0 8C780000 */ lw $t8, ($v1) +/* 0AE314 7F0797E4 E7000400 */ swc1 $f0, 0x400($t8) +/* 0AE318 7F0797E8 8C790000 */ lw $t9, ($v1) +/* 0AE31C 7F0797EC E7200404 */ swc1 $f0, 0x404($t9) +/* 0AE320 7F0797F0 8C680000 */ lw $t0, ($v1) +/* 0AE324 7F0797F4 E50C018C */ swc1 $f12, 0x18c($t0) +/* 0AE328 7F0797F8 8C690000 */ lw $t1, ($v1) +/* 0AE32C 7F0797FC E52C0190 */ swc1 $f12, 0x190($t1) +/* 0AE330 7F079800 8C6A0000 */ lw $t2, ($v1) +/* 0AE334 7F079804 E5400194 */ swc1 $f0, 0x194($t2) +/* 0AE338 7F079808 8C6B0000 */ lw $t3, ($v1) +/* 0AE33C 7F07980C E5600198 */ swc1 $f0, 0x198($t3) +/* 0AE340 7F079810 8C6C0000 */ lw $t4, ($v1) +/* 0AE344 7F079814 AD87042C */ sw $a3, 0x42c($t4) +/* 0AE348 7F079818 8C6D0000 */ lw $t5, ($v1) +/* 0AE34C 7F07981C ADA00430 */ sw $zero, 0x430($t5) +/* 0AE350 7F079820 8C6E0000 */ lw $t6, ($v1) +/* 0AE354 7F079824 E5C00204 */ swc1 $f0, 0x204($t6) +/* 0AE358 7F079828 8C6F0000 */ lw $t7, ($v1) +/* 0AE35C 7F07982C E5E00208 */ swc1 $f0, 0x208($t7) +/* 0AE360 7F079830 8C780000 */ lw $t8, ($v1) +/* 0AE364 7F079834 E700020C */ swc1 $f0, 0x20c($t8) +/* 0AE368 7F079838 8C790000 */ lw $t9, ($v1) +/* 0AE36C 7F07983C E7200210 */ swc1 $f0, 0x210($t9) +/* 0AE370 7F079840 8C680000 */ lw $t0, ($v1) +/* 0AE374 7F079844 E5000214 */ swc1 $f0, 0x214($t0) +/* 0AE378 7F079848 8C690000 */ lw $t1, ($v1) +/* 0AE37C 7F07984C AD200218 */ sw $zero, 0x218($t1) +/* 0AE380 7F079850 8C6A0000 */ lw $t2, ($v1) +/* 0AE384 7F079854 AD400220 */ sw $zero, 0x220($t2) +/* 0AE388 7F079858 8C6B0000 */ lw $t3, ($v1) +/* 0AE38C 7F07985C E5600224 */ swc1 $f0, 0x224($t3) +/* 0AE390 7F079860 8C6C0000 */ lw $t4, ($v1) +/* 0AE394 7F079864 AD800200 */ sw $zero, 0x200($t4) +/* 0AE398 7F079868 8C6D0000 */ lw $t5, ($v1) +/* 0AE39C 7F07986C A5A003B4 */ sh $zero, 0x3b4($t5) +/* 0AE3A0 7F079870 8C6E0000 */ lw $t6, ($v1) +/* 0AE3A4 7F079874 A5C003B6 */ sh $zero, 0x3b6($t6) +/* 0AE3A8 7F079878 8C6F0000 */ lw $t7, ($v1) +/* 0AE3AC 7F07987C E5F029C0 */ swc1 $f16, 0x29c0($t7) +/* 0AE3B0 7F079880 8C780000 */ lw $t8, ($v1) +/* 0AE3B4 7F079884 A7062A04 */ sh $a2, 0x2a04($t8) +/* 0AE3B8 7F079888 8C790000 */ lw $t9, ($v1) +/* 0AE3BC 7F07988C E7202A08 */ swc1 $f0, 0x2a08($t9) +/* 0AE3C0 7F079890 8C680000 */ lw $t0, ($v1) +/* 0AE3C4 7F079894 E5002A0C */ swc1 $f0, 0x2a0c($t0) +/* 0AE3C8 7F079898 8C690000 */ lw $t1, ($v1) +/* 0AE3CC 7F07989C AD202A6C */ sw $zero, 0x2a6c($t1) +/* 0AE3D0 7F0798A0 8C6A0000 */ lw $t2, ($v1) +/* 0AE3D4 7F0798A4 AD402A70 */ sw $zero, 0x2a70($t2) +/* 0AE3D8 7F0798A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AE3DC 7F0798AC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0AE3E0 7F0798B0 03E00008 */ jr $ra +/* 0AE3E4 7F0798B4 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel init_player_BONDdata +/* 0AE54C 7F0799DC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0AE550 7F0799E0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0AE554 7F0799E4 0FC26C01 */ jal get_num_players +/* 0AE558 7F0799E8 00000000 */ nop +/* 0AE55C 7F0799EC 28410002 */ slti $at, $v0, 2 +/* 0AE560 7F0799F0 1420000E */ bnez $at, .L7F079A2C +/* 0AE564 7F0799F4 00000000 */ nop +/* 0AE568 7F0799F8 0FC26F3C */ jal get_cur_playernum +/* 0AE56C 7F0799FC 00000000 */ nop +/* 0AE570 7F079A00 0FC0403F */ jal get_player_control_style +/* 0AE574 7F079A04 00402025 */ move $a0, $v0 +/* 0AE578 7F079A08 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0AE57C 7F079A0C 2463A120 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5ee0 +/* 0AE580 7F079A10 8C6E0000 */ lw $t6, ($v1) +/* 0AE584 7F079A14 0FC26F3C */ jal get_cur_playernum +/* 0AE588 7F079A18 ADC20430 */ sw $v0, 0x430($t6) +/* 0AE58C 7F079A1C 0FC0403F */ jal get_player_control_style +/* 0AE590 7F079A20 00402025 */ move $a0, $v0 +/* 0AE594 7F079A24 0FC2965C */ jal cur_player_set_control_type +/* 0AE598 7F079A28 00402025 */ move $a0, $v0 +.L7F079A2C: +/* 0AE59C 7F079A2C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0AE5A0 7F079A30 2463A120 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5ee0 +/* 0AE5A4 7F079A34 44800000 */ mtc1 $zero, $f0 +/* 0AE5A8 7F079A38 8C6F0000 */ lw $t7, ($v1) +/* 0AE5AC 7F079A3C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AE5B0 7F079A40 44811000 */ mtc1 $at, $f2 +/* 0AE5B4 7F079A44 E5E00038 */ swc1 $f0, 0x38($t7) +/* 0AE5B8 7F079A48 8C780000 */ lw $t8, ($v1) +/* 0AE5BC 7F079A4C 24070002 */ li $a3, 2 +/* 0AE5C0 7F079A50 24050001 */ li $a1, 1 +/* 0AE5C4 7F079A54 E700003C */ swc1 $f0, 0x3c($t8) +/* 0AE5C8 7F079A58 8C790000 */ lw $t9, ($v1) +/* 0AE5CC 7F079A5C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0AE5D0 7F079A60 44816000 */ mtc1 $at, $f12 +/* 0AE5D4 7F079A64 E7200040 */ swc1 $f0, 0x40($t9) +/* 0AE5D8 7F079A68 8C680000 */ lw $t0, ($v1) +/* 0AE5DC 7F079A6C 3C01C080 */ li $at, 0xC0800000 # -4.000000 +/* 0AE5E0 7F079A70 44812000 */ mtc1 $at, $f4 +/* 0AE5E4 7F079A74 E5000044 */ swc1 $f0, 0x44($t0) +/* 0AE5E8 7F079A78 8C690000 */ lw $t1, ($v1) +/* 0AE5EC 7F079A7C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0AE5F0 7F079A80 E5200048 */ swc1 $f0, 0x48($t1) +/* 0AE5F4 7F079A84 8C6A0000 */ lw $t2, ($v1) +/* 0AE5F8 7F079A88 E540004C */ swc1 $f0, 0x4c($t2) +/* 0AE5FC 7F079A8C 8C6B0000 */ lw $t3, ($v1) +/* 0AE600 7F079A90 E5600050 */ swc1 $f0, 0x50($t3) +/* 0AE604 7F079A94 8C6C0000 */ lw $t4, ($v1) +/* 0AE608 7F079A98 E5800054 */ swc1 $f0, 0x54($t4) +/* 0AE60C 7F079A9C 8C6D0000 */ lw $t5, ($v1) +/* 0AE610 7F079AA0 E5A00058 */ swc1 $f0, 0x58($t5) +/* 0AE614 7F079AA4 8C6E0000 */ lw $t6, ($v1) +/* 0AE618 7F079AA8 ADC00000 */ sw $zero, ($t6) +/* 0AE61C 7F079AAC 8C6F0000 */ lw $t7, ($v1) +/* 0AE620 7F079AB0 E5E00004 */ swc1 $f0, 4($t7) +/* 0AE624 7F079AB4 8C780000 */ lw $t8, ($v1) +/* 0AE628 7F079AB8 E7000008 */ swc1 $f0, 8($t8) +/* 0AE62C 7F079ABC 8C790000 */ lw $t9, ($v1) +/* 0AE630 7F079AC0 E720000C */ swc1 $f0, 0xc($t9) +/* 0AE634 7F079AC4 8C680000 */ lw $t0, ($v1) +/* 0AE638 7F079AC8 E5000010 */ swc1 $f0, 0x10($t0) +/* 0AE63C 7F079ACC 8C690000 */ lw $t1, ($v1) +/* 0AE640 7F079AD0 E5200014 */ swc1 $f0, 0x14($t1) +/* 0AE644 7F079AD4 8C6A0000 */ lw $t2, ($v1) +/* 0AE648 7F079AD8 E5420018 */ swc1 $f2, 0x18($t2) +/* 0AE64C 7F079ADC 8C6B0000 */ lw $t3, ($v1) +/* 0AE650 7F079AE0 E560001C */ swc1 $f0, 0x1c($t3) +/* 0AE654 7F079AE4 8C6C0000 */ lw $t4, ($v1) +/* 0AE658 7F079AE8 E5820020 */ swc1 $f2, 0x20($t4) +/* 0AE65C 7F079AEC 8C6D0000 */ lw $t5, ($v1) +/* 0AE660 7F079AF0 E5A00024 */ swc1 $f0, 0x24($t5) +/* 0AE664 7F079AF4 8C6E0000 */ lw $t6, ($v1) +/* 0AE668 7F079AF8 E5C00028 */ swc1 $f0, 0x28($t6) +/* 0AE66C 7F079AFC 8C6F0000 */ lw $t7, ($v1) +/* 0AE670 7F079B00 E5E0002C */ swc1 $f0, 0x2c($t7) +/* 0AE674 7F079B04 8C780000 */ lw $t8, ($v1) +/* 0AE678 7F079B08 E7000030 */ swc1 $f0, 0x30($t8) +/* 0AE67C 7F079B0C 8C790000 */ lw $t9, ($v1) +/* 0AE680 7F079B10 AF200034 */ sw $zero, 0x34($t9) +/* 0AE684 7F079B14 8C680000 */ lw $t0, ($v1) +/* 0AE688 7F079B18 E50003C4 */ swc1 $f0, 0x3c4($t0) +/* 0AE68C 7F079B1C 8C690000 */ lw $t1, ($v1) +/* 0AE690 7F079B20 E52003C8 */ swc1 $f0, 0x3c8($t1) +/* 0AE694 7F079B24 8C6A0000 */ lw $t2, ($v1) +/* 0AE698 7F079B28 E54203CC */ swc1 $f2, 0x3cc($t2) +/* 0AE69C 7F079B2C 8C6B0000 */ lw $t3, ($v1) +/* 0AE6A0 7F079B30 E5600084 */ swc1 $f0, 0x84($t3) +/* 0AE6A4 7F079B34 8C6C0000 */ lw $t4, ($v1) +/* 0AE6A8 7F079B38 E5800088 */ swc1 $f0, 0x88($t4) +/* 0AE6AC 7F079B3C 8C6D0000 */ lw $t5, ($v1) +/* 0AE6B0 7F079B40 ADA0008C */ sw $zero, 0x8c($t5) +/* 0AE6B4 7F079B44 8C6E0000 */ lw $t6, ($v1) +/* 0AE6B8 7F079B48 E5C00090 */ swc1 $f0, 0x90($t6) +/* 0AE6BC 7F079B4C 8C6F0000 */ lw $t7, ($v1) +/* 0AE6C0 7F079B50 ADE00094 */ sw $zero, 0x94($t7) +/* 0AE6C4 7F079B54 8C780000 */ lw $t8, ($v1) +/* 0AE6C8 7F079B58 E7000098 */ swc1 $f0, 0x98($t8) +/* 0AE6CC 7F079B5C 8C790000 */ lw $t9, ($v1) +/* 0AE6D0 7F079B60 E7201274 */ swc1 $f0, 0x1274($t9) +/* 0AE6D4 7F079B64 8C680000 */ lw $t0, ($v1) +/* 0AE6D8 7F079B68 E5001278 */ swc1 $f0, 0x1278($t0) +/* 0AE6DC 7F079B6C 8C690000 */ lw $t1, ($v1) +/* 0AE6E0 7F079B70 E520127C */ swc1 $f0, 0x127c($t1) +/* 0AE6E4 7F079B74 8C6A0000 */ lw $t2, ($v1) +/* 0AE6E8 7F079B78 AD47009C */ sw $a3, 0x9c($t2) +/* 0AE6EC 7F079B7C 8C6B0000 */ lw $t3, ($v1) +/* 0AE6F0 7F079B80 AD6729FC */ sw $a3, 0x29fc($t3) +/* 0AE6F4 7F079B84 8C6C0000 */ lw $t4, ($v1) +/* 0AE6F8 7F079B88 E58000A0 */ swc1 $f0, 0xa0($t4) +/* 0AE6FC 7F079B8C 8C6D0000 */ lw $t5, ($v1) +/* 0AE700 7F079B90 E5A000A4 */ swc1 $f0, 0xa4($t5) +/* 0AE704 7F079B94 8C6E0000 */ lw $t6, ($v1) +/* 0AE708 7F079B98 ADC500AC */ sw $a1, 0xac($t6) +/* 0AE70C 7F079B9C 8C6F0000 */ lw $t7, ($v1) +/* 0AE710 7F079BA0 ADE000D0 */ sw $zero, 0xd0($t7) +/* 0AE714 7F079BA4 8C780000 */ lw $t8, ($v1) +/* 0AE718 7F079BA8 AF0000D8 */ sw $zero, 0xd8($t8) +/* 0AE71C 7F079BAC 8C790000 */ lw $t9, ($v1) +/* 0AE720 7F079BB0 E72200DC */ swc1 $f2, 0xdc($t9) +/* 0AE724 7F079BB4 8C680000 */ lw $t0, ($v1) +/* 0AE728 7F079BB8 E50000E0 */ swc1 $f0, 0xe0($t0) +/* 0AE72C 7F079BBC 8C690000 */ lw $t1, ($v1) +/* 0AE730 7F079BC0 E52200E4 */ swc1 $f2, 0xe4($t1) +/* 0AE734 7F079BC4 8C6A0000 */ lw $t2, ($v1) +/* 0AE738 7F079BC8 E54000E8 */ swc1 $f0, 0xe8($t2) +/* 0AE73C 7F079BCC 8C6B0000 */ lw $t3, ($v1) +/* 0AE740 7F079BD0 E56200EC */ swc1 $f2, 0xec($t3) +/* 0AE744 7F079BD4 8C6C0000 */ lw $t4, ($v1) +/* 0AE748 7F079BD8 E58000F0 */ swc1 $f0, 0xf0($t4) +/* 0AE74C 7F079BDC 8C6D0000 */ lw $t5, ($v1) +/* 0AE750 7F079BE0 E5AC00F4 */ swc1 $f12, 0xf4($t5) +/* 0AE754 7F079BE4 8C6E0000 */ lw $t6, ($v1) +/* 0AE758 7F079BE8 E5CC00F8 */ swc1 $f12, 0xf8($t6) +/* 0AE75C 7F079BEC 8C6F0000 */ lw $t7, ($v1) +/* 0AE760 7F079BF0 ADE001C0 */ sw $zero, 0x1c0($t7) +/* 0AE764 7F079BF4 8C780000 */ lw $t8, ($v1) +/* 0AE768 7F079BF8 AF0001C4 */ sw $zero, 0x1c4($t8) +/* 0AE76C 7F079BFC 8C790000 */ lw $t9, ($v1) +/* 0AE770 7F079C00 AF2001C8 */ sw $zero, 0x1c8($t9) +/* 0AE774 7F079C04 8C680000 */ lw $t0, ($v1) +/* 0AE778 7F079C08 AD0501CC */ sw $a1, 0x1cc($t0) +/* 0AE77C 7F079C0C 8C690000 */ lw $t1, ($v1) +/* 0AE780 7F079C10 AD2001D0 */ sw $zero, 0x1d0($t1) +/* 0AE784 7F079C14 8C6A0000 */ lw $t2, ($v1) +/* 0AE788 7F079C18 AD4001A0 */ sw $zero, 0x1a0($t2) +/* 0AE78C 7F079C1C 8C6B0000 */ lw $t3, ($v1) +/* 0AE790 7F079C20 E560019C */ swc1 $f0, 0x19c($t3) +/* 0AE794 7F079C24 8C6C0000 */ lw $t4, ($v1) +/* 0AE798 7F079C28 E580014C */ swc1 $f0, 0x14c($t4) +/* 0AE79C 7F079C2C 8C6D0000 */ lw $t5, ($v1) +/* 0AE7A0 7F079C30 E5A20150 */ swc1 $f2, 0x150($t5) +/* 0AE7A4 7F079C34 8C6E0000 */ lw $t6, ($v1) +/* 0AE7A8 7F079C38 E5C00154 */ swc1 $f0, 0x154($t6) +/* 0AE7AC 7F079C3C 8C6F0000 */ lw $t7, ($v1) +/* 0AE7B0 7F079C40 E5E40158 */ swc1 $f4, 0x158($t7) +/* 0AE7B4 7F079C44 8C640000 */ lw $a0, ($v1) +/* 0AE7B8 7F079C48 C4860158 */ lwc1 $f6, 0x158($a0) +/* 0AE7BC 7F079C4C E486015C */ swc1 $f6, 0x15c($a0) +/* 0AE7C0 7F079C50 8C640000 */ lw $a0, ($v1) +/* 0AE7C4 7F079C54 C48E015C */ lwc1 $f14, 0x15c($a0) +/* 0AE7C8 7F079C58 4600703C */ c.lt.s $f14, $f0 +/* 0AE7CC 7F079C5C 00000000 */ nop +/* 0AE7D0 7F079C60 45020007 */ bc1fl .L7F079C80 +/* 0AE7D4 7F079C64 E4800160 */ swc1 $f0, 0x160($a0) +/* 0AE7D8 7F079C68 44814000 */ mtc1 $at, $f8 +/* 0AE7DC 7F079C6C 00000000 */ nop +/* 0AE7E0 7F079C70 46087280 */ add.s $f10, $f14, $f8 +/* 0AE7E4 7F079C74 E48A015C */ swc1 $f10, 0x15c($a0) +/* 0AE7E8 7F079C78 8C640000 */ lw $a0, ($v1) +/* 0AE7EC 7F079C7C E4800160 */ swc1 $f0, 0x160($a0) +.L7F079C80: +/* 0AE7F0 7F079C80 8C780000 */ lw $t8, ($v1) +/* 0AE7F4 7F079C84 2406FFFF */ li $a2, -1 +/* 0AE7F8 7F079C88 240200FF */ li $v0, 255 +/* 0AE7FC 7F079C8C E7020164 */ swc1 $f2, 0x164($t8) +/* 0AE800 7F079C90 8C790000 */ lw $t9, ($v1) +/* 0AE804 7F079C94 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0AE808 7F079C98 44818000 */ mtc1 $at, $f16 +/* 0AE80C 7F079C9C E7200168 */ swc1 $f0, 0x168($t9) +/* 0AE810 7F079CA0 8C680000 */ lw $t0, ($v1) +/* 0AE814 7F079CA4 E500016C */ swc1 $f0, 0x16c($t0) +/* 0AE818 7F079CA8 8C690000 */ lw $t1, ($v1) +/* 0AE81C 7F079CAC E5200170 */ swc1 $f0, 0x170($t1) +/* 0AE820 7F079CB0 8C6A0000 */ lw $t2, ($v1) +/* 0AE824 7F079CB4 E5400174 */ swc1 $f0, 0x174($t2) +/* 0AE828 7F079CB8 8C6B0000 */ lw $t3, ($v1) +/* 0AE82C 7F079CBC E5602A4C */ swc1 $f0, 0x2a4c($t3) +/* 0AE830 7F079CC0 8C6C0000 */ lw $t4, ($v1) +/* 0AE834 7F079CC4 E5820178 */ swc1 $f2, 0x178($t4) +/* 0AE838 7F079CC8 8C6D0000 */ lw $t5, ($v1) +/* 0AE83C 7F079CCC ADA0017C */ sw $zero, 0x17c($t5) +/* 0AE840 7F079CD0 8C6E0000 */ lw $t6, ($v1) +/* 0AE844 7F079CD4 E5C00180 */ swc1 $f0, 0x180($t6) +/* 0AE848 7F079CD8 8C6F0000 */ lw $t7, ($v1) +/* 0AE84C 7F079CDC E5E00184 */ swc1 $f0, 0x184($t7) +/* 0AE850 7F079CE0 8C780000 */ lw $t8, ($v1) +/* 0AE854 7F079CE4 E7000188 */ swc1 $f0, 0x188($t8) +/* 0AE858 7F079CE8 8C790000 */ lw $t9, ($v1) +/* 0AE85C 7F079CEC AF200104 */ sw $zero, 0x104($t9) +/* 0AE860 7F079CF0 8C680000 */ lw $t0, ($v1) +/* 0AE864 7F079CF4 AD000108 */ sw $zero, 0x108($t0) +/* 0AE868 7F079CF8 8C690000 */ lw $t1, ($v1) +/* 0AE86C 7F079CFC AD20010C */ sw $zero, 0x10c($t1) +/* 0AE870 7F079D00 8C6A0000 */ lw $t2, ($v1) +/* 0AE874 7F079D04 AD400110 */ sw $zero, 0x110($t2) +/* 0AE878 7F079D08 8C6B0000 */ lw $t3, ($v1) +/* 0AE87C 7F079D0C AD650114 */ sw $a1, 0x114($t3) +/* 0AE880 7F079D10 8C6C0000 */ lw $t4, ($v1) +/* 0AE884 7F079D14 AD850118 */ sw $a1, 0x118($t4) +/* 0AE888 7F079D18 8C6D0000 */ lw $t5, ($v1) +/* 0AE88C 7F079D1C ADA0011C */ sw $zero, 0x11c($t5) +/* 0AE890 7F079D20 8C6E0000 */ lw $t6, ($v1) +/* 0AE894 7F079D24 ADC50120 */ sw $a1, 0x120($t6) +/* 0AE898 7F079D28 8C6F0000 */ lw $t7, ($v1) +/* 0AE89C 7F079D2C ADE00124 */ sw $zero, 0x124($t7) +/* 0AE8A0 7F079D30 8C780000 */ lw $t8, ($v1) +/* 0AE8A4 7F079D34 AF050128 */ sw $a1, 0x128($t8) +/* 0AE8A8 7F079D38 8C790000 */ lw $t9, ($v1) +/* 0AE8AC 7F079D3C E720012C */ swc1 $f0, 0x12c($t9) +/* 0AE8B0 7F079D40 8C680000 */ lw $t0, ($v1) +/* 0AE8B4 7F079D44 AD000130 */ sw $zero, 0x130($t0) +/* 0AE8B8 7F079D48 8C690000 */ lw $t1, ($v1) +/* 0AE8BC 7F079D4C AD260134 */ sw $a2, 0x134($t1) +/* 0AE8C0 7F079D50 8C6A0000 */ lw $t2, ($v1) +/* 0AE8C4 7F079D54 AD450138 */ sw $a1, 0x138($t2) +/* 0AE8C8 7F079D58 8C6B0000 */ lw $t3, ($v1) +/* 0AE8CC 7F079D5C E560013C */ swc1 $f0, 0x13c($t3) +/* 0AE8D0 7F079D60 8C6C0000 */ lw $t4, ($v1) +/* 0AE8D4 7F079D64 AD800140 */ sw $zero, 0x140($t4) +/* 0AE8D8 7F079D68 8C6D0000 */ lw $t5, ($v1) +/* 0AE8DC 7F079D6C ADA60144 */ sw $a2, 0x144($t5) +/* 0AE8E0 7F079D70 8C6E0000 */ lw $t6, ($v1) +/* 0AE8E4 7F079D74 ADC203D0 */ sw $v0, 0x3d0($t6) +/* 0AE8E8 7F079D78 8C6F0000 */ lw $t7, ($v1) +/* 0AE8EC 7F079D7C ADE203D4 */ sw $v0, 0x3d4($t7) +/* 0AE8F0 7F079D80 8C780000 */ lw $t8, ($v1) +/* 0AE8F4 7F079D84 AF0203D8 */ sw $v0, 0x3d8($t8) +/* 0AE8F8 7F079D88 8C790000 */ lw $t9, ($v1) +/* 0AE8FC 7F079D8C E72003DC */ swc1 $f0, 0x3dc($t9) +/* 0AE900 7F079D90 8C680000 */ lw $t0, ($v1) +/* 0AE904 7F079D94 E50C03E0 */ swc1 $f12, 0x3e0($t0) +/* 0AE908 7F079D98 8C690000 */ lw $t1, ($v1) +/* 0AE90C 7F079D9C E52C03E4 */ swc1 $f12, 0x3e4($t1) +/* 0AE910 7F079DA0 8C6A0000 */ lw $t2, ($v1) +/* 0AE914 7F079DA4 AD4203E8 */ sw $v0, 0x3e8($t2) +/* 0AE918 7F079DA8 8C6B0000 */ lw $t3, ($v1) +/* 0AE91C 7F079DAC AD6203EC */ sw $v0, 0x3ec($t3) +/* 0AE920 7F079DB0 8C6C0000 */ lw $t4, ($v1) +/* 0AE924 7F079DB4 AD8203F0 */ sw $v0, 0x3f0($t4) +/* 0AE928 7F079DB8 8C6D0000 */ lw $t5, ($v1) +/* 0AE92C 7F079DBC ADA203F4 */ sw $v0, 0x3f4($t5) +/* 0AE930 7F079DC0 8C6E0000 */ lw $t6, ($v1) +/* 0AE934 7F079DC4 ADC203F8 */ sw $v0, 0x3f8($t6) +/* 0AE938 7F079DC8 8C6F0000 */ lw $t7, ($v1) +/* 0AE93C 7F079DCC ADE203FC */ sw $v0, 0x3fc($t7) +/* 0AE940 7F079DD0 8C780000 */ lw $t8, ($v1) +/* 0AE944 7F079DD4 E7000400 */ swc1 $f0, 0x400($t8) +/* 0AE948 7F079DD8 8C790000 */ lw $t9, ($v1) +/* 0AE94C 7F079DDC E7200404 */ swc1 $f0, 0x404($t9) +/* 0AE950 7F079DE0 8C680000 */ lw $t0, ($v1) +/* 0AE954 7F079DE4 E50C018C */ swc1 $f12, 0x18c($t0) +/* 0AE958 7F079DE8 8C690000 */ lw $t1, ($v1) +/* 0AE95C 7F079DEC E52C0190 */ swc1 $f12, 0x190($t1) +/* 0AE960 7F079DF0 8C6A0000 */ lw $t2, ($v1) +/* 0AE964 7F079DF4 E5400194 */ swc1 $f0, 0x194($t2) +/* 0AE968 7F079DF8 8C6B0000 */ lw $t3, ($v1) +/* 0AE96C 7F079DFC E5600198 */ swc1 $f0, 0x198($t3) +/* 0AE970 7F079E00 8C6C0000 */ lw $t4, ($v1) +/* 0AE974 7F079E04 AD87042C */ sw $a3, 0x42c($t4) +/* 0AE978 7F079E08 8C6D0000 */ lw $t5, ($v1) +/* 0AE97C 7F079E0C ADA00430 */ sw $zero, 0x430($t5) +/* 0AE980 7F079E10 8C6E0000 */ lw $t6, ($v1) +/* 0AE984 7F079E14 E5C00204 */ swc1 $f0, 0x204($t6) +/* 0AE988 7F079E18 8C6F0000 */ lw $t7, ($v1) +/* 0AE98C 7F079E1C E5E00208 */ swc1 $f0, 0x208($t7) +/* 0AE990 7F079E20 8C780000 */ lw $t8, ($v1) +/* 0AE994 7F079E24 E700020C */ swc1 $f0, 0x20c($t8) +/* 0AE998 7F079E28 8C790000 */ lw $t9, ($v1) +/* 0AE99C 7F079E2C E7200210 */ swc1 $f0, 0x210($t9) +/* 0AE9A0 7F079E30 8C680000 */ lw $t0, ($v1) +/* 0AE9A4 7F079E34 E5000214 */ swc1 $f0, 0x214($t0) +/* 0AE9A8 7F079E38 8C690000 */ lw $t1, ($v1) +/* 0AE9AC 7F079E3C AD200218 */ sw $zero, 0x218($t1) +/* 0AE9B0 7F079E40 8C6A0000 */ lw $t2, ($v1) +/* 0AE9B4 7F079E44 AD400220 */ sw $zero, 0x220($t2) +/* 0AE9B8 7F079E48 8C6B0000 */ lw $t3, ($v1) +/* 0AE9BC 7F079E4C E5600224 */ swc1 $f0, 0x224($t3) +/* 0AE9C0 7F079E50 8C6C0000 */ lw $t4, ($v1) +/* 0AE9C4 7F079E54 AD800200 */ sw $zero, 0x200($t4) +/* 0AE9C8 7F079E58 8C6D0000 */ lw $t5, ($v1) +/* 0AE9CC 7F079E5C A5A003B4 */ sh $zero, 0x3b4($t5) +/* 0AE9D0 7F079E60 8C6E0000 */ lw $t6, ($v1) +/* 0AE9D4 7F079E64 A5C003B6 */ sh $zero, 0x3b6($t6) +/* 0AE9D8 7F079E68 8C6F0000 */ lw $t7, ($v1) +/* 0AE9DC 7F079E6C E5F029C0 */ swc1 $f16, 0x29c0($t7) +/* 0AE9E0 7F079E70 8C780000 */ lw $t8, ($v1) +/* 0AE9E4 7F079E74 A7062A04 */ sh $a2, 0x2a04($t8) +/* 0AE9E8 7F079E78 8C790000 */ lw $t9, ($v1) +/* 0AE9EC 7F079E7C E7202A08 */ swc1 $f0, 0x2a08($t9) +/* 0AE9F0 7F079E80 8C680000 */ lw $t0, ($v1) +/* 0AE9F4 7F079E84 E5002A0C */ swc1 $f0, 0x2a0c($t0) +/* 0AE9F8 7F079E88 8C690000 */ lw $t1, ($v1) +/* 0AE9FC 7F079E8C AD202A6C */ sw $zero, 0x2a6c($t1) +/* 0AEA00 7F079E90 8C6A0000 */ lw $t2, ($v1) +/* 0AEA04 7F079E94 AD402A70 */ sw $zero, 0x2a70($t2) +/* 0AEA08 7F079E98 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AEA0C 7F079E9C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0AEA10 7F079EA0 03E00008 */ jr $ra +/* 0AEA14 7F079EA4 00000000 */ nop +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F0798B8(void) { + ? temp_ret; + ? phi_return; + + // Node 0 + pPlayer->field_29BC = (f32) (((pPlayersPerm->unk64 * 185.0f) * 1.0f) - 10.0f); + pPlayer->field_29F8 = 0; + pPlayer->field_29F4 = get_mission_timer(); + pPlayer->field_2A00 = 0; + add_item_to_inventory(1); + temp_ret = get_num_players(); + phi_return = temp_ret; + if (temp_ret >= 2) + { + // Node 1 + draw_item_in_hand_has_more_ammo(1, starting_left_weapon); + phi_return = draw_item_in_hand_has_more_ammo(0, starting_right_weapon); + if (pPlayer->field_D4 == 0) + { + // Node 2 + phi_return = solo_char_load(); + } + } + // Node 3 + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0798B8 +/* 0AE3E8 7F0798B8 3C0E8008 */ lui $t6, %hi(pPlayersPerm) +/* 0AE3EC 7F0798BC 8DCEA0B4 */ lw $t6, %lo(pPlayersPerm)($t6) +/* 0AE3F0 7F0798C0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0AE3F4 7F0798C4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0AE3F8 7F0798C8 3C014339 */ li $at, 0x43390000 # 185.000000 +/* 0AE3FC 7F0798CC 44813000 */ mtc1 $at, $f6 +/* 0AE400 7F0798D0 C5C40064 */ lwc1 $f4, 0x64($t6) +/* 0AE404 7F0798D4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AE408 7F0798D8 44815000 */ mtc1 $at, $f10 +/* 0AE40C 7F0798DC 46062202 */ mul.s $f8, $f4, $f6 +/* 0AE410 7F0798E0 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0AE414 7F0798E4 44819000 */ mtc1 $at, $f18 +/* 0AE418 7F0798E8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0AE41C 7F0798EC 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0AE420 7F0798F0 8C4F0000 */ lw $t7, ($v0) +/* 0AE424 7F0798F4 460A4402 */ mul.s $f16, $f8, $f10 +/* 0AE428 7F0798F8 46128101 */ sub.s $f4, $f16, $f18 +/* 0AE42C 7F0798FC E5E429BC */ swc1 $f4, 0x29bc($t7) +/* 0AE430 7F079900 8C580000 */ lw $t8, ($v0) +/* 0AE434 7F079904 0FC22FEE */ jal get_mission_timer +/* 0AE438 7F079908 AF0029F8 */ sw $zero, 0x29f8($t8) +/* 0AE43C 7F07990C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AE440 7F079910 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AE444 7F079914 8C790000 */ lw $t9, ($v1) +/* 0AE448 7F079918 24040001 */ li $a0, 1 +/* 0AE44C 7F07991C AF2229F4 */ sw $v0, 0x29f4($t9) +/* 0AE450 7F079920 8C680000 */ lw $t0, ($v1) +/* 0AE454 7F079924 0FC23122 */ jal add_item_to_inventory +/* 0AE458 7F079928 AD002A00 */ sw $zero, 0x2a00($t0) +/* 0AE45C 7F07992C 0FC26919 */ jal get_num_players +/* 0AE460 7F079930 00000000 */ nop +/* 0AE464 7F079934 28410002 */ slti $at, $v0, 2 +/* 0AE468 7F079938 1420000F */ bnez $at, .L7F079978 +/* 0AE46C 7F07993C 24040001 */ li $a0, 1 +/* 0AE470 7F079940 3C058008 */ lui $a1, %hi(starting_left_weapon) +/* 0AE474 7F079944 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0AE478 7F079948 8CA599E4 */ lw $a1, %lo(starting_left_weapon)($a1) +/* 0AE47C 7F07994C 3C058008 */ lui $a1, %hi(starting_right_weapon) +/* 0AE480 7F079950 8CA599E0 */ lw $a1, %lo(starting_right_weapon)($a1) +/* 0AE484 7F079954 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0AE488 7F079958 00002025 */ move $a0, $zero +/* 0AE48C 7F07995C 3C098008 */ lui $t1, %hi(pPlayer) +/* 0AE490 7F079960 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0AE494 7F079964 8D2A00D4 */ lw $t2, 0xd4($t1) +/* 0AE498 7F079968 55400004 */ bnezl $t2, .L7F07997C +/* 0AE49C 7F07996C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AE4A0 7F079970 0FC1E73C */ jal solo_char_load +/* 0AE4A4 7F079974 00000000 */ nop +.L7F079978: +/* 0AE4A8 7F079978 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07997C: +/* 0AE4AC 7F07997C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0AE4B0 7F079980 03E00008 */ jr $ra +/* 0AE4B4 7F079984 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F079988(s32 arg0) { + // Node 0 + pPlayer->field_1274 = (f32) ((f32) arg0 * 75.0f); + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F079988 +/* 0AE4B8 7F079988 44842000 */ mtc1 $a0, $f4 +/* 0AE4BC 7F07998C 3C014296 */ li $at, 0x42960000 # 75.000000 +/* 0AE4C0 7F079990 44814000 */ mtc1 $at, $f8 +/* 0AE4C4 7F079994 468021A0 */ cvt.s.w $f6, $f4 +/* 0AE4C8 7F079998 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0AE4CC 7F07999C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0AE4D0 7F0799A0 46083282 */ mul.s $f10, $f6, $f8 +/* 0AE4D4 7F0799A4 03E00008 */ jr $ra +/* 0AE4D8 7F0799A8 E5CA1274 */ swc1 $f10, 0x1274($t6) +) +#endif + + + + + + +void change_crouch_position(int position) +{ + pPlayer->crouchposition = pPlayer->crouchposition + position; + if (pPlayer->crouchposition < 0) { + pPlayer->crouchposition = 0; + return; + } + if (2 < pPlayer->crouchposition) { + pPlayer->crouchposition = 2; + } + return; +} + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0799F0(void) { + // Node 0 + if (pPlayer->crouchposition < pPlayer->field_29FC) + { + // Node 1 + return pPlayer->crouchposition; + } + // Node 2 + return pPlayer->field_29FC; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0799F0 +/* 0AE520 7F0799F0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0AE524 7F0799F4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0AE528 7F0799F8 8C43009C */ lw $v1, 0x9c($v0) +/* 0AE52C 7F0799FC 8C4429FC */ lw $a0, 0x29fc($v0) +/* 0AE530 7F079A00 0064082A */ slt $at, $v1, $a0 +/* 0AE534 7F079A04 10200003 */ beqz $at, .L7F079A14 +/* 0AE538 7F079A08 00802825 */ move $a1, $a0 +/* 0AE53C 7F079A0C 03E00008 */ jr $ra +/* 0AE540 7F079A10 00601025 */ move $v0, $v1 + +.L7F079A14: +/* 0AE544 7F079A14 03E00008 */ jr $ra +/* 0AE548 7F079A18 00A01025 */ move $v0, $a1 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F079A1C(s32 arg0) { + void *temp_v0; + + // Node 0 + temp_v0 = (&ptr_BONDdata_p1 + (arg0 * 4)); + if (*temp_v0->unk9C < *temp_v0->unk29FC) + { + // Node 1 + return *temp_v0->unk9C; + } + // Node 2 + return *temp_v0->unk29FC; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F079A1C +/* 0AE54C 7F079A1C 00047080 */ sll $t6, $a0, 2 +/* 0AE550 7F079A20 3C028008 */ lui $v0, %hi(ptr_BONDdata_p1) +/* 0AE554 7F079A24 004E1021 */ addu $v0, $v0, $t6 +/* 0AE558 7F079A28 8C429EE0 */ lw $v0, %lo(ptr_BONDdata_p1)($v0) +/* 0AE55C 7F079A2C 8C43009C */ lw $v1, 0x9c($v0) +/* 0AE560 7F079A30 8C4529FC */ lw $a1, 0x29fc($v0) +/* 0AE564 7F079A34 0065082A */ slt $at, $v1, $a1 +/* 0AE568 7F079A38 10200003 */ beqz $at, .L7F079A48 +/* 0AE56C 7F079A3C 00A02025 */ move $a0, $a1 +/* 0AE570 7F079A40 03E00008 */ jr $ra +/* 0AE574 7F079A44 00601025 */ move $v0, $v1 + +.L7F079A48: +/* 0AE578 7F079A48 03E00008 */ jr $ra +/* 0AE57C 7F079A4C 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +void setptrBONDdata(s32 arg0) { + // Node 0 + *pPlayer = arg0; + return; +} +#else +GLOBAL_ASM( +.text +glabel setptrBONDdata +/* 0AE580 7F079A50 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0AE584 7F079A54 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0AE588 7F079A58 03E00008 */ jr $ra +/* 0AE58C 7F079A5C ADC40000 */ sw $a0, ($t6) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F079A60(void *arg0, void *arg1, void *arg2, s32 arg3, void *arg4) { + s32 sp30; + s32 sp34; + void *temp_v0; + void *temp_v0_2; + void *temp_v0_3; + void *temp_ret; + void *phi_return; + + // Node 0 + if ((((((((((*arg0 != pPlayer->xpos) || (arg0->unk4 != pPlayer->ypos)) || (arg0->unk8 != pPlayer->zpos)) || (*arg1 != pPlayer->xpos2)) || (arg1->unk4 != pPlayer->ypos2)) || (arg1->unk8 != pPlayer->zpos2)) || (*arg2 != pPlayer->xoffset)) || (arg2->unk4 != pPlayer->yoffset)) || (arg2->unk8 != pPlayer->zoffset)) || (pPlayer->room_pointer == 0)) + { + // Node 10 + sp34 = arg3; + if (sub_GAME_7F0B0BE4(&sp34, *arg4, arg4->unk8, *arg0, (f32) arg0->unk8) != 0) + { + // Node 11 + sub_GAME_7F0B0518(sp34, *arg0, arg0->unk8); + pPlayer->room_pointer = sp34; + } + else + { + // Node 12 + if (pPlayer->room_pointer != 0) + { + // Node 13 + sp30 = (s32) pPlayer->room_pointer; + if (sub_GAME_7F0B0BE4(&sp30, pPlayer->xpos, pPlayer->zpos, *arg0, (f32) arg0->unk8) != 0) + { + // Node 14 + pPlayer->room_pointer = sp30; + } + else + { + // Node 15 + pPlayer->room_pointer = sp34; + } + } + else + { + // Node 16 + pPlayer->room_pointer = sp34; + } + } + // Node 17 + *&pPlayer->xpos = (f32) *arg0; + *&pPlayer->ypos = (f32) arg0->unk4; + *&pPlayer->zpos = (f32) arg0->unk8; + *&pPlayer->xpos2 = (f32) *arg1; + *&pPlayer->ypos2 = (f32) arg1->unk4; + *&pPlayer->zpos2 = (f32) arg1->unk8; + *&pPlayer->xoffset = (f32) *arg2; + *&pPlayer->yoffset = (f32) arg2->unk4; + *&pPlayer->zoffset = (f32) arg2->unk8; + temp_v0 = *&pPlayer; + temp_v0->unk28 = (f32) temp_v0->unk4; + temp_v0_2 = *&pPlayer; + temp_v0_2->unk30 = (f32) temp_v0_2->unkC; + temp_v0_3 = *&pPlayer; + temp_ret = sub_GAME_7F0B2970(temp_v0_3->unk34, temp_v0_3->unk4, temp_v0_3->unkC, arg1); + pPlayer->ypos3 = temp_ret; + phi_return = temp_ret; + } + else + { + + } + // Node 18 + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F079A60 +/* 0AE590 7F079A60 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0AE594 7F079A64 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AE598 7F079A68 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AE59C 7F079A6C 8C620000 */ lw $v0, ($v1) +/* 0AE5A0 7F079A70 AFBF0024 */ sw $ra, 0x24($sp) +/* 0AE5A4 7F079A74 AFB00020 */ sw $s0, 0x20($sp) +/* 0AE5A8 7F079A78 AFA5003C */ sw $a1, 0x3c($sp) +/* 0AE5AC 7F079A7C AFA60040 */ sw $a2, 0x40($sp) +/* 0AE5B0 7F079A80 AFA70044 */ sw $a3, 0x44($sp) +/* 0AE5B4 7F079A84 C4840000 */ lwc1 $f4, ($a0) +/* 0AE5B8 7F079A88 C4460004 */ lwc1 $f6, 4($v0) +/* 0AE5BC 7F079A8C 00808025 */ move $s0, $a0 +/* 0AE5C0 7F079A90 8FB90044 */ lw $t9, 0x44($sp) +/* 0AE5C4 7F079A94 46062032 */ c.eq.s $f4, $f6 +/* 0AE5C8 7F079A98 00000000 */ nop +/* 0AE5CC 7F079A9C 45020035 */ bc1fl .L7F079B74 +/* 0AE5D0 7F079AA0 8FA20048 */ lw $v0, 0x48($sp) +/* 0AE5D4 7F079AA4 C4880004 */ lwc1 $f8, 4($a0) +/* 0AE5D8 7F079AA8 C44A0008 */ lwc1 $f10, 8($v0) +/* 0AE5DC 7F079AAC 460A4032 */ c.eq.s $f8, $f10 +/* 0AE5E0 7F079AB0 00000000 */ nop +/* 0AE5E4 7F079AB4 4502002F */ bc1fl .L7F079B74 +/* 0AE5E8 7F079AB8 8FA20048 */ lw $v0, 0x48($sp) +/* 0AE5EC 7F079ABC C4900008 */ lwc1 $f16, 8($a0) +/* 0AE5F0 7F079AC0 C452000C */ lwc1 $f18, 0xc($v0) +/* 0AE5F4 7F079AC4 46128032 */ c.eq.s $f16, $f18 +/* 0AE5F8 7F079AC8 00000000 */ nop +/* 0AE5FC 7F079ACC 45020029 */ bc1fl .L7F079B74 +/* 0AE600 7F079AD0 8FA20048 */ lw $v0, 0x48($sp) +/* 0AE604 7F079AD4 C4A40000 */ lwc1 $f4, ($a1) +/* 0AE608 7F079AD8 C4460010 */ lwc1 $f6, 0x10($v0) +/* 0AE60C 7F079ADC 46062032 */ c.eq.s $f4, $f6 +/* 0AE610 7F079AE0 00000000 */ nop +/* 0AE614 7F079AE4 45020023 */ bc1fl .L7F079B74 +/* 0AE618 7F079AE8 8FA20048 */ lw $v0, 0x48($sp) +/* 0AE61C 7F079AEC C4A80004 */ lwc1 $f8, 4($a1) +/* 0AE620 7F079AF0 C44A0014 */ lwc1 $f10, 0x14($v0) +/* 0AE624 7F079AF4 460A4032 */ c.eq.s $f8, $f10 +/* 0AE628 7F079AF8 00000000 */ nop +/* 0AE62C 7F079AFC 4502001D */ bc1fl .L7F079B74 +/* 0AE630 7F079B00 8FA20048 */ lw $v0, 0x48($sp) +/* 0AE634 7F079B04 C4B00008 */ lwc1 $f16, 8($a1) +/* 0AE638 7F079B08 C4520018 */ lwc1 $f18, 0x18($v0) +/* 0AE63C 7F079B0C 46128032 */ c.eq.s $f16, $f18 +/* 0AE640 7F079B10 00000000 */ nop +/* 0AE644 7F079B14 45020017 */ bc1fl .L7F079B74 +/* 0AE648 7F079B18 8FA20048 */ lw $v0, 0x48($sp) +/* 0AE64C 7F079B1C C4C40000 */ lwc1 $f4, ($a2) +/* 0AE650 7F079B20 C446001C */ lwc1 $f6, 0x1c($v0) +/* 0AE654 7F079B24 46062032 */ c.eq.s $f4, $f6 +/* 0AE658 7F079B28 00000000 */ nop +/* 0AE65C 7F079B2C 45020011 */ bc1fl .L7F079B74 +/* 0AE660 7F079B30 8FA20048 */ lw $v0, 0x48($sp) +/* 0AE664 7F079B34 C4C80004 */ lwc1 $f8, 4($a2) +/* 0AE668 7F079B38 C44A0020 */ lwc1 $f10, 0x20($v0) +/* 0AE66C 7F079B3C 460A4032 */ c.eq.s $f8, $f10 +/* 0AE670 7F079B40 00000000 */ nop +/* 0AE674 7F079B44 4502000B */ bc1fl .L7F079B74 +/* 0AE678 7F079B48 8FA20048 */ lw $v0, 0x48($sp) +/* 0AE67C 7F079B4C C4D00008 */ lwc1 $f16, 8($a2) +/* 0AE680 7F079B50 C4520024 */ lwc1 $f18, 0x24($v0) +/* 0AE684 7F079B54 46128032 */ c.eq.s $f16, $f18 +/* 0AE688 7F079B58 00000000 */ nop +/* 0AE68C 7F079B5C 45020005 */ bc1fl .L7F079B74 +/* 0AE690 7F079B60 8FA20048 */ lw $v0, 0x48($sp) +/* 0AE694 7F079B64 8C580034 */ lw $t8, 0x34($v0) +/* 0AE698 7F079B68 5700005D */ bnezl $t8, .L7F079CE0 +/* 0AE69C 7F079B6C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0AE6A0 7F079B70 8FA20048 */ lw $v0, 0x48($sp) +.L7F079B74: +/* 0AE6A4 7F079B74 AFB90034 */ sw $t9, 0x34($sp) +/* 0AE6A8 7F079B78 C6040008 */ lwc1 $f4, 8($s0) +/* 0AE6AC 7F079B7C 8E070000 */ lw $a3, ($s0) +/* 0AE6B0 7F079B80 8C460008 */ lw $a2, 8($v0) +/* 0AE6B4 7F079B84 8C450000 */ lw $a1, ($v0) +/* 0AE6B8 7F079B88 27A40034 */ addiu $a0, $sp, 0x34 +/* 0AE6BC 7F079B8C 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0AE6C0 7F079B90 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0AE6C4 7F079B94 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AE6C8 7F079B98 1040000B */ beqz $v0, .L7F079BC8 +/* 0AE6CC 7F079B9C 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AE6D0 7F079BA0 8FA40034 */ lw $a0, 0x34($sp) +/* 0AE6D4 7F079BA4 8E050000 */ lw $a1, ($s0) +/* 0AE6D8 7F079BA8 0FC2C146 */ jal sub_GAME_7F0B0518 +/* 0AE6DC 7F079BAC 8E060008 */ lw $a2, 8($s0) +/* 0AE6E0 7F079BB0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AE6E4 7F079BB4 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AE6E8 7F079BB8 8C6A0000 */ lw $t2, ($v1) +/* 0AE6EC 7F079BBC 8FA90034 */ lw $t1, 0x34($sp) +/* 0AE6F0 7F079BC0 1000001A */ b .L7F079C2C +/* 0AE6F4 7F079BC4 AD490034 */ sw $t1, 0x34($t2) +.L7F079BC8: +/* 0AE6F8 7F079BC8 8C620000 */ lw $v0, ($v1) +/* 0AE6FC 7F079BCC 27A40030 */ addiu $a0, $sp, 0x30 +/* 0AE700 7F079BD0 8FAF0034 */ lw $t7, 0x34($sp) +/* 0AE704 7F079BD4 8C480034 */ lw $t0, 0x34($v0) +/* 0AE708 7F079BD8 51000014 */ beql $t0, $zero, .L7F079C2C +/* 0AE70C 7F079BDC AC4F0034 */ sw $t7, 0x34($v0) +/* 0AE710 7F079BE0 AFA80030 */ sw $t0, 0x30($sp) +/* 0AE714 7F079BE4 C6060008 */ lwc1 $f6, 8($s0) +/* 0AE718 7F079BE8 8E070000 */ lw $a3, ($s0) +/* 0AE71C 7F079BEC 8C46000C */ lw $a2, 0xc($v0) +/* 0AE720 7F079BF0 8C450004 */ lw $a1, 4($v0) +/* 0AE724 7F079BF4 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0AE728 7F079BF8 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0AE72C 7F079BFC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AE730 7F079C00 10400005 */ beqz $v0, .L7F079C18 +/* 0AE734 7F079C04 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AE738 7F079C08 8FAB0030 */ lw $t3, 0x30($sp) +/* 0AE73C 7F079C0C 8C6C0000 */ lw $t4, ($v1) +/* 0AE740 7F079C10 10000006 */ b .L7F079C2C +/* 0AE744 7F079C14 AD8B0034 */ sw $t3, 0x34($t4) +.L7F079C18: +/* 0AE748 7F079C18 8FAD0034 */ lw $t5, 0x34($sp) +/* 0AE74C 7F079C1C 8C6E0000 */ lw $t6, ($v1) +/* 0AE750 7F079C20 10000002 */ b .L7F079C2C +/* 0AE754 7F079C24 ADCD0034 */ sw $t5, 0x34($t6) +/* 0AE758 7F079C28 AC4F0034 */ sw $t7, 0x34($v0) +.L7F079C2C: +/* 0AE75C 7F079C2C C6080000 */ lwc1 $f8, ($s0) +/* 0AE760 7F079C30 8C780000 */ lw $t8, ($v1) +/* 0AE764 7F079C34 8FA7003C */ lw $a3, 0x3c($sp) +/* 0AE768 7F079C38 8FA80040 */ lw $t0, 0x40($sp) +/* 0AE76C 7F079C3C E7080004 */ swc1 $f8, 4($t8) +/* 0AE770 7F079C40 8C790000 */ lw $t9, ($v1) +/* 0AE774 7F079C44 C60A0004 */ lwc1 $f10, 4($s0) +/* 0AE778 7F079C48 E72A0008 */ swc1 $f10, 8($t9) +/* 0AE77C 7F079C4C 8C690000 */ lw $t1, ($v1) +/* 0AE780 7F079C50 C6100008 */ lwc1 $f16, 8($s0) +/* 0AE784 7F079C54 E530000C */ swc1 $f16, 0xc($t1) +/* 0AE788 7F079C58 8C6A0000 */ lw $t2, ($v1) +/* 0AE78C 7F079C5C C4F20000 */ lwc1 $f18, ($a3) +/* 0AE790 7F079C60 E5520010 */ swc1 $f18, 0x10($t2) +/* 0AE794 7F079C64 8C6B0000 */ lw $t3, ($v1) +/* 0AE798 7F079C68 C4E40004 */ lwc1 $f4, 4($a3) +/* 0AE79C 7F079C6C E5640014 */ swc1 $f4, 0x14($t3) +/* 0AE7A0 7F079C70 8C6C0000 */ lw $t4, ($v1) +/* 0AE7A4 7F079C74 C4E60008 */ lwc1 $f6, 8($a3) +/* 0AE7A8 7F079C78 E5860018 */ swc1 $f6, 0x18($t4) +/* 0AE7AC 7F079C7C 8C6D0000 */ lw $t5, ($v1) +/* 0AE7B0 7F079C80 C5080000 */ lwc1 $f8, ($t0) +/* 0AE7B4 7F079C84 E5A8001C */ swc1 $f8, 0x1c($t5) +/* 0AE7B8 7F079C88 8C6E0000 */ lw $t6, ($v1) +/* 0AE7BC 7F079C8C C50A0004 */ lwc1 $f10, 4($t0) +/* 0AE7C0 7F079C90 E5CA0020 */ swc1 $f10, 0x20($t6) +/* 0AE7C4 7F079C94 8C6F0000 */ lw $t7, ($v1) +/* 0AE7C8 7F079C98 C5100008 */ lwc1 $f16, 8($t0) +/* 0AE7CC 7F079C9C E5F00024 */ swc1 $f16, 0x24($t7) +/* 0AE7D0 7F079CA0 8C620000 */ lw $v0, ($v1) +/* 0AE7D4 7F079CA4 C4520004 */ lwc1 $f18, 4($v0) +/* 0AE7D8 7F079CA8 E4520028 */ swc1 $f18, 0x28($v0) +/* 0AE7DC 7F079CAC 8C620000 */ lw $v0, ($v1) +/* 0AE7E0 7F079CB0 C444000C */ lwc1 $f4, 0xc($v0) +/* 0AE7E4 7F079CB4 E4440030 */ swc1 $f4, 0x30($v0) +/* 0AE7E8 7F079CB8 8C620000 */ lw $v0, ($v1) +/* 0AE7EC 7F079CBC 8C440034 */ lw $a0, 0x34($v0) +/* 0AE7F0 7F079CC0 8C450004 */ lw $a1, 4($v0) +/* 0AE7F4 7F079CC4 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0AE7F8 7F079CC8 8C46000C */ lw $a2, 0xc($v0) +/* 0AE7FC 7F079CCC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AE800 7F079CD0 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AE804 7F079CD4 8C780000 */ lw $t8, ($v1) +/* 0AE808 7F079CD8 E700002C */ swc1 $f0, 0x2c($t8) +/* 0AE80C 7F079CDC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F079CE0: +/* 0AE810 7F079CE0 8FB00020 */ lw $s0, 0x20($sp) +/* 0AE814 7F079CE4 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0AE818 7F079CE8 03E00008 */ jr $ra +/* 0AE81C 7F079CEC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void solo_char_load(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +/*D:80054FE4*/ +glabel jpt_bondcuff +.word .L7F079EA4 +.word cuff_1_brosnan +.word cuff_2_jungle +.word cuff_3_boiler +.word cuff_4_snowsuit +.word cuff_5_connery +.word cuff_6_moore +.word cuff_7_dalton +.word cuff_8_variable_bond_head + +/*D:80055008*/ +glabel jpt_bondhead +.word .L7F079F84 +.word brosnan_tux_head_set +.word jungle_head_set +.word boiler_bond_head_set +.word .L7F079F84 +.word connery_head_set +.word moore_head_set +.word dalton_head_set +.word variable_body_head + +glabel D_8005502C +.word 0x3f7851ec /*0.97000003*/ +.text +glabel solo_char_load +/* 0AE820 7F079CF0 27BDFEE8 */ addiu $sp, $sp, -0x118 +/* 0AE824 7F079CF4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0AE828 7F079CF8 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 0AE82C 7F079CFC 00000000 */ nop +/* 0AE830 7F079D00 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0AE834 7F079D04 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0AE838 7F079D08 E7A00114 */ swc1 $f0, 0x114($sp) +/* 0AE83C 7F079D0C 8DCF00A8 */ lw $t7, 0xa8($t6) +/* 0AE840 7F079D10 8DE20004 */ lw $v0, 4($t7) +/* 0AE844 7F079D14 544001CA */ bnezl $v0, .L7F07A440 +/* 0AE848 7F079D18 8C4F001C */ lw $t7, 0x1c($v0) +/* 0AE84C 7F079D1C 0FC173CC */ jal getPlayerWeaponBufferForHand +/* 0AE850 7F079D20 00002025 */ move $a0, $zero +/* 0AE854 7F079D24 AFA200F0 */ sw $v0, 0xf0($sp) +/* 0AE858 7F079D28 0FC173CC */ jal getPlayerWeaponBufferForHand +/* 0AE85C 7F079D2C 24040001 */ li $a0, 1 +/* 0AE860 7F079D30 AFA200EC */ sw $v0, 0xec($sp) +/* 0AE864 7F079D34 AFA000E8 */ sw $zero, 0xe8($sp) +/* 0AE868 7F079D38 0FC173D2 */ jal getSizeBufferWeaponInHand +/* 0AE86C 7F079D3C 00002025 */ move $a0, $zero +/* 0AE870 7F079D40 AFA200E4 */ sw $v0, 0xe4($sp) +/* 0AE874 7F079D44 0FC173D2 */ jal getSizeBufferWeaponInHand +/* 0AE878 7F079D48 24040001 */ li $a0, 1 +/* 0AE87C 7F079D4C 3C198003 */ lui $t9, %hi(dummy_08_pp7_obj) +/* 0AE880 7F079D50 273965AC */ addiu $t9, %lo(dummy_08_pp7_obj) # addiu $t9, $t9, 0x65ac +/* 0AE884 7F079D54 AFA200E0 */ sw $v0, 0xe0($sp) +/* 0AE888 7F079D58 272C0084 */ addiu $t4, $t9, 0x84 +/* 0AE88C 7F079D5C 27B80054 */ addiu $t8, $sp, 0x54 +.L7F079D60: +/* 0AE890 7F079D60 8F210000 */ lw $at, ($t9) +/* 0AE894 7F079D64 2739000C */ addiu $t9, $t9, 0xc +/* 0AE898 7F079D68 2718000C */ addiu $t8, $t8, 0xc +/* 0AE89C 7F079D6C AF01FFF4 */ sw $at, -0xc($t8) +/* 0AE8A0 7F079D70 8F21FFF8 */ lw $at, -8($t9) +/* 0AE8A4 7F079D74 AF01FFF8 */ sw $at, -8($t8) +/* 0AE8A8 7F079D78 8F21FFFC */ lw $at, -4($t9) +/* 0AE8AC 7F079D7C 172CFFF8 */ bne $t9, $t4, .L7F079D60 +/* 0AE8B0 7F079D80 AF01FFFC */ sw $at, -4($t8) +/* 0AE8B4 7F079D84 8F210000 */ lw $at, ($t9) +/* 0AE8B8 7F079D88 00002025 */ move $a0, $zero +/* 0AE8BC 7F079D8C 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0AE8C0 7F079D90 AF010000 */ sw $at, ($t8) +/* 0AE8C4 7F079D94 240D0017 */ li $t5, 23 +/* 0AE8C8 7F079D98 240E004B */ li $t6, 75 +/* 0AE8CC 7F079D9C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0AE8D0 7F079DA0 AFA20048 */ sw $v0, 0x48($sp) +/* 0AE8D4 7F079DA4 AFAD0044 */ sw $t5, 0x44($sp) +/* 0AE8D8 7F079DA8 AFAE0040 */ sw $t6, 0x40($sp) +/* 0AE8DC 7F079DAC AFA00038 */ sw $zero, 0x38($sp) +/* 0AE8E0 7F079DB0 0FC1F799 */ jal sub_GAME_7F07DE64 +/* 0AE8E4 7F079DB4 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0AE8E8 7F079DB8 0FC26919 */ jal get_num_players +/* 0AE8EC 7F079DBC 00000000 */ nop +/* 0AE8F0 7F079DC0 24010001 */ li $at, 1 +/* 0AE8F4 7F079DC4 14410066 */ bne $v0, $at, .L7F079F60 +/* 0AE8F8 7F079DC8 00000000 */ nop +/* 0AE8FC 7F079DCC 0FC0755B */ jal getSelectedFolderBond +/* 0AE900 7F079DD0 00000000 */ nop +/* 0AE904 7F079DD4 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0AE908 7F079DD8 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0AE90C 7F079DDC 8DE3041C */ lw $v1, 0x41c($t7) +/* 0AE910 7F079DE0 2C610009 */ sltiu $at, $v1, 9 +/* 0AE914 7F079DE4 1020002F */ beqz $at, .L7F079EA4 +/* 0AE918 7F079DE8 00035880 */ sll $t3, $v1, 2 +/* 0AE91C 7F079DEC 3C018005 */ lui $at, %hi(jpt_bondcuff) +/* 0AE920 7F079DF0 002B0821 */ addu $at, $at, $t3 +/* 0AE924 7F079DF4 8C2B4FE4 */ lw $t3, %lo(jpt_bondcuff)($at) +/* 0AE928 7F079DF8 01600008 */ jr $t3 +/* 0AE92C 7F079DFC 00000000 */ nop +cuff_3_boiler: +/* 0AE930 7F079E00 240A0016 */ li $t2, 22 +/* 0AE934 7F079E04 10000027 */ b .L7F079EA4 +/* 0AE938 7F079E08 AFAA0044 */ sw $t2, 0x44($sp) +cuff_2_jungle: +/* 0AE93C 7F079E0C 240C0018 */ li $t4, 24 +/* 0AE940 7F079E10 10000024 */ b .L7F079EA4 +/* 0AE944 7F079E14 AFAC0044 */ sw $t4, 0x44($sp) +cuff_4_snowsuit: +/* 0AE948 7F079E18 24190019 */ li $t9, 25 +/* 0AE94C 7F079E1C 10000021 */ b .L7F079EA4 +/* 0AE950 7F079E20 AFB90044 */ sw $t9, 0x44($sp) +cuff_1_brosnan: +/* 0AE954 7F079E24 24180005 */ li $t8, 5 +/* 0AE958 7F079E28 1000001E */ b .L7F079EA4 +/* 0AE95C 7F079E2C AFB80044 */ sw $t8, 0x44($sp) +cuff_5_connery: +/* 0AE960 7F079E30 240D0005 */ li $t5, 5 +/* 0AE964 7F079E34 1000001B */ b .L7F079EA4 +/* 0AE968 7F079E38 AFAD0044 */ sw $t5, 0x44($sp) +cuff_6_moore: +/* 0AE96C 7F079E3C 240E0005 */ li $t6, 5 +/* 0AE970 7F079E40 10000018 */ b .L7F079EA4 +/* 0AE974 7F079E44 AFAE0044 */ sw $t6, 0x44($sp) +cuff_7_dalton: +/* 0AE978 7F079E48 240F0005 */ li $t7, 5 +/* 0AE97C 7F079E4C 10000015 */ b .L7F079EA4 +/* 0AE980 7F079E50 AFAF0044 */ sw $t7, 0x44($sp) +cuff_8_variable_bond_head: +/* 0AE984 7F079E54 1040000C */ beqz $v0, .L7F079E88 +/* 0AE988 7F079E58 240B0005 */ li $t3, 5 +/* 0AE98C 7F079E5C 24010001 */ li $at, 1 +/* 0AE990 7F079E60 1041000B */ beq $v0, $at, .L7F079E90 +/* 0AE994 7F079E64 240A0005 */ li $t2, 5 +/* 0AE998 7F079E68 24010002 */ li $at, 2 +/* 0AE99C 7F079E6C 1041000A */ beq $v0, $at, .L7F079E98 +/* 0AE9A0 7F079E70 240C0005 */ li $t4, 5 +/* 0AE9A4 7F079E74 24010003 */ li $at, 3 +/* 0AE9A8 7F079E78 10410009 */ beq $v0, $at, .L7F079EA0 +/* 0AE9AC 7F079E7C 24190005 */ li $t9, 5 +/* 0AE9B0 7F079E80 10000008 */ b .L7F079EA4 +/* 0AE9B4 7F079E84 00000000 */ nop +.L7F079E88: +/* 0AE9B8 7F079E88 10000006 */ b .L7F079EA4 +/* 0AE9BC 7F079E8C AFAB0044 */ sw $t3, 0x44($sp) +.L7F079E90: +/* 0AE9C0 7F079E90 10000004 */ b .L7F079EA4 +/* 0AE9C4 7F079E94 AFAA0044 */ sw $t2, 0x44($sp) +.L7F079E98: +/* 0AE9C8 7F079E98 10000002 */ b .L7F079EA4 +/* 0AE9CC 7F079E9C AFAC0044 */ sw $t4, 0x44($sp) +.L7F079EA0: +/* 0AE9D0 7F079EA0 AFB90044 */ sw $t9, 0x44($sp) +.L7F079EA4: +/* 0AE9D4 7F079EA4 1040000C */ beqz $v0, .L7F079ED8 +/* 0AE9D8 7F079EA8 2C610009 */ sltiu $at, $v1, 9 +/* 0AE9DC 7F079EAC 24010001 */ li $at, 1 +/* 0AE9E0 7F079EB0 10410025 */ beq $v0, $at, .L7F079F48 +/* 0AE9E4 7F079EB4 2418004E */ li $t8, 78 +/* 0AE9E8 7F079EB8 24010002 */ li $at, 2 +/* 0AE9EC 7F079EBC 10410024 */ beq $v0, $at, .L7F079F50 +/* 0AE9F0 7F079EC0 240D004E */ li $t5, 78 +/* 0AE9F4 7F079EC4 24010003 */ li $at, 3 +/* 0AE9F8 7F079EC8 10410023 */ beq $v0, $at, .L7F079F58 +/* 0AE9FC 7F079ECC 240E004E */ li $t6, 78 +/* 0AEA00 7F079ED0 1000002C */ b .L7F079F84 +/* 0AEA04 7F079ED4 00000000 */ nop +.L7F079ED8: +/* 0AEA08 7F079ED8 1020002A */ beqz $at, .L7F079F84 +/* 0AEA0C 7F079EDC 0003C080 */ sll $t8, $v1, 2 +/* 0AEA10 7F079EE0 3C018005 */ lui $at, %hi(jpt_bondhead) +/* 0AEA14 7F079EE4 00380821 */ addu $at, $at, $t8 +/* 0AEA18 7F079EE8 8C385008 */ lw $t8, %lo(jpt_bondhead)($at) +/* 0AEA1C 7F079EEC 03000008 */ jr $t8 +/* 0AEA20 7F079EF0 00000000 */ nop +boiler_bond_head_set: +/* 0AEA24 7F079EF4 240D004A */ li $t5, 74 +/* 0AEA28 7F079EF8 10000022 */ b .L7F079F84 +/* 0AEA2C 7F079EFC AFAD0040 */ sw $t5, 0x40($sp) +jungle_head_set: +/* 0AEA30 7F079F00 240E004C */ li $t6, 76 +/* 0AEA34 7F079F04 1000001F */ b .L7F079F84 +/* 0AEA38 7F079F08 AFAE0040 */ sw $t6, 0x40($sp) +brosnan_tux_head_set: +/* 0AEA3C 7F079F0C 240F004E */ li $t7, 78 +/* 0AEA40 7F079F10 1000001C */ b .L7F079F84 +/* 0AEA44 7F079F14 AFAF0040 */ sw $t7, 0x40($sp) +connery_head_set: +/* 0AEA48 7F079F18 240B004E */ li $t3, 78 +/* 0AEA4C 7F079F1C 10000019 */ b .L7F079F84 +/* 0AEA50 7F079F20 AFAB0040 */ sw $t3, 0x40($sp) +moore_head_set: +/* 0AEA54 7F079F24 240A004E */ li $t2, 78 +/* 0AEA58 7F079F28 10000016 */ b .L7F079F84 +/* 0AEA5C 7F079F2C AFAA0040 */ sw $t2, 0x40($sp) +dalton_head_set: +/* 0AEA60 7F079F30 240C004E */ li $t4, 78 +/* 0AEA64 7F079F34 10000013 */ b .L7F079F84 +/* 0AEA68 7F079F38 AFAC0040 */ sw $t4, 0x40($sp) +variable_body_head: +/* 0AEA6C 7F079F3C 2419004E */ li $t9, 78 +/* 0AEA70 7F079F40 10000010 */ b .L7F079F84 +/* 0AEA74 7F079F44 AFB90040 */ sw $t9, 0x40($sp) +.L7F079F48: +/* 0AEA78 7F079F48 1000000E */ b .L7F079F84 +/* 0AEA7C 7F079F4C AFB80040 */ sw $t8, 0x40($sp) +.L7F079F50: +/* 0AEA80 7F079F50 1000000C */ b .L7F079F84 +/* 0AEA84 7F079F54 AFAD0040 */ sw $t5, 0x40($sp) +.L7F079F58: +/* 0AEA88 7F079F58 1000000A */ b .L7F079F84 +/* 0AEA8C 7F079F5C AFAE0040 */ sw $t6, 0x40($sp) +.L7F079F60: +/* 0AEA90 7F079F60 0FC26C54 */ jal get_cur_playernum +/* 0AEA94 7F079F64 00000000 */ nop +/* 0AEA98 7F079F68 0FC040AF */ jal get_player_mp_char_head +/* 0AEA9C 7F079F6C 00402025 */ move $a0, $v0 +/* 0AEAA0 7F079F70 0FC26C54 */ jal get_cur_playernum +/* 0AEAA4 7F079F74 AFA20040 */ sw $v0, 0x40($sp) +/* 0AEAA8 7F079F78 0FC040D7 */ jal get_player_mp_char_body +/* 0AEAAC 7F079F7C 00402025 */ move $a0, $v0 +/* 0AEAB0 7F079F80 AFA20044 */ sw $v0, 0x44($sp) +.L7F079F84: +/* 0AEAB4 7F079F84 3C0F8003 */ lui $t7, %hi(cameramode) +/* 0AEAB8 7F079F88 8DEF6494 */ lw $t7, %lo(cameramode)($t7) +/* 0AEABC 7F079F8C 24010003 */ li $at, 3 +/* 0AEAC0 7F079F90 15E10003 */ bne $t7, $at, .L7F079FA0 +/* 0AEAC4 7F079F94 3C0B8008 */ lui $t3, %hi(starting_right_weapon) +/* 0AEAC8 7F079F98 8D6B99E0 */ lw $t3, %lo(starting_right_weapon)($t3) +/* 0AEACC 7F079F9C AFAB0048 */ sw $t3, 0x48($sp) +.L7F079FA0: +/* 0AEAD0 7F079FA0 0FC26919 */ jal get_num_players +/* 0AEAD4 7F079FA4 00000000 */ nop +/* 0AEAD8 7F079FA8 24010001 */ li $at, 1 +/* 0AEADC 7F079FAC 14410083 */ bne $v0, $at, .L7F07A1BC +/* 0AEAE0 7F079FB0 8FAF0044 */ lw $t7, 0x44($sp) +/* 0AEAE4 7F079FB4 0FC173D7 */ jal remove_item_in_hand +/* 0AEAE8 7F079FB8 24040001 */ li $a0, 1 +/* 0AEAEC 7F079FBC 0FC173D7 */ jal remove_item_in_hand +/* 0AEAF0 7F079FC0 00002025 */ move $a0, $zero +/* 0AEAF4 7F079FC4 27A40100 */ addiu $a0, $sp, 0x100 +/* 0AEAF8 7F079FC8 8FA500EC */ lw $a1, 0xec($sp) +/* 0AEAFC 7F079FCC 0FC32EBD */ jal sub_GAME_7F0CBAF4 +/* 0AEB00 7F079FD0 8FA600E0 */ lw $a2, 0xe0($sp) +/* 0AEB04 7F079FD4 0FC173C6 */ jal get_ptr_itemheader_in_hand +/* 0AEB08 7F079FD8 00002025 */ move $a0, $zero +/* 0AEB0C 7F079FDC 8FAA0044 */ lw $t2, 0x44($sp) +/* 0AEB10 7F079FE0 3C198004 */ lui $t9, %hi(c_item_entries) +/* 0AEB14 7F079FE4 2739DE10 */ addiu $t9, %lo(c_item_entries) # addiu $t9, $t9, -0x21f0 +/* 0AEB18 7F079FE8 000A6080 */ sll $t4, $t2, 2 +/* 0AEB1C 7F079FEC 018A6021 */ addu $t4, $t4, $t2 +/* 0AEB20 7F079FF0 000C6080 */ sll $t4, $t4, 2 +/* 0AEB24 7F079FF4 01991821 */ addu $v1, $t4, $t9 +/* 0AEB28 7F079FF8 8C780000 */ lw $t8, ($v1) +/* 0AEB2C 7F079FFC AFA200FC */ sw $v0, 0xfc($sp) +/* 0AEB30 7F07A000 27AB0100 */ addiu $t3, $sp, 0x100 +/* 0AEB34 7F07A004 8F010000 */ lw $at, ($t8) +/* 0AEB38 7F07A008 00402025 */ move $a0, $v0 +/* 0AEB3C 7F07A00C AC410000 */ sw $at, ($v0) +/* 0AEB40 7F07A010 8F0F0004 */ lw $t7, 4($t8) +/* 0AEB44 7F07A014 AC4F0004 */ sw $t7, 4($v0) +/* 0AEB48 7F07A018 8F010008 */ lw $at, 8($t8) +/* 0AEB4C 7F07A01C AC410008 */ sw $at, 8($v0) +/* 0AEB50 7F07A020 8F0F000C */ lw $t7, 0xc($t8) +/* 0AEB54 7F07A024 AC4F000C */ sw $t7, 0xc($v0) +/* 0AEB58 7F07A028 8F010010 */ lw $at, 0x10($t8) +/* 0AEB5C 7F07A02C AC410010 */ sw $at, 0x10($v0) +/* 0AEB60 7F07A030 8F0F0014 */ lw $t7, 0x14($t8) +/* 0AEB64 7F07A034 AC4F0014 */ sw $t7, 0x14($v0) +/* 0AEB68 7F07A038 8F010018 */ lw $at, 0x18($t8) +/* 0AEB6C 7F07A03C AC410018 */ sw $at, 0x18($v0) +/* 0AEB70 7F07A040 8F0F001C */ lw $t7, 0x1c($t8) +/* 0AEB74 7F07A044 AC4F001C */ sw $t7, 0x1c($v0) +/* 0AEB78 7F07A048 AFA30028 */ sw $v1, 0x28($sp) +/* 0AEB7C 7F07A04C AFAB0010 */ sw $t3, 0x10($sp) +/* 0AEB80 7F07A050 8FA700E4 */ lw $a3, 0xe4($sp) +/* 0AEB84 7F07A054 8FA600F0 */ lw $a2, 0xf0($sp) +/* 0AEB88 7F07A058 0FC1D929 */ jal load_object_fill_header +/* 0AEB8C 7F07A05C 8C650004 */ lw $a1, 4($v1) +/* 0AEB90 7F07A060 8FA30028 */ lw $v1, 0x28($sp) +/* 0AEB94 7F07A064 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 0AEB98 7F07A068 8C640004 */ lw $a0, 4($v1) +/* 0AEB9C 7F07A06C 8FAD0040 */ lw $t5, 0x40($sp) +/* 0AEBA0 7F07A070 3C0F8004 */ lui $t7, %hi(c_item_entries) +/* 0AEBA4 7F07A074 25EFDE10 */ addiu $t7, %lo(c_item_entries) # addiu $t7, $t7, -0x21f0 +/* 0AEBA8 7F07A078 000DC080 */ sll $t8, $t5, 2 +/* 0AEBAC 7F07A07C 030DC021 */ addu $t8, $t8, $t5 +/* 0AEBB0 7F07A080 0018C080 */ sll $t8, $t8, 2 +/* 0AEBB4 7F07A084 030F1821 */ addu $v1, $t8, $t7 +/* 0AEBB8 7F07A088 8C6B0000 */ lw $t3, ($v1) +/* 0AEBBC 7F07A08C 2448003F */ addiu $t0, $v0, 0x3f +/* 0AEBC0 7F07A090 8FA900F0 */ lw $t1, 0xf0($sp) +/* 0AEBC4 7F07A094 350A003F */ ori $t2, $t0, 0x3f +/* 0AEBC8 7F07A098 8D610000 */ lw $at, ($t3) +/* 0AEBCC 7F07A09C 394C003F */ xori $t4, $t2, 0x3f +/* 0AEBD0 7F07A0A0 2588005F */ addiu $t0, $t4, 0x5f +/* 0AEBD4 7F07A0A4 3519003F */ ori $t9, $t0, 0x3f +/* 0AEBD8 7F07A0A8 012C2021 */ addu $a0, $t1, $t4 +/* 0AEBDC 7F07A0AC 3B28003F */ xori $t0, $t9, 0x3f +/* 0AEBE0 7F07A0B0 AC810000 */ sw $at, ($a0) +/* 0AEBE4 7F07A0B4 8D790004 */ lw $t9, 4($t3) +/* 0AEBE8 7F07A0B8 27AD0100 */ addiu $t5, $sp, 0x100 +/* 0AEBEC 7F07A0BC 01283021 */ addu $a2, $t1, $t0 +/* 0AEBF0 7F07A0C0 AC990004 */ sw $t9, 4($a0) +/* 0AEBF4 7F07A0C4 8D610008 */ lw $at, 8($t3) +/* 0AEBF8 7F07A0C8 AC810008 */ sw $at, 8($a0) +/* 0AEBFC 7F07A0CC 8D79000C */ lw $t9, 0xc($t3) +/* 0AEC00 7F07A0D0 AC99000C */ sw $t9, 0xc($a0) +/* 0AEC04 7F07A0D4 8D610010 */ lw $at, 0x10($t3) +/* 0AEC08 7F07A0D8 AC810010 */ sw $at, 0x10($a0) +/* 0AEC0C 7F07A0DC 8D790014 */ lw $t9, 0x14($t3) +/* 0AEC10 7F07A0E0 AC990014 */ sw $t9, 0x14($a0) +/* 0AEC14 7F07A0E4 8D610018 */ lw $at, 0x18($t3) +/* 0AEC18 7F07A0E8 AC810018 */ sw $at, 0x18($a0) +/* 0AEC1C 7F07A0EC 8D79001C */ lw $t9, 0x1c($t3) +/* 0AEC20 7F07A0F0 AC99001C */ sw $t9, 0x1c($a0) +/* 0AEC24 7F07A0F4 8FAE00E4 */ lw $t6, 0xe4($sp) +/* 0AEC28 7F07A0F8 AFA800E8 */ sw $t0, 0xe8($sp) +/* 0AEC2C 7F07A0FC AFA400F8 */ sw $a0, 0xf8($sp) +/* 0AEC30 7F07A100 AFA30028 */ sw $v1, 0x28($sp) +/* 0AEC34 7F07A104 AFAD0010 */ sw $t5, 0x10($sp) +/* 0AEC38 7F07A108 8C650004 */ lw $a1, 4($v1) +/* 0AEC3C 7F07A10C 0FC1D929 */ jal load_object_fill_header +/* 0AEC40 7F07A110 01C83823 */ subu $a3, $t6, $t0 +/* 0AEC44 7F07A114 8FA30028 */ lw $v1, 0x28($sp) +/* 0AEC48 7F07A118 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 0AEC4C 7F07A11C 8C640004 */ lw $a0, 4($v1) +/* 0AEC50 7F07A120 8FA300E8 */ lw $v1, 0xe8($sp) +/* 0AEC54 7F07A124 8FAC00F0 */ lw $t4, 0xf0($sp) +/* 0AEC58 7F07A128 8FA400FC */ lw $a0, 0xfc($sp) +/* 0AEC5C 7F07A12C 00431821 */ addu $v1, $v0, $v1 +/* 0AEC60 7F07A130 2463003F */ addiu $v1, $v1, 0x3f +/* 0AEC64 7F07A134 3478003F */ ori $t8, $v1, 0x3f +/* 0AEC68 7F07A138 3B0F003F */ xori $t7, $t8, 0x3f +/* 0AEC6C 7F07A13C 25E300FB */ addiu $v1, $t7, 0xfb +/* 0AEC70 7F07A140 346B003F */ ori $t3, $v1, 0x3f +/* 0AEC74 7F07A144 3979003F */ xori $t9, $t3, 0x3f +/* 0AEC78 7F07A148 018F5021 */ addu $t2, $t4, $t7 +/* 0AEC7C 7F07A14C AFAA0038 */ sw $t2, 0x38($sp) +/* 0AEC80 7F07A150 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0AEC84 7F07A154 AFB900E8 */ sw $t9, 0xe8($sp) +/* 0AEC88 7F07A158 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0AEC8C 7F07A15C 8FA400F8 */ lw $a0, 0xf8($sp) +/* 0AEC90 7F07A160 8FA500FC */ lw $a1, 0xfc($sp) +/* 0AEC94 7F07A164 8FAF00F8 */ lw $t7, 0xf8($sp) +/* 0AEC98 7F07A168 8FA300E8 */ lw $v1, 0xe8($sp) +/* 0AEC9C 7F07A16C 84B80014 */ lh $t8, 0x14($a1) +/* 0AECA0 7F07A170 85EC0014 */ lh $t4, 0x14($t7) +/* 0AECA4 7F07A174 8FAE00F0 */ lw $t6, 0xf0($sp) +/* 0AECA8 7F07A178 8FA40038 */ lw $a0, 0x38($sp) +/* 0AECAC 7F07A17C 030C1021 */ addu $v0, $t8, $t4 +/* 0AECB0 7F07A180 2442000A */ addiu $v0, $v0, 0xa +/* 0AECB4 7F07A184 00025080 */ sll $t2, $v0, 2 +/* 0AECB8 7F07A188 01C33021 */ addu $a2, $t6, $v1 +/* 0AECBC 7F07A18C 01431821 */ addu $v1, $t2, $v1 +/* 0AECC0 7F07A190 2463003F */ addiu $v1, $v1, 0x3f +/* 0AECC4 7F07A194 346B003F */ ori $t3, $v1, 0x3f +/* 0AECC8 7F07A198 3979003F */ xori $t9, $t3, 0x3f +/* 0AECCC 7F07A19C AFB900E8 */ sw $t9, 0xe8($sp) +/* 0AECD0 7F07A1A0 0FC1D7EB */ jal sub_GAME_7F075FAC +/* 0AECD4 7F07A1A4 AFA20030 */ sw $v0, 0x30($sp) +/* 0AECD8 7F07A1A8 8FA20030 */ lw $v0, 0x30($sp) +/* 0AECDC 7F07A1AC 8FAE0038 */ lw $t6, 0x38($sp) +/* 0AECE0 7F07A1B0 A5C20002 */ sh $v0, 2($t6) +/* 0AECE4 7F07A1B4 1000001F */ b .L7F07A234 +/* 0AECE8 7F07A1B8 8FA700F8 */ lw $a3, 0xf8($sp) +.L7F07A1BC: +/* 0AECEC 7F07A1BC 000FC080 */ sll $t8, $t7, 2 +/* 0AECF0 7F07A1C0 030FC021 */ addu $t8, $t8, $t7 +/* 0AECF4 7F07A1C4 3C0C8004 */ lui $t4, %hi(c_item_entries) +/* 0AECF8 7F07A1C8 258CDE10 */ addiu $t4, %lo(c_item_entries) # addiu $t4, $t4, -0x21f0 +/* 0AECFC 7F07A1CC 0018C080 */ sll $t8, $t8, 2 +/* 0AED00 7F07A1D0 030C1821 */ addu $v1, $t8, $t4 +/* 0AED04 7F07A1D4 8C6A0000 */ lw $t2, ($v1) +/* 0AED08 7F07A1D8 AFAA00FC */ sw $t2, 0xfc($sp) +/* 0AED0C 7F07A1DC 8D590000 */ lw $t9, ($t2) +/* 0AED10 7F07A1E0 01402025 */ move $a0, $t2 +/* 0AED14 7F07A1E4 57200004 */ bnezl $t9, .L7F07A1F8 +/* 0AED18 7F07A1E8 8FAD0040 */ lw $t5, 0x40($sp) +/* 0AED1C 7F07A1EC 0FC1D953 */ jal load_object_into_memory +/* 0AED20 7F07A1F0 8C650004 */ lw $a1, 4($v1) +/* 0AED24 7F07A1F4 8FAD0040 */ lw $t5, 0x40($sp) +.L7F07A1F8: +/* 0AED28 7F07A1F8 3C0F8004 */ lui $t7, %hi(c_item_entries) +/* 0AED2C 7F07A1FC 25EFDE10 */ addiu $t7, %lo(c_item_entries) # addiu $t7, $t7, -0x21f0 +/* 0AED30 7F07A200 000D7080 */ sll $t6, $t5, 2 +/* 0AED34 7F07A204 01CD7021 */ addu $t6, $t6, $t5 +/* 0AED38 7F07A208 000E7080 */ sll $t6, $t6, 2 +/* 0AED3C 7F07A20C 01CF1821 */ addu $v1, $t6, $t7 +/* 0AED40 7F07A210 8C670000 */ lw $a3, ($v1) +/* 0AED44 7F07A214 8CF80000 */ lw $t8, ($a3) +/* 0AED48 7F07A218 00E02025 */ move $a0, $a3 +/* 0AED4C 7F07A21C 57000006 */ bnezl $t8, .L7F07A238 +/* 0AED50 7F07A220 8FAC0038 */ lw $t4, 0x38($sp) +/* 0AED54 7F07A224 8C650004 */ lw $a1, 4($v1) +/* 0AED58 7F07A228 0FC1D953 */ jal load_object_into_memory +/* 0AED5C 7F07A22C AFA700F8 */ sw $a3, 0xf8($sp) +/* 0AED60 7F07A230 8FA700F8 */ lw $a3, 0xf8($sp) +.L7F07A234: +/* 0AED64 7F07A234 8FAC0038 */ lw $t4, 0x38($sp) +.L7F07A238: +/* 0AED68 7F07A238 8FA40044 */ lw $a0, 0x44($sp) +/* 0AED6C 7F07A23C 8FA50040 */ lw $a1, 0x40($sp) +/* 0AED70 7F07A240 8FA600FC */ lw $a2, 0xfc($sp) +/* 0AED74 7F07A244 AFA00010 */ sw $zero, 0x10($sp) +/* 0AED78 7F07A248 0FC08CBA */ jal maybe_load_models_for_guards +/* 0AED7C 7F07A24C AFAC0014 */ sw $t4, 0x14($sp) +/* 0AED80 7F07A250 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AED84 7F07A254 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AED88 7F07A258 8C6A0000 */ lw $t2, ($v1) +/* 0AED8C 7F07A25C 3C018005 */ lui $at, %hi(D_8005502C) +/* 0AED90 7F07A260 AD4200D4 */ sw $v0, 0xd4($t2) +/* 0AED94 7F07A264 8C790000 */ lw $t9, ($v1) +/* 0AED98 7F07A268 C426502C */ lwc1 $f6, %lo(D_8005502C)($at) +/* 0AED9C 7F07A26C 8F2400D4 */ lw $a0, 0xd4($t9) +/* 0AEDA0 7F07A270 C4840014 */ lwc1 $f4, 0x14($a0) +/* 0AEDA4 7F07A274 46062202 */ mul.s $f8, $f4, $f6 +/* 0AEDA8 7F07A278 44054000 */ mfc1 $a1, $f8 +/* 0AEDAC 7F07A27C 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0AEDB0 7F07A280 00000000 */ nop +/* 0AEDB4 7F07A284 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AEDB8 7F07A288 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0AEDBC 7F07A28C 8FA70114 */ lw $a3, 0x114($sp) +/* 0AEDC0 7F07A290 8C6400A8 */ lw $a0, 0xa8($v1) +/* 0AEDC4 7F07A294 8C6500D4 */ lw $a1, 0xd4($v1) +/* 0AEDC8 7F07A298 8C8B0014 */ lw $t3, 0x14($a0) +/* 0AEDCC 7F07A29C AFA00014 */ sw $zero, 0x14($sp) +/* 0AEDD0 7F07A2A0 24860008 */ addiu $a2, $a0, 8 +/* 0AEDD4 7F07A2A4 0FC0802F */ jal init_GUARDdata_with_set_values +/* 0AEDD8 7F07A2A8 AFAB0010 */ sw $t3, 0x10($sp) +/* 0AEDDC 7F07A2AC 3C078008 */ lui $a3, %hi(pPlayer) +/* 0AEDE0 7F07A2B0 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0AEDE4 7F07A2B4 8CEE0000 */ lw $t6, ($a3) +/* 0AEDE8 7F07A2B8 240D0006 */ li $t5, 6 +/* 0AEDEC 7F07A2BC 8DCF00A8 */ lw $t7, 0xa8($t6) +/* 0AEDF0 7F07A2C0 A1ED0000 */ sb $t5, ($t7) +/* 0AEDF4 7F07A2C4 8CF80000 */ lw $t8, ($a3) +/* 0AEDF8 7F07A2C8 8F0C00A8 */ lw $t4, 0xa8($t8) +/* 0AEDFC 7F07A2CC 8D860004 */ lw $a2, 4($t4) +/* 0AEE00 7F07A2D0 8CCA0014 */ lw $t2, 0x14($a2) +/* 0AEE04 7F07A2D4 35590001 */ ori $t9, $t2, 1 +/* 0AEE08 7F07A2D8 ACD90014 */ sw $t9, 0x14($a2) +/* 0AEE0C 7F07A2DC 8CE30000 */ lw $v1, ($a3) +/* 0AEE10 7F07A2E0 8C6500A8 */ lw $a1, 0xa8($v1) +/* 0AEE14 7F07A2E4 8C6400D4 */ lw $a0, 0xd4($v1) +/* 0AEE18 7F07A2E8 AFA60110 */ sw $a2, 0x110($sp) +/* 0AEE1C 7F07A2EC 0FC1B303 */ jal setsuboffset +/* 0AEE20 7F07A2F0 24A50008 */ addiu $a1, $a1, 8 +/* 0AEE24 7F07A2F4 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0AEE28 7F07A2F8 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0AEE2C 7F07A2FC 8FA50114 */ lw $a1, 0x114($sp) +/* 0AEE30 7F07A300 0FC1B34F */ jal setsubroty +/* 0AEE34 7F07A304 8D6400D4 */ lw $a0, 0xd4($t3) +/* 0AEE38 7F07A308 0FC26C91 */ jal sub_GAME_7F09B244 +/* 0AEE3C 7F07A30C 8FA40048 */ lw $a0, 0x48($sp) +/* 0AEE40 7F07A310 04400045 */ bltz $v0, .L7F07A428 +/* 0AEE44 7F07A314 AFA2004C */ sw $v0, 0x4c($sp) +/* 0AEE48 7F07A318 0FC26919 */ jal get_num_players +/* 0AEE4C 7F07A31C 00000000 */ nop +/* 0AEE50 7F07A320 24010001 */ li $at, 1 +/* 0AEE54 7F07A324 14410035 */ bne $v0, $at, .L7F07A3FC +/* 0AEE58 7F07A328 8FAE00F0 */ lw $t6, 0xf0($sp) +/* 0AEE5C 7F07A32C 8FA200E8 */ lw $v0, 0xe8($sp) +/* 0AEE60 7F07A330 24040001 */ li $a0, 1 +/* 0AEE64 7F07A334 01C26821 */ addu $t5, $t6, $v0 +/* 0AEE68 7F07A338 244200C7 */ addiu $v0, $v0, 0xc7 +/* 0AEE6C 7F07A33C 344F003F */ ori $t7, $v0, 0x3f +/* 0AEE70 7F07A340 39F8003F */ xori $t8, $t7, 0x3f +/* 0AEE74 7F07A344 AFAD00DC */ sw $t5, 0xdc($sp) +/* 0AEE78 7F07A348 0FC173C6 */ jal get_ptr_itemheader_in_hand +/* 0AEE7C 7F07A34C AFB800E8 */ sw $t8, 0xe8($sp) +/* 0AEE80 7F07A350 8FAC004C */ lw $t4, 0x4c($sp) +/* 0AEE84 7F07A354 3C198004 */ lui $t9, %hi(PitemZ_entries) +/* 0AEE88 7F07A358 2739A228 */ addiu $t9, %lo(PitemZ_entries) # addiu $t9, $t9, -0x5dd8 +/* 0AEE8C 7F07A35C 000C5080 */ sll $t2, $t4, 2 +/* 0AEE90 7F07A360 014C5023 */ subu $t2, $t2, $t4 +/* 0AEE94 7F07A364 000A5080 */ sll $t2, $t2, 2 +/* 0AEE98 7F07A368 01591821 */ addu $v1, $t2, $t9 +/* 0AEE9C 7F07A36C 8C6B0000 */ lw $t3, ($v1) +/* 0AEEA0 7F07A370 AFA200F4 */ sw $v0, 0xf4($sp) +/* 0AEEA4 7F07A374 27AD0100 */ addiu $t5, $sp, 0x100 +/* 0AEEA8 7F07A378 8D610000 */ lw $at, ($t3) +/* 0AEEAC 7F07A37C 00402025 */ move $a0, $v0 +/* 0AEEB0 7F07A380 AC410000 */ sw $at, ($v0) +/* 0AEEB4 7F07A384 8D6F0004 */ lw $t7, 4($t3) +/* 0AEEB8 7F07A388 AC4F0004 */ sw $t7, 4($v0) +/* 0AEEBC 7F07A38C 8D610008 */ lw $at, 8($t3) +/* 0AEEC0 7F07A390 AC410008 */ sw $at, 8($v0) +/* 0AEEC4 7F07A394 8D6F000C */ lw $t7, 0xc($t3) +/* 0AEEC8 7F07A398 AC4F000C */ sw $t7, 0xc($v0) +/* 0AEECC 7F07A39C 8D610010 */ lw $at, 0x10($t3) +/* 0AEED0 7F07A3A0 AC410010 */ sw $at, 0x10($v0) +/* 0AEED4 7F07A3A4 8D6F0014 */ lw $t7, 0x14($t3) +/* 0AEED8 7F07A3A8 AC4F0014 */ sw $t7, 0x14($v0) +/* 0AEEDC 7F07A3AC 8D610018 */ lw $at, 0x18($t3) +/* 0AEEE0 7F07A3B0 AC410018 */ sw $at, 0x18($v0) +/* 0AEEE4 7F07A3B4 8D6F001C */ lw $t7, 0x1c($t3) +/* 0AEEE8 7F07A3B8 AC4F001C */ sw $t7, 0x1c($v0) +/* 0AEEEC 7F07A3BC 8FAC00E8 */ lw $t4, 0xe8($sp) +/* 0AEEF0 7F07A3C0 8FAA00E4 */ lw $t2, 0xe4($sp) +/* 0AEEF4 7F07A3C4 8FB800F0 */ lw $t8, 0xf0($sp) +/* 0AEEF8 7F07A3C8 AFA30028 */ sw $v1, 0x28($sp) +/* 0AEEFC 7F07A3CC AFAD0010 */ sw $t5, 0x10($sp) +/* 0AEF00 7F07A3D0 8C650004 */ lw $a1, 4($v1) +/* 0AEF04 7F07A3D4 014C3823 */ subu $a3, $t2, $t4 +/* 0AEF08 7F07A3D8 0FC1D929 */ jal load_object_fill_header +/* 0AEF0C 7F07A3DC 030C3021 */ addu $a2, $t8, $t4 +/* 0AEF10 7F07A3E0 8FA30028 */ lw $v1, 0x28($sp) +/* 0AEF14 7F07A3E4 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 0AEF18 7F07A3E8 8C640004 */ lw $a0, 4($v1) +/* 0AEF1C 7F07A3EC 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0AEF20 7F07A3F0 8FA400F4 */ lw $a0, 0xf4($sp) +/* 0AEF24 7F07A3F4 10000004 */ b .L7F07A408 +/* 0AEF28 7F07A3F8 8FAE00DC */ lw $t6, 0xdc($sp) +.L7F07A3FC: +/* 0AEF2C 7F07A3FC AFA000DC */ sw $zero, 0xdc($sp) +/* 0AEF30 7F07A400 AFA000F4 */ sw $zero, 0xf4($sp) +/* 0AEF34 7F07A404 8FAE00DC */ lw $t6, 0xdc($sp) +.L7F07A408: +/* 0AEF38 7F07A408 8FAB00F4 */ lw $t3, 0xf4($sp) +/* 0AEF3C 7F07A40C 8FA40110 */ lw $a0, 0x110($sp) +/* 0AEF40 7F07A410 8FA5004C */ lw $a1, 0x4c($sp) +/* 0AEF44 7F07A414 8FA60048 */ lw $a2, 0x48($sp) +/* 0AEF48 7F07A418 00003825 */ move $a3, $zero +/* 0AEF4C 7F07A41C AFAE0010 */ sw $t6, 0x10($sp) +/* 0AEF50 7F07A420 0FC14885 */ jal something_with_generating_object +/* 0AEF54 7F07A424 AFAB0014 */ sw $t3, 0x14($sp) +.L7F07A428: +/* 0AEF58 7F07A428 8FA40110 */ lw $a0, 0x110($sp) +/* 0AEF5C 7F07A42C 0FC08EA5 */ jal sub_GAME_7F023A94 +/* 0AEF60 7F07A430 24050000 */ li $a1, 0 +/* 0AEF64 7F07A434 10000017 */ b .L7F07A494 +/* 0AEF68 7F07A438 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AEF6C 7F07A43C 8C4F001C */ lw $t7, 0x1c($v0) +.L7F07A440: +/* 0AEF70 7F07A440 00402025 */ move $a0, $v0 +/* 0AEF74 7F07A444 8DF80020 */ lw $t8, 0x20($t7) +/* 0AEF78 7F07A448 57000012 */ bnezl $t8, .L7F07A494 +/* 0AEF7C 7F07A44C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AEF80 7F07A450 8C4C0014 */ lw $t4, 0x14($v0) +/* 0AEF84 7F07A454 24050000 */ li $a1, 0 +/* 0AEF88 7F07A458 358A0001 */ ori $t2, $t4, 1 +/* 0AEF8C 7F07A45C 0FC08EA5 */ jal sub_GAME_7F023A94 +/* 0AEF90 7F07A460 AC4A0014 */ sw $t2, 0x14($v0) +/* 0AEF94 7F07A464 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AEF98 7F07A468 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0AEF9C 7F07A46C 8C6500A8 */ lw $a1, 0xa8($v1) +/* 0AEFA0 7F07A470 8C6400D4 */ lw $a0, 0xd4($v1) +/* 0AEFA4 7F07A474 0FC1B303 */ jal setsuboffset +/* 0AEFA8 7F07A478 24A50008 */ addiu $a1, $a1, 8 +/* 0AEFAC 7F07A47C 3C198008 */ lui $t9, %hi(pPlayer) +/* 0AEFB0 7F07A480 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0AEFB4 7F07A484 8FA50114 */ lw $a1, 0x114($sp) +/* 0AEFB8 7F07A488 0FC1B34F */ jal setsubroty +/* 0AEFBC 7F07A48C 8F2400D4 */ lw $a0, 0xd4($t9) +/* 0AEFC0 7F07A490 8FBF001C */ lw $ra, 0x1c($sp) +.L7F07A494: +/* 0AEFC4 7F07A494 27BD0118 */ addiu $sp, $sp, 0x118 +/* 0AEFC8 7F07A498 03E00008 */ jr $ra +/* 0AEFCC 7F07A49C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +/*D:80054FE4*/ +glabel jpt_bondcuff +.word .Ljp7F07A494 +.word cuff_1_brosnan +.word cuff_2_jungle +.word cuff_3_boiler +.word cuff_4_snowsuit +.word cuff_5_connery +.word cuff_6_moore +.word cuff_7_dalton +.word cuff_8_variable_bond_head + +/*D:80055008*/ +glabel jpt_bondhead +.word .Ljp7F07A574 +.word brosnan_tux_head_set +.word jungle_head_set +.word boiler_bond_head_set +.word .Ljp7F07A574 +.word connery_head_set +.word moore_head_set +.word dalton_head_set +.word variable_body_head + +glabel D_8005502C +.word 0x3f7851ec /*0.97000003*/ +.text +glabel solo_char_load +/* 0AEE50 7F07A2E0 27BDFEE8 */ addiu $sp, $sp, -0x118 +/* 0AEE54 7F07A2E4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0AEE58 7F07A2E8 0FC22987 */ jal get_curplay_horizontal_rotation_in_degrees +/* 0AEE5C 7F07A2EC 00000000 */ nop +/* 0AEE60 7F07A2F0 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0AEE64 7F07A2F4 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0AEE68 7F07A2F8 E7A00114 */ swc1 $f0, 0x114($sp) +/* 0AEE6C 7F07A2FC 8DCF00A8 */ lw $t7, 0xa8($t6) +/* 0AEE70 7F07A300 8DE20004 */ lw $v0, 4($t7) +/* 0AEE74 7F07A304 544001D6 */ bnezl $v0, .Ljp7F07AA60 +/* 0AEE78 7F07A308 8C59001C */ lw $t9, 0x1c($v0) +/* 0AEE7C 7F07A30C 0FC17514 */ jal getPlayerWeaponBufferForHand +/* 0AEE80 7F07A310 00002025 */ move $a0, $zero +/* 0AEE84 7F07A314 AFA200F0 */ sw $v0, 0xf0($sp) +/* 0AEE88 7F07A318 0FC17514 */ jal getPlayerWeaponBufferForHand +/* 0AEE8C 7F07A31C 24040001 */ li $a0, 1 +/* 0AEE90 7F07A320 AFA200EC */ sw $v0, 0xec($sp) +/* 0AEE94 7F07A324 AFA000E8 */ sw $zero, 0xe8($sp) +/* 0AEE98 7F07A328 0FC1751A */ jal getSizeBufferWeaponInHand +/* 0AEE9C 7F07A32C 00002025 */ move $a0, $zero +/* 0AEEA0 7F07A330 AFA200E4 */ sw $v0, 0xe4($sp) +/* 0AEEA4 7F07A334 0FC1751A */ jal getSizeBufferWeaponInHand +/* 0AEEA8 7F07A338 24040001 */ li $a0, 1 +/* 0AEEAC 7F07A33C 3C198003 */ lui $t9, %hi(dummy_08_pp7_obj) # $t9, 0x8003 +/* 0AEEB0 7F07A340 273965EC */ addiu $t9, %lo(dummy_08_pp7_obj) # addiu $t9, $t9, 0x65ec +/* 0AEEB4 7F07A344 AFA200E0 */ sw $v0, 0xe0($sp) +/* 0AEEB8 7F07A348 272C0084 */ addiu $t4, $t9, 0x84 +/* 0AEEBC 7F07A34C 27B80054 */ addiu $t8, $sp, 0x54 +.Ljp7F07A350: +/* 0AEEC0 7F07A350 8F210000 */ lw $at, ($t9) +/* 0AEEC4 7F07A354 2739000C */ addiu $t9, $t9, 0xc +/* 0AEEC8 7F07A358 2718000C */ addiu $t8, $t8, 0xc +/* 0AEECC 7F07A35C AF01FFF4 */ sw $at, -0xc($t8) +/* 0AEED0 7F07A360 8F21FFF8 */ lw $at, -8($t9) +/* 0AEED4 7F07A364 AF01FFF8 */ sw $at, -8($t8) +/* 0AEED8 7F07A368 8F21FFFC */ lw $at, -4($t9) +/* 0AEEDC 7F07A36C 172CFFF8 */ bne $t9, $t4, .Ljp7F07A350 +/* 0AEEE0 7F07A370 AF01FFFC */ sw $at, -4($t8) +/* 0AEEE4 7F07A374 8F210000 */ lw $at, ($t9) +/* 0AEEE8 7F07A378 00002025 */ move $a0, $zero +/* 0AEEEC 7F07A37C 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0AEEF0 7F07A380 AF010000 */ sw $at, ($t8) +/* 0AEEF4 7F07A384 240D0017 */ li $t5, 23 +/* 0AEEF8 7F07A388 240E004B */ li $t6, 75 +/* 0AEEFC 7F07A38C 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 0AEF00 7F07A390 AFA20048 */ sw $v0, 0x48($sp) +/* 0AEF04 7F07A394 AFAD0044 */ sw $t5, 0x44($sp) +/* 0AEF08 7F07A398 AFAE0040 */ sw $t6, 0x40($sp) +/* 0AEF0C 7F07A39C AFA00038 */ sw $zero, 0x38($sp) +/* 0AEF10 7F07A3A0 0FC1F922 */ jal sub_GAME_7F07DE64 +/* 0AEF14 7F07A3A4 8C84A120 */ lw $a0, %lo(pPlayer)($a0) +/* 0AEF18 7F07A3A8 0FC26C01 */ jal get_num_players +/* 0AEF1C 7F07A3AC 00000000 */ nop +/* 0AEF20 7F07A3B0 24010001 */ li $at, 1 +/* 0AEF24 7F07A3B4 14410066 */ bne $v0, $at, .Ljp7F07A550 +/* 0AEF28 7F07A3B8 00000000 */ nop +/* 0AEF2C 7F07A3BC 0FC075C4 */ jal getSelectedFolderBond +/* 0AEF30 7F07A3C0 00000000 */ nop +/* 0AEF34 7F07A3C4 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 0AEF38 7F07A3C8 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 0AEF3C 7F07A3CC 8DE3041C */ lw $v1, 0x41c($t7) +/* 0AEF40 7F07A3D0 2C610009 */ sltiu $at, $v1, 9 +/* 0AEF44 7F07A3D4 1020002F */ beqz $at, .Ljp7F07A494 +/* 0AEF48 7F07A3D8 00035880 */ sll $t3, $v1, 2 +/* 0AEF4C 7F07A3DC 3C018005 */ lui $at, %hi(jpt_bondcuff) +/* 0AEF50 7F07A3E0 002B0821 */ addu $at, $at, $t3 +/* 0AEF54 7F07A3E4 8C2B5014 */ lw $t3, %lo(jpt_bondcuff)($at) +/* 0AEF58 7F07A3E8 01600008 */ jr $t3 +/* 0AEF5C 7F07A3EC 00000000 */ nop +cuff_3_boiler: +/* 0AEF60 7F07A3F0 240A0016 */ li $t2, 22 +/* 0AEF64 7F07A3F4 10000027 */ b .Ljp7F07A494 +/* 0AEF68 7F07A3F8 AFAA0044 */ sw $t2, 0x44($sp) +cuff_2_jungle: +/* 0AEF6C 7F07A3FC 240C0018 */ li $t4, 24 +/* 0AEF70 7F07A400 10000024 */ b .Ljp7F07A494 +/* 0AEF74 7F07A404 AFAC0044 */ sw $t4, 0x44($sp) +cuff_4_snowsuit: +/* 0AEF78 7F07A408 24190019 */ li $t9, 25 +/* 0AEF7C 7F07A40C 10000021 */ b .Ljp7F07A494 +/* 0AEF80 7F07A410 AFB90044 */ sw $t9, 0x44($sp) +cuff_1_brosnan: +/* 0AEF84 7F07A414 24180005 */ li $t8, 5 +/* 0AEF88 7F07A418 1000001E */ b .Ljp7F07A494 +/* 0AEF8C 7F07A41C AFB80044 */ sw $t8, 0x44($sp) +cuff_5_connery: +/* 0AEF90 7F07A420 240D0005 */ li $t5, 5 +/* 0AEF94 7F07A424 1000001B */ b .Ljp7F07A494 +/* 0AEF98 7F07A428 AFAD0044 */ sw $t5, 0x44($sp) +cuff_6_moore: +/* 0AEF9C 7F07A42C 240E0005 */ li $t6, 5 +/* 0AEFA0 7F07A430 10000018 */ b .Ljp7F07A494 +/* 0AEFA4 7F07A434 AFAE0044 */ sw $t6, 0x44($sp) +cuff_7_dalton: +/* 0AEFA8 7F07A438 240F0005 */ li $t7, 5 +/* 0AEFAC 7F07A43C 10000015 */ b .Ljp7F07A494 +/* 0AEFB0 7F07A440 AFAF0044 */ sw $t7, 0x44($sp) +cuff_8_variable_bond_head: +/* 0AEFB4 7F07A444 1040000C */ beqz $v0, .Ljp7F07A478 +/* 0AEFB8 7F07A448 240B0005 */ li $t3, 5 +/* 0AEFBC 7F07A44C 24010001 */ li $at, 1 +/* 0AEFC0 7F07A450 1041000B */ beq $v0, $at, .Ljp7F07A480 +/* 0AEFC4 7F07A454 240A0005 */ li $t2, 5 +/* 0AEFC8 7F07A458 24010002 */ li $at, 2 +/* 0AEFCC 7F07A45C 1041000A */ beq $v0, $at, .Ljp7F07A488 +/* 0AEFD0 7F07A460 240C0005 */ li $t4, 5 +/* 0AEFD4 7F07A464 24010003 */ li $at, 3 +/* 0AEFD8 7F07A468 10410009 */ beq $v0, $at, .Ljp7F07A490 +/* 0AEFDC 7F07A46C 24190005 */ li $t9, 5 +/* 0AEFE0 7F07A470 10000008 */ b .Ljp7F07A494 +/* 0AEFE4 7F07A474 00000000 */ nop +.Ljp7F07A478: +/* 0AEFE8 7F07A478 10000006 */ b .Ljp7F07A494 +/* 0AEFEC 7F07A47C AFAB0044 */ sw $t3, 0x44($sp) +.Ljp7F07A480: +/* 0AEFF0 7F07A480 10000004 */ b .Ljp7F07A494 +/* 0AEFF4 7F07A484 AFAA0044 */ sw $t2, 0x44($sp) +.Ljp7F07A488: +/* 0AEFF8 7F07A488 10000002 */ b .Ljp7F07A494 +/* 0AEFFC 7F07A48C AFAC0044 */ sw $t4, 0x44($sp) +.Ljp7F07A490: +/* 0AF000 7F07A490 AFB90044 */ sw $t9, 0x44($sp) +.Ljp7F07A494: +/* 0AF004 7F07A494 1040000C */ beqz $v0, .Ljp7F07A4C8 +/* 0AF008 7F07A498 2C610009 */ sltiu $at, $v1, 9 +/* 0AF00C 7F07A49C 24010001 */ li $at, 1 +/* 0AF010 7F07A4A0 10410025 */ beq $v0, $at, .Ljp7F07A538 +/* 0AF014 7F07A4A4 2418004E */ li $t8, 78 +/* 0AF018 7F07A4A8 24010002 */ li $at, 2 +/* 0AF01C 7F07A4AC 10410024 */ beq $v0, $at, .Ljp7F07A540 +/* 0AF020 7F07A4B0 240D004E */ li $t5, 78 +/* 0AF024 7F07A4B4 24010003 */ li $at, 3 +/* 0AF028 7F07A4B8 10410023 */ beq $v0, $at, .Ljp7F07A548 +/* 0AF02C 7F07A4BC 240E004E */ li $t6, 78 +/* 0AF030 7F07A4C0 1000002C */ b .Ljp7F07A574 +/* 0AF034 7F07A4C4 00000000 */ nop +.Ljp7F07A4C8: +/* 0AF038 7F07A4C8 1020002A */ beqz $at, .Ljp7F07A574 +/* 0AF03C 7F07A4CC 0003C080 */ sll $t8, $v1, 2 +/* 0AF040 7F07A4D0 3C018005 */ lui $at, %hi(jpt_bondhead) +/* 0AF044 7F07A4D4 00380821 */ addu $at, $at, $t8 +/* 0AF048 7F07A4D8 8C385038 */ lw $t8, %lo(jpt_bondhead)($at) +/* 0AF04C 7F07A4DC 03000008 */ jr $t8 +/* 0AF050 7F07A4E0 00000000 */ nop +boiler_bond_head_set: +/* 0AF054 7F07A4E4 240D004A */ li $t5, 74 +/* 0AF058 7F07A4E8 10000022 */ b .Ljp7F07A574 +/* 0AF05C 7F07A4EC AFAD0040 */ sw $t5, 0x40($sp) +jungle_head_set: +/* 0AF060 7F07A4F0 240E004C */ li $t6, 76 +/* 0AF064 7F07A4F4 1000001F */ b .Ljp7F07A574 +/* 0AF068 7F07A4F8 AFAE0040 */ sw $t6, 0x40($sp) +brosnan_tux_head_set: +/* 0AF06C 7F07A4FC 240F004E */ li $t7, 78 +/* 0AF070 7F07A500 1000001C */ b .Ljp7F07A574 +/* 0AF074 7F07A504 AFAF0040 */ sw $t7, 0x40($sp) +connery_head_set: +/* 0AF078 7F07A508 240B004E */ li $t3, 78 +/* 0AF07C 7F07A50C 10000019 */ b .Ljp7F07A574 +/* 0AF080 7F07A510 AFAB0040 */ sw $t3, 0x40($sp) +moore_head_set: +/* 0AF084 7F07A514 240A004E */ li $t2, 78 +/* 0AF088 7F07A518 10000016 */ b .Ljp7F07A574 +/* 0AF08C 7F07A51C AFAA0040 */ sw $t2, 0x40($sp) +dalton_head_set: +/* 0AF090 7F07A520 240C004E */ li $t4, 78 +/* 0AF094 7F07A524 10000013 */ b .Ljp7F07A574 +/* 0AF098 7F07A528 AFAC0040 */ sw $t4, 0x40($sp) +variable_body_head: +/* 0AF09C 7F07A52C 2419004E */ li $t9, 78 +/* 0AF0A0 7F07A530 10000010 */ b .Ljp7F07A574 +/* 0AF0A4 7F07A534 AFB90040 */ sw $t9, 0x40($sp) +.Ljp7F07A538: +/* 0AF0A8 7F07A538 1000000E */ b .Ljp7F07A574 +/* 0AF0AC 7F07A53C AFB80040 */ sw $t8, 0x40($sp) +.Ljp7F07A540: +/* 0AF0B0 7F07A540 1000000C */ b .Ljp7F07A574 +/* 0AF0B4 7F07A544 AFAD0040 */ sw $t5, 0x40($sp) +.Ljp7F07A548: +/* 0AF0B8 7F07A548 1000000A */ b .Ljp7F07A574 +/* 0AF0BC 7F07A54C AFAE0040 */ sw $t6, 0x40($sp) +.Ljp7F07A550: +/* 0AF0C0 7F07A550 0FC26F3C */ jal get_cur_playernum +/* 0AF0C4 7F07A554 00000000 */ nop +/* 0AF0C8 7F07A558 0FC040BF */ jal get_player_mp_char_head +/* 0AF0CC 7F07A55C 00402025 */ move $a0, $v0 +/* 0AF0D0 7F07A560 0FC26F3C */ jal get_cur_playernum +/* 0AF0D4 7F07A564 AFA20040 */ sw $v0, 0x40($sp) +/* 0AF0D8 7F07A568 0FC040E7 */ jal get_player_mp_char_body +/* 0AF0DC 7F07A56C 00402025 */ move $a0, $v0 +/* 0AF0E0 7F07A570 AFA20044 */ sw $v0, 0x44($sp) +.Ljp7F07A574: +/* 0AF0E4 7F07A574 3C0F8003 */ lui $t7, %hi(cameramode) # $t7, 0x8003 +/* 0AF0E8 7F07A578 8DEF64D4 */ lw $t7, %lo(cameramode)($t7) +/* 0AF0EC 7F07A57C 24010003 */ li $at, 3 +/* 0AF0F0 7F07A580 15E10003 */ bne $t7, $at, .Ljp7F07A590 +/* 0AF0F4 7F07A584 3C0B8008 */ lui $t3, %hi(starting_right_weapon) # $t3, 0x8008 +/* 0AF0F8 7F07A588 8D6B9A20 */ lw $t3, %lo(starting_right_weapon)($t3) +/* 0AF0FC 7F07A58C AFAB0048 */ sw $t3, 0x48($sp) +.Ljp7F07A590: +/* 0AF100 7F07A590 0FC26C01 */ jal get_num_players +/* 0AF104 7F07A594 00000000 */ nop +/* 0AF108 7F07A598 24010001 */ li $at, 1 +/* 0AF10C 7F07A59C 14410082 */ bne $v0, $at, .Ljp7F07A7A8 +/* 0AF110 7F07A5A0 8FAF0044 */ lw $t7, 0x44($sp) +/* 0AF114 7F07A5A4 0FC1751F */ jal remove_item_in_hand +/* 0AF118 7F07A5A8 24040001 */ li $a0, 1 +/* 0AF11C 7F07A5AC 0FC1751F */ jal remove_item_in_hand +/* 0AF120 7F07A5B0 00002025 */ move $a0, $zero +/* 0AF124 7F07A5B4 27A40100 */ addiu $a0, $sp, 0x100 +/* 0AF128 7F07A5B8 8FA500EC */ lw $a1, 0xec($sp) +/* 0AF12C 7F07A5BC 0FC331F5 */ jal sub_GAME_7F0CBAF4 +/* 0AF130 7F07A5C0 8FA600E0 */ lw $a2, 0xe0($sp) +/* 0AF134 7F07A5C4 0FC1750E */ jal get_ptr_itemheader_in_hand +/* 0AF138 7F07A5C8 00002025 */ move $a0, $zero +/* 0AF13C 7F07A5CC 8FAA0044 */ lw $t2, 0x44($sp) +/* 0AF140 7F07A5D0 3C198004 */ lui $t9, %hi(c_item_entries) # $t9, 0x8004 +/* 0AF144 7F07A5D4 2739DE40 */ addiu $t9, %lo(c_item_entries) # addiu $t9, $t9, -0x21c0 +/* 0AF148 7F07A5D8 000A6080 */ sll $t4, $t2, 2 +/* 0AF14C 7F07A5DC 018A6021 */ addu $t4, $t4, $t2 +/* 0AF150 7F07A5E0 000C6080 */ sll $t4, $t4, 2 +/* 0AF154 7F07A5E4 01991821 */ addu $v1, $t4, $t9 +/* 0AF158 7F07A5E8 8C780000 */ lw $t8, ($v1) +/* 0AF15C 7F07A5EC AFA200FC */ sw $v0, 0xfc($sp) +/* 0AF160 7F07A5F0 27AB0100 */ addiu $t3, $sp, 0x100 +/* 0AF164 7F07A5F4 8F010000 */ lw $at, ($t8) +/* 0AF168 7F07A5F8 00402025 */ move $a0, $v0 +/* 0AF16C 7F07A5FC AC410000 */ sw $at, ($v0) +/* 0AF170 7F07A600 8F0F0004 */ lw $t7, 4($t8) +/* 0AF174 7F07A604 AC4F0004 */ sw $t7, 4($v0) +/* 0AF178 7F07A608 8F010008 */ lw $at, 8($t8) +/* 0AF17C 7F07A60C AC410008 */ sw $at, 8($v0) +/* 0AF180 7F07A610 8F0F000C */ lw $t7, 0xc($t8) +/* 0AF184 7F07A614 AC4F000C */ sw $t7, 0xc($v0) +/* 0AF188 7F07A618 8F010010 */ lw $at, 0x10($t8) +/* 0AF18C 7F07A61C AC410010 */ sw $at, 0x10($v0) +/* 0AF190 7F07A620 8F0F0014 */ lw $t7, 0x14($t8) +/* 0AF194 7F07A624 AC4F0014 */ sw $t7, 0x14($v0) +/* 0AF198 7F07A628 8F010018 */ lw $at, 0x18($t8) +/* 0AF19C 7F07A62C AC410018 */ sw $at, 0x18($v0) +/* 0AF1A0 7F07A630 8F0F001C */ lw $t7, 0x1c($t8) +/* 0AF1A4 7F07A634 AC4F001C */ sw $t7, 0x1c($v0) +/* 0AF1A8 7F07A638 AFA30028 */ sw $v1, 0x28($sp) +/* 0AF1AC 7F07A63C AFAB0010 */ sw $t3, 0x10($sp) +/* 0AF1B0 7F07A640 8FA700E4 */ lw $a3, 0xe4($sp) +/* 0AF1B4 7F07A644 8FA600F0 */ lw $a2, 0xf0($sp) +/* 0AF1B8 7F07A648 0FC1DAA5 */ jal load_object_fill_header +/* 0AF1BC 7F07A64C 8C650004 */ lw $a1, 4($v1) +/* 0AF1C0 7F07A650 8FA30028 */ lw $v1, 0x28($sp) +/* 0AF1C4 7F07A654 0FC2F74E */ jal get_pc_buffer_remaining_value +/* 0AF1C8 7F07A658 8C640004 */ lw $a0, 4($v1) +/* 0AF1CC 7F07A65C 8FAD0040 */ lw $t5, 0x40($sp) +/* 0AF1D0 7F07A660 3C0F8004 */ lui $t7, %hi(c_item_entries) # $t7, 0x8004 +/* 0AF1D4 7F07A664 25EFDE40 */ addiu $t7, %lo(c_item_entries) # addiu $t7, $t7, -0x21c0 +/* 0AF1D8 7F07A668 000DC080 */ sll $t8, $t5, 2 +/* 0AF1DC 7F07A66C 030DC021 */ addu $t8, $t8, $t5 +/* 0AF1E0 7F07A670 0018C080 */ sll $t8, $t8, 2 +/* 0AF1E4 7F07A674 030F1821 */ addu $v1, $t8, $t7 +/* 0AF1E8 7F07A678 8C6B0000 */ lw $t3, ($v1) +/* 0AF1EC 7F07A67C 2448003F */ addiu $t0, $v0, 0x3f +/* 0AF1F0 7F07A680 8FA900F0 */ lw $t1, 0xf0($sp) +/* 0AF1F4 7F07A684 350A003F */ ori $t2, $t0, 0x3f +/* 0AF1F8 7F07A688 8D610000 */ lw $at, ($t3) +/* 0AF1FC 7F07A68C 394C003F */ xori $t4, $t2, 0x3f +/* 0AF200 7F07A690 2588005F */ addiu $t0, $t4, 0x5f +/* 0AF204 7F07A694 3519003F */ ori $t9, $t0, 0x3f +/* 0AF208 7F07A698 012C2021 */ addu $a0, $t1, $t4 +/* 0AF20C 7F07A69C 3B28003F */ xori $t0, $t9, 0x3f +/* 0AF210 7F07A6A0 AC810000 */ sw $at, ($a0) +/* 0AF214 7F07A6A4 8D790004 */ lw $t9, 4($t3) +/* 0AF218 7F07A6A8 27AD0100 */ addiu $t5, $sp, 0x100 +/* 0AF21C 7F07A6AC 01283021 */ addu $a2, $t1, $t0 +/* 0AF220 7F07A6B0 AC990004 */ sw $t9, 4($a0) +/* 0AF224 7F07A6B4 8D610008 */ lw $at, 8($t3) +/* 0AF228 7F07A6B8 AC810008 */ sw $at, 8($a0) +/* 0AF22C 7F07A6BC 8D79000C */ lw $t9, 0xc($t3) +/* 0AF230 7F07A6C0 AC99000C */ sw $t9, 0xc($a0) +/* 0AF234 7F07A6C4 8D610010 */ lw $at, 0x10($t3) +/* 0AF238 7F07A6C8 AC810010 */ sw $at, 0x10($a0) +/* 0AF23C 7F07A6CC 8D790014 */ lw $t9, 0x14($t3) +/* 0AF240 7F07A6D0 AC990014 */ sw $t9, 0x14($a0) +/* 0AF244 7F07A6D4 8D610018 */ lw $at, 0x18($t3) +/* 0AF248 7F07A6D8 AC810018 */ sw $at, 0x18($a0) +/* 0AF24C 7F07A6DC 8D79001C */ lw $t9, 0x1c($t3) +/* 0AF250 7F07A6E0 AC99001C */ sw $t9, 0x1c($a0) +/* 0AF254 7F07A6E4 8FAE00E4 */ lw $t6, 0xe4($sp) +/* 0AF258 7F07A6E8 AFA800E8 */ sw $t0, 0xe8($sp) +/* 0AF25C 7F07A6EC AFA400F8 */ sw $a0, 0xf8($sp) +/* 0AF260 7F07A6F0 AFA30028 */ sw $v1, 0x28($sp) +/* 0AF264 7F07A6F4 AFAD0010 */ sw $t5, 0x10($sp) +/* 0AF268 7F07A6F8 8C650004 */ lw $a1, 4($v1) +/* 0AF26C 7F07A6FC 0FC1DAA5 */ jal load_object_fill_header +/* 0AF270 7F07A700 01C83823 */ subu $a3, $t6, $t0 +/* 0AF274 7F07A704 8FA30028 */ lw $v1, 0x28($sp) +/* 0AF278 7F07A708 0FC2F74E */ jal get_pc_buffer_remaining_value +/* 0AF27C 7F07A70C 8C640004 */ lw $a0, 4($v1) +/* 0AF280 7F07A710 8FA300E8 */ lw $v1, 0xe8($sp) +/* 0AF284 7F07A714 8FAC00F0 */ lw $t4, 0xf0($sp) +/* 0AF288 7F07A718 8FA400FC */ lw $a0, 0xfc($sp) +/* 0AF28C 7F07A71C 00431821 */ addu $v1, $v0, $v1 +/* 0AF290 7F07A720 2463003F */ addiu $v1, $v1, 0x3f +/* 0AF294 7F07A724 3478003F */ ori $t8, $v1, 0x3f +/* 0AF298 7F07A728 3B0F003F */ xori $t7, $t8, 0x3f +/* 0AF29C 7F07A72C 25E300FB */ addiu $v1, $t7, 0xfb +/* 0AF2A0 7F07A730 346B003F */ ori $t3, $v1, 0x3f +/* 0AF2A4 7F07A734 3979003F */ xori $t9, $t3, 0x3f +/* 0AF2A8 7F07A738 018F5021 */ addu $t2, $t4, $t7 +/* 0AF2AC 7F07A73C AFAA0038 */ sw $t2, 0x38($sp) +/* 0AF2B0 7F07A740 0FC1D8B9 */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0AF2B4 7F07A744 AFB900E8 */ sw $t9, 0xe8($sp) +/* 0AF2B8 7F07A748 0FC1D8B9 */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0AF2BC 7F07A74C 8FA400F8 */ lw $a0, 0xf8($sp) +/* 0AF2C0 7F07A750 8FA500FC */ lw $a1, 0xfc($sp) +/* 0AF2C4 7F07A754 8FAF00F8 */ lw $t7, 0xf8($sp) +/* 0AF2C8 7F07A758 8FA300E8 */ lw $v1, 0xe8($sp) +/* 0AF2CC 7F07A75C 84B80014 */ lh $t8, 0x14($a1) +/* 0AF2D0 7F07A760 85EC0014 */ lh $t4, 0x14($t7) +/* 0AF2D4 7F07A764 8FAE00F0 */ lw $t6, 0xf0($sp) +/* 0AF2D8 7F07A768 8FA40038 */ lw $a0, 0x38($sp) +/* 0AF2DC 7F07A76C 030C1021 */ addu $v0, $t8, $t4 +/* 0AF2E0 7F07A770 2442000A */ addiu $v0, $v0, 0xa +/* 0AF2E4 7F07A774 00025080 */ sll $t2, $v0, 2 +/* 0AF2E8 7F07A778 01C33021 */ addu $a2, $t6, $v1 +/* 0AF2EC 7F07A77C 01431821 */ addu $v1, $t2, $v1 +/* 0AF2F0 7F07A780 2463003F */ addiu $v1, $v1, 0x3f +/* 0AF2F4 7F07A784 346B003F */ ori $t3, $v1, 0x3f +/* 0AF2F8 7F07A788 3979003F */ xori $t9, $t3, 0x3f +/* 0AF2FC 7F07A78C AFB900E8 */ sw $t9, 0xe8($sp) +/* 0AF300 7F07A790 0FC1D967 */ jal sub_GAME_7F075FAC +/* 0AF304 7F07A794 AFA20030 */ sw $v0, 0x30($sp) +/* 0AF308 7F07A798 8FA20030 */ lw $v0, 0x30($sp) +/* 0AF30C 7F07A79C 8FAE0038 */ lw $t6, 0x38($sp) +/* 0AF310 7F07A7A0 10000026 */ b .Ljp7F07A83C +/* 0AF314 7F07A7A4 A5C20002 */ sh $v0, 2($t6) +.Ljp7F07A7A8: +/* 0AF318 7F07A7A8 000FC080 */ sll $t8, $t7, 2 +/* 0AF31C 7F07A7AC 030FC021 */ addu $t8, $t8, $t7 +/* 0AF320 7F07A7B0 3C0C8004 */ lui $t4, %hi(c_item_entries) # $t4, 0x8004 +/* 0AF324 7F07A7B4 258CDE40 */ addiu $t4, %lo(c_item_entries) # addiu $t4, $t4, -0x21c0 +/* 0AF328 7F07A7B8 0018C080 */ sll $t8, $t8, 2 +/* 0AF32C 7F07A7BC 030C1821 */ addu $v1, $t8, $t4 +/* 0AF330 7F07A7C0 8C6A0000 */ lw $t2, ($v1) +/* 0AF334 7F07A7C4 AFAA00FC */ sw $t2, 0xfc($sp) +/* 0AF338 7F07A7C8 8D590000 */ lw $t9, ($t2) +/* 0AF33C 7F07A7CC 01402025 */ move $a0, $t2 +/* 0AF340 7F07A7D0 57200006 */ bnezl $t9, .Ljp7F07A7EC +/* 0AF344 7F07A7D4 906D0011 */ lbu $t5, 0x11($v1) +/* 0AF348 7F07A7D8 8C650004 */ lw $a1, 4($v1) +/* 0AF34C 7F07A7DC 0FC1DACF */ jal load_object_into_memory +/* 0AF350 7F07A7E0 AFA30028 */ sw $v1, 0x28($sp) +/* 0AF354 7F07A7E4 8FA30028 */ lw $v1, 0x28($sp) +/* 0AF358 7F07A7E8 906D0011 */ lbu $t5, 0x11($v1) +.Ljp7F07A7EC: +/* 0AF35C 7F07A7EC 8FAF0040 */ lw $t7, 0x40($sp) +/* 0AF360 7F07A7F0 3C0C8004 */ lui $t4, %hi(c_item_entries) # $t4, 0x8004 +/* 0AF364 7F07A7F4 11A00005 */ beqz $t5, .Ljp7F07A80C +/* 0AF368 7F07A7F8 000FC080 */ sll $t8, $t7, 2 +/* 0AF36C 7F07A7FC 240EFFFF */ li $t6, -1 +/* 0AF370 7F07A800 AFAE0040 */ sw $t6, 0x40($sp) +/* 0AF374 7F07A804 1000000D */ b .Ljp7F07A83C +/* 0AF378 7F07A808 AFA000F8 */ sw $zero, 0xf8($sp) +.Ljp7F07A80C: +/* 0AF37C 7F07A80C 030FC021 */ addu $t8, $t8, $t7 +/* 0AF380 7F07A810 0018C080 */ sll $t8, $t8, 2 +/* 0AF384 7F07A814 258CDE40 */ addiu $t4, %lo(c_item_entries) # addiu $t4, $t4, -0x21c0 +/* 0AF388 7F07A818 030C1821 */ addu $v1, $t8, $t4 +/* 0AF38C 7F07A81C 8C640000 */ lw $a0, ($v1) +/* 0AF390 7F07A820 AFA400F8 */ sw $a0, 0xf8($sp) +/* 0AF394 7F07A824 8C8A0000 */ lw $t2, ($a0) +/* 0AF398 7F07A828 55400005 */ bnezl $t2, .Ljp7F07A840 +/* 0AF39C 7F07A82C 8FB90038 */ lw $t9, 0x38($sp) +/* 0AF3A0 7F07A830 8C650004 */ lw $a1, 4($v1) +/* 0AF3A4 7F07A834 0FC1DACF */ jal load_object_into_memory +/* 0AF3A8 7F07A838 AFA400F8 */ sw $a0, 0xf8($sp) +.Ljp7F07A83C: +/* 0AF3AC 7F07A83C 8FB90038 */ lw $t9, 0x38($sp) +.Ljp7F07A840: +/* 0AF3B0 7F07A840 8FA40044 */ lw $a0, 0x44($sp) +/* 0AF3B4 7F07A844 8FA50040 */ lw $a1, 0x40($sp) +/* 0AF3B8 7F07A848 8FA600FC */ lw $a2, 0xfc($sp) +/* 0AF3BC 7F07A84C 8FA700F8 */ lw $a3, 0xf8($sp) +/* 0AF3C0 7F07A850 AFA00010 */ sw $zero, 0x10($sp) +/* 0AF3C4 7F07A854 0FC08D76 */ jal maybe_load_models_for_guards +/* 0AF3C8 7F07A858 AFB90014 */ sw $t9, 0x14($sp) +/* 0AF3CC 7F07A85C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0AF3D0 7F07A860 2463A120 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5ee0 +/* 0AF3D4 7F07A864 8C6B0000 */ lw $t3, ($v1) +/* 0AF3D8 7F07A868 3C018005 */ lui $at, %hi(D_8005502C) # $at, 0x8005 +/* 0AF3DC 7F07A86C AD6200D4 */ sw $v0, 0xd4($t3) +/* 0AF3E0 7F07A870 8C6D0000 */ lw $t5, ($v1) +/* 0AF3E4 7F07A874 C426505C */ lwc1 $f6, %lo(D_8005502C)($at) +/* 0AF3E8 7F07A878 8DA400D4 */ lw $a0, 0xd4($t5) +/* 0AF3EC 7F07A87C C4840014 */ lwc1 $f4, 0x14($a0) +/* 0AF3F0 7F07A880 46062202 */ mul.s $f8, $f4, $f6 +/* 0AF3F4 7F07A884 44054000 */ mfc1 $a1, $f8 +/* 0AF3F8 7F07A888 0FC1B51A */ jal set_obj_instance_controller_scale +/* 0AF3FC 7F07A88C 00000000 */ nop +/* 0AF400 7F07A890 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0AF404 7F07A894 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0AF408 7F07A898 8FA70114 */ lw $a3, 0x114($sp) +/* 0AF40C 7F07A89C 8C6400A8 */ lw $a0, 0xa8($v1) +/* 0AF410 7F07A8A0 8C6500D4 */ lw $a1, 0xd4($v1) +/* 0AF414 7F07A8A4 8C8E0014 */ lw $t6, 0x14($a0) +/* 0AF418 7F07A8A8 AFA00014 */ sw $zero, 0x14($sp) +/* 0AF41C 7F07A8AC 24860008 */ addiu $a2, $a0, 8 +/* 0AF420 7F07A8B0 0FC0809B */ jal init_GUARDdata_with_set_values +/* 0AF424 7F07A8B4 AFAE0010 */ sw $t6, 0x10($sp) +/* 0AF428 7F07A8B8 3C078008 */ lui $a3, %hi(pPlayer) # $a3, 0x8008 +/* 0AF42C 7F07A8BC 24E7A120 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5ee0 +/* 0AF430 7F07A8C0 8CF80000 */ lw $t8, ($a3) +/* 0AF434 7F07A8C4 240F0006 */ li $t7, 6 +/* 0AF438 7F07A8C8 8F0C00A8 */ lw $t4, 0xa8($t8) +/* 0AF43C 7F07A8CC A18F0000 */ sb $t7, ($t4) +/* 0AF440 7F07A8D0 8CEA0000 */ lw $t2, ($a3) +/* 0AF444 7F07A8D4 8D5900A8 */ lw $t9, 0xa8($t2) +/* 0AF448 7F07A8D8 8F260004 */ lw $a2, 4($t9) +/* 0AF44C 7F07A8DC 8CCB0014 */ lw $t3, 0x14($a2) +/* 0AF450 7F07A8E0 356D0001 */ ori $t5, $t3, 1 +/* 0AF454 7F07A8E4 ACCD0014 */ sw $t5, 0x14($a2) +/* 0AF458 7F07A8E8 8CE30000 */ lw $v1, ($a3) +/* 0AF45C 7F07A8EC 8C6500A8 */ lw $a1, 0xa8($v1) +/* 0AF460 7F07A8F0 8C6400D4 */ lw $a0, 0xd4($v1) +/* 0AF464 7F07A8F4 AFA60110 */ sw $a2, 0x110($sp) +/* 0AF468 7F07A8F8 0FC1B47F */ jal setsuboffset +/* 0AF46C 7F07A8FC 24A50008 */ addiu $a1, $a1, 8 +/* 0AF470 7F07A900 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0AF474 7F07A904 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0AF478 7F07A908 8FA50114 */ lw $a1, 0x114($sp) +/* 0AF47C 7F07A90C 0FC1B4CB */ jal setsubroty +/* 0AF480 7F07A910 8DC400D4 */ lw $a0, 0xd4($t6) +/* 0AF484 7F07A914 8FA20110 */ lw $v0, 0x110($sp) +/* 0AF488 7F07A918 8FB80040 */ lw $t8, 0x40($sp) +/* 0AF48C 7F07A91C A0580006 */ sb $t8, 6($v0) +/* 0AF490 7F07A920 8FAF0044 */ lw $t7, 0x44($sp) +/* 0AF494 7F07A924 A04F000F */ sb $t7, 0xf($v0) +/* 0AF498 7F07A928 0FC26F79 */ jal sub_GAME_7F09B244 +/* 0AF49C 7F07A92C 8FA40048 */ lw $a0, 0x48($sp) +/* 0AF4A0 7F07A930 04400045 */ bltz $v0, .Ljp7F07AA48 +/* 0AF4A4 7F07A934 AFA2004C */ sw $v0, 0x4c($sp) +/* 0AF4A8 7F07A938 0FC26C01 */ jal get_num_players +/* 0AF4AC 7F07A93C 00000000 */ nop +/* 0AF4B0 7F07A940 24010001 */ li $at, 1 +/* 0AF4B4 7F07A944 14410035 */ bne $v0, $at, .Ljp7F07AA1C +/* 0AF4B8 7F07A948 8FAC00F0 */ lw $t4, 0xf0($sp) +/* 0AF4BC 7F07A94C 8FA200E8 */ lw $v0, 0xe8($sp) +/* 0AF4C0 7F07A950 24040001 */ li $a0, 1 +/* 0AF4C4 7F07A954 01825021 */ addu $t2, $t4, $v0 +/* 0AF4C8 7F07A958 244200C7 */ addiu $v0, $v0, 0xc7 +/* 0AF4CC 7F07A95C 3459003F */ ori $t9, $v0, 0x3f +/* 0AF4D0 7F07A960 3B2B003F */ xori $t3, $t9, 0x3f +/* 0AF4D4 7F07A964 AFAA00DC */ sw $t2, 0xdc($sp) +/* 0AF4D8 7F07A968 0FC1750E */ jal get_ptr_itemheader_in_hand +/* 0AF4DC 7F07A96C AFAB00E8 */ sw $t3, 0xe8($sp) +/* 0AF4E0 7F07A970 8FAD004C */ lw $t5, 0x4c($sp) +/* 0AF4E4 7F07A974 3C188004 */ lui $t8, %hi(PitemZ_entries) # $t8, 0x8004 +/* 0AF4E8 7F07A978 2718A258 */ addiu $t8, %lo(PitemZ_entries) # addiu $t8, $t8, -0x5da8 +/* 0AF4EC 7F07A97C 000D7080 */ sll $t6, $t5, 2 +/* 0AF4F0 7F07A980 01CD7023 */ subu $t6, $t6, $t5 +/* 0AF4F4 7F07A984 000E7080 */ sll $t6, $t6, 2 +/* 0AF4F8 7F07A988 01D81821 */ addu $v1, $t6, $t8 +/* 0AF4FC 7F07A98C 8C6F0000 */ lw $t7, ($v1) +/* 0AF500 7F07A990 AFA200F4 */ sw $v0, 0xf4($sp) +/* 0AF504 7F07A994 27AA0100 */ addiu $t2, $sp, 0x100 +/* 0AF508 7F07A998 8DE10000 */ lw $at, ($t7) +/* 0AF50C 7F07A99C 00402025 */ move $a0, $v0 +/* 0AF510 7F07A9A0 AC410000 */ sw $at, ($v0) +/* 0AF514 7F07A9A4 8DF90004 */ lw $t9, 4($t7) +/* 0AF518 7F07A9A8 AC590004 */ sw $t9, 4($v0) +/* 0AF51C 7F07A9AC 8DE10008 */ lw $at, 8($t7) +/* 0AF520 7F07A9B0 AC410008 */ sw $at, 8($v0) +/* 0AF524 7F07A9B4 8DF9000C */ lw $t9, 0xc($t7) +/* 0AF528 7F07A9B8 AC59000C */ sw $t9, 0xc($v0) +/* 0AF52C 7F07A9BC 8DE10010 */ lw $at, 0x10($t7) +/* 0AF530 7F07A9C0 AC410010 */ sw $at, 0x10($v0) +/* 0AF534 7F07A9C4 8DF90014 */ lw $t9, 0x14($t7) +/* 0AF538 7F07A9C8 AC590014 */ sw $t9, 0x14($v0) +/* 0AF53C 7F07A9CC 8DE10018 */ lw $at, 0x18($t7) +/* 0AF540 7F07A9D0 AC410018 */ sw $at, 0x18($v0) +/* 0AF544 7F07A9D4 8DF9001C */ lw $t9, 0x1c($t7) +/* 0AF548 7F07A9D8 AC59001C */ sw $t9, 0x1c($v0) +/* 0AF54C 7F07A9DC 8FAD00E8 */ lw $t5, 0xe8($sp) +/* 0AF550 7F07A9E0 8FAE00E4 */ lw $t6, 0xe4($sp) +/* 0AF554 7F07A9E4 8FAB00F0 */ lw $t3, 0xf0($sp) +/* 0AF558 7F07A9E8 AFA30028 */ sw $v1, 0x28($sp) +/* 0AF55C 7F07A9EC AFAA0010 */ sw $t2, 0x10($sp) +/* 0AF560 7F07A9F0 8C650004 */ lw $a1, 4($v1) +/* 0AF564 7F07A9F4 01CD3823 */ subu $a3, $t6, $t5 +/* 0AF568 7F07A9F8 0FC1DAA5 */ jal load_object_fill_header +/* 0AF56C 7F07A9FC 016D3021 */ addu $a2, $t3, $t5 +/* 0AF570 7F07AA00 8FA30028 */ lw $v1, 0x28($sp) +/* 0AF574 7F07AA04 0FC2F74E */ jal get_pc_buffer_remaining_value +/* 0AF578 7F07AA08 8C640004 */ lw $a0, 4($v1) +/* 0AF57C 7F07AA0C 0FC1D8B9 */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0AF580 7F07AA10 8FA400F4 */ lw $a0, 0xf4($sp) +/* 0AF584 7F07AA14 10000004 */ b .Ljp7F07AA28 +/* 0AF588 7F07AA18 8FAC00DC */ lw $t4, 0xdc($sp) +.Ljp7F07AA1C: +/* 0AF58C 7F07AA1C AFA000DC */ sw $zero, 0xdc($sp) +/* 0AF590 7F07AA20 AFA000F4 */ sw $zero, 0xf4($sp) +/* 0AF594 7F07AA24 8FAC00DC */ lw $t4, 0xdc($sp) +.Ljp7F07AA28: +/* 0AF598 7F07AA28 8FAF00F4 */ lw $t7, 0xf4($sp) +/* 0AF59C 7F07AA2C 8FA40110 */ lw $a0, 0x110($sp) +/* 0AF5A0 7F07AA30 8FA5004C */ lw $a1, 0x4c($sp) +/* 0AF5A4 7F07AA34 8FA60048 */ lw $a2, 0x48($sp) +/* 0AF5A8 7F07AA38 00003825 */ move $a3, $zero +/* 0AF5AC 7F07AA3C AFAC0010 */ sw $t4, 0x10($sp) +/* 0AF5B0 7F07AA40 0FC149C4 */ jal something_with_generating_object +/* 0AF5B4 7F07AA44 AFAF0014 */ sw $t7, 0x14($sp) +.Ljp7F07AA48: +/* 0AF5B8 7F07AA48 8FA40110 */ lw $a0, 0x110($sp) +/* 0AF5BC 7F07AA4C 0FC08F65 */ jal sub_GAME_7F023A94 +/* 0AF5C0 7F07AA50 24050000 */ li $a1, 0 +/* 0AF5C4 7F07AA54 10000017 */ b .Ljp7F07AAB4 +/* 0AF5C8 7F07AA58 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AF5CC 7F07AA5C 8C59001C */ lw $t9, 0x1c($v0) +.Ljp7F07AA60: +/* 0AF5D0 7F07AA60 00402025 */ move $a0, $v0 +/* 0AF5D4 7F07AA64 8F2B0020 */ lw $t3, 0x20($t9) +/* 0AF5D8 7F07AA68 55600012 */ bnezl $t3, .Ljp7F07AAB4 +/* 0AF5DC 7F07AA6C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AF5E0 7F07AA70 8C4D0014 */ lw $t5, 0x14($v0) +/* 0AF5E4 7F07AA74 24050000 */ li $a1, 0 +/* 0AF5E8 7F07AA78 35AE0001 */ ori $t6, $t5, 1 +/* 0AF5EC 7F07AA7C 0FC08F65 */ jal sub_GAME_7F023A94 +/* 0AF5F0 7F07AA80 AC4E0014 */ sw $t6, 0x14($v0) +/* 0AF5F4 7F07AA84 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0AF5F8 7F07AA88 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0AF5FC 7F07AA8C 8C6500A8 */ lw $a1, 0xa8($v1) +/* 0AF600 7F07AA90 8C6400D4 */ lw $a0, 0xd4($v1) +/* 0AF604 7F07AA94 0FC1B47F */ jal setsuboffset +/* 0AF608 7F07AA98 24A50008 */ addiu $a1, $a1, 8 +/* 0AF60C 7F07AA9C 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0AF610 7F07AAA0 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0AF614 7F07AAA4 8FA50114 */ lw $a1, 0x114($sp) +/* 0AF618 7F07AAA8 0FC1B4CB */ jal setsubroty +/* 0AF61C 7F07AAAC 8F0400D4 */ lw $a0, 0xd4($t8) +/* 0AF620 7F07AAB0 8FBF001C */ lw $ra, 0x1c($sp) +.Ljp7F07AAB4: +/* 0AF624 7F07AAB4 27BD0118 */ addiu $sp, $sp, 0x118 +/* 0AF628 7F07AAB8 03E00008 */ jr $ra +/* 0AF62C 7F07AABC 00000000 */ nop +) +#endif + +#endif + + +#ifdef NONMATCHING +void maybe_solo_intro_camera_handler(void) { + // Node 0 + if (pPlayer->field_A8->unk4 != 0) + { + // Node 1 + if (get_num_players() == 1) + { + // Node 2 + disable_sounds_attached_to_player_then_something(pPlayer->field_A8); + pPlayer->field_A8->unk4 = 0; + pPlayer->field_D4 = 0; + camera_80036424 = 1; + sub_GAME_7F07DE9C(pPlayer); + } + } + // Node 3 + return; +} +#else +GLOBAL_ASM( +.text +glabel maybe_solo_intro_camera_handler +/* 0AEFD0 7F07A4A0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AEFD4 7F07A4A4 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AEFD8 7F07A4A8 8C6E0000 */ lw $t6, ($v1) +/* 0AEFDC 7F07A4AC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0AEFE0 7F07A4B0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0AEFE4 7F07A4B4 8DCF00A8 */ lw $t7, 0xa8($t6) +/* 0AEFE8 7F07A4B8 8DF80004 */ lw $t8, 4($t7) +/* 0AEFEC 7F07A4BC 53000017 */ beql $t8, $zero, .L7F07A51C +/* 0AEFF0 7F07A4C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AEFF4 7F07A4C4 0FC26919 */ jal get_num_players +/* 0AEFF8 7F07A4C8 00000000 */ nop +/* 0AEFFC 7F07A4CC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AF000 7F07A4D0 24010001 */ li $at, 1 +/* 0AF004 7F07A4D4 14410010 */ bne $v0, $at, .L7F07A518 +/* 0AF008 7F07A4D8 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AF00C 7F07A4DC 8C790000 */ lw $t9, ($v1) +/* 0AF010 7F07A4E0 0FC08105 */ jal disable_sounds_attached_to_player_then_something +/* 0AF014 7F07A4E4 8F2400A8 */ lw $a0, 0xa8($t9) +/* 0AF018 7F07A4E8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AF01C 7F07A4EC 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AF020 7F07A4F0 8C680000 */ lw $t0, ($v1) +/* 0AF024 7F07A4F4 240B0001 */ li $t3, 1 +/* 0AF028 7F07A4F8 3C018003 */ lui $at, %hi(camera_80036424) +/* 0AF02C 7F07A4FC 8D0900A8 */ lw $t1, 0xa8($t0) +/* 0AF030 7F07A500 AD200004 */ sw $zero, 4($t1) +/* 0AF034 7F07A504 8C6A0000 */ lw $t2, ($v1) +/* 0AF038 7F07A508 AD4000D4 */ sw $zero, 0xd4($t2) +/* 0AF03C 7F07A50C AC2B6424 */ sw $t3, %lo(camera_80036424)($at) +/* 0AF040 7F07A510 0FC1F7A7 */ jal sub_GAME_7F07DE9C +/* 0AF044 7F07A514 8C640000 */ lw $a0, ($v1) +.L7F07A518: +/* 0AF048 7F07A518 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07A51C: +/* 0AF04C 7F07A51C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0AF050 7F07A520 03E00008 */ jr $ra +/* 0AF054 7F07A524 00000000 */ nop +) +#endif + + + + + +u32 get_camera_mode(void) { + // Node 0 + return cameramode; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07A534(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055030 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055034 +.word 0x44bb8000 /*1500.0*/ +glabel D_80055038 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005503C +.word 0x3ec90fdb /*0.39269909*/ +glabel D_80055040 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F07A534 +/* 0AF064 7F07A534 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 0AF068 7F07A538 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F4) +/* 0AF06C 7F07A53C AC2499F4 */ sw $a0, %lo(dword_CODE_bss_800799F4)($at) +/* 0AF070 7F07A540 F7BE0058 */ sdc1 $f30, 0x58($sp) +/* 0AF074 7F07A544 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AF078 7F07A548 AFB10064 */ sw $s1, 0x64($sp) +/* 0AF07C 7F07A54C F7BA0048 */ sdc1 $f26, 0x48($sp) +/* 0AF080 7F07A550 4481F000 */ mtc1 $at, $f30 +/* 0AF084 7F07A554 AFB7007C */ sw $s7, 0x7c($sp) +/* 0AF088 7F07A558 AFB60078 */ sw $s6, 0x78($sp) +/* 0AF08C 7F07A55C AFB50074 */ sw $s5, 0x74($sp) +/* 0AF090 7F07A560 AFB40070 */ sw $s4, 0x70($sp) +/* 0AF094 7F07A564 AFB3006C */ sw $s3, 0x6c($sp) +/* 0AF098 7F07A568 AFB20068 */ sw $s2, 0x68($sp) +/* 0AF09C 7F07A56C F7B40030 */ sdc1 $f20, 0x30($sp) +/* 0AF0A0 7F07A570 3C018005 */ lui $at, %hi(D_80055030) +/* 0AF0A4 7F07A574 3C118008 */ lui $s1, %hi(flt_CODE_bss_800799E8) +/* 0AF0A8 7F07A578 4480D000 */ mtc1 $zero, $f26 +/* 0AF0AC 7F07A57C 00A09025 */ move $s2, $a1 +/* 0AF0B0 7F07A580 00E09825 */ move $s3, $a3 +/* 0AF0B4 7F07A584 00C0A025 */ move $s4, $a2 +/* 0AF0B8 7F07A588 AFBF0084 */ sw $ra, 0x84($sp) +/* 0AF0BC 7F07A58C AFBE0080 */ sw $fp, 0x80($sp) +/* 0AF0C0 7F07A590 AFB00060 */ sw $s0, 0x60($sp) +/* 0AF0C4 7F07A594 F7BC0050 */ sdc1 $f28, 0x50($sp) +/* 0AF0C8 7F07A598 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 0AF0CC 7F07A59C F7B60038 */ sdc1 $f22, 0x38($sp) +/* 0AF0D0 7F07A5A0 0000B025 */ move $s6, $zero +/* 0AF0D4 7F07A5A4 AFA000D8 */ sw $zero, 0xd8($sp) +/* 0AF0D8 7F07A5A8 263199E8 */ addiu $s1, %lo(flt_CODE_bss_800799E8) # addiu $s1, $s1, -0x6618 +/* 0AF0DC 7F07A5AC C4345030 */ lwc1 $f20, %lo(D_80055030)($at) +/* 0AF0E0 7F07A5B0 27B500C8 */ addiu $s5, $sp, 0xc8 +/* 0AF0E4 7F07A5B4 8FB700F0 */ lw $s7, 0xf0($sp) +.L7F07A5B8: +/* 0AF0E8 7F07A5B8 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0AF0EC 7F07A5BC 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0AF0F0 7F07A5C0 3C018005 */ lui $at, %hi(D_80055034) +/* 0AF0F4 7F07A5C4 C4245034 */ lwc1 $f4, %lo(D_80055034)($at) +/* 0AF0F8 7F07A5C8 C5DC04B0 */ lwc1 $f28, 0x4b0($t6) +/* 0AF0FC 7F07A5CC 0000F025 */ move $fp, $zero +/* 0AF100 7F07A5D0 461C2180 */ add.s $f6, $f4, $f28 +/* 0AF104 7F07A5D4 0C002914 */ jal get_random_value +/* 0AF108 7F07A5D8 E7A600D0 */ swc1 $f6, 0xd0($sp) +/* 0AF10C 7F07A5DC 44824000 */ mtc1 $v0, $f8 +/* 0AF110 7F07A5E0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0AF114 7F07A5E4 04410004 */ bgez $v0, .L7F07A5F8 +/* 0AF118 7F07A5E8 468042A0 */ cvt.s.w $f10, $f8 +/* 0AF11C 7F07A5EC 44818000 */ mtc1 $at, $f16 +/* 0AF120 7F07A5F0 00000000 */ nop +/* 0AF124 7F07A5F4 46105280 */ add.s $f10, $f10, $f16 +.L7F07A5F8: +/* 0AF128 7F07A5F8 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0AF12C 7F07A5FC 44819000 */ mtc1 $at, $f18 +/* 0AF130 7F07A600 00000000 */ nop +/* 0AF134 7F07A604 46125102 */ mul.s $f4, $f10, $f18 +/* 0AF138 7F07A608 00000000 */ nop +/* 0AF13C 7F07A60C 46142302 */ mul.s $f12, $f4, $f20 +/* 0AF140 7F07A610 16C000CD */ bnez $s6, .L7F07A948 +/* 0AF144 7F07A614 00000000 */ nop +/* 0AF148 7F07A618 E7AC00CC */ swc1 $f12, 0xcc($sp) +.L7F07A61C: +/* 0AF14C 7F07A61C 3C018005 */ lui $at, %hi(D_80055038) +/* 0AF150 7F07A620 C4345038 */ lwc1 $f20, %lo(D_80055038)($at) +/* 0AF154 7F07A624 3C018005 */ lui $at, %hi(D_8005503C) +/* 0AF158 7F07A628 C7AC00CC */ lwc1 $f12, 0xcc($sp) +/* 0AF15C 7F07A62C C426503C */ lwc1 $f6, %lo(D_8005503C)($at) +/* 0AF160 7F07A630 46066300 */ add.s $f12, $f12, $f6 +/* 0AF164 7F07A634 460CA03E */ c.le.s $f20, $f12 +/* 0AF168 7F07A638 00000000 */ nop +/* 0AF16C 7F07A63C 45000002 */ bc1f .L7F07A648 +/* 0AF170 7F07A640 00000000 */ nop +/* 0AF174 7F07A644 46146301 */ sub.s $f12, $f12, $f20 +.L7F07A648: +/* 0AF178 7F07A648 0FC15FAB */ jal sinf +/* 0AF17C 7F07A64C E7AC00CC */ swc1 $f12, 0xcc($sp) +/* 0AF180 7F07A650 E7A000BC */ swc1 $f0, 0xbc($sp) +/* 0AF184 7F07A654 E7BA00C0 */ swc1 $f26, 0xc0($sp) +/* 0AF188 7F07A658 0FC15FA8 */ jal cosf +/* 0AF18C 7F07A65C C7AC00CC */ lwc1 $f12, 0xcc($sp) +/* 0AF190 7F07A660 C7A800BC */ lwc1 $f8, 0xbc($sp) +/* 0AF194 7F07A664 C7B000D0 */ lwc1 $f16, 0xd0($sp) +/* 0AF198 7F07A668 E7A000C4 */ swc1 $f0, 0xc4($sp) +/* 0AF19C 7F07A66C C6520000 */ lwc1 $f18, ($s2) +/* 0AF1A0 7F07A670 46104282 */ mul.s $f10, $f8, $f16 +/* 0AF1A4 7F07A674 C7A800C4 */ lwc1 $f8, 0xc4($sp) +/* 0AF1A8 7F07A678 46125100 */ add.s $f4, $f10, $f18 +/* 0AF1AC 7F07A67C 46104282 */ mul.s $f10, $f8, $f16 +/* 0AF1B0 7F07A680 E7A400B0 */ swc1 $f4, 0xb0($sp) +/* 0AF1B4 7F07A684 C6460004 */ lwc1 $f6, 4($s2) +/* 0AF1B8 7F07A688 E7A600B4 */ swc1 $f6, 0xb4($sp) +/* 0AF1BC 7F07A68C C6520008 */ lwc1 $f18, 8($s2) +/* 0AF1C0 7F07A690 46125100 */ add.s $f4, $f10, $f18 +/* 0AF1C4 7F07A694 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 0AF1C8 7F07A698 E7A400B8 */ swc1 $f4, 0xb8($sp) +/* 0AF1CC 7F07A69C AFB700C8 */ sw $s7, 0xc8($sp) +/* 0AF1D0 7F07A6A0 02802025 */ move $a0, $s4 +/* 0AF1D4 7F07A6A4 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0AF1D8 7F07A6A8 00002825 */ move $a1, $zero +/* 0AF1DC 7F07A6AC 8E650000 */ lw $a1, ($s3) +/* 0AF1E0 7F07A6B0 8E660008 */ lw $a2, 8($s3) +/* 0AF1E4 7F07A6B4 C7A600B8 */ lwc1 $f6, 0xb8($sp) +/* 0AF1E8 7F07A6B8 240F0013 */ li $t7, 19 +/* 0AF1EC 7F07A6BC AFAF0014 */ sw $t7, 0x14($sp) +/* 0AF1F0 7F07A6C0 E7BE0024 */ swc1 $f30, 0x24($sp) +/* 0AF1F4 7F07A6C4 E7BA0020 */ swc1 $f26, 0x20($sp) +/* 0AF1F8 7F07A6C8 E7BE001C */ swc1 $f30, 0x1c($sp) +/* 0AF1FC 7F07A6CC E7BA0018 */ swc1 $f26, 0x18($sp) +/* 0AF200 7F07A6D0 02A02025 */ move $a0, $s5 +/* 0AF204 7F07A6D4 8FA700B0 */ lw $a3, 0xb0($sp) +/* 0AF208 7F07A6D8 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0AF20C 7F07A6DC E7A60010 */ swc1 $f6, 0x10($sp) +/* 0AF210 7F07A6E0 00408025 */ move $s0, $v0 +/* 0AF214 7F07A6E4 02802025 */ move $a0, $s4 +/* 0AF218 7F07A6E8 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0AF21C 7F07A6EC 24050001 */ li $a1, 1 +/* 0AF220 7F07A6F0 16000010 */ bnez $s0, .L7F07A734 +/* 0AF224 7F07A6F4 02602025 */ move $a0, $s3 +/* 0AF228 7F07A6F8 27A500BC */ addiu $a1, $sp, 0xbc +/* 0AF22C 7F07A6FC 0FC098A6 */ jal sub_GAME_7F026298 +/* 0AF230 7F07A700 27A600B0 */ addiu $a2, $sp, 0xb0 +/* 0AF234 7F07A704 C7A800B0 */ lwc1 $f8, 0xb0($sp) +/* 0AF238 7F07A708 C6700000 */ lwc1 $f16, ($s3) +/* 0AF23C 7F07A70C C7AA00B8 */ lwc1 $f10, 0xb8($sp) +/* 0AF240 7F07A710 C6720008 */ lwc1 $f18, 8($s3) +/* 0AF244 7F07A714 46104001 */ sub.s $f0, $f8, $f16 +/* 0AF248 7F07A718 46125081 */ sub.s $f2, $f10, $f18 +/* 0AF24C 7F07A71C 46000102 */ mul.s $f4, $f0, $f0 +/* 0AF250 7F07A720 00000000 */ nop +/* 0AF254 7F07A724 46021182 */ mul.s $f6, $f2, $f2 +/* 0AF258 7F07A728 0C007DF8 */ jal sqrtf +/* 0AF25C 7F07A72C 46062300 */ add.s $f12, $f4, $f6 +/* 0AF260 7F07A730 E7A000D0 */ swc1 $f0, 0xd0($sp) +.L7F07A734: +/* 0AF264 7F07A734 C7A800D0 */ lwc1 $f8, 0xd0($sp) +/* 0AF268 7F07A738 C7AA00F4 */ lwc1 $f10, 0xf4($sp) +/* 0AF26C 7F07A73C 461C4401 */ sub.s $f16, $f8, $f28 +/* 0AF270 7F07A740 4610503E */ c.le.s $f10, $f16 +/* 0AF274 7F07A744 E7B000D0 */ swc1 $f16, 0xd0($sp) +/* 0AF278 7F07A748 4502007A */ bc1fl .L7F07A934 +/* 0AF27C 7F07A74C 27DE0001 */ addiu $fp, $fp, 1 +/* 0AF280 7F07A750 461ED03C */ c.lt.s $f26, $f30 +/* 0AF284 7F07A754 4600F606 */ mov.s $f24, $f30 +/* 0AF288 7F07A758 45020076 */ bc1fl .L7F07A934 +/* 0AF28C 7F07A75C 27DE0001 */ addiu $fp, $fp, 1 +/* 0AF290 7F07A760 56C00074 */ bnezl $s6, .L7F07A934 +/* 0AF294 7F07A764 27DE0001 */ addiu $fp, $fp, 1 +/* 0AF298 7F07A768 460A8481 */ sub.s $f18, $f16, $f10 +/* 0AF29C 7F07A76C E7B20090 */ swc1 $f18, 0x90($sp) +.L7F07A770: +/* 0AF2A0 7F07A770 0C002914 */ jal get_random_value +/* 0AF2A4 7F07A774 00000000 */ nop +/* 0AF2A8 7F07A778 44822000 */ mtc1 $v0, $f4 +/* 0AF2AC 7F07A77C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0AF2B0 7F07A780 04410004 */ bgez $v0, .L7F07A794 +/* 0AF2B4 7F07A784 468021A0 */ cvt.s.w $f6, $f4 +/* 0AF2B8 7F07A788 44814000 */ mtc1 $at, $f8 +/* 0AF2BC 7F07A78C 00000000 */ nop +/* 0AF2C0 7F07A790 46083180 */ add.s $f6, $f6, $f8 +.L7F07A794: +/* 0AF2C4 7F07A794 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0AF2C8 7F07A798 44818000 */ mtc1 $at, $f16 +/* 0AF2CC 7F07A79C C7B20090 */ lwc1 $f18, 0x90($sp) +/* 0AF2D0 7F07A7A0 02802025 */ move $a0, $s4 +/* 0AF2D4 7F07A7A4 46103282 */ mul.s $f10, $f6, $f16 +/* 0AF2D8 7F07A7A8 C7A600F4 */ lwc1 $f6, 0xf4($sp) +/* 0AF2DC 7F07A7AC C7B000BC */ lwc1 $f16, 0xbc($sp) +/* 0AF2E0 7F07A7B0 00002825 */ move $a1, $zero +/* 0AF2E4 7F07A7B4 46125102 */ mul.s $f4, $f10, $f18 +/* 0AF2E8 7F07A7B8 C6520000 */ lwc1 $f18, ($s2) +/* 0AF2EC 7F07A7BC 46182202 */ mul.s $f8, $f4, $f24 +/* 0AF2F0 7F07A7C0 46064000 */ add.s $f0, $f8, $f6 +/* 0AF2F4 7F07A7C4 C7A600C4 */ lwc1 $f6, 0xc4($sp) +/* 0AF2F8 7F07A7C8 46008282 */ mul.s $f10, $f16, $f0 +/* 0AF2FC 7F07A7CC 46125100 */ add.s $f4, $f10, $f18 +/* 0AF300 7F07A7D0 46003402 */ mul.s $f16, $f6, $f0 +/* 0AF304 7F07A7D4 E6240000 */ swc1 $f4, ($s1) +/* 0AF308 7F07A7D8 C6480004 */ lwc1 $f8, 4($s2) +/* 0AF30C 7F07A7DC E6280004 */ swc1 $f8, 4($s1) +/* 0AF310 7F07A7E0 C64A0008 */ lwc1 $f10, 8($s2) +/* 0AF314 7F07A7E4 AFB700C8 */ sw $s7, 0xc8($sp) +/* 0AF318 7F07A7E8 460A8480 */ add.s $f18, $f16, $f10 +/* 0AF31C 7F07A7EC 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0AF320 7F07A7F0 E6320008 */ swc1 $f18, 8($s1) +/* 0AF324 7F07A7F4 8E650000 */ lw $a1, ($s3) +/* 0AF328 7F07A7F8 8E660008 */ lw $a2, 8($s3) +/* 0AF32C 7F07A7FC C6240008 */ lwc1 $f4, 8($s1) +/* 0AF330 7F07A800 24180013 */ li $t8, 19 +/* 0AF334 7F07A804 AFB80014 */ sw $t8, 0x14($sp) +/* 0AF338 7F07A808 E7BE0024 */ swc1 $f30, 0x24($sp) +/* 0AF33C 7F07A80C E7BA0020 */ swc1 $f26, 0x20($sp) +/* 0AF340 7F07A810 E7BE001C */ swc1 $f30, 0x1c($sp) +/* 0AF344 7F07A814 E7BA0018 */ swc1 $f26, 0x18($sp) +/* 0AF348 7F07A818 02A02025 */ move $a0, $s5 +/* 0AF34C 7F07A81C 8E270000 */ lw $a3, ($s1) +/* 0AF350 7F07A820 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0AF354 7F07A824 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0AF358 7F07A828 00408025 */ move $s0, $v0 +/* 0AF35C 7F07A82C 02802025 */ move $a0, $s4 +/* 0AF360 7F07A830 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0AF364 7F07A834 24050001 */ li $a1, 1 +/* 0AF368 7F07A838 12000033 */ beqz $s0, .L7F07A908 +/* 0AF36C 7F07A83C 02A02025 */ move $a0, $s5 +/* 0AF370 7F07A840 4407E000 */ mfc1 $a3, $f28 +/* 0AF374 7F07A844 2419001F */ li $t9, 31 +/* 0AF378 7F07A848 AFB90010 */ sw $t9, 0x10($sp) +/* 0AF37C 7F07A84C 8E250000 */ lw $a1, ($s1) +/* 0AF380 7F07A850 8E260008 */ lw $a2, 8($s1) +/* 0AF384 7F07A854 E7BA0014 */ swc1 $f26, 0x14($sp) +/* 0AF388 7F07A858 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 0AF38C 7F07A85C E7BE0018 */ swc1 $f30, 0x18($sp) +/* 0AF390 7F07A860 04410029 */ bgez $v0, .L7F07A908 +/* 0AF394 7F07A864 8FA400C8 */ lw $a0, 0xc8($sp) +/* 0AF398 7F07A868 3C014339 */ li $at, 0x43390000 # 185.000000 +/* 0AF39C 7F07A86C 44814000 */ mtc1 $at, $f8 +/* 0AF3A0 7F07A870 8E250000 */ lw $a1, ($s1) +/* 0AF3A4 7F07A874 8E260008 */ lw $a2, 8($s1) +/* 0AF3A8 7F07A878 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0AF3AC 7F07A87C 461C4581 */ sub.s $f22, $f8, $f28 +/* 0AF3B0 7F07A880 0C002914 */ jal get_random_value +/* 0AF3B4 7F07A884 46000506 */ mov.s $f20, $f0 +/* 0AF3B8 7F07A888 44823000 */ mtc1 $v0, $f6 +/* 0AF3BC 7F07A88C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0AF3C0 7F07A890 04410004 */ bgez $v0, .L7F07A8A4 +/* 0AF3C4 7F07A894 46803420 */ cvt.s.w $f16, $f6 +/* 0AF3C8 7F07A898 44815000 */ mtc1 $at, $f10 +/* 0AF3CC 7F07A89C 00000000 */ nop +/* 0AF3D0 7F07A8A0 460A8400 */ add.s $f16, $f16, $f10 +.L7F07A8A4: +/* 0AF3D4 7F07A8A4 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0AF3D8 7F07A8A8 44819000 */ mtc1 $at, $f18 +/* 0AF3DC 7F07A8AC 461CA180 */ add.s $f6, $f20, $f28 +/* 0AF3E0 7F07A8B0 3C01C47A */ li $at, 0xC47A0000 # -1000.000000 +/* 0AF3E4 7F07A8B4 46128102 */ mul.s $f4, $f16, $f18 +/* 0AF3E8 7F07A8B8 00000000 */ nop +/* 0AF3EC 7F07A8BC 46162202 */ mul.s $f8, $f4, $f22 +/* 0AF3F0 7F07A8C0 44812000 */ mtc1 $at, $f4 +/* 0AF3F4 7F07A8C4 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0AF3F8 7F07A8C8 46064280 */ add.s $f10, $f8, $f6 +/* 0AF3FC 7F07A8CC E62A0004 */ swc1 $f10, 4($s1) +/* 0AF400 7F07A8D0 C6520004 */ lwc1 $f18, 4($s2) +/* 0AF404 7F07A8D4 C6300004 */ lwc1 $f16, 4($s1) +/* 0AF408 7F07A8D8 46128001 */ sub.s $f0, $f16, $f18 +/* 0AF40C 7F07A8DC 4600203C */ c.lt.s $f4, $f0 +/* 0AF410 7F07A8E0 00000000 */ nop +/* 0AF414 7F07A8E4 45000008 */ bc1f .L7F07A908 +/* 0AF418 7F07A8E8 00000000 */ nop +/* 0AF41C 7F07A8EC 44814000 */ mtc1 $at, $f8 +/* 0AF420 7F07A8F0 00000000 */ nop +/* 0AF424 7F07A8F4 4608003C */ c.lt.s $f0, $f8 +/* 0AF428 7F07A8F8 00000000 */ nop +/* 0AF42C 7F07A8FC 45020003 */ bc1fl .L7F07A90C +/* 0AF430 7F07A900 3C013E80 */ lui $at, 0x3e80 +/* 0AF434 7F07A904 24160001 */ li $s6, 1 +.L7F07A908: +/* 0AF438 7F07A908 3C013E80 */ li $at, 0x3E800000 # 0.250000 +.L7F07A90C: +/* 0AF43C 7F07A90C 44813000 */ mtc1 $at, $f6 +/* 0AF440 7F07A910 00000000 */ nop +/* 0AF444 7F07A914 4606C601 */ sub.s $f24, $f24, $f6 +/* 0AF448 7F07A918 4618D03C */ c.lt.s $f26, $f24 +/* 0AF44C 7F07A91C 00000000 */ nop +/* 0AF450 7F07A920 45020004 */ bc1fl .L7F07A934 +/* 0AF454 7F07A924 27DE0001 */ addiu $fp, $fp, 1 +/* 0AF458 7F07A928 12C0FF91 */ beqz $s6, .L7F07A770 +/* 0AF45C 7F07A92C 00000000 */ nop +/* 0AF460 7F07A930 27DE0001 */ addiu $fp, $fp, 1 +.L7F07A934: +/* 0AF464 7F07A934 2BC10010 */ slti $at, $fp, 0x10 +/* 0AF468 7F07A938 50200004 */ beql $at, $zero, .L7F07A94C +/* 0AF46C 7F07A93C 8FA200D8 */ lw $v0, 0xd8($sp) +/* 0AF470 7F07A940 12C0FF36 */ beqz $s6, .L7F07A61C +/* 0AF474 7F07A944 00000000 */ nop +.L7F07A948: +/* 0AF478 7F07A948 8FA200D8 */ lw $v0, 0xd8($sp) +.L7F07A94C: +/* 0AF47C 7F07A94C 3C018005 */ lui $at, %hi(D_80055040) +/* 0AF480 7F07A950 C4345040 */ lwc1 $f20, %lo(D_80055040)($at) +/* 0AF484 7F07A954 24420001 */ addiu $v0, $v0, 1 +/* 0AF488 7F07A958 28410081 */ slti $at, $v0, 0x81 +/* 0AF48C 7F07A95C 50200004 */ beql $at, $zero, .L7F07A970 +/* 0AF490 7F07A960 8FBF0084 */ lw $ra, 0x84($sp) +/* 0AF494 7F07A964 12C0FF14 */ beqz $s6, .L7F07A5B8 +/* 0AF498 7F07A968 AFA200D8 */ sw $v0, 0xd8($sp) +/* 0AF49C 7F07A96C 8FBF0084 */ lw $ra, 0x84($sp) +.L7F07A970: +/* 0AF4A0 7F07A970 02C01025 */ move $v0, $s6 +/* 0AF4A4 7F07A974 8FB60078 */ lw $s6, 0x78($sp) +/* 0AF4A8 7F07A978 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 0AF4AC 7F07A97C D7B60038 */ ldc1 $f22, 0x38($sp) +/* 0AF4B0 7F07A980 D7B80040 */ ldc1 $f24, 0x40($sp) +/* 0AF4B4 7F07A984 D7BA0048 */ ldc1 $f26, 0x48($sp) +/* 0AF4B8 7F07A988 D7BC0050 */ ldc1 $f28, 0x50($sp) +/* 0AF4BC 7F07A98C D7BE0058 */ ldc1 $f30, 0x58($sp) +/* 0AF4C0 7F07A990 8FB00060 */ lw $s0, 0x60($sp) +/* 0AF4C4 7F07A994 8FB10064 */ lw $s1, 0x64($sp) +/* 0AF4C8 7F07A998 8FB20068 */ lw $s2, 0x68($sp) +/* 0AF4CC 7F07A99C 8FB3006C */ lw $s3, 0x6c($sp) +/* 0AF4D0 7F07A9A0 8FB40070 */ lw $s4, 0x70($sp) +/* 0AF4D4 7F07A9A4 8FB50074 */ lw $s5, 0x74($sp) +/* 0AF4D8 7F07A9A8 8FB7007C */ lw $s7, 0x7c($sp) +/* 0AF4DC 7F07A9AC 8FBE0080 */ lw $fp, 0x80($sp) +/* 0AF4E0 7F07A9B0 03E00008 */ jr $ra +/* 0AF4E4 7F07A9B4 27BD00E0 */ addiu $sp, $sp, 0xe0 +) +#endif + + + + + +#ifdef NONMATCHING +void set_camera_mode(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_camera_mode +/* 0AF4E8 7F07A9B8 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 0AF4EC 7F07A9BC AFB00028 */ sw $s0, 0x28($sp) +/* 0AF4F0 7F07A9C0 3C108003 */ lui $s0, %hi(cameramode) +/* 0AF4F4 7F07A9C4 26106494 */ addiu $s0, %lo(cameramode) # addiu $s0, $s0, 0x6494 +/* 0AF4F8 7F07A9C8 AE040000 */ sw $a0, ($s0) +/* 0AF4FC 7F07A9CC 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0AF500 7F07A9D0 AC206498 */ sw $zero, %lo(enable_move_after_cinema)($at) +/* 0AF504 7F07A9D4 8E020000 */ lw $v0, ($s0) +/* 0AF508 7F07A9D8 24030001 */ li $v1, 1 +/* 0AF50C 7F07A9DC AFBF002C */ sw $ra, 0x2c($sp) +/* 0AF510 7F07A9E0 14620027 */ bne $v1, $v0, .L7F07AA80 +/* 0AF514 7F07A9E4 24010002 */ li $at, 2 +/* 0AF518 7F07A9E8 3C0E8003 */ lui $t6, %hi(ptr_random06cam_entry) +/* 0AF51C 7F07A9EC 8DCE64C0 */ lw $t6, %lo(ptr_random06cam_entry)($t6) +/* 0AF520 7F07A9F0 11C0001F */ beqz $t6, .L7F07AA70 +/* 0AF524 7F07A9F4 00000000 */ nop +/* 0AF528 7F07A9F8 0FC2FF26 */ jal get_recording_ramrom_flag +/* 0AF52C 7F07A9FC 00000000 */ nop +/* 0AF530 7F07AA00 1440001B */ bnez $v0, .L7F07AA70 +/* 0AF534 7F07AA04 00000000 */ nop +/* 0AF538 7F07AA08 0FC2FF23 */ jal get_is_ramrom_flag +/* 0AF53C 7F07AA0C 00000000 */ nop +/* 0AF540 7F07AA10 14400017 */ bnez $v0, .L7F07AA70 +/* 0AF544 7F07AA14 3C018003 */ lui $at, %hi(D_800364A4) +/* 0AF548 7F07AA18 44802000 */ mtc1 $zero, $f4 +/* 0AF54C 7F07AA1C 00002025 */ move $a0, $zero +/* 0AF550 7F07AA20 00002825 */ move $a1, $zero +/* 0AF554 7F07AA24 00003025 */ move $a2, $zero +/* 0AF558 7F07AA28 3C073F80 */ lui $a3, 0x3f80 +/* 0AF55C 7F07AA2C 0FC201EC */ jal set_rgba_tint +/* 0AF560 7F07AA30 E42464A4 */ swc1 $f4, %lo(D_800364A4)($at) +/* 0AF564 7F07AA34 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0AF568 7F07AA38 44816000 */ mtc1 $at, $f12 +/* 0AF56C 7F07AA3C 44807000 */ mtc1 $zero, $f14 +/* 0AF570 7F07AA40 0FC20216 */ jal fade_to_over_seconds +/* 0AF574 7F07AA44 00000000 */ nop +/* 0AF578 7F07AA48 0C001A57 */ jal get_stage_num +/* 0AF57C 7F07AA4C 00000000 */ nop +/* 0AF580 7F07AA50 00402025 */ move $a0, $v0 +/* 0AF584 7F07AA54 0FC2EA99 */ jal load_enviroment +/* 0AF588 7F07AA58 24050001 */ li $a1, 1 +/* 0AF58C 7F07AA5C 3C108008 */ lui $s0, %hi(pPlayer) +/* 0AF590 7F07AA60 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0AF594 7F07AA64 8E0F0000 */ lw $t7, ($s0) +/* 0AF598 7F07AA68 100001C9 */ b .L7F07B190 +/* 0AF59C 7F07AA6C ADE00034 */ sw $zero, 0x34($t7) +.L7F07AA70: +/* 0AF5A0 7F07AA70 0FC1EA6E */ jal set_camera_mode +/* 0AF5A4 7F07AA74 24040003 */ li $a0, 3 +/* 0AF5A8 7F07AA78 100001C6 */ b .L7F07B194 +/* 0AF5AC 7F07AA7C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F07AA80: +/* 0AF5B0 7F07AA80 1441000D */ bne $v0, $at, .L7F07AAB8 +/* 0AF5B4 7F07AA84 00002025 */ move $a0, $zero +/* 0AF5B8 7F07AA88 00002825 */ move $a1, $zero +/* 0AF5BC 7F07AA8C 00003025 */ move $a2, $zero +/* 0AF5C0 7F07AA90 0FC201EC */ jal set_rgba_tint +/* 0AF5C4 7F07AA94 24070000 */ li $a3, 0 +/* 0AF5C8 7F07AA98 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0AF5CC 7F07AA9C 44816000 */ mtc1 $at, $f12 +/* 0AF5D0 7F07AAA0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AF5D4 7F07AAA4 44817000 */ mtc1 $at, $f14 +/* 0AF5D8 7F07AAA8 0FC20216 */ jal fade_to_over_seconds +/* 0AF5DC 7F07AAAC 00000000 */ nop +/* 0AF5E0 7F07AAB0 100001B8 */ b .L7F07B194 +/* 0AF5E4 7F07AAB4 8FBF002C */ lw $ra, 0x2c($sp) +.L7F07AAB8: +/* 0AF5E8 7F07AAB8 24010009 */ li $at, 9 +/* 0AF5EC 7F07AABC 54410015 */ bnel $v0, $at, .L7F07AB14 +/* 0AF5F0 7F07AAC0 24010003 */ li $at, 3 +/* 0AF5F4 7F07AAC4 44800000 */ mtc1 $zero, $f0 +/* 0AF5F8 7F07AAC8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079E04) +/* 0AF5FC 7F07AACC E4209E04 */ swc1 $f0, %lo(flt_CODE_bss_80079E04)($at) +/* 0AF600 7F07AAD0 3C01C2B4 */ li $at, 0xC2B40000 # -90.000000 +/* 0AF604 7F07AAD4 44813000 */ mtc1 $at, $f6 +/* 0AF608 7F07AAD8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079E08) +/* 0AF60C 7F07AADC E4269E08 */ swc1 $f6, %lo(flt_CODE_bss_80079E08)($at) +/* 0AF610 7F07AAE0 3C018008 */ lui $at, %hi(flt_CODE_bss_80079E0C) +/* 0AF614 7F07AAE4 E4209E0C */ swc1 $f0, %lo(flt_CODE_bss_80079E0C)($at) +/* 0AF618 7F07AAE8 3C0142A0 */ li $at, 0x42A00000 # 80.000000 +/* 0AF61C 7F07AAEC 44814000 */ mtc1 $at, $f8 +/* 0AF620 7F07AAF0 3C018008 */ lui $at, %hi(flt_CODE_bss_80079E10) +/* 0AF624 7F07AAF4 0C001A57 */ jal get_stage_num +/* 0AF628 7F07AAF8 E4289E10 */ swc1 $f8, %lo(flt_CODE_bss_80079E10)($at) +/* 0AF62C 7F07AAFC 00402025 */ move $a0, $v0 +/* 0AF630 7F07AB00 0FC2EA99 */ jal load_enviroment +/* 0AF634 7F07AB04 00002825 */ move $a1, $zero +/* 0AF638 7F07AB08 100001A2 */ b .L7F07B194 +/* 0AF63C 7F07AB0C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0AF640 7F07AB10 24010003 */ li $at, 3 +.L7F07AB14: +/* 0AF644 7F07AB14 14410059 */ bne $v0, $at, .L7F07AC7C +/* 0AF648 7F07AB18 00002025 */ move $a0, $zero +/* 0AF64C 7F07AB1C 3C018003 */ lui $at, %hi(D_8003649C) +/* 0AF650 7F07AB20 AC20649C */ sw $zero, %lo(D_8003649C)($at) +/* 0AF654 7F07AB24 00002825 */ move $a1, $zero +/* 0AF658 7F07AB28 00003025 */ move $a2, $zero +/* 0AF65C 7F07AB2C 0FC201EC */ jal set_rgba_tint +/* 0AF660 7F07AB30 3C073F80 */ lui $a3, 0x3f80 +/* 0AF664 7F07AB34 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0AF668 7F07AB38 44816000 */ mtc1 $at, $f12 +/* 0AF66C 7F07AB3C 44807000 */ mtc1 $zero, $f14 +/* 0AF670 7F07AB40 0FC20216 */ jal fade_to_over_seconds +/* 0AF674 7F07AB44 00000000 */ nop +/* 0AF678 7F07AB48 0C001A57 */ jal get_stage_num +/* 0AF67C 7F07AB4C 00000000 */ nop +/* 0AF680 7F07AB50 00402025 */ move $a0, $v0 +/* 0AF684 7F07AB54 0FC2EA99 */ jal load_enviroment +/* 0AF688 7F07AB58 00002825 */ move $a1, $zero +/* 0AF68C 7F07AB5C 3C188003 */ lui $t8, %hi(D_800364AC) +/* 0AF690 7F07AB60 8F1864AC */ lw $t8, %lo(D_800364AC)($t8) +/* 0AF694 7F07AB64 13000041 */ beqz $t8, .L7F07AC6C +/* 0AF698 7F07AB68 00000000 */ nop +/* 0AF69C 7F07AB6C 0FC2FF26 */ jal get_recording_ramrom_flag +/* 0AF6A0 7F07AB70 00000000 */ nop +/* 0AF6A4 7F07AB74 1440003D */ bnez $v0, .L7F07AC6C +/* 0AF6A8 7F07AB78 00000000 */ nop +/* 0AF6AC 7F07AB7C 0FC2FF23 */ jal get_is_ramrom_flag +/* 0AF6B0 7F07AB80 00000000 */ nop +/* 0AF6B4 7F07AB84 14400039 */ bnez $v0, .L7F07AC6C +/* 0AF6B8 7F07AB88 00000000 */ nop +/* 0AF6BC 7F07AB8C 44806000 */ mtc1 $zero, $f12 +/* 0AF6C0 7F07AB90 3C018003 */ lui $at, %hi(D_800364A4) +/* 0AF6C4 7F07AB94 24190001 */ li $t9, 1 +/* 0AF6C8 7F07AB98 E42C64A4 */ swc1 $f12, %lo(D_800364A4)($at) +/* 0AF6CC 7F07AB9C 3C018003 */ lui $at, %hi(D_800364A8) +/* 0AF6D0 7F07ABA0 AC3964A8 */ sw $t9, %lo(D_800364A8)($at) +/* 0AF6D4 7F07ABA4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AF6D8 7F07ABA8 44817000 */ mtc1 $at, $f14 +/* 0AF6DC 7F07ABAC 0FC20284 */ jal set_curplayer_fade +/* 0AF6E0 7F07ABB0 00000000 */ nop +/* 0AF6E4 7F07ABB4 0FC1E73C */ jal solo_char_load +/* 0AF6E8 7F07ABB8 00000000 */ nop +/* 0AF6EC 7F07ABBC 3C088003 */ lui $t0, %hi(D_80036514) +/* 0AF6F0 7F07ABC0 8D086514 */ lw $t0, %lo(D_80036514)($t0) +/* 0AF6F4 7F07ABC4 3C0A8003 */ lui $t2, %hi(stage_intro_anim_table) +/* 0AF6F8 7F07ABC8 3C108008 */ lui $s0, %hi(pPlayer) +/* 0AF6FC 7F07ABCC 254A6518 */ addiu $t2, %lo(stage_intro_anim_table) # addiu $t2, $t2, 0x6518 +/* 0AF700 7F07ABD0 00084900 */ sll $t1, $t0, 4 +/* 0AF704 7F07ABD4 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0AF708 7F07ABD8 012A1021 */ addu $v0, $t1, $t2 +/* 0AF70C 7F07ABDC 8E0D0000 */ lw $t5, ($s0) +/* 0AF710 7F07ABE0 C4400004 */ lwc1 $f0, 4($v0) +/* 0AF714 7F07ABE4 3C0C8007 */ lui $t4, %hi(ptr_animation_table) +/* 0AF718 7F07ABE8 8D8C9538 */ lw $t4, %lo(ptr_animation_table)($t4) +/* 0AF71C 7F07ABEC 8C4B0000 */ lw $t3, ($v0) +/* 0AF720 7F07ABF0 C44C0008 */ lwc1 $f12, 8($v0) +/* 0AF724 7F07ABF4 C442000C */ lwc1 $f2, 0xc($v0) +/* 0AF728 7F07ABF8 44805000 */ mtc1 $zero, $f10 +/* 0AF72C 7F07ABFC 8DA400D4 */ lw $a0, 0xd4($t5) +/* 0AF730 7F07AC00 44070000 */ mfc1 $a3, $f0 +/* 0AF734 7F07AC04 00003025 */ move $a2, $zero +/* 0AF738 7F07AC08 016C2821 */ addu $a1, $t3, $t4 +/* 0AF73C 7F07AC0C E7AC0078 */ swc1 $f12, 0x78($sp) +/* 0AF740 7F07AC10 E7A20010 */ swc1 $f2, 0x10($sp) +/* 0AF744 7F07AC14 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0AF748 7F07AC18 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 0AF74C 7F07AC1C C7AC0078 */ lwc1 $f12, 0x78($sp) +/* 0AF750 7F07AC20 44808000 */ mtc1 $zero, $f16 +/* 0AF754 7F07AC24 00000000 */ nop +/* 0AF758 7F07AC28 460C803C */ c.lt.s $f16, $f12 +/* 0AF75C 7F07AC2C 00000000 */ nop +/* 0AF760 7F07AC30 45020006 */ bc1fl .L7F07AC4C +/* 0AF764 7F07AC34 8E0F0000 */ lw $t7, ($s0) +/* 0AF768 7F07AC38 8E0E0000 */ lw $t6, ($s0) +/* 0AF76C 7F07AC3C 44056000 */ mfc1 $a1, $f12 +/* 0AF770 7F07AC40 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0AF774 7F07AC44 8DC400D4 */ lw $a0, 0xd4($t6) +/* 0AF778 7F07AC48 8E0F0000 */ lw $t7, ($s0) +.L7F07AC4C: +/* 0AF77C 7F07AC4C 24190017 */ li $t9, 23 +/* 0AF780 7F07AC50 8DF800A8 */ lw $t8, 0xa8($t7) +/* 0AF784 7F07AC54 8F020004 */ lw $v0, 4($t8) +/* 0AF788 7F07AC58 A0590007 */ sb $t9, 7($v0) +/* 0AF78C 7F07AC5C A0400008 */ sb $zero, 8($v0) +/* 0AF790 7F07AC60 8E080000 */ lw $t0, ($s0) +/* 0AF794 7F07AC64 1000014A */ b .L7F07B190 +/* 0AF798 7F07AC68 AD000034 */ sw $zero, 0x34($t0) +.L7F07AC6C: +/* 0AF79C 7F07AC6C 0FC1EA6E */ jal set_camera_mode +/* 0AF7A0 7F07AC70 24040004 */ li $a0, 4 +/* 0AF7A4 7F07AC74 10000147 */ b .L7F07B194 +/* 0AF7A8 7F07AC78 8FBF002C */ lw $ra, 0x2c($sp) +.L7F07AC7C: +/* 0AF7AC 7F07AC7C 24010004 */ li $at, 4 +/* 0AF7B0 7F07AC80 5441003A */ bnel $v0, $at, .L7F07AD6C +/* 0AF7B4 7F07AC84 24010005 */ li $at, 5 +/* 0AF7B8 7F07AC88 0C001A57 */ jal get_stage_num +/* 0AF7BC 7F07AC8C 00000000 */ nop +/* 0AF7C0 7F07AC90 24010036 */ li $at, 54 +/* 0AF7C4 7F07AC94 1441000D */ bne $v0, $at, .L7F07ACCC +/* 0AF7C8 7F07AC98 3C098003 */ lui $t1, %hi(D_8003649C) +/* 0AF7CC 7F07AC9C 00002025 */ move $a0, $zero +/* 0AF7D0 7F07ACA0 00002825 */ move $a1, $zero +/* 0AF7D4 7F07ACA4 00003025 */ move $a2, $zero +/* 0AF7D8 7F07ACA8 0FC201EC */ jal set_rgba_tint +/* 0AF7DC 7F07ACAC 3C073F80 */ lui $a3, 0x3f80 +/* 0AF7E0 7F07ACB0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AF7E4 7F07ACB4 44817000 */ mtc1 $at, $f14 +/* 0AF7E8 7F07ACB8 44806000 */ mtc1 $zero, $f12 +/* 0AF7EC 7F07ACBC 0FC20216 */ jal fade_to_over_seconds +/* 0AF7F0 7F07ACC0 00000000 */ nop +/* 0AF7F4 7F07ACC4 1000000D */ b .L7F07ACFC +/* 0AF7F8 7F07ACC8 00000000 */ nop +.L7F07ACCC: +/* 0AF7FC 7F07ACCC 8D29649C */ lw $t1, %lo(D_8003649C)($t1) +/* 0AF800 7F07ACD0 00002025 */ move $a0, $zero +/* 0AF804 7F07ACD4 00002825 */ move $a1, $zero +/* 0AF808 7F07ACD8 11200008 */ beqz $t1, .L7F07ACFC +/* 0AF80C 7F07ACDC 00003025 */ move $a2, $zero +/* 0AF810 7F07ACE0 0FC201EC */ jal set_rgba_tint +/* 0AF814 7F07ACE4 3C073F80 */ lui $a3, 0x3f80 +/* 0AF818 7F07ACE8 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0AF81C 7F07ACEC 44816000 */ mtc1 $at, $f12 +/* 0AF820 7F07ACF0 44807000 */ mtc1 $zero, $f14 +/* 0AF824 7F07ACF4 0FC20216 */ jal fade_to_over_seconds +/* 0AF828 7F07ACF8 00000000 */ nop +.L7F07ACFC: +/* 0AF82C 7F07ACFC 0FC26919 */ jal get_num_players +/* 0AF830 7F07AD00 00000000 */ nop +/* 0AF834 7F07AD04 28410002 */ slti $at, $v0, 2 +/* 0AF838 7F07AD08 14200006 */ bnez $at, .L7F07AD24 +/* 0AF83C 7F07AD0C 00000000 */ nop +/* 0AF840 7F07AD10 0C001A57 */ jal get_stage_num +/* 0AF844 7F07AD14 00000000 */ nop +/* 0AF848 7F07AD18 00402025 */ move $a0, $v0 +/* 0AF84C 7F07AD1C 0FC2EA99 */ jal load_enviroment +/* 0AF850 7F07AD20 00002825 */ move $a1, $zero +.L7F07AD24: +/* 0AF854 7F07AD24 3C108008 */ lui $s0, %hi(pPlayer) +/* 0AF858 7F07AD28 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0AF85C 7F07AD2C 8E0A0000 */ lw $t2, ($s0) +/* 0AF860 7F07AD30 3C108008 */ lui $s0, %hi(starting_right_weapon) +/* 0AF864 7F07AD34 261099E0 */ addiu $s0, %lo(starting_right_weapon) # addiu $s0, $s0, -0x6620 +/* 0AF868 7F07AD38 8D4B01C8 */ lw $t3, 0x1c8($t2) +/* 0AF86C 7F07AD3C 24040001 */ li $a0, 1 +/* 0AF870 7F07AD40 15600006 */ bnez $t3, .L7F07AD5C +/* 0AF874 7F07AD44 00000000 */ nop +/* 0AF878 7F07AD48 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0AF87C 7F07AD4C 8E050004 */ lw $a1, 4($s0) +/* 0AF880 7F07AD50 00002025 */ move $a0, $zero +/* 0AF884 7F07AD54 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0AF888 7F07AD58 8E050000 */ lw $a1, ($s0) +.L7F07AD5C: +/* 0AF88C 7F07AD5C 3C018003 */ lui $at, %hi(stop_time_flag) +/* 0AF890 7F07AD60 1000010B */ b .L7F07B190 +/* 0AF894 7F07AD64 AC2064A0 */ sw $zero, %lo(stop_time_flag)($at) +/* 0AF898 7F07AD68 24010005 */ li $at, 5 +.L7F07AD6C: +/* 0AF89C 7F07AD6C 144100CC */ bne $v0, $at, .L7F07B0A0 +/* 0AF8A0 7F07AD70 00002025 */ move $a0, $zero +/* 0AF8A4 7F07AD74 44809000 */ mtc1 $zero, $f18 +/* 0AF8A8 7F07AD78 3C018003 */ lui $at, %hi(D_800364A4) +/* 0AF8AC 7F07AD7C 00002825 */ move $a1, $zero +/* 0AF8B0 7F07AD80 E43264A4 */ swc1 $f18, %lo(D_800364A4)($at) +/* 0AF8B4 7F07AD84 3C018003 */ lui $at, %hi(D_800364A8) +/* 0AF8B8 7F07AD88 AC2364A8 */ sw $v1, %lo(D_800364A8)($at) +/* 0AF8BC 7F07AD8C 00003025 */ move $a2, $zero +/* 0AF8C0 7F07AD90 0FC201EC */ jal set_rgba_tint +/* 0AF8C4 7F07AD94 3C073F80 */ lui $a3, 0x3f80 +/* 0AF8C8 7F07AD98 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0AF8CC 7F07AD9C 44816000 */ mtc1 $at, $f12 +/* 0AF8D0 7F07ADA0 44807000 */ mtc1 $zero, $f14 +/* 0AF8D4 7F07ADA4 0FC20216 */ jal fade_to_over_seconds +/* 0AF8D8 7F07ADA8 00000000 */ nop +/* 0AF8DC 7F07ADAC 3C028003 */ lui $v0, %hi(D_8003648C) +/* 0AF8E0 7F07ADB0 8C42648C */ lw $v0, %lo(D_8003648C)($v0) +/* 0AF8E4 7F07ADB4 3C108008 */ lui $s0, %hi(pPlayer) +/* 0AF8E8 7F07ADB8 3C0C8003 */ lui $t4, %hi(ptr_playerstank) +/* 0AF8EC 7F07ADBC 10400007 */ beqz $v0, .L7F07ADDC +/* 0AF8F0 7F07ADC0 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0AF8F4 7F07ADC4 8D8C6450 */ lw $t4, %lo(ptr_playerstank)($t4) +/* 0AF8F8 7F07ADC8 11800004 */ beqz $t4, .L7F07ADDC +/* 0AF8FC 7F07ADCC 00000000 */ nop +/* 0AF900 7F07ADD0 3C108008 */ lui $s0, %hi(pPlayer) +/* 0AF904 7F07ADD4 1000005C */ b .L7F07AF48 +/* 0AF908 7F07ADD8 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +.L7F07ADDC: +/* 0AF90C 7F07ADDC 3C018003 */ lui $at, %hi(in_tank_flag) +/* 0AF910 7F07ADE0 AC206448 */ sw $zero, %lo(in_tank_flag)($at) +/* 0AF914 7F07ADE4 8E190000 */ lw $t9, ($s0) +/* 0AF918 7F07ADE8 0320C025 */ move $t8, $t9 +/* 0AF91C 7F07ADEC 272F0054 */ addiu $t7, $t9, 0x54 +.L7F07ADF0: +/* 0AF920 7F07ADF0 8F010434 */ lw $at, 0x434($t8) +/* 0AF924 7F07ADF4 2718000C */ addiu $t8, $t8, 0xc +/* 0AF928 7F07ADF8 2739000C */ addiu $t9, $t9, 0xc +/* 0AF92C 7F07ADFC AF21047C */ sw $at, 0x47c($t9) +/* 0AF930 7F07AE00 8F01042C */ lw $at, 0x42c($t8) +/* 0AF934 7F07AE04 AF210480 */ sw $at, 0x480($t9) +/* 0AF938 7F07AE08 8F010430 */ lw $at, 0x430($t8) +/* 0AF93C 7F07AE0C 170FFFF8 */ bne $t8, $t7, .L7F07ADF0 +/* 0AF940 7F07AE10 AF210484 */ sw $at, 0x484($t9) +/* 0AF944 7F07AE14 8E020000 */ lw $v0, ($s0) +/* 0AF948 7F07AE18 C4440414 */ lwc1 $f4, 0x414($v0) +/* 0AF94C 7F07AE1C E4440148 */ swc1 $f4, 0x148($v0) +/* 0AF950 7F07AE20 8E020000 */ lw $v0, ($s0) +/* 0AF954 7F07AE24 C4460418 */ lwc1 $f6, 0x418($v0) +/* 0AF958 7F07AE28 E4460158 */ swc1 $f6, 0x158($v0) +/* 0AF95C 7F07AE2C 8E020000 */ lw $v0, ($s0) +/* 0AF960 7F07AE30 C448048C */ lwc1 $f8, 0x48c($v0) +/* 0AF964 7F07AE34 8C4800A8 */ lw $t0, 0xa8($v0) +/* 0AF968 7F07AE38 E5080008 */ swc1 $f8, 8($t0) +/* 0AF96C 7F07AE3C 8E020000 */ lw $v0, ($s0) +/* 0AF970 7F07AE40 C44A0490 */ lwc1 $f10, 0x490($v0) +/* 0AF974 7F07AE44 8C4900A8 */ lw $t1, 0xa8($v0) +/* 0AF978 7F07AE48 E52A000C */ swc1 $f10, 0xc($t1) +/* 0AF97C 7F07AE4C 8E020000 */ lw $v0, ($s0) +/* 0AF980 7F07AE50 C4500494 */ lwc1 $f16, 0x494($v0) +/* 0AF984 7F07AE54 8C4A00A8 */ lw $t2, 0xa8($v0) +/* 0AF988 7F07AE58 E5500010 */ swc1 $f16, 0x10($t2) +/* 0AF98C 7F07AE5C 8E020000 */ lw $v0, ($s0) +/* 0AF990 7F07AE60 8C4B0488 */ lw $t3, 0x488($v0) +/* 0AF994 7F07AE64 8C4C00A8 */ lw $t4, 0xa8($v0) +/* 0AF998 7F07AE68 0FC205E4 */ jal sub_GAME_7F081790 +/* 0AF99C 7F07AE6C AD8B0014 */ sw $t3, 0x14($t4) +/* 0AF9A0 7F07AE70 44806000 */ mtc1 $zero, $f12 +/* 0AF9A4 7F07AE74 00000000 */ nop +/* 0AF9A8 7F07AE78 44066000 */ mfc1 $a2, $f12 +/* 0AF9AC 7F07AE7C 0FC202CD */ jal sub_GAME_7F080B34 +/* 0AF9B0 7F07AE80 46006386 */ mov.s $f14, $f12 +/* 0AF9B4 7F07AE84 0FC2051E */ jal sub_GAME_7F081478 +/* 0AF9B8 7F07AE88 00000000 */ nop +/* 0AF9BC 7F07AE8C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AF9C0 7F07AE90 44817000 */ mtc1 $at, $f14 +/* 0AF9C4 7F07AE94 44806000 */ mtc1 $zero, $f12 +/* 0AF9C8 7F07AE98 0FC20284 */ jal set_curplayer_fade +/* 0AF9CC 7F07AE9C 00000000 */ nop +/* 0AF9D0 7F07AEA0 0FC1E73C */ jal solo_char_load +/* 0AF9D4 7F07AEA4 00000000 */ nop +/* 0AF9D8 7F07AEA8 8E040000 */ lw $a0, ($s0) +/* 0AF9DC 7F07AEAC 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 0AF9E0 7F07AEB0 24840598 */ addiu $a0, $a0, 0x598 +/* 0AF9E4 7F07AEB4 8E040000 */ lw $a0, ($s0) +/* 0AF9E8 7F07AEB8 AFA20038 */ sw $v0, 0x38($sp) +/* 0AF9EC 7F07AEBC 0FC1BD6D */ jal sub_GAME_7F06F5B4 +/* 0AF9F0 7F07AEC0 24840598 */ addiu $a0, $a0, 0x598 +/* 0AF9F4 7F07AEC4 44800000 */ mtc1 $zero, $f0 +/* 0AF9F8 7F07AEC8 8E0E0000 */ lw $t6, ($s0) +/* 0AF9FC 7F07AECC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0AFA00 7F07AED0 44819000 */ mtc1 $at, $f18 +/* 0AFA04 7F07AED4 8DC400D4 */ lw $a0, 0xd4($t6) +/* 0AFA08 7F07AED8 44070000 */ mfc1 $a3, $f0 +/* 0AFA0C 7F07AEDC 8FA50038 */ lw $a1, 0x38($sp) +/* 0AFA10 7F07AEE0 00403025 */ move $a2, $v0 +/* 0AFA14 7F07AEE4 E7A00014 */ swc1 $f0, 0x14($sp) +/* 0AFA18 7F07AEE8 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0AFA1C 7F07AEEC E7B20010 */ swc1 $f18, 0x10($sp) +/* 0AFA20 7F07AEF0 8E0D0000 */ lw $t5, ($s0) +/* 0AFA24 7F07AEF4 24180018 */ li $t8, 24 +/* 0AFA28 7F07AEF8 8DAF00A8 */ lw $t7, 0xa8($t5) +/* 0AFA2C 7F07AEFC 8DE30004 */ lw $v1, 4($t7) +/* 0AFA30 7F07AF00 8C790014 */ lw $t9, 0x14($v1) +/* 0AFA34 7F07AF04 A0780007 */ sb $t8, 7($v1) +/* 0AFA38 7F07AF08 A0600008 */ sb $zero, 8($v1) +/* 0AFA3C 7F07AF0C 37280001 */ ori $t0, $t9, 1 +/* 0AFA40 7F07AF10 AC680014 */ sw $t0, 0x14($v1) +/* 0AFA44 7F07AF14 8E020000 */ lw $v0, ($s0) +/* 0AFA48 7F07AF18 8C4500A8 */ lw $a1, 0xa8($v0) +/* 0AFA4C 7F07AF1C 8C4400D4 */ lw $a0, 0xd4($v0) +/* 0AFA50 7F07AF20 0FC1B303 */ jal setsuboffset +/* 0AFA54 7F07AF24 24A50008 */ addiu $a1, $a1, 8 +/* 0AFA58 7F07AF28 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 0AFA5C 7F07AF2C 00000000 */ nop +/* 0AFA60 7F07AF30 8E090000 */ lw $t1, ($s0) +/* 0AFA64 7F07AF34 44050000 */ mfc1 $a1, $f0 +/* 0AFA68 7F07AF38 0FC1B34F */ jal setsubroty +/* 0AFA6C 7F07AF3C 8D2400D4 */ lw $a0, 0xd4($t1) +/* 0AFA70 7F07AF40 3C028003 */ lui $v0, %hi(D_8003648C) +/* 0AFA74 7F07AF44 8C42648C */ lw $v0, %lo(D_8003648C)($v0) +.L7F07AF48: +/* 0AFA78 7F07AF48 10400017 */ beqz $v0, .L7F07AFA8 +/* 0AFA7C 7F07AF4C 27A50058 */ addiu $a1, $sp, 0x58 +/* 0AFA80 7F07AF50 3C048003 */ lui $a0, %hi(ptr_playerstank) +/* 0AFA84 7F07AF54 8C846450 */ lw $a0, %lo(ptr_playerstank)($a0) +/* 0AFA88 7F07AF58 50800014 */ beql $a0, $zero, .L7F07AFAC +/* 0AFA8C 7F07AF5C 8E020000 */ lw $v0, ($s0) +/* 0AFA90 7F07AF60 AFA40064 */ sw $a0, 0x64($sp) +/* 0AFA94 7F07AF64 C4840008 */ lwc1 $f4, 8($a0) +/* 0AFA98 7F07AF68 3C0143FA */ li $at, 0x43FA0000 # 500.000000 +/* 0AFA9C 7F07AF6C 44810000 */ mtc1 $at, $f0 +/* 0AFAA0 7F07AF70 E7A40058 */ swc1 $f4, 0x58($sp) +/* 0AFAA4 7F07AF74 C486000C */ lwc1 $f6, 0xc($a0) +/* 0AFAA8 7F07AF78 00803025 */ move $a2, $a0 +/* 0AFAAC 7F07AF7C E7A6005C */ swc1 $f6, 0x5c($sp) +/* 0AFAB0 7F07AF80 C4880010 */ lwc1 $f8, 0x10($a0) +/* 0AFAB4 7F07AF84 E7A80060 */ swc1 $f8, 0x60($sp) +/* 0AFAB8 7F07AF88 C48A0008 */ lwc1 $f10, 8($a0) +/* 0AFABC 7F07AF8C E7AA0048 */ swc1 $f10, 0x48($sp) +/* 0AFAC0 7F07AF90 C490000C */ lwc1 $f16, 0xc($a0) +/* 0AFAC4 7F07AF94 E7B0004C */ swc1 $f16, 0x4c($sp) +/* 0AFAC8 7F07AF98 C4920010 */ lwc1 $f18, 0x10($a0) +/* 0AFACC 7F07AF9C E7B20050 */ swc1 $f18, 0x50($sp) +/* 0AFAD0 7F07AFA0 10000014 */ b .L7F07AFF4 +/* 0AFAD4 7F07AFA4 8C830014 */ lw $v1, 0x14($a0) +.L7F07AFA8: +/* 0AFAD8 7F07AFA8 8E020000 */ lw $v0, ($s0) +.L7F07AFAC: +/* 0AFADC 7F07AFAC 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 0AFAE0 7F07AFB0 44810000 */ mtc1 $at, $f0 +/* 0AFAE4 7F07AFB4 8C4A00A8 */ lw $t2, 0xa8($v0) +/* 0AFAE8 7F07AFB8 AFAA0064 */ sw $t2, 0x64($sp) +/* 0AFAEC 7F07AFBC C44403C4 */ lwc1 $f4, 0x3c4($v0) +/* 0AFAF0 7F07AFC0 E7A40058 */ swc1 $f4, 0x58($sp) +/* 0AFAF4 7F07AFC4 C44603C8 */ lwc1 $f6, 0x3c8($v0) +/* 0AFAF8 7F07AFC8 E7A6005C */ swc1 $f6, 0x5c($sp) +/* 0AFAFC 7F07AFCC C44803CC */ lwc1 $f8, 0x3cc($v0) +/* 0AFB00 7F07AFD0 E7A80060 */ swc1 $f8, 0x60($sp) +/* 0AFB04 7F07AFD4 C44A048C */ lwc1 $f10, 0x48c($v0) +/* 0AFB08 7F07AFD8 8C4600A8 */ lw $a2, 0xa8($v0) +/* 0AFB0C 7F07AFDC E7AA0048 */ swc1 $f10, 0x48($sp) +/* 0AFB10 7F07AFE0 C4500490 */ lwc1 $f16, 0x490($v0) +/* 0AFB14 7F07AFE4 E7B0004C */ swc1 $f16, 0x4c($sp) +/* 0AFB18 7F07AFE8 C4520494 */ lwc1 $f18, 0x494($v0) +/* 0AFB1C 7F07AFEC E7B20050 */ swc1 $f18, 0x50($sp) +/* 0AFB20 7F07AFF0 8C430488 */ lw $v1, 0x488($v0) +.L7F07AFF4: +/* 0AFB24 7F07AFF4 8FA40064 */ lw $a0, 0x64($sp) +/* 0AFB28 7F07AFF8 27A70048 */ addiu $a3, $sp, 0x48 +/* 0AFB2C 7F07AFFC AFA30010 */ sw $v1, 0x10($sp) +/* 0AFB30 7F07B000 0FC1E94D */ jal sub_GAME_7F07A534 +/* 0AFB34 7F07B004 E7A00014 */ swc1 $f0, 0x14($sp) +/* 0AFB38 7F07B008 10400021 */ beqz $v0, .L7F07B090 +/* 0AFB3C 7F07B00C 3C0B8003 */ lui $t3, %hi(D_80036510) +/* 0AFB40 7F07B010 8D6B6510 */ lw $t3, %lo(D_80036510)($t3) +/* 0AFB44 7F07B014 15600007 */ bnez $t3, .L7F07B034 +/* 0AFB48 7F07B018 00000000 */ nop +/* 0AFB4C 7F07B01C 0C001B9F */ jal musicTrack1Play +/* 0AFB50 7F07B020 2404002C */ li $a0, 44 +/* 0AFB54 7F07B024 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0AFB58 7F07B028 44816000 */ mtc1 $at, $f12 +/* 0AFB5C 7F07B02C 0C00248E */ jal sfx_c_70009238 +/* 0AFB60 7F07B030 00000000 */ nop +.L7F07B034: +/* 0AFB64 7F07B034 3C0C8003 */ lui $t4, %hi(D_8003648C) +/* 0AFB68 7F07B038 8D8C648C */ lw $t4, %lo(D_8003648C)($t4) +/* 0AFB6C 7F07B03C 3C0E8003 */ lui $t6, %hi(ptr_playerstank) +/* 0AFB70 7F07B040 51800054 */ beql $t4, $zero, .L7F07B194 +/* 0AFB74 7F07B044 8FBF002C */ lw $ra, 0x2c($sp) +/* 0AFB78 7F07B048 8DCE6450 */ lw $t6, %lo(ptr_playerstank)($t6) +/* 0AFB7C 7F07B04C 51C00051 */ beql $t6, $zero, .L7F07B194 +/* 0AFB80 7F07B050 8FBF002C */ lw $ra, 0x2c($sp) +/* 0AFB84 7F07B054 0FC26C54 */ jal get_cur_playernum +/* 0AFB88 7F07B058 00000000 */ nop +/* 0AFB8C 7F07B05C 3C048003 */ lui $a0, %hi(ptr_playerstank) +/* 0AFB90 7F07B060 8C846450 */ lw $a0, %lo(ptr_playerstank)($a0) +/* 0AFB94 7F07B064 2407000D */ li $a3, 13 +/* 0AFB98 7F07B068 8C860014 */ lw $a2, 0x14($a0) +/* 0AFB9C 7F07B06C 248D002C */ addiu $t5, $a0, 0x2c +/* 0AFBA0 7F07B070 AFAD0018 */ sw $t5, 0x18($sp) +/* 0AFBA4 7F07B074 AFA0001C */ sw $zero, 0x1c($sp) +/* 0AFBA8 7F07B078 AFA20014 */ sw $v0, 0x14($sp) +/* 0AFBAC 7F07B07C AFA00010 */ sw $zero, 0x10($sp) +/* 0AFBB0 7F07B080 0FC27094 */ jal sub_GAME_7F09C250 +/* 0AFBB4 7F07B084 24850008 */ addiu $a1, $a0, 8 +/* 0AFBB8 7F07B088 10000042 */ b .L7F07B194 +/* 0AFBBC 7F07B08C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F07B090: +/* 0AFBC0 7F07B090 0C001A4C */ jal run_title_stage +/* 0AFBC4 7F07B094 00000000 */ nop +/* 0AFBC8 7F07B098 1000003E */ b .L7F07B194 +/* 0AFBCC 7F07B09C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F07B0A0: +/* 0AFBD0 7F07B0A0 24010006 */ li $at, 6 +/* 0AFBD4 7F07B0A4 1441000D */ bne $v0, $at, .L7F07B0DC +/* 0AFBD8 7F07B0A8 00002025 */ move $a0, $zero +/* 0AFBDC 7F07B0AC 00002825 */ move $a1, $zero +/* 0AFBE0 7F07B0B0 00003025 */ move $a2, $zero +/* 0AFBE4 7F07B0B4 0FC201EC */ jal set_rgba_tint +/* 0AFBE8 7F07B0B8 24070000 */ li $a3, 0 +/* 0AFBEC 7F07B0BC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0AFBF0 7F07B0C0 44816000 */ mtc1 $at, $f12 +/* 0AFBF4 7F07B0C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AFBF8 7F07B0C8 44817000 */ mtc1 $at, $f14 +/* 0AFBFC 7F07B0CC 0FC20216 */ jal fade_to_over_seconds +/* 0AFC00 7F07B0D0 00000000 */ nop +/* 0AFC04 7F07B0D4 1000002F */ b .L7F07B194 +/* 0AFC08 7F07B0D8 8FBF002C */ lw $ra, 0x2c($sp) +.L7F07B0DC: +/* 0AFC0C 7F07B0DC 24010007 */ li $at, 7 +/* 0AFC10 7F07B0E0 54410009 */ bnel $v0, $at, .L7F07B108 +/* 0AFC14 7F07B0E4 24010008 */ li $at, 8 +/* 0AFC18 7F07B0E8 0FC1E73C */ jal solo_char_load +/* 0AFC1C 7F07B0EC 00000000 */ nop +/* 0AFC20 7F07B0F0 3C108008 */ lui $s0, %hi(pPlayer) +/* 0AFC24 7F07B0F4 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0AFC28 7F07B0F8 8E0F0000 */ lw $t7, ($s0) +/* 0AFC2C 7F07B0FC 10000024 */ b .L7F07B190 +/* 0AFC30 7F07B100 ADE00034 */ sw $zero, 0x34($t7) +/* 0AFC34 7F07B104 24010008 */ li $at, 8 +.L7F07B108: +/* 0AFC38 7F07B108 54410007 */ bnel $v0, $at, .L7F07B128 +/* 0AFC3C 7F07B10C 2401000A */ li $at, 10 +/* 0AFC40 7F07B110 0FC1E928 */ jal maybe_solo_intro_camera_handler +/* 0AFC44 7F07B114 00000000 */ nop +/* 0AFC48 7F07B118 24180004 */ li $t8, 4 +/* 0AFC4C 7F07B11C 1000001C */ b .L7F07B190 +/* 0AFC50 7F07B120 AE180000 */ sw $t8, ($s0) +/* 0AFC54 7F07B124 2401000A */ li $at, 10 +.L7F07B128: +/* 0AFC58 7F07B128 5441001A */ bnel $v0, $at, .L7F07B194 +/* 0AFC5C 7F07B12C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0AFC60 7F07B130 0FC26919 */ jal get_num_players +/* 0AFC64 7F07B134 00008025 */ move $s0, $zero +/* 0AFC68 7F07B138 18400013 */ blez $v0, .L7F07B188 +/* 0AFC6C 7F07B13C 00000000 */ nop +.L7F07B140: +/* 0AFC70 7F07B140 0FC26C43 */ jal set_cur_player +/* 0AFC74 7F07B144 02002025 */ move $a0, $s0 +/* 0AFC78 7F07B148 00002025 */ move $a0, $zero +/* 0AFC7C 7F07B14C 00002825 */ move $a1, $zero +/* 0AFC80 7F07B150 00003025 */ move $a2, $zero +/* 0AFC84 7F07B154 0FC201EC */ jal set_rgba_tint +/* 0AFC88 7F07B158 24070000 */ li $a3, 0 +/* 0AFC8C 7F07B15C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0AFC90 7F07B160 44816000 */ mtc1 $at, $f12 +/* 0AFC94 7F07B164 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AFC98 7F07B168 44817000 */ mtc1 $at, $f14 +/* 0AFC9C 7F07B16C 0FC20216 */ jal fade_to_over_seconds +/* 0AFCA0 7F07B170 00000000 */ nop +/* 0AFCA4 7F07B174 0FC26919 */ jal get_num_players +/* 0AFCA8 7F07B178 26100001 */ addiu $s0, $s0, 1 +/* 0AFCAC 7F07B17C 0202082A */ slt $at, $s0, $v0 +/* 0AFCB0 7F07B180 1420FFEF */ bnez $at, .L7F07B140 +/* 0AFCB4 7F07B184 00000000 */ nop +.L7F07B188: +/* 0AFCB8 7F07B188 0FC26C43 */ jal set_cur_player +/* 0AFCBC 7F07B18C 00002025 */ move $a0, $zero +.L7F07B190: +/* 0AFCC0 7F07B190 8FBF002C */ lw $ra, 0x2c($sp) +.L7F07B194: +/* 0AFCC4 7F07B194 8FB00028 */ lw $s0, 0x28($sp) +/* 0AFCC8 7F07B198 27BD0088 */ addiu $sp, $sp, 0x88 +/* 0AFCCC 7F07B19C 03E00008 */ jr $ra +/* 0AFCD0 7F07B1A0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07B1A4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07B1A4 +/* 0AFCD4 7F07B1A4 3C038003 */ lui $v1, %hi(cameramode) +/* 0AFCD8 7F07B1A8 24636494 */ addiu $v1, %lo(cameramode) # addiu $v1, $v1, 0x6494 +/* 0AFCDC 7F07B1AC 8C620000 */ lw $v0, ($v1) +/* 0AFCE0 7F07B1B0 AC600000 */ sw $zero, ($v1) +/* 0AFCE4 7F07B1B4 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0AFCE8 7F07B1B8 AC206498 */ sw $zero, %lo(enable_move_after_cinema)($at) +/* 0AFCEC 7F07B1BC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0AFCF0 7F07B1C0 24010001 */ li $at, 1 +/* 0AFCF4 7F07B1C4 14410005 */ bne $v0, $at, .L7F07B1DC +/* 0AFCF8 7F07B1C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0AFCFC 7F07B1CC 0FC1EA6E */ jal set_camera_mode +/* 0AFD00 7F07B1D0 24040002 */ li $a0, 2 +/* 0AFD04 7F07B1D4 1000002F */ b .L7F07B294 +/* 0AFD08 7F07B1D8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07B1DC: +/* 0AFD0C 7F07B1DC 24010002 */ li $at, 2 +/* 0AFD10 7F07B1E0 54410008 */ bnel $v0, $at, .L7F07B204 +/* 0AFD14 7F07B1E4 24010009 */ li $at, 9 +/* 0AFD18 7F07B1E8 0FC228CC */ jal reset_intro_camera_message_dialogs_for_BONDdata +/* 0AFD1C 7F07B1EC 00000000 */ nop +/* 0AFD20 7F07B1F0 0FC1EA6E */ jal set_camera_mode +/* 0AFD24 7F07B1F4 24040003 */ li $a0, 3 +/* 0AFD28 7F07B1F8 10000026 */ b .L7F07B294 +/* 0AFD2C 7F07B1FC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AFD30 7F07B200 24010009 */ li $at, 9 +.L7F07B204: +/* 0AFD34 7F07B204 10410022 */ beq $v0, $at, .L7F07B290 +/* 0AFD38 7F07B208 24010003 */ li $at, 3 +/* 0AFD3C 7F07B20C 5441000D */ bnel $v0, $at, .L7F07B244 +/* 0AFD40 7F07B210 24010004 */ li $at, 4 +/* 0AFD44 7F07B214 0FC1E928 */ jal maybe_solo_intro_camera_handler +/* 0AFD48 7F07B218 00000000 */ nop +/* 0AFD4C 7F07B21C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AFD50 7F07B220 44817000 */ mtc1 $at, $f14 +/* 0AFD54 7F07B224 44806000 */ mtc1 $zero, $f12 +/* 0AFD58 7F07B228 0FC20284 */ jal set_curplayer_fade +/* 0AFD5C 7F07B22C 00000000 */ nop +/* 0AFD60 7F07B230 0FC1EA6E */ jal set_camera_mode +/* 0AFD64 7F07B234 24040004 */ li $a0, 4 +/* 0AFD68 7F07B238 10000016 */ b .L7F07B294 +/* 0AFD6C 7F07B23C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AFD70 7F07B240 24010004 */ li $at, 4 +.L7F07B244: +/* 0AFD74 7F07B244 10410012 */ beq $v0, $at, .L7F07B290 +/* 0AFD78 7F07B248 24010005 */ li $at, 5 +/* 0AFD7C 7F07B24C 54410006 */ bnel $v0, $at, .L7F07B268 +/* 0AFD80 7F07B250 24010006 */ li $at, 6 +/* 0AFD84 7F07B254 0FC1EA6E */ jal set_camera_mode +/* 0AFD88 7F07B258 24040006 */ li $a0, 6 +/* 0AFD8C 7F07B25C 1000000D */ b .L7F07B294 +/* 0AFD90 7F07B260 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AFD94 7F07B264 24010006 */ li $at, 6 +.L7F07B268: +/* 0AFD98 7F07B268 14410009 */ bne $v0, $at, .L7F07B290 +/* 0AFD9C 7F07B26C 3C028003 */ lui $v0, %hi(D_80036510) +/* 0AFDA0 7F07B270 24426510 */ addiu $v0, %lo(D_80036510) # addiu $v0, $v0, 0x6510 +/* 0AFDA4 7F07B274 8C4E0000 */ lw $t6, ($v0) +/* 0AFDA8 7F07B278 25CF0001 */ addiu $t7, $t6, 1 +/* 0AFDAC 7F07B27C 29E10003 */ slti $at, $t7, 3 +/* 0AFDB0 7F07B280 10200003 */ beqz $at, .L7F07B290 +/* 0AFDB4 7F07B284 AC4F0000 */ sw $t7, ($v0) +/* 0AFDB8 7F07B288 0FC1EA6E */ jal set_camera_mode +/* 0AFDBC 7F07B28C 24040005 */ li $a0, 5 +.L7F07B290: +/* 0AFDC0 7F07B290 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07B294: +/* 0AFDC4 7F07B294 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0AFDC8 7F07B298 03E00008 */ jr $ra +/* 0AFDCC 7F07B29C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07B2A0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07B2A0 +/* 0AFDD0 7F07B2A0 3C088003 */ lui $t0, %hi(D_800364AC) +/* 0AFDD4 7F07B2A4 8D0864AC */ lw $t0, %lo(D_800364AC)($t0) +/* 0AFDD8 7F07B2A8 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 0AFDDC 7F07B2AC 00046140 */ sll $t4, $a0, 5 +/* 0AFDE0 7F07B2B0 AFBF002C */ sw $ra, 0x2c($sp) +/* 0AFDE4 7F07B2B4 AFB00028 */ sw $s0, 0x28($sp) +/* 0AFDE8 7F07B2B8 AFA60098 */ sw $a2, 0x98($sp) +/* 0AFDEC 7F07B2BC 010C5821 */ addu $t3, $t0, $t4 +/* 0AFDF0 7F07B2C0 44801000 */ mtc1 $zero, $f2 +/* 0AFDF4 7F07B2C4 C5600018 */ lwc1 $f0, 0x18($t3) +/* 0AFDF8 7F07B2C8 00E08025 */ move $s0, $a3 +/* 0AFDFC 7F07B2CC 44856000 */ mtc1 $a1, $f12 +/* 0AFE00 7F07B2D0 4600103C */ c.lt.s $f2, $f0 +/* 0AFE04 7F07B2D4 00047140 */ sll $t6, $a0, 5 +/* 0AFE08 7F07B2D8 27A50054 */ addiu $a1, $sp, 0x54 +/* 0AFE0C 7F07B2DC 2406FFFF */ li $a2, -1 +/* 0AFE10 7F07B2E0 45000002 */ bc1f .L7F07B2EC +/* 0AFE14 7F07B2E4 01C83821 */ addu $a3, $t6, $t0 +/* 0AFE18 7F07B2E8 46006083 */ div.s $f2, $f12, $f0 +.L7F07B2EC: +/* 0AFE1C 7F07B2EC 3C098008 */ lui $t1, %hi(pPlayer) +/* 0AFE20 7F07B2F0 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0AFE24 7F07B2F4 240A0003 */ li $t2, 3 +.L7F07B2F8: +/* 0AFE28 7F07B2F8 00067940 */ sll $t7, $a2, 5 +/* 0AFE2C 7F07B2FC 01E72021 */ addu $a0, $t7, $a3 +/* 0AFE30 7F07B300 00E01025 */ move $v0, $a3 +/* 0AFE34 7F07B304 04C10008 */ bgez $a2, .L7F07B328 +/* 0AFE38 7F07B308 00801825 */ move $v1, $a0 +/* 0AFE3C 7F07B30C 0088082B */ sltu $at, $a0, $t0 +/* 0AFE40 7F07B310 10200003 */ beqz $at, .L7F07B320 +/* 0AFE44 7F07B314 00000000 */ nop +/* 0AFE48 7F07B318 1000000E */ b .L7F07B354 +/* 0AFE4C 7F07B31C 01001025 */ move $v0, $t0 +.L7F07B320: +/* 0AFE50 7F07B320 1000000C */ b .L7F07B354 +/* 0AFE54 7F07B324 00601025 */ move $v0, $v1 +.L7F07B328: +/* 0AFE58 7F07B328 0044082B */ sltu $at, $v0, $a0 +/* 0AFE5C 7F07B32C 5020000A */ beql $at, $zero, .L7F07B358 +/* 0AFE60 7F07B330 8C4D0004 */ lw $t5, 4($v0) +/* 0AFE64 7F07B334 8C580024 */ lw $t8, 0x24($v0) +.L7F07B338: +/* 0AFE68 7F07B338 33190001 */ andi $t9, $t8, 1 +/* 0AFE6C 7F07B33C 57200006 */ bnezl $t9, .L7F07B358 +/* 0AFE70 7F07B340 8C4D0004 */ lw $t5, 4($v0) +/* 0AFE74 7F07B344 24420020 */ addiu $v0, $v0, 0x20 +/* 0AFE78 7F07B348 0043082B */ sltu $at, $v0, $v1 +/* 0AFE7C 7F07B34C 5420FFFA */ bnezl $at, .L7F07B338 +/* 0AFE80 7F07B350 8C580024 */ lw $t8, 0x24($v0) +.L7F07B354: +/* 0AFE84 7F07B354 8C4D0004 */ lw $t5, 4($v0) +.L7F07B358: +/* 0AFE88 7F07B358 24C60001 */ addiu $a2, $a2, 1 +/* 0AFE8C 7F07B35C 31AE0002 */ andi $t6, $t5, 2 +/* 0AFE90 7F07B360 51C00018 */ beql $t6, $zero, .L7F07B3C4 +/* 0AFE94 7F07B364 C4500008 */ lwc1 $f16, 8($v0) +/* 0AFE98 7F07B368 8D230000 */ lw $v1, ($t1) +/* 0AFE9C 7F07B36C C4460008 */ lwc1 $f6, 8($v0) +/* 0AFEA0 7F07B370 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 0AFEA4 7F07B374 C46404A0 */ lwc1 $f4, 0x4a0($v1) +/* 0AFEA8 7F07B378 C4700498 */ lwc1 $f16, 0x498($v1) +/* 0AFEAC 7F07B37C 46062202 */ mul.s $f8, $f4, $f6 +/* 0AFEB0 7F07B380 00000000 */ nop +/* 0AFEB4 7F07B384 46105482 */ mul.s $f18, $f10, $f16 +/* 0AFEB8 7F07B388 46124100 */ add.s $f4, $f8, $f18 +/* 0AFEBC 7F07B38C E4A4000C */ swc1 $f4, 0xc($a1) +/* 0AFEC0 7F07B390 C446000C */ lwc1 $f6, 0xc($v0) +/* 0AFEC4 7F07B394 E4A60010 */ swc1 $f6, 0x10($a1) +/* 0AFEC8 7F07B398 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 0AFECC 7F07B39C C47004A0 */ lwc1 $f16, 0x4a0($v1) +/* 0AFED0 7F07B3A0 C4440008 */ lwc1 $f4, 8($v0) +/* 0AFED4 7F07B3A4 C4720498 */ lwc1 $f18, 0x498($v1) +/* 0AFED8 7F07B3A8 46105202 */ mul.s $f8, $f10, $f16 +/* 0AFEDC 7F07B3AC 00000000 */ nop +/* 0AFEE0 7F07B3B0 46049182 */ mul.s $f6, $f18, $f4 +/* 0AFEE4 7F07B3B4 46064281 */ sub.s $f10, $f8, $f6 +/* 0AFEE8 7F07B3B8 10000007 */ b .L7F07B3D8 +/* 0AFEEC 7F07B3BC E4AA0014 */ swc1 $f10, 0x14($a1) +/* 0AFEF0 7F07B3C0 C4500008 */ lwc1 $f16, 8($v0) +.L7F07B3C4: +/* 0AFEF4 7F07B3C4 E4B0000C */ swc1 $f16, 0xc($a1) +/* 0AFEF8 7F07B3C8 C452000C */ lwc1 $f18, 0xc($v0) +/* 0AFEFC 7F07B3CC E4B20010 */ swc1 $f18, 0x10($a1) +/* 0AFF00 7F07B3D0 C4440010 */ lwc1 $f4, 0x10($v0) +/* 0AFF04 7F07B3D4 E4A40014 */ swc1 $f4, 0x14($a1) +.L7F07B3D8: +/* 0AFF08 7F07B3D8 14CAFFC7 */ bne $a2, $t2, .L7F07B2F8 +/* 0AFF0C 7F07B3DC 24A5000C */ addiu $a1, $a1, 0xc +/* 0AFF10 7F07B3E0 C5600014 */ lwc1 $f0, 0x14($t3) +/* 0AFF14 7F07B3E4 8FAF0098 */ lw $t7, 0x98($sp) +/* 0AFF18 7F07B3E8 E7A20058 */ swc1 $f2, 0x58($sp) +/* 0AFF1C 7F07B3EC AFAC0040 */ sw $t4, 0x40($sp) +/* 0AFF20 7F07B3F0 E7A20010 */ swc1 $f2, 0x10($sp) +/* 0AFF24 7F07B3F4 27A40060 */ addiu $a0, $sp, 0x60 +/* 0AFF28 7F07B3F8 27A5006C */ addiu $a1, $sp, 0x6c +/* 0AFF2C 7F07B3FC 27A60078 */ addiu $a2, $sp, 0x78 +/* 0AFF30 7F07B400 27A70084 */ addiu $a3, $sp, 0x84 +/* 0AFF34 7F07B404 E7A00014 */ swc1 $f0, 0x14($sp) +/* 0AFF38 7F07B408 0FC16C09 */ jal sub_GAME_7F05B024 +/* 0AFF3C 7F07B40C AFAF0018 */ sw $t7, 0x18($sp) +/* 0AFF40 7F07B410 3C098008 */ lui $t1, %hi(pPlayer) +/* 0AFF44 7F07B414 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0AFF48 7F07B418 8FA20098 */ lw $v0, 0x98($sp) +/* 0AFF4C 7F07B41C 8D380000 */ lw $t8, ($t1) +/* 0AFF50 7F07B420 8FAC0040 */ lw $t4, 0x40($sp) +/* 0AFF54 7F07B424 C4480000 */ lwc1 $f8, ($v0) +/* 0AFF58 7F07B428 C70603C4 */ lwc1 $f6, 0x3c4($t8) +/* 0AFF5C 7F07B42C C7A20058 */ lwc1 $f2, 0x58($sp) +/* 0AFF60 7F07B430 C4500004 */ lwc1 $f16, 4($v0) +/* 0AFF64 7F07B434 46064280 */ add.s $f10, $f8, $f6 +/* 0AFF68 7F07B438 C4480008 */ lwc1 $f8, 8($v0) +/* 0AFF6C 7F07B43C 44807000 */ mtc1 $zero, $f14 +/* 0AFF70 7F07B440 E44A0000 */ swc1 $f10, ($v0) +/* 0AFF74 7F07B444 8D390000 */ lw $t9, ($t1) +/* 0AFF78 7F07B448 C73203C8 */ lwc1 $f18, 0x3c8($t9) +/* 0AFF7C 7F07B44C 3C198003 */ lui $t9, %hi(D_800364AC) +/* 0AFF80 7F07B450 46128100 */ add.s $f4, $f16, $f18 +/* 0AFF84 7F07B454 E4440004 */ swc1 $f4, 4($v0) +/* 0AFF88 7F07B458 8D2D0000 */ lw $t5, ($t1) +/* 0AFF8C 7F07B45C C5A603CC */ lwc1 $f6, 0x3cc($t5) +/* 0AFF90 7F07B460 46064280 */ add.s $f10, $f8, $f6 +/* 0AFF94 7F07B464 E44A0008 */ swc1 $f10, 8($v0) +/* 0AFF98 7F07B468 8D2E0000 */ lw $t6, ($t1) +/* 0AFF9C 7F07B46C C5D003C4 */ lwc1 $f16, 0x3c4($t6) +/* 0AFFA0 7F07B470 E6100000 */ swc1 $f16, ($s0) +/* 0AFFA4 7F07B474 8D2F0000 */ lw $t7, ($t1) +/* 0AFFA8 7F07B478 C5F203C8 */ lwc1 $f18, 0x3c8($t7) +/* 0AFFAC 7F07B47C E6120004 */ swc1 $f18, 4($s0) +/* 0AFFB0 7F07B480 8D380000 */ lw $t8, ($t1) +/* 0AFFB4 7F07B484 C70403CC */ lwc1 $f4, 0x3cc($t8) +/* 0AFFB8 7F07B488 E6040008 */ swc1 $f4, 8($s0) +/* 0AFFBC 7F07B48C 8F3964AC */ lw $t9, %lo(D_800364AC)($t9) +/* 0AFFC0 7F07B490 032C5821 */ addu $t3, $t9, $t4 +/* 0AFFC4 7F07B494 8D6D0004 */ lw $t5, 4($t3) +/* 0AFFC8 7F07B498 31AE0004 */ andi $t6, $t5, 4 +/* 0AFFCC 7F07B49C 55C0000E */ bnezl $t6, .L7F07B4D8 +/* 0AFFD0 7F07B4A0 8D790024 */ lw $t9, 0x24($t3) +/* 0AFFD4 7F07B4A4 8D6F0024 */ lw $t7, 0x24($t3) +/* 0AFFD8 7F07B4A8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AFFDC 7F07B4AC 31F80004 */ andi $t8, $t7, 4 +/* 0AFFE0 7F07B4B0 57000006 */ bnezl $t8, .L7F07B4CC +/* 0AFFE4 7F07B4B4 44814000 */ mtc1 $at, $f8 +/* 0AFFE8 7F07B4B8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AFFEC 7F07B4BC 44810000 */ mtc1 $at, $f0 +/* 0AFFF0 7F07B4C0 1000000C */ b .L7F07B4F4 +/* 0AFFF4 7F07B4C4 8D2E0000 */ lw $t6, ($t1) +/* 0AFFF8 7F07B4C8 44814000 */ mtc1 $at, $f8 +.L7F07B4CC: +/* 0AFFFC 7F07B4CC 10000008 */ b .L7F07B4F0 +/* 0B0000 7F07B4D0 46024001 */ sub.s $f0, $f8, $f2 +/* 0B0004 7F07B4D4 8D790024 */ lw $t9, 0x24($t3) +.L7F07B4D8: +/* 0B0008 7F07B4D8 332D0004 */ andi $t5, $t9, 4 +/* 0B000C 7F07B4DC 51A00004 */ beql $t5, $zero, .L7F07B4F0 +/* 0B0010 7F07B4E0 46001006 */ mov.s $f0, $f2 +/* 0B0014 7F07B4E4 10000002 */ b .L7F07B4F0 +/* 0B0018 7F07B4E8 46007006 */ mov.s $f0, $f14 +/* 0B001C 7F07B4EC 46001006 */ mov.s $f0, $f2 +.L7F07B4F0: +/* 0B0020 7F07B4F0 8D2E0000 */ lw $t6, ($t1) +.L7F07B4F4: +/* 0B0024 7F07B4F4 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B0028 7F07B4F8 44811000 */ mtc1 $at, $f2 +/* 0B002C 7F07B4FC C5CA04C0 */ lwc1 $f10, 0x4c0($t6) +/* 0B0030 7F07B500 C6060000 */ lwc1 $f6, ($s0) +/* 0B0034 7F07B504 C6080004 */ lwc1 $f8, 4($s0) +/* 0B0038 7F07B508 46025402 */ mul.s $f16, $f10, $f2 +/* 0B003C 7F07B50C 00000000 */ nop +/* 0B0040 7F07B510 46008482 */ mul.s $f18, $f16, $f0 +/* 0B0044 7F07B514 46123100 */ add.s $f4, $f6, $f18 +/* 0B0048 7F07B518 E6040000 */ swc1 $f4, ($s0) +/* 0B004C 7F07B51C 8D2F0000 */ lw $t7, ($t1) +/* 0B0050 7F07B520 C6040008 */ lwc1 $f4, 8($s0) +/* 0B0054 7F07B524 C5EA04C4 */ lwc1 $f10, 0x4c4($t7) +/* 0B0058 7F07B528 46025402 */ mul.s $f16, $f10, $f2 +/* 0B005C 7F07B52C 00000000 */ nop +/* 0B0060 7F07B530 46008182 */ mul.s $f6, $f16, $f0 +/* 0B0064 7F07B534 46064480 */ add.s $f18, $f8, $f6 +/* 0B0068 7F07B538 E6120004 */ swc1 $f18, 4($s0) +/* 0B006C 7F07B53C 8D380000 */ lw $t8, ($t1) +/* 0B0070 7F07B540 C70A04C8 */ lwc1 $f10, 0x4c8($t8) +/* 0B0074 7F07B544 46025402 */ mul.s $f16, $f10, $f2 +/* 0B0078 7F07B548 00000000 */ nop +/* 0B007C 7F07B54C 46008202 */ mul.s $f8, $f16, $f0 +/* 0B0080 7F07B550 46082180 */ add.s $f6, $f4, $f8 +/* 0B0084 7F07B554 E6060008 */ swc1 $f6, 8($s0) +/* 0B0088 7F07B558 8FBF002C */ lw $ra, 0x2c($sp) +/* 0B008C 7F07B55C 8FB00028 */ lw $s0, 0x28($sp) +/* 0B0090 7F07B560 27BD0090 */ addiu $sp, $sp, 0x90 +/* 0B0094 7F07B564 03E00008 */ jr $ra +/* 0B0098 7F07B568 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07B56C(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80055044 +.word 0x43338000 /*179.5*/ +glabel D_80055048 +.word 0x3dcccccd /*0.1*/ +glabel D_8005504C +.word 0x3c75c28f /*0.015*/ +glabel D_80055050 +.word 0x40490fdb /*3.1415927*/ +glabel D_80055054 +.word 0x3da3d70a /*0.079999998*/ +glabel D_80055058 +.word 0x3da3d70a /*0.079999998*/ +glabel D_8005505C +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F07B56C +/* 0B009C 7F07B56C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0B00A0 7F07B570 3C028003 */ lui $v0, %hi(cameramode) +/* 0B00A4 7F07B574 8C426494 */ lw $v0, %lo(cameramode)($v0) +/* 0B00A8 7F07B578 240B0001 */ li $t3, 1 +/* 0B00AC 7F07B57C AFBF0014 */ sw $ra, 0x14($sp) +/* 0B00B0 7F07B580 AFA40040 */ sw $a0, 0x40($sp) +/* 0B00B4 7F07B584 AFA50044 */ sw $a1, 0x44($sp) +/* 0B00B8 7F07B588 AFA60048 */ sw $a2, 0x48($sp) +/* 0B00BC 7F07B58C 11620004 */ beq $t3, $v0, .L7F07B5A0 +/* 0B00C0 7F07B590 AFA7004C */ sw $a3, 0x4c($sp) +/* 0B00C4 7F07B594 24050002 */ li $a1, 2 +/* 0B00C8 7F07B598 14A200AF */ bne $a1, $v0, .L7F07B858 +/* 0B00CC 7F07B59C 24010009 */ li $at, 9 +.L7F07B5A0: +/* 0B00D0 7F07B5A0 15620059 */ bne $t3, $v0, .L7F07B708 +/* 0B00D4 7F07B5A4 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B00D8 7F07B5A8 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B00DC 7F07B5AC 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B00E0 7F07B5B0 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 0B00E4 7F07B5B4 44810000 */ mtc1 $at, $f0 +/* 0B00E8 7F07B5B8 C5420000 */ lwc1 $f2, ($t2) +/* 0B00EC 7F07B5BC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B00F0 7F07B5C0 4600103C */ c.lt.s $f2, $f0 +/* 0B00F4 7F07B5C4 00000000 */ nop +/* 0B00F8 7F07B5C8 45000014 */ bc1f .L7F07B61C +/* 0B00FC 7F07B5CC 00000000 */ nop +/* 0B0100 7F07B5D0 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B0104 7F07B5D4 3C048004 */ lui $a0, %hi(ptrSecondFontTableLarge) +/* 0B0108 7F07B5D8 3C058004 */ lui $a1, %hi(ptrFirstFontTableLarge) +/* 0B010C 7F07B5DC 46041180 */ add.s $f6, $f2, $f4 +/* 0B0110 7F07B5E0 4606003E */ c.le.s $f0, $f6 +/* 0B0114 7F07B5E4 00000000 */ nop +/* 0B0118 7F07B5E8 4500000C */ bc1f .L7F07B61C +/* 0B011C 7F07B5EC 00000000 */ nop +/* 0B0120 7F07B5F0 8C840EB8 */ lw $a0, %lo(ptrSecondFontTableLarge)($a0) +/* 0B0124 7F07B5F4 0FC228ED */ jal sub_GAME_7F08A3B4 +/* 0B0128 7F07B5F8 8CA50EB4 */ lw $a1, %lo(ptrFirstFontTableLarge)($a1) +/* 0B012C 7F07B5FC 3C0E8003 */ lui $t6, %hi(ptr_random06cam_entry) +/* 0B0130 7F07B600 8DCE64C0 */ lw $t6, %lo(ptr_random06cam_entry)($t6) +/* 0B0134 7F07B604 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0B0138 7F07B608 8DC4001C */ lw $a0, 0x1c($t6) +/* 0B013C 7F07B60C 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B0140 7F07B610 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B0144 7F07B614 C5420000 */ lwc1 $f2, ($t2) +/* 0B0148 7F07B618 240B0001 */ li $t3, 1 +.L7F07B61C: +/* 0B014C 7F07B61C 3C0F8003 */ lui $t7, %hi(ptr_random06cam_entry) +/* 0B0150 7F07B620 8DEF64C0 */ lw $t7, %lo(ptr_random06cam_entry)($t7) +/* 0B0154 7F07B624 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B0158 7F07B628 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B015C 7F07B62C 8DE40020 */ lw $a0, 0x20($t7) +/* 0B0160 7F07B630 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0B0164 7F07B634 46081000 */ add.s $f0, $f2, $f8 +/* 0B0168 7F07B638 5080001F */ beql $a0, $zero, .L7F07B6B8 +/* 0B016C 7F07B63C 44816000 */ mtc1 $at, $f12 +/* 0B0170 7F07B640 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0B0174 7F07B644 44816000 */ mtc1 $at, $f12 +/* 0B0178 7F07B648 00000000 */ nop +/* 0B017C 7F07B64C 460C103C */ c.lt.s $f2, $f12 +/* 0B0180 7F07B650 00000000 */ nop +/* 0B0184 7F07B654 4502000F */ bc1fl .L7F07B694 +/* 0B0188 7F07B658 3C0143F0 */ lui $at, 0x43f0 +/* 0B018C 7F07B65C 4600603E */ c.le.s $f12, $f0 +/* 0B0190 7F07B660 00000000 */ nop +/* 0B0194 7F07B664 4502000B */ bc1fl .L7F07B694 +/* 0B0198 7F07B668 3C0143F0 */ lui $at, 0x43f0 +/* 0B019C 7F07B66C 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0B01A0 7F07B670 00000000 */ nop +/* 0B01A4 7F07B674 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B01A8 7F07B678 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B01AC 7F07B67C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B01B0 7F07B680 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 0B01B4 7F07B684 C5420000 */ lwc1 $f2, ($t2) +/* 0B01B8 7F07B688 240B0001 */ li $t3, 1 +/* 0B01BC 7F07B68C 460A1000 */ add.s $f0, $f2, $f10 +/* 0B01C0 7F07B690 3C0143F0 */ li $at, 0x43F00000 # 480.000000 +.L7F07B694: +/* 0B01C4 7F07B694 44812000 */ mtc1 $at, $f4 +/* 0B01C8 7F07B698 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B01CC 7F07B69C 4602203C */ c.lt.s $f4, $f2 +/* 0B01D0 7F07B6A0 00000000 */ nop +/* 0B01D4 7F07B6A4 4500000A */ bc1f .L7F07B6D0 +/* 0B01D8 7F07B6A8 00000000 */ nop +/* 0B01DC 7F07B6AC 10000008 */ b .L7F07B6D0 +/* 0B01E0 7F07B6B0 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B01E4 7F07B6B4 44816000 */ mtc1 $at, $f12 +.L7F07B6B8: +/* 0B01E8 7F07B6B8 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B01EC 7F07B6BC 4602603C */ c.lt.s $f12, $f2 +/* 0B01F0 7F07B6C0 00000000 */ nop +/* 0B01F4 7F07B6C4 45000002 */ bc1f .L7F07B6D0 +/* 0B01F8 7F07B6C8 00000000 */ nop +/* 0B01FC 7F07B6CC AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +.L7F07B6D0: +/* 0B0200 7F07B6D0 0FC2FF01 */ jal get_controls_locked_flag +/* 0B0204 7F07B6D4 E5400000 */ swc1 $f0, ($t2) +/* 0B0208 7F07B6D8 14400015 */ bnez $v0, .L7F07B730 +/* 0B020C 7F07B6DC 240B0001 */ li $t3, 1 +/* 0B0210 7F07B6E0 97B90046 */ lhu $t9, 0x46($sp) +/* 0B0214 7F07B6E4 97B80042 */ lhu $t8, 0x42($sp) +/* 0B0218 7F07B6E8 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B021C 7F07B6EC 03206027 */ not $t4, $t9 +/* 0B0220 7F07B6F0 030C6824 */ and $t5, $t8, $t4 +/* 0B0224 7F07B6F4 31AEF030 */ andi $t6, $t5, 0xf030 +/* 0B0228 7F07B6F8 11C0000D */ beqz $t6, .L7F07B730 +/* 0B022C 7F07B6FC 00000000 */ nop +/* 0B0230 7F07B700 1000000B */ b .L7F07B730 +/* 0B0234 7F07B704 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +.L7F07B708: +/* 0B0238 7F07B708 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B023C 7F07B70C 8D2F0000 */ lw $t7, ($t1) +/* 0B0240 7F07B710 44807000 */ mtc1 $zero, $f14 +/* 0B0244 7F07B714 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B0248 7F07B718 C5E603E4 */ lwc1 $f6, 0x3e4($t7) +/* 0B024C 7F07B71C 460E303C */ c.lt.s $f6, $f14 +/* 0B0250 7F07B720 00000000 */ nop +/* 0B0254 7F07B724 45000002 */ bc1f .L7F07B730 +/* 0B0258 7F07B728 00000000 */ nop +/* 0B025C 7F07B72C AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +.L7F07B730: +/* 0B0260 7F07B730 3C028003 */ lui $v0, %hi(ptr_random06cam_entry) +/* 0B0264 7F07B734 244264C0 */ addiu $v0, %lo(ptr_random06cam_entry) # addiu $v0, $v0, 0x64c0 +/* 0B0268 7F07B738 8C590000 */ lw $t9, ($v0) +/* 0B026C 7F07B73C 8FB80048 */ lw $t8, 0x48($sp) +/* 0B0270 7F07B740 C7280004 */ lwc1 $f8, 4($t9) +/* 0B0274 7F07B744 E7080000 */ swc1 $f8, ($t8) +/* 0B0278 7F07B748 8C4C0000 */ lw $t4, ($v0) +/* 0B027C 7F07B74C C58A0008 */ lwc1 $f10, 8($t4) +/* 0B0280 7F07B750 E70A0004 */ swc1 $f10, 4($t8) +/* 0B0284 7F07B754 8C4D0000 */ lw $t5, ($v0) +/* 0B0288 7F07B758 C5A4000C */ lwc1 $f4, 0xc($t5) +/* 0B028C 7F07B75C E7040008 */ swc1 $f4, 8($t8) +/* 0B0290 7F07B760 8C4E0000 */ lw $t6, ($v0) +/* 0B0294 7F07B764 0FC15FA8 */ jal cosf +/* 0B0298 7F07B768 C5CC0014 */ lwc1 $f12, 0x14($t6) +/* 0B029C 7F07B76C 3C0F8003 */ lui $t7, %hi(ptr_random06cam_entry) +/* 0B02A0 7F07B770 8DEF64C0 */ lw $t7, %lo(ptr_random06cam_entry)($t7) +/* 0B02A4 7F07B774 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B02A8 7F07B778 0FC15FAB */ jal sinf +/* 0B02AC 7F07B77C C5EC0010 */ lwc1 $f12, 0x10($t7) +/* 0B02B0 7F07B780 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 0B02B4 7F07B784 8FB90048 */ lw $t9, 0x48($sp) +/* 0B02B8 7F07B788 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B02BC 7F07B78C 46060202 */ mul.s $f8, $f0, $f6 +/* 0B02C0 7F07B790 C72A0000 */ lwc1 $f10, ($t9) +/* 0B02C4 7F07B794 3C0D8003 */ lui $t5, %hi(ptr_random06cam_entry) +/* 0B02C8 7F07B798 460A4100 */ add.s $f4, $f8, $f10 +/* 0B02CC 7F07B79C E5840000 */ swc1 $f4, ($t4) +/* 0B02D0 7F07B7A0 8DAD64C0 */ lw $t5, %lo(ptr_random06cam_entry)($t5) +/* 0B02D4 7F07B7A4 0FC15FAB */ jal sinf +/* 0B02D8 7F07B7A8 C5AC0014 */ lwc1 $f12, 0x14($t5) +/* 0B02DC 7F07B7AC 8FB80048 */ lw $t8, 0x48($sp) +/* 0B02E0 7F07B7B0 8FAE004C */ lw $t6, 0x4c($sp) +/* 0B02E4 7F07B7B4 3C0F8003 */ lui $t7, %hi(ptr_random06cam_entry) +/* 0B02E8 7F07B7B8 C7060004 */ lwc1 $f6, 4($t8) +/* 0B02EC 7F07B7BC 46060200 */ add.s $f8, $f0, $f6 +/* 0B02F0 7F07B7C0 E5C80004 */ swc1 $f8, 4($t6) +/* 0B02F4 7F07B7C4 8DEF64C0 */ lw $t7, %lo(ptr_random06cam_entry)($t7) +/* 0B02F8 7F07B7C8 0FC15FA8 */ jal cosf +/* 0B02FC 7F07B7CC C5EC0014 */ lwc1 $f12, 0x14($t7) +/* 0B0300 7F07B7D0 3C198003 */ lui $t9, %hi(ptr_random06cam_entry) +/* 0B0304 7F07B7D4 8F3964C0 */ lw $t9, %lo(ptr_random06cam_entry)($t9) +/* 0B0308 7F07B7D8 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B030C 7F07B7DC 0FC15FA8 */ jal cosf +/* 0B0310 7F07B7E0 C72C0010 */ lwc1 $f12, 0x10($t9) +/* 0B0314 7F07B7E4 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B0318 7F07B7E8 8FAC0048 */ lw $t4, 0x48($sp) +/* 0B031C 7F07B7EC 8FAD004C */ lw $t5, 0x4c($sp) +/* 0B0320 7F07B7F0 46040182 */ mul.s $f6, $f0, $f4 +/* 0B0324 7F07B7F4 C58A0008 */ lwc1 $f10, 8($t4) +/* 0B0328 7F07B7F8 8FA30058 */ lw $v1, 0x58($sp) +/* 0B032C 7F07B7FC 3C188003 */ lui $t8, %hi(ptr_random06cam_entry) +/* 0B0330 7F07B800 3C198007 */ lui $t9, %hi(ptr_0xxxpresets) +/* 0B0334 7F07B804 46065201 */ sub.s $f8, $f10, $f6 +/* 0B0338 7F07B808 E5A80008 */ swc1 $f8, 8($t5) +/* 0B033C 7F07B80C 8F1864C0 */ lw $t8, %lo(ptr_random06cam_entry)($t8) +/* 0B0340 7F07B810 8F395D18 */ lw $t9, %lo(ptr_0xxxpresets)($t9) +/* 0B0344 7F07B814 8FAD0054 */ lw $t5, 0x54($sp) +/* 0B0348 7F07B818 8F0E0018 */ lw $t6, 0x18($t8) +/* 0B034C 7F07B81C 000E7880 */ sll $t7, $t6, 2 +/* 0B0350 7F07B820 01EE7823 */ subu $t7, $t7, $t6 +/* 0B0354 7F07B824 000F7880 */ sll $t7, $t7, 2 +/* 0B0358 7F07B828 01EE7823 */ subu $t7, $t7, $t6 +/* 0B035C 7F07B82C 000F7880 */ sll $t7, $t7, 2 +/* 0B0360 7F07B830 01F91021 */ addu $v0, $t7, $t9 +/* 0B0364 7F07B834 8C4C0028 */ lw $t4, 0x28($v0) +/* 0B0368 7F07B838 ADAC0000 */ sw $t4, ($t5) +/* 0B036C 7F07B83C C4440000 */ lwc1 $f4, ($v0) +/* 0B0370 7F07B840 E4640000 */ swc1 $f4, ($v1) +/* 0B0374 7F07B844 C44A0004 */ lwc1 $f10, 4($v0) +/* 0B0378 7F07B848 E46A0004 */ swc1 $f10, 4($v1) +/* 0B037C 7F07B84C C4460008 */ lwc1 $f6, 8($v0) +/* 0B0380 7F07B850 10000337 */ b .L7F07C530 +/* 0B0384 7F07B854 E4660008 */ swc1 $f6, 8($v1) +.L7F07B858: +/* 0B0388 7F07B858 544100B3 */ bnel $v0, $at, .L7F07BB28 +/* 0B038C 7F07B85C 24010003 */ li $at, 3 +/* 0B0390 7F07B860 0FC26C54 */ jal get_cur_playernum +/* 0B0394 7F07B864 00000000 */ nop +/* 0B0398 7F07B868 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 0B039C 7F07B86C 00402025 */ move $a0, $v0 +/* 0B03A0 7F07B870 14400054 */ bnez $v0, .L7F07B9C4 +/* 0B03A4 7F07B874 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B03A8 7F07B878 3C078005 */ lui $a3, %hi(clock_timer) +/* 0B03AC 7F07B87C 8CE78374 */ lw $a3, %lo(clock_timer)($a3) +/* 0B03B0 7F07B880 00001825 */ move $v1, $zero +/* 0B03B4 7F07B884 3C018008 */ lui $at, %hi(flt_CODE_bss_80079E08) +/* 0B03B8 7F07B888 18E0004E */ blez $a3, .L7F07B9C4 +/* 0B03BC 7F07B88C 3C068008 */ lui $a2, %hi(flt_CODE_bss_80079E04) +/* 0B03C0 7F07B890 C42C9E08 */ lwc1 $f12, %lo(flt_CODE_bss_80079E08)($at) +/* 0B03C4 7F07B894 3C018005 */ lui $at, %hi(D_80055044) +/* 0B03C8 7F07B898 C4325044 */ lwc1 $f18, %lo(D_80055044)($at) +/* 0B03CC 7F07B89C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B03D0 7F07B8A0 44818000 */ mtc1 $at, $f16 +/* 0B03D4 7F07B8A4 3C018005 */ lui $at, %hi(D_80055048) +/* 0B03D8 7F07B8A8 3C058008 */ lui $a1, %hi(flt_CODE_bss_80079E0C) +/* 0B03DC 7F07B8AC 3C048008 */ lui $a0, %hi(flt_CODE_bss_80079E08) +/* 0B03E0 7F07B8B0 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079E10) +/* 0B03E4 7F07B8B4 24429E10 */ addiu $v0, %lo(flt_CODE_bss_80079E10) # addiu $v0, $v0, -0x61f0 +/* 0B03E8 7F07B8B8 24849E08 */ addiu $a0, %lo(flt_CODE_bss_80079E08) # addiu $a0, $a0, -0x61f8 +/* 0B03EC 7F07B8BC 24A59E0C */ addiu $a1, %lo(flt_CODE_bss_80079E0C) # addiu $a1, $a1, -0x61f4 +/* 0B03F0 7F07B8C0 C42E5048 */ lwc1 $f14, %lo(D_80055048)($at) +/* 0B03F4 7F07B8C4 24C69E04 */ addiu $a2, %lo(flt_CODE_bss_80079E04) # addiu $a2, $a2, -0x61fc +/* 0B03F8 7F07B8C8 4612603C */ c.lt.s $f12, $f18 +.L7F07B8CC: +/* 0B03FC 7F07B8CC 24630001 */ addiu $v1, $v1, 1 +/* 0B0400 7F07B8D0 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0B0404 7F07B8D4 45020017 */ bc1fl .L7F07B934 +/* 0B0408 7F07B8D8 44812000 */ mtc1 $at, $f4 +/* 0B040C 7F07B8DC 3C01C1A0 */ li $at, 0xC1A00000 # -20.000000 +/* 0B0410 7F07B8E0 44814000 */ mtc1 $at, $f8 +/* 0B0414 7F07B8E4 3C0142DC */ li $at, 0x42DC0000 # 110.000000 +/* 0B0418 7F07B8E8 44815000 */ mtc1 $at, $f10 +/* 0B041C 7F07B8EC 4608603C */ c.lt.s $f12, $f8 +/* 0B0420 7F07B8F0 C4C00000 */ lwc1 $f0, ($a2) +/* 0B0424 7F07B8F4 45020005 */ bc1fl .L7F07B90C +/* 0B0428 7F07B8F8 460C503C */ c.lt.s $f10, $f12 +/* 0B042C 7F07B8FC 460E0100 */ add.s $f4, $f0, $f14 +/* 0B0430 7F07B900 E4C40000 */ swc1 $f4, ($a2) +/* 0B0434 7F07B904 C4C00000 */ lwc1 $f0, ($a2) +/* 0B0438 7F07B908 460C503C */ c.lt.s $f10, $f12 +.L7F07B90C: +/* 0B043C 7F07B90C 00000000 */ nop +/* 0B0440 7F07B910 45020005 */ bc1fl .L7F07B928 +/* 0B0444 7F07B914 46006200 */ add.s $f8, $f12, $f0 +/* 0B0448 7F07B918 460E0181 */ sub.s $f6, $f0, $f14 +/* 0B044C 7F07B91C E4C60000 */ swc1 $f6, ($a2) +/* 0B0450 7F07B920 C4C00000 */ lwc1 $f0, ($a2) +/* 0B0454 7F07B924 46006200 */ add.s $f8, $f12, $f0 +.L7F07B928: +/* 0B0458 7F07B928 10000004 */ b .L7F07B93C +/* 0B045C 7F07B92C E4880000 */ swc1 $f8, ($a0) +/* 0B0460 7F07B930 44812000 */ mtc1 $at, $f4 +.L7F07B934: +/* 0B0464 7F07B934 00000000 */ nop +/* 0B0468 7F07B938 E4840000 */ swc1 $f4, ($a0) +.L7F07B93C: +/* 0B046C 7F07B93C 3C0142A0 */ li $at, 0x42A00000 # 80.000000 +/* 0B0470 7F07B940 44815000 */ mtc1 $at, $f10 +/* 0B0474 7F07B944 C48C0000 */ lwc1 $f12, ($a0) +/* 0B0478 7F07B948 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B047C 7F07B94C 460C503C */ c.lt.s $f10, $f12 +/* 0B0480 7F07B950 00000000 */ nop +/* 0B0484 7F07B954 45020019 */ bc1fl .L7F07B9BC +/* 0B0488 7F07B958 0067082A */ slt $at, $v1, $a3 +/* 0B048C 7F07B95C C4400000 */ lwc1 $f0, ($v0) +/* 0B0490 7F07B960 44813000 */ mtc1 $at, $f6 +/* 0B0494 7F07B964 C4A20000 */ lwc1 $f2, ($a1) +/* 0B0498 7F07B968 3C018005 */ lui $at, %hi(D_8005504C) +/* 0B049C 7F07B96C 4600303C */ c.lt.s $f6, $f0 +/* 0B04A0 7F07B970 00000000 */ nop +/* 0B04A4 7F07B974 45000004 */ bc1f .L7F07B988 +/* 0B04A8 7F07B978 00000000 */ nop +/* 0B04AC 7F07B97C 460E1201 */ sub.s $f8, $f2, $f14 +/* 0B04B0 7F07B980 10000004 */ b .L7F07B994 +/* 0B04B4 7F07B984 E4A80000 */ swc1 $f8, ($a1) +.L7F07B988: +/* 0B04B8 7F07B988 C424504C */ lwc1 $f4, %lo(D_8005504C)($at) +/* 0B04BC 7F07B98C 46041280 */ add.s $f10, $f2, $f4 +/* 0B04C0 7F07B990 E4AA0000 */ swc1 $f10, ($a1) +.L7F07B994: +/* 0B04C4 7F07B994 C4A60000 */ lwc1 $f6, ($a1) +/* 0B04C8 7F07B998 46060200 */ add.s $f8, $f0, $f6 +/* 0B04CC 7F07B99C E4480000 */ swc1 $f8, ($v0) +/* 0B04D0 7F07B9A0 C4440000 */ lwc1 $f4, ($v0) +/* 0B04D4 7F07B9A4 4610203C */ c.lt.s $f4, $f16 +/* 0B04D8 7F07B9A8 00000000 */ nop +/* 0B04DC 7F07B9AC 45020003 */ bc1fl .L7F07B9BC +/* 0B04E0 7F07B9B0 0067082A */ slt $at, $v1, $a3 +/* 0B04E4 7F07B9B4 E4500000 */ swc1 $f16, ($v0) +/* 0B04E8 7F07B9B8 0067082A */ slt $at, $v1, $a3 +.L7F07B9BC: +/* 0B04EC 7F07B9BC 5420FFC3 */ bnezl $at, .L7F07B8CC +/* 0B04F0 7F07B9C0 4612603C */ c.lt.s $f12, $f18 +.L7F07B9C4: +/* 0B04F4 7F07B9C4 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B04F8 7F07B9C8 8D380000 */ lw $t8, ($t1) +/* 0B04FC 7F07B9CC 3C048008 */ lui $a0, %hi(flt_CODE_bss_80079E08) +/* 0B0500 7F07B9D0 24849E08 */ addiu $a0, %lo(flt_CODE_bss_80079E08) # addiu $a0, $a0, -0x61f8 +/* 0B0504 7F07B9D4 C48A0000 */ lwc1 $f10, ($a0) +/* 0B0508 7F07B9D8 C7060148 */ lwc1 $f6, 0x148($t8) +/* 0B050C 7F07B9DC 3C018005 */ lui $at, %hi(D_80055050) +/* 0B0510 7F07B9E0 C4245050 */ lwc1 $f4, %lo(D_80055050)($at) +/* 0B0514 7F07B9E4 46065201 */ sub.s $f8, $f10, $f6 +/* 0B0518 7F07B9E8 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0B051C 7F07B9EC 44813000 */ mtc1 $at, $f6 +/* 0B0520 7F07B9F0 46044282 */ mul.s $f10, $f8, $f4 +/* 0B0524 7F07B9F4 46065303 */ div.s $f12, $f10, $f6 +/* 0B0528 7F07B9F8 0FC15FAB */ jal sinf +/* 0B052C 7F07B9FC E7AC0038 */ swc1 $f12, 0x38($sp) +/* 0B0530 7F07BA00 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079E10) +/* 0B0534 7F07BA04 24429E10 */ addiu $v0, %lo(flt_CODE_bss_80079E10) # addiu $v0, $v0, -0x61f0 +/* 0B0538 7F07BA08 C4480000 */ lwc1 $f8, ($v0) +/* 0B053C 7F07BA0C 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0540 7F07BA10 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0544 7F07BA14 46080102 */ mul.s $f4, $f0, $f8 +/* 0B0548 7F07BA18 8D2E0000 */ lw $t6, ($t1) +/* 0B054C 7F07BA1C 8FA30048 */ lw $v1, 0x48($sp) +/* 0B0550 7F07BA20 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 0B0554 7F07BA24 C5CA04B4 */ lwc1 $f10, 0x4b4($t6) +/* 0B0558 7F07BA28 3C018005 */ lui $at, %hi(D_80055054) +/* 0B055C 7F07BA2C 460A2180 */ add.s $f6, $f4, $f10 +/* 0B0560 7F07BA30 E4660000 */ swc1 $f6, ($v1) +/* 0B0564 7F07BA34 C4245054 */ lwc1 $f4, %lo(D_80055054)($at) +/* 0B0568 7F07BA38 C4480000 */ lwc1 $f8, ($v0) +/* 0B056C 7F07BA3C 8D2F0000 */ lw $t7, ($t1) +/* 0B0570 7F07BA40 46044282 */ mul.s $f10, $f8, $f4 +/* 0B0574 7F07BA44 C5E604B8 */ lwc1 $f6, 0x4b8($t7) +/* 0B0578 7F07BA48 460A3200 */ add.s $f8, $f6, $f10 +/* 0B057C 7F07BA4C 0FC15FA8 */ jal cosf +/* 0B0580 7F07BA50 E4680004 */ swc1 $f8, 4($v1) +/* 0B0584 7F07BA54 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079E10) +/* 0B0588 7F07BA58 24429E10 */ addiu $v0, %lo(flt_CODE_bss_80079E10) # addiu $v0, $v0, -0x61f0 +/* 0B058C 7F07BA5C C4440000 */ lwc1 $f4, ($v0) +/* 0B0590 7F07BA60 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0594 7F07BA64 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0598 7F07BA68 46040182 */ mul.s $f6, $f0, $f4 +/* 0B059C 7F07BA6C 8D390000 */ lw $t9, ($t1) +/* 0B05A0 7F07BA70 8FAC0048 */ lw $t4, 0x48($sp) +/* 0B05A4 7F07BA74 8FA30058 */ lw $v1, 0x58($sp) +/* 0B05A8 7F07BA78 C72A04BC */ lwc1 $f10, 0x4bc($t9) +/* 0B05AC 7F07BA7C 8FA4004C */ lw $a0, 0x4c($sp) +/* 0B05B0 7F07BA80 3C018005 */ lui $at, %hi(D_80055058) +/* 0B05B4 7F07BA84 460A3200 */ add.s $f8, $f6, $f10 +/* 0B05B8 7F07BA88 240B0001 */ li $t3, 1 +/* 0B05BC 7F07BA8C E5880008 */ swc1 $f8, 8($t4) +/* 0B05C0 7F07BA90 8D2D0000 */ lw $t5, ($t1) +/* 0B05C4 7F07BA94 C5A404B4 */ lwc1 $f4, 0x4b4($t5) +/* 0B05C8 7F07BA98 E4840000 */ swc1 $f4, ($a0) +/* 0B05CC 7F07BA9C 8D380000 */ lw $t8, ($t1) +/* 0B05D0 7F07BAA0 C70604B8 */ lwc1 $f6, 0x4b8($t8) +/* 0B05D4 7F07BAA4 E4860004 */ swc1 $f6, 4($a0) +/* 0B05D8 7F07BAA8 8D2E0000 */ lw $t6, ($t1) +/* 0B05DC 7F07BAAC C5CA04BC */ lwc1 $f10, 0x4bc($t6) +/* 0B05E0 7F07BAB0 E48A0008 */ swc1 $f10, 8($a0) +/* 0B05E4 7F07BAB4 8D2F0000 */ lw $t7, ($t1) +/* 0B05E8 7F07BAB8 8FAD0054 */ lw $t5, 0x54($sp) +/* 0B05EC 7F07BABC 8DF900A8 */ lw $t9, 0xa8($t7) +/* 0B05F0 7F07BAC0 8F2C0014 */ lw $t4, 0x14($t9) +/* 0B05F4 7F07BAC4 ADAC0000 */ sw $t4, ($t5) +/* 0B05F8 7F07BAC8 8D380000 */ lw $t8, ($t1) +/* 0B05FC 7F07BACC C70804B4 */ lwc1 $f8, 0x4b4($t8) +/* 0B0600 7F07BAD0 E4680000 */ swc1 $f8, ($v1) +/* 0B0604 7F07BAD4 C4440000 */ lwc1 $f4, ($v0) +/* 0B0608 7F07BAD8 C4265058 */ lwc1 $f6, %lo(D_80055058)($at) +/* 0B060C 7F07BADC 8D2E0000 */ lw $t6, ($t1) +/* 0B0610 7F07BAE0 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0B0614 7F07BAE4 46062282 */ mul.s $f10, $f4, $f6 +/* 0B0618 7F07BAE8 C5C804B8 */ lwc1 $f8, 0x4b8($t6) +/* 0B061C 7F07BAEC 460A4100 */ add.s $f4, $f8, $f10 +/* 0B0620 7F07BAF0 44815000 */ mtc1 $at, $f10 +/* 0B0624 7F07BAF4 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B0628 7F07BAF8 E4640004 */ swc1 $f4, 4($v1) +/* 0B062C 7F07BAFC 8D2F0000 */ lw $t7, ($t1) +/* 0B0630 7F07BB00 C5E604BC */ lwc1 $f6, 0x4bc($t7) +/* 0B0634 7F07BB04 E4660008 */ swc1 $f6, 8($v1) +/* 0B0638 7F07BB08 C4480000 */ lwc1 $f8, ($v0) +/* 0B063C 7F07BB0C 460A403C */ c.lt.s $f8, $f10 +/* 0B0640 7F07BB10 00000000 */ nop +/* 0B0644 7F07BB14 45020287 */ bc1fl .L7F07C534 +/* 0B0648 7F07BB18 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B064C 7F07BB1C 10000284 */ b .L7F07C530 +/* 0B0650 7F07BB20 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B0654 7F07BB24 24010003 */ li $at, 3 +.L7F07BB28: +/* 0B0658 7F07BB28 144100CB */ bne $v0, $at, .L7F07BE58 +/* 0B065C 7F07BB2C 24030005 */ li $v1, 5 +/* 0B0660 7F07BB30 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B0664 7F07BB34 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B0668 7F07BB38 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B066C 7F07BB3C C4328378 */ lwc1 $f18, %lo(global_timer_delta)($at) +/* 0B0670 7F07BB40 C5440000 */ lwc1 $f4, ($t2) +/* 0B0674 7F07BB44 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B0678 7F07BB48 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +/* 0B067C 7F07BB4C 46122180 */ add.s $f6, $f4, $f18 +/* 0B0680 7F07BB50 8D030000 */ lw $v1, ($t0) +/* 0B0684 7F07BB54 3C048003 */ lui $a0, %hi(D_800364AC) +/* 0B0688 7F07BB58 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B068C 7F07BB5C E5460000 */ swc1 $f6, ($t2) +/* 0B0690 7F07BB60 8C8464AC */ lw $a0, %lo(D_800364AC)($a0) +/* 0B0694 7F07BB64 0003C940 */ sll $t9, $v1, 5 +/* 0B0698 7F07BB68 C5420000 */ lwc1 $f2, ($t2) +/* 0B069C 7F07BB6C 00991021 */ addu $v0, $a0, $t9 +/* 0B06A0 7F07BB70 C4400018 */ lwc1 $f0, 0x18($v0) +/* 0B06A4 7F07BB74 4602003E */ c.le.s $f0, $f2 +/* 0B06A8 7F07BB78 00000000 */ nop +/* 0B06AC 7F07BB7C 45020019 */ bc1fl .L7F07BBE4 +/* 0B06B0 7F07BB80 24650001 */ addiu $a1, $v1, 1 +/* 0B06B4 7F07BB84 8C4C0064 */ lw $t4, 0x64($v0) +.L7F07BB88: +/* 0B06B8 7F07BB88 318D0001 */ andi $t5, $t4, 1 +/* 0B06BC 7F07BB8C 55A00007 */ bnezl $t5, .L7F07BBAC +/* 0B06C0 7F07BB90 E5400000 */ swc1 $f0, ($t2) +/* 0B06C4 7F07BB94 46001201 */ sub.s $f8, $f2, $f0 +/* 0B06C8 7F07BB98 24780001 */ addiu $t8, $v1, 1 +/* 0B06CC 7F07BB9C AD180000 */ sw $t8, ($t0) +/* 0B06D0 7F07BBA0 10000006 */ b .L7F07BBBC +/* 0B06D4 7F07BBA4 E5480000 */ swc1 $f8, ($t2) +/* 0B06D8 7F07BBA8 E5400000 */ swc1 $f0, ($t2) +.L7F07BBAC: +/* 0B06DC 7F07BBAC AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B06E0 7F07BBB0 C4400018 */ lwc1 $f0, 0x18($v0) +/* 0B06E4 7F07BBB4 1000000A */ b .L7F07BBE0 +/* 0B06E8 7F07BBB8 C5420000 */ lwc1 $f2, ($t2) +.L7F07BBBC: +/* 0B06EC 7F07BBBC 8D030000 */ lw $v1, ($t0) +/* 0B06F0 7F07BBC0 C5420000 */ lwc1 $f2, ($t2) +/* 0B06F4 7F07BBC4 00037140 */ sll $t6, $v1, 5 +/* 0B06F8 7F07BBC8 008E1021 */ addu $v0, $a0, $t6 +/* 0B06FC 7F07BBCC C4400018 */ lwc1 $f0, 0x18($v0) +/* 0B0700 7F07BBD0 4602003E */ c.le.s $f0, $f2 +/* 0B0704 7F07BBD4 00000000 */ nop +/* 0B0708 7F07BBD8 4503FFEB */ bc1tl .L7F07BB88 +/* 0B070C 7F07BBDC 8C4C0064 */ lw $t4, 0x64($v0) +.L7F07BBE0: +/* 0B0710 7F07BBE0 24650001 */ addiu $a1, $v1, 1 +.L7F07BBE4: +/* 0B0714 7F07BBE4 00057940 */ sll $t7, $a1, 5 +/* 0B0718 7F07BBE8 008F1021 */ addu $v0, $a0, $t7 +/* 0B071C 7F07BBEC 8C590044 */ lw $t9, 0x44($v0) +/* 0B0720 7F07BBF0 46020281 */ sub.s $f10, $f0, $f2 +/* 0B0724 7F07BBF4 44807000 */ mtc1 $zero, $f14 +/* 0B0728 7F07BBF8 332C0001 */ andi $t4, $t9, 1 +/* 0B072C 7F07BBFC 15800007 */ bnez $t4, .L7F07BC1C +/* 0B0730 7F07BC00 460A7400 */ add.s $f16, $f14, $f10 +.L7F07BC04: +/* 0B0734 7F07BC04 8C4D0064 */ lw $t5, 0x64($v0) +/* 0B0738 7F07BC08 C4440018 */ lwc1 $f4, 0x18($v0) +/* 0B073C 7F07BC0C 24420020 */ addiu $v0, $v0, 0x20 +/* 0B0740 7F07BC10 31B80001 */ andi $t8, $t5, 1 +/* 0B0744 7F07BC14 1300FFFB */ beqz $t8, .L7F07BC04 +/* 0B0748 7F07BC18 46048400 */ add.s $f16, $f16, $f4 +.L7F07BC1C: +/* 0B074C 7F07BC1C 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B0750 7F07BC20 44816000 */ mtc1 $at, $f12 +/* 0B0754 7F07BC24 00000000 */ nop +/* 0B0758 7F07BC28 460C803C */ c.lt.s $f16, $f12 +/* 0B075C 7F07BC2C 00000000 */ nop +/* 0B0760 7F07BC30 4500000D */ bc1f .L7F07BC68 +/* 0B0764 7F07BC34 00000000 */ nop +/* 0B0768 7F07BC38 46128180 */ add.s $f6, $f16, $f18 +/* 0B076C 7F07BC3C 4606603E */ c.le.s $f12, $f6 +/* 0B0770 7F07BC40 00000000 */ nop +/* 0B0774 7F07BC44 45000008 */ bc1f .L7F07BC68 +/* 0B0778 7F07BC48 00000000 */ nop +/* 0B077C 7F07BC4C 0FC20284 */ jal set_curplayer_fade +/* 0B0780 7F07BC50 E7B00030 */ swc1 $f16, 0x30($sp) +/* 0B0784 7F07BC54 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B0788 7F07BC58 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B078C 7F07BC5C 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B0790 7F07BC60 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +/* 0B0794 7F07BC64 C7B00030 */ lwc1 $f16, 0x30($sp) +.L7F07BC68: +/* 0B0798 7F07BC68 3C0E8003 */ lui $t6, %hi(D_8003649C) +/* 0B079C 7F07BC6C 8DCE649C */ lw $t6, %lo(D_8003649C)($t6) +/* 0B07A0 7F07BC70 51C0000D */ beql $t6, $zero, .L7F07BCA8 +/* 0B07A4 7F07BC74 3C014270 */ lui $at, 0x4270 +/* 0B07A8 7F07BC78 0FC20223 */ jal check_if_fade_to_black_complete +/* 0B07AC 7F07BC7C E7B00030 */ swc1 $f16, 0x30($sp) +/* 0B07B0 7F07BC80 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B07B4 7F07BC84 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B07B8 7F07BC88 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B07BC 7F07BC8C 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +/* 0B07C0 7F07BC90 240B0001 */ li $t3, 1 +/* 0B07C4 7F07BC94 10400003 */ beqz $v0, .L7F07BCA4 +/* 0B07C8 7F07BC98 C7B00030 */ lwc1 $f16, 0x30($sp) +/* 0B07CC 7F07BC9C 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B07D0 7F07BCA0 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +.L7F07BCA4: +/* 0B07D4 7F07BCA4 3C014270 */ li $at, 0x42700000 # 60.000000 +.L7F07BCA8: +/* 0B07D8 7F07BCA8 44814000 */ mtc1 $at, $f8 +/* 0B07DC 7F07BCAC 3C0F8003 */ lui $t7, %hi(D_8003649C) +/* 0B07E0 7F07BCB0 4610403C */ c.lt.s $f8, $f16 +/* 0B07E4 7F07BCB4 00000000 */ nop +/* 0B07E8 7F07BCB8 45020036 */ bc1fl .L7F07BD94 +/* 0B07EC 7F07BCBC 8D040000 */ lw $a0, ($t0) +/* 0B07F0 7F07BCC0 8DEF649C */ lw $t7, %lo(D_8003649C)($t7) +/* 0B07F4 7F07BCC4 55E00033 */ bnezl $t7, .L7F07BD94 +/* 0B07F8 7F07BCC8 8D040000 */ lw $a0, ($t0) +/* 0B07FC 7F07BCCC 0FC2FF01 */ jal get_controls_locked_flag +/* 0B0800 7F07BCD0 00000000 */ nop +/* 0B0804 7F07BCD4 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B0808 7F07BCD8 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B080C 7F07BCDC 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B0810 7F07BCE0 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +/* 0B0814 7F07BCE4 1440002A */ bnez $v0, .L7F07BD90 +/* 0B0818 7F07BCE8 240B0001 */ li $t3, 1 +/* 0B081C 7F07BCEC 97AC0046 */ lhu $t4, 0x46($sp) +/* 0B0820 7F07BCF0 97B90042 */ lhu $t9, 0x42($sp) +/* 0B0824 7F07BCF4 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0828 7F07BCF8 01806827 */ not $t5, $t4 +/* 0B082C 7F07BCFC 032DC024 */ and $t8, $t9, $t5 +/* 0B0830 7F07BD00 330EF030 */ andi $t6, $t8, 0xf030 +/* 0B0834 7F07BD04 11C00022 */ beqz $t6, .L7F07BD90 +/* 0B0838 7F07BD08 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B083C 7F07BD0C 3C018003 */ lui $at, %hi(D_8003649C) +/* 0B0840 7F07BD10 AC2B649C */ sw $t3, %lo(D_8003649C)($at) +/* 0B0844 7F07BD14 8D2F0000 */ lw $t7, ($t1) +/* 0B0848 7F07BD18 00002025 */ move $a0, $zero +/* 0B084C 7F07BD1C 00002825 */ move $a1, $zero +/* 0B0850 7F07BD20 00003025 */ move $a2, $zero +/* 0B0854 7F07BD24 0FC201EC */ jal set_rgba_tint +/* 0B0858 7F07BD28 8DE703DC */ lw $a3, 0x3dc($t7) +/* 0B085C 7F07BD2C 0FC20223 */ jal check_if_fade_to_black_complete +/* 0B0860 7F07BD30 00000000 */ nop +/* 0B0864 7F07BD34 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0868 7F07BD38 1040000C */ beqz $v0, .L7F07BD6C +/* 0B086C 7F07BD3C 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0870 7F07BD40 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B0874 7F07BD44 44816000 */ mtc1 $at, $f12 +/* 0B0878 7F07BD48 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B087C 7F07BD4C 44817000 */ mtc1 $at, $f14 +/* 0B0880 7F07BD50 0FC20216 */ jal fade_to_over_seconds +/* 0B0884 7F07BD54 00000000 */ nop +/* 0B0888 7F07BD58 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B088C 7F07BD5C 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B0890 7F07BD60 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B0894 7F07BD64 1000000A */ b .L7F07BD90 +/* 0B0898 7F07BD68 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +.L7F07BD6C: +/* 0B089C 7F07BD6C 8D2C0000 */ lw $t4, ($t1) +/* 0B08A0 7F07BD70 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B08A4 7F07BD74 44817000 */ mtc1 $at, $f14 +/* 0B08A8 7F07BD78 0FC20216 */ jal fade_to_over_seconds +/* 0B08AC 7F07BD7C C58C03E0 */ lwc1 $f12, 0x3e0($t4) +/* 0B08B0 7F07BD80 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B08B4 7F07BD84 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B08B8 7F07BD88 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B08BC 7F07BD8C 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +.L7F07BD90: +/* 0B08C0 7F07BD90 8D040000 */ lw $a0, ($t0) +.L7F07BD94: +/* 0B08C4 7F07BD94 8D450000 */ lw $a1, ($t2) +/* 0B08C8 7F07BD98 8FA60048 */ lw $a2, 0x48($sp) +/* 0B08CC 7F07BD9C 0FC1ECA8 */ jal sub_GAME_7F07B2A0 +/* 0B08D0 7F07BDA0 8FA7004C */ lw $a3, 0x4c($sp) +/* 0B08D4 7F07BDA4 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B08D8 7F07BDA8 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +/* 0B08DC 7F07BDAC 8D0D0000 */ lw $t5, ($t0) +/* 0B08E0 7F07BDB0 3C198003 */ lui $t9, %hi(D_800364AC) +/* 0B08E4 7F07BDB4 8F3964AC */ lw $t9, %lo(D_800364AC)($t9) +/* 0B08E8 7F07BDB8 000DC140 */ sll $t8, $t5, 5 +/* 0B08EC 7F07BDBC 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B08F0 7F07BDC0 03387021 */ addu $t6, $t9, $t8 +/* 0B08F4 7F07BDC4 8DC4001C */ lw $a0, 0x1c($t6) +/* 0B08F8 7F07BDC8 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B08FC 7F07BDCC 3C0C8007 */ lui $t4, %hi(ptr_0xxxpresets) +/* 0B0900 7F07BDD0 04800012 */ bltz $a0, .L7F07BE1C +/* 0B0904 7F07BDD4 00047880 */ sll $t7, $a0, 2 +/* 0B0908 7F07BDD8 01E47823 */ subu $t7, $t7, $a0 +/* 0B090C 7F07BDDC 8D8C5D18 */ lw $t4, %lo(ptr_0xxxpresets)($t4) +/* 0B0910 7F07BDE0 000F7880 */ sll $t7, $t7, 2 +/* 0B0914 7F07BDE4 01E47823 */ subu $t7, $t7, $a0 +/* 0B0918 7F07BDE8 000F7880 */ sll $t7, $t7, 2 +/* 0B091C 7F07BDEC 01EC1021 */ addu $v0, $t7, $t4 +/* 0B0920 7F07BDF0 8C4D0028 */ lw $t5, 0x28($v0) +/* 0B0924 7F07BDF4 8FB90054 */ lw $t9, 0x54($sp) +/* 0B0928 7F07BDF8 8FA30058 */ lw $v1, 0x58($sp) +/* 0B092C 7F07BDFC AF2D0000 */ sw $t5, ($t9) +/* 0B0930 7F07BE00 C44A0000 */ lwc1 $f10, ($v0) +/* 0B0934 7F07BE04 E46A0000 */ swc1 $f10, ($v1) +/* 0B0938 7F07BE08 C4440004 */ lwc1 $f4, 4($v0) +/* 0B093C 7F07BE0C E4640004 */ swc1 $f4, 4($v1) +/* 0B0940 7F07BE10 C4460008 */ lwc1 $f6, 8($v0) +/* 0B0944 7F07BE14 100001C6 */ b .L7F07C530 +/* 0B0948 7F07BE18 E4660008 */ swc1 $f6, 8($v1) +.L7F07BE1C: +/* 0B094C 7F07BE1C 8D380000 */ lw $t8, ($t1) +/* 0B0950 7F07BE20 8FAF0054 */ lw $t7, 0x54($sp) +/* 0B0954 7F07BE24 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0958 7F07BE28 8F0E0488 */ lw $t6, 0x488($t8) +/* 0B095C 7F07BE2C ADEE0000 */ sw $t6, ($t7) +/* 0B0960 7F07BE30 8D2C0000 */ lw $t4, ($t1) +/* 0B0964 7F07BE34 C588048C */ lwc1 $f8, 0x48c($t4) +/* 0B0968 7F07BE38 E4680000 */ swc1 $f8, ($v1) +/* 0B096C 7F07BE3C 8D2D0000 */ lw $t5, ($t1) +/* 0B0970 7F07BE40 C5AA0490 */ lwc1 $f10, 0x490($t5) +/* 0B0974 7F07BE44 E46A0004 */ swc1 $f10, 4($v1) +/* 0B0978 7F07BE48 8D390000 */ lw $t9, ($t1) +/* 0B097C 7F07BE4C C7240494 */ lwc1 $f4, 0x494($t9) +/* 0B0980 7F07BE50 100001B7 */ b .L7F07C530 +/* 0B0984 7F07BE54 E4640008 */ swc1 $f4, 8($v1) +.L7F07BE58: +/* 0B0988 7F07BE58 10620003 */ beq $v1, $v0, .L7F07BE68 +/* 0B098C 7F07BE5C 24010006 */ li $at, 6 +/* 0B0990 7F07BE60 5441009C */ bnel $v0, $at, .L7F07C0D4 +/* 0B0994 7F07BE64 24010007 */ li $at, 7 +.L7F07BE68: +/* 0B0998 7F07BE68 1462003F */ bne $v1, $v0, .L7F07BF68 +/* 0B099C 7F07BE6C 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B09A0 7F07BE70 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B09A4 7F07BE74 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B09A8 7F07BE78 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B09AC 7F07BE7C C5460000 */ lwc1 $f6, ($t2) +/* 0B09B0 7F07BE80 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B09B4 7F07BE84 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B09B8 7F07BE88 46083280 */ add.s $f10, $f6, $f8 +/* 0B09BC 7F07BE8C 8D380000 */ lw $t8, ($t1) +/* 0B09C0 7F07BE90 3C014334 */ lui $at, 0x4334 +/* 0B09C4 7F07BE94 E54A0000 */ swc1 $f10, ($t2) +/* 0B09C8 7F07BE98 8F0400D4 */ lw $a0, 0xd4($t8) +/* 0B09CC 7F07BE9C 50800015 */ beql $a0, $zero, .L7F07BEF4 +/* 0B09D0 7F07BEA0 C5460000 */ lwc1 $f6, ($t2) +/* 0B09D4 7F07BEA4 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 0B09D8 7F07BEA8 00000000 */ nop +/* 0B09DC 7F07BEAC 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B09E0 7F07BEB0 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B09E4 7F07BEB4 8D2E0000 */ lw $t6, ($t1) +/* 0B09E8 7F07BEB8 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B09EC 7F07BEBC 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 0B09F0 7F07BEC0 8DC400D4 */ lw $a0, 0xd4($t6) +/* 0B09F4 7F07BEC4 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B09F8 7F07BEC8 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B09FC 7F07BECC 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0A00 7F07BED0 4604003E */ c.le.s $f0, $f4 +/* 0B0A04 7F07BED4 240B0001 */ li $t3, 1 +/* 0B0A08 7F07BED8 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B0A0C 7F07BEDC 45000002 */ bc1f .L7F07BEE8 +/* 0B0A10 7F07BEE0 00000000 */ nop +/* 0B0A14 7F07BEE4 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +.L7F07BEE8: +/* 0B0A18 7F07BEE8 10000009 */ b .L7F07BF10 +/* 0B0A1C 7F07BEEC 24050002 */ li $a1, 2 +/* 0B0A20 7F07BEF0 C5460000 */ lwc1 $f6, ($t2) +.L7F07BEF4: +/* 0B0A24 7F07BEF4 44814000 */ mtc1 $at, $f8 +/* 0B0A28 7F07BEF8 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B0A2C 7F07BEFC 4606403E */ c.le.s $f8, $f6 +/* 0B0A30 7F07BF00 00000000 */ nop +/* 0B0A34 7F07BF04 45020003 */ bc1fl .L7F07BF14 +/* 0B0A38 7F07BF08 97AC0046 */ lhu $t4, 0x46($sp) +/* 0B0A3C 7F07BF0C AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +.L7F07BF10: +/* 0B0A40 7F07BF10 97AC0046 */ lhu $t4, 0x46($sp) +.L7F07BF14: +/* 0B0A44 7F07BF14 97AF0042 */ lhu $t7, 0x42($sp) +/* 0B0A48 7F07BF18 01806827 */ not $t5, $t4 +/* 0B0A4C 7F07BF1C 01EDC824 */ and $t9, $t7, $t5 +/* 0B0A50 7F07BF20 3338F000 */ andi $t8, $t9, 0xf000 +/* 0B0A54 7F07BF24 13000036 */ beqz $t8, .L7F07C000 +/* 0B0A58 7F07BF28 00000000 */ nop +/* 0B0A5C 7F07BF2C 8D220000 */ lw $v0, ($t1) +/* 0B0A60 7F07BF30 8C4E00D8 */ lw $t6, 0xd8($v0) +/* 0B0A64 7F07BF34 11C00032 */ beqz $t6, .L7F07C000 +/* 0B0A68 7F07BF38 00000000 */ nop +/* 0B0A6C 7F07BF3C 8C4C0424 */ lw $t4, 0x424($v0) +/* 0B0A70 7F07BF40 1180002F */ beqz $t4, .L7F07C000 +/* 0B0A74 7F07BF44 00000000 */ nop +/* 0B0A78 7F07BF48 8C4F0428 */ lw $t7, 0x428($v0) +/* 0B0A7C 7F07BF4C 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B0A80 7F07BF50 11E0002B */ beqz $t7, .L7F07C000 +/* 0B0A84 7F07BF54 00000000 */ nop +/* 0B0A88 7F07BF58 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B0A8C 7F07BF5C 3C018003 */ lui $at, %hi(D_80036510) +/* 0B0A90 7F07BF60 10000027 */ b .L7F07C000 +/* 0B0A94 7F07BF64 AC256510 */ sw $a1, %lo(D_80036510)($at) +.L7F07BF68: +/* 0B0A98 7F07BF68 24010006 */ li $at, 6 +/* 0B0A9C 7F07BF6C 14410024 */ bne $v0, $at, .L7F07C000 +/* 0B0AA0 7F07BF70 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B0AA4 7F07BF74 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B0AA8 7F07BF78 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B0AAC 7F07BF7C C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B0AB0 7F07BF80 C54A0000 */ lwc1 $f10, ($t2) +/* 0B0AB4 7F07BF84 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0AB8 7F07BF88 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0ABC 7F07BF8C 46045180 */ add.s $f6, $f10, $f4 +/* 0B0AC0 7F07BF90 8D220000 */ lw $v0, ($t1) +/* 0B0AC4 7F07BF94 44807000 */ mtc1 $zero, $f14 +/* 0B0AC8 7F07BF98 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B0ACC 7F07BF9C E5460000 */ swc1 $f6, ($t2) +/* 0B0AD0 7F07BFA0 C44803E4 */ lwc1 $f8, 0x3e4($v0) +/* 0B0AD4 7F07BFA4 460E403C */ c.lt.s $f8, $f14 +/* 0B0AD8 7F07BFA8 00000000 */ nop +/* 0B0ADC 7F07BFAC 45020003 */ bc1fl .L7F07BFBC +/* 0B0AE0 7F07BFB0 97B90046 */ lhu $t9, 0x46($sp) +/* 0B0AE4 7F07BFB4 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B0AE8 7F07BFB8 97B90046 */ lhu $t9, 0x46($sp) +.L7F07BFBC: +/* 0B0AEC 7F07BFBC 97AD0042 */ lhu $t5, 0x42($sp) +/* 0B0AF0 7F07BFC0 0320C027 */ not $t8, $t9 +/* 0B0AF4 7F07BFC4 01B87024 */ and $t6, $t5, $t8 +/* 0B0AF8 7F07BFC8 31CCF000 */ andi $t4, $t6, 0xf000 +/* 0B0AFC 7F07BFCC 1180000C */ beqz $t4, .L7F07C000 +/* 0B0B00 7F07BFD0 00000000 */ nop +/* 0B0B04 7F07BFD4 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0B0B08 7F07BFD8 11E00009 */ beqz $t7, .L7F07C000 +/* 0B0B0C 7F07BFDC 00000000 */ nop +/* 0B0B10 7F07BFE0 8C590424 */ lw $t9, 0x424($v0) +/* 0B0B14 7F07BFE4 13200006 */ beqz $t9, .L7F07C000 +/* 0B0B18 7F07BFE8 00000000 */ nop +/* 0B0B1C 7F07BFEC 8C4D0428 */ lw $t5, 0x428($v0) +/* 0B0B20 7F07BFF0 3C018003 */ lui $at, %hi(D_80036510) +/* 0B0B24 7F07BFF4 11A00002 */ beqz $t5, .L7F07C000 +/* 0B0B28 7F07BFF8 00000000 */ nop +/* 0B0B2C 7F07BFFC AC256510 */ sw $a1, %lo(D_80036510)($at) +.L7F07C000: +/* 0B0B30 7F07C000 3C038008 */ lui $v1, %hi(flt_CODE_bss_800799E8) +/* 0B0B34 7F07C004 246399E8 */ addiu $v1, %lo(flt_CODE_bss_800799E8) # addiu $v1, $v1, -0x6618 +/* 0B0B38 7F07C008 C46A0000 */ lwc1 $f10, ($v1) +/* 0B0B3C 7F07C00C 8FB80048 */ lw $t8, 0x48($sp) +/* 0B0B40 7F07C010 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0B44 7F07C014 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0B48 7F07C018 E70A0000 */ swc1 $f10, ($t8) +/* 0B0B4C 7F07C01C C4640004 */ lwc1 $f4, 4($v1) +/* 0B0B50 7F07C020 3C058008 */ lui $a1, %hi(dword_CODE_bss_800799F4) +/* 0B0B54 7F07C024 24A599F4 */ addiu $a1, %lo(dword_CODE_bss_800799F4) # addiu $a1, $a1, -0x660c +/* 0B0B58 7F07C028 E7040004 */ swc1 $f4, 4($t8) +/* 0B0B5C 7F07C02C C4660008 */ lwc1 $f6, 8($v1) +/* 0B0B60 7F07C030 E7060008 */ swc1 $f6, 8($t8) +/* 0B0B64 7F07C034 8D220000 */ lw $v0, ($t1) +/* 0B0B68 7F07C038 8CA40000 */ lw $a0, ($a1) +/* 0B0B6C 7F07C03C 8C4E00A8 */ lw $t6, 0xa8($v0) +/* 0B0B70 7F07C040 548E000C */ bnel $a0, $t6, .L7F07C074 +/* 0B0B74 7F07C044 C4860008 */ lwc1 $f6, 8($a0) +/* 0B0B78 7F07C048 C44803C4 */ lwc1 $f8, 0x3c4($v0) +/* 0B0B7C 7F07C04C 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B0B80 7F07C050 E5880000 */ swc1 $f8, ($t4) +/* 0B0B84 7F07C054 8D2F0000 */ lw $t7, ($t1) +/* 0B0B88 7F07C058 C5EA03C8 */ lwc1 $f10, 0x3c8($t7) +/* 0B0B8C 7F07C05C E58A0004 */ swc1 $f10, 4($t4) +/* 0B0B90 7F07C060 8D390000 */ lw $t9, ($t1) +/* 0B0B94 7F07C064 C72403CC */ lwc1 $f4, 0x3cc($t9) +/* 0B0B98 7F07C068 1000000A */ b .L7F07C094 +/* 0B0B9C 7F07C06C E5840008 */ swc1 $f4, 8($t4) +/* 0B0BA0 7F07C070 C4860008 */ lwc1 $f6, 8($a0) +.L7F07C074: +/* 0B0BA4 7F07C074 8FAD004C */ lw $t5, 0x4c($sp) +/* 0B0BA8 7F07C078 E5A60000 */ swc1 $f6, ($t5) +/* 0B0BAC 7F07C07C 8CB80000 */ lw $t8, ($a1) +/* 0B0BB0 7F07C080 C708000C */ lwc1 $f8, 0xc($t8) +/* 0B0BB4 7F07C084 E5A80004 */ swc1 $f8, 4($t5) +/* 0B0BB8 7F07C088 8CAE0000 */ lw $t6, ($a1) +/* 0B0BBC 7F07C08C C5CA0010 */ lwc1 $f10, 0x10($t6) +/* 0B0BC0 7F07C090 E5AA0008 */ swc1 $f10, 8($t5) +.L7F07C094: +/* 0B0BC4 7F07C094 8D2F0000 */ lw $t7, ($t1) +/* 0B0BC8 7F07C098 8FAC0054 */ lw $t4, 0x54($sp) +/* 0B0BCC 7F07C09C 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0BD0 7F07C0A0 8DF90488 */ lw $t9, 0x488($t7) +/* 0B0BD4 7F07C0A4 AD990000 */ sw $t9, ($t4) +/* 0B0BD8 7F07C0A8 8D380000 */ lw $t8, ($t1) +/* 0B0BDC 7F07C0AC C704048C */ lwc1 $f4, 0x48c($t8) +/* 0B0BE0 7F07C0B0 E4640000 */ swc1 $f4, ($v1) +/* 0B0BE4 7F07C0B4 8D2E0000 */ lw $t6, ($t1) +/* 0B0BE8 7F07C0B8 C5C60490 */ lwc1 $f6, 0x490($t6) +/* 0B0BEC 7F07C0BC E4660004 */ swc1 $f6, 4($v1) +/* 0B0BF0 7F07C0C0 8D2D0000 */ lw $t5, ($t1) +/* 0B0BF4 7F07C0C4 C5A80494 */ lwc1 $f8, 0x494($t5) +/* 0B0BF8 7F07C0C8 10000119 */ b .L7F07C530 +/* 0B0BFC 7F07C0CC E4680008 */ swc1 $f8, 8($v1) +/* 0B0C00 7F07C0D0 24010007 */ li $at, 7 +.L7F07C0D4: +/* 0B0C04 7F07C0D4 14410116 */ bne $v0, $at, .L7F07C530 +/* 0B0C08 7F07C0D8 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799F8) +/* 0B0C0C 7F07C0DC 244299F8 */ addiu $v0, %lo(dword_CODE_bss_800799F8) # addiu $v0, $v0, -0x6608 +/* 0B0C10 7F07C0E0 8C440000 */ lw $a0, ($v0) +/* 0B0C14 7F07C0E4 8FAF0048 */ lw $t7, 0x48($sp) +/* 0B0C18 7F07C0E8 10800024 */ beqz $a0, .L7F07C17C +/* 0B0C1C 7F07C0EC 00000000 */ nop +/* 0B0C20 7F07C0F0 C48A0000 */ lwc1 $f10, ($a0) +/* 0B0C24 7F07C0F4 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0C28 7F07C0F8 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0C2C 7F07C0FC E5EA0000 */ swc1 $f10, ($t7) +/* 0B0C30 7F07C100 8C590000 */ lw $t9, ($v0) +/* 0B0C34 7F07C104 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0C38 7F07C108 C7240004 */ lwc1 $f4, 4($t9) +/* 0B0C3C 7F07C10C E5E40004 */ swc1 $f4, 4($t7) +/* 0B0C40 7F07C110 8C4C0000 */ lw $t4, ($v0) +/* 0B0C44 7F07C114 C5860008 */ lwc1 $f6, 8($t4) +/* 0B0C48 7F07C118 E5E60008 */ swc1 $f6, 8($t7) +/* 0B0C4C 7F07C11C 8D380000 */ lw $t8, ($t1) +/* 0B0C50 7F07C120 8FAE004C */ lw $t6, 0x4c($sp) +/* 0B0C54 7F07C124 C70803C4 */ lwc1 $f8, 0x3c4($t8) +/* 0B0C58 7F07C128 E5C80000 */ swc1 $f8, ($t6) +/* 0B0C5C 7F07C12C 8D2D0000 */ lw $t5, ($t1) +/* 0B0C60 7F07C130 C5AA03C8 */ lwc1 $f10, 0x3c8($t5) +/* 0B0C64 7F07C134 E5CA0004 */ swc1 $f10, 4($t6) +/* 0B0C68 7F07C138 8D390000 */ lw $t9, ($t1) +/* 0B0C6C 7F07C13C C72403CC */ lwc1 $f4, 0x3cc($t9) +/* 0B0C70 7F07C140 E5C40008 */ swc1 $f4, 8($t6) +/* 0B0C74 7F07C144 8C4C0000 */ lw $t4, ($v0) +/* 0B0C78 7F07C148 8FB80054 */ lw $t8, 0x54($sp) +/* 0B0C7C 7F07C14C 8D8F0028 */ lw $t7, 0x28($t4) +/* 0B0C80 7F07C150 AF0F0000 */ sw $t7, ($t8) +/* 0B0C84 7F07C154 8C4D0000 */ lw $t5, ($v0) +/* 0B0C88 7F07C158 C5A60000 */ lwc1 $f6, ($t5) +/* 0B0C8C 7F07C15C E4660000 */ swc1 $f6, ($v1) +/* 0B0C90 7F07C160 8C590000 */ lw $t9, ($v0) +/* 0B0C94 7F07C164 C7280004 */ lwc1 $f8, 4($t9) +/* 0B0C98 7F07C168 E4680004 */ swc1 $f8, 4($v1) +/* 0B0C9C 7F07C16C 8C4E0000 */ lw $t6, ($v0) +/* 0B0CA0 7F07C170 C5CA0008 */ lwc1 $f10, 8($t6) +/* 0B0CA4 7F07C174 100000EE */ b .L7F07C530 +/* 0B0CA8 7F07C178 E46A0008 */ swc1 $f10, 8($v1) +.L7F07C17C: +/* 0B0CAC 7F07C17C 3C058008 */ lui $a1, %hi(dword_CODE_bss_800799FC) +/* 0B0CB0 7F07C180 24A599FC */ addiu $a1, %lo(dword_CODE_bss_800799FC) # addiu $a1, $a1, -0x6604 +/* 0B0CB4 7F07C184 8CA40000 */ lw $a0, ($a1) +/* 0B0CB8 7F07C188 10800063 */ beqz $a0, .L7F07C318 +/* 0B0CBC 7F07C18C 00000000 */ nop +/* 0B0CC0 7F07C190 8C830018 */ lw $v1, 0x18($a0) +/* 0B0CC4 7F07C194 3C0D8007 */ lui $t5, %hi(ptr_2xxxpresets) +/* 0B0CC8 7F07C198 8FB90048 */ lw $t9, 0x48($sp) +/* 0B0CCC 7F07C19C 28612710 */ slti $at, $v1, 0x2710 +/* 0B0CD0 7F07C1A0 1020000A */ beqz $at, .L7F07C1CC +/* 0B0CD4 7F07C1A4 0003C100 */ sll $t8, $v1, 4 +/* 0B0CD8 7F07C1A8 00036080 */ sll $t4, $v1, 2 +/* 0B0CDC 7F07C1AC 01836023 */ subu $t4, $t4, $v1 +/* 0B0CE0 7F07C1B0 000C6080 */ sll $t4, $t4, 2 +/* 0B0CE4 7F07C1B4 3C0F8007 */ lui $t7, %hi(ptr_0xxxpresets) +/* 0B0CE8 7F07C1B8 8DEF5D18 */ lw $t7, %lo(ptr_0xxxpresets)($t7) +/* 0B0CEC 7F07C1BC 01836023 */ subu $t4, $t4, $v1 +/* 0B0CF0 7F07C1C0 000C6080 */ sll $t4, $t4, 2 +/* 0B0CF4 7F07C1C4 10000008 */ b .L7F07C1E8 +/* 0B0CF8 7F07C1C8 018F1021 */ addu $v0, $t4, $t7 +.L7F07C1CC: +/* 0B0CFC 7F07C1CC 8DAD5D1C */ lw $t5, %lo(ptr_2xxxpresets)($t5) +/* 0B0D00 7F07C1D0 0303C021 */ addu $t8, $t8, $v1 +/* 0B0D04 7F07C1D4 0018C080 */ sll $t8, $t8, 2 +/* 0B0D08 7F07C1D8 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 0B0D0C 7F07C1DC 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 0B0D10 7F07C1E0 030D1021 */ addu $v0, $t8, $t5 +/* 0B0D14 7F07C1E4 00411021 */ addu $v0, $v0, $at +.L7F07C1E8: +/* 0B0D18 7F07C1E8 C4840004 */ lwc1 $f4, 4($a0) +/* 0B0D1C 7F07C1EC 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0D20 7F07C1F0 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_80079A18) +/* 0B0D24 7F07C1F4 E7240000 */ swc1 $f4, ($t9) +/* 0B0D28 7F07C1F8 8CAE0000 */ lw $t6, ($a1) +/* 0B0D2C 7F07C1FC 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0D30 7F07C200 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0D34 7F07C204 C5C60008 */ lwc1 $f6, 8($t6) +/* 0B0D38 7F07C208 E7260004 */ swc1 $f6, 4($t9) +/* 0B0D3C 7F07C20C 8CAC0000 */ lw $t4, ($a1) +/* 0B0D40 7F07C210 C588000C */ lwc1 $f8, 0xc($t4) +/* 0B0D44 7F07C214 E7280008 */ swc1 $f8, 8($t9) +/* 0B0D48 7F07C218 8FB80054 */ lw $t8, 0x54($sp) +/* 0B0D4C 7F07C21C 8C4F0028 */ lw $t7, 0x28($v0) +/* 0B0D50 7F07C220 AF0F0000 */ sw $t7, ($t8) +/* 0B0D54 7F07C224 C44A0000 */ lwc1 $f10, ($v0) +/* 0B0D58 7F07C228 E46A0000 */ swc1 $f10, ($v1) +/* 0B0D5C 7F07C22C C4440004 */ lwc1 $f4, 4($v0) +/* 0B0D60 7F07C230 E4640004 */ swc1 $f4, 4($v1) +/* 0B0D64 7F07C234 C4460008 */ lwc1 $f6, 8($v0) +/* 0B0D68 7F07C238 E4660008 */ swc1 $f6, 8($v1) +/* 0B0D6C 7F07C23C 8DAD9A18 */ lw $t5, %lo(dword_CODE_bss_80079A18)($t5) +/* 0B0D70 7F07C240 556D000D */ bnel $t3, $t5, .L7F07C278 +/* 0B0D74 7F07C244 8CB80000 */ lw $t8, ($a1) +/* 0B0D78 7F07C248 8D2E0000 */ lw $t6, ($t1) +/* 0B0D7C 7F07C24C 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B0D80 7F07C250 C5C803C4 */ lwc1 $f8, 0x3c4($t6) +/* 0B0D84 7F07C254 E5880000 */ swc1 $f8, ($t4) +/* 0B0D88 7F07C258 8D390000 */ lw $t9, ($t1) +/* 0B0D8C 7F07C25C C72A03C8 */ lwc1 $f10, 0x3c8($t9) +/* 0B0D90 7F07C260 E58A0004 */ swc1 $f10, 4($t4) +/* 0B0D94 7F07C264 8D2F0000 */ lw $t7, ($t1) +/* 0B0D98 7F07C268 C5E403CC */ lwc1 $f4, 0x3cc($t7) +/* 0B0D9C 7F07C26C 100000B0 */ b .L7F07C530 +/* 0B0DA0 7F07C270 E5840008 */ swc1 $f4, 8($t4) +/* 0B0DA4 7F07C274 8CB80000 */ lw $t8, ($a1) +.L7F07C278: +/* 0B0DA8 7F07C278 0FC15FA8 */ jal cosf +/* 0B0DAC 7F07C27C C70C0014 */ lwc1 $f12, 0x14($t8) +/* 0B0DB0 7F07C280 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_800799FC) +/* 0B0DB4 7F07C284 8DAD99FC */ lw $t5, %lo(dword_CODE_bss_800799FC)($t5) +/* 0B0DB8 7F07C288 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B0DBC 7F07C28C 0FC15FAB */ jal sinf +/* 0B0DC0 7F07C290 C5AC0010 */ lwc1 $f12, 0x10($t5) +/* 0B0DC4 7F07C294 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 0B0DC8 7F07C298 8FAE0048 */ lw $t6, 0x48($sp) +/* 0B0DCC 7F07C29C 8FB9004C */ lw $t9, 0x4c($sp) +/* 0B0DD0 7F07C2A0 46060202 */ mul.s $f8, $f0, $f6 +/* 0B0DD4 7F07C2A4 C5CA0000 */ lwc1 $f10, ($t6) +/* 0B0DD8 7F07C2A8 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_800799FC) +/* 0B0DDC 7F07C2AC 460A4100 */ add.s $f4, $f8, $f10 +/* 0B0DE0 7F07C2B0 E7240000 */ swc1 $f4, ($t9) +/* 0B0DE4 7F07C2B4 8DEF99FC */ lw $t7, %lo(dword_CODE_bss_800799FC)($t7) +/* 0B0DE8 7F07C2B8 0FC15FAB */ jal sinf +/* 0B0DEC 7F07C2BC C5EC0014 */ lwc1 $f12, 0x14($t7) +/* 0B0DF0 7F07C2C0 8FAC0048 */ lw $t4, 0x48($sp) +/* 0B0DF4 7F07C2C4 8FB8004C */ lw $t8, 0x4c($sp) +/* 0B0DF8 7F07C2C8 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_800799FC) +/* 0B0DFC 7F07C2CC C5860004 */ lwc1 $f6, 4($t4) +/* 0B0E00 7F07C2D0 46060200 */ add.s $f8, $f0, $f6 +/* 0B0E04 7F07C2D4 E7080004 */ swc1 $f8, 4($t8) +/* 0B0E08 7F07C2D8 8DAD99FC */ lw $t5, %lo(dword_CODE_bss_800799FC)($t5) +/* 0B0E0C 7F07C2DC 0FC15FA8 */ jal cosf +/* 0B0E10 7F07C2E0 C5AC0014 */ lwc1 $f12, 0x14($t5) +/* 0B0E14 7F07C2E4 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_800799FC) +/* 0B0E18 7F07C2E8 8DCE99FC */ lw $t6, %lo(dword_CODE_bss_800799FC)($t6) +/* 0B0E1C 7F07C2EC E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B0E20 7F07C2F0 0FC15FA8 */ jal cosf +/* 0B0E24 7F07C2F4 C5CC0010 */ lwc1 $f12, 0x10($t6) +/* 0B0E28 7F07C2F8 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B0E2C 7F07C2FC 8FB90048 */ lw $t9, 0x48($sp) +/* 0B0E30 7F07C300 8FAF004C */ lw $t7, 0x4c($sp) +/* 0B0E34 7F07C304 46040182 */ mul.s $f6, $f0, $f4 +/* 0B0E38 7F07C308 C72A0008 */ lwc1 $f10, 8($t9) +/* 0B0E3C 7F07C30C 46065201 */ sub.s $f8, $f10, $f6 +/* 0B0E40 7F07C310 10000087 */ b .L7F07C530 +/* 0B0E44 7F07C314 E5E80008 */ swc1 $f8, 8($t7) +.L7F07C318: +/* 0B0E48 7F07C318 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079A14) +/* 0B0E4C 7F07C31C 8C429A14 */ lw $v0, %lo(dword_CODE_bss_80079A14)($v0) +/* 0B0E50 7F07C320 3C0E8007 */ lui $t6, %hi(ptr_2xxxpresets) +/* 0B0E54 7F07C324 8FAF0054 */ lw $t7, 0x54($sp) +/* 0B0E58 7F07C328 28412710 */ slti $at, $v0, 0x2710 +/* 0B0E5C 7F07C32C 1020000A */ beqz $at, .L7F07C358 +/* 0B0E60 7F07C330 00026900 */ sll $t5, $v0, 4 +/* 0B0E64 7F07C334 00026080 */ sll $t4, $v0, 2 +/* 0B0E68 7F07C338 01826023 */ subu $t4, $t4, $v0 +/* 0B0E6C 7F07C33C 000C6080 */ sll $t4, $t4, 2 +/* 0B0E70 7F07C340 3C188007 */ lui $t8, %hi(ptr_0xxxpresets) +/* 0B0E74 7F07C344 8F185D18 */ lw $t8, %lo(ptr_0xxxpresets)($t8) +/* 0B0E78 7F07C348 01826023 */ subu $t4, $t4, $v0 +/* 0B0E7C 7F07C34C 000C6080 */ sll $t4, $t4, 2 +/* 0B0E80 7F07C350 10000008 */ b .L7F07C374 +/* 0B0E84 7F07C354 01982021 */ addu $a0, $t4, $t8 +.L7F07C358: +/* 0B0E88 7F07C358 8DCE5D1C */ lw $t6, %lo(ptr_2xxxpresets)($t6) +/* 0B0E8C 7F07C35C 01A26821 */ addu $t5, $t5, $v0 +/* 0B0E90 7F07C360 000D6880 */ sll $t5, $t5, 2 +/* 0B0E94 7F07C364 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 0B0E98 7F07C368 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 0B0E9C 7F07C36C 01AE2021 */ addu $a0, $t5, $t6 +/* 0B0EA0 7F07C370 00812021 */ addu $a0, $a0, $at +.L7F07C374: +/* 0B0EA4 7F07C374 8C990028 */ lw $t9, 0x28($a0) +/* 0B0EA8 7F07C378 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0EAC 7F07C37C 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0EB0 7F07C380 ADF90000 */ sw $t9, ($t7) +/* 0B0EB4 7F07C384 C4840000 */ lwc1 $f4, ($a0) +/* 0B0EB8 7F07C388 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0EBC 7F07C38C E4640000 */ swc1 $f4, ($v1) +/* 0B0EC0 7F07C390 C48A0004 */ lwc1 $f10, 4($a0) +/* 0B0EC4 7F07C394 E46A0004 */ swc1 $f10, 4($v1) +/* 0B0EC8 7F07C398 C4860008 */ lwc1 $f6, 8($a0) +/* 0B0ECC 7F07C39C E4660008 */ swc1 $f6, 8($v1) +/* 0B0ED0 7F07C3A0 AFA40020 */ sw $a0, 0x20($sp) +/* 0B0ED4 7F07C3A4 0FC15FA8 */ jal cosf +/* 0B0ED8 7F07C3A8 C44C0000 */ lwc1 $f12, ($v0) +/* 0B0EDC 7F07C3AC 8FA40020 */ lw $a0, 0x20($sp) +/* 0B0EE0 7F07C3B0 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B0EE4 7F07C3B4 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A10) +/* 0B0EE8 7F07C3B8 C4880000 */ lwc1 $f8, ($a0) +/* 0B0EEC 7F07C3BC 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0EF0 7F07C3C0 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0EF4 7F07C3C4 E5880000 */ swc1 $f8, ($t4) +/* 0B0EF8 7F07C3C8 C42A9A10 */ lwc1 $f10, %lo(flt_CODE_bss_80079A10)($at) +/* 0B0EFC 7F07C3CC C4840004 */ lwc1 $f4, 4($a0) +/* 0B0F00 7F07C3D0 460A2180 */ add.s $f6, $f4, $f10 +/* 0B0F04 7F07C3D4 E5860004 */ swc1 $f6, 4($t4) +/* 0B0F08 7F07C3D8 0FC15FAB */ jal sinf +/* 0B0F0C 7F07C3DC C44C0000 */ lwc1 $f12, ($v0) +/* 0B0F10 7F07C3E0 8FA40020 */ lw $a0, 0x20($sp) +/* 0B0F14 7F07C3E4 8FB8004C */ lw $t8, 0x4c($sp) +/* 0B0F18 7F07C3E8 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0F1C 7F07C3EC C4880008 */ lwc1 $f8, 8($a0) +/* 0B0F20 7F07C3F0 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0F24 7F07C3F4 E7080008 */ swc1 $f8, 8($t8) +/* 0B0F28 7F07C3F8 0FC15FAB */ jal sinf +/* 0B0F2C 7F07C3FC C44C0000 */ lwc1 $f12, ($v0) +/* 0B0F30 7F07C400 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0F34 7F07C404 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0F38 7F07C408 C44C0000 */ lwc1 $f12, ($v0) +/* 0B0F3C 7F07C40C 0FC15FA8 */ jal cosf +/* 0B0F40 7F07C410 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B0F44 7F07C414 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A08) +/* 0B0F48 7F07C418 C42A9A08 */ lwc1 $f10, %lo(flt_CODE_bss_80079A08)($at) +/* 0B0F4C 7F07C41C C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B0F50 7F07C420 8FA40020 */ lw $a0, 0x20($sp) +/* 0B0F54 7F07C424 8FAD0048 */ lw $t5, 0x48($sp) +/* 0B0F58 7F07C428 460A2182 */ mul.s $f6, $f4, $f10 +/* 0B0F5C 7F07C42C C4880000 */ lwc1 $f8, ($a0) +/* 0B0F60 7F07C430 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A10) +/* 0B0F64 7F07C434 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0F68 7F07C438 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0F6C 7F07C43C 46064100 */ add.s $f4, $f8, $f6 +/* 0B0F70 7F07C440 E5A40000 */ swc1 $f4, ($t5) +/* 0B0F74 7F07C444 C4289A10 */ lwc1 $f8, %lo(flt_CODE_bss_80079A10)($at) +/* 0B0F78 7F07C448 C48A0004 */ lwc1 $f10, 4($a0) +/* 0B0F7C 7F07C44C 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A0C) +/* 0B0F80 7F07C450 C4249A0C */ lwc1 $f4, %lo(flt_CODE_bss_80079A0C)($at) +/* 0B0F84 7F07C454 46085180 */ add.s $f6, $f10, $f8 +/* 0B0F88 7F07C458 46043280 */ add.s $f10, $f6, $f4 +/* 0B0F8C 7F07C45C E5AA0004 */ swc1 $f10, 4($t5) +/* 0B0F90 7F07C460 0FC15FA8 */ jal cosf +/* 0B0F94 7F07C464 C44C0000 */ lwc1 $f12, ($v0) +/* 0B0F98 7F07C468 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0F9C 7F07C46C 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0FA0 7F07C470 C44C0000 */ lwc1 $f12, ($v0) +/* 0B0FA4 7F07C474 0FC15FAB */ jal sinf +/* 0B0FA8 7F07C478 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B0FAC 7F07C47C 3C018005 */ lui $at, %hi(D_8005505C) +/* 0B0FB0 7F07C480 C42C505C */ lwc1 $f12, %lo(D_8005505C)($at) +/* 0B0FB4 7F07C484 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A08) +/* 0B0FB8 7F07C488 C4269A08 */ lwc1 $f6, %lo(flt_CODE_bss_80079A08)($at) +/* 0B0FBC 7F07C48C C7A8001C */ lwc1 $f8, 0x1c($sp) +/* 0B0FC0 7F07C490 8FA40020 */ lw $a0, 0x20($sp) +/* 0B0FC4 7F07C494 8FAE0048 */ lw $t6, 0x48($sp) +/* 0B0FC8 7F07C498 46064102 */ mul.s $f4, $f8, $f6 +/* 0B0FCC 7F07C49C C48A0008 */ lwc1 $f10, 8($a0) +/* 0B0FD0 7F07C4A0 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A04) +/* 0B0FD4 7F07C4A4 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0FD8 7F07C4A8 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0FDC 7F07C4AC 44807000 */ mtc1 $zero, $f14 +/* 0B0FE0 7F07C4B0 46045200 */ add.s $f8, $f10, $f4 +/* 0B0FE4 7F07C4B4 E5C80008 */ swc1 $f8, 8($t6) +/* 0B0FE8 7F07C4B8 C4269A04 */ lwc1 $f6, %lo(flt_CODE_bss_80079A04)($at) +/* 0B0FEC 7F07C4BC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B0FF0 7F07C4C0 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 0B0FF4 7F07C4C4 C4480000 */ lwc1 $f8, ($v0) +/* 0B0FF8 7F07C4C8 460A3102 */ mul.s $f4, $f6, $f10 +/* 0B0FFC 7F07C4CC 46044180 */ add.s $f6, $f8, $f4 +/* 0B1000 7F07C4D0 E4460000 */ swc1 $f6, ($v0) +/* 0B1004 7F07C4D4 C4420000 */ lwc1 $f2, ($v0) +/* 0B1008 7F07C4D8 4602603E */ c.le.s $f12, $f2 +/* 0B100C 7F07C4DC 00000000 */ nop +/* 0B1010 7F07C4E0 45020009 */ bc1fl .L7F07C508 +/* 0B1014 7F07C4E4 460E103C */ c.lt.s $f2, $f14 +/* 0B1018 7F07C4E8 460C1281 */ sub.s $f10, $f2, $f12 +.L7F07C4EC: +/* 0B101C 7F07C4EC E44A0000 */ swc1 $f10, ($v0) +/* 0B1020 7F07C4F0 C4420000 */ lwc1 $f2, ($v0) +/* 0B1024 7F07C4F4 4602603E */ c.le.s $f12, $f2 +/* 0B1028 7F07C4F8 00000000 */ nop +/* 0B102C 7F07C4FC 4503FFFB */ bc1tl .L7F07C4EC +/* 0B1030 7F07C500 460C1281 */ sub.s $f10, $f2, $f12 +/* 0B1034 7F07C504 460E103C */ c.lt.s $f2, $f14 +.L7F07C508: +/* 0B1038 7F07C508 00000000 */ nop +/* 0B103C 7F07C50C 45020009 */ bc1fl .L7F07C534 +/* 0B1040 7F07C510 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B1044 7F07C514 460C1200 */ add.s $f8, $f2, $f12 +.L7F07C518: +/* 0B1048 7F07C518 E4480000 */ swc1 $f8, ($v0) +/* 0B104C 7F07C51C C4420000 */ lwc1 $f2, ($v0) +/* 0B1050 7F07C520 460E103C */ c.lt.s $f2, $f14 +/* 0B1054 7F07C524 00000000 */ nop +/* 0B1058 7F07C528 4503FFFB */ bc1tl .L7F07C518 +/* 0B105C 7F07C52C 460C1200 */ add.s $f8, $f2, $f12 +.L7F07C530: +/* 0B1060 7F07C530 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07C534: +/* 0B1064 7F07C534 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0B1068 7F07C538 03E00008 */ jr $ra +/* 0B106C 7F07C53C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80055044 +.word 0x43338000 /*179.5*/ +glabel D_80055048 +.word 0x3dcccccd /*0.1*/ +glabel D_8005504C +.word 0x3c75c28f /*0.015*/ +glabel D_80055050 +.word 0x40490fdb /*3.1415927*/ +glabel D_80055054 +.word 0x3da3d70a /*0.079999998*/ +glabel D_80055058 +.word 0x3da3d70a /*0.079999998*/ +glabel D_8005505C +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F07B56C +/* 0B06FC 7F07BB8C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0B0700 7F07BB90 3C028003 */ lui $v0, %hi(cameramode) # $v0, 0x8003 +/* 0B0704 7F07BB94 8C4264D4 */ lw $v0, %lo(cameramode)($v0) +/* 0B0708 7F07BB98 240B0001 */ li $t3, 1 +/* 0B070C 7F07BB9C AFBF0014 */ sw $ra, 0x14($sp) +/* 0B0710 7F07BBA0 AFA40040 */ sw $a0, 0x40($sp) +/* 0B0714 7F07BBA4 AFA50044 */ sw $a1, 0x44($sp) +/* 0B0718 7F07BBA8 AFA60048 */ sw $a2, 0x48($sp) +/* 0B071C 7F07BBAC 11620004 */ beq $t3, $v0, .Ljp7F07BBC0 +/* 0B0720 7F07BBB0 AFA7004C */ sw $a3, 0x4c($sp) +/* 0B0724 7F07BBB4 24050002 */ li $a1, 2 +/* 0B0728 7F07BBB8 14A200B0 */ bne $a1, $v0, .Ljp7F07BE7C +/* 0B072C 7F07BBBC 24010009 */ li $at, 9 +.Ljp7F07BBC0: +/* 0B0730 7F07BBC0 1562005A */ bne $t3, $v0, .Ljp7F07BD2C +/* 0B0734 7F07BBC4 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B0738 7F07BBC8 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B073C 7F07BBCC 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B0740 7F07BBD0 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 0B0744 7F07BBD4 44810000 */ mtc1 $at, $f0 +/* 0B0748 7F07BBD8 C5420000 */ lwc1 $f2, ($t2) +/* 0B074C 7F07BBDC 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0B0750 7F07BBE0 4600103C */ c.lt.s $f2, $f0 +/* 0B0754 7F07BBE4 00000000 */ nop +/* 0B0758 7F07BBE8 45000013 */ bc1f .Ljp7F07BC38 +/* 0B075C 7F07BBEC 00000000 */ nop +/* 0B0760 7F07BBF0 C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B0764 7F07BBF4 3C0E8003 */ lui $t6, %hi(ptr_random06cam_entry) # $t6, 0x8003 +/* 0B0768 7F07BBF8 3C058004 */ lui $a1, %hi(ptrSecondFontTableLarge) # $a1, 0x8004 +/* 0B076C 7F07BBFC 46041180 */ add.s $f6, $f2, $f4 +/* 0B0770 7F07BC00 3C068004 */ lui $a2, %hi(ptrFirstFontTableLarge) # $a2, 0x8004 +/* 0B0774 7F07BC04 4606003E */ c.le.s $f0, $f6 +/* 0B0778 7F07BC08 00000000 */ nop +/* 0B077C 7F07BC0C 4500000A */ bc1f .Ljp7F07BC38 +/* 0B0780 7F07BC10 00000000 */ nop +/* 0B0784 7F07BC14 8DCE6500 */ lw $t6, %lo(ptr_random06cam_entry)($t6) +/* 0B0788 7F07BC18 8CA50EE8 */ lw $a1, %lo(ptrSecondFontTableLarge)($a1) +/* 0B078C 7F07BC1C 8CC60EE4 */ lw $a2, %lo(ptrFirstFontTableLarge)($a2) +/* 0B0790 7F07BC20 0FC22AB3 */ jal display_string_in_lower_left_corner +/* 0B0794 7F07BC24 8DC4001C */ lw $a0, 0x1c($t6) +/* 0B0798 7F07BC28 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B079C 7F07BC2C 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B07A0 7F07BC30 C5420000 */ lwc1 $f2, ($t2) +/* 0B07A4 7F07BC34 240B0001 */ li $t3, 1 +.Ljp7F07BC38: +/* 0B07A8 7F07BC38 3C0F8003 */ lui $t7, %hi(ptr_random06cam_entry) # $t7, 0x8003 +/* 0B07AC 7F07BC3C 8DEF6500 */ lw $t7, %lo(ptr_random06cam_entry)($t7) +/* 0B07B0 7F07BC40 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0B07B4 7F07BC44 C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B07B8 7F07BC48 8DE40020 */ lw $a0, 0x20($t7) +/* 0B07BC 7F07BC4C 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0B07C0 7F07BC50 46081000 */ add.s $f0, $f2, $f8 +/* 0B07C4 7F07BC54 50800021 */ beql $a0, $zero, .Ljp7F07BCDC +/* 0B07C8 7F07BC58 44816000 */ mtc1 $at, $f12 +/* 0B07CC 7F07BC5C 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0B07D0 7F07BC60 44816000 */ mtc1 $at, $f12 +/* 0B07D4 7F07BC64 00000000 */ nop +/* 0B07D8 7F07BC68 460C103C */ c.lt.s $f2, $f12 +/* 0B07DC 7F07BC6C 00000000 */ nop +/* 0B07E0 7F07BC70 45020011 */ bc1fl .Ljp7F07BCB8 +/* 0B07E4 7F07BC74 3C0143F0 */ lui $at, 0x43f0 +/* 0B07E8 7F07BC78 4600603E */ c.le.s $f12, $f0 +/* 0B07EC 7F07BC7C 3C058004 */ lui $a1, %hi(ptrSecondFontTableLarge) # $a1, 0x8004 +/* 0B07F0 7F07BC80 3C068004 */ lui $a2, %hi(ptrFirstFontTableLarge) # $a2, 0x8004 +/* 0B07F4 7F07BC84 4502000C */ bc1fl .Ljp7F07BCB8 +/* 0B07F8 7F07BC88 3C0143F0 */ lui $at, 0x43f0 +/* 0B07FC 7F07BC8C 8CA50EE8 */ lw $a1, %lo(ptrSecondFontTableLarge)($a1) +/* 0B0800 7F07BC90 0FC22AB3 */ jal display_string_in_lower_left_corner +/* 0B0804 7F07BC94 8CC60EE4 */ lw $a2, %lo(ptrFirstFontTableLarge)($a2) +/* 0B0808 7F07BC98 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B080C 7F07BC9C 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B0810 7F07BCA0 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0B0814 7F07BCA4 C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 0B0818 7F07BCA8 C5420000 */ lwc1 $f2, ($t2) +/* 0B081C 7F07BCAC 240B0001 */ li $t3, 1 +/* 0B0820 7F07BCB0 460A1000 */ add.s $f0, $f2, $f10 +/* 0B0824 7F07BCB4 3C0143F0 */ li $at, 0x43F00000 # 480.000000 +.Ljp7F07BCB8: +/* 0B0828 7F07BCB8 44812000 */ mtc1 $at, $f4 +/* 0B082C 7F07BCBC 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B0830 7F07BCC0 4602203C */ c.lt.s $f4, $f2 +/* 0B0834 7F07BCC4 00000000 */ nop +/* 0B0838 7F07BCC8 4500000A */ bc1f .Ljp7F07BCF4 +/* 0B083C 7F07BCCC 00000000 */ nop +/* 0B0840 7F07BCD0 10000008 */ b .Ljp7F07BCF4 +/* 0B0844 7F07BCD4 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B0848 7F07BCD8 44816000 */ mtc1 $at, $f12 +.Ljp7F07BCDC: +/* 0B084C 7F07BCDC 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B0850 7F07BCE0 4602603C */ c.lt.s $f12, $f2 +/* 0B0854 7F07BCE4 00000000 */ nop +/* 0B0858 7F07BCE8 45000002 */ bc1f .Ljp7F07BCF4 +/* 0B085C 7F07BCEC 00000000 */ nop +/* 0B0860 7F07BCF0 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +.Ljp7F07BCF4: +/* 0B0864 7F07BCF4 0FC3021B */ jal get_controls_locked_flag +/* 0B0868 7F07BCF8 E5400000 */ swc1 $f0, ($t2) +/* 0B086C 7F07BCFC 14400015 */ bnez $v0, .Ljp7F07BD54 +/* 0B0870 7F07BD00 240B0001 */ li $t3, 1 +/* 0B0874 7F07BD04 97B90046 */ lhu $t9, 0x46($sp) +/* 0B0878 7F07BD08 97B80042 */ lhu $t8, 0x42($sp) +/* 0B087C 7F07BD0C 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B0880 7F07BD10 03206027 */ not $t4, $t9 +/* 0B0884 7F07BD14 030C6824 */ and $t5, $t8, $t4 +/* 0B0888 7F07BD18 31AEF030 */ andi $t6, $t5, 0xf030 +/* 0B088C 7F07BD1C 11C0000D */ beqz $t6, .Ljp7F07BD54 +/* 0B0890 7F07BD20 00000000 */ nop +/* 0B0894 7F07BD24 1000000B */ b .Ljp7F07BD54 +/* 0B0898 7F07BD28 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +.Ljp7F07BD2C: +/* 0B089C 7F07BD2C 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B08A0 7F07BD30 8D2F0000 */ lw $t7, ($t1) +/* 0B08A4 7F07BD34 44807000 */ mtc1 $zero, $f14 +/* 0B08A8 7F07BD38 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B08AC 7F07BD3C C5E603E4 */ lwc1 $f6, 0x3e4($t7) +/* 0B08B0 7F07BD40 460E303C */ c.lt.s $f6, $f14 +/* 0B08B4 7F07BD44 00000000 */ nop +/* 0B08B8 7F07BD48 45000002 */ bc1f .Ljp7F07BD54 +/* 0B08BC 7F07BD4C 00000000 */ nop +/* 0B08C0 7F07BD50 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +.Ljp7F07BD54: +/* 0B08C4 7F07BD54 3C028003 */ lui $v0, %hi(ptr_random06cam_entry) # $v0, 0x8003 +/* 0B08C8 7F07BD58 24426500 */ addiu $v0, %lo(ptr_random06cam_entry) # addiu $v0, $v0, 0x6500 +/* 0B08CC 7F07BD5C 8C590000 */ lw $t9, ($v0) +/* 0B08D0 7F07BD60 8FB80048 */ lw $t8, 0x48($sp) +/* 0B08D4 7F07BD64 C7280004 */ lwc1 $f8, 4($t9) +/* 0B08D8 7F07BD68 E7080000 */ swc1 $f8, ($t8) +/* 0B08DC 7F07BD6C 8C4C0000 */ lw $t4, ($v0) +/* 0B08E0 7F07BD70 C58A0008 */ lwc1 $f10, 8($t4) +/* 0B08E4 7F07BD74 E70A0004 */ swc1 $f10, 4($t8) +/* 0B08E8 7F07BD78 8C4D0000 */ lw $t5, ($v0) +/* 0B08EC 7F07BD7C C5A4000C */ lwc1 $f4, 0xc($t5) +/* 0B08F0 7F07BD80 E7040008 */ swc1 $f4, 8($t8) +/* 0B08F4 7F07BD84 8C4E0000 */ lw $t6, ($v0) +/* 0B08F8 7F07BD88 0FC160F0 */ jal cosf +/* 0B08FC 7F07BD8C C5CC0014 */ lwc1 $f12, 0x14($t6) +/* 0B0900 7F07BD90 3C0F8003 */ lui $t7, %hi(ptr_random06cam_entry) # $t7, 0x8003 +/* 0B0904 7F07BD94 8DEF6500 */ lw $t7, %lo(ptr_random06cam_entry)($t7) +/* 0B0908 7F07BD98 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B090C 7F07BD9C 0FC160F3 */ jal sinf +/* 0B0910 7F07BDA0 C5EC0010 */ lwc1 $f12, 0x10($t7) +/* 0B0914 7F07BDA4 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 0B0918 7F07BDA8 8FB90048 */ lw $t9, 0x48($sp) +/* 0B091C 7F07BDAC 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B0920 7F07BDB0 46060202 */ mul.s $f8, $f0, $f6 +/* 0B0924 7F07BDB4 C72A0000 */ lwc1 $f10, ($t9) +/* 0B0928 7F07BDB8 3C0D8003 */ lui $t5, %hi(ptr_random06cam_entry) # $t5, 0x8003 +/* 0B092C 7F07BDBC 460A4100 */ add.s $f4, $f8, $f10 +/* 0B0930 7F07BDC0 E5840000 */ swc1 $f4, ($t4) +/* 0B0934 7F07BDC4 8DAD6500 */ lw $t5, %lo(ptr_random06cam_entry)($t5) +/* 0B0938 7F07BDC8 0FC160F3 */ jal sinf +/* 0B093C 7F07BDCC C5AC0014 */ lwc1 $f12, 0x14($t5) +/* 0B0940 7F07BDD0 8FB80048 */ lw $t8, 0x48($sp) +/* 0B0944 7F07BDD4 8FAE004C */ lw $t6, 0x4c($sp) +/* 0B0948 7F07BDD8 3C0F8003 */ lui $t7, %hi(ptr_random06cam_entry) # $t7, 0x8003 +/* 0B094C 7F07BDDC C7060004 */ lwc1 $f6, 4($t8) +/* 0B0950 7F07BDE0 46060200 */ add.s $f8, $f0, $f6 +/* 0B0954 7F07BDE4 E5C80004 */ swc1 $f8, 4($t6) +/* 0B0958 7F07BDE8 8DEF6500 */ lw $t7, %lo(ptr_random06cam_entry)($t7) +/* 0B095C 7F07BDEC 0FC160F0 */ jal cosf +/* 0B0960 7F07BDF0 C5EC0014 */ lwc1 $f12, 0x14($t7) +/* 0B0964 7F07BDF4 3C198003 */ lui $t9, %hi(ptr_random06cam_entry) # $t9, 0x8003 +/* 0B0968 7F07BDF8 8F396500 */ lw $t9, %lo(ptr_random06cam_entry)($t9) +/* 0B096C 7F07BDFC E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B0970 7F07BE00 0FC160F0 */ jal cosf +/* 0B0974 7F07BE04 C72C0010 */ lwc1 $f12, 0x10($t9) +/* 0B0978 7F07BE08 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B097C 7F07BE0C 8FAC0048 */ lw $t4, 0x48($sp) +/* 0B0980 7F07BE10 8FAD004C */ lw $t5, 0x4c($sp) +/* 0B0984 7F07BE14 46040182 */ mul.s $f6, $f0, $f4 +/* 0B0988 7F07BE18 C58A0008 */ lwc1 $f10, 8($t4) +/* 0B098C 7F07BE1C 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0990 7F07BE20 3C188003 */ lui $t8, %hi(ptr_random06cam_entry) # $t8, 0x8003 +/* 0B0994 7F07BE24 3C198007 */ lui $t9, %hi(ptr_0xxxpresets) # $t9, 0x8007 +/* 0B0998 7F07BE28 46065201 */ sub.s $f8, $f10, $f6 +/* 0B099C 7F07BE2C E5A80008 */ swc1 $f8, 8($t5) +/* 0B09A0 7F07BE30 8F186500 */ lw $t8, %lo(ptr_random06cam_entry)($t8) +/* 0B09A4 7F07BE34 8F395D58 */ lw $t9, %lo(ptr_0xxxpresets)($t9) +/* 0B09A8 7F07BE38 8FAD0054 */ lw $t5, 0x54($sp) +/* 0B09AC 7F07BE3C 8F0E0018 */ lw $t6, 0x18($t8) +/* 0B09B0 7F07BE40 000E7880 */ sll $t7, $t6, 2 +/* 0B09B4 7F07BE44 01EE7823 */ subu $t7, $t7, $t6 +/* 0B09B8 7F07BE48 000F7880 */ sll $t7, $t7, 2 +/* 0B09BC 7F07BE4C 01EE7823 */ subu $t7, $t7, $t6 +/* 0B09C0 7F07BE50 000F7880 */ sll $t7, $t7, 2 +/* 0B09C4 7F07BE54 01F91021 */ addu $v0, $t7, $t9 +/* 0B09C8 7F07BE58 8C4C0028 */ lw $t4, 0x28($v0) +/* 0B09CC 7F07BE5C ADAC0000 */ sw $t4, ($t5) +/* 0B09D0 7F07BE60 C4440000 */ lwc1 $f4, ($v0) +/* 0B09D4 7F07BE64 E4640000 */ swc1 $f4, ($v1) +/* 0B09D8 7F07BE68 C44A0004 */ lwc1 $f10, 4($v0) +/* 0B09DC 7F07BE6C E46A0004 */ swc1 $f10, 4($v1) +/* 0B09E0 7F07BE70 C4460008 */ lwc1 $f6, 8($v0) +/* 0B09E4 7F07BE74 10000337 */ b .Ljp7F07CB54 +/* 0B09E8 7F07BE78 E4660008 */ swc1 $f6, 8($v1) +.Ljp7F07BE7C: +/* 0B09EC 7F07BE7C 544100B3 */ bnel $v0, $at, .Ljp7F07C14C +/* 0B09F0 7F07BE80 24010003 */ li $at, 3 +/* 0B09F4 7F07BE84 0FC26F3C */ jal get_cur_playernum +/* 0B09F8 7F07BE88 00000000 */ nop +/* 0B09FC 7F07BE8C 0FC2701E */ jal sub_GAME_7F09B4D8 +/* 0B0A00 7F07BE90 00402025 */ move $a0, $v0 +/* 0B0A04 7F07BE94 14400054 */ bnez $v0, .Ljp7F07BFE8 +/* 0B0A08 7F07BE98 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B0A0C 7F07BE9C 3C078005 */ lui $a3, %hi(clock_timer) # $a3, 0x8005 +/* 0B0A10 7F07BEA0 8CE783A4 */ lw $a3, %lo(clock_timer)($a3) +/* 0B0A14 7F07BEA4 00001825 */ move $v1, $zero +/* 0B0A18 7F07BEA8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079E08) # $at, 0x8008 +/* 0B0A1C 7F07BEAC 18E0004E */ blez $a3, .Ljp7F07BFE8 +/* 0B0A20 7F07BEB0 3C068008 */ lui $a2, %hi(flt_CODE_bss_80079E04) # $a2, 0x8008 +/* 0B0A24 7F07BEB4 C42C9E78 */ lwc1 $f12, %lo(flt_CODE_bss_80079E08)($at) +/* 0B0A28 7F07BEB8 3C018005 */ lui $at, %hi(D_80055044) # $at, 0x8005 +/* 0B0A2C 7F07BEBC C4325074 */ lwc1 $f18, %lo(D_80055044)($at) +/* 0B0A30 7F07BEC0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B0A34 7F07BEC4 44818000 */ mtc1 $at, $f16 +/* 0B0A38 7F07BEC8 3C018005 */ lui $at, %hi(D_80055048) +/* 0B0A3C 7F07BECC 3C058008 */ lui $a1, %hi(flt_CODE_bss_80079E0C) # $a1, 0x8008 +/* 0B0A40 7F07BED0 3C048008 */ lui $a0, %hi(flt_CODE_bss_80079E08) # $a0, 0x8008 +/* 0B0A44 7F07BED4 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079E10) # $v0, 0x8008 +/* 0B0A48 7F07BED8 24429E80 */ addiu $v0, %lo(flt_CODE_bss_80079E10) # addiu $v0, $v0, -0x6180 +/* 0B0A4C 7F07BEDC 24849E78 */ addiu $a0, %lo(flt_CODE_bss_80079E08) # addiu $a0, $a0, -0x6188 +/* 0B0A50 7F07BEE0 24A59E7C */ addiu $a1, %lo(flt_CODE_bss_80079E0C) # addiu $a1, $a1, -0x6184 +/* 0B0A54 7F07BEE4 C42E5078 */ lwc1 $f14, %lo(D_80055048)($at) +/* 0B0A58 7F07BEE8 24C69E74 */ addiu $a2, %lo(flt_CODE_bss_80079E04) # addiu $a2, $a2, -0x618c +/* 0B0A5C 7F07BEEC 4612603C */ c.lt.s $f12, $f18 +.Ljp7F07BEF0: +/* 0B0A60 7F07BEF0 24630001 */ addiu $v1, $v1, 1 +/* 0B0A64 7F07BEF4 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0B0A68 7F07BEF8 45020017 */ bc1fl .Ljp7F07BF58 +/* 0B0A6C 7F07BEFC 44812000 */ mtc1 $at, $f4 +/* 0B0A70 7F07BF00 3C01C1A0 */ li $at, 0xC1A00000 # -20.000000 +/* 0B0A74 7F07BF04 44814000 */ mtc1 $at, $f8 +/* 0B0A78 7F07BF08 3C0142DC */ li $at, 0x42DC0000 # 110.000000 +/* 0B0A7C 7F07BF0C 44815000 */ mtc1 $at, $f10 +/* 0B0A80 7F07BF10 4608603C */ c.lt.s $f12, $f8 +/* 0B0A84 7F07BF14 C4C00000 */ lwc1 $f0, ($a2) +/* 0B0A88 7F07BF18 45020005 */ bc1fl .Ljp7F07BF30 +/* 0B0A8C 7F07BF1C 460C503C */ c.lt.s $f10, $f12 +/* 0B0A90 7F07BF20 460E0100 */ add.s $f4, $f0, $f14 +/* 0B0A94 7F07BF24 E4C40000 */ swc1 $f4, ($a2) +/* 0B0A98 7F07BF28 C4C00000 */ lwc1 $f0, ($a2) +/* 0B0A9C 7F07BF2C 460C503C */ c.lt.s $f10, $f12 +.Ljp7F07BF30: +/* 0B0AA0 7F07BF30 00000000 */ nop +/* 0B0AA4 7F07BF34 45020005 */ bc1fl .Ljp7F07BF4C +/* 0B0AA8 7F07BF38 46006200 */ add.s $f8, $f12, $f0 +/* 0B0AAC 7F07BF3C 460E0181 */ sub.s $f6, $f0, $f14 +/* 0B0AB0 7F07BF40 E4C60000 */ swc1 $f6, ($a2) +/* 0B0AB4 7F07BF44 C4C00000 */ lwc1 $f0, ($a2) +/* 0B0AB8 7F07BF48 46006200 */ add.s $f8, $f12, $f0 +.Ljp7F07BF4C: +/* 0B0ABC 7F07BF4C 10000004 */ b .Ljp7F07BF60 +/* 0B0AC0 7F07BF50 E4880000 */ swc1 $f8, ($a0) +/* 0B0AC4 7F07BF54 44812000 */ mtc1 $at, $f4 +.Ljp7F07BF58: +/* 0B0AC8 7F07BF58 00000000 */ nop +/* 0B0ACC 7F07BF5C E4840000 */ swc1 $f4, ($a0) +.Ljp7F07BF60: +/* 0B0AD0 7F07BF60 3C0142A0 */ li $at, 0x42A00000 # 80.000000 +/* 0B0AD4 7F07BF64 44815000 */ mtc1 $at, $f10 +/* 0B0AD8 7F07BF68 C48C0000 */ lwc1 $f12, ($a0) +/* 0B0ADC 7F07BF6C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B0AE0 7F07BF70 460C503C */ c.lt.s $f10, $f12 +/* 0B0AE4 7F07BF74 00000000 */ nop +/* 0B0AE8 7F07BF78 45020019 */ bc1fl .Ljp7F07BFE0 +/* 0B0AEC 7F07BF7C 0067082A */ slt $at, $v1, $a3 +/* 0B0AF0 7F07BF80 C4400000 */ lwc1 $f0, ($v0) +/* 0B0AF4 7F07BF84 44813000 */ mtc1 $at, $f6 +/* 0B0AF8 7F07BF88 C4A20000 */ lwc1 $f2, ($a1) +/* 0B0AFC 7F07BF8C 3C018005 */ lui $at, %hi(D_8005504C) # $at, 0x8005 +/* 0B0B00 7F07BF90 4600303C */ c.lt.s $f6, $f0 +/* 0B0B04 7F07BF94 00000000 */ nop +/* 0B0B08 7F07BF98 45000004 */ bc1f .Ljp7F07BFAC +/* 0B0B0C 7F07BF9C 00000000 */ nop +/* 0B0B10 7F07BFA0 460E1201 */ sub.s $f8, $f2, $f14 +/* 0B0B14 7F07BFA4 10000004 */ b .Ljp7F07BFB8 +/* 0B0B18 7F07BFA8 E4A80000 */ swc1 $f8, ($a1) +.Ljp7F07BFAC: +/* 0B0B1C 7F07BFAC C424507C */ lwc1 $f4, %lo(D_8005504C)($at) +/* 0B0B20 7F07BFB0 46041280 */ add.s $f10, $f2, $f4 +/* 0B0B24 7F07BFB4 E4AA0000 */ swc1 $f10, ($a1) +.Ljp7F07BFB8: +/* 0B0B28 7F07BFB8 C4A60000 */ lwc1 $f6, ($a1) +/* 0B0B2C 7F07BFBC 46060200 */ add.s $f8, $f0, $f6 +/* 0B0B30 7F07BFC0 E4480000 */ swc1 $f8, ($v0) +/* 0B0B34 7F07BFC4 C4440000 */ lwc1 $f4, ($v0) +/* 0B0B38 7F07BFC8 4610203C */ c.lt.s $f4, $f16 +/* 0B0B3C 7F07BFCC 00000000 */ nop +/* 0B0B40 7F07BFD0 45020003 */ bc1fl .Ljp7F07BFE0 +/* 0B0B44 7F07BFD4 0067082A */ slt $at, $v1, $a3 +/* 0B0B48 7F07BFD8 E4500000 */ swc1 $f16, ($v0) +/* 0B0B4C 7F07BFDC 0067082A */ slt $at, $v1, $a3 +.Ljp7F07BFE0: +/* 0B0B50 7F07BFE0 5420FFC3 */ bnezl $at, .Ljp7F07BEF0 +/* 0B0B54 7F07BFE4 4612603C */ c.lt.s $f12, $f18 +.Ljp7F07BFE8: +/* 0B0B58 7F07BFE8 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B0B5C 7F07BFEC 8D380000 */ lw $t8, ($t1) +/* 0B0B60 7F07BFF0 3C048008 */ lui $a0, %hi(flt_CODE_bss_80079E08) # $a0, 0x8008 +/* 0B0B64 7F07BFF4 24849E78 */ addiu $a0, %lo(flt_CODE_bss_80079E08) # addiu $a0, $a0, -0x6188 +/* 0B0B68 7F07BFF8 C48A0000 */ lwc1 $f10, ($a0) +/* 0B0B6C 7F07BFFC C7060148 */ lwc1 $f6, 0x148($t8) +/* 0B0B70 7F07C000 3C018005 */ lui $at, %hi(D_80055050) # $at, 0x8005 +/* 0B0B74 7F07C004 C4245080 */ lwc1 $f4, %lo(D_80055050)($at) +/* 0B0B78 7F07C008 46065201 */ sub.s $f8, $f10, $f6 +/* 0B0B7C 7F07C00C 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0B0B80 7F07C010 44813000 */ mtc1 $at, $f6 +/* 0B0B84 7F07C014 46044282 */ mul.s $f10, $f8, $f4 +/* 0B0B88 7F07C018 46065303 */ div.s $f12, $f10, $f6 +/* 0B0B8C 7F07C01C 0FC160F3 */ jal sinf +/* 0B0B90 7F07C020 E7AC0038 */ swc1 $f12, 0x38($sp) +/* 0B0B94 7F07C024 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079E10) # $v0, 0x8008 +/* 0B0B98 7F07C028 24429E80 */ addiu $v0, %lo(flt_CODE_bss_80079E10) # addiu $v0, $v0, -0x6180 +/* 0B0B9C 7F07C02C C4480000 */ lwc1 $f8, ($v0) +/* 0B0BA0 7F07C030 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B0BA4 7F07C034 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B0BA8 7F07C038 46080102 */ mul.s $f4, $f0, $f8 +/* 0B0BAC 7F07C03C 8D2E0000 */ lw $t6, ($t1) +/* 0B0BB0 7F07C040 8FA30048 */ lw $v1, 0x48($sp) +/* 0B0BB4 7F07C044 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 0B0BB8 7F07C048 C5CA04B4 */ lwc1 $f10, 0x4b4($t6) +/* 0B0BBC 7F07C04C 3C018005 */ lui $at, %hi(D_80055054) # $at, 0x8005 +/* 0B0BC0 7F07C050 460A2180 */ add.s $f6, $f4, $f10 +/* 0B0BC4 7F07C054 E4660000 */ swc1 $f6, ($v1) +/* 0B0BC8 7F07C058 C4245084 */ lwc1 $f4, %lo(D_80055054)($at) +/* 0B0BCC 7F07C05C C4480000 */ lwc1 $f8, ($v0) +/* 0B0BD0 7F07C060 8D2F0000 */ lw $t7, ($t1) +/* 0B0BD4 7F07C064 46044282 */ mul.s $f10, $f8, $f4 +/* 0B0BD8 7F07C068 C5E604B8 */ lwc1 $f6, 0x4b8($t7) +/* 0B0BDC 7F07C06C 460A3200 */ add.s $f8, $f6, $f10 +/* 0B0BE0 7F07C070 0FC160F0 */ jal cosf +/* 0B0BE4 7F07C074 E4680004 */ swc1 $f8, 4($v1) +/* 0B0BE8 7F07C078 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079E10) # $v0, 0x8008 +/* 0B0BEC 7F07C07C 24429E80 */ addiu $v0, %lo(flt_CODE_bss_80079E10) # addiu $v0, $v0, -0x6180 +/* 0B0BF0 7F07C080 C4440000 */ lwc1 $f4, ($v0) +/* 0B0BF4 7F07C084 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B0BF8 7F07C088 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B0BFC 7F07C08C 46040182 */ mul.s $f6, $f0, $f4 +/* 0B0C00 7F07C090 8D390000 */ lw $t9, ($t1) +/* 0B0C04 7F07C094 8FAC0048 */ lw $t4, 0x48($sp) +/* 0B0C08 7F07C098 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0C0C 7F07C09C C72A04BC */ lwc1 $f10, 0x4bc($t9) +/* 0B0C10 7F07C0A0 8FA4004C */ lw $a0, 0x4c($sp) +/* 0B0C14 7F07C0A4 3C018005 */ lui $at, %hi(D_80055058) # $at, 0x8005 +/* 0B0C18 7F07C0A8 460A3200 */ add.s $f8, $f6, $f10 +/* 0B0C1C 7F07C0AC 240B0001 */ li $t3, 1 +/* 0B0C20 7F07C0B0 E5880008 */ swc1 $f8, 8($t4) +/* 0B0C24 7F07C0B4 8D2D0000 */ lw $t5, ($t1) +/* 0B0C28 7F07C0B8 C5A404B4 */ lwc1 $f4, 0x4b4($t5) +/* 0B0C2C 7F07C0BC E4840000 */ swc1 $f4, ($a0) +/* 0B0C30 7F07C0C0 8D380000 */ lw $t8, ($t1) +/* 0B0C34 7F07C0C4 C70604B8 */ lwc1 $f6, 0x4b8($t8) +/* 0B0C38 7F07C0C8 E4860004 */ swc1 $f6, 4($a0) +/* 0B0C3C 7F07C0CC 8D2E0000 */ lw $t6, ($t1) +/* 0B0C40 7F07C0D0 C5CA04BC */ lwc1 $f10, 0x4bc($t6) +/* 0B0C44 7F07C0D4 E48A0008 */ swc1 $f10, 8($a0) +/* 0B0C48 7F07C0D8 8D2F0000 */ lw $t7, ($t1) +/* 0B0C4C 7F07C0DC 8FAD0054 */ lw $t5, 0x54($sp) +/* 0B0C50 7F07C0E0 8DF900A8 */ lw $t9, 0xa8($t7) +/* 0B0C54 7F07C0E4 8F2C0014 */ lw $t4, 0x14($t9) +/* 0B0C58 7F07C0E8 ADAC0000 */ sw $t4, ($t5) +/* 0B0C5C 7F07C0EC 8D380000 */ lw $t8, ($t1) +/* 0B0C60 7F07C0F0 C70804B4 */ lwc1 $f8, 0x4b4($t8) +/* 0B0C64 7F07C0F4 E4680000 */ swc1 $f8, ($v1) +/* 0B0C68 7F07C0F8 C4440000 */ lwc1 $f4, ($v0) +/* 0B0C6C 7F07C0FC C4265088 */ lwc1 $f6, %lo(D_80055058)($at) +/* 0B0C70 7F07C100 8D2E0000 */ lw $t6, ($t1) +/* 0B0C74 7F07C104 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0B0C78 7F07C108 46062282 */ mul.s $f10, $f4, $f6 +/* 0B0C7C 7F07C10C C5C804B8 */ lwc1 $f8, 0x4b8($t6) +/* 0B0C80 7F07C110 460A4100 */ add.s $f4, $f8, $f10 +/* 0B0C84 7F07C114 44815000 */ mtc1 $at, $f10 +/* 0B0C88 7F07C118 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B0C8C 7F07C11C E4640004 */ swc1 $f4, 4($v1) +/* 0B0C90 7F07C120 8D2F0000 */ lw $t7, ($t1) +/* 0B0C94 7F07C124 C5E604BC */ lwc1 $f6, 0x4bc($t7) +/* 0B0C98 7F07C128 E4660008 */ swc1 $f6, 8($v1) +/* 0B0C9C 7F07C12C C4480000 */ lwc1 $f8, ($v0) +/* 0B0CA0 7F07C130 460A403C */ c.lt.s $f8, $f10 +/* 0B0CA4 7F07C134 00000000 */ nop +/* 0B0CA8 7F07C138 45020287 */ bc1fl .Ljp7F07CB58 +/* 0B0CAC 7F07C13C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B0CB0 7F07C140 10000284 */ b .Ljp7F07CB54 +/* 0B0CB4 7F07C144 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B0CB8 7F07C148 24010003 */ li $at, 3 +.Ljp7F07C14C: +/* 0B0CBC 7F07C14C 144100CB */ bne $v0, $at, .Ljp7F07C47C +/* 0B0CC0 7F07C150 24030005 */ li $v1, 5 +/* 0B0CC4 7F07C154 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B0CC8 7F07C158 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B0CCC 7F07C15C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0B0CD0 7F07C160 C43283B4 */ lwc1 $f18, %lo(global_timer_delta)($at) +/* 0B0CD4 7F07C164 C5440000 */ lwc1 $f4, ($t2) +/* 0B0CD8 7F07C168 3C088003 */ lui $t0, %hi(D_800364A8) # $t0, 0x8003 +/* 0B0CDC 7F07C16C 250864E8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64e8 +/* 0B0CE0 7F07C170 46122180 */ add.s $f6, $f4, $f18 +/* 0B0CE4 7F07C174 8D030000 */ lw $v1, ($t0) +/* 0B0CE8 7F07C178 3C048003 */ lui $a0, %hi(D_800364AC) # $a0, 0x8003 +/* 0B0CEC 7F07C17C 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B0CF0 7F07C180 E5460000 */ swc1 $f6, ($t2) +/* 0B0CF4 7F07C184 8C8464EC */ lw $a0, %lo(D_800364AC)($a0) +/* 0B0CF8 7F07C188 0003C940 */ sll $t9, $v1, 5 +/* 0B0CFC 7F07C18C C5420000 */ lwc1 $f2, ($t2) +/* 0B0D00 7F07C190 00991021 */ addu $v0, $a0, $t9 +/* 0B0D04 7F07C194 C4400018 */ lwc1 $f0, 0x18($v0) +/* 0B0D08 7F07C198 4602003E */ c.le.s $f0, $f2 +/* 0B0D0C 7F07C19C 00000000 */ nop +/* 0B0D10 7F07C1A0 45020019 */ bc1fl .Ljp7F07C208 +/* 0B0D14 7F07C1A4 24650001 */ addiu $a1, $v1, 1 +/* 0B0D18 7F07C1A8 8C4C0064 */ lw $t4, 0x64($v0) +.Ljp7F07C1AC: +/* 0B0D1C 7F07C1AC 318D0001 */ andi $t5, $t4, 1 +/* 0B0D20 7F07C1B0 55A00007 */ bnezl $t5, .Ljp7F07C1D0 +/* 0B0D24 7F07C1B4 E5400000 */ swc1 $f0, ($t2) +/* 0B0D28 7F07C1B8 46001201 */ sub.s $f8, $f2, $f0 +/* 0B0D2C 7F07C1BC 24780001 */ addiu $t8, $v1, 1 +/* 0B0D30 7F07C1C0 AD180000 */ sw $t8, ($t0) +/* 0B0D34 7F07C1C4 10000006 */ b .Ljp7F07C1E0 +/* 0B0D38 7F07C1C8 E5480000 */ swc1 $f8, ($t2) +/* 0B0D3C 7F07C1CC E5400000 */ swc1 $f0, ($t2) +.Ljp7F07C1D0: +/* 0B0D40 7F07C1D0 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B0D44 7F07C1D4 C4400018 */ lwc1 $f0, 0x18($v0) +/* 0B0D48 7F07C1D8 1000000A */ b .Ljp7F07C204 +/* 0B0D4C 7F07C1DC C5420000 */ lwc1 $f2, ($t2) +.Ljp7F07C1E0: +/* 0B0D50 7F07C1E0 8D030000 */ lw $v1, ($t0) +/* 0B0D54 7F07C1E4 C5420000 */ lwc1 $f2, ($t2) +/* 0B0D58 7F07C1E8 00037140 */ sll $t6, $v1, 5 +/* 0B0D5C 7F07C1EC 008E1021 */ addu $v0, $a0, $t6 +/* 0B0D60 7F07C1F0 C4400018 */ lwc1 $f0, 0x18($v0) +/* 0B0D64 7F07C1F4 4602003E */ c.le.s $f0, $f2 +/* 0B0D68 7F07C1F8 00000000 */ nop +/* 0B0D6C 7F07C1FC 4503FFEB */ bc1tl .Ljp7F07C1AC +/* 0B0D70 7F07C200 8C4C0064 */ lw $t4, 0x64($v0) +.Ljp7F07C204: +/* 0B0D74 7F07C204 24650001 */ addiu $a1, $v1, 1 +.Ljp7F07C208: +/* 0B0D78 7F07C208 00057940 */ sll $t7, $a1, 5 +/* 0B0D7C 7F07C20C 008F1021 */ addu $v0, $a0, $t7 +/* 0B0D80 7F07C210 8C590044 */ lw $t9, 0x44($v0) +/* 0B0D84 7F07C214 46020281 */ sub.s $f10, $f0, $f2 +/* 0B0D88 7F07C218 44807000 */ mtc1 $zero, $f14 +/* 0B0D8C 7F07C21C 332C0001 */ andi $t4, $t9, 1 +/* 0B0D90 7F07C220 15800007 */ bnez $t4, .Ljp7F07C240 +/* 0B0D94 7F07C224 460A7400 */ add.s $f16, $f14, $f10 +.Ljp7F07C228: +/* 0B0D98 7F07C228 8C4D0064 */ lw $t5, 0x64($v0) +/* 0B0D9C 7F07C22C C4440018 */ lwc1 $f4, 0x18($v0) +/* 0B0DA0 7F07C230 24420020 */ addiu $v0, $v0, 0x20 +/* 0B0DA4 7F07C234 31B80001 */ andi $t8, $t5, 1 +/* 0B0DA8 7F07C238 1300FFFB */ beqz $t8, .Ljp7F07C228 +/* 0B0DAC 7F07C23C 46048400 */ add.s $f16, $f16, $f4 +.Ljp7F07C240: +/* 0B0DB0 7F07C240 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B0DB4 7F07C244 44816000 */ mtc1 $at, $f12 +/* 0B0DB8 7F07C248 00000000 */ nop +/* 0B0DBC 7F07C24C 460C803C */ c.lt.s $f16, $f12 +/* 0B0DC0 7F07C250 00000000 */ nop +/* 0B0DC4 7F07C254 4500000D */ bc1f .Ljp7F07C28C +/* 0B0DC8 7F07C258 00000000 */ nop +/* 0B0DCC 7F07C25C 46128180 */ add.s $f6, $f16, $f18 +/* 0B0DD0 7F07C260 4606603E */ c.le.s $f12, $f6 +/* 0B0DD4 7F07C264 00000000 */ nop +/* 0B0DD8 7F07C268 45000008 */ bc1f .Ljp7F07C28C +/* 0B0DDC 7F07C26C 00000000 */ nop +/* 0B0DE0 7F07C270 0FC20408 */ jal set_curplayer_fade +/* 0B0DE4 7F07C274 E7B00030 */ swc1 $f16, 0x30($sp) +/* 0B0DE8 7F07C278 3C088003 */ lui $t0, %hi(D_800364A8) # $t0, 0x8003 +/* 0B0DEC 7F07C27C 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B0DF0 7F07C280 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B0DF4 7F07C284 250864E8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64e8 +/* 0B0DF8 7F07C288 C7B00030 */ lwc1 $f16, 0x30($sp) +.Ljp7F07C28C: +/* 0B0DFC 7F07C28C 3C0E8003 */ lui $t6, %hi(D_8003649C) # $t6, 0x8003 +/* 0B0E00 7F07C290 8DCE64DC */ lw $t6, %lo(D_8003649C)($t6) +/* 0B0E04 7F07C294 51C0000D */ beql $t6, $zero, .Ljp7F07C2CC +/* 0B0E08 7F07C298 3C014270 */ lui $at, 0x4270 +/* 0B0E0C 7F07C29C 0FC203A7 */ jal check_if_fade_to_black_complete +/* 0B0E10 7F07C2A0 E7B00030 */ swc1 $f16, 0x30($sp) +/* 0B0E14 7F07C2A4 3C088003 */ lui $t0, %hi(D_800364A8) # $t0, 0x8003 +/* 0B0E18 7F07C2A8 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B0E1C 7F07C2AC 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B0E20 7F07C2B0 250864E8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64e8 +/* 0B0E24 7F07C2B4 240B0001 */ li $t3, 1 +/* 0B0E28 7F07C2B8 10400003 */ beqz $v0, .Ljp7F07C2C8 +/* 0B0E2C 7F07C2BC C7B00030 */ lwc1 $f16, 0x30($sp) +/* 0B0E30 7F07C2C0 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B0E34 7F07C2C4 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +.Ljp7F07C2C8: +/* 0B0E38 7F07C2C8 3C014270 */ li $at, 0x42700000 # 60.000000 +.Ljp7F07C2CC: +/* 0B0E3C 7F07C2CC 44814000 */ mtc1 $at, $f8 +/* 0B0E40 7F07C2D0 3C0F8003 */ lui $t7, %hi(D_8003649C) # $t7, 0x8003 +/* 0B0E44 7F07C2D4 4610403C */ c.lt.s $f8, $f16 +/* 0B0E48 7F07C2D8 00000000 */ nop +/* 0B0E4C 7F07C2DC 45020036 */ bc1fl .Ljp7F07C3B8 +/* 0B0E50 7F07C2E0 8D040000 */ lw $a0, ($t0) +/* 0B0E54 7F07C2E4 8DEF64DC */ lw $t7, %lo(D_8003649C)($t7) +/* 0B0E58 7F07C2E8 55E00033 */ bnezl $t7, .Ljp7F07C3B8 +/* 0B0E5C 7F07C2EC 8D040000 */ lw $a0, ($t0) +/* 0B0E60 7F07C2F0 0FC3021B */ jal get_controls_locked_flag +/* 0B0E64 7F07C2F4 00000000 */ nop +/* 0B0E68 7F07C2F8 3C088003 */ lui $t0, %hi(D_800364A8) # $t0, 0x8003 +/* 0B0E6C 7F07C2FC 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B0E70 7F07C300 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B0E74 7F07C304 250864E8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64e8 +/* 0B0E78 7F07C308 1440002A */ bnez $v0, .Ljp7F07C3B4 +/* 0B0E7C 7F07C30C 240B0001 */ li $t3, 1 +/* 0B0E80 7F07C310 97AC0046 */ lhu $t4, 0x46($sp) +/* 0B0E84 7F07C314 97B90042 */ lhu $t9, 0x42($sp) +/* 0B0E88 7F07C318 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B0E8C 7F07C31C 01806827 */ not $t5, $t4 +/* 0B0E90 7F07C320 032DC024 */ and $t8, $t9, $t5 +/* 0B0E94 7F07C324 330EF030 */ andi $t6, $t8, 0xf030 +/* 0B0E98 7F07C328 11C00022 */ beqz $t6, .Ljp7F07C3B4 +/* 0B0E9C 7F07C32C 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B0EA0 7F07C330 3C018003 */ lui $at, %hi(D_8003649C) # $at, 0x8003 +/* 0B0EA4 7F07C334 AC2B64DC */ sw $t3, %lo(D_8003649C)($at) +/* 0B0EA8 7F07C338 8D2F0000 */ lw $t7, ($t1) +/* 0B0EAC 7F07C33C 00002025 */ move $a0, $zero +/* 0B0EB0 7F07C340 00002825 */ move $a1, $zero +/* 0B0EB4 7F07C344 00003025 */ move $a2, $zero +/* 0B0EB8 7F07C348 0FC20370 */ jal set_rgba_tint +/* 0B0EBC 7F07C34C 8DE703DC */ lw $a3, 0x3dc($t7) +/* 0B0EC0 7F07C350 0FC203A7 */ jal check_if_fade_to_black_complete +/* 0B0EC4 7F07C354 00000000 */ nop +/* 0B0EC8 7F07C358 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B0ECC 7F07C35C 1040000C */ beqz $v0, .Ljp7F07C390 +/* 0B0ED0 7F07C360 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B0ED4 7F07C364 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B0ED8 7F07C368 44816000 */ mtc1 $at, $f12 +/* 0B0EDC 7F07C36C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B0EE0 7F07C370 44817000 */ mtc1 $at, $f14 +/* 0B0EE4 7F07C374 0FC2039A */ jal fade_to_over_seconds +/* 0B0EE8 7F07C378 00000000 */ nop +/* 0B0EEC 7F07C37C 3C088003 */ lui $t0, %hi(D_800364A8) # $t0, 0x8003 +/* 0B0EF0 7F07C380 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B0EF4 7F07C384 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B0EF8 7F07C388 1000000A */ b .Ljp7F07C3B4 +/* 0B0EFC 7F07C38C 250864E8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64e8 +.Ljp7F07C390: +/* 0B0F00 7F07C390 8D2C0000 */ lw $t4, ($t1) +/* 0B0F04 7F07C394 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B0F08 7F07C398 44817000 */ mtc1 $at, $f14 +/* 0B0F0C 7F07C39C 0FC2039A */ jal fade_to_over_seconds +/* 0B0F10 7F07C3A0 C58C03E0 */ lwc1 $f12, 0x3e0($t4) +/* 0B0F14 7F07C3A4 3C088003 */ lui $t0, %hi(D_800364A8) # $t0, 0x8003 +/* 0B0F18 7F07C3A8 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B0F1C 7F07C3AC 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B0F20 7F07C3B0 250864E8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64e8 +.Ljp7F07C3B4: +/* 0B0F24 7F07C3B4 8D040000 */ lw $a0, ($t0) +.Ljp7F07C3B8: +/* 0B0F28 7F07C3B8 8D450000 */ lw $a1, ($t2) +/* 0B0F2C 7F07C3BC 8FA60048 */ lw $a2, 0x48($sp) +/* 0B0F30 7F07C3C0 0FC1EE30 */ jal sub_GAME_7F07B2A0 +/* 0B0F34 7F07C3C4 8FA7004C */ lw $a3, 0x4c($sp) +/* 0B0F38 7F07C3C8 3C088003 */ lui $t0, %hi(D_800364A8) # $t0, 0x8003 +/* 0B0F3C 7F07C3CC 250864E8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64e8 +/* 0B0F40 7F07C3D0 8D0D0000 */ lw $t5, ($t0) +/* 0B0F44 7F07C3D4 3C198003 */ lui $t9, %hi(D_800364AC) # $t9, 0x8003 +/* 0B0F48 7F07C3D8 8F3964EC */ lw $t9, %lo(D_800364AC)($t9) +/* 0B0F4C 7F07C3DC 000DC140 */ sll $t8, $t5, 5 +/* 0B0F50 7F07C3E0 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B0F54 7F07C3E4 03387021 */ addu $t6, $t9, $t8 +/* 0B0F58 7F07C3E8 8DC4001C */ lw $a0, 0x1c($t6) +/* 0B0F5C 7F07C3EC 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B0F60 7F07C3F0 3C0C8007 */ lui $t4, %hi(ptr_0xxxpresets) # $t4, 0x8007 +/* 0B0F64 7F07C3F4 04800012 */ bltz $a0, .Ljp7F07C440 +/* 0B0F68 7F07C3F8 00047880 */ sll $t7, $a0, 2 +/* 0B0F6C 7F07C3FC 01E47823 */ subu $t7, $t7, $a0 +/* 0B0F70 7F07C400 8D8C5D58 */ lw $t4, %lo(ptr_0xxxpresets)($t4) +/* 0B0F74 7F07C404 000F7880 */ sll $t7, $t7, 2 +/* 0B0F78 7F07C408 01E47823 */ subu $t7, $t7, $a0 +/* 0B0F7C 7F07C40C 000F7880 */ sll $t7, $t7, 2 +/* 0B0F80 7F07C410 01EC1021 */ addu $v0, $t7, $t4 +/* 0B0F84 7F07C414 8C4D0028 */ lw $t5, 0x28($v0) +/* 0B0F88 7F07C418 8FB90054 */ lw $t9, 0x54($sp) +/* 0B0F8C 7F07C41C 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0F90 7F07C420 AF2D0000 */ sw $t5, ($t9) +/* 0B0F94 7F07C424 C44A0000 */ lwc1 $f10, ($v0) +/* 0B0F98 7F07C428 E46A0000 */ swc1 $f10, ($v1) +/* 0B0F9C 7F07C42C C4440004 */ lwc1 $f4, 4($v0) +/* 0B0FA0 7F07C430 E4640004 */ swc1 $f4, 4($v1) +/* 0B0FA4 7F07C434 C4460008 */ lwc1 $f6, 8($v0) +/* 0B0FA8 7F07C438 100001C6 */ b .Ljp7F07CB54 +/* 0B0FAC 7F07C43C E4660008 */ swc1 $f6, 8($v1) +.Ljp7F07C440: +/* 0B0FB0 7F07C440 8D380000 */ lw $t8, ($t1) +/* 0B0FB4 7F07C444 8FAF0054 */ lw $t7, 0x54($sp) +/* 0B0FB8 7F07C448 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0FBC 7F07C44C 8F0E0488 */ lw $t6, 0x488($t8) +/* 0B0FC0 7F07C450 ADEE0000 */ sw $t6, ($t7) +/* 0B0FC4 7F07C454 8D2C0000 */ lw $t4, ($t1) +/* 0B0FC8 7F07C458 C588048C */ lwc1 $f8, 0x48c($t4) +/* 0B0FCC 7F07C45C E4680000 */ swc1 $f8, ($v1) +/* 0B0FD0 7F07C460 8D2D0000 */ lw $t5, ($t1) +/* 0B0FD4 7F07C464 C5AA0490 */ lwc1 $f10, 0x490($t5) +/* 0B0FD8 7F07C468 E46A0004 */ swc1 $f10, 4($v1) +/* 0B0FDC 7F07C46C 8D390000 */ lw $t9, ($t1) +/* 0B0FE0 7F07C470 C7240494 */ lwc1 $f4, 0x494($t9) +/* 0B0FE4 7F07C474 100001B7 */ b .Ljp7F07CB54 +/* 0B0FE8 7F07C478 E4640008 */ swc1 $f4, 8($v1) +.Ljp7F07C47C: +/* 0B0FEC 7F07C47C 10620003 */ beq $v1, $v0, .Ljp7F07C48C +/* 0B0FF0 7F07C480 24010006 */ li $at, 6 +/* 0B0FF4 7F07C484 5441009C */ bnel $v0, $at, .Ljp7F07C6F8 +/* 0B0FF8 7F07C488 24010007 */ li $at, 7 +.Ljp7F07C48C: +/* 0B0FFC 7F07C48C 1462003F */ bne $v1, $v0, .Ljp7F07C58C +/* 0B1000 7F07C490 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B1004 7F07C494 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B1008 7F07C498 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0B100C 7F07C49C C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B1010 7F07C4A0 C5460000 */ lwc1 $f6, ($t2) +/* 0B1014 7F07C4A4 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B1018 7F07C4A8 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B101C 7F07C4AC 46083280 */ add.s $f10, $f6, $f8 +/* 0B1020 7F07C4B0 8D380000 */ lw $t8, ($t1) +/* 0B1024 7F07C4B4 3C014334 */ lui $at, 0x4334 +/* 0B1028 7F07C4B8 E54A0000 */ swc1 $f10, ($t2) +/* 0B102C 7F07C4BC 8F0400D4 */ lw $a0, 0xd4($t8) +/* 0B1030 7F07C4C0 50800015 */ beql $a0, $zero, .Ljp7F07C518 +/* 0B1034 7F07C4C4 C5460000 */ lwc1 $f6, ($t2) +/* 0B1038 7F07C4C8 0FC1BEEB */ jal sub_GAME_7F06F5BC +/* 0B103C 7F07C4CC 00000000 */ nop +/* 0B1040 7F07C4D0 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B1044 7F07C4D4 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B1048 7F07C4D8 8D2E0000 */ lw $t6, ($t1) +/* 0B104C 7F07C4DC E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B1050 7F07C4E0 0FC1BEED */ jal sub_GAME_7F06F5C4 +/* 0B1054 7F07C4E4 8DC400D4 */ lw $a0, 0xd4($t6) +/* 0B1058 7F07C4E8 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B105C 7F07C4EC 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B1060 7F07C4F0 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B1064 7F07C4F4 4604003E */ c.le.s $f0, $f4 +/* 0B1068 7F07C4F8 240B0001 */ li $t3, 1 +/* 0B106C 7F07C4FC 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B1070 7F07C500 45000002 */ bc1f .Ljp7F07C50C +/* 0B1074 7F07C504 00000000 */ nop +/* 0B1078 7F07C508 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +.Ljp7F07C50C: +/* 0B107C 7F07C50C 10000009 */ b .Ljp7F07C534 +/* 0B1080 7F07C510 24050002 */ li $a1, 2 +/* 0B1084 7F07C514 C5460000 */ lwc1 $f6, ($t2) +.Ljp7F07C518: +/* 0B1088 7F07C518 44814000 */ mtc1 $at, $f8 +/* 0B108C 7F07C51C 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B1090 7F07C520 4606403E */ c.le.s $f8, $f6 +/* 0B1094 7F07C524 00000000 */ nop +/* 0B1098 7F07C528 45020003 */ bc1fl .Ljp7F07C538 +/* 0B109C 7F07C52C 97AC0046 */ lhu $t4, 0x46($sp) +/* 0B10A0 7F07C530 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +.Ljp7F07C534: +/* 0B10A4 7F07C534 97AC0046 */ lhu $t4, 0x46($sp) +.Ljp7F07C538: +/* 0B10A8 7F07C538 97AF0042 */ lhu $t7, 0x42($sp) +/* 0B10AC 7F07C53C 01806827 */ not $t5, $t4 +/* 0B10B0 7F07C540 01EDC824 */ and $t9, $t7, $t5 +/* 0B10B4 7F07C544 3338F000 */ andi $t8, $t9, 0xf000 +/* 0B10B8 7F07C548 13000036 */ beqz $t8, .Ljp7F07C624 +/* 0B10BC 7F07C54C 00000000 */ nop +/* 0B10C0 7F07C550 8D220000 */ lw $v0, ($t1) +/* 0B10C4 7F07C554 8C4E00D8 */ lw $t6, 0xd8($v0) +/* 0B10C8 7F07C558 11C00032 */ beqz $t6, .Ljp7F07C624 +/* 0B10CC 7F07C55C 00000000 */ nop +/* 0B10D0 7F07C560 8C4C0424 */ lw $t4, 0x424($v0) +/* 0B10D4 7F07C564 1180002F */ beqz $t4, .Ljp7F07C624 +/* 0B10D8 7F07C568 00000000 */ nop +/* 0B10DC 7F07C56C 8C4F0428 */ lw $t7, 0x428($v0) +/* 0B10E0 7F07C570 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B10E4 7F07C574 11E0002B */ beqz $t7, .Ljp7F07C624 +/* 0B10E8 7F07C578 00000000 */ nop +/* 0B10EC 7F07C57C AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B10F0 7F07C580 3C018003 */ lui $at, %hi(D_80036510) # $at, 0x8003 +/* 0B10F4 7F07C584 10000027 */ b .Ljp7F07C624 +/* 0B10F8 7F07C588 AC256550 */ sw $a1, %lo(D_80036510)($at) +.Ljp7F07C58C: +/* 0B10FC 7F07C58C 24010006 */ li $at, 6 +/* 0B1100 7F07C590 14410024 */ bne $v0, $at, .Ljp7F07C624 +/* 0B1104 7F07C594 3C0A8003 */ lui $t2, %hi(D_800364A4) # $t2, 0x8003 +/* 0B1108 7F07C598 254A64E4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64e4 +/* 0B110C 7F07C59C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0B1110 7F07C5A0 C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B1114 7F07C5A4 C54A0000 */ lwc1 $f10, ($t2) +/* 0B1118 7F07C5A8 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B111C 7F07C5AC 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B1120 7F07C5B0 46045180 */ add.s $f6, $f10, $f4 +/* 0B1124 7F07C5B4 8D220000 */ lw $v0, ($t1) +/* 0B1128 7F07C5B8 44807000 */ mtc1 $zero, $f14 +/* 0B112C 7F07C5BC 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 0B1130 7F07C5C0 E5460000 */ swc1 $f6, ($t2) +/* 0B1134 7F07C5C4 C44803E4 */ lwc1 $f8, 0x3e4($v0) +/* 0B1138 7F07C5C8 460E403C */ c.lt.s $f8, $f14 +/* 0B113C 7F07C5CC 00000000 */ nop +/* 0B1140 7F07C5D0 45020003 */ bc1fl .Ljp7F07C5E0 +/* 0B1144 7F07C5D4 97B90046 */ lhu $t9, 0x46($sp) +/* 0B1148 7F07C5D8 AC2B64D8 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B114C 7F07C5DC 97B90046 */ lhu $t9, 0x46($sp) +.Ljp7F07C5E0: +/* 0B1150 7F07C5E0 97AD0042 */ lhu $t5, 0x42($sp) +/* 0B1154 7F07C5E4 0320C027 */ not $t8, $t9 +/* 0B1158 7F07C5E8 01B87024 */ and $t6, $t5, $t8 +/* 0B115C 7F07C5EC 31CCF000 */ andi $t4, $t6, 0xf000 +/* 0B1160 7F07C5F0 1180000C */ beqz $t4, .Ljp7F07C624 +/* 0B1164 7F07C5F4 00000000 */ nop +/* 0B1168 7F07C5F8 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0B116C 7F07C5FC 11E00009 */ beqz $t7, .Ljp7F07C624 +/* 0B1170 7F07C600 00000000 */ nop +/* 0B1174 7F07C604 8C590424 */ lw $t9, 0x424($v0) +/* 0B1178 7F07C608 13200006 */ beqz $t9, .Ljp7F07C624 +/* 0B117C 7F07C60C 00000000 */ nop +/* 0B1180 7F07C610 8C4D0428 */ lw $t5, 0x428($v0) +/* 0B1184 7F07C614 3C018003 */ lui $at, %hi(D_80036510) # $at, 0x8003 +/* 0B1188 7F07C618 11A00002 */ beqz $t5, .Ljp7F07C624 +/* 0B118C 7F07C61C 00000000 */ nop +/* 0B1190 7F07C620 AC256550 */ sw $a1, %lo(D_80036510)($at) +.Ljp7F07C624: +/* 0B1194 7F07C624 3C038008 */ lui $v1, %hi(flt_CODE_bss_800799E8) # $v1, 0x8008 +/* 0B1198 7F07C628 24639A28 */ addiu $v1, %lo(flt_CODE_bss_800799E8) # addiu $v1, $v1, -0x65d8 +/* 0B119C 7F07C62C C46A0000 */ lwc1 $f10, ($v1) +/* 0B11A0 7F07C630 8FB80048 */ lw $t8, 0x48($sp) +/* 0B11A4 7F07C634 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B11A8 7F07C638 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B11AC 7F07C63C E70A0000 */ swc1 $f10, ($t8) +/* 0B11B0 7F07C640 C4640004 */ lwc1 $f4, 4($v1) +/* 0B11B4 7F07C644 3C058008 */ lui $a1, %hi(dword_CODE_bss_800799F4) # $a1, 0x8008 +/* 0B11B8 7F07C648 24A59A34 */ addiu $a1, %lo(dword_CODE_bss_800799F4) # addiu $a1, $a1, -0x65cc +/* 0B11BC 7F07C64C E7040004 */ swc1 $f4, 4($t8) +/* 0B11C0 7F07C650 C4660008 */ lwc1 $f6, 8($v1) +/* 0B11C4 7F07C654 E7060008 */ swc1 $f6, 8($t8) +/* 0B11C8 7F07C658 8D220000 */ lw $v0, ($t1) +/* 0B11CC 7F07C65C 8CA40000 */ lw $a0, ($a1) +/* 0B11D0 7F07C660 8C4E00A8 */ lw $t6, 0xa8($v0) +/* 0B11D4 7F07C664 548E000C */ bnel $a0, $t6, .Ljp7F07C698 +/* 0B11D8 7F07C668 C4860008 */ lwc1 $f6, 8($a0) +/* 0B11DC 7F07C66C C44803C4 */ lwc1 $f8, 0x3c4($v0) +/* 0B11E0 7F07C670 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B11E4 7F07C674 E5880000 */ swc1 $f8, ($t4) +/* 0B11E8 7F07C678 8D2F0000 */ lw $t7, ($t1) +/* 0B11EC 7F07C67C C5EA03C8 */ lwc1 $f10, 0x3c8($t7) +/* 0B11F0 7F07C680 E58A0004 */ swc1 $f10, 4($t4) +/* 0B11F4 7F07C684 8D390000 */ lw $t9, ($t1) +/* 0B11F8 7F07C688 C72403CC */ lwc1 $f4, 0x3cc($t9) +/* 0B11FC 7F07C68C 1000000A */ b .Ljp7F07C6B8 +/* 0B1200 7F07C690 E5840008 */ swc1 $f4, 8($t4) +/* 0B1204 7F07C694 C4860008 */ lwc1 $f6, 8($a0) +.Ljp7F07C698: +/* 0B1208 7F07C698 8FAD004C */ lw $t5, 0x4c($sp) +/* 0B120C 7F07C69C E5A60000 */ swc1 $f6, ($t5) +/* 0B1210 7F07C6A0 8CB80000 */ lw $t8, ($a1) +/* 0B1214 7F07C6A4 C708000C */ lwc1 $f8, 0xc($t8) +/* 0B1218 7F07C6A8 E5A80004 */ swc1 $f8, 4($t5) +/* 0B121C 7F07C6AC 8CAE0000 */ lw $t6, ($a1) +/* 0B1220 7F07C6B0 C5CA0010 */ lwc1 $f10, 0x10($t6) +/* 0B1224 7F07C6B4 E5AA0008 */ swc1 $f10, 8($t5) +.Ljp7F07C6B8: +/* 0B1228 7F07C6B8 8D2F0000 */ lw $t7, ($t1) +/* 0B122C 7F07C6BC 8FAC0054 */ lw $t4, 0x54($sp) +/* 0B1230 7F07C6C0 8FA30058 */ lw $v1, 0x58($sp) +/* 0B1234 7F07C6C4 8DF90488 */ lw $t9, 0x488($t7) +/* 0B1238 7F07C6C8 AD990000 */ sw $t9, ($t4) +/* 0B123C 7F07C6CC 8D380000 */ lw $t8, ($t1) +/* 0B1240 7F07C6D0 C704048C */ lwc1 $f4, 0x48c($t8) +/* 0B1244 7F07C6D4 E4640000 */ swc1 $f4, ($v1) +/* 0B1248 7F07C6D8 8D2E0000 */ lw $t6, ($t1) +/* 0B124C 7F07C6DC C5C60490 */ lwc1 $f6, 0x490($t6) +/* 0B1250 7F07C6E0 E4660004 */ swc1 $f6, 4($v1) +/* 0B1254 7F07C6E4 8D2D0000 */ lw $t5, ($t1) +/* 0B1258 7F07C6E8 C5A80494 */ lwc1 $f8, 0x494($t5) +/* 0B125C 7F07C6EC 10000119 */ b .Ljp7F07CB54 +/* 0B1260 7F07C6F0 E4680008 */ swc1 $f8, 8($v1) +/* 0B1264 7F07C6F4 24010007 */ li $at, 7 +.Ljp7F07C6F8: +/* 0B1268 7F07C6F8 14410116 */ bne $v0, $at, .Ljp7F07CB54 +/* 0B126C 7F07C6FC 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799F8) # $v0, 0x8008 +/* 0B1270 7F07C700 24429A38 */ addiu $v0, %lo(dword_CODE_bss_800799F8) # addiu $v0, $v0, -0x65c8 +/* 0B1274 7F07C704 8C440000 */ lw $a0, ($v0) +/* 0B1278 7F07C708 8FAF0048 */ lw $t7, 0x48($sp) +/* 0B127C 7F07C70C 10800024 */ beqz $a0, .Ljp7F07C7A0 +/* 0B1280 7F07C710 00000000 */ nop +/* 0B1284 7F07C714 C48A0000 */ lwc1 $f10, ($a0) +/* 0B1288 7F07C718 8FA30058 */ lw $v1, 0x58($sp) +/* 0B128C 7F07C71C 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B1290 7F07C720 E5EA0000 */ swc1 $f10, ($t7) +/* 0B1294 7F07C724 8C590000 */ lw $t9, ($v0) +/* 0B1298 7F07C728 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B129C 7F07C72C C7240004 */ lwc1 $f4, 4($t9) +/* 0B12A0 7F07C730 E5E40004 */ swc1 $f4, 4($t7) +/* 0B12A4 7F07C734 8C4C0000 */ lw $t4, ($v0) +/* 0B12A8 7F07C738 C5860008 */ lwc1 $f6, 8($t4) +/* 0B12AC 7F07C73C E5E60008 */ swc1 $f6, 8($t7) +/* 0B12B0 7F07C740 8D380000 */ lw $t8, ($t1) +/* 0B12B4 7F07C744 8FAE004C */ lw $t6, 0x4c($sp) +/* 0B12B8 7F07C748 C70803C4 */ lwc1 $f8, 0x3c4($t8) +/* 0B12BC 7F07C74C E5C80000 */ swc1 $f8, ($t6) +/* 0B12C0 7F07C750 8D2D0000 */ lw $t5, ($t1) +/* 0B12C4 7F07C754 C5AA03C8 */ lwc1 $f10, 0x3c8($t5) +/* 0B12C8 7F07C758 E5CA0004 */ swc1 $f10, 4($t6) +/* 0B12CC 7F07C75C 8D390000 */ lw $t9, ($t1) +/* 0B12D0 7F07C760 C72403CC */ lwc1 $f4, 0x3cc($t9) +/* 0B12D4 7F07C764 E5C40008 */ swc1 $f4, 8($t6) +/* 0B12D8 7F07C768 8C4C0000 */ lw $t4, ($v0) +/* 0B12DC 7F07C76C 8FB80054 */ lw $t8, 0x54($sp) +/* 0B12E0 7F07C770 8D8F0028 */ lw $t7, 0x28($t4) +/* 0B12E4 7F07C774 AF0F0000 */ sw $t7, ($t8) +/* 0B12E8 7F07C778 8C4D0000 */ lw $t5, ($v0) +/* 0B12EC 7F07C77C C5A60000 */ lwc1 $f6, ($t5) +/* 0B12F0 7F07C780 E4660000 */ swc1 $f6, ($v1) +/* 0B12F4 7F07C784 8C590000 */ lw $t9, ($v0) +/* 0B12F8 7F07C788 C7280004 */ lwc1 $f8, 4($t9) +/* 0B12FC 7F07C78C E4680004 */ swc1 $f8, 4($v1) +/* 0B1300 7F07C790 8C4E0000 */ lw $t6, ($v0) +/* 0B1304 7F07C794 C5CA0008 */ lwc1 $f10, 8($t6) +/* 0B1308 7F07C798 100000EE */ b .Ljp7F07CB54 +/* 0B130C 7F07C79C E46A0008 */ swc1 $f10, 8($v1) +.Ljp7F07C7A0: +/* 0B1310 7F07C7A0 3C058008 */ lui $a1, %hi(dword_CODE_bss_800799FC) # $a1, 0x8008 +/* 0B1314 7F07C7A4 24A59A3C */ addiu $a1, %lo(dword_CODE_bss_800799FC) # addiu $a1, $a1, -0x65c4 +/* 0B1318 7F07C7A8 8CA40000 */ lw $a0, ($a1) +/* 0B131C 7F07C7AC 10800063 */ beqz $a0, .Ljp7F07C93C +/* 0B1320 7F07C7B0 00000000 */ nop +/* 0B1324 7F07C7B4 8C830018 */ lw $v1, 0x18($a0) +/* 0B1328 7F07C7B8 3C0D8007 */ lui $t5, %hi(ptr_2xxxpresets) # $t5, 0x8007 +/* 0B132C 7F07C7BC 8FB90048 */ lw $t9, 0x48($sp) +/* 0B1330 7F07C7C0 28612710 */ slti $at, $v1, 0x2710 +/* 0B1334 7F07C7C4 1020000A */ beqz $at, .Ljp7F07C7F0 +/* 0B1338 7F07C7C8 0003C100 */ sll $t8, $v1, 4 +/* 0B133C 7F07C7CC 00036080 */ sll $t4, $v1, 2 +/* 0B1340 7F07C7D0 01836023 */ subu $t4, $t4, $v1 +/* 0B1344 7F07C7D4 000C6080 */ sll $t4, $t4, 2 +/* 0B1348 7F07C7D8 3C0F8007 */ lui $t7, %hi(ptr_0xxxpresets) # $t7, 0x8007 +/* 0B134C 7F07C7DC 8DEF5D58 */ lw $t7, %lo(ptr_0xxxpresets)($t7) +/* 0B1350 7F07C7E0 01836023 */ subu $t4, $t4, $v1 +/* 0B1354 7F07C7E4 000C6080 */ sll $t4, $t4, 2 +/* 0B1358 7F07C7E8 10000008 */ b .Ljp7F07C80C +/* 0B135C 7F07C7EC 018F1021 */ addu $v0, $t4, $t7 +.Ljp7F07C7F0: +/* 0B1360 7F07C7F0 8DAD5D5C */ lw $t5, %lo(ptr_2xxxpresets)($t5) +/* 0B1364 7F07C7F4 0303C021 */ addu $t8, $t8, $v1 +/* 0B1368 7F07C7F8 0018C080 */ sll $t8, $t8, 2 +/* 0B136C 7F07C7FC 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 0B1370 7F07C800 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 0B1374 7F07C804 030D1021 */ addu $v0, $t8, $t5 +/* 0B1378 7F07C808 00411021 */ addu $v0, $v0, $at +.Ljp7F07C80C: +/* 0B137C 7F07C80C C4840004 */ lwc1 $f4, 4($a0) +/* 0B1380 7F07C810 8FA30058 */ lw $v1, 0x58($sp) +/* 0B1384 7F07C814 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_80079A18) # $t5, 0x8008 +/* 0B1388 7F07C818 E7240000 */ swc1 $f4, ($t9) +/* 0B138C 7F07C81C 8CAE0000 */ lw $t6, ($a1) +/* 0B1390 7F07C820 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B1394 7F07C824 2529A120 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5ee0 +/* 0B1398 7F07C828 C5C60008 */ lwc1 $f6, 8($t6) +/* 0B139C 7F07C82C E7260004 */ swc1 $f6, 4($t9) +/* 0B13A0 7F07C830 8CAC0000 */ lw $t4, ($a1) +/* 0B13A4 7F07C834 C588000C */ lwc1 $f8, 0xc($t4) +/* 0B13A8 7F07C838 E7280008 */ swc1 $f8, 8($t9) +/* 0B13AC 7F07C83C 8FB80054 */ lw $t8, 0x54($sp) +/* 0B13B0 7F07C840 8C4F0028 */ lw $t7, 0x28($v0) +/* 0B13B4 7F07C844 AF0F0000 */ sw $t7, ($t8) +/* 0B13B8 7F07C848 C44A0000 */ lwc1 $f10, ($v0) +/* 0B13BC 7F07C84C E46A0000 */ swc1 $f10, ($v1) +/* 0B13C0 7F07C850 C4440004 */ lwc1 $f4, 4($v0) +/* 0B13C4 7F07C854 E4640004 */ swc1 $f4, 4($v1) +/* 0B13C8 7F07C858 C4460008 */ lwc1 $f6, 8($v0) +/* 0B13CC 7F07C85C E4660008 */ swc1 $f6, 8($v1) +/* 0B13D0 7F07C860 8DAD9A58 */ lw $t5, %lo(dword_CODE_bss_80079A18)($t5) +/* 0B13D4 7F07C864 556D000D */ bnel $t3, $t5, .Ljp7F07C89C +/* 0B13D8 7F07C868 8CB80000 */ lw $t8, ($a1) +/* 0B13DC 7F07C86C 8D2E0000 */ lw $t6, ($t1) +/* 0B13E0 7F07C870 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B13E4 7F07C874 C5C803C4 */ lwc1 $f8, 0x3c4($t6) +/* 0B13E8 7F07C878 E5880000 */ swc1 $f8, ($t4) +/* 0B13EC 7F07C87C 8D390000 */ lw $t9, ($t1) +/* 0B13F0 7F07C880 C72A03C8 */ lwc1 $f10, 0x3c8($t9) +/* 0B13F4 7F07C884 E58A0004 */ swc1 $f10, 4($t4) +/* 0B13F8 7F07C888 8D2F0000 */ lw $t7, ($t1) +/* 0B13FC 7F07C88C C5E403CC */ lwc1 $f4, 0x3cc($t7) +/* 0B1400 7F07C890 100000B0 */ b .Ljp7F07CB54 +/* 0B1404 7F07C894 E5840008 */ swc1 $f4, 8($t4) +/* 0B1408 7F07C898 8CB80000 */ lw $t8, ($a1) +.Ljp7F07C89C: +/* 0B140C 7F07C89C 0FC160F0 */ jal cosf +/* 0B1410 7F07C8A0 C70C0014 */ lwc1 $f12, 0x14($t8) +/* 0B1414 7F07C8A4 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_800799FC) # $t5, 0x8008 +/* 0B1418 7F07C8A8 8DAD9A3C */ lw $t5, %lo(dword_CODE_bss_800799FC)($t5) +/* 0B141C 7F07C8AC E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B1420 7F07C8B0 0FC160F3 */ jal sinf +/* 0B1424 7F07C8B4 C5AC0010 */ lwc1 $f12, 0x10($t5) +/* 0B1428 7F07C8B8 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 0B142C 7F07C8BC 8FAE0048 */ lw $t6, 0x48($sp) +/* 0B1430 7F07C8C0 8FB9004C */ lw $t9, 0x4c($sp) +/* 0B1434 7F07C8C4 46060202 */ mul.s $f8, $f0, $f6 +/* 0B1438 7F07C8C8 C5CA0000 */ lwc1 $f10, ($t6) +/* 0B143C 7F07C8CC 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_800799FC) # $t7, 0x8008 +/* 0B1440 7F07C8D0 460A4100 */ add.s $f4, $f8, $f10 +/* 0B1444 7F07C8D4 E7240000 */ swc1 $f4, ($t9) +/* 0B1448 7F07C8D8 8DEF9A3C */ lw $t7, %lo(dword_CODE_bss_800799FC)($t7) +/* 0B144C 7F07C8DC 0FC160F3 */ jal sinf +/* 0B1450 7F07C8E0 C5EC0014 */ lwc1 $f12, 0x14($t7) +/* 0B1454 7F07C8E4 8FAC0048 */ lw $t4, 0x48($sp) +/* 0B1458 7F07C8E8 8FB8004C */ lw $t8, 0x4c($sp) +/* 0B145C 7F07C8EC 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_800799FC) # $t5, 0x8008 +/* 0B1460 7F07C8F0 C5860004 */ lwc1 $f6, 4($t4) +/* 0B1464 7F07C8F4 46060200 */ add.s $f8, $f0, $f6 +/* 0B1468 7F07C8F8 E7080004 */ swc1 $f8, 4($t8) +/* 0B146C 7F07C8FC 8DAD9A3C */ lw $t5, %lo(dword_CODE_bss_800799FC)($t5) +/* 0B1470 7F07C900 0FC160F0 */ jal cosf +/* 0B1474 7F07C904 C5AC0014 */ lwc1 $f12, 0x14($t5) +/* 0B1478 7F07C908 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_800799FC) # $t6, 0x8008 +/* 0B147C 7F07C90C 8DCE9A3C */ lw $t6, %lo(dword_CODE_bss_800799FC)($t6) +/* 0B1480 7F07C910 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B1484 7F07C914 0FC160F0 */ jal cosf +/* 0B1488 7F07C918 C5CC0010 */ lwc1 $f12, 0x10($t6) +/* 0B148C 7F07C91C C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B1490 7F07C920 8FB90048 */ lw $t9, 0x48($sp) +/* 0B1494 7F07C924 8FAF004C */ lw $t7, 0x4c($sp) +/* 0B1498 7F07C928 46040182 */ mul.s $f6, $f0, $f4 +/* 0B149C 7F07C92C C72A0008 */ lwc1 $f10, 8($t9) +/* 0B14A0 7F07C930 46065201 */ sub.s $f8, $f10, $f6 +/* 0B14A4 7F07C934 10000087 */ b .Ljp7F07CB54 +/* 0B14A8 7F07C938 E5E80008 */ swc1 $f8, 8($t7) +.Ljp7F07C93C: +/* 0B14AC 7F07C93C 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079A14) # $v0, 0x8008 +/* 0B14B0 7F07C940 8C429A54 */ lw $v0, %lo(dword_CODE_bss_80079A14)($v0) +/* 0B14B4 7F07C944 3C0E8007 */ lui $t6, %hi(ptr_2xxxpresets) # $t6, 0x8007 +/* 0B14B8 7F07C948 8FAF0054 */ lw $t7, 0x54($sp) +/* 0B14BC 7F07C94C 28412710 */ slti $at, $v0, 0x2710 +/* 0B14C0 7F07C950 1020000A */ beqz $at, .Ljp7F07C97C +/* 0B14C4 7F07C954 00026900 */ sll $t5, $v0, 4 +/* 0B14C8 7F07C958 00026080 */ sll $t4, $v0, 2 +/* 0B14CC 7F07C95C 01826023 */ subu $t4, $t4, $v0 +/* 0B14D0 7F07C960 000C6080 */ sll $t4, $t4, 2 +/* 0B14D4 7F07C964 3C188007 */ lui $t8, %hi(ptr_0xxxpresets) # $t8, 0x8007 +/* 0B14D8 7F07C968 8F185D58 */ lw $t8, %lo(ptr_0xxxpresets)($t8) +/* 0B14DC 7F07C96C 01826023 */ subu $t4, $t4, $v0 +/* 0B14E0 7F07C970 000C6080 */ sll $t4, $t4, 2 +/* 0B14E4 7F07C974 10000008 */ b .Ljp7F07C998 +/* 0B14E8 7F07C978 01982021 */ addu $a0, $t4, $t8 +.Ljp7F07C97C: +/* 0B14EC 7F07C97C 8DCE5D5C */ lw $t6, %lo(ptr_2xxxpresets)($t6) +/* 0B14F0 7F07C980 01A26821 */ addu $t5, $t5, $v0 +/* 0B14F4 7F07C984 000D6880 */ sll $t5, $t5, 2 +/* 0B14F8 7F07C988 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 0B14FC 7F07C98C 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 0B1500 7F07C990 01AE2021 */ addu $a0, $t5, $t6 +/* 0B1504 7F07C994 00812021 */ addu $a0, $a0, $at +.Ljp7F07C998: +/* 0B1508 7F07C998 8C990028 */ lw $t9, 0x28($a0) +/* 0B150C 7F07C99C 8FA30058 */ lw $v1, 0x58($sp) +/* 0B1510 7F07C9A0 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) # $v0, 0x8008 +/* 0B1514 7F07C9A4 ADF90000 */ sw $t9, ($t7) +/* 0B1518 7F07C9A8 C4840000 */ lwc1 $f4, ($a0) +/* 0B151C 7F07C9AC 24429A40 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x65c0 +/* 0B1520 7F07C9B0 E4640000 */ swc1 $f4, ($v1) +/* 0B1524 7F07C9B4 C48A0004 */ lwc1 $f10, 4($a0) +/* 0B1528 7F07C9B8 E46A0004 */ swc1 $f10, 4($v1) +/* 0B152C 7F07C9BC C4860008 */ lwc1 $f6, 8($a0) +/* 0B1530 7F07C9C0 E4660008 */ swc1 $f6, 8($v1) +/* 0B1534 7F07C9C4 AFA40020 */ sw $a0, 0x20($sp) +/* 0B1538 7F07C9C8 0FC160F0 */ jal cosf +/* 0B153C 7F07C9CC C44C0000 */ lwc1 $f12, ($v0) +/* 0B1540 7F07C9D0 8FA40020 */ lw $a0, 0x20($sp) +/* 0B1544 7F07C9D4 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B1548 7F07C9D8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A10) # $at, 0x8008 +/* 0B154C 7F07C9DC C4880000 */ lwc1 $f8, ($a0) +/* 0B1550 7F07C9E0 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) # $v0, 0x8008 +/* 0B1554 7F07C9E4 24429A40 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x65c0 +/* 0B1558 7F07C9E8 E5880000 */ swc1 $f8, ($t4) +/* 0B155C 7F07C9EC C42A9A50 */ lwc1 $f10, %lo(flt_CODE_bss_80079A10)($at) +/* 0B1560 7F07C9F0 C4840004 */ lwc1 $f4, 4($a0) +/* 0B1564 7F07C9F4 460A2180 */ add.s $f6, $f4, $f10 +/* 0B1568 7F07C9F8 E5860004 */ swc1 $f6, 4($t4) +/* 0B156C 7F07C9FC 0FC160F3 */ jal sinf +/* 0B1570 7F07CA00 C44C0000 */ lwc1 $f12, ($v0) +/* 0B1574 7F07CA04 8FA40020 */ lw $a0, 0x20($sp) +/* 0B1578 7F07CA08 8FB8004C */ lw $t8, 0x4c($sp) +/* 0B157C 7F07CA0C 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) # $v0, 0x8008 +/* 0B1580 7F07CA10 C4880008 */ lwc1 $f8, 8($a0) +/* 0B1584 7F07CA14 24429A40 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x65c0 +/* 0B1588 7F07CA18 E7080008 */ swc1 $f8, 8($t8) +/* 0B158C 7F07CA1C 0FC160F3 */ jal sinf +/* 0B1590 7F07CA20 C44C0000 */ lwc1 $f12, ($v0) +/* 0B1594 7F07CA24 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) # $v0, 0x8008 +/* 0B1598 7F07CA28 24429A40 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x65c0 +/* 0B159C 7F07CA2C C44C0000 */ lwc1 $f12, ($v0) +/* 0B15A0 7F07CA30 0FC160F0 */ jal cosf +/* 0B15A4 7F07CA34 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B15A8 7F07CA38 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A08) # $at, 0x8008 +/* 0B15AC 7F07CA3C C42A9A48 */ lwc1 $f10, %lo(flt_CODE_bss_80079A08)($at) +/* 0B15B0 7F07CA40 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B15B4 7F07CA44 8FA40020 */ lw $a0, 0x20($sp) +/* 0B15B8 7F07CA48 8FAD0048 */ lw $t5, 0x48($sp) +/* 0B15BC 7F07CA4C 460A2182 */ mul.s $f6, $f4, $f10 +/* 0B15C0 7F07CA50 C4880000 */ lwc1 $f8, ($a0) +/* 0B15C4 7F07CA54 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A10) # $at, 0x8008 +/* 0B15C8 7F07CA58 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) # $v0, 0x8008 +/* 0B15CC 7F07CA5C 24429A40 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x65c0 +/* 0B15D0 7F07CA60 46064100 */ add.s $f4, $f8, $f6 +/* 0B15D4 7F07CA64 E5A40000 */ swc1 $f4, ($t5) +/* 0B15D8 7F07CA68 C4289A50 */ lwc1 $f8, %lo(flt_CODE_bss_80079A10)($at) +/* 0B15DC 7F07CA6C C48A0004 */ lwc1 $f10, 4($a0) +/* 0B15E0 7F07CA70 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A0C) # $at, 0x8008 +/* 0B15E4 7F07CA74 C4249A4C */ lwc1 $f4, %lo(flt_CODE_bss_80079A0C)($at) +/* 0B15E8 7F07CA78 46085180 */ add.s $f6, $f10, $f8 +/* 0B15EC 7F07CA7C 46043280 */ add.s $f10, $f6, $f4 +/* 0B15F0 7F07CA80 E5AA0004 */ swc1 $f10, 4($t5) +/* 0B15F4 7F07CA84 0FC160F0 */ jal cosf +/* 0B15F8 7F07CA88 C44C0000 */ lwc1 $f12, ($v0) +/* 0B15FC 7F07CA8C 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) # $v0, 0x8008 +/* 0B1600 7F07CA90 24429A40 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x65c0 +/* 0B1604 7F07CA94 C44C0000 */ lwc1 $f12, ($v0) +/* 0B1608 7F07CA98 0FC160F3 */ jal sinf +/* 0B160C 7F07CA9C E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B1610 7F07CAA0 3C018005 */ lui $at, %hi(D_8005505C) # $at, 0x8005 +/* 0B1614 7F07CAA4 C42C508C */ lwc1 $f12, %lo(D_8005505C)($at) +/* 0B1618 7F07CAA8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A08) # $at, 0x8008 +/* 0B161C 7F07CAAC C4269A48 */ lwc1 $f6, %lo(flt_CODE_bss_80079A08)($at) +/* 0B1620 7F07CAB0 C7A8001C */ lwc1 $f8, 0x1c($sp) +/* 0B1624 7F07CAB4 8FA40020 */ lw $a0, 0x20($sp) +/* 0B1628 7F07CAB8 8FAE0048 */ lw $t6, 0x48($sp) +/* 0B162C 7F07CABC 46064102 */ mul.s $f4, $f8, $f6 +/* 0B1630 7F07CAC0 C48A0008 */ lwc1 $f10, 8($a0) +/* 0B1634 7F07CAC4 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A04) # $at, 0x8008 +/* 0B1638 7F07CAC8 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) # $v0, 0x8008 +/* 0B163C 7F07CACC 24429A40 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x65c0 +/* 0B1640 7F07CAD0 44807000 */ mtc1 $zero, $f14 +/* 0B1644 7F07CAD4 46045200 */ add.s $f8, $f10, $f4 +/* 0B1648 7F07CAD8 E5C80008 */ swc1 $f8, 8($t6) +/* 0B164C 7F07CADC C4269A44 */ lwc1 $f6, %lo(flt_CODE_bss_80079A04)($at) +/* 0B1650 7F07CAE0 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0B1654 7F07CAE4 C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 0B1658 7F07CAE8 C4480000 */ lwc1 $f8, ($v0) +/* 0B165C 7F07CAEC 460A3102 */ mul.s $f4, $f6, $f10 +/* 0B1660 7F07CAF0 46044180 */ add.s $f6, $f8, $f4 +/* 0B1664 7F07CAF4 E4460000 */ swc1 $f6, ($v0) +/* 0B1668 7F07CAF8 C4420000 */ lwc1 $f2, ($v0) +/* 0B166C 7F07CAFC 4602603E */ c.le.s $f12, $f2 +/* 0B1670 7F07CB00 00000000 */ nop +/* 0B1674 7F07CB04 45020009 */ bc1fl .Ljp7F07CB2C +/* 0B1678 7F07CB08 460E103C */ c.lt.s $f2, $f14 +/* 0B167C 7F07CB0C 460C1281 */ sub.s $f10, $f2, $f12 +.Ljp7F07CB10: +/* 0B1680 7F07CB10 E44A0000 */ swc1 $f10, ($v0) +/* 0B1684 7F07CB14 C4420000 */ lwc1 $f2, ($v0) +/* 0B1688 7F07CB18 4602603E */ c.le.s $f12, $f2 +/* 0B168C 7F07CB1C 00000000 */ nop +/* 0B1690 7F07CB20 4503FFFB */ bc1tl .Ljp7F07CB10 +/* 0B1694 7F07CB24 460C1281 */ sub.s $f10, $f2, $f12 +/* 0B1698 7F07CB28 460E103C */ c.lt.s $f2, $f14 +.Ljp7F07CB2C: +/* 0B169C 7F07CB2C 00000000 */ nop +/* 0B16A0 7F07CB30 45020009 */ bc1fl .Ljp7F07CB58 +/* 0B16A4 7F07CB34 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B16A8 7F07CB38 460C1200 */ add.s $f8, $f2, $f12 +.Ljp7F07CB3C: +/* 0B16AC 7F07CB3C E4480000 */ swc1 $f8, ($v0) +/* 0B16B0 7F07CB40 C4420000 */ lwc1 $f2, ($v0) +/* 0B16B4 7F07CB44 460E103C */ c.lt.s $f2, $f14 +/* 0B16B8 7F07CB48 00000000 */ nop +/* 0B16BC 7F07CB4C 4503FFFB */ bc1tl .Ljp7F07CB3C +/* 0B16C0 7F07CB50 460C1200 */ add.s $f8, $f2, $f12 +.Ljp7F07CB54: +/* 0B16C4 7F07CB54 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F07CB58: +/* 0B16C8 7F07CB58 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0B16CC 7F07CB5C 03E00008 */ jr $ra +/* 0B16D0 7F07CB60 00000000 */ nop +) +#endif + +#endif + + +void sub_GAME_7F07C540(s32 arg0) +{ + pPlayer->field_42C = arg0; +} + +void set_BONDdata_lookahead_setting(s32 arg0) +{ + pPlayer->automovecentreenabled = arg0; +} + +s32 get_BONDdata_lookahead_setting(void) +{ + return pPlayer->automovecentreenabled; +} + +void set_BONDdata_autoaim_y(s32 param_1) +{ + pPlayer->autoyaimenabled = param_1; +} + + + + + + +#ifdef NONMATCHING +s32 get_BONDdata_autoaim_y(void) +{ + if (get_num_players() == 1) { + return pPlayer->autoyaimenabled; + } + else { + return pPlayersPerm->autoaim; + } +} +#else +GLOBAL_ASM( +.text +glabel get_BONDdata_autoaim_y +/* 0B10B0 7F07C580 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B10B4 7F07C584 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B10B8 7F07C588 0FC26919 */ jal get_num_players +/* 0B10BC 7F07C58C 00000000 */ nop +/* 0B10C0 7F07C590 24010001 */ li $at, 1 +/* 0B10C4 7F07C594 14410005 */ bne $v0, $at, .L7F07C5AC +/* 0B10C8 7F07C598 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B10CC 7F07C59C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B10D0 7F07C5A0 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B10D4 7F07C5A4 10000004 */ b .L7F07C5B8 +/* 0B10D8 7F07C5A8 8DC20128 */ lw $v0, 0x128($t6) +.L7F07C5AC: +/* 0B10DC 7F07C5AC 3C0F8008 */ lui $t7, %hi(pPlayersPerm) +/* 0B10E0 7F07C5B0 8DEFA0B4 */ lw $t7, %lo(pPlayersPerm)($t7) +/* 0B10E4 7F07C5B4 91E2006A */ lbu $v0, 0x6a($t7) +.L7F07C5B8: +/* 0B10E8 7F07C5B8 03E00008 */ jr $ra +/* 0B10EC 7F07C5BC 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + + +int redirect_get_BONDdata_autoaim_y(void) { + // Node 0 + return get_BONDdata_autoaim_y(); +} + +s32 get_BONDdata_is_aiming(void) { + return pPlayer->insightaimmode; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07C5F0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07C5F0 +/* 0B1120 7F07C5F0 44856000 */ mtc1 $a1, $f12 +/* 0B1124 7F07C5F4 3C058008 */ lui $a1, %hi(pPlayer) +/* 0B1128 7F07C5F8 24A5A0B0 */ addiu $a1, %lo(pPlayer) # addiu $a1, $a1, -0x5f50 +/* 0B112C 7F07C5FC 8CA20000 */ lw $v0, ($a1) +/* 0B1130 7F07C600 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 0B1134 7F07C604 8C430134 */ lw $v1, 0x134($v0) +/* 0B1138 7F07C608 04620006 */ bltzl $v1, .L7F07C624 +/* 0B113C 7F07C60C 8C580130 */ lw $t8, 0x130($v0) +/* 0B1140 7F07C610 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 0B1144 7F07C614 006E7823 */ subu $t7, $v1, $t6 +/* 0B1148 7F07C618 AC4F0134 */ sw $t7, 0x134($v0) +/* 0B114C 7F07C61C 8CA20000 */ lw $v0, ($a1) +/* 0B1150 7F07C620 8C580130 */ lw $t8, 0x130($v0) +.L7F07C624: +/* 0B1154 7F07C624 5098000A */ beql $a0, $t8, .L7F07C650 +/* 0B1158 7F07C628 E44C012C */ swc1 $f12, 0x12c($v0) +/* 0B115C 7F07C62C 8C590134 */ lw $t9, 0x134($v0) +/* 0B1160 7F07C630 2408001E */ li $t0, 30 +/* 0B1164 7F07C634 07210006 */ bgez $t9, .L7F07C650 +/* 0B1168 7F07C638 00000000 */ nop +/* 0B116C 7F07C63C AC480134 */ sw $t0, 0x134($v0) +/* 0B1170 7F07C640 8CA90000 */ lw $t1, ($a1) +/* 0B1174 7F07C644 AD240130 */ sw $a0, 0x130($t1) +/* 0B1178 7F07C648 8CA20000 */ lw $v0, ($a1) +/* 0B117C 7F07C64C E44C012C */ swc1 $f12, 0x12c($v0) +.L7F07C650: +/* 0B1180 7F07C650 03E00008 */ jr $ra +/* 0B1184 7F07C654 00000000 */ nop +) +#endif + + + + + +void set_BONDdata_autoaim_x(s32 param_1) { + pPlayer->autoxaimenabled = param_1; + return; +} + + + + + +#ifdef NONMATCHING +void get_BONDdata_autoaim_x(void) { + // Node 0 + if (get_num_players() != 1) + { + // Node 2 + // Node 3 + return pPlayersPerm->unk6A; + } + // Node 1 + return pPlayersPerm->unk6A; +} +#else +GLOBAL_ASM( +.text +glabel get_BONDdata_autoaim_x +/* 0B1198 7F07C668 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B119C 7F07C66C AFBF0014 */ sw $ra, 0x14($sp) +/* 0B11A0 7F07C670 0FC26919 */ jal get_num_players +/* 0B11A4 7F07C674 00000000 */ nop +/* 0B11A8 7F07C678 24010001 */ li $at, 1 +/* 0B11AC 7F07C67C 14410005 */ bne $v0, $at, .L7F07C694 +/* 0B11B0 7F07C680 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B11B4 7F07C684 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B11B8 7F07C688 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B11BC 7F07C68C 10000004 */ b .L7F07C6A0 +/* 0B11C0 7F07C690 8DC20138 */ lw $v0, 0x138($t6) +.L7F07C694: +/* 0B11C4 7F07C694 3C0F8008 */ lui $t7, %hi(pPlayersPerm) +/* 0B11C8 7F07C698 8DEFA0B4 */ lw $t7, %lo(pPlayersPerm)($t7) +/* 0B11CC 7F07C69C 91E2006A */ lbu $v0, 0x6a($t7) +.L7F07C6A0: +/* 0B11D0 7F07C6A0 03E00008 */ jr $ra +/* 0B11D4 7F07C6A4 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +int redirect_get_BONDdata_autoaim_x(void) { + return get_BONDdata_autoaim_x(); +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07C6C8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07C6C8 +/* 0B11F8 7F07C6C8 44856000 */ mtc1 $a1, $f12 +/* 0B11FC 7F07C6CC 3C058008 */ lui $a1, %hi(pPlayer) +/* 0B1200 7F07C6D0 24A5A0B0 */ addiu $a1, %lo(pPlayer) # addiu $a1, $a1, -0x5f50 +/* 0B1204 7F07C6D4 8CA20000 */ lw $v0, ($a1) +/* 0B1208 7F07C6D8 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 0B120C 7F07C6DC 8C430144 */ lw $v1, 0x144($v0) +/* 0B1210 7F07C6E0 04620006 */ bltzl $v1, .L7F07C6FC +/* 0B1214 7F07C6E4 8C580140 */ lw $t8, 0x140($v0) +/* 0B1218 7F07C6E8 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 0B121C 7F07C6EC 006E7823 */ subu $t7, $v1, $t6 +/* 0B1220 7F07C6F0 AC4F0144 */ sw $t7, 0x144($v0) +/* 0B1224 7F07C6F4 8CA20000 */ lw $v0, ($a1) +/* 0B1228 7F07C6F8 8C580140 */ lw $t8, 0x140($v0) +.L7F07C6FC: +/* 0B122C 7F07C6FC 5098000A */ beql $a0, $t8, .L7F07C728 +/* 0B1230 7F07C700 E44C013C */ swc1 $f12, 0x13c($v0) +/* 0B1234 7F07C704 8C590144 */ lw $t9, 0x144($v0) +/* 0B1238 7F07C708 2408001E */ li $t0, 30 +/* 0B123C 7F07C70C 07210006 */ bgez $t9, .L7F07C728 +/* 0B1240 7F07C710 00000000 */ nop +/* 0B1244 7F07C714 AC480144 */ sw $t0, 0x144($v0) +/* 0B1248 7F07C718 8CA90000 */ lw $t1, ($a1) +/* 0B124C 7F07C71C AD240140 */ sw $a0, 0x140($t1) +/* 0B1250 7F07C720 8CA20000 */ lw $v0, ($a1) +/* 0B1254 7F07C724 E44C013C */ swc1 $f12, 0x13c($v0) +.L7F07C728: +/* 0B1258 7F07C728 03E00008 */ jr $ra +/* 0B125C 7F07C72C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 change_player_pos_to_target(void *arg0, void *arg1, ?32 arg2) { + // Node 0 + arg0->unk4 = (f32) *arg1; + arg0->unk8 = (f32) arg1->unk4; + arg0->unkC = (f32) arg1->unk8; + *arg0 = arg2; + arg0->unk50 = arg2; + arg0->unk3C = 0.0f; + arg0->unk40 = 0.0f; + arg0->unk44 = 0.0f; + arg0->unk4C = 0.0f; + arg0->unk10 = 0.0f; + arg0->unk14 = 0.0f; + arg0->unk2C = (f32) arg0->unk4; + arg0->unk1C = (f32) arg0->unk4; + arg0->unk38 = 1.0f; + arg0->unk48 = 1.0f; + arg0->unk18 = 1.0f; + arg0->unk30 = (f32) arg0->unk8; + arg0->unk20 = (f32) arg0->unk8; + arg0->unk34 = (f32) arg0->unkC; + arg0->unk24 = (f32) arg0->unkC; + arg0->unk28 = 30.0f; + return arg0->unk4; +} +#else +GLOBAL_ASM( +.text +glabel change_player_pos_to_target +/* 0B1260 7F07C730 C4A40000 */ lwc1 $f4, ($a1) +/* 0B1264 7F07C734 44808000 */ mtc1 $zero, $f16 +/* 0B1268 7F07C738 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B126C 7F07C73C E4840004 */ swc1 $f4, 4($a0) +/* 0B1270 7F07C740 C4A60004 */ lwc1 $f6, 4($a1) +/* 0B1274 7F07C744 44817000 */ mtc1 $at, $f14 +/* 0B1278 7F07C748 C4800004 */ lwc1 $f0, 4($a0) +/* 0B127C 7F07C74C E4860008 */ swc1 $f6, 8($a0) +/* 0B1280 7F07C750 C4A80008 */ lwc1 $f8, 8($a1) +/* 0B1284 7F07C754 C4820008 */ lwc1 $f2, 8($a0) +/* 0B1288 7F07C758 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B128C 7F07C75C E488000C */ swc1 $f8, 0xc($a0) +/* 0B1290 7F07C760 C48C000C */ lwc1 $f12, 0xc($a0) +/* 0B1294 7F07C764 44815000 */ mtc1 $at, $f10 +/* 0B1298 7F07C768 AC860000 */ sw $a2, ($a0) +/* 0B129C 7F07C76C AC860050 */ sw $a2, 0x50($a0) +/* 0B12A0 7F07C770 E490003C */ swc1 $f16, 0x3c($a0) +/* 0B12A4 7F07C774 E4900040 */ swc1 $f16, 0x40($a0) +/* 0B12A8 7F07C778 E4900044 */ swc1 $f16, 0x44($a0) +/* 0B12AC 7F07C77C E490004C */ swc1 $f16, 0x4c($a0) +/* 0B12B0 7F07C780 E4900010 */ swc1 $f16, 0x10($a0) +/* 0B12B4 7F07C784 E4900014 */ swc1 $f16, 0x14($a0) +/* 0B12B8 7F07C788 E480002C */ swc1 $f0, 0x2c($a0) +/* 0B12BC 7F07C78C E480001C */ swc1 $f0, 0x1c($a0) +/* 0B12C0 7F07C790 E48E0038 */ swc1 $f14, 0x38($a0) +/* 0B12C4 7F07C794 E48E0048 */ swc1 $f14, 0x48($a0) +/* 0B12C8 7F07C798 E48E0018 */ swc1 $f14, 0x18($a0) +/* 0B12CC 7F07C79C E4820030 */ swc1 $f2, 0x30($a0) +/* 0B12D0 7F07C7A0 E4820020 */ swc1 $f2, 0x20($a0) +/* 0B12D4 7F07C7A4 E48C0034 */ swc1 $f12, 0x34($a0) +/* 0B12D8 7F07C7A8 E48C0024 */ swc1 $f12, 0x24($a0) +/* 0B12DC 7F07C7AC 03E00008 */ jr $ra +/* 0B12E0 7F07C7B0 E48A0028 */ swc1 $f10, 0x28($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07C7B4(void) { + ? sp24; + + // Node 0 + if (ptr_playerstank != 0) + { + // Node 1 + matrix_4x4_set_rotation_around_y((D_80055060 - D_80036474), ptr_playerstank, &sp24, ptr_playerstank->unk4->unk14->unk8->unk8->unk8->unk4, ptr_playerstank->unk4->unk14->unk8->unk8->unk4->unk4); + flt_CODE_bss_800799A8 = (f32) *sp68; + flt_CODE_bss_800799A8.unk4 = (f32) sp68->unk4; + flt_CODE_bss_800799A8.unk8 = (f32) sp68->unk8; + matrix_4x4_rotate_vector_in_place(&sp24, &flt_CODE_bss_800799A8, sp68); + flt_CODE_bss_800799A8 = (f32) (flt_CODE_bss_800799A8 + *sp64); + flt_CODE_bss_800799A8.unk4 = (f32) (flt_CODE_bss_800799A8.unk4 + sp64->unk4); + flt_CODE_bss_800799A8.unk8 = (f32) (flt_CODE_bss_800799A8.unk8 + sp64->unk8); + } + // Node 2 + return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055060 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F07C7B4 +/* 0B12E4 7F07C7B4 3C048003 */ lui $a0, %hi(ptr_playerstank) +/* 0B12E8 7F07C7B8 8C846450 */ lw $a0, %lo(ptr_playerstank)($a0) +/* 0B12EC 7F07C7BC 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0B12F0 7F07C7C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B12F4 7F07C7C4 5080002D */ beql $a0, $zero, .L7F07C87C +/* 0B12F8 7F07C7C8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B12FC 7F07C7CC 8C830004 */ lw $v1, 4($a0) +/* 0B1300 7F07C7D0 3C018005 */ lui $at, %hi(D_80055060) +/* 0B1304 7F07C7D4 C4245060 */ lwc1 $f4, %lo(D_80055060)($at) +/* 0B1308 7F07C7D8 8C6E0014 */ lw $t6, 0x14($v1) +/* 0B130C 7F07C7DC 3C018003 */ lui $at, %hi(D_80036474) +/* 0B1310 7F07C7E0 C4266474 */ lwc1 $f6, %lo(D_80036474)($at) +/* 0B1314 7F07C7E4 8DCF0008 */ lw $t7, 8($t6) +/* 0B1318 7F07C7E8 27A50024 */ addiu $a1, $sp, 0x24 +/* 0B131C 7F07C7EC 46062301 */ sub.s $f12, $f4, $f6 +/* 0B1320 7F07C7F0 8DE20008 */ lw $v0, 8($t7) +/* 0B1324 7F07C7F4 8C580008 */ lw $t8, 8($v0) +/* 0B1328 7F07C7F8 8C590004 */ lw $t9, 4($v0) +/* 0B132C 7F07C7FC 8F060004 */ lw $a2, 4($t8) +/* 0B1330 7F07C800 8F270004 */ lw $a3, 4($t9) +/* 0B1334 7F07C804 AFA60068 */ sw $a2, 0x68($sp) +/* 0B1338 7F07C808 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0B133C 7F07C80C AFA70064 */ sw $a3, 0x64($sp) +/* 0B1340 7F07C810 8FA60068 */ lw $a2, 0x68($sp) +/* 0B1344 7F07C814 3C058008 */ lui $a1, %hi(flt_CODE_bss_800799A8) +/* 0B1348 7F07C818 24A599A8 */ addiu $a1, %lo(flt_CODE_bss_800799A8) # addiu $a1, $a1, -0x6658 +/* 0B134C 7F07C81C C4C80000 */ lwc1 $f8, ($a2) +/* 0B1350 7F07C820 27A40024 */ addiu $a0, $sp, 0x24 +/* 0B1354 7F07C824 E4A80000 */ swc1 $f8, ($a1) +/* 0B1358 7F07C828 C4CA0004 */ lwc1 $f10, 4($a2) +/* 0B135C 7F07C82C E4AA0004 */ swc1 $f10, 4($a1) +/* 0B1360 7F07C830 C4D00008 */ lwc1 $f16, 8($a2) +/* 0B1364 7F07C834 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0B1368 7F07C838 E4B00008 */ swc1 $f16, 8($a1) +/* 0B136C 7F07C83C 8FA70064 */ lw $a3, 0x64($sp) +/* 0B1370 7F07C840 3C058008 */ lui $a1, %hi(flt_CODE_bss_800799A8) +/* 0B1374 7F07C844 24A599A8 */ addiu $a1, %lo(flt_CODE_bss_800799A8) # addiu $a1, $a1, -0x6658 +/* 0B1378 7F07C848 C4B20000 */ lwc1 $f18, ($a1) +/* 0B137C 7F07C84C C4E40000 */ lwc1 $f4, ($a3) +/* 0B1380 7F07C850 C4A80004 */ lwc1 $f8, 4($a1) +/* 0B1384 7F07C854 46049180 */ add.s $f6, $f18, $f4 +/* 0B1388 7F07C858 C4B20008 */ lwc1 $f18, 8($a1) +/* 0B138C 7F07C85C E4A60000 */ swc1 $f6, ($a1) +/* 0B1390 7F07C860 C4EA0004 */ lwc1 $f10, 4($a3) +/* 0B1394 7F07C864 460A4400 */ add.s $f16, $f8, $f10 +/* 0B1398 7F07C868 E4B00004 */ swc1 $f16, 4($a1) +/* 0B139C 7F07C86C C4E40008 */ lwc1 $f4, 8($a3) +/* 0B13A0 7F07C870 46049180 */ add.s $f6, $f18, $f4 +/* 0B13A4 7F07C874 E4A60008 */ swc1 $f6, 8($a1) +/* 0B13A8 7F07C878 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07C87C: +/* 0B13AC 7F07C87C 27BD0070 */ addiu $sp, $sp, 0x70 +/* 0B13B0 7F07C880 03E00008 */ jr $ra +/* 0B13B4 7F07C884 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F07C888(void *arg0, void *arg1, ? arg2) { + f32 sp1C; + f32 sp20; + f32 sp24; + f32 sp38; + f32 sp3C; + f32 sp40; + f32 sp44; + ? temp_ret; + f32 temp_f6; + f32 temp_f10; + f32 temp_f12; + f32 temp_f2; + f32 temp_f16; + f32 temp_f18; + f32 temp_f8; + f32 temp_f4; + f32 temp_f0; + f32 temp_f2_2; + f32 temp_f10_2; + + // Node 0 + temp_ret = sub_GAME_7F040078(ptr_playerstank->unk4, arg0); + temp_f6 = (temp_ret->unk4 - flt_CODE_bss_800799A8); + sp44 = temp_f6; + temp_f10 = (temp_ret->unk8 - flt_CODE_bss_800799A8); + sp40 = temp_f10; + sp3C = (f32) (temp_ret->unk14 - flt_CODE_bss_800799A8.unk8); + sp38 = (f32) (temp_ret->unk18 - flt_CODE_bss_800799A8.unk8); + temp_f12 = (sinf(arg2, (cosf(arg2) * sp4C->unk14->unk14)) * sp4C->unk14->unk14); + temp_f2 = (-sp3C * temp_f12); + temp_f16 = (sp44 * sp34); + *arg0 = (f32) ((*arg1 + temp_f2) + temp_f16); + temp_f18 = (sp3C * sp34); + temp_f8 = (temp_f6 * temp_f12); + sp24 = temp_f8; + arg0->unk4 = (f32) ((arg1->unk8 + temp_f18) + temp_f8); + temp_f4 = (temp_f10 * sp34); + sp20 = temp_f4; + arg0->unk8 = (f32) ((*arg1 + temp_f2) + temp_f4); + temp_f0 = (sp40 * temp_f12); + arg0->unkC = (f32) ((arg1->unk8 + temp_f18) + temp_f0); + temp_f2_2 = (-sp38 * temp_f12); + arg0->unk10 = (f32) ((*arg1 + temp_f2_2) + sp20); + temp_f10_2 = (sp38 * sp34); + sp1C = temp_f10_2; + arg0->unk14 = (f32) ((arg1->unk8 + temp_f10_2) + temp_f0); + arg0->unk18 = (f32) ((*arg1 + temp_f2_2) + temp_f16); + arg0->unk1C = (f32) ((arg1->unk8 + sp1C) + sp24); + return temp_f0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07C888 +/* 0B13B8 7F07C888 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0B13BC 7F07C88C 3C0E8003 */ lui $t6, %hi(ptr_playerstank) +/* 0B13C0 7F07C890 8DCE6450 */ lw $t6, %lo(ptr_playerstank)($t6) +/* 0B13C4 7F07C894 AFA60058 */ sw $a2, 0x58($sp) +/* 0B13C8 7F07C898 00803025 */ move $a2, $a0 +/* 0B13CC 7F07C89C AFBF0014 */ sw $ra, 0x14($sp) +/* 0B13D0 7F07C8A0 AFA40050 */ sw $a0, 0x50($sp) +/* 0B13D4 7F07C8A4 8DC40004 */ lw $a0, 4($t6) +/* 0B13D8 7F07C8A8 AFA60050 */ sw $a2, 0x50($sp) +/* 0B13DC 7F07C8AC AFA50054 */ sw $a1, 0x54($sp) +/* 0B13E0 7F07C8B0 0FC1001E */ jal sub_GAME_7F040078 +/* 0B13E4 7F07C8B4 AFA4004C */ sw $a0, 0x4c($sp) +/* 0B13E8 7F07C8B8 3C038008 */ lui $v1, %hi(flt_CODE_bss_800799A8) +/* 0B13EC 7F07C8BC 246399A8 */ addiu $v1, %lo(flt_CODE_bss_800799A8) # addiu $v1, $v1, -0x6658 +/* 0B13F0 7F07C8C0 C4600000 */ lwc1 $f0, ($v1) +/* 0B13F4 7F07C8C4 C4440004 */ lwc1 $f4, 4($v0) +/* 0B13F8 7F07C8C8 C4620008 */ lwc1 $f2, 8($v1) +/* 0B13FC 7F07C8CC C7AC0058 */ lwc1 $f12, 0x58($sp) +/* 0B1400 7F07C8D0 46002181 */ sub.s $f6, $f4, $f0 +/* 0B1404 7F07C8D4 E7A60044 */ swc1 $f6, 0x44($sp) +/* 0B1408 7F07C8D8 C4480008 */ lwc1 $f8, 8($v0) +/* 0B140C 7F07C8DC 46004281 */ sub.s $f10, $f8, $f0 +/* 0B1410 7F07C8E0 E7AA0040 */ swc1 $f10, 0x40($sp) +/* 0B1414 7F07C8E4 C4440014 */ lwc1 $f4, 0x14($v0) +/* 0B1418 7F07C8E8 46022181 */ sub.s $f6, $f4, $f2 +/* 0B141C 7F07C8EC E7A6003C */ swc1 $f6, 0x3c($sp) +/* 0B1420 7F07C8F0 C4480018 */ lwc1 $f8, 0x18($v0) +/* 0B1424 7F07C8F4 46024281 */ sub.s $f10, $f8, $f2 +/* 0B1428 7F07C8F8 0FC15FA8 */ jal cosf +/* 0B142C 7F07C8FC E7AA0038 */ swc1 $f10, 0x38($sp) +/* 0B1430 7F07C900 8FAF004C */ lw $t7, 0x4c($sp) +/* 0B1434 7F07C904 C7AC0058 */ lwc1 $f12, 0x58($sp) +/* 0B1438 7F07C908 8DF80014 */ lw $t8, 0x14($t7) +/* 0B143C 7F07C90C C7040014 */ lwc1 $f4, 0x14($t8) +/* 0B1440 7F07C910 46040382 */ mul.s $f14, $f0, $f4 +/* 0B1444 7F07C914 0FC15FAB */ jal sinf +/* 0B1448 7F07C918 E7AE0034 */ swc1 $f14, 0x34($sp) +/* 0B144C 7F07C91C 8FB9004C */ lw $t9, 0x4c($sp) +/* 0B1450 7F07C920 C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0B1454 7F07C924 8FA50054 */ lw $a1, 0x54($sp) +/* 0B1458 7F07C928 8F280014 */ lw $t0, 0x14($t9) +/* 0B145C 7F07C92C 46004287 */ neg.s $f10, $f8 +/* 0B1460 7F07C930 C7AE0034 */ lwc1 $f14, 0x34($sp) +/* 0B1464 7F07C934 C5060014 */ lwc1 $f6, 0x14($t0) +/* 0B1468 7F07C938 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B146C 7F07C93C 8FA60050 */ lw $a2, 0x50($sp) +/* 0B1470 7F07C940 46060302 */ mul.s $f12, $f0, $f6 +/* 0B1474 7F07C944 C4A60000 */ lwc1 $f6, ($a1) +/* 0B1478 7F07C948 460C5082 */ mul.s $f2, $f10, $f12 +/* 0B147C 7F07C94C 46023200 */ add.s $f8, $f6, $f2 +/* 0B1480 7F07C950 460E2402 */ mul.s $f16, $f4, $f14 +/* 0B1484 7F07C954 46104280 */ add.s $f10, $f8, $f16 +/* 0B1488 7F07C958 E4CA0000 */ swc1 $f10, ($a2) +/* 0B148C 7F07C95C C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0B1490 7F07C960 C7A60044 */ lwc1 $f6, 0x44($sp) +/* 0B1494 7F07C964 460E2482 */ mul.s $f18, $f4, $f14 +/* 0B1498 7F07C968 00000000 */ nop +/* 0B149C 7F07C96C 460C3202 */ mul.s $f8, $f6, $f12 +/* 0B14A0 7F07C970 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0B14A4 7F07C974 C4AA0008 */ lwc1 $f10, 8($a1) +/* 0B14A8 7F07C978 46125100 */ add.s $f4, $f10, $f18 +/* 0B14AC 7F07C97C 46082180 */ add.s $f6, $f4, $f8 +/* 0B14B0 7F07C980 E4C60004 */ swc1 $f6, 4($a2) +/* 0B14B4 7F07C984 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 0B14B8 7F07C988 460E5102 */ mul.s $f4, $f10, $f14 +/* 0B14BC 7F07C98C E7A40020 */ swc1 $f4, 0x20($sp) +/* 0B14C0 7F07C990 C4A80000 */ lwc1 $f8, ($a1) +/* 0B14C4 7F07C994 46024180 */ add.s $f6, $f8, $f2 +/* 0B14C8 7F07C998 46043280 */ add.s $f10, $f6, $f4 +/* 0B14CC 7F07C99C E4CA0008 */ swc1 $f10, 8($a2) +/* 0B14D0 7F07C9A0 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 0B14D4 7F07C9A4 C4A60008 */ lwc1 $f6, 8($a1) +/* 0B14D8 7F07C9A8 460C4002 */ mul.s $f0, $f8, $f12 +/* 0B14DC 7F07C9AC 46123100 */ add.s $f4, $f6, $f18 +/* 0B14E0 7F07C9B0 46002280 */ add.s $f10, $f4, $f0 +/* 0B14E4 7F07C9B4 E4CA000C */ swc1 $f10, 0xc($a2) +/* 0B14E8 7F07C9B8 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0B14EC 7F07C9BC C4A40000 */ lwc1 $f4, ($a1) +/* 0B14F0 7F07C9C0 46004187 */ neg.s $f6, $f8 +/* 0B14F4 7F07C9C4 C7A80020 */ lwc1 $f8, 0x20($sp) +/* 0B14F8 7F07C9C8 460C3082 */ mul.s $f2, $f6, $f12 +/* 0B14FC 7F07C9CC 46022280 */ add.s $f10, $f4, $f2 +/* 0B1500 7F07C9D0 46085180 */ add.s $f6, $f10, $f8 +/* 0B1504 7F07C9D4 E4C60010 */ swc1 $f6, 0x10($a2) +/* 0B1508 7F07C9D8 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0B150C 7F07C9DC 460E2282 */ mul.s $f10, $f4, $f14 +/* 0B1510 7F07C9E0 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 0B1514 7F07C9E4 C4A80008 */ lwc1 $f8, 8($a1) +/* 0B1518 7F07C9E8 460A4180 */ add.s $f6, $f8, $f10 +/* 0B151C 7F07C9EC 46003100 */ add.s $f4, $f6, $f0 +/* 0B1520 7F07C9F0 E4C40014 */ swc1 $f4, 0x14($a2) +/* 0B1524 7F07C9F4 C4A80000 */ lwc1 $f8, ($a1) +/* 0B1528 7F07C9F8 46024280 */ add.s $f10, $f8, $f2 +/* 0B152C 7F07C9FC 46105180 */ add.s $f6, $f10, $f16 +/* 0B1530 7F07CA00 E4C60018 */ swc1 $f6, 0x18($a2) +/* 0B1534 7F07CA04 C7A8001C */ lwc1 $f8, 0x1c($sp) +/* 0B1538 7F07CA08 C4A40008 */ lwc1 $f4, 8($a1) +/* 0B153C 7F07CA0C C7A60024 */ lwc1 $f6, 0x24($sp) +/* 0B1540 7F07CA10 46082280 */ add.s $f10, $f4, $f8 +/* 0B1544 7F07CA14 46065100 */ add.s $f4, $f10, $f6 +/* 0B1548 7F07CA18 E4C4001C */ swc1 $f4, 0x1c($a2) +/* 0B154C 7F07CA1C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B1550 7F07CA20 27BD0050 */ addiu $sp, $sp, 0x50 +/* 0B1554 7F07CA24 03E00008 */ jr $ra +/* 0B1558 7F07CA28 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F07CA2C(s32 arg1, f32 arg2, f32 arg3, f32 arg4, ?32 arg5, void *arg6, void *arg7) { + ? temp_ret; + + // Node 0 + temp_ret = sub_GAME_7F0B0E24(arg4, arg5, 0.0f, 1.0f, 0.0f, 1.0f); + if (temp_ret == 0) + { + // Node 1 + if (arg6 != 0) + { + // Node 2 + *arg6 = arg1; + arg6->unk4 = 0.0f; + arg6->unk8 = arg2; + arg7->unk4 = 0.0f; + *arg7 = arg3; + arg7->unk8 = arg4; + } + } + // Node 3 + return temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07CA2C +/* 0B155C 7F07CA2C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0B1560 7F07CA30 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B1564 7F07CA34 44811000 */ mtc1 $at, $f2 +/* 0B1568 7F07CA38 44800000 */ mtc1 $zero, $f0 +/* 0B156C 7F07CA3C C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0B1570 7F07CA40 8FAE0044 */ lw $t6, 0x44($sp) +/* 0B1574 7F07CA44 AFBF002C */ sw $ra, 0x2c($sp) +/* 0B1578 7F07CA48 AFA50034 */ sw $a1, 0x34($sp) +/* 0B157C 7F07CA4C AFA60038 */ sw $a2, 0x38($sp) +/* 0B1580 7F07CA50 AFA7003C */ sw $a3, 0x3c($sp) +/* 0B1584 7F07CA54 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0B1588 7F07CA58 E7A20024 */ swc1 $f2, 0x24($sp) +/* 0B158C 7F07CA5C E7A40010 */ swc1 $f4, 0x10($sp) +/* 0B1590 7F07CA60 E7A00018 */ swc1 $f0, 0x18($sp) +/* 0B1594 7F07CA64 E7A00020 */ swc1 $f0, 0x20($sp) +/* 0B1598 7F07CA68 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0B159C 7F07CA6C AFAE0014 */ sw $t6, 0x14($sp) +/* 0B15A0 7F07CA70 44800000 */ mtc1 $zero, $f0 +/* 0B15A4 7F07CA74 1440000F */ bnez $v0, .L7F07CAB4 +/* 0B15A8 7F07CA78 00402025 */ move $a0, $v0 +/* 0B15AC 7F07CA7C 8FA30048 */ lw $v1, 0x48($sp) +/* 0B15B0 7F07CA80 C7A60034 */ lwc1 $f6, 0x34($sp) +/* 0B15B4 7F07CA84 5060000C */ beql $v1, $zero, .L7F07CAB8 +/* 0B15B8 7F07CA88 8FBF002C */ lw $ra, 0x2c($sp) +/* 0B15BC 7F07CA8C 8FA2004C */ lw $v0, 0x4c($sp) +/* 0B15C0 7F07CA90 E4660000 */ swc1 $f6, ($v1) +/* 0B15C4 7F07CA94 E4600004 */ swc1 $f0, 4($v1) +/* 0B15C8 7F07CA98 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0B15CC 7F07CA9C E4680008 */ swc1 $f8, 8($v1) +/* 0B15D0 7F07CAA0 C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 0B15D4 7F07CAA4 E4400004 */ swc1 $f0, 4($v0) +/* 0B15D8 7F07CAA8 E44A0000 */ swc1 $f10, ($v0) +/* 0B15DC 7F07CAAC C7B00040 */ lwc1 $f16, 0x40($sp) +/* 0B15E0 7F07CAB0 E4500008 */ swc1 $f16, 8($v0) +.L7F07CAB4: +/* 0B15E4 7F07CAB4 8FBF002C */ lw $ra, 0x2c($sp) +.L7F07CAB8: +/* 0B15E8 7F07CAB8 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0B15EC 7F07CABC 00801025 */ move $v0, $a0 +/* 0B15F0 7F07CAC0 03E00008 */ jr $ra +/* 0B15F4 7F07CAC4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +?32 sub_GAME_7F07CAC8(void *arg0, s32 arg1, f32 arg2, ?32 arg3, ?32 arg4) { + ? sp34; + f32 sp74; + f32 sp7C; + void *sp8C; + ?32 sp94; + ? sp98; + s32 spBC; + f32 temp_f0; + f32 temp_f6; + f32 temp_f16; + f32 temp_f4; + f32 temp_f10; + f32 phi_f0; + f32 phi_f0_2; + + // Node 0 + sp94 = 0; + sub_GAME_7F07C888(&sp98, arg0); + if (ptr_playerstank != 0) + { + // Node 1 + sub_GAME_7F03D058(ptr_playerstank, 0); + } + // Node 2 + if (sub_GAME_7F07CA2C(&spBC, *arg0, arg0->unk8, sp98, sp9C, 0x213, arg3, arg4) != 0) + { + // Node 3 + if (sub_GAME_7F07CA2C(&spBC, sp98, sp9C, spA0, spA4, 0x213, arg3, arg4) != 0) + { + // Node 4 + if (sub_GAME_7F07CA2C(&spBC, spA0, spA4, spA8, spAC, 0x213, arg3, arg4) != 0) + { + // Node 5 + if (sub_GAME_7F07CA2C(&spBC, spA8, spAC, spB0, spB4, 0x213, arg3, arg4) != 0) + { + // Node 6 + if (sub_GAME_7F07CA2C(&spBC, spB0, spB4, sp98, sp9C, 0x213, arg3, arg4) != 0) + { + // Node 7 + sp94 = 1; + if (ptr_playerstank != 0) + { + // Node 8 + sp74 = (f32) ((*ptr_playerstank->unk4->unk14->unk8->unk8->unk10->unk4 + *ptr_playerstank->unk4->unk14->unk8->unk8->unkC->unk4) - *ptr_playerstank->unk4->unk14->unk8->unk8->unk8->unk4); + temp_f0 = (arg2 + D_80036474); + sp7C = (f32) ((ptr_playerstank->unk4->unk14->unk8->unk8->unk10->unk4->unk8 + ptr_playerstank->unk4->unk14->unk8->unk8->unkC->unk4->unk8) - ptr_playerstank->unk4->unk14->unk8->unk8->unk8->unk4->unk8); + phi_f0 = temp_f0; + if (D_80055064 <= temp_f0) + { + // Node 9 + phi_f0 = (temp_f0 - D_80055064); + } + // Node 10 + phi_f0_2 = phi_f0; + if (phi_f0 < 0.0f) + { + // Node 11 + phi_f0_2 = (phi_f0 + D_80055064); + } + // Node 12 + sp8C = (void *) ptr_playerstank->unk4->unk14; + matrix_4x4_set_rotation_around_y((D_80055064 - phi_f0_2), ptr_playerstank, &sp34, ptr_playerstank->unk4->unk14->unk8->unk8->unk8->unk4, ptr_playerstank->unk4); + matrix_4x4_rotate_vector_in_place(&sp34, &sp74); + temp_f6 = (sp74 * ptr_playerstank->unk4->unk14->unk14); + sp74 = temp_f6; + temp_f16 = (sp7C * ptr_playerstank->unk4->unk14->unk14); + sp7C = temp_f16; + temp_f4 = (temp_f6 + *arg0); + sp74 = temp_f4; + spBC = arg1; + temp_f10 = (temp_f16 + arg0->unk8); + sp7C = temp_f10; + if (sub_GAME_7F07CA2C(&spBC, *arg0, arg0->unk8, temp_f4, temp_f10, 0x213, arg3, arg4) == 0) + { + // Node 13 + sp94 = 0; + } + } + } + } + } + } + } + // Node 14 + if (ptr_playerstank != 0) + { + // Node 15 + sub_GAME_7F03D058(ptr_playerstank, 1); + } + // Node 16 + return sp94; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055064 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F07CAC8 +/* 0B15F8 7F07CAC8 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 0B15FC 7F07CACC AFBF0024 */ sw $ra, 0x24($sp) +/* 0B1600 7F07CAD0 AFA400C0 */ sw $a0, 0xc0($sp) +/* 0B1604 7F07CAD4 AFA500C4 */ sw $a1, 0xc4($sp) +/* 0B1608 7F07CAD8 AFA500BC */ sw $a1, 0xbc($sp) +/* 0B160C 7F07CADC AFA600C8 */ sw $a2, 0xc8($sp) +/* 0B1610 7F07CAE0 AFA700CC */ sw $a3, 0xcc($sp) +/* 0B1614 7F07CAE4 AFA00094 */ sw $zero, 0x94($sp) +/* 0B1618 7F07CAE8 8FA500C0 */ lw $a1, 0xc0($sp) +/* 0B161C 7F07CAEC 0FC1F222 */ jal sub_GAME_7F07C888 +/* 0B1620 7F07CAF0 27A40098 */ addiu $a0, $sp, 0x98 +/* 0B1624 7F07CAF4 3C048003 */ lui $a0, %hi(ptr_playerstank) +/* 0B1628 7F07CAF8 8C846450 */ lw $a0, %lo(ptr_playerstank)($a0) +/* 0B162C 7F07CAFC 50800004 */ beql $a0, $zero, .L7F07CB10 +/* 0B1630 7F07CB00 8FA200C0 */ lw $v0, 0xc0($sp) +/* 0B1634 7F07CB04 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0B1638 7F07CB08 00002825 */ move $a1, $zero +/* 0B163C 7F07CB0C 8FA200C0 */ lw $v0, 0xc0($sp) +.L7F07CB10: +/* 0B1640 7F07CB10 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0B1644 7F07CB14 8FB800CC */ lw $t8, 0xcc($sp) +/* 0B1648 7F07CB18 8C450000 */ lw $a1, ($v0) +/* 0B164C 7F07CB1C 8C460008 */ lw $a2, 8($v0) +/* 0B1650 7F07CB20 8FB900D0 */ lw $t9, 0xd0($sp) +/* 0B1654 7F07CB24 240F0213 */ li $t7, 531 +/* 0B1658 7F07CB28 AFAF0014 */ sw $t7, 0x14($sp) +/* 0B165C 7F07CB2C 27A400BC */ addiu $a0, $sp, 0xbc +/* 0B1660 7F07CB30 8FA70098 */ lw $a3, 0x98($sp) +/* 0B1664 7F07CB34 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0B1668 7F07CB38 AFB80018 */ sw $t8, 0x18($sp) +/* 0B166C 7F07CB3C 0FC1F28B */ jal sub_GAME_7F07CA2C +/* 0B1670 7F07CB40 AFB9001C */ sw $t9, 0x1c($sp) +/* 0B1674 7F07CB44 1040008D */ beqz $v0, .L7F07CD7C +/* 0B1678 7F07CB48 27A400BC */ addiu $a0, $sp, 0xbc +/* 0B167C 7F07CB4C C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 0B1680 7F07CB50 8FAA00CC */ lw $t2, 0xcc($sp) +/* 0B1684 7F07CB54 8FAB00D0 */ lw $t3, 0xd0($sp) +/* 0B1688 7F07CB58 24090213 */ li $t1, 531 +/* 0B168C 7F07CB5C AFA90014 */ sw $t1, 0x14($sp) +/* 0B1690 7F07CB60 8FA50098 */ lw $a1, 0x98($sp) +/* 0B1694 7F07CB64 8FA6009C */ lw $a2, 0x9c($sp) +/* 0B1698 7F07CB68 8FA700A0 */ lw $a3, 0xa0($sp) +/* 0B169C 7F07CB6C E7A60010 */ swc1 $f6, 0x10($sp) +/* 0B16A0 7F07CB70 AFAA0018 */ sw $t2, 0x18($sp) +/* 0B16A4 7F07CB74 0FC1F28B */ jal sub_GAME_7F07CA2C +/* 0B16A8 7F07CB78 AFAB001C */ sw $t3, 0x1c($sp) +/* 0B16AC 7F07CB7C 1040007F */ beqz $v0, .L7F07CD7C +/* 0B16B0 7F07CB80 27A400BC */ addiu $a0, $sp, 0xbc +/* 0B16B4 7F07CB84 C7A800AC */ lwc1 $f8, 0xac($sp) +/* 0B16B8 7F07CB88 8FAD00CC */ lw $t5, 0xcc($sp) +/* 0B16BC 7F07CB8C 8FAE00D0 */ lw $t6, 0xd0($sp) +/* 0B16C0 7F07CB90 240C0213 */ li $t4, 531 +/* 0B16C4 7F07CB94 AFAC0014 */ sw $t4, 0x14($sp) +/* 0B16C8 7F07CB98 8FA500A0 */ lw $a1, 0xa0($sp) +/* 0B16CC 7F07CB9C 8FA600A4 */ lw $a2, 0xa4($sp) +/* 0B16D0 7F07CBA0 8FA700A8 */ lw $a3, 0xa8($sp) +/* 0B16D4 7F07CBA4 E7A80010 */ swc1 $f8, 0x10($sp) +/* 0B16D8 7F07CBA8 AFAD0018 */ sw $t5, 0x18($sp) +/* 0B16DC 7F07CBAC 0FC1F28B */ jal sub_GAME_7F07CA2C +/* 0B16E0 7F07CBB0 AFAE001C */ sw $t6, 0x1c($sp) +/* 0B16E4 7F07CBB4 10400071 */ beqz $v0, .L7F07CD7C +/* 0B16E8 7F07CBB8 27A400BC */ addiu $a0, $sp, 0xbc +/* 0B16EC 7F07CBBC C7AA00B4 */ lwc1 $f10, 0xb4($sp) +/* 0B16F0 7F07CBC0 8FB800CC */ lw $t8, 0xcc($sp) +/* 0B16F4 7F07CBC4 8FB900D0 */ lw $t9, 0xd0($sp) +/* 0B16F8 7F07CBC8 240F0213 */ li $t7, 531 +/* 0B16FC 7F07CBCC AFAF0014 */ sw $t7, 0x14($sp) +/* 0B1700 7F07CBD0 8FA500A8 */ lw $a1, 0xa8($sp) +/* 0B1704 7F07CBD4 8FA600AC */ lw $a2, 0xac($sp) +/* 0B1708 7F07CBD8 8FA700B0 */ lw $a3, 0xb0($sp) +/* 0B170C 7F07CBDC E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0B1710 7F07CBE0 AFB80018 */ sw $t8, 0x18($sp) +/* 0B1714 7F07CBE4 0FC1F28B */ jal sub_GAME_7F07CA2C +/* 0B1718 7F07CBE8 AFB9001C */ sw $t9, 0x1c($sp) +/* 0B171C 7F07CBEC 10400063 */ beqz $v0, .L7F07CD7C +/* 0B1720 7F07CBF0 27A400BC */ addiu $a0, $sp, 0xbc +/* 0B1724 7F07CBF4 C7B0009C */ lwc1 $f16, 0x9c($sp) +/* 0B1728 7F07CBF8 8FAA00CC */ lw $t2, 0xcc($sp) +/* 0B172C 7F07CBFC 8FAB00D0 */ lw $t3, 0xd0($sp) +/* 0B1730 7F07CC00 24090213 */ li $t1, 531 +/* 0B1734 7F07CC04 AFA90014 */ sw $t1, 0x14($sp) +/* 0B1738 7F07CC08 8FA500B0 */ lw $a1, 0xb0($sp) +/* 0B173C 7F07CC0C 8FA600B4 */ lw $a2, 0xb4($sp) +/* 0B1740 7F07CC10 8FA70098 */ lw $a3, 0x98($sp) +/* 0B1744 7F07CC14 E7B00010 */ swc1 $f16, 0x10($sp) +/* 0B1748 7F07CC18 AFAA0018 */ sw $t2, 0x18($sp) +/* 0B174C 7F07CC1C 0FC1F28B */ jal sub_GAME_7F07CA2C +/* 0B1750 7F07CC20 AFAB001C */ sw $t3, 0x1c($sp) +/* 0B1754 7F07CC24 10400055 */ beqz $v0, .L7F07CD7C +/* 0B1758 7F07CC28 3C048003 */ lui $a0, %hi(ptr_playerstank) +/* 0B175C 7F07CC2C 8C846450 */ lw $a0, %lo(ptr_playerstank)($a0) +/* 0B1760 7F07CC30 240C0001 */ li $t4, 1 +/* 0B1764 7F07CC34 AFAC0094 */ sw $t4, 0x94($sp) +/* 0B1768 7F07CC38 10800050 */ beqz $a0, .L7F07CD7C +/* 0B176C 7F07CC3C 00000000 */ nop +/* 0B1770 7F07CC40 8C870004 */ lw $a3, 4($a0) +/* 0B1774 7F07CC44 44806000 */ mtc1 $zero, $f12 +/* 0B1778 7F07CC48 3C018005 */ lui $at, %hi(D_80055064) +/* 0B177C 7F07CC4C 8CE80014 */ lw $t0, 0x14($a3) +/* 0B1780 7F07CC50 C4225064 */ lwc1 $f2, %lo(D_80055064)($at) +/* 0B1784 7F07CC54 3C018003 */ lui $at, %hi(D_80036474) +/* 0B1788 7F07CC58 8D0D0008 */ lw $t5, 8($t0) +/* 0B178C 7F07CC5C 8DA20008 */ lw $v0, 8($t5) +/* 0B1790 7F07CC60 8C4E000C */ lw $t6, 0xc($v0) +/* 0B1794 7F07CC64 8C4F0010 */ lw $t7, 0x10($v0) +/* 0B1798 7F07CC68 8C580008 */ lw $t8, 8($v0) +/* 0B179C 7F07CC6C 8DC30004 */ lw $v1, 4($t6) +/* 0B17A0 7F07CC70 8DE50004 */ lw $a1, 4($t7) +/* 0B17A4 7F07CC74 8F060004 */ lw $a2, 4($t8) +/* 0B17A8 7F07CC78 C4640000 */ lwc1 $f4, ($v1) +/* 0B17AC 7F07CC7C C4B20000 */ lwc1 $f18, ($a1) +/* 0B17B0 7F07CC80 C4C80000 */ lwc1 $f8, ($a2) +/* 0B17B4 7F07CC84 E7AC0078 */ swc1 $f12, 0x78($sp) +/* 0B17B8 7F07CC88 46049180 */ add.s $f6, $f18, $f4 +/* 0B17BC 7F07CC8C 46083281 */ sub.s $f10, $f6, $f8 +/* 0B17C0 7F07CC90 E7AA0074 */ swc1 $f10, 0x74($sp) +/* 0B17C4 7F07CC94 C4720008 */ lwc1 $f18, 8($v1) +/* 0B17C8 7F07CC98 C4B00008 */ lwc1 $f16, 8($a1) +/* 0B17CC 7F07CC9C C7AA00C8 */ lwc1 $f10, 0xc8($sp) +/* 0B17D0 7F07CCA0 C4C60008 */ lwc1 $f6, 8($a2) +/* 0B17D4 7F07CCA4 46128100 */ add.s $f4, $f16, $f18 +/* 0B17D8 7F07CCA8 C4306474 */ lwc1 $f16, %lo(D_80036474)($at) +/* 0B17DC 7F07CCAC 27A50034 */ addiu $a1, $sp, 0x34 +/* 0B17E0 7F07CCB0 46105000 */ add.s $f0, $f10, $f16 +/* 0B17E4 7F07CCB4 46062201 */ sub.s $f8, $f4, $f6 +/* 0B17E8 7F07CCB8 4600103E */ c.le.s $f2, $f0 +/* 0B17EC 7F07CCBC E7A8007C */ swc1 $f8, 0x7c($sp) +/* 0B17F0 7F07CCC0 45020003 */ bc1fl .L7F07CCD0 +/* 0B17F4 7F07CCC4 460C003C */ c.lt.s $f0, $f12 +/* 0B17F8 7F07CCC8 46020001 */ sub.s $f0, $f0, $f2 +/* 0B17FC 7F07CCCC 460C003C */ c.lt.s $f0, $f12 +.L7F07CCD0: +/* 0B1800 7F07CCD0 00000000 */ nop +/* 0B1804 7F07CCD4 45020003 */ bc1fl .L7F07CCE4 +/* 0B1808 7F07CCD8 46001301 */ sub.s $f12, $f2, $f0 +/* 0B180C 7F07CCDC 46020000 */ add.s $f0, $f0, $f2 +/* 0B1810 7F07CCE0 46001301 */ sub.s $f12, $f2, $f0 +.L7F07CCE4: +/* 0B1814 7F07CCE4 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0B1818 7F07CCE8 AFA8008C */ sw $t0, 0x8c($sp) +/* 0B181C 7F07CCEC 27A40034 */ addiu $a0, $sp, 0x34 +/* 0B1820 7F07CCF0 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0B1824 7F07CCF4 27A50074 */ addiu $a1, $sp, 0x74 +/* 0B1828 7F07CCF8 8FA8008C */ lw $t0, 0x8c($sp) +/* 0B182C 7F07CCFC C7B20074 */ lwc1 $f18, 0x74($sp) +/* 0B1830 7F07CD00 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 0B1834 7F07CD04 C5040014 */ lwc1 $f4, 0x14($t0) +/* 0B1838 7F07CD08 8FA200C0 */ lw $v0, 0xc0($sp) +/* 0B183C 7F07CD0C 8FB900C4 */ lw $t9, 0xc4($sp) +/* 0B1840 7F07CD10 46049182 */ mul.s $f6, $f18, $f4 +/* 0B1844 7F07CD14 8FAA00CC */ lw $t2, 0xcc($sp) +/* 0B1848 7F07CD18 8FAB00D0 */ lw $t3, 0xd0($sp) +/* 0B184C 7F07CD1C 24090213 */ li $t1, 531 +/* 0B1850 7F07CD20 27A400BC */ addiu $a0, $sp, 0xbc +/* 0B1854 7F07CD24 E7A60074 */ swc1 $f6, 0x74($sp) +/* 0B1858 7F07CD28 C50A0014 */ lwc1 $f10, 0x14($t0) +/* 0B185C 7F07CD2C 460A4402 */ mul.s $f16, $f8, $f10 +/* 0B1860 7F07CD30 E7B0007C */ swc1 $f16, 0x7c($sp) +/* 0B1864 7F07CD34 C4520000 */ lwc1 $f18, ($v0) +/* 0B1868 7F07CD38 46123100 */ add.s $f4, $f6, $f18 +/* 0B186C 7F07CD3C E7A40074 */ swc1 $f4, 0x74($sp) +/* 0B1870 7F07CD40 C4480008 */ lwc1 $f8, 8($v0) +/* 0B1874 7F07CD44 AFB900BC */ sw $t9, 0xbc($sp) +/* 0B1878 7F07CD48 44072000 */ mfc1 $a3, $f4 +/* 0B187C 7F07CD4C 46088280 */ add.s $f10, $f16, $f8 +/* 0B1880 7F07CD50 E7AA007C */ swc1 $f10, 0x7c($sp) +/* 0B1884 7F07CD54 8C460008 */ lw $a2, 8($v0) +/* 0B1888 7F07CD58 8C450000 */ lw $a1, ($v0) +/* 0B188C 7F07CD5C AFA90014 */ sw $t1, 0x14($sp) +/* 0B1890 7F07CD60 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0B1894 7F07CD64 AFAA0018 */ sw $t2, 0x18($sp) +/* 0B1898 7F07CD68 0FC1F28B */ jal sub_GAME_7F07CA2C +/* 0B189C 7F07CD6C AFAB001C */ sw $t3, 0x1c($sp) +/* 0B18A0 7F07CD70 14400002 */ bnez $v0, .L7F07CD7C +/* 0B18A4 7F07CD74 00000000 */ nop +/* 0B18A8 7F07CD78 AFA00094 */ sw $zero, 0x94($sp) +.L7F07CD7C: +/* 0B18AC 7F07CD7C 3C048003 */ lui $a0, %hi(ptr_playerstank) +/* 0B18B0 7F07CD80 8C846450 */ lw $a0, %lo(ptr_playerstank)($a0) +/* 0B18B4 7F07CD84 50800004 */ beql $a0, $zero, .L7F07CD98 +/* 0B18B8 7F07CD88 8FBF0024 */ lw $ra, 0x24($sp) +/* 0B18BC 7F07CD8C 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0B18C0 7F07CD90 24050001 */ li $a1, 1 +/* 0B18C4 7F07CD94 8FBF0024 */ lw $ra, 0x24($sp) +.L7F07CD98: +/* 0B18C8 7F07CD98 8FA20094 */ lw $v0, 0x94($sp) +/* 0B18CC 7F07CD9C 27BD00C0 */ addiu $sp, $sp, 0xc0 +/* 0B18D0 7F07CDA0 03E00008 */ jr $ra +/* 0B18D4 7F07CDA4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07CDA8(? arg2) { + // Node 0 + return sub_GAME_7F07CAC8(arg2, arg2, 0, 0); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07CDA8 +/* 0B18D8 7F07CDA8 44866000 */ mtc1 $a2, $f12 +/* 0B18DC 7F07CDAC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0B18E0 7F07CDB0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0B18E4 7F07CDB4 44066000 */ mfc1 $a2, $f12 +/* 0B18E8 7F07CDB8 AFA00010 */ sw $zero, 0x10($sp) +/* 0B18EC 7F07CDBC 0FC1F2B2 */ jal sub_GAME_7F07CAC8 +/* 0B18F0 7F07CDC0 00003825 */ move $a3, $zero +/* 0B18F4 7F07CDC4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0B18F8 7F07CDC8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0B18FC 7F07CDCC 03E00008 */ jr $ra +/* 0B1900 7F07CDD0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07CDD4(void *arg0, s32 arg1, void *arg2) { + ?32 sp3C; + + // Node 0 + sp3C = (?32) pPlayer->field_488; + if (sub_GAME_7F0B0E24(&sp3C, pPlayer->field_48C, pPlayer->field_494, *arg0, (f32) arg0->unk8, 0, 0.0f, 1.0f, 0.0f, 1.0f) == 0) + { + // Node 3 + // Node 4 + return 0; + } + // Node 1 + if (sub_GAME_7F07CDA8(arg0, sp3C, arg1) == 0) + { + // Node 3 + // Node 4 + return 0; + } + // Node 2 + *arg2 = sp3C; + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07CDD4 +/* 0B1904 7F07CDD4 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0B1908 7F07CDD8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B190C 7F07CDDC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B1910 7F07CDE0 AFBF002C */ sw $ra, 0x2c($sp) +/* 0B1914 7F07CDE4 AFA40040 */ sw $a0, 0x40($sp) +/* 0B1918 7F07CDE8 AFA50044 */ sw $a1, 0x44($sp) +/* 0B191C 7F07CDEC AFA60048 */ sw $a2, 0x48($sp) +/* 0B1920 7F07CDF0 8C4E0488 */ lw $t6, 0x488($v0) +/* 0B1924 7F07CDF4 8FAF0040 */ lw $t7, 0x40($sp) +/* 0B1928 7F07CDF8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B192C 7F07CDFC AFAE003C */ sw $t6, 0x3c($sp) +/* 0B1930 7F07CE00 C5E40008 */ lwc1 $f4, 8($t7) +/* 0B1934 7F07CE04 8C460494 */ lw $a2, 0x494($v0) +/* 0B1938 7F07CE08 8C45048C */ lw $a1, 0x48c($v0) +/* 0B193C 7F07CE0C 8DE70000 */ lw $a3, ($t7) +/* 0B1940 7F07CE10 44811000 */ mtc1 $at, $f2 +/* 0B1944 7F07CE14 44800000 */ mtc1 $zero, $f0 +/* 0B1948 7F07CE18 AFA00014 */ sw $zero, 0x14($sp) +/* 0B194C 7F07CE1C 27A4003C */ addiu $a0, $sp, 0x3c +/* 0B1950 7F07CE20 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0B1954 7F07CE24 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0B1958 7F07CE28 E7A20024 */ swc1 $f2, 0x24($sp) +/* 0B195C 7F07CE2C E7A00018 */ swc1 $f0, 0x18($sp) +/* 0B1960 7F07CE30 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0B1964 7F07CE34 E7A00020 */ swc1 $f0, 0x20($sp) +/* 0B1968 7F07CE38 1040000A */ beqz $v0, .L7F07CE64 +/* 0B196C 7F07CE3C 8FA40040 */ lw $a0, 0x40($sp) +/* 0B1970 7F07CE40 8FA5003C */ lw $a1, 0x3c($sp) +/* 0B1974 7F07CE44 0FC1F36A */ jal sub_GAME_7F07CDA8 +/* 0B1978 7F07CE48 8FA60044 */ lw $a2, 0x44($sp) +/* 0B197C 7F07CE4C 10400005 */ beqz $v0, .L7F07CE64 +/* 0B1980 7F07CE50 8FB8003C */ lw $t8, 0x3c($sp) +/* 0B1984 7F07CE54 8FB90048 */ lw $t9, 0x48($sp) +/* 0B1988 7F07CE58 24020001 */ li $v0, 1 +/* 0B198C 7F07CE5C 10000002 */ b .L7F07CE68 +/* 0B1990 7F07CE60 AF380000 */ sw $t8, ($t9) +.L7F07CE64: +/* 0B1994 7F07CE64 00001025 */ move $v0, $zero +.L7F07CE68: +/* 0B1998 7F07CE68 8FBF002C */ lw $ra, 0x2c($sp) +/* 0B199C 7F07CE6C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0B19A0 7F07CE70 03E00008 */ jr $ra +/* 0B19A4 7F07CE74 00000000 */ nop +) +#endif + + + + +s32 get_intank_flag(void) { + return in_tank_flag; +} + + + + + + +#ifdef NONMATCHING +void get_ptr_for_players_tank(void) { + // Node 0 + if (in_tank_flag == 1) + { + // Node 1 + return ptr_playerstank; + } + // Node 2 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel get_ptr_for_players_tank +/* 0B19B4 7F07CE84 3C0E8003 */ lui $t6, %hi(in_tank_flag) +/* 0B19B8 7F07CE88 8DCE6448 */ lw $t6, %lo(in_tank_flag)($t6) +/* 0B19BC 7F07CE8C 24010001 */ li $at, 1 +/* 0B19C0 7F07CE90 00001025 */ move $v0, $zero +/* 0B19C4 7F07CE94 15C10004 */ bne $t6, $at, .L7F07CEA8 +/* 0B19C8 7F07CE98 00000000 */ nop +/* 0B19CC 7F07CE9C 3C028003 */ lui $v0, %hi(ptr_playerstank) +/* 0B19D0 7F07CEA0 03E00008 */ jr $ra +/* 0B19D4 7F07CEA4 8C426450 */ lw $v0, %lo(ptr_playerstank)($v0) + +.L7F07CEA8: +/* 0B19D8 7F07CEA8 03E00008 */ jr $ra +/* 0B19DC 7F07CEAC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07CEB0(void *arg0) { + f32 sp18; + f32 temp_f14; + ? temp_ret; + f32 phi_f14; + f32 phi_f14_2; + + // Node 0 + temp_f14 = (D_80036464 + D_80036474); + phi_f14 = temp_f14; + if (D_80055068 <= temp_f14) + { + // Node 1 + phi_f14 = (temp_f14 - D_80055068); + } + // Node 2 + phi_f14_2 = phi_f14; + if (phi_f14 < 0.0f) + { + // Node 3 + phi_f14_2 = (phi_f14 + D_80055068); + } + // Node 4 + sp18 = sinf(phi_f14_2, phi_f14_2); + *arg0 = (f32) (cosf(D_8003646C) * -sp18); + arg0->unk4 = sinf(D_8003646C); + sp18 = cosf(sp1C); + temp_ret = cosf(D_8003646C); + arg0->unk8 = (f32) (temp_ret * sp18); + return temp_ret; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055068 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F07CEB0 +/* 0B19E0 7F07CEB0 3C018005 */ lui $at, %hi(D_80055068) +/* 0B19E4 7F07CEB4 C4205068 */ lwc1 $f0, %lo(D_80055068)($at) +/* 0B19E8 7F07CEB8 3C018003 */ lui $at, %hi(D_80036464) +/* 0B19EC 7F07CEBC C4246464 */ lwc1 $f4, %lo(D_80036464)($at) +/* 0B19F0 7F07CEC0 3C018003 */ lui $at, %hi(D_80036474) +/* 0B19F4 7F07CEC4 C4266474 */ lwc1 $f6, %lo(D_80036474)($at) +/* 0B19F8 7F07CEC8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0B19FC 7F07CECC 44804000 */ mtc1 $zero, $f8 +/* 0B1A00 7F07CED0 46062380 */ add.s $f14, $f4, $f6 +/* 0B1A04 7F07CED4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B1A08 7F07CED8 AFA40020 */ sw $a0, 0x20($sp) +/* 0B1A0C 7F07CEDC 460E003E */ c.le.s $f0, $f14 +/* 0B1A10 7F07CEE0 00000000 */ nop +/* 0B1A14 7F07CEE4 45020003 */ bc1fl .L7F07CEF4 +/* 0B1A18 7F07CEE8 4608703C */ c.lt.s $f14, $f8 +/* 0B1A1C 7F07CEEC 46007381 */ sub.s $f14, $f14, $f0 +/* 0B1A20 7F07CEF0 4608703C */ c.lt.s $f14, $f8 +.L7F07CEF4: +/* 0B1A24 7F07CEF4 00000000 */ nop +/* 0B1A28 7F07CEF8 45020003 */ bc1fl .L7F07CF08 +/* 0B1A2C 7F07CEFC 46007306 */ mov.s $f12, $f14 +/* 0B1A30 7F07CF00 46007380 */ add.s $f14, $f14, $f0 +/* 0B1A34 7F07CF04 46007306 */ mov.s $f12, $f14 +.L7F07CF08: +/* 0B1A38 7F07CF08 0FC15FAB */ jal sinf +/* 0B1A3C 7F07CF0C E7AE001C */ swc1 $f14, 0x1c($sp) +/* 0B1A40 7F07CF10 3C018003 */ lui $at, %hi(D_8003646C) +/* 0B1A44 7F07CF14 C42C646C */ lwc1 $f12, %lo(D_8003646C)($at) +/* 0B1A48 7F07CF18 0FC15FA8 */ jal cosf +/* 0B1A4C 7F07CF1C E7A00018 */ swc1 $f0, 0x18($sp) +/* 0B1A50 7F07CF20 C7AA0018 */ lwc1 $f10, 0x18($sp) +/* 0B1A54 7F07CF24 8FAE0020 */ lw $t6, 0x20($sp) +/* 0B1A58 7F07CF28 3C018003 */ lui $at, %hi(D_8003646C) +/* 0B1A5C 7F07CF2C 46005407 */ neg.s $f16, $f10 +/* 0B1A60 7F07CF30 46100482 */ mul.s $f18, $f0, $f16 +/* 0B1A64 7F07CF34 E5D20000 */ swc1 $f18, ($t6) +/* 0B1A68 7F07CF38 0FC15FAB */ jal sinf +/* 0B1A6C 7F07CF3C C42C646C */ lwc1 $f12, %lo(D_8003646C)($at) +/* 0B1A70 7F07CF40 8FAF0020 */ lw $t7, 0x20($sp) +/* 0B1A74 7F07CF44 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 0B1A78 7F07CF48 0FC15FA8 */ jal cosf +/* 0B1A7C 7F07CF4C E5E00004 */ swc1 $f0, 4($t7) +/* 0B1A80 7F07CF50 3C018003 */ lui $at, %hi(D_8003646C) +/* 0B1A84 7F07CF54 C42C646C */ lwc1 $f12, %lo(D_8003646C)($at) +/* 0B1A88 7F07CF58 0FC15FA8 */ jal cosf +/* 0B1A8C 7F07CF5C E7A00018 */ swc1 $f0, 0x18($sp) +/* 0B1A90 7F07CF60 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 0B1A94 7F07CF64 8FB80020 */ lw $t8, 0x20($sp) +/* 0B1A98 7F07CF68 46040182 */ mul.s $f6, $f0, $f4 +/* 0B1A9C 7F07CF6C E7060008 */ swc1 $f6, 8($t8) +/* 0B1AA0 7F07CF70 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B1AA4 7F07CF74 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0B1AA8 7F07CF78 03E00008 */ jr $ra +/* 0B1AAC 7F07CF7C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07CF80(void) { + // Node 0 + return D_8003646C; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07CF80 +/* 0B1AB0 7F07CF80 3C018003 */ lui $at, %hi(D_8003646C) +/* 0B1AB4 7F07CF84 03E00008 */ jr $ra +/* 0B1AB8 7F07CF88 C420646C */ lwc1 $f0, %lo(D_8003646C)($at) +) +#endif + + + + + +#ifdef NONMATCHING +s32 cal_player_collision(void *arg0, void *arg1) { + ? sp3C; + s32 sp7C; + ? sp80; + f32 sp84; + f32 sp88; + ?32 sp8C; + ?32 sp90; + s32 sp94; + void *phi_v1; + + // Node 0 + sp94 = 0; + if ((in_tank_flag == 1) && (dword_CODE_bss_800799B8 != 0)) + { + // Node 2 + sp94 = sub_GAME_7F07CDD4(D_80036464, arg1); + } + else + { + // Node 3 + sp90 = (?32) pPlayer->field_488; + if (obj_collision_flag != 0) + { + // Node 4 + sp8C = 0x1f; + } + else + { + // Node 5 + sp8C = 0; + } + // Node 6 + sub_GAME_7F08A274(pPlayer->field_A8, &sp80, &sp88, &sp84); + if (D_8003644C != 0) + { + // Node 7 + sub_GAME_7F03D058(D_8003644C, 0); + } + // Node 8 + sub_GAME_7F03D058(pPlayer->field_A8, 0); + sp7C = sub_GAME_7F0B2314(&sp90, *arg0, arg0->unk8, sp80, &sp3C); + if (sub_GAME_7F0B239C(&sp3C) != 0) + { + // Node 9 + pPlayer->field_29FC = 0; + } + // Node 10 + if ((sub_GAME_7F0B0E24(&sp90, pPlayer->field_48C, pPlayer->field_494, *arg0, (f32) arg0->unk8, sp8C, sp88, sp84, 0.0f, 1.0f) != 0) && (sub_GAME_7F0B18B8(&sp90, *arg0, arg0->unk8, sp80, sp8C, sp88, sp84) < 0)) + { + // Node 12 + if ((-100.0f == pPlayer->ducking_height_offset) || (sp7C < 0)) + { + // Node 14 + if ((sub_GAME_7F0B23A4(&sp3C) == 0) && (sub_GAME_7F0B26B8(&sp90, *arg0, arg0->unk8, sp80, (f32) (pPlayer->field_490 + 175.0f)) >= 0)) + { + // Node 16 + // Node 19 + phi_v1 = pPlayer; + if (ptr_playerstank == 0) + { + // Node 20 + phi_v1 = pPlayer; + if (dword_CODE_bss_8007BA04 != 0) + { + // Node 21 + phi_v1 = pPlayer; + if (*dword_CODE_bss_8007BA04 == 1) + { + // Node 22 + phi_v1 = pPlayer; + if (dword_CODE_bss_8007BA04->unk4->unk3 == &D_8003644C) + { + // Node 23 + D_8003644C = (void *) dword_CODE_bss_8007BA04; + phi_v1 = pPlayer; + } + } + } + } + } + else + { + // Node 17 + *arg1 = sp90; + sp94 = 1; + phi_v1 = pPlayer; + } + } + else + { + // Node 19 + phi_v1 = pPlayer; + if (ptr_playerstank == 0) + { + // Node 20 + phi_v1 = pPlayer; + if (dword_CODE_bss_8007BA04 != 0) + { + // Node 21 + phi_v1 = pPlayer; + if (*dword_CODE_bss_8007BA04 == 1) + { + // Node 22 + phi_v1 = pPlayer; + if (dword_CODE_bss_8007BA04->unk4->unk3 == &D_8003644C) + { + // Node 23 + D_8003644C = (void *) dword_CODE_bss_8007BA04; + phi_v1 = pPlayer; + } + } + } + } + } + } + else + { + // Node 18 + // Node 19 + phi_v1 = pPlayer; + if (ptr_playerstank == 0) + { + // Node 20 + phi_v1 = pPlayer; + if (dword_CODE_bss_8007BA04 != 0) + { + // Node 21 + phi_v1 = pPlayer; + if (*dword_CODE_bss_8007BA04 == 1) + { + // Node 22 + phi_v1 = pPlayer; + if (dword_CODE_bss_8007BA04->unk4->unk3 == &D_8003644C) + { + // Node 23 + D_8003644C = (void *) dword_CODE_bss_8007BA04; + phi_v1 = pPlayer; + } + } + } + } + } + // Node 24 + sub_GAME_7F03D058(phi_v1->unkA8, 1); + if (D_8003644C != 0) + { + // Node 25 + sub_GAME_7F03D058(D_8003644C, 1); + } + } + // Node 26 + return sp94; +} +#else +GLOBAL_ASM( +.text +glabel cal_player_collision +/* 0B1ABC 7F07CF8C 3C0E8003 */ lui $t6, %hi(in_tank_flag) +/* 0B1AC0 7F07CF90 8DCE6448 */ lw $t6, %lo(in_tank_flag)($t6) +/* 0B1AC4 7F07CF94 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 0B1AC8 7F07CF98 24010001 */ li $at, 1 +/* 0B1ACC 7F07CF9C AFBF002C */ sw $ra, 0x2c($sp) +/* 0B1AD0 7F07CFA0 AFA40098 */ sw $a0, 0x98($sp) +/* 0B1AD4 7F07CFA4 AFA5009C */ sw $a1, 0x9c($sp) +/* 0B1AD8 7F07CFA8 15C1000B */ bne $t6, $at, .L7F07CFD8 +/* 0B1ADC 7F07CFAC AFA00094 */ sw $zero, 0x94($sp) +/* 0B1AE0 7F07CFB0 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_800799B8) +/* 0B1AE4 7F07CFB4 8DEF99B8 */ lw $t7, %lo(dword_CODE_bss_800799B8)($t7) +/* 0B1AE8 7F07CFB8 3C058003 */ lui $a1, %hi(D_80036464) +/* 0B1AEC 7F07CFBC 8FA6009C */ lw $a2, 0x9c($sp) +/* 0B1AF0 7F07CFC0 11E00005 */ beqz $t7, .L7F07CFD8 +/* 0B1AF4 7F07CFC4 00000000 */ nop +/* 0B1AF8 7F07CFC8 0FC1F375 */ jal sub_GAME_7F07CDD4 +/* 0B1AFC 7F07CFCC 8CA56464 */ lw $a1, %lo(D_80036464)($a1) +/* 0B1B00 7F07CFD0 10000093 */ b .L7F07D220 +/* 0B1B04 7F07CFD4 AFA20094 */ sw $v0, 0x94($sp) +.L7F07CFD8: +/* 0B1B08 7F07CFD8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B1B0C 7F07CFDC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B1B10 7F07CFE0 3C198003 */ lui $t9, %hi(obj_collision_flag) +/* 0B1B14 7F07CFE4 8F3964C8 */ lw $t9, %lo(obj_collision_flag)($t9) +/* 0B1B18 7F07CFE8 8C780488 */ lw $t8, 0x488($v1) +/* 0B1B1C 7F07CFEC 27A50080 */ addiu $a1, $sp, 0x80 +/* 0B1B20 7F07CFF0 13200004 */ beqz $t9, .L7F07D004 +/* 0B1B24 7F07CFF4 AFB80090 */ sw $t8, 0x90($sp) +/* 0B1B28 7F07CFF8 2408001F */ li $t0, 31 +/* 0B1B2C 7F07CFFC 10000002 */ b .L7F07D008 +/* 0B1B30 7F07D000 AFA8008C */ sw $t0, 0x8c($sp) +.L7F07D004: +/* 0B1B34 7F07D004 AFA0008C */ sw $zero, 0x8c($sp) +.L7F07D008: +/* 0B1B38 7F07D008 8C6400A8 */ lw $a0, 0xa8($v1) +/* 0B1B3C 7F07D00C 27A60088 */ addiu $a2, $sp, 0x88 +/* 0B1B40 7F07D010 0FC2289D */ jal sub_GAME_7F08A274 +/* 0B1B44 7F07D014 27A70084 */ addiu $a3, $sp, 0x84 +/* 0B1B48 7F07D018 3C048003 */ lui $a0, %hi(D_8003644C) +/* 0B1B4C 7F07D01C 8C84644C */ lw $a0, %lo(D_8003644C)($a0) +/* 0B1B50 7F07D020 10800003 */ beqz $a0, .L7F07D030 +/* 0B1B54 7F07D024 00000000 */ nop +/* 0B1B58 7F07D028 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0B1B5C 7F07D02C 00002825 */ move $a1, $zero +.L7F07D030: +/* 0B1B60 7F07D030 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B1B64 7F07D034 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0B1B68 7F07D038 00002825 */ move $a1, $zero +/* 0B1B6C 7F07D03C 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0B1B70 7F07D040 8D2400A8 */ lw $a0, 0xa8($t1) +/* 0B1B74 7F07D044 8FA20098 */ lw $v0, 0x98($sp) +/* 0B1B78 7F07D048 27AA003C */ addiu $t2, $sp, 0x3c +/* 0B1B7C 7F07D04C 27A40090 */ addiu $a0, $sp, 0x90 +/* 0B1B80 7F07D050 8C450000 */ lw $a1, ($v0) +/* 0B1B84 7F07D054 8C460008 */ lw $a2, 8($v0) +/* 0B1B88 7F07D058 AFAA0010 */ sw $t2, 0x10($sp) +/* 0B1B8C 7F07D05C 0FC2C8C5 */ jal sub_GAME_7F0B2314 +/* 0B1B90 7F07D060 8FA70080 */ lw $a3, 0x80($sp) +/* 0B1B94 7F07D064 AFA2007C */ sw $v0, 0x7c($sp) +/* 0B1B98 7F07D068 0FC2C8E7 */ jal sub_GAME_7F0B239C +/* 0B1B9C 7F07D06C 27A4003C */ addiu $a0, $sp, 0x3c +/* 0B1BA0 7F07D070 10400004 */ beqz $v0, .L7F07D084 +/* 0B1BA4 7F07D074 27A40090 */ addiu $a0, $sp, 0x90 +/* 0B1BA8 7F07D078 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0B1BAC 7F07D07C 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0B1BB0 7F07D080 AD6029FC */ sw $zero, 0x29fc($t3) +.L7F07D084: +/* 0B1BB4 7F07D084 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B1BB8 7F07D088 8FA20098 */ lw $v0, 0x98($sp) +/* 0B1BBC 7F07D08C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B1BC0 7F07D090 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B1BC4 7F07D094 C4440008 */ lwc1 $f4, 8($v0) +/* 0B1BC8 7F07D098 8C470000 */ lw $a3, ($v0) +/* 0B1BCC 7F07D09C 8C65048C */ lw $a1, 0x48c($v1) +/* 0B1BD0 7F07D0A0 8C660494 */ lw $a2, 0x494($v1) +/* 0B1BD4 7F07D0A4 44818000 */ mtc1 $at, $f16 +/* 0B1BD8 7F07D0A8 8FAC008C */ lw $t4, 0x8c($sp) +/* 0B1BDC 7F07D0AC C7A60088 */ lwc1 $f6, 0x88($sp) +/* 0B1BE0 7F07D0B0 C7A80084 */ lwc1 $f8, 0x84($sp) +/* 0B1BE4 7F07D0B4 44805000 */ mtc1 $zero, $f10 +/* 0B1BE8 7F07D0B8 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0B1BEC 7F07D0BC AFAC0014 */ sw $t4, 0x14($sp) +/* 0B1BF0 7F07D0C0 E7B00024 */ swc1 $f16, 0x24($sp) +/* 0B1BF4 7F07D0C4 E7A60018 */ swc1 $f6, 0x18($sp) +/* 0B1BF8 7F07D0C8 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 0B1BFC 7F07D0CC 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0B1C00 7F07D0D0 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 0B1C04 7F07D0D4 10400035 */ beqz $v0, .L7F07D1AC +/* 0B1C08 7F07D0D8 27A40090 */ addiu $a0, $sp, 0x90 +/* 0B1C0C 7F07D0DC 8FA20098 */ lw $v0, 0x98($sp) +/* 0B1C10 7F07D0E0 8FAD008C */ lw $t5, 0x8c($sp) +/* 0B1C14 7F07D0E4 C7B20088 */ lwc1 $f18, 0x88($sp) +/* 0B1C18 7F07D0E8 C7A40084 */ lwc1 $f4, 0x84($sp) +/* 0B1C1C 7F07D0EC 8C450000 */ lw $a1, ($v0) +/* 0B1C20 7F07D0F0 8C460008 */ lw $a2, 8($v0) +/* 0B1C24 7F07D0F4 8FA70080 */ lw $a3, 0x80($sp) +/* 0B1C28 7F07D0F8 AFAD0010 */ sw $t5, 0x10($sp) +/* 0B1C2C 7F07D0FC E7B20014 */ swc1 $f18, 0x14($sp) +/* 0B1C30 7F07D100 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 0B1C34 7F07D104 E7A40018 */ swc1 $f4, 0x18($sp) +/* 0B1C38 7F07D108 04410028 */ bgez $v0, .L7F07D1AC +/* 0B1C3C 7F07D10C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B1C40 7F07D110 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B1C44 7F07D114 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 0B1C48 7F07D118 44813000 */ mtc1 $at, $f6 +/* 0B1C4C 7F07D11C C46800A0 */ lwc1 $f8, 0xa0($v1) +/* 0B1C50 7F07D120 8FAE007C */ lw $t6, 0x7c($sp) +/* 0B1C54 7F07D124 46083032 */ c.eq.s $f6, $f8 +/* 0B1C58 7F07D128 00000000 */ nop +/* 0B1C5C 7F07D12C 45010003 */ bc1t .L7F07D13C +/* 0B1C60 7F07D130 00000000 */ nop +/* 0B1C64 7F07D134 05C1001F */ bgez $t6, .L7F07D1B4 +/* 0B1C68 7F07D138 00000000 */ nop +.L7F07D13C: +/* 0B1C6C 7F07D13C 0FC2C8E9 */ jal sub_GAME_7F0B23A4 +/* 0B1C70 7F07D140 27A4003C */ addiu $a0, $sp, 0x3c +/* 0B1C74 7F07D144 14400011 */ bnez $v0, .L7F07D18C +/* 0B1C78 7F07D148 27A40090 */ addiu $a0, $sp, 0x90 +/* 0B1C7C 7F07D14C 3C188008 */ lui $t8, %hi(pPlayer) +/* 0B1C80 7F07D150 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0B1C84 7F07D154 3C01432F */ li $at, 0x432F0000 # 175.000000 +/* 0B1C88 7F07D158 44818000 */ mtc1 $at, $f16 +/* 0B1C8C 7F07D15C C70A0490 */ lwc1 $f10, 0x490($t8) +/* 0B1C90 7F07D160 8FAF0098 */ lw $t7, 0x98($sp) +/* 0B1C94 7F07D164 8FA70080 */ lw $a3, 0x80($sp) +/* 0B1C98 7F07D168 46105480 */ add.s $f18, $f10, $f16 +/* 0B1C9C 7F07D16C 8DE50000 */ lw $a1, ($t7) +/* 0B1CA0 7F07D170 8DE60008 */ lw $a2, 8($t7) +/* 0B1CA4 7F07D174 0FC2C9AE */ jal sub_GAME_7F0B26B8 +/* 0B1CA8 7F07D178 E7B20010 */ swc1 $f18, 0x10($sp) +/* 0B1CAC 7F07D17C 04400003 */ bltz $v0, .L7F07D18C +/* 0B1CB0 7F07D180 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B1CB4 7F07D184 1000000B */ b .L7F07D1B4 +/* 0B1CB8 7F07D188 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F07D18C: +/* 0B1CBC 7F07D18C 8FB90090 */ lw $t9, 0x90($sp) +/* 0B1CC0 7F07D190 8FA8009C */ lw $t0, 0x9c($sp) +/* 0B1CC4 7F07D194 24090001 */ li $t1, 1 +/* 0B1CC8 7F07D198 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B1CCC 7F07D19C AD190000 */ sw $t9, ($t0) +/* 0B1CD0 7F07D1A0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B1CD4 7F07D1A4 10000015 */ b .L7F07D1FC +/* 0B1CD8 7F07D1A8 AFA90094 */ sw $t1, 0x94($sp) +.L7F07D1AC: +/* 0B1CDC 7F07D1AC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B1CE0 7F07D1B0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F07D1B4: +/* 0B1CE4 7F07D1B4 3C0A8003 */ lui $t2, %hi(ptr_playerstank) +/* 0B1CE8 7F07D1B8 8D4A6450 */ lw $t2, %lo(ptr_playerstank)($t2) +/* 0B1CEC 7F07D1BC 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007BA04) +/* 0B1CF0 7F07D1C0 5540000F */ bnezl $t2, .L7F07D200 +/* 0B1CF4 7F07D1C4 8C6400A8 */ lw $a0, 0xa8($v1) +/* 0B1CF8 7F07D1C8 8C42BA04 */ lw $v0, %lo(dword_CODE_bss_8007BA04)($v0) +/* 0B1CFC 7F07D1CC 5040000C */ beql $v0, $zero, .L7F07D200 +/* 0B1D00 7F07D1D0 8C6400A8 */ lw $a0, 0xa8($v1) +/* 0B1D04 7F07D1D4 904B0000 */ lbu $t3, ($v0) +/* 0B1D08 7F07D1D8 24010001 */ li $at, 1 +/* 0B1D0C 7F07D1DC 55610008 */ bnel $t3, $at, .L7F07D200 +/* 0B1D10 7F07D1E0 8C6400A8 */ lw $a0, 0xa8($v1) +/* 0B1D14 7F07D1E4 8C440004 */ lw $a0, 4($v0) +/* 0B1D18 7F07D1E8 2401002D */ li $at, 45 +/* 0B1D1C 7F07D1EC 908C0003 */ lbu $t4, 3($a0) +/* 0B1D20 7F07D1F0 15810002 */ bne $t4, $at, .L7F07D1FC +/* 0B1D24 7F07D1F4 3C018003 */ lui $at, %hi(D_8003644C) +/* 0B1D28 7F07D1F8 AC22644C */ sw $v0, %lo(D_8003644C)($at) +.L7F07D1FC: +/* 0B1D2C 7F07D1FC 8C6400A8 */ lw $a0, 0xa8($v1) +.L7F07D200: +/* 0B1D30 7F07D200 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0B1D34 7F07D204 24050001 */ li $a1, 1 +/* 0B1D38 7F07D208 3C048003 */ lui $a0, %hi(D_8003644C) +/* 0B1D3C 7F07D20C 8C84644C */ lw $a0, %lo(D_8003644C)($a0) +/* 0B1D40 7F07D210 50800004 */ beql $a0, $zero, .L7F07D224 +/* 0B1D44 7F07D214 8FBF002C */ lw $ra, 0x2c($sp) +/* 0B1D48 7F07D218 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0B1D4C 7F07D21C 24050001 */ li $a1, 1 +.L7F07D220: +/* 0B1D50 7F07D220 8FBF002C */ lw $ra, 0x2c($sp) +.L7F07D224: +/* 0B1D54 7F07D224 8FA20094 */ lw $v0, 0x94($sp) +/* 0B1D58 7F07D228 27BD0098 */ addiu $sp, $sp, 0x98 +/* 0B1D5C 7F07D22C 03E00008 */ jr $ra +/* 0B1D60 7F07D230 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07D234(void *arg0, s32 arg1, ? arg2) { + ?32 sp1C; + + // Node 0 + sub_GAME_7F0B1CC4(); + if (cal_player_collision(arg0, &sp1C) == 0) + { + // Node 2 + sub_GAME_7F0B28B0(arg1, arg2); + // Node 3 + return 0; + } + // Node 1 + pPlayer->field_488 = sp1C; + pPlayer->field_48C = (f32) *arg0; + pPlayer->field_494 = (f32) arg0->unk8; + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07D234 +/* 0B1D64 7F07D234 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0B1D68 7F07D238 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B1D6C 7F07D23C AFA40020 */ sw $a0, 0x20($sp) +/* 0B1D70 7F07D240 AFA50024 */ sw $a1, 0x24($sp) +/* 0B1D74 7F07D244 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 0B1D78 7F07D248 AFA60028 */ sw $a2, 0x28($sp) +/* 0B1D7C 7F07D24C 8FA40020 */ lw $a0, 0x20($sp) +/* 0B1D80 7F07D250 0FC1F3E3 */ jal cal_player_collision +/* 0B1D84 7F07D254 27A5001C */ addiu $a1, $sp, 0x1c +/* 0B1D88 7F07D258 1040000E */ beqz $v0, .L7F07D294 +/* 0B1D8C 7F07D25C 8FA40020 */ lw $a0, 0x20($sp) +/* 0B1D90 7F07D260 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B1D94 7F07D264 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B1D98 7F07D268 8C6F0000 */ lw $t7, ($v1) +/* 0B1D9C 7F07D26C 8FAE001C */ lw $t6, 0x1c($sp) +/* 0B1DA0 7F07D270 24020001 */ li $v0, 1 +/* 0B1DA4 7F07D274 ADEE0488 */ sw $t6, 0x488($t7) +/* 0B1DA8 7F07D278 8C780000 */ lw $t8, ($v1) +/* 0B1DAC 7F07D27C C4840000 */ lwc1 $f4, ($a0) +/* 0B1DB0 7F07D280 E704048C */ swc1 $f4, 0x48c($t8) +/* 0B1DB4 7F07D284 8C790000 */ lw $t9, ($v1) +/* 0B1DB8 7F07D288 C4860008 */ lwc1 $f6, 8($a0) +/* 0B1DBC 7F07D28C 10000005 */ b .L7F07D2A4 +/* 0B1DC0 7F07D290 E7260494 */ swc1 $f6, 0x494($t9) +.L7F07D294: +/* 0B1DC4 7F07D294 8FA40024 */ lw $a0, 0x24($sp) +/* 0B1DC8 7F07D298 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 0B1DCC 7F07D29C 8FA50028 */ lw $a1, 0x28($sp) +/* 0B1DD0 7F07D2A0 00001025 */ move $v0, $zero +.L7F07D2A4: +/* 0B1DD4 7F07D2A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B1DD8 7F07D2A8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0B1DDC 7F07D2AC 03E00008 */ jr $ra +/* 0B1DE0 7F07D2B0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07D2B4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07D2B4 +/* 0B1DE4 7F07D2B4 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0B1DE8 7F07D2B8 AFB00018 */ sw $s0, 0x18($sp) +/* 0B1DEC 7F07D2BC 3C108008 */ lui $s0, %hi(pPlayer) +/* 0B1DF0 7F07D2C0 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0B1DF4 7F07D2C4 8E0E0000 */ lw $t6, ($s0) +/* 0B1DF8 7F07D2C8 AFB20020 */ sw $s2, 0x20($sp) +/* 0B1DFC 7F07D2CC AFB1001C */ sw $s1, 0x1c($sp) +/* 0B1E00 7F07D2D0 00A08825 */ move $s1, $a1 +/* 0B1E04 7F07D2D4 00C09025 */ move $s2, $a2 +/* 0B1E08 7F07D2D8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0B1E0C 7F07D2DC AFA40080 */ sw $a0, 0x80($sp) +/* 0B1E10 7F07D2E0 AFA7008C */ sw $a3, 0x8c($sp) +/* 0B1E14 7F07D2E4 27A70074 */ addiu $a3, $sp, 0x74 +/* 0B1E18 7F07D2E8 27A60078 */ addiu $a2, $sp, 0x78 +/* 0B1E1C 7F07D2EC 27A50030 */ addiu $a1, $sp, 0x30 +/* 0B1E20 7F07D2F0 0FC2289D */ jal sub_GAME_7F08A274 +/* 0B1E24 7F07D2F4 8DC400A8 */ lw $a0, 0xa8($t6) +/* 0B1E28 7F07D2F8 8FA30080 */ lw $v1, 0x80($sp) +/* 0B1E2C 7F07D2FC 8E020000 */ lw $v0, ($s0) +/* 0B1E30 7F07D300 27A40050 */ addiu $a0, $sp, 0x50 +/* 0B1E34 7F07D304 C4640000 */ lwc1 $f4, ($v1) +/* 0B1E38 7F07D308 C446048C */ lwc1 $f6, 0x48c($v0) +/* 0B1E3C 7F07D30C 27A50048 */ addiu $a1, $sp, 0x48 +/* 0B1E40 7F07D310 27A60040 */ addiu $a2, $sp, 0x40 +/* 0B1E44 7F07D314 46062201 */ sub.s $f8, $f4, $f6 +/* 0B1E48 7F07D318 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0B1E4C 7F07D31C 27A70038 */ addiu $a3, $sp, 0x38 +/* 0B1E50 7F07D320 E7A8005C */ swc1 $f8, 0x5c($sp) +/* 0B1E54 7F07D324 C46A0008 */ lwc1 $f10, 8($v1) +/* 0B1E58 7F07D328 C4500494 */ lwc1 $f16, 0x494($v0) +/* 0B1E5C 7F07D32C E7A40050 */ swc1 $f4, 0x50($sp) +/* 0B1E60 7F07D330 46105481 */ sub.s $f18, $f10, $f16 +/* 0B1E64 7F07D334 E7B20064 */ swc1 $f18, 0x64($sp) +/* 0B1E68 7F07D338 C446048C */ lwc1 $f6, 0x48c($v0) +/* 0B1E6C 7F07D33C E7A60054 */ swc1 $f6, 0x54($sp) +/* 0B1E70 7F07D340 C4480494 */ lwc1 $f8, 0x494($v0) +/* 0B1E74 7F07D344 C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 0B1E78 7F07D348 E7A80058 */ swc1 $f8, 0x58($sp) +/* 0B1E7C 7F07D34C C62A0000 */ lwc1 $f10, ($s1) +/* 0B1E80 7F07D350 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 0B1E84 7F07D354 E7AA0048 */ swc1 $f10, 0x48($sp) +/* 0B1E88 7F07D358 C6300008 */ lwc1 $f16, 8($s1) +/* 0B1E8C 7F07D35C E7B0004C */ swc1 $f16, 0x4c($sp) +/* 0B1E90 7F07D360 C6520000 */ lwc1 $f18, ($s2) +/* 0B1E94 7F07D364 E7B20040 */ swc1 $f18, 0x40($sp) +/* 0B1E98 7F07D368 C6440008 */ lwc1 $f4, 8($s2) +/* 0B1E9C 7F07D36C E7A60038 */ swc1 $f6, 0x38($sp) +/* 0B1EA0 7F07D370 E7A8003C */ swc1 $f8, 0x3c($sp) +/* 0B1EA4 7F07D374 0FC2CCF7 */ jal sub_GAME_7F0B33DC +/* 0B1EA8 7F07D378 E7A40044 */ swc1 $f4, 0x44($sp) +/* 0B1EAC 7F07D37C C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 0B1EB0 7F07D380 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0B1EB4 7F07D384 44811000 */ mtc1 $at, $f2 +/* 0B1EB8 7F07D388 46005402 */ mul.s $f16, $f10, $f0 +/* 0B1EBC 7F07D38C C7A80064 */ lwc1 $f8, 0x64($sp) +/* 0B1EC0 7F07D390 8E020000 */ lw $v0, ($s0) +/* 0B1EC4 7F07D394 27A40068 */ addiu $a0, $sp, 0x68 +/* 0B1EC8 7F07D398 27A5007C */ addiu $a1, $sp, 0x7c +/* 0B1ECC 7F07D39C C444048C */ lwc1 $f4, 0x48c($v0) +/* 0B1ED0 7F07D3A0 46028482 */ mul.s $f18, $f16, $f2 +/* 0B1ED4 7F07D3A4 00000000 */ nop +/* 0B1ED8 7F07D3A8 46004282 */ mul.s $f10, $f8, $f0 +/* 0B1EDC 7F07D3AC 46049180 */ add.s $f6, $f18, $f4 +/* 0B1EE0 7F07D3B0 46025402 */ mul.s $f16, $f10, $f2 +/* 0B1EE4 7F07D3B4 E7A60068 */ swc1 $f6, 0x68($sp) +/* 0B1EE8 7F07D3B8 C4520494 */ lwc1 $f18, 0x494($v0) +/* 0B1EEC 7F07D3BC 46128100 */ add.s $f4, $f16, $f18 +/* 0B1EF0 7F07D3C0 0FC1F3E3 */ jal cal_player_collision +/* 0B1EF4 7F07D3C4 E7A40070 */ swc1 $f4, 0x70($sp) +/* 0B1EF8 7F07D3C8 1040000B */ beqz $v0, .L7F07D3F8 +/* 0B1EFC 7F07D3CC 8FAF007C */ lw $t7, 0x7c($sp) +/* 0B1F00 7F07D3D0 8E180000 */ lw $t8, ($s0) +/* 0B1F04 7F07D3D4 24020001 */ li $v0, 1 +/* 0B1F08 7F07D3D8 AF0F0488 */ sw $t7, 0x488($t8) +/* 0B1F0C 7F07D3DC 8E190000 */ lw $t9, ($s0) +/* 0B1F10 7F07D3E0 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 0B1F14 7F07D3E4 E726048C */ swc1 $f6, 0x48c($t9) +/* 0B1F18 7F07D3E8 8E080000 */ lw $t0, ($s0) +/* 0B1F1C 7F07D3EC C7A80070 */ lwc1 $f8, 0x70($sp) +/* 0B1F20 7F07D3F0 1000002D */ b .L7F07D4A8 +/* 0B1F24 7F07D3F4 E5080494 */ swc1 $f8, 0x494($t0) +.L7F07D3F8: +/* 0B1F28 7F07D3F8 8FB00090 */ lw $s0, 0x90($sp) +/* 0B1F2C 7F07D3FC 8FA4008C */ lw $a0, 0x8c($sp) +/* 0B1F30 7F07D400 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 0B1F34 7F07D404 02002825 */ move $a1, $s0 +/* 0B1F38 7F07D408 8FA3008C */ lw $v1, 0x8c($sp) +/* 0B1F3C 7F07D40C C6300000 */ lwc1 $f16, ($s1) +/* 0B1F40 7F07D410 C46A0000 */ lwc1 $f10, ($v1) +/* 0B1F44 7F07D414 46105032 */ c.eq.s $f10, $f16 +/* 0B1F48 7F07D418 00000000 */ nop +/* 0B1F4C 7F07D41C 45000020 */ bc1f .L7F07D4A0 +/* 0B1F50 7F07D420 00000000 */ nop +/* 0B1F54 7F07D424 C4720004 */ lwc1 $f18, 4($v1) +/* 0B1F58 7F07D428 C6240004 */ lwc1 $f4, 4($s1) +/* 0B1F5C 7F07D42C 46049032 */ c.eq.s $f18, $f4 +/* 0B1F60 7F07D430 00000000 */ nop +/* 0B1F64 7F07D434 4500001A */ bc1f .L7F07D4A0 +/* 0B1F68 7F07D438 00000000 */ nop +/* 0B1F6C 7F07D43C C4660008 */ lwc1 $f6, 8($v1) +/* 0B1F70 7F07D440 C6280008 */ lwc1 $f8, 8($s1) +/* 0B1F74 7F07D444 46083032 */ c.eq.s $f6, $f8 +/* 0B1F78 7F07D448 00000000 */ nop +/* 0B1F7C 7F07D44C 45000014 */ bc1f .L7F07D4A0 +/* 0B1F80 7F07D450 00000000 */ nop +/* 0B1F84 7F07D454 C60A0000 */ lwc1 $f10, ($s0) +/* 0B1F88 7F07D458 C6500000 */ lwc1 $f16, ($s2) +/* 0B1F8C 7F07D45C 46105032 */ c.eq.s $f10, $f16 +/* 0B1F90 7F07D460 00000000 */ nop +/* 0B1F94 7F07D464 4500000E */ bc1f .L7F07D4A0 +/* 0B1F98 7F07D468 00000000 */ nop +/* 0B1F9C 7F07D46C C6120004 */ lwc1 $f18, 4($s0) +/* 0B1FA0 7F07D470 C6440004 */ lwc1 $f4, 4($s2) +/* 0B1FA4 7F07D474 46049032 */ c.eq.s $f18, $f4 +/* 0B1FA8 7F07D478 00000000 */ nop +/* 0B1FAC 7F07D47C 45000008 */ bc1f .L7F07D4A0 +/* 0B1FB0 7F07D480 00000000 */ nop +/* 0B1FB4 7F07D484 C6060008 */ lwc1 $f6, 8($s0) +/* 0B1FB8 7F07D488 C6480008 */ lwc1 $f8, 8($s2) +/* 0B1FBC 7F07D48C 2402FFFF */ li $v0, -1 +/* 0B1FC0 7F07D490 46083032 */ c.eq.s $f6, $f8 +/* 0B1FC4 7F07D494 00000000 */ nop +/* 0B1FC8 7F07D498 45010003 */ bc1t .L7F07D4A8 +/* 0B1FCC 7F07D49C 00000000 */ nop +.L7F07D4A0: +/* 0B1FD0 7F07D4A0 10000001 */ b .L7F07D4A8 +/* 0B1FD4 7F07D4A4 00001025 */ move $v0, $zero +.L7F07D4A8: +/* 0B1FD8 7F07D4A8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0B1FDC 7F07D4AC 8FB00018 */ lw $s0, 0x18($sp) +/* 0B1FE0 7F07D4B0 8FB1001C */ lw $s1, 0x1c($sp) +/* 0B1FE4 7F07D4B4 8FB20020 */ lw $s2, 0x20($sp) +/* 0B1FE8 7F07D4B8 03E00008 */ jr $ra +/* 0B1FEC 7F07D4BC 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07D4C0(void *arg0, void *arg1, void *arg2) { + ?32 sp24; + f32 sp28; + f32 sp30; + f32 sp34; + f32 sp3C; + f32 sp44; + f32 sp4C; + f32 temp_f8; + f32 temp_f2; + f32 temp_f4; + f32 temp_f6; + f32 temp_f12; + ? phi_return; + + // Node 0 + sp44 = (f32) (*arg0 - pPlayer->field_48C); + sp4C = (f32) (arg0->unk8 - pPlayer->field_494); + if (*arg1 == *arg2) + { + // Node 1 + phi_return = -1; + if (arg1->unk8 == arg2->unk8) + { + // Node 5 + return phi_return; + } + } + // Node 2 + temp_f8 = (*arg2 - *arg1); + sp34 = temp_f8; + sp3C = (f32) (arg2->unk8 - arg1->unk8); + temp_f2 = (1.0f / sqrtf(((sp3C * sp3C) + (temp_f8 * temp_f8)))); + temp_f4 = (sp34 * temp_f2); + temp_f6 = (sp3C * temp_f2); + sp34 = temp_f4; + sp3C = temp_f6; + temp_f12 = ((temp_f6 * sp4C) + (sp44 * temp_f4)); + sp28 = (f32) ((temp_f4 * temp_f12) + pPlayer->field_48C); + sp30 = (f32) ((temp_f6 * temp_f12) + pPlayer->field_494); + if (cal_player_collision(temp_f12, &sp28, &sp24) == 0) + { + // Node 4 + phi_return = 0; + // Node 5 + return phi_return; + } + // Node 3 + pPlayer->field_488 = sp24; + pPlayer->field_48C = sp28; + pPlayer->field_494 = sp30; + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07D4C0 +/* 0B1FF0 7F07D4C0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B1FF4 7F07D4C4 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B1FF8 7F07D4C8 8C620000 */ lw $v0, ($v1) +/* 0B1FFC 7F07D4CC 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0B2000 7F07D4D0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B2004 7F07D4D4 C4840000 */ lwc1 $f4, ($a0) +/* 0B2008 7F07D4D8 C446048C */ lwc1 $f6, 0x48c($v0) +/* 0B200C 7F07D4DC 46062201 */ sub.s $f8, $f4, $f6 +/* 0B2010 7F07D4E0 E7A80044 */ swc1 $f8, 0x44($sp) +/* 0B2014 7F07D4E4 C48A0008 */ lwc1 $f10, 8($a0) +/* 0B2018 7F07D4E8 C4500494 */ lwc1 $f16, 0x494($v0) +/* 0B201C 7F07D4EC 46105481 */ sub.s $f18, $f10, $f16 +/* 0B2020 7F07D4F0 E7B2004C */ swc1 $f18, 0x4c($sp) +/* 0B2024 7F07D4F4 C4C20000 */ lwc1 $f2, ($a2) +/* 0B2028 7F07D4F8 C4A00000 */ lwc1 $f0, ($a1) +/* 0B202C 7F07D4FC 46020032 */ c.eq.s $f0, $f2 +/* 0B2030 7F07D500 00000000 */ nop +/* 0B2034 7F07D504 45020009 */ bc1fl .L7F07D52C +/* 0B2038 7F07D508 46001201 */ sub.s $f8, $f2, $f0 +/* 0B203C 7F07D50C C4A40008 */ lwc1 $f4, 8($a1) +/* 0B2040 7F07D510 C4C60008 */ lwc1 $f6, 8($a2) +/* 0B2044 7F07D514 2402FFFF */ li $v0, -1 +/* 0B2048 7F07D518 46062032 */ c.eq.s $f4, $f6 +/* 0B204C 7F07D51C 00000000 */ nop +/* 0B2050 7F07D520 4501003A */ bc1t .L7F07D60C +/* 0B2054 7F07D524 00000000 */ nop +/* 0B2058 7F07D528 46001201 */ sub.s $f8, $f2, $f0 +.L7F07D52C: +/* 0B205C 7F07D52C E7A80034 */ swc1 $f8, 0x34($sp) +/* 0B2060 7F07D530 C4B00008 */ lwc1 $f16, 8($a1) +/* 0B2064 7F07D534 C4CA0008 */ lwc1 $f10, 8($a2) +/* 0B2068 7F07D538 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 0B206C 7F07D53C 46105481 */ sub.s $f18, $f10, $f16 +/* 0B2070 7F07D540 E7B2003C */ swc1 $f18, 0x3c($sp) +/* 0B2074 7F07D544 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0B2078 7F07D548 46042182 */ mul.s $f6, $f4, $f4 +/* 0B207C 7F07D54C 00000000 */ nop +/* 0B2080 7F07D550 46084282 */ mul.s $f10, $f8, $f8 +/* 0B2084 7F07D554 0C007DF8 */ jal sqrtf +/* 0B2088 7F07D558 460A3300 */ add.s $f12, $f6, $f10 +/* 0B208C 7F07D55C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B2090 7F07D560 44818000 */ mtc1 $at, $f16 +/* 0B2094 7F07D564 C7B20034 */ lwc1 $f18, 0x34($sp) +/* 0B2098 7F07D568 C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0B209C 7F07D56C 46008083 */ div.s $f2, $f16, $f0 +/* 0B20A0 7F07D570 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0B20A4 7F07D574 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B20A8 7F07D578 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B20AC 7F07D57C 8C620000 */ lw $v0, ($v1) +/* 0B20B0 7F07D580 27A40028 */ addiu $a0, $sp, 0x28 +/* 0B20B4 7F07D584 27A50024 */ addiu $a1, $sp, 0x24 +/* 0B20B8 7F07D588 46029102 */ mul.s $f4, $f18, $f2 +/* 0B20BC 7F07D58C C7B20044 */ lwc1 $f18, 0x44($sp) +/* 0B20C0 7F07D590 46024182 */ mul.s $f6, $f8, $f2 +/* 0B20C4 7F07D594 E7A40034 */ swc1 $f4, 0x34($sp) +/* 0B20C8 7F07D598 460A3402 */ mul.s $f16, $f6, $f10 +/* 0B20CC 7F07D59C E7A6003C */ swc1 $f6, 0x3c($sp) +/* 0B20D0 7F07D5A0 46049202 */ mul.s $f8, $f18, $f4 +/* 0B20D4 7F07D5A4 C452048C */ lwc1 $f18, 0x48c($v0) +/* 0B20D8 7F07D5A8 46088300 */ add.s $f12, $f16, $f8 +/* 0B20DC 7F07D5AC 460C2282 */ mul.s $f10, $f4, $f12 +/* 0B20E0 7F07D5B0 46125400 */ add.s $f16, $f10, $f18 +/* 0B20E4 7F07D5B4 460C3202 */ mul.s $f8, $f6, $f12 +/* 0B20E8 7F07D5B8 E7B00028 */ swc1 $f16, 0x28($sp) +/* 0B20EC 7F07D5BC C4440494 */ lwc1 $f4, 0x494($v0) +/* 0B20F0 7F07D5C0 46044280 */ add.s $f10, $f8, $f4 +/* 0B20F4 7F07D5C4 0FC1F3E3 */ jal cal_player_collision +/* 0B20F8 7F07D5C8 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 0B20FC 7F07D5CC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B2100 7F07D5D0 1040000C */ beqz $v0, .L7F07D604 +/* 0B2104 7F07D5D4 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B2108 7F07D5D8 8FAE0024 */ lw $t6, 0x24($sp) +/* 0B210C 7F07D5DC 8C6F0000 */ lw $t7, ($v1) +/* 0B2110 7F07D5E0 24020001 */ li $v0, 1 +/* 0B2114 7F07D5E4 ADEE0488 */ sw $t6, 0x488($t7) +/* 0B2118 7F07D5E8 8C780000 */ lw $t8, ($v1) +/* 0B211C 7F07D5EC C7B20028 */ lwc1 $f18, 0x28($sp) +/* 0B2120 7F07D5F0 E712048C */ swc1 $f18, 0x48c($t8) +/* 0B2124 7F07D5F4 8C790000 */ lw $t9, ($v1) +/* 0B2128 7F07D5F8 C7B00030 */ lwc1 $f16, 0x30($sp) +/* 0B212C 7F07D5FC 10000003 */ b .L7F07D60C +/* 0B2130 7F07D600 E7300494 */ swc1 $f16, 0x494($t9) +.L7F07D604: +/* 0B2134 7F07D604 10000001 */ b .L7F07D60C +/* 0B2138 7F07D608 00001025 */ move $v0, $zero +.L7F07D60C: +/* 0B213C 7F07D60C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B2140 7F07D610 27BD0050 */ addiu $sp, $sp, 0x50 +/* 0B2144 7F07D614 03E00008 */ jr $ra +/* 0B2148 7F07D618 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07D61C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07D61C +/* 0B214C 7F07D61C 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0B2150 7F07D620 AFB30020 */ sw $s3, 0x20($sp) +/* 0B2154 7F07D624 3C138008 */ lui $s3, %hi(pPlayer) +/* 0B2158 7F07D628 2673A0B0 */ addiu $s3, %lo(pPlayer) # addiu $s3, $s3, -0x5f50 +/* 0B215C 7F07D62C 8E6E0000 */ lw $t6, ($s3) +/* 0B2160 7F07D630 AFB2001C */ sw $s2, 0x1c($sp) +/* 0B2164 7F07D634 AFB10018 */ sw $s1, 0x18($sp) +/* 0B2168 7F07D638 AFB00014 */ sw $s0, 0x14($sp) +/* 0B216C 7F07D63C 00808025 */ move $s0, $a0 +/* 0B2170 7F07D640 00A08825 */ move $s1, $a1 +/* 0B2174 7F07D644 00C09025 */ move $s2, $a2 +/* 0B2178 7F07D648 AFBF0024 */ sw $ra, 0x24($sp) +/* 0B217C 7F07D64C 27A60040 */ addiu $a2, $sp, 0x40 +/* 0B2180 7F07D650 27A50030 */ addiu $a1, $sp, 0x30 +/* 0B2184 7F07D654 27A7003C */ addiu $a3, $sp, 0x3c +/* 0B2188 7F07D658 0FC2289D */ jal sub_GAME_7F08A274 +/* 0B218C 7F07D65C 8DC400A8 */ lw $a0, 0xa8($t6) +/* 0B2190 7F07D660 8E620000 */ lw $v0, ($s3) +/* 0B2194 7F07D664 C6040000 */ lwc1 $f4, ($s0) +/* 0B2198 7F07D668 C446048C */ lwc1 $f6, 0x48c($v0) +/* 0B219C 7F07D66C 46062201 */ sub.s $f8, $f4, $f6 +/* 0B21A0 7F07D670 E7A8005C */ swc1 $f8, 0x5c($sp) +/* 0B21A4 7F07D674 C60A0008 */ lwc1 $f10, 8($s0) +/* 0B21A8 7F07D678 C4500494 */ lwc1 $f16, 0x494($v0) +/* 0B21AC 7F07D67C 46105481 */ sub.s $f18, $f10, $f16 +/* 0B21B0 7F07D680 E7B20064 */ swc1 $f18, 0x64($sp) +/* 0B21B4 7F07D684 C6060000 */ lwc1 $f6, ($s0) +/* 0B21B8 7F07D688 C6240000 */ lwc1 $f4, ($s1) +/* 0B21BC 7F07D68C 46062201 */ sub.s $f8, $f4, $f6 +/* 0B21C0 7F07D690 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0B21C4 7F07D694 E7A80050 */ swc1 $f8, 0x50($sp) +/* 0B21C8 7F07D698 C6100008 */ lwc1 $f16, 8($s0) +/* 0B21CC 7F07D69C C62A0008 */ lwc1 $f10, 8($s1) +/* 0B21D0 7F07D6A0 46042002 */ mul.s $f0, $f4, $f4 +/* 0B21D4 7F07D6A4 46105481 */ sub.s $f18, $f10, $f16 +/* 0B21D8 7F07D6A8 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 0B21DC 7F07D6AC E7B20058 */ swc1 $f18, 0x58($sp) +/* 0B21E0 7F07D6B0 C7A60058 */ lwc1 $f6, 0x58($sp) +/* 0B21E4 7F07D6B4 46063202 */ mul.s $f8, $f6, $f6 +/* 0B21E8 7F07D6B8 00000000 */ nop +/* 0B21EC 7F07D6BC 460A5402 */ mul.s $f16, $f10, $f10 +/* 0B21F0 7F07D6C0 46104480 */ add.s $f18, $f8, $f16 +/* 0B21F4 7F07D6C4 4600903E */ c.le.s $f18, $f0 +/* 0B21F8 7F07D6C8 00000000 */ nop +/* 0B21FC 7F07D6CC 45000044 */ bc1f .L7F07D7E0 +/* 0B2200 7F07D6D0 00000000 */ nop +/* 0B2204 7F07D6D4 C6240000 */ lwc1 $f4, ($s1) +/* 0B2208 7F07D6D8 C446048C */ lwc1 $f6, 0x48c($v0) +/* 0B220C 7F07D6DC 46062032 */ c.eq.s $f4, $f6 +/* 0B2210 7F07D6E0 00000000 */ nop +/* 0B2214 7F07D6E4 45020008 */ bc1fl .L7F07D708 +/* 0B2218 7F07D6E8 C6300008 */ lwc1 $f16, 8($s1) +/* 0B221C 7F07D6EC C62A0008 */ lwc1 $f10, 8($s1) +/* 0B2220 7F07D6F0 C4480494 */ lwc1 $f8, 0x494($v0) +/* 0B2224 7F07D6F4 46085032 */ c.eq.s $f10, $f8 +/* 0B2228 7F07D6F8 00000000 */ nop +/* 0B222C 7F07D6FC 4503008E */ bc1tl .L7F07D938 +/* 0B2230 7F07D700 00001025 */ move $v0, $zero +/* 0B2234 7F07D704 C6300008 */ lwc1 $f16, 8($s1) +.L7F07D708: +/* 0B2238 7F07D708 C4520494 */ lwc1 $f18, 0x494($v0) +/* 0B223C 7F07D70C 46128101 */ sub.s $f4, $f16, $f18 +/* 0B2240 7F07D710 46002187 */ neg.s $f6, $f4 +/* 0B2244 7F07D714 E7A60050 */ swc1 $f6, 0x50($sp) +/* 0B2248 7F07D718 C448048C */ lwc1 $f8, 0x48c($v0) +/* 0B224C 7F07D71C C62A0000 */ lwc1 $f10, ($s1) +/* 0B2250 7F07D720 46063482 */ mul.s $f18, $f6, $f6 +/* 0B2254 7F07D724 46085401 */ sub.s $f16, $f10, $f8 +/* 0B2258 7F07D728 E7B00058 */ swc1 $f16, 0x58($sp) +/* 0B225C 7F07D72C C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0B2260 7F07D730 46042282 */ mul.s $f10, $f4, $f4 +/* 0B2264 7F07D734 0C007DF8 */ jal sqrtf +/* 0B2268 7F07D738 46125300 */ add.s $f12, $f10, $f18 +/* 0B226C 7F07D73C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B2270 7F07D740 44814000 */ mtc1 $at, $f8 +/* 0B2274 7F07D744 C7B00050 */ lwc1 $f16, 0x50($sp) +/* 0B2278 7F07D748 C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0B227C 7F07D74C 46004083 */ div.s $f2, $f8, $f0 +/* 0B2280 7F07D750 C7B20064 */ lwc1 $f18, 0x64($sp) +/* 0B2284 7F07D754 8E620000 */ lw $v0, ($s3) +/* 0B2288 7F07D758 27A40044 */ addiu $a0, $sp, 0x44 +/* 0B228C 7F07D75C 27A50034 */ addiu $a1, $sp, 0x34 +/* 0B2290 7F07D760 46028182 */ mul.s $f6, $f16, $f2 +/* 0B2294 7F07D764 C7B0005C */ lwc1 $f16, 0x5c($sp) +/* 0B2298 7F07D768 46022282 */ mul.s $f10, $f4, $f2 +/* 0B229C 7F07D76C E7A60050 */ swc1 $f6, 0x50($sp) +/* 0B22A0 7F07D770 46125202 */ mul.s $f8, $f10, $f18 +/* 0B22A4 7F07D774 E7AA0058 */ swc1 $f10, 0x58($sp) +/* 0B22A8 7F07D778 46068102 */ mul.s $f4, $f16, $f6 +/* 0B22AC 7F07D77C 46044300 */ add.s $f12, $f8, $f4 +/* 0B22B0 7F07D780 460C3482 */ mul.s $f18, $f6, $f12 +/* 0B22B4 7F07D784 00000000 */ nop +/* 0B22B8 7F07D788 460C5402 */ mul.s $f16, $f10, $f12 +/* 0B22BC 7F07D78C E7B20050 */ swc1 $f18, 0x50($sp) +/* 0B22C0 7F07D790 E7B00058 */ swc1 $f16, 0x58($sp) +/* 0B22C4 7F07D794 C448048C */ lwc1 $f8, 0x48c($v0) +/* 0B22C8 7F07D798 46089100 */ add.s $f4, $f18, $f8 +/* 0B22CC 7F07D79C E7A40044 */ swc1 $f4, 0x44($sp) +/* 0B22D0 7F07D7A0 C4460494 */ lwc1 $f6, 0x494($v0) +/* 0B22D4 7F07D7A4 46068280 */ add.s $f10, $f16, $f6 +/* 0B22D8 7F07D7A8 0FC1F3E3 */ jal cal_player_collision +/* 0B22DC 7F07D7AC E7AA004C */ swc1 $f10, 0x4c($sp) +/* 0B22E0 7F07D7B0 10400060 */ beqz $v0, .L7F07D934 +/* 0B22E4 7F07D7B4 8FAF0034 */ lw $t7, 0x34($sp) +/* 0B22E8 7F07D7B8 8E780000 */ lw $t8, ($s3) +/* 0B22EC 7F07D7BC 24020001 */ li $v0, 1 +/* 0B22F0 7F07D7C0 AF0F0488 */ sw $t7, 0x488($t8) +/* 0B22F4 7F07D7C4 8E790000 */ lw $t9, ($s3) +/* 0B22F8 7F07D7C8 C7B20044 */ lwc1 $f18, 0x44($sp) +/* 0B22FC 7F07D7CC E732048C */ swc1 $f18, 0x48c($t9) +/* 0B2300 7F07D7D0 8E680000 */ lw $t0, ($s3) +/* 0B2304 7F07D7D4 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 0B2308 7F07D7D8 10000057 */ b .L7F07D938 +/* 0B230C 7F07D7DC E5080494 */ swc1 $f8, 0x494($t0) +.L7F07D7E0: +/* 0B2310 7F07D7E0 C6440000 */ lwc1 $f4, ($s2) +/* 0B2314 7F07D7E4 C6100000 */ lwc1 $f16, ($s0) +/* 0B2318 7F07D7E8 46102181 */ sub.s $f6, $f4, $f16 +/* 0B231C 7F07D7EC E7A60050 */ swc1 $f6, 0x50($sp) +/* 0B2320 7F07D7F0 C6120008 */ lwc1 $f18, 8($s0) +/* 0B2324 7F07D7F4 C64A0008 */ lwc1 $f10, 8($s2) +/* 0B2328 7F07D7F8 C7A60050 */ lwc1 $f6, 0x50($sp) +/* 0B232C 7F07D7FC 46125201 */ sub.s $f8, $f10, $f18 +/* 0B2330 7F07D800 E7A80058 */ swc1 $f8, 0x58($sp) +/* 0B2334 7F07D804 C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0B2338 7F07D808 46042402 */ mul.s $f16, $f4, $f4 +/* 0B233C 7F07D80C 00000000 */ nop +/* 0B2340 7F07D810 46063282 */ mul.s $f10, $f6, $f6 +/* 0B2344 7F07D814 460A8480 */ add.s $f18, $f16, $f10 +/* 0B2348 7F07D818 4600903E */ c.le.s $f18, $f0 +/* 0B234C 7F07D81C 00000000 */ nop +/* 0B2350 7F07D820 45000044 */ bc1f .L7F07D934 +/* 0B2354 7F07D824 00000000 */ nop +/* 0B2358 7F07D828 C6480000 */ lwc1 $f8, ($s2) +/* 0B235C 7F07D82C C444048C */ lwc1 $f4, 0x48c($v0) +/* 0B2360 7F07D830 46044032 */ c.eq.s $f8, $f4 +/* 0B2364 7F07D834 00000000 */ nop +/* 0B2368 7F07D838 45020008 */ bc1fl .L7F07D85C +/* 0B236C 7F07D83C C64A0008 */ lwc1 $f10, 8($s2) +/* 0B2370 7F07D840 C6460008 */ lwc1 $f6, 8($s2) +/* 0B2374 7F07D844 C4500494 */ lwc1 $f16, 0x494($v0) +/* 0B2378 7F07D848 46103032 */ c.eq.s $f6, $f16 +/* 0B237C 7F07D84C 00000000 */ nop +/* 0B2380 7F07D850 45030039 */ bc1tl .L7F07D938 +/* 0B2384 7F07D854 00001025 */ move $v0, $zero +/* 0B2388 7F07D858 C64A0008 */ lwc1 $f10, 8($s2) +.L7F07D85C: +/* 0B238C 7F07D85C C4520494 */ lwc1 $f18, 0x494($v0) +/* 0B2390 7F07D860 46125201 */ sub.s $f8, $f10, $f18 +/* 0B2394 7F07D864 46004107 */ neg.s $f4, $f8 +/* 0B2398 7F07D868 E7A40050 */ swc1 $f4, 0x50($sp) +/* 0B239C 7F07D86C C450048C */ lwc1 $f16, 0x48c($v0) +/* 0B23A0 7F07D870 C6460000 */ lwc1 $f6, ($s2) +/* 0B23A4 7F07D874 46042482 */ mul.s $f18, $f4, $f4 +/* 0B23A8 7F07D878 46103281 */ sub.s $f10, $f6, $f16 +/* 0B23AC 7F07D87C E7AA0058 */ swc1 $f10, 0x58($sp) +/* 0B23B0 7F07D880 C7A80058 */ lwc1 $f8, 0x58($sp) +/* 0B23B4 7F07D884 46084182 */ mul.s $f6, $f8, $f8 +/* 0B23B8 7F07D888 0C007DF8 */ jal sqrtf +/* 0B23BC 7F07D88C 46123300 */ add.s $f12, $f6, $f18 +/* 0B23C0 7F07D890 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B23C4 7F07D894 44818000 */ mtc1 $at, $f16 +/* 0B23C8 7F07D898 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 0B23CC 7F07D89C C7A80058 */ lwc1 $f8, 0x58($sp) +/* 0B23D0 7F07D8A0 46008083 */ div.s $f2, $f16, $f0 +/* 0B23D4 7F07D8A4 C7B20064 */ lwc1 $f18, 0x64($sp) +/* 0B23D8 7F07D8A8 8E620000 */ lw $v0, ($s3) +/* 0B23DC 7F07D8AC 27A40044 */ addiu $a0, $sp, 0x44 +/* 0B23E0 7F07D8B0 27A50034 */ addiu $a1, $sp, 0x34 +/* 0B23E4 7F07D8B4 46025102 */ mul.s $f4, $f10, $f2 +/* 0B23E8 7F07D8B8 C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 0B23EC 7F07D8BC 46024182 */ mul.s $f6, $f8, $f2 +/* 0B23F0 7F07D8C0 E7A40050 */ swc1 $f4, 0x50($sp) +/* 0B23F4 7F07D8C4 46123402 */ mul.s $f16, $f6, $f18 +/* 0B23F8 7F07D8C8 E7A60058 */ swc1 $f6, 0x58($sp) +/* 0B23FC 7F07D8CC 46045202 */ mul.s $f8, $f10, $f4 +/* 0B2400 7F07D8D0 46088300 */ add.s $f12, $f16, $f8 +/* 0B2404 7F07D8D4 460C2482 */ mul.s $f18, $f4, $f12 +/* 0B2408 7F07D8D8 00000000 */ nop +/* 0B240C 7F07D8DC 460C3282 */ mul.s $f10, $f6, $f12 +/* 0B2410 7F07D8E0 E7B20050 */ swc1 $f18, 0x50($sp) +/* 0B2414 7F07D8E4 E7AA0058 */ swc1 $f10, 0x58($sp) +/* 0B2418 7F07D8E8 C450048C */ lwc1 $f16, 0x48c($v0) +/* 0B241C 7F07D8EC 46109200 */ add.s $f8, $f18, $f16 +/* 0B2420 7F07D8F0 E7A80044 */ swc1 $f8, 0x44($sp) +/* 0B2424 7F07D8F4 C4440494 */ lwc1 $f4, 0x494($v0) +/* 0B2428 7F07D8F8 46045180 */ add.s $f6, $f10, $f4 +/* 0B242C 7F07D8FC 0FC1F3E3 */ jal cal_player_collision +/* 0B2430 7F07D900 E7A6004C */ swc1 $f6, 0x4c($sp) +/* 0B2434 7F07D904 1040000B */ beqz $v0, .L7F07D934 +/* 0B2438 7F07D908 8FA90034 */ lw $t1, 0x34($sp) +/* 0B243C 7F07D90C 8E6A0000 */ lw $t2, ($s3) +/* 0B2440 7F07D910 24020001 */ li $v0, 1 +/* 0B2444 7F07D914 AD490488 */ sw $t1, 0x488($t2) +/* 0B2448 7F07D918 8E6B0000 */ lw $t3, ($s3) +/* 0B244C 7F07D91C C7B20044 */ lwc1 $f18, 0x44($sp) +/* 0B2450 7F07D920 E572048C */ swc1 $f18, 0x48c($t3) +/* 0B2454 7F07D924 8E6C0000 */ lw $t4, ($s3) +/* 0B2458 7F07D928 C7B0004C */ lwc1 $f16, 0x4c($sp) +/* 0B245C 7F07D92C 10000002 */ b .L7F07D938 +/* 0B2460 7F07D930 E5900494 */ swc1 $f16, 0x494($t4) +.L7F07D934: +/* 0B2464 7F07D934 00001025 */ move $v0, $zero +.L7F07D938: +/* 0B2468 7F07D938 8FBF0024 */ lw $ra, 0x24($sp) +/* 0B246C 7F07D93C 8FB00014 */ lw $s0, 0x14($sp) +/* 0B2470 7F07D940 8FB10018 */ lw $s1, 0x18($sp) +/* 0B2474 7F07D944 8FB2001C */ lw $s2, 0x1c($sp) +/* 0B2478 7F07D948 8FB30020 */ lw $s3, 0x20($sp) +/* 0B247C 7F07D94C 03E00008 */ jr $ra +/* 0B2480 7F07D950 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F07D954(s32 arg0) { + // Node 0 + return arg0; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07D954 +/* 0B2484 7F07D954 44840000 */ mtc1 $a0, $f0 +/* 0B2488 7F07D958 03E00008 */ jr $ra +/* 0B248C 7F07D95C AFA40000 */ sw $a0, ($sp) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07D960(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07D960 +/* 0B2490 7F07D960 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B2494 7F07D964 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B2498 7F07D968 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 0B249C 7F07D96C 8C620000 */ lw $v0, ($v1) +/* 0B24A0 7F07D970 AFBF0024 */ sw $ra, 0x24($sp) +/* 0B24A4 7F07D974 AFB00020 */ sw $s0, 0x20($sp) +/* 0B24A8 7F07D978 AFA500C4 */ sw $a1, 0xc4($sp) +/* 0B24AC 7F07D97C C444048C */ lwc1 $f4, 0x48c($v0) +/* 0B24B0 7F07D980 3C018003 */ lui $at, %hi(D_80036480) +/* 0B24B4 7F07D984 240E0002 */ li $t6, 2 +/* 0B24B8 7F07D988 E4440408 */ swc1 $f4, 0x408($v0) +/* 0B24BC 7F07D98C 8C620000 */ lw $v0, ($v1) +/* 0B24C0 7F07D990 3C078003 */ lui $a3, %hi(D_8003644C) +/* 0B24C4 7F07D994 27A50098 */ addiu $a1, $sp, 0x98 +/* 0B24C8 7F07D998 C4460490 */ lwc1 $f6, 0x490($v0) +/* 0B24CC 7F07D99C E446040C */ swc1 $f6, 0x40c($v0) +/* 0B24D0 7F07D9A0 8C620000 */ lw $v0, ($v1) +/* 0B24D4 7F07D9A4 C4480494 */ lwc1 $f8, 0x494($v0) +/* 0B24D8 7F07D9A8 E4480410 */ swc1 $f8, 0x410($v0) +/* 0B24DC 7F07D9AC 8C620000 */ lw $v0, ($v1) +/* 0B24E0 7F07D9B0 C48A0000 */ lwc1 $f10, ($a0) +/* 0B24E4 7F07D9B4 C450048C */ lwc1 $f16, 0x48c($v0) +/* 0B24E8 7F07D9B8 46105480 */ add.s $f18, $f10, $f16 +/* 0B24EC 7F07D9BC E7B200B4 */ swc1 $f18, 0xb4($sp) +/* 0B24F0 7F07D9C0 C4840008 */ lwc1 $f4, 8($a0) +/* 0B24F4 7F07D9C4 C4460494 */ lwc1 $f6, 0x494($v0) +/* 0B24F8 7F07D9C8 AC206480 */ sw $zero, %lo(D_80036480)($at) +/* 0B24FC 7F07D9CC 46062200 */ add.s $f8, $f4, $f6 +/* 0B2500 7F07D9D0 E7A800BC */ swc1 $f8, 0xbc($sp) +/* 0B2504 7F07D9D4 AC4E29FC */ sw $t6, 0x29fc($v0) +/* 0B2508 7F07D9D8 8CE7644C */ lw $a3, %lo(D_8003644C)($a3) +/* 0B250C 7F07D9DC 10E00084 */ beqz $a3, .L7F07DBF0 +/* 0B2510 7F07D9E0 00E02025 */ move $a0, $a3 +/* 0B2514 7F07D9E4 0FC0F32C */ jal sub_GAME_7F03CCB0 +/* 0B2518 7F07D9E8 27A60094 */ addiu $a2, $sp, 0x94 +/* 0B251C 7F07D9EC 3C0F8003 */ lui $t7, %hi(in_tank_flag) +/* 0B2520 7F07D9F0 8DEF6448 */ lw $t7, %lo(in_tank_flag)($t7) +/* 0B2524 7F07D9F4 24010001 */ li $at, 1 +/* 0B2528 7F07D9F8 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B252C 7F07D9FC 11E1000F */ beq $t7, $at, .L7F07DA3C +/* 0B2530 7F07DA00 8FA50098 */ lw $a1, 0x98($sp) +/* 0B2534 7F07DA04 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0B2538 7F07DA08 8FA60094 */ lw $a2, 0x94($sp) +/* 0B253C 7F07DA0C 0FC0F336 */ jal sub_GAME_7F03CCD8 +/* 0B2540 7F07DA10 2484048C */ addiu $a0, $a0, 0x48c +/* 0B2544 7F07DA14 14400009 */ bnez $v0, .L7F07DA3C +/* 0B2548 7F07DA18 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B254C 7F07DA1C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B2550 7F07DA20 8FA60098 */ lw $a2, 0x98($sp) +/* 0B2554 7F07DA24 8FA70094 */ lw $a3, 0x94($sp) +/* 0B2558 7F07DA28 2444048C */ addiu $a0, $v0, 0x48c +/* 0B255C 7F07DA2C 0FC111C6 */ jal sub_GAME_7F044718 +/* 0B2560 7F07DA30 8C4504B0 */ lw $a1, 0x4b0($v0) +/* 0B2564 7F07DA34 10400064 */ beqz $v0, .L7F07DBC8 +/* 0B2568 7F07DA38 3C058003 */ lui $a1, %hi(ptr_playerstank) +.L7F07DA3C: +/* 0B256C 7F07DA3C 3C078003 */ lui $a3, %hi(D_8003644C) +/* 0B2570 7F07DA40 8CE7644C */ lw $a3, %lo(D_8003644C)($a3) +/* 0B2574 7F07DA44 3C058003 */ lui $a1, %hi(ptr_playerstank) +/* 0B2578 7F07DA48 24A56450 */ addiu $a1, %lo(ptr_playerstank) # addiu $a1, $a1, 0x6450 +/* 0B257C 7F07DA4C 8CE20004 */ lw $v0, 4($a3) +/* 0B2580 7F07DA50 3C0D8003 */ lui $t5, %hi(in_tank_flag) +/* 0B2584 7F07DA54 24010001 */ li $at, 1 +/* 0B2588 7F07DA58 8C580014 */ lw $t8, 0x14($v0) +/* 0B258C 7F07DA5C 00408025 */ move $s0, $v0 +/* 0B2590 7F07DA60 8F190008 */ lw $t9, 8($t8) +/* 0B2594 7F07DA64 8F240008 */ lw $a0, 8($t9) +/* 0B2598 7F07DA68 8C8A0014 */ lw $t2, 0x14($a0) +/* 0B259C 7F07DA6C 8C8B0018 */ lw $t3, 0x18($a0) +/* 0B25A0 7F07DA70 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B25A4 7F07DA74 8D430004 */ lw $v1, 4($t2) +/* 0B25A8 7F07DA78 8D690004 */ lw $t1, 4($t3) +/* 0B25AC 7F07DA7C ACA70000 */ sw $a3, ($a1) +/* 0B25B0 7F07DA80 C470000C */ lwc1 $f16, 0xc($v1) +/* 0B25B4 7F07DA84 C46A0010 */ lwc1 $f10, 0x10($v1) +/* 0B25B8 7F07DA88 8C4C0014 */ lw $t4, 0x14($v0) +/* 0B25BC 7F07DA8C 8DAD6448 */ lw $t5, %lo(in_tank_flag)($t5) +/* 0B25C0 7F07DA90 46105481 */ sub.s $f18, $f10, $f16 +/* 0B25C4 7F07DA94 C5800014 */ lwc1 $f0, 0x14($t4) +/* 0B25C8 7F07DA98 24450084 */ addiu $a1, $v0, 0x84 +/* 0B25CC 7F07DA9C 46009082 */ mul.s $f2, $f18, $f0 +/* 0B25D0 7F07DAA0 51A1000D */ beql $t5, $at, .L7F07DAD8 +/* 0B25D4 7F07DAA4 C5240010 */ lwc1 $f4, 0x10($t1) +/* 0B25D8 7F07DAA8 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0B25DC 7F07DAAC 8C460080 */ lw $a2, 0x80($v0) +/* 0B25E0 7F07DAB0 E7A20080 */ swc1 $f2, 0x80($sp) +/* 0B25E4 7F07DAB4 AFA90084 */ sw $t1, 0x84($sp) +/* 0B25E8 7F07DAB8 0FC0F336 */ jal sub_GAME_7F03CCD8 +/* 0B25EC 7F07DABC 2484048C */ addiu $a0, $a0, 0x48c +/* 0B25F0 7F07DAC0 8FA90084 */ lw $t1, 0x84($sp) +/* 0B25F4 7F07DAC4 1040000B */ beqz $v0, .L7F07DAF4 +/* 0B25F8 7F07DAC8 C7A20080 */ lwc1 $f2, 0x80($sp) +/* 0B25FC 7F07DACC 8E0E0014 */ lw $t6, 0x14($s0) +/* 0B2600 7F07DAD0 C5C00014 */ lwc1 $f0, 0x14($t6) +/* 0B2604 7F07DAD4 C5240010 */ lwc1 $f4, 0x10($t1) +.L7F07DAD8: +/* 0B2608 7F07DAD8 C526000C */ lwc1 $f6, 0xc($t1) +/* 0B260C 7F07DADC 240F0001 */ li $t7, 1 +/* 0B2610 7F07DAE0 3C018003 */ lui $at, %hi(D_80036480) +/* 0B2614 7F07DAE4 46062201 */ sub.s $f8, $f4, $f6 +/* 0B2618 7F07DAE8 AC2F6480 */ sw $t7, %lo(D_80036480)($at) +/* 0B261C 7F07DAEC 46004282 */ mul.s $f10, $f8, $f0 +/* 0B2620 7F07DAF0 460A1080 */ add.s $f2, $f2, $f10 +.L7F07DAF4: +/* 0B2624 7F07DAF4 3C038003 */ lui $v1, %hi(in_tank_flag) +/* 0B2628 7F07DAF8 8C636448 */ lw $v1, %lo(in_tank_flag)($v1) +/* 0B262C 7F07DAFC 3C028003 */ lui $v0, %hi(D_80036454) +/* 0B2630 7F07DB00 24426454 */ addiu $v0, %lo(D_80036454) # addiu $v0, $v0, 0x6454 +/* 0B2634 7F07DB04 14600014 */ bnez $v1, .L7F07DB58 +/* 0B2638 7F07DB08 00000000 */ nop +/* 0B263C 7F07DB0C C4400000 */ lwc1 $f0, ($v0) +/* 0B2640 7F07DB10 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B2644 7F07DB14 4602003C */ c.lt.s $f0, $f2 +/* 0B2648 7F07DB18 00000000 */ nop +/* 0B264C 7F07DB1C 4500000E */ bc1f .L7F07DB58 +/* 0B2650 7F07DB20 00000000 */ nop +/* 0B2654 7F07DB24 44818000 */ mtc1 $at, $f16 +/* 0B2658 7F07DB28 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B265C 7F07DB2C C4328378 */ lwc1 $f18, %lo(global_timer_delta)($at) +/* 0B2660 7F07DB30 46128102 */ mul.s $f4, $f16, $f18 +/* 0B2664 7F07DB34 46040180 */ add.s $f6, $f0, $f4 +/* 0B2668 7F07DB38 E4460000 */ swc1 $f6, ($v0) +/* 0B266C 7F07DB3C C4480000 */ lwc1 $f8, ($v0) +/* 0B2670 7F07DB40 4608103C */ c.lt.s $f2, $f8 +/* 0B2674 7F07DB44 00000000 */ nop +/* 0B2678 7F07DB48 450200C2 */ bc1fl .L7F07DE54 +/* 0B267C 7F07DB4C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0B2680 7F07DB50 10000004 */ b .L7F07DB64 +/* 0B2684 7F07DB54 E4420000 */ swc1 $f2, ($v0) +.L7F07DB58: +/* 0B2688 7F07DB58 3C028003 */ lui $v0, %hi(D_80036454) +/* 0B268C 7F07DB5C 24426454 */ addiu $v0, %lo(D_80036454) # addiu $v0, $v0, 0x6454 +/* 0B2690 7F07DB60 E4420000 */ swc1 $f2, ($v0) +.L7F07DB64: +/* 0B2694 7F07DB64 24010001 */ li $at, 1 +/* 0B2698 7F07DB68 14610021 */ bne $v1, $at, .L7F07DBF0 +/* 0B269C 7F07DB6C 3C188008 */ lui $t8, %hi(dword_CODE_bss_800799B8) +/* 0B26A0 7F07DB70 8F1899B8 */ lw $t8, %lo(dword_CODE_bss_800799B8)($t8) +/* 0B26A4 7F07DB74 3C01C214 */ lui $at, 0xc214 +/* 0B26A8 7F07DB78 5700000E */ bnezl $t8, .L7F07DBB4 +/* 0B26AC 7F07DB7C C4500000 */ lwc1 $f16, ($v0) +/* 0B26B0 7F07DB80 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B26B4 7F07DB84 44815000 */ mtc1 $at, $f10 +/* 0B26B8 7F07DB88 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C0) +/* 0B26BC 7F07DB8C C43099C0 */ lwc1 $f16, %lo(flt_CODE_bss_800799C0)($at) +/* 0B26C0 7F07DB90 3C01C214 */ li $at, 0xC2140000 # -37.000000 +/* 0B26C4 7F07DB94 44812000 */ mtc1 $at, $f4 +/* 0B26C8 7F07DB98 46105481 */ sub.s $f18, $f10, $f16 +/* 0B26CC 7F07DB9C C4480000 */ lwc1 $f8, ($v0) +/* 0B26D0 7F07DBA0 46122182 */ mul.s $f6, $f4, $f18 +/* 0B26D4 7F07DBA4 46064280 */ add.s $f10, $f8, $f6 +/* 0B26D8 7F07DBA8 10000011 */ b .L7F07DBF0 +/* 0B26DC 7F07DBAC E44A0000 */ swc1 $f10, ($v0) +/* 0B26E0 7F07DBB0 C4500000 */ lwc1 $f16, ($v0) +.L7F07DBB4: +/* 0B26E4 7F07DBB4 44812000 */ mtc1 $at, $f4 +/* 0B26E8 7F07DBB8 00000000 */ nop +/* 0B26EC 7F07DBBC 46048480 */ add.s $f18, $f16, $f4 +/* 0B26F0 7F07DBC0 1000000B */ b .L7F07DBF0 +/* 0B26F4 7F07DBC4 E4520000 */ swc1 $f18, ($v0) +.L7F07DBC8: +/* 0B26F8 7F07DBC8 24A56450 */ addiu $a1, $a1, %lo(ptr_playerstank) +/* 0B26FC 7F07DBCC 8CB90000 */ lw $t9, ($a1) +/* 0B2700 7F07DBD0 3C028003 */ lui $v0, %hi(D_80036454) +/* 0B2704 7F07DBD4 24426454 */ addiu $v0, %lo(D_80036454) # addiu $v0, $v0, 0x6454 +/* 0B2708 7F07DBD8 13200005 */ beqz $t9, .L7F07DBF0 +/* 0B270C 7F07DBDC 3C018003 */ lui $at, %hi(D_8003644C) +/* 0B2710 7F07DBE0 44804000 */ mtc1 $zero, $f8 +/* 0B2714 7F07DBE4 AC20644C */ sw $zero, %lo(D_8003644C)($at) +/* 0B2718 7F07DBE8 ACA00000 */ sw $zero, ($a1) +/* 0B271C 7F07DBEC E4480000 */ swc1 $f8, ($v0) +.L7F07DBF0: +/* 0B2720 7F07DBF0 27B000B4 */ addiu $s0, $sp, 0xb4 +/* 0B2724 7F07DBF4 02002025 */ move $a0, $s0 +/* 0B2728 7F07DBF8 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 0B272C 7F07DBFC 0FC1F48D */ jal sub_GAME_7F07D234 +/* 0B2730 7F07DC00 27A6009C */ addiu $a2, $sp, 0x9c +/* 0B2734 7F07DC04 14400037 */ bnez $v0, .L7F07DCE4 +/* 0B2738 7F07DC08 02002025 */ move $a0, $s0 +/* 0B273C 7F07DC0C 27AA0068 */ addiu $t2, $sp, 0x68 +/* 0B2740 7F07DC10 AFAA0010 */ sw $t2, 0x10($sp) +/* 0B2744 7F07DC14 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 0B2748 7F07DC18 27A6009C */ addiu $a2, $sp, 0x9c +/* 0B274C 7F07DC1C 0FC1F4AD */ jal sub_GAME_7F07D2B4 +/* 0B2750 7F07DC20 27A70074 */ addiu $a3, $sp, 0x74 +/* 0B2754 7F07DC24 1C400003 */ bgtz $v0, .L7F07DC34 +/* 0B2758 7F07DC28 8FAB00C4 */ lw $t3, 0xc4($sp) +/* 0B275C 7F07DC2C 0441000F */ bgez $v0, .L7F07DC6C +/* 0B2760 7F07DC30 00000000 */ nop +.L7F07DC34: +/* 0B2764 7F07DC34 1160002B */ beqz $t3, .L7F07DCE4 +/* 0B2768 7F07DC38 02002025 */ move $a0, $s0 +/* 0B276C 7F07DC3C 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 0B2770 7F07DC40 0FC1F530 */ jal sub_GAME_7F07D4C0 +/* 0B2774 7F07DC44 27A6009C */ addiu $a2, $sp, 0x9c +/* 0B2778 7F07DC48 1C400026 */ bgtz $v0, .L7F07DCE4 +/* 0B277C 7F07DC4C 02002025 */ move $a0, $s0 +/* 0B2780 7F07DC50 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 0B2784 7F07DC54 0FC1F587 */ jal sub_GAME_7F07D61C +/* 0B2788 7F07DC58 27A6009C */ addiu $a2, $sp, 0x9c +/* 0B278C 7F07DC5C 14400021 */ bnez $v0, .L7F07DCE4 +/* 0B2790 7F07DC60 00000000 */ nop +/* 0B2794 7F07DC64 1000001F */ b .L7F07DCE4 +/* 0B2798 7F07DC68 00000000 */ nop +.L7F07DC6C: +/* 0B279C 7F07DC6C 1440001D */ bnez $v0, .L7F07DCE4 +/* 0B27A0 7F07DC70 02002025 */ move $a0, $s0 +/* 0B27A4 7F07DC74 27AC004C */ addiu $t4, $sp, 0x4c +/* 0B27A8 7F07DC78 AFAC0010 */ sw $t4, 0x10($sp) +/* 0B27AC 7F07DC7C 27A50074 */ addiu $a1, $sp, 0x74 +/* 0B27B0 7F07DC80 27A60068 */ addiu $a2, $sp, 0x68 +/* 0B27B4 7F07DC84 0FC1F4AD */ jal sub_GAME_7F07D2B4 +/* 0B27B8 7F07DC88 27A70058 */ addiu $a3, $sp, 0x58 +/* 0B27BC 7F07DC8C 8FAD00C4 */ lw $t5, 0xc4($sp) +/* 0B27C0 7F07DC90 02002025 */ move $a0, $s0 +/* 0B27C4 7F07DC94 27A50074 */ addiu $a1, $sp, 0x74 +/* 0B27C8 7F07DC98 11A00012 */ beqz $t5, .L7F07DCE4 +/* 0B27CC 7F07DC9C 00000000 */ nop +/* 0B27D0 7F07DCA0 0FC1F530 */ jal sub_GAME_7F07D4C0 +/* 0B27D4 7F07DCA4 27A60068 */ addiu $a2, $sp, 0x68 +/* 0B27D8 7F07DCA8 1C40000E */ bgtz $v0, .L7F07DCE4 +/* 0B27DC 7F07DCAC 02002025 */ move $a0, $s0 +/* 0B27E0 7F07DCB0 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 0B27E4 7F07DCB4 0FC1F530 */ jal sub_GAME_7F07D4C0 +/* 0B27E8 7F07DCB8 27A6009C */ addiu $a2, $sp, 0x9c +/* 0B27EC 7F07DCBC 1C400009 */ bgtz $v0, .L7F07DCE4 +/* 0B27F0 7F07DCC0 02002025 */ move $a0, $s0 +/* 0B27F4 7F07DCC4 27A50074 */ addiu $a1, $sp, 0x74 +/* 0B27F8 7F07DCC8 0FC1F587 */ jal sub_GAME_7F07D61C +/* 0B27FC 7F07DCCC 27A60068 */ addiu $a2, $sp, 0x68 +/* 0B2800 7F07DCD0 14400004 */ bnez $v0, .L7F07DCE4 +/* 0B2804 7F07DCD4 02002025 */ move $a0, $s0 +/* 0B2808 7F07DCD8 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 0B280C 7F07DCDC 0FC1F587 */ jal sub_GAME_7F07D61C +/* 0B2810 7F07DCE0 27A6009C */ addiu $a2, $sp, 0x9c +.L7F07DCE4: +/* 0B2814 7F07DCE4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B2818 7F07DCE8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B281C 7F07DCEC 8C440488 */ lw $a0, 0x488($v0) +/* 0B2820 7F07DCF0 8C45048C */ lw $a1, 0x48c($v0) +/* 0B2824 7F07DCF4 0FC2C146 */ jal sub_GAME_7F0B0518 +/* 0B2828 7F07DCF8 8C460494 */ lw $a2, 0x494($v0) +/* 0B282C 7F07DCFC 1440004A */ bnez $v0, .L7F07DE28 +/* 0B2830 7F07DD00 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B2834 7F07DD04 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B2838 7F07DD08 00004025 */ move $t0, $zero +/* 0B283C 7F07DD0C 8DD00488 */ lw $s0, 0x488($t6) +/* 0B2840 7F07DD10 86060006 */ lh $a2, 6($s0) +.L7F07DD14: +/* 0B2844 7F07DD14 00001825 */ move $v1, $zero +/* 0B2848 7F07DD18 00002025 */ move $a0, $zero +/* 0B284C 7F07DD1C 00067B03 */ sra $t7, $a2, 0xc +/* 0B2850 7F07DD20 31F8000F */ andi $t8, $t7, 0xf +/* 0B2854 7F07DD24 1B00000D */ blez $t8, .L7F07DD5C +/* 0B2858 7F07DD28 02001025 */ move $v0, $s0 +/* 0B285C 7F07DD2C 00001825 */ move $v1, $zero +/* 0B2860 7F07DD30 001828C0 */ sll $a1, $t8, 3 +.L7F07DD34: +/* 0B2864 7F07DD34 9459000E */ lhu $t9, 0xe($v0) +/* 0B2868 7F07DD38 24630008 */ addiu $v1, $v1, 8 +/* 0B286C 7F07DD3C 0065082A */ slt $at, $v1, $a1 +/* 0B2870 7F07DD40 00195103 */ sra $t2, $t9, 4 +/* 0B2874 7F07DD44 11400002 */ beqz $t2, .L7F07DD50 +/* 0B2878 7F07DD48 00000000 */ nop +/* 0B287C 7F07DD4C 24840001 */ addiu $a0, $a0, 1 +.L7F07DD50: +/* 0B2880 7F07DD50 1420FFF8 */ bnez $at, .L7F07DD34 +/* 0B2884 7F07DD54 24420008 */ addiu $v0, $v0, 8 +/* 0B2888 7F07DD58 00001825 */ move $v1, $zero +.L7F07DD5C: +/* 0B288C 7F07DD5C AFA30044 */ sw $v1, 0x44($sp) +/* 0B2890 7F07DD60 AFA4003C */ sw $a0, 0x3c($sp) +/* 0B2894 7F07DD64 0C002914 */ jal get_random_value +/* 0B2898 7F07DD68 AFA80048 */ sw $t0, 0x48($sp) +/* 0B289C 7F07DD6C 8FA4003C */ lw $a0, 0x3c($sp) +/* 0B28A0 7F07DD70 86060006 */ lh $a2, 6($s0) +/* 0B28A4 7F07DD74 8FA30044 */ lw $v1, 0x44($sp) +/* 0B28A8 7F07DD78 0044001B */ divu $zero, $v0, $a0 +/* 0B28AC 7F07DD7C 00065B03 */ sra $t3, $a2, 0xc +/* 0B28B0 7F07DD80 00003810 */ mfhi $a3 +/* 0B28B4 7F07DD84 316C000F */ andi $t4, $t3, 0xf +/* 0B28B8 7F07DD88 8FA80048 */ lw $t0, 0x48($sp) +/* 0B28BC 7F07DD8C 14800002 */ bnez $a0, .L7F07DD98 +/* 0B28C0 7F07DD90 00000000 */ nop +/* 0B28C4 7F07DD94 0007000D */ break 7 +.L7F07DD98: +/* 0B28C8 7F07DD98 00002025 */ move $a0, $zero +/* 0B28CC 7F07DD9C 19800011 */ blez $t4, .L7F07DDE4 +/* 0B28D0 7F07DDA0 01803025 */ move $a2, $t4 +/* 0B28D4 7F07DDA4 02001025 */ move $v0, $s0 +.L7F07DDA8: +/* 0B28D8 7F07DDA8 9445000E */ lhu $a1, 0xe($v0) +/* 0B28DC 7F07DDAC 24630001 */ addiu $v1, $v1, 1 +/* 0B28E0 7F07DDB0 0066082A */ slt $at, $v1, $a2 +/* 0B28E4 7F07DDB4 00056903 */ sra $t5, $a1, 4 +/* 0B28E8 7F07DDB8 11A00008 */ beqz $t5, .L7F07DDDC +/* 0B28EC 7F07DDBC 00000000 */ nop +/* 0B28F0 7F07DDC0 14870005 */ bne $a0, $a3, .L7F07DDD8 +/* 0B28F4 7F07DDC4 3C0F8004 */ lui $t7, %hi(base_ptr_connection_vals) +/* 0B28F8 7F07DDC8 8DEF0F58 */ lw $t7, %lo(base_ptr_connection_vals)($t7) +/* 0B28FC 7F07DDCC 000570C0 */ sll $t6, $a1, 3 +/* 0B2900 7F07DDD0 10000004 */ b .L7F07DDE4 +/* 0B2904 7F07DDD4 01CF8021 */ addu $s0, $t6, $t7 +.L7F07DDD8: +/* 0B2908 7F07DDD8 24840001 */ addiu $a0, $a0, 1 +.L7F07DDDC: +/* 0B290C 7F07DDDC 1420FFF2 */ bnez $at, .L7F07DDA8 +/* 0B2910 7F07DDE0 24420008 */ addiu $v0, $v0, 8 +.L7F07DDE4: +/* 0B2914 7F07DDE4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B2918 7F07DDE8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B291C 7F07DDEC 02002025 */ move $a0, $s0 +/* 0B2920 7F07DDF0 8C45048C */ lw $a1, 0x48c($v0) +/* 0B2924 7F07DDF4 8C460494 */ lw $a2, 0x494($v0) +/* 0B2928 7F07DDF8 0FC2C146 */ jal sub_GAME_7F0B0518 +/* 0B292C 7F07DDFC AFA80048 */ sw $t0, 0x48($sp) +/* 0B2930 7F07DE00 10400005 */ beqz $v0, .L7F07DE18 +/* 0B2934 7F07DE04 8FA80048 */ lw $t0, 0x48($sp) +/* 0B2938 7F07DE08 3C188008 */ lui $t8, %hi(pPlayer) +/* 0B293C 7F07DE0C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0B2940 7F07DE10 10000005 */ b .L7F07DE28 +/* 0B2944 7F07DE14 AF100488 */ sw $s0, 0x488($t8) +.L7F07DE18: +/* 0B2948 7F07DE18 25080001 */ addiu $t0, $t0, 1 +/* 0B294C 7F07DE1C 24010005 */ li $at, 5 +/* 0B2950 7F07DE20 5501FFBC */ bnel $t0, $at, .L7F07DD14 +/* 0B2954 7F07DE24 86060006 */ lh $a2, 6($s0) +.L7F07DE28: +/* 0B2958 7F07DE28 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B295C 7F07DE2C 0FC1F7A7 */ jal sub_GAME_7F07DE9C +/* 0B2960 7F07DE30 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0B2964 7F07DE34 3C198008 */ lui $t9, %hi(pPlayer) +/* 0B2968 7F07DE38 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0B296C 7F07DE3C 8F220488 */ lw $v0, 0x488($t9) +/* 0B2970 7F07DE40 50400004 */ beql $v0, $zero, .L7F07DE54 +/* 0B2974 7F07DE44 8FBF0024 */ lw $ra, 0x24($sp) +/* 0B2978 7F07DE48 0FC15DD1 */ jal sub_GAME_7F057744 +/* 0B297C 7F07DE4C 90440003 */ lbu $a0, 3($v0) +/* 0B2980 7F07DE50 8FBF0024 */ lw $ra, 0x24($sp) +.L7F07DE54: +/* 0B2984 7F07DE54 8FB00020 */ lw $s0, 0x20($sp) +/* 0B2988 7F07DE58 27BD00C0 */ addiu $sp, $sp, 0xc0 +/* 0B298C 7F07DE5C 03E00008 */ jr $ra +/* 0B2990 7F07DE60 00000000 */ nop +) +#endif + + +void sub_GAME_7F07DE64(struct Player *player) { + sub_GAME_7F03DE94(player->position_data_pointer, player->field_2A04, player); + player->field_2A04 = -1; +} + +#ifdef NONMATCHING +void sub_GAME_7F07DE9C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07DE9C +/* 0B29CC 7F07DE9C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B29D0 7F07DEA0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B29D4 7F07DEA4 0FC1F799 */ jal sub_GAME_7F07DE64 +/* 0B29D8 7F07DEA8 AFA40018 */ sw $a0, 0x18($sp) +/* 0B29DC 7F07DEAC 8FA60018 */ lw $a2, 0x18($sp) +/* 0B29E0 7F07DEB0 8CC400A8 */ lw $a0, 0xa8($a2) +/* 0B29E4 7F07DEB4 8C850004 */ lw $a1, 4($a0) +/* 0B29E8 7F07DEB8 50A00006 */ beql $a1, $zero, .L7F07DED4 +/* 0B29EC 7F07DEBC 8CC20488 */ lw $v0, 0x488($a2) +/* 0B29F0 7F07DEC0 0FC08365 */ jal sub_GAME_7F020D94 +/* 0B29F4 7F07DEC4 00A02025 */ move $a0, $a1 +/* 0B29F8 7F07DEC8 10000009 */ b .L7F07DEF0 +/* 0B29FC 7F07DECC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B2A00 7F07DED0 8CC20488 */ lw $v0, 0x488($a2) +.L7F07DED4: +/* 0B2A04 7F07DED4 50400006 */ beql $v0, $zero, .L7F07DEF0 +/* 0B2A08 7F07DED8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B2A0C 7F07DEDC 904E0003 */ lbu $t6, 3($v0) +/* 0B2A10 7F07DEE0 A4CE2A04 */ sh $t6, 0x2a04($a2) +/* 0B2A14 7F07DEE4 0FC0F767 */ jal sub_GAME_7F03DD9C +/* 0B2A18 7F07DEE8 84C52A04 */ lh $a1, 0x2a04($a2) +/* 0B2A1C 7F07DEEC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07DEF0: +/* 0B2A20 7F07DEF0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B2A24 7F07DEF4 03E00008 */ jr $ra +/* 0B2A28 7F07DEF8 00000000 */ nop +) +#endif + + +void sub_GAME_7F07DEFC(void) { + pPlayer->pause_starting_angle = pPlayer->vv_verta; + pPlayer->field_210 = 0.0f; + pPlayer->field_218 = 0; +} + +#ifdef NONMATCHING +f32 sub_GAME_7F07DF28(s32 arg0) { + void *temp_v1; + void *temp_v0; + f32 temp_f0; + void *phi_v1; + f32 phi_f0; + + // Node 0 + if (arg0 != 0) + { + // Node 1 + pPlayer->field_208 = (f32) pPlayer->vv_verta; + pPlayer->pause_target_angle = -40.0f; + phi_v1 = &pPlayer; + } + else + { + // Node 2 + temp_v1 = (0x80080000 + -0x5f50); + *temp_v1->unk208 = (f32) *temp_v1->unk204; + *temp_v1->unk20C = (f32) *temp_v1->unk158; + phi_v1 = temp_v1; + } + // Node 3 + temp_v0 = *phi_v1; + temp_f0 = (temp_v0->unk208 - temp_v0->unk20C); + phi_f0 = temp_f0; + if (temp_f0 < 0.0f) + { + // Node 4 + phi_f0 = -temp_f0; + } + // Node 5 + if (60.0f <= phi_f0) + { + // Node 6 + return (((((phi_f0 - 60.0f) * 60.0f) * 0.5f) / 60.0f) + 60.0f); + } + // Node 7 + if (phi_f0 <= 0.0f) + { + // Node 8 + return 0.0f; + } + // Node 9 + return ((phi_f0 * 60.0f) / 60.0f); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07DF28 +/* 0B2A58 7F07DF28 1080000B */ beqz $a0, .L7F07DF58 +/* 0B2A5C 7F07DF2C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B2A60 7F07DF30 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B2A64 7F07DF34 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B2A68 7F07DF38 8C620000 */ lw $v0, ($v1) +/* 0B2A6C 7F07DF3C 3C01C220 */ li $at, 0xC2200000 # -40.000000 +/* 0B2A70 7F07DF40 44813000 */ mtc1 $at, $f6 +/* 0B2A74 7F07DF44 C4440158 */ lwc1 $f4, 0x158($v0) +/* 0B2A78 7F07DF48 E4440208 */ swc1 $f4, 0x208($v0) +/* 0B2A7C 7F07DF4C 8C6E0000 */ lw $t6, ($v1) +/* 0B2A80 7F07DF50 10000008 */ b .L7F07DF74 +/* 0B2A84 7F07DF54 E5C6020C */ swc1 $f6, 0x20c($t6) +.L7F07DF58: +/* 0B2A88 7F07DF58 2463A0B0 */ addiu $v1, $v1, %lo(pPlayer) +/* 0B2A8C 7F07DF5C 8C620000 */ lw $v0, ($v1) +/* 0B2A90 7F07DF60 C4480204 */ lwc1 $f8, 0x204($v0) +/* 0B2A94 7F07DF64 E4480208 */ swc1 $f8, 0x208($v0) +/* 0B2A98 7F07DF68 8C620000 */ lw $v0, ($v1) +/* 0B2A9C 7F07DF6C C44A0158 */ lwc1 $f10, 0x158($v0) +/* 0B2AA0 7F07DF70 E44A020C */ swc1 $f10, 0x20c($v0) +.L7F07DF74: +/* 0B2AA4 7F07DF74 8C620000 */ lw $v0, ($v1) +/* 0B2AA8 7F07DF78 44806000 */ mtc1 $zero, $f12 +/* 0B2AAC 7F07DF7C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B2AB0 7F07DF80 C4500208 */ lwc1 $f16, 0x208($v0) +/* 0B2AB4 7F07DF84 C452020C */ lwc1 $f18, 0x20c($v0) +/* 0B2AB8 7F07DF88 44817000 */ mtc1 $at, $f14 +/* 0B2ABC 7F07DF8C 46128001 */ sub.s $f0, $f16, $f18 +/* 0B2AC0 7F07DF90 460C003C */ c.lt.s $f0, $f12 +/* 0B2AC4 7F07DF94 00000000 */ nop +/* 0B2AC8 7F07DF98 45020003 */ bc1fl .L7F07DFA8 +/* 0B2ACC 7F07DF9C 4600703E */ c.le.s $f14, $f0 +/* 0B2AD0 7F07DFA0 46000007 */ neg.s $f0, $f0 +/* 0B2AD4 7F07DFA4 4600703E */ c.le.s $f14, $f0 +.L7F07DFA8: +/* 0B2AD8 7F07DFA8 00000000 */ nop +/* 0B2ADC 7F07DFAC 4502000C */ bc1fl .L7F07DFE0 +/* 0B2AE0 7F07DFB0 460C003E */ c.le.s $f0, $f12 +/* 0B2AE4 7F07DFB4 460E0101 */ sub.s $f4, $f0, $f14 +/* 0B2AE8 7F07DFB8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B2AEC 7F07DFBC 44814000 */ mtc1 $at, $f8 +/* 0B2AF0 7F07DFC0 460E2182 */ mul.s $f6, $f4, $f14 +/* 0B2AF4 7F07DFC4 00000000 */ nop +/* 0B2AF8 7F07DFC8 46083282 */ mul.s $f10, $f6, $f8 +/* 0B2AFC 7F07DFCC 460E5403 */ div.s $f16, $f10, $f14 +/* 0B2B00 7F07DFD0 460E8080 */ add.s $f2, $f16, $f14 +/* 0B2B04 7F07DFD4 03E00008 */ jr $ra +/* 0B2B08 7F07DFD8 46001006 */ mov.s $f0, $f2 + +/* 0B2B0C 7F07DFDC 460C003E */ c.le.s $f0, $f12 +.L7F07DFE0: +/* 0B2B10 7F07DFE0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B2B14 7F07DFE4 45020005 */ bc1fl .L7F07DFFC +/* 0B2B18 7F07DFE8 44816000 */ mtc1 $at, $f12 +/* 0B2B1C 7F07DFEC 46006086 */ mov.s $f2, $f12 +/* 0B2B20 7F07DFF0 03E00008 */ jr $ra +/* 0B2B24 7F07DFF4 46006006 */ mov.s $f0, $f12 + +/* 0B2B28 7F07DFF8 44816000 */ mtc1 $at, $f12 +.L7F07DFFC: +/* 0B2B2C 7F07DFFC 00000000 */ nop +/* 0B2B30 7F07E000 460C0482 */ mul.s $f18, $f0, $f12 +/* 0B2B34 7F07E004 460C9083 */ div.s $f2, $f18, $f12 +/* 0B2B38 7F07E008 03E00008 */ jr $ra +/* 0B2B3C 7F07E00C 46001006 */ mov.s $f0, $f2 +) +#endif + + +void sub_GAME_7F07E010(f32 arg0) { + pPlayer->field_210 = 0.0f; + pPlayer->field_214 = arg0; + pPlayer->field_218 = 1; +} + +void sub_GAME_7F07E03C(f32 arg0) { + pPlayer->field_210 = 0.0f; + pPlayer->field_214 = arg0; + pPlayer->field_218 = 2; +} + + +s32 sub_GAME_7F07E068(void) { + return (pPlayer->field_218 != 0 && pPlayer->field_218 != 3); +} + + + +#ifdef NONMATCHING +void sub_GAME_7F07E090(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005506C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055070 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055074 +.word 0xbf333333 /*-0.69999999*/ +glabel D_80055078 +.word 0x3f333333 /*0.69999999*/ +.text +glabel sub_GAME_7F07E090 +/* 0B2BC0 7F07E090 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B2BC4 7F07E094 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0B2BC8 7F07E098 8C820000 */ lw $v0, ($a0) +/* 0B2BCC 7F07E09C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0B2BD0 7F07E0A0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B2BD4 7F07E0A4 C4420158 */ lwc1 $f2, 0x158($v0) +/* 0B2BD8 7F07E0A8 24010001 */ li $at, 1 +/* 0B2BDC 7F07E0AC E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0B2BE0 7F07E0B0 8C430218 */ lw $v1, 0x218($v0) +/* 0B2BE4 7F07E0B4 14610031 */ bne $v1, $at, .L7F07E17C +/* 0B2BE8 7F07E0B8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B2BEC 7F07E0BC C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B2BF0 7F07E0C0 3C018003 */ lui $at, %hi(watch_transition_time) +/* 0B2BF4 7F07E0C4 C42665A8 */ lwc1 $f6, %lo(watch_transition_time)($at) +/* 0B2BF8 7F07E0C8 C44A0210 */ lwc1 $f10, 0x210($v0) +/* 0B2BFC 7F07E0CC 46062202 */ mul.s $f8, $f4, $f6 +/* 0B2C00 7F07E0D0 46085400 */ add.s $f16, $f10, $f8 +/* 0B2C04 7F07E0D4 E4500210 */ swc1 $f16, 0x210($v0) +/* 0B2C08 7F07E0D8 8C820000 */ lw $v0, ($a0) +/* 0B2C0C 7F07E0DC C4400210 */ lwc1 $f0, 0x210($v0) +/* 0B2C10 7F07E0E0 C4420214 */ lwc1 $f2, 0x214($v0) +/* 0B2C14 7F07E0E4 4602003C */ c.lt.s $f0, $f2 +/* 0B2C18 7F07E0E8 00000000 */ nop +/* 0B2C1C 7F07E0EC 4502001C */ bc1fl .L7F07E160 +/* 0B2C20 7F07E0F0 C450020C */ lwc1 $f16, 0x20c($v0) +/* 0B2C24 7F07E0F4 46020383 */ div.s $f14, $f0, $f2 +/* 0B2C28 7F07E0F8 3C018005 */ lui $at, %hi(D_8005506C) +/* 0B2C2C 7F07E0FC C432506C */ lwc1 $f18, %lo(D_8005506C)($at) +/* 0B2C30 7F07E100 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B2C34 7F07E104 44813000 */ mtc1 $at, $f6 +/* 0B2C38 7F07E108 46127102 */ mul.s $f4, $f14, $f18 +/* 0B2C3C 7F07E10C 00000000 */ nop +/* 0B2C40 7F07E110 46062302 */ mul.s $f12, $f4, $f6 +/* 0B2C44 7F07E114 0FC15FA8 */ jal cosf +/* 0B2C48 7F07E118 00000000 */ nop +/* 0B2C4C 7F07E11C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B2C50 7F07E120 44815000 */ mtc1 $at, $f10 +/* 0B2C54 7F07E124 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B2C58 7F07E128 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0B2C5C 7F07E12C 46005201 */ sub.s $f8, $f10, $f0 +/* 0B2C60 7F07E130 8C820000 */ lw $v0, ($a0) +/* 0B2C64 7F07E134 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B2C68 7F07E138 44818000 */ mtc1 $at, $f16 +/* 0B2C6C 7F07E13C C4420208 */ lwc1 $f2, 0x208($v0) +/* 0B2C70 7F07E140 C444020C */ lwc1 $f4, 0x20c($v0) +/* 0B2C74 7F07E144 46104482 */ mul.s $f18, $f8, $f16 +/* 0B2C78 7F07E148 46022181 */ sub.s $f6, $f4, $f2 +/* 0B2C7C 7F07E14C 46123282 */ mul.s $f10, $f6, $f18 +/* 0B2C80 7F07E150 460A1200 */ add.s $f8, $f2, $f10 +/* 0B2C84 7F07E154 10000006 */ b .L7F07E170 +/* 0B2C88 7F07E158 E4480158 */ swc1 $f8, 0x158($v0) +/* 0B2C8C 7F07E15C C450020C */ lwc1 $f16, 0x20c($v0) +.L7F07E160: +/* 0B2C90 7F07E160 240E0003 */ li $t6, 3 +/* 0B2C94 7F07E164 E4500158 */ swc1 $f16, 0x158($v0) +/* 0B2C98 7F07E168 8C8F0000 */ lw $t7, ($a0) +/* 0B2C9C 7F07E16C ADEE0218 */ sw $t6, 0x218($t7) +.L7F07E170: +/* 0B2CA0 7F07E170 8C820000 */ lw $v0, ($a0) +/* 0B2CA4 7F07E174 10000034 */ b .L7F07E248 +/* 0B2CA8 7F07E178 C4420158 */ lwc1 $f2, 0x158($v0) +.L7F07E17C: +/* 0B2CAC 7F07E17C 24010002 */ li $at, 2 +/* 0B2CB0 7F07E180 14610031 */ bne $v1, $at, .L7F07E248 +/* 0B2CB4 7F07E184 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B2CB8 7F07E188 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B2CBC 7F07E18C 3C018003 */ lui $at, %hi(watch_transition_time) +/* 0B2CC0 7F07E190 C42665A8 */ lwc1 $f6, %lo(watch_transition_time)($at) +/* 0B2CC4 7F07E194 C44A0210 */ lwc1 $f10, 0x210($v0) +/* 0B2CC8 7F07E198 46062482 */ mul.s $f18, $f4, $f6 +/* 0B2CCC 7F07E19C 46125200 */ add.s $f8, $f10, $f18 +/* 0B2CD0 7F07E1A0 E4480210 */ swc1 $f8, 0x210($v0) +/* 0B2CD4 7F07E1A4 8C820000 */ lw $v0, ($a0) +/* 0B2CD8 7F07E1A8 C4400210 */ lwc1 $f0, 0x210($v0) +/* 0B2CDC 7F07E1AC C4420214 */ lwc1 $f2, 0x214($v0) +/* 0B2CE0 7F07E1B0 4602003C */ c.lt.s $f0, $f2 +/* 0B2CE4 7F07E1B4 00000000 */ nop +/* 0B2CE8 7F07E1B8 4502001E */ bc1fl .L7F07E234 +/* 0B2CEC 7F07E1BC C4480208 */ lwc1 $f8, 0x208($v0) +/* 0B2CF0 7F07E1C0 46020383 */ div.s $f14, $f0, $f2 +/* 0B2CF4 7F07E1C4 3C018005 */ lui $at, %hi(D_80055070) +/* 0B2CF8 7F07E1C8 C4305070 */ lwc1 $f16, %lo(D_80055070)($at) +/* 0B2CFC 7F07E1CC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B2D00 7F07E1D0 44813000 */ mtc1 $at, $f6 +/* 0B2D04 7F07E1D4 46107102 */ mul.s $f4, $f14, $f16 +/* 0B2D08 7F07E1D8 00000000 */ nop +/* 0B2D0C 7F07E1DC 46062302 */ mul.s $f12, $f4, $f6 +/* 0B2D10 7F07E1E0 0FC15FA8 */ jal cosf +/* 0B2D14 7F07E1E4 00000000 */ nop +/* 0B2D18 7F07E1E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B2D1C 7F07E1EC 44815000 */ mtc1 $at, $f10 +/* 0B2D20 7F07E1F0 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B2D24 7F07E1F4 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0B2D28 7F07E1F8 46005481 */ sub.s $f18, $f10, $f0 +/* 0B2D2C 7F07E1FC 8C820000 */ lw $v0, ($a0) +/* 0B2D30 7F07E200 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B2D34 7F07E204 44814000 */ mtc1 $at, $f8 +/* 0B2D38 7F07E208 C44C020C */ lwc1 $f12, 0x20c($v0) +/* 0B2D3C 7F07E20C C4440208 */ lwc1 $f4, 0x208($v0) +/* 0B2D40 7F07E210 46089402 */ mul.s $f16, $f18, $f8 +/* 0B2D44 7F07E214 460C2181 */ sub.s $f6, $f4, $f12 +/* 0B2D48 7F07E218 46103282 */ mul.s $f10, $f6, $f16 +/* 0B2D4C 7F07E21C 460A6480 */ add.s $f18, $f12, $f10 +/* 0B2D50 7F07E220 E4520158 */ swc1 $f18, 0x158($v0) +/* 0B2D54 7F07E224 8C820000 */ lw $v0, ($a0) +/* 0B2D58 7F07E228 10000007 */ b .L7F07E248 +/* 0B2D5C 7F07E22C C4420158 */ lwc1 $f2, 0x158($v0) +/* 0B2D60 7F07E230 C4480208 */ lwc1 $f8, 0x208($v0) +.L7F07E234: +/* 0B2D64 7F07E234 E4480158 */ swc1 $f8, 0x158($v0) +/* 0B2D68 7F07E238 8C980000 */ lw $t8, ($a0) +/* 0B2D6C 7F07E23C AF000218 */ sw $zero, 0x218($t8) +/* 0B2D70 7F07E240 8C820000 */ lw $v0, ($a0) +/* 0B2D74 7F07E244 C4420158 */ lwc1 $f2, 0x158($v0) +.L7F07E248: +/* 0B2D78 7F07E248 3C01C334 */ li $at, 0xC3340000 # -180.000000 +/* 0B2D7C 7F07E24C 44812000 */ mtc1 $at, $f4 +/* 0B2D80 7F07E250 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0B2D84 7F07E254 3C198005 */ lui $t9, %hi(clock_timer) +/* 0B2D88 7F07E258 4604103C */ c.lt.s $f2, $f4 +/* 0B2D8C 7F07E25C 00000000 */ nop +/* 0B2D90 7F07E260 45020008 */ bc1fl .L7F07E284 +/* 0B2D94 7F07E264 44818000 */ mtc1 $at, $f16 +/* 0B2D98 7F07E268 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B2D9C 7F07E26C 44816000 */ mtc1 $at, $f12 +/* 0B2DA0 7F07E270 00000000 */ nop +/* 0B2DA4 7F07E274 460C1180 */ add.s $f6, $f2, $f12 +/* 0B2DA8 7F07E278 1000000B */ b .L7F07E2A8 +/* 0B2DAC 7F07E27C E4460158 */ swc1 $f6, 0x158($v0) +/* 0B2DB0 7F07E280 44818000 */ mtc1 $at, $f16 +.L7F07E284: +/* 0B2DB4 7F07E284 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B2DB8 7F07E288 4602803E */ c.le.s $f16, $f2 +/* 0B2DBC 7F07E28C 00000000 */ nop +/* 0B2DC0 7F07E290 45000005 */ bc1f .L7F07E2A8 +/* 0B2DC4 7F07E294 00000000 */ nop +/* 0B2DC8 7F07E298 44816000 */ mtc1 $at, $f12 +/* 0B2DCC 7F07E29C 00000000 */ nop +/* 0B2DD0 7F07E2A0 460C1281 */ sub.s $f10, $f2, $f12 +/* 0B2DD4 7F07E2A4 E44A0158 */ swc1 $f10, 0x158($v0) +.L7F07E2A8: +/* 0B2DD8 7F07E2A8 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 0B2DDC 7F07E2AC 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B2DE0 7F07E2B0 44816000 */ mtc1 $at, $f12 +/* 0B2DE4 7F07E2B4 1B200030 */ blez $t9, .L7F07E378 +/* 0B2DE8 7F07E2B8 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0B2DEC 7F07E2BC 8C820000 */ lw $v0, ($a0) +/* 0B2DF0 7F07E2C0 C7A8001C */ lwc1 $f8, 0x1c($sp) +/* 0B2DF4 7F07E2C4 44803000 */ mtc1 $zero, $f6 +/* 0B2DF8 7F07E2C8 C4520158 */ lwc1 $f18, 0x158($v0) +/* 0B2DFC 7F07E2CC 44815000 */ mtc1 $at, $f10 +/* 0B2E00 7F07E2D0 3C018005 */ lui $at, %hi(D_80055074) +/* 0B2E04 7F07E2D4 46089101 */ sub.s $f4, $f18, $f8 +/* 0B2E08 7F07E2D8 E4440160 */ swc1 $f4, 0x160($v0) +/* 0B2E0C 7F07E2DC 8C820000 */ lw $v0, ($a0) +/* 0B2E10 7F07E2E0 C4400160 */ lwc1 $f0, 0x160($v0) +/* 0B2E14 7F07E2E4 4606003C */ c.lt.s $f0, $f6 +/* 0B2E18 7F07E2E8 00000000 */ nop +/* 0B2E1C 7F07E2EC 45020006 */ bc1fl .L7F07E308 +/* 0B2E20 7F07E2F0 4600503C */ c.lt.s $f10, $f0 +/* 0B2E24 7F07E2F4 460C0400 */ add.s $f16, $f0, $f12 +/* 0B2E28 7F07E2F8 E4500160 */ swc1 $f16, 0x160($v0) +/* 0B2E2C 7F07E2FC 8C820000 */ lw $v0, ($a0) +/* 0B2E30 7F07E300 C4400160 */ lwc1 $f0, 0x160($v0) +/* 0B2E34 7F07E304 4600503C */ c.lt.s $f10, $f0 +.L7F07E308: +/* 0B2E38 7F07E308 00000000 */ nop +/* 0B2E3C 7F07E30C 45000005 */ bc1f .L7F07E324 +/* 0B2E40 7F07E310 00000000 */ nop +/* 0B2E44 7F07E314 460C0481 */ sub.s $f18, $f0, $f12 +/* 0B2E48 7F07E318 E4520160 */ swc1 $f18, 0x160($v0) +/* 0B2E4C 7F07E31C 8C820000 */ lw $v0, ($a0) +/* 0B2E50 7F07E320 C4400160 */ lwc1 $f0, 0x160($v0) +.L7F07E324: +/* 0B2E54 7F07E324 C42C5074 */ lwc1 $f12, %lo(D_80055074)($at) +/* 0B2E58 7F07E328 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B2E5C 7F07E32C C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 0B2E60 7F07E330 3C018005 */ lui $at, %hi(D_80055078) +/* 0B2E64 7F07E334 46021200 */ add.s $f8, $f2, $f2 +/* 0B2E68 7F07E338 46080103 */ div.s $f4, $f0, $f8 +/* 0B2E6C 7F07E33C E4440160 */ swc1 $f4, 0x160($v0) +/* 0B2E70 7F07E340 8C820000 */ lw $v0, ($a0) +/* 0B2E74 7F07E344 C4400160 */ lwc1 $f0, 0x160($v0) +/* 0B2E78 7F07E348 460C003C */ c.lt.s $f0, $f12 +/* 0B2E7C 7F07E34C 00000000 */ nop +/* 0B2E80 7F07E350 45000003 */ bc1f .L7F07E360 +/* 0B2E84 7F07E354 00000000 */ nop +/* 0B2E88 7F07E358 10000007 */ b .L7F07E378 +/* 0B2E8C 7F07E35C E44C0160 */ swc1 $f12, 0x160($v0) +.L7F07E360: +/* 0B2E90 7F07E360 C4225078 */ lwc1 $f2, %lo(D_80055078)($at) +/* 0B2E94 7F07E364 4600103C */ c.lt.s $f2, $f0 +/* 0B2E98 7F07E368 00000000 */ nop +/* 0B2E9C 7F07E36C 45020003 */ bc1fl .L7F07E37C +/* 0B2EA0 7F07E370 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B2EA4 7F07E374 E4420160 */ swc1 $f2, 0x160($v0) +.L7F07E378: +/* 0B2EA8 7F07E378 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07E37C: +/* 0B2EAC 7F07E37C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0B2EB0 7F07E380 03E00008 */ jr $ra +/* 0B2EB4 7F07E384 00000000 */ nop +) +#endif + + +f32 sub_GAME_7F07E388(void) { + + if (pPlayer->field_218 == 1) { + return pPlayer->field_210 / pPlayer->field_214; + } + if (pPlayer->field_218 == 2) { + return 1.0f - (pPlayer->field_210 / pPlayer->field_214); + } + if (pPlayer->field_218 == 3) { + return 1.0f; + } + return 0.0f; +} + +void trigger_watch_zoom(f32 final,f32 time) +{ + pPlayer->zoomintime = 0.00000000; + pPlayer->zoomintimemax = time; + pPlayer->zoominfovyold = pPlayer->zoominfovy; + pPlayer->zoominfovynew = final; +} + + +f32 sub_GAME_7F07E438(void) { + + if (pPlayer->zoomintime < pPlayer->zoomintimemax) + { + return pPlayer->zoominfovynew; + } + + return pPlayer->zoominfovy; +} + +#ifdef NONMATCHING +void sub_GAME_7F07E46C(f32 arg0) { + ? temp_ret; + ? phi_return; + + // Node 0 + temp_ret = sub_GAME_7F07E438(); + phi_return = temp_ret; + if (temp_ret == arg0) + { + // Node 4 + // Node 5 + return phi_return; + } + // Node 1 + if (arg0 >= pPlayer->field_11C4) + { + // Node 3 + phi_return = trigger_watch_zoom(arg0, (((arg0 - pPlayer->field_11C4) * 15.0f) / 30.0f)); + // Node 4 + // Node 5 + return phi_return; + } + // Node 2 + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07E46C +/* 0B2F9C 7F07E46C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B2FA0 7F07E470 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B2FA4 7F07E474 0FC1F90E */ jal sub_GAME_7F07E438 +/* 0B2FA8 7F07E478 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0B2FAC 7F07E47C C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 0B2FB0 7F07E480 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B2FB4 7F07E484 460C0032 */ c.eq.s $f0, $f12 +/* 0B2FB8 7F07E488 00000000 */ nop +/* 0B2FBC 7F07E48C 4503001A */ bc1tl .L7F07E4F8 +/* 0B2FC0 7F07E490 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B2FC4 7F07E494 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B2FC8 7F07E498 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0B2FCC 7F07E49C C5C011C4 */ lwc1 $f0, 0x11c4($t6) +/* 0B2FD0 7F07E4A0 4600603C */ c.lt.s $f12, $f0 +/* 0B2FD4 7F07E4A4 00000000 */ nop +/* 0B2FD8 7F07E4A8 4502000C */ bc1fl .L7F07E4DC +/* 0B2FDC 7F07E4AC 46006401 */ sub.s $f16, $f12, $f0 +/* 0B2FE0 7F07E4B0 460C0101 */ sub.s $f4, $f0, $f12 +/* 0B2FE4 7F07E4B4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0B2FE8 7F07E4B8 44813000 */ mtc1 $at, $f6 +/* 0B2FEC 7F07E4BC 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B2FF0 7F07E4C0 44815000 */ mtc1 $at, $f10 +/* 0B2FF4 7F07E4C4 46062202 */ mul.s $f8, $f4, $f6 +/* 0B2FF8 7F07E4C8 0FC1F900 */ jal trigger_watch_zoom +/* 0B2FFC 7F07E4CC 460A4383 */ div.s $f14, $f8, $f10 +/* 0B3000 7F07E4D0 10000009 */ b .L7F07E4F8 +/* 0B3004 7F07E4D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B3008 7F07E4D8 46006401 */ sub.s $f16, $f12, $f0 +.L7F07E4DC: +/* 0B300C 7F07E4DC 44819000 */ mtc1 $at, $f18 +/* 0B3010 7F07E4E0 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B3014 7F07E4E4 44813000 */ mtc1 $at, $f6 +/* 0B3018 7F07E4E8 46128102 */ mul.s $f4, $f16, $f18 +/* 0B301C 7F07E4EC 0FC1F900 */ jal trigger_watch_zoom +/* 0B3020 7F07E4F0 46062383 */ div.s $f14, $f4, $f6 +/* 0B3024 7F07E4F4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07E4F8: +/* 0B3028 7F07E4F8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B302C 7F07E4FC 03E00008 */ jr $ra +/* 0B3030 7F07E500 00000000 */ nop +) +#endif + + + +void sub_GAME_7F07E504(void) { + sub_GAME_7F07E46C(60.0f); +} + +#ifdef NONMATCHING +void zoom_to_watch_on_open(void) { + f32 temp_f14; + f32 phi_f14; + + // Node 0 + temp_f14 = (((final - pPlayer->field_11C4) * 45.0f) / D_80055080); + phi_f14 = temp_f14; + if (temp_f14 < 0.0f) + { + // Node 1 + phi_f14 = -temp_f14; + } + // Node 2 + return trigger_watch_zoom(final, phi_f14); +} +#else +GLOBAL_ASM( +.late_rodata +glabel final +.word 0x40bccccd /*5.9000001*/ +glabel D_80055080 +.word 0xc2586666 /*-54.099998*/ +glabel D_80055084 +.word 0xc2586666 /*-54.099998*/ +.text +glabel zoom_to_watch_on_open +/* 0B305C 7F07E52C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3060 7F07E530 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3064 7F07E534 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B3068 7F07E538 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B306C 7F07E53C 3C018005 */ lui $at, %hi(final) +/* 0B3070 7F07E540 C42C507C */ lwc1 $f12, %lo(final)($at) +/* 0B3074 7F07E544 C5C411C4 */ lwc1 $f4, 0x11c4($t6) +/* 0B3078 7F07E548 3C014234 */ li $at, 0x42340000 # 45.000000 +/* 0B307C 7F07E54C 44814000 */ mtc1 $at, $f8 +/* 0B3080 7F07E550 46046181 */ sub.s $f6, $f12, $f4 +/* 0B3084 7F07E554 3C018005 */ lui $at, %hi(D_80055080) +/* 0B3088 7F07E558 C4305080 */ lwc1 $f16, %lo(D_80055080)($at) +/* 0B308C 7F07E55C 44809000 */ mtc1 $zero, $f18 +/* 0B3090 7F07E560 46083282 */ mul.s $f10, $f6, $f8 +/* 0B3094 7F07E564 46105383 */ div.s $f14, $f10, $f16 +/* 0B3098 7F07E568 4612703C */ c.lt.s $f14, $f18 +/* 0B309C 7F07E56C 00000000 */ nop +/* 0B30A0 7F07E570 45000002 */ bc1f .L7F07E57C +/* 0B30A4 7F07E574 00000000 */ nop +/* 0B30A8 7F07E578 46007387 */ neg.s $f14, $f14 +.L7F07E57C: +/* 0B30AC 7F07E57C 0FC1F900 */ jal trigger_watch_zoom +/* 0B30B0 7F07E580 00000000 */ nop +/* 0B30B4 7F07E584 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B30B8 7F07E588 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B30BC 7F07E58C 03E00008 */ jr $ra +/* 0B30C0 7F07E590 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void zoom_from_watch_on_exit(void) { + f32 temp_f14; + f32 phi_f14; + + // Node 0 + temp_f14 = (((60.0f - pPlayer->field_11C4) * 45.0f) / D_80055084); + phi_f14 = temp_f14; + if (temp_f14 < 0.0f) + { + // Node 1 + phi_f14 = -temp_f14; + } + // Node 2 + return trigger_watch_zoom(60.0f, phi_f14); +} +#else +GLOBAL_ASM( +.text +glabel zoom_from_watch_on_exit +/* 0B30C4 7F07E594 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B30C8 7F07E598 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B30CC 7F07E59C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B30D0 7F07E5A0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B30D4 7F07E5A4 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B30D8 7F07E5A8 44816000 */ mtc1 $at, $f12 +/* 0B30DC 7F07E5AC C5C411C4 */ lwc1 $f4, 0x11c4($t6) +/* 0B30E0 7F07E5B0 3C014234 */ li $at, 0x42340000 # 45.000000 +/* 0B30E4 7F07E5B4 44814000 */ mtc1 $at, $f8 +/* 0B30E8 7F07E5B8 46046181 */ sub.s $f6, $f12, $f4 +/* 0B30EC 7F07E5BC 3C018005 */ lui $at, %hi(D_80055084) +/* 0B30F0 7F07E5C0 C4305084 */ lwc1 $f16, %lo(D_80055084)($at) +/* 0B30F4 7F07E5C4 44809000 */ mtc1 $zero, $f18 +/* 0B30F8 7F07E5C8 46083282 */ mul.s $f10, $f6, $f8 +/* 0B30FC 7F07E5CC 46105383 */ div.s $f14, $f10, $f16 +/* 0B3100 7F07E5D0 4612703C */ c.lt.s $f14, $f18 +/* 0B3104 7F07E5D4 00000000 */ nop +/* 0B3108 7F07E5D8 45000002 */ bc1f .L7F07E5E4 +/* 0B310C 7F07E5DC 00000000 */ nop +/* 0B3110 7F07E5E0 46007387 */ neg.s $f14, $f14 +.L7F07E5E4: +/* 0B3114 7F07E5E4 0FC1F900 */ jal trigger_watch_zoom +/* 0B3118 7F07E5E8 00000000 */ nop +/* 0B311C 7F07E5EC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B3120 7F07E5F0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B3124 7F07E5F4 03E00008 */ jr $ra +/* 0B3128 7F07E5F8 00000000 */ nop +) +#endif + + +s32 check_watch_page_transistion_running(void) { + return (pPlayer->zoomintime < pPlayer->zoomintimemax); +} + +#ifdef NONMATCHING +void sub_GAME_7F07E62C(void) { + f32 temp_f2; + + // Node 0 + if (pPlayer->field_11BC < pPlayer->field_11C0) + { + // Node 1 + if ((pPlayer->pause_animation_state == 0xc) || (pPlayer->pause_animation_state == 0xc)) + { + // Node 3 + pPlayer->field_11BC = (f32) (pPlayer->field_11BC + (f32) D_80048498); + } + else + { + // Node 4 + pPlayer->field_11BC = (f32) (pPlayer->field_11BC + ((f32) D_80048498 * watch_transition_time)); + } + // Node 5 + if (pPlayer->field_11C0 < pPlayer->field_11BC) + { + // Node 6 + pPlayer->field_11BC = (f32) pPlayer->field_11C0; + } + // Node 7 + temp_f2 = pPlayer->field_11C8; + pPlayer->field_11C4 = (f32) (temp_f2 + ((pPlayer->field_11BC * (pPlayer->field_11CC - temp_f2)) / pPlayer->field_11C0)); + } + else + { + // Node 8 + pPlayer->field_11BC = (f32) pPlayer->field_11C0; + pPlayer->field_11C4 = (f32) pPlayer->field_11CC; + } + // Node 9 + set_cur_player_fovy(pPlayer->field_11C4, &pPlayer); + return setvideo_far(pPlayer->field_11C4, &pPlayer); +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F07E62C +/* 0B315C 7F07E62C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B3160 7F07E630 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0B3164 7F07E634 8C820000 */ lw $v0, ($a0) +/* 0B3168 7F07E638 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B316C 7F07E63C AFBF0014 */ sw $ra, 0x14($sp) +/* 0B3170 7F07E640 C44011C0 */ lwc1 $f0, 0x11c0($v0) +/* 0B3174 7F07E644 C44C11BC */ lwc1 $f12, 0x11bc($v0) +/* 0B3178 7F07E648 4600603C */ c.lt.s $f12, $f0 +/* 0B317C 7F07E64C 00000000 */ nop +/* 0B3180 7F07E650 4502002C */ bc1fl .L7F07E704 +/* 0B3184 7F07E654 E44011BC */ swc1 $f0, 0x11bc($v0) +/* 0B3188 7F07E658 8C4301C8 */ lw $v1, 0x1c8($v0) +/* 0B318C 7F07E65C 24010005 */ li $at, 5 +/* 0B3190 7F07E660 3C0E8005 */ lui $t6, %hi(D_80048498) +/* 0B3194 7F07E664 10610003 */ beq $v1, $at, .L7F07E674 +/* 0B3198 7F07E668 2401000C */ li $at, 12 +/* 0B319C 7F07E66C 14610008 */ bne $v1, $at, .L7F07E690 +/* 0B31A0 7F07E670 3C0F8005 */ lui $t7, %hi(D_80048498) +.L7F07E674: +/* 0B31A4 7F07E674 8DCE8498 */ lw $t6, %lo(D_80048498)($t6) +/* 0B31A8 7F07E678 448E2000 */ mtc1 $t6, $f4 +/* 0B31AC 7F07E67C 00000000 */ nop +/* 0B31B0 7F07E680 468021A0 */ cvt.s.w $f6, $f4 +/* 0B31B4 7F07E684 46066200 */ add.s $f8, $f12, $f6 +/* 0B31B8 7F07E688 1000000A */ b .L7F07E6B4 +/* 0B31BC 7F07E68C E44811BC */ swc1 $f8, 0x11bc($v0) +.L7F07E690: +/* 0B31C0 7F07E690 8DEF8498 */ lw $t7, %lo(D_80048498)($t7) +/* 0B31C4 7F07E694 3C018003 */ lui $at, %hi(watch_transition_time) +/* 0B31C8 7F07E698 C43265A8 */ lwc1 $f18, %lo(watch_transition_time)($at) +/* 0B31CC 7F07E69C 448F5000 */ mtc1 $t7, $f10 +/* 0B31D0 7F07E6A0 00000000 */ nop +/* 0B31D4 7F07E6A4 46805420 */ cvt.s.w $f16, $f10 +/* 0B31D8 7F07E6A8 46128102 */ mul.s $f4, $f16, $f18 +/* 0B31DC 7F07E6AC 46046180 */ add.s $f6, $f12, $f4 +/* 0B31E0 7F07E6B0 E44611BC */ swc1 $f6, 0x11bc($v0) +.L7F07E6B4: +/* 0B31E4 7F07E6B4 8C820000 */ lw $v0, ($a0) +/* 0B31E8 7F07E6B8 C44011C0 */ lwc1 $f0, 0x11c0($v0) +/* 0B31EC 7F07E6BC C44C11BC */ lwc1 $f12, 0x11bc($v0) +/* 0B31F0 7F07E6C0 460C003C */ c.lt.s $f0, $f12 +/* 0B31F4 7F07E6C4 00000000 */ nop +/* 0B31F8 7F07E6C8 45020006 */ bc1fl .L7F07E6E4 +/* 0B31FC 7F07E6CC C44211C8 */ lwc1 $f2, 0x11c8($v0) +/* 0B3200 7F07E6D0 E44011BC */ swc1 $f0, 0x11bc($v0) +/* 0B3204 7F07E6D4 8C820000 */ lw $v0, ($a0) +/* 0B3208 7F07E6D8 C44C11BC */ lwc1 $f12, 0x11bc($v0) +/* 0B320C 7F07E6DC C44011C0 */ lwc1 $f0, 0x11c0($v0) +/* 0B3210 7F07E6E0 C44211C8 */ lwc1 $f2, 0x11c8($v0) +.L7F07E6E4: +/* 0B3214 7F07E6E4 C44811CC */ lwc1 $f8, 0x11cc($v0) +/* 0B3218 7F07E6E8 46024281 */ sub.s $f10, $f8, $f2 +/* 0B321C 7F07E6EC 460A6402 */ mul.s $f16, $f12, $f10 +/* 0B3220 7F07E6F0 46008483 */ div.s $f18, $f16, $f0 +/* 0B3224 7F07E6F4 46121100 */ add.s $f4, $f2, $f18 +/* 0B3228 7F07E6F8 10000005 */ b .L7F07E710 +/* 0B322C 7F07E6FC E44411C4 */ swc1 $f4, 0x11c4($v0) +/* 0B3230 7F07E700 E44011BC */ swc1 $f0, 0x11bc($v0) +.L7F07E704: +/* 0B3234 7F07E704 8C820000 */ lw $v0, ($a0) +/* 0B3238 7F07E708 C44611CC */ lwc1 $f6, 0x11cc($v0) +/* 0B323C 7F07E70C E44611C4 */ swc1 $f6, 0x11c4($v0) +.L7F07E710: +/* 0B3240 7F07E710 8C980000 */ lw $t8, ($a0) +/* 0B3244 7F07E714 0FC26C85 */ jal set_cur_player_fovy +/* 0B3248 7F07E718 C70C11C4 */ lwc1 $f12, 0x11c4($t8) +/* 0B324C 7F07E71C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B3250 7F07E720 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0B3254 7F07E724 8C990000 */ lw $t9, ($a0) +/* 0B3258 7F07E728 0C001151 */ jal setvideo_far +/* 0B325C 7F07E72C C72C11C4 */ lwc1 $f12, 0x11c4($t9) +/* 0B3260 7F07E730 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B3264 7F07E734 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B3268 7F07E738 03E00008 */ jr $ra +/* 0B326C 7F07E73C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F07E62C +/* 0B37C0 7F07EC50 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 0B37C4 7F07EC54 2484A120 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5ee0 +/* 0B37C8 7F07EC58 8C820000 */ lw $v0, ($a0) +/* 0B37CC 7F07EC5C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B37D0 7F07EC60 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B37D4 7F07EC64 C44011C0 */ lwc1 $f0, 0x11c0($v0) +/* 0B37D8 7F07EC68 C44C11BC */ lwc1 $f12, 0x11bc($v0) +/* 0B37DC 7F07EC6C 4600603C */ c.lt.s $f12, $f0 +/* 0B37E0 7F07EC70 00000000 */ nop +/* 0B37E4 7F07EC74 45020026 */ bc1fl .Ljp7F07ED10 +/* 0B37E8 7F07EC78 E44011BC */ swc1 $f0, 0x11bc($v0) +/* 0B37EC 7F07EC7C 8C4301C8 */ lw $v1, 0x1c8($v0) +/* 0B37F0 7F07EC80 24010005 */ li $at, 5 +/* 0B37F4 7F07EC84 10610002 */ beq $v1, $at, .Ljp7F07EC90 +/* 0B37F8 7F07EC88 2401000C */ li $at, 12 +/* 0B37FC 7F07EC8C 14610005 */ bne $v1, $at, .Ljp7F07ECA4 +.Ljp7F07EC90: +/* 0B3800 7F07EC90 3C018005 */ lui $at, %hi(jpD_800484D0) # $at, 0x8005 +/* 0B3804 7F07EC94 C42484D0 */ lwc1 $f4, %lo(jpD_800484D0)($at) +/* 0B3808 7F07EC98 46046180 */ add.s $f6, $f12, $f4 +/* 0B380C 7F07EC9C 10000008 */ b .Ljp7F07ECC0 +/* 0B3810 7F07ECA0 E44611BC */ swc1 $f6, 0x11bc($v0) +.Ljp7F07ECA4: +/* 0B3814 7F07ECA4 3C018005 */ lui $at, %hi(jpD_800484D0) # $at, 0x8005 +/* 0B3818 7F07ECA8 C42884D0 */ lwc1 $f8, %lo(jpD_800484D0)($at) +/* 0B381C 7F07ECAC 3C018003 */ lui $at, %hi(watch_transition_time) # $at, 0x8003 +/* 0B3820 7F07ECB0 C42A65E8 */ lwc1 $f10, %lo(watch_transition_time)($at) +/* 0B3824 7F07ECB4 460A4402 */ mul.s $f16, $f8, $f10 +/* 0B3828 7F07ECB8 46106480 */ add.s $f18, $f12, $f16 +/* 0B382C 7F07ECBC E45211BC */ swc1 $f18, 0x11bc($v0) +.Ljp7F07ECC0: +/* 0B3830 7F07ECC0 8C820000 */ lw $v0, ($a0) +/* 0B3834 7F07ECC4 C44011C0 */ lwc1 $f0, 0x11c0($v0) +/* 0B3838 7F07ECC8 C44C11BC */ lwc1 $f12, 0x11bc($v0) +/* 0B383C 7F07ECCC 460C003C */ c.lt.s $f0, $f12 +/* 0B3840 7F07ECD0 00000000 */ nop +/* 0B3844 7F07ECD4 45020006 */ bc1fl .Ljp7F07ECF0 +/* 0B3848 7F07ECD8 C44211C8 */ lwc1 $f2, 0x11c8($v0) +/* 0B384C 7F07ECDC E44011BC */ swc1 $f0, 0x11bc($v0) +/* 0B3850 7F07ECE0 8C820000 */ lw $v0, ($a0) +/* 0B3854 7F07ECE4 C44C11BC */ lwc1 $f12, 0x11bc($v0) +/* 0B3858 7F07ECE8 C44011C0 */ lwc1 $f0, 0x11c0($v0) +/* 0B385C 7F07ECEC C44211C8 */ lwc1 $f2, 0x11c8($v0) +.Ljp7F07ECF0: +/* 0B3860 7F07ECF0 C44411CC */ lwc1 $f4, 0x11cc($v0) +/* 0B3864 7F07ECF4 46022181 */ sub.s $f6, $f4, $f2 +/* 0B3868 7F07ECF8 46066202 */ mul.s $f8, $f12, $f6 +/* 0B386C 7F07ECFC 46004283 */ div.s $f10, $f8, $f0 +/* 0B3870 7F07ED00 460A1400 */ add.s $f16, $f2, $f10 +/* 0B3874 7F07ED04 10000005 */ b .Ljp7F07ED1C +/* 0B3878 7F07ED08 E45011C4 */ swc1 $f16, 0x11c4($v0) +/* 0B387C 7F07ED0C E44011BC */ swc1 $f0, 0x11bc($v0) +.Ljp7F07ED10: +/* 0B3880 7F07ED10 8C820000 */ lw $v0, ($a0) +/* 0B3884 7F07ED14 C45211CC */ lwc1 $f18, 0x11cc($v0) +/* 0B3888 7F07ED18 E45211C4 */ swc1 $f18, 0x11c4($v0) +.Ljp7F07ED1C: +/* 0B388C 7F07ED1C 8C8E0000 */ lw $t6, ($a0) +/* 0B3890 7F07ED20 0FC26F6D */ jal set_cur_player_fovy +/* 0B3894 7F07ED24 C5CC11C4 */ lwc1 $f12, 0x11c4($t6) +/* 0B3898 7F07ED28 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 0B389C 7F07ED2C 2484A120 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5ee0 +/* 0B38A0 7F07ED30 8C8F0000 */ lw $t7, ($a0) +/* 0B38A4 7F07ED34 0C001151 */ jal setvideo_far +/* 0B38A8 7F07ED38 C5EC11C4 */ lwc1 $f12, 0x11c4($t7) +/* 0B38AC 7F07ED3C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B38B0 7F07ED40 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B38B4 7F07ED44 03E00008 */ jr $ra +/* 0B38B8 7F07ED48 00000000 */ nop +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F07E740(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07E740 +/* 0B3270 7F07E740 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B3274 7F07E744 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B3278 7F07E748 24010004 */ li $at, 4 +/* 0B327C 7F07E74C 8C4301C8 */ lw $v1, 0x1c8($v0) +/* 0B3280 7F07E750 14610008 */ bne $v1, $at, .L7F07E774 +/* 0B3284 7F07E754 3C014234 */ li $at, 0x42340000 # 45.000000 +/* 0B3288 7F07E758 44811000 */ mtc1 $at, $f2 +/* 0B328C 7F07E75C C44411C0 */ lwc1 $f4, 0x11c0($v0) +/* 0B3290 7F07E760 C44811BC */ lwc1 $f8, 0x11bc($v0) +/* 0B3294 7F07E764 46041181 */ sub.s $f6, $f2, $f4 +/* 0B3298 7F07E768 46083280 */ add.s $f10, $f6, $f8 +/* 0B329C 7F07E76C 03E00008 */ jr $ra +/* 0B32A0 7F07E770 46025003 */ div.s $f0, $f10, $f2 + +.L7F07E774: +/* 0B32A4 7F07E774 24010006 */ li $at, 6 +/* 0B32A8 7F07E778 54610009 */ bnel $v1, $at, .L7F07E7A0 +/* 0B32AC 7F07E77C 24010005 */ li $at, 5 +/* 0B32B0 7F07E780 C45011C0 */ lwc1 $f16, 0x11c0($v0) +/* 0B32B4 7F07E784 C45211BC */ lwc1 $f18, 0x11bc($v0) +/* 0B32B8 7F07E788 3C014234 */ li $at, 0x42340000 # 45.000000 +/* 0B32BC 7F07E78C 44811000 */ mtc1 $at, $f2 +/* 0B32C0 7F07E790 46128101 */ sub.s $f4, $f16, $f18 +/* 0B32C4 7F07E794 03E00008 */ jr $ra +/* 0B32C8 7F07E798 46022003 */ div.s $f0, $f4, $f2 + +/* 0B32CC 7F07E79C 24010005 */ li $at, 5 +.L7F07E7A0: +/* 0B32D0 7F07E7A0 10610002 */ beq $v1, $at, .L7F07E7AC +/* 0B32D4 7F07E7A4 2401000C */ li $at, 12 +/* 0B32D8 7F07E7A8 14610004 */ bne $v1, $at, .L7F07E7BC +.L7F07E7AC: +/* 0B32DC 7F07E7AC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B32E0 7F07E7B0 44810000 */ mtc1 $at, $f0 +/* 0B32E4 7F07E7B4 03E00008 */ jr $ra +/* 0B32E8 7F07E7B8 00000000 */ nop + +.L7F07E7BC: +/* 0B32EC 7F07E7BC 44800000 */ mtc1 $zero, $f0 +/* 0B32F0 7F07E7C0 00000000 */ nop +/* 0B32F4 7F07E7C4 03E00008 */ jr $ra +/* 0B32F8 7F07E7C8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07E7CC(void) { + s32 sp24; + ? temp_ret; + + // Node 0 + temp_ret = get_ptr_itemheader_in_hand(1); + sp24 = temp_ret; + set_objuse_flag_compute_grp_nums_set_obj_loaded(temp_ret); + if (sp24->unk14 >= 0x33) + { + // Node 1 + return_null(); + } + // Node 2 + sub_GAME_7F075FAC((pPlayer + 0x230), sp24, (pPlayer + 0x2ec)); + set_obj_instance_controller_scale((pPlayer + 0x230), (c_item_entries+0x33C * D_80055088)); + pPlayer->step_in_view_watch_animation = 0; + return sub_GAME_7F06FCA8((pPlayer + 0x230), (ptr_animation_table + &0x000042C8), 0, 0.0f, (f32) (0.5f * watch_transition_time), 0.0f); +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055088 +.word 0x3dccccce /*0.10000001*/ +.text +glabel sub_GAME_7F07E7CC +/* 0B32FC 7F07E7CC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0B3300 7F07E7D0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0B3304 7F07E7D4 0FC173C6 */ jal get_ptr_itemheader_in_hand +/* 0B3308 7F07E7D8 24040001 */ li $a0, 1 +/* 0B330C 7F07E7DC AFA20024 */ sw $v0, 0x24($sp) +/* 0B3310 7F07E7E0 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0B3314 7F07E7E4 00402025 */ move $a0, $v0 +/* 0B3318 7F07E7E8 8FAE0024 */ lw $t6, 0x24($sp) +/* 0B331C 7F07E7EC 85CF0014 */ lh $t7, 0x14($t6) +/* 0B3320 7F07E7F0 29E10033 */ slti $at, $t7, 0x33 +/* 0B3324 7F07E7F4 14200003 */ bnez $at, .L7F07E804 +/* 0B3328 7F07E7F8 00000000 */ nop +/* 0B332C 7F07E7FC 0FC1B11B */ jal return_null +/* 0B3330 7F07E800 00000000 */ nop +.L7F07E804: +/* 0B3334 7F07E804 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B3338 7F07E808 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B333C 7F07E80C 8FA50024 */ lw $a1, 0x24($sp) +/* 0B3340 7F07E810 24440230 */ addiu $a0, $v0, 0x230 +/* 0B3344 7F07E814 0FC1D7EB */ jal sub_GAME_7F075FAC +/* 0B3348 7F07E818 244602EC */ addiu $a2, $v0, 0x2ec +/* 0B334C 7F07E81C 3C018004 */ lui $at, %hi(c_item_entries+0x33C) +/* 0B3350 7F07E820 C424E14C */ lwc1 $f4, %lo(c_item_entries+0x33C)($at) +/* 0B3354 7F07E824 3C018005 */ lui $at, %hi(D_80055088) +/* 0B3358 7F07E828 C4265088 */ lwc1 $f6, %lo(D_80055088)($at) +/* 0B335C 7F07E82C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B3360 7F07E830 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0B3364 7F07E834 46062202 */ mul.s $f8, $f4, $f6 +/* 0B3368 7F07E838 24840230 */ addiu $a0, $a0, 0x230 +/* 0B336C 7F07E83C 44054000 */ mfc1 $a1, $f8 +/* 0B3370 7F07E840 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0B3374 7F07E844 00000000 */ nop +/* 0B3378 7F07E848 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B337C 7F07E84C 44815000 */ mtc1 $at, $f10 +/* 0B3380 7F07E850 3C018003 */ lui $at, %hi(watch_transition_time) +/* 0B3384 7F07E854 C43065A8 */ lwc1 $f16, %lo(watch_transition_time)($at) +/* 0B3388 7F07E858 44800000 */ mtc1 $zero, $f0 +/* 0B338C 7F07E85C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B3390 7F07E860 46105482 */ mul.s $f18, $f10, $f16 +/* 0B3394 7F07E864 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 0B3398 7F07E868 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 0B339C 7F07E86C 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0B33A0 7F07E870 3C190000 */ lui $t9, %hi(0x000042C8) # $t9, 0 +/* 0B33A4 7F07E874 273942C8 */ addiu $t9, %lo(0x000042C8) # addiu $t9, $t9, 0x42c8 +/* 0B33A8 7F07E878 44070000 */ mfc1 $a3, $f0 +/* 0B33AC 7F07E87C E7B20010 */ swc1 $f18, 0x10($sp) +/* 0B33B0 7F07E880 00003025 */ move $a2, $zero +/* 0B33B4 7F07E884 E7A00014 */ swc1 $f0, 0x14($sp) +/* 0B33B8 7F07E888 03192821 */ addu $a1, $t8, $t9 +/* 0B33BC 7F07E88C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0B33C0 7F07E890 24840230 */ addiu $a0, $a0, 0x230 +/* 0B33C4 7F07E894 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B33C8 7F07E898 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0B33CC 7F07E89C AD000220 */ sw $zero, 0x220($t0) +/* 0B33D0 7F07E8A0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0B33D4 7F07E8A4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0B33D8 7F07E8A8 03E00008 */ jr $ra +/* 0B33DC 7F07E8AC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F07E8B0(f32 arg0) { + // Node 0 + if (pPlayer->step_in_view_watch_animation == 0) + { + // Node 1 + pPlayer->field_22C = (f32) (20.0f / arg0); + } + else + { + // Node 2 + pPlayer->field_22C = (f32) ((20.0f - pPlayer->field_258) / arg0); + } + // Node 3 + pPlayer->step_in_view_watch_animation = 1; + pPlayer->field_228 = arg0; + return pPlayer; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07E8B0 +/* 0B33E0 7F07E8B0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B33E4 7F07E8B4 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B33E8 7F07E8B8 8C620000 */ lw $v0, ($v1) +/* 0B33EC 7F07E8BC 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B33F0 7F07E8C0 8C4E0220 */ lw $t6, 0x220($v0) +/* 0B33F4 7F07E8C4 55C00008 */ bnezl $t6, .L7F07E8E8 +/* 0B33F8 7F07E8C8 44814000 */ mtc1 $at, $f8 +/* 0B33FC 7F07E8CC 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B3400 7F07E8D0 44812000 */ mtc1 $at, $f4 +/* 0B3404 7F07E8D4 00000000 */ nop +/* 0B3408 7F07E8D8 460C2183 */ div.s $f6, $f4, $f12 +/* 0B340C 7F07E8DC 10000006 */ b .L7F07E8F8 +/* 0B3410 7F07E8E0 E446022C */ swc1 $f6, 0x22c($v0) +/* 0B3414 7F07E8E4 44814000 */ mtc1 $at, $f8 +.L7F07E8E8: +/* 0B3418 7F07E8E8 C44A0258 */ lwc1 $f10, 0x258($v0) +/* 0B341C 7F07E8EC 460A4401 */ sub.s $f16, $f8, $f10 +/* 0B3420 7F07E8F0 460C8483 */ div.s $f18, $f16, $f12 +/* 0B3424 7F07E8F4 E452022C */ swc1 $f18, 0x22c($v0) +.L7F07E8F8: +/* 0B3428 7F07E8F8 8C780000 */ lw $t8, ($v1) +/* 0B342C 7F07E8FC 240F0001 */ li $t7, 1 +/* 0B3430 7F07E900 AF0F0220 */ sw $t7, 0x220($t8) +/* 0B3434 7F07E904 8C790000 */ lw $t9, ($v1) +/* 0B3438 7F07E908 03E00008 */ jr $ra +/* 0B343C 7F07E90C E72C0228 */ swc1 $f12, 0x228($t9) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F07E910(f32 arg0) { + // Node 0 + if (pPlayer->step_in_view_watch_animation == 20.0f) + { + // Node 1 + pPlayer->field_22C = (f32) (20.0f / arg0); + } + else + { + // Node 2 + pPlayer->field_22C = (f32) (pPlayer->field_258 / arg0); + } + // Node 3 + pPlayer->step_in_view_watch_animation = 2; + pPlayer->field_228 = arg0; + return pPlayer; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07E910 +/* 0B3440 7F07E910 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3444 7F07E914 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B3448 7F07E918 8C620000 */ lw $v0, ($v1) +/* 0B344C 7F07E91C 24010003 */ li $at, 3 +/* 0B3450 7F07E920 8C4E0220 */ lw $t6, 0x220($v0) +/* 0B3454 7F07E924 15C10006 */ bne $t6, $at, .L7F07E940 +/* 0B3458 7F07E928 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B345C 7F07E92C 44812000 */ mtc1 $at, $f4 +/* 0B3460 7F07E930 00000000 */ nop +/* 0B3464 7F07E934 460C2183 */ div.s $f6, $f4, $f12 +/* 0B3468 7F07E938 10000004 */ b .L7F07E94C +/* 0B346C 7F07E93C E446022C */ swc1 $f6, 0x22c($v0) +.L7F07E940: +/* 0B3470 7F07E940 C4480258 */ lwc1 $f8, 0x258($v0) +/* 0B3474 7F07E944 460C4283 */ div.s $f10, $f8, $f12 +/* 0B3478 7F07E948 E44A022C */ swc1 $f10, 0x22c($v0) +.L7F07E94C: +/* 0B347C 7F07E94C 8C780000 */ lw $t8, ($v1) +/* 0B3480 7F07E950 240F0002 */ li $t7, 2 +/* 0B3484 7F07E954 AF0F0220 */ sw $t7, 0x220($t8) +/* 0B3488 7F07E958 8C790000 */ lw $t9, ($v1) +/* 0B348C 7F07E95C 03E00008 */ jr $ra +/* 0B3490 7F07E960 E72C0228 */ swc1 $f12, 0x228($t9) +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F07E964(void) { + void *phi_return; + + // Node 0 + phi_return = pPlayer; + if (pPlayer->step_in_view_watch_animation != 0) + { + // Node 1 + phi_return = pPlayer; + if (3 != pPlayer->step_in_view_watch_animation) + { + // Node 2 + if (pPlayer->step_in_view_watch_animation == 20.0f) + { + // Node 3 + pPlayer->pause_animation_counter = (f32) (pPlayer->pause_animation_counter + ((global_timer_delta * watch_transition_time) * pPlayer->field_22C)); + if (20.0f < pPlayer->pause_animation_counter) + { + // Node 4 + pPlayer->pause_animation_counter = 20.0f; + pPlayer->step_in_view_watch_animation = 3; + } + } + else + { + // Node 5 + if (pPlayer->step_in_view_watch_animation == &global_timer_delta) + { + // Node 6 + pPlayer->pause_animation_counter = (f32) (pPlayer->pause_animation_counter - ((global_timer_delta * watch_transition_time) * pPlayer->field_22C)); + if (pPlayer->pause_animation_counter < 0.0f) + { + // Node 7 + pPlayer->pause_animation_counter = 0.0f; + pPlayer->step_in_view_watch_animation = 0; + } + } + } + // Node 8 + phi_return = sub_GAME_7F070090((pPlayer + 0x230), pPlayer->pause_animation_counter, 0); + } + } + // Node 9 + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07E964 +/* 0B3494 7F07E964 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B3498 7F07E968 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0B349C 7F07E96C 8C820000 */ lw $v0, ($a0) +/* 0B34A0 7F07E970 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B34A4 7F07E974 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B34A8 7F07E978 8C430220 */ lw $v1, 0x220($v0) +/* 0B34AC 7F07E97C 24050003 */ li $a1, 3 +/* 0B34B0 7F07E980 5060003A */ beql $v1, $zero, .L7F07EA6C +/* 0B34B4 7F07E984 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B34B8 7F07E988 10A30037 */ beq $a1, $v1, .L7F07EA68 +/* 0B34BC 7F07E98C 24010001 */ li $at, 1 +/* 0B34C0 7F07E990 14610018 */ bne $v1, $at, .L7F07E9F4 +/* 0B34C4 7F07E994 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B34C8 7F07E998 44810000 */ mtc1 $at, $f0 +/* 0B34CC 7F07E99C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B34D0 7F07E9A0 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B34D4 7F07E9A4 3C018003 */ lui $at, %hi(watch_transition_time) +/* 0B34D8 7F07E9A8 C42665A8 */ lwc1 $f6, %lo(watch_transition_time)($at) +/* 0B34DC 7F07E9AC C44A022C */ lwc1 $f10, 0x22c($v0) +/* 0B34E0 7F07E9B0 C4520224 */ lwc1 $f18, 0x224($v0) +/* 0B34E4 7F07E9B4 46062202 */ mul.s $f8, $f4, $f6 +/* 0B34E8 7F07E9B8 00000000 */ nop +/* 0B34EC 7F07E9BC 460A4402 */ mul.s $f16, $f8, $f10 +/* 0B34F0 7F07E9C0 46109100 */ add.s $f4, $f18, $f16 +/* 0B34F4 7F07E9C4 E4440224 */ swc1 $f4, 0x224($v0) +/* 0B34F8 7F07E9C8 8C820000 */ lw $v0, ($a0) +/* 0B34FC 7F07E9CC C4460224 */ lwc1 $f6, 0x224($v0) +/* 0B3500 7F07E9D0 4606003C */ c.lt.s $f0, $f6 +/* 0B3504 7F07E9D4 00000000 */ nop +/* 0B3508 7F07E9D8 4500001D */ bc1f .L7F07EA50 +/* 0B350C 7F07E9DC 00000000 */ nop +/* 0B3510 7F07E9E0 E4400224 */ swc1 $f0, 0x224($v0) +/* 0B3514 7F07E9E4 8C8E0000 */ lw $t6, ($a0) +/* 0B3518 7F07E9E8 ADC50220 */ sw $a1, 0x220($t6) +/* 0B351C 7F07E9EC 10000018 */ b .L7F07EA50 +/* 0B3520 7F07E9F0 8C820000 */ lw $v0, ($a0) +.L7F07E9F4: +/* 0B3524 7F07E9F4 24010002 */ li $at, 2 +/* 0B3528 7F07E9F8 14610015 */ bne $v1, $at, .L7F07EA50 +/* 0B352C 7F07E9FC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B3530 7F07EA00 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B3534 7F07EA04 3C018003 */ lui $at, %hi(watch_transition_time) +/* 0B3538 7F07EA08 C42A65A8 */ lwc1 $f10, %lo(watch_transition_time)($at) +/* 0B353C 7F07EA0C C450022C */ lwc1 $f16, 0x22c($v0) +/* 0B3540 7F07EA10 C4460224 */ lwc1 $f6, 0x224($v0) +/* 0B3544 7F07EA14 460A4482 */ mul.s $f18, $f8, $f10 +/* 0B3548 7F07EA18 44800000 */ mtc1 $zero, $f0 +/* 0B354C 7F07EA1C 46109102 */ mul.s $f4, $f18, $f16 +/* 0B3550 7F07EA20 46043201 */ sub.s $f8, $f6, $f4 +/* 0B3554 7F07EA24 E4480224 */ swc1 $f8, 0x224($v0) +/* 0B3558 7F07EA28 8C820000 */ lw $v0, ($a0) +/* 0B355C 7F07EA2C C44A0224 */ lwc1 $f10, 0x224($v0) +/* 0B3560 7F07EA30 4600503C */ c.lt.s $f10, $f0 +/* 0B3564 7F07EA34 00000000 */ nop +/* 0B3568 7F07EA38 45020006 */ bc1fl .L7F07EA54 +/* 0B356C 7F07EA3C 44800000 */ mtc1 $zero, $f0 +/* 0B3570 7F07EA40 E4400224 */ swc1 $f0, 0x224($v0) +/* 0B3574 7F07EA44 8C8F0000 */ lw $t7, ($a0) +/* 0B3578 7F07EA48 ADE00220 */ sw $zero, 0x220($t7) +/* 0B357C 7F07EA4C 8C820000 */ lw $v0, ($a0) +.L7F07EA50: +/* 0B3580 7F07EA50 44800000 */ mtc1 $zero, $f0 +.L7F07EA54: +/* 0B3584 7F07EA54 24440230 */ addiu $a0, $v0, 0x230 +/* 0B3588 7F07EA58 8C450224 */ lw $a1, 0x224($v0) +/* 0B358C 7F07EA5C 44060000 */ mfc1 $a2, $f0 +/* 0B3590 7F07EA60 0FC1C024 */ jal sub_GAME_7F070090 +/* 0B3594 7F07EA64 00000000 */ nop +.L7F07EA68: +/* 0B3598 7F07EA68 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07EA6C: +/* 0B359C 7F07EA6C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B35A0 7F07EA70 03E00008 */ jr $ra +/* 0B35A4 7F07EA74 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07EA78(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07EA78 +/* 0B35A8 7F07EA78 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B35AC 7F07EA7C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B35B0 7F07EA80 24010001 */ li $at, 1 +/* 0B35B4 7F07EA84 8C430220 */ lw $v1, 0x220($v0) +/* 0B35B8 7F07EA88 10610002 */ beq $v1, $at, .L7F07EA94 +/* 0B35BC 7F07EA8C 24010002 */ li $at, 2 +/* 0B35C0 7F07EA90 14610005 */ bne $v1, $at, .L7F07EAA8 +.L7F07EA94: +/* 0B35C4 7F07EA94 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B35C8 7F07EA98 44813000 */ mtc1 $at, $f6 +/* 0B35CC 7F07EA9C C4440224 */ lwc1 $f4, 0x224($v0) +/* 0B35D0 7F07EAA0 03E00008 */ jr $ra +/* 0B35D4 7F07EAA4 46062003 */ div.s $f0, $f4, $f6 + +.L7F07EAA8: +/* 0B35D8 7F07EAA8 24010003 */ li $at, 3 +/* 0B35DC 7F07EAAC 14610004 */ bne $v1, $at, .L7F07EAC0 +/* 0B35E0 7F07EAB0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B35E4 7F07EAB4 44810000 */ mtc1 $at, $f0 +/* 0B35E8 7F07EAB8 03E00008 */ jr $ra +/* 0B35EC 7F07EABC 00000000 */ nop + +.L7F07EAC0: +/* 0B35F0 7F07EAC0 44800000 */ mtc1 $zero, $f0 +/* 0B35F4 7F07EAC4 00000000 */ nop +/* 0B35F8 7F07EAC8 03E00008 */ jr $ra +/* 0B35FC 7F07EACC 00000000 */ nop +) +#endif + + + + + +void set_BONDdata_paused_flag(s32 arg0) { + pPlayer->paused_flag = arg0; +} + +s32 get_BONDdata_paused_flag(void) { + return pPlayer->paused_flag; +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07EAF0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07EAF0 +/* 0B3620 7F07EAF0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0B3624 7F07EAF4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0B3628 7F07EAF8 AFB10018 */ sw $s1, 0x18($sp) +/* 0B362C 7F07EAFC 0FC1577B */ jal deactivate_alarm_sound_effect +/* 0B3630 7F07EB00 AFB00014 */ sw $s0, 0x14($sp) +/* 0B3634 7F07EB04 0FC157BE */ jal check_deactivate_gas_sound +/* 0B3638 7F07EB08 00000000 */ nop +/* 0B363C 7F07EB0C 00008825 */ move $s1, $zero +.L7F07EB10: +/* 0B3640 7F07EB10 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3644 7F07EB14 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3648 7F07EB18 01D18021 */ addu $s0, $t6, $s1 +/* 0B364C 7F07EB1C 8E040A44 */ lw $a0, 0xa44($s0) +/* 0B3650 7F07EB20 26100870 */ addiu $s0, $s0, 0x870 +/* 0B3654 7F07EB24 50800008 */ beql $a0, $zero, .L7F07EB48 +/* 0B3658 7F07EB28 263103A8 */ addiu $s1, $s1, 0x3a8 +/* 0B365C 7F07EB2C 0C00237C */ jal sfxGetArg0Unk3F +/* 0B3660 7F07EB30 00000000 */ nop +/* 0B3664 7F07EB34 50400004 */ beql $v0, $zero, .L7F07EB48 +/* 0B3668 7F07EB38 263103A8 */ addiu $s1, $s1, 0x3a8 +/* 0B366C 7F07EB3C 0C002408 */ jal sfxDeactivate +/* 0B3670 7F07EB40 8E0401D4 */ lw $a0, 0x1d4($s0) +/* 0B3674 7F07EB44 263103A8 */ addiu $s1, $s1, 0x3a8 +.L7F07EB48: +/* 0B3678 7F07EB48 2A210750 */ slti $at, $s1, 0x750 +/* 0B367C 7F07EB4C 1420FFF0 */ bnez $at, .L7F07EB10 +/* 0B3680 7F07EB50 00000000 */ nop +/* 0B3684 7F07EB54 3C108003 */ lui $s0, %hi(SFX_80036458) +/* 0B3688 7F07EB58 3C118003 */ lui $s1, %hi(D_80036460) +/* 0B368C 7F07EB5C 26316460 */ addiu $s1, %lo(D_80036460) # addiu $s1, $s1, 0x6460 +/* 0B3690 7F07EB60 26106458 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6458 +/* 0B3694 7F07EB64 8E040000 */ lw $a0, ($s0) +.L7F07EB68: +/* 0B3698 7F07EB68 50800008 */ beql $a0, $zero, .L7F07EB8C +/* 0B369C 7F07EB6C 26100004 */ addiu $s0, $s0, 4 +/* 0B36A0 7F07EB70 0C00237C */ jal sfxGetArg0Unk3F +/* 0B36A4 7F07EB74 00000000 */ nop +/* 0B36A8 7F07EB78 50400004 */ beql $v0, $zero, .L7F07EB8C +/* 0B36AC 7F07EB7C 26100004 */ addiu $s0, $s0, 4 +/* 0B36B0 7F07EB80 0C002408 */ jal sfxDeactivate +/* 0B36B4 7F07EB84 8E040000 */ lw $a0, ($s0) +/* 0B36B8 7F07EB88 26100004 */ addiu $s0, $s0, 4 +.L7F07EB8C: +/* 0B36BC 7F07EB8C 5611FFF6 */ bnel $s0, $s1, .L7F07EB68 +/* 0B36C0 7F07EB90 8E040000 */ lw $a0, ($s0) +/* 0B36C4 7F07EB94 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 0B36C8 7F07EB98 00000000 */ nop +/* 0B36CC 7F07EB9C 10400028 */ beqz $v0, .L7F07EC40 +/* 0B36D0 7F07EBA0 00408825 */ move $s1, $v0 +/* 0B36D4 7F07EBA4 92220000 */ lbu $v0, ($s1) +.L7F07EBA8: +/* 0B36D8 7F07EBA8 24010002 */ li $at, 2 +/* 0B36DC 7F07EBAC 10410021 */ beq $v0, $at, .L7F07EC34 +/* 0B36E0 7F07EBB0 24010001 */ li $at, 1 +/* 0B36E4 7F07EBB4 54410020 */ bnel $v0, $at, .L7F07EC38 +/* 0B36E8 7F07EBB8 8E310024 */ lw $s1, 0x24($s1) +/* 0B36EC 7F07EBBC 8E230004 */ lw $v1, 4($s1) +/* 0B36F0 7F07EBC0 24010027 */ li $at, 39 +/* 0B36F4 7F07EBC4 90640003 */ lbu $a0, 3($v1) +/* 0B36F8 7F07EBC8 5481000E */ bnel $a0, $at, .L7F07EC04 +/* 0B36FC 7F07EBCC 24010028 */ li $at, 40 +/* 0B3700 7F07EBD0 8C6400AC */ lw $a0, 0xac($v1) +/* 0B3704 7F07EBD4 00608025 */ move $s0, $v1 +/* 0B3708 7F07EBD8 50800017 */ beql $a0, $zero, .L7F07EC38 +/* 0B370C 7F07EBDC 8E310024 */ lw $s1, 0x24($s1) +/* 0B3710 7F07EBE0 0C00237C */ jal sfxGetArg0Unk3F +/* 0B3714 7F07EBE4 00000000 */ nop +/* 0B3718 7F07EBE8 50400013 */ beql $v0, $zero, .L7F07EC38 +/* 0B371C 7F07EBEC 8E310024 */ lw $s1, 0x24($s1) +/* 0B3720 7F07EBF0 0C002408 */ jal sfxDeactivate +/* 0B3724 7F07EBF4 8E0400AC */ lw $a0, 0xac($s0) +/* 0B3728 7F07EBF8 1000000F */ b .L7F07EC38 +/* 0B372C 7F07EBFC 8E310024 */ lw $s1, 0x24($s1) +/* 0B3730 7F07EC00 24010028 */ li $at, 40 +.L7F07EC04: +/* 0B3734 7F07EC04 5481000C */ bnel $a0, $at, .L7F07EC38 +/* 0B3738 7F07EC08 8E310024 */ lw $s1, 0x24($s1) +/* 0B373C 7F07EC0C 8C6400B0 */ lw $a0, 0xb0($v1) +/* 0B3740 7F07EC10 00608025 */ move $s0, $v1 +/* 0B3744 7F07EC14 50800008 */ beql $a0, $zero, .L7F07EC38 +/* 0B3748 7F07EC18 8E310024 */ lw $s1, 0x24($s1) +/* 0B374C 7F07EC1C 0C00237C */ jal sfxGetArg0Unk3F +/* 0B3750 7F07EC20 00000000 */ nop +/* 0B3754 7F07EC24 50400004 */ beql $v0, $zero, .L7F07EC38 +/* 0B3758 7F07EC28 8E310024 */ lw $s1, 0x24($s1) +/* 0B375C 7F07EC2C 0C002408 */ jal sfxDeactivate +/* 0B3760 7F07EC30 8E0400B0 */ lw $a0, 0xb0($s0) +.L7F07EC34: +/* 0B3764 7F07EC34 8E310024 */ lw $s1, 0x24($s1) +.L7F07EC38: +/* 0B3768 7F07EC38 5620FFDB */ bnezl $s1, .L7F07EBA8 +/* 0B376C 7F07EC3C 92220000 */ lbu $v0, ($s1) +.L7F07EC40: +/* 0B3770 7F07EC40 8FBF001C */ lw $ra, 0x1c($sp) +/* 0B3774 7F07EC44 8FB00014 */ lw $s0, 0x14($sp) +/* 0B3778 7F07EC48 8FB10018 */ lw $s1, 0x18($sp) +/* 0B377C 7F07EC4C 03E00008 */ jr $ra +/* 0B3780 7F07EC50 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07EC54(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F07EC54 +/* 0B3784 7F07EC54 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3788 7F07EC58 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B378C 7F07EC5C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0B3790 7F07EC60 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B3794 7F07EC64 8DC201C8 */ lw $v0, 0x1c8($t6) +/* 0B3798 7F07EC68 504002E8 */ beql $v0, $zero, .L7F07F80C +/* 0B379C 7F07EC6C 24010005 */ li $at, 5 +/* 0B37A0 7F07EC70 0FC17674 */ jal get_item_in_hand +/* 0B37A4 7F07EC74 00002025 */ move $a0, $zero +/* 0B37A8 7F07EC78 3843001E */ xori $v1, $v0, 0x1e +/* 0B37AC 7F07EC7C 2C630001 */ sltiu $v1, $v1, 1 +/* 0B37B0 7F07EC80 14600006 */ bnez $v1, .L7F07EC9C +/* 0B37B4 7F07EC84 AFA3001C */ sw $v1, 0x1c($sp) +/* 0B37B8 7F07EC88 0FC17674 */ jal get_item_in_hand +/* 0B37BC 7F07EC8C 00002025 */ move $a0, $zero +/* 0B37C0 7F07EC90 384F0017 */ xori $t7, $v0, 0x17 +/* 0B37C4 7F07EC94 2DEF0001 */ sltiu $t7, $t7, 1 +/* 0B37C8 7F07EC98 AFAF001C */ sw $t7, 0x1c($sp) +.L7F07EC9C: +/* 0B37CC 7F07EC9C 8FB8001C */ lw $t8, 0x1c($sp) +/* 0B37D0 7F07ECA0 24050011 */ li $a1, 17 +/* 0B37D4 7F07ECA4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B37D8 7F07ECA8 13000002 */ beqz $t8, .L7F07ECB4 +/* 0B37DC 7F07ECAC AFB8003C */ sw $t8, 0x3c($sp) +/* 0B37E0 7F07ECB0 24050023 */ li $a1, 35 +.L7F07ECB4: +/* 0B37E4 7F07ECB4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B37E8 7F07ECB8 3C088005 */ lui $t0, %hi(clock_timer) +/* 0B37EC 7F07ECBC 8D088374 */ lw $t0, %lo(clock_timer)($t0) +/* 0B37F0 7F07ECC0 8C7901C4 */ lw $t9, 0x1c4($v1) +/* 0B37F4 7F07ECC4 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0B37F8 7F07ECC8 24010001 */ li $at, 1 +/* 0B37FC 7F07ECCC 03284821 */ addu $t1, $t9, $t0 +/* 0B3800 7F07ECD0 AC6901C4 */ sw $t1, 0x1c4($v1) +/* 0B3804 7F07ECD4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3808 7F07ECD8 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B380C 7F07ECDC 8C6A01C0 */ lw $t2, 0x1c0($v1) +/* 0B3810 7F07ECE0 254B0001 */ addiu $t3, $t2, 1 +/* 0B3814 7F07ECE4 AC6B01C0 */ sw $t3, 0x1c0($v1) +/* 0B3818 7F07ECE8 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0B381C 7F07ECEC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3820 7F07ECF0 AD800200 */ sw $zero, 0x200($t4) +/* 0B3824 7F07ECF4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3828 7F07ECF8 8C6D01C8 */ lw $t5, 0x1c8($v1) +/* 0B382C 7F07ECFC 15A1003A */ bne $t5, $at, .L7F07EDE8 +/* 0B3830 7F07ED00 00000000 */ nop +/* 0B3834 7F07ED04 AC600200 */ sw $zero, 0x200($v1) +/* 0B3838 7F07ED08 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B383C 7F07ED0C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3840 7F07ED10 24010001 */ li $at, 1 +/* 0B3844 7F07ED14 24040001 */ li $a0, 1 +/* 0B3848 7F07ED18 8DC201C0 */ lw $v0, 0x1c0($t6) +/* 0B384C 7F07ED1C 54410006 */ bnel $v0, $at, .L7F07ED38 +/* 0B3850 7F07ED20 24010002 */ li $at, 2 +/* 0B3854 7F07ED24 0FC17680 */ jal draw_item_in_hand +/* 0B3858 7F07ED28 24050054 */ li $a1, 84 +/* 0B385C 7F07ED2C 1000002E */ b .L7F07EDE8 +/* 0B3860 7F07ED30 00000000 */ nop +/* 0B3864 7F07ED34 24010002 */ li $at, 2 +.L7F07ED38: +/* 0B3868 7F07ED38 14410009 */ bne $v0, $at, .L7F07ED60 +/* 0B386C 7F07ED3C 24040001 */ li $a0, 1 +/* 0B3870 7F07ED40 8FAF001C */ lw $t7, 0x1c($sp) +/* 0B3874 7F07ED44 00002025 */ move $a0, $zero +/* 0B3878 7F07ED48 11E00027 */ beqz $t7, .L7F07EDE8 +/* 0B387C 7F07ED4C 00000000 */ nop +/* 0B3880 7F07ED50 0FC17680 */ jal draw_item_in_hand +/* 0B3884 7F07ED54 00002825 */ move $a1, $zero +/* 0B3888 7F07ED58 10000023 */ b .L7F07EDE8 +/* 0B388C 7F07ED5C 00000000 */ nop +.L7F07ED60: +/* 0B3890 7F07ED60 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B3894 7F07ED64 AFA50038 */ sw $a1, 0x38($sp) +/* 0B3898 7F07ED68 24010054 */ li $at, 84 +/* 0B389C 7F07ED6C 1441001E */ bne $v0, $at, .L7F07EDE8 +/* 0B38A0 7F07ED70 00000000 */ nop +/* 0B38A4 7F07ED74 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B38A8 7F07ED78 24040001 */ li $a0, 1 +/* 0B38AC 7F07ED7C 1040001A */ beqz $v0, .L7F07EDE8 +/* 0B38B0 7F07ED80 8FB8001C */ lw $t8, 0x1c($sp) +/* 0B38B4 7F07ED84 13000008 */ beqz $t8, .L7F07EDA8 +/* 0B38B8 7F07ED88 00000000 */ nop +/* 0B38BC 7F07ED8C 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B38C0 7F07ED90 00002025 */ move $a0, $zero +/* 0B38C4 7F07ED94 14400014 */ bnez $v0, .L7F07EDE8 +/* 0B38C8 7F07ED98 00000000 */ nop +/* 0B38CC 7F07ED9C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B38D0 7F07EDA0 00002025 */ move $a0, $zero +/* 0B38D4 7F07EDA4 10400010 */ beqz $v0, .L7F07EDE8 +.L7F07EDA8: +/* 0B38D8 7F07EDA8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B38DC 7F07EDAC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B38E0 7F07EDB0 8FA80038 */ lw $t0, 0x38($sp) +/* 0B38E4 7F07EDB4 24090002 */ li $t1, 2 +/* 0B38E8 7F07EDB8 8C7901C4 */ lw $t9, 0x1c4($v1) +/* 0B38EC 7F07EDBC 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0B38F0 7F07EDC0 0328082A */ slt $at, $t9, $t0 +/* 0B38F4 7F07EDC4 14200008 */ bnez $at, .L7F07EDE8 +/* 0B38F8 7F07EDC8 00000000 */ nop +/* 0B38FC 7F07EDCC AC6901C8 */ sw $t1, 0x1c8($v1) +/* 0B3900 7F07EDD0 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0B3904 7F07EDD4 240A0001 */ li $t2, 1 +/* 0B3908 7F07EDD8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0B390C 7F07EDDC AD6A01C0 */ sw $t2, 0x1c0($t3) +/* 0B3910 7F07EDE0 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0B3914 7F07EDE4 AD8001C4 */ sw $zero, 0x1c4($t4) +.L7F07EDE8: +/* 0B3918 7F07EDE8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B391C 7F07EDEC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3920 7F07EDF0 24010002 */ li $at, 2 +/* 0B3924 7F07EDF4 8C6D01C8 */ lw $t5, 0x1c8($v1) +/* 0B3928 7F07EDF8 55A10043 */ bnel $t5, $at, .L7F07EF08 +/* 0B392C 7F07EDFC 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B3930 7F07EE00 AC600200 */ sw $zero, 0x200($v1) +/* 0B3934 7F07EE04 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3938 7F07EE08 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B393C 7F07EE0C 24010001 */ li $at, 1 +/* 0B3940 7F07EE10 24040008 */ li $a0, 8 +/* 0B3944 7F07EE14 8C6E01C0 */ lw $t6, 0x1c0($v1) +/* 0B3948 7F07EE18 55C10026 */ bnel $t6, $at, .L7F07EEB4 +/* 0B394C 7F07EE1C C4640214 */ lwc1 $f4, 0x214($v1) +/* 0B3950 7F07EE20 0FC1A96A */ jal set_unset_bitflags +/* 0B3954 7F07EE24 00002825 */ move $a1, $zero +/* 0B3958 7F07EE28 24040004 */ li $a0, 4 +/* 0B395C 7F07EE2C 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 0B3960 7F07EE30 00002825 */ move $a1, $zero +/* 0B3964 7F07EE34 0FC228E7 */ jal set_flags_in_BONDdata_stationary_intro_cam +/* 0B3968 7F07EE38 24040001 */ li $a0, 1 +/* 0B396C 7F07EE3C 0FC22A51 */ jal sub_GAME_7F08A944 +/* 0B3970 7F07EE40 24040001 */ li $a0, 1 +/* 0B3974 7F07EE44 24040004 */ li $a0, 4 +/* 0B3978 7F07EE48 0FC15858 */ jal set_unset_clock_lock_bits +/* 0B397C 7F07EE4C 00002825 */ move $a1, $zero +/* 0B3980 7F07EE50 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3984 7F07EE54 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3988 7F07EE58 24010002 */ li $at, 2 +/* 0B398C 7F07EE5C 8C640218 */ lw $a0, 0x218($v1) +/* 0B3990 7F07EE60 10800005 */ beqz $a0, .L7F07EE78 +/* 0B3994 7F07EE64 00000000 */ nop +/* 0B3998 7F07EE68 10810003 */ beq $a0, $at, .L7F07EE78 +/* 0B399C 7F07EE6C 24010003 */ li $at, 3 +/* 0B39A0 7F07EE70 54810010 */ bnel $a0, $at, .L7F07EEB4 +/* 0B39A4 7F07EE74 C4640214 */ lwc1 $f4, 0x214($v1) +.L7F07EE78: +/* 0B39A8 7F07EE78 0FC1F7CA */ jal sub_GAME_7F07DF28 +/* 0B39AC 7F07EE7C 24040001 */ li $a0, 1 +/* 0B39B0 7F07EE80 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B39B4 7F07EE84 44811000 */ mtc1 $at, $f2 +/* 0B39B8 7F07EE88 46000306 */ mov.s $f12, $f0 +/* 0B39BC 7F07EE8C 4602003C */ c.lt.s $f0, $f2 +/* 0B39C0 7F07EE90 00000000 */ nop +/* 0B39C4 7F07EE94 45000002 */ bc1f .L7F07EEA0 +/* 0B39C8 7F07EE98 00000000 */ nop +/* 0B39CC 7F07EE9C 46001306 */ mov.s $f12, $f2 +.L7F07EEA0: +/* 0B39D0 7F07EEA0 0FC1F804 */ jal sub_GAME_7F07E010 +/* 0B39D4 7F07EEA4 00000000 */ nop +/* 0B39D8 7F07EEA8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B39DC 7F07EEAC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B39E0 7F07EEB0 C4640214 */ lwc1 $f4, 0x214($v1) +.L7F07EEB4: +/* 0B39E4 7F07EEB4 C4660210 */ lwc1 $f6, 0x210($v1) +/* 0B39E8 7F07EEB8 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B39EC 7F07EEBC 44815000 */ mtc1 $at, $f10 +/* 0B39F0 7F07EEC0 46062201 */ sub.s $f8, $f4, $f6 +/* 0B39F4 7F07EEC4 240F0003 */ li $t7, 3 +/* 0B39F8 7F07EEC8 3C198008 */ lui $t9, %hi(pPlayer) +/* 0B39FC 7F07EECC 460A403C */ c.lt.s $f8, $f10 +/* 0B3A00 7F07EED0 00000000 */ nop +/* 0B3A04 7F07EED4 4502000C */ bc1fl .L7F07EF08 +/* 0B3A08 7F07EED8 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B3A0C 7F07EEDC AC6F01C8 */ sw $t7, 0x1c8($v1) +/* 0B3A10 7F07EEE0 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0B3A14 7F07EEE4 24180001 */ li $t8, 1 +/* 0B3A18 7F07EEE8 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B3A1C 7F07EEEC AF3801C0 */ sw $t8, 0x1c0($t9) +/* 0B3A20 7F07EEF0 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0B3A24 7F07EEF4 0FC1F9F3 */ jal sub_GAME_7F07E7CC +/* 0B3A28 7F07EEF8 AD0001C4 */ sw $zero, 0x1c4($t0) +/* 0B3A2C 7F07EEFC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3A30 7F07EF00 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3A34 7F07EF04 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07EF08: +/* 0B3A38 7F07EF08 24010003 */ li $at, 3 +/* 0B3A3C 7F07EF0C 54410059 */ bnel $v0, $at, .L7F07F074 +/* 0B3A40 7F07EF10 24010004 */ li $at, 4 +/* 0B3A44 7F07EF14 8C6901C0 */ lw $t1, 0x1c0($v1) +/* 0B3A48 7F07EF18 24010001 */ li $at, 1 +/* 0B3A4C 7F07EF1C 55210036 */ bnel $t1, $at, .L7F07EFF8 +/* 0B3A50 7F07EF20 8C620220 */ lw $v0, 0x220($v1) +/* 0B3A54 7F07EF24 8C620220 */ lw $v0, 0x220($v1) +/* 0B3A58 7F07EF28 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B3A5C 7F07EF2C 44817000 */ mtc1 $at, $f14 +/* 0B3A60 7F07EF30 1040000D */ beqz $v0, .L7F07EF68 +/* 0B3A64 7F07EF34 8C640218 */ lw $a0, 0x218($v1) +/* 0B3A68 7F07EF38 24010003 */ li $at, 3 +/* 0B3A6C 7F07EF3C 1041000A */ beq $v0, $at, .L7F07EF68 +/* 0B3A70 7F07EF40 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B3A74 7F07EF44 44818000 */ mtc1 $at, $f16 +/* 0B3A78 7F07EF48 C4720258 */ lwc1 $f18, 0x258($v1) +/* 0B3A7C 7F07EF4C 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B3A80 7F07EF50 44813000 */ mtc1 $at, $f6 +/* 0B3A84 7F07EF54 46128101 */ sub.s $f4, $f16, $f18 +/* 0B3A88 7F07EF58 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B3A8C 7F07EF5C 44815000 */ mtc1 $at, $f10 +/* 0B3A90 7F07EF60 46062202 */ mul.s $f8, $f4, $f6 +/* 0B3A94 7F07EF64 460A4383 */ div.s $f14, $f8, $f10 +.L7F07EF68: +/* 0B3A98 7F07EF68 10800004 */ beqz $a0, .L7F07EF7C +/* 0B3A9C 7F07EF6C 24010002 */ li $at, 2 +/* 0B3AA0 7F07EF70 10810002 */ beq $a0, $at, .L7F07EF7C +/* 0B3AA4 7F07EF74 24010003 */ li $at, 3 +/* 0B3AA8 7F07EF78 1481001A */ bne $a0, $at, .L7F07EFE4 +.L7F07EF7C: +/* 0B3AAC 7F07EF7C 24040001 */ li $a0, 1 +/* 0B3AB0 7F07EF80 0FC1F7CA */ jal sub_GAME_7F07DF28 +/* 0B3AB4 7F07EF84 E7AE0030 */ swc1 $f14, 0x30($sp) +/* 0B3AB8 7F07EF88 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B3ABC 7F07EF8C C7AE0030 */ lwc1 $f14, 0x30($sp) +/* 0B3AC0 7F07EF90 44818000 */ mtc1 $at, $f16 +/* 0B3AC4 7F07EF94 46000306 */ mov.s $f12, $f0 +/* 0B3AC8 7F07EF98 46107081 */ sub.s $f2, $f14, $f16 +/* 0B3ACC 7F07EF9C 4602003C */ c.lt.s $f0, $f2 +/* 0B3AD0 7F07EFA0 00000000 */ nop +/* 0B3AD4 7F07EFA4 45020003 */ bc1fl .L7F07EFB4 +/* 0B3AD8 7F07EFA8 E7AC002C */ swc1 $f12, 0x2c($sp) +/* 0B3ADC 7F07EFAC 46001306 */ mov.s $f12, $f2 +/* 0B3AE0 7F07EFB0 E7AC002C */ swc1 $f12, 0x2c($sp) +.L7F07EFB4: +/* 0B3AE4 7F07EFB4 0FC1F804 */ jal sub_GAME_7F07E010 +/* 0B3AE8 7F07EFB8 E7AE0030 */ swc1 $f14, 0x30($sp) +/* 0B3AEC 7F07EFBC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B3AF0 7F07EFC0 C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 0B3AF4 7F07EFC4 44819000 */ mtc1 $at, $f18 +/* 0B3AF8 7F07EFC8 C7AE0030 */ lwc1 $f14, 0x30($sp) +/* 0B3AFC 7F07EFCC 46126000 */ add.s $f0, $f12, $f18 +/* 0B3B00 7F07EFD0 4600703C */ c.lt.s $f14, $f0 +/* 0B3B04 7F07EFD4 00000000 */ nop +/* 0B3B08 7F07EFD8 45000002 */ bc1f .L7F07EFE4 +/* 0B3B0C 7F07EFDC 00000000 */ nop +/* 0B3B10 7F07EFE0 46000386 */ mov.s $f14, $f0 +.L7F07EFE4: +/* 0B3B14 7F07EFE4 0FC1FA2C */ jal sub_GAME_7F07E8B0 +/* 0B3B18 7F07EFE8 46007306 */ mov.s $f12, $f14 +/* 0B3B1C 7F07EFEC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3B20 7F07EFF0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3B24 7F07EFF4 8C620220 */ lw $v0, 0x220($v1) +.L7F07EFF8: +/* 0B3B28 7F07EFF8 24010003 */ li $at, 3 +/* 0B3B2C 7F07EFFC 10400003 */ beqz $v0, .L7F07F00C +/* 0B3B30 7F07F000 00000000 */ nop +/* 0B3B34 7F07F004 54410008 */ bnel $v0, $at, .L7F07F028 +/* 0B3B38 7F07F008 240A0001 */ li $t2, 1 +.L7F07F00C: +/* 0B3B3C 7F07F00C 0FC1F81A */ jal sub_GAME_7F07E068 +/* 0B3B40 7F07F010 00000000 */ nop +/* 0B3B44 7F07F014 10400009 */ beqz $v0, .L7F07F03C +/* 0B3B48 7F07F018 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0B3B4C 7F07F01C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3B50 7F07F020 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3B54 7F07F024 240A0001 */ li $t2, 1 +.L7F07F028: +/* 0B3B58 7F07F028 AC6A0200 */ sw $t2, 0x200($v1) +/* 0B3B5C 7F07F02C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3B60 7F07F030 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3B64 7F07F034 1000000E */ b .L7F07F070 +/* 0B3B68 7F07F038 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F03C: +/* 0B3B6C 7F07F03C 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0B3B70 7F07F040 240B0004 */ li $t3, 4 +/* 0B3B74 7F07F044 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3B78 7F07F048 AD8B01C8 */ sw $t3, 0x1c8($t4) +/* 0B3B7C 7F07F04C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3B80 7F07F050 240D0001 */ li $t5, 1 +/* 0B3B84 7F07F054 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0B3B88 7F07F058 ADCD01C0 */ sw $t5, 0x1c0($t6) +/* 0B3B8C 7F07F05C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0B3B90 7F07F060 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3B94 7F07F064 ADE001C4 */ sw $zero, 0x1c4($t7) +/* 0B3B98 7F07F068 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3B9C 7F07F06C 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F070: +/* 0B3BA0 7F07F070 24010004 */ li $at, 4 +.L7F07F074: +/* 0B3BA4 7F07F074 5441002F */ bnel $v0, $at, .L7F07F134 +/* 0B3BA8 7F07F078 24010005 */ li $at, 5 +/* 0B3BAC 7F07F07C 8C7801C0 */ lw $t8, 0x1c0($v1) +/* 0B3BB0 7F07F080 24010001 */ li $at, 1 +/* 0B3BB4 7F07F084 1701000B */ bne $t8, $at, .L7F07F0B4 +/* 0B3BB8 7F07F088 00000000 */ nop +/* 0B3BBC 7F07F08C 8C79021C */ lw $t9, 0x21c($v1) +/* 0B3BC0 7F07F090 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0B3BC4 7F07F094 240500ED */ li $a1, 237 +/* 0B3BC8 7F07F098 13200006 */ beqz $t9, .L7F07F0B4 +/* 0B3BCC 7F07F09C 00003025 */ move $a2, $zero +/* 0B3BD0 7F07F0A0 0C002382 */ jal play_sfx_a1 +/* 0B3BD4 7F07F0A4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0B3BD8 7F07F0A8 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B3BDC 7F07F0AC 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0B3BE0 7F07F0B0 AD00021C */ sw $zero, 0x21c($t0) +.L7F07F0B4: +/* 0B3BE4 7F07F0B4 0FC1F94B */ jal zoom_to_watch_on_open +/* 0B3BE8 7F07F0B8 00000000 */ nop +/* 0B3BEC 7F07F0BC 0FC1F97F */ jal check_watch_page_transistion_running +/* 0B3BF0 7F07F0C0 00000000 */ nop +/* 0B3BF4 7F07F0C4 10400009 */ beqz $v0, .L7F07F0EC +/* 0B3BF8 7F07F0C8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0B3BFC 7F07F0CC 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0B3C00 7F07F0D0 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0B3C04 7F07F0D4 24090001 */ li $t1, 1 +/* 0B3C08 7F07F0D8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3C0C 7F07F0DC AD490200 */ sw $t1, 0x200($t2) +/* 0B3C10 7F07F0E0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3C14 7F07F0E4 10000012 */ b .L7F07F130 +/* 0B3C18 7F07F0E8 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F0EC: +/* 0B3C1C 7F07F0EC 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0B3C20 7F07F0F0 240B0005 */ li $t3, 5 +/* 0B3C24 7F07F0F4 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3C28 7F07F0F8 AD8B01C8 */ sw $t3, 0x1c8($t4) +/* 0B3C2C 7F07F0FC 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3C30 7F07F100 240D0001 */ li $t5, 1 +/* 0B3C34 7F07F104 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0B3C38 7F07F108 ADCD01C0 */ sw $t5, 0x1c0($t6) +/* 0B3C3C 7F07F10C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0B3C40 7F07F110 3C198008 */ lui $t9, %hi(pPlayer) +/* 0B3C44 7F07F114 24180001 */ li $t8, 1 +/* 0B3C48 7F07F118 ADE001C4 */ sw $zero, 0x1c4($t7) +/* 0B3C4C 7F07F11C 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0B3C50 7F07F120 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3C54 7F07F124 AF38021C */ sw $t8, 0x21c($t9) +/* 0B3C58 7F07F128 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3C5C 7F07F12C 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F130: +/* 0B3C60 7F07F130 24010005 */ li $at, 5 +.L7F07F134: +/* 0B3C64 7F07F134 5441000F */ bnel $v0, $at, .L7F07F174 +/* 0B3C68 7F07F138 2401000C */ li $at, 12 +/* 0B3C6C 7F07F13C 8C6801C0 */ lw $t0, 0x1c0($v1) +/* 0B3C70 7F07F140 24010001 */ li $at, 1 +/* 0B3C74 7F07F144 55010006 */ bnel $t0, $at, .L7F07F160 +/* 0B3C78 7F07F148 24090001 */ li $t1, 1 +/* 0B3C7C 7F07F14C 0FC304C4 */ jal sub_GAME_7F0C1310 +/* 0B3C80 7F07F150 00000000 */ nop +/* 0B3C84 7F07F154 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3C88 7F07F158 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3C8C 7F07F15C 24090001 */ li $t1, 1 +.L7F07F160: +/* 0B3C90 7F07F160 AC690200 */ sw $t1, 0x200($v1) +/* 0B3C94 7F07F164 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3C98 7F07F168 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3C9C 7F07F16C 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B3CA0 7F07F170 2401000C */ li $at, 12 +.L7F07F174: +/* 0B3CA4 7F07F174 14410018 */ bne $v0, $at, .L7F07F1D8 +/* 0B3CA8 7F07F178 240A0001 */ li $t2, 1 +/* 0B3CAC 7F07F17C AC6A0200 */ sw $t2, 0x200($v1) +/* 0B3CB0 7F07F180 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3CB4 7F07F184 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3CB8 7F07F188 240C0006 */ li $t4, 6 +/* 0B3CBC 7F07F18C 240D0001 */ li $t5, 1 +/* 0B3CC0 7F07F190 8C6B01C0 */ lw $t3, 0x1c0($v1) +/* 0B3CC4 7F07F194 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3CC8 7F07F198 29610003 */ slti $at, $t3, 3 +/* 0B3CCC 7F07F19C 5420000F */ bnezl $at, .L7F07F1DC +/* 0B3CD0 7F07F1A0 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B3CD4 7F07F1A4 AC6C01C8 */ sw $t4, 0x1c8($v1) +/* 0B3CD8 7F07F1A8 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3CDC 7F07F1AC 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0B3CE0 7F07F1B0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0B3CE4 7F07F1B4 ADCD01C0 */ sw $t5, 0x1c0($t6) +/* 0B3CE8 7F07F1B8 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0B3CEC 7F07F1BC 240500EE */ li $a1, 238 +/* 0B3CF0 7F07F1C0 00003025 */ move $a2, $zero +/* 0B3CF4 7F07F1C4 ADE001C4 */ sw $zero, 0x1c4($t7) +/* 0B3CF8 7F07F1C8 0C002382 */ jal play_sfx_a1 +/* 0B3CFC 7F07F1CC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0B3D00 7F07F1D0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3D04 7F07F1D4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F07F1D8: +/* 0B3D08 7F07F1D8 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F1DC: +/* 0B3D0C 7F07F1DC 24010006 */ li $at, 6 +/* 0B3D10 7F07F1E0 5441002F */ bnel $v0, $at, .L7F07F2A0 +/* 0B3D14 7F07F1E4 24010007 */ li $at, 7 +/* 0B3D18 7F07F1E8 8C7801C0 */ lw $t8, 0x1c0($v1) +/* 0B3D1C 7F07F1EC 24010001 */ li $at, 1 +/* 0B3D20 7F07F1F0 1701000D */ bne $t8, $at, .L7F07F228 +/* 0B3D24 7F07F1F4 00000000 */ nop +/* 0B3D28 7F07F1F8 0FC1F965 */ jal zoom_from_watch_on_exit +/* 0B3D2C 7F07F1FC 00000000 */ nop +/* 0B3D30 7F07F200 8FB9001C */ lw $t9, 0x1c($sp) +/* 0B3D34 7F07F204 00002025 */ move $a0, $zero +/* 0B3D38 7F07F208 13200005 */ beqz $t9, .L7F07F220 +/* 0B3D3C 7F07F20C 00000000 */ nop +/* 0B3D40 7F07F210 0FC17680 */ jal draw_item_in_hand +/* 0B3D44 7F07F214 00002825 */ move $a1, $zero +/* 0B3D48 7F07F218 10000003 */ b .L7F07F228 +/* 0B3D4C 7F07F21C 00000000 */ nop +.L7F07F220: +/* 0B3D50 7F07F220 0FC176B9 */ jal sub_GAME_7F05DAE4 +/* 0B3D54 7F07F224 00002025 */ move $a0, $zero +.L7F07F228: +/* 0B3D58 7F07F228 0FC1F97F */ jal check_watch_page_transistion_running +/* 0B3D5C 7F07F22C 00000000 */ nop +/* 0B3D60 7F07F230 10400009 */ beqz $v0, .L7F07F258 +/* 0B3D64 7F07F234 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0B3D68 7F07F238 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B3D6C 7F07F23C 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0B3D70 7F07F240 24080001 */ li $t0, 1 +/* 0B3D74 7F07F244 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3D78 7F07F248 AD280200 */ sw $t0, 0x200($t1) +/* 0B3D7C 7F07F24C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3D80 7F07F250 10000012 */ b .L7F07F29C +/* 0B3D84 7F07F254 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F258: +/* 0B3D88 7F07F258 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0B3D8C 7F07F25C 240A0007 */ li $t2, 7 +/* 0B3D90 7F07F260 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0B3D94 7F07F264 AD6A01C8 */ sw $t2, 0x1c8($t3) +/* 0B3D98 7F07F268 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0B3D9C 7F07F26C 240C0001 */ li $t4, 1 +/* 0B3DA0 7F07F270 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3DA4 7F07F274 ADAC01C0 */ sw $t4, 0x1c0($t5) +/* 0B3DA8 7F07F278 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3DAC 7F07F27C 3C188008 */ lui $t8, %hi(pPlayer) +/* 0B3DB0 7F07F280 240F0001 */ li $t7, 1 +/* 0B3DB4 7F07F284 ADC001C4 */ sw $zero, 0x1c4($t6) +/* 0B3DB8 7F07F288 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0B3DBC 7F07F28C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3DC0 7F07F290 AF0F021C */ sw $t7, 0x21c($t8) +/* 0B3DC4 7F07F294 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3DC8 7F07F298 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F29C: +/* 0B3DCC 7F07F29C 24010007 */ li $at, 7 +.L7F07F2A0: +/* 0B3DD0 7F07F2A0 5441003F */ bnel $v0, $at, .L7F07F3A0 +/* 0B3DD4 7F07F2A4 24010008 */ li $at, 8 +/* 0B3DD8 7F07F2A8 8C7901C0 */ lw $t9, 0x1c0($v1) +/* 0B3DDC 7F07F2AC 24010001 */ li $at, 1 +/* 0B3DE0 7F07F2B0 17210024 */ bne $t9, $at, .L7F07F344 +/* 0B3DE4 7F07F2B4 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B3DE8 7F07F2B8 44817000 */ mtc1 $at, $f14 +/* 0B3DEC 7F07F2BC 00002025 */ move $a0, $zero +/* 0B3DF0 7F07F2C0 0FC1F7CA */ jal sub_GAME_7F07DF28 +/* 0B3DF4 7F07F2C4 E7AE0028 */ swc1 $f14, 0x28($sp) +/* 0B3DF8 7F07F2C8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3DFC 7F07F2CC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3E00 7F07F2D0 C7AE0028 */ lwc1 $f14, 0x28($sp) +/* 0B3E04 7F07F2D4 46000306 */ mov.s $f12, $f0 +/* 0B3E08 7F07F2D8 8C620220 */ lw $v0, 0x220($v1) +/* 0B3E0C 7F07F2DC 24010003 */ li $at, 3 +/* 0B3E10 7F07F2E0 5040000A */ beql $v0, $zero, .L7F07F30C +/* 0B3E14 7F07F2E4 3C0141A0 */ lui $at, 0x41a0 +/* 0B3E18 7F07F2E8 10410007 */ beq $v0, $at, .L7F07F308 +/* 0B3E1C 7F07F2EC 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B3E20 7F07F2F0 44813000 */ mtc1 $at, $f6 +/* 0B3E24 7F07F2F4 C4640258 */ lwc1 $f4, 0x258($v1) +/* 0B3E28 7F07F2F8 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B3E2C 7F07F2FC 44815000 */ mtc1 $at, $f10 +/* 0B3E30 7F07F300 46062202 */ mul.s $f8, $f4, $f6 +/* 0B3E34 7F07F304 460A4383 */ div.s $f14, $f8, $f10 +.L7F07F308: +/* 0B3E38 7F07F308 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +.L7F07F30C: +/* 0B3E3C 7F07F30C 44818000 */ mtc1 $at, $f16 +/* 0B3E40 7F07F310 00000000 */ nop +/* 0B3E44 7F07F314 46107080 */ add.s $f2, $f14, $f16 +/* 0B3E48 7F07F318 4602003C */ c.lt.s $f0, $f2 +/* 0B3E4C 7F07F31C 00000000 */ nop +/* 0B3E50 7F07F320 45000002 */ bc1f .L7F07F32C +/* 0B3E54 7F07F324 00000000 */ nop +/* 0B3E58 7F07F328 46001306 */ mov.s $f12, $f2 +.L7F07F32C: +/* 0B3E5C 7F07F32C 0FC1F80F */ jal sub_GAME_7F07E03C +/* 0B3E60 7F07F330 E7AE0028 */ swc1 $f14, 0x28($sp) +/* 0B3E64 7F07F334 0FC1FA44 */ jal sub_GAME_7F07E910 +/* 0B3E68 7F07F338 C7AC0028 */ lwc1 $f12, 0x28($sp) +/* 0B3E6C 7F07F33C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3E70 7F07F340 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F07F344: +/* 0B3E74 7F07F344 8C620220 */ lw $v0, 0x220($v1) +/* 0B3E78 7F07F348 24010003 */ li $at, 3 +/* 0B3E7C 7F07F34C 24090008 */ li $t1, 8 +/* 0B3E80 7F07F350 10400008 */ beqz $v0, .L7F07F374 +/* 0B3E84 7F07F354 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0B3E88 7F07F358 10410006 */ beq $v0, $at, .L7F07F374 +/* 0B3E8C 7F07F35C 24080001 */ li $t0, 1 +/* 0B3E90 7F07F360 AC680200 */ sw $t0, 0x200($v1) +/* 0B3E94 7F07F364 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3E98 7F07F368 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3E9C 7F07F36C 1000000B */ b .L7F07F39C +/* 0B3EA0 7F07F370 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F374: +/* 0B3EA4 7F07F374 AC6901C8 */ sw $t1, 0x1c8($v1) +/* 0B3EA8 7F07F378 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0B3EAC 7F07F37C 240A0001 */ li $t2, 1 +/* 0B3EB0 7F07F380 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0B3EB4 7F07F384 AD6A01C0 */ sw $t2, 0x1c0($t3) +/* 0B3EB8 7F07F388 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0B3EBC 7F07F38C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3EC0 7F07F390 AD8001C4 */ sw $zero, 0x1c4($t4) +/* 0B3EC4 7F07F394 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3EC8 7F07F398 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F39C: +/* 0B3ECC 7F07F39C 24010008 */ li $at, 8 +.L7F07F3A0: +/* 0B3ED0 7F07F3A0 14410069 */ bne $v0, $at, .L7F07F548 +/* 0B3ED4 7F07F3A4 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0B3ED8 7F07F3A8 AC600200 */ sw $zero, 0x200($v1) +/* 0B3EDC 7F07F3AC 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0B3EE0 7F07F3B0 24010001 */ li $at, 1 +/* 0B3EE4 7F07F3B4 8DAE01C0 */ lw $t6, 0x1c0($t5) +/* 0B3EE8 7F07F3B8 15C10028 */ bne $t6, $at, .L7F07F45C +/* 0B3EEC 7F07F3BC 00000000 */ nop +/* 0B3EF0 7F07F3C0 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B3EF4 7F07F3C4 24040001 */ li $a0, 1 +/* 0B3EF8 7F07F3C8 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B3EFC 7F07F3CC 0FC17674 */ jal get_item_in_hand +/* 0B3F00 7F07F3D0 24040001 */ li $a0, 1 +/* 0B3F04 7F07F3D4 8FAF001C */ lw $t7, 0x1c($sp) +/* 0B3F08 7F07F3D8 504F000B */ beql $v0, $t7, .L7F07F408 +/* 0B3F0C 7F07F3DC 8FB8003C */ lw $t8, 0x3c($sp) +/* 0B3F10 7F07F3E0 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B3F14 7F07F3E4 24040001 */ li $a0, 1 +/* 0B3F18 7F07F3E8 50400007 */ beql $v0, $zero, .L7F07F408 +/* 0B3F1C 7F07F3EC 8FB8003C */ lw $t8, 0x3c($sp) +/* 0B3F20 7F07F3F0 0FC17674 */ jal get_item_in_hand +/* 0B3F24 7F07F3F4 24040001 */ li $a0, 1 +/* 0B3F28 7F07F3F8 24040001 */ li $a0, 1 +/* 0B3F2C 7F07F3FC 0FC17680 */ jal draw_item_in_hand +/* 0B3F30 7F07F400 00402825 */ move $a1, $v0 +/* 0B3F34 7F07F404 8FB8003C */ lw $t8, 0x3c($sp) +.L7F07F408: +/* 0B3F38 7F07F408 1300004F */ beqz $t8, .L7F07F548 +/* 0B3F3C 7F07F40C 00000000 */ nop +/* 0B3F40 7F07F410 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B3F44 7F07F414 00002025 */ move $a0, $zero +/* 0B3F48 7F07F418 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B3F4C 7F07F41C 0FC17674 */ jal get_item_in_hand +/* 0B3F50 7F07F420 00002025 */ move $a0, $zero +/* 0B3F54 7F07F424 8FB9001C */ lw $t9, 0x1c($sp) +/* 0B3F58 7F07F428 10590047 */ beq $v0, $t9, .L7F07F548 +/* 0B3F5C 7F07F42C 00000000 */ nop +/* 0B3F60 7F07F430 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B3F64 7F07F434 00002025 */ move $a0, $zero +/* 0B3F68 7F07F438 10400043 */ beqz $v0, .L7F07F548 +/* 0B3F6C 7F07F43C 00000000 */ nop +/* 0B3F70 7F07F440 0FC17674 */ jal get_item_in_hand +/* 0B3F74 7F07F444 00002025 */ move $a0, $zero +/* 0B3F78 7F07F448 00002025 */ move $a0, $zero +/* 0B3F7C 7F07F44C 0FC17680 */ jal draw_item_in_hand +/* 0B3F80 7F07F450 00402825 */ move $a1, $v0 +/* 0B3F84 7F07F454 1000003C */ b .L7F07F548 +/* 0B3F88 7F07F458 00000000 */ nop +.L7F07F45C: +/* 0B3F8C 7F07F45C 0FC1F81A */ jal sub_GAME_7F07E068 +/* 0B3F90 7F07F460 00000000 */ nop +/* 0B3F94 7F07F464 14400038 */ bnez $v0, .L7F07F548 +/* 0B3F98 7F07F468 00000000 */ nop +/* 0B3F9C 7F07F46C 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B3FA0 7F07F470 24040001 */ li $a0, 1 +/* 0B3FA4 7F07F474 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B3FA8 7F07F478 0FC17674 */ jal get_item_in_hand +/* 0B3FAC 7F07F47C 24040001 */ li $a0, 1 +/* 0B3FB0 7F07F480 8FA8001C */ lw $t0, 0x1c($sp) +/* 0B3FB4 7F07F484 14480030 */ bne $v0, $t0, .L7F07F548 +/* 0B3FB8 7F07F488 00000000 */ nop +/* 0B3FBC 7F07F48C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B3FC0 7F07F490 24040001 */ li $a0, 1 +/* 0B3FC4 7F07F494 1040002C */ beqz $v0, .L7F07F548 +/* 0B3FC8 7F07F498 8FA9003C */ lw $t1, 0x3c($sp) +/* 0B3FCC 7F07F49C 1120000D */ beqz $t1, .L7F07F4D4 +/* 0B3FD0 7F07F4A0 00000000 */ nop +/* 0B3FD4 7F07F4A4 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B3FD8 7F07F4A8 00002025 */ move $a0, $zero +/* 0B3FDC 7F07F4AC AFA20018 */ sw $v0, 0x18($sp) +/* 0B3FE0 7F07F4B0 0FC17674 */ jal get_item_in_hand +/* 0B3FE4 7F07F4B4 00002025 */ move $a0, $zero +/* 0B3FE8 7F07F4B8 8FAA0018 */ lw $t2, 0x18($sp) +/* 0B3FEC 7F07F4BC 144A0022 */ bne $v0, $t2, .L7F07F548 +/* 0B3FF0 7F07F4C0 00000000 */ nop +/* 0B3FF4 7F07F4C4 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B3FF8 7F07F4C8 00002025 */ move $a0, $zero +/* 0B3FFC 7F07F4CC 1040001E */ beqz $v0, .L7F07F548 +/* 0B4000 7F07F4D0 00000000 */ nop +.L7F07F4D4: +/* 0B4004 7F07F4D4 0FC176B9 */ jal sub_GAME_7F05DAE4 +/* 0B4008 7F07F4D8 24040001 */ li $a0, 1 +/* 0B400C 7F07F4DC 8FAB003C */ lw $t3, 0x3c($sp) +/* 0B4010 7F07F4E0 51600004 */ beql $t3, $zero, .L7F07F4F4 +/* 0B4014 7F07F4E4 24040008 */ li $a0, 8 +/* 0B4018 7F07F4E8 0FC176B9 */ jal sub_GAME_7F05DAE4 +/* 0B401C 7F07F4EC 00002025 */ move $a0, $zero +/* 0B4020 7F07F4F0 24040008 */ li $a0, 8 +.L7F07F4F4: +/* 0B4024 7F07F4F4 0FC1A96A */ jal set_unset_bitflags +/* 0B4028 7F07F4F8 24050001 */ li $a1, 1 +/* 0B402C 7F07F4FC 24040004 */ li $a0, 4 +/* 0B4030 7F07F500 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 0B4034 7F07F504 24050001 */ li $a1, 1 +/* 0B4038 7F07F508 0FC228E0 */ jal unset_flags_in_BONDdata_stationary_intro_cam +/* 0B403C 7F07F50C 24040001 */ li $a0, 1 +/* 0B4040 7F07F510 0FC22A4A */ jal sub_GAME_7F08A928 +/* 0B4044 7F07F514 24040001 */ li $a0, 1 +/* 0B4048 7F07F518 24040004 */ li $a0, 4 +/* 0B404C 7F07F51C 0FC15858 */ jal set_unset_clock_lock_bits +/* 0B4050 7F07F520 24050001 */ li $a1, 1 +/* 0B4054 7F07F524 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0B4058 7F07F528 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0B405C 7F07F52C 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0B4060 7F07F530 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B4064 7F07F534 AD8001C8 */ sw $zero, 0x1c8($t4) +/* 0B4068 7F07F538 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0B406C 7F07F53C ADA001C0 */ sw $zero, 0x1c0($t5) +/* 0B4070 7F07F540 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B4074 7F07F544 ADC001C4 */ sw $zero, 0x1c4($t6) +.L7F07F548: +/* 0B4078 7F07F548 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B407C 7F07F54C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4080 7F07F550 24010009 */ li $at, 9 +/* 0B4084 7F07F554 24040001 */ li $a0, 1 +/* 0B4088 7F07F558 8C6F01C8 */ lw $t7, 0x1c8($v1) +/* 0B408C 7F07F55C 15E10023 */ bne $t7, $at, .L7F07F5EC +/* 0B4090 7F07F560 00000000 */ nop +/* 0B4094 7F07F564 0FC17674 */ jal get_item_in_hand +/* 0B4098 7F07F568 AC600200 */ sw $zero, 0x200($v1) +/* 0B409C 7F07F56C AFA2001C */ sw $v0, 0x1c($sp) +/* 0B40A0 7F07F570 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B40A4 7F07F574 24040001 */ li $a0, 1 +/* 0B40A8 7F07F578 8FB8001C */ lw $t8, 0x1c($sp) +/* 0B40AC 7F07F57C 1058001B */ beq $v0, $t8, .L7F07F5EC +/* 0B40B0 7F07F580 00000000 */ nop +/* 0B40B4 7F07F584 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B40B8 7F07F588 24040001 */ li $a0, 1 +/* 0B40BC 7F07F58C 10400017 */ beqz $v0, .L7F07F5EC +/* 0B40C0 7F07F590 8FB9003C */ lw $t9, 0x3c($sp) +/* 0B40C4 7F07F594 1320000C */ beqz $t9, .L7F07F5C8 +/* 0B40C8 7F07F598 00000000 */ nop +/* 0B40CC 7F07F59C 0FC17674 */ jal get_item_in_hand +/* 0B40D0 7F07F5A0 00002025 */ move $a0, $zero +/* 0B40D4 7F07F5A4 AFA20018 */ sw $v0, 0x18($sp) +/* 0B40D8 7F07F5A8 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B40DC 7F07F5AC 00002025 */ move $a0, $zero +/* 0B40E0 7F07F5B0 8FA80018 */ lw $t0, 0x18($sp) +/* 0B40E4 7F07F5B4 1048000D */ beq $v0, $t0, .L7F07F5EC +/* 0B40E8 7F07F5B8 00000000 */ nop +/* 0B40EC 7F07F5BC 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B40F0 7F07F5C0 00002025 */ move $a0, $zero +/* 0B40F4 7F07F5C4 10400009 */ beqz $v0, .L7F07F5EC +.L7F07F5C8: +/* 0B40F8 7F07F5C8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B40FC 7F07F5CC 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0B4100 7F07F5D0 8C4A0000 */ lw $t2, ($v0) +/* 0B4104 7F07F5D4 24090008 */ li $t1, 8 +/* 0B4108 7F07F5D8 AD4901C8 */ sw $t1, 0x1c8($t2) +/* 0B410C 7F07F5DC 8C4B0000 */ lw $t3, ($v0) +/* 0B4110 7F07F5E0 AD6001C0 */ sw $zero, 0x1c0($t3) +/* 0B4114 7F07F5E4 8C4C0000 */ lw $t4, ($v0) +/* 0B4118 7F07F5E8 AD8001C4 */ sw $zero, 0x1c4($t4) +.L7F07F5EC: +/* 0B411C 7F07F5EC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4120 7F07F5F0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4124 7F07F5F4 2401000A */ li $at, 10 +/* 0B4128 7F07F5F8 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B412C 7F07F5FC 8C6D01C8 */ lw $t5, 0x1c8($v1) +/* 0B4130 7F07F600 15A1002D */ bne $t5, $at, .L7F07F6B8 +/* 0B4134 7F07F604 00000000 */ nop +/* 0B4138 7F07F608 AC600200 */ sw $zero, 0x200($v1) +/* 0B413C 7F07F60C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B4140 7F07F610 24010001 */ li $at, 1 +/* 0B4144 7F07F614 8DCF01C0 */ lw $t7, 0x1c0($t6) +/* 0B4148 7F07F618 15E10005 */ bne $t7, $at, .L7F07F630 +/* 0B414C 7F07F61C 00000000 */ nop +/* 0B4150 7F07F620 0FC1F7CA */ jal sub_GAME_7F07DF28 +/* 0B4154 7F07F624 00002025 */ move $a0, $zero +/* 0B4158 7F07F628 0FC1F80F */ jal sub_GAME_7F07E03C +/* 0B415C 7F07F62C 46000306 */ mov.s $f12, $f0 +.L7F07F630: +/* 0B4160 7F07F630 0FC17674 */ jal get_item_in_hand +/* 0B4164 7F07F634 24040001 */ li $a0, 1 +/* 0B4168 7F07F638 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B416C 7F07F63C 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B4170 7F07F640 24040001 */ li $a0, 1 +/* 0B4174 7F07F644 8FB8001C */ lw $t8, 0x1c($sp) +/* 0B4178 7F07F648 1058001B */ beq $v0, $t8, .L7F07F6B8 +/* 0B417C 7F07F64C 00000000 */ nop +/* 0B4180 7F07F650 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B4184 7F07F654 24040001 */ li $a0, 1 +/* 0B4188 7F07F658 10400017 */ beqz $v0, .L7F07F6B8 +/* 0B418C 7F07F65C 8FB9003C */ lw $t9, 0x3c($sp) +/* 0B4190 7F07F660 1320000C */ beqz $t9, .L7F07F694 +/* 0B4194 7F07F664 00000000 */ nop +/* 0B4198 7F07F668 0FC17674 */ jal get_item_in_hand +/* 0B419C 7F07F66C 00002025 */ move $a0, $zero +/* 0B41A0 7F07F670 AFA20018 */ sw $v0, 0x18($sp) +/* 0B41A4 7F07F674 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B41A8 7F07F678 00002025 */ move $a0, $zero +/* 0B41AC 7F07F67C 8FA80018 */ lw $t0, 0x18($sp) +/* 0B41B0 7F07F680 1048000D */ beq $v0, $t0, .L7F07F6B8 +/* 0B41B4 7F07F684 00000000 */ nop +/* 0B41B8 7F07F688 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B41BC 7F07F68C 00002025 */ move $a0, $zero +/* 0B41C0 7F07F690 10400009 */ beqz $v0, .L7F07F6B8 +.L7F07F694: +/* 0B41C4 7F07F694 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B41C8 7F07F698 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0B41CC 7F07F69C 8C4A0000 */ lw $t2, ($v0) +/* 0B41D0 7F07F6A0 24090008 */ li $t1, 8 +/* 0B41D4 7F07F6A4 AD4901C8 */ sw $t1, 0x1c8($t2) +/* 0B41D8 7F07F6A8 8C4B0000 */ lw $t3, ($v0) +/* 0B41DC 7F07F6AC AD6001C0 */ sw $zero, 0x1c0($t3) +/* 0B41E0 7F07F6B0 8C4C0000 */ lw $t4, ($v0) +/* 0B41E4 7F07F6B4 AD8001C4 */ sw $zero, 0x1c4($t4) +.L7F07F6B8: +/* 0B41E8 7F07F6B8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B41EC 7F07F6BC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B41F0 7F07F6C0 2401000B */ li $at, 11 +/* 0B41F4 7F07F6C4 24040001 */ li $a0, 1 +/* 0B41F8 7F07F6C8 8C6D01C8 */ lw $t5, 0x1c8($v1) +/* 0B41FC 7F07F6CC 15A10024 */ bne $t5, $at, .L7F07F760 +/* 0B4200 7F07F6D0 00000000 */ nop +/* 0B4204 7F07F6D4 0FC17674 */ jal get_item_in_hand +/* 0B4208 7F07F6D8 AC600200 */ sw $zero, 0x200($v1) +/* 0B420C 7F07F6DC AFA2001C */ sw $v0, 0x1c($sp) +/* 0B4210 7F07F6E0 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B4214 7F07F6E4 24040001 */ li $a0, 1 +/* 0B4218 7F07F6E8 8FAE001C */ lw $t6, 0x1c($sp) +/* 0B421C 7F07F6EC 144E001C */ bne $v0, $t6, .L7F07F760 +/* 0B4220 7F07F6F0 00000000 */ nop +/* 0B4224 7F07F6F4 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B4228 7F07F6F8 24040001 */ li $a0, 1 +/* 0B422C 7F07F6FC 10400018 */ beqz $v0, .L7F07F760 +/* 0B4230 7F07F700 8FAF003C */ lw $t7, 0x3c($sp) +/* 0B4234 7F07F704 11E0000C */ beqz $t7, .L7F07F738 +/* 0B4238 7F07F708 00000000 */ nop +/* 0B423C 7F07F70C 0FC17674 */ jal get_item_in_hand +/* 0B4240 7F07F710 00002025 */ move $a0, $zero +/* 0B4244 7F07F714 AFA20018 */ sw $v0, 0x18($sp) +/* 0B4248 7F07F718 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B424C 7F07F71C 00002025 */ move $a0, $zero +/* 0B4250 7F07F720 8FB80018 */ lw $t8, 0x18($sp) +/* 0B4254 7F07F724 1458000E */ bne $v0, $t8, .L7F07F760 +/* 0B4258 7F07F728 00000000 */ nop +/* 0B425C 7F07F72C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B4260 7F07F730 00002025 */ move $a0, $zero +/* 0B4264 7F07F734 1040000A */ beqz $v0, .L7F07F760 +.L7F07F738: +/* 0B4268 7F07F738 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B426C 7F07F73C 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0B4270 7F07F740 24190001 */ li $t9, 1 +/* 0B4274 7F07F744 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B4278 7F07F748 AD1901C8 */ sw $t9, 0x1c8($t0) +/* 0B427C 7F07F74C 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0B4280 7F07F750 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0B4284 7F07F754 AD2001C0 */ sw $zero, 0x1c0($t1) +/* 0B4288 7F07F758 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0B428C 7F07F75C AD4001C4 */ sw $zero, 0x1c4($t2) +.L7F07F760: +/* 0B4290 7F07F760 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4294 7F07F764 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4298 7F07F768 2401000D */ li $at, 13 +/* 0B429C 7F07F76C 24040001 */ li $a0, 1 +/* 0B42A0 7F07F770 8C6B01C8 */ lw $t3, 0x1c8($v1) +/* 0B42A4 7F07F774 1561001B */ bne $t3, $at, .L7F07F7E4 +/* 0B42A8 7F07F778 00000000 */ nop +/* 0B42AC 7F07F77C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B42B0 7F07F780 AC600200 */ sw $zero, 0x200($v1) +/* 0B42B4 7F07F784 10400017 */ beqz $v0, .L7F07F7E4 +/* 0B42B8 7F07F788 00000000 */ nop +/* 0B42BC 7F07F78C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B42C0 7F07F790 00002025 */ move $a0, $zero +/* 0B42C4 7F07F794 10400013 */ beqz $v0, .L7F07F7E4 +/* 0B42C8 7F07F798 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B42CC 7F07F79C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B42D0 7F07F7A0 24010005 */ li $at, 5 +/* 0B42D4 7F07F7A4 8C620C3C */ lw $v0, 0xc3c($v1) +/* 0B42D8 7F07F7A8 1041000E */ beq $v0, $at, .L7F07F7E4 +/* 0B42DC 7F07F7AC 24010006 */ li $at, 6 +/* 0B42E0 7F07F7B0 1041000C */ beq $v0, $at, .L7F07F7E4 +/* 0B42E4 7F07F7B4 24010007 */ li $at, 7 +/* 0B42E8 7F07F7B8 1041000A */ beq $v0, $at, .L7F07F7E4 +/* 0B42EC 7F07F7BC 24010008 */ li $at, 8 +/* 0B42F0 7F07F7C0 10410008 */ beq $v0, $at, .L7F07F7E4 +/* 0B42F4 7F07F7C4 240C0001 */ li $t4, 1 +/* 0B42F8 7F07F7C8 AC6C01C8 */ sw $t4, 0x1c8($v1) +/* 0B42FC 7F07F7CC 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0B4300 7F07F7D0 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0B4304 7F07F7D4 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B4308 7F07F7D8 ADA001C0 */ sw $zero, 0x1c0($t5) +/* 0B430C 7F07F7DC 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B4310 7F07F7E0 ADC001C4 */ sw $zero, 0x1c4($t6) +.L7F07F7E4: +/* 0B4314 7F07F7E4 0FC1F824 */ jal sub_GAME_7F07E090 +/* 0B4318 7F07F7E8 00000000 */ nop +/* 0B431C 7F07F7EC 0FC1FA59 */ jal sub_GAME_7F07E964 +/* 0B4320 7F07F7F0 00000000 */ nop +/* 0B4324 7F07F7F4 0FC1F98B */ jal sub_GAME_7F07E62C +/* 0B4328 7F07F7F8 00000000 */ nop +/* 0B432C 7F07F7FC 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0B4330 7F07F800 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0B4334 7F07F804 8DE201C8 */ lw $v0, 0x1c8($t7) +/* 0B4338 7F07F808 24010005 */ li $at, 5 +.L7F07F80C: +/* 0B433C 7F07F80C 54410008 */ bnel $v0, $at, .L7F07F830 +/* 0B4340 7F07F810 2401000C */ li $at, 12 +/* 0B4344 7F07F814 0FC2FEFE */ jal set_controls_locked_flag +/* 0B4348 7F07F818 24040001 */ li $a0, 1 +/* 0B434C 7F07F81C 0FC29AA0 */ jal sub_GAME_7F0A6A80 +/* 0B4350 7F07F820 00000000 */ nop +/* 0B4354 7F07F824 1000000B */ b .L7F07F854 +/* 0B4358 7F07F828 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B435C 7F07F82C 2401000C */ li $at, 12 +.L7F07F830: +/* 0B4360 7F07F830 14410005 */ bne $v0, $at, .L7F07F848 +/* 0B4364 7F07F834 00000000 */ nop +/* 0B4368 7F07F838 0FC2FEFE */ jal set_controls_locked_flag +/* 0B436C 7F07F83C 24040001 */ li $a0, 1 +/* 0B4370 7F07F840 10000004 */ b .L7F07F854 +/* 0B4374 7F07F844 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07F848: +/* 0B4378 7F07F848 0FC2FEFE */ jal set_controls_locked_flag +/* 0B437C 7F07F84C 00002025 */ move $a0, $zero +/* 0B4380 7F07F850 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07F854: +/* 0B4384 7F07F854 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0B4388 7F07F858 03E00008 */ jr $ra +/* 0B438C 7F07F85C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F07EC54 +/* 0B3DD0 7F07F260 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0B3DD4 7F07F264 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3DD8 7F07F268 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0B3DDC 7F07F26C AFBF0014 */ sw $ra, 0x14($sp) +/* 0B3DE0 7F07F270 8DC201C8 */ lw $v0, 0x1c8($t6) +/* 0B3DE4 7F07F274 504002E9 */ beql $v0, $zero, .Ljp7F07FE1C +/* 0B3DE8 7F07F278 24010005 */ li $at, 5 +/* 0B3DEC 7F07F27C 0FC177BC */ jal get_item_in_hand +/* 0B3DF0 7F07F280 00002025 */ move $a0, $zero +/* 0B3DF4 7F07F284 3843001E */ xori $v1, $v0, 0x1e +/* 0B3DF8 7F07F288 2C630001 */ sltiu $v1, $v1, 1 +/* 0B3DFC 7F07F28C 14600006 */ bnez $v1, .Ljp7F07F2A8 +/* 0B3E00 7F07F290 AFA3001C */ sw $v1, 0x1c($sp) +/* 0B3E04 7F07F294 0FC177BC */ jal get_item_in_hand +/* 0B3E08 7F07F298 00002025 */ move $a0, $zero +/* 0B3E0C 7F07F29C 384F0017 */ xori $t7, $v0, 0x17 +/* 0B3E10 7F07F2A0 2DEF0001 */ sltiu $t7, $t7, 1 +/* 0B3E14 7F07F2A4 AFAF001C */ sw $t7, 0x1c($sp) +.Ljp7F07F2A8: +/* 0B3E18 7F07F2A8 8FB8001C */ lw $t8, 0x1c($sp) +/* 0B3E1C 7F07F2AC 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B3E20 7F07F2B0 13000004 */ beqz $t8, .Ljp7F07F2C4 +/* 0B3E24 7F07F2B4 AFB8003C */ sw $t8, 0x3c($sp) +/* 0B3E28 7F07F2B8 24190023 */ li $t9, 35 +/* 0B3E2C 7F07F2BC 10000003 */ b .Ljp7F07F2CC +/* 0B3E30 7F07F2C0 AFB90038 */ sw $t9, 0x38($sp) +.Ljp7F07F2C4: +/* 0B3E34 7F07F2C4 24080011 */ li $t0, 17 +/* 0B3E38 7F07F2C8 AFA80038 */ sw $t0, 0x38($sp) +.Ljp7F07F2CC: +/* 0B3E3C 7F07F2CC 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3E40 7F07F2D0 3C0A8005 */ lui $t2, %hi(clock_timer) # $t2, 0x8005 +/* 0B3E44 7F07F2D4 8D4A83A4 */ lw $t2, %lo(clock_timer)($t2) +/* 0B3E48 7F07F2D8 8C6901C4 */ lw $t1, 0x1c4($v1) +/* 0B3E4C 7F07F2DC 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0B3E50 7F07F2E0 24010001 */ li $at, 1 +/* 0B3E54 7F07F2E4 012A5821 */ addu $t3, $t1, $t2 +/* 0B3E58 7F07F2E8 AC6B01C4 */ sw $t3, 0x1c4($v1) +/* 0B3E5C 7F07F2EC 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B3E60 7F07F2F0 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3E64 7F07F2F4 8C6C01C0 */ lw $t4, 0x1c0($v1) +/* 0B3E68 7F07F2F8 258D0001 */ addiu $t5, $t4, 1 +/* 0B3E6C 7F07F2FC AC6D01C0 */ sw $t5, 0x1c0($v1) +/* 0B3E70 7F07F300 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3E74 7F07F304 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B3E78 7F07F308 ADC00200 */ sw $zero, 0x200($t6) +/* 0B3E7C 7F07F30C 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3E80 7F07F310 8C6F01C8 */ lw $t7, 0x1c8($v1) +/* 0B3E84 7F07F314 15E10038 */ bne $t7, $at, .Ljp7F07F3F8 +/* 0B3E88 7F07F318 00000000 */ nop +/* 0B3E8C 7F07F31C AC600200 */ sw $zero, 0x200($v1) +/* 0B3E90 7F07F320 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0B3E94 7F07F324 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0B3E98 7F07F328 24010001 */ li $at, 1 +/* 0B3E9C 7F07F32C 24040001 */ li $a0, 1 +/* 0B3EA0 7F07F330 8F0201C0 */ lw $v0, 0x1c0($t8) +/* 0B3EA4 7F07F334 54410006 */ bnel $v0, $at, .Ljp7F07F350 +/* 0B3EA8 7F07F338 24010002 */ li $at, 2 +/* 0B3EAC 7F07F33C 0FC177C8 */ jal draw_item_in_hand +/* 0B3EB0 7F07F340 24050054 */ li $a1, 84 +/* 0B3EB4 7F07F344 1000002C */ b .Ljp7F07F3F8 +/* 0B3EB8 7F07F348 00000000 */ nop +/* 0B3EBC 7F07F34C 24010002 */ li $at, 2 +.Ljp7F07F350: +/* 0B3EC0 7F07F350 14410007 */ bne $v0, $at, .Ljp7F07F370 +/* 0B3EC4 7F07F354 8FB9001C */ lw $t9, 0x1c($sp) +/* 0B3EC8 7F07F358 13200027 */ beqz $t9, .Ljp7F07F3F8 +/* 0B3ECC 7F07F35C 00002025 */ move $a0, $zero +/* 0B3ED0 7F07F360 0FC177C8 */ jal draw_item_in_hand +/* 0B3ED4 7F07F364 00002825 */ move $a1, $zero +/* 0B3ED8 7F07F368 10000023 */ b .Ljp7F07F3F8 +/* 0B3EDC 7F07F36C 00000000 */ nop +.Ljp7F07F370: +/* 0B3EE0 7F07F370 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B3EE4 7F07F374 24040001 */ li $a0, 1 +/* 0B3EE8 7F07F378 24010054 */ li $at, 84 +/* 0B3EEC 7F07F37C 1441001E */ bne $v0, $at, .Ljp7F07F3F8 +/* 0B3EF0 7F07F380 00000000 */ nop +/* 0B3EF4 7F07F384 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B3EF8 7F07F388 24040001 */ li $a0, 1 +/* 0B3EFC 7F07F38C 1040001A */ beqz $v0, .Ljp7F07F3F8 +/* 0B3F00 7F07F390 8FA8001C */ lw $t0, 0x1c($sp) +/* 0B3F04 7F07F394 11000008 */ beqz $t0, .Ljp7F07F3B8 +/* 0B3F08 7F07F398 00000000 */ nop +/* 0B3F0C 7F07F39C 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B3F10 7F07F3A0 00002025 */ move $a0, $zero +/* 0B3F14 7F07F3A4 14400014 */ bnez $v0, .Ljp7F07F3F8 +/* 0B3F18 7F07F3A8 00000000 */ nop +/* 0B3F1C 7F07F3AC 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B3F20 7F07F3B0 00002025 */ move $a0, $zero +/* 0B3F24 7F07F3B4 10400010 */ beqz $v0, .Ljp7F07F3F8 +.Ljp7F07F3B8: +/* 0B3F28 7F07F3B8 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B3F2C 7F07F3BC 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3F30 7F07F3C0 8FAA0038 */ lw $t2, 0x38($sp) +/* 0B3F34 7F07F3C4 240B0002 */ li $t3, 2 +/* 0B3F38 7F07F3C8 8C6901C4 */ lw $t1, 0x1c4($v1) +/* 0B3F3C 7F07F3CC 3C0D8008 */ lui $t5, %hi(pPlayer) # $t5, 0x8008 +/* 0B3F40 7F07F3D0 012A082A */ slt $at, $t1, $t2 +/* 0B3F44 7F07F3D4 14200008 */ bnez $at, .Ljp7F07F3F8 +/* 0B3F48 7F07F3D8 00000000 */ nop +/* 0B3F4C 7F07F3DC AC6B01C8 */ sw $t3, 0x1c8($v1) +/* 0B3F50 7F07F3E0 8DADA120 */ lw $t5, %lo(pPlayer)($t5) +/* 0B3F54 7F07F3E4 240C0001 */ li $t4, 1 +/* 0B3F58 7F07F3E8 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0B3F5C 7F07F3EC ADAC01C0 */ sw $t4, 0x1c0($t5) +/* 0B3F60 7F07F3F0 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3F64 7F07F3F4 ADC001C4 */ sw $zero, 0x1c4($t6) +.Ljp7F07F3F8: +/* 0B3F68 7F07F3F8 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B3F6C 7F07F3FC 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3F70 7F07F400 24010002 */ li $at, 2 +/* 0B3F74 7F07F404 8C6F01C8 */ lw $t7, 0x1c8($v1) +/* 0B3F78 7F07F408 55E10043 */ bnel $t7, $at, .Ljp7F07F518 +/* 0B3F7C 7F07F40C 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B3F80 7F07F410 AC600200 */ sw $zero, 0x200($v1) +/* 0B3F84 7F07F414 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B3F88 7F07F418 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3F8C 7F07F41C 24010001 */ li $at, 1 +/* 0B3F90 7F07F420 24040008 */ li $a0, 8 +/* 0B3F94 7F07F424 8C7801C0 */ lw $t8, 0x1c0($v1) +/* 0B3F98 7F07F428 57010026 */ bnel $t8, $at, .Ljp7F07F4C4 +/* 0B3F9C 7F07F42C C4640214 */ lwc1 $f4, 0x214($v1) +/* 0B3FA0 7F07F430 0FC1AAE5 */ jal set_unset_bitflags +/* 0B3FA4 7F07F434 00002825 */ move $a1, $zero +/* 0B3FA8 7F07F438 24040004 */ li $a0, 4 +/* 0B3FAC 7F07F43C 0FC1A5B8 */ jal set_unset_ammo_on_screen_setting +/* 0B3FB0 7F07F440 00002825 */ move $a1, $zero +/* 0B3FB4 7F07F444 0FC22AAD */ jal set_flags_in_BONDdata_stationary_intro_cam +/* 0B3FB8 7F07F448 24040001 */ li $a0, 1 +/* 0B3FBC 7F07F44C 0FC22C48 */ jal sub_GAME_7F08A944 +/* 0B3FC0 7F07F450 24040001 */ li $a0, 1 +/* 0B3FC4 7F07F454 24040004 */ li $a0, 4 +/* 0B3FC8 7F07F458 0FC15997 */ jal set_unset_clock_lock_bits +/* 0B3FCC 7F07F45C 00002825 */ move $a1, $zero +/* 0B3FD0 7F07F460 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B3FD4 7F07F464 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3FD8 7F07F468 24010002 */ li $at, 2 +/* 0B3FDC 7F07F46C 8C640218 */ lw $a0, 0x218($v1) +/* 0B3FE0 7F07F470 10800005 */ beqz $a0, .Ljp7F07F488 +/* 0B3FE4 7F07F474 00000000 */ nop +/* 0B3FE8 7F07F478 10810003 */ beq $a0, $at, .Ljp7F07F488 +/* 0B3FEC 7F07F47C 24010003 */ li $at, 3 +/* 0B3FF0 7F07F480 54810010 */ bnel $a0, $at, .Ljp7F07F4C4 +/* 0B3FF4 7F07F484 C4640214 */ lwc1 $f4, 0x214($v1) +.Ljp7F07F488: +/* 0B3FF8 7F07F488 0FC1F953 */ jal sub_GAME_7F07DF28 +/* 0B3FFC 7F07F48C 24040001 */ li $a0, 1 +/* 0B4000 7F07F490 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B4004 7F07F494 44811000 */ mtc1 $at, $f2 +/* 0B4008 7F07F498 46000306 */ mov.s $f12, $f0 +/* 0B400C 7F07F49C 4602003C */ c.lt.s $f0, $f2 +/* 0B4010 7F07F4A0 00000000 */ nop +/* 0B4014 7F07F4A4 45000002 */ bc1f .Ljp7F07F4B0 +/* 0B4018 7F07F4A8 00000000 */ nop +/* 0B401C 7F07F4AC 46001306 */ mov.s $f12, $f2 +.Ljp7F07F4B0: +/* 0B4020 7F07F4B0 0FC1F98D */ jal sub_GAME_7F07E010 +/* 0B4024 7F07F4B4 00000000 */ nop +/* 0B4028 7F07F4B8 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B402C 7F07F4BC 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4030 7F07F4C0 C4640214 */ lwc1 $f4, 0x214($v1) +.Ljp7F07F4C4: +/* 0B4034 7F07F4C4 C4660210 */ lwc1 $f6, 0x210($v1) +/* 0B4038 7F07F4C8 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B403C 7F07F4CC 44815000 */ mtc1 $at, $f10 +/* 0B4040 7F07F4D0 46062201 */ sub.s $f8, $f4, $f6 +/* 0B4044 7F07F4D4 24190003 */ li $t9, 3 +/* 0B4048 7F07F4D8 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B404C 7F07F4DC 460A403C */ c.lt.s $f8, $f10 +/* 0B4050 7F07F4E0 00000000 */ nop +/* 0B4054 7F07F4E4 4502000C */ bc1fl .Ljp7F07F518 +/* 0B4058 7F07F4E8 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B405C 7F07F4EC AC7901C8 */ sw $t9, 0x1c8($v1) +/* 0B4060 7F07F4F0 8D29A120 */ lw $t1, %lo(pPlayer)($t1) +/* 0B4064 7F07F4F4 24080001 */ li $t0, 1 +/* 0B4068 7F07F4F8 3C0A8008 */ lui $t2, %hi(pPlayer) # $t2, 0x8008 +/* 0B406C 7F07F4FC AD2801C0 */ sw $t0, 0x1c0($t1) +/* 0B4070 7F07F500 8D4AA120 */ lw $t2, %lo(pPlayer)($t2) +/* 0B4074 7F07F504 0FC1FB76 */ jal sub_GAME_7F07E7CC +/* 0B4078 7F07F508 AD4001C4 */ sw $zero, 0x1c4($t2) +/* 0B407C 7F07F50C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B4080 7F07F510 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4084 7F07F514 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F518: +/* 0B4088 7F07F518 24010003 */ li $at, 3 +/* 0B408C 7F07F51C 54410059 */ bnel $v0, $at, .Ljp7F07F684 +/* 0B4090 7F07F520 24010004 */ li $at, 4 +/* 0B4094 7F07F524 8C6B01C0 */ lw $t3, 0x1c0($v1) +/* 0B4098 7F07F528 24010001 */ li $at, 1 +/* 0B409C 7F07F52C 55610036 */ bnel $t3, $at, .Ljp7F07F608 +/* 0B40A0 7F07F530 8C620220 */ lw $v0, 0x220($v1) +/* 0B40A4 7F07F534 8C620220 */ lw $v0, 0x220($v1) +/* 0B40A8 7F07F538 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B40AC 7F07F53C 44817000 */ mtc1 $at, $f14 +/* 0B40B0 7F07F540 1040000D */ beqz $v0, .Ljp7F07F578 +/* 0B40B4 7F07F544 8C640218 */ lw $a0, 0x218($v1) +/* 0B40B8 7F07F548 24010003 */ li $at, 3 +/* 0B40BC 7F07F54C 1041000A */ beq $v0, $at, .Ljp7F07F578 +/* 0B40C0 7F07F550 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B40C4 7F07F554 44818000 */ mtc1 $at, $f16 +/* 0B40C8 7F07F558 C4720258 */ lwc1 $f18, 0x258($v1) +/* 0B40CC 7F07F55C 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B40D0 7F07F560 44813000 */ mtc1 $at, $f6 +/* 0B40D4 7F07F564 46128101 */ sub.s $f4, $f16, $f18 +/* 0B40D8 7F07F568 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B40DC 7F07F56C 44815000 */ mtc1 $at, $f10 +/* 0B40E0 7F07F570 46062202 */ mul.s $f8, $f4, $f6 +/* 0B40E4 7F07F574 460A4383 */ div.s $f14, $f8, $f10 +.Ljp7F07F578: +/* 0B40E8 7F07F578 10800004 */ beqz $a0, .Ljp7F07F58C +/* 0B40EC 7F07F57C 24010002 */ li $at, 2 +/* 0B40F0 7F07F580 10810002 */ beq $a0, $at, .Ljp7F07F58C +/* 0B40F4 7F07F584 24010003 */ li $at, 3 +/* 0B40F8 7F07F588 1481001A */ bne $a0, $at, .Ljp7F07F5F4 +.Ljp7F07F58C: +/* 0B40FC 7F07F58C 24040001 */ li $a0, 1 +/* 0B4100 7F07F590 0FC1F953 */ jal sub_GAME_7F07DF28 +/* 0B4104 7F07F594 E7AE0030 */ swc1 $f14, 0x30($sp) +/* 0B4108 7F07F598 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B410C 7F07F59C C7AE0030 */ lwc1 $f14, 0x30($sp) +/* 0B4110 7F07F5A0 44818000 */ mtc1 $at, $f16 +/* 0B4114 7F07F5A4 46000306 */ mov.s $f12, $f0 +/* 0B4118 7F07F5A8 46107081 */ sub.s $f2, $f14, $f16 +/* 0B411C 7F07F5AC 4602003C */ c.lt.s $f0, $f2 +/* 0B4120 7F07F5B0 00000000 */ nop +/* 0B4124 7F07F5B4 45020003 */ bc1fl .Ljp7F07F5C4 +/* 0B4128 7F07F5B8 E7AC002C */ swc1 $f12, 0x2c($sp) +/* 0B412C 7F07F5BC 46001306 */ mov.s $f12, $f2 +/* 0B4130 7F07F5C0 E7AC002C */ swc1 $f12, 0x2c($sp) +.Ljp7F07F5C4: +/* 0B4134 7F07F5C4 0FC1F98D */ jal sub_GAME_7F07E010 +/* 0B4138 7F07F5C8 E7AE0030 */ swc1 $f14, 0x30($sp) +/* 0B413C 7F07F5CC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B4140 7F07F5D0 C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 0B4144 7F07F5D4 44819000 */ mtc1 $at, $f18 +/* 0B4148 7F07F5D8 C7AE0030 */ lwc1 $f14, 0x30($sp) +/* 0B414C 7F07F5DC 46126000 */ add.s $f0, $f12, $f18 +/* 0B4150 7F07F5E0 4600703C */ c.lt.s $f14, $f0 +/* 0B4154 7F07F5E4 00000000 */ nop +/* 0B4158 7F07F5E8 45000002 */ bc1f .Ljp7F07F5F4 +/* 0B415C 7F07F5EC 00000000 */ nop +/* 0B4160 7F07F5F0 46000386 */ mov.s $f14, $f0 +.Ljp7F07F5F4: +/* 0B4164 7F07F5F4 0FC1FBAF */ jal sub_GAME_7F07E8B0 +/* 0B4168 7F07F5F8 46007306 */ mov.s $f12, $f14 +/* 0B416C 7F07F5FC 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B4170 7F07F600 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4174 7F07F604 8C620220 */ lw $v0, 0x220($v1) +.Ljp7F07F608: +/* 0B4178 7F07F608 24010003 */ li $at, 3 +/* 0B417C 7F07F60C 10400003 */ beqz $v0, .Ljp7F07F61C +/* 0B4180 7F07F610 00000000 */ nop +/* 0B4184 7F07F614 54410008 */ bnel $v0, $at, .Ljp7F07F638 +/* 0B4188 7F07F618 240C0001 */ li $t4, 1 +.Ljp7F07F61C: +/* 0B418C 7F07F61C 0FC1F9A3 */ jal sub_GAME_7F07E068 +/* 0B4190 7F07F620 00000000 */ nop +/* 0B4194 7F07F624 10400009 */ beqz $v0, .Ljp7F07F64C +/* 0B4198 7F07F628 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0B419C 7F07F62C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B41A0 7F07F630 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B41A4 7F07F634 240C0001 */ li $t4, 1 +.Ljp7F07F638: +/* 0B41A8 7F07F638 AC6C0200 */ sw $t4, 0x200($v1) +/* 0B41AC 7F07F63C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B41B0 7F07F640 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B41B4 7F07F644 1000000E */ b .Ljp7F07F680 +/* 0B41B8 7F07F648 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F64C: +/* 0B41BC 7F07F64C 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0B41C0 7F07F650 240D0004 */ li $t5, 4 +/* 0B41C4 7F07F654 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0B41C8 7F07F658 ADCD01C8 */ sw $t5, 0x1c8($t6) +/* 0B41CC 7F07F65C 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0B41D0 7F07F660 240F0001 */ li $t7, 1 +/* 0B41D4 7F07F664 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 0B41D8 7F07F668 AF0F01C0 */ sw $t7, 0x1c0($t8) +/* 0B41DC 7F07F66C 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 0B41E0 7F07F670 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B41E4 7F07F674 AF2001C4 */ sw $zero, 0x1c4($t9) +/* 0B41E8 7F07F678 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B41EC 7F07F67C 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F680: +/* 0B41F0 7F07F680 24010004 */ li $at, 4 +.Ljp7F07F684: +/* 0B41F4 7F07F684 5441002F */ bnel $v0, $at, .Ljp7F07F744 +/* 0B41F8 7F07F688 24010005 */ li $at, 5 +/* 0B41FC 7F07F68C 8C6801C0 */ lw $t0, 0x1c0($v1) +/* 0B4200 7F07F690 24010001 */ li $at, 1 +/* 0B4204 7F07F694 1501000B */ bne $t0, $at, .Ljp7F07F6C4 +/* 0B4208 7F07F698 00000000 */ nop +/* 0B420C 7F07F69C 8C69021C */ lw $t1, 0x21c($v1) +/* 0B4210 7F07F6A0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0B4214 7F07F6A4 240500ED */ li $a1, 237 +/* 0B4218 7F07F6A8 11200006 */ beqz $t1, .Ljp7F07F6C4 +/* 0B421C 7F07F6AC 00003025 */ move $a2, $zero +/* 0B4220 7F07F6B0 0C002386 */ jal play_sfx_a1 +/* 0B4224 7F07F6B4 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0B4228 7F07F6B8 3C0A8008 */ lui $t2, %hi(pPlayer) # $t2, 0x8008 +/* 0B422C 7F07F6BC 8D4AA120 */ lw $t2, %lo(pPlayer)($t2) +/* 0B4230 7F07F6C0 AD40021C */ sw $zero, 0x21c($t2) +.Ljp7F07F6C4: +/* 0B4234 7F07F6C4 0FC1FAD4 */ jal zoom_to_watch_on_open +/* 0B4238 7F07F6C8 00000000 */ nop +/* 0B423C 7F07F6CC 0FC1FB08 */ jal check_watch_page_transistion_running +/* 0B4240 7F07F6D0 00000000 */ nop +/* 0B4244 7F07F6D4 10400009 */ beqz $v0, .Ljp7F07F6FC +/* 0B4248 7F07F6D8 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0B424C 7F07F6DC 3C0C8008 */ lui $t4, %hi(pPlayer) # $t4, 0x8008 +/* 0B4250 7F07F6E0 8D8CA120 */ lw $t4, %lo(pPlayer)($t4) +/* 0B4254 7F07F6E4 240B0001 */ li $t3, 1 +/* 0B4258 7F07F6E8 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B425C 7F07F6EC AD8B0200 */ sw $t3, 0x200($t4) +/* 0B4260 7F07F6F0 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4264 7F07F6F4 10000012 */ b .Ljp7F07F740 +/* 0B4268 7F07F6F8 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F6FC: +/* 0B426C 7F07F6FC 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0B4270 7F07F700 240D0005 */ li $t5, 5 +/* 0B4274 7F07F704 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0B4278 7F07F708 ADCD01C8 */ sw $t5, 0x1c8($t6) +/* 0B427C 7F07F70C 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0B4280 7F07F710 240F0001 */ li $t7, 1 +/* 0B4284 7F07F714 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 0B4288 7F07F718 AF0F01C0 */ sw $t7, 0x1c0($t8) +/* 0B428C 7F07F71C 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 0B4290 7F07F720 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0B4294 7F07F724 24080001 */ li $t0, 1 +/* 0B4298 7F07F728 AF2001C4 */ sw $zero, 0x1c4($t9) +/* 0B429C 7F07F72C 8D29A120 */ lw $t1, %lo(pPlayer)($t1) +/* 0B42A0 7F07F730 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B42A4 7F07F734 AD28021C */ sw $t0, 0x21c($t1) +/* 0B42A8 7F07F738 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B42AC 7F07F73C 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F740: +/* 0B42B0 7F07F740 24010005 */ li $at, 5 +.Ljp7F07F744: +/* 0B42B4 7F07F744 5441000F */ bnel $v0, $at, .Ljp7F07F784 +/* 0B42B8 7F07F748 2401000C */ li $at, 12 +/* 0B42BC 7F07F74C 8C6A01C0 */ lw $t2, 0x1c0($v1) +/* 0B42C0 7F07F750 24010001 */ li $at, 1 +/* 0B42C4 7F07F754 55410006 */ bnel $t2, $at, .Ljp7F07F770 +/* 0B42C8 7F07F758 240B0001 */ li $t3, 1 +/* 0B42CC 7F07F75C 0FC307F0 */ jal sub_GAME_7F0C1310 +/* 0B42D0 7F07F760 00000000 */ nop +/* 0B42D4 7F07F764 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B42D8 7F07F768 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B42DC 7F07F76C 240B0001 */ li $t3, 1 +.Ljp7F07F770: +/* 0B42E0 7F07F770 AC6B0200 */ sw $t3, 0x200($v1) +/* 0B42E4 7F07F774 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B42E8 7F07F778 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B42EC 7F07F77C 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B42F0 7F07F780 2401000C */ li $at, 12 +.Ljp7F07F784: +/* 0B42F4 7F07F784 14410018 */ bne $v0, $at, .Ljp7F07F7E8 +/* 0B42F8 7F07F788 240C0001 */ li $t4, 1 +/* 0B42FC 7F07F78C AC6C0200 */ sw $t4, 0x200($v1) +/* 0B4300 7F07F790 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B4304 7F07F794 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4308 7F07F798 240E0006 */ li $t6, 6 +/* 0B430C 7F07F79C 240F0001 */ li $t7, 1 +/* 0B4310 7F07F7A0 8C6D01C0 */ lw $t5, 0x1c0($v1) +/* 0B4314 7F07F7A4 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0B4318 7F07F7A8 29A10003 */ slti $at, $t5, 3 +/* 0B431C 7F07F7AC 5420000F */ bnezl $at, .Ljp7F07F7EC +/* 0B4320 7F07F7B0 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B4324 7F07F7B4 AC6E01C8 */ sw $t6, 0x1c8($v1) +/* 0B4328 7F07F7B8 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0B432C 7F07F7BC 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 0B4330 7F07F7C0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0B4334 7F07F7C4 AF0F01C0 */ sw $t7, 0x1c0($t8) +/* 0B4338 7F07F7C8 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 0B433C 7F07F7CC 240500EE */ li $a1, 238 +/* 0B4340 7F07F7D0 00003025 */ move $a2, $zero +/* 0B4344 7F07F7D4 AF2001C4 */ sw $zero, 0x1c4($t9) +/* 0B4348 7F07F7D8 0C002386 */ jal play_sfx_a1 +/* 0B434C 7F07F7DC 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0B4350 7F07F7E0 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B4354 7F07F7E4 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +.Ljp7F07F7E8: +/* 0B4358 7F07F7E8 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F7EC: +/* 0B435C 7F07F7EC 24010006 */ li $at, 6 +/* 0B4360 7F07F7F0 5441002F */ bnel $v0, $at, .Ljp7F07F8B0 +/* 0B4364 7F07F7F4 24010007 */ li $at, 7 +/* 0B4368 7F07F7F8 8C6801C0 */ lw $t0, 0x1c0($v1) +/* 0B436C 7F07F7FC 24010001 */ li $at, 1 +/* 0B4370 7F07F800 1501000D */ bne $t0, $at, .Ljp7F07F838 +/* 0B4374 7F07F804 00000000 */ nop +/* 0B4378 7F07F808 0FC1FAEE */ jal zoom_from_watch_on_exit +/* 0B437C 7F07F80C 00000000 */ nop +/* 0B4380 7F07F810 8FA9001C */ lw $t1, 0x1c($sp) +/* 0B4384 7F07F814 00002025 */ move $a0, $zero +/* 0B4388 7F07F818 11200005 */ beqz $t1, .Ljp7F07F830 +/* 0B438C 7F07F81C 00000000 */ nop +/* 0B4390 7F07F820 0FC177C8 */ jal draw_item_in_hand +/* 0B4394 7F07F824 00002825 */ move $a1, $zero +/* 0B4398 7F07F828 10000003 */ b .Ljp7F07F838 +/* 0B439C 7F07F82C 00000000 */ nop +.Ljp7F07F830: +/* 0B43A0 7F07F830 0FC17801 */ jal sub_GAME_7F05DAE4 +/* 0B43A4 7F07F834 00002025 */ move $a0, $zero +.Ljp7F07F838: +/* 0B43A8 7F07F838 0FC1FB08 */ jal check_watch_page_transistion_running +/* 0B43AC 7F07F83C 00000000 */ nop +/* 0B43B0 7F07F840 10400009 */ beqz $v0, .Ljp7F07F868 +/* 0B43B4 7F07F844 3C0D8008 */ lui $t5, %hi(pPlayer) # $t5, 0x8008 +/* 0B43B8 7F07F848 3C0B8008 */ lui $t3, %hi(pPlayer) # $t3, 0x8008 +/* 0B43BC 7F07F84C 8D6BA120 */ lw $t3, %lo(pPlayer)($t3) +/* 0B43C0 7F07F850 240A0001 */ li $t2, 1 +/* 0B43C4 7F07F854 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B43C8 7F07F858 AD6A0200 */ sw $t2, 0x200($t3) +/* 0B43CC 7F07F85C 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B43D0 7F07F860 10000012 */ b .Ljp7F07F8AC +/* 0B43D4 7F07F864 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F868: +/* 0B43D8 7F07F868 8DADA120 */ lw $t5, %lo(pPlayer)($t5) +/* 0B43DC 7F07F86C 240C0007 */ li $t4, 7 +/* 0B43E0 7F07F870 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 0B43E4 7F07F874 ADAC01C8 */ sw $t4, 0x1c8($t5) +/* 0B43E8 7F07F878 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 0B43EC 7F07F87C 240E0001 */ li $t6, 1 +/* 0B43F0 7F07F880 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0B43F4 7F07F884 ADEE01C0 */ sw $t6, 0x1c0($t7) +/* 0B43F8 7F07F888 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0B43FC 7F07F88C 3C088008 */ lui $t0, %hi(pPlayer) # $t0, 0x8008 +/* 0B4400 7F07F890 24190001 */ li $t9, 1 +/* 0B4404 7F07F894 AF0001C4 */ sw $zero, 0x1c4($t8) +/* 0B4408 7F07F898 8D08A120 */ lw $t0, %lo(pPlayer)($t0) +/* 0B440C 7F07F89C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B4410 7F07F8A0 AD19021C */ sw $t9, 0x21c($t0) +/* 0B4414 7F07F8A4 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4418 7F07F8A8 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F8AC: +/* 0B441C 7F07F8AC 24010007 */ li $at, 7 +.Ljp7F07F8B0: +/* 0B4420 7F07F8B0 5441003F */ bnel $v0, $at, .Ljp7F07F9B0 +/* 0B4424 7F07F8B4 24010008 */ li $at, 8 +/* 0B4428 7F07F8B8 8C6901C0 */ lw $t1, 0x1c0($v1) +/* 0B442C 7F07F8BC 24010001 */ li $at, 1 +/* 0B4430 7F07F8C0 15210024 */ bne $t1, $at, .Ljp7F07F954 +/* 0B4434 7F07F8C4 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B4438 7F07F8C8 44817000 */ mtc1 $at, $f14 +/* 0B443C 7F07F8CC 00002025 */ move $a0, $zero +/* 0B4440 7F07F8D0 0FC1F953 */ jal sub_GAME_7F07DF28 +/* 0B4444 7F07F8D4 E7AE0028 */ swc1 $f14, 0x28($sp) +/* 0B4448 7F07F8D8 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B444C 7F07F8DC 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4450 7F07F8E0 C7AE0028 */ lwc1 $f14, 0x28($sp) +/* 0B4454 7F07F8E4 46000306 */ mov.s $f12, $f0 +/* 0B4458 7F07F8E8 8C620220 */ lw $v0, 0x220($v1) +/* 0B445C 7F07F8EC 24010003 */ li $at, 3 +/* 0B4460 7F07F8F0 5040000A */ beql $v0, $zero, .Ljp7F07F91C +/* 0B4464 7F07F8F4 3C0141A0 */ lui $at, 0x41a0 +/* 0B4468 7F07F8F8 10410007 */ beq $v0, $at, .Ljp7F07F918 +/* 0B446C 7F07F8FC 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B4470 7F07F900 44813000 */ mtc1 $at, $f6 +/* 0B4474 7F07F904 C4640258 */ lwc1 $f4, 0x258($v1) +/* 0B4478 7F07F908 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B447C 7F07F90C 44815000 */ mtc1 $at, $f10 +/* 0B4480 7F07F910 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4484 7F07F914 460A4383 */ div.s $f14, $f8, $f10 +.Ljp7F07F918: +/* 0B4488 7F07F918 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +.Ljp7F07F91C: +/* 0B448C 7F07F91C 44818000 */ mtc1 $at, $f16 +/* 0B4490 7F07F920 00000000 */ nop +/* 0B4494 7F07F924 46107080 */ add.s $f2, $f14, $f16 +/* 0B4498 7F07F928 4602003C */ c.lt.s $f0, $f2 +/* 0B449C 7F07F92C 00000000 */ nop +/* 0B44A0 7F07F930 45000002 */ bc1f .Ljp7F07F93C +/* 0B44A4 7F07F934 00000000 */ nop +/* 0B44A8 7F07F938 46001306 */ mov.s $f12, $f2 +.Ljp7F07F93C: +/* 0B44AC 7F07F93C 0FC1F998 */ jal sub_GAME_7F07E03C +/* 0B44B0 7F07F940 E7AE0028 */ swc1 $f14, 0x28($sp) +/* 0B44B4 7F07F944 0FC1FBC7 */ jal sub_GAME_7F07E910 +/* 0B44B8 7F07F948 C7AC0028 */ lwc1 $f12, 0x28($sp) +/* 0B44BC 7F07F94C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B44C0 7F07F950 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +.Ljp7F07F954: +/* 0B44C4 7F07F954 8C620220 */ lw $v0, 0x220($v1) +/* 0B44C8 7F07F958 24010003 */ li $at, 3 +/* 0B44CC 7F07F95C 240B0008 */ li $t3, 8 +/* 0B44D0 7F07F960 10400008 */ beqz $v0, .Ljp7F07F984 +/* 0B44D4 7F07F964 3C0D8008 */ lui $t5, %hi(pPlayer) # $t5, 0x8008 +/* 0B44D8 7F07F968 10410006 */ beq $v0, $at, .Ljp7F07F984 +/* 0B44DC 7F07F96C 240A0001 */ li $t2, 1 +/* 0B44E0 7F07F970 AC6A0200 */ sw $t2, 0x200($v1) +/* 0B44E4 7F07F974 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B44E8 7F07F978 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B44EC 7F07F97C 1000000B */ b .Ljp7F07F9AC +/* 0B44F0 7F07F980 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F984: +/* 0B44F4 7F07F984 AC6B01C8 */ sw $t3, 0x1c8($v1) +/* 0B44F8 7F07F988 8DADA120 */ lw $t5, %lo(pPlayer)($t5) +/* 0B44FC 7F07F98C 240C0001 */ li $t4, 1 +/* 0B4500 7F07F990 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0B4504 7F07F994 ADAC01C0 */ sw $t4, 0x1c0($t5) +/* 0B4508 7F07F998 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0B450C 7F07F99C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B4510 7F07F9A0 ADC001C4 */ sw $zero, 0x1c4($t6) +/* 0B4514 7F07F9A4 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4518 7F07F9A8 8C6201C8 */ lw $v0, 0x1c8($v1) +.Ljp7F07F9AC: +/* 0B451C 7F07F9AC 24010008 */ li $at, 8 +.Ljp7F07F9B0: +/* 0B4520 7F07F9B0 14410069 */ bne $v0, $at, .Ljp7F07FB58 +/* 0B4524 7F07F9B4 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 0B4528 7F07F9B8 AC600200 */ sw $zero, 0x200($v1) +/* 0B452C 7F07F9BC 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 0B4530 7F07F9C0 24010001 */ li $at, 1 +/* 0B4534 7F07F9C4 8DF801C0 */ lw $t8, 0x1c0($t7) +/* 0B4538 7F07F9C8 17010028 */ bne $t8, $at, .Ljp7F07FA6C +/* 0B453C 7F07F9CC 00000000 */ nop +/* 0B4540 7F07F9D0 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B4544 7F07F9D4 24040001 */ li $a0, 1 +/* 0B4548 7F07F9D8 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B454C 7F07F9DC 0FC177BC */ jal get_item_in_hand +/* 0B4550 7F07F9E0 24040001 */ li $a0, 1 +/* 0B4554 7F07F9E4 8FB9001C */ lw $t9, 0x1c($sp) +/* 0B4558 7F07F9E8 5059000B */ beql $v0, $t9, .Ljp7F07FA18 +/* 0B455C 7F07F9EC 8FA8003C */ lw $t0, 0x3c($sp) +/* 0B4560 7F07F9F0 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B4564 7F07F9F4 24040001 */ li $a0, 1 +/* 0B4568 7F07F9F8 50400007 */ beql $v0, $zero, .Ljp7F07FA18 +/* 0B456C 7F07F9FC 8FA8003C */ lw $t0, 0x3c($sp) +/* 0B4570 7F07FA00 0FC177BC */ jal get_item_in_hand +/* 0B4574 7F07FA04 24040001 */ li $a0, 1 +/* 0B4578 7F07FA08 24040001 */ li $a0, 1 +/* 0B457C 7F07FA0C 0FC177C8 */ jal draw_item_in_hand +/* 0B4580 7F07FA10 00402825 */ move $a1, $v0 +/* 0B4584 7F07FA14 8FA8003C */ lw $t0, 0x3c($sp) +.Ljp7F07FA18: +/* 0B4588 7F07FA18 1100004F */ beqz $t0, .Ljp7F07FB58 +/* 0B458C 7F07FA1C 00000000 */ nop +/* 0B4590 7F07FA20 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B4594 7F07FA24 00002025 */ move $a0, $zero +/* 0B4598 7F07FA28 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B459C 7F07FA2C 0FC177BC */ jal get_item_in_hand +/* 0B45A0 7F07FA30 00002025 */ move $a0, $zero +/* 0B45A4 7F07FA34 8FA9001C */ lw $t1, 0x1c($sp) +/* 0B45A8 7F07FA38 10490047 */ beq $v0, $t1, .Ljp7F07FB58 +/* 0B45AC 7F07FA3C 00000000 */ nop +/* 0B45B0 7F07FA40 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B45B4 7F07FA44 00002025 */ move $a0, $zero +/* 0B45B8 7F07FA48 10400043 */ beqz $v0, .Ljp7F07FB58 +/* 0B45BC 7F07FA4C 00000000 */ nop +/* 0B45C0 7F07FA50 0FC177BC */ jal get_item_in_hand +/* 0B45C4 7F07FA54 00002025 */ move $a0, $zero +/* 0B45C8 7F07FA58 00002025 */ move $a0, $zero +/* 0B45CC 7F07FA5C 0FC177C8 */ jal draw_item_in_hand +/* 0B45D0 7F07FA60 00402825 */ move $a1, $v0 +/* 0B45D4 7F07FA64 1000003C */ b .Ljp7F07FB58 +/* 0B45D8 7F07FA68 00000000 */ nop +.Ljp7F07FA6C: +/* 0B45DC 7F07FA6C 0FC1F9A3 */ jal sub_GAME_7F07E068 +/* 0B45E0 7F07FA70 00000000 */ nop +/* 0B45E4 7F07FA74 14400038 */ bnez $v0, .Ljp7F07FB58 +/* 0B45E8 7F07FA78 00000000 */ nop +/* 0B45EC 7F07FA7C 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B45F0 7F07FA80 24040001 */ li $a0, 1 +/* 0B45F4 7F07FA84 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B45F8 7F07FA88 0FC177BC */ jal get_item_in_hand +/* 0B45FC 7F07FA8C 24040001 */ li $a0, 1 +/* 0B4600 7F07FA90 8FAA001C */ lw $t2, 0x1c($sp) +/* 0B4604 7F07FA94 144A0030 */ bne $v0, $t2, .Ljp7F07FB58 +/* 0B4608 7F07FA98 00000000 */ nop +/* 0B460C 7F07FA9C 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B4610 7F07FAA0 24040001 */ li $a0, 1 +/* 0B4614 7F07FAA4 1040002C */ beqz $v0, .Ljp7F07FB58 +/* 0B4618 7F07FAA8 8FAB003C */ lw $t3, 0x3c($sp) +/* 0B461C 7F07FAAC 1160000D */ beqz $t3, .Ljp7F07FAE4 +/* 0B4620 7F07FAB0 00000000 */ nop +/* 0B4624 7F07FAB4 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B4628 7F07FAB8 00002025 */ move $a0, $zero +/* 0B462C 7F07FABC AFA20018 */ sw $v0, 0x18($sp) +/* 0B4630 7F07FAC0 0FC177BC */ jal get_item_in_hand +/* 0B4634 7F07FAC4 00002025 */ move $a0, $zero +/* 0B4638 7F07FAC8 8FAC0018 */ lw $t4, 0x18($sp) +/* 0B463C 7F07FACC 144C0022 */ bne $v0, $t4, .Ljp7F07FB58 +/* 0B4640 7F07FAD0 00000000 */ nop +/* 0B4644 7F07FAD4 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B4648 7F07FAD8 00002025 */ move $a0, $zero +/* 0B464C 7F07FADC 1040001E */ beqz $v0, .Ljp7F07FB58 +/* 0B4650 7F07FAE0 00000000 */ nop +.Ljp7F07FAE4: +/* 0B4654 7F07FAE4 0FC17801 */ jal sub_GAME_7F05DAE4 +/* 0B4658 7F07FAE8 24040001 */ li $a0, 1 +/* 0B465C 7F07FAEC 8FAD003C */ lw $t5, 0x3c($sp) +/* 0B4660 7F07FAF0 51A00004 */ beql $t5, $zero, .Ljp7F07FB04 +/* 0B4664 7F07FAF4 24040008 */ li $a0, 8 +/* 0B4668 7F07FAF8 0FC17801 */ jal sub_GAME_7F05DAE4 +/* 0B466C 7F07FAFC 00002025 */ move $a0, $zero +/* 0B4670 7F07FB00 24040008 */ li $a0, 8 +.Ljp7F07FB04: +/* 0B4674 7F07FB04 0FC1AAE5 */ jal set_unset_bitflags +/* 0B4678 7F07FB08 24050001 */ li $a1, 1 +/* 0B467C 7F07FB0C 24040004 */ li $a0, 4 +/* 0B4680 7F07FB10 0FC1A5B8 */ jal set_unset_ammo_on_screen_setting +/* 0B4684 7F07FB14 24050001 */ li $a1, 1 +/* 0B4688 7F07FB18 0FC22AA6 */ jal unset_flags_in_BONDdata_stationary_intro_cam +/* 0B468C 7F07FB1C 24040001 */ li $a0, 1 +/* 0B4690 7F07FB20 0FC22C41 */ jal sub_GAME_7F08A928 +/* 0B4694 7F07FB24 24040001 */ li $a0, 1 +/* 0B4698 7F07FB28 24040004 */ li $a0, 4 +/* 0B469C 7F07FB2C 0FC15997 */ jal set_unset_clock_lock_bits +/* 0B46A0 7F07FB30 24050001 */ li $a1, 1 +/* 0B46A4 7F07FB34 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0B46A8 7F07FB38 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0B46AC 7F07FB3C 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 0B46B0 7F07FB40 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0B46B4 7F07FB44 ADC001C8 */ sw $zero, 0x1c8($t6) +/* 0B46B8 7F07FB48 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 0B46BC 7F07FB4C ADE001C0 */ sw $zero, 0x1c0($t7) +/* 0B46C0 7F07FB50 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0B46C4 7F07FB54 AF0001C4 */ sw $zero, 0x1c4($t8) +.Ljp7F07FB58: +/* 0B46C8 7F07FB58 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B46CC 7F07FB5C 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B46D0 7F07FB60 24010009 */ li $at, 9 +/* 0B46D4 7F07FB64 24040001 */ li $a0, 1 +/* 0B46D8 7F07FB68 8C7901C8 */ lw $t9, 0x1c8($v1) +/* 0B46DC 7F07FB6C 17210023 */ bne $t9, $at, .Ljp7F07FBFC +/* 0B46E0 7F07FB70 00000000 */ nop +/* 0B46E4 7F07FB74 0FC177BC */ jal get_item_in_hand +/* 0B46E8 7F07FB78 AC600200 */ sw $zero, 0x200($v1) +/* 0B46EC 7F07FB7C AFA2001C */ sw $v0, 0x1c($sp) +/* 0B46F0 7F07FB80 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B46F4 7F07FB84 24040001 */ li $a0, 1 +/* 0B46F8 7F07FB88 8FA8001C */ lw $t0, 0x1c($sp) +/* 0B46FC 7F07FB8C 1048001B */ beq $v0, $t0, .Ljp7F07FBFC +/* 0B4700 7F07FB90 00000000 */ nop +/* 0B4704 7F07FB94 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B4708 7F07FB98 24040001 */ li $a0, 1 +/* 0B470C 7F07FB9C 10400017 */ beqz $v0, .Ljp7F07FBFC +/* 0B4710 7F07FBA0 8FA9003C */ lw $t1, 0x3c($sp) +/* 0B4714 7F07FBA4 1120000C */ beqz $t1, .Ljp7F07FBD8 +/* 0B4718 7F07FBA8 00000000 */ nop +/* 0B471C 7F07FBAC 0FC177BC */ jal get_item_in_hand +/* 0B4720 7F07FBB0 00002025 */ move $a0, $zero +/* 0B4724 7F07FBB4 AFA20018 */ sw $v0, 0x18($sp) +/* 0B4728 7F07FBB8 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B472C 7F07FBBC 00002025 */ move $a0, $zero +/* 0B4730 7F07FBC0 8FAA0018 */ lw $t2, 0x18($sp) +/* 0B4734 7F07FBC4 104A000D */ beq $v0, $t2, .Ljp7F07FBFC +/* 0B4738 7F07FBC8 00000000 */ nop +/* 0B473C 7F07FBCC 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B4740 7F07FBD0 00002025 */ move $a0, $zero +/* 0B4744 7F07FBD4 10400009 */ beqz $v0, .Ljp7F07FBFC +.Ljp7F07FBD8: +/* 0B4748 7F07FBD8 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B474C 7F07FBDC 2442A120 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5ee0 +/* 0B4750 7F07FBE0 8C4C0000 */ lw $t4, ($v0) +/* 0B4754 7F07FBE4 240B0008 */ li $t3, 8 +/* 0B4758 7F07FBE8 AD8B01C8 */ sw $t3, 0x1c8($t4) +/* 0B475C 7F07FBEC 8C4D0000 */ lw $t5, ($v0) +/* 0B4760 7F07FBF0 ADA001C0 */ sw $zero, 0x1c0($t5) +/* 0B4764 7F07FBF4 8C4E0000 */ lw $t6, ($v0) +/* 0B4768 7F07FBF8 ADC001C4 */ sw $zero, 0x1c4($t6) +.Ljp7F07FBFC: +/* 0B476C 7F07FBFC 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B4770 7F07FC00 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4774 7F07FC04 2401000A */ li $at, 10 +/* 0B4778 7F07FC08 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0B477C 7F07FC0C 8C6F01C8 */ lw $t7, 0x1c8($v1) +/* 0B4780 7F07FC10 15E1002D */ bne $t7, $at, .Ljp7F07FCC8 +/* 0B4784 7F07FC14 00000000 */ nop +/* 0B4788 7F07FC18 AC600200 */ sw $zero, 0x200($v1) +/* 0B478C 7F07FC1C 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0B4790 7F07FC20 24010001 */ li $at, 1 +/* 0B4794 7F07FC24 8F1901C0 */ lw $t9, 0x1c0($t8) +/* 0B4798 7F07FC28 17210005 */ bne $t9, $at, .Ljp7F07FC40 +/* 0B479C 7F07FC2C 00000000 */ nop +/* 0B47A0 7F07FC30 0FC1F953 */ jal sub_GAME_7F07DF28 +/* 0B47A4 7F07FC34 00002025 */ move $a0, $zero +/* 0B47A8 7F07FC38 0FC1F998 */ jal sub_GAME_7F07E03C +/* 0B47AC 7F07FC3C 46000306 */ mov.s $f12, $f0 +.Ljp7F07FC40: +/* 0B47B0 7F07FC40 0FC177BC */ jal get_item_in_hand +/* 0B47B4 7F07FC44 24040001 */ li $a0, 1 +/* 0B47B8 7F07FC48 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B47BC 7F07FC4C 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B47C0 7F07FC50 24040001 */ li $a0, 1 +/* 0B47C4 7F07FC54 8FA8001C */ lw $t0, 0x1c($sp) +/* 0B47C8 7F07FC58 1048001B */ beq $v0, $t0, .Ljp7F07FCC8 +/* 0B47CC 7F07FC5C 00000000 */ nop +/* 0B47D0 7F07FC60 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B47D4 7F07FC64 24040001 */ li $a0, 1 +/* 0B47D8 7F07FC68 10400017 */ beqz $v0, .Ljp7F07FCC8 +/* 0B47DC 7F07FC6C 8FA9003C */ lw $t1, 0x3c($sp) +/* 0B47E0 7F07FC70 1120000C */ beqz $t1, .Ljp7F07FCA4 +/* 0B47E4 7F07FC74 00000000 */ nop +/* 0B47E8 7F07FC78 0FC177BC */ jal get_item_in_hand +/* 0B47EC 7F07FC7C 00002025 */ move $a0, $zero +/* 0B47F0 7F07FC80 AFA20018 */ sw $v0, 0x18($sp) +/* 0B47F4 7F07FC84 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B47F8 7F07FC88 00002025 */ move $a0, $zero +/* 0B47FC 7F07FC8C 8FAA0018 */ lw $t2, 0x18($sp) +/* 0B4800 7F07FC90 104A000D */ beq $v0, $t2, .Ljp7F07FCC8 +/* 0B4804 7F07FC94 00000000 */ nop +/* 0B4808 7F07FC98 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B480C 7F07FC9C 00002025 */ move $a0, $zero +/* 0B4810 7F07FCA0 10400009 */ beqz $v0, .Ljp7F07FCC8 +.Ljp7F07FCA4: +/* 0B4814 7F07FCA4 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B4818 7F07FCA8 2442A120 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5ee0 +/* 0B481C 7F07FCAC 8C4C0000 */ lw $t4, ($v0) +/* 0B4820 7F07FCB0 240B0008 */ li $t3, 8 +/* 0B4824 7F07FCB4 AD8B01C8 */ sw $t3, 0x1c8($t4) +/* 0B4828 7F07FCB8 8C4D0000 */ lw $t5, ($v0) +/* 0B482C 7F07FCBC ADA001C0 */ sw $zero, 0x1c0($t5) +/* 0B4830 7F07FCC0 8C4E0000 */ lw $t6, ($v0) +/* 0B4834 7F07FCC4 ADC001C4 */ sw $zero, 0x1c4($t6) +.Ljp7F07FCC8: +/* 0B4838 7F07FCC8 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B483C 7F07FCCC 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4840 7F07FCD0 2401000B */ li $at, 11 +/* 0B4844 7F07FCD4 24040001 */ li $a0, 1 +/* 0B4848 7F07FCD8 8C6F01C8 */ lw $t7, 0x1c8($v1) +/* 0B484C 7F07FCDC 15E10024 */ bne $t7, $at, .Ljp7F07FD70 +/* 0B4850 7F07FCE0 00000000 */ nop +/* 0B4854 7F07FCE4 0FC177BC */ jal get_item_in_hand +/* 0B4858 7F07FCE8 AC600200 */ sw $zero, 0x200($v1) +/* 0B485C 7F07FCEC AFA2001C */ sw $v0, 0x1c($sp) +/* 0B4860 7F07FCF0 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B4864 7F07FCF4 24040001 */ li $a0, 1 +/* 0B4868 7F07FCF8 8FB8001C */ lw $t8, 0x1c($sp) +/* 0B486C 7F07FCFC 1458001C */ bne $v0, $t8, .Ljp7F07FD70 +/* 0B4870 7F07FD00 00000000 */ nop +/* 0B4874 7F07FD04 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B4878 7F07FD08 24040001 */ li $a0, 1 +/* 0B487C 7F07FD0C 10400018 */ beqz $v0, .Ljp7F07FD70 +/* 0B4880 7F07FD10 8FB9003C */ lw $t9, 0x3c($sp) +/* 0B4884 7F07FD14 1320000C */ beqz $t9, .Ljp7F07FD48 +/* 0B4888 7F07FD18 00000000 */ nop +/* 0B488C 7F07FD1C 0FC177BC */ jal get_item_in_hand +/* 0B4890 7F07FD20 00002025 */ move $a0, $zero +/* 0B4894 7F07FD24 AFA20018 */ sw $v0, 0x18($sp) +/* 0B4898 7F07FD28 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0B489C 7F07FD2C 00002025 */ move $a0, $zero +/* 0B48A0 7F07FD30 8FA80018 */ lw $t0, 0x18($sp) +/* 0B48A4 7F07FD34 1448000E */ bne $v0, $t0, .Ljp7F07FD70 +/* 0B48A8 7F07FD38 00000000 */ nop +/* 0B48AC 7F07FD3C 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B48B0 7F07FD40 00002025 */ move $a0, $zero +/* 0B48B4 7F07FD44 1040000A */ beqz $v0, .Ljp7F07FD70 +.Ljp7F07FD48: +/* 0B48B8 7F07FD48 3C0A8008 */ lui $t2, %hi(pPlayer) # $t2, 0x8008 +/* 0B48BC 7F07FD4C 8D4AA120 */ lw $t2, %lo(pPlayer)($t2) +/* 0B48C0 7F07FD50 24090001 */ li $t1, 1 +/* 0B48C4 7F07FD54 3C0B8008 */ lui $t3, %hi(pPlayer) # $t3, 0x8008 +/* 0B48C8 7F07FD58 AD4901C8 */ sw $t1, 0x1c8($t2) +/* 0B48CC 7F07FD5C 8D6BA120 */ lw $t3, %lo(pPlayer)($t3) +/* 0B48D0 7F07FD60 3C0C8008 */ lui $t4, %hi(pPlayer) # $t4, 0x8008 +/* 0B48D4 7F07FD64 AD6001C0 */ sw $zero, 0x1c0($t3) +/* 0B48D8 7F07FD68 8D8CA120 */ lw $t4, %lo(pPlayer)($t4) +/* 0B48DC 7F07FD6C AD8001C4 */ sw $zero, 0x1c4($t4) +.Ljp7F07FD70: +/* 0B48E0 7F07FD70 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B48E4 7F07FD74 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B48E8 7F07FD78 2401000D */ li $at, 13 +/* 0B48EC 7F07FD7C 24040001 */ li $a0, 1 +/* 0B48F0 7F07FD80 8C6D01C8 */ lw $t5, 0x1c8($v1) +/* 0B48F4 7F07FD84 15A1001B */ bne $t5, $at, .Ljp7F07FDF4 +/* 0B48F8 7F07FD88 00000000 */ nop +/* 0B48FC 7F07FD8C 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B4900 7F07FD90 AC600200 */ sw $zero, 0x200($v1) +/* 0B4904 7F07FD94 10400017 */ beqz $v0, .Ljp7F07FDF4 +/* 0B4908 7F07FD98 00000000 */ nop +/* 0B490C 7F07FD9C 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 0B4910 7F07FDA0 00002025 */ move $a0, $zero +/* 0B4914 7F07FDA4 10400013 */ beqz $v0, .Ljp7F07FDF4 +/* 0B4918 7F07FDA8 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0B491C 7F07FDAC 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4920 7F07FDB0 24010005 */ li $at, 5 +/* 0B4924 7F07FDB4 8C620C3C */ lw $v0, 0xc3c($v1) +/* 0B4928 7F07FDB8 1041000E */ beq $v0, $at, .Ljp7F07FDF4 +/* 0B492C 7F07FDBC 24010006 */ li $at, 6 +/* 0B4930 7F07FDC0 1041000C */ beq $v0, $at, .Ljp7F07FDF4 +/* 0B4934 7F07FDC4 24010007 */ li $at, 7 +/* 0B4938 7F07FDC8 1041000A */ beq $v0, $at, .Ljp7F07FDF4 +/* 0B493C 7F07FDCC 24010008 */ li $at, 8 +/* 0B4940 7F07FDD0 10410008 */ beq $v0, $at, .Ljp7F07FDF4 +/* 0B4944 7F07FDD4 240E0001 */ li $t6, 1 +/* 0B4948 7F07FDD8 AC6E01C8 */ sw $t6, 0x1c8($v1) +/* 0B494C 7F07FDDC 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 0B4950 7F07FDE0 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 0B4954 7F07FDE4 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0B4958 7F07FDE8 ADE001C0 */ sw $zero, 0x1c0($t7) +/* 0B495C 7F07FDEC 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0B4960 7F07FDF0 AF0001C4 */ sw $zero, 0x1c4($t8) +.Ljp7F07FDF4: +/* 0B4964 7F07FDF4 0FC1F9AD */ jal sub_GAME_7F07E090 +/* 0B4968 7F07FDF8 00000000 */ nop +/* 0B496C 7F07FDFC 0FC1FBDC */ jal sub_GAME_7F07E964 +/* 0B4970 7F07FE00 00000000 */ nop +/* 0B4974 7F07FE04 0FC1FB14 */ jal sub_GAME_7F07E62C +/* 0B4978 7F07FE08 00000000 */ nop +/* 0B497C 7F07FE0C 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 0B4980 7F07FE10 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 0B4984 7F07FE14 8F2201C8 */ lw $v0, 0x1c8($t9) +/* 0B4988 7F07FE18 24010005 */ li $at, 5 +.Ljp7F07FE1C: +/* 0B498C 7F07FE1C 54410008 */ bnel $v0, $at, .Ljp7F07FE40 +/* 0B4990 7F07FE20 2401000C */ li $at, 12 +/* 0B4994 7F07FE24 0FC3020C */ jal set_controls_locked_flag +/* 0B4998 7F07FE28 24040001 */ li $a0, 1 +/* 0B499C 7F07FE2C 0FC29D88 */ jal sub_GAME_7F0A6A80 +/* 0B49A0 7F07FE30 00000000 */ nop +/* 0B49A4 7F07FE34 1000000B */ b .Ljp7F07FE64 +/* 0B49A8 7F07FE38 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B49AC 7F07FE3C 2401000C */ li $at, 12 +.Ljp7F07FE40: +/* 0B49B0 7F07FE40 14410005 */ bne $v0, $at, .Ljp7F07FE58 +/* 0B49B4 7F07FE44 00000000 */ nop +/* 0B49B8 7F07FE48 0FC3020C */ jal set_controls_locked_flag +/* 0B49BC 7F07FE4C 24040001 */ li $a0, 1 +/* 0B49C0 7F07FE50 10000004 */ b .Ljp7F07FE64 +/* 0B49C4 7F07FE54 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F07FE58: +/* 0B49C8 7F07FE58 0FC3020C */ jal set_controls_locked_flag +/* 0B49CC 7F07FE5C 00002025 */ move $a0, $zero +/* 0B49D0 7F07FE60 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F07FE64: +/* 0B49D4 7F07FE64 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0B49D8 7F07FE68 03E00008 */ jr $ra +/* 0B49DC 7F07FE6C 00000000 */ nop +) +#endif + +#endif + + +void set_open_close_solo_watch_menu_to1(void) { + pPlayer->open_close_solo_watch_menu = 1; +} + + + + + + +#ifdef NONMATCHING +void trigger_solo_watch_menu(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005508C +.word 0x3fd9999a /*1.7*/ +glabel D_80055090 +.word 0x3f8ccccd /*1.1*/ +.text +glabel trigger_solo_watch_menu +/* 0B43A4 7F07F874 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0B43A8 7F07F878 AFB40038 */ sw $s4, 0x38($sp) +/* 0B43AC 7F07F87C 3C148008 */ lui $s4, %hi(pPlayer) +/* 0B43B0 7F07F880 2694A0B0 */ addiu $s4, %lo(pPlayer) # addiu $s4, $s4, -0x5f50 +/* 0B43B4 7F07F884 8E830000 */ lw $v1, ($s4) +/* 0B43B8 7F07F888 AFBF003C */ sw $ra, 0x3c($sp) +/* 0B43BC 7F07F88C AFB30034 */ sw $s3, 0x34($sp) +/* 0B43C0 7F07F890 AFB20030 */ sw $s2, 0x30($sp) +/* 0B43C4 7F07F894 AFB1002C */ sw $s1, 0x2c($sp) +/* 0B43C8 7F07F898 AFB00028 */ sw $s0, 0x28($sp) +/* 0B43CC 7F07F89C 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B43D0 7F07F8A0 24050001 */ li $a1, 1 +/* 0B43D4 7F07F8A4 14400080 */ bnez $v0, .L7F07FAA8 +/* 0B43D8 7F07F8A8 00000000 */ nop +/* 0B43DC 7F07F8AC 148000FD */ bnez $a0, .L7F07FCA4 +/* 0B43E0 7F07F8B0 3C028003 */ lui $v0, %hi(watch_transition_time) +/* 0B43E4 7F07F8B4 3C018005 */ lui $at, %hi(D_8005508C) +/* 0B43E8 7F07F8B8 C420508C */ lwc1 $f0, %lo(D_8005508C)($at) +/* 0B43EC 7F07F8BC 244265A8 */ addiu $v0, %lo(watch_transition_time) # addiu $v0, $v0, 0x65a8 +/* 0B43F0 7F07F8C0 3C018005 */ lui $at, %hi(D_80055090) +/* 0B43F4 7F07F8C4 C4265090 */ lwc1 $f6, %lo(D_80055090)($at) +/* 0B43F8 7F07F8C8 C4440000 */ lwc1 $f4, ($v0) +/* 0B43FC 7F07F8CC 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4400 7F07F8D0 E4480000 */ swc1 $f8, ($v0) +/* 0B4404 7F07F8D4 C44A0000 */ lwc1 $f10, ($v0) +/* 0B4408 7F07F8D8 460A003C */ c.lt.s $f0, $f10 +/* 0B440C 7F07F8DC 00000000 */ nop +/* 0B4410 7F07F8E0 45000002 */ bc1f .L7F07F8EC +/* 0B4414 7F07F8E4 00000000 */ nop +/* 0B4418 7F07F8E8 E4400000 */ swc1 $f0, ($v0) +.L7F07F8EC: +/* 0B441C 7F07F8EC 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B4420 7F07F8F0 24040001 */ li $a0, 1 +/* 0B4424 7F07F8F4 50400013 */ beql $v0, $zero, .L7F07F944 +/* 0B4428 7F07F8F8 8E8F0000 */ lw $t7, ($s4) +/* 0B442C 7F07F8FC 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B4430 7F07F900 00002025 */ move $a0, $zero +/* 0B4434 7F07F904 5040000F */ beql $v0, $zero, .L7F07F944 +/* 0B4438 7F07F908 8E8F0000 */ lw $t7, ($s4) +/* 0B443C 7F07F90C 8E830000 */ lw $v1, ($s4) +/* 0B4440 7F07F910 24010005 */ li $at, 5 +/* 0B4444 7F07F914 8C620C3C */ lw $v0, 0xc3c($v1) +/* 0B4448 7F07F918 10410009 */ beq $v0, $at, .L7F07F940 +/* 0B444C 7F07F91C 24010006 */ li $at, 6 +/* 0B4450 7F07F920 10410007 */ beq $v0, $at, .L7F07F940 +/* 0B4454 7F07F924 24010007 */ li $at, 7 +/* 0B4458 7F07F928 10410005 */ beq $v0, $at, .L7F07F940 +/* 0B445C 7F07F92C 24060008 */ li $a2, 8 +/* 0B4460 7F07F930 10C20003 */ beq $a2, $v0, .L7F07F940 +/* 0B4464 7F07F934 24050001 */ li $a1, 1 +/* 0B4468 7F07F938 10000004 */ b .L7F07F94C +/* 0B446C 7F07F93C AC6501C8 */ sw $a1, 0x1c8($v1) +.L7F07F940: +/* 0B4470 7F07F940 8E8F0000 */ lw $t7, ($s4) +.L7F07F944: +/* 0B4474 7F07F944 240E000D */ li $t6, 13 +/* 0B4478 7F07F948 ADEE01C8 */ sw $t6, 0x1c8($t7) +.L7F07F94C: +/* 0B447C 7F07F94C 8E980000 */ lw $t8, ($s4) +/* 0B4480 7F07F950 AF0001C0 */ sw $zero, 0x1c0($t8) +/* 0B4484 7F07F954 8E990000 */ lw $t9, ($s4) +/* 0B4488 7F07F958 0FC1F7BF */ jal sub_GAME_7F07DEFC +/* 0B448C 7F07F95C AF2001C4 */ sw $zero, 0x1c4($t9) +/* 0B4490 7F07F960 0FC1F941 */ jal sub_GAME_7F07E504 +/* 0B4494 7F07F964 00000000 */ nop +/* 0B4498 7F07F968 0FC228BF */ jal get_BONDdata_watch_armor +/* 0B449C 7F07F96C 00000000 */ nop +/* 0B44A0 7F07F970 8E840000 */ lw $a0, ($s4) +/* 0B44A4 7F07F974 44070000 */ mfc1 $a3, $f0 +/* 0B44A8 7F07F978 2405002E */ li $a1, 46 +/* 0B44AC 7F07F97C 24060001 */ li $a2, 1 +/* 0B44B0 7F07F980 0FC28BCC */ jal sub_GAME_7F0A2F30 +/* 0B44B4 7F07F984 248412B8 */ addiu $a0, $a0, 0x12b8 +/* 0B44B8 7F07F988 8E830000 */ lw $v1, ($s4) +/* 0B44BC 7F07F98C 3C018000 */ lui $at, (0x800012B8 >> 16) +/* 0B44C0 7F07F990 342112B8 */ ori $at, (0x800012B8 & 0xFFFF) # ori $at, $at, 0x12b8 +/* 0B44C4 7F07F994 2406002E */ li $a2, 46 +/* 0B44C8 7F07F998 00612821 */ addu $a1, $v1, $at +/* 0B44CC 7F07F99C 0FC28CCC */ jal sub_GAME_7F0A3330 +/* 0B44D0 7F07F9A0 246419F8 */ addiu $a0, $v1, 0x19f8 +/* 0B44D4 7F07F9A4 0FC228BB */ jal get_BONDdata_watch_health +/* 0B44D8 7F07F9A8 00000000 */ nop +/* 0B44DC 7F07F9AC 8E840000 */ lw $a0, ($s4) +/* 0B44E0 7F07F9B0 44070000 */ mfc1 $a3, $f0 +/* 0B44E4 7F07F9B4 2405002E */ li $a1, 46 +/* 0B44E8 7F07F9B8 2406FFFF */ li $a2, -1 +/* 0B44EC 7F07F9BC 0FC28BCC */ jal sub_GAME_7F0A2F30 +/* 0B44F0 7F07F9C0 24841598 */ addiu $a0, $a0, 0x1598 +/* 0B44F4 7F07F9C4 8E830000 */ lw $v1, ($s4) +/* 0B44F8 7F07F9C8 3C018000 */ lui $at, (0x80001598 >> 16) +/* 0B44FC 7F07F9CC 34211598 */ ori $at, (0x80001598 & 0xFFFF) # ori $at, $at, 0x1598 +/* 0B4500 7F07F9D0 2406002E */ li $a2, 46 +/* 0B4504 7F07F9D4 00612821 */ addu $a1, $v1, $at +/* 0B4508 7F07F9D8 0FC28CCC */ jal sub_GAME_7F0A3330 +/* 0B450C 7F07F9DC 24642128 */ addiu $a0, $v1, 0x2128 +/* 0B4510 7F07F9E0 0FC29A6A */ jal sub_GAME_7F0A69A8 +/* 0B4514 7F07F9E4 00000000 */ nop +/* 0B4518 7F07F9E8 8E830000 */ lw $v1, ($s4) +/* 0B451C 7F07F9EC 00008025 */ move $s0, $zero +/* 0B4520 7F07F9F0 24732858 */ addiu $s3, $v1, 0x2858 +/* 0B4524 7F07F9F4 24711878 */ addiu $s1, $v1, 0x1878 +.L7F07F9F8: +/* 0B4528 7F07F9F8 24080014 */ li $t0, 20 +/* 0B452C 7F07F9FC 2409FED5 */ li $t1, -299 +/* 0B4530 7F07FA00 240A0136 */ li $t2, 310 +/* 0B4534 7F07FA04 02209025 */ move $s2, $s1 +/* 0B4538 7F07FA08 AFAA0018 */ sw $t2, 0x18($sp) +/* 0B453C 7F07FA0C AFA90014 */ sw $t1, 0x14($sp) +/* 0B4540 7F07FA10 AFA80010 */ sw $t0, 0x10($sp) +/* 0B4544 7F07FA14 02202025 */ move $a0, $s1 +/* 0B4548 7F07FA18 02002825 */ move $a1, $s0 +/* 0B454C 7F07FA1C 00003025 */ move $a2, $zero +/* 0B4550 7F07FA20 0FC28EAE */ jal sub_GAME_7F0A3AB8 +/* 0B4554 7F07FA24 24070064 */ li $a3, 100 +/* 0B4558 7F07FA28 3C018000 */ lui $at, 0x8000 +/* 0B455C 7F07FA2C 00408825 */ move $s1, $v0 +/* 0B4560 7F07FA30 02412821 */ addu $a1, $s2, $at +/* 0B4564 7F07FA34 0FC28ED0 */ jal sub_GAME_7F0A3B40 +/* 0B4568 7F07FA38 02602025 */ move $a0, $s3 +/* 0B456C 7F07FA3C 2610007D */ addiu $s0, $s0, 0x7d +/* 0B4570 7F07FA40 24010271 */ li $at, 625 +/* 0B4574 7F07FA44 1601FFEC */ bne $s0, $at, .L7F07F9F8 +/* 0B4578 7F07FA48 00409825 */ move $s3, $v0 +/* 0B457C 7F07FA4C 3C10B800 */ lui $s0, 0xb800 +/* 0B4580 7F07FA50 AC500000 */ sw $s0, ($v0) +/* 0B4584 7F07FA54 AC400004 */ sw $zero, 4($v0) +/* 0B4588 7F07FA58 8E830000 */ lw $v1, ($s4) +/* 0B458C 7F07FA5C 240B0014 */ li $t3, 20 +/* 0B4590 7F07FA60 240CFE34 */ li $t4, -460 +/* 0B4594 7F07FA64 246419B8 */ addiu $a0, $v1, 0x19b8 +/* 0B4598 7F07FA68 00809025 */ move $s2, $a0 +/* 0B459C 7F07FA6C AFAC0014 */ sw $t4, 0x14($sp) +/* 0B45A0 7F07FA70 AFAB0010 */ sw $t3, 0x10($sp) +/* 0B45A4 7F07FA74 AFA00018 */ sw $zero, 0x18($sp) +/* 0B45A8 7F07FA78 00002825 */ move $a1, $zero +/* 0B45AC 7F07FA7C 00003025 */ move $a2, $zero +/* 0B45B0 7F07FA80 24070398 */ li $a3, 920 +/* 0B45B4 7F07FA84 0FC28EAE */ jal sub_GAME_7F0A3AB8 +/* 0B45B8 7F07FA88 24732998 */ addiu $s3, $v1, 0x2998 +/* 0B45BC 7F07FA8C 3C018000 */ lui $at, 0x8000 +/* 0B45C0 7F07FA90 02412821 */ addu $a1, $s2, $at +/* 0B45C4 7F07FA94 0FC28ED0 */ jal sub_GAME_7F0A3B40 +/* 0B45C8 7F07FA98 02602025 */ move $a0, $s3 +/* 0B45CC 7F07FA9C AC500000 */ sw $s0, ($v0) +/* 0B45D0 7F07FAA0 10000080 */ b .L7F07FCA4 +/* 0B45D4 7F07FAA4 AC400004 */ sw $zero, 4($v0) +.L7F07FAA8: +/* 0B45D8 7F07FAA8 14A20008 */ bne $a1, $v0, .L7F07FACC +/* 0B45DC 7F07FAAC 24010002 */ li $at, 2 +/* 0B45E0 7F07FAB0 240D0009 */ li $t5, 9 +/* 0B45E4 7F07FAB4 AC6D01C8 */ sw $t5, 0x1c8($v1) +/* 0B45E8 7F07FAB8 8E8E0000 */ lw $t6, ($s4) +/* 0B45EC 7F07FABC ADC001C0 */ sw $zero, 0x1c0($t6) +/* 0B45F0 7F07FAC0 8E8F0000 */ lw $t7, ($s4) +/* 0B45F4 7F07FAC4 10000077 */ b .L7F07FCA4 +/* 0B45F8 7F07FAC8 ADE001C4 */ sw $zero, 0x1c4($t7) +.L7F07FACC: +/* 0B45FC 7F07FACC 14410008 */ bne $v0, $at, .L7F07FAF0 +/* 0B4600 7F07FAD0 24060003 */ li $a2, 3 +/* 0B4604 7F07FAD4 2418000A */ li $t8, 10 +/* 0B4608 7F07FAD8 AC7801C8 */ sw $t8, 0x1c8($v1) +/* 0B460C 7F07FADC 8E990000 */ lw $t9, ($s4) +/* 0B4610 7F07FAE0 AF2001C0 */ sw $zero, 0x1c0($t9) +/* 0B4614 7F07FAE4 8E880000 */ lw $t0, ($s4) +/* 0B4618 7F07FAE8 1000006E */ b .L7F07FCA4 +/* 0B461C 7F07FAEC AD0001C4 */ sw $zero, 0x1c4($t0) +.L7F07FAF0: +/* 0B4620 7F07FAF0 14C20008 */ bne $a2, $v0, .L7F07FB14 +/* 0B4624 7F07FAF4 24070004 */ li $a3, 4 +/* 0B4628 7F07FAF8 24090007 */ li $t1, 7 +/* 0B462C 7F07FAFC AC6901C8 */ sw $t1, 0x1c8($v1) +/* 0B4630 7F07FB00 8E8A0000 */ lw $t2, ($s4) +/* 0B4634 7F07FB04 AD4001C0 */ sw $zero, 0x1c0($t2) +/* 0B4638 7F07FB08 8E8B0000 */ lw $t3, ($s4) +/* 0B463C 7F07FB0C 10000065 */ b .L7F07FCA4 +/* 0B4640 7F07FB10 AD6001C4 */ sw $zero, 0x1c4($t3) +.L7F07FB14: +/* 0B4644 7F07FB14 14E20008 */ bne $a3, $v0, .L7F07FB38 +/* 0B4648 7F07FB18 24010005 */ li $at, 5 +/* 0B464C 7F07FB1C 240C0006 */ li $t4, 6 +/* 0B4650 7F07FB20 AC6C01C8 */ sw $t4, 0x1c8($v1) +/* 0B4654 7F07FB24 8E8D0000 */ lw $t5, ($s4) +/* 0B4658 7F07FB28 ADA001C0 */ sw $zero, 0x1c0($t5) +/* 0B465C 7F07FB2C 8E8E0000 */ lw $t6, ($s4) +/* 0B4660 7F07FB30 1000005C */ b .L7F07FCA4 +/* 0B4664 7F07FB34 ADC001C4 */ sw $zero, 0x1c4($t6) +.L7F07FB38: +/* 0B4668 7F07FB38 54410010 */ bnel $v0, $at, .L7F07FB7C +/* 0B466C 7F07FB3C 2401000C */ li $at, 12 +/* 0B4670 7F07FB40 0FC07549 */ jal deleteCurrentSelectedFolder +/* 0B4674 7F07FB44 00000000 */ nop +/* 0B4678 7F07FB48 0FC304D0 */ jal sub_GAME_7F0C1340 +/* 0B467C 7F07FB4C 00000000 */ nop +/* 0B4680 7F07FB50 8E980000 */ lw $t8, ($s4) +/* 0B4684 7F07FB54 240F000C */ li $t7, 12 +/* 0B4688 7F07FB58 AF0F01C8 */ sw $t7, 0x1c8($t8) +/* 0B468C 7F07FB5C 8E990000 */ lw $t9, ($s4) +/* 0B4690 7F07FB60 AF2001C0 */ sw $zero, 0x1c0($t9) +/* 0B4694 7F07FB64 8E880000 */ lw $t0, ($s4) +/* 0B4698 7F07FB68 AD0001C4 */ sw $zero, 0x1c4($t0) +/* 0B469C 7F07FB6C 8E890000 */ lw $t1, ($s4) +/* 0B46A0 7F07FB70 1000004C */ b .L7F07FCA4 +/* 0B46A4 7F07FB74 AD2001D0 */ sw $zero, 0x1d0($t1) +/* 0B46A8 7F07FB78 2401000C */ li $at, 12 +.L7F07FB7C: +/* 0B46AC 7F07FB7C 10410049 */ beq $v0, $at, .L7F07FCA4 +/* 0B46B0 7F07FB80 24010006 */ li $at, 6 +/* 0B46B4 7F07FB84 5441000C */ bnel $v0, $at, .L7F07FBB8 +/* 0B46B8 7F07FB88 24010007 */ li $at, 7 +/* 0B46BC 7F07FB8C 54800046 */ bnezl $a0, .L7F07FCA8 +/* 0B46C0 7F07FB90 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B46C4 7F07FB94 AC6701C8 */ sw $a3, 0x1c8($v1) +/* 0B46C8 7F07FB98 8E8A0000 */ lw $t2, ($s4) +/* 0B46CC 7F07FB9C AD4001C0 */ sw $zero, 0x1c0($t2) +/* 0B46D0 7F07FBA0 8E8B0000 */ lw $t3, ($s4) +/* 0B46D4 7F07FBA4 0FC29A6A */ jal sub_GAME_7F0A69A8 +/* 0B46D8 7F07FBA8 AD6001C4 */ sw $zero, 0x1c4($t3) +/* 0B46DC 7F07FBAC 1000003E */ b .L7F07FCA8 +/* 0B46E0 7F07FBB0 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B46E4 7F07FBB4 24010007 */ li $at, 7 +.L7F07FBB8: +/* 0B46E8 7F07FBB8 5441000C */ bnel $v0, $at, .L7F07FBEC +/* 0B46EC 7F07FBBC 24060008 */ li $a2, 8 +/* 0B46F0 7F07FBC0 54800039 */ bnezl $a0, .L7F07FCA8 +/* 0B46F4 7F07FBC4 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B46F8 7F07FBC8 AC6601C8 */ sw $a2, 0x1c8($v1) +/* 0B46FC 7F07FBCC 8E8C0000 */ lw $t4, ($s4) +/* 0B4700 7F07FBD0 AD8001C0 */ sw $zero, 0x1c0($t4) +/* 0B4704 7F07FBD4 8E8D0000 */ lw $t5, ($s4) +/* 0B4708 7F07FBD8 0FC29A6A */ jal sub_GAME_7F0A69A8 +/* 0B470C 7F07FBDC ADA001C4 */ sw $zero, 0x1c4($t5) +/* 0B4710 7F07FBE0 10000031 */ b .L7F07FCA8 +/* 0B4714 7F07FBE4 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B4718 7F07FBE8 24060008 */ li $a2, 8 +.L7F07FBEC: +/* 0B471C 7F07FBEC 14C2000B */ bne $a2, $v0, .L7F07FC1C +/* 0B4720 7F07FBF0 24010009 */ li $at, 9 +/* 0B4724 7F07FBF4 1480002B */ bnez $a0, .L7F07FCA4 +/* 0B4728 7F07FBF8 240E000B */ li $t6, 11 +/* 0B472C 7F07FBFC AC6E01C8 */ sw $t6, 0x1c8($v1) +/* 0B4730 7F07FC00 8E8F0000 */ lw $t7, ($s4) +/* 0B4734 7F07FC04 ADE001C0 */ sw $zero, 0x1c0($t7) +/* 0B4738 7F07FC08 8E980000 */ lw $t8, ($s4) +/* 0B473C 7F07FC0C 0FC29A6A */ jal sub_GAME_7F0A69A8 +/* 0B4740 7F07FC10 AF0001C4 */ sw $zero, 0x1c4($t8) +/* 0B4744 7F07FC14 10000024 */ b .L7F07FCA8 +/* 0B4748 7F07FC18 8FBF003C */ lw $ra, 0x3c($sp) +.L7F07FC1C: +/* 0B474C 7F07FC1C 5441000A */ bnel $v0, $at, .L7F07FC48 +/* 0B4750 7F07FC20 2401000A */ li $at, 10 +/* 0B4754 7F07FC24 54800020 */ bnezl $a0, .L7F07FCA8 +/* 0B4758 7F07FC28 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B475C 7F07FC2C AC6501C8 */ sw $a1, 0x1c8($v1) +/* 0B4760 7F07FC30 8E990000 */ lw $t9, ($s4) +/* 0B4764 7F07FC34 AF2001C0 */ sw $zero, 0x1c0($t9) +/* 0B4768 7F07FC38 8E880000 */ lw $t0, ($s4) +/* 0B476C 7F07FC3C 10000019 */ b .L7F07FCA4 +/* 0B4770 7F07FC40 AD0001C4 */ sw $zero, 0x1c4($t0) +/* 0B4774 7F07FC44 2401000A */ li $at, 10 +.L7F07FC48: +/* 0B4778 7F07FC48 5441000A */ bnel $v0, $at, .L7F07FC74 +/* 0B477C 7F07FC4C 2401000B */ li $at, 11 +/* 0B4780 7F07FC50 54800015 */ bnezl $a0, .L7F07FCA8 +/* 0B4784 7F07FC54 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B4788 7F07FC58 AC6501C8 */ sw $a1, 0x1c8($v1) +/* 0B478C 7F07FC5C 8E890000 */ lw $t1, ($s4) +/* 0B4790 7F07FC60 AD2001C0 */ sw $zero, 0x1c0($t1) +/* 0B4794 7F07FC64 8E8A0000 */ lw $t2, ($s4) +/* 0B4798 7F07FC68 1000000E */ b .L7F07FCA4 +/* 0B479C 7F07FC6C AD4001C4 */ sw $zero, 0x1c4($t2) +/* 0B47A0 7F07FC70 2401000B */ li $at, 11 +.L7F07FC74: +/* 0B47A4 7F07FC74 54410008 */ bnel $v0, $at, .L7F07FC98 +/* 0B47A8 7F07FC78 2401000D */ li $at, 13 +/* 0B47AC 7F07FC7C AC6601C8 */ sw $a2, 0x1c8($v1) +/* 0B47B0 7F07FC80 8E8B0000 */ lw $t3, ($s4) +/* 0B47B4 7F07FC84 AD6001C0 */ sw $zero, 0x1c0($t3) +/* 0B47B8 7F07FC88 8E8C0000 */ lw $t4, ($s4) +/* 0B47BC 7F07FC8C 10000005 */ b .L7F07FCA4 +/* 0B47C0 7F07FC90 AD8001C4 */ sw $zero, 0x1c4($t4) +/* 0B47C4 7F07FC94 2401000D */ li $at, 13 +.L7F07FC98: +/* 0B47C8 7F07FC98 54410003 */ bnel $v0, $at, .L7F07FCA8 +/* 0B47CC 7F07FC9C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B47D0 7F07FCA0 AC6001C8 */ sw $zero, 0x1c8($v1) +.L7F07FCA4: +/* 0B47D4 7F07FCA4 8FBF003C */ lw $ra, 0x3c($sp) +.L7F07FCA8: +/* 0B47D8 7F07FCA8 8FB00028 */ lw $s0, 0x28($sp) +/* 0B47DC 7F07FCAC 8FB1002C */ lw $s1, 0x2c($sp) +/* 0B47E0 7F07FCB0 8FB20030 */ lw $s2, 0x30($sp) +/* 0B47E4 7F07FCB4 8FB30034 */ lw $s3, 0x34($sp) +/* 0B47E8 7F07FCB8 8FB40038 */ lw $s4, 0x38($sp) +/* 0B47EC 7F07FCBC 03E00008 */ jr $ra +/* 0B47F0 7F07FCC0 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07FCC4(s32 arg0) { + // Node 0 + if (arg0 == -1) + { + // Node 1 + pPlayer->speedstrafe = (f32) (pPlayer->speedstrafe - global_timer_delta); + if (pPlayer->speedstrafe < -1.0f) + { + // Node 2 + pPlayer->speedstrafe = -1.0f; + } + } + else + { + // Node 3 + if (arg0 == 1) + { + // Node 4 + pPlayer->speedstrafe = (f32) (pPlayer->speedstrafe + global_timer_delta); + if (1.0f < pPlayer->speedstrafe) + { + // Node 5 + pPlayer->speedstrafe = 1.0f; + } + } + else + { + // Node 6 + if (0.0f < pPlayer->speedstrafe) + { + // Node 7 + pPlayer->speedstrafe = (f32) (pPlayer->speedstrafe - global_timer_delta); + if (pPlayer->speedstrafe < 0.0f) + { + // Node 8 + pPlayer->speedstrafe = 0.0f; + } + } + else + { + // Node 9 + pPlayer->speedstrafe = (f32) (pPlayer->speedstrafe + global_timer_delta); + if (0.0f < pPlayer->speedstrafe) + { + // Node 10 + pPlayer->speedstrafe = 0.0f; + } + } + } + } + // Node 11 + pPlayer->speedsideways = (f32) pPlayer->speedstrafe; + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07FCC4 +/* 0B47F4 7F07FCC4 2401FFFF */ li $at, -1 +/* 0B47F8 7F07FCC8 14810015 */ bne $a0, $at, .L7F07FD20 +/* 0B47FC 7F07FCCC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4800 7F07FCD0 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B4804 7F07FCD4 8C620000 */ lw $v0, ($v1) +/* 0B4808 7F07FCD8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B480C 7F07FCDC 44811000 */ mtc1 $at, $f2 +/* 0B4810 7F07FCE0 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4814 7F07FCE4 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B4818 7F07FCE8 C4440170 */ lwc1 $f4, 0x170($v0) +/* 0B481C 7F07FCEC 46062201 */ sub.s $f8, $f4, $f6 +/* 0B4820 7F07FCF0 E4480170 */ swc1 $f8, 0x170($v0) +/* 0B4824 7F07FCF4 8C620000 */ lw $v0, ($v1) +/* 0B4828 7F07FCF8 C4400170 */ lwc1 $f0, 0x170($v0) +/* 0B482C 7F07FCFC 4602003C */ c.lt.s $f0, $f2 +/* 0B4830 7F07FD00 00000000 */ nop +/* 0B4834 7F07FD04 45000043 */ bc1f .L7F07FE14 +/* 0B4838 7F07FD08 00000000 */ nop +/* 0B483C 7F07FD0C E4420170 */ swc1 $f2, 0x170($v0) +/* 0B4840 7F07FD10 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B4844 7F07FD14 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B4848 7F07FD18 1000003E */ b .L7F07FE14 +/* 0B484C 7F07FD1C C4400170 */ lwc1 $f0, 0x170($v0) +.L7F07FD20: +/* 0B4850 7F07FD20 24010001 */ li $at, 1 +/* 0B4854 7F07FD24 14810016 */ bne $a0, $at, .L7F07FD80 +/* 0B4858 7F07FD28 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B485C 7F07FD2C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4860 7F07FD30 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B4864 7F07FD34 8C620000 */ lw $v0, ($v1) +/* 0B4868 7F07FD38 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B486C 7F07FD3C 44811000 */ mtc1 $at, $f2 +/* 0B4870 7F07FD40 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4874 7F07FD44 C4308378 */ lwc1 $f16, %lo(global_timer_delta)($at) +/* 0B4878 7F07FD48 C44A0170 */ lwc1 $f10, 0x170($v0) +/* 0B487C 7F07FD4C 46105480 */ add.s $f18, $f10, $f16 +/* 0B4880 7F07FD50 E4520170 */ swc1 $f18, 0x170($v0) +/* 0B4884 7F07FD54 8C620000 */ lw $v0, ($v1) +/* 0B4888 7F07FD58 C4400170 */ lwc1 $f0, 0x170($v0) +/* 0B488C 7F07FD5C 4600103C */ c.lt.s $f2, $f0 +/* 0B4890 7F07FD60 00000000 */ nop +/* 0B4894 7F07FD64 4500002B */ bc1f .L7F07FE14 +/* 0B4898 7F07FD68 00000000 */ nop +/* 0B489C 7F07FD6C E4420170 */ swc1 $f2, 0x170($v0) +/* 0B48A0 7F07FD70 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B48A4 7F07FD74 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B48A8 7F07FD78 10000026 */ b .L7F07FE14 +/* 0B48AC 7F07FD7C C4400170 */ lwc1 $f0, 0x170($v0) +.L7F07FD80: +/* 0B48B0 7F07FD80 2463A0B0 */ addiu $v1, $v1, %lo(pPlayer) +/* 0B48B4 7F07FD84 8C620000 */ lw $v0, ($v1) +/* 0B48B8 7F07FD88 44801000 */ mtc1 $zero, $f2 +/* 0B48BC 7F07FD8C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B48C0 7F07FD90 C4400170 */ lwc1 $f0, 0x170($v0) +/* 0B48C4 7F07FD94 4600103C */ c.lt.s $f2, $f0 +/* 0B48C8 7F07FD98 00000000 */ nop +/* 0B48CC 7F07FD9C 45000010 */ bc1f .L7F07FDE0 +/* 0B48D0 7F07FDA0 00000000 */ nop +/* 0B48D4 7F07FDA4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B48D8 7F07FDA8 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B48DC 7F07FDAC 46040181 */ sub.s $f6, $f0, $f4 +/* 0B48E0 7F07FDB0 E4460170 */ swc1 $f6, 0x170($v0) +/* 0B48E4 7F07FDB4 8C620000 */ lw $v0, ($v1) +/* 0B48E8 7F07FDB8 C4400170 */ lwc1 $f0, 0x170($v0) +/* 0B48EC 7F07FDBC 4602003C */ c.lt.s $f0, $f2 +/* 0B48F0 7F07FDC0 00000000 */ nop +/* 0B48F4 7F07FDC4 45000013 */ bc1f .L7F07FE14 +/* 0B48F8 7F07FDC8 00000000 */ nop +/* 0B48FC 7F07FDCC E4420170 */ swc1 $f2, 0x170($v0) +/* 0B4900 7F07FDD0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B4904 7F07FDD4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B4908 7F07FDD8 1000000E */ b .L7F07FE14 +/* 0B490C 7F07FDDC C4400170 */ lwc1 $f0, 0x170($v0) +.L7F07FDE0: +/* 0B4910 7F07FDE0 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B4914 7F07FDE4 46080280 */ add.s $f10, $f0, $f8 +/* 0B4918 7F07FDE8 E44A0170 */ swc1 $f10, 0x170($v0) +/* 0B491C 7F07FDEC 8C620000 */ lw $v0, ($v1) +/* 0B4920 7F07FDF0 C4400170 */ lwc1 $f0, 0x170($v0) +/* 0B4924 7F07FDF4 4600103C */ c.lt.s $f2, $f0 +/* 0B4928 7F07FDF8 00000000 */ nop +/* 0B492C 7F07FDFC 45000005 */ bc1f .L7F07FE14 +/* 0B4930 7F07FE00 00000000 */ nop +/* 0B4934 7F07FE04 E4420170 */ swc1 $f2, 0x170($v0) +/* 0B4938 7F07FE08 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B493C 7F07FE0C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B4940 7F07FE10 C4400170 */ lwc1 $f0, 0x170($v0) +.L7F07FE14: +/* 0B4944 7F07FE14 03E00008 */ jr $ra +/* 0B4948 7F07FE18 E440016C */ swc1 $f0, 0x16c($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07FE1C(s32 arg0) { + // Node 0 + if (arg0 == 1) + { + // Node 1 + pPlayer->field_2A4C = (f32) (pPlayer->field_2A4C + global_timer_delta); + if (1.0f < pPlayer->field_2A4C) + { + // Node 2 + pPlayer->field_2A4C = 1.0f; + } + } + else + { + // Node 3 + if (arg0 == -1) + { + // Node 4 + pPlayer->field_2A4C = (f32) (pPlayer->field_2A4C - global_timer_delta); + if (pPlayer->field_2A4C < -1.0f) + { + // Node 5 + pPlayer->field_2A4C = -1.0f; + } + } + else + { + // Node 6 + if (0.0f < pPlayer->field_2A4C) + { + // Node 7 + pPlayer->field_2A4C = (f32) (pPlayer->field_2A4C - global_timer_delta); + if (pPlayer->field_2A4C < 0.0f) + { + // Node 8 + pPlayer->field_2A4C = 0.0f; + } + } + else + { + // Node 9 + pPlayer->field_2A4C = (f32) (pPlayer->field_2A4C + global_timer_delta); + if (0.0f < pPlayer->field_2A4C) + { + // Node 10 + pPlayer->field_2A4C = 0.0f; + } + } + } + } + // Node 11 + pPlayer->speedforwards = (f32) pPlayer->field_2A4C; + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07FE1C +/* 0B494C 7F07FE1C 24010001 */ li $at, 1 +/* 0B4950 7F07FE20 14810015 */ bne $a0, $at, .L7F07FE78 +/* 0B4954 7F07FE24 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4958 7F07FE28 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B495C 7F07FE2C 8C620000 */ lw $v0, ($v1) +/* 0B4960 7F07FE30 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B4964 7F07FE34 44811000 */ mtc1 $at, $f2 +/* 0B4968 7F07FE38 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B496C 7F07FE3C C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B4970 7F07FE40 C4442A4C */ lwc1 $f4, 0x2a4c($v0) +/* 0B4974 7F07FE44 46062200 */ add.s $f8, $f4, $f6 +/* 0B4978 7F07FE48 E4482A4C */ swc1 $f8, 0x2a4c($v0) +/* 0B497C 7F07FE4C 8C620000 */ lw $v0, ($v1) +/* 0B4980 7F07FE50 C4402A4C */ lwc1 $f0, 0x2a4c($v0) +/* 0B4984 7F07FE54 4600103C */ c.lt.s $f2, $f0 +/* 0B4988 7F07FE58 00000000 */ nop +/* 0B498C 7F07FE5C 45000043 */ bc1f .L7F07FF6C +/* 0B4990 7F07FE60 00000000 */ nop +/* 0B4994 7F07FE64 E4422A4C */ swc1 $f2, 0x2a4c($v0) +/* 0B4998 7F07FE68 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B499C 7F07FE6C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B49A0 7F07FE70 1000003E */ b .L7F07FF6C +/* 0B49A4 7F07FE74 C4402A4C */ lwc1 $f0, 0x2a4c($v0) +.L7F07FE78: +/* 0B49A8 7F07FE78 2401FFFF */ li $at, -1 +/* 0B49AC 7F07FE7C 14810016 */ bne $a0, $at, .L7F07FED8 +/* 0B49B0 7F07FE80 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B49B4 7F07FE84 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B49B8 7F07FE88 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B49BC 7F07FE8C 8C620000 */ lw $v0, ($v1) +/* 0B49C0 7F07FE90 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B49C4 7F07FE94 44811000 */ mtc1 $at, $f2 +/* 0B49C8 7F07FE98 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B49CC 7F07FE9C C4308378 */ lwc1 $f16, %lo(global_timer_delta)($at) +/* 0B49D0 7F07FEA0 C44A2A4C */ lwc1 $f10, 0x2a4c($v0) +/* 0B49D4 7F07FEA4 46105481 */ sub.s $f18, $f10, $f16 +/* 0B49D8 7F07FEA8 E4522A4C */ swc1 $f18, 0x2a4c($v0) +/* 0B49DC 7F07FEAC 8C620000 */ lw $v0, ($v1) +/* 0B49E0 7F07FEB0 C4402A4C */ lwc1 $f0, 0x2a4c($v0) +/* 0B49E4 7F07FEB4 4602003C */ c.lt.s $f0, $f2 +/* 0B49E8 7F07FEB8 00000000 */ nop +/* 0B49EC 7F07FEBC 4500002B */ bc1f .L7F07FF6C +/* 0B49F0 7F07FEC0 00000000 */ nop +/* 0B49F4 7F07FEC4 E4422A4C */ swc1 $f2, 0x2a4c($v0) +/* 0B49F8 7F07FEC8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B49FC 7F07FECC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B4A00 7F07FED0 10000026 */ b .L7F07FF6C +/* 0B4A04 7F07FED4 C4402A4C */ lwc1 $f0, 0x2a4c($v0) +.L7F07FED8: +/* 0B4A08 7F07FED8 2463A0B0 */ addiu $v1, $v1, %lo(pPlayer) +/* 0B4A0C 7F07FEDC 8C620000 */ lw $v0, ($v1) +/* 0B4A10 7F07FEE0 44801000 */ mtc1 $zero, $f2 +/* 0B4A14 7F07FEE4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4A18 7F07FEE8 C4402A4C */ lwc1 $f0, 0x2a4c($v0) +/* 0B4A1C 7F07FEEC 4600103C */ c.lt.s $f2, $f0 +/* 0B4A20 7F07FEF0 00000000 */ nop +/* 0B4A24 7F07FEF4 45000010 */ bc1f .L7F07FF38 +/* 0B4A28 7F07FEF8 00000000 */ nop +/* 0B4A2C 7F07FEFC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4A30 7F07FF00 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B4A34 7F07FF04 46040181 */ sub.s $f6, $f0, $f4 +/* 0B4A38 7F07FF08 E4462A4C */ swc1 $f6, 0x2a4c($v0) +/* 0B4A3C 7F07FF0C 8C620000 */ lw $v0, ($v1) +/* 0B4A40 7F07FF10 C4402A4C */ lwc1 $f0, 0x2a4c($v0) +/* 0B4A44 7F07FF14 4602003C */ c.lt.s $f0, $f2 +/* 0B4A48 7F07FF18 00000000 */ nop +/* 0B4A4C 7F07FF1C 45000013 */ bc1f .L7F07FF6C +/* 0B4A50 7F07FF20 00000000 */ nop +/* 0B4A54 7F07FF24 E4422A4C */ swc1 $f2, 0x2a4c($v0) +/* 0B4A58 7F07FF28 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B4A5C 7F07FF2C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B4A60 7F07FF30 1000000E */ b .L7F07FF6C +/* 0B4A64 7F07FF34 C4402A4C */ lwc1 $f0, 0x2a4c($v0) +.L7F07FF38: +/* 0B4A68 7F07FF38 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B4A6C 7F07FF3C 46080280 */ add.s $f10, $f0, $f8 +/* 0B4A70 7F07FF40 E44A2A4C */ swc1 $f10, 0x2a4c($v0) +/* 0B4A74 7F07FF44 8C620000 */ lw $v0, ($v1) +/* 0B4A78 7F07FF48 C4402A4C */ lwc1 $f0, 0x2a4c($v0) +/* 0B4A7C 7F07FF4C 4600103C */ c.lt.s $f2, $f0 +/* 0B4A80 7F07FF50 00000000 */ nop +/* 0B4A84 7F07FF54 45000005 */ bc1f .L7F07FF6C +/* 0B4A88 7F07FF58 00000000 */ nop +/* 0B4A8C 7F07FF5C E4422A4C */ swc1 $f2, 0x2a4c($v0) +/* 0B4A90 7F07FF60 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B4A94 7F07FF64 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B4A98 7F07FF68 C4402A4C */ lwc1 $f0, 0x2a4c($v0) +.L7F07FF6C: +/* 0B4A9C 7F07FF6C 03E00008 */ jr $ra +/* 0B4AA0 7F07FF70 E4400174 */ swc1 $f0, 0x174($v0) +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F07FF74(f32 arg0) { + // Node 0 + if (0.0f < arg0) + { + // Node 1 + return 0.0f; + } + // Node 2 + if (arg0 >= 0.0f) + { + // Node 4 + // Node 5 + return 0.0f; + } + // Node 3 + return 0.0f; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055094 +.word 0xbf333333 /*-0.69999999*/ +glabel D_80055098 +.word 0x3f333333 /*0.69999999*/ +.text +glabel sub_GAME_7F07FF74 +/* 0B4AA4 7F07FF74 44801000 */ mtc1 $zero, $f2 +/* 0B4AA8 7F07FF78 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B4AAC 7F07FF7C AFBF0014 */ sw $ra, 0x14($sp) +/* 0B4AB0 7F07FF80 460C103C */ c.lt.s $f2, $f12 +/* 0B4AB4 7F07FF84 00000000 */ nop +/* 0B4AB8 7F07FF88 4502000D */ bc1fl .L7F07FFC0 +/* 0B4ABC 7F07FF8C 4602603C */ c.lt.s $f12, $f2 +/* 0B4AC0 7F07FF90 0C001177 */ jal video_related_23 +/* 0B4AC4 7F07FF94 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0B4AC8 7F07FF98 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 0B4ACC 7F07FF9C 3C018005 */ lui $at, %hi(D_80055094) +/* 0B4AD0 7F07FFA0 C4265094 */ lwc1 $f6, %lo(D_80055094)($at) +/* 0B4AD4 7F07FFA4 460C0102 */ mul.s $f4, $f0, $f12 +/* 0B4AD8 7F07FFA8 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B4ADC 7F07FFAC 44815000 */ mtc1 $at, $f10 +/* 0B4AE0 7F07FFB0 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4AE4 7F07FFB4 10000012 */ b .L7F080000 +/* 0B4AE8 7F07FFB8 460A4003 */ div.s $f0, $f8, $f10 +/* 0B4AEC 7F07FFBC 4602603C */ c.lt.s $f12, $f2 +.L7F07FFC0: +/* 0B4AF0 7F07FFC0 00000000 */ nop +/* 0B4AF4 7F07FFC4 4502000E */ bc1fl .L7F080000 +/* 0B4AF8 7F07FFC8 46001006 */ mov.s $f0, $f2 +/* 0B4AFC 7F07FFCC 0C001177 */ jal video_related_23 +/* 0B4B00 7F07FFD0 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0B4B04 7F07FFD4 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 0B4B08 7F07FFD8 3C018005 */ lui $at, %hi(D_80055098) +/* 0B4B0C 7F07FFDC C4245098 */ lwc1 $f4, %lo(D_80055098)($at) +/* 0B4B10 7F07FFE0 46006407 */ neg.s $f16, $f12 +/* 0B4B14 7F07FFE4 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B4B18 7F07FFE8 46100482 */ mul.s $f18, $f0, $f16 +/* 0B4B1C 7F07FFEC 44814000 */ mtc1 $at, $f8 +/* 0B4B20 7F07FFF0 46049182 */ mul.s $f6, $f18, $f4 +/* 0B4B24 7F07FFF4 10000002 */ b .L7F080000 +/* 0B4B28 7F07FFF8 46083003 */ div.s $f0, $f6, $f8 +/* 0B4B2C 7F07FFFC 46001006 */ mov.s $f0, $f2 +.L7F080000: +/* 0B4B30 7F080000 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B4B34 7F080004 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B4B38 7F080008 03E00008 */ jr $ra +/* 0B4B3C 7F08000C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F080010(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005509C +.word 0x3d4ccccd /*0.050000001*/ +glabel D_800550A0 +.word 0x3c4ccccd /*0.0125*/ +glabel D_800550A4 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_800550A8 +.word 0x3c4ccccd /*0.0125*/ +glabel D_800550AC +.word 0x3d4ccccd /*0.050000001*/ +glabel D_800550B0 +.word 0x3d4ccccd /*0.050000001*/ +.text +glabel sub_GAME_7F080010 +/* 0B4B40 7F080010 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0B4B44 7F080014 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B4B48 7F080018 0C001177 */ jal video_related_23 +/* 0B4B4C 7F08001C E7AC0020 */ swc1 $f12, 0x20($sp) +/* 0B4B50 7F080020 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B4B54 7F080024 44812000 */ mtc1 $at, $f4 +/* 0B4B58 7F080028 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 0B4B5C 7F08002C 46040383 */ div.s $f14, $f0, $f4 +/* 0B4B60 7F080030 0FC1FFDD */ jal sub_GAME_7F07FF74 +/* 0B4B64 7F080034 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 0B4B68 7F080038 C7A20020 */ lwc1 $f2, 0x20($sp) +/* 0B4B6C 7F08003C 44806000 */ mtc1 $zero, $f12 +/* 0B4B70 7F080040 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4B74 7F080044 C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 0B4B78 7F080048 4602603C */ c.lt.s $f12, $f2 +/* 0B4B7C 7F08004C 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B4B80 7F080050 45020023 */ bc1fl .L7F0800E0 +/* 0B4B84 7F080054 460C103C */ c.lt.s $f2, $f12 +/* 0B4B88 7F080058 8C620000 */ lw $v0, ($v1) +/* 0B4B8C 7F08005C 3C018005 */ lui $at, %hi(D_800550A0) +/* 0B4B90 7F080060 C4420160 */ lwc1 $f2, 0x160($v0) +/* 0B4B94 7F080064 4602603C */ c.lt.s $f12, $f2 +/* 0B4B98 7F080068 00000000 */ nop +/* 0B4B9C 7F08006C 4500000B */ bc1f .L7F08009C +/* 0B4BA0 7F080070 00000000 */ nop +/* 0B4BA4 7F080074 3C018005 */ lui $at, %hi(D_8005509C) +/* 0B4BA8 7F080078 C426509C */ lwc1 $f6, %lo(D_8005509C)($at) +/* 0B4BAC 7F08007C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4BB0 7F080080 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B4BB4 7F080084 46083282 */ mul.s $f10, $f6, $f8 +/* 0B4BB8 7F080088 00000000 */ nop +/* 0B4BBC 7F08008C 460E5402 */ mul.s $f16, $f10, $f14 +/* 0B4BC0 7F080090 46101481 */ sub.s $f18, $f2, $f16 +/* 0B4BC4 7F080094 10000009 */ b .L7F0800BC +/* 0B4BC8 7F080098 E4520160 */ swc1 $f18, 0x160($v0) +.L7F08009C: +/* 0B4BCC 7F08009C C42450A0 */ lwc1 $f4, %lo(D_800550A0)($at) +/* 0B4BD0 7F0800A0 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4BD4 7F0800A4 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B4BD8 7F0800A8 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4BDC 7F0800AC 00000000 */ nop +/* 0B4BE0 7F0800B0 460E4282 */ mul.s $f10, $f8, $f14 +/* 0B4BE4 7F0800B4 460A1401 */ sub.s $f16, $f2, $f10 +/* 0B4BE8 7F0800B8 E4500160 */ swc1 $f16, 0x160($v0) +.L7F0800BC: +/* 0B4BEC 7F0800BC 8C620000 */ lw $v0, ($v1) +/* 0B4BF0 7F0800C0 C4520160 */ lwc1 $f18, 0x160($v0) +/* 0B4BF4 7F0800C4 4600903C */ c.lt.s $f18, $f0 +/* 0B4BF8 7F0800C8 00000000 */ nop +/* 0B4BFC 7F0800CC 45020053 */ bc1fl .L7F08021C +/* 0B4C00 7F0800D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B4C04 7F0800D4 10000050 */ b .L7F080218 +/* 0B4C08 7F0800D8 E4400160 */ swc1 $f0, 0x160($v0) +/* 0B4C0C 7F0800DC 460C103C */ c.lt.s $f2, $f12 +.L7F0800E0: +/* 0B4C10 7F0800E0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4C14 7F0800E4 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B4C18 7F0800E8 45020025 */ bc1fl .L7F080180 +/* 0B4C1C 7F0800EC 8C620000 */ lw $v0, ($v1) +/* 0B4C20 7F0800F0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4C24 7F0800F4 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B4C28 7F0800F8 8C620000 */ lw $v0, ($v1) +/* 0B4C2C 7F0800FC 3C018005 */ lui $at, %hi(D_800550A8) +/* 0B4C30 7F080100 C4420160 */ lwc1 $f2, 0x160($v0) +/* 0B4C34 7F080104 460C103C */ c.lt.s $f2, $f12 +/* 0B4C38 7F080108 00000000 */ nop +/* 0B4C3C 7F08010C 4500000B */ bc1f .L7F08013C +/* 0B4C40 7F080110 00000000 */ nop +/* 0B4C44 7F080114 3C018005 */ lui $at, %hi(D_800550A4) +/* 0B4C48 7F080118 C42450A4 */ lwc1 $f4, %lo(D_800550A4)($at) +/* 0B4C4C 7F08011C 3C018005 */ lui $at, %hi(D_800550A8) +/* 0B4C50 7F080120 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B4C54 7F080124 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4C58 7F080128 00000000 */ nop +/* 0B4C5C 7F08012C 460E4282 */ mul.s $f10, $f8, $f14 +/* 0B4C60 7F080130 460A1400 */ add.s $f16, $f2, $f10 +/* 0B4C64 7F080134 10000009 */ b .L7F08015C +/* 0B4C68 7F080138 E4500160 */ swc1 $f16, 0x160($v0) +.L7F08013C: +/* 0B4C6C 7F08013C C43250A8 */ lwc1 $f18, %lo(D_800550A8)($at) +/* 0B4C70 7F080140 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4C74 7F080144 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B4C78 7F080148 46049182 */ mul.s $f6, $f18, $f4 +/* 0B4C7C 7F08014C 00000000 */ nop +/* 0B4C80 7F080150 460E3202 */ mul.s $f8, $f6, $f14 +/* 0B4C84 7F080154 46081280 */ add.s $f10, $f2, $f8 +/* 0B4C88 7F080158 E44A0160 */ swc1 $f10, 0x160($v0) +.L7F08015C: +/* 0B4C8C 7F08015C 8C620000 */ lw $v0, ($v1) +/* 0B4C90 7F080160 C4500160 */ lwc1 $f16, 0x160($v0) +/* 0B4C94 7F080164 4610003C */ c.lt.s $f0, $f16 +/* 0B4C98 7F080168 00000000 */ nop +/* 0B4C9C 7F08016C 4502002B */ bc1fl .L7F08021C +/* 0B4CA0 7F080170 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B4CA4 7F080174 10000028 */ b .L7F080218 +/* 0B4CA8 7F080178 E4400160 */ swc1 $f0, 0x160($v0) +/* 0B4CAC 7F08017C 8C620000 */ lw $v0, ($v1) +.L7F080180: +/* 0B4CB0 7F080180 3C018005 */ lui $at, %hi(D_800550B0) +/* 0B4CB4 7F080184 C4420160 */ lwc1 $f2, 0x160($v0) +/* 0B4CB8 7F080188 4602003C */ c.lt.s $f0, $f2 +/* 0B4CBC 7F08018C 00000000 */ nop +/* 0B4CC0 7F080190 45000012 */ bc1f .L7F0801DC +/* 0B4CC4 7F080194 00000000 */ nop +/* 0B4CC8 7F080198 3C018005 */ lui $at, %hi(D_800550AC) +/* 0B4CCC 7F08019C C43250AC */ lwc1 $f18, %lo(D_800550AC)($at) +/* 0B4CD0 7F0801A0 3C018005 */ lui $at, %hi(D_800550B0) +/* 0B4CD4 7F0801A4 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B4CD8 7F0801A8 46049182 */ mul.s $f6, $f18, $f4 +/* 0B4CDC 7F0801AC 00000000 */ nop +/* 0B4CE0 7F0801B0 460E3202 */ mul.s $f8, $f6, $f14 +/* 0B4CE4 7F0801B4 46081281 */ sub.s $f10, $f2, $f8 +/* 0B4CE8 7F0801B8 E44A0160 */ swc1 $f10, 0x160($v0) +/* 0B4CEC 7F0801BC 8C620000 */ lw $v0, ($v1) +/* 0B4CF0 7F0801C0 C4500160 */ lwc1 $f16, 0x160($v0) +/* 0B4CF4 7F0801C4 4600803C */ c.lt.s $f16, $f0 +/* 0B4CF8 7F0801C8 00000000 */ nop +/* 0B4CFC 7F0801CC 45000012 */ bc1f .L7F080218 +/* 0B4D00 7F0801D0 00000000 */ nop +/* 0B4D04 7F0801D4 10000010 */ b .L7F080218 +/* 0B4D08 7F0801D8 E4400160 */ swc1 $f0, 0x160($v0) +.L7F0801DC: +/* 0B4D0C 7F0801DC C43250B0 */ lwc1 $f18, %lo(D_800550B0)($at) +/* 0B4D10 7F0801E0 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4D14 7F0801E4 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B4D18 7F0801E8 46049182 */ mul.s $f6, $f18, $f4 +/* 0B4D1C 7F0801EC 00000000 */ nop +/* 0B4D20 7F0801F0 460E3202 */ mul.s $f8, $f6, $f14 +/* 0B4D24 7F0801F4 46081280 */ add.s $f10, $f2, $f8 +/* 0B4D28 7F0801F8 E44A0160 */ swc1 $f10, 0x160($v0) +/* 0B4D2C 7F0801FC 8C620000 */ lw $v0, ($v1) +/* 0B4D30 7F080200 C4500160 */ lwc1 $f16, 0x160($v0) +/* 0B4D34 7F080204 4610003C */ c.lt.s $f0, $f16 +/* 0B4D38 7F080208 00000000 */ nop +/* 0B4D3C 7F08020C 45000002 */ bc1f .L7F080218 +/* 0B4D40 7F080210 00000000 */ nop +/* 0B4D44 7F080214 E4400160 */ swc1 $f0, 0x160($v0) +.L7F080218: +/* 0B4D48 7F080218 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08021C: +/* 0B4D4C 7F08021C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0B4D50 7F080220 03E00008 */ jr $ra +/* 0B4D54 7F080224 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING + +f32 sub_GAME_7F080228(f32 arg0) { + // Node 0 + if (0.0f < arg0) + { + // Node 1 + return 0.0f; + } + // Node 2 + if (arg0 >= 0.0f) + { + // Node 4 + // Node 5 + return 0.0f; + } + // Node 3 + return 0.0f; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800550B4 +.word 0xbf333333 /*-0.69999999*/ +glabel D_800550B8 +.word 0x3f333333 /*0.69999999*/ +.text +glabel sub_GAME_7F080228 +/* 0B4D58 7F080228 44801000 */ mtc1 $zero, $f2 +/* 0B4D5C 7F08022C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B4D60 7F080230 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B4D64 7F080234 460C103C */ c.lt.s $f2, $f12 +/* 0B4D68 7F080238 00000000 */ nop +/* 0B4D6C 7F08023C 4502000D */ bc1fl .L7F080274 +/* 0B4D70 7F080240 4602603C */ c.lt.s $f12, $f2 +/* 0B4D74 7F080244 0C001177 */ jal video_related_23 +/* 0B4D78 7F080248 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0B4D7C 7F08024C C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 0B4D80 7F080250 3C018005 */ lui $at, %hi(D_800550B4) +/* 0B4D84 7F080254 C42650B4 */ lwc1 $f6, %lo(D_800550B4)($at) +/* 0B4D88 7F080258 460C0102 */ mul.s $f4, $f0, $f12 +/* 0B4D8C 7F08025C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B4D90 7F080260 44815000 */ mtc1 $at, $f10 +/* 0B4D94 7F080264 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4D98 7F080268 10000012 */ b .L7F0802B4 +/* 0B4D9C 7F08026C 460A4003 */ div.s $f0, $f8, $f10 +/* 0B4DA0 7F080270 4602603C */ c.lt.s $f12, $f2 +.L7F080274: +/* 0B4DA4 7F080274 00000000 */ nop +/* 0B4DA8 7F080278 4502000E */ bc1fl .L7F0802B4 +/* 0B4DAC 7F08027C 46001006 */ mov.s $f0, $f2 +/* 0B4DB0 7F080280 0C001177 */ jal video_related_23 +/* 0B4DB4 7F080284 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0B4DB8 7F080288 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 0B4DBC 7F08028C 3C018005 */ lui $at, %hi(D_800550B8) +/* 0B4DC0 7F080290 C42450B8 */ lwc1 $f4, %lo(D_800550B8)($at) +/* 0B4DC4 7F080294 46006407 */ neg.s $f16, $f12 +/* 0B4DC8 7F080298 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B4DCC 7F08029C 46100482 */ mul.s $f18, $f0, $f16 +/* 0B4DD0 7F0802A0 44814000 */ mtc1 $at, $f8 +/* 0B4DD4 7F0802A4 46049182 */ mul.s $f6, $f18, $f4 +/* 0B4DD8 7F0802A8 10000002 */ b .L7F0802B4 +/* 0B4DDC 7F0802AC 46083003 */ div.s $f0, $f6, $f8 +/* 0B4DE0 7F0802B0 46001006 */ mov.s $f0, $f2 +.L7F0802B4: +/* 0B4DE4 7F0802B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B4DE8 7F0802B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B4DEC 7F0802BC 03E00008 */ jr $ra +/* 0B4DF0 7F0802C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0802C4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800550BC +.word 0x3d4ccccd /*0.050000001*/ +glabel D_800550C0 +.word 0x3c4ccccd /*0.0125*/ +glabel D_800550C4 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_800550C8 +.word 0x3c4ccccd /*0.0125*/ +glabel D_800550CC +.word 0x3d4ccccd /*0.050000001*/ +glabel D_800550D0 +.word 0x3d4ccccd /*0.050000001*/ +.text +glabel sub_GAME_7F0802C4 +/* 0B4DF4 7F0802C4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0B4DF8 7F0802C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B4DFC 7F0802CC 0C001177 */ jal video_related_23 +/* 0B4E00 7F0802D0 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 0B4E04 7F0802D4 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B4E08 7F0802D8 44812000 */ mtc1 $at, $f4 +/* 0B4E0C 7F0802DC C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 0B4E10 7F0802E0 46040383 */ div.s $f14, $f0, $f4 +/* 0B4E14 7F0802E4 0FC2008A */ jal sub_GAME_7F080228 +/* 0B4E18 7F0802E8 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 0B4E1C 7F0802EC C7A20020 */ lwc1 $f2, 0x20($sp) +/* 0B4E20 7F0802F0 44806000 */ mtc1 $zero, $f12 +/* 0B4E24 7F0802F4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4E28 7F0802F8 C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 0B4E2C 7F0802FC 4602603C */ c.lt.s $f12, $f2 +/* 0B4E30 7F080300 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B4E34 7F080304 45020023 */ bc1fl .L7F080394 +/* 0B4E38 7F080308 460C103C */ c.lt.s $f2, $f12 +/* 0B4E3C 7F08030C 8C620000 */ lw $v0, ($v1) +/* 0B4E40 7F080310 3C018005 */ lui $at, %hi(D_800550C0) +/* 0B4E44 7F080314 C442014C */ lwc1 $f2, 0x14c($v0) +/* 0B4E48 7F080318 4602603C */ c.lt.s $f12, $f2 +/* 0B4E4C 7F08031C 00000000 */ nop +/* 0B4E50 7F080320 4500000B */ bc1f .L7F080350 +/* 0B4E54 7F080324 00000000 */ nop +/* 0B4E58 7F080328 3C018005 */ lui $at, %hi(D_800550BC) +/* 0B4E5C 7F08032C C42650BC */ lwc1 $f6, %lo(D_800550BC)($at) +/* 0B4E60 7F080330 3C018005 */ lui $at, %hi(D_800550C0) +/* 0B4E64 7F080334 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B4E68 7F080338 46083282 */ mul.s $f10, $f6, $f8 +/* 0B4E6C 7F08033C 00000000 */ nop +/* 0B4E70 7F080340 460E5402 */ mul.s $f16, $f10, $f14 +/* 0B4E74 7F080344 46101481 */ sub.s $f18, $f2, $f16 +/* 0B4E78 7F080348 10000009 */ b .L7F080370 +/* 0B4E7C 7F08034C E452014C */ swc1 $f18, 0x14c($v0) +.L7F080350: +/* 0B4E80 7F080350 C42450C0 */ lwc1 $f4, %lo(D_800550C0)($at) +/* 0B4E84 7F080354 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4E88 7F080358 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B4E8C 7F08035C 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4E90 7F080360 00000000 */ nop +/* 0B4E94 7F080364 460E4282 */ mul.s $f10, $f8, $f14 +/* 0B4E98 7F080368 460A1401 */ sub.s $f16, $f2, $f10 +/* 0B4E9C 7F08036C E450014C */ swc1 $f16, 0x14c($v0) +.L7F080370: +/* 0B4EA0 7F080370 8C620000 */ lw $v0, ($v1) +/* 0B4EA4 7F080374 C452014C */ lwc1 $f18, 0x14c($v0) +/* 0B4EA8 7F080378 4600903C */ c.lt.s $f18, $f0 +/* 0B4EAC 7F08037C 00000000 */ nop +/* 0B4EB0 7F080380 45020054 */ bc1fl .L7F0804D4 +/* 0B4EB4 7F080384 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B4EB8 7F080388 10000051 */ b .L7F0804D0 +/* 0B4EBC 7F08038C E440014C */ swc1 $f0, 0x14c($v0) +/* 0B4EC0 7F080390 460C103C */ c.lt.s $f2, $f12 +.L7F080394: +/* 0B4EC4 7F080394 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4EC8 7F080398 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B4ECC 7F08039C 45020026 */ bc1fl .L7F080438 +/* 0B4ED0 7F0803A0 8C620000 */ lw $v0, ($v1) +/* 0B4ED4 7F0803A4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4ED8 7F0803A8 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B4EDC 7F0803AC 8C620000 */ lw $v0, ($v1) +/* 0B4EE0 7F0803B0 44802000 */ mtc1 $zero, $f4 +/* 0B4EE4 7F0803B4 3C018005 */ lui $at, %hi(D_800550C8) +/* 0B4EE8 7F0803B8 C442014C */ lwc1 $f2, 0x14c($v0) +/* 0B4EEC 7F0803BC 4604103C */ c.lt.s $f2, $f4 +/* 0B4EF0 7F0803C0 00000000 */ nop +/* 0B4EF4 7F0803C4 4500000B */ bc1f .L7F0803F4 +/* 0B4EF8 7F0803C8 00000000 */ nop +/* 0B4EFC 7F0803CC 3C018005 */ lui $at, %hi(D_800550C4) +/* 0B4F00 7F0803D0 C42650C4 */ lwc1 $f6, %lo(D_800550C4)($at) +/* 0B4F04 7F0803D4 3C018005 */ lui $at, %hi(D_800550C8) +/* 0B4F08 7F0803D8 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B4F0C 7F0803DC 46083282 */ mul.s $f10, $f6, $f8 +/* 0B4F10 7F0803E0 00000000 */ nop +/* 0B4F14 7F0803E4 460E5402 */ mul.s $f16, $f10, $f14 +/* 0B4F18 7F0803E8 46101480 */ add.s $f18, $f2, $f16 +/* 0B4F1C 7F0803EC 10000009 */ b .L7F080414 +/* 0B4F20 7F0803F0 E452014C */ swc1 $f18, 0x14c($v0) +.L7F0803F4: +/* 0B4F24 7F0803F4 C42450C8 */ lwc1 $f4, %lo(D_800550C8)($at) +/* 0B4F28 7F0803F8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4F2C 7F0803FC C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B4F30 7F080400 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4F34 7F080404 00000000 */ nop +/* 0B4F38 7F080408 460E4282 */ mul.s $f10, $f8, $f14 +/* 0B4F3C 7F08040C 460A1400 */ add.s $f16, $f2, $f10 +/* 0B4F40 7F080410 E450014C */ swc1 $f16, 0x14c($v0) +.L7F080414: +/* 0B4F44 7F080414 8C620000 */ lw $v0, ($v1) +/* 0B4F48 7F080418 C452014C */ lwc1 $f18, 0x14c($v0) +/* 0B4F4C 7F08041C 4612003C */ c.lt.s $f0, $f18 +/* 0B4F50 7F080420 00000000 */ nop +/* 0B4F54 7F080424 4502002B */ bc1fl .L7F0804D4 +/* 0B4F58 7F080428 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B4F5C 7F08042C 10000028 */ b .L7F0804D0 +/* 0B4F60 7F080430 E440014C */ swc1 $f0, 0x14c($v0) +/* 0B4F64 7F080434 8C620000 */ lw $v0, ($v1) +.L7F080438: +/* 0B4F68 7F080438 3C018005 */ lui $at, %hi(D_800550D0) +/* 0B4F6C 7F08043C C442014C */ lwc1 $f2, 0x14c($v0) +/* 0B4F70 7F080440 4602003C */ c.lt.s $f0, $f2 +/* 0B4F74 7F080444 00000000 */ nop +/* 0B4F78 7F080448 45000012 */ bc1f .L7F080494 +/* 0B4F7C 7F08044C 00000000 */ nop +/* 0B4F80 7F080450 3C018005 */ lui $at, %hi(D_800550CC) +/* 0B4F84 7F080454 C42450CC */ lwc1 $f4, %lo(D_800550CC)($at) +/* 0B4F88 7F080458 3C018005 */ lui $at, %hi(D_800550D0) +/* 0B4F8C 7F08045C C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B4F90 7F080460 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4F94 7F080464 00000000 */ nop +/* 0B4F98 7F080468 460E4282 */ mul.s $f10, $f8, $f14 +/* 0B4F9C 7F08046C 460A1401 */ sub.s $f16, $f2, $f10 +/* 0B4FA0 7F080470 E450014C */ swc1 $f16, 0x14c($v0) +/* 0B4FA4 7F080474 8C620000 */ lw $v0, ($v1) +/* 0B4FA8 7F080478 C452014C */ lwc1 $f18, 0x14c($v0) +/* 0B4FAC 7F08047C 4600903C */ c.lt.s $f18, $f0 +/* 0B4FB0 7F080480 00000000 */ nop +/* 0B4FB4 7F080484 45000012 */ bc1f .L7F0804D0 +/* 0B4FB8 7F080488 00000000 */ nop +/* 0B4FBC 7F08048C 10000010 */ b .L7F0804D0 +/* 0B4FC0 7F080490 E440014C */ swc1 $f0, 0x14c($v0) +.L7F080494: +/* 0B4FC4 7F080494 C42450D0 */ lwc1 $f4, %lo(D_800550D0)($at) +/* 0B4FC8 7F080498 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B4FCC 7F08049C C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B4FD0 7F0804A0 46062202 */ mul.s $f8, $f4, $f6 +/* 0B4FD4 7F0804A4 00000000 */ nop +/* 0B4FD8 7F0804A8 460E4282 */ mul.s $f10, $f8, $f14 +/* 0B4FDC 7F0804AC 460A1400 */ add.s $f16, $f2, $f10 +/* 0B4FE0 7F0804B0 E450014C */ swc1 $f16, 0x14c($v0) +/* 0B4FE4 7F0804B4 8C620000 */ lw $v0, ($v1) +/* 0B4FE8 7F0804B8 C452014C */ lwc1 $f18, 0x14c($v0) +/* 0B4FEC 7F0804BC 4612003C */ c.lt.s $f0, $f18 +/* 0B4FF0 7F0804C0 00000000 */ nop +/* 0B4FF4 7F0804C4 45000002 */ bc1f .L7F0804D0 +/* 0B4FF8 7F0804C8 00000000 */ nop +/* 0B4FFC 7F0804CC E440014C */ swc1 $f0, 0x14c($v0) +.L7F0804D0: +/* 0B5000 7F0804D0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0804D4: +/* 0B5004 7F0804D4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0B5008 7F0804D8 03E00008 */ jr $ra +/* 0B500C 7F0804DC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0804E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0804E0 +/* 0B5010 7F0804E0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B5014 7F0804E4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B5018 7F0804E8 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0B501C 7F0804EC AFB00018 */ sw $s0, 0x18($sp) +/* 0B5020 7F0804F0 3C0E8003 */ lui $t6, %hi(camera_80036430) +/* 0B5024 7F0804F4 8DCE6430 */ lw $t6, %lo(camera_80036430)($t6) +/* 0B5028 7F0804F8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0B502C 7F0804FC 00808025 */ move $s0, $a0 +/* 0B5030 7F080500 C44003DC */ lwc1 $f0, 0x3dc($v0) +/* 0B5034 7F080504 8C4703D0 */ lw $a3, 0x3d0($v0) +/* 0B5038 7F080508 8C4803D4 */ lw $t0, 0x3d4($v0) +/* 0B503C 7F08050C 15C00004 */ bnez $t6, .L7F080520 +/* 0B5040 7F080510 8C4903D8 */ lw $t1, 0x3d8($v0) +/* 0B5044 7F080514 3C0F8003 */ lui $t7, %hi(camera_80036434) +/* 0B5048 7F080518 8DEF6434 */ lw $t7, %lo(camera_80036434)($t7) +/* 0B504C 7F08051C 11E00005 */ beqz $t7, .L7F080534 +.L7F080520: +/* 0B5050 7F080520 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B5054 7F080524 44810000 */ mtc1 $at, $f0 +/* 0B5058 7F080528 00004825 */ move $t1, $zero +/* 0B505C 7F08052C 00004025 */ move $t0, $zero +/* 0B5060 7F080530 00003825 */ move $a3, $zero +.L7F080534: +/* 0B5064 7F080534 44802000 */ mtc1 $zero, $f4 +/* 0B5068 7F080538 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 +/* 0B506C 7F08053C 3C0ABA00 */ lui $t2, (0xBA000602 >> 16) # lui $t2, 0xba00 +/* 0B5070 7F080540 4600203C */ c.lt.s $f4, $f0 +/* 0B5074 7F080544 02001025 */ move $v0, $s0 +/* 0B5078 7F080548 3C18E700 */ lui $t8, 0xe700 +/* 0B507C 7F08054C 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 +/* 0B5080 7F080550 45000092 */ bc1f .L7F08079C +/* 0B5084 7F080554 354A0602 */ ori $t2, (0xBA000602 & 0xFFFF) # ori $t2, $t2, 0x602 +/* 0B5088 7F080558 26100008 */ addiu $s0, $s0, 8 +/* 0B508C 7F08055C 02001825 */ move $v1, $s0 +/* 0B5090 7F080560 AC580000 */ sw $t8, ($v0) +/* 0B5094 7F080564 AC400004 */ sw $zero, 4($v0) +/* 0B5098 7F080568 26100008 */ addiu $s0, $s0, 8 +/* 0B509C 7F08056C 02002025 */ move $a0, $s0 +/* 0B50A0 7F080570 AC600004 */ sw $zero, 4($v1) +/* 0B50A4 7F080574 AC790000 */ sw $t9, ($v1) +/* 0B50A8 7F080578 26100008 */ addiu $s0, $s0, 8 +/* 0B50AC 7F08057C 240B00C0 */ li $t3, 192 +/* 0B50B0 7F080580 AC8B0004 */ sw $t3, 4($a0) +/* 0B50B4 7F080584 AC8A0000 */ sw $t2, ($a0) +/* 0B50B8 7F080588 02002825 */ move $a1, $s0 +/* 0B50BC 7F08058C 3C0CBA00 */ lui $t4, (0xBA001301 >> 16) # lui $t4, 0xba00 +/* 0B50C0 7F080590 358C1301 */ ori $t4, (0xBA001301 & 0xFFFF) # ori $t4, $t4, 0x1301 +/* 0B50C4 7F080594 26100008 */ addiu $s0, $s0, 8 +/* 0B50C8 7F080598 ACAC0000 */ sw $t4, ($a1) +/* 0B50CC 7F08059C 02003025 */ move $a2, $s0 +/* 0B50D0 7F0805A0 3C0DB900 */ lui $t5, (0xB9000002 >> 16) # lui $t5, 0xb900 +/* 0B50D4 7F0805A4 ACA00004 */ sw $zero, 4($a1) +/* 0B50D8 7F0805A8 35AD0002 */ ori $t5, (0xB9000002 & 0xFFFF) # ori $t5, $t5, 2 +/* 0B50DC 7F0805AC 26100008 */ addiu $s0, $s0, 8 +/* 0B50E0 7F0805B0 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0B50E4 7F0805B4 44813000 */ mtc1 $at, $f6 +/* 0B50E8 7F0805B8 ACCD0000 */ sw $t5, ($a2) +/* 0B50EC 7F0805BC 02001025 */ move $v0, $s0 +/* 0B50F0 7F0805C0 3C0EBA00 */ lui $t6, (0xBA001001 >> 16) # lui $t6, 0xba00 +/* 0B50F4 7F0805C4 ACC00004 */ sw $zero, 4($a2) +/* 0B50F8 7F0805C8 35CE1001 */ ori $t6, (0xBA001001 & 0xFFFF) # ori $t6, $t6, 0x1001 +/* 0B50FC 7F0805CC 26100008 */ addiu $s0, $s0, 8 +/* 0B5100 7F0805D0 AC4E0000 */ sw $t6, ($v0) +/* 0B5104 7F0805D4 02001825 */ move $v1, $s0 +/* 0B5108 7F0805D8 46060202 */ mul.s $f8, $f0, $f6 +/* 0B510C 7F0805DC AC400004 */ sw $zero, 4($v0) +/* 0B5110 7F0805E0 3C0FBA00 */ lui $t7, (0xBA000C02 >> 16) # lui $t7, 0xba00 +/* 0B5114 7F0805E4 35EF0C02 */ ori $t7, (0xBA000C02 & 0xFFFF) # ori $t7, $t7, 0xc02 +/* 0B5118 7F0805E8 26100008 */ addiu $s0, $s0, 8 +/* 0B511C 7F0805EC 24182000 */ li $t8, 8192 +/* 0B5120 7F0805F0 AC780004 */ sw $t8, 4($v1) +/* 0B5124 7F0805F4 AC6F0000 */ sw $t7, ($v1) +/* 0B5128 7F0805F8 02002025 */ move $a0, $s0 +/* 0B512C 7F0805FC 26100008 */ addiu $s0, $s0, 8 +/* 0B5130 7F080600 240A0C00 */ li $t2, 3072 +/* 0B5134 7F080604 3C19BA00 */ lui $t9, (0xBA000903 >> 16) # lui $t9, 0xba00 +/* 0B5138 7F080608 37390903 */ ori $t9, (0xBA000903 & 0xFFFF) # ori $t9, $t9, 0x903 +/* 0B513C 7F08060C AC8A0004 */ sw $t2, 4($a0) +/* 0B5140 7F080610 02002825 */ move $a1, $s0 +/* 0B5144 7F080614 3C0BBA00 */ lui $t3, (0xBA000E02 >> 16) # lui $t3, 0xba00 +/* 0B5148 7F080618 AC990000 */ sw $t9, ($a0) +/* 0B514C 7F08061C 356B0E02 */ ori $t3, (0xBA000E02 & 0xFFFF) # ori $t3, $t3, 0xe02 +/* 0B5150 7F080620 26100008 */ addiu $s0, $s0, 8 +/* 0B5154 7F080624 ACAB0000 */ sw $t3, ($a1) +/* 0B5158 7F080628 02003025 */ move $a2, $s0 +/* 0B515C 7F08062C 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 +/* 0B5160 7F080630 4600428D */ trunc.w.s $f10, $f8 +/* 0B5164 7F080634 ACA00004 */ sw $zero, 4($a1) +/* 0B5168 7F080638 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d +/* 0B516C 7F08063C 26100008 */ addiu $s0, $s0, 8 +/* 0B5170 7F080640 3C0D0050 */ lui $t5, (0x00504340 >> 16) # lui $t5, 0x50 +/* 0B5174 7F080644 35AD4340 */ ori $t5, (0x00504340 & 0xFFFF) # ori $t5, $t5, 0x4340 +/* 0B5178 7F080648 ACCC0000 */ sw $t4, ($a2) +/* 0B517C 7F08064C 02001025 */ move $v0, $s0 +/* 0B5180 7F080650 ACCD0004 */ sw $t5, 4($a2) +/* 0B5184 7F080654 3C0FFFFD */ lui $t7, (0xFFFDF6FB >> 16) # lui $t7, 0xfffd +/* 0B5188 7F080658 3C0EFCFF */ lui $t6, (0xFCFFFFFF >> 16) # lui $t6, 0xfcff +/* 0B518C 7F08065C 310B00FF */ andi $t3, $t0, 0xff +/* 0B5190 7F080660 35CEFFFF */ ori $t6, (0xFCFFFFFF & 0xFFFF) # ori $t6, $t6, 0xffff +/* 0B5194 7F080664 35EFF6FB */ ori $t7, (0xFFFDF6FB & 0xFFFF) # ori $t7, $t7, 0xf6fb +/* 0B5198 7F080668 000B6400 */ sll $t4, $t3, 0x10 +/* 0B519C 7F08066C 440B5000 */ mfc1 $t3, $f10 +/* 0B51A0 7F080670 AC4F0004 */ sw $t7, 4($v0) +/* 0B51A4 7F080674 AC4E0000 */ sw $t6, ($v0) +/* 0B51A8 7F080678 26100008 */ addiu $s0, $s0, 8 +/* 0B51AC 7F08067C 00075600 */ sll $t2, $a3, 0x18 +/* 0B51B0 7F080680 014C6825 */ or $t5, $t2, $t4 +/* 0B51B4 7F080684 02001825 */ move $v1, $s0 +/* 0B51B8 7F080688 312E00FF */ andi $t6, $t1, 0xff +/* 0B51BC 7F08068C 3C18FA00 */ lui $t8, 0xfa00 +/* 0B51C0 7F080690 AC780000 */ sw $t8, ($v1) +/* 0B51C4 7F080694 000E7A00 */ sll $t7, $t6, 8 +/* 0B51C8 7F080698 01AFC025 */ or $t8, $t5, $t7 +/* 0B51CC 7F08069C 316A00FF */ andi $t2, $t3, 0xff +/* 0B51D0 7F0806A0 030A6025 */ or $t4, $t8, $t2 +/* 0B51D4 7F0806A4 AC6C0004 */ sw $t4, 4($v1) +/* 0B51D8 7F0806A8 26100008 */ addiu $s0, $s0, 8 +/* 0B51DC 7F0806AC AFB0003C */ sw $s0, 0x3c($sp) +/* 0B51E0 7F0806B0 0C001127 */ jal get_video2_settings_width +/* 0B51E4 7F0806B4 26100008 */ addiu $s0, $s0, 8 +/* 0B51E8 7F0806B8 0C001145 */ jal get_video2_settings_ulx +/* 0B51EC 7F0806BC A7A20026 */ sh $v0, 0x26($sp) +/* 0B51F0 7F0806C0 0C001149 */ jal get_video2_settings_uly +/* 0B51F4 7F0806C4 A7A20028 */ sh $v0, 0x28($sp) +/* 0B51F8 7F0806C8 0C00112B */ jal get_video2_settings_height +/* 0B51FC 7F0806CC A7A2002A */ sh $v0, 0x2a($sp) +/* 0B5200 7F0806D0 87AE0028 */ lh $t6, 0x28($sp) +/* 0B5204 7F0806D4 87AD0026 */ lh $t5, 0x26($sp) +/* 0B5208 7F0806D8 87B8002A */ lh $t8, 0x2a($sp) +/* 0B520C 7F0806DC 3C01F600 */ lui $at, 0xf600 +/* 0B5210 7F0806E0 01CD7821 */ addu $t7, $t6, $t5 +/* 0B5214 7F0806E4 00585021 */ addu $t2, $v0, $t8 +/* 0B5218 7F0806E8 314C03FF */ andi $t4, $t2, 0x3ff +/* 0B521C 7F0806EC 31F903FF */ andi $t9, $t7, 0x3ff +/* 0B5220 7F0806F0 00195B80 */ sll $t3, $t9, 0xe +/* 0B5224 7F0806F4 000C7080 */ sll $t6, $t4, 2 +/* 0B5228 7F0806F8 8FB9003C */ lw $t9, 0x3c($sp) +/* 0B522C 7F0806FC 01C16825 */ or $t5, $t6, $at +/* 0B5230 7F080700 01AB7825 */ or $t7, $t5, $t3 +/* 0B5234 7F080704 0C001145 */ jal get_video2_settings_ulx +/* 0B5238 7F080708 AF2F0000 */ sw $t7, ($t9) +/* 0B523C 7F08070C 0C001149 */ jal get_video2_settings_uly +/* 0B5240 7F080710 A7A2002A */ sh $v0, 0x2a($sp) +/* 0B5244 7F080714 87AC002A */ lh $t4, 0x2a($sp) +/* 0B5248 7F080718 8FAF003C */ lw $t7, 0x3c($sp) +/* 0B524C 7F08071C 305803FF */ andi $t8, $v0, 0x3ff +/* 0B5250 7F080720 318E03FF */ andi $t6, $t4, 0x3ff +/* 0B5254 7F080724 000E6B80 */ sll $t5, $t6, 0xe +/* 0B5258 7F080728 00185080 */ sll $t2, $t8, 2 +/* 0B525C 7F08072C 014D5825 */ or $t3, $t2, $t5 +/* 0B5260 7F080730 02001825 */ move $v1, $s0 +/* 0B5264 7F080734 ADEB0004 */ sw $t3, 4($t7) +/* 0B5268 7F080738 26100008 */ addiu $s0, $s0, 8 +/* 0B526C 7F08073C 3C19E700 */ lui $t9, 0xe700 +/* 0B5270 7F080740 02002025 */ move $a0, $s0 +/* 0B5274 7F080744 AC790000 */ sw $t9, ($v1) +/* 0B5278 7F080748 AC600004 */ sw $zero, 4($v1) +/* 0B527C 7F08074C 26100008 */ addiu $s0, $s0, 8 +/* 0B5280 7F080750 3C18BA00 */ lui $t8, (0xBA000602 >> 16) # lui $t8, 0xba00 +/* 0B5284 7F080754 37180602 */ ori $t8, (0xBA000602 & 0xFFFF) # ori $t8, $t8, 0x602 +/* 0B5288 7F080758 240C0040 */ li $t4, 64 +/* 0B528C 7F08075C 02002825 */ move $a1, $s0 +/* 0B5290 7F080760 AC8C0004 */ sw $t4, 4($a0) +/* 0B5294 7F080764 AC980000 */ sw $t8, ($a0) +/* 0B5298 7F080768 26100008 */ addiu $s0, $s0, 8 +/* 0B529C 7F08076C 3C0EBA00 */ lui $t6, (0xBA001301 >> 16) # lui $t6, 0xba00 +/* 0B52A0 7F080770 35CE1301 */ ori $t6, (0xBA001301 & 0xFFFF) # ori $t6, $t6, 0x1301 +/* 0B52A4 7F080774 3C0A0008 */ lui $t2, 8 +/* 0B52A8 7F080778 02003025 */ move $a2, $s0 +/* 0B52AC 7F08077C ACAA0004 */ sw $t2, 4($a1) +/* 0B52B0 7F080780 ACAE0000 */ sw $t6, ($a1) +/* 0B52B4 7F080784 3C0DBA00 */ lui $t5, (0xBA001001 >> 16) # lui $t5, 0xba00 +/* 0B52B8 7F080788 35AD1001 */ ori $t5, (0xBA001001 & 0xFFFF) # ori $t5, $t5, 0x1001 +/* 0B52BC 7F08078C 3C0B0001 */ lui $t3, 1 +/* 0B52C0 7F080790 ACCB0004 */ sw $t3, 4($a2) +/* 0B52C4 7F080794 ACCD0000 */ sw $t5, ($a2) +/* 0B52C8 7F080798 26100008 */ addiu $s0, $s0, 8 +.L7F08079C: +/* 0B52CC 7F08079C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0B52D0 7F0807A0 02001025 */ move $v0, $s0 +/* 0B52D4 7F0807A4 8FB00018 */ lw $s0, 0x18($sp) +/* 0B52D8 7F0807A8 03E00008 */ jr $ra +/* 0B52DC 7F0807AC 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + +void set_rgba_tint(s32 arg0, s32 arg1, s32 arg2, f32 arg3) { + pPlayer->tint_red = arg0; + pPlayer->tint_green = arg1; + pPlayer->tint_blue = arg2; + pPlayer->tint_alpha = arg3; +} + + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0807E0(f32 arg0, s32 arg1, ?32 arg2, ?32 arg3, f32 arg4) { + // Node 0 + pPlayer->field_3E0 = 0.0f; + pPlayer->time_for_fade = arg0; + pPlayer->field_3E8 = (?32) pPlayer->tint_red; + pPlayer->field_3EC = arg1; + pPlayer->field_3F0 = (?32) pPlayer->tint_green; + pPlayer->field_3F4 = arg2; + pPlayer->field_3F8 = (?32) pPlayer->tint_blue; + pPlayer->field_3FC = arg3; + pPlayer->field_400 = (f32) pPlayer->tint_alpha; + pPlayer->field_404 = arg4; + return pPlayer; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0807E0 +/* 0B5310 7F0807E0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B5314 7F0807E4 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B5318 7F0807E8 8C6E0000 */ lw $t6, ($v1) +/* 0B531C 7F0807EC 44802000 */ mtc1 $zero, $f4 +/* 0B5320 7F0807F0 00000000 */ nop +/* 0B5324 7F0807F4 E5C403E0 */ swc1 $f4, 0x3e0($t6) +/* 0B5328 7F0807F8 8C6F0000 */ lw $t7, ($v1) +/* 0B532C 7F0807FC E5EC03E4 */ swc1 $f12, 0x3e4($t7) +/* 0B5330 7F080800 8C620000 */ lw $v0, ($v1) +/* 0B5334 7F080804 8C5803D0 */ lw $t8, 0x3d0($v0) +/* 0B5338 7F080808 AC5803E8 */ sw $t8, 0x3e8($v0) +/* 0B533C 7F08080C 8C790000 */ lw $t9, ($v1) +/* 0B5340 7F080810 AF2503EC */ sw $a1, 0x3ec($t9) +/* 0B5344 7F080814 8C620000 */ lw $v0, ($v1) +/* 0B5348 7F080818 8C4803D4 */ lw $t0, 0x3d4($v0) +/* 0B534C 7F08081C AC4803F0 */ sw $t0, 0x3f0($v0) +/* 0B5350 7F080820 8C690000 */ lw $t1, ($v1) +/* 0B5354 7F080824 AD2603F4 */ sw $a2, 0x3f4($t1) +/* 0B5358 7F080828 8C620000 */ lw $v0, ($v1) +/* 0B535C 7F08082C 8C4A03D8 */ lw $t2, 0x3d8($v0) +/* 0B5360 7F080830 AC4A03F8 */ sw $t2, 0x3f8($v0) +/* 0B5364 7F080834 8C6B0000 */ lw $t3, ($v1) +/* 0B5368 7F080838 AD6703FC */ sw $a3, 0x3fc($t3) +/* 0B536C 7F08083C 8C620000 */ lw $v0, ($v1) +/* 0B5370 7F080840 C44603DC */ lwc1 $f6, 0x3dc($v0) +/* 0B5374 7F080844 E4460400 */ swc1 $f6, 0x400($v0) +/* 0B5378 7F080848 8C6C0000 */ lw $t4, ($v1) +/* 0B537C 7F08084C C7A80010 */ lwc1 $f8, 0x10($sp) +/* 0B5380 7F080850 03E00008 */ jr $ra +/* 0B5384 7F080854 E5880404 */ swc1 $f8, 0x404($t4) +) +#endif + + + + + +#ifdef NONMATCHING +void fade_to_over_seconds(f32 arg1) { + // Node 0 + return sub_GAME_7F0807E0(pPlayer->tint_red, pPlayer->tint_green, pPlayer->tint_blue); +} + +#else +GLOBAL_ASM( +.text +glabel fade_to_over_seconds +/* 0B5388 7F080858 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B538C 7F08085C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B5390 7F080860 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0B5394 7F080864 AFBF001C */ sw $ra, 0x1c($sp) +/* 0B5398 7F080868 8C4703D8 */ lw $a3, 0x3d8($v0) +/* 0B539C 7F08086C 8C4603D4 */ lw $a2, 0x3d4($v0) +/* 0B53A0 7F080870 8C4503D0 */ lw $a1, 0x3d0($v0) +/* 0B53A4 7F080874 0FC201F8 */ jal sub_GAME_7F0807E0 +/* 0B53A8 7F080878 E7AE0010 */ swc1 $f14, 0x10($sp) +/* 0B53AC 7F08087C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0B53B0 7F080880 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0B53B4 7F080884 03E00008 */ jr $ra +/* 0B53B8 7F080888 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void check_if_fade_to_black_complete(void) { + // Node 0 + if (pPlayer->time_for_fade < 0.0f) + { + // Node 1 + } + // Node 2 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel check_if_fade_to_black_complete +/* 0B53BC 7F08088C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B53C0 7F080890 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B53C4 7F080894 44803000 */ mtc1 $zero, $f6 +/* 0B53C8 7F080898 00001025 */ move $v0, $zero +/* 0B53CC 7F08089C C5C403E4 */ lwc1 $f4, 0x3e4($t6) +/* 0B53D0 7F0808A0 4606203C */ c.lt.s $f4, $f6 +/* 0B53D4 7F0808A4 00000000 */ nop +/* 0B53D8 7F0808A8 45000002 */ bc1f .L7F0808B4 +/* 0B53DC 7F0808AC 00000000 */ nop +/* 0B53E0 7F0808B0 24020001 */ li $v0, 1 +.L7F0808B4: +/* 0B53E4 7F0808B4 03E00008 */ jr $ra +/* 0B53E8 7F0808B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0808BC(void) { + f32 temp_f12; + + // Node 0 + if (0.0f <= pPlayer->time_for_fade) + { + // Node 1 + pPlayer->field_3E0 = (f32) (pPlayer->field_3E0 + global_timer_delta); + if (pPlayer->field_3E0 < pPlayer->time_for_fade) + { + // Node 2 + temp_f12 = (pPlayer->field_3E0 / pPlayer->time_for_fade); + pPlayer->tint_alpha = (f32) (pPlayer->field_400 + ((pPlayer->field_404 - pPlayer->field_400) * temp_f12)); + pPlayer->tint_red = (s32) (pPlayer->field_3E8 + (s32) ((f32) (pPlayer->field_3EC - pPlayer->field_3E8) * temp_f12)); + pPlayer->tint_green = (s32) (pPlayer->field_3F0 + (s32) ((f32) (pPlayer->field_3F4 - pPlayer->field_3F0) * temp_f12)); + pPlayer->tint_blue = (s32) (pPlayer->field_3F8 + (s32) ((f32) (pPlayer->field_3FC - pPlayer->field_3F8) * temp_f12)); + return pPlayer; + } + // Node 3 + pPlayer->tint_alpha = (f32) pPlayer->field_404; + pPlayer->tint_red = (s32) pPlayer->field_3EC; + pPlayer->tint_green = (s32) pPlayer->field_3F4; + pPlayer->tint_blue = (s32) pPlayer->field_3FC; + pPlayer->time_for_fade = -1.0f; + } + // Node 4 + return pPlayer; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0808BC +/* 0B53EC 7F0808BC 3C068008 */ lui $a2, %hi(pPlayer) +/* 0B53F0 7F0808C0 24C6A0B0 */ addiu $a2, %lo(pPlayer) # addiu $a2, $a2, -0x5f50 +/* 0B53F4 7F0808C4 8CC20000 */ lw $v0, ($a2) +/* 0B53F8 7F0808C8 44803000 */ mtc1 $zero, $f6 +/* 0B53FC 7F0808CC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B5400 7F0808D0 C44403E4 */ lwc1 $f4, 0x3e4($v0) +/* 0B5404 7F0808D4 4604303E */ c.le.s $f6, $f4 +/* 0B5408 7F0808D8 00000000 */ nop +/* 0B540C 7F0808DC 4500004A */ bc1f .L7F080A08 +/* 0B5410 7F0808E0 00000000 */ nop +/* 0B5414 7F0808E4 C44803E0 */ lwc1 $f8, 0x3e0($v0) +/* 0B5418 7F0808E8 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 0B541C 7F0808EC 460A4400 */ add.s $f16, $f8, $f10 +/* 0B5420 7F0808F0 E45003E0 */ swc1 $f16, 0x3e0($v0) +/* 0B5424 7F0808F4 8CC20000 */ lw $v0, ($a2) +/* 0B5428 7F0808F8 C44203E0 */ lwc1 $f2, 0x3e0($v0) +/* 0B542C 7F0808FC C44003E4 */ lwc1 $f0, 0x3e4($v0) +/* 0B5430 7F080900 4600103C */ c.lt.s $f2, $f0 +/* 0B5434 7F080904 00000000 */ nop +/* 0B5438 7F080908 45020031 */ bc1fl .L7F0809D0 +/* 0B543C 7F08090C C44A0404 */ lwc1 $f10, 0x404($v0) +/* 0B5440 7F080910 46001303 */ div.s $f12, $f2, $f0 +/* 0B5444 7F080914 C44E0400 */ lwc1 $f14, 0x400($v0) +/* 0B5448 7F080918 C4520404 */ lwc1 $f18, 0x404($v0) +/* 0B544C 7F08091C 460E9101 */ sub.s $f4, $f18, $f14 +/* 0B5450 7F080920 460C2182 */ mul.s $f6, $f4, $f12 +/* 0B5454 7F080924 46067200 */ add.s $f8, $f14, $f6 +/* 0B5458 7F080928 E44803DC */ swc1 $f8, 0x3dc($v0) +/* 0B545C 7F08092C 8CC20000 */ lw $v0, ($a2) +/* 0B5460 7F080930 8C4303E8 */ lw $v1, 0x3e8($v0) +/* 0B5464 7F080934 8C4E03EC */ lw $t6, 0x3ec($v0) +/* 0B5468 7F080938 01C37823 */ subu $t7, $t6, $v1 +/* 0B546C 7F08093C 448F5000 */ mtc1 $t7, $f10 +/* 0B5470 7F080940 00000000 */ nop +/* 0B5474 7F080944 46805420 */ cvt.s.w $f16, $f10 +/* 0B5478 7F080948 460C8482 */ mul.s $f18, $f16, $f12 +/* 0B547C 7F08094C 4600910D */ trunc.w.s $f4, $f18 +/* 0B5480 7F080950 44192000 */ mfc1 $t9, $f4 +/* 0B5484 7F080954 00000000 */ nop +/* 0B5488 7F080958 00794021 */ addu $t0, $v1, $t9 +/* 0B548C 7F08095C AC4803D0 */ sw $t0, 0x3d0($v0) +/* 0B5490 7F080960 8CC20000 */ lw $v0, ($a2) +/* 0B5494 7F080964 8C4403F0 */ lw $a0, 0x3f0($v0) +/* 0B5498 7F080968 8C4903F4 */ lw $t1, 0x3f4($v0) +/* 0B549C 7F08096C 01245023 */ subu $t2, $t1, $a0 +/* 0B54A0 7F080970 448A3000 */ mtc1 $t2, $f6 +/* 0B54A4 7F080974 00000000 */ nop +/* 0B54A8 7F080978 46803220 */ cvt.s.w $f8, $f6 +/* 0B54AC 7F08097C 460C4282 */ mul.s $f10, $f8, $f12 +/* 0B54B0 7F080980 4600540D */ trunc.w.s $f16, $f10 +/* 0B54B4 7F080984 440C8000 */ mfc1 $t4, $f16 +/* 0B54B8 7F080988 00000000 */ nop +/* 0B54BC 7F08098C 008C6821 */ addu $t5, $a0, $t4 +/* 0B54C0 7F080990 AC4D03D4 */ sw $t5, 0x3d4($v0) +/* 0B54C4 7F080994 8CC20000 */ lw $v0, ($a2) +/* 0B54C8 7F080998 8C4503F8 */ lw $a1, 0x3f8($v0) +/* 0B54CC 7F08099C 8C4E03FC */ lw $t6, 0x3fc($v0) +/* 0B54D0 7F0809A0 01C57823 */ subu $t7, $t6, $a1 +/* 0B54D4 7F0809A4 448F9000 */ mtc1 $t7, $f18 +/* 0B54D8 7F0809A8 00000000 */ nop +/* 0B54DC 7F0809AC 46809120 */ cvt.s.w $f4, $f18 +/* 0B54E0 7F0809B0 460C2182 */ mul.s $f6, $f4, $f12 +/* 0B54E4 7F0809B4 4600320D */ trunc.w.s $f8, $f6 +/* 0B54E8 7F0809B8 44194000 */ mfc1 $t9, $f8 +/* 0B54EC 7F0809BC 00000000 */ nop +/* 0B54F0 7F0809C0 00B94021 */ addu $t0, $a1, $t9 +/* 0B54F4 7F0809C4 03E00008 */ jr $ra +/* 0B54F8 7F0809C8 AC4803D8 */ sw $t0, 0x3d8($v0) + +/* 0B54FC 7F0809CC C44A0404 */ lwc1 $f10, 0x404($v0) +.L7F0809D0: +/* 0B5500 7F0809D0 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B5504 7F0809D4 44818000 */ mtc1 $at, $f16 +/* 0B5508 7F0809D8 E44A03DC */ swc1 $f10, 0x3dc($v0) +/* 0B550C 7F0809DC 8CC20000 */ lw $v0, ($a2) +/* 0B5510 7F0809E0 8C4903EC */ lw $t1, 0x3ec($v0) +/* 0B5514 7F0809E4 AC4903D0 */ sw $t1, 0x3d0($v0) +/* 0B5518 7F0809E8 8CC20000 */ lw $v0, ($a2) +/* 0B551C 7F0809EC 8C4A03F4 */ lw $t2, 0x3f4($v0) +/* 0B5520 7F0809F0 AC4A03D4 */ sw $t2, 0x3d4($v0) +/* 0B5524 7F0809F4 8CC20000 */ lw $v0, ($a2) +/* 0B5528 7F0809F8 8C4B03FC */ lw $t3, 0x3fc($v0) +/* 0B552C 7F0809FC AC4B03D8 */ sw $t3, 0x3d8($v0) +/* 0B5530 7F080A00 8CCC0000 */ lw $t4, ($a2) +/* 0B5534 7F080A04 E59003E4 */ swc1 $f16, 0x3e4($t4) +.L7F080A08: +/* 0B5538 7F080A08 03E00008 */ jr $ra +/* 0B553C 7F080A0C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *set_curplayer_fade(f32 arg0, f32 arg1) { + f32 temp_f8; + f32 phi_f8; + + // Node 0 + if (pPlayer->field_A8->unk4 != 0) + { + // Node 1 + pPlayer->viewport_alpha = 0.0f; + pPlayer->bondfadetime60 = arg0; + temp_f8 = (f32) pPlayer->field_A8->unk4->unkC; + phi_f8 = temp_f8; + if (pPlayer->field_A8->unk4->unkC < 0) + { + // Node 2 + phi_f8 = (temp_f8 + 4294967296.0f); + } + // Node 3 + pPlayer->bondfadetimemax = (f32) (phi_f8 / 255.0f); + pPlayer->bondfadefracold = arg1; + } + // Node 4 + return pPlayer->field_A8->unk4; +} +#else +GLOBAL_ASM( +.text +glabel set_curplayer_fade +/* 0B5540 7F080A10 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B5544 7F080A14 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0B5548 7F080A18 8C830000 */ lw $v1, ($a0) +/* 0B554C 7F080A1C 8C6E00A8 */ lw $t6, 0xa8($v1) +/* 0B5550 7F080A20 8DC20004 */ lw $v0, 4($t6) +/* 0B5554 7F080A24 10400014 */ beqz $v0, .L7F080A78 +/* 0B5558 7F080A28 00000000 */ nop +/* 0B555C 7F080A2C 44802000 */ mtc1 $zero, $f4 +/* 0B5560 7F080A30 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0B5564 7F080A34 E464018C */ swc1 $f4, 0x18c($v1) +/* 0B5568 7F080A38 8C8F0000 */ lw $t7, ($a0) +/* 0B556C 7F080A3C E5EC0190 */ swc1 $f12, 0x190($t7) +/* 0B5570 7F080A40 9058000C */ lbu $t8, 0xc($v0) +/* 0B5574 7F080A44 44983000 */ mtc1 $t8, $f6 +/* 0B5578 7F080A48 07010004 */ bgez $t8, .L7F080A5C +/* 0B557C 7F080A4C 46803220 */ cvt.s.w $f8, $f6 +/* 0B5580 7F080A50 44815000 */ mtc1 $at, $f10 +/* 0B5584 7F080A54 00000000 */ nop +/* 0B5588 7F080A58 460A4200 */ add.s $f8, $f8, $f10 +.L7F080A5C: +/* 0B558C 7F080A5C 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0B5590 7F080A60 44818000 */ mtc1 $at, $f16 +/* 0B5594 7F080A64 8C990000 */ lw $t9, ($a0) +/* 0B5598 7F080A68 46104483 */ div.s $f18, $f8, $f16 +/* 0B559C 7F080A6C E7320194 */ swc1 $f18, 0x194($t9) +/* 0B55A0 7F080A70 8C880000 */ lw $t0, ($a0) +/* 0B55A4 7F080A74 E50E0198 */ swc1 $f14, 0x198($t0) +.L7F080A78: +/* 0B55A8 7F080A78 03E00008 */ jr $ra +/* 0B55AC 7F080A7C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *update_curplayer_fade(void) { + f32 phi_f12; + + // Node 0 + if (0.0f <= pPlayer->bondfadetime60) + { + // Node 1 + pPlayer->viewport_alpha = (f32) (pPlayer->viewport_alpha + *(void *)0x80050000); + if (pPlayer->viewport_alpha < pPlayer->bondfadetime60) + { + // Node 2 + phi_f12 = (pPlayer->bondfadetimemax + (((pPlayer->bondfadefracold - pPlayer->bondfadetimemax) * pPlayer->viewport_alpha) / pPlayer->bondfadetime60)); + } + else + { + // Node 3 + pPlayer->bondfadetime60 = -1.0f; + phi_f12 = pPlayer->bondfadefracold; + } + // Node 4 + if (pPlayer->field_A8->unk4 != 0) + { + // Node 5 + pPlayer->field_A8->unk4->unkC = (s32) (phi_f12 * 255.0f); + } + } + // Node 6 + return pPlayer; +} +#else +GLOBAL_ASM( +.text +glabel update_curplayer_fade +/* 0B55B0 7F080A80 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B55B4 7F080A84 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0B55B8 7F080A88 8C820000 */ lw $v0, ($a0) +/* 0B55BC 7F080A8C 44803000 */ mtc1 $zero, $f6 +/* 0B55C0 7F080A90 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B55C4 7F080A94 C4440190 */ lwc1 $f4, 0x190($v0) +/* 0B55C8 7F080A98 4604303E */ c.le.s $f6, $f4 +/* 0B55CC 7F080A9C 00000000 */ nop +/* 0B55D0 7F080AA0 45000022 */ bc1f .L7F080B2C +/* 0B55D4 7F080AA4 00000000 */ nop +/* 0B55D8 7F080AA8 C448018C */ lwc1 $f8, 0x18c($v0) +/* 0B55DC 7F080AAC C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 0B55E0 7F080AB0 8C4E00A8 */ lw $t6, 0xa8($v0) +/* 0B55E4 7F080AB4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B55E8 7F080AB8 460A4400 */ add.s $f16, $f8, $f10 +/* 0B55EC 7F080ABC 8DC30004 */ lw $v1, 4($t6) +/* 0B55F0 7F080AC0 E450018C */ swc1 $f16, 0x18c($v0) +/* 0B55F4 7F080AC4 8C820000 */ lw $v0, ($a0) +/* 0B55F8 7F080AC8 C442018C */ lwc1 $f2, 0x18c($v0) +/* 0B55FC 7F080ACC C4400190 */ lwc1 $f0, 0x190($v0) +/* 0B5600 7F080AD0 4600103C */ c.lt.s $f2, $f0 +/* 0B5604 7F080AD4 00000000 */ nop +/* 0B5608 7F080AD8 45020009 */ bc1fl .L7F080B00 +/* 0B560C 7F080ADC 44815000 */ mtc1 $at, $f10 +/* 0B5610 7F080AE0 C44E0194 */ lwc1 $f14, 0x194($v0) +/* 0B5614 7F080AE4 C4520198 */ lwc1 $f18, 0x198($v0) +/* 0B5618 7F080AE8 460E9101 */ sub.s $f4, $f18, $f14 +/* 0B561C 7F080AEC 46022182 */ mul.s $f6, $f4, $f2 +/* 0B5620 7F080AF0 46003203 */ div.s $f8, $f6, $f0 +/* 0B5624 7F080AF4 10000004 */ b .L7F080B08 +/* 0B5628 7F080AF8 46087300 */ add.s $f12, $f14, $f8 +/* 0B562C 7F080AFC 44815000 */ mtc1 $at, $f10 +.L7F080B00: +/* 0B5630 7F080B00 C44C0198 */ lwc1 $f12, 0x198($v0) +/* 0B5634 7F080B04 E44A0190 */ swc1 $f10, 0x190($v0) +.L7F080B08: +/* 0B5638 7F080B08 10600008 */ beqz $v1, .L7F080B2C +/* 0B563C 7F080B0C 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0B5640 7F080B10 44818000 */ mtc1 $at, $f16 +/* 0B5644 7F080B14 00000000 */ nop +/* 0B5648 7F080B18 46106482 */ mul.s $f18, $f12, $f16 +/* 0B564C 7F080B1C 4600910D */ trunc.w.s $f4, $f18 +/* 0B5650 7F080B20 44182000 */ mfc1 $t8, $f4 +/* 0B5654 7F080B24 00000000 */ nop +/* 0B5658 7F080B28 A078000C */ sb $t8, 0xc($v1) +.L7F080B2C: +/* 0B565C 7F080B2C 03E00008 */ jr $ra +/* 0B5660 7F080B30 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F080B34(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel firstperson_weapon_movement_restrictor +.word 0x3c8efa35 /*0.017453292*/ +glabel D_800550D8 +.word 0x3c8efa35 /*0.017453292*/ +.text +glabel sub_GAME_7F080B34 +/* 0B5664 7F080B34 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 0B5668 7F080B38 AFB00038 */ sw $s0, 0x38($sp) +/* 0B566C 7F080B3C 3C108008 */ lui $s0, %hi(pPlayer) +/* 0B5670 7F080B40 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 0B5674 7F080B44 4480A000 */ mtc1 $zero, $f20 +/* 0B5678 7F080B48 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0B567C 7F080B4C 8E020000 */ lw $v0, ($s0) +/* 0B5680 7F080B50 AFBF003C */ sw $ra, 0x3c($sp) +/* 0B5684 7F080B54 AFA600D8 */ sw $a2, 0xd8($sp) +/* 0B5688 7F080B58 E7B400CC */ swc1 $f20, 0xcc($sp) +/* 0B568C 7F080B5C 8C4E00D8 */ lw $t6, 0xd8($v0) +/* 0B5690 7F080B60 55C00014 */ bnezl $t6, .L7F080BB4 +/* 0B5694 7F080B64 8C4F0420 */ lw $t7, 0x420($v0) +/* 0B5698 7F080B68 E7AC00D0 */ swc1 $f12, 0xd0($sp) +/* 0B569C 7F080B6C 0FC23A2F */ jal sub_GAME_7F08E8BC +/* 0B56A0 7F080B70 E7AE00D4 */ swc1 $f14, 0xd4($sp) +/* 0B56A4 7F080B74 C7AC00D0 */ lwc1 $f12, 0xd0($sp) +/* 0B56A8 7F080B78 C7AE00D4 */ lwc1 $f14, 0xd4($sp) +/* 0B56AC 7F080B7C 46146032 */ c.eq.s $f12, $f20 +/* 0B56B0 7F080B80 00000000 */ nop +/* 0B56B4 7F080B84 45030005 */ bc1tl .L7F080B9C +/* 0B56B8 7F080B88 46147032 */ c.eq.s $f14, $f20 +/* 0B56BC 7F080B8C 460C7103 */ div.s $f4, $f14, $f12 +/* 0B56C0 7F080B90 10000028 */ b .L7F080C34 +/* 0B56C4 7F080B94 E7A400CC */ swc1 $f4, 0xcc($sp) +/* 0B56C8 7F080B98 46147032 */ c.eq.s $f14, $f20 +.L7F080B9C: +/* 0B56CC 7F080B9C 00000000 */ nop +/* 0B56D0 7F080BA0 45020025 */ bc1fl .L7F080C38 +/* 0B56D4 7F080BA4 C7AC00CC */ lwc1 $f12, 0xcc($sp) +/* 0B56D8 7F080BA8 10000023 */ b .L7F080C38 +/* 0B56DC 7F080BAC C7AC00CC */ lwc1 $f12, 0xcc($sp) +/* 0B56E0 7F080BB0 8C4F0420 */ lw $t7, 0x420($v0) +.L7F080BB4: +/* 0B56E4 7F080BB4 51E0001B */ beql $t7, $zero, .L7F080C24 +/* 0B56E8 7F080BB8 3C013F00 */ lui $at, 0x3f00 +/* 0B56EC 7F080BBC 0C002914 */ jal get_random_value +/* 0B56F0 7F080BC0 00000000 */ nop +/* 0B56F4 7F080BC4 0C002914 */ jal get_random_value +/* 0B56F8 7F080BC8 AFA20044 */ sw $v0, 0x44($sp) +/* 0B56FC 7F080BCC 3C198003 */ lui $t9, %hi(D_8003650C) +/* 0B5700 7F080BD0 8F39650C */ lw $t9, %lo(D_8003650C)($t9) +/* 0B5704 7F080BD4 8FB80044 */ lw $t8, 0x44($sp) +/* 0B5708 7F080BD8 3C0A8003 */ lui $t2, %hi(D_800364D8) +/* 0B570C 7F080BDC 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 0B5710 7F080BE0 0319001B */ divu $zero, $t8, $t9 +/* 0B5714 7F080BE4 00004010 */ mfhi $t0 +/* 0B5718 7F080BE8 00084880 */ sll $t1, $t0, 2 +/* 0B571C 7F080BEC 01495021 */ addu $t2, $t2, $t1 +/* 0B5720 7F080BF0 8D4A64D8 */ lw $t2, %lo(D_800364D8)($t2) +/* 0B5724 7F080BF4 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 0B5728 7F080BF8 4406A000 */ mfc1 $a2, $f20 +/* 0B572C 7F080BFC 17200002 */ bnez $t9, .L7F080C08 +/* 0B5730 7F080C00 00000000 */ nop +/* 0B5734 7F080C04 0007000D */ break 7 +.L7F080C08: +/* 0B5738 7F080C08 30450001 */ andi $a1, $v0, 1 +/* 0B573C 7F080C0C 3C073F80 */ lui $a3, 0x3f80 +/* 0B5740 7F080C10 0FC23A92 */ jal sub_GAME_7F08EA48 +/* 0B5744 7F080C14 014B2021 */ addu $a0, $t2, $t3 +/* 0B5748 7F080C18 8E0C0000 */ lw $t4, ($s0) +/* 0B574C 7F080C1C AD800420 */ sw $zero, 0x420($t4) +/* 0B5750 7F080C20 3C013F00 */ li $at, 0x3F000000 # 0.500000 +.L7F080C24: +/* 0B5754 7F080C24 44816000 */ mtc1 $at, $f12 +/* 0B5758 7F080C28 0FC23AAE */ jal sub_GAME_7F08EAB8 +/* 0B575C 7F080C2C 00000000 */ nop +/* 0B5760 7F080C30 E7B400D8 */ swc1 $f20, 0xd8($sp) +.L7F080C34: +/* 0B5764 7F080C34 C7AC00CC */ lwc1 $f12, 0xcc($sp) +.L7F080C38: +/* 0B5768 7F080C38 0FC23890 */ jal sub_GAME_7F08E240 +/* 0B576C 7F080C3C C7AE00D8 */ lwc1 $f14, 0xd8($sp) +/* 0B5770 7F080C40 8E0D0000 */ lw $t5, ($s0) +/* 0B5774 7F080C44 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B5778 7F080C48 44813000 */ mtc1 $at, $f6 +/* 0B577C 7F080C4C C5A8015C */ lwc1 $f8, 0x15c($t5) +/* 0B5780 7F080C50 3C018005 */ lui $at, %hi(firstperson_weapon_movement_restrictor) +/* 0B5784 7F080C54 C43050D4 */ lwc1 $f16, %lo(firstperson_weapon_movement_restrictor)($at) +/* 0B5788 7F080C58 46083281 */ sub.s $f10, $f6, $f8 +/* 0B578C 7F080C5C 27A5008C */ addiu $a1, $sp, 0x8c +/* 0B5790 7F080C60 46105302 */ mul.s $f12, $f10, $f16 +/* 0B5794 7F080C64 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0B5798 7F080C68 00000000 */ nop +/* 0B579C 7F080C6C 8E020000 */ lw $v0, ($s0) +/* 0B57A0 7F080C70 4405A000 */ mfc1 $a1, $f20 +/* 0B57A4 7F080C74 4406A000 */ mfc1 $a2, $f20 +/* 0B57A8 7F080C78 C4520508 */ lwc1 $f18, 0x508($v0) +/* 0B57AC 7F080C7C 4407A000 */ mfc1 $a3, $f20 +/* 0B57B0 7F080C80 27A4004C */ addiu $a0, $sp, 0x4c +/* 0B57B4 7F080C84 46009107 */ neg.s $f4, $f18 +/* 0B57B8 7F080C88 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0B57BC 7F080C8C C446050C */ lwc1 $f6, 0x50c($v0) +/* 0B57C0 7F080C90 46003207 */ neg.s $f8, $f6 +/* 0B57C4 7F080C94 E7A80014 */ swc1 $f8, 0x14($sp) +/* 0B57C8 7F080C98 C44A0510 */ lwc1 $f10, 0x510($v0) +/* 0B57CC 7F080C9C 46005407 */ neg.s $f16, $f10 +/* 0B57D0 7F080CA0 E7B00018 */ swc1 $f16, 0x18($sp) +/* 0B57D4 7F080CA4 C4520514 */ lwc1 $f18, 0x514($v0) +/* 0B57D8 7F080CA8 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 0B57DC 7F080CAC C4440518 */ lwc1 $f4, 0x518($v0) +/* 0B57E0 7F080CB0 E7A40020 */ swc1 $f4, 0x20($sp) +/* 0B57E4 7F080CB4 C446051C */ lwc1 $f6, 0x51c($v0) +/* 0B57E8 7F080CB8 0FC16642 */ jal sub_GAME_7F059908 +/* 0B57EC 7F080CBC E7A60024 */ swc1 $f6, 0x24($sp) +/* 0B57F0 7F080CC0 27A4004C */ addiu $a0, $sp, 0x4c +/* 0B57F4 7F080CC4 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0B57F8 7F080CC8 27A5008C */ addiu $a1, $sp, 0x8c +/* 0B57FC 7F080CCC 8E0E0000 */ lw $t6, ($s0) +/* 0B5800 7F080CD0 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B5804 7F080CD4 44814000 */ mtc1 $at, $f8 +/* 0B5808 7F080CD8 C5CA0148 */ lwc1 $f10, 0x148($t6) +/* 0B580C 7F080CDC 3C018005 */ lui $at, %hi(D_800550D8) +/* 0B5810 7F080CE0 C43250D8 */ lwc1 $f18, %lo(D_800550D8)($at) +/* 0B5814 7F080CE4 460A4401 */ sub.s $f16, $f8, $f10 +/* 0B5818 7F080CE8 27A5004C */ addiu $a1, $sp, 0x4c +/* 0B581C 7F080CEC 46128302 */ mul.s $f12, $f16, $f18 +/* 0B5820 7F080CF0 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0B5824 7F080CF4 00000000 */ nop +/* 0B5828 7F080CF8 27A4004C */ addiu $a0, $sp, 0x4c +/* 0B582C 7F080CFC 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0B5830 7F080D00 27A5008C */ addiu $a1, $sp, 0x8c +/* 0B5834 7F080D04 C7A400AC */ lwc1 $f4, 0xac($sp) +/* 0B5838 7F080D08 8E0F0000 */ lw $t7, ($s0) +/* 0B583C 7F080D0C E5E404C0 */ swc1 $f4, 0x4c0($t7) +/* 0B5840 7F080D10 8E180000 */ lw $t8, ($s0) +/* 0B5844 7F080D14 C7A600B0 */ lwc1 $f6, 0xb0($sp) +/* 0B5848 7F080D18 E70604C4 */ swc1 $f6, 0x4c4($t8) +/* 0B584C 7F080D1C 8E190000 */ lw $t9, ($s0) +/* 0B5850 7F080D20 C7A800B4 */ lwc1 $f8, 0xb4($sp) +/* 0B5854 7F080D24 E72804C8 */ swc1 $f8, 0x4c8($t9) +/* 0B5858 7F080D28 8E080000 */ lw $t0, ($s0) +/* 0B585C 7F080D2C C7AA009C */ lwc1 $f10, 0x9c($sp) +/* 0B5860 7F080D30 E50A04CC */ swc1 $f10, 0x4cc($t0) +/* 0B5864 7F080D34 8E090000 */ lw $t1, ($s0) +/* 0B5868 7F080D38 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 0B586C 7F080D3C E53004D0 */ swc1 $f16, 0x4d0($t1) +/* 0B5870 7F080D40 8E0A0000 */ lw $t2, ($s0) +/* 0B5874 7F080D44 C7B200A4 */ lwc1 $f18, 0xa4($sp) +/* 0B5878 7F080D48 E55204D4 */ swc1 $f18, 0x4d4($t2) +/* 0B587C 7F080D4C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B5880 7F080D50 8FB00038 */ lw $s0, 0x38($sp) +/* 0B5884 7F080D54 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 0B5888 7F080D58 03E00008 */ jr $ra +/* 0B588C 7F080D5C 27BD00D0 */ addiu $sp, $sp, 0xd0 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F080D60(s32 arg1, ? arg2) { + f32 phi_f2; + + // Node 0 + if (ptr_playerstank != 0) + { + // Node 1 + phi_f2 = (sub_GAME_7F0B2970(arg1, arg2, ptr_playerstank->unk4->unk10->unk14, ptr_playerstank->unk4->unk10->unk8, ptr_playerstank->unk4->unk10->unk10, ptr_playerstank) + D_80036454); + } + else + { + // Node 2 + if (pPlayer->field_2A6C != 0) + { + // Node 3 + phi_f2 = sub_GAME_7F0B2970(arg1, arg2, pPlayer->field_2A70, arg1, arg2, ptr_playerstank); + } + else + { + // Node 4 + phi_f2 = sub_GAME_7F0B2970(arg1, arg2, arg1, arg2, ptr_playerstank); + } + } + // Node 5 + return phi_f2; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F080D60 +/* 0B5890 7F080D60 3C078003 */ lui $a3, %hi(ptr_playerstank) +/* 0B5894 7F080D64 8CE76450 */ lw $a3, %lo(ptr_playerstank)($a3) +/* 0B5898 7F080D68 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B589C 7F080D6C 44856000 */ mtc1 $a1, $f12 +/* 0B58A0 7F080D70 44867000 */ mtc1 $a2, $f14 +/* 0B58A4 7F080D74 10E0000B */ beqz $a3, .L7F080DA4 +/* 0B58A8 7F080D78 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B58AC 7F080D7C 8CE30004 */ lw $v1, 4($a3) +/* 0B58B0 7F080D80 8C620010 */ lw $v0, 0x10($v1) +/* 0B58B4 7F080D84 8C440014 */ lw $a0, 0x14($v0) +/* 0B58B8 7F080D88 8C450008 */ lw $a1, 8($v0) +/* 0B58BC 7F080D8C 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0B58C0 7F080D90 8C460010 */ lw $a2, 0x10($v0) +/* 0B58C4 7F080D94 3C018003 */ lui $at, %hi(D_80036454) +/* 0B58C8 7F080D98 C4246454 */ lwc1 $f4, %lo(D_80036454)($at) +/* 0B58CC 7F080D9C 10000011 */ b .L7F080DE4 +/* 0B58D0 7F080DA0 46040080 */ add.s $f2, $f0, $f4 +.L7F080DA4: +/* 0B58D4 7F080DA4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B58D8 7F080DA8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B58DC 7F080DAC 8C4E2A6C */ lw $t6, 0x2a6c($v0) +/* 0B58E0 7F080DB0 51C00008 */ beql $t6, $zero, .L7F080DD4 +/* 0B58E4 7F080DB4 44056000 */ mfc1 $a1, $f12 +/* 0B58E8 7F080DB8 44056000 */ mfc1 $a1, $f12 +/* 0B58EC 7F080DBC 44067000 */ mfc1 $a2, $f14 +/* 0B58F0 7F080DC0 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0B58F4 7F080DC4 8C442A70 */ lw $a0, 0x2a70($v0) +/* 0B58F8 7F080DC8 10000006 */ b .L7F080DE4 +/* 0B58FC 7F080DCC 46000086 */ mov.s $f2, $f0 +/* 0B5900 7F080DD0 44056000 */ mfc1 $a1, $f12 +.L7F080DD4: +/* 0B5904 7F080DD4 44067000 */ mfc1 $a2, $f14 +/* 0B5908 7F080DD8 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0B590C 7F080DDC 00000000 */ nop +/* 0B5910 7F080DE0 46000086 */ mov.s $f2, $f0 +.L7F080DE4: +/* 0B5914 7F080DE4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B5918 7F080DE8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B591C 7F080DEC 46001006 */ mov.s $f0, $f2 +/* 0B5920 7F080DF0 03E00008 */ jr $ra +/* 0B5924 7F080DF4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F080DF8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800550DC +.word 0x3e2e147c /*0.17000002*/ +glabel D_800550E0 +.word 0x3f547ae1 /*0.82999998*/ +glabel D_800550E4 +.word 0x3e2e147c /*0.17000002*/ +glabel D_800550E8 +.word 0x3f547ae1 /*0.82999998*/ +glabel D_800550EC +.word 0x3fb1c71d /*1.388889*/ +glabel player_gravity_modifier +.word 0x3e8e38e4 /*0.27777779*/ +glabel player_view_gravity_modifier +.word 0x3e8e38e4 /*0.27777779*/ +glabel D_800550F8 +.word 0xc1555555 /*-13.333333*/ +glabel D_800550FC +.word 0x41055555 /*8.333333*/ +glabel D_80055100 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80055104 +.word 0x3e4ccccc /*0.19999999*/ +.text +glabel sub_GAME_7F080DF8 +/* 0B5928 7F080DF8 3C0E8003 */ lui $t6, %hi(in_tank_flag) +/* 0B592C 7F080DFC 8DCE6448 */ lw $t6, %lo(in_tank_flag)($t6) +/* 0B5930 7F080E00 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0B5934 7F080E04 44856000 */ mtc1 $a1, $f12 +/* 0B5938 7F080E08 24010001 */ li $at, 1 +/* 0B593C 7F080E0C AFBF0024 */ sw $ra, 0x24($sp) +/* 0B5940 7F080E10 15C1002C */ bne $t6, $at, .L7F080EC4 +/* 0B5944 7F080E14 AFB00020 */ sw $s0, 0x20($sp) +/* 0B5948 7F080E18 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B594C 7F080E1C 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5950 7F080E20 8D100000 */ lw $s0, ($t0) +/* 0B5954 7F080E24 8E040488 */ lw $a0, 0x488($s0) +/* 0B5958 7F080E28 8E05048C */ lw $a1, 0x48c($s0) +/* 0B595C 7F080E2C 0FC20358 */ jal sub_GAME_7F080D60 +/* 0B5960 7F080E30 8E060494 */ lw $a2, 0x494($s0) +/* 0B5964 7F080E34 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5968 7F080E38 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B596C 7F080E3C 8D0F0000 */ lw $t7, ($t0) +/* 0B5970 7F080E40 3C018005 */ lui $at, %hi(D_800550DC) +/* 0B5974 7F080E44 C42250DC */ lwc1 $f2, %lo(D_800550DC)($at) +/* 0B5978 7F080E48 E5E00074 */ swc1 $f0, 0x74($t7) +/* 0B597C 7F080E4C 8D100000 */ lw $s0, ($t0) +/* 0B5980 7F080E50 3C078005 */ lui $a3, %hi(clock_timer) +/* 0B5984 7F080E54 24E78374 */ addiu $a3, %lo(clock_timer) # addiu $a3, $a3, -0x7c8c +/* 0B5988 7F080E58 C6040070 */ lwc1 $f4, 0x70($s0) +/* 0B598C 7F080E5C 3C018005 */ lui $at, %hi(D_800550E0) +/* 0B5990 7F080E60 00001825 */ move $v1, $zero +/* 0B5994 7F080E64 46022183 */ div.s $f6, $f4, $f2 +/* 0B5998 7F080E68 E606006C */ swc1 $f6, 0x6c($s0) +/* 0B599C 7F080E6C 8CF80000 */ lw $t8, ($a3) +/* 0B59A0 7F080E70 5B00000F */ blezl $t8, .L7F080EB0 +/* 0B59A4 7F080E74 8D100000 */ lw $s0, ($t0) +/* 0B59A8 7F080E78 C42050E0 */ lwc1 $f0, %lo(D_800550E0)($at) +/* 0B59AC 7F080E7C 8D100000 */ lw $s0, ($t0) +.L7F080E80: +/* 0B59B0 7F080E80 24630001 */ addiu $v1, $v1, 1 +/* 0B59B4 7F080E84 C608006C */ lwc1 $f8, 0x6c($s0) +/* 0B59B8 7F080E88 C6040074 */ lwc1 $f4, 0x74($s0) +/* 0B59BC 7F080E8C 46004282 */ mul.s $f10, $f8, $f0 +/* 0B59C0 7F080E90 46045180 */ add.s $f6, $f10, $f4 +/* 0B59C4 7F080E94 E606006C */ swc1 $f6, 0x6c($s0) +/* 0B59C8 7F080E98 8CF90000 */ lw $t9, ($a3) +/* 0B59CC 7F080E9C 0079082A */ slt $at, $v1, $t9 +/* 0B59D0 7F080EA0 5420FFF7 */ bnezl $at, .L7F080E80 +/* 0B59D4 7F080EA4 8D100000 */ lw $s0, ($t0) +/* 0B59D8 7F080EA8 00001825 */ move $v1, $zero +/* 0B59DC 7F080EAC 8D100000 */ lw $s0, ($t0) +.L7F080EB0: +/* 0B59E0 7F080EB0 44808000 */ mtc1 $zero, $f16 +/* 0B59E4 7F080EB4 C608006C */ lwc1 $f8, 0x6c($s0) +/* 0B59E8 7F080EB8 46024282 */ mul.s $f10, $f8, $f2 +/* 0B59EC 7F080EBC 10000136 */ b .L7F081398 +/* 0B59F0 7F080EC0 E60A0070 */ swc1 $f10, 0x70($s0) +.L7F080EC4: +/* 0B59F4 7F080EC4 10800016 */ beqz $a0, .L7F080F20 +/* 0B59F8 7F080EC8 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B59FC 7F080ECC 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5A00 7F080ED0 8D100000 */ lw $s0, ($t0) +/* 0B5A04 7F080ED4 C6040074 */ lwc1 $f4, 0x74($s0) +/* 0B5A08 7F080ED8 460C2180 */ add.s $f6, $f4, $f12 +/* 0B5A0C 7F080EDC E6060074 */ swc1 $f6, 0x74($s0) +/* 0B5A10 7F080EE0 8D100000 */ lw $s0, ($t0) +/* 0B5A14 7F080EE4 8E040488 */ lw $a0, 0x488($s0) +/* 0B5A18 7F080EE8 8E05048C */ lw $a1, 0x48c($s0) +/* 0B5A1C 7F080EEC 0FC20358 */ jal sub_GAME_7F080D60 +/* 0B5A20 7F080EF0 8E060494 */ lw $a2, 0x494($s0) +/* 0B5A24 7F080EF4 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5A28 7F080EF8 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5A2C 7F080EFC 8D100000 */ lw $s0, ($t0) +/* 0B5A30 7F080F00 C6080074 */ lwc1 $f8, 0x74($s0) +/* 0B5A34 7F080F04 4600403C */ c.lt.s $f8, $f0 +/* 0B5A38 7F080F08 00000000 */ nop +/* 0B5A3C 7F080F0C 45020034 */ bc1fl .L7F080FE0 +/* 0B5A40 7F080F10 8E0C2A6C */ lw $t4, 0x2a6c($s0) +/* 0B5A44 7F080F14 E6000074 */ swc1 $f0, 0x74($s0) +/* 0B5A48 7F080F18 10000030 */ b .L7F080FDC +/* 0B5A4C 7F080F1C 8D100000 */ lw $s0, ($t0) +.L7F080F20: +/* 0B5A50 7F080F20 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5A54 7F080F24 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5A58 7F080F28 8D100000 */ lw $s0, ($t0) +/* 0B5A5C 7F080F2C 27A5005C */ addiu $a1, $sp, 0x5c +/* 0B5A60 7F080F30 27A60058 */ addiu $a2, $sp, 0x58 +/* 0B5A64 7F080F34 8E090488 */ lw $t1, 0x488($s0) +/* 0B5A68 7F080F38 27A70054 */ addiu $a3, $sp, 0x54 +/* 0B5A6C 7F080F3C AFA90060 */ sw $t1, 0x60($sp) +/* 0B5A70 7F080F40 0FC2289D */ jal sub_GAME_7F08A274 +/* 0B5A74 7F080F44 8E0400A8 */ lw $a0, 0xa8($s0) +/* 0B5A78 7F080F48 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5A7C 7F080F4C 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5A80 7F080F50 8D100000 */ lw $s0, ($t0) +/* 0B5A84 7F080F54 8E040488 */ lw $a0, 0x488($s0) +/* 0B5A88 7F080F58 8E05048C */ lw $a1, 0x48c($s0) +/* 0B5A8C 7F080F5C 0FC20358 */ jal sub_GAME_7F080D60 +/* 0B5A90 7F080F60 8E060494 */ lw $a2, 0x494($s0) +/* 0B5A94 7F080F64 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5A98 7F080F68 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5A9C 7F080F6C 8D040000 */ lw $a0, ($t0) +/* 0B5AA0 7F080F70 0FC225E0 */ jal sub_GAME_7F089780 +/* 0B5AA4 7F080F74 E7A00064 */ swc1 $f0, 0x64($sp) +/* 0B5AA8 7F080F78 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5AAC 7F080F7C C7A20064 */ lwc1 $f2, 0x64($sp) +/* 0B5AB0 7F080F80 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5AB4 7F080F84 8D100000 */ lw $s0, ($t0) +/* 0B5AB8 7F080F88 46020280 */ add.s $f10, $f0, $f2 +/* 0B5ABC 7F080F8C 27A40060 */ addiu $a0, $sp, 0x60 +/* 0B5AC0 7F080F90 8E05048C */ lw $a1, 0x48c($s0) +/* 0B5AC4 7F080F94 8E060494 */ lw $a2, 0x494($s0) +/* 0B5AC8 7F080F98 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0B5ACC 7F080F9C 0FC2C9AE */ jal sub_GAME_7F0B26B8 +/* 0B5AD0 7F080FA0 8FA7005C */ lw $a3, 0x5c($sp) +/* 0B5AD4 7F080FA4 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5AD8 7F080FA8 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5ADC 7F080FAC 04400008 */ bltz $v0, .L7F080FD0 +/* 0B5AE0 7F080FB0 C7A20064 */ lwc1 $f2, 0x64($sp) +/* 0B5AE4 7F080FB4 8D0A0000 */ lw $t2, ($t0) +/* 0B5AE8 7F080FB8 C5400074 */ lwc1 $f0, 0x74($t2) +/* 0B5AEC 7F080FBC 4600103C */ c.lt.s $f2, $f0 +/* 0B5AF0 7F080FC0 00000000 */ nop +/* 0B5AF4 7F080FC4 45020003 */ bc1fl .L7F080FD4 +/* 0B5AF8 7F080FC8 8D0B0000 */ lw $t3, ($t0) +/* 0B5AFC 7F080FCC 46000086 */ mov.s $f2, $f0 +.L7F080FD0: +/* 0B5B00 7F080FD0 8D0B0000 */ lw $t3, ($t0) +.L7F080FD4: +/* 0B5B04 7F080FD4 E5620074 */ swc1 $f2, 0x74($t3) +/* 0B5B08 7F080FD8 8D100000 */ lw $s0, ($t0) +.L7F080FDC: +/* 0B5B0C 7F080FDC 8E0C2A6C */ lw $t4, 0x2a6c($s0) +.L7F080FE0: +/* 0B5B10 7F080FE0 44808000 */ mtc1 $zero, $f16 +/* 0B5B14 7F080FE4 5180000F */ beql $t4, $zero, .L7F081024 +/* 0B5B18 7F080FE8 C608007C */ lwc1 $f8, 0x7c($s0) +/* 0B5B1C 7F080FEC C6040070 */ lwc1 $f4, 0x70($s0) +/* 0B5B20 7F080FF0 C6060074 */ lwc1 $f6, 0x74($s0) +/* 0B5B24 7F080FF4 4606203C */ c.lt.s $f4, $f6 +/* 0B5B28 7F080FF8 00000000 */ nop +/* 0B5B2C 7F080FFC 45020009 */ bc1fl .L7F081024 +/* 0B5B30 7F081000 C608007C */ lwc1 $f8, 0x7c($s0) +/* 0B5B34 7F081004 AE002A6C */ sw $zero, 0x2a6c($s0) +/* 0B5B38 7F081008 8D100000 */ lw $s0, ($t0) +/* 0B5B3C 7F08100C 8E0D2A70 */ lw $t5, 0x2a70($s0) +/* 0B5B40 7F081010 AE0D0488 */ sw $t5, 0x488($s0) +/* 0B5B44 7F081014 8D0E0000 */ lw $t6, ($t0) +/* 0B5B48 7F081018 ADC02A70 */ sw $zero, 0x2a70($t6) +/* 0B5B4C 7F08101C 8D100000 */ lw $s0, ($t0) +/* 0B5B50 7F081020 C608007C */ lwc1 $f8, 0x7c($s0) +.L7F081024: +/* 0B5B54 7F081024 C60C0070 */ lwc1 $f12, 0x70($s0) +/* 0B5B58 7F081028 4608803E */ c.le.s $f16, $f8 +/* 0B5B5C 7F08102C 00000000 */ nop +/* 0B5B60 7F081030 45010005 */ bc1t .L7F081048 +/* 0B5B64 7F081034 00000000 */ nop +/* 0B5B68 7F081038 C6000074 */ lwc1 $f0, 0x74($s0) +/* 0B5B6C 7F08103C 4600603C */ c.lt.s $f12, $f0 +/* 0B5B70 7F081040 00000000 */ nop +/* 0B5B74 7F081044 45000024 */ bc1f .L7F0810D8 +.L7F081048: +/* 0B5B78 7F081048 3C018005 */ lui $at, %hi(D_800550E4) +/* 0B5B7C 7F08104C C42250E4 */ lwc1 $f2, %lo(D_800550E4)($at) +/* 0B5B80 7F081050 3C078005 */ lui $a3, %hi(clock_timer) +/* 0B5B84 7F081054 24E78374 */ addiu $a3, %lo(clock_timer) # addiu $a3, $a3, -0x7c8c +/* 0B5B88 7F081058 46026283 */ div.s $f10, $f12, $f2 +/* 0B5B8C 7F08105C 3C018005 */ lui $at, %hi(D_800550E8) +/* 0B5B90 7F081060 00001825 */ move $v1, $zero +/* 0B5B94 7F081064 E60A006C */ swc1 $f10, 0x6c($s0) +/* 0B5B98 7F081068 8CEF0000 */ lw $t7, ($a3) +/* 0B5B9C 7F08106C 59E0000E */ blezl $t7, .L7F0810A8 +/* 0B5BA0 7F081070 8D100000 */ lw $s0, ($t0) +/* 0B5BA4 7F081074 C42050E8 */ lwc1 $f0, %lo(D_800550E8)($at) +/* 0B5BA8 7F081078 8D100000 */ lw $s0, ($t0) +.L7F08107C: +/* 0B5BAC 7F08107C 24630001 */ addiu $v1, $v1, 1 +/* 0B5BB0 7F081080 C604006C */ lwc1 $f4, 0x6c($s0) +/* 0B5BB4 7F081084 C6080074 */ lwc1 $f8, 0x74($s0) +/* 0B5BB8 7F081088 46002182 */ mul.s $f6, $f4, $f0 +/* 0B5BBC 7F08108C 46083280 */ add.s $f10, $f6, $f8 +/* 0B5BC0 7F081090 E60A006C */ swc1 $f10, 0x6c($s0) +/* 0B5BC4 7F081094 8CF80000 */ lw $t8, ($a3) +/* 0B5BC8 7F081098 0078082A */ slt $at, $v1, $t8 +/* 0B5BCC 7F08109C 5420FFF7 */ bnezl $at, .L7F08107C +/* 0B5BD0 7F0810A0 8D100000 */ lw $s0, ($t0) +/* 0B5BD4 7F0810A4 8D100000 */ lw $s0, ($t0) +.L7F0810A8: +/* 0B5BD8 7F0810A8 C60C0070 */ lwc1 $f12, 0x70($s0) +/* 0B5BDC 7F0810AC C6000074 */ lwc1 $f0, 0x74($s0) +/* 0B5BE0 7F0810B0 4600603C */ c.lt.s $f12, $f0 +/* 0B5BE4 7F0810B4 00000000 */ nop +/* 0B5BE8 7F0810B8 45020008 */ bc1fl .L7F0810DC +/* 0B5BEC 7F0810BC 460C003C */ c.lt.s $f0, $f12 +/* 0B5BF0 7F0810C0 C604006C */ lwc1 $f4, 0x6c($s0) +/* 0B5BF4 7F0810C4 46022182 */ mul.s $f6, $f4, $f2 +/* 0B5BF8 7F0810C8 E6060070 */ swc1 $f6, 0x70($s0) +/* 0B5BFC 7F0810CC 8D100000 */ lw $s0, ($t0) +/* 0B5C00 7F0810D0 C60C0070 */ lwc1 $f12, 0x70($s0) +/* 0B5C04 7F0810D4 C6000074 */ lwc1 $f0, 0x74($s0) +.L7F0810D8: +/* 0B5C08 7F0810D8 460C003C */ c.lt.s $f0, $f12 +.L7F0810DC: +/* 0B5C0C 7F0810DC 3C078005 */ lui $a3, %hi(clock_timer) +/* 0B5C10 7F0810E0 24E78374 */ addiu $a3, %lo(clock_timer) # addiu $a3, $a3, -0x7c8c +/* 0B5C14 7F0810E4 00001825 */ move $v1, $zero +/* 0B5C18 7F0810E8 4500005D */ bc1f .L7F081260 +/* 0B5C1C 7F0810EC C602007C */ lwc1 $f2, 0x7c($s0) +/* 0B5C20 7F0810F0 AFA0006C */ sw $zero, 0x6c($sp) +/* 0B5C24 7F0810F4 E7A20048 */ swc1 $f2, 0x48($sp) +/* 0B5C28 7F0810F8 0FC24406 */ jal get_debug_fast_bond_flag +/* 0B5C2C 7F0810FC E7AC004C */ swc1 $f12, 0x4c($sp) +/* 0B5C30 7F081100 3C078005 */ lui $a3, %hi(clock_timer) +/* 0B5C34 7F081104 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5C38 7F081108 44808000 */ mtc1 $zero, $f16 +/* 0B5C3C 7F08110C 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5C40 7F081110 24E78374 */ addiu $a3, %lo(clock_timer) # addiu $a3, $a3, -0x7c8c +/* 0B5C44 7F081114 8FA3006C */ lw $v1, 0x6c($sp) +/* 0B5C48 7F081118 C7AE0048 */ lwc1 $f14, 0x48($sp) +/* 0B5C4C 7F08111C 10400011 */ beqz $v0, .L7F081164 +/* 0B5C50 7F081120 C7B2004C */ lwc1 $f18, 0x4c($sp) +/* 0B5C54 7F081124 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079990) +/* 0B5C58 7F081128 24429990 */ addiu $v0, %lo(flt_CODE_bss_80079990) # addiu $v0, $v0, -0x6670 +/* 0B5C5C 7F08112C C4480000 */ lwc1 $f8, ($v0) +/* 0B5C60 7F081130 46088032 */ c.eq.s $f16, $f8 +/* 0B5C64 7F081134 00000000 */ nop +/* 0B5C68 7F081138 4500000A */ bc1f .L7F081164 +/* 0B5C6C 7F08113C 00000000 */ nop +/* 0B5C70 7F081140 C44A0008 */ lwc1 $f10, 8($v0) +/* 0B5C74 7F081144 3C018005 */ lui $at, %hi(D_800550EC) +/* 0B5C78 7F081148 460A8032 */ c.eq.s $f16, $f10 +/* 0B5C7C 7F08114C 00000000 */ nop +/* 0B5C80 7F081150 45000004 */ bc1f .L7F081164 +/* 0B5C84 7F081154 00000000 */ nop +/* 0B5C88 7F081158 C42450EC */ lwc1 $f4, %lo(D_800550EC)($at) +/* 0B5C8C 7F08115C 10000004 */ b .L7F081170 +/* 0B5C90 7F081160 E7A40040 */ swc1 $f4, 0x40($sp) +.L7F081164: +/* 0B5C94 7F081164 3C018005 */ lui $at, %hi(player_gravity_modifier) +/* 0B5C98 7F081168 C42650F0 */ lwc1 $f6, %lo(player_gravity_modifier)($at) +/* 0B5C9C 7F08116C E7A60040 */ swc1 $f6, 0x40($sp) +.L7F081170: +/* 0B5CA0 7F081170 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B5CA4 7F081174 C42C8378 */ lwc1 $f12, %lo(global_timer_delta)($at) +/* 0B5CA8 7F081178 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 0B5CAC 7F08117C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B5CB0 7F081180 8D100000 */ lw $s0, ($t0) +/* 0B5CB4 7F081184 46086282 */ mul.s $f10, $f12, $f8 +/* 0B5CB8 7F081188 44814000 */ mtc1 $at, $f8 +/* 0B5CBC 7F08118C C6000074 */ lwc1 $f0, 0x74($s0) +/* 0B5CC0 7F081190 460A7081 */ sub.s $f2, $f14, $f10 +/* 0B5CC4 7F081194 46027100 */ add.s $f4, $f14, $f2 +/* 0B5CC8 7F081198 46001386 */ mov.s $f14, $f2 +/* 0B5CCC 7F08119C 46046182 */ mul.s $f6, $f12, $f4 +/* 0B5CD0 7F0811A0 00000000 */ nop +/* 0B5CD4 7F0811A4 46083282 */ mul.s $f10, $f6, $f8 +/* 0B5CD8 7F0811A8 460A9480 */ add.s $f18, $f18, $f10 +/* 0B5CDC 7F0811AC 4600903C */ c.lt.s $f18, $f0 +/* 0B5CE0 7F0811B0 00000000 */ nop +/* 0B5CE4 7F0811B4 45000025 */ bc1f .L7F08124C +/* 0B5CE8 7F0811B8 00000000 */ nop +/* 0B5CEC 7F0811BC C6040070 */ lwc1 $f4, 0x70($s0) +/* 0B5CF0 7F0811C0 3C018005 */ lui $at, %hi(player_view_gravity_modifier) +/* 0B5CF4 7F0811C4 C42850F4 */ lwc1 $f8, %lo(player_view_gravity_modifier)($at) +/* 0B5CF8 7F0811C8 46002381 */ sub.s $f14, $f4, $f0 +/* 0B5CFC 7F0811CC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B5D00 7F0811D0 44812000 */ mtc1 $at, $f4 +/* 0B5D04 7F0811D4 C602007C */ lwc1 $f2, 0x7c($s0) +/* 0B5D08 7F0811D8 460E7180 */ add.s $f6, $f14, $f14 +/* 0B5D0C 7F0811DC E7A0004C */ swc1 $f0, 0x4c($sp) +/* 0B5D10 7F0811E0 AFA3006C */ sw $v1, 0x6c($sp) +/* 0B5D14 7F0811E4 46083282 */ mul.s $f10, $f6, $f8 +/* 0B5D18 7F0811E8 44814000 */ mtc1 $at, $f8 +/* 0B5D1C 7F0811EC 46045183 */ div.s $f6, $f10, $f4 +/* 0B5D20 7F0811F0 46083282 */ mul.s $f10, $f6, $f8 +/* 0B5D24 7F0811F4 00000000 */ nop +/* 0B5D28 7F0811F8 46021102 */ mul.s $f4, $f2, $f2 +/* 0B5D2C 7F0811FC 0C007DF8 */ jal sqrtf +/* 0B5D30 7F081200 460A2300 */ add.s $f12, $f4, $f10 +/* 0B5D34 7F081204 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5D38 7F081208 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5D3C 7F08120C 8D100000 */ lw $s0, ($t0) +/* 0B5D40 7F081210 3C078005 */ lui $a3, %hi(clock_timer) +/* 0B5D44 7F081214 44808000 */ mtc1 $zero, $f16 +/* 0B5D48 7F081218 8E192A6C */ lw $t9, 0x2a6c($s0) +/* 0B5D4C 7F08121C 24E78374 */ addiu $a3, %lo(clock_timer) # addiu $a3, $a3, -0x7c8c +/* 0B5D50 7F081220 8FA3006C */ lw $v1, 0x6c($sp) +/* 0B5D54 7F081224 C7B2004C */ lwc1 $f18, 0x4c($sp) +/* 0B5D58 7F081228 13200008 */ beqz $t9, .L7F08124C +/* 0B5D5C 7F08122C 46000387 */ neg.s $f14, $f0 +/* 0B5D60 7F081230 AE002A6C */ sw $zero, 0x2a6c($s0) +/* 0B5D64 7F081234 8D100000 */ lw $s0, ($t0) +/* 0B5D68 7F081238 8E092A70 */ lw $t1, 0x2a70($s0) +/* 0B5D6C 7F08123C AE090488 */ sw $t1, 0x488($s0) +/* 0B5D70 7F081240 8D0A0000 */ lw $t2, ($t0) +/* 0B5D74 7F081244 AD402A70 */ sw $zero, 0x2a70($t2) +/* 0B5D78 7F081248 8D100000 */ lw $s0, ($t0) +.L7F08124C: +/* 0B5D7C 7F08124C E6120070 */ swc1 $f18, 0x70($s0) +/* 0B5D80 7F081250 8D0B0000 */ lw $t3, ($t0) +/* 0B5D84 7F081254 E56E007C */ swc1 $f14, 0x7c($t3) +/* 0B5D88 7F081258 8D100000 */ lw $s0, ($t0) +/* 0B5D8C 7F08125C C602007C */ lwc1 $f2, 0x7c($s0) +.L7F081260: +/* 0B5D90 7F081260 4610103C */ c.lt.s $f2, $f16 +/* 0B5D94 7F081264 00000000 */ nop +/* 0B5D98 7F081268 4502002B */ bc1fl .L7F081318 +/* 0B5D9C 7F08126C 8E0F2A6C */ lw $t7, 0x2a6c($s0) +/* 0B5DA0 7F081270 C6060074 */ lwc1 $f6, 0x74($s0) +/* 0B5DA4 7F081274 C6080070 */ lwc1 $f8, 0x70($s0) +/* 0B5DA8 7F081278 3C018005 */ lui $at, %hi(D_800550F8) +/* 0B5DAC 7F08127C 4606403E */ c.le.s $f8, $f6 +/* 0B5DB0 7F081280 00000000 */ nop +/* 0B5DB4 7F081284 45020024 */ bc1fl .L7F081318 +/* 0B5DB8 7F081288 8E0F2A6C */ lw $t7, 0x2a6c($s0) +/* 0B5DBC 7F08128C C42450F8 */ lwc1 $f4, %lo(D_800550F8)($at) +/* 0B5DC0 7F081290 240C000F */ li $t4, 15 +/* 0B5DC4 7F081294 3C01C0A0 */ li $at, 0xC0A00000 # -5.000000 +/* 0B5DC8 7F081298 4604103C */ c.lt.s $f2, $f4 +/* 0B5DCC 7F08129C 00000000 */ nop +/* 0B5DD0 7F0812A0 45020009 */ bc1fl .L7F0812C8 +/* 0B5DD4 7F0812A4 44810000 */ mtc1 $at, $f0 +/* 0B5DD8 7F0812A8 AE0C008C */ sw $t4, 0x8c($s0) +/* 0B5DDC 7F0812AC 3C01C2B4 */ li $at, 0xC2B40000 # -90.000000 +/* 0B5DE0 7F0812B0 44815000 */ mtc1 $at, $f10 +/* 0B5DE4 7F0812B4 8D0D0000 */ lw $t5, ($t0) +/* 0B5DE8 7F0812B8 E5AA0090 */ swc1 $f10, 0x90($t5) +/* 0B5DEC 7F0812BC 10000013 */ b .L7F08130C +/* 0B5DF0 7F0812C0 8D100000 */ lw $s0, ($t0) +/* 0B5DF4 7F0812C4 44810000 */ mtc1 $at, $f0 +.L7F0812C8: +/* 0B5DF8 7F0812C8 240E000F */ li $t6, 15 +/* 0B5DFC 7F0812CC 4600103C */ c.lt.s $f2, $f0 +/* 0B5E00 7F0812D0 00000000 */ nop +/* 0B5E04 7F0812D4 4502000E */ bc1fl .L7F081310 +/* 0B5E08 7F0812D8 E610007C */ swc1 $f16, 0x7c($s0) +/* 0B5E0C 7F0812DC AE0E008C */ sw $t6, 0x8c($s0) +/* 0B5E10 7F0812E0 8D100000 */ lw $s0, ($t0) +/* 0B5E14 7F0812E4 3C01C2B4 */ li $at, 0xC2B40000 # -90.000000 +/* 0B5E18 7F0812E8 44812000 */ mtc1 $at, $f4 +/* 0B5E1C 7F0812EC C606007C */ lwc1 $f6, 0x7c($s0) +/* 0B5E20 7F0812F0 3C018005 */ lui $at, %hi(D_800550FC) +/* 0B5E24 7F0812F4 46060201 */ sub.s $f8, $f0, $f6 +/* 0B5E28 7F0812F8 C42650FC */ lwc1 $f6, %lo(D_800550FC)($at) +/* 0B5E2C 7F0812FC 46044282 */ mul.s $f10, $f8, $f4 +/* 0B5E30 7F081300 46065203 */ div.s $f8, $f10, $f6 +/* 0B5E34 7F081304 E6080090 */ swc1 $f8, 0x90($s0) +/* 0B5E38 7F081308 8D100000 */ lw $s0, ($t0) +.L7F08130C: +/* 0B5E3C 7F08130C E610007C */ swc1 $f16, 0x7c($s0) +.L7F081310: +/* 0B5E40 7F081310 8D100000 */ lw $s0, ($t0) +/* 0B5E44 7F081314 8E0F2A6C */ lw $t7, 0x2a6c($s0) +.L7F081318: +/* 0B5E48 7F081318 11E0001F */ beqz $t7, .L7F081398 +/* 0B5E4C 7F08131C 02002025 */ move $a0, $s0 +/* 0B5E50 7F081320 0FC225E0 */ jal sub_GAME_7F089780 +/* 0B5E54 7F081324 AFA3006C */ sw $v1, 0x6c($sp) +/* 0B5E58 7F081328 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5E5C 7F08132C 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5E60 7F081330 8D100000 */ lw $s0, ($t0) +/* 0B5E64 7F081334 E7A0003C */ swc1 $f0, 0x3c($sp) +/* 0B5E68 7F081338 8E060494 */ lw $a2, 0x494($s0) +/* 0B5E6C 7F08133C 8E05048C */ lw $a1, 0x48c($s0) +/* 0B5E70 7F081340 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0B5E74 7F081344 8E040488 */ lw $a0, 0x488($s0) +/* 0B5E78 7F081348 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5E7C 7F08134C 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5E80 7F081350 8D100000 */ lw $s0, ($t0) +/* 0B5E84 7F081354 C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 0B5E88 7F081358 3C078005 */ lui $a3, %hi(clock_timer) +/* 0B5E8C 7F08135C C6040070 */ lwc1 $f4, 0x70($s0) +/* 0B5E90 7F081360 44808000 */ mtc1 $zero, $f16 +/* 0B5E94 7F081364 24E78374 */ addiu $a3, %lo(clock_timer) # addiu $a3, $a3, -0x7c8c +/* 0B5E98 7F081368 460A2180 */ add.s $f6, $f4, $f10 +/* 0B5E9C 7F08136C 8FA3006C */ lw $v1, 0x6c($sp) +/* 0B5EA0 7F081370 4600303C */ c.lt.s $f6, $f0 +/* 0B5EA4 7F081374 00000000 */ nop +/* 0B5EA8 7F081378 45020008 */ bc1fl .L7F08139C +/* 0B5EAC 7F08137C 8CE90000 */ lw $t1, ($a3) +/* 0B5EB0 7F081380 AE002A6C */ sw $zero, 0x2a6c($s0) +/* 0B5EB4 7F081384 8D100000 */ lw $s0, ($t0) +/* 0B5EB8 7F081388 8E182A70 */ lw $t8, 0x2a70($s0) +/* 0B5EBC 7F08138C AE180488 */ sw $t8, 0x488($s0) +/* 0B5EC0 7F081390 8D190000 */ lw $t9, ($t0) +/* 0B5EC4 7F081394 AF202A70 */ sw $zero, 0x2a70($t9) +.L7F081398: +/* 0B5EC8 7F081398 8CE90000 */ lw $t1, ($a3) +.L7F08139C: +/* 0B5ECC 7F08139C 1920002B */ blez $t1, .L7F08144C +/* 0B5ED0 7F0813A0 3C01C090 */ li $at, 0xC0900000 # -4.500000 +/* 0B5ED4 7F0813A4 44816000 */ mtc1 $at, $f12 +/* 0B5ED8 7F0813A8 3C018005 */ lui $at, %hi(D_80055100) +/* 0B5EDC 7F0813AC C4225100 */ lwc1 $f2, %lo(D_80055100)($at) +/* 0B5EE0 7F0813B0 8D100000 */ lw $s0, ($t0) +.L7F0813B4: +/* 0B5EE4 7F0813B4 8E0A008C */ lw $t2, 0x8c($s0) +/* 0B5EE8 7F0813B8 5940000C */ blezl $t2, .L7F0813EC +/* 0B5EEC 7F0813BC C6000090 */ lwc1 $f0, 0x90($s0) +/* 0B5EF0 7F0813C0 C6080084 */ lwc1 $f8, 0x84($s0) +/* 0B5EF4 7F0813C4 C60A0090 */ lwc1 $f10, 0x90($s0) +/* 0B5EF8 7F0813C8 46024102 */ mul.s $f4, $f8, $f2 +/* 0B5EFC 7F0813CC 460A2180 */ add.s $f6, $f4, $f10 +/* 0B5F00 7F0813D0 E6060084 */ swc1 $f6, 0x84($s0) +/* 0B5F04 7F0813D4 8D100000 */ lw $s0, ($t0) +/* 0B5F08 7F0813D8 8E0B008C */ lw $t3, 0x8c($s0) +/* 0B5F0C 7F0813DC 256CFFFF */ addiu $t4, $t3, -1 +/* 0B5F10 7F0813E0 10000015 */ b .L7F081438 +/* 0B5F14 7F0813E4 AE0C008C */ sw $t4, 0x8c($s0) +/* 0B5F18 7F0813E8 C6000090 */ lwc1 $f0, 0x90($s0) +.L7F0813EC: +/* 0B5F1C 7F0813EC 4610003C */ c.lt.s $f0, $f16 +/* 0B5F20 7F0813F0 00000000 */ nop +/* 0B5F24 7F0813F4 4502000D */ bc1fl .L7F08142C +/* 0B5F28 7F0813F8 C6040084 */ lwc1 $f4, 0x84($s0) +/* 0B5F2C 7F0813FC 460C0201 */ sub.s $f8, $f0, $f12 +/* 0B5F30 7F081400 E6080090 */ swc1 $f8, 0x90($s0) +/* 0B5F34 7F081404 8D100000 */ lw $s0, ($t0) +/* 0B5F38 7F081408 C6000090 */ lwc1 $f0, 0x90($s0) +/* 0B5F3C 7F08140C 4600803E */ c.le.s $f16, $f0 +/* 0B5F40 7F081410 00000000 */ nop +/* 0B5F44 7F081414 45020005 */ bc1fl .L7F08142C +/* 0B5F48 7F081418 C6040084 */ lwc1 $f4, 0x84($s0) +/* 0B5F4C 7F08141C E6100090 */ swc1 $f16, 0x90($s0) +/* 0B5F50 7F081420 8D100000 */ lw $s0, ($t0) +/* 0B5F54 7F081424 C6000090 */ lwc1 $f0, 0x90($s0) +/* 0B5F58 7F081428 C6040084 */ lwc1 $f4, 0x84($s0) +.L7F08142C: +/* 0B5F5C 7F08142C 46022282 */ mul.s $f10, $f4, $f2 +/* 0B5F60 7F081430 46005180 */ add.s $f6, $f10, $f0 +/* 0B5F64 7F081434 E6060084 */ swc1 $f6, 0x84($s0) +.L7F081438: +/* 0B5F68 7F081438 8CED0000 */ lw $t5, ($a3) +/* 0B5F6C 7F08143C 24630001 */ addiu $v1, $v1, 1 +/* 0B5F70 7F081440 006D082A */ slt $at, $v1, $t5 +/* 0B5F74 7F081444 5420FFDB */ bnezl $at, .L7F0813B4 +/* 0B5F78 7F081448 8D100000 */ lw $s0, ($t0) +.L7F08144C: +/* 0B5F7C 7F08144C 8D100000 */ lw $s0, ($t0) +/* 0B5F80 7F081450 3C018005 */ lui $at, %hi(D_80055104) +/* 0B5F84 7F081454 C4245104 */ lwc1 $f4, %lo(D_80055104)($at) +/* 0B5F88 7F081458 C6080084 */ lwc1 $f8, 0x84($s0) +/* 0B5F8C 7F08145C 46044282 */ mul.s $f10, $f8, $f4 +/* 0B5F90 7F081460 E60A0088 */ swc1 $f10, 0x88($s0) +/* 0B5F94 7F081464 8FBF0024 */ lw $ra, 0x24($sp) +/* 0B5F98 7F081468 8FB00020 */ lw $s0, 0x20($sp) +/* 0B5F9C 7F08146C 27BD0070 */ addiu $sp, $sp, 0x70 +/* 0B5FA0 7F081470 03E00008 */ jr $ra +/* 0B5FA4 7F081474 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F081478(void) { + ?32 sp28; + ?32 sp2C; + f32 temp_f0_2; + f32 temp_f0; + s32 temp_v1; + f32 phi_f0; + void *phi_v0; + void *phi_v0_2; + s32 phi_v1; + + // Node 0 + pPlayer->field_29BC = (f32) ((pPlayer->field_500 * pPlayersPerm->unk64) + 7.0f); + temp_f0_2 = (pPlayer->field_29BC + ((pPlayer->field_88 + pPlayer->ducking_height_offset) * pPlayersPerm->unk64)); + phi_f0 = temp_f0_2; + if (temp_f0_2 < 30.0f) + { + // Node 1 + phi_f0 = 30.0f; + } + // Node 2 + pPlayer->field_490 = (f32) (pPlayer->field_70 + phi_f0); + if (((cameramode == 6) || (cameramode == 7)) || (cameramode == 7)) + { + // Node 5 + if (pPlayer->field_D4 == 0) + { + // Node 6 + pPlayer->field_4B4 = (f32) pPlayer->field_48C; + pPlayer->field_4B8 = (f32) pPlayer->field_490; + pPlayer->field_4BC = (f32) pPlayer->field_494; + } + } + else + { + // Node 6 + pPlayer->field_4B4 = (f32) pPlayer->field_48C; + pPlayer->field_4B8 = (f32) pPlayer->field_490; + pPlayer->field_4BC = (f32) pPlayer->field_494; + } + // Node 7 + phi_v0 = pPlayer; + if (pPlayer->bonddead != 0) + { + // Node 8 + temp_f0 = pPlayer->field_29C0; + phi_v0 = pPlayer; + if (0.0f < temp_f0) + { + // Node 9 + pPlayer->field_29C0 = (f32) (temp_f0 - 0.25f); + phi_v0 = pPlayer; + if (pPlayer->field_29C0 < 0.0f) + { + // Node 10 + pPlayer->field_29C0 = 0.0f; + phi_v0 = pPlayer; + } + } + } + // Node 11 + phi_v0_2 = phi_v0; + if (phi_v0->unk158 < 0.0f) + { + // Node 12 + phi_v0->unk4B8 = (f32) (phi_v0->unk4B8 + (-(1.0f - phi_v0->unk164) * phi_v0->unk29C0)); + phi_v0_2 = pPlayer; + } + // Node 13 + stanlinelog_flag = 0; + sp2C = (?32) phi_v0_2->unk488; + sp28 = (?32) stanlinelog_flag; + sub_GAME_7F0B0BE4(&sp2C, phi_v0_2->unk48C, phi_v0_2->unk494, phi_v0_2->unk4B4, (f32) phi_v0_2->unk4BC); + stanlinelog_flag = sp28; + pPlayer->field_4D8 = sp2C; + pPlayer->field_4A4 = (f32) pPlayer->field_4B4; + pPlayer->field_4AC = (f32) pPlayer->field_4BC; + pPlayer->field_4A8 = sub_GAME_7F080D60(pPlayer->field_4D8, pPlayer->field_4B4, pPlayer->field_4BC); + pPlayer->field_A8->unk14 = (?32) pPlayer->field_488; + pPlayer->field_A8->unk8 = (f32) pPlayer->field_48C; + pPlayer->field_A8->unkC = (f32) pPlayer->field_490; + pPlayer->field_A8->unk10 = (f32) pPlayer->field_494; + if (clock_timer > 0) + { + // Node 14 + phi_v1 = 0; +loop_15: + // Node 15 + temp_v1 = (phi_v1 + 1); + pPlayer->field_3B8 = (f32) (pPlayer->field_4B4 + (D_80055108 * pPlayer->field_3B8)); + pPlayer->field_3BC = (f32) (pPlayer->field_4B8 + (D_80055108 * pPlayer->field_3BC)); + pPlayer->field_3C0 = (f32) (pPlayer->field_4BC + (D_80055108 * pPlayer->field_3C0)); + phi_v1 = temp_v1; + if (temp_v1 < clock_timer) + { + goto loop_15; + } + } + // Node 16 + pPlayer->field_3C4 = (f32) (pPlayer->field_3B8 * D_8005510C); + pPlayer->field_3C8 = (f32) (pPlayer->field_3BC * D_8005510C); + pPlayer->field_3CC = (f32) (pPlayer->field_3C0 * D_8005510C); + return pPlayer; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055108 +.word 0x3f666666 /*0.89999998*/ +glabel D_8005510C +.word 0x3dccccd0 /*0.10000002*/ +.text +glabel sub_GAME_7F081478 +/* 0B5FA8 7F081478 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 0B5FAC 7F08147C 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B5FB0 7F081480 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B5FB4 7F081484 2463A0B4 */ addiu $v1, %lo(pPlayersPerm) # addiu $v1, $v1, -0x5f4c +/* 0B5FB8 7F081488 8C6E0000 */ lw $t6, ($v1) +/* 0B5FBC 7F08148C 8D020000 */ lw $v0, ($t0) +/* 0B5FC0 7F081490 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0B5FC4 7F081494 AFBF001C */ sw $ra, 0x1c($sp) +/* 0B5FC8 7F081498 C5C60064 */ lwc1 $f6, 0x64($t6) +/* 0B5FCC 7F08149C C4440500 */ lwc1 $f4, 0x500($v0) +/* 0B5FD0 7F0814A0 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B5FD4 7F0814A4 44811000 */ mtc1 $at, $f2 +/* 0B5FD8 7F0814A8 46062202 */ mul.s $f8, $f4, $f6 +/* 0B5FDC 7F0814AC 3C0140E0 */ li $at, 0x40E00000 # 7.000000 +/* 0B5FE0 7F0814B0 44815000 */ mtc1 $at, $f10 +/* 0B5FE4 7F0814B4 27A4002C */ addiu $a0, $sp, 0x2c +/* 0B5FE8 7F0814B8 460A4400 */ add.s $f16, $f8, $f10 +/* 0B5FEC 7F0814BC E45029BC */ swc1 $f16, 0x29bc($v0) +/* 0B5FF0 7F0814C0 8D020000 */ lw $v0, ($t0) +/* 0B5FF4 7F0814C4 8C6F0000 */ lw $t7, ($v1) +/* 0B5FF8 7F0814C8 C4520088 */ lwc1 $f18, 0x88($v0) +/* 0B5FFC 7F0814CC C44400A0 */ lwc1 $f4, 0xa0($v0) +/* 0B6000 7F0814D0 C5E80064 */ lwc1 $f8, 0x64($t7) +/* 0B6004 7F0814D4 C45029BC */ lwc1 $f16, 0x29bc($v0) +/* 0B6008 7F0814D8 46049180 */ add.s $f6, $f18, $f4 +/* 0B600C 7F0814DC 46083282 */ mul.s $f10, $f6, $f8 +/* 0B6010 7F0814E0 460A8000 */ add.s $f0, $f16, $f10 +/* 0B6014 7F0814E4 4602003C */ c.lt.s $f0, $f2 +/* 0B6018 7F0814E8 00000000 */ nop +/* 0B601C 7F0814EC 45020003 */ bc1fl .L7F0814FC +/* 0B6020 7F0814F0 C4520070 */ lwc1 $f18, 0x70($v0) +/* 0B6024 7F0814F4 46001006 */ mov.s $f0, $f2 +/* 0B6028 7F0814F8 C4520070 */ lwc1 $f18, 0x70($v0) +.L7F0814FC: +/* 0B602C 7F0814FC 3C038003 */ lui $v1, %hi(cameramode) +/* 0B6030 7F081500 24010005 */ li $at, 5 +/* 0B6034 7F081504 46009100 */ add.s $f4, $f18, $f0 +/* 0B6038 7F081508 E4440490 */ swc1 $f4, 0x490($v0) +/* 0B603C 7F08150C 8C636494 */ lw $v1, %lo(cameramode)($v1) +/* 0B6040 7F081510 10610005 */ beq $v1, $at, .L7F081528 +/* 0B6044 7F081514 24010006 */ li $at, 6 +/* 0B6048 7F081518 10610003 */ beq $v1, $at, .L7F081528 +/* 0B604C 7F08151C 24010007 */ li $at, 7 +/* 0B6050 7F081520 54610006 */ bnel $v1, $at, .L7F08153C +/* 0B6054 7F081524 8D020000 */ lw $v0, ($t0) +.L7F081528: +/* 0B6058 7F081528 8D020000 */ lw $v0, ($t0) +/* 0B605C 7F08152C 8C5800D4 */ lw $t8, 0xd4($v0) +/* 0B6060 7F081530 5700000C */ bnezl $t8, .L7F081564 +/* 0B6064 7F081534 8C5900D8 */ lw $t9, 0xd8($v0) +/* 0B6068 7F081538 8D020000 */ lw $v0, ($t0) +.L7F08153C: +/* 0B606C 7F08153C C446048C */ lwc1 $f6, 0x48c($v0) +/* 0B6070 7F081540 E44604B4 */ swc1 $f6, 0x4b4($v0) +/* 0B6074 7F081544 8D020000 */ lw $v0, ($t0) +/* 0B6078 7F081548 C4480490 */ lwc1 $f8, 0x490($v0) +/* 0B607C 7F08154C E44804B8 */ swc1 $f8, 0x4b8($v0) +/* 0B6080 7F081550 8D020000 */ lw $v0, ($t0) +/* 0B6084 7F081554 C4500494 */ lwc1 $f16, 0x494($v0) +/* 0B6088 7F081558 E45004BC */ swc1 $f16, 0x4bc($v0) +/* 0B608C 7F08155C 8D020000 */ lw $v0, ($t0) +/* 0B6090 7F081560 8C5900D8 */ lw $t9, 0xd8($v0) +.L7F081564: +/* 0B6094 7F081564 3C038004 */ lui $v1, %hi(stanlinelog_flag) +/* 0B6098 7F081568 24630FB4 */ addiu $v1, %lo(stanlinelog_flag) # addiu $v1, $v1, 0xfb4 +/* 0B609C 7F08156C 53200015 */ beql $t9, $zero, .L7F0815C4 +/* 0B60A0 7F081570 44801000 */ mtc1 $zero, $f2 +/* 0B60A4 7F081574 44801000 */ mtc1 $zero, $f2 +/* 0B60A8 7F081578 C44029C0 */ lwc1 $f0, 0x29c0($v0) +/* 0B60AC 7F08157C 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0B60B0 7F081580 4600103C */ c.lt.s $f2, $f0 +/* 0B60B4 7F081584 00000000 */ nop +/* 0B60B8 7F081588 4502000E */ bc1fl .L7F0815C4 +/* 0B60BC 7F08158C 44801000 */ mtc1 $zero, $f2 +/* 0B60C0 7F081590 44815000 */ mtc1 $at, $f10 +/* 0B60C4 7F081594 00000000 */ nop +/* 0B60C8 7F081598 460A0481 */ sub.s $f18, $f0, $f10 +/* 0B60CC 7F08159C E45229C0 */ swc1 $f18, 0x29c0($v0) +/* 0B60D0 7F0815A0 8D020000 */ lw $v0, ($t0) +/* 0B60D4 7F0815A4 C44429C0 */ lwc1 $f4, 0x29c0($v0) +/* 0B60D8 7F0815A8 4602203C */ c.lt.s $f4, $f2 +/* 0B60DC 7F0815AC 00000000 */ nop +/* 0B60E0 7F0815B0 45020004 */ bc1fl .L7F0815C4 +/* 0B60E4 7F0815B4 44801000 */ mtc1 $zero, $f2 +/* 0B60E8 7F0815B8 E44229C0 */ swc1 $f2, 0x29c0($v0) +/* 0B60EC 7F0815BC 8D020000 */ lw $v0, ($t0) +/* 0B60F0 7F0815C0 44801000 */ mtc1 $zero, $f2 +.L7F0815C4: +/* 0B60F4 7F0815C4 C4460158 */ lwc1 $f6, 0x158($v0) +/* 0B60F8 7F0815C8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B60FC 7F0815CC 4602303C */ c.lt.s $f6, $f2 +/* 0B6100 7F0815D0 00000000 */ nop +/* 0B6104 7F0815D4 4502000C */ bc1fl .L7F081608 +/* 0B6108 7F0815D8 8C490488 */ lw $t1, 0x488($v0) +/* 0B610C 7F0815DC 44814000 */ mtc1 $at, $f8 +/* 0B6110 7F0815E0 C4500164 */ lwc1 $f16, 0x164($v0) +/* 0B6114 7F0815E4 C44429C0 */ lwc1 $f4, 0x29c0($v0) +/* 0B6118 7F0815E8 46104281 */ sub.s $f10, $f8, $f16 +/* 0B611C 7F0815EC C44804B8 */ lwc1 $f8, 0x4b8($v0) +/* 0B6120 7F0815F0 46005487 */ neg.s $f18, $f10 +/* 0B6124 7F0815F4 46049182 */ mul.s $f6, $f18, $f4 +/* 0B6128 7F0815F8 46064400 */ add.s $f16, $f8, $f6 +/* 0B612C 7F0815FC E45004B8 */ swc1 $f16, 0x4b8($v0) +/* 0B6130 7F081600 8D020000 */ lw $v0, ($t0) +/* 0B6134 7F081604 8C490488 */ lw $t1, 0x488($v0) +.L7F081608: +/* 0B6138 7F081608 8C6A0000 */ lw $t2, ($v1) +/* 0B613C 7F08160C AC600000 */ sw $zero, ($v1) +/* 0B6140 7F081610 AFA9002C */ sw $t1, 0x2c($sp) +/* 0B6144 7F081614 AFAA0028 */ sw $t2, 0x28($sp) +/* 0B6148 7F081618 C44A04BC */ lwc1 $f10, 0x4bc($v0) +/* 0B614C 7F08161C 8C4704B4 */ lw $a3, 0x4b4($v0) +/* 0B6150 7F081620 8C460494 */ lw $a2, 0x494($v0) +/* 0B6154 7F081624 8C45048C */ lw $a1, 0x48c($v0) +/* 0B6158 7F081628 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0B615C 7F08162C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0B6160 7F081630 8FAB0028 */ lw $t3, 0x28($sp) +/* 0B6164 7F081634 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B6168 7F081638 3C018004 */ lui $at, %hi(stanlinelog_flag) +/* 0B616C 7F08163C 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B6170 7F081640 AC2B0FB4 */ sw $t3, %lo(stanlinelog_flag)($at) +/* 0B6174 7F081644 8D0D0000 */ lw $t5, ($t0) +/* 0B6178 7F081648 8FAC002C */ lw $t4, 0x2c($sp) +/* 0B617C 7F08164C ADAC04D8 */ sw $t4, 0x4d8($t5) +/* 0B6180 7F081650 8D020000 */ lw $v0, ($t0) +/* 0B6184 7F081654 C45204B4 */ lwc1 $f18, 0x4b4($v0) +/* 0B6188 7F081658 E45204A4 */ swc1 $f18, 0x4a4($v0) +/* 0B618C 7F08165C 8D020000 */ lw $v0, ($t0) +/* 0B6190 7F081660 C44404BC */ lwc1 $f4, 0x4bc($v0) +/* 0B6194 7F081664 E44404AC */ swc1 $f4, 0x4ac($v0) +/* 0B6198 7F081668 8D020000 */ lw $v0, ($t0) +/* 0B619C 7F08166C 8C4404D8 */ lw $a0, 0x4d8($v0) +/* 0B61A0 7F081670 8C4504B4 */ lw $a1, 0x4b4($v0) +/* 0B61A4 7F081674 0FC20358 */ jal sub_GAME_7F080D60 +/* 0B61A8 7F081678 8C4604BC */ lw $a2, 0x4bc($v0) +/* 0B61AC 7F08167C 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B61B0 7F081680 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0B61B4 7F081684 8D0E0000 */ lw $t6, ($t0) +/* 0B61B8 7F081688 3C048005 */ lui $a0, %hi(clock_timer) +/* 0B61BC 7F08168C 24848374 */ addiu $a0, %lo(clock_timer) # addiu $a0, $a0, -0x7c8c +/* 0B61C0 7F081690 E5C004A8 */ swc1 $f0, 0x4a8($t6) +/* 0B61C4 7F081694 8D020000 */ lw $v0, ($t0) +/* 0B61C8 7F081698 00001825 */ move $v1, $zero +/* 0B61CC 7F08169C 3C018005 */ lui $at, %hi(D_80055108) +/* 0B61D0 7F0816A0 8C4F0488 */ lw $t7, 0x488($v0) +/* 0B61D4 7F0816A4 8C5800A8 */ lw $t8, 0xa8($v0) +/* 0B61D8 7F0816A8 AF0F0014 */ sw $t7, 0x14($t8) +/* 0B61DC 7F0816AC 8D020000 */ lw $v0, ($t0) +/* 0B61E0 7F0816B0 C448048C */ lwc1 $f8, 0x48c($v0) +/* 0B61E4 7F0816B4 8C5900A8 */ lw $t9, 0xa8($v0) +/* 0B61E8 7F0816B8 E7280008 */ swc1 $f8, 8($t9) +/* 0B61EC 7F0816BC 8D020000 */ lw $v0, ($t0) +/* 0B61F0 7F0816C0 C4460490 */ lwc1 $f6, 0x490($v0) +/* 0B61F4 7F0816C4 8C4900A8 */ lw $t1, 0xa8($v0) +/* 0B61F8 7F0816C8 E526000C */ swc1 $f6, 0xc($t1) +/* 0B61FC 7F0816CC 8D020000 */ lw $v0, ($t0) +/* 0B6200 7F0816D0 C4500494 */ lwc1 $f16, 0x494($v0) +/* 0B6204 7F0816D4 8C4A00A8 */ lw $t2, 0xa8($v0) +/* 0B6208 7F0816D8 E5500010 */ swc1 $f16, 0x10($t2) +/* 0B620C 7F0816DC 8C8B0000 */ lw $t3, ($a0) +/* 0B6210 7F0816E0 5960001A */ blezl $t3, .L7F08174C +/* 0B6214 7F0816E4 8D020000 */ lw $v0, ($t0) +/* 0B6218 7F0816E8 C4205108 */ lwc1 $f0, %lo(D_80055108)($at) +/* 0B621C 7F0816EC 8D020000 */ lw $v0, ($t0) +.L7F0816F0: +/* 0B6220 7F0816F0 24630001 */ addiu $v1, $v1, 1 +/* 0B6224 7F0816F4 C45203B8 */ lwc1 $f18, 0x3b8($v0) +/* 0B6228 7F0816F8 C44A04B4 */ lwc1 $f10, 0x4b4($v0) +/* 0B622C 7F0816FC 46120102 */ mul.s $f4, $f0, $f18 +/* 0B6230 7F081700 46045200 */ add.s $f8, $f10, $f4 +/* 0B6234 7F081704 E44803B8 */ swc1 $f8, 0x3b8($v0) +/* 0B6238 7F081708 8D020000 */ lw $v0, ($t0) +/* 0B623C 7F08170C C45003BC */ lwc1 $f16, 0x3bc($v0) +/* 0B6240 7F081710 C44604B8 */ lwc1 $f6, 0x4b8($v0) +/* 0B6244 7F081714 46100482 */ mul.s $f18, $f0, $f16 +/* 0B6248 7F081718 46123280 */ add.s $f10, $f6, $f18 +/* 0B624C 7F08171C E44A03BC */ swc1 $f10, 0x3bc($v0) +/* 0B6250 7F081720 8D020000 */ lw $v0, ($t0) +/* 0B6254 7F081724 C44803C0 */ lwc1 $f8, 0x3c0($v0) +/* 0B6258 7F081728 C44404BC */ lwc1 $f4, 0x4bc($v0) +/* 0B625C 7F08172C 46080402 */ mul.s $f16, $f0, $f8 +/* 0B6260 7F081730 46102180 */ add.s $f6, $f4, $f16 +/* 0B6264 7F081734 E44603C0 */ swc1 $f6, 0x3c0($v0) +/* 0B6268 7F081738 8C8C0000 */ lw $t4, ($a0) +/* 0B626C 7F08173C 006C082A */ slt $at, $v1, $t4 +/* 0B6270 7F081740 5420FFEB */ bnezl $at, .L7F0816F0 +/* 0B6274 7F081744 8D020000 */ lw $v0, ($t0) +/* 0B6278 7F081748 8D020000 */ lw $v0, ($t0) +.L7F08174C: +/* 0B627C 7F08174C 3C018005 */ lui $at, %hi(D_8005510C) +/* 0B6280 7F081750 C420510C */ lwc1 $f0, %lo(D_8005510C)($at) +/* 0B6284 7F081754 C45203B8 */ lwc1 $f18, 0x3b8($v0) +/* 0B6288 7F081758 46009282 */ mul.s $f10, $f18, $f0 +/* 0B628C 7F08175C E44A03C4 */ swc1 $f10, 0x3c4($v0) +/* 0B6290 7F081760 8D020000 */ lw $v0, ($t0) +/* 0B6294 7F081764 C44803BC */ lwc1 $f8, 0x3bc($v0) +/* 0B6298 7F081768 46004102 */ mul.s $f4, $f8, $f0 +/* 0B629C 7F08176C E44403C8 */ swc1 $f4, 0x3c8($v0) +/* 0B62A0 7F081770 8D020000 */ lw $v0, ($t0) +/* 0B62A4 7F081774 C45003C0 */ lwc1 $f16, 0x3c0($v0) +/* 0B62A8 7F081778 46008182 */ mul.s $f6, $f16, $f0 +/* 0B62AC 7F08177C E44603CC */ swc1 $f6, 0x3cc($v0) +/* 0B62B0 7F081780 8FBF001C */ lw $ra, 0x1c($sp) +/* 0B62B4 7F081784 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0B62B8 7F081788 03E00008 */ jr $ra +/* 0B62BC 7F08178C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F081790(void) { + f32 phi_f0; + void *phi_v0; + f32 phi_f0_2; + void *phi_v0_2; + void *phi_v0_3; + + // Node 0 + if (pPlayer->vv_verta < -180.0f) + { + // Node 1 +loop_2: + // Node 2 + pPlayer->vv_verta = (f32) (pPlayer->vv_verta + 360.0f); + if (pPlayer->vv_verta < -180.0f) + { + goto loop_2; + } + } + // Node 3 + phi_f0 = pPlayer->vv_verta; + phi_v0 = pPlayer; + phi_f0_2 = pPlayer->vv_verta; + phi_v0_2 = pPlayer; + if (180.0f <= pPlayer->vv_verta) + { +loop_4: + // Node 4 + phi_v0->unk158 = (f32) (phi_f0 - 360.0f); + phi_f0 = pPlayer->vv_verta; + phi_v0 = pPlayer; + phi_f0_2 = pPlayer->vv_verta; + phi_v0_2 = pPlayer; + if (180.0f <= pPlayer->vv_verta) + { + goto loop_4; + } + } + // Node 5 + if (90.0f < phi_f0_2) + { + // Node 6 + phi_v0_2->unk158 = 90.0f; + phi_v0_3 = pPlayer; + } + else + { + // Node 7 + phi_v0_3 = phi_v0_2; + if (phi_f0_2 < -90.0f) + { + // Node 8 + phi_v0_2->unk158 = -90.0f; + phi_v0_3 = pPlayer; + } + } + // Node 9 + pPlayer->vv_costheta = cosf((phi_v0_3->unk148 * D_80055110), 360.0f); + pPlayer->vv_sintheta = sinf((pPlayer->field_148 * D_80055114)); + pPlayer->vv_verta360 = (f32) pPlayer->vv_verta; + if (pPlayer->vv_verta360 < 0.0f) + { + // Node 10 + pPlayer->vv_verta360 = (f32) (pPlayer->vv_verta360 + 360.0f); + } + // Node 11 + pPlayer->vv_cosverta = cosf((pPlayer->vv_verta360 * D_80055118), 360.0f); + pPlayer->vv_sinverta = sinf((pPlayer->vv_verta360 * D_8005511C)); + pPlayer->field_498 = (f32) -pPlayer->vv_sintheta; + pPlayer->field_49C = 0.0f; + pPlayer->field_4A0 = (f32) pPlayer->vv_costheta; + return pPlayer; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055110 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055114 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055118 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_8005511C +.word 0x3c8efa35 /*0.017453292*/ +.text +glabel sub_GAME_7F081790 +/* 0B62C0 7F081790 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0B62C4 7F081794 AFB00018 */ sw $s0, 0x18($sp) +/* 0B62C8 7F081798 3C108008 */ lui $s0, %hi(pPlayer) +/* 0B62CC 7F08179C 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0B62D0 7F0817A0 8E020000 */ lw $v0, ($s0) +/* 0B62D4 7F0817A4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0B62D8 7F0817A8 3C01C334 */ li $at, 0xC3340000 # -180.000000 +/* 0B62DC 7F0817AC 44811000 */ mtc1 $at, $f2 +/* 0B62E0 7F0817B0 C4400158 */ lwc1 $f0, 0x158($v0) +/* 0B62E4 7F0817B4 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B62E8 7F0817B8 4602003C */ c.lt.s $f0, $f2 +/* 0B62EC 7F0817BC 00000000 */ nop +/* 0B62F0 7F0817C0 4502000C */ bc1fl .L7F0817F4 +/* 0B62F4 7F0817C4 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0B62F8 7F0817C8 44817000 */ mtc1 $at, $f14 +/* 0B62FC 7F0817CC 00000000 */ nop +/* 0B6300 7F0817D0 460E0100 */ add.s $f4, $f0, $f14 +.L7F0817D4: +/* 0B6304 7F0817D4 E4440158 */ swc1 $f4, 0x158($v0) +/* 0B6308 7F0817D8 8E020000 */ lw $v0, ($s0) +/* 0B630C 7F0817DC C4400158 */ lwc1 $f0, 0x158($v0) +/* 0B6310 7F0817E0 4602003C */ c.lt.s $f0, $f2 +/* 0B6314 7F0817E4 00000000 */ nop +/* 0B6318 7F0817E8 4503FFFA */ bc1tl .L7F0817D4 +/* 0B631C 7F0817EC 460E0100 */ add.s $f4, $f0, $f14 +/* 0B6320 7F0817F0 3C014334 */ li $at, 0x43340000 # 180.000000 +.L7F0817F4: +/* 0B6324 7F0817F4 44811000 */ mtc1 $at, $f2 +/* 0B6328 7F0817F8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B632C 7F0817FC 44817000 */ mtc1 $at, $f14 +/* 0B6330 7F081800 4600103E */ c.le.s $f2, $f0 +/* 0B6334 7F081804 3C0142B4 */ li $at, 0x42B40000 # 90.000000 +/* 0B6338 7F081808 4502000A */ bc1fl .L7F081834 +/* 0B633C 7F08180C 44811000 */ mtc1 $at, $f2 +/* 0B6340 7F081810 460E0181 */ sub.s $f6, $f0, $f14 +.L7F081814: +/* 0B6344 7F081814 E4460158 */ swc1 $f6, 0x158($v0) +/* 0B6348 7F081818 8E020000 */ lw $v0, ($s0) +/* 0B634C 7F08181C C4400158 */ lwc1 $f0, 0x158($v0) +/* 0B6350 7F081820 4600103E */ c.le.s $f2, $f0 +/* 0B6354 7F081824 00000000 */ nop +/* 0B6358 7F081828 4503FFFA */ bc1tl .L7F081814 +/* 0B635C 7F08182C 460E0181 */ sub.s $f6, $f0, $f14 +/* 0B6360 7F081830 44811000 */ mtc1 $at, $f2 +.L7F081834: +/* 0B6364 7F081834 3C01C2B4 */ li $at, 0xC2B40000 # -90.000000 +/* 0B6368 7F081838 4600103C */ c.lt.s $f2, $f0 +/* 0B636C 7F08183C 00000000 */ nop +/* 0B6370 7F081840 45020005 */ bc1fl .L7F081858 +/* 0B6374 7F081844 44811000 */ mtc1 $at, $f2 +/* 0B6378 7F081848 E4420158 */ swc1 $f2, 0x158($v0) +/* 0B637C 7F08184C 10000009 */ b .L7F081874 +/* 0B6380 7F081850 8E020000 */ lw $v0, ($s0) +/* 0B6384 7F081854 44811000 */ mtc1 $at, $f2 +.L7F081858: +/* 0B6388 7F081858 00000000 */ nop +/* 0B638C 7F08185C 4602003C */ c.lt.s $f0, $f2 +/* 0B6390 7F081860 00000000 */ nop +/* 0B6394 7F081864 45000003 */ bc1f .L7F081874 +/* 0B6398 7F081868 00000000 */ nop +/* 0B639C 7F08186C E4420158 */ swc1 $f2, 0x158($v0) +/* 0B63A0 7F081870 8E020000 */ lw $v0, ($s0) +.L7F081874: +/* 0B63A4 7F081874 3C018005 */ lui $at, %hi(D_80055110) +/* 0B63A8 7F081878 C42A5110 */ lwc1 $f10, %lo(D_80055110)($at) +/* 0B63AC 7F08187C C4480148 */ lwc1 $f8, 0x148($v0) +/* 0B63B0 7F081880 460A4302 */ mul.s $f12, $f8, $f10 +/* 0B63B4 7F081884 0FC15FA8 */ jal cosf +/* 0B63B8 7F081888 00000000 */ nop +/* 0B63BC 7F08188C 8E0E0000 */ lw $t6, ($s0) +/* 0B63C0 7F081890 3C018005 */ lui $at, %hi(D_80055114) +/* 0B63C4 7F081894 E5C00150 */ swc1 $f0, 0x150($t6) +/* 0B63C8 7F081898 8E0F0000 */ lw $t7, ($s0) +/* 0B63CC 7F08189C C4325114 */ lwc1 $f18, %lo(D_80055114)($at) +/* 0B63D0 7F0818A0 C5F00148 */ lwc1 $f16, 0x148($t7) +/* 0B63D4 7F0818A4 46128302 */ mul.s $f12, $f16, $f18 +/* 0B63D8 7F0818A8 0FC15FAB */ jal sinf +/* 0B63DC 7F0818AC 00000000 */ nop +/* 0B63E0 7F0818B0 8E180000 */ lw $t8, ($s0) +/* 0B63E4 7F0818B4 44803000 */ mtc1 $zero, $f6 +/* 0B63E8 7F0818B8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B63EC 7F0818BC E7000154 */ swc1 $f0, 0x154($t8) +/* 0B63F0 7F0818C0 8E020000 */ lw $v0, ($s0) +/* 0B63F4 7F0818C4 44817000 */ mtc1 $at, $f14 +/* 0B63F8 7F0818C8 3C018005 */ lui $at, %hi(D_80055118) +/* 0B63FC 7F0818CC C4440158 */ lwc1 $f4, 0x158($v0) +/* 0B6400 7F0818D0 E444015C */ swc1 $f4, 0x15c($v0) +/* 0B6404 7F0818D4 8E020000 */ lw $v0, ($s0) +/* 0B6408 7F0818D8 C442015C */ lwc1 $f2, 0x15c($v0) +/* 0B640C 7F0818DC 4606103C */ c.lt.s $f2, $f6 +/* 0B6410 7F0818E0 00000000 */ nop +/* 0B6414 7F0818E4 45000005 */ bc1f .L7F0818FC +/* 0B6418 7F0818E8 00000000 */ nop +/* 0B641C 7F0818EC 460E1200 */ add.s $f8, $f2, $f14 +/* 0B6420 7F0818F0 E448015C */ swc1 $f8, 0x15c($v0) +/* 0B6424 7F0818F4 8E190000 */ lw $t9, ($s0) +/* 0B6428 7F0818F8 C722015C */ lwc1 $f2, 0x15c($t9) +.L7F0818FC: +/* 0B642C 7F0818FC C42A5118 */ lwc1 $f10, %lo(D_80055118)($at) +/* 0B6430 7F081900 460A1302 */ mul.s $f12, $f2, $f10 +/* 0B6434 7F081904 0FC15FA8 */ jal cosf +/* 0B6438 7F081908 00000000 */ nop +/* 0B643C 7F08190C 8E080000 */ lw $t0, ($s0) +/* 0B6440 7F081910 3C018005 */ lui $at, %hi(D_8005511C) +/* 0B6444 7F081914 E5000164 */ swc1 $f0, 0x164($t0) +/* 0B6448 7F081918 8E090000 */ lw $t1, ($s0) +/* 0B644C 7F08191C C432511C */ lwc1 $f18, %lo(D_8005511C)($at) +/* 0B6450 7F081920 C530015C */ lwc1 $f16, 0x15c($t1) +/* 0B6454 7F081924 46128302 */ mul.s $f12, $f16, $f18 +/* 0B6458 7F081928 0FC15FAB */ jal sinf +/* 0B645C 7F08192C 00000000 */ nop +/* 0B6460 7F081930 8E0A0000 */ lw $t2, ($s0) +/* 0B6464 7F081934 44804000 */ mtc1 $zero, $f8 +/* 0B6468 7F081938 E5400168 */ swc1 $f0, 0x168($t2) +/* 0B646C 7F08193C 8E020000 */ lw $v0, ($s0) +/* 0B6470 7F081940 C4440154 */ lwc1 $f4, 0x154($v0) +/* 0B6474 7F081944 46002187 */ neg.s $f6, $f4 +/* 0B6478 7F081948 E4460498 */ swc1 $f6, 0x498($v0) +/* 0B647C 7F08194C 8E0B0000 */ lw $t3, ($s0) +/* 0B6480 7F081950 E568049C */ swc1 $f8, 0x49c($t3) +/* 0B6484 7F081954 8E020000 */ lw $v0, ($s0) +/* 0B6488 7F081958 C44A0150 */ lwc1 $f10, 0x150($v0) +/* 0B648C 7F08195C E44A04A0 */ swc1 $f10, 0x4a0($v0) +/* 0B6490 7F081960 8FBF001C */ lw $ra, 0x1c($sp) +/* 0B6494 7F081964 8FB00018 */ lw $s0, 0x18($sp) +/* 0B6498 7F081968 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0B649C 7F08196C 03E00008 */ jr $ra +/* 0B64A0 7F081970 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void controller_gameplay_interaction(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055120 +.word 0x3d75c290 /*0.060000002*/ +glabel D_80055124 +.word 0x3da3d708 /*0.079999983*/ +glabel D_80055128 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_8005512C +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055130 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055134 +.word 0x3f8a3d71 /*1.08*/ +glabel D_80055138 +.word 0x3c23d70a /*0.0099999998*/ +glabel D_8005513C +.word 0x3c23d70a /*0.0099999998*/ +glabel D_80055140 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055144 +.word 0x3f5dddde /*0.86666667*/ +glabel D_80055148 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_8005514C +.word 0x3e99999a /*0.30000001*/ +glabel D_80055150 +.word 0x3e99999a /*0.30000001*/ +glabel D_80055154 +.word 0x3e99999a /*0.30000001*/ +glabel D_80055158 +.word 0x3f6b851f /*0.92000002*/ +glabel D_8005515C +.word 0x3da3d708 /*0.079999983*/ +glabel D_80055160 +.word 0x3e99999a /*0.30000001*/ +glabel D_80055164 +.word 0x3dcccccd /*0.1*/ +glabel D_80055168 +.word 0x3f266666 /*0.64999998*/ +.text +glabel controller_gameplay_interaction +/* 0B64A4 7F081974 27BDFE40 */ addiu $sp, $sp, -0x1c0 +/* 0B64A8 7F081978 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 0B64AC 7F08197C 4480A000 */ mtc1 $zero, $f20 +/* 0B64B0 7F081980 AFBF003C */ sw $ra, 0x3c($sp) +/* 0B64B4 7F081984 AFB00038 */ sw $s0, 0x38($sp) +/* 0B64B8 7F081988 AFA401C0 */ sw $a0, 0x1c0($sp) +/* 0B64BC 7F08198C AFA501C4 */ sw $a1, 0x1c4($sp) +/* 0B64C0 7F081990 AFA601C8 */ sw $a2, 0x1c8($sp) +/* 0B64C4 7F081994 AFA701CC */ sw $a3, 0x1cc($sp) +/* 0B64C8 7F081998 AFA001BC */ sw $zero, 0x1bc($sp) +/* 0B64CC 7F08199C AFA001B8 */ sw $zero, 0x1b8($sp) +/* 0B64D0 7F0819A0 AFA001B4 */ sw $zero, 0x1b4($sp) +/* 0B64D4 7F0819A4 AFA001B0 */ sw $zero, 0x1b0($sp) +/* 0B64D8 7F0819A8 AFA001AC */ sw $zero, 0x1ac($sp) +/* 0B64DC 7F0819AC AFA001A8 */ sw $zero, 0x1a8($sp) +/* 0B64E0 7F0819B0 AFA001A4 */ sw $zero, 0x1a4($sp) +/* 0B64E4 7F0819B4 AFA001A0 */ sw $zero, 0x1a0($sp) +/* 0B64E8 7F0819B8 AFA0019C */ sw $zero, 0x19c($sp) +/* 0B64EC 7F0819BC AFA00198 */ sw $zero, 0x198($sp) +/* 0B64F0 7F0819C0 AFA00194 */ sw $zero, 0x194($sp) +/* 0B64F4 7F0819C4 AFA00190 */ sw $zero, 0x190($sp) +/* 0B64F8 7F0819C8 AFA00174 */ sw $zero, 0x174($sp) +/* 0B64FC 7F0819CC AFA00170 */ sw $zero, 0x170($sp) +/* 0B6500 7F0819D0 AFA0016C */ sw $zero, 0x16c($sp) +/* 0B6504 7F0819D4 AFA00168 */ sw $zero, 0x168($sp) +/* 0B6508 7F0819D8 AFA0015C */ sw $zero, 0x15c($sp) +/* 0B650C 7F0819DC AFA00158 */ sw $zero, 0x158($sp) +/* 0B6510 7F0819E0 AFA00154 */ sw $zero, 0x154($sp) +/* 0B6514 7F0819E4 AFA00150 */ sw $zero, 0x150($sp) +/* 0B6518 7F0819E8 AFA0014C */ sw $zero, 0x14c($sp) +/* 0B651C 7F0819EC AFA00148 */ sw $zero, 0x148($sp) +/* 0B6520 7F0819F0 E7B4018C */ swc1 $f20, 0x18c($sp) +/* 0B6524 7F0819F4 E7B40188 */ swc1 $f20, 0x188($sp) +/* 0B6528 7F0819F8 E7B40184 */ swc1 $f20, 0x184($sp) +/* 0B652C 7F0819FC E7B40180 */ swc1 $f20, 0x180($sp) +/* 0B6530 7F081A00 E7B4017C */ swc1 $f20, 0x17c($sp) +/* 0B6534 7F081A04 E7B40178 */ swc1 $f20, 0x178($sp) +/* 0B6538 7F081A08 E7B40164 */ swc1 $f20, 0x164($sp) +/* 0B653C 7F081A0C 0FC2938E */ jal get_cur_player_look_vertical_inverted +/* 0B6540 7F081A10 E7B40160 */ swc1 $f20, 0x160($sp) +/* 0B6544 7F081A14 83A401C3 */ lb $a0, 0x1c3($sp) +/* 0B6548 7F081A18 2C4E0001 */ sltiu $t6, $v0, 1 +/* 0B654C 7F081A1C AFAE0144 */ sw $t6, 0x144($sp) +/* 0B6550 7F081A20 2881FFFB */ slti $at, $a0, -5 +/* 0B6554 7F081A24 10200003 */ beqz $at, .L7F081A34 +/* 0B6558 7F081A28 AFA00140 */ sw $zero, 0x140($sp) +/* 0B655C 7F081A2C 10000006 */ b .L7F081A48 +/* 0B6560 7F081A30 24830005 */ addiu $v1, $a0, 5 +.L7F081A34: +/* 0B6564 7F081A34 28810006 */ slti $at, $a0, 6 +/* 0B6568 7F081A38 14200003 */ bnez $at, .L7F081A48 +/* 0B656C 7F081A3C 00001825 */ move $v1, $zero +/* 0B6570 7F081A40 10000001 */ b .L7F081A48 +/* 0B6574 7F081A44 2483FFFB */ addiu $v1, $a0, -5 +.L7F081A48: +/* 0B6578 7F081A48 83A501C7 */ lb $a1, 0x1c7($sp) +/* 0B657C 7F081A4C 3C108008 */ lui $s0, %hi(pPlayer) +/* 0B6580 7F081A50 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0B6584 7F081A54 28A1FFFB */ slti $at, $a1, -5 +/* 0B6588 7F081A58 10200003 */ beqz $at, .L7F081A68 +/* 0B658C 7F081A5C 83AF01C3 */ lb $t7, 0x1c3($sp) +/* 0B6590 7F081A60 10000006 */ b .L7F081A7C +/* 0B6594 7F081A64 24A20005 */ addiu $v0, $a1, 5 +.L7F081A68: +/* 0B6598 7F081A68 28A10006 */ slti $at, $a1, 6 +/* 0B659C 7F081A6C 14200003 */ bnez $at, .L7F081A7C +/* 0B65A0 7F081A70 00001025 */ move $v0, $zero +/* 0B65A4 7F081A74 10000001 */ b .L7F081A7C +/* 0B65A8 7F081A78 24A2FFFB */ addiu $v0, $a1, -5 +.L7F081A7C: +/* 0B65AC 7F081A7C 83B801C7 */ lb $t8, 0x1c7($sp) +/* 0B65B0 7F081A80 8E080000 */ lw $t0, ($s0) +/* 0B65B4 7F081A84 AFAF0134 */ sw $t7, 0x134($sp) +/* 0B65B8 7F081A88 AFA3012C */ sw $v1, 0x12c($sp) +/* 0B65BC 7F081A8C AFA20128 */ sw $v0, 0x128($sp) +/* 0B65C0 7F081A90 AFA30124 */ sw $v1, 0x124($sp) +/* 0B65C4 7F081A94 AFA20120 */ sw $v0, 0x120($sp) +/* 0B65C8 7F081A98 AFB80130 */ sw $t8, 0x130($sp) +/* 0B65CC 7F081A9C 8D1900D8 */ lw $t9, 0xd8($t0) +/* 0B65D0 7F081AA0 1720001B */ bnez $t9, .L7F081B10 +/* 0B65D4 7F081AA4 3C0A8003 */ lui $t2, %hi(camera_80036424) +/* 0B65D8 7F081AA8 8D4A6424 */ lw $t2, %lo(camera_80036424)($t2) +/* 0B65DC 7F081AAC 5D400019 */ bgtzl $t2, .L7F081B14 +/* 0B65E0 7F081AB0 8E080000 */ lw $t0, ($s0) +/* 0B65E4 7F081AB4 8D0201C8 */ lw $v0, 0x1c8($t0) +/* 0B65E8 7F081AB8 24010005 */ li $at, 5 +/* 0B65EC 7F081ABC 97AC01CE */ lhu $t4, 0x1ce($sp) +/* 0B65F0 7F081AC0 50410007 */ beql $v0, $at, .L7F081AE0 +/* 0B65F4 7F081AC4 24010005 */ li $at, 5 +/* 0B65F8 7F081AC8 97AB01CA */ lhu $t3, 0x1ca($sp) +/* 0B65FC 7F081ACC 01806827 */ not $t5, $t4 +/* 0B6600 7F081AD0 016D7024 */ and $t6, $t3, $t5 +/* 0B6604 7F081AD4 31CF1000 */ andi $t7, $t6, 0x1000 +/* 0B6608 7F081AD8 15E00006 */ bnez $t7, .L7F081AF4 +/* 0B660C 7F081ADC 24010005 */ li $at, 5 +.L7F081AE0: +/* 0B6610 7F081AE0 5441000C */ bnel $v0, $at, .L7F081B14 +/* 0B6614 7F081AE4 8E080000 */ lw $t0, ($s0) +/* 0B6618 7F081AE8 8D1801D0 */ lw $t8, 0x1d0($t0) +/* 0B661C 7F081AEC 53000009 */ beql $t8, $zero, .L7F081B14 +/* 0B6620 7F081AF0 8E080000 */ lw $t0, ($s0) +.L7F081AF4: +/* 0B6624 7F081AF4 0FC26919 */ jal get_num_players +/* 0B6628 7F081AF8 00000000 */ nop +/* 0B662C 7F081AFC 24010001 */ li $at, 1 +/* 0B6630 7F081B00 54410004 */ bnel $v0, $at, .L7F081B14 +/* 0B6634 7F081B04 8E080000 */ lw $t0, ($s0) +/* 0B6638 7F081B08 0FC1FE1D */ jal trigger_solo_watch_menu +/* 0B663C 7F081B0C 00002025 */ move $a0, $zero +.L7F081B10: +/* 0B6640 7F081B10 8E080000 */ lw $t0, ($s0) +.L7F081B14: +/* 0B6644 7F081B14 8D1901C8 */ lw $t9, 0x1c8($t0) +/* 0B6648 7F081B18 572003AC */ bnezl $t9, .L7F0829CC +/* 0B664C 7F081B1C 8E0A0000 */ lw $t2, ($s0) +/* 0B6650 7F081B20 8D0A00D8 */ lw $t2, 0xd8($t0) +/* 0B6654 7F081B24 554003A9 */ bnezl $t2, .L7F0829CC +/* 0B6658 7F081B28 8E0A0000 */ lw $t2, ($s0) +/* 0B665C 7F081B2C 0FC26919 */ jal get_num_players +/* 0B6660 7F081B30 00000000 */ nop +/* 0B6664 7F081B34 24010001 */ li $at, 1 +/* 0B6668 7F081B38 10410008 */ beq $v0, $at, .L7F081B5C +/* 0B666C 7F081B3C 3C0C8009 */ lui $t4, %hi(stop_play_flag) +/* 0B6670 7F081B40 8D8CC700 */ lw $t4, %lo(stop_play_flag)($t4) +/* 0B6674 7F081B44 3C0B8009 */ lui $t3, %hi(is_gameover_flag) +/* 0B6678 7F081B48 558003A0 */ bnezl $t4, .L7F0829CC +/* 0B667C 7F081B4C 8E0A0000 */ lw $t2, ($s0) +/* 0B6680 7F081B50 8D6BC704 */ lw $t3, %lo(is_gameover_flag)($t3) +/* 0B6684 7F081B54 5560039D */ bnezl $t3, .L7F0829CC +/* 0B6688 7F081B58 8E0A0000 */ lw $t2, ($s0) +.L7F081B5C: +/* 0B668C 7F081B5C 97AD01CA */ lhu $t5, 0x1ca($sp) +/* 0B6690 7F081B60 0FC29370 */ jal cur_player_get_control_type +/* 0B6694 7F081B64 AFAD005C */ sw $t5, 0x5c($sp) +/* 0B6698 7F081B68 24010006 */ li $at, 6 +/* 0B669C 7F081B6C 50410011 */ beql $v0, $at, .L7F081BB4 +/* 0B66A0 7F081B70 97AF01CE */ lhu $t7, 0x1ce($sp) +/* 0B66A4 7F081B74 0FC29370 */ jal cur_player_get_control_type +/* 0B66A8 7F081B78 00000000 */ nop +/* 0B66AC 7F081B7C 24010007 */ li $at, 7 +/* 0B66B0 7F081B80 5041000C */ beql $v0, $at, .L7F081BB4 +/* 0B66B4 7F081B84 97AF01CE */ lhu $t7, 0x1ce($sp) +/* 0B66B8 7F081B88 0FC29370 */ jal cur_player_get_control_type +/* 0B66BC 7F081B8C 00000000 */ nop +/* 0B66C0 7F081B90 24010005 */ li $at, 5 +/* 0B66C4 7F081B94 50410007 */ beql $v0, $at, .L7F081BB4 +/* 0B66C8 7F081B98 97AF01CE */ lhu $t7, 0x1ce($sp) +/* 0B66CC 7F081B9C 0FC29370 */ jal cur_player_get_control_type +/* 0B66D0 7F081BA0 00000000 */ nop +/* 0B66D4 7F081BA4 24010004 */ li $at, 4 +/* 0B66D8 7F081BA8 144101C3 */ bne $v0, $at, .L7F0822B8 +/* 0B66DC 7F081BAC 00000000 */ nop +/* 0B66E0 7F081BB0 97AF01CE */ lhu $t7, 0x1ce($sp) +.L7F081BB4: +/* 0B66E4 7F081BB4 8FAE005C */ lw $t6, 0x5c($sp) +/* 0B66E8 7F081BB8 01E0C027 */ not $t8, $t7 +/* 0B66EC 7F081BBC 01D8C824 */ and $t9, $t6, $t8 +/* 0B66F0 7F081BC0 0FC26C54 */ jal get_cur_playernum +/* 0B66F4 7F081BC4 AFB90060 */ sw $t9, 0x60($sp) +/* 0B66F8 7F081BC8 0FC26919 */ jal get_num_players +/* 0B66FC 7F081BCC AFA20064 */ sw $v0, 0x64($sp) +/* 0B6700 7F081BD0 8FAA0064 */ lw $t2, 0x64($sp) +/* 0B6704 7F081BD4 004A2021 */ addu $a0, $v0, $t2 +/* 0B6708 7F081BD8 00046600 */ sll $t4, $a0, 0x18 +/* 0B670C 7F081BDC 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0B6710 7F081BE0 000C2603 */ sra $a0, $t4, 0x18 +/* 0B6714 7F081BE4 0FC26C54 */ jal get_cur_playernum +/* 0B6718 7F081BE8 A3A2011F */ sb $v0, 0x11f($sp) +/* 0B671C 7F081BEC 0FC26919 */ jal get_num_players +/* 0B6720 7F081BF0 AFA20064 */ sw $v0, 0x64($sp) +/* 0B6724 7F081BF4 8FAD0064 */ lw $t5, 0x64($sp) +/* 0B6728 7F081BF8 004D2021 */ addu $a0, $v0, $t5 +/* 0B672C 7F081BFC 00047E00 */ sll $t7, $a0, 0x18 +/* 0B6730 7F081C00 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0B6734 7F081C04 000F2603 */ sra $a0, $t7, 0x18 +/* 0B6738 7F081C08 0FC26C54 */ jal get_cur_playernum +/* 0B673C 7F081C0C A3A2011E */ sb $v0, 0x11e($sp) +/* 0B6740 7F081C10 0FC26919 */ jal get_num_players +/* 0B6744 7F081C14 AFA20064 */ sw $v0, 0x64($sp) +/* 0B6748 7F081C18 8FB80064 */ lw $t8, 0x64($sp) +/* 0B674C 7F081C1C 3405FFFF */ li $a1, 65535 +/* 0B6750 7F081C20 00582021 */ addu $a0, $v0, $t8 +/* 0B6754 7F081C24 0004CE00 */ sll $t9, $a0, 0x18 +/* 0B6758 7F081C28 0C0030C3 */ jal get_controller_buttons_held +/* 0B675C 7F081C2C 00192603 */ sra $a0, $t9, 0x18 +/* 0B6760 7F081C30 8E0B0000 */ lw $t3, ($s0) +/* 0B6764 7F081C34 83AC011F */ lb $t4, 0x11f($sp) +/* 0B6768 7F081C38 A7A2011C */ sh $v0, 0x11c($sp) +/* 0B676C 7F081C3C 956D03B6 */ lhu $t5, 0x3b6($t3) +/* 0B6770 7F081C40 2981FFFB */ slti $at, $t4, -5 +/* 0B6774 7F081C44 01801825 */ move $v1, $t4 +/* 0B6778 7F081C48 10200003 */ beqz $at, .L7F081C58 +/* 0B677C 7F081C4C A7AD011A */ sh $t5, 0x11a($sp) +/* 0B6780 7F081C50 10000007 */ b .L7F081C70 +/* 0B6784 7F081C54 25830005 */ addiu $v1, $t4, 5 +.L7F081C58: +/* 0B6788 7F081C58 28610006 */ slti $at, $v1, 6 +/* 0B678C 7F081C5C 14200004 */ bnez $at, .L7F081C70 +/* 0B6790 7F081C60 00001825 */ move $v1, $zero +/* 0B6794 7F081C64 83A3011F */ lb $v1, 0x11f($sp) +/* 0B6798 7F081C68 10000001 */ b .L7F081C70 +/* 0B679C 7F081C6C 2463FFFB */ addiu $v1, $v1, -5 +.L7F081C70: +/* 0B67A0 7F081C70 83A2011E */ lb $v0, 0x11e($sp) +/* 0B67A4 7F081C74 2841FFFB */ slti $at, $v0, -5 +/* 0B67A8 7F081C78 10200003 */ beqz $at, .L7F081C88 +/* 0B67AC 7F081C7C 244F0005 */ addiu $t7, $v0, 5 +/* 0B67B0 7F081C80 10000007 */ b .L7F081CA0 +/* 0B67B4 7F081C84 AFAF0110 */ sw $t7, 0x110($sp) +.L7F081C88: +/* 0B67B8 7F081C88 28410006 */ slti $at, $v0, 6 +/* 0B67BC 7F081C8C 14200003 */ bnez $at, .L7F081C9C +/* 0B67C0 7F081C90 244EFFFB */ addiu $t6, $v0, -5 +/* 0B67C4 7F081C94 10000002 */ b .L7F081CA0 +/* 0B67C8 7F081C98 AFAE0110 */ sw $t6, 0x110($sp) +.L7F081C9C: +/* 0B67CC 7F081C9C AFA00110 */ sw $zero, 0x110($sp) +.L7F081CA0: +/* 0B67D0 7F081CA0 0FC29370 */ jal cur_player_get_control_type +/* 0B67D4 7F081CA4 AFA30114 */ sw $v1, 0x114($sp) +/* 0B67D8 7F081CA8 24010004 */ li $at, 4 +/* 0B67DC 7F081CAC 10410006 */ beq $v0, $at, .L7F081CC8 +/* 0B67E0 7F081CB0 8FA30114 */ lw $v1, 0x114($sp) +/* 0B67E4 7F081CB4 0FC29370 */ jal cur_player_get_control_type +/* 0B67E8 7F081CB8 AFA30114 */ sw $v1, 0x114($sp) +/* 0B67EC 7F081CBC 24010006 */ li $at, 6 +/* 0B67F0 7F081CC0 14410005 */ bne $v0, $at, .L7F081CD8 +/* 0B67F4 7F081CC4 8FA30114 */ lw $v1, 0x114($sp) +.L7F081CC8: +/* 0B67F8 7F081CC8 8FB80110 */ lw $t8, 0x110($sp) +/* 0B67FC 7F081CCC AFA30124 */ sw $v1, 0x124($sp) +/* 0B6800 7F081CD0 1000000F */ b .L7F081D10 +/* 0B6804 7F081CD4 AFB80128 */ sw $t8, 0x128($sp) +.L7F081CD8: +/* 0B6808 7F081CD8 3C198003 */ lui $t9, %hi(in_tank_flag) +/* 0B680C 7F081CDC 8F396448 */ lw $t9, %lo(in_tank_flag)($t9) +/* 0B6810 7F081CE0 24010001 */ li $at, 1 +/* 0B6814 7F081CE4 57210008 */ bnel $t9, $at, .L7F081D08 +/* 0B6818 7F081CE8 AFA30124 */ sw $v1, 0x124($sp) +/* 0B681C 7F081CEC 8E0A0000 */ lw $t2, ($s0) +/* 0B6820 7F081CF0 8D4B0124 */ lw $t3, 0x124($t2) +/* 0B6824 7F081CF4 55600004 */ bnezl $t3, .L7F081D08 +/* 0B6828 7F081CF8 AFA30124 */ sw $v1, 0x124($sp) +/* 0B682C 7F081CFC 10000002 */ b .L7F081D08 +/* 0B6830 7F081D00 AFA3012C */ sw $v1, 0x12c($sp) +/* 0B6834 7F081D04 AFA30124 */ sw $v1, 0x124($sp) +.L7F081D08: +/* 0B6838 7F081D08 8FAD0110 */ lw $t5, 0x110($sp) +/* 0B683C 7F081D0C AFAD0120 */ sw $t5, 0x120($sp) +.L7F081D10: +/* 0B6840 7F081D10 0FC29370 */ jal cur_player_get_control_type +/* 0B6844 7F081D14 00000000 */ nop +/* 0B6848 7F081D18 24010004 */ li $at, 4 +/* 0B684C 7F081D1C 50410007 */ beql $v0, $at, .L7F081D3C +/* 0B6850 7F081D20 97A2011C */ lhu $v0, 0x11c($sp) +/* 0B6854 7F081D24 0FC29370 */ jal cur_player_get_control_type +/* 0B6858 7F081D28 00000000 */ nop +/* 0B685C 7F081D2C 24010005 */ li $at, 5 +/* 0B6860 7F081D30 14410016 */ bne $v0, $at, .L7F081D8C +/* 0B6864 7F081D34 8FB9005C */ lw $t9, 0x5c($sp) +/* 0B6868 7F081D38 97A2011C */ lhu $v0, 0x11c($sp) +.L7F081D3C: +/* 0B686C 7F081D3C 97AE011A */ lhu $t6, 0x11a($sp) +/* 0B6870 7F081D40 8FAB005C */ lw $t3, 0x5c($sp) +/* 0B6874 7F081D44 304C2000 */ andi $t4, $v0, 0x2000 +/* 0B6878 7F081D48 000C782B */ sltu $t7, $zero, $t4 +/* 0B687C 7F081D4C AFAF0104 */ sw $t7, 0x104($sp) +/* 0B6880 7F081D50 8FAF0060 */ lw $t7, 0x60($sp) +/* 0B6884 7F081D54 01C0C027 */ not $t8, $t6 +/* 0B6888 7F081D58 00581824 */ and $v1, $v0, $t8 +/* 0B688C 7F081D5C 30792000 */ andi $t9, $v1, 0x2000 +/* 0B6890 7F081D60 316D2000 */ andi $t5, $t3, 0x2000 +/* 0B6894 7F081D64 31EE2000 */ andi $t6, $t7, 0x2000 +/* 0B6898 7F081D68 0019502B */ sltu $t2, $zero, $t9 +/* 0B689C 7F081D6C 000D602B */ sltu $t4, $zero, $t5 +/* 0B68A0 7F081D70 000EC02B */ sltu $t8, $zero, $t6 +/* 0B68A4 7F081D74 AFAA0100 */ sw $t2, 0x100($sp) +/* 0B68A8 7F081D78 AFAC010C */ sw $t4, 0x10c($sp) +/* 0B68AC 7F081D7C AFB80108 */ sw $t8, 0x108($sp) +/* 0B68B0 7F081D80 AFA30050 */ sw $v1, 0x50($sp) +/* 0B68B4 7F081D84 10000014 */ b .L7F081DD8 +/* 0B68B8 7F081D88 AFA20058 */ sw $v0, 0x58($sp) +.L7F081D8C: +/* 0B68BC 7F081D8C 332A2000 */ andi $t2, $t9, 0x2000 +/* 0B68C0 7F081D90 97B9011A */ lhu $t9, 0x11a($sp) +/* 0B68C4 7F081D94 8FAD0060 */ lw $t5, 0x60($sp) +/* 0B68C8 7F081D98 97A2011C */ lhu $v0, 0x11c($sp) +/* 0B68CC 7F081D9C 000A582B */ sltu $t3, $zero, $t2 +/* 0B68D0 7F081DA0 03205027 */ not $t2, $t9 +/* 0B68D4 7F081DA4 AFAB0104 */ sw $t3, 0x104($sp) +/* 0B68D8 7F081DA8 31AC2000 */ andi $t4, $t5, 0x2000 +/* 0B68DC 7F081DAC 004A1824 */ and $v1, $v0, $t2 +/* 0B68E0 7F081DB0 306B2000 */ andi $t3, $v1, 0x2000 +/* 0B68E4 7F081DB4 304E2000 */ andi $t6, $v0, 0x2000 +/* 0B68E8 7F081DB8 000C782B */ sltu $t7, $zero, $t4 +/* 0B68EC 7F081DBC 000EC02B */ sltu $t8, $zero, $t6 +/* 0B68F0 7F081DC0 000B682B */ sltu $t5, $zero, $t3 +/* 0B68F4 7F081DC4 AFAF0100 */ sw $t7, 0x100($sp) +/* 0B68F8 7F081DC8 AFB8010C */ sw $t8, 0x10c($sp) +/* 0B68FC 7F081DCC AFAD0108 */ sw $t5, 0x108($sp) +/* 0B6900 7F081DD0 AFA30050 */ sw $v1, 0x50($sp) +/* 0B6904 7F081DD4 AFA20058 */ sw $v0, 0x58($sp) +.L7F081DD8: +/* 0B6908 7F081DD8 0FC2FF01 */ jal get_controls_locked_flag +/* 0B690C 7F081DDC 00000000 */ nop +/* 0B6910 7F081DE0 5440011F */ bnezl $v0, .L7F082260 +/* 0B6914 7F081DE4 8FA2010C */ lw $v0, 0x10c($sp) +/* 0B6918 7F081DE8 0FC3092F */ jal sub_GAME_7F0C24BC +/* 0B691C 7F081DEC 00000000 */ nop +/* 0B6920 7F081DF0 5040011B */ beql $v0, $zero, .L7F082260 +/* 0B6924 7F081DF4 8FA2010C */ lw $v0, 0x10c($sp) +/* 0B6928 7F081DF8 0FC293A0 */ jal cur_player_get_aim_control +/* 0B692C 7F081DFC 00000000 */ nop +/* 0B6930 7F081E00 54400006 */ bnezl $v0, .L7F081E1C +/* 0B6934 7F081E04 8FAE0100 */ lw $t6, 0x100($sp) +/* 0B6938 7F081E08 8FAC0104 */ lw $t4, 0x104($sp) +/* 0B693C 7F081E0C 8E0F0000 */ lw $t7, ($s0) +/* 0B6940 7F081E10 10000008 */ b .L7F081E34 +/* 0B6944 7F081E14 ADEC0124 */ sw $t4, 0x124($t7) +/* 0B6948 7F081E18 8FAE0100 */ lw $t6, 0x100($sp) +.L7F081E1C: +/* 0B694C 7F081E1C 51C00006 */ beql $t6, $zero, .L7F081E38 +/* 0B6950 7F081E20 8E190000 */ lw $t9, ($s0) +/* 0B6954 7F081E24 8E080000 */ lw $t0, ($s0) +/* 0B6958 7F081E28 8D050124 */ lw $a1, 0x124($t0) +/* 0B695C 7F081E2C 2CB80001 */ sltiu $t8, $a1, 1 +/* 0B6960 7F081E30 AD180124 */ sw $t8, 0x124($t0) +.L7F081E34: +/* 0B6964 7F081E34 8E190000 */ lw $t9, ($s0) +.L7F081E38: +/* 0B6968 7F081E38 8FA40060 */ lw $a0, 0x60($sp) +/* 0B696C 7F081E3C 240F0001 */ li $t7, 1 +/* 0B6970 7F081E40 8F230124 */ lw $v1, 0x124($t9) +/* 0B6974 7F081E44 308A4000 */ andi $t2, $a0, 0x4000 +/* 0B6978 7F081E48 000A582B */ sltu $t3, $zero, $t2 +/* 0B697C 7F081E4C 2C620001 */ sltiu $v0, $v1, 1 +/* 0B6980 7F081E50 AFA201BC */ sw $v0, 0x1bc($sp) +/* 0B6984 7F081E54 AFA20148 */ sw $v0, 0x148($sp) +/* 0B6988 7F081E58 01602825 */ move $a1, $t3 +/* 0B698C 7F081E5C AFAB0048 */ sw $t3, 0x48($sp) +/* 0B6990 7F081E60 15600005 */ bnez $t3, .L7F081E78 +/* 0B6994 7F081E64 AFA301B8 */ sw $v1, 0x1b8($sp) +/* 0B6998 7F081E68 8FA50050 */ lw $a1, 0x50($sp) +/* 0B699C 7F081E6C AFAB0048 */ sw $t3, 0x48($sp) +/* 0B69A0 7F081E70 30AD4000 */ andi $t5, $a1, 0x4000 +/* 0B69A4 7F081E74 000D282B */ sltu $a1, $zero, $t5 +.L7F081E78: +/* 0B69A8 7F081E78 AFA501B0 */ sw $a1, 0x1b0($sp) +/* 0B69AC 7F081E7C AFA201AC */ sw $v0, 0x1ac($sp) +/* 0B69B0 7F081E80 AFAF01A8 */ sw $t7, 0x1a8($sp) +/* 0B69B4 7F081E84 AFA201A4 */ sw $v0, 0x1a4($sp) +/* 0B69B8 7F081E88 10600012 */ beqz $v1, .L7F081ED4 +/* 0B69BC 7F081E8C AFA201A0 */ sw $v0, 0x1a0($sp) +/* 0B69C0 7F081E90 83A401C7 */ lb $a0, 0x1c7($sp) +/* 0B69C4 7F081E94 2881003D */ slti $at, $a0, 0x3d +/* 0B69C8 7F081E98 1420000E */ bnez $at, .L7F081ED4 +/* 0B69CC 7F081E9C 248EFFC4 */ addiu $t6, $a0, -0x3c +/* 0B69D0 7F081EA0 448E2000 */ mtc1 $t6, $f4 +/* 0B69D4 7F081EA4 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B69D8 7F081EA8 44811000 */ mtc1 $at, $f2 +/* 0B69DC 7F081EAC 468021A0 */ cvt.s.w $f6, $f4 +/* 0B69E0 7F081EB0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B69E4 7F081EB4 44816000 */ mtc1 $at, $f12 +/* 0B69E8 7F081EB8 46023003 */ div.s $f0, $f6, $f2 +/* 0B69EC 7F081EBC 4600603C */ c.lt.s $f12, $f0 +/* 0B69F0 7F081EC0 E7A00184 */ swc1 $f0, 0x184($sp) +/* 0B69F4 7F081EC4 45000008 */ bc1f .L7F081EE8 +/* 0B69F8 7F081EC8 00000000 */ nop +/* 0B69FC 7F081ECC 10000006 */ b .L7F081EE8 +/* 0B6A00 7F081ED0 E7AC0184 */ swc1 $f12, 0x184($sp) +.L7F081ED4: +/* 0B6A04 7F081ED4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B6A08 7F081ED8 44816000 */ mtc1 $at, $f12 +/* 0B6A0C 7F081EDC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B6A10 7F081EE0 44811000 */ mtc1 $at, $f2 +/* 0B6A14 7F081EE4 83A401C7 */ lb $a0, 0x1c7($sp) +.L7F081EE8: +/* 0B6A18 7F081EE8 1060000D */ beqz $v1, .L7F081F20 +/* 0B6A1C 7F081EEC 2881FFC4 */ slti $at, $a0, -0x3c +/* 0B6A20 7F081EF0 1020000B */ beqz $at, .L7F081F20 +/* 0B6A24 7F081EF4 2418FFC4 */ li $t8, -60 +/* 0B6A28 7F081EF8 0304C823 */ subu $t9, $t8, $a0 +/* 0B6A2C 7F081EFC 44994000 */ mtc1 $t9, $f8 +/* 0B6A30 7F081F00 00000000 */ nop +/* 0B6A34 7F081F04 468042A0 */ cvt.s.w $f10, $f8 +/* 0B6A38 7F081F08 46025003 */ div.s $f0, $f10, $f2 +/* 0B6A3C 7F081F0C 4600603C */ c.lt.s $f12, $f0 +/* 0B6A40 7F081F10 E7A00180 */ swc1 $f0, 0x180($sp) +/* 0B6A44 7F081F14 45000002 */ bc1f .L7F081F20 +/* 0B6A48 7F081F18 00000000 */ nop +/* 0B6A4C 7F081F1C E7AC0180 */ swc1 $f12, 0x180($sp) +.L7F081F20: +/* 0B6A50 7F081F20 10600010 */ beqz $v1, .L7F081F64 +/* 0B6A54 7F081F24 00002025 */ move $a0, $zero +/* 0B6A58 7F081F28 83A201C3 */ lb $v0, 0x1c3($sp) +/* 0B6A5C 7F081F2C 240AFFC4 */ li $t2, -60 +/* 0B6A60 7F081F30 2841FFC4 */ slti $at, $v0, -0x3c +/* 0B6A64 7F081F34 1020000B */ beqz $at, .L7F081F64 +/* 0B6A68 7F081F38 01425823 */ subu $t3, $t2, $v0 +/* 0B6A6C 7F081F3C 448B9000 */ mtc1 $t3, $f18 +/* 0B6A70 7F081F40 00000000 */ nop +/* 0B6A74 7F081F44 46809120 */ cvt.s.w $f4, $f18 +/* 0B6A78 7F081F48 46022003 */ div.s $f0, $f4, $f2 +/* 0B6A7C 7F081F4C 4600603C */ c.lt.s $f12, $f0 +/* 0B6A80 7F081F50 E7A0017C */ swc1 $f0, 0x17c($sp) +/* 0B6A84 7F081F54 45000004 */ bc1f .L7F081F68 +/* 0B6A88 7F081F58 00000000 */ nop +/* 0B6A8C 7F081F5C 10000002 */ b .L7F081F68 +/* 0B6A90 7F081F60 E7AC017C */ swc1 $f12, 0x17c($sp) +.L7F081F64: +/* 0B6A94 7F081F64 83A201C3 */ lb $v0, 0x1c3($sp) +.L7F081F68: +/* 0B6A98 7F081F68 1060000C */ beqz $v1, .L7F081F9C +/* 0B6A9C 7F081F6C 2841003D */ slti $at, $v0, 0x3d +/* 0B6AA0 7F081F70 1420000A */ bnez $at, .L7F081F9C +/* 0B6AA4 7F081F74 244DFFC4 */ addiu $t5, $v0, -0x3c +/* 0B6AA8 7F081F78 448D3000 */ mtc1 $t5, $f6 +/* 0B6AAC 7F081F7C 00000000 */ nop +/* 0B6AB0 7F081F80 46803220 */ cvt.s.w $f8, $f6 +/* 0B6AB4 7F081F84 46024003 */ div.s $f0, $f8, $f2 +/* 0B6AB8 7F081F88 4600603C */ c.lt.s $f12, $f0 +/* 0B6ABC 7F081F8C E7A00178 */ swc1 $f0, 0x178($sp) +/* 0B6AC0 7F081F90 45020003 */ bc1fl .L7F081FA0 +/* 0B6AC4 7F081F94 8FAC005C */ lw $t4, 0x5c($sp) +/* 0B6AC8 7F081F98 E7AC0178 */ swc1 $f12, 0x178($sp) +.L7F081F9C: +/* 0B6ACC 7F081F9C 8FAC005C */ lw $t4, 0x5c($sp) +.L7F081FA0: +/* 0B6AD0 7F081FA0 318F8000 */ andi $t7, $t4, 0x8000 +/* 0B6AD4 7F081FA4 000F702B */ sltu $t6, $zero, $t7 +/* 0B6AD8 7F081FA8 15C00006 */ bnez $t6, .L7F081FC4 +/* 0B6ADC 7F081FAC AFAE004C */ sw $t6, 0x4c($sp) +/* 0B6AE0 7F081FB0 8FA20058 */ lw $v0, 0x58($sp) +/* 0B6AE4 7F081FB4 30588000 */ andi $t8, $v0, 0x8000 +/* 0B6AE8 7F081FB8 0018282B */ sltu $a1, $zero, $t8 +/* 0B6AEC 7F081FBC 50A00005 */ beql $a1, $zero, .L7F081FD4 +/* 0B6AF0 7F081FC0 8FAB0060 */ lw $t3, 0x60($sp) +.L7F081FC4: +/* 0B6AF4 7F081FC4 8FA50108 */ lw $a1, 0x108($sp) +/* 0B6AF8 7F081FC8 0005502B */ sltu $t2, $zero, $a1 +/* 0B6AFC 7F081FCC 01402825 */ move $a1, $t2 +/* 0B6B00 7F081FD0 8FAB0060 */ lw $t3, 0x60($sp) +.L7F081FD4: +/* 0B6B04 7F081FD4 AFA50174 */ sw $a1, 0x174($sp) +/* 0B6B08 7F081FD8 316D8000 */ andi $t5, $t3, 0x8000 +/* 0B6B0C 7F081FDC 000D602B */ sltu $t4, $zero, $t5 +/* 0B6B10 7F081FE0 15800006 */ bnez $t4, .L7F081FFC +/* 0B6B14 7F081FE4 AFAC0044 */ sw $t4, 0x44($sp) +/* 0B6B18 7F081FE8 8FA20050 */ lw $v0, 0x50($sp) +/* 0B6B1C 7F081FEC 304F8000 */ andi $t7, $v0, 0x8000 +/* 0B6B20 7F081FF0 000F282B */ sltu $a1, $zero, $t7 +/* 0B6B24 7F081FF4 50A00005 */ beql $a1, $zero, .L7F08200C +/* 0B6B28 7F081FF8 AFA50170 */ sw $a1, 0x170($sp) +.L7F081FFC: +/* 0B6B2C 7F081FFC 8FA5010C */ lw $a1, 0x10c($sp) +/* 0B6B30 7F082000 2CB80001 */ sltiu $t8, $a1, 1 +/* 0B6B34 7F082004 03002825 */ move $a1, $t8 +/* 0B6B38 7F082008 AFA50170 */ sw $a1, 0x170($sp) +.L7F08200C: +/* 0B6B3C 7F08200C AFA3016C */ sw $v1, 0x16c($sp) +/* 0B6B40 7F082010 0FC17674 */ jal get_item_in_hand +/* 0B6B44 7F082014 AFA30168 */ sw $v1, 0x168($sp) +/* 0B6B48 7F082018 00402025 */ move $a0, $v0 +/* 0B6B4C 7F08201C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0B6B50 7F082020 34058000 */ li $a1, 32768 +/* 0B6B54 7F082024 10400028 */ beqz $v0, .L7F0820C8 +/* 0B6B58 7F082028 00000000 */ nop +/* 0B6B5C 7F08202C 8E190000 */ lw $t9, ($s0) +/* 0B6B60 7F082030 8FA20110 */ lw $v0, 0x110($sp) +/* 0B6B64 7F082034 8F2A0124 */ lw $t2, 0x124($t9) +/* 0B6B68 7F082038 11400023 */ beqz $t2, .L7F0820C8 +/* 0B6B6C 7F08203C 00000000 */ nop +/* 0B6B70 7F082040 04410010 */ bgez $v0, .L7F082084 +/* 0B6B74 7F082044 00025823 */ negu $t3, $v0 +/* 0B6B78 7F082048 448B5000 */ mtc1 $t3, $f10 +/* 0B6B7C 7F08204C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B6B80 7F082050 44811000 */ mtc1 $at, $f2 +/* 0B6B84 7F082054 468054A0 */ cvt.s.w $f18, $f10 +/* 0B6B88 7F082058 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 0B6B8C 7F08205C 44812000 */ mtc1 $at, $f4 +/* 0B6B90 7F082060 00000000 */ nop +/* 0B6B94 7F082064 46049303 */ div.s $f12, $f18, $f4 +/* 0B6B98 7F082068 460C103C */ c.lt.s $f2, $f12 +/* 0B6B9C 7F08206C 00000000 */ nop +/* 0B6BA0 7F082070 45020003 */ bc1fl .L7F082080 +/* 0B6BA4 7F082074 460C6300 */ add.s $f12, $f12, $f12 +/* 0B6BA8 7F082078 46001306 */ mov.s $f12, $f2 +/* 0B6BAC 7F08207C 460C6300 */ add.s $f12, $f12, $f12 +.L7F082080: +/* 0B6BB0 7F082080 E7AC0164 */ swc1 $f12, 0x164($sp) +.L7F082084: +/* 0B6BB4 7F082084 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B6BB8 7F082088 44811000 */ mtc1 $at, $f2 +/* 0B6BBC 7F08208C 1840000E */ blez $v0, .L7F0820C8 +/* 0B6BC0 7F082090 C7AC0164 */ lwc1 $f12, 0x164($sp) +/* 0B6BC4 7F082094 44823000 */ mtc1 $v0, $f6 +/* 0B6BC8 7F082098 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 0B6BCC 7F08209C 44815000 */ mtc1 $at, $f10 +/* 0B6BD0 7F0820A0 46803220 */ cvt.s.w $f8, $f6 +/* 0B6BD4 7F0820A4 460A4383 */ div.s $f14, $f8, $f10 +/* 0B6BD8 7F0820A8 460E103C */ c.lt.s $f2, $f14 +/* 0B6BDC 7F0820AC 00000000 */ nop +/* 0B6BE0 7F0820B0 45020003 */ bc1fl .L7F0820C0 +/* 0B6BE4 7F0820B4 460E7380 */ add.s $f14, $f14, $f14 +/* 0B6BE8 7F0820B8 46001386 */ mov.s $f14, $f2 +/* 0B6BEC 7F0820BC 460E7380 */ add.s $f14, $f14, $f14 +.L7F0820C0: +/* 0B6BF0 7F0820C0 E7AC0164 */ swc1 $f12, 0x164($sp) +/* 0B6BF4 7F0820C4 E7AE0160 */ swc1 $f14, 0x160($sp) +.L7F0820C8: +/* 0B6BF8 7F0820C8 0FC17674 */ jal get_item_in_hand +/* 0B6BFC 7F0820CC 00002025 */ move $a0, $zero +/* 0B6C00 7F0820D0 00402025 */ move $a0, $v0 +/* 0B6C04 7F0820D4 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0B6C08 7F0820D8 34058000 */ li $a1, 32768 +/* 0B6C0C 7F0820DC 2C450001 */ sltiu $a1, $v0, 1 +/* 0B6C10 7F0820E0 10A00009 */ beqz $a1, .L7F082108 +/* 0B6C14 7F0820E4 00002025 */ move $a0, $zero +/* 0B6C18 7F0820E8 8E0D0000 */ lw $t5, ($s0) +/* 0B6C1C 7F0820EC 8DA50124 */ lw $a1, 0x124($t5) +/* 0B6C20 7F0820F0 0005602B */ sltu $t4, $zero, $a1 +/* 0B6C24 7F0820F4 11800004 */ beqz $t4, .L7F082108 +/* 0B6C28 7F0820F8 01802825 */ move $a1, $t4 +/* 0B6C2C 7F0820FC 83A5011E */ lb $a1, 0x11e($sp) +/* 0B6C30 7F082100 28AFFFE2 */ slti $t7, $a1, -0x1e +/* 0B6C34 7F082104 01E02825 */ move $a1, $t7 +.L7F082108: +/* 0B6C38 7F082108 0FC17674 */ jal get_item_in_hand +/* 0B6C3C 7F08210C AFA5015C */ sw $a1, 0x15c($sp) +/* 0B6C40 7F082110 00402025 */ move $a0, $v0 +/* 0B6C44 7F082114 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0B6C48 7F082118 34058000 */ li $a1, 32768 +/* 0B6C4C 7F08211C 2C450001 */ sltiu $a1, $v0, 1 +/* 0B6C50 7F082120 50A0000A */ beql $a1, $zero, .L7F08214C +/* 0B6C54 7F082124 8FAA004C */ lw $t2, 0x4c($sp) +/* 0B6C58 7F082128 8E0E0000 */ lw $t6, ($s0) +/* 0B6C5C 7F08212C 8DC50124 */ lw $a1, 0x124($t6) +/* 0B6C60 7F082130 0005C02B */ sltu $t8, $zero, $a1 +/* 0B6C64 7F082134 13000004 */ beqz $t8, .L7F082148 +/* 0B6C68 7F082138 03002825 */ move $a1, $t8 +/* 0B6C6C 7F08213C 83A5011E */ lb $a1, 0x11e($sp) +/* 0B6C70 7F082140 28B9001F */ slti $t9, $a1, 0x1f +/* 0B6C74 7F082144 3B250001 */ xori $a1, $t9, 1 +.L7F082148: +/* 0B6C78 7F082148 8FAA004C */ lw $t2, 0x4c($sp) +.L7F08214C: +/* 0B6C7C 7F08214C AFA50158 */ sw $a1, 0x158($sp) +/* 0B6C80 7F082150 8FAB0048 */ lw $t3, 0x48($sp) +/* 0B6C84 7F082154 11400002 */ beqz $t2, .L7F082160 +/* 0B6C88 7F082158 8FAD005C */ lw $t5, 0x5c($sp) +/* 0B6C8C 7F08215C 15600012 */ bnez $t3, .L7F0821A8 +.L7F082160: +/* 0B6C90 7F082160 31AC4000 */ andi $t4, $t5, 0x4000 +/* 0B6C94 7F082164 11800003 */ beqz $t4, .L7F082174 +/* 0B6C98 7F082168 8FAF0044 */ lw $t7, 0x44($sp) +/* 0B6C9C 7F08216C 15E0000E */ bnez $t7, .L7F0821A8 +/* 0B6CA0 7F082170 00000000 */ nop +.L7F082174: +/* 0B6CA4 7F082174 8FAE0058 */ lw $t6, 0x58($sp) +/* 0B6CA8 7F082178 8FB90050 */ lw $t9, 0x50($sp) +/* 0B6CAC 7F08217C 8FAB0058 */ lw $t3, 0x58($sp) +/* 0B6CB0 7F082180 31D88000 */ andi $t8, $t6, 0x8000 +/* 0B6CB4 7F082184 13000002 */ beqz $t8, .L7F082190 +/* 0B6CB8 7F082188 332A4000 */ andi $t2, $t9, 0x4000 +/* 0B6CBC 7F08218C 15400006 */ bnez $t2, .L7F0821A8 +.L7F082190: +/* 0B6CC0 7F082190 316D4000 */ andi $t5, $t3, 0x4000 +/* 0B6CC4 7F082194 11A0000D */ beqz $t5, .L7F0821CC +/* 0B6CC8 7F082198 8FAC0050 */ lw $t4, 0x50($sp) +/* 0B6CCC 7F08219C 318F8000 */ andi $t7, $t4, 0x8000 +/* 0B6CD0 7F0821A0 11E0000A */ beqz $t7, .L7F0821CC +/* 0B6CD4 7F0821A4 00000000 */ nop +.L7F0821A8: +/* 0B6CD8 7F0821A8 0FC17674 */ jal get_item_in_hand +/* 0B6CDC 7F0821AC 00002025 */ move $a0, $zero +/* 0B6CE0 7F0821B0 2401001D */ li $at, 29 +/* 0B6CE4 7F0821B4 14410005 */ bne $v0, $at, .L7F0821CC +/* 0B6CE8 7F0821B8 240E0001 */ li $t6, 1 +/* 0B6CEC 7F0821BC AFAE014C */ sw $t6, 0x14c($sp) +/* 0B6CF0 7F0821C0 AFA00174 */ sw $zero, 0x174($sp) +/* 0B6CF4 7F0821C4 AFA00170 */ sw $zero, 0x170($sp) +/* 0B6CF8 7F0821C8 AFA001B0 */ sw $zero, 0x1b0($sp) +.L7F0821CC: +/* 0B6CFC 7F0821CC 3C188003 */ lui $t8, %hi(in_tank_flag) +/* 0B6D00 7F0821D0 8F186448 */ lw $t8, %lo(in_tank_flag)($t8) +/* 0B6D04 7F0821D4 24010001 */ li $at, 1 +/* 0B6D08 7F0821D8 57010021 */ bnel $t8, $at, .L7F082260 +/* 0B6D0C 7F0821DC 8FA2010C */ lw $v0, 0x10c($sp) +/* 0B6D10 7F0821E0 8E190000 */ lw $t9, ($s0) +/* 0B6D14 7F0821E4 8F2A0124 */ lw $t2, 0x124($t9) +/* 0B6D18 7F0821E8 5140001D */ beql $t2, $zero, .L7F082260 +/* 0B6D1C 7F0821EC 8FA2010C */ lw $v0, 0x10c($sp) +/* 0B6D20 7F0821F0 0FC17674 */ jal get_item_in_hand +/* 0B6D24 7F0821F4 00002025 */ move $a0, $zero +/* 0B6D28 7F0821F8 24010020 */ li $at, 32 +/* 0B6D2C 7F0821FC 14410008 */ bne $v0, $at, .L7F082220 +/* 0B6D30 7F082200 8FAC0124 */ lw $t4, 0x124($sp) +/* 0B6D34 7F082204 8FAB0124 */ lw $t3, 0x124($sp) +/* 0B6D38 7F082208 AFA00134 */ sw $zero, 0x134($sp) +/* 0B6D3C 7F08220C 8FAD012C */ lw $t5, 0x12c($sp) +/* 0B6D40 7F082210 55600011 */ bnezl $t3, .L7F082258 +/* 0B6D44 7F082214 E7B4017C */ swc1 $f20, 0x17c($sp) +/* 0B6D48 7F082218 1000000E */ b .L7F082254 +/* 0B6D4C 7F08221C AFAD0124 */ sw $t5, 0x124($sp) +.L7F082220: +/* 0B6D50 7F082220 1580000C */ bnez $t4, .L7F082254 +/* 0B6D54 7F082224 C7B2017C */ lwc1 $f18, 0x17c($sp) +/* 0B6D58 7F082228 4612A03C */ c.lt.s $f20, $f18 +/* 0B6D5C 7F08222C 00000000 */ nop +/* 0B6D60 7F082230 45020003 */ bc1fl .L7F082240 +/* 0B6D64 7F082234 C7A40178 */ lwc1 $f4, 0x178($sp) +/* 0B6D68 7F082238 E7B2018C */ swc1 $f18, 0x18c($sp) +/* 0B6D6C 7F08223C C7A40178 */ lwc1 $f4, 0x178($sp) +.L7F082240: +/* 0B6D70 7F082240 4604A03C */ c.lt.s $f20, $f4 +/* 0B6D74 7F082244 00000000 */ nop +/* 0B6D78 7F082248 45020003 */ bc1fl .L7F082258 +/* 0B6D7C 7F08224C E7B4017C */ swc1 $f20, 0x17c($sp) +/* 0B6D80 7F082250 E7A40188 */ swc1 $f4, 0x188($sp) +.L7F082254: +/* 0B6D84 7F082254 E7B4017C */ swc1 $f20, 0x17c($sp) +.L7F082258: +/* 0B6D88 7F082258 E7B40178 */ swc1 $f20, 0x178($sp) +/* 0B6D8C 7F08225C 8FA2010C */ lw $v0, 0x10c($sp) +.L7F082260: +/* 0B6D90 7F082260 8E080000 */ lw $t0, ($s0) +/* 0B6D94 7F082264 240D0001 */ li $t5, 1 +/* 0B6D98 7F082268 0002282B */ sltu $a1, $zero, $v0 +/* 0B6D9C 7F08226C 50A0000E */ beql $a1, $zero, .L7F0822A8 +/* 0B6DA0 7F082270 97AC011C */ lhu $t4, 0x11c($sp) +/* 0B6DA4 7F082274 8D0501C8 */ lw $a1, 0x1c8($t0) +/* 0B6DA8 7F082278 8FA2005C */ lw $v0, 0x5c($sp) +/* 0B6DAC 7F08227C 2CAE0001 */ sltiu $t6, $a1, 1 +/* 0B6DB0 7F082280 11C00008 */ beqz $t6, .L7F0822A4 +/* 0B6DB4 7F082284 01C02825 */ move $a1, $t6 +/* 0B6DB8 7F082288 30588000 */ andi $t8, $v0, 0x8000 +/* 0B6DBC 7F08228C 2F050001 */ sltiu $a1, $t8, 1 +/* 0B6DC0 7F082290 50A00005 */ beql $a1, $zero, .L7F0822A8 +/* 0B6DC4 7F082294 97AC011C */ lhu $t4, 0x11c($sp) +/* 0B6DC8 7F082298 8FA50058 */ lw $a1, 0x58($sp) +/* 0B6DCC 7F08229C 30AA8000 */ andi $t2, $a1, 0x8000 +/* 0B6DD0 7F0822A0 2D450001 */ sltiu $a1, $t2, 1 +.L7F0822A4: +/* 0B6DD4 7F0822A4 97AC011C */ lhu $t4, 0x11c($sp) +.L7F0822A8: +/* 0B6DD8 7F0822A8 AFA501B4 */ sw $a1, 0x1b4($sp) +/* 0B6DDC 7F0822AC AFAD0140 */ sw $t5, 0x140($sp) +/* 0B6DE0 7F0822B0 100001C5 */ b .L7F0829C8 +/* 0B6DE4 7F0822B4 A50C03B6 */ sh $t4, 0x3b6($t0) +.L7F0822B8: +/* 0B6DE8 7F0822B8 0FC29370 */ jal cur_player_get_control_type +/* 0B6DEC 7F0822BC 00000000 */ nop +/* 0B6DF0 7F0822C0 24010002 */ li $at, 2 +/* 0B6DF4 7F0822C4 50410007 */ beql $v0, $at, .L7F0822E4 +/* 0B6DF8 7F0822C8 340F8000 */ li $t7, 32768 +/* 0B6DFC 7F0822CC 0FC29370 */ jal cur_player_get_control_type +/* 0B6E00 7F0822D0 00000000 */ nop +/* 0B6E04 7F0822D4 24010003 */ li $at, 3 +/* 0B6E08 7F0822D8 14410007 */ bne $v0, $at, .L7F0822F8 +/* 0B6E0C 7F0822DC 24182000 */ li $t8, 8192 +/* 0B6E10 7F0822E0 340F8000 */ li $t7, 32768 +.L7F0822E4: +/* 0B6E14 7F0822E4 240E0030 */ li $t6, 48 +/* 0B6E18 7F0822E8 A7AF00FE */ sh $t7, 0xfe($sp) +/* 0B6E1C 7F0822EC 24032000 */ li $v1, 8192 +/* 0B6E20 7F0822F0 10000005 */ b .L7F082308 +/* 0B6E24 7F0822F4 A7AE00FA */ sh $t6, 0xfa($sp) +.L7F0822F8: +/* 0B6E28 7F0822F8 34198000 */ li $t9, 32768 +/* 0B6E2C 7F0822FC A7B800FE */ sh $t8, 0xfe($sp) +/* 0B6E30 7F082300 24030030 */ li $v1, 48 +/* 0B6E34 7F082304 A7B900FA */ sh $t9, 0xfa($sp) +.L7F082308: +/* 0B6E38 7F082308 0FC2FF01 */ jal get_controls_locked_flag +/* 0B6E3C 7F08230C A7A300FC */ sh $v1, 0xfc($sp) +/* 0B6E40 7F082310 14400193 */ bnez $v0, .L7F082960 +/* 0B6E44 7F082314 97A300FC */ lhu $v1, 0xfc($sp) +/* 0B6E48 7F082318 0FC3092F */ jal sub_GAME_7F0C24BC +/* 0B6E4C 7F08231C A7A300FC */ sh $v1, 0xfc($sp) +/* 0B6E50 7F082320 1040018F */ beqz $v0, .L7F082960 +/* 0B6E54 7F082324 97A300FC */ lhu $v1, 0xfc($sp) +/* 0B6E58 7F082328 97AB01CE */ lhu $t3, 0x1ce($sp) +/* 0B6E5C 7F08232C 8FAA005C */ lw $t2, 0x5c($sp) +/* 0B6E60 7F082330 A7A300FC */ sh $v1, 0xfc($sp) +/* 0B6E64 7F082334 01606827 */ not $t5, $t3 +/* 0B6E68 7F082338 014D6024 */ and $t4, $t2, $t5 +/* 0B6E6C 7F08233C 0FC293A0 */ jal cur_player_get_aim_control +/* 0B6E70 7F082340 AFAC0060 */ sw $t4, 0x60($sp) +/* 0B6E74 7F082344 14400007 */ bnez $v0, .L7F082364 +/* 0B6E78 7F082348 97A300FC */ lhu $v1, 0xfc($sp) +/* 0B6E7C 7F08234C 8FAF005C */ lw $t7, 0x5c($sp) +/* 0B6E80 7F082350 8E190000 */ lw $t9, ($s0) +/* 0B6E84 7F082354 01E37024 */ and $t6, $t7, $v1 +/* 0B6E88 7F082358 000EC02B */ sltu $t8, $zero, $t6 +/* 0B6E8C 7F08235C 10000009 */ b .L7F082384 +/* 0B6E90 7F082360 AF380124 */ sw $t8, 0x124($t9) +.L7F082364: +/* 0B6E94 7F082364 8FAB0060 */ lw $t3, 0x60($sp) +/* 0B6E98 7F082368 01635024 */ and $t2, $t3, $v1 +/* 0B6E9C 7F08236C 51400006 */ beql $t2, $zero, .L7F082388 +/* 0B6EA0 7F082370 8E0C0000 */ lw $t4, ($s0) +/* 0B6EA4 7F082374 8E080000 */ lw $t0, ($s0) +/* 0B6EA8 7F082378 8D050124 */ lw $a1, 0x124($t0) +/* 0B6EAC 7F08237C 2CAD0001 */ sltiu $t5, $a1, 1 +/* 0B6EB0 7F082380 AD0D0124 */ sw $t5, 0x124($t0) +.L7F082384: +/* 0B6EB4 7F082384 8E0C0000 */ lw $t4, ($s0) +.L7F082388: +/* 0B6EB8 7F082388 8FA20060 */ lw $v0, 0x60($sp) +/* 0B6EBC 7F08238C 8D830124 */ lw $v1, 0x124($t4) +/* 0B6EC0 7F082390 304F4000 */ andi $t7, $v0, 0x4000 +/* 0B6EC4 7F082394 000F702B */ sltu $t6, $zero, $t7 +/* 0B6EC8 7F082398 2C650001 */ sltiu $a1, $v1, 1 +/* 0B6ECC 7F08239C AFA501BC */ sw $a1, 0x1bc($sp) +/* 0B6ED0 7F0823A0 AFA50148 */ sw $a1, 0x148($sp) +/* 0B6ED4 7F0823A4 AFAE01B0 */ sw $t6, 0x1b0($sp) +/* 0B6ED8 7F0823A8 AFAE0048 */ sw $t6, 0x48($sp) +/* 0B6EDC 7F0823AC 0FC29370 */ jal cur_player_get_control_type +/* 0B6EE0 7F0823B0 AFA301B8 */ sw $v1, 0x1b8($sp) +/* 0B6EE4 7F0823B4 24010001 */ li $at, 1 +/* 0B6EE8 7F0823B8 50410007 */ beql $v0, $at, .L7F0823D8 +/* 0B6EEC 7F0823BC 8FA2005C */ lw $v0, 0x5c($sp) +/* 0B6EF0 7F0823C0 0FC29370 */ jal cur_player_get_control_type +/* 0B6EF4 7F0823C4 00000000 */ nop +/* 0B6EF8 7F0823C8 24010003 */ li $at, 3 +/* 0B6EFC 7F0823CC 14410044 */ bne $v0, $at, .L7F0824E0 +/* 0B6F00 7F0823D0 8FA6005C */ lw $a2, 0x5c($sp) +/* 0B6F04 7F0823D4 8FA2005C */ lw $v0, 0x5c($sp) +.L7F0823D8: +/* 0B6F08 7F0823D8 3C048003 */ lui $a0, %hi(in_tank_flag) +/* 0B6F0C 7F0823DC 30460202 */ andi $a2, $v0, 0x202 +/* 0B6F10 7F0823E0 0006C02B */ sltu $t8, $zero, $a2 +/* 0B6F14 7F0823E4 13000014 */ beqz $t8, .L7F082438 +/* 0B6F18 7F0823E8 03003025 */ move $a2, $t8 +/* 0B6F1C 7F0823EC 8E190000 */ lw $t9, ($s0) +/* 0B6F20 7F0823F0 3C0A8003 */ lui $t2, %hi(in_tank_flag) +/* 0B6F24 7F0823F4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B6F28 7F0823F8 8F2B0124 */ lw $t3, 0x124($t9) +/* 0B6F2C 7F0823FC 5560000C */ bnezl $t3, .L7F082430 +/* 0B6F30 7F082400 44814000 */ mtc1 $at, $f8 +/* 0B6F34 7F082404 8D4A6448 */ lw $t2, %lo(in_tank_flag)($t2) +/* 0B6F38 7F082408 24010001 */ li $at, 1 +/* 0B6F3C 7F08240C 240D0001 */ li $t5, 1 +/* 0B6F40 7F082410 15410004 */ bne $t2, $at, .L7F082424 +/* 0B6F44 7F082414 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B6F48 7F082418 44813000 */ mtc1 $at, $f6 +/* 0B6F4C 7F08241C 10000006 */ b .L7F082438 +/* 0B6F50 7F082420 E7A6017C */ swc1 $f6, 0x17c($sp) +.L7F082424: +/* 0B6F54 7F082424 10000004 */ b .L7F082438 +/* 0B6F58 7F082428 AFAD0194 */ sw $t5, 0x194($sp) +/* 0B6F5C 7F08242C 44814000 */ mtc1 $at, $f8 +.L7F082430: +/* 0B6F60 7F082430 00000000 */ nop +/* 0B6F64 7F082434 E7A8018C */ swc1 $f8, 0x18c($sp) +.L7F082438: +/* 0B6F68 7F082438 304C0101 */ andi $t4, $v0, 0x101 +/* 0B6F6C 7F08243C 8E0E0000 */ lw $t6, ($s0) +/* 0B6F70 7F082440 000C782B */ sltu $t7, $zero, $t4 +/* 0B6F74 7F082444 AFAF0044 */ sw $t7, 0x44($sp) +/* 0B6F78 7F082448 8C846448 */ lw $a0, %lo(in_tank_flag)($a0) +/* 0B6F7C 7F08244C 11E0000F */ beqz $t7, .L7F08248C +/* 0B6F80 7F082450 8DC30124 */ lw $v1, 0x124($t6) +/* 0B6F84 7F082454 1460000A */ bnez $v1, .L7F082480 +/* 0B6F88 7F082458 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B6F8C 7F08245C 24010001 */ li $at, 1 +/* 0B6F90 7F082460 14810005 */ bne $a0, $at, .L7F082478 +/* 0B6F94 7F082464 24180001 */ li $t8, 1 +/* 0B6F98 7F082468 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B6F9C 7F08246C 44815000 */ mtc1 $at, $f10 +/* 0B6FA0 7F082470 10000006 */ b .L7F08248C +/* 0B6FA4 7F082474 E7AA0178 */ swc1 $f10, 0x178($sp) +.L7F082478: +/* 0B6FA8 7F082478 10000004 */ b .L7F08248C +/* 0B6FAC 7F08247C AFB80190 */ sw $t8, 0x190($sp) +.L7F082480: +/* 0B6FB0 7F082480 44819000 */ mtc1 $at, $f18 +/* 0B6FB4 7F082484 00000000 */ nop +/* 0B6FB8 7F082488 E7B20188 */ swc1 $f18, 0x188($sp) +.L7F08248C: +/* 0B6FBC 7F08248C 2C620001 */ sltiu $v0, $v1, 1 +/* 0B6FC0 7F082490 10400004 */ beqz $v0, .L7F0824A4 +/* 0B6FC4 7F082494 00402825 */ move $a1, $v0 +/* 0B6FC8 7F082498 8FA5005C */ lw $a1, 0x5c($sp) +/* 0B6FCC 7F08249C 30B90808 */ andi $t9, $a1, 0x808 +/* 0B6FD0 7F0824A0 0019282B */ sltu $a1, $zero, $t9 +.L7F0824A4: +/* 0B6FD4 7F0824A4 AFA5019C */ sw $a1, 0x19c($sp) +/* 0B6FD8 7F0824A8 10400004 */ beqz $v0, .L7F0824BC +/* 0B6FDC 7F0824AC 00402825 */ move $a1, $v0 +/* 0B6FE0 7F0824B0 8FA5005C */ lw $a1, 0x5c($sp) +/* 0B6FE4 7F0824B4 30AA0404 */ andi $t2, $a1, 0x404 +/* 0B6FE8 7F0824B8 000A282B */ sltu $a1, $zero, $t2 +.L7F0824BC: +/* 0B6FEC 7F0824BC AFA50198 */ sw $a1, 0x198($sp) +/* 0B6FF0 7F0824C0 24010001 */ li $at, 1 +/* 0B6FF4 7F0824C4 00402825 */ move $a1, $v0 +/* 0B6FF8 7F0824C8 14810003 */ bne $a0, $at, .L7F0824D8 +/* 0B6FFC 7F0824CC AFA201A0 */ sw $v0, 0x1a0($sp) +/* 0B7000 7F0824D0 10000034 */ b .L7F0825A4 +/* 0B7004 7F0824D4 AFA201A8 */ sw $v0, 0x1a8($sp) +.L7F0824D8: +/* 0B7008 7F0824D8 10000032 */ b .L7F0825A4 +/* 0B700C 7F0824DC AFA501A4 */ sw $a1, 0x1a4($sp) +.L7F0824E0: +/* 0B7010 7F0824E0 30CC0202 */ andi $t4, $a2, 0x202 +/* 0B7014 7F0824E4 000C302B */ sltu $a2, $zero, $t4 +/* 0B7018 7F0824E8 10C00004 */ beqz $a2, .L7F0824FC +/* 0B701C 7F0824EC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7020 7F0824F0 44812000 */ mtc1 $at, $f4 +/* 0B7024 7F0824F4 00000000 */ nop +/* 0B7028 7F0824F8 E7A4018C */ swc1 $f4, 0x18c($sp) +.L7F0824FC: +/* 0B702C 7F0824FC 8FA4005C */ lw $a0, 0x5c($sp) +/* 0B7030 7F082500 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7034 7F082504 308F0101 */ andi $t7, $a0, 0x101 +/* 0B7038 7F082508 000F202B */ sltu $a0, $zero, $t7 +/* 0B703C 7F08250C 50800005 */ beql $a0, $zero, .L7F082524 +/* 0B7040 7F082510 8E190000 */ lw $t9, ($s0) +/* 0B7044 7F082514 44813000 */ mtc1 $at, $f6 +/* 0B7048 7F082518 00000000 */ nop +/* 0B704C 7F08251C E7A60188 */ swc1 $f6, 0x188($sp) +/* 0B7050 7F082520 8E190000 */ lw $t9, ($s0) +.L7F082524: +/* 0B7054 7F082524 8F230124 */ lw $v1, 0x124($t9) +/* 0B7058 7F082528 2C620001 */ sltiu $v0, $v1, 1 +/* 0B705C 7F08252C 10400002 */ beqz $v0, .L7F082538 +/* 0B7060 7F082530 00402825 */ move $a1, $v0 +/* 0B7064 7F082534 00C02825 */ move $a1, $a2 +.L7F082538: +/* 0B7068 7F082538 AFA50194 */ sw $a1, 0x194($sp) +/* 0B706C 7F08253C 00402825 */ move $a1, $v0 +/* 0B7070 7F082540 10400003 */ beqz $v0, .L7F082550 +/* 0B7074 7F082544 AFA40044 */ sw $a0, 0x44($sp) +/* 0B7078 7F082548 00802825 */ move $a1, $a0 +/* 0B707C 7F08254C AFA40044 */ sw $a0, 0x44($sp) +.L7F082550: +/* 0B7080 7F082550 AFA50190 */ sw $a1, 0x190($sp) +/* 0B7084 7F082554 00402825 */ move $a1, $v0 +/* 0B7088 7F082558 14600009 */ bnez $v1, .L7F082580 +/* 0B708C 7F08255C AFA201AC */ sw $v0, 0x1ac($sp) +/* 0B7090 7F082560 8FAB005C */ lw $t3, 0x5c($sp) +/* 0B7094 7F082564 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7098 7F082568 316A0808 */ andi $t2, $t3, 0x808 +/* 0B709C 7F08256C 11400004 */ beqz $t2, .L7F082580 +/* 0B70A0 7F082570 00000000 */ nop +/* 0B70A4 7F082574 44814000 */ mtc1 $at, $f8 +/* 0B70A8 7F082578 00000000 */ nop +/* 0B70AC 7F08257C E7A80184 */ swc1 $f8, 0x184($sp) +.L7F082580: +/* 0B70B0 7F082580 14600007 */ bnez $v1, .L7F0825A0 +/* 0B70B4 7F082584 8FAD005C */ lw $t5, 0x5c($sp) +/* 0B70B8 7F082588 31AC0404 */ andi $t4, $t5, 0x404 +/* 0B70BC 7F08258C 11800004 */ beqz $t4, .L7F0825A0 +/* 0B70C0 7F082590 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B70C4 7F082594 44815000 */ mtc1 $at, $f10 +/* 0B70C8 7F082598 00000000 */ nop +/* 0B70CC 7F08259C E7AA0180 */ swc1 $f10, 0x180($sp) +.L7F0825A0: +/* 0B70D0 7F0825A0 AFA501A4 */ sw $a1, 0x1a4($sp) +.L7F0825A4: +/* 0B70D4 7F0825A4 10600014 */ beqz $v1, .L7F0825F8 +/* 0B70D8 7F0825A8 00000000 */ nop +/* 0B70DC 7F0825AC 83AE01C7 */ lb $t6, 0x1c7($sp) +/* 0B70E0 7F0825B0 29C1003D */ slti $at, $t6, 0x3d +/* 0B70E4 7F0825B4 14200010 */ bnez $at, .L7F0825F8 +/* 0B70E8 7F0825B8 25CFFFC4 */ addiu $t7, $t6, -0x3c +/* 0B70EC 7F0825BC 448F9000 */ mtc1 $t7, $f18 +/* 0B70F0 7F0825C0 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B70F4 7F0825C4 44811000 */ mtc1 $at, $f2 +/* 0B70F8 7F0825C8 46809120 */ cvt.s.w $f4, $f18 +/* 0B70FC 7F0825CC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7100 7F0825D0 44813000 */ mtc1 $at, $f6 +/* 0B7104 7F0825D4 3C013F80 */ lui $at, 0x3f80 +/* 0B7108 7F0825D8 46022003 */ div.s $f0, $f4, $f2 +/* 0B710C 7F0825DC 4600303C */ c.lt.s $f6, $f0 +/* 0B7110 7F0825E0 E7A00184 */ swc1 $f0, 0x184($sp) +/* 0B7114 7F0825E4 4502001A */ bc1fl .L7F082650 +/* 0B7118 7F0825E8 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B711C 7F0825EC 44814000 */ mtc1 $at, $f8 +/* 0B7120 7F0825F0 10000016 */ b .L7F08264C +/* 0B7124 7F0825F4 E7A80184 */ swc1 $f8, 0x184($sp) +.L7F0825F8: +/* 0B7128 7F0825F8 10600014 */ beqz $v1, .L7F08264C +/* 0B712C 7F0825FC 83B801C7 */ lb $t8, 0x1c7($sp) +/* 0B7130 7F082600 2B01FFC4 */ slti $at, $t8, -0x3c +/* 0B7134 7F082604 10200011 */ beqz $at, .L7F08264C +/* 0B7138 7F082608 2419FFC4 */ li $t9, -60 +/* 0B713C 7F08260C 03385823 */ subu $t3, $t9, $t8 +/* 0B7140 7F082610 448B5000 */ mtc1 $t3, $f10 +/* 0B7144 7F082614 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B7148 7F082618 44811000 */ mtc1 $at, $f2 +/* 0B714C 7F08261C 468054A0 */ cvt.s.w $f18, $f10 +/* 0B7150 7F082620 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7154 7F082624 44812000 */ mtc1 $at, $f4 +/* 0B7158 7F082628 3C013F80 */ lui $at, 0x3f80 +/* 0B715C 7F08262C 46029003 */ div.s $f0, $f18, $f2 +/* 0B7160 7F082630 4600203C */ c.lt.s $f4, $f0 +/* 0B7164 7F082634 E7A00180 */ swc1 $f0, 0x180($sp) +/* 0B7168 7F082638 45020005 */ bc1fl .L7F082650 +/* 0B716C 7F08263C 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B7170 7F082640 44813000 */ mtc1 $at, $f6 +/* 0B7174 7F082644 00000000 */ nop +/* 0B7178 7F082648 E7A60180 */ swc1 $f6, 0x180($sp) +.L7F08264C: +/* 0B717C 7F08264C 3C014120 */ li $at, 0x41200000 # 10.000000 +.L7F082650: +/* 0B7180 7F082650 44811000 */ mtc1 $at, $f2 +/* 0B7184 7F082654 10600013 */ beqz $v1, .L7F0826A4 +/* 0B7188 7F082658 00000000 */ nop +/* 0B718C 7F08265C 83A201C3 */ lb $v0, 0x1c3($sp) +/* 0B7190 7F082660 240AFFC4 */ li $t2, -60 +/* 0B7194 7F082664 2841FFC4 */ slti $at, $v0, -0x3c +/* 0B7198 7F082668 1020000E */ beqz $at, .L7F0826A4 +/* 0B719C 7F08266C 01426823 */ subu $t5, $t2, $v0 +/* 0B71A0 7F082670 448D4000 */ mtc1 $t5, $f8 +/* 0B71A4 7F082674 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B71A8 7F082678 44819000 */ mtc1 $at, $f18 +/* 0B71AC 7F08267C 468042A0 */ cvt.s.w $f10, $f8 +/* 0B71B0 7F082680 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B71B4 7F082684 46025003 */ div.s $f0, $f10, $f2 +/* 0B71B8 7F082688 4600903C */ c.lt.s $f18, $f0 +/* 0B71BC 7F08268C E7A0017C */ swc1 $f0, 0x17c($sp) +/* 0B71C0 7F082690 45000004 */ bc1f .L7F0826A4 +/* 0B71C4 7F082694 00000000 */ nop +/* 0B71C8 7F082698 44812000 */ mtc1 $at, $f4 +/* 0B71CC 7F08269C 00000000 */ nop +/* 0B71D0 7F0826A0 E7A4017C */ swc1 $f4, 0x17c($sp) +.L7F0826A4: +/* 0B71D4 7F0826A4 10600011 */ beqz $v1, .L7F0826EC +/* 0B71D8 7F0826A8 83A201C3 */ lb $v0, 0x1c3($sp) +/* 0B71DC 7F0826AC 2841003D */ slti $at, $v0, 0x3d +/* 0B71E0 7F0826B0 1420000E */ bnez $at, .L7F0826EC +/* 0B71E4 7F0826B4 244CFFC4 */ addiu $t4, $v0, -0x3c +/* 0B71E8 7F0826B8 448C3000 */ mtc1 $t4, $f6 +/* 0B71EC 7F0826BC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B71F0 7F0826C0 44815000 */ mtc1 $at, $f10 +/* 0B71F4 7F0826C4 46803220 */ cvt.s.w $f8, $f6 +/* 0B71F8 7F0826C8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B71FC 7F0826CC 46024003 */ div.s $f0, $f8, $f2 +/* 0B7200 7F0826D0 4600503C */ c.lt.s $f10, $f0 +/* 0B7204 7F0826D4 E7A00178 */ swc1 $f0, 0x178($sp) +/* 0B7208 7F0826D8 45020005 */ bc1fl .L7F0826F0 +/* 0B720C 7F0826DC 97A200FA */ lhu $v0, 0xfa($sp) +/* 0B7210 7F0826E0 44819000 */ mtc1 $at, $f18 +/* 0B7214 7F0826E4 00000000 */ nop +/* 0B7218 7F0826E8 E7B20178 */ swc1 $f18, 0x178($sp) +.L7F0826EC: +/* 0B721C 7F0826EC 97A200FA */ lhu $v0, 0xfa($sp) +.L7F0826F0: +/* 0B7220 7F0826F0 8FAE005C */ lw $t6, 0x5c($sp) +/* 0B7224 7F0826F4 01C22024 */ and $a0, $t6, $v0 +/* 0B7228 7F0826F8 0004282B */ sltu $a1, $zero, $a0 +/* 0B722C 7F0826FC 10A00006 */ beqz $a1, .L7F082718 +/* 0B7230 7F082700 AFA5004C */ sw $a1, 0x4c($sp) +/* 0B7234 7F082704 8FB90060 */ lw $t9, 0x60($sp) +/* 0B7238 7F082708 97B800FE */ lhu $t8, 0xfe($sp) +/* 0B723C 7F08270C 03382824 */ and $a1, $t9, $t8 +/* 0B7240 7F082710 0005582B */ sltu $t3, $zero, $a1 +/* 0B7244 7F082714 01602825 */ move $a1, $t3 +.L7F082718: +/* 0B7248 7F082718 8FAA0060 */ lw $t2, 0x60($sp) +/* 0B724C 7F08271C AFA50174 */ sw $a1, 0x174($sp) +/* 0B7250 7F082720 01422024 */ and $a0, $t2, $v0 +/* 0B7254 7F082724 0004282B */ sltu $a1, $zero, $a0 +/* 0B7258 7F082728 10A00006 */ beqz $a1, .L7F082744 +/* 0B725C 7F08272C AFA50040 */ sw $a1, 0x40($sp) +/* 0B7260 7F082730 8FAC005C */ lw $t4, 0x5c($sp) +/* 0B7264 7F082734 97AE00FE */ lhu $t6, 0xfe($sp) +/* 0B7268 7F082738 018E2824 */ and $a1, $t4, $t6 +/* 0B726C 7F08273C 2CAF0001 */ sltiu $t7, $a1, 1 +/* 0B7270 7F082740 01E02825 */ move $a1, $t7 +.L7F082744: +/* 0B7274 7F082744 AFA50170 */ sw $a1, 0x170($sp) +/* 0B7278 7F082748 AFA3016C */ sw $v1, 0x16c($sp) +/* 0B727C 7F08274C AFA30168 */ sw $v1, 0x168($sp) +/* 0B7280 7F082750 00002025 */ move $a0, $zero +/* 0B7284 7F082754 0FC17674 */ jal get_item_in_hand +/* 0B7288 7F082758 AFA60050 */ sw $a2, 0x50($sp) +/* 0B728C 7F08275C 00402025 */ move $a0, $v0 +/* 0B7290 7F082760 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0B7294 7F082764 34058000 */ li $a1, 32768 +/* 0B7298 7F082768 10400013 */ beqz $v0, .L7F0827B8 +/* 0B729C 7F08276C 8FA60050 */ lw $a2, 0x50($sp) +/* 0B72A0 7F082770 8E190000 */ lw $t9, ($s0) +/* 0B72A4 7F082774 8FAB005C */ lw $t3, 0x5c($sp) +/* 0B72A8 7F082778 8F380124 */ lw $t8, 0x124($t9) +/* 0B72AC 7F08277C 31620808 */ andi $v0, $t3, 0x808 +/* 0B72B0 7F082780 0002502B */ sltu $t2, $zero, $v0 +/* 0B72B4 7F082784 1300000C */ beqz $t8, .L7F0827B8 +/* 0B72B8 7F082788 316D0404 */ andi $t5, $t3, 0x404 +/* 0B72BC 7F08278C 11A00005 */ beqz $t5, .L7F0827A4 +/* 0B72C0 7F082790 01401025 */ move $v0, $t2 +/* 0B72C4 7F082794 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B72C8 7F082798 44812000 */ mtc1 $at, $f4 +/* 0B72CC 7F08279C 00000000 */ nop +/* 0B72D0 7F0827A0 E7A40164 */ swc1 $f4, 0x164($sp) +.L7F0827A4: +/* 0B72D4 7F0827A4 10400004 */ beqz $v0, .L7F0827B8 +/* 0B72D8 7F0827A8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B72DC 7F0827AC 44813000 */ mtc1 $at, $f6 +/* 0B72E0 7F0827B0 00000000 */ nop +/* 0B72E4 7F0827B4 E7A60160 */ swc1 $f6, 0x160($sp) +.L7F0827B8: +/* 0B72E8 7F0827B8 00002025 */ move $a0, $zero +/* 0B72EC 7F0827BC 0FC17674 */ jal get_item_in_hand +/* 0B72F0 7F0827C0 AFA60050 */ sw $a2, 0x50($sp) +/* 0B72F4 7F0827C4 00402025 */ move $a0, $v0 +/* 0B72F8 7F0827C8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0B72FC 7F0827CC 34058000 */ li $a1, 32768 +/* 0B7300 7F0827D0 2C450001 */ sltiu $a1, $v0, 1 +/* 0B7304 7F0827D4 10A00009 */ beqz $a1, .L7F0827FC +/* 0B7308 7F0827D8 8FA60050 */ lw $a2, 0x50($sp) +/* 0B730C 7F0827DC 8E0C0000 */ lw $t4, ($s0) +/* 0B7310 7F0827E0 8D850124 */ lw $a1, 0x124($t4) +/* 0B7314 7F0827E4 0005702B */ sltu $t6, $zero, $a1 +/* 0B7318 7F0827E8 11C00004 */ beqz $t6, .L7F0827FC +/* 0B731C 7F0827EC 01C02825 */ move $a1, $t6 +/* 0B7320 7F0827F0 8FA5005C */ lw $a1, 0x5c($sp) +/* 0B7324 7F0827F4 30AF0404 */ andi $t7, $a1, 0x404 +/* 0B7328 7F0827F8 000F282B */ sltu $a1, $zero, $t7 +.L7F0827FC: +/* 0B732C 7F0827FC AFA5015C */ sw $a1, 0x15c($sp) +/* 0B7330 7F082800 00002025 */ move $a0, $zero +/* 0B7334 7F082804 0FC17674 */ jal get_item_in_hand +/* 0B7338 7F082808 AFA60050 */ sw $a2, 0x50($sp) +/* 0B733C 7F08280C 00402025 */ move $a0, $v0 +/* 0B7340 7F082810 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0B7344 7F082814 34058000 */ li $a1, 32768 +/* 0B7348 7F082818 2C450001 */ sltiu $a1, $v0, 1 +/* 0B734C 7F08281C 10A0000A */ beqz $a1, .L7F082848 +/* 0B7350 7F082820 8FA60050 */ lw $a2, 0x50($sp) +/* 0B7354 7F082824 8E180000 */ lw $t8, ($s0) +/* 0B7358 7F082828 8F050124 */ lw $a1, 0x124($t8) +/* 0B735C 7F08282C 0005502B */ sltu $t2, $zero, $a1 +/* 0B7360 7F082830 11400005 */ beqz $t2, .L7F082848 +/* 0B7364 7F082834 01402825 */ move $a1, $t2 +/* 0B7368 7F082838 8FA5005C */ lw $a1, 0x5c($sp) +/* 0B736C 7F08283C 00A02827 */ not $a1, $a1 +/* 0B7370 7F082840 30AB0808 */ andi $t3, $a1, 0x808 +/* 0B7374 7F082844 000B282B */ sltu $a1, $zero, $t3 +.L7F082848: +/* 0B7378 7F082848 8E0C0000 */ lw $t4, ($s0) +/* 0B737C 7F08284C AFA50158 */ sw $a1, 0x158($sp) +/* 0B7380 7F082850 8D820124 */ lw $v0, 0x124($t4) +/* 0B7384 7F082854 0002282B */ sltu $a1, $zero, $v0 +/* 0B7388 7F082858 10A00002 */ beqz $a1, .L7F082864 +/* 0B738C 7F08285C 00A01025 */ move $v0, $a1 +/* 0B7390 7F082860 00C02825 */ move $a1, $a2 +.L7F082864: +/* 0B7394 7F082864 AFA50154 */ sw $a1, 0x154($sp) +/* 0B7398 7F082868 10400002 */ beqz $v0, .L7F082874 +/* 0B739C 7F08286C 00402825 */ move $a1, $v0 +/* 0B73A0 7F082870 8FA50044 */ lw $a1, 0x44($sp) +.L7F082874: +/* 0B73A4 7F082874 8FAF004C */ lw $t7, 0x4c($sp) +/* 0B73A8 7F082878 AFA50150 */ sw $a1, 0x150($sp) +/* 0B73AC 7F08287C 8FB90048 */ lw $t9, 0x48($sp) +/* 0B73B0 7F082880 11E00002 */ beqz $t7, .L7F08288C +/* 0B73B4 7F082884 8FB8005C */ lw $t8, 0x5c($sp) +/* 0B73B8 7F082888 17200005 */ bnez $t9, .L7F0828A0 +.L7F08288C: +/* 0B73BC 7F08288C 330A4000 */ andi $t2, $t8, 0x4000 +/* 0B73C0 7F082890 1140000C */ beqz $t2, .L7F0828C4 +/* 0B73C4 7F082894 8FAB0040 */ lw $t3, 0x40($sp) +/* 0B73C8 7F082898 1160000A */ beqz $t3, .L7F0828C4 +/* 0B73CC 7F08289C 00000000 */ nop +.L7F0828A0: +/* 0B73D0 7F0828A0 0FC17674 */ jal get_item_in_hand +/* 0B73D4 7F0828A4 00002025 */ move $a0, $zero +/* 0B73D8 7F0828A8 2401001D */ li $at, 29 +/* 0B73DC 7F0828AC 14410005 */ bne $v0, $at, .L7F0828C4 +/* 0B73E0 7F0828B0 240D0001 */ li $t5, 1 +/* 0B73E4 7F0828B4 AFAD014C */ sw $t5, 0x14c($sp) +/* 0B73E8 7F0828B8 AFA00174 */ sw $zero, 0x174($sp) +/* 0B73EC 7F0828BC AFA00170 */ sw $zero, 0x170($sp) +/* 0B73F0 7F0828C0 AFA001B0 */ sw $zero, 0x1b0($sp) +.L7F0828C4: +/* 0B73F4 7F0828C4 3C0C8003 */ lui $t4, %hi(in_tank_flag) +/* 0B73F8 7F0828C8 8D8C6448 */ lw $t4, %lo(in_tank_flag)($t4) +/* 0B73FC 7F0828CC 24010001 */ li $at, 1 +/* 0B7400 7F0828D0 55810024 */ bnel $t4, $at, .L7F082964 +/* 0B7404 7F0828D4 8FB8005C */ lw $t8, 0x5c($sp) +/* 0B7408 7F0828D8 8E0E0000 */ lw $t6, ($s0) +/* 0B740C 7F0828DC 8DCF0124 */ lw $t7, 0x124($t6) +/* 0B7410 7F0828E0 51E00020 */ beql $t7, $zero, .L7F082964 +/* 0B7414 7F0828E4 8FB8005C */ lw $t8, 0x5c($sp) +/* 0B7418 7F0828E8 0FC17674 */ jal get_item_in_hand +/* 0B741C 7F0828EC 00002025 */ move $a0, $zero +/* 0B7420 7F0828F0 24010020 */ li $at, 32 +/* 0B7424 7F0828F4 14410005 */ bne $v0, $at, .L7F08290C +/* 0B7428 7F0828F8 C7A8018C */ lwc1 $f8, 0x18c($sp) +/* 0B742C 7F0828FC 24190001 */ li $t9, 1 +/* 0B7430 7F082900 AFA00134 */ sw $zero, 0x134($sp) +/* 0B7434 7F082904 10000014 */ b .L7F082958 +/* 0B7438 7F082908 AFB901A8 */ sw $t9, 0x1a8($sp) +.L7F08290C: +/* 0B743C 7F08290C 46144032 */ c.eq.s $f8, $f20 +/* 0B7440 7F082910 C7AA0188 */ lwc1 $f10, 0x188($sp) +/* 0B7444 7F082914 45020011 */ bc1fl .L7F08295C +/* 0B7448 7F082918 E7B4017C */ swc1 $f20, 0x17c($sp) +/* 0B744C 7F08291C 46145032 */ c.eq.s $f10, $f20 +/* 0B7450 7F082920 C7B2017C */ lwc1 $f18, 0x17c($sp) +/* 0B7454 7F082924 4502000D */ bc1fl .L7F08295C +/* 0B7458 7F082928 E7B4017C */ swc1 $f20, 0x17c($sp) +/* 0B745C 7F08292C 4612A03C */ c.lt.s $f20, $f18 +/* 0B7460 7F082930 00000000 */ nop +/* 0B7464 7F082934 45020003 */ bc1fl .L7F082944 +/* 0B7468 7F082938 C7A40178 */ lwc1 $f4, 0x178($sp) +/* 0B746C 7F08293C E7B2018C */ swc1 $f18, 0x18c($sp) +/* 0B7470 7F082940 C7A40178 */ lwc1 $f4, 0x178($sp) +.L7F082944: +/* 0B7474 7F082944 4604A03C */ c.lt.s $f20, $f4 +/* 0B7478 7F082948 00000000 */ nop +/* 0B747C 7F08294C 45020003 */ bc1fl .L7F08295C +/* 0B7480 7F082950 E7B4017C */ swc1 $f20, 0x17c($sp) +/* 0B7484 7F082954 E7A40188 */ swc1 $f4, 0x188($sp) +.L7F082958: +/* 0B7488 7F082958 E7B4017C */ swc1 $f20, 0x17c($sp) +.L7F08295C: +/* 0B748C 7F08295C E7B40178 */ swc1 $f20, 0x178($sp) +.L7F082960: +/* 0B7490 7F082960 8FB8005C */ lw $t8, 0x5c($sp) +.L7F082964: +/* 0B7494 7F082964 97AA00FE */ lhu $t2, 0xfe($sp) +/* 0B7498 7F082968 030A1024 */ and $v0, $t8, $t2 +/* 0B749C 7F08296C 0002282B */ sltu $a1, $zero, $v0 +/* 0B74A0 7F082970 10A0000A */ beqz $a1, .L7F08299C +/* 0B74A4 7F082974 00000000 */ nop +/* 0B74A8 7F082978 8E0D0000 */ lw $t5, ($s0) +/* 0B74AC 7F08297C 97AE00FA */ lhu $t6, 0xfa($sp) +/* 0B74B0 7F082980 8DA501C8 */ lw $a1, 0x1c8($t5) +/* 0B74B4 7F082984 2CAC0001 */ sltiu $t4, $a1, 1 +/* 0B74B8 7F082988 11800004 */ beqz $t4, .L7F08299C +/* 0B74BC 7F08298C 01802825 */ move $a1, $t4 +/* 0B74C0 7F082990 030E2824 */ and $a1, $t8, $t6 +/* 0B74C4 7F082994 2CAF0001 */ sltiu $t7, $a1, 1 +/* 0B74C8 7F082998 01E02825 */ move $a1, $t7 +.L7F08299C: +/* 0B74CC 7F08299C 0FC29370 */ jal cur_player_get_control_type +/* 0B74D0 7F0829A0 AFA501B4 */ sw $a1, 0x1b4($sp) +/* 0B74D4 7F0829A4 24010001 */ li $at, 1 +/* 0B74D8 7F0829A8 50410006 */ beql $v0, $at, .L7F0829C4 +/* 0B74DC 7F0829AC 24190001 */ li $t9, 1 +/* 0B74E0 7F0829B0 0FC29370 */ jal cur_player_get_control_type +/* 0B74E4 7F0829B4 00000000 */ nop +/* 0B74E8 7F0829B8 24010003 */ li $at, 3 +/* 0B74EC 7F0829BC 14410002 */ bne $v0, $at, .L7F0829C8 +/* 0B74F0 7F0829C0 24190001 */ li $t9, 1 +.L7F0829C4: +/* 0B74F4 7F0829C4 AFB90140 */ sw $t9, 0x140($sp) +.L7F0829C8: +/* 0B74F8 7F0829C8 8E0A0000 */ lw $t2, ($s0) +.L7F0829CC: +/* 0B74FC 7F0829CC AD4000D0 */ sw $zero, 0xd0($t2) +/* 0B7500 7F0829D0 8FAB01B0 */ lw $t3, 0x1b0($sp) +/* 0B7504 7F0829D4 11600095 */ beqz $t3, .L7F082C2C +/* 0B7508 7F0829D8 3C0D8003 */ lui $t5, %hi(in_tank_flag) +/* 0B750C 7F0829DC 8DAD6448 */ lw $t5, %lo(in_tank_flag)($t5) +/* 0B7510 7F0829E0 24010001 */ li $at, 1 +/* 0B7514 7F0829E4 3C0C8003 */ lui $t4, %hi(ptr_playerstank) +/* 0B7518 7F0829E8 15A1002E */ bne $t5, $at, .L7F082AA4 +/* 0B751C 7F0829EC 3C028003 */ lui $v0, %hi(ptr_playerstank) +/* 0B7520 7F0829F0 8D8C6450 */ lw $t4, %lo(ptr_playerstank)($t4) +/* 0B7524 7F0829F4 24040020 */ li $a0, 32 +/* 0B7528 7F0829F8 8D980004 */ lw $t8, 4($t4) +/* 0B752C 7F0829FC 0FC1A514 */ jal get_ammo_count_for_weapon +/* 0B7530 7F082A00 AFB800F4 */ sw $t8, 0xf4($sp) +/* 0B7534 7F082A04 8FAE00F4 */ lw $t6, 0xf4($sp) +/* 0B7538 7F082A08 24040020 */ li $a0, 32 +/* 0B753C 7F082A0C 00002825 */ move $a1, $zero +/* 0B7540 7F082A10 0FC1A521 */ jal add_ammo_to_weapon +/* 0B7544 7F082A14 ADC200D8 */ sw $v0, 0xd8($t6) +/* 0B7548 7F082A18 0FC23187 */ jal sub_GAME_7F08C61C +/* 0B754C 7F082A1C 24040020 */ li $a0, 32 +/* 0B7550 7F082A20 0FC17674 */ jal get_item_in_hand +/* 0B7554 7F082A24 00002025 */ move $a0, $zero +/* 0B7558 7F082A28 24010020 */ li $at, 32 +/* 0B755C 7F082A2C 54410009 */ bnel $v0, $at, .L7F082A54 +/* 0B7560 7F082A30 8FAA00F4 */ lw $t2, 0xf4($sp) +/* 0B7564 7F082A34 0FC1A4D1 */ jal get_ammo_in_hands_magazine +/* 0B7568 7F082A38 00002025 */ move $a0, $zero +/* 0B756C 7F082A3C 8FA300F4 */ lw $v1, 0xf4($sp) +/* 0B7570 7F082A40 8C6F00D8 */ lw $t7, 0xd8($v1) +/* 0B7574 7F082A44 01E2C821 */ addu $t9, $t7, $v0 +/* 0B7578 7F082A48 0FC17600 */ jal autoadvance_on_deplete_all_ammo +/* 0B757C 7F082A4C AC7900D8 */ sw $t9, 0xd8($v1) +/* 0B7580 7F082A50 8FAA00F4 */ lw $t2, 0xf4($sp) +.L7F082A54: +/* 0B7584 7F082A54 3C018003 */ lui $at, %hi(in_tank_flag) +/* 0B7588 7F082A58 00001025 */ move $v0, $zero +/* 0B758C 7F082A5C AD4000C4 */ sw $zero, 0xc4($t2) +/* 0B7590 7F082A60 AC206448 */ sw $zero, %lo(in_tank_flag)($at) +/* 0B7594 7F082A64 8E0B0000 */ lw $t3, ($s0) +/* 0B7598 7F082A68 2403000C */ li $v1, 12 +/* 0B759C 7F082A6C E574016C */ swc1 $f20, 0x16c($t3) +/* 0B75A0 7F082A70 8E0D0000 */ lw $t5, ($s0) +/* 0B75A4 7F082A74 E5B40174 */ swc1 $f20, 0x174($t5) +/* 0B75A8 7F082A78 8E0C0000 */ lw $t4, ($s0) +/* 0B75AC 7F082A7C E594014C */ swc1 $f20, 0x14c($t4) +.L7F082A80: +/* 0B75B0 7F082A80 8E180000 */ lw $t8, ($s0) +/* 0B75B4 7F082A84 03027021 */ addu $t6, $t8, $v0 +/* 0B75B8 7F082A88 24420004 */ addiu $v0, $v0, 4 +/* 0B75BC 7F082A8C 1443FFFC */ bne $v0, $v1, .L7F082A80 +/* 0B75C0 7F082A90 E5D40180 */ swc1 $f20, 0x180($t6) +/* 0B75C4 7F082A94 8E190000 */ lw $t9, ($s0) +/* 0B75C8 7F082A98 240F0002 */ li $t7, 2 +/* 0B75CC 7F082A9C 10000063 */ b .L7F082C2C +/* 0B75D0 7F082AA0 AF2F009C */ sw $t7, 0x9c($t9) +.L7F082AA4: +/* 0B75D4 7F082AA4 8C426450 */ lw $v0, %lo(ptr_playerstank)($v0) +/* 0B75D8 7F082AA8 5040005E */ beql $v0, $zero, .L7F082C24 +/* 0B75DC 7F082AAC 8E0D0000 */ lw $t5, ($s0) +/* 0B75E0 7F082AB0 904A0000 */ lbu $t2, ($v0) +/* 0B75E4 7F082AB4 24010001 */ li $at, 1 +/* 0B75E8 7F082AB8 5541005A */ bnel $t2, $at, .L7F082C24 +/* 0B75EC 7F082ABC 8E0D0000 */ lw $t5, ($s0) +/* 0B75F0 7F082AC0 8C450004 */ lw $a1, 4($v0) +/* 0B75F4 7F082AC4 2401002D */ li $at, 45 +/* 0B75F8 7F082AC8 3C0D8003 */ lui $t5, %hi(D_80036480) +/* 0B75FC 7F082ACC 90AB0003 */ lbu $t3, 3($a1) +/* 0B7600 7F082AD0 55610054 */ bnel $t3, $at, .L7F082C24 +/* 0B7604 7F082AD4 8E0D0000 */ lw $t5, ($s0) +/* 0B7608 7F082AD8 8DAD6480 */ lw $t5, %lo(D_80036480)($t5) +/* 0B760C 7F082ADC 24040020 */ li $a0, 32 +/* 0B7610 7F082AE0 51A00050 */ beql $t5, $zero, .L7F082C24 +/* 0B7614 7F082AE4 8E0D0000 */ lw $t5, ($s0) +/* 0B7618 7F082AE8 0FC23122 */ jal add_item_to_inventory +/* 0B761C 7F082AEC AFA500EC */ sw $a1, 0xec($sp) +/* 0B7620 7F082AF0 8FA300EC */ lw $v1, 0xec($sp) +/* 0B7624 7F082AF4 24040020 */ li $a0, 32 +/* 0B7628 7F082AF8 0FC1A521 */ jal add_ammo_to_weapon +/* 0B762C 7F082AFC 8C6500D8 */ lw $a1, 0xd8($v1) +/* 0B7630 7F082B00 8FA300EC */ lw $v1, 0xec($sp) +/* 0B7634 7F082B04 3C048003 */ lui $a0, %hi(D_8003646C) +/* 0B7638 7F082B08 2484646C */ addiu $a0, %lo(D_8003646C) # addiu $a0, $a0, 0x646c +/* 0B763C 7F082B0C C46600C8 */ lwc1 $f6, 0xc8($v1) +/* 0B7640 7F082B10 AC6000D8 */ sw $zero, 0xd8($v1) +/* 0B7644 7F082B14 3C018005 */ lui $at, %hi(D_80055120) +/* 0B7648 7F082B18 E4860000 */ swc1 $f6, ($a0) +/* 0B764C 7F082B1C C42A5120 */ lwc1 $f10, %lo(D_80055120)($at) +/* 0B7650 7F082B20 C4880000 */ lwc1 $f8, ($a0) +/* 0B7654 7F082B24 3C018003 */ lui $at, %hi(D_80036470) +/* 0B7658 7F082B28 3C058003 */ lui $a1, %hi(D_80036474) +/* 0B765C 7F082B2C 460A4483 */ div.s $f18, $f8, $f10 +/* 0B7660 7F082B30 24A56474 */ addiu $a1, %lo(D_80036474) # addiu $a1, $a1, 0x6474 +/* 0B7664 7F082B34 240C0001 */ li $t4, 1 +/* 0B7668 7F082B38 24190001 */ li $t9, 1 +/* 0B766C 7F082B3C 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799D0) +/* 0B7670 7F082B40 244299D0 */ addiu $v0, %lo(flt_CODE_bss_800799D0) # addiu $v0, $v0, -0x6630 +/* 0B7674 7F082B44 E4326470 */ swc1 $f18, %lo(D_80036470)($at) +/* 0B7678 7F082B48 C46400CC */ lwc1 $f4, 0xcc($v1) +/* 0B767C 7F082B4C 3C018003 */ lui $at, %hi(D_80036484) +/* 0B7680 7F082B50 E4246484 */ swc1 $f4, %lo(D_80036484)($at) +/* 0B7684 7F082B54 C46600CC */ lwc1 $f6, 0xcc($v1) +/* 0B7688 7F082B58 3C018005 */ lui $at, %hi(D_80055124) +/* 0B768C 7F082B5C E4A60000 */ swc1 $f6, ($a1) +/* 0B7690 7F082B60 C42A5124 */ lwc1 $f10, %lo(D_80055124)($at) +/* 0B7694 7F082B64 C4A80000 */ lwc1 $f8, ($a1) +/* 0B7698 7F082B68 3C018003 */ lui $at, %hi(D_80036478) +/* 0B769C 7F082B6C 460A4483 */ div.s $f18, $f8, $f10 +/* 0B76A0 7F082B70 E4326478 */ swc1 $f18, %lo(D_80036478)($at) +/* 0B76A4 7F082B74 3C018003 */ lui $at, %hi(D_8003647C) +/* 0B76A8 7F082B78 E434647C */ swc1 $f20, %lo(D_8003647C)($at) +/* 0B76AC 7F082B7C C46400DC */ lwc1 $f4, 0xdc($v1) +/* 0B76B0 7F082B80 3C018003 */ lui $at, %hi(D_80036464) +/* 0B76B4 7F082B84 E4246464 */ swc1 $f4, %lo(D_80036464)($at) +/* 0B76B8 7F082B88 3C018003 */ lui $at, %hi(D_80036460) +/* 0B76BC 7F082B8C E4346460 */ swc1 $f20, %lo(D_80036460)($at) +/* 0B76C0 7F082B90 3C018003 */ lui $at, %hi(in_tank_flag) +/* 0B76C4 7F082B94 AC2C6448 */ sw $t4, %lo(in_tank_flag)($at) +/* 0B76C8 7F082B98 3C018008 */ lui $at, %hi(dword_CODE_bss_800799B8) +/* 0B76CC 7F082B9C AC2099B8 */ sw $zero, %lo(dword_CODE_bss_800799B8)($at) +/* 0B76D0 7F082BA0 8E180000 */ lw $t8, ($s0) +/* 0B76D4 7F082BA4 3C018008 */ lui $at, %hi(flt_CODE_bss_800799BC) +/* 0B76D8 7F082BA8 E714016C */ swc1 $f20, 0x16c($t8) +/* 0B76DC 7F082BAC 8E0E0000 */ lw $t6, ($s0) +/* 0B76E0 7F082BB0 E5D40174 */ swc1 $f20, 0x174($t6) +/* 0B76E4 7F082BB4 8E0F0000 */ lw $t7, ($s0) +/* 0B76E8 7F082BB8 E5F4014C */ swc1 $f20, 0x14c($t7) +/* 0B76EC 7F082BBC 8E0A0000 */ lw $t2, ($s0) +/* 0B76F0 7F082BC0 AD59009C */ sw $t9, 0x9c($t2) +/* 0B76F4 7F082BC4 E43499BC */ swc1 $f20, %lo(flt_CODE_bss_800799BC)($at) +/* 0B76F8 7F082BC8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B76FC 7F082BCC 44813000 */ mtc1 $at, $f6 +/* 0B7700 7F082BD0 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C0) +/* 0B7704 7F082BD4 E42699C0 */ swc1 $f6, %lo(flt_CODE_bss_800799C0)($at) +/* 0B7708 7F082BD8 8E080000 */ lw $t0, ($s0) +/* 0B770C 7F082BDC 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C4) +/* 0B7710 7F082BE0 C5080148 */ lwc1 $f8, 0x148($t0) +/* 0B7714 7F082BE4 E42899C4 */ swc1 $f8, %lo(flt_CODE_bss_800799C4)($at) +/* 0B7718 7F082BE8 C50A0158 */ lwc1 $f10, 0x158($t0) +/* 0B771C 7F082BEC 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C8) +/* 0B7720 7F082BF0 E42A99C8 */ swc1 $f10, %lo(flt_CODE_bss_800799C8)($at) +/* 0B7724 7F082BF4 C512048C */ lwc1 $f18, 0x48c($t0) +/* 0B7728 7F082BF8 3C018003 */ lui $at, %hi(D_80036490) +/* 0B772C 7F082BFC E4520000 */ swc1 $f18, ($v0) +/* 0B7730 7F082C00 C5040490 */ lwc1 $f4, 0x490($t0) +/* 0B7734 7F082C04 E4440004 */ swc1 $f4, 4($v0) +/* 0B7738 7F082C08 C5060494 */ lwc1 $f6, 0x494($t0) +/* 0B773C 7F082C0C E4460008 */ swc1 $f6, 8($v0) +/* 0B7740 7F082C10 0FC1F1ED */ jal sub_GAME_7F07C7B4 +/* 0B7744 7F082C14 AC206490 */ sw $zero, %lo(D_80036490)($at) +/* 0B7748 7F082C18 10000005 */ b .L7F082C30 +/* 0B774C 7F082C1C 8FAC0144 */ lw $t4, 0x144($sp) +/* 0B7750 7F082C20 8E0D0000 */ lw $t5, ($s0) +.L7F082C24: +/* 0B7754 7F082C24 240B0001 */ li $t3, 1 +/* 0B7758 7F082C28 ADAB00D0 */ sw $t3, 0xd0($t5) +.L7F082C2C: +/* 0B775C 7F082C2C 8FAC0144 */ lw $t4, 0x144($sp) +.L7F082C30: +/* 0B7760 7F082C30 1580000B */ bnez $t4, .L7F082C60 +/* 0B7764 7F082C34 00000000 */ nop +/* 0B7768 7F082C38 83B801C7 */ lb $t8, 0x1c7($sp) +/* 0B776C 7F082C3C 8FAF0128 */ lw $t7, 0x128($sp) +/* 0B7770 7F082C40 C7A00184 */ lwc1 $f0, 0x184($sp) +/* 0B7774 7F082C44 C7A80180 */ lwc1 $f8, 0x180($sp) +/* 0B7778 7F082C48 00187023 */ negu $t6, $t8 +/* 0B777C 7F082C4C 000FC823 */ negu $t9, $t7 +/* 0B7780 7F082C50 AFAE0130 */ sw $t6, 0x130($sp) +/* 0B7784 7F082C54 AFB90128 */ sw $t9, 0x128($sp) +/* 0B7788 7F082C58 E7A00180 */ swc1 $f0, 0x180($sp) +/* 0B778C 7F082C5C E7A80184 */ swc1 $f8, 0x184($sp) +.L7F082C60: +/* 0B7790 7F082C60 0FC227A9 */ jal check_if_bond_is_invincible +/* 0B7794 7F082C64 00000000 */ nop +/* 0B7798 7F082C68 10400007 */ beqz $v0, .L7F082C88 +/* 0B779C 7F082C6C 00000000 */ nop +/* 0B77A0 7F082C70 0FC26919 */ jal get_num_players +/* 0B77A4 7F082C74 00000000 */ nop +/* 0B77A8 7F082C78 24010001 */ li $at, 1 +/* 0B77AC 7F082C7C 14410002 */ bne $v0, $at, .L7F082C88 +/* 0B77B0 7F082C80 00000000 */ nop +/* 0B77B4 7F082C84 AFA001B4 */ sw $zero, 0x1b4($sp) +.L7F082C88: +/* 0B77B8 7F082C88 0FC19D08 */ jal sub_GAME_7F067420 +/* 0B77BC 7F082C8C 8FA401B4 */ lw $a0, 0x1b4($sp) +/* 0B77C0 7F082C90 0FC227DD */ jal get_invisible_to_guards_flag +/* 0B77C4 7F082C94 00000000 */ nop +/* 0B77C8 7F082C98 50400028 */ beql $v0, $zero, .L7F082D3C +/* 0B77CC 7F082C9C 24040002 */ li $a0, 2 +/* 0B77D0 7F082CA0 0FC17722 */ jal get_hands_firing_status +/* 0B77D4 7F082CA4 00002025 */ move $a0, $zero +/* 0B77D8 7F082CA8 54400006 */ bnezl $v0, .L7F082CC4 +/* 0B77DC 7F082CAC E7B400E4 */ swc1 $f20, 0xe4($sp) +/* 0B77E0 7F082CB0 0FC17722 */ jal get_hands_firing_status +/* 0B77E4 7F082CB4 24040001 */ li $a0, 1 +/* 0B77E8 7F082CB8 50400020 */ beql $v0, $zero, .L7F082D3C +/* 0B77EC 7F082CBC 24040002 */ li $a0, 2 +/* 0B77F0 7F082CC0 E7B400E4 */ swc1 $f20, 0xe4($sp) +.L7F082CC4: +/* 0B77F4 7F082CC4 0FC17722 */ jal get_hands_firing_status +/* 0B77F8 7F082CC8 00002025 */ move $a0, $zero +/* 0B77FC 7F082CCC 1040000A */ beqz $v0, .L7F082CF8 +/* 0B7800 7F082CD0 00000000 */ nop +/* 0B7804 7F082CD4 0FC19C5D */ jal sub_GAME_7F067174 +/* 0B7808 7F082CD8 00002025 */ move $a0, $zero +/* 0B780C 7F082CDC 4600A03C */ c.lt.s $f20, $f0 +/* 0B7810 7F082CE0 00000000 */ nop +/* 0B7814 7F082CE4 45000004 */ bc1f .L7F082CF8 +/* 0B7818 7F082CE8 00000000 */ nop +/* 0B781C 7F082CEC 0FC19C5D */ jal sub_GAME_7F067174 +/* 0B7820 7F082CF0 00002025 */ move $a0, $zero +/* 0B7824 7F082CF4 E7A000E4 */ swc1 $f0, 0xe4($sp) +.L7F082CF8: +/* 0B7828 7F082CF8 0FC17722 */ jal get_hands_firing_status +/* 0B782C 7F082CFC 24040001 */ li $a0, 1 +/* 0B7830 7F082D00 1040000B */ beqz $v0, .L7F082D30 +/* 0B7834 7F082D04 00000000 */ nop +/* 0B7838 7F082D08 0FC19C5D */ jal sub_GAME_7F067174 +/* 0B783C 7F082D0C 24040001 */ li $a0, 1 +/* 0B7840 7F082D10 C7AA00E4 */ lwc1 $f10, 0xe4($sp) +/* 0B7844 7F082D14 4600503C */ c.lt.s $f10, $f0 +/* 0B7848 7F082D18 00000000 */ nop +/* 0B784C 7F082D1C 45000004 */ bc1f .L7F082D30 +/* 0B7850 7F082D20 00000000 */ nop +/* 0B7854 7F082D24 0FC19C5D */ jal sub_GAME_7F067174 +/* 0B7858 7F082D28 24040001 */ li $a0, 1 +/* 0B785C 7F082D2C E7A000E4 */ swc1 $f0, 0xe4($sp) +.L7F082D30: +/* 0B7860 7F082D30 0FC08BBB */ jal sub_GAME_7F022EEC +/* 0B7864 7F082D34 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 0B7868 7F082D38 24040002 */ li $a0, 2 +.L7F082D3C: +/* 0B786C 7F082D3C 0FC1A96A */ jal set_unset_bitflags +/* 0B7870 7F082D40 8FA5016C */ lw $a1, 0x16c($sp) +/* 0B7874 7F082D44 C7B20164 */ lwc1 $f18, 0x164($sp) +/* 0B7878 7F082D48 4612A03C */ c.lt.s $f20, $f18 +/* 0B787C 7F082D4C 00000000 */ nop +/* 0B7880 7F082D50 45020004 */ bc1fl .L7F082D64 +/* 0B7884 7F082D54 C7A40160 */ lwc1 $f4, 0x160($sp) +/* 0B7888 7F082D58 0FC17769 */ jal camera_sniper_zoom_in +/* 0B788C 7F082D5C 46009306 */ mov.s $f12, $f18 +/* 0B7890 7F082D60 C7A40160 */ lwc1 $f4, 0x160($sp) +.L7F082D64: +/* 0B7894 7F082D64 4604A03C */ c.lt.s $f20, $f4 +/* 0B7898 7F082D68 00000000 */ nop +/* 0B789C 7F082D6C 45020004 */ bc1fl .L7F082D80 +/* 0B78A0 7F082D70 8E0A0000 */ lw $t2, ($s0) +/* 0B78A4 7F082D74 0FC177A5 */ jal camera_sniper_zoom_out +/* 0B78A8 7F082D78 46002306 */ mov.s $f12, $f4 +/* 0B78AC 7F082D7C 8E0A0000 */ lw $t2, ($s0) +.L7F082D80: +/* 0B78B0 7F082D80 8FAD0168 */ lw $t5, 0x168($sp) +/* 0B78B4 7F082D84 8D4B01C8 */ lw $t3, 0x1c8($t2) +/* 0B78B8 7F082D88 15600011 */ bnez $t3, .L7F082DD0 +/* 0B78BC 7F082D8C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B78C0 7F082D90 44816000 */ mtc1 $at, $f12 +/* 0B78C4 7F082D94 11A0000A */ beqz $t5, .L7F082DC0 +/* 0B78C8 7F082D98 00000000 */ nop +/* 0B78CC 7F082D9C 0FC1774E */ jal get_item_in_hand_zoom +/* 0B78D0 7F082DA0 00000000 */ nop +/* 0B78D4 7F082DA4 4614003E */ c.le.s $f0, $f20 +/* 0B78D8 7F082DA8 46000306 */ mov.s $f12, $f0 +/* 0B78DC 7F082DAC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B78E0 7F082DB0 45000003 */ bc1f .L7F082DC0 +/* 0B78E4 7F082DB4 00000000 */ nop +/* 0B78E8 7F082DB8 44816000 */ mtc1 $at, $f12 +/* 0B78EC 7F082DBC 00000000 */ nop +.L7F082DC0: +/* 0B78F0 7F082DC0 0FC1F91B */ jal sub_GAME_7F07E46C +/* 0B78F4 7F082DC4 00000000 */ nop +/* 0B78F8 7F082DC8 0FC1F98B */ jal sub_GAME_7F07E62C +/* 0B78FC 7F082DCC 00000000 */ nop +.L7F082DD0: +/* 0B7900 7F082DD0 3C0C8003 */ lui $t4, %hi(in_tank_flag) +/* 0B7904 7F082DD4 8D8C6448 */ lw $t4, %lo(in_tank_flag)($t4) +/* 0B7908 7F082DD8 24010001 */ li $at, 1 +/* 0B790C 7F082DDC 8FAE0194 */ lw $t6, 0x194($sp) +/* 0B7910 7F082DE0 158100C6 */ bne $t4, $at, .L7F0830FC +/* 0B7914 7F082DE4 3C028003 */ lui $v0, %hi(D_80036488) +/* 0B7918 7F082DE8 24426488 */ addiu $v0, %lo(D_80036488) # addiu $v0, $v0, 0x6488 +/* 0B791C 7F082DEC E4540000 */ swc1 $f20, ($v0) +/* 0B7920 7F082DF0 3C188008 */ lui $t8, %hi(dword_CODE_bss_800799B8) +/* 0B7924 7F082DF4 8F1899B8 */ lw $t8, %lo(dword_CODE_bss_800799B8)($t8) +/* 0B7928 7F082DF8 24010002 */ li $at, 2 +/* 0B792C 7F082DFC C7A60188 */ lwc1 $f6, 0x188($sp) +/* 0B7930 7F082E00 170100BC */ bne $t8, $at, .L7F0830F4 +/* 0B7934 7F082E04 00000000 */ nop +/* 0B7938 7F082E08 4606A03C */ c.lt.s $f20, $f6 +/* 0B793C 7F082E0C 8E080000 */ lw $t0, ($s0) +/* 0B7940 7F082E10 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B7944 7F082E14 C7AA018C */ lwc1 $f10, 0x18c($sp) +/* 0B7948 7F082E18 4502000B */ bc1fl .L7F082E48 +/* 0B794C 7F082E1C 460AA03C */ c.lt.s $f20, $f10 +/* 0B7950 7F082E20 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B7954 7F082E24 3C018005 */ lui $at, %hi(D_80055128) +/* 0B7958 7F082E28 C4325128 */ lwc1 $f18, %lo(D_80055128)($at) +/* 0B795C 7F082E2C 46064282 */ mul.s $f10, $f8, $f6 +/* 0B7960 7F082E30 C4480000 */ lwc1 $f8, ($v0) +/* 0B7964 7F082E34 46125102 */ mul.s $f4, $f10, $f18 +/* 0B7968 7F082E38 46044180 */ add.s $f6, $f8, $f4 +/* 0B796C 7F082E3C 10000031 */ b .L7F082F04 +/* 0B7970 7F082E40 E4460000 */ swc1 $f6, ($v0) +/* 0B7974 7F082E44 460AA03C */ c.lt.s $f20, $f10 +.L7F082E48: +/* 0B7978 7F082E48 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B797C 7F082E4C 8FAE01A8 */ lw $t6, 0x1a8($sp) +/* 0B7980 7F082E50 4500000A */ bc1f .L7F082E7C +/* 0B7984 7F082E54 00000000 */ nop +/* 0B7988 7F082E58 C4328378 */ lwc1 $f18, %lo(global_timer_delta)($at) +/* 0B798C 7F082E5C 3C018005 */ lui $at, %hi(D_8005512C) +/* 0B7990 7F082E60 C424512C */ lwc1 $f4, %lo(D_8005512C)($at) +/* 0B7994 7F082E64 460A9202 */ mul.s $f8, $f18, $f10 +/* 0B7998 7F082E68 C4520000 */ lwc1 $f18, ($v0) +/* 0B799C 7F082E6C 46044182 */ mul.s $f6, $f8, $f4 +/* 0B79A0 7F082E70 46069281 */ sub.s $f10, $f18, $f6 +/* 0B79A4 7F082E74 10000023 */ b .L7F082F04 +/* 0B79A8 7F082E78 E44A0000 */ swc1 $f10, ($v0) +.L7F082E7C: +/* 0B79AC 7F082E7C 11C00021 */ beqz $t6, .L7F082F04 +/* 0B79B0 7F082E80 8FAF0124 */ lw $t7, 0x124($sp) +/* 0B79B4 7F082E84 448F4000 */ mtc1 $t7, $f8 +/* 0B79B8 7F082E88 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 0B79BC 7F082E8C 44819000 */ mtc1 $at, $f18 +/* 0B79C0 7F082E90 46804120 */ cvt.s.w $f4, $f8 +/* 0B79C4 7F082E94 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B79C8 7F082E98 44813000 */ mtc1 $at, $f6 +/* 0B79CC 7F082E9C 3C013F80 */ lui $at, 0x3f80 +/* 0B79D0 7F082EA0 46122083 */ div.s $f2, $f4, $f18 +/* 0B79D4 7F082EA4 4602303C */ c.lt.s $f6, $f2 +/* 0B79D8 7F082EA8 00000000 */ nop +/* 0B79DC 7F082EAC 45020004 */ bc1fl .L7F082EC0 +/* 0B79E0 7F082EB0 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B79E4 7F082EB4 44811000 */ mtc1 $at, $f2 +/* 0B79E8 7F082EB8 00000000 */ nop +/* 0B79EC 7F082EBC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.L7F082EC0: +/* 0B79F0 7F082EC0 44815000 */ mtc1 $at, $f10 +/* 0B79F4 7F082EC4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B79F8 7F082EC8 460A103C */ c.lt.s $f2, $f10 +/* 0B79FC 7F082ECC 00000000 */ nop +/* 0B7A00 7F082ED0 45000003 */ bc1f .L7F082EE0 +/* 0B7A04 7F082ED4 00000000 */ nop +/* 0B7A08 7F082ED8 44811000 */ mtc1 $at, $f2 +/* 0B7A0C 7F082EDC 00000000 */ nop +.L7F082EE0: +/* 0B7A10 7F082EE0 3C018005 */ lui $at, %hi(D_80055130) +/* 0B7A14 7F082EE4 C4285130 */ lwc1 $f8, %lo(D_80055130)($at) +/* 0B7A18 7F082EE8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B7A1C 7F082EEC C4328378 */ lwc1 $f18, %lo(global_timer_delta)($at) +/* 0B7A20 7F082EF0 46024102 */ mul.s $f4, $f8, $f2 +/* 0B7A24 7F082EF4 C44A0000 */ lwc1 $f10, ($v0) +/* 0B7A28 7F082EF8 46122182 */ mul.s $f6, $f4, $f18 +/* 0B7A2C 7F082EFC 46065200 */ add.s $f8, $f10, $f6 +/* 0B7A30 7F082F00 E4480000 */ swc1 $f8, ($v0) +.L7F082F04: +/* 0B7A34 7F082F04 8D190124 */ lw $t9, 0x124($t0) +/* 0B7A38 7F082F08 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7A3C 7F082F0C 8FAA01AC */ lw $t2, 0x1ac($sp) +/* 0B7A40 7F082F10 17200078 */ bnez $t9, .L7F0830F4 +/* 0B7A44 7F082F14 00000000 */ nop +/* 0B7A48 7F082F18 44811000 */ mtc1 $at, $f2 +/* 0B7A4C 7F082F1C 4600A006 */ mov.s $f0, $f20 +/* 0B7A50 7F082F20 11400009 */ beqz $t2, .L7F082F48 +/* 0B7A54 7F082F24 46001386 */ mov.s $f14, $f2 +/* 0B7A58 7F082F28 8FA90120 */ lw $t1, 0x120($sp) +/* 0B7A5C 7F082F2C 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 0B7A60 7F082F30 44815000 */ mtc1 $at, $f10 +/* 0B7A64 7F082F34 44892000 */ mtc1 $t1, $f4 +/* 0B7A68 7F082F38 00000000 */ nop +/* 0B7A6C 7F082F3C 468024A0 */ cvt.s.w $f18, $f4 +/* 0B7A70 7F082F40 1000000B */ b .L7F082F70 +/* 0B7A74 7F082F44 460A9003 */ div.s $f0, $f18, $f10 +.L7F082F48: +/* 0B7A78 7F082F48 8FAB019C */ lw $t3, 0x19c($sp) +/* 0B7A7C 7F082F4C 8FAD0198 */ lw $t5, 0x198($sp) +/* 0B7A80 7F082F50 11600003 */ beqz $t3, .L7F082F60 +/* 0B7A84 7F082F54 00000000 */ nop +/* 0B7A88 7F082F58 10000005 */ b .L7F082F70 +/* 0B7A8C 7F082F5C 46001006 */ mov.s $f0, $f2 +.L7F082F60: +/* 0B7A90 7F082F60 11A00003 */ beqz $t5, .L7F082F70 +/* 0B7A94 7F082F64 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B7A98 7F082F68 44810000 */ mtc1 $at, $f0 +/* 0B7A9C 7F082F6C 00000000 */ nop +.L7F082F70: +/* 0B7AA0 7F082F70 4600103C */ c.lt.s $f2, $f0 +/* 0B7AA4 7F082F74 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B7AA8 7F082F78 3C0C8005 */ lui $t4, %hi(clock_timer) +/* 0B7AAC 7F082F7C 45020004 */ bc1fl .L7F082F90 +/* 0B7AB0 7F082F80 44813000 */ mtc1 $at, $f6 +/* 0B7AB4 7F082F84 10000009 */ b .L7F082FAC +/* 0B7AB8 7F082F88 46001006 */ mov.s $f0, $f2 +/* 0B7ABC 7F082F8C 44813000 */ mtc1 $at, $f6 +.L7F082F90: +/* 0B7AC0 7F082F90 3C01BF80 */ lui $at, 0xbf80 +/* 0B7AC4 7F082F94 4606003C */ c.lt.s $f0, $f6 +/* 0B7AC8 7F082F98 00000000 */ nop +/* 0B7ACC 7F082F9C 45020004 */ bc1fl .L7F082FB0 +/* 0B7AD0 7F082FA0 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0B7AD4 7F082FA4 44810000 */ mtc1 $at, $f0 +/* 0B7AD8 7F082FA8 00000000 */ nop +.L7F082FAC: +/* 0B7ADC 7F082FAC 3C014170 */ li $at, 0x41700000 # 15.000000 +.L7F082FB0: +/* 0B7AE0 7F082FB0 44818000 */ mtc1 $at, $f16 +/* 0B7AE4 7F082FB4 3C038003 */ lui $v1, %hi(D_80036490) +/* 0B7AE8 7F082FB8 24636490 */ addiu $v1, %lo(D_80036490) # addiu $v1, $v1, 0x6490 +/* 0B7AEC 7F082FBC 46100302 */ mul.s $f12, $f0, $f16 +/* 0B7AF0 7F082FC0 8C620000 */ lw $v0, ($v1) +/* 0B7AF4 7F082FC4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B7AF8 7F082FC8 18400008 */ blez $v0, .L7F082FEC +/* 0B7AFC 7F082FCC 46006086 */ mov.s $f2, $f12 +/* 0B7B00 7F082FD0 44814000 */ mtc1 $at, $f8 +/* 0B7B04 7F082FD4 8D8C8374 */ lw $t4, %lo(clock_timer)($t4) +/* 0B7B08 7F082FD8 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0B7B0C 7F082FDC 44817000 */ mtc1 $at, $f14 +/* 0B7B10 7F082FE0 004CC023 */ subu $t8, $v0, $t4 +/* 0B7B14 7F082FE4 46086082 */ mul.s $f2, $f12, $f8 +/* 0B7B18 7F082FE8 AC780000 */ sw $t8, ($v1) +.L7F082FEC: +/* 0B7B1C 7F082FEC C5000174 */ lwc1 $f0, 0x174($t0) +/* 0B7B20 7F082FF0 46001032 */ c.eq.s $f2, $f0 +/* 0B7B24 7F082FF4 00000000 */ nop +/* 0B7B28 7F082FF8 4501003E */ bc1t .L7F0830F4 +/* 0B7B2C 7F082FFC 00000000 */ nop +/* 0B7B30 7F083000 4602003C */ c.lt.s $f0, $f2 +/* 0B7B34 7F083004 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0B7B38 7F083008 4502001D */ bc1fl .L7F083080 +/* 0B7B3C 7F08300C 4600103C */ c.lt.s $f2, $f0 +/* 0B7B40 7F083010 46001101 */ sub.s $f4, $f2, $f0 +/* 0B7B44 7F083014 44819000 */ mtc1 $at, $f18 +/* 0B7B48 7F083018 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B7B4C 7F08301C 44814000 */ mtc1 $at, $f8 +/* 0B7B50 7F083020 46122282 */ mul.s $f10, $f4, $f18 +/* 0B7B54 7F083024 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B7B58 7F083028 46105183 */ div.s $f6, $f10, $f16 +/* 0B7B5C 7F08302C 44815000 */ mtc1 $at, $f10 +/* 0B7B60 7F083030 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B7B64 7F083034 46083100 */ add.s $f4, $f6, $f8 +/* 0B7B68 7F083038 44814000 */ mtc1 $at, $f8 +/* 0B7B6C 7F08303C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B7B70 7F083040 460E2482 */ mul.s $f18, $f4, $f14 +/* 0B7B74 7F083044 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B7B78 7F083048 460A9182 */ mul.s $f6, $f18, $f10 +/* 0B7B7C 7F08304C 46083303 */ div.s $f12, $f6, $f8 +/* 0B7B80 7F083050 46046482 */ mul.s $f18, $f12, $f4 +/* 0B7B84 7F083054 46120280 */ add.s $f10, $f0, $f18 +/* 0B7B88 7F083058 E50A0174 */ swc1 $f10, 0x174($t0) +/* 0B7B8C 7F08305C 8E080000 */ lw $t0, ($s0) +/* 0B7B90 7F083060 C5060174 */ lwc1 $f6, 0x174($t0) +/* 0B7B94 7F083064 4606103C */ c.lt.s $f2, $f6 +/* 0B7B98 7F083068 00000000 */ nop +/* 0B7B9C 7F08306C 45000021 */ bc1f .L7F0830F4 +/* 0B7BA0 7F083070 00000000 */ nop +/* 0B7BA4 7F083074 1000001F */ b .L7F0830F4 +/* 0B7BA8 7F083078 E5020174 */ swc1 $f2, 0x174($t0) +/* 0B7BAC 7F08307C 4600103C */ c.lt.s $f2, $f0 +.L7F083080: +/* 0B7BB0 7F083080 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0B7BB4 7F083084 4500001B */ bc1f .L7F0830F4 +/* 0B7BB8 7F083088 00000000 */ nop +/* 0B7BBC 7F08308C 46020201 */ sub.s $f8, $f0, $f2 +/* 0B7BC0 7F083090 44812000 */ mtc1 $at, $f4 +/* 0B7BC4 7F083094 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B7BC8 7F083098 44813000 */ mtc1 $at, $f6 +/* 0B7BCC 7F08309C 46044482 */ mul.s $f18, $f8, $f4 +/* 0B7BD0 7F0830A0 3C01C120 */ li $at, 0xC1200000 # -10.000000 +/* 0B7BD4 7F0830A4 46109283 */ div.s $f10, $f18, $f16 +/* 0B7BD8 7F0830A8 44819000 */ mtc1 $at, $f18 +/* 0B7BDC 7F0830AC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B7BE0 7F0830B0 46065200 */ add.s $f8, $f10, $f6 +/* 0B7BE4 7F0830B4 44813000 */ mtc1 $at, $f6 +/* 0B7BE8 7F0830B8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B7BEC 7F0830BC 460E4102 */ mul.s $f4, $f8, $f14 +/* 0B7BF0 7F0830C0 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B7BF4 7F0830C4 46122282 */ mul.s $f10, $f4, $f18 +/* 0B7BF8 7F0830C8 46065303 */ div.s $f12, $f10, $f6 +/* 0B7BFC 7F0830CC 46086102 */ mul.s $f4, $f12, $f8 +/* 0B7C00 7F0830D0 46040480 */ add.s $f18, $f0, $f4 +/* 0B7C04 7F0830D4 E5120174 */ swc1 $f18, 0x174($t0) +/* 0B7C08 7F0830D8 8E080000 */ lw $t0, ($s0) +/* 0B7C0C 7F0830DC C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0B7C10 7F0830E0 4602503C */ c.lt.s $f10, $f2 +/* 0B7C14 7F0830E4 00000000 */ nop +/* 0B7C18 7F0830E8 45000002 */ bc1f .L7F0830F4 +/* 0B7C1C 7F0830EC 00000000 */ nop +/* 0B7C20 7F0830F0 E5020174 */ swc1 $f2, 0x174($t0) +.L7F0830F4: +/* 0B7C24 7F0830F4 100000A7 */ b .L7F083394 +/* 0B7C28 7F0830F8 8E080000 */ lw $t0, ($s0) +.L7F0830FC: +/* 0B7C2C 7F0830FC 11C00005 */ beqz $t6, .L7F083114 +/* 0B7C30 7F083100 8FAF0190 */ lw $t7, 0x190($sp) +/* 0B7C34 7F083104 0FC1FF31 */ jal sub_GAME_7F07FCC4 +/* 0B7C38 7F083108 2404FFFF */ li $a0, -1 +/* 0B7C3C 7F08310C 1000000A */ b .L7F083138 +/* 0B7C40 7F083110 8FB901A8 */ lw $t9, 0x1a8($sp) +.L7F083114: +/* 0B7C44 7F083114 11E00005 */ beqz $t7, .L7F08312C +/* 0B7C48 7F083118 00000000 */ nop +/* 0B7C4C 7F08311C 0FC1FF31 */ jal sub_GAME_7F07FCC4 +/* 0B7C50 7F083120 24040001 */ li $a0, 1 +/* 0B7C54 7F083124 10000004 */ b .L7F083138 +/* 0B7C58 7F083128 8FB901A8 */ lw $t9, 0x1a8($sp) +.L7F08312C: +/* 0B7C5C 7F08312C 0FC1FF31 */ jal sub_GAME_7F07FCC4 +/* 0B7C60 7F083130 00002025 */ move $a0, $zero +/* 0B7C64 7F083134 8FB901A8 */ lw $t9, 0x1a8($sp) +.L7F083138: +/* 0B7C68 7F083138 8FAA0124 */ lw $t2, 0x124($sp) +/* 0B7C6C 7F08313C 53200009 */ beql $t9, $zero, .L7F083164 +/* 0B7C70 7F083140 8FAD019C */ lw $t5, 0x19c($sp) +/* 0B7C74 7F083144 448A3000 */ mtc1 $t2, $f6 +/* 0B7C78 7F083148 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 0B7C7C 7F08314C 44812000 */ mtc1 $at, $f4 +/* 0B7C80 7F083150 46803220 */ cvt.s.w $f8, $f6 +/* 0B7C84 7F083154 8E0B0000 */ lw $t3, ($s0) +/* 0B7C88 7F083158 46044483 */ div.s $f18, $f8, $f4 +/* 0B7C8C 7F08315C E572016C */ swc1 $f18, 0x16c($t3) +/* 0B7C90 7F083160 8FAD019C */ lw $t5, 0x19c($sp) +.L7F083164: +/* 0B7C94 7F083164 8FAF0198 */ lw $t7, 0x198($sp) +/* 0B7C98 7F083168 11A0000A */ beqz $t5, .L7F083194 +/* 0B7C9C 7F08316C 00000000 */ nop +/* 0B7CA0 7F083170 0FC1FF87 */ jal sub_GAME_7F07FE1C +/* 0B7CA4 7F083174 24040001 */ li $a0, 1 +/* 0B7CA8 7F083178 8E080000 */ lw $t0, ($s0) +/* 0B7CAC 7F08317C 3C188005 */ lui $t8, %hi(clock_timer) +/* 0B7CB0 7F083180 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 0B7CB4 7F083184 8D0C017C */ lw $t4, 0x17c($t0) +/* 0B7CB8 7F083188 01987021 */ addu $t6, $t4, $t8 +/* 0B7CBC 7F08318C 10000009 */ b .L7F0831B4 +/* 0B7CC0 7F083190 AD0E017C */ sw $t6, 0x17c($t0) +.L7F083194: +/* 0B7CC4 7F083194 11E00005 */ beqz $t7, .L7F0831AC +/* 0B7CC8 7F083198 00000000 */ nop +/* 0B7CCC 7F08319C 0FC1FF87 */ jal sub_GAME_7F07FE1C +/* 0B7CD0 7F0831A0 2404FFFF */ li $a0, -1 +/* 0B7CD4 7F0831A4 10000004 */ b .L7F0831B8 +/* 0B7CD8 7F0831A8 8FB901AC */ lw $t9, 0x1ac($sp) +.L7F0831AC: +/* 0B7CDC 7F0831AC 0FC1FF87 */ jal sub_GAME_7F07FE1C +/* 0B7CE0 7F0831B0 00002025 */ move $a0, $zero +.L7F0831B4: +/* 0B7CE4 7F0831B4 8FB901AC */ lw $t9, 0x1ac($sp) +.L7F0831B8: +/* 0B7CE8 7F0831B8 8FAA0120 */ lw $t2, 0x120($sp) +/* 0B7CEC 7F0831BC 53200016 */ beql $t9, $zero, .L7F083218 +/* 0B7CF0 7F0831C0 8E080000 */ lw $t0, ($s0) +/* 0B7CF4 7F0831C4 448A5000 */ mtc1 $t2, $f10 +/* 0B7CF8 7F0831C8 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 0B7CFC 7F0831CC 44814000 */ mtc1 $at, $f8 +/* 0B7D00 7F0831D0 468051A0 */ cvt.s.w $f6, $f10 +/* 0B7D04 7F0831D4 8E0B0000 */ lw $t3, ($s0) +/* 0B7D08 7F0831D8 46083103 */ div.s $f4, $f6, $f8 +/* 0B7D0C 7F0831DC E5640174 */ swc1 $f4, 0x174($t3) +/* 0B7D10 7F0831E0 8FAD0120 */ lw $t5, 0x120($sp) +/* 0B7D14 7F0831E4 29A1003D */ slti $at, $t5, 0x3d +/* 0B7D18 7F0831E8 54200009 */ bnezl $at, .L7F083210 +/* 0B7D1C 7F0831EC 8E0F0000 */ lw $t7, ($s0) +/* 0B7D20 7F0831F0 8E080000 */ lw $t0, ($s0) +/* 0B7D24 7F0831F4 3C188005 */ lui $t8, %hi(clock_timer) +/* 0B7D28 7F0831F8 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 0B7D2C 7F0831FC 8D0C017C */ lw $t4, 0x17c($t0) +/* 0B7D30 7F083200 01987021 */ addu $t6, $t4, $t8 +/* 0B7D34 7F083204 10000003 */ b .L7F083214 +/* 0B7D38 7F083208 AD0E017C */ sw $t6, 0x17c($t0) +/* 0B7D3C 7F08320C 8E0F0000 */ lw $t7, ($s0) +.L7F083210: +/* 0B7D40 7F083210 ADE0017C */ sw $zero, 0x17c($t7) +.L7F083214: +/* 0B7D44 7F083214 8E080000 */ lw $t0, ($s0) +.L7F083218: +/* 0B7D48 7F083218 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7D4C 7F08321C 44819000 */ mtc1 $at, $f18 +/* 0B7D50 7F083220 C5000174 */ lwc1 $f0, 0x174($t0) +/* 0B7D54 7F083224 3C013F80 */ lui $at, 0x3f80 +/* 0B7D58 7F083228 4600903C */ c.lt.s $f18, $f0 +/* 0B7D5C 7F08322C 00000000 */ nop +/* 0B7D60 7F083230 45020007 */ bc1fl .L7F083250 +/* 0B7D64 7F083234 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B7D68 7F083238 44815000 */ mtc1 $at, $f10 +/* 0B7D6C 7F08323C 00000000 */ nop +/* 0B7D70 7F083240 E50A0174 */ swc1 $f10, 0x174($t0) +/* 0B7D74 7F083244 8E080000 */ lw $t0, ($s0) +/* 0B7D78 7F083248 C5000174 */ lwc1 $f0, 0x174($t0) +/* 0B7D7C 7F08324C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.L7F083250: +/* 0B7D80 7F083250 44813000 */ mtc1 $at, $f6 +/* 0B7D84 7F083254 3C01BF80 */ lui $at, 0xbf80 +/* 0B7D88 7F083258 4606003C */ c.lt.s $f0, $f6 +/* 0B7D8C 7F08325C 00000000 */ nop +/* 0B7D90 7F083260 45020006 */ bc1fl .L7F08327C +/* 0B7D94 7F083264 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7D98 7F083268 44814000 */ mtc1 $at, $f8 +/* 0B7D9C 7F08326C 00000000 */ nop +/* 0B7DA0 7F083270 E5080174 */ swc1 $f8, 0x174($t0) +/* 0B7DA4 7F083274 8E080000 */ lw $t0, ($s0) +/* 0B7DA8 7F083278 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F08327C: +/* 0B7DAC 7F08327C 44812000 */ mtc1 $at, $f4 +/* 0B7DB0 7F083280 C500016C */ lwc1 $f0, 0x16c($t0) +/* 0B7DB4 7F083284 3C013F80 */ lui $at, 0x3f80 +/* 0B7DB8 7F083288 4600203C */ c.lt.s $f4, $f0 +/* 0B7DBC 7F08328C 00000000 */ nop +/* 0B7DC0 7F083290 45020007 */ bc1fl .L7F0832B0 +/* 0B7DC4 7F083294 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B7DC8 7F083298 44819000 */ mtc1 $at, $f18 +/* 0B7DCC 7F08329C 00000000 */ nop +/* 0B7DD0 7F0832A0 E512016C */ swc1 $f18, 0x16c($t0) +/* 0B7DD4 7F0832A4 8E080000 */ lw $t0, ($s0) +/* 0B7DD8 7F0832A8 C500016C */ lwc1 $f0, 0x16c($t0) +/* 0B7DDC 7F0832AC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.L7F0832B0: +/* 0B7DE0 7F0832B0 44815000 */ mtc1 $at, $f10 +/* 0B7DE4 7F0832B4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B7DE8 7F0832B8 460A003C */ c.lt.s $f0, $f10 +/* 0B7DEC 7F0832BC 00000000 */ nop +/* 0B7DF0 7F0832C0 45000005 */ bc1f .L7F0832D8 +/* 0B7DF4 7F0832C4 00000000 */ nop +/* 0B7DF8 7F0832C8 44813000 */ mtc1 $at, $f6 +/* 0B7DFC 7F0832CC 00000000 */ nop +/* 0B7E00 7F0832D0 E506016C */ swc1 $f6, 0x16c($t0) +/* 0B7E04 7F0832D4 8E080000 */ lw $t0, ($s0) +.L7F0832D8: +/* 0B7E08 7F0832D8 3C018005 */ lui $at, %hi(D_80055134) +/* 0B7E0C 7F0832DC C4245134 */ lwc1 $f4, %lo(D_80055134)($at) +/* 0B7E10 7F0832E0 C5080174 */ lwc1 $f8, 0x174($t0) +/* 0B7E14 7F0832E4 46044482 */ mul.s $f18, $f8, $f4 +/* 0B7E18 7F0832E8 E5120174 */ swc1 $f18, 0x174($t0) +/* 0B7E1C 7F0832EC 8E080000 */ lw $t0, ($s0) +/* 0B7E20 7F0832F0 C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0B7E24 7F0832F4 C5060178 */ lwc1 $f6, 0x178($t0) +/* 0B7E28 7F0832F8 46065202 */ mul.s $f8, $f10, $f6 +/* 0B7E2C 7F0832FC E5080174 */ swc1 $f8, 0x174($t0) +/* 0B7E30 7F083300 8FB901AC */ lw $t9, 0x1ac($sp) +/* 0B7E34 7F083304 8FAA019C */ lw $t2, 0x19c($sp) +/* 0B7E38 7F083308 57200006 */ bnezl $t9, .L7F083324 +/* 0B7E3C 7F08330C 8FAD0154 */ lw $t5, 0x154($sp) +/* 0B7E40 7F083310 55400004 */ bnezl $t2, .L7F083324 +/* 0B7E44 7F083314 8FAD0154 */ lw $t5, 0x154($sp) +/* 0B7E48 7F083318 8E0B0000 */ lw $t3, ($s0) +/* 0B7E4C 7F08331C AD60017C */ sw $zero, 0x17c($t3) +/* 0B7E50 7F083320 8FAD0154 */ lw $t5, 0x154($sp) +.L7F083324: +/* 0B7E54 7F083324 8FAC0150 */ lw $t4, 0x150($sp) +/* 0B7E58 7F083328 11A00005 */ beqz $t5, .L7F083340 +/* 0B7E5C 7F08332C 00000000 */ nop +/* 0B7E60 7F083330 0FC1E662 */ jal sub_GAME_7F079988 +/* 0B7E64 7F083334 2404FFFF */ li $a0, -1 +/* 0B7E68 7F083338 1000000A */ b .L7F083364 +/* 0B7E6C 7F08333C 8FB8015C */ lw $t8, 0x15c($sp) +.L7F083340: +/* 0B7E70 7F083340 11800005 */ beqz $t4, .L7F083358 +/* 0B7E74 7F083344 00000000 */ nop +/* 0B7E78 7F083348 0FC1E662 */ jal sub_GAME_7F079988 +/* 0B7E7C 7F08334C 24040001 */ li $a0, 1 +/* 0B7E80 7F083350 10000004 */ b .L7F083364 +/* 0B7E84 7F083354 8FB8015C */ lw $t8, 0x15c($sp) +.L7F083358: +/* 0B7E88 7F083358 0FC1E662 */ jal sub_GAME_7F079988 +/* 0B7E8C 7F08335C 00002025 */ move $a0, $zero +/* 0B7E90 7F083360 8FB8015C */ lw $t8, 0x15c($sp) +.L7F083364: +/* 0B7E94 7F083364 8FAE0158 */ lw $t6, 0x158($sp) +/* 0B7E98 7F083368 13000005 */ beqz $t8, .L7F083380 +/* 0B7E9C 7F08336C 00000000 */ nop +/* 0B7EA0 7F083370 0FC1E66B */ jal change_crouch_position +/* 0B7EA4 7F083374 2404FFFE */ li $a0, -2 +/* 0B7EA8 7F083378 10000006 */ b .L7F083394 +/* 0B7EAC 7F08337C 8E080000 */ lw $t0, ($s0) +.L7F083380: +/* 0B7EB0 7F083380 51C00004 */ beql $t6, $zero, .L7F083394 +/* 0B7EB4 7F083384 8E080000 */ lw $t0, ($s0) +/* 0B7EB8 7F083388 0FC1E66B */ jal change_crouch_position +/* 0B7EBC 7F08338C 24040002 */ li $a0, 2 +/* 0B7EC0 7F083390 8E080000 */ lw $t0, ($s0) +.L7F083394: +/* 0B7EC4 7F083394 8D0F017C */ lw $t7, 0x17c($t0) +/* 0B7EC8 7F083398 29E100B4 */ slti $at, $t7, 0xb4 +/* 0B7ECC 7F08339C 14200017 */ bnez $at, .L7F0833FC +/* 0B7ED0 7F0833A0 3C013FA0 */ li $at, 0x3FA00000 # 1.250000 +/* 0B7ED4 7F0833A4 44811000 */ mtc1 $at, $f2 +/* 0B7ED8 7F0833A8 C5000178 */ lwc1 $f0, 0x178($t0) +/* 0B7EDC 7F0833AC 3C018005 */ lui $at, %hi(D_80055138) +/* 0B7EE0 7F0833B0 4602003C */ c.lt.s $f0, $f2 +/* 0B7EE4 7F0833B4 00000000 */ nop +/* 0B7EE8 7F0833B8 4502000A */ bc1fl .L7F0833E4 +/* 0B7EEC 7F0833BC 4600103C */ c.lt.s $f2, $f0 +/* 0B7EF0 7F0833C0 C4245138 */ lwc1 $f4, %lo(D_80055138)($at) +/* 0B7EF4 7F0833C4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B7EF8 7F0833C8 C4328378 */ lwc1 $f18, %lo(global_timer_delta)($at) +/* 0B7EFC 7F0833CC 46122282 */ mul.s $f10, $f4, $f18 +/* 0B7F00 7F0833D0 460A0180 */ add.s $f6, $f0, $f10 +/* 0B7F04 7F0833D4 E5060178 */ swc1 $f6, 0x178($t0) +/* 0B7F08 7F0833D8 8E080000 */ lw $t0, ($s0) +/* 0B7F0C 7F0833DC C5000178 */ lwc1 $f0, 0x178($t0) +/* 0B7F10 7F0833E0 4600103C */ c.lt.s $f2, $f0 +.L7F0833E4: +/* 0B7F14 7F0833E4 00000000 */ nop +/* 0B7F18 7F0833E8 45020020 */ bc1fl .L7F08346C +/* 0B7F1C 7F0833EC 8D1901C8 */ lw $t9, 0x1c8($t0) +/* 0B7F20 7F0833F0 E5020178 */ swc1 $f2, 0x178($t0) +/* 0B7F24 7F0833F4 1000001C */ b .L7F083468 +/* 0B7F28 7F0833F8 8E080000 */ lw $t0, ($s0) +.L7F0833FC: +/* 0B7F2C 7F0833FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7F30 7F083400 44814000 */ mtc1 $at, $f8 +/* 0B7F34 7F083404 C5000178 */ lwc1 $f0, 0x178($t0) +/* 0B7F38 7F083408 3C018005 */ lui $at, %hi(D_8005513C) +/* 0B7F3C 7F08340C 4600403C */ c.lt.s $f8, $f0 +/* 0B7F40 7F083410 00000000 */ nop +/* 0B7F44 7F083414 4502000A */ bc1fl .L7F083440 +/* 0B7F48 7F083418 3C013F80 */ lui $at, %hi(0x3F800000) # $at, 0x3f80 +/* 0B7F4C 7F08341C C424513C */ lwc1 $f4, %lo(D_8005513C)($at) +/* 0B7F50 7F083420 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B7F54 7F083424 C4328378 */ lwc1 $f18, %lo(global_timer_delta)($at) +/* 0B7F58 7F083428 46122282 */ mul.s $f10, $f4, $f18 +/* 0B7F5C 7F08342C 460A0181 */ sub.s $f6, $f0, $f10 +/* 0B7F60 7F083430 E5060178 */ swc1 $f6, 0x178($t0) +/* 0B7F64 7F083434 8E080000 */ lw $t0, ($s0) +/* 0B7F68 7F083438 C5000178 */ lwc1 $f0, 0x178($t0) +/* 0B7F6C 7F08343C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F083440: +/* 0B7F70 7F083440 44814000 */ mtc1 $at, $f8 +/* 0B7F74 7F083444 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B7F78 7F083448 4608003C */ c.lt.s $f0, $f8 +/* 0B7F7C 7F08344C 00000000 */ nop +/* 0B7F80 7F083450 45020006 */ bc1fl .L7F08346C +/* 0B7F84 7F083454 8D1901C8 */ lw $t9, 0x1c8($t0) +/* 0B7F88 7F083458 44812000 */ mtc1 $at, $f4 +/* 0B7F8C 7F08345C 00000000 */ nop +/* 0B7F90 7F083460 E5040178 */ swc1 $f4, 0x178($t0) +/* 0B7F94 7F083464 8E080000 */ lw $t0, ($s0) +.L7F083468: +/* 0B7F98 7F083468 8D1901C8 */ lw $t9, 0x1c8($t0) +.L7F08346C: +/* 0B7F9C 7F08346C 572001B4 */ bnezl $t9, .L7F083B40 +/* 0B7FA0 7F083470 8FAE01A4 */ lw $t6, 0x1a4($sp) +/* 0B7FA4 7F083474 8D0A0114 */ lw $t2, 0x114($t0) +/* 0B7FA8 7F083478 3C01C080 */ li $at, 0xC0800000 # -4.000000 +/* 0B7FAC 7F08347C 44817000 */ mtc1 $at, $f14 +/* 0B7FB0 7F083480 1140007F */ beqz $t2, .L7F083680 +/* 0B7FB4 7F083484 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0B7FB8 7F083488 8D0B0488 */ lw $t3, 0x488($t0) +/* 0B7FBC 7F08348C 44819000 */ mtc1 $at, $f18 +/* 0B7FC0 7F083490 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 0B7FC4 7F083494 AFAB00C0 */ sw $t3, 0xc0($sp) +/* 0B7FC8 7F083498 E7B200BC */ swc1 $f18, 0xbc($sp) +/* 0B7FCC 7F08349C 8D0400A8 */ lw $a0, 0xa8($t0) +/* 0B7FD0 7F0834A0 E7AE00C4 */ swc1 $f14, 0xc4($sp) +/* 0B7FD4 7F0834A4 27A600A8 */ addiu $a2, $sp, 0xa8 +/* 0B7FD8 7F0834A8 0FC2289D */ jal sub_GAME_7F08A274 +/* 0B7FDC 7F0834AC 27A700A4 */ addiu $a3, $sp, 0xa4 +/* 0B7FE0 7F0834B0 8E080000 */ lw $t0, ($s0) +/* 0B7FE4 7F0834B4 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0B7FE8 7F0834B8 44810000 */ mtc1 $at, $f0 +/* 0B7FEC 7F0834BC C50A0498 */ lwc1 $f10, 0x498($t0) +/* 0B7FF0 7F0834C0 C508048C */ lwc1 $f8, 0x48c($t0) +/* 0B7FF4 7F0834C4 46005182 */ mul.s $f6, $f10, $f0 +/* 0B7FF8 7F0834C8 46083100 */ add.s $f4, $f6, $f8 +/* 0B7FFC 7F0834CC E7A400AC */ swc1 $f4, 0xac($sp) +/* 0B8000 7F0834D0 C5120490 */ lwc1 $f18, 0x490($t0) +/* 0B8004 7F0834D4 E7B200B0 */ swc1 $f18, 0xb0($sp) +/* 0B8008 7F0834D8 C50A04A0 */ lwc1 $f10, 0x4a0($t0) +/* 0B800C 7F0834DC C5080494 */ lwc1 $f8, 0x494($t0) +/* 0B8010 7F0834E0 46005182 */ mul.s $f6, $f10, $f0 +/* 0B8014 7F0834E4 46083100 */ add.s $f4, $f6, $f8 +/* 0B8018 7F0834E8 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 0B801C 7F0834EC E7A400B4 */ swc1 $f4, 0xb4($sp) +/* 0B8020 7F0834F0 8E080000 */ lw $t0, ($s0) +/* 0B8024 7F0834F4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B8028 7F0834F8 44814000 */ mtc1 $at, $f8 +/* 0B802C 7F0834FC 8D05048C */ lw $a1, 0x48c($t0) +/* 0B8030 7F083500 8D060494 */ lw $a2, 0x494($t0) +/* 0B8034 7F083504 C7B200B4 */ lwc1 $f18, 0xb4($sp) +/* 0B8038 7F083508 C7AA00A8 */ lwc1 $f10, 0xa8($sp) +/* 0B803C 7F08350C C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 0B8040 7F083510 240D1000 */ li $t5, 4096 +/* 0B8044 7F083514 AFAD0014 */ sw $t5, 0x14($sp) +/* 0B8048 7F083518 E7B40020 */ swc1 $f20, 0x20($sp) +/* 0B804C 7F08351C 27A400C0 */ addiu $a0, $sp, 0xc0 +/* 0B8050 7F083520 8FA700AC */ lw $a3, 0xac($sp) +/* 0B8054 7F083524 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0B8058 7F083528 E7B20010 */ swc1 $f18, 0x10($sp) +/* 0B805C 7F08352C E7AA0018 */ swc1 $f10, 0x18($sp) +/* 0B8060 7F083530 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0B8064 7F083534 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 0B8068 7F083538 10400009 */ beqz $v0, .L7F083560 +/* 0B806C 7F08353C C7AE00C4 */ lwc1 $f14, 0xc4($sp) +/* 0B8070 7F083540 8FA400C0 */ lw $a0, 0xc0($sp) +/* 0B8074 7F083544 8FA500AC */ lw $a1, 0xac($sp) +/* 0B8078 7F083548 8FA600B4 */ lw $a2, 0xb4($sp) +/* 0B807C 7F08354C 0FC20358 */ jal sub_GAME_7F080D60 +/* 0B8080 7F083550 E7AE00C4 */ swc1 $f14, 0xc4($sp) +/* 0B8084 7F083554 C7AE00C4 */ lwc1 $f14, 0xc4($sp) +/* 0B8088 7F083558 1000001A */ b .L7F0835C4 +/* 0B808C 7F08355C E7A000B0 */ swc1 $f0, 0xb0($sp) +.L7F083560: +/* 0B8090 7F083560 8E080000 */ lw $t0, ($s0) +/* 0B8094 7F083564 27A600AC */ addiu $a2, $sp, 0xac +/* 0B8098 7F083568 E7AE00C4 */ swc1 $f14, 0xc4($sp) +/* 0B809C 7F08356C 2504048C */ addiu $a0, $t0, 0x48c +/* 0B80A0 7F083570 0FC098A6 */ jal sub_GAME_7F026298 +/* 0B80A4 7F083574 25050498 */ addiu $a1, $t0, 0x498 +/* 0B80A8 7F083578 8E080000 */ lw $t0, ($s0) +/* 0B80AC 7F08357C C7A400AC */ lwc1 $f4, 0xac($sp) +/* 0B80B0 7F083580 C7AA00B4 */ lwc1 $f10, 0xb4($sp) +/* 0B80B4 7F083584 C512048C */ lwc1 $f18, 0x48c($t0) +/* 0B80B8 7F083588 C5060494 */ lwc1 $f6, 0x494($t0) +/* 0B80BC 7F08358C 46122001 */ sub.s $f0, $f4, $f18 +/* 0B80C0 7F083590 46065081 */ sub.s $f2, $f10, $f6 +/* 0B80C4 7F083594 46000202 */ mul.s $f8, $f0, $f0 +/* 0B80C8 7F083598 00000000 */ nop +/* 0B80CC 7F08359C 46021102 */ mul.s $f4, $f2, $f2 +/* 0B80D0 7F0835A0 0C007DF8 */ jal sqrtf +/* 0B80D4 7F0835A4 46044300 */ add.s $f12, $f8, $f4 +/* 0B80D8 7F0835A8 E7A000BC */ swc1 $f0, 0xbc($sp) +/* 0B80DC 7F0835AC 8FA400C0 */ lw $a0, 0xc0($sp) +/* 0B80E0 7F0835B0 8FA500AC */ lw $a1, 0xac($sp) +/* 0B80E4 7F0835B4 0FC20358 */ jal sub_GAME_7F080D60 +/* 0B80E8 7F0835B8 8FA600B4 */ lw $a2, 0xb4($sp) +/* 0B80EC 7F0835BC C7AE00C4 */ lwc1 $f14, 0xc4($sp) +/* 0B80F0 7F0835C0 E7A000B0 */ swc1 $f0, 0xb0($sp) +.L7F0835C4: +/* 0B80F4 7F0835C4 C7B200BC */ lwc1 $f18, 0xbc($sp) +/* 0B80F8 7F0835C8 4612A03C */ c.lt.s $f20, $f18 +/* 0B80FC 7F0835CC 00000000 */ nop +/* 0B8100 7F0835D0 4502002C */ bc1fl .L7F083684 +/* 0B8104 7F0835D4 8E080000 */ lw $t0, ($s0) +/* 0B8108 7F0835D8 8E0C0000 */ lw $t4, ($s0) +/* 0B810C 7F0835DC 3C01C396 */ li $at, 0xC3960000 # -300.000000 +/* 0B8110 7F0835E0 44813000 */ mtc1 $at, $f6 +/* 0B8114 7F0835E4 C58A0074 */ lwc1 $f10, 0x74($t4) +/* 0B8118 7F0835E8 3C0143FA */ li $at, 0x43FA0000 # 500.000000 +/* 0B811C 7F0835EC 460A0301 */ sub.s $f12, $f0, $f10 +/* 0B8120 7F0835F0 460C303C */ c.lt.s $f6, $f12 +/* 0B8124 7F0835F4 00000000 */ nop +/* 0B8128 7F0835F8 45020022 */ bc1fl .L7F083684 +/* 0B812C 7F0835FC 8E080000 */ lw $t0, ($s0) +/* 0B8130 7F083600 44814000 */ mtc1 $at, $f8 +/* 0B8134 7F083604 00000000 */ nop +/* 0B8138 7F083608 4608603C */ c.lt.s $f12, $f8 +/* 0B813C 7F08360C 00000000 */ nop +/* 0B8140 7F083610 4502001C */ bc1fl .L7F083684 +/* 0B8144 7F083614 8E080000 */ lw $t0, ($s0) +/* 0B8148 7F083618 0FC16A8C */ jal atan2f +/* 0B814C 7F08361C 46009386 */ mov.s $f14, $f18 +/* 0B8150 7F083620 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B8154 7F083624 44816000 */ mtc1 $at, $f12 +/* 0B8158 7F083628 3C018005 */ lui $at, %hi(D_80055140) +/* 0B815C 7F08362C C42A5140 */ lwc1 $f10, %lo(D_80055140)($at) +/* 0B8160 7F083630 460C0102 */ mul.s $f4, $f0, $f12 +/* 0B8164 7F083634 3C01C080 */ li $at, 0xC0800000 # -4.000000 +/* 0B8168 7F083638 44814000 */ mtc1 $at, $f8 +/* 0B816C 7F08363C 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0B8170 7F083640 44819000 */ mtc1 $at, $f18 +/* 0B8174 7F083644 3C018005 */ lui $at, %hi(D_80055144) +/* 0B8178 7F083648 460A2183 */ div.s $f6, $f4, $f10 +/* 0B817C 7F08364C 46083080 */ add.s $f2, $f6, $f8 +/* 0B8180 7F083650 4602903E */ c.le.s $f18, $f2 +/* 0B8184 7F083654 46001386 */ mov.s $f14, $f2 +/* 0B8188 7F083658 45020003 */ bc1fl .L7F083668 +/* 0B818C 7F08365C 460EA03C */ c.lt.s $f20, $f14 +/* 0B8190 7F083660 460C1381 */ sub.s $f14, $f2, $f12 +/* 0B8194 7F083664 460EA03C */ c.lt.s $f20, $f14 +.L7F083668: +/* 0B8198 7F083668 00000000 */ nop +/* 0B819C 7F08366C 45020005 */ bc1fl .L7F083684 +/* 0B81A0 7F083670 8E080000 */ lw $t0, ($s0) +/* 0B81A4 7F083674 C4245144 */ lwc1 $f4, %lo(D_80055144)($at) +/* 0B81A8 7F083678 46047382 */ mul.s $f14, $f14, $f4 +/* 0B81AC 7F08367C 00000000 */ nop +.L7F083680: +/* 0B81B0 7F083680 8E080000 */ lw $t0, ($s0) +.L7F083684: +/* 0B81B4 7F083684 8FA90120 */ lw $t1, 0x120($sp) +/* 0B81B8 7F083688 3C0E8003 */ lui $t6, %hi(in_tank_flag) +/* 0B81BC 7F08368C 8D180110 */ lw $t8, 0x110($t0) +/* 0B81C0 7F083690 29210028 */ slti $at, $t1, 0x28 +/* 0B81C4 7F083694 13000007 */ beqz $t8, .L7F0836B4 +/* 0B81C8 7F083698 00000000 */ nop +/* 0B81CC 7F08369C 10200005 */ beqz $at, .L7F0836B4 +/* 0B81D0 7F0836A0 2921FFD9 */ slti $at, $t1, -0x27 +/* 0B81D4 7F0836A4 14200003 */ bnez $at, .L7F0836B4 +/* 0B81D8 7F0836A8 00000000 */ nop +/* 0B81DC 7F0836AC AD000110 */ sw $zero, 0x110($t0) +/* 0B81E0 7F0836B0 8E080000 */ lw $t0, ($s0) +.L7F0836B4: +/* 0B81E4 7F0836B4 8DCE6448 */ lw $t6, %lo(in_tank_flag)($t6) +/* 0B81E8 7F0836B8 C7AA0184 */ lwc1 $f10, 0x184($sp) +/* 0B81EC 7F0836BC 55C0005F */ bnezl $t6, .L7F08383C +/* 0B81F0 7F0836C0 8D180104 */ lw $t8, 0x104($t0) +/* 0B81F4 7F0836C4 460AA03C */ c.lt.s $f20, $f10 +/* 0B81F8 7F0836C8 C7A60180 */ lwc1 $f6, 0x180($sp) +/* 0B81FC 7F0836CC 45030006 */ bc1tl .L7F0836E8 +/* 0B8200 7F0836D0 AD000104 */ sw $zero, 0x104($t0) +/* 0B8204 7F0836D4 4606A03C */ c.lt.s $f20, $f6 +/* 0B8208 7F0836D8 8FAB0140 */ lw $t3, 0x140($sp) +/* 0B820C 7F0836DC 45000009 */ bc1f .L7F083704 +/* 0B8210 7F0836E0 00000000 */ nop +/* 0B8214 7F0836E4 AD000104 */ sw $zero, 0x104($t0) +.L7F0836E8: +/* 0B8218 7F0836E8 8E190000 */ lw $t9, ($s0) +/* 0B821C 7F0836EC 240F0001 */ li $t7, 1 +/* 0B8220 7F0836F0 AF2F010C */ sw $t7, 0x10c($t9) +/* 0B8224 7F0836F4 8E0A0000 */ lw $t2, ($s0) +/* 0B8228 7F0836F8 AD400120 */ sw $zero, 0x120($t2) +/* 0B822C 7F0836FC 1000004E */ b .L7F083838 +/* 0B8230 7F083700 8E080000 */ lw $t0, ($s0) +.L7F083704: +/* 0B8234 7F083704 51600005 */ beql $t3, $zero, .L7F08371C +/* 0B8238 7F083708 8D0D0118 */ lw $t5, 0x118($t0) +/* 0B823C 7F08370C AD000120 */ sw $zero, 0x120($t0) +/* 0B8240 7F083710 10000047 */ b .L7F083830 +/* 0B8244 7F083714 8E080000 */ lw $t0, ($s0) +/* 0B8248 7F083718 8D0D0118 */ lw $t5, 0x118($t0) +.L7F08371C: +/* 0B824C 7F08371C 8FAC01AC */ lw $t4, 0x1ac($sp) +/* 0B8250 7F083720 51A00025 */ beql $t5, $zero, .L7F0837B8 +/* 0B8254 7F083724 8D0A011C */ lw $t2, 0x11c($t0) +/* 0B8258 7F083728 11800008 */ beqz $t4, .L7F08374C +/* 0B825C 7F08372C 2921003D */ slti $at, $t1, 0x3d +/* 0B8260 7F083730 10200004 */ beqz $at, .L7F083744 +/* 0B8264 7F083734 24180001 */ li $t8, 1 +/* 0B8268 7F083738 2921FFC4 */ slti $at, $t1, -0x3c +/* 0B826C 7F08373C 50200004 */ beql $at, $zero, .L7F083750 +/* 0B8270 7F083740 8D0E0120 */ lw $t6, 0x120($t0) +.L7F083744: +/* 0B8274 7F083744 AD180120 */ sw $t8, 0x120($t0) +/* 0B8278 7F083748 8E080000 */ lw $t0, ($s0) +.L7F08374C: +/* 0B827C 7F08374C 8D0E0120 */ lw $t6, 0x120($t0) +.L7F083750: +/* 0B8280 7F083750 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0B8284 7F083754 51C00037 */ beql $t6, $zero, .L7F083834 +/* 0B8288 7F083758 AD00010C */ sw $zero, 0x10c($t0) +/* 0B828C 7F08375C 44814000 */ mtc1 $at, $f8 +/* 0B8290 7F083760 C5000158 */ lwc1 $f0, 0x158($t0) +/* 0B8294 7F083764 3C01C120 */ li $at, 0xC1200000 # -10.000000 +/* 0B8298 7F083768 46087480 */ add.s $f18, $f14, $f8 +/* 0B829C 7F08376C 4600903C */ c.lt.s $f18, $f0 +/* 0B82A0 7F083770 00000000 */ nop +/* 0B82A4 7F083774 45030009 */ bc1tl .L7F08379C +/* 0B82A8 7F083778 8D0F0110 */ lw $t7, 0x110($t0) +/* 0B82AC 7F08377C 44812000 */ mtc1 $at, $f4 +/* 0B82B0 7F083780 00000000 */ nop +/* 0B82B4 7F083784 46047280 */ add.s $f10, $f14, $f4 +/* 0B82B8 7F083788 460A003C */ c.lt.s $f0, $f10 +/* 0B82BC 7F08378C 00000000 */ nop +/* 0B82C0 7F083790 45020028 */ bc1fl .L7F083834 +/* 0B82C4 7F083794 AD00010C */ sw $zero, 0x10c($t0) +/* 0B82C8 7F083798 8D0F0110 */ lw $t7, 0x110($t0) +.L7F08379C: +/* 0B82CC 7F08379C 24190001 */ li $t9, 1 +/* 0B82D0 7F0837A0 55E00024 */ bnezl $t7, .L7F083834 +/* 0B82D4 7F0837A4 AD00010C */ sw $zero, 0x10c($t0) +/* 0B82D8 7F0837A8 AD190104 */ sw $t9, 0x104($t0) +/* 0B82DC 7F0837AC 10000020 */ b .L7F083830 +/* 0B82E0 7F0837B0 8E080000 */ lw $t0, ($s0) +/* 0B82E4 7F0837B4 8D0A011C */ lw $t2, 0x11c($t0) +.L7F0837B8: +/* 0B82E8 7F0837B8 8FAB01AC */ lw $t3, 0x1ac($sp) +/* 0B82EC 7F0837BC 5140001D */ beql $t2, $zero, .L7F083834 +/* 0B82F0 7F0837C0 AD00010C */ sw $zero, 0x10c($t0) +/* 0B82F4 7F0837C4 1160001A */ beqz $t3, .L7F083830 +/* 0B82F8 7F0837C8 2921003D */ slti $at, $t1, 0x3d +/* 0B82FC 7F0837CC 10200002 */ beqz $at, .L7F0837D8 +/* 0B8300 7F0837D0 2921FFC4 */ slti $at, $t1, -0x3c +/* 0B8304 7F0837D4 10200016 */ beqz $at, .L7F083830 +.L7F0837D8: +/* 0B8308 7F0837D8 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0B830C 7F0837DC 44813000 */ mtc1 $at, $f6 +/* 0B8310 7F0837E0 C5000158 */ lwc1 $f0, 0x158($t0) +/* 0B8314 7F0837E4 3C01C120 */ li $at, 0xC1200000 # -10.000000 +/* 0B8318 7F0837E8 46067200 */ add.s $f8, $f14, $f6 +/* 0B831C 7F0837EC 4600403C */ c.lt.s $f8, $f0 +/* 0B8320 7F0837F0 00000000 */ nop +/* 0B8324 7F0837F4 45030009 */ bc1tl .L7F08381C +/* 0B8328 7F0837F8 8D0D0110 */ lw $t5, 0x110($t0) +/* 0B832C 7F0837FC 44819000 */ mtc1 $at, $f18 +/* 0B8330 7F083800 00000000 */ nop +/* 0B8334 7F083804 46127100 */ add.s $f4, $f14, $f18 +/* 0B8338 7F083808 4604003C */ c.lt.s $f0, $f4 +/* 0B833C 7F08380C 00000000 */ nop +/* 0B8340 7F083810 45020008 */ bc1fl .L7F083834 +/* 0B8344 7F083814 AD00010C */ sw $zero, 0x10c($t0) +/* 0B8348 7F083818 8D0D0110 */ lw $t5, 0x110($t0) +.L7F08381C: +/* 0B834C 7F08381C 240C0001 */ li $t4, 1 +/* 0B8350 7F083820 55A00004 */ bnezl $t5, .L7F083834 +/* 0B8354 7F083824 AD00010C */ sw $zero, 0x10c($t0) +/* 0B8358 7F083828 AD0C0104 */ sw $t4, 0x104($t0) +/* 0B835C 7F08382C 8E080000 */ lw $t0, ($s0) +.L7F083830: +/* 0B8360 7F083830 AD00010C */ sw $zero, 0x10c($t0) +.L7F083834: +/* 0B8364 7F083834 8E080000 */ lw $t0, ($s0) +.L7F083838: +/* 0B8368 7F083838 8D180104 */ lw $t8, 0x104($t0) +.L7F08383C: +/* 0B836C 7F08383C 3C0E8003 */ lui $t6, %hi(in_tank_flag) +/* 0B8370 7F083840 8FAA01A0 */ lw $t2, 0x1a0($sp) +/* 0B8374 7F083844 1300004A */ beqz $t8, .L7F083970 +/* 0B8378 7F083848 00000000 */ nop +/* 0B837C 7F08384C 8DCE6448 */ lw $t6, %lo(in_tank_flag)($t6) +/* 0B8380 7F083850 55C000BB */ bnezl $t6, .L7F083B40 +/* 0B8384 7F083854 8FAE01A4 */ lw $t6, 0x1a4($sp) +/* 0B8388 7F083858 C5020160 */ lwc1 $f2, 0x160($t0) +/* 0B838C 7F08385C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B8390 7F083860 44813000 */ mtc1 $at, $f6 +/* 0B8394 7F083864 46021282 */ mul.s $f10, $f2, $f2 +/* 0B8398 7F083868 3C018005 */ lui $at, %hi(D_80055148) +/* 0B839C 7F08386C C4325148 */ lwc1 $f18, %lo(D_80055148)($at) +/* 0B83A0 7F083870 C5000158 */ lwc1 $f0, 0x158($t0) +/* 0B83A4 7F083874 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B83A8 7F083878 46065202 */ mul.s $f8, $f10, $f6 +/* 0B83AC 7F08387C 46124303 */ div.s $f12, $f8, $f18 +/* 0B83B0 7F083880 460C7100 */ add.s $f4, $f14, $f12 +/* 0B83B4 7F083884 4600203C */ c.lt.s $f4, $f0 +/* 0B83B8 7F083888 00000000 */ nop +/* 0B83BC 7F08388C 45020007 */ bc1fl .L7F0838AC +/* 0B83C0 7F083890 460C7281 */ sub.s $f10, $f14, $f12 +/* 0B83C4 7F083894 44816000 */ mtc1 $at, $f12 +/* 0B83C8 7F083898 0FC20004 */ jal sub_GAME_7F080010 +/* 0B83CC 7F08389C E7AE00C4 */ swc1 $f14, 0xc4($sp) +/* 0B83D0 7F0838A0 10000010 */ b .L7F0838E4 +/* 0B83D4 7F0838A4 C7AE00C4 */ lwc1 $f14, 0xc4($sp) +/* 0B83D8 7F0838A8 460C7281 */ sub.s $f10, $f14, $f12 +.L7F0838AC: +/* 0B83DC 7F0838AC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B83E0 7F0838B0 460A003C */ c.lt.s $f0, $f10 +/* 0B83E4 7F0838B4 00000000 */ nop +/* 0B83E8 7F0838B8 45020007 */ bc1fl .L7F0838D8 +/* 0B83EC 7F0838BC 4600A306 */ mov.s $f12, $f20 +/* 0B83F0 7F0838C0 44816000 */ mtc1 $at, $f12 +/* 0B83F4 7F0838C4 0FC20004 */ jal sub_GAME_7F080010 +/* 0B83F8 7F0838C8 E7AE00C4 */ swc1 $f14, 0xc4($sp) +/* 0B83FC 7F0838CC 10000005 */ b .L7F0838E4 +/* 0B8400 7F0838D0 C7AE00C4 */ lwc1 $f14, 0xc4($sp) +/* 0B8404 7F0838D4 4600A306 */ mov.s $f12, $f20 +.L7F0838D8: +/* 0B8408 7F0838D8 0FC20004 */ jal sub_GAME_7F080010 +/* 0B840C 7F0838DC E7AE00C4 */ swc1 $f14, 0xc4($sp) +/* 0B8410 7F0838E0 C7AE00C4 */ lwc1 $f14, 0xc4($sp) +.L7F0838E4: +/* 0B8414 7F0838E4 8E080000 */ lw $t0, ($s0) +/* 0B8418 7F0838E8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B841C 7F0838EC C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B8420 7F0838F0 C5060160 */ lwc1 $f6, 0x160($t0) +/* 0B8424 7F0838F4 C5000158 */ lwc1 $f0, 0x158($t0) +/* 0B8428 7F0838F8 46083082 */ mul.s $f2, $f6, $f8 +/* 0B842C 7F0838FC 4600703C */ c.lt.s $f14, $f0 +/* 0B8430 7F083900 46021480 */ add.s $f18, $f2, $f2 +/* 0B8434 7F083904 45000007 */ bc1f .L7F083924 +/* 0B8438 7F083908 46120300 */ add.s $f12, $f0, $f18 +/* 0B843C 7F08390C 460C703C */ c.lt.s $f14, $f12 +/* 0B8440 7F083910 00000000 */ nop +/* 0B8444 7F083914 45020004 */ bc1fl .L7F083928 +/* 0B8448 7F083918 460E003C */ c.lt.s $f0, $f14 +/* 0B844C 7F08391C 10000087 */ b .L7F083B3C +/* 0B8450 7F083920 E50C0158 */ swc1 $f12, 0x158($t0) +.L7F083924: +/* 0B8454 7F083924 460E003C */ c.lt.s $f0, $f14 +.L7F083928: +/* 0B8458 7F083928 00000000 */ nop +/* 0B845C 7F08392C 45020008 */ bc1fl .L7F083950 +/* 0B8460 7F083930 E50E0158 */ swc1 $f14, 0x158($t0) +/* 0B8464 7F083934 460E603C */ c.lt.s $f12, $f14 +/* 0B8468 7F083938 00000000 */ nop +/* 0B846C 7F08393C 45020004 */ bc1fl .L7F083950 +/* 0B8470 7F083940 E50E0158 */ swc1 $f14, 0x158($t0) +/* 0B8474 7F083944 1000007D */ b .L7F083B3C +/* 0B8478 7F083948 E50C0158 */ swc1 $f12, 0x158($t0) +/* 0B847C 7F08394C E50E0158 */ swc1 $f14, 0x158($t0) +.L7F083950: +/* 0B8480 7F083950 8E0F0000 */ lw $t7, ($s0) +/* 0B8484 7F083954 E5F40160 */ swc1 $f20, 0x160($t7) +/* 0B8488 7F083958 8E080000 */ lw $t0, ($s0) +/* 0B848C 7F08395C 8D19010C */ lw $t9, 0x10c($t0) +/* 0B8490 7F083960 57200077 */ bnezl $t9, .L7F083B40 +/* 0B8494 7F083964 8FAE01A4 */ lw $t6, 0x1a4($sp) +/* 0B8498 7F083968 10000074 */ b .L7F083B3C +/* 0B849C 7F08396C AD000104 */ sw $zero, 0x104($t0) +.L7F083970: +/* 0B84A0 7F083970 1140002E */ beqz $t2, .L7F083A2C +/* 0B84A4 7F083974 C7B20184 */ lwc1 $f18, 0x184($sp) +/* 0B84A8 7F083978 0C001177 */ jal video_related_23 +/* 0B84AC 7F08397C 00000000 */ nop +/* 0B84B0 7F083980 8FAB0128 */ lw $t3, 0x128($sp) +/* 0B84B4 7F083984 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B84B8 7F083988 44812000 */ mtc1 $at, $f4 +/* 0B84BC 7F08398C 448B5000 */ mtc1 $t3, $f10 +/* 0B84C0 7F083990 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 0B84C4 7F083994 44814000 */ mtc1 $at, $f8 +/* 0B84C8 7F083998 468051A0 */ cvt.s.w $f6, $f10 +/* 0B84CC 7F08399C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B84D0 7F0839A0 44819000 */ mtc1 $at, $f18 +/* 0B84D4 7F0839A4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B84D8 7F0839A8 46040383 */ div.s $f14, $f0, $f4 +/* 0B84DC 7F0839AC 46083303 */ div.s $f12, $f6, $f8 +/* 0B84E0 7F0839B0 460C903C */ c.lt.s $f18, $f12 +/* 0B84E4 7F0839B4 46006086 */ mov.s $f2, $f12 +/* 0B84E8 7F0839B8 45020006 */ bc1fl .L7F0839D4 +/* 0B84EC 7F0839BC 44812000 */ mtc1 $at, $f4 +/* 0B84F0 7F0839C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B84F4 7F0839C4 44811000 */ mtc1 $at, $f2 +/* 0B84F8 7F0839C8 1000000A */ b .L7F0839F4 +/* 0B84FC 7F0839CC 4602A03E */ c.le.s $f20, $f2 +/* 0B8500 7F0839D0 44812000 */ mtc1 $at, $f4 +.L7F0839D4: +/* 0B8504 7F0839D4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B8508 7F0839D8 4604603C */ c.lt.s $f12, $f4 +/* 0B850C 7F0839DC 00000000 */ nop +/* 0B8510 7F0839E0 45020004 */ bc1fl .L7F0839F4 +/* 0B8514 7F0839E4 4602A03E */ c.le.s $f20, $f2 +/* 0B8518 7F0839E8 44811000 */ mtc1 $at, $f2 +/* 0B851C 7F0839EC 00000000 */ nop +/* 0B8520 7F0839F0 4602A03E */ c.le.s $f20, $f2 +.L7F0839F4: +/* 0B8524 7F0839F4 00000000 */ nop +/* 0B8528 7F0839F8 45020005 */ bc1fl .L7F083A10 +/* 0B852C 7F0839FC 46001287 */ neg.s $f10, $f2 +/* 0B8530 7F083A00 46021082 */ mul.s $f2, $f2, $f2 +/* 0B8534 7F083A04 10000005 */ b .L7F083A1C +/* 0B8538 7F083A08 46001187 */ neg.s $f6, $f2 +/* 0B853C 7F083A0C 46001287 */ neg.s $f10, $f2 +.L7F083A10: +/* 0B8540 7F083A10 460A1082 */ mul.s $f2, $f2, $f10 +/* 0B8544 7F083A14 00000000 */ nop +/* 0B8548 7F083A18 46001187 */ neg.s $f6, $f2 +.L7F083A1C: +/* 0B854C 7F083A1C 8E0D0000 */ lw $t5, ($s0) +/* 0B8550 7F083A20 460E3202 */ mul.s $f8, $f6, $f14 +/* 0B8554 7F083A24 10000027 */ b .L7F083AC4 +/* 0B8558 7F083A28 E5A80160 */ swc1 $f8, 0x160($t5) +.L7F083A2C: +/* 0B855C 7F083A2C 4612A03C */ c.lt.s $f20, $f18 +/* 0B8560 7F083A30 C7A40180 */ lwc1 $f4, 0x180($sp) +/* 0B8564 7F083A34 45020010 */ bc1fl .L7F083A78 +/* 0B8568 7F083A38 4604A03C */ c.lt.s $f20, $f4 +/* 0B856C 7F083A3C 0FC20004 */ jal sub_GAME_7F080010 +/* 0B8570 7F083A40 46009306 */ mov.s $f12, $f18 +/* 0B8574 7F083A44 8FAC01AC */ lw $t4, 0x1ac($sp) +/* 0B8578 7F083A48 8FB80120 */ lw $t8, 0x120($sp) +/* 0B857C 7F083A4C 1180001D */ beqz $t4, .L7F083AC4 +/* 0B8580 7F083A50 2B01003D */ slti $at, $t8, 0x3d +/* 0B8584 7F083A54 10200003 */ beqz $at, .L7F083A64 +/* 0B8588 7F083A58 2B01003C */ slti $at, $t8, 0x3c +/* 0B858C 7F083A5C 5020001A */ beql $at, $zero, .L7F083AC8 +/* 0B8590 7F083A60 8E080000 */ lw $t0, ($s0) +.L7F083A64: +/* 0B8594 7F083A64 8E0F0000 */ lw $t7, ($s0) +/* 0B8598 7F083A68 240E0001 */ li $t6, 1 +/* 0B859C 7F083A6C 10000015 */ b .L7F083AC4 +/* 0B85A0 7F083A70 ADEE0110 */ sw $t6, 0x110($t7) +/* 0B85A4 7F083A74 4604A03C */ c.lt.s $f20, $f4 +.L7F083A78: +/* 0B85A8 7F083A78 00000000 */ nop +/* 0B85AC 7F083A7C 4500000F */ bc1f .L7F083ABC +/* 0B85B0 7F083A80 00000000 */ nop +/* 0B85B4 7F083A84 0FC20004 */ jal sub_GAME_7F080010 +/* 0B85B8 7F083A88 46002307 */ neg.s $f12, $f4 +/* 0B85BC 7F083A8C 8FB901AC */ lw $t9, 0x1ac($sp) +/* 0B85C0 7F083A90 8FAA0120 */ lw $t2, 0x120($sp) +/* 0B85C4 7F083A94 1320000B */ beqz $t9, .L7F083AC4 +/* 0B85C8 7F083A98 2941003D */ slti $at, $t2, 0x3d +/* 0B85CC 7F083A9C 10200003 */ beqz $at, .L7F083AAC +/* 0B85D0 7F083AA0 2941003C */ slti $at, $t2, 0x3c +/* 0B85D4 7F083AA4 50200008 */ beql $at, $zero, .L7F083AC8 +/* 0B85D8 7F083AA8 8E080000 */ lw $t0, ($s0) +.L7F083AAC: +/* 0B85DC 7F083AAC 8E0D0000 */ lw $t5, ($s0) +/* 0B85E0 7F083AB0 240B0001 */ li $t3, 1 +/* 0B85E4 7F083AB4 10000003 */ b .L7F083AC4 +/* 0B85E8 7F083AB8 ADAB0110 */ sw $t3, 0x110($t5) +.L7F083ABC: +/* 0B85EC 7F083ABC 0FC20004 */ jal sub_GAME_7F080010 +/* 0B85F0 7F083AC0 4600A306 */ mov.s $f12, $f20 +.L7F083AC4: +/* 0B85F4 7F083AC4 8E080000 */ lw $t0, ($s0) +.L7F083AC8: +/* 0B85F8 7F083AC8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B85FC 7F083ACC C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B8600 7F083AD0 C50A0160 */ lwc1 $f10, 0x160($t0) +/* 0B8604 7F083AD4 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B8608 7F083AD8 44819000 */ mtc1 $at, $f18 +/* 0B860C 7F083ADC 46065202 */ mul.s $f8, $f10, $f6 +/* 0B8610 7F083AE0 C50A0158 */ lwc1 $f10, 0x158($t0) +/* 0B8614 7F083AE4 3C0C8003 */ lui $t4, %hi(in_tank_flag) +/* 0B8618 7F083AE8 24010001 */ li $at, 1 +/* 0B861C 7F083AEC 3C188008 */ lui $t8, %hi(dword_CODE_bss_800799B8) +/* 0B8620 7F083AF0 46124102 */ mul.s $f4, $f8, $f18 +/* 0B8624 7F083AF4 46045180 */ add.s $f6, $f10, $f4 +/* 0B8628 7F083AF8 E5060158 */ swc1 $f6, 0x158($t0) +/* 0B862C 7F083AFC 8D8C6448 */ lw $t4, %lo(in_tank_flag)($t4) +/* 0B8630 7F083B00 5581000F */ bnel $t4, $at, .L7F083B40 +/* 0B8634 7F083B04 8FAE01A4 */ lw $t6, 0x1a4($sp) +/* 0B8638 7F083B08 8F1899B8 */ lw $t8, %lo(dword_CODE_bss_800799B8)($t8) +/* 0B863C 7F083B0C 24010002 */ li $at, 2 +/* 0B8640 7F083B10 5701000B */ bnel $t8, $at, .L7F083B40 +/* 0B8644 7F083B14 8FAE01A4 */ lw $t6, 0x1a4($sp) +/* 0B8648 7F083B18 8E080000 */ lw $t0, ($s0) +/* 0B864C 7F083B1C 3C01C1A0 */ li $at, 0xC1A00000 # -20.000000 +/* 0B8650 7F083B20 44810000 */ mtc1 $at, $f0 +/* 0B8654 7F083B24 C5080158 */ lwc1 $f8, 0x158($t0) +/* 0B8658 7F083B28 4600403C */ c.lt.s $f8, $f0 +/* 0B865C 7F083B2C 00000000 */ nop +/* 0B8660 7F083B30 45020003 */ bc1fl .L7F083B40 +/* 0B8664 7F083B34 8FAE01A4 */ lw $t6, 0x1a4($sp) +/* 0B8668 7F083B38 E5000158 */ swc1 $f0, 0x158($t0) +.L7F083B3C: +/* 0B866C 7F083B3C 8FAE01A4 */ lw $t6, 0x1a4($sp) +.L7F083B40: +/* 0B8670 7F083B40 C7A6017C */ lwc1 $f6, 0x17c($sp) +/* 0B8674 7F083B44 51C0002A */ beql $t6, $zero, .L7F083BF0 +/* 0B8678 7F083B48 4606A03C */ c.lt.s $f20, $f6 +/* 0B867C 7F083B4C 0C001177 */ jal video_related_23 +/* 0B8680 7F083B50 00000000 */ nop +/* 0B8684 7F083B54 8FAF012C */ lw $t7, 0x12c($sp) +/* 0B8688 7F083B58 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B868C 7F083B5C 44817000 */ mtc1 $at, $f14 +/* 0B8690 7F083B60 448F9000 */ mtc1 $t7, $f18 +/* 0B8694 7F083B64 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 0B8698 7F083B68 44812000 */ mtc1 $at, $f4 +/* 0B869C 7F083B6C 468092A0 */ cvt.s.w $f10, $f18 +/* 0B86A0 7F083B70 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B86A4 7F083B74 46045303 */ div.s $f12, $f10, $f4 +/* 0B86A8 7F083B78 460C703C */ c.lt.s $f14, $f12 +/* 0B86AC 7F083B7C 46006086 */ mov.s $f2, $f12 +/* 0B86B0 7F083B80 45020004 */ bc1fl .L7F083B94 +/* 0B86B4 7F083B84 44813000 */ mtc1 $at, $f6 +/* 0B86B8 7F083B88 10000009 */ b .L7F083BB0 +/* 0B86BC 7F083B8C 46007086 */ mov.s $f2, $f14 +/* 0B86C0 7F083B90 44813000 */ mtc1 $at, $f6 +.L7F083B94: +/* 0B86C4 7F083B94 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B86C8 7F083B98 4606603C */ c.lt.s $f12, $f6 +/* 0B86CC 7F083B9C 00000000 */ nop +/* 0B86D0 7F083BA0 45020004 */ bc1fl .L7F083BB4 +/* 0B86D4 7F083BA4 4602A03E */ c.le.s $f20, $f2 +/* 0B86D8 7F083BA8 44811000 */ mtc1 $at, $f2 +/* 0B86DC 7F083BAC 00000000 */ nop +.L7F083BB0: +/* 0B86E0 7F083BB0 4602A03E */ c.le.s $f20, $f2 +.L7F083BB4: +/* 0B86E4 7F083BB4 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B86E8 7F083BB8 44819000 */ mtc1 $at, $f18 +/* 0B86EC 7F083BBC 45000004 */ bc1f .L7F083BD0 +/* 0B86F0 7F083BC0 46120283 */ div.s $f10, $f0, $f18 +/* 0B86F4 7F083BC4 46021082 */ mul.s $f2, $f2, $f2 +/* 0B86F8 7F083BC8 10000004 */ b .L7F083BDC +/* 0B86FC 7F083BCC 00000000 */ nop +.L7F083BD0: +/* 0B8700 7F083BD0 46001207 */ neg.s $f8, $f2 +/* 0B8704 7F083BD4 46081082 */ mul.s $f2, $f2, $f8 +/* 0B8708 7F083BD8 00000000 */ nop +.L7F083BDC: +/* 0B870C 7F083BDC 460A1102 */ mul.s $f4, $f2, $f10 +/* 0B8710 7F083BE0 8E190000 */ lw $t9, ($s0) +/* 0B8714 7F083BE4 1000001A */ b .L7F083C50 +/* 0B8718 7F083BE8 E724014C */ swc1 $f4, 0x14c($t9) +/* 0B871C 7F083BEC 4606A03C */ c.lt.s $f20, $f6 +.L7F083BF0: +/* 0B8720 7F083BF0 C7A80178 */ lwc1 $f8, 0x178($sp) +/* 0B8724 7F083BF4 45020008 */ bc1fl .L7F083C18 +/* 0B8728 7F083BF8 4608A03C */ c.lt.s $f20, $f8 +/* 0B872C 7F083BFC 0FC200B1 */ jal sub_GAME_7F0802C4 +/* 0B8730 7F083C00 46003306 */ mov.s $f12, $f6 +/* 0B8734 7F083C04 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B8738 7F083C08 44817000 */ mtc1 $at, $f14 +/* 0B873C 7F083C0C 10000010 */ b .L7F083C50 +/* 0B8740 7F083C10 00000000 */ nop +/* 0B8744 7F083C14 4608A03C */ c.lt.s $f20, $f8 +.L7F083C18: +/* 0B8748 7F083C18 00000000 */ nop +/* 0B874C 7F083C1C 45000007 */ bc1f .L7F083C3C +/* 0B8750 7F083C20 00000000 */ nop +/* 0B8754 7F083C24 0FC200B1 */ jal sub_GAME_7F0802C4 +/* 0B8758 7F083C28 46004307 */ neg.s $f12, $f8 +/* 0B875C 7F083C2C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B8760 7F083C30 44817000 */ mtc1 $at, $f14 +/* 0B8764 7F083C34 10000006 */ b .L7F083C50 +/* 0B8768 7F083C38 00000000 */ nop +.L7F083C3C: +/* 0B876C 7F083C3C 0FC200B1 */ jal sub_GAME_7F0802C4 +/* 0B8770 7F083C40 4600A306 */ mov.s $f12, $f20 +/* 0B8774 7F083C44 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B8778 7F083C48 44817000 */ mtc1 $at, $f14 +/* 0B877C 7F083C4C 00000000 */ nop +.L7F083C50: +/* 0B8780 7F083C50 3C0A8003 */ lui $t2, %hi(in_tank_flag) +/* 0B8784 7F083C54 8D4A6448 */ lw $t2, %lo(in_tank_flag)($t2) +/* 0B8788 7F083C58 24010001 */ li $at, 1 +/* 0B878C 7F083C5C 3C0B8008 */ lui $t3, %hi(dword_CODE_bss_800799B8) +/* 0B8790 7F083C60 5541004B */ bnel $t2, $at, .L7F083D90 +/* 0B8794 7F083C64 8FAE014C */ lw $t6, 0x14c($sp) +/* 0B8798 7F083C68 8D6B99B8 */ lw $t3, %lo(dword_CODE_bss_800799B8)($t3) +/* 0B879C 7F083C6C 24010002 */ li $at, 2 +/* 0B87A0 7F083C70 8FAD01A4 */ lw $t5, 0x1a4($sp) +/* 0B87A4 7F083C74 55610044 */ bnel $t3, $at, .L7F083D88 +/* 0B87A8 7F083C78 8E180000 */ lw $t8, ($s0) +/* 0B87AC 7F083C7C 11A00008 */ beqz $t5, .L7F083CA0 +/* 0B87B0 7F083C80 4600A086 */ mov.s $f2, $f20 +/* 0B87B4 7F083C84 8E0C0000 */ lw $t4, ($s0) +/* 0B87B8 7F083C88 3C018005 */ lui $at, %hi(D_8005514C) +/* 0B87BC 7F083C8C C42A514C */ lwc1 $f10, %lo(D_8005514C)($at) +/* 0B87C0 7F083C90 C592014C */ lwc1 $f18, 0x14c($t4) +/* 0B87C4 7F083C94 460A9082 */ mul.s $f2, $f18, $f10 +/* 0B87C8 7F083C98 10000019 */ b .L7F083D00 +/* 0B87CC 7F083C9C 00000000 */ nop +.L7F083CA0: +/* 0B87D0 7F083CA0 C7A4017C */ lwc1 $f4, 0x17c($sp) +/* 0B87D4 7F083CA4 C7A80178 */ lwc1 $f8, 0x178($sp) +/* 0B87D8 7F083CA8 4604A03C */ c.lt.s $f20, $f4 +/* 0B87DC 7F083CAC 00000000 */ nop +/* 0B87E0 7F083CB0 45020009 */ bc1fl .L7F083CD8 +/* 0B87E4 7F083CB4 4608A03C */ c.lt.s $f20, $f8 +/* 0B87E8 7F083CB8 0FC2008A */ jal sub_GAME_7F080228 +/* 0B87EC 7F083CBC 46007306 */ mov.s $f12, $f14 +/* 0B87F0 7F083CC0 3C018005 */ lui $at, %hi(D_80055150) +/* 0B87F4 7F083CC4 C4265150 */ lwc1 $f6, %lo(D_80055150)($at) +/* 0B87F8 7F083CC8 46060082 */ mul.s $f2, $f0, $f6 +/* 0B87FC 7F083CCC 1000000C */ b .L7F083D00 +/* 0B8800 7F083CD0 00000000 */ nop +/* 0B8804 7F083CD4 4608A03C */ c.lt.s $f20, $f8 +.L7F083CD8: +/* 0B8808 7F083CD8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B880C 7F083CDC 45000008 */ bc1f .L7F083D00 +/* 0B8810 7F083CE0 00000000 */ nop +/* 0B8814 7F083CE4 44816000 */ mtc1 $at, $f12 +/* 0B8818 7F083CE8 0FC2008A */ jal sub_GAME_7F080228 +/* 0B881C 7F083CEC 00000000 */ nop +/* 0B8820 7F083CF0 3C018005 */ lui $at, %hi(D_80055154) +/* 0B8824 7F083CF4 C4325154 */ lwc1 $f18, %lo(D_80055154)($at) +/* 0B8828 7F083CF8 46120082 */ mul.s $f2, $f0, $f18 +/* 0B882C 7F083CFC 00000000 */ nop +.L7F083D00: +/* 0B8830 7F083D00 3C038005 */ lui $v1, %hi(clock_timer) +/* 0B8834 7F083D04 8C638374 */ lw $v1, %lo(clock_timer)($v1) +/* 0B8838 7F083D08 00001025 */ move $v0, $zero +/* 0B883C 7F083D0C 8E080000 */ lw $t0, ($s0) +/* 0B8840 7F083D10 18600014 */ blez $v1, .L7F083D64 +/* 0B8844 7F083D14 3C018005 */ lui $at, %hi(D_80055158) +/* 0B8848 7F083D18 3C048003 */ lui $a0, %hi(D_80036460) +/* 0B884C 7F083D1C 24846460 */ addiu $a0, %lo(D_80036460) # addiu $a0, $a0, 0x6460 +/* 0B8850 7F083D20 C4205158 */ lwc1 $f0, %lo(D_80055158)($at) +/* 0B8854 7F083D24 C4920000 */ lwc1 $f18, ($a0) +/* 0B8858 7F083D28 24420001 */ addiu $v0, $v0, 1 +/* 0B885C 7F083D2C 0043082A */ slt $at, $v0, $v1 +/* 0B8860 7F083D30 46120502 */ mul.s $f20, $f0, $f18 +/* 0B8864 7F083D34 5020000A */ beql $at, $zero, .L7F083D60 +/* 0B8868 7F083D38 4602A480 */ add.s $f18, $f20, $f2 +/* 0B886C 7F083D3C 4602A480 */ add.s $f18, $f20, $f2 +.L7F083D40: +/* 0B8870 7F083D40 24420001 */ addiu $v0, $v0, 1 +/* 0B8874 7F083D44 0043082A */ slt $at, $v0, $v1 +/* 0B8878 7F083D48 E4920000 */ swc1 $f18, ($a0) +/* 0B887C 7F083D4C C4920000 */ lwc1 $f18, ($a0) +/* 0B8880 7F083D50 46120502 */ mul.s $f20, $f0, $f18 +/* 0B8884 7F083D54 5420FFFA */ bnezl $at, .L7F083D40 +/* 0B8888 7F083D58 4602A480 */ add.s $f18, $f20, $f2 +/* 0B888C 7F083D5C 4602A480 */ add.s $f18, $f20, $f2 +.L7F083D60: +/* 0B8890 7F083D60 E4920000 */ swc1 $f18, ($a0) +.L7F083D64: +/* 0B8894 7F083D64 3C048003 */ lui $a0, %hi(D_80036460) +/* 0B8898 7F083D68 24846460 */ addiu $a0, %lo(D_80036460) # addiu $a0, $a0, 0x6460 +/* 0B889C 7F083D6C 3C018005 */ lui $at, %hi(D_8005515C) +/* 0B88A0 7F083D70 C432515C */ lwc1 $f18, %lo(D_8005515C)($at) +/* 0B88A4 7F083D74 C4880000 */ lwc1 $f8, ($a0) +/* 0B88A8 7F083D78 46124282 */ mul.s $f10, $f8, $f18 +/* 0B88AC 7F083D7C 10000003 */ b .L7F083D8C +/* 0B88B0 7F083D80 E50A014C */ swc1 $f10, 0x14c($t0) +/* 0B88B4 7F083D84 8E180000 */ lw $t8, ($s0) +.L7F083D88: +/* 0B88B8 7F083D88 E714014C */ swc1 $f20, 0x14c($t8) +.L7F083D8C: +/* 0B88BC 7F083D8C 8FAE014C */ lw $t6, 0x14c($sp) +.L7F083D90: +/* 0B88C0 7F083D90 51C00007 */ beql $t6, $zero, .L7F083DB0 +/* 0B88C4 7F083D94 240A0001 */ li $t2, 1 +/* 0B88C8 7F083D98 8E0F0000 */ lw $t7, ($s0) +/* 0B88CC 7F083D9C ADE00894 */ sw $zero, 0x894($t7) +/* 0B88D0 7F083DA0 8E190000 */ lw $t9, ($s0) +/* 0B88D4 7F083DA4 0FC14686 */ jal trigger_remote_mine_detonation +/* 0B88D8 7F083DA8 AF200898 */ sw $zero, 0x898($t9) +/* 0B88DC 7F083DAC 240A0001 */ li $t2, 1 +.L7F083DB0: +/* 0B88E0 7F083DB0 0FC26919 */ jal get_num_players +/* 0B88E4 7F083DB4 AFAA0074 */ sw $t2, 0x74($sp) +/* 0B88E8 7F083DB8 28410002 */ slti $at, $v0, 2 +/* 0B88EC 7F083DBC 5420000C */ bnezl $at, .L7F083DF0 +/* 0B88F0 7F083DC0 8FAB0074 */ lw $t3, 0x74($sp) +/* 0B88F4 7F083DC4 0FC051D6 */ jal get_scenario +/* 0B88F8 7F083DC8 00000000 */ nop +/* 0B88FC 7F083DCC 24010002 */ li $at, 2 +/* 0B8900 7F083DD0 54410007 */ bnel $v0, $at, .L7F083DF0 +/* 0B8904 7F083DD4 8FAB0074 */ lw $t3, 0x74($sp) +/* 0B8908 7F083DD8 0FC233E0 */ jal bondinvIsAliveWithFlag +/* 0B890C 7F083DDC 00000000 */ nop +/* 0B8910 7F083DE0 50400003 */ beql $v0, $zero, .L7F083DF0 +/* 0B8914 7F083DE4 8FAB0074 */ lw $t3, 0x74($sp) +/* 0B8918 7F083DE8 AFA00074 */ sw $zero, 0x74($sp) +/* 0B891C 7F083DEC 8FAB0074 */ lw $t3, 0x74($sp) +.L7F083DF0: +/* 0B8920 7F083DF0 5160000C */ beql $t3, $zero, .L7F083E24 +/* 0B8924 7F083DF4 8FB801BC */ lw $t8, 0x1bc($sp) +/* 0B8928 7F083DF8 8FAD0174 */ lw $t5, 0x174($sp) +/* 0B892C 7F083DFC 51A00004 */ beql $t5, $zero, .L7F083E10 +/* 0B8930 7F083E00 8FAC0170 */ lw $t4, 0x170($sp) +/* 0B8934 7F083E04 0FC175DA */ jal backstep_through_inventory +/* 0B8938 7F083E08 00000000 */ nop +/* 0B893C 7F083E0C 8FAC0170 */ lw $t4, 0x170($sp) +.L7F083E10: +/* 0B8940 7F083E10 51800004 */ beql $t4, $zero, .L7F083E24 +/* 0B8944 7F083E14 8FB801BC */ lw $t8, 0x1bc($sp) +/* 0B8948 7F083E18 0FC175B4 */ jal advance_through_inventory +/* 0B894C 7F083E1C 00000000 */ nop +/* 0B8950 7F083E20 8FB801BC */ lw $t8, 0x1bc($sp) +.L7F083E24: +/* 0B8954 7F083E24 53000005 */ beql $t8, $zero, .L7F083E3C +/* 0B8958 7F083E28 8FAF01B8 */ lw $t7, 0x1b8($sp) +/* 0B895C 7F083E2C 8E0E0000 */ lw $t6, ($s0) +/* 0B8960 7F083E30 10000007 */ b .L7F083E50 +/* 0B8964 7F083E34 ADC00430 */ sw $zero, 0x430($t6) +/* 0B8968 7F083E38 8FAF01B8 */ lw $t7, 0x1b8($sp) +.L7F083E3C: +/* 0B896C 7F083E3C 51E00005 */ beql $t7, $zero, .L7F083E54 +/* 0B8970 7F083E40 8E0B0000 */ lw $t3, ($s0) +/* 0B8974 7F083E44 8E0A0000 */ lw $t2, ($s0) +/* 0B8978 7F083E48 24190002 */ li $t9, 2 +/* 0B897C 7F083E4C AD590430 */ sw $t9, 0x430($t2) +.L7F083E50: +/* 0B8980 7F083E50 8E0B0000 */ lw $t3, ($s0) +.L7F083E54: +/* 0B8984 7F083E54 8D620430 */ lw $v0, 0x430($t3) +/* 0B8988 7F083E58 54400042 */ bnezl $v0, .L7F083F64 +/* 0B898C 7F083E5C 24010002 */ li $at, 2 +/* 0B8990 7F083E60 0FC19EA9 */ jal sub_GAME_7F067AA4 +/* 0B8994 7F083E64 00002025 */ move $a0, $zero +/* 0B8998 7F083E68 8FAD0148 */ lw $t5, 0x148($sp) +/* 0B899C 7F083E6C 51A00015 */ beql $t5, $zero, .L7F083EC4 +/* 0B89A0 7F083E70 8E0F0000 */ lw $t7, ($s0) +/* 0B89A4 7F083E74 0FC1F1AA */ jal redirect_get_BONDdata_autoaim_x +/* 0B89A8 7F083E78 00000000 */ nop +/* 0B89AC 7F083E7C 50400011 */ beql $v0, $zero, .L7F083EC4 +/* 0B89B0 7F083E80 8E0F0000 */ lw $t7, ($s0) +/* 0B89B4 7F083E84 8E0C0000 */ lw $t4, ($s0) +/* 0B89B8 7F083E88 8D980140 */ lw $t8, 0x140($t4) +/* 0B89BC 7F083E8C 5300000D */ beql $t8, $zero, .L7F083EC4 +/* 0B89C0 7F083E90 8E0F0000 */ lw $t7, ($s0) +/* 0B89C4 7F083E94 0FC17674 */ jal get_item_in_hand +/* 0B89C8 7F083E98 00002025 */ move $a0, $zero +/* 0B89CC 7F083E9C 00402025 */ move $a0, $v0 +/* 0B89D0 7F083EA0 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0B89D4 7F083EA4 24050008 */ li $a1, 8 +/* 0B89D8 7F083EA8 50400006 */ beql $v0, $zero, .L7F083EC4 +/* 0B89DC 7F083EAC 8E0F0000 */ lw $t7, ($s0) +/* 0B89E0 7F083EB0 8E0E0000 */ lw $t6, ($s0) +/* 0B89E4 7F083EB4 C5C4013C */ lwc1 $f4, 0x13c($t6) +/* 0B89E8 7F083EB8 10000007 */ b .L7F083ED8 +/* 0B89EC 7F083EBC E7A40070 */ swc1 $f4, 0x70($sp) +/* 0B89F0 7F083EC0 8E0F0000 */ lw $t7, ($s0) +.L7F083EC4: +/* 0B89F4 7F083EC4 3C018005 */ lui $at, %hi(D_80055160) +/* 0B89F8 7F083EC8 C4285160 */ lwc1 $f8, %lo(D_80055160)($at) +/* 0B89FC 7F083ECC C5E6014C */ lwc1 $f6, 0x14c($t7) +/* 0B8A00 7F083ED0 46083482 */ mul.s $f18, $f6, $f8 +/* 0B8A04 7F083ED4 E7B20070 */ swc1 $f18, 0x70($sp) +.L7F083ED8: +/* 0B8A08 7F083ED8 8FB90148 */ lw $t9, 0x148($sp) +/* 0B8A0C 7F083EDC 53200014 */ beql $t9, $zero, .L7F083F30 +/* 0B8A10 7F083EE0 8E0C0000 */ lw $t4, ($s0) +/* 0B8A14 7F083EE4 0FC1F170 */ jal redirect_get_BONDdata_autoaim_y +/* 0B8A18 7F083EE8 00000000 */ nop +/* 0B8A1C 7F083EEC 50400010 */ beql $v0, $zero, .L7F083F30 +/* 0B8A20 7F083EF0 8E0C0000 */ lw $t4, ($s0) +/* 0B8A24 7F083EF4 8E0A0000 */ lw $t2, ($s0) +/* 0B8A28 7F083EF8 8D4B0130 */ lw $t3, 0x130($t2) +/* 0B8A2C 7F083EFC 5160000C */ beql $t3, $zero, .L7F083F30 +/* 0B8A30 7F083F00 8E0C0000 */ lw $t4, ($s0) +/* 0B8A34 7F083F04 0FC17674 */ jal get_item_in_hand +/* 0B8A38 7F083F08 00002025 */ move $a0, $zero +/* 0B8A3C 7F083F0C 00402025 */ move $a0, $v0 +/* 0B8A40 7F083F10 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0B8A44 7F083F14 24050008 */ li $a1, 8 +/* 0B8A48 7F083F18 50400005 */ beql $v0, $zero, .L7F083F30 +/* 0B8A4C 7F083F1C 8E0C0000 */ lw $t4, ($s0) +/* 0B8A50 7F083F20 8E0D0000 */ lw $t5, ($s0) +/* 0B8A54 7F083F24 10000008 */ b .L7F083F48 +/* 0B8A58 7F083F28 C5AE012C */ lwc1 $f14, 0x12c($t5) +/* 0B8A5C 7F083F2C 8E0C0000 */ lw $t4, ($s0) +.L7F083F30: +/* 0B8A60 7F083F30 3C018005 */ lui $at, %hi(D_80055164) +/* 0B8A64 7F083F34 C4265164 */ lwc1 $f6, %lo(D_80055164)($at) +/* 0B8A68 7F083F38 C58A0160 */ lwc1 $f10, 0x160($t4) +/* 0B8A6C 7F083F3C 46005107 */ neg.s $f4, $f10 +/* 0B8A70 7F083F40 46062382 */ mul.s $f14, $f4, $f6 +/* 0B8A74 7F083F44 00000000 */ nop +.L7F083F48: +/* 0B8A78 7F083F48 3C063F5C */ lui $a2, (0x3F5C28F6 >> 16) # lui $a2, 0x3f5c +/* 0B8A7C 7F083F4C 34C628F6 */ ori $a2, (0x3F5C28F6 & 0xFFFF) # ori $a2, $a2, 0x28f6 +/* 0B8A80 7F083F50 0FC19FD6 */ jal sub_GAME_7F067F58 +/* 0B8A84 7F083F54 C7AC0070 */ lwc1 $f12, 0x70($sp) +/* 0B8A88 7F083F58 10000017 */ b .L7F083FB8 +/* 0B8A8C 7F083F5C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B8A90 7F083F60 24010002 */ li $at, 2 +.L7F083F64: +/* 0B8A94 7F083F64 54410014 */ bnel $v0, $at, .L7F083FB8 +/* 0B8A98 7F083F68 8FBF003C */ lw $ra, 0x3c($sp) +/* 0B8A9C 7F083F6C 0FC19EA9 */ jal sub_GAME_7F067AA4 +/* 0B8AA0 7F083F70 00002025 */ move $a0, $zero +/* 0B8AA4 7F083F74 8FB80134 */ lw $t8, 0x134($sp) +/* 0B8AA8 7F083F78 8FAE0130 */ lw $t6, 0x130($sp) +/* 0B8AAC 7F083F7C 3C018005 */ lui $at, %hi(D_80055168) +/* 0B8AB0 7F083F80 44984000 */ mtc1 $t8, $f8 +/* 0B8AB4 7F083F84 448E2000 */ mtc1 $t6, $f4 +/* 0B8AB8 7F083F88 C4205168 */ lwc1 $f0, %lo(D_80055168)($at) +/* 0B8ABC 7F083F8C 468044A0 */ cvt.s.w $f18, $f8 +/* 0B8AC0 7F083F90 3C0142A0 */ li $at, 0x42A00000 # 80.000000 +/* 0B8AC4 7F083F94 44811000 */ mtc1 $at, $f2 +/* 0B8AC8 7F083F98 468021A0 */ cvt.s.w $f6, $f4 +/* 0B8ACC 7F083F9C 46009282 */ mul.s $f10, $f18, $f0 +/* 0B8AD0 7F083FA0 00000000 */ nop +/* 0B8AD4 7F083FA4 46003202 */ mul.s $f8, $f6, $f0 +/* 0B8AD8 7F083FA8 46025303 */ div.s $f12, $f10, $f2 +/* 0B8ADC 7F083FAC 0FC19FEF */ jal sub_GAME_7F067FBC +/* 0B8AE0 7F083FB0 46024383 */ div.s $f14, $f8, $f2 +/* 0B8AE4 7F083FB4 8FBF003C */ lw $ra, 0x3c($sp) +.L7F083FB8: +/* 0B8AE8 7F083FB8 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 0B8AEC 7F083FBC 8FB00038 */ lw $s0, 0x38($sp) +/* 0B8AF0 7F083FC0 03E00008 */ jr $ra +/* 0B8AF4 7F083FC4 27BD01C0 */ addiu $sp, $sp, 0x1c0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F083FC8(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F083FC8 +/* 0B8AF8 7F083FC8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8AFC 7F083FCC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8B00 7F083FD0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B8B04 7F083FD4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B8B08 7F083FD8 8C4300F4 */ lw $v1, 0xf4($v0) +/* 0B8B0C 7F083FDC 04620089 */ bltzl $v1, .L7F084204 +/* 0B8B10 7F083FE0 8C4300F8 */ lw $v1, 0xf8($v0) +/* 0B8B14 7F083FE4 14600021 */ bnez $v1, .L7F08406C +/* 0B8B18 7F083FE8 24040008 */ li $a0, 8 +/* 0B8B1C 7F083FEC 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 0B8B20 7F083FF0 00002825 */ move $a1, $zero +/* 0B8B24 7F083FF4 24040010 */ li $a0, 16 +/* 0B8B28 7F083FF8 0FC1A96A */ jal set_unset_bitflags +/* 0B8B2C 7F083FFC 00002825 */ move $a1, $zero +/* 0B8B30 7F084000 0FC228E7 */ jal set_flags_in_BONDdata_stationary_intro_cam +/* 0B8B34 7F084004 24040004 */ li $a0, 4 +/* 0B8B38 7F084008 0FC22A51 */ jal sub_GAME_7F08A944 +/* 0B8B3C 7F08400C 24040004 */ li $a0, 4 +/* 0B8B40 7F084010 24040008 */ li $a0, 8 +/* 0B8B44 7F084014 0FC15858 */ jal set_unset_clock_lock_bits +/* 0B8B48 7F084018 00002825 */ move $a1, $zero +/* 0B8B4C 7F08401C 0FC228BB */ jal get_BONDdata_watch_health +/* 0B8B50 7F084020 00000000 */ nop +/* 0B8B54 7F084024 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 0B8B58 7F084028 44812000 */ mtc1 $at, $f4 +/* 0B8B5C 7F08402C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B8B60 7F084030 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B8B64 7F084034 46040182 */ mul.s $f6, $f0, $f4 +/* 0B8B68 7F084038 8C780000 */ lw $t8, ($v1) +/* 0B8B6C 7F08403C 24090007 */ li $t1, 7 +/* 0B8B70 7F084040 4600320D */ trunc.w.s $f8, $f6 +/* 0B8B74 7F084044 440F4000 */ mfc1 $t7, $f8 +/* 0B8B78 7F084048 00000000 */ nop +/* 0B8B7C 7F08404C AF0F29D4 */ sw $t7, 0x29d4($t8) +/* 0B8B80 7F084050 8C620000 */ lw $v0, ($v1) +/* 0B8B84 7F084054 8C5929D4 */ lw $t9, 0x29d4($v0) +/* 0B8B88 7F084058 2B210008 */ slti $at, $t9, 8 +/* 0B8B8C 7F08405C 54200004 */ bnezl $at, .L7F084070 +/* 0B8B90 7F084060 8C4A29D4 */ lw $t2, 0x29d4($v0) +/* 0B8B94 7F084064 AC4929D4 */ sw $t1, 0x29d4($v0) +/* 0B8B98 7F084068 8C620000 */ lw $v0, ($v1) +.L7F08406C: +/* 0B8B9C 7F08406C 8C4A29D4 */ lw $t2, 0x29d4($v0) +.L7F084070: +/* 0B8BA0 7F084070 3C0C8003 */ lui $t4, %hi(D_80036634) +/* 0B8BA4 7F084074 258C6634 */ addiu $t4, %lo(D_80036634) # addiu $t4, $t4, 0x6634 +/* 0B8BA8 7F084078 000A5880 */ sll $t3, $t2, 2 +/* 0B8BAC 7F08407C 016A5823 */ subu $t3, $t3, $t2 +/* 0B8BB0 7F084080 000B5880 */ sll $t3, $t3, 2 +/* 0B8BB4 7F084084 016A5823 */ subu $t3, $t3, $t2 +/* 0B8BB8 7F084088 000B5880 */ sll $t3, $t3, 2 +/* 0B8BBC 7F08408C 016C4021 */ addu $t0, $t3, $t4 +/* 0B8BC0 7F084090 8D0D0008 */ lw $t5, 8($t0) +/* 0B8BC4 7F084094 8C4300F4 */ lw $v1, 0xf4($v0) +/* 0B8BC8 7F084098 01A3082A */ slt $at, $t5, $v1 +/* 0B8BCC 7F08409C 50200008 */ beql $at, $zero, .L7F0840C0 +/* 0B8BD0 7F0840A0 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0B8BD4 7F0840A4 8D0E0018 */ lw $t6, 0x18($t0) +/* 0B8BD8 7F0840A8 240400FF */ li $a0, 255 +/* 0B8BDC 7F0840AC 240500FF */ li $a1, 255 +/* 0B8BE0 7F0840B0 01C3082A */ slt $at, $t6, $v1 +/* 0B8BE4 7F0840B4 1420003A */ bnez $at, .L7F0841A0 +/* 0B8BE8 7F0840B8 240EFFFF */ li $t6, -1 +/* 0B8BEC 7F0840BC 8C4F00D8 */ lw $t7, 0xd8($v0) +.L7F0840C0: +/* 0B8BF0 7F0840C0 55E00029 */ bnezl $t7, .L7F084168 +/* 0B8BF4 7F0840C4 8C4901C8 */ lw $t1, 0x1c8($v0) +/* 0B8BF8 7F0840C8 8D040010 */ lw $a0, 0x10($t0) +/* 0B8BFC 7F0840CC 0064082A */ slt $at, $v1, $a0 +/* 0B8C00 7F0840D0 54200025 */ bnezl $at, .L7F084168 +/* 0B8C04 7F0840D4 8C4901C8 */ lw $t1, 0x1c8($v0) +/* 0B8C08 7F0840D8 8D060018 */ lw $a2, 0x18($t0) +/* 0B8C0C 7F0840DC 00C3082A */ slt $at, $a2, $v1 +/* 0B8C10 7F0840E0 54200021 */ bnezl $at, .L7F084168 +/* 0B8C14 7F0840E4 8C4901C8 */ lw $t1, 0x1c8($v0) +/* 0B8C18 7F0840E8 8D050014 */ lw $a1, 0x14($t0) +/* 0B8C1C 7F0840EC 00641023 */ subu $v0, $v1, $a0 +/* 0B8C20 7F0840F0 00C43823 */ subu $a3, $a2, $a0 +/* 0B8C24 7F0840F4 0045082A */ slt $at, $v0, $a1 +/* 0B8C28 7F0840F8 10200009 */ beqz $at, .L7F084120 +/* 0B8C2C 7F0840FC 00E2C023 */ subu $t8, $a3, $v0 +/* 0B8C30 7F084100 44828000 */ mtc1 $v0, $f16 +/* 0B8C34 7F084104 C50A001C */ lwc1 $f10, 0x1c($t0) +/* 0B8C38 7F084108 44853000 */ mtc1 $a1, $f6 +/* 0B8C3C 7F08410C 468084A0 */ cvt.s.w $f18, $f16 +/* 0B8C40 7F084110 46803220 */ cvt.s.w $f8, $f6 +/* 0B8C44 7F084114 46125102 */ mul.s $f4, $f10, $f18 +/* 0B8C48 7F084118 1000000A */ b .L7F084144 +/* 0B8C4C 7F08411C 46082003 */ div.s $f0, $f4, $f8 +.L7F084120: +/* 0B8C50 7F084120 44985000 */ mtc1 $t8, $f10 +/* 0B8C54 7F084124 C510001C */ lwc1 $f16, 0x1c($t0) +/* 0B8C58 7F084128 00E5C823 */ subu $t9, $a3, $a1 +/* 0B8C5C 7F08412C 468054A0 */ cvt.s.w $f18, $f10 +/* 0B8C60 7F084130 44992000 */ mtc1 $t9, $f4 +/* 0B8C64 7F084134 00000000 */ nop +/* 0B8C68 7F084138 46802220 */ cvt.s.w $f8, $f4 +/* 0B8C6C 7F08413C 46128182 */ mul.s $f6, $f16, $f18 +/* 0B8C70 7F084140 46083003 */ div.s $f0, $f6, $f8 +.L7F084144: +/* 0B8C74 7F084144 44070000 */ mfc1 $a3, $f0 +/* 0B8C78 7F084148 8D040020 */ lw $a0, 0x20($t0) +/* 0B8C7C 7F08414C 8D050024 */ lw $a1, 0x24($t0) +/* 0B8C80 7F084150 0FC201EC */ jal set_rgba_tint +/* 0B8C84 7F084154 8D060028 */ lw $a2, 0x28($t0) +/* 0B8C88 7F084158 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8C8C 7F08415C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8C90 7F084160 8C4300F4 */ lw $v1, 0xf4($v0) +/* 0B8C94 7F084164 8C4901C8 */ lw $t1, 0x1c8($v0) +.L7F084168: +/* 0B8C98 7F084168 3C0A8005 */ lui $t2, %hi(clock_timer) +/* 0B8C9C 7F08416C 3C0C8005 */ lui $t4, %hi(D_80048498) +/* 0B8CA0 7F084170 15200005 */ bnez $t1, .L7F084188 +/* 0B8CA4 7F084174 00000000 */ nop +/* 0B8CA8 7F084178 8D4A8374 */ lw $t2, %lo(clock_timer)($t2) +/* 0B8CAC 7F08417C 006A5821 */ addu $t3, $v1, $t2 +/* 0B8CB0 7F084180 10000004 */ b .L7F084194 +/* 0B8CB4 7F084184 AC4B00F4 */ sw $t3, 0xf4($v0) +.L7F084188: +/* 0B8CB8 7F084188 8D8C8498 */ lw $t4, %lo(D_80048498)($t4) +/* 0B8CBC 7F08418C 006C6821 */ addu $t5, $v1, $t4 +/* 0B8CC0 7F084190 AC4D00F4 */ sw $t5, 0xf4($v0) +.L7F084194: +/* 0B8CC4 7F084194 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8CC8 7F084198 10000019 */ b .L7F084200 +/* 0B8CCC 7F08419C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +.L7F0841A0: +/* 0B8CD0 7F0841A0 AC4E00F4 */ sw $t6, 0xf4($v0) +/* 0B8CD4 7F0841A4 240600FF */ li $a2, 255 +/* 0B8CD8 7F0841A8 0FC201EC */ jal set_rgba_tint +/* 0B8CDC 7F0841AC 24070000 */ li $a3, 0 +/* 0B8CE0 7F0841B0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8CE4 7F0841B4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8CE8 7F0841B8 24040008 */ li $a0, 8 +/* 0B8CEC 7F0841BC 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0B8CF0 7F0841C0 55E00010 */ bnezl $t7, .L7F084204 +/* 0B8CF4 7F0841C4 8C4300F8 */ lw $v1, 0xf8($v0) +/* 0B8CF8 7F0841C8 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 0B8CFC 7F0841CC 24050001 */ li $a1, 1 +/* 0B8D00 7F0841D0 24040010 */ li $a0, 16 +/* 0B8D04 7F0841D4 0FC1A96A */ jal set_unset_bitflags +/* 0B8D08 7F0841D8 24050001 */ li $a1, 1 +/* 0B8D0C 7F0841DC 0FC228E0 */ jal unset_flags_in_BONDdata_stationary_intro_cam +/* 0B8D10 7F0841E0 24040004 */ li $a0, 4 +/* 0B8D14 7F0841E4 0FC22A4A */ jal sub_GAME_7F08A928 +/* 0B8D18 7F0841E8 24040004 */ li $a0, 4 +/* 0B8D1C 7F0841EC 24040008 */ li $a0, 8 +/* 0B8D20 7F0841F0 0FC15858 */ jal set_unset_clock_lock_bits +/* 0B8D24 7F0841F4 24050001 */ li $a1, 1 +/* 0B8D28 7F0841F8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8D2C 7F0841FC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +.L7F084200: +/* 0B8D30 7F084200 8C4300F8 */ lw $v1, 0xf8($v0) +.L7F084204: +/* 0B8D34 7F084204 04620053 */ bltzl $v1, .L7F084354 +/* 0B8D38 7F084208 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B8D3C 7F08420C 54600017 */ bnezl $v1, .L7F08426C +/* 0B8D40 7F084210 8C4C00D8 */ lw $t4, 0xd8($v0) +/* 0B8D44 7F084214 0FC228BB */ jal get_BONDdata_watch_health +/* 0B8D48 7F084218 00000000 */ nop +/* 0B8D4C 7F08421C 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 0B8D50 7F084220 44815000 */ mtc1 $at, $f10 +/* 0B8D54 7F084224 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B8D58 7F084228 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0B8D5C 7F08422C 460A0402 */ mul.s $f16, $f0, $f10 +/* 0B8D60 7F084230 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8D64 7F084234 240B0007 */ li $t3, 7 +/* 0B8D68 7F084238 4600848D */ trunc.w.s $f18, $f16 +/* 0B8D6C 7F08423C 44199000 */ mfc1 $t9, $f18 +/* 0B8D70 7F084240 00000000 */ nop +/* 0B8D74 7F084244 AD3929B8 */ sw $t9, 0x29b8($t1) +/* 0B8D78 7F084248 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8D7C 7F08424C 8C4A29B8 */ lw $t2, 0x29b8($v0) +/* 0B8D80 7F084250 29410008 */ slti $at, $t2, 8 +/* 0B8D84 7F084254 54200005 */ bnezl $at, .L7F08426C +/* 0B8D88 7F084258 8C4C00D8 */ lw $t4, 0xd8($v0) +/* 0B8D8C 7F08425C AC4B29B8 */ sw $t3, 0x29b8($v0) +/* 0B8D90 7F084260 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8D94 7F084264 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8D98 7F084268 8C4C00D8 */ lw $t4, 0xd8($v0) +.L7F08426C: +/* 0B8D9C 7F08426C 3C0F8003 */ lui $t7, %hi(D_80036794) +/* 0B8DA0 7F084270 2418FFFF */ li $t8, -1 +/* 0B8DA4 7F084274 55800036 */ bnezl $t4, .L7F084350 +/* 0B8DA8 7F084278 AC5800F8 */ sw $t8, 0xf8($v0) +/* 0B8DAC 7F08427C 8C4D29B8 */ lw $t5, 0x29b8($v0) +/* 0B8DB0 7F084280 25EF6794 */ addiu $t7, %lo(D_80036794) # addiu $t7, $t7, 0x6794 +/* 0B8DB4 7F084284 8C4300F8 */ lw $v1, 0xf8($v0) +/* 0B8DB8 7F084288 000D7080 */ sll $t6, $t5, 2 +/* 0B8DBC 7F08428C 01CD7023 */ subu $t6, $t6, $t5 +/* 0B8DC0 7F084290 000E7080 */ sll $t6, $t6, 2 +/* 0B8DC4 7F084294 01CF2021 */ addu $a0, $t6, $t7 +/* 0B8DC8 7F084298 8C850000 */ lw $a1, ($a0) +/* 0B8DCC 7F08429C 0065082A */ slt $at, $v1, $a1 +/* 0B8DD0 7F0842A0 54200014 */ bnezl $at, .L7F0842F4 +/* 0B8DD4 7F0842A4 0065082A */ slt $at, $v1, $a1 +/* 0B8DD8 7F0842A8 8C980004 */ lw $t8, 4($a0) +/* 0B8DDC 7F0842AC 0303082A */ slt $at, $t8, $v1 +/* 0B8DE0 7F0842B0 54200010 */ bnezl $at, .L7F0842F4 +/* 0B8DE4 7F0842B4 0065082A */ slt $at, $v1, $a1 +/* 0B8DE8 7F0842B8 C44400E4 */ lwc1 $f4, 0xe4($v0) +/* 0B8DEC 7F0842BC 3C098005 */ lui $t1, %hi(clock_timer) +/* 0B8DF0 7F0842C0 E44400EC */ swc1 $f4, 0xec($v0) +/* 0B8DF4 7F0842C4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8DF8 7F0842C8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8DFC 7F0842CC C44600E8 */ lwc1 $f6, 0xe8($v0) +/* 0B8E00 7F0842D0 E44600F0 */ swc1 $f6, 0xf0($v0) +/* 0B8E04 7F0842D4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8E08 7F0842D8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8E0C 7F0842DC 8D298374 */ lw $t1, %lo(clock_timer)($t1) +/* 0B8E10 7F0842E0 8C5900F8 */ lw $t9, 0xf8($v0) +/* 0B8E14 7F0842E4 03295021 */ addu $t2, $t9, $t1 +/* 0B8E18 7F0842E8 10000019 */ b .L7F084350 +/* 0B8E1C 7F0842EC AC4A00F8 */ sw $t2, 0xf8($v0) +/* 0B8E20 7F0842F0 0065082A */ slt $at, $v1, $a1 +.L7F0842F4: +/* 0B8E24 7F0842F4 14200013 */ bnez $at, .L7F084344 +/* 0B8E28 7F0842F8 240FFFFF */ li $t7, -1 +/* 0B8E2C 7F0842FC 8C8B0008 */ lw $t3, 8($a0) +/* 0B8E30 7F084300 0163082A */ slt $at, $t3, $v1 +/* 0B8E34 7F084304 1420000F */ bnez $at, .L7F084344 +/* 0B8E38 7F084308 00000000 */ nop +/* 0B8E3C 7F08430C C44800DC */ lwc1 $f8, 0xdc($v0) +/* 0B8E40 7F084310 3C0D8005 */ lui $t5, %hi(clock_timer) +/* 0B8E44 7F084314 E44800EC */ swc1 $f8, 0xec($v0) +/* 0B8E48 7F084318 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8E4C 7F08431C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8E50 7F084320 C44A00E0 */ lwc1 $f10, 0xe0($v0) +/* 0B8E54 7F084324 E44A00F0 */ swc1 $f10, 0xf0($v0) +/* 0B8E58 7F084328 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8E5C 7F08432C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8E60 7F084330 8DAD8374 */ lw $t5, %lo(clock_timer)($t5) +/* 0B8E64 7F084334 8C4C00F8 */ lw $t4, 0xf8($v0) +/* 0B8E68 7F084338 018D7021 */ addu $t6, $t4, $t5 +/* 0B8E6C 7F08433C 10000004 */ b .L7F084350 +/* 0B8E70 7F084340 AC4E00F8 */ sw $t6, 0xf8($v0) +.L7F084344: +/* 0B8E74 7F084344 10000002 */ b .L7F084350 +/* 0B8E78 7F084348 AC4F00F8 */ sw $t7, 0xf8($v0) +/* 0B8E7C 7F08434C AC5800F8 */ sw $t8, 0xf8($v0) +.L7F084350: +/* 0B8E80 7F084350 8FBF0014 */ lw $ra, 0x14($sp) +.L7F084354: +/* 0B8E84 7F084354 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B8E88 7F084358 03E00008 */ jr $ra +/* 0B8E8C 7F08435C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F083FC8 +/* 0B9148 7F0845D8 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B914C 7F0845DC 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B9150 7F0845E0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B9154 7F0845E4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B9158 7F0845E8 44802000 */ mtc1 $zero, $f4 +/* 0B915C 7F0845EC C44000F4 */ lwc1 $f0, 0xf4($v0) +/* 0B9160 7F0845F0 4600203E */ c.le.s $f4, $f0 +/* 0B9164 7F0845F4 00000000 */ nop +/* 0B9168 7F0845F8 45020090 */ bc1fl .Ljp7F08483C +/* 0B916C 7F0845FC C44000F8 */ lwc1 $f0, 0xf8($v0) +/* 0B9170 7F084600 44803000 */ mtc1 $zero, $f6 +/* 0B9174 7F084604 24040008 */ li $a0, 8 +/* 0B9178 7F084608 46003032 */ c.eq.s $f6, $f0 +/* 0B917C 7F08460C 00000000 */ nop +/* 0B9180 7F084610 45020027 */ bc1fl .Ljp7F0846B0 +/* 0B9184 7F084614 8C4800D8 */ lw $t0, 0xd8($v0) +/* 0B9188 7F084618 0FC1A5B8 */ jal set_unset_ammo_on_screen_setting +/* 0B918C 7F08461C 00002825 */ move $a1, $zero +/* 0B9190 7F084620 24040010 */ li $a0, 16 +/* 0B9194 7F084624 0FC1AAE5 */ jal set_unset_bitflags +/* 0B9198 7F084628 00002825 */ move $a1, $zero +/* 0B919C 7F08462C 0FC22AAD */ jal set_flags_in_BONDdata_stationary_intro_cam +/* 0B91A0 7F084630 24040004 */ li $a0, 4 +/* 0B91A4 7F084634 0FC22C48 */ jal sub_GAME_7F08A944 +/* 0B91A8 7F084638 24040004 */ li $a0, 4 +/* 0B91AC 7F08463C 24040008 */ li $a0, 8 +/* 0B91B0 7F084640 0FC15997 */ jal set_unset_clock_lock_bits +/* 0B91B4 7F084644 00002825 */ move $a1, $zero +/* 0B91B8 7F084648 0FC22A89 */ jal get_BONDdata_watch_health +/* 0B91BC 7F08464C 00000000 */ nop +/* 0B91C0 7F084650 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 0B91C4 7F084654 44814000 */ mtc1 $at, $f8 +/* 0B91C8 7F084658 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 0B91CC 7F08465C 2484A120 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5ee0 +/* 0B91D0 7F084660 46080282 */ mul.s $f10, $f0, $f8 +/* 0B91D4 7F084664 8C980000 */ lw $t8, ($a0) +/* 0B91D8 7F084668 24190007 */ li $t9, 7 +/* 0B91DC 7F08466C 4600510D */ trunc.w.s $f4, $f10 +/* 0B91E0 7F084670 440F2000 */ mfc1 $t7, $f4 +/* 0B91E4 7F084674 00000000 */ nop +/* 0B91E8 7F084678 AF0F29D4 */ sw $t7, 0x29d4($t8) +/* 0B91EC 7F08467C 8C820000 */ lw $v0, ($a0) +/* 0B91F0 7F084680 8C4329D4 */ lw $v1, 0x29d4($v0) +/* 0B91F4 7F084684 28610008 */ slti $at, $v1, 8 +/* 0B91F8 7F084688 14200004 */ bnez $at, .Ljp7F08469C +/* 0B91FC 7F08468C 00000000 */ nop +/* 0B9200 7F084690 AC5929D4 */ sw $t9, 0x29d4($v0) +/* 0B9204 7F084694 8C820000 */ lw $v0, ($a0) +/* 0B9208 7F084698 8C4329D4 */ lw $v1, 0x29d4($v0) +.Ljp7F08469C: +/* 0B920C 7F08469C 04630004 */ bgezl $v1, .Ljp7F0846B0 +/* 0B9210 7F0846A0 8C4800D8 */ lw $t0, 0xd8($v0) +/* 0B9214 7F0846A4 AC4029D4 */ sw $zero, 0x29d4($v0) +/* 0B9218 7F0846A8 8C820000 */ lw $v0, ($a0) +/* 0B921C 7F0846AC 8C4800D8 */ lw $t0, 0xd8($v0) +.Ljp7F0846B0: +/* 0B9220 7F0846B0 3C0B8003 */ lui $t3, %hi(D_80036634) # $t3, 0x8003 +/* 0B9224 7F0846B4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B9228 7F0846B8 15000045 */ bnez $t0, .Ljp7F0847D0 +/* 0B922C 7F0846BC 240400FF */ li $a0, 255 +/* 0B9230 7F0846C0 8C4929D4 */ lw $t1, 0x29d4($v0) +/* 0B9234 7F0846C4 256B6674 */ addiu $t3, %lo(D_80036634) # addiu $t3, $t3, 0x6674 +/* 0B9238 7F0846C8 C44000F4 */ lwc1 $f0, 0xf4($v0) +/* 0B923C 7F0846CC 00095080 */ sll $t2, $t1, 2 +/* 0B9240 7F0846D0 01495023 */ subu $t2, $t2, $t1 +/* 0B9244 7F0846D4 000A5080 */ sll $t2, $t2, 2 +/* 0B9248 7F0846D8 01495023 */ subu $t2, $t2, $t1 +/* 0B924C 7F0846DC 000A5080 */ sll $t2, $t2, 2 +/* 0B9250 7F0846E0 014B1821 */ addu $v1, $t2, $t3 +/* 0B9254 7F0846E4 C4660008 */ lwc1 $f6, 8($v1) +/* 0B9258 7F0846E8 4606003E */ c.le.s $f0, $f6 +/* 0B925C 7F0846EC 00000000 */ nop +/* 0B9260 7F0846F0 45030007 */ bc1tl .Ljp7F084710 +/* 0B9264 7F0846F4 C4620010 */ lwc1 $f2, 0x10($v1) +/* 0B9268 7F0846F8 C4680018 */ lwc1 $f8, 0x18($v1) +/* 0B926C 7F0846FC 4608003E */ c.le.s $f0, $f8 +/* 0B9270 7F084700 00000000 */ nop +/* 0B9274 7F084704 45020033 */ bc1fl .Ljp7F0847D4 +/* 0B9278 7F084708 44813000 */ mtc1 $at, $f6 +/* 0B927C 7F08470C C4620010 */ lwc1 $f2, 0x10($v1) +.Ljp7F084710: +/* 0B9280 7F084710 4600103E */ c.le.s $f2, $f0 +/* 0B9284 7F084714 00000000 */ nop +/* 0B9288 7F084718 4502001F */ bc1fl .Ljp7F084798 +/* 0B928C 7F08471C 8C4C01C8 */ lw $t4, 0x1c8($v0) +/* 0B9290 7F084720 C4700018 */ lwc1 $f16, 0x18($v1) +/* 0B9294 7F084724 4610003E */ c.le.s $f0, $f16 +/* 0B9298 7F084728 00000000 */ nop +/* 0B929C 7F08472C 4502001A */ bc1fl .Ljp7F084798 +/* 0B92A0 7F084730 8C4C01C8 */ lw $t4, 0x1c8($v0) +/* 0B92A4 7F084734 46020301 */ sub.s $f12, $f0, $f2 +/* 0B92A8 7F084738 C46E0014 */ lwc1 $f14, 0x14($v1) +/* 0B92AC 7F08473C 46028481 */ sub.s $f18, $f16, $f2 +/* 0B92B0 7F084740 460E603C */ c.lt.s $f12, $f14 +/* 0B92B4 7F084744 00000000 */ nop +/* 0B92B8 7F084748 45020006 */ bc1fl .Ljp7F084764 +/* 0B92BC 7F08474C 460C9201 */ sub.s $f8, $f18, $f12 +/* 0B92C0 7F084750 C46A001C */ lwc1 $f10, 0x1c($v1) +/* 0B92C4 7F084754 460C5102 */ mul.s $f4, $f10, $f12 +/* 0B92C8 7F084758 10000006 */ b .Ljp7F084774 +/* 0B92CC 7F08475C 460E2003 */ div.s $f0, $f4, $f14 +/* 0B92D0 7F084760 460C9201 */ sub.s $f8, $f18, $f12 +.Ljp7F084764: +/* 0B92D4 7F084764 C466001C */ lwc1 $f6, 0x1c($v1) +/* 0B92D8 7F084768 460E9101 */ sub.s $f4, $f18, $f14 +/* 0B92DC 7F08476C 46083282 */ mul.s $f10, $f6, $f8 +/* 0B92E0 7F084770 46045003 */ div.s $f0, $f10, $f4 +.Ljp7F084774: +/* 0B92E4 7F084774 44070000 */ mfc1 $a3, $f0 +/* 0B92E8 7F084778 8C640020 */ lw $a0, 0x20($v1) +/* 0B92EC 7F08477C 8C650024 */ lw $a1, 0x24($v1) +/* 0B92F0 7F084780 0FC20370 */ jal set_rgba_tint +/* 0B92F4 7F084784 8C660028 */ lw $a2, 0x28($v1) +/* 0B92F8 7F084788 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B92FC 7F08478C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B9300 7F084790 C44000F4 */ lwc1 $f0, 0xf4($v0) +/* 0B9304 7F084794 8C4C01C8 */ lw $t4, 0x1c8($v0) +.Ljp7F084798: +/* 0B9308 7F084798 3C018005 */ lui $at, %hi(jpD_800484D0) # -0.000000 +/* 0B930C 7F08479C 15800006 */ bnez $t4, .Ljp7F0847B8 +/* 0B9310 7F0847A0 00000000 */ nop +/* 0B9314 7F0847A4 3C018005 */ lui $at, %hi(global_timer_delta) # -0.000000 +/* 0B9318 7F0847A8 C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B931C 7F0847AC 46060200 */ add.s $f8, $f0, $f6 +/* 0B9320 7F0847B0 10000004 */ b .Ljp7F0847C4 +/* 0B9324 7F0847B4 E44800F4 */ swc1 $f8, 0xf4($v0) +.Ljp7F0847B8: +/* 0B9328 7F0847B8 C42A84D0 */ lwc1 $f10, %lo(jpD_800484D0)($at) +/* 0B932C 7F0847BC 460A0100 */ add.s $f4, $f0, $f10 +/* 0B9330 7F0847C0 E44400F4 */ swc1 $f4, 0xf4($v0) +.Ljp7F0847C4: +/* 0B9334 7F0847C4 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B9338 7F0847C8 1000001B */ b .Ljp7F084838 +/* 0B933C 7F0847CC 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +.Ljp7F0847D0: +/* 0B9340 7F0847D0 44813000 */ mtc1 $at, $f6 +.Ljp7F0847D4: +/* 0B9344 7F0847D4 240500FF */ li $a1, 255 +/* 0B9348 7F0847D8 240600FF */ li $a2, 255 +/* 0B934C 7F0847DC 24070000 */ li $a3, 0 +/* 0B9350 7F0847E0 0FC20370 */ jal set_rgba_tint +/* 0B9354 7F0847E4 E44600F4 */ swc1 $f6, 0xf4($v0) +/* 0B9358 7F0847E8 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B935C 7F0847EC 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B9360 7F0847F0 24040008 */ li $a0, 8 +/* 0B9364 7F0847F4 8C4D00D8 */ lw $t5, 0xd8($v0) +/* 0B9368 7F0847F8 55A00010 */ bnezl $t5, .Ljp7F08483C +/* 0B936C 7F0847FC C44000F8 */ lwc1 $f0, 0xf8($v0) +/* 0B9370 7F084800 0FC1A5B8 */ jal set_unset_ammo_on_screen_setting +/* 0B9374 7F084804 24050001 */ li $a1, 1 +/* 0B9378 7F084808 24040010 */ li $a0, 16 +/* 0B937C 7F08480C 0FC1AAE5 */ jal set_unset_bitflags +/* 0B9380 7F084810 24050001 */ li $a1, 1 +/* 0B9384 7F084814 0FC22AA6 */ jal unset_flags_in_BONDdata_stationary_intro_cam +/* 0B9388 7F084818 24040004 */ li $a0, 4 +/* 0B938C 7F08481C 0FC22C41 */ jal sub_GAME_7F08A928 +/* 0B9390 7F084820 24040004 */ li $a0, 4 +/* 0B9394 7F084824 24040008 */ li $a0, 8 +/* 0B9398 7F084828 0FC15997 */ jal set_unset_clock_lock_bits +/* 0B939C 7F08482C 24050001 */ li $a1, 1 +/* 0B93A0 7F084830 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B93A4 7F084834 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +.Ljp7F084838: +/* 0B93A8 7F084838 C44000F8 */ lwc1 $f0, 0xf8($v0) +.Ljp7F08483C: +/* 0B93AC 7F08483C 44804000 */ mtc1 $zero, $f8 +/* 0B93B0 7F084840 00000000 */ nop +/* 0B93B4 7F084844 4600403E */ c.le.s $f8, $f0 +/* 0B93B8 7F084848 00000000 */ nop +/* 0B93BC 7F08484C 4502006D */ bc1fl .Ljp7F084A04 +/* 0B93C0 7F084850 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B93C4 7F084854 44805000 */ mtc1 $zero, $f10 +/* 0B93C8 7F084858 00000000 */ nop +/* 0B93CC 7F08485C 46005032 */ c.eq.s $f10, $f0 +/* 0B93D0 7F084860 00000000 */ nop +/* 0B93D4 7F084864 4502001D */ bc1fl .Ljp7F0848DC +/* 0B93D8 7F084868 8C4800D8 */ lw $t0, 0xd8($v0) +/* 0B93DC 7F08486C 0FC22A89 */ jal get_BONDdata_watch_health +/* 0B93E0 7F084870 00000000 */ nop +/* 0B93E4 7F084874 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 0B93E8 7F084878 44812000 */ mtc1 $at, $f4 +/* 0B93EC 7F08487C 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0B93F0 7F084880 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0B93F4 7F084884 46040182 */ mul.s $f6, $f0, $f4 +/* 0B93F8 7F084888 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B93FC 7F08488C 24190007 */ li $t9, 7 +/* 0B9400 7F084890 4600320D */ trunc.w.s $f8, $f6 +/* 0B9404 7F084894 440F4000 */ mfc1 $t7, $f8 +/* 0B9408 7F084898 00000000 */ nop +/* 0B940C 7F08489C AF0F29B8 */ sw $t7, 0x29b8($t8) +/* 0B9410 7F0848A0 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B9414 7F0848A4 8C4329B8 */ lw $v1, 0x29b8($v0) +/* 0B9418 7F0848A8 28610008 */ slti $at, $v1, 8 +/* 0B941C 7F0848AC 14200005 */ bnez $at, .Ljp7F0848C4 +/* 0B9420 7F0848B0 00000000 */ nop +/* 0B9424 7F0848B4 AC5929B8 */ sw $t9, 0x29b8($v0) +/* 0B9428 7F0848B8 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B942C 7F0848BC 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B9430 7F0848C0 8C4329B8 */ lw $v1, 0x29b8($v0) +.Ljp7F0848C4: +/* 0B9434 7F0848C4 04630005 */ bgezl $v1, .Ljp7F0848DC +/* 0B9438 7F0848C8 8C4800D8 */ lw $t0, 0xd8($v0) +/* 0B943C 7F0848CC AC4029B8 */ sw $zero, 0x29b8($v0) +/* 0B9440 7F0848D0 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B9444 7F0848D4 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B9448 7F0848D8 8C4800D8 */ lw $t0, 0xd8($v0) +.Ljp7F0848DC: +/* 0B944C 7F0848DC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B9450 7F0848E0 55000045 */ bnezl $t0, .Ljp7F0849F8 +/* 0B9454 7F0848E4 44815000 */ mtc1 $at, $f10 +/* 0B9458 7F0848E8 8C4929B8 */ lw $t1, 0x29b8($v0) +/* 0B945C 7F0848EC 3C0B8003 */ lui $t3, %hi(D_80036794) # $t3, 0x8003 +/* 0B9460 7F0848F0 256B67D4 */ addiu $t3, %lo(D_80036794) # addiu $t3, $t3, 0x67d4 +/* 0B9464 7F0848F4 00095080 */ sll $t2, $t1, 2 +/* 0B9468 7F0848F8 01495023 */ subu $t2, $t2, $t1 +/* 0B946C 7F0848FC 000A5080 */ sll $t2, $t2, 2 +/* 0B9470 7F084900 014B1821 */ addu $v1, $t2, $t3 +/* 0B9474 7F084904 8C6C0000 */ lw $t4, ($v1) +/* 0B9478 7F084908 C44000F8 */ lwc1 $f0, 0xf8($v0) +/* 0B947C 7F08490C 448C5000 */ mtc1 $t4, $f10 +/* 0B9480 7F084910 00000000 */ nop +/* 0B9484 7F084914 468050A0 */ cvt.s.w $f2, $f10 +/* 0B9488 7F084918 4600103E */ c.le.s $f2, $f0 +/* 0B948C 7F08491C 00000000 */ nop +/* 0B9490 7F084920 45020018 */ bc1fl .Ljp7F084984 +/* 0B9494 7F084924 4600103E */ c.le.s $f2, $f0 +/* 0B9498 7F084928 8C6D0004 */ lw $t5, 4($v1) +/* 0B949C 7F08492C 448D2000 */ mtc1 $t5, $f4 +/* 0B94A0 7F084930 00000000 */ nop +/* 0B94A4 7F084934 468021A0 */ cvt.s.w $f6, $f4 +/* 0B94A8 7F084938 4606003E */ c.le.s $f0, $f6 +/* 0B94AC 7F08493C 00000000 */ nop +/* 0B94B0 7F084940 45020010 */ bc1fl .Ljp7F084984 +/* 0B94B4 7F084944 4600103E */ c.le.s $f2, $f0 +/* 0B94B8 7F084948 C44800E4 */ lwc1 $f8, 0xe4($v0) +/* 0B94BC 7F08494C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B94C0 7F084950 E44800EC */ swc1 $f8, 0xec($v0) +/* 0B94C4 7F084954 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B94C8 7F084958 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B94CC 7F08495C C44A00E8 */ lwc1 $f10, 0xe8($v0) +/* 0B94D0 7F084960 E44A00F0 */ swc1 $f10, 0xf0($v0) +/* 0B94D4 7F084964 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B94D8 7F084968 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B94DC 7F08496C C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B94E0 7F084970 C44400F8 */ lwc1 $f4, 0xf8($v0) +/* 0B94E4 7F084974 46062200 */ add.s $f8, $f4, $f6 +/* 0B94E8 7F084978 10000021 */ b .Ljp7F084A00 +/* 0B94EC 7F08497C E44800F8 */ swc1 $f8, 0xf8($v0) +/* 0B94F0 7F084980 4600103E */ c.le.s $f2, $f0 +.Ljp7F084984: +/* 0B94F4 7F084984 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0B94F8 7F084988 45020018 */ bc1fl .Ljp7F0849EC +/* 0B94FC 7F08498C 44814000 */ mtc1 $at, $f8 +/* 0B9500 7F084990 8C6E0008 */ lw $t6, 8($v1) +/* 0B9504 7F084994 448E5000 */ mtc1 $t6, $f10 +/* 0B9508 7F084998 00000000 */ nop +/* 0B950C 7F08499C 46805120 */ cvt.s.w $f4, $f10 +/* 0B9510 7F0849A0 4604003E */ c.le.s $f0, $f4 +/* 0B9514 7F0849A4 00000000 */ nop +/* 0B9518 7F0849A8 45020010 */ bc1fl .Ljp7F0849EC +/* 0B951C 7F0849AC 44814000 */ mtc1 $at, $f8 +/* 0B9520 7F0849B0 C44600DC */ lwc1 $f6, 0xdc($v0) +/* 0B9524 7F0849B4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B9528 7F0849B8 E44600EC */ swc1 $f6, 0xec($v0) +/* 0B952C 7F0849BC 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B9530 7F0849C0 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B9534 7F0849C4 C44800E0 */ lwc1 $f8, 0xe0($v0) +/* 0B9538 7F0849C8 E44800F0 */ swc1 $f8, 0xf0($v0) +/* 0B953C 7F0849CC 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0B9540 7F0849D0 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0B9544 7F0849D4 C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B9548 7F0849D8 C44A00F8 */ lwc1 $f10, 0xf8($v0) +/* 0B954C 7F0849DC 46045180 */ add.s $f6, $f10, $f4 +/* 0B9550 7F0849E0 10000007 */ b .Ljp7F084A00 +/* 0B9554 7F0849E4 E44600F8 */ swc1 $f6, 0xf8($v0) +/* 0B9558 7F0849E8 44814000 */ mtc1 $at, $f8 +.Ljp7F0849EC: +/* 0B955C 7F0849EC 10000004 */ b .Ljp7F084A00 +/* 0B9560 7F0849F0 E44800F8 */ swc1 $f8, 0xf8($v0) +/* 0B9564 7F0849F4 44815000 */ mtc1 $at, $f10 +.Ljp7F0849F8: +/* 0B9568 7F0849F8 00000000 */ nop +/* 0B956C 7F0849FC E44A00F8 */ swc1 $f10, 0xf8($v0) +.Ljp7F084A00: +/* 0B9570 7F084A00 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F084A04: +/* 0B9574 7F084A04 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B9578 7F084A08 03E00008 */ jr $ra +/* 0B957C 7F084A0C 00000000 */ nop +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F084360(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F084360 +/* 0B8E90 7F084360 3C048008 */ lui $a0, %hi(dword_CODE_bss_800799A0) +/* 0B8E94 7F084364 248499A0 */ addiu $a0, %lo(dword_CODE_bss_800799A0) # addiu $a0, $a0, -0x6660 +/* 0B8E98 7F084368 8C8E0000 */ lw $t6, ($a0) +/* 0B8E9C 7F08436C 3C188003 */ lui $t8, %hi(D_80036444) +/* 0B8EA0 7F084370 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0B8EA4 7F084374 25CF0001 */ addiu $t7, $t6, 1 +/* 0B8EA8 7F084378 AC8F0000 */ sw $t7, ($a0) +/* 0B8EAC 7F08437C 8F186444 */ lw $t8, %lo(D_80036444)($t8) +/* 0B8EB0 7F084380 AFBF0024 */ sw $ra, 0x24($sp) +/* 0B8EB4 7F084384 3C198003 */ lui $t9, %hi(disable_player_pickups_flag) +/* 0B8EB8 7F084388 530000AC */ beql $t8, $zero, .L7F08463C +/* 0B8EBC 7F08438C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0B8EC0 7F084390 8F3964B4 */ lw $t9, %lo(disable_player_pickups_flag)($t9) +/* 0B8EC4 7F084394 3C088008 */ lui $t0, %hi(dword_CODE_bss_8007999C) +/* 0B8EC8 7F084398 3C098005 */ lui $t1, %hi(global_timer) +/* 0B8ECC 7F08439C 572000A7 */ bnezl $t9, .L7F08463C +/* 0B8ED0 7F0843A0 8FBF0024 */ lw $ra, 0x24($sp) +/* 0B8ED4 7F0843A4 8D08999C */ lw $t0, %lo(dword_CODE_bss_8007999C)($t0) +/* 0B8ED8 7F0843A8 8D29837C */ lw $t1, %lo(global_timer)($t1) +/* 0B8EDC 7F0843AC 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8EE0 7F0843B0 0109082A */ slt $at, $t0, $t1 +/* 0B8EE4 7F0843B4 502000A1 */ beql $at, $zero, .L7F08463C +/* 0B8EE8 7F0843B8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0B8EEC 7F0843BC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8EF0 7F0843C0 01E01825 */ move $v1, $t7 +/* 0B8EF4 7F0843C4 24010001 */ li $at, 1 +/* 0B8EF8 7F0843C8 8C4A00A8 */ lw $t2, 0xa8($v0) +/* 0B8EFC 7F0843CC C5440008 */ lwc1 $f4, 8($t2) +/* 0B8F00 7F0843D0 E7A40034 */ swc1 $f4, 0x34($sp) +/* 0B8F04 7F0843D4 8C4B00A8 */ lw $t3, 0xa8($v0) +/* 0B8F08 7F0843D8 C566000C */ lwc1 $f6, 0xc($t3) +/* 0B8F0C 7F0843DC E7A60038 */ swc1 $f6, 0x38($sp) +/* 0B8F10 7F0843E0 8C4C00A8 */ lw $t4, 0xa8($v0) +/* 0B8F14 7F0843E4 C5880010 */ lwc1 $f8, 0x10($t4) +/* 0B8F18 7F0843E8 E7A8003C */ swc1 $f8, 0x3c($sp) +/* 0B8F1C 7F0843EC 04610004 */ bgez $v1, .L7F084400 +/* 0B8F20 7F0843F0 306D0003 */ andi $t5, $v1, 3 +/* 0B8F24 7F0843F4 11A00002 */ beqz $t5, .L7F084400 +/* 0B8F28 7F0843F8 00000000 */ nop +/* 0B8F2C 7F0843FC 25ADFFFC */ addiu $t5, $t5, -4 +.L7F084400: +/* 0B8F30 7F084400 11A00009 */ beqz $t5, .L7F084428 +/* 0B8F34 7F084404 00000000 */ nop +/* 0B8F38 7F084408 11A1001D */ beq $t5, $at, .L7F084480 +/* 0B8F3C 7F08440C 24010002 */ li $at, 2 +/* 0B8F40 7F084410 11A10031 */ beq $t5, $at, .L7F0844D8 +/* 0B8F44 7F084414 24010003 */ li $at, 3 +/* 0B8F48 7F084418 11A10045 */ beq $t5, $at, .L7F084530 +/* 0B8F4C 7F08441C 00000000 */ nop +/* 0B8F50 7F084420 10000058 */ b .L7F084584 +/* 0B8F54 7F084424 00000000 */ nop +.L7F084428: +/* 0B8F58 7F084428 0C002914 */ jal get_random_value +/* 0B8F5C 7F08442C 00000000 */ nop +/* 0B8F60 7F084430 44825000 */ mtc1 $v0, $f10 +/* 0B8F64 7F084434 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0B8F68 7F084438 04410004 */ bgez $v0, .L7F08444C +/* 0B8F6C 7F08443C 46805420 */ cvt.s.w $f16, $f10 +/* 0B8F70 7F084440 44819000 */ mtc1 $at, $f18 +/* 0B8F74 7F084444 00000000 */ nop +/* 0B8F78 7F084448 46128400 */ add.s $f16, $f16, $f18 +.L7F08444C: +/* 0B8F7C 7F08444C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0B8F80 7F084450 44812000 */ mtc1 $at, $f4 +/* 0B8F84 7F084454 3C014316 */ li $at, 0x43160000 # 150.000000 +/* 0B8F88 7F084458 44814000 */ mtc1 $at, $f8 +/* 0B8F8C 7F08445C 46048182 */ mul.s $f6, $f16, $f4 +/* 0B8F90 7F084460 3C01437A */ li $at, 0x437A0000 # 250.000000 +/* 0B8F94 7F084464 44819000 */ mtc1 $at, $f18 +/* 0B8F98 7F084468 C7A40034 */ lwc1 $f4, 0x34($sp) +/* 0B8F9C 7F08446C 46064282 */ mul.s $f10, $f8, $f6 +/* 0B8FA0 7F084470 460A9400 */ add.s $f16, $f18, $f10 +/* 0B8FA4 7F084474 46102200 */ add.s $f8, $f4, $f16 +/* 0B8FA8 7F084478 10000042 */ b .L7F084584 +/* 0B8FAC 7F08447C E7A80034 */ swc1 $f8, 0x34($sp) +.L7F084480: +/* 0B8FB0 7F084480 0C002914 */ jal get_random_value +/* 0B8FB4 7F084484 00000000 */ nop +/* 0B8FB8 7F084488 44823000 */ mtc1 $v0, $f6 +/* 0B8FBC 7F08448C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0B8FC0 7F084490 04410004 */ bgez $v0, .L7F0844A4 +/* 0B8FC4 7F084494 468034A0 */ cvt.s.w $f18, $f6 +/* 0B8FC8 7F084498 44815000 */ mtc1 $at, $f10 +/* 0B8FCC 7F08449C 00000000 */ nop +/* 0B8FD0 7F0844A0 460A9480 */ add.s $f18, $f18, $f10 +.L7F0844A4: +/* 0B8FD4 7F0844A4 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0B8FD8 7F0844A8 44812000 */ mtc1 $at, $f4 +/* 0B8FDC 7F0844AC 3C014316 */ li $at, 0x43160000 # 150.000000 +/* 0B8FE0 7F0844B0 44814000 */ mtc1 $at, $f8 +/* 0B8FE4 7F0844B4 46049402 */ mul.s $f16, $f18, $f4 +/* 0B8FE8 7F0844B8 3C01437A */ li $at, 0x437A0000 # 250.000000 +/* 0B8FEC 7F0844BC 44815000 */ mtc1 $at, $f10 +/* 0B8FF0 7F0844C0 C7A40034 */ lwc1 $f4, 0x34($sp) +/* 0B8FF4 7F0844C4 46104182 */ mul.s $f6, $f8, $f16 +/* 0B8FF8 7F0844C8 46065480 */ add.s $f18, $f10, $f6 +/* 0B8FFC 7F0844CC 46122201 */ sub.s $f8, $f4, $f18 +/* 0B9000 7F0844D0 1000002C */ b .L7F084584 +/* 0B9004 7F0844D4 E7A80034 */ swc1 $f8, 0x34($sp) +.L7F0844D8: +/* 0B9008 7F0844D8 0C002914 */ jal get_random_value +/* 0B900C 7F0844DC 00000000 */ nop +/* 0B9010 7F0844E0 44828000 */ mtc1 $v0, $f16 +/* 0B9014 7F0844E4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0B9018 7F0844E8 04410004 */ bgez $v0, .L7F0844FC +/* 0B901C 7F0844EC 468082A0 */ cvt.s.w $f10, $f16 +/* 0B9020 7F0844F0 44813000 */ mtc1 $at, $f6 +/* 0B9024 7F0844F4 00000000 */ nop +/* 0B9028 7F0844F8 46065280 */ add.s $f10, $f10, $f6 +.L7F0844FC: +/* 0B902C 7F0844FC 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0B9030 7F084500 44812000 */ mtc1 $at, $f4 +/* 0B9034 7F084504 3C014316 */ li $at, 0x43160000 # 150.000000 +/* 0B9038 7F084508 44814000 */ mtc1 $at, $f8 +/* 0B903C 7F08450C 46045482 */ mul.s $f18, $f10, $f4 +/* 0B9040 7F084510 3C01437A */ li $at, 0x437A0000 # 250.000000 +/* 0B9044 7F084514 44813000 */ mtc1 $at, $f6 +/* 0B9048 7F084518 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0B904C 7F08451C 46124402 */ mul.s $f16, $f8, $f18 +/* 0B9050 7F084520 46103280 */ add.s $f10, $f6, $f16 +/* 0B9054 7F084524 460A2200 */ add.s $f8, $f4, $f10 +/* 0B9058 7F084528 10000016 */ b .L7F084584 +/* 0B905C 7F08452C E7A8003C */ swc1 $f8, 0x3c($sp) +.L7F084530: +/* 0B9060 7F084530 0C002914 */ jal get_random_value +/* 0B9064 7F084534 00000000 */ nop +/* 0B9068 7F084538 44829000 */ mtc1 $v0, $f18 +/* 0B906C 7F08453C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0B9070 7F084540 04410004 */ bgez $v0, .L7F084554 +/* 0B9074 7F084544 468091A0 */ cvt.s.w $f6, $f18 +/* 0B9078 7F084548 44818000 */ mtc1 $at, $f16 +/* 0B907C 7F08454C 00000000 */ nop +/* 0B9080 7F084550 46103180 */ add.s $f6, $f6, $f16 +.L7F084554: +/* 0B9084 7F084554 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0B9088 7F084558 44812000 */ mtc1 $at, $f4 +/* 0B908C 7F08455C 3C014316 */ li $at, 0x43160000 # 150.000000 +/* 0B9090 7F084560 44814000 */ mtc1 $at, $f8 +/* 0B9094 7F084564 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9098 7F084568 3C01437A */ li $at, 0x437A0000 # 250.000000 +/* 0B909C 7F08456C 44818000 */ mtc1 $at, $f16 +/* 0B90A0 7F084570 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0B90A4 7F084574 460A4482 */ mul.s $f18, $f8, $f10 +/* 0B90A8 7F084578 46128180 */ add.s $f6, $f16, $f18 +/* 0B90AC 7F08457C 46062201 */ sub.s $f8, $f4, $f6 +/* 0B90B0 7F084580 E7A8003C */ swc1 $f8, 0x3c($sp) +.L7F084584: +/* 0B90B4 7F084584 0C002914 */ jal get_random_value +/* 0B90B8 7F084588 00000000 */ nop +/* 0B90BC 7F08458C 44825000 */ mtc1 $v0, $f10 +/* 0B90C0 7F084590 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0B90C4 7F084594 04410004 */ bgez $v0, .L7F0845A8 +/* 0B90C8 7F084598 46805420 */ cvt.s.w $f16, $f10 +/* 0B90CC 7F08459C 44819000 */ mtc1 $at, $f18 +/* 0B90D0 7F0845A0 00000000 */ nop +/* 0B90D4 7F0845A4 46128400 */ add.s $f16, $f16, $f18 +.L7F0845A8: +/* 0B90D8 7F0845A8 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0B90DC 7F0845AC 44812000 */ mtc1 $at, $f4 +/* 0B90E0 7F0845B0 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 0B90E4 7F0845B4 44814000 */ mtc1 $at, $f8 +/* 0B90E8 7F0845B8 46048182 */ mul.s $f6, $f16, $f4 +/* 0B90EC 7F0845BC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0B90F0 7F0845C0 44819000 */ mtc1 $at, $f18 +/* 0B90F4 7F0845C4 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0B90F8 7F0845C8 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B90FC 7F0845CC 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B9100 7F0845D0 00002025 */ move $a0, $zero +/* 0B9104 7F0845D4 46064282 */ mul.s $f10, $f8, $f6 +/* 0B9108 7F0845D8 27A50034 */ addiu $a1, $sp, 0x34 +/* 0B910C 7F0845DC 24070012 */ li $a3, 18 +/* 0B9110 7F0845E0 46125401 */ sub.s $f16, $f10, $f18 +/* 0B9114 7F0845E4 46102200 */ add.s $f8, $f4, $f16 +/* 0B9118 7F0845E8 E7A80038 */ swc1 $f8, 0x38($sp) +/* 0B911C 7F0845EC 8DC300A8 */ lw $v1, 0xa8($t6) +/* 0B9120 7F0845F0 8C660014 */ lw $a2, 0x14($v1) +/* 0B9124 7F0845F4 246F002C */ addiu $t7, $v1, 0x2c +/* 0B9128 7F0845F8 AFAF0018 */ sw $t7, 0x18($sp) +/* 0B912C 7F0845FC AFA0001C */ sw $zero, 0x1c($sp) +/* 0B9130 7F084600 AFA00014 */ sw $zero, 0x14($sp) +/* 0B9134 7F084604 0FC27094 */ jal sub_GAME_7F09C250 +/* 0B9138 7F084608 AFA00010 */ sw $zero, 0x10($sp) +/* 0B913C 7F08460C 0C002914 */ jal get_random_value +/* 0B9140 7F084610 00000000 */ nop +/* 0B9144 7F084614 2401000F */ li $at, 15 +/* 0B9148 7F084618 0041001B */ divu $zero, $v0, $at +/* 0B914C 7F08461C 3C198005 */ lui $t9, %hi(global_timer) +/* 0B9150 7F084620 8F39837C */ lw $t9, %lo(global_timer)($t9) +/* 0B9154 7F084624 0000C010 */ mfhi $t8 +/* 0B9158 7F084628 3C018008 */ lui $at, %hi(dword_CODE_bss_8007999C) +/* 0B915C 7F08462C 03194021 */ addu $t0, $t8, $t9 +/* 0B9160 7F084630 2509000F */ addiu $t1, $t0, 0xf +/* 0B9164 7F084634 AC29999C */ sw $t1, %lo(dword_CODE_bss_8007999C)($at) +/* 0B9168 7F084638 8FBF0024 */ lw $ra, 0x24($sp) +.L7F08463C: +/* 0B916C 7F08463C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0B9170 7F084640 03E00008 */ jr $ra +/* 0B9174 7F084644 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void MoveBond(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_8005516C +.word 0x3d888889 /*0.06666667*/ +glabel D_80055170 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055174 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055178 +.word 0x3f8147ae /*1.01*/ +glabel D_8005517C +.word 0x3f8147ae /*1.01*/ +glabel D_80055180 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055184 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055188 +.word 0x40490fdb /*3.1415927*/ +glabel D_8005518C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055190 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80055194 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055198 +.word 0x3f6b851f /*0.92000002*/ +glabel D_8005519C +.word 0x3da3d708 /*0.079999983*/ +glabel D_800551A0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551A4 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551A8 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551AC +.word 0x3da3d708 /*0.079999983*/ +glabel D_800551B0 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551B4 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551B8 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551BC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551C0 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551C4 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551C8 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551CC +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551D0 +.word 0x3da3d708 /*0.079999983*/ +glabel D_800551D4 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_800551D8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551DC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551E0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551E4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551E8 +.word 0x3e99999a /*0.30000001*/ +glabel D_800551EC +.word 0x3e19999a /*0.15000001*/ +glabel D_800551F0 +.word 0x469c4000 /*20000.0*/ +glabel D_800551F4 +.word 0x3f666666 /*0.89999998*/ +glabel D_800551F8 +.word 0x46477c00 /*12767.0*/ +glabel D_800551FC +.word 0x469c4000 /*20000.0*/ +glabel D_80055200 +.word 0x3f666666 /*0.89999998*/ +glabel D_80055204 +.word 0x45f2b800 /*7767.0*/ +glabel D_80055208 +.word 0x3f666666 /*0.89999998*/ +glabel D_8005520C +.word 0x46c35000 /*25000.0;*/ +glabel D_80055210 +.word 0x3e32b8c3 /*0.17453294*/ +glabel D_80055214 +.word 0x3edf66f3 /*0.43633232*/ +glabel D_80055218 +.word 0xbdb2b8c3 /*-0.087266468*/ +glabel D_8005521C +.word 0x3f70a3d7 /*0.94*/ +glabel D_80055220 +.word 0x3d75c290 /*0.060000002*/ +glabel D_80055224 +.word 0x4528c000 /*2700.0*/ +glabel D_80055228 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005522C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055230 +.word 0x3f19999a /*0.60000002*/ +glabel D_80055234 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80055238 +.word 0x3dcccccd /*0.1*/ +glabel D_8005523C +.word 0x4528c000 /*2700.0*/ +glabel D_80055240 +.word 0x3f947ae1 /*1.16*/ +glabel D_80055244 +.word 0x3f8147ae /*1.01*/ +glabel D_80055248 +.word 0x3f7d7721 /*0.99009901*/ +glabel D_8005524C +.word 0x3f333333 /*0.69999999*/ +glabel D_80055250 +.word 0x3f99999a /*1.2*/ +glabel D_80055254 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055258 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005525C +.word 0x3f547ae1 /*0.82999998*/ +glabel D_80055260 +.word 0x3e2e147c /*0.17000002*/ +.text +glabel MoveBond +/* 0B9178 7F084648 27BDFC48 */ addiu $sp, $sp, -0x3b8 +/* 0B917C 7F08464C 3C0E8003 */ lui $t6, %hi(D_800367F4) +/* 0B9180 7F084650 AFBF002C */ sw $ra, 0x2c($sp) +/* 0B9184 7F084654 AFB10028 */ sw $s1, 0x28($sp) +/* 0B9188 7F084658 AFB00024 */ sw $s0, 0x24($sp) +/* 0B918C 7F08465C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0B9190 7F084660 AFA403B8 */ sw $a0, 0x3b8($sp) +/* 0B9194 7F084664 AFA503BC */ sw $a1, 0x3bc($sp) +/* 0B9198 7F084668 AFA603C0 */ sw $a2, 0x3c0($sp) +/* 0B919C 7F08466C AFA703C4 */ sw $a3, 0x3c4($sp) +/* 0B91A0 7F084670 25CE67F4 */ addiu $t6, %lo(D_800367F4) # addiu $t6, $t6, 0x67f4 +/* 0B91A4 7F084674 8DC10000 */ lw $at, ($t6) +/* 0B91A8 7F084678 27AD03AC */ addiu $t5, $sp, 0x3ac +/* 0B91AC 7F08467C 8DCF0004 */ lw $t7, 4($t6) +/* 0B91B0 7F084680 ADA10000 */ sw $at, ($t5) +/* 0B91B4 7F084684 8DC10008 */ lw $at, 8($t6) +/* 0B91B8 7F084688 4480A000 */ mtc1 $zero, $f20 +/* 0B91BC 7F08468C 00048600 */ sll $s0, $a0, 0x18 +/* 0B91C0 7F084690 ADA10008 */ sw $at, 8($t5) +/* 0B91C4 7F084694 00106603 */ sra $t4, $s0, 0x18 +/* 0B91C8 7F084698 ADAF0004 */ sw $t7, 4($t5) +/* 0B91CC 7F08469C 29810064 */ slti $at, $t4, 0x64 +/* 0B91D0 7F0846A0 01808025 */ move $s0, $t4 +/* 0B91D4 7F0846A4 AFA00394 */ sw $zero, 0x394($sp) +/* 0B91D8 7F0846A8 E7B40398 */ swc1 $f20, 0x398($sp) +/* 0B91DC 7F0846AC 10200004 */ beqz $at, .L7F0846C0 +/* 0B91E0 7F0846B0 E7B40390 */ swc1 $f20, 0x390($sp) +/* 0B91E4 7F0846B4 2981FF9D */ slti $at, $t4, -0x63 +/* 0B91E8 7F0846B8 50200004 */ beql $at, $zero, .L7F0846CC +/* 0B91EC 7F0846BC 83AB03BF */ lb $t3, 0x3bf($sp) +.L7F0846C0: +/* 0B91F0 7F0846C0 0FC1B11B */ jal return_null +/* 0B91F4 7F0846C4 00000000 */ nop +/* 0B91F8 7F0846C8 83AB03BF */ lb $t3, 0x3bf($sp) +.L7F0846CC: +/* 0B91FC 7F0846CC 29610064 */ slti $at, $t3, 0x64 +/* 0B9200 7F0846D0 10200003 */ beqz $at, .L7F0846E0 +/* 0B9204 7F0846D4 2961FF9D */ slti $at, $t3, -0x63 +/* 0B9208 7F0846D8 10200003 */ beqz $at, .L7F0846E8 +/* 0B920C 7F0846DC 00000000 */ nop +.L7F0846E0: +/* 0B9210 7F0846E0 0FC1B11B */ jal return_null +/* 0B9214 7F0846E4 00000000 */ nop +.L7F0846E8: +/* 0B9218 7F0846E8 3C038003 */ lui $v1, %hi(camera_80036424) +/* 0B921C 7F0846EC 24636424 */ addiu $v1, %lo(camera_80036424) # addiu $v1, $v1, 0x6424 +/* 0B9220 7F0846F0 8C620000 */ lw $v0, ($v1) +/* 0B9224 7F0846F4 18400015 */ blez $v0, .L7F08474C +/* 0B9228 7F0846F8 24580001 */ addiu $t8, $v0, 1 +/* 0B922C 7F0846FC 2B010004 */ slti $at, $t8, 4 +/* 0B9230 7F084700 14200012 */ bnez $at, .L7F08474C +/* 0B9234 7F084704 AC780000 */ sw $t8, ($v1) +/* 0B9238 7F084708 3C118008 */ lui $s1, %hi(pPlayer) +/* 0B923C 7F08470C 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 0B9240 7F084710 8E390000 */ lw $t9, ($s1) +/* 0B9244 7F084714 AC600000 */ sw $zero, ($v1) +/* 0B9248 7F084718 24040001 */ li $a0, 1 +/* 0B924C 7F08471C AF202A54 */ sw $zero, 0x2a54($t9) +/* 0B9250 7F084720 8E2A0000 */ lw $t2, ($s1) +/* 0B9254 7F084724 0FC17674 */ jal get_item_in_hand +/* 0B9258 7F084728 AD402A50 */ sw $zero, 0x2a50($t2) +/* 0B925C 7F08472C 24040001 */ li $a0, 1 +/* 0B9260 7F084730 0FC176D5 */ jal remove_hands_item +/* 0B9264 7F084734 00402825 */ move $a1, $v0 +/* 0B9268 7F084738 0FC17674 */ jal get_item_in_hand +/* 0B926C 7F08473C 00002025 */ move $a0, $zero +/* 0B9270 7F084740 00002025 */ move $a0, $zero +/* 0B9274 7F084744 0FC176D5 */ jal remove_hands_item +/* 0B9278 7F084748 00402825 */ move $a1, $v0 +.L7F08474C: +/* 0B927C 7F08474C 3C118008 */ lui $s1, %hi(pPlayer) +/* 0B9280 7F084750 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 0B9284 7F084754 0FC1E694 */ jal setptrBONDdata +/* 0B9288 7F084758 00002025 */ move $a0, $zero +/* 0B928C 7F08475C 0FC20FF2 */ jal sub_GAME_7F083FC8 +/* 0B9290 7F084760 00000000 */ nop +/* 0B9294 7F084764 0FC210D8 */ jal sub_GAME_7F084360 +/* 0B9298 7F084768 00000000 */ nop +/* 0B929C 7F08476C 00102600 */ sll $a0, $s0, 0x18 +/* 0B92A0 7F084770 00046E03 */ sra $t5, $a0, 0x18 +/* 0B92A4 7F084774 01A02025 */ move $a0, $t5 +/* 0B92A8 7F084778 83A503BF */ lb $a1, 0x3bf($sp) +/* 0B92AC 7F08477C 97A603C2 */ lhu $a2, 0x3c2($sp) +/* 0B92B0 7F084780 0FC2065D */ jal controller_gameplay_interaction +/* 0B92B4 7F084784 97A703C6 */ lhu $a3, 0x3c6($sp) +/* 0B92B8 7F084788 0FC2FF01 */ jal get_controls_locked_flag +/* 0B92BC 7F08478C 00000000 */ nop +/* 0B92C0 7F084790 50400004 */ beql $v0, $zero, .L7F0847A4 +/* 0B92C4 7F084794 8E2E0000 */ lw $t6, ($s1) +/* 0B92C8 7F084798 0FC1FABC */ jal sub_GAME_7F07EAF0 +/* 0B92CC 7F08479C 00000000 */ nop +/* 0B92D0 7F0847A0 8E2E0000 */ lw $t6, ($s1) +.L7F0847A4: +/* 0B92D4 7F0847A4 8DCF01C8 */ lw $t7, 0x1c8($t6) +/* 0B92D8 7F0847A8 11E00003 */ beqz $t7, .L7F0847B8 +/* 0B92DC 7F0847AC 00000000 */ nop +/* 0B92E0 7F0847B0 0FC1FB15 */ jal sub_GAME_7F07EC54 +/* 0B92E4 7F0847B4 00000000 */ nop +.L7F0847B8: +/* 0B92E8 7F0847B8 3C0B8003 */ lui $t3, %hi(in_tank_flag) +/* 0B92EC 7F0847BC 8D6B6448 */ lw $t3, %lo(in_tank_flag)($t3) +/* 0B92F0 7F0847C0 1560006E */ bnez $t3, .L7F08497C +/* 0B92F4 7F0847C4 00000000 */ nop +/* 0B92F8 7F0847C8 0FC1E67C */ jal sub_GAME_7F0799F0 +/* 0B92FC 7F0847CC 00000000 */ nop +/* 0B9300 7F0847D0 5440000D */ bnezl $v0, .L7F084808 +/* 0B9304 7F0847D4 8E280000 */ lw $t0, ($s1) +/* 0B9308 7F0847D8 8E280000 */ lw $t0, ($s1) +/* 0B930C 7F0847DC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B9310 7F0847E0 44815000 */ mtc1 $at, $f10 +/* 0B9314 7F0847E4 C5040174 */ lwc1 $f4, 0x174($t0) +/* 0B9318 7F0847E8 460A2182 */ mul.s $f6, $f4, $f10 +/* 0B931C 7F0847EC 44812000 */ mtc1 $at, $f4 +/* 0B9320 7F0847F0 E5060174 */ swc1 $f6, 0x174($t0) +/* 0B9324 7F0847F4 8E280000 */ lw $t0, ($s1) +/* 0B9328 7F0847F8 C508016C */ lwc1 $f8, 0x16c($t0) +/* 0B932C 7F0847FC 46044282 */ mul.s $f10, $f8, $f4 +/* 0B9330 7F084800 E50A016C */ swc1 $f10, 0x16c($t0) +/* 0B9334 7F084804 8E280000 */ lw $t0, ($s1) +.L7F084808: +/* 0B9338 7F084808 C5120180 */ lwc1 $f18, 0x180($t0) +/* 0B933C 7F08480C 4612A032 */ c.eq.s $f20, $f18 +/* 0B9340 7F084810 00000000 */ nop +/* 0B9344 7F084814 45020007 */ bc1fl .L7F084834 +/* 0B9348 7F084818 C5000188 */ lwc1 $f0, 0x188($t0) +/* 0B934C 7F08481C C5060188 */ lwc1 $f6, 0x188($t0) +/* 0B9350 7F084820 4606A032 */ c.eq.s $f20, $f6 +/* 0B9354 7F084824 00000000 */ nop +/* 0B9358 7F084828 45010054 */ bc1t .L7F08497C +/* 0B935C 7F08482C 00000000 */ nop +/* 0B9360 7F084830 C5000188 */ lwc1 $f0, 0x188($t0) +.L7F084834: +/* 0B9364 7F084834 C5020150 */ lwc1 $f2, 0x150($t0) +/* 0B9368 7F084838 C5100154 */ lwc1 $f16, 0x154($t0) +/* 0B936C 7F08483C 46009387 */ neg.s $f14, $f18 +/* 0B9370 7F084840 46020202 */ mul.s $f8, $f0, $f2 +/* 0B9374 7F084844 00000000 */ nop +/* 0B9378 7F084848 46107102 */ mul.s $f4, $f14, $f16 +/* 0B937C 7F08484C 46044280 */ add.s $f10, $f8, $f4 +/* 0B9380 7F084850 46027182 */ mul.s $f6, $f14, $f2 +/* 0B9384 7F084854 00000000 */ nop +/* 0B9388 7F084858 46100202 */ mul.s $f8, $f0, $f16 +/* 0B938C 7F08485C E7AA038C */ swc1 $f10, 0x38c($sp) +/* 0B9390 7F084860 46000282 */ mul.s $f10, $f0, $f0 +/* 0B9394 7F084864 46083101 */ sub.s $f4, $f6, $f8 +/* 0B9398 7F084868 46129182 */ mul.s $f6, $f18, $f18 +/* 0B939C 7F08486C E7A40388 */ swc1 $f4, 0x388($sp) +/* 0B93A0 7F084870 0C007DF8 */ jal sqrtf +/* 0B93A4 7F084874 46065300 */ add.s $f12, $f10, $f6 +/* 0B93A8 7F084878 8E280000 */ lw $t0, ($s1) +/* 0B93AC 7F08487C C7A4038C */ lwc1 $f4, 0x38c($sp) +/* 0B93B0 7F084880 3C018005 */ lui $at, %hi(D_8005516C) +/* 0B93B4 7F084884 C5080174 */ lwc1 $f8, 0x174($t0) +/* 0B93B8 7F084888 3C098005 */ lui $t1, %hi(global_timer_delta) +/* 0B93BC 7F08488C 25298378 */ addiu $t1, %lo(global_timer_delta) # addiu $t1, $t1, -0x7c88 +/* 0B93C0 7F084890 46044280 */ add.s $f10, $f8, $f4 +/* 0B93C4 7F084894 00001825 */ move $v1, $zero +/* 0B93C8 7F084898 2404000C */ li $a0, 12 +/* 0B93CC 7F08489C E50A0174 */ swc1 $f10, 0x174($t0) +/* 0B93D0 7F0848A0 8E280000 */ lw $t0, ($s1) +/* 0B93D4 7F0848A4 C7A80388 */ lwc1 $f8, 0x388($sp) +/* 0B93D8 7F0848A8 C506016C */ lwc1 $f6, 0x16c($t0) +/* 0B93DC 7F0848AC 46083100 */ add.s $f4, $f6, $f8 +/* 0B93E0 7F0848B0 E504016C */ swc1 $f4, 0x16c($t0) +/* 0B93E4 7F0848B4 C42C516C */ lwc1 $f12, %lo(D_8005516C)($at) +/* 0B93E8 7F0848B8 8E380000 */ lw $t8, ($s1) +.L7F0848BC: +/* 0B93EC 7F0848BC 03031021 */ addu $v0, $t8, $v1 +/* 0B93F0 7F0848C0 C4420180 */ lwc1 $f2, 0x180($v0) +/* 0B93F4 7F0848C4 4602A032 */ c.eq.s $f20, $f2 +/* 0B93F8 7F0848C8 00000000 */ nop +/* 0B93FC 7F0848CC 45030029 */ bc1tl .L7F084974 +/* 0B9400 7F0848D0 24630004 */ addiu $v1, $v1, 4 +/* 0B9404 7F0848D4 4602A03C */ c.lt.s $f20, $f2 +/* 0B9408 7F0848D8 00000000 */ nop +/* 0B940C 7F0848DC 45020012 */ bc1fl .L7F084928 +/* 0B9410 7F0848E0 4614103C */ c.lt.s $f2, $f20 +/* 0B9414 7F0848E4 C52A0000 */ lwc1 $f10, ($t1) +/* 0B9418 7F0848E8 460A6182 */ mul.s $f6, $f12, $f10 +/* 0B941C 7F0848EC 00000000 */ nop +/* 0B9420 7F0848F0 46023202 */ mul.s $f8, $f6, $f2 +/* 0B9424 7F0848F4 46004103 */ div.s $f4, $f8, $f0 +/* 0B9428 7F0848F8 46041281 */ sub.s $f10, $f2, $f4 +/* 0B942C 7F0848FC E44A0180 */ swc1 $f10, 0x180($v0) +/* 0B9430 7F084900 8E2C0000 */ lw $t4, ($s1) +/* 0B9434 7F084904 01831021 */ addu $v0, $t4, $v1 +/* 0B9438 7F084908 C4460180 */ lwc1 $f6, 0x180($v0) +/* 0B943C 7F08490C 4614303C */ c.lt.s $f6, $f20 +/* 0B9440 7F084910 00000000 */ nop +/* 0B9444 7F084914 45000016 */ bc1f .L7F084970 +/* 0B9448 7F084918 00000000 */ nop +/* 0B944C 7F08491C 10000014 */ b .L7F084970 +/* 0B9450 7F084920 E4540180 */ swc1 $f20, 0x180($v0) +/* 0B9454 7F084924 4614103C */ c.lt.s $f2, $f20 +.L7F084928: +/* 0B9458 7F084928 00000000 */ nop +/* 0B945C 7F08492C 45020011 */ bc1fl .L7F084974 +/* 0B9460 7F084930 24630004 */ addiu $v1, $v1, 4 +/* 0B9464 7F084934 C5280000 */ lwc1 $f8, ($t1) +/* 0B9468 7F084938 46086102 */ mul.s $f4, $f12, $f8 +/* 0B946C 7F08493C 00000000 */ nop +/* 0B9470 7F084940 46022282 */ mul.s $f10, $f4, $f2 +/* 0B9474 7F084944 46005183 */ div.s $f6, $f10, $f0 +/* 0B9478 7F084948 46061201 */ sub.s $f8, $f2, $f6 +/* 0B947C 7F08494C E4480180 */ swc1 $f8, 0x180($v0) +/* 0B9480 7F084950 8E390000 */ lw $t9, ($s1) +/* 0B9484 7F084954 03231021 */ addu $v0, $t9, $v1 +/* 0B9488 7F084958 C4440180 */ lwc1 $f4, 0x180($v0) +/* 0B948C 7F08495C 4604A03C */ c.lt.s $f20, $f4 +/* 0B9490 7F084960 00000000 */ nop +/* 0B9494 7F084964 45000002 */ bc1f .L7F084970 +/* 0B9498 7F084968 00000000 */ nop +/* 0B949C 7F08496C E4540180 */ swc1 $f20, 0x180($v0) +.L7F084970: +/* 0B94A0 7F084970 24630004 */ addiu $v1, $v1, 4 +.L7F084974: +/* 0B94A4 7F084974 5464FFD1 */ bnel $v1, $a0, .L7F0848BC +/* 0B94A8 7F084978 8E380000 */ lw $t8, ($s1) +.L7F08497C: +/* 0B94AC 7F08497C 3C0A8003 */ lui $t2, %hi(in_tank_flag) +/* 0B94B0 7F084980 8D4A6448 */ lw $t2, %lo(in_tank_flag)($t2) +/* 0B94B4 7F084984 3C098005 */ lui $t1, %hi(global_timer_delta) +/* 0B94B8 7F084988 24010001 */ li $at, 1 +/* 0B94BC 7F08498C 25298378 */ addiu $t1, %lo(global_timer_delta) # addiu $t1, $t1, -0x7c88 +/* 0B94C0 7F084990 15410211 */ bne $t2, $at, .L7F0851D8 +/* 0B94C4 7F084994 8E280000 */ lw $t0, ($s1) +/* 0B94C8 7F084998 C50A014C */ lwc1 $f10, 0x14c($t0) +/* 0B94CC 7F08499C C5260000 */ lwc1 $f6, ($t1) +/* 0B94D0 7F0849A0 3C018005 */ lui $at, %hi(D_80055170) +/* 0B94D4 7F0849A4 C42C5170 */ lwc1 $f12, %lo(D_80055170)($at) +/* 0B94D8 7F0849A8 46065202 */ mul.s $f8, $f10, $f6 +/* 0B94DC 7F0849AC 3C018005 */ lui $at, %hi(D_80055174) +/* 0B94E0 7F0849B0 C4245174 */ lwc1 $f4, %lo(D_80055174)($at) +/* 0B94E4 7F0849B4 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B94E8 7F0849B8 44813000 */ mtc1 $at, $f6 +/* 0B94EC 7F0849BC 3C018003 */ lui $at, %hi(D_80036464) +/* 0B94F0 7F0849C0 27B00374 */ addiu $s0, $sp, 0x374 +/* 0B94F4 7F0849C4 46044282 */ mul.s $f10, $f8, $f4 +/* 0B94F8 7F0849C8 C4286464 */ lwc1 $f8, %lo(D_80036464)($at) +/* 0B94FC 7F0849CC 02003825 */ move $a3, $s0 +/* 0B9500 7F0849D0 2504048C */ addiu $a0, $t0, 0x48c +/* 0B9504 7F0849D4 27AD0368 */ addiu $t5, $sp, 0x368 +/* 0B9508 7F0849D8 46065082 */ mul.s $f2, $f10, $f6 +/* 0B950C 7F0849DC 46024000 */ add.s $f0, $f8, $f2 +/* 0B9510 7F0849E0 4600603E */ c.le.s $f12, $f0 +/* 0B9514 7F0849E4 00000000 */ nop +/* 0B9518 7F0849E8 45020003 */ bc1fl .L7F0849F8 +/* 0B951C 7F0849EC 4614003C */ c.lt.s $f0, $f20 +/* 0B9520 7F0849F0 460C0001 */ sub.s $f0, $f0, $f12 +/* 0B9524 7F0849F4 4614003C */ c.lt.s $f0, $f20 +.L7F0849F8: +/* 0B9528 7F0849F8 00000000 */ nop +/* 0B952C 7F0849FC 45020003 */ bc1fl .L7F084A0C +/* 0B9530 7F084A00 8D050488 */ lw $a1, 0x488($t0) +/* 0B9534 7F084A04 460C0000 */ add.s $f0, $f0, $f12 +/* 0B9538 7F084A08 8D050488 */ lw $a1, 0x488($t0) +.L7F084A0C: +/* 0B953C 7F084A0C 44060000 */ mfc1 $a2, $f0 +/* 0B9540 7F084A10 E7A20358 */ swc1 $f2, 0x358($sp) +/* 0B9544 7F084A14 E7A0035C */ swc1 $f0, 0x35c($sp) +/* 0B9548 7F084A18 0FC1F2B2 */ jal sub_GAME_7F07CAC8 +/* 0B954C 7F084A1C AFAD0010 */ sw $t5, 0x10($sp) +/* 0B9550 7F084A20 50400007 */ beql $v0, $zero, .L7F084A40 +/* 0B9554 7F084A24 3C01BF80 */ lui $at, 0xbf80 +/* 0B9558 7F084A28 C7A4035C */ lwc1 $f4, 0x35c($sp) +/* 0B955C 7F084A2C 3C018003 */ lui $at, %hi(D_80036464) +/* 0B9560 7F084A30 E4246464 */ swc1 $f4, %lo(D_80036464)($at) +/* 0B9564 7F084A34 100000CB */ b .L7F084D64 +/* 0B9568 7F084A38 8E280000 */ lw $t0, ($s1) +/* 0B956C 7F084A3C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.L7F084A40: +/* 0B9570 7F084A40 44815000 */ mtc1 $at, $f10 +/* 0B9574 7F084A44 44813000 */ mtc1 $at, $f6 +/* 0B9578 7F084A48 27A40348 */ addiu $a0, $sp, 0x348 +/* 0B957C 7F084A4C 27A5033C */ addiu $a1, $sp, 0x33c +/* 0B9580 7F084A50 E7AA031C */ swc1 $f10, 0x31c($sp) +/* 0B9584 7F084A54 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 0B9588 7F084A58 E7A60304 */ swc1 $f6, 0x304($sp) +/* 0B958C 7F084A5C C7A8033C */ lwc1 $f8, 0x33c($sp) +/* 0B9590 7F084A60 C7A40348 */ lwc1 $f4, 0x348($sp) +/* 0B9594 7F084A64 C7AA0344 */ lwc1 $f10, 0x344($sp) +/* 0B9598 7F084A68 C7A60350 */ lwc1 $f6, 0x350($sp) +/* 0B959C 7F084A6C 46044081 */ sub.s $f2, $f8, $f4 +/* 0B95A0 7F084A70 46065381 */ sub.s $f14, $f10, $f6 +/* 0B95A4 7F084A74 46021202 */ mul.s $f8, $f2, $f2 +/* 0B95A8 7F084A78 E7A20338 */ swc1 $f2, 0x338($sp) +/* 0B95AC 7F084A7C 460E7102 */ mul.s $f4, $f14, $f14 +/* 0B95B0 7F084A80 E7AE0334 */ swc1 $f14, 0x334($sp) +/* 0B95B4 7F084A84 0C007DF8 */ jal sqrtf +/* 0B95B8 7F084A88 46044300 */ add.s $f12, $f8, $f4 +/* 0B95BC 7F084A8C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B95C0 7F084A90 44815000 */ mtc1 $at, $f10 +/* 0B95C4 7F084A94 C7A20338 */ lwc1 $f2, 0x338($sp) +/* 0B95C8 7F084A98 C7AE0334 */ lwc1 $f14, 0x334($sp) +/* 0B95CC 7F084A9C 46005403 */ div.s $f16, $f10, $f0 +/* 0B95D0 7F084AA0 8E280000 */ lw $t0, ($s1) +/* 0B95D4 7F084AA4 C7AA0370 */ lwc1 $f10, 0x370($sp) +/* 0B95D8 7F084AA8 46101082 */ mul.s $f2, $f2, $f16 +/* 0B95DC 7F084AAC 00000000 */ nop +/* 0B95E0 7F084AB0 46107382 */ mul.s $f14, $f14, $f16 +/* 0B95E4 7F084AB4 46001307 */ neg.s $f12, $f2 +/* 0B95E8 7F084AB8 E7AC0320 */ swc1 $f12, 0x320($sp) +/* 0B95EC 7F084ABC E7AE0324 */ swc1 $f14, 0x324($sp) +/* 0B95F0 7F084AC0 C5060494 */ lwc1 $f6, 0x494($t0) +/* 0B95F4 7F084AC4 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0B95F8 7F084AC8 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 0B95FC 7F084ACC C508048C */ lwc1 $f8, 0x48c($t0) +/* 0B9600 7F084AD0 460A2181 */ sub.s $f6, $f4, $f10 +/* 0B9604 7F084AD4 E7A80044 */ swc1 $f8, 0x44($sp) +/* 0B9608 7F084AD8 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B960C 7F084ADC C7AA0368 */ lwc1 $f10, 0x368($sp) +/* 0B9610 7F084AE0 460C3202 */ mul.s $f8, $f6, $f12 +/* 0B9614 7F084AE4 460A2181 */ sub.s $f6, $f4, $f10 +/* 0B9618 7F084AE8 460E3102 */ mul.s $f4, $f6, $f14 +/* 0B961C 7F084AEC 46044480 */ add.s $f18, $f8, $f4 +/* 0B9620 7F084AF0 4614903C */ c.lt.s $f18, $f20 +/* 0B9624 7F084AF4 00000000 */ nop +/* 0B9628 7F084AF8 45000006 */ bc1f .L7F084B14 +/* 0B962C 7F084AFC 00000000 */ nop +/* 0B9630 7F084B00 46007287 */ neg.s $f10, $f14 +/* 0B9634 7F084B04 46006187 */ neg.s $f6, $f12 +/* 0B9638 7F084B08 46009487 */ neg.s $f18, $f18 +/* 0B963C 7F084B0C E7AA0324 */ swc1 $f10, 0x324($sp) +/* 0B9640 7F084B10 E7A60320 */ swc1 $f6, 0x320($sp) +.L7F084B14: +/* 0B9644 7F084B14 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0B9648 7F084B18 C7A40350 */ lwc1 $f4, 0x350($sp) +/* 0B964C 7F084B1C C7A60320 */ lwc1 $f6, 0x320($sp) +/* 0B9650 7F084B20 46044281 */ sub.s $f10, $f8, $f4 +/* 0B9654 7F084B24 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B9658 7F084B28 46065202 */ mul.s $f8, $f10, $f6 +/* 0B965C 7F084B2C C7AA0348 */ lwc1 $f10, 0x348($sp) +/* 0B9660 7F084B30 460A2181 */ sub.s $f6, $f4, $f10 +/* 0B9664 7F084B34 C7A40324 */ lwc1 $f4, 0x324($sp) +/* 0B9668 7F084B38 46043282 */ mul.s $f10, $f6, $f4 +/* 0B966C 7F084B3C 460A4000 */ add.s $f0, $f8, $f10 +/* 0B9670 7F084B40 4612003C */ c.lt.s $f0, $f18 +/* 0B9674 7F084B44 00000000 */ nop +/* 0B9678 7F084B48 45020004 */ bc1fl .L7F084B5C +/* 0B967C 7F084B4C C7A40368 */ lwc1 $f4, 0x368($sp) +/* 0B9680 7F084B50 46009181 */ sub.s $f6, $f18, $f0 +/* 0B9684 7F084B54 E7A6031C */ swc1 $f6, 0x31c($sp) +/* 0B9688 7F084B58 C7A40368 */ lwc1 $f4, 0x368($sp) +.L7F084B5C: +/* 0B968C 7F084B5C C7A80374 */ lwc1 $f8, 0x374($sp) +/* 0B9690 7F084B60 C7AA0370 */ lwc1 $f10, 0x370($sp) +/* 0B9694 7F084B64 C7A6037C */ lwc1 $f6, 0x37c($sp) +/* 0B9698 7F084B68 46082081 */ sub.s $f2, $f4, $f8 +/* 0B969C 7F084B6C 46065381 */ sub.s $f14, $f10, $f6 +/* 0B96A0 7F084B70 46021102 */ mul.s $f4, $f2, $f2 +/* 0B96A4 7F084B74 E7A20338 */ swc1 $f2, 0x338($sp) +/* 0B96A8 7F084B78 460E7202 */ mul.s $f8, $f14, $f14 +/* 0B96AC 7F084B7C E7AE0334 */ swc1 $f14, 0x334($sp) +/* 0B96B0 7F084B80 0C007DF8 */ jal sqrtf +/* 0B96B4 7F084B84 46082300 */ add.s $f12, $f4, $f8 +/* 0B96B8 7F084B88 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B96BC 7F084B8C 44815000 */ mtc1 $at, $f10 +/* 0B96C0 7F084B90 C7A20338 */ lwc1 $f2, 0x338($sp) +/* 0B96C4 7F084B94 C7AE0334 */ lwc1 $f14, 0x334($sp) +/* 0B96C8 7F084B98 46005403 */ div.s $f16, $f10, $f0 +/* 0B96CC 7F084B9C 8E280000 */ lw $t0, ($s1) +/* 0B96D0 7F084BA0 C7AA0370 */ lwc1 $f10, 0x370($sp) +/* 0B96D4 7F084BA4 46101082 */ mul.s $f2, $f2, $f16 +/* 0B96D8 7F084BA8 00000000 */ nop +/* 0B96DC 7F084BAC 46107382 */ mul.s $f14, $f14, $f16 +/* 0B96E0 7F084BB0 46001307 */ neg.s $f12, $f2 +/* 0B96E4 7F084BB4 E7AC0308 */ swc1 $f12, 0x308($sp) +/* 0B96E8 7F084BB8 E7AE030C */ swc1 $f14, 0x30c($sp) +/* 0B96EC 7F084BBC C5060494 */ lwc1 $f6, 0x494($t0) +/* 0B96F0 7F084BC0 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0B96F4 7F084BC4 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0B96F8 7F084BC8 C504048C */ lwc1 $f4, 0x48c($t0) +/* 0B96FC 7F084BCC 460A4181 */ sub.s $f6, $f8, $f10 +/* 0B9700 7F084BD0 E7A40044 */ swc1 $f4, 0x44($sp) +/* 0B9704 7F084BD4 C7A80044 */ lwc1 $f8, 0x44($sp) +/* 0B9708 7F084BD8 C7AA0368 */ lwc1 $f10, 0x368($sp) +/* 0B970C 7F084BDC 460C3102 */ mul.s $f4, $f6, $f12 +/* 0B9710 7F084BE0 460A4181 */ sub.s $f6, $f8, $f10 +/* 0B9714 7F084BE4 460E3202 */ mul.s $f8, $f6, $f14 +/* 0B9718 7F084BE8 46082480 */ add.s $f18, $f4, $f8 +/* 0B971C 7F084BEC 4614903C */ c.lt.s $f18, $f20 +/* 0B9720 7F084BF0 00000000 */ nop +/* 0B9724 7F084BF4 45000006 */ bc1f .L7F084C10 +/* 0B9728 7F084BF8 00000000 */ nop +/* 0B972C 7F084BFC 46007407 */ neg.s $f16, $f14 +/* 0B9730 7F084C00 46006287 */ neg.s $f10, $f12 +/* 0B9734 7F084C04 46009487 */ neg.s $f18, $f18 +/* 0B9738 7F084C08 E7AA0308 */ swc1 $f10, 0x308($sp) +/* 0B973C 7F084C0C E7B0030C */ swc1 $f16, 0x30c($sp) +.L7F084C10: +/* 0B9740 7F084C10 C7A60048 */ lwc1 $f6, 0x48($sp) +/* 0B9744 7F084C14 C7A40350 */ lwc1 $f4, 0x350($sp) +/* 0B9748 7F084C18 C7AC0308 */ lwc1 $f12, 0x308($sp) +/* 0B974C 7F084C1C C7B0030C */ lwc1 $f16, 0x30c($sp) +/* 0B9750 7F084C20 46043201 */ sub.s $f8, $f6, $f4 +/* 0B9754 7F084C24 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B9758 7F084C28 460C4282 */ mul.s $f10, $f8, $f12 +/* 0B975C 7F084C2C C7A80348 */ lwc1 $f8, 0x348($sp) +/* 0B9760 7F084C30 46082201 */ sub.s $f8, $f4, $f8 +/* 0B9764 7F084C34 46104202 */ mul.s $f8, $f8, $f16 +/* 0B9768 7F084C38 46085000 */ add.s $f0, $f10, $f8 +/* 0B976C 7F084C3C C7AA0344 */ lwc1 $f10, 0x344($sp) +/* 0B9770 7F084C40 460A3201 */ sub.s $f8, $f6, $f10 +/* 0B9774 7F084C44 C7AA033C */ lwc1 $f10, 0x33c($sp) +/* 0B9778 7F084C48 460C4182 */ mul.s $f6, $f8, $f12 +/* 0B977C 7F084C4C 460A2201 */ sub.s $f8, $f4, $f10 +/* 0B9780 7F084C50 46104102 */ mul.s $f4, $f8, $f16 +/* 0B9784 7F084C54 46043080 */ add.s $f2, $f6, $f4 +/* 0B9788 7F084C58 4600103C */ c.lt.s $f2, $f0 +/* 0B978C 7F084C5C 00000000 */ nop +/* 0B9790 7F084C60 45020003 */ bc1fl .L7F084C70 +/* 0B9794 7F084C64 4612003C */ c.lt.s $f0, $f18 +/* 0B9798 7F084C68 46001006 */ mov.s $f0, $f2 +/* 0B979C 7F084C6C 4612003C */ c.lt.s $f0, $f18 +.L7F084C70: +/* 0B97A0 7F084C70 00000000 */ nop +/* 0B97A4 7F084C74 45020004 */ bc1fl .L7F084C88 +/* 0B97A8 7F084C78 C7A20304 */ lwc1 $f2, 0x304($sp) +/* 0B97AC 7F084C7C 46009081 */ sub.s $f2, $f18, $f0 +/* 0B97B0 7F084C80 E7A20304 */ swc1 $f2, 0x304($sp) +/* 0B97B4 7F084C84 C7A20304 */ lwc1 $f2, 0x304($sp) +.L7F084C88: +/* 0B97B8 7F084C88 C7AA031C */ lwc1 $f10, 0x31c($sp) +/* 0B97BC 7F084C8C 4602A03E */ c.le.s $f20, $f2 +/* 0B97C0 7F084C90 00000000 */ nop +/* 0B97C4 7F084C94 4502000D */ bc1fl .L7F084CCC +/* 0B97C8 7F084C98 C7A0031C */ lwc1 $f0, 0x31c($sp) +/* 0B97CC 7F084C9C 460A103C */ c.lt.s $f2, $f10 +/* 0B97D0 7F084CA0 00000000 */ nop +/* 0B97D4 7F084CA4 45030006 */ bc1tl .L7F084CC0 +/* 0B97D8 7F084CA8 E7B00324 */ swc1 $f16, 0x324($sp) +/* 0B97DC 7F084CAC 4614503C */ c.lt.s $f10, $f20 +/* 0B97E0 7F084CB0 00000000 */ nop +/* 0B97E4 7F084CB4 45020005 */ bc1fl .L7F084CCC +/* 0B97E8 7F084CB8 C7A0031C */ lwc1 $f0, 0x31c($sp) +/* 0B97EC 7F084CBC E7B00324 */ swc1 $f16, 0x324($sp) +.L7F084CC0: +/* 0B97F0 7F084CC0 E7AC0320 */ swc1 $f12, 0x320($sp) +/* 0B97F4 7F084CC4 E7A2031C */ swc1 $f2, 0x31c($sp) +/* 0B97F8 7F084CC8 C7A0031C */ lwc1 $f0, 0x31c($sp) +.L7F084CCC: +/* 0B97FC 7F084CCC C7A80324 */ lwc1 $f8, 0x324($sp) +/* 0B9800 7F084CD0 4600A03E */ c.le.s $f20, $f0 +/* 0B9804 7F084CD4 00000000 */ nop +/* 0B9808 7F084CD8 45020022 */ bc1fl .L7F084D64 +/* 0B980C 7F084CDC E7B40358 */ swc1 $f20, 0x358($sp) +/* 0B9810 7F084CE0 46080182 */ mul.s $f6, $f0, $f8 +/* 0B9814 7F084CE4 3C018005 */ lui $at, %hi(D_80055178) +/* 0B9818 7F084CE8 C4245178 */ lwc1 $f4, %lo(D_80055178)($at) +/* 0B981C 7F084CEC C7A80320 */ lwc1 $f8, 0x320($sp) +/* 0B9820 7F084CF0 3C018005 */ lui $at, %hi(D_8005517C) +/* 0B9824 7F084CF4 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0B9828 7F084CF8 24050001 */ li $a1, 1 +/* 0B982C 7F084CFC 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9830 7F084D00 C424517C */ lwc1 $f4, %lo(D_8005517C)($at) +/* 0B9834 7F084D04 46080182 */ mul.s $f6, $f0, $f8 +/* 0B9838 7F084D08 E7AA03AC */ swc1 $f10, 0x3ac($sp) +/* 0B983C 7F084D0C 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9840 7F084D10 0FC1F658 */ jal sub_GAME_7F07D960 +/* 0B9844 7F084D14 E7AA03B4 */ swc1 $f10, 0x3b4($sp) +/* 0B9848 7F084D18 8E280000 */ lw $t0, ($s1) +/* 0B984C 7F084D1C E7B403AC */ swc1 $f20, 0x3ac($sp) +/* 0B9850 7F084D20 E7B403B4 */ swc1 $f20, 0x3b4($sp) +/* 0B9854 7F084D24 27AE0368 */ addiu $t6, $sp, 0x368 +/* 0B9858 7F084D28 8D050488 */ lw $a1, 0x488($t0) +/* 0B985C 7F084D2C AFAE0010 */ sw $t6, 0x10($sp) +/* 0B9860 7F084D30 8FA6035C */ lw $a2, 0x35c($sp) +/* 0B9864 7F084D34 02003825 */ move $a3, $s0 +/* 0B9868 7F084D38 0FC1F2B2 */ jal sub_GAME_7F07CAC8 +/* 0B986C 7F084D3C 2504048C */ addiu $a0, $t0, 0x48c +/* 0B9870 7F084D40 10400004 */ beqz $v0, .L7F084D54 +/* 0B9874 7F084D44 C7A8035C */ lwc1 $f8, 0x35c($sp) +/* 0B9878 7F084D48 3C018003 */ lui $at, %hi(D_80036464) +/* 0B987C 7F084D4C 10000002 */ b .L7F084D58 +/* 0B9880 7F084D50 E4286464 */ swc1 $f8, %lo(D_80036464)($at) +.L7F084D54: +/* 0B9884 7F084D54 E7B40358 */ swc1 $f20, 0x358($sp) +.L7F084D58: +/* 0B9888 7F084D58 10000002 */ b .L7F084D64 +/* 0B988C 7F084D5C 8E280000 */ lw $t0, ($s1) +/* 0B9890 7F084D60 E7B40358 */ swc1 $f20, 0x358($sp) +.L7F084D64: +/* 0B9894 7F084D64 3C018005 */ lui $at, %hi(D_80055180) +/* 0B9898 7F084D68 C42E5180 */ lwc1 $f14, %lo(D_80055180)($at) +/* 0B989C 7F084D6C 3C038003 */ lui $v1, %hi(D_80036484) +/* 0B98A0 7F084D70 24636484 */ addiu $v1, %lo(D_80036484) # addiu $v1, $v1, 0x6484 +/* 0B98A4 7F084D74 3C018003 */ lui $at, %hi(D_80036488) +/* 0B98A8 7F084D78 C4246488 */ lwc1 $f4, %lo(D_80036488)($at) +/* 0B98AC 7F084D7C C4660000 */ lwc1 $f6, ($v1) +/* 0B98B0 7F084D80 3C078003 */ lui $a3, %hi(D_80036474) +/* 0B98B4 7F084D84 24E76474 */ addiu $a3, %lo(D_80036474) # addiu $a3, $a3, 0x6474 +/* 0B98B8 7F084D88 46043280 */ add.s $f10, $f6, $f4 +/* 0B98BC 7F084D8C C4EC0000 */ lwc1 $f12, ($a3) +/* 0B98C0 7F084D90 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B98C4 7F084D94 3C048005 */ lui $a0, %hi(clock_timer) +/* 0B98C8 7F084D98 E46A0000 */ swc1 $f10, ($v1) +/* 0B98CC 7F084D9C C4600000 */ lwc1 $f0, ($v1) +/* 0B98D0 7F084DA0 44815000 */ mtc1 $at, $f10 +/* 0B98D4 7F084DA4 46006406 */ mov.s $f16, $f12 +/* 0B98D8 7F084DA8 4600703E */ c.le.s $f14, $f0 +/* 0B98DC 7F084DAC 00000000 */ nop +/* 0B98E0 7F084DB0 45020005 */ bc1fl .L7F084DC8 +/* 0B98E4 7F084DB4 4614003C */ c.lt.s $f0, $f20 +/* 0B98E8 7F084DB8 460E0201 */ sub.s $f8, $f0, $f14 +/* 0B98EC 7F084DBC E4680000 */ swc1 $f8, ($v1) +/* 0B98F0 7F084DC0 C4600000 */ lwc1 $f0, ($v1) +/* 0B98F4 7F084DC4 4614003C */ c.lt.s $f0, $f20 +.L7F084DC8: +/* 0B98F8 7F084DC8 00000000 */ nop +/* 0B98FC 7F084DCC 45020005 */ bc1fl .L7F084DE4 +/* 0B9900 7F084DD0 C504014C */ lwc1 $f4, 0x14c($t0) +/* 0B9904 7F084DD4 460E0180 */ add.s $f6, $f0, $f14 +/* 0B9908 7F084DD8 E4660000 */ swc1 $f6, ($v1) +/* 0B990C 7F084DDC C4600000 */ lwc1 $f0, ($v1) +/* 0B9910 7F084DE0 C504014C */ lwc1 $f4, 0x14c($t0) +.L7F084DE4: +/* 0B9914 7F084DE4 3C018005 */ lui $at, %hi(D_80055184) +/* 0B9918 7F084DE8 C4265184 */ lwc1 $f6, %lo(D_80055184)($at) +/* 0B991C 7F084DEC 460A2202 */ mul.s $f8, $f4, $f10 +/* 0B9920 7F084DF0 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0B9924 7F084DF4 44815000 */ mtc1 $at, $f10 +/* 0B9928 7F084DF8 3C018005 */ lui $at, %hi(D_80055188) +/* 0B992C 7F084DFC 46064102 */ mul.s $f4, $f8, $f6 +/* 0B9930 7F084E00 00000000 */ nop +/* 0B9934 7F084E04 460A2202 */ mul.s $f8, $f4, $f10 +/* 0B9938 7F084E08 46004080 */ add.s $f2, $f8, $f0 +/* 0B993C 7F084E0C 4614103C */ c.lt.s $f2, $f20 +/* 0B9940 7F084E10 00000000 */ nop +/* 0B9944 7F084E14 45000002 */ bc1f .L7F084E20 +/* 0B9948 7F084E18 00000000 */ nop +/* 0B994C 7F084E1C 460E1080 */ add.s $f2, $f2, $f14 +.L7F084E20: +/* 0B9950 7F084E20 4602703E */ c.le.s $f14, $f2 +/* 0B9954 7F084E24 00000000 */ nop +/* 0B9958 7F084E28 45020003 */ bc1fl .L7F084E38 +/* 0B995C 7F084E2C 460C1001 */ sub.s $f0, $f2, $f12 +/* 0B9960 7F084E30 460E1081 */ sub.s $f2, $f2, $f14 +/* 0B9964 7F084E34 460C1001 */ sub.s $f0, $f2, $f12 +.L7F084E38: +/* 0B9968 7F084E38 C4265188 */ lwc1 $f6, %lo(D_80055188)($at) +/* 0B996C 7F084E3C 3C018005 */ lui $at, %hi(D_80055190) +/* 0B9970 7F084E40 4600303E */ c.le.s $f6, $f0 +/* 0B9974 7F084E44 00000000 */ nop +/* 0B9978 7F084E48 45000005 */ bc1f .L7F084E60 +/* 0B997C 7F084E4C 00000000 */ nop +/* 0B9980 7F084E50 3C018005 */ lui $at, %hi(D_8005518C) +/* 0B9984 7F084E54 C424518C */ lwc1 $f4, %lo(D_8005518C)($at) +/* 0B9988 7F084E58 10000009 */ b .L7F084E80 +/* 0B998C 7F084E5C 46041081 */ sub.s $f2, $f2, $f4 +.L7F084E60: +/* 0B9990 7F084E60 C42A5190 */ lwc1 $f10, %lo(D_80055190)($at) +/* 0B9994 7F084E64 3C018005 */ lui $at, %hi(D_80055194) +/* 0B9998 7F084E68 460A003C */ c.lt.s $f0, $f10 +/* 0B999C 7F084E6C 00000000 */ nop +/* 0B99A0 7F084E70 45000003 */ bc1f .L7F084E80 +/* 0B99A4 7F084E74 00000000 */ nop +/* 0B99A8 7F084E78 C4285194 */ lwc1 $f8, %lo(D_80055194)($at) +/* 0B99AC 7F084E7C 46081080 */ add.s $f2, $f2, $f8 +.L7F084E80: +/* 0B99B0 7F084E80 8C848374 */ lw $a0, %lo(clock_timer)($a0) +/* 0B99B4 7F084E84 00001025 */ move $v0, $zero +/* 0B99B8 7F084E88 3C018005 */ lui $at, %hi(D_80055198) +/* 0B99BC 7F084E8C 18800013 */ blez $a0, .L7F084EDC +/* 0B99C0 7F084E90 3C108003 */ lui $s0, %hi(D_80036478) +/* 0B99C4 7F084E94 C42E5198 */ lwc1 $f14, %lo(D_80055198)($at) +/* 0B99C8 7F084E98 26106478 */ addiu $s0, %lo(D_80036478) # addiu $s0, $s0, 0x6478 +/* 0B99CC 7F084E9C C60C0000 */ lwc1 $f12, ($s0) +/* 0B99D0 7F084EA0 24420001 */ addiu $v0, $v0, 1 +/* 0B99D4 7F084EA4 0044082A */ slt $at, $v0, $a0 +/* 0B99D8 7F084EA8 460C7482 */ mul.s $f18, $f14, $f12 +/* 0B99DC 7F084EAC 5020000A */ beql $at, $zero, .L7F084ED8 +/* 0B99E0 7F084EB0 46029300 */ add.s $f12, $f18, $f2 +/* 0B99E4 7F084EB4 46029300 */ add.s $f12, $f18, $f2 +.L7F084EB8: +/* 0B99E8 7F084EB8 24420001 */ addiu $v0, $v0, 1 +/* 0B99EC 7F084EBC 0044082A */ slt $at, $v0, $a0 +/* 0B99F0 7F084EC0 E60C0000 */ swc1 $f12, ($s0) +/* 0B99F4 7F084EC4 C60C0000 */ lwc1 $f12, ($s0) +/* 0B99F8 7F084EC8 460C7482 */ mul.s $f18, $f14, $f12 +/* 0B99FC 7F084ECC 5420FFFA */ bnezl $at, .L7F084EB8 +/* 0B9A00 7F084ED0 46029300 */ add.s $f12, $f18, $f2 +/* 0B9A04 7F084ED4 46029300 */ add.s $f12, $f18, $f2 +.L7F084ED8: +/* 0B9A08 7F084ED8 E60C0000 */ swc1 $f12, ($s0) +.L7F084EDC: +/* 0B9A0C 7F084EDC 3C108003 */ lui $s0, %hi(D_80036478) +/* 0B9A10 7F084EE0 26106478 */ addiu $s0, %lo(D_80036478) # addiu $s0, $s0, 0x6478 +/* 0B9A14 7F084EE4 3C018005 */ lui $at, %hi(D_8005519C) +/* 0B9A18 7F084EE8 C420519C */ lwc1 $f0, %lo(D_8005519C)($at) +/* 0B9A1C 7F084EEC C6080000 */ lwc1 $f8, ($s0) +/* 0B9A20 7F084EF0 3C018005 */ lui $at, %hi(D_800551A0) +/* 0B9A24 7F084EF4 C42251A0 */ lwc1 $f2, %lo(D_800551A0)($at) +/* 0B9A28 7F084EF8 46004182 */ mul.s $f6, $f8, $f0 +/* 0B9A2C 7F084EFC 2504048C */ addiu $a0, $t0, 0x48c +/* 0B9A30 7F084F00 3C068003 */ lui $a2, %hi(D_80036464) +/* 0B9A34 7F084F04 E4E60000 */ swc1 $f6, ($a3) +/* 0B9A38 7F084F08 C4EC0000 */ lwc1 $f12, ($a3) +/* 0B9A3C 7F084F0C 460C103E */ c.le.s $f2, $f12 +/* 0B9A40 7F084F10 00000000 */ nop +/* 0B9A44 7F084F14 45020007 */ bc1fl .L7F084F34 +/* 0B9A48 7F084F18 4614603C */ c.lt.s $f12, $f20 +/* 0B9A4C 7F084F1C 46026101 */ sub.s $f4, $f12, $f2 +/* 0B9A50 7F084F20 E4E40000 */ swc1 $f4, ($a3) +/* 0B9A54 7F084F24 C4EC0000 */ lwc1 $f12, ($a3) +/* 0B9A58 7F084F28 46006283 */ div.s $f10, $f12, $f0 +/* 0B9A5C 7F084F2C E60A0000 */ swc1 $f10, ($s0) +/* 0B9A60 7F084F30 4614603C */ c.lt.s $f12, $f20 +.L7F084F34: +/* 0B9A64 7F084F34 00000000 */ nop +/* 0B9A68 7F084F38 45020007 */ bc1fl .L7F084F58 +/* 0B9A6C 7F084F3C 8D050488 */ lw $a1, 0x488($t0) +/* 0B9A70 7F084F40 46026200 */ add.s $f8, $f12, $f2 +/* 0B9A74 7F084F44 E4E80000 */ swc1 $f8, ($a3) +/* 0B9A78 7F084F48 C4E60000 */ lwc1 $f6, ($a3) +/* 0B9A7C 7F084F4C 46003103 */ div.s $f4, $f6, $f0 +/* 0B9A80 7F084F50 E6040000 */ swc1 $f4, ($s0) +/* 0B9A84 7F084F54 8D050488 */ lw $a1, 0x488($t0) +.L7F084F58: +/* 0B9A88 7F084F58 E7B00354 */ swc1 $f16, 0x354($sp) +/* 0B9A8C 7F084F5C 0FC1F36A */ jal sub_GAME_7F07CDA8 +/* 0B9A90 7F084F60 8CC66464 */ lw $a2, %lo(D_80036464)($a2) +/* 0B9A94 7F084F64 3C038003 */ lui $v1, %hi(D_80036484) +/* 0B9A98 7F084F68 3C018005 */ lui $at, %hi(D_800551A8) +/* 0B9A9C 7F084F6C C42E51A8 */ lwc1 $f14, %lo(D_800551A8)($at) +/* 0B9AA0 7F084F70 24636484 */ addiu $v1, %lo(D_80036484) # addiu $v1, $v1, 0x6484 +/* 0B9AA4 7F084F74 14400009 */ bnez $v0, .L7F084F9C +/* 0B9AA8 7F084F78 C7B00354 */ lwc1 $f16, 0x354($sp) +/* 0B9AAC 7F084F7C 3C018003 */ lui $at, %hi(D_80036474) +/* 0B9AB0 7F084F80 E4306474 */ swc1 $f16, %lo(D_80036474)($at) +/* 0B9AB4 7F084F84 C42A6474 */ lwc1 $f10, %lo(D_80036474)($at) +/* 0B9AB8 7F084F88 3C018005 */ lui $at, %hi(D_800551AC) +/* 0B9ABC 7F084F8C C42851AC */ lwc1 $f8, %lo(D_800551AC)($at) +/* 0B9AC0 7F084F90 E4700000 */ swc1 $f16, ($v1) +/* 0B9AC4 7F084F94 46085183 */ div.s $f6, $f10, $f8 +/* 0B9AC8 7F084F98 E6060000 */ swc1 $f6, ($s0) +.L7F084F9C: +/* 0B9ACC 7F084F9C 3C038003 */ lui $v1, %hi(ptr_playerstank) +/* 0B9AD0 7F084FA0 8C636450 */ lw $v1, %lo(ptr_playerstank)($v1) +/* 0B9AD4 7F084FA4 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) +/* 0B9AD8 7F084FA8 244299A8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6658 +/* 0B9ADC 7F084FAC 1060002F */ beqz $v1, .L7F08506C +/* 0B9AE0 7F084FB0 27B002B4 */ addiu $s0, $sp, 0x2b4 +/* 0B9AE4 7F084FB4 8C6F0004 */ lw $t7, 4($v1) +/* 0B9AE8 7F084FB8 C4440000 */ lwc1 $f4, ($v0) +/* 0B9AEC 7F084FBC C44A0008 */ lwc1 $f10, 8($v0) +/* 0B9AF0 7F084FC0 E7B402F8 */ swc1 $f20, 0x2f8($sp) +/* 0B9AF4 7F084FC4 C7AC0358 */ lwc1 $f12, 0x358($sp) +/* 0B9AF8 7F084FC8 02002825 */ move $a1, $s0 +/* 0B9AFC 7F084FCC AFAF0300 */ sw $t7, 0x300($sp) +/* 0B9B00 7F084FD0 E7A402F4 */ swc1 $f4, 0x2f4($sp) +/* 0B9B04 7F084FD4 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0B9B08 7F084FD8 E7AA02FC */ swc1 $f10, 0x2fc($sp) +/* 0B9B0C 7F084FDC 02002025 */ move $a0, $s0 +/* 0B9B10 7F084FE0 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0B9B14 7F084FE4 27A502F4 */ addiu $a1, $sp, 0x2f4 +/* 0B9B18 7F084FE8 0FC1F1ED */ jal sub_GAME_7F07C7B4 +/* 0B9B1C 7F084FEC 00000000 */ nop +/* 0B9B20 7F084FF0 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) +/* 0B9B24 7F084FF4 244299A8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6658 +/* 0B9B28 7F084FF8 C4480000 */ lwc1 $f8, ($v0) +/* 0B9B2C 7F084FFC C7A602F4 */ lwc1 $f6, 0x2f4($sp) +/* 0B9B30 7F085000 C44A0008 */ lwc1 $f10, 8($v0) +/* 0B9B34 7F085004 3C018005 */ lui $at, %hi(D_800551BC) +/* 0B9B38 7F085008 46064101 */ sub.s $f4, $f8, $f6 +/* 0B9B3C 7F08500C C7A802FC */ lwc1 $f8, 0x2fc($sp) +/* 0B9B40 7F085010 E7B402F8 */ swc1 $f20, 0x2f8($sp) +/* 0B9B44 7F085014 02002825 */ move $a1, $s0 +/* 0B9B48 7F085018 E7A402F4 */ swc1 $f4, 0x2f4($sp) +/* 0B9B4C 7F08501C 46085181 */ sub.s $f6, $f10, $f8 +/* 0B9B50 7F085020 C42451BC */ lwc1 $f4, %lo(D_800551BC)($at) +/* 0B9B54 7F085024 3C018003 */ lui $at, %hi(D_80036464) +/* 0B9B58 7F085028 C42A6464 */ lwc1 $f10, %lo(D_80036464)($at) +/* 0B9B5C 7F08502C E7A602FC */ swc1 $f6, 0x2fc($sp) +/* 0B9B60 7F085030 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0B9B64 7F085034 460A2301 */ sub.s $f12, $f4, $f10 +/* 0B9B68 7F085038 8FAB0300 */ lw $t3, 0x300($sp) +/* 0B9B6C 7F08503C 02002825 */ move $a1, $s0 +/* 0B9B70 7F085040 8D780014 */ lw $t8, 0x14($t3) +/* 0B9B74 7F085044 0FC1629F */ jal matrix_scalar_multiply +/* 0B9B78 7F085048 C70C0014 */ lwc1 $f12, 0x14($t8) +/* 0B9B7C 7F08504C 02002025 */ move $a0, $s0 +/* 0B9B80 7F085050 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0B9B84 7F085054 27A502F4 */ addiu $a1, $sp, 0x2f4 +/* 0B9B88 7F085058 27A402F4 */ addiu $a0, $sp, 0x2f4 +/* 0B9B8C 7F08505C 0FC1F658 */ jal sub_GAME_7F07D960 +/* 0B9B90 7F085060 24050001 */ li $a1, 1 +/* 0B9B94 7F085064 3C018005 */ lui $at, %hi(D_800551CC) +/* 0B9B98 7F085068 C42E51CC */ lwc1 $f14, %lo(D_800551CC)($at) +.L7F08506C: +/* 0B9B9C 7F08506C 3C048005 */ lui $a0, %hi(clock_timer) +/* 0B9BA0 7F085070 8C848374 */ lw $a0, %lo(clock_timer)($a0) +/* 0B9BA4 7F085074 3C018003 */ lui $at, %hi(D_80036474) +/* 0B9BA8 7F085078 C42C6474 */ lwc1 $f12, %lo(D_80036474)($at) +/* 0B9BAC 7F08507C 5880001B */ blezl $a0, .L7F0850EC +/* 0B9BB0 7F085080 3C0143B4 */ lui $at, 0x43b4 +/* 0B9BB4 7F085084 18800018 */ blez $a0, .L7F0850E8 +/* 0B9BB8 7F085088 00001025 */ move $v0, $zero +/* 0B9BBC 7F08508C 3C018003 */ lui $at, %hi(D_80036488) +/* 0B9BC0 7F085090 C4286488 */ lwc1 $f8, %lo(D_80036488)($at) +/* 0B9BC4 7F085094 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B9BC8 7F085098 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B9BCC 7F08509C 3C038003 */ lui $v1, %hi(D_8003647C) +/* 0B9BD0 7F0850A0 2463647C */ addiu $v1, %lo(D_8003647C) # addiu $v1, $v1, 0x647c +/* 0B9BD4 7F0850A4 46064003 */ div.s $f0, $f8, $f6 +/* 0B9BD8 7F0850A8 C4700000 */ lwc1 $f16, ($v1) +/* 0B9BDC 7F0850AC 24420001 */ addiu $v0, $v0, 1 +/* 0B9BE0 7F0850B0 0044082A */ slt $at, $v0, $a0 +/* 0B9BE4 7F0850B4 46107482 */ mul.s $f18, $f14, $f16 +/* 0B9BE8 7F0850B8 5020000A */ beql $at, $zero, .L7F0850E4 +/* 0B9BEC 7F0850BC 46009400 */ add.s $f16, $f18, $f0 +/* 0B9BF0 7F0850C0 46009400 */ add.s $f16, $f18, $f0 +.L7F0850C4: +/* 0B9BF4 7F0850C4 24420001 */ addiu $v0, $v0, 1 +/* 0B9BF8 7F0850C8 0044082A */ slt $at, $v0, $a0 +/* 0B9BFC 7F0850CC E4700000 */ swc1 $f16, ($v1) +/* 0B9C00 7F0850D0 C4700000 */ lwc1 $f16, ($v1) +/* 0B9C04 7F0850D4 46107482 */ mul.s $f18, $f14, $f16 +/* 0B9C08 7F0850D8 5420FFFA */ bnezl $at, .L7F0850C4 +/* 0B9C0C 7F0850DC 46009400 */ add.s $f16, $f18, $f0 +/* 0B9C10 7F0850E0 46009400 */ add.s $f16, $f18, $f0 +.L7F0850E4: +/* 0B9C14 7F0850E4 E4700000 */ swc1 $f16, ($v1) +.L7F0850E8: +/* 0B9C18 7F0850E8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +.L7F0850EC: +/* 0B9C1C 7F0850EC 44817000 */ mtc1 $at, $f14 +/* 0B9C20 7F0850F0 3C038003 */ lui $v1, %hi(D_8003647C) +/* 0B9C24 7F0850F4 2463647C */ addiu $v1, %lo(D_8003647C) # addiu $v1, $v1, 0x647c +/* 0B9C28 7F0850F8 3C018005 */ lui $at, %hi(D_800551D0) +/* 0B9C2C 7F0850FC C42451D0 */ lwc1 $f4, %lo(D_800551D0)($at) +/* 0B9C30 7F085100 C4660000 */ lwc1 $f6, ($v1) +/* 0B9C34 7F085104 8E280000 */ lw $t0, ($s1) +/* 0B9C38 7F085108 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B9C3C 7F08510C 46043082 */ mul.s $f2, $f6, $f4 +/* 0B9C40 7F085110 44814000 */ mtc1 $at, $f8 +/* 0B9C44 7F085114 C50A014C */ lwc1 $f10, 0x14c($t0) +/* 0B9C48 7F085118 3C018005 */ lui $at, %hi(D_800551D4) +/* 0B9C4C 7F08511C C42451D4 */ lwc1 $f4, %lo(D_800551D4)($at) +/* 0B9C50 7F085120 46085182 */ mul.s $f6, $f10, $f8 +/* 0B9C54 7F085124 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0B9C58 7F085128 44814000 */ mtc1 $at, $f8 +/* 0B9C5C 7F08512C 3C018003 */ lui $at, %hi(D_80036464) +/* 0B9C60 7F085130 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9C64 7F085134 C4246464 */ lwc1 $f4, %lo(D_80036464)($at) +/* 0B9C68 7F085138 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0B9C6C 7F08513C 46085182 */ mul.s $f6, $f10, $f8 +/* 0B9C70 7F085140 460C2280 */ add.s $f10, $f4, $f12 +/* 0B9C74 7F085144 44812000 */ mtc1 $at, $f4 +/* 0B9C78 7F085148 3C018005 */ lui $at, %hi(D_800551D8) +/* 0B9C7C 7F08514C 46065200 */ add.s $f8, $f10, $f6 +/* 0B9C80 7F085150 46041282 */ mul.s $f10, $f2, $f4 +/* 0B9C84 7F085154 460A4180 */ add.s $f6, $f8, $f10 +/* 0B9C88 7F085158 C42851D8 */ lwc1 $f8, %lo(D_800551D8)($at) +/* 0B9C8C 7F08515C 460E3102 */ mul.s $f4, $f6, $f14 +/* 0B9C90 7F085160 46082283 */ div.s $f10, $f4, $f8 +/* 0B9C94 7F085164 E50A0148 */ swc1 $f10, 0x148($t0) +/* 0B9C98 7F085168 8E280000 */ lw $t0, ($s1) +/* 0B9C9C 7F08516C C5000148 */ lwc1 $f0, 0x148($t0) +/* 0B9CA0 7F085170 4614003C */ c.lt.s $f0, $f20 +/* 0B9CA4 7F085174 00000000 */ nop +/* 0B9CA8 7F085178 4502000A */ bc1fl .L7F0851A4 +/* 0B9CAC 7F08517C 4600703E */ c.le.s $f14, $f0 +/* 0B9CB0 7F085180 460E0180 */ add.s $f6, $f0, $f14 +.L7F085184: +/* 0B9CB4 7F085184 E5060148 */ swc1 $f6, 0x148($t0) +/* 0B9CB8 7F085188 8E280000 */ lw $t0, ($s1) +/* 0B9CBC 7F08518C C5000148 */ lwc1 $f0, 0x148($t0) +/* 0B9CC0 7F085190 4614003C */ c.lt.s $f0, $f20 +/* 0B9CC4 7F085194 00000000 */ nop +/* 0B9CC8 7F085198 4503FFFA */ bc1tl .L7F085184 +/* 0B9CCC 7F08519C 460E0180 */ add.s $f6, $f0, $f14 +/* 0B9CD0 7F0851A0 4600703E */ c.le.s $f14, $f0 +.L7F0851A4: +/* 0B9CD4 7F0851A4 00000000 */ nop +/* 0B9CD8 7F0851A8 45000009 */ bc1f .L7F0851D0 +/* 0B9CDC 7F0851AC 00000000 */ nop +/* 0B9CE0 7F0851B0 460E0101 */ sub.s $f4, $f0, $f14 +.L7F0851B4: +/* 0B9CE4 7F0851B4 E5040148 */ swc1 $f4, 0x148($t0) +/* 0B9CE8 7F0851B8 8E280000 */ lw $t0, ($s1) +/* 0B9CEC 7F0851BC C5000148 */ lwc1 $f0, 0x148($t0) +/* 0B9CF0 7F0851C0 4600703E */ c.le.s $f14, $f0 +/* 0B9CF4 7F0851C4 00000000 */ nop +/* 0B9CF8 7F0851C8 4503FFFA */ bc1tl .L7F0851B4 +/* 0B9CFC 7F0851CC 460E0101 */ sub.s $f4, $f0, $f14 +.L7F0851D0: +/* 0B9D00 7F0851D0 10000022 */ b .L7F08525C +/* 0B9D04 7F0851D4 00000000 */ nop +.L7F0851D8: +/* 0B9D08 7F0851D8 C508014C */ lwc1 $f8, 0x14c($t0) +/* 0B9D0C 7F0851DC C52A0000 */ lwc1 $f10, ($t1) +/* 0B9D10 7F0851E0 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B9D14 7F0851E4 44812000 */ mtc1 $at, $f4 +/* 0B9D18 7F0851E8 460A4182 */ mul.s $f6, $f8, $f10 +/* 0B9D1C 7F0851EC C50A0148 */ lwc1 $f10, 0x148($t0) +/* 0B9D20 7F0851F0 3C0143B4 */ lui $at, 0x43b4 +/* 0B9D24 7F0851F4 46043202 */ mul.s $f8, $f6, $f4 +/* 0B9D28 7F0851F8 46085000 */ add.s $f0, $f10, $f8 +/* 0B9D2C 7F0851FC 4614003C */ c.lt.s $f0, $f20 +/* 0B9D30 7F085200 00000000 */ nop +/* 0B9D34 7F085204 45020009 */ bc1fl .L7F08522C +/* 0B9D38 7F085208 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B9D3C 7F08520C 44817000 */ mtc1 $at, $f14 +/* 0B9D40 7F085210 00000000 */ nop +/* 0B9D44 7F085214 460E0000 */ add.s $f0, $f0, $f14 +.L7F085218: +/* 0B9D48 7F085218 4614003C */ c.lt.s $f0, $f20 +/* 0B9D4C 7F08521C 00000000 */ nop +/* 0B9D50 7F085220 4503FFFD */ bc1tl .L7F085218 +/* 0B9D54 7F085224 460E0000 */ add.s $f0, $f0, $f14 +/* 0B9D58 7F085228 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +.L7F08522C: +/* 0B9D5C 7F08522C 44817000 */ mtc1 $at, $f14 +/* 0B9D60 7F085230 00000000 */ nop +/* 0B9D64 7F085234 4600703E */ c.le.s $f14, $f0 +/* 0B9D68 7F085238 00000000 */ nop +/* 0B9D6C 7F08523C 45020007 */ bc1fl .L7F08525C +/* 0B9D70 7F085240 E5000148 */ swc1 $f0, 0x148($t0) +/* 0B9D74 7F085244 460E0001 */ sub.s $f0, $f0, $f14 +.L7F085248: +/* 0B9D78 7F085248 4600703E */ c.le.s $f14, $f0 +/* 0B9D7C 7F08524C 00000000 */ nop +/* 0B9D80 7F085250 4503FFFD */ bc1tl .L7F085248 +/* 0B9D84 7F085254 460E0001 */ sub.s $f0, $f0, $f14 +/* 0B9D88 7F085258 E5000148 */ swc1 $f0, 0x148($t0) +.L7F08525C: +/* 0B9D8C 7F08525C 0FC205E4 */ jal sub_GAME_7F081790 +/* 0B9D90 7F085260 00000000 */ nop +/* 0B9D94 7F085264 0FC1E67C */ jal sub_GAME_7F0799F0 +/* 0B9D98 7F085268 E7B402AC */ swc1 $f20, 0x2ac($sp) +/* 0B9D9C 7F08526C 14400004 */ bnez $v0, .L7F085280 +/* 0B9DA0 7F085270 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 0B9DA4 7F085274 44813000 */ mtc1 $at, $f6 +/* 0B9DA8 7F085278 1000000B */ b .L7F0852A8 +/* 0B9DAC 7F08527C E7A602AC */ swc1 $f6, 0x2ac($sp) +.L7F085280: +/* 0B9DB0 7F085280 0FC1E67C */ jal sub_GAME_7F0799F0 +/* 0B9DB4 7F085284 00000000 */ nop +/* 0B9DB8 7F085288 24010001 */ li $at, 1 +/* 0B9DBC 7F08528C 14410004 */ bne $v0, $at, .L7F0852A0 +/* 0B9DC0 7F085290 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 0B9DC4 7F085294 44812000 */ mtc1 $at, $f4 +/* 0B9DC8 7F085298 10000003 */ b .L7F0852A8 +/* 0B9DCC 7F08529C E7A402AC */ swc1 $f4, 0x2ac($sp) +.L7F0852A0: +/* 0B9DD0 7F0852A0 0FC1E67C */ jal sub_GAME_7F0799F0 +/* 0B9DD4 7F0852A4 00000000 */ nop +.L7F0852A8: +/* 0B9DD8 7F0852A8 8E280000 */ lw $t0, ($s1) +/* 0B9DDC 7F0852AC C7AA02AC */ lwc1 $f10, 0x2ac($sp) +/* 0B9DE0 7F0852B0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B9DE4 7F0852B4 C50000A0 */ lwc1 $f0, 0xa0($t0) +/* 0B9DE8 7F0852B8 250400A0 */ addiu $a0, $t0, 0xa0 +/* 0B9DEC 7F0852BC 250600A4 */ addiu $a2, $t0, 0xa4 +/* 0B9DF0 7F0852C0 46005032 */ c.eq.s $f10, $f0 +/* 0B9DF4 7F0852C4 00000000 */ nop +/* 0B9DF8 7F0852C8 4503000C */ bc1tl .L7F0852FC +/* 0B9DFC 7F0852CC C7A602AC */ lwc1 $f6, 0x2ac($sp) +/* 0B9E00 7F0852D0 44810000 */ mtc1 $at, $f0 +/* 0B9E04 7F0852D4 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0B9E08 7F0852D8 44814000 */ mtc1 $at, $f8 +/* 0B9E0C 7F0852DC 44055000 */ mfc1 $a1, $f10 +/* 0B9E10 7F0852E0 44070000 */ mfc1 $a3, $f0 +/* 0B9E14 7F0852E4 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0B9E18 7F0852E8 0FC10BC6 */ jal sub_GAME_7F042F18 +/* 0B9E1C 7F0852EC E7A80014 */ swc1 $f8, 0x14($sp) +/* 0B9E20 7F0852F0 8E280000 */ lw $t0, ($s1) +/* 0B9E24 7F0852F4 C50000A0 */ lwc1 $f0, 0xa0($t0) +/* 0B9E28 7F0852F8 C7A602AC */ lwc1 $f6, 0x2ac($sp) +.L7F0852FC: +/* 0B9E2C 7F0852FC 3C108003 */ lui $s0, %hi(SFX_80036458) +/* 0B9E30 7F085300 3C0C8003 */ lui $t4, %hi(in_tank_flag) +/* 0B9E34 7F085304 46003032 */ c.eq.s $f6, $f0 +/* 0B9E38 7F085308 26106458 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6458 +/* 0B9E3C 7F08530C 45000002 */ bc1f .L7F085318 +/* 0B9E40 7F085310 00000000 */ nop +/* 0B9E44 7F085314 E51400A4 */ swc1 $f20, 0xa4($t0) +.L7F085318: +/* 0B9E48 7F085318 8D8C6448 */ lw $t4, %lo(in_tank_flag)($t4) +/* 0B9E4C 7F08531C 24010001 */ li $at, 1 +/* 0B9E50 7F085320 15810209 */ bne $t4, $at, .L7F085B48 +/* 0B9E54 7F085324 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B8) +/* 0B9E58 7F085328 8C4299B8 */ lw $v0, %lo(dword_CODE_bss_800799B8)($v0) +/* 0B9E5C 7F08532C 3C038003 */ lui $v1, %hi(ptr_playerstank) +/* 0B9E60 7F085330 24010001 */ li $at, 1 +/* 0B9E64 7F085334 144000BF */ bnez $v0, .L7F085634 +/* 0B9E68 7F085338 00000000 */ nop +/* 0B9E6C 7F08533C 8C636450 */ lw $v1, %lo(ptr_playerstank)($v1) +/* 0B9E70 7F085340 3C018005 */ lui $at, %hi(D_800551DC) +/* 0B9E74 7F085344 27A50268 */ addiu $a1, $sp, 0x268 +/* 0B9E78 7F085348 106000AD */ beqz $v1, .L7F085600 +/* 0B9E7C 7F08534C 00000000 */ nop +/* 0B9E80 7F085350 C42451DC */ lwc1 $f4, %lo(D_800551DC)($at) +/* 0B9E84 7F085354 3C018003 */ lui $at, %hi(D_80036464) +/* 0B9E88 7F085358 C42A6464 */ lwc1 $f10, %lo(D_80036464)($at) +/* 0B9E8C 7F08535C 8C700004 */ lw $s0, 4($v1) +/* 0B9E90 7F085360 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0B9E94 7F085364 460A2301 */ sub.s $f12, $f4, $f10 +/* 0B9E98 7F085368 8E190014 */ lw $t9, 0x14($s0) +/* 0B9E9C 7F08536C 27A50268 */ addiu $a1, $sp, 0x268 +/* 0B9EA0 7F085370 0FC1629F */ jal matrix_scalar_multiply +/* 0B9EA4 7F085374 C72C0014 */ lwc1 $f12, 0x14($t9) +/* 0B9EA8 7F085378 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) +/* 0B9EAC 7F08537C 244299A8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6658 +/* 0B9EB0 7F085380 C4480000 */ lwc1 $f8, ($v0) +/* 0B9EB4 7F085384 C4460004 */ lwc1 $f6, 4($v0) +/* 0B9EB8 7F085388 C4440008 */ lwc1 $f4, 8($v0) +/* 0B9EBC 7F08538C 27A40268 */ addiu $a0, $sp, 0x268 +/* 0B9EC0 7F085390 27A5025C */ addiu $a1, $sp, 0x25c +/* 0B9EC4 7F085394 E7A8025C */ swc1 $f8, 0x25c($sp) +/* 0B9EC8 7F085398 E7A60260 */ swc1 $f6, 0x260($sp) +/* 0B9ECC 7F08539C 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0B9ED0 7F0853A0 E7A40264 */ swc1 $f4, 0x264($sp) +/* 0B9ED4 7F0853A4 C7AA025C */ lwc1 $f10, 0x25c($sp) +/* 0B9ED8 7F0853A8 C6080058 */ lwc1 $f8, 0x58($s0) +/* 0B9EDC 7F0853AC C7A40260 */ lwc1 $f4, 0x260($sp) +/* 0B9EE0 7F0853B0 3C01C1A0 */ li $at, 0xC1A00000 # -20.000000 +/* 0B9EE4 7F0853B4 46085180 */ add.s $f6, $f10, $f8 +/* 0B9EE8 7F0853B8 44810000 */ mtc1 $at, $f0 +/* 0B9EEC 7F0853BC 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B9EF0 7F0853C0 44817000 */ mtc1 $at, $f14 +/* 0B9EF4 7F0853C4 E7A6025C */ swc1 $f6, 0x25c($sp) +/* 0B9EF8 7F0853C8 C60A005C */ lwc1 $f10, 0x5c($s0) +/* 0B9EFC 7F0853CC C7A60264 */ lwc1 $f6, 0x264($sp) +/* 0B9F00 7F0853D0 3C018003 */ lui $at, %hi(D_80036464) +/* 0B9F04 7F0853D4 460A2200 */ add.s $f8, $f4, $f10 +/* 0B9F08 7F0853D8 8E2A0000 */ lw $t2, ($s1) +/* 0B9F0C 7F0853DC E7A80260 */ swc1 $f8, 0x260($sp) +/* 0B9F10 7F0853E0 C6040060 */ lwc1 $f4, 0x60($s0) +/* 0B9F14 7F0853E4 C4286464 */ lwc1 $f8, %lo(D_80036464)($at) +/* 0B9F18 7F0853E8 3C018003 */ lui $at, %hi(D_80036474) +/* 0B9F1C 7F0853EC 46043280 */ add.s $f10, $f6, $f4 +/* 0B9F20 7F0853F0 C4266474 */ lwc1 $f6, %lo(D_80036474)($at) +/* 0B9F24 7F0853F4 3C018005 */ lui $at, %hi(D_800551E0) +/* 0B9F28 7F0853F8 46064100 */ add.s $f4, $f8, $f6 +/* 0B9F2C 7F0853FC E7AA0264 */ swc1 $f10, 0x264($sp) +/* 0B9F30 7F085400 C5420158 */ lwc1 $f2, 0x158($t2) +/* 0B9F34 7F085404 C42851E0 */ lwc1 $f8, %lo(D_800551E0)($at) +/* 0B9F38 7F085408 460E2282 */ mul.s $f10, $f4, $f14 +/* 0B9F3C 7F08540C 4600103C */ c.lt.s $f2, $f0 +/* 0B9F40 7F085410 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B9F44 7F085414 44819000 */ mtc1 $at, $f18 +/* 0B9F48 7F085418 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B9F4C 7F08541C 45000002 */ bc1f .L7F085428 +/* 0B9F50 7F085420 46085403 */ div.s $f16, $f10, $f8 +/* 0B9F54 7F085424 46000086 */ mov.s $f2, $f0 +.L7F085428: +/* 0B9F58 7F085428 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B9F5C 7F08542C 3C014234 */ li $at, 0x42340000 # 45.000000 +/* 0B9F60 7F085430 44812000 */ mtc1 $at, $f4 +/* 0B9F64 7F085434 3C108008 */ lui $s0, %hi(flt_CODE_bss_800799BC) +/* 0B9F68 7F085438 261099BC */ addiu $s0, %lo(flt_CODE_bss_800799BC) # addiu $s0, $s0, -0x6644 +/* 0B9F6C 7F08543C 46043283 */ div.s $f10, $f6, $f4 +/* 0B9F70 7F085440 C6080000 */ lwc1 $f8, ($s0) +/* 0B9F74 7F085444 3C018005 */ lui $at, %hi(D_800551E4) +/* 0B9F78 7F085448 460A4180 */ add.s $f6, $f8, $f10 +/* 0B9F7C 7F08544C E6060000 */ swc1 $f6, ($s0) +/* 0B9F80 7F085450 C6000000 */ lwc1 $f0, ($s0) +/* 0B9F84 7F085454 4600903E */ c.le.s $f18, $f0 +/* 0B9F88 7F085458 00000000 */ nop +/* 0B9F8C 7F08545C 45000003 */ bc1f .L7F08546C +/* 0B9F90 7F085460 00000000 */ nop +/* 0B9F94 7F085464 E6120000 */ swc1 $f18, ($s0) +/* 0B9F98 7F085468 C6000000 */ lwc1 $f0, ($s0) +.L7F08546C: +/* 0B9F9C 7F08546C C42451E4 */ lwc1 $f4, %lo(D_800551E4)($at) +/* 0B9FA0 7F085470 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B9FA4 7F085474 44815000 */ mtc1 $at, $f10 +/* 0B9FA8 7F085478 46040202 */ mul.s $f8, $f0, $f4 +/* 0B9FAC 7F08547C E7A20254 */ swc1 $f2, 0x254($sp) +/* 0B9FB0 7F085480 E7B00258 */ swc1 $f16, 0x258($sp) +/* 0B9FB4 7F085484 460A4302 */ mul.s $f12, $f8, $f10 +/* 0B9FB8 7F085488 0FC15FA8 */ jal cosf +/* 0B9FBC 7F08548C 00000000 */ nop +/* 0B9FC0 7F085490 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B9FC4 7F085494 44817000 */ mtc1 $at, $f14 +/* 0B9FC8 7F085498 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B9FCC 7F08549C 44813000 */ mtc1 $at, $f6 +/* 0B9FD0 7F0854A0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B9FD4 7F0854A4 44814000 */ mtc1 $at, $f8 +/* 0B9FD8 7F0854A8 46060100 */ add.s $f4, $f0, $f6 +/* 0B9FDC 7F0854AC 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799C0) +/* 0B9FE0 7F0854B0 244299C0 */ addiu $v0, %lo(flt_CODE_bss_800799C0) # addiu $v0, $v0, -0x6640 +/* 0B9FE4 7F0854B4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B9FE8 7F0854B8 46082282 */ mul.s $f10, $f4, $f8 +/* 0B9FEC 7F0854BC 44813000 */ mtc1 $at, $f6 +/* 0B9FF0 7F0854C0 C7A80254 */ lwc1 $f8, 0x254($sp) +/* 0B9FF4 7F0854C4 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C8) +/* 0B9FF8 7F0854C8 8E2D0000 */ lw $t5, ($s1) +/* 0B9FFC 7F0854CC C7B00258 */ lwc1 $f16, 0x258($sp) +/* 0BA000 7F0854D0 3C038008 */ lui $v1, %hi(flt_CODE_bss_800799D0) +/* 0BA004 7F0854D4 E44A0000 */ swc1 $f10, ($v0) +/* 0BA008 7F0854D8 C4420000 */ lwc1 $f2, ($v0) +/* 0BA00C 7F0854DC 246399D0 */ addiu $v1, %lo(flt_CODE_bss_800799D0) # addiu $v1, $v1, -0x6630 +/* 0BA010 7F0854E0 46023101 */ sub.s $f4, $f6, $f2 +/* 0BA014 7F0854E4 C42699C8 */ lwc1 $f6, %lo(flt_CODE_bss_800799C8)($at) +/* 0BA018 7F0854E8 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C4) +/* 0BA01C 7F0854EC 46082282 */ mul.s $f10, $f4, $f8 +/* 0BA020 7F0854F0 00000000 */ nop +/* 0BA024 7F0854F4 46061102 */ mul.s $f4, $f2, $f6 +/* 0BA028 7F0854F8 460A2200 */ add.s $f8, $f4, $f10 +/* 0BA02C 7F0854FC E5A80158 */ swc1 $f8, 0x158($t5) +/* 0BA030 7F085500 C43299C4 */ lwc1 $f18, %lo(flt_CODE_bss_800799C4)($at) +/* 0BA034 7F085504 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0BA038 7F085508 44813000 */ mtc1 $at, $f6 +/* 0BA03C 7F08550C 46128301 */ sub.s $f12, $f16, $f18 +/* 0BA040 7F085510 3C01C334 */ li $at, 0xC3340000 # -180.000000 +/* 0BA044 7F085514 44812000 */ mtc1 $at, $f4 +/* 0BA048 7F085518 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA04C 7F08551C 460C303C */ c.lt.s $f6, $f12 +/* 0BA050 7F085520 44814000 */ mtc1 $at, $f8 +/* 0BA054 7F085524 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA058 7F085528 45000002 */ bc1f .L7F085534 +/* 0BA05C 7F08552C 00000000 */ nop +/* 0BA060 7F085530 460E8401 */ sub.s $f16, $f16, $f14 +.L7F085534: +/* 0BA064 7F085534 4604603C */ c.lt.s $f12, $f4 +/* 0BA068 7F085538 00000000 */ nop +/* 0BA06C 7F08553C 45020003 */ bc1fl .L7F08554C +/* 0BA070 7F085540 C4420000 */ lwc1 $f2, ($v0) +/* 0BA074 7F085544 460E8400 */ add.s $f16, $f16, $f14 +/* 0BA078 7F085548 C4420000 */ lwc1 $f2, ($v0) +.L7F08554C: +/* 0BA07C 7F08554C 8E2E0000 */ lw $t6, ($s1) +/* 0BA080 7F085550 46024181 */ sub.s $f6, $f8, $f2 +/* 0BA084 7F085554 46121282 */ mul.s $f10, $f2, $f18 +/* 0BA088 7F085558 00000000 */ nop +/* 0BA08C 7F08555C 46103102 */ mul.s $f4, $f6, $f16 +/* 0BA090 7F085560 46045200 */ add.s $f8, $f10, $f4 +/* 0BA094 7F085564 44812000 */ mtc1 $at, $f4 +/* 0BA098 7F085568 E5C80148 */ swc1 $f8, 0x148($t6) +/* 0BA09C 7F08556C 8E280000 */ lw $t0, ($s1) +/* 0BA0A0 7F085570 C5000148 */ lwc1 $f0, 0x148($t0) +/* 0BA0A4 7F085574 4600703E */ c.le.s $f14, $f0 +/* 0BA0A8 7F085578 00000000 */ nop +/* 0BA0AC 7F08557C 45000005 */ bc1f .L7F085594 +/* 0BA0B0 7F085580 00000000 */ nop +/* 0BA0B4 7F085584 460E0181 */ sub.s $f6, $f0, $f14 +/* 0BA0B8 7F085588 E5060148 */ swc1 $f6, 0x148($t0) +/* 0BA0BC 7F08558C 8E280000 */ lw $t0, ($s1) +/* 0BA0C0 7F085590 C5000148 */ lwc1 $f0, 0x148($t0) +.L7F085594: +/* 0BA0C4 7F085594 4614003C */ c.lt.s $f0, $f20 +/* 0BA0C8 7F085598 00000000 */ nop +/* 0BA0CC 7F08559C 45020005 */ bc1fl .L7F0855B4 +/* 0BA0D0 7F0855A0 C4420000 */ lwc1 $f2, ($v0) +/* 0BA0D4 7F0855A4 460E0280 */ add.s $f10, $f0, $f14 +/* 0BA0D8 7F0855A8 E50A0148 */ swc1 $f10, 0x148($t0) +/* 0BA0DC 7F0855AC 8E280000 */ lw $t0, ($s1) +/* 0BA0E0 7F0855B0 C4420000 */ lwc1 $f2, ($v0) +.L7F0855B4: +/* 0BA0E4 7F0855B4 C4680000 */ lwc1 $f8, ($v1) +/* 0BA0E8 7F0855B8 C7AA025C */ lwc1 $f10, 0x25c($sp) +/* 0BA0EC 7F0855BC 46022001 */ sub.s $f0, $f4, $f2 +/* 0BA0F0 7F0855C0 46081182 */ mul.s $f6, $f2, $f8 +/* 0BA0F4 7F0855C4 00000000 */ nop +/* 0BA0F8 7F0855C8 460A0102 */ mul.s $f4, $f0, $f10 +/* 0BA0FC 7F0855CC C50A048C */ lwc1 $f10, 0x48c($t0) +/* 0BA100 7F0855D0 E7B403B0 */ swc1 $f20, 0x3b0($sp) +/* 0BA104 7F0855D4 46043200 */ add.s $f8, $f6, $f4 +/* 0BA108 7F0855D8 C4640008 */ lwc1 $f4, 8($v1) +/* 0BA10C 7F0855DC 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BA110 7F0855E0 46041202 */ mul.s $f8, $f2, $f4 +/* 0BA114 7F0855E4 C7AA0264 */ lwc1 $f10, 0x264($sp) +/* 0BA118 7F0855E8 E7A603AC */ swc1 $f6, 0x3ac($sp) +/* 0BA11C 7F0855EC 460A0182 */ mul.s $f6, $f0, $f10 +/* 0BA120 7F0855F0 C50A0494 */ lwc1 $f10, 0x494($t0) +/* 0BA124 7F0855F4 46064100 */ add.s $f4, $f8, $f6 +/* 0BA128 7F0855F8 460A2201 */ sub.s $f8, $f4, $f10 +/* 0BA12C 7F0855FC E7A803B4 */ swc1 $f8, 0x3b4($sp) +.L7F085600: +/* 0BA130 7F085600 3C108008 */ lui $s0, %hi(flt_CODE_bss_800799BC) +/* 0BA134 7F085604 261099BC */ addiu $s0, %lo(flt_CODE_bss_800799BC) # addiu $s0, $s0, -0x6644 +/* 0BA138 7F085608 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA13C 7F08560C 44812000 */ mtc1 $at, $f4 +/* 0BA140 7F085610 C6060000 */ lwc1 $f6, ($s0) +/* 0BA144 7F085614 8E280000 */ lw $t0, ($s1) +/* 0BA148 7F085618 3C018008 */ lui $at, %hi(dword_CODE_bss_800799B8) +/* 0BA14C 7F08561C 4606203E */ c.le.s $f4, $f6 +/* 0BA150 7F085620 240F0001 */ li $t7, 1 +/* 0BA154 7F085624 450200EF */ bc1fl .L7F0859E4 +/* 0BA158 7F085628 3C013F40 */ lui $at, %hi(0x3F3F99B8) # $at, 0x3f40 +/* 0BA15C 7F08562C 100000EC */ b .L7F0859E0 +/* 0BA160 7F085630 AC2F99B8 */ sw $t7, %lo(dword_CODE_bss_800799B8)($at) +.L7F085634: +/* 0BA164 7F085634 1441001A */ bne $v0, $at, .L7F0856A0 +/* 0BA168 7F085638 3C108003 */ lui $s0, %hi(SFX_80036458) +/* 0BA16C 7F08563C 240B0002 */ li $t3, 2 +/* 0BA170 7F085640 3C018008 */ lui $at, %hi(dword_CODE_bss_800799B8) +/* 0BA174 7F085644 26106458 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6458 +/* 0BA178 7F085648 AC2B99B8 */ sw $t3, %lo(dword_CODE_bss_800799B8)($at) +/* 0BA17C 7F08564C 8E180000 */ lw $t8, ($s0) +/* 0BA180 7F085650 5700000A */ bnezl $t8, .L7F08567C +/* 0BA184 7F085654 8E040000 */ lw $a0, ($s0) +/* 0BA188 7F085658 0FC2FF01 */ jal get_controls_locked_flag +/* 0BA18C 7F08565C 00000000 */ nop +/* 0BA190 7F085660 14400005 */ bnez $v0, .L7F085678 +/* 0BA194 7F085664 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0BA198 7F085668 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BA19C 7F08566C 24050042 */ li $a1, 66 +/* 0BA1A0 7F085670 0C002382 */ jal play_sfx_a1 +/* 0BA1A4 7F085674 02003025 */ move $a2, $s0 +.L7F085678: +/* 0BA1A8 7F085678 8E040000 */ lw $a0, ($s0) +.L7F08567C: +/* 0BA1AC 7F08567C 24050008 */ li $a1, 8 +/* 0BA1B0 7F085680 0C002461 */ jal sfx_c_70009184 +/* 0BA1B4 7F085684 240661A8 */ li $a2, 25000 +/* 0BA1B8 7F085688 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) +/* 0BA1BC 7F08568C 244299B4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x664c +/* 0BA1C0 7F085690 240C61A8 */ li $t4, 25000 +/* 0BA1C4 7F085694 AC4C0000 */ sw $t4, ($v0) +/* 0BA1C8 7F085698 100000D1 */ b .L7F0859E0 +/* 0BA1CC 7F08569C 8E280000 */ lw $t0, ($s1) +.L7F0856A0: +/* 0BA1D0 7F0856A0 8E280000 */ lw $t0, ($s1) +/* 0BA1D4 7F0856A4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0BA1D8 7F0856A8 44814000 */ mtc1 $at, $f8 +/* 0BA1DC 7F0856AC C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0BA1E0 7F0856B0 3C018005 */ lui $at, %hi(D_800551E8) +/* 0BA1E4 7F0856B4 C42451E8 */ lwc1 $f4, %lo(D_800551E8)($at) +/* 0BA1E8 7F0856B8 46085003 */ div.s $f0, $f10, $f8 +/* 0BA1EC 7F0856BC C506014C */ lwc1 $f6, 0x14c($t0) +/* 0BA1F0 7F0856C0 46043083 */ div.s $f2, $f6, $f4 +/* 0BA1F4 7F0856C4 4614003C */ c.lt.s $f0, $f20 +/* 0BA1F8 7F0856C8 00000000 */ nop +/* 0BA1FC 7F0856CC 45020003 */ bc1fl .L7F0856DC +/* 0BA200 7F0856D0 4614103C */ c.lt.s $f2, $f20 +/* 0BA204 7F0856D4 46000007 */ neg.s $f0, $f0 +/* 0BA208 7F0856D8 4614103C */ c.lt.s $f2, $f20 +.L7F0856DC: +/* 0BA20C 7F0856DC 00000000 */ nop +/* 0BA210 7F0856E0 45020003 */ bc1fl .L7F0856F0 +/* 0BA214 7F0856E4 4602003C */ c.lt.s $f0, $f2 +/* 0BA218 7F0856E8 46001087 */ neg.s $f2, $f2 +/* 0BA21C 7F0856EC 4602003C */ c.lt.s $f0, $f2 +.L7F0856F0: +/* 0BA220 7F0856F0 46000306 */ mov.s $f12, $f0 +/* 0BA224 7F0856F4 45020003 */ bc1fl .L7F085704 +/* 0BA228 7F0856F8 460CA03C */ c.lt.s $f20, $f12 +/* 0BA22C 7F0856FC 46001306 */ mov.s $f12, $f2 +/* 0BA230 7F085700 460CA03C */ c.lt.s $f20, $f12 +.L7F085704: +/* 0BA234 7F085704 00000000 */ nop +/* 0BA238 7F085708 45000043 */ bc1f .L7F085818 +/* 0BA23C 7F08570C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA240 7F085710 44815000 */ mtc1 $at, $f10 +/* 0BA244 7F085714 3C108003 */ lui $s0, %hi(SFX_80036458) +/* 0BA248 7F085718 26106458 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6458 +/* 0BA24C 7F08571C 460C503C */ c.lt.s $f10, $f12 +/* 0BA250 7F085720 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA254 7F085724 45020004 */ bc1fl .L7F085738 +/* 0BA258 7F085728 8E190004 */ lw $t9, 4($s0) +/* 0BA25C 7F08572C 44816000 */ mtc1 $at, $f12 +/* 0BA260 7F085730 00000000 */ nop +/* 0BA264 7F085734 8E190004 */ lw $t9, 4($s0) +.L7F085738: +/* 0BA268 7F085738 5720000E */ bnezl $t9, .L7F085774 +/* 0BA26C 7F08573C 8E040004 */ lw $a0, 4($s0) +/* 0BA270 7F085740 0FC2FF01 */ jal get_controls_locked_flag +/* 0BA274 7F085744 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA278 7F085748 14400009 */ bnez $v0, .L7F085770 +/* 0BA27C 7F08574C C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 0BA280 7F085750 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0BA284 7F085754 3C068003 */ lui $a2, %hi(SFX_8003645C) +/* 0BA288 7F085758 24C6645C */ addiu $a2, %lo(SFX_8003645C) # addiu $a2, $a2, 0x645c +/* 0BA28C 7F08575C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BA290 7F085760 2405003E */ li $a1, 62 +/* 0BA294 7F085764 0C002382 */ jal play_sfx_a1 +/* 0BA298 7F085768 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA29C 7F08576C C7AC0244 */ lwc1 $f12, 0x244($sp) +.L7F085770: +/* 0BA2A0 7F085770 8E040004 */ lw $a0, 4($s0) +.L7F085774: +/* 0BA2A4 7F085774 3C018005 */ lui $at, %hi(D_800551EC) +/* 0BA2A8 7F085778 24050008 */ li $a1, 8 +/* 0BA2AC 7F08577C 50800034 */ beql $a0, $zero, .L7F085850 +/* 0BA2B0 7F085780 8E0E0000 */ lw $t6, ($s0) +/* 0BA2B4 7F085784 C42051EC */ lwc1 $f0, %lo(D_800551EC)($at) +/* 0BA2B8 7F085788 24067FFF */ li $a2, 32767 +/* 0BA2BC 7F08578C 3C018005 */ lui $at, %hi(D_800551F4) +/* 0BA2C0 7F085790 4600603C */ c.lt.s $f12, $f0 +/* 0BA2C4 7F085794 00000000 */ nop +/* 0BA2C8 7F085798 45000009 */ bc1f .L7F0857C0 +/* 0BA2CC 7F08579C 00000000 */ nop +/* 0BA2D0 7F0857A0 3C018005 */ lui $at, %hi(D_800551F0) +/* 0BA2D4 7F0857A4 C42851F0 */ lwc1 $f8, %lo(D_800551F0)($at) +/* 0BA2D8 7F0857A8 46086182 */ mul.s $f6, $f12, $f8 +/* 0BA2DC 7F0857AC 46003103 */ div.s $f4, $f6, $f0 +/* 0BA2E0 7F0857B0 4600228D */ trunc.w.s $f10, $f4 +/* 0BA2E4 7F0857B4 44065000 */ mfc1 $a2, $f10 +/* 0BA2E8 7F0857B8 10000013 */ b .L7F085808 +/* 0BA2EC 7F0857BC 00000000 */ nop +.L7F0857C0: +/* 0BA2F0 7F0857C0 C42851F4 */ lwc1 $f8, %lo(D_800551F4)($at) +/* 0BA2F4 7F0857C4 3C018005 */ lui $at, %hi(D_800551F8) +/* 0BA2F8 7F0857C8 4608603C */ c.lt.s $f12, $f8 +/* 0BA2FC 7F0857CC 00000000 */ nop +/* 0BA300 7F0857D0 4500000D */ bc1f .L7F085808 +/* 0BA304 7F0857D4 00000000 */ nop +/* 0BA308 7F0857D8 46006181 */ sub.s $f6, $f12, $f0 +/* 0BA30C 7F0857DC C42451F8 */ lwc1 $f4, %lo(D_800551F8)($at) +/* 0BA310 7F0857E0 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BA314 7F0857E4 44814000 */ mtc1 $at, $f8 +/* 0BA318 7F0857E8 46043282 */ mul.s $f10, $f6, $f4 +/* 0BA31C 7F0857EC 3C018005 */ lui $at, %hi(D_800551FC) +/* 0BA320 7F0857F0 C42451FC */ lwc1 $f4, %lo(D_800551FC)($at) +/* 0BA324 7F0857F4 46085183 */ div.s $f6, $f10, $f8 +/* 0BA328 7F0857F8 46043280 */ add.s $f10, $f6, $f4 +/* 0BA32C 7F0857FC 4600520D */ trunc.w.s $f8, $f10 +/* 0BA330 7F085800 44064000 */ mfc1 $a2, $f8 +/* 0BA334 7F085804 00000000 */ nop +.L7F085808: +/* 0BA338 7F085808 0C002461 */ jal sfx_c_70009184 +/* 0BA33C 7F08580C E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA340 7F085810 1000000E */ b .L7F08584C +/* 0BA344 7F085814 C7AC0244 */ lwc1 $f12, 0x244($sp) +.L7F085818: +/* 0BA348 7F085818 3C108003 */ lui $s0, %hi(SFX_80036458) +/* 0BA34C 7F08581C 26106458 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6458 +/* 0BA350 7F085820 8E040004 */ lw $a0, 4($s0) +/* 0BA354 7F085824 5080000A */ beql $a0, $zero, .L7F085850 +/* 0BA358 7F085828 8E0E0000 */ lw $t6, ($s0) +/* 0BA35C 7F08582C 0C00237C */ jal sfxGetArg0Unk3F +/* 0BA360 7F085830 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA364 7F085834 10400005 */ beqz $v0, .L7F08584C +/* 0BA368 7F085838 C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 0BA36C 7F08583C 8E040004 */ lw $a0, 4($s0) +/* 0BA370 7F085840 0C002408 */ jal sfxDeactivate +/* 0BA374 7F085844 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA378 7F085848 C7AC0244 */ lwc1 $f12, 0x244($sp) +.L7F08584C: +/* 0BA37C 7F08584C 8E0E0000 */ lw $t6, ($s0) +.L7F085850: +/* 0BA380 7F085850 55C0000D */ bnezl $t6, .L7F085888 +/* 0BA384 7F085854 8E040000 */ lw $a0, ($s0) +/* 0BA388 7F085858 0FC2FF01 */ jal get_controls_locked_flag +/* 0BA38C 7F08585C E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA390 7F085860 14400008 */ bnez $v0, .L7F085884 +/* 0BA394 7F085864 C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 0BA398 7F085868 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0BA39C 7F08586C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BA3A0 7F085870 24050041 */ li $a1, 65 +/* 0BA3A4 7F085874 02003025 */ move $a2, $s0 +/* 0BA3A8 7F085878 0C002382 */ jal play_sfx_a1 +/* 0BA3AC 7F08587C E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA3B0 7F085880 C7AC0244 */ lwc1 $f12, 0x244($sp) +.L7F085884: +/* 0BA3B4 7F085884 8E040000 */ lw $a0, ($s0) +.L7F085888: +/* 0BA3B8 7F085888 1080001A */ beqz $a0, .L7F0858F4 +/* 0BA3BC 7F08588C 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) +/* 0BA3C0 7F085890 244299B4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x664c +/* 0BA3C4 7F085894 240F7FFF */ li $t7, 32767 +/* 0BA3C8 7F085898 AC4F0000 */ sw $t7, ($v0) +/* 0BA3CC 7F08589C 3C018005 */ lui $at, %hi(D_80055200) +/* 0BA3D0 7F0858A0 C4265200 */ lwc1 $f6, %lo(D_80055200)($at) +/* 0BA3D4 7F0858A4 3C018005 */ lui $at, %hi(D_80055204) +/* 0BA3D8 7F0858A8 24050008 */ li $a1, 8 +/* 0BA3DC 7F0858AC 4606603C */ c.lt.s $f12, $f6 +/* 0BA3E0 7F0858B0 00000000 */ nop +/* 0BA3E4 7F0858B4 4500000D */ bc1f .L7F0858EC +/* 0BA3E8 7F0858B8 00000000 */ nop +/* 0BA3EC 7F0858BC C4245204 */ lwc1 $f4, %lo(D_80055204)($at) +/* 0BA3F0 7F0858C0 3C018005 */ lui $at, %hi(D_80055208) +/* 0BA3F4 7F0858C4 C4285208 */ lwc1 $f8, %lo(D_80055208)($at) +/* 0BA3F8 7F0858C8 46046282 */ mul.s $f10, $f12, $f4 +/* 0BA3FC 7F0858CC 3C018005 */ lui $at, %hi(D_8005520C) +/* 0BA400 7F0858D0 C424520C */ lwc1 $f4, %lo(D_8005520C)($at) +/* 0BA404 7F0858D4 46085183 */ div.s $f6, $f10, $f8 +/* 0BA408 7F0858D8 46043280 */ add.s $f10, $f6, $f4 +/* 0BA40C 7F0858DC 4600520D */ trunc.w.s $f8, $f10 +/* 0BA410 7F0858E0 44184000 */ mfc1 $t8, $f8 +/* 0BA414 7F0858E4 00000000 */ nop +/* 0BA418 7F0858E8 AC580000 */ sw $t8, ($v0) +.L7F0858EC: +/* 0BA41C 7F0858EC 0C002461 */ jal sfx_c_70009184 +/* 0BA420 7F0858F0 8C460000 */ lw $a2, ($v0) +.L7F0858F4: +/* 0BA424 7F0858F4 0FC17674 */ jal get_item_in_hand +/* 0BA428 7F0858F8 00002025 */ move $a0, $zero +/* 0BA42C 7F0858FC 24010020 */ li $at, 32 +/* 0BA430 7F085900 14410007 */ bne $v0, $at, .L7F085920 +/* 0BA434 7F085904 3C048005 */ lui $a0, %hi(clock_timer) +/* 0BA438 7F085908 8E280000 */ lw $t0, ($s1) +/* 0BA43C 7F08590C 3C018005 */ lui $at, %hi(D_80055210) +/* 0BA440 7F085910 C4265210 */ lwc1 $f6, %lo(D_80055210)($at) +/* 0BA444 7F085914 C5022A08 */ lwc1 $f2, 0x2a08($t0) +/* 0BA448 7F085918 10000004 */ b .L7F08592C +/* 0BA44C 7F08591C 46061080 */ add.s $f2, $f2, $f6 +.L7F085920: +/* 0BA450 7F085920 3C018003 */ lui $at, %hi(D_8003646C) +/* 0BA454 7F085924 C422646C */ lwc1 $f2, %lo(D_8003646C)($at) +/* 0BA458 7F085928 8E280000 */ lw $t0, ($s1) +.L7F08592C: +/* 0BA45C 7F08592C 3C018005 */ lui $at, %hi(D_80055214) +/* 0BA460 7F085930 C4205214 */ lwc1 $f0, %lo(D_80055214)($at) +/* 0BA464 7F085934 3C018005 */ lui $at, %hi(D_80055218) +/* 0BA468 7F085938 4602003C */ c.lt.s $f0, $f2 +/* 0BA46C 7F08593C 00000000 */ nop +/* 0BA470 7F085940 45000002 */ bc1f .L7F08594C +/* 0BA474 7F085944 00000000 */ nop +/* 0BA478 7F085948 46000086 */ mov.s $f2, $f0 +.L7F08594C: +/* 0BA47C 7F08594C C4205218 */ lwc1 $f0, %lo(D_80055218)($at) +/* 0BA480 7F085950 4600103C */ c.lt.s $f2, $f0 +/* 0BA484 7F085954 00000000 */ nop +/* 0BA488 7F085958 45000002 */ bc1f .L7F085964 +/* 0BA48C 7F08595C 00000000 */ nop +/* 0BA490 7F085960 46000086 */ mov.s $f2, $f0 +.L7F085964: +/* 0BA494 7F085964 8C848374 */ lw $a0, %lo(clock_timer)($a0) +/* 0BA498 7F085968 00001025 */ move $v0, $zero +/* 0BA49C 7F08596C 18800014 */ blez $a0, .L7F0859C0 +/* 0BA4A0 7F085970 3C018005 */ lui $at, %hi(D_8005521C) +/* 0BA4A4 7F085974 3C038003 */ lui $v1, %hi(D_80036470) +/* 0BA4A8 7F085978 24636470 */ addiu $v1, %lo(D_80036470) # addiu $v1, $v1, 0x6470 +/* 0BA4AC 7F08597C C420521C */ lwc1 $f0, %lo(D_8005521C)($at) +/* 0BA4B0 7F085980 C4700000 */ lwc1 $f16, ($v1) +/* 0BA4B4 7F085984 24420001 */ addiu $v0, $v0, 1 +/* 0BA4B8 7F085988 0044082A */ slt $at, $v0, $a0 +/* 0BA4BC 7F08598C 46100482 */ mul.s $f18, $f0, $f16 +/* 0BA4C0 7F085990 5020000A */ beql $at, $zero, .L7F0859BC +/* 0BA4C4 7F085994 46029400 */ add.s $f16, $f18, $f2 +/* 0BA4C8 7F085998 46029400 */ add.s $f16, $f18, $f2 +.L7F08599C: +/* 0BA4CC 7F08599C 24420001 */ addiu $v0, $v0, 1 +/* 0BA4D0 7F0859A0 0044082A */ slt $at, $v0, $a0 +/* 0BA4D4 7F0859A4 E4700000 */ swc1 $f16, ($v1) +/* 0BA4D8 7F0859A8 C4700000 */ lwc1 $f16, ($v1) +/* 0BA4DC 7F0859AC 46100482 */ mul.s $f18, $f0, $f16 +/* 0BA4E0 7F0859B0 5420FFFA */ bnezl $at, .L7F08599C +/* 0BA4E4 7F0859B4 46029400 */ add.s $f16, $f18, $f2 +/* 0BA4E8 7F0859B8 46029400 */ add.s $f16, $f18, $f2 +.L7F0859BC: +/* 0BA4EC 7F0859BC E4700000 */ swc1 $f16, ($v1) +.L7F0859C0: +/* 0BA4F0 7F0859C0 3C038003 */ lui $v1, %hi(D_80036470) +/* 0BA4F4 7F0859C4 24636470 */ addiu $v1, %lo(D_80036470) # addiu $v1, $v1, 0x6470 +/* 0BA4F8 7F0859C8 3C018005 */ lui $at, %hi(D_80055220) +/* 0BA4FC 7F0859CC C4245220 */ lwc1 $f4, %lo(D_80055220)($at) +/* 0BA500 7F0859D0 C4660000 */ lwc1 $f6, ($v1) +/* 0BA504 7F0859D4 3C018003 */ lui $at, %hi(D_8003646C) +/* 0BA508 7F0859D8 46043282 */ mul.s $f10, $f6, $f4 +/* 0BA50C 7F0859DC E42A646C */ swc1 $f10, %lo(D_8003646C)($at) +.L7F0859E0: +/* 0BA510 7F0859E0 3C013F40 */ li $at, 0x3F400000 # 0.750000 +.L7F0859E4: +/* 0BA514 7F0859E4 44810000 */ mtc1 $at, $f0 +/* 0BA518 7F0859E8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA51C 7F0859EC C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0BA520 7F0859F0 3C018005 */ lui $at, %hi(D_80055224) +/* 0BA524 7F0859F4 C4245224 */ lwc1 $f4, %lo(D_80055224)($at) +/* 0BA528 7F0859F8 46080182 */ mul.s $f6, $f0, $f8 +/* 0BA52C 7F0859FC C508019C */ lwc1 $f8, 0x19c($t0) +/* 0BA530 7F085A00 4406A000 */ mfc1 $a2, $f20 +/* 0BA534 7F085A04 4600A306 */ mov.s $f12, $f20 +/* 0BA538 7F085A08 46043283 */ div.s $f10, $f6, $f4 +/* 0BA53C 7F085A0C 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BA540 7F085A10 E506019C */ swc1 $f6, 0x19c($t0) +/* 0BA544 7F085A14 8E280000 */ lw $t0, ($s1) +/* 0BA548 7F085A18 C504019C */ lwc1 $f4, 0x19c($t0) +/* 0BA54C 7F085A1C 4614203C */ c.lt.s $f4, $f20 +/* 0BA550 7F085A20 00000000 */ nop +/* 0BA554 7F085A24 45000002 */ bc1f .L7F085A30 +/* 0BA558 7F085A28 00000000 */ nop +/* 0BA55C 7F085A2C E514019C */ swc1 $f20, 0x19c($t0) +.L7F085A30: +/* 0BA560 7F085A30 0FC202CD */ jal sub_GAME_7F080B34 +/* 0BA564 7F085A34 4600A386 */ mov.s $f14, $f20 +/* 0BA568 7F085A38 3C018005 */ lui $at, %hi(D_80055228) +/* 0BA56C 7F085A3C C4285228 */ lwc1 $f8, %lo(D_80055228)($at) +/* 0BA570 7F085A40 3C018003 */ lui $at, %hi(D_80036464) +/* 0BA574 7F085A44 C42A6464 */ lwc1 $f10, %lo(D_80036464)($at) +/* 0BA578 7F085A48 0FC15FAB */ jal sinf +/* 0BA57C 7F085A4C 460A4301 */ sub.s $f12, $f8, $f10 +/* 0BA580 7F085A50 8E2C0000 */ lw $t4, ($s1) +/* 0BA584 7F085A54 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA588 7F085A58 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0BA58C 7F085A5C C5860174 */ lwc1 $f6, 0x174($t4) +/* 0BA590 7F085A60 3C018005 */ lui $at, %hi(D_8005522C) +/* 0BA594 7F085A64 46003102 */ mul.s $f4, $f6, $f0 +/* 0BA598 7F085A68 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0BA59C 7F085A6C 46082282 */ mul.s $f10, $f4, $f8 +/* 0BA5A0 7F085A70 C428522C */ lwc1 $f8, %lo(D_8005522C)($at) +/* 0BA5A4 7F085A74 3C018003 */ lui $at, %hi(D_80036464) +/* 0BA5A8 7F085A78 460A3100 */ add.s $f4, $f6, $f10 +/* 0BA5AC 7F085A7C C4266464 */ lwc1 $f6, %lo(D_80036464)($at) +/* 0BA5B0 7F085A80 E7A403AC */ swc1 $f4, 0x3ac($sp) +/* 0BA5B4 7F085A84 0FC15FA8 */ jal cosf +/* 0BA5B8 7F085A88 46064301 */ sub.s $f12, $f8, $f6 +/* 0BA5BC 7F085A8C 8E390000 */ lw $t9, ($s1) +/* 0BA5C0 7F085A90 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA5C4 7F085A94 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0BA5C8 7F085A98 C72A0174 */ lwc1 $f10, 0x174($t9) +/* 0BA5CC 7F085A9C 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0BA5D0 7F085AA0 24050001 */ li $a1, 1 +/* 0BA5D4 7F085AA4 46005102 */ mul.s $f4, $f10, $f0 +/* 0BA5D8 7F085AA8 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BA5DC 7F085AAC 46082182 */ mul.s $f6, $f4, $f8 +/* 0BA5E0 7F085AB0 46065100 */ add.s $f4, $f10, $f6 +/* 0BA5E4 7F085AB4 0FC1F658 */ jal sub_GAME_7F07D960 +/* 0BA5E8 7F085AB8 E7A403B4 */ swc1 $f4, 0x3b4($sp) +/* 0BA5EC 7F085ABC 3C0A8008 */ lui $t2, %hi(dword_CODE_bss_800799B8) +/* 0BA5F0 7F085AC0 8D4A99B8 */ lw $t2, %lo(dword_CODE_bss_800799B8)($t2) +/* 0BA5F4 7F085AC4 24010002 */ li $at, 2 +/* 0BA5F8 7F085AC8 3C0D8005 */ lui $t5, %hi(clock_timer) +/* 0BA5FC 7F085ACC 55410237 */ bnel $t2, $at, .L7F0863AC +/* 0BA600 7F085AD0 8E280000 */ lw $t0, ($s1) +/* 0BA604 7F085AD4 8DAD8374 */ lw $t5, %lo(clock_timer)($t5) +/* 0BA608 7F085AD8 59A00234 */ blezl $t5, .L7F0863AC +/* 0BA60C 7F085ADC 8E280000 */ lw $t0, ($s1) +/* 0BA610 7F085AE0 8E280000 */ lw $t0, ($s1) +/* 0BA614 7F085AE4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA618 7F085AE8 C42E8378 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BA61C 7F085AEC C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BA620 7F085AF0 C50A0408 */ lwc1 $f10, 0x408($t0) +/* 0BA624 7F085AF4 C5040494 */ lwc1 $f4, 0x494($t0) +/* 0BA628 7F085AF8 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BA62C 7F085AFC C5080410 */ lwc1 $f8, 0x410($t0) +/* 0BA630 7F085B00 46082281 */ sub.s $f10, $f4, $f8 +/* 0BA634 7F085B04 460E3003 */ div.s $f0, $f6, $f14 +/* 0BA638 7F085B08 460E5083 */ div.s $f2, $f10, $f14 +/* 0BA63C 7F085B0C 46000182 */ mul.s $f6, $f0, $f0 +/* 0BA640 7F085B10 00000000 */ nop +/* 0BA644 7F085B14 46021102 */ mul.s $f4, $f2, $f2 +/* 0BA648 7F085B18 0C007DF8 */ jal sqrtf +/* 0BA64C 7F085B1C 46043300 */ add.s $f12, $f6, $f4 +/* 0BA650 7F085B20 8E280000 */ lw $t0, ($s1) +/* 0BA654 7F085B24 46000086 */ mov.s $f2, $f0 +/* 0BA658 7F085B28 C5080174 */ lwc1 $f8, 0x174($t0) +/* 0BA65C 7F085B2C 4614403C */ c.lt.s $f8, $f20 +/* 0BA660 7F085B30 00000000 */ nop +/* 0BA664 7F085B34 45000002 */ bc1f .L7F085B40 +/* 0BA668 7F085B38 00000000 */ nop +/* 0BA66C 7F085B3C 46000087 */ neg.s $f2, $f0 +.L7F085B40: +/* 0BA670 7F085B40 10000219 */ b .L7F0863A8 +/* 0BA674 7F085B44 E5020174 */ swc1 $f2, 0x174($t0) +.L7F085B48: +/* 0BA678 7F085B48 8E040000 */ lw $a0, ($s0) +/* 0BA67C 7F085B4C 50800019 */ beql $a0, $zero, .L7F085BB4 +/* 0BA680 7F085B50 8E040004 */ lw $a0, 4($s0) +/* 0BA684 7F085B54 0C00237C */ jal sfxGetArg0Unk3F +/* 0BA688 7F085B58 00000000 */ nop +/* 0BA68C 7F085B5C 10400014 */ beqz $v0, .L7F085BB0 +/* 0BA690 7F085B60 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 0BA694 7F085B64 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 0BA698 7F085B68 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) +/* 0BA69C 7F085B6C 244299B4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x664c +/* 0BA6A0 7F085B70 000F5940 */ sll $t3, $t7, 5 +/* 0BA6A4 7F085B74 016F5823 */ subu $t3, $t3, $t7 +/* 0BA6A8 7F085B78 8C4E0000 */ lw $t6, ($v0) +/* 0BA6AC 7F085B7C 000B5880 */ sll $t3, $t3, 2 +/* 0BA6B0 7F085B80 016F5821 */ addu $t3, $t3, $t7 +/* 0BA6B4 7F085B84 000B58C0 */ sll $t3, $t3, 3 +/* 0BA6B8 7F085B88 01CB3023 */ subu $a2, $t6, $t3 +/* 0BA6BC 7F085B8C 18C00006 */ blez $a2, .L7F085BA8 +/* 0BA6C0 7F085B90 AC460000 */ sw $a2, ($v0) +/* 0BA6C4 7F085B94 8E040000 */ lw $a0, ($s0) +/* 0BA6C8 7F085B98 0C002461 */ jal sfx_c_70009184 +/* 0BA6CC 7F085B9C 24050008 */ li $a1, 8 +/* 0BA6D0 7F085BA0 10000004 */ b .L7F085BB4 +/* 0BA6D4 7F085BA4 8E040004 */ lw $a0, 4($s0) +.L7F085BA8: +/* 0BA6D8 7F085BA8 0C002408 */ jal sfxDeactivate +/* 0BA6DC 7F085BAC 8E040000 */ lw $a0, ($s0) +.L7F085BB0: +/* 0BA6E0 7F085BB0 8E040004 */ lw $a0, 4($s0) +.L7F085BB4: +/* 0BA6E4 7F085BB4 10800007 */ beqz $a0, .L7F085BD4 +/* 0BA6E8 7F085BB8 00000000 */ nop +/* 0BA6EC 7F085BBC 0C00237C */ jal sfxGetArg0Unk3F +/* 0BA6F0 7F085BC0 00000000 */ nop +/* 0BA6F4 7F085BC4 10400003 */ beqz $v0, .L7F085BD4 +/* 0BA6F8 7F085BC8 00000000 */ nop +/* 0BA6FC 7F085BCC 0C002408 */ jal sfxDeactivate +/* 0BA700 7F085BD0 8E040004 */ lw $a0, 4($s0) +.L7F085BD4: +/* 0BA704 7F085BD4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA708 7F085BD8 C42E8378 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BA70C 7F085BDC 3C018003 */ lui $at, %hi(D_80036AF4) +/* 0BA710 7F085BE0 C42A6AF4 */ lwc1 $f10, %lo(D_80036AF4)($at) +/* 0BA714 7F085BE4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BA718 7F085BE8 44813000 */ mtc1 $at, $f6 +/* 0BA71C 7F085BEC 8E280000 */ lw $t0, ($s1) +/* 0BA720 7F085BF0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0BA724 7F085BF4 46065102 */ mul.s $f4, $f10, $f6 +/* 0BA728 7F085BF8 C508016C */ lwc1 $f8, 0x16c($t0) +/* 0BA72C 7F085BFC E7A8004C */ swc1 $f8, 0x4c($sp) +/* 0BA730 7F085C00 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0BA734 7F085C04 460E2302 */ mul.s $f12, $f4, $f14 +/* 0BA738 7F085C08 00000000 */ nop +/* 0BA73C 7F085C0C 460C5182 */ mul.s $f6, $f10, $f12 +/* 0BA740 7F085C10 E7A603A0 */ swc1 $f6, 0x3a0($sp) +/* 0BA744 7F085C14 C5001274 */ lwc1 $f0, 0x1274($t0) +/* 0BA748 7F085C18 C50404A0 */ lwc1 $f4, 0x4a0($t0) +/* 0BA74C 7F085C1C C5061278 */ lwc1 $f6, 0x1278($t0) +/* 0BA750 7F085C20 46000207 */ neg.s $f8, $f0 +/* 0BA754 7F085C24 C50A0498 */ lwc1 $f10, 0x498($t0) +/* 0BA758 7F085C28 46082402 */ mul.s $f16, $f4, $f8 +/* 0BA75C 7F085C2C 46068101 */ sub.s $f4, $f16, $f6 +/* 0BA760 7F085C30 46005482 */ mul.s $f18, $f10, $f0 +/* 0BA764 7F085C34 E7A40220 */ swc1 $f4, 0x220($sp) +/* 0BA768 7F085C38 C508127C */ lwc1 $f8, 0x127c($t0) +/* 0BA76C 7F085C3C C7A60220 */ lwc1 $f6, 0x220($sp) +/* 0BA770 7F085C40 46089281 */ sub.s $f10, $f18, $f8 +/* 0BA774 7F085C44 46063102 */ mul.s $f4, $f6, $f6 +/* 0BA778 7F085C48 E7AA021C */ swc1 $f10, 0x21c($sp) +/* 0BA77C 7F085C4C C7A8021C */ lwc1 $f8, 0x21c($sp) +/* 0BA780 7F085C50 46084282 */ mul.s $f10, $f8, $f8 +/* 0BA784 7F085C54 460A2080 */ add.s $f2, $f4, $f10 +/* 0BA788 7F085C58 44812000 */ mtc1 $at, $f4 +/* 0BA78C 7F085C5C 00000000 */ nop +/* 0BA790 7F085C60 4602203E */ c.le.s $f4, $f2 +/* 0BA794 7F085C64 E7A20218 */ swc1 $f2, 0x218($sp) +/* 0BA798 7F085C68 45000008 */ bc1f .L7F085C8C +/* 0BA79C 7F085C6C 00000000 */ nop +/* 0BA7A0 7F085C70 3C018005 */ lui $at, %hi(D_80055230) +/* 0BA7A4 7F085C74 C4205230 */ lwc1 $f0, %lo(D_80055230)($at) +/* 0BA7A8 7F085C78 46003282 */ mul.s $f10, $f6, $f0 +/* 0BA7AC 7F085C7C 00000000 */ nop +/* 0BA7B0 7F085C80 46004102 */ mul.s $f4, $f8, $f0 +/* 0BA7B4 7F085C84 E7AA0220 */ swc1 $f10, 0x220($sp) +/* 0BA7B8 7F085C88 E7A4021C */ swc1 $f4, 0x21c($sp) +.L7F085C8C: +/* 0BA7BC 7F085C8C 3C018005 */ lui $at, %hi(D_80055234) +/* 0BA7C0 7F085C90 C4305234 */ lwc1 $f16, %lo(D_80055234)($at) +/* 0BA7C4 7F085C94 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 0BA7C8 7F085C98 C50A014C */ lwc1 $f10, 0x14c($t0) +/* 0BA7CC 7F085C9C C5020174 */ lwc1 $f2, 0x174($t0) +/* 0BA7D0 7F085CA0 46103002 */ mul.s $f0, $f6, $f16 +/* 0BA7D4 7F085CA4 4614003C */ c.lt.s $f0, $f20 +/* 0BA7D8 7F085CA8 46105302 */ mul.s $f12, $f10, $f16 +/* 0BA7DC 7F085CAC 45020003 */ bc1fl .L7F085CBC +/* 0BA7E0 7F085CB0 4614103C */ c.lt.s $f2, $f20 +/* 0BA7E4 7F085CB4 46000007 */ neg.s $f0, $f0 +/* 0BA7E8 7F085CB8 4614103C */ c.lt.s $f2, $f20 +.L7F085CBC: +/* 0BA7EC 7F085CBC 3C018005 */ lui $at, %hi(D_80055238) +/* 0BA7F0 7F085CC0 45020003 */ bc1fl .L7F085CD0 +/* 0BA7F4 7F085CC4 4614603C */ c.lt.s $f12, $f20 +/* 0BA7F8 7F085CC8 46001087 */ neg.s $f2, $f2 +/* 0BA7FC 7F085CCC 4614603C */ c.lt.s $f12, $f20 +.L7F085CD0: +/* 0BA800 7F085CD0 00000000 */ nop +/* 0BA804 7F085CD4 45020003 */ bc1fl .L7F085CE4 +/* 0BA808 7F085CD8 4600103C */ c.lt.s $f2, $f0 +/* 0BA80C 7F085CDC 46006307 */ neg.s $f12, $f12 +/* 0BA810 7F085CE0 4600103C */ c.lt.s $f2, $f0 +.L7F085CE4: +/* 0BA814 7F085CE4 E7A20398 */ swc1 $f2, 0x398($sp) +/* 0BA818 7F085CE8 45020003 */ bc1fl .L7F085CF8 +/* 0BA81C 7F085CEC C7A80398 */ lwc1 $f8, 0x398($sp) +/* 0BA820 7F085CF0 E7A00398 */ swc1 $f0, 0x398($sp) +/* 0BA824 7F085CF4 C7A80398 */ lwc1 $f8, 0x398($sp) +.L7F085CF8: +/* 0BA828 7F085CF8 460C403C */ c.lt.s $f8, $f12 +/* 0BA82C 7F085CFC 00000000 */ nop +/* 0BA830 7F085D00 45020003 */ bc1fl .L7F085D10 +/* 0BA834 7F085D04 C7A40218 */ lwc1 $f4, 0x218($sp) +/* 0BA838 7F085D08 E7AC0398 */ swc1 $f12, 0x398($sp) +/* 0BA83C 7F085D0C C7A40218 */ lwc1 $f4, 0x218($sp) +.L7F085D10: +/* 0BA840 7F085D10 C4265238 */ lwc1 $f6, %lo(D_80055238)($at) +/* 0BA844 7F085D14 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BA848 7F085D18 44810000 */ mtc1 $at, $f0 +/* 0BA84C 7F085D1C 4604303E */ c.le.s $f6, $f4 +/* 0BA850 7F085D20 00000000 */ nop +/* 0BA854 7F085D24 45020008 */ bc1fl .L7F085D48 +/* 0BA858 7F085D28 C7A80398 */ lwc1 $f8, 0x398($sp) +/* 0BA85C 7F085D2C C7AA0398 */ lwc1 $f10, 0x398($sp) +/* 0BA860 7F085D30 4610503C */ c.lt.s $f10, $f16 +/* 0BA864 7F085D34 00000000 */ nop +/* 0BA868 7F085D38 45020003 */ bc1fl .L7F085D48 +/* 0BA86C 7F085D3C C7A80398 */ lwc1 $f8, 0x398($sp) +/* 0BA870 7F085D40 E7B00398 */ swc1 $f16, 0x398($sp) +/* 0BA874 7F085D44 C7A80398 */ lwc1 $f8, 0x398($sp) +.L7F085D48: +/* 0BA878 7F085D48 4608003E */ c.le.s $f0, $f8 +/* 0BA87C 7F085D4C 00000000 */ nop +/* 0BA880 7F085D50 4502000B */ bc1fl .L7F085D80 +/* 0BA884 7F085D54 C7AA0398 */ lwc1 $f10, 0x398($sp) +/* 0BA888 7F085D58 46004101 */ sub.s $f4, $f8, $f0 +/* 0BA88C 7F085D5C 3C014461 */ li $at, 0x44610000 # 900.000000 +/* 0BA890 7F085D60 44815000 */ mtc1 $at, $f10 +/* 0BA894 7F085D64 460E2182 */ mul.s $f6, $f4, $f14 +/* 0BA898 7F085D68 C504019C */ lwc1 $f4, 0x19c($t0) +/* 0BA89C 7F085D6C 460A3203 */ div.s $f8, $f6, $f10 +/* 0BA8A0 7F085D70 46082180 */ add.s $f6, $f4, $f8 +/* 0BA8A4 7F085D74 1000000A */ b .L7F085DA0 +/* 0BA8A8 7F085D78 E506019C */ swc1 $f6, 0x19c($t0) +/* 0BA8AC 7F085D7C C7AA0398 */ lwc1 $f10, 0x398($sp) +.L7F085D80: +/* 0BA8B0 7F085D80 3C018005 */ lui $at, %hi(D_8005523C) +/* 0BA8B4 7F085D84 C426523C */ lwc1 $f6, %lo(D_8005523C)($at) +/* 0BA8B8 7F085D88 460A0101 */ sub.s $f4, $f0, $f10 +/* 0BA8BC 7F085D8C 460E2202 */ mul.s $f8, $f4, $f14 +/* 0BA8C0 7F085D90 C504019C */ lwc1 $f4, 0x19c($t0) +/* 0BA8C4 7F085D94 46064283 */ div.s $f10, $f8, $f6 +/* 0BA8C8 7F085D98 460A2201 */ sub.s $f8, $f4, $f10 +/* 0BA8CC 7F085D9C E508019C */ swc1 $f8, 0x19c($t0) +.L7F085DA0: +/* 0BA8D0 7F085DA0 8E280000 */ lw $t0, ($s1) +/* 0BA8D4 7F085DA4 C500019C */ lwc1 $f0, 0x19c($t0) +/* 0BA8D8 7F085DA8 4614003C */ c.lt.s $f0, $f20 +/* 0BA8DC 7F085DAC 00000000 */ nop +/* 0BA8E0 7F085DB0 45020005 */ bc1fl .L7F085DC8 +/* 0BA8E4 7F085DB4 3C013F80 */ lui $at, 0x3f80 +/* 0BA8E8 7F085DB8 E514019C */ swc1 $f20, 0x19c($t0) +/* 0BA8EC 7F085DBC 1000000C */ b .L7F085DF0 +/* 0BA8F0 7F085DC0 8E280000 */ lw $t0, ($s1) +/* 0BA8F4 7F085DC4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F085DC8: +/* 0BA8F8 7F085DC8 44813000 */ mtc1 $at, $f6 +/* 0BA8FC 7F085DCC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA900 7F085DD0 4600303C */ c.lt.s $f6, $f0 +/* 0BA904 7F085DD4 00000000 */ nop +/* 0BA908 7F085DD8 45020006 */ bc1fl .L7F085DF4 +/* 0BA90C 7F085DDC C7AC0398 */ lwc1 $f12, 0x398($sp) +/* 0BA910 7F085DE0 44812000 */ mtc1 $at, $f4 +/* 0BA914 7F085DE4 00000000 */ nop +/* 0BA918 7F085DE8 E504019C */ swc1 $f4, 0x19c($t0) +/* 0BA91C 7F085DEC 8E280000 */ lw $t0, ($s1) +.L7F085DF0: +/* 0BA920 7F085DF0 C7AC0398 */ lwc1 $f12, 0x398($sp) +.L7F085DF4: +/* 0BA924 7F085DF4 C50E0174 */ lwc1 $f14, 0x174($t0) +/* 0BA928 7F085DF8 0FC202CD */ jal sub_GAME_7F080B34 +/* 0BA92C 7F085DFC 8FA603A0 */ lw $a2, 0x3a0($sp) +/* 0BA930 7F085E00 8E280000 */ lw $t0, ($s1) +/* 0BA934 7F085E04 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA938 7F085E08 C42E8378 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BA93C 7F085E0C C5020504 */ lwc1 $f2, 0x504($t0) +/* 0BA940 7F085E10 C50A0498 */ lwc1 $f10, 0x498($t0) +/* 0BA944 7F085E14 C50004FC */ lwc1 $f0, 0x4fc($t0) +/* 0BA948 7F085E18 C50604A0 */ lwc1 $f6, 0x4a0($t0) +/* 0BA94C 7F085E1C 460A1202 */ mul.s $f8, $f2, $f10 +/* 0BA950 7F085E20 00000000 */ nop +/* 0BA954 7F085E24 46060102 */ mul.s $f4, $f0, $f6 +/* 0BA958 7F085E28 46044281 */ sub.s $f10, $f8, $f4 +/* 0BA95C 7F085E2C C7A803AC */ lwc1 $f8, 0x3ac($sp) +/* 0BA960 7F085E30 460E5182 */ mul.s $f6, $f10, $f14 +/* 0BA964 7F085E34 46064100 */ add.s $f4, $f8, $f6 +/* 0BA968 7F085E38 E7A403AC */ swc1 $f4, 0x3ac($sp) +/* 0BA96C 7F085E3C C50A04A0 */ lwc1 $f10, 0x4a0($t0) +/* 0BA970 7F085E40 C5060498 */ lwc1 $f6, 0x498($t0) +/* 0BA974 7F085E44 460A1202 */ mul.s $f8, $f2, $f10 +/* 0BA978 7F085E48 00000000 */ nop +/* 0BA97C 7F085E4C 46060282 */ mul.s $f10, $f0, $f6 +/* 0BA980 7F085E50 460A4180 */ add.s $f6, $f8, $f10 +/* 0BA984 7F085E54 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BA988 7F085E58 460E3202 */ mul.s $f8, $f6, $f14 +/* 0BA98C 7F085E5C 46085180 */ add.s $f6, $f10, $f8 +/* 0BA990 7F085E60 C7AA0220 */ lwc1 $f10, 0x220($sp) +/* 0BA994 7F085E64 460A2200 */ add.s $f8, $f4, $f10 +/* 0BA998 7F085E68 C7A4021C */ lwc1 $f4, 0x21c($sp) +/* 0BA99C 7F085E6C E7A603B4 */ swc1 $f6, 0x3b4($sp) +/* 0BA9A0 7F085E70 46043280 */ add.s $f10, $f6, $f4 +/* 0BA9A4 7F085E74 E7A803AC */ swc1 $f8, 0x3ac($sp) +/* 0BA9A8 7F085E78 E7AA03B4 */ swc1 $f10, 0x3b4($sp) +/* 0BA9AC 7F085E7C C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BA9B0 7F085E80 E7A80208 */ swc1 $f8, 0x208($sp) +/* 0BA9B4 7F085E84 C5060494 */ lwc1 $f6, 0x494($t0) +/* 0BA9B8 7F085E88 E7A60204 */ swc1 $f6, 0x204($sp) +/* 0BA9BC 7F085E8C 8D0C0488 */ lw $t4, 0x488($t0) +/* 0BA9C0 7F085E90 0FC24406 */ jal get_debug_fast_bond_flag +/* 0BA9C4 7F085E94 AFAC0200 */ sw $t4, 0x200($sp) +/* 0BA9C8 7F085E98 50400021 */ beql $v0, $zero, .L7F085F20 +/* 0BA9CC 7F085E9C 8E390000 */ lw $t9, ($s1) +/* 0BA9D0 7F085EA0 8E280000 */ lw $t0, ($s1) +/* 0BA9D4 7F085EA4 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0BA9D8 7F085EA8 44810000 */ mtc1 $at, $f0 +/* 0BA9DC 7F085EAC C5040498 */ lwc1 $f4, 0x498($t0) +/* 0BA9E0 7F085EB0 C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0BA9E4 7F085EB4 C50604A0 */ lwc1 $f6, 0x4a0($t0) +/* 0BA9E8 7F085EB8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA9EC 7F085EBC 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BA9F0 7F085EC0 C504016C */ lwc1 $f4, 0x16c($t0) +/* 0BA9F4 7F085EC4 C42E8378 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BA9F8 7F085EC8 46043282 */ mul.s $f10, $f6, $f4 +/* 0BA9FC 7F085ECC 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BAA00 7F085ED0 C7AA03AC */ lwc1 $f10, 0x3ac($sp) +/* 0BAA04 7F085ED4 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BAA08 7F085ED8 00000000 */ nop +/* 0BAA0C 7F085EDC 46002202 */ mul.s $f8, $f4, $f0 +/* 0BAA10 7F085EE0 46085180 */ add.s $f6, $f10, $f8 +/* 0BAA14 7F085EE4 E7A603AC */ swc1 $f6, 0x3ac($sp) +/* 0BAA18 7F085EE8 C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0BAA1C 7F085EEC C50404A0 */ lwc1 $f4, 0x4a0($t0) +/* 0BAA20 7F085EF0 C5060498 */ lwc1 $f6, 0x498($t0) +/* 0BAA24 7F085EF4 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BAA28 7F085EF8 C504016C */ lwc1 $f4, 0x16c($t0) +/* 0BAA2C 7F085EFC 46043282 */ mul.s $f10, $f6, $f4 +/* 0BAA30 7F085F00 460A4180 */ add.s $f6, $f8, $f10 +/* 0BAA34 7F085F04 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BAA38 7F085F08 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BAA3C 7F085F0C 00000000 */ nop +/* 0BAA40 7F085F10 46002202 */ mul.s $f8, $f4, $f0 +/* 0BAA44 7F085F14 46085180 */ add.s $f6, $f10, $f8 +/* 0BAA48 7F085F18 E7A603B4 */ swc1 $f6, 0x3b4($sp) +/* 0BAA4C 7F085F1C 8E390000 */ lw $t9, ($s1) +.L7F085F20: +/* 0BAA50 7F085F20 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0BAA54 7F085F24 00002825 */ move $a1, $zero +/* 0BAA58 7F085F28 C7241274 */ lwc1 $f4, 0x1274($t9) +/* 0BAA5C 7F085F2C 4604A032 */ c.eq.s $f20, $f4 +/* 0BAA60 7F085F30 00000000 */ nop +/* 0BAA64 7F085F34 45000002 */ bc1f .L7F085F40 +/* 0BAA68 7F085F38 00000000 */ nop +/* 0BAA6C 7F085F3C 24050001 */ li $a1, 1 +.L7F085F40: +/* 0BAA70 7F085F40 0FC1F658 */ jal sub_GAME_7F07D960 +/* 0BAA74 7F085F44 00000000 */ nop +/* 0BAA78 7F085F48 8E2A0000 */ lw $t2, ($s1) +/* 0BAA7C 7F085F4C 3C018005 */ lui $at, %hi(D_80055240) +/* 0BAA80 7F085F50 C4285240 */ lwc1 $f8, %lo(D_80055240)($at) +/* 0BAA84 7F085F54 C54A04B0 */ lwc1 $f10, 0x4b0($t2) +/* 0BAA88 7F085F58 27B001B4 */ addiu $s0, $sp, 0x1b4 +/* 0BAA8C 7F085F5C AFB00010 */ sw $s0, 0x10($sp) +/* 0BAA90 7F085F60 46085182 */ mul.s $f6, $f10, $f8 +/* 0BAA94 7F085F64 27A40200 */ addiu $a0, $sp, 0x200 +/* 0BAA98 7F085F68 8FA50208 */ lw $a1, 0x208($sp) +/* 0BAA9C 7F085F6C 8FA60204 */ lw $a2, 0x204($sp) +/* 0BAAA0 7F085F70 44073000 */ mfc1 $a3, $f6 +/* 0BAAA4 7F085F74 0FC2C8C5 */ jal sub_GAME_7F0B2314 +/* 0BAAA8 7F085F78 00000000 */ nop +/* 0BAAAC 7F085F7C 0FC2C8E9 */ jal sub_GAME_7F0B23A4 +/* 0BAAB0 7F085F80 02002025 */ move $a0, $s0 +/* 0BAAB4 7F085F84 10400002 */ beqz $v0, .L7F085F90 +/* 0BAAB8 7F085F88 240D0001 */ li $t5, 1 +/* 0BAABC 7F085F8C AFAD0394 */ sw $t5, 0x394($sp) +.L7F085F90: +/* 0BAAC0 7F085F90 8E280000 */ lw $t0, ($s1) +/* 0BAAC4 7F085F94 3C018005 */ lui $at, %hi(D_80055244) +/* 0BAAC8 7F085F98 C42A5244 */ lwc1 $f10, %lo(D_80055244)($at) +/* 0BAACC 7F085F9C C50404B0 */ lwc1 $f4, 0x4b0($t0) +/* 0BAAD0 7F085FA0 8D05048C */ lw $a1, 0x48c($t0) +/* 0BAAD4 7F085FA4 8D060494 */ lw $a2, 0x494($t0) +/* 0BAAD8 7F085FA8 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BAADC 7F085FAC AFB00010 */ sw $s0, 0x10($sp) +/* 0BAAE0 7F085FB0 25040488 */ addiu $a0, $t0, 0x488 +/* 0BAAE4 7F085FB4 44074000 */ mfc1 $a3, $f8 +/* 0BAAE8 7F085FB8 0FC2C8C5 */ jal sub_GAME_7F0B2314 +/* 0BAAEC 7F085FBC 00000000 */ nop +/* 0BAAF0 7F085FC0 0FC2C8E9 */ jal sub_GAME_7F0B23A4 +/* 0BAAF4 7F085FC4 02002025 */ move $a0, $s0 +/* 0BAAF8 7F085FC8 10400002 */ beqz $v0, .L7F085FD4 +/* 0BAAFC 7F085FCC 240F0001 */ li $t7, 1 +/* 0BAB00 7F085FD0 AFAF0394 */ sw $t7, 0x394($sp) +.L7F085FD4: +/* 0BAB04 7F085FD4 8E280000 */ lw $t0, ($s1) +/* 0BAB08 7F085FD8 8D05048C */ lw $a1, 0x48c($t0) +/* 0BAB0C 7F085FDC 8D060494 */ lw $a2, 0x494($t0) +/* 0BAB10 7F085FE0 8D0704B0 */ lw $a3, 0x4b0($t0) +/* 0BAB14 7F085FE4 AFB00010 */ sw $s0, 0x10($sp) +/* 0BAB18 7F085FE8 0FC2C8C5 */ jal sub_GAME_7F0B2314 +/* 0BAB1C 7F085FEC 25040488 */ addiu $a0, $t0, 0x488 +/* 0BAB20 7F085FF0 0FC2C8E9 */ jal sub_GAME_7F0B23A4 +/* 0BAB24 7F085FF4 02002025 */ move $a0, $s0 +/* 0BAB28 7F085FF8 1440000D */ bnez $v0, .L7F086030 +/* 0BAB2C 7F085FFC 00000000 */ nop +/* 0BAB30 7F086000 8E2E0000 */ lw $t6, ($s1) +/* 0BAB34 7F086004 3C018005 */ lui $at, %hi(D_80055248) +/* 0BAB38 7F086008 C4245248 */ lwc1 $f4, %lo(D_80055248)($at) +/* 0BAB3C 7F08600C C5C604B0 */ lwc1 $f6, 0x4b0($t6) +/* 0BAB40 7F086010 AFB00010 */ sw $s0, 0x10($sp) +/* 0BAB44 7F086014 27A40200 */ addiu $a0, $sp, 0x200 +/* 0BAB48 7F086018 46043282 */ mul.s $f10, $f6, $f4 +/* 0BAB4C 7F08601C 8FA50208 */ lw $a1, 0x208($sp) +/* 0BAB50 7F086020 8FA60204 */ lw $a2, 0x204($sp) +/* 0BAB54 7F086024 44075000 */ mfc1 $a3, $f10 +/* 0BAB58 7F086028 0FC2C8C5 */ jal sub_GAME_7F0B2314 +/* 0BAB5C 7F08602C 00000000 */ nop +.L7F086030: +/* 0BAB60 7F086030 0FC2C8E9 */ jal sub_GAME_7F0B23A4 +/* 0BAB64 7F086034 02002025 */ move $a0, $s0 +/* 0BAB68 7F086038 104000B8 */ beqz $v0, .L7F08631C +/* 0BAB6C 7F08603C 240B0001 */ li $t3, 1 +/* 0BAB70 7F086040 AFAB0394 */ sw $t3, 0x394($sp) +/* 0BAB74 7F086044 27A40174 */ addiu $a0, $sp, 0x174 +/* 0BAB78 7F086048 27A50170 */ addiu $a1, $sp, 0x170 +/* 0BAB7C 7F08604C 0FC2C908 */ jal sub_GAME_7F0B2420 +/* 0BAB80 7F086050 27A60184 */ addiu $a2, $sp, 0x184 +/* 0BAB84 7F086054 8E380000 */ lw $t8, ($s1) +/* 0BAB88 7F086058 C7A801A0 */ lwc1 $f8, 0x1a0($sp) +/* 0BAB8C 7F08605C C7060074 */ lwc1 $f6, 0x74($t8) +/* 0BAB90 7F086060 4608303E */ c.le.s $f6, $f8 +/* 0BAB94 7F086064 C7A80198 */ lwc1 $f8, 0x198($sp) +/* 0BAB98 7F086068 C7A6018C */ lwc1 $f6, 0x18c($sp) +/* 0BAB9C 7F08606C 450200AC */ bc1fl .L7F086320 +/* 0BABA0 7F086070 8E280000 */ lw $t0, ($s1) +/* 0BABA4 7F086074 C7A40184 */ lwc1 $f4, 0x184($sp) +/* 0BABA8 7F086078 C7AA0190 */ lwc1 $f10, 0x190($sp) +/* 0BABAC 7F08607C 46064381 */ sub.s $f14, $f8, $f6 +/* 0BABB0 7F086080 460A2081 */ sub.s $f2, $f4, $f10 +/* 0BABB4 7F086084 460E7102 */ mul.s $f4, $f14, $f14 +/* 0BABB8 7F086088 E7AE016C */ swc1 $f14, 0x16c($sp) +/* 0BABBC 7F08608C 46021282 */ mul.s $f10, $f2, $f2 +/* 0BABC0 7F086090 E7A20168 */ swc1 $f2, 0x168($sp) +/* 0BABC4 7F086094 0C007DF8 */ jal sqrtf +/* 0BABC8 7F086098 460A2300 */ add.s $f12, $f4, $f10 +/* 0BABCC 7F08609C C7A20168 */ lwc1 $f2, 0x168($sp) +/* 0BABD0 7F0860A0 C7AE016C */ lwc1 $f14, 0x16c($sp) +/* 0BABD4 7F0860A4 C7A80204 */ lwc1 $f8, 0x204($sp) +/* 0BABD8 7F0860A8 46001083 */ div.s $f2, $f2, $f0 +/* 0BABDC 7F0860AC C7A6018C */ lwc1 $f6, 0x18c($sp) +/* 0BABE0 7F0860B0 E7A80030 */ swc1 $f8, 0x30($sp) +/* 0BABE4 7F0860B4 46064101 */ sub.s $f4, $f8, $f6 +/* 0BABE8 7F0860B8 C7A80184 */ lwc1 $f8, 0x184($sp) +/* 0BABEC 7F0860BC E7A60034 */ swc1 $f6, 0x34($sp) +/* 0BABF0 7F0860C0 46007383 */ div.s $f14, $f14, $f0 +/* 0BABF4 7F0860C4 46022282 */ mul.s $f10, $f4, $f2 +/* 0BABF8 7F0860C8 C7A40208 */ lwc1 $f4, 0x208($sp) +/* 0BABFC 7F0860CC 46082181 */ sub.s $f6, $f4, $f8 +/* 0BAC00 7F0860D0 460E3182 */ mul.s $f6, $f6, $f14 +/* 0BAC04 7F0860D4 46065300 */ add.s $f12, $f10, $f6 +/* 0BAC08 7F0860D8 C7A60030 */ lwc1 $f6, 0x30($sp) +/* 0BAC0C 7F0860DC C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BAC10 7F0860E0 E7AC0050 */ swc1 $f12, 0x50($sp) +/* 0BAC14 7F0860E4 460A3180 */ add.s $f6, $f6, $f10 +/* 0BAC18 7F0860E8 C7AA0034 */ lwc1 $f10, 0x34($sp) +/* 0BAC1C 7F0860EC 460A3181 */ sub.s $f6, $f6, $f10 +/* 0BAC20 7F0860F0 46023282 */ mul.s $f10, $f6, $f2 +/* 0BAC24 7F0860F4 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0BAC28 7F0860F8 46062100 */ add.s $f4, $f4, $f6 +/* 0BAC2C 7F0860FC 46082181 */ sub.s $f6, $f4, $f8 +/* 0BAC30 7F086100 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BAC34 7F086104 46045480 */ add.s $f18, $f10, $f4 +/* 0BAC38 7F086108 C7A403B4 */ lwc1 $f4, 0x3b4($sp) +/* 0BAC3C 7F08610C 46126202 */ mul.s $f8, $f12, $f18 +/* 0BAC40 7F086110 46009406 */ mov.s $f16, $f18 +/* 0BAC44 7F086114 4614403E */ c.le.s $f8, $f20 +/* 0BAC48 7F086118 46042202 */ mul.s $f8, $f4, $f4 +/* 0BAC4C 7F08611C 45020004 */ bc1fl .L7F086130 +/* 0BAC50 7F086120 4614903C */ c.lt.s $f18, $f20 +/* 0BAC54 7F086124 1000001F */ b .L7F0861A4 +/* 0BAC58 7F086128 4600A386 */ mov.s $f14, $f20 +/* 0BAC5C 7F08612C 4614903C */ c.lt.s $f18, $f20 +.L7F086130: +/* 0BAC60 7F086130 00000000 */ nop +/* 0BAC64 7F086134 45020005 */ bc1fl .L7F08614C +/* 0BAC68 7F086138 4610603E */ c.le.s $f12, $f16 +/* 0BAC6C 7F08613C C7AC0050 */ lwc1 $f12, 0x50($sp) +/* 0BAC70 7F086140 46009407 */ neg.s $f16, $f18 +/* 0BAC74 7F086144 46006307 */ neg.s $f12, $f12 +/* 0BAC78 7F086148 4610603E */ c.le.s $f12, $f16 +.L7F08614C: +/* 0BAC7C 7F08614C 00000000 */ nop +/* 0BAC80 7F086150 45020004 */ bc1fl .L7F086164 +/* 0BAC84 7F086154 8E2C0000 */ lw $t4, ($s1) +/* 0BAC88 7F086158 10000012 */ b .L7F0861A4 +/* 0BAC8C 7F08615C 4600A386 */ mov.s $f14, $f20 +/* 0BAC90 7F086160 8E2C0000 */ lw $t4, ($s1) +.L7F086164: +/* 0BAC94 7F086164 C58004B0 */ lwc1 $f0, 0x4b0($t4) +/* 0BAC98 7F086168 4610003C */ c.lt.s $f0, $f16 +/* 0BAC9C 7F08616C 00000000 */ nop +/* 0BACA0 7F086170 45020004 */ bc1fl .L7F086184 +/* 0BACA4 7F086174 4600603C */ c.lt.s $f12, $f0 +/* 0BACA8 7F086178 1000000A */ b .L7F0861A4 +/* 0BACAC 7F08617C 4600A386 */ mov.s $f14, $f20 +/* 0BACB0 7F086180 4600603C */ c.lt.s $f12, $f0 +.L7F086184: +/* 0BACB4 7F086184 00000000 */ nop +/* 0BACB8 7F086188 45020004 */ bc1fl .L7F08619C +/* 0BACBC 7F08618C 46006181 */ sub.s $f6, $f12, $f0 +/* 0BACC0 7F086190 10000004 */ b .L7F0861A4 +/* 0BACC4 7F086194 4600A386 */ mov.s $f14, $f20 +/* 0BACC8 7F086198 46006181 */ sub.s $f6, $f12, $f0 +.L7F08619C: +/* 0BACCC 7F08619C 46106281 */ sub.s $f10, $f12, $f16 +/* 0BACD0 7F0861A0 460A3383 */ div.s $f14, $f6, $f10 +.L7F0861A4: +/* 0BACD4 7F0861A4 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0BACD8 7F0861A8 E7AE0180 */ swc1 $f14, 0x180($sp) +/* 0BACDC 7F0861AC 46063282 */ mul.s $f10, $f6, $f6 +/* 0BACE0 7F0861B0 0C007DF8 */ jal sqrtf +/* 0BACE4 7F0861B4 460A4300 */ add.s $f12, $f8, $f10 +/* 0BACE8 7F0861B8 4600A03C */ c.lt.s $f20, $f0 +/* 0BACEC 7F0861BC C7AE0180 */ lwc1 $f14, 0x180($sp) +/* 0BACF0 7F0861C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BACF4 7F0861C4 4502001B */ bc1fl .L7F086234 +/* 0BACF8 7F0861C8 C7A6019C */ lwc1 $f6, 0x19c($sp) +/* 0BACFC 7F0861CC 44812000 */ mtc1 $at, $f4 +/* 0BAD00 7F0861D0 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0BAD04 7F0861D4 44814000 */ mtc1 $at, $f8 +/* 0BAD08 7F0861D8 460E2181 */ sub.s $f6, $f4, $f14 +/* 0BAD0C 7F0861DC 8E390000 */ lw $t9, ($s1) +/* 0BAD10 7F0861E0 C7A401A0 */ lwc1 $f4, 0x1a0($sp) +/* 0BAD14 7F0861E4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0BAD18 7F0861E8 46003082 */ mul.s $f2, $f6, $f0 +/* 0BAD1C 7F0861EC 00000000 */ nop +/* 0BAD20 7F0861F0 46081302 */ mul.s $f12, $f2, $f8 +/* 0BAD24 7F0861F4 E7AC0390 */ swc1 $f12, 0x390($sp) +/* 0BAD28 7F0861F8 C7320074 */ lwc1 $f18, 0x74($t9) +/* 0BAD2C 7F0861FC 460C9280 */ add.s $f10, $f18, $f12 +/* 0BAD30 7F086200 460A203E */ c.le.s $f4, $f10 +/* 0BAD34 7F086204 00000000 */ nop +/* 0BAD38 7F086208 45000009 */ bc1f .L7F086230 +/* 0BAD3C 7F08620C 00000000 */ nop +/* 0BAD40 7F086210 46122181 */ sub.s $f6, $f4, $f18 +/* 0BAD44 7F086214 44814000 */ mtc1 $at, $f8 +/* 0BAD48 7F086218 00000000 */ nop +/* 0BAD4C 7F08621C 46083283 */ div.s $f10, $f6, $f8 +/* 0BAD50 7F086220 E7A60390 */ swc1 $f6, 0x390($sp) +/* 0BAD54 7F086224 460A1401 */ sub.s $f16, $f2, $f10 +/* 0BAD58 7F086228 46008103 */ div.s $f4, $f16, $f0 +/* 0BAD5C 7F08622C 46047380 */ add.s $f14, $f14, $f4 +.L7F086230: +/* 0BAD60 7F086230 C7A6019C */ lwc1 $f6, 0x19c($sp) +.L7F086234: +/* 0BAD64 7F086234 C7A80184 */ lwc1 $f8, 0x184($sp) +/* 0BAD68 7F086238 C7AA01A4 */ lwc1 $f10, 0x1a4($sp) +/* 0BAD6C 7F08623C C7A4018C */ lwc1 $f4, 0x18c($sp) +/* 0BAD70 7F086240 46083301 */ sub.s $f12, $f6, $f8 +/* 0BAD74 7F086244 C7A601A8 */ lwc1 $f6, 0x1a8($sp) +/* 0BAD78 7F086248 8E280000 */ lw $t0, ($s1) +/* 0BAD7C 7F08624C 46045401 */ sub.s $f16, $f10, $f4 +/* 0BAD80 7F086250 C7AA01B0 */ lwc1 $f10, 0x1b0($sp) +/* 0BAD84 7F086254 46083481 */ sub.s $f18, $f6, $f8 +/* 0BAD88 7F086258 46045181 */ sub.s $f6, $f10, $f4 +/* 0BAD8C 7F08625C 46129202 */ mul.s $f8, $f18, $f18 +/* 0BAD90 7F086260 00000000 */ nop +/* 0BAD94 7F086264 46063282 */ mul.s $f10, $f6, $f6 +/* 0BAD98 7F086268 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0BAD9C 7F08626C 460A4100 */ add.s $f4, $f8, $f10 +/* 0BADA0 7F086270 460C6202 */ mul.s $f8, $f12, $f12 +/* 0BADA4 7F086274 00000000 */ nop +/* 0BADA8 7F086278 46108282 */ mul.s $f10, $f16, $f16 +/* 0BADAC 7F08627C 460A4200 */ add.s $f8, $f8, $f10 +/* 0BADB0 7F086280 C7AA01A0 */ lwc1 $f10, 0x1a0($sp) +/* 0BADB4 7F086284 4608203C */ c.lt.s $f4, $f8 +/* 0BADB8 7F086288 C7A40188 */ lwc1 $f4, 0x188($sp) +/* 0BADBC 7F08628C 45000003 */ bc1f .L7F08629C +/* 0BADC0 7F086290 46045201 */ sub.s $f8, $f10, $f4 +/* 0BADC4 7F086294 46009306 */ mov.s $f12, $f18 +/* 0BADC8 7F086298 46003406 */ mov.s $f16, $f6 +.L7F08629C: +/* 0BADCC 7F08629C C7A60390 */ lwc1 $f6, 0x390($sp) +/* 0BADD0 7F0862A0 C7A403AC */ lwc1 $f4, 0x3ac($sp) +/* 0BADD4 7F0862A4 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0BADD8 7F0862A8 46083003 */ div.s $f0, $f6, $f8 +/* 0BADDC 7F0862AC 00002825 */ move $a1, $zero +/* 0BADE0 7F0862B0 460C0282 */ mul.s $f10, $f0, $f12 +/* 0BADE4 7F0862B4 00000000 */ nop +/* 0BADE8 7F0862B8 460E2182 */ mul.s $f6, $f4, $f14 +/* 0BADEC 7F0862BC 46065200 */ add.s $f8, $f10, $f6 +/* 0BADF0 7F0862C0 46100102 */ mul.s $f4, $f0, $f16 +/* 0BADF4 7F0862C4 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BADF8 7F0862C8 E7A803AC */ swc1 $f8, 0x3ac($sp) +/* 0BADFC 7F0862CC 460E5182 */ mul.s $f6, $f10, $f14 +/* 0BAE00 7F0862D0 C7AA0208 */ lwc1 $f10, 0x208($sp) +/* 0BAE04 7F0862D4 46062200 */ add.s $f8, $f4, $f6 +/* 0BAE08 7F0862D8 E7A803B4 */ swc1 $f8, 0x3b4($sp) +/* 0BAE0C 7F0862DC E50A048C */ swc1 $f10, 0x48c($t0) +/* 0BAE10 7F0862E0 8E2A0000 */ lw $t2, ($s1) +/* 0BAE14 7F0862E4 C7A40204 */ lwc1 $f4, 0x204($sp) +/* 0BAE18 7F0862E8 E5440494 */ swc1 $f4, 0x494($t2) +/* 0BAE1C 7F0862EC 8E2F0000 */ lw $t7, ($s1) +/* 0BAE20 7F0862F0 8FAD0200 */ lw $t5, 0x200($sp) +/* 0BAE24 7F0862F4 ADED0488 */ sw $t5, 0x488($t7) +/* 0BAE28 7F0862F8 8E2E0000 */ lw $t6, ($s1) +/* 0BAE2C 7F0862FC C5C61274 */ lwc1 $f6, 0x1274($t6) +/* 0BAE30 7F086300 4606A032 */ c.eq.s $f20, $f6 +/* 0BAE34 7F086304 00000000 */ nop +/* 0BAE38 7F086308 45000002 */ bc1f .L7F086314 +/* 0BAE3C 7F08630C 00000000 */ nop +/* 0BAE40 7F086310 24050001 */ li $a1, 1 +.L7F086314: +/* 0BAE44 7F086314 0FC1F658 */ jal sub_GAME_7F07D960 +/* 0BAE48 7F086318 00000000 */ nop +.L7F08631C: +/* 0BAE4C 7F08631C 8E280000 */ lw $t0, ($s1) +.L7F086320: +/* 0BAE50 7F086320 C7AA0208 */ lwc1 $f10, 0x208($sp) +/* 0BAE54 7F086324 C7A60204 */ lwc1 $f6, 0x204($sp) +/* 0BAE58 7F086328 C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BAE5C 7F08632C C5040494 */ lwc1 $f4, 0x494($t0) +/* 0BAE60 7F086330 460A4081 */ sub.s $f2, $f8, $f10 +/* 0BAE64 7F086334 C7A803B4 */ lwc1 $f8, 0x3b4($sp) +/* 0BAE68 7F086338 46062381 */ sub.s $f14, $f4, $f6 +/* 0BAE6C 7F08633C 46084282 */ mul.s $f10, $f8, $f8 +/* 0BAE70 7F086340 C7A403AC */ lwc1 $f4, 0x3ac($sp) +/* 0BAE74 7F086344 46042182 */ mul.s $f6, $f4, $f4 +/* 0BAE78 7F086348 46065000 */ add.s $f0, $f10, $f6 +/* 0BAE7C 7F08634C 46140032 */ c.eq.s $f0, $f20 +/* 0BAE80 7F086350 46000306 */ mov.s $f12, $f0 +/* 0BAE84 7F086354 45010006 */ bc1t .L7F086370 +/* 0BAE88 7F086358 00000000 */ nop +/* 0BAE8C 7F08635C 46021202 */ mul.s $f8, $f2, $f2 +/* 0BAE90 7F086360 00000000 */ nop +/* 0BAE94 7F086364 460E7102 */ mul.s $f4, $f14, $f14 +/* 0BAE98 7F086368 46044280 */ add.s $f10, $f8, $f4 +/* 0BAE9C 7F08636C 46005303 */ div.s $f12, $f10, $f0 +.L7F086370: +/* 0BAEA0 7F086370 0C007DF8 */ jal sqrtf +/* 0BAEA4 7F086374 00000000 */ nop +/* 0BAEA8 7F086378 C7A80220 */ lwc1 $f8, 0x220($sp) +/* 0BAEAC 7F08637C 8E280000 */ lw $t0, ($s1) +/* 0BAEB0 7F086380 46080102 */ mul.s $f4, $f0, $f8 +/* 0BAEB4 7F086384 C5061278 */ lwc1 $f6, 0x1278($t0) +/* 0BAEB8 7F086388 46043280 */ add.s $f10, $f6, $f4 +/* 0BAEBC 7F08638C E50A1278 */ swc1 $f10, 0x1278($t0) +/* 0BAEC0 7F086390 C7A6021C */ lwc1 $f6, 0x21c($sp) +/* 0BAEC4 7F086394 8E280000 */ lw $t0, ($s1) +/* 0BAEC8 7F086398 46060102 */ mul.s $f4, $f0, $f6 +/* 0BAECC 7F08639C C508127C */ lwc1 $f8, 0x127c($t0) +/* 0BAED0 7F0863A0 46044280 */ add.s $f10, $f8, $f4 +/* 0BAED4 7F0863A4 E50A127C */ swc1 $f10, 0x127c($t0) +.L7F0863A8: +/* 0BAED8 7F0863A8 8E280000 */ lw $t0, ($s1) +.L7F0863AC: +/* 0BAEDC 7F0863AC 3C018005 */ lui $at, %hi(D_8005524C) +/* 0BAEE0 7F0863B0 C428524C */ lwc1 $f8, %lo(D_8005524C)($at) +/* 0BAEE4 7F0863B4 C5060160 */ lwc1 $f6, 0x160($t0) +/* 0BAEE8 7F0863B8 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0BAEEC 7F0863BC C50A00A4 */ lwc1 $f10, 0xa4($t0) +/* 0BAEF0 7F0863C0 46083103 */ div.s $f4, $f6, $f8 +/* 0BAEF4 7F0863C4 44813000 */ mtc1 $at, $f6 +/* 0BAEF8 7F0863C8 C514014C */ lwc1 $f20, 0x14c($t0) +/* 0BAEFC 7F0863CC 46065203 */ div.s $f8, $f10, $f6 +/* 0BAF00 7F0863D0 46082080 */ add.s $f2, $f4, $f8 +/* 0BAF04 7F0863D4 0FC23ABE */ jal sub_GAME_7F08EAF8 +/* 0BAF08 7F0863D8 E7A20144 */ swc1 $f2, 0x144($sp) +/* 0BAF0C 7F0863DC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BAF10 7F0863E0 44817000 */ mtc1 $at, $f14 +/* 0BAF14 7F0863E4 C7A20144 */ lwc1 $f2, 0x144($sp) +/* 0BAF18 7F0863E8 4407A000 */ mfc1 $a3, $f20 +/* 0BAF1C 7F0863EC 46000306 */ mov.s $f12, $f0 +/* 0BAF20 7F0863F0 4602703C */ c.lt.s $f14, $f2 +/* 0BAF24 7F0863F4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0BAF28 7F0863F8 45020004 */ bc1fl .L7F08640C +/* 0BAF2C 7F0863FC 44817000 */ mtc1 $at, $f14 +/* 0BAF30 7F086400 10000008 */ b .L7F086424 +/* 0BAF34 7F086404 46007086 */ mov.s $f2, $f14 +/* 0BAF38 7F086408 44817000 */ mtc1 $at, $f14 +.L7F08640C: +/* 0BAF3C 7F08640C 00000000 */ nop +/* 0BAF40 7F086410 460E103C */ c.lt.s $f2, $f14 +/* 0BAF44 7F086414 00000000 */ nop +/* 0BAF48 7F086418 45020003 */ bc1fl .L7F086428 +/* 0BAF4C 7F08641C 8E2B0000 */ lw $t3, ($s1) +/* 0BAF50 7F086420 46007086 */ mov.s $f2, $f14 +.L7F086424: +/* 0BAF54 7F086424 8E2B0000 */ lw $t3, ($s1) +.L7F086428: +/* 0BAF58 7F086428 24010001 */ li $at, 1 +/* 0BAF5C 7F08642C 44061000 */ mfc1 $a2, $f2 +/* 0BAF60 7F086430 8D7804E8 */ lw $t8, 0x4e8($t3) +/* 0BAF64 7F086434 17010004 */ bne $t8, $at, .L7F086448 +/* 0BAF68 7F086438 3C018005 */ lui $at, %hi(D_80055250) +/* 0BAF6C 7F08643C C42A5250 */ lwc1 $f10, %lo(D_80055250)($at) +/* 0BAF70 7F086440 460A0302 */ mul.s $f12, $f0, $f10 +/* 0BAF74 7F086444 00000000 */ nop +.L7F086448: +/* 0BAF78 7F086448 0FC17839 */ jal sub_GAME_7F05E0E4 +/* 0BAF7C 7F08644C C7AE0398 */ lwc1 $f14, 0x398($sp) +/* 0BAF80 7F086450 8E2C0000 */ lw $t4, ($s1) +/* 0BAF84 7F086454 3C018005 */ lui $at, %hi(D_80055254) +/* 0BAF88 7F086458 C4245254 */ lwc1 $f4, %lo(D_80055254)($at) +/* 0BAF8C 7F08645C C586015C */ lwc1 $f6, 0x15c($t4) +/* 0BAF90 7F086460 46043302 */ mul.s $f12, $f6, $f4 +/* 0BAF94 7F086464 0FC1797C */ jal sub_GAME_7F05E5F0 +/* 0BAF98 7F086468 00000000 */ nop +/* 0BAF9C 7F08646C 3C038003 */ lui $v1, %hi(ptr_playerstank) +/* 0BAFA0 7F086470 8C636450 */ lw $v1, %lo(ptr_playerstank)($v1) +/* 0BAFA4 7F086474 3C198003 */ lui $t9, %hi(in_tank_flag) +/* 0BAFA8 7F086478 5060012F */ beql $v1, $zero, .L7F086938 +/* 0BAFAC 7F08647C 8FA40394 */ lw $a0, 0x394($sp) +/* 0BAFB0 7F086480 8F396448 */ lw $t9, %lo(in_tank_flag)($t9) +/* 0BAFB4 7F086484 24010001 */ li $at, 1 +/* 0BAFB8 7F086488 3C0A8008 */ lui $t2, %hi(dword_CODE_bss_800799B8) +/* 0BAFBC 7F08648C 5721012A */ bnel $t9, $at, .L7F086938 +/* 0BAFC0 7F086490 8FA40394 */ lw $a0, 0x394($sp) +/* 0BAFC4 7F086494 8D4A99B8 */ lw $t2, %lo(dword_CODE_bss_800799B8)($t2) +/* 0BAFC8 7F086498 24010002 */ li $at, 2 +/* 0BAFCC 7F08649C 55410126 */ bnel $t2, $at, .L7F086938 +/* 0BAFD0 7F0864A0 8FA40394 */ lw $a0, 0x394($sp) +/* 0BAFD4 7F0864A4 8C620004 */ lw $v0, 4($v1) +/* 0BAFD8 7F0864A8 00002025 */ move $a0, $zero +/* 0BAFDC 7F0864AC AFA20138 */ sw $v0, 0x138($sp) +/* 0BAFE0 7F0864B0 8C4D0014 */ lw $t5, 0x14($v0) +/* 0BAFE4 7F0864B4 00408025 */ move $s0, $v0 +/* 0BAFE8 7F0864B8 8DAF0008 */ lw $t7, 8($t5) +/* 0BAFEC 7F0864BC 8DEE0008 */ lw $t6, 8($t7) +/* 0BAFF0 7F0864C0 8DCB0014 */ lw $t3, 0x14($t6) +/* 0BAFF4 7F0864C4 8D780004 */ lw $t8, 4($t3) +/* 0BAFF8 7F0864C8 0FC17674 */ jal get_item_in_hand +/* 0BAFFC 7F0864CC AFB80130 */ sw $t8, 0x130($sp) +/* 0BB000 7F0864D0 38430020 */ xori $v1, $v0, 0x20 +/* 0BB004 7F0864D4 2C640001 */ sltiu $a0, $v1, 1 +/* 0BB008 7F0864D8 50800005 */ beql $a0, $zero, .L7F0864F0 +/* 0BB00C 7F0864DC AE0400C4 */ sw $a0, 0xc4($s0) +/* 0BB010 7F0864E0 0FC17722 */ jal get_hands_firing_status +/* 0BB014 7F0864E4 00002025 */ move $a0, $zero +/* 0BB018 7F0864E8 0002202B */ sltu $a0, $zero, $v0 +/* 0BB01C 7F0864EC AE0400C4 */ sw $a0, 0xc4($s0) +.L7F0864F0: +/* 0BB020 7F0864F0 3C018003 */ lui $at, %hi(D_8003646C) +/* 0BB024 7F0864F4 C428646C */ lwc1 $f8, %lo(D_8003646C)($at) +/* 0BB028 7F0864F8 3C018003 */ lui $at, %hi(D_80036474) +/* 0BB02C 7F0864FC 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0BB030 7F086500 E60800C8 */ swc1 $f8, 0xc8($s0) +/* 0BB034 7F086504 C42A6474 */ lwc1 $f10, %lo(D_80036474)($at) +/* 0BB038 7F086508 3C018003 */ lui $at, %hi(D_80036464) +/* 0BB03C 7F08650C E60A00CC */ swc1 $f10, 0xcc($s0) +/* 0BB040 7F086510 C4266464 */ lwc1 $f6, %lo(D_80036464)($at) +/* 0BB044 7F086514 3C018005 */ lui $at, %hi(D_80055258) +/* 0BB048 7F086518 E60600DC */ swc1 $f6, 0xdc($s0) +/* 0BB04C 7F08651C C4245258 */ lwc1 $f4, %lo(D_80055258)($at) +/* 0BB050 7F086520 3C018003 */ lui $at, %hi(D_80036464) +/* 0BB054 7F086524 C4286464 */ lwc1 $f8, %lo(D_80036464)($at) +/* 0BB058 7F086528 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0BB05C 7F08652C 46082301 */ sub.s $f12, $f4, $f8 +/* 0BB060 7F086530 8FAC0138 */ lw $t4, 0x138($sp) +/* 0BB064 7F086534 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0BB068 7F086538 8D990014 */ lw $t9, 0x14($t4) +/* 0BB06C 7F08653C 0FC1629F */ jal matrix_scalar_multiply +/* 0BB070 7F086540 C72C0014 */ lwc1 $f12, 0x14($t9) +/* 0BB074 7F086544 3C018008 */ lui $at, %hi(flt_CODE_bss_800799AC) +/* 0BB078 7F086548 C42A99A8 */ lwc1 $f10, %lo(flt_CODE_bss_800799A8)($at) +/* 0BB07C 7F08654C C42499AC */ lwc1 $f4, %lo(flt_CODE_bss_800799AC)($at) +/* 0BB080 7F086550 3C018008 */ lui $at, %hi(flt_CODE_bss_800799B0) +/* 0BB084 7F086554 46005187 */ neg.s $f6, $f10 +/* 0BB088 7F086558 C42A99B0 */ lwc1 $f10, %lo(flt_CODE_bss_800799B0)($at) +/* 0BB08C 7F08655C E7A600E4 */ swc1 $f6, 0xe4($sp) +/* 0BB090 7F086560 46002207 */ neg.s $f8, $f4 +/* 0BB094 7F086564 46005187 */ neg.s $f6, $f10 +/* 0BB098 7F086568 E7A800E8 */ swc1 $f8, 0xe8($sp) +/* 0BB09C 7F08656C E7A600EC */ swc1 $f6, 0xec($sp) +/* 0BB0A0 7F086570 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0BB0A4 7F086574 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0BB0A8 7F086578 27A500E4 */ addiu $a1, $sp, 0xe4 +/* 0BB0AC 7F08657C 8E280000 */ lw $t0, ($s1) +/* 0BB0B0 7F086580 C7A400E4 */ lwc1 $f4, 0xe4($sp) +/* 0BB0B4 7F086584 C7A600EC */ lwc1 $f6, 0xec($sp) +/* 0BB0B8 7F086588 C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BB0BC 7F08658C 8FA20138 */ lw $v0, 0x138($sp) +/* 0BB0C0 7F086590 46082280 */ add.s $f10, $f4, $f8 +/* 0BB0C4 7F086594 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 0BB0C8 7F086598 C5040494 */ lwc1 $f4, 0x494($t0) +/* 0BB0CC 7F08659C 46043200 */ add.s $f8, $f6, $f4 +/* 0BB0D0 7F0865A0 E7A800EC */ swc1 $f8, 0xec($sp) +/* 0BB0D4 7F0865A4 8D0A0488 */ lw $t2, 0x488($t0) +/* 0BB0D8 7F0865A8 8C4D0010 */ lw $t5, 0x10($v0) +/* 0BB0DC 7F0865AC ADAA0014 */ sw $t2, 0x14($t5) +/* 0BB0E0 7F0865B0 8E280000 */ lw $t0, ($s1) +/* 0BB0E4 7F0865B4 C7AA00EC */ lwc1 $f10, 0xec($sp) +/* 0BB0E8 7F0865B8 8C440010 */ lw $a0, 0x10($v0) +/* 0BB0EC 7F0865BC 8D05048C */ lw $a1, 0x48c($t0) +/* 0BB0F0 7F0865C0 8D060494 */ lw $a2, 0x494($t0) +/* 0BB0F4 7F0865C4 8FA700E4 */ lw $a3, 0xe4($sp) +/* 0BB0F8 7F0865C8 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0BB0FC 7F0865CC 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0BB100 7F0865D0 24840014 */ addiu $a0, $a0, 0x14 +/* 0BB104 7F0865D4 8FAF0138 */ lw $t7, 0x138($sp) +/* 0BB108 7F0865D8 8FA500E4 */ lw $a1, 0xe4($sp) +/* 0BB10C 7F0865DC 8FA600EC */ lw $a2, 0xec($sp) +/* 0BB110 7F0865E0 8DEE0010 */ lw $t6, 0x10($t7) +/* 0BB114 7F0865E4 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0BB118 7F0865E8 8DC40014 */ lw $a0, 0x14($t6) +/* 0BB11C 7F0865EC 3C038005 */ lui $v1, %hi(clock_timer) +/* 0BB120 7F0865F0 24638374 */ addiu $v1, %lo(clock_timer) # addiu $v1, $v1, -0x7c8c +/* 0BB124 7F0865F4 E60000D4 */ swc1 $f0, 0xd4($s0) +/* 0BB128 7F0865F8 8C6B0000 */ lw $t3, ($v1) +/* 0BB12C 7F0865FC 00001025 */ move $v0, $zero +/* 0BB130 7F086600 3C018005 */ lui $at, %hi(D_8005525C) +/* 0BB134 7F086604 1960000C */ blez $t3, .L7F086638 +/* 0BB138 7F086608 00000000 */ nop +/* 0BB13C 7F08660C C60200D4 */ lwc1 $f2, 0xd4($s0) +/* 0BB140 7F086610 C420525C */ lwc1 $f0, %lo(D_8005525C)($at) +/* 0BB144 7F086614 C60600D0 */ lwc1 $f6, 0xd0($s0) +.L7F086618: +/* 0BB148 7F086618 24420001 */ addiu $v0, $v0, 1 +/* 0BB14C 7F08661C 46003102 */ mul.s $f4, $f6, $f0 +/* 0BB150 7F086620 46022200 */ add.s $f8, $f4, $f2 +/* 0BB154 7F086624 E60800D0 */ swc1 $f8, 0xd0($s0) +/* 0BB158 7F086628 8C780000 */ lw $t8, ($v1) +/* 0BB15C 7F08662C 0058082A */ slt $at, $v0, $t8 +/* 0BB160 7F086630 5420FFF9 */ bnezl $at, .L7F086618 +/* 0BB164 7F086634 C60600D0 */ lwc1 $f6, 0xd0($s0) +.L7F086638: +/* 0BB168 7F086638 3C018005 */ lui $at, %hi(D_80055260) +/* 0BB16C 7F08663C C4265260 */ lwc1 $f6, %lo(D_80055260)($at) +/* 0BB170 7F086640 C60A00D0 */ lwc1 $f10, 0xd0($s0) +/* 0BB174 7F086644 8FA40130 */ lw $a0, 0x130($sp) +/* 0BB178 7F086648 46065502 */ mul.s $f20, $f10, $f6 +/* 0BB17C 7F08664C 0FC0FA19 */ jal sub_GAME_7F03E864 +/* 0BB180 7F086650 00000000 */ nop +/* 0BB184 7F086654 8FA20138 */ lw $v0, 0x138($sp) +/* 0BB188 7F086658 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0BB18C 7F08665C 44813000 */ mtc1 $at, $f6 +/* 0BB190 7F086660 8C4C0014 */ lw $t4, 0x14($v0) +/* 0BB194 7F086664 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0BB198 7F086668 24450018 */ addiu $a1, $v0, 0x18 +/* 0BB19C 7F08666C C5840014 */ lwc1 $f4, 0x14($t4) +/* 0BB1A0 7F086670 46040202 */ mul.s $f8, $f0, $f4 +/* 0BB1A4 7F086674 4608A281 */ sub.s $f10, $f20, $f8 +/* 0BB1A8 7F086678 46065100 */ add.s $f4, $f10, $f6 +/* 0BB1AC 7F08667C 0FC16008 */ jal matrix_4x4_copy +/* 0BB1B0 7F086680 E7A400E8 */ swc1 $f4, 0xe8($sp) +/* 0BB1B4 7F086684 8FA40138 */ lw $a0, 0x138($sp) +/* 0BB1B8 7F086688 C7A000E4 */ lwc1 $f0, 0xe4($sp) +/* 0BB1BC 7F08668C 8C990010 */ lw $t9, 0x10($a0) +/* 0BB1C0 7F086690 E7200008 */ swc1 $f0, 8($t9) +/* 0BB1C4 7F086694 E4800058 */ swc1 $f0, 0x58($a0) +/* 0BB1C8 7F086698 C7A000E8 */ lwc1 $f0, 0xe8($sp) +/* 0BB1CC 7F08669C 8C8A0010 */ lw $t2, 0x10($a0) +/* 0BB1D0 7F0866A0 E540000C */ swc1 $f0, 0xc($t2) +/* 0BB1D4 7F0866A4 E480005C */ swc1 $f0, 0x5c($a0) +/* 0BB1D8 7F0866A8 C7A000EC */ lwc1 $f0, 0xec($sp) +/* 0BB1DC 7F0866AC 8C8D0010 */ lw $t5, 0x10($a0) +/* 0BB1E0 7F0866B0 E5A00010 */ swc1 $f0, 0x10($t5) +/* 0BB1E4 7F0866B4 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 0BB1E8 7F0866B8 E4800060 */ swc1 $f0, 0x60($a0) +/* 0BB1EC 7F0866BC 0FC10121 */ jal sub_GAME_7F040484 +/* 0BB1F0 7F0866C0 8FA40138 */ lw $a0, 0x138($sp) +/* 0BB1F4 7F0866C4 8E250000 */ lw $a1, ($s1) +/* 0BB1F8 7F0866C8 3C068003 */ lui $a2, %hi(D_80036464) +/* 0BB1FC 7F0866CC 8CC66464 */ lw $a2, %lo(D_80036464)($a2) +/* 0BB200 7F0866D0 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 0BB204 7F0866D4 0FC1F222 */ jal sub_GAME_7F07C888 +/* 0BB208 7F0866D8 24A5048C */ addiu $a1, $a1, 0x48c +/* 0BB20C 7F0866DC 8FAF0138 */ lw $t7, 0x138($sp) +/* 0BB210 7F0866E0 27B00094 */ addiu $s0, $sp, 0x94 +/* 0BB214 7F0866E4 02002825 */ move $a1, $s0 +/* 0BB218 7F0866E8 0FC0F2E3 */ jal sub_GAME_7F03CB8C +/* 0BB21C 7F0866EC 8DE40010 */ lw $a0, 0x10($t7) +/* 0BB220 7F0866F0 0FC0F8FF */ jal sub_GAME_7F03E3FC +/* 0BB224 7F0866F4 02002025 */ move $a0, $s0 +/* 0BB228 7F0866F8 3C0E8007 */ lui $t6, %hi(ptr_list_object_lookup_indices) +/* 0BB22C 7F0866FC 8DCE9C30 */ lw $t6, %lo(ptr_list_object_lookup_indices)($t6) +/* 0BB230 7F086700 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 0BB234 7F086704 AFAE008C */ sw $t6, 0x8c($sp) +/* 0BB238 7F086708 85C20000 */ lh $v0, ($t6) +/* 0BB23C 7F08670C 0442008A */ bltzl $v0, .L7F086938 +/* 0BB240 7F086710 8FA40394 */ lw $a0, 0x394($sp) +/* 0BB244 7F086714 4481A000 */ mtc1 $at, $f20 +/* 0BB248 7F086718 00000000 */ nop +/* 0BB24C 7F08671C 8FAC0138 */ lw $t4, 0x138($sp) +.L7F086720: +/* 0BB250 7F086720 00025880 */ sll $t3, $v0, 2 +/* 0BB254 7F086724 01625823 */ subu $t3, $t3, $v0 +/* 0BB258 7F086728 000B5880 */ sll $t3, $t3, 2 +/* 0BB25C 7F08672C 8D990010 */ lw $t9, 0x10($t4) +/* 0BB260 7F086730 01625821 */ addu $t3, $t3, $v0 +/* 0BB264 7F086734 3C188007 */ lui $t8, %hi(pos_data_entry) +/* 0BB268 7F086738 27189C38 */ addiu $t8, %lo(pos_data_entry) # addiu $t8, $t8, -0x63c8 +/* 0BB26C 7F08673C 000B5880 */ sll $t3, $t3, 2 +/* 0BB270 7F086740 01788021 */ addu $s0, $t3, $t8 +/* 0BB274 7F086744 52190076 */ beql $s0, $t9, .L7F086920 +/* 0BB278 7F086748 8FAF008C */ lw $t7, 0x8c($sp) +/* 0BB27C 7F08674C 92020000 */ lbu $v0, ($s0) +/* 0BB280 7F086750 24010003 */ li $at, 3 +/* 0BB284 7F086754 240A0001 */ li $t2, 1 +/* 0BB288 7F086758 14410054 */ bne $v0, $at, .L7F0868AC +/* 0BB28C 7F08675C 02002025 */ move $a0, $s0 +/* 0BB290 7F086760 AFAA007C */ sw $t2, 0x7c($sp) +/* 0BB294 7F086764 8E080004 */ lw $t0, 4($s0) +/* 0BB298 7F086768 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BB29C 7F08676C 27A60088 */ addiu $a2, $sp, 0x88 +/* 0BB2A0 7F086770 27A70084 */ addiu $a3, $sp, 0x84 +/* 0BB2A4 7F086774 0FC0F3E2 */ jal sub_GAME_7F03CF88 +/* 0BB2A8 7F086778 AFA8006C */ sw $t0, 0x6c($sp) +/* 0BB2AC 7F08677C 26040008 */ addiu $a0, $s0, 8 +/* 0BB2B0 7F086780 AFA40050 */ sw $a0, 0x50($sp) +/* 0BB2B4 7F086784 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 0BB2B8 7F086788 0FC0F336 */ jal sub_GAME_7F03CCD8 +/* 0BB2BC 7F08678C 24060004 */ li $a2, 4 +/* 0BB2C0 7F086790 1040002B */ beqz $v0, .L7F086840 +/* 0BB2C4 7F086794 8FA8006C */ lw $t0, 0x6c($sp) +/* 0BB2C8 7F086798 AFA0007C */ sw $zero, 0x7c($sp) +/* 0BB2CC 7F08679C 810D0007 */ lb $t5, 7($t0) +/* 0BB2D0 7F0867A0 24010004 */ li $at, 4 +/* 0BB2D4 7F0867A4 55A10027 */ bnel $t5, $at, .L7F086844 +/* 0BB2D8 7F0867A8 8FAC007C */ lw $t4, 0x7c($sp) +/* 0BB2DC 7F0867AC 8D030014 */ lw $v1, 0x14($t0) +/* 0BB2E0 7F0867B0 3C010100 */ lui $at, 0x100 +/* 0BB2E4 7F0867B4 3C028005 */ lui $v0, %hi(D_80048380) +/* 0BB2E8 7F0867B8 000379C0 */ sll $t7, $v1, 7 +/* 0BB2EC 7F0867BC 05E00020 */ bltz $t7, .L7F086840 +/* 0BB2F0 7F0867C0 00617025 */ or $t6, $v1, $at +/* 0BB2F4 7F0867C4 AD0E0014 */ sw $t6, 0x14($t0) +/* 0BB2F8 7F0867C8 8C428380 */ lw $v0, %lo(D_80048380)($v0) +/* 0BB2FC 7F0867CC 24010003 */ li $at, 3 +/* 0BB300 7F0867D0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0BB304 7F0867D4 0041001A */ div $zero, $v0, $at +/* 0BB308 7F0867D8 00001010 */ mfhi $v0 +/* 0BB30C 7F0867DC 28410002 */ slti $at, $v0, 2 +/* 0BB310 7F0867E0 1020000E */ beqz $at, .L7F08681C +/* 0BB314 7F0867E4 240500B7 */ li $a1, 183 +/* 0BB318 7F0867E8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BB31C 7F0867EC 0C002382 */ jal play_sfx_a1 +/* 0BB320 7F0867F0 00003025 */ move $a2, $zero +/* 0BB324 7F0867F4 00402025 */ move $a0, $v0 +/* 0BB328 7F0867F8 0FC14E84 */ jal sub_GAME_7F053A10 +/* 0BB32C 7F0867FC 8FA50050 */ lw $a1, 0x50($sp) +/* 0BB330 7F086800 3C028005 */ lui $v0, %hi(D_80048380) +/* 0BB334 7F086804 8C428380 */ lw $v0, %lo(D_80048380)($v0) +/* 0BB338 7F086808 24010003 */ li $at, 3 +/* 0BB33C 7F08680C 0041001A */ div $zero, $v0, $at +/* 0BB340 7F086810 00001010 */ mfhi $v0 +/* 0BB344 7F086814 00000000 */ nop +/* 0BB348 7F086818 00000000 */ nop +.L7F08681C: +/* 0BB34C 7F08681C 18400008 */ blez $v0, .L7F086840 +/* 0BB350 7F086820 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0BB354 7F086824 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BB358 7F086828 240500D5 */ li $a1, 213 +/* 0BB35C 7F08682C 0C002382 */ jal play_sfx_a1 +/* 0BB360 7F086830 00003025 */ move $a2, $zero +/* 0BB364 7F086834 00402025 */ move $a0, $v0 +/* 0BB368 7F086838 0FC14E84 */ jal sub_GAME_7F053A10 +/* 0BB36C 7F08683C 8FA50050 */ lw $a1, 0x50($sp) +.L7F086840: +/* 0BB370 7F086840 8FAC007C */ lw $t4, 0x7c($sp) +.L7F086844: +/* 0BB374 7F086844 8FA40050 */ lw $a0, 0x50($sp) +/* 0BB378 7F086848 8FA50080 */ lw $a1, 0x80($sp) +/* 0BB37C 7F08684C 11800006 */ beqz $t4, .L7F086868 +/* 0BB380 7F086850 27A600B4 */ addiu $a2, $sp, 0xb4 +/* 0BB384 7F086854 0FC111C6 */ jal sub_GAME_7F044718 +/* 0BB388 7F086858 24070004 */ li $a3, 4 +/* 0BB38C 7F08685C 50400003 */ beql $v0, $zero, .L7F08686C +/* 0BB390 7F086860 8FB9007C */ lw $t9, 0x7c($sp) +/* 0BB394 7F086864 AFA0007C */ sw $zero, 0x7c($sp) +.L7F086868: +/* 0BB398 7F086868 8FB9007C */ lw $t9, 0x7c($sp) +.L7F08686C: +/* 0BB39C 7F08686C 8FAA0138 */ lw $t2, 0x138($sp) +/* 0BB3A0 7F086870 5720002B */ bnezl $t9, .L7F086920 +/* 0BB3A4 7F086874 8FAF008C */ lw $t7, 0x8c($sp) +/* 0BB3A8 7F086878 C5480058 */ lwc1 $f8, 0x58($t2) +/* 0BB3AC 7F08687C 4406A000 */ mfc1 $a2, $f20 +/* 0BB3B0 7F086880 27A50070 */ addiu $a1, $sp, 0x70 +/* 0BB3B4 7F086884 E7A80070 */ swc1 $f8, 0x70($sp) +/* 0BB3B8 7F086888 C60A000C */ lwc1 $f10, 0xc($s0) +/* 0BB3BC 7F08688C 24070001 */ li $a3, 1 +/* 0BB3C0 7F086890 E7AA0074 */ swc1 $f10, 0x74($sp) +/* 0BB3C4 7F086894 C5460060 */ lwc1 $f6, 0x60($t2) +/* 0BB3C8 7F086898 E7A60078 */ swc1 $f6, 0x78($sp) +/* 0BB3CC 7F08689C 0FC09E01 */ jal sub_GAME_7F027804 +/* 0BB3D0 7F0868A0 8E040004 */ lw $a0, 4($s0) +/* 0BB3D4 7F0868A4 1000001E */ b .L7F086920 +/* 0BB3D8 7F0868A8 8FAF008C */ lw $t7, 0x8c($sp) +.L7F0868AC: +/* 0BB3DC 7F0868AC 24010001 */ li $at, 1 +/* 0BB3E0 7F0868B0 1441001A */ bne $v0, $at, .L7F08691C +/* 0BB3E4 7F0868B4 02002025 */ move $a0, $s0 +/* 0BB3E8 7F0868B8 27A50064 */ addiu $a1, $sp, 0x64 +/* 0BB3EC 7F0868BC 0FC0F32C */ jal sub_GAME_7F03CCB0 +/* 0BB3F0 7F0868C0 27A60060 */ addiu $a2, $sp, 0x60 +/* 0BB3F4 7F0868C4 8FA50060 */ lw $a1, 0x60($sp) +/* 0BB3F8 7F0868C8 8FA40064 */ lw $a0, 0x64($sp) +/* 0BB3FC 7F0868CC 27A600B4 */ addiu $a2, $sp, 0xb4 +/* 0BB400 7F0868D0 58A00013 */ blezl $a1, .L7F086920 +/* 0BB404 7F0868D4 8FAF008C */ lw $t7, 0x8c($sp) +/* 0BB408 7F0868D8 0FC111AE */ jal sub_GAME_7F0446B8 +/* 0BB40C 7F0868DC 24070004 */ li $a3, 4 +/* 0BB410 7F0868E0 5040000F */ beql $v0, $zero, .L7F086920 +/* 0BB414 7F0868E4 8FAF008C */ lw $t7, 0x8c($sp) +/* 0BB418 7F0868E8 0FC26C54 */ jal get_cur_playernum +/* 0BB41C 7F0868EC 00000000 */ nop +/* 0BB420 7F0868F0 8E060004 */ lw $a2, 4($s0) +/* 0BB424 7F0868F4 3C05461C */ lui $a1, (0x461C4000 >> 16) # lui $a1, 0x461c +/* 0BB428 7F0868F8 34A54000 */ ori $a1, (0x461C4000 & 0xFFFF) # ori $a1, $a1, 0x4000 +/* 0BB42C 7F0868FC AFA20010 */ sw $v0, 0x10($sp) +/* 0BB430 7F086900 02002025 */ move $a0, $s0 +/* 0BB434 7F086904 24070020 */ li $a3, 32 +/* 0BB438 7F086908 0FC137BF */ jal sub_GAME_7F04DEFC +/* 0BB43C 7F08690C 24C60058 */ addiu $a2, $a2, 0x58 +/* 0BB440 7F086910 240D005A */ li $t5, 90 +/* 0BB444 7F086914 3C018003 */ lui $at, %hi(D_80036490) +/* 0BB448 7F086918 AC2D6490 */ sw $t5, %lo(D_80036490)($at) +.L7F08691C: +/* 0BB44C 7F08691C 8FAF008C */ lw $t7, 0x8c($sp) +.L7F086920: +/* 0BB450 7F086920 25EE0002 */ addiu $t6, $t7, 2 +/* 0BB454 7F086924 AFAE008C */ sw $t6, 0x8c($sp) +/* 0BB458 7F086928 85C20000 */ lh $v0, ($t6) +/* 0BB45C 7F08692C 0443FF7C */ bgezl $v0, .L7F086720 +/* 0BB460 7F086930 8FAC0138 */ lw $t4, 0x138($sp) +/* 0BB464 7F086934 8FA40394 */ lw $a0, 0x394($sp) +.L7F086938: +/* 0BB468 7F086938 0FC2037E */ jal sub_GAME_7F080DF8 +/* 0BB46C 7F08693C 8FA50390 */ lw $a1, 0x390($sp) +/* 0BB470 7F086940 0FC2051E */ jal sub_GAME_7F081478 +/* 0BB474 7F086944 00000000 */ nop +/* 0BB478 7F086948 0FC22867 */ jal sub_GAME_7F08A19C +/* 0BB47C 7F08694C 00000000 */ nop +/* 0BB480 7F086950 0FC243DF */ jal get_debug_man_pos_flag +/* 0BB484 7F086954 00000000 */ nop +/* 0BB488 7F086958 50400008 */ beql $v0, $zero, .L7F08697C +/* 0BB48C 7F08695C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0BB490 7F086960 8E280000 */ lw $t0, ($s1) +/* 0BB494 7F086964 27A7005C */ addiu $a3, $sp, 0x5c +/* 0BB498 7F086968 8D040488 */ lw $a0, 0x488($t0) +/* 0BB49C 7F08696C 8D05048C */ lw $a1, 0x48c($t0) +/* 0BB4A0 7F086970 0FC2CB0B */ jal copy_tile_RGB_as_24bit +/* 0BB4A4 7F086974 8D060494 */ lw $a2, 0x494($t0) +/* 0BB4A8 7F086978 8FBF002C */ lw $ra, 0x2c($sp) +.L7F08697C: +/* 0BB4AC 7F08697C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0BB4B0 7F086980 8FB00024 */ lw $s0, 0x24($sp) +/* 0BB4B4 7F086984 8FB10028 */ lw $s1, 0x28($sp) +/* 0BB4B8 7F086988 03E00008 */ jr $ra +/* 0BB4BC 7F08698C 27BD03B8 */ addiu $sp, $sp, 0x3b8 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_8005516C +.word 0x3d888889 /*0.06666667*/ +glabel D_80055170 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055174 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055178 +.word 0x3f8147ae /*1.01*/ +glabel D_8005517C +.word 0x3f8147ae /*1.01*/ +glabel D_80055180 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055184 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055188 +.word 0x40490fdb /*3.1415927*/ +glabel D_8005518C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055190 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80055194 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055198 +.word 0x3f6b851f /*0.92000002*/ +glabel D_8005519C +.word 0x3da3d708 /*0.079999983*/ +glabel D_800551A0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551A4 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551A8 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551AC +.word 0x3da3d708 /*0.079999983*/ +glabel D_800551B0 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551B4 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551B8 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551BC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551C0 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551C4 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551C8 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551CC +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551D0 +.word 0x3da3d708 /*0.079999983*/ +glabel D_800551D4 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_800551D8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551DC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551E0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551E4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551E8 +.word 0x3e99999a /*0.30000001*/ +glabel D_800551EC +.word 0x3e19999a /*0.15000001*/ +glabel D_800551F0 +.word 0x469c4000 /*20000.0*/ +glabel D_800551F4 +.word 0x3f666666 /*0.89999998*/ +glabel D_800551F8 +.word 0x46477c00 /*12767.0*/ +glabel D_800551FC +.word 0x469c4000 /*20000.0*/ +glabel D_80055200 +.word 0x3f666666 /*0.89999998*/ +glabel D_80055204 +.word 0x45f2b800 /*7767.0*/ +glabel D_80055208 +.word 0x3f666666 /*0.89999998*/ +glabel D_8005520C +.word 0x46c35000 /*25000.0;*/ +glabel D_80055210 +.word 0x3e32b8c3 /*0.17453294*/ +glabel D_80055214 +.word 0x3edf66f3 /*0.43633232*/ +glabel D_80055218 +.word 0xbdb2b8c3 /*-0.087266468*/ +glabel D_8005521C +.word 0x3f70a3d7 /*0.94*/ +glabel D_80055220 +.word 0x3d75c290 /*0.060000002*/ +glabel D_80055224 +.word 0x4528c000 /*2700.0*/ +glabel D_80055228 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005522C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055230 +.word 0x3f19999a /*0.60000002*/ +glabel D_80055234 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80055238 +.word 0x3dcccccd /*0.1*/ +glabel D_8005523C +.word 0x4528c000 /*2700.0*/ +glabel D_80055240 +.word 0x3f947ae1 /*1.16*/ +glabel D_80055244 +.word 0x3f8147ae /*1.01*/ +glabel D_80055248 +.word 0x3f7d7721 /*0.99009901*/ +glabel D_8005524C +.word 0x3f333333 /*0.69999999*/ +glabel D_80055250 +.word 0x3f99999a /*1.2*/ +glabel D_80055254 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055258 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005525C +.word 0x3f547ae1 /*0.82999998*/ +glabel D_80055260 +.word 0x3e2e147c /*0.17000002*/ +.text +glabel MoveBond +/* 0B9868 7F084CF8 27BDFC48 */ addiu $sp, $sp, -0x3b8 +/* 0B986C 7F084CFC 3C198003 */ lui $t9, %hi(D_800367F4) # $t9, 0x8003 +/* 0B9870 7F084D00 AFBF002C */ sw $ra, 0x2c($sp) +/* 0B9874 7F084D04 AFB10028 */ sw $s1, 0x28($sp) +/* 0B9878 7F084D08 AFB00024 */ sw $s0, 0x24($sp) +/* 0B987C 7F084D0C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0B9880 7F084D10 AFA403B8 */ sw $a0, 0x3b8($sp) +/* 0B9884 7F084D14 AFA503BC */ sw $a1, 0x3bc($sp) +/* 0B9888 7F084D18 AFA603C0 */ sw $a2, 0x3c0($sp) +/* 0B988C 7F084D1C AFA703C4 */ sw $a3, 0x3c4($sp) +/* 0B9890 7F084D20 27396834 */ addiu $t9, %lo(D_800367F4) # addiu $t9, $t9, 0x6834 +/* 0B9894 7F084D24 8F210000 */ lw $at, ($t9) +/* 0B9898 7F084D28 27AA03AC */ addiu $t2, $sp, 0x3ac +/* 0B989C 7F084D2C 8F2C0004 */ lw $t4, 4($t9) +/* 0B98A0 7F084D30 AD410000 */ sw $at, ($t2) +/* 0B98A4 7F084D34 8F210008 */ lw $at, 8($t9) +/* 0B98A8 7F084D38 4480A000 */ mtc1 $zero, $f20 +/* 0B98AC 7F084D3C 00048600 */ sll $s0, $a0, 0x18 +/* 0B98B0 7F084D40 AD410008 */ sw $at, 8($t2) +/* 0B98B4 7F084D44 00107603 */ sra $t6, $s0, 0x18 +/* 0B98B8 7F084D48 AD4C0004 */ sw $t4, 4($t2) +/* 0B98BC 7F084D4C 29C10064 */ slti $at, $t6, 0x64 +/* 0B98C0 7F084D50 01C08025 */ move $s0, $t6 +/* 0B98C4 7F084D54 AFA00394 */ sw $zero, 0x394($sp) +/* 0B98C8 7F084D58 E7B40398 */ swc1 $f20, 0x398($sp) +/* 0B98CC 7F084D5C 10200004 */ beqz $at, .Ljp7F084D70 +/* 0B98D0 7F084D60 E7B40390 */ swc1 $f20, 0x390($sp) +/* 0B98D4 7F084D64 29C1FF9D */ slti $at, $t6, -0x63 +/* 0B98D8 7F084D68 50200004 */ beql $at, $zero, .Ljp7F084D7C +/* 0B98DC 7F084D6C 83AB03BF */ lb $t3, 0x3bf($sp) +.Ljp7F084D70: +/* 0B98E0 7F084D70 0FC1B297 */ jal return_null +/* 0B98E4 7F084D74 00000000 */ nop +/* 0B98E8 7F084D78 83AB03BF */ lb $t3, 0x3bf($sp) +.Ljp7F084D7C: +/* 0B98EC 7F084D7C 29610064 */ slti $at, $t3, 0x64 +/* 0B98F0 7F084D80 10200003 */ beqz $at, .Ljp7F084D90 +/* 0B98F4 7F084D84 2961FF9D */ slti $at, $t3, -0x63 +/* 0B98F8 7F084D88 10200003 */ beqz $at, .Ljp7F084D98 +/* 0B98FC 7F084D8C 00000000 */ nop +.Ljp7F084D90: +/* 0B9900 7F084D90 0FC1B297 */ jal return_null +/* 0B9904 7F084D94 00000000 */ nop +.Ljp7F084D98: +/* 0B9908 7F084D98 3C038003 */ lui $v1, %hi(camera_80036424) # $v1, 0x8003 +/* 0B990C 7F084D9C 24636464 */ addiu $v1, %lo(camera_80036424) # addiu $v1, $v1, 0x6464 +/* 0B9910 7F084DA0 8C620000 */ lw $v0, ($v1) +/* 0B9914 7F084DA4 18400015 */ blez $v0, .Ljp7F084DFC +/* 0B9918 7F084DA8 244D0001 */ addiu $t5, $v0, 1 +/* 0B991C 7F084DAC 29A10004 */ slti $at, $t5, 4 +/* 0B9920 7F084DB0 14200012 */ bnez $at, .Ljp7F084DFC +/* 0B9924 7F084DB4 AC6D0000 */ sw $t5, ($v1) +/* 0B9928 7F084DB8 3C118008 */ lui $s1, %hi(pPlayer) # $s1, 0x8008 +/* 0B992C 7F084DBC 2631A120 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5ee0 +/* 0B9930 7F084DC0 8E380000 */ lw $t8, ($s1) +/* 0B9934 7F084DC4 AC600000 */ sw $zero, ($v1) +/* 0B9938 7F084DC8 24040001 */ li $a0, 1 +/* 0B993C 7F084DCC AF002A54 */ sw $zero, 0x2a54($t8) +/* 0B9940 7F084DD0 8E2F0000 */ lw $t7, ($s1) +/* 0B9944 7F084DD4 0FC177BC */ jal get_item_in_hand +/* 0B9948 7F084DD8 ADE02A50 */ sw $zero, 0x2a50($t7) +/* 0B994C 7F084DDC 24040001 */ li $a0, 1 +/* 0B9950 7F084DE0 0FC1781D */ jal remove_hands_item +/* 0B9954 7F084DE4 00402825 */ move $a1, $v0 +/* 0B9958 7F084DE8 0FC177BC */ jal get_item_in_hand +/* 0B995C 7F084DEC 00002025 */ move $a0, $zero +/* 0B9960 7F084DF0 00002025 */ move $a0, $zero +/* 0B9964 7F084DF4 0FC1781D */ jal remove_hands_item +/* 0B9968 7F084DF8 00402825 */ move $a1, $v0 +.Ljp7F084DFC: +/* 0B996C 7F084DFC 3C118008 */ lui $s1, %hi(pPlayer) # $s1, 0x8008 +/* 0B9970 7F084E00 2631A120 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5ee0 +/* 0B9974 7F084E04 0FC1E810 */ jal setptrBONDdata +/* 0B9978 7F084E08 00002025 */ move $a0, $zero +/* 0B997C 7F084E0C 0FC21176 */ jal sub_GAME_7F083FC8 +/* 0B9980 7F084E10 00000000 */ nop +/* 0B9984 7F084E14 0FC21284 */ jal sub_GAME_7F084360 +/* 0B9988 7F084E18 00000000 */ nop +/* 0B998C 7F084E1C 00102600 */ sll $a0, $s0, 0x18 +/* 0B9990 7F084E20 00045603 */ sra $t2, $a0, 0x18 +/* 0B9994 7F084E24 01402025 */ move $a0, $t2 +/* 0B9998 7F084E28 83A503BF */ lb $a1, 0x3bf($sp) +/* 0B999C 7F084E2C 97A603C2 */ lhu $a2, 0x3c2($sp) +/* 0B99A0 7F084E30 0FC207E1 */ jal controller_gameplay_interaction +/* 0B99A4 7F084E34 97A703C6 */ lhu $a3, 0x3c6($sp) +/* 0B99A8 7F084E38 0FC3021B */ jal get_controls_locked_flag +/* 0B99AC 7F084E3C 00000000 */ nop +/* 0B99B0 7F084E40 50400004 */ beql $v0, $zero, .Ljp7F084E54 +/* 0B99B4 7F084E44 8E390000 */ lw $t9, ($s1) +/* 0B99B8 7F084E48 0FC1FC3F */ jal sub_GAME_7F07EAF0 +/* 0B99BC 7F084E4C 00000000 */ nop +/* 0B99C0 7F084E50 8E390000 */ lw $t9, ($s1) +.Ljp7F084E54: +/* 0B99C4 7F084E54 8F2C01C8 */ lw $t4, 0x1c8($t9) +/* 0B99C8 7F084E58 11800003 */ beqz $t4, .Ljp7F084E68 +/* 0B99CC 7F084E5C 00000000 */ nop +/* 0B99D0 7F084E60 0FC1FC98 */ jal sub_GAME_7F07EC54 +/* 0B99D4 7F084E64 00000000 */ nop +.Ljp7F084E68: +/* 0B99D8 7F084E68 3C0B8003 */ lui $t3, %hi(in_tank_flag) # $t3, 0x8003 +/* 0B99DC 7F084E6C 8D6B6488 */ lw $t3, %lo(in_tank_flag)($t3) +/* 0B99E0 7F084E70 1560006E */ bnez $t3, .Ljp7F08502C +/* 0B99E4 7F084E74 00000000 */ nop +/* 0B99E8 7F084E78 0FC1E7F8 */ jal sub_GAME_7F0799F0 +/* 0B99EC 7F084E7C 00000000 */ nop +/* 0B99F0 7F084E80 5440000D */ bnezl $v0, .Ljp7F084EB8 +/* 0B99F4 7F084E84 8E280000 */ lw $t0, ($s1) +/* 0B99F8 7F084E88 8E280000 */ lw $t0, ($s1) +/* 0B99FC 7F084E8C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B9A00 7F084E90 44815000 */ mtc1 $at, $f10 +/* 0B9A04 7F084E94 C5040174 */ lwc1 $f4, 0x174($t0) +/* 0B9A08 7F084E98 460A2182 */ mul.s $f6, $f4, $f10 +/* 0B9A0C 7F084E9C 44812000 */ mtc1 $at, $f4 +/* 0B9A10 7F084EA0 E5060174 */ swc1 $f6, 0x174($t0) +/* 0B9A14 7F084EA4 8E280000 */ lw $t0, ($s1) +/* 0B9A18 7F084EA8 C508016C */ lwc1 $f8, 0x16c($t0) +/* 0B9A1C 7F084EAC 46044282 */ mul.s $f10, $f8, $f4 +/* 0B9A20 7F084EB0 E50A016C */ swc1 $f10, 0x16c($t0) +/* 0B9A24 7F084EB4 8E280000 */ lw $t0, ($s1) +.Ljp7F084EB8: +/* 0B9A28 7F084EB8 C5120180 */ lwc1 $f18, 0x180($t0) +/* 0B9A2C 7F084EBC 4612A032 */ c.eq.s $f20, $f18 +/* 0B9A30 7F084EC0 00000000 */ nop +/* 0B9A34 7F084EC4 45020007 */ bc1fl .Ljp7F084EE4 +/* 0B9A38 7F084EC8 C5000188 */ lwc1 $f0, 0x188($t0) +/* 0B9A3C 7F084ECC C5060188 */ lwc1 $f6, 0x188($t0) +/* 0B9A40 7F084ED0 4606A032 */ c.eq.s $f20, $f6 +/* 0B9A44 7F084ED4 00000000 */ nop +/* 0B9A48 7F084ED8 45010054 */ bc1t .Ljp7F08502C +/* 0B9A4C 7F084EDC 00000000 */ nop +/* 0B9A50 7F084EE0 C5000188 */ lwc1 $f0, 0x188($t0) +.Ljp7F084EE4: +/* 0B9A54 7F084EE4 C5020150 */ lwc1 $f2, 0x150($t0) +/* 0B9A58 7F084EE8 C5100154 */ lwc1 $f16, 0x154($t0) +/* 0B9A5C 7F084EEC 46009387 */ neg.s $f14, $f18 +/* 0B9A60 7F084EF0 46020202 */ mul.s $f8, $f0, $f2 +/* 0B9A64 7F084EF4 00000000 */ nop +/* 0B9A68 7F084EF8 46107102 */ mul.s $f4, $f14, $f16 +/* 0B9A6C 7F084EFC 46044280 */ add.s $f10, $f8, $f4 +/* 0B9A70 7F084F00 46027182 */ mul.s $f6, $f14, $f2 +/* 0B9A74 7F084F04 00000000 */ nop +/* 0B9A78 7F084F08 46100202 */ mul.s $f8, $f0, $f16 +/* 0B9A7C 7F084F0C E7AA038C */ swc1 $f10, 0x38c($sp) +/* 0B9A80 7F084F10 46000282 */ mul.s $f10, $f0, $f0 +/* 0B9A84 7F084F14 46083101 */ sub.s $f4, $f6, $f8 +/* 0B9A88 7F084F18 46129182 */ mul.s $f6, $f18, $f18 +/* 0B9A8C 7F084F1C E7A40388 */ swc1 $f4, 0x388($sp) +/* 0B9A90 7F084F20 0C007E08 */ jal sqrtf +/* 0B9A94 7F084F24 46065300 */ add.s $f12, $f10, $f6 +/* 0B9A98 7F084F28 8E280000 */ lw $t0, ($s1) +/* 0B9A9C 7F084F2C C7A4038C */ lwc1 $f4, 0x38c($sp) +/* 0B9AA0 7F084F30 3C018005 */ lui $at, %hi(D_8005516C) # $at, 0x8005 +/* 0B9AA4 7F084F34 C5080174 */ lwc1 $f8, 0x174($t0) +/* 0B9AA8 7F084F38 3C098005 */ lui $t1, %hi(global_timer_delta) # $t1, 0x8005 +/* 0B9AAC 7F084F3C 252983B4 */ addiu $t1, %lo(global_timer_delta) # addiu $t1, $t1, -0x7c4c +/* 0B9AB0 7F084F40 46044280 */ add.s $f10, $f8, $f4 +/* 0B9AB4 7F084F44 00001825 */ move $v1, $zero +/* 0B9AB8 7F084F48 2404000C */ li $a0, 12 +/* 0B9ABC 7F084F4C E50A0174 */ swc1 $f10, 0x174($t0) +/* 0B9AC0 7F084F50 8E280000 */ lw $t0, ($s1) +/* 0B9AC4 7F084F54 C7A80388 */ lwc1 $f8, 0x388($sp) +/* 0B9AC8 7F084F58 C506016C */ lwc1 $f6, 0x16c($t0) +/* 0B9ACC 7F084F5C 46083100 */ add.s $f4, $f6, $f8 +/* 0B9AD0 7F084F60 E504016C */ swc1 $f4, 0x16c($t0) +/* 0B9AD4 7F084F64 C42C519C */ lwc1 $f12, %lo(D_8005516C)($at) +/* 0B9AD8 7F084F68 8E2D0000 */ lw $t5, ($s1) +.Ljp7F084F6C: +/* 0B9ADC 7F084F6C 01A31021 */ addu $v0, $t5, $v1 +/* 0B9AE0 7F084F70 C4420180 */ lwc1 $f2, 0x180($v0) +/* 0B9AE4 7F084F74 4602A032 */ c.eq.s $f20, $f2 +/* 0B9AE8 7F084F78 00000000 */ nop +/* 0B9AEC 7F084F7C 45030029 */ bc1tl .Ljp7F085024 +/* 0B9AF0 7F084F80 24630004 */ addiu $v1, $v1, 4 +/* 0B9AF4 7F084F84 4602A03C */ c.lt.s $f20, $f2 +/* 0B9AF8 7F084F88 00000000 */ nop +/* 0B9AFC 7F084F8C 45020012 */ bc1fl .Ljp7F084FD8 +/* 0B9B00 7F084F90 4614103C */ c.lt.s $f2, $f20 +/* 0B9B04 7F084F94 C52A0000 */ lwc1 $f10, ($t1) +/* 0B9B08 7F084F98 460A6182 */ mul.s $f6, $f12, $f10 +/* 0B9B0C 7F084F9C 00000000 */ nop +/* 0B9B10 7F084FA0 46023202 */ mul.s $f8, $f6, $f2 +/* 0B9B14 7F084FA4 46004103 */ div.s $f4, $f8, $f0 +/* 0B9B18 7F084FA8 46041281 */ sub.s $f10, $f2, $f4 +/* 0B9B1C 7F084FAC E44A0180 */ swc1 $f10, 0x180($v0) +/* 0B9B20 7F084FB0 8E2E0000 */ lw $t6, ($s1) +/* 0B9B24 7F084FB4 01C31021 */ addu $v0, $t6, $v1 +/* 0B9B28 7F084FB8 C4460180 */ lwc1 $f6, 0x180($v0) +/* 0B9B2C 7F084FBC 4614303C */ c.lt.s $f6, $f20 +/* 0B9B30 7F084FC0 00000000 */ nop +/* 0B9B34 7F084FC4 45000016 */ bc1f .Ljp7F085020 +/* 0B9B38 7F084FC8 00000000 */ nop +/* 0B9B3C 7F084FCC 10000014 */ b .Ljp7F085020 +/* 0B9B40 7F084FD0 E4540180 */ swc1 $f20, 0x180($v0) +/* 0B9B44 7F084FD4 4614103C */ c.lt.s $f2, $f20 +.Ljp7F084FD8: +/* 0B9B48 7F084FD8 00000000 */ nop +/* 0B9B4C 7F084FDC 45020011 */ bc1fl .Ljp7F085024 +/* 0B9B50 7F084FE0 24630004 */ addiu $v1, $v1, 4 +/* 0B9B54 7F084FE4 C5280000 */ lwc1 $f8, ($t1) +/* 0B9B58 7F084FE8 46086102 */ mul.s $f4, $f12, $f8 +/* 0B9B5C 7F084FEC 00000000 */ nop +/* 0B9B60 7F084FF0 46022282 */ mul.s $f10, $f4, $f2 +/* 0B9B64 7F084FF4 46005183 */ div.s $f6, $f10, $f0 +/* 0B9B68 7F084FF8 46061201 */ sub.s $f8, $f2, $f6 +/* 0B9B6C 7F084FFC E4480180 */ swc1 $f8, 0x180($v0) +/* 0B9B70 7F085000 8E380000 */ lw $t8, ($s1) +/* 0B9B74 7F085004 03031021 */ addu $v0, $t8, $v1 +/* 0B9B78 7F085008 C4440180 */ lwc1 $f4, 0x180($v0) +/* 0B9B7C 7F08500C 4604A03C */ c.lt.s $f20, $f4 +/* 0B9B80 7F085010 00000000 */ nop +/* 0B9B84 7F085014 45000002 */ bc1f .Ljp7F085020 +/* 0B9B88 7F085018 00000000 */ nop +/* 0B9B8C 7F08501C E4540180 */ swc1 $f20, 0x180($v0) +.Ljp7F085020: +/* 0B9B90 7F085020 24630004 */ addiu $v1, $v1, 4 +.Ljp7F085024: +/* 0B9B94 7F085024 5464FFD1 */ bnel $v1, $a0, .Ljp7F084F6C +/* 0B9B98 7F085028 8E2D0000 */ lw $t5, ($s1) +.Ljp7F08502C: +/* 0B9B9C 7F08502C 3C0F8003 */ lui $t7, %hi(in_tank_flag) # $t7, 0x8003 +/* 0B9BA0 7F085030 8DEF6488 */ lw $t7, %lo(in_tank_flag)($t7) +/* 0B9BA4 7F085034 3C098005 */ lui $t1, %hi(global_timer_delta) # $t1, 0x8005 +/* 0B9BA8 7F085038 24010001 */ li $at, 1 +/* 0B9BAC 7F08503C 252983B4 */ addiu $t1, %lo(global_timer_delta) # addiu $t1, $t1, -0x7c4c +/* 0B9BB0 7F085040 15E10211 */ bne $t7, $at, .Ljp7F085888 +/* 0B9BB4 7F085044 8E280000 */ lw $t0, ($s1) +/* 0B9BB8 7F085048 C50A014C */ lwc1 $f10, 0x14c($t0) +/* 0B9BBC 7F08504C C5260000 */ lwc1 $f6, ($t1) +/* 0B9BC0 7F085050 3C018005 */ lui $at, %hi(D_80055170) # $at, 0x8005 +/* 0B9BC4 7F085054 C42C51A0 */ lwc1 $f12, %lo(D_80055170)($at) +/* 0B9BC8 7F085058 46065202 */ mul.s $f8, $f10, $f6 +/* 0B9BCC 7F08505C 3C018005 */ lui $at, %hi(D_80055174) # $at, 0x8005 +/* 0B9BD0 7F085060 C42451A4 */ lwc1 $f4, %lo(D_80055174)($at) +/* 0B9BD4 7F085064 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B9BD8 7F085068 44813000 */ mtc1 $at, $f6 +/* 0B9BDC 7F08506C 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0B9BE0 7F085070 27B00374 */ addiu $s0, $sp, 0x374 +/* 0B9BE4 7F085074 46044282 */ mul.s $f10, $f8, $f4 +/* 0B9BE8 7F085078 C42864A4 */ lwc1 $f8, %lo(D_80036464)($at) +/* 0B9BEC 7F08507C 02003825 */ move $a3, $s0 +/* 0B9BF0 7F085080 2504048C */ addiu $a0, $t0, 0x48c +/* 0B9BF4 7F085084 27AA0368 */ addiu $t2, $sp, 0x368 +/* 0B9BF8 7F085088 46065082 */ mul.s $f2, $f10, $f6 +/* 0B9BFC 7F08508C 46024000 */ add.s $f0, $f8, $f2 +/* 0B9C00 7F085090 4600603E */ c.le.s $f12, $f0 +/* 0B9C04 7F085094 00000000 */ nop +/* 0B9C08 7F085098 45020003 */ bc1fl .Ljp7F0850A8 +/* 0B9C0C 7F08509C 4614003C */ c.lt.s $f0, $f20 +/* 0B9C10 7F0850A0 460C0001 */ sub.s $f0, $f0, $f12 +/* 0B9C14 7F0850A4 4614003C */ c.lt.s $f0, $f20 +.Ljp7F0850A8: +/* 0B9C18 7F0850A8 00000000 */ nop +/* 0B9C1C 7F0850AC 45020003 */ bc1fl .Ljp7F0850BC +/* 0B9C20 7F0850B0 8D050488 */ lw $a1, 0x488($t0) +/* 0B9C24 7F0850B4 460C0000 */ add.s $f0, $f0, $f12 +/* 0B9C28 7F0850B8 8D050488 */ lw $a1, 0x488($t0) +.Ljp7F0850BC: +/* 0B9C2C 7F0850BC 44060000 */ mfc1 $a2, $f0 +/* 0B9C30 7F0850C0 E7A20358 */ swc1 $f2, 0x358($sp) +/* 0B9C34 7F0850C4 E7A0035C */ swc1 $f0, 0x35c($sp) +/* 0B9C38 7F0850C8 0FC1F43B */ jal sub_GAME_7F07CAC8 +/* 0B9C3C 7F0850CC AFAA0010 */ sw $t2, 0x10($sp) +/* 0B9C40 7F0850D0 50400007 */ beql $v0, $zero, .Ljp7F0850F0 +/* 0B9C44 7F0850D4 3C01BF80 */ lui $at, 0xbf80 +/* 0B9C48 7F0850D8 C7A4035C */ lwc1 $f4, 0x35c($sp) +/* 0B9C4C 7F0850DC 3C018003 */ li $at, 0x80030000 # -0.000000 +/* 0B9C50 7F0850E0 E42464A4 */ swc1 $f4, %lo(D_80036464)($at) +/* 0B9C54 7F0850E4 100000CB */ b .Ljp7F085414 +/* 0B9C58 7F0850E8 8E280000 */ lw $t0, ($s1) +/* 0B9C5C 7F0850EC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.Ljp7F0850F0: +/* 0B9C60 7F0850F0 44815000 */ mtc1 $at, $f10 +/* 0B9C64 7F0850F4 44813000 */ mtc1 $at, $f6 +/* 0B9C68 7F0850F8 27A40348 */ addiu $a0, $sp, 0x348 +/* 0B9C6C 7F0850FC 27A5033C */ addiu $a1, $sp, 0x33c +/* 0B9C70 7F085100 E7AA031C */ swc1 $f10, 0x31c($sp) +/* 0B9C74 7F085104 0FC2CD18 */ jal sub_GAME_7F0B28B0 +/* 0B9C78 7F085108 E7A60304 */ swc1 $f6, 0x304($sp) +/* 0B9C7C 7F08510C C7A8033C */ lwc1 $f8, 0x33c($sp) +/* 0B9C80 7F085110 C7A40348 */ lwc1 $f4, 0x348($sp) +/* 0B9C84 7F085114 C7AA0344 */ lwc1 $f10, 0x344($sp) +/* 0B9C88 7F085118 C7A60350 */ lwc1 $f6, 0x350($sp) +/* 0B9C8C 7F08511C 46044081 */ sub.s $f2, $f8, $f4 +/* 0B9C90 7F085120 46065381 */ sub.s $f14, $f10, $f6 +/* 0B9C94 7F085124 46021202 */ mul.s $f8, $f2, $f2 +/* 0B9C98 7F085128 E7A20338 */ swc1 $f2, 0x338($sp) +/* 0B9C9C 7F08512C 460E7102 */ mul.s $f4, $f14, $f14 +/* 0B9CA0 7F085130 E7AE0334 */ swc1 $f14, 0x334($sp) +/* 0B9CA4 7F085134 0C007E08 */ jal sqrtf +/* 0B9CA8 7F085138 46044300 */ add.s $f12, $f8, $f4 +/* 0B9CAC 7F08513C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B9CB0 7F085140 44815000 */ mtc1 $at, $f10 +/* 0B9CB4 7F085144 C7A20338 */ lwc1 $f2, 0x338($sp) +/* 0B9CB8 7F085148 C7AE0334 */ lwc1 $f14, 0x334($sp) +/* 0B9CBC 7F08514C 46005403 */ div.s $f16, $f10, $f0 +/* 0B9CC0 7F085150 8E280000 */ lw $t0, ($s1) +/* 0B9CC4 7F085154 C7AA0370 */ lwc1 $f10, 0x370($sp) +/* 0B9CC8 7F085158 46101082 */ mul.s $f2, $f2, $f16 +/* 0B9CCC 7F08515C 00000000 */ nop +/* 0B9CD0 7F085160 46107382 */ mul.s $f14, $f14, $f16 +/* 0B9CD4 7F085164 46001307 */ neg.s $f12, $f2 +/* 0B9CD8 7F085168 E7AC0320 */ swc1 $f12, 0x320($sp) +/* 0B9CDC 7F08516C E7AE0324 */ swc1 $f14, 0x324($sp) +/* 0B9CE0 7F085170 C5060494 */ lwc1 $f6, 0x494($t0) +/* 0B9CE4 7F085174 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0B9CE8 7F085178 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 0B9CEC 7F08517C C508048C */ lwc1 $f8, 0x48c($t0) +/* 0B9CF0 7F085180 460A2181 */ sub.s $f6, $f4, $f10 +/* 0B9CF4 7F085184 E7A80044 */ swc1 $f8, 0x44($sp) +/* 0B9CF8 7F085188 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B9CFC 7F08518C C7AA0368 */ lwc1 $f10, 0x368($sp) +/* 0B9D00 7F085190 460C3202 */ mul.s $f8, $f6, $f12 +/* 0B9D04 7F085194 460A2181 */ sub.s $f6, $f4, $f10 +/* 0B9D08 7F085198 460E3102 */ mul.s $f4, $f6, $f14 +/* 0B9D0C 7F08519C 46044480 */ add.s $f18, $f8, $f4 +/* 0B9D10 7F0851A0 4614903C */ c.lt.s $f18, $f20 +/* 0B9D14 7F0851A4 00000000 */ nop +/* 0B9D18 7F0851A8 45000006 */ bc1f .Ljp7F0851C4 +/* 0B9D1C 7F0851AC 00000000 */ nop +/* 0B9D20 7F0851B0 46007287 */ neg.s $f10, $f14 +/* 0B9D24 7F0851B4 46006187 */ neg.s $f6, $f12 +/* 0B9D28 7F0851B8 46009487 */ neg.s $f18, $f18 +/* 0B9D2C 7F0851BC E7AA0324 */ swc1 $f10, 0x324($sp) +/* 0B9D30 7F0851C0 E7A60320 */ swc1 $f6, 0x320($sp) +.Ljp7F0851C4: +/* 0B9D34 7F0851C4 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0B9D38 7F0851C8 C7A40350 */ lwc1 $f4, 0x350($sp) +/* 0B9D3C 7F0851CC C7A60320 */ lwc1 $f6, 0x320($sp) +/* 0B9D40 7F0851D0 46044281 */ sub.s $f10, $f8, $f4 +/* 0B9D44 7F0851D4 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B9D48 7F0851D8 46065202 */ mul.s $f8, $f10, $f6 +/* 0B9D4C 7F0851DC C7AA0348 */ lwc1 $f10, 0x348($sp) +/* 0B9D50 7F0851E0 460A2181 */ sub.s $f6, $f4, $f10 +/* 0B9D54 7F0851E4 C7A40324 */ lwc1 $f4, 0x324($sp) +/* 0B9D58 7F0851E8 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9D5C 7F0851EC 460A4000 */ add.s $f0, $f8, $f10 +/* 0B9D60 7F0851F0 4612003C */ c.lt.s $f0, $f18 +/* 0B9D64 7F0851F4 00000000 */ nop +/* 0B9D68 7F0851F8 45020004 */ bc1fl .Ljp7F08520C +/* 0B9D6C 7F0851FC C7A40368 */ lwc1 $f4, 0x368($sp) +/* 0B9D70 7F085200 46009181 */ sub.s $f6, $f18, $f0 +/* 0B9D74 7F085204 E7A6031C */ swc1 $f6, 0x31c($sp) +/* 0B9D78 7F085208 C7A40368 */ lwc1 $f4, 0x368($sp) +.Ljp7F08520C: +/* 0B9D7C 7F08520C C7A80374 */ lwc1 $f8, 0x374($sp) +/* 0B9D80 7F085210 C7AA0370 */ lwc1 $f10, 0x370($sp) +/* 0B9D84 7F085214 C7A6037C */ lwc1 $f6, 0x37c($sp) +/* 0B9D88 7F085218 46082081 */ sub.s $f2, $f4, $f8 +/* 0B9D8C 7F08521C 46065381 */ sub.s $f14, $f10, $f6 +/* 0B9D90 7F085220 46021102 */ mul.s $f4, $f2, $f2 +/* 0B9D94 7F085224 E7A20338 */ swc1 $f2, 0x338($sp) +/* 0B9D98 7F085228 460E7202 */ mul.s $f8, $f14, $f14 +/* 0B9D9C 7F08522C E7AE0334 */ swc1 $f14, 0x334($sp) +/* 0B9DA0 7F085230 0C007E08 */ jal sqrtf +/* 0B9DA4 7F085234 46082300 */ add.s $f12, $f4, $f8 +/* 0B9DA8 7F085238 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B9DAC 7F08523C 44815000 */ mtc1 $at, $f10 +/* 0B9DB0 7F085240 C7A20338 */ lwc1 $f2, 0x338($sp) +/* 0B9DB4 7F085244 C7AE0334 */ lwc1 $f14, 0x334($sp) +/* 0B9DB8 7F085248 46005403 */ div.s $f16, $f10, $f0 +/* 0B9DBC 7F08524C 8E280000 */ lw $t0, ($s1) +/* 0B9DC0 7F085250 C7AA0370 */ lwc1 $f10, 0x370($sp) +/* 0B9DC4 7F085254 46101082 */ mul.s $f2, $f2, $f16 +/* 0B9DC8 7F085258 00000000 */ nop +/* 0B9DCC 7F08525C 46107382 */ mul.s $f14, $f14, $f16 +/* 0B9DD0 7F085260 46001307 */ neg.s $f12, $f2 +/* 0B9DD4 7F085264 E7AC0308 */ swc1 $f12, 0x308($sp) +/* 0B9DD8 7F085268 E7AE030C */ swc1 $f14, 0x30c($sp) +/* 0B9DDC 7F08526C C5060494 */ lwc1 $f6, 0x494($t0) +/* 0B9DE0 7F085270 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0B9DE4 7F085274 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0B9DE8 7F085278 C504048C */ lwc1 $f4, 0x48c($t0) +/* 0B9DEC 7F08527C 460A4181 */ sub.s $f6, $f8, $f10 +/* 0B9DF0 7F085280 E7A40044 */ swc1 $f4, 0x44($sp) +/* 0B9DF4 7F085284 C7A80044 */ lwc1 $f8, 0x44($sp) +/* 0B9DF8 7F085288 C7AA0368 */ lwc1 $f10, 0x368($sp) +/* 0B9DFC 7F08528C 460C3102 */ mul.s $f4, $f6, $f12 +/* 0B9E00 7F085290 460A4181 */ sub.s $f6, $f8, $f10 +/* 0B9E04 7F085294 460E3202 */ mul.s $f8, $f6, $f14 +/* 0B9E08 7F085298 46082480 */ add.s $f18, $f4, $f8 +/* 0B9E0C 7F08529C 4614903C */ c.lt.s $f18, $f20 +/* 0B9E10 7F0852A0 00000000 */ nop +/* 0B9E14 7F0852A4 45000006 */ bc1f .Ljp7F0852C0 +/* 0B9E18 7F0852A8 00000000 */ nop +/* 0B9E1C 7F0852AC 46007407 */ neg.s $f16, $f14 +/* 0B9E20 7F0852B0 46006287 */ neg.s $f10, $f12 +/* 0B9E24 7F0852B4 46009487 */ neg.s $f18, $f18 +/* 0B9E28 7F0852B8 E7AA0308 */ swc1 $f10, 0x308($sp) +/* 0B9E2C 7F0852BC E7B0030C */ swc1 $f16, 0x30c($sp) +.Ljp7F0852C0: +/* 0B9E30 7F0852C0 C7A60048 */ lwc1 $f6, 0x48($sp) +/* 0B9E34 7F0852C4 C7A40350 */ lwc1 $f4, 0x350($sp) +/* 0B9E38 7F0852C8 C7AC0308 */ lwc1 $f12, 0x308($sp) +/* 0B9E3C 7F0852CC C7B0030C */ lwc1 $f16, 0x30c($sp) +/* 0B9E40 7F0852D0 46043201 */ sub.s $f8, $f6, $f4 +/* 0B9E44 7F0852D4 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B9E48 7F0852D8 460C4282 */ mul.s $f10, $f8, $f12 +/* 0B9E4C 7F0852DC C7A80348 */ lwc1 $f8, 0x348($sp) +/* 0B9E50 7F0852E0 46082201 */ sub.s $f8, $f4, $f8 +/* 0B9E54 7F0852E4 46104202 */ mul.s $f8, $f8, $f16 +/* 0B9E58 7F0852E8 46085000 */ add.s $f0, $f10, $f8 +/* 0B9E5C 7F0852EC C7AA0344 */ lwc1 $f10, 0x344($sp) +/* 0B9E60 7F0852F0 460A3201 */ sub.s $f8, $f6, $f10 +/* 0B9E64 7F0852F4 C7AA033C */ lwc1 $f10, 0x33c($sp) +/* 0B9E68 7F0852F8 460C4182 */ mul.s $f6, $f8, $f12 +/* 0B9E6C 7F0852FC 460A2201 */ sub.s $f8, $f4, $f10 +/* 0B9E70 7F085300 46104102 */ mul.s $f4, $f8, $f16 +/* 0B9E74 7F085304 46043080 */ add.s $f2, $f6, $f4 +/* 0B9E78 7F085308 4600103C */ c.lt.s $f2, $f0 +/* 0B9E7C 7F08530C 00000000 */ nop +/* 0B9E80 7F085310 45020003 */ bc1fl .Ljp7F085320 +/* 0B9E84 7F085314 4612003C */ c.lt.s $f0, $f18 +/* 0B9E88 7F085318 46001006 */ mov.s $f0, $f2 +/* 0B9E8C 7F08531C 4612003C */ c.lt.s $f0, $f18 +.Ljp7F085320: +/* 0B9E90 7F085320 00000000 */ nop +/* 0B9E94 7F085324 45020004 */ bc1fl .Ljp7F085338 +/* 0B9E98 7F085328 C7A20304 */ lwc1 $f2, 0x304($sp) +/* 0B9E9C 7F08532C 46009081 */ sub.s $f2, $f18, $f0 +/* 0B9EA0 7F085330 E7A20304 */ swc1 $f2, 0x304($sp) +/* 0B9EA4 7F085334 C7A20304 */ lwc1 $f2, 0x304($sp) +.Ljp7F085338: +/* 0B9EA8 7F085338 C7AA031C */ lwc1 $f10, 0x31c($sp) +/* 0B9EAC 7F08533C 4602A03E */ c.le.s $f20, $f2 +/* 0B9EB0 7F085340 00000000 */ nop +/* 0B9EB4 7F085344 4502000D */ bc1fl .Ljp7F08537C +/* 0B9EB8 7F085348 C7A0031C */ lwc1 $f0, 0x31c($sp) +/* 0B9EBC 7F08534C 460A103C */ c.lt.s $f2, $f10 +/* 0B9EC0 7F085350 00000000 */ nop +/* 0B9EC4 7F085354 45030006 */ bc1tl .Ljp7F085370 +/* 0B9EC8 7F085358 E7B00324 */ swc1 $f16, 0x324($sp) +/* 0B9ECC 7F08535C 4614503C */ c.lt.s $f10, $f20 +/* 0B9ED0 7F085360 00000000 */ nop +/* 0B9ED4 7F085364 45020005 */ bc1fl .Ljp7F08537C +/* 0B9ED8 7F085368 C7A0031C */ lwc1 $f0, 0x31c($sp) +/* 0B9EDC 7F08536C E7B00324 */ swc1 $f16, 0x324($sp) +.Ljp7F085370: +/* 0B9EE0 7F085370 E7AC0320 */ swc1 $f12, 0x320($sp) +/* 0B9EE4 7F085374 E7A2031C */ swc1 $f2, 0x31c($sp) +/* 0B9EE8 7F085378 C7A0031C */ lwc1 $f0, 0x31c($sp) +.Ljp7F08537C: +/* 0B9EEC 7F08537C C7A80324 */ lwc1 $f8, 0x324($sp) +/* 0B9EF0 7F085380 4600A03E */ c.le.s $f20, $f0 +/* 0B9EF4 7F085384 00000000 */ nop +/* 0B9EF8 7F085388 45020022 */ bc1fl .Ljp7F085414 +/* 0B9EFC 7F08538C E7B40358 */ swc1 $f20, 0x358($sp) +/* 0B9F00 7F085390 46080182 */ mul.s $f6, $f0, $f8 +/* 0B9F04 7F085394 3C018005 */ lui $at, %hi(D_80055178) # $at, 0x8005 +/* 0B9F08 7F085398 C42451A8 */ lwc1 $f4, %lo(D_80055178)($at) +/* 0B9F0C 7F08539C C7A80320 */ lwc1 $f8, 0x320($sp) +/* 0B9F10 7F0853A0 3C018005 */ lui $at, %hi(D_8005517C) # $at, 0x8005 +/* 0B9F14 7F0853A4 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0B9F18 7F0853A8 24050001 */ li $a1, 1 +/* 0B9F1C 7F0853AC 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9F20 7F0853B0 C42451AC */ lwc1 $f4, %lo(D_8005517C)($at) +/* 0B9F24 7F0853B4 46080182 */ mul.s $f6, $f0, $f8 +/* 0B9F28 7F0853B8 E7AA03AC */ swc1 $f10, 0x3ac($sp) +/* 0B9F2C 7F0853BC 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9F30 7F0853C0 0FC1F7E1 */ jal sub_GAME_7F07D960 +/* 0B9F34 7F0853C4 E7AA03B4 */ swc1 $f10, 0x3b4($sp) +/* 0B9F38 7F0853C8 8E280000 */ lw $t0, ($s1) +/* 0B9F3C 7F0853CC E7B403AC */ swc1 $f20, 0x3ac($sp) +/* 0B9F40 7F0853D0 E7B403B4 */ swc1 $f20, 0x3b4($sp) +/* 0B9F44 7F0853D4 27B90368 */ addiu $t9, $sp, 0x368 +/* 0B9F48 7F0853D8 8D050488 */ lw $a1, 0x488($t0) +/* 0B9F4C 7F0853DC AFB90010 */ sw $t9, 0x10($sp) +/* 0B9F50 7F0853E0 8FA6035C */ lw $a2, 0x35c($sp) +/* 0B9F54 7F0853E4 02003825 */ move $a3, $s0 +/* 0B9F58 7F0853E8 0FC1F43B */ jal sub_GAME_7F07CAC8 +/* 0B9F5C 7F0853EC 2504048C */ addiu $a0, $t0, 0x48c +/* 0B9F60 7F0853F0 10400004 */ beqz $v0, .Ljp7F085404 +/* 0B9F64 7F0853F4 C7A8035C */ lwc1 $f8, 0x35c($sp) +/* 0B9F68 7F0853F8 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0B9F6C 7F0853FC 10000002 */ b .Ljp7F085408 +/* 0B9F70 7F085400 E42864A4 */ swc1 $f8, %lo(D_80036464)($at) +.Ljp7F085404: +/* 0B9F74 7F085404 E7B40358 */ swc1 $f20, 0x358($sp) +.Ljp7F085408: +/* 0B9F78 7F085408 10000002 */ b .Ljp7F085414 +/* 0B9F7C 7F08540C 8E280000 */ lw $t0, ($s1) +/* 0B9F80 7F085410 E7B40358 */ swc1 $f20, 0x358($sp) +.Ljp7F085414: +/* 0B9F84 7F085414 3C018005 */ lui $at, %hi(D_80055180) # $at, 0x8005 +/* 0B9F88 7F085418 C42E51B0 */ lwc1 $f14, %lo(D_80055180)($at) +/* 0B9F8C 7F08541C 3C038003 */ lui $v1, %hi(D_80036484) # $v1, 0x8003 +/* 0B9F90 7F085420 246364C4 */ addiu $v1, %lo(D_80036484) # addiu $v1, $v1, 0x64c4 +/* 0B9F94 7F085424 3C018003 */ lui $at, %hi(D_80036488) # $at, 0x8003 +/* 0B9F98 7F085428 C42464C8 */ lwc1 $f4, %lo(D_80036488)($at) +/* 0B9F9C 7F08542C C4660000 */ lwc1 $f6, ($v1) +/* 0B9FA0 7F085430 3C078003 */ lui $a3, %hi(D_80036474) # $a3, 0x8003 +/* 0B9FA4 7F085434 24E764B4 */ addiu $a3, %lo(D_80036474) # addiu $a3, $a3, 0x64b4 +/* 0B9FA8 7F085438 46043280 */ add.s $f10, $f6, $f4 +/* 0B9FAC 7F08543C C4EC0000 */ lwc1 $f12, ($a3) +/* 0B9FB0 7F085440 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B9FB4 7F085444 3C048005 */ lui $a0, %hi(clock_timer) # $a0, 0x8005 +/* 0B9FB8 7F085448 E46A0000 */ swc1 $f10, ($v1) +/* 0B9FBC 7F08544C C4600000 */ lwc1 $f0, ($v1) +/* 0B9FC0 7F085450 44815000 */ mtc1 $at, $f10 +/* 0B9FC4 7F085454 46006406 */ mov.s $f16, $f12 +/* 0B9FC8 7F085458 4600703E */ c.le.s $f14, $f0 +/* 0B9FCC 7F08545C 00000000 */ nop +/* 0B9FD0 7F085460 45020005 */ bc1fl .Ljp7F085478 +/* 0B9FD4 7F085464 4614003C */ c.lt.s $f0, $f20 +/* 0B9FD8 7F085468 460E0201 */ sub.s $f8, $f0, $f14 +/* 0B9FDC 7F08546C E4680000 */ swc1 $f8, ($v1) +/* 0B9FE0 7F085470 C4600000 */ lwc1 $f0, ($v1) +/* 0B9FE4 7F085474 4614003C */ c.lt.s $f0, $f20 +.Ljp7F085478: +/* 0B9FE8 7F085478 00000000 */ nop +/* 0B9FEC 7F08547C 45020005 */ bc1fl .Ljp7F085494 +/* 0B9FF0 7F085480 C504014C */ lwc1 $f4, 0x14c($t0) +/* 0B9FF4 7F085484 460E0180 */ add.s $f6, $f0, $f14 +/* 0B9FF8 7F085488 E4660000 */ swc1 $f6, ($v1) +/* 0B9FFC 7F08548C C4600000 */ lwc1 $f0, ($v1) +/* 0BA000 7F085490 C504014C */ lwc1 $f4, 0x14c($t0) +.Ljp7F085494: +/* 0BA004 7F085494 3C018005 */ lui $at, %hi(D_80055184) # $at, 0x8005 +/* 0BA008 7F085498 C42651B4 */ lwc1 $f6, %lo(D_80055184)($at) +/* 0BA00C 7F08549C 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BA010 7F0854A0 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0BA014 7F0854A4 44815000 */ mtc1 $at, $f10 +/* 0BA018 7F0854A8 3C018005 */ lui $at, %hi(D_80055188) # $at, 0x8005 +/* 0BA01C 7F0854AC 46064102 */ mul.s $f4, $f8, $f6 +/* 0BA020 7F0854B0 00000000 */ nop +/* 0BA024 7F0854B4 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BA028 7F0854B8 46004080 */ add.s $f2, $f8, $f0 +/* 0BA02C 7F0854BC 4614103C */ c.lt.s $f2, $f20 +/* 0BA030 7F0854C0 00000000 */ nop +/* 0BA034 7F0854C4 45000002 */ bc1f .Ljp7F0854D0 +/* 0BA038 7F0854C8 00000000 */ nop +/* 0BA03C 7F0854CC 460E1080 */ add.s $f2, $f2, $f14 +.Ljp7F0854D0: +/* 0BA040 7F0854D0 4602703E */ c.le.s $f14, $f2 +/* 0BA044 7F0854D4 00000000 */ nop +/* 0BA048 7F0854D8 45020003 */ bc1fl .Ljp7F0854E8 +/* 0BA04C 7F0854DC 460C1001 */ sub.s $f0, $f2, $f12 +/* 0BA050 7F0854E0 460E1081 */ sub.s $f2, $f2, $f14 +/* 0BA054 7F0854E4 460C1001 */ sub.s $f0, $f2, $f12 +.Ljp7F0854E8: +/* 0BA058 7F0854E8 C42651B8 */ lwc1 $f6, %lo(D_80055188)($at) +/* 0BA05C 7F0854EC 3C018005 */ lui $at, %hi(D_80055190) +/* 0BA060 7F0854F0 4600303E */ c.le.s $f6, $f0 +/* 0BA064 7F0854F4 00000000 */ nop +/* 0BA068 7F0854F8 45000005 */ bc1f .Ljp7F085510 +/* 0BA06C 7F0854FC 00000000 */ nop +/* 0BA070 7F085500 3C018005 */ lui $at, %hi(D_8005518C) # $at, 0x8005 +/* 0BA074 7F085504 C42451BC */ lwc1 $f4, %lo(D_8005518C)($at) +/* 0BA078 7F085508 10000009 */ b .Ljp7F085530 +/* 0BA07C 7F08550C 46041081 */ sub.s $f2, $f2, $f4 +.Ljp7F085510: +/* 0BA080 7F085510 C42A51C0 */ lwc1 $f10, %lo(D_80055190)($at) +/* 0BA084 7F085514 3C018005 */ lui $at, %hi(D_80055194) # $at, 0x8005 +/* 0BA088 7F085518 460A003C */ c.lt.s $f0, $f10 +/* 0BA08C 7F08551C 00000000 */ nop +/* 0BA090 7F085520 45000003 */ bc1f .Ljp7F085530 +/* 0BA094 7F085524 00000000 */ nop +/* 0BA098 7F085528 C42851C4 */ lwc1 $f8, %lo(D_80055194)($at) +/* 0BA09C 7F08552C 46081080 */ add.s $f2, $f2, $f8 +.Ljp7F085530: +/* 0BA0A0 7F085530 8C8483A4 */ lw $a0, %lo(clock_timer)($a0) +/* 0BA0A4 7F085534 00001025 */ move $v0, $zero +/* 0BA0A8 7F085538 3C018005 */ lui $at, %hi(D_80055198) # $at, 0x8005 +/* 0BA0AC 7F08553C 18800013 */ blez $a0, .Ljp7F08558C +/* 0BA0B0 7F085540 3C108003 */ lui $s0, %hi(D_80036478) # $s0, 0x8003 +/* 0BA0B4 7F085544 C42E51C8 */ lwc1 $f14, %lo(D_80055198)($at) +/* 0BA0B8 7F085548 261064B8 */ addiu $s0, %lo(D_80036478) # addiu $s0, $s0, 0x64b8 +/* 0BA0BC 7F08554C C60C0000 */ lwc1 $f12, ($s0) +/* 0BA0C0 7F085550 24420001 */ addiu $v0, $v0, 1 +/* 0BA0C4 7F085554 0044082A */ slt $at, $v0, $a0 +/* 0BA0C8 7F085558 460C7482 */ mul.s $f18, $f14, $f12 +/* 0BA0CC 7F08555C 5020000A */ beql $at, $zero, .Ljp7F085588 +/* 0BA0D0 7F085560 46029300 */ add.s $f12, $f18, $f2 +/* 0BA0D4 7F085564 46029300 */ add.s $f12, $f18, $f2 +.Ljp7F085568: +/* 0BA0D8 7F085568 24420001 */ addiu $v0, $v0, 1 +/* 0BA0DC 7F08556C 0044082A */ slt $at, $v0, $a0 +/* 0BA0E0 7F085570 E60C0000 */ swc1 $f12, ($s0) +/* 0BA0E4 7F085574 C60C0000 */ lwc1 $f12, ($s0) +/* 0BA0E8 7F085578 460C7482 */ mul.s $f18, $f14, $f12 +/* 0BA0EC 7F08557C 5420FFFA */ bnezl $at, .Ljp7F085568 +/* 0BA0F0 7F085580 46029300 */ add.s $f12, $f18, $f2 +/* 0BA0F4 7F085584 46029300 */ add.s $f12, $f18, $f2 +.Ljp7F085588: +/* 0BA0F8 7F085588 E60C0000 */ swc1 $f12, ($s0) +.Ljp7F08558C: +/* 0BA0FC 7F08558C 3C108003 */ lui $s0, %hi(D_80036478) # $s0, 0x8003 +/* 0BA100 7F085590 261064B8 */ addiu $s0, %lo(D_80036478) # addiu $s0, $s0, 0x64b8 +/* 0BA104 7F085594 3C018005 */ lui $at, %hi(D_8005519C) # $at, 0x8005 +/* 0BA108 7F085598 C42051CC */ lwc1 $f0, %lo(D_8005519C)($at) +/* 0BA10C 7F08559C C6080000 */ lwc1 $f8, ($s0) +/* 0BA110 7F0855A0 3C018005 */ lui $at, %hi(D_800551A0) # $at, 0x8005 +/* 0BA114 7F0855A4 C42251D0 */ lwc1 $f2, %lo(D_800551A0)($at) +/* 0BA118 7F0855A8 46004182 */ mul.s $f6, $f8, $f0 +/* 0BA11C 7F0855AC 2504048C */ addiu $a0, $t0, 0x48c +/* 0BA120 7F0855B0 3C068003 */ lui $a2, %hi(D_80036464) # $a2, 0x8003 +/* 0BA124 7F0855B4 E4E60000 */ swc1 $f6, ($a3) +/* 0BA128 7F0855B8 C4EC0000 */ lwc1 $f12, ($a3) +/* 0BA12C 7F0855BC 460C103E */ c.le.s $f2, $f12 +/* 0BA130 7F0855C0 00000000 */ nop +/* 0BA134 7F0855C4 45020007 */ bc1fl .Ljp7F0855E4 +/* 0BA138 7F0855C8 4614603C */ c.lt.s $f12, $f20 +/* 0BA13C 7F0855CC 46026101 */ sub.s $f4, $f12, $f2 +/* 0BA140 7F0855D0 E4E40000 */ swc1 $f4, ($a3) +/* 0BA144 7F0855D4 C4EC0000 */ lwc1 $f12, ($a3) +/* 0BA148 7F0855D8 46006283 */ div.s $f10, $f12, $f0 +/* 0BA14C 7F0855DC E60A0000 */ swc1 $f10, ($s0) +/* 0BA150 7F0855E0 4614603C */ c.lt.s $f12, $f20 +.Ljp7F0855E4: +/* 0BA154 7F0855E4 00000000 */ nop +/* 0BA158 7F0855E8 45020007 */ bc1fl .Ljp7F085608 +/* 0BA15C 7F0855EC 8D050488 */ lw $a1, 0x488($t0) +/* 0BA160 7F0855F0 46026200 */ add.s $f8, $f12, $f2 +/* 0BA164 7F0855F4 E4E80000 */ swc1 $f8, ($a3) +/* 0BA168 7F0855F8 C4E60000 */ lwc1 $f6, ($a3) +/* 0BA16C 7F0855FC 46003103 */ div.s $f4, $f6, $f0 +/* 0BA170 7F085600 E6040000 */ swc1 $f4, ($s0) +/* 0BA174 7F085604 8D050488 */ lw $a1, 0x488($t0) +.Ljp7F085608: +/* 0BA178 7F085608 E7B00354 */ swc1 $f16, 0x354($sp) +/* 0BA17C 7F08560C 0FC1F4F3 */ jal sub_GAME_7F07CDA8 +/* 0BA180 7F085610 8CC664A4 */ lw $a2, %lo(D_80036464)($a2) +/* 0BA184 7F085614 3C038003 */ lui $v1, %hi(D_80036484) # $v1, 0x8003 +/* 0BA188 7F085618 3C018005 */ lui $at, %hi(D_800551A8) # $at, 0x8005 +/* 0BA18C 7F08561C C42E51D8 */ lwc1 $f14, %lo(D_800551A8)($at) +/* 0BA190 7F085620 246364C4 */ addiu $v1, %lo(D_80036484) # addiu $v1, $v1, 0x64c4 +/* 0BA194 7F085624 14400009 */ bnez $v0, .Ljp7F08564C +/* 0BA198 7F085628 C7B00354 */ lwc1 $f16, 0x354($sp) +/* 0BA19C 7F08562C 3C018003 */ lui $at, %hi(D_80036474) # $at, 0x8003 +/* 0BA1A0 7F085630 E43064B4 */ swc1 $f16, %lo(D_80036474)($at) +/* 0BA1A4 7F085634 C42A64B4 */ lwc1 $f10, %lo(D_80036474)($at) +/* 0BA1A8 7F085638 3C018005 */ lui $at, %hi(D_800551AC) # $at, 0x8005 +/* 0BA1AC 7F08563C C42851DC */ lwc1 $f8, %lo(D_800551AC)($at) +/* 0BA1B0 7F085640 E4700000 */ swc1 $f16, ($v1) +/* 0BA1B4 7F085644 46085183 */ div.s $f6, $f10, $f8 +/* 0BA1B8 7F085648 E6060000 */ swc1 $f6, ($s0) +.Ljp7F08564C: +/* 0BA1BC 7F08564C 3C038003 */ lui $v1, %hi(ptr_playerstank) # $v1, 0x8003 +/* 0BA1C0 7F085650 8C636490 */ lw $v1, %lo(ptr_playerstank)($v1) +/* 0BA1C4 7F085654 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) # $v0, 0x8008 +/* 0BA1C8 7F085658 244299E8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6618 +/* 0BA1CC 7F08565C 1060002F */ beqz $v1, .Ljp7F08571C +/* 0BA1D0 7F085660 27B002B4 */ addiu $s0, $sp, 0x2b4 +/* 0BA1D4 7F085664 8C6C0004 */ lw $t4, 4($v1) +/* 0BA1D8 7F085668 C4440000 */ lwc1 $f4, ($v0) +/* 0BA1DC 7F08566C C44A0008 */ lwc1 $f10, 8($v0) +/* 0BA1E0 7F085670 E7B402F8 */ swc1 $f20, 0x2f8($sp) +/* 0BA1E4 7F085674 C7AC0358 */ lwc1 $f12, 0x358($sp) +/* 0BA1E8 7F085678 02002825 */ move $a1, $s0 +/* 0BA1EC 7F08567C AFAC0300 */ sw $t4, 0x300($sp) +/* 0BA1F0 7F085680 E7A402F4 */ swc1 $f4, 0x2f4($sp) +/* 0BA1F4 7F085684 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 0BA1F8 7F085688 E7AA02FC */ swc1 $f10, 0x2fc($sp) +/* 0BA1FC 7F08568C 02002025 */ move $a0, $s0 +/* 0BA200 7F085690 0FC1623E */ jal matrix_4x4_rotate_vector_in_place +/* 0BA204 7F085694 27A502F4 */ addiu $a1, $sp, 0x2f4 +/* 0BA208 7F085698 0FC1F376 */ jal sub_GAME_7F07C7B4 +/* 0BA20C 7F08569C 00000000 */ nop +/* 0BA210 7F0856A0 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) # $v0, 0x8008 +/* 0BA214 7F0856A4 244299E8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6618 +/* 0BA218 7F0856A8 C4480000 */ lwc1 $f8, ($v0) +/* 0BA21C 7F0856AC C7A602F4 */ lwc1 $f6, 0x2f4($sp) +/* 0BA220 7F0856B0 C44A0008 */ lwc1 $f10, 8($v0) +/* 0BA224 7F0856B4 3C018005 */ lui $at, %hi(D_800551BC) # $at, 0x8005 +/* 0BA228 7F0856B8 46064101 */ sub.s $f4, $f8, $f6 +/* 0BA22C 7F0856BC C7A802FC */ lwc1 $f8, 0x2fc($sp) +/* 0BA230 7F0856C0 E7B402F8 */ swc1 $f20, 0x2f8($sp) +/* 0BA234 7F0856C4 02002825 */ move $a1, $s0 +/* 0BA238 7F0856C8 E7A402F4 */ swc1 $f4, 0x2f4($sp) +/* 0BA23C 7F0856CC 46085181 */ sub.s $f6, $f10, $f8 +/* 0BA240 7F0856D0 C42451EC */ lwc1 $f4, %lo(D_800551BC)($at) +/* 0BA244 7F0856D4 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BA248 7F0856D8 C42A64A4 */ lwc1 $f10, %lo(D_80036464)($at) +/* 0BA24C 7F0856DC E7A602FC */ swc1 $f6, 0x2fc($sp) +/* 0BA250 7F0856E0 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 0BA254 7F0856E4 460A2301 */ sub.s $f12, $f4, $f10 +/* 0BA258 7F0856E8 8FAB0300 */ lw $t3, 0x300($sp) +/* 0BA25C 7F0856EC 02002825 */ move $a1, $s0 +/* 0BA260 7F0856F0 8D6D0014 */ lw $t5, 0x14($t3) +/* 0BA264 7F0856F4 0FC163E7 */ jal matrix_scalar_multiply +/* 0BA268 7F0856F8 C5AC0014 */ lwc1 $f12, 0x14($t5) +/* 0BA26C 7F0856FC 02002025 */ move $a0, $s0 +/* 0BA270 7F085700 0FC1623E */ jal matrix_4x4_rotate_vector_in_place +/* 0BA274 7F085704 27A502F4 */ addiu $a1, $sp, 0x2f4 +/* 0BA278 7F085708 27A402F4 */ addiu $a0, $sp, 0x2f4 +/* 0BA27C 7F08570C 0FC1F7E1 */ jal sub_GAME_7F07D960 +/* 0BA280 7F085710 24050001 */ li $a1, 1 +/* 0BA284 7F085714 3C018005 */ lui $at, %hi(D_800551CC) # $at, 0x8005 +/* 0BA288 7F085718 C42E51FC */ lwc1 $f14, %lo(D_800551CC)($at) +.Ljp7F08571C: +/* 0BA28C 7F08571C 3C048005 */ lui $a0, %hi(clock_timer) # $a0, 0x8005 +/* 0BA290 7F085720 8C8483A4 */ lw $a0, %lo(clock_timer)($a0) +/* 0BA294 7F085724 3C018003 */ lui $at, %hi(D_80036474) # $at, 0x8003 +/* 0BA298 7F085728 C42C64B4 */ lwc1 $f12, %lo(D_80036474)($at) +/* 0BA29C 7F08572C 5880001B */ blezl $a0, .Ljp7F08579C +/* 0BA2A0 7F085730 3C0143B4 */ lui $at, 0x43b4 +/* 0BA2A4 7F085734 18800018 */ blez $a0, .Ljp7F085798 +/* 0BA2A8 7F085738 00001025 */ move $v0, $zero +/* 0BA2AC 7F08573C 3C018003 */ lui $at, %hi(D_80036488) # $at, 0x8003 +/* 0BA2B0 7F085740 C42864C8 */ lwc1 $f8, %lo(D_80036488)($at) +/* 0BA2B4 7F085744 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BA2B8 7F085748 C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0BA2BC 7F08574C 3C038003 */ lui $v1, %hi(D_8003647C) # $v1, 0x8003 +/* 0BA2C0 7F085750 246364BC */ addiu $v1, %lo(D_8003647C) # addiu $v1, $v1, 0x64bc +/* 0BA2C4 7F085754 46064003 */ div.s $f0, $f8, $f6 +/* 0BA2C8 7F085758 C4700000 */ lwc1 $f16, ($v1) +/* 0BA2CC 7F08575C 24420001 */ addiu $v0, $v0, 1 +/* 0BA2D0 7F085760 0044082A */ slt $at, $v0, $a0 +/* 0BA2D4 7F085764 46107482 */ mul.s $f18, $f14, $f16 +/* 0BA2D8 7F085768 5020000A */ beql $at, $zero, .Ljp7F085794 +/* 0BA2DC 7F08576C 46009400 */ add.s $f16, $f18, $f0 +/* 0BA2E0 7F085770 46009400 */ add.s $f16, $f18, $f0 +.Ljp7F085774: +/* 0BA2E4 7F085774 24420001 */ addiu $v0, $v0, 1 +/* 0BA2E8 7F085778 0044082A */ slt $at, $v0, $a0 +/* 0BA2EC 7F08577C E4700000 */ swc1 $f16, ($v1) +/* 0BA2F0 7F085780 C4700000 */ lwc1 $f16, ($v1) +/* 0BA2F4 7F085784 46107482 */ mul.s $f18, $f14, $f16 +/* 0BA2F8 7F085788 5420FFFA */ bnezl $at, .Ljp7F085774 +/* 0BA2FC 7F08578C 46009400 */ add.s $f16, $f18, $f0 +/* 0BA300 7F085790 46009400 */ add.s $f16, $f18, $f0 +.Ljp7F085794: +/* 0BA304 7F085794 E4700000 */ swc1 $f16, ($v1) +.Ljp7F085798: +/* 0BA308 7F085798 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +.Ljp7F08579C: +/* 0BA30C 7F08579C 44817000 */ mtc1 $at, $f14 +/* 0BA310 7F0857A0 3C038003 */ lui $v1, %hi(D_8003647C) # $v1, 0x8003 +/* 0BA314 7F0857A4 246364BC */ addiu $v1, %lo(D_8003647C) # addiu $v1, $v1, 0x64bc +/* 0BA318 7F0857A8 3C018005 */ lui $at, %hi(D_800551D0) # $at, 0x8005 +/* 0BA31C 7F0857AC C4245200 */ lwc1 $f4, %lo(D_800551D0)($at) +/* 0BA320 7F0857B0 C4660000 */ lwc1 $f6, ($v1) +/* 0BA324 7F0857B4 8E280000 */ lw $t0, ($s1) +/* 0BA328 7F0857B8 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0BA32C 7F0857BC 46043082 */ mul.s $f2, $f6, $f4 +/* 0BA330 7F0857C0 44814000 */ mtc1 $at, $f8 +/* 0BA334 7F0857C4 C50A014C */ lwc1 $f10, 0x14c($t0) +/* 0BA338 7F0857C8 3C018005 */ lui $at, %hi(D_800551D4) # $at, 0x8005 +/* 0BA33C 7F0857CC C4245204 */ lwc1 $f4, %lo(D_800551D4)($at) +/* 0BA340 7F0857D0 46085182 */ mul.s $f6, $f10, $f8 +/* 0BA344 7F0857D4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0BA348 7F0857D8 44814000 */ mtc1 $at, $f8 +/* 0BA34C 7F0857DC 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BA350 7F0857E0 46043282 */ mul.s $f10, $f6, $f4 +/* 0BA354 7F0857E4 C42464A4 */ lwc1 $f4, %lo(D_80036464)($at) +/* 0BA358 7F0857E8 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0BA35C 7F0857EC 46085182 */ mul.s $f6, $f10, $f8 +/* 0BA360 7F0857F0 460C2280 */ add.s $f10, $f4, $f12 +/* 0BA364 7F0857F4 44812000 */ mtc1 $at, $f4 +/* 0BA368 7F0857F8 3C018005 */ lui $at, %hi(D_800551D8) # $at, 0x8005 +/* 0BA36C 7F0857FC 46065200 */ add.s $f8, $f10, $f6 +/* 0BA370 7F085800 46041282 */ mul.s $f10, $f2, $f4 +/* 0BA374 7F085804 460A4180 */ add.s $f6, $f8, $f10 +/* 0BA378 7F085808 C4285208 */ lwc1 $f8, %lo(D_800551D8)($at) +/* 0BA37C 7F08580C 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BA380 7F085810 46082283 */ div.s $f10, $f4, $f8 +/* 0BA384 7F085814 E50A0148 */ swc1 $f10, 0x148($t0) +/* 0BA388 7F085818 8E280000 */ lw $t0, ($s1) +/* 0BA38C 7F08581C C5000148 */ lwc1 $f0, 0x148($t0) +/* 0BA390 7F085820 4614003C */ c.lt.s $f0, $f20 +/* 0BA394 7F085824 00000000 */ nop +/* 0BA398 7F085828 4502000A */ bc1fl .Ljp7F085854 +/* 0BA39C 7F08582C 4600703E */ c.le.s $f14, $f0 +/* 0BA3A0 7F085830 460E0180 */ add.s $f6, $f0, $f14 +.Ljp7F085834: +/* 0BA3A4 7F085834 E5060148 */ swc1 $f6, 0x148($t0) +/* 0BA3A8 7F085838 8E280000 */ lw $t0, ($s1) +/* 0BA3AC 7F08583C C5000148 */ lwc1 $f0, 0x148($t0) +/* 0BA3B0 7F085840 4614003C */ c.lt.s $f0, $f20 +/* 0BA3B4 7F085844 00000000 */ nop +/* 0BA3B8 7F085848 4503FFFA */ bc1tl .Ljp7F085834 +/* 0BA3BC 7F08584C 460E0180 */ add.s $f6, $f0, $f14 +/* 0BA3C0 7F085850 4600703E */ c.le.s $f14, $f0 +.Ljp7F085854: +/* 0BA3C4 7F085854 00000000 */ nop +/* 0BA3C8 7F085858 45000009 */ bc1f .Ljp7F085880 +/* 0BA3CC 7F08585C 00000000 */ nop +/* 0BA3D0 7F085860 460E0101 */ sub.s $f4, $f0, $f14 +.Ljp7F085864: +/* 0BA3D4 7F085864 E5040148 */ swc1 $f4, 0x148($t0) +/* 0BA3D8 7F085868 8E280000 */ lw $t0, ($s1) +/* 0BA3DC 7F08586C C5000148 */ lwc1 $f0, 0x148($t0) +/* 0BA3E0 7F085870 4600703E */ c.le.s $f14, $f0 +/* 0BA3E4 7F085874 00000000 */ nop +/* 0BA3E8 7F085878 4503FFFA */ bc1tl .Ljp7F085864 +/* 0BA3EC 7F08587C 460E0101 */ sub.s $f4, $f0, $f14 +.Ljp7F085880: +/* 0BA3F0 7F085880 10000022 */ b .Ljp7F08590C +/* 0BA3F4 7F085884 00000000 */ nop +.Ljp7F085888: +/* 0BA3F8 7F085888 C508014C */ lwc1 $f8, 0x14c($t0) +/* 0BA3FC 7F08588C C52A0000 */ lwc1 $f10, ($t1) +/* 0BA400 7F085890 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0BA404 7F085894 44812000 */ mtc1 $at, $f4 +/* 0BA408 7F085898 460A4182 */ mul.s $f6, $f8, $f10 +/* 0BA40C 7F08589C C50A0148 */ lwc1 $f10, 0x148($t0) +/* 0BA410 7F0858A0 3C0143B4 */ lui $at, 0x43b4 +/* 0BA414 7F0858A4 46043202 */ mul.s $f8, $f6, $f4 +/* 0BA418 7F0858A8 46085000 */ add.s $f0, $f10, $f8 +/* 0BA41C 7F0858AC 4614003C */ c.lt.s $f0, $f20 +/* 0BA420 7F0858B0 00000000 */ nop +/* 0BA424 7F0858B4 45020009 */ bc1fl .Ljp7F0858DC +/* 0BA428 7F0858B8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BA42C 7F0858BC 44817000 */ mtc1 $at, $f14 +/* 0BA430 7F0858C0 00000000 */ nop +/* 0BA434 7F0858C4 460E0000 */ add.s $f0, $f0, $f14 +.Ljp7F0858C8: +/* 0BA438 7F0858C8 4614003C */ c.lt.s $f0, $f20 +/* 0BA43C 7F0858CC 00000000 */ nop +/* 0BA440 7F0858D0 4503FFFD */ bc1tl .Ljp7F0858C8 +/* 0BA444 7F0858D4 460E0000 */ add.s $f0, $f0, $f14 +/* 0BA448 7F0858D8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +.Ljp7F0858DC: +/* 0BA44C 7F0858DC 44817000 */ mtc1 $at, $f14 +/* 0BA450 7F0858E0 00000000 */ nop +/* 0BA454 7F0858E4 4600703E */ c.le.s $f14, $f0 +/* 0BA458 7F0858E8 00000000 */ nop +/* 0BA45C 7F0858EC 45020007 */ bc1fl .Ljp7F08590C +/* 0BA460 7F0858F0 E5000148 */ swc1 $f0, 0x148($t0) +/* 0BA464 7F0858F4 460E0001 */ sub.s $f0, $f0, $f14 +.Ljp7F0858F8: +/* 0BA468 7F0858F8 4600703E */ c.le.s $f14, $f0 +/* 0BA46C 7F0858FC 00000000 */ nop +/* 0BA470 7F085900 4503FFFD */ bc1tl .Ljp7F0858F8 +/* 0BA474 7F085904 460E0001 */ sub.s $f0, $f0, $f14 +/* 0BA478 7F085908 E5000148 */ swc1 $f0, 0x148($t0) +.Ljp7F08590C: +/* 0BA47C 7F08590C 0FC20768 */ jal sub_GAME_7F081790 +/* 0BA480 7F085910 00000000 */ nop +/* 0BA484 7F085914 0FC1E7F8 */ jal sub_GAME_7F0799F0 +/* 0BA488 7F085918 E7B402AC */ swc1 $f20, 0x2ac($sp) +/* 0BA48C 7F08591C 14400004 */ bnez $v0, .Ljp7F085930 +/* 0BA490 7F085920 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 0BA494 7F085924 44813000 */ mtc1 $at, $f6 +/* 0BA498 7F085928 1000000B */ b .Ljp7F085958 +/* 0BA49C 7F08592C E7A602AC */ swc1 $f6, 0x2ac($sp) +.Ljp7F085930: +/* 0BA4A0 7F085930 0FC1E7F8 */ jal sub_GAME_7F0799F0 +/* 0BA4A4 7F085934 00000000 */ nop +/* 0BA4A8 7F085938 24010001 */ li $at, 1 +/* 0BA4AC 7F08593C 14410004 */ bne $v0, $at, .Ljp7F085950 +/* 0BA4B0 7F085940 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 0BA4B4 7F085944 44812000 */ mtc1 $at, $f4 +/* 0BA4B8 7F085948 10000003 */ b .Ljp7F085958 +/* 0BA4BC 7F08594C E7A402AC */ swc1 $f4, 0x2ac($sp) +.Ljp7F085950: +/* 0BA4C0 7F085950 0FC1E7F8 */ jal sub_GAME_7F0799F0 +/* 0BA4C4 7F085954 00000000 */ nop +.Ljp7F085958: +/* 0BA4C8 7F085958 8E280000 */ lw $t0, ($s1) +/* 0BA4CC 7F08595C C7AA02AC */ lwc1 $f10, 0x2ac($sp) +/* 0BA4D0 7F085960 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BA4D4 7F085964 C50000A0 */ lwc1 $f0, 0xa0($t0) +/* 0BA4D8 7F085968 250400A0 */ addiu $a0, $t0, 0xa0 +/* 0BA4DC 7F08596C 250600A4 */ addiu $a2, $t0, 0xa4 +/* 0BA4E0 7F085970 46005032 */ c.eq.s $f10, $f0 +/* 0BA4E4 7F085974 00000000 */ nop +/* 0BA4E8 7F085978 4503000C */ bc1tl .Ljp7F0859AC +/* 0BA4EC 7F08597C C7A602AC */ lwc1 $f6, 0x2ac($sp) +/* 0BA4F0 7F085980 44810000 */ mtc1 $at, $f0 +/* 0BA4F4 7F085984 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0BA4F8 7F085988 44814000 */ mtc1 $at, $f8 +/* 0BA4FC 7F08598C 44055000 */ mfc1 $a1, $f10 +/* 0BA500 7F085990 44070000 */ mfc1 $a3, $f0 +/* 0BA504 7F085994 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0BA508 7F085998 0FC10C86 */ jal sub_GAME_7F042F18 +/* 0BA50C 7F08599C E7A80014 */ swc1 $f8, 0x14($sp) +/* 0BA510 7F0859A0 8E280000 */ lw $t0, ($s1) +/* 0BA514 7F0859A4 C50000A0 */ lwc1 $f0, 0xa0($t0) +/* 0BA518 7F0859A8 C7A602AC */ lwc1 $f6, 0x2ac($sp) +.Ljp7F0859AC: +/* 0BA51C 7F0859AC 3C108003 */ lui $s0, %hi(SFX_80036458) # $s0, 0x8003 +/* 0BA520 7F0859B0 3C0E8003 */ lui $t6, %hi(in_tank_flag) # $t6, 0x8003 +/* 0BA524 7F0859B4 46003032 */ c.eq.s $f6, $f0 +/* 0BA528 7F0859B8 26106498 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6498 +/* 0BA52C 7F0859BC 45000002 */ bc1f .Ljp7F0859C8 +/* 0BA530 7F0859C0 00000000 */ nop +/* 0BA534 7F0859C4 E51400A4 */ swc1 $f20, 0xa4($t0) +.Ljp7F0859C8: +/* 0BA538 7F0859C8 8DCE6488 */ lw $t6, %lo(in_tank_flag)($t6) +/* 0BA53C 7F0859CC 24010001 */ li $at, 1 +/* 0BA540 7F0859D0 15C10209 */ bne $t6, $at, .Ljp7F0861F8 +/* 0BA544 7F0859D4 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B8) # $v0, 0x8008 +/* 0BA548 7F0859D8 8C4299F8 */ lw $v0, %lo(dword_CODE_bss_800799B8)($v0) +/* 0BA54C 7F0859DC 3C038003 */ lui $v1, %hi(ptr_playerstank) # $v1, 0x8003 +/* 0BA550 7F0859E0 24010001 */ li $at, 1 +/* 0BA554 7F0859E4 144000BF */ bnez $v0, .Ljp7F085CE4 +/* 0BA558 7F0859E8 00000000 */ nop +/* 0BA55C 7F0859EC 8C636490 */ lw $v1, %lo(ptr_playerstank)($v1) +/* 0BA560 7F0859F0 3C018005 */ lui $at, %hi(D_800551DC) # $at, 0x8005 +/* 0BA564 7F0859F4 27A50268 */ addiu $a1, $sp, 0x268 +/* 0BA568 7F0859F8 106000AD */ beqz $v1, .Ljp7F085CB0 +/* 0BA56C 7F0859FC 00000000 */ nop +/* 0BA570 7F085A00 C424520C */ lwc1 $f4, %lo(D_800551DC)($at) +/* 0BA574 7F085A04 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BA578 7F085A08 C42A64A4 */ lwc1 $f10, %lo(D_80036464)($at) +/* 0BA57C 7F085A0C 8C700004 */ lw $s0, 4($v1) +/* 0BA580 7F085A10 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 0BA584 7F085A14 460A2301 */ sub.s $f12, $f4, $f10 +/* 0BA588 7F085A18 8E180014 */ lw $t8, 0x14($s0) +/* 0BA58C 7F085A1C 27A50268 */ addiu $a1, $sp, 0x268 +/* 0BA590 7F085A20 0FC163E7 */ jal matrix_scalar_multiply +/* 0BA594 7F085A24 C70C0014 */ lwc1 $f12, 0x14($t8) +/* 0BA598 7F085A28 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) # $v0, 0x8008 +/* 0BA59C 7F085A2C 244299E8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6618 +/* 0BA5A0 7F085A30 C4480000 */ lwc1 $f8, ($v0) +/* 0BA5A4 7F085A34 C4460004 */ lwc1 $f6, 4($v0) +/* 0BA5A8 7F085A38 C4440008 */ lwc1 $f4, 8($v0) +/* 0BA5AC 7F085A3C 27A40268 */ addiu $a0, $sp, 0x268 +/* 0BA5B0 7F085A40 27A5025C */ addiu $a1, $sp, 0x25c +/* 0BA5B4 7F085A44 E7A8025C */ swc1 $f8, 0x25c($sp) +/* 0BA5B8 7F085A48 E7A60260 */ swc1 $f6, 0x260($sp) +/* 0BA5BC 7F085A4C 0FC1623E */ jal matrix_4x4_rotate_vector_in_place +/* 0BA5C0 7F085A50 E7A40264 */ swc1 $f4, 0x264($sp) +/* 0BA5C4 7F085A54 C7AA025C */ lwc1 $f10, 0x25c($sp) +/* 0BA5C8 7F085A58 C6080058 */ lwc1 $f8, 0x58($s0) +/* 0BA5CC 7F085A5C C7A40260 */ lwc1 $f4, 0x260($sp) +/* 0BA5D0 7F085A60 3C01C1A0 */ li $at, 0xC1A00000 # -20.000000 +/* 0BA5D4 7F085A64 46085180 */ add.s $f6, $f10, $f8 +/* 0BA5D8 7F085A68 44810000 */ mtc1 $at, $f0 +/* 0BA5DC 7F085A6C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BA5E0 7F085A70 44817000 */ mtc1 $at, $f14 +/* 0BA5E4 7F085A74 E7A6025C */ swc1 $f6, 0x25c($sp) +/* 0BA5E8 7F085A78 C60A005C */ lwc1 $f10, 0x5c($s0) +/* 0BA5EC 7F085A7C C7A60264 */ lwc1 $f6, 0x264($sp) +/* 0BA5F0 7F085A80 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BA5F4 7F085A84 460A2200 */ add.s $f8, $f4, $f10 +/* 0BA5F8 7F085A88 8E2F0000 */ lw $t7, ($s1) +/* 0BA5FC 7F085A8C E7A80260 */ swc1 $f8, 0x260($sp) +/* 0BA600 7F085A90 C6040060 */ lwc1 $f4, 0x60($s0) +/* 0BA604 7F085A94 C42864A4 */ lwc1 $f8, %lo(D_80036464)($at) +/* 0BA608 7F085A98 3C018003 */ lui $at, %hi(D_80036474) # $at, 0x8003 +/* 0BA60C 7F085A9C 46043280 */ add.s $f10, $f6, $f4 +/* 0BA610 7F085AA0 C42664B4 */ lwc1 $f6, %lo(D_80036474)($at) +/* 0BA614 7F085AA4 3C018005 */ lui $at, %hi(D_800551E0) # $at, 0x8005 +/* 0BA618 7F085AA8 46064100 */ add.s $f4, $f8, $f6 +/* 0BA61C 7F085AAC E7AA0264 */ swc1 $f10, 0x264($sp) +/* 0BA620 7F085AB0 C5E20158 */ lwc1 $f2, 0x158($t7) +/* 0BA624 7F085AB4 C4285210 */ lwc1 $f8, %lo(D_800551E0)($at) +/* 0BA628 7F085AB8 460E2282 */ mul.s $f10, $f4, $f14 +/* 0BA62C 7F085ABC 4600103C */ c.lt.s $f2, $f0 +/* 0BA630 7F085AC0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA634 7F085AC4 44819000 */ mtc1 $at, $f18 +/* 0BA638 7F085AC8 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BA63C 7F085ACC 45000002 */ bc1f .Ljp7F085AD8 +/* 0BA640 7F085AD0 46085403 */ div.s $f16, $f10, $f8 +/* 0BA644 7F085AD4 46000086 */ mov.s $f2, $f0 +.Ljp7F085AD8: +/* 0BA648 7F085AD8 C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0BA64C 7F085ADC 3C014234 */ li $at, 0x42340000 # 45.000000 +/* 0BA650 7F085AE0 44812000 */ mtc1 $at, $f4 +/* 0BA654 7F085AE4 3C108008 */ lui $s0, %hi(flt_CODE_bss_800799BC) # $s0, 0x8008 +/* 0BA658 7F085AE8 261099FC */ addiu $s0, %lo(flt_CODE_bss_800799BC) # addiu $s0, $s0, -0x6604 +/* 0BA65C 7F085AEC 46043283 */ div.s $f10, $f6, $f4 +/* 0BA660 7F085AF0 C6080000 */ lwc1 $f8, ($s0) +/* 0BA664 7F085AF4 3C018005 */ lui $at, %hi(D_800551E4) # $at, 0x8005 +/* 0BA668 7F085AF8 460A4180 */ add.s $f6, $f8, $f10 +/* 0BA66C 7F085AFC E6060000 */ swc1 $f6, ($s0) +/* 0BA670 7F085B00 C6000000 */ lwc1 $f0, ($s0) +/* 0BA674 7F085B04 4600903E */ c.le.s $f18, $f0 +/* 0BA678 7F085B08 00000000 */ nop +/* 0BA67C 7F085B0C 45000003 */ bc1f .Ljp7F085B1C +/* 0BA680 7F085B10 00000000 */ nop +/* 0BA684 7F085B14 E6120000 */ swc1 $f18, ($s0) +/* 0BA688 7F085B18 C6000000 */ lwc1 $f0, ($s0) +.Ljp7F085B1C: +/* 0BA68C 7F085B1C C4245214 */ lwc1 $f4, %lo(D_800551E4)($at) +/* 0BA690 7F085B20 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BA694 7F085B24 44815000 */ mtc1 $at, $f10 +/* 0BA698 7F085B28 46040202 */ mul.s $f8, $f0, $f4 +/* 0BA69C 7F085B2C E7A20254 */ swc1 $f2, 0x254($sp) +/* 0BA6A0 7F085B30 E7B00258 */ swc1 $f16, 0x258($sp) +/* 0BA6A4 7F085B34 460A4302 */ mul.s $f12, $f8, $f10 +/* 0BA6A8 7F085B38 0FC160F0 */ jal cosf +/* 0BA6AC 7F085B3C 00000000 */ nop +/* 0BA6B0 7F085B40 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BA6B4 7F085B44 44817000 */ mtc1 $at, $f14 +/* 0BA6B8 7F085B48 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA6BC 7F085B4C 44813000 */ mtc1 $at, $f6 +/* 0BA6C0 7F085B50 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BA6C4 7F085B54 44814000 */ mtc1 $at, $f8 +/* 0BA6C8 7F085B58 46060100 */ add.s $f4, $f0, $f6 +/* 0BA6CC 7F085B5C 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799C0) # $v0, 0x8008 +/* 0BA6D0 7F085B60 24429A00 */ addiu $v0, %lo(flt_CODE_bss_800799C0) # addiu $v0, $v0, -0x6600 +/* 0BA6D4 7F085B64 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA6D8 7F085B68 46082282 */ mul.s $f10, $f4, $f8 +/* 0BA6DC 7F085B6C 44813000 */ mtc1 $at, $f6 +/* 0BA6E0 7F085B70 C7A80254 */ lwc1 $f8, 0x254($sp) +/* 0BA6E4 7F085B74 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C8) # $at, 0x8008 +/* 0BA6E8 7F085B78 8E2A0000 */ lw $t2, ($s1) +/* 0BA6EC 7F085B7C C7B00258 */ lwc1 $f16, 0x258($sp) +/* 0BA6F0 7F085B80 3C038008 */ lui $v1, %hi(flt_CODE_bss_800799D0) # $v1, 0x8008 +/* 0BA6F4 7F085B84 E44A0000 */ swc1 $f10, ($v0) +/* 0BA6F8 7F085B88 C4420000 */ lwc1 $f2, ($v0) +/* 0BA6FC 7F085B8C 24639A10 */ addiu $v1, %lo(flt_CODE_bss_800799D0) # addiu $v1, $v1, -0x65f0 +/* 0BA700 7F085B90 46023101 */ sub.s $f4, $f6, $f2 +/* 0BA704 7F085B94 C4269A08 */ lwc1 $f6, %lo(flt_CODE_bss_800799C8)($at) +/* 0BA708 7F085B98 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C4) # $at, 0x8008 +/* 0BA70C 7F085B9C 46082282 */ mul.s $f10, $f4, $f8 +/* 0BA710 7F085BA0 00000000 */ nop +/* 0BA714 7F085BA4 46061102 */ mul.s $f4, $f2, $f6 +/* 0BA718 7F085BA8 460A2200 */ add.s $f8, $f4, $f10 +/* 0BA71C 7F085BAC E5480158 */ swc1 $f8, 0x158($t2) +/* 0BA720 7F085BB0 C4329A04 */ lwc1 $f18, %lo(flt_CODE_bss_800799C4)($at) +/* 0BA724 7F085BB4 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0BA728 7F085BB8 44813000 */ mtc1 $at, $f6 +/* 0BA72C 7F085BBC 46128301 */ sub.s $f12, $f16, $f18 +/* 0BA730 7F085BC0 3C01C334 */ li $at, 0xC3340000 # -180.000000 +/* 0BA734 7F085BC4 44812000 */ mtc1 $at, $f4 +/* 0BA738 7F085BC8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA73C 7F085BCC 460C303C */ c.lt.s $f6, $f12 +/* 0BA740 7F085BD0 44814000 */ mtc1 $at, $f8 +/* 0BA744 7F085BD4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA748 7F085BD8 45000002 */ bc1f .Ljp7F085BE4 +/* 0BA74C 7F085BDC 00000000 */ nop +/* 0BA750 7F085BE0 460E8401 */ sub.s $f16, $f16, $f14 +.Ljp7F085BE4: +/* 0BA754 7F085BE4 4604603C */ c.lt.s $f12, $f4 +/* 0BA758 7F085BE8 00000000 */ nop +/* 0BA75C 7F085BEC 45020003 */ bc1fl .Ljp7F085BFC +/* 0BA760 7F085BF0 C4420000 */ lwc1 $f2, ($v0) +/* 0BA764 7F085BF4 460E8400 */ add.s $f16, $f16, $f14 +/* 0BA768 7F085BF8 C4420000 */ lwc1 $f2, ($v0) +.Ljp7F085BFC: +/* 0BA76C 7F085BFC 8E390000 */ lw $t9, ($s1) +/* 0BA770 7F085C00 46024181 */ sub.s $f6, $f8, $f2 +/* 0BA774 7F085C04 46121282 */ mul.s $f10, $f2, $f18 +/* 0BA778 7F085C08 00000000 */ nop +/* 0BA77C 7F085C0C 46103102 */ mul.s $f4, $f6, $f16 +/* 0BA780 7F085C10 46045200 */ add.s $f8, $f10, $f4 +/* 0BA784 7F085C14 44812000 */ mtc1 $at, $f4 +/* 0BA788 7F085C18 E7280148 */ swc1 $f8, 0x148($t9) +/* 0BA78C 7F085C1C 8E280000 */ lw $t0, ($s1) +/* 0BA790 7F085C20 C5000148 */ lwc1 $f0, 0x148($t0) +/* 0BA794 7F085C24 4600703E */ c.le.s $f14, $f0 +/* 0BA798 7F085C28 00000000 */ nop +/* 0BA79C 7F085C2C 45000005 */ bc1f .Ljp7F085C44 +/* 0BA7A0 7F085C30 00000000 */ nop +/* 0BA7A4 7F085C34 460E0181 */ sub.s $f6, $f0, $f14 +/* 0BA7A8 7F085C38 E5060148 */ swc1 $f6, 0x148($t0) +/* 0BA7AC 7F085C3C 8E280000 */ lw $t0, ($s1) +/* 0BA7B0 7F085C40 C5000148 */ lwc1 $f0, 0x148($t0) +.Ljp7F085C44: +/* 0BA7B4 7F085C44 4614003C */ c.lt.s $f0, $f20 +/* 0BA7B8 7F085C48 00000000 */ nop +/* 0BA7BC 7F085C4C 45020005 */ bc1fl .Ljp7F085C64 +/* 0BA7C0 7F085C50 C4420000 */ lwc1 $f2, ($v0) +/* 0BA7C4 7F085C54 460E0280 */ add.s $f10, $f0, $f14 +/* 0BA7C8 7F085C58 E50A0148 */ swc1 $f10, 0x148($t0) +/* 0BA7CC 7F085C5C 8E280000 */ lw $t0, ($s1) +/* 0BA7D0 7F085C60 C4420000 */ lwc1 $f2, ($v0) +.Ljp7F085C64: +/* 0BA7D4 7F085C64 C4680000 */ lwc1 $f8, ($v1) +/* 0BA7D8 7F085C68 C7AA025C */ lwc1 $f10, 0x25c($sp) +/* 0BA7DC 7F085C6C 46022001 */ sub.s $f0, $f4, $f2 +/* 0BA7E0 7F085C70 46081182 */ mul.s $f6, $f2, $f8 +/* 0BA7E4 7F085C74 00000000 */ nop +/* 0BA7E8 7F085C78 460A0102 */ mul.s $f4, $f0, $f10 +/* 0BA7EC 7F085C7C C50A048C */ lwc1 $f10, 0x48c($t0) +/* 0BA7F0 7F085C80 E7B403B0 */ swc1 $f20, 0x3b0($sp) +/* 0BA7F4 7F085C84 46043200 */ add.s $f8, $f6, $f4 +/* 0BA7F8 7F085C88 C4640008 */ lwc1 $f4, 8($v1) +/* 0BA7FC 7F085C8C 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BA800 7F085C90 46041202 */ mul.s $f8, $f2, $f4 +/* 0BA804 7F085C94 C7AA0264 */ lwc1 $f10, 0x264($sp) +/* 0BA808 7F085C98 E7A603AC */ swc1 $f6, 0x3ac($sp) +/* 0BA80C 7F085C9C 460A0182 */ mul.s $f6, $f0, $f10 +/* 0BA810 7F085CA0 C50A0494 */ lwc1 $f10, 0x494($t0) +/* 0BA814 7F085CA4 46064100 */ add.s $f4, $f8, $f6 +/* 0BA818 7F085CA8 460A2201 */ sub.s $f8, $f4, $f10 +/* 0BA81C 7F085CAC E7A803B4 */ swc1 $f8, 0x3b4($sp) +.Ljp7F085CB0: +/* 0BA820 7F085CB0 3C108008 */ lui $s0, %hi(flt_CODE_bss_800799BC) # $s0, 0x8008 +/* 0BA824 7F085CB4 261099FC */ addiu $s0, %lo(flt_CODE_bss_800799BC) # addiu $s0, $s0, -0x6604 +/* 0BA828 7F085CB8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA82C 7F085CBC 44812000 */ mtc1 $at, $f4 +/* 0BA830 7F085CC0 C6060000 */ lwc1 $f6, ($s0) +/* 0BA834 7F085CC4 8E280000 */ lw $t0, ($s1) +/* 0BA838 7F085CC8 3C018008 */ lui $at, %hi(dword_CODE_bss_800799B8) +/* 0BA83C 7F085CCC 4606203E */ c.le.s $f4, $f6 +/* 0BA840 7F085CD0 240C0001 */ li $t4, 1 +/* 0BA844 7F085CD4 450200EF */ bc1fl .Ljp7F086094 +/* 0BA848 7F085CD8 3C013F40 */ lui $at, %hi(0x3F3F99F8) # $at, 0x3f40 +/* 0BA84C 7F085CDC 100000EC */ b .Ljp7F086090 +/* 0BA850 7F085CE0 AC2C99F8 */ sw $t4, %lo(dword_CODE_bss_800799B8)($at) +.Ljp7F085CE4: +/* 0BA854 7F085CE4 1441001A */ bne $v0, $at, .Ljp7F085D50 +/* 0BA858 7F085CE8 3C108003 */ lui $s0, %hi(SFX_80036458) # $s0, 0x8003 +/* 0BA85C 7F085CEC 240B0002 */ li $t3, 2 +/* 0BA860 7F085CF0 3C018008 */ lui $at, %hi(dword_CODE_bss_800799B8) # $at, 0x8008 +/* 0BA864 7F085CF4 26106498 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6498 +/* 0BA868 7F085CF8 AC2B99F8 */ sw $t3, %lo(dword_CODE_bss_800799B8)($at) +/* 0BA86C 7F085CFC 8E0D0000 */ lw $t5, ($s0) +/* 0BA870 7F085D00 55A0000A */ bnezl $t5, .Ljp7F085D2C +/* 0BA874 7F085D04 8E040000 */ lw $a0, ($s0) +/* 0BA878 7F085D08 0FC3021B */ jal get_controls_locked_flag +/* 0BA87C 7F085D0C 00000000 */ nop +/* 0BA880 7F085D10 14400005 */ bnez $v0, .Ljp7F085D28 +/* 0BA884 7F085D14 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0BA888 7F085D18 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BA88C 7F085D1C 24050042 */ li $a1, 66 +/* 0BA890 7F085D20 0C002386 */ jal play_sfx_a1 +/* 0BA894 7F085D24 02003025 */ move $a2, $s0 +.Ljp7F085D28: +/* 0BA898 7F085D28 8E040000 */ lw $a0, ($s0) +.Ljp7F085D2C: +/* 0BA89C 7F085D2C 24050008 */ li $a1, 8 +/* 0BA8A0 7F085D30 0C002465 */ jal sfx_c_70009184 +/* 0BA8A4 7F085D34 240661A8 */ li $a2, 25000 +/* 0BA8A8 7F085D38 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) # $v0, 0x8008 +/* 0BA8AC 7F085D3C 244299F4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x660c +/* 0BA8B0 7F085D40 240E61A8 */ li $t6, 25000 +/* 0BA8B4 7F085D44 AC4E0000 */ sw $t6, ($v0) +/* 0BA8B8 7F085D48 100000D1 */ b .Ljp7F086090 +/* 0BA8BC 7F085D4C 8E280000 */ lw $t0, ($s1) +.Ljp7F085D50: +/* 0BA8C0 7F085D50 8E280000 */ lw $t0, ($s1) +/* 0BA8C4 7F085D54 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0BA8C8 7F085D58 44814000 */ mtc1 $at, $f8 +/* 0BA8CC 7F085D5C C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0BA8D0 7F085D60 3C018005 */ lui $at, %hi(D_800551E8) # $at, 0x8005 +/* 0BA8D4 7F085D64 C4245218 */ lwc1 $f4, %lo(D_800551E8)($at) +/* 0BA8D8 7F085D68 46085003 */ div.s $f0, $f10, $f8 +/* 0BA8DC 7F085D6C C506014C */ lwc1 $f6, 0x14c($t0) +/* 0BA8E0 7F085D70 46043083 */ div.s $f2, $f6, $f4 +/* 0BA8E4 7F085D74 4614003C */ c.lt.s $f0, $f20 +/* 0BA8E8 7F085D78 00000000 */ nop +/* 0BA8EC 7F085D7C 45020003 */ bc1fl .Ljp7F085D8C +/* 0BA8F0 7F085D80 4614103C */ c.lt.s $f2, $f20 +/* 0BA8F4 7F085D84 46000007 */ neg.s $f0, $f0 +/* 0BA8F8 7F085D88 4614103C */ c.lt.s $f2, $f20 +.Ljp7F085D8C: +/* 0BA8FC 7F085D8C 00000000 */ nop +/* 0BA900 7F085D90 45020003 */ bc1fl .Ljp7F085DA0 +/* 0BA904 7F085D94 4602003C */ c.lt.s $f0, $f2 +/* 0BA908 7F085D98 46001087 */ neg.s $f2, $f2 +/* 0BA90C 7F085D9C 4602003C */ c.lt.s $f0, $f2 +.Ljp7F085DA0: +/* 0BA910 7F085DA0 46000306 */ mov.s $f12, $f0 +/* 0BA914 7F085DA4 45020003 */ bc1fl .Ljp7F085DB4 +/* 0BA918 7F085DA8 460CA03C */ c.lt.s $f20, $f12 +/* 0BA91C 7F085DAC 46001306 */ mov.s $f12, $f2 +/* 0BA920 7F085DB0 460CA03C */ c.lt.s $f20, $f12 +.Ljp7F085DB4: +/* 0BA924 7F085DB4 00000000 */ nop +/* 0BA928 7F085DB8 45000043 */ bc1f .Ljp7F085EC8 +/* 0BA92C 7F085DBC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA930 7F085DC0 44815000 */ mtc1 $at, $f10 +/* 0BA934 7F085DC4 3C108003 */ lui $s0, %hi(SFX_80036458) # $s0, 0x8003 +/* 0BA938 7F085DC8 26106498 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6498 +/* 0BA93C 7F085DCC 460C503C */ c.lt.s $f10, $f12 +/* 0BA940 7F085DD0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA944 7F085DD4 45020004 */ bc1fl .Ljp7F085DE8 +/* 0BA948 7F085DD8 8E180004 */ lw $t8, 4($s0) +/* 0BA94C 7F085DDC 44816000 */ mtc1 $at, $f12 +/* 0BA950 7F085DE0 00000000 */ nop +/* 0BA954 7F085DE4 8E180004 */ lw $t8, 4($s0) +.Ljp7F085DE8: +/* 0BA958 7F085DE8 5700000E */ bnezl $t8, .Ljp7F085E24 +/* 0BA95C 7F085DEC 8E040004 */ lw $a0, 4($s0) +/* 0BA960 7F085DF0 0FC3021B */ jal get_controls_locked_flag +/* 0BA964 7F085DF4 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA968 7F085DF8 14400009 */ bnez $v0, .Ljp7F085E20 +/* 0BA96C 7F085DFC C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 0BA970 7F085E00 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0BA974 7F085E04 3C068003 */ lui $a2, %hi(SFX_8003645C) # $a2, 0x8003 +/* 0BA978 7F085E08 24C6649C */ addiu $a2, %lo(SFX_8003645C) # addiu $a2, $a2, 0x649c +/* 0BA97C 7F085E0C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BA980 7F085E10 2405003E */ li $a1, 62 +/* 0BA984 7F085E14 0C002386 */ jal play_sfx_a1 +/* 0BA988 7F085E18 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA98C 7F085E1C C7AC0244 */ lwc1 $f12, 0x244($sp) +.Ljp7F085E20: +/* 0BA990 7F085E20 8E040004 */ lw $a0, 4($s0) +.Ljp7F085E24: +/* 0BA994 7F085E24 3C018005 */ lui $at, %hi(D_800551EC) # $at, 0x8005 +/* 0BA998 7F085E28 24050008 */ li $a1, 8 +/* 0BA99C 7F085E2C 50800034 */ beql $a0, $zero, .Ljp7F085F00 +/* 0BA9A0 7F085E30 8E190000 */ lw $t9, ($s0) +/* 0BA9A4 7F085E34 C420521C */ lwc1 $f0, %lo(D_800551EC)($at) +/* 0BA9A8 7F085E38 24067FFF */ li $a2, 32767 +/* 0BA9AC 7F085E3C 3C018005 */ lui $at, 0x8005 +/* 0BA9B0 7F085E40 4600603C */ c.lt.s $f12, $f0 +/* 0BA9B4 7F085E44 00000000 */ nop +/* 0BA9B8 7F085E48 45000009 */ bc1f .Ljp7F085E70 +/* 0BA9BC 7F085E4C 00000000 */ nop +/* 0BA9C0 7F085E50 3C018005 */ lui $at, %hi(D_800551F0) # $at, 0x8005 +/* 0BA9C4 7F085E54 C4285220 */ lwc1 $f8, %lo(D_800551F0)($at) +/* 0BA9C8 7F085E58 46086182 */ mul.s $f6, $f12, $f8 +/* 0BA9CC 7F085E5C 46003103 */ div.s $f4, $f6, $f0 +/* 0BA9D0 7F085E60 4600228D */ trunc.w.s $f10, $f4 +/* 0BA9D4 7F085E64 44065000 */ mfc1 $a2, $f10 +/* 0BA9D8 7F085E68 10000013 */ b .Ljp7F085EB8 +/* 0BA9DC 7F085E6C 00000000 */ nop +.Ljp7F085E70: +/* 0BA9E0 7F085E70 C4285224 */ lwc1 $f8, %lo(D_800551F4)($at) +/* 0BA9E4 7F085E74 3C018005 */ lui $at, %hi(D_800551F4) # $at, 0x8005 +/* 0BA9E8 7F085E78 4608603C */ c.lt.s $f12, $f8 +/* 0BA9EC 7F085E7C 00000000 */ nop +/* 0BA9F0 7F085E80 4500000D */ bc1f .Ljp7F085EB8 +/* 0BA9F4 7F085E84 00000000 */ nop +/* 0BA9F8 7F085E88 46006181 */ sub.s $f6, $f12, $f0 +/* 0BA9FC 7F085E8C C4245228 */ lwc1 $f4, %lo(D_800551F8)($at) +/* 0BAA00 7F085E90 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BAA04 7F085E94 44814000 */ mtc1 $at, $f8 +/* 0BAA08 7F085E98 46043282 */ mul.s $f10, $f6, $f4 +/* 0BAA0C 7F085E9C 3C018005 */ lui $at, %hi(D_800551FC) # $at, 0x8005 +/* 0BAA10 7F085EA0 C424522C */ lwc1 $f4, %lo(D_800551FC)($at) +/* 0BAA14 7F085EA4 46085183 */ div.s $f6, $f10, $f8 +/* 0BAA18 7F085EA8 46043280 */ add.s $f10, $f6, $f4 +/* 0BAA1C 7F085EAC 4600520D */ trunc.w.s $f8, $f10 +/* 0BAA20 7F085EB0 44064000 */ mfc1 $a2, $f8 +/* 0BAA24 7F085EB4 00000000 */ nop +.Ljp7F085EB8: +/* 0BAA28 7F085EB8 0C002465 */ jal sfx_c_70009184 +/* 0BAA2C 7F085EBC E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BAA30 7F085EC0 1000000E */ b .Ljp7F085EFC +/* 0BAA34 7F085EC4 C7AC0244 */ lwc1 $f12, 0x244($sp) +.Ljp7F085EC8: +/* 0BAA38 7F085EC8 3C108003 */ lui $s0, %hi(SFX_80036458) # $s0, 0x8003 +/* 0BAA3C 7F085ECC 26106498 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6498 +/* 0BAA40 7F085ED0 8E040004 */ lw $a0, 4($s0) +/* 0BAA44 7F085ED4 5080000A */ beql $a0, $zero, .Ljp7F085F00 +/* 0BAA48 7F085ED8 8E190000 */ lw $t9, ($s0) +/* 0BAA4C 7F085EDC 0C002380 */ jal sfxGetArg0Unk3F +/* 0BAA50 7F085EE0 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BAA54 7F085EE4 10400005 */ beqz $v0, .Ljp7F085EFC +/* 0BAA58 7F085EE8 C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 0BAA5C 7F085EEC 8E040004 */ lw $a0, 4($s0) +/* 0BAA60 7F085EF0 0C00240C */ jal sfxDeactivate +/* 0BAA64 7F085EF4 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BAA68 7F085EF8 C7AC0244 */ lwc1 $f12, 0x244($sp) +.Ljp7F085EFC: +/* 0BAA6C 7F085EFC 8E190000 */ lw $t9, ($s0) +.Ljp7F085F00: +/* 0BAA70 7F085F00 5720000D */ bnezl $t9, .Ljp7F085F38 +/* 0BAA74 7F085F04 8E040000 */ lw $a0, ($s0) +/* 0BAA78 7F085F08 0FC3021B */ jal get_controls_locked_flag +/* 0BAA7C 7F085F0C E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BAA80 7F085F10 14400008 */ bnez $v0, .Ljp7F085F34 +/* 0BAA84 7F085F14 C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 0BAA88 7F085F18 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0BAA8C 7F085F1C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BAA90 7F085F20 24050041 */ li $a1, 65 +/* 0BAA94 7F085F24 02003025 */ move $a2, $s0 +/* 0BAA98 7F085F28 0C002386 */ jal play_sfx_a1 +/* 0BAA9C 7F085F2C E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BAAA0 7F085F30 C7AC0244 */ lwc1 $f12, 0x244($sp) +.Ljp7F085F34: +/* 0BAAA4 7F085F34 8E040000 */ lw $a0, ($s0) +.Ljp7F085F38: +/* 0BAAA8 7F085F38 1080001A */ beqz $a0, .Ljp7F085FA4 +/* 0BAAAC 7F085F3C 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) # $v0, 0x8008 +/* 0BAAB0 7F085F40 244299F4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x660c +/* 0BAAB4 7F085F44 240C7FFF */ li $t4, 32767 +/* 0BAAB8 7F085F48 AC4C0000 */ sw $t4, ($v0) +/* 0BAABC 7F085F4C 3C018005 */ lui $at, %hi(D_80055200) # $at, 0x8005 +/* 0BAAC0 7F085F50 C4265230 */ lwc1 $f6, %lo(D_80055200)($at) +/* 0BAAC4 7F085F54 3C018005 */ lui $at, %hi(D_80055204) # $at, 0x8005 +/* 0BAAC8 7F085F58 24050008 */ li $a1, 8 +/* 0BAACC 7F085F5C 4606603C */ c.lt.s $f12, $f6 +/* 0BAAD0 7F085F60 00000000 */ nop +/* 0BAAD4 7F085F64 4500000D */ bc1f .Ljp7F085F9C +/* 0BAAD8 7F085F68 00000000 */ nop +/* 0BAADC 7F085F6C C4245234 */ lwc1 $f4, %lo(D_80055204)($at) +/* 0BAAE0 7F085F70 3C018005 */ lui $at, %hi(D_80055208) # $at, 0x8005 +/* 0BAAE4 7F085F74 C4285238 */ lwc1 $f8, %lo(D_80055208)($at) +/* 0BAAE8 7F085F78 46046282 */ mul.s $f10, $f12, $f4 +/* 0BAAEC 7F085F7C 3C018005 */ lui $at, %hi(D_8005520C) # $at, 0x8005 +/* 0BAAF0 7F085F80 C424523C */ lwc1 $f4, %lo(D_8005520C)($at) +/* 0BAAF4 7F085F84 46085183 */ div.s $f6, $f10, $f8 +/* 0BAAF8 7F085F88 46043280 */ add.s $f10, $f6, $f4 +/* 0BAAFC 7F085F8C 4600520D */ trunc.w.s $f8, $f10 +/* 0BAB00 7F085F90 440D4000 */ mfc1 $t5, $f8 +/* 0BAB04 7F085F94 00000000 */ nop +/* 0BAB08 7F085F98 AC4D0000 */ sw $t5, ($v0) +.Ljp7F085F9C: +/* 0BAB0C 7F085F9C 0C002465 */ jal sfx_c_70009184 +/* 0BAB10 7F085FA0 8C460000 */ lw $a2, ($v0) +.Ljp7F085FA4: +/* 0BAB14 7F085FA4 0FC177BC */ jal get_item_in_hand +/* 0BAB18 7F085FA8 00002025 */ move $a0, $zero +/* 0BAB1C 7F085FAC 24010020 */ li $at, 32 +/* 0BAB20 7F085FB0 14410007 */ bne $v0, $at, .Ljp7F085FD0 +/* 0BAB24 7F085FB4 3C048005 */ lui $a0, %hi(clock_timer) # $a0, 0x8005 +/* 0BAB28 7F085FB8 8E280000 */ lw $t0, ($s1) +/* 0BAB2C 7F085FBC 3C018005 */ lui $at, %hi(D_80055210) # $at, 0x8005 +/* 0BAB30 7F085FC0 C4265240 */ lwc1 $f6, %lo(D_80055210)($at) +/* 0BAB34 7F085FC4 C5022A08 */ lwc1 $f2, 0x2a08($t0) +/* 0BAB38 7F085FC8 10000004 */ b .Ljp7F085FDC +/* 0BAB3C 7F085FCC 46061080 */ add.s $f2, $f2, $f6 +.Ljp7F085FD0: +/* 0BAB40 7F085FD0 3C018003 */ lui $at, %hi(D_8003646C) # $at, 0x8003 +/* 0BAB44 7F085FD4 C42264AC */ lwc1 $f2, %lo(D_8003646C)($at) +/* 0BAB48 7F085FD8 8E280000 */ lw $t0, ($s1) +.Ljp7F085FDC: +/* 0BAB4C 7F085FDC 3C018005 */ lui $at, %hi(D_80055214) # $at, 0x8005 +/* 0BAB50 7F085FE0 C4205244 */ lwc1 $f0, %lo(D_80055214)($at) +/* 0BAB54 7F085FE4 3C018005 */ lui $at, %hi(D_80055218) # $at, 0x8005 +/* 0BAB58 7F085FE8 4602003C */ c.lt.s $f0, $f2 +/* 0BAB5C 7F085FEC 00000000 */ nop +/* 0BAB60 7F085FF0 45000002 */ bc1f .Ljp7F085FFC +/* 0BAB64 7F085FF4 00000000 */ nop +/* 0BAB68 7F085FF8 46000086 */ mov.s $f2, $f0 +.Ljp7F085FFC: +/* 0BAB6C 7F085FFC C4205248 */ lwc1 $f0, %lo(D_80055218)($at) +/* 0BAB70 7F086000 4600103C */ c.lt.s $f2, $f0 +/* 0BAB74 7F086004 00000000 */ nop +/* 0BAB78 7F086008 45000002 */ bc1f .Ljp7F086014 +/* 0BAB7C 7F08600C 00000000 */ nop +/* 0BAB80 7F086010 46000086 */ mov.s $f2, $f0 +.Ljp7F086014: +/* 0BAB84 7F086014 8C8483A4 */ lw $a0, %lo(clock_timer)($a0) +/* 0BAB88 7F086018 00001025 */ move $v0, $zero +/* 0BAB8C 7F08601C 18800014 */ blez $a0, .Ljp7F086070 +/* 0BAB90 7F086020 3C018005 */ lui $at, %hi(D_8005521C) # $at, 0x8005 +/* 0BAB94 7F086024 3C038003 */ lui $v1, %hi(D_80036470) # $v1, 0x8003 +/* 0BAB98 7F086028 246364B0 */ addiu $v1, %lo(D_80036470) # addiu $v1, $v1, 0x64b0 +/* 0BAB9C 7F08602C C420524C */ lwc1 $f0, %lo(D_8005521C)($at) +/* 0BABA0 7F086030 C4700000 */ lwc1 $f16, ($v1) +/* 0BABA4 7F086034 24420001 */ addiu $v0, $v0, 1 +/* 0BABA8 7F086038 0044082A */ slt $at, $v0, $a0 +/* 0BABAC 7F08603C 46100482 */ mul.s $f18, $f0, $f16 +/* 0BABB0 7F086040 5020000A */ beql $at, $zero, .Ljp7F08606C +/* 0BABB4 7F086044 46029400 */ add.s $f16, $f18, $f2 +/* 0BABB8 7F086048 46029400 */ add.s $f16, $f18, $f2 +.Ljp7F08604C: +/* 0BABBC 7F08604C 24420001 */ addiu $v0, $v0, 1 +/* 0BABC0 7F086050 0044082A */ slt $at, $v0, $a0 +/* 0BABC4 7F086054 E4700000 */ swc1 $f16, ($v1) +/* 0BABC8 7F086058 C4700000 */ lwc1 $f16, ($v1) +/* 0BABCC 7F08605C 46100482 */ mul.s $f18, $f0, $f16 +/* 0BABD0 7F086060 5420FFFA */ bnezl $at, .Ljp7F08604C +/* 0BABD4 7F086064 46029400 */ add.s $f16, $f18, $f2 +/* 0BABD8 7F086068 46029400 */ add.s $f16, $f18, $f2 +.Ljp7F08606C: +/* 0BABDC 7F08606C E4700000 */ swc1 $f16, ($v1) +.Ljp7F086070: +/* 0BABE0 7F086070 3C038003 */ lui $v1, %hi(D_80036470) # $v1, 0x8003 +/* 0BABE4 7F086074 246364B0 */ addiu $v1, %lo(D_80036470) # addiu $v1, $v1, 0x64b0 +/* 0BABE8 7F086078 3C018005 */ lui $at, %hi(D_80055220) # $at, 0x8005 +/* 0BABEC 7F08607C C4245250 */ lwc1 $f4, %lo(D_80055220)($at) +/* 0BABF0 7F086080 C4660000 */ lwc1 $f6, ($v1) +/* 0BABF4 7F086084 3C018003 */ lui $at, %hi(D_8003646C) # $at, 0x8003 +/* 0BABF8 7F086088 46043282 */ mul.s $f10, $f6, $f4 +/* 0BABFC 7F08608C E42A64AC */ swc1 $f10, %lo(D_8003646C)($at) +.Ljp7F086090: +/* 0BAC00 7F086090 3C013F40 */ li $at, 0x3F400000 # 0.750000 +.Ljp7F086094: +/* 0BAC04 7F086094 44810000 */ mtc1 $at, $f0 +/* 0BAC08 7F086098 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BAC0C 7F08609C C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0BAC10 7F0860A0 3C018005 */ lui $at, %hi(D_80055224) # $at, 0x8005 +/* 0BAC14 7F0860A4 C4245254 */ lwc1 $f4, %lo(D_80055224)($at) +/* 0BAC18 7F0860A8 46080182 */ mul.s $f6, $f0, $f8 +/* 0BAC1C 7F0860AC C508019C */ lwc1 $f8, 0x19c($t0) +/* 0BAC20 7F0860B0 4406A000 */ mfc1 $a2, $f20 +/* 0BAC24 7F0860B4 4600A306 */ mov.s $f12, $f20 +/* 0BAC28 7F0860B8 46043283 */ div.s $f10, $f6, $f4 +/* 0BAC2C 7F0860BC 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BAC30 7F0860C0 E506019C */ swc1 $f6, 0x19c($t0) +/* 0BAC34 7F0860C4 8E280000 */ lw $t0, ($s1) +/* 0BAC38 7F0860C8 C504019C */ lwc1 $f4, 0x19c($t0) +/* 0BAC3C 7F0860CC 4614203C */ c.lt.s $f4, $f20 +/* 0BAC40 7F0860D0 00000000 */ nop +/* 0BAC44 7F0860D4 45000002 */ bc1f .Ljp7F0860E0 +/* 0BAC48 7F0860D8 00000000 */ nop +/* 0BAC4C 7F0860DC E514019C */ swc1 $f20, 0x19c($t0) +.Ljp7F0860E0: +/* 0BAC50 7F0860E0 0FC20451 */ jal sub_GAME_7F080B34 +/* 0BAC54 7F0860E4 4600A386 */ mov.s $f14, $f20 +/* 0BAC58 7F0860E8 3C018005 */ lui $at, %hi(D_80055228) # $at, 0x8005 +/* 0BAC5C 7F0860EC C4285258 */ lwc1 $f8, %lo(D_80055228)($at) +/* 0BAC60 7F0860F0 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BAC64 7F0860F4 C42A64A4 */ lwc1 $f10, %lo(D_80036464)($at) +/* 0BAC68 7F0860F8 0FC160F3 */ jal sinf +/* 0BAC6C 7F0860FC 460A4301 */ sub.s $f12, $f8, $f10 +/* 0BAC70 7F086100 8E2E0000 */ lw $t6, ($s1) +/* 0BAC74 7F086104 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BAC78 7F086108 C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0BAC7C 7F08610C C5C60174 */ lwc1 $f6, 0x174($t6) +/* 0BAC80 7F086110 3C018005 */ lui $at, %hi(D_8005522C) # $at, 0x8005 +/* 0BAC84 7F086114 46003102 */ mul.s $f4, $f6, $f0 +/* 0BAC88 7F086118 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0BAC8C 7F08611C 46082282 */ mul.s $f10, $f4, $f8 +/* 0BAC90 7F086120 C428525C */ lwc1 $f8, %lo(D_8005522C)($at) +/* 0BAC94 7F086124 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BAC98 7F086128 460A3100 */ add.s $f4, $f6, $f10 +/* 0BAC9C 7F08612C C42664A4 */ lwc1 $f6, %lo(D_80036464)($at) +/* 0BACA0 7F086130 E7A403AC */ swc1 $f4, 0x3ac($sp) +/* 0BACA4 7F086134 0FC160F0 */ jal cosf +/* 0BACA8 7F086138 46064301 */ sub.s $f12, $f8, $f6 +/* 0BACAC 7F08613C 8E380000 */ lw $t8, ($s1) +/* 0BACB0 7F086140 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BACB4 7F086144 C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0BACB8 7F086148 C70A0174 */ lwc1 $f10, 0x174($t8) +/* 0BACBC 7F08614C 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0BACC0 7F086150 24050001 */ li $a1, 1 +/* 0BACC4 7F086154 46005102 */ mul.s $f4, $f10, $f0 +/* 0BACC8 7F086158 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BACCC 7F08615C 46082182 */ mul.s $f6, $f4, $f8 +/* 0BACD0 7F086160 46065100 */ add.s $f4, $f10, $f6 +/* 0BACD4 7F086164 0FC1F7E1 */ jal sub_GAME_7F07D960 +/* 0BACD8 7F086168 E7A403B4 */ swc1 $f4, 0x3b4($sp) +/* 0BACDC 7F08616C 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_800799B8) # $t7, 0x8008 +/* 0BACE0 7F086170 8DEF99F8 */ lw $t7, %lo(dword_CODE_bss_800799B8)($t7) +/* 0BACE4 7F086174 24010002 */ li $at, 2 +/* 0BACE8 7F086178 3C0A8005 */ lui $t2, %hi(clock_timer) # $t2, 0x8005 +/* 0BACEC 7F08617C 55E10238 */ bnel $t7, $at, .Ljp7F086A60 +/* 0BACF0 7F086180 8E280000 */ lw $t0, ($s1) +/* 0BACF4 7F086184 8D4A83A4 */ lw $t2, %lo(clock_timer)($t2) +/* 0BACF8 7F086188 59400235 */ blezl $t2, .Ljp7F086A60 +/* 0BACFC 7F08618C 8E280000 */ lw $t0, ($s1) +/* 0BAD00 7F086190 8E280000 */ lw $t0, ($s1) +/* 0BAD04 7F086194 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BAD08 7F086198 C42E83B4 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BAD0C 7F08619C C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BAD10 7F0861A0 C50A0408 */ lwc1 $f10, 0x408($t0) +/* 0BAD14 7F0861A4 C5040494 */ lwc1 $f4, 0x494($t0) +/* 0BAD18 7F0861A8 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BAD1C 7F0861AC C5080410 */ lwc1 $f8, 0x410($t0) +/* 0BAD20 7F0861B0 46082281 */ sub.s $f10, $f4, $f8 +/* 0BAD24 7F0861B4 460E3003 */ div.s $f0, $f6, $f14 +/* 0BAD28 7F0861B8 460E5083 */ div.s $f2, $f10, $f14 +/* 0BAD2C 7F0861BC 46000182 */ mul.s $f6, $f0, $f0 +/* 0BAD30 7F0861C0 00000000 */ nop +/* 0BAD34 7F0861C4 46021102 */ mul.s $f4, $f2, $f2 +/* 0BAD38 7F0861C8 0C007E08 */ jal sqrtf +/* 0BAD3C 7F0861CC 46043300 */ add.s $f12, $f6, $f4 +/* 0BAD40 7F0861D0 8E280000 */ lw $t0, ($s1) +/* 0BAD44 7F0861D4 46000086 */ mov.s $f2, $f0 +/* 0BAD48 7F0861D8 C5080174 */ lwc1 $f8, 0x174($t0) +/* 0BAD4C 7F0861DC 4614403C */ c.lt.s $f8, $f20 +/* 0BAD50 7F0861E0 00000000 */ nop +/* 0BAD54 7F0861E4 45000002 */ bc1f .Ljp7F0861F0 +/* 0BAD58 7F0861E8 00000000 */ nop +/* 0BAD5C 7F0861EC 46000087 */ neg.s $f2, $f0 +.Ljp7F0861F0: +/* 0BAD60 7F0861F0 1000021A */ b .Ljp7F086A5C +/* 0BAD64 7F0861F4 E5020174 */ swc1 $f2, 0x174($t0) +.Ljp7F0861F8: +/* 0BAD68 7F0861F8 8E040000 */ lw $a0, ($s0) +/* 0BAD6C 7F0861FC 5080001A */ beql $a0, $zero, .Ljp7F086268 +/* 0BAD70 7F086200 8E040004 */ lw $a0, 4($s0) +/* 0BAD74 7F086204 0C002380 */ jal sfxGetArg0Unk3F +/* 0BAD78 7F086208 00000000 */ nop +/* 0BAD7C 7F08620C 10400015 */ beqz $v0, .Ljp7F086264 +/* 0BAD80 7F086210 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0BAD84 7F086214 44815000 */ mtc1 $at, $f10 +/* 0BAD88 7F086218 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BAD8C 7F08621C C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0BAD90 7F086220 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) # $v0, 0x8008 +/* 0BAD94 7F086224 244299F4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x660c +/* 0BAD98 7F086228 46065102 */ mul.s $f4, $f10, $f6 +/* 0BAD9C 7F08622C 8C4B0000 */ lw $t3, ($v0) +/* 0BADA0 7F086230 24050008 */ li $a1, 8 +/* 0BADA4 7F086234 4600220D */ trunc.w.s $f8, $f4 +/* 0BADA8 7F086238 440C4000 */ mfc1 $t4, $f8 +/* 0BADAC 7F08623C 00000000 */ nop +/* 0BADB0 7F086240 016C3023 */ subu $a2, $t3, $t4 +/* 0BADB4 7F086244 18C00005 */ blez $a2, .Ljp7F08625C +/* 0BADB8 7F086248 AC460000 */ sw $a2, ($v0) +/* 0BADBC 7F08624C 0C002465 */ jal sfx_c_70009184 +/* 0BADC0 7F086250 8E040000 */ lw $a0, ($s0) +/* 0BADC4 7F086254 10000004 */ b .Ljp7F086268 +/* 0BADC8 7F086258 8E040004 */ lw $a0, 4($s0) +.Ljp7F08625C: +/* 0BADCC 7F08625C 0C00240C */ jal sfxDeactivate +/* 0BADD0 7F086260 8E040000 */ lw $a0, ($s0) +.Ljp7F086264: +/* 0BADD4 7F086264 8E040004 */ lw $a0, 4($s0) +.Ljp7F086268: +/* 0BADD8 7F086268 10800007 */ beqz $a0, .Ljp7F086288 +/* 0BADDC 7F08626C 00000000 */ nop +/* 0BADE0 7F086270 0C002380 */ jal sfxGetArg0Unk3F +/* 0BADE4 7F086274 00000000 */ nop +/* 0BADE8 7F086278 10400003 */ beqz $v0, .Ljp7F086288 +/* 0BADEC 7F08627C 00000000 */ nop +/* 0BADF0 7F086280 0C00240C */ jal sfxDeactivate +/* 0BADF4 7F086284 8E040004 */ lw $a0, 4($s0) +.Ljp7F086288: +/* 0BADF8 7F086288 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BADFC 7F08628C C42E83B4 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BAE00 7F086290 3C018003 */ lui $at, %hi(D_80036AF4) # $at, 0x8003 +/* 0BAE04 7F086294 C42A6B24 */ lwc1 $f10, %lo(D_80036AF4)($at) +/* 0BAE08 7F086298 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BAE0C 7F08629C 44813000 */ mtc1 $at, $f6 +/* 0BAE10 7F0862A0 8E280000 */ lw $t0, ($s1) +/* 0BAE14 7F0862A4 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0BAE18 7F0862A8 46065102 */ mul.s $f4, $f10, $f6 +/* 0BAE1C 7F0862AC C508016C */ lwc1 $f8, 0x16c($t0) +/* 0BAE20 7F0862B0 E7A8004C */ swc1 $f8, 0x4c($sp) +/* 0BAE24 7F0862B4 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0BAE28 7F0862B8 460E2302 */ mul.s $f12, $f4, $f14 +/* 0BAE2C 7F0862BC 00000000 */ nop +/* 0BAE30 7F0862C0 460C5182 */ mul.s $f6, $f10, $f12 +/* 0BAE34 7F0862C4 E7A603A0 */ swc1 $f6, 0x3a0($sp) +/* 0BAE38 7F0862C8 C5001274 */ lwc1 $f0, 0x1274($t0) +/* 0BAE3C 7F0862CC C50404A0 */ lwc1 $f4, 0x4a0($t0) +/* 0BAE40 7F0862D0 C5061278 */ lwc1 $f6, 0x1278($t0) +/* 0BAE44 7F0862D4 46000207 */ neg.s $f8, $f0 +/* 0BAE48 7F0862D8 C50A0498 */ lwc1 $f10, 0x498($t0) +/* 0BAE4C 7F0862DC 46082402 */ mul.s $f16, $f4, $f8 +/* 0BAE50 7F0862E0 46068101 */ sub.s $f4, $f16, $f6 +/* 0BAE54 7F0862E4 46005482 */ mul.s $f18, $f10, $f0 +/* 0BAE58 7F0862E8 E7A40220 */ swc1 $f4, 0x220($sp) +/* 0BAE5C 7F0862EC C508127C */ lwc1 $f8, 0x127c($t0) +/* 0BAE60 7F0862F0 C7A60220 */ lwc1 $f6, 0x220($sp) +/* 0BAE64 7F0862F4 46089281 */ sub.s $f10, $f18, $f8 +/* 0BAE68 7F0862F8 46063102 */ mul.s $f4, $f6, $f6 +/* 0BAE6C 7F0862FC E7AA021C */ swc1 $f10, 0x21c($sp) +/* 0BAE70 7F086300 C7A8021C */ lwc1 $f8, 0x21c($sp) +/* 0BAE74 7F086304 46084282 */ mul.s $f10, $f8, $f8 +/* 0BAE78 7F086308 460A2080 */ add.s $f2, $f4, $f10 +/* 0BAE7C 7F08630C 44812000 */ mtc1 $at, $f4 +/* 0BAE80 7F086310 00000000 */ nop +/* 0BAE84 7F086314 4602203E */ c.le.s $f4, $f2 +/* 0BAE88 7F086318 E7A20218 */ swc1 $f2, 0x218($sp) +/* 0BAE8C 7F08631C 45000008 */ bc1f .Ljp7F086340 +/* 0BAE90 7F086320 00000000 */ nop +/* 0BAE94 7F086324 3C018005 */ lui $at, %hi(D_80055230) # $at, 0x8005 +/* 0BAE98 7F086328 C4205260 */ lwc1 $f0, %lo(D_80055230)($at) +/* 0BAE9C 7F08632C 46003282 */ mul.s $f10, $f6, $f0 +/* 0BAEA0 7F086330 00000000 */ nop +/* 0BAEA4 7F086334 46004102 */ mul.s $f4, $f8, $f0 +/* 0BAEA8 7F086338 E7AA0220 */ swc1 $f10, 0x220($sp) +/* 0BAEAC 7F08633C E7A4021C */ swc1 $f4, 0x21c($sp) +.Ljp7F086340: +/* 0BAEB0 7F086340 3C018005 */ lui $at, %hi(D_80055234) # $at, 0x8005 +/* 0BAEB4 7F086344 C4305264 */ lwc1 $f16, %lo(D_80055234)($at) +/* 0BAEB8 7F086348 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 0BAEBC 7F08634C C50A014C */ lwc1 $f10, 0x14c($t0) +/* 0BAEC0 7F086350 C5020174 */ lwc1 $f2, 0x174($t0) +/* 0BAEC4 7F086354 46103002 */ mul.s $f0, $f6, $f16 +/* 0BAEC8 7F086358 4614003C */ c.lt.s $f0, $f20 +/* 0BAECC 7F08635C 46105302 */ mul.s $f12, $f10, $f16 +/* 0BAED0 7F086360 45020003 */ bc1fl .Ljp7F086370 +/* 0BAED4 7F086364 4614103C */ c.lt.s $f2, $f20 +/* 0BAED8 7F086368 46000007 */ neg.s $f0, $f0 +/* 0BAEDC 7F08636C 4614103C */ c.lt.s $f2, $f20 +.Ljp7F086370: +/* 0BAEE0 7F086370 3C018005 */ lui $at, %hi(D_80055238) # $at, 0x8005 +/* 0BAEE4 7F086374 45020003 */ bc1fl .Ljp7F086384 +/* 0BAEE8 7F086378 4614603C */ c.lt.s $f12, $f20 +/* 0BAEEC 7F08637C 46001087 */ neg.s $f2, $f2 +/* 0BAEF0 7F086380 4614603C */ c.lt.s $f12, $f20 +.Ljp7F086384: +/* 0BAEF4 7F086384 00000000 */ nop +/* 0BAEF8 7F086388 45020003 */ bc1fl .Ljp7F086398 +/* 0BAEFC 7F08638C 4600103C */ c.lt.s $f2, $f0 +/* 0BAF00 7F086390 46006307 */ neg.s $f12, $f12 +/* 0BAF04 7F086394 4600103C */ c.lt.s $f2, $f0 +.Ljp7F086398: +/* 0BAF08 7F086398 E7A20398 */ swc1 $f2, 0x398($sp) +/* 0BAF0C 7F08639C 45020003 */ bc1fl .Ljp7F0863AC +/* 0BAF10 7F0863A0 C7A80398 */ lwc1 $f8, 0x398($sp) +/* 0BAF14 7F0863A4 E7A00398 */ swc1 $f0, 0x398($sp) +/* 0BAF18 7F0863A8 C7A80398 */ lwc1 $f8, 0x398($sp) +.Ljp7F0863AC: +/* 0BAF1C 7F0863AC 460C403C */ c.lt.s $f8, $f12 +/* 0BAF20 7F0863B0 00000000 */ nop +/* 0BAF24 7F0863B4 45020003 */ bc1fl .Ljp7F0863C4 +/* 0BAF28 7F0863B8 C7A40218 */ lwc1 $f4, 0x218($sp) +/* 0BAF2C 7F0863BC E7AC0398 */ swc1 $f12, 0x398($sp) +/* 0BAF30 7F0863C0 C7A40218 */ lwc1 $f4, 0x218($sp) +.Ljp7F0863C4: +/* 0BAF34 7F0863C4 C4265268 */ lwc1 $f6, %lo(D_80055238)($at) +/* 0BAF38 7F0863C8 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BAF3C 7F0863CC 44810000 */ mtc1 $at, $f0 +/* 0BAF40 7F0863D0 4604303E */ c.le.s $f6, $f4 +/* 0BAF44 7F0863D4 00000000 */ nop +/* 0BAF48 7F0863D8 45020008 */ bc1fl .Ljp7F0863FC +/* 0BAF4C 7F0863DC C7A80398 */ lwc1 $f8, 0x398($sp) +/* 0BAF50 7F0863E0 C7AA0398 */ lwc1 $f10, 0x398($sp) +/* 0BAF54 7F0863E4 4610503C */ c.lt.s $f10, $f16 +/* 0BAF58 7F0863E8 00000000 */ nop +/* 0BAF5C 7F0863EC 45020003 */ bc1fl .Ljp7F0863FC +/* 0BAF60 7F0863F0 C7A80398 */ lwc1 $f8, 0x398($sp) +/* 0BAF64 7F0863F4 E7B00398 */ swc1 $f16, 0x398($sp) +/* 0BAF68 7F0863F8 C7A80398 */ lwc1 $f8, 0x398($sp) +.Ljp7F0863FC: +/* 0BAF6C 7F0863FC 4608003E */ c.le.s $f0, $f8 +/* 0BAF70 7F086400 00000000 */ nop +/* 0BAF74 7F086404 4502000B */ bc1fl .Ljp7F086434 +/* 0BAF78 7F086408 C7AA0398 */ lwc1 $f10, 0x398($sp) +/* 0BAF7C 7F08640C 46004101 */ sub.s $f4, $f8, $f0 +/* 0BAF80 7F086410 3C014461 */ li $at, 0x44610000 # 900.000000 +/* 0BAF84 7F086414 44815000 */ mtc1 $at, $f10 +/* 0BAF88 7F086418 460E2182 */ mul.s $f6, $f4, $f14 +/* 0BAF8C 7F08641C C504019C */ lwc1 $f4, 0x19c($t0) +/* 0BAF90 7F086420 460A3203 */ div.s $f8, $f6, $f10 +/* 0BAF94 7F086424 46082180 */ add.s $f6, $f4, $f8 +/* 0BAF98 7F086428 1000000A */ b .Ljp7F086454 +/* 0BAF9C 7F08642C E506019C */ swc1 $f6, 0x19c($t0) +/* 0BAFA0 7F086430 C7AA0398 */ lwc1 $f10, 0x398($sp) +.Ljp7F086434: +/* 0BAFA4 7F086434 3C018005 */ lui $at, %hi(D_8005523C) # $at, 0x8005 +/* 0BAFA8 7F086438 C426526C */ lwc1 $f6, %lo(D_8005523C)($at) +/* 0BAFAC 7F08643C 460A0101 */ sub.s $f4, $f0, $f10 +/* 0BAFB0 7F086440 460E2202 */ mul.s $f8, $f4, $f14 +/* 0BAFB4 7F086444 C504019C */ lwc1 $f4, 0x19c($t0) +/* 0BAFB8 7F086448 46064283 */ div.s $f10, $f8, $f6 +/* 0BAFBC 7F08644C 460A2201 */ sub.s $f8, $f4, $f10 +/* 0BAFC0 7F086450 E508019C */ swc1 $f8, 0x19c($t0) +.Ljp7F086454: +/* 0BAFC4 7F086454 8E280000 */ lw $t0, ($s1) +/* 0BAFC8 7F086458 C500019C */ lwc1 $f0, 0x19c($t0) +/* 0BAFCC 7F08645C 4614003C */ c.lt.s $f0, $f20 +/* 0BAFD0 7F086460 00000000 */ nop +/* 0BAFD4 7F086464 45020005 */ bc1fl .Ljp7F08647C +/* 0BAFD8 7F086468 3C013F80 */ lui $at, 0x3f80 +/* 0BAFDC 7F08646C E514019C */ swc1 $f20, 0x19c($t0) +/* 0BAFE0 7F086470 1000000C */ b .Ljp7F0864A4 +/* 0BAFE4 7F086474 8E280000 */ lw $t0, ($s1) +/* 0BAFE8 7F086478 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.Ljp7F08647C: +/* 0BAFEC 7F08647C 44813000 */ mtc1 $at, $f6 +/* 0BAFF0 7F086480 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BAFF4 7F086484 4600303C */ c.lt.s $f6, $f0 +/* 0BAFF8 7F086488 00000000 */ nop +/* 0BAFFC 7F08648C 45020006 */ bc1fl .Ljp7F0864A8 +/* 0BB000 7F086490 C7AC0398 */ lwc1 $f12, 0x398($sp) +/* 0BB004 7F086494 44812000 */ mtc1 $at, $f4 +/* 0BB008 7F086498 00000000 */ nop +/* 0BB00C 7F08649C E504019C */ swc1 $f4, 0x19c($t0) +/* 0BB010 7F0864A0 8E280000 */ lw $t0, ($s1) +.Ljp7F0864A4: +/* 0BB014 7F0864A4 C7AC0398 */ lwc1 $f12, 0x398($sp) +.Ljp7F0864A8: +/* 0BB018 7F0864A8 C50E0174 */ lwc1 $f14, 0x174($t0) +/* 0BB01C 7F0864AC 0FC20451 */ jal sub_GAME_7F080B34 +/* 0BB020 7F0864B0 8FA603A0 */ lw $a2, 0x3a0($sp) +/* 0BB024 7F0864B4 8E280000 */ lw $t0, ($s1) +/* 0BB028 7F0864B8 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BB02C 7F0864BC C42E83B4 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BB030 7F0864C0 C5020504 */ lwc1 $f2, 0x504($t0) +/* 0BB034 7F0864C4 C50A0498 */ lwc1 $f10, 0x498($t0) +/* 0BB038 7F0864C8 C50004FC */ lwc1 $f0, 0x4fc($t0) +/* 0BB03C 7F0864CC C50604A0 */ lwc1 $f6, 0x4a0($t0) +/* 0BB040 7F0864D0 460A1202 */ mul.s $f8, $f2, $f10 +/* 0BB044 7F0864D4 00000000 */ nop +/* 0BB048 7F0864D8 46060102 */ mul.s $f4, $f0, $f6 +/* 0BB04C 7F0864DC 46044281 */ sub.s $f10, $f8, $f4 +/* 0BB050 7F0864E0 C7A803AC */ lwc1 $f8, 0x3ac($sp) +/* 0BB054 7F0864E4 460E5182 */ mul.s $f6, $f10, $f14 +/* 0BB058 7F0864E8 46064100 */ add.s $f4, $f8, $f6 +/* 0BB05C 7F0864EC E7A403AC */ swc1 $f4, 0x3ac($sp) +/* 0BB060 7F0864F0 C50A04A0 */ lwc1 $f10, 0x4a0($t0) +/* 0BB064 7F0864F4 C5060498 */ lwc1 $f6, 0x498($t0) +/* 0BB068 7F0864F8 460A1202 */ mul.s $f8, $f2, $f10 +/* 0BB06C 7F0864FC 00000000 */ nop +/* 0BB070 7F086500 46060282 */ mul.s $f10, $f0, $f6 +/* 0BB074 7F086504 460A4180 */ add.s $f6, $f8, $f10 +/* 0BB078 7F086508 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BB07C 7F08650C 460E3202 */ mul.s $f8, $f6, $f14 +/* 0BB080 7F086510 46085180 */ add.s $f6, $f10, $f8 +/* 0BB084 7F086514 C7AA0220 */ lwc1 $f10, 0x220($sp) +/* 0BB088 7F086518 460A2200 */ add.s $f8, $f4, $f10 +/* 0BB08C 7F08651C C7A4021C */ lwc1 $f4, 0x21c($sp) +/* 0BB090 7F086520 E7A603B4 */ swc1 $f6, 0x3b4($sp) +/* 0BB094 7F086524 46043280 */ add.s $f10, $f6, $f4 +/* 0BB098 7F086528 E7A803AC */ swc1 $f8, 0x3ac($sp) +/* 0BB09C 7F08652C E7AA03B4 */ swc1 $f10, 0x3b4($sp) +/* 0BB0A0 7F086530 C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BB0A4 7F086534 E7A80208 */ swc1 $f8, 0x208($sp) +/* 0BB0A8 7F086538 C5060494 */ lwc1 $f6, 0x494($t0) +/* 0BB0AC 7F08653C E7A60204 */ swc1 $f6, 0x204($sp) +/* 0BB0B0 7F086540 8D0E0488 */ lw $t6, 0x488($t0) +/* 0BB0B4 7F086544 0FC246BE */ jal get_debug_fast_bond_flag +/* 0BB0B8 7F086548 AFAE0200 */ sw $t6, 0x200($sp) +/* 0BB0BC 7F08654C 50400021 */ beql $v0, $zero, .Ljp7F0865D4 +/* 0BB0C0 7F086550 8E380000 */ lw $t8, ($s1) +/* 0BB0C4 7F086554 8E280000 */ lw $t0, ($s1) +/* 0BB0C8 7F086558 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0BB0CC 7F08655C 44810000 */ mtc1 $at, $f0 +/* 0BB0D0 7F086560 C5040498 */ lwc1 $f4, 0x498($t0) +/* 0BB0D4 7F086564 C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0BB0D8 7F086568 C50604A0 */ lwc1 $f6, 0x4a0($t0) +/* 0BB0DC 7F08656C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BB0E0 7F086570 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BB0E4 7F086574 C504016C */ lwc1 $f4, 0x16c($t0) +/* 0BB0E8 7F086578 C42E83B4 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BB0EC 7F08657C 46043282 */ mul.s $f10, $f6, $f4 +/* 0BB0F0 7F086580 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BB0F4 7F086584 C7AA03AC */ lwc1 $f10, 0x3ac($sp) +/* 0BB0F8 7F086588 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BB0FC 7F08658C 00000000 */ nop +/* 0BB100 7F086590 46002202 */ mul.s $f8, $f4, $f0 +/* 0BB104 7F086594 46085180 */ add.s $f6, $f10, $f8 +/* 0BB108 7F086598 E7A603AC */ swc1 $f6, 0x3ac($sp) +/* 0BB10C 7F08659C C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0BB110 7F0865A0 C50404A0 */ lwc1 $f4, 0x4a0($t0) +/* 0BB114 7F0865A4 C5060498 */ lwc1 $f6, 0x498($t0) +/* 0BB118 7F0865A8 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BB11C 7F0865AC C504016C */ lwc1 $f4, 0x16c($t0) +/* 0BB120 7F0865B0 46043282 */ mul.s $f10, $f6, $f4 +/* 0BB124 7F0865B4 460A4180 */ add.s $f6, $f8, $f10 +/* 0BB128 7F0865B8 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BB12C 7F0865BC 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BB130 7F0865C0 00000000 */ nop +/* 0BB134 7F0865C4 46002202 */ mul.s $f8, $f4, $f0 +/* 0BB138 7F0865C8 46085180 */ add.s $f6, $f10, $f8 +/* 0BB13C 7F0865CC E7A603B4 */ swc1 $f6, 0x3b4($sp) +/* 0BB140 7F0865D0 8E380000 */ lw $t8, ($s1) +.Ljp7F0865D4: +/* 0BB144 7F0865D4 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0BB148 7F0865D8 00002825 */ move $a1, $zero +/* 0BB14C 7F0865DC C7041274 */ lwc1 $f4, 0x1274($t8) +/* 0BB150 7F0865E0 4604A032 */ c.eq.s $f20, $f4 +/* 0BB154 7F0865E4 00000000 */ nop +/* 0BB158 7F0865E8 45000002 */ bc1f .Ljp7F0865F4 +/* 0BB15C 7F0865EC 00000000 */ nop +/* 0BB160 7F0865F0 24050001 */ li $a1, 1 +.Ljp7F0865F4: +/* 0BB164 7F0865F4 0FC1F7E1 */ jal sub_GAME_7F07D960 +/* 0BB168 7F0865F8 00000000 */ nop +/* 0BB16C 7F0865FC 8E2F0000 */ lw $t7, ($s1) +/* 0BB170 7F086600 3C018005 */ lui $at, %hi(D_80055240) # $at, 0x8005 +/* 0BB174 7F086604 C4285270 */ lwc1 $f8, %lo(D_80055240)($at) +/* 0BB178 7F086608 C5EA04B0 */ lwc1 $f10, 0x4b0($t7) +/* 0BB17C 7F08660C 27B001B4 */ addiu $s0, $sp, 0x1b4 +/* 0BB180 7F086610 AFB00010 */ sw $s0, 0x10($sp) +/* 0BB184 7F086614 46085182 */ mul.s $f6, $f10, $f8 +/* 0BB188 7F086618 27A40200 */ addiu $a0, $sp, 0x200 +/* 0BB18C 7F08661C 8FA50208 */ lw $a1, 0x208($sp) +/* 0BB190 7F086620 8FA60204 */ lw $a2, 0x204($sp) +/* 0BB194 7F086624 44073000 */ mfc1 $a3, $f6 +/* 0BB198 7F086628 0FC2CBB1 */ jal sub_GAME_7F0B2314 +/* 0BB19C 7F08662C 00000000 */ nop +/* 0BB1A0 7F086630 0FC2CBD5 */ jal sub_GAME_7F0B23A4 +/* 0BB1A4 7F086634 02002025 */ move $a0, $s0 +/* 0BB1A8 7F086638 10400002 */ beqz $v0, .Ljp7F086644 +/* 0BB1AC 7F08663C 240A0001 */ li $t2, 1 +/* 0BB1B0 7F086640 AFAA0394 */ sw $t2, 0x394($sp) +.Ljp7F086644: +/* 0BB1B4 7F086644 8E280000 */ lw $t0, ($s1) +/* 0BB1B8 7F086648 3C018005 */ lui $at, %hi(D_80055244) # $at, 0x8005 +/* 0BB1BC 7F08664C C42A5274 */ lwc1 $f10, %lo(D_80055244)($at) +/* 0BB1C0 7F086650 C50404B0 */ lwc1 $f4, 0x4b0($t0) +/* 0BB1C4 7F086654 8D05048C */ lw $a1, 0x48c($t0) +/* 0BB1C8 7F086658 8D060494 */ lw $a2, 0x494($t0) +/* 0BB1CC 7F08665C 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BB1D0 7F086660 AFB00010 */ sw $s0, 0x10($sp) +/* 0BB1D4 7F086664 25040488 */ addiu $a0, $t0, 0x488 +/* 0BB1D8 7F086668 44074000 */ mfc1 $a3, $f8 +/* 0BB1DC 7F08666C 0FC2CBB1 */ jal sub_GAME_7F0B2314 +/* 0BB1E0 7F086670 00000000 */ nop +/* 0BB1E4 7F086674 0FC2CBD5 */ jal sub_GAME_7F0B23A4 +/* 0BB1E8 7F086678 02002025 */ move $a0, $s0 +/* 0BB1EC 7F08667C 10400002 */ beqz $v0, .Ljp7F086688 +/* 0BB1F0 7F086680 24190001 */ li $t9, 1 +/* 0BB1F4 7F086684 AFB90394 */ sw $t9, 0x394($sp) +.Ljp7F086688: +/* 0BB1F8 7F086688 8E280000 */ lw $t0, ($s1) +/* 0BB1FC 7F08668C 8D05048C */ lw $a1, 0x48c($t0) +/* 0BB200 7F086690 8D060494 */ lw $a2, 0x494($t0) +/* 0BB204 7F086694 8D0704B0 */ lw $a3, 0x4b0($t0) +/* 0BB208 7F086698 AFB00010 */ sw $s0, 0x10($sp) +/* 0BB20C 7F08669C 0FC2CBB1 */ jal sub_GAME_7F0B2314 +/* 0BB210 7F0866A0 25040488 */ addiu $a0, $t0, 0x488 +/* 0BB214 7F0866A4 0FC2CBD5 */ jal sub_GAME_7F0B23A4 +/* 0BB218 7F0866A8 02002025 */ move $a0, $s0 +/* 0BB21C 7F0866AC 1440000D */ bnez $v0, .Ljp7F0866E4 +/* 0BB220 7F0866B0 00000000 */ nop +/* 0BB224 7F0866B4 8E2B0000 */ lw $t3, ($s1) +/* 0BB228 7F0866B8 3C018005 */ lui $at, %hi(D_80055248) # $at, 0x8005 +/* 0BB22C 7F0866BC C4245278 */ lwc1 $f4, %lo(D_80055248)($at) +/* 0BB230 7F0866C0 C56604B0 */ lwc1 $f6, 0x4b0($t3) +/* 0BB234 7F0866C4 AFB00010 */ sw $s0, 0x10($sp) +/* 0BB238 7F0866C8 27A40200 */ addiu $a0, $sp, 0x200 +/* 0BB23C 7F0866CC 46043282 */ mul.s $f10, $f6, $f4 +/* 0BB240 7F0866D0 8FA50208 */ lw $a1, 0x208($sp) +/* 0BB244 7F0866D4 8FA60204 */ lw $a2, 0x204($sp) +/* 0BB248 7F0866D8 44075000 */ mfc1 $a3, $f10 +/* 0BB24C 7F0866DC 0FC2CBB1 */ jal sub_GAME_7F0B2314 +/* 0BB250 7F0866E0 00000000 */ nop +.Ljp7F0866E4: +/* 0BB254 7F0866E4 0FC2CBD5 */ jal sub_GAME_7F0B23A4 +/* 0BB258 7F0866E8 02002025 */ move $a0, $s0 +/* 0BB25C 7F0866EC 104000B8 */ beqz $v0, .Ljp7F0869D0 +/* 0BB260 7F0866F0 240C0001 */ li $t4, 1 +/* 0BB264 7F0866F4 AFAC0394 */ sw $t4, 0x394($sp) +/* 0BB268 7F0866F8 27A40174 */ addiu $a0, $sp, 0x174 +/* 0BB26C 7F0866FC 27A50170 */ addiu $a1, $sp, 0x170 +/* 0BB270 7F086700 0FC2CBF4 */ jal sub_GAME_7F0B2420 +/* 0BB274 7F086704 27A60184 */ addiu $a2, $sp, 0x184 +/* 0BB278 7F086708 8E2D0000 */ lw $t5, ($s1) +/* 0BB27C 7F08670C C7A801A0 */ lwc1 $f8, 0x1a0($sp) +/* 0BB280 7F086710 C5A60074 */ lwc1 $f6, 0x74($t5) +/* 0BB284 7F086714 4608303E */ c.le.s $f6, $f8 +/* 0BB288 7F086718 C7A80198 */ lwc1 $f8, 0x198($sp) +/* 0BB28C 7F08671C C7A6018C */ lwc1 $f6, 0x18c($sp) +/* 0BB290 7F086720 450200AC */ bc1fl .Ljp7F0869D4 +/* 0BB294 7F086724 8E280000 */ lw $t0, ($s1) +/* 0BB298 7F086728 C7A40184 */ lwc1 $f4, 0x184($sp) +/* 0BB29C 7F08672C C7AA0190 */ lwc1 $f10, 0x190($sp) +/* 0BB2A0 7F086730 46064381 */ sub.s $f14, $f8, $f6 +/* 0BB2A4 7F086734 460A2081 */ sub.s $f2, $f4, $f10 +/* 0BB2A8 7F086738 460E7102 */ mul.s $f4, $f14, $f14 +/* 0BB2AC 7F08673C E7AE016C */ swc1 $f14, 0x16c($sp) +/* 0BB2B0 7F086740 46021282 */ mul.s $f10, $f2, $f2 +/* 0BB2B4 7F086744 E7A20168 */ swc1 $f2, 0x168($sp) +/* 0BB2B8 7F086748 0C007E08 */ jal sqrtf +/* 0BB2BC 7F08674C 460A2300 */ add.s $f12, $f4, $f10 +/* 0BB2C0 7F086750 C7A20168 */ lwc1 $f2, 0x168($sp) +/* 0BB2C4 7F086754 C7AE016C */ lwc1 $f14, 0x16c($sp) +/* 0BB2C8 7F086758 C7A80204 */ lwc1 $f8, 0x204($sp) +/* 0BB2CC 7F08675C 46001083 */ div.s $f2, $f2, $f0 +/* 0BB2D0 7F086760 C7A6018C */ lwc1 $f6, 0x18c($sp) +/* 0BB2D4 7F086764 E7A80030 */ swc1 $f8, 0x30($sp) +/* 0BB2D8 7F086768 46064101 */ sub.s $f4, $f8, $f6 +/* 0BB2DC 7F08676C C7A80184 */ lwc1 $f8, 0x184($sp) +/* 0BB2E0 7F086770 E7A60034 */ swc1 $f6, 0x34($sp) +/* 0BB2E4 7F086774 46007383 */ div.s $f14, $f14, $f0 +/* 0BB2E8 7F086778 46022282 */ mul.s $f10, $f4, $f2 +/* 0BB2EC 7F08677C C7A40208 */ lwc1 $f4, 0x208($sp) +/* 0BB2F0 7F086780 46082181 */ sub.s $f6, $f4, $f8 +/* 0BB2F4 7F086784 460E3182 */ mul.s $f6, $f6, $f14 +/* 0BB2F8 7F086788 46065300 */ add.s $f12, $f10, $f6 +/* 0BB2FC 7F08678C C7A60030 */ lwc1 $f6, 0x30($sp) +/* 0BB300 7F086790 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BB304 7F086794 E7AC0050 */ swc1 $f12, 0x50($sp) +/* 0BB308 7F086798 460A3180 */ add.s $f6, $f6, $f10 +/* 0BB30C 7F08679C C7AA0034 */ lwc1 $f10, 0x34($sp) +/* 0BB310 7F0867A0 460A3181 */ sub.s $f6, $f6, $f10 +/* 0BB314 7F0867A4 46023282 */ mul.s $f10, $f6, $f2 +/* 0BB318 7F0867A8 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0BB31C 7F0867AC 46062100 */ add.s $f4, $f4, $f6 +/* 0BB320 7F0867B0 46082181 */ sub.s $f6, $f4, $f8 +/* 0BB324 7F0867B4 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BB328 7F0867B8 46045480 */ add.s $f18, $f10, $f4 +/* 0BB32C 7F0867BC C7A403B4 */ lwc1 $f4, 0x3b4($sp) +/* 0BB330 7F0867C0 46126202 */ mul.s $f8, $f12, $f18 +/* 0BB334 7F0867C4 46009406 */ mov.s $f16, $f18 +/* 0BB338 7F0867C8 4614403E */ c.le.s $f8, $f20 +/* 0BB33C 7F0867CC 46042202 */ mul.s $f8, $f4, $f4 +/* 0BB340 7F0867D0 45020004 */ bc1fl .Ljp7F0867E4 +/* 0BB344 7F0867D4 4614903C */ c.lt.s $f18, $f20 +/* 0BB348 7F0867D8 1000001F */ b .Ljp7F086858 +/* 0BB34C 7F0867DC 4600A386 */ mov.s $f14, $f20 +/* 0BB350 7F0867E0 4614903C */ c.lt.s $f18, $f20 +.Ljp7F0867E4: +/* 0BB354 7F0867E4 00000000 */ nop +/* 0BB358 7F0867E8 45020005 */ bc1fl .Ljp7F086800 +/* 0BB35C 7F0867EC 4610603E */ c.le.s $f12, $f16 +/* 0BB360 7F0867F0 C7AC0050 */ lwc1 $f12, 0x50($sp) +/* 0BB364 7F0867F4 46009407 */ neg.s $f16, $f18 +/* 0BB368 7F0867F8 46006307 */ neg.s $f12, $f12 +/* 0BB36C 7F0867FC 4610603E */ c.le.s $f12, $f16 +.Ljp7F086800: +/* 0BB370 7F086800 00000000 */ nop +/* 0BB374 7F086804 45020004 */ bc1fl .Ljp7F086818 +/* 0BB378 7F086808 8E2E0000 */ lw $t6, ($s1) +/* 0BB37C 7F08680C 10000012 */ b .Ljp7F086858 +/* 0BB380 7F086810 4600A386 */ mov.s $f14, $f20 +/* 0BB384 7F086814 8E2E0000 */ lw $t6, ($s1) +.Ljp7F086818: +/* 0BB388 7F086818 C5C004B0 */ lwc1 $f0, 0x4b0($t6) +/* 0BB38C 7F08681C 4610003C */ c.lt.s $f0, $f16 +/* 0BB390 7F086820 00000000 */ nop +/* 0BB394 7F086824 45020004 */ bc1fl .Ljp7F086838 +/* 0BB398 7F086828 4600603C */ c.lt.s $f12, $f0 +/* 0BB39C 7F08682C 1000000A */ b .Ljp7F086858 +/* 0BB3A0 7F086830 4600A386 */ mov.s $f14, $f20 +/* 0BB3A4 7F086834 4600603C */ c.lt.s $f12, $f0 +.Ljp7F086838: +/* 0BB3A8 7F086838 00000000 */ nop +/* 0BB3AC 7F08683C 45020004 */ bc1fl .Ljp7F086850 +/* 0BB3B0 7F086840 46006181 */ sub.s $f6, $f12, $f0 +/* 0BB3B4 7F086844 10000004 */ b .Ljp7F086858 +/* 0BB3B8 7F086848 4600A386 */ mov.s $f14, $f20 +/* 0BB3BC 7F08684C 46006181 */ sub.s $f6, $f12, $f0 +.Ljp7F086850: +/* 0BB3C0 7F086850 46106281 */ sub.s $f10, $f12, $f16 +/* 0BB3C4 7F086854 460A3383 */ div.s $f14, $f6, $f10 +.Ljp7F086858: +/* 0BB3C8 7F086858 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0BB3CC 7F08685C E7AE0180 */ swc1 $f14, 0x180($sp) +/* 0BB3D0 7F086860 46063282 */ mul.s $f10, $f6, $f6 +/* 0BB3D4 7F086864 0C007E08 */ jal sqrtf +/* 0BB3D8 7F086868 460A4300 */ add.s $f12, $f8, $f10 +/* 0BB3DC 7F08686C 4600A03C */ c.lt.s $f20, $f0 +/* 0BB3E0 7F086870 C7AE0180 */ lwc1 $f14, 0x180($sp) +/* 0BB3E4 7F086874 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BB3E8 7F086878 4502001B */ bc1fl .Ljp7F0868E8 +/* 0BB3EC 7F08687C C7A6019C */ lwc1 $f6, 0x19c($sp) +/* 0BB3F0 7F086880 44812000 */ mtc1 $at, $f4 +/* 0BB3F4 7F086884 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0BB3F8 7F086888 44814000 */ mtc1 $at, $f8 +/* 0BB3FC 7F08688C 460E2181 */ sub.s $f6, $f4, $f14 +/* 0BB400 7F086890 8E380000 */ lw $t8, ($s1) +/* 0BB404 7F086894 C7A401A0 */ lwc1 $f4, 0x1a0($sp) +/* 0BB408 7F086898 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0BB40C 7F08689C 46003082 */ mul.s $f2, $f6, $f0 +/* 0BB410 7F0868A0 00000000 */ nop +/* 0BB414 7F0868A4 46081302 */ mul.s $f12, $f2, $f8 +/* 0BB418 7F0868A8 E7AC0390 */ swc1 $f12, 0x390($sp) +/* 0BB41C 7F0868AC C7120074 */ lwc1 $f18, 0x74($t8) +/* 0BB420 7F0868B0 460C9280 */ add.s $f10, $f18, $f12 +/* 0BB424 7F0868B4 460A203E */ c.le.s $f4, $f10 +/* 0BB428 7F0868B8 00000000 */ nop +/* 0BB42C 7F0868BC 45000009 */ bc1f .Ljp7F0868E4 +/* 0BB430 7F0868C0 00000000 */ nop +/* 0BB434 7F0868C4 46122181 */ sub.s $f6, $f4, $f18 +/* 0BB438 7F0868C8 44814000 */ mtc1 $at, $f8 +/* 0BB43C 7F0868CC 00000000 */ nop +/* 0BB440 7F0868D0 46083283 */ div.s $f10, $f6, $f8 +/* 0BB444 7F0868D4 E7A60390 */ swc1 $f6, 0x390($sp) +/* 0BB448 7F0868D8 460A1401 */ sub.s $f16, $f2, $f10 +/* 0BB44C 7F0868DC 46008103 */ div.s $f4, $f16, $f0 +/* 0BB450 7F0868E0 46047380 */ add.s $f14, $f14, $f4 +.Ljp7F0868E4: +/* 0BB454 7F0868E4 C7A6019C */ lwc1 $f6, 0x19c($sp) +.Ljp7F0868E8: +/* 0BB458 7F0868E8 C7A80184 */ lwc1 $f8, 0x184($sp) +/* 0BB45C 7F0868EC C7AA01A4 */ lwc1 $f10, 0x1a4($sp) +/* 0BB460 7F0868F0 C7A4018C */ lwc1 $f4, 0x18c($sp) +/* 0BB464 7F0868F4 46083301 */ sub.s $f12, $f6, $f8 +/* 0BB468 7F0868F8 C7A601A8 */ lwc1 $f6, 0x1a8($sp) +/* 0BB46C 7F0868FC 8E280000 */ lw $t0, ($s1) +/* 0BB470 7F086900 46045401 */ sub.s $f16, $f10, $f4 +/* 0BB474 7F086904 C7AA01B0 */ lwc1 $f10, 0x1b0($sp) +/* 0BB478 7F086908 46083481 */ sub.s $f18, $f6, $f8 +/* 0BB47C 7F08690C 46045181 */ sub.s $f6, $f10, $f4 +/* 0BB480 7F086910 46129202 */ mul.s $f8, $f18, $f18 +/* 0BB484 7F086914 00000000 */ nop +/* 0BB488 7F086918 46063282 */ mul.s $f10, $f6, $f6 +/* 0BB48C 7F08691C E7A60048 */ swc1 $f6, 0x48($sp) +/* 0BB490 7F086920 460A4100 */ add.s $f4, $f8, $f10 +/* 0BB494 7F086924 460C6202 */ mul.s $f8, $f12, $f12 +/* 0BB498 7F086928 00000000 */ nop +/* 0BB49C 7F08692C 46108282 */ mul.s $f10, $f16, $f16 +/* 0BB4A0 7F086930 460A4200 */ add.s $f8, $f8, $f10 +/* 0BB4A4 7F086934 C7AA01A0 */ lwc1 $f10, 0x1a0($sp) +/* 0BB4A8 7F086938 4608203C */ c.lt.s $f4, $f8 +/* 0BB4AC 7F08693C C7A40188 */ lwc1 $f4, 0x188($sp) +/* 0BB4B0 7F086940 45000003 */ bc1f .Ljp7F086950 +/* 0BB4B4 7F086944 46045201 */ sub.s $f8, $f10, $f4 +/* 0BB4B8 7F086948 46009306 */ mov.s $f12, $f18 +/* 0BB4BC 7F08694C 46003406 */ mov.s $f16, $f6 +.Ljp7F086950: +/* 0BB4C0 7F086950 C7A60390 */ lwc1 $f6, 0x390($sp) +/* 0BB4C4 7F086954 C7A403AC */ lwc1 $f4, 0x3ac($sp) +/* 0BB4C8 7F086958 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0BB4CC 7F08695C 46083003 */ div.s $f0, $f6, $f8 +/* 0BB4D0 7F086960 00002825 */ move $a1, $zero +/* 0BB4D4 7F086964 460C0282 */ mul.s $f10, $f0, $f12 +/* 0BB4D8 7F086968 00000000 */ nop +/* 0BB4DC 7F08696C 460E2182 */ mul.s $f6, $f4, $f14 +/* 0BB4E0 7F086970 46065200 */ add.s $f8, $f10, $f6 +/* 0BB4E4 7F086974 46100102 */ mul.s $f4, $f0, $f16 +/* 0BB4E8 7F086978 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BB4EC 7F08697C E7A803AC */ swc1 $f8, 0x3ac($sp) +/* 0BB4F0 7F086980 460E5182 */ mul.s $f6, $f10, $f14 +/* 0BB4F4 7F086984 C7AA0208 */ lwc1 $f10, 0x208($sp) +/* 0BB4F8 7F086988 46062200 */ add.s $f8, $f4, $f6 +/* 0BB4FC 7F08698C E7A803B4 */ swc1 $f8, 0x3b4($sp) +/* 0BB500 7F086990 E50A048C */ swc1 $f10, 0x48c($t0) +/* 0BB504 7F086994 8E2F0000 */ lw $t7, ($s1) +/* 0BB508 7F086998 C7A40204 */ lwc1 $f4, 0x204($sp) +/* 0BB50C 7F08699C E5E40494 */ swc1 $f4, 0x494($t7) +/* 0BB510 7F0869A0 8E390000 */ lw $t9, ($s1) +/* 0BB514 7F0869A4 8FAA0200 */ lw $t2, 0x200($sp) +/* 0BB518 7F0869A8 AF2A0488 */ sw $t2, 0x488($t9) +/* 0BB51C 7F0869AC 8E2B0000 */ lw $t3, ($s1) +/* 0BB520 7F0869B0 C5661274 */ lwc1 $f6, 0x1274($t3) +/* 0BB524 7F0869B4 4606A032 */ c.eq.s $f20, $f6 +/* 0BB528 7F0869B8 00000000 */ nop +/* 0BB52C 7F0869BC 45000002 */ bc1f .Ljp7F0869C8 +/* 0BB530 7F0869C0 00000000 */ nop +/* 0BB534 7F0869C4 24050001 */ li $a1, 1 +.Ljp7F0869C8: +/* 0BB538 7F0869C8 0FC1F7E1 */ jal sub_GAME_7F07D960 +/* 0BB53C 7F0869CC 00000000 */ nop +.Ljp7F0869D0: +/* 0BB540 7F0869D0 8E280000 */ lw $t0, ($s1) +.Ljp7F0869D4: +/* 0BB544 7F0869D4 C7AA0208 */ lwc1 $f10, 0x208($sp) +/* 0BB548 7F0869D8 C7A60204 */ lwc1 $f6, 0x204($sp) +/* 0BB54C 7F0869DC C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BB550 7F0869E0 C5040494 */ lwc1 $f4, 0x494($t0) +/* 0BB554 7F0869E4 460A4081 */ sub.s $f2, $f8, $f10 +/* 0BB558 7F0869E8 C7A803B4 */ lwc1 $f8, 0x3b4($sp) +/* 0BB55C 7F0869EC 46062381 */ sub.s $f14, $f4, $f6 +/* 0BB560 7F0869F0 46084282 */ mul.s $f10, $f8, $f8 +/* 0BB564 7F0869F4 C7A403AC */ lwc1 $f4, 0x3ac($sp) +/* 0BB568 7F0869F8 46042182 */ mul.s $f6, $f4, $f4 +/* 0BB56C 7F0869FC 46065000 */ add.s $f0, $f10, $f6 +/* 0BB570 7F086A00 46140032 */ c.eq.s $f0, $f20 +/* 0BB574 7F086A04 46000306 */ mov.s $f12, $f0 +/* 0BB578 7F086A08 45010006 */ bc1t .Ljp7F086A24 +/* 0BB57C 7F086A0C 00000000 */ nop +/* 0BB580 7F086A10 46021202 */ mul.s $f8, $f2, $f2 +/* 0BB584 7F086A14 00000000 */ nop +/* 0BB588 7F086A18 460E7102 */ mul.s $f4, $f14, $f14 +/* 0BB58C 7F086A1C 46044280 */ add.s $f10, $f8, $f4 +/* 0BB590 7F086A20 46005303 */ div.s $f12, $f10, $f0 +.Ljp7F086A24: +/* 0BB594 7F086A24 0C007E08 */ jal sqrtf +/* 0BB598 7F086A28 00000000 */ nop +/* 0BB59C 7F086A2C C7A80220 */ lwc1 $f8, 0x220($sp) +/* 0BB5A0 7F086A30 8E280000 */ lw $t0, ($s1) +/* 0BB5A4 7F086A34 46080102 */ mul.s $f4, $f0, $f8 +/* 0BB5A8 7F086A38 C5061278 */ lwc1 $f6, 0x1278($t0) +/* 0BB5AC 7F086A3C 46043280 */ add.s $f10, $f6, $f4 +/* 0BB5B0 7F086A40 E50A1278 */ swc1 $f10, 0x1278($t0) +/* 0BB5B4 7F086A44 C7A6021C */ lwc1 $f6, 0x21c($sp) +/* 0BB5B8 7F086A48 8E280000 */ lw $t0, ($s1) +/* 0BB5BC 7F086A4C 46060102 */ mul.s $f4, $f0, $f6 +/* 0BB5C0 7F086A50 C508127C */ lwc1 $f8, 0x127c($t0) +/* 0BB5C4 7F086A54 46044280 */ add.s $f10, $f8, $f4 +/* 0BB5C8 7F086A58 E50A127C */ swc1 $f10, 0x127c($t0) +.Ljp7F086A5C: +/* 0BB5CC 7F086A5C 8E280000 */ lw $t0, ($s1) +.Ljp7F086A60: +/* 0BB5D0 7F086A60 3C018005 */ lui $at, %hi(D_8005524C) +/* 0BB5D4 7F086A64 C428527C */ lwc1 $f8, %lo(D_8005524C)($at) +/* 0BB5D8 7F086A68 C5060160 */ lwc1 $f6, 0x160($t0) +/* 0BB5DC 7F086A6C 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0BB5E0 7F086A70 C50A00A4 */ lwc1 $f10, 0xa4($t0) +/* 0BB5E4 7F086A74 46083103 */ div.s $f4, $f6, $f8 +/* 0BB5E8 7F086A78 44813000 */ mtc1 $at, $f6 +/* 0BB5EC 7F086A7C C514014C */ lwc1 $f20, 0x14c($t0) +/* 0BB5F0 7F086A80 46065203 */ div.s $f8, $f10, $f6 +/* 0BB5F4 7F086A84 46082080 */ add.s $f2, $f4, $f8 +/* 0BB5F8 7F086A88 0FC23D76 */ jal sub_GAME_7F08EAF8 +/* 0BB5FC 7F086A8C E7A20144 */ swc1 $f2, 0x144($sp) +/* 0BB600 7F086A90 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BB604 7F086A94 44817000 */ mtc1 $at, $f14 +/* 0BB608 7F086A98 C7A20144 */ lwc1 $f2, 0x144($sp) +/* 0BB60C 7F086A9C 4407A000 */ mfc1 $a3, $f20 +/* 0BB610 7F086AA0 46000306 */ mov.s $f12, $f0 +/* 0BB614 7F086AA4 4602703C */ c.lt.s $f14, $f2 +/* 0BB618 7F086AA8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0BB61C 7F086AAC 45020004 */ bc1fl .Ljp7F086AC0 +/* 0BB620 7F086AB0 44817000 */ mtc1 $at, $f14 +/* 0BB624 7F086AB4 10000008 */ b .Ljp7F086AD8 +/* 0BB628 7F086AB8 46007086 */ mov.s $f2, $f14 +/* 0BB62C 7F086ABC 44817000 */ mtc1 $at, $f14 +.Ljp7F086AC0: +/* 0BB630 7F086AC0 00000000 */ nop +/* 0BB634 7F086AC4 460E103C */ c.lt.s $f2, $f14 +/* 0BB638 7F086AC8 00000000 */ nop +/* 0BB63C 7F086ACC 45020003 */ bc1fl .Ljp7F086ADC +/* 0BB640 7F086AD0 8E2C0000 */ lw $t4, ($s1) +/* 0BB644 7F086AD4 46007086 */ mov.s $f2, $f14 +.Ljp7F086AD8: +/* 0BB648 7F086AD8 8E2C0000 */ lw $t4, ($s1) +.Ljp7F086ADC: +/* 0BB64C 7F086ADC 24010001 */ li $at, 1 +/* 0BB650 7F086AE0 44061000 */ mfc1 $a2, $f2 +/* 0BB654 7F086AE4 8D8D04E8 */ lw $t5, 0x4e8($t4) +/* 0BB658 7F086AE8 15A10004 */ bne $t5, $at, .Ljp7F086AFC +/* 0BB65C 7F086AEC 3C018005 */ lui $at, %hi(D_80055250) # $at, 0x8005 +/* 0BB660 7F086AF0 C42A5280 */ lwc1 $f10, %lo(D_80055250)($at) +/* 0BB664 7F086AF4 460A0302 */ mul.s $f12, $f0, $f10 +/* 0BB668 7F086AF8 00000000 */ nop +.Ljp7F086AFC: +/* 0BB66C 7F086AFC 0FC17981 */ jal sub_GAME_7F05E0E4 +/* 0BB670 7F086B00 C7AE0398 */ lwc1 $f14, 0x398($sp) +/* 0BB674 7F086B04 8E2E0000 */ lw $t6, ($s1) +/* 0BB678 7F086B08 3C018005 */ lui $at, %hi(D_80055254) # $at, 0x8005 +/* 0BB67C 7F086B0C C4245284 */ lwc1 $f4, %lo(D_80055254)($at) +/* 0BB680 7F086B10 C5C6015C */ lwc1 $f6, 0x15c($t6) +/* 0BB684 7F086B14 46043302 */ mul.s $f12, $f6, $f4 +/* 0BB688 7F086B18 0FC17AC4 */ jal sub_GAME_7F05E5F0 +/* 0BB68C 7F086B1C 00000000 */ nop +/* 0BB690 7F086B20 3C038003 */ lui $v1, %hi(ptr_playerstank) # $v1, 0x8003 +/* 0BB694 7F086B24 8C636490 */ lw $v1, %lo(ptr_playerstank)($v1) +/* 0BB698 7F086B28 3C188003 */ lui $t8, %hi(in_tank_flag) # $t8, 0x8003 +/* 0BB69C 7F086B2C 50600135 */ beql $v1, $zero, .Ljp7F087004 +/* 0BB6A0 7F086B30 8FA40394 */ lw $a0, 0x394($sp) +/* 0BB6A4 7F086B34 8F186488 */ lw $t8, %lo(in_tank_flag)($t8) +/* 0BB6A8 7F086B38 24010001 */ li $at, 1 +/* 0BB6AC 7F086B3C 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_800799B8) # $t7, 0x8008 +/* 0BB6B0 7F086B40 57010130 */ bnel $t8, $at, .Ljp7F087004 +/* 0BB6B4 7F086B44 8FA40394 */ lw $a0, 0x394($sp) +/* 0BB6B8 7F086B48 8DEF99F8 */ lw $t7, %lo(dword_CODE_bss_800799B8)($t7) +/* 0BB6BC 7F086B4C 24010002 */ li $at, 2 +/* 0BB6C0 7F086B50 55E1012C */ bnel $t7, $at, .Ljp7F087004 +/* 0BB6C4 7F086B54 8FA40394 */ lw $a0, 0x394($sp) +/* 0BB6C8 7F086B58 8C620004 */ lw $v0, 4($v1) +/* 0BB6CC 7F086B5C 00002025 */ move $a0, $zero +/* 0BB6D0 7F086B60 AFA20138 */ sw $v0, 0x138($sp) +/* 0BB6D4 7F086B64 8C4A0014 */ lw $t2, 0x14($v0) +/* 0BB6D8 7F086B68 00408025 */ move $s0, $v0 +/* 0BB6DC 7F086B6C 8D590008 */ lw $t9, 8($t2) +/* 0BB6E0 7F086B70 8F2B0008 */ lw $t3, 8($t9) +/* 0BB6E4 7F086B74 8D6C0014 */ lw $t4, 0x14($t3) +/* 0BB6E8 7F086B78 8D8D0004 */ lw $t5, 4($t4) +/* 0BB6EC 7F086B7C 0FC177BC */ jal get_item_in_hand +/* 0BB6F0 7F086B80 AFAD0130 */ sw $t5, 0x130($sp) +/* 0BB6F4 7F086B84 38430020 */ xori $v1, $v0, 0x20 +/* 0BB6F8 7F086B88 2C640001 */ sltiu $a0, $v1, 1 +/* 0BB6FC 7F086B8C 50800005 */ beql $a0, $zero, .Ljp7F086BA4 +/* 0BB700 7F086B90 AE0400C4 */ sw $a0, 0xc4($s0) +/* 0BB704 7F086B94 0FC1786A */ jal get_hands_firing_status +/* 0BB708 7F086B98 00002025 */ move $a0, $zero +/* 0BB70C 7F086B9C 0002202B */ sltu $a0, $zero, $v0 +/* 0BB710 7F086BA0 AE0400C4 */ sw $a0, 0xc4($s0) +.Ljp7F086BA4: +/* 0BB714 7F086BA4 3C018003 */ lui $at, %hi(D_8003646C) # $at, 0x8003 +/* 0BB718 7F086BA8 C42864AC */ lwc1 $f8, %lo(D_8003646C)($at) +/* 0BB71C 7F086BAC 3C018003 */ lui $at, %hi(D_80036474) # $at, 0x8003 +/* 0BB720 7F086BB0 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0BB724 7F086BB4 E60800C8 */ swc1 $f8, 0xc8($s0) +/* 0BB728 7F086BB8 C42A64B4 */ lwc1 $f10, %lo(D_80036474)($at) +/* 0BB72C 7F086BBC 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BB730 7F086BC0 E60A00CC */ swc1 $f10, 0xcc($s0) +/* 0BB734 7F086BC4 C42664A4 */ lwc1 $f6, %lo(D_80036464)($at) +/* 0BB738 7F086BC8 3C018005 */ lui $at, %hi(D_80055258) # $at, 0x8005 +/* 0BB73C 7F086BCC E60600DC */ swc1 $f6, 0xdc($s0) +/* 0BB740 7F086BD0 C4245288 */ lwc1 $f4, %lo(D_80055258)($at) +/* 0BB744 7F086BD4 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BB748 7F086BD8 C42864A4 */ lwc1 $f8, %lo(D_80036464)($at) +/* 0BB74C 7F086BDC 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 0BB750 7F086BE0 46082301 */ sub.s $f12, $f4, $f8 +/* 0BB754 7F086BE4 8FAE0138 */ lw $t6, 0x138($sp) +/* 0BB758 7F086BE8 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0BB75C 7F086BEC 8DD80014 */ lw $t8, 0x14($t6) +/* 0BB760 7F086BF0 0FC163E7 */ jal matrix_scalar_multiply +/* 0BB764 7F086BF4 C70C0014 */ lwc1 $f12, 0x14($t8) +/* 0BB768 7F086BF8 3C018008 */ lui $at, %hi(flt_CODE_bss_800799AC) # $at, 0x8008 +/* 0BB76C 7F086BFC C42A99E8 */ lwc1 $f10, %lo(flt_CODE_bss_800799A8)($at) +/* 0BB770 7F086C00 C42499EC */ lwc1 $f4, %lo(flt_CODE_bss_800799AC)($at) +/* 0BB774 7F086C04 3C018008 */ lui $at, %hi(flt_CODE_bss_800799B0) # $at, 0x8008 +/* 0BB778 7F086C08 46005187 */ neg.s $f6, $f10 +/* 0BB77C 7F086C0C C42A99F0 */ lwc1 $f10, %lo(flt_CODE_bss_800799B0)($at) +/* 0BB780 7F086C10 E7A600E4 */ swc1 $f6, 0xe4($sp) +/* 0BB784 7F086C14 46002207 */ neg.s $f8, $f4 +/* 0BB788 7F086C18 46005187 */ neg.s $f6, $f10 +/* 0BB78C 7F086C1C E7A800E8 */ swc1 $f8, 0xe8($sp) +/* 0BB790 7F086C20 E7A600EC */ swc1 $f6, 0xec($sp) +/* 0BB794 7F086C24 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0BB798 7F086C28 0FC1623E */ jal matrix_4x4_rotate_vector_in_place +/* 0BB79C 7F086C2C 27A500E4 */ addiu $a1, $sp, 0xe4 +/* 0BB7A0 7F086C30 8E280000 */ lw $t0, ($s1) +/* 0BB7A4 7F086C34 C7A400E4 */ lwc1 $f4, 0xe4($sp) +/* 0BB7A8 7F086C38 C7A600EC */ lwc1 $f6, 0xec($sp) +/* 0BB7AC 7F086C3C C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BB7B0 7F086C40 8FA20138 */ lw $v0, 0x138($sp) +/* 0BB7B4 7F086C44 46082280 */ add.s $f10, $f4, $f8 +/* 0BB7B8 7F086C48 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 0BB7BC 7F086C4C C5040494 */ lwc1 $f4, 0x494($t0) +/* 0BB7C0 7F086C50 46043200 */ add.s $f8, $f6, $f4 +/* 0BB7C4 7F086C54 E7A800EC */ swc1 $f8, 0xec($sp) +/* 0BB7C8 7F086C58 8D0F0488 */ lw $t7, 0x488($t0) +/* 0BB7CC 7F086C5C 8C4A0010 */ lw $t2, 0x10($v0) +/* 0BB7D0 7F086C60 AD4F0014 */ sw $t7, 0x14($t2) +/* 0BB7D4 7F086C64 8E280000 */ lw $t0, ($s1) +/* 0BB7D8 7F086C68 C7AA00EC */ lwc1 $f10, 0xec($sp) +/* 0BB7DC 7F086C6C 8C440010 */ lw $a0, 0x10($v0) +/* 0BB7E0 7F086C70 8D05048C */ lw $a1, 0x48c($t0) +/* 0BB7E4 7F086C74 8D060494 */ lw $a2, 0x494($t0) +/* 0BB7E8 7F086C78 8FA700E4 */ lw $a3, 0xe4($sp) +/* 0BB7EC 7F086C7C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0BB7F0 7F086C80 0FC2C5E5 */ jal sub_GAME_7F0B0BE4 +/* 0BB7F4 7F086C84 24840014 */ addiu $a0, $a0, 0x14 +/* 0BB7F8 7F086C88 8FB90138 */ lw $t9, 0x138($sp) +/* 0BB7FC 7F086C8C 8FA500E4 */ lw $a1, 0xe4($sp) +/* 0BB800 7F086C90 8FA600EC */ lw $a2, 0xec($sp) +/* 0BB804 7F086C94 8F2B0010 */ lw $t3, 0x10($t9) +/* 0BB808 7F086C98 0FC2CD48 */ jal sub_GAME_7F0B2970 +/* 0BB80C 7F086C9C 8D640014 */ lw $a0, 0x14($t3) +/* 0BB810 7F086CA0 3C038005 */ lui $v1, %hi(clock_timer) # $v1, 0x8005 +/* 0BB814 7F086CA4 246383A4 */ addiu $v1, %lo(clock_timer) # addiu $v1, $v1, -0x7c5c +/* 0BB818 7F086CA8 E60000D4 */ swc1 $f0, 0xd4($s0) +/* 0BB81C 7F086CAC 8C6C0000 */ lw $t4, ($v1) +/* 0BB820 7F086CB0 00001025 */ move $v0, $zero +/* 0BB824 7F086CB4 3C018005 */ lui $at, %hi(D_8005525C) # $at, 0x8005 +/* 0BB828 7F086CB8 1980000C */ blez $t4, .Ljp7F086CEC +/* 0BB82C 7F086CBC 00000000 */ nop +/* 0BB830 7F086CC0 C60200D4 */ lwc1 $f2, 0xd4($s0) +/* 0BB834 7F086CC4 C420528C */ lwc1 $f0, %lo(D_8005525C)($at) +/* 0BB838 7F086CC8 C60600D0 */ lwc1 $f6, 0xd0($s0) +.Ljp7F086CCC: +/* 0BB83C 7F086CCC 24420001 */ addiu $v0, $v0, 1 +/* 0BB840 7F086CD0 46003102 */ mul.s $f4, $f6, $f0 +/* 0BB844 7F086CD4 46022200 */ add.s $f8, $f4, $f2 +/* 0BB848 7F086CD8 E60800D0 */ swc1 $f8, 0xd0($s0) +/* 0BB84C 7F086CDC 8C6D0000 */ lw $t5, ($v1) +/* 0BB850 7F086CE0 004D082A */ slt $at, $v0, $t5 +/* 0BB854 7F086CE4 5420FFF9 */ bnezl $at, .Ljp7F086CCC +/* 0BB858 7F086CE8 C60600D0 */ lwc1 $f6, 0xd0($s0) +.Ljp7F086CEC: +/* 0BB85C 7F086CEC 3C018005 */ lui $at, %hi(D_80055260) # $at, 0x8005 +/* 0BB860 7F086CF0 C4265290 */ lwc1 $f6, %lo(D_80055260)($at) +/* 0BB864 7F086CF4 C60A00D0 */ lwc1 $f10, 0xd0($s0) +/* 0BB868 7F086CF8 8FA40130 */ lw $a0, 0x130($sp) +/* 0BB86C 7F086CFC 46065502 */ mul.s $f20, $f10, $f6 +/* 0BB870 7F086D00 0FC0FAD9 */ jal sub_GAME_7F03E864 +/* 0BB874 7F086D04 00000000 */ nop +/* 0BB878 7F086D08 8FA20138 */ lw $v0, 0x138($sp) +/* 0BB87C 7F086D0C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0BB880 7F086D10 44813000 */ mtc1 $at, $f6 +/* 0BB884 7F086D14 8C4E0014 */ lw $t6, 0x14($v0) +/* 0BB888 7F086D18 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0BB88C 7F086D1C 24450018 */ addiu $a1, $v0, 0x18 +/* 0BB890 7F086D20 C5C40014 */ lwc1 $f4, 0x14($t6) +/* 0BB894 7F086D24 46040202 */ mul.s $f8, $f0, $f4 +/* 0BB898 7F086D28 4608A281 */ sub.s $f10, $f20, $f8 +/* 0BB89C 7F086D2C 46065100 */ add.s $f4, $f10, $f6 +/* 0BB8A0 7F086D30 0FC16150 */ jal matrix_4x4_copy +/* 0BB8A4 7F086D34 E7A400E8 */ swc1 $f4, 0xe8($sp) +/* 0BB8A8 7F086D38 8FA40138 */ lw $a0, 0x138($sp) +/* 0BB8AC 7F086D3C C7A000E4 */ lwc1 $f0, 0xe4($sp) +/* 0BB8B0 7F086D40 8C980010 */ lw $t8, 0x10($a0) +/* 0BB8B4 7F086D44 E7000008 */ swc1 $f0, 8($t8) +/* 0BB8B8 7F086D48 E4800058 */ swc1 $f0, 0x58($a0) +/* 0BB8BC 7F086D4C C7A000E8 */ lwc1 $f0, 0xe8($sp) +/* 0BB8C0 7F086D50 8C8F0010 */ lw $t7, 0x10($a0) +/* 0BB8C4 7F086D54 E5E0000C */ swc1 $f0, 0xc($t7) +/* 0BB8C8 7F086D58 E480005C */ swc1 $f0, 0x5c($a0) +/* 0BB8CC 7F086D5C C7A000EC */ lwc1 $f0, 0xec($sp) +/* 0BB8D0 7F086D60 8C8A0010 */ lw $t2, 0x10($a0) +/* 0BB8D4 7F086D64 E5400010 */ swc1 $f0, 0x10($t2) +/* 0BB8D8 7F086D68 0FC15C68 */ jal sub_GAME_7F056CA0 +/* 0BB8DC 7F086D6C E4800060 */ swc1 $f0, 0x60($a0) +/* 0BB8E0 7F086D70 0FC101E1 */ jal sub_GAME_7F040484 +/* 0BB8E4 7F086D74 8FA40138 */ lw $a0, 0x138($sp) +/* 0BB8E8 7F086D78 8E250000 */ lw $a1, ($s1) +/* 0BB8EC 7F086D7C 3C068003 */ lui $a2, %hi(D_80036464) # $a2, 0x8003 +/* 0BB8F0 7F086D80 8CC664A4 */ lw $a2, %lo(D_80036464)($a2) +/* 0BB8F4 7F086D84 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 0BB8F8 7F086D88 0FC1F3AB */ jal sub_GAME_7F07C888 +/* 0BB8FC 7F086D8C 24A5048C */ addiu $a1, $a1, 0x48c +/* 0BB900 7F086D90 8FB90138 */ lw $t9, 0x138($sp) +/* 0BB904 7F086D94 27B00094 */ addiu $s0, $sp, 0x94 +/* 0BB908 7F086D98 02002825 */ move $a1, $s0 +/* 0BB90C 7F086D9C 0FC0F3A3 */ jal sub_GAME_7F03CB8C +/* 0BB910 7F086DA0 8F240010 */ lw $a0, 0x10($t9) +/* 0BB914 7F086DA4 0FC0F9BF */ jal sub_GAME_7F03E3FC +/* 0BB918 7F086DA8 02002025 */ move $a0, $s0 +/* 0BB91C 7F086DAC 3C0B8007 */ lui $t3, %hi(ptr_list_object_lookup_indices) # $t3, 0x8007 +/* 0BB920 7F086DB0 8D6B9C70 */ lw $t3, %lo(ptr_list_object_lookup_indices)($t3) +/* 0BB924 7F086DB4 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 0BB928 7F086DB8 AFAB008C */ sw $t3, 0x8c($sp) +/* 0BB92C 7F086DBC 85620000 */ lh $v0, ($t3) +/* 0BB930 7F086DC0 04420090 */ bltzl $v0, .Ljp7F087004 +/* 0BB934 7F086DC4 8FA40394 */ lw $a0, 0x394($sp) +/* 0BB938 7F086DC8 4481A000 */ mtc1 $at, $f20 +/* 0BB93C 7F086DCC 00000000 */ nop +/* 0BB940 7F086DD0 8FAE0138 */ lw $t6, 0x138($sp) +.Ljp7F086DD4: +/* 0BB944 7F086DD4 00026080 */ sll $t4, $v0, 2 +/* 0BB948 7F086DD8 01826023 */ subu $t4, $t4, $v0 +/* 0BB94C 7F086DDC 000C6080 */ sll $t4, $t4, 2 +/* 0BB950 7F086DE0 8DD80010 */ lw $t8, 0x10($t6) +/* 0BB954 7F086DE4 01826021 */ addu $t4, $t4, $v0 +/* 0BB958 7F086DE8 3C0D8007 */ lui $t5, %hi(pos_data_entry) # $t5, 0x8007 +/* 0BB95C 7F086DEC 25AD9C78 */ addiu $t5, %lo(pos_data_entry) # addiu $t5, $t5, -0x6388 +/* 0BB960 7F086DF0 000C6080 */ sll $t4, $t4, 2 +/* 0BB964 7F086DF4 018D8021 */ addu $s0, $t4, $t5 +/* 0BB968 7F086DF8 5218007C */ beql $s0, $t8, .Ljp7F086FEC +/* 0BB96C 7F086DFC 8FAC008C */ lw $t4, 0x8c($sp) +/* 0BB970 7F086E00 92020000 */ lbu $v0, ($s0) +/* 0BB974 7F086E04 24010003 */ li $at, 3 +/* 0BB978 7F086E08 240F0001 */ li $t7, 1 +/* 0BB97C 7F086E0C 1441005A */ bne $v0, $at, .Ljp7F086F78 +/* 0BB980 7F086E10 02002025 */ move $a0, $s0 +/* 0BB984 7F086E14 AFAF007C */ sw $t7, 0x7c($sp) +/* 0BB988 7F086E18 8E030004 */ lw $v1, 4($s0) +/* 0BB98C 7F086E1C 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BB990 7F086E20 27A60088 */ addiu $a2, $sp, 0x88 +/* 0BB994 7F086E24 27A70084 */ addiu $a3, $sp, 0x84 +/* 0BB998 7F086E28 0FC0F4A2 */ jal sub_GAME_7F03CF88 +/* 0BB99C 7F086E2C AFA3006C */ sw $v1, 0x6c($sp) +/* 0BB9A0 7F086E30 26040008 */ addiu $a0, $s0, 8 +/* 0BB9A4 7F086E34 AFA40050 */ sw $a0, 0x50($sp) +/* 0BB9A8 7F086E38 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 0BB9AC 7F086E3C 0FC0F3F6 */ jal sub_GAME_7F03CCD8 +/* 0BB9B0 7F086E40 24060004 */ li $a2, 4 +/* 0BB9B4 7F086E44 10400031 */ beqz $v0, .Ljp7F086F0C +/* 0BB9B8 7F086E48 8FA3006C */ lw $v1, 0x6c($sp) +/* 0BB9BC 7F086E4C AFA0007C */ sw $zero, 0x7c($sp) +/* 0BB9C0 7F086E50 806A0007 */ lb $t2, 7($v1) +/* 0BB9C4 7F086E54 24010004 */ li $at, 4 +/* 0BB9C8 7F086E58 5541002D */ bnel $t2, $at, .Ljp7F086F10 +/* 0BB9CC 7F086E5C 8FAF007C */ lw $t7, 0x7c($sp) +/* 0BB9D0 7F086E60 8C790014 */ lw $t9, 0x14($v1) +/* 0BB9D4 7F086E64 001959C0 */ sll $t3, $t9, 7 +/* 0BB9D8 7F086E68 05620029 */ bltzl $t3, .Ljp7F086F10 +/* 0BB9DC 7F086E6C 8FAF007C */ lw $t7, 0x7c($sp) +/* 0BB9E0 7F086E70 0FC3021B */ jal get_controls_locked_flag +/* 0BB9E4 7F086E74 AFA3006C */ sw $v1, 0x6c($sp) +/* 0BB9E8 7F086E78 14400024 */ bnez $v0, .Ljp7F086F0C +/* 0BB9EC 7F086E7C 8FA3006C */ lw $v1, 0x6c($sp) +/* 0BB9F0 7F086E80 8C6C0014 */ lw $t4, 0x14($v1) +/* 0BB9F4 7F086E84 3C010100 */ lui $at, 0x100 +/* 0BB9F8 7F086E88 3C028005 */ lui $v0, %hi(D_80048380) # $v0, 0x8005 +/* 0BB9FC 7F086E8C 01816825 */ or $t5, $t4, $at +/* 0BBA00 7F086E90 AC6D0014 */ sw $t5, 0x14($v1) +/* 0BBA04 7F086E94 8C4283B0 */ lw $v0, %lo(D_80048380)($v0) +/* 0BBA08 7F086E98 24010003 */ li $at, 3 +/* 0BBA0C 7F086E9C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0BBA10 7F086EA0 0041001A */ div $zero, $v0, $at +/* 0BBA14 7F086EA4 00001010 */ mfhi $v0 +/* 0BBA18 7F086EA8 28410002 */ slti $at, $v0, 2 +/* 0BBA1C 7F086EAC 1020000E */ beqz $at, .Ljp7F086EE8 +/* 0BBA20 7F086EB0 240500B7 */ li $a1, 183 +/* 0BBA24 7F086EB4 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BBA28 7F086EB8 0C002386 */ jal play_sfx_a1 +/* 0BBA2C 7F086EBC 00003025 */ move $a2, $zero +/* 0BBA30 7F086EC0 00402025 */ move $a0, $v0 +/* 0BBA34 7F086EC4 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 0BBA38 7F086EC8 8FA50050 */ lw $a1, 0x50($sp) +/* 0BBA3C 7F086ECC 3C028005 */ lui $v0, %hi(D_80048380) # $v0, 0x8005 +/* 0BBA40 7F086ED0 8C4283B0 */ lw $v0, %lo(D_80048380)($v0) +/* 0BBA44 7F086ED4 24010003 */ li $at, 3 +/* 0BBA48 7F086ED8 0041001A */ div $zero, $v0, $at +/* 0BBA4C 7F086EDC 00001010 */ mfhi $v0 +/* 0BBA50 7F086EE0 00000000 */ nop +/* 0BBA54 7F086EE4 00000000 */ nop +.Ljp7F086EE8: +/* 0BBA58 7F086EE8 18400008 */ blez $v0, .Ljp7F086F0C +/* 0BBA5C 7F086EEC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0BBA60 7F086EF0 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BBA64 7F086EF4 240500D5 */ li $a1, 213 +/* 0BBA68 7F086EF8 0C002386 */ jal play_sfx_a1 +/* 0BBA6C 7F086EFC 00003025 */ move $a2, $zero +/* 0BBA70 7F086F00 00402025 */ move $a0, $v0 +/* 0BBA74 7F086F04 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 0BBA78 7F086F08 8FA50050 */ lw $a1, 0x50($sp) +.Ljp7F086F0C: +/* 0BBA7C 7F086F0C 8FAF007C */ lw $t7, 0x7c($sp) +.Ljp7F086F10: +/* 0BBA80 7F086F10 8FA40050 */ lw $a0, 0x50($sp) +/* 0BBA84 7F086F14 8FA50080 */ lw $a1, 0x80($sp) +/* 0BBA88 7F086F18 11E00006 */ beqz $t7, .Ljp7F086F34 +/* 0BBA8C 7F086F1C 27A600B4 */ addiu $a2, $sp, 0xb4 +/* 0BBA90 7F086F20 0FC112BB */ jal sub_GAME_7F044718 +/* 0BBA94 7F086F24 24070004 */ li $a3, 4 +/* 0BBA98 7F086F28 50400003 */ beql $v0, $zero, .Ljp7F086F38 +/* 0BBA9C 7F086F2C 8FAA007C */ lw $t2, 0x7c($sp) +/* 0BBAA0 7F086F30 AFA0007C */ sw $zero, 0x7c($sp) +.Ljp7F086F34: +/* 0BBAA4 7F086F34 8FAA007C */ lw $t2, 0x7c($sp) +.Ljp7F086F38: +/* 0BBAA8 7F086F38 8FB90138 */ lw $t9, 0x138($sp) +/* 0BBAAC 7F086F3C 5540002B */ bnezl $t2, .Ljp7F086FEC +/* 0BBAB0 7F086F40 8FAC008C */ lw $t4, 0x8c($sp) +/* 0BBAB4 7F086F44 C7280058 */ lwc1 $f8, 0x58($t9) +/* 0BBAB8 7F086F48 4406A000 */ mfc1 $a2, $f20 +/* 0BBABC 7F086F4C 27A50070 */ addiu $a1, $sp, 0x70 +/* 0BBAC0 7F086F50 E7A80070 */ swc1 $f8, 0x70($sp) +/* 0BBAC4 7F086F54 C60A000C */ lwc1 $f10, 0xc($s0) +/* 0BBAC8 7F086F58 24070001 */ li $a3, 1 +/* 0BBACC 7F086F5C E7AA0074 */ swc1 $f10, 0x74($sp) +/* 0BBAD0 7F086F60 C7260060 */ lwc1 $f6, 0x60($t9) +/* 0BBAD4 7F086F64 E7A60078 */ swc1 $f6, 0x78($sp) +/* 0BBAD8 7F086F68 0FC09EC3 */ jal sub_GAME_7F027804 +/* 0BBADC 7F086F6C 8E040004 */ lw $a0, 4($s0) +/* 0BBAE0 7F086F70 1000001E */ b .Ljp7F086FEC +/* 0BBAE4 7F086F74 8FAC008C */ lw $t4, 0x8c($sp) +.Ljp7F086F78: +/* 0BBAE8 7F086F78 24010001 */ li $at, 1 +/* 0BBAEC 7F086F7C 1441001A */ bne $v0, $at, .Ljp7F086FE8 +/* 0BBAF0 7F086F80 02002025 */ move $a0, $s0 +/* 0BBAF4 7F086F84 27A50064 */ addiu $a1, $sp, 0x64 +/* 0BBAF8 7F086F88 0FC0F3EC */ jal sub_GAME_7F03CCB0 +/* 0BBAFC 7F086F8C 27A60060 */ addiu $a2, $sp, 0x60 +/* 0BBB00 7F086F90 8FA50060 */ lw $a1, 0x60($sp) +/* 0BBB04 7F086F94 8FA40064 */ lw $a0, 0x64($sp) +/* 0BBB08 7F086F98 27A600B4 */ addiu $a2, $sp, 0xb4 +/* 0BBB0C 7F086F9C 58A00013 */ blezl $a1, .Ljp7F086FEC +/* 0BBB10 7F086FA0 8FAC008C */ lw $t4, 0x8c($sp) +/* 0BBB14 7F086FA4 0FC11268 */ jal sub_GAME_7F0446B8 +/* 0BBB18 7F086FA8 24070004 */ li $a3, 4 +/* 0BBB1C 7F086FAC 5040000F */ beql $v0, $zero, .Ljp7F086FEC +/* 0BBB20 7F086FB0 8FAC008C */ lw $t4, 0x8c($sp) +/* 0BBB24 7F086FB4 0FC26F3C */ jal get_cur_playernum +/* 0BBB28 7F086FB8 00000000 */ nop +/* 0BBB2C 7F086FBC 8E060004 */ lw $a2, 4($s0) +/* 0BBB30 7F086FC0 3C05461C */ lui $a1, (0x461C4000 >> 16) # lui $a1, 0x461c +/* 0BBB34 7F086FC4 34A54000 */ ori $a1, (0x461C4000 & 0xFFFF) # ori $a1, $a1, 0x4000 +/* 0BBB38 7F086FC8 AFA20010 */ sw $v0, 0x10($sp) +/* 0BBB3C 7F086FCC 02002025 */ move $a0, $s0 +/* 0BBB40 7F086FD0 24070020 */ li $a3, 32 +/* 0BBB44 7F086FD4 0FC138C0 */ jal sub_GAME_7F04DEFC +/* 0BBB48 7F086FD8 24C60058 */ addiu $a2, $a2, 0x58 +/* 0BBB4C 7F086FDC 240B005A */ li $t3, 90 +/* 0BBB50 7F086FE0 3C018003 */ lui $at, %hi(D_80036490) # $at, 0x8003 +/* 0BBB54 7F086FE4 AC2B64D0 */ sw $t3, %lo(D_80036490)($at) +.Ljp7F086FE8: +/* 0BBB58 7F086FE8 8FAC008C */ lw $t4, 0x8c($sp) +.Ljp7F086FEC: +/* 0BBB5C 7F086FEC 258D0002 */ addiu $t5, $t4, 2 +/* 0BBB60 7F086FF0 AFAD008C */ sw $t5, 0x8c($sp) +/* 0BBB64 7F086FF4 85A20000 */ lh $v0, ($t5) +/* 0BBB68 7F086FF8 0443FF76 */ bgezl $v0, .Ljp7F086DD4 +/* 0BBB6C 7F086FFC 8FAE0138 */ lw $t6, 0x138($sp) +/* 0BBB70 7F087000 8FA40394 */ lw $a0, 0x394($sp) +.Ljp7F087004: +/* 0BBB74 7F087004 0FC20502 */ jal sub_GAME_7F080DF8 +/* 0BBB78 7F087008 8FA50390 */ lw $a1, 0x390($sp) +/* 0BBB7C 7F08700C 0FC206A2 */ jal sub_GAME_7F081478 +/* 0BBB80 7F087010 00000000 */ nop +/* 0BBB84 7F087014 0FC22A35 */ jal sub_GAME_7F08A19C +/* 0BBB88 7F087018 00000000 */ nop +/* 0BBB8C 7F08701C 0FC24697 */ jal get_debug_man_pos_flag +/* 0BBB90 7F087020 00000000 */ nop +/* 0BBB94 7F087024 50400008 */ beql $v0, $zero, .Ljp7F087048 +/* 0BBB98 7F087028 8FBF002C */ lw $ra, 0x2c($sp) +/* 0BBB9C 7F08702C 8E280000 */ lw $t0, ($s1) +/* 0BBBA0 7F087030 27A7005C */ addiu $a3, $sp, 0x5c +/* 0BBBA4 7F087034 8D040488 */ lw $a0, 0x488($t0) +/* 0BBBA8 7F087038 8D05048C */ lw $a1, 0x48c($t0) +/* 0BBBAC 7F08703C 0FC2CDF7 */ jal copy_tile_RGB_as_24bit +/* 0BBBB0 7F087040 8D060494 */ lw $a2, 0x494($t0) +/* 0BBBB4 7F087044 8FBF002C */ lw $ra, 0x2c($sp) +.Ljp7F087048: +/* 0BBBB8 7F087048 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0BBBBC 7F08704C 8FB00024 */ lw $s0, 0x24($sp) +/* 0BBBC0 7F087050 8FB10028 */ lw $s1, 0x28($sp) +/* 0BBBC4 7F087054 03E00008 */ jr $ra +/* 0BBBC8 7F087058 27BD03B8 */ addiu $sp, $sp, 0x3b8 + +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F086990(s32 arg0, s32 arg1, ? arg2, ? arg_unalignedA, ? arg3, ? arg_unalignedE) { + ? sp30; + ? sp3C; + f32 sp40; + f32 sp48; + ? sp4C; + ? sp58; + ? sp64; + + // Node 0 + sp64 = (?32) D_80036800; + sp64.unk4 = (?32) D_80036800.unk4; + sp64.unk8 = (?32) D_80036800.unk8; + sp58 = (?32) D_8003680C; + sp58.unk4 = (?32) D_8003680C.unk4; + sp58.unk8 = (?32) D_8003680C.unk8; + sp4C = (?32) D_80036818; + sp4C.unk4 = (?32) D_80036818.unk4; + sp4C.unk8 = (?32) D_80036818.unk8; + sp40 = (?32) D_80036824; + sp40.unk4 = (?32) D_80036824.unk4; + sp40.unk8 = (?32) D_80036824.unk8; + sub_GAME_7F083FC8(); + sub_GAME_7F084360(); + controller_gameplay_interaction(0, 0, 0, 0); + sub_GAME_7F081790(); + sub_GAME_7F080B34(0, 0, 0); + if ((0.0f != flt_CODE_bss_80079990) || (0.0f != flt_CODE_bss_80079990.unk8)) + { + // Node 2 + sp40 = (f32) (sp40 + (flt_CODE_bss_80079990 * global_timer_delta)); + sp48 = (f32) (sp48 + (flt_CODE_bss_80079990.unk8 * global_timer_delta)); + } + else + { + + } + // Node 3 + sp40 = (f32) (sp40 + (((pPlayer->field_504 * pPlayer->field_498) - (pPlayer->field_4FC * pPlayer->field_4A0)) * global_timer_delta)); + sp48 = (f32) (sp48 + (((pPlayer->field_504 * pPlayer->field_4A0) + (pPlayer->field_4FC * pPlayer->field_498)) * global_timer_delta)); + sub_GAME_7F07D960(0.0f, &sp40, 1); + sub_GAME_7F080DF8(0, 0, 0); + sub_GAME_7F081478(); + if (cameramode != 4) + { + // Node 4 + if (cameramode != 0xa) + { + // Node 5 + if (cameramode != 0xa) + { + // Node 7 + sub_GAME_7F07B56C(arg_unalignedA, arg_unalignedE, &sp64, &sp58, &sp4C, &sp3C, &sp30); + setptrBONDdata(1); + // Node 8 + return setptrBONDdata(0); + } + } + } + // Node 6 + return setptrBONDdata(0); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F086990 +/* 0BB4C0 7F086990 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0BB4C4 7F086994 3C0F8003 */ lui $t7, %hi(D_80036800) +/* 0BB4C8 7F086998 AFBF0024 */ sw $ra, 0x24($sp) +/* 0BB4CC 7F08699C AFA40070 */ sw $a0, 0x70($sp) +/* 0BB4D0 7F0869A0 AFA50074 */ sw $a1, 0x74($sp) +/* 0BB4D4 7F0869A4 AFA60078 */ sw $a2, 0x78($sp) +/* 0BB4D8 7F0869A8 AFA7007C */ sw $a3, 0x7c($sp) +/* 0BB4DC 7F0869AC 25EF6800 */ addiu $t7, %lo(D_80036800) # addiu $t7, $t7, 0x6800 +/* 0BB4E0 7F0869B0 8DE10000 */ lw $at, ($t7) +/* 0BB4E4 7F0869B4 27AE0064 */ addiu $t6, $sp, 0x64 +/* 0BB4E8 7F0869B8 8DE80004 */ lw $t0, 4($t7) +/* 0BB4EC 7F0869BC ADC10000 */ sw $at, ($t6) +/* 0BB4F0 7F0869C0 8DE10008 */ lw $at, 8($t7) +/* 0BB4F4 7F0869C4 3C0A8003 */ lui $t2, %hi(D_8003680C) +/* 0BB4F8 7F0869C8 254A680C */ addiu $t2, %lo(D_8003680C) # addiu $t2, $t2, 0x680c +/* 0BB4FC 7F0869CC ADC80004 */ sw $t0, 4($t6) +/* 0BB500 7F0869D0 ADC10008 */ sw $at, 8($t6) +/* 0BB504 7F0869D4 8D410000 */ lw $at, ($t2) +/* 0BB508 7F0869D8 27A90058 */ addiu $t1, $sp, 0x58 +/* 0BB50C 7F0869DC 8D4D0004 */ lw $t5, 4($t2) +/* 0BB510 7F0869E0 AD210000 */ sw $at, ($t1) +/* 0BB514 7F0869E4 8D410008 */ lw $at, 8($t2) +/* 0BB518 7F0869E8 3C188003 */ lui $t8, %hi(D_80036818) +/* 0BB51C 7F0869EC 27186818 */ addiu $t8, %lo(D_80036818) # addiu $t8, $t8, 0x6818 +/* 0BB520 7F0869F0 AD2D0004 */ sw $t5, 4($t1) +/* 0BB524 7F0869F4 AD210008 */ sw $at, 8($t1) +/* 0BB528 7F0869F8 8F010000 */ lw $at, ($t8) +/* 0BB52C 7F0869FC 27B9004C */ addiu $t9, $sp, 0x4c +/* 0BB530 7F086A00 8F080004 */ lw $t0, 4($t8) +/* 0BB534 7F086A04 AF210000 */ sw $at, ($t9) +/* 0BB538 7F086A08 8F010008 */ lw $at, 8($t8) +/* 0BB53C 7F086A0C 3C0B8003 */ lui $t3, %hi(D_80036824) +/* 0BB540 7F086A10 256B6824 */ addiu $t3, %lo(D_80036824) # addiu $t3, $t3, 0x6824 +/* 0BB544 7F086A14 AF280004 */ sw $t0, 4($t9) +/* 0BB548 7F086A18 AF210008 */ sw $at, 8($t9) +/* 0BB54C 7F086A1C 8D610000 */ lw $at, ($t3) +/* 0BB550 7F086A20 27AC0040 */ addiu $t4, $sp, 0x40 +/* 0BB554 7F086A24 8D6D0004 */ lw $t5, 4($t3) +/* 0BB558 7F086A28 AD810000 */ sw $at, ($t4) +/* 0BB55C 7F086A2C 8D610008 */ lw $at, 8($t3) +/* 0BB560 7F086A30 AD8D0004 */ sw $t5, 4($t4) +/* 0BB564 7F086A34 0FC20FF2 */ jal sub_GAME_7F083FC8 +/* 0BB568 7F086A38 AD810008 */ sw $at, 8($t4) +/* 0BB56C 7F086A3C 0FC210D8 */ jal sub_GAME_7F084360 +/* 0BB570 7F086A40 00000000 */ nop +/* 0BB574 7F086A44 00002025 */ move $a0, $zero +/* 0BB578 7F086A48 00002825 */ move $a1, $zero +/* 0BB57C 7F086A4C 00003025 */ move $a2, $zero +/* 0BB580 7F086A50 0FC2065D */ jal controller_gameplay_interaction +/* 0BB584 7F086A54 00003825 */ move $a3, $zero +/* 0BB588 7F086A58 0FC205E4 */ jal sub_GAME_7F081790 +/* 0BB58C 7F086A5C 00000000 */ nop +/* 0BB590 7F086A60 44806000 */ mtc1 $zero, $f12 +/* 0BB594 7F086A64 00000000 */ nop +/* 0BB598 7F086A68 44066000 */ mfc1 $a2, $f12 +/* 0BB59C 7F086A6C 0FC202CD */ jal sub_GAME_7F080B34 +/* 0BB5A0 7F086A70 46006386 */ mov.s $f14, $f12 +/* 0BB5A4 7F086A74 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079990) +/* 0BB5A8 7F086A78 24429990 */ addiu $v0, %lo(flt_CODE_bss_80079990) # addiu $v0, $v0, -0x6670 +/* 0BB5AC 7F086A7C 44806000 */ mtc1 $zero, $f12 +/* 0BB5B0 7F086A80 C4420000 */ lwc1 $f2, ($v0) +/* 0BB5B4 7F086A84 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BB5B8 7F086A88 46026032 */ c.eq.s $f12, $f2 +/* 0BB5BC 7F086A8C 00000000 */ nop +/* 0BB5C0 7F086A90 45000006 */ bc1f .L7F086AAC +/* 0BB5C4 7F086A94 00000000 */ nop +/* 0BB5C8 7F086A98 C4440008 */ lwc1 $f4, 8($v0) +/* 0BB5CC 7F086A9C 46046032 */ c.eq.s $f12, $f4 +/* 0BB5D0 7F086AA0 00000000 */ nop +/* 0BB5D4 7F086AA4 4501000B */ bc1t .L7F086AD4 +/* 0BB5D8 7F086AA8 00000000 */ nop +.L7F086AAC: +/* 0BB5DC 7F086AAC C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 0BB5E0 7F086AB0 C4520008 */ lwc1 $f18, 8($v0) +/* 0BB5E4 7F086AB4 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 0BB5E8 7F086AB8 46001202 */ mul.s $f8, $f2, $f0 +/* 0BB5EC 7F086ABC C7B00048 */ lwc1 $f16, 0x48($sp) +/* 0BB5F0 7F086AC0 46009102 */ mul.s $f4, $f18, $f0 +/* 0BB5F4 7F086AC4 46083280 */ add.s $f10, $f6, $f8 +/* 0BB5F8 7F086AC8 46048180 */ add.s $f6, $f16, $f4 +/* 0BB5FC 7F086ACC E7AA0040 */ swc1 $f10, 0x40($sp) +/* 0BB600 7F086AD0 E7A60048 */ swc1 $f6, 0x48($sp) +.L7F086AD4: +/* 0BB604 7F086AD4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BB608 7F086AD8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BB60C 7F086ADC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BB610 7F086AE0 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 0BB614 7F086AE4 C4480504 */ lwc1 $f8, 0x504($v0) +/* 0BB618 7F086AE8 C44A0498 */ lwc1 $f10, 0x498($v0) +/* 0BB61C 7F086AEC C45004FC */ lwc1 $f16, 0x4fc($v0) +/* 0BB620 7F086AF0 C44404A0 */ lwc1 $f4, 0x4a0($v0) +/* 0BB624 7F086AF4 460A4482 */ mul.s $f18, $f8, $f10 +/* 0BB628 7F086AF8 27A40040 */ addiu $a0, $sp, 0x40 +/* 0BB62C 7F086AFC 24050001 */ li $a1, 1 +/* 0BB630 7F086B00 46048182 */ mul.s $f6, $f16, $f4 +/* 0BB634 7F086B04 C7B00040 */ lwc1 $f16, 0x40($sp) +/* 0BB638 7F086B08 46069201 */ sub.s $f8, $f18, $f6 +/* 0BB63C 7F086B0C 46004282 */ mul.s $f10, $f8, $f0 +/* 0BB640 7F086B10 460A8100 */ add.s $f4, $f16, $f10 +/* 0BB644 7F086B14 E7A40040 */ swc1 $f4, 0x40($sp) +/* 0BB648 7F086B18 C44604A0 */ lwc1 $f6, 0x4a0($v0) +/* 0BB64C 7F086B1C C4520504 */ lwc1 $f18, 0x504($v0) +/* 0BB650 7F086B20 C44A0498 */ lwc1 $f10, 0x498($v0) +/* 0BB654 7F086B24 C45004FC */ lwc1 $f16, 0x4fc($v0) +/* 0BB658 7F086B28 46069202 */ mul.s $f8, $f18, $f6 +/* 0BB65C 7F086B2C 00000000 */ nop +/* 0BB660 7F086B30 460A8102 */ mul.s $f4, $f16, $f10 +/* 0BB664 7F086B34 C7B00048 */ lwc1 $f16, 0x48($sp) +/* 0BB668 7F086B38 46044480 */ add.s $f18, $f8, $f4 +/* 0BB66C 7F086B3C 46009182 */ mul.s $f6, $f18, $f0 +/* 0BB670 7F086B40 46068280 */ add.s $f10, $f16, $f6 +/* 0BB674 7F086B44 0FC1F658 */ jal sub_GAME_7F07D960 +/* 0BB678 7F086B48 E7AA0048 */ swc1 $f10, 0x48($sp) +/* 0BB67C 7F086B4C 44806000 */ mtc1 $zero, $f12 +/* 0BB680 7F086B50 00002025 */ move $a0, $zero +/* 0BB684 7F086B54 44056000 */ mfc1 $a1, $f12 +/* 0BB688 7F086B58 0FC2037E */ jal sub_GAME_7F080DF8 +/* 0BB68C 7F086B5C 00000000 */ nop +/* 0BB690 7F086B60 0FC2051E */ jal sub_GAME_7F081478 +/* 0BB694 7F086B64 00000000 */ nop +/* 0BB698 7F086B68 3C028003 */ lui $v0, %hi(cameramode) +/* 0BB69C 7F086B6C 8C426494 */ lw $v0, %lo(cameramode)($v0) +/* 0BB6A0 7F086B70 24010008 */ li $at, 8 +/* 0BB6A4 7F086B74 10410005 */ beq $v0, $at, .L7F086B8C +/* 0BB6A8 7F086B78 24010004 */ li $at, 4 +/* 0BB6AC 7F086B7C 10410003 */ beq $v0, $at, .L7F086B8C +/* 0BB6B0 7F086B80 2401000A */ li $at, 10 +/* 0BB6B4 7F086B84 14410005 */ bne $v0, $at, .L7F086B9C +/* 0BB6B8 7F086B88 97A4007A */ lhu $a0, 0x7a($sp) +.L7F086B8C: +/* 0BB6BC 7F086B8C 0FC1E694 */ jal setptrBONDdata +/* 0BB6C0 7F086B90 00002025 */ move $a0, $zero +/* 0BB6C4 7F086B94 10000015 */ b .L7F086BEC +/* 0BB6C8 7F086B98 8FBF0024 */ lw $ra, 0x24($sp) +.L7F086B9C: +/* 0BB6CC 7F086B9C 27AF004C */ addiu $t7, $sp, 0x4c +/* 0BB6D0 7F086BA0 27AE003C */ addiu $t6, $sp, 0x3c +/* 0BB6D4 7F086BA4 27B90030 */ addiu $t9, $sp, 0x30 +/* 0BB6D8 7F086BA8 AFB90018 */ sw $t9, 0x18($sp) +/* 0BB6DC 7F086BAC AFAE0014 */ sw $t6, 0x14($sp) +/* 0BB6E0 7F086BB0 AFAF0010 */ sw $t7, 0x10($sp) +/* 0BB6E4 7F086BB4 97A5007E */ lhu $a1, 0x7e($sp) +/* 0BB6E8 7F086BB8 27A60064 */ addiu $a2, $sp, 0x64 +/* 0BB6EC 7F086BBC 0FC1ED5B */ jal sub_GAME_7F07B56C +/* 0BB6F0 7F086BC0 27A70058 */ addiu $a3, $sp, 0x58 +/* 0BB6F4 7F086BC4 0FC1E694 */ jal setptrBONDdata +/* 0BB6F8 7F086BC8 24040001 */ li $a0, 1 +/* 0BB6FC 7F086BCC 27B80030 */ addiu $t8, $sp, 0x30 +/* 0BB700 7F086BD0 AFB80010 */ sw $t8, 0x10($sp) +/* 0BB704 7F086BD4 27A40064 */ addiu $a0, $sp, 0x64 +/* 0BB708 7F086BD8 27A50058 */ addiu $a1, $sp, 0x58 +/* 0BB70C 7F086BDC 27A6004C */ addiu $a2, $sp, 0x4c +/* 0BB710 7F086BE0 0FC1E698 */ jal sub_GAME_7F079A60 +/* 0BB714 7F086BE4 8FA7003C */ lw $a3, 0x3c($sp) +/* 0BB718 7F086BE8 8FBF0024 */ lw $ra, 0x24($sp) +.L7F086BEC: +/* 0BB71C 7F086BEC 27BD0070 */ addiu $sp, $sp, 0x70 +/* 0BB720 7F086BF0 03E00008 */ jr $ra +/* 0BB724 7F086BF4 00000000 */ nop +) +#endif + + + + + +int getWidth320or440(void) { + if (camera_8003642C != 0) + { + return 440; + } + return 320; +} + +int getHeight330or240(void) { + if (camera_8003642C != 0) + { + return 330; + } + return 240; +} + +s32 get_curplayer_viewport_width(void) +{ + if (get_num_players() >= 3) + { + return 159; + } + if (camera_8003642C != 0) + { + return 440; + } + if (cur_player_get_screen_setting() == 1) + { + return 320; + } + if (cur_player_get_screen_setting() == 2) + { + return 320; + } + return 320; +} + +s32 get_curplayer_viewport_ulx(void) +{ + + if (2 < get_num_players()) { + if ((get_cur_playernum() == 1) || (get_cur_playernum() == 3)) { + return 0xa1; + } + } + return 0; +} + + + + +#ifdef NONMATCHING +s32 get_curplayer_viewport_height(void) +{ + if (get_num_players() >= 2) + { + return 0x6d; + } + if (camera_8003642C != 0) + { + if (cur_player_get_screen_setting() == 1) + { + return 0xf8; + } + if (cur_player_get_screen_setting() != 2) + { + return 0x130; + } + return 0xbe; + } + if (cur_player_get_screen_setting() == 1) + { + return (s32) (((s32) (40.0f * sub_GAME_7F07EA78()) + 0xb4) << 0x10) >> 0x10; + } + if (cur_player_get_screen_setting() == 2) + { + return (s32) (((s32) (84.0f * sub_GAME_7F07EA78()) + 0x88) << 0x10) >> 0x10; + } + return 0xdc; +} +#else +GLOBAL_ASM( +.text +glabel get_curplayer_viewport_height +/* 0BB854 7F086D24 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0BB858 7F086D28 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BB85C 7F086D2C 0FC26919 */ jal get_num_players +/* 0BB860 7F086D30 00000000 */ nop +/* 0BB864 7F086D34 28410002 */ slti $at, $v0, 2 +/* 0BB868 7F086D38 14200003 */ bnez $at, .L7F086D48 +/* 0BB86C 7F086D3C 3C0E8003 */ lui $t6, %hi(camera_8003642C) +/* 0BB870 7F086D40 10000039 */ b .L7F086E28 +/* 0BB874 7F086D44 2402006D */ li $v0, 109 +.L7F086D48: +/* 0BB878 7F086D48 8DCE642C */ lw $t6, %lo(camera_8003642C)($t6) +/* 0BB87C 7F086D4C 11C00011 */ beqz $t6, .L7F086D94 +/* 0BB880 7F086D50 00000000 */ nop +/* 0BB884 7F086D54 0FC293B2 */ jal cur_player_get_screen_setting +/* 0BB888 7F086D58 00000000 */ nop +/* 0BB88C 7F086D5C 24010001 */ li $at, 1 +/* 0BB890 7F086D60 14410003 */ bne $v0, $at, .L7F086D70 +/* 0BB894 7F086D64 00000000 */ nop +/* 0BB898 7F086D68 1000002F */ b .L7F086E28 +/* 0BB89C 7F086D6C 240200F8 */ li $v0, 248 +.L7F086D70: +/* 0BB8A0 7F086D70 0FC293B2 */ jal cur_player_get_screen_setting +/* 0BB8A4 7F086D74 00000000 */ nop +/* 0BB8A8 7F086D78 24010002 */ li $at, 2 +/* 0BB8AC 7F086D7C 14410003 */ bne $v0, $at, .L7F086D8C +/* 0BB8B0 7F086D80 00000000 */ nop +/* 0BB8B4 7F086D84 10000028 */ b .L7F086E28 +/* 0BB8B8 7F086D88 240200BE */ li $v0, 190 +.L7F086D8C: +/* 0BB8BC 7F086D8C 10000026 */ b .L7F086E28 +/* 0BB8C0 7F086D90 24020130 */ li $v0, 304 +.L7F086D94: +/* 0BB8C4 7F086D94 0FC293B2 */ jal cur_player_get_screen_setting +/* 0BB8C8 7F086D98 00000000 */ nop +/* 0BB8CC 7F086D9C 24010001 */ li $at, 1 +/* 0BB8D0 7F086DA0 1441000E */ bne $v0, $at, .L7F086DDC +/* 0BB8D4 7F086DA4 00000000 */ nop +/* 0BB8D8 7F086DA8 0FC1FA9E */ jal sub_GAME_7F07EA78 +/* 0BB8DC 7F086DAC 00000000 */ nop +/* 0BB8E0 7F086DB0 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0BB8E4 7F086DB4 44812000 */ mtc1 $at, $f4 +/* 0BB8E8 7F086DB8 00000000 */ nop +/* 0BB8EC 7F086DBC 46002182 */ mul.s $f6, $f4, $f0 +/* 0BB8F0 7F086DC0 4600320D */ trunc.w.s $f8, $f6 +/* 0BB8F4 7F086DC4 44024000 */ mfc1 $v0, $f8 +/* 0BB8F8 7F086DC8 00000000 */ nop +/* 0BB8FC 7F086DCC 244200B4 */ addiu $v0, $v0, 0xb4 +/* 0BB900 7F086DD0 0002C400 */ sll $t8, $v0, 0x10 +/* 0BB904 7F086DD4 10000014 */ b .L7F086E28 +/* 0BB908 7F086DD8 00181403 */ sra $v0, $t8, 0x10 +.L7F086DDC: +/* 0BB90C 7F086DDC 0FC293B2 */ jal cur_player_get_screen_setting +/* 0BB910 7F086DE0 00000000 */ nop +/* 0BB914 7F086DE4 24010002 */ li $at, 2 +/* 0BB918 7F086DE8 5441000F */ bnel $v0, $at, .L7F086E28 +/* 0BB91C 7F086DEC 240200DC */ li $v0, 220 +/* 0BB920 7F086DF0 0FC1FA9E */ jal sub_GAME_7F07EA78 +/* 0BB924 7F086DF4 00000000 */ nop +/* 0BB928 7F086DF8 3C0142A8 */ li $at, 0x42A80000 # 84.000000 +/* 0BB92C 7F086DFC 44815000 */ mtc1 $at, $f10 +/* 0BB930 7F086E00 00000000 */ nop +/* 0BB934 7F086E04 46005402 */ mul.s $f16, $f10, $f0 +/* 0BB938 7F086E08 4600848D */ trunc.w.s $f18, $f16 +/* 0BB93C 7F086E0C 44029000 */ mfc1 $v0, $f18 +/* 0BB940 7F086E10 00000000 */ nop +/* 0BB944 7F086E14 24420088 */ addiu $v0, $v0, 0x88 +/* 0BB948 7F086E18 00024C00 */ sll $t1, $v0, 0x10 +/* 0BB94C 7F086E1C 10000002 */ b .L7F086E28 +/* 0BB950 7F086E20 00091403 */ sra $v0, $t1, 0x10 +/* 0BB954 7F086E24 240200DC */ li $v0, 220 +.L7F086E28: +/* 0BB958 7F086E28 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BB95C 7F086E2C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0BB960 7F086E30 03E00008 */ jr $ra +/* 0BB964 7F086E34 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_curplayer_viewport_uly(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_curplayer_viewport_uly +/* 0BB968 7F086E38 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0BB96C 7F086E3C AFBF0014 */ sw $ra, 0x14($sp) +/* 0BB970 7F086E40 0FC26919 */ jal get_num_players +/* 0BB974 7F086E44 00000000 */ nop +/* 0BB978 7F086E48 24010002 */ li $at, 2 +/* 0BB97C 7F086E4C 14410009 */ bne $v0, $at, .L7F086E74 +/* 0BB980 7F086E50 00000000 */ nop +/* 0BB984 7F086E54 0FC26C54 */ jal get_cur_playernum +/* 0BB988 7F086E58 00000000 */ nop +/* 0BB98C 7F086E5C 14400003 */ bnez $v0, .L7F086E6C +/* 0BB990 7F086E60 00000000 */ nop +/* 0BB994 7F086E64 10000049 */ b .L7F086F8C +/* 0BB998 7F086E68 2402000A */ li $v0, 10 +.L7F086E6C: +/* 0BB99C 7F086E6C 10000047 */ b .L7F086F8C +/* 0BB9A0 7F086E70 24020079 */ li $v0, 121 +.L7F086E74: +/* 0BB9A4 7F086E74 0FC26919 */ jal get_num_players +/* 0BB9A8 7F086E78 00000000 */ nop +/* 0BB9AC 7F086E7C 28410003 */ slti $at, $v0, 3 +/* 0BB9B0 7F086E80 1420000A */ bnez $at, .L7F086EAC +/* 0BB9B4 7F086E84 3C0E8003 */ lui $t6, %hi(camera_8003642C) +/* 0BB9B8 7F086E88 0FC26C54 */ jal get_cur_playernum +/* 0BB9BC 7F086E8C 00000000 */ nop +/* 0BB9C0 7F086E90 28410002 */ slti $at, $v0, 2 +/* 0BB9C4 7F086E94 10200003 */ beqz $at, .L7F086EA4 +/* 0BB9C8 7F086E98 00000000 */ nop +/* 0BB9CC 7F086E9C 1000003B */ b .L7F086F8C +/* 0BB9D0 7F086EA0 2402000A */ li $v0, 10 +.L7F086EA4: +/* 0BB9D4 7F086EA4 10000039 */ b .L7F086F8C +/* 0BB9D8 7F086EA8 24020079 */ li $v0, 121 +.L7F086EAC: +/* 0BB9DC 7F086EAC 8DCE642C */ lw $t6, %lo(camera_8003642C)($t6) +/* 0BB9E0 7F086EB0 11C00011 */ beqz $t6, .L7F086EF8 +/* 0BB9E4 7F086EB4 00000000 */ nop +/* 0BB9E8 7F086EB8 0FC293B2 */ jal cur_player_get_screen_setting +/* 0BB9EC 7F086EBC 00000000 */ nop +/* 0BB9F0 7F086EC0 24010001 */ li $at, 1 +/* 0BB9F4 7F086EC4 14410003 */ bne $v0, $at, .L7F086ED4 +/* 0BB9F8 7F086EC8 00000000 */ nop +/* 0BB9FC 7F086ECC 1000002F */ b .L7F086F8C +/* 0BBA00 7F086ED0 24020029 */ li $v0, 41 +.L7F086ED4: +/* 0BBA04 7F086ED4 0FC293B2 */ jal cur_player_get_screen_setting +/* 0BBA08 7F086ED8 00000000 */ nop +/* 0BBA0C 7F086EDC 24010002 */ li $at, 2 +/* 0BBA10 7F086EE0 14410003 */ bne $v0, $at, .L7F086EF0 +/* 0BBA14 7F086EE4 00000000 */ nop +/* 0BBA18 7F086EE8 10000028 */ b .L7F086F8C +/* 0BBA1C 7F086EEC 24020046 */ li $v0, 70 +.L7F086EF0: +/* 0BBA20 7F086EF0 10000026 */ b .L7F086F8C +/* 0BBA24 7F086EF4 2402000D */ li $v0, 13 +.L7F086EF8: +/* 0BBA28 7F086EF8 0FC293B2 */ jal cur_player_get_screen_setting +/* 0BBA2C 7F086EFC 00000000 */ nop +/* 0BBA30 7F086F00 24010001 */ li $at, 1 +/* 0BBA34 7F086F04 1441000E */ bne $v0, $at, .L7F086F40 +/* 0BBA38 7F086F08 00000000 */ nop +/* 0BBA3C 7F086F0C 0FC1FA9E */ jal sub_GAME_7F07EA78 +/* 0BBA40 7F086F10 00000000 */ nop +/* 0BBA44 7F086F14 3C01C1A0 */ li $at, 0xC1A00000 # -20.000000 +/* 0BBA48 7F086F18 44812000 */ mtc1 $at, $f4 +/* 0BBA4C 7F086F1C 00000000 */ nop +/* 0BBA50 7F086F20 46002182 */ mul.s $f6, $f4, $f0 +/* 0BBA54 7F086F24 4600320D */ trunc.w.s $f8, $f6 +/* 0BBA58 7F086F28 44024000 */ mfc1 $v0, $f8 +/* 0BBA5C 7F086F2C 00000000 */ nop +/* 0BBA60 7F086F30 2442001E */ addiu $v0, $v0, 0x1e +/* 0BBA64 7F086F34 0002C400 */ sll $t8, $v0, 0x10 +/* 0BBA68 7F086F38 10000014 */ b .L7F086F8C +/* 0BBA6C 7F086F3C 00181403 */ sra $v0, $t8, 0x10 +.L7F086F40: +/* 0BBA70 7F086F40 0FC293B2 */ jal cur_player_get_screen_setting +/* 0BBA74 7F086F44 00000000 */ nop +/* 0BBA78 7F086F48 24010002 */ li $at, 2 +/* 0BBA7C 7F086F4C 5441000F */ bnel $v0, $at, .L7F086F8C +/* 0BBA80 7F086F50 2402000A */ li $v0, 10 +/* 0BBA84 7F086F54 0FC1FA9E */ jal sub_GAME_7F07EA78 +/* 0BBA88 7F086F58 00000000 */ nop +/* 0BBA8C 7F086F5C 3C01C228 */ li $at, 0xC2280000 # -42.000000 +/* 0BBA90 7F086F60 44815000 */ mtc1 $at, $f10 +/* 0BBA94 7F086F64 00000000 */ nop +/* 0BBA98 7F086F68 46005402 */ mul.s $f16, $f10, $f0 +/* 0BBA9C 7F086F6C 4600848D */ trunc.w.s $f18, $f16 +/* 0BBAA0 7F086F70 44029000 */ mfc1 $v0, $f18 +/* 0BBAA4 7F086F74 00000000 */ nop +/* 0BBAA8 7F086F78 24420034 */ addiu $v0, $v0, 0x34 +/* 0BBAAC 7F086F7C 00024C00 */ sll $t1, $v0, 0x10 +/* 0BBAB0 7F086F80 10000002 */ b .L7F086F8C +/* 0BBAB4 7F086F84 00091403 */ sra $v0, $t1, 0x10 +/* 0BBAB8 7F086F88 2402000A */ li $v0, 10 +.L7F086F8C: +/* 0BBABC 7F086F8C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BBAC0 7F086F90 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0BBAC4 7F086F94 03E00008 */ jr $ra +/* 0BBAC8 7F086F98 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void possibly_reset_viewport_options_for_player(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80055264 +.word 0x3fe38e39 /*1.7777778*/ +glabel D_80055268 +.word 0x3fe38e39 /*1.7777778*/ +.text +glabel possibly_reset_viewport_options_for_player +/* 0BBACC 7F086F9C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0BBAD0 7F086FA0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BBAD4 7F086FA4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BBAD8 7F086FA8 44816000 */ mtc1 $at, $f12 +/* 0BBADC 7F086FAC AFA40020 */ sw $a0, 0x20($sp) +/* 0BBAE0 7F086FB0 AFA50024 */ sw $a1, 0x24($sp) +/* 0BBAE4 7F086FB4 0FC26C85 */ jal set_cur_player_fovy +/* 0BBAE8 7F086FB8 AFA60028 */ sw $a2, 0x28($sp) +/* 0BBAEC 7F086FBC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BBAF0 7F086FC0 44816000 */ mtc1 $at, $f12 +/* 0BBAF4 7F086FC4 0C001151 */ jal setvideo_far +/* 0BBAF8 7F086FC8 00000000 */ nop +/* 0BBAFC 7F086FCC 3C038003 */ lui $v1, %hi(camera_80036430) +/* 0BBB00 7F086FD0 24636430 */ addiu $v1, %lo(camera_80036430) # addiu $v1, $v1, 0x6430 +/* 0BBB04 7F086FD4 8C620000 */ lw $v0, ($v1) +/* 0BBB08 7F086FD8 10400016 */ beqz $v0, .L7F087034 +/* 0BBB0C 7F086FDC 28410004 */ slti $at, $v0, 4 +/* 0BBB10 7F086FE0 14200010 */ bnez $at, .L7F087024 +/* 0BBB14 7F086FE4 3C0E8003 */ lui $t6, %hi(resolution) +/* 0BBB18 7F086FE8 8DCE6428 */ lw $t6, %lo(resolution)($t6) +/* 0BBB1C 7F086FEC 51C0000E */ beql $t6, $zero, .L7F087028 +/* 0BBB20 7F086FF0 8C790000 */ lw $t9, ($v1) +/* 0BBB24 7F086FF4 0C000F07 */ jal get_video_settings2_frameb +/* 0BBB28 7F086FF8 00000000 */ nop +/* 0BBB2C 7F086FFC 3C0F803E */ lui $t7, %hi(cfb_16_b) # $t7, 0x803e +/* 0BBB30 7F087000 25EFA800 */ addiu $t7, %lo(cfb_16_b) # addiu $t7, $t7, -0x5800 +/* 0BBB34 7F087004 3C038003 */ lui $v1, %hi(camera_80036430) +/* 0BBB38 7F087008 144F0006 */ bne $v0, $t7, .L7F087024 +/* 0BBB3C 7F08700C 24636430 */ addiu $v1, %lo(camera_80036430) # addiu $v1, $v1, 0x6430 +/* 0BBB40 7F087010 24180001 */ li $t8, 1 +/* 0BBB44 7F087014 3C018003 */ lui $at, %hi(camera_8003642C) +/* 0BBB48 7F087018 AC38642C */ sw $t8, %lo(camera_8003642C)($at) +/* 0BBB4C 7F08701C 1000001A */ b .L7F087088 +/* 0BBB50 7F087020 AC600000 */ sw $zero, ($v1) +.L7F087024: +/* 0BBB54 7F087024 8C790000 */ lw $t9, ($v1) +.L7F087028: +/* 0BBB58 7F087028 27280001 */ addiu $t0, $t9, 1 +/* 0BBB5C 7F08702C 10000016 */ b .L7F087088 +/* 0BBB60 7F087030 AC680000 */ sw $t0, ($v1) +.L7F087034: +/* 0BBB64 7F087034 3C038003 */ lui $v1, %hi(camera_80036434) +/* 0BBB68 7F087038 24636434 */ addiu $v1, %lo(camera_80036434) # addiu $v1, $v1, 0x6434 +/* 0BBB6C 7F08703C 8C620000 */ lw $v0, ($v1) +/* 0BBB70 7F087040 10400011 */ beqz $v0, .L7F087088 +/* 0BBB74 7F087044 28410004 */ slti $at, $v0, 4 +/* 0BBB78 7F087048 5420000D */ bnezl $at, .L7F087080 +/* 0BBB7C 7F08704C 8C6A0000 */ lw $t2, ($v1) +/* 0BBB80 7F087050 0C000F07 */ jal get_video_settings2_frameb +/* 0BBB84 7F087054 00000000 */ nop +/* 0BBB88 7F087058 3C09803B */ lui $t1, %hi(cfb_16_a) # $t1, 0x803b +/* 0BBB8C 7F08705C 25295000 */ addiu $t1, %lo(cfb_16_a) # addiu $t1, $t1, 0x5000 +/* 0BBB90 7F087060 3C038003 */ lui $v1, %hi(camera_80036434) +/* 0BBB94 7F087064 14490005 */ bne $v0, $t1, .L7F08707C +/* 0BBB98 7F087068 24636434 */ addiu $v1, %lo(camera_80036434) # addiu $v1, $v1, 0x6434 +/* 0BBB9C 7F08706C 3C018003 */ lui $at, %hi(camera_8003642C) +/* 0BBBA0 7F087070 AC20642C */ sw $zero, %lo(camera_8003642C)($at) +/* 0BBBA4 7F087074 10000004 */ b .L7F087088 +/* 0BBBA8 7F087078 AC600000 */ sw $zero, ($v1) +.L7F08707C: +/* 0BBBAC 7F08707C 8C6A0000 */ lw $t2, ($v1) +.L7F087080: +/* 0BBBB0 7F087080 254B0001 */ addiu $t3, $t2, 1 +/* 0BBBB4 7F087084 AC6B0000 */ sw $t3, ($v1) +.L7F087088: +/* 0BBBB8 7F087088 3C0C8003 */ lui $t4, %hi(camera_8003642C) +/* 0BBBBC 7F08708C 8D8C642C */ lw $t4, %lo(camera_8003642C)($t4) +/* 0BBBC0 7F087090 11800009 */ beqz $t4, .L7F0870B8 +/* 0BBBC4 7F087094 00000000 */ nop +/* 0BBBC8 7F087098 0C000F07 */ jal get_video_settings2_frameb +/* 0BBBCC 7F08709C 00000000 */ nop +/* 0BBBD0 7F0870A0 3C0D803E */ lui $t5, %hi(cfb_16_b) # $t5, 0x803e +/* 0BBBD4 7F0870A4 25ADA800 */ addiu $t5, %lo(cfb_16_b) # addiu $t5, $t5, -0x5800 +/* 0BBBD8 7F0870A8 144D0003 */ bne $v0, $t5, .L7F0870B8 +/* 0BBBDC 7F0870AC 3C048003 */ lui $a0, %hi(resolution) +/* 0BBBE0 7F0870B0 0C000F0F */ jal set_video2buf_frameb +/* 0BBBE4 7F0870B4 8C846428 */ lw $a0, %lo(resolution)($a0) +.L7F0870B8: +/* 0BBBE8 7F0870B8 0FC293B8 */ jal get_screen_ratio +/* 0BBBEC 7F0870BC 00000000 */ nop +/* 0BBBF0 7F0870C0 24010001 */ li $at, 1 +/* 0BBBF4 7F0870C4 14410029 */ bne $v0, $at, .L7F08716C +/* 0BBBF8 7F0870C8 00000000 */ nop +/* 0BBBFC 7F0870CC 0FC21B10 */ jal get_curplayer_viewport_width +/* 0BBC00 7F0870D0 00000000 */ nop +/* 0BBC04 7F0870D4 0FC21B49 */ jal get_curplayer_viewport_height +/* 0BBC08 7F0870D8 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBC0C 7F0870DC 87AE001C */ lh $t6, 0x1c($sp) +/* 0BBC10 7F0870E0 44824000 */ mtc1 $v0, $f8 +/* 0BBC14 7F0870E4 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BBC18 7F0870E8 448E2000 */ mtc1 $t6, $f4 +/* 0BBC1C 7F0870EC 468042A0 */ cvt.s.w $f10, $f8 +/* 0BBC20 7F0870F0 44819000 */ mtc1 $at, $f18 +/* 0BBC24 7F0870F4 3C018005 */ lui $at, %hi(D_80055264) +/* 0BBC28 7F0870F8 C4285264 */ lwc1 $f8, %lo(D_80055264)($at) +/* 0BBC2C 7F0870FC 468021A0 */ cvt.s.w $f6, $f4 +/* 0BBC30 7F087100 460A3403 */ div.s $f16, $f6, $f10 +/* 0BBC34 7F087104 46128102 */ mul.s $f4, $f16, $f18 +/* 0BBC38 7F087108 00000000 */ nop +/* 0BBC3C 7F08710C 46082302 */ mul.s $f12, $f4, $f8 +/* 0BBC40 7F087110 0FC26C89 */ jal set_cur_player_aspect +/* 0BBC44 7F087114 00000000 */ nop +/* 0BBC48 7F087118 0FC21B10 */ jal get_curplayer_viewport_width +/* 0BBC4C 7F08711C 00000000 */ nop +/* 0BBC50 7F087120 0FC21B49 */ jal get_curplayer_viewport_height +/* 0BBC54 7F087124 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBC58 7F087128 87AF001C */ lh $t7, 0x1c($sp) +/* 0BBC5C 7F08712C 44828000 */ mtc1 $v0, $f16 +/* 0BBC60 7F087130 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BBC64 7F087134 448F3000 */ mtc1 $t7, $f6 +/* 0BBC68 7F087138 468084A0 */ cvt.s.w $f18, $f16 +/* 0BBC6C 7F08713C 44814000 */ mtc1 $at, $f8 +/* 0BBC70 7F087140 3C018005 */ lui $at, %hi(D_80055268) +/* 0BBC74 7F087144 C4305268 */ lwc1 $f16, %lo(D_80055268)($at) +/* 0BBC78 7F087148 468032A0 */ cvt.s.w $f10, $f6 +/* 0BBC7C 7F08714C 46125103 */ div.s $f4, $f10, $f18 +/* 0BBC80 7F087150 46082182 */ mul.s $f6, $f4, $f8 +/* 0BBC84 7F087154 00000000 */ nop +/* 0BBC88 7F087158 46103302 */ mul.s $f12, $f6, $f16 +/* 0BBC8C 7F08715C 0C001164 */ jal video_related_21 +/* 0BBC90 7F087160 00000000 */ nop +/* 0BBC94 7F087164 10000017 */ b .L7F0871C4 +/* 0BBC98 7F087168 00000000 */ nop +.L7F08716C: +/* 0BBC9C 7F08716C 0FC21B10 */ jal get_curplayer_viewport_width +/* 0BBCA0 7F087170 00000000 */ nop +/* 0BBCA4 7F087174 0FC21B49 */ jal get_curplayer_viewport_height +/* 0BBCA8 7F087178 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBCAC 7F08717C 87B8001C */ lh $t8, 0x1c($sp) +/* 0BBCB0 7F087180 44822000 */ mtc1 $v0, $f4 +/* 0BBCB4 7F087184 44985000 */ mtc1 $t8, $f10 +/* 0BBCB8 7F087188 46802220 */ cvt.s.w $f8, $f4 +/* 0BBCBC 7F08718C 468054A0 */ cvt.s.w $f18, $f10 +/* 0BBCC0 7F087190 0FC26C89 */ jal set_cur_player_aspect +/* 0BBCC4 7F087194 46089303 */ div.s $f12, $f18, $f8 +/* 0BBCC8 7F087198 0FC21B10 */ jal get_curplayer_viewport_width +/* 0BBCCC 7F08719C 00000000 */ nop +/* 0BBCD0 7F0871A0 0FC21B49 */ jal get_curplayer_viewport_height +/* 0BBCD4 7F0871A4 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBCD8 7F0871A8 87B9001C */ lh $t9, 0x1c($sp) +/* 0BBCDC 7F0871AC 44825000 */ mtc1 $v0, $f10 +/* 0BBCE0 7F0871B0 44993000 */ mtc1 $t9, $f6 +/* 0BBCE4 7F0871B4 46805120 */ cvt.s.w $f4, $f10 +/* 0BBCE8 7F0871B8 46803420 */ cvt.s.w $f16, $f6 +/* 0BBCEC 7F0871BC 0C001164 */ jal video_related_21 +/* 0BBCF0 7F0871C0 46048303 */ div.s $f12, $f16, $f4 +.L7F0871C4: +/* 0BBCF4 7F0871C4 0FC21B10 */ jal get_curplayer_viewport_width +/* 0BBCF8 7F0871C8 00000000 */ nop +/* 0BBCFC 7F0871CC 0FC21B49 */ jal get_curplayer_viewport_height +/* 0BBD00 7F0871D0 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBD04 7F0871D4 87A4001C */ lh $a0, 0x1c($sp) +/* 0BBD08 7F0871D8 0FC26C77 */ jal set_cur_player_screen_size +/* 0BBD0C 7F0871DC 00402825 */ move $a1, $v0 +/* 0BBD10 7F0871E0 0FC21B31 */ jal get_curplayer_viewport_ulx +/* 0BBD14 7F0871E4 00000000 */ nop +/* 0BBD18 7F0871E8 0FC21B8E */ jal get_curplayer_viewport_uly +/* 0BBD1C 7F0871EC A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBD20 7F0871F0 87A4001C */ lh $a0, 0x1c($sp) +/* 0BBD24 7F0871F4 0FC26C7E */ jal set_cur_player_viewport_size +/* 0BBD28 7F0871F8 00402825 */ move $a1, $v0 +/* 0BBD2C 7F0871FC 0FC21AFE */ jal getWidth320or440 +/* 0BBD30 7F087200 00000000 */ nop +/* 0BBD34 7F087204 0FC21B07 */ jal getHeight330or240 +/* 0BBD38 7F087208 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBD3C 7F08720C 00022C00 */ sll $a1, $v0, 0x10 +/* 0BBD40 7F087210 00054403 */ sra $t0, $a1, 0x10 +/* 0BBD44 7F087214 01002825 */ move $a1, $t0 +/* 0BBD48 7F087218 0C0010FE */ jal set_video2_text_clip_size +/* 0BBD4C 7F08721C 87A4001C */ lh $a0, 0x1c($sp) +/* 0BBD50 7F087220 0FC21AFE */ jal getWidth320or440 +/* 0BBD54 7F087224 00000000 */ nop +/* 0BBD58 7F087228 0FC21B07 */ jal getHeight330or240 +/* 0BBD5C 7F08722C A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBD60 7F087230 00022C00 */ sll $a1, $v0, 0x10 +/* 0BBD64 7F087234 00054C03 */ sra $t1, $a1, 0x10 +/* 0BBD68 7F087238 01202825 */ move $a1, $t1 +/* 0BBD6C 7F08723C 0C0010ED */ jal set_video2_settings_offset_18_1A +/* 0BBD70 7F087240 87A4001C */ lh $a0, 0x1c($sp) +/* 0BBD74 7F087244 0FC21B10 */ jal get_curplayer_viewport_width +/* 0BBD78 7F087248 00000000 */ nop +/* 0BBD7C 7F08724C 0FC21B49 */ jal get_curplayer_viewport_height +/* 0BBD80 7F087250 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBD84 7F087254 00022C00 */ sll $a1, $v0, 0x10 +/* 0BBD88 7F087258 00055403 */ sra $t2, $a1, 0x10 +/* 0BBD8C 7F08725C 01402825 */ move $a1, $t2 +/* 0BBD90 7F087260 0C00110F */ jal set_video2_width_height +/* 0BBD94 7F087264 87A4001C */ lh $a0, 0x1c($sp) +/* 0BBD98 7F087268 0FC21B31 */ jal get_curplayer_viewport_ulx +/* 0BBD9C 7F08726C 00000000 */ nop +/* 0BBDA0 7F087270 0FC21B8E */ jal get_curplayer_viewport_uly +/* 0BBDA4 7F087274 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBDA8 7F087278 00022C00 */ sll $a1, $v0, 0x10 +/* 0BBDAC 7F08727C 00055C03 */ sra $t3, $a1, 0x10 +/* 0BBDB0 7F087280 01602825 */ move $a1, $t3 +/* 0BBDB4 7F087284 0C00112F */ jal set_video2_ulx_uly +/* 0BBDB8 7F087288 87A4001C */ lh $a0, 0x1c($sp) +/* 0BBDBC 7F08728C 0FC2022F */ jal sub_GAME_7F0808BC +/* 0BBDC0 7F087290 00000000 */ nop +/* 0BBDC4 7F087294 0FC202A0 */ jal update_curplayer_fade +/* 0BBDC8 7F087298 00000000 */ nop +/* 0BBDCC 7F08729C 0FC29394 */ jal cur_player_get_autoaim +/* 0BBDD0 7F0872A0 00000000 */ nop +/* 0BBDD4 7F0872A4 0FC1F15C */ jal set_BONDdata_autoaim_y +/* 0BBDD8 7F0872A8 00402025 */ move $a0, $v0 +/* 0BBDDC 7F0872AC 0FC29394 */ jal cur_player_get_autoaim +/* 0BBDE0 7F0872B0 00000000 */ nop +/* 0BBDE4 7F0872B4 0FC1F196 */ jal set_BONDdata_autoaim_x +/* 0BBDE8 7F0872B8 00402025 */ move $a0, $v0 +/* 0BBDEC 7F0872BC 0FC2939A */ jal cur_player_get_lookahead +/* 0BBDF0 7F0872C0 00000000 */ nop +/* 0BBDF4 7F0872C4 0FC1F154 */ jal set_BONDdata_lookahead_setting +/* 0BBDF8 7F0872C8 00402025 */ move $a0, $v0 +/* 0BBDFC 7F0872CC 0FC293AC */ jal cur_player_get_ammo_onscreen_setting +/* 0BBE00 7F0872D0 00000000 */ nop +/* 0BBE04 7F0872D4 24040001 */ li $a0, 1 +/* 0BBE08 7F0872D8 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 0BBE0C 7F0872DC 00402825 */ move $a1, $v0 +/* 0BBE10 7F0872E0 0FC26919 */ jal get_num_players +/* 0BBE14 7F0872E4 00000000 */ nop +/* 0BBE18 7F0872E8 24010001 */ li $at, 1 +/* 0BBE1C 7F0872EC 14410006 */ bne $v0, $at, .L7F087308 +/* 0BBE20 7F0872F0 00000000 */ nop +/* 0BBE24 7F0872F4 0FC293A6 */ jal cur_player_get_sight_onscreen_control +/* 0BBE28 7F0872F8 00000000 */ nop +/* 0BBE2C 7F0872FC 0002282B */ sltu $a1, $zero, $v0 +/* 0BBE30 7F087300 14A0000B */ bnez $a1, .L7F087330 +/* 0BBE34 7F087304 00000000 */ nop +.L7F087308: +/* 0BBE38 7F087308 0FC26919 */ jal get_num_players +/* 0BBE3C 7F08730C 00000000 */ nop +/* 0BBE40 7F087310 28430002 */ slti $v1, $v0, 2 +/* 0BBE44 7F087314 38650001 */ xori $a1, $v1, 1 +/* 0BBE48 7F087318 10A00005 */ beqz $a1, .L7F087330 +/* 0BBE4C 7F08731C 3C0C8008 */ lui $t4, %hi(pPlayersPerm) +/* 0BBE50 7F087320 8D8CA0B4 */ lw $t4, %lo(pPlayersPerm)($t4) +/* 0BBE54 7F087324 9185006B */ lbu $a1, 0x6b($t4) +/* 0BBE58 7F087328 0005682B */ sltu $t5, $zero, $a1 +/* 0BBE5C 7F08732C 01A02825 */ move $a1, $t5 +.L7F087330: +/* 0BBE60 7F087330 0FC1A96A */ jal set_unset_bitflags +/* 0BBE64 7F087334 24040001 */ li $a0, 1 +/* 0BBE68 7F087338 3C028003 */ lui $v0, %hi(cameramode) +/* 0BBE6C 7F08733C 8C426494 */ lw $v0, %lo(cameramode)($v0) +/* 0BBE70 7F087340 24010004 */ li $at, 4 +/* 0BBE74 7F087344 10400008 */ beqz $v0, .L7F087368 +/* 0BBE78 7F087348 00000000 */ nop +/* 0BBE7C 7F08734C 14410003 */ bne $v0, $at, .L7F08735C +/* 0BBE80 7F087350 3C0E8003 */ lui $t6, %hi(D_800364B0) +/* 0BBE84 7F087354 8DCE64B0 */ lw $t6, %lo(D_800364B0)($t6) +/* 0BBE88 7F087358 15C00003 */ bnez $t6, .L7F087368 +.L7F08735C: +/* 0BBE8C 7F08735C 2401000A */ li $at, 10 +/* 0BBE90 7F087360 14410014 */ bne $v0, $at, .L7F0873B4 +/* 0BBE94 7F087364 83A40023 */ lb $a0, 0x23($sp) +.L7F087368: +/* 0BBE98 7F087368 0FC26C54 */ jal get_cur_playernum +/* 0BBE9C 7F08736C 00000000 */ nop +/* 0BBEA0 7F087370 14400008 */ bnez $v0, .L7F087394 +/* 0BBEA4 7F087374 3C088008 */ lui $t0, %hi(pPlayer) +/* 0BBEA8 7F087378 3C028008 */ lui $v0, %hi(mission_timer) +/* 0BBEAC 7F08737C 24429A20 */ addiu $v0, %lo(mission_timer) # addiu $v0, $v0, -0x65e0 +/* 0BBEB0 7F087380 3C188005 */ lui $t8, %hi(clock_timer) +/* 0BBEB4 7F087384 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 0BBEB8 7F087388 8C4F0000 */ lw $t7, ($v0) +/* 0BBEBC 7F08738C 01F8C821 */ addu $t9, $t7, $t8 +/* 0BBEC0 7F087390 AC590000 */ sw $t9, ($v0) +.L7F087394: +/* 0BBEC4 7F087394 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0BBEC8 7F087398 83A40023 */ lb $a0, 0x23($sp) +/* 0BBECC 7F08739C 83A50027 */ lb $a1, 0x27($sp) +/* 0BBED0 7F0873A0 97A6002A */ lhu $a2, 0x2a($sp) +/* 0BBED4 7F0873A4 0FC21192 */ jal MoveBond +/* 0BBED8 7F0873A8 950703B4 */ lhu $a3, 0x3b4($t0) +/* 0BBEDC 7F0873AC 10000007 */ b .L7F0873CC +/* 0BBEE0 7F0873B0 00000000 */ nop +.L7F0873B4: +/* 0BBEE4 7F0873B4 3C098008 */ lui $t1, %hi(pPlayer) +/* 0BBEE8 7F0873B8 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0BBEEC 7F0873BC 83A50027 */ lb $a1, 0x27($sp) +/* 0BBEF0 7F0873C0 97A6002A */ lhu $a2, 0x2a($sp) +/* 0BBEF4 7F0873C4 0FC21A64 */ jal sub_GAME_7F086990 +/* 0BBEF8 7F0873C8 952703B4 */ lhu $a3, 0x3b4($t1) +.L7F0873CC: +/* 0BBEFC 7F0873CC 3C028008 */ lui $v0, %hi(watch_time_0) +/* 0BBF00 7F0873D0 24429A24 */ addiu $v0, %lo(watch_time_0) # addiu $v0, $v0, -0x65dc +/* 0BBF04 7F0873D4 3C0B8005 */ lui $t3, %hi(D_80048498) +/* 0BBF08 7F0873D8 8D6B8498 */ lw $t3, %lo(D_80048498)($t3) +/* 0BBF0C 7F0873DC 8C4A0000 */ lw $t2, ($v0) +/* 0BBF10 7F0873E0 3C0D8003 */ lui $t5, %hi(stop_time_flag) +/* 0BBF14 7F0873E4 014B6021 */ addu $t4, $t2, $t3 +/* 0BBF18 7F0873E8 AC4C0000 */ sw $t4, ($v0) +/* 0BBF1C 7F0873EC 8DAD64A0 */ lw $t5, %lo(stop_time_flag)($t5) +/* 0BBF20 7F0873F0 11A00046 */ beqz $t5, .L7F08750C +/* 0BBF24 7F0873F4 00000000 */ nop +/* 0BBF28 7F0873F8 0FC2FF01 */ jal get_controls_locked_flag +/* 0BBF2C 7F0873FC 00000000 */ nop +/* 0BBF30 7F087400 1440002F */ bnez $v0, .L7F0874C0 +/* 0BBF34 7F087404 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0BBF38 7F087408 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0BBF3C 7F08740C 97AE002A */ lhu $t6, 0x2a($sp) +/* 0BBF40 7F087410 240A0002 */ li $t2, 2 +/* 0BBF44 7F087414 95F803B4 */ lhu $t8, 0x3b4($t7) +/* 0BBF48 7F087418 3C018003 */ lui $at, %hi(stop_time_flag) +/* 0BBF4C 7F08741C 0300C827 */ not $t9, $t8 +/* 0BBF50 7F087420 01D94024 */ and $t0, $t6, $t9 +/* 0BBF54 7F087424 3109F030 */ andi $t1, $t0, 0xf030 +/* 0BBF58 7F087428 11200025 */ beqz $t1, .L7F0874C0 +/* 0BBF5C 7F08742C 00000000 */ nop +/* 0BBF60 7F087430 0FC20223 */ jal check_if_fade_to_black_complete +/* 0BBF64 7F087434 AC2A64A0 */ sw $t2, %lo(stop_time_flag)($at) +/* 0BBF68 7F087438 10400015 */ beqz $v0, .L7F087490 +/* 0BBF6C 7F08743C 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0BBF70 7F087440 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0BBF74 7F087444 44800000 */ mtc1 $zero, $f0 +/* 0BBF78 7F087448 00002025 */ move $a0, $zero +/* 0BBF7C 7F08744C C57203DC */ lwc1 $f18, 0x3dc($t3) +/* 0BBF80 7F087450 00002825 */ move $a1, $zero +/* 0BBF84 7F087454 46120032 */ c.eq.s $f0, $f18 +/* 0BBF88 7F087458 00000000 */ nop +/* 0BBF8C 7F08745C 45000018 */ bc1f .L7F0874C0 +/* 0BBF90 7F087460 00000000 */ nop +/* 0BBF94 7F087464 44070000 */ mfc1 $a3, $f0 +/* 0BBF98 7F087468 0FC201EC */ jal set_rgba_tint +/* 0BBF9C 7F08746C 00003025 */ move $a2, $zero +/* 0BBFA0 7F087470 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BBFA4 7F087474 44816000 */ mtc1 $at, $f12 +/* 0BBFA8 7F087478 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BBFAC 7F08747C 44817000 */ mtc1 $at, $f14 +/* 0BBFB0 7F087480 0FC20216 */ jal fade_to_over_seconds +/* 0BBFB4 7F087484 00000000 */ nop +/* 0BBFB8 7F087488 1000000D */ b .L7F0874C0 +/* 0BBFBC 7F08748C 00000000 */ nop +.L7F087490: +/* 0BBFC0 7F087490 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BBFC4 7F087494 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BBFC8 7F087498 44800000 */ mtc1 $zero, $f0 +/* 0BBFCC 7F08749C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BBFD0 7F0874A0 C4480404 */ lwc1 $f8, 0x404($v0) +/* 0BBFD4 7F0874A4 46080032 */ c.eq.s $f0, $f8 +/* 0BBFD8 7F0874A8 00000000 */ nop +/* 0BBFDC 7F0874AC 45000004 */ bc1f .L7F0874C0 +/* 0BBFE0 7F0874B0 00000000 */ nop +/* 0BBFE4 7F0874B4 44817000 */ mtc1 $at, $f14 +/* 0BBFE8 7F0874B8 0FC20216 */ jal fade_to_over_seconds +/* 0BBFEC 7F0874BC C44C03E0 */ lwc1 $f12, 0x3e0($v0) +.L7F0874C0: +/* 0BBFF0 7F0874C0 3C0C8003 */ lui $t4, %hi(stop_time_flag) +/* 0BBFF4 7F0874C4 8D8C64A0 */ lw $t4, %lo(stop_time_flag)($t4) +/* 0BBFF8 7F0874C8 24010002 */ li $at, 2 +/* 0BBFFC 7F0874CC 1581000F */ bne $t4, $at, .L7F08750C +/* 0BC000 7F0874D0 00000000 */ nop +/* 0BC004 7F0874D4 0FC20223 */ jal check_if_fade_to_black_complete +/* 0BC008 7F0874D8 00000000 */ nop +/* 0BC00C 7F0874DC 1040000B */ beqz $v0, .L7F08750C +/* 0BC010 7F0874E0 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0BC014 7F0874E4 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0BC018 7F0874E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BC01C 7F0874EC 44813000 */ mtc1 $at, $f6 +/* 0BC020 7F0874F0 C5AA03DC */ lwc1 $f10, 0x3dc($t5) +/* 0BC024 7F0874F4 460A3032 */ c.eq.s $f6, $f10 +/* 0BC028 7F0874F8 00000000 */ nop +/* 0BC02C 7F0874FC 45000003 */ bc1f .L7F08750C +/* 0BC030 7F087500 00000000 */ nop +/* 0BC034 7F087504 0C001A5A */ jal return_to_title_from_level_end +/* 0BC038 7F087508 00000000 */ nop +.L7F08750C: +/* 0BC03C 7F08750C 3C0F8003 */ lui $t7, %hi(enable_move_after_cinema) +/* 0BC040 7F087510 8DEF6498 */ lw $t7, %lo(enable_move_after_cinema)($t7) +/* 0BC044 7F087514 11E00003 */ beqz $t7, .L7F087524 +/* 0BC048 7F087518 00000000 */ nop +/* 0BC04C 7F08751C 0FC1EC69 */ jal sub_GAME_7F07B1A4 +/* 0BC050 7F087520 00000000 */ nop +.L7F087524: +/* 0BC054 7F087524 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BC058 7F087528 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC05C 7F08752C 8C5800D8 */ lw $t8, 0xd8($v0) +/* 0BC060 7F087530 13000019 */ beqz $t8, .L7F087598 +/* 0BC064 7F087534 00000000 */ nop +/* 0BC068 7F087538 8C430424 */ lw $v1, 0x424($v0) +/* 0BC06C 7F08753C 24040001 */ li $a0, 1 +/* 0BC070 7F087540 14600009 */ bnez $v1, .L7F087568 +/* 0BC074 7F087544 00000000 */ nop +/* 0BC078 7F087548 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0BC07C 7F08754C 00002825 */ move $a1, $zero +/* 0BC080 7F087550 00002025 */ move $a0, $zero +/* 0BC084 7F087554 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0BC088 7F087558 00002825 */ move $a1, $zero +/* 0BC08C 7F08755C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BC090 7F087560 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC094 7F087564 8C430424 */ lw $v1, 0x424($v0) +.L7F087568: +/* 0BC098 7F087568 1060000B */ beqz $v1, .L7F087598 +/* 0BC09C 7F08756C 00000000 */ nop +/* 0BC0A0 7F087570 8C4E0428 */ lw $t6, 0x428($v0) +/* 0BC0A4 7F087574 3C198003 */ lui $t9, %hi(D_80036510) +/* 0BC0A8 7F087578 11C00007 */ beqz $t6, .L7F087598 +/* 0BC0AC 7F08757C 00000000 */ nop +/* 0BC0B0 7F087580 8F396510 */ lw $t9, %lo(D_80036510)($t9) +/* 0BC0B4 7F087584 2B210003 */ slti $at, $t9, 3 +/* 0BC0B8 7F087588 14200003 */ bnez $at, .L7F087598 +/* 0BC0BC 7F08758C 00000000 */ nop +/* 0BC0C0 7F087590 0C001A4C */ jal run_title_stage +/* 0BC0C4 7F087594 00000000 */ nop +.L7F087598: +/* 0BC0C8 7F087598 3C088003 */ lui $t0, %hi(cameramode) +/* 0BC0CC 7F08759C 8D086494 */ lw $t0, %lo(cameramode)($t0) +/* 0BC0D0 7F0875A0 2401000A */ li $at, 10 +/* 0BC0D4 7F0875A4 15010007 */ bne $t0, $at, .L7F0875C4 +/* 0BC0D8 7F0875A8 00000000 */ nop +/* 0BC0DC 7F0875AC 0FC20223 */ jal check_if_fade_to_black_complete +/* 0BC0E0 7F0875B0 00000000 */ nop +/* 0BC0E4 7F0875B4 10400003 */ beqz $v0, .L7F0875C4 +/* 0BC0E8 7F0875B8 00000000 */ nop +/* 0BC0EC 7F0875BC 0C001A4C */ jal run_title_stage +/* 0BC0F0 7F0875C0 00000000 */ nop +.L7F0875C4: +/* 0BC0F4 7F0875C4 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0BC0F8 7F0875C8 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0BC0FC 7F0875CC 97A9002A */ lhu $t1, 0x2a($sp) +/* 0BC100 7F0875D0 A54903B4 */ sh $t1, 0x3b4($t2) +/* 0BC104 7F0875D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BC108 7F0875D8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0BC10C 7F0875DC 03E00008 */ jr $ra +/* 0BC110 7F0875E0 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80055264 +.word 0x3fe38e39 /*1.7777778*/ +glabel D_80055268 +.word 0x3fe38e39 /*1.7777778*/ +.text +glabel possibly_reset_viewport_options_for_player +/* 0BC1D8 7F087668 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0BC1DC 7F08766C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BC1E0 7F087670 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BC1E4 7F087674 44816000 */ mtc1 $at, $f12 +/* 0BC1E8 7F087678 AFA40020 */ sw $a0, 0x20($sp) +/* 0BC1EC 7F08767C AFA50024 */ sw $a1, 0x24($sp) +/* 0BC1F0 7F087680 0FC26F6D */ jal set_cur_player_fovy +/* 0BC1F4 7F087684 AFA60028 */ sw $a2, 0x28($sp) +/* 0BC1F8 7F087688 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BC1FC 7F08768C 44816000 */ mtc1 $at, $f12 +/* 0BC200 7F087690 0C001151 */ jal setvideo_far +/* 0BC204 7F087694 00000000 */ nop +/* 0BC208 7F087698 3C038003 */ lui $v1, %hi(camera_80036430) # $v1, 0x8003 +/* 0BC20C 7F08769C 24636470 */ addiu $v1, %lo(camera_80036430) # addiu $v1, $v1, 0x6470 +/* 0BC210 7F0876A0 8C620000 */ lw $v0, ($v1) +/* 0BC214 7F0876A4 10400016 */ beqz $v0, .Ljp7F087700 +/* 0BC218 7F0876A8 28410004 */ slti $at, $v0, 4 +/* 0BC21C 7F0876AC 14200010 */ bnez $at, .Ljp7F0876F0 +/* 0BC220 7F0876B0 3C0E8003 */ lui $t6, %hi(resolution) # $t6, 0x8003 +/* 0BC224 7F0876B4 8DCE6468 */ lw $t6, %lo(resolution)($t6) +/* 0BC228 7F0876B8 51C0000E */ beql $t6, $zero, .Ljp7F0876F4 +/* 0BC22C 7F0876BC 8C790000 */ lw $t9, ($v1) +/* 0BC230 7F0876C0 0C000F07 */ jal get_video_settings2_frameb +/* 0BC234 7F0876C4 00000000 */ nop +/* 0BC238 7F0876C8 3C0F803E */ lui $t7, %hi(cfb_16_b) # $t7, 0x803e +/* 0BC23C 7F0876CC 25EFA800 */ addiu $t7, %lo(cfb_16_b) # addiu $t7, $t7, -0x5800 +/* 0BC240 7F0876D0 3C038003 */ lui $v1, %hi(camera_80036430) # $v1, 0x8003 +/* 0BC244 7F0876D4 144F0006 */ bne $v0, $t7, .Ljp7F0876F0 +/* 0BC248 7F0876D8 24636470 */ addiu $v1, %lo(camera_80036430) # addiu $v1, $v1, 0x6470 +/* 0BC24C 7F0876DC 24180001 */ li $t8, 1 +/* 0BC250 7F0876E0 3C018003 */ lui $at, %hi(camera_8003642C) # $at, 0x8003 +/* 0BC254 7F0876E4 AC38646C */ sw $t8, %lo(camera_8003642C)($at) +/* 0BC258 7F0876E8 1000001A */ b .Ljp7F087754 +/* 0BC25C 7F0876EC AC600000 */ sw $zero, ($v1) +.Ljp7F0876F0: +/* 0BC260 7F0876F0 8C790000 */ lw $t9, ($v1) +.Ljp7F0876F4: +/* 0BC264 7F0876F4 27280001 */ addiu $t0, $t9, 1 +/* 0BC268 7F0876F8 10000016 */ b .Ljp7F087754 +/* 0BC26C 7F0876FC AC680000 */ sw $t0, ($v1) +.Ljp7F087700: +/* 0BC270 7F087700 3C038003 */ lui $v1, %hi(camera_80036434) # $v1, 0x8003 +/* 0BC274 7F087704 24636474 */ addiu $v1, %lo(camera_80036434) # addiu $v1, $v1, 0x6474 +/* 0BC278 7F087708 8C620000 */ lw $v0, ($v1) +/* 0BC27C 7F08770C 10400011 */ beqz $v0, .Ljp7F087754 +/* 0BC280 7F087710 28410004 */ slti $at, $v0, 4 +/* 0BC284 7F087714 5420000D */ bnezl $at, .Ljp7F08774C +/* 0BC288 7F087718 8C6A0000 */ lw $t2, ($v1) +/* 0BC28C 7F08771C 0C000F07 */ jal get_video_settings2_frameb +/* 0BC290 7F087720 00000000 */ nop +/* 0BC294 7F087724 3C09803B */ lui $t1, %hi(cfb_16_a) # $t1, 0x803b +/* 0BC298 7F087728 25295000 */ addiu $t1, %lo(cfb_16_a) # addiu $t1, $t1, 0x5000 +/* 0BC29C 7F08772C 3C038003 */ lui $v1, %hi(camera_80036434) # $v1, 0x8003 +/* 0BC2A0 7F087730 14490005 */ bne $v0, $t1, .Ljp7F087748 +/* 0BC2A4 7F087734 24636474 */ addiu $v1, %lo(camera_80036434) # addiu $v1, $v1, 0x6474 +/* 0BC2A8 7F087738 3C018003 */ lui $at, %hi(camera_8003642C) # $at, 0x8003 +/* 0BC2AC 7F08773C AC20646C */ sw $zero, %lo(camera_8003642C)($at) +/* 0BC2B0 7F087740 10000004 */ b .Ljp7F087754 +/* 0BC2B4 7F087744 AC600000 */ sw $zero, ($v1) +.Ljp7F087748: +/* 0BC2B8 7F087748 8C6A0000 */ lw $t2, ($v1) +.Ljp7F08774C: +/* 0BC2BC 7F08774C 254B0001 */ addiu $t3, $t2, 1 +/* 0BC2C0 7F087750 AC6B0000 */ sw $t3, ($v1) +.Ljp7F087754: +/* 0BC2C4 7F087754 3C0C8003 */ lui $t4, %hi(camera_8003642C) # $t4, 0x8003 +/* 0BC2C8 7F087758 8D8C646C */ lw $t4, %lo(camera_8003642C)($t4) +/* 0BC2CC 7F08775C 11800009 */ beqz $t4, .Ljp7F087784 +/* 0BC2D0 7F087760 00000000 */ nop +/* 0BC2D4 7F087764 0C000F07 */ jal get_video_settings2_frameb +/* 0BC2D8 7F087768 00000000 */ nop +/* 0BC2DC 7F08776C 3C0D803E */ lui $t5, %hi(cfb_16_b) # $t5, 0x803e +/* 0BC2E0 7F087770 25ADA800 */ addiu $t5, %lo(cfb_16_b) # addiu $t5, $t5, -0x5800 +/* 0BC2E4 7F087774 144D0003 */ bne $v0, $t5, .Ljp7F087784 +/* 0BC2E8 7F087778 3C048003 */ lui $a0, %hi(resolution) # $a0, 0x8003 +/* 0BC2EC 7F08777C 0C000F0F */ jal set_video2buf_frameb +/* 0BC2F0 7F087780 8C846468 */ lw $a0, %lo(resolution)($a0) +.Ljp7F087784: +/* 0BC2F4 7F087784 0FC296A0 */ jal get_screen_ratio +/* 0BC2F8 7F087788 00000000 */ nop +/* 0BC2FC 7F08778C 24010001 */ li $at, 1 +/* 0BC300 7F087790 14410029 */ bne $v0, $at, .Ljp7F087838 +/* 0BC304 7F087794 00000000 */ nop +/* 0BC308 7F087798 0FC21CC3 */ jal get_curplayer_viewport_width +/* 0BC30C 7F08779C 00000000 */ nop +/* 0BC310 7F0877A0 0FC21CFC */ jal get_curplayer_viewport_height +/* 0BC314 7F0877A4 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC318 7F0877A8 87AE001C */ lh $t6, 0x1c($sp) +/* 0BC31C 7F0877AC 44824000 */ mtc1 $v0, $f8 +/* 0BC320 7F0877B0 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BC324 7F0877B4 448E2000 */ mtc1 $t6, $f4 +/* 0BC328 7F0877B8 468042A0 */ cvt.s.w $f10, $f8 +/* 0BC32C 7F0877BC 44819000 */ mtc1 $at, $f18 +/* 0BC330 7F0877C0 3C018005 */ lui $at, %hi(D_80055264) # $at, 0x8005 +/* 0BC334 7F0877C4 C4285294 */ lwc1 $f8, %lo(D_80055264)($at) +/* 0BC338 7F0877C8 468021A0 */ cvt.s.w $f6, $f4 +/* 0BC33C 7F0877CC 460A3403 */ div.s $f16, $f6, $f10 +/* 0BC340 7F0877D0 46128102 */ mul.s $f4, $f16, $f18 +/* 0BC344 7F0877D4 00000000 */ nop +/* 0BC348 7F0877D8 46082302 */ mul.s $f12, $f4, $f8 +/* 0BC34C 7F0877DC 0FC26F71 */ jal set_cur_player_aspect +/* 0BC350 7F0877E0 00000000 */ nop +/* 0BC354 7F0877E4 0FC21CC3 */ jal get_curplayer_viewport_width +/* 0BC358 7F0877E8 00000000 */ nop +/* 0BC35C 7F0877EC 0FC21CFC */ jal get_curplayer_viewport_height +/* 0BC360 7F0877F0 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC364 7F0877F4 87AF001C */ lh $t7, 0x1c($sp) +/* 0BC368 7F0877F8 44828000 */ mtc1 $v0, $f16 +/* 0BC36C 7F0877FC 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BC370 7F087800 448F3000 */ mtc1 $t7, $f6 +/* 0BC374 7F087804 468084A0 */ cvt.s.w $f18, $f16 +/* 0BC378 7F087808 44814000 */ mtc1 $at, $f8 +/* 0BC37C 7F08780C 3C018005 */ lui $at, %hi(D_80055268) # $at, 0x8005 +/* 0BC380 7F087810 C4305298 */ lwc1 $f16, %lo(D_80055268)($at) +/* 0BC384 7F087814 468032A0 */ cvt.s.w $f10, $f6 +/* 0BC388 7F087818 46125103 */ div.s $f4, $f10, $f18 +/* 0BC38C 7F08781C 46082182 */ mul.s $f6, $f4, $f8 +/* 0BC390 7F087820 00000000 */ nop +/* 0BC394 7F087824 46103302 */ mul.s $f12, $f6, $f16 +/* 0BC398 7F087828 0C001164 */ jal video_related_21 +/* 0BC39C 7F08782C 00000000 */ nop +/* 0BC3A0 7F087830 10000017 */ b .Ljp7F087890 +/* 0BC3A4 7F087834 00000000 */ nop +.Ljp7F087838: +/* 0BC3A8 7F087838 0FC21CC3 */ jal get_curplayer_viewport_width +/* 0BC3AC 7F08783C 00000000 */ nop +/* 0BC3B0 7F087840 0FC21CFC */ jal get_curplayer_viewport_height +/* 0BC3B4 7F087844 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC3B8 7F087848 87B8001C */ lh $t8, 0x1c($sp) +/* 0BC3BC 7F08784C 44822000 */ mtc1 $v0, $f4 +/* 0BC3C0 7F087850 44985000 */ mtc1 $t8, $f10 +/* 0BC3C4 7F087854 46802220 */ cvt.s.w $f8, $f4 +/* 0BC3C8 7F087858 468054A0 */ cvt.s.w $f18, $f10 +/* 0BC3CC 7F08785C 0FC26F71 */ jal set_cur_player_aspect +/* 0BC3D0 7F087860 46089303 */ div.s $f12, $f18, $f8 +/* 0BC3D4 7F087864 0FC21CC3 */ jal get_curplayer_viewport_width +/* 0BC3D8 7F087868 00000000 */ nop +/* 0BC3DC 7F08786C 0FC21CFC */ jal get_curplayer_viewport_height +/* 0BC3E0 7F087870 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC3E4 7F087874 87B9001C */ lh $t9, 0x1c($sp) +/* 0BC3E8 7F087878 44825000 */ mtc1 $v0, $f10 +/* 0BC3EC 7F08787C 44993000 */ mtc1 $t9, $f6 +/* 0BC3F0 7F087880 46805120 */ cvt.s.w $f4, $f10 +/* 0BC3F4 7F087884 46803420 */ cvt.s.w $f16, $f6 +/* 0BC3F8 7F087888 0C001164 */ jal video_related_21 +/* 0BC3FC 7F08788C 46048303 */ div.s $f12, $f16, $f4 +.Ljp7F087890: +/* 0BC400 7F087890 0FC21CC3 */ jal get_curplayer_viewport_width +/* 0BC404 7F087894 00000000 */ nop +/* 0BC408 7F087898 0FC21CFC */ jal get_curplayer_viewport_height +/* 0BC40C 7F08789C A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC410 7F0878A0 87A4001C */ lh $a0, 0x1c($sp) +/* 0BC414 7F0878A4 0FC26F5F */ jal set_cur_player_screen_size +/* 0BC418 7F0878A8 00402825 */ move $a1, $v0 +/* 0BC41C 7F0878AC 0FC21CE4 */ jal get_curplayer_viewport_ulx +/* 0BC420 7F0878B0 00000000 */ nop +/* 0BC424 7F0878B4 0FC21D41 */ jal get_curplayer_viewport_uly +/* 0BC428 7F0878B8 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC42C 7F0878BC 87A4001C */ lh $a0, 0x1c($sp) +/* 0BC430 7F0878C0 0FC26F66 */ jal set_cur_player_viewport_size +/* 0BC434 7F0878C4 00402825 */ move $a1, $v0 +/* 0BC438 7F0878C8 0FC21CB1 */ jal getWidth320or440 +/* 0BC43C 7F0878CC 00000000 */ nop +/* 0BC440 7F0878D0 0FC21CBA */ jal getHeight330or240 +/* 0BC444 7F0878D4 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC448 7F0878D8 00022C00 */ sll $a1, $v0, 0x10 +/* 0BC44C 7F0878DC 00054403 */ sra $t0, $a1, 0x10 +/* 0BC450 7F0878E0 01002825 */ move $a1, $t0 +/* 0BC454 7F0878E4 0C0010FE */ jal set_video2_text_clip_size +/* 0BC458 7F0878E8 87A4001C */ lh $a0, 0x1c($sp) +/* 0BC45C 7F0878EC 0FC21CB1 */ jal getWidth320or440 +/* 0BC460 7F0878F0 00000000 */ nop +/* 0BC464 7F0878F4 0FC21CBA */ jal getHeight330or240 +/* 0BC468 7F0878F8 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC46C 7F0878FC 00022C00 */ sll $a1, $v0, 0x10 +/* 0BC470 7F087900 00054C03 */ sra $t1, $a1, 0x10 +/* 0BC474 7F087904 01202825 */ move $a1, $t1 +/* 0BC478 7F087908 0C0010ED */ jal set_video2_settings_offset_18_1A +/* 0BC47C 7F08790C 87A4001C */ lh $a0, 0x1c($sp) +/* 0BC480 7F087910 0FC21CC3 */ jal get_curplayer_viewport_width +/* 0BC484 7F087914 00000000 */ nop +/* 0BC488 7F087918 0FC21CFC */ jal get_curplayer_viewport_height +/* 0BC48C 7F08791C A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC490 7F087920 00022C00 */ sll $a1, $v0, 0x10 +/* 0BC494 7F087924 00055403 */ sra $t2, $a1, 0x10 +/* 0BC498 7F087928 01402825 */ move $a1, $t2 +/* 0BC49C 7F08792C 0C00110F */ jal set_video2_width_height +/* 0BC4A0 7F087930 87A4001C */ lh $a0, 0x1c($sp) +/* 0BC4A4 7F087934 0FC21CE4 */ jal get_curplayer_viewport_ulx +/* 0BC4A8 7F087938 00000000 */ nop +/* 0BC4AC 7F08793C 0FC21D41 */ jal get_curplayer_viewport_uly +/* 0BC4B0 7F087940 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BC4B4 7F087944 00022C00 */ sll $a1, $v0, 0x10 +/* 0BC4B8 7F087948 00055C03 */ sra $t3, $a1, 0x10 +/* 0BC4BC 7F08794C 01602825 */ move $a1, $t3 +/* 0BC4C0 7F087950 0C00112F */ jal set_video2_ulx_uly +/* 0BC4C4 7F087954 87A4001C */ lh $a0, 0x1c($sp) +/* 0BC4C8 7F087958 0FC203B3 */ jal sub_GAME_7F0808BC +/* 0BC4CC 7F08795C 00000000 */ nop +/* 0BC4D0 7F087960 0FC20424 */ jal update_curplayer_fade +/* 0BC4D4 7F087964 00000000 */ nop +/* 0BC4D8 7F087968 0FC2967C */ jal cur_player_get_autoaim +/* 0BC4DC 7F08796C 00000000 */ nop +/* 0BC4E0 7F087970 0FC1F2E5 */ jal set_BONDdata_autoaim_y +/* 0BC4E4 7F087974 00402025 */ move $a0, $v0 +/* 0BC4E8 7F087978 0FC2967C */ jal cur_player_get_autoaim +/* 0BC4EC 7F08797C 00000000 */ nop +/* 0BC4F0 7F087980 0FC1F31F */ jal set_BONDdata_autoaim_x +/* 0BC4F4 7F087984 00402025 */ move $a0, $v0 +/* 0BC4F8 7F087988 0FC29682 */ jal cur_player_get_lookahead +/* 0BC4FC 7F08798C 00000000 */ nop +/* 0BC500 7F087990 0FC1F2DD */ jal set_BONDdata_lookahead_setting +/* 0BC504 7F087994 00402025 */ move $a0, $v0 +/* 0BC508 7F087998 0FC29694 */ jal cur_player_get_ammo_onscreen_setting +/* 0BC50C 7F08799C 00000000 */ nop +/* 0BC510 7F0879A0 24040001 */ li $a0, 1 +/* 0BC514 7F0879A4 0FC1A5B8 */ jal set_unset_ammo_on_screen_setting +/* 0BC518 7F0879A8 00402825 */ move $a1, $v0 +/* 0BC51C 7F0879AC 0FC26C01 */ jal get_num_players +/* 0BC520 7F0879B0 00000000 */ nop +/* 0BC524 7F0879B4 24010001 */ li $at, 1 +/* 0BC528 7F0879B8 14410006 */ bne $v0, $at, .Ljp7F0879D4 +/* 0BC52C 7F0879BC 00000000 */ nop +/* 0BC530 7F0879C0 0FC2968E */ jal cur_player_get_sight_onscreen_control +/* 0BC534 7F0879C4 00000000 */ nop +/* 0BC538 7F0879C8 0002282B */ sltu $a1, $zero, $v0 +/* 0BC53C 7F0879CC 14A0000B */ bnez $a1, .Ljp7F0879FC +/* 0BC540 7F0879D0 00000000 */ nop +.Ljp7F0879D4: +/* 0BC544 7F0879D4 0FC26C01 */ jal get_num_players +/* 0BC548 7F0879D8 00000000 */ nop +/* 0BC54C 7F0879DC 28430002 */ slti $v1, $v0, 2 +/* 0BC550 7F0879E0 38650001 */ xori $a1, $v1, 1 +/* 0BC554 7F0879E4 10A00005 */ beqz $a1, .Ljp7F0879FC +/* 0BC558 7F0879E8 3C0C8008 */ lui $t4, %hi(pPlayersPerm) # $t4, 0x8008 +/* 0BC55C 7F0879EC 8D8CA124 */ lw $t4, %lo(pPlayersPerm)($t4) +/* 0BC560 7F0879F0 9185006B */ lbu $a1, 0x6b($t4) +/* 0BC564 7F0879F4 0005682B */ sltu $t5, $zero, $a1 +/* 0BC568 7F0879F8 01A02825 */ move $a1, $t5 +.Ljp7F0879FC: +/* 0BC56C 7F0879FC 0FC1AAE5 */ jal set_unset_bitflags +/* 0BC570 7F087A00 24040001 */ li $a0, 1 +/* 0BC574 7F087A04 3C028003 */ lui $v0, %hi(cameramode) # $v0, 0x8003 +/* 0BC578 7F087A08 8C4264D4 */ lw $v0, %lo(cameramode)($v0) +/* 0BC57C 7F087A0C 24010004 */ li $at, 4 +/* 0BC580 7F087A10 10400008 */ beqz $v0, .Ljp7F087A34 +/* 0BC584 7F087A14 00000000 */ nop +/* 0BC588 7F087A18 14410003 */ bne $v0, $at, .Ljp7F087A28 +/* 0BC58C 7F087A1C 3C0E8003 */ lui $t6, %hi(D_800364B0) # $t6, 0x8003 +/* 0BC590 7F087A20 8DCE64F0 */ lw $t6, %lo(D_800364B0)($t6) +/* 0BC594 7F087A24 15C00003 */ bnez $t6, .Ljp7F087A34 +.Ljp7F087A28: +/* 0BC598 7F087A28 2401000A */ li $at, 10 +/* 0BC59C 7F087A2C 14410014 */ bne $v0, $at, .Ljp7F087A80 +/* 0BC5A0 7F087A30 83A40023 */ lb $a0, 0x23($sp) +.Ljp7F087A34: +/* 0BC5A4 7F087A34 0FC26F3C */ jal get_cur_playernum +/* 0BC5A8 7F087A38 00000000 */ nop +/* 0BC5AC 7F087A3C 14400008 */ bnez $v0, .Ljp7F087A60 +/* 0BC5B0 7F087A40 3C088008 */ lui $t0, %hi(pPlayer) # $t0, 0x8008 +/* 0BC5B4 7F087A44 3C028008 */ lui $v0, %hi(mission_timer) # $v0, 0x8008 +/* 0BC5B8 7F087A48 24429A60 */ addiu $v0, %lo(mission_timer) # addiu $v0, $v0, -0x65a0 +/* 0BC5BC 7F087A4C 3C188005 */ lui $t8, %hi(clock_timer) # $t8, 0x8005 +/* 0BC5C0 7F087A50 8F1883A4 */ lw $t8, %lo(clock_timer)($t8) +/* 0BC5C4 7F087A54 8C4F0000 */ lw $t7, ($v0) +/* 0BC5C8 7F087A58 01F8C821 */ addu $t9, $t7, $t8 +/* 0BC5CC 7F087A5C AC590000 */ sw $t9, ($v0) +.Ljp7F087A60: +/* 0BC5D0 7F087A60 8D08A120 */ lw $t0, %lo(pPlayer)($t0) +/* 0BC5D4 7F087A64 83A40023 */ lb $a0, 0x23($sp) +/* 0BC5D8 7F087A68 83A50027 */ lb $a1, 0x27($sp) +/* 0BC5DC 7F087A6C 97A6002A */ lhu $a2, 0x2a($sp) +/* 0BC5E0 7F087A70 0FC2133E */ jal MoveBond +/* 0BC5E4 7F087A74 950703B4 */ lhu $a3, 0x3b4($t0) +/* 0BC5E8 7F087A78 10000007 */ b .Ljp7F087A98 +/* 0BC5EC 7F087A7C 00000000 */ nop +.Ljp7F087A80: +/* 0BC5F0 7F087A80 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0BC5F4 7F087A84 8D29A120 */ lw $t1, %lo(pPlayer)($t1) +/* 0BC5F8 7F087A88 83A50027 */ lb $a1, 0x27($sp) +/* 0BC5FC 7F087A8C 97A6002A */ lhu $a2, 0x2a($sp) +/* 0BC600 7F087A90 0FC21C17 */ jal sub_GAME_7F086990 +/* 0BC604 7F087A94 952703B4 */ lhu $a3, 0x3b4($t1) +.Ljp7F087A98: +/* 0BC608 7F087A98 3C028008 */ lui $v0, %hi(watch_time_0) # $v0, 0x8008 +/* 0BC60C 7F087A9C 24429A64 */ addiu $v0, %lo(watch_time_0) # addiu $v0, $v0, -0x659c +/* 0BC610 7F087AA0 3C018005 */ lui $at, %hi(jpD_800484D0) # $at, 0x8005 +/* 0BC614 7F087AA4 C42884D0 */ lwc1 $f8, %lo(jpD_800484D0)($at) +/* 0BC618 7F087AA8 C4520000 */ lwc1 $f18, ($v0) +/* 0BC61C 7F087AAC 3C0A8003 */ lui $t2, %hi(stop_time_flag) # $t2, 0x8003 +/* 0BC620 7F087AB0 46089180 */ add.s $f6, $f18, $f8 +/* 0BC624 7F087AB4 E4460000 */ swc1 $f6, ($v0) +/* 0BC628 7F087AB8 8D4A64E0 */ lw $t2, %lo(stop_time_flag)($t2) +/* 0BC62C 7F087ABC 11400046 */ beqz $t2, .Ljp7F087BD8 +/* 0BC630 7F087AC0 00000000 */ nop +/* 0BC634 7F087AC4 0FC3021B */ jal get_controls_locked_flag +/* 0BC638 7F087AC8 00000000 */ nop +/* 0BC63C 7F087ACC 1440002F */ bnez $v0, .Ljp7F087B8C +/* 0BC640 7F087AD0 3C0C8008 */ lui $t4, %hi(pPlayer) # $t4, 0x8008 +/* 0BC644 7F087AD4 8D8CA120 */ lw $t4, %lo(pPlayer)($t4) +/* 0BC648 7F087AD8 97AB002A */ lhu $t3, 0x2a($sp) +/* 0BC64C 7F087ADC 24190002 */ li $t9, 2 +/* 0BC650 7F087AE0 958D03B4 */ lhu $t5, 0x3b4($t4) +/* 0BC654 7F087AE4 3C018003 */ lui $at, %hi(stop_time_flag) # $at, 0x8003 +/* 0BC658 7F087AE8 01A07027 */ not $t6, $t5 +/* 0BC65C 7F087AEC 016E7824 */ and $t7, $t3, $t6 +/* 0BC660 7F087AF0 31F8F030 */ andi $t8, $t7, 0xf030 +/* 0BC664 7F087AF4 13000025 */ beqz $t8, .Ljp7F087B8C +/* 0BC668 7F087AF8 00000000 */ nop +/* 0BC66C 7F087AFC 0FC203A7 */ jal check_if_fade_to_black_complete +/* 0BC670 7F087B00 AC3964E0 */ sw $t9, %lo(stop_time_flag)($at) +/* 0BC674 7F087B04 10400015 */ beqz $v0, .Ljp7F087B5C +/* 0BC678 7F087B08 3C088008 */ lui $t0, %hi(pPlayer) # $t0, 0x8008 +/* 0BC67C 7F087B0C 8D08A120 */ lw $t0, %lo(pPlayer)($t0) +/* 0BC680 7F087B10 44800000 */ mtc1 $zero, $f0 +/* 0BC684 7F087B14 00002025 */ move $a0, $zero +/* 0BC688 7F087B18 C50A03DC */ lwc1 $f10, 0x3dc($t0) +/* 0BC68C 7F087B1C 00002825 */ move $a1, $zero +/* 0BC690 7F087B20 460A0032 */ c.eq.s $f0, $f10 +/* 0BC694 7F087B24 00000000 */ nop +/* 0BC698 7F087B28 45000018 */ bc1f .Ljp7F087B8C +/* 0BC69C 7F087B2C 00000000 */ nop +/* 0BC6A0 7F087B30 44070000 */ mfc1 $a3, $f0 +/* 0BC6A4 7F087B34 0FC20370 */ jal set_rgba_tint +/* 0BC6A8 7F087B38 00003025 */ move $a2, $zero +/* 0BC6AC 7F087B3C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BC6B0 7F087B40 44816000 */ mtc1 $at, $f12 +/* 0BC6B4 7F087B44 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BC6B8 7F087B48 44817000 */ mtc1 $at, $f14 +/* 0BC6BC 7F087B4C 0FC2039A */ jal fade_to_over_seconds +/* 0BC6C0 7F087B50 00000000 */ nop +/* 0BC6C4 7F087B54 1000000D */ b .Ljp7F087B8C +/* 0BC6C8 7F087B58 00000000 */ nop +.Ljp7F087B5C: +/* 0BC6CC 7F087B5C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BC6D0 7F087B60 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC6D4 7F087B64 44800000 */ mtc1 $zero, $f0 +/* 0BC6D8 7F087B68 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BC6DC 7F087B6C C4500404 */ lwc1 $f16, 0x404($v0) +/* 0BC6E0 7F087B70 46100032 */ c.eq.s $f0, $f16 +/* 0BC6E4 7F087B74 00000000 */ nop +/* 0BC6E8 7F087B78 45000004 */ bc1f .Ljp7F087B8C +/* 0BC6EC 7F087B7C 00000000 */ nop +/* 0BC6F0 7F087B80 44817000 */ mtc1 $at, $f14 +/* 0BC6F4 7F087B84 0FC2039A */ jal fade_to_over_seconds +/* 0BC6F8 7F087B88 C44C03E0 */ lwc1 $f12, 0x3e0($v0) +.Ljp7F087B8C: +/* 0BC6FC 7F087B8C 3C098003 */ lui $t1, %hi(stop_time_flag) # $t1, 0x8003 +/* 0BC700 7F087B90 8D2964E0 */ lw $t1, %lo(stop_time_flag)($t1) +/* 0BC704 7F087B94 24010002 */ li $at, 2 +/* 0BC708 7F087B98 1521000F */ bne $t1, $at, .Ljp7F087BD8 +/* 0BC70C 7F087B9C 00000000 */ nop +/* 0BC710 7F087BA0 0FC203A7 */ jal check_if_fade_to_black_complete +/* 0BC714 7F087BA4 00000000 */ nop +/* 0BC718 7F087BA8 1040000B */ beqz $v0, .Ljp7F087BD8 +/* 0BC71C 7F087BAC 3C0A8008 */ lui $t2, %hi(pPlayer) # $t2, 0x8008 +/* 0BC720 7F087BB0 8D4AA120 */ lw $t2, %lo(pPlayer)($t2) +/* 0BC724 7F087BB4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BC728 7F087BB8 44812000 */ mtc1 $at, $f4 +/* 0BC72C 7F087BBC C55203DC */ lwc1 $f18, 0x3dc($t2) +/* 0BC730 7F087BC0 46122032 */ c.eq.s $f4, $f18 +/* 0BC734 7F087BC4 00000000 */ nop +/* 0BC738 7F087BC8 45000003 */ bc1f .Ljp7F087BD8 +/* 0BC73C 7F087BCC 00000000 */ nop +/* 0BC740 7F087BD0 0C001A5A */ jal return_to_title_from_level_end +/* 0BC744 7F087BD4 00000000 */ nop +.Ljp7F087BD8: +/* 0BC748 7F087BD8 3C0C8003 */ lui $t4, %hi(enable_move_after_cinema) # $t4, 0x8003 +/* 0BC74C 7F087BDC 8D8C64D8 */ lw $t4, %lo(enable_move_after_cinema)($t4) +/* 0BC750 7F087BE0 11800003 */ beqz $t4, .Ljp7F087BF0 +/* 0BC754 7F087BE4 00000000 */ nop +/* 0BC758 7F087BE8 0FC1EDF1 */ jal sub_GAME_7F07B1A4 +/* 0BC75C 7F087BEC 00000000 */ nop +.Ljp7F087BF0: +/* 0BC760 7F087BF0 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BC764 7F087BF4 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC768 7F087BF8 8C4D00D8 */ lw $t5, 0xd8($v0) +/* 0BC76C 7F087BFC 11A00019 */ beqz $t5, .Ljp7F087C64 +/* 0BC770 7F087C00 00000000 */ nop +/* 0BC774 7F087C04 8C430424 */ lw $v1, 0x424($v0) +/* 0BC778 7F087C08 24040001 */ li $a0, 1 +/* 0BC77C 7F087C0C 14600009 */ bnez $v1, .Ljp7F087C34 +/* 0BC780 7F087C10 00000000 */ nop +/* 0BC784 7F087C14 0FC1778D */ jal draw_item_in_hand_has_more_ammo +/* 0BC788 7F087C18 00002825 */ move $a1, $zero +/* 0BC78C 7F087C1C 00002025 */ move $a0, $zero +/* 0BC790 7F087C20 0FC1778D */ jal draw_item_in_hand_has_more_ammo +/* 0BC794 7F087C24 00002825 */ move $a1, $zero +/* 0BC798 7F087C28 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BC79C 7F087C2C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC7A0 7F087C30 8C430424 */ lw $v1, 0x424($v0) +.Ljp7F087C34: +/* 0BC7A4 7F087C34 1060000B */ beqz $v1, .Ljp7F087C64 +/* 0BC7A8 7F087C38 00000000 */ nop +/* 0BC7AC 7F087C3C 8C4B0428 */ lw $t3, 0x428($v0) +/* 0BC7B0 7F087C40 3C0E8003 */ lui $t6, %hi(D_80036510) # $t6, 0x8003 +/* 0BC7B4 7F087C44 11600007 */ beqz $t3, .Ljp7F087C64 +/* 0BC7B8 7F087C48 00000000 */ nop +/* 0BC7BC 7F087C4C 8DCE6550 */ lw $t6, %lo(D_80036510)($t6) +/* 0BC7C0 7F087C50 29C10003 */ slti $at, $t6, 3 +/* 0BC7C4 7F087C54 14200003 */ bnez $at, .Ljp7F087C64 +/* 0BC7C8 7F087C58 00000000 */ nop +/* 0BC7CC 7F087C5C 0C001A4C */ jal run_title_stage +/* 0BC7D0 7F087C60 00000000 */ nop +.Ljp7F087C64: +/* 0BC7D4 7F087C64 3C0F8003 */ lui $t7, %hi(cameramode) # $t7, 0x8003 +/* 0BC7D8 7F087C68 8DEF64D4 */ lw $t7, %lo(cameramode)($t7) +/* 0BC7DC 7F087C6C 2401000A */ li $at, 10 +/* 0BC7E0 7F087C70 15E10007 */ bne $t7, $at, .Ljp7F087C90 +/* 0BC7E4 7F087C74 00000000 */ nop +/* 0BC7E8 7F087C78 0FC203A7 */ jal check_if_fade_to_black_complete +/* 0BC7EC 7F087C7C 00000000 */ nop +/* 0BC7F0 7F087C80 10400003 */ beqz $v0, .Ljp7F087C90 +/* 0BC7F4 7F087C84 00000000 */ nop +/* 0BC7F8 7F087C88 0C001A4C */ jal run_title_stage +/* 0BC7FC 7F087C8C 00000000 */ nop +.Ljp7F087C90: +/* 0BC800 7F087C90 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 0BC804 7F087C94 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 0BC808 7F087C98 97B8002A */ lhu $t8, 0x2a($sp) +/* 0BC80C 7F087C9C A73803B4 */ sh $t8, 0x3b4($t9) +/* 0BC810 7F087CA0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BC814 7F087CA4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0BC818 7F087CA8 03E00008 */ jr $ra +/* 0BC81C 7F087CAC 00000000 */ nop +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0875E4(s32 arg0) { + // Node 0 + sub_GAME_7F0BCA34(pPlayer->current_model_xpos); + pPlayer->current_room_xpos = (f32) (get_room_data_float1() * pPlayer->current_model_xpos); + pPlayer->current_room_ypos = (f32) (get_room_data_float1() * pPlayer->current_model_ypos); + pPlayer->current_room_zpos = (f32) (get_room_data_float1() * pPlayer->current_model_zpos); + return sub_GAME_7F0BC624(arg0); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0875E4 +/* 0BC114 7F0875E4 3C058008 */ lui $a1, %hi(pPlayer) +/* 0BC118 7F0875E8 8CA5A0B0 */ lw $a1, %lo(pPlayer)($a1) +/* 0BC11C 7F0875EC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0BC120 7F0875F0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BC124 7F0875F4 AFA40018 */ sw $a0, 0x18($sp) +/* 0BC128 7F0875F8 0FC2F28D */ jal sub_GAME_7F0BCA34 +/* 0BC12C 7F0875FC 24A50038 */ addiu $a1, $a1, 0x38 +/* 0BC130 7F087600 0FC2D20F */ jal get_room_data_float1 +/* 0BC134 7F087604 00000000 */ nop +/* 0BC138 7F087608 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BC13C 7F08760C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC140 7F087610 C4440038 */ lwc1 $f4, 0x38($v0) +/* 0BC144 7F087614 46040182 */ mul.s $f6, $f0, $f4 +/* 0BC148 7F087618 0FC2D20F */ jal get_room_data_float1 +/* 0BC14C 7F08761C E4460050 */ swc1 $f6, 0x50($v0) +/* 0BC150 7F087620 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BC154 7F087624 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC158 7F087628 C448003C */ lwc1 $f8, 0x3c($v0) +/* 0BC15C 7F08762C 46080282 */ mul.s $f10, $f0, $f8 +/* 0BC160 7F087630 0FC2D20F */ jal get_room_data_float1 +/* 0BC164 7F087634 E44A0054 */ swc1 $f10, 0x54($v0) +/* 0BC168 7F087638 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BC16C 7F08763C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC170 7F087640 C4500040 */ lwc1 $f16, 0x40($v0) +/* 0BC174 7F087644 46100482 */ mul.s $f18, $f0, $f16 +/* 0BC178 7F087648 E4520058 */ swc1 $f18, 0x58($v0) +/* 0BC17C 7F08764C 0FC2F189 */ jal sub_GAME_7F0BC624 +/* 0BC180 7F087650 8FA40018 */ lw $a0, 0x18($sp) +/* 0BC184 7F087654 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BC188 7F087658 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0BC18C 7F08765C 03E00008 */ jr $ra +/* 0BC190 7F087660 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void store_BONDdata_curpos_to_previous(void) { + // Node 0 + pPlayer->previous_model_xpos = (f32) pPlayer->current_model_xpos; + pPlayer->previous_model_ypos = (f32) pPlayer->current_model_ypos; + pPlayer->previous_model_zpos = (f32) pPlayer->current_model_zpos; + return matrix_4x4_rotate_vector_in_place(get_BONDdata_field_10CC(), (pPlayer + 0x44)); +} +#else +GLOBAL_ASM( +.text +glabel store_BONDdata_curpos_to_previous +/* 0BC194 7F087664 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BC198 7F087668 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0BC19C 7F08766C 8C620000 */ lw $v0, ($v1) +/* 0BC1A0 7F087670 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0BC1A4 7F087674 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BC1A8 7F087678 C4440038 */ lwc1 $f4, 0x38($v0) +/* 0BC1AC 7F08767C E4440044 */ swc1 $f4, 0x44($v0) +/* 0BC1B0 7F087680 8C620000 */ lw $v0, ($v1) +/* 0BC1B4 7F087684 C446003C */ lwc1 $f6, 0x3c($v0) +/* 0BC1B8 7F087688 E4460048 */ swc1 $f6, 0x48($v0) +/* 0BC1BC 7F08768C 8C620000 */ lw $v0, ($v1) +/* 0BC1C0 7F087690 C4480040 */ lwc1 $f8, 0x40($v0) +/* 0BC1C4 7F087694 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0BC1C8 7F087698 E448004C */ swc1 $f8, 0x4c($v0) +/* 0BC1CC 7F08769C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BC1D0 7F0876A0 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0BC1D4 7F0876A4 8C650000 */ lw $a1, ($v1) +/* 0BC1D8 7F0876A8 00402025 */ move $a0, $v0 +/* 0BC1DC 7F0876AC 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0BC1E0 7F0876B0 24A50044 */ addiu $a1, $a1, 0x44 +/* 0BC1E4 7F0876B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BC1E8 7F0876B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0BC1EC 7F0876BC 03E00008 */ jr $ra +/* 0BC1F0 7F0876C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0876C4(void *arg0, void *arg1, void *arg2) { + ? sp60; + ? spA0; + f32 spAC; + f32 spB0; + f32 spB4; + f32 spB8; + f32 spBC; + f32 spC0; + ? spC4; + s32 sp104; + ? sp108; + f32 temp_f10; + f32 temp_f6; + f32 temp_f4; + f32 temp_f16; + s32 temp_s0; + f32 temp_f0; + s32 temp_v1; + void *temp_a1; + void *phi_v0; + s32 phi_v1; + void *phi_a1; + + // Node 0 + sub_GAME_7F0875E4(get_cur_players_room()); + pPlayer->field_5C = sub_GAME_7F0BD6E0(); + pPlayer->field_60 = sub_GAME_7F0BD6E0(); + pPlayer->field_64 = sub_GAME_7F0BD6E0(); + pPlayer->field_68 = sub_GAME_7F0BD6E0(); + sp104 = sub_GAME_7F0BD6F8(2); + temp_f10 = ((*arg0 - pPlayer->current_model_xpos) * D_800364CC); + spAC = temp_f10; + temp_f6 = ((arg0->unk4 - pPlayer->current_model_ypos) * D_800364CC); + spB0 = temp_f6; + temp_f4 = ((arg0->unk8 - pPlayer->current_model_zpos) * D_800364CC); + spB4 = temp_f4; + temp_f16 = (*arg1 + temp_f10); + spB8 = temp_f16; + spBC = (f32) (arg1->unk4 + temp_f6); + spC0 = (f32) (arg1->unk8 + temp_f4); + sub_GAME_7F059424(&spC4, temp_f10, temp_f6, temp_f4, (f32) *arg1, (f32) arg1->unk4, (f32) arg1->unk8, (f32) *arg2, (f32) arg2->unk4, (f32) arg2->unk8); + guLookAtReflect(&sp108, sp104, spAC, spB0, spB4, temp_f16, spBC, spC0, (f32) *arg2, (f32) arg2->unk4, (f32) arg2->unk8); + sub_GAME_7F059424(pPlayer->field_64, *arg0, arg0->unk4, arg0->unk8, (f32) *arg1, (f32) arg1->unk4, (f32) arg1->unk8, (f32) *arg2, (f32) arg2->unk4, (f32) arg2->unk8); + sub_GAME_7F059708(pPlayer->field_68, *arg0, arg0->unk4, arg0->unk8, (f32) *arg1, (f32) arg1->unk4, (f32) arg1->unk8, (f32) *arg2, (f32) arg2->unk4, (f32) arg2->unk8); + temp_s0 = sub_GAME_7F0BD6E0(); + matrix_4x4_multiply(get_BONDdata_field_10DC(), &spC4, &sp60); + phi_a1 = &sp60; +loop_1: + // Node 1 + phi_v0 = phi_a1; + phi_v1 = 0; +loop_2: + // Node 2 + temp_f0 = *phi_v0; + temp_v1 = (phi_v1 + 4); + if (32000.0f < temp_f0) + { + // Node 3 + *phi_v0 = 32000.0f; + } + else + { + // Node 4 + if (temp_f0 < -32000.0f) + { + // Node 5 + *phi_v0 = -32000.0f; + } + } + // Node 6 + phi_v0 = (phi_v0 + 4); + phi_v1 = temp_v1; + if (temp_v1 != 0x10) + { + goto loop_2; + } + // Node 7 + temp_a1 = (phi_a1 + 0x10); + phi_a1 = temp_a1; + if (temp_a1 != &spA0) + { + goto loop_1; + } + // Node 8 + guMtxF2L(-32000.0f, &sp60, temp_s0, &spA0); + set_BONDdata_field_10E0(temp_s0); + matrix_scalar_multiply(sub_GAME_7F0B4878(), &spC4); + guMtxF2L(&spC4, pPlayer->field_5C); + sub_GAME_7F059334(pPlayer->field_5C, pPlayer->field_60); + set_BONDdata_field_10C8(pPlayer->field_5C); + set_BONDdata_field_10C4(pPlayer->field_60); + copy_BONDdata_field_10CC_to_10E8_set_10CC(pPlayer->field_64); + sub_GAME_7F078424(pPlayer->field_68); + sub_GAME_7F078464(sp104); + sub_GAME_7F0785DC(); + return store_BONDdata_curpos_to_previous(); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0876C4 +/* 0BC1F4 7F0876C4 27BDFEB8 */ addiu $sp, $sp, -0x148 +/* 0BC1F8 7F0876C8 AFBF0044 */ sw $ra, 0x44($sp) +/* 0BC1FC 7F0876CC AFB1003C */ sw $s1, 0x3c($sp) +/* 0BC200 7F0876D0 AFB00038 */ sw $s0, 0x38($sp) +/* 0BC204 7F0876D4 00A08025 */ move $s0, $a1 +/* 0BC208 7F0876D8 00C08825 */ move $s1, $a2 +/* 0BC20C 7F0876DC AFB20040 */ sw $s2, 0x40($sp) +/* 0BC210 7F0876E0 0FC227E6 */ jal get_cur_players_room +/* 0BC214 7F0876E4 AFA40148 */ sw $a0, 0x148($sp) +/* 0BC218 7F0876E8 0FC21D79 */ jal sub_GAME_7F0875E4 +/* 0BC21C 7F0876EC 00402025 */ move $a0, $v0 +/* 0BC220 7F0876F0 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BC224 7F0876F4 00000000 */ nop +/* 0BC228 7F0876F8 3C128008 */ lui $s2, %hi(pPlayer) +/* 0BC22C 7F0876FC 2652A0B0 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5f50 +/* 0BC230 7F087700 8E4E0000 */ lw $t6, ($s2) +/* 0BC234 7F087704 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BC238 7F087708 ADC2005C */ sw $v0, 0x5c($t6) +/* 0BC23C 7F08770C 8E4F0000 */ lw $t7, ($s2) +/* 0BC240 7F087710 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BC244 7F087714 ADE20060 */ sw $v0, 0x60($t7) +/* 0BC248 7F087718 8E580000 */ lw $t8, ($s2) +/* 0BC24C 7F08771C 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BC250 7F087720 AF020064 */ sw $v0, 0x64($t8) +/* 0BC254 7F087724 8E590000 */ lw $t9, ($s2) +/* 0BC258 7F087728 24040002 */ li $a0, 2 +/* 0BC25C 7F08772C 0FC2F5BE */ jal sub_GAME_7F0BD6F8 +/* 0BC260 7F087730 AF220068 */ sw $v0, 0x68($t9) +/* 0BC264 7F087734 8FA80148 */ lw $t0, 0x148($sp) +/* 0BC268 7F087738 8E430000 */ lw $v1, ($s2) +/* 0BC26C 7F08773C AFA20104 */ sw $v0, 0x104($sp) +/* 0BC270 7F087740 C5040000 */ lwc1 $f4, ($t0) +/* 0BC274 7F087744 C4660038 */ lwc1 $f6, 0x38($v1) +/* 0BC278 7F087748 3C018003 */ lui $at, %hi(D_800364CC) +/* 0BC27C 7F08774C C42064CC */ lwc1 $f0, %lo(D_800364CC)($at) +/* 0BC280 7F087750 46062201 */ sub.s $f8, $f4, $f6 +/* 0BC284 7F087754 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 0BC288 7F087758 46004282 */ mul.s $f10, $f8, $f0 +/* 0BC28C 7F08775C E7AA00AC */ swc1 $f10, 0xac($sp) +/* 0BC290 7F087760 C5100004 */ lwc1 $f16, 4($t0) +/* 0BC294 7F087764 C472003C */ lwc1 $f18, 0x3c($v1) +/* 0BC298 7F087768 44055000 */ mfc1 $a1, $f10 +/* 0BC29C 7F08776C 46128101 */ sub.s $f4, $f16, $f18 +/* 0BC2A0 7F087770 46002182 */ mul.s $f6, $f4, $f0 +/* 0BC2A4 7F087774 E7A600B0 */ swc1 $f6, 0xb0($sp) +/* 0BC2A8 7F087778 C5080008 */ lwc1 $f8, 8($t0) +/* 0BC2AC 7F08777C C4700040 */ lwc1 $f16, 0x40($v1) +/* 0BC2B0 7F087780 44063000 */ mfc1 $a2, $f6 +/* 0BC2B4 7F087784 46104481 */ sub.s $f18, $f8, $f16 +/* 0BC2B8 7F087788 46009102 */ mul.s $f4, $f18, $f0 +/* 0BC2BC 7F08778C E7A400B4 */ swc1 $f4, 0xb4($sp) +/* 0BC2C0 7F087790 C6080000 */ lwc1 $f8, ($s0) +/* 0BC2C4 7F087794 44072000 */ mfc1 $a3, $f4 +/* 0BC2C8 7F087798 460A4400 */ add.s $f16, $f8, $f10 +/* 0BC2CC 7F08779C E7B000B8 */ swc1 $f16, 0xb8($sp) +/* 0BC2D0 7F0877A0 C6120004 */ lwc1 $f18, 4($s0) +/* 0BC2D4 7F0877A4 46069200 */ add.s $f8, $f18, $f6 +/* 0BC2D8 7F0877A8 E7A800BC */ swc1 $f8, 0xbc($sp) +/* 0BC2DC 7F0877AC C6100008 */ lwc1 $f16, 8($s0) +/* 0BC2E0 7F0877B0 46048480 */ add.s $f18, $f16, $f4 +/* 0BC2E4 7F0877B4 E7B200C0 */ swc1 $f18, 0xc0($sp) +/* 0BC2E8 7F0877B8 C6080000 */ lwc1 $f8, ($s0) +/* 0BC2EC 7F0877BC E7A80010 */ swc1 $f8, 0x10($sp) +/* 0BC2F0 7F0877C0 C6100004 */ lwc1 $f16, 4($s0) +/* 0BC2F4 7F0877C4 E7B00014 */ swc1 $f16, 0x14($sp) +/* 0BC2F8 7F0877C8 C6120008 */ lwc1 $f18, 8($s0) +/* 0BC2FC 7F0877CC E7B20018 */ swc1 $f18, 0x18($sp) +/* 0BC300 7F0877D0 C62A0000 */ lwc1 $f10, ($s1) +/* 0BC304 7F0877D4 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 0BC308 7F0877D8 C6260004 */ lwc1 $f6, 4($s1) +/* 0BC30C 7F0877DC E7A60020 */ swc1 $f6, 0x20($sp) +/* 0BC310 7F0877E0 C6240008 */ lwc1 $f4, 8($s1) +/* 0BC314 7F0877E4 0FC16509 */ jal sub_GAME_7F059424 +/* 0BC318 7F0877E8 E7A40024 */ swc1 $f4, 0x24($sp) +/* 0BC31C 7F0877EC C7A800B4 */ lwc1 $f8, 0xb4($sp) +/* 0BC320 7F0877F0 C7B000B8 */ lwc1 $f16, 0xb8($sp) +/* 0BC324 7F0877F4 C7B200BC */ lwc1 $f18, 0xbc($sp) +/* 0BC328 7F0877F8 C7AA00C0 */ lwc1 $f10, 0xc0($sp) +/* 0BC32C 7F0877FC E7A80010 */ swc1 $f8, 0x10($sp) +/* 0BC330 7F087800 E7B00014 */ swc1 $f16, 0x14($sp) +/* 0BC334 7F087804 E7B20018 */ swc1 $f18, 0x18($sp) +/* 0BC338 7F087808 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 0BC33C 7F08780C C6260000 */ lwc1 $f6, ($s1) +/* 0BC340 7F087810 27A40108 */ addiu $a0, $sp, 0x108 +/* 0BC344 7F087814 8FA50104 */ lw $a1, 0x104($sp) +/* 0BC348 7F087818 E7A60020 */ swc1 $f6, 0x20($sp) +/* 0BC34C 7F08781C C6240004 */ lwc1 $f4, 4($s1) +/* 0BC350 7F087820 8FA600AC */ lw $a2, 0xac($sp) +/* 0BC354 7F087824 8FA700B0 */ lw $a3, 0xb0($sp) +/* 0BC358 7F087828 E7A40024 */ swc1 $f4, 0x24($sp) +/* 0BC35C 7F08782C C6280008 */ lwc1 $f8, 8($s1) +/* 0BC360 7F087830 0C005CDC */ jal guLookAtReflect +/* 0BC364 7F087834 E7A80028 */ swc1 $f8, 0x28($sp) +/* 0BC368 7F087838 8FA20148 */ lw $v0, 0x148($sp) +/* 0BC36C 7F08783C 8E490000 */ lw $t1, ($s2) +/* 0BC370 7F087840 C6100000 */ lwc1 $f16, ($s0) +/* 0BC374 7F087844 8C450000 */ lw $a1, ($v0) +/* 0BC378 7F087848 8C460004 */ lw $a2, 4($v0) +/* 0BC37C 7F08784C 8C470008 */ lw $a3, 8($v0) +/* 0BC380 7F087850 8D240064 */ lw $a0, 0x64($t1) +/* 0BC384 7F087854 E7B00010 */ swc1 $f16, 0x10($sp) +/* 0BC388 7F087858 C6120004 */ lwc1 $f18, 4($s0) +/* 0BC38C 7F08785C E7B20014 */ swc1 $f18, 0x14($sp) +/* 0BC390 7F087860 C60A0008 */ lwc1 $f10, 8($s0) +/* 0BC394 7F087864 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 0BC398 7F087868 C6260000 */ lwc1 $f6, ($s1) +/* 0BC39C 7F08786C E7A6001C */ swc1 $f6, 0x1c($sp) +/* 0BC3A0 7F087870 C6240004 */ lwc1 $f4, 4($s1) +/* 0BC3A4 7F087874 E7A40020 */ swc1 $f4, 0x20($sp) +/* 0BC3A8 7F087878 C6280008 */ lwc1 $f8, 8($s1) +/* 0BC3AC 7F08787C 0FC16509 */ jal sub_GAME_7F059424 +/* 0BC3B0 7F087880 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0BC3B4 7F087884 8FAB0148 */ lw $t3, 0x148($sp) +/* 0BC3B8 7F087888 8E4A0000 */ lw $t2, ($s2) +/* 0BC3BC 7F08788C C6100000 */ lwc1 $f16, ($s0) +/* 0BC3C0 7F087890 8D650000 */ lw $a1, ($t3) +/* 0BC3C4 7F087894 8D660004 */ lw $a2, 4($t3) +/* 0BC3C8 7F087898 8D670008 */ lw $a3, 8($t3) +/* 0BC3CC 7F08789C 8D440068 */ lw $a0, 0x68($t2) +/* 0BC3D0 7F0878A0 E7B00010 */ swc1 $f16, 0x10($sp) +/* 0BC3D4 7F0878A4 C6120004 */ lwc1 $f18, 4($s0) +/* 0BC3D8 7F0878A8 E7B20014 */ swc1 $f18, 0x14($sp) +/* 0BC3DC 7F0878AC C60A0008 */ lwc1 $f10, 8($s0) +/* 0BC3E0 7F0878B0 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 0BC3E4 7F0878B4 C6260000 */ lwc1 $f6, ($s1) +/* 0BC3E8 7F0878B8 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 0BC3EC 7F0878BC C6240004 */ lwc1 $f4, 4($s1) +/* 0BC3F0 7F0878C0 E7A40020 */ swc1 $f4, 0x20($sp) +/* 0BC3F4 7F0878C4 C6280008 */ lwc1 $f8, 8($s1) +/* 0BC3F8 7F0878C8 0FC165C2 */ jal sub_GAME_7F059708 +/* 0BC3FC 7F0878CC E7A80024 */ swc1 $f8, 0x24($sp) +/* 0BC400 7F0878D0 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BC404 7F0878D4 00000000 */ nop +/* 0BC408 7F0878D8 0FC1E0F9 */ jal get_BONDdata_field_10DC +/* 0BC40C 7F0878DC 00408025 */ move $s0, $v0 +/* 0BC410 7F0878E0 27B10060 */ addiu $s1, $sp, 0x60 +/* 0BC414 7F0878E4 02203025 */ move $a2, $s1 +/* 0BC418 7F0878E8 00402025 */ move $a0, $v0 +/* 0BC41C 7F0878EC 0FC16032 */ jal matrix_4x4_multiply +/* 0BC420 7F0878F0 27A500C4 */ addiu $a1, $sp, 0xc4 +/* 0BC424 7F0878F4 3C01C6FA */ li $at, 0xC6FA0000 # -32000.000000 +/* 0BC428 7F0878F8 44816000 */ mtc1 $at, $f12 +/* 0BC42C 7F0878FC 3C0146FA */ li $at, 0x46FA0000 # 32000.000000 +/* 0BC430 7F087900 44811000 */ mtc1 $at, $f2 +/* 0BC434 7F087904 27A50060 */ addiu $a1, $sp, 0x60 +/* 0BC438 7F087908 27A700A0 */ addiu $a3, $sp, 0xa0 +/* 0BC43C 7F08790C 24040010 */ li $a0, 16 +/* 0BC440 7F087910 00001825 */ move $v1, $zero +.L7F087914: +/* 0BC444 7F087914 00A01025 */ move $v0, $a1 +.L7F087918: +/* 0BC448 7F087918 C4400000 */ lwc1 $f0, ($v0) +/* 0BC44C 7F08791C 24630004 */ addiu $v1, $v1, 4 +/* 0BC450 7F087920 4600103C */ c.lt.s $f2, $f0 +/* 0BC454 7F087924 00000000 */ nop +/* 0BC458 7F087928 45020004 */ bc1fl .L7F08793C +/* 0BC45C 7F08792C 460C003C */ c.lt.s $f0, $f12 +/* 0BC460 7F087930 10000006 */ b .L7F08794C +/* 0BC464 7F087934 E4420000 */ swc1 $f2, ($v0) +/* 0BC468 7F087938 460C003C */ c.lt.s $f0, $f12 +.L7F08793C: +/* 0BC46C 7F08793C 00000000 */ nop +/* 0BC470 7F087940 45000002 */ bc1f .L7F08794C +/* 0BC474 7F087944 00000000 */ nop +/* 0BC478 7F087948 E44C0000 */ swc1 $f12, ($v0) +.L7F08794C: +/* 0BC47C 7F08794C 1464FFF2 */ bne $v1, $a0, .L7F087918 +/* 0BC480 7F087950 24420004 */ addiu $v0, $v0, 4 +/* 0BC484 7F087954 24A50010 */ addiu $a1, $a1, 0x10 +/* 0BC488 7F087958 54A7FFEE */ bnel $a1, $a3, .L7F087914 +/* 0BC48C 7F08795C 00001825 */ move $v1, $zero +/* 0BC490 7F087960 02202025 */ move $a0, $s1 +/* 0BC494 7F087964 0C003FC4 */ jal guMtxF2L +/* 0BC498 7F087968 02002825 */ move $a1, $s0 +/* 0BC49C 7F08796C 0FC1E0E1 */ jal set_BONDdata_field_10E0 +/* 0BC4A0 7F087970 02002025 */ move $a0, $s0 +/* 0BC4A4 7F087974 0FC2D21E */ jal sub_GAME_7F0B4878 +/* 0BC4A8 7F087978 00000000 */ nop +/* 0BC4AC 7F08797C 46000306 */ mov.s $f12, $f0 +/* 0BC4B0 7F087980 0FC1629F */ jal matrix_scalar_multiply +/* 0BC4B4 7F087984 27A500C4 */ addiu $a1, $sp, 0xc4 +/* 0BC4B8 7F087988 8E4C0000 */ lw $t4, ($s2) +/* 0BC4BC 7F08798C 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 0BC4C0 7F087990 0C003FC4 */ jal guMtxF2L +/* 0BC4C4 7F087994 8D85005C */ lw $a1, 0x5c($t4) +/* 0BC4C8 7F087998 8E430000 */ lw $v1, ($s2) +/* 0BC4CC 7F08799C 8C64005C */ lw $a0, 0x5c($v1) +/* 0BC4D0 7F0879A0 0FC164CD */ jal sub_GAME_7F059334 +/* 0BC4D4 7F0879A4 8C650060 */ lw $a1, 0x60($v1) +/* 0BC4D8 7F0879A8 8E4D0000 */ lw $t5, ($s2) +/* 0BC4DC 7F0879AC 0FC1E0D1 */ jal set_BONDdata_field_10C8 +/* 0BC4E0 7F0879B0 8DA4005C */ lw $a0, 0x5c($t5) +/* 0BC4E4 7F0879B4 8E4E0000 */ lw $t6, ($s2) +/* 0BC4E8 7F0879B8 0FC1E0C9 */ jal set_BONDdata_field_10C4 +/* 0BC4EC 7F0879BC 8DC40060 */ lw $a0, 0x60($t6) +/* 0BC4F0 7F0879C0 8E4F0000 */ lw $t7, ($s2) +/* 0BC4F4 7F0879C4 0FC1E0E9 */ jal copy_BONDdata_field_10CC_to_10E8_set_10CC +/* 0BC4F8 7F0879C8 8DE40064 */ lw $a0, 0x64($t7) +/* 0BC4FC 7F0879CC 8E580000 */ lw $t8, ($s2) +/* 0BC500 7F0879D0 0FC1E109 */ jal sub_GAME_7F078424 +/* 0BC504 7F0879D4 8F040068 */ lw $a0, 0x68($t8) +/* 0BC508 7F0879D8 0FC1E119 */ jal sub_GAME_7F078464 +/* 0BC50C 7F0879DC 8FA40104 */ lw $a0, 0x104($sp) +/* 0BC510 7F0879E0 0FC1E177 */ jal sub_GAME_7F0785DC +/* 0BC514 7F0879E4 00000000 */ nop +/* 0BC518 7F0879E8 0FC21D99 */ jal store_BONDdata_curpos_to_previous +/* 0BC51C 7F0879EC 00000000 */ nop +/* 0BC520 7F0879F0 8FBF0044 */ lw $ra, 0x44($sp) +/* 0BC524 7F0879F4 8FB00038 */ lw $s0, 0x38($sp) +/* 0BC528 7F0879F8 8FB1003C */ lw $s1, 0x3c($sp) +/* 0BC52C 7F0879FC 8FB20040 */ lw $s2, 0x40($sp) +/* 0BC530 7F087A00 03E00008 */ jr $ra +/* 0BC534 7F087A04 27BD0148 */ addiu $sp, $sp, 0x148 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F087A08(s32 arg0) { + f32 sp20; + f32 sp2C; + f32 sp30; + ? sp34; + f32 sp40; + ? sp4C; + void *sp58; + f32 sp5C; + f32 sp60; + f32 sp64; + f32 sp68; + f32 sp6C; + f32 sp70; + f32 sp74; + f32 sp78; + f32 sp7C; + void *temp_v1; + s32 temp_a0; + s32 temp_a1; + f32 temp_f2; + ? temp_ret; + f32 phi_f16; + f32 phi_f2; + + // Node 0 + if (*pPlayer == 1) + { + // Node 1 + sp74 = (f32) pPlayer->xpos; + sp78 = (f32) pPlayer->ypos; + sp7C = (f32) pPlayer->zpos; + sp68 = (f32) (pPlayer->xpos2 - pPlayer->xpos); + sp6C = (f32) (pPlayer->ypos2 - pPlayer->ypos); + sp70 = (f32) (pPlayer->zpos2 - pPlayer->zpos); + sp5C = (f32) pPlayer->xoffset; + sp60 = (f32) pPlayer->yoffset; + sp64 = (f32) pPlayer->zoffset; + } + else + { + // Node 2 + temp_v1 = (pPlayer + 0x488); + sp4C = (?32) D_80036830; + temp_a0 = (temp_v1 + 0x2c); + temp_a1 = (temp_v1 + 0x38); + sp4C.unk4 = (?32) D_80036830.unk4; + sp4C.unk8 = (?32) D_80036830.unk8; + if (pPlayer->bonddead == 0) + { + // Node 3 + sp58 = temp_v1; + sub_GAME_7F09C7C4(temp_a0, temp_a1, &sp4C); + } + else + { + // Node 4 + sp58 = temp_v1; + video_related_9(0, temp_a0, temp_a1, &sp4C); + } + // Node 5 + sp74 = (f32) temp_v1->unk2C; + sp78 = (f32) temp_v1->unk30; + sp7C = (f32) temp_v1->unk34; + sp68 = (f32) temp_v1->unk38; + sp6C = (f32) temp_v1->unk3C; + sp70 = (f32) temp_v1->unk40; + sp5C = (f32) temp_v1->unk44; + sp60 = (f32) temp_v1->unk48; + sp64 = (f32) temp_v1->unk4C; + } + // Node 6 + sub_GAME_7F0876C4(&sp74, &sp68, &sp5C); + sub_GAME_7F068190(&sp34, &sp40); + sp30 = sp44; + sp2C = sqrtf(((sp48 * sp48) + (sp40 * sp40))); + sp20 = get_curplay_vertical_rotation_in_degrees(); + temp_f2 = (atan2f(sp30, sp2C) + sp20); + phi_f16 = temp_f2; + if (D_8005526C <= temp_f2) + { + // Node 7 + phi_f16 = (temp_f2 - D_80055270); + } + // Node 8 + pPlayer->field_2A08 = (f32) phi_f16; + temp_ret = atan2f(-sp40, -sp48); + phi_f2 = temp_ret; + if (D_80055274 <= temp_ret) + { + // Node 9 + phi_f2 = (temp_ret - D_80055278); + } + // Node 10 + pPlayer->field_2A0C = (f32) phi_f2; + return arg0; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005526C +.word 0x40490fdb /*3.1415927*/ +glabel D_80055270 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055274 +.word 0x40490fdb /*3.1415927*/ +glabel D_80055278 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F087A08 +/* 0BC538 7F087A08 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BC53C 7F087A0C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC540 7F087A10 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0BC544 7F087A14 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BC548 7F087A18 AFA40080 */ sw $a0, 0x80($sp) +/* 0BC54C 7F087A1C 8C4E0000 */ lw $t6, ($v0) +/* 0BC550 7F087A20 24010001 */ li $at, 1 +/* 0BC554 7F087A24 3C0F8003 */ lui $t7, %hi(D_80036830) +/* 0BC558 7F087A28 15C1001A */ bne $t6, $at, .L7F087A94 +/* 0BC55C 7F087A2C 25EF6830 */ addiu $t7, %lo(D_80036830) # addiu $t7, $t7, 0x6830 +/* 0BC560 7F087A30 C4440004 */ lwc1 $f4, 4($v0) +/* 0BC564 7F087A34 E7A40074 */ swc1 $f4, 0x74($sp) +/* 0BC568 7F087A38 C4460008 */ lwc1 $f6, 8($v0) +/* 0BC56C 7F087A3C E7A60078 */ swc1 $f6, 0x78($sp) +/* 0BC570 7F087A40 C448000C */ lwc1 $f8, 0xc($v0) +/* 0BC574 7F087A44 E7A8007C */ swc1 $f8, 0x7c($sp) +/* 0BC578 7F087A48 C4520004 */ lwc1 $f18, 4($v0) +/* 0BC57C 7F087A4C C44A0010 */ lwc1 $f10, 0x10($v0) +/* 0BC580 7F087A50 46125101 */ sub.s $f4, $f10, $f18 +/* 0BC584 7F087A54 E7A40068 */ swc1 $f4, 0x68($sp) +/* 0BC588 7F087A58 C4480008 */ lwc1 $f8, 8($v0) +/* 0BC58C 7F087A5C C4460014 */ lwc1 $f6, 0x14($v0) +/* 0BC590 7F087A60 46083281 */ sub.s $f10, $f6, $f8 +/* 0BC594 7F087A64 E7AA006C */ swc1 $f10, 0x6c($sp) +/* 0BC598 7F087A68 C444000C */ lwc1 $f4, 0xc($v0) +/* 0BC59C 7F087A6C C4520018 */ lwc1 $f18, 0x18($v0) +/* 0BC5A0 7F087A70 46049181 */ sub.s $f6, $f18, $f4 +/* 0BC5A4 7F087A74 E7A60070 */ swc1 $f6, 0x70($sp) +/* 0BC5A8 7F087A78 C448001C */ lwc1 $f8, 0x1c($v0) +/* 0BC5AC 7F087A7C E7A8005C */ swc1 $f8, 0x5c($sp) +/* 0BC5B0 7F087A80 C44A0020 */ lwc1 $f10, 0x20($v0) +/* 0BC5B4 7F087A84 E7AA0060 */ swc1 $f10, 0x60($sp) +/* 0BC5B8 7F087A88 C4520024 */ lwc1 $f18, 0x24($v0) +/* 0BC5BC 7F087A8C 10000028 */ b .L7F087B30 +/* 0BC5C0 7F087A90 E7B20064 */ swc1 $f18, 0x64($sp) +.L7F087A94: +/* 0BC5C4 7F087A94 8DE10000 */ lw $at, ($t7) +/* 0BC5C8 7F087A98 27A6004C */ addiu $a2, $sp, 0x4c +/* 0BC5CC 7F087A9C 24430488 */ addiu $v1, $v0, 0x488 +/* 0BC5D0 7F087AA0 ACC10000 */ sw $at, ($a2) +/* 0BC5D4 7F087AA4 8DE80004 */ lw $t0, 4($t7) +/* 0BC5D8 7F087AA8 2464002C */ addiu $a0, $v1, 0x2c +/* 0BC5DC 7F087AAC 24650038 */ addiu $a1, $v1, 0x38 +/* 0BC5E0 7F087AB0 ACC80004 */ sw $t0, 4($a2) +/* 0BC5E4 7F087AB4 8DE10008 */ lw $at, 8($t7) +/* 0BC5E8 7F087AB8 ACC10008 */ sw $at, 8($a2) +/* 0BC5EC 7F087ABC 8C4900D8 */ lw $t1, 0xd8($v0) +/* 0BC5F0 7F087AC0 55200006 */ bnezl $t1, .L7F087ADC +/* 0BC5F4 7F087AC4 44806000 */ mtc1 $zero, $f12 +/* 0BC5F8 7F087AC8 0FC271F1 */ jal sub_GAME_7F09C7C4 +/* 0BC5FC 7F087ACC AFA30058 */ sw $v1, 0x58($sp) +/* 0BC600 7F087AD0 10000005 */ b .L7F087AE8 +/* 0BC604 7F087AD4 8FA30058 */ lw $v1, 0x58($sp) +/* 0BC608 7F087AD8 44806000 */ mtc1 $zero, $f12 +.L7F087ADC: +/* 0BC60C 7F087ADC 0C000EC1 */ jal video_related_9 +/* 0BC610 7F087AE0 AFA30058 */ sw $v1, 0x58($sp) +/* 0BC614 7F087AE4 8FA30058 */ lw $v1, 0x58($sp) +.L7F087AE8: +/* 0BC618 7F087AE8 C464002C */ lwc1 $f4, 0x2c($v1) +/* 0BC61C 7F087AEC E7A40074 */ swc1 $f4, 0x74($sp) +/* 0BC620 7F087AF0 C4660030 */ lwc1 $f6, 0x30($v1) +/* 0BC624 7F087AF4 E7A60078 */ swc1 $f6, 0x78($sp) +/* 0BC628 7F087AF8 C4680034 */ lwc1 $f8, 0x34($v1) +/* 0BC62C 7F087AFC E7A8007C */ swc1 $f8, 0x7c($sp) +/* 0BC630 7F087B00 C46A0038 */ lwc1 $f10, 0x38($v1) +/* 0BC634 7F087B04 E7AA0068 */ swc1 $f10, 0x68($sp) +/* 0BC638 7F087B08 C472003C */ lwc1 $f18, 0x3c($v1) +/* 0BC63C 7F087B0C E7B2006C */ swc1 $f18, 0x6c($sp) +/* 0BC640 7F087B10 C4640040 */ lwc1 $f4, 0x40($v1) +/* 0BC644 7F087B14 E7A40070 */ swc1 $f4, 0x70($sp) +/* 0BC648 7F087B18 C4660044 */ lwc1 $f6, 0x44($v1) +/* 0BC64C 7F087B1C E7A6005C */ swc1 $f6, 0x5c($sp) +/* 0BC650 7F087B20 C4680048 */ lwc1 $f8, 0x48($v1) +/* 0BC654 7F087B24 E7A80060 */ swc1 $f8, 0x60($sp) +/* 0BC658 7F087B28 C46A004C */ lwc1 $f10, 0x4c($v1) +/* 0BC65C 7F087B2C E7AA0064 */ swc1 $f10, 0x64($sp) +.L7F087B30: +/* 0BC660 7F087B30 27A40074 */ addiu $a0, $sp, 0x74 +/* 0BC664 7F087B34 27A50068 */ addiu $a1, $sp, 0x68 +/* 0BC668 7F087B38 0FC21DB1 */ jal sub_GAME_7F0876C4 +/* 0BC66C 7F087B3C 27A6005C */ addiu $a2, $sp, 0x5c +/* 0BC670 7F087B40 27A40034 */ addiu $a0, $sp, 0x34 +/* 0BC674 7F087B44 0FC1A064 */ jal sub_GAME_7F068190 +/* 0BC678 7F087B48 27A50040 */ addiu $a1, $sp, 0x40 +/* 0BC67C 7F087B4C C7A00048 */ lwc1 $f0, 0x48($sp) +/* 0BC680 7F087B50 C7A20040 */ lwc1 $f2, 0x40($sp) +/* 0BC684 7F087B54 C7B20044 */ lwc1 $f18, 0x44($sp) +/* 0BC688 7F087B58 46000102 */ mul.s $f4, $f0, $f0 +/* 0BC68C 7F087B5C E7B20030 */ swc1 $f18, 0x30($sp) +/* 0BC690 7F087B60 46021182 */ mul.s $f6, $f2, $f2 +/* 0BC694 7F087B64 0C007DF8 */ jal sqrtf +/* 0BC698 7F087B68 46062300 */ add.s $f12, $f4, $f6 +/* 0BC69C 7F087B6C 0FC227C4 */ jal get_curplay_vertical_rotation_in_degrees +/* 0BC6A0 7F087B70 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 0BC6A4 7F087B74 E7A00020 */ swc1 $f0, 0x20($sp) +/* 0BC6A8 7F087B78 C7AC0030 */ lwc1 $f12, 0x30($sp) +/* 0BC6AC 7F087B7C 0FC16A8C */ jal atan2f +/* 0BC6B0 7F087B80 C7AE002C */ lwc1 $f14, 0x2c($sp) +/* 0BC6B4 7F087B84 C7A80020 */ lwc1 $f8, 0x20($sp) +/* 0BC6B8 7F087B88 3C018005 */ lui $at, %hi(D_8005526C) +/* 0BC6BC 7F087B8C C42A526C */ lwc1 $f10, %lo(D_8005526C)($at) +/* 0BC6C0 7F087B90 46080080 */ add.s $f2, $f0, $f8 +/* 0BC6C4 7F087B94 3C018005 */ lui $at, %hi(D_80055270) +/* 0BC6C8 7F087B98 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0BC6CC 7F087B9C 4602503E */ c.le.s $f10, $f2 +/* 0BC6D0 7F087BA0 46001406 */ mov.s $f16, $f2 +/* 0BC6D4 7F087BA4 45000003 */ bc1f .L7F087BB4 +/* 0BC6D8 7F087BA8 00000000 */ nop +/* 0BC6DC 7F087BAC C4325270 */ lwc1 $f18, %lo(D_80055270)($at) +/* 0BC6E0 7F087BB0 46121401 */ sub.s $f16, $f2, $f18 +.L7F087BB4: +/* 0BC6E4 7F087BB4 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0BC6E8 7F087BB8 E5502A08 */ swc1 $f16, 0x2a08($t2) +/* 0BC6EC 7F087BBC C7AE0048 */ lwc1 $f14, 0x48($sp) +/* 0BC6F0 7F087BC0 C7AC0040 */ lwc1 $f12, 0x40($sp) +/* 0BC6F4 7F087BC4 46007387 */ neg.s $f14, $f14 +/* 0BC6F8 7F087BC8 0FC16A8C */ jal atan2f +/* 0BC6FC 7F087BCC 46006307 */ neg.s $f12, $f12 +/* 0BC700 7F087BD0 3C018005 */ lui $at, %hi(D_80055274) +/* 0BC704 7F087BD4 C4245274 */ lwc1 $f4, %lo(D_80055274)($at) +/* 0BC708 7F087BD8 46000086 */ mov.s $f2, $f0 +/* 0BC70C 7F087BDC 3C018005 */ lui $at, %hi(D_80055278) +/* 0BC710 7F087BE0 4600203E */ c.le.s $f4, $f0 +/* 0BC714 7F087BE4 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0BC718 7F087BE8 45000003 */ bc1f .L7F087BF8 +/* 0BC71C 7F087BEC 00000000 */ nop +/* 0BC720 7F087BF0 C4265278 */ lwc1 $f6, %lo(D_80055278)($at) +/* 0BC724 7F087BF4 46060081 */ sub.s $f2, $f0, $f6 +.L7F087BF8: +/* 0BC728 7F087BF8 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0BC72C 7F087BFC E5622A0C */ swc1 $f2, 0x2a0c($t3) +/* 0BC730 7F087C00 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BC734 7F087C04 8FA20080 */ lw $v0, 0x80($sp) +/* 0BC738 7F087C08 27BD0080 */ addiu $sp, $sp, 0x80 +/* 0BC73C 7F087C0C 03E00008 */ jr $ra +/* 0BC740 7F087C10 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 seems_to_load_cuff_microcode(s32 arg0, void *arg1, s32 arg2) { + s32 sp40; + s32 temp_a3; + void *temp_a0; + s32 temp_v1; + s32 temp_v1_2; + s32 temp_v1_3; + s32 temp_v1_4; + s32 temp_v1_5; + s32 temp_v1_6; + s32 temp_v0; + s32 temp_ret; + void *phi_a0; + s32 phi_a3; + s32 phi_v1; + void *phi_a0_2; + s32 phi_a2; + s32 phi_v1_2; + s32 phi_a3_2; + s32 phi_v1_3; + void *phi_a0_3; + s32 phi_a2_2; + s32 phi_v1_4; + s32 phi_a3_3; + void *phi_a0_4; + s32 phi_a2_3; + s32 phi_v1_5; + s32 phi_a3_4; + void *phi_a0_5; + s32 phi_a2_4; + s32 phi_v1_6; + s32 phi_a3_5; + s32 phi_return; + + // Node 0 + sp40 = getSelectedFolderBond(); + temp_a3 = (arg2 * 4); + temp_a0 = (arg1->unk8 + temp_a3); + phi_a0 = temp_a0; + phi_a3 = temp_a3; + if (*temp_a0 != 0) + { + // Node 1 + *extract_id_from_object_structure_microcode(arg0, *temp_a0, arg1->unk8, temp_a3) = (s32) ((u32) (pPlayer->field_41C ^ 3) < 1U); + phi_a0 = (arg1->unk8 + sp1C); + phi_a3 = sp1C; + } + // Node 2 + phi_a0_2 = phi_a0; + phi_a2 = arg1->unk8; + phi_v1_2 = arg2; + phi_a3_2 = phi_a3; + if (phi_a0->unk4 != 0) + { + // Node 3 + temp_v1 = ((u32) (pPlayer->field_41C ^ 1) < 1U); + phi_v1 = temp_v1; + if (temp_v1 == 0) + { + // Node 4 + temp_v1_2 = ((u32) (pPlayer->field_41C ^ 6) < 1U); + phi_v1 = temp_v1_2; + if (temp_v1_2 == 0) + { + // Node 5 + temp_v1_3 = ((u32) (pPlayer->field_41C ^ 7) < 1U); + phi_v1 = temp_v1_3; + if (temp_v1_3 == 0) + { + // Node 6 + temp_v1_4 = ((u32) (pPlayer->field_41C ^ 8) < 1U); + phi_v1 = temp_v1_4; + if (temp_v1_4 != 0) + { + // Node 7 + phi_v1 = (0U < (u32) (sp40 ^ 1)); + } + } + } + } + // Node 8 + *extract_id_from_object_structure_microcode(arg0, *(arg1->unk8 + ((arg2 + 1) * 4)), arg1->unk8, phi_a3) = (s32) phi_v1; + phi_a0_2 = (arg1->unk8 + sp1C); + phi_a2 = arg1->unk8; + phi_v1_2 = arg2; + phi_a3_2 = sp1C; + } + // Node 9 + phi_a0_3 = phi_a0_2; + phi_a2_2 = phi_a2; + phi_v1_4 = phi_v1_2; + phi_a3_3 = phi_a3_2; + if (phi_a0_2->unk8 != 0) + { + // Node 10 + temp_v1_5 = ((u32) (pPlayer->field_41C ^ 5) < 1U); + phi_v1_3 = temp_v1_5; + if (temp_v1_5 == 0) + { + // Node 11 + temp_v1_6 = ((u32) (pPlayer->field_41C ^ 8) < 1U); + phi_v1_3 = temp_v1_6; + if (temp_v1_6 != 0) + { + // Node 12 + phi_v1_3 = ((u32) (sp40 ^ 1) < 1U); + } + } + // Node 13 + *extract_id_from_object_structure_microcode(arg0, *(phi_a2 + ((phi_v1_2 + 2) * 4)), phi_a2, phi_a3_2) = (s32) phi_v1_3; + phi_a0_3 = (arg1->unk8 + sp1C); + phi_a2_2 = arg1->unk8; + phi_v1_4 = arg2; + phi_a3_3 = sp1C; + } + // Node 14 + phi_a0_4 = phi_a0_3; + phi_a2_3 = phi_a2_2; + phi_v1_5 = phi_v1_4; + phi_a3_4 = phi_a3_3; + if (phi_a0_3->unkC != 0) + { + // Node 15 + *extract_id_from_object_structure_microcode(arg0, *(phi_a2_2 + ((phi_v1_4 + 3) * 4)), phi_a2_2, phi_a3_3) = (s32) ((u32) pPlayer->field_41C < 1U); + phi_a0_4 = (arg1->unk8 + sp1C); + phi_a2_3 = arg1->unk8; + phi_v1_5 = arg2; + phi_a3_4 = sp1C; + } + // Node 16 + phi_a0_5 = phi_a0_4; + phi_a2_4 = phi_a2_3; + phi_v1_6 = phi_v1_5; + phi_a3_5 = phi_a3_4; + if (phi_a0_4->unk10 != 0) + { + // Node 17 + *extract_id_from_object_structure_microcode(arg0, *(phi_a2_3 + ((phi_v1_5 + 4) * 4)), phi_a2_3, phi_a3_4) = (s32) ((u32) (pPlayer->field_41C ^ 2) < 1U); + phi_a0_5 = (arg1->unk8 + sp1C); + phi_a2_4 = arg1->unk8; + phi_v1_6 = arg2; + phi_a3_5 = sp1C; + } + // Node 18 + temp_v0 = (phi_v1_6 + 5); + phi_return = temp_v0; + if (phi_a0_5->unk14 != 0) + { + // Node 19 + temp_ret = extract_id_from_object_structure_microcode(arg0, *(phi_a2_4 + (temp_v0 * 4)), phi_a2_4, phi_a3_5); + *temp_ret = (s32) ((u32) (pPlayer->field_41C ^ 4) < 1U); + phi_return = temp_ret; + } + // Node 20 + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel seems_to_load_cuff_microcode +/* 0BC744 7F087C14 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0BC748 7F087C18 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BC74C 7F087C1C AFA40048 */ sw $a0, 0x48($sp) +/* 0BC750 7F087C20 AFA5004C */ sw $a1, 0x4c($sp) +/* 0BC754 7F087C24 0FC0755B */ jal getSelectedFolderBond +/* 0BC758 7F087C28 AFA60050 */ sw $a2, 0x50($sp) +/* 0BC75C 7F087C2C 8FAE004C */ lw $t6, 0x4c($sp) +/* 0BC760 7F087C30 8FA30050 */ lw $v1, 0x50($sp) +/* 0BC764 7F087C34 AFA20040 */ sw $v0, 0x40($sp) +/* 0BC768 7F087C38 8DC60008 */ lw $a2, 8($t6) +/* 0BC76C 7F087C3C 00033880 */ sll $a3, $v1, 2 +/* 0BC770 7F087C40 00C72021 */ addu $a0, $a2, $a3 +/* 0BC774 7F087C44 8C850000 */ lw $a1, ($a0) +/* 0BC778 7F087C48 50A00010 */ beql $a1, $zero, .L7F087C8C +/* 0BC77C 7F087C4C 8C890004 */ lw $t1, 4($a0) +/* 0BC780 7F087C50 8FA40048 */ lw $a0, 0x48($sp) +/* 0BC784 7F087C54 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0BC788 7F087C58 AFA7001C */ sw $a3, 0x1c($sp) +/* 0BC78C 7F087C5C 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0BC790 7F087C60 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0BC794 7F087C64 8FA7001C */ lw $a3, 0x1c($sp) +/* 0BC798 7F087C68 8DF8041C */ lw $t8, 0x41c($t7) +/* 0BC79C 7F087C6C 3B190003 */ xori $t9, $t8, 3 +/* 0BC7A0 7F087C70 2F390001 */ sltiu $t9, $t9, 1 +/* 0BC7A4 7F087C74 AC590000 */ sw $t9, ($v0) +/* 0BC7A8 7F087C78 8FA8004C */ lw $t0, 0x4c($sp) +/* 0BC7AC 7F087C7C 8FA30050 */ lw $v1, 0x50($sp) +/* 0BC7B0 7F087C80 8D060008 */ lw $a2, 8($t0) +/* 0BC7B4 7F087C84 00C72021 */ addu $a0, $a2, $a3 +/* 0BC7B8 7F087C88 8C890004 */ lw $t1, 4($a0) +.L7F087C8C: +/* 0BC7BC 7F087C8C 24620001 */ addiu $v0, $v1, 1 +/* 0BC7C0 7F087C90 00025080 */ sll $t2, $v0, 2 +/* 0BC7C4 7F087C94 11200021 */ beqz $t1, .L7F087D1C +/* 0BC7C8 7F087C98 00CA5821 */ addu $t3, $a2, $t2 +/* 0BC7CC 7F087C9C 8D650000 */ lw $a1, ($t3) +/* 0BC7D0 7F087CA0 AFA7001C */ sw $a3, 0x1c($sp) +/* 0BC7D4 7F087CA4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0BC7D8 7F087CA8 8FA40048 */ lw $a0, 0x48($sp) +/* 0BC7DC 7F087CAC 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0BC7E0 7F087CB0 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0BC7E4 7F087CB4 8FA7001C */ lw $a3, 0x1c($sp) +/* 0BC7E8 7F087CB8 8D84041C */ lw $a0, 0x41c($t4) +/* 0BC7EC 7F087CBC 38830001 */ xori $v1, $a0, 1 +/* 0BC7F0 7F087CC0 2C630001 */ sltiu $v1, $v1, 1 +/* 0BC7F4 7F087CC4 54600011 */ bnezl $v1, .L7F087D0C +/* 0BC7F8 7F087CC8 AC430000 */ sw $v1, ($v0) +/* 0BC7FC 7F087CCC 38830006 */ xori $v1, $a0, 6 +/* 0BC800 7F087CD0 2C630001 */ sltiu $v1, $v1, 1 +/* 0BC804 7F087CD4 5460000D */ bnezl $v1, .L7F087D0C +/* 0BC808 7F087CD8 AC430000 */ sw $v1, ($v0) +/* 0BC80C 7F087CDC 38830007 */ xori $v1, $a0, 7 +/* 0BC810 7F087CE0 2C630001 */ sltiu $v1, $v1, 1 +/* 0BC814 7F087CE4 54600009 */ bnezl $v1, .L7F087D0C +/* 0BC818 7F087CE8 AC430000 */ sw $v1, ($v0) +/* 0BC81C 7F087CEC 38830008 */ xori $v1, $a0, 8 +/* 0BC820 7F087CF0 2C630001 */ sltiu $v1, $v1, 1 +/* 0BC824 7F087CF4 50600005 */ beql $v1, $zero, .L7F087D0C +/* 0BC828 7F087CF8 AC430000 */ sw $v1, ($v0) +/* 0BC82C 7F087CFC 8FA30040 */ lw $v1, 0x40($sp) +/* 0BC830 7F087D00 386D0001 */ xori $t5, $v1, 1 +/* 0BC834 7F087D04 000D182B */ sltu $v1, $zero, $t5 +/* 0BC838 7F087D08 AC430000 */ sw $v1, ($v0) +.L7F087D0C: +/* 0BC83C 7F087D0C 8FAE004C */ lw $t6, 0x4c($sp) +/* 0BC840 7F087D10 8FA30050 */ lw $v1, 0x50($sp) +/* 0BC844 7F087D14 8DC60008 */ lw $a2, 8($t6) +/* 0BC848 7F087D18 00C72021 */ addu $a0, $a2, $a3 +.L7F087D1C: +/* 0BC84C 7F087D1C 8C8F0008 */ lw $t7, 8($a0) +/* 0BC850 7F087D20 24620002 */ addiu $v0, $v1, 2 +/* 0BC854 7F087D24 0002C080 */ sll $t8, $v0, 2 +/* 0BC858 7F087D28 11E00019 */ beqz $t7, .L7F087D90 +/* 0BC85C 7F087D2C 00D8C821 */ addu $t9, $a2, $t8 +/* 0BC860 7F087D30 8F250000 */ lw $a1, ($t9) +/* 0BC864 7F087D34 AFA7001C */ sw $a3, 0x1c($sp) +/* 0BC868 7F087D38 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0BC86C 7F087D3C 8FA40048 */ lw $a0, 0x48($sp) +/* 0BC870 7F087D40 3C088008 */ lui $t0, %hi(pPlayer) +/* 0BC874 7F087D44 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0BC878 7F087D48 8FA7001C */ lw $a3, 0x1c($sp) +/* 0BC87C 7F087D4C 8D04041C */ lw $a0, 0x41c($t0) +/* 0BC880 7F087D50 38830005 */ xori $v1, $a0, 5 +/* 0BC884 7F087D54 2C630001 */ sltiu $v1, $v1, 1 +/* 0BC888 7F087D58 54600009 */ bnezl $v1, .L7F087D80 +/* 0BC88C 7F087D5C AC430000 */ sw $v1, ($v0) +/* 0BC890 7F087D60 38830008 */ xori $v1, $a0, 8 +/* 0BC894 7F087D64 2C630001 */ sltiu $v1, $v1, 1 +/* 0BC898 7F087D68 50600005 */ beql $v1, $zero, .L7F087D80 +/* 0BC89C 7F087D6C AC430000 */ sw $v1, ($v0) +/* 0BC8A0 7F087D70 8FA30040 */ lw $v1, 0x40($sp) +/* 0BC8A4 7F087D74 38690001 */ xori $t1, $v1, 1 +/* 0BC8A8 7F087D78 2D230001 */ sltiu $v1, $t1, 1 +/* 0BC8AC 7F087D7C AC430000 */ sw $v1, ($v0) +.L7F087D80: +/* 0BC8B0 7F087D80 8FAA004C */ lw $t2, 0x4c($sp) +/* 0BC8B4 7F087D84 8FA30050 */ lw $v1, 0x50($sp) +/* 0BC8B8 7F087D88 8D460008 */ lw $a2, 8($t2) +/* 0BC8BC 7F087D8C 00C72021 */ addu $a0, $a2, $a3 +.L7F087D90: +/* 0BC8C0 7F087D90 8C8B000C */ lw $t3, 0xc($a0) +/* 0BC8C4 7F087D94 24620003 */ addiu $v0, $v1, 3 +/* 0BC8C8 7F087D98 00026080 */ sll $t4, $v0, 2 +/* 0BC8CC 7F087D9C 1160000F */ beqz $t3, .L7F087DDC +/* 0BC8D0 7F087DA0 00CC6821 */ addu $t5, $a2, $t4 +/* 0BC8D4 7F087DA4 8DA50000 */ lw $a1, ($t5) +/* 0BC8D8 7F087DA8 AFA7001C */ sw $a3, 0x1c($sp) +/* 0BC8DC 7F087DAC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0BC8E0 7F087DB0 8FA40048 */ lw $a0, 0x48($sp) +/* 0BC8E4 7F087DB4 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0BC8E8 7F087DB8 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0BC8EC 7F087DBC 8FA7001C */ lw $a3, 0x1c($sp) +/* 0BC8F0 7F087DC0 8DCF041C */ lw $t7, 0x41c($t6) +/* 0BC8F4 7F087DC4 2DF80001 */ sltiu $t8, $t7, 1 +/* 0BC8F8 7F087DC8 AC580000 */ sw $t8, ($v0) +/* 0BC8FC 7F087DCC 8FB9004C */ lw $t9, 0x4c($sp) +/* 0BC900 7F087DD0 8FA30050 */ lw $v1, 0x50($sp) +/* 0BC904 7F087DD4 8F260008 */ lw $a2, 8($t9) +/* 0BC908 7F087DD8 00C72021 */ addu $a0, $a2, $a3 +.L7F087DDC: +/* 0BC90C 7F087DDC 8C880010 */ lw $t0, 0x10($a0) +/* 0BC910 7F087DE0 24620004 */ addiu $v0, $v1, 4 +/* 0BC914 7F087DE4 00024880 */ sll $t1, $v0, 2 +/* 0BC918 7F087DE8 11000010 */ beqz $t0, .L7F087E2C +/* 0BC91C 7F087DEC 00C95021 */ addu $t2, $a2, $t1 +/* 0BC920 7F087DF0 8D450000 */ lw $a1, ($t2) +/* 0BC924 7F087DF4 AFA7001C */ sw $a3, 0x1c($sp) +/* 0BC928 7F087DF8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0BC92C 7F087DFC 8FA40048 */ lw $a0, 0x48($sp) +/* 0BC930 7F087E00 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0BC934 7F087E04 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0BC938 7F087E08 8FA7001C */ lw $a3, 0x1c($sp) +/* 0BC93C 7F087E0C 8D6C041C */ lw $t4, 0x41c($t3) +/* 0BC940 7F087E10 398D0002 */ xori $t5, $t4, 2 +/* 0BC944 7F087E14 2DAD0001 */ sltiu $t5, $t5, 1 +/* 0BC948 7F087E18 AC4D0000 */ sw $t5, ($v0) +/* 0BC94C 7F087E1C 8FAE004C */ lw $t6, 0x4c($sp) +/* 0BC950 7F087E20 8FA30050 */ lw $v1, 0x50($sp) +/* 0BC954 7F087E24 8DC60008 */ lw $a2, 8($t6) +/* 0BC958 7F087E28 00C72021 */ addu $a0, $a2, $a3 +.L7F087E2C: +/* 0BC95C 7F087E2C 8C8F0014 */ lw $t7, 0x14($a0) +/* 0BC960 7F087E30 24620005 */ addiu $v0, $v1, 5 +/* 0BC964 7F087E34 0002C080 */ sll $t8, $v0, 2 +/* 0BC968 7F087E38 11E0000A */ beqz $t7, .L7F087E64 +/* 0BC96C 7F087E3C 8FA40048 */ lw $a0, 0x48($sp) +/* 0BC970 7F087E40 00D8C821 */ addu $t9, $a2, $t8 +/* 0BC974 7F087E44 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0BC978 7F087E48 8F250000 */ lw $a1, ($t9) +/* 0BC97C 7F087E4C 3C088008 */ lui $t0, %hi(pPlayer) +/* 0BC980 7F087E50 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0BC984 7F087E54 8D09041C */ lw $t1, 0x41c($t0) +/* 0BC988 7F087E58 392A0004 */ xori $t2, $t1, 4 +/* 0BC98C 7F087E5C 2D4A0001 */ sltiu $t2, $t2, 1 +/* 0BC990 7F087E60 AC4A0000 */ sw $t2, ($v0) +.L7F087E64: +/* 0BC994 7F087E64 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BC998 7F087E68 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0BC99C 7F087E6C 03E00008 */ jr $ra +/* 0BC9A0 7F087E70 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F087E74(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_8005527C +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055280 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F087E74 +/* 0BC9A4 7F087E74 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BC9A8 7F087E78 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC9AC 7F087E7C 27BDFE08 */ addiu $sp, $sp, -0x1f8 +/* 0BC9B0 7F087E80 AFBF002C */ sw $ra, 0x2c($sp) +/* 0BC9B4 7F087E84 AFA401F8 */ sw $a0, 0x1f8($sp) +/* 0BC9B8 7F087E88 8C4E01C8 */ lw $t6, 0x1c8($v0) +/* 0BC9BC 7F087E8C 51C001DE */ beql $t6, $zero, .L7F088608 +/* 0BC9C0 7F087E90 8FBF002C */ lw $ra, 0x2c($sp) +/* 0BC9C4 7F087E94 8C4F0200 */ lw $t7, 0x200($v0) +/* 0BC9C8 7F087E98 3C198003 */ lui $t9, %hi(D_8003683C) +/* 0BC9CC 7F087E9C 2739683C */ addiu $t9, %lo(D_8003683C) # addiu $t9, $t9, 0x683c +/* 0BC9D0 7F087EA0 11E001D8 */ beqz $t7, .L7F088604 +/* 0BC9D4 7F087EA4 27B801B8 */ addiu $t8, $sp, 0x1b8 +/* 0BC9D8 7F087EA8 272B003C */ addiu $t3, $t9, 0x3c +.L7F087EAC: +/* 0BC9DC 7F087EAC 8F210000 */ lw $at, ($t9) +/* 0BC9E0 7F087EB0 2739000C */ addiu $t9, $t9, 0xc +/* 0BC9E4 7F087EB4 2718000C */ addiu $t8, $t8, 0xc +/* 0BC9E8 7F087EB8 AF01FFF4 */ sw $at, -0xc($t8) +/* 0BC9EC 7F087EBC 8F21FFF8 */ lw $at, -8($t9) +/* 0BC9F0 7F087EC0 AF01FFF8 */ sw $at, -8($t8) +/* 0BC9F4 7F087EC4 8F21FFFC */ lw $at, -4($t9) +/* 0BC9F8 7F087EC8 172BFFF8 */ bne $t9, $t3, .L7F087EAC +/* 0BC9FC 7F087ECC AF01FFFC */ sw $at, -4($t8) +/* 0BCA00 7F087ED0 8F210000 */ lw $at, ($t9) +/* 0BCA04 7F087ED4 3C0D8003 */ lui $t5, %hi(D_8003687C) +/* 0BCA08 7F087ED8 25AD687C */ addiu $t5, %lo(D_8003687C) # addiu $t5, $t5, 0x687c +/* 0BCA0C 7F087EDC AF010000 */ sw $at, ($t8) +/* 0BCA10 7F087EE0 8DA10000 */ lw $at, ($t5) +/* 0BCA14 7F087EE4 27AC016C */ addiu $t4, $sp, 0x16c +/* 0BCA18 7F087EE8 8DAF0004 */ lw $t7, 4($t5) +/* 0BCA1C 7F087EEC AD810000 */ sw $at, ($t4) +/* 0BCA20 7F087EF0 8DA10008 */ lw $at, 8($t5) +/* 0BCA24 7F087EF4 24040001 */ li $a0, 1 +/* 0BCA28 7F087EF8 AD8F0004 */ sw $t7, 4($t4) +/* 0BCA2C 7F087EFC 0FC173C6 */ jal get_ptr_itemheader_in_hand +/* 0BCA30 7F087F00 AD810008 */ sw $at, 8($t4) +/* 0BCA34 7F087F04 AFA20160 */ sw $v0, 0x160($sp) +/* 0BCA38 7F087F08 3C048008 */ lui $a0, %hi(pPlayer) +/* 0BCA3C 7F087F0C 8C4A0008 */ lw $t2, 8($v0) +/* 0BCA40 7F087F10 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0BCA44 7F087F14 8D45000C */ lw $a1, 0xc($t2) +/* 0BCA48 7F087F18 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0BCA4C 7F087F1C 24840230 */ addiu $a0, $a0, 0x230 +/* 0BCA50 7F087F20 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BCA54 7F087F24 AFA20158 */ sw $v0, 0x158($sp) +/* 0BCA58 7F087F28 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0BCA5C 7F087F2C 44812000 */ mtc1 $at, $f4 +/* 0BCA60 7F087F30 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0BCA64 7F087F34 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0BCA68 7F087F38 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0BCA6C 7F087F3C 44813000 */ mtc1 $at, $f6 +/* 0BCA70 7F087F40 AFA20154 */ sw $v0, 0x154($sp) +/* 0BCA74 7F087F44 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BCA78 7F087F48 44814000 */ mtc1 $at, $f8 +/* 0BCA7C 7F087F4C 8D6611C4 */ lw $a2, 0x11c4($t3) +/* 0BCA80 7F087F50 3C073FBA */ lui $a3, (0x3FBA2E8C >> 16) # lui $a3, 0x3fba +/* 0BCA84 7F087F54 34E72E8C */ ori $a3, (0x3FBA2E8C & 0xFFFF) # ori $a3, $a3, 0x2e8c +/* 0BCA88 7F087F58 00402025 */ move $a0, $v0 +/* 0BCA8C 7F087F5C 27A50152 */ addiu $a1, $sp, 0x152 +/* 0BCA90 7F087F60 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0BCA94 7F087F64 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0BCA98 7F087F68 0C003FAC */ jal guPerspective +/* 0BCA9C 7F087F6C E7A80018 */ swc1 $f8, 0x18($sp) +/* 0BCAA0 7F087F70 8FA301F8 */ lw $v1, 0x1f8($sp) +/* 0BCAA4 7F087F74 3C190103 */ lui $t9, (0x01030040 >> 16) # lui $t9, 0x103 +/* 0BCAA8 7F087F78 37390040 */ ori $t9, (0x01030040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 0BCAAC 7F087F7C AC790000 */ sw $t9, ($v1) +/* 0BCAB0 7F087F80 8FB80154 */ lw $t8, 0x154($sp) +/* 0BCAB4 7F087F84 3C01C140 */ li $at, 0xC1400000 # -12.000000 +/* 0BCAB8 7F087F88 44810000 */ mtc1 $at, $f0 +/* 0BCABC 7F087F8C 3C018000 */ lui $at, 0x8000 +/* 0BCAC0 7F087F90 3C0CBC00 */ lui $t4, (0xBC00000E >> 16) # lui $t4, 0xbc00 +/* 0BCAC4 7F087F94 03017021 */ addu $t6, $t8, $at +/* 0BCAC8 7F087F98 358C000E */ ori $t4, (0xBC00000E & 0xFFFF) # ori $t4, $t4, 0xe +/* 0BCACC 7F087F9C AC6E0004 */ sw $t6, 4($v1) +/* 0BCAD0 7F087FA0 24670008 */ addiu $a3, $v1, 8 +/* 0BCAD4 7F087FA4 ACEC0000 */ sw $t4, ($a3) +/* 0BCAD8 7F087FA8 97AD0152 */ lhu $t5, 0x152($sp) +/* 0BCADC 7F087FAC 3C088008 */ lui $t0, %hi(pPlayer) +/* 0BCAE0 7F087FB0 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0BCAE4 7F087FB4 ACED0004 */ sw $t5, 4($a3) +/* 0BCAE8 7F087FB8 8D0F0000 */ lw $t7, ($t0) +/* 0BCAEC 7F087FBC 8FAB0158 */ lw $t3, 0x158($sp) +/* 0BCAF0 7F087FC0 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BCAF4 7F087FC4 8DEA01CC */ lw $t2, 0x1cc($t7) +/* 0BCAF8 7F087FC8 24E90008 */ addiu $t1, $a3, 8 +/* 0BCAFC 7F087FCC 27A4016C */ addiu $a0, $sp, 0x16c +/* 0BCB00 7F087FD0 AD6A0000 */ sw $t2, ($t3) +/* 0BCB04 7F087FD4 8D020000 */ lw $v0, ($t0) +/* 0BCB08 7F087FD8 27A60178 */ addiu $a2, $sp, 0x178 +/* 0BCB0C 7F087FDC C444054C */ lwc1 $f4, 0x54c($v0) +/* 0BCB10 7F087FE0 C44A0498 */ lwc1 $f10, 0x498($v0) +/* 0BCB14 7F087FE4 46002180 */ add.s $f6, $f4, $f0 +/* 0BCB18 7F087FE8 C4440544 */ lwc1 $f4, 0x544($v0) +/* 0BCB1C 7F087FEC 46065202 */ mul.s $f8, $f10, $f6 +/* 0BCB20 7F087FF0 C44A04A0 */ lwc1 $f10, 0x4a0($v0) +/* 0BCB24 7F087FF4 46005187 */ neg.s $f6, $f10 +/* 0BCB28 7F087FF8 46062282 */ mul.s $f10, $f4, $f6 +/* 0BCB2C 7F087FFC C444048C */ lwc1 $f4, 0x48c($v0) +/* 0BCB30 7F088000 460A2180 */ add.s $f6, $f4, $f10 +/* 0BCB34 7F088004 46064100 */ add.s $f4, $f8, $f6 +/* 0BCB38 7F088008 E7A4016C */ swc1 $f4, 0x16c($sp) +/* 0BCB3C 7F08800C C4480490 */ lwc1 $f8, 0x490($v0) +/* 0BCB40 7F088010 C44A0548 */ lwc1 $f10, 0x548($v0) +/* 0BCB44 7F088014 46085180 */ add.s $f6, $f10, $f8 +/* 0BCB48 7F088018 E7A60170 */ swc1 $f6, 0x170($sp) +/* 0BCB4C 7F08801C C44A054C */ lwc1 $f10, 0x54c($v0) +/* 0BCB50 7F088020 C44404A0 */ lwc1 $f4, 0x4a0($v0) +/* 0BCB54 7F088024 46005200 */ add.s $f8, $f10, $f0 +/* 0BCB58 7F088028 C44A0544 */ lwc1 $f10, 0x544($v0) +/* 0BCB5C 7F08802C 46082182 */ mul.s $f6, $f4, $f8 +/* 0BCB60 7F088030 C4440498 */ lwc1 $f4, 0x498($v0) +/* 0BCB64 7F088034 46045202 */ mul.s $f8, $f10, $f4 +/* 0BCB68 7F088038 C44A0494 */ lwc1 $f10, 0x494($v0) +/* 0BCB6C 7F08803C 46085100 */ add.s $f4, $f10, $f8 +/* 0BCB70 7F088040 44814000 */ mtc1 $at, $f8 +/* 0BCB74 7F088044 3C018005 */ lui $at, %hi(D_8005527C) +/* 0BCB78 7F088048 46043280 */ add.s $f10, $f6, $f4 +/* 0BCB7C 7F08804C E7AA0174 */ swc1 $f10, 0x174($sp) +/* 0BCB80 7F088050 C4460148 */ lwc1 $f6, 0x148($v0) +/* 0BCB84 7F088054 C42A527C */ lwc1 $f10, %lo(D_8005527C)($at) +/* 0BCB88 7F088058 AFA901F8 */ sw $t1, 0x1f8($sp) +/* 0BCB8C 7F08805C 46064101 */ sub.s $f4, $f8, $f6 +/* 0BCB90 7F088060 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BCB94 7F088064 44054000 */ mfc1 $a1, $f8 +/* 0BCB98 7F088068 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BCB9C 7F08806C 00000000 */ nop +/* 0BCBA0 7F088070 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0BCBA4 7F088074 00000000 */ nop +/* 0BCBA8 7F088078 00402025 */ move $a0, $v0 +/* 0BCBAC 7F08807C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0BCBB0 7F088080 27A50178 */ addiu $a1, $sp, 0x178 +/* 0BCBB4 7F088084 8FB90160 */ lw $t9, 0x160($sp) +/* 0BCBB8 7F088088 8724000E */ lh $a0, 0xe($t9) +/* 0BCBBC 7F08808C 0004C180 */ sll $t8, $a0, 6 +/* 0BCBC0 7F088090 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 0BCBC4 7F088094 03002025 */ move $a0, $t8 +/* 0BCBC8 7F088098 3C048008 */ lui $a0, %hi(pPlayer) +/* 0BCBCC 7F08809C 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0BCBD0 7F0880A0 AFA20164 */ sw $v0, 0x164($sp) +/* 0BCBD4 7F0880A4 8FA50160 */ lw $a1, 0x160($sp) +/* 0BCBD8 7F0880A8 24060004 */ li $a2, 4 +/* 0BCBDC 7F0880AC 0FC21F05 */ jal seems_to_load_cuff_microcode +/* 0BCBE0 7F0880B0 24840230 */ addiu $a0, $a0, 0x230 +/* 0BCBE4 7F0880B4 3C058008 */ lui $a1, %hi(pPlayer) +/* 0BCBE8 7F0880B8 8FAC0164 */ lw $t4, 0x164($sp) +/* 0BCBEC 7F0880BC 8CA5A0B0 */ lw $a1, %lo(pPlayer)($a1) +/* 0BCBF0 7F0880C0 27AE0178 */ addiu $t6, $sp, 0x178 +/* 0BCBF4 7F0880C4 AFAE01B8 */ sw $t6, 0x1b8($sp) +/* 0BCBF8 7F0880C8 27A401B8 */ addiu $a0, $sp, 0x1b8 +/* 0BCBFC 7F0880CC AFAC01C8 */ sw $t4, 0x1c8($sp) +/* 0BCC00 7F0880D0 0FC1BCBE */ jal subcalcmatrices +/* 0BCC04 7F0880D4 24A50230 */ addiu $a1, $a1, 0x230 +/* 0BCC08 7F0880D8 8FAD0160 */ lw $t5, 0x160($sp) +/* 0BCC0C 7F0880DC 3C0B8008 */ lui $t3, %hi(watch_time_0) +/* 0BCC10 7F0880E0 8D6B9A24 */ lw $t3, %lo(watch_time_0)($t3) +/* 0BCC14 7F0880E4 8DAF0008 */ lw $t7, 8($t5) +/* 0BCC18 7F0880E8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BCC1C 7F0880EC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BCC20 7F0880F0 8DEA0000 */ lw $t2, ($t7) +/* 0BCC24 7F0880F4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BCC28 7F0880F8 44810000 */ mtc1 $at, $f0 +/* 0BCC2C 7F0880FC 8D430004 */ lw $v1, 4($t2) +/* 0BCC30 7F088100 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0BCC34 7F088104 AFAB0090 */ sw $t3, 0x90($sp) +/* 0BCC38 7F088108 44812000 */ mtc1 $at, $f4 +/* 0BCC3C 7F08810C C4460258 */ lwc1 $f6, 0x258($v0) +/* 0BCC40 7F088110 46043383 */ div.s $f14, $f6, $f4 +/* 0BCC44 7F088114 460E003C */ c.lt.s $f0, $f14 +/* 0BCC48 7F088118 00000000 */ nop +/* 0BCC4C 7F08811C 45020003 */ bc1fl .L7F08812C +/* 0BCC50 7F088120 C46A0000 */ lwc1 $f10, ($v1) +/* 0BCC54 7F088124 46000386 */ mov.s $f14, $f0 +/* 0BCC58 7F088128 C46A0000 */ lwc1 $f10, ($v1) +.L7F08812C: +/* 0BCC5C 7F08812C C4480244 */ lwc1 $f8, 0x244($v0) +/* 0BCC60 7F088130 C44401D4 */ lwc1 $f4, 0x1d4($v0) +/* 0BCC64 7F088134 8FA80164 */ lw $t0, 0x164($sp) +/* 0BCC68 7F088138 46085182 */ mul.s $f6, $f10, $f8 +/* 0BCC6C 7F08813C 44808000 */ mtc1 $zero, $f16 +/* 0BCC70 7F088140 C5000030 */ lwc1 $f0, 0x30($t0) +/* 0BCC74 7F088144 27A40108 */ addiu $a0, $sp, 0x108 +/* 0BCC78 7F088148 44058000 */ mfc1 $a1, $f16 +/* 0BCC7C 7F08814C 44068000 */ mfc1 $a2, $f16 +/* 0BCC80 7F088150 44078000 */ mfc1 $a3, $f16 +/* 0BCC84 7F088154 46062281 */ sub.s $f10, $f4, $f6 +/* 0BCC88 7F088158 46005201 */ sub.s $f8, $f10, $f0 +/* 0BCC8C 7F08815C 460E4102 */ mul.s $f4, $f8, $f14 +/* 0BCC90 7F088160 46002180 */ add.s $f6, $f4, $f0 +/* 0BCC94 7F088164 E7A600B4 */ swc1 $f6, 0xb4($sp) +/* 0BCC98 7F088168 C4480244 */ lwc1 $f8, 0x244($v0) +/* 0BCC9C 7F08816C C46A0008 */ lwc1 $f10, 8($v1) +/* 0BCCA0 7F088170 C44601D8 */ lwc1 $f6, 0x1d8($v0) +/* 0BCCA4 7F088174 C5020034 */ lwc1 $f2, 0x34($t0) +/* 0BCCA8 7F088178 46085102 */ mul.s $f4, $f10, $f8 +/* 0BCCAC 7F08817C 46043280 */ add.s $f10, $f6, $f4 +/* 0BCCB0 7F088180 46025201 */ sub.s $f8, $f10, $f2 +/* 0BCCB4 7F088184 460E4182 */ mul.s $f6, $f8, $f14 +/* 0BCCB8 7F088188 46023100 */ add.s $f4, $f6, $f2 +/* 0BCCBC 7F08818C E7A400B8 */ swc1 $f4, 0xb8($sp) +/* 0BCCC0 7F088190 C4480244 */ lwc1 $f8, 0x244($v0) +/* 0BCCC4 7F088194 C46A0004 */ lwc1 $f10, 4($v1) +/* 0BCCC8 7F088198 C44401DC */ lwc1 $f4, 0x1dc($v0) +/* 0BCCCC 7F08819C C50C0038 */ lwc1 $f12, 0x38($t0) +/* 0BCCD0 7F0881A0 46085182 */ mul.s $f6, $f10, $f8 +/* 0BCCD4 7F0881A4 46062281 */ sub.s $f10, $f4, $f6 +/* 0BCCD8 7F0881A8 460C5201 */ sub.s $f8, $f10, $f12 +/* 0BCCDC 7F0881AC 460E4102 */ mul.s $f4, $f8, $f14 +/* 0BCCE0 7F0881B0 460C2180 */ add.s $f6, $f4, $f12 +/* 0BCCE4 7F0881B4 E7A600BC */ swc1 $f6, 0xbc($sp) +/* 0BCCE8 7F0881B8 C44A01E0 */ lwc1 $f10, 0x1e0($v0) +/* 0BCCEC 7F0881BC E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0BCCF0 7F0881C0 C44801E4 */ lwc1 $f8, 0x1e4($v0) +/* 0BCCF4 7F0881C4 E7A80014 */ swc1 $f8, 0x14($sp) +/* 0BCCF8 7F0881C8 C44401E8 */ lwc1 $f4, 0x1e8($v0) +/* 0BCCFC 7F0881CC E7A40018 */ swc1 $f4, 0x18($sp) +/* 0BCD00 7F0881D0 C44601EC */ lwc1 $f6, 0x1ec($v0) +/* 0BCD04 7F0881D4 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 0BCD08 7F0881D8 C44A01F0 */ lwc1 $f10, 0x1f0($v0) +/* 0BCD0C 7F0881DC E7AA0020 */ swc1 $f10, 0x20($sp) +/* 0BCD10 7F0881E0 C44801F4 */ lwc1 $f8, 0x1f4($v0) +/* 0BCD14 7F0881E4 E7AE0168 */ swc1 $f14, 0x168($sp) +/* 0BCD18 7F0881E8 0FC16642 */ jal sub_GAME_7F059908 +/* 0BCD1C 7F0881EC E7A80024 */ swc1 $f8, 0x24($sp) +/* 0BCD20 7F0881F0 8FA40164 */ lw $a0, 0x164($sp) +/* 0BCD24 7F0881F4 0FC16218 */ jal matrix_4x4_get_rotation_around_xyz +/* 0BCD28 7F0881F8 27A500FC */ addiu $a1, $sp, 0xfc +/* 0BCD2C 7F0881FC 27A40108 */ addiu $a0, $sp, 0x108 +/* 0BCD30 7F088200 0FC16218 */ jal matrix_4x4_get_rotation_around_xyz +/* 0BCD34 7F088204 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0BCD38 7F088208 27A400FC */ addiu $a0, $sp, 0xfc +/* 0BCD3C 7F08820C 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 0BCD40 7F088210 27A500E0 */ addiu $a1, $sp, 0xe0 +/* 0BCD44 7F088214 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0BCD48 7F088218 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 0BCD4C 7F08821C 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0BCD50 7F088220 27A400E0 */ addiu $a0, $sp, 0xe0 +/* 0BCD54 7F088224 0FC16F84 */ jal quaternion_ensure_shortest_path +/* 0BCD58 7F088228 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0BCD5C 7F08822C 27A400E0 */ addiu $a0, $sp, 0xe0 +/* 0BCD60 7F088230 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0BCD64 7F088234 8FA60168 */ lw $a2, 0x168($sp) +/* 0BCD68 7F088238 0FC16E82 */ jal quaternion_slerp +/* 0BCD6C 7F08823C 27A700C0 */ addiu $a3, $sp, 0xc0 +/* 0BCD70 7F088240 27A400C0 */ addiu $a0, $sp, 0xc0 +/* 0BCD74 7F088244 0FC16D8A */ jal quaternion_to_matrix +/* 0BCD78 7F088248 8FA50164 */ lw $a1, 0x164($sp) +/* 0BCD7C 7F08824C 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 0BCD80 7F088250 0FC16266 */ jal matrix_4x4_set_position +/* 0BCD84 7F088254 8FA50164 */ lw $a1, 0x164($sp) +/* 0BCD88 7F088258 3C198008 */ lui $t9, %hi(pPlayer) +/* 0BCD8C 7F08825C 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0BCD90 7F088260 8FA50164 */ lw $a1, 0x164($sp) +/* 0BCD94 7F088264 0FC1629F */ jal matrix_scalar_multiply +/* 0BCD98 7F088268 C72C0244 */ lwc1 $f12, 0x244($t9) +/* 0BCD9C 7F08826C 2403003C */ li $v1, 60 +/* 0BCDA0 7F088270 8FA40090 */ lw $a0, 0x90($sp) +/* 0BCDA4 7F088274 3C018005 */ lui $at, %hi(D_80055280) +/* 0BCDA8 7F088278 C4225280 */ lwc1 $f2, %lo(D_80055280)($at) +/* 0BCDAC 7F08827C 0083001A */ div $zero, $a0, $v1 +/* 0BCDB0 7F088280 0000C010 */ mfhi $t8 +/* 0BCDB4 7F088284 00001012 */ mflo $v0 +/* 0BCDB8 7F088288 44982000 */ mtc1 $t8, $f4 +/* 0BCDBC 7F08828C 44808000 */ mtc1 $zero, $f16 +/* 0BCDC0 7F088290 0043001A */ div $zero, $v0, $v1 +/* 0BCDC4 7F088294 00007010 */ mfhi $t6 +/* 0BCDC8 7F088298 00006012 */ mflo $t4 +/* 0BCDCC 7F08829C 468021A0 */ cvt.s.w $f6, $f4 +/* 0BCDD0 7F0882A0 14600002 */ bnez $v1, .L7F0882AC +/* 0BCDD4 7F0882A4 00000000 */ nop +/* 0BCDD8 7F0882A8 0007000D */ break 7 +.L7F0882AC: +/* 0BCDDC 7F0882AC 2401FFFF */ li $at, -1 +/* 0BCDE0 7F0882B0 14610004 */ bne $v1, $at, .L7F0882C4 +/* 0BCDE4 7F0882B4 3C018000 */ lui $at, 0x8000 +/* 0BCDE8 7F0882B8 14810002 */ bne $a0, $at, .L7F0882C4 +/* 0BCDEC 7F0882BC 00000000 */ nop +/* 0BCDF0 7F0882C0 0006000D */ break 6 +.L7F0882C4: +/* 0BCDF4 7F0882C4 0183001A */ div $zero, $t4, $v1 +/* 0BCDF8 7F0882C8 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BCDFC 7F0882CC 44815000 */ mtc1 $at, $f10 +/* 0BCE00 7F0882D0 448E2000 */ mtc1 $t6, $f4 +/* 0BCE04 7F0882D4 00006810 */ mfhi $t5 +/* 0BCE08 7F0882D8 460A3203 */ div.s $f8, $f6, $f10 +/* 0BCE0C 7F0882DC 14600002 */ bnez $v1, .L7F0882E8 +/* 0BCE10 7F0882E0 00000000 */ nop +/* 0BCE14 7F0882E4 0007000D */ break 7 +.L7F0882E8: +/* 0BCE18 7F0882E8 2401FFFF */ li $at, -1 +/* 0BCE1C 7F0882EC 14610004 */ bne $v1, $at, .L7F088300 +/* 0BCE20 7F0882F0 3C018000 */ li $at, 0x80000000 # -0.000000 +/* 0BCE24 7F0882F4 14410002 */ bne $v0, $at, .L7F088300 +/* 0BCE28 7F0882F8 00000000 */ nop +/* 0BCE2C 7F0882FC 0006000D */ break 6 +.L7F088300: +/* 0BCE30 7F088300 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BCE34 7F088304 8FAB0160 */ lw $t3, 0x160($sp) +/* 0BCE38 7F088308 468021A0 */ cvt.s.w $f6, $f4 +/* 0BCE3C 7F08830C 46083280 */ add.s $f10, $f6, $f8 +/* 0BCE40 7F088310 44814000 */ mtc1 $at, $f8 +/* 0BCE44 7F088314 46005107 */ neg.s $f4, $f10 +/* 0BCE48 7F088318 448D5000 */ mtc1 $t5, $f10 +/* 0BCE4C 7F08831C 46022182 */ mul.s $f6, $f4, $f2 +/* 0BCE50 7F088320 46805120 */ cvt.s.w $f4, $f10 +/* 0BCE54 7F088324 46083483 */ div.s $f18, $f6, $f8 +/* 0BCE58 7F088328 46002187 */ neg.s $f6, $f4 +/* 0BCE5C 7F08832C 46023202 */ mul.s $f8, $f6, $f2 +/* 0BCE60 7F088330 4610903C */ c.lt.s $f18, $f16 +/* 0BCE64 7F088334 46009306 */ mov.s $f12, $f18 +/* 0BCE68 7F088338 14600002 */ bnez $v1, .L7F088344 +/* 0BCE6C 7F08833C 00000000 */ nop +/* 0BCE70 7F088340 0007000D */ break 7 +.L7F088344: +/* 0BCE74 7F088344 2401FFFF */ li $at, -1 +/* 0BCE78 7F088348 14610004 */ bne $v1, $at, .L7F08835C +/* 0BCE7C 7F08834C 3C018000 */ li $at, 0x80000000 # -0.000000 +/* 0BCE80 7F088350 15810002 */ bne $t4, $at, .L7F08835C +/* 0BCE84 7F088354 00000000 */ nop +/* 0BCE88 7F088358 0006000D */ break 6 +.L7F08835C: +/* 0BCE8C 7F08835C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BCE90 7F088360 44815000 */ mtc1 $at, $f10 +/* 0BCE94 7F088364 44813000 */ mtc1 $at, $f6 +/* 0BCE98 7F088368 24010E10 */ li $at, 3600 +/* 0BCE9C 7F08836C 0041001A */ div $zero, $v0, $at +/* 0BCEA0 7F088370 00007812 */ mflo $t7 +/* 0BCEA4 7F088374 2401000C */ li $at, 12 +/* 0BCEA8 7F088378 460A4103 */ div.s $f4, $f8, $f10 +/* 0BCEAC 7F08837C 01E1001A */ div $zero, $t7, $at +/* 0BCEB0 7F088380 46069203 */ div.s $f8, $f18, $f6 +/* 0BCEB4 7F088384 00005010 */ mfhi $t2 +/* 0BCEB8 7F088388 448A3000 */ mtc1 $t2, $f6 +/* 0BCEBC 7F08838C 3C014140 */ li $at, 0x41400000 # 12.000000 +/* 0BCEC0 7F088390 46082280 */ add.s $f10, $f4, $f8 +/* 0BCEC4 7F088394 46803120 */ cvt.s.w $f4, $f6 +/* 0BCEC8 7F088398 E7AA0040 */ swc1 $f10, 0x40($sp) +/* 0BCECC 7F08839C 46005386 */ mov.s $f14, $f10 +/* 0BCED0 7F0883A0 46002207 */ neg.s $f8, $f4 +/* 0BCED4 7F0883A4 44812000 */ mtc1 $at, $f4 +/* 0BCED8 7F0883A8 46024182 */ mul.s $f6, $f8, $f2 +/* 0BCEDC 7F0883AC 46043203 */ div.s $f8, $f6, $f4 +/* 0BCEE0 7F0883B0 44813000 */ mtc1 $at, $f6 +/* 0BCEE4 7F0883B4 3C014434 */ li $at, 0x44340000 # 720.000000 +/* 0BCEE8 7F0883B8 46065103 */ div.s $f4, $f10, $f6 +/* 0BCEEC 7F0883BC 44813000 */ mtc1 $at, $f6 +/* 0BCEF0 7F0883C0 46044280 */ add.s $f10, $f8, $f4 +/* 0BCEF4 7F0883C4 46069203 */ div.s $f8, $f18, $f6 +/* 0BCEF8 7F0883C8 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 0BCEFC 7F0883CC 46085100 */ add.s $f4, $f10, $f8 +/* 0BCF00 7F0883D0 E7A4003C */ swc1 $f4, 0x3c($sp) +/* 0BCF04 7F0883D4 46002006 */ mov.s $f0, $f4 +/* 0BCF08 7F0883D8 45000006 */ bc1f .L7F0883F4 +/* 0BCF0C 7F0883DC C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 0BCF10 7F0883E0 46026300 */ add.s $f12, $f12, $f2 +.L7F0883E4: +/* 0BCF14 7F0883E4 4610603C */ c.lt.s $f12, $f16 +/* 0BCF18 7F0883E8 00000000 */ nop +/* 0BCF1C 7F0883EC 4503FFFD */ bc1tl .L7F0883E4 +/* 0BCF20 7F0883F0 46026300 */ add.s $f12, $f12, $f2 +.L7F0883F4: +/* 0BCF24 7F0883F4 4610303C */ c.lt.s $f6, $f16 +/* 0BCF28 7F0883F8 00000000 */ nop +/* 0BCF2C 7F0883FC 45020007 */ bc1fl .L7F08841C +/* 0BCF30 7F088400 4610503C */ c.lt.s $f10, $f16 +/* 0BCF34 7F088404 46027380 */ add.s $f14, $f14, $f2 +.L7F088408: +/* 0BCF38 7F088408 4610703C */ c.lt.s $f14, $f16 +/* 0BCF3C 7F08840C 00000000 */ nop +/* 0BCF40 7F088410 4503FFFD */ bc1tl .L7F088408 +/* 0BCF44 7F088414 46027380 */ add.s $f14, $f14, $f2 +/* 0BCF48 7F088418 4610503C */ c.lt.s $f10, $f16 +.L7F08841C: +/* 0BCF4C 7F08841C 00000000 */ nop +/* 0BCF50 7F088420 45020007 */ bc1fl .L7F088440 +/* 0BCF54 7F088424 8D790008 */ lw $t9, 8($t3) +/* 0BCF58 7F088428 46020000 */ add.s $f0, $f0, $f2 +.L7F08842C: +/* 0BCF5C 7F08842C 4610003C */ c.lt.s $f0, $f16 +/* 0BCF60 7F088430 00000000 */ nop +/* 0BCF64 7F088434 4503FFFD */ bc1tl .L7F08842C +/* 0BCF68 7F088438 46020000 */ add.s $f0, $f0, $f2 +/* 0BCF6C 7F08843C 8D790008 */ lw $t9, 8($t3) +.L7F088440: +/* 0BCF70 7F088440 8FA60164 */ lw $a2, 0x164($sp) +/* 0BCF74 7F088444 44050000 */ mfc1 $a1, $f0 +/* 0BCF78 7F088448 8F380000 */ lw $t8, ($t9) +/* 0BCF7C 7F08844C 24C60040 */ addiu $a2, $a2, 0x40 +/* 0BCF80 7F088450 8F040004 */ lw $a0, 4($t8) +/* 0BCF84 7F088454 E7AE0098 */ swc1 $f14, 0x98($sp) +/* 0BCF88 7F088458 E7AC009C */ swc1 $f12, 0x9c($sp) +/* 0BCF8C 7F08845C 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BCF90 7F088460 AFA60040 */ sw $a2, 0x40($sp) +/* 0BCF94 7F088464 8FA50040 */ lw $a1, 0x40($sp) +/* 0BCF98 7F088468 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0BCF9C 7F08846C 8FA40164 */ lw $a0, 0x164($sp) +/* 0BCFA0 7F088470 8FAE0160 */ lw $t6, 0x160($sp) +/* 0BCFA4 7F088474 C7AE0098 */ lwc1 $f14, 0x98($sp) +/* 0BCFA8 7F088478 8FA60164 */ lw $a2, 0x164($sp) +/* 0BCFAC 7F08847C 8DCC0008 */ lw $t4, 8($t6) +/* 0BCFB0 7F088480 44057000 */ mfc1 $a1, $f14 +/* 0BCFB4 7F088484 24C60080 */ addiu $a2, $a2, 0x80 +/* 0BCFB8 7F088488 8D8D0004 */ lw $t5, 4($t4) +/* 0BCFBC 7F08848C 8DA40004 */ lw $a0, 4($t5) +/* 0BCFC0 7F088490 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BCFC4 7F088494 AFA60040 */ sw $a2, 0x40($sp) +/* 0BCFC8 7F088498 8FA50040 */ lw $a1, 0x40($sp) +/* 0BCFCC 7F08849C 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0BCFD0 7F0884A0 8FA40164 */ lw $a0, 0x164($sp) +/* 0BCFD4 7F0884A4 8FAF0160 */ lw $t7, 0x160($sp) +/* 0BCFD8 7F0884A8 C7AC009C */ lwc1 $f12, 0x9c($sp) +/* 0BCFDC 7F0884AC 8FA60164 */ lw $a2, 0x164($sp) +/* 0BCFE0 7F0884B0 8DEA0008 */ lw $t2, 8($t7) +/* 0BCFE4 7F0884B4 44056000 */ mfc1 $a1, $f12 +/* 0BCFE8 7F0884B8 24C600C0 */ addiu $a2, $a2, 0xc0 +/* 0BCFEC 7F0884BC 8D4B0008 */ lw $t3, 8($t2) +/* 0BCFF0 7F0884C0 8D640004 */ lw $a0, 4($t3) +/* 0BCFF4 7F0884C4 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BCFF8 7F0884C8 AFA60040 */ sw $a2, 0x40($sp) +/* 0BCFFC 7F0884CC 8FA50040 */ lw $a1, 0x40($sp) +/* 0BD000 7F0884D0 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0BD004 7F0884D4 8FA40164 */ lw $a0, 0x164($sp) +/* 0BD008 7F0884D8 8FB801F8 */ lw $t8, 0x1f8($sp) +/* 0BD00C 7F0884DC 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BD010 7F0884E0 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BD014 7F0884E4 24190003 */ li $t9, 3 +/* 0BD018 7F0884E8 240E0004 */ li $t6, 4 +/* 0BD01C 7F0884EC AFB901C0 */ sw $t9, 0x1c0($sp) +/* 0BD020 7F0884F0 AFA001BC */ sw $zero, 0x1bc($sp) +/* 0BD024 7F0884F4 AFAE01E8 */ sw $t6, 0x1e8($sp) +/* 0BD028 7F0884F8 AFB801C4 */ sw $t8, 0x1c4($sp) +/* 0BD02C 7F0884FC 8C4301C8 */ lw $v1, 0x1c8($v0) +/* 0BD030 7F088500 24010005 */ li $at, 5 +/* 0BD034 7F088504 27A401B8 */ addiu $a0, $sp, 0x1b8 +/* 0BD038 7F088508 10610002 */ beq $v1, $at, .L7F088514 +/* 0BD03C 7F08850C 2401000C */ li $at, 12 +/* 0BD040 7F088510 14610003 */ bne $v1, $at, .L7F088520 +.L7F088514: +/* 0BD044 7F088514 240C00CD */ li $t4, 205 +/* 0BD048 7F088518 1000000C */ b .L7F08854C +/* 0BD04C 7F08851C AFAC01EC */ sw $t4, 0x1ec($sp) +.L7F088520: +/* 0BD050 7F088520 904F0FDC */ lbu $t7, 0xfdc($v0) +/* 0BD054 7F088524 904D0FDF */ lbu $t5, 0xfdf($v0) +/* 0BD058 7F088528 90590FDD */ lbu $t9, 0xfdd($v0) +/* 0BD05C 7F08852C 904C0FDE */ lbu $t4, 0xfde($v0) +/* 0BD060 7F088530 000F5600 */ sll $t2, $t7, 0x18 +/* 0BD064 7F088534 01AA5825 */ or $t3, $t5, $t2 +/* 0BD068 7F088538 0019C400 */ sll $t8, $t9, 0x10 +/* 0BD06C 7F08853C 01787025 */ or $t6, $t3, $t8 +/* 0BD070 7F088540 000C7A00 */ sll $t7, $t4, 8 +/* 0BD074 7F088544 01CF6825 */ or $t5, $t6, $t7 +/* 0BD078 7F088548 AFAD01EC */ sw $t5, 0x1ec($sp) +.L7F08854C: +/* 0BD07C 7F08854C 0FC1D1A1 */ jal subdraw +/* 0BD080 7F088550 24450230 */ addiu $a1, $v0, 0x230 +/* 0BD084 7F088554 8FAA01C4 */ lw $t2, 0x1c4($sp) +/* 0BD088 7F088558 8FB90160 */ lw $t9, 0x160($sp) +/* 0BD08C 7F08855C AFAA01F8 */ sw $t2, 0x1f8($sp) +/* 0BD090 7F088560 8F2B0008 */ lw $t3, 8($t9) +/* 0BD094 7F088564 8D780008 */ lw $t8, 8($t3) +/* 0BD098 7F088568 8F0C0004 */ lw $t4, 4($t8) +/* 0BD09C 7F08856C 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BD0A0 7F088570 AFAC008C */ sw $t4, 0x8c($sp) +/* 0BD0A4 7F088574 AFA20048 */ sw $v0, 0x48($sp) +/* 0BD0A8 7F088578 8FA4008C */ lw $a0, 0x8c($sp) +/* 0BD0AC 7F08857C 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 0BD0B0 7F088580 27A5004C */ addiu $a1, $sp, 0x4c +/* 0BD0B4 7F088584 8FA40164 */ lw $a0, 0x164($sp) +/* 0BD0B8 7F088588 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0BD0BC 7F08858C 27A5004C */ addiu $a1, $sp, 0x4c +/* 0BD0C0 7F088590 0FC16319 */ jal sub_GAME_7F058C64 +/* 0BD0C4 7F088594 00000000 */ nop +/* 0BD0C8 7F088598 27A4004C */ addiu $a0, $sp, 0x4c +/* 0BD0CC 7F08859C 0FC16327 */ jal sub_GAME_7F058C9C +/* 0BD0D0 7F0885A0 8FA50048 */ lw $a1, 0x48($sp) +/* 0BD0D4 7F0885A4 0FC16322 */ jal sub_GAME_7F058C88 +/* 0BD0D8 7F0885A8 00000000 */ nop +/* 0BD0DC 7F0885AC 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0BD0E0 7F0885B0 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0BD0E4 7F0885B4 8FA401F8 */ lw $a0, 0x1f8($sp) +/* 0BD0E8 7F0885B8 8DC301C8 */ lw $v1, 0x1c8($t6) +/* 0BD0EC 7F0885BC 38660005 */ xori $a2, $v1, 5 +/* 0BD0F0 7F0885C0 2CC60001 */ sltiu $a2, $a2, 1 +/* 0BD0F4 7F0885C4 14C00003 */ bnez $a2, .L7F0885D4 +/* 0BD0F8 7F0885C8 00000000 */ nop +/* 0BD0FC 7F0885CC 3866000C */ xori $a2, $v1, 0xc +/* 0BD100 7F0885D0 2CC60001 */ sltiu $a2, $a2, 1 +.L7F0885D4: +/* 0BD104 7F0885D4 0FC2B28A */ jal sub_GAME_7F0ACA28 +/* 0BD108 7F0885D8 8FA50048 */ lw $a1, 0x48($sp) +/* 0BD10C 7F0885DC 0FC16319 */ jal sub_GAME_7F058C64 +/* 0BD110 7F0885E0 AFA201F8 */ sw $v0, 0x1f8($sp) +/* 0BD114 7F0885E4 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0BD118 7F0885E8 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0BD11C 7F0885EC 8FAD0160 */ lw $t5, 0x160($sp) +/* 0BD120 7F0885F0 8DE4023C */ lw $a0, 0x23c($t7) +/* 0BD124 7F0885F4 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 0BD128 7F0885F8 85A5000E */ lh $a1, 0xe($t5) +/* 0BD12C 7F0885FC 0FC16322 */ jal sub_GAME_7F058C88 +/* 0BD130 7F088600 00000000 */ nop +.L7F088604: +/* 0BD134 7F088604 8FBF002C */ lw $ra, 0x2c($sp) +.L7F088608: +/* 0BD138 7F088608 8FA201F8 */ lw $v0, 0x1f8($sp) +/* 0BD13C 7F08860C 27BD01F8 */ addiu $sp, $sp, 0x1f8 +/* 0BD140 7F088610 03E00008 */ jr $ra +/* 0BD144 7F088614 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_8005527C +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055280 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F087E74 +/* 0BD0B0 7F088540 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BD0B4 7F088544 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BD0B8 7F088548 27BDFE08 */ addiu $sp, $sp, -0x1f8 +/* 0BD0BC 7F08854C AFBF002C */ sw $ra, 0x2c($sp) +/* 0BD0C0 7F088550 AFA401F8 */ sw $a0, 0x1f8($sp) +/* 0BD0C4 7F088554 8C4E01C8 */ lw $t6, 0x1c8($v0) +/* 0BD0C8 7F088558 51C001E0 */ beql $t6, $zero, .Ljp7F088CDC +/* 0BD0CC 7F08855C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0BD0D0 7F088560 8C4F0200 */ lw $t7, 0x200($v0) +/* 0BD0D4 7F088564 3C198003 */ lui $t9, %hi(D_8003683C) # $t9, 0x8003 +/* 0BD0D8 7F088568 2739687C */ addiu $t9, %lo(D_8003683C) # addiu $t9, $t9, 0x687c +/* 0BD0DC 7F08856C 11E001DA */ beqz $t7, .Ljp7F088CD8 +/* 0BD0E0 7F088570 27B801B8 */ addiu $t8, $sp, 0x1b8 +/* 0BD0E4 7F088574 272B003C */ addiu $t3, $t9, 0x3c +.Ljp7F088578: +/* 0BD0E8 7F088578 8F210000 */ lw $at, ($t9) +/* 0BD0EC 7F08857C 2739000C */ addiu $t9, $t9, 0xc +/* 0BD0F0 7F088580 2718000C */ addiu $t8, $t8, 0xc +/* 0BD0F4 7F088584 AF01FFF4 */ sw $at, -0xc($t8) +/* 0BD0F8 7F088588 8F21FFF8 */ lw $at, -8($t9) +/* 0BD0FC 7F08858C AF01FFF8 */ sw $at, -8($t8) +/* 0BD100 7F088590 8F21FFFC */ lw $at, -4($t9) +/* 0BD104 7F088594 172BFFF8 */ bne $t9, $t3, .Ljp7F088578 +/* 0BD108 7F088598 AF01FFFC */ sw $at, -4($t8) +/* 0BD10C 7F08859C 8F210000 */ lw $at, ($t9) +/* 0BD110 7F0885A0 3C0D8003 */ lui $t5, %hi(D_8003687C) # $t5, 0x8003 +/* 0BD114 7F0885A4 25AD68BC */ addiu $t5, %lo(D_8003687C) # addiu $t5, $t5, 0x68bc +/* 0BD118 7F0885A8 AF010000 */ sw $at, ($t8) +/* 0BD11C 7F0885AC 8DA10000 */ lw $at, ($t5) +/* 0BD120 7F0885B0 27AC016C */ addiu $t4, $sp, 0x16c +/* 0BD124 7F0885B4 8DAF0004 */ lw $t7, 4($t5) +/* 0BD128 7F0885B8 AD810000 */ sw $at, ($t4) +/* 0BD12C 7F0885BC 8DA10008 */ lw $at, 8($t5) +/* 0BD130 7F0885C0 24040001 */ li $a0, 1 +/* 0BD134 7F0885C4 AD8F0004 */ sw $t7, 4($t4) +/* 0BD138 7F0885C8 0FC1750E */ jal get_ptr_itemheader_in_hand +/* 0BD13C 7F0885CC AD810008 */ sw $at, 8($t4) +/* 0BD140 7F0885D0 AFA20160 */ sw $v0, 0x160($sp) +/* 0BD144 7F0885D4 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 0BD148 7F0885D8 8C4A0008 */ lw $t2, 8($v0) +/* 0BD14C 7F0885DC 8C84A120 */ lw $a0, %lo(pPlayer)($a0) +/* 0BD150 7F0885E0 8D45000C */ lw $a1, 0xc($t2) +/* 0BD154 7F0885E4 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 0BD158 7F0885E8 24840230 */ addiu $a0, $a0, 0x230 +/* 0BD15C 7F0885EC 0FC2F8A4 */ jal sub_GAME_7F0BD6E0 +/* 0BD160 7F0885F0 AFA20158 */ sw $v0, 0x158($sp) +/* 0BD164 7F0885F4 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0BD168 7F0885F8 44812000 */ mtc1 $at, $f4 +/* 0BD16C 7F0885FC 3C0B8008 */ lui $t3, %hi(pPlayer) # $t3, 0x8008 +/* 0BD170 7F088600 8D6BA120 */ lw $t3, %lo(pPlayer)($t3) +/* 0BD174 7F088604 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0BD178 7F088608 44813000 */ mtc1 $at, $f6 +/* 0BD17C 7F08860C AFA20154 */ sw $v0, 0x154($sp) +/* 0BD180 7F088610 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BD184 7F088614 44814000 */ mtc1 $at, $f8 +/* 0BD188 7F088618 8D6611C4 */ lw $a2, 0x11c4($t3) +/* 0BD18C 7F08861C 3C073FBA */ lui $a3, (0x3FBA2E8C >> 16) # lui $a3, 0x3fba +/* 0BD190 7F088620 34E72E8C */ ori $a3, (0x3FBA2E8C & 0xFFFF) # ori $a3, $a3, 0x2e8c +/* 0BD194 7F088624 00402025 */ move $a0, $v0 +/* 0BD198 7F088628 27A50152 */ addiu $a1, $sp, 0x152 +/* 0BD19C 7F08862C E7A40010 */ swc1 $f4, 0x10($sp) +/* 0BD1A0 7F088630 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0BD1A4 7F088634 0C003FBC */ jal guPerspective +/* 0BD1A8 7F088638 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0BD1AC 7F08863C 8FA301F8 */ lw $v1, 0x1f8($sp) +/* 0BD1B0 7F088640 3C190103 */ lui $t9, (0x01030040 >> 16) # lui $t9, 0x103 +/* 0BD1B4 7F088644 37390040 */ ori $t9, (0x01030040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 0BD1B8 7F088648 AC790000 */ sw $t9, ($v1) +/* 0BD1BC 7F08864C 8FB80154 */ lw $t8, 0x154($sp) +/* 0BD1C0 7F088650 3C01C140 */ li $at, 0xC1400000 # -12.000000 +/* 0BD1C4 7F088654 44810000 */ mtc1 $at, $f0 +/* 0BD1C8 7F088658 3C018000 */ lui $at, 0x8000 +/* 0BD1CC 7F08865C 3C0CBC00 */ lui $t4, (0xBC00000E >> 16) # lui $t4, 0xbc00 +/* 0BD1D0 7F088660 03017021 */ addu $t6, $t8, $at +/* 0BD1D4 7F088664 358C000E */ ori $t4, (0xBC00000E & 0xFFFF) # ori $t4, $t4, 0xe +/* 0BD1D8 7F088668 AC6E0004 */ sw $t6, 4($v1) +/* 0BD1DC 7F08866C 24670008 */ addiu $a3, $v1, 8 +/* 0BD1E0 7F088670 ACEC0000 */ sw $t4, ($a3) +/* 0BD1E4 7F088674 97AD0152 */ lhu $t5, 0x152($sp) +/* 0BD1E8 7F088678 3C088008 */ lui $t0, %hi(pPlayer) # $t0, 0x8008 +/* 0BD1EC 7F08867C 2508A120 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5ee0 +/* 0BD1F0 7F088680 ACED0004 */ sw $t5, 4($a3) +/* 0BD1F4 7F088684 8D0F0000 */ lw $t7, ($t0) +/* 0BD1F8 7F088688 8FAB0158 */ lw $t3, 0x158($sp) +/* 0BD1FC 7F08868C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BD200 7F088690 8DEA01CC */ lw $t2, 0x1cc($t7) +/* 0BD204 7F088694 24E90008 */ addiu $t1, $a3, 8 +/* 0BD208 7F088698 27A4016C */ addiu $a0, $sp, 0x16c +/* 0BD20C 7F08869C AD6A0000 */ sw $t2, ($t3) +/* 0BD210 7F0886A0 8D020000 */ lw $v0, ($t0) +/* 0BD214 7F0886A4 27A60178 */ addiu $a2, $sp, 0x178 +/* 0BD218 7F0886A8 C444054C */ lwc1 $f4, 0x54c($v0) +/* 0BD21C 7F0886AC C44A0498 */ lwc1 $f10, 0x498($v0) +/* 0BD220 7F0886B0 46002180 */ add.s $f6, $f4, $f0 +/* 0BD224 7F0886B4 C4440544 */ lwc1 $f4, 0x544($v0) +/* 0BD228 7F0886B8 46065202 */ mul.s $f8, $f10, $f6 +/* 0BD22C 7F0886BC C44A04A0 */ lwc1 $f10, 0x4a0($v0) +/* 0BD230 7F0886C0 46005187 */ neg.s $f6, $f10 +/* 0BD234 7F0886C4 46062282 */ mul.s $f10, $f4, $f6 +/* 0BD238 7F0886C8 C444048C */ lwc1 $f4, 0x48c($v0) +/* 0BD23C 7F0886CC 460A2180 */ add.s $f6, $f4, $f10 +/* 0BD240 7F0886D0 46064100 */ add.s $f4, $f8, $f6 +/* 0BD244 7F0886D4 E7A4016C */ swc1 $f4, 0x16c($sp) +/* 0BD248 7F0886D8 C4480490 */ lwc1 $f8, 0x490($v0) +/* 0BD24C 7F0886DC C44A0548 */ lwc1 $f10, 0x548($v0) +/* 0BD250 7F0886E0 46085180 */ add.s $f6, $f10, $f8 +/* 0BD254 7F0886E4 E7A60170 */ swc1 $f6, 0x170($sp) +/* 0BD258 7F0886E8 C44A054C */ lwc1 $f10, 0x54c($v0) +/* 0BD25C 7F0886EC C44404A0 */ lwc1 $f4, 0x4a0($v0) +/* 0BD260 7F0886F0 46005200 */ add.s $f8, $f10, $f0 +/* 0BD264 7F0886F4 C44A0544 */ lwc1 $f10, 0x544($v0) +/* 0BD268 7F0886F8 46082182 */ mul.s $f6, $f4, $f8 +/* 0BD26C 7F0886FC C4440498 */ lwc1 $f4, 0x498($v0) +/* 0BD270 7F088700 46045202 */ mul.s $f8, $f10, $f4 +/* 0BD274 7F088704 C44A0494 */ lwc1 $f10, 0x494($v0) +/* 0BD278 7F088708 46085100 */ add.s $f4, $f10, $f8 +/* 0BD27C 7F08870C 44814000 */ mtc1 $at, $f8 +/* 0BD280 7F088710 3C018005 */ lui $at, %hi(D_8005527C) # $at, 0x8005 +/* 0BD284 7F088714 46043280 */ add.s $f10, $f6, $f4 +/* 0BD288 7F088718 E7AA0174 */ swc1 $f10, 0x174($sp) +/* 0BD28C 7F08871C C4460148 */ lwc1 $f6, 0x148($v0) +/* 0BD290 7F088720 C42A52AC */ lwc1 $f10, %lo(D_8005527C)($at) +/* 0BD294 7F088724 AFA901F8 */ sw $t1, 0x1f8($sp) +/* 0BD298 7F088728 46064101 */ sub.s $f4, $f8, $f6 +/* 0BD29C 7F08872C 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BD2A0 7F088730 44054000 */ mfc1 $a1, $f8 +/* 0BD2A4 7F088734 0FC1627C */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BD2A8 7F088738 00000000 */ nop +/* 0BD2AC 7F08873C 0FC1E26D */ jal get_BONDdata_field_10CC +/* 0BD2B0 7F088740 00000000 */ nop +/* 0BD2B4 7F088744 00402025 */ move $a0, $v0 +/* 0BD2B8 7F088748 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0BD2BC 7F08874C 27A50178 */ addiu $a1, $sp, 0x178 +/* 0BD2C0 7F088750 8FB90160 */ lw $t9, 0x160($sp) +/* 0BD2C4 7F088754 8724000E */ lh $a0, 0xe($t9) +/* 0BD2C8 7F088758 0004C180 */ sll $t8, $a0, 6 +/* 0BD2CC 7F08875C 0FC2F8B1 */ jal sub_GAME_7F0BD714 +/* 0BD2D0 7F088760 03002025 */ move $a0, $t8 +/* 0BD2D4 7F088764 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 0BD2D8 7F088768 8C84A120 */ lw $a0, %lo(pPlayer)($a0) +/* 0BD2DC 7F08876C AFA20164 */ sw $v0, 0x164($sp) +/* 0BD2E0 7F088770 8FA50160 */ lw $a1, 0x160($sp) +/* 0BD2E4 7F088774 24060004 */ li $a2, 4 +/* 0BD2E8 7F088778 0FC220B8 */ jal seems_to_load_cuff_microcode +/* 0BD2EC 7F08877C 24840230 */ addiu $a0, $a0, 0x230 +/* 0BD2F0 7F088780 3C058008 */ lui $a1, %hi(pPlayer) # $a1, 0x8008 +/* 0BD2F4 7F088784 8FAC0164 */ lw $t4, 0x164($sp) +/* 0BD2F8 7F088788 8CA5A120 */ lw $a1, %lo(pPlayer)($a1) +/* 0BD2FC 7F08878C 27AE0178 */ addiu $t6, $sp, 0x178 +/* 0BD300 7F088790 AFAE01B8 */ sw $t6, 0x1b8($sp) +/* 0BD304 7F088794 27A401B8 */ addiu $a0, $sp, 0x1b8 +/* 0BD308 7F088798 AFAC01C8 */ sw $t4, 0x1c8($sp) +/* 0BD30C 7F08879C 0FC1BE3A */ jal subcalcmatrices +/* 0BD310 7F0887A0 24A50230 */ addiu $a1, $a1, 0x230 +/* 0BD314 7F0887A4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BD318 7F0887A8 44810000 */ mtc1 $at, $f0 +/* 0BD31C 7F0887AC 3C018008 */ lui $at, %hi(watch_time_0) # $at, 0x8008 +/* 0BD320 7F0887B0 8FAD0160 */ lw $t5, 0x160($sp) +/* 0BD324 7F0887B4 C4269A64 */ lwc1 $f6, %lo(watch_time_0)($at) +/* 0BD328 7F0887B8 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BD32C 7F0887BC 8DAF0008 */ lw $t7, 8($t5) +/* 0BD330 7F0887C0 4600310D */ trunc.w.s $f4, $f6 +/* 0BD334 7F0887C4 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BD338 7F0887C8 8DEA0000 */ lw $t2, ($t7) +/* 0BD33C 7F0887CC 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0BD340 7F0887D0 44192000 */ mfc1 $t9, $f4 +/* 0BD344 7F0887D4 8D430004 */ lw $v1, 4($t2) +/* 0BD348 7F0887D8 44814000 */ mtc1 $at, $f8 +/* 0BD34C 7F0887DC AFB90090 */ sw $t9, 0x90($sp) +/* 0BD350 7F0887E0 C44A0258 */ lwc1 $f10, 0x258($v0) +/* 0BD354 7F0887E4 46085383 */ div.s $f14, $f10, $f8 +/* 0BD358 7F0887E8 460E003C */ c.lt.s $f0, $f14 +/* 0BD35C 7F0887EC 00000000 */ nop +/* 0BD360 7F0887F0 45020003 */ bc1fl .Ljp7F088800 +/* 0BD364 7F0887F4 C4660000 */ lwc1 $f6, ($v1) +/* 0BD368 7F0887F8 46000386 */ mov.s $f14, $f0 +/* 0BD36C 7F0887FC C4660000 */ lwc1 $f6, ($v1) +.Ljp7F088800: +/* 0BD370 7F088800 C4440244 */ lwc1 $f4, 0x244($v0) +/* 0BD374 7F088804 C44801D4 */ lwc1 $f8, 0x1d4($v0) +/* 0BD378 7F088808 8FA80164 */ lw $t0, 0x164($sp) +/* 0BD37C 7F08880C 46043282 */ mul.s $f10, $f6, $f4 +/* 0BD380 7F088810 44808000 */ mtc1 $zero, $f16 +/* 0BD384 7F088814 C5000030 */ lwc1 $f0, 0x30($t0) +/* 0BD388 7F088818 27A40108 */ addiu $a0, $sp, 0x108 +/* 0BD38C 7F08881C 44058000 */ mfc1 $a1, $f16 +/* 0BD390 7F088820 44068000 */ mfc1 $a2, $f16 +/* 0BD394 7F088824 44078000 */ mfc1 $a3, $f16 +/* 0BD398 7F088828 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BD39C 7F08882C 46003101 */ sub.s $f4, $f6, $f0 +/* 0BD3A0 7F088830 460E2202 */ mul.s $f8, $f4, $f14 +/* 0BD3A4 7F088834 46004280 */ add.s $f10, $f8, $f0 +/* 0BD3A8 7F088838 E7AA00B4 */ swc1 $f10, 0xb4($sp) +/* 0BD3AC 7F08883C C4440244 */ lwc1 $f4, 0x244($v0) +/* 0BD3B0 7F088840 C4660008 */ lwc1 $f6, 8($v1) +/* 0BD3B4 7F088844 C44A01D8 */ lwc1 $f10, 0x1d8($v0) +/* 0BD3B8 7F088848 C5020034 */ lwc1 $f2, 0x34($t0) +/* 0BD3BC 7F08884C 46043202 */ mul.s $f8, $f6, $f4 +/* 0BD3C0 7F088850 46085180 */ add.s $f6, $f10, $f8 +/* 0BD3C4 7F088854 46023101 */ sub.s $f4, $f6, $f2 +/* 0BD3C8 7F088858 460E2282 */ mul.s $f10, $f4, $f14 +/* 0BD3CC 7F08885C 46025200 */ add.s $f8, $f10, $f2 +/* 0BD3D0 7F088860 E7A800B8 */ swc1 $f8, 0xb8($sp) +/* 0BD3D4 7F088864 C4440244 */ lwc1 $f4, 0x244($v0) +/* 0BD3D8 7F088868 C4660004 */ lwc1 $f6, 4($v1) +/* 0BD3DC 7F08886C C44801DC */ lwc1 $f8, 0x1dc($v0) +/* 0BD3E0 7F088870 C50C0038 */ lwc1 $f12, 0x38($t0) +/* 0BD3E4 7F088874 46043282 */ mul.s $f10, $f6, $f4 +/* 0BD3E8 7F088878 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BD3EC 7F08887C 460C3101 */ sub.s $f4, $f6, $f12 +/* 0BD3F0 7F088880 460E2202 */ mul.s $f8, $f4, $f14 +/* 0BD3F4 7F088884 460C4280 */ add.s $f10, $f8, $f12 +/* 0BD3F8 7F088888 E7AA00BC */ swc1 $f10, 0xbc($sp) +/* 0BD3FC 7F08888C C44601E0 */ lwc1 $f6, 0x1e0($v0) +/* 0BD400 7F088890 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0BD404 7F088894 C44401E4 */ lwc1 $f4, 0x1e4($v0) +/* 0BD408 7F088898 E7A40014 */ swc1 $f4, 0x14($sp) +/* 0BD40C 7F08889C C44801E8 */ lwc1 $f8, 0x1e8($v0) +/* 0BD410 7F0888A0 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0BD414 7F0888A4 C44A01EC */ lwc1 $f10, 0x1ec($v0) +/* 0BD418 7F0888A8 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 0BD41C 7F0888AC C44601F0 */ lwc1 $f6, 0x1f0($v0) +/* 0BD420 7F0888B0 E7A60020 */ swc1 $f6, 0x20($sp) +/* 0BD424 7F0888B4 C44401F4 */ lwc1 $f4, 0x1f4($v0) +/* 0BD428 7F0888B8 E7AE0168 */ swc1 $f14, 0x168($sp) +/* 0BD42C 7F0888BC 0FC1678A */ jal sub_GAME_7F059908 +/* 0BD430 7F0888C0 E7A40024 */ swc1 $f4, 0x24($sp) +/* 0BD434 7F0888C4 8FA40164 */ lw $a0, 0x164($sp) +/* 0BD438 7F0888C8 0FC16360 */ jal matrix_4x4_get_rotation_around_xyz +/* 0BD43C 7F0888CC 27A500FC */ addiu $a1, $sp, 0xfc +/* 0BD440 7F0888D0 27A40108 */ addiu $a0, $sp, 0x108 +/* 0BD444 7F0888D4 0FC16360 */ jal matrix_4x4_get_rotation_around_xyz +/* 0BD448 7F0888D8 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0BD44C 7F0888DC 27A400FC */ addiu $a0, $sp, 0xfc +/* 0BD450 7F0888E0 0FC16E45 */ jal quaternion_set_rotation_around_xyzf +/* 0BD454 7F0888E4 27A500E0 */ addiu $a1, $sp, 0xe0 +/* 0BD458 7F0888E8 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0BD45C 7F0888EC 0FC16E45 */ jal quaternion_set_rotation_around_xyzf +/* 0BD460 7F0888F0 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0BD464 7F0888F4 27A400E0 */ addiu $a0, $sp, 0xe0 +/* 0BD468 7F0888F8 0FC170CC */ jal quaternion_ensure_shortest_path +/* 0BD46C 7F0888FC 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0BD470 7F088900 27A400E0 */ addiu $a0, $sp, 0xe0 +/* 0BD474 7F088904 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0BD478 7F088908 8FA60168 */ lw $a2, 0x168($sp) +/* 0BD47C 7F08890C 0FC16FCA */ jal quaternion_slerp +/* 0BD480 7F088910 27A700C0 */ addiu $a3, $sp, 0xc0 +/* 0BD484 7F088914 27A400C0 */ addiu $a0, $sp, 0xc0 +/* 0BD488 7F088918 0FC16ED2 */ jal quaternion_to_matrix +/* 0BD48C 7F08891C 8FA50164 */ lw $a1, 0x164($sp) +/* 0BD490 7F088920 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 0BD494 7F088924 0FC163AE */ jal matrix_4x4_set_position +/* 0BD498 7F088928 8FA50164 */ lw $a1, 0x164($sp) +/* 0BD49C 7F08892C 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0BD4A0 7F088930 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0BD4A4 7F088934 8FA50164 */ lw $a1, 0x164($sp) +/* 0BD4A8 7F088938 0FC163E7 */ jal matrix_scalar_multiply +/* 0BD4AC 7F08893C C70C0244 */ lwc1 $f12, 0x244($t8) +/* 0BD4B0 7F088940 2403003C */ li $v1, 60 +/* 0BD4B4 7F088944 8FA40090 */ lw $a0, 0x90($sp) +/* 0BD4B8 7F088948 3C018005 */ lui $at, %hi(D_80055280) # $at, 0x8005 +/* 0BD4BC 7F08894C C42252B0 */ lwc1 $f2, %lo(D_80055280)($at) +/* 0BD4C0 7F088950 0083001A */ div $zero, $a0, $v1 +/* 0BD4C4 7F088954 00007010 */ mfhi $t6 +/* 0BD4C8 7F088958 00001012 */ mflo $v0 +/* 0BD4CC 7F08895C 448E4000 */ mtc1 $t6, $f8 +/* 0BD4D0 7F088960 44808000 */ mtc1 $zero, $f16 +/* 0BD4D4 7F088964 0043001A */ div $zero, $v0, $v1 +/* 0BD4D8 7F088968 00006010 */ mfhi $t4 +/* 0BD4DC 7F08896C 00006812 */ mflo $t5 +/* 0BD4E0 7F088970 468042A0 */ cvt.s.w $f10, $f8 +/* 0BD4E4 7F088974 14600002 */ bnez $v1, .Ljp7F088980 +/* 0BD4E8 7F088978 00000000 */ nop +/* 0BD4EC 7F08897C 0007000D */ break 7 +.Ljp7F088980: +/* 0BD4F0 7F088980 2401FFFF */ li $at, -1 +/* 0BD4F4 7F088984 14610004 */ bne $v1, $at, .Ljp7F088998 +/* 0BD4F8 7F088988 3C018000 */ lui $at, 0x8000 +/* 0BD4FC 7F08898C 14810002 */ bne $a0, $at, .Ljp7F088998 +/* 0BD500 7F088990 00000000 */ nop +/* 0BD504 7F088994 0006000D */ break 6 +.Ljp7F088998: +/* 0BD508 7F088998 01A3001A */ div $zero, $t5, $v1 +/* 0BD50C 7F08899C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BD510 7F0889A0 44813000 */ mtc1 $at, $f6 +/* 0BD514 7F0889A4 448C4000 */ mtc1 $t4, $f8 +/* 0BD518 7F0889A8 00007810 */ mfhi $t7 +/* 0BD51C 7F0889AC 46065103 */ div.s $f4, $f10, $f6 +/* 0BD520 7F0889B0 14600002 */ bnez $v1, .Ljp7F0889BC +/* 0BD524 7F0889B4 00000000 */ nop +/* 0BD528 7F0889B8 0007000D */ break 7 +.Ljp7F0889BC: +/* 0BD52C 7F0889BC 2401FFFF */ li $at, -1 +/* 0BD530 7F0889C0 14610004 */ bne $v1, $at, .Ljp7F0889D4 +/* 0BD534 7F0889C4 3C018000 */ li $at, 0x80000000 # -0.000000 +/* 0BD538 7F0889C8 14410002 */ bne $v0, $at, .Ljp7F0889D4 +/* 0BD53C 7F0889CC 00000000 */ nop +/* 0BD540 7F0889D0 0006000D */ break 6 +.Ljp7F0889D4: +/* 0BD544 7F0889D4 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BD548 7F0889D8 8FB90160 */ lw $t9, 0x160($sp) +/* 0BD54C 7F0889DC 468042A0 */ cvt.s.w $f10, $f8 +/* 0BD550 7F0889E0 46045180 */ add.s $f6, $f10, $f4 +/* 0BD554 7F0889E4 44812000 */ mtc1 $at, $f4 +/* 0BD558 7F0889E8 46003207 */ neg.s $f8, $f6 +/* 0BD55C 7F0889EC 448F3000 */ mtc1 $t7, $f6 +/* 0BD560 7F0889F0 46024282 */ mul.s $f10, $f8, $f2 +/* 0BD564 7F0889F4 46803220 */ cvt.s.w $f8, $f6 +/* 0BD568 7F0889F8 46045483 */ div.s $f18, $f10, $f4 +/* 0BD56C 7F0889FC 46004287 */ neg.s $f10, $f8 +/* 0BD570 7F088A00 46025102 */ mul.s $f4, $f10, $f2 +/* 0BD574 7F088A04 4610903C */ c.lt.s $f18, $f16 +/* 0BD578 7F088A08 46009306 */ mov.s $f12, $f18 +/* 0BD57C 7F088A0C 14600002 */ bnez $v1, .Ljp7F088A18 +/* 0BD580 7F088A10 00000000 */ nop +/* 0BD584 7F088A14 0007000D */ break 7 +.Ljp7F088A18: +/* 0BD588 7F088A18 2401FFFF */ li $at, -1 +/* 0BD58C 7F088A1C 14610004 */ bne $v1, $at, .Ljp7F088A30 +/* 0BD590 7F088A20 3C018000 */ li $at, 0x80000000 # -0.000000 +/* 0BD594 7F088A24 15A10002 */ bne $t5, $at, .Ljp7F088A30 +/* 0BD598 7F088A28 00000000 */ nop +/* 0BD59C 7F088A2C 0006000D */ break 6 +.Ljp7F088A30: +/* 0BD5A0 7F088A30 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BD5A4 7F088A34 44813000 */ mtc1 $at, $f6 +/* 0BD5A8 7F088A38 44815000 */ mtc1 $at, $f10 +/* 0BD5AC 7F088A3C 24010E10 */ li $at, 3600 +/* 0BD5B0 7F088A40 0041001A */ div $zero, $v0, $at +/* 0BD5B4 7F088A44 00005012 */ mflo $t2 +/* 0BD5B8 7F088A48 2401000C */ li $at, 12 +/* 0BD5BC 7F088A4C 46062203 */ div.s $f8, $f4, $f6 +/* 0BD5C0 7F088A50 0141001A */ div $zero, $t2, $at +/* 0BD5C4 7F088A54 460A9103 */ div.s $f4, $f18, $f10 +/* 0BD5C8 7F088A58 00005810 */ mfhi $t3 +/* 0BD5CC 7F088A5C 448B5000 */ mtc1 $t3, $f10 +/* 0BD5D0 7F088A60 3C014140 */ li $at, 0x41400000 # 12.000000 +/* 0BD5D4 7F088A64 46044180 */ add.s $f6, $f8, $f4 +/* 0BD5D8 7F088A68 46805220 */ cvt.s.w $f8, $f10 +/* 0BD5DC 7F088A6C E7A60040 */ swc1 $f6, 0x40($sp) +/* 0BD5E0 7F088A70 46003386 */ mov.s $f14, $f6 +/* 0BD5E4 7F088A74 46004107 */ neg.s $f4, $f8 +/* 0BD5E8 7F088A78 44814000 */ mtc1 $at, $f8 +/* 0BD5EC 7F088A7C 46022282 */ mul.s $f10, $f4, $f2 +/* 0BD5F0 7F088A80 46085103 */ div.s $f4, $f10, $f8 +/* 0BD5F4 7F088A84 44815000 */ mtc1 $at, $f10 +/* 0BD5F8 7F088A88 3C014434 */ li $at, 0x44340000 # 720.000000 +/* 0BD5FC 7F088A8C 460A3203 */ div.s $f8, $f6, $f10 +/* 0BD600 7F088A90 44815000 */ mtc1 $at, $f10 +/* 0BD604 7F088A94 46082180 */ add.s $f6, $f4, $f8 +/* 0BD608 7F088A98 460A9103 */ div.s $f4, $f18, $f10 +/* 0BD60C 7F088A9C C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 0BD610 7F088AA0 46043200 */ add.s $f8, $f6, $f4 +/* 0BD614 7F088AA4 E7A8003C */ swc1 $f8, 0x3c($sp) +/* 0BD618 7F088AA8 46004006 */ mov.s $f0, $f8 +/* 0BD61C 7F088AAC 45000006 */ bc1f .Ljp7F088AC8 +/* 0BD620 7F088AB0 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0BD624 7F088AB4 46026300 */ add.s $f12, $f12, $f2 +.Ljp7F088AB8: +/* 0BD628 7F088AB8 4610603C */ c.lt.s $f12, $f16 +/* 0BD62C 7F088ABC 00000000 */ nop +/* 0BD630 7F088AC0 4503FFFD */ bc1tl .Ljp7F088AB8 +/* 0BD634 7F088AC4 46026300 */ add.s $f12, $f12, $f2 +.Ljp7F088AC8: +/* 0BD638 7F088AC8 4610503C */ c.lt.s $f10, $f16 +/* 0BD63C 7F088ACC 00000000 */ nop +/* 0BD640 7F088AD0 45020007 */ bc1fl .Ljp7F088AF0 +/* 0BD644 7F088AD4 4610303C */ c.lt.s $f6, $f16 +/* 0BD648 7F088AD8 46027380 */ add.s $f14, $f14, $f2 +.Ljp7F088ADC: +/* 0BD64C 7F088ADC 4610703C */ c.lt.s $f14, $f16 +/* 0BD650 7F088AE0 00000000 */ nop +/* 0BD654 7F088AE4 4503FFFD */ bc1tl .Ljp7F088ADC +/* 0BD658 7F088AE8 46027380 */ add.s $f14, $f14, $f2 +/* 0BD65C 7F088AEC 4610303C */ c.lt.s $f6, $f16 +.Ljp7F088AF0: +/* 0BD660 7F088AF0 00000000 */ nop +/* 0BD664 7F088AF4 45020007 */ bc1fl .Ljp7F088B14 +/* 0BD668 7F088AF8 8F380008 */ lw $t8, 8($t9) +/* 0BD66C 7F088AFC 46020000 */ add.s $f0, $f0, $f2 +.Ljp7F088B00: +/* 0BD670 7F088B00 4610003C */ c.lt.s $f0, $f16 +/* 0BD674 7F088B04 00000000 */ nop +/* 0BD678 7F088B08 4503FFFD */ bc1tl .Ljp7F088B00 +/* 0BD67C 7F088B0C 46020000 */ add.s $f0, $f0, $f2 +/* 0BD680 7F088B10 8F380008 */ lw $t8, 8($t9) +.Ljp7F088B14: +/* 0BD684 7F088B14 8FA60164 */ lw $a2, 0x164($sp) +/* 0BD688 7F088B18 44050000 */ mfc1 $a1, $f0 +/* 0BD68C 7F088B1C 8F0E0000 */ lw $t6, ($t8) +/* 0BD690 7F088B20 24C60040 */ addiu $a2, $a2, 0x40 +/* 0BD694 7F088B24 8DC40004 */ lw $a0, 4($t6) +/* 0BD698 7F088B28 E7AE0098 */ swc1 $f14, 0x98($sp) +/* 0BD69C 7F088B2C E7AC009C */ swc1 $f12, 0x9c($sp) +/* 0BD6A0 7F088B30 0FC1627C */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BD6A4 7F088B34 AFA60040 */ sw $a2, 0x40($sp) +/* 0BD6A8 7F088B38 8FA50040 */ lw $a1, 0x40($sp) +/* 0BD6AC 7F088B3C 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 0BD6B0 7F088B40 8FA40164 */ lw $a0, 0x164($sp) +/* 0BD6B4 7F088B44 8FAC0160 */ lw $t4, 0x160($sp) +/* 0BD6B8 7F088B48 C7AE0098 */ lwc1 $f14, 0x98($sp) +/* 0BD6BC 7F088B4C 8FA60164 */ lw $a2, 0x164($sp) +/* 0BD6C0 7F088B50 8D8D0008 */ lw $t5, 8($t4) +/* 0BD6C4 7F088B54 44057000 */ mfc1 $a1, $f14 +/* 0BD6C8 7F088B58 24C60080 */ addiu $a2, $a2, 0x80 +/* 0BD6CC 7F088B5C 8DAF0004 */ lw $t7, 4($t5) +/* 0BD6D0 7F088B60 8DE40004 */ lw $a0, 4($t7) +/* 0BD6D4 7F088B64 0FC1627C */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BD6D8 7F088B68 AFA60040 */ sw $a2, 0x40($sp) +/* 0BD6DC 7F088B6C 8FA50040 */ lw $a1, 0x40($sp) +/* 0BD6E0 7F088B70 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 0BD6E4 7F088B74 8FA40164 */ lw $a0, 0x164($sp) +/* 0BD6E8 7F088B78 8FAA0160 */ lw $t2, 0x160($sp) +/* 0BD6EC 7F088B7C C7AC009C */ lwc1 $f12, 0x9c($sp) +/* 0BD6F0 7F088B80 8FA60164 */ lw $a2, 0x164($sp) +/* 0BD6F4 7F088B84 8D4B0008 */ lw $t3, 8($t2) +/* 0BD6F8 7F088B88 44056000 */ mfc1 $a1, $f12 +/* 0BD6FC 7F088B8C 24C600C0 */ addiu $a2, $a2, 0xc0 +/* 0BD700 7F088B90 8D790008 */ lw $t9, 8($t3) +/* 0BD704 7F088B94 8F240004 */ lw $a0, 4($t9) +/* 0BD708 7F088B98 0FC1627C */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BD70C 7F088B9C AFA60040 */ sw $a2, 0x40($sp) +/* 0BD710 7F088BA0 8FA50040 */ lw $a1, 0x40($sp) +/* 0BD714 7F088BA4 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 0BD718 7F088BA8 8FA40164 */ lw $a0, 0x164($sp) +/* 0BD71C 7F088BAC 8FAE01F8 */ lw $t6, 0x1f8($sp) +/* 0BD720 7F088BB0 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BD724 7F088BB4 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BD728 7F088BB8 24180003 */ li $t8, 3 +/* 0BD72C 7F088BBC 240C0004 */ li $t4, 4 +/* 0BD730 7F088BC0 AFB801C0 */ sw $t8, 0x1c0($sp) +/* 0BD734 7F088BC4 AFA001BC */ sw $zero, 0x1bc($sp) +/* 0BD738 7F088BC8 AFAC01E8 */ sw $t4, 0x1e8($sp) +/* 0BD73C 7F088BCC AFAE01C4 */ sw $t6, 0x1c4($sp) +/* 0BD740 7F088BD0 8C4301C8 */ lw $v1, 0x1c8($v0) +/* 0BD744 7F088BD4 24010005 */ li $at, 5 +/* 0BD748 7F088BD8 27A401B8 */ addiu $a0, $sp, 0x1b8 +/* 0BD74C 7F088BDC 10610002 */ beq $v1, $at, .Ljp7F088BE8 +/* 0BD750 7F088BE0 2401000C */ li $at, 12 +/* 0BD754 7F088BE4 14610003 */ bne $v1, $at, .Ljp7F088BF4 +.Ljp7F088BE8: +/* 0BD758 7F088BE8 240D00CD */ li $t5, 205 +/* 0BD75C 7F088BEC 1000000C */ b .Ljp7F088C20 +/* 0BD760 7F088BF0 AFAD01EC */ sw $t5, 0x1ec($sp) +.Ljp7F088BF4: +/* 0BD764 7F088BF4 904A0FDC */ lbu $t2, 0xfdc($v0) +/* 0BD768 7F088BF8 904F0FDF */ lbu $t7, 0xfdf($v0) +/* 0BD76C 7F088BFC 90580FDD */ lbu $t8, 0xfdd($v0) +/* 0BD770 7F088C00 904D0FDE */ lbu $t5, 0xfde($v0) +/* 0BD774 7F088C04 000A5E00 */ sll $t3, $t2, 0x18 +/* 0BD778 7F088C08 01EBC825 */ or $t9, $t7, $t3 +/* 0BD77C 7F088C0C 00187400 */ sll $t6, $t8, 0x10 +/* 0BD780 7F088C10 032E6025 */ or $t4, $t9, $t6 +/* 0BD784 7F088C14 000D5200 */ sll $t2, $t5, 8 +/* 0BD788 7F088C18 018A7825 */ or $t7, $t4, $t2 +/* 0BD78C 7F088C1C AFAF01EC */ sw $t7, 0x1ec($sp) +.Ljp7F088C20: +/* 0BD790 7F088C20 0FC1D31D */ jal subdraw +/* 0BD794 7F088C24 24450230 */ addiu $a1, $v0, 0x230 +/* 0BD798 7F088C28 8FAB01C4 */ lw $t3, 0x1c4($sp) +/* 0BD79C 7F088C2C 8FB80160 */ lw $t8, 0x160($sp) +/* 0BD7A0 7F088C30 AFAB01F8 */ sw $t3, 0x1f8($sp) +/* 0BD7A4 7F088C34 8F190008 */ lw $t9, 8($t8) +/* 0BD7A8 7F088C38 8F2E0008 */ lw $t6, 8($t9) +/* 0BD7AC 7F088C3C 8DCD0004 */ lw $t5, 4($t6) +/* 0BD7B0 7F088C40 0FC2F8A4 */ jal sub_GAME_7F0BD6E0 +/* 0BD7B4 7F088C44 AFAD008C */ sw $t5, 0x8c($sp) +/* 0BD7B8 7F088C48 AFA20048 */ sw $v0, 0x48($sp) +/* 0BD7BC 7F088C4C 8FA4008C */ lw $a0, 0x8c($sp) +/* 0BD7C0 7F088C50 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 0BD7C4 7F088C54 27A5004C */ addiu $a1, $sp, 0x4c +/* 0BD7C8 7F088C58 8FA40164 */ lw $a0, 0x164($sp) +/* 0BD7CC 7F088C5C 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 0BD7D0 7F088C60 27A5004C */ addiu $a1, $sp, 0x4c +/* 0BD7D4 7F088C64 0FC16461 */ jal sub_GAME_7F058C64 +/* 0BD7D8 7F088C68 00000000 */ nop +/* 0BD7DC 7F088C6C 27A4004C */ addiu $a0, $sp, 0x4c +/* 0BD7E0 7F088C70 0FC1646F */ jal sub_GAME_7F058C9C +/* 0BD7E4 7F088C74 8FA50048 */ lw $a1, 0x48($sp) +/* 0BD7E8 7F088C78 0FC1646A */ jal sub_GAME_7F058C88 +/* 0BD7EC 7F088C7C 00000000 */ nop +/* 0BD7F0 7F088C80 3C0C8008 */ lui $t4, %hi(pPlayer) # $t4, 0x8008 +/* 0BD7F4 7F088C84 8D8CA120 */ lw $t4, %lo(pPlayer)($t4) +/* 0BD7F8 7F088C88 8FA401F8 */ lw $a0, 0x1f8($sp) +/* 0BD7FC 7F088C8C 8D8301C8 */ lw $v1, 0x1c8($t4) +/* 0BD800 7F088C90 38660005 */ xori $a2, $v1, 5 +/* 0BD804 7F088C94 2CC60001 */ sltiu $a2, $a2, 1 +/* 0BD808 7F088C98 14C00003 */ bnez $a2, .Ljp7F088CA8 +/* 0BD80C 7F088C9C 00000000 */ nop +/* 0BD810 7F088CA0 3866000C */ xori $a2, $v1, 0xc +/* 0BD814 7F088CA4 2CC60001 */ sltiu $a2, $a2, 1 +.Ljp7F088CA8: +/* 0BD818 7F088CA8 0FC2B574 */ jal sub_GAME_7F0ACA28 +/* 0BD81C 7F088CAC 8FA50048 */ lw $a1, 0x48($sp) +/* 0BD820 7F088CB0 0FC16461 */ jal sub_GAME_7F058C64 +/* 0BD824 7F088CB4 AFA201F8 */ sw $v0, 0x1f8($sp) +/* 0BD828 7F088CB8 3C0A8008 */ lui $t2, %hi(pPlayer) # $t2, 0x8008 +/* 0BD82C 7F088CBC 8D4AA120 */ lw $t2, %lo(pPlayer)($t2) +/* 0BD830 7F088CC0 8FAF0160 */ lw $t7, 0x160($sp) +/* 0BD834 7F088CC4 8D44023C */ lw $a0, 0x23c($t2) +/* 0BD838 7F088CC8 0FC23174 */ jal sub_GAME_7F08BD48 +/* 0BD83C 7F088CCC 85E5000E */ lh $a1, 0xe($t7) +/* 0BD840 7F088CD0 0FC1646A */ jal sub_GAME_7F058C88 +/* 0BD844 7F088CD4 00000000 */ nop +.Ljp7F088CD8: +/* 0BD848 7F088CD8 8FBF002C */ lw $ra, 0x2c($sp) +.Ljp7F088CDC: +/* 0BD84C 7F088CDC 8FA201F8 */ lw $v0, 0x1f8($sp) +/* 0BD850 7F088CE0 27BD01F8 */ addiu $sp, $sp, 0x1f8 +/* 0BD854 7F088CE4 03E00008 */ jr $ra +/* 0BD858 7F088CE8 00000000 */ nop +) +#endif + +#endif + + +#ifdef NONMATCHING +s32 sub_GAME_7F088618(void *arg0) { + ? sp78; + s32 spB8; + s32 spBC; + ? temp_ret; + void *temp_s0; + void *temp_s0_2; + void *temp_s0_3; + void *temp_s0_4; + void *temp_s0_5; + void *temp_s0_6; + void *temp_s0_7; + void *temp_s0_8; + void *temp_s0_9; + void *temp_s0_10; + void *temp_s0_11; + + // Node 0 + sub_GAME_7F0A2F30((pPlayer + 0x12b8), 0x2e, 1, pPlayer->apparentarmour); + sub_GAME_7F0A3330((pPlayer + 0x19f8), (pPlayer + 0x800012b8), 0x2e); + sub_GAME_7F0A2F30((pPlayer + 0x1598), 0x2e, -1, pPlayer->apparenthealth); + sub_GAME_7F0A3330((pPlayer + 0x2128), (pPlayer + 0x80001598), 0x2e); + spBC = sub_GAME_7F0BD6E0(); + temp_ret = sub_GAME_7F0BD6E0(); + spB8 = temp_ret; + guOrtho(temp_ret, (-800.0f * D_800364CC), (800.0f * D_800364CC), (-600.0f * D_800364CC), (f32) (600.0f * D_800364CC), -100.0f, 1000.0f, 1.0f); + *arg0 = 0x1030040; + temp_s0 = (arg0 + 8); + arg0->unk4 = osVirtualToPhysical(spB8); + sub_GAME_7F059694(&sp78, 0.0f, &0x43FA0004, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f); + sub_GAME_7F058C9C(&sp78, spBC); + *temp_s0 = 0x1020040; + temp_s0_2 = (temp_s0 + 8); + temp_s0->unk4 = osVirtualToPhysical(spBC); + temp_s0_3 = (temp_s0_2 + 8); + *temp_s0_2 = 0xe7000000; + temp_s0_2->unk4 = 0; + temp_s0_4 = (temp_s0_3 + 8); + *temp_s0_3 = 0xba001402; + temp_s0_3->unk4 = 0; + temp_s0_5 = (temp_s0_4 + 8); + *temp_s0_4 = 0xb900031d; + temp_s0_4->unk4 = 0x5041c8; + temp_s0_6 = (temp_s0_5 + 8); + *temp_s0_5 = 0xb9000002; + *temp_s0_5 = 0; + temp_s0_7 = (temp_s0_6 + 8); + *temp_s0_6 = 0xfcffffff; + temp_s0_6->unk4 = 0xfffe793c; + temp_s0_8 = (temp_s0_7 + 8); + *temp_s0_7 = 0xfa000000; + temp_s0_7->unk4 = 0xe6e6e600; + temp_s0_9 = (temp_s0_8 + 8); + *temp_s0_8 = 0xb6000000; + temp_s0_8->unk4 = 0x3000; + *temp_s0_9 = 0x6000000; + temp_s0_10 = (temp_s0_9 + 8); + temp_s0_9->unk4 = (s32) (pPlayer + 0x800019f8); + *temp_s0_10 = 0x6000000; + temp_s0_11 = (temp_s0_10 + 8); + temp_s0_10->unk4 = (s32) (pPlayer + 0x80002128); + *temp_s0_11 = 0x1030040; + temp_s0_11->unk4 = osVirtualToPhysical(get_BONDdata_field_10D8(temp_s0_9, temp_s0_10, 0x6000000, temp_s0_6)); + return (temp_s0_11 + 8); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F088618 +/* 0BD148 7F088618 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 0BD14C 7F08861C AFB20038 */ sw $s2, 0x38($sp) +/* 0BD150 7F088620 3C128008 */ lui $s2, %hi(pPlayer) +/* 0BD154 7F088624 2652A0B0 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5f50 +/* 0BD158 7F088628 AFB10034 */ sw $s1, 0x34($sp) +/* 0BD15C 7F08862C 8E510000 */ lw $s1, ($s2) +/* 0BD160 7F088630 AFB00030 */ sw $s0, 0x30($sp) +/* 0BD164 7F088634 00808025 */ move $s0, $a0 +/* 0BD168 7F088638 AFBF003C */ sw $ra, 0x3c($sp) +/* 0BD16C 7F08863C 2405002E */ li $a1, 46 +/* 0BD170 7F088640 24060001 */ li $a2, 1 +/* 0BD174 7F088644 8E2700F0 */ lw $a3, 0xf0($s1) +/* 0BD178 7F088648 0FC28BCC */ jal sub_GAME_7F0A2F30 +/* 0BD17C 7F08864C 262412B8 */ addiu $a0, $s1, 0x12b8 +/* 0BD180 7F088650 8E510000 */ lw $s1, ($s2) +/* 0BD184 7F088654 3C018000 */ lui $at, (0x800012B8 >> 16) +/* 0BD188 7F088658 342112B8 */ ori $at, (0x800012B8 & 0xFFFF) # ori $at, $at, 0x12b8 +/* 0BD18C 7F08865C 2406002E */ li $a2, 46 +/* 0BD190 7F088660 02212821 */ addu $a1, $s1, $at +/* 0BD194 7F088664 0FC28CCC */ jal sub_GAME_7F0A3330 +/* 0BD198 7F088668 262419F8 */ addiu $a0, $s1, 0x19f8 +/* 0BD19C 7F08866C 8E510000 */ lw $s1, ($s2) +/* 0BD1A0 7F088670 2405002E */ li $a1, 46 +/* 0BD1A4 7F088674 2406FFFF */ li $a2, -1 +/* 0BD1A8 7F088678 26241598 */ addiu $a0, $s1, 0x1598 +/* 0BD1AC 7F08867C 0FC28BCC */ jal sub_GAME_7F0A2F30 +/* 0BD1B0 7F088680 8E2700EC */ lw $a3, 0xec($s1) +/* 0BD1B4 7F088684 8E510000 */ lw $s1, ($s2) +/* 0BD1B8 7F088688 3C018000 */ lui $at, (0x80001598 >> 16) +/* 0BD1BC 7F08868C 34211598 */ ori $at, (0x80001598 & 0xFFFF) # ori $at, $at, 0x1598 +/* 0BD1C0 7F088690 2406002E */ li $a2, 46 +/* 0BD1C4 7F088694 02212821 */ addu $a1, $s1, $at +/* 0BD1C8 7F088698 0FC28CCC */ jal sub_GAME_7F0A3330 +/* 0BD1CC 7F08869C 26242128 */ addiu $a0, $s1, 0x2128 +/* 0BD1D0 7F0886A0 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BD1D4 7F0886A4 00000000 */ nop +/* 0BD1D8 7F0886A8 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BD1DC 7F0886AC AFA200BC */ sw $v0, 0xbc($sp) +/* 0BD1E0 7F0886B0 3C018003 */ lui $at, %hi(D_800364CC) +/* 0BD1E4 7F0886B4 C42064CC */ lwc1 $f0, %lo(D_800364CC)($at) +/* 0BD1E8 7F0886B8 3C01C448 */ li $at, 0xC4480000 # -800.000000 +/* 0BD1EC 7F0886BC 44812000 */ mtc1 $at, $f4 +/* 0BD1F0 7F0886C0 3C014448 */ li $at, 0x44480000 # 800.000000 +/* 0BD1F4 7F0886C4 44814000 */ mtc1 $at, $f8 +/* 0BD1F8 7F0886C8 46002182 */ mul.s $f6, $f4, $f0 +/* 0BD1FC 7F0886CC 3C01C416 */ li $at, 0xC4160000 # -600.000000 +/* 0BD200 7F0886D0 44818000 */ mtc1 $at, $f16 +/* 0BD204 7F0886D4 46004282 */ mul.s $f10, $f8, $f0 +/* 0BD208 7F0886D8 3C014416 */ li $at, 0x44160000 # 600.000000 +/* 0BD20C 7F0886DC 44812000 */ mtc1 $at, $f4 +/* 0BD210 7F0886E0 46008482 */ mul.s $f18, $f16, $f0 +/* 0BD214 7F0886E4 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 0BD218 7F0886E8 44053000 */ mfc1 $a1, $f6 +/* 0BD21C 7F0886EC 46002182 */ mul.s $f6, $f4, $f0 +/* 0BD220 7F0886F0 44814000 */ mtc1 $at, $f8 +/* 0BD224 7F0886F4 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0BD228 7F0886F8 44065000 */ mfc1 $a2, $f10 +/* 0BD22C 7F0886FC 44815000 */ mtc1 $at, $f10 +/* 0BD230 7F088700 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BD234 7F088704 44818000 */ mtc1 $at, $f16 +/* 0BD238 7F088708 44079000 */ mfc1 $a3, $f18 +/* 0BD23C 7F08870C AFA200B8 */ sw $v0, 0xb8($sp) +/* 0BD240 7F088710 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0BD244 7F088714 00402025 */ move $a0, $v0 +/* 0BD248 7F088718 E7A80014 */ swc1 $f8, 0x14($sp) +/* 0BD24C 7F08871C E7AA0018 */ swc1 $f10, 0x18($sp) +/* 0BD250 7F088720 0C005AF1 */ jal guOrtho +/* 0BD254 7F088724 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 0BD258 7F088728 3C0E0103 */ lui $t6, (0x01030040 >> 16) # lui $t6, 0x103 +/* 0BD25C 7F08872C 35CE0040 */ ori $t6, (0x01030040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 0BD260 7F088730 02008825 */ move $s1, $s0 +/* 0BD264 7F088734 AE2E0000 */ sw $t6, ($s1) +/* 0BD268 7F088738 8FA400B8 */ lw $a0, 0xb8($sp) +/* 0BD26C 7F08873C 0C003A2C */ jal osVirtualToPhysical +/* 0BD270 7F088740 26100008 */ addiu $s0, $s0, 8 +/* 0BD274 7F088744 44800000 */ mtc1 $zero, $f0 +/* 0BD278 7F088748 AE220004 */ sw $v0, 4($s1) +/* 0BD27C 7F08874C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0BD280 7F088750 44819000 */ mtc1 $at, $f18 +/* 0BD284 7F088754 44050000 */ mfc1 $a1, $f0 +/* 0BD288 7F088758 44070000 */ mfc1 $a3, $f0 +/* 0BD28C 7F08875C 27A40078 */ addiu $a0, $sp, 0x78 +/* 0BD290 7F088760 3C0643FA */ lui $a2, %hi(0x43FA0004) # $a2, 0x43fa +/* 0BD294 7F088764 E7A00020 */ swc1 $f0, 0x20($sp) +/* 0BD298 7F088768 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0BD29C 7F08876C E7A00018 */ swc1 $f0, 0x18($sp) +/* 0BD2A0 7F088770 E7A00014 */ swc1 $f0, 0x14($sp) +/* 0BD2A4 7F088774 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0BD2A8 7F088778 0FC165A5 */ jal sub_GAME_7F059694 +/* 0BD2AC 7F08877C E7B20024 */ swc1 $f18, 0x24($sp) +/* 0BD2B0 7F088780 27A40078 */ addiu $a0, $sp, 0x78 +/* 0BD2B4 7F088784 0FC16327 */ jal sub_GAME_7F058C9C +/* 0BD2B8 7F088788 8FA500BC */ lw $a1, 0xbc($sp) +/* 0BD2BC 7F08878C 3C0F0102 */ lui $t7, (0x01020040 >> 16) # lui $t7, 0x102 +/* 0BD2C0 7F088790 35EF0040 */ ori $t7, (0x01020040 & 0xFFFF) # ori $t7, $t7, 0x40 +/* 0BD2C4 7F088794 02008825 */ move $s1, $s0 +/* 0BD2C8 7F088798 AE2F0000 */ sw $t7, ($s1) +/* 0BD2CC 7F08879C 8FA400BC */ lw $a0, 0xbc($sp) +/* 0BD2D0 7F0887A0 0C003A2C */ jal osVirtualToPhysical +/* 0BD2D4 7F0887A4 26100008 */ addiu $s0, $s0, 8 +/* 0BD2D8 7F0887A8 02001825 */ move $v1, $s0 +/* 0BD2DC 7F0887AC AE220004 */ sw $v0, 4($s1) +/* 0BD2E0 7F0887B0 26100008 */ addiu $s0, $s0, 8 +/* 0BD2E4 7F0887B4 3C18E700 */ lui $t8, 0xe700 +/* 0BD2E8 7F0887B8 02002025 */ move $a0, $s0 +/* 0BD2EC 7F0887BC AC780000 */ sw $t8, ($v1) +/* 0BD2F0 7F0887C0 AC600004 */ sw $zero, 4($v1) +/* 0BD2F4 7F0887C4 26100008 */ addiu $s0, $s0, 8 +/* 0BD2F8 7F0887C8 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 +/* 0BD2FC 7F0887CC 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 +/* 0BD300 7F0887D0 02002825 */ move $a1, $s0 +/* 0BD304 7F0887D4 AC990000 */ sw $t9, ($a0) +/* 0BD308 7F0887D8 AC800004 */ sw $zero, 4($a0) +/* 0BD30C 7F0887DC 26100008 */ addiu $s0, $s0, 8 +/* 0BD310 7F0887E0 3C08B900 */ lui $t0, (0xB900031D >> 16) # lui $t0, 0xb900 +/* 0BD314 7F0887E4 3C090050 */ lui $t1, (0x005041C8 >> 16) # lui $t1, 0x50 +/* 0BD318 7F0887E8 352941C8 */ ori $t1, (0x005041C8 & 0xFFFF) # ori $t1, $t1, 0x41c8 +/* 0BD31C 7F0887EC 3508031D */ ori $t0, (0xB900031D & 0xFFFF) # ori $t0, $t0, 0x31d +/* 0BD320 7F0887F0 02003025 */ move $a2, $s0 +/* 0BD324 7F0887F4 ACA80000 */ sw $t0, ($a1) +/* 0BD328 7F0887F8 ACA90004 */ sw $t1, 4($a1) +/* 0BD32C 7F0887FC 3C0AB900 */ lui $t2, (0xB9000002 >> 16) # lui $t2, 0xb900 +/* 0BD330 7F088800 354A0002 */ ori $t2, (0xB9000002 & 0xFFFF) # ori $t2, $t2, 2 +/* 0BD334 7F088804 26100008 */ addiu $s0, $s0, 8 +/* 0BD338 7F088808 ACCA0000 */ sw $t2, ($a2) +/* 0BD33C 7F08880C ACC00004 */ sw $zero, %lo(0x43FA0004)($a2) +/* 0BD340 7F088810 02003825 */ move $a3, $s0 +/* 0BD344 7F088814 26100008 */ addiu $s0, $s0, 8 +/* 0BD348 7F088818 3C0BFCFF */ lui $t3, (0xFCFFFFFF >> 16) # lui $t3, 0xfcff +/* 0BD34C 7F08881C 3C0CFFFE */ lui $t4, (0xFFFE793C >> 16) # lui $t4, 0xfffe +/* 0BD350 7F088820 358C793C */ ori $t4, (0xFFFE793C & 0xFFFF) # ori $t4, $t4, 0x793c +/* 0BD354 7F088824 356BFFFF */ ori $t3, (0xFCFFFFFF & 0xFFFF) # ori $t3, $t3, 0xffff +/* 0BD358 7F088828 02001025 */ move $v0, $s0 +/* 0BD35C 7F08882C ACEB0000 */ sw $t3, ($a3) +/* 0BD360 7F088830 ACEC0004 */ sw $t4, 4($a3) +/* 0BD364 7F088834 26100008 */ addiu $s0, $s0, 8 +/* 0BD368 7F088838 3C0EE6E6 */ lui $t6, (0xE6E6E600 >> 16) # lui $t6, 0xe6e6 +/* 0BD36C 7F08883C 35CEE600 */ ori $t6, (0xE6E6E600 & 0xFFFF) # ori $t6, $t6, 0xe600 +/* 0BD370 7F088840 3C0DFA00 */ lui $t5, 0xfa00 +/* 0BD374 7F088844 02001825 */ move $v1, $s0 +/* 0BD378 7F088848 AC4D0000 */ sw $t5, ($v0) +/* 0BD37C 7F08884C AC4E0004 */ sw $t6, 4($v0) +/* 0BD380 7F088850 26100008 */ addiu $s0, $s0, 8 +/* 0BD384 7F088854 24183000 */ li $t8, 12288 +/* 0BD388 7F088858 3C0FB600 */ lui $t7, 0xb600 +/* 0BD38C 7F08885C 3C060600 */ lui $a2, 0x600 +/* 0BD390 7F088860 AC6F0000 */ sw $t7, ($v1) +/* 0BD394 7F088864 AC780004 */ sw $t8, 4($v1) +/* 0BD398 7F088868 02002025 */ move $a0, $s0 +/* 0BD39C 7F08886C AC860000 */ sw $a2, ($a0) +/* 0BD3A0 7F088870 8E590000 */ lw $t9, ($s2) +/* 0BD3A4 7F088874 3C018000 */ lui $at, (0x800019F8 >> 16) +/* 0BD3A8 7F088878 342119F8 */ ori $at, (0x800019F8 & 0xFFFF) # ori $at, $at, 0x19f8 +/* 0BD3AC 7F08887C 26100008 */ addiu $s0, $s0, 8 +/* 0BD3B0 7F088880 03214021 */ addu $t0, $t9, $at +/* 0BD3B4 7F088884 AC880004 */ sw $t0, 4($a0) +/* 0BD3B8 7F088888 02002825 */ move $a1, $s0 +/* 0BD3BC 7F08888C ACA60000 */ sw $a2, ($a1) +/* 0BD3C0 7F088890 8E490000 */ lw $t1, ($s2) +/* 0BD3C4 7F088894 3C018000 */ lui $at, (0x80002128 >> 16) +/* 0BD3C8 7F088898 34212128 */ ori $at, (0x80002128 & 0xFFFF) # ori $at, $at, 0x2128 +/* 0BD3CC 7F08889C 26100008 */ addiu $s0, $s0, 8 +/* 0BD3D0 7F0888A0 3C0B0103 */ lui $t3, (0x01030040 >> 16) # lui $t3, 0x103 +/* 0BD3D4 7F0888A4 01215021 */ addu $t2, $t1, $at +/* 0BD3D8 7F0888A8 ACAA0004 */ sw $t2, 4($a1) +/* 0BD3DC 7F0888AC 356B0040 */ ori $t3, (0x01030040 & 0xFFFF) # ori $t3, $t3, 0x40 +/* 0BD3E0 7F0888B0 02008825 */ move $s1, $s0 +/* 0BD3E4 7F0888B4 AE2B0000 */ sw $t3, ($s1) +/* 0BD3E8 7F0888B8 0FC1E0DD */ jal get_BONDdata_field_10D8 +/* 0BD3EC 7F0888BC 26100008 */ addiu $s0, $s0, 8 +/* 0BD3F0 7F0888C0 0C003A2C */ jal osVirtualToPhysical +/* 0BD3F4 7F0888C4 00402025 */ move $a0, $v0 +/* 0BD3F8 7F0888C8 AE220004 */ sw $v0, 4($s1) +/* 0BD3FC 7F0888CC 8FBF003C */ lw $ra, 0x3c($sp) +/* 0BD400 7F0888D0 02001025 */ move $v0, $s0 +/* 0BD404 7F0888D4 8FB00030 */ lw $s0, 0x30($sp) +/* 0BD408 7F0888D8 8FB20038 */ lw $s2, 0x38($sp) +/* 0BD40C 7F0888DC 8FB10034 */ lw $s1, 0x34($sp) +/* 0BD410 7F0888E0 03E00008 */ jr $ra +/* 0BD414 7F0888E4 27BD00C0 */ addiu $sp, $sp, 0xc0 +) +#endif + + + + + +#ifdef NONMATCHING +void mp_respawn_handler(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055284 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055288 +.word 0x3e2e147c /*0.17000002*/ +glabel D_8005528C +.word 0x3dccccd0 /*0.10000002*/ + +/*D:80055290*/ +glabel jpt_mpspawntype +.word mp_spawntype_spawn +.word mp_spawntype_weapon +.word mp_spawntype_ammo +.word mp_spawntype_intro_swirly +.word mp_spawntype_intro_anim +.word mp_spawntype_handcuff +.word mp_spawntype_intro_camera + +glabel D_800552AC +.word 0xb8d1b717 /*-0.000099999997*/ +.text +glabel mp_respawn_handler +/* 0BD418 7F0888E8 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0BD41C 7F0888EC 3C0F8003 */ lui $t7, %hi(D_8003688C) +/* 0BD420 7F0888F0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0BD424 7F0888F4 AFB10018 */ sw $s1, 0x18($sp) +/* 0BD428 7F0888F8 AFB00014 */ sw $s0, 0x14($sp) +/* 0BD42C 7F0888FC 25EF688C */ addiu $t7, %lo(D_8003688C) # addiu $t7, $t7, 0x688c +/* 0BD430 7F088900 8DE10000 */ lw $at, ($t7) +/* 0BD434 7F088904 27AE004C */ addiu $t6, $sp, 0x4c +/* 0BD438 7F088908 8DE80004 */ lw $t0, 4($t7) +/* 0BD43C 7F08890C ADC10000 */ sw $at, ($t6) +/* 0BD440 7F088910 8DE10008 */ lw $at, 8($t7) +/* 0BD444 7F088914 3C108007 */ lui $s0, %hi(ptr_setup_intro) +/* 0BD448 7F088918 ADC80004 */ sw $t0, 4($t6) +/* 0BD44C 7F08891C ADC10008 */ sw $at, 8($t6) +/* 0BD450 7F088920 0FC1E4FB */ jal init_player_BONDdata +/* 0BD454 7F088924 8E105D08 */ lw $s0, %lo(ptr_setup_intro)($s0) +/* 0BD458 7F088928 0FC1E62E */ jal sub_GAME_7F0798B8 +/* 0BD45C 7F08892C 00000000 */ nop +/* 0BD460 7F088930 3C118008 */ lui $s1, %hi(pPlayer) +/* 0BD464 7F088934 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 0BD468 7F088938 8E290000 */ lw $t1, ($s1) +/* 0BD46C 7F08893C 240C0001 */ li $t4, 1 +/* 0BD470 7F088940 24020007 */ li $v0, 7 +/* 0BD474 7F088944 AD2000D8 */ sw $zero, 0xd8($t1) +/* 0BD478 7F088948 8E2A0000 */ lw $t2, ($s1) +/* 0BD47C 7F08894C 240F0002 */ li $t7, 2 +/* 0BD480 7F088950 2404FFFF */ li $a0, -1 +/* 0BD484 7F088954 AD400428 */ sw $zero, 0x428($t2) +/* 0BD488 7F088958 8E2B0000 */ lw $t3, ($s1) +/* 0BD48C 7F08895C AD600424 */ sw $zero, 0x424($t3) +/* 0BD490 7F088960 8E2D0000 */ lw $t5, ($s1) +/* 0BD494 7F088964 ADAC0420 */ sw $t4, 0x420($t5) +/* 0BD498 7F088968 8E390000 */ lw $t9, ($s1) +/* 0BD49C 7F08896C AF2229B8 */ sw $v0, 0x29b8($t9) +/* 0BD4A0 7F088970 8E380000 */ lw $t8, ($s1) +/* 0BD4A4 7F088974 AF0229D4 */ sw $v0, 0x29d4($t8) +/* 0BD4A8 7F088978 8E2E0000 */ lw $t6, ($s1) +/* 0BD4AC 7F08897C ADC01064 */ sw $zero, 0x1064($t6) +/* 0BD4B0 7F088980 8E280000 */ lw $t0, ($s1) +/* 0BD4B4 7F088984 0FC228E0 */ jal unset_flags_in_BONDdata_stationary_intro_cam +/* 0BD4B8 7F088988 AD0F1128 */ sw $t7, 0x1128($t0) +/* 0BD4BC 7F08898C 0FC22A4A */ jal sub_GAME_7F08A928 +/* 0BD4C0 7F088990 2404FFFF */ li $a0, -1 +/* 0BD4C4 7F088994 0FC26919 */ jal get_num_players +/* 0BD4C8 7F088998 00000000 */ nop +/* 0BD4CC 7F08899C 28410002 */ slti $at, $v0, 2 +/* 0BD4D0 7F0889A0 14200008 */ bnez $at, .L7F0889C4 +/* 0BD4D4 7F0889A4 3C098008 */ lui $t1, %hi(dword_CODE_bss_80079C68) +/* 0BD4D8 7F0889A8 8D299C68 */ lw $t1, %lo(dword_CODE_bss_80079C68)($t1) +/* 0BD4DC 7F0889AC 59200006 */ blezl $t1, .L7F0889C8 +/* 0BD4E0 7F0889B0 00001825 */ move $v1, $zero +/* 0BD4E4 7F0889B4 0FC1E43C */ jal sub_GAME_7F0790F0 +/* 0BD4E8 7F0889B8 00000000 */ nop +/* 0BD4EC 7F0889BC 10000002 */ b .L7F0889C8 +/* 0BD4F0 7F0889C0 00401825 */ move $v1, $v0 +.L7F0889C4: +/* 0BD4F4 7F0889C4 00001825 */ move $v1, $zero +.L7F0889C8: +/* 0BD4F8 7F0889C8 00035080 */ sll $t2, $v1, 2 +/* 0BD4FC 7F0889CC 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079C28) +/* 0BD500 7F0889D0 004A1021 */ addu $v0, $v0, $t2 +/* 0BD504 7F0889D4 8C429C28 */ lw $v0, %lo(dword_CODE_bss_80079C28)($v0) +/* 0BD508 7F0889D8 C4440000 */ lwc1 $f4, ($v0) +/* 0BD50C 7F0889DC E7A4004C */ swc1 $f4, 0x4c($sp) +/* 0BD510 7F0889E0 C4460008 */ lwc1 $f6, 8($v0) +/* 0BD514 7F0889E4 8FA5004C */ lw $a1, 0x4c($sp) +/* 0BD518 7F0889E8 E7A60054 */ swc1 $f6, 0x54($sp) +/* 0BD51C 7F0889EC 8C440028 */ lw $a0, 0x28($v0) +/* 0BD520 7F0889F0 8FA60054 */ lw $a2, 0x54($sp) +/* 0BD524 7F0889F4 0FC20358 */ jal sub_GAME_7F080D60 +/* 0BD528 7F0889F8 AFA40044 */ sw $a0, 0x44($sp) +/* 0BD52C 7F0889FC 8E220000 */ lw $v0, ($s1) +/* 0BD530 7F088A00 C44829BC */ lwc1 $f8, 0x29bc($v0) +/* 0BD534 7F088A04 46004280 */ add.s $f10, $f8, $f0 +/* 0BD538 7F088A08 E7AA0050 */ swc1 $f10, 0x50($sp) +/* 0BD53C 7F088A0C E4400070 */ swc1 $f0, 0x70($v0) +/* 0BD540 7F088A10 0C002914 */ jal get_random_value +/* 0BD544 7F088A14 E7A0003C */ swc1 $f0, 0x3c($sp) +/* 0BD548 7F088A18 44828000 */ mtc1 $v0, $f16 +/* 0BD54C 7F088A1C 3C018005 */ lui $at, %hi(D_80055284) +/* 0BD550 7F088A20 C42C5284 */ lwc1 $f12, %lo(D_80055284)($at) +/* 0BD554 7F088A24 C7A2003C */ lwc1 $f2, 0x3c($sp) +/* 0BD558 7F088A28 04410005 */ bgez $v0, .L7F088A40 +/* 0BD55C 7F088A2C 468084A0 */ cvt.s.w $f18, $f16 +/* 0BD560 7F088A30 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0BD564 7F088A34 44812000 */ mtc1 $at, $f4 +/* 0BD568 7F088A38 00000000 */ nop +/* 0BD56C 7F088A3C 46049480 */ add.s $f18, $f18, $f4 +.L7F088A40: +/* 0BD570 7F088A40 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0BD574 7F088A44 44813000 */ mtc1 $at, $f6 +/* 0BD578 7F088A48 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BD57C 7F088A4C 44815000 */ mtc1 $at, $f10 +/* 0BD580 7F088A50 46069202 */ mul.s $f8, $f18, $f6 +/* 0BD584 7F088A54 8E2B0000 */ lw $t3, ($s1) +/* 0BD588 7F088A58 3C018005 */ lui $at, %hi(D_80055288) +/* 0BD58C 7F088A5C 27A5004C */ addiu $a1, $sp, 0x4c +/* 0BD590 7F088A60 460C4002 */ mul.s $f0, $f8, $f12 +/* 0BD594 7F088A64 00000000 */ nop +/* 0BD598 7F088A68 460A0402 */ mul.s $f16, $f0, $f10 +/* 0BD59C 7F088A6C E7A00048 */ swc1 $f0, 0x48($sp) +/* 0BD5A0 7F088A70 460C8103 */ div.s $f4, $f16, $f12 +/* 0BD5A4 7F088A74 E5640148 */ swc1 $f4, 0x148($t3) +/* 0BD5A8 7F088A78 8E2C0000 */ lw $t4, ($s1) +/* 0BD5AC 7F088A7C E5820074 */ swc1 $f2, 0x74($t4) +/* 0BD5B0 7F088A80 C4325288 */ lwc1 $f18, %lo(D_80055288)($at) +/* 0BD5B4 7F088A84 8E2D0000 */ lw $t5, ($s1) +/* 0BD5B8 7F088A88 46121183 */ div.s $f6, $f2, $f18 +/* 0BD5BC 7F088A8C E5A6006C */ swc1 $f6, 0x6c($t5) +/* 0BD5C0 7F088A90 8E240000 */ lw $a0, ($s1) +/* 0BD5C4 7F088A94 8FA60044 */ lw $a2, 0x44($sp) +/* 0BD5C8 7F088A98 0FC1F1CC */ jal change_player_pos_to_target +/* 0BD5CC 7F088A9C 24840488 */ addiu $a0, $a0, 0x488 +/* 0BD5D0 7F088AA0 0FC15FAB */ jal sinf +/* 0BD5D4 7F088AA4 C7AC0048 */ lwc1 $f12, 0x48($sp) +/* 0BD5D8 7F088AA8 8E390000 */ lw $t9, ($s1) +/* 0BD5DC 7F088AAC 46000207 */ neg.s $f8, $f0 +/* 0BD5E0 7F088AB0 44805000 */ mtc1 $zero, $f10 +/* 0BD5E4 7F088AB4 E7280498 */ swc1 $f8, 0x498($t9) +/* 0BD5E8 7F088AB8 8E380000 */ lw $t8, ($s1) +/* 0BD5EC 7F088ABC E70A049C */ swc1 $f10, 0x49c($t8) +/* 0BD5F0 7F088AC0 0FC15FA8 */ jal cosf +/* 0BD5F4 7F088AC4 C7AC0048 */ lwc1 $f12, 0x48($sp) +/* 0BD5F8 7F088AC8 8E2E0000 */ lw $t6, ($s1) +/* 0BD5FC 7F088ACC 3C018005 */ lui $at, %hi(D_8005528C) +/* 0BD600 7F088AD0 C42C528C */ lwc1 $f12, %lo(D_8005528C)($at) +/* 0BD604 7F088AD4 E5C004A0 */ swc1 $f0, 0x4a0($t6) +/* 0BD608 7F088AD8 8E2F0000 */ lw $t7, ($s1) +/* 0BD60C 7F088ADC C7A2004C */ lwc1 $f2, 0x4c($sp) +/* 0BD610 7F088AE0 E5E20408 */ swc1 $f2, 0x408($t7) +/* 0BD614 7F088AE4 8E280000 */ lw $t0, ($s1) +/* 0BD618 7F088AE8 8D0900A8 */ lw $t1, 0xa8($t0) +/* 0BD61C 7F088AEC E5220008 */ swc1 $f2, 8($t1) +/* 0BD620 7F088AF0 8E2A0000 */ lw $t2, ($s1) +/* 0BD624 7F088AF4 C7A20050 */ lwc1 $f2, 0x50($sp) +/* 0BD628 7F088AF8 E542040C */ swc1 $f2, 0x40c($t2) +/* 0BD62C 7F088AFC 8E2B0000 */ lw $t3, ($s1) +/* 0BD630 7F088B00 8D6C00A8 */ lw $t4, 0xa8($t3) +/* 0BD634 7F088B04 E582000C */ swc1 $f2, 0xc($t4) +/* 0BD638 7F088B08 8E2D0000 */ lw $t5, ($s1) +/* 0BD63C 7F088B0C C7A20054 */ lwc1 $f2, 0x54($sp) +/* 0BD640 7F088B10 E5A20410 */ swc1 $f2, 0x410($t5) +/* 0BD644 7F088B14 8E390000 */ lw $t9, ($s1) +/* 0BD648 7F088B18 8F3800A8 */ lw $t8, 0xa8($t9) +/* 0BD64C 7F088B1C E7020010 */ swc1 $f2, 0x10($t8) +/* 0BD650 7F088B20 8E2F0000 */ lw $t7, ($s1) +/* 0BD654 7F088B24 8FAE0044 */ lw $t6, 0x44($sp) +/* 0BD658 7F088B28 8DE800A8 */ lw $t0, 0xa8($t7) +/* 0BD65C 7F088B2C AD0E0014 */ sw $t6, 0x14($t0) +/* 0BD660 7F088B30 8E220000 */ lw $v0, ($s1) +/* 0BD664 7F088B34 C45004B4 */ lwc1 $f16, 0x4b4($v0) +/* 0BD668 7F088B38 460C8103 */ div.s $f4, $f16, $f12 +/* 0BD66C 7F088B3C E44403B8 */ swc1 $f4, 0x3b8($v0) +/* 0BD670 7F088B40 8E220000 */ lw $v0, ($s1) +/* 0BD674 7F088B44 C45204B8 */ lwc1 $f18, 0x4b8($v0) +/* 0BD678 7F088B48 460C9183 */ div.s $f6, $f18, $f12 +/* 0BD67C 7F088B4C E44603BC */ swc1 $f6, 0x3bc($v0) +/* 0BD680 7F088B50 8E220000 */ lw $v0, ($s1) +/* 0BD684 7F088B54 C44804BC */ lwc1 $f8, 0x4bc($v0) +/* 0BD688 7F088B58 460C4283 */ div.s $f10, $f8, $f12 +/* 0BD68C 7F088B5C 0FC22FFC */ jal reinit_BONDdata_inventory +/* 0BD690 7F088B60 E44A03C0 */ swc1 $f10, 0x3c0($v0) +/* 0BD694 7F088B64 8E290000 */ lw $t1, ($s1) +/* 0BD698 7F088B68 24020008 */ li $v0, 8 +/* 0BD69C 7F088B6C 24030078 */ li $v1, 120 +/* 0BD6A0 7F088B70 AD201130 */ sw $zero, 0x1130($t1) +/* 0BD6A4 7F088B74 8E2A0000 */ lw $t2, ($s1) +/* 0BD6A8 7F088B78 AD401134 */ sw $zero, 0x1134($t2) +.L7F088B7C: +/* 0BD6AC 7F088B7C 8E2B0000 */ lw $t3, ($s1) +/* 0BD6B0 7F088B80 01626021 */ addu $t4, $t3, $v0 +/* 0BD6B4 7F088B84 AD801130 */ sw $zero, 0x1130($t4) +/* 0BD6B8 7F088B88 8E2D0000 */ lw $t5, ($s1) +/* 0BD6BC 7F088B8C 01A2C821 */ addu $t9, $t5, $v0 +/* 0BD6C0 7F088B90 AF201134 */ sw $zero, 0x1134($t9) +/* 0BD6C4 7F088B94 8E380000 */ lw $t8, ($s1) +/* 0BD6C8 7F088B98 03027821 */ addu $t7, $t8, $v0 +/* 0BD6CC 7F088B9C ADE01138 */ sw $zero, 0x1138($t7) +/* 0BD6D0 7F088BA0 8E2E0000 */ lw $t6, ($s1) +/* 0BD6D4 7F088BA4 01C24021 */ addu $t0, $t6, $v0 +/* 0BD6D8 7F088BA8 24420010 */ addiu $v0, $v0, 0x10 +/* 0BD6DC 7F088BAC 1443FFF3 */ bne $v0, $v1, .L7F088B7C +/* 0BD6E0 7F088BB0 AD00113C */ sw $zero, 0x113c($t0) +/* 0BD6E4 7F088BB4 52000036 */ beql $s0, $zero, .L7F088C90 +/* 0BD6E8 7F088BB8 44800000 */ mtc1 $zero, $f0 +/* 0BD6EC 7F088BBC 8E020000 */ lw $v0, ($s0) +/* 0BD6F0 7F088BC0 24010009 */ li $at, 9 +/* 0BD6F4 7F088BC4 10410031 */ beq $v0, $at, .L7F088C8C +/* 0BD6F8 7F088BC8 2C410007 */ sltiu $at, $v0, 7 +.L7F088BCC: +/* 0BD6FC 7F088BCC 1020002A */ beqz $at, .L7F088C78 +/* 0BD700 7F088BD0 00024880 */ sll $t1, $v0, 2 +/* 0BD704 7F088BD4 3C018005 */ lui $at, %hi(jpt_mpspawntype) +/* 0BD708 7F088BD8 00290821 */ addu $at, $at, $t1 +/* 0BD70C 7F088BDC 8C295290 */ lw $t1, %lo(jpt_mpspawntype)($at) +/* 0BD710 7F088BE0 01200008 */ jr $t1 +/* 0BD714 7F088BE4 00000000 */ nop +mp_spawntype_spawn: +/* 0BD718 7F088BE8 10000024 */ b .L7F088C7C +/* 0BD71C 7F088BEC 2610000C */ addiu $s0, $s0, 0xc +mp_spawntype_weapon: +/* 0BD720 7F088BF0 0FC30288 */ jal check_ramrom_flags +/* 0BD724 7F088BF4 00000000 */ nop +/* 0BD728 7F088BF8 8E0A000C */ lw $t2, 0xc($s0) +/* 0BD72C 7F088BFC 144A000A */ bne $v0, $t2, .L7F088C28 +/* 0BD730 7F088C00 00000000 */ nop +/* 0BD734 7F088C04 8E050008 */ lw $a1, 8($s0) +/* 0BD738 7F088C08 04A00005 */ bltz $a1, .L7F088C20 +/* 0BD73C 7F088C0C 00000000 */ nop +/* 0BD740 7F088C10 0FC23143 */ jal add_doubles_item_to_inventory +/* 0BD744 7F088C14 8E040004 */ lw $a0, 4($s0) +/* 0BD748 7F088C18 10000018 */ b .L7F088C7C +/* 0BD74C 7F088C1C 26100010 */ addiu $s0, $s0, 0x10 +.L7F088C20: +/* 0BD750 7F088C20 0FC23122 */ jal add_item_to_inventory +/* 0BD754 7F088C24 8E040004 */ lw $a0, 4($s0) +.L7F088C28: +/* 0BD758 7F088C28 10000014 */ b .L7F088C7C +/* 0BD75C 7F088C2C 26100010 */ addiu $s0, $s0, 0x10 +mp_spawntype_ammo: +/* 0BD760 7F088C30 0FC30288 */ jal check_ramrom_flags +/* 0BD764 7F088C34 00000000 */ nop +/* 0BD768 7F088C38 8E0B000C */ lw $t3, 0xc($s0) +/* 0BD76C 7F088C3C 144B0004 */ bne $v0, $t3, .L7F088C50 +/* 0BD770 7F088C40 00000000 */ nop +/* 0BD774 7F088C44 8E040004 */ lw $a0, 4($s0) +/* 0BD778 7F088C48 0FC1A44C */ jal give_cur_player_ammo +/* 0BD77C 7F088C4C 8E050008 */ lw $a1, 8($s0) +.L7F088C50: +/* 0BD780 7F088C50 1000000A */ b .L7F088C7C +/* 0BD784 7F088C54 26100010 */ addiu $s0, $s0, 0x10 +mp_spawntype_intro_swirly: +/* 0BD788 7F088C58 10000008 */ b .L7F088C7C +/* 0BD78C 7F088C5C 26100020 */ addiu $s0, $s0, 0x20 +mp_spawntype_intro_anim: +/* 0BD790 7F088C60 10000006 */ b .L7F088C7C +/* 0BD794 7F088C64 26100008 */ addiu $s0, $s0, 8 +mp_spawntype_handcuff: +/* 0BD798 7F088C68 10000004 */ b .L7F088C7C +/* 0BD79C 7F088C6C 26100008 */ addiu $s0, $s0, 8 +mp_spawntype_intro_camera: +/* 0BD7A0 7F088C70 10000002 */ b .L7F088C7C +/* 0BD7A4 7F088C74 26100028 */ addiu $s0, $s0, 0x28 +mp_spawntype_default: +.L7F088C78: +/* 0BD7A8 7F088C78 26100004 */ addiu $s0, $s0, 4 +.L7F088C7C: +/* 0BD7AC 7F088C7C 8E020000 */ lw $v0, ($s0) +/* 0BD7B0 7F088C80 24010009 */ li $at, 9 +/* 0BD7B4 7F088C84 5441FFD1 */ bnel $v0, $at, .L7F088BCC +/* 0BD7B8 7F088C88 2C410007 */ sltiu $at, $v0, 7 +.L7F088C8C: +/* 0BD7BC 7F088C8C 44800000 */ mtc1 $zero, $f0 +.L7F088C90: +/* 0BD7C0 7F088C90 8E2C0000 */ lw $t4, ($s1) +/* 0BD7C4 7F088C94 3C018005 */ lui $at, %hi(D_800552AC) +/* 0BD7C8 7F088C98 E5800078 */ swc1 $f0, 0x78($t4) +/* 0BD7CC 7F088C9C 8E2D0000 */ lw $t5, ($s1) +/* 0BD7D0 7F088CA0 C43052AC */ lwc1 $f16, %lo(D_800552AC)($at) +/* 0BD7D4 7F088CA4 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 0BD7D8 7F088CA8 44816000 */ mtc1 $at, $f12 +/* 0BD7DC 7F088CAC E5B0007C */ swc1 $f16, 0x7c($t5) +/* 0BD7E0 7F088CB0 8E390000 */ lw $t9, ($s1) +/* 0BD7E4 7F088CB4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BD7E8 7F088CB8 44817000 */ mtc1 $at, $f14 +/* 0BD7EC 7F088CBC 0FC20284 */ jal set_curplayer_fade +/* 0BD7F0 7F088CC0 E7200080 */ swc1 $f0, 0x80($t9) +/* 0BD7F4 7F088CC4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0BD7F8 7F088CC8 8FB00014 */ lw $s0, 0x14($sp) +/* 0BD7FC 7F088CCC 8FB10018 */ lw $s1, 0x18($sp) +/* 0BD800 7F088CD0 03E00008 */ jr $ra +/* 0BD804 7F088CD4 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F088CD8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F088CD8 +/* 0BD808 7F088CD8 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0BD80C 7F088CDC AFBF005C */ sw $ra, 0x5c($sp) +/* 0BD810 7F088CE0 AFB5004C */ sw $s5, 0x4c($sp) +/* 0BD814 7F088CE4 0080A825 */ move $s5, $a0 +/* 0BD818 7F088CE8 AFBE0058 */ sw $fp, 0x58($sp) +/* 0BD81C 7F088CEC AFB70054 */ sw $s7, 0x54($sp) +/* 0BD820 7F088CF0 AFB60050 */ sw $s6, 0x50($sp) +/* 0BD824 7F088CF4 AFB40048 */ sw $s4, 0x48($sp) +/* 0BD828 7F088CF8 AFB30044 */ sw $s3, 0x44($sp) +/* 0BD82C 7F088CFC AFB20040 */ sw $s2, 0x40($sp) +/* 0BD830 7F088D00 AFB1003C */ sw $s1, 0x3c($sp) +/* 0BD834 7F088D04 0C001A57 */ jal get_stage_num +/* 0BD838 7F088D08 AFB00038 */ sw $s0, 0x38($sp) +/* 0BD83C 7F088D0C 24010036 */ li $at, 54 +/* 0BD840 7F088D10 14410130 */ bne $v0, $at, .L7F0891D4 +/* 0BD844 7F088D14 3C108003 */ lui $s0, %hi(D_8003643C) +/* 0BD848 7F088D18 2610643C */ addiu $s0, %lo(D_8003643C) # addiu $s0, $s0, 0x643c +/* 0BD84C 7F088D1C 8E0E0000 */ lw $t6, ($s0) +/* 0BD850 7F088D20 24010001 */ li $at, 1 +/* 0BD854 7F088D24 3C0F8003 */ lui $t7, %hi(D_80036440) +/* 0BD858 7F088D28 55C1012B */ bnel $t6, $at, .L7F0891D8 +/* 0BD85C 7F088D2C 8FBF005C */ lw $ra, 0x5c($sp) +/* 0BD860 7F088D30 8DEF6440 */ lw $t7, %lo(D_80036440)($t7) +/* 0BD864 7F088D34 3C028003 */ lui $v0, %hi(camera_80036438) +/* 0BD868 7F088D38 24426438 */ addiu $v0, %lo(camera_80036438) # addiu $v0, $v0, 0x6438 +/* 0BD86C 7F088D3C 11E00125 */ beqz $t7, .L7F0891D4 +/* 0BD870 7F088D40 241600DC */ li $s6, 220 +/* 0BD874 7F088D44 8C580000 */ lw $t8, ($v0) +/* 0BD878 7F088D48 241700DC */ li $s7, 220 +/* 0BD87C 7F088D4C AFA00084 */ sw $zero, 0x84($sp) +/* 0BD880 7F088D50 27190001 */ addiu $t9, $t8, 1 +/* 0BD884 7F088D54 AFA00080 */ sw $zero, 0x80($sp) +/* 0BD888 7F088D58 AC590000 */ sw $t9, ($v0) +/* 0BD88C 7F088D5C AFB900B4 */ sw $t9, 0xb4($sp) +/* 0BD890 7F088D60 0FC2B366 */ jal microcode_constructor +/* 0BD894 7F088D64 02A02025 */ move $a0, $s5 +/* 0BD898 7F088D68 0C00112B */ jal get_video2_settings_height +/* 0BD89C 7F088D6C 0040A825 */ move $s5, $v0 +/* 0BD8A0 7F088D70 8FAA00B4 */ lw $t2, 0xb4($sp) +/* 0BD8A4 7F088D74 3C048003 */ lui $a0, %hi(D_80036440) +/* 0BD8A8 7F088D78 01421823 */ subu $v1, $t2, $v0 +/* 0BD8AC 7F088D7C 04610003 */ bgez $v1, .L7F088D8C +/* 0BD8B0 7F088D80 00035903 */ sra $t3, $v1, 4 +/* 0BD8B4 7F088D84 2461000F */ addiu $at, $v1, 0xf +/* 0BD8B8 7F088D88 00015903 */ sra $t3, $at, 4 +.L7F088D8C: +/* 0BD8BC 7F088D8C 01601825 */ move $v1, $t3 +/* 0BD8C0 7F088D90 01603025 */ move $a2, $t3 +/* 0BD8C4 7F088D94 05410003 */ bgez $t2, .L7F088DA4 +/* 0BD8C8 7F088D98 000A6103 */ sra $t4, $t2, 4 +/* 0BD8CC 7F088D9C 2541000F */ addiu $at, $t2, 0xf +/* 0BD8D0 7F088DA0 00016103 */ sra $t4, $at, 4 +.L7F088DA4: +/* 0BD8D4 7F088DA4 258D0001 */ addiu $t5, $t4, 1 +/* 0BD8D8 7F088DA8 04610002 */ bgez $v1, .L7F088DB4 +/* 0BD8DC 7F088DAC AFAD0090 */ sw $t5, 0x90($sp) +/* 0BD8E0 7F088DB0 00003025 */ move $a2, $zero +.L7F088DB4: +/* 0BD8E4 7F088DB4 18C00024 */ blez $a2, .L7F088E48 +/* 0BD8E8 7F088DB8 00009825 */ move $s3, $zero +/* 0BD8EC 7F088DBC 8C846440 */ lw $a0, %lo(D_80036440)($a0) +.L7F088DC0: +/* 0BD8F0 7F088DC0 94820000 */ lhu $v0, ($a0) +/* 0BD8F4 7F088DC4 24015011 */ li $at, 20497 +/* 0BD8F8 7F088DC8 14400008 */ bnez $v0, .L7F088DEC +/* 0BD8FC 7F088DCC 00000000 */ nop +/* 0BD900 7F088DD0 948E0002 */ lhu $t6, 2($a0) +/* 0BD904 7F088DD4 15C00005 */ bnez $t6, .L7F088DEC +/* 0BD908 7F088DD8 240F0002 */ li $t7, 2 +/* 0BD90C 7F088DDC AFB30090 */ sw $s3, 0x90($sp) +/* 0BD910 7F088DE0 02603025 */ move $a2, $s3 +/* 0BD914 7F088DE4 10000018 */ b .L7F088E48 +/* 0BD918 7F088DE8 AE0F0000 */ sw $t7, ($s0) +.L7F088DEC: +/* 0BD91C 7F088DEC 10410009 */ beq $v0, $at, .L7F088E14 +/* 0BD920 7F088DF0 94850002 */ lhu $a1, 2($a0) +/* 0BD924 7F088DF4 84830004 */ lh $v1, 4($a0) +/* 0BD928 7F088DF8 04620003 */ bltzl $v1, .L7F088E08 +/* 0BD92C 7F088DFC 84820006 */ lh $v0, 6($a0) +/* 0BD930 7F088E00 0060B025 */ move $s6, $v1 +/* 0BD934 7F088E04 84820006 */ lh $v0, 6($a0) +.L7F088E08: +/* 0BD938 7F088E08 04420003 */ bltzl $v0, .L7F088E18 +/* 0BD93C 7F088E0C 24015011 */ li $at, 20497 +/* 0BD940 7F088E10 AFA20084 */ sw $v0, 0x84($sp) +.L7F088E14: +/* 0BD944 7F088E14 24015011 */ li $at, 20497 +.L7F088E18: +/* 0BD948 7F088E18 10A10009 */ beq $a1, $at, .L7F088E40 +/* 0BD94C 7F088E1C 26730001 */ addiu $s3, $s3, 1 +/* 0BD950 7F088E20 84830008 */ lh $v1, 8($a0) +/* 0BD954 7F088E24 04620003 */ bltzl $v1, .L7F088E34 +/* 0BD958 7F088E28 8482000A */ lh $v0, 0xa($a0) +/* 0BD95C 7F088E2C 0060B825 */ move $s7, $v1 +/* 0BD960 7F088E30 8482000A */ lh $v0, 0xa($a0) +.L7F088E34: +/* 0BD964 7F088E34 04400002 */ bltz $v0, .L7F088E40 +/* 0BD968 7F088E38 00000000 */ nop +/* 0BD96C 7F088E3C AFA20080 */ sw $v0, 0x80($sp) +.L7F088E40: +/* 0BD970 7F088E40 1666FFDF */ bne $s3, $a2, .L7F088DC0 +/* 0BD974 7F088E44 2484000C */ addiu $a0, $a0, 0xc +.L7F088E48: +/* 0BD978 7F088E48 8FB80090 */ lw $t8, 0x90($sp) +/* 0BD97C 7F088E4C 00C09825 */ move $s3, $a2 +/* 0BD980 7F088E50 2405000C */ li $a1, 12 +/* 0BD984 7F088E54 00D8082A */ slt $at, $a2, $t8 +/* 0BD988 7F088E58 102000DB */ beqz $at, .L7F0891C8 +/* 0BD98C 7F088E5C 00000000 */ nop +/* 0BD990 7F088E60 00C50019 */ multu $a2, $a1 +/* 0BD994 7F088E64 3C038003 */ lui $v1, %hi(D_80036440) +/* 0BD998 7F088E68 8C636440 */ lw $v1, %lo(D_80036440)($v1) +/* 0BD99C 7F088E6C 0000A012 */ mflo $s4 +/* 0BD9A0 7F088E70 00742021 */ addu $a0, $v1, $s4 +/* 0BD9A4 7F088E74 94820000 */ lhu $v0, ($a0) +/* 0BD9A8 7F088E78 14400007 */ bnez $v0, .L7F088E98 +/* 0BD9AC 7F088E7C 00000000 */ nop +/* 0BD9B0 7F088E80 00C50019 */ multu $a2, $a1 +/* 0BD9B4 7F088E84 0000C812 */ mflo $t9 +/* 0BD9B8 7F088E88 00794821 */ addu $t1, $v1, $t9 +/* 0BD9BC 7F088E8C 952B0002 */ lhu $t3, 2($t1) +/* 0BD9C0 7F088E90 116000CD */ beqz $t3, .L7F0891C8 +/* 0BD9C4 7F088E94 00000000 */ nop +.L7F088E98: +/* 0BD9C8 7F088E98 3C1E8004 */ lui $fp, %hi(ptrSecondFontTableLarge) +/* 0BD9CC 7F088E9C 24015011 */ li $at, 20497 +/* 0BD9D0 7F088EA0 1041005E */ beq $v0, $at, .L7F08901C +/* 0BD9D4 7F088EA4 27DE0EB8 */ addiu $fp, %lo(ptrSecondFontTableLarge) # addiu $fp, $fp, 0xeb8 +/* 0BD9D8 7F088EA8 00402025 */ move $a0, $v0 +/* 0BD9DC 7F088EAC 0FC30776 */ jal get_textptr_for_textID +/* 0BD9E0 7F088EB0 00138900 */ sll $s1, $s3, 4 +/* 0BD9E4 7F088EB4 3C0A8003 */ lui $t2, %hi(D_80036440) +/* 0BD9E8 7F088EB8 8D4A6440 */ lw $t2, %lo(D_80036440)($t2) +/* 0BD9EC 7F088EBC 00409025 */ move $s2, $v0 +/* 0BD9F0 7F088EC0 01542021 */ addu $a0, $t2, $s4 +/* 0BD9F4 7F088EC4 84830004 */ lh $v1, 4($a0) +/* 0BD9F8 7F088EC8 04620003 */ bltzl $v1, .L7F088ED8 +/* 0BD9FC 7F088ECC 84820006 */ lh $v0, 6($a0) +/* 0BDA00 7F088ED0 0060B025 */ move $s6, $v1 +/* 0BDA04 7F088ED4 84820006 */ lh $v0, 6($a0) +.L7F088ED8: +/* 0BDA08 7F088ED8 04400002 */ bltz $v0, .L7F088EE4 +/* 0BDA0C 7F088EDC 00000000 */ nop +/* 0BDA10 7F088EE0 AFA20084 */ sw $v0, 0x84($sp) +.L7F088EE4: +/* 0BDA14 7F088EE4 0C00112B */ jal get_video2_settings_height +/* 0BDA18 7F088EE8 00000000 */ nop +/* 0BDA1C 7F088EEC 00028400 */ sll $s0, $v0, 0x10 +/* 0BDA20 7F088EF0 00106403 */ sra $t4, $s0, 0x10 +/* 0BDA24 7F088EF4 0C001149 */ jal get_video2_settings_uly +/* 0BDA28 7F088EF8 01808025 */ move $s0, $t4 +/* 0BDA2C 7F088EFC 8FAE00B4 */ lw $t6, 0xb4($sp) +/* 0BDA30 7F088F00 00516821 */ addu $t5, $v0, $s1 +/* 0BDA34 7F088F04 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 0BDA38 7F088F08 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 0BDA3C 7F088F0C 01AE7823 */ subu $t7, $t5, $t6 +/* 0BDA40 7F088F10 01F0C021 */ addu $t8, $t7, $s0 +/* 0BDA44 7F088F14 AFB800A8 */ sw $t8, 0xa8($sp) +/* 0BDA48 7F088F18 AFA0009C */ sw $zero, 0x9c($sp) +/* 0BDA4C 7F088F1C 27A4009C */ addiu $a0, $sp, 0x9c +/* 0BDA50 7F088F20 27A50098 */ addiu $a1, $sp, 0x98 +/* 0BDA54 7F088F24 02403025 */ move $a2, $s2 +/* 0BDA58 7F088F28 8FC70000 */ lw $a3, ($fp) +/* 0BDA5C 7F088F2C AFA00014 */ sw $zero, 0x14($sp) +/* 0BDA60 7F088F30 AFA00098 */ sw $zero, 0x98($sp) +/* 0BDA64 7F088F34 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0BDA68 7F088F38 AFB90010 */ sw $t9, 0x10($sp) +/* 0BDA6C 7F088F3C 8FAA0084 */ lw $t2, 0x84($sp) +/* 0BDA70 7F088F40 8FA900A8 */ lw $t1, 0xa8($sp) +/* 0BDA74 7F088F44 8FAB009C */ lw $t3, 0x9c($sp) +/* 0BDA78 7F088F48 24010001 */ li $at, 1 +/* 0BDA7C 7F088F4C 15410005 */ bne $t2, $at, .L7F088F64 +/* 0BDA80 7F088F50 012B1821 */ addu $v1, $t1, $t3 +/* 0BDA84 7F088F54 8FA80098 */ lw $t0, 0x98($sp) +/* 0BDA88 7F088F58 02C01025 */ move $v0, $s6 +/* 0BDA8C 7F088F5C 1000000C */ b .L7F088F90 +/* 0BDA90 7F088F60 02C82823 */ subu $a1, $s6, $t0 +.L7F088F64: +/* 0BDA94 7F088F64 8FAC0084 */ lw $t4, 0x84($sp) +/* 0BDA98 7F088F68 24010002 */ li $at, 2 +/* 0BDA9C 7F088F6C 8FA80098 */ lw $t0, 0x98($sp) +/* 0BDAA0 7F088F70 15810006 */ bne $t4, $at, .L7F088F8C +/* 0BDAA4 7F088F74 02C02825 */ move $a1, $s6 +/* 0BDAA8 7F088F78 8FA80098 */ lw $t0, 0x98($sp) +/* 0BDAAC 7F088F7C 00086843 */ sra $t5, $t0, 1 +/* 0BDAB0 7F088F80 02CD2823 */ subu $a1, $s6, $t5 +/* 0BDAB4 7F088F84 10000002 */ b .L7F088F90 +/* 0BDAB8 7F088F88 00A81021 */ addu $v0, $a1, $t0 +.L7F088F8C: +/* 0BDABC 7F088F8C 02C81021 */ addu $v0, $s6, $t0 +.L7F088F90: +/* 0BDAC0 7F088F90 8FA600A8 */ lw $a2, 0xa8($sp) +/* 0BDAC4 7F088F94 246E0001 */ addiu $t6, $v1, 1 +/* 0BDAC8 7F088F98 AFAE0010 */ sw $t6, 0x10($sp) +/* 0BDACC 7F088F9C 02A02025 */ move $a0, $s5 +/* 0BDAD0 7F088FA0 24470001 */ addiu $a3, $v0, 1 +/* 0BDAD4 7F088FA4 AFA00014 */ sw $zero, 0x14($sp) +/* 0BDAD8 7F088FA8 AFA500AC */ sw $a1, 0xac($sp) +/* 0BDADC 7F088FAC 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0BDAE0 7F088FB0 24C6FFFF */ addiu $a2, $a2, -1 +/* 0BDAE4 7F088FB4 0C001107 */ jal get_video2_settings_txtClipW +/* 0BDAE8 7F088FB8 0040A825 */ move $s5, $v0 +/* 0BDAEC 7F088FBC 00028400 */ sll $s0, $v0, 0x10 +/* 0BDAF0 7F088FC0 00107C03 */ sra $t7, $s0, 0x10 +/* 0BDAF4 7F088FC4 0C00110B */ jal get_video2_settings_txtClipH +/* 0BDAF8 7F088FC8 01E08025 */ move $s0, $t7 +/* 0BDAFC 7F088FCC 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 0BDB00 7F088FD0 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 0BDB04 7F088FD4 8FD80000 */ lw $t8, ($fp) +/* 0BDB08 7F088FD8 2409FFFF */ li $t1, -1 +/* 0BDB0C 7F088FDC AFA90018 */ sw $t1, 0x18($sp) +/* 0BDB10 7F088FE0 02A02025 */ move $a0, $s5 +/* 0BDB14 7F088FE4 27A500AC */ addiu $a1, $sp, 0xac +/* 0BDB18 7F088FE8 27A600A8 */ addiu $a2, $sp, 0xa8 +/* 0BDB1C 7F088FEC 02403825 */ move $a3, $s2 +/* 0BDB20 7F088FF0 AFB0001C */ sw $s0, 0x1c($sp) +/* 0BDB24 7F088FF4 AFA20020 */ sw $v0, 0x20($sp) +/* 0BDB28 7F088FF8 AFA00024 */ sw $zero, 0x24($sp) +/* 0BDB2C 7F088FFC AFA00028 */ sw $zero, 0x28($sp) +/* 0BDB30 7F089000 AFB90014 */ sw $t9, 0x14($sp) +/* 0BDB34 7F089004 0FC2B6AF */ jal en_text_write_stuff +/* 0BDB38 7F089008 AFB80010 */ sw $t8, 0x10($sp) +/* 0BDB3C 7F08900C 3C0B8003 */ lui $t3, %hi(D_80036440) +/* 0BDB40 7F089010 8D6B6440 */ lw $t3, %lo(D_80036440)($t3) +/* 0BDB44 7F089014 0040A825 */ move $s5, $v0 +/* 0BDB48 7F089018 01742021 */ addu $a0, $t3, $s4 +.L7F08901C: +/* 0BDB4C 7F08901C 94850002 */ lhu $a1, 2($a0) +/* 0BDB50 7F089020 24015011 */ li $at, 20497 +/* 0BDB54 7F089024 10A1005A */ beq $a1, $at, .L7F089190 +/* 0BDB58 7F089028 00A02025 */ move $a0, $a1 +/* 0BDB5C 7F08902C 0FC30776 */ jal get_textptr_for_textID +/* 0BDB60 7F089030 00138900 */ sll $s1, $s3, 4 +/* 0BDB64 7F089034 3C0A8003 */ lui $t2, %hi(D_80036440) +/* 0BDB68 7F089038 8D4A6440 */ lw $t2, %lo(D_80036440)($t2) +/* 0BDB6C 7F08903C 00409025 */ move $s2, $v0 +/* 0BDB70 7F089040 01542021 */ addu $a0, $t2, $s4 +/* 0BDB74 7F089044 84830008 */ lh $v1, 8($a0) +/* 0BDB78 7F089048 04620003 */ bltzl $v1, .L7F089058 +/* 0BDB7C 7F08904C 8482000A */ lh $v0, 0xa($a0) +/* 0BDB80 7F089050 0060B825 */ move $s7, $v1 +/* 0BDB84 7F089054 8482000A */ lh $v0, 0xa($a0) +.L7F089058: +/* 0BDB88 7F089058 04400002 */ bltz $v0, .L7F089064 +/* 0BDB8C 7F08905C 00000000 */ nop +/* 0BDB90 7F089060 AFA20080 */ sw $v0, 0x80($sp) +.L7F089064: +/* 0BDB94 7F089064 0C00112B */ jal get_video2_settings_height +/* 0BDB98 7F089068 00000000 */ nop +/* 0BDB9C 7F08906C 00028400 */ sll $s0, $v0, 0x10 +/* 0BDBA0 7F089070 00106403 */ sra $t4, $s0, 0x10 +/* 0BDBA4 7F089074 0C001149 */ jal get_video2_settings_uly +/* 0BDBA8 7F089078 01808025 */ move $s0, $t4 +/* 0BDBAC 7F08907C 8FAE00B4 */ lw $t6, 0xb4($sp) +/* 0BDBB0 7F089080 00516821 */ addu $t5, $v0, $s1 +/* 0BDBB4 7F089084 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 0BDBB8 7F089088 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 0BDBBC 7F08908C 01AE7823 */ subu $t7, $t5, $t6 +/* 0BDBC0 7F089090 01F0C021 */ addu $t8, $t7, $s0 +/* 0BDBC4 7F089094 AFB800A8 */ sw $t8, 0xa8($sp) +/* 0BDBC8 7F089098 AFA0009C */ sw $zero, 0x9c($sp) +/* 0BDBCC 7F08909C 27A4009C */ addiu $a0, $sp, 0x9c +/* 0BDBD0 7F0890A0 27A50098 */ addiu $a1, $sp, 0x98 +/* 0BDBD4 7F0890A4 02403025 */ move $a2, $s2 +/* 0BDBD8 7F0890A8 8FC70000 */ lw $a3, ($fp) +/* 0BDBDC 7F0890AC AFA00014 */ sw $zero, 0x14($sp) +/* 0BDBE0 7F0890B0 AFA00098 */ sw $zero, 0x98($sp) +/* 0BDBE4 7F0890B4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0BDBE8 7F0890B8 AFB90010 */ sw $t9, 0x10($sp) +/* 0BDBEC 7F0890BC 8FAA0080 */ lw $t2, 0x80($sp) +/* 0BDBF0 7F0890C0 8FA900A8 */ lw $t1, 0xa8($sp) +/* 0BDBF4 7F0890C4 8FAB009C */ lw $t3, 0x9c($sp) +/* 0BDBF8 7F0890C8 24010001 */ li $at, 1 +/* 0BDBFC 7F0890CC 15410005 */ bne $t2, $at, .L7F0890E4 +/* 0BDC00 7F0890D0 012B1821 */ addu $v1, $t1, $t3 +/* 0BDC04 7F0890D4 8FA80098 */ lw $t0, 0x98($sp) +/* 0BDC08 7F0890D8 02E01025 */ move $v0, $s7 +/* 0BDC0C 7F0890DC 1000000C */ b .L7F089110 +/* 0BDC10 7F0890E0 02E82823 */ subu $a1, $s7, $t0 +.L7F0890E4: +/* 0BDC14 7F0890E4 8FAC0080 */ lw $t4, 0x80($sp) +/* 0BDC18 7F0890E8 24010002 */ li $at, 2 +/* 0BDC1C 7F0890EC 8FA80098 */ lw $t0, 0x98($sp) +/* 0BDC20 7F0890F0 15810006 */ bne $t4, $at, .L7F08910C +/* 0BDC24 7F0890F4 02E02825 */ move $a1, $s7 +/* 0BDC28 7F0890F8 8FA80098 */ lw $t0, 0x98($sp) +/* 0BDC2C 7F0890FC 00086843 */ sra $t5, $t0, 1 +/* 0BDC30 7F089100 02ED2823 */ subu $a1, $s7, $t5 +/* 0BDC34 7F089104 10000002 */ b .L7F089110 +/* 0BDC38 7F089108 00A81021 */ addu $v0, $a1, $t0 +.L7F08910C: +/* 0BDC3C 7F08910C 02E81021 */ addu $v0, $s7, $t0 +.L7F089110: +/* 0BDC40 7F089110 8FA600A8 */ lw $a2, 0xa8($sp) +/* 0BDC44 7F089114 246E0001 */ addiu $t6, $v1, 1 +/* 0BDC48 7F089118 AFAE0010 */ sw $t6, 0x10($sp) +/* 0BDC4C 7F08911C 02A02025 */ move $a0, $s5 +/* 0BDC50 7F089120 24470001 */ addiu $a3, $v0, 1 +/* 0BDC54 7F089124 AFA00014 */ sw $zero, 0x14($sp) +/* 0BDC58 7F089128 AFA500AC */ sw $a1, 0xac($sp) +/* 0BDC5C 7F08912C 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0BDC60 7F089130 24C6FFFF */ addiu $a2, $a2, -1 +/* 0BDC64 7F089134 0C001107 */ jal get_video2_settings_txtClipW +/* 0BDC68 7F089138 0040A825 */ move $s5, $v0 +/* 0BDC6C 7F08913C 00028400 */ sll $s0, $v0, 0x10 +/* 0BDC70 7F089140 00107C03 */ sra $t7, $s0, 0x10 +/* 0BDC74 7F089144 0C00110B */ jal get_video2_settings_txtClipH +/* 0BDC78 7F089148 01E08025 */ move $s0, $t7 +/* 0BDC7C 7F08914C 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 0BDC80 7F089150 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 0BDC84 7F089154 8FD80000 */ lw $t8, ($fp) +/* 0BDC88 7F089158 2409FFFF */ li $t1, -1 +/* 0BDC8C 7F08915C AFA90018 */ sw $t1, 0x18($sp) +/* 0BDC90 7F089160 02A02025 */ move $a0, $s5 +/* 0BDC94 7F089164 27A500AC */ addiu $a1, $sp, 0xac +/* 0BDC98 7F089168 27A600A8 */ addiu $a2, $sp, 0xa8 +/* 0BDC9C 7F08916C 02403825 */ move $a3, $s2 +/* 0BDCA0 7F089170 AFB0001C */ sw $s0, 0x1c($sp) +/* 0BDCA4 7F089174 AFA20020 */ sw $v0, 0x20($sp) +/* 0BDCA8 7F089178 AFA00024 */ sw $zero, 0x24($sp) +/* 0BDCAC 7F08917C AFA00028 */ sw $zero, 0x28($sp) +/* 0BDCB0 7F089180 AFB90014 */ sw $t9, 0x14($sp) +/* 0BDCB4 7F089184 0FC2B6AF */ jal en_text_write_stuff +/* 0BDCB8 7F089188 AFB80010 */ sw $t8, 0x10($sp) +/* 0BDCBC 7F08918C 0040A825 */ move $s5, $v0 +.L7F089190: +/* 0BDCC0 7F089190 8FAB0090 */ lw $t3, 0x90($sp) +/* 0BDCC4 7F089194 26730001 */ addiu $s3, $s3, 1 +/* 0BDCC8 7F089198 2694000C */ addiu $s4, $s4, 0xc +/* 0BDCCC 7F08919C 026B082A */ slt $at, $s3, $t3 +/* 0BDCD0 7F0891A0 10200009 */ beqz $at, .L7F0891C8 +/* 0BDCD4 7F0891A4 3C0A8003 */ lui $t2, %hi(D_80036440) +/* 0BDCD8 7F0891A8 8D4A6440 */ lw $t2, %lo(D_80036440)($t2) +/* 0BDCDC 7F0891AC 01542021 */ addu $a0, $t2, $s4 +/* 0BDCE0 7F0891B0 94820000 */ lhu $v0, ($a0) +/* 0BDCE4 7F0891B4 1440FF38 */ bnez $v0, .L7F088E98 +/* 0BDCE8 7F0891B8 00000000 */ nop +/* 0BDCEC 7F0891BC 948C0002 */ lhu $t4, 2($a0) +/* 0BDCF0 7F0891C0 1580FF35 */ bnez $t4, .L7F088E98 +/* 0BDCF4 7F0891C4 00000000 */ nop +.L7F0891C8: +/* 0BDCF8 7F0891C8 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0BDCFC 7F0891CC 02A02025 */ move $a0, $s5 +/* 0BDD00 7F0891D0 0040A825 */ move $s5, $v0 +.L7F0891D4: +/* 0BDD04 7F0891D4 8FBF005C */ lw $ra, 0x5c($sp) +.L7F0891D8: +/* 0BDD08 7F0891D8 02A01025 */ move $v0, $s5 +/* 0BDD0C 7F0891DC 8FB5004C */ lw $s5, 0x4c($sp) +/* 0BDD10 7F0891E0 8FB00038 */ lw $s0, 0x38($sp) +/* 0BDD14 7F0891E4 8FB1003C */ lw $s1, 0x3c($sp) +/* 0BDD18 7F0891E8 8FB20040 */ lw $s2, 0x40($sp) +/* 0BDD1C 7F0891EC 8FB30044 */ lw $s3, 0x44($sp) +/* 0BDD20 7F0891F0 8FB40048 */ lw $s4, 0x48($sp) +/* 0BDD24 7F0891F4 8FB60050 */ lw $s6, 0x50($sp) +/* 0BDD28 7F0891F8 8FB70054 */ lw $s7, 0x54($sp) +/* 0BDD2C 7F0891FC 8FBE0058 */ lw $fp, 0x58($sp) +/* 0BDD30 7F089200 03E00008 */ jr $ra +/* 0BDD34 7F089204 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void maybe_mp_interface(void) { + +} +#else +GLOBAL_ASM( +.text +glabel maybe_mp_interface +/* 0BDD38 7F089208 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0BDD3C 7F08920C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0BDD40 7F089210 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0BDD44 7F089214 AFBF001C */ sw $ra, 0x1c($sp) +/* 0BDD48 7F089218 AFA40058 */ sw $a0, 0x58($sp) +/* 0BDD4C 7F08921C 8DCF0000 */ lw $t7, ($t6) +/* 0BDD50 7F089220 24010001 */ li $at, 1 +/* 0BDD54 7F089224 15E10014 */ bne $t7, $at, .L7F089278 +/* 0BDD58 7F089228 00000000 */ nop +/* 0BDD5C 7F08922C 0FC22939 */ jal sub_GAME_7F08A4E4 +/* 0BDD60 7F089230 00000000 */ nop +/* 0BDD64 7F089234 0FC2297F */ jal sub_GAME_7F08A5FC +/* 0BDD68 7F089238 8FA40058 */ lw $a0, 0x58($sp) +/* 0BDD6C 7F08923C 0FC22A7E */ jal sub_GAME_7F08A9F8 +/* 0BDD70 7F089240 AFA20058 */ sw $v0, 0x58($sp) +/* 0BDD74 7F089244 0FC22ABA */ jal sub_GAME_7F08AAE8 +/* 0BDD78 7F089248 8FA40058 */ lw $a0, 0x58($sp) +/* 0BDD7C 7F08924C AFA20058 */ sw $v0, 0x58($sp) +/* 0BDD80 7F089250 0FC15884 */ jal sub_GAME_7F056210 +/* 0BDD84 7F089254 00402025 */ move $a0, $v0 +/* 0BDD88 7F089258 AFA20058 */ sw $v0, 0x58($sp) +/* 0BDD8C 7F08925C 0FC20138 */ jal sub_GAME_7F0804E0 +/* 0BDD90 7F089260 00402025 */ move $a0, $v0 +/* 0BDD94 7F089264 AFA20058 */ sw $v0, 0x58($sp) +/* 0BDD98 7F089268 0FC22336 */ jal sub_GAME_7F088CD8 +/* 0BDD9C 7F08926C 00402025 */ move $a0, $v0 +/* 0BDDA0 7F089270 10000110 */ b .L7F0896B4 +/* 0BDDA4 7F089274 8FBF001C */ lw $ra, 0x1c($sp) +.L7F089278: +/* 0BDDA8 7F089278 0FC18648 */ jal bondwalkFireBothHands +/* 0BDDAC 7F08927C 00000000 */ nop +/* 0BDDB0 7F089280 0FC1A423 */ jal sub_GAME_7F06908C +/* 0BDDB4 7F089284 27A40058 */ addiu $a0, $sp, 0x58 +/* 0BDDB8 7F089288 0FC18AF9 */ jal sub_GAME_7F062BE4 +/* 0BDDBC 7F08928C 27A40058 */ addiu $a0, $sp, 0x58 +/* 0BDDC0 7F089290 0FC21F9D */ jal sub_GAME_7F087E74 +/* 0BDDC4 7F089294 8FA40058 */ lw $a0, 0x58($sp) +/* 0BDDC8 7F089298 3C188008 */ lui $t8, %hi(pPlayer) +/* 0BDDCC 7F08929C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0BDDD0 7F0892A0 AFA20058 */ sw $v0, 0x58($sp) +/* 0BDDD4 7F0892A4 8F1929C4 */ lw $t9, 0x29c4($t8) +/* 0BDDD8 7F0892A8 1320001F */ beqz $t9, .L7F089328 +/* 0BDDDC 7F0892AC 00000000 */ nop +/* 0BDDE0 7F0892B0 0C001145 */ jal get_video2_settings_ulx +/* 0BDDE4 7F0892B4 00000000 */ nop +/* 0BDDE8 7F0892B8 0C001149 */ jal get_video2_settings_uly +/* 0BDDEC 7F0892BC AFA20054 */ sw $v0, 0x54($sp) +/* 0BDDF0 7F0892C0 0C001145 */ jal get_video2_settings_ulx +/* 0BDDF4 7F0892C4 AFA20050 */ sw $v0, 0x50($sp) +/* 0BDDF8 7F0892C8 0C001127 */ jal get_video2_settings_width +/* 0BDDFC 7F0892CC A7A2002E */ sh $v0, 0x2e($sp) +/* 0BDE00 7F0892D0 87A8002E */ lh $t0, 0x2e($sp) +/* 0BDE04 7F0892D4 00484821 */ addu $t1, $v0, $t0 +/* 0BDE08 7F0892D8 0C001149 */ jal get_video2_settings_uly +/* 0BDE0C 7F0892DC AFA9004C */ sw $t1, 0x4c($sp) +/* 0BDE10 7F0892E0 0C00112B */ jal get_video2_settings_height +/* 0BDE14 7F0892E4 A7A2002E */ sh $v0, 0x2e($sp) +/* 0BDE18 7F0892E8 87AA002E */ lh $t2, 0x2e($sp) +/* 0BDE1C 7F0892EC 8FA40058 */ lw $a0, 0x58($sp) +/* 0BDE20 7F0892F0 004A5821 */ addu $t3, $v0, $t2 +/* 0BDE24 7F0892F4 0FC2B366 */ jal microcode_constructor +/* 0BDE28 7F0892F8 AFAB0048 */ sw $t3, 0x48($sp) +/* 0BDE2C 7F0892FC 8FAC0048 */ lw $t4, 0x48($sp) +/* 0BDE30 7F089300 240D00A0 */ li $t5, 160 +/* 0BDE34 7F089304 AFA20058 */ sw $v0, 0x58($sp) +/* 0BDE38 7F089308 AFAD0014 */ sw $t5, 0x14($sp) +/* 0BDE3C 7F08930C 00402025 */ move $a0, $v0 +/* 0BDE40 7F089310 8FA50054 */ lw $a1, 0x54($sp) +/* 0BDE44 7F089314 8FA60050 */ lw $a2, 0x50($sp) +/* 0BDE48 7F089318 8FA7004C */ lw $a3, 0x4c($sp) +/* 0BDE4C 7F08931C 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0BDE50 7F089320 AFAC0010 */ sw $t4, 0x10($sp) +/* 0BDE54 7F089324 AFA20058 */ sw $v0, 0x58($sp) +.L7F089328: +/* 0BDE58 7F089328 0FC227AF */ jal check_if_healthbar_timer_greater_than_0 +/* 0BDE5C 7F08932C 00000000 */ nop +/* 0BDE60 7F089330 10400009 */ beqz $v0, .L7F089358 +/* 0BDE64 7F089334 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0BDE68 7F089338 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0BDE6C 7F08933C 8DCF01C8 */ lw $t7, 0x1c8($t6) +/* 0BDE70 7F089340 15E00005 */ bnez $t7, .L7F089358 +/* 0BDE74 7F089344 00000000 */ nop +/* 0BDE78 7F089348 0FC22186 */ jal sub_GAME_7F088618 +/* 0BDE7C 7F08934C 8FA40058 */ lw $a0, 0x58($sp) +/* 0BDE80 7F089350 10000017 */ b .L7F0893B0 +/* 0BDE84 7F089354 AFA20058 */ sw $v0, 0x58($sp) +.L7F089358: +/* 0BDE88 7F089358 0FC31812 */ jal sub_GAME_7F0C6048 +/* 0BDE8C 7F08935C 00000000 */ nop +/* 0BDE90 7F089360 10400013 */ beqz $v0, .L7F0893B0 +/* 0BDE94 7F089364 00000000 */ nop +/* 0BDE98 7F089368 0FC22186 */ jal sub_GAME_7F088618 +/* 0BDE9C 7F08936C 8FA40058 */ lw $a0, 0x58($sp) +/* 0BDEA0 7F089370 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BDEA4 7F089374 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0BDEA8 7F089378 AFA20058 */ sw $v0, 0x58($sp) +/* 0BDEAC 7F08937C 3C188005 */ lui $t8, %hi(clock_timer) +/* 0BDEB0 7F089380 8C642A00 */ lw $a0, 0x2a00($v1) +/* 0BDEB4 7F089384 18800007 */ blez $a0, .L7F0893A4 +/* 0BDEB8 7F089388 00000000 */ nop +/* 0BDEBC 7F08938C 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 0BDEC0 7F089390 0098C823 */ subu $t9, $a0, $t8 +/* 0BDEC4 7F089394 AC792A00 */ sw $t9, 0x2a00($v1) +/* 0BDEC8 7F089398 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BDECC 7F08939C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0BDED0 7F0893A0 8C642A00 */ lw $a0, 0x2a00($v1) +.L7F0893A4: +/* 0BDED4 7F0893A4 04810002 */ bgez $a0, .L7F0893B0 +/* 0BDED8 7F0893A8 00000000 */ nop +/* 0BDEDC 7F0893AC AC602A00 */ sw $zero, 0x2a00($v1) +.L7F0893B0: +/* 0BDEE0 7F0893B0 0FC26919 */ jal get_num_players +/* 0BDEE4 7F0893B4 00000000 */ nop +/* 0BDEE8 7F0893B8 24010001 */ li $at, 1 +/* 0BDEEC 7F0893BC 14410003 */ bne $v0, $at, .L7F0893CC +/* 0BDEF0 7F0893C0 00000000 */ nop +/* 0BDEF4 7F0893C4 0FC15D50 */ jal display_objective_status_text_on_status_change +/* 0BDEF8 7F0893C8 00000000 */ nop +.L7F0893CC: +/* 0BDEFC 7F0893CC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BDF00 7F0893D0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0BDF04 7F0893D4 8C6200D8 */ lw $v0, 0xd8($v1) +/* 0BDF08 7F0893D8 1040009F */ beqz $v0, .L7F089658 +/* 0BDF0C 7F0893DC 00000000 */ nop +/* 0BDF10 7F0893E0 8C680428 */ lw $t0, 0x428($v1) +/* 0BDF14 7F0893E4 24010001 */ li $at, 1 +/* 0BDF18 7F0893E8 15000045 */ bnez $t0, .L7F089500 +/* 0BDF1C 7F0893EC 00000000 */ nop +/* 0BDF20 7F0893F0 14410004 */ bne $v0, $at, .L7F089404 +/* 0BDF24 7F0893F4 00002025 */ move $a0, $zero +/* 0BDF28 7F0893F8 24090002 */ li $t1, 2 +/* 0BDF2C 7F0893FC 24040001 */ li $a0, 1 +/* 0BDF30 7F089400 AC6900D8 */ sw $t1, 0xd8($v1) +.L7F089404: +/* 0BDF34 7F089404 1080001F */ beqz $a0, .L7F089484 +/* 0BDF38 7F089408 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0BDF3C 7F08940C 0FC070A1 */ jal die_blood_image_routine +/* 0BDF40 7F089410 00002025 */ move $a0, $zero +/* 0BDF44 7F089414 0FC26919 */ jal get_num_players +/* 0BDF48 7F089418 00000000 */ nop +/* 0BDF4C 7F08941C 24010001 */ li $at, 1 +/* 0BDF50 7F089420 14410013 */ bne $v0, $at, .L7F089470 +/* 0BDF54 7F089424 00000000 */ nop +/* 0BDF58 7F089428 0FC30556 */ jal reset_music_in_slot +/* 0BDF5C 7F08942C 2404FFFF */ li $a0, -1 +/* 0BDF60 7F089430 0FC3030F */ jal set_missionstate +/* 0BDF64 7F089434 00002025 */ move $a0, $zero +/* 0BDF68 7F089438 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0BDF6C 7F08943C 00000000 */ nop +/* 0BDF70 7F089440 0C001C0F */ jal musicTrack1Vol +/* 0BDF74 7F089444 3044FFFF */ andi $a0, $v0, 0xffff +/* 0BDF78 7F089448 3C018002 */ lui $at, %hi(music1_playing) +/* 0BDF7C 7F08944C AC20434C */ sw $zero, %lo(music1_playing)($at) +/* 0BDF80 7F089450 0C001CF1 */ jal musicTrack2Vol +/* 0BDF84 7F089454 00002025 */ move $a0, $zero +/* 0BDF88 7F089458 3C018002 */ lui $at, %hi(music2_playing) +/* 0BDF8C 7F08945C AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0BDF90 7F089460 0C001B9F */ jal musicTrack1Play +/* 0BDF94 7F089464 2404001B */ li $a0, 27 +/* 0BDF98 7F089468 10000003 */ b .L7F089478 +/* 0BDF9C 7F08946C 00000000 */ nop +.L7F089470: +/* 0BDFA0 7F089470 0FC3030F */ jal set_missionstate +/* 0BDFA4 7F089474 24040006 */ li $a0, 6 +.L7F089478: +/* 0BDFA8 7F089478 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BDFAC 7F08947C 10000020 */ b .L7F089500 +/* 0BDFB0 7F089480 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F089484: +/* 0BDFB4 7F089484 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0BDFB8 7F089488 24040096 */ li $a0, 150 +/* 0BDFBC 7F08948C 00002825 */ move $a1, $zero +/* 0BDFC0 7F089490 8D4B0424 */ lw $t3, 0x424($t2) +/* 0BDFC4 7F089494 00003025 */ move $a2, $zero +/* 0BDFC8 7F089498 3C073F34 */ lui $a3, (0x3F34B4B5 >> 16) # lui $a3, 0x3f34 +/* 0BDFCC 7F08949C 11600006 */ beqz $t3, .L7F0894B8 +/* 0BDFD0 7F0894A0 3C0C8005 */ lui $t4, %hi(clock_timer) +/* 0BDFD4 7F0894A4 0FC201EC */ jal set_rgba_tint +/* 0BDFD8 7F0894A8 34E7B4B5 */ ori $a3, (0x3F34B4B5 & 0xFFFF) # ori $a3, $a3, 0xb4b5 +/* 0BDFDC 7F0894AC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BDFE0 7F0894B0 10000013 */ b .L7F089500 +/* 0BDFE4 7F0894B4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F0894B8: +/* 0BDFE8 7F0894B8 8D8C8374 */ lw $t4, %lo(clock_timer)($t4) +/* 0BDFEC 7F0894BC 24040002 */ li $a0, 2 +/* 0BDFF0 7F0894C0 19800003 */ blez $t4, .L7F0894D0 +/* 0BDFF4 7F0894C4 00000000 */ nop +/* 0BDFF8 7F0894C8 10000001 */ b .L7F0894D0 +/* 0BDFFC 7F0894CC 24040001 */ li $a0, 1 +.L7F0894D0: +/* 0BE000 7F0894D0 0FC070A1 */ jal die_blood_image_routine +/* 0BE004 7F0894D4 00000000 */ nop +/* 0BE008 7F0894D8 10400004 */ beqz $v0, .L7F0894EC +/* 0BE00C 7F0894DC 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0BE010 7F0894E0 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0BE014 7F0894E4 240D0001 */ li $t5, 1 +/* 0BE018 7F0894E8 ADCD0424 */ sw $t5, 0x424($t6) +.L7F0894EC: +/* 0BE01C 7F0894EC 0FC0719C */ jal sub_GAME_7F01C670 +/* 0BE020 7F0894F0 8FA40058 */ lw $a0, 0x58($sp) +/* 0BE024 7F0894F4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BE028 7F0894F8 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0BE02C 7F0894FC AFA20058 */ sw $v0, 0x58($sp) +.L7F089500: +/* 0BE030 7F089500 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 0BE034 7F089504 24640598 */ addiu $a0, $v1, 0x598 +/* 0BE038 7F089508 3C048008 */ lui $a0, %hi(pPlayer) +/* 0BE03C 7F08950C 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0BE040 7F089510 E7A00024 */ swc1 $f0, 0x24($sp) +/* 0BE044 7F089514 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 0BE048 7F089518 24840598 */ addiu $a0, $a0, 0x598 +/* 0BE04C 7F08951C C7A40024 */ lwc1 $f4, 0x24($sp) +/* 0BE050 7F089520 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BE054 7F089524 4604003E */ c.le.s $f0, $f4 +/* 0BE058 7F089528 00000000 */ nop +/* 0BE05C 7F08952C 4500004A */ bc1f .L7F089658 +/* 0BE060 7F089530 00000000 */ nop +/* 0BE064 7F089534 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0BE068 7F089538 8C6F0424 */ lw $t7, 0x424($v1) +/* 0BE06C 7F08953C 11E00046 */ beqz $t7, .L7F089658 +/* 0BE070 7F089540 00000000 */ nop +/* 0BE074 7F089544 8C780428 */ lw $t8, 0x428($v1) +/* 0BE078 7F089548 24190001 */ li $t9, 1 +/* 0BE07C 7F08954C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BE080 7F089550 1700000E */ bnez $t8, .L7F08958C +/* 0BE084 7F089554 00002825 */ move $a1, $zero +/* 0BE088 7F089558 44816000 */ mtc1 $at, $f12 +/* 0BE08C 7F08955C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BE090 7F089560 44813000 */ mtc1 $at, $f6 +/* 0BE094 7F089564 AC790428 */ sw $t9, 0x428($v1) +/* 0BE098 7F089568 00003025 */ move $a2, $zero +/* 0BE09C 7F08956C 00003825 */ move $a3, $zero +/* 0BE0A0 7F089570 0FC201F8 */ jal sub_GAME_7F0807E0 +/* 0BE0A4 7F089574 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0BE0A8 7F089578 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 0BE0AC 7F08957C 44816000 */ mtc1 $at, $f12 +/* 0BE0B0 7F089580 44807000 */ mtc1 $zero, $f14 +/* 0BE0B4 7F089584 0FC20284 */ jal set_curplayer_fade +/* 0BE0B8 7F089588 00000000 */ nop +.L7F08958C: +/* 0BE0BC 7F08958C 0FC20223 */ jal check_if_fade_to_black_complete +/* 0BE0C0 7F089590 00000000 */ nop +/* 0BE0C4 7F089594 10400030 */ beqz $v0, .L7F089658 +/* 0BE0C8 7F089598 00000000 */ nop +/* 0BE0CC 7F08959C 0FC26919 */ jal get_num_players +/* 0BE0D0 7F0895A0 00000000 */ nop +/* 0BE0D4 7F0895A4 24010001 */ li $at, 1 +/* 0BE0D8 7F0895A8 14410005 */ bne $v0, $at, .L7F0895C0 +/* 0BE0DC 7F0895AC 00000000 */ nop +/* 0BE0E0 7F0895B0 0FC1EA6E */ jal set_camera_mode +/* 0BE0E4 7F0895B4 24040005 */ li $a0, 5 +/* 0BE0E8 7F0895B8 10000027 */ b .L7F089658 +/* 0BE0EC 7F0895BC 00000000 */ nop +.L7F0895C0: +/* 0BE0F0 7F0895C0 0FC051D6 */ jal get_scenario +/* 0BE0F4 7F0895C4 00000000 */ nop +/* 0BE0F8 7F0895C8 0FC26C54 */ jal get_cur_playernum +/* 0BE0FC 7F0895CC AFA20040 */ sw $v0, 0x40($sp) +/* 0BE100 7F0895D0 0FC26919 */ jal get_num_players +/* 0BE104 7F0895D4 AFA2003C */ sw $v0, 0x3c($sp) +/* 0BE108 7F0895D8 00402825 */ move $a1, $v0 +/* 0BE10C 7F0895DC 00002025 */ move $a0, $zero +/* 0BE110 7F0895E0 1840000C */ blez $v0, .L7F089614 +/* 0BE114 7F0895E4 00001825 */ move $v1, $zero +/* 0BE118 7F0895E8 8FA8003C */ lw $t0, 0x3c($sp) +/* 0BE11C 7F0895EC 3C0A8008 */ lui $t2, %hi(player1_player_data) +/* 0BE120 7F0895F0 254A9EF0 */ addiu $t2, %lo(player1_player_data) # addiu $t2, $t2, -0x6110 +/* 0BE124 7F0895F4 00084880 */ sll $t1, $t0, 2 +/* 0BE128 7F0895F8 012A1021 */ addu $v0, $t1, $t2 +.L7F0895FC: +/* 0BE12C 7F0895FC 8C4B0024 */ lw $t3, 0x24($v0) +/* 0BE130 7F089600 24630001 */ addiu $v1, $v1, 1 +/* 0BE134 7F089604 0065082A */ slt $at, $v1, $a1 +/* 0BE138 7F089608 24420070 */ addiu $v0, $v0, 0x70 +/* 0BE13C 7F08960C 1420FFFB */ bnez $at, .L7F0895FC +/* 0BE140 7F089610 008B2021 */ addu $a0, $a0, $t3 +.L7F089614: +/* 0BE144 7F089614 8FAC0040 */ lw $t4, 0x40($sp) +/* 0BE148 7F089618 24010001 */ li $at, 1 +/* 0BE14C 7F08961C 15810003 */ bne $t4, $at, .L7F08962C +/* 0BE150 7F089620 28810002 */ slti $at, $a0, 2 +/* 0BE154 7F089624 1020000C */ beqz $at, .L7F089658 +/* 0BE158 7F089628 00000000 */ nop +.L7F08962C: +/* 0BE15C 7F08962C 0FC26C54 */ jal get_cur_playernum +/* 0BE160 7F089630 00000000 */ nop +/* 0BE164 7F089634 00022600 */ sll $a0, $v0, 0x18 +/* 0BE168 7F089638 00046E03 */ sra $t5, $a0, 0x18 +/* 0BE16C 7F08963C 01A02025 */ move $a0, $t5 +/* 0BE170 7F089640 0C0030C3 */ jal get_controller_buttons_held +/* 0BE174 7F089644 3405B000 */ li $a1, 45056 +/* 0BE178 7F089648 10400003 */ beqz $v0, .L7F089658 +/* 0BE17C 7F08964C 00000000 */ nop +/* 0BE180 7F089650 0FC2223A */ jal mp_respawn_handler +/* 0BE184 7F089654 00000000 */ nop +.L7F089658: +/* 0BE188 7F089658 0FC22939 */ jal sub_GAME_7F08A4E4 +/* 0BE18C 7F08965C 00000000 */ nop +/* 0BE190 7F089660 0FC2297F */ jal sub_GAME_7F08A5FC +/* 0BE194 7F089664 8FA40058 */ lw $a0, 0x58($sp) +/* 0BE198 7F089668 0FC22A7E */ jal sub_GAME_7F08A9F8 +/* 0BE19C 7F08966C AFA20058 */ sw $v0, 0x58($sp) +/* 0BE1A0 7F089670 0FC22ABA */ jal sub_GAME_7F08AAE8 +/* 0BE1A4 7F089674 8FA40058 */ lw $a0, 0x58($sp) +/* 0BE1A8 7F089678 AFA20058 */ sw $v0, 0x58($sp) +/* 0BE1AC 7F08967C 0FC1A979 */ jal sub_GAME_7F06A5E4 +/* 0BE1B0 7F089680 27A40058 */ addiu $a0, $sp, 0x58 +/* 0BE1B4 7F089684 0FC1A73D */ jal generate_ammo_total_microcode +/* 0BE1B8 7F089688 8FA40058 */ lw $a0, 0x58($sp) +/* 0BE1BC 7F08968C AFA20058 */ sw $v0, 0x58($sp) +/* 0BE1C0 7F089690 0FC15884 */ jal sub_GAME_7F056210 +/* 0BE1C4 7F089694 00402025 */ move $a0, $v0 +/* 0BE1C8 7F089698 AFA20058 */ sw $v0, 0x58($sp) +/* 0BE1CC 7F08969C 0FC31824 */ jal display_red_blue_on_radar +/* 0BE1D0 7F0896A0 00402025 */ move $a0, $v0 +/* 0BE1D4 7F0896A4 AFA20058 */ sw $v0, 0x58($sp) +/* 0BE1D8 7F0896A8 0FC20138 */ jal sub_GAME_7F0804E0 +/* 0BE1DC 7F0896AC 00402025 */ move $a0, $v0 +/* 0BE1E0 7F0896B0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0896B4: +/* 0BE1E4 7F0896B4 27BD0058 */ addiu $sp, $sp, 0x58 +/* 0BE1E8 7F0896B8 03E00008 */ jr $ra +/* 0BE1EC 7F0896BC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 write_stan_tiles_in_yellow(s32 arg0) { + s32 phi_a0; + s32 phi_a0_2; + + // Node 0 + phi_a0 = arg0; + if (dword_CODE_bss_80079DA0 != 0) + { + // Node 1 + phi_a0 = sub_GAME_7F0B3024(dword_CODE_bss_80079DA0, 0xff00ff80); + } + // Node 2 + phi_a0_2 = phi_a0; + if (dword_CODE_bss_80079DA4 != 0) + { + // Node 3 + phi_a0_2 = sub_GAME_7F0B3024(phi_a0, dword_CODE_bss_80079DA4, 0xff00ff80); + } + // Node 4 + return phi_a0_2; +} +#else +GLOBAL_ASM( +.text +glabel write_stan_tiles_in_yellow +/* 0BE1F0 7F0896C0 3C058008 */ lui $a1, %hi(dword_CODE_bss_80079DA0) +/* 0BE1F4 7F0896C4 8CA59DA0 */ lw $a1, %lo(dword_CODE_bss_80079DA0)($a1) +/* 0BE1F8 7F0896C8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0BE1FC 7F0896CC AFBF0014 */ sw $ra, 0x14($sp) +/* 0BE200 7F0896D0 10A00004 */ beqz $a1, .L7F0896E4 +/* 0BE204 7F0896D4 3C06FF00 */ lui $a2, (0xFF00FF80 >> 16) # lui $a2, 0xff00 +/* 0BE208 7F0896D8 0FC2CC09 */ jal sub_GAME_7F0B3024 +/* 0BE20C 7F0896DC 34C6FF80 */ ori $a2, (0xFF00FF80 & 0xFFFF) # ori $a2, $a2, 0xff80 +/* 0BE210 7F0896E0 00402025 */ move $a0, $v0 +.L7F0896E4: +/* 0BE214 7F0896E4 3C058008 */ lui $a1, %hi(dword_CODE_bss_80079DA4) +/* 0BE218 7F0896E8 8CA59DA4 */ lw $a1, %lo(dword_CODE_bss_80079DA4)($a1) +/* 0BE21C 7F0896EC 3C06FF00 */ lui $a2, (0xFF00FF80 >> 16) # lui $a2, 0xff00 +/* 0BE220 7F0896F0 50A00005 */ beql $a1, $zero, .L7F089708 +/* 0BE224 7F0896F4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE228 7F0896F8 0FC2CC09 */ jal sub_GAME_7F0B3024 +/* 0BE22C 7F0896FC 34C6FF80 */ ori $a2, (0xFF00FF80 & 0xFFFF) # ori $a2, $a2, 0xff80 +/* 0BE230 7F089700 00402025 */ move $a0, $v0 +/* 0BE234 7F089704 8FBF0014 */ lw $ra, 0x14($sp) +.L7F089708: +/* 0BE238 7F089708 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0BE23C 7F08970C 00801025 */ move $v0, $a0 +/* 0BE240 7F089710 03E00008 */ jr $ra +/* 0BE244 7F089714 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F089718(f32 arg0) { + f32 temp_f0; + void *temp_v0; + + // Node 0 + temp_f0 = (D_800364D0 / arg0); + temp_v0 = (pPlayer + 0x488); + temp_v0->unk4 = (f32) (pPlayer->field_48C * temp_f0); + temp_v0->unkC = (f32) (pPlayer->field_494 * temp_f0); + D_800364D0 = arg0; + D_800364D4 = (f32) (1.0f / arg0); + return temp_v0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F089718 +/* 0BE248 7F089718 3C038003 */ lui $v1, %hi(D_800364D0) +/* 0BE24C 7F08971C 246364D0 */ addiu $v1, %lo(D_800364D0) # addiu $v1, $v1, 0x64d0 +/* 0BE250 7F089720 C4640000 */ lwc1 $f4, ($v1) +/* 0BE254 7F089724 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BE258 7F089728 44819000 */ mtc1 $at, $f18 +/* 0BE25C 7F08972C 460C2003 */ div.s $f0, $f4, $f12 +/* 0BE260 7F089730 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE264 7F089734 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE268 7F089738 3C018003 */ lui $at, %hi(D_800364D4) +/* 0BE26C 7F08973C C446048C */ lwc1 $f6, 0x48c($v0) +/* 0BE270 7F089740 C44A0494 */ lwc1 $f10, 0x494($v0) +/* 0BE274 7F089744 24420488 */ addiu $v0, $v0, 0x488 +/* 0BE278 7F089748 460C9103 */ div.s $f4, $f18, $f12 +/* 0BE27C 7F08974C 46003202 */ mul.s $f8, $f6, $f0 +/* 0BE280 7F089750 00000000 */ nop +/* 0BE284 7F089754 46005402 */ mul.s $f16, $f10, $f0 +/* 0BE288 7F089758 E4480004 */ swc1 $f8, 4($v0) +/* 0BE28C 7F08975C E450000C */ swc1 $f16, 0xc($v0) +/* 0BE290 7F089760 E46C0000 */ swc1 $f12, ($v1) +/* 0BE294 7F089764 03E00008 */ jr $ra +/* 0BE298 7F089768 E42464D4 */ swc1 $f4, %lo(D_800364D4)($at) +) +#endif + + + +void sub_GAME_7F08976C(f32 param_1) { + D_800364CC = param_1; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F089778(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F089778 +/* 0BE2A8 7F089778 03E00008 */ jr $ra +/* 0BE2AC 7F08977C C4800074 */ lwc1 $f0, 0x74($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F089780(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F089780 +/* 0BE2B0 7F089780 C48429BC */ lwc1 $f4, 0x29bc($a0) +/* 0BE2B4 7F089784 C4860088 */ lwc1 $f6, 0x88($a0) +/* 0BE2B8 7F089788 C48A00A0 */ lwc1 $f10, 0xa0($a0) +/* 0BE2BC 7F08978C 46062200 */ add.s $f8, $f4, $f6 +/* 0BE2C0 7F089790 03E00008 */ jr $ra +/* 0BE2C4 7F089794 460A4000 */ add.s $f0, $f8, $f10 +) +#endif + + + + + +#ifdef NONMATCHING +void get_curplayer_positiondata(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_curplayer_positiondata +/* 0BE2C8 7F089798 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0BE2CC 7F08979C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0BE2D0 7F0897A0 03E00008 */ jr $ra +/* 0BE2D4 7F0897A4 8DC200A8 */ lw $v0, 0xa8($t6) +) +#endif + + + + + +#ifdef NONMATCHING +void kill_current_player(void) { + +} +#else +GLOBAL_ASM( +.text +glabel kill_current_player +/* 0BE2D8 7F0897A8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0BE2DC 7F0897AC AFB00018 */ sw $s0, 0x18($sp) +/* 0BE2E0 7F0897B0 3C108008 */ lui $s0, %hi(pPlayer) +/* 0BE2E4 7F0897B4 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0BE2E8 7F0897B8 8E020000 */ lw $v0, ($s0) +/* 0BE2EC 7F0897BC AFBF001C */ sw $ra, 0x1c($sp) +/* 0BE2F0 7F0897C0 904E12B6 */ lbu $t6, 0x12b6($v0) +/* 0BE2F4 7F0897C4 55C00044 */ bnezl $t6, .L7F0898D8 +/* 0BE2F8 7F0897C8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0BE2FC 7F0897CC 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0BE300 7F0897D0 55E00041 */ bnezl $t7, .L7F0898D8 +/* 0BE304 7F0897D4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0BE308 7F0897D8 8C5801C8 */ lw $t8, 0x1c8($v0) +/* 0BE30C 7F0897DC 53000005 */ beql $t8, $zero, .L7F0897F4 +/* 0BE310 7F0897E0 24030001 */ li $v1, 1 +/* 0BE314 7F0897E4 0FC1FE1D */ jal trigger_solo_watch_menu +/* 0BE318 7F0897E8 24040001 */ li $a0, 1 +/* 0BE31C 7F0897EC 8E020000 */ lw $v0, ($s0) +/* 0BE320 7F0897F0 24030001 */ li $v1, 1 +.L7F0897F4: +/* 0BE324 7F0897F4 3C018003 */ lui $at, %hi(mission_kia_flag) +/* 0BE328 7F0897F8 AC23A928 */ sw $v1, %lo(mission_kia_flag)($at) +/* 0BE32C 7F0897FC AC4300D8 */ sw $v1, 0xd8($v0) +/* 0BE330 7F089800 8E0A0000 */ lw $t2, ($s0) +/* 0BE334 7F089804 24040001 */ li $a0, 1 +/* 0BE338 7F089808 01404825 */ move $t1, $t2 +/* 0BE33C 7F08980C 25480054 */ addiu $t0, $t2, 0x54 +.L7F089810: +/* 0BE340 7F089810 8D210488 */ lw $at, 0x488($t1) +/* 0BE344 7F089814 2529000C */ addiu $t1, $t1, 0xc +/* 0BE348 7F089818 254A000C */ addiu $t2, $t2, 0xc +/* 0BE34C 7F08981C AD410428 */ sw $at, 0x428($t2) +/* 0BE350 7F089820 8D210480 */ lw $at, 0x480($t1) +/* 0BE354 7F089824 AD41042C */ sw $at, 0x42c($t2) +/* 0BE358 7F089828 8D210484 */ lw $at, 0x484($t1) +/* 0BE35C 7F08982C 1528FFF8 */ bne $t1, $t0, .L7F089810 +/* 0BE360 7F089830 AD410430 */ sw $at, 0x430($t2) +/* 0BE364 7F089834 8E020000 */ lw $v0, ($s0) +/* 0BE368 7F089838 3C0B8003 */ lui $t3, %hi(ptr_playerstank) +/* 0BE36C 7F08983C 3C018003 */ lui $at, %hi(D_8003648C) +/* 0BE370 7F089840 C4440148 */ lwc1 $f4, 0x148($v0) +/* 0BE374 7F089844 E4440414 */ swc1 $f4, 0x414($v0) +/* 0BE378 7F089848 8E020000 */ lw $v0, ($s0) +/* 0BE37C 7F08984C C4460158 */ lwc1 $f6, 0x158($v0) +/* 0BE380 7F089850 E4460418 */ swc1 $f6, 0x418($v0) +/* 0BE384 7F089854 8D6B6450 */ lw $t3, %lo(ptr_playerstank)($t3) +/* 0BE388 7F089858 11600002 */ beqz $t3, .L7F089864 +/* 0BE38C 7F08985C 00000000 */ nop +/* 0BE390 7F089860 AC23648C */ sw $v1, %lo(D_8003648C)($at) +.L7F089864: +/* 0BE394 7F089864 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0BE398 7F089868 00002825 */ move $a1, $zero +/* 0BE39C 7F08986C 00002025 */ move $a0, $zero +/* 0BE3A0 7F089870 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0BE3A4 7F089874 00002825 */ move $a1, $zero +/* 0BE3A8 7F089878 0FC22FEE */ jal get_mission_timer +/* 0BE3AC 7F08987C 00000000 */ nop +/* 0BE3B0 7F089880 8E0C0000 */ lw $t4, ($s0) +/* 0BE3B4 7F089884 3C0F8008 */ lui $t7, %hi(pPlayersPerm) +/* 0BE3B8 7F089888 8DEFA0B4 */ lw $t7, %lo(pPlayersPerm)($t7) +/* 0BE3BC 7F08988C 8D8D29F4 */ lw $t5, 0x29f4($t4) +/* 0BE3C0 7F089890 8DF80050 */ lw $t8, 0x50($t7) +/* 0BE3C4 7F089894 004D7023 */ subu $t6, $v0, $t5 +/* 0BE3C8 7F089898 01D8082A */ slt $at, $t6, $t8 +/* 0BE3CC 7F08989C 10200009 */ beqz $at, .L7F0898C4 +/* 0BE3D0 7F0898A0 00000000 */ nop +/* 0BE3D4 7F0898A4 0FC22FEE */ jal get_mission_timer +/* 0BE3D8 7F0898A8 00000000 */ nop +/* 0BE3DC 7F0898AC 8E190000 */ lw $t9, ($s0) +/* 0BE3E0 7F0898B0 3C0A8008 */ lui $t2, %hi(pPlayersPerm) +/* 0BE3E4 7F0898B4 8D4AA0B4 */ lw $t2, %lo(pPlayersPerm)($t2) +/* 0BE3E8 7F0898B8 8F2829F4 */ lw $t0, 0x29f4($t9) +/* 0BE3EC 7F0898BC 00484823 */ subu $t1, $v0, $t0 +/* 0BE3F0 7F0898C0 AD490050 */ sw $t1, 0x50($t2) +.L7F0898C4: +/* 0BE3F4 7F0898C4 0FC22FEE */ jal get_mission_timer +/* 0BE3F8 7F0898C8 00000000 */ nop +/* 0BE3FC 7F0898CC 8E0B0000 */ lw $t3, ($s0) +/* 0BE400 7F0898D0 AD6229F4 */ sw $v0, 0x29f4($t3) +/* 0BE404 7F0898D4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0898D8: +/* 0BE408 7F0898D8 8FB00018 */ lw $s0, 0x18($sp) +/* 0BE40C 7F0898DC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0BE410 7F0898E0 03E00008 */ jr $ra +/* 0BE414 7F0898E4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0898E8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0898E8 +/* 0BE418 7F0898E8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0BE41C 7F0898EC AFBF0014 */ sw $ra, 0x14($sp) +/* 0BE420 7F0898F0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0BE424 7F0898F4 00002025 */ move $a0, $zero +/* 0BE428 7F0898F8 000270C0 */ sll $t6, $v0, 3 +/* 0BE42C 7F0898FC 25C20280 */ addiu $v0, $t6, 0x280 +/* 0BE430 7F089900 240100A0 */ li $at, 160 +/* 0BE434 7F089904 0041001A */ div $zero, $v0, $at +/* 0BE438 7F089908 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE43C 7F08990C 00001012 */ mflo $v0 +/* 0BE440 7F089910 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0BE444 7F089914 03E00008 */ jr $ra +/* 0BE448 7F089918 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void record_damage_kills(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel pi_800552B0 +.word 0x40490fdb /*3.1415927*/ +.text +glabel record_damage_kills +/* 0BE44C 7F08991C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0BE450 7F089920 3C0E8008 */ lui $t6, %hi(pPlayersPerm) +/* 0BE454 7F089924 8DCEA0B4 */ lw $t6, %lo(pPlayersPerm)($t6) +/* 0BE458 7F089928 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BE45C 7F08992C E7AE0044 */ swc1 $f14, 0x44($sp) +/* 0BE460 7F089930 AFA60048 */ sw $a2, 0x48($sp) +/* 0BE464 7F089934 AFA7004C */ sw $a3, 0x4c($sp) +/* 0BE468 7F089938 C5C4005C */ lwc1 $f4, 0x5c($t6) +/* 0BE46C 7F08993C 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0BE470 7F089940 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0BE474 7F089944 460C2182 */ mul.s $f6, $f4, $f12 +/* 0BE478 7F089948 E7A6003C */ swc1 $f6, 0x3c($sp) +/* 0BE47C 7F08994C 8DF801C8 */ lw $t8, 0x1c8($t7) +/* 0BE480 7F089950 13000013 */ beqz $t8, .L7F0899A0 +/* 0BE484 7F089954 00000000 */ nop +/* 0BE488 7F089958 0FC228BF */ jal get_BONDdata_watch_armor +/* 0BE48C 7F08995C 00000000 */ nop +/* 0BE490 7F089960 3C048008 */ lui $a0, %hi(pPlayer) +/* 0BE494 7F089964 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0BE498 7F089968 44070000 */ mfc1 $a3, $f0 +/* 0BE49C 7F08996C 2405002E */ li $a1, 46 +/* 0BE4A0 7F089970 24060001 */ li $a2, 1 +/* 0BE4A4 7F089974 0FC28BCC */ jal sub_GAME_7F0A2F30 +/* 0BE4A8 7F089978 248412B8 */ addiu $a0, $a0, 0x12b8 +/* 0BE4AC 7F08997C 0FC228BB */ jal get_BONDdata_watch_health +/* 0BE4B0 7F089980 00000000 */ nop +/* 0BE4B4 7F089984 3C048008 */ lui $a0, %hi(pPlayer) +/* 0BE4B8 7F089988 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0BE4BC 7F08998C 44070000 */ mfc1 $a3, $f0 +/* 0BE4C0 7F089990 2405002E */ li $a1, 46 +/* 0BE4C4 7F089994 2406FFFF */ li $a2, -1 +/* 0BE4C8 7F089998 0FC28BCC */ jal sub_GAME_7F0A2F30 +/* 0BE4CC 7F08999C 24841598 */ addiu $a0, $a0, 0x1598 +.L7F0899A0: +/* 0BE4D0 7F0899A0 0FC26919 */ jal get_num_players +/* 0BE4D4 7F0899A4 00000000 */ nop +/* 0BE4D8 7F0899A8 28410002 */ slti $at, $v0, 2 +/* 0BE4DC 7F0899AC 14200007 */ bnez $at, .L7F0899CC +/* 0BE4E0 7F0899B0 3C198009 */ lui $t9, %hi(stop_play_flag) +/* 0BE4E4 7F0899B4 8F39C700 */ lw $t9, %lo(stop_play_flag)($t9) +/* 0BE4E8 7F0899B8 3C088009 */ lui $t0, %hi(is_gameover_flag) +/* 0BE4EC 7F0899BC 57200120 */ bnezl $t9, .L7F089E40 +/* 0BE4F0 7F0899C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE4F4 7F0899C4 8D08C704 */ lw $t0, %lo(is_gameover_flag)($t0) +/* 0BE4F8 7F0899C8 1500011C */ bnez $t0, .L7F089E3C +.L7F0899CC: +/* 0BE4FC 7F0899CC 3C098003 */ lui $t1, %hi(in_tank_flag) +/* 0BE500 7F0899D0 8D296448 */ lw $t1, %lo(in_tank_flag)($t1) +/* 0BE504 7F0899D4 24010001 */ li $at, 1 +/* 0BE508 7F0899D8 C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0BE50C 7F0899DC 15210006 */ bne $t1, $at, .L7F0899F8 +/* 0BE510 7F0899E0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE514 7F0899E4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0BE518 7F0899E8 44815000 */ mtc1 $at, $f10 +/* 0BE51C 7F0899EC 00000000 */ nop +/* 0BE520 7F0899F0 460A4402 */ mul.s $f16, $f8, $f10 +/* 0BE524 7F0899F4 E7B0003C */ swc1 $f16, 0x3c($sp) +.L7F0899F8: +/* 0BE528 7F0899F8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE52C 7F0899FC 8C4A00D8 */ lw $t2, 0xd8($v0) +/* 0BE530 7F089A00 15400016 */ bnez $t2, .L7F089A5C +/* 0BE534 7F089A04 00000000 */ nop +/* 0BE538 7F089A08 904B12B6 */ lbu $t3, 0x12b6($v0) +/* 0BE53C 7F089A0C 15600013 */ bnez $t3, .L7F089A5C +/* 0BE540 7F089A10 00000000 */ nop +/* 0BE544 7F089A14 0FC26C54 */ jal get_cur_playernum +/* 0BE548 7F089A18 00000000 */ nop +/* 0BE54C 7F089A1C 00402025 */ move $a0, $v0 +/* 0BE550 7F089A20 0C003215 */ jal controller_7000C854 +/* 0BE554 7F089A24 3C053E80 */ lui $a1, 0x3e80 +/* 0BE558 7F089A28 0FC29370 */ jal cur_player_get_control_type +/* 0BE55C 7F089A2C 00000000 */ nop +/* 0BE560 7F089A30 28410004 */ slti $at, $v0, 4 +/* 0BE564 7F089A34 14200009 */ bnez $at, .L7F089A5C +/* 0BE568 7F089A38 00000000 */ nop +/* 0BE56C 7F089A3C 0FC26C54 */ jal get_cur_playernum +/* 0BE570 7F089A40 00000000 */ nop +/* 0BE574 7F089A44 0FC26919 */ jal get_num_players +/* 0BE578 7F089A48 AFA2001C */ sw $v0, 0x1c($sp) +/* 0BE57C 7F089A4C 8FAC001C */ lw $t4, 0x1c($sp) +/* 0BE580 7F089A50 3C053E80 */ lui $a1, 0x3e80 +/* 0BE584 7F089A54 0C003215 */ jal controller_7000C854 +/* 0BE588 7F089A58 004C2021 */ addu $a0, $v0, $t4 +.L7F089A5C: +/* 0BE58C 7F089A5C 0FC26919 */ jal get_num_players +/* 0BE590 7F089A60 00000000 */ nop +/* 0BE594 7F089A64 28410002 */ slti $at, $v0, 2 +/* 0BE598 7F089A68 14200010 */ bnez $at, .L7F089AAC +/* 0BE59C 7F089A6C 00000000 */ nop +/* 0BE5A0 7F089A70 0FC051D6 */ jal get_scenario +/* 0BE5A4 7F089A74 00000000 */ nop +/* 0BE5A8 7F089A78 24010004 */ li $at, 4 +/* 0BE5AC 7F089A7C 1441000B */ bne $v0, $at, .L7F089AAC +/* 0BE5B0 7F089A80 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE5B4 7F089A84 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE5B8 7F089A88 C45200DC */ lwc1 $f18, 0xdc($v0) +/* 0BE5BC 7F089A8C C4442A3C */ lwc1 $f4, 0x2a3c($v0) +/* 0BE5C0 7F089A90 C44800E0 */ lwc1 $f8, 0xe0($v0) +/* 0BE5C4 7F089A94 C44A2A40 */ lwc1 $f10, 0x2a40($v0) +/* 0BE5C8 7F089A98 46049182 */ mul.s $f6, $f18, $f4 +/* 0BE5CC 7F089A9C 00000000 */ nop +/* 0BE5D0 7F089AA0 460A4402 */ mul.s $f16, $f8, $f10 +/* 0BE5D4 7F089AA4 46103480 */ add.s $f18, $f6, $f16 +/* 0BE5D8 7F089AA8 E7B2003C */ swc1 $f18, 0x3c($sp) +.L7F089AAC: +/* 0BE5DC 7F089AAC 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE5E0 7F089AB0 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE5E4 7F089AB4 904D12B6 */ lbu $t5, 0x12b6($v0) +/* 0BE5E8 7F089AB8 55A000E1 */ bnezl $t5, .L7F089E40 +/* 0BE5EC 7F089ABC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE5F0 7F089AC0 8C4E00D8 */ lw $t6, 0xd8($v0) +/* 0BE5F4 7F089AC4 3C0F8003 */ lui $t7, %hi(disable_player_pickups_flag) +/* 0BE5F8 7F089AC8 55C000DD */ bnezl $t6, .L7F089E40 +/* 0BE5FC 7F089ACC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE600 7F089AD0 8DEF64B4 */ lw $t7, %lo(disable_player_pickups_flag)($t7) +/* 0BE604 7F089AD4 55E000DA */ bnezl $t7, .L7F089E40 +/* 0BE608 7F089AD8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE60C 7F089ADC 8C5800F4 */ lw $t8, 0xf4($v0) +/* 0BE610 7F089AE0 0702000B */ bltzl $t8, .L7F089B10 +/* 0BE614 7F089AE4 8C4301C8 */ lw $v1, 0x1c8($v0) +/* 0BE618 7F089AE8 0FC26919 */ jal get_num_players +/* 0BE61C 7F089AEC 00000000 */ nop +/* 0BE620 7F089AF0 28410002 */ slti $at, $v0, 2 +/* 0BE624 7F089AF4 142000D1 */ bnez $at, .L7F089E3C +/* 0BE628 7F089AF8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE62C 7F089AFC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE630 7F089B00 8C5900F4 */ lw $t9, 0xf4($v0) +/* 0BE634 7F089B04 572000CE */ bnezl $t9, .L7F089E40 +/* 0BE638 7F089B08 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE63C 7F089B0C 8C4301C8 */ lw $v1, 0x1c8($v0) +.L7F089B10: +/* 0BE640 7F089B10 24010005 */ li $at, 5 +/* 0BE644 7F089B14 106100C9 */ beq $v1, $at, .L7F089E3C +/* 0BE648 7F089B18 2401000C */ li $at, 12 +/* 0BE64C 7F089B1C 506100C8 */ beql $v1, $at, .L7F089E40 +/* 0BE650 7F089B20 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE654 7F089B24 C44400DC */ lwc1 $f4, 0xdc($v0) +/* 0BE658 7F089B28 E44400E4 */ swc1 $f4, 0xe4($v0) +/* 0BE65C 7F089B2C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE660 7F089B30 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE664 7F089B34 C44800E0 */ lwc1 $f8, 0xe0($v0) +/* 0BE668 7F089B38 0FC26919 */ jal get_num_players +/* 0BE66C 7F089B3C E44800E8 */ swc1 $f8, 0xe8($v0) +/* 0BE670 7F089B40 28410002 */ slti $at, $v0, 2 +/* 0BE674 7F089B44 54200035 */ bnezl $at, .L7F089C1C +/* 0BE678 7F089B48 8FA30050 */ lw $v1, 0x50($sp) +/* 0BE67C 7F089B4C 0FC26C54 */ jal get_cur_playernum +/* 0BE680 7F089B50 00000000 */ nop +/* 0BE684 7F089B54 AFA20038 */ sw $v0, 0x38($sp) +/* 0BE688 7F089B58 C7AC0044 */ lwc1 $f12, 0x44($sp) +/* 0BE68C 7F089B5C 0FC16A8C */ jal atan2f +/* 0BE690 7F089B60 C7AE0048 */ lwc1 $f14, 0x48($sp) +/* 0BE694 7F089B64 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0BE698 7F089B68 44815000 */ mtc1 $at, $f10 +/* 0BE69C 7F089B6C 3C018005 */ lui $at, %hi(pi_800552B0) +/* 0BE6A0 7F089B70 C43052B0 */ lwc1 $f16, %lo(pi_800552B0)($at) +/* 0BE6A4 7F089B74 460A0182 */ mul.s $f6, $f0, $f10 +/* 0BE6A8 7F089B78 8FA80038 */ lw $t0, 0x38($sp) +/* 0BE6AC 7F089B7C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BE6B0 7F089B80 3C0A8008 */ lui $t2, %hi(ptr_BONDdata_p1) +/* 0BE6B4 7F089B84 00084880 */ sll $t1, $t0, 2 +/* 0BE6B8 7F089B88 44812000 */ mtc1 $at, $f4 +/* 0BE6BC 7F089B8C 01495021 */ addu $t2, $t2, $t1 +/* 0BE6C0 7F089B90 46103483 */ div.s $f18, $f6, $f16 +/* 0BE6C4 7F089B94 8D4A9EE0 */ lw $t2, %lo(ptr_BONDdata_p1)($t2) +/* 0BE6C8 7F089B98 44806000 */ mtc1 $zero, $f12 +/* 0BE6CC 7F089B9C 8FAB004C */ lw $t3, 0x4c($sp) +/* 0BE6D0 7F089BA0 C54A0148 */ lwc1 $f10, 0x148($t2) +/* 0BE6D4 7F089BA4 3C0142B4 */ li $at, 0x42B40000 # 90.000000 +/* 0BE6D8 7F089BA8 000B60C0 */ sll $t4, $t3, 3 +/* 0BE6DC 7F089BAC 3C0D8008 */ lui $t5, %hi(player1_player_data) +/* 0BE6E0 7F089BB0 018B6023 */ subu $t4, $t4, $t3 +/* 0BE6E4 7F089BB4 44813000 */ mtc1 $at, $f6 +/* 0BE6E8 7F089BB8 000C6100 */ sll $t4, $t4, 4 +/* 0BE6EC 7F089BBC 25AD9EF0 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x6110 +/* 0BE6F0 7F089BC0 3C014387 */ li $at, 0x43870000 # 270.000000 +/* 0BE6F4 7F089BC4 018D1021 */ addu $v0, $t4, $t5 +/* 0BE6F8 7F089BC8 46122201 */ sub.s $f8, $f4, $f18 +/* 0BE6FC 7F089BCC 46085081 */ sub.s $f2, $f10, $f8 +/* 0BE700 7F089BD0 460C103C */ c.lt.s $f2, $f12 +/* 0BE704 7F089BD4 00000000 */ nop +/* 0BE708 7F089BD8 45020003 */ bc1fl .L7F089BE8 +/* 0BE70C 7F089BDC 4606103C */ c.lt.s $f2, $f6 +/* 0BE710 7F089BE0 46001087 */ neg.s $f2, $f2 +/* 0BE714 7F089BE4 4606103C */ c.lt.s $f2, $f6 +.L7F089BE8: +/* 0BE718 7F089BE8 00000000 */ nop +/* 0BE71C 7F089BEC 45030008 */ bc1tl .L7F089C10 +/* 0BE720 7F089BF0 8C4E003C */ lw $t6, 0x3c($v0) +/* 0BE724 7F089BF4 44818000 */ mtc1 $at, $f16 +/* 0BE728 7F089BF8 00000000 */ nop +/* 0BE72C 7F089BFC 4602803C */ c.lt.s $f16, $f2 +/* 0BE730 7F089C00 00000000 */ nop +/* 0BE734 7F089C04 45020005 */ bc1fl .L7F089C1C +/* 0BE738 7F089C08 8FA30050 */ lw $v1, 0x50($sp) +/* 0BE73C 7F089C0C 8C4E003C */ lw $t6, 0x3c($v0) +.L7F089C10: +/* 0BE740 7F089C10 25CF0001 */ addiu $t7, $t6, 1 +/* 0BE744 7F089C14 AC4F003C */ sw $t7, 0x3c($v0) +/* 0BE748 7F089C18 8FA30050 */ lw $v1, 0x50($sp) +.L7F089C1C: +/* 0BE74C 7F089C1C 44806000 */ mtc1 $zero, $f12 +/* 0BE750 7F089C20 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE754 7F089C24 10600010 */ beqz $v1, .L7F089C68 +/* 0BE758 7F089C28 00000000 */ nop +/* 0BE75C 7F089C2C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE760 7F089C30 C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 0BE764 7F089C34 C44000E0 */ lwc1 $f0, 0xe0($v0) +/* 0BE768 7F089C38 C4422A40 */ lwc1 $f2, 0x2a40($v0) +/* 0BE76C 7F089C3C 46020102 */ mul.s $f4, $f0, $f2 +/* 0BE770 7F089C40 4604903E */ c.le.s $f18, $f4 +/* 0BE774 7F089C44 00000000 */ nop +/* 0BE778 7F089C48 45000007 */ bc1f .L7F089C68 +/* 0BE77C 7F089C4C 00000000 */ nop +/* 0BE780 7F089C50 46029283 */ div.s $f10, $f18, $f2 +/* 0BE784 7F089C54 460A0201 */ sub.s $f8, $f0, $f10 +/* 0BE788 7F089C58 E44800E0 */ swc1 $f8, 0xe0($v0) +/* 0BE78C 7F089C5C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE790 7F089C60 1000005D */ b .L7F089DD8 +/* 0BE794 7F089C64 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +.L7F089C68: +/* 0BE798 7F089C68 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE79C 7F089C6C 1060000F */ beqz $v1, .L7F089CAC +/* 0BE7A0 7F089C70 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE7A4 7F089C74 C44600E0 */ lwc1 $f6, 0xe0($v0) +/* 0BE7A8 7F089C78 C4502A40 */ lwc1 $f16, 0x2a40($v0) +/* 0BE7AC 7F089C7C C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 0BE7B0 7F089C80 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BE7B4 7F089C84 46103103 */ div.s $f4, $f6, $f16 +/* 0BE7B8 7F089C88 3C188008 */ lui $t8, %hi(pPlayer) +/* 0BE7BC 7F089C8C 44814000 */ mtc1 $at, $f8 +/* 0BE7C0 7F089C90 46049281 */ sub.s $f10, $f18, $f4 +/* 0BE7C4 7F089C94 E7AA003C */ swc1 $f10, 0x3c($sp) +/* 0BE7C8 7F089C98 E44C00E0 */ swc1 $f12, 0xe0($v0) +/* 0BE7CC 7F089C9C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0BE7D0 7F089CA0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE7D4 7F089CA4 E7082A40 */ swc1 $f8, 0x2a40($t8) +/* 0BE7D8 7F089CA8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +.L7F089CAC: +/* 0BE7DC 7F089CAC C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0BE7E0 7F089CB0 C4502A3C */ lwc1 $f16, 0x2a3c($v0) +/* 0BE7E4 7F089CB4 C44400DC */ lwc1 $f4, 0xdc($v0) +/* 0BE7E8 7F089CB8 46103483 */ div.s $f18, $f6, $f16 +/* 0BE7EC 7F089CBC 46122281 */ sub.s $f10, $f4, $f18 +/* 0BE7F0 7F089CC0 E44A00DC */ swc1 $f10, 0xdc($v0) +/* 0BE7F4 7F089CC4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE7F8 7F089CC8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE7FC 7F089CCC C44800DC */ lwc1 $f8, 0xdc($v0) +/* 0BE800 7F089CD0 460C403E */ c.le.s $f8, $f12 +/* 0BE804 7F089CD4 00000000 */ nop +/* 0BE808 7F089CD8 45020040 */ bc1fl .L7F089DDC +/* 0BE80C 7F089CDC 8C4B00F4 */ lw $t3, 0xf4($v0) +/* 0BE810 7F089CE0 0FC26919 */ jal get_num_players +/* 0BE814 7F089CE4 00000000 */ nop +/* 0BE818 7F089CE8 28410002 */ slti $at, $v0, 2 +/* 0BE81C 7F089CEC 14200036 */ bnez $at, .L7F089DC8 +/* 0BE820 7F089CF0 00000000 */ nop +/* 0BE824 7F089CF4 0FC26C54 */ jal get_cur_playernum +/* 0BE828 7F089CF8 00000000 */ nop +/* 0BE82C 7F089CFC AFA2002C */ sw $v0, 0x2c($sp) +/* 0BE830 7F089D00 0FC051D6 */ jal get_scenario +/* 0BE834 7F089D04 AFA00028 */ sw $zero, 0x28($sp) +/* 0BE838 7F089D08 24010003 */ li $at, 3 +/* 0BE83C 7F089D0C 54410007 */ bnel $v0, $at, .L7F089D2C +/* 0BE840 7F089D10 8FA8002C */ lw $t0, 0x2c($sp) +/* 0BE844 7F089D14 0FC233F0 */ jal checkforgoldengun +/* 0BE848 7F089D18 00000000 */ nop +/* 0BE84C 7F089D1C 10400002 */ beqz $v0, .L7F089D28 +/* 0BE850 7F089D20 24190001 */ li $t9, 1 +/* 0BE854 7F089D24 AFB90028 */ sw $t9, 0x28($sp) +.L7F089D28: +/* 0BE858 7F089D28 8FA8002C */ lw $t0, 0x2c($sp) +.L7F089D2C: +/* 0BE85C 7F089D2C 8FA9004C */ lw $t1, 0x4c($sp) +/* 0BE860 7F089D30 11090005 */ beq $t0, $t1, .L7F089D48 +/* 0BE864 7F089D34 00000000 */ nop +/* 0BE868 7F089D38 0FC159DF */ jal drop_inventory +/* 0BE86C 7F089D3C 00000000 */ nop +/* 0BE870 7F089D40 0FC1AA57 */ jal increment_num_deaths +/* 0BE874 7F089D44 00000000 */ nop +.L7F089D48: +/* 0BE878 7F089D48 0FC26C43 */ jal set_cur_player +/* 0BE87C 7F089D4C 8FA4004C */ lw $a0, 0x4c($sp) +/* 0BE880 7F089D50 8FAA002C */ lw $t2, 0x2c($sp) +/* 0BE884 7F089D54 8FAB004C */ lw $t3, 0x4c($sp) +/* 0BE888 7F089D58 154B0005 */ bne $t2, $t3, .L7F089D70 +/* 0BE88C 7F089D5C 00000000 */ nop +/* 0BE890 7F089D60 0FC1AA86 */ jal increment_num_suicides_display_MP +/* 0BE894 7F089D64 00000000 */ nop +/* 0BE898 7F089D68 10000008 */ b .L7F089D8C +/* 0BE89C 7F089D6C 00000000 */ nop +.L7F089D70: +/* 0BE8A0 7F089D70 0FC1A9E0 */ jal increment_num_kills_display_text_in_MP +/* 0BE8A4 7F089D74 00000000 */ nop +/* 0BE8A8 7F089D78 8FAC0028 */ lw $t4, 0x28($sp) +/* 0BE8AC 7F089D7C 11800003 */ beqz $t4, .L7F089D8C +/* 0BE8B0 7F089D80 00000000 */ nop +/* 0BE8B4 7F089D84 0FC1AA4D */ jal increment_num_times_killed_MwtGC +/* 0BE8B8 7F089D88 00000000 */ nop +.L7F089D8C: +/* 0BE8BC 7F089D8C 0FC26C43 */ jal set_cur_player +/* 0BE8C0 7F089D90 8FA4002C */ lw $a0, 0x2c($sp) +/* 0BE8C4 7F089D94 8FAD004C */ lw $t5, 0x4c($sp) +/* 0BE8C8 7F089D98 8FAF002C */ lw $t7, 0x2c($sp) +/* 0BE8CC 7F089D9C 3C088008 */ lui $t0, %hi(player1_player_data) +/* 0BE8D0 7F089DA0 000D70C0 */ sll $t6, $t5, 3 +/* 0BE8D4 7F089DA4 01CD7023 */ subu $t6, $t6, $t5 +/* 0BE8D8 7F089DA8 000E7100 */ sll $t6, $t6, 4 +/* 0BE8DC 7F089DAC 000FC080 */ sll $t8, $t7, 2 +/* 0BE8E0 7F089DB0 01D8C821 */ addu $t9, $t6, $t8 +/* 0BE8E4 7F089DB4 25089EF0 */ addiu $t0, %lo(player1_player_data) # addiu $t0, $t0, -0x6110 +/* 0BE8E8 7F089DB8 03281021 */ addu $v0, $t9, $t0 +/* 0BE8EC 7F089DBC 8C490024 */ lw $t1, 0x24($v0) +/* 0BE8F0 7F089DC0 252A0001 */ addiu $t2, $t1, 1 +/* 0BE8F4 7F089DC4 AC4A0024 */ sw $t2, 0x24($v0) +.L7F089DC8: +/* 0BE8F8 7F089DC8 0FC225EA */ jal kill_current_player +/* 0BE8FC 7F089DCC 00000000 */ nop +/* 0BE900 7F089DD0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE904 7F089DD4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +.L7F089DD8: +/* 0BE908 7F089DD8 8C4B00F4 */ lw $t3, 0xf4($v0) +.L7F089DDC: +/* 0BE90C 7F089DDC C7A60044 */ lwc1 $f6, 0x44($sp) +/* 0BE910 7F089DE0 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0BE914 7F089DE4 0561000E */ bgez $t3, .L7F089E20 +/* 0BE918 7F089DE8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0BE91C 7F089DEC 46063400 */ add.s $f16, $f6, $f6 +/* 0BE920 7F089DF0 C4440180 */ lwc1 $f4, 0x180($v0) +/* 0BE924 7F089DF4 46102480 */ add.s $f18, $f4, $f16 +/* 0BE928 7F089DF8 E4520180 */ swc1 $f18, 0x180($v0) +/* 0BE92C 7F089DFC C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 0BE930 7F089E00 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE934 7F089E04 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE938 7F089E08 460A5200 */ add.s $f8, $f10, $f10 +/* 0BE93C 7F089E0C C4460188 */ lwc1 $f6, 0x188($v0) +/* 0BE940 7F089E10 46083100 */ add.s $f4, $f6, $f8 +/* 0BE944 7F089E14 E4440188 */ swc1 $f4, 0x188($v0) +/* 0BE948 7F089E18 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE94C 7F089E1C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +.L7F089E20: +/* 0BE950 7F089E20 AC4000F4 */ sw $zero, 0xf4($v0) +/* 0BE954 7F089E24 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0BE958 7F089E28 24050044 */ li $a1, 68 +/* 0BE95C 7F089E2C 00003025 */ move $a2, $zero +/* 0BE960 7F089E30 AD8000F8 */ sw $zero, 0xf8($t4) +/* 0BE964 7F089E34 0C002382 */ jal play_sfx_a1 +/* 0BE968 7F089E38 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +.L7F089E3C: +/* 0BE96C 7F089E3C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F089E40: +/* 0BE970 7F089E40 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0BE974 7F089E44 03E00008 */ jr $ra +/* 0BE978 7F089E48 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel pi_800552B0 +.word 0x40490fdb /*3.1415927*/ +.text +glabel record_damage_kills +/* 0BEB60 7F089FF0 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0BEB64 7F089FF4 3C0E8008 */ lui $t6, %hi(pPlayersPerm) # $t6, 0x8008 +/* 0BEB68 7F089FF8 8DCEA124 */ lw $t6, %lo(pPlayersPerm)($t6) +/* 0BEB6C 7F089FFC AFBF0014 */ sw $ra, 0x14($sp) +/* 0BEB70 7F08A000 E7AE0044 */ swc1 $f14, 0x44($sp) +/* 0BEB74 7F08A004 AFA60048 */ sw $a2, 0x48($sp) +/* 0BEB78 7F08A008 AFA7004C */ sw $a3, 0x4c($sp) +/* 0BEB7C 7F08A00C C5C4005C */ lwc1 $f4, 0x5c($t6) +/* 0BEB80 7F08A010 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 0BEB84 7F08A014 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 0BEB88 7F08A018 460C2182 */ mul.s $f6, $f4, $f12 +/* 0BEB8C 7F08A01C E7A6003C */ swc1 $f6, 0x3c($sp) +/* 0BEB90 7F08A020 8DF801C8 */ lw $t8, 0x1c8($t7) +/* 0BEB94 7F08A024 13000013 */ beqz $t8, .Ljp7F08A074 +/* 0BEB98 7F08A028 00000000 */ nop +/* 0BEB9C 7F08A02C 0FC22A8D */ jal get_BONDdata_watch_armor +/* 0BEBA0 7F08A030 00000000 */ nop +/* 0BEBA4 7F08A034 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 0BEBA8 7F08A038 8C84A120 */ lw $a0, %lo(pPlayer)($a0) +/* 0BEBAC 7F08A03C 44070000 */ mfc1 $a3, $f0 +/* 0BEBB0 7F08A040 2405002E */ li $a1, 46 +/* 0BEBB4 7F08A044 24060001 */ li $a2, 1 +/* 0BEBB8 7F08A048 0FC28EB4 */ jal sub_GAME_7F0A2F30 +/* 0BEBBC 7F08A04C 248412B8 */ addiu $a0, $a0, 0x12b8 +/* 0BEBC0 7F08A050 0FC22A89 */ jal get_BONDdata_watch_health +/* 0BEBC4 7F08A054 00000000 */ nop +/* 0BEBC8 7F08A058 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 0BEBCC 7F08A05C 8C84A120 */ lw $a0, %lo(pPlayer)($a0) +/* 0BEBD0 7F08A060 44070000 */ mfc1 $a3, $f0 +/* 0BEBD4 7F08A064 2405002E */ li $a1, 46 +/* 0BEBD8 7F08A068 2406FFFF */ li $a2, -1 +/* 0BEBDC 7F08A06C 0FC28EB4 */ jal sub_GAME_7F0A2F30 +/* 0BEBE0 7F08A070 24841598 */ addiu $a0, $a0, 0x1598 +.Ljp7F08A074: +/* 0BEBE4 7F08A074 0FC26C01 */ jal get_num_players +/* 0BEBE8 7F08A078 00000000 */ nop +/* 0BEBEC 7F08A07C 28410002 */ slti $at, $v0, 2 +/* 0BEBF0 7F08A080 14200007 */ bnez $at, .Ljp7F08A0A0 +/* 0BEBF4 7F08A084 3C198009 */ lui $t9, %hi(stop_play_flag) # $t9, 0x8009 +/* 0BEBF8 7F08A088 8F39C770 */ lw $t9, %lo(stop_play_flag)($t9) +/* 0BEBFC 7F08A08C 3C088009 */ lui $t0, %hi(is_gameover_flag) # $t0, 0x8009 +/* 0BEC00 7F08A090 5720012D */ bnezl $t9, .Ljp7F08A548 +/* 0BEC04 7F08A094 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BEC08 7F08A098 8D08C774 */ lw $t0, %lo(is_gameover_flag)($t0) +/* 0BEC0C 7F08A09C 15000129 */ bnez $t0, .Ljp7F08A544 +.Ljp7F08A0A0: +/* 0BEC10 7F08A0A0 3C098003 */ lui $t1, %hi(in_tank_flag) # $t1, 0x8003 +/* 0BEC14 7F08A0A4 8D296488 */ lw $t1, %lo(in_tank_flag)($t1) +/* 0BEC18 7F08A0A8 24010001 */ li $at, 1 +/* 0BEC1C 7F08A0AC C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0BEC20 7F08A0B0 15210006 */ bne $t1, $at, .Ljp7F08A0CC +/* 0BEC24 7F08A0B4 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BEC28 7F08A0B8 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0BEC2C 7F08A0BC 44815000 */ mtc1 $at, $f10 +/* 0BEC30 7F08A0C0 00000000 */ nop +/* 0BEC34 7F08A0C4 460A4402 */ mul.s $f16, $f8, $f10 +/* 0BEC38 7F08A0C8 E7B0003C */ swc1 $f16, 0x3c($sp) +.Ljp7F08A0CC: +/* 0BEC3C 7F08A0CC 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BEC40 7F08A0D0 8C4A00D8 */ lw $t2, 0xd8($v0) +/* 0BEC44 7F08A0D4 15400016 */ bnez $t2, .Ljp7F08A130 +/* 0BEC48 7F08A0D8 00000000 */ nop +/* 0BEC4C 7F08A0DC 904B12B6 */ lbu $t3, 0x12b6($v0) +/* 0BEC50 7F08A0E0 15600013 */ bnez $t3, .Ljp7F08A130 +/* 0BEC54 7F08A0E4 00000000 */ nop +/* 0BEC58 7F08A0E8 0FC26F3C */ jal get_cur_playernum +/* 0BEC5C 7F08A0EC 00000000 */ nop +/* 0BEC60 7F08A0F0 00402025 */ move $a0, $v0 +/* 0BEC64 7F08A0F4 0C00322E */ jal controller_7000C854 +/* 0BEC68 7F08A0F8 3C053E80 */ lui $a1, 0x3e80 +/* 0BEC6C 7F08A0FC 0FC29658 */ jal cur_player_get_control_type +/* 0BEC70 7F08A100 00000000 */ nop +/* 0BEC74 7F08A104 28410004 */ slti $at, $v0, 4 +/* 0BEC78 7F08A108 14200009 */ bnez $at, .Ljp7F08A130 +/* 0BEC7C 7F08A10C 00000000 */ nop +/* 0BEC80 7F08A110 0FC26F3C */ jal get_cur_playernum +/* 0BEC84 7F08A114 00000000 */ nop +/* 0BEC88 7F08A118 0FC26C01 */ jal get_num_players +/* 0BEC8C 7F08A11C AFA2001C */ sw $v0, 0x1c($sp) +/* 0BEC90 7F08A120 8FAC001C */ lw $t4, 0x1c($sp) +/* 0BEC94 7F08A124 3C053E80 */ lui $a1, 0x3e80 +/* 0BEC98 7F08A128 0C00322E */ jal controller_7000C854 +/* 0BEC9C 7F08A12C 004C2021 */ addu $a0, $v0, $t4 +.Ljp7F08A130: +/* 0BECA0 7F08A130 0FC26C01 */ jal get_num_players +/* 0BECA4 7F08A134 00000000 */ nop +/* 0BECA8 7F08A138 28410002 */ slti $at, $v0, 2 +/* 0BECAC 7F08A13C 14200010 */ bnez $at, .Ljp7F08A180 +/* 0BECB0 7F08A140 00000000 */ nop +/* 0BECB4 7F08A144 0FC05202 */ jal get_scenario +/* 0BECB8 7F08A148 00000000 */ nop +/* 0BECBC 7F08A14C 24010004 */ li $at, 4 +/* 0BECC0 7F08A150 1441000B */ bne $v0, $at, .Ljp7F08A180 +/* 0BECC4 7F08A154 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BECC8 7F08A158 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BECCC 7F08A15C C45200DC */ lwc1 $f18, 0xdc($v0) +/* 0BECD0 7F08A160 C4442A3C */ lwc1 $f4, 0x2a3c($v0) +/* 0BECD4 7F08A164 C44800E0 */ lwc1 $f8, 0xe0($v0) +/* 0BECD8 7F08A168 C44A2A40 */ lwc1 $f10, 0x2a40($v0) +/* 0BECDC 7F08A16C 46049182 */ mul.s $f6, $f18, $f4 +/* 0BECE0 7F08A170 00000000 */ nop +/* 0BECE4 7F08A174 460A4402 */ mul.s $f16, $f8, $f10 +/* 0BECE8 7F08A178 46103480 */ add.s $f18, $f6, $f16 +/* 0BECEC 7F08A17C E7B2003C */ swc1 $f18, 0x3c($sp) +.Ljp7F08A180: +/* 0BECF0 7F08A180 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BECF4 7F08A184 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BECF8 7F08A188 904D12B6 */ lbu $t5, 0x12b6($v0) +/* 0BECFC 7F08A18C 55A000EE */ bnezl $t5, .Ljp7F08A548 +/* 0BED00 7F08A190 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BED04 7F08A194 8C4E00D8 */ lw $t6, 0xd8($v0) +/* 0BED08 7F08A198 3C0F8003 */ lui $t7, %hi(disable_player_pickups_flag) # $t7, 0x8003 +/* 0BED0C 7F08A19C 55C000EA */ bnezl $t6, .Ljp7F08A548 +/* 0BED10 7F08A1A0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BED14 7F08A1A4 8DEF64F4 */ lw $t7, %lo(disable_player_pickups_flag)($t7) +/* 0BED18 7F08A1A8 55E000E7 */ bnezl $t7, .Ljp7F08A548 +/* 0BED1C 7F08A1AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BED20 7F08A1B0 C44400F4 */ lwc1 $f4, 0xf4($v0) +/* 0BED24 7F08A1B4 44804000 */ mtc1 $zero, $f8 +/* 0BED28 7F08A1B8 00000000 */ nop +/* 0BED2C 7F08A1BC 4608203C */ c.lt.s $f4, $f8 +/* 0BED30 7F08A1C0 00000000 */ nop +/* 0BED34 7F08A1C4 4503000E */ bc1tl .Ljp7F08A200 +/* 0BED38 7F08A1C8 8C4301C8 */ lw $v1, 0x1c8($v0) +/* 0BED3C 7F08A1CC 0FC26C01 */ jal get_num_players +/* 0BED40 7F08A1D0 00000000 */ nop +/* 0BED44 7F08A1D4 28410002 */ slti $at, $v0, 2 +/* 0BED48 7F08A1D8 142000DA */ bnez $at, .Ljp7F08A544 +/* 0BED4C 7F08A1DC 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BED50 7F08A1E0 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BED54 7F08A1E4 44805000 */ mtc1 $zero, $f10 +/* 0BED58 7F08A1E8 C44600F4 */ lwc1 $f6, 0xf4($v0) +/* 0BED5C 7F08A1EC 46065032 */ c.eq.s $f10, $f6 +/* 0BED60 7F08A1F0 00000000 */ nop +/* 0BED64 7F08A1F4 450200D4 */ bc1fl .Ljp7F08A548 +/* 0BED68 7F08A1F8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BED6C 7F08A1FC 8C4301C8 */ lw $v1, 0x1c8($v0) +.Ljp7F08A200: +/* 0BED70 7F08A200 24010005 */ li $at, 5 +/* 0BED74 7F08A204 106100CF */ beq $v1, $at, .Ljp7F08A544 +/* 0BED78 7F08A208 2401000C */ li $at, 12 +/* 0BED7C 7F08A20C 506100CE */ beql $v1, $at, .Ljp7F08A548 +/* 0BED80 7F08A210 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BED84 7F08A214 C45000DC */ lwc1 $f16, 0xdc($v0) +/* 0BED88 7F08A218 E45000E4 */ swc1 $f16, 0xe4($v0) +/* 0BED8C 7F08A21C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BED90 7F08A220 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BED94 7F08A224 C45200E0 */ lwc1 $f18, 0xe0($v0) +/* 0BED98 7F08A228 0FC26C01 */ jal get_num_players +/* 0BED9C 7F08A22C E45200E8 */ swc1 $f18, 0xe8($v0) +/* 0BEDA0 7F08A230 28410002 */ slti $at, $v0, 2 +/* 0BEDA4 7F08A234 54200035 */ bnezl $at, .Ljp7F08A30C +/* 0BEDA8 7F08A238 8FA30050 */ lw $v1, 0x50($sp) +/* 0BEDAC 7F08A23C 0FC26F3C */ jal get_cur_playernum +/* 0BEDB0 7F08A240 00000000 */ nop +/* 0BEDB4 7F08A244 AFA20038 */ sw $v0, 0x38($sp) +/* 0BEDB8 7F08A248 C7AC0044 */ lwc1 $f12, 0x44($sp) +/* 0BEDBC 7F08A24C 0FC16BD4 */ jal atan2f +/* 0BEDC0 7F08A250 C7AE0048 */ lwc1 $f14, 0x48($sp) +/* 0BEDC4 7F08A254 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0BEDC8 7F08A258 44812000 */ mtc1 $at, $f4 +/* 0BEDCC 7F08A25C 3C018005 */ lui $at, %hi(pi_800552B0) # $at, 0x8005 +/* 0BEDD0 7F08A260 C42A52E0 */ lwc1 $f10, %lo(pi_800552B0)($at) +/* 0BEDD4 7F08A264 46040202 */ mul.s $f8, $f0, $f4 +/* 0BEDD8 7F08A268 8FB80038 */ lw $t8, 0x38($sp) +/* 0BEDDC 7F08A26C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BEDE0 7F08A270 3C088008 */ lui $t0, %hi(ptr_BONDdata_p1) +/* 0BEDE4 7F08A274 0018C880 */ sll $t9, $t8, 2 +/* 0BEDE8 7F08A278 44818000 */ mtc1 $at, $f16 +/* 0BEDEC 7F08A27C 01194021 */ addu $t0, $t0, $t9 +/* 0BEDF0 7F08A280 460A4183 */ div.s $f6, $f8, $f10 +/* 0BEDF4 7F08A284 8D089F50 */ lw $t0, %lo(ptr_BONDdata_p1)($t0) +/* 0BEDF8 7F08A288 44806000 */ mtc1 $zero, $f12 +/* 0BEDFC 7F08A28C 8FA9004C */ lw $t1, 0x4c($sp) +/* 0BEE00 7F08A290 C5040148 */ lwc1 $f4, 0x148($t0) +/* 0BEE04 7F08A294 3C0142B4 */ li $at, 0x42B40000 # 90.000000 +/* 0BEE08 7F08A298 000950C0 */ sll $t2, $t1, 3 +/* 0BEE0C 7F08A29C 3C0B8008 */ lui $t3, %hi(player1_player_data) # $t3, 0x8008 +/* 0BEE10 7F08A2A0 01495023 */ subu $t2, $t2, $t1 +/* 0BEE14 7F08A2A4 44814000 */ mtc1 $at, $f8 +/* 0BEE18 7F08A2A8 000A5100 */ sll $t2, $t2, 4 +/* 0BEE1C 7F08A2AC 256B9F60 */ addiu $t3, %lo(player1_player_data) # addiu $t3, $t3, -0x60a0 +/* 0BEE20 7F08A2B0 3C014387 */ li $at, 0x43870000 # 270.000000 +/* 0BEE24 7F08A2B4 014B1021 */ addu $v0, $t2, $t3 +/* 0BEE28 7F08A2B8 46068481 */ sub.s $f18, $f16, $f6 +/* 0BEE2C 7F08A2BC 46122081 */ sub.s $f2, $f4, $f18 +/* 0BEE30 7F08A2C0 460C103C */ c.lt.s $f2, $f12 +/* 0BEE34 7F08A2C4 00000000 */ nop +/* 0BEE38 7F08A2C8 45020003 */ bc1fl .Ljp7F08A2D8 +/* 0BEE3C 7F08A2CC 4608103C */ c.lt.s $f2, $f8 +/* 0BEE40 7F08A2D0 46001087 */ neg.s $f2, $f2 +/* 0BEE44 7F08A2D4 4608103C */ c.lt.s $f2, $f8 +.Ljp7F08A2D8: +/* 0BEE48 7F08A2D8 00000000 */ nop +/* 0BEE4C 7F08A2DC 45030008 */ bc1tl .Ljp7F08A300 +/* 0BEE50 7F08A2E0 8C4C003C */ lw $t4, 0x3c($v0) +/* 0BEE54 7F08A2E4 44815000 */ mtc1 $at, $f10 +/* 0BEE58 7F08A2E8 00000000 */ nop +/* 0BEE5C 7F08A2EC 4602503C */ c.lt.s $f10, $f2 +/* 0BEE60 7F08A2F0 00000000 */ nop +/* 0BEE64 7F08A2F4 45020005 */ bc1fl .Ljp7F08A30C +/* 0BEE68 7F08A2F8 8FA30050 */ lw $v1, 0x50($sp) +/* 0BEE6C 7F08A2FC 8C4C003C */ lw $t4, 0x3c($v0) +.Ljp7F08A300: +/* 0BEE70 7F08A300 258D0001 */ addiu $t5, $t4, 1 +/* 0BEE74 7F08A304 AC4D003C */ sw $t5, 0x3c($v0) +/* 0BEE78 7F08A308 8FA30050 */ lw $v1, 0x50($sp) +.Ljp7F08A30C: +/* 0BEE7C 7F08A30C 44806000 */ mtc1 $zero, $f12 +/* 0BEE80 7F08A310 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BEE84 7F08A314 10600010 */ beqz $v1, .Ljp7F08A358 +/* 0BEE88 7F08A318 00000000 */ nop +/* 0BEE8C 7F08A31C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BEE90 7F08A320 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0BEE94 7F08A324 C44000E0 */ lwc1 $f0, 0xe0($v0) +/* 0BEE98 7F08A328 C4422A40 */ lwc1 $f2, 0x2a40($v0) +/* 0BEE9C 7F08A32C 46020402 */ mul.s $f16, $f0, $f2 +/* 0BEEA0 7F08A330 4610303E */ c.le.s $f6, $f16 +/* 0BEEA4 7F08A334 00000000 */ nop +/* 0BEEA8 7F08A338 45000007 */ bc1f .Ljp7F08A358 +/* 0BEEAC 7F08A33C 00000000 */ nop +/* 0BEEB0 7F08A340 46023103 */ div.s $f4, $f6, $f2 +/* 0BEEB4 7F08A344 46040481 */ sub.s $f18, $f0, $f4 +/* 0BEEB8 7F08A348 E45200E0 */ swc1 $f18, 0xe0($v0) +/* 0BEEBC 7F08A34C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BEEC0 7F08A350 1000005E */ b .Ljp7F08A4CC +/* 0BEEC4 7F08A354 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +.Ljp7F08A358: +/* 0BEEC8 7F08A358 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BEECC 7F08A35C 1060000F */ beqz $v1, .Ljp7F08A39C +/* 0BEED0 7F08A360 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BEED4 7F08A364 C44800E0 */ lwc1 $f8, 0xe0($v0) +/* 0BEED8 7F08A368 C44A2A40 */ lwc1 $f10, 0x2a40($v0) +/* 0BEEDC 7F08A36C C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0BEEE0 7F08A370 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BEEE4 7F08A374 460A4403 */ div.s $f16, $f8, $f10 +/* 0BEEE8 7F08A378 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0BEEEC 7F08A37C 44819000 */ mtc1 $at, $f18 +/* 0BEEF0 7F08A380 46103101 */ sub.s $f4, $f6, $f16 +/* 0BEEF4 7F08A384 E7A4003C */ swc1 $f4, 0x3c($sp) +/* 0BEEF8 7F08A388 E44C00E0 */ swc1 $f12, 0xe0($v0) +/* 0BEEFC 7F08A38C 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0BEF00 7F08A390 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BEF04 7F08A394 E5D22A40 */ swc1 $f18, 0x2a40($t6) +/* 0BEF08 7F08A398 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +.Ljp7F08A39C: +/* 0BEF0C 7F08A39C C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0BEF10 7F08A3A0 C44A2A3C */ lwc1 $f10, 0x2a3c($v0) +/* 0BEF14 7F08A3A4 C45000DC */ lwc1 $f16, 0xdc($v0) +/* 0BEF18 7F08A3A8 460A4183 */ div.s $f6, $f8, $f10 +/* 0BEF1C 7F08A3AC 46068101 */ sub.s $f4, $f16, $f6 +/* 0BEF20 7F08A3B0 E44400DC */ swc1 $f4, 0xdc($v0) +/* 0BEF24 7F08A3B4 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BEF28 7F08A3B8 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BEF2C 7F08A3BC C45200DC */ lwc1 $f18, 0xdc($v0) +/* 0BEF30 7F08A3C0 460C903E */ c.le.s $f18, $f12 +/* 0BEF34 7F08A3C4 00000000 */ nop +/* 0BEF38 7F08A3C8 45020041 */ bc1fl .Ljp7F08A4D0 +/* 0BEF3C 7F08A3CC C44800F4 */ lwc1 $f8, 0xf4($v0) +/* 0BEF40 7F08A3D0 0FC26C01 */ jal get_num_players +/* 0BEF44 7F08A3D4 00000000 */ nop +/* 0BEF48 7F08A3D8 28410002 */ slti $at, $v0, 2 +/* 0BEF4C 7F08A3DC 14200036 */ bnez $at, .Ljp7F08A4B8 +/* 0BEF50 7F08A3E0 00000000 */ nop +/* 0BEF54 7F08A3E4 0FC26F3C */ jal get_cur_playernum +/* 0BEF58 7F08A3E8 00000000 */ nop +/* 0BEF5C 7F08A3EC AFA2002C */ sw $v0, 0x2c($sp) +/* 0BEF60 7F08A3F0 0FC05202 */ jal get_scenario +/* 0BEF64 7F08A3F4 AFA00028 */ sw $zero, 0x28($sp) +/* 0BEF68 7F08A3F8 24010003 */ li $at, 3 +/* 0BEF6C 7F08A3FC 14410006 */ bne $v0, $at, .Ljp7F08A418 +/* 0BEF70 7F08A400 00000000 */ nop +/* 0BEF74 7F08A404 0FC23649 */ jal checkforgoldengun +/* 0BEF78 7F08A408 00000000 */ nop +/* 0BEF7C 7F08A40C 10400002 */ beqz $v0, .Ljp7F08A418 +/* 0BEF80 7F08A410 240F0001 */ li $t7, 1 +/* 0BEF84 7F08A414 AFAF0028 */ sw $t7, 0x28($sp) +.Ljp7F08A418: +/* 0BEF88 7F08A418 0FC15B1E */ jal drop_inventory +/* 0BEF8C 7F08A41C 00000000 */ nop +/* 0BEF90 7F08A420 8FB8002C */ lw $t8, 0x2c($sp) +/* 0BEF94 7F08A424 8FB9004C */ lw $t9, 0x4c($sp) +/* 0BEF98 7F08A428 13190003 */ beq $t8, $t9, .Ljp7F08A438 +/* 0BEF9C 7F08A42C 00000000 */ nop +/* 0BEFA0 7F08A430 0FC1ABD2 */ jal increment_num_deaths +/* 0BEFA4 7F08A434 00000000 */ nop +.Ljp7F08A438: +/* 0BEFA8 7F08A438 0FC26F2B */ jal set_cur_player +/* 0BEFAC 7F08A43C 8FA4004C */ lw $a0, 0x4c($sp) +/* 0BEFB0 7F08A440 8FA8002C */ lw $t0, 0x2c($sp) +/* 0BEFB4 7F08A444 8FA9004C */ lw $t1, 0x4c($sp) +/* 0BEFB8 7F08A448 15090005 */ bne $t0, $t1, .Ljp7F08A460 +/* 0BEFBC 7F08A44C 00000000 */ nop +/* 0BEFC0 7F08A450 0FC1AC01 */ jal increment_num_suicides_display_MP +/* 0BEFC4 7F08A454 00000000 */ nop +/* 0BEFC8 7F08A458 10000008 */ b .Ljp7F08A47C +/* 0BEFCC 7F08A45C 00000000 */ nop +.Ljp7F08A460: +/* 0BEFD0 7F08A460 0FC1AB5B */ jal increment_num_kills_display_text_in_MP +/* 0BEFD4 7F08A464 00000000 */ nop +/* 0BEFD8 7F08A468 8FAA0028 */ lw $t2, 0x28($sp) +/* 0BEFDC 7F08A46C 11400003 */ beqz $t2, .Ljp7F08A47C +/* 0BEFE0 7F08A470 00000000 */ nop +/* 0BEFE4 7F08A474 0FC1ABC8 */ jal increment_num_times_killed_MwtGC +/* 0BEFE8 7F08A478 00000000 */ nop +.Ljp7F08A47C: +/* 0BEFEC 7F08A47C 0FC26F2B */ jal set_cur_player +/* 0BEFF0 7F08A480 8FA4002C */ lw $a0, 0x2c($sp) +/* 0BEFF4 7F08A484 8FAB004C */ lw $t3, 0x4c($sp) +/* 0BEFF8 7F08A488 8FAD002C */ lw $t5, 0x2c($sp) +/* 0BEFFC 7F08A48C 3C188008 */ lui $t8, %hi(player1_player_data) # $t8, 0x8008 +/* 0BF000 7F08A490 000B60C0 */ sll $t4, $t3, 3 +/* 0BF004 7F08A494 018B6023 */ subu $t4, $t4, $t3 +/* 0BF008 7F08A498 000C6100 */ sll $t4, $t4, 4 +/* 0BF00C 7F08A49C 000D7080 */ sll $t6, $t5, 2 +/* 0BF010 7F08A4A0 018E7821 */ addu $t7, $t4, $t6 +/* 0BF014 7F08A4A4 27189F60 */ addiu $t8, %lo(player1_player_data) # addiu $t8, $t8, -0x60a0 +/* 0BF018 7F08A4A8 01F81021 */ addu $v0, $t7, $t8 +/* 0BF01C 7F08A4AC 8C590024 */ lw $t9, 0x24($v0) +/* 0BF020 7F08A4B0 27280001 */ addiu $t0, $t9, 1 +/* 0BF024 7F08A4B4 AC480024 */ sw $t0, 0x24($v0) +.Ljp7F08A4B8: +/* 0BF028 7F08A4B8 0FC2279F */ jal kill_current_player +/* 0BF02C 7F08A4BC 00000000 */ nop +/* 0BF030 7F08A4C0 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BF034 7F08A4C4 44806000 */ mtc1 $zero, $f12 +/* 0BF038 7F08A4C8 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +.Ljp7F08A4CC: +/* 0BF03C 7F08A4CC C44800F4 */ lwc1 $f8, 0xf4($v0) +.Ljp7F08A4D0: +/* 0BF040 7F08A4D0 C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 0BF044 7F08A4D4 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0BF048 7F08A4D8 460C403C */ c.lt.s $f8, $f12 +/* 0BF04C 7F08A4DC 00000000 */ nop +/* 0BF050 7F08A4E0 4502000F */ bc1fl .Ljp7F08A520 +/* 0BF054 7F08A4E4 E44C00F4 */ swc1 $f12, 0xf4($v0) +/* 0BF058 7F08A4E8 460A5400 */ add.s $f16, $f10, $f10 +/* 0BF05C 7F08A4EC C4460180 */ lwc1 $f6, 0x180($v0) +/* 0BF060 7F08A4F0 46103100 */ add.s $f4, $f6, $f16 +/* 0BF064 7F08A4F4 E4440180 */ swc1 $f4, 0x180($v0) +/* 0BF068 7F08A4F8 C7B20048 */ lwc1 $f18, 0x48($sp) +/* 0BF06C 7F08A4FC 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BF070 7F08A500 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF074 7F08A504 46129200 */ add.s $f8, $f18, $f18 +/* 0BF078 7F08A508 C44A0188 */ lwc1 $f10, 0x188($v0) +/* 0BF07C 7F08A50C 46085180 */ add.s $f6, $f10, $f8 +/* 0BF080 7F08A510 E4460188 */ swc1 $f6, 0x188($v0) +/* 0BF084 7F08A514 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BF088 7F08A518 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF08C 7F08A51C E44C00F4 */ swc1 $f12, 0xf4($v0) +.Ljp7F08A520: +/* 0BF090 7F08A520 8D29A120 */ lw $t1, %lo(pPlayer)($t1) +/* 0BF094 7F08A524 0FC3021B */ jal get_controls_locked_flag +/* 0BF098 7F08A528 E52C00F8 */ swc1 $f12, 0xf8($t1) +/* 0BF09C 7F08A52C 14400005 */ bnez $v0, .Ljp7F08A544 +/* 0BF0A0 7F08A530 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0BF0A4 7F08A534 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0BF0A8 7F08A538 24050044 */ li $a1, 68 +/* 0BF0AC 7F08A53C 0C002386 */ jal play_sfx_a1 +/* 0BF0B0 7F08A540 00003025 */ move $a2, $zero +.Ljp7F08A544: +/* 0BF0B4 7F08A544 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08A548: +/* 0BF0B8 7F08A548 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0BF0BC 7F08A54C 03E00008 */ jr $ra +/* 0BF0C0 7F08A550 00000000 */ nop +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F089E4C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F089E4C +/* 0BE97C 7F089E4C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0BE980 7F089E50 AFBF001C */ sw $ra, 0x1c($sp) +/* 0BE984 7F089E54 E7AC0028 */ swc1 $f12, 0x28($sp) +/* 0BE988 7F089E58 E7AE002C */ swc1 $f14, 0x2c($sp) +/* 0BE98C 7F089E5C AFA60030 */ sw $a2, 0x30($sp) +/* 0BE990 7F089E60 AFA70034 */ sw $a3, 0x34($sp) +/* 0BE994 7F089E64 0FC15FAB */ jal sinf +/* 0BE998 7F089E68 C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 0BE99C 7F089E6C E7A00020 */ swc1 $f0, 0x20($sp) +/* 0BE9A0 7F089E70 0FC15FA8 */ jal cosf +/* 0BE9A4 7F089E74 C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 0BE9A8 7F089E78 8FAE0034 */ lw $t6, 0x34($sp) +/* 0BE9AC 7F089E7C 44060000 */ mfc1 $a2, $f0 +/* 0BE9B0 7F089E80 C7AC0028 */ lwc1 $f12, 0x28($sp) +/* 0BE9B4 7F089E84 C7AE0020 */ lwc1 $f14, 0x20($sp) +/* 0BE9B8 7F089E88 8FA70030 */ lw $a3, 0x30($sp) +/* 0BE9BC 7F089E8C 0FC22647 */ jal record_damage_kills +/* 0BE9C0 7F089E90 AFAE0010 */ sw $t6, 0x10($sp) +/* 0BE9C4 7F089E94 8FBF001C */ lw $ra, 0x1c($sp) +/* 0BE9C8 7F089E98 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0BE9CC 7F089E9C 03E00008 */ jr $ra +/* 0BE9D0 7F089EA0 00000000 */ nop +) +#endif + + + + + +#ifdef VERSION_US +int check_if_bond_is_invincible(void) { + return (pPlayer->damageshowtime < 0) ^ 1; +} +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel check_if_bond_is_invincible +/* 0BF11C 7F08A5AC 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0BF120 7F08A5B0 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0BF124 7F08A5B4 44803000 */ mtc1 $zero, $f6 +/* 0BF128 7F08A5B8 00001025 */ move $v0, $zero +/* 0BF12C 7F08A5BC C5C400F4 */ lwc1 $f4, 0xf4($t6) +/* 0BF130 7F08A5C0 4604303E */ c.le.s $f6, $f4 +/* 0BF134 7F08A5C4 00000000 */ nop +/* 0BF138 7F08A5C8 45000002 */ bc1f .Ljp7F08A5D4 +/* 0BF13C 7F08A5CC 00000000 */ nop +/* 0BF140 7F08A5D0 24020001 */ li $v0, 1 +.Ljp7F08A5D4: +/* 0BF144 7F08A5D4 03E00008 */ jr $ra +/* 0BF148 7F08A5D8 00000000 */ nop +) +#endif + + +#ifdef VERSION_US +int check_if_healthbar_timer_greater_than_0(void) { + return (0 < pPlayer->healthshowtime); +} +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel check_if_healthbar_timer_greater_than_0 +/* 0BF14C 7F08A5DC 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0BF150 7F08A5E0 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0BF154 7F08A5E4 44802000 */ mtc1 $zero, $f4 +/* 0BF158 7F08A5E8 00001025 */ move $v0, $zero +/* 0BF15C 7F08A5EC C5C600F8 */ lwc1 $f6, 0xf8($t6) +/* 0BF160 7F08A5F0 4606203C */ c.lt.s $f4, $f6 +/* 0BF164 7F08A5F4 00000000 */ nop +/* 0BF168 7F08A5F8 45000002 */ bc1f .Ljp7F08A604 +/* 0BF16C 7F08A5FC 00000000 */ nop +/* 0BF170 7F08A600 24020001 */ li $v0, 1 +.Ljp7F08A604: +/* 0BF174 7F08A604 03E00008 */ jr $ra +/* 0BF178 7F08A608 00000000 */ nop +) +#endif + + + + +f32 get_BONDdata_bondfadefracnew(void) { + return pPlayer->bondfadefracnew; +} + + + + + +f32 get_curplay_horizontal_rotation_in_degrees(void) { + return ((360.0f - pPlayer->vv_theta) * 6.2831855f) / 360.0f; +} + + + + + + +f32 get_curplay_vertical_rotation_in_degrees(void) { + return (pPlayer->vv_verta * 6.2831855f) / 360.0f; +} + + + +s32 sub_GAME_7F089F38(void) { + return pPlayer->field_D0; +} + + + + + + +void set_bondata_invincible_flag(u32 arg0) { + pPlayer->bondinvincible = arg0; +} + + + + + +u8 get_bondata_invincible_flag(void) { + return pPlayer->bondinvincible; +} + + + +void set_invisible_to_guards_flag(s32 param_1) { + invisible_to_guards_flag = param_1; +} + +s32 get_invisible_to_guards_flag(void) { + return invisible_to_guards_flag; +} + +void set_obj_collision_flag(s32 flag) { + obj_collision_flag = flag; +} + +s32 get_obj_collision_flag(void) { + return obj_collision_flag; +} + + + + + + +#ifdef NONMATCHING +void get_cur_players_room(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_cur_players_room +/* 0BEAC8 7F089F98 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BEACC 7F089F9C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0BEAD0 7F089FA0 24010001 */ li $at, 1 +/* 0BEAD4 7F089FA4 8C6E0000 */ lw $t6, ($v1) +/* 0BEAD8 7F089FA8 55C10007 */ bnel $t6, $at, .L7F089FC8 +/* 0BEADC 7F089FAC 8C6F04D8 */ lw $t7, 0x4d8($v1) +/* 0BEAE0 7F089FB0 8C640034 */ lw $a0, 0x34($v1) +/* 0BEAE4 7F089FB4 50800004 */ beql $a0, $zero, .L7F089FC8 +/* 0BEAE8 7F089FB8 8C6F04D8 */ lw $t7, 0x4d8($v1) +/* 0BEAEC 7F089FBC 03E00008 */ jr $ra +/* 0BEAF0 7F089FC0 90820003 */ lbu $v0, 3($a0) + +/* 0BEAF4 7F089FC4 8C6F04D8 */ lw $t7, 0x4d8($v1) +.L7F089FC8: +/* 0BEAF8 7F089FC8 91E20003 */ lbu $v0, 3($t7) +/* 0BEAFC 7F089FCC 03E00008 */ jr $ra +/* 0BEB00 7F089FD0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_BONDdata_position(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_BONDdata_position +/* 0BEB04 7F089FD4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BEB08 7F089FD8 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0BEB0C 7F089FDC 24010001 */ li $at, 1 +/* 0BEB10 7F089FE0 8C6E0000 */ lw $t6, ($v1) +/* 0BEB14 7F089FE4 246204B4 */ addiu $v0, $v1, 0x4b4 +/* 0BEB18 7F089FE8 15C10003 */ bne $t6, $at, .L7F089FF8 +/* 0BEB1C 7F089FEC 00000000 */ nop +/* 0BEB20 7F089FF0 03E00008 */ jr $ra +/* 0BEB24 7F089FF4 24620004 */ addiu $v0, $v1, 4 + +.L7F089FF8: +/* 0BEB28 7F089FF8 03E00008 */ jr $ra +/* 0BEB2C 7F089FFC 00000000 */ nop +) +#endif + + +int * get_BONDdata_position3(void) { + + if (pPlayer->unknown == 1) { + return (int *) &pPlayer->xpos3; + } + + return &pPlayer->field_4A4; +} + +int get_BONDdata_field408(void) { + return (int) &pPlayer->field_408; +} + +#ifdef NONMATCHING +void sub_GAME_7F08A03C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A03C +/* 0BEB6C 7F08A03C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0BEB70 7F08A040 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BEB74 7F08A044 AFA40020 */ sw $a0, 0x20($sp) +/* 0BEB78 7F08A048 0FC26C57 */ jal sub_GAME_7F09B15C +/* 0BEB7C 7F08A04C AFA50024 */ sw $a1, 0x24($sp) +/* 0BEB80 7F08A050 8FAE0020 */ lw $t6, 0x20($sp) +/* 0BEB84 7F08A054 AFA2001C */ sw $v0, 0x1c($sp) +/* 0BEB88 7F08A058 8DC40004 */ lw $a0, 4($t6) +/* 0BEB8C 7F08A05C 10800003 */ beqz $a0, .L7F08A06C +/* 0BEB90 7F08A060 00000000 */ nop +/* 0BEB94 7F08A064 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 0BEB98 7F08A068 8FA50024 */ lw $a1, 0x24($sp) +.L7F08A06C: +/* 0BEB9C 7F08A06C 3C048003 */ lui $a0, %hi(ptr_playerstank) +/* 0BEBA0 7F08A070 8C846450 */ lw $a0, %lo(ptr_playerstank)($a0) +/* 0BEBA4 7F08A074 50800004 */ beql $a0, $zero, .L7F08A088 +/* 0BEBA8 7F08A078 8FB8001C */ lw $t8, 0x1c($sp) +/* 0BEBAC 7F08A07C 0FC13C86 */ jal sub_GAME_7F04F218 +/* 0BEBB0 7F08A080 8FA50024 */ lw $a1, 0x24($sp) +/* 0BEBB4 7F08A084 8FB8001C */ lw $t8, 0x1c($sp) +.L7F08A088: +/* 0BEBB8 7F08A088 3C088008 */ lui $t0, %hi(ptr_BONDdata_p1) +/* 0BEBBC 7F08A08C 8FAF0024 */ lw $t7, 0x24($sp) +/* 0BEBC0 7F08A090 0018C880 */ sll $t9, $t8, 2 +/* 0BEBC4 7F08A094 01194021 */ addu $t0, $t0, $t9 +/* 0BEBC8 7F08A098 8D089EE0 */ lw $t0, %lo(ptr_BONDdata_p1)($t0) +/* 0BEBCC 7F08A09C AD0F00AC */ sw $t7, 0xac($t0) +/* 0BEBD0 7F08A0A0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BEBD4 7F08A0A4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0BEBD8 7F08A0A8 03E00008 */ jr $ra +/* 0BEBDC 7F08A0AC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08A0B0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A0B0 +/* 0BEBE0 7F08A0B0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0BEBE4 7F08A0B4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BEBE8 7F08A0B8 AFA50024 */ sw $a1, 0x24($sp) +/* 0BEBEC 7F08A0BC AFA60028 */ sw $a2, 0x28($sp) +/* 0BEBF0 7F08A0C0 0FC26C57 */ jal sub_GAME_7F09B15C +/* 0BEBF4 7F08A0C4 AFA7002C */ sw $a3, 0x2c($sp) +/* 0BEBF8 7F08A0C8 3C048008 */ lui $a0, %hi(ptr_BONDdata_p1) +/* 0BEBFC 7F08A0CC 24849EE0 */ addiu $a0, %lo(ptr_BONDdata_p1) # addiu $a0, $a0, -0x6120 +/* 0BEC00 7F08A0D0 00027080 */ sll $t6, $v0, 2 +/* 0BEC04 7F08A0D4 008E7821 */ addu $t7, $a0, $t6 +/* 0BEC08 7F08A0D8 8DF80000 */ lw $t8, ($t7) +/* 0BEC0C 7F08A0DC 8F1900AC */ lw $t9, 0xac($t8) +/* 0BEC10 7F08A0E0 53200029 */ beql $t9, $zero, .L7F08A188 +/* 0BEC14 7F08A0E4 8FAE0028 */ lw $t6, 0x28($sp) +/* 0BEC18 7F08A0E8 0FC26919 */ jal get_num_players +/* 0BEC1C 7F08A0EC AFA2001C */ sw $v0, 0x1c($sp) +/* 0BEC20 7F08A0F0 3C048008 */ lui $a0, %hi(ptr_BONDdata_p1) +/* 0BEC24 7F08A0F4 24050001 */ li $a1, 1 +/* 0BEC28 7F08A0F8 24849EE0 */ addiu $a0, %lo(ptr_BONDdata_p1) # addiu $a0, $a0, -0x6120 +/* 0BEC2C 7F08A0FC 10450006 */ beq $v0, $a1, .L7F08A118 +/* 0BEC30 7F08A100 8FA3001C */ lw $v1, 0x1c($sp) +/* 0BEC34 7F08A104 00034080 */ sll $t0, $v1, 2 +/* 0BEC38 7F08A108 00884821 */ addu $t1, $a0, $t0 +/* 0BEC3C 7F08A10C 8D2A0000 */ lw $t2, ($t1) +/* 0BEC40 7F08A110 8D4B00D8 */ lw $t3, 0xd8($t2) +/* 0BEC44 7F08A114 1560001B */ bnez $t3, .L7F08A184 +.L7F08A118: +/* 0BEC48 7F08A118 00036080 */ sll $t4, $v1, 2 +/* 0BEC4C 7F08A11C 008C1021 */ addu $v0, $a0, $t4 +/* 0BEC50 7F08A120 8C4D0000 */ lw $t5, ($v0) +/* 0BEC54 7F08A124 8FB80028 */ lw $t8, 0x28($sp) +/* 0BEC58 7F08A128 8DAE0000 */ lw $t6, ($t5) +/* 0BEC5C 7F08A12C 10AE0015 */ beq $a1, $t6, .L7F08A184 +/* 0BEC60 7F08A130 240F0004 */ li $t7, 4 +/* 0BEC64 7F08A134 AF0F0000 */ sw $t7, ($t8) +/* 0BEC68 7F08A138 8C590000 */ lw $t9, ($v0) +/* 0BEC6C 7F08A13C 8FA90024 */ lw $t1, 0x24($sp) +/* 0BEC70 7F08A140 272800B0 */ addiu $t0, $t9, 0xb0 +/* 0BEC74 7F08A144 AD280000 */ sw $t0, ($t1) +/* 0BEC78 7F08A148 8C4A0000 */ lw $t2, ($v0) +/* 0BEC7C 7F08A14C 8FAB0030 */ lw $t3, 0x30($sp) +/* 0BEC80 7F08A150 C5440070 */ lwc1 $f4, 0x70($t2) +/* 0BEC84 7F08A154 E5640000 */ swc1 $f4, ($t3) +/* 0BEC88 7F08A158 0FC225E0 */ jal sub_GAME_7F089780 +/* 0BEC8C 7F08A15C 8C440000 */ lw $a0, ($v0) +/* 0BEC90 7F08A160 8FAC0030 */ lw $t4, 0x30($sp) +/* 0BEC94 7F08A164 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0BEC98 7F08A168 44815000 */ mtc1 $at, $f10 +/* 0BEC9C 7F08A16C C5860000 */ lwc1 $f6, ($t4) +/* 0BECA0 7F08A170 8FAD002C */ lw $t5, 0x2c($sp) +/* 0BECA4 7F08A174 46060200 */ add.s $f8, $f0, $f6 +/* 0BECA8 7F08A178 460A4400 */ add.s $f16, $f8, $f10 +/* 0BECAC 7F08A17C 10000003 */ b .L7F08A18C +/* 0BECB0 7F08A180 E5B00000 */ swc1 $f16, ($t5) +.L7F08A184: +/* 0BECB4 7F08A184 8FAE0028 */ lw $t6, 0x28($sp) +.L7F08A188: +/* 0BECB8 7F08A188 ADC00000 */ sw $zero, ($t6) +.L7F08A18C: +/* 0BECBC 7F08A18C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BECC0 7F08A190 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0BECC4 7F08A194 03E00008 */ jr $ra +/* 0BECC8 7F08A198 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08A19C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A19C +/* 0BECCC 7F08A19C 3C0E8003 */ lui $t6, %hi(in_tank_flag) +/* 0BECD0 7F08A1A0 8DCE6448 */ lw $t6, %lo(in_tank_flag)($t6) +/* 0BECD4 7F08A1A4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0BECD8 7F08A1A8 24010001 */ li $at, 1 +/* 0BECDC 7F08A1AC 15C1000B */ bne $t6, $at, .L7F08A1DC +/* 0BECE0 7F08A1B0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BECE4 7F08A1B4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BECE8 7F08A1B8 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0BECEC 7F08A1BC 8C620000 */ lw $v0, ($v1) +/* 0BECF0 7F08A1C0 3C068003 */ lui $a2, %hi(D_80036464) +/* 0BECF4 7F08A1C4 8CC66464 */ lw $a2, %lo(D_80036464)($a2) +/* 0BECF8 7F08A1C8 244400B0 */ addiu $a0, $v0, 0xb0 +/* 0BECFC 7F08A1CC 0FC1F222 */ jal sub_GAME_7F07C888 +/* 0BED00 7F08A1D0 2445048C */ addiu $a1, $v0, 0x48c +/* 0BED04 7F08A1D4 10000024 */ b .L7F08A268 +/* 0BED08 7F08A1D8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08A1DC: +/* 0BED0C 7F08A1DC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0BED10 7F08A1E0 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0BED14 7F08A1E4 8C620000 */ lw $v0, ($v1) +/* 0BED18 7F08A1E8 C444048C */ lwc1 $f4, 0x48c($v0) +/* 0BED1C 7F08A1EC C44604B0 */ lwc1 $f6, 0x4b0($v0) +/* 0BED20 7F08A1F0 46062200 */ add.s $f8, $f4, $f6 +/* 0BED24 7F08A1F4 E44800B0 */ swc1 $f8, 0xb0($v0) +/* 0BED28 7F08A1F8 8C620000 */ lw $v0, ($v1) +/* 0BED2C 7F08A1FC C44A0494 */ lwc1 $f10, 0x494($v0) +/* 0BED30 7F08A200 E44A00B4 */ swc1 $f10, 0xb4($v0) +/* 0BED34 7F08A204 8C620000 */ lw $v0, ($v1) +/* 0BED38 7F08A208 C450048C */ lwc1 $f16, 0x48c($v0) +/* 0BED3C 7F08A20C E45000B8 */ swc1 $f16, 0xb8($v0) +/* 0BED40 7F08A210 8C620000 */ lw $v0, ($v1) +/* 0BED44 7F08A214 C4520494 */ lwc1 $f18, 0x494($v0) +/* 0BED48 7F08A218 C44404B0 */ lwc1 $f4, 0x4b0($v0) +/* 0BED4C 7F08A21C 46049180 */ add.s $f6, $f18, $f4 +/* 0BED50 7F08A220 E44600BC */ swc1 $f6, 0xbc($v0) +/* 0BED54 7F08A224 8C620000 */ lw $v0, ($v1) +/* 0BED58 7F08A228 C448048C */ lwc1 $f8, 0x48c($v0) +/* 0BED5C 7F08A22C C44A04B0 */ lwc1 $f10, 0x4b0($v0) +/* 0BED60 7F08A230 460A4401 */ sub.s $f16, $f8, $f10 +/* 0BED64 7F08A234 E45000C0 */ swc1 $f16, 0xc0($v0) +/* 0BED68 7F08A238 8C620000 */ lw $v0, ($v1) +/* 0BED6C 7F08A23C C4520494 */ lwc1 $f18, 0x494($v0) +/* 0BED70 7F08A240 E45200C4 */ swc1 $f18, 0xc4($v0) +/* 0BED74 7F08A244 8C620000 */ lw $v0, ($v1) +/* 0BED78 7F08A248 C444048C */ lwc1 $f4, 0x48c($v0) +/* 0BED7C 7F08A24C E44400C8 */ swc1 $f4, 0xc8($v0) +/* 0BED80 7F08A250 8C620000 */ lw $v0, ($v1) +/* 0BED84 7F08A254 C4460494 */ lwc1 $f6, 0x494($v0) +/* 0BED88 7F08A258 C44804B0 */ lwc1 $f8, 0x4b0($v0) +/* 0BED8C 7F08A25C 46083281 */ sub.s $f10, $f6, $f8 +/* 0BED90 7F08A260 E44A00CC */ swc1 $f10, 0xcc($v0) +/* 0BED94 7F08A264 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08A268: +/* 0BED98 7F08A268 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0BED9C 7F08A26C 03E00008 */ jr $ra +/* 0BEDA0 7F08A270 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08A274(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A274 +/* 0BEDA4 7F08A274 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0BEDA8 7F08A278 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BEDAC 7F08A27C AFA5001C */ sw $a1, 0x1c($sp) +/* 0BEDB0 7F08A280 AFA60020 */ sw $a2, 0x20($sp) +/* 0BEDB4 7F08A284 0FC26C57 */ jal sub_GAME_7F09B15C +/* 0BEDB8 7F08A288 AFA70024 */ sw $a3, 0x24($sp) +/* 0BEDBC 7F08A28C 3C0F8008 */ lui $t7, %hi(ptr_BONDdata_p1) +/* 0BEDC0 7F08A290 25EF9EE0 */ addiu $t7, %lo(ptr_BONDdata_p1) # addiu $t7, $t7, -0x6120 +/* 0BEDC4 7F08A294 00027080 */ sll $t6, $v0, 2 +/* 0BEDC8 7F08A298 01CF1821 */ addu $v1, $t6, $t7 +/* 0BEDCC 7F08A29C 8C780000 */ lw $t8, ($v1) +/* 0BEDD0 7F08A2A0 8FB9001C */ lw $t9, 0x1c($sp) +/* 0BEDD4 7F08A2A4 C70404B0 */ lwc1 $f4, 0x4b0($t8) +/* 0BEDD8 7F08A2A8 E7240000 */ swc1 $f4, ($t9) +/* 0BEDDC 7F08A2AC 0FC225E0 */ jal sub_GAME_7F089780 +/* 0BEDE0 7F08A2B0 8C640000 */ lw $a0, ($v1) +/* 0BEDE4 7F08A2B4 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0BEDE8 7F08A2B8 44811000 */ mtc1 $at, $f2 +/* 0BEDEC 7F08A2BC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0BEDF0 7F08A2C0 44813000 */ mtc1 $at, $f6 +/* 0BEDF4 7F08A2C4 8FA80020 */ lw $t0, 0x20($sp) +/* 0BEDF8 7F08A2C8 46060200 */ add.s $f8, $f0, $f6 +/* 0BEDFC 7F08A2CC 46024281 */ sub.s $f10, $f8, $f2 +/* 0BEE00 7F08A2D0 E50A0000 */ swc1 $f10, ($t0) +/* 0BEE04 7F08A2D4 8FA90024 */ lw $t1, 0x24($sp) +/* 0BEE08 7F08A2D8 E5220000 */ swc1 $f2, ($t1) +/* 0BEE0C 7F08A2DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BEE10 7F08A2E0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0BEE14 7F08A2E4 03E00008 */ jr $ra +/* 0BEE18 7F08A2E8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_BONDdata_watch_health(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_BONDdata_watch_health +/* 0BEE1C 7F08A2EC 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0BEE20 7F08A2F0 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0BEE24 7F08A2F4 03E00008 */ jr $ra +/* 0BEE28 7F08A2F8 C5C000DC */ lwc1 $f0, 0xdc($t6) +) +#endif + + + +f32 get_BONDdata_watch_armor(void) { + return pPlayer->bondarmour; +} + + + + + +#ifdef NONMATCHING +void add_BONDdata_watch_armor(void) { + +} +#else +GLOBAL_ASM( +.text +glabel add_BONDdata_watch_armor +/* 0BEE3C 7F08A30C 3C028008 */ lui $v0, %hi(pPlayersPerm) +/* 0BEE40 7F08A310 8C42A0B4 */ lw $v0, %lo(pPlayersPerm)($v0) +/* 0BEE44 7F08A314 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0BEE48 7F08A318 C4440040 */ lwc1 $f4, 0x40($v0) +/* 0BEE4C 7F08A31C 460C2180 */ add.s $f6, $f4, $f12 +/* 0BEE50 7F08A320 E4460040 */ swc1 $f6, 0x40($v0) +/* 0BEE54 7F08A324 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0BEE58 7F08A328 03E00008 */ jr $ra +/* 0BEE5C 7F08A32C E5CC00E0 */ swc1 $f12, 0xe0($t6) +) +#endif + + + + + +#ifdef NONMATCHING +void reset_intro_camera_message_dialogs_for_BONDdata(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel reset_intro_camera_message_dialogs_for_BONDdata +/* 0BEE60 7F08A330 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BEE64 7F08A334 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0BEE68 7F08A338 8C4E0000 */ lw $t6, ($v0) +/* 0BEE6C 7F08A33C 240FFFFF */ li $t7, -1 +/* 0BEE70 7F08A340 3C018003 */ lui $at, %hi(display_statusbar) +/* 0BEE74 7F08A344 ADC011D8 */ sw $zero, 0x11d8($t6) +/* 0BEE78 7F08A348 8C580000 */ lw $t8, ($v0) +/* 0BEE7C 7F08A34C 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 0BEE80 7F08A350 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall) +/* 0BEE84 7F08A354 AF0F11DC */ sw $t7, 0x11dc($t8) +/* 0BEE88 7F08A358 AC20689C */ sw $zero, %lo(display_statusbar)($at) +/* 0BEE8C 7F08A35C 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0BEE90 7F08A360 3C018003 */ lui $at, %hi(status_bar_text_buffer_index) +/* 0BEE94 7F08A364 AC206898 */ sw $zero, %lo(status_bar_text_buffer_index)($at) +/* 0BEE98 7F08A368 3C018003 */ lui $at, %hi(copy_1stfonttable) +/* 0BEE9C 7F08A36C 8D080EB0 */ lw $t0, %lo(ptrSecondFontTableSmall)($t0) +/* 0BEEA0 7F08A370 AC3968A0 */ sw $t9, %lo(copy_1stfonttable)($at) +/* 0BEEA4 7F08A374 3C018003 */ lui $at, %hi(copy_2ndfonttable) +/* 0BEEA8 7F08A378 03E00008 */ jr $ra +/* 0BEEAC 7F08A37C AC2868A4 */ sw $t0, %lo(copy_2ndfonttable)($at) +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel reset_intro_camera_message_dialogs_for_BONDdata +/* 0BF5D8 7F08AA68 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BF5DC 7F08AA6C 2442A120 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5ee0 +/* 0BF5E0 7F08AA70 8C4E0000 */ lw $t6, ($v0) +/* 0BF5E4 7F08AA74 240FFFFF */ li $t7, -1 +/* 0BF5E8 7F08AA78 3C018003 */ lui $at, %hi(display_statusbar) # $at, 0x8003 +/* 0BF5EC 7F08AA7C ADC011D8 */ sw $zero, 0x11d8($t6) +/* 0BF5F0 7F08AA80 8C580000 */ lw $t8, ($v0) +/* 0BF5F4 7F08AA84 AF0F11DC */ sw $t7, 0x11dc($t8) +/* 0BF5F8 7F08AA88 AC2068DC */ sw $zero, %lo(display_statusbar)($at) +/* 0BF5FC 7F08AA8C 3C018003 */ lui $at, %hi(status_bar_text_buffer_index) +/* 0BF600 7F08AA90 03E00008 */ jr $ra +/* 0BF604 7F08AA94 AC2068D8 */ sw $zero, %lo(status_bar_text_buffer_index)($at) +) +#endif + +#endif + + + +#ifdef NONMATCHING +void unset_flags_in_BONDdata_stationary_intro_cam(void) { + +} +#else +GLOBAL_ASM( +.text +glabel unset_flags_in_BONDdata_stationary_intro_cam +/* 0BEEB0 7F08A380 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BEEB4 7F08A384 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BEEB8 7F08A388 00807827 */ not $t7, $a0 +/* 0BEEBC 7F08A38C 8C4E11D8 */ lw $t6, 0x11d8($v0) +/* 0BEEC0 7F08A390 01CFC024 */ and $t8, $t6, $t7 +/* 0BEEC4 7F08A394 03E00008 */ jr $ra +/* 0BEEC8 7F08A398 AC5811D8 */ sw $t8, 0x11d8($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void set_flags_in_BONDdata_stationary_intro_cam(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_flags_in_BONDdata_stationary_intro_cam +/* 0BEECC 7F08A39C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BEED0 7F08A3A0 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BEED4 7F08A3A4 8C4E11D8 */ lw $t6, 0x11d8($v0) +/* 0BEED8 7F08A3A8 01C47825 */ or $t7, $t6, $a0 +/* 0BEEDC 7F08A3AC 03E00008 */ jr $ra +/* 0BEEE0 7F08A3B0 AC4F11D8 */ sw $t7, 0x11d8($v0) +) +#endif + + + + +#ifdef VERSION_US +#ifdef NONMATCHING +void sub_GAME_7F08A3B4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A3B4 +/* 0BEEE4 7F08A3B4 3C018003 */ lui $at, %hi(copy_2ndfonttable) +/* 0BEEE8 7F08A3B8 AC2468A4 */ sw $a0, %lo(copy_2ndfonttable)($at) +/* 0BEEEC 7F08A3BC 3C018003 */ lui $at, %hi(copy_1stfonttable) +/* 0BEEF0 7F08A3C0 03E00008 */ jr $ra +/* 0BEEF4 7F08A3C4 AC2568A0 */ sw $a1, %lo(copy_1stfonttable)($at) +) +#endif +#endif + + + + +#ifdef NONMATCHING +void display_string_in_lower_left_corner(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel display_string_in_lower_left_corner +/* 0BEEF8 7F08A3C8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0BEEFC 7F08A3CC AFBF0014 */ sw $ra, 0x14($sp) +/* 0BEF00 7F08A3D0 0FC26919 */ jal get_num_players +/* 0BEF04 7F08A3D4 AFA40028 */ sw $a0, 0x28($sp) +/* 0BEF08 7F08A3D8 24010001 */ li $at, 1 +/* 0BEF0C 7F08A3DC 14410020 */ bne $v0, $at, .L7F08A460 +/* 0BEF10 7F08A3E0 3C078003 */ lui $a3, %hi(display_statusbar) +/* 0BEF14 7F08A3E4 24E7689C */ addiu $a3, %lo(display_statusbar) # addiu $a3, $a3, 0x689c +/* 0BEF18 7F08A3E8 8CE30000 */ lw $v1, ($a3) +/* 0BEF1C 7F08A3EC 3C198008 */ lui $t9, %hi(dword_CODE_bss_80079A28) +/* 0BEF20 7F08A3F0 3C0E8003 */ lui $t6, %hi(status_bar_text_buffer_index) +/* 0BEF24 7F08A3F4 28610005 */ slti $at, $v1, 5 +/* 0BEF28 7F08A3F8 10200036 */ beqz $at, .L7F08A4D4 +/* 0BEF2C 7F08A3FC 27399A28 */ addiu $t9, %lo(dword_CODE_bss_80079A28) # addiu $t9, $t9, -0x65d8 +/* 0BEF30 7F08A400 8DCE6898 */ lw $t6, %lo(status_bar_text_buffer_index)($t6) +/* 0BEF34 7F08A404 24010005 */ li $at, 5 +/* 0BEF38 7F08A408 8FA50028 */ lw $a1, 0x28($sp) +/* 0BEF3C 7F08A40C 01C31021 */ addu $v0, $t6, $v1 +/* 0BEF40 7F08A410 0041001A */ div $zero, $v0, $at +/* 0BEF44 7F08A414 00007810 */ mfhi $t7 +/* 0BEF48 7F08A418 000FC080 */ sll $t8, $t7, 2 +/* 0BEF4C 7F08A41C 030FC023 */ subu $t8, $t8, $t7 +/* 0BEF50 7F08A420 0018C0C0 */ sll $t8, $t8, 3 +/* 0BEF54 7F08A424 030FC021 */ addu $t8, $t8, $t7 +/* 0BEF58 7F08A428 0018C080 */ sll $t8, $t8, 2 +/* 0BEF5C 7F08A42C 030FC021 */ addu $t8, $t8, $t7 +/* 0BEF60 7F08A430 03192021 */ addu $a0, $t8, $t9 +/* 0BEF64 7F08A434 AFA40018 */ sw $a0, 0x18($sp) +/* 0BEF68 7F08A438 0C0029E8 */ jal something_with_strings +/* 0BEF6C 7F08A43C 24060064 */ li $a2, 100 +/* 0BEF70 7F08A440 3C078003 */ lui $a3, %hi(display_statusbar) +/* 0BEF74 7F08A444 24E7689C */ addiu $a3, %lo(display_statusbar) # addiu $a3, $a3, 0x689c +/* 0BEF78 7F08A448 8CE80000 */ lw $t0, ($a3) +/* 0BEF7C 7F08A44C 8FA40018 */ lw $a0, 0x18($sp) +/* 0BEF80 7F08A450 25090001 */ addiu $t1, $t0, 1 +/* 0BEF84 7F08A454 ACE90000 */ sw $t1, ($a3) +/* 0BEF88 7F08A458 1000001E */ b .L7F08A4D4 +/* 0BEF8C 7F08A45C A0800064 */ sb $zero, 0x64($a0) +.L7F08A460: +/* 0BEF90 7F08A460 0FC26C54 */ jal get_cur_playernum +/* 0BEF94 7F08A464 00000000 */ nop +/* 0BEF98 7F08A468 00025080 */ sll $t2, $v0, 2 +/* 0BEF9C 7F08A46C 01425023 */ subu $t2, $t2, $v0 +/* 0BEFA0 7F08A470 000A50C0 */ sll $t2, $t2, 3 +/* 0BEFA4 7F08A474 01425021 */ addu $t2, $t2, $v0 +/* 0BEFA8 7F08A478 000A5080 */ sll $t2, $t2, 2 +/* 0BEFAC 7F08A47C 3C0B8008 */ lui $t3, %hi(dword_CODE_bss_80079A28) +/* 0BEFB0 7F08A480 256B9A28 */ addiu $t3, %lo(dword_CODE_bss_80079A28) # addiu $t3, $t3, -0x65d8 +/* 0BEFB4 7F08A484 01425021 */ addu $t2, $t2, $v0 +/* 0BEFB8 7F08A488 AFA20020 */ sw $v0, 0x20($sp) +/* 0BEFBC 7F08A48C 014B2021 */ addu $a0, $t2, $t3 +/* 0BEFC0 7F08A490 8FA50028 */ lw $a1, 0x28($sp) +/* 0BEFC4 7F08A494 0C0029E8 */ jal something_with_strings +/* 0BEFC8 7F08A498 24060064 */ li $a2, 100 +/* 0BEFCC 7F08A49C 8FAC0020 */ lw $t4, 0x20($sp) +/* 0BEFD0 7F08A4A0 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0BEFD4 7F08A4A4 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0BEFD8 7F08A4A8 000C6880 */ sll $t5, $t4, 2 +/* 0BEFDC 7F08A4AC 01AC6823 */ subu $t5, $t5, $t4 +/* 0BEFE0 7F08A4B0 000D68C0 */ sll $t5, $t5, 3 +/* 0BEFE4 7F08A4B4 01AC6821 */ addu $t5, $t5, $t4 +/* 0BEFE8 7F08A4B8 000D6880 */ sll $t5, $t5, 2 +/* 0BEFEC 7F08A4BC 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A28+100) +/* 0BEFF0 7F08A4C0 01AC6821 */ addu $t5, $t5, $t4 +/* 0BEFF4 7F08A4C4 002D0821 */ addu $at, $at, $t5 +/* 0BEFF8 7F08A4C8 A0209A8C */ sb $zero, %lo(dword_CODE_bss_80079A28+100)($at) +/* 0BEFFC 7F08A4CC 240E0078 */ li $t6, 120 +/* 0BF000 7F08A4D0 ADEE11DC */ sw $t6, 0x11dc($t7) +.L7F08A4D4: +/* 0BF004 7F08A4D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BF008 7F08A4D8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0BF00C 7F08A4DC 03E00008 */ jr $ra +/* 0BF010 7F08A4E0 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +//JP FIXME hardcoded pointer values +//id/find in data +//80079c80 +//80079c68 +GLOBAL_ASM( +.text +glabel display_string_in_lower_left_corner +/* 0BF63C 7F08AACC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0BF640 7F08AAD0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BF644 7F08AAD4 AFA40028 */ sw $a0, 0x28($sp) +/* 0BF648 7F08AAD8 AFA5002C */ sw $a1, 0x2c($sp) +/* 0BF64C 7F08AADC 0FC26C01 */ jal get_num_players +/* 0BF650 7F08AAE0 AFA60030 */ sw $a2, 0x30($sp) +/* 0BF654 7F08AAE4 24010001 */ li $at, 1 +/* 0BF658 7F08AAE8 1441002B */ bne $v0, $at, .L7F08AB98 +/* 0BF65C 7F08AAEC 3C088003 */ lui $t0, %hi(display_statusbar) # $t0, 0x8003 +/* 0BF660 7F08AAF0 250868DC */ addiu $t0, %lo(display_statusbar) # addiu $t0, $t0, 0x68dc +/* 0BF664 7F08AAF4 8D020000 */ lw $v0, ($t0) +/* 0BF668 7F08AAF8 3C198008 */ lui $t9, %hi(dword_CODE_bss_80079A28) # $t9, 0x8008 +/* 0BF66C 7F08AAFC 3C0E8003 */ lui $t6, %hi(status_bar_text_buffer_index) # $t6, 0x8003 +/* 0BF670 7F08AB00 28410005 */ slti $at, $v0, 5 +/* 0BF674 7F08AB04 1020004A */ beqz $at, .L7F08AC30 +/* 0BF678 7F08AB08 27399A68 */ addiu $t9, %lo(dword_CODE_bss_80079A28) # addiu $t9, $t9, -0x6598 +/* 0BF67C 7F08AB0C 8DCE68D8 */ lw $t6, %lo(status_bar_text_buffer_index)($t6) +/* 0BF680 7F08AB10 24010005 */ li $at, 5 +/* 0BF684 7F08AB14 8FA50028 */ lw $a1, 0x28($sp) +/* 0BF688 7F08AB18 01C23821 */ addu $a3, $t6, $v0 +/* 0BF68C 7F08AB1C 00E1001A */ div $zero, $a3, $at +/* 0BF690 7F08AB20 00007810 */ mfhi $t7 +/* 0BF694 7F08AB24 000FC080 */ sll $t8, $t7, 2 +/* 0BF698 7F08AB28 030FC023 */ subu $t8, $t8, $t7 +/* 0BF69C 7F08AB2C 0018C0C0 */ sll $t8, $t8, 3 +/* 0BF6A0 7F08AB30 030FC021 */ addu $t8, $t8, $t7 +/* 0BF6A4 7F08AB34 0018C080 */ sll $t8, $t8, 2 +/* 0BF6A8 7F08AB38 030FC021 */ addu $t8, $t8, $t7 +/* 0BF6AC 7F08AB3C 03192021 */ addu $a0, $t8, $t9 +/* 0BF6B0 7F08AB40 AFA40018 */ sw $a0, 0x18($sp) +/* 0BF6B4 7F08AB44 AFAF0024 */ sw $t7, 0x24($sp) +/* 0BF6B8 7F08AB48 0C0029EC */ jal something_with_strings +/* 0BF6BC 7F08AB4C 24060064 */ li $a2, 100 +/* 0BF6C0 7F08AB50 8FA70024 */ lw $a3, 0x24($sp) +/* 0BF6C4 7F08AB54 8FA40018 */ lw $a0, 0x18($sp) +/* 0BF6C8 7F08AB58 8FA9002C */ lw $t1, 0x2c($sp) +/* 0BF6CC 7F08AB5C 3C018008 */ lui $at, %hi(0x80079C80) +/* 0BF6D0 7F08AB60 00071880 */ sll $v1, $a3, 2 +/* 0BF6D4 7F08AB64 00230821 */ addu $at, $at, $v1 +/* 0BF6D8 7F08AB68 A0800064 */ sb $zero, 0x64($a0) +/* 0BF6DC 7F08AB6C 8FAA0030 */ lw $t2, 0x30($sp) +/* 0BF6E0 7F08AB70 AC299C80 */ sw $t1, %lo(0x80079C80)($at) +/* 0BF6E4 7F08AB74 3C018008 */ lui $at, %hi(0x80079C68) +/* 0BF6E8 7F08AB78 3C088003 */ lui $t0, %hi(display_statusbar) # $t0, 0x8003 +/* 0BF6EC 7F08AB7C 00230821 */ addu $at, $at, $v1 +/* 0BF6F0 7F08AB80 250868DC */ addiu $t0, %lo(display_statusbar) # addiu $t0, $t0, 0x68dc +/* 0BF6F4 7F08AB84 AC2A9C68 */ sw $t2, %lo(0x80079C68)($at) +/* 0BF6F8 7F08AB88 8D0B0000 */ lw $t3, ($t0) +/* 0BF6FC 7F08AB8C 256C0001 */ addiu $t4, $t3, 1 +/* 0BF700 7F08AB90 10000027 */ b .L7F08AC30 +/* 0BF704 7F08AB94 AD0C0000 */ sw $t4, ($t0) +.L7F08AB98: +/* 0BF708 7F08AB98 0FC26F3C */ jal get_cur_playernum +/* 0BF70C 7F08AB9C 00000000 */ nop +/* 0BF710 7F08ABA0 00026880 */ sll $t5, $v0, 2 +/* 0BF714 7F08ABA4 01A26823 */ subu $t5, $t5, $v0 +/* 0BF718 7F08ABA8 000D68C0 */ sll $t5, $t5, 3 +/* 0BF71C 7F08ABAC 01A26821 */ addu $t5, $t5, $v0 +/* 0BF720 7F08ABB0 000D6880 */ sll $t5, $t5, 2 +/* 0BF724 7F08ABB4 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_80079A28) # $t6, 0x8008 +/* 0BF728 7F08ABB8 25CE9A68 */ addiu $t6, %lo(dword_CODE_bss_80079A28) # addiu $t6, $t6, -0x6598 +/* 0BF72C 7F08ABBC 01A26821 */ addu $t5, $t5, $v0 +/* 0BF730 7F08ABC0 01AE2021 */ addu $a0, $t5, $t6 +/* 0BF734 7F08ABC4 8FA50028 */ lw $a1, 0x28($sp) +/* 0BF738 7F08ABC8 24060064 */ li $a2, 100 +/* 0BF73C 7F08ABCC 0C0029EC */ jal something_with_strings +/* 0BF740 7F08ABD0 AFA20020 */ sw $v0, 0x20($sp) +/* 0BF744 7F08ABD4 8FA70020 */ lw $a3, 0x20($sp) +/* 0BF748 7F08ABD8 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A28+0x64) #dword_CODE_bss_80079A28 +/* 0BF74C 7F08ABDC 8FB8002C */ lw $t8, 0x2c($sp) +/* 0BF750 7F08ABE0 00077880 */ sll $t7, $a3, 2 +/* 0BF754 7F08ABE4 01E77823 */ subu $t7, $t7, $a3 +/* 0BF758 7F08ABE8 000F78C0 */ sll $t7, $t7, 3 +/* 0BF75C 7F08ABEC 01E77821 */ addu $t7, $t7, $a3 +/* 0BF760 7F08ABF0 000F7880 */ sll $t7, $t7, 2 +/* 0BF764 7F08ABF4 01E77821 */ addu $t7, $t7, $a3 +/* 0BF768 7F08ABF8 002F0821 */ addu $at, $at, $t7 +/* 0BF76C 7F08ABFC A0209ACC */ sb $zero, %lo(dword_CODE_bss_80079A28+0x64)($at) +/* 0BF770 7F08AC00 3C018008 */ lui $at, 0x8008 +/* 0BF774 7F08AC04 00071880 */ sll $v1, $a3, 2 +/* 0BF778 7F08AC08 00230821 */ addu $at, $at, $v1 +/* 0BF77C 7F08AC0C 8FB90030 */ lw $t9, 0x30($sp) +/* 0BF780 7F08AC10 3C0A8008 */ lui $t2, %hi(pPlayer) # $t2, 0x8008 +/* 0BF784 7F08AC14 AC389C80 */ sw $t8, -0x6380($at) +/* 0BF788 7F08AC18 8D4AA120 */ lw $t2, %lo(pPlayer)($t2) +/* 0BF78C 7F08AC1C 3C018008 */ lui $at, 0x8008 +/* 0BF790 7F08AC20 00230821 */ addu $at, $at, $v1 +/* 0BF794 7F08AC24 24090078 */ li $t1, 120 +/* 0BF798 7F08AC28 AC399C68 */ sw $t9, -0x6398($at) +/* 0BF79C 7F08AC2C AD4911DC */ sw $t1, 0x11dc($t2) +.L7F08AC30: +/* 0BF7A0 7F08AC30 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BF7A4 7F08AC34 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0BF7A8 7F08AC38 03E00008 */ jr $ra +/* 0BF7AC 7F08AC3C 00000000 */ nop +) +#endif + +#endif + +#ifdef VERSION_JP +void jp_display_string_in_lower_left_corner(char *string) +{ + display_string_in_lower_left_corner(string,ptrSecondFontTableSmall,ptrFirstFontTableSmall); +} +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F08A4E4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A4E4 +/* 0BF014 7F08A4E4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BF018 7F08A4E8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF01C 7F08A4EC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0BF020 7F08A4F0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BF024 7F08A4F4 8C4E11D8 */ lw $t6, 0x11d8($v0) +/* 0BF028 7F08A4F8 55C0003D */ bnezl $t6, .L7F08A5F0 +/* 0BF02C 7F08A4FC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BF030 7F08A500 8C4F29C4 */ lw $t7, 0x29c4($v0) +/* 0BF034 7F08A504 55E0003A */ bnezl $t7, .L7F08A5F0 +/* 0BF038 7F08A508 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BF03C 7F08A50C 8C4311DC */ lw $v1, 0x11dc($v0) +/* 0BF040 7F08A510 3C188005 */ lui $t8, %hi(clock_timer) +/* 0BF044 7F08A514 04600022 */ bltz $v1, .L7F08A5A0 +/* 0BF048 7F08A518 00000000 */ nop +/* 0BF04C 7F08A51C 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 0BF050 7F08A520 0078C823 */ subu $t9, $v1, $t8 +/* 0BF054 7F08A524 0FC26919 */ jal get_num_players +/* 0BF058 7F08A528 AC5911DC */ sw $t9, 0x11dc($v0) +/* 0BF05C 7F08A52C 24010001 */ li $at, 1 +/* 0BF060 7F08A530 1441001B */ bne $v0, $at, .L7F08A5A0 +/* 0BF064 7F08A534 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BF068 7F08A538 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF06C 7F08A53C 8C4311DC */ lw $v1, 0x11dc($v0) +/* 0BF070 7F08A540 0461000F */ bgez $v1, .L7F08A580 +/* 0BF074 7F08A544 00000000 */ nop +/* 0BF078 7F08A548 3C028003 */ lui $v0, %hi(status_bar_text_buffer_index) +/* 0BF07C 7F08A54C 24426898 */ addiu $v0, %lo(status_bar_text_buffer_index) # addiu $v0, $v0, 0x6898 +/* 0BF080 7F08A550 8C480000 */ lw $t0, ($v0) +/* 0BF084 7F08A554 24010005 */ li $at, 5 +/* 0BF088 7F08A558 3C0B8003 */ lui $t3, %hi(display_statusbar) +/* 0BF08C 7F08A55C 25090001 */ addiu $t1, $t0, 1 +/* 0BF090 7F08A560 0121001A */ div $zero, $t1, $at +/* 0BF094 7F08A564 00005010 */ mfhi $t2 +/* 0BF098 7F08A568 AC4A0000 */ sw $t2, ($v0) +/* 0BF09C 7F08A56C 8D6B689C */ lw $t3, %lo(display_statusbar)($t3) +/* 0BF0A0 7F08A570 3C018003 */ lui $at, %hi(display_statusbar) +/* 0BF0A4 7F08A574 256CFFFF */ addiu $t4, $t3, -1 +/* 0BF0A8 7F08A578 10000009 */ b .L7F08A5A0 +/* 0BF0AC 7F08A57C AC2C689C */ sw $t4, %lo(display_statusbar)($at) +.L7F08A580: +/* 0BF0B0 7F08A580 3C0D8003 */ lui $t5, %hi(display_statusbar) +/* 0BF0B4 7F08A584 8DAD689C */ lw $t5, %lo(display_statusbar)($t5) +/* 0BF0B8 7F08A588 29A10002 */ slti $at, $t5, 2 +/* 0BF0BC 7F08A58C 14200004 */ bnez $at, .L7F08A5A0 +/* 0BF0C0 7F08A590 2861001F */ slti $at, $v1, 0x1f +/* 0BF0C4 7F08A594 14200002 */ bnez $at, .L7F08A5A0 +/* 0BF0C8 7F08A598 240E001E */ li $t6, 30 +/* 0BF0CC 7F08A59C AC4E11DC */ sw $t6, 0x11dc($v0) +.L7F08A5A0: +/* 0BF0D0 7F08A5A0 0FC26919 */ jal get_num_players +/* 0BF0D4 7F08A5A4 00000000 */ nop +/* 0BF0D8 7F08A5A8 24010001 */ li $at, 1 +/* 0BF0DC 7F08A5AC 1441000F */ bne $v0, $at, .L7F08A5EC +/* 0BF0E0 7F08A5B0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BF0E4 7F08A5B4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF0E8 7F08A5B8 3C038003 */ lui $v1, %hi(display_statusbar) +/* 0BF0EC 7F08A5BC 8C4F11DC */ lw $t7, 0x11dc($v0) +/* 0BF0F0 7F08A5C0 05E3000B */ bgezl $t7, .L7F08A5F0 +/* 0BF0F4 7F08A5C4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BF0F8 7F08A5C8 8C63689C */ lw $v1, %lo(display_statusbar)($v1) +/* 0BF0FC 7F08A5CC 18600007 */ blez $v1, .L7F08A5EC +/* 0BF100 7F08A5D0 28610002 */ slti $at, $v1, 2 +/* 0BF104 7F08A5D4 14200004 */ bnez $at, .L7F08A5E8 +/* 0BF108 7F08A5D8 24190078 */ li $t9, 120 +/* 0BF10C 7F08A5DC 2418001E */ li $t8, 30 +/* 0BF110 7F08A5E0 10000002 */ b .L7F08A5EC +/* 0BF114 7F08A5E4 AC5811DC */ sw $t8, 0x11dc($v0) +.L7F08A5E8: +/* 0BF118 7F08A5E8 AC5911DC */ sw $t9, 0x11dc($v0) +.L7F08A5EC: +/* 0BF11C 7F08A5EC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08A5F0: +/* 0BF120 7F08A5F0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0BF124 7F08A5F4 03E00008 */ jr $ra +/* 0BF128 7F08A5F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08A5FC(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A5FC +/* 0BF12C 7F08A5FC 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BF130 7F08A600 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF134 7F08A604 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0BF138 7F08A608 AFBF0034 */ sw $ra, 0x34($sp) +/* 0BF13C 7F08A60C AFA40060 */ sw $a0, 0x60($sp) +/* 0BF140 7F08A610 8C4E11D8 */ lw $t6, 0x11d8($v0) +/* 0BF144 7F08A614 55C000B6 */ bnezl $t6, .L7F08A8F0 +/* 0BF148 7F08A618 8FBF0034 */ lw $ra, 0x34($sp) +/* 0BF14C 7F08A61C 8C4F11DC */ lw $t7, 0x11dc($v0) +/* 0BF150 7F08A620 05E200B3 */ bltzl $t7, .L7F08A8F0 +/* 0BF154 7F08A624 8FBF0034 */ lw $ra, 0x34($sp) +/* 0BF158 7F08A628 8C5829C4 */ lw $t8, 0x29c4($v0) +/* 0BF15C 7F08A62C 570000B0 */ bnezl $t8, .L7F08A8F0 +/* 0BF160 7F08A630 8FBF0034 */ lw $ra, 0x34($sp) +/* 0BF164 7F08A634 0FC26919 */ jal get_num_players +/* 0BF168 7F08A638 AFA0005C */ sw $zero, 0x5c($sp) +/* 0BF16C 7F08A63C 24010001 */ li $at, 1 +/* 0BF170 7F08A640 14410010 */ bne $v0, $at, .L7F08A684 +/* 0BF174 7F08A644 8FA3005C */ lw $v1, 0x5c($sp) +/* 0BF178 7F08A648 3C198003 */ lui $t9, %hi(status_bar_text_buffer_index) +/* 0BF17C 7F08A64C 8F396898 */ lw $t9, %lo(status_bar_text_buffer_index)($t9) +/* 0BF180 7F08A650 3C098008 */ lui $t1, %hi(dword_CODE_bss_80079A28) +/* 0BF184 7F08A654 00194080 */ sll $t0, $t9, 2 +/* 0BF188 7F08A658 01194023 */ subu $t0, $t0, $t9 +/* 0BF18C 7F08A65C 000840C0 */ sll $t0, $t0, 3 +/* 0BF190 7F08A660 01194021 */ addu $t0, $t0, $t9 +/* 0BF194 7F08A664 00084080 */ sll $t0, $t0, 2 +/* 0BF198 7F08A668 01194021 */ addu $t0, $t0, $t9 +/* 0BF19C 7F08A66C 01284821 */ addu $t1, $t1, $t0 +/* 0BF1A0 7F08A670 91299A28 */ lbu $t1, %lo(dword_CODE_bss_80079A28)($t1) +/* 0BF1A4 7F08A674 1120000D */ beqz $t1, .L7F08A6AC +/* 0BF1A8 7F08A678 00000000 */ nop +/* 0BF1AC 7F08A67C 1000000B */ b .L7F08A6AC +/* 0BF1B0 7F08A680 24030001 */ li $v1, 1 +.L7F08A684: +/* 0BF1B4 7F08A684 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0BF1B8 7F08A688 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0BF1BC 7F08A68C 8D4B11DC */ lw $t3, 0x11dc($t2) +/* 0BF1C0 7F08A690 05600006 */ bltz $t3, .L7F08A6AC +/* 0BF1C4 7F08A694 00000000 */ nop +/* 0BF1C8 7F08A698 0FC26C54 */ jal get_cur_playernum +/* 0BF1CC 7F08A69C 00000000 */ nop +/* 0BF1D0 7F08A6A0 3C018003 */ lui $at, %hi(status_bar_text_buffer_index) +/* 0BF1D4 7F08A6A4 AC226898 */ sw $v0, %lo(status_bar_text_buffer_index)($at) +/* 0BF1D8 7F08A6A8 24030001 */ li $v1, 1 +.L7F08A6AC: +/* 0BF1DC 7F08A6AC 50600090 */ beql $v1, $zero, .L7F08A8F0 +/* 0BF1E0 7F08A6B0 8FBF0034 */ lw $ra, 0x34($sp) +/* 0BF1E4 7F08A6B4 0FC2B366 */ jal microcode_constructor +/* 0BF1E8 7F08A6B8 8FA40060 */ lw $a0, 0x60($sp) +/* 0BF1EC 7F08A6BC 3C0C8003 */ lui $t4, %hi(status_bar_text_buffer_index) +/* 0BF1F0 7F08A6C0 8D8C6898 */ lw $t4, %lo(status_bar_text_buffer_index)($t4) +/* 0BF1F4 7F08A6C4 3C0F8003 */ lui $t7, %hi(copy_1stfonttable) +/* 0BF1F8 7F08A6C8 8DEF68A0 */ lw $t7, %lo(copy_1stfonttable)($t7) +/* 0BF1FC 7F08A6CC 000C6880 */ sll $t5, $t4, 2 +/* 0BF200 7F08A6D0 01AC6823 */ subu $t5, $t5, $t4 +/* 0BF204 7F08A6D4 000D68C0 */ sll $t5, $t5, 3 +/* 0BF208 7F08A6D8 01AC6821 */ addu $t5, $t5, $t4 +/* 0BF20C 7F08A6DC 000D6880 */ sll $t5, $t5, 2 +/* 0BF210 7F08A6E0 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_80079A28) +/* 0BF214 7F08A6E4 25CE9A28 */ addiu $t6, %lo(dword_CODE_bss_80079A28) # addiu $t6, $t6, -0x65d8 +/* 0BF218 7F08A6E8 3C078003 */ lui $a3, %hi(copy_2ndfonttable) +/* 0BF21C 7F08A6EC 01AC6821 */ addu $t5, $t5, $t4 +/* 0BF220 7F08A6F0 AFA20060 */ sw $v0, 0x60($sp) +/* 0BF224 7F08A6F4 AFA00044 */ sw $zero, 0x44($sp) +/* 0BF228 7F08A6F8 AFA00048 */ sw $zero, 0x48($sp) +/* 0BF22C 7F08A6FC 01AE3021 */ addu $a2, $t5, $t6 +/* 0BF230 7F08A700 8CE768A4 */ lw $a3, %lo(copy_2ndfonttable)($a3) +/* 0BF234 7F08A704 27A40048 */ addiu $a0, $sp, 0x48 +/* 0BF238 7F08A708 27A50044 */ addiu $a1, $sp, 0x44 +/* 0BF23C 7F08A70C AFA00014 */ sw $zero, 0x14($sp) +/* 0BF240 7F08A710 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0BF244 7F08A714 AFAF0010 */ sw $t7, 0x10($sp) +/* 0BF248 7F08A718 0FC26919 */ jal get_num_players +/* 0BF24C 7F08A71C 00000000 */ nop +/* 0BF250 7F08A720 28410003 */ slti $at, $v0, 3 +/* 0BF254 7F08A724 10200005 */ beqz $at, .L7F08A73C +/* 0BF258 7F08A728 00000000 */ nop +/* 0BF25C 7F08A72C 0C001145 */ jal get_video2_settings_ulx +/* 0BF260 7F08A730 00000000 */ nop +/* 0BF264 7F08A734 1000000D */ b .L7F08A76C +/* 0BF268 7F08A738 2443001E */ addiu $v1, $v0, 0x1e +.L7F08A73C: +/* 0BF26C 7F08A73C 0FC26C54 */ jal get_cur_playernum +/* 0BF270 7F08A740 00000000 */ nop +/* 0BF274 7F08A744 30580001 */ andi $t8, $v0, 1 +/* 0BF278 7F08A748 13000005 */ beqz $t8, .L7F08A760 +/* 0BF27C 7F08A74C 00000000 */ nop +/* 0BF280 7F08A750 0C001145 */ jal get_video2_settings_ulx +/* 0BF284 7F08A754 00000000 */ nop +/* 0BF288 7F08A758 10000004 */ b .L7F08A76C +/* 0BF28C 7F08A75C 2443000A */ addiu $v1, $v0, 0xa +.L7F08A760: +/* 0BF290 7F08A760 0C001145 */ jal get_video2_settings_ulx +/* 0BF294 7F08A764 00000000 */ nop +/* 0BF298 7F08A768 2443001E */ addiu $v1, $v0, 0x1e +.L7F08A76C: +/* 0BF29C 7F08A76C 8FB90044 */ lw $t9, 0x44($sp) +/* 0BF2A0 7F08A770 AFA30058 */ sw $v1, 0x58($sp) +/* 0BF2A4 7F08A774 00794021 */ addu $t0, $v1, $t9 +/* 0BF2A8 7F08A778 0FC26919 */ jal get_num_players +/* 0BF2AC 7F08A77C AFA80050 */ sw $t0, 0x50($sp) +/* 0BF2B0 7F08A780 28410003 */ slti $at, $v0, 3 +/* 0BF2B4 7F08A784 10200024 */ beqz $at, .L7F08A818 +/* 0BF2B8 7F08A788 00000000 */ nop +/* 0BF2BC 7F08A78C 0FC17674 */ jal get_item_in_hand +/* 0BF2C0 7F08A790 24040001 */ li $a0, 1 +/* 0BF2C4 7F08A794 0FC1A50B */ jal get_ammo_type_for_weapon +/* 0BF2C8 7F08A798 00402025 */ move $a0, $v0 +/* 0BF2CC 7F08A79C 1440000E */ bnez $v0, .L7F08A7D8 +/* 0BF2D0 7F08A7A0 00000000 */ nop +/* 0BF2D4 7F08A7A4 0FC15867 */ jal is_clock_drawn_onscreen +/* 0BF2D8 7F08A7A8 00000000 */ nop +/* 0BF2DC 7F08A7AC 1440000A */ bnez $v0, .L7F08A7D8 +/* 0BF2E0 7F08A7B0 00000000 */ nop +/* 0BF2E4 7F08A7B4 0C001149 */ jal get_video2_settings_uly +/* 0BF2E8 7F08A7B8 00000000 */ nop +/* 0BF2EC 7F08A7BC 0C00112B */ jal get_video2_settings_height +/* 0BF2F0 7F08A7C0 A7A2003E */ sh $v0, 0x3e($sp) +/* 0BF2F4 7F08A7C4 87A9003E */ lh $t1, 0x3e($sp) +/* 0BF2F8 7F08A7C8 00495021 */ addu $t2, $v0, $t1 +/* 0BF2FC 7F08A7CC 254BFFF4 */ addiu $t3, $t2, -0xc +/* 0BF300 7F08A7D0 10000009 */ b .L7F08A7F8 +/* 0BF304 7F08A7D4 AFAB004C */ sw $t3, 0x4c($sp) +.L7F08A7D8: +/* 0BF308 7F08A7D8 0C001149 */ jal get_video2_settings_uly +/* 0BF30C 7F08A7DC 00000000 */ nop +/* 0BF310 7F08A7E0 0C00112B */ jal get_video2_settings_height +/* 0BF314 7F08A7E4 A7A2003E */ sh $v0, 0x3e($sp) +/* 0BF318 7F08A7E8 87AC003E */ lh $t4, 0x3e($sp) +/* 0BF31C 7F08A7EC 004C6821 */ addu $t5, $v0, $t4 +/* 0BF320 7F08A7F0 25AEFFD8 */ addiu $t6, $t5, -0x28 +/* 0BF324 7F08A7F4 AFAE004C */ sw $t6, 0x4c($sp) +.L7F08A7F8: +/* 0BF328 7F08A7F8 0FC26C54 */ jal get_cur_playernum +/* 0BF32C 7F08A7FC 00000000 */ nop +/* 0BF330 7F08A800 24010001 */ li $at, 1 +/* 0BF334 7F08A804 14410008 */ bne $v0, $at, .L7F08A828 +/* 0BF338 7F08A808 8FAF004C */ lw $t7, 0x4c($sp) +/* 0BF33C 7F08A80C 25F8FFF8 */ addiu $t8, $t7, -8 +/* 0BF340 7F08A810 10000005 */ b .L7F08A828 +/* 0BF344 7F08A814 AFB8004C */ sw $t8, 0x4c($sp) +.L7F08A818: +/* 0BF348 7F08A818 0C001149 */ jal get_video2_settings_uly +/* 0BF34C 7F08A81C 00000000 */ nop +/* 0BF350 7F08A820 24590010 */ addiu $t9, $v0, 0x10 +/* 0BF354 7F08A824 AFB9004C */ sw $t9, 0x4c($sp) +.L7F08A828: +/* 0BF358 7F08A828 8FA8004C */ lw $t0, 0x4c($sp) +/* 0BF35C 7F08A82C 8FA90048 */ lw $t1, 0x48($sp) +/* 0BF360 7F08A830 27AB004C */ addiu $t3, $sp, 0x4c +/* 0BF364 7F08A834 AFAB0010 */ sw $t3, 0x10($sp) +/* 0BF368 7F08A838 01095023 */ subu $t2, $t0, $t1 +/* 0BF36C 7F08A83C AFAA0054 */ sw $t2, 0x54($sp) +/* 0BF370 7F08A840 8FA40060 */ lw $a0, 0x60($sp) +/* 0BF374 7F08A844 27A50058 */ addiu $a1, $sp, 0x58 +/* 0BF378 7F08A848 27A60054 */ addiu $a2, $sp, 0x54 +/* 0BF37C 7F08A84C 0FC2B3D3 */ jal draw_blackbox_to_screen +/* 0BF380 7F08A850 27A70050 */ addiu $a3, $sp, 0x50 +/* 0BF384 7F08A854 0C001107 */ jal get_video2_settings_txtClipW +/* 0BF388 7F08A858 AFA20060 */ sw $v0, 0x60($sp) +/* 0BF38C 7F08A85C 0C00110B */ jal get_video2_settings_txtClipH +/* 0BF390 7F08A860 A7A2003C */ sh $v0, 0x3c($sp) +/* 0BF394 7F08A864 3C0C8003 */ lui $t4, %hi(status_bar_text_buffer_index) +/* 0BF398 7F08A868 8D8C6898 */ lw $t4, %lo(status_bar_text_buffer_index)($t4) +/* 0BF39C 7F08A86C 3C0F8003 */ lui $t7, %hi(copy_2ndfonttable) +/* 0BF3A0 7F08A870 3C188003 */ lui $t8, %hi(copy_1stfonttable) +/* 0BF3A4 7F08A874 000C6880 */ sll $t5, $t4, 2 +/* 0BF3A8 7F08A878 01AC6823 */ subu $t5, $t5, $t4 +/* 0BF3AC 7F08A87C 000D68C0 */ sll $t5, $t5, 3 +/* 0BF3B0 7F08A880 01AC6821 */ addu $t5, $t5, $t4 +/* 0BF3B4 7F08A884 8F1868A0 */ lw $t8, %lo(copy_1stfonttable)($t8) +/* 0BF3B8 7F08A888 8DEF68A4 */ lw $t7, %lo(copy_2ndfonttable)($t7) +/* 0BF3BC 7F08A88C 87A9003C */ lh $t1, 0x3c($sp) +/* 0BF3C0 7F08A890 000D6880 */ sll $t5, $t5, 2 +/* 0BF3C4 7F08A894 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_80079A28) +/* 0BF3C8 7F08A898 3C086464 */ lui $t0, (0x646464FF >> 16) # lui $t0, 0x6464 +/* 0BF3CC 7F08A89C 350864FF */ ori $t0, (0x646464FF & 0xFFFF) # ori $t0, $t0, 0x64ff +/* 0BF3D0 7F08A8A0 25CE9A28 */ addiu $t6, %lo(dword_CODE_bss_80079A28) # addiu $t6, $t6, -0x65d8 +/* 0BF3D4 7F08A8A4 2419FFFF */ li $t9, -1 +/* 0BF3D8 7F08A8A8 01AC6821 */ addu $t5, $t5, $t4 +/* 0BF3DC 7F08A8AC 01AE3821 */ addu $a3, $t5, $t6 +/* 0BF3E0 7F08A8B0 AFB90018 */ sw $t9, 0x18($sp) +/* 0BF3E4 7F08A8B4 AFA8001C */ sw $t0, 0x1c($sp) +/* 0BF3E8 7F08A8B8 8FA40060 */ lw $a0, 0x60($sp) +/* 0BF3EC 7F08A8BC 27A50058 */ addiu $a1, $sp, 0x58 +/* 0BF3F0 7F08A8C0 27A60054 */ addiu $a2, $sp, 0x54 +/* 0BF3F4 7F08A8C4 AFA20024 */ sw $v0, 0x24($sp) +/* 0BF3F8 7F08A8C8 AFA00028 */ sw $zero, 0x28($sp) +/* 0BF3FC 7F08A8CC AFA0002C */ sw $zero, 0x2c($sp) +/* 0BF400 7F08A8D0 AFB80014 */ sw $t8, 0x14($sp) +/* 0BF404 7F08A8D4 AFAF0010 */ sw $t7, 0x10($sp) +/* 0BF408 7F08A8D8 0FC2B9BB */ jal jp_text_write_stuff +/* 0BF40C 7F08A8DC AFA90020 */ sw $t1, 0x20($sp) +/* 0BF410 7F08A8E0 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0BF414 7F08A8E4 00402025 */ move $a0, $v0 +/* 0BF418 7F08A8E8 AFA20060 */ sw $v0, 0x60($sp) +/* 0BF41C 7F08A8EC 8FBF0034 */ lw $ra, 0x34($sp) +.L7F08A8F0: +/* 0BF420 7F08A8F0 8FA20060 */ lw $v0, 0x60($sp) +/* 0BF424 7F08A8F4 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0BF428 7F08A8F8 03E00008 */ jr $ra +/* 0BF42C 7F08A8FC 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A5FC +/* 0BF8F4 7F08AD84 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BF8F8 7F08AD88 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF8FC 7F08AD8C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0BF900 7F08AD90 AFBF0034 */ sw $ra, 0x34($sp) +/* 0BF904 7F08AD94 AFA40060 */ sw $a0, 0x60($sp) +/* 0BF908 7F08AD98 8C4E11D8 */ lw $t6, 0x11d8($v0) +/* 0BF90C 7F08AD9C 55C000CB */ bnezl $t6, .Ljp7F08B0CC +/* 0BF910 7F08ADA0 8FBF0034 */ lw $ra, 0x34($sp) +/* 0BF914 7F08ADA4 8C4F11DC */ lw $t7, 0x11dc($v0) +/* 0BF918 7F08ADA8 05E200C8 */ bltzl $t7, .Ljp7F08B0CC +/* 0BF91C 7F08ADAC 8FBF0034 */ lw $ra, 0x34($sp) +/* 0BF920 7F08ADB0 8C5829C4 */ lw $t8, 0x29c4($v0) +/* 0BF924 7F08ADB4 570000C5 */ bnezl $t8, .Ljp7F08B0CC +/* 0BF928 7F08ADB8 8FBF0034 */ lw $ra, 0x34($sp) +/* 0BF92C 7F08ADBC 0FC26C01 */ jal get_num_players +/* 0BF930 7F08ADC0 AFA0005C */ sw $zero, 0x5c($sp) +/* 0BF934 7F08ADC4 24010001 */ li $at, 1 +/* 0BF938 7F08ADC8 14410010 */ bne $v0, $at, .Ljp7F08AE0C +/* 0BF93C 7F08ADCC 8FA3005C */ lw $v1, 0x5c($sp) +/* 0BF940 7F08ADD0 3C198003 */ lui $t9, %hi(status_bar_text_buffer_index) # $t9, 0x8003 +/* 0BF944 7F08ADD4 8F3968D8 */ lw $t9, %lo(status_bar_text_buffer_index)($t9) +/* 0BF948 7F08ADD8 3C0A8008 */ lui $t2, %hi(dword_CODE_bss_80079A28) +/* 0BF94C 7F08ADDC 00194880 */ sll $t1, $t9, 2 +/* 0BF950 7F08ADE0 01394823 */ subu $t1, $t1, $t9 +/* 0BF954 7F08ADE4 000948C0 */ sll $t1, $t1, 3 +/* 0BF958 7F08ADE8 01394821 */ addu $t1, $t1, $t9 +/* 0BF95C 7F08ADEC 00094880 */ sll $t1, $t1, 2 +/* 0BF960 7F08ADF0 01394821 */ addu $t1, $t1, $t9 +/* 0BF964 7F08ADF4 01495021 */ addu $t2, $t2, $t1 +/* 0BF968 7F08ADF8 914A9A68 */ lbu $t2, %lo(dword_CODE_bss_80079A28)($t2) +/* 0BF96C 7F08ADFC 1140000D */ beqz $t2, .Ljp7F08AE34 +/* 0BF970 7F08AE00 00000000 */ nop +/* 0BF974 7F08AE04 1000000B */ b .Ljp7F08AE34 +/* 0BF978 7F08AE08 24030001 */ li $v1, 1 +.Ljp7F08AE0C: +/* 0BF97C 7F08AE0C 3C0B8008 */ lui $t3, %hi(pPlayer) # $t3, 0x8008 +/* 0BF980 7F08AE10 8D6BA120 */ lw $t3, %lo(pPlayer)($t3) +/* 0BF984 7F08AE14 8D6C11DC */ lw $t4, 0x11dc($t3) +/* 0BF988 7F08AE18 05800006 */ bltz $t4, .Ljp7F08AE34 +/* 0BF98C 7F08AE1C 00000000 */ nop +/* 0BF990 7F08AE20 0FC26F3C */ jal get_cur_playernum +/* 0BF994 7F08AE24 00000000 */ nop +/* 0BF998 7F08AE28 3C018003 */ lui $at, %hi(status_bar_text_buffer_index) # $at, 0x8003 +/* 0BF99C 7F08AE2C AC2268D8 */ sw $v0, %lo(status_bar_text_buffer_index)($at) +/* 0BF9A0 7F08AE30 24030001 */ li $v1, 1 +.Ljp7F08AE34: +/* 0BF9A4 7F08AE34 506000A5 */ beql $v1, $zero, .Ljp7F08B0CC +/* 0BF9A8 7F08AE38 8FBF0034 */ lw $ra, 0x34($sp) +/* 0BF9AC 7F08AE3C 0FC2B652 */ jal microcode_constructor +/* 0BF9B0 7F08AE40 8FA40060 */ lw $a0, 0x60($sp) +/* 0BF9B4 7F08AE44 3C038003 */ lui $v1, %hi(status_bar_text_buffer_index) # $v1, 0x8003 +/* 0BF9B8 7F08AE48 8C6368D8 */ lw $v1, %lo(status_bar_text_buffer_index)($v1) +/* 0BF9BC 7F08AE4C 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_jp80079Cd8) +/* 0BF9C0 7F08AE50 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_80079A28) # $t6, 0x8008 +/* 0BF9C4 7F08AE54 00036880 */ sll $t5, $v1, 2 +/* 0BF9C8 7F08AE58 01A36823 */ subu $t5, $t5, $v1 +/* 0BF9CC 7F08AE5C 000D68C0 */ sll $t5, $t5, 3 +/* 0BF9D0 7F08AE60 00034080 */ sll $t0, $v1, 2 +/* 0BF9D4 7F08AE64 01E87821 */ addu $t7, $t7, $t0 +/* 0BF9D8 7F08AE68 01A36821 */ addu $t5, $t5, $v1 +/* 0BF9DC 7F08AE6C 8DEF9C68 */ lw $t7, %lo(dword_CODE_bss_jp80079Cd8) ($t7) +/* 0BF9E0 7F08AE70 000D6880 */ sll $t5, $t5, 2 +/* 0BF9E4 7F08AE74 3C078008 */ lui $a3, %hi(dword_CODE_bss_jp80079Cd8+0x18) +/* 0BF9E8 7F08AE78 00E83821 */ addu $a3, $a3, $t0 +/* 0BF9EC 7F08AE7C 25CE9A68 */ addiu $t6, %lo(dword_CODE_bss_80079A28) # addiu $t6, $t6, -0x6598 +/* 0BF9F0 7F08AE80 01A36821 */ addu $t5, $t5, $v1 +/* 0BF9F4 7F08AE84 AFA20060 */ sw $v0, 0x60($sp) +/* 0BF9F8 7F08AE88 AFA00044 */ sw $zero, 0x44($sp) +/* 0BF9FC 7F08AE8C AFA00048 */ sw $zero, 0x48($sp) +/* 0BFA00 7F08AE90 01AE3021 */ addu $a2, $t5, $t6 +/* 0BFA04 7F08AE94 8CE79C80 */ lw $a3, %lo(dword_CODE_bss_jp80079Cd8+0x18)($a3) +/* 0BFA08 7F08AE98 27A40048 */ addiu $a0, $sp, 0x48 +/* 0BFA0C 7F08AE9C 27A50044 */ addiu $a1, $sp, 0x44 +/* 0BFA10 7F08AEA0 AFA00014 */ sw $zero, 0x14($sp) +/* 0BFA14 7F08AEA4 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0BFA18 7F08AEA8 AFAF0010 */ sw $t7, 0x10($sp) +/* 0BFA1C 7F08AEAC 0FC26C01 */ jal get_num_players +/* 0BFA20 7F08AEB0 00000000 */ nop +/* 0BFA24 7F08AEB4 28410003 */ slti $at, $v0, 3 +/* 0BFA28 7F08AEB8 10200005 */ beqz $at, .Ljp7F08AED0 +/* 0BFA2C 7F08AEBC 00000000 */ nop +/* 0BFA30 7F08AEC0 0C001145 */ jal get_video2_settings_ulx +/* 0BFA34 7F08AEC4 00000000 */ nop +/* 0BFA38 7F08AEC8 1000000D */ b .Ljp7F08AF00 +/* 0BFA3C 7F08AECC 2443001E */ addiu $v1, $v0, 0x1e +.Ljp7F08AED0: +/* 0BFA40 7F08AED0 0FC26F3C */ jal get_cur_playernum +/* 0BFA44 7F08AED4 00000000 */ nop +/* 0BFA48 7F08AED8 30580001 */ andi $t8, $v0, 1 +/* 0BFA4C 7F08AEDC 13000005 */ beqz $t8, .Ljp7F08AEF4 +/* 0BFA50 7F08AEE0 00000000 */ nop +/* 0BFA54 7F08AEE4 0C001145 */ jal get_video2_settings_ulx +/* 0BFA58 7F08AEE8 00000000 */ nop +/* 0BFA5C 7F08AEEC 10000004 */ b .Ljp7F08AF00 +/* 0BFA60 7F08AEF0 2443000A */ addiu $v1, $v0, 0xa +.Ljp7F08AEF4: +/* 0BFA64 7F08AEF4 0C001145 */ jal get_video2_settings_ulx +/* 0BFA68 7F08AEF8 00000000 */ nop +/* 0BFA6C 7F08AEFC 2443001E */ addiu $v1, $v0, 0x1e +.Ljp7F08AF00: +/* 0BFA70 7F08AF00 8FB90044 */ lw $t9, 0x44($sp) +/* 0BFA74 7F08AF04 AFA30058 */ sw $v1, 0x58($sp) +/* 0BFA78 7F08AF08 00794821 */ addu $t1, $v1, $t9 +/* 0BFA7C 7F08AF0C 0FC26C01 */ jal get_num_players +/* 0BFA80 7F08AF10 AFA90050 */ sw $t1, 0x50($sp) +/* 0BFA84 7F08AF14 28410003 */ slti $at, $v0, 3 +/* 0BFA88 7F08AF18 10200024 */ beqz $at, .Ljp7F08AFAC +/* 0BFA8C 7F08AF1C 00000000 */ nop +/* 0BFA90 7F08AF20 0FC177BC */ jal get_item_in_hand +/* 0BFA94 7F08AF24 24040001 */ li $a0, 1 +/* 0BFA98 7F08AF28 0FC1A686 */ jal get_ammo_type_for_weapon +/* 0BFA9C 7F08AF2C 00402025 */ move $a0, $v0 +/* 0BFAA0 7F08AF30 1440000E */ bnez $v0, .Ljp7F08AF6C +/* 0BFAA4 7F08AF34 00000000 */ nop +/* 0BFAA8 7F08AF38 0FC159A6 */ jal is_clock_drawn_onscreen +/* 0BFAAC 7F08AF3C 00000000 */ nop +/* 0BFAB0 7F08AF40 1440000A */ bnez $v0, .Ljp7F08AF6C +/* 0BFAB4 7F08AF44 00000000 */ nop +/* 0BFAB8 7F08AF48 0C001149 */ jal get_video2_settings_uly +/* 0BFABC 7F08AF4C 00000000 */ nop +/* 0BFAC0 7F08AF50 0C00112B */ jal get_video2_settings_height +/* 0BFAC4 7F08AF54 A7A2003E */ sh $v0, 0x3e($sp) +/* 0BFAC8 7F08AF58 87A3003E */ lh $v1, 0x3e($sp) +/* 0BFACC 7F08AF5C 00435821 */ addu $t3, $v0, $v1 +/* 0BFAD0 7F08AF60 256CFFF4 */ addiu $t4, $t3, -0xc +/* 0BFAD4 7F08AF64 10000009 */ b .Ljp7F08AF8C +/* 0BFAD8 7F08AF68 AFAC004C */ sw $t4, 0x4c($sp) +.Ljp7F08AF6C: +/* 0BFADC 7F08AF6C 0C001149 */ jal get_video2_settings_uly +/* 0BFAE0 7F08AF70 00000000 */ nop +/* 0BFAE4 7F08AF74 0C00112B */ jal get_video2_settings_height +/* 0BFAE8 7F08AF78 A7A2003E */ sh $v0, 0x3e($sp) +/* 0BFAEC 7F08AF7C 87A3003E */ lh $v1, 0x3e($sp) +/* 0BFAF0 7F08AF80 00437021 */ addu $t6, $v0, $v1 +/* 0BFAF4 7F08AF84 25CFFFD8 */ addiu $t7, $t6, -0x28 +/* 0BFAF8 7F08AF88 AFAF004C */ sw $t7, 0x4c($sp) +.Ljp7F08AF8C: +/* 0BFAFC 7F08AF8C 0FC26F3C */ jal get_cur_playernum +/* 0BFB00 7F08AF90 00000000 */ nop +/* 0BFB04 7F08AF94 24010001 */ li $at, 1 +/* 0BFB08 7F08AF98 14410017 */ bne $v0, $at, .Ljp7F08AFF8 +/* 0BFB0C 7F08AF9C 8FB8004C */ lw $t8, 0x4c($sp) +/* 0BFB10 7F08AFA0 2719FFF8 */ addiu $t9, $t8, -8 +/* 0BFB14 7F08AFA4 10000014 */ b .Ljp7F08AFF8 +/* 0BFB18 7F08AFA8 AFB9004C */ sw $t9, 0x4c($sp) +.Ljp7F08AFAC: +/* 0BFB1C 7F08AFAC 0C001149 */ jal get_video2_settings_uly +/* 0BFB20 7F08AFB0 00000000 */ nop +/* 0BFB24 7F08AFB4 3C0A8005 */ lui $t2, %hi(j_text_trigger) # $t2, 0x8005 +/* 0BFB28 7F08AFB8 8D4A8500 */ lw $t2, %lo(j_text_trigger)($t2) +/* 0BFB2C 7F08AFBC 00021C00 */ sll $v1, $v0, 0x10 +/* 0BFB30 7F08AFC0 00034C03 */ sra $t1, $v1, 0x10 +/* 0BFB34 7F08AFC4 11400008 */ beqz $t2, .Ljp7F08AFE8 +/* 0BFB38 7F08AFC8 01201825 */ move $v1, $t1 +/* 0BFB3C 7F08AFCC 0FC26F3C */ jal get_cur_playernum +/* 0BFB40 7F08AFD0 A7A9003E */ sh $t1, 0x3e($sp) +/* 0BFB44 7F08AFD4 28410002 */ slti $at, $v0, 2 +/* 0BFB48 7F08AFD8 10200003 */ beqz $at, .Ljp7F08AFE8 +/* 0BFB4C 7F08AFDC 87A3003E */ lh $v1, 0x3e($sp) +/* 0BFB50 7F08AFE0 10000002 */ b .Ljp7F08AFEC +/* 0BFB54 7F08AFE4 24020008 */ li $v0, 8 +.Ljp7F08AFE8: +/* 0BFB58 7F08AFE8 00001025 */ move $v0, $zero +.Ljp7F08AFEC: +/* 0BFB5C 7F08AFEC 00435821 */ addu $t3, $v0, $v1 +/* 0BFB60 7F08AFF0 256C0010 */ addiu $t4, $t3, 0x10 +/* 0BFB64 7F08AFF4 AFAC004C */ sw $t4, 0x4c($sp) +.Ljp7F08AFF8: +/* 0BFB68 7F08AFF8 8FAD004C */ lw $t5, 0x4c($sp) +/* 0BFB6C 7F08AFFC 8FAE0048 */ lw $t6, 0x48($sp) +/* 0BFB70 7F08B000 27B8004C */ addiu $t8, $sp, 0x4c +/* 0BFB74 7F08B004 AFB80010 */ sw $t8, 0x10($sp) +/* 0BFB78 7F08B008 01AE7823 */ subu $t7, $t5, $t6 +/* 0BFB7C 7F08B00C AFAF0054 */ sw $t7, 0x54($sp) +/* 0BFB80 7F08B010 8FA40060 */ lw $a0, 0x60($sp) +/* 0BFB84 7F08B014 27A50058 */ addiu $a1, $sp, 0x58 +/* 0BFB88 7F08B018 27A60054 */ addiu $a2, $sp, 0x54 +/* 0BFB8C 7F08B01C 0FC2B6BF */ jal draw_blackbox_to_screen +/* 0BFB90 7F08B020 27A70050 */ addiu $a3, $sp, 0x50 +/* 0BFB94 7F08B024 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFB98 7F08B028 AFA20060 */ sw $v0, 0x60($sp) +/* 0BFB9C 7F08B02C 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFBA0 7F08B030 A7A2003C */ sh $v0, 0x3c($sp) +/* 0BFBA4 7F08B034 3C038003 */ lui $v1, %hi(status_bar_text_buffer_index) # $v1, 0x8003 +/* 0BFBA8 7F08B038 8C6368D8 */ lw $v1, %lo(status_bar_text_buffer_index)($v1) +/* 0BFBAC 7F08B03C 3C0A8008 */ lui $t2, %hi(dword_CODE_bss_jp80079Cd8+0x18) +/* 0BFBB0 7F08B040 3C0B8008 */ lui $t3, %hi(dword_CODE_bss_jp80079Cd8) +/* 0BFBB4 7F08B044 0003C880 */ sll $t9, $v1, 2 +/* 0BFBB8 7F08B048 0323C823 */ subu $t9, $t9, $v1 +/* 0BFBBC 7F08B04C 00034080 */ sll $t0, $v1, 2 +/* 0BFBC0 7F08B050 0019C8C0 */ sll $t9, $t9, 3 +/* 0BFBC4 7F08B054 01485021 */ addu $t2, $t2, $t0 +/* 0BFBC8 7F08B058 01685821 */ addu $t3, $t3, $t0 +/* 0BFBCC 7F08B05C 0323C821 */ addu $t9, $t9, $v1 +/* 0BFBD0 7F08B060 8D6B9C68 */ lw $t3, %lo(dword_CODE_bss_jp80079Cd8) ($t3) +/* 0BFBD4 7F08B064 8D4A9C80 */ lw $t2, %lo(dword_CODE_bss_jp80079Cd8+0x18)($t2) +/* 0BFBD8 7F08B068 87AE003C */ lh $t6, 0x3c($sp) +/* 0BFBDC 7F08B06C 0019C880 */ sll $t9, $t9, 2 +/* 0BFBE0 7F08B070 3C098008 */ lui $t1, %hi(dword_CODE_bss_80079A28) # $t1, 0x8008 +/* 0BFBE4 7F08B074 3C0D6464 */ lui $t5, (0x646464FF >> 16) # lui $t5, 0x6464 +/* 0BFBE8 7F08B078 35AD64FF */ ori $t5, (0x646464FF & 0xFFFF) # ori $t5, $t5, 0x64ff +/* 0BFBEC 7F08B07C 25299A68 */ addiu $t1, %lo(dword_CODE_bss_80079A28) # addiu $t1, $t1, -0x6598 +/* 0BFBF0 7F08B080 240CFFFF */ li $t4, -1 +/* 0BFBF4 7F08B084 0323C821 */ addu $t9, $t9, $v1 +/* 0BFBF8 7F08B088 03293821 */ addu $a3, $t9, $t1 +/* 0BFBFC 7F08B08C AFAC0018 */ sw $t4, 0x18($sp) +/* 0BFC00 7F08B090 AFAD001C */ sw $t5, 0x1c($sp) +/* 0BFC04 7F08B094 8FA40060 */ lw $a0, 0x60($sp) +/* 0BFC08 7F08B098 27A50058 */ addiu $a1, $sp, 0x58 +/* 0BFC0C 7F08B09C 27A60054 */ addiu $a2, $sp, 0x54 +/* 0BFC10 7F08B0A0 AFA20024 */ sw $v0, 0x24($sp) +/* 0BFC14 7F08B0A4 AFA00028 */ sw $zero, 0x28($sp) +/* 0BFC18 7F08B0A8 AFA0002C */ sw $zero, 0x2c($sp) +/* 0BFC1C 7F08B0AC AFAB0014 */ sw $t3, 0x14($sp) +/* 0BFC20 7F08B0B0 AFAA0010 */ sw $t2, 0x10($sp) +/* 0BFC24 7F08B0B4 0FC2BCA7 */ jal jp_text_write_stuff +/* 0BFC28 7F08B0B8 AFAE0020 */ sw $t6, 0x20($sp) +/* 0BFC2C 7F08B0BC 0FC2B6A8 */ jal combiner_bayer_lod_perspective +/* 0BFC30 7F08B0C0 00402025 */ move $a0, $v0 +/* 0BFC34 7F08B0C4 AFA20060 */ sw $v0, 0x60($sp) +/* 0BFC38 7F08B0C8 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F08B0CC: +/* 0BFC3C 7F08B0CC 8FA20060 */ lw $v0, 0x60($sp) +/* 0BFC40 7F08B0D0 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0BFC44 7F08B0D4 03E00008 */ jr $ra +/* 0BFC48 7F08B0D8 00000000 */ nop +) +#endif + +#endif + + + +void sub_GAME_7F08A900(void) +{ + upper_text_window_timer = -1; + display_upper_text_window = 0; + upper_text_buffer_index = 0; + D_800368B4 = 0; +} + + +void sub_GAME_7F08A928(int param_1) +{ + int new_var; + new_var = ~param_1; + D_800368B4 = D_800368B4 & new_var; +} + + +void sub_GAME_7F08A944(int param) { + D_800368B4 = D_800368B4 | param; +} + +#ifdef NONMATCHING +void display_string_at_top_of_screen(void) { + +} +#else +GLOBAL_ASM( +.text +glabel display_string_at_top_of_screen +/* 0BF48C 7F08A95C 3C078003 */ lui $a3, %hi(display_upper_text_window) +/* 0BF490 7F08A960 24E768AC */ addiu $a3, %lo(display_upper_text_window) # addiu $a3, $a3, 0x68ac +/* 0BF494 7F08A964 8CE30000 */ lw $v1, ($a3) +/* 0BF498 7F08A968 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0BF49C 7F08A96C AFBF0014 */ sw $ra, 0x14($sp) +/* 0BF4A0 7F08A970 28610002 */ slti $at, $v1, 2 +/* 0BF4A4 7F08A974 1020001C */ beqz $at, .L7F08A9E8 +/* 0BF4A8 7F08A978 00802825 */ move $a1, $a0 +/* 0BF4AC 7F08A97C 3C0E8003 */ lui $t6, %hi(upper_text_buffer_index) +/* 0BF4B0 7F08A980 8DCE68A8 */ lw $t6, %lo(upper_text_buffer_index)($t6) +/* 0BF4B4 7F08A984 3C198008 */ lui $t9, %hi(dword_CODE_bss_80079C70) +/* 0BF4B8 7F08A988 27399C70 */ addiu $t9, %lo(dword_CODE_bss_80079C70) # addiu $t9, $t9, -0x6390 +/* 0BF4BC 7F08A98C 01C31021 */ addu $v0, $t6, $v1 +/* 0BF4C0 7F08A990 04410004 */ bgez $v0, .L7F08A9A4 +/* 0BF4C4 7F08A994 304F0001 */ andi $t7, $v0, 1 +/* 0BF4C8 7F08A998 11E00002 */ beqz $t7, .L7F08A9A4 +/* 0BF4CC 7F08A99C 00000000 */ nop +/* 0BF4D0 7F08A9A0 25EFFFFE */ addiu $t7, $t7, -2 +.L7F08A9A4: +/* 0BF4D4 7F08A9A4 000FC080 */ sll $t8, $t7, 2 +/* 0BF4D8 7F08A9A8 030FC021 */ addu $t8, $t8, $t7 +/* 0BF4DC 7F08A9AC 0018C080 */ sll $t8, $t8, 2 +/* 0BF4E0 7F08A9B0 030FC023 */ subu $t8, $t8, $t7 +/* 0BF4E4 7F08A9B4 0018C0C0 */ sll $t8, $t8, 3 +/* 0BF4E8 7F08A9B8 030FC023 */ subu $t8, $t8, $t7 +/* 0BF4EC 7F08A9BC 03192021 */ addu $a0, $t8, $t9 +/* 0BF4F0 7F08A9C0 AFA4001C */ sw $a0, 0x1c($sp) +/* 0BF4F4 7F08A9C4 0C0029E8 */ jal something_with_strings +/* 0BF4F8 7F08A9C8 24060096 */ li $a2, 150 +/* 0BF4FC 7F08A9CC 3C078003 */ lui $a3, %hi(display_upper_text_window) +/* 0BF500 7F08A9D0 24E768AC */ addiu $a3, %lo(display_upper_text_window) # addiu $a3, $a3, 0x68ac +/* 0BF504 7F08A9D4 8CE80000 */ lw $t0, ($a3) +/* 0BF508 7F08A9D8 8FA4001C */ lw $a0, 0x1c($sp) +/* 0BF50C 7F08A9DC 25090001 */ addiu $t1, $t0, 1 +/* 0BF510 7F08A9E0 ACE90000 */ sw $t1, ($a3) +/* 0BF514 7F08A9E4 A0800096 */ sb $zero, 0x96($a0) +.L7F08A9E8: +/* 0BF518 7F08A9E8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BF51C 7F08A9EC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0BF520 7F08A9F0 03E00008 */ jr $ra +/* 0BF524 7F08A9F4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08A9F8(void) +{ + int nextbuffer; + if ((D_800368B4 == 0) && (pPlayer->mpmenuon == 0)) + { + if ((-1) < upper_text_window_timer) + { + upper_text_window_timer = upper_text_window_timer - clock_timer; + if (upper_text_window_timer < 0) + { + nextbuffer = upper_text_buffer_index + 1; + upper_text_buffer_index = nextbuffer & 1; + if (1) + { + if (((upper_text_buffer_index + 1) < 0) && (upper_text_buffer_index != 0)) + { + upper_text_buffer_index = upper_text_buffer_index - 2; + } + } + display_upper_text_window = display_upper_text_window + (-1); + } + else + if ((1 < display_upper_text_window) && (0x3c < upper_text_window_timer)) + { + upper_text_window_timer = 0x3c; + } + } + + nextbuffer = upper_text_window_timer < 0; + if (nextbuffer && (0 < display_upper_text_window)) + { + if (1 < display_upper_text_window) + { + upper_text_window_timer = 0x3c; + return; + } + upper_text_window_timer = 0xf0; + } + } + return; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A9F8 +/* 0BF528 7F08A9F8 3C0E8003 */ lui $t6, %hi(D_800368B4) +/* 0BF52C 7F08A9FC 8DCE68B4 */ lw $t6, %lo(D_800368B4)($t6) +/* 0BF530 7F08AA00 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0BF534 7F08AA04 15C00036 */ bnez $t6, .L7F08AAE0 +/* 0BF538 7F08AA08 00000000 */ nop +/* 0BF53C 7F08AA0C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0BF540 7F08AA10 3C038003 */ lui $v1, %hi(upper_text_window_timer) +/* 0BF544 7F08AA14 246368B0 */ addiu $v1, %lo(upper_text_window_timer) # addiu $v1, $v1, 0x68b0 +/* 0BF548 7F08AA18 8DF829C4 */ lw $t8, 0x29c4($t7) +/* 0BF54C 7F08AA1C 17000030 */ bnez $t8, .L7F08AAE0 +/* 0BF550 7F08AA20 00000000 */ nop +/* 0BF554 7F08AA24 8C620000 */ lw $v0, ($v1) +/* 0BF558 7F08AA28 3C198005 */ lui $t9, %hi(clock_timer) +/* 0BF55C 7F08AA2C 04400020 */ bltz $v0, .L7F08AAB0 +/* 0BF560 7F08AA30 00000000 */ nop +/* 0BF564 7F08AA34 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 0BF568 7F08AA38 3C048003 */ lui $a0, %hi(upper_text_buffer_index) +/* 0BF56C 7F08AA3C 248468A8 */ addiu $a0, %lo(upper_text_buffer_index) # addiu $a0, $a0, 0x68a8 +/* 0BF570 7F08AA40 00594023 */ subu $t0, $v0, $t9 +/* 0BF574 7F08AA44 AC680000 */ sw $t0, ($v1) +/* 0BF578 7F08AA48 0501000F */ bgez $t0, .L7F08AA88 +/* 0BF57C 7F08AA4C 01001025 */ move $v0, $t0 +/* 0BF580 7F08AA50 8C890000 */ lw $t1, ($a0) +/* 0BF584 7F08AA54 3C058003 */ lui $a1, %hi(display_upper_text_window) +/* 0BF588 7F08AA58 24A568AC */ addiu $a1, %lo(display_upper_text_window) # addiu $a1, $a1, 0x68ac +/* 0BF58C 7F08AA5C 8CAC0000 */ lw $t4, ($a1) +/* 0BF590 7F08AA60 252A0001 */ addiu $t2, $t1, 1 +/* 0BF594 7F08AA64 05410004 */ bgez $t2, .L7F08AA78 +/* 0BF598 7F08AA68 314B0001 */ andi $t3, $t2, 1 +/* 0BF59C 7F08AA6C 11600002 */ beqz $t3, .L7F08AA78 +/* 0BF5A0 7F08AA70 00000000 */ nop +/* 0BF5A4 7F08AA74 256BFFFE */ addiu $t3, $t3, -2 +.L7F08AA78: +/* 0BF5A8 7F08AA78 258DFFFF */ addiu $t5, $t4, -1 +/* 0BF5AC 7F08AA7C AC8B0000 */ sw $t3, ($a0) +/* 0BF5B0 7F08AA80 1000000B */ b .L7F08AAB0 +/* 0BF5B4 7F08AA84 ACAD0000 */ sw $t5, ($a1) +.L7F08AA88: +/* 0BF5B8 7F08AA88 3C058003 */ lui $a1, %hi(display_upper_text_window) +/* 0BF5BC 7F08AA8C 24A568AC */ addiu $a1, %lo(display_upper_text_window) # addiu $a1, $a1, 0x68ac +/* 0BF5C0 7F08AA90 8CAE0000 */ lw $t6, ($a1) +/* 0BF5C4 7F08AA94 29C10002 */ slti $at, $t6, 2 +/* 0BF5C8 7F08AA98 14200005 */ bnez $at, .L7F08AAB0 +/* 0BF5CC 7F08AA9C 2841003D */ slti $at, $v0, 0x3d +/* 0BF5D0 7F08AAA0 14200003 */ bnez $at, .L7F08AAB0 +/* 0BF5D4 7F08AAA4 00000000 */ nop +/* 0BF5D8 7F08AAA8 2402003C */ li $v0, 60 +/* 0BF5DC 7F08AAAC AC620000 */ sw $v0, ($v1) +.L7F08AAB0: +/* 0BF5E0 7F08AAB0 3C058003 */ lui $a1, %hi(display_upper_text_window) +/* 0BF5E4 7F08AAB4 0441000A */ bgez $v0, .L7F08AAE0 +/* 0BF5E8 7F08AAB8 24A568AC */ addiu $a1, %lo(display_upper_text_window) # addiu $a1, $a1, 0x68ac +/* 0BF5EC 7F08AABC 8CA20000 */ lw $v0, ($a1) +/* 0BF5F0 7F08AAC0 18400007 */ blez $v0, .L7F08AAE0 +/* 0BF5F4 7F08AAC4 28410002 */ slti $at, $v0, 2 +/* 0BF5F8 7F08AAC8 14200004 */ bnez $at, .L7F08AADC +/* 0BF5FC 7F08AACC 241900F0 */ li $t9, 240 +/* 0BF600 7F08AAD0 2418003C */ li $t8, 60 +/* 0BF604 7F08AAD4 03E00008 */ jr $ra +/* 0BF608 7F08AAD8 AC780000 */ sw $t8, ($v1) + +.L7F08AADC: +/* 0BF60C 7F08AADC AC790000 */ sw $t9, ($v1) +.L7F08AAE0: +/* 0BF610 7F08AAE0 03E00008 */ jr $ra +/* 0BF614 7F08AAE4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08AAE8(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_800552BC +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F08AAE8 +/* 0BF618 7F08AAE8 3C0E8003 */ lui $t6, %hi(D_800368B4) +/* 0BF61C 7F08AAEC 8DCE68B4 */ lw $t6, %lo(D_800368B4)($t6) +/* 0BF620 7F08AAF0 27BDFF18 */ addiu $sp, $sp, -0xe8 +/* 0BF624 7F08AAF4 AFB00038 */ sw $s0, 0x38($sp) +/* 0BF628 7F08AAF8 00808025 */ move $s0, $a0 +/* 0BF62C 7F08AAFC 15C00087 */ bnez $t6, .L7F08AD1C +/* 0BF630 7F08AB00 AFBF003C */ sw $ra, 0x3c($sp) +/* 0BF634 7F08AB04 3C0F8003 */ lui $t7, %hi(upper_text_window_timer) +/* 0BF638 7F08AB08 8DEF68B0 */ lw $t7, %lo(upper_text_window_timer)($t7) +/* 0BF63C 7F08AB0C 3C188003 */ lui $t8, %hi(upper_text_buffer_index) +/* 0BF640 7F08AB10 05E00082 */ bltz $t7, .L7F08AD1C +/* 0BF644 7F08AB14 00000000 */ nop +/* 0BF648 7F08AB18 8F1868A8 */ lw $t8, %lo(upper_text_buffer_index)($t8) +/* 0BF64C 7F08AB1C 3C088008 */ lui $t0, %hi(dword_CODE_bss_80079C70) +/* 0BF650 7F08AB20 3C098008 */ lui $t1, %hi(pPlayer) +/* 0BF654 7F08AB24 0018C880 */ sll $t9, $t8, 2 +/* 0BF658 7F08AB28 0338C821 */ addu $t9, $t9, $t8 +/* 0BF65C 7F08AB2C 0019C880 */ sll $t9, $t9, 2 +/* 0BF660 7F08AB30 0338C823 */ subu $t9, $t9, $t8 +/* 0BF664 7F08AB34 0019C8C0 */ sll $t9, $t9, 3 +/* 0BF668 7F08AB38 0338C823 */ subu $t9, $t9, $t8 +/* 0BF66C 7F08AB3C 01194021 */ addu $t0, $t0, $t9 +/* 0BF670 7F08AB40 91089C70 */ lbu $t0, %lo(dword_CODE_bss_80079C70)($t0) +/* 0BF674 7F08AB44 11000075 */ beqz $t0, .L7F08AD1C +/* 0BF678 7F08AB48 00000000 */ nop +/* 0BF67C 7F08AB4C 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0BF680 7F08AB50 8D2A29C4 */ lw $t2, 0x29c4($t1) +/* 0BF684 7F08AB54 15400071 */ bnez $t2, .L7F08AD1C +/* 0BF688 7F08AB58 00000000 */ nop +/* 0BF68C 7F08AB5C 0FC2B366 */ jal microcode_constructor +/* 0BF690 7F08AB60 00000000 */ nop +/* 0BF694 7F08AB64 3C0B8003 */ lui $t3, %hi(upper_text_buffer_index) +/* 0BF698 7F08AB68 8D6B68A8 */ lw $t3, %lo(upper_text_buffer_index)($t3) +/* 0BF69C 7F08AB6C 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 0BF6A0 7F08AB70 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 0BF6A4 7F08AB74 000B6080 */ sll $t4, $t3, 2 +/* 0BF6A8 7F08AB78 018B6021 */ addu $t4, $t4, $t3 +/* 0BF6AC 7F08AB7C 000C6080 */ sll $t4, $t4, 2 +/* 0BF6B0 7F08AB80 018B6023 */ subu $t4, $t4, $t3 +/* 0BF6B4 7F08AB84 000C60C0 */ sll $t4, $t4, 3 +/* 0BF6B8 7F08AB88 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_80079C70) +/* 0BF6BC 7F08AB8C 25AD9C70 */ addiu $t5, %lo(dword_CODE_bss_80079C70) # addiu $t5, $t5, -0x6390 +/* 0BF6C0 7F08AB90 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 0BF6C4 7F08AB94 018B6023 */ subu $t4, $t4, $t3 +/* 0BF6C8 7F08AB98 00408025 */ move $s0, $v0 +/* 0BF6CC 7F08AB9C AFA000D4 */ sw $zero, 0xd4($sp) +/* 0BF6D0 7F08ABA0 AFA000D8 */ sw $zero, 0xd8($sp) +/* 0BF6D4 7F08ABA4 018D3021 */ addu $a2, $t4, $t5 +/* 0BF6D8 7F08ABA8 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 0BF6DC 7F08ABAC 27A400D8 */ addiu $a0, $sp, 0xd8 +/* 0BF6E0 7F08ABB0 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 0BF6E4 7F08ABB4 AFA00014 */ sw $zero, 0x14($sp) +/* 0BF6E8 7F08ABB8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0BF6EC 7F08ABBC AFAE0010 */ sw $t6, 0x10($sp) +/* 0BF6F0 7F08ABC0 3C0F8003 */ lui $t7, %hi(camera_8003642C) +/* 0BF6F4 7F08ABC4 8DEF642C */ lw $t7, %lo(camera_8003642C)($t7) +/* 0BF6F8 7F08ABC8 11E0001B */ beqz $t7, .L7F08AC38 +/* 0BF6FC 7F08ABCC 00000000 */ nop +/* 0BF700 7F08ABD0 0C001145 */ jal get_video2_settings_ulx +/* 0BF704 7F08ABD4 00000000 */ nop +/* 0BF708 7F08ABD8 24580046 */ addiu $t8, $v0, 0x46 +/* 0BF70C 7F08ABDC 0C001149 */ jal get_video2_settings_uly +/* 0BF710 7F08ABE0 AFB800E4 */ sw $t8, 0xe4($sp) +/* 0BF714 7F08ABE4 00401825 */ move $v1, $v0 +/* 0BF718 7F08ABE8 24630020 */ addiu $v1, $v1, 0x20 +/* 0BF71C 7F08ABEC 2404000B */ li $a0, 11 +/* 0BF720 7F08ABF0 0064001A */ div $zero, $v1, $a0 +/* 0BF724 7F08ABF4 14800002 */ bnez $a0, .L7F08AC00 +/* 0BF728 7F08ABF8 00000000 */ nop +/* 0BF72C 7F08ABFC 0007000D */ break 7 +.L7F08AC00: +/* 0BF730 7F08AC00 2401FFFF */ li $at, -1 +/* 0BF734 7F08AC04 14810004 */ bne $a0, $at, .L7F08AC18 +/* 0BF738 7F08AC08 3C018000 */ lui $at, 0x8000 +/* 0BF73C 7F08AC0C 14610002 */ bne $v1, $at, .L7F08AC18 +/* 0BF740 7F08AC10 00000000 */ nop +/* 0BF744 7F08AC14 0006000D */ break 6 +.L7F08AC18: +/* 0BF748 7F08AC18 00001812 */ mflo $v1 +/* 0BF74C 7F08AC1C 00000000 */ nop +/* 0BF750 7F08AC20 00000000 */ nop +/* 0BF754 7F08AC24 00640019 */ multu $v1, $a0 +/* 0BF758 7F08AC28 00001812 */ mflo $v1 +/* 0BF75C 7F08AC2C 2463FFFE */ addiu $v1, $v1, -2 +/* 0BF760 7F08AC30 10000008 */ b .L7F08AC54 +/* 0BF764 7F08AC34 8FA800D8 */ lw $t0, 0xd8($sp) +.L7F08AC38: +/* 0BF768 7F08AC38 0C001145 */ jal get_video2_settings_ulx +/* 0BF76C 7F08AC3C 00000000 */ nop +/* 0BF770 7F08AC40 2459001E */ addiu $t9, $v0, 0x1e +/* 0BF774 7F08AC44 0C001149 */ jal get_video2_settings_uly +/* 0BF778 7F08AC48 AFB900E4 */ sw $t9, 0xe4($sp) +/* 0BF77C 7F08AC4C 2443000D */ addiu $v1, $v0, 0xd +/* 0BF780 7F08AC50 8FA800D8 */ lw $t0, 0xd8($sp) +.L7F08AC54: +/* 0BF784 7F08AC54 AFA300E0 */ sw $v1, 0xe0($sp) +/* 0BF788 7F08AC58 00684821 */ addu $t1, $v1, $t0 +/* 0BF78C 7F08AC5C 0C001107 */ jal get_video2_settings_txtClipW +/* 0BF790 7F08AC60 AFA900DC */ sw $t1, 0xdc($sp) +/* 0BF794 7F08AC64 8FA300E0 */ lw $v1, 0xe0($sp) +/* 0BF798 7F08AC68 8FAA00DC */ lw $t2, 0xdc($sp) +/* 0BF79C 7F08AC6C 240B0064 */ li $t3, 100 +/* 0BF7A0 7F08AC70 AFAB0014 */ sw $t3, 0x14($sp) +/* 0BF7A4 7F08AC74 02002025 */ move $a0, $s0 +/* 0BF7A8 7F08AC78 00002825 */ move $a1, $zero +/* 0BF7AC 7F08AC7C 00403825 */ move $a3, $v0 +/* 0BF7B0 7F08AC80 2466FFFE */ addiu $a2, $v1, -2 +/* 0BF7B4 7F08AC84 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0BF7B8 7F08AC88 AFAA0010 */ sw $t2, 0x10($sp) +/* 0BF7BC 7F08AC8C 0C001107 */ jal get_video2_settings_txtClipW +/* 0BF7C0 7F08AC90 00408025 */ move $s0, $v0 +/* 0BF7C4 7F08AC94 0C00110B */ jal get_video2_settings_txtClipH +/* 0BF7C8 7F08AC98 A7A20048 */ sh $v0, 0x48($sp) +/* 0BF7CC 7F08AC9C 3C0C8003 */ lui $t4, %hi(upper_text_buffer_index) +/* 0BF7D0 7F08ACA0 8D8C68A8 */ lw $t4, %lo(upper_text_buffer_index)($t4) +/* 0BF7D4 7F08ACA4 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableLarge) +/* 0BF7D8 7F08ACA8 3C188004 */ lui $t8, %hi(ptrFirstFontTableLarge) +/* 0BF7DC 7F08ACAC 000C6880 */ sll $t5, $t4, 2 +/* 0BF7E0 7F08ACB0 01AC6821 */ addu $t5, $t5, $t4 +/* 0BF7E4 7F08ACB4 000D6880 */ sll $t5, $t5, 2 +/* 0BF7E8 7F08ACB8 01AC6823 */ subu $t5, $t5, $t4 +/* 0BF7EC 7F08ACBC 8F180EB4 */ lw $t8, %lo(ptrFirstFontTableLarge)($t8) +/* 0BF7F0 7F08ACC0 8DEF0EB8 */ lw $t7, %lo(ptrSecondFontTableLarge)($t7) +/* 0BF7F4 7F08ACC4 87A80048 */ lh $t0, 0x48($sp) +/* 0BF7F8 7F08ACC8 000D68C0 */ sll $t5, $t5, 3 +/* 0BF7FC 7F08ACCC 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_80079C70) +/* 0BF800 7F08ACD0 25CE9C70 */ addiu $t6, %lo(dword_CODE_bss_80079C70) # addiu $t6, $t6, -0x6390 +/* 0BF804 7F08ACD4 2419FFFF */ li $t9, -1 +/* 0BF808 7F08ACD8 01AC6823 */ subu $t5, $t5, $t4 +/* 0BF80C 7F08ACDC 01AE3821 */ addu $a3, $t5, $t6 +/* 0BF810 7F08ACE0 AFB90018 */ sw $t9, 0x18($sp) +/* 0BF814 7F08ACE4 02002025 */ move $a0, $s0 +/* 0BF818 7F08ACE8 27A500E4 */ addiu $a1, $sp, 0xe4 +/* 0BF81C 7F08ACEC 27A600E0 */ addiu $a2, $sp, 0xe0 +/* 0BF820 7F08ACF0 AFA20020 */ sw $v0, 0x20($sp) +/* 0BF824 7F08ACF4 AFA00024 */ sw $zero, 0x24($sp) +/* 0BF828 7F08ACF8 AFA00028 */ sw $zero, 0x28($sp) +/* 0BF82C 7F08ACFC AFB80014 */ sw $t8, 0x14($sp) +/* 0BF830 7F08AD00 AFAF0010 */ sw $t7, 0x10($sp) +/* 0BF834 7F08AD04 0FC2B6AF */ jal en_text_write_stuff +/* 0BF838 7F08AD08 AFA8001C */ sw $t0, 0x1c($sp) +/* 0BF83C 7F08AD0C 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0BF840 7F08AD10 00402025 */ move $a0, $v0 +/* 0BF844 7F08AD14 100000F1 */ b .L7F08B0DC +/* 0BF848 7F08AD18 00408025 */ move $s0, $v0 +.L7F08AD1C: +/* 0BF84C 7F08AD1C 0FC243E2 */ jal get_debug_testingmanpos_flag +/* 0BF850 7F08AD20 00000000 */ nop +/* 0BF854 7F08AD24 104000ED */ beqz $v0, .L7F08B0DC +/* 0BF858 7F08AD28 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BF85C 7F08AD2C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF860 7F08AD30 C4400498 */ lwc1 $f0, 0x498($v0) +/* 0BF864 7F08AD34 C44E04A0 */ lwc1 $f14, 0x4a0($v0) +/* 0BF868 7F08AD38 0FC16A8C */ jal atan2f +/* 0BF86C 7F08AD3C 46000307 */ neg.s $f12, $f0 +/* 0BF870 7F08AD40 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0BF874 7F08AD44 44812000 */ mtc1 $at, $f4 +/* 0BF878 7F08AD48 3C018005 */ lui $at, %hi(D_800552BC) +/* 0BF87C 7F08AD4C C42852BC */ lwc1 $f8, %lo(D_800552BC)($at) +/* 0BF880 7F08AD50 46040182 */ mul.s $f6, $f0, $f4 +/* 0BF884 7F08AD54 3C0C8003 */ lui $t4, %hi(D_800368B8) +/* 0BF888 7F08AD58 258C68B8 */ addiu $t4, %lo(D_800368B8) # addiu $t4, $t4, 0x68b8 +/* 0BF88C 7F08AD5C 27AB004C */ addiu $t3, $sp, 0x4c +/* 0BF890 7F08AD60 3C188008 */ lui $t8, %hi(pPlayer) +/* 0BF894 7F08AD64 46083283 */ div.s $f10, $f6, $f8 +/* 0BF898 7F08AD68 4600540D */ trunc.w.s $f16, $f10 +/* 0BF89C 7F08AD6C 440A8000 */ mfc1 $t2, $f16 +/* 0BF8A0 7F08AD70 00000000 */ nop +/* 0BF8A4 7F08AD74 AFAA0068 */ sw $t2, 0x68($sp) +/* 0BF8A8 7F08AD78 8D810000 */ lw $at, ($t4) +/* 0BF8AC 7F08AD7C 8D8F0004 */ lw $t7, 4($t4) +/* 0BF8B0 7F08AD80 AD610000 */ sw $at, ($t3) +/* 0BF8B4 7F08AD84 8D810008 */ lw $at, 8($t4) +/* 0BF8B8 7F08AD88 AD6F0004 */ sw $t7, 4($t3) +/* 0BF8BC 7F08AD8C 8D8F000C */ lw $t7, 0xc($t4) +/* 0BF8C0 7F08AD90 AD610008 */ sw $at, 8($t3) +/* 0BF8C4 7F08AD94 8D810010 */ lw $at, 0x10($t4) +/* 0BF8C8 7F08AD98 AD6F000C */ sw $t7, 0xc($t3) +/* 0BF8CC 7F08AD9C 8D8F0014 */ lw $t7, 0x14($t4) +/* 0BF8D0 7F08ADA0 AD610010 */ sw $at, 0x10($t3) +/* 0BF8D4 7F08ADA4 9981001A */ lwr $at, 0x1a($t4) +/* 0BF8D8 7F08ADA8 AD6F0014 */ sw $t7, 0x14($t3) +/* 0BF8DC 7F08ADAC B961001A */ swr $at, 0x1a($t3) +/* 0BF8E0 7F08ADB0 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0BF8E4 7F08ADB4 8F190488 */ lw $t9, 0x488($t8) +/* 0BF8E8 7F08ADB8 0FC2D778 */ jal sub_GAME_7F0B5DE0 +/* 0BF8EC 7F08ADBC 93240003 */ lbu $a0, 3($t9) +/* 0BF8F0 7F08ADC0 3C058005 */ lui $a1, %hi(a8s) +/* 0BF8F4 7F08ADC4 24A54FC0 */ addiu $a1, %lo(a8s) # addiu $a1, $a1, 0x4fc0 +/* 0BF8F8 7F08ADC8 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 0BF8FC 7F08ADCC 0C002B25 */ jal sprintf +/* 0BF900 7F08ADD0 00403025 */ move $a2, $v0 +/* 0BF904 7F08ADD4 3C088008 */ lui $t0, %hi(pPlayer) +/* 0BF908 7F08ADD8 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0BF90C 7F08ADDC 3C058005 */ lui $a1, %hi(aX4_0f) +/* 0BF910 7F08ADE0 24A54FC4 */ addiu $a1, %lo(aX4_0f) # addiu $a1, $a1, 0x4fc4 +/* 0BF914 7F08ADE4 C512048C */ lwc1 $f18, 0x48c($t0) +/* 0BF918 7F08ADE8 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 0BF91C 7F08ADEC 46009121 */ cvt.d.s $f4, $f18 +/* 0BF920 7F08ADF0 44072000 */ mfc1 $a3, $f4 +/* 0BF924 7F08ADF4 44062800 */ mfc1 $a2, $f5 +/* 0BF928 7F08ADF8 0C002B25 */ jal sprintf +/* 0BF92C 7F08ADFC 00000000 */ nop +/* 0BF930 7F08AE00 3C098008 */ lui $t1, %hi(pPlayer) +/* 0BF934 7F08AE04 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0BF938 7F08AE08 3C058005 */ lui $a1, %hi(aY4_0f) +/* 0BF93C 7F08AE0C 24A54FCC */ addiu $a1, %lo(aY4_0f) # addiu $a1, $a1, 0x4fcc +/* 0BF940 7F08AE10 C5260490 */ lwc1 $f6, 0x490($t1) +/* 0BF944 7F08AE14 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 0BF948 7F08AE18 46003221 */ cvt.d.s $f8, $f6 +/* 0BF94C 7F08AE1C 44074000 */ mfc1 $a3, $f8 +/* 0BF950 7F08AE20 44064800 */ mfc1 $a2, $f9 +/* 0BF954 7F08AE24 0C002B25 */ jal sprintf +/* 0BF958 7F08AE28 00000000 */ nop +/* 0BF95C 7F08AE2C 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0BF960 7F08AE30 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0BF964 7F08AE34 3C058005 */ lui $a1, %hi(aZ4_0f) +/* 0BF968 7F08AE38 24A54FD4 */ addiu $a1, %lo(aZ4_0f) # addiu $a1, $a1, 0x4fd4 +/* 0BF96C 7F08AE3C C54A0494 */ lwc1 $f10, 0x494($t2) +/* 0BF970 7F08AE40 27A40094 */ addiu $a0, $sp, 0x94 +/* 0BF974 7F08AE44 46005421 */ cvt.d.s $f16, $f10 +/* 0BF978 7F08AE48 44078000 */ mfc1 $a3, $f16 +/* 0BF97C 7F08AE4C 44068800 */ mfc1 $a2, $f17 +/* 0BF980 7F08AE50 0C002B25 */ jal sprintf +/* 0BF984 7F08AE54 00000000 */ nop +/* 0BF988 7F08AE58 8FA70068 */ lw $a3, 0x68($sp) +/* 0BF98C 7F08AE5C 2401002D */ li $at, 45 +/* 0BF990 7F08AE60 3C058005 */ lui $a1, %hi(aS3d) +/* 0BF994 7F08AE64 24EE0016 */ addiu $t6, $a3, 0x16 +/* 0BF998 7F08AE68 01C1001A */ div $zero, $t6, $at +/* 0BF99C 7F08AE6C 00006812 */ mflo $t5 +/* 0BF9A0 7F08AE70 000D5880 */ sll $t3, $t5, 2 +/* 0BF9A4 7F08AE74 016D5823 */ subu $t3, $t3, $t5 +/* 0BF9A8 7F08AE78 27AC004C */ addiu $t4, $sp, 0x4c +/* 0BF9AC 7F08AE7C 016C3021 */ addu $a2, $t3, $t4 +/* 0BF9B0 7F08AE80 24A54FDC */ addiu $a1, %lo(aS3d) # addiu $a1, $a1, 0x4fdc +/* 0BF9B4 7F08AE84 0C002B25 */ jal sprintf +/* 0BF9B8 7F08AE88 27A40084 */ addiu $a0, $sp, 0x84 +/* 0BF9BC 7F08AE8C 0C001145 */ jal get_video2_settings_ulx +/* 0BF9C0 7F08AE90 00000000 */ nop +/* 0BF9C4 7F08AE94 244F0011 */ addiu $t7, $v0, 0x11 +/* 0BF9C8 7F08AE98 0C001149 */ jal get_video2_settings_uly +/* 0BF9CC 7F08AE9C AFAF0080 */ sw $t7, 0x80($sp) +/* 0BF9D0 7F08AEA0 24460011 */ addiu $a2, $v0, 0x11 +/* 0BF9D4 7F08AEA4 24D8000A */ addiu $t8, $a2, 0xa +/* 0BF9D8 7F08AEA8 AFB80074 */ sw $t8, 0x74($sp) +/* 0BF9DC 7F08AEAC AFA6007C */ sw $a2, 0x7c($sp) +/* 0BF9E0 7F08AEB0 0FC2B366 */ jal microcode_constructor +/* 0BF9E4 7F08AEB4 02002025 */ move $a0, $s0 +/* 0BF9E8 7F08AEB8 0C001107 */ jal get_video2_settings_txtClipW +/* 0BF9EC 7F08AEBC 00408025 */ move $s0, $v0 +/* 0BF9F0 7F08AEC0 8FB90074 */ lw $t9, 0x74($sp) +/* 0BF9F4 7F08AEC4 24090064 */ li $t1, 100 +/* 0BF9F8 7F08AEC8 AFA90014 */ sw $t1, 0x14($sp) +/* 0BF9FC 7F08AECC 27280001 */ addiu $t0, $t9, 1 +/* 0BFA00 7F08AED0 AFA80010 */ sw $t0, 0x10($sp) +/* 0BFA04 7F08AED4 8FA6007C */ lw $a2, 0x7c($sp) +/* 0BFA08 7F08AED8 02002025 */ move $a0, $s0 +/* 0BFA0C 7F08AEDC 00002825 */ move $a1, $zero +/* 0BFA10 7F08AEE0 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0BFA14 7F08AEE4 00403825 */ move $a3, $v0 +/* 0BFA18 7F08AEE8 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFA1C 7F08AEEC 00408025 */ move $s0, $v0 +/* 0BFA20 7F08AEF0 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFA24 7F08AEF4 A7A20048 */ sh $v0, 0x48($sp) +/* 0BFA28 7F08AEF8 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) +/* 0BFA2C 7F08AEFC 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0BFA30 7F08AF00 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0BFA34 7F08AF04 8D4A0EB0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0BFA38 7F08AF08 87AB0048 */ lh $t3, 0x48($sp) +/* 0BFA3C 7F08AF0C 240DFFFF */ li $t5, -1 +/* 0BFA40 7F08AF10 AFAD0018 */ sw $t5, 0x18($sp) +/* 0BFA44 7F08AF14 02002025 */ move $a0, $s0 +/* 0BFA48 7F08AF18 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BFA4C 7F08AF1C 27A6007C */ addiu $a2, $sp, 0x7c +/* 0BFA50 7F08AF20 27A700C4 */ addiu $a3, $sp, 0xc4 +/* 0BFA54 7F08AF24 AFA20020 */ sw $v0, 0x20($sp) +/* 0BFA58 7F08AF28 AFA00024 */ sw $zero, 0x24($sp) +/* 0BFA5C 7F08AF2C AFA00028 */ sw $zero, 0x28($sp) +/* 0BFA60 7F08AF30 AFAE0014 */ sw $t6, 0x14($sp) +/* 0BFA64 7F08AF34 AFAA0010 */ sw $t2, 0x10($sp) +/* 0BFA68 7F08AF38 0FC2B6AF */ jal en_text_write_stuff +/* 0BFA6C 7F08AF3C AFAB001C */ sw $t3, 0x1c($sp) +/* 0BFA70 7F08AF40 0C001145 */ jal get_video2_settings_ulx +/* 0BFA74 7F08AF44 00408025 */ move $s0, $v0 +/* 0BFA78 7F08AF48 244C0057 */ addiu $t4, $v0, 0x57 +/* 0BFA7C 7F08AF4C 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFA80 7F08AF50 AFAC0080 */ sw $t4, 0x80($sp) +/* 0BFA84 7F08AF54 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFA88 7F08AF58 A7A20048 */ sh $v0, 0x48($sp) +/* 0BFA8C 7F08AF5C 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0BFA90 7F08AF60 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0BFA94 7F08AF64 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0BFA98 7F08AF68 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0BFA9C 7F08AF6C 87A80048 */ lh $t0, 0x48($sp) +/* 0BFAA0 7F08AF70 2419FFFF */ li $t9, -1 +/* 0BFAA4 7F08AF74 AFB90018 */ sw $t9, 0x18($sp) +/* 0BFAA8 7F08AF78 02002025 */ move $a0, $s0 +/* 0BFAAC 7F08AF7C 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BFAB0 7F08AF80 27A6007C */ addiu $a2, $sp, 0x7c +/* 0BFAB4 7F08AF84 27A700B4 */ addiu $a3, $sp, 0xb4 +/* 0BFAB8 7F08AF88 AFA20020 */ sw $v0, 0x20($sp) +/* 0BFABC 7F08AF8C AFA00024 */ sw $zero, 0x24($sp) +/* 0BFAC0 7F08AF90 AFA00028 */ sw $zero, 0x28($sp) +/* 0BFAC4 7F08AF94 AFB80014 */ sw $t8, 0x14($sp) +/* 0BFAC8 7F08AF98 AFAF0010 */ sw $t7, 0x10($sp) +/* 0BFACC 7F08AF9C 0FC2B6AF */ jal en_text_write_stuff +/* 0BFAD0 7F08AFA0 AFA8001C */ sw $t0, 0x1c($sp) +/* 0BFAD4 7F08AFA4 0C001145 */ jal get_video2_settings_ulx +/* 0BFAD8 7F08AFA8 00408025 */ move $s0, $v0 +/* 0BFADC 7F08AFAC 2449008D */ addiu $t1, $v0, 0x8d +/* 0BFAE0 7F08AFB0 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFAE4 7F08AFB4 AFA90080 */ sw $t1, 0x80($sp) +/* 0BFAE8 7F08AFB8 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFAEC 7F08AFBC A7A20048 */ sh $v0, 0x48($sp) +/* 0BFAF0 7F08AFC0 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) +/* 0BFAF4 7F08AFC4 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0BFAF8 7F08AFC8 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0BFAFC 7F08AFCC 8D4A0EB0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0BFB00 7F08AFD0 87AB0048 */ lh $t3, 0x48($sp) +/* 0BFB04 7F08AFD4 240DFFFF */ li $t5, -1 +/* 0BFB08 7F08AFD8 AFAD0018 */ sw $t5, 0x18($sp) +/* 0BFB0C 7F08AFDC 02002025 */ move $a0, $s0 +/* 0BFB10 7F08AFE0 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BFB14 7F08AFE4 27A6007C */ addiu $a2, $sp, 0x7c +/* 0BFB18 7F08AFE8 27A700A4 */ addiu $a3, $sp, 0xa4 +/* 0BFB1C 7F08AFEC AFA20020 */ sw $v0, 0x20($sp) +/* 0BFB20 7F08AFF0 AFA00024 */ sw $zero, 0x24($sp) +/* 0BFB24 7F08AFF4 AFA00028 */ sw $zero, 0x28($sp) +/* 0BFB28 7F08AFF8 AFAE0014 */ sw $t6, 0x14($sp) +/* 0BFB2C 7F08AFFC AFAA0010 */ sw $t2, 0x10($sp) +/* 0BFB30 7F08B000 0FC2B6AF */ jal en_text_write_stuff +/* 0BFB34 7F08B004 AFAB001C */ sw $t3, 0x1c($sp) +/* 0BFB38 7F08B008 0C001145 */ jal get_video2_settings_ulx +/* 0BFB3C 7F08B00C 00408025 */ move $s0, $v0 +/* 0BFB40 7F08B010 244C00C3 */ addiu $t4, $v0, 0xc3 +/* 0BFB44 7F08B014 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFB48 7F08B018 AFAC0080 */ sw $t4, 0x80($sp) +/* 0BFB4C 7F08B01C 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFB50 7F08B020 A7A20048 */ sh $v0, 0x48($sp) +/* 0BFB54 7F08B024 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0BFB58 7F08B028 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0BFB5C 7F08B02C 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0BFB60 7F08B030 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0BFB64 7F08B034 87A80048 */ lh $t0, 0x48($sp) +/* 0BFB68 7F08B038 2419FFFF */ li $t9, -1 +/* 0BFB6C 7F08B03C AFB90018 */ sw $t9, 0x18($sp) +/* 0BFB70 7F08B040 02002025 */ move $a0, $s0 +/* 0BFB74 7F08B044 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BFB78 7F08B048 27A6007C */ addiu $a2, $sp, 0x7c +/* 0BFB7C 7F08B04C 27A70094 */ addiu $a3, $sp, 0x94 +/* 0BFB80 7F08B050 AFA20020 */ sw $v0, 0x20($sp) +/* 0BFB84 7F08B054 AFA00024 */ sw $zero, 0x24($sp) +/* 0BFB88 7F08B058 AFA00028 */ sw $zero, 0x28($sp) +/* 0BFB8C 7F08B05C AFB80014 */ sw $t8, 0x14($sp) +/* 0BFB90 7F08B060 AFAF0010 */ sw $t7, 0x10($sp) +/* 0BFB94 7F08B064 0FC2B6AF */ jal en_text_write_stuff +/* 0BFB98 7F08B068 AFA8001C */ sw $t0, 0x1c($sp) +/* 0BFB9C 7F08B06C 0C001145 */ jal get_video2_settings_ulx +/* 0BFBA0 7F08B070 00408025 */ move $s0, $v0 +/* 0BFBA4 7F08B074 244900F9 */ addiu $t1, $v0, 0xf9 +/* 0BFBA8 7F08B078 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFBAC 7F08B07C AFA90080 */ sw $t1, 0x80($sp) +/* 0BFBB0 7F08B080 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFBB4 7F08B084 A7A20048 */ sh $v0, 0x48($sp) +/* 0BFBB8 7F08B088 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) +/* 0BFBBC 7F08B08C 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0BFBC0 7F08B090 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0BFBC4 7F08B094 8D4A0EB0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0BFBC8 7F08B098 87AB0048 */ lh $t3, 0x48($sp) +/* 0BFBCC 7F08B09C 240DFFFF */ li $t5, -1 +/* 0BFBD0 7F08B0A0 AFAD0018 */ sw $t5, 0x18($sp) +/* 0BFBD4 7F08B0A4 02002025 */ move $a0, $s0 +/* 0BFBD8 7F08B0A8 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BFBDC 7F08B0AC 27A6007C */ addiu $a2, $sp, 0x7c +/* 0BFBE0 7F08B0B0 27A70084 */ addiu $a3, $sp, 0x84 +/* 0BFBE4 7F08B0B4 AFA20020 */ sw $v0, 0x20($sp) +/* 0BFBE8 7F08B0B8 AFA00024 */ sw $zero, 0x24($sp) +/* 0BFBEC 7F08B0BC AFA00028 */ sw $zero, 0x28($sp) +/* 0BFBF0 7F08B0C0 AFAE0014 */ sw $t6, 0x14($sp) +/* 0BFBF4 7F08B0C4 AFAA0010 */ sw $t2, 0x10($sp) +/* 0BFBF8 7F08B0C8 0FC2B6AF */ jal en_text_write_stuff +/* 0BFBFC 7F08B0CC AFAB001C */ sw $t3, 0x1c($sp) +/* 0BFC00 7F08B0D0 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0BFC04 7F08B0D4 00402025 */ move $a0, $v0 +/* 0BFC08 7F08B0D8 00408025 */ move $s0, $v0 +.L7F08B0DC: +/* 0BFC0C 7F08B0DC 8FBF003C */ lw $ra, 0x3c($sp) +/* 0BFC10 7F08B0E0 02001025 */ move $v0, $s0 +/* 0BFC14 7F08B0E4 8FB00038 */ lw $s0, 0x38($sp) +/* 0BFC18 7F08B0E8 03E00008 */ jr $ra +/* 0BFC1C 7F08B0EC 27BD00E8 */ addiu $sp, $sp, 0xe8 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_800552BC +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F08AAE8 +/* 0BFE34 7F08B2C4 3C0E8003 */ lui $t6, %hi(D_800368B4) # $t6, 0x8003 +/* 0BFE38 7F08B2C8 8DCE68EC */ lw $t6, %lo(D_800368B4)($t6) +/* 0BFE3C 7F08B2CC 27BDFF18 */ addiu $sp, $sp, -0xe8 +/* 0BFE40 7F08B2D0 AFB00038 */ sw $s0, 0x38($sp) +/* 0BFE44 7F08B2D4 00808025 */ move $s0, $a0 +/* 0BFE48 7F08B2D8 15C000B2 */ bnez $t6, .Ljp7F08B5A4 +/* 0BFE4C 7F08B2DC AFBF003C */ sw $ra, 0x3c($sp) +/* 0BFE50 7F08B2E0 3C0F8003 */ lui $t7, %hi(upper_text_window_timer) # $t7, 0x8003 +/* 0BFE54 7F08B2E4 8DEF68E8 */ lw $t7, %lo(upper_text_window_timer)($t7) +/* 0BFE58 7F08B2E8 3C188003 */ lui $t8, %hi(upper_text_buffer_index) # $t8, 0x8003 +/* 0BFE5C 7F08B2EC 05E000AD */ bltz $t7, .Ljp7F08B5A4 +/* 0BFE60 7F08B2F0 00000000 */ nop +/* 0BFE64 7F08B2F4 8F1868E0 */ lw $t8, %lo(upper_text_buffer_index)($t8) +/* 0BFE68 7F08B2F8 3C088008 */ lui $t0, %hi(dword_CODE_bss_80079C70) +/* 0BFE6C 7F08B2FC 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0BFE70 7F08B300 0018C880 */ sll $t9, $t8, 2 +/* 0BFE74 7F08B304 0338C821 */ addu $t9, $t9, $t8 +/* 0BFE78 7F08B308 0019C880 */ sll $t9, $t9, 2 +/* 0BFE7C 7F08B30C 0338C823 */ subu $t9, $t9, $t8 +/* 0BFE80 7F08B310 0019C8C0 */ sll $t9, $t9, 3 +/* 0BFE84 7F08B314 0338C823 */ subu $t9, $t9, $t8 +/* 0BFE88 7F08B318 01194021 */ addu $t0, $t0, $t9 +/* 0BFE8C 7F08B31C 91089CE0 */ lbu $t0, %lo(dword_CODE_bss_80079C70)($t0) +/* 0BFE90 7F08B320 110000A0 */ beqz $t0, .Ljp7F08B5A4 +/* 0BFE94 7F08B324 00000000 */ nop +/* 0BFE98 7F08B328 8D29A120 */ lw $t1, %lo(pPlayer)($t1) +/* 0BFE9C 7F08B32C 8D2A29C4 */ lw $t2, 0x29c4($t1) +/* 0BFEA0 7F08B330 1540009C */ bnez $t2, .Ljp7F08B5A4 +/* 0BFEA4 7F08B334 00000000 */ nop +/* 0BFEA8 7F08B338 0FC2B652 */ jal microcode_constructor +/* 0BFEAC 7F08B33C 00000000 */ nop +/* 0BFEB0 7F08B340 3C0B8003 */ lui $t3, %hi(upper_text_buffer_index) # $t3, 0x8003 +/* 0BFEB4 7F08B344 8D6B68E0 */ lw $t3, %lo(upper_text_buffer_index)($t3) +/* 0BFEB8 7F08B348 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) # $t6, 0x8004 +/* 0BFEBC 7F08B34C 8DCE0EE4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 0BFEC0 7F08B350 000B6080 */ sll $t4, $t3, 2 +/* 0BFEC4 7F08B354 018B6021 */ addu $t4, $t4, $t3 +/* 0BFEC8 7F08B358 000C6080 */ sll $t4, $t4, 2 +/* 0BFECC 7F08B35C 018B6023 */ subu $t4, $t4, $t3 +/* 0BFED0 7F08B360 000C60C0 */ sll $t4, $t4, 3 +/* 0BFED4 7F08B364 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_80079C70) # $t5, 0x8008 +/* 0BFED8 7F08B368 25AD9CE0 */ addiu $t5, %lo(dword_CODE_bss_80079C70) # addiu $t5, $t5, -0x6320 +/* 0BFEDC 7F08B36C 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) # $a3, 0x8004 +/* 0BFEE0 7F08B370 018B6023 */ subu $t4, $t4, $t3 +/* 0BFEE4 7F08B374 00408025 */ move $s0, $v0 +/* 0BFEE8 7F08B378 AFA000D4 */ sw $zero, 0xd4($sp) +/* 0BFEEC 7F08B37C AFA000D8 */ sw $zero, 0xd8($sp) +/* 0BFEF0 7F08B380 018D3021 */ addu $a2, $t4, $t5 +/* 0BFEF4 7F08B384 8CE70EE8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 0BFEF8 7F08B388 27A400D8 */ addiu $a0, $sp, 0xd8 +/* 0BFEFC 7F08B38C 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 0BFF00 7F08B390 AFA00014 */ sw $zero, 0x14($sp) +/* 0BFF04 7F08B394 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0BFF08 7F08B398 AFAE0010 */ sw $t6, 0x10($sp) +/* 0BFF0C 7F08B39C 3C0F8003 */ lui $t7, %hi(camera_8003642C) # $t7, 0x8003 +/* 0BFF10 7F08B3A0 8DEF646C */ lw $t7, %lo(camera_8003642C)($t7) +/* 0BFF14 7F08B3A4 11E0001B */ beqz $t7, .Ljp7F08B414 +/* 0BFF18 7F08B3A8 00000000 */ nop +/* 0BFF1C 7F08B3AC 0C001145 */ jal get_video2_settings_ulx +/* 0BFF20 7F08B3B0 00000000 */ nop +/* 0BFF24 7F08B3B4 24580046 */ addiu $t8, $v0, 0x46 +/* 0BFF28 7F08B3B8 0C001149 */ jal get_video2_settings_uly +/* 0BFF2C 7F08B3BC AFB800E4 */ sw $t8, 0xe4($sp) +/* 0BFF30 7F08B3C0 00401825 */ move $v1, $v0 +/* 0BFF34 7F08B3C4 24630020 */ addiu $v1, $v1, 0x20 +/* 0BFF38 7F08B3C8 2404000B */ li $a0, 11 +/* 0BFF3C 7F08B3CC 0064001A */ div $zero, $v1, $a0 +/* 0BFF40 7F08B3D0 14800002 */ bnez $a0, .Ljp7F08B3DC +/* 0BFF44 7F08B3D4 00000000 */ nop +/* 0BFF48 7F08B3D8 0007000D */ break 7 +.Ljp7F08B3DC: +/* 0BFF4C 7F08B3DC 2401FFFF */ li $at, -1 +/* 0BFF50 7F08B3E0 14810004 */ bne $a0, $at, .Ljp7F08B3F4 +/* 0BFF54 7F08B3E4 3C018000 */ lui $at, 0x8000 +/* 0BFF58 7F08B3E8 14610002 */ bne $v1, $at, .Ljp7F08B3F4 +/* 0BFF5C 7F08B3EC 00000000 */ nop +/* 0BFF60 7F08B3F0 0006000D */ break 6 +.Ljp7F08B3F4: +/* 0BFF64 7F08B3F4 00001812 */ mflo $v1 +/* 0BFF68 7F08B3F8 00000000 */ nop +/* 0BFF6C 7F08B3FC 00000000 */ nop +/* 0BFF70 7F08B400 00640019 */ multu $v1, $a0 +/* 0BFF74 7F08B404 00001812 */ mflo $v1 +/* 0BFF78 7F08B408 2463FFFE */ addiu $v1, $v1, -2 +/* 0BFF7C 7F08B40C 10000008 */ b .Ljp7F08B430 +/* 0BFF80 7F08B410 8FA800D8 */ lw $t0, 0xd8($sp) +.Ljp7F08B414: +/* 0BFF84 7F08B414 0C001145 */ jal get_video2_settings_ulx +/* 0BFF88 7F08B418 00000000 */ nop +/* 0BFF8C 7F08B41C 2459001E */ addiu $t9, $v0, 0x1e +/* 0BFF90 7F08B420 0C001149 */ jal get_video2_settings_uly +/* 0BFF94 7F08B424 AFB900E4 */ sw $t9, 0xe4($sp) +/* 0BFF98 7F08B428 2443000D */ addiu $v1, $v0, 0xd +/* 0BFF9C 7F08B42C 8FA800D8 */ lw $t0, 0xd8($sp) +.Ljp7F08B430: +/* 0BFFA0 7F08B430 AFA300E0 */ sw $v1, 0xe0($sp) +/* 0BFFA4 7F08B434 00684821 */ addu $t1, $v1, $t0 +/* 0BFFA8 7F08B438 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFFAC 7F08B43C AFA900DC */ sw $t1, 0xdc($sp) +/* 0BFFB0 7F08B440 8FA300E0 */ lw $v1, 0xe0($sp) +/* 0BFFB4 7F08B444 8FAA00DC */ lw $t2, 0xdc($sp) +/* 0BFFB8 7F08B448 240B0064 */ li $t3, 100 +/* 0BFFBC 7F08B44C AFAB0014 */ sw $t3, 0x14($sp) +/* 0BFFC0 7F08B450 02002025 */ move $a0, $s0 +/* 0BFFC4 7F08B454 00002825 */ move $a1, $zero +/* 0BFFC8 7F08B458 00403825 */ move $a3, $v0 +/* 0BFFCC 7F08B45C 2466FFFE */ addiu $a2, $v1, -2 +/* 0BFFD0 7F08B460 0FC2B6F1 */ jal microcode_constructor_related_to_menus +/* 0BFFD4 7F08B464 AFAA0010 */ sw $t2, 0x10($sp) +/* 0BFFD8 7F08B468 3C0C8005 */ lui $t4, %hi(j_text_trigger) # $t4, 0x8005 +/* 0BFFDC 7F08B46C 8D8C8500 */ lw $t4, %lo(j_text_trigger)($t4) +/* 0BFFE0 7F08B470 00408025 */ move $s0, $v0 +/* 0BFFE4 7F08B474 11800026 */ beqz $t4, .Ljp7F08B510 +/* 0BFFE8 7F08B478 00000000 */ nop +/* 0BFFEC 7F08B47C 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFFF0 7F08B480 00000000 */ nop +/* 0BFFF4 7F08B484 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFFF8 7F08B488 A7A20048 */ sh $v0, 0x48($sp) +/* 0BFFFC 7F08B48C 3C0D8003 */ lui $t5, %hi(upper_text_buffer_index) # $t5, 0x8003 +/* 0C0000 7F08B490 8DAD68E0 */ lw $t5, %lo(upper_text_buffer_index)($t5) +/* 0C0004 7F08B494 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) # $t8, 0x8004 +/* 0C0008 7F08B498 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) # $t9, 0x8004 +/* 0C000C 7F08B49C 000D7080 */ sll $t6, $t5, 2 +/* 0C0010 7F08B4A0 01CD7021 */ addu $t6, $t6, $t5 +/* 0C0014 7F08B4A4 000E7080 */ sll $t6, $t6, 2 +/* 0C0018 7F08B4A8 01CD7023 */ subu $t6, $t6, $t5 +/* 0C001C 7F08B4AC 8F390EE4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 0C0020 7F08B4B0 8F180EE8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 0C0024 7F08B4B4 87AA0048 */ lh $t2, 0x48($sp) +/* 0C0028 7F08B4B8 000E70C0 */ sll $t6, $t6, 3 +/* 0C002C 7F08B4BC 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_80079C70) # $t7, 0x8008 +/* 0C0030 7F08B4C0 3C096464 */ lui $t1, (0x646464FF >> 16) # lui $t1, 0x6464 +/* 0C0034 7F08B4C4 352964FF */ ori $t1, (0x646464FF & 0xFFFF) # ori $t1, $t1, 0x64ff +/* 0C0038 7F08B4C8 25EF9CE0 */ addiu $t7, %lo(dword_CODE_bss_80079C70) # addiu $t7, $t7, -0x6320 +/* 0C003C 7F08B4CC 2408FFFF */ li $t0, -1 +/* 0C0040 7F08B4D0 01CD7023 */ subu $t6, $t6, $t5 +/* 0C0044 7F08B4D4 01CF3821 */ addu $a3, $t6, $t7 +/* 0C0048 7F08B4D8 AFA80018 */ sw $t0, 0x18($sp) +/* 0C004C 7F08B4DC AFA9001C */ sw $t1, 0x1c($sp) +/* 0C0050 7F08B4E0 02002025 */ move $a0, $s0 +/* 0C0054 7F08B4E4 27A500E4 */ addiu $a1, $sp, 0xe4 +/* 0C0058 7F08B4E8 27A600E0 */ addiu $a2, $sp, 0xe0 +/* 0C005C 7F08B4EC AFA20024 */ sw $v0, 0x24($sp) +/* 0C0060 7F08B4F0 AFA00028 */ sw $zero, 0x28($sp) +/* 0C0064 7F08B4F4 AFA0002C */ sw $zero, 0x2c($sp) +/* 0C0068 7F08B4F8 AFB90014 */ sw $t9, 0x14($sp) +/* 0C006C 7F08B4FC AFB80010 */ sw $t8, 0x10($sp) +/* 0C0070 7F08B500 0FC2BCA7 */ jal jp_text_write_stuff +/* 0C0074 7F08B504 AFAA0020 */ sw $t2, 0x20($sp) +/* 0C0078 7F08B508 10000022 */ b .Ljp7F08B594 +/* 0C007C 7F08B50C 00408025 */ move $s0, $v0 +.Ljp7F08B510: +/* 0C0080 7F08B510 0C001107 */ jal get_video2_settings_txtClipW +/* 0C0084 7F08B514 00000000 */ nop +/* 0C0088 7F08B518 0C00110B */ jal get_video2_settings_txtClipH +/* 0C008C 7F08B51C A7A20048 */ sh $v0, 0x48($sp) +/* 0C0090 7F08B520 3C0B8003 */ lui $t3, %hi(upper_text_buffer_index) # $t3, 0x8003 +/* 0C0094 7F08B524 8D6B68E0 */ lw $t3, %lo(upper_text_buffer_index)($t3) +/* 0C0098 7F08B528 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableLarge) # $t6, 0x8004 +/* 0C009C 7F08B52C 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) # $t7, 0x8004 +/* 0C00A0 7F08B530 000B6080 */ sll $t4, $t3, 2 +/* 0C00A4 7F08B534 018B6021 */ addu $t4, $t4, $t3 +/* 0C00A8 7F08B538 000C6080 */ sll $t4, $t4, 2 +/* 0C00AC 7F08B53C 018B6023 */ subu $t4, $t4, $t3 +/* 0C00B0 7F08B540 8DEF0EE4 */ lw $t7, %lo(ptrFirstFontTableLarge)($t7) +/* 0C00B4 7F08B544 8DCE0EE8 */ lw $t6, %lo(ptrSecondFontTableLarge)($t6) +/* 0C00B8 7F08B548 87B90048 */ lh $t9, 0x48($sp) +/* 0C00BC 7F08B54C 000C60C0 */ sll $t4, $t4, 3 +/* 0C00C0 7F08B550 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_80079C70) # $t5, 0x8008 +/* 0C00C4 7F08B554 25AD9CE0 */ addiu $t5, %lo(dword_CODE_bss_80079C70) # addiu $t5, $t5, -0x6320 +/* 0C00C8 7F08B558 2418FFFF */ li $t8, -1 +/* 0C00CC 7F08B55C 018B6023 */ subu $t4, $t4, $t3 +/* 0C00D0 7F08B560 018D3821 */ addu $a3, $t4, $t5 +/* 0C00D4 7F08B564 AFB80018 */ sw $t8, 0x18($sp) +/* 0C00D8 7F08B568 02002025 */ move $a0, $s0 +/* 0C00DC 7F08B56C 27A500E4 */ addiu $a1, $sp, 0xe4 +/* 0C00E0 7F08B570 27A600E0 */ addiu $a2, $sp, 0xe0 +/* 0C00E4 7F08B574 AFA20020 */ sw $v0, 0x20($sp) +/* 0C00E8 7F08B578 AFA00024 */ sw $zero, 0x24($sp) +/* 0C00EC 7F08B57C AFA00028 */ sw $zero, 0x28($sp) +/* 0C00F0 7F08B580 AFAF0014 */ sw $t7, 0x14($sp) +/* 0C00F4 7F08B584 AFAE0010 */ sw $t6, 0x10($sp) +/* 0C00F8 7F08B588 0FC2B99B */ jal en_text_write_stuff +/* 0C00FC 7F08B58C AFB9001C */ sw $t9, 0x1c($sp) +/* 0C0100 7F08B590 00408025 */ move $s0, $v0 +.Ljp7F08B594: +/* 0C0104 7F08B594 0FC2B6A8 */ jal combiner_bayer_lod_perspective +/* 0C0108 7F08B598 02002025 */ move $a0, $s0 +/* 0C010C 7F08B59C 100000F1 */ b .Ljp7F08B964 +/* 0C0110 7F08B5A0 00408025 */ move $s0, $v0 +.Ljp7F08B5A4: +/* 0C0114 7F08B5A4 0FC2469A */ jal get_debug_testingmanpos_flag +/* 0C0118 7F08B5A8 00000000 */ nop +/* 0C011C 7F08B5AC 104000ED */ beqz $v0, .Ljp7F08B964 +/* 0C0120 7F08B5B0 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C0124 7F08B5B4 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0C0128 7F08B5B8 C4400498 */ lwc1 $f0, 0x498($v0) +/* 0C012C 7F08B5BC C44E04A0 */ lwc1 $f14, 0x4a0($v0) +/* 0C0130 7F08B5C0 0FC16BD4 */ jal atan2f +/* 0C0134 7F08B5C4 46000307 */ neg.s $f12, $f0 +/* 0C0138 7F08B5C8 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0C013C 7F08B5CC 44812000 */ mtc1 $at, $f4 +/* 0C0140 7F08B5D0 3C018005 */ lui $at, %hi(D_800552BC) # $at, 0x8005 +/* 0C0144 7F08B5D4 C42852EC */ lwc1 $f8, %lo(D_800552BC)($at) +/* 0C0148 7F08B5D8 46040182 */ mul.s $f6, $f0, $f4 +/* 0C014C 7F08B5DC 3C0B8003 */ lui $t3, %hi(D_800368B8) # $t3, 0x8003 +/* 0C0150 7F08B5E0 256B68F0 */ addiu $t3, %lo(D_800368B8) # addiu $t3, $t3, 0x68f0 +/* 0C0154 7F08B5E4 27AA004C */ addiu $t2, $sp, 0x4c +/* 0C0158 7F08B5E8 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 0C015C 7F08B5EC 46083283 */ div.s $f10, $f6, $f8 +/* 0C0160 7F08B5F0 4600540D */ trunc.w.s $f16, $f10 +/* 0C0164 7F08B5F4 44098000 */ mfc1 $t1, $f16 +/* 0C0168 7F08B5F8 00000000 */ nop +/* 0C016C 7F08B5FC AFA90068 */ sw $t1, 0x68($sp) +/* 0C0170 7F08B600 8D610000 */ lw $at, ($t3) +/* 0C0174 7F08B604 8D6E0004 */ lw $t6, 4($t3) +/* 0C0178 7F08B608 AD410000 */ sw $at, ($t2) +/* 0C017C 7F08B60C 8D610008 */ lw $at, 8($t3) +/* 0C0180 7F08B610 AD4E0004 */ sw $t6, 4($t2) +/* 0C0184 7F08B614 8D6E000C */ lw $t6, 0xc($t3) +/* 0C0188 7F08B618 AD410008 */ sw $at, 8($t2) +/* 0C018C 7F08B61C 8D610010 */ lw $at, 0x10($t3) +/* 0C0190 7F08B620 AD4E000C */ sw $t6, 0xc($t2) +/* 0C0194 7F08B624 8D6E0014 */ lw $t6, 0x14($t3) +/* 0C0198 7F08B628 AD410010 */ sw $at, 0x10($t2) +/* 0C019C 7F08B62C 9961001A */ lwr $at, 0x1a($t3) +/* 0C01A0 7F08B630 AD4E0014 */ sw $t6, 0x14($t2) +/* 0C01A4 7F08B634 B941001A */ swr $at, 0x1a($t2) +/* 0C01A8 7F08B638 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 0C01AC 7F08B63C 8DF80488 */ lw $t8, 0x488($t7) +/* 0C01B0 7F08B640 0FC2DA64 */ jal sub_GAME_7F0B5DE0 +/* 0C01B4 7F08B644 93040003 */ lbu $a0, 3($t8) +/* 0C01B8 7F08B648 3C058005 */ lui $a1, %hi(a8s) # $a1, 0x8005 +/* 0C01BC 7F08B64C 24A54FF0 */ addiu $a1, %lo(a8s) # addiu $a1, $a1, 0x4ff0 +/* 0C01C0 7F08B650 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 0C01C4 7F08B654 0C002B29 */ jal sprintf +/* 0C01C8 7F08B658 00403025 */ move $a2, $v0 +/* 0C01CC 7F08B65C 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 0C01D0 7F08B660 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 0C01D4 7F08B664 3C058005 */ lui $a1, %hi(aX4_0f) # $a1, 0x8005 +/* 0C01D8 7F08B668 24A54FF4 */ addiu $a1, %lo(aX4_0f) # addiu $a1, $a1, 0x4ff4 +/* 0C01DC 7F08B66C C732048C */ lwc1 $f18, 0x48c($t9) +/* 0C01E0 7F08B670 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 0C01E4 7F08B674 46009121 */ cvt.d.s $f4, $f18 +/* 0C01E8 7F08B678 44072000 */ mfc1 $a3, $f4 +/* 0C01EC 7F08B67C 44062800 */ mfc1 $a2, $f5 +/* 0C01F0 7F08B680 0C002B29 */ jal sprintf +/* 0C01F4 7F08B684 00000000 */ nop +/* 0C01F8 7F08B688 3C088008 */ lui $t0, %hi(pPlayer) # $t0, 0x8008 +/* 0C01FC 7F08B68C 8D08A120 */ lw $t0, %lo(pPlayer)($t0) +/* 0C0200 7F08B690 3C058005 */ lui $a1, %hi(aY4_0f) # $a1, 0x8005 +/* 0C0204 7F08B694 24A54FFC */ addiu $a1, %lo(aY4_0f) # addiu $a1, $a1, 0x4ffc +/* 0C0208 7F08B698 C5060490 */ lwc1 $f6, 0x490($t0) +/* 0C020C 7F08B69C 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 0C0210 7F08B6A0 46003221 */ cvt.d.s $f8, $f6 +/* 0C0214 7F08B6A4 44074000 */ mfc1 $a3, $f8 +/* 0C0218 7F08B6A8 44064800 */ mfc1 $a2, $f9 +/* 0C021C 7F08B6AC 0C002B29 */ jal sprintf +/* 0C0220 7F08B6B0 00000000 */ nop +/* 0C0224 7F08B6B4 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0C0228 7F08B6B8 8D29A120 */ lw $t1, %lo(pPlayer)($t1) +/* 0C022C 7F08B6BC 3C058005 */ lui $a1, %hi(aZ4_0f) # $a1, 0x8005 +/* 0C0230 7F08B6C0 24A55004 */ addiu $a1, %lo(aZ4_0f) # addiu $a1, $a1, 0x5004 +/* 0C0234 7F08B6C4 C52A0494 */ lwc1 $f10, 0x494($t1) +/* 0C0238 7F08B6C8 27A40094 */ addiu $a0, $sp, 0x94 +/* 0C023C 7F08B6CC 46005421 */ cvt.d.s $f16, $f10 +/* 0C0240 7F08B6D0 44078000 */ mfc1 $a3, $f16 +/* 0C0244 7F08B6D4 44068800 */ mfc1 $a2, $f17 +/* 0C0248 7F08B6D8 0C002B29 */ jal sprintf +/* 0C024C 7F08B6DC 00000000 */ nop +/* 0C0250 7F08B6E0 8FA70068 */ lw $a3, 0x68($sp) +/* 0C0254 7F08B6E4 2401002D */ li $at, 45 +/* 0C0258 7F08B6E8 3C058005 */ lui $a1, %hi(aS3d) # $a1, 0x8005 +/* 0C025C 7F08B6EC 24ED0016 */ addiu $t5, $a3, 0x16 +/* 0C0260 7F08B6F0 01A1001A */ div $zero, $t5, $at +/* 0C0264 7F08B6F4 00006012 */ mflo $t4 +/* 0C0268 7F08B6F8 000C5080 */ sll $t2, $t4, 2 +/* 0C026C 7F08B6FC 014C5023 */ subu $t2, $t2, $t4 +/* 0C0270 7F08B700 27AB004C */ addiu $t3, $sp, 0x4c +/* 0C0274 7F08B704 014B3021 */ addu $a2, $t2, $t3 +/* 0C0278 7F08B708 24A5500C */ addiu $a1, %lo(aS3d) # addiu $a1, $a1, 0x500c +/* 0C027C 7F08B70C 0C002B29 */ jal sprintf +/* 0C0280 7F08B710 27A40084 */ addiu $a0, $sp, 0x84 +/* 0C0284 7F08B714 0C001145 */ jal get_video2_settings_ulx +/* 0C0288 7F08B718 00000000 */ nop +/* 0C028C 7F08B71C 244E0011 */ addiu $t6, $v0, 0x11 +/* 0C0290 7F08B720 0C001149 */ jal get_video2_settings_uly +/* 0C0294 7F08B724 AFAE0080 */ sw $t6, 0x80($sp) +/* 0C0298 7F08B728 24460011 */ addiu $a2, $v0, 0x11 +/* 0C029C 7F08B72C 24CF000A */ addiu $t7, $a2, 0xa +/* 0C02A0 7F08B730 AFAF0074 */ sw $t7, 0x74($sp) +/* 0C02A4 7F08B734 AFA6007C */ sw $a2, 0x7c($sp) +/* 0C02A8 7F08B738 0FC2B652 */ jal microcode_constructor +/* 0C02AC 7F08B73C 02002025 */ move $a0, $s0 +/* 0C02B0 7F08B740 0C001107 */ jal get_video2_settings_txtClipW +/* 0C02B4 7F08B744 00408025 */ move $s0, $v0 +/* 0C02B8 7F08B748 8FB80074 */ lw $t8, 0x74($sp) +/* 0C02BC 7F08B74C 24080064 */ li $t0, 100 +/* 0C02C0 7F08B750 AFA80014 */ sw $t0, 0x14($sp) +/* 0C02C4 7F08B754 27190001 */ addiu $t9, $t8, 1 +/* 0C02C8 7F08B758 AFB90010 */ sw $t9, 0x10($sp) +/* 0C02CC 7F08B75C 8FA6007C */ lw $a2, 0x7c($sp) +/* 0C02D0 7F08B760 02002025 */ move $a0, $s0 +/* 0C02D4 7F08B764 00002825 */ move $a1, $zero +/* 0C02D8 7F08B768 0FC2B6F1 */ jal microcode_constructor_related_to_menus +/* 0C02DC 7F08B76C 00403825 */ move $a3, $v0 +/* 0C02E0 7F08B770 0C001107 */ jal get_video2_settings_txtClipW +/* 0C02E4 7F08B774 00408025 */ move $s0, $v0 +/* 0C02E8 7F08B778 0C00110B */ jal get_video2_settings_txtClipH +/* 0C02EC 7F08B77C A7A20048 */ sh $v0, 0x48($sp) +/* 0C02F0 7F08B780 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) # $t1, 0x8004 +/* 0C02F4 7F08B784 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0C02F8 7F08B788 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0C02FC 7F08B78C 8D290EE0 */ lw $t1, %lo(ptrSecondFontTableSmall)($t1) +/* 0C0300 7F08B790 87AA0048 */ lh $t2, 0x48($sp) +/* 0C0304 7F08B794 240CFFFF */ li $t4, -1 +/* 0C0308 7F08B798 AFAC0018 */ sw $t4, 0x18($sp) +/* 0C030C 7F08B79C 02002025 */ move $a0, $s0 +/* 0C0310 7F08B7A0 27A50080 */ addiu $a1, $sp, 0x80 +/* 0C0314 7F08B7A4 27A6007C */ addiu $a2, $sp, 0x7c +/* 0C0318 7F08B7A8 27A700C4 */ addiu $a3, $sp, 0xc4 +/* 0C031C 7F08B7AC AFA20020 */ sw $v0, 0x20($sp) +/* 0C0320 7F08B7B0 AFA00024 */ sw $zero, 0x24($sp) +/* 0C0324 7F08B7B4 AFA00028 */ sw $zero, 0x28($sp) +/* 0C0328 7F08B7B8 AFAD0014 */ sw $t5, 0x14($sp) +/* 0C032C 7F08B7BC AFA90010 */ sw $t1, 0x10($sp) +/* 0C0330 7F08B7C0 0FC2B99B */ jal en_text_write_stuff +/* 0C0334 7F08B7C4 AFAA001C */ sw $t2, 0x1c($sp) +/* 0C0338 7F08B7C8 0C001145 */ jal get_video2_settings_ulx +/* 0C033C 7F08B7CC 00408025 */ move $s0, $v0 +/* 0C0340 7F08B7D0 244B0057 */ addiu $t3, $v0, 0x57 +/* 0C0344 7F08B7D4 0C001107 */ jal get_video2_settings_txtClipW +/* 0C0348 7F08B7D8 AFAB0080 */ sw $t3, 0x80($sp) +/* 0C034C 7F08B7DC 0C00110B */ jal get_video2_settings_txtClipH +/* 0C0350 7F08B7E0 A7A20048 */ sh $v0, 0x48($sp) +/* 0C0354 7F08B7E4 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) # $t6, 0x8004 +/* 0C0358 7F08B7E8 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 +/* 0C035C 7F08B7EC 8DEF0EDC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0C0360 7F08B7F0 8DCE0EE0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0C0364 7F08B7F4 87B90048 */ lh $t9, 0x48($sp) +/* 0C0368 7F08B7F8 2418FFFF */ li $t8, -1 +/* 0C036C 7F08B7FC AFB80018 */ sw $t8, 0x18($sp) +/* 0C0370 7F08B800 02002025 */ move $a0, $s0 +/* 0C0374 7F08B804 27A50080 */ addiu $a1, $sp, 0x80 +/* 0C0378 7F08B808 27A6007C */ addiu $a2, $sp, 0x7c +/* 0C037C 7F08B80C 27A700B4 */ addiu $a3, $sp, 0xb4 +/* 0C0380 7F08B810 AFA20020 */ sw $v0, 0x20($sp) +/* 0C0384 7F08B814 AFA00024 */ sw $zero, 0x24($sp) +/* 0C0388 7F08B818 AFA00028 */ sw $zero, 0x28($sp) +/* 0C038C 7F08B81C AFAF0014 */ sw $t7, 0x14($sp) +/* 0C0390 7F08B820 AFAE0010 */ sw $t6, 0x10($sp) +/* 0C0394 7F08B824 0FC2B99B */ jal en_text_write_stuff +/* 0C0398 7F08B828 AFB9001C */ sw $t9, 0x1c($sp) +/* 0C039C 7F08B82C 0C001145 */ jal get_video2_settings_ulx +/* 0C03A0 7F08B830 00408025 */ move $s0, $v0 +/* 0C03A4 7F08B834 2448008D */ addiu $t0, $v0, 0x8d +/* 0C03A8 7F08B838 0C001107 */ jal get_video2_settings_txtClipW +/* 0C03AC 7F08B83C AFA80080 */ sw $t0, 0x80($sp) +/* 0C03B0 7F08B840 0C00110B */ jal get_video2_settings_txtClipH +/* 0C03B4 7F08B844 A7A20048 */ sh $v0, 0x48($sp) +/* 0C03B8 7F08B848 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) # $t1, 0x8004 +/* 0C03BC 7F08B84C 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0C03C0 7F08B850 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0C03C4 7F08B854 8D290EE0 */ lw $t1, %lo(ptrSecondFontTableSmall)($t1) +/* 0C03C8 7F08B858 87AA0048 */ lh $t2, 0x48($sp) +/* 0C03CC 7F08B85C 240CFFFF */ li $t4, -1 +/* 0C03D0 7F08B860 AFAC0018 */ sw $t4, 0x18($sp) +/* 0C03D4 7F08B864 02002025 */ move $a0, $s0 +/* 0C03D8 7F08B868 27A50080 */ addiu $a1, $sp, 0x80 +/* 0C03DC 7F08B86C 27A6007C */ addiu $a2, $sp, 0x7c +/* 0C03E0 7F08B870 27A700A4 */ addiu $a3, $sp, 0xa4 +/* 0C03E4 7F08B874 AFA20020 */ sw $v0, 0x20($sp) +/* 0C03E8 7F08B878 AFA00024 */ sw $zero, 0x24($sp) +/* 0C03EC 7F08B87C AFA00028 */ sw $zero, 0x28($sp) +/* 0C03F0 7F08B880 AFAD0014 */ sw $t5, 0x14($sp) +/* 0C03F4 7F08B884 AFA90010 */ sw $t1, 0x10($sp) +/* 0C03F8 7F08B888 0FC2B99B */ jal en_text_write_stuff +/* 0C03FC 7F08B88C AFAA001C */ sw $t2, 0x1c($sp) +/* 0C0400 7F08B890 0C001145 */ jal get_video2_settings_ulx +/* 0C0404 7F08B894 00408025 */ move $s0, $v0 +/* 0C0408 7F08B898 244B00C3 */ addiu $t3, $v0, 0xc3 +/* 0C040C 7F08B89C 0C001107 */ jal get_video2_settings_txtClipW +/* 0C0410 7F08B8A0 AFAB0080 */ sw $t3, 0x80($sp) +/* 0C0414 7F08B8A4 0C00110B */ jal get_video2_settings_txtClipH +/* 0C0418 7F08B8A8 A7A20048 */ sh $v0, 0x48($sp) +/* 0C041C 7F08B8AC 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) # $t6, 0x8004 +/* 0C0420 7F08B8B0 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 +/* 0C0424 7F08B8B4 8DEF0EDC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0C0428 7F08B8B8 8DCE0EE0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0C042C 7F08B8BC 87B90048 */ lh $t9, 0x48($sp) +/* 0C0430 7F08B8C0 2418FFFF */ li $t8, -1 +/* 0C0434 7F08B8C4 AFB80018 */ sw $t8, 0x18($sp) +/* 0C0438 7F08B8C8 02002025 */ move $a0, $s0 +/* 0C043C 7F08B8CC 27A50080 */ addiu $a1, $sp, 0x80 +/* 0C0440 7F08B8D0 27A6007C */ addiu $a2, $sp, 0x7c +/* 0C0444 7F08B8D4 27A70094 */ addiu $a3, $sp, 0x94 +/* 0C0448 7F08B8D8 AFA20020 */ sw $v0, 0x20($sp) +/* 0C044C 7F08B8DC AFA00024 */ sw $zero, 0x24($sp) +/* 0C0450 7F08B8E0 AFA00028 */ sw $zero, 0x28($sp) +/* 0C0454 7F08B8E4 AFAF0014 */ sw $t7, 0x14($sp) +/* 0C0458 7F08B8E8 AFAE0010 */ sw $t6, 0x10($sp) +/* 0C045C 7F08B8EC 0FC2B99B */ jal en_text_write_stuff +/* 0C0460 7F08B8F0 AFB9001C */ sw $t9, 0x1c($sp) +/* 0C0464 7F08B8F4 0C001145 */ jal get_video2_settings_ulx +/* 0C0468 7F08B8F8 00408025 */ move $s0, $v0 +/* 0C046C 7F08B8FC 244800F9 */ addiu $t0, $v0, 0xf9 +/* 0C0470 7F08B900 0C001107 */ jal get_video2_settings_txtClipW +/* 0C0474 7F08B904 AFA80080 */ sw $t0, 0x80($sp) +/* 0C0478 7F08B908 0C00110B */ jal get_video2_settings_txtClipH +/* 0C047C 7F08B90C A7A20048 */ sh $v0, 0x48($sp) +/* 0C0480 7F08B910 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) # $t1, 0x8004 +/* 0C0484 7F08B914 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0C0488 7F08B918 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0C048C 7F08B91C 8D290EE0 */ lw $t1, %lo(ptrSecondFontTableSmall)($t1) +/* 0C0490 7F08B920 87AA0048 */ lh $t2, 0x48($sp) +/* 0C0494 7F08B924 240CFFFF */ li $t4, -1 +/* 0C0498 7F08B928 AFAC0018 */ sw $t4, 0x18($sp) +/* 0C049C 7F08B92C 02002025 */ move $a0, $s0 +/* 0C04A0 7F08B930 27A50080 */ addiu $a1, $sp, 0x80 +/* 0C04A4 7F08B934 27A6007C */ addiu $a2, $sp, 0x7c +/* 0C04A8 7F08B938 27A70084 */ addiu $a3, $sp, 0x84 +/* 0C04AC 7F08B93C AFA20020 */ sw $v0, 0x20($sp) +/* 0C04B0 7F08B940 AFA00024 */ sw $zero, 0x24($sp) +/* 0C04B4 7F08B944 AFA00028 */ sw $zero, 0x28($sp) +/* 0C04B8 7F08B948 AFAD0014 */ sw $t5, 0x14($sp) +/* 0C04BC 7F08B94C AFA90010 */ sw $t1, 0x10($sp) +/* 0C04C0 7F08B950 0FC2B99B */ jal en_text_write_stuff +/* 0C04C4 7F08B954 AFAA001C */ sw $t2, 0x1c($sp) +/* 0C04C8 7F08B958 0FC2B6A8 */ jal combiner_bayer_lod_perspective +/* 0C04CC 7F08B95C 00402025 */ move $a0, $v0 +/* 0C04D0 7F08B960 00408025 */ move $s0, $v0 +.Ljp7F08B964: +/* 0C04D4 7F08B964 8FBF003C */ lw $ra, 0x3c($sp) +/* 0C04D8 7F08B968 02001025 */ move $v0, $s0 +/* 0C04DC 7F08B96C 8FB00038 */ lw $s0, 0x38($sp) +/* 0C04E0 7F08B970 03E00008 */ jr $ra +/* 0C04E4 7F08B974 27BD00E8 */ addiu $sp, $sp, 0xe8 +) +#endif + +#endif + + + + +#ifdef NONMATCHING +void sub_GAME_7F08B0F0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800552C0 +.word 0xbd4ccccd /*-0.050000001*/ +glabel D_800552C4 +.word 0xbecccccd /*-0.40000001*/ +glabel D_800552C8 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_800552CC +.word 0x3ecccccd /*0.40000001*/ +glabel D_800552D0 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F08B0F0 +/* 0BFC20 7F08B0F0 27BDFF08 */ addiu $sp, $sp, -0xf8 +/* 0BFC24 7F08B0F4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0BFC28 7F08B0F8 AFB10020 */ sw $s1, 0x20($sp) +/* 0BFC2C 7F08B0FC AFB0001C */ sw $s0, 0x1c($sp) +/* 0BFC30 7F08B100 0FC26C57 */ jal sub_GAME_7F09B15C +/* 0BFC34 7F08B104 AFA400F8 */ sw $a0, 0xf8($sp) +/* 0BFC38 7F08B108 8FAE00F8 */ lw $t6, 0xf8($sp) +/* 0BFC3C 7F08B10C AFA200F4 */ sw $v0, 0xf4($sp) +/* 0BFC40 7F08B110 8DCF0004 */ lw $t7, 4($t6) +/* 0BFC44 7F08B114 11E0000B */ beqz $t7, .L7F08B144 +/* 0BFC48 7F08B118 AFAF00F0 */ sw $t7, 0xf0($sp) +/* 0BFC4C 7F08B11C 0FC26C54 */ jal get_cur_playernum +/* 0BFC50 7F08B120 00000000 */ nop +/* 0BFC54 7F08B124 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 0BFC58 7F08B128 00402025 */ move $a0, $v0 +/* 0BFC5C 7F08B12C 54400006 */ bnezl $v0, .L7F08B148 +/* 0BFC60 7F08B130 8FA900F0 */ lw $t1, 0xf0($sp) +/* 0BFC64 7F08B134 8FA200F0 */ lw $v0, 0xf0($sp) +/* 0BFC68 7F08B138 94580012 */ lhu $t8, 0x12($v0) +/* 0BFC6C 7F08B13C 3319F7FF */ andi $t9, $t8, 0xf7ff +/* 0BFC70 7F08B140 A4590012 */ sh $t9, 0x12($v0) +.L7F08B144: +/* 0BFC74 7F08B144 8FA900F0 */ lw $t1, 0xf0($sp) +.L7F08B148: +/* 0BFC78 7F08B148 8FAA00F4 */ lw $t2, 0xf4($sp) +/* 0BFC7C 7F08B14C 3C0C8008 */ lui $t4, %hi(ptr_BONDdata_p1) +/* 0BFC80 7F08B150 1120004D */ beqz $t1, .L7F08B288 +/* 0BFC84 7F08B154 000A5880 */ sll $t3, $t2, 2 +/* 0BFC88 7F08B158 258C9EE0 */ addiu $t4, %lo(ptr_BONDdata_p1) # addiu $t4, $t4, -0x6120 +/* 0BFC8C 7F08B15C 016C8821 */ addu $s1, $t3, $t4 +/* 0BFC90 7F08B160 8E2D0000 */ lw $t5, ($s1) +/* 0BFC94 7F08B164 8DAE00D4 */ lw $t6, 0xd4($t5) +/* 0BFC98 7F08B168 51C00048 */ beql $t6, $zero, .L7F08B28C +/* 0BFC9C 7F08B16C 8FAF00F0 */ lw $t7, 0xf0($sp) +/* 0BFCA0 7F08B170 0FC243BF */ jal get_debug_render_raster +/* 0BFCA4 7F08B174 00000000 */ nop +/* 0BFCA8 7F08B178 50400007 */ beql $v0, $zero, .L7F08B198 +/* 0BFCAC 7F08B17C 8E390000 */ lw $t9, ($s1) +/* 0BFCB0 7F08B180 8E2F0000 */ lw $t7, ($s1) +/* 0BFCB4 7F08B184 24010001 */ li $at, 1 +/* 0BFCB8 7F08B188 8DF80000 */ lw $t8, ($t7) +/* 0BFCBC 7F08B18C 5701003F */ bnel $t8, $at, .L7F08B28C +/* 0BFCC0 7F08B190 8FAF00F0 */ lw $t7, 0xf0($sp) +/* 0BFCC4 7F08B194 8E390000 */ lw $t9, ($s1) +.L7F08B198: +/* 0BFCC8 7F08B198 AF2000AC */ sw $zero, 0xac($t9) +/* 0BFCCC 7F08B19C 0FC083BC */ jal sub_GAME_7F020EF0 +/* 0BFCD0 7F08B1A0 8FA400F8 */ lw $a0, 0xf8($sp) +/* 0BFCD4 7F08B1A4 8E2A0000 */ lw $t2, ($s1) +/* 0BFCD8 7F08B1A8 AFA200E8 */ sw $v0, 0xe8($sp) +/* 0BFCDC 7F08B1AC 24090001 */ li $t1, 1 +/* 0BFCE0 7F08B1B0 AD4900AC */ sw $t1, 0xac($t2) +/* 0BFCE4 7F08B1B4 8E280000 */ lw $t0, ($s1) +/* 0BFCE8 7F08B1B8 8D0B00A8 */ lw $t3, 0xa8($t0) +/* 0BFCEC 7F08B1BC C5640008 */ lwc1 $f4, 8($t3) +/* 0BFCF0 7F08B1C0 E504048C */ swc1 $f4, 0x48c($t0) +/* 0BFCF4 7F08B1C4 8E280000 */ lw $t0, ($s1) +/* 0BFCF8 7F08B1C8 8D0C00A8 */ lw $t4, 0xa8($t0) +/* 0BFCFC 7F08B1CC C586000C */ lwc1 $f6, 0xc($t4) +/* 0BFD00 7F08B1D0 E5060490 */ swc1 $f6, 0x490($t0) +/* 0BFD04 7F08B1D4 8E280000 */ lw $t0, ($s1) +/* 0BFD08 7F08B1D8 8D0D00A8 */ lw $t5, 0xa8($t0) +/* 0BFD0C 7F08B1DC C5A80010 */ lwc1 $f8, 0x10($t5) +/* 0BFD10 7F08B1E0 E5080494 */ swc1 $f8, 0x494($t0) +/* 0BFD14 7F08B1E4 8E280000 */ lw $t0, ($s1) +/* 0BFD18 7F08B1E8 8D0E00A8 */ lw $t6, 0xa8($t0) +/* 0BFD1C 7F08B1EC 8DCF0014 */ lw $t7, 0x14($t6) +/* 0BFD20 7F08B1F0 AD0F0488 */ sw $t7, 0x488($t0) +/* 0BFD24 7F08B1F4 0FC1F7A7 */ jal sub_GAME_7F07DE9C +/* 0BFD28 7F08B1F8 8E240000 */ lw $a0, ($s1) +/* 0BFD2C 7F08B1FC 8FB800F8 */ lw $t8, 0xf8($sp) +/* 0BFD30 7F08B200 93190001 */ lbu $t9, 1($t8) +/* 0BFD34 7F08B204 33290002 */ andi $t1, $t9, 2 +/* 0BFD38 7F08B208 1120001D */ beqz $t1, .L7F08B280 +/* 0BFD3C 7F08B20C 00000000 */ nop +/* 0BFD40 7F08B210 8E2A0000 */ lw $t2, ($s1) +/* 0BFD44 7F08B214 8D4B00D4 */ lw $t3, 0xd4($t2) +/* 0BFD48 7F08B218 0FC1E111 */ jal sub_GAME_7F078444 +/* 0BFD4C 7F08B21C 8D70000C */ lw $s0, 0xc($t3) +/* 0BFD50 7F08B220 00402025 */ move $a0, $v0 +/* 0BFD54 7F08B224 02002825 */ move $a1, $s0 +/* 0BFD58 7F08B228 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0BFD5C 7F08B22C 27A600A4 */ addiu $a2, $sp, 0xa4 +/* 0BFD60 7F08B230 3C0140E0 */ li $at, 0x40E00000 # 7.000000 +/* 0BFD64 7F08B234 44810000 */ mtc1 $at, $f0 +/* 0BFD68 7F08B238 C7AA00B4 */ lwc1 $f10, 0xb4($sp) +/* 0BFD6C 7F08B23C C7A400D4 */ lwc1 $f4, 0xd4($sp) +/* 0BFD70 7F08B240 8E2C0000 */ lw $t4, ($s1) +/* 0BFD74 7F08B244 46005482 */ mul.s $f18, $f10, $f0 +/* 0BFD78 7F08B248 46049180 */ add.s $f6, $f18, $f4 +/* 0BFD7C 7F08B24C E58604B4 */ swc1 $f6, 0x4b4($t4) +/* 0BFD80 7F08B250 C7A800B8 */ lwc1 $f8, 0xb8($sp) +/* 0BFD84 7F08B254 C7B200D8 */ lwc1 $f18, 0xd8($sp) +/* 0BFD88 7F08B258 8E2D0000 */ lw $t5, ($s1) +/* 0BFD8C 7F08B25C 46004282 */ mul.s $f10, $f8, $f0 +/* 0BFD90 7F08B260 46125100 */ add.s $f4, $f10, $f18 +/* 0BFD94 7F08B264 E5A404B8 */ swc1 $f4, 0x4b8($t5) +/* 0BFD98 7F08B268 C7A600BC */ lwc1 $f6, 0xbc($sp) +/* 0BFD9C 7F08B26C C7AA00DC */ lwc1 $f10, 0xdc($sp) +/* 0BFDA0 7F08B270 8E2E0000 */ lw $t6, ($s1) +/* 0BFDA4 7F08B274 46003202 */ mul.s $f8, $f6, $f0 +/* 0BFDA8 7F08B278 460A4480 */ add.s $f18, $f8, $f10 +/* 0BFDAC 7F08B27C E5D204BC */ swc1 $f18, 0x4bc($t6) +.L7F08B280: +/* 0BFDB0 7F08B280 10000288 */ b .L7F08BCA4 +/* 0BFDB4 7F08B284 8FA200E8 */ lw $v0, 0xe8($sp) +.L7F08B288: +/* 0BFDB8 7F08B288 8FAF00F0 */ lw $t7, 0xf0($sp) +.L7F08B28C: +/* 0BFDBC 7F08B28C 8FB800F4 */ lw $t8, 0xf4($sp) +/* 0BFDC0 7F08B290 3C098008 */ lui $t1, %hi(ptr_BONDdata_p1) +/* 0BFDC4 7F08B294 11E0027E */ beqz $t7, .L7F08BC90 +/* 0BFDC8 7F08B298 0018C880 */ sll $t9, $t8, 2 +/* 0BFDCC 7F08B29C 25299EE0 */ addiu $t1, %lo(ptr_BONDdata_p1) # addiu $t1, $t1, -0x6120 +/* 0BFDD0 7F08B2A0 03298821 */ addu $s1, $t9, $t1 +/* 0BFDD4 7F08B2A4 8E2A0000 */ lw $t2, ($s1) +/* 0BFDD8 7F08B2A8 8D4B00D4 */ lw $t3, 0xd4($t2) +/* 0BFDDC 7F08B2AC 51600279 */ beql $t3, $zero, .L7F08BC94 +/* 0BFDE0 7F08B2B0 8FAA00F8 */ lw $t2, 0xf8($sp) +/* 0BFDE4 7F08B2B4 0FC26919 */ jal get_num_players +/* 0BFDE8 7F08B2B8 00000000 */ nop +/* 0BFDEC 7F08B2BC 28410002 */ slti $at, $v0, 2 +/* 0BFDF0 7F08B2C0 54200274 */ bnezl $at, .L7F08BC94 +/* 0BFDF4 7F08B2C4 8FAA00F8 */ lw $t2, 0xf8($sp) +/* 0BFDF8 7F08B2C8 0FC26C54 */ jal get_cur_playernum +/* 0BFDFC 7F08B2CC 00000000 */ nop +/* 0BFE00 7F08B2D0 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0BFE04 7F08B2D4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0BFE08 7F08B2D8 24050001 */ li $a1, 1 +/* 0BFE0C 7F08B2DC 504C026D */ beql $v0, $t4, .L7F08BC94 +/* 0BFE10 7F08B2E0 8FAA00F8 */ lw $t2, 0xf8($sp) +/* 0BFE14 7F08B2E4 44811000 */ mtc1 $at, $f2 +/* 0BFE18 7F08B2E8 AFA0009C */ sw $zero, 0x9c($sp) +/* 0BFE1C 7F08B2EC AFA0007C */ sw $zero, 0x7c($sp) +/* 0BFE20 7F08B2F0 8FA400F0 */ lw $a0, 0xf0($sp) +/* 0BFE24 7F08B2F4 E7A20090 */ swc1 $f2, 0x90($sp) +/* 0BFE28 7F08B2F8 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0BFE2C 7F08B2FC E7A20094 */ swc1 $f2, 0x94($sp) +/* 0BFE30 7F08B300 00408025 */ move $s0, $v0 +/* 0BFE34 7F08B304 8FA400F0 */ lw $a0, 0xf0($sp) +/* 0BFE38 7F08B308 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0BFE3C 7F08B30C 00002825 */ move $a1, $zero +/* 0BFE40 7F08B310 C7A20094 */ lwc1 $f2, 0x94($sp) +/* 0BFE44 7F08B314 00402825 */ move $a1, $v0 +/* 0BFE48 7F08B318 00001825 */ move $v1, $zero +/* 0BFE4C 7F08B31C 00002025 */ move $a0, $zero +/* 0BFE50 7F08B320 12000002 */ beqz $s0, .L7F08B32C +/* 0BFE54 7F08B324 AFA00054 */ sw $zero, 0x54($sp) +/* 0BFE58 7F08B328 8E030004 */ lw $v1, 4($s0) +.L7F08B32C: +/* 0BFE5C 7F08B32C 50400003 */ beql $v0, $zero, .L7F08B33C +/* 0BFE60 7F08B330 AFA3005C */ sw $v1, 0x5c($sp) +/* 0BFE64 7F08B334 8C440004 */ lw $a0, 4($v0) +/* 0BFE68 7F08B338 AFA3005C */ sw $v1, 0x5c($sp) +.L7F08B33C: +/* 0BFE6C 7F08B33C AFA40058 */ sw $a0, 0x58($sp) +/* 0BFE70 7F08B340 AFA50060 */ sw $a1, 0x60($sp) +/* 0BFE74 7F08B344 0FC26C54 */ jal get_cur_playernum +/* 0BFE78 7F08B348 E7A20094 */ swc1 $f2, 0x94($sp) +/* 0BFE7C 7F08B34C 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 0BFE80 7F08B350 00402025 */ move $a0, $v0 +/* 0BFE84 7F08B354 8FA3005C */ lw $v1, 0x5c($sp) +/* 0BFE88 7F08B358 8FA50060 */ lw $a1, 0x60($sp) +/* 0BFE8C 7F08B35C 14400006 */ bnez $v0, .L7F08B378 +/* 0BFE90 7F08B360 C7A20094 */ lwc1 $f2, 0x94($sp) +/* 0BFE94 7F08B364 3C028003 */ lui $v0, %hi(D_800368B8+0x1C) +/* 0BFE98 7F08B368 244268D4 */ addiu $v0, %lo(D_800368B8+0x1C) # addiu $v0, $v0, 0x68d4 +/* 0BFE9C 7F08B36C 8C4D0000 */ lw $t5, ($v0) +/* 0BFEA0 7F08B370 25AE0001 */ addiu $t6, $t5, 1 +/* 0BFEA4 7F08B374 AC4E0000 */ sw $t6, ($v0) +.L7F08B378: +/* 0BFEA8 7F08B378 3C028003 */ lui $v0, %hi(D_800368B8+0x1C) +/* 0BFEAC 7F08B37C 244268D4 */ addiu $v0, %lo(D_800368B8+0x1C) # addiu $v0, $v0, 0x68d4 +/* 0BFEB0 7F08B380 8C4F0000 */ lw $t7, ($v0) +/* 0BFEB4 7F08B384 29E10002 */ slti $at, $t7, 2 +/* 0BFEB8 7F08B388 542001BB */ bnezl $at, .L7F08BA78 +/* 0BFEBC 7F08B38C 8E2A0000 */ lw $t2, ($s1) +/* 0BFEC0 7F08B390 8E280000 */ lw $t0, ($s1) +/* 0BFEC4 7F08B394 C5042A08 */ lwc1 $f4, 0x2a08($t0) +/* 0BFEC8 7F08B398 E7A4008C */ swc1 $f4, 0x8c($sp) +/* 0BFECC 7F08B39C C5062A0C */ lwc1 $f6, 0x2a0c($t0) +/* 0BFED0 7F08B3A0 E7A60088 */ swc1 $f6, 0x88($sp) +/* 0BFED4 7F08B3A4 8D1800D8 */ lw $t8, 0xd8($t0) +/* 0BFED8 7F08B3A8 13000036 */ beqz $t8, .L7F08B484 +/* 0BFEDC 7F08B3AC 3C078003 */ lui $a3, %hi(D_8003650C) +/* 0BFEE0 7F08B3B0 8CE7650C */ lw $a3, %lo(D_8003650C)($a3) +/* 0BFEE4 7F08B3B4 00002825 */ move $a1, $zero +/* 0BFEE8 7F08B3B8 00008025 */ move $s0, $zero +/* 0BFEEC 7F08B3BC 18E00010 */ blez $a3, .L7F08B400 +/* 0BFEF0 7F08B3C0 3C198003 */ lui $t9, %hi(D_800364D8) +/* 0BFEF4 7F08B3C4 272264D8 */ addiu $v0, $t9, %lo(D_800364D8) +/* 0BFEF8 7F08B3C8 3C038007 */ lui $v1, %hi(ptr_animation_table) +/* 0BFEFC 7F08B3CC 00074880 */ sll $t1, $a3, 2 +/* 0BFF00 7F08B3D0 01222021 */ addu $a0, $t1, $v0 +/* 0BFF04 7F08B3D4 8C639538 */ lw $v1, %lo(ptr_animation_table)($v1) +/* 0BFF08 7F08B3D8 8D061284 */ lw $a2, 0x1284($t0) +/* 0BFF0C 7F08B3DC 8C4A0000 */ lw $t2, ($v0) +.L7F08B3E0: +/* 0BFF10 7F08B3E0 24420004 */ addiu $v0, $v0, 4 +/* 0BFF14 7F08B3E4 0044082B */ sltu $at, $v0, $a0 +/* 0BFF18 7F08B3E8 01435821 */ addu $t3, $t2, $v1 +/* 0BFF1C 7F08B3EC 14CB0002 */ bne $a2, $t3, .L7F08B3F8 +/* 0BFF20 7F08B3F0 00000000 */ nop +/* 0BFF24 7F08B3F4 24050001 */ li $a1, 1 +.L7F08B3F8: +/* 0BFF28 7F08B3F8 5420FFF9 */ bnezl $at, .L7F08B3E0 +/* 0BFF2C 7F08B3FC 8C4A0000 */ lw $t2, ($v0) +.L7F08B400: +/* 0BFF30 7F08B400 10A00005 */ beqz $a1, .L7F08B418 +/* 0BFF34 7F08B404 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BFF38 7F08B408 8D061284 */ lw $a2, 0x1284($t0) +/* 0BFF3C 7F08B40C 44816000 */ mtc1 $at, $f12 +/* 0BFF40 7F08B410 10000017 */ b .L7F08B470 +/* 0BFF44 7F08B414 AFA6009C */ sw $a2, 0x9c($sp) +.L7F08B418: +/* 0BFF48 7F08B418 0C002914 */ jal get_random_value +/* 0BFF4C 7F08B41C E7A20094 */ swc1 $f2, 0x94($sp) +/* 0BFF50 7F08B420 3C0C8003 */ lui $t4, %hi(D_8003650C) +/* 0BFF54 7F08B424 8D8C650C */ lw $t4, %lo(D_8003650C)($t4) +/* 0BFF58 7F08B428 3C0F8003 */ lui $t7, %hi(D_800364D8) +/* 0BFF5C 7F08B42C 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 0BFF60 7F08B430 004C001B */ divu $zero, $v0, $t4 +/* 0BFF64 7F08B434 00006810 */ mfhi $t5 +/* 0BFF68 7F08B438 000D7080 */ sll $t6, $t5, 2 +/* 0BFF6C 7F08B43C 01EE7821 */ addu $t7, $t7, $t6 +/* 0BFF70 7F08B440 8DEF64D8 */ lw $t7, %lo(D_800364D8)($t7) +/* 0BFF74 7F08B444 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 0BFF78 7F08B448 8E280000 */ lw $t0, ($s1) +/* 0BFF7C 7F08B44C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BFF80 7F08B450 01F84821 */ addu $t1, $t7, $t8 +/* 0BFF84 7F08B454 AFA9009C */ sw $t1, 0x9c($sp) +/* 0BFF88 7F08B458 44816000 */ mtc1 $at, $f12 +/* 0BFF8C 7F08B45C C7A20094 */ lwc1 $f2, 0x94($sp) +/* 0BFF90 7F08B460 15800002 */ bnez $t4, .L7F08B46C +/* 0BFF94 7F08B464 00000000 */ nop +/* 0BFF98 7F08B468 0007000D */ break 7 +.L7F08B46C: +/* 0BFF9C 7F08B46C 8D061284 */ lw $a2, 0x1284($t0) +.L7F08B470: +/* 0BFFA0 7F08B470 44807000 */ mtc1 $zero, $f14 +/* 0BFFA4 7F08B474 00000000 */ nop +/* 0BFFA8 7F08B478 E7AE008C */ swc1 $f14, 0x8c($sp) +/* 0BFFAC 7F08B47C 100000F6 */ b .L7F08B858 +/* 0BFFB0 7F08B480 E7AE0088 */ swc1 $f14, 0x88($sp) +.L7F08B484: +/* 0BFFB4 7F08B484 12000005 */ beqz $s0, .L7F08B49C +/* 0BFFB8 7F08B488 00000000 */ nop +/* 0BFFBC 7F08B48C 10A00003 */ beqz $a1, .L7F08B49C +/* 0BFFC0 7F08B490 00000000 */ nop +/* 0BFFC4 7F08B494 1000002E */ b .L7F08B550 +/* 0BFFC8 7F08B498 24100003 */ li $s0, 3 +.L7F08B49C: +/* 0BFFCC 7F08B49C 16000005 */ bnez $s0, .L7F08B4B4 +/* 0BFFD0 7F08B4A0 00000000 */ nop +/* 0BFFD4 7F08B4A4 14A00003 */ bnez $a1, .L7F08B4B4 +/* 0BFFD8 7F08B4A8 00000000 */ nop +/* 0BFFDC 7F08B4AC 10000028 */ b .L7F08B550 +/* 0BFFE0 7F08B4B0 24100002 */ li $s0, 2 +.L7F08B4B4: +/* 0BFFE4 7F08B4B4 10600008 */ beqz $v1, .L7F08B4D8 +/* 0BFFE8 7F08B4B8 24050200 */ li $a1, 512 +/* 0BFFEC 7F08B4BC 80640080 */ lb $a0, 0x80($v1) +/* 0BFFF0 7F08B4C0 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0BFFF4 7F08B4C4 AFA3005C */ sw $v1, 0x5c($sp) +/* 0BFFF8 7F08B4C8 14400003 */ bnez $v0, .L7F08B4D8 +/* 0BFFFC 7F08B4CC 8FA3005C */ lw $v1, 0x5c($sp) +/* 0C0000 7F08B4D0 1000001F */ b .L7F08B550 +/* 0C0004 7F08B4D4 24100002 */ li $s0, 2 +.L7F08B4D8: +/* 0C0008 7F08B4D8 8FA20058 */ lw $v0, 0x58($sp) +/* 0C000C 7F08B4DC 24050200 */ li $a1, 512 +/* 0C0010 7F08B4E0 10400008 */ beqz $v0, .L7F08B504 +/* 0C0014 7F08B4E4 00000000 */ nop +/* 0C0018 7F08B4E8 80440080 */ lb $a0, 0x80($v0) +/* 0C001C 7F08B4EC 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C0020 7F08B4F0 AFA3005C */ sw $v1, 0x5c($sp) +/* 0C0024 7F08B4F4 14400003 */ bnez $v0, .L7F08B504 +/* 0C0028 7F08B4F8 8FA3005C */ lw $v1, 0x5c($sp) +/* 0C002C 7F08B4FC 10000014 */ b .L7F08B550 +/* 0C0030 7F08B500 24100002 */ li $s0, 2 +.L7F08B504: +/* 0C0034 7F08B504 10600007 */ beqz $v1, .L7F08B524 +/* 0C0038 7F08B508 24050100 */ li $a1, 256 +/* 0C003C 7F08B50C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C0040 7F08B510 80640080 */ lb $a0, 0x80($v1) +/* 0C0044 7F08B514 50400004 */ beql $v0, $zero, .L7F08B528 +/* 0C0048 7F08B518 8FA20058 */ lw $v0, 0x58($sp) +/* 0C004C 7F08B51C 1000000C */ b .L7F08B550 +/* 0C0050 7F08B520 00008025 */ move $s0, $zero +.L7F08B524: +/* 0C0054 7F08B524 8FA20058 */ lw $v0, 0x58($sp) +.L7F08B528: +/* 0C0058 7F08B528 24050100 */ li $a1, 256 +/* 0C005C 7F08B52C 50400008 */ beql $v0, $zero, .L7F08B550 +/* 0C0060 7F08B530 24100001 */ li $s0, 1 +/* 0C0064 7F08B534 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C0068 7F08B538 80440080 */ lb $a0, 0x80($v0) +/* 0C006C 7F08B53C 50400004 */ beql $v0, $zero, .L7F08B550 +/* 0C0070 7F08B540 24100001 */ li $s0, 1 +/* 0C0074 7F08B544 10000002 */ b .L7F08B550 +/* 0C0078 7F08B548 00008025 */ move $s0, $zero +/* 0C007C 7F08B54C 24100001 */ li $s0, 1 +.L7F08B550: +/* 0C0080 7F08B550 0FC1E687 */ jal sub_GAME_7F079A1C +/* 0C0084 7F08B554 8FA400F4 */ lw $a0, 0xf4($sp) +/* 0C0088 7F08B558 24010001 */ li $at, 1 +/* 0C008C 7F08B55C 50410005 */ beql $v0, $at, .L7F08B574 +/* 0C0090 7F08B560 3C013F80 */ lui $at, 0x3f80 +/* 0C0094 7F08B564 0FC1E687 */ jal sub_GAME_7F079A1C +/* 0C0098 7F08B568 8FA400F4 */ lw $a0, 0xf4($sp) +/* 0C009C 7F08B56C 14400006 */ bnez $v0, .L7F08B588 +/* 0C00A0 7F08B570 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F08B574: +/* 0C00A4 7F08B574 44816000 */ mtc1 $at, $f12 +/* 0C00A8 7F08B578 44807000 */ mtc1 $zero, $f14 +/* 0C00AC 7F08B57C 24040005 */ li $a0, 5 +/* 0C00B0 7F08B580 1000009D */ b .L7F08B7F8 +/* 0C00B4 7F08B584 8E280000 */ lw $t0, ($s1) +.L7F08B588: +/* 0C00B8 7F08B588 8E280000 */ lw $t0, ($s1) +/* 0C00BC 7F08B58C 44807000 */ mtc1 $zero, $f14 +/* 0C00C0 7F08B590 0010C900 */ sll $t9, $s0, 4 +/* 0C00C4 7F08B594 C502016C */ lwc1 $f2, 0x16c($t0) +/* 0C00C8 7F08B598 0330C823 */ subu $t9, $t9, $s0 +/* 0C00CC 7F08B59C 0019C8C0 */ sll $t9, $t9, 3 +/* 0C00D0 7F08B5A0 460E103C */ c.lt.s $f2, $f14 +/* 0C00D4 7F08B5A4 3C0A8003 */ lui $t2, %hi(firing_animation_groups+0x50) #firing_animation_groups[440] +/* 0C00D8 7F08B5A8 01595021 */ addu $t2, $t2, $t9 +/* 0C00DC 7F08B5AC 45020014 */ bc1fl .L7F08B600 +/* 0C00E0 7F08B5B0 4602703C */ c.lt.s $f14, $f2 +/* 0C00E4 7F08B5B4 8D4A6928 */ lw $t2, %lo(firing_animation_groups+0x50)($t2) #firing_animation_groups[440] +/* 0C00E8 7F08B5B8 3C0142B4 */ li $at, 0x42B40000 # 90.000000 +/* 0C00EC 7F08B5BC 51400010 */ beql $t2, $zero, .L7F08B600 +/* 0C00F0 7F08B5C0 4602703C */ c.lt.s $f14, $f2 +/* 0C00F4 7F08B5C4 C5001280 */ lwc1 $f0, 0x1280($t0) +/* 0C00F8 7F08B5C8 44814000 */ mtc1 $at, $f8 +/* 0C00FC 7F08B5CC 24040004 */ li $a0, 4 +/* 0C0100 7F08B5D0 46001307 */ neg.s $f12, $f2 +/* 0C0104 7F08B5D4 4608003C */ c.lt.s $f0, $f8 +/* 0C0108 7F08B5D8 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0C010C 7F08B5DC 45020087 */ bc1fl .L7F08B7FC +/* 0C0110 7F08B5E0 00107900 */ sll $t7, $s0, 4 +/* 0C0114 7F08B5E4 44815000 */ mtc1 $at, $f10 +/* 0C0118 7F08B5E8 00000000 */ nop +/* 0C011C 7F08B5EC 460A0480 */ add.s $f18, $f0, $f10 +/* 0C0120 7F08B5F0 E5121280 */ swc1 $f18, 0x1280($t0) +/* 0C0124 7F08B5F4 10000080 */ b .L7F08B7F8 +/* 0C0128 7F08B5F8 8E280000 */ lw $t0, ($s1) +/* 0C012C 7F08B5FC 4602703C */ c.lt.s $f14, $f2 +.L7F08B600: +/* 0C0130 7F08B600 00105900 */ sll $t3, $s0, 4 +/* 0C0134 7F08B604 01705823 */ subu $t3, $t3, $s0 +/* 0C0138 7F08B608 000B58C0 */ sll $t3, $t3, 3 +/* 0C013C 7F08B60C 45000014 */ bc1f .L7F08B660 +/* 0C0140 7F08B610 3C0C8003 */ lui $t4, %hi(firing_animation_groups+0x3C) +/* 0C0144 7F08B614 018B6021 */ addu $t4, $t4, $t3 +/* 0C0148 7F08B618 8D8C6914 */ lw $t4, %lo(firing_animation_groups+0x3C)($t4) +/* 0C014C 7F08B61C 3C01C2B4 */ li $at, 0xC2B40000 # -90.000000 +/* 0C0150 7F08B620 51800010 */ beql $t4, $zero, .L7F08B664 +/* 0C0154 7F08B624 C502014C */ lwc1 $f2, 0x14c($t0) +/* 0C0158 7F08B628 C5001280 */ lwc1 $f0, 0x1280($t0) +/* 0C015C 7F08B62C 44812000 */ mtc1 $at, $f4 +/* 0C0160 7F08B630 24040003 */ li $a0, 3 +/* 0C0164 7F08B634 46001306 */ mov.s $f12, $f2 +/* 0C0168 7F08B638 4600203C */ c.lt.s $f4, $f0 +/* 0C016C 7F08B63C 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0C0170 7F08B640 4502006E */ bc1fl .L7F08B7FC +/* 0C0174 7F08B644 00107900 */ sll $t7, $s0, 4 +/* 0C0178 7F08B648 44813000 */ mtc1 $at, $f6 +/* 0C017C 7F08B64C 00000000 */ nop +/* 0C0180 7F08B650 46060201 */ sub.s $f8, $f0, $f6 +/* 0C0184 7F08B654 E5081280 */ swc1 $f8, 0x1280($t0) +/* 0C0188 7F08B658 10000067 */ b .L7F08B7F8 +/* 0C018C 7F08B65C 8E280000 */ lw $t0, ($s1) +.L7F08B660: +/* 0C0190 7F08B660 C502014C */ lwc1 $f2, 0x14c($t0) +.L7F08B664: +/* 0C0194 7F08B664 3C018005 */ lui $at, %hi(D_800552C0) +/* 0C0198 7F08B668 460E103C */ c.lt.s $f2, $f14 +/* 0C019C 7F08B66C 00000000 */ nop +/* 0C01A0 7F08B670 45020003 */ bc1fl .L7F08B680 +/* 0C01A4 7F08B674 C5000174 */ lwc1 $f0, 0x174($t0) +/* 0C01A8 7F08B678 46001087 */ neg.s $f2, $f2 +/* 0C01AC 7F08B67C C5000174 */ lwc1 $f0, 0x174($t0) +.L7F08B680: +/* 0C01B0 7F08B680 C42A52C0 */ lwc1 $f10, %lo(D_800552C0)($at) +/* 0C01B4 7F08B684 3C018005 */ lui $at, %hi(D_800552C8) +/* 0C01B8 7F08B688 460A003C */ c.lt.s $f0, $f10 +/* 0C01BC 7F08B68C 00000000 */ nop +/* 0C01C0 7F08B690 4500001D */ bc1f .L7F08B708 +/* 0C01C4 7F08B694 00000000 */ nop +/* 0C01C8 7F08B698 46001087 */ neg.s $f2, $f2 +/* 0C01CC 7F08B69C 3C018005 */ lui $at, %hi(D_800552C4) +/* 0C01D0 7F08B6A0 4602003C */ c.lt.s $f0, $f2 +/* 0C01D4 7F08B6A4 00000000 */ nop +/* 0C01D8 7F08B6A8 45020003 */ bc1fl .L7F08B6B8 +/* 0C01DC 7F08B6AC 8D0D04E8 */ lw $t5, 0x4e8($t0) +/* 0C01E0 7F08B6B0 46000086 */ mov.s $f2, $f0 +/* 0C01E4 7F08B6B4 8D0D04E8 */ lw $t5, 0x4e8($t0) +.L7F08B6B8: +/* 0C01E8 7F08B6B8 51A00008 */ beql $t5, $zero, .L7F08B6DC +/* 0C01EC 7F08B6BC 46021300 */ add.s $f12, $f2, $f2 +/* 0C01F0 7F08B6C0 C43252C4 */ lwc1 $f18, %lo(D_800552C4)($at) +/* 0C01F4 7F08B6C4 24040002 */ li $a0, 2 +/* 0C01F8 7F08B6C8 4600903C */ c.lt.s $f18, $f0 +/* 0C01FC 7F08B6CC 00000000 */ nop +/* 0C0200 7F08B6D0 4500000B */ bc1f .L7F08B700 +/* 0C0204 7F08B6D4 00000000 */ nop +/* 0C0208 7F08B6D8 46021300 */ add.s $f12, $f2, $f2 +.L7F08B6DC: +/* 0C020C 7F08B6DC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0C0210 7F08B6E0 44818000 */ mtc1 $at, $f16 +/* 0C0214 7F08B6E4 24040001 */ li $a0, 1 +/* 0C0218 7F08B6E8 4610603C */ c.lt.s $f12, $f16 +/* 0C021C 7F08B6EC 00000000 */ nop +/* 0C0220 7F08B6F0 4502002D */ bc1fl .L7F08B7A8 +/* 0C0224 7F08B6F4 C5001280 */ lwc1 $f0, 0x1280($t0) +/* 0C0228 7F08B6F8 1000002A */ b .L7F08B7A4 +/* 0C022C 7F08B6FC 46008306 */ mov.s $f12, $f16 +.L7F08B700: +/* 0C0230 7F08B700 10000028 */ b .L7F08B7A4 +/* 0C0234 7F08B704 46001306 */ mov.s $f12, $f2 +.L7F08B708: +/* 0C0238 7F08B708 C42C52C8 */ lwc1 $f12, %lo(D_800552C8)($at) +/* 0C023C 7F08B70C 4600603C */ c.lt.s $f12, $f0 +/* 0C0240 7F08B710 00000000 */ nop +/* 0C0244 7F08B714 45030006 */ bc1tl .L7F08B730 +/* 0C0248 7F08B718 4600103C */ c.lt.s $f2, $f0 +/* 0C024C 7F08B71C 4602603C */ c.lt.s $f12, $f2 +/* 0C0250 7F08B720 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C0254 7F08B724 4502001E */ bc1fl .L7F08B7A0 +/* 0C0258 7F08B728 44816000 */ mtc1 $at, $f12 +/* 0C025C 7F08B72C 4600103C */ c.lt.s $f2, $f0 +.L7F08B730: +/* 0C0260 7F08B730 3C018005 */ lui $at, %hi(D_800552CC) +/* 0C0264 7F08B734 45020003 */ bc1fl .L7F08B744 +/* 0C0268 7F08B738 8D0E04E8 */ lw $t6, 0x4e8($t0) +/* 0C026C 7F08B73C 46000086 */ mov.s $f2, $f0 +/* 0C0270 7F08B740 8D0E04E8 */ lw $t6, 0x4e8($t0) +.L7F08B744: +/* 0C0274 7F08B744 51C00008 */ beql $t6, $zero, .L7F08B768 +/* 0C0278 7F08B748 46021300 */ add.s $f12, $f2, $f2 +/* 0C027C 7F08B74C C42452CC */ lwc1 $f4, %lo(D_800552CC)($at) +/* 0C0280 7F08B750 24040002 */ li $a0, 2 +/* 0C0284 7F08B754 4604003C */ c.lt.s $f0, $f4 +/* 0C0288 7F08B758 00000000 */ nop +/* 0C028C 7F08B75C 4500000D */ bc1f .L7F08B794 +/* 0C0290 7F08B760 00000000 */ nop +/* 0C0294 7F08B764 46021300 */ add.s $f12, $f2, $f2 +.L7F08B768: +/* 0C0298 7F08B768 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C029C 7F08B76C 44813000 */ mtc1 $at, $f6 +/* 0C02A0 7F08B770 24040001 */ li $a0, 1 +/* 0C02A4 7F08B774 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C02A8 7F08B778 460C303C */ c.lt.s $f6, $f12 +/* 0C02AC 7F08B77C 00000000 */ nop +/* 0C02B0 7F08B780 45020009 */ bc1fl .L7F08B7A8 +/* 0C02B4 7F08B784 C5001280 */ lwc1 $f0, 0x1280($t0) +/* 0C02B8 7F08B788 44816000 */ mtc1 $at, $f12 +/* 0C02BC 7F08B78C 10000006 */ b .L7F08B7A8 +/* 0C02C0 7F08B790 C5001280 */ lwc1 $f0, 0x1280($t0) +.L7F08B794: +/* 0C02C4 7F08B794 10000003 */ b .L7F08B7A4 +/* 0C02C8 7F08B798 46001306 */ mov.s $f12, $f2 +/* 0C02CC 7F08B79C 44816000 */ mtc1 $at, $f12 +.L7F08B7A0: +/* 0C02D0 7F08B7A0 00002025 */ move $a0, $zero +.L7F08B7A4: +/* 0C02D4 7F08B7A4 C5001280 */ lwc1 $f0, 0x1280($t0) +.L7F08B7A8: +/* 0C02D8 7F08B7A8 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0C02DC 7F08B7AC 4600703C */ c.lt.s $f14, $f0 +/* 0C02E0 7F08B7B0 00000000 */ nop +/* 0C02E4 7F08B7B4 45020008 */ bc1fl .L7F08B7D8 +/* 0C02E8 7F08B7B8 460E003C */ c.lt.s $f0, $f14 +/* 0C02EC 7F08B7BC 44814000 */ mtc1 $at, $f8 +/* 0C02F0 7F08B7C0 00000000 */ nop +/* 0C02F4 7F08B7C4 46080281 */ sub.s $f10, $f0, $f8 +/* 0C02F8 7F08B7C8 E50A1280 */ swc1 $f10, 0x1280($t0) +/* 0C02FC 7F08B7CC 8E280000 */ lw $t0, ($s1) +/* 0C0300 7F08B7D0 C5001280 */ lwc1 $f0, 0x1280($t0) +/* 0C0304 7F08B7D4 460E003C */ c.lt.s $f0, $f14 +.L7F08B7D8: +/* 0C0308 7F08B7D8 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0C030C 7F08B7DC 45020007 */ bc1fl .L7F08B7FC +/* 0C0310 7F08B7E0 00107900 */ sll $t7, $s0, 4 +/* 0C0314 7F08B7E4 44819000 */ mtc1 $at, $f18 +/* 0C0318 7F08B7E8 00000000 */ nop +/* 0C031C 7F08B7EC 46120100 */ add.s $f4, $f0, $f18 +/* 0C0320 7F08B7F0 E5041280 */ swc1 $f4, 0x1280($t0) +/* 0C0324 7F08B7F4 8E280000 */ lw $t0, ($s1) +.L7F08B7F8: +/* 0C0328 7F08B7F8 00107900 */ sll $t7, $s0, 4 +.L7F08B7FC: +/* 0C032C 7F08B7FC 0004C080 */ sll $t8, $a0, 2 +/* 0C0330 7F08B800 0304C021 */ addu $t8, $t8, $a0 +/* 0C0334 7F08B804 01F07823 */ subu $t7, $t7, $s0 +/* 0C0338 7F08B808 000F78C0 */ sll $t7, $t7, 3 +/* 0C033C 7F08B80C 0018C080 */ sll $t8, $t8, 2 +/* 0C0340 7F08B810 3C198003 */ lui $t9, %hi(firing_animation_groups) +/* 0C0344 7F08B814 273968D8 */ addiu $t9, %lo(firing_animation_groups) # addiu $t9, $t9, 0x68d8 +/* 0C0348 7F08B818 01F84821 */ addu $t1, $t7, $t8 +/* 0C034C 7F08B81C 01391021 */ addu $v0, $t1, $t9 +/* 0C0350 7F08B820 8C430004 */ lw $v1, 4($v0) +/* 0C0354 7F08B824 8C4A0000 */ lw $t2, ($v0) +/* 0C0358 7F08B828 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 0C035C 7F08B82C 10600004 */ beqz $v1, .L7F08B840 +/* 0C0360 7F08B830 AFAA007C */ sw $t2, 0x7c($sp) +/* 0C0364 7F08B834 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 0C0368 7F08B838 006B6021 */ addu $t4, $v1, $t3 +/* 0C036C 7F08B83C AFAC009C */ sw $t4, 0x9c($sp) +.L7F08B840: +/* 0C0370 7F08B840 C4460008 */ lwc1 $f6, 8($v0) +/* 0C0374 7F08B844 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0C0378 7F08B848 C442000C */ lwc1 $f2, 0xc($v0) +/* 0C037C 7F08B84C 46066302 */ mul.s $f12, $f12, $f6 +/* 0C0380 7F08B850 E7A80090 */ swc1 $f8, 0x90($sp) +/* 0C0384 7F08B854 8D061284 */ lw $a2, 0x1284($t0) +.L7F08B858: +/* 0C0388 7F08B858 8FAD007C */ lw $t5, 0x7c($sp) +/* 0C038C 7F08B85C 8FAE009C */ lw $t6, 0x9c($sp) +/* 0C0390 7F08B860 24020001 */ li $v0, 1 +/* 0C0394 7F08B864 51A00006 */ beql $t5, $zero, .L7F08B880 +/* 0C0398 7F08B868 8FB8009C */ lw $t8, 0x9c($sp) +/* 0C039C 7F08B86C 55C00004 */ bnezl $t6, .L7F08B880 +/* 0C03A0 7F08B870 8FB8009C */ lw $t8, 0x9c($sp) +/* 0C03A4 7F08B874 8DAF0000 */ lw $t7, ($t5) +/* 0C03A8 7F08B878 AFAF009C */ sw $t7, 0x9c($sp) +/* 0C03AC 7F08B87C 8FB8009C */ lw $t8, 0x9c($sp) +.L7F08B880: +/* 0C03B0 7F08B880 53060003 */ beql $t8, $a2, .L7F08B890 +/* 0C03B4 7F08B884 4602703E */ c.le.s $f14, $f2 +/* 0C03B8 7F08B888 AFA20054 */ sw $v0, 0x54($sp) +/* 0C03BC 7F08B88C 4602703E */ c.le.s $f14, $f2 +.L7F08B890: +/* 0C03C0 7F08B890 8FA20054 */ lw $v0, 0x54($sp) +/* 0C03C4 7F08B894 4502000C */ bc1fl .L7F08B8C8 +/* 0C03C8 7F08B898 460E103C */ c.lt.s $f2, $f14 +/* 0C03CC 7F08B89C 8D0400D4 */ lw $a0, 0xd4($t0) +/* 0C03D0 7F08B8A0 80890026 */ lb $t1, 0x26($a0) +/* 0C03D4 7F08B8A4 51200007 */ beql $t1, $zero, .L7F08B8C4 +/* 0C03D8 7F08B8A8 24020001 */ li $v0, 1 +/* 0C03DC 7F08B8AC C48A0090 */ lwc1 $f10, 0x90($a0) +/* 0C03E0 7F08B8B0 460A1032 */ c.eq.s $f2, $f10 +/* 0C03E4 7F08B8B4 00000000 */ nop +/* 0C03E8 7F08B8B8 45030003 */ bc1tl .L7F08B8C8 +/* 0C03EC 7F08B8BC 460E103C */ c.lt.s $f2, $f14 +/* 0C03F0 7F08B8C0 24020001 */ li $v0, 1 +.L7F08B8C4: +/* 0C03F4 7F08B8C4 460E103C */ c.lt.s $f2, $f14 +.L7F08B8C8: +/* 0C03F8 7F08B8C8 00000000 */ nop +/* 0C03FC 7F08B8CC 45000006 */ bc1f .L7F08B8E8 +/* 0C0400 7F08B8D0 00000000 */ nop +/* 0C0404 7F08B8D4 8D1900D4 */ lw $t9, 0xd4($t0) +/* 0C0408 7F08B8D8 832A0026 */ lb $t2, 0x26($t9) +/* 0C040C 7F08B8DC 11400002 */ beqz $t2, .L7F08B8E8 +/* 0C0410 7F08B8E0 00000000 */ nop +/* 0C0414 7F08B8E4 24020001 */ li $v0, 1 +.L7F08B8E8: +/* 0C0418 7F08B8E8 50400035 */ beql $v0, $zero, .L7F08B9C0 +/* 0C041C 7F08B8EC C5061288 */ lwc1 $f6, 0x1288($t0) +/* 0C0420 7F08B8F0 8D0400D4 */ lw $a0, 0xd4($t0) +/* 0C0424 7F08B8F4 8FA5009C */ lw $a1, 0x9c($sp) +/* 0C0428 7F08B8F8 00003025 */ move $a2, $zero +/* 0C042C 7F08B8FC 8C8B0054 */ lw $t3, 0x54($a0) +/* 0C0430 7F08B900 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0C0434 7F08B904 5560002B */ bnezl $t3, .L7F08B9B4 +/* 0C0438 7F08B908 8E290000 */ lw $t1, ($s1) +/* 0C043C 7F08B90C 4602703E */ c.le.s $f14, $f2 +/* 0C0440 7F08B910 44819000 */ mtc1 $at, $f18 +/* 0C0444 7F08B914 45020004 */ bc1fl .L7F08B928 +/* 0C0448 7F08B918 46007006 */ mov.s $f0, $f14 +/* 0C044C 7F08B91C 10000002 */ b .L7F08B928 +/* 0C0450 7F08B920 46001006 */ mov.s $f0, $f2 +/* 0C0454 7F08B924 46007006 */ mov.s $f0, $f14 +.L7F08B928: +/* 0C0458 7F08B928 44070000 */ mfc1 $a3, $f0 +/* 0C045C 7F08B92C E7AC0010 */ swc1 $f12, 0x10($sp) +/* 0C0460 7F08B930 E7B20014 */ swc1 $f18, 0x14($sp) +/* 0C0464 7F08B934 E7A20094 */ swc1 $f2, 0x94($sp) +/* 0C0468 7F08B938 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0C046C 7F08B93C E7AC0098 */ swc1 $f12, 0x98($sp) +/* 0C0470 7F08B940 C7A20094 */ lwc1 $f2, 0x94($sp) +/* 0C0474 7F08B944 44807000 */ mtc1 $zero, $f14 +/* 0C0478 7F08B948 8FAC009C */ lw $t4, 0x9c($sp) +/* 0C047C 7F08B94C 8E2E0000 */ lw $t6, ($s1) +/* 0C0480 7F08B950 4602703E */ c.le.s $f14, $f2 +/* 0C0484 7F08B954 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 0C0488 7F08B958 ADCC1284 */ sw $t4, 0x1284($t6) +/* 0C048C 7F08B95C 8E2D0000 */ lw $t5, ($s1) +/* 0C0490 7F08B960 3C064180 */ lui $a2, 0x4180 +/* 0C0494 7F08B964 45000007 */ bc1f .L7F08B984 +/* 0C0498 7F08B968 E5AC1288 */ swc1 $f12, 0x1288($t5) +/* 0C049C 7F08B96C 8E2F0000 */ lw $t7, ($s1) +/* 0C04A0 7F08B970 44051000 */ mfc1 $a1, $f2 +/* 0C04A4 7F08B974 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 0C04A8 7F08B978 8DE400D4 */ lw $a0, 0xd4($t7) +/* 0C04AC 7F08B97C 44807000 */ mtc1 $zero, $f14 +/* 0C04B0 7F08B980 00000000 */ nop +.L7F08B984: +/* 0C04B4 7F08B984 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 0C04B8 7F08B988 4604703E */ c.le.s $f14, $f4 +/* 0C04BC 7F08B98C 00000000 */ nop +/* 0C04C0 7F08B990 45020008 */ bc1fl .L7F08B9B4 +/* 0C04C4 7F08B994 8E290000 */ lw $t1, ($s1) +/* 0C04C8 7F08B998 8E380000 */ lw $t8, ($s1) +/* 0C04CC 7F08B99C 44052000 */ mfc1 $a1, $f4 +/* 0C04D0 7F08B9A0 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0C04D4 7F08B9A4 8F0400D4 */ lw $a0, 0xd4($t8) +/* 0C04D8 7F08B9A8 44807000 */ mtc1 $zero, $f14 +/* 0C04DC 7F08B9AC 00000000 */ nop +/* 0C04E0 7F08B9B0 8E290000 */ lw $t1, ($s1) +.L7F08B9B4: +/* 0C04E4 7F08B9B4 10000011 */ b .L7F08B9FC +/* 0C04E8 7F08B9B8 8D261284 */ lw $a2, 0x1284($t1) +/* 0C04EC 7F08B9BC C5061288 */ lwc1 $f6, 0x1288($t0) +.L7F08B9C0: +/* 0C04F0 7F08B9C0 46066032 */ c.eq.s $f12, $f6 +/* 0C04F4 7F08B9C4 00000000 */ nop +/* 0C04F8 7F08B9C8 4503000D */ bc1tl .L7F08BA00 +/* 0C04FC 7F08B9CC 8FAB009C */ lw $t3, 0x9c($sp) +/* 0C0500 7F08B9D0 8D0400D4 */ lw $a0, 0xd4($t0) +/* 0C0504 7F08B9D4 44056000 */ mfc1 $a1, $f12 +/* 0C0508 7F08B9D8 E7AC0098 */ swc1 $f12, 0x98($sp) +/* 0C050C 7F08B9DC 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 0C0510 7F08B9E0 3C063F80 */ lui $a2, 0x3f80 +/* 0C0514 7F08B9E4 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 0C0518 7F08B9E8 8E390000 */ lw $t9, ($s1) +/* 0C051C 7F08B9EC 44807000 */ mtc1 $zero, $f14 +/* 0C0520 7F08B9F0 E72C1288 */ swc1 $f12, 0x1288($t9) +/* 0C0524 7F08B9F4 8E2A0000 */ lw $t2, ($s1) +/* 0C0528 7F08B9F8 8D461284 */ lw $a2, 0x1284($t2) +.L7F08B9FC: +/* 0C052C 7F08B9FC 8FAB009C */ lw $t3, 0x9c($sp) +.L7F08BA00: +/* 0C0530 7F08BA00 8FAC007C */ lw $t4, 0x7c($sp) +/* 0C0534 7F08BA04 55660017 */ bnel $t3, $a2, .L7F08BA64 +/* 0C0538 7F08BA08 8FA200F0 */ lw $v0, 0xf0($sp) +/* 0C053C 7F08BA0C 1180000D */ beqz $t4, .L7F08BA44 +/* 0C0540 7F08BA10 8FAF00F0 */ lw $t7, 0xf0($sp) +/* 0C0544 7F08BA14 8FA400F0 */ lw $a0, 0xf0($sp) +/* 0C0548 7F08BA18 00003025 */ move $a2, $zero +/* 0C054C 7F08BA1C 24070001 */ li $a3, 1 +/* 0C0550 7F08BA20 948E0012 */ lhu $t6, 0x12($a0) +/* 0C0554 7F08BA24 31CDFBFF */ andi $t5, $t6, 0xfbff +/* 0C0558 7F08BA28 A48D0012 */ sh $t5, 0x12($a0) +/* 0C055C 7F08BA2C C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 0C0560 7F08BA30 8FA5007C */ lw $a1, 0x7c($sp) +/* 0C0564 7F08BA34 0FC0B412 */ jal sub_GAME_7F02D048 +/* 0C0568 7F08BA38 E7A80010 */ swc1 $f8, 0x10($sp) +/* 0C056C 7F08BA3C 10000009 */ b .L7F08BA64 +/* 0C0570 7F08BA40 8FA200F0 */ lw $v0, 0xf0($sp) +.L7F08BA44: +/* 0C0574 7F08BA44 95F80012 */ lhu $t8, 0x12($t7) +/* 0C0578 7F08BA48 E5EE0154 */ swc1 $f14, 0x154($t7) +/* 0C057C 7F08BA4C E5EE0150 */ swc1 $f14, 0x150($t7) +/* 0C0580 7F08BA50 37090400 */ ori $t1, $t8, 0x400 +/* 0C0584 7F08BA54 A5E90012 */ sh $t1, 0x12($t7) +/* 0C0588 7F08BA58 C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0C058C 7F08BA5C E5EA0158 */ swc1 $f10, 0x158($t7) +/* 0C0590 7F08BA60 8FA200F0 */ lw $v0, 0xf0($sp) +.L7F08BA64: +/* 0C0594 7F08BA64 C7B20088 */ lwc1 $f18, 0x88($sp) +/* 0C0598 7F08BA68 2419000A */ li $t9, 10 +/* 0C059C 7F08BA6C A059000E */ sb $t9, 0xe($v0) +/* 0C05A0 7F08BA70 E452015C */ swc1 $f18, 0x15c($v0) +/* 0C05A4 7F08BA74 8E2A0000 */ lw $t2, ($s1) +.L7F08BA78: +/* 0C05A8 7F08BA78 8FA300F8 */ lw $v1, 0xf8($sp) +/* 0C05AC 7F08BA7C 8FA200F0 */ lw $v0, 0xf0($sp) +/* 0C05B0 7F08BA80 C544048C */ lwc1 $f4, 0x48c($t2) +/* 0C05B4 7F08BA84 27A50070 */ addiu $a1, $sp, 0x70 +/* 0C05B8 7F08BA88 00008025 */ move $s0, $zero +/* 0C05BC 7F08BA8C E4640008 */ swc1 $f4, 8($v1) +/* 0C05C0 7F08BA90 8E2B0000 */ lw $t3, ($s1) +/* 0C05C4 7F08BA94 C5660490 */ lwc1 $f6, 0x490($t3) +/* 0C05C8 7F08BA98 E466000C */ swc1 $f6, 0xc($v1) +/* 0C05CC 7F08BA9C 8E2C0000 */ lw $t4, ($s1) +/* 0C05D0 7F08BAA0 C5880494 */ lwc1 $f8, 0x494($t4) +/* 0C05D4 7F08BAA4 E4680010 */ swc1 $f8, 0x10($v1) +/* 0C05D8 7F08BAA8 8E2E0000 */ lw $t6, ($s1) +/* 0C05DC 7F08BAAC 8DCD0488 */ lw $t5, 0x488($t6) +/* 0C05E0 7F08BAB0 AC6D0014 */ sw $t5, 0x14($v1) +/* 0C05E4 7F08BAB4 0FC1B2E6 */ jal getsuboffset +/* 0C05E8 7F08BAB8 8C44001C */ lw $a0, 0x1c($v0) +/* 0C05EC 7F08BABC 8FA200F8 */ lw $v0, 0xf8($sp) +/* 0C05F0 7F08BAC0 8FB800F0 */ lw $t8, 0xf0($sp) +/* 0C05F4 7F08BAC4 27A50070 */ addiu $a1, $sp, 0x70 +/* 0C05F8 7F08BAC8 C44A0008 */ lwc1 $f10, 8($v0) +/* 0C05FC 7F08BACC E7AA0070 */ swc1 $f10, 0x70($sp) +/* 0C0600 7F08BAD0 C4520010 */ lwc1 $f18, 0x10($v0) +/* 0C0604 7F08BAD4 E7B20078 */ swc1 $f18, 0x78($sp) +/* 0C0608 7F08BAD8 0FC1B303 */ jal setsuboffset +/* 0C060C 7F08BADC 8F04001C */ lw $a0, 0x1c($t8) +/* 0C0610 7F08BAE0 8E280000 */ lw $t0, ($s1) +/* 0C0614 7F08BAE4 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0C0618 7F08BAE8 44810000 */ mtc1 $at, $f0 +/* 0C061C 7F08BAEC C5060148 */ lwc1 $f6, 0x148($t0) +/* 0C0620 7F08BAF0 C5041280 */ lwc1 $f4, 0x1280($t0) +/* 0C0624 7F08BAF4 3C018005 */ lui $at, %hi(D_800552D0) +/* 0C0628 7F08BAF8 46060201 */ sub.s $f8, $f0, $f6 +/* 0C062C 7F08BAFC C43252D0 */ lwc1 $f18, %lo(D_800552D0)($at) +/* 0C0630 7F08BB00 8FA900F0 */ lw $t1, 0xf0($sp) +/* 0C0634 7F08BB04 46082280 */ add.s $f10, $f4, $f8 +/* 0C0638 7F08BB08 8D24001C */ lw $a0, 0x1c($t1) +/* 0C063C 7F08BB0C 46125182 */ mul.s $f6, $f10, $f18 +/* 0C0640 7F08BB10 46003103 */ div.s $f4, $f6, $f0 +/* 0C0644 7F08BB14 44052000 */ mfc1 $a1, $f4 +/* 0C0648 7F08BB18 0FC1B34F */ jal setsubroty +/* 0C064C 7F08BB1C 00000000 */ nop +/* 0C0650 7F08BB20 8FA400F0 */ lw $a0, 0xf0($sp) +/* 0C0654 7F08BB24 240A0019 */ li $t2, 25 +/* 0C0658 7F08BB28 00002825 */ move $a1, $zero +/* 0C065C 7F08BB2C 8C8F0014 */ lw $t7, 0x14($a0) +/* 0C0660 7F08BB30 A08A0007 */ sb $t2, 7($a0) +/* 0C0664 7F08BB34 35F90001 */ ori $t9, $t7, 1 +/* 0C0668 7F08BB38 AC990014 */ sw $t9, 0x14($a0) +/* 0C066C 7F08BB3C 8FAB007C */ lw $t3, 0x7c($sp) +/* 0C0670 7F08BB40 AC8B002C */ sw $t3, 0x2c($a0) +/* 0C0674 7F08BB44 8E2C0000 */ lw $t4, ($s1) +/* 0C0678 7F08BB48 0FC0B446 */ jal sub_GAME_7F02D118 +/* 0C067C 7F08BB4C 8186087D */ lb $a2, 0x87d($t4) +/* 0C0680 7F08BB50 8E2E0000 */ lw $t6, ($s1) +/* 0C0684 7F08BB54 8FA400F0 */ lw $a0, 0xf0($sp) +/* 0C0688 7F08BB58 24050001 */ li $a1, 1 +/* 0C068C 7F08BB5C 0FC0B446 */ jal sub_GAME_7F02D118 +/* 0C0690 7F08BB60 81C60C25 */ lb $a2, 0xc25($t6) +/* 0C0694 7F08BB64 0FC083BC */ jal sub_GAME_7F020EF0 +/* 0C0698 7F08BB68 8FA400F8 */ lw $a0, 0xf8($sp) +/* 0C069C 7F08BB6C AFA200A0 */ sw $v0, 0xa0($sp) +/* 0C06A0 7F08BB70 00003825 */ move $a3, $zero +/* 0C06A4 7F08BB74 00001825 */ move $v1, $zero +.L7F08BB78: +/* 0C06A8 7F08BB78 8E2D0000 */ lw $t5, ($s1) +/* 0C06AC 7F08BB7C 8FA400F0 */ lw $a0, 0xf0($sp) +/* 0C06B0 7F08BB80 02002825 */ move $a1, $s0 +/* 0C06B4 7F08BB84 01A33021 */ addu $a2, $t5, $v1 +/* 0C06B8 7F08BB88 24C62A18 */ addiu $a2, $a2, 0x2a18 +/* 0C06BC 7F08BB8C AFA30034 */ sw $v1, 0x34($sp) +/* 0C06C0 7F08BB90 0FC0B58C */ jal sub_GAME_7F02D630 +/* 0C06C4 7F08BB94 AFA70038 */ sw $a3, 0x38($sp) +/* 0C06C8 7F08BB98 8FA30034 */ lw $v1, 0x34($sp) +/* 0C06CC 7F08BB9C 10400007 */ beqz $v0, .L7F08BBBC +/* 0C06D0 7F08BBA0 8FA70038 */ lw $a3, 0x38($sp) +/* 0C06D4 7F08BBA4 8E290000 */ lw $t1, ($s1) +/* 0C06D8 7F08BBA8 3C188005 */ lui $t8, %hi(D_80048380) +/* 0C06DC 7F08BBAC 8F188380 */ lw $t8, %lo(D_80048380)($t8) +/* 0C06E0 7F08BBB0 01277821 */ addu $t7, $t1, $a3 +/* 0C06E4 7F08BBB4 1000001E */ b .L7F08BC30 +/* 0C06E8 7F08BBB8 ADF82A30 */ sw $t8, 0x2a30($t7) +.L7F08BBBC: +/* 0C06EC 7F08BBBC 8E280000 */ lw $t0, ($s1) +/* 0C06F0 7F08BBC0 3C0B8005 */ lui $t3, %hi(D_80048380) +/* 0C06F4 7F08BBC4 8D6B8380 */ lw $t3, %lo(D_80048380)($t3) +/* 0C06F8 7F08BBC8 0107C821 */ addu $t9, $t0, $a3 +/* 0C06FC 7F08BBCC 8F2A2A30 */ lw $t2, 0x2a30($t9) +/* 0C0700 7F08BBD0 256CFFFF */ addiu $t4, $t3, -1 +/* 0C0704 7F08BBD4 001010C0 */ sll $v0, $s0, 3 +/* 0C0708 7F08BBD8 014C082A */ slt $at, $t2, $t4 +/* 0C070C 7F08BBDC 10200014 */ beqz $at, .L7F08BC30 +/* 0C0710 7F08BBE0 00501023 */ subu $v0, $v0, $s0 +/* 0C0714 7F08BBE4 00021080 */ sll $v0, $v0, 2 +/* 0C0718 7F08BBE8 00501021 */ addu $v0, $v0, $s0 +/* 0C071C 7F08BBEC 00021080 */ sll $v0, $v0, 2 +/* 0C0720 7F08BBF0 00501021 */ addu $v0, $v0, $s0 +/* 0C0724 7F08BBF4 000210C0 */ sll $v0, $v0, 3 +/* 0C0728 7F08BBF8 01027021 */ addu $t6, $t0, $v0 +/* 0C072C 7F08BBFC C5C80B58 */ lwc1 $f8, 0xb58($t6) +/* 0C0730 7F08BC00 01036821 */ addu $t5, $t0, $v1 +/* 0C0734 7F08BC04 E5A82A18 */ swc1 $f8, 0x2a18($t5) +/* 0C0738 7F08BC08 8E280000 */ lw $t0, ($s1) +/* 0C073C 7F08BC0C 01024821 */ addu $t1, $t0, $v0 +/* 0C0740 7F08BC10 C52A0B5C */ lwc1 $f10, 0xb5c($t1) +/* 0C0744 7F08BC14 0103C021 */ addu $t8, $t0, $v1 +/* 0C0748 7F08BC18 E70A2A1C */ swc1 $f10, 0x2a1c($t8) +/* 0C074C 7F08BC1C 8E280000 */ lw $t0, ($s1) +/* 0C0750 7F08BC20 01027821 */ addu $t7, $t0, $v0 +/* 0C0754 7F08BC24 C5F20B60 */ lwc1 $f18, 0xb60($t7) +/* 0C0758 7F08BC28 0103C821 */ addu $t9, $t0, $v1 +/* 0C075C 7F08BC2C E7322A20 */ swc1 $f18, 0x2a20($t9) +.L7F08BC30: +/* 0C0760 7F08BC30 26100001 */ addiu $s0, $s0, 1 +/* 0C0764 7F08BC34 24010002 */ li $at, 2 +/* 0C0768 7F08BC38 24E70004 */ addiu $a3, $a3, 4 +/* 0C076C 7F08BC3C 1601FFCE */ bne $s0, $at, .L7F08BB78 +/* 0C0770 7F08BC40 2463000C */ addiu $v1, $v1, 0xc +/* 0C0774 7F08BC44 8FAB00F0 */ lw $t3, 0xf0($sp) +/* 0C0778 7F08BC48 956A0012 */ lhu $t2, 0x12($t3) +/* 0C077C 7F08BC4C 354C0800 */ ori $t4, $t2, 0x800 +/* 0C0780 7F08BC50 A56C0012 */ sh $t4, 0x12($t3) +/* 0C0784 7F08BC54 8E2E0000 */ lw $t6, ($s1) +/* 0C0788 7F08BC58 8FAD00F8 */ lw $t5, 0xf8($sp) +/* 0C078C 7F08BC5C C5C6048C */ lwc1 $f6, 0x48c($t6) +/* 0C0790 7F08BC60 E5A60008 */ swc1 $f6, 8($t5) +/* 0C0794 7F08BC64 8E290000 */ lw $t1, ($s1) +/* 0C0798 7F08BC68 C5240490 */ lwc1 $f4, 0x490($t1) +/* 0C079C 7F08BC6C E5A4000C */ swc1 $f4, 0xc($t5) +/* 0C07A0 7F08BC70 8E380000 */ lw $t8, ($s1) +/* 0C07A4 7F08BC74 C7080494 */ lwc1 $f8, 0x494($t8) +/* 0C07A8 7F08BC78 E5A80010 */ swc1 $f8, 0x10($t5) +/* 0C07AC 7F08BC7C 8E2F0000 */ lw $t7, ($s1) +/* 0C07B0 7F08BC80 8DF90488 */ lw $t9, 0x488($t7) +/* 0C07B4 7F08BC84 ADB90014 */ sw $t9, 0x14($t5) +/* 0C07B8 7F08BC88 10000006 */ b .L7F08BCA4 +/* 0C07BC 7F08BC8C 8FA200A0 */ lw $v0, 0xa0($sp) +.L7F08BC90: +/* 0C07C0 7F08BC90 8FAA00F8 */ lw $t2, 0xf8($sp) +.L7F08BC94: +/* 0C07C4 7F08BC94 00001025 */ move $v0, $zero +/* 0C07C8 7F08BC98 914C0001 */ lbu $t4, 1($t2) +/* 0C07CC 7F08BC9C 318BFFFD */ andi $t3, $t4, 0xfffd +/* 0C07D0 7F08BCA0 A14B0001 */ sb $t3, 1($t2) +.L7F08BCA4: +/* 0C07D4 7F08BCA4 8FBF0024 */ lw $ra, 0x24($sp) +/* 0C07D8 7F08BCA8 8FB0001C */ lw $s0, 0x1c($sp) +/* 0C07DC 7F08BCAC 8FB10020 */ lw $s1, 0x20($sp) +/* 0C07E0 7F08BCB0 03E00008 */ jr $ra +/* 0C07E4 7F08BCB4 27BD00F8 */ addiu $sp, $sp, 0xf8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08BCB8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08BCB8 +/* 0C07E8 7F08BCB8 03E00008 */ jr $ra +/* 0C07EC 7F08BCBC 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08BCC0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08BCC0 +/* 0C07F0 7F08BCC0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C07F4 7F08BCC4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C07F8 7F08BCC8 8C8E0004 */ lw $t6, 4($a0) +/* 0C07FC 7F08BCCC 51C00005 */ beql $t6, $zero, .L7F08BCE4 +/* 0C0800 7F08BCD0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C0804 7F08BCD4 0FC086FF */ jal sub_GAME_7F021BFC +/* 0C0808 7F08BCD8 00000000 */ nop +/* 0C080C 7F08BCDC 00402825 */ move $a1, $v0 +/* 0C0810 7F08BCE0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08BCE4: +/* 0C0814 7F08BCE4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C0818 7F08BCE8 00A01025 */ move $v0, $a1 +/* 0C081C 7F08BCEC 03E00008 */ jr $ra +/* 0C0820 7F08BCF0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08BCF4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08BCF4 +/* 0C0824 7F08BCF4 3C0E0102 */ lui $t6, (0x01020040 >> 16) # lui $t6, 0x102 +/* 0C0828 7F08BCF8 35CE0040 */ ori $t6, (0x01020040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 0C082C 7F08BCFC AC8E0000 */ sw $t6, ($a0) +/* 0C0830 7F08BD00 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0C0834 7F08BD04 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0C0838 7F08BD08 24820008 */ addiu $v0, $a0, 8 +/* 0C083C 7F08BD0C 8DF8005C */ lw $t8, 0x5c($t7) +/* 0C0840 7F08BD10 03E00008 */ jr $ra +/* 0C0844 7F08BD14 AC980004 */ sw $t8, 4($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08BD18(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08BD18 +/* 0C0848 7F08BD18 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0C084C 7F08BD1C AFBF0014 */ sw $ra, 0x14($sp) +/* 0C0850 7F08BD20 AFA40058 */ sw $a0, 0x58($sp) +/* 0C0854 7F08BD24 0FC16008 */ jal matrix_4x4_copy +/* 0C0858 7F08BD28 27A50018 */ addiu $a1, $sp, 0x18 +/* 0C085C 7F08BD2C 27A40018 */ addiu $a0, $sp, 0x18 +/* 0C0860 7F08BD30 0FC16327 */ jal sub_GAME_7F058C9C +/* 0C0864 7F08BD34 8FA50058 */ lw $a1, 0x58($sp) +/* 0C0868 7F08BD38 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C086C 7F08BD3C 27BD0058 */ addiu $sp, $sp, 0x58 +/* 0C0870 7F08BD40 03E00008 */ jr $ra +/* 0C0874 7F08BD44 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08BD48(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08BD48 +/* 0C0878 7F08BD48 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 0C087C 7F08BD4C AFB40028 */ sw $s4, 0x28($sp) +/* 0C0880 7F08BD50 AFB30024 */ sw $s3, 0x24($sp) +/* 0C0884 7F08BD54 AFB00018 */ sw $s0, 0x18($sp) +/* 0C0888 7F08BD58 00A09825 */ move $s3, $a1 +/* 0C088C 7F08BD5C 0080A025 */ move $s4, $a0 +/* 0C0890 7F08BD60 AFBF002C */ sw $ra, 0x2c($sp) +/* 0C0894 7F08BD64 AFB20020 */ sw $s2, 0x20($sp) +/* 0C0898 7F08BD68 AFB1001C */ sw $s1, 0x1c($sp) +/* 0C089C 7F08BD6C 18A0000D */ blez $a1, .L7F08BDA4 +/* 0C08A0 7F08BD70 00008025 */ move $s0, $zero +/* 0C08A4 7F08BD74 00808825 */ move $s1, $a0 +/* 0C08A8 7F08BD78 27B20038 */ addiu $s2, $sp, 0x38 +.L7F08BD7C: +/* 0C08AC 7F08BD7C 02202025 */ move $a0, $s1 +/* 0C08B0 7F08BD80 0FC16008 */ jal matrix_4x4_copy +/* 0C08B4 7F08BD84 02402825 */ move $a1, $s2 +/* 0C08B8 7F08BD88 00107180 */ sll $t6, $s0, 6 +/* 0C08BC 7F08BD8C 01D42821 */ addu $a1, $t6, $s4 +/* 0C08C0 7F08BD90 0FC16327 */ jal sub_GAME_7F058C9C +/* 0C08C4 7F08BD94 02402025 */ move $a0, $s2 +/* 0C08C8 7F08BD98 26100001 */ addiu $s0, $s0, 1 +/* 0C08CC 7F08BD9C 1613FFF7 */ bne $s0, $s3, .L7F08BD7C +/* 0C08D0 7F08BDA0 26310040 */ addiu $s1, $s1, 0x40 +.L7F08BDA4: +/* 0C08D4 7F08BDA4 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C08D8 7F08BDA8 8FB00018 */ lw $s0, 0x18($sp) +/* 0C08DC 7F08BDAC 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C08E0 7F08BDB0 8FB20020 */ lw $s2, 0x20($sp) +/* 0C08E4 7F08BDB4 8FB30024 */ lw $s3, 0x24($sp) +/* 0C08E8 7F08BDB8 8FB40028 */ lw $s4, 0x28($sp) +/* 0C08EC 7F08BDBC 03E00008 */ jr $ra +/* 0C08F0 7F08BDC0 27BD0078 */ addiu $sp, $sp, 0x78 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08BDC4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08BDC4 +/* 0C08F4 7F08BDC4 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0C08F8 7F08BDC8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C08FC 7F08BDCC AFA40060 */ sw $a0, 0x60($sp) +/* 0C0900 7F08BDD0 0FC16008 */ jal matrix_4x4_copy +/* 0C0904 7F08BDD4 27A50020 */ addiu $a1, $sp, 0x20 +/* 0C0908 7F08BDD8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C090C 7F08BDDC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C0910 7F08BDE0 C7A40050 */ lwc1 $f4, 0x50($sp) +/* 0C0914 7F08BDE4 C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 0C0918 7F08BDE8 C4460044 */ lwc1 $f6, 0x44($v0) +/* 0C091C 7F08BDEC 27A40020 */ addiu $a0, $sp, 0x20 +/* 0C0920 7F08BDF0 8FA50060 */ lw $a1, 0x60($sp) +/* 0C0924 7F08BDF4 46062201 */ sub.s $f8, $f4, $f6 +/* 0C0928 7F08BDF8 C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0C092C 7F08BDFC E7A80050 */ swc1 $f8, 0x50($sp) +/* 0C0930 7F08BE00 C4500048 */ lwc1 $f16, 0x48($v0) +/* 0C0934 7F08BE04 46105481 */ sub.s $f18, $f10, $f16 +/* 0C0938 7F08BE08 E7B20054 */ swc1 $f18, 0x54($sp) +/* 0C093C 7F08BE0C C446004C */ lwc1 $f6, 0x4c($v0) +/* 0C0940 7F08BE10 46062201 */ sub.s $f8, $f4, $f6 +/* 0C0944 7F08BE14 0FC16327 */ jal sub_GAME_7F058C9C +/* 0C0948 7F08BE18 E7A80058 */ swc1 $f8, 0x58($sp) +/* 0C094C 7F08BE1C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C0950 7F08BE20 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0C0954 7F08BE24 03E00008 */ jr $ra +/* 0C0958 7F08BE28 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08BE2C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08BE2C +/* 0C095C 7F08BE2C 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 0C0960 7F08BE30 AFB40024 */ sw $s4, 0x24($sp) +/* 0C0964 7F08BE34 AFB30020 */ sw $s3, 0x20($sp) +/* 0C0968 7F08BE38 AFB00014 */ sw $s0, 0x14($sp) +/* 0C096C 7F08BE3C 00A09825 */ move $s3, $a1 +/* 0C0970 7F08BE40 0080A025 */ move $s4, $a0 +/* 0C0974 7F08BE44 AFBF002C */ sw $ra, 0x2c($sp) +/* 0C0978 7F08BE48 AFB50028 */ sw $s5, 0x28($sp) +/* 0C097C 7F08BE4C AFB2001C */ sw $s2, 0x1c($sp) +/* 0C0980 7F08BE50 AFB10018 */ sw $s1, 0x18($sp) +/* 0C0984 7F08BE54 18A0001C */ blez $a1, .L7F08BEC8 +/* 0C0988 7F08BE58 00008025 */ move $s0, $zero +/* 0C098C 7F08BE5C 3C158008 */ lui $s5, %hi(pPlayer) +/* 0C0990 7F08BE60 26B5A0B0 */ addiu $s5, %lo(pPlayer) # addiu $s5, $s5, -0x5f50 +/* 0C0994 7F08BE64 00808825 */ move $s1, $a0 +/* 0C0998 7F08BE68 27B20038 */ addiu $s2, $sp, 0x38 +.L7F08BE6C: +/* 0C099C 7F08BE6C 02202025 */ move $a0, $s1 +/* 0C09A0 7F08BE70 0FC16008 */ jal matrix_4x4_copy +/* 0C09A4 7F08BE74 02402825 */ move $a1, $s2 +/* 0C09A8 7F08BE78 8EA20000 */ lw $v0, ($s5) +/* 0C09AC 7F08BE7C C7A40068 */ lwc1 $f4, 0x68($sp) +/* 0C09B0 7F08BE80 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 0C09B4 7F08BE84 C4460044 */ lwc1 $f6, 0x44($v0) +/* 0C09B8 7F08BE88 00107180 */ sll $t6, $s0, 6 +/* 0C09BC 7F08BE8C 01D42821 */ addu $a1, $t6, $s4 +/* 0C09C0 7F08BE90 46062201 */ sub.s $f8, $f4, $f6 +/* 0C09C4 7F08BE94 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 0C09C8 7F08BE98 02402025 */ move $a0, $s2 +/* 0C09CC 7F08BE9C E7A80068 */ swc1 $f8, 0x68($sp) +/* 0C09D0 7F08BEA0 C4500048 */ lwc1 $f16, 0x48($v0) +/* 0C09D4 7F08BEA4 46105481 */ sub.s $f18, $f10, $f16 +/* 0C09D8 7F08BEA8 E7B2006C */ swc1 $f18, 0x6c($sp) +/* 0C09DC 7F08BEAC C446004C */ lwc1 $f6, 0x4c($v0) +/* 0C09E0 7F08BEB0 46062201 */ sub.s $f8, $f4, $f6 +/* 0C09E4 7F08BEB4 0FC16327 */ jal sub_GAME_7F058C9C +/* 0C09E8 7F08BEB8 E7A80070 */ swc1 $f8, 0x70($sp) +/* 0C09EC 7F08BEBC 26100001 */ addiu $s0, $s0, 1 +/* 0C09F0 7F08BEC0 1613FFEA */ bne $s0, $s3, .L7F08BE6C +/* 0C09F4 7F08BEC4 26310040 */ addiu $s1, $s1, 0x40 +.L7F08BEC8: +/* 0C09F8 7F08BEC8 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C09FC 7F08BECC 8FB00014 */ lw $s0, 0x14($sp) +/* 0C0A00 7F08BED0 8FB10018 */ lw $s1, 0x18($sp) +/* 0C0A04 7F08BED4 8FB2001C */ lw $s2, 0x1c($sp) +/* 0C0A08 7F08BED8 8FB30020 */ lw $s3, 0x20($sp) +/* 0C0A0C 7F08BEDC 8FB40024 */ lw $s4, 0x24($sp) +/* 0C0A10 7F08BEE0 8FB50028 */ lw $s5, 0x28($sp) +/* 0C0A14 7F08BEE4 03E00008 */ jr $ra +/* 0C0A18 7F08BEE8 27BD0078 */ addiu $sp, $sp, 0x78 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08BEEC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08BEEC +/* 0C0A1C 7F08BEEC 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0C0A20 7F08BEF0 AFB50028 */ sw $s5, 0x28($sp) +/* 0C0A24 7F08BEF4 AFB40024 */ sw $s4, 0x24($sp) +/* 0C0A28 7F08BEF8 AFB10018 */ sw $s1, 0x18($sp) +/* 0C0A2C 7F08BEFC 00A0A025 */ move $s4, $a1 +/* 0C0A30 7F08BF00 0080A825 */ move $s5, $a0 +/* 0C0A34 7F08BF04 AFBF002C */ sw $ra, 0x2c($sp) +/* 0C0A38 7F08BF08 AFB30020 */ sw $s3, 0x20($sp) +/* 0C0A3C 7F08BF0C AFB2001C */ sw $s2, 0x1c($sp) +/* 0C0A40 7F08BF10 AFB00014 */ sw $s0, 0x14($sp) +/* 0C0A44 7F08BF14 18A0001F */ blez $a1, .L7F08BF94 +/* 0C0A48 7F08BF18 00008825 */ move $s1, $zero +/* 0C0A4C 7F08BF1C 3C138008 */ lui $s3, %hi(pPlayer) +/* 0C0A50 7F08BF20 2673A0B0 */ addiu $s3, %lo(pPlayer) # addiu $s3, $s3, -0x5f50 +/* 0C0A54 7F08BF24 00808025 */ move $s0, $a0 +/* 0C0A58 7F08BF28 27B20040 */ addiu $s2, $sp, 0x40 +.L7F08BF2C: +/* 0C0A5C 7F08BF2C 0FC1E111 */ jal sub_GAME_7F078444 +/* 0C0A60 7F08BF30 00000000 */ nop +/* 0C0A64 7F08BF34 00402025 */ move $a0, $v0 +/* 0C0A68 7F08BF38 02002825 */ move $a1, $s0 +/* 0C0A6C 7F08BF3C 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0C0A70 7F08BF40 02403025 */ move $a2, $s2 +/* 0C0A74 7F08BF44 8E620000 */ lw $v0, ($s3) +/* 0C0A78 7F08BF48 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 0C0A7C 7F08BF4C C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 0C0A80 7F08BF50 C4460038 */ lwc1 $f6, 0x38($v0) +/* 0C0A84 7F08BF54 00117180 */ sll $t6, $s1, 6 +/* 0C0A88 7F08BF58 01D52821 */ addu $a1, $t6, $s5 +/* 0C0A8C 7F08BF5C 46062201 */ sub.s $f8, $f4, $f6 +/* 0C0A90 7F08BF60 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 0C0A94 7F08BF64 02402025 */ move $a0, $s2 +/* 0C0A98 7F08BF68 E7A80070 */ swc1 $f8, 0x70($sp) +/* 0C0A9C 7F08BF6C C450003C */ lwc1 $f16, 0x3c($v0) +/* 0C0AA0 7F08BF70 46105481 */ sub.s $f18, $f10, $f16 +/* 0C0AA4 7F08BF74 E7B20074 */ swc1 $f18, 0x74($sp) +/* 0C0AA8 7F08BF78 C4460040 */ lwc1 $f6, 0x40($v0) +/* 0C0AAC 7F08BF7C 46062201 */ sub.s $f8, $f4, $f6 +/* 0C0AB0 7F08BF80 0FC16327 */ jal sub_GAME_7F058C9C +/* 0C0AB4 7F08BF84 E7A80078 */ swc1 $f8, 0x78($sp) +/* 0C0AB8 7F08BF88 26310001 */ addiu $s1, $s1, 1 +/* 0C0ABC 7F08BF8C 1634FFE7 */ bne $s1, $s4, .L7F08BF2C +/* 0C0AC0 7F08BF90 26100040 */ addiu $s0, $s0, 0x40 +.L7F08BF94: +/* 0C0AC4 7F08BF94 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C0AC8 7F08BF98 8FB00014 */ lw $s0, 0x14($sp) +/* 0C0ACC 7F08BF9C 8FB10018 */ lw $s1, 0x18($sp) +/* 0C0AD0 7F08BFA0 8FB2001C */ lw $s2, 0x1c($sp) +/* 0C0AD4 7F08BFA4 8FB30020 */ lw $s3, 0x20($sp) +/* 0C0AD8 7F08BFA8 8FB40024 */ lw $s4, 0x24($sp) +/* 0C0ADC 7F08BFAC 8FB50028 */ lw $s5, 0x28($sp) +/* 0C0AE0 7F08BFB0 03E00008 */ jr $ra +/* 0C0AE4 7F08BFB4 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + + +s32 get_mission_timer(void) { + return mission_timer; +} + + +void trigger_explosions_around_player(int delay){ + D_80036444 = 1; + dword_CODE_bss_8007999C = delay + global_timer; + dword_CODE_bss_800799A0 = 0; +} + + + + diff --git a/src/game/bond.h b/src/game/bond.h new file mode 100644 index 0000000..bf06437 --- /dev/null +++ b/src/game/bond.h @@ -0,0 +1,2876 @@ +#ifndef _BOND_H_ +#define _BOND_H_ + +#include "ultra64.h" +#include "game/chr.h" + +struct xyzpoint +{ + f32 x; + f32 y; + f32 z; +}; + + +typedef struct invitem_weap +{ + s32 weapon; +} invitem_weap; + +typedef struct invitem_prop +{ + struct PropRecord *prop; +} invitem_prop; + +typedef struct invitem_dual +{ + s32 weapon_right; + s32 weapon_left; +} invitem_dual; + +struct hand +{ + s32 weaponnum; + s32 weaponnum_watchmenu; + s32 previous_weapon; + s8 weapon_firing_status; + s8 field_87D; + s8 field_87E; + s8 field_87F; + s32 field_880; + s32 field_884; + s32 field_888; + s32 field_88C; + s32 field_890; + s32 when_detonating_mines_is_0; + s32 weapon_current_animation; + s32 weapon_ammo_in_magazine; + s32 field_8A0; + s32 field_8A4; + s32 field_8A8; + s32 weapon_next_weapon; + s32 field_8B0; + s32 weapon_animation_trigger; + s32 field_8B8; + s32 field_8BC; + s32 field_8C0; + s32 field_8C4; + s32 field_8C8; + s32 field_8CC; + s32 field_8D0; + s32 field_8D4; + s32 field_8D8; + s32 field_8DC; + s32 field_8E0; + s32 field_8E4; + s32 field_8E8; + s32 field_8EC; + s32 field_8F0; + s32 field_8F4; + s32 field_8F8; + s32 field_8FC; + s32 field_900; + s32 field_904; + s32 field_908; + s32 field_90C; + s32 field_910; + s32 field_914; + s32 field_918; + s32 field_91C; + s32 field_920; + s32 field_924; + s32 field_928; + s32 field_92C; + s32 field_930; + s32 field_934; + s32 field_938; + s32 field_93C; + s32 field_940; + s32 field_944; + s32 field_948; + s32 field_94C; + s32 field_950; + s32 field_954; + s32 field_958; + s32 field_95C; + s32 field_960; + s32 field_964; + s32 field_968; + s32 field_96C; + s32 field_970; + s32 field_974; + s32 field_978; + s32 field_97C; + s32 field_980; + s32 field_984; + s32 field_988; + s32 field_98C; + s32 field_990; + s32 field_994; + s32 field_998; + s32 field_99C; + s32 field_9A0; + s32 field_9A4; + s32 field_9A8; + s32 field_9AC; + s32 field_9B0; + s32 field_9B4; + s32 field_9B8; + s32 field_9BC; + s32 field_9C0; + s32 field_9C4; + s32 field_9C8; + s32 field_9CC; + s32 field_9D0; + s32 field_9D4; + s32 field_9D8; + s32 field_9DC; + s32 field_9E0; + s32 field_9E4; + s32 field_9E8; + s32 field_9EC; + s32 field_9F0; + s32 field_9F4; + s32 field_9F8; + s32 field_9FC; + s32 field_A00; + s32 field_A04; + s32 field_A08; + s32 field_A0C; + s32 field_A10; + s32 field_A14; + s32 field_A18; + s32 field_A1C; + s32 field_A20; + s32 field_A24; + s32 field_A28; + s32 field_A2C; + f32 field_A30; + f32 field_A34; + f32 field_A38; + f32 field_A3C; + f32 field_A40; + s32 field_A44; + s32 field_A48; + s32 field_A4C; + s32 field_A50; + s32 field_A54; + s32 field_A58; + s32 field_A5C; + s32 field_A60; + s32 field_A64; + s32 field_A68; + s32 field_A6C; + s32 field_A70; + s32 field_A74; + s32 field_A78; + s32 field_A7C; + s32 noise; + s32 field_A84; + s32 field_A88; + s32 field_A8C; + s32 field_A90; + s32 field_A94; + s32 field_A98; + s32 field_A9C; + s32 field_AA0; + s32 field_AA4; + s32 field_AA8; + s32 field_AAC; + s32 field_AB0; + s32 field_AB4; + s32 field_AB8; + s32 field_ABC; + s32 field_AC0; + s32 field_AC4; + s32 field_AC8; + s32 field_ACC; + s32 field_AD0; + s32 field_AD4; + s32 field_AD8; + s32 field_ADC; + s32 field_AE0; + s32 field_AE4; + s32 field_AE8; + s32 field_AEC; + s32 field_AF0; + s32 field_AF4; + s32 field_AF8; + s32 field_AFC; + s32 field_B00; + s32 field_B04; + s32 field_B08; + s32 field_B0C; + s32 field_B10; + s32 field_B14; + s32 field_B18; + s32 field_B1C; + s32 field_B20; + s32 field_B24; + s32 field_B28; + s32 field_B2C; + s32 field_B30; + s32 field_B34; + s32 field_B38; + s32 field_B3C; + s32 field_B40; + s32 field_B44; + s32 field_B48; + s32 field_B4C; + s32 field_B50; + s32 field_B54; + s32 field_B58; + s32 field_B5C; + s32 field_B60; + s32 field_B64; + s32 field_B68; + s32 field_B6C; + s32 field_B70; + s32 field_B74; + s32 field_B78; + s32 field_B7C; + s32 field_B80; + s32 field_B84; + s32 field_B88; + s32 field_B8C; + s32 field_B90; + s32 field_B94; + s32 field_B98; + s32 field_B9C; + s32 field_BA0; + s32 field_BA4; + s32 field_BA8; + s32 field_BAC; + s32 field_BB0; + s32 field_BB4; + s32 field_BB8; + s32 field_BBC; + s32 field_BC0; + s32 field_BC4; + s32 field_BC8; + s32 field_BCC; + s32 field_BD0; + s32 field_BD4; + s32 field_BD8; + s32 field_BDC; + s32 field_BE0; + s32 field_BE4; + s32 field_BE8; + s32 field_BEC; + s32 field_BF0; + s32 field_BF4; + s32 field_BF8; + s32 field_BFC; + s32 field_C00; + s32 field_C04; + s32 field_C08; + s32 item_related1; + s32 item_related2; + s32 item_related3; +}; + +typedef struct InvItem { + s32 type; + + union { + struct invitem_weap type_weap; + struct invitem_prop type_prop; + struct invitem_dual type_dual; + + } type_inv_item; + + struct InvItem *next; + struct InvItem *prev; + +} InvItem; + +typedef struct textoverride { + s32 unk1; + s32 objoffset; + s32 weapon; + s32 unk4; + s32 unk5; + s32 unk6; + s32 unk7; + s32 unk8; + + struct textoverride *next; + struct ObjectRecord *obj; +} textoverride; + + +struct Player +{ + s32 unknown; + s32 xpos; + s32 ypos; + s32 zpos; + s32 xpos2; + s32 ypos2; + s32 zpos2; + s32 xoffset; + s32 yoffset; + s32 zoffset; + s32 xpos3; + s32 ypos3; + s32 zpos3; + s32 room_pointer; + s32 current_model_xpos; + s32 current_model_ypos; + s32 current_model_zpos; + s32 previous_model_xpos; + s32 previous_model_ypos; + s32 previous_model_zpos; + s32 current_room_xpos; + s32 current_room_ypos; + s32 current_room_zpos; + s32 field_5C; + s32 field_60; + s32 field_64; + s32 field_68; + s32 field_6C; + s32 field_70; + s32 clipping_height; + s32 field_78; + s32 field_7C; + s32 field_80; + s32 field_84; + s32 field_88; + s32 field_8C; + s32 field_90; + s32 field_94; + s32 field_98; + s32 crouchposition; + s32 ducking_height_offset; + s32 field_A4; + s32 position_data_pointer; + s32 field_AC; + s32 field_B0; + s32 zpos_0; + s32 xpos_0; + s32 field_BC; + s32 field_C0; + s32 zpos_1; + s32 xpos_1; + s32 field_CC; + s32 field_D0; + s32 ptr_char_objectinstance; + s32 bonddead; + s32 bondhealth; + f32 bondarmour; + s32 oldhealth; + s32 oldarmour; + s32 apparenthealth; + s32 apparentarmour; + s32 damageshowtime; + s32 healthshowtime; + s32 healthshowmode; + s32 field_100; + s32 field_104; + s32 field_108; + s32 field_10C; + s32 movecentrerelease; + s32 lookaheadcentreenabled; + s32 automovecentreenabled; + s32 fastmovecentreenabled; + s32 automovecentre; + s32 insightaimmode; + s32 autoyaimenabled; + f32 autoaimy; + s32 autoyaimtime; + s32 autoyaimtime60; + s32 autoxaimenabled; + f32 autoaimx; + s32 autoxaimtime; + s32 autoxaimtime60; + f32 vv_theta; + f32 speedtheta; + s32 vv_costheta; + s32 vv_sintheta; + f32 vv_verta; + s32 vv_verta360; + f32 speedverta; + s32 vv_cosverta; + s32 vv_sinverta; + f32 speedsideways; + f32 speedstrafe; + f32 speedforwards; + s32 speedboost; + s32 speedmaxtime60; + s32 boost_factor_x; + s32 boost_factor_y; + s32 boost_factor_z; + s32 viewport_alpha; + s32 bondfadetime60; + s32 bondfadetimemax; + s32 bondfadefracold; + f32 bondfadefracnew; + s32 field_1A0; + s32 field_1A4; + s32 field_1A8; + s32 field_1AC; + s32 field_1B0; + s32 field_1B4; + s32 field_1B8; + s32 field_1BC; + s32 field_1C0; + s32 field_1C4; + s32 watch_animation_state; + s32 paused_flag; + s32 open_close_solo_watch_menu; + s32 field_1D4; + s32 field_1D8; + s32 pause_watch_position; + s32 field_1E0; + s32 field_1E4; + s32 field_1E8; + s32 field_1EC; + s32 field_1F0; + s32 field_1F4; + s32 field_1F8; + s32 field_1FC; + s32 pausing_flag; + f32 pause_starting_angle; + s32 field_208; + s32 pause_target_angle; + f32 field_210; + f32 field_214; + s32 field_218; + s32 field_21C; + s32 step_in_view_watch_animation; + s32 pause_animation_counter; + s32 field_228; + s32 field_22C; + s32 something_with_watch_object_instance; + s32 field_234; + s32 field_238; + s32 field_23C; + s32 field_240; + s32 watch_scale_destination; + s32 field_248; + s32 field_24C; + s32 field_250; + s32 field_254; + s32 field_258; + s32 field_25C; + s32 field_260; + s32 field_264; + s32 field_268; + s32 field_26C; + s32 field_270; + s32 field_274; + s32 field_278; + s32 field_27C; + s32 field_280; + s32 field_284; + s32 field_288; + s32 field_28C; + s32 field_290; + s32 field_294; + s32 field_298; + s32 field_29C; + s32 field_2A0; + s32 field_2A4; + s32 field_2A8; + s32 field_2AC; + s32 field_2B0; + s32 field_2B4; + s32 field_2B8; + s32 field_2BC; + s32 field_2C0; + s32 field_2C4; + s32 field_2C8; + s32 field_2CC; + s32 field_2D0; + s32 field_2D4; + s32 field_2D8; + s32 field_2DC; + s32 field_2E0; + s32 field_2E4; + s32 field_2E8; + s32 field_2EC; + s32 field_2F0; + s32 field_2F4; + s32 field_2F8; + s32 field_2FC; + s32 field_300; + s32 field_304; + s32 field_308; + s32 field_30C; + s32 field_310; + s32 field_314; + s32 field_318; + s32 field_31C; + s32 field_320; + s32 field_324; + s32 field_328; + s32 field_32C; + s32 field_330; + s32 field_334; + s32 field_338; + s32 field_33C; + s32 field_340; + s32 field_344; + s32 field_348; + s32 field_34C; + s32 field_350; + s32 field_354; + s32 field_358; + s32 field_35C; + s32 field_360; + s32 field_364; + s32 field_368; + s32 field_36C; + s32 field_370; + s32 field_374; + s32 field_378; + s32 field_37C; + s32 field_380; + s32 field_384; + s32 field_388; + s32 field_38C; + s32 field_390; + s32 field_394; + s32 field_398; + s32 field_39C; + s32 field_3A0; + s32 field_3A4; + s32 field_3A8; + s32 field_3AC; + s32 field_3B0; + s16 field_3B4; + s16 field_3B6; + s32 field_3B8; + s32 field_3BC; + s32 field_3C0; + s32 field_3C4; + s32 field_3C8; + s32 field_3CC; + s32 tint_red; + s32 tint_green; + s32 tint_blue; + f32 tint_alpha; + s32 screen_fade_timer; + f32 screen_fade_max_time; + s32 field_3E8; + s32 field_3EC; + s32 field_3F0; + s32 field_3F4; + s32 field_3F8; + s32 field_3FC; + s32 field_400; + s32 field_404; + s32 field_408; + s32 field_40C; + s32 field_410; + s32 field_414; + s32 field_418; + s32 cuff_value; + s32 field_420; + s32 field_424; + s32 field_428; + s32 field_42C; + s32 field_430; + s32 field_434; + s32 field_438; + s32 field_43C; + s32 field_440; + s32 field_444; + s32 field_448; + s32 field_44C; + s32 field_450; + s32 field_454; + s32 field_458; + s32 field_45C; + s32 field_460; + s32 field_464; + s32 field_468; + s32 field_46C; + s32 field_470; + s32 field_474; + s32 field_478; + s32 field_47C; + s32 field_480; + s32 field_484; + s32 current_tile_ptr; + s32 positionx; + s32 positiony; + s32 positionz; + s32 field_498; + s32 field_49C; + s32 field_4A0; + s32 field_4A4; + s32 field_4A8; + s32 field_4AC; + s32 collision_radius; + s32 field_4B4; + s32 field_4B8; + s32 field_4BC; + s32 field_4C0; + s32 field_4C4; + s32 field_4C8; + s32 field_4CC; + s32 field_4D0; + s32 field_4D4; + s32 current_tile_ptr_for_portals; + s32 field_4DC; + s32 field_4E0; + s32 field_4E4; + s32 field_4E8; + f32 field_4EC; + s32 field_4F0; + s32 field_4F4; + s32 field_4F8; + struct xyzpoint scaled_velocity; + //f32 field_500; + //f32 field_504; + struct xyzpoint field_508; + //s32 field_50C; + //s32 field_510; + struct xyzpoint field_514; + //s32 field_518; + //s32 field_51C; + struct xyzpoint velocity; + //f32 field_524; + //f32 field_528; + struct xyzpoint field_52C; + //s32 field_530; + //s32 field_534; + struct xyzpoint field_538; + //s32 field_53C; + //s32 field_540; + s32 field_544; + s32 field_548; + s32 field_54C; + s32 stationary_ground_offset; + s32 field_554; + s32 field_558; + s32 field_55C; + s32 field_560; + s32 field_564; + s32 field_568; + s32 field_56C; + s32 field_570; + s32 field_574; + s32 field_578; + s32 field_57C; + s32 field_580; + s32 field_584; + s32 field_588; + s32 field_58C; + s32 field_590; + s32 field_594; + s32 field_598; + s32 field_59C; + s32 field_5A0; + s32 field_5A4; + s32 field_5A8; + s32 field_5AC; + s32 field_5B0; + s32 field_5B4; + s32 field_5B8; + s8 field_5BC; + s8 field_5BD; + s8 field_5BE; + s8 field_5BF; + s32 field_5C0; + s32 field_5C4; + s32 field_5C8; + s32 field_5CC; + s32 field_5D0; + s32 field_5D4; + s32 field_5D8; + s32 field_5DC; + s32 field_5E0; + s32 field_5E4; + s32 field_5E8; + s32 field_5EC; + s32 field_5F0; + s32 field_5F4; + s32 field_5F8; + s32 field_5FC; + s32 field_600; + s32 field_604; + s32 field_608; + s32 field_60C; + s32 field_610; + s32 field_614; + s32 field_618; + s32 field_61C; + s32 field_620; + s32 field_624; + s32 field_628; + s32 field_62C; + s32 field_630; + s32 field_634; + s32 field_638; + s32 field_63C; + s32 field_640; + s32 field_644; + s32 field_648; + s32 field_64C; + s32 field_650; + s32 field_654; + s32 field_658; + s32 field_65C; + s32 field_660; + s32 field_664; + s32 field_668; + s32 field_66C; + s32 field_670; + s32 field_674; + s32 field_678; + s32 field_67C; + s32 field_680; + s32 field_684; + s32 field_688; + s32 field_68C; + s32 field_690; + s32 field_694; + s32 field_698; + s32 field_69C; + s32 field_6A0; + s32 field_6A4; + s32 field_6A8; + s32 field_6AC; + s32 field_6B0; + s32 field_6B4; + s32 field_6B8; + s32 field_6BC; + s32 field_6C0; + s32 field_6C4; + s32 field_6C8; + s32 field_6CC; + s32 field_6D0; + s32 field_6D4; + s32 field_6D8; + s32 field_6DC; + s32 field_6E0; + s32 field_6E4; + s32 field_6E8; + s32 field_6EC; + s32 field_6F0; + s32 field_6F4; + s32 field_6F8; + s32 field_6FC; + s32 field_700; + s32 field_704; + s32 field_708; + s32 field_70C; + s32 field_710; + s32 field_714; + s32 field_718; + s32 field_71C; + s32 field_720; + s32 field_724; + s32 field_728; + s32 field_72C; + s32 field_730; + s32 field_734; + s32 field_738; + s32 field_73C; + s32 field_740; + s32 field_744; + s32 field_748; + s32 field_74C; + s32 field_750; + s32 field_754; + s32 field_758; + s32 field_75C; + s32 field_760; + s32 field_764; + s32 field_768; + s32 field_76C; + s32 field_770; + s32 field_774; + s32 field_778; + s32 field_77C; + s32 field_780; + s32 field_784; + s32 field_788; + s32 field_78C; + s32 field_790; + s32 field_794; + s32 field_798; + s32 field_79C; + s32 field_7A0; + s32 field_7A4; + s32 field_7A8; + s32 field_7AC; + s32 field_7B0; + s32 field_7B4; + s32 field_7B8; + s32 field_7BC; + s32 field_7C0; + s32 field_7C4; + s32 field_7C8; + s32 field_7CC; + s32 field_7D0; + s32 field_7D4; + s32 field_7D8; + s32 field_7DC; + s32 field_7E0; + s32 field_7E4; + s32 field_7E8; + s32 field_7EC; + s16 viewx; + s16 viewy; + s16 viewleft; + s16 viewtop; + s32 hand_invisible[2]; + s32 hand_item[2]; + u8 *ptr_hand_weapon_buffer[2]; + s32 copy_of_body_obj_header[8]; + s32 copy_of_right_weapon_obj_header[8]; + s32 field_850; + s32 field_854; + s32 field_858; + s32 field_85C; + s32 field_860; + s32 right_item_related1; + s32 right_item_related2; + s32 right_item_related3; + struct hand hands[2]; + f32 field_FC0; + f32 field_FC4; + s32 field_FC8; + s32 field_FCC; + s32 field_FD0; + s32 field_FD4; + s32 field_FD8; + u8 field_FDC; + u8 field_FDD; + u8 field_FDE; + u8 field_FDF; + s32 field_FE0; + s32 field_FE4; + f32 field_FE8; + f32 field_FEC; + f32 crosshair_x_pos; + f32 crosshair_y_pos; + f32 field_FF8; + f32 field_FFC; + f32 field_1000; + f32 gun_azimuth_angle; + f32 gun_azimuth_turning; + f32 field_100C; + f32 field_1010; + f32 holds_neg_pi; + f32 field_1018; + s32 field_101C; + s32 field_1020; + s32 field_1024; + s32 field_1028; + s32 field_102C; + s32 field_1030; + s32 field_1034; + s32 field_1038; + s32 field_103C; + s32 field_1040; + s32 field_1044; + s32 field_1048; + s32 field_104C; + s32 field_1050; + s32 field_1054; + s32 field_1058; + s32 field_105C; + s32 copiedgoldeneye; + s32 somekinda_flags; + s32 field_1068; + f32 field_106C; + f32 field_1070; + f32 field_1074; + s32 field_1078; + f32 field_107C; + f32 field_1080; + f32 sniper_zoom; + f32 camera_zoom; + s32 field_108C; + f32 c_screenwidth; + f32 c_screenheight; + f32 c_screenleft; + f32 c_screentop; + f32 c_perspnear; + f32 c_perspfovy; + f32 c_perspaspect; + f32 c_halfwidth; + f32 c_halfheight; + f32 c_scalex; + f32 c_scaley; + f32 c_recipscalex; + f32 c_recipscaley; + s32 field_10C4; + s32 field_10C8; + s32 field_10CC; + s32 field_10D0; + s32 field_10D4; + s32 field_10D8; + s32 field_10DC; + s32 field_10E0; + s32 field_10E4; + s32 field_10E8; + s32 field_10EC; + f32 c_scalelod60; + f32 c_scalelod; + f32 c_lodscalez; + u32 c_lodscalezu32; + struct xyzpoint c_cameratopnorm; + struct xyzpoint c_cameraleftnorm; + + f32 screenxminf; + f32 screenyminf; + f32 screenxmaxf; + f32 screenymaxf; + s32 somekinda_bitflags; + s32 field_112C; + s32 ammoheldarr; + s32 ammo_total_pistol; + s32 ammo_total_pistol_beta; + s32 ammo_total_rifle; + s32 ammo_total_shotgun; + s32 ammo_total_grenade; + s32 ammo_total_rocket_launcher; + s32 ammo_total_remote_mine; + s32 ammo_total_prox_mine; + s32 ammo_total_timed_mine; + s32 ammo_total_throwing_knife; + s32 ammo_total_grenade_launcher; + s32 ammo_total_magnum; + s32 ammo_total_golden_gun; + s32 ammo_total_dart; + s32 ammo_total_explosive_pen; + s32 ammo_total_explosive_case; + s32 ammo_total_flare; + s32 ammo_total_piton; + s32 ammo_total_dynamite; + s32 ammo_total_bug; + s32 ammo_total_microcamera; + s32 ammo_total_goldeneye_key; + s32 ammo_total_plastique; + s32 ammo_total_watch_laser; + s32 ammo_total_watch_magnet; + s32 ammo_total_unknown1; + s32 ammo_total_unknown2; + s32 ammo_total_tank; + s32 ammo_total_mp_token; + s32 bloodcnt; + s32 field_11AC; + s32 field_11B0; + s32 field_11B4; + s32 field_11B8; + f32 zoomintime; + f32 zoomintimemax; + f32 zoominfovy; + f32 zoominfovyold; + f32 zoominfovynew; + f32 fovy; + f32 aspect; + s32 hudmessoff; + s32 bondmesscnt; + InvItem *ptr_inventory_first_in_cycle; + InvItem *p_itemcur; + s32 equipmaxitems; + s32 equipallguns; + s32 equipcuritem; + textoverride *textoverrides; + s32 index_time_spent_using_item; + s32 field_11FC; + s32 field_1200; + s32 field_1204; + s32 field_1208; + s32 field_120C; + s32 field_1210; + s32 field_1214; + s32 field_1218; + s32 field_121C; + s32 field_1220; + s32 field_1224; + s32 field_1228; + s32 field_122C; + s32 field_1230; + s32 field_1234; + s32 field_1238; + s32 field_123C; + s32 field_1240; + s32 field_1244; + s32 field_1248; + s32 field_124C; + s32 field_1250; + s32 field_1254; + s32 field_1258; + s32 field_125C; + s32 field_1260; + s32 field_1264; + s32 field_1268; + s32 field_126C; + s32 field_1270; + s32 field_1274; + s32 field_1278; + s32 field_127C; + s32 field_1280; + s32 players_cur_animation; + s32 field_1288; + s32 field_128C; + s32 field_1290; + s32 field_1294; + s32 field_1298; + s32 field_129C; + s32 field_12A0; + s32 field_12A4; + s32 field_12A8; + s32 field_12AC; + s32 field_12B0; + u8 something_with_cheat_text; + u8 can_display_cheat_text; + u8 bondinvincible; + u8 field_12B7; + s32 healthdamagetype; + s32 field_12BC; + s32 field_12C0; + s32 field_12C4; + s32 field_12C8; + s32 field_12CC; + s32 field_12D0; + s32 field_12D4; + s32 field_12D8; + s32 field_12DC; + s32 field_12E0; + s32 field_12E4; + s32 field_12E8; + s32 field_12EC; + s32 field_12F0; + s32 field_12F4; + s32 field_12F8; + s32 field_12FC; + s32 field_1300; + s32 field_1304; + s32 field_1308; + s32 field_130C; + s32 field_1310; + s32 field_1314; + s32 field_1318; + s32 field_131C; + s32 field_1320; + s32 field_1324; + s32 field_1328; + s32 field_132C; + s32 field_1330; + s32 field_1334; + s32 field_1338; + s32 field_133C; + s32 field_1340; + s32 field_1344; + s32 field_1348; + s32 field_134C; + s32 field_1350; + s32 field_1354; + s32 field_1358; + s32 field_135C; + s32 field_1360; + s32 field_1364; + s32 field_1368; + s32 field_136C; + s32 field_1370; + s32 field_1374; + s32 field_1378; + s32 field_137C; + s32 field_1380; + s32 field_1384; + s32 field_1388; + s32 field_138C; + s32 field_1390; + s32 field_1394; + s32 field_1398; + s32 field_139C; + s32 field_13A0; + s32 field_13A4; + s32 field_13A8; + s32 field_13AC; + s32 field_13B0; + s32 field_13B4; + s32 field_13B8; + s32 field_13BC; + s32 field_13C0; + s32 field_13C4; + s32 field_13C8; + s32 field_13CC; + s32 field_13D0; + s32 field_13D4; + s32 field_13D8; + s32 field_13DC; + s32 field_13E0; + s32 field_13E4; + s32 field_13E8; + s32 field_13EC; + s32 field_13F0; + s32 field_13F4; + s32 field_13F8; + s32 field_13FC; + s32 field_1400; + s32 field_1404; + s32 field_1408; + s32 field_140C; + s32 field_1410; + s32 field_1414; + s32 field_1418; + s32 field_141C; + s32 field_1420; + s32 field_1424; + s32 field_1428; + s32 field_142C; + s32 field_1430; + s32 field_1434; + s32 field_1438; + s32 field_143C; + s32 field_1440; + s32 field_1444; + s32 field_1448; + s32 field_144C; + s32 field_1450; + s32 field_1454; + s32 field_1458; + s32 field_145C; + s32 field_1460; + s32 field_1464; + s32 field_1468; + s32 field_146C; + s32 field_1470; + s32 field_1474; + s32 field_1478; + s32 field_147C; + s32 field_1480; + s32 field_1484; + s32 field_1488; + s32 field_148C; + s32 field_1490; + s32 field_1494; + s32 field_1498; + s32 field_149C; + s32 field_14A0; + s32 field_14A4; + s32 field_14A8; + s32 field_14AC; + s32 field_14B0; + s32 field_14B4; + s32 field_14B8; + s32 field_14BC; + s32 field_14C0; + s32 field_14C4; + s32 field_14C8; + s32 field_14CC; + s32 field_14D0; + s32 field_14D4; + s32 field_14D8; + s32 field_14DC; + s32 field_14E0; + s32 field_14E4; + s32 field_14E8; + s32 field_14EC; + s32 field_14F0; + s32 field_14F4; + s32 field_14F8; + s32 field_14FC; + s32 field_1500; + s32 field_1504; + s32 field_1508; + s32 field_150C; + s32 field_1510; + s32 field_1514; + s32 field_1518; + s32 field_151C; + s32 field_1520; + s32 field_1524; + s32 field_1528; + s32 field_152C; + s32 field_1530; + s32 field_1534; + s32 field_1538; + s32 field_153C; + s32 field_1540; + s32 field_1544; + s32 field_1548; + s32 field_154C; + s32 field_1550; + s32 field_1554; + s32 field_1558; + s32 field_155C; + s32 field_1560; + s32 field_1564; + s32 field_1568; + s32 field_156C; + s32 field_1570; + s32 field_1574; + s32 field_1578; + s32 field_157C; + s32 field_1580; + s32 field_1584; + s32 field_1588; + s32 field_158C; + s32 field_1590; + s32 field_1594; + s32 related_to_health_display; + s32 field_159C; + s32 field_15A0; + s32 field_15A4; + s32 field_15A8; + s32 field_15AC; + s32 field_15B0; + s32 field_15B4; + s32 field_15B8; + s32 field_15BC; + s32 field_15C0; + s32 field_15C4; + s32 field_15C8; + s32 field_15CC; + s32 field_15D0; + s32 field_15D4; + s32 field_15D8; + s32 field_15DC; + s32 field_15E0; + s32 field_15E4; + s32 field_15E8; + s32 field_15EC; + s32 field_15F0; + s32 field_15F4; + s32 field_15F8; + s32 field_15FC; + s32 field_1600; + s32 field_1604; + s32 field_1608; + s32 field_160C; + s32 field_1610; + s32 field_1614; + s32 field_1618; + s32 field_161C; + s32 field_1620; + s32 field_1624; + s32 field_1628; + s32 field_162C; + s32 field_1630; + s32 field_1634; + s32 field_1638; + s32 field_163C; + s32 field_1640; + s32 field_1644; + s32 field_1648; + s32 field_164C; + s32 field_1650; + s32 field_1654; + s32 field_1658; + s32 field_165C; + s32 field_1660; + s32 field_1664; + s32 field_1668; + s32 field_166C; + s32 field_1670; + s32 field_1674; + s32 field_1678; + s32 field_167C; + s32 field_1680; + s32 field_1684; + s32 field_1688; + s32 field_168C; + s32 field_1690; + s32 field_1694; + s32 field_1698; + s32 field_169C; + s32 field_16A0; + s32 field_16A4; + s32 field_16A8; + s32 field_16AC; + s32 field_16B0; + s32 field_16B4; + s32 field_16B8; + s32 field_16BC; + s32 field_16C0; + s32 field_16C4; + s32 field_16C8; + s32 field_16CC; + s32 field_16D0; + s32 field_16D4; + s32 field_16D8; + s32 field_16DC; + s32 field_16E0; + s32 field_16E4; + s32 field_16E8; + s32 field_16EC; + s32 field_16F0; + s32 field_16F4; + s32 field_16F8; + s32 field_16FC; + s32 field_1700; + s32 field_1704; + s32 field_1708; + s32 field_170C; + s32 field_1710; + s32 field_1714; + s32 field_1718; + s32 field_171C; + s32 field_1720; + s32 field_1724; + s32 field_1728; + s32 field_172C; + s32 field_1730; + s32 field_1734; + s32 field_1738; + s32 field_173C; + s32 field_1740; + s32 field_1744; + s32 field_1748; + s32 field_174C; + s32 field_1750; + s32 field_1754; + s32 field_1758; + s32 field_175C; + s32 field_1760; + s32 field_1764; + s32 field_1768; + s32 field_176C; + s32 field_1770; + s32 field_1774; + s32 field_1778; + s32 field_177C; + s32 field_1780; + s32 field_1784; + s32 field_1788; + s32 field_178C; + s32 field_1790; + s32 field_1794; + s32 field_1798; + s32 field_179C; + s32 field_17A0; + s32 field_17A4; + s32 field_17A8; + s32 field_17AC; + s32 field_17B0; + s32 field_17B4; + s32 field_17B8; + s32 field_17BC; + s32 field_17C0; + s32 field_17C4; + s32 field_17C8; + s32 field_17CC; + s32 field_17D0; + s32 field_17D4; + s32 field_17D8; + s32 field_17DC; + s32 field_17E0; + s32 field_17E4; + s32 field_17E8; + s32 field_17EC; + s32 field_17F0; + s32 field_17F4; + s32 field_17F8; + s32 field_17FC; + s32 field_1800; + s32 field_1804; + s32 field_1808; + s32 field_180C; + s32 field_1810; + s32 field_1814; + s32 field_1818; + s32 field_181C; + s32 field_1820; + s32 field_1824; + s32 field_1828; + s32 field_182C; + s32 field_1830; + s32 field_1834; + s32 field_1838; + s32 field_183C; + s32 field_1840; + s32 field_1844; + s32 field_1848; + s32 field_184C; + s32 field_1850; + s32 field_1854; + s32 field_1858; + s32 field_185C; + s32 field_1860; + s32 field_1864; + s32 field_1868; + s32 field_186C; + s32 field_1870; + s32 field_1874; + s32 buffer_for_watch_greenbackdrop_vertices; + s32 field_187C; + s32 field_1880; + s32 field_1884; + s32 field_1888; + s32 field_188C; + s32 field_1890; + s32 field_1894; + s32 field_1898; + s32 field_189C; + s32 field_18A0; + s32 field_18A4; + s32 field_18A8; + s32 field_18AC; + s32 field_18B0; + s32 field_18B4; + s32 field_18B8; + s32 field_18BC; + s32 field_18C0; + s32 field_18C4; + s32 field_18C8; + s32 field_18CC; + s32 field_18D0; + s32 field_18D4; + s32 field_18D8; + s32 field_18DC; + s32 field_18E0; + s32 field_18E4; + s32 field_18E8; + s32 field_18EC; + s32 field_18F0; + s32 field_18F4; + s32 field_18F8; + s32 field_18FC; + s32 field_1900; + s32 field_1904; + s32 field_1908; + s32 field_190C; + s32 field_1910; + s32 field_1914; + s32 field_1918; + s32 field_191C; + s32 field_1920; + s32 field_1924; + s32 field_1928; + s32 field_192C; + s32 field_1930; + s32 field_1934; + s32 field_1938; + s32 field_193C; + s32 field_1940; + s32 field_1944; + s32 field_1948; + s32 field_194C; + s32 field_1950; + s32 field_1954; + s32 field_1958; + s32 field_195C; + s32 field_1960; + s32 field_1964; + s32 field_1968; + s32 field_196C; + s32 field_1970; + s32 field_1974; + s32 field_1978; + s32 field_197C; + s32 field_1980; + s32 field_1984; + s32 field_1988; + s32 field_198C; + s32 field_1990; + s32 field_1994; + s32 field_1998; + s32 field_199C; + s32 field_19A0; + s32 field_19A4; + s32 field_19A8; + s32 field_19AC; + s32 field_19B0; + s32 field_19B4; + s32 field_19B8; + s32 field_19BC; + s32 field_19C0; + s32 field_19C4; + s32 field_19C8; + s32 field_19CC; + s32 field_19D0; + s32 field_19D4; + s32 field_19D8; + s32 field_19DC; + s32 field_19E0; + s32 field_19E4; + s32 field_19E8; + s32 field_19EC; + s32 field_19F0; + s32 field_19F4; + s32 field_19F8; + s32 field_19FC; + s32 field_1A00; + s32 field_1A04; + s32 field_1A08; + s32 field_1A0C; + s32 field_1A10; + s32 field_1A14; + s32 field_1A18; + s32 field_1A1C; + s32 field_1A20; + s32 field_1A24; + s32 field_1A28; + s32 field_1A2C; + s32 field_1A30; + s32 field_1A34; + s32 field_1A38; + s32 field_1A3C; + s32 field_1A40; + s32 field_1A44; + s32 field_1A48; + s32 field_1A4C; + s32 field_1A50; + s32 field_1A54; + s32 field_1A58; + s32 field_1A5C; + s32 field_1A60; + s32 field_1A64; + s32 field_1A68; + s32 field_1A6C; + s32 field_1A70; + s32 field_1A74; + s32 field_1A78; + s32 field_1A7C; + s32 field_1A80; + s32 field_1A84; + s32 field_1A88; + s32 field_1A8C; + s32 field_1A90; + s32 field_1A94; + s32 field_1A98; + s32 field_1A9C; + s32 field_1AA0; + s32 field_1AA4; + s32 field_1AA8; + s32 field_1AAC; + s32 field_1AB0; + s32 field_1AB4; + s32 field_1AB8; + s32 field_1ABC; + s32 field_1AC0; + s32 field_1AC4; + s32 field_1AC8; + s32 field_1ACC; + s32 field_1AD0; + s32 field_1AD4; + s32 field_1AD8; + s32 field_1ADC; + s32 field_1AE0; + s32 field_1AE4; + s32 field_1AE8; + s32 field_1AEC; + s32 field_1AF0; + s32 field_1AF4; + s32 field_1AF8; + s32 field_1AFC; + s32 field_1B00; + s32 field_1B04; + s32 field_1B08; + s32 field_1B0C; + s32 field_1B10; + s32 field_1B14; + s32 field_1B18; + s32 field_1B1C; + s32 field_1B20; + s32 field_1B24; + s32 field_1B28; + s32 field_1B2C; + s32 field_1B30; + s32 field_1B34; + s32 field_1B38; + s32 field_1B3C; + s32 field_1B40; + s32 field_1B44; + s32 field_1B48; + s32 field_1B4C; + s32 field_1B50; + s32 field_1B54; + s32 field_1B58; + s32 field_1B5C; + s32 field_1B60; + s32 field_1B64; + s32 field_1B68; + s32 field_1B6C; + s32 field_1B70; + s32 field_1B74; + s32 field_1B78; + s32 field_1B7C; + s32 field_1B80; + s32 field_1B84; + s32 field_1B88; + s32 field_1B8C; + s32 field_1B90; + s32 field_1B94; + s32 field_1B98; + s32 field_1B9C; + s32 field_1BA0; + s32 field_1BA4; + s32 field_1BA8; + s32 field_1BAC; + s32 field_1BB0; + s32 field_1BB4; + s32 field_1BB8; + s32 field_1BBC; + s32 field_1BC0; + s32 field_1BC4; + s32 field_1BC8; + s32 field_1BCC; + s32 field_1BD0; + s32 field_1BD4; + s32 field_1BD8; + s32 field_1BDC; + s32 field_1BE0; + s32 field_1BE4; + s32 field_1BE8; + s32 field_1BEC; + s32 field_1BF0; + s32 field_1BF4; + s32 field_1BF8; + s32 field_1BFC; + s32 field_1C00; + s32 field_1C04; + s32 field_1C08; + s32 field_1C0C; + s32 field_1C10; + s32 field_1C14; + s32 field_1C18; + s32 field_1C1C; + s32 field_1C20; + s32 field_1C24; + s32 field_1C28; + s32 field_1C2C; + s32 field_1C30; + s32 field_1C34; + s32 field_1C38; + s32 field_1C3C; + s32 field_1C40; + s32 field_1C44; + s32 field_1C48; + s32 field_1C4C; + s32 field_1C50; + s32 field_1C54; + s32 field_1C58; + s32 field_1C5C; + s32 field_1C60; + s32 field_1C64; + s32 field_1C68; + s32 field_1C6C; + s32 field_1C70; + s32 field_1C74; + s32 field_1C78; + s32 field_1C7C; + s32 field_1C80; + s32 field_1C84; + s32 field_1C88; + s32 field_1C8C; + s32 field_1C90; + s32 field_1C94; + s32 field_1C98; + s32 field_1C9C; + s32 field_1CA0; + s32 field_1CA4; + s32 field_1CA8; + s32 field_1CAC; + s32 field_1CB0; + s32 field_1CB4; + s32 field_1CB8; + s32 field_1CBC; + s32 field_1CC0; + s32 field_1CC4; + s32 field_1CC8; + s32 field_1CCC; + s32 field_1CD0; + s32 field_1CD4; + s32 field_1CD8; + s32 field_1CDC; + s32 field_1CE0; + s32 field_1CE4; + s32 field_1CE8; + s32 field_1CEC; + s32 field_1CF0; + s32 field_1CF4; + s32 field_1CF8; + s32 field_1CFC; + s32 field_1D00; + s32 field_1D04; + s32 field_1D08; + s32 field_1D0C; + s32 field_1D10; + s32 field_1D14; + s32 field_1D18; + s32 field_1D1C; + s32 field_1D20; + s32 field_1D24; + s32 field_1D28; + s32 field_1D2C; + s32 field_1D30; + s32 field_1D34; + s32 field_1D38; + s32 field_1D3C; + s32 field_1D40; + s32 field_1D44; + s32 field_1D48; + s32 field_1D4C; + s32 field_1D50; + s32 field_1D54; + s32 field_1D58; + s32 field_1D5C; + s32 field_1D60; + s32 field_1D64; + s32 field_1D68; + s32 field_1D6C; + s32 field_1D70; + s32 field_1D74; + s32 field_1D78; + s32 field_1D7C; + s32 field_1D80; + s32 field_1D84; + s32 field_1D88; + s32 field_1D8C; + s32 field_1D90; + s32 field_1D94; + s32 field_1D98; + s32 field_1D9C; + s32 field_1DA0; + s32 field_1DA4; + s32 field_1DA8; + s32 field_1DAC; + s32 field_1DB0; + s32 field_1DB4; + s32 field_1DB8; + s32 field_1DBC; + s32 field_1DC0; + s32 field_1DC4; + s32 field_1DC8; + s32 field_1DCC; + s32 field_1DD0; + s32 field_1DD4; + s32 field_1DD8; + s32 field_1DDC; + s32 field_1DE0; + s32 field_1DE4; + s32 field_1DE8; + s32 field_1DEC; + s32 field_1DF0; + s32 field_1DF4; + s32 field_1DF8; + s32 field_1DFC; + s32 field_1E00; + s32 field_1E04; + s32 field_1E08; + s32 field_1E0C; + s32 field_1E10; + s32 field_1E14; + s32 field_1E18; + s32 field_1E1C; + s32 field_1E20; + s32 field_1E24; + s32 field_1E28; + s32 field_1E2C; + s32 field_1E30; + s32 field_1E34; + s32 field_1E38; + s32 field_1E3C; + s32 field_1E40; + s32 field_1E44; + s32 field_1E48; + s32 field_1E4C; + s32 field_1E50; + s32 field_1E54; + s32 field_1E58; + s32 field_1E5C; + s32 field_1E60; + s32 field_1E64; + s32 field_1E68; + s32 field_1E6C; + s32 field_1E70; + s32 field_1E74; + s32 field_1E78; + s32 field_1E7C; + s32 field_1E80; + s32 field_1E84; + s32 field_1E88; + s32 field_1E8C; + s32 field_1E90; + s32 field_1E94; + s32 field_1E98; + s32 field_1E9C; + s32 field_1EA0; + s32 field_1EA4; + s32 field_1EA8; + s32 field_1EAC; + s32 field_1EB0; + s32 field_1EB4; + s32 field_1EB8; + s32 field_1EBC; + s32 field_1EC0; + s32 field_1EC4; + s32 field_1EC8; + s32 field_1ECC; + s32 field_1ED0; + s32 field_1ED4; + s32 field_1ED8; + s32 field_1EDC; + s32 field_1EE0; + s32 field_1EE4; + s32 field_1EE8; + s32 field_1EEC; + s32 field_1EF0; + s32 field_1EF4; + s32 field_1EF8; + s32 field_1EFC; + s32 field_1F00; + s32 field_1F04; + s32 field_1F08; + s32 field_1F0C; + s32 field_1F10; + s32 field_1F14; + s32 field_1F18; + s32 field_1F1C; + s32 field_1F20; + s32 field_1F24; + s32 field_1F28; + s32 field_1F2C; + s32 field_1F30; + s32 field_1F34; + s32 field_1F38; + s32 field_1F3C; + s32 field_1F40; + s32 field_1F44; + s32 field_1F48; + s32 field_1F4C; + s32 field_1F50; + s32 field_1F54; + s32 field_1F58; + s32 field_1F5C; + s32 field_1F60; + s32 field_1F64; + s32 field_1F68; + s32 field_1F6C; + s32 field_1F70; + s32 field_1F74; + s32 field_1F78; + s32 field_1F7C; + s32 field_1F80; + s32 field_1F84; + s32 field_1F88; + s32 field_1F8C; + s32 field_1F90; + s32 field_1F94; + s32 field_1F98; + s32 field_1F9C; + s32 field_1FA0; + s32 field_1FA4; + s32 field_1FA8; + s32 field_1FAC; + s32 field_1FB0; + s32 field_1FB4; + s32 field_1FB8; + s32 field_1FBC; + s32 field_1FC0; + s32 field_1FC4; + s32 field_1FC8; + s32 field_1FCC; + s32 field_1FD0; + s32 field_1FD4; + s32 field_1FD8; + s32 field_1FDC; + s32 field_1FE0; + s32 field_1FE4; + s32 field_1FE8; + s32 field_1FEC; + s32 field_1FF0; + s32 field_1FF4; + s32 field_1FF8; + s32 field_1FFC; + s32 field_2000; + s32 field_2004; + s32 field_2008; + s32 field_200C; + s32 field_2010; + s32 field_2014; + s32 field_2018; + s32 field_201C; + s32 field_2020; + s32 field_2024; + s32 field_2028; + s32 field_202C; + s32 field_2030; + s32 field_2034; + s32 field_2038; + s32 field_203C; + s32 field_2040; + s32 field_2044; + s32 field_2048; + s32 field_204C; + s32 field_2050; + s32 field_2054; + s32 field_2058; + s32 field_205C; + s32 field_2060; + s32 field_2064; + s32 field_2068; + s32 field_206C; + s32 field_2070; + s32 field_2074; + s32 field_2078; + s32 field_207C; + s32 field_2080; + s32 field_2084; + s32 field_2088; + s32 field_208C; + s32 field_2090; + s32 field_2094; + s32 field_2098; + s32 field_209C; + s32 field_20A0; + s32 field_20A4; + s32 field_20A8; + s32 field_20AC; + s32 field_20B0; + s32 field_20B4; + s32 field_20B8; + s32 field_20BC; + s32 field_20C0; + s32 field_20C4; + s32 field_20C8; + s32 field_20CC; + s32 field_20D0; + s32 field_20D4; + s32 field_20D8; + s32 field_20DC; + s32 field_20E0; + s32 field_20E4; + s32 field_20E8; + s32 field_20EC; + s32 field_20F0; + s32 field_20F4; + s32 field_20F8; + s32 field_20FC; + s32 field_2100; + s32 field_2104; + s32 field_2108; + s32 field_210C; + s32 field_2110; + s32 field_2114; + s32 field_2118; + s32 field_211C; + s32 field_2120; + s32 field_2124; + s32 field_2128; + s32 field_212C; + s32 field_2130; + s32 field_2134; + s32 field_2138; + s32 field_213C; + s32 field_2140; + s32 field_2144; + s32 field_2148; + s32 field_214C; + s32 field_2150; + s32 field_2154; + s32 field_2158; + s32 field_215C; + s32 field_2160; + s32 field_2164; + s32 field_2168; + s32 field_216C; + s32 field_2170; + s32 field_2174; + s32 field_2178; + s32 field_217C; + s32 field_2180; + s32 field_2184; + s32 field_2188; + s32 field_218C; + s32 field_2190; + s32 field_2194; + s32 field_2198; + s32 field_219C; + s32 field_21A0; + s32 field_21A4; + s32 field_21A8; + s32 field_21AC; + s32 field_21B0; + s32 field_21B4; + s32 field_21B8; + s32 field_21BC; + s32 field_21C0; + s32 field_21C4; + s32 field_21C8; + s32 field_21CC; + s32 field_21D0; + s32 field_21D4; + s32 field_21D8; + s32 field_21DC; + s32 field_21E0; + s32 field_21E4; + s32 field_21E8; + s32 field_21EC; + s32 field_21F0; + s32 field_21F4; + s32 field_21F8; + s32 field_21FC; + s32 field_2200; + s32 field_2204; + s32 field_2208; + s32 field_220C; + s32 field_2210; + s32 field_2214; + s32 field_2218; + s32 field_221C; + s32 field_2220; + s32 field_2224; + s32 field_2228; + s32 field_222C; + s32 field_2230; + s32 field_2234; + s32 field_2238; + s32 field_223C; + s32 field_2240; + s32 field_2244; + s32 field_2248; + s32 field_224C; + s32 field_2250; + s32 field_2254; + s32 field_2258; + s32 field_225C; + s32 field_2260; + s32 field_2264; + s32 field_2268; + s32 field_226C; + s32 field_2270; + s32 field_2274; + s32 field_2278; + s32 field_227C; + s32 field_2280; + s32 field_2284; + s32 field_2288; + s32 field_228C; + s32 field_2290; + s32 field_2294; + s32 field_2298; + s32 field_229C; + s32 field_22A0; + s32 field_22A4; + s32 field_22A8; + s32 field_22AC; + s32 field_22B0; + s32 field_22B4; + s32 field_22B8; + s32 field_22BC; + s32 field_22C0; + s32 field_22C4; + s32 field_22C8; + s32 field_22CC; + s32 field_22D0; + s32 field_22D4; + s32 field_22D8; + s32 field_22DC; + s32 field_22E0; + s32 field_22E4; + s32 field_22E8; + s32 field_22EC; + s32 field_22F0; + s32 field_22F4; + s32 field_22F8; + s32 field_22FC; + s32 field_2300; + s32 field_2304; + s32 field_2308; + s32 field_230C; + s32 field_2310; + s32 field_2314; + s32 field_2318; + s32 field_231C; + s32 field_2320; + s32 field_2324; + s32 field_2328; + s32 field_232C; + s32 field_2330; + s32 field_2334; + s32 field_2338; + s32 field_233C; + s32 field_2340; + s32 field_2344; + s32 field_2348; + s32 field_234C; + s32 field_2350; + s32 field_2354; + s32 field_2358; + s32 field_235C; + s32 field_2360; + s32 field_2364; + s32 field_2368; + s32 field_236C; + s32 field_2370; + s32 field_2374; + s32 field_2378; + s32 field_237C; + s32 field_2380; + s32 field_2384; + s32 field_2388; + s32 field_238C; + s32 field_2390; + s32 field_2394; + s32 field_2398; + s32 field_239C; + s32 field_23A0; + s32 field_23A4; + s32 field_23A8; + s32 field_23AC; + s32 field_23B0; + s32 field_23B4; + s32 field_23B8; + s32 field_23BC; + s32 field_23C0; + s32 field_23C4; + s32 field_23C8; + s32 field_23CC; + s32 field_23D0; + s32 field_23D4; + s32 field_23D8; + s32 field_23DC; + s32 field_23E0; + s32 field_23E4; + s32 field_23E8; + s32 field_23EC; + s32 field_23F0; + s32 field_23F4; + s32 field_23F8; + s32 field_23FC; + s32 field_2400; + s32 field_2404; + s32 field_2408; + s32 field_240C; + s32 field_2410; + s32 field_2414; + s32 field_2418; + s32 field_241C; + s32 field_2420; + s32 field_2424; + s32 field_2428; + s32 field_242C; + s32 field_2430; + s32 field_2434; + s32 field_2438; + s32 field_243C; + s32 field_2440; + s32 field_2444; + s32 field_2448; + s32 field_244C; + s32 field_2450; + s32 field_2454; + s32 field_2458; + s32 field_245C; + s32 field_2460; + s32 field_2464; + s32 field_2468; + s32 field_246C; + s32 field_2470; + s32 field_2474; + s32 field_2478; + s32 field_247C; + s32 field_2480; + s32 field_2484; + s32 field_2488; + s32 field_248C; + s32 field_2490; + s32 field_2494; + s32 field_2498; + s32 field_249C; + s32 field_24A0; + s32 field_24A4; + s32 field_24A8; + s32 field_24AC; + s32 field_24B0; + s32 field_24B4; + s32 field_24B8; + s32 field_24BC; + s32 field_24C0; + s32 field_24C4; + s32 field_24C8; + s32 field_24CC; + s32 field_24D0; + s32 field_24D4; + s32 field_24D8; + s32 field_24DC; + s32 field_24E0; + s32 field_24E4; + s32 field_24E8; + s32 field_24EC; + s32 field_24F0; + s32 field_24F4; + s32 field_24F8; + s32 field_24FC; + s32 field_2500; + s32 field_2504; + s32 field_2508; + s32 field_250C; + s32 field_2510; + s32 field_2514; + s32 field_2518; + s32 field_251C; + s32 field_2520; + s32 field_2524; + s32 field_2528; + s32 field_252C; + s32 field_2530; + s32 field_2534; + s32 field_2538; + s32 field_253C; + s32 field_2540; + s32 field_2544; + s32 field_2548; + s32 field_254C; + s32 field_2550; + s32 field_2554; + s32 field_2558; + s32 field_255C; + s32 field_2560; + s32 field_2564; + s32 field_2568; + s32 field_256C; + s32 field_2570; + s32 field_2574; + s32 field_2578; + s32 field_257C; + s32 field_2580; + s32 field_2584; + s32 field_2588; + s32 field_258C; + s32 field_2590; + s32 field_2594; + s32 field_2598; + s32 field_259C; + s32 field_25A0; + s32 field_25A4; + s32 field_25A8; + s32 field_25AC; + s32 field_25B0; + s32 field_25B4; + s32 field_25B8; + s32 field_25BC; + s32 field_25C0; + s32 field_25C4; + s32 field_25C8; + s32 field_25CC; + s32 field_25D0; + s32 field_25D4; + s32 field_25D8; + s32 field_25DC; + s32 field_25E0; + s32 field_25E4; + s32 field_25E8; + s32 field_25EC; + s32 field_25F0; + s32 field_25F4; + s32 field_25F8; + s32 field_25FC; + s32 field_2600; + s32 field_2604; + s32 field_2608; + s32 field_260C; + s32 field_2610; + s32 field_2614; + s32 field_2618; + s32 field_261C; + s32 field_2620; + s32 field_2624; + s32 field_2628; + s32 field_262C; + s32 field_2630; + s32 field_2634; + s32 field_2638; + s32 field_263C; + s32 field_2640; + s32 field_2644; + s32 field_2648; + s32 field_264C; + s32 field_2650; + s32 field_2654; + s32 field_2658; + s32 field_265C; + s32 field_2660; + s32 field_2664; + s32 field_2668; + s32 field_266C; + s32 field_2670; + s32 field_2674; + s32 field_2678; + s32 field_267C; + s32 field_2680; + s32 field_2684; + s32 field_2688; + s32 field_268C; + s32 field_2690; + s32 field_2694; + s32 field_2698; + s32 field_269C; + s32 field_26A0; + s32 field_26A4; + s32 field_26A8; + s32 field_26AC; + s32 field_26B0; + s32 field_26B4; + s32 field_26B8; + s32 field_26BC; + s32 field_26C0; + s32 field_26C4; + s32 field_26C8; + s32 field_26CC; + s32 field_26D0; + s32 field_26D4; + s32 field_26D8; + s32 field_26DC; + s32 field_26E0; + s32 field_26E4; + s32 field_26E8; + s32 field_26EC; + s32 field_26F0; + s32 field_26F4; + s32 field_26F8; + s32 field_26FC; + s32 field_2700; + s32 field_2704; + s32 field_2708; + s32 field_270C; + s32 field_2710; + s32 field_2714; + s32 field_2718; + s32 field_271C; + s32 field_2720; + s32 field_2724; + s32 field_2728; + s32 field_272C; + s32 field_2730; + s32 field_2734; + s32 field_2738; + s32 field_273C; + s32 field_2740; + s32 field_2744; + s32 field_2748; + s32 field_274C; + s32 field_2750; + s32 field_2754; + s32 field_2758; + s32 field_275C; + s32 field_2760; + s32 field_2764; + s32 field_2768; + s32 field_276C; + s32 field_2770; + s32 field_2774; + s32 field_2778; + s32 field_277C; + s32 field_2780; + s32 field_2784; + s32 field_2788; + s32 field_278C; + s32 field_2790; + s32 field_2794; + s32 field_2798; + s32 field_279C; + s32 field_27A0; + s32 field_27A4; + s32 field_27A8; + s32 field_27AC; + s32 field_27B0; + s32 field_27B4; + s32 field_27B8; + s32 field_27BC; + s32 field_27C0; + s32 field_27C4; + s32 field_27C8; + s32 field_27CC; + s32 field_27D0; + s32 field_27D4; + s32 field_27D8; + s32 field_27DC; + s32 field_27E0; + s32 field_27E4; + s32 field_27E8; + s32 field_27EC; + s32 field_27F0; + s32 field_27F4; + s32 field_27F8; + s32 field_27FC; + s32 field_2800; + s32 field_2804; + s32 field_2808; + s32 field_280C; + s32 field_2810; + s32 field_2814; + s32 field_2818; + s32 field_281C; + s32 field_2820; + s32 field_2824; + s32 field_2828; + s32 field_282C; + s32 field_2830; + s32 field_2834; + s32 field_2838; + s32 field_283C; + s32 field_2840; + s32 field_2844; + s32 field_2848; + s32 field_284C; + s32 field_2850; + s32 field_2854; + s32 buffer_for_watch_greenbackdrop_DL; + s32 field_285C; + s32 field_2860; + s32 field_2864; + s32 field_2868; + s32 field_286C; + s32 field_2870; + s32 field_2874; + s32 field_2878; + s32 field_287C; + s32 field_2880; + s32 field_2884; + s32 field_2888; + s32 field_288C; + s32 field_2890; + s32 field_2894; + s32 field_2898; + s32 field_289C; + s32 field_28A0; + s32 field_28A4; + s32 field_28A8; + s32 field_28AC; + s32 field_28B0; + s32 field_28B4; + s32 field_28B8; + s32 field_28BC; + s32 field_28C0; + s32 field_28C4; + s32 field_28C8; + s32 field_28CC; + s32 field_28D0; + s32 field_28D4; + s32 field_28D8; + s32 field_28DC; + s32 field_28E0; + s32 field_28E4; + s32 field_28E8; + s32 field_28EC; + s32 field_28F0; + s32 field_28F4; + s32 field_28F8; + s32 field_28FC; + s32 field_2900; + s32 field_2904; + s32 field_2908; + s32 field_290C; + s32 field_2910; + s32 field_2914; + s32 field_2918; + s32 field_291C; + s32 field_2920; + s32 field_2924; + s32 field_2928; + s32 field_292C; + s32 field_2930; + s32 field_2934; + s32 field_2938; + s32 field_293C; + s32 field_2940; + s32 field_2944; + s32 field_2948; + s32 field_294C; + s32 field_2950; + s32 field_2954; + s32 field_2958; + s32 field_295C; + s32 field_2960; + s32 field_2964; + s32 field_2968; + s32 field_296C; + s32 field_2970; + s32 field_2974; + s32 field_2978; + s32 field_297C; + s32 field_2980; + s32 field_2984; + s32 field_2988; + s32 field_298C; + s32 field_2990; + s32 field_2994; + s32 field_2998; + s32 field_299C; + s32 field_29A0; + s32 field_29A4; + s32 field_29A8; + s32 field_29AC; + s32 field_29B0; + s32 field_29B4; + s32 field_29B8; + s32 field_29BC; + s32 field_29C0; + s32 mpmenuon; + s32 mpmenumode; + s32 mpquitconfirm; + s32 mpjoywascentre; + s32 damagetype; + s32 deathcount; + s32 num_suicides; + s32 field_29E0; + s32 last_kill_time; + s32 field_29E8; + s32 field_29EC; + s32 field_29F0; + s32 field_29F4; + s32 field_29F8; + s32 field_29FC; + s32 healthdisplaytime; + s16 field_2A04; + s32 field_2A08; + s32 field_2A0C; + s32 ptr_text_first_mp_award; + s32 ptr_text_second_mp_award; + s32 field_2A18; + s32 field_2A1C; + s32 field_2A20; + s32 field_2A24; + s32 field_2A28; + s32 field_2A2C; + s32 field_2A30; + s32 field_2A34; + s32 cur_item_weapon_getname; + s32 actual_health; + s32 actual_armor; + s32 field_2A44[2]; + f32 field_2A4C; + s32 lock_hand_model[2]; + s32 cur_player_control_type_0; + s32 cur_player_control_type_1; + f32 cur_player_control_type_2; + s32 neg_vspacing_for_control_type_entry; + u32 has_set_control_type_data; + s32 field_2A6C; + s32 field_2A70; + s32 field_2A74; + s32 field_2A78; + s32 field_2A7C; +}; + +struct firing_anim_struct { + struct weapon_firing_animation_table * pointer; + u32 anim; + f32 x; + f32 y; + f32 z; +}; + +struct struct_4 { + int anonymous_0; + float anonymous_1; + float anonymous_2; + float anonymous_3; +}; + +//D:80036424 +extern s32 camera_80036424; +//D:80036428 +extern s32 resolution; +//D:8003642C +extern s32 camera_8003642C; +//D:80036430 +extern s32 camera_80036430; +//D:80036434 +extern s32 camera_80036434; +//D:80036438 +extern s32 camera_80036438; +//D:8003643C +extern s32 D_8003643C; +//D:80036440 +extern s32 D_80036440; +//D:80036444 +extern s32 D_80036444; +//D:80036448 +extern s32 in_tank_flag; +//D:8003644C +extern s32 D_8003644C; +//D:80036450 +extern s32 ptr_playerstank; +//D:80036454 +extern s32 D_80036454; +//D:80036458 +extern s32 SFX_80036458; +//D:8003645C +extern s32 SFX_8003645C; +//D:80036460 +extern s32 D_80036460; +//D:80036464 +extern s32 D_80036464; +//D:80036468 +extern s32 D_80036468; +//D:8003646C +extern s32 D_8003646C; +//D:80036470 +extern s32 D_80036470; +//D:80036474 +extern s32 D_80036474; +//D:80036478 +extern s32 D_80036478; +//D:8003647C +extern s32 D_8003647C; +//D:80036480 +extern s32 D_80036480; +//D:80036484 +extern s32 D_80036484; +//D:80036488 +extern s32 D_80036488; +//D:8003648C +extern s32 D_8003648C; +//D:80036490 +extern s32 D_80036490; +//D:80036494 +extern s32 cameramode; +//D:80036498 +extern s32 enable_move_after_cinema; +//D:8003649C +extern s32 D_8003649C; +//D:800364A0 +extern s32 stop_time_flag; +//D:800364A4 +extern s32 D_800364A4; +//D:800364A8 +extern s32 D_800364A8; +//D:800364AC +extern s32 D_800364AC; +//D:800364B0 +extern s32 D_800364B0; +//D:800364B4 +extern s32 disable_player_pickups_flag; +//D:800364B8 +extern s32 D_800364B8; +//D:800364BC +extern s32 D_800364BC; +//D:800364C0 +extern s32 ptr_random06cam_entry; +//D:800364C4 +extern s32 invisible_to_guards_flag; +//D:800364C8 +extern s32 obj_collision_flag; +//D:800364CC +extern f32 D_800364CC; +//D:800364D0 +extern f32 D_800364D0; +//D:800364D4 +extern f32 D_800364D4; +//D:800364D8 +extern s32 D_800364D8[]; + +//D:8003650C +extern s32 D_8003650C; +//D:80036510 +extern s32 D_80036510; +//D:80036514 +extern s32 D_80036514; +/* +D:80036518 stage_intro_anim_table:struct_4 <0x5744, 95.0, -1.0, 0.02> +D:80036528 struct_4 <0x6254, 7.0, 40.0, 0.5> +D:80036538 struct_4 <0x78C8, 0.0, -1.0, 0.5> +D:80036548 struct_4 <0x7AA8, 0.0, -1.0, 0.5> +D:80036558 struct_4 <0x7C4C, 0.0, -1.0, 0.5> +D:80036568 struct_4 <0x7D04, 0.0, -1.0, 0.5> +D:80036578 struct_4 <0x7F0C, 0.0, -1.0, 0.5> +D:80036588 struct_4 <0x7FB4, 0.0, -1.0, 0.5> +D:80036598 struct_4 <0xD89C, 0.0, -1.0, 0.5> +D:800365A8 flt_watch_transition_time: .float 0.90909088 +D:800365AC dummy_08_pp7_obj:.word 0x1000008 +D:800365B0 .word 0xBF4000 +D:800365B4 .word 0, 0, 0, 0 +D:800365C4 .byte 0x3F +D:800365C5 .byte 0x80, 0, 0 +D:800365C8 .word 0, 0, 0, 0 +D:800365D8 .byte 0x3F +D:800365D9 .byte 0x80, 0, 0 +D:800365DC .word 0, 0, 0, 0 +D:800365EC .byte 0x3F +D:800365ED .byte 0x80, 0, 0 +D:800365F0 .align 5 +D:80036600 .byte 0x3F +D:80036601 .byte 0x80, 0, 0 +D:80036604 .align 5 +D:80036620 .byte 0x44 +D:80036621 .byte 0x7A, 0, 0 +D:80036624 .word 0xFFFFFF00, 0xFFFFFF00, 0x4FFFFFF +*/ +//D:80036630 +extern u32 D_80036630; +//D:80036634 +extern u32 D_80036634[]; +/* +D:80036638 .byte 0 +D:80036639 .byte 0, 0, 0xA +D:8003663C .word 0x3C, 0x3F19999A, 0 +D:80036648 .byte 0 +D:80036649 .byte 0, 0, 5 +D:8003664C .word 0x28, 0x3F800000, 0xFF, 0xFF, 0xFF, 0 +D:80036664 .byte 0 +D:80036665 .byte 0, 0, 0xA +D:80036668 .word 0x3C, 0x3F19999A, 0 +D:80036674 .byte 0 +D:80036675 .byte 0, 0, 5 +D:80036678 .word 0x28, 0x3F800000, 0xFF, 0xFF, 0xFF, 0 +D:80036690 .byte 0 +D:80036691 .byte 0, 0, 0xA +D:80036694 .word 0x32, 0x3F19999A, 0 +D:800366A0 .word 5, 0x1E, 0x3F4CCCCD, 0xFF, 0xFF, 0xFF, 0 +D:800366BC .byte 0 +D:800366BD .byte 0, 0, 0xA +D:800366C0 .word 0x28, 0x3F19999A, 0 +D:800366CC .byte 0 +D:800366CD .byte 0, 0, 5 +D:800366D0 .word 0x19, 0x3F19999A, 0xFF, 0xFF, 0xFF, 0 +D:800366E8 .byte 0 +D:800366E9 .byte 0, 0, 0xA +D:800366EC .word 0x23, 0x3F19999A, 0 +D:800366F8 .byte 0 +D:800366F9 .byte 0, 0, 5 +D:800366FC .word 0x16, 0x3F0CCCCD, 0xFF, 0xFF, 0xFF, 0 +D:80036714 .byte 0 +D:80036715 .byte 0, 0, 0xA +D:80036718 .word 0x1E, 0x3F19999A, 0 +D:80036724 .word 5, 0x13, 0x3F000000, 0xFF, 0xFF, 0xFF, 0 +D:80036740 .byte 0 +D:80036741 .byte 0, 0, 0xA +D:80036744 .word 0x1E, 0x3F19999A, 0 +D:80036750 .word 5, 0x11, 0x3EE66666, 0xFF, 0xFF, 0xFF, 0 +D:8003676C .byte 0 +D:8003676D .byte 0, 0, 0xA +D:80036770 .word 0x1E, 0x3F19999A, 0 +D:8003677C .word 5, 0xF, 0x3ECCCCCD, 0xFF, 0xFF, 0xFF +D:80036794 D_80036794:.word 0 +D:80036798 .byte 0 +D:80036799 .byte 0, 0, 0x28 +D:8003679C .word 0x64, 0 +D:800367A4 .byte 0 +D:800367A5 .byte 0, 0, 0x1E +D:800367A8 .word 0x50, 0 +D:800367B0 .byte 0 +D:800367B1 .byte 0, 0, 0x14 +D:800367B4 .word 0x3C, 0 +D:800367BC .byte 0 +D:800367BD .byte 0, 0, 0x14 +D:800367C0 .word 0x3C, 0 +D:800367C8 .byte 0 +D:800367C9 .byte 0, 0, 0x14 +D:800367CC .word 0x3C, 0 +D:800367D4 .byte 0 +D:800367D5 .byte 0, 0, 0x14 +D:800367D8 .word 0x32, 0 +D:800367E0 .word 0x14, 0x32, 0 +D:800367EC .byte 0 +D:800367ED .byte 0, 0, 0x14 +D:800367F0 .word 0x32 +*/ +//D:800367F4 +extern s32 D_800367F4; +//D:800367F8 +extern s32 D_800367F8; +//D:800367FC +extern s32 D_800367FC; +//D:80036800 +extern s32 D_80036800; +//D:80036804 +extern s32 D_80036804; +//D:80036808 +extern s32 D_80036808; +//D:8003680C +extern s32 D_8003680C; +//D:80036810 +extern s32 D_80036810; +//D:80036814 +extern s32 D_80036814; +//D:80036818 +extern s32 D_80036818; +//D:8003681C +extern s32 D_8003681C; +//D:80036820 +extern s32 D_80036820; +//D:80036824 +extern s32 D_80036824; +//D:80036828 +extern s32 D_80036828; +//D:8003682C +extern s32 D_8003682C; +//D:80036830 +extern s32 D_80036830; +//D:80036834 +extern s32 D_80036834; +//D:80036838 +extern s32 D_80036838; +//D:8003683C +extern s32 D_8003683C[]; +//D:80036878 +extern s32 D_80036878; +//D:8003687C +extern s32 D_8003687C; +//D:80036880 +extern s32 D_80036880; +//D:80036884 +extern s32 D_80036884; +//D:80036888 +extern s32 D_80036888; +//D:8003688C +extern s32 D_8003688C; +//D:80036890 +extern s32 D_80036890; +//D:80036894 +extern s32 D_80036894; +//D:80036898 +extern s32 status_bar_text_buffer_index; +//D:8003689C +extern s32 display_statusbar; +//D:800368A0 +extern s32 copy_1stfonttable; +//D:800368A4 +extern s32 copy_2ndfonttable; +//D:800368A8 +extern s32 upper_text_buffer_index; +//D:800368AC +extern s32 display_upper_text_window; +//D:800368B0 +extern s32 upper_text_window_timer; +extern s32 D_800368B4; +//D:800368B8 +extern u16 D_800368B8[]; +/* +D:800368D8 firing_animation_groups:firing_anim_struct +D:800368D8 # DATA XREF: sub_CODE_7F08B0F0+720o +D:800368EC firing_anim_struct +D:80036900 firing_anim_struct +D:80036914 firing_anim_struct +D:80036928 firing_anim_struct +D:8003693C firing_anim_struct +D:80036950 firing_anim_struct +D:80036964 firing_anim_struct +D:80036978 firing_anim_struct +D:8003698C firing_anim_struct +D:800369A0 firing_anim_struct +D:800369B4 firing_anim_struct +D:800369C8 firing_anim_struct <0, 0x8194, 0.25, 0.0, -1.0> +D:800369DC firing_anim_struct <0, 0x8204, 0.5, 0.0, -1.0> +D:800369F0 firing_anim_struct <0, 0x777C, 0.5, 0.0, -1.0> +D:80036A04 firing_anim_struct +D:80036A18 firing_anim_struct +D:80036A2C firing_anim_struct <0, 0x6C18, 0.050000001, 28.0, 29.0> +D:80036A40 firing_anim_struct +D:80036A54 firing_anim_struct +D:80036A68 firing_anim_struct +D:80036A7C firing_anim_struct +D:80036A90 firing_anim_struct +D:80036AA4 firing_anim_struct +*/ +//D:80036AB8 +extern s32 D_80036AB8; +//D:80036ABC +extern s32 D_80036ABC; +//D:80036AC0 +extern f32 D_80036AC0; +//D:80036AC4 +extern f32 D_80036AC4; + + +u32 get_camera_mode(void); + +void sub_GAME_7F07E46C(f32 param); + +void trigger_watch_zoom(f32 final, f32 time); + +#endif diff --git a/src/game/bondinv.c b/src/game/bondinv.c new file mode 100644 index 0000000..989c045 --- /dev/null +++ b/src/game/bondinv.c @@ -0,0 +1,3254 @@ +#include "ultra64.h" +#include "game/bond.h" +#include "game/chr.h" +#include "game/unk_093880.h" +#include "game/textrelated.h" +#include "bondconstants.h" +#include "game/lvl_text.h" +#include "game/bondinv.h" +#include "game/bondwalk.h" +#include "bondtypes.h" + +void reinit_BONDdata_inventory(void) { + + s32 i; + + for (i=0; i < pPlayer->equipmaxitems; i++) { + + pPlayer->p_itemcur[i].type = -1; + + } + + pPlayer->ptr_inventory_first_in_cycle = NULL; + pPlayer->textoverrides = NULL; + pPlayer->equipcuritem = 0; +} + +#ifdef NONMATCHING +void sub_GAME_7F08C054(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08C054 +/* 0C0B84 7F08C054 27BDFFF8 */ addiu $sp, $sp, -8 +/* 0C0B88 7F08C058 AFB00004 */ sw $s0, 4($sp) +/* 0C0B8C 7F08C05C 8C850000 */ lw $a1, ($a0) +/* 0C0B90 7F08C060 240B0001 */ li $t3, 1 +/* 0C0B94 7F08C064 2402FFFF */ li $v0, -1 +/* 0C0B98 7F08C068 15650005 */ bne $t3, $a1, .L7F08C080 +/* 0C0B9C 7F08C06C 2403FFFF */ li $v1, -1 +/* 0C0BA0 7F08C070 8C820004 */ lw $v0, 4($a0) +/* 0C0BA4 7F08C074 24100002 */ li $s0, 2 +/* 0C0BA8 7F08C078 1000000B */ b .L7F08C0A8 +/* 0C0BAC 7F08C07C 240D0003 */ li $t5, 3 +.L7F08C080: +/* 0C0BB0 7F08C080 240D0003 */ li $t5, 3 +/* 0C0BB4 7F08C084 15A50005 */ bne $t5, $a1, .L7F08C09C +/* 0C0BB8 7F08C088 24100002 */ li $s0, 2 +/* 0C0BBC 7F08C08C 8C820004 */ lw $v0, 4($a0) +/* 0C0BC0 7F08C090 8C830008 */ lw $v1, 8($a0) +/* 0C0BC4 7F08C094 10000004 */ b .L7F08C0A8 +/* 0C0BC8 7F08C098 24100002 */ li $s0, 2 +.L7F08C09C: +/* 0C0BCC 7F08C09C 16050002 */ bne $s0, $a1, .L7F08C0A8 +/* 0C0BD0 7F08C0A0 00000000 */ nop +/* 0C0BD4 7F08C0A4 240207D0 */ li $v0, 2000 +.L7F08C0A8: +/* 0C0BD8 7F08C0A8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0C0BDC 7F08C0AC 258CA0B0 */ addiu $t4, %lo(pPlayer) # addiu $t4, $t4, -0x5f50 +/* 0C0BE0 7F08C0B0 8D870000 */ lw $a3, ($t4) +/* 0C0BE4 7F08C0B4 8C86000C */ lw $a2, 0xc($a0) +/* 0C0BE8 7F08C0B8 8CEE11E0 */ lw $t6, 0x11e0($a3) +/* 0C0BEC 7F08C0BC 00C02825 */ move $a1, $a2 +/* 0C0BF0 7F08C0C0 50CE0032 */ beql $a2, $t6, .L7F08C18C +/* 0C0BF4 7F08C0C4 8FB00004 */ lw $s0, 4($sp) +.L7F08C0C8: +/* 0C0BF8 7F08C0C8 8CCA0000 */ lw $t2, ($a2) +/* 0C0BFC 7F08C0CC 2408FFFF */ li $t0, -1 +/* 0C0C00 7F08C0D0 2409FFFF */ li $t1, -1 +/* 0C0C04 7F08C0D4 156A0003 */ bne $t3, $t2, .L7F08C0E4 +/* 0C0C08 7F08C0D8 00000000 */ nop +/* 0C0C0C 7F08C0DC 10000009 */ b .L7F08C104 +/* 0C0C10 7F08C0E0 8CC80004 */ lw $t0, 4($a2) +.L7F08C0E4: +/* 0C0C14 7F08C0E4 15AA0004 */ bne $t5, $t2, .L7F08C0F8 +/* 0C0C18 7F08C0E8 00000000 */ nop +/* 0C0C1C 7F08C0EC 8CC80004 */ lw $t0, 4($a2) +/* 0C0C20 7F08C0F0 10000004 */ b .L7F08C104 +/* 0C0C24 7F08C0F4 8CC90008 */ lw $t1, 8($a2) +.L7F08C0F8: +/* 0C0C28 7F08C0F8 560A0003 */ bnel $s0, $t2, .L7F08C108 +/* 0C0C2C 7F08C0FC 0102082A */ slt $at, $t0, $v0 +/* 0C0C30 7F08C100 240803E8 */ li $t0, 1000 +.L7F08C104: +/* 0C0C34 7F08C104 0102082A */ slt $at, $t0, $v0 +.L7F08C108: +/* 0C0C38 7F08C108 54200006 */ bnezl $at, .L7F08C124 +/* 0C0C3C 7F08C10C 8CA6000C */ lw $a2, 0xc($a1) +/* 0C0C40 7F08C110 1448001D */ bne $v0, $t0, .L7F08C188 +/* 0C0C44 7F08C114 0123082A */ slt $at, $t1, $v1 +/* 0C0C48 7F08C118 5020001C */ beql $at, $zero, .L7F08C18C +/* 0C0C4C 7F08C11C 8FB00004 */ lw $s0, 4($sp) +/* 0C0C50 7F08C120 8CA6000C */ lw $a2, 0xc($a1) +.L7F08C124: +/* 0C0C54 7F08C124 54860006 */ bnel $a0, $a2, .L7F08C140 +/* 0C0C58 7F08C128 8C8F0010 */ lw $t7, 0x10($a0) +/* 0C0C5C 7F08C12C ACE511E0 */ sw $a1, 0x11e0($a3) +/* 0C0C60 7F08C130 8D870000 */ lw $a3, ($t4) +/* 0C0C64 7F08C134 10000011 */ b .L7F08C17C +/* 0C0C68 7F08C138 8CE811E0 */ lw $t0, 0x11e0($a3) +/* 0C0C6C 7F08C13C 8C8F0010 */ lw $t7, 0x10($a0) +.L7F08C140: +/* 0C0C70 7F08C140 AC86000C */ sw $a2, 0xc($a0) +/* 0C0C74 7F08C144 ACAF0010 */ sw $t7, 0x10($a1) +/* 0C0C78 7F08C148 AC850010 */ sw $a1, 0x10($a0) +/* 0C0C7C 7F08C14C ACA4000C */ sw $a0, 0xc($a1) +/* 0C0C80 7F08C150 8C98000C */ lw $t8, 0xc($a0) +/* 0C0C84 7F08C154 AF040010 */ sw $a0, 0x10($t8) +/* 0C0C88 7F08C158 8CB90010 */ lw $t9, 0x10($a1) +/* 0C0C8C 7F08C15C AF25000C */ sw $a1, 0xc($t9) +/* 0C0C90 7F08C160 8D870000 */ lw $a3, ($t4) +/* 0C0C94 7F08C164 8CE811E0 */ lw $t0, 0x11e0($a3) +/* 0C0C98 7F08C168 54880005 */ bnel $a0, $t0, .L7F08C180 +/* 0C0C9C 7F08C16C 8C86000C */ lw $a2, 0xc($a0) +/* 0C0CA0 7F08C170 ACE511E0 */ sw $a1, 0x11e0($a3) +/* 0C0CA4 7F08C174 8D870000 */ lw $a3, ($t4) +/* 0C0CA8 7F08C178 8CE811E0 */ lw $t0, 0x11e0($a3) +.L7F08C17C: +/* 0C0CAC 7F08C17C 8C86000C */ lw $a2, 0xc($a0) +.L7F08C180: +/* 0C0CB0 7F08C180 14C8FFD1 */ bne $a2, $t0, .L7F08C0C8 +/* 0C0CB4 7F08C184 00C02825 */ move $a1, $a2 +.L7F08C188: +/* 0C0CB8 7F08C188 8FB00004 */ lw $s0, 4($sp) +.L7F08C18C: +/* 0C0CBC 7F08C18C 03E00008 */ jr $ra +/* 0C0CC0 7F08C190 27BD0008 */ addiu $sp, $sp, 8 +) +#endif + + +void add_additional_weapon_slot_to_player_inventory_guess(InvItem *item) { + + if (pPlayer->ptr_inventory_first_in_cycle) { + + item->next = pPlayer->ptr_inventory_first_in_cycle; + item->prev = pPlayer->ptr_inventory_first_in_cycle->prev; + + item->next->prev = item; + item->prev->next = item; + + } + else { + item->next = item; + item->prev = item; + } + + pPlayer->ptr_inventory_first_in_cycle = item; + sub_GAME_7F08C054(item); + return; +} + + +void reorder_inventory_ptrs_based_on_id_code(InvItem *item) { + + InvItem *prev; + InvItem *next; + + next = item->next; + prev = item->prev; + + if (item == pPlayer->ptr_inventory_first_in_cycle) { + + if (item == item->next) { + pPlayer->ptr_inventory_first_in_cycle = NULL; + } + else { + pPlayer->ptr_inventory_first_in_cycle = item->next; + } + } + + next->prev = prev; + prev->next = next; + item->type = -1; + return; +} + +InvItem *get_ptr_next_available_weapon(void) +{ + int i; + + for (i = 0; i < pPlayer->equipmaxitems; i++) { + if (pPlayer->p_itemcur[i].type == -1) { + return &pPlayer->p_itemcur[i]; + } + } + + return NULL; +} + + +void set_BONDdata_allguns_flag(s32 all_guns) { + pPlayer->equipallguns = all_guns; +} + +s32 get_BONDdata_allguns_flag(void) { + return pPlayer->equipallguns; +} + + +InvItem *get_ptr_inventory_item(ITEM_IDS weapon) { + + InvItem *first = pPlayer->ptr_inventory_first_in_cycle; + InvItem *item = first; + + while (item) { + + if (item->type == INV_ITEM_WEAPON && item->type_inv_item.type_weap.weapon == weapon) { + return item; + } + + item = item->next; + + if (item == first) { + break; + } + } + + return NULL; +} + + +/** + * Is item in inventory + * @param item: enum Item ID eg: ITEM_KNIFE + * @return TRUE/FALSE + */ +int is_weapon_in_inv(ITEM_IDS item) +{ + return (get_ptr_inventory_item(item) != 0); +} + + +InvItem *get_ptr_inventory_for_item_in_hand(ITEM_IDS right, ITEM_IDS left) { + + InvItem *first = pPlayer->ptr_inventory_first_in_cycle; + InvItem *item = first; + + while (item) { + + if (item->type == INV_ITEM_DUAL && item->type_inv_item.type_dual.weapon_right == right && item->type_inv_item.type_dual.weapon_left == left) { + return item; + } + + item = item->next; + + if (item == first) { + break; + } + } + + return NULL; +} + + +/** + * Is item for hand in inventory + * @param item: enum Item ID eg: ITEM_KNIFE + * @param hand: enum Hand ID eg: HAND_LEFT + * @return TRUE/FALSE + */ +int is_item_for_hand_in_inventory(ITEM_IDS item, int hand) +{ + return (get_ptr_inventory_for_item_in_hand(item, hand) != 0); +} + +int check_if_item_available(ITEM_IDS weaponid) +{ + + if (((pPlayer->equipallguns) && (weaponid != ITEM_UNARMED) && (weaponid < ITEM_BOMBCASE))) + { +#ifdef VERSION_JP + if ((!j_text_trigger || (weaponid != ITEM_KNIFE))) + { + return 1; + } +#else + return 1; +#endif + } + return is_weapon_in_inv(weaponid); +} + + +//Please make me pretty during cleanup phase +s32 check_if_item_for_hand_available(ITEM_IDS item,int hand) +{ +#ifdef VERSION_US + if (((pPlayer->equipallguns && (item < ITEM_BOMBCASE)) && + (item == hand)) && ((get_num_players() == 1 && + (bondwalkItemCheckBitflags(item,0x100000) != 0)))) + { + return 1; + } + return is_item_for_hand_in_inventory(item,hand); +#endif +#ifdef VERSION_JP + if (hand == 0) + { + return 1; + } + else + { + if ((((pPlayer->equipallguns != 0) && (item < ITEM_BOMBCASE)) && + (item == hand)) && (((get_num_players() == 1 && + (bondwalkItemCheckBitflags(item,0x100000) != 0)) && + ((j_text_trigger == 0 || (item != ITEM_KNIFE)))))) + { + return 1; + } + } + return is_item_for_hand_in_inventory(item,hand); +#endif +} + + + +int add_item_to_inventory(ITEM_IDS item) +{ + InvItem *nextItem; + + if (is_weapon_in_inv(item) == 0) + { + nextItem = get_ptr_next_available_weapon(); + if (nextItem) + { + nextItem->type = INV_ITEM_WEAPON; + nextItem->type_inv_item.type_weap.weapon = item; + add_additional_weapon_slot_to_player_inventory_guess(nextItem); + } + + if ((pPlayer->equipallguns) && (item < ITEM_BOMBCASE)) + { +#ifdef VERSION_JP + if ((!j_text_trigger || (item != ITEM_KNIFE))) + { + return FALSE; + } +#else + return FALSE; +#endif + } + return TRUE; + } + return FALSE; +} + + +int add_doubles_item_to_inventory(int right, int left) +{ + InvItem *item; + + if (is_item_for_hand_in_inventory(right, left) == 0) { + + item = get_ptr_next_available_weapon(); + + if (item) { + item->type = INV_ITEM_DUAL; + + item->type_inv_item.type_dual.weapon_right = right; + item->type_inv_item.type_dual.weapon_left = left; + add_additional_weapon_slot_to_player_inventory_guess(item); + } + + return TRUE; + } else { + return FALSE; + } +} + + +#ifdef NONMATCHING +void sub_GAME_7F08C570(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08C570 +/* 0C10A0 7F08C570 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0C10A4 7F08C574 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0C10A8 7F08C578 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0C10AC 7F08C57C AFBF001C */ sw $ra, 0x1c($sp) +/* 0C10B0 7F08C580 AFB00018 */ sw $s0, 0x18($sp) +/* 0C10B4 7F08C584 8DC611E0 */ lw $a2, 0x11e0($t6) +/* 0C10B8 7F08C588 00808025 */ move $s0, $a0 +/* 0C10BC 7F08C58C 240A0008 */ li $t2, 8 +/* 0C10C0 7F08C590 10C0001C */ beqz $a2, .L7F08C604 +/* 0C10C4 7F08C594 24090004 */ li $t1, 4 +/* 0C10C8 7F08C598 8CC4000C */ lw $a0, 0xc($a2) +/* 0C10CC 7F08C59C 24080002 */ li $t0, 2 +.L7F08C5A0: +/* 0C10D0 7F08C5A0 8C8F0000 */ lw $t7, ($a0) +/* 0C10D4 7F08C5A4 8C87000C */ lw $a3, 0xc($a0) +/* 0C10D8 7F08C5A8 150F0010 */ bne $t0, $t7, .L7F08C5EC +/* 0C10DC 7F08C5AC 00000000 */ nop +/* 0C10E0 7F08C5B0 8C830004 */ lw $v1, 4($a0) +/* 0C10E4 7F08C5B4 90780000 */ lbu $t8, ($v1) +/* 0C10E8 7F08C5B8 1538000C */ bne $t1, $t8, .L7F08C5EC +/* 0C10EC 7F08C5BC 00000000 */ nop +/* 0C10F0 7F08C5C0 8C650004 */ lw $a1, 4($v1) +/* 0C10F4 7F08C5C4 90B90003 */ lbu $t9, 3($a1) +/* 0C10F8 7F08C5C8 15590008 */ bne $t2, $t9, .L7F08C5EC +/* 0C10FC 7F08C5CC 00000000 */ nop +/* 0C1100 7F08C5D0 80AB0080 */ lb $t3, 0x80($a1) +/* 0C1104 7F08C5D4 160B0005 */ bne $s0, $t3, .L7F08C5EC +/* 0C1108 7F08C5D8 00000000 */ nop +/* 0C110C 7F08C5DC 0FC2307F */ jal reorder_inventory_ptrs_based_on_id_code +/* 0C1110 7F08C5E0 AFA50024 */ sw $a1, 0x24($sp) +/* 0C1114 7F08C5E4 10000008 */ b .L7F08C608 +/* 0C1118 7F08C5E8 8FA20024 */ lw $v0, 0x24($sp) +.L7F08C5EC: +/* 0C111C 7F08C5EC 50860006 */ beql $a0, $a2, .L7F08C608 +/* 0C1120 7F08C5F0 00001025 */ move $v0, $zero +/* 0C1124 7F08C5F4 50C00004 */ beql $a2, $zero, .L7F08C608 +/* 0C1128 7F08C5F8 00001025 */ move $v0, $zero +/* 0C112C 7F08C5FC 1000FFE8 */ b .L7F08C5A0 +/* 0C1130 7F08C600 00E02025 */ move $a0, $a3 +.L7F08C604: +/* 0C1134 7F08C604 00001025 */ move $v0, $zero +.L7F08C608: +/* 0C1138 7F08C608 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C113C 7F08C60C 8FB00018 */ lw $s0, 0x18($sp) +/* 0C1140 7F08C610 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0C1144 7F08C614 03E00008 */ jr $ra +/* 0C1148 7F08C618 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08C61C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08C61C +/* 0C114C 7F08C61C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0C1150 7F08C620 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0C1154 7F08C624 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0C1158 7F08C628 AFBF0034 */ sw $ra, 0x34($sp) +/* 0C115C 7F08C62C AFB60030 */ sw $s6, 0x30($sp) +/* 0C1160 7F08C630 AFB5002C */ sw $s5, 0x2c($sp) +/* 0C1164 7F08C634 AFB40028 */ sw $s4, 0x28($sp) +/* 0C1168 7F08C638 AFB30024 */ sw $s3, 0x24($sp) +/* 0C116C 7F08C63C AFB20020 */ sw $s2, 0x20($sp) +/* 0C1170 7F08C640 AFB1001C */ sw $s1, 0x1c($sp) +/* 0C1174 7F08C644 AFB00018 */ sw $s0, 0x18($sp) +/* 0C1178 7F08C648 8DC511E0 */ lw $a1, 0x11e0($t6) +/* 0C117C 7F08C64C 00809025 */ move $s2, $a0 +/* 0C1180 7F08C650 24150008 */ li $s5, 8 +/* 0C1184 7F08C654 10A00029 */ beqz $a1, .L7F08C6FC +/* 0C1188 7F08C658 24160001 */ li $s6, 1 +/* 0C118C 7F08C65C 8CB0000C */ lw $s0, 0xc($a1) +/* 0C1190 7F08C660 24140004 */ li $s4, 4 +/* 0C1194 7F08C664 24130002 */ li $s3, 2 +.L7F08C668: +/* 0C1198 7F08C668 8E020000 */ lw $v0, ($s0) +/* 0C119C 7F08C66C 8E11000C */ lw $s1, 0xc($s0) +/* 0C11A0 7F08C670 16620012 */ bne $s3, $v0, .L7F08C6BC +/* 0C11A4 7F08C674 00000000 */ nop +/* 0C11A8 7F08C678 8E030004 */ lw $v1, 4($s0) +/* 0C11AC 7F08C67C 906F0000 */ lbu $t7, ($v1) +/* 0C11B0 7F08C680 168F0018 */ bne $s4, $t7, .L7F08C6E4 +/* 0C11B4 7F08C684 00000000 */ nop +/* 0C11B8 7F08C688 8C640004 */ lw $a0, 4($v1) +/* 0C11BC 7F08C68C 90980003 */ lbu $t8, 3($a0) +/* 0C11C0 7F08C690 16B80014 */ bne $s5, $t8, .L7F08C6E4 +/* 0C11C4 7F08C694 00000000 */ nop +/* 0C11C8 7F08C698 80990080 */ lb $t9, 0x80($a0) +/* 0C11CC 7F08C69C 16590011 */ bne $s2, $t9, .L7F08C6E4 +/* 0C11D0 7F08C6A0 00000000 */ nop +/* 0C11D4 7F08C6A4 0FC2307F */ jal reorder_inventory_ptrs_based_on_id_code +/* 0C11D8 7F08C6A8 02002025 */ move $a0, $s0 +/* 0C11DC 7F08C6AC 3C088008 */ lui $t0, %hi(pPlayer) +/* 0C11E0 7F08C6B0 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0C11E4 7F08C6B4 1000000B */ b .L7F08C6E4 +/* 0C11E8 7F08C6B8 8D0511E0 */ lw $a1, 0x11e0($t0) +.L7F08C6BC: +/* 0C11EC 7F08C6BC 16C20009 */ bne $s6, $v0, .L7F08C6E4 +/* 0C11F0 7F08C6C0 00000000 */ nop +/* 0C11F4 7F08C6C4 8E090004 */ lw $t1, 4($s0) +/* 0C11F8 7F08C6C8 16490006 */ bne $s2, $t1, .L7F08C6E4 +/* 0C11FC 7F08C6CC 00000000 */ nop +/* 0C1200 7F08C6D0 0FC2307F */ jal reorder_inventory_ptrs_based_on_id_code +/* 0C1204 7F08C6D4 02002025 */ move $a0, $s0 +/* 0C1208 7F08C6D8 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0C120C 7F08C6DC 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0C1210 7F08C6E0 8D4511E0 */ lw $a1, 0x11e0($t2) +.L7F08C6E4: +/* 0C1214 7F08C6E4 52050006 */ beql $s0, $a1, .L7F08C700 +/* 0C1218 7F08C6E8 8FBF0034 */ lw $ra, 0x34($sp) +/* 0C121C 7F08C6EC 50A00004 */ beql $a1, $zero, .L7F08C700 +/* 0C1220 7F08C6F0 8FBF0034 */ lw $ra, 0x34($sp) +/* 0C1224 7F08C6F4 1000FFDC */ b .L7F08C668 +/* 0C1228 7F08C6F8 02208025 */ move $s0, $s1 +.L7F08C6FC: +/* 0C122C 7F08C6FC 8FBF0034 */ lw $ra, 0x34($sp) +.L7F08C700: +/* 0C1230 7F08C700 8FB00018 */ lw $s0, 0x18($sp) +/* 0C1234 7F08C704 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C1238 7F08C708 8FB20020 */ lw $s2, 0x20($sp) +/* 0C123C 7F08C70C 8FB30024 */ lw $s3, 0x24($sp) +/* 0C1240 7F08C710 8FB40028 */ lw $s4, 0x28($sp) +/* 0C1244 7F08C714 8FB5002C */ lw $s5, 0x2c($sp) +/* 0C1248 7F08C718 8FB60030 */ lw $s6, 0x30($sp) +/* 0C124C 7F08C71C 03E00008 */ jr $ra +/* 0C1250 7F08C720 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + +int add_prop_to_inventory(PropRecord *prop) { + + InvItem *item; + + item = get_ptr_next_available_weapon(); + + if (item) { + item->type = INV_ITEM_PROP; + item->type_inv_item.type_prop.prop = prop; + add_additional_weapon_slot_to_player_inventory_guess(item); + } + + return TRUE; +} + + +#ifdef NONMATCHING +void sub_GAME_7F08C764(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08C764 +/* 0C1294 7F08C764 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C1298 7F08C768 AFBF001C */ sw $ra, 0x1c($sp) +/* 0C129C 7F08C76C AFB00018 */ sw $s0, 0x18($sp) +/* 0C12A0 7F08C770 908E0000 */ lbu $t6, ($a0) +/* 0C12A4 7F08C774 24010004 */ li $at, 4 +/* 0C12A8 7F08C778 00002825 */ move $a1, $zero +/* 0C12AC 7F08C77C 55C10037 */ bnel $t6, $at, .L7F08C85C +/* 0C12B0 7F08C780 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C12B4 7F08C784 8C860004 */ lw $a2, 4($a0) +/* 0C12B8 7F08C788 24010008 */ li $at, 8 +/* 0C12BC 7F08C78C 90CF0003 */ lbu $t7, 3($a2) +/* 0C12C0 7F08C790 55E10032 */ bnel $t7, $at, .L7F08C85C +/* 0C12C4 7F08C794 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C12C8 7F08C798 80D00080 */ lb $s0, 0x80($a2) +/* 0C12CC 7F08C79C AFA60024 */ sw $a2, 0x24($sp) +/* 0C12D0 7F08C7A0 0FC23122 */ jal add_item_to_inventory +/* 0C12D4 7F08C7A4 02002025 */ move $a0, $s0 +/* 0C12D8 7F08C7A8 8FA30024 */ lw $v1, 0x24($sp) +/* 0C12DC 7F08C7AC 00402825 */ move $a1, $v0 +/* 0C12E0 7F08C7B0 8C660084 */ lw $a2, 0x84($v1) +/* 0C12E4 7F08C7B4 50C00019 */ beql $a2, $zero, .L7F08C81C +/* 0C12E8 7F08C7B8 80660081 */ lb $a2, 0x81($v1) +/* 0C12EC 7F08C7BC 8C780008 */ lw $t8, 8($v1) +/* 0C12F0 7F08C7C0 02002825 */ move $a1, $s0 +/* 0C12F4 7F08C7C4 02002025 */ move $a0, $s0 +/* 0C12F8 7F08C7C8 0018C8C0 */ sll $t9, $t8, 3 +/* 0C12FC 7F08C7CC 07230008 */ bgezl $t9, .L7F08C7F0 +/* 0C1300 7F08C7D0 80C50080 */ lb $a1, 0x80($a2) +/* 0C1304 7F08C7D4 80C40080 */ lb $a0, 0x80($a2) +/* 0C1308 7F08C7D8 0FC230E7 */ jal is_item_for_hand_in_inventory +/* 0C130C 7F08C7DC AFA30024 */ sw $v1, 0x24($sp) +/* 0C1310 7F08C7E0 8FA30024 */ lw $v1, 0x24($sp) +/* 0C1314 7F08C7E4 10000006 */ b .L7F08C800 +/* 0C1318 7F08C7E8 2C450001 */ sltiu $a1, $v0, 1 +/* 0C131C 7F08C7EC 80C50080 */ lb $a1, 0x80($a2) +.L7F08C7F0: +/* 0C1320 7F08C7F0 0FC230E7 */ jal is_item_for_hand_in_inventory +/* 0C1324 7F08C7F4 AFA30024 */ sw $v1, 0x24($sp) +/* 0C1328 7F08C7F8 8FA30024 */ lw $v1, 0x24($sp) +/* 0C132C 7F08C7FC 2C450001 */ sltiu $a1, $v0, 1 +.L7F08C800: +/* 0C1330 7F08C800 8C680084 */ lw $t0, 0x84($v1) +/* 0C1334 7F08C804 A1100081 */ sb $s0, 0x81($t0) +/* 0C1338 7F08C808 8C690084 */ lw $t1, 0x84($v1) +/* 0C133C 7F08C80C AD200084 */ sw $zero, 0x84($t1) +/* 0C1340 7F08C810 10000011 */ b .L7F08C858 +/* 0C1344 7F08C814 AC600084 */ sw $zero, 0x84($v1) +/* 0C1348 7F08C818 80660081 */ lb $a2, 0x81($v1) +.L7F08C81C: +/* 0C134C 7F08C81C 04C2000F */ bltzl $a2, .L7F08C85C +/* 0C1350 7F08C820 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C1354 7F08C824 8C6A0008 */ lw $t2, 8($v1) +/* 0C1358 7F08C828 02002825 */ move $a1, $s0 +/* 0C135C 7F08C82C 02002025 */ move $a0, $s0 +/* 0C1360 7F08C830 000A58C0 */ sll $t3, $t2, 3 +/* 0C1364 7F08C834 05610005 */ bgez $t3, .L7F08C84C +/* 0C1368 7F08C838 00000000 */ nop +/* 0C136C 7F08C83C 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C1370 7F08C840 00C02025 */ move $a0, $a2 +/* 0C1374 7F08C844 10000004 */ b .L7F08C858 +/* 0C1378 7F08C848 00402825 */ move $a1, $v0 +.L7F08C84C: +/* 0C137C 7F08C84C 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C1380 7F08C850 00C02825 */ move $a1, $a2 +/* 0C1384 7F08C854 00402825 */ move $a1, $v0 +.L7F08C858: +/* 0C1388 7F08C858 8FBF001C */ lw $ra, 0x1c($sp) +.L7F08C85C: +/* 0C138C 7F08C85C 8FB00018 */ lw $s0, 0x18($sp) +/* 0C1390 7F08C860 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0C1394 7F08C864 03E00008 */ jr $ra +/* 0C1398 7F08C868 00A01025 */ move $v0, $a1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08C86C(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F08C86C +/* 0C139C 7F08C86C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C13A0 7F08C870 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C13A4 7F08C874 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C13A8 7F08C878 AFBF0024 */ sw $ra, 0x24($sp) +/* 0C13AC 7F08C87C AFB30020 */ sw $s3, 0x20($sp) +/* 0C13B0 7F08C880 AFB2001C */ sw $s2, 0x1c($sp) +/* 0C13B4 7F08C884 AFB10018 */ sw $s1, 0x18($sp) +/* 0C13B8 7F08C888 AFB00014 */ sw $s0, 0x14($sp) +/* 0C13BC 7F08C88C AFA40028 */ sw $a0, 0x28($sp) +/* 0C13C0 7F08C890 AFA5002C */ sw $a1, 0x2c($sp) +/* 0C13C4 7F08C894 8C7011E0 */ lw $s0, 0x11e0($v1) +/* 0C13C8 7F08C898 00C09025 */ move $s2, $a2 +/* 0C13CC 7F08C89C 8C910000 */ lw $s1, ($a0) +/* 0C13D0 7F08C8A0 1200003D */ beqz $s0, .L7F08C998 +/* 0C13D4 7F08C8A4 8CB30000 */ lw $s3, ($a1) +/* 0C13D8 7F08C8A8 8E020000 */ lw $v0, ($s0) +.L7F08C8AC: +/* 0C13DC 7F08C8AC 24010001 */ li $at, 1 +/* 0C13E0 7F08C8B0 54410013 */ bnel $v0, $at, .L7F08C900 +/* 0C13E4 7F08C8B4 24010003 */ li $at, 3 +/* 0C13E8 7F08C8B8 8E040004 */ lw $a0, 4($s0) +/* 0C13EC 7F08C8BC 28810021 */ slti $at, $a0, 0x21 +/* 0C13F0 7F08C8C0 10200029 */ beqz $at, .L7F08C968 +/* 0C13F4 7F08C8C4 0224082A */ slt $at, $s1, $a0 +/* 0C13F8 7F08C8C8 10200027 */ beqz $at, .L7F08C968 +/* 0C13FC 7F08C8CC 00000000 */ nop +/* 0C1400 7F08C8D0 52400008 */ beql $s2, $zero, .L7F08C8F4 +/* 0C1404 7F08C8D4 00808825 */ move $s1, $a0 +/* 0C1408 7F08C8D8 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C140C 7F08C8DC 00000000 */ nop +/* 0C1410 7F08C8E0 10400021 */ beqz $v0, .L7F08C968 +/* 0C1414 7F08C8E4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C1418 7F08C8E8 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C141C 7F08C8EC 8E040004 */ lw $a0, 4($s0) +/* 0C1420 7F08C8F0 00808825 */ move $s1, $a0 +.L7F08C8F4: +/* 0C1424 7F08C8F4 10000028 */ b .L7F08C998 +/* 0C1428 7F08C8F8 00009825 */ move $s3, $zero +/* 0C142C 7F08C8FC 24010003 */ li $at, 3 +.L7F08C900: +/* 0C1430 7F08C900 14410019 */ bne $v0, $at, .L7F08C968 +/* 0C1434 7F08C904 00000000 */ nop +/* 0C1438 7F08C908 8E040004 */ lw $a0, 4($s0) +/* 0C143C 7F08C90C 0224082A */ slt $at, $s1, $a0 +/* 0C1440 7F08C910 14200007 */ bnez $at, .L7F08C930 +/* 0C1444 7F08C914 00000000 */ nop +/* 0C1448 7F08C918 16240013 */ bne $s1, $a0, .L7F08C968 +/* 0C144C 7F08C91C 00000000 */ nop +/* 0C1450 7F08C920 8E180008 */ lw $t8, 8($s0) +/* 0C1454 7F08C924 0278082A */ slt $at, $s3, $t8 +/* 0C1458 7F08C928 1020000F */ beqz $at, .L7F08C968 +/* 0C145C 7F08C92C 00000000 */ nop +.L7F08C930: +/* 0C1460 7F08C930 12400008 */ beqz $s2, .L7F08C954 +/* 0C1464 7F08C934 00000000 */ nop +/* 0C1468 7F08C938 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C146C 7F08C93C 00000000 */ nop +/* 0C1470 7F08C940 14400004 */ bnez $v0, .L7F08C954 +/* 0C1474 7F08C944 00000000 */ nop +/* 0C1478 7F08C948 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C147C 7F08C94C 8E040008 */ lw $a0, 8($s0) +/* 0C1480 7F08C950 10400005 */ beqz $v0, .L7F08C968 +.L7F08C954: +/* 0C1484 7F08C954 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C1488 7F08C958 8E110004 */ lw $s1, 4($s0) +/* 0C148C 7F08C95C 8E130008 */ lw $s3, 8($s0) +/* 0C1490 7F08C960 1000000D */ b .L7F08C998 +/* 0C1494 7F08C964 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F08C968: +/* 0C1498 7F08C968 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C149C 7F08C96C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C14A0 7F08C970 8E10000C */ lw $s0, 0xc($s0) +/* 0C14A4 7F08C974 8C7911E0 */ lw $t9, 0x11e0($v1) +/* 0C14A8 7F08C978 16190005 */ bne $s0, $t9, .L7F08C990 +/* 0C14AC 7F08C97C 00000000 */ nop +/* 0C14B0 7F08C980 56400006 */ bnezl $s2, .L7F08C99C +/* 0C14B4 7F08C984 8C6811EC */ lw $t0, 0x11ec($v1) +/* 0C14B8 7F08C988 2411FFFF */ li $s1, -1 +/* 0C14BC 7F08C98C 2413FFFF */ li $s3, -1 +.L7F08C990: +/* 0C14C0 7F08C990 5600FFC6 */ bnezl $s0, .L7F08C8AC +/* 0C14C4 7F08C994 8E020000 */ lw $v0, ($s0) +.L7F08C998: +/* 0C14C8 7F08C998 8C6811EC */ lw $t0, 0x11ec($v1) +.L7F08C99C: +/* 0C14CC 7F08C99C 8FA90028 */ lw $t1, 0x28($sp) +/* 0C14D0 7F08C9A0 51000051 */ beql $t0, $zero, .L7F08CAE8 +/* 0C14D4 7F08C9A4 8FAB0028 */ lw $t3, 0x28($sp) +/* 0C14D8 7F08C9A8 0FC26919 */ jal get_num_players +/* 0C14DC 7F08C9AC 8D300000 */ lw $s0, ($t1) +/* 0C14E0 7F08C9B0 24010001 */ li $at, 1 +/* 0C14E4 7F08C9B4 5441001E */ bnel $v0, $at, .L7F08CA30 +/* 0C14E8 7F08C9B8 8FAF0028 */ lw $t7, 0x28($sp) +/* 0C14EC 7F08C9BC 8FAA0028 */ lw $t2, 0x28($sp) +/* 0C14F0 7F08C9C0 3C050010 */ lui $a1, 0x10 +/* 0C14F4 7F08C9C4 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C14F8 7F08C9C8 8D440000 */ lw $a0, ($t2) +/* 0C14FC 7F08C9CC 50400018 */ beql $v0, $zero, .L7F08CA30 +/* 0C1500 7F08C9D0 8FAF0028 */ lw $t7, 0x28($sp) +/* 0C1504 7F08C9D4 8FAB0028 */ lw $t3, 0x28($sp) +/* 0C1508 7F08C9D8 8FAC002C */ lw $t4, 0x2c($sp) +/* 0C150C 7F08C9DC 8D640000 */ lw $a0, ($t3) +/* 0C1510 7F08C9E0 8D8D0000 */ lw $t5, ($t4) +/* 0C1514 7F08C9E4 01A4082A */ slt $at, $t5, $a0 +/* 0C1518 7F08C9E8 50200011 */ beql $at, $zero, .L7F08CA30 +/* 0C151C 7F08C9EC 8FAF0028 */ lw $t7, 0x28($sp) +/* 0C1520 7F08C9F0 12400007 */ beqz $s2, .L7F08CA10 +/* 0C1524 7F08C9F4 00000000 */ nop +/* 0C1528 7F08C9F8 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C152C 7F08C9FC 00000000 */ nop +/* 0C1530 7F08CA00 5040000B */ beql $v0, $zero, .L7F08CA30 +/* 0C1534 7F08CA04 8FAF0028 */ lw $t7, 0x28($sp) +/* 0C1538 7F08CA08 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C153C 7F08CA0C 8DC40000 */ lw $a0, ($t6) +.L7F08CA10: +/* 0C1540 7F08CA10 16240003 */ bne $s1, $a0, .L7F08CA20 +/* 0C1544 7F08CA14 0093082A */ slt $at, $a0, $s3 +/* 0C1548 7F08CA18 50200005 */ beql $at, $zero, .L7F08CA30 +/* 0C154C 7F08CA1C 8FAF0028 */ lw $t7, 0x28($sp) +.L7F08CA20: +/* 0C1550 7F08CA20 00808825 */ move $s1, $a0 +/* 0C1554 7F08CA24 1000002F */ b .L7F08CAE4 +/* 0C1558 7F08CA28 00809825 */ move $s3, $a0 +/* 0C155C 7F08CA2C 8FAF0028 */ lw $t7, 0x28($sp) +.L7F08CA30: +/* 0C1560 7F08CA30 24030021 */ li $v1, 33 +/* 0C1564 7F08CA34 8DF80000 */ lw $t8, ($t7) +/* 0C1568 7F08CA38 16380005 */ bne $s1, $t8, .L7F08CA50 +/* 0C156C 7F08CA3C 00000000 */ nop +/* 0C1570 7F08CA40 8FB9002C */ lw $t9, 0x2c($sp) +/* 0C1574 7F08CA44 8F280000 */ lw $t0, ($t9) +/* 0C1578 7F08CA48 56680027 */ bnel $s3, $t0, .L7F08CAE8 +/* 0C157C 7F08CA4C 8FAB0028 */ lw $t3, 0x28($sp) +.L7F08CA50: +/* 0C1580 7F08CA50 26090001 */ addiu $t1, $s0, 1 +.L7F08CA54: +/* 0C1584 7F08CA54 0123001A */ div $zero, $t1, $v1 +/* 0C1588 7F08CA58 00008010 */ mfhi $s0 +/* 0C158C 7F08CA5C 260A0001 */ addiu $t2, $s0, 1 +/* 0C1590 7F08CA60 14600002 */ bnez $v1, .L7F08CA6C +/* 0C1594 7F08CA64 00000000 */ nop +/* 0C1598 7F08CA68 0007000D */ break 7 +.L7F08CA6C: +/* 0C159C 7F08CA6C 2401FFFF */ li $at, -1 +/* 0C15A0 7F08CA70 14610004 */ bne $v1, $at, .L7F08CA84 +/* 0C15A4 7F08CA74 3C018000 */ lui $at, 0x8000 +/* 0C15A8 7F08CA78 15210002 */ bne $t1, $at, .L7F08CA84 +/* 0C15AC 7F08CA7C 00000000 */ nop +/* 0C15B0 7F08CA80 0006000D */ break 6 +.L7F08CA84: +/* 0C15B4 7F08CA84 1600000C */ bnez $s0, .L7F08CAB8 +/* 0C15B8 7F08CA88 00000000 */ nop +/* 0C15BC 7F08CA8C 0143001A */ div $zero, $t2, $v1 +/* 0C15C0 7F08CA90 00008010 */ mfhi $s0 +/* 0C15C4 7F08CA94 14600002 */ bnez $v1, .L7F08CAA0 +/* 0C15C8 7F08CA98 00000000 */ nop +/* 0C15CC 7F08CA9C 0007000D */ break 7 +.L7F08CAA0: +/* 0C15D0 7F08CAA0 2401FFFF */ li $at, -1 +/* 0C15D4 7F08CAA4 14610004 */ bne $v1, $at, .L7F08CAB8 +/* 0C15D8 7F08CAA8 3C018000 */ lui $at, 0x8000 +/* 0C15DC 7F08CAAC 15410002 */ bne $t2, $at, .L7F08CAB8 +/* 0C15E0 7F08CAB0 00000000 */ nop +/* 0C15E4 7F08CAB4 0006000D */ break 6 +.L7F08CAB8: +/* 0C15E8 7F08CAB8 52400006 */ beql $s2, $zero, .L7F08CAD4 +/* 0C15EC 7F08CABC 02008825 */ move $s1, $s0 +/* 0C15F0 7F08CAC0 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C15F4 7F08CAC4 02002025 */ move $a0, $s0 +/* 0C15F8 7F08CAC8 10400004 */ beqz $v0, .L7F08CADC +/* 0C15FC 7F08CACC 24030021 */ li $v1, 33 +/* 0C1600 7F08CAD0 02008825 */ move $s1, $s0 +.L7F08CAD4: +/* 0C1604 7F08CAD4 10000003 */ b .L7F08CAE4 +/* 0C1608 7F08CAD8 00009825 */ move $s3, $zero +.L7F08CADC: +/* 0C160C 7F08CADC 5611FFDD */ bnel $s0, $s1, .L7F08CA54 +/* 0C1610 7F08CAE0 26090001 */ addiu $t1, $s0, 1 +.L7F08CAE4: +/* 0C1614 7F08CAE4 8FAB0028 */ lw $t3, 0x28($sp) +.L7F08CAE8: +/* 0C1618 7F08CAE8 AD710000 */ sw $s1, ($t3) +/* 0C161C 7F08CAEC 8FAC002C */ lw $t4, 0x2c($sp) +/* 0C1620 7F08CAF0 AD930000 */ sw $s3, ($t4) +/* 0C1624 7F08CAF4 8FBF0024 */ lw $ra, 0x24($sp) +/* 0C1628 7F08CAF8 8FB30020 */ lw $s3, 0x20($sp) +/* 0C162C 7F08CAFC 8FB2001C */ lw $s2, 0x1c($sp) +/* 0C1630 7F08CB00 8FB10018 */ lw $s1, 0x18($sp) +/* 0C1634 7F08CB04 8FB00014 */ lw $s0, 0x14($sp) +/* 0C1638 7F08CB08 03E00008 */ jr $ra +/* 0C163C 7F08CB0C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F08C86C +/* 0C1CD4 7F08D164 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C1CD8 7F08D168 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0C1CDC 7F08D16C 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0C1CE0 7F08D170 AFBF0024 */ sw $ra, 0x24($sp) +/* 0C1CE4 7F08D174 AFB30020 */ sw $s3, 0x20($sp) +/* 0C1CE8 7F08D178 AFB2001C */ sw $s2, 0x1c($sp) +/* 0C1CEC 7F08D17C AFB10018 */ sw $s1, 0x18($sp) +/* 0C1CF0 7F08D180 AFB00014 */ sw $s0, 0x14($sp) +/* 0C1CF4 7F08D184 AFA40028 */ sw $a0, 0x28($sp) +/* 0C1CF8 7F08D188 AFA5002C */ sw $a1, 0x2c($sp) +/* 0C1CFC 7F08D18C 8C7011E0 */ lw $s0, 0x11e0($v1) +/* 0C1D00 7F08D190 00C09025 */ move $s2, $a2 +/* 0C1D04 7F08D194 8C910000 */ lw $s1, ($a0) +/* 0C1D08 7F08D198 1200003D */ beqz $s0, .Ljp7F08D290 +/* 0C1D0C 7F08D19C 8CB30000 */ lw $s3, ($a1) +/* 0C1D10 7F08D1A0 8E020000 */ lw $v0, ($s0) +.Ljp7F08D1A4: +/* 0C1D14 7F08D1A4 24010001 */ li $at, 1 +/* 0C1D18 7F08D1A8 54410013 */ bnel $v0, $at, .Ljp7F08D1F8 +/* 0C1D1C 7F08D1AC 24010003 */ li $at, 3 +/* 0C1D20 7F08D1B0 8E040004 */ lw $a0, 4($s0) +/* 0C1D24 7F08D1B4 28810021 */ slti $at, $a0, 0x21 +/* 0C1D28 7F08D1B8 10200029 */ beqz $at, .Ljp7F08D260 +/* 0C1D2C 7F08D1BC 0224082A */ slt $at, $s1, $a0 +/* 0C1D30 7F08D1C0 10200027 */ beqz $at, .Ljp7F08D260 +/* 0C1D34 7F08D1C4 00000000 */ nop +/* 0C1D38 7F08D1C8 52400008 */ beql $s2, $zero, .Ljp7F08D1EC +/* 0C1D3C 7F08D1CC 00808825 */ move $s1, $a0 +/* 0C1D40 7F08D1D0 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C1D44 7F08D1D4 00000000 */ nop +/* 0C1D48 7F08D1D8 10400021 */ beqz $v0, .Ljp7F08D260 +/* 0C1D4C 7F08D1DC 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0C1D50 7F08D1E0 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0C1D54 7F08D1E4 8E040004 */ lw $a0, 4($s0) +/* 0C1D58 7F08D1E8 00808825 */ move $s1, $a0 +.Ljp7F08D1EC: +/* 0C1D5C 7F08D1EC 10000028 */ b .Ljp7F08D290 +/* 0C1D60 7F08D1F0 00009825 */ move $s3, $zero +/* 0C1D64 7F08D1F4 24010003 */ li $at, 3 +.Ljp7F08D1F8: +/* 0C1D68 7F08D1F8 14410019 */ bne $v0, $at, .Ljp7F08D260 +/* 0C1D6C 7F08D1FC 00000000 */ nop +/* 0C1D70 7F08D200 8E040004 */ lw $a0, 4($s0) +/* 0C1D74 7F08D204 0224082A */ slt $at, $s1, $a0 +/* 0C1D78 7F08D208 14200007 */ bnez $at, .Ljp7F08D228 +/* 0C1D7C 7F08D20C 00000000 */ nop +/* 0C1D80 7F08D210 16240013 */ bne $s1, $a0, .Ljp7F08D260 +/* 0C1D84 7F08D214 00000000 */ nop +/* 0C1D88 7F08D218 8E180008 */ lw $t8, 8($s0) +/* 0C1D8C 7F08D21C 0278082A */ slt $at, $s3, $t8 +/* 0C1D90 7F08D220 1020000F */ beqz $at, .Ljp7F08D260 +/* 0C1D94 7F08D224 00000000 */ nop +.Ljp7F08D228: +/* 0C1D98 7F08D228 12400008 */ beqz $s2, .Ljp7F08D24C +/* 0C1D9C 7F08D22C 00000000 */ nop +/* 0C1DA0 7F08D230 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C1DA4 7F08D234 00000000 */ nop +/* 0C1DA8 7F08D238 14400004 */ bnez $v0, .Ljp7F08D24C +/* 0C1DAC 7F08D23C 00000000 */ nop +/* 0C1DB0 7F08D240 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C1DB4 7F08D244 8E040008 */ lw $a0, 8($s0) +/* 0C1DB8 7F08D248 10400005 */ beqz $v0, .Ljp7F08D260 +.Ljp7F08D24C: +/* 0C1DBC 7F08D24C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0C1DC0 7F08D250 8E110004 */ lw $s1, 4($s0) +/* 0C1DC4 7F08D254 8E130008 */ lw $s3, 8($s0) +/* 0C1DC8 7F08D258 1000000D */ b .Ljp7F08D290 +/* 0C1DCC 7F08D25C 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +.Ljp7F08D260: +/* 0C1DD0 7F08D260 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0C1DD4 7F08D264 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0C1DD8 7F08D268 8E10000C */ lw $s0, 0xc($s0) +/* 0C1DDC 7F08D26C 8C7911E0 */ lw $t9, 0x11e0($v1) +/* 0C1DE0 7F08D270 16190005 */ bne $s0, $t9, .Ljp7F08D288 +/* 0C1DE4 7F08D274 00000000 */ nop +/* 0C1DE8 7F08D278 56400006 */ bnezl $s2, .Ljp7F08D294 +/* 0C1DEC 7F08D27C 8C6811EC */ lw $t0, 0x11ec($v1) +/* 0C1DF0 7F08D280 2411FFFF */ li $s1, -1 +/* 0C1DF4 7F08D284 2413FFFF */ li $s3, -1 +.Ljp7F08D288: +/* 0C1DF8 7F08D288 5600FFC6 */ bnezl $s0, .Ljp7F08D1A4 +/* 0C1DFC 7F08D28C 8E020000 */ lw $v0, ($s0) +.Ljp7F08D290: +/* 0C1E00 7F08D290 8C6811EC */ lw $t0, 0x11ec($v1) +.Ljp7F08D294: +/* 0C1E04 7F08D294 8FA90028 */ lw $t1, 0x28($sp) +/* 0C1E08 7F08D298 5100005E */ beql $t0, $zero, .Ljp7F08D414 +/* 0C1E0C 7F08D29C 8FAD0028 */ lw $t5, 0x28($sp) +/* 0C1E10 7F08D2A0 0FC26C01 */ jal get_num_players +/* 0C1E14 7F08D2A4 8D300000 */ lw $s0, ($t1) +/* 0C1E18 7F08D2A8 24010001 */ li $at, 1 +/* 0C1E1C 7F08D2AC 14410023 */ bne $v0, $at, .Ljp7F08D33C +/* 0C1E20 7F08D2B0 8FAA0028 */ lw $t2, 0x28($sp) +/* 0C1E24 7F08D2B4 8D440000 */ lw $a0, ($t2) +/* 0C1E28 7F08D2B8 0FC17975 */ jal bondwalkItemCheckBitflags +/* 0C1E2C 7F08D2BC 3C050010 */ lui $a1, 0x10 +/* 0C1E30 7F08D2C0 5040001F */ beql $v0, $zero, .Ljp7F08D340 +/* 0C1E34 7F08D2C4 8FB80028 */ lw $t8, 0x28($sp) +/* 0C1E38 7F08D2C8 8FAB0028 */ lw $t3, 0x28($sp) +/* 0C1E3C 7F08D2CC 8FAC002C */ lw $t4, 0x2c($sp) +/* 0C1E40 7F08D2D0 8D640000 */ lw $a0, ($t3) +/* 0C1E44 7F08D2D4 8D8D0000 */ lw $t5, ($t4) +/* 0C1E48 7F08D2D8 01A4082A */ slt $at, $t5, $a0 +/* 0C1E4C 7F08D2DC 50200018 */ beql $at, $zero, .Ljp7F08D340 +/* 0C1E50 7F08D2E0 8FB80028 */ lw $t8, 0x28($sp) +/* 0C1E54 7F08D2E4 12400007 */ beqz $s2, .Ljp7F08D304 +/* 0C1E58 7F08D2E8 00000000 */ nop +/* 0C1E5C 7F08D2EC 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C1E60 7F08D2F0 00000000 */ nop +/* 0C1E64 7F08D2F4 50400012 */ beql $v0, $zero, .Ljp7F08D340 +/* 0C1E68 7F08D2F8 8FB80028 */ lw $t8, 0x28($sp) +/* 0C1E6C 7F08D2FC 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C1E70 7F08D300 8DC40000 */ lw $a0, ($t6) +.Ljp7F08D304: +/* 0C1E74 7F08D304 16240003 */ bne $s1, $a0, .Ljp7F08D314 +/* 0C1E78 7F08D308 0093082A */ slt $at, $a0, $s3 +/* 0C1E7C 7F08D30C 5020000C */ beql $at, $zero, .Ljp7F08D340 +/* 0C1E80 7F08D310 8FB80028 */ lw $t8, 0x28($sp) +.Ljp7F08D314: +/* 0C1E84 7F08D314 3C0F8005 */ lui $t7, %hi(j_text_trigger) # $t7, 0x8005 +/* 0C1E88 7F08D318 8DEF8500 */ lw $t7, %lo(j_text_trigger)($t7) +/* 0C1E8C 7F08D31C 24010002 */ li $at, 2 +/* 0C1E90 7F08D320 51E00004 */ beql $t7, $zero, .Ljp7F08D334 +/* 0C1E94 7F08D324 00808825 */ move $s1, $a0 +/* 0C1E98 7F08D328 50810005 */ beql $a0, $at, .Ljp7F08D340 +/* 0C1E9C 7F08D32C 8FB80028 */ lw $t8, 0x28($sp) +/* 0C1EA0 7F08D330 00808825 */ move $s1, $a0 +.Ljp7F08D334: +/* 0C1EA4 7F08D334 10000036 */ b .Ljp7F08D410 +/* 0C1EA8 7F08D338 00809825 */ move $s3, $a0 +.Ljp7F08D33C: +/* 0C1EAC 7F08D33C 8FB80028 */ lw $t8, 0x28($sp) +.Ljp7F08D340: +/* 0C1EB0 7F08D340 24030021 */ li $v1, 33 +/* 0C1EB4 7F08D344 8F190000 */ lw $t9, ($t8) +/* 0C1EB8 7F08D348 16390005 */ bne $s1, $t9, .Ljp7F08D360 +/* 0C1EBC 7F08D34C 00000000 */ nop +/* 0C1EC0 7F08D350 8FA8002C */ lw $t0, 0x2c($sp) +/* 0C1EC4 7F08D354 8D090000 */ lw $t1, ($t0) +/* 0C1EC8 7F08D358 5669002E */ bnel $s3, $t1, .Ljp7F08D414 +/* 0C1ECC 7F08D35C 8FAD0028 */ lw $t5, 0x28($sp) +.Ljp7F08D360: +/* 0C1ED0 7F08D360 260A0001 */ addiu $t2, $s0, 1 +.Ljp7F08D364: +/* 0C1ED4 7F08D364 0143001A */ div $zero, $t2, $v1 +/* 0C1ED8 7F08D368 00008010 */ mfhi $s0 +/* 0C1EDC 7F08D36C 14600002 */ bnez $v1, .Ljp7F08D378 +/* 0C1EE0 7F08D370 00000000 */ nop +/* 0C1EE4 7F08D374 0007000D */ break 7 +.Ljp7F08D378: +/* 0C1EE8 7F08D378 2401FFFF */ li $at, -1 +/* 0C1EEC 7F08D37C 14610004 */ bne $v1, $at, .Ljp7F08D390 +/* 0C1EF0 7F08D380 3C018000 */ lui $at, 0x8000 +/* 0C1EF4 7F08D384 15410002 */ bne $t2, $at, .Ljp7F08D390 +/* 0C1EF8 7F08D388 00000000 */ nop +/* 0C1EFC 7F08D38C 0006000D */ break 6 +.Ljp7F08D390: +/* 0C1F00 7F08D390 1600000D */ bnez $s0, .Ljp7F08D3C8 +/* 0C1F04 7F08D394 00000000 */ nop +/* 0C1F08 7F08D398 260B0001 */ addiu $t3, $s0, 1 +/* 0C1F0C 7F08D39C 0163001A */ div $zero, $t3, $v1 +/* 0C1F10 7F08D3A0 00008010 */ mfhi $s0 +/* 0C1F14 7F08D3A4 14600002 */ bnez $v1, .Ljp7F08D3B0 +/* 0C1F18 7F08D3A8 00000000 */ nop +/* 0C1F1C 7F08D3AC 0007000D */ break 7 +.Ljp7F08D3B0: +/* 0C1F20 7F08D3B0 2401FFFF */ li $at, -1 +/* 0C1F24 7F08D3B4 14610004 */ bne $v1, $at, .Ljp7F08D3C8 +/* 0C1F28 7F08D3B8 3C018000 */ lui $at, 0x8000 +/* 0C1F2C 7F08D3BC 15610002 */ bne $t3, $at, .Ljp7F08D3C8 +/* 0C1F30 7F08D3C0 00000000 */ nop +/* 0C1F34 7F08D3C4 0006000D */ break 6 +.Ljp7F08D3C8: +/* 0C1F38 7F08D3C8 12400005 */ beqz $s2, .Ljp7F08D3E0 +/* 0C1F3C 7F08D3CC 00000000 */ nop +/* 0C1F40 7F08D3D0 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C1F44 7F08D3D4 02002025 */ move $a0, $s0 +/* 0C1F48 7F08D3D8 1040000B */ beqz $v0, .Ljp7F08D408 +/* 0C1F4C 7F08D3DC 24030021 */ li $v1, 33 +.Ljp7F08D3E0: +/* 0C1F50 7F08D3E0 3C0C8005 */ lui $t4, %hi(j_text_trigger) # $t4, 0x8005 +/* 0C1F54 7F08D3E4 8D8C8500 */ lw $t4, %lo(j_text_trigger)($t4) +/* 0C1F58 7F08D3E8 24010002 */ li $at, 2 +/* 0C1F5C 7F08D3EC 51800004 */ beql $t4, $zero, .Ljp7F08D400 +/* 0C1F60 7F08D3F0 02008825 */ move $s1, $s0 +/* 0C1F64 7F08D3F4 12010004 */ beq $s0, $at, .Ljp7F08D408 +/* 0C1F68 7F08D3F8 00000000 */ nop +/* 0C1F6C 7F08D3FC 02008825 */ move $s1, $s0 +.Ljp7F08D400: +/* 0C1F70 7F08D400 10000003 */ b .Ljp7F08D410 +/* 0C1F74 7F08D404 00009825 */ move $s3, $zero +.Ljp7F08D408: +/* 0C1F78 7F08D408 5611FFD6 */ bnel $s0, $s1, .Ljp7F08D364 +/* 0C1F7C 7F08D40C 260A0001 */ addiu $t2, $s0, 1 +.Ljp7F08D410: +/* 0C1F80 7F08D410 8FAD0028 */ lw $t5, 0x28($sp) +.Ljp7F08D414: +/* 0C1F84 7F08D414 ADB10000 */ sw $s1, ($t5) +/* 0C1F88 7F08D418 8FAE002C */ lw $t6, 0x2c($sp) +/* 0C1F8C 7F08D41C ADD30000 */ sw $s3, ($t6) +/* 0C1F90 7F08D420 8FBF0024 */ lw $ra, 0x24($sp) +/* 0C1F94 7F08D424 8FB30020 */ lw $s3, 0x20($sp) +/* 0C1F98 7F08D428 8FB2001C */ lw $s2, 0x1c($sp) +/* 0C1F9C 7F08D42C 8FB10018 */ lw $s1, 0x18($sp) +/* 0C1FA0 7F08D430 8FB00014 */ lw $s0, 0x14($sp) +/* 0C1FA4 7F08D434 03E00008 */ jr $ra +/* 0C1FA8 7F08D438 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + +#endif + + + + +#ifdef NONMATCHING +void sub_GAME_7F08CB10(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F08CB10 +/* 0C1640 7F08CB10 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C1644 7F08CB14 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C1648 7F08CB18 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C164C 7F08CB1C AFBF0024 */ sw $ra, 0x24($sp) +/* 0C1650 7F08CB20 AFB30020 */ sw $s3, 0x20($sp) +/* 0C1654 7F08CB24 AFB2001C */ sw $s2, 0x1c($sp) +/* 0C1658 7F08CB28 AFB10018 */ sw $s1, 0x18($sp) +/* 0C165C 7F08CB2C AFB00014 */ sw $s0, 0x14($sp) +/* 0C1660 7F08CB30 AFA40028 */ sw $a0, 0x28($sp) +/* 0C1664 7F08CB34 AFA5002C */ sw $a1, 0x2c($sp) +/* 0C1668 7F08CB38 8C6211E0 */ lw $v0, 0x11e0($v1) +/* 0C166C 7F08CB3C 00C09025 */ move $s2, $a2 +/* 0C1670 7F08CB40 8C910000 */ lw $s1, ($a0) +/* 0C1674 7F08CB44 00807025 */ move $t6, $a0 +/* 0C1678 7F08CB48 8CB30000 */ lw $s3, ($a1) +/* 0C167C 7F08CB4C 10400042 */ beqz $v0, .L7F08CC58 +/* 0C1680 7F08CB50 00A07825 */ move $t7, $a1 +/* 0C1684 7F08CB54 8C500010 */ lw $s0, 0x10($v0) +.L7F08CB58: +/* 0C1688 7F08CB58 8E020000 */ lw $v0, ($s0) +/* 0C168C 7F08CB5C 24010001 */ li $at, 1 +/* 0C1690 7F08CB60 54410018 */ bnel $v0, $at, .L7F08CBC4 +/* 0C1694 7F08CB64 24010003 */ li $at, 3 +/* 0C1698 7F08CB68 8E040004 */ lw $a0, 4($s0) +/* 0C169C 7F08CB6C 28810021 */ slti $at, $a0, 0x21 +/* 0C16A0 7F08CB70 1020002E */ beqz $at, .L7F08CC2C +/* 0C16A4 7F08CB74 00000000 */ nop +/* 0C16A8 7F08CB78 0091082A */ slt $at, $a0, $s1 +/* 0C16AC 7F08CB7C 14200005 */ bnez $at, .L7F08CB94 +/* 0C16B0 7F08CB80 00000000 */ nop +/* 0C16B4 7F08CB84 16240029 */ bne $s1, $a0, .L7F08CC2C +/* 0C16B8 7F08CB88 00000000 */ nop +/* 0C16BC 7F08CB8C 1A600027 */ blez $s3, .L7F08CC2C +/* 0C16C0 7F08CB90 00000000 */ nop +.L7F08CB94: +/* 0C16C4 7F08CB94 52400008 */ beql $s2, $zero, .L7F08CBB8 +/* 0C16C8 7F08CB98 00808825 */ move $s1, $a0 +/* 0C16CC 7F08CB9C 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C16D0 7F08CBA0 00000000 */ nop +/* 0C16D4 7F08CBA4 10400021 */ beqz $v0, .L7F08CC2C +/* 0C16D8 7F08CBA8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C16DC 7F08CBAC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C16E0 7F08CBB0 8E040004 */ lw $a0, 4($s0) +/* 0C16E4 7F08CBB4 00808825 */ move $s1, $a0 +.L7F08CBB8: +/* 0C16E8 7F08CBB8 10000027 */ b .L7F08CC58 +/* 0C16EC 7F08CBBC 00009825 */ move $s3, $zero +/* 0C16F0 7F08CBC0 24010003 */ li $at, 3 +.L7F08CBC4: +/* 0C16F4 7F08CBC4 14410019 */ bne $v0, $at, .L7F08CC2C +/* 0C16F8 7F08CBC8 00000000 */ nop +/* 0C16FC 7F08CBCC 8E040004 */ lw $a0, 4($s0) +/* 0C1700 7F08CBD0 0091082A */ slt $at, $a0, $s1 +/* 0C1704 7F08CBD4 14200007 */ bnez $at, .L7F08CBF4 +/* 0C1708 7F08CBD8 00000000 */ nop +/* 0C170C 7F08CBDC 16240013 */ bne $s1, $a0, .L7F08CC2C +/* 0C1710 7F08CBE0 00000000 */ nop +/* 0C1714 7F08CBE4 8E180008 */ lw $t8, 8($s0) +/* 0C1718 7F08CBE8 0313082A */ slt $at, $t8, $s3 +/* 0C171C 7F08CBEC 1020000F */ beqz $at, .L7F08CC2C +/* 0C1720 7F08CBF0 00000000 */ nop +.L7F08CBF4: +/* 0C1724 7F08CBF4 12400008 */ beqz $s2, .L7F08CC18 +/* 0C1728 7F08CBF8 00000000 */ nop +/* 0C172C 7F08CBFC 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C1730 7F08CC00 00000000 */ nop +/* 0C1734 7F08CC04 14400004 */ bnez $v0, .L7F08CC18 +/* 0C1738 7F08CC08 00000000 */ nop +/* 0C173C 7F08CC0C 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C1740 7F08CC10 8E040008 */ lw $a0, 8($s0) +/* 0C1744 7F08CC14 10400005 */ beqz $v0, .L7F08CC2C +.L7F08CC18: +/* 0C1748 7F08CC18 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C174C 7F08CC1C 8E110004 */ lw $s1, 4($s0) +/* 0C1750 7F08CC20 8E130008 */ lw $s3, 8($s0) +/* 0C1754 7F08CC24 1000000C */ b .L7F08CC58 +/* 0C1758 7F08CC28 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F08CC2C: +/* 0C175C 7F08CC2C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C1760 7F08CC30 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C1764 7F08CC34 8C7911E0 */ lw $t9, 0x11e0($v1) +/* 0C1768 7F08CC38 16190005 */ bne $s0, $t9, .L7F08CC50 +/* 0C176C 7F08CC3C 00000000 */ nop +/* 0C1770 7F08CC40 56400006 */ bnezl $s2, .L7F08CC5C +/* 0C1774 7F08CC44 8C6811EC */ lw $t0, 0x11ec($v1) +/* 0C1778 7F08CC48 241103E8 */ li $s1, 1000 +/* 0C177C 7F08CC4C 241303E8 */ li $s3, 1000 +.L7F08CC50: +/* 0C1780 7F08CC50 1000FFC1 */ b .L7F08CB58 +/* 0C1784 7F08CC54 8E100010 */ lw $s0, 0x10($s0) +.L7F08CC58: +/* 0C1788 7F08CC58 8C6811EC */ lw $t0, 0x11ec($v1) +.L7F08CC5C: +/* 0C178C 7F08CC5C 8FAA002C */ lw $t2, 0x2c($sp) +/* 0C1790 7F08CC60 51000079 */ beql $t0, $zero, .L7F08CE48 +/* 0C1794 7F08CC64 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C1798 7F08CC68 8D4B0000 */ lw $t3, ($t2) +/* 0C179C 7F08CC6C 8FA90028 */ lw $t1, 0x28($sp) +/* 0C17A0 7F08CC70 24030021 */ li $v1, 33 +/* 0C17A4 7F08CC74 1560001B */ bnez $t3, .L7F08CCE4 +/* 0C17A8 7F08CC78 8D300000 */ lw $s0, ($t1) +/* 0C17AC 7F08CC7C 260C0020 */ addiu $t4, $s0, 0x20 +/* 0C17B0 7F08CC80 0183001A */ div $zero, $t4, $v1 +/* 0C17B4 7F08CC84 00008010 */ mfhi $s0 +/* 0C17B8 7F08CC88 260D0020 */ addiu $t5, $s0, 0x20 +/* 0C17BC 7F08CC8C 14600002 */ bnez $v1, .L7F08CC98 +/* 0C17C0 7F08CC90 00000000 */ nop +/* 0C17C4 7F08CC94 0007000D */ break 7 +.L7F08CC98: +/* 0C17C8 7F08CC98 2401FFFF */ li $at, -1 +/* 0C17CC 7F08CC9C 14610004 */ bne $v1, $at, .L7F08CCB0 +/* 0C17D0 7F08CCA0 3C018000 */ lui $at, 0x8000 +/* 0C17D4 7F08CCA4 15810002 */ bne $t4, $at, .L7F08CCB0 +/* 0C17D8 7F08CCA8 00000000 */ nop +/* 0C17DC 7F08CCAC 0006000D */ break 6 +.L7F08CCB0: +/* 0C17E0 7F08CCB0 1600000C */ bnez $s0, .L7F08CCE4 +/* 0C17E4 7F08CCB4 00000000 */ nop +/* 0C17E8 7F08CCB8 01A3001A */ div $zero, $t5, $v1 +/* 0C17EC 7F08CCBC 00008010 */ mfhi $s0 +/* 0C17F0 7F08CCC0 14600002 */ bnez $v1, .L7F08CCCC +/* 0C17F4 7F08CCC4 00000000 */ nop +/* 0C17F8 7F08CCC8 0007000D */ break 7 +.L7F08CCCC: +/* 0C17FC 7F08CCCC 2401FFFF */ li $at, -1 +/* 0C1800 7F08CCD0 14610004 */ bne $v1, $at, .L7F08CCE4 +/* 0C1804 7F08CCD4 3C018000 */ lui $at, 0x8000 +/* 0C1808 7F08CCD8 15A10002 */ bne $t5, $at, .L7F08CCE4 +/* 0C180C 7F08CCDC 00000000 */ nop +/* 0C1810 7F08CCE0 0006000D */ break 6 +.L7F08CCE4: +/* 0C1814 7F08CCE4 1611001E */ bne $s0, $s1, .L7F08CD60 +/* 0C1818 7F08CCE8 00000000 */ nop +/* 0C181C 7F08CCEC 0FC26919 */ jal get_num_players +/* 0C1820 7F08CCF0 00000000 */ nop +/* 0C1824 7F08CCF4 24010001 */ li $at, 1 +/* 0C1828 7F08CCF8 14410052 */ bne $v0, $at, .L7F08CE44 +/* 0C182C 7F08CCFC 02002025 */ move $a0, $s0 +/* 0C1830 7F08CD00 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C1834 7F08CD04 3C050010 */ lui $a1, 0x10 +/* 0C1838 7F08CD08 5040004F */ beql $v0, $zero, .L7F08CE48 +/* 0C183C 7F08CD0C 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C1840 7F08CD10 52400006 */ beql $s2, $zero, .L7F08CD2C +/* 0C1844 7F08CD14 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C1848 7F08CD18 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C184C 7F08CD1C 02002025 */ move $a0, $s0 +/* 0C1850 7F08CD20 50400049 */ beql $v0, $zero, .L7F08CE48 +/* 0C1854 7F08CD24 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C1858 7F08CD28 8FAE0028 */ lw $t6, 0x28($sp) +.L7F08CD2C: +/* 0C185C 7F08CD2C 8FB8002C */ lw $t8, 0x2c($sp) +/* 0C1860 7F08CD30 8DCF0000 */ lw $t7, ($t6) +/* 0C1864 7F08CD34 560F0005 */ bnel $s0, $t7, .L7F08CD4C +/* 0C1868 7F08CD38 0270082A */ slt $at, $s3, $s0 +/* 0C186C 7F08CD3C 8F190000 */ lw $t9, ($t8) +/* 0C1870 7F08CD40 0219082A */ slt $at, $s0, $t9 +/* 0C1874 7F08CD44 1020003F */ beqz $at, .L7F08CE44 +/* 0C1878 7F08CD48 0270082A */ slt $at, $s3, $s0 +.L7F08CD4C: +/* 0C187C 7F08CD4C 5020003E */ beql $at, $zero, .L7F08CE48 +/* 0C1880 7F08CD50 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C1884 7F08CD54 02008825 */ move $s1, $s0 +/* 0C1888 7F08CD58 1000003A */ b .L7F08CE44 +/* 0C188C 7F08CD5C 02009825 */ move $s3, $s0 +.L7F08CD60: +/* 0C1890 7F08CD60 12400005 */ beqz $s2, .L7F08CD78 +/* 0C1894 7F08CD64 00000000 */ nop +/* 0C1898 7F08CD68 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C189C 7F08CD6C 02002025 */ move $a0, $s0 +/* 0C18A0 7F08CD70 10400018 */ beqz $v0, .L7F08CDD4 +/* 0C18A4 7F08CD74 24030021 */ li $v1, 33 +.L7F08CD78: +/* 0C18A8 7F08CD78 0FC26919 */ jal get_num_players +/* 0C18AC 7F08CD7C 00000000 */ nop +/* 0C18B0 7F08CD80 24010001 */ li $at, 1 +/* 0C18B4 7F08CD84 14410010 */ bne $v0, $at, .L7F08CDC8 +/* 0C18B8 7F08CD88 02002025 */ move $a0, $s0 +/* 0C18BC 7F08CD8C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C18C0 7F08CD90 3C050010 */ lui $a1, 0x10 +/* 0C18C4 7F08CD94 1040000C */ beqz $v0, .L7F08CDC8 +/* 0C18C8 7F08CD98 8FA80028 */ lw $t0, 0x28($sp) +/* 0C18CC 7F08CD9C 8D090000 */ lw $t1, ($t0) +/* 0C18D0 7F08CDA0 8FAA002C */ lw $t2, 0x2c($sp) +/* 0C18D4 7F08CDA4 02008825 */ move $s1, $s0 +/* 0C18D8 7F08CDA8 16090005 */ bne $s0, $t1, .L7F08CDC0 +/* 0C18DC 7F08CDAC 00000000 */ nop +/* 0C18E0 7F08CDB0 8D4B0000 */ lw $t3, ($t2) +/* 0C18E4 7F08CDB4 020B082A */ slt $at, $s0, $t3 +/* 0C18E8 7F08CDB8 50200004 */ beql $at, $zero, .L7F08CDCC +/* 0C18EC 7F08CDBC 02008825 */ move $s1, $s0 +.L7F08CDC0: +/* 0C18F0 7F08CDC0 10000020 */ b .L7F08CE44 +/* 0C18F4 7F08CDC4 02009825 */ move $s3, $s0 +.L7F08CDC8: +/* 0C18F8 7F08CDC8 02008825 */ move $s1, $s0 +.L7F08CDCC: +/* 0C18FC 7F08CDCC 1000001D */ b .L7F08CE44 +/* 0C1900 7F08CDD0 00009825 */ move $s3, $zero +.L7F08CDD4: +/* 0C1904 7F08CDD4 260C0020 */ addiu $t4, $s0, 0x20 +/* 0C1908 7F08CDD8 0183001A */ div $zero, $t4, $v1 +/* 0C190C 7F08CDDC 00008010 */ mfhi $s0 +/* 0C1910 7F08CDE0 14600002 */ bnez $v1, .L7F08CDEC +/* 0C1914 7F08CDE4 00000000 */ nop +/* 0C1918 7F08CDE8 0007000D */ break 7 +.L7F08CDEC: +/* 0C191C 7F08CDEC 2401FFFF */ li $at, -1 +/* 0C1920 7F08CDF0 14610004 */ bne $v1, $at, .L7F08CE04 +/* 0C1924 7F08CDF4 3C018000 */ lui $at, 0x8000 +/* 0C1928 7F08CDF8 15810002 */ bne $t4, $at, .L7F08CE04 +/* 0C192C 7F08CDFC 00000000 */ nop +/* 0C1930 7F08CE00 0006000D */ break 6 +.L7F08CE04: +/* 0C1934 7F08CE04 1600FFB7 */ bnez $s0, .L7F08CCE4 +/* 0C1938 7F08CE08 00000000 */ nop +/* 0C193C 7F08CE0C 260D0020 */ addiu $t5, $s0, 0x20 +/* 0C1940 7F08CE10 01A3001A */ div $zero, $t5, $v1 +/* 0C1944 7F08CE14 00008010 */ mfhi $s0 +/* 0C1948 7F08CE18 14600002 */ bnez $v1, .L7F08CE24 +/* 0C194C 7F08CE1C 00000000 */ nop +/* 0C1950 7F08CE20 0007000D */ break 7 +.L7F08CE24: +/* 0C1954 7F08CE24 2401FFFF */ li $at, -1 +/* 0C1958 7F08CE28 14610004 */ bne $v1, $at, .L7F08CE3C +/* 0C195C 7F08CE2C 3C018000 */ lui $at, 0x8000 +/* 0C1960 7F08CE30 15A10002 */ bne $t5, $at, .L7F08CE3C +/* 0C1964 7F08CE34 00000000 */ nop +/* 0C1968 7F08CE38 0006000D */ break 6 +.L7F08CE3C: +/* 0C196C 7F08CE3C 1000FFA9 */ b .L7F08CCE4 +/* 0C1970 7F08CE40 00000000 */ nop +.L7F08CE44: +/* 0C1974 7F08CE44 8FAE0028 */ lw $t6, 0x28($sp) +.L7F08CE48: +/* 0C1978 7F08CE48 ADD10000 */ sw $s1, ($t6) +/* 0C197C 7F08CE4C 8FAF002C */ lw $t7, 0x2c($sp) +/* 0C1980 7F08CE50 ADF30000 */ sw $s3, ($t7) +/* 0C1984 7F08CE54 8FBF0024 */ lw $ra, 0x24($sp) +/* 0C1988 7F08CE58 8FB30020 */ lw $s3, 0x20($sp) +/* 0C198C 7F08CE5C 8FB2001C */ lw $s2, 0x1c($sp) +/* 0C1990 7F08CE60 8FB10018 */ lw $s1, 0x18($sp) +/* 0C1994 7F08CE64 8FB00014 */ lw $s0, 0x14($sp) +/* 0C1998 7F08CE68 03E00008 */ jr $ra +/* 0C199C 7F08CE6C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F08CB10 +/* 0C1FAC 7F08D43C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C1FB0 7F08D440 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0C1FB4 7F08D444 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0C1FB8 7F08D448 AFBF0024 */ sw $ra, 0x24($sp) +/* 0C1FBC 7F08D44C AFB30020 */ sw $s3, 0x20($sp) +/* 0C1FC0 7F08D450 AFB2001C */ sw $s2, 0x1c($sp) +/* 0C1FC4 7F08D454 AFB10018 */ sw $s1, 0x18($sp) +/* 0C1FC8 7F08D458 AFB00014 */ sw $s0, 0x14($sp) +/* 0C1FCC 7F08D45C AFA40028 */ sw $a0, 0x28($sp) +/* 0C1FD0 7F08D460 AFA5002C */ sw $a1, 0x2c($sp) +/* 0C1FD4 7F08D464 8C6211E0 */ lw $v0, 0x11e0($v1) +/* 0C1FD8 7F08D468 00C09025 */ move $s2, $a2 +/* 0C1FDC 7F08D46C 8C910000 */ lw $s1, ($a0) +/* 0C1FE0 7F08D470 00807025 */ move $t6, $a0 +/* 0C1FE4 7F08D474 8CB30000 */ lw $s3, ($a1) +/* 0C1FE8 7F08D478 10400042 */ beqz $v0, .Ljp7F08D584 +/* 0C1FEC 7F08D47C 00A07825 */ move $t7, $a1 +/* 0C1FF0 7F08D480 8C500010 */ lw $s0, 0x10($v0) +.Ljp7F08D484: +/* 0C1FF4 7F08D484 8E020000 */ lw $v0, ($s0) +/* 0C1FF8 7F08D488 24010001 */ li $at, 1 +/* 0C1FFC 7F08D48C 54410018 */ bnel $v0, $at, .Ljp7F08D4F0 +/* 0C2000 7F08D490 24010003 */ li $at, 3 +/* 0C2004 7F08D494 8E040004 */ lw $a0, 4($s0) +/* 0C2008 7F08D498 28810021 */ slti $at, $a0, 0x21 +/* 0C200C 7F08D49C 1020002E */ beqz $at, .Ljp7F08D558 +/* 0C2010 7F08D4A0 00000000 */ nop +/* 0C2014 7F08D4A4 0091082A */ slt $at, $a0, $s1 +/* 0C2018 7F08D4A8 14200005 */ bnez $at, .Ljp7F08D4C0 +/* 0C201C 7F08D4AC 00000000 */ nop +/* 0C2020 7F08D4B0 16240029 */ bne $s1, $a0, .Ljp7F08D558 +/* 0C2024 7F08D4B4 00000000 */ nop +/* 0C2028 7F08D4B8 1A600027 */ blez $s3, .Ljp7F08D558 +/* 0C202C 7F08D4BC 00000000 */ nop +.Ljp7F08D4C0: +/* 0C2030 7F08D4C0 52400008 */ beql $s2, $zero, .Ljp7F08D4E4 +/* 0C2034 7F08D4C4 00808825 */ move $s1, $a0 +/* 0C2038 7F08D4C8 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C203C 7F08D4CC 00000000 */ nop +/* 0C2040 7F08D4D0 10400021 */ beqz $v0, .Ljp7F08D558 +/* 0C2044 7F08D4D4 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0C2048 7F08D4D8 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0C204C 7F08D4DC 8E040004 */ lw $a0, 4($s0) +/* 0C2050 7F08D4E0 00808825 */ move $s1, $a0 +.Ljp7F08D4E4: +/* 0C2054 7F08D4E4 10000027 */ b .Ljp7F08D584 +/* 0C2058 7F08D4E8 00009825 */ move $s3, $zero +/* 0C205C 7F08D4EC 24010003 */ li $at, 3 +.Ljp7F08D4F0: +/* 0C2060 7F08D4F0 14410019 */ bne $v0, $at, .Ljp7F08D558 +/* 0C2064 7F08D4F4 00000000 */ nop +/* 0C2068 7F08D4F8 8E040004 */ lw $a0, 4($s0) +/* 0C206C 7F08D4FC 0091082A */ slt $at, $a0, $s1 +/* 0C2070 7F08D500 14200007 */ bnez $at, .Ljp7F08D520 +/* 0C2074 7F08D504 00000000 */ nop +/* 0C2078 7F08D508 16240013 */ bne $s1, $a0, .Ljp7F08D558 +/* 0C207C 7F08D50C 00000000 */ nop +/* 0C2080 7F08D510 8E180008 */ lw $t8, 8($s0) +/* 0C2084 7F08D514 0313082A */ slt $at, $t8, $s3 +/* 0C2088 7F08D518 1020000F */ beqz $at, .Ljp7F08D558 +/* 0C208C 7F08D51C 00000000 */ nop +.Ljp7F08D520: +/* 0C2090 7F08D520 12400008 */ beqz $s2, .Ljp7F08D544 +/* 0C2094 7F08D524 00000000 */ nop +/* 0C2098 7F08D528 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C209C 7F08D52C 00000000 */ nop +/* 0C20A0 7F08D530 14400004 */ bnez $v0, .Ljp7F08D544 +/* 0C20A4 7F08D534 00000000 */ nop +/* 0C20A8 7F08D538 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C20AC 7F08D53C 8E040008 */ lw $a0, 8($s0) +/* 0C20B0 7F08D540 10400005 */ beqz $v0, .Ljp7F08D558 +.Ljp7F08D544: +/* 0C20B4 7F08D544 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0C20B8 7F08D548 8E110004 */ lw $s1, 4($s0) +/* 0C20BC 7F08D54C 8E130008 */ lw $s3, 8($s0) +/* 0C20C0 7F08D550 1000000C */ b .Ljp7F08D584 +/* 0C20C4 7F08D554 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +.Ljp7F08D558: +/* 0C20C8 7F08D558 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0C20CC 7F08D55C 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0C20D0 7F08D560 8C7911E0 */ lw $t9, 0x11e0($v1) +/* 0C20D4 7F08D564 16190005 */ bne $s0, $t9, .Ljp7F08D57C +/* 0C20D8 7F08D568 00000000 */ nop +/* 0C20DC 7F08D56C 56400006 */ bnezl $s2, .Ljp7F08D588 +/* 0C20E0 7F08D570 8C6811EC */ lw $t0, 0x11ec($v1) +/* 0C20E4 7F08D574 241103E8 */ li $s1, 1000 +/* 0C20E8 7F08D578 241303E8 */ li $s3, 1000 +.Ljp7F08D57C: +/* 0C20EC 7F08D57C 1000FFC1 */ b .Ljp7F08D484 +/* 0C20F0 7F08D580 8E100010 */ lw $s0, 0x10($s0) +.Ljp7F08D584: +/* 0C20F4 7F08D584 8C6811EC */ lw $t0, 0x11ec($v1) +.Ljp7F08D588: +/* 0C20F8 7F08D588 8FAA002C */ lw $t2, 0x2c($sp) +/* 0C20FC 7F08D58C 51000087 */ beql $t0, $zero, .Ljp7F08D7AC +/* 0C2100 7F08D590 8FB80028 */ lw $t8, 0x28($sp) +/* 0C2104 7F08D594 8D4B0000 */ lw $t3, ($t2) +/* 0C2108 7F08D598 8FA90028 */ lw $t1, 0x28($sp) +/* 0C210C 7F08D59C 24030021 */ li $v1, 33 +/* 0C2110 7F08D5A0 1560001B */ bnez $t3, .Ljp7F08D610 +/* 0C2114 7F08D5A4 8D300000 */ lw $s0, ($t1) +/* 0C2118 7F08D5A8 260C0020 */ addiu $t4, $s0, 0x20 +/* 0C211C 7F08D5AC 0183001A */ div $zero, $t4, $v1 +/* 0C2120 7F08D5B0 00008010 */ mfhi $s0 +/* 0C2124 7F08D5B4 14600002 */ bnez $v1, .Ljp7F08D5C0 +/* 0C2128 7F08D5B8 00000000 */ nop +/* 0C212C 7F08D5BC 0007000D */ break 7 +.Ljp7F08D5C0: +/* 0C2130 7F08D5C0 2401FFFF */ li $at, -1 +/* 0C2134 7F08D5C4 14610004 */ bne $v1, $at, .Ljp7F08D5D8 +/* 0C2138 7F08D5C8 3C018000 */ lui $at, 0x8000 +/* 0C213C 7F08D5CC 15810002 */ bne $t4, $at, .Ljp7F08D5D8 +/* 0C2140 7F08D5D0 00000000 */ nop +/* 0C2144 7F08D5D4 0006000D */ break 6 +.Ljp7F08D5D8: +/* 0C2148 7F08D5D8 5600000E */ bnezl $s0, .Ljp7F08D614 +/* 0C214C 7F08D5DC 24030021 */ li $v1, 33 +/* 0C2150 7F08D5E0 260D0020 */ addiu $t5, $s0, 0x20 +/* 0C2154 7F08D5E4 01A3001A */ div $zero, $t5, $v1 +/* 0C2158 7F08D5E8 00008010 */ mfhi $s0 +/* 0C215C 7F08D5EC 14600002 */ bnez $v1, .Ljp7F08D5F8 +/* 0C2160 7F08D5F0 00000000 */ nop +/* 0C2164 7F08D5F4 0007000D */ break 7 +.Ljp7F08D5F8: +/* 0C2168 7F08D5F8 2401FFFF */ li $at, -1 +/* 0C216C 7F08D5FC 14610004 */ bne $v1, $at, .Ljp7F08D610 +/* 0C2170 7F08D600 3C018000 */ lui $at, 0x8000 +/* 0C2174 7F08D604 15A10002 */ bne $t5, $at, .Ljp7F08D610 +/* 0C2178 7F08D608 00000000 */ nop +/* 0C217C 7F08D60C 0006000D */ break 6 +.Ljp7F08D610: +/* 0C2180 7F08D610 24030021 */ li $v1, 33 +.Ljp7F08D614: +/* 0C2184 7F08D614 16110024 */ bne $s0, $s1, .Ljp7F08D6A8 +/* 0C2188 7F08D618 00000000 */ nop +/* 0C218C 7F08D61C 0FC26C01 */ jal get_num_players +/* 0C2190 7F08D620 00000000 */ nop +/* 0C2194 7F08D624 24010001 */ li $at, 1 +/* 0C2198 7F08D628 1441005F */ bne $v0, $at, .Ljp7F08D7A8 +/* 0C219C 7F08D62C 02002025 */ move $a0, $s0 +/* 0C21A0 7F08D630 0FC17975 */ jal bondwalkItemCheckBitflags +/* 0C21A4 7F08D634 3C050010 */ lui $a1, 0x10 +/* 0C21A8 7F08D638 5040005C */ beql $v0, $zero, .Ljp7F08D7AC +/* 0C21AC 7F08D63C 8FB80028 */ lw $t8, 0x28($sp) +/* 0C21B0 7F08D640 52400006 */ beql $s2, $zero, .Ljp7F08D65C +/* 0C21B4 7F08D644 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C21B8 7F08D648 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C21BC 7F08D64C 02002025 */ move $a0, $s0 +/* 0C21C0 7F08D650 50400056 */ beql $v0, $zero, .Ljp7F08D7AC +/* 0C21C4 7F08D654 8FB80028 */ lw $t8, 0x28($sp) +/* 0C21C8 7F08D658 8FAE0028 */ lw $t6, 0x28($sp) +.Ljp7F08D65C: +/* 0C21CC 7F08D65C 8FB8002C */ lw $t8, 0x2c($sp) +/* 0C21D0 7F08D660 8DCF0000 */ lw $t7, ($t6) +/* 0C21D4 7F08D664 560F0005 */ bnel $s0, $t7, .Ljp7F08D67C +/* 0C21D8 7F08D668 0270082A */ slt $at, $s3, $s0 +/* 0C21DC 7F08D66C 8F190000 */ lw $t9, ($t8) +/* 0C21E0 7F08D670 0219082A */ slt $at, $s0, $t9 +/* 0C21E4 7F08D674 1020004C */ beqz $at, .Ljp7F08D7A8 +/* 0C21E8 7F08D678 0270082A */ slt $at, $s3, $s0 +.Ljp7F08D67C: +/* 0C21EC 7F08D67C 1020004A */ beqz $at, .Ljp7F08D7A8 +/* 0C21F0 7F08D680 3C088005 */ lui $t0, %hi(j_text_trigger) # $t0, 0x8005 +/* 0C21F4 7F08D684 8D088500 */ lw $t0, %lo(j_text_trigger)($t0) +/* 0C21F8 7F08D688 24010002 */ li $at, 2 +/* 0C21FC 7F08D68C 51000004 */ beql $t0, $zero, .Ljp7F08D6A0 +/* 0C2200 7F08D690 02008825 */ move $s1, $s0 +/* 0C2204 7F08D694 52010045 */ beql $s0, $at, .Ljp7F08D7AC +/* 0C2208 7F08D698 8FB80028 */ lw $t8, 0x28($sp) +/* 0C220C 7F08D69C 02008825 */ move $s1, $s0 +.Ljp7F08D6A0: +/* 0C2210 7F08D6A0 10000041 */ b .Ljp7F08D7A8 +/* 0C2214 7F08D6A4 02009825 */ move $s3, $s0 +.Ljp7F08D6A8: +/* 0C2218 7F08D6A8 12400005 */ beqz $s2, .Ljp7F08D6C0 +/* 0C221C 7F08D6AC 00000000 */ nop +/* 0C2220 7F08D6B0 0FC1795F */ jal bondwalkItemHasAmmo +/* 0C2224 7F08D6B4 02002025 */ move $a0, $s0 +/* 0C2228 7F08D6B8 1040001F */ beqz $v0, .Ljp7F08D738 +/* 0C222C 7F08D6BC 24030021 */ li $v1, 33 +.Ljp7F08D6C0: +/* 0C2230 7F08D6C0 3C098005 */ lui $t1, %hi(j_text_trigger) # $t1, 0x8005 +/* 0C2234 7F08D6C4 8D298500 */ lw $t1, %lo(j_text_trigger)($t1) +/* 0C2238 7F08D6C8 24010002 */ li $at, 2 +/* 0C223C 7F08D6CC 11200003 */ beqz $t1, .Ljp7F08D6DC +/* 0C2240 7F08D6D0 00000000 */ nop +/* 0C2244 7F08D6D4 52010019 */ beql $s0, $at, .Ljp7F08D73C +/* 0C2248 7F08D6D8 260E0020 */ addiu $t6, $s0, 0x20 +.Ljp7F08D6DC: +/* 0C224C 7F08D6DC 0FC26C01 */ jal get_num_players +/* 0C2250 7F08D6E0 00000000 */ nop +/* 0C2254 7F08D6E4 24010001 */ li $at, 1 +/* 0C2258 7F08D6E8 14410010 */ bne $v0, $at, .Ljp7F08D72C +/* 0C225C 7F08D6EC 02002025 */ move $a0, $s0 +/* 0C2260 7F08D6F0 0FC17975 */ jal bondwalkItemCheckBitflags +/* 0C2264 7F08D6F4 3C050010 */ lui $a1, 0x10 +/* 0C2268 7F08D6F8 1040000C */ beqz $v0, .Ljp7F08D72C +/* 0C226C 7F08D6FC 8FAA0028 */ lw $t2, 0x28($sp) +/* 0C2270 7F08D700 8D4B0000 */ lw $t3, ($t2) +/* 0C2274 7F08D704 8FAC002C */ lw $t4, 0x2c($sp) +/* 0C2278 7F08D708 02008825 */ move $s1, $s0 +/* 0C227C 7F08D70C 160B0005 */ bne $s0, $t3, .Ljp7F08D724 +/* 0C2280 7F08D710 00000000 */ nop +/* 0C2284 7F08D714 8D8D0000 */ lw $t5, ($t4) +/* 0C2288 7F08D718 020D082A */ slt $at, $s0, $t5 +/* 0C228C 7F08D71C 50200004 */ beql $at, $zero, .Ljp7F08D730 +/* 0C2290 7F08D720 02008825 */ move $s1, $s0 +.Ljp7F08D724: +/* 0C2294 7F08D724 10000020 */ b .Ljp7F08D7A8 +/* 0C2298 7F08D728 02009825 */ move $s3, $s0 +.Ljp7F08D72C: +/* 0C229C 7F08D72C 02008825 */ move $s1, $s0 +.Ljp7F08D730: +/* 0C22A0 7F08D730 1000001D */ b .Ljp7F08D7A8 +/* 0C22A4 7F08D734 00009825 */ move $s3, $zero +.Ljp7F08D738: +/* 0C22A8 7F08D738 260E0020 */ addiu $t6, $s0, 0x20 +.Ljp7F08D73C: +/* 0C22AC 7F08D73C 01C3001A */ div $zero, $t6, $v1 +/* 0C22B0 7F08D740 00008010 */ mfhi $s0 +/* 0C22B4 7F08D744 14600002 */ bnez $v1, .Ljp7F08D750 +/* 0C22B8 7F08D748 00000000 */ nop +/* 0C22BC 7F08D74C 0007000D */ break 7 +.Ljp7F08D750: +/* 0C22C0 7F08D750 2401FFFF */ li $at, -1 +/* 0C22C4 7F08D754 14610004 */ bne $v1, $at, .Ljp7F08D768 +/* 0C22C8 7F08D758 3C018000 */ lui $at, 0x8000 +/* 0C22CC 7F08D75C 15C10002 */ bne $t6, $at, .Ljp7F08D768 +/* 0C22D0 7F08D760 00000000 */ nop +/* 0C22D4 7F08D764 0006000D */ break 6 +.Ljp7F08D768: +/* 0C22D8 7F08D768 1600FFAA */ bnez $s0, .Ljp7F08D614 +/* 0C22DC 7F08D76C 00000000 */ nop +/* 0C22E0 7F08D770 260F0020 */ addiu $t7, $s0, 0x20 +/* 0C22E4 7F08D774 01E3001A */ div $zero, $t7, $v1 +/* 0C22E8 7F08D778 00008010 */ mfhi $s0 +/* 0C22EC 7F08D77C 14600002 */ bnez $v1, .Ljp7F08D788 +/* 0C22F0 7F08D780 00000000 */ nop +/* 0C22F4 7F08D784 0007000D */ break 7 +.Ljp7F08D788: +/* 0C22F8 7F08D788 2401FFFF */ li $at, -1 +/* 0C22FC 7F08D78C 14610004 */ bne $v1, $at, .Ljp7F08D7A0 +/* 0C2300 7F08D790 3C018000 */ lui $at, 0x8000 +/* 0C2304 7F08D794 15E10002 */ bne $t7, $at, .Ljp7F08D7A0 +/* 0C2308 7F08D798 00000000 */ nop +/* 0C230C 7F08D79C 0006000D */ break 6 +.Ljp7F08D7A0: +/* 0C2310 7F08D7A0 1000FF9C */ b .Ljp7F08D614 +/* 0C2314 7F08D7A4 00000000 */ nop +.Ljp7F08D7A8: +/* 0C2318 7F08D7A8 8FB80028 */ lw $t8, 0x28($sp) +.Ljp7F08D7AC: +/* 0C231C 7F08D7AC AF110000 */ sw $s1, ($t8) +/* 0C2320 7F08D7B0 8FB9002C */ lw $t9, 0x2c($sp) +/* 0C2324 7F08D7B4 AF330000 */ sw $s3, ($t9) +/* 0C2328 7F08D7B8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0C232C 7F08D7BC 8FB30020 */ lw $s3, 0x20($sp) +/* 0C2330 7F08D7C0 8FB2001C */ lw $s2, 0x1c($sp) +/* 0C2334 7F08D7C4 8FB10018 */ lw $s1, 0x18($sp) +/* 0C2338 7F08D7C8 8FB00014 */ lw $s0, 0x14($sp) +/* 0C233C 7F08D7CC 03E00008 */ jr $ra +/* 0C2340 7F08D7D0 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F08CE70(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08CE70 +/* 0C19A0 7F08CE70 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0C19A4 7F08CE74 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0C19A8 7F08CE78 27BDFFF8 */ addiu $sp, $sp, -8 +/* 0C19AC 7F08CE7C AFB00004 */ sw $s0, 4($sp) +/* 0C19B0 7F08CE80 8DC511E0 */ lw $a1, 0x11e0($t6) +/* 0C19B4 7F08CE84 00808025 */ move $s0, $a0 +/* 0C19B8 7F08CE88 00001025 */ move $v0, $zero +/* 0C19BC 7F08CE8C 10A0001B */ beqz $a1, .L7F08CEFC +/* 0C19C0 7F08CE90 00A01825 */ move $v1, $a1 +/* 0C19C4 7F08CE94 240A0004 */ li $t2, 4 +/* 0C19C8 7F08CE98 24090001 */ li $t1, 1 +/* 0C19CC 7F08CE9C 24080002 */ li $t0, 2 +/* 0C19D0 7F08CEA0 8C6F0000 */ lw $t7, ($v1) +.L7F08CEA4: +/* 0C19D4 7F08CEA4 550F0011 */ bnel $t0, $t7, .L7F08CEEC +/* 0C19D8 7F08CEA8 8C63000C */ lw $v1, 0xc($v1) +/* 0C19DC 7F08CEAC 8C640004 */ lw $a0, 4($v1) +/* 0C19E0 7F08CEB0 90980000 */ lbu $t8, ($a0) +/* 0C19E4 7F08CEB4 5538000D */ bnel $t1, $t8, .L7F08CEEC +/* 0C19E8 7F08CEB8 8C63000C */ lw $v1, 0xc($v1) +/* 0C19EC 7F08CEBC 8C870004 */ lw $a3, 4($a0) +/* 0C19F0 7F08CEC0 90F90003 */ lbu $t9, 3($a3) +/* 0C19F4 7F08CEC4 55590009 */ bnel $t2, $t9, .L7F08CEEC +/* 0C19F8 7F08CEC8 8C63000C */ lw $v1, 0xc($v1) +/* 0C19FC 7F08CECC 8CEB0080 */ lw $t3, 0x80($a3) +/* 0C1A00 7F08CED0 004B1025 */ or $v0, $v0, $t3 +/* 0C1A04 7F08CED4 02026024 */ and $t4, $s0, $v0 +/* 0C1A08 7F08CED8 560C0004 */ bnel $s0, $t4, .L7F08CEEC +/* 0C1A0C 7F08CEDC 8C63000C */ lw $v1, 0xc($v1) +/* 0C1A10 7F08CEE0 10000007 */ b .L7F08CF00 +/* 0C1A14 7F08CEE4 24020001 */ li $v0, 1 +/* 0C1A18 7F08CEE8 8C63000C */ lw $v1, 0xc($v1) +.L7F08CEEC: +/* 0C1A1C 7F08CEEC 50650004 */ beql $v1, $a1, .L7F08CF00 +/* 0C1A20 7F08CEF0 00001025 */ move $v0, $zero +/* 0C1A24 7F08CEF4 5460FFEB */ bnezl $v1, .L7F08CEA4 +/* 0C1A28 7F08CEF8 8C6F0000 */ lw $t7, ($v1) +.L7F08CEFC: +/* 0C1A2C 7F08CEFC 00001025 */ move $v0, $zero +.L7F08CF00: +/* 0C1A30 7F08CF00 8FB00004 */ lw $s0, 4($sp) +/* 0C1A34 7F08CF04 03E00008 */ jr $ra +/* 0C1A38 7F08CF08 27BD0008 */ addiu $sp, $sp, 8 +) +#endif + + + + + +#ifdef NONMATCHING +//NOT MATCHING YET -> Wrong Register values +void sub_GAME_7F08CF0C(void) { + + InvItem *item = pPlayer->ptr_inventory_first_in_cycle; + + while (item) { + + if (item->type == 2 ) { + struct prop *temp_a0 = item->type_inv_item.type_prop.prop; + if (item->type_inv_item.type_prop.prop->type == 4 && temp_a0->obj->type == 0xF8) { + return TRUE; + } + } + + item = item->next; + + if (item == pPlayer->ptr_inventory_first_in_cycle) { + break; + } + } + + return FALSE; + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08CF0C +/* 0C1A3C 7F08CF0C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0C1A40 7F08CF10 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0C1A44 7F08CF14 240800F8 */ li $t0, 248 +/* 0C1A48 7F08CF18 24070004 */ li $a3, 4 +/* 0C1A4C 7F08CF1C 8DC311E0 */ lw $v1, 0x11e0($t6) +/* 0C1A50 7F08CF20 24060002 */ li $a2, 2 +/* 0C1A54 7F08CF24 10600013 */ beqz $v1, .L7F08CF74 +/* 0C1A58 7F08CF28 00601025 */ move $v0, $v1 +/* 0C1A5C 7F08CF2C 8C4F0000 */ lw $t7, ($v0) +.L7F08CF30: +/* 0C1A60 7F08CF30 54CF000C */ bnel $a2, $t7, .L7F08CF64 +/* 0C1A64 7F08CF34 8C42000C */ lw $v0, 0xc($v0) +/* 0C1A68 7F08CF38 8C440004 */ lw $a0, 4($v0) +/* 0C1A6C 7F08CF3C 90980000 */ lbu $t8, ($a0) +/* 0C1A70 7F08CF40 54F80008 */ bnel $a3, $t8, .L7F08CF64 +/* 0C1A74 7F08CF44 8C42000C */ lw $v0, 0xc($v0) +/* 0C1A78 7F08CF48 8C850004 */ lw $a1, 4($a0) +/* 0C1A7C 7F08CF4C 84B90004 */ lh $t9, 4($a1) +/* 0C1A80 7F08CF50 55190004 */ bnel $t0, $t9, .L7F08CF64 +/* 0C1A84 7F08CF54 8C42000C */ lw $v0, 0xc($v0) +/* 0C1A88 7F08CF58 03E00008 */ jr $ra +/* 0C1A8C 7F08CF5C 24020001 */ li $v0, 1 + +/* 0C1A90 7F08CF60 8C42000C */ lw $v0, 0xc($v0) +.L7F08CF64: +/* 0C1A94 7F08CF64 50430004 */ beql $v0, $v1, .L7F08CF78 +/* 0C1A98 7F08CF68 00001025 */ move $v0, $zero +/* 0C1A9C 7F08CF6C 5440FFF0 */ bnezl $v0, .L7F08CF30 +/* 0C1AA0 7F08CF70 8C4F0000 */ lw $t7, ($v0) +.L7F08CF74: +/* 0C1AA4 7F08CF74 00001025 */ move $v0, $zero +.L7F08CF78: +/* 0C1AA8 7F08CF78 03E00008 */ jr $ra +/* 0C1AAC 7F08CF7C 00000000 */ nop +) +#endif + +/** + * Is the player alive with flag tag token in inventory + * @return TRUE/FALSE + */ +s32 bondinvIsAliveWithFlag(void) +{ + if (!pPlayer->bonddead) { + return is_weapon_in_inv(ITEM_TOKEN); + } + return 0; +} + + +/** + * Is the Golden Gun in inventory + * @return TRUE/FALSE + */ +int checkforgoldengun(void) +{ + return is_weapon_in_inv(ITEM_GOLDENGUN); +} + + + +int sub_GAME_7F08CFE0(PropRecord *prop) { + + InvItem *item = pPlayer->ptr_inventory_first_in_cycle; + + while (item) { + + if (item->type == INV_ITEM_PROP && item->type_inv_item.type_prop.prop == prop) { + return TRUE; + } + + item = item->next; + + if (item == pPlayer->ptr_inventory_first_in_cycle) { + break; + } + } + + return FALSE; +} + + + + + +#ifdef NONMATCHING +void count_total_items_in_inventory(void) { + + InvItem *inv_item; + s32 numitems = 0; + + if (pPlayer->equipallguns) { + numitems = 0x20; + } + + inv_item = pPlayer->ptr_inventory_first_in_cycle; + + while (inv_item) { + + if (inv_item->type == INV_ITEM_PROP) { + + PropRecord *prop = inv_item->type_inv_item.type_prop.prop; + + if (prop->type == 4) { + + ObjectRecord *obj = prop->Entityp.obj; + + if (obj->runtime_bitflags & 0x400) { + numitems = numitems + 1; + } + + } else if (prop->type == 1) { + + if ((prop->Entityp.obj->flags2 & 0x40000) == 0) { + numitems = numitems + 1; + } + } + } else if (inv_item->type == INV_ITEM_WEAPON) { + + if ((pPlayer->equipallguns == 0) || ( inv_item->type_inv_item.type_weap.weapon < 0x21) == 0) { + numitems = numitems + 1; + } + } + + inv_item = inv_item->next; + + if (inv_item == pPlayer->ptr_inventory_first_in_cycle) { + break; + } + } + + return numitems; + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel count_total_items_in_inventory +/* 0C1B68 7F08D038 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C1B6C 7F08D03C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C1B70 7F08D040 00001825 */ move $v1, $zero +/* 0C1B74 7F08D044 3C0B0004 */ lui $t3, 4 +/* 0C1B78 7F08D048 8C4411EC */ lw $a0, 0x11ec($v0) +/* 0C1B7C 7F08D04C 240A0001 */ li $t2, 1 +/* 0C1B80 7F08D050 24090004 */ li $t1, 4 +/* 0C1B84 7F08D054 10800002 */ beqz $a0, .L7F08D060 +/* 0C1B88 7F08D058 24080002 */ li $t0, 2 +/* 0C1B8C 7F08D05C 24030020 */ li $v1, 32 +.L7F08D060: +/* 0C1B90 7F08D060 8C4611E0 */ lw $a2, 0x11e0($v0) +/* 0C1B94 7F08D064 10C00026 */ beqz $a2, .L7F08D100 +/* 0C1B98 7F08D068 00C02825 */ move $a1, $a2 +/* 0C1B9C 7F08D06C 8CA20000 */ lw $v0, ($a1) +.L7F08D070: +/* 0C1BA0 7F08D070 15020015 */ bne $t0, $v0, .L7F08D0C8 +/* 0C1BA4 7F08D074 00000000 */ nop +/* 0C1BA8 7F08D078 8CA20004 */ lw $v0, 4($a1) +/* 0C1BAC 7F08D07C 90470000 */ lbu $a3, ($v0) +/* 0C1BB0 7F08D080 15270008 */ bne $t1, $a3, .L7F08D0A4 +/* 0C1BB4 7F08D084 00000000 */ nop +/* 0C1BB8 7F08D088 8C470004 */ lw $a3, 4($v0) +/* 0C1BBC 7F08D08C 8CEE0064 */ lw $t6, 0x64($a3) +/* 0C1BC0 7F08D090 31CF0400 */ andi $t7, $t6, 0x400 +/* 0C1BC4 7F08D094 51E00016 */ beql $t7, $zero, .L7F08D0F0 +/* 0C1BC8 7F08D098 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1BCC 7F08D09C 10000013 */ b .L7F08D0EC +/* 0C1BD0 7F08D0A0 24630001 */ addiu $v1, $v1, 1 +.L7F08D0A4: +/* 0C1BD4 7F08D0A4 55470012 */ bnel $t2, $a3, .L7F08D0F0 +/* 0C1BD8 7F08D0A8 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1BDC 7F08D0AC 8C580004 */ lw $t8, 4($v0) +/* 0C1BE0 7F08D0B0 8F19000C */ lw $t9, 0xc($t8) +/* 0C1BE4 7F08D0B4 032B6024 */ and $t4, $t9, $t3 +/* 0C1BE8 7F08D0B8 5580000D */ bnezl $t4, .L7F08D0F0 +/* 0C1BEC 7F08D0BC 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1BF0 7F08D0C0 1000000A */ b .L7F08D0EC +/* 0C1BF4 7F08D0C4 24630001 */ addiu $v1, $v1, 1 +.L7F08D0C8: +/* 0C1BF8 7F08D0C8 55420009 */ bnel $t2, $v0, .L7F08D0F0 +/* 0C1BFC 7F08D0CC 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1C00 7F08D0D0 50800006 */ beql $a0, $zero, .L7F08D0EC +/* 0C1C04 7F08D0D4 24630001 */ addiu $v1, $v1, 1 +/* 0C1C08 7F08D0D8 8CAD0004 */ lw $t5, 4($a1) +/* 0C1C0C 7F08D0DC 29A10021 */ slti $at, $t5, 0x21 +/* 0C1C10 7F08D0E0 54200003 */ bnezl $at, .L7F08D0F0 +/* 0C1C14 7F08D0E4 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1C18 7F08D0E8 24630001 */ addiu $v1, $v1, 1 +.L7F08D0EC: +/* 0C1C1C 7F08D0EC 8CA5000C */ lw $a1, 0xc($a1) +.L7F08D0F0: +/* 0C1C20 7F08D0F0 10A60003 */ beq $a1, $a2, .L7F08D100 +/* 0C1C24 7F08D0F4 00000000 */ nop +/* 0C1C28 7F08D0F8 54A0FFDD */ bnezl $a1, .L7F08D070 +/* 0C1C2C 7F08D0FC 8CA20000 */ lw $v0, ($a1) +.L7F08D100: +/* 0C1C30 7F08D100 03E00008 */ jr $ra +/* 0C1C34 7F08D104 00601025 */ move $v0, $v1 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel count_total_items_in_inventory +/* 0C250C 7F08D99C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C2510 7F08D9A0 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0C2514 7F08D9A4 00001825 */ move $v1, $zero +/* 0C2518 7F08D9A8 3C0E8005 */ lui $t6, %hi(j_text_trigger) # $t6, 0x8005 +/* 0C251C 7F08D9AC 8C4411EC */ lw $a0, 0x11ec($v0) +/* 0C2520 7F08D9B0 3C0B0004 */ lui $t3, 4 +/* 0C2524 7F08D9B4 240A0001 */ li $t2, 1 +/* 0C2528 7F08D9B8 10800007 */ beqz $a0, .Ljp7F08D9D8 +/* 0C252C 7F08D9BC 24090004 */ li $t1, 4 +/* 0C2530 7F08D9C0 8DCE8500 */ lw $t6, %lo(j_text_trigger)($t6) +/* 0C2534 7F08D9C4 24030020 */ li $v1, 32 +/* 0C2538 7F08D9C8 11C00003 */ beqz $t6, .Ljp7F08D9D8 +/* 0C253C 7F08D9CC 00000000 */ nop +/* 0C2540 7F08D9D0 10000001 */ b .Ljp7F08D9D8 +/* 0C2544 7F08D9D4 2403001F */ li $v1, 31 +.Ljp7F08D9D8: +/* 0C2548 7F08D9D8 8C4611E0 */ lw $a2, 0x11e0($v0) +/* 0C254C 7F08D9DC 24080002 */ li $t0, 2 +/* 0C2550 7F08D9E0 10C00026 */ beqz $a2, .Ljp7F08DA7C +/* 0C2554 7F08D9E4 00C02825 */ move $a1, $a2 +/* 0C2558 7F08D9E8 8CA20000 */ lw $v0, ($a1) +.Ljp7F08D9EC: +/* 0C255C 7F08D9EC 15020015 */ bne $t0, $v0, .Ljp7F08DA44 +/* 0C2560 7F08D9F0 00000000 */ nop +/* 0C2564 7F08D9F4 8CA20004 */ lw $v0, 4($a1) +/* 0C2568 7F08D9F8 90470000 */ lbu $a3, ($v0) +/* 0C256C 7F08D9FC 15270008 */ bne $t1, $a3, .Ljp7F08DA20 +/* 0C2570 7F08DA00 00000000 */ nop +/* 0C2574 7F08DA04 8C470004 */ lw $a3, 4($v0) +/* 0C2578 7F08DA08 8CEF0064 */ lw $t7, 0x64($a3) +/* 0C257C 7F08DA0C 31F80400 */ andi $t8, $t7, 0x400 +/* 0C2580 7F08DA10 53000016 */ beql $t8, $zero, .Ljp7F08DA6C +/* 0C2584 7F08DA14 8CA5000C */ lw $a1, 0xc($a1) +/* 0C2588 7F08DA18 10000013 */ b .Ljp7F08DA68 +/* 0C258C 7F08DA1C 24630001 */ addiu $v1, $v1, 1 +.Ljp7F08DA20: +/* 0C2590 7F08DA20 55470012 */ bnel $t2, $a3, .Ljp7F08DA6C +/* 0C2594 7F08DA24 8CA5000C */ lw $a1, 0xc($a1) +/* 0C2598 7F08DA28 8C590004 */ lw $t9, 4($v0) +/* 0C259C 7F08DA2C 8F2C000C */ lw $t4, 0xc($t9) +/* 0C25A0 7F08DA30 018B6824 */ and $t5, $t4, $t3 +/* 0C25A4 7F08DA34 55A0000D */ bnezl $t5, .Ljp7F08DA6C +/* 0C25A8 7F08DA38 8CA5000C */ lw $a1, 0xc($a1) +/* 0C25AC 7F08DA3C 1000000A */ b .Ljp7F08DA68 +/* 0C25B0 7F08DA40 24630001 */ addiu $v1, $v1, 1 +.Ljp7F08DA44: +/* 0C25B4 7F08DA44 55420009 */ bnel $t2, $v0, .Ljp7F08DA6C +/* 0C25B8 7F08DA48 8CA5000C */ lw $a1, 0xc($a1) +/* 0C25BC 7F08DA4C 50800006 */ beql $a0, $zero, .Ljp7F08DA68 +/* 0C25C0 7F08DA50 24630001 */ addiu $v1, $v1, 1 +/* 0C25C4 7F08DA54 8CAE0004 */ lw $t6, 4($a1) +/* 0C25C8 7F08DA58 29C10021 */ slti $at, $t6, 0x21 +/* 0C25CC 7F08DA5C 54200003 */ bnezl $at, .Ljp7F08DA6C +/* 0C25D0 7F08DA60 8CA5000C */ lw $a1, 0xc($a1) +/* 0C25D4 7F08DA64 24630001 */ addiu $v1, $v1, 1 +.Ljp7F08DA68: +/* 0C25D8 7F08DA68 8CA5000C */ lw $a1, 0xc($a1) +.Ljp7F08DA6C: +/* 0C25DC 7F08DA6C 10A60003 */ beq $a1, $a2, .Ljp7F08DA7C +/* 0C25E0 7F08DA70 00000000 */ nop +/* 0C25E4 7F08DA74 54A0FFDD */ bnezl $a1, .Ljp7F08D9EC +/* 0C25E8 7F08DA78 8CA20000 */ lw $v0, ($a1) +.Ljp7F08DA7C: +/* 0C25EC 7F08DA7C 03E00008 */ jr $ra +/* 0C25F0 7F08DA80 00601025 */ move $v0, $v1 +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F08D108(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D108 +/* 0C1C38 7F08D108 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C1C3C 7F08D10C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C1C40 7F08D110 28810020 */ slti $at, $a0, 0x20 +/* 0C1C44 7F08D114 8C4311EC */ lw $v1, 0x11ec($v0) +/* 0C1C48 7F08D118 50600006 */ beql $v1, $zero, .L7F08D134 +/* 0C1C4C 7F08D11C 8C4611E0 */ lw $a2, 0x11e0($v0) +/* 0C1C50 7F08D120 10200003 */ beqz $at, .L7F08D130 +/* 0C1C54 7F08D124 2484FFE0 */ addiu $a0, $a0, -0x20 +/* 0C1C58 7F08D128 03E00008 */ jr $ra +/* 0C1C5C 7F08D12C 00001025 */ move $v0, $zero + +.L7F08D130: +/* 0C1C60 7F08D130 8C4611E0 */ lw $a2, 0x11e0($v0) +.L7F08D134: +/* 0C1C64 7F08D134 3C0B0004 */ lui $t3, 4 +/* 0C1C68 7F08D138 240A0001 */ li $t2, 1 +/* 0C1C6C 7F08D13C 10C00034 */ beqz $a2, .L7F08D210 +/* 0C1C70 7F08D140 00C02825 */ move $a1, $a2 +/* 0C1C74 7F08D144 24090004 */ li $t1, 4 +/* 0C1C78 7F08D148 24080002 */ li $t0, 2 +/* 0C1C7C 7F08D14C 8CA20000 */ lw $v0, ($a1) +.L7F08D150: +/* 0C1C80 7F08D150 1502001D */ bne $t0, $v0, .L7F08D1C8 +/* 0C1C84 7F08D154 00000000 */ nop +/* 0C1C88 7F08D158 8CA20004 */ lw $v0, 4($a1) +/* 0C1C8C 7F08D15C 90470000 */ lbu $a3, ($v0) +/* 0C1C90 7F08D160 1527000C */ bne $t1, $a3, .L7F08D194 +/* 0C1C94 7F08D164 00000000 */ nop +/* 0C1C98 7F08D168 8C470004 */ lw $a3, 4($v0) +/* 0C1C9C 7F08D16C 8CEE0064 */ lw $t6, 0x64($a3) +/* 0C1CA0 7F08D170 31CF0400 */ andi $t7, $t6, 0x400 +/* 0C1CA4 7F08D174 51E00022 */ beql $t7, $zero, .L7F08D200 +/* 0C1CA8 7F08D178 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1CAC 7F08D17C 14800003 */ bnez $a0, .L7F08D18C +/* 0C1CB0 7F08D180 00000000 */ nop +/* 0C1CB4 7F08D184 03E00008 */ jr $ra +/* 0C1CB8 7F08D188 00A01025 */ move $v0, $a1 + +.L7F08D18C: +/* 0C1CBC 7F08D18C 1000001B */ b .L7F08D1FC +/* 0C1CC0 7F08D190 2484FFFF */ addiu $a0, $a0, -1 +.L7F08D194: +/* 0C1CC4 7F08D194 5547001A */ bnel $t2, $a3, .L7F08D200 +/* 0C1CC8 7F08D198 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1CCC 7F08D19C 8C580004 */ lw $t8, 4($v0) +/* 0C1CD0 7F08D1A0 8F19000C */ lw $t9, 0xc($t8) +/* 0C1CD4 7F08D1A4 032B6024 */ and $t4, $t9, $t3 +/* 0C1CD8 7F08D1A8 55800015 */ bnezl $t4, .L7F08D200 +/* 0C1CDC 7F08D1AC 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1CE0 7F08D1B0 14800003 */ bnez $a0, .L7F08D1C0 +/* 0C1CE4 7F08D1B4 00000000 */ nop +/* 0C1CE8 7F08D1B8 03E00008 */ jr $ra +/* 0C1CEC 7F08D1BC 00A01025 */ move $v0, $a1 + +.L7F08D1C0: +/* 0C1CF0 7F08D1C0 1000000E */ b .L7F08D1FC +/* 0C1CF4 7F08D1C4 2484FFFF */ addiu $a0, $a0, -1 +.L7F08D1C8: +/* 0C1CF8 7F08D1C8 5542000D */ bnel $t2, $v0, .L7F08D200 +/* 0C1CFC 7F08D1CC 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1D00 7F08D1D0 10600005 */ beqz $v1, .L7F08D1E8 +/* 0C1D04 7F08D1D4 00000000 */ nop +/* 0C1D08 7F08D1D8 8CAD0004 */ lw $t5, 4($a1) +/* 0C1D0C 7F08D1DC 29A10021 */ slti $at, $t5, 0x21 +/* 0C1D10 7F08D1E0 54200007 */ bnezl $at, .L7F08D200 +/* 0C1D14 7F08D1E4 8CA5000C */ lw $a1, 0xc($a1) +.L7F08D1E8: +/* 0C1D18 7F08D1E8 54800004 */ bnezl $a0, .L7F08D1FC +/* 0C1D1C 7F08D1EC 2484FFFF */ addiu $a0, $a0, -1 +/* 0C1D20 7F08D1F0 03E00008 */ jr $ra +/* 0C1D24 7F08D1F4 00A01025 */ move $v0, $a1 + +/* 0C1D28 7F08D1F8 2484FFFF */ addiu $a0, $a0, -1 +.L7F08D1FC: +/* 0C1D2C 7F08D1FC 8CA5000C */ lw $a1, 0xc($a1) +.L7F08D200: +/* 0C1D30 7F08D200 50A60004 */ beql $a1, $a2, .L7F08D214 +/* 0C1D34 7F08D204 00001025 */ move $v0, $zero +/* 0C1D38 7F08D208 54A0FFD1 */ bnezl $a1, .L7F08D150 +/* 0C1D3C 7F08D20C 8CA20000 */ lw $v0, ($a1) +.L7F08D210: +/* 0C1D40 7F08D210 00001025 */ move $v0, $zero +.L7F08D214: +/* 0C1D44 7F08D214 03E00008 */ jr $ra +/* 0C1D48 7F08D218 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D108 +/* 0C25F4 7F08DA84 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C25F8 7F08DA88 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0C25FC 7F08DA8C 00803025 */ move $a2, $a0 +/* 0C2600 7F08DA90 3C048005 */ lui $a0, %hi(j_text_trigger) # $a0, 0x8005 +/* 0C2604 7F08DA94 8C4311EC */ lw $v1, 0x11ec($v0) +/* 0C2608 7F08DA98 50600012 */ beql $v1, $zero, .Ljp7F08DAE4 +/* 0C260C 7F08DA9C 8C4511E0 */ lw $a1, 0x11e0($v0) +/* 0C2610 7F08DAA0 8C848500 */ lw $a0, %lo(j_text_trigger)($a0) +/* 0C2614 7F08DAA4 24050020 */ li $a1, 32 +/* 0C2618 7F08DAA8 10800003 */ beqz $a0, .Ljp7F08DAB8 +/* 0C261C 7F08DAAC 00000000 */ nop +/* 0C2620 7F08DAB0 10000001 */ b .Ljp7F08DAB8 +/* 0C2624 7F08DAB4 2405001F */ li $a1, 31 +.Ljp7F08DAB8: +/* 0C2628 7F08DAB8 00C5082A */ slt $at, $a2, $a1 +/* 0C262C 7F08DABC 10200003 */ beqz $at, .Ljp7F08DACC +/* 0C2630 7F08DAC0 00000000 */ nop +/* 0C2634 7F08DAC4 03E00008 */ jr $ra +/* 0C2638 7F08DAC8 00001025 */ move $v0, $zero + +.Ljp7F08DACC: +/* 0C263C 7F08DACC 10800003 */ beqz $a0, .Ljp7F08DADC +/* 0C2640 7F08DAD0 24050020 */ li $a1, 32 +/* 0C2644 7F08DAD4 10000001 */ b .Ljp7F08DADC +/* 0C2648 7F08DAD8 2405001F */ li $a1, 31 +.Ljp7F08DADC: +/* 0C264C 7F08DADC 00C53023 */ subu $a2, $a2, $a1 +/* 0C2650 7F08DAE0 8C4511E0 */ lw $a1, 0x11e0($v0) +.Ljp7F08DAE4: +/* 0C2654 7F08DAE4 3C0B0004 */ lui $t3, 4 +/* 0C2658 7F08DAE8 240A0001 */ li $t2, 1 +/* 0C265C 7F08DAEC 10A00034 */ beqz $a1, .Ljp7F08DBC0 +/* 0C2660 7F08DAF0 00A02025 */ move $a0, $a1 +/* 0C2664 7F08DAF4 24090004 */ li $t1, 4 +/* 0C2668 7F08DAF8 24080002 */ li $t0, 2 +/* 0C266C 7F08DAFC 8C820000 */ lw $v0, ($a0) +.Ljp7F08DB00: +/* 0C2670 7F08DB00 1502001D */ bne $t0, $v0, .Ljp7F08DB78 +/* 0C2674 7F08DB04 00000000 */ nop +/* 0C2678 7F08DB08 8C820004 */ lw $v0, 4($a0) +/* 0C267C 7F08DB0C 90470000 */ lbu $a3, ($v0) +/* 0C2680 7F08DB10 1527000C */ bne $t1, $a3, .Ljp7F08DB44 +/* 0C2684 7F08DB14 00000000 */ nop +/* 0C2688 7F08DB18 8C470004 */ lw $a3, 4($v0) +/* 0C268C 7F08DB1C 8CEE0064 */ lw $t6, 0x64($a3) +/* 0C2690 7F08DB20 31CF0400 */ andi $t7, $t6, 0x400 +/* 0C2694 7F08DB24 51E00022 */ beql $t7, $zero, .Ljp7F08DBB0 +/* 0C2698 7F08DB28 8C84000C */ lw $a0, 0xc($a0) +/* 0C269C 7F08DB2C 14C00003 */ bnez $a2, .Ljp7F08DB3C +/* 0C26A0 7F08DB30 00000000 */ nop +/* 0C26A4 7F08DB34 03E00008 */ jr $ra +/* 0C26A8 7F08DB38 00801025 */ move $v0, $a0 + +.Ljp7F08DB3C: +/* 0C26AC 7F08DB3C 1000001B */ b .Ljp7F08DBAC +/* 0C26B0 7F08DB40 24C6FFFF */ addiu $a2, $a2, -1 +.Ljp7F08DB44: +/* 0C26B4 7F08DB44 5547001A */ bnel $t2, $a3, .Ljp7F08DBB0 +/* 0C26B8 7F08DB48 8C84000C */ lw $a0, 0xc($a0) +/* 0C26BC 7F08DB4C 8C580004 */ lw $t8, 4($v0) +/* 0C26C0 7F08DB50 8F19000C */ lw $t9, 0xc($t8) +/* 0C26C4 7F08DB54 032B6024 */ and $t4, $t9, $t3 +/* 0C26C8 7F08DB58 55800015 */ bnezl $t4, .Ljp7F08DBB0 +/* 0C26CC 7F08DB5C 8C84000C */ lw $a0, 0xc($a0) +/* 0C26D0 7F08DB60 14C00003 */ bnez $a2, .Ljp7F08DB70 +/* 0C26D4 7F08DB64 00000000 */ nop +/* 0C26D8 7F08DB68 03E00008 */ jr $ra +/* 0C26DC 7F08DB6C 00801025 */ move $v0, $a0 + +.Ljp7F08DB70: +/* 0C26E0 7F08DB70 1000000E */ b .Ljp7F08DBAC +/* 0C26E4 7F08DB74 24C6FFFF */ addiu $a2, $a2, -1 +.Ljp7F08DB78: +/* 0C26E8 7F08DB78 5542000D */ bnel $t2, $v0, .Ljp7F08DBB0 +/* 0C26EC 7F08DB7C 8C84000C */ lw $a0, 0xc($a0) +/* 0C26F0 7F08DB80 10600005 */ beqz $v1, .Ljp7F08DB98 +/* 0C26F4 7F08DB84 00000000 */ nop +/* 0C26F8 7F08DB88 8C8D0004 */ lw $t5, 4($a0) +/* 0C26FC 7F08DB8C 29A10021 */ slti $at, $t5, 0x21 +/* 0C2700 7F08DB90 54200007 */ bnezl $at, .Ljp7F08DBB0 +/* 0C2704 7F08DB94 8C84000C */ lw $a0, 0xc($a0) +.Ljp7F08DB98: +/* 0C2708 7F08DB98 54C00004 */ bnezl $a2, .Ljp7F08DBAC +/* 0C270C 7F08DB9C 24C6FFFF */ addiu $a2, $a2, -1 +/* 0C2710 7F08DBA0 03E00008 */ jr $ra +/* 0C2714 7F08DBA4 00801025 */ move $v0, $a0 + +/* 0C2718 7F08DBA8 24C6FFFF */ addiu $a2, $a2, -1 +.Ljp7F08DBAC: +/* 0C271C 7F08DBAC 8C84000C */ lw $a0, 0xc($a0) +.Ljp7F08DBB0: +/* 0C2720 7F08DBB0 50850004 */ beql $a0, $a1, .Ljp7F08DBC4 +/* 0C2724 7F08DBB4 00001025 */ move $v0, $zero +/* 0C2728 7F08DBB8 5480FFD1 */ bnezl $a0, .Ljp7F08DB00 +/* 0C272C 7F08DBBC 8C820000 */ lw $v0, ($a0) +.Ljp7F08DBC0: +/* 0C2730 7F08DBC0 00001025 */ move $v0, $zero +.Ljp7F08DBC4: +/* 0C2734 7F08DBC4 03E00008 */ jr $ra +/* 0C2738 7F08DBC8 00000000 */ nop +) +#endif + +#endif + +textoverride *get_textoverride_by_obj(ObjectRecord *obj) { + + textoverride *override = pPlayer->textoverrides; + + while (override) { + + if (override->obj == obj) { + return override; + } + + override = override->next; + } + + return NULL; +} + +textoverride *get_textoverride_by_weaponum(ITEM_IDS weaponnum) { + + textoverride *override = pPlayer->textoverrides; + + while (override) { + + if ((override->objoffset == 0) && (override->weapon == weaponnum)) { + return override; + } + + override = override->next; + } + + return NULL; +} + + +#ifdef VERSION_US +s32 get_weaponnum_by_inv_index(s32 index) { + + textoverride *override; + InvItem *inv_item; + + inv_item = sub_GAME_7F08D108(index); + + if (inv_item) { + + if (inv_item->type == INV_ITEM_PROP) { + + PropRecord *prop = inv_item->type_inv_item.type_prop.prop; + + override = get_textoverride_by_obj(prop->Entityp.obj); + + if (override) { + return override->weapon; + } + + } else if (inv_item->type == INV_ITEM_WEAPON) { + return inv_item->type_inv_item.type_weap.weapon; + } + + } else if ((pPlayer->equipallguns) && (index < ITEM_TANKSHELLS)) { + return index + 1; + } + + return 0; +} +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel get_weaponnum_by_inv_index +/* 0C27C8 7F08DC58 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C27CC 7F08DC5C AFBF0014 */ sw $ra, 0x14($sp) +/* 0C27D0 7F08DC60 0FC236A1 */ jal sub_GAME_7F08D108 +/* 0C27D4 7F08DC64 AFA40018 */ sw $a0, 0x18($sp) +/* 0C27D8 7F08DC68 8FA40018 */ lw $a0, 0x18($sp) +/* 0C27DC 7F08DC6C 10400011 */ beqz $v0, .Ljp7F08DCB4 +/* 0C27E0 7F08DC70 00401825 */ move $v1, $v0 +/* 0C27E4 7F08DC74 8C440000 */ lw $a0, ($v0) +/* 0C27E8 7F08DC78 24010002 */ li $at, 2 +/* 0C27EC 7F08DC7C 54810009 */ bnel $a0, $at, .Ljp7F08DCA4 +/* 0C27F0 7F08DC80 24010001 */ li $at, 1 +/* 0C27F4 7F08DC84 8C420004 */ lw $v0, 4($v0) +/* 0C27F8 7F08DC88 0FC236F3 */ jal get_textoverride_by_obj +/* 0C27FC 7F08DC8C 8C440004 */ lw $a0, 4($v0) +/* 0C2800 7F08DC90 50400021 */ beql $v0, $zero, .Ljp7F08DD18 +/* 0C2804 7F08DC94 00001025 */ move $v0, $zero +/* 0C2808 7F08DC98 1000001F */ b .Ljp7F08DD18 +/* 0C280C 7F08DC9C 8C420008 */ lw $v0, 8($v0) +/* 0C2810 7F08DCA0 24010001 */ li $at, 1 +.Ljp7F08DCA4: +/* 0C2814 7F08DCA4 5481001C */ bnel $a0, $at, .Ljp7F08DD18 +/* 0C2818 7F08DCA8 00001025 */ move $v0, $zero +/* 0C281C 7F08DCAC 1000001A */ b .Ljp7F08DD18 +/* 0C2820 7F08DCB0 8C620004 */ lw $v0, 4($v1) +.Ljp7F08DCB4: +/* 0C2824 7F08DCB4 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0C2828 7F08DCB8 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0C282C 7F08DCBC 3C028005 */ lui $v0, %hi(j_text_trigger) # $v0, 0x8005 +/* 0C2830 7F08DCC0 8DCF11EC */ lw $t7, 0x11ec($t6) +/* 0C2834 7F08DCC4 51E00014 */ beql $t7, $zero, .Ljp7F08DD18 +/* 0C2838 7F08DCC8 00001025 */ move $v0, $zero +/* 0C283C 7F08DCCC 8C428500 */ lw $v0, %lo(j_text_trigger)($v0) +/* 0C2840 7F08DCD0 24030020 */ li $v1, 32 +/* 0C2844 7F08DCD4 10400003 */ beqz $v0, .Ljp7F08DCE4 +/* 0C2848 7F08DCD8 00000000 */ nop +/* 0C284C 7F08DCDC 10000001 */ b .Ljp7F08DCE4 +/* 0C2850 7F08DCE0 2403001F */ li $v1, 31 +.Ljp7F08DCE4: +/* 0C2854 7F08DCE4 0083082A */ slt $at, $a0, $v1 +/* 0C2858 7F08DCE8 5020000B */ beql $at, $zero, .Ljp7F08DD18 +/* 0C285C 7F08DCEC 00001025 */ move $v0, $zero +/* 0C2860 7F08DCF0 10400006 */ beqz $v0, .Ljp7F08DD0C +/* 0C2864 7F08DCF4 24980001 */ addiu $t8, $a0, 1 +/* 0C2868 7F08DCF8 2B010002 */ slti $at, $t8, 2 +/* 0C286C 7F08DCFC 14200003 */ bnez $at, .Ljp7F08DD0C +/* 0C2870 7F08DD00 00000000 */ nop +/* 0C2874 7F08DD04 10000004 */ b .Ljp7F08DD18 +/* 0C2878 7F08DD08 24820002 */ addiu $v0, $a0, 2 +.Ljp7F08DD0C: +/* 0C287C 7F08DD0C 10000002 */ b .Ljp7F08DD18 +/* 0C2880 7F08DD10 24820001 */ addiu $v0, $a0, 1 +/* 0C2884 7F08DD14 00001025 */ move $v0, $zero +.Ljp7F08DD18: +/* 0C2888 7F08DD18 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C288C 7F08DD1C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C2890 7F08DD20 03E00008 */ jr $ra +/* 0C2894 7F08DD24 00000000 */ nop +) +#endif + + + + +#ifdef NONMATCHING +void sub_GAME_7F08D340(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D340 +/* 0C1E70 7F08D340 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C1E74 7F08D344 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C1E78 7F08D348 0FC23442 */ jal sub_GAME_7F08D108 +/* 0C1E7C 7F08D34C AFA40020 */ sw $a0, 0x20($sp) +/* 0C1E80 7F08D350 8FA50020 */ lw $a1, 0x20($sp) +/* 0C1E84 7F08D354 00401825 */ move $v1, $v0 +/* 0C1E88 7F08D358 10400024 */ beqz $v0, .L7F08D3EC +/* 0C1E8C 7F08D35C 00003025 */ move $a2, $zero +/* 0C1E90 7F08D360 8C440000 */ lw $a0, ($v0) +/* 0C1E94 7F08D364 24010002 */ li $at, 2 +/* 0C1E98 7F08D368 54810012 */ bnel $a0, $at, .L7F08D3B4 +/* 0C1E9C 7F08D36C 24010001 */ li $at, 1 +/* 0C1EA0 7F08D370 8C420004 */ lw $v0, 4($v0) +/* 0C1EA4 7F08D374 8C440004 */ lw $a0, 4($v0) +/* 0C1EA8 7F08D378 0FC23487 */ jal get_textoverride_by_obj +/* 0C1EAC 7F08D37C AFA00018 */ sw $zero, 0x18($sp) +/* 0C1EB0 7F08D380 8FA60018 */ lw $a2, 0x18($sp) +/* 0C1EB4 7F08D384 10400025 */ beqz $v0, .L7F08D41C +/* 0C1EB8 7F08D388 00401825 */ move $v1, $v0 +/* 0C1EBC 7F08D38C 8C4E0014 */ lw $t6, 0x14($v0) +/* 0C1EC0 7F08D390 11C00005 */ beqz $t6, .L7F08D3A8 +/* 0C1EC4 7F08D394 00000000 */ nop +/* 0C1EC8 7F08D398 0FC30776 */ jal get_textptr_for_textID +/* 0C1ECC 7F08D39C 8C640014 */ lw $a0, 0x14($v1) +/* 0C1ED0 7F08D3A0 10000021 */ b .L7F08D428 +/* 0C1ED4 7F08D3A4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D3A8: +/* 0C1ED8 7F08D3A8 1000001C */ b .L7F08D41C +/* 0C1EDC 7F08D3AC 8C460008 */ lw $a2, 8($v0) +/* 0C1EE0 7F08D3B0 24010001 */ li $at, 1 +.L7F08D3B4: +/* 0C1EE4 7F08D3B4 14810019 */ bne $a0, $at, .L7F08D41C +/* 0C1EE8 7F08D3B8 00000000 */ nop +/* 0C1EEC 7F08D3BC 8C640004 */ lw $a0, 4($v1) +/* 0C1EF0 7F08D3C0 0FC23497 */ jal get_textoverride_by_weaponum +/* 0C1EF4 7F08D3C4 AFA40018 */ sw $a0, 0x18($sp) +/* 0C1EF8 7F08D3C8 10400014 */ beqz $v0, .L7F08D41C +/* 0C1EFC 7F08D3CC 8FA60018 */ lw $a2, 0x18($sp) +/* 0C1F00 7F08D3D0 8C4F0014 */ lw $t7, 0x14($v0) +/* 0C1F04 7F08D3D4 11E00011 */ beqz $t7, .L7F08D41C +/* 0C1F08 7F08D3D8 00000000 */ nop +/* 0C1F0C 7F08D3DC 0FC30776 */ jal get_textptr_for_textID +/* 0C1F10 7F08D3E0 8C440014 */ lw $a0, 0x14($v0) +/* 0C1F14 7F08D3E4 10000010 */ b .L7F08D428 +/* 0C1F18 7F08D3E8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D3EC: +/* 0C1F1C 7F08D3EC 3C188008 */ lui $t8, %hi(pPlayer) +/* 0C1F20 7F08D3F0 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0C1F24 7F08D3F4 28A10020 */ slti $at, $a1, 0x20 +/* 0C1F28 7F08D3F8 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C1F2C 7F08D3FC 13200007 */ beqz $t9, .L7F08D41C +/* 0C1F30 7F08D400 00000000 */ nop +/* 0C1F34 7F08D404 10200005 */ beqz $at, .L7F08D41C +/* 0C1F38 7F08D408 00000000 */ nop +/* 0C1F3C 7F08D40C 0FC19C2A */ jal get_ptr_short_watch_text_for_item +/* 0C1F40 7F08D410 24A40001 */ addiu $a0, $a1, 1 +/* 0C1F44 7F08D414 10000004 */ b .L7F08D428 +/* 0C1F48 7F08D418 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D41C: +/* 0C1F4C 7F08D41C 0FC19C2A */ jal get_ptr_short_watch_text_for_item +/* 0C1F50 7F08D420 00C02025 */ move $a0, $a2 +/* 0C1F54 7F08D424 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D428: +/* 0C1F58 7F08D428 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C1F5C 7F08D42C 03E00008 */ jr $ra +/* 0C1F60 7F08D430 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D340 +/* 0C2898 7F08DD28 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C289C 7F08DD2C AFBF0014 */ sw $ra, 0x14($sp) +/* 0C28A0 7F08DD30 0FC236A1 */ jal sub_GAME_7F08D108 +/* 0C28A4 7F08DD34 AFA40020 */ sw $a0, 0x20($sp) +/* 0C28A8 7F08DD38 8FA50020 */ lw $a1, 0x20($sp) +/* 0C28AC 7F08DD3C 00401825 */ move $v1, $v0 +/* 0C28B0 7F08DD40 10400024 */ beqz $v0, .Ljp7F08DDD4 +/* 0C28B4 7F08DD44 00003025 */ move $a2, $zero +/* 0C28B8 7F08DD48 8C440000 */ lw $a0, ($v0) +/* 0C28BC 7F08DD4C 24010002 */ li $at, 2 +/* 0C28C0 7F08DD50 54810012 */ bnel $a0, $at, .Ljp7F08DD9C +/* 0C28C4 7F08DD54 24010001 */ li $at, 1 +/* 0C28C8 7F08DD58 8C420004 */ lw $v0, 4($v0) +/* 0C28CC 7F08DD5C 8C440004 */ lw $a0, 4($v0) +/* 0C28D0 7F08DD60 0FC236F3 */ jal get_textoverride_by_obj +/* 0C28D4 7F08DD64 AFA00018 */ sw $zero, 0x18($sp) +/* 0C28D8 7F08DD68 8FA60018 */ lw $a2, 0x18($sp) +/* 0C28DC 7F08DD6C 10400035 */ beqz $v0, .Ljp7F08DE44 +/* 0C28E0 7F08DD70 00401825 */ move $v1, $v0 +/* 0C28E4 7F08DD74 8C4E0014 */ lw $t6, 0x14($v0) +/* 0C28E8 7F08DD78 11C00005 */ beqz $t6, .Ljp7F08DD90 +/* 0C28EC 7F08DD7C 00000000 */ nop +/* 0C28F0 7F08DD80 0FC30AA2 */ jal get_textptr_for_textID +/* 0C28F4 7F08DD84 8C640014 */ lw $a0, 0x14($v1) +/* 0C28F8 7F08DD88 10000031 */ b .Ljp7F08DE50 +/* 0C28FC 7F08DD8C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DD90: +/* 0C2900 7F08DD90 1000002C */ b .Ljp7F08DE44 +/* 0C2904 7F08DD94 8C460008 */ lw $a2, 8($v0) +/* 0C2908 7F08DD98 24010001 */ li $at, 1 +.Ljp7F08DD9C: +/* 0C290C 7F08DD9C 14810029 */ bne $a0, $at, .Ljp7F08DE44 +/* 0C2910 7F08DDA0 00000000 */ nop +/* 0C2914 7F08DDA4 8C640004 */ lw $a0, 4($v1) +/* 0C2918 7F08DDA8 0FC23703 */ jal get_textoverride_by_weaponum +/* 0C291C 7F08DDAC AFA40018 */ sw $a0, 0x18($sp) +/* 0C2920 7F08DDB0 10400024 */ beqz $v0, .Ljp7F08DE44 +/* 0C2924 7F08DDB4 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2928 7F08DDB8 8C4F0014 */ lw $t7, 0x14($v0) +/* 0C292C 7F08DDBC 11E00021 */ beqz $t7, .Ljp7F08DE44 +/* 0C2930 7F08DDC0 00000000 */ nop +/* 0C2934 7F08DDC4 0FC30AA2 */ jal get_textptr_for_textID +/* 0C2938 7F08DDC8 8C440014 */ lw $a0, 0x14($v0) +/* 0C293C 7F08DDCC 10000020 */ b .Ljp7F08DE50 +/* 0C2940 7F08DDD0 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DDD4: +/* 0C2944 7F08DDD4 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0C2948 7F08DDD8 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0C294C 7F08DDDC 3C028005 */ lui $v0, %hi(j_text_trigger) # $v0, 0x8005 +/* 0C2950 7F08DDE0 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C2954 7F08DDE4 13200017 */ beqz $t9, .Ljp7F08DE44 +/* 0C2958 7F08DDE8 00000000 */ nop +/* 0C295C 7F08DDEC 8C428500 */ lw $v0, %lo(j_text_trigger)($v0) +/* 0C2960 7F08DDF0 24030020 */ li $v1, 32 +/* 0C2964 7F08DDF4 10400003 */ beqz $v0, .Ljp7F08DE04 +/* 0C2968 7F08DDF8 00000000 */ nop +/* 0C296C 7F08DDFC 10000001 */ b .Ljp7F08DE04 +/* 0C2970 7F08DE00 2403001F */ li $v1, 31 +.Ljp7F08DE04: +/* 0C2974 7F08DE04 00A3082A */ slt $at, $a1, $v1 +/* 0C2978 7F08DE08 1020000E */ beqz $at, .Ljp7F08DE44 +/* 0C297C 7F08DE0C 00000000 */ nop +/* 0C2980 7F08DE10 10400008 */ beqz $v0, .Ljp7F08DE34 +/* 0C2984 7F08DE14 24A80001 */ addiu $t0, $a1, 1 +/* 0C2988 7F08DE18 29010002 */ slti $at, $t0, 2 +/* 0C298C 7F08DE1C 14200005 */ bnez $at, .Ljp7F08DE34 +/* 0C2990 7F08DE20 00000000 */ nop +/* 0C2994 7F08DE24 0FC19DA0 */ jal get_ptr_short_watch_text_for_item +/* 0C2998 7F08DE28 24A40002 */ addiu $a0, $a1, 2 +/* 0C299C 7F08DE2C 10000008 */ b .Ljp7F08DE50 +/* 0C29A0 7F08DE30 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DE34: +/* 0C29A4 7F08DE34 0FC19DA0 */ jal get_ptr_short_watch_text_for_item +/* 0C29A8 7F08DE38 24A40001 */ addiu $a0, $a1, 1 +/* 0C29AC 7F08DE3C 10000004 */ b .Ljp7F08DE50 +/* 0C29B0 7F08DE40 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DE44: +/* 0C29B4 7F08DE44 0FC19DA0 */ jal get_ptr_short_watch_text_for_item +/* 0C29B8 7F08DE48 00C02025 */ move $a0, $a2 +/* 0C29BC 7F08DE4C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DE50: +/* 0C29C0 7F08DE50 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C29C4 7F08DE54 03E00008 */ jr $ra +/* 0C29C8 7F08DE58 00000000 */ nop +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F08D434(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D434 +/* 0C1F64 7F08D434 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C1F68 7F08D438 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C1F6C 7F08D43C 0FC23442 */ jal sub_GAME_7F08D108 +/* 0C1F70 7F08D440 AFA40020 */ sw $a0, 0x20($sp) +/* 0C1F74 7F08D444 8FA50020 */ lw $a1, 0x20($sp) +/* 0C1F78 7F08D448 00401825 */ move $v1, $v0 +/* 0C1F7C 7F08D44C 10400024 */ beqz $v0, .L7F08D4E0 +/* 0C1F80 7F08D450 00003025 */ move $a2, $zero +/* 0C1F84 7F08D454 8C440000 */ lw $a0, ($v0) +/* 0C1F88 7F08D458 24010002 */ li $at, 2 +/* 0C1F8C 7F08D45C 54810012 */ bnel $a0, $at, .L7F08D4A8 +/* 0C1F90 7F08D460 24010001 */ li $at, 1 +/* 0C1F94 7F08D464 8C420004 */ lw $v0, 4($v0) +/* 0C1F98 7F08D468 8C440004 */ lw $a0, 4($v0) +/* 0C1F9C 7F08D46C 0FC23487 */ jal get_textoverride_by_obj +/* 0C1FA0 7F08D470 AFA00018 */ sw $zero, 0x18($sp) +/* 0C1FA4 7F08D474 8FA60018 */ lw $a2, 0x18($sp) +/* 0C1FA8 7F08D478 10400025 */ beqz $v0, .L7F08D510 +/* 0C1FAC 7F08D47C 00401825 */ move $v1, $v0 +/* 0C1FB0 7F08D480 8C4E0018 */ lw $t6, 0x18($v0) +/* 0C1FB4 7F08D484 11C00005 */ beqz $t6, .L7F08D49C +/* 0C1FB8 7F08D488 00000000 */ nop +/* 0C1FBC 7F08D48C 0FC30776 */ jal get_textptr_for_textID +/* 0C1FC0 7F08D490 8C640018 */ lw $a0, 0x18($v1) +/* 0C1FC4 7F08D494 10000021 */ b .L7F08D51C +/* 0C1FC8 7F08D498 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D49C: +/* 0C1FCC 7F08D49C 1000001C */ b .L7F08D510 +/* 0C1FD0 7F08D4A0 8C460008 */ lw $a2, 8($v0) +/* 0C1FD4 7F08D4A4 24010001 */ li $at, 1 +.L7F08D4A8: +/* 0C1FD8 7F08D4A8 14810019 */ bne $a0, $at, .L7F08D510 +/* 0C1FDC 7F08D4AC 00000000 */ nop +/* 0C1FE0 7F08D4B0 8C640004 */ lw $a0, 4($v1) +/* 0C1FE4 7F08D4B4 0FC23497 */ jal get_textoverride_by_weaponum +/* 0C1FE8 7F08D4B8 AFA40018 */ sw $a0, 0x18($sp) +/* 0C1FEC 7F08D4BC 10400014 */ beqz $v0, .L7F08D510 +/* 0C1FF0 7F08D4C0 8FA60018 */ lw $a2, 0x18($sp) +/* 0C1FF4 7F08D4C4 8C4F0018 */ lw $t7, 0x18($v0) +/* 0C1FF8 7F08D4C8 11E00011 */ beqz $t7, .L7F08D510 +/* 0C1FFC 7F08D4CC 00000000 */ nop +/* 0C2000 7F08D4D0 0FC30776 */ jal get_textptr_for_textID +/* 0C2004 7F08D4D4 8C440018 */ lw $a0, 0x18($v0) +/* 0C2008 7F08D4D8 10000010 */ b .L7F08D51C +/* 0C200C 7F08D4DC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D4E0: +/* 0C2010 7F08D4E0 3C188008 */ lui $t8, %hi(pPlayer) +/* 0C2014 7F08D4E4 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0C2018 7F08D4E8 28A10020 */ slti $at, $a1, 0x20 +/* 0C201C 7F08D4EC 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C2020 7F08D4F0 13200007 */ beqz $t9, .L7F08D510 +/* 0C2024 7F08D4F4 00000000 */ nop +/* 0C2028 7F08D4F8 10200005 */ beqz $at, .L7F08D510 +/* 0C202C 7F08D4FC 00000000 */ nop +/* 0C2030 7F08D500 0FC19C37 */ jal get_ptr_long_watch_text_for_item +/* 0C2034 7F08D504 24A40001 */ addiu $a0, $a1, 1 +/* 0C2038 7F08D508 10000004 */ b .L7F08D51C +/* 0C203C 7F08D50C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D510: +/* 0C2040 7F08D510 0FC19C37 */ jal get_ptr_long_watch_text_for_item +/* 0C2044 7F08D514 00C02025 */ move $a0, $a2 +/* 0C2048 7F08D518 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D51C: +/* 0C204C 7F08D51C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C2050 7F08D520 03E00008 */ jr $ra +/* 0C2054 7F08D524 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D434 +/* 0C29CC 7F08DE5C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C29D0 7F08DE60 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C29D4 7F08DE64 0FC236A1 */ jal sub_GAME_7F08D108 +/* 0C29D8 7F08DE68 AFA40020 */ sw $a0, 0x20($sp) +/* 0C29DC 7F08DE6C 8FA50020 */ lw $a1, 0x20($sp) +/* 0C29E0 7F08DE70 00401825 */ move $v1, $v0 +/* 0C29E4 7F08DE74 10400024 */ beqz $v0, .Ljp7F08DF08 +/* 0C29E8 7F08DE78 00003025 */ move $a2, $zero +/* 0C29EC 7F08DE7C 8C440000 */ lw $a0, ($v0) +/* 0C29F0 7F08DE80 24010002 */ li $at, 2 +/* 0C29F4 7F08DE84 54810012 */ bnel $a0, $at, .Ljp7F08DED0 +/* 0C29F8 7F08DE88 24010001 */ li $at, 1 +/* 0C29FC 7F08DE8C 8C420004 */ lw $v0, 4($v0) +/* 0C2A00 7F08DE90 8C440004 */ lw $a0, 4($v0) +/* 0C2A04 7F08DE94 0FC236F3 */ jal get_textoverride_by_obj +/* 0C2A08 7F08DE98 AFA00018 */ sw $zero, 0x18($sp) +/* 0C2A0C 7F08DE9C 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2A10 7F08DEA0 10400035 */ beqz $v0, .Ljp7F08DF78 +/* 0C2A14 7F08DEA4 00401825 */ move $v1, $v0 +/* 0C2A18 7F08DEA8 8C4E0018 */ lw $t6, 0x18($v0) +/* 0C2A1C 7F08DEAC 11C00005 */ beqz $t6, .Ljp7F08DEC4 +/* 0C2A20 7F08DEB0 00000000 */ nop +/* 0C2A24 7F08DEB4 0FC30AA2 */ jal get_textptr_for_textID +/* 0C2A28 7F08DEB8 8C640018 */ lw $a0, 0x18($v1) +/* 0C2A2C 7F08DEBC 10000031 */ b .Ljp7F08DF84 +/* 0C2A30 7F08DEC0 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DEC4: +/* 0C2A34 7F08DEC4 1000002C */ b .Ljp7F08DF78 +/* 0C2A38 7F08DEC8 8C460008 */ lw $a2, 8($v0) +/* 0C2A3C 7F08DECC 24010001 */ li $at, 1 +.Ljp7F08DED0: +/* 0C2A40 7F08DED0 14810029 */ bne $a0, $at, .Ljp7F08DF78 +/* 0C2A44 7F08DED4 00000000 */ nop +/* 0C2A48 7F08DED8 8C640004 */ lw $a0, 4($v1) +/* 0C2A4C 7F08DEDC 0FC23703 */ jal get_textoverride_by_weaponum +/* 0C2A50 7F08DEE0 AFA40018 */ sw $a0, 0x18($sp) +/* 0C2A54 7F08DEE4 10400024 */ beqz $v0, .Ljp7F08DF78 +/* 0C2A58 7F08DEE8 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2A5C 7F08DEEC 8C4F0018 */ lw $t7, 0x18($v0) +/* 0C2A60 7F08DEF0 11E00021 */ beqz $t7, .Ljp7F08DF78 +/* 0C2A64 7F08DEF4 00000000 */ nop +/* 0C2A68 7F08DEF8 0FC30AA2 */ jal get_textptr_for_textID +/* 0C2A6C 7F08DEFC 8C440018 */ lw $a0, 0x18($v0) +/* 0C2A70 7F08DF00 10000020 */ b .Ljp7F08DF84 +/* 0C2A74 7F08DF04 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DF08: +/* 0C2A78 7F08DF08 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0C2A7C 7F08DF0C 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0C2A80 7F08DF10 3C028005 */ lui $v0, %hi(j_text_trigger) # $v0, 0x8005 +/* 0C2A84 7F08DF14 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C2A88 7F08DF18 13200017 */ beqz $t9, .Ljp7F08DF78 +/* 0C2A8C 7F08DF1C 00000000 */ nop +/* 0C2A90 7F08DF20 8C428500 */ lw $v0, %lo(j_text_trigger)($v0) +/* 0C2A94 7F08DF24 24030020 */ li $v1, 32 +/* 0C2A98 7F08DF28 10400003 */ beqz $v0, .Ljp7F08DF38 +/* 0C2A9C 7F08DF2C 00000000 */ nop +/* 0C2AA0 7F08DF30 10000001 */ b .Ljp7F08DF38 +/* 0C2AA4 7F08DF34 2403001F */ li $v1, 31 +.Ljp7F08DF38: +/* 0C2AA8 7F08DF38 00A3082A */ slt $at, $a1, $v1 +/* 0C2AAC 7F08DF3C 1020000E */ beqz $at, .Ljp7F08DF78 +/* 0C2AB0 7F08DF40 00000000 */ nop +/* 0C2AB4 7F08DF44 10400008 */ beqz $v0, .Ljp7F08DF68 +/* 0C2AB8 7F08DF48 24A80001 */ addiu $t0, $a1, 1 +/* 0C2ABC 7F08DF4C 29010002 */ slti $at, $t0, 2 +/* 0C2AC0 7F08DF50 14200005 */ bnez $at, .Ljp7F08DF68 +/* 0C2AC4 7F08DF54 00000000 */ nop +/* 0C2AC8 7F08DF58 0FC19DAD */ jal get_ptr_long_watch_text_for_item +/* 0C2ACC 7F08DF5C 24A40002 */ addiu $a0, $a1, 2 +/* 0C2AD0 7F08DF60 10000008 */ b .Ljp7F08DF84 +/* 0C2AD4 7F08DF64 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DF68: +/* 0C2AD8 7F08DF68 0FC19DAD */ jal get_ptr_long_watch_text_for_item +/* 0C2ADC 7F08DF6C 24A40001 */ addiu $a0, $a1, 1 +/* 0C2AE0 7F08DF70 10000004 */ b .Ljp7F08DF84 +/* 0C2AE4 7F08DF74 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DF78: +/* 0C2AE8 7F08DF78 0FC19DAD */ jal get_ptr_long_watch_text_for_item +/* 0C2AEC 7F08DF7C 00C02025 */ move $a0, $a2 +/* 0C2AF0 7F08DF80 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08DF84: +/* 0C2AF4 7F08DF84 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C2AF8 7F08DF88 03E00008 */ jr $ra +/* 0C2AFC 7F08DF8C 00000000 */ nop +) +#endif + +#endif + + + + +int sub_GAME_7F08D528(int index) { + return get_45_degree_angle_0(get_weaponnum_by_inv_index(index)); +} + + + + + + +int sub_GAME_7F08D550(int index) { + return get_horizontal_offset_on_solo_watch_menu_for_item(get_weaponnum_by_inv_index(index)); +} + + + + + +int sub_GAME_7F08D578(int index) { + return get_vertical_offset_on_solo_watch_menu_for_item(get_weaponnum_by_inv_index(index)); +} + + + + + +int sub_GAME_7F08D5A0(int index) { + return get_depth_offset_solo_watch_menu_inventory_page_for_item(get_weaponnum_by_inv_index(index)); +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08D5C8(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D5C8 +/* 0C20F8 7F08D5C8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C20FC 7F08D5CC AFBF0014 */ sw $ra, 0x14($sp) +/* 0C2100 7F08D5D0 0FC23442 */ jal sub_GAME_7F08D108 +/* 0C2104 7F08D5D4 AFA40020 */ sw $a0, 0x20($sp) +/* 0C2108 7F08D5D8 8FA50020 */ lw $a1, 0x20($sp) +/* 0C210C 7F08D5DC 00401825 */ move $v1, $v0 +/* 0C2110 7F08D5E0 10400024 */ beqz $v0, .L7F08D674 +/* 0C2114 7F08D5E4 00003025 */ move $a2, $zero +/* 0C2118 7F08D5E8 8C440000 */ lw $a0, ($v0) +/* 0C211C 7F08D5EC 24010002 */ li $at, 2 +/* 0C2120 7F08D5F0 54810012 */ bnel $a0, $at, .L7F08D63C +/* 0C2124 7F08D5F4 24010001 */ li $at, 1 +/* 0C2128 7F08D5F8 8C420004 */ lw $v0, 4($v0) +/* 0C212C 7F08D5FC 8C440004 */ lw $a0, 4($v0) +/* 0C2130 7F08D600 0FC23487 */ jal get_textoverride_by_obj +/* 0C2134 7F08D604 AFA00018 */ sw $zero, 0x18($sp) +/* 0C2138 7F08D608 8FA60018 */ lw $a2, 0x18($sp) +/* 0C213C 7F08D60C 10400025 */ beqz $v0, .L7F08D6A4 +/* 0C2140 7F08D610 00401825 */ move $v1, $v0 +/* 0C2144 7F08D614 8C4E000C */ lw $t6, 0xc($v0) +/* 0C2148 7F08D618 11C00005 */ beqz $t6, .L7F08D630 +/* 0C214C 7F08D61C 00000000 */ nop +/* 0C2150 7F08D620 0FC30776 */ jal get_textptr_for_textID +/* 0C2154 7F08D624 8C64000C */ lw $a0, 0xc($v1) +/* 0C2158 7F08D628 10000021 */ b .L7F08D6B0 +/* 0C215C 7F08D62C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D630: +/* 0C2160 7F08D630 1000001C */ b .L7F08D6A4 +/* 0C2164 7F08D634 8C460008 */ lw $a2, 8($v0) +/* 0C2168 7F08D638 24010001 */ li $at, 1 +.L7F08D63C: +/* 0C216C 7F08D63C 14810019 */ bne $a0, $at, .L7F08D6A4 +/* 0C2170 7F08D640 00000000 */ nop +/* 0C2174 7F08D644 8C640004 */ lw $a0, 4($v1) +/* 0C2178 7F08D648 0FC23497 */ jal get_textoverride_by_weaponum +/* 0C217C 7F08D64C AFA40018 */ sw $a0, 0x18($sp) +/* 0C2180 7F08D650 10400014 */ beqz $v0, .L7F08D6A4 +/* 0C2184 7F08D654 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2188 7F08D658 8C4F000C */ lw $t7, 0xc($v0) +/* 0C218C 7F08D65C 11E00011 */ beqz $t7, .L7F08D6A4 +/* 0C2190 7F08D660 00000000 */ nop +/* 0C2194 7F08D664 0FC30776 */ jal get_textptr_for_textID +/* 0C2198 7F08D668 8C44000C */ lw $a0, 0xc($v0) +/* 0C219C 7F08D66C 10000010 */ b .L7F08D6B0 +/* 0C21A0 7F08D670 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D674: +/* 0C21A4 7F08D674 3C188008 */ lui $t8, %hi(pPlayer) +/* 0C21A8 7F08D678 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0C21AC 7F08D67C 28A10020 */ slti $at, $a1, 0x20 +/* 0C21B0 7F08D680 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C21B4 7F08D684 13200007 */ beqz $t9, .L7F08D6A4 +/* 0C21B8 7F08D688 00000000 */ nop +/* 0C21BC 7F08D68C 10200005 */ beqz $at, .L7F08D6A4 +/* 0C21C0 7F08D690 00000000 */ nop +/* 0C21C4 7F08D694 0FC19C10 */ jal get_ptr_first_title_line_item +/* 0C21C8 7F08D698 24A40001 */ addiu $a0, $a1, 1 +/* 0C21CC 7F08D69C 10000004 */ b .L7F08D6B0 +/* 0C21D0 7F08D6A0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D6A4: +/* 0C21D4 7F08D6A4 0FC19C10 */ jal get_ptr_first_title_line_item +/* 0C21D8 7F08D6A8 00C02025 */ move $a0, $a2 +/* 0C21DC 7F08D6AC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D6B0: +/* 0C21E0 7F08D6B0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C21E4 7F08D6B4 03E00008 */ jr $ra +/* 0C21E8 7F08D6B8 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D5C8 +/* 0C2BA0 7F08E030 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C2BA4 7F08E034 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C2BA8 7F08E038 0FC236A1 */ jal sub_GAME_7F08D108 +/* 0C2BAC 7F08E03C AFA40020 */ sw $a0, 0x20($sp) +/* 0C2BB0 7F08E040 8FA50020 */ lw $a1, 0x20($sp) +/* 0C2BB4 7F08E044 00401825 */ move $v1, $v0 +/* 0C2BB8 7F08E048 10400024 */ beqz $v0, .Ljp7F08E0DC +/* 0C2BBC 7F08E04C 00003025 */ move $a2, $zero +/* 0C2BC0 7F08E050 8C440000 */ lw $a0, ($v0) +/* 0C2BC4 7F08E054 24010002 */ li $at, 2 +/* 0C2BC8 7F08E058 54810012 */ bnel $a0, $at, .Ljp7F08E0A4 +/* 0C2BCC 7F08E05C 24010001 */ li $at, 1 +/* 0C2BD0 7F08E060 8C420004 */ lw $v0, 4($v0) +/* 0C2BD4 7F08E064 8C440004 */ lw $a0, 4($v0) +/* 0C2BD8 7F08E068 0FC236F3 */ jal get_textoverride_by_obj +/* 0C2BDC 7F08E06C AFA00018 */ sw $zero, 0x18($sp) +/* 0C2BE0 7F08E070 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2BE4 7F08E074 10400035 */ beqz $v0, .Ljp7F08E14C +/* 0C2BE8 7F08E078 00401825 */ move $v1, $v0 +/* 0C2BEC 7F08E07C 8C4E000C */ lw $t6, 0xc($v0) +/* 0C2BF0 7F08E080 11C00005 */ beqz $t6, .Ljp7F08E098 +/* 0C2BF4 7F08E084 00000000 */ nop +/* 0C2BF8 7F08E088 0FC30AA2 */ jal get_textptr_for_textID +/* 0C2BFC 7F08E08C 8C64000C */ lw $a0, 0xc($v1) +/* 0C2C00 7F08E090 10000031 */ b .Ljp7F08E158 +/* 0C2C04 7F08E094 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E098: +/* 0C2C08 7F08E098 1000002C */ b .Ljp7F08E14C +/* 0C2C0C 7F08E09C 8C460008 */ lw $a2, 8($v0) +/* 0C2C10 7F08E0A0 24010001 */ li $at, 1 +.Ljp7F08E0A4: +/* 0C2C14 7F08E0A4 14810029 */ bne $a0, $at, .Ljp7F08E14C +/* 0C2C18 7F08E0A8 00000000 */ nop +/* 0C2C1C 7F08E0AC 8C640004 */ lw $a0, 4($v1) +/* 0C2C20 7F08E0B0 0FC23703 */ jal get_textoverride_by_weaponum +/* 0C2C24 7F08E0B4 AFA40018 */ sw $a0, 0x18($sp) +/* 0C2C28 7F08E0B8 10400024 */ beqz $v0, .Ljp7F08E14C +/* 0C2C2C 7F08E0BC 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2C30 7F08E0C0 8C4F000C */ lw $t7, 0xc($v0) +/* 0C2C34 7F08E0C4 11E00021 */ beqz $t7, .Ljp7F08E14C +/* 0C2C38 7F08E0C8 00000000 */ nop +/* 0C2C3C 7F08E0CC 0FC30AA2 */ jal get_textptr_for_textID +/* 0C2C40 7F08E0D0 8C44000C */ lw $a0, 0xc($v0) +/* 0C2C44 7F08E0D4 10000020 */ b .Ljp7F08E158 +/* 0C2C48 7F08E0D8 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E0DC: +/* 0C2C4C 7F08E0DC 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0C2C50 7F08E0E0 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0C2C54 7F08E0E4 3C028005 */ lui $v0, %hi(j_text_trigger) # $v0, 0x8005 +/* 0C2C58 7F08E0E8 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C2C5C 7F08E0EC 13200017 */ beqz $t9, .Ljp7F08E14C +/* 0C2C60 7F08E0F0 00000000 */ nop +/* 0C2C64 7F08E0F4 8C428500 */ lw $v0, %lo(j_text_trigger)($v0) +/* 0C2C68 7F08E0F8 24030020 */ li $v1, 32 +/* 0C2C6C 7F08E0FC 10400003 */ beqz $v0, .Ljp7F08E10C +/* 0C2C70 7F08E100 00000000 */ nop +/* 0C2C74 7F08E104 10000001 */ b .Ljp7F08E10C +/* 0C2C78 7F08E108 2403001F */ li $v1, 31 +.Ljp7F08E10C: +/* 0C2C7C 7F08E10C 00A3082A */ slt $at, $a1, $v1 +/* 0C2C80 7F08E110 1020000E */ beqz $at, .Ljp7F08E14C +/* 0C2C84 7F08E114 00000000 */ nop +/* 0C2C88 7F08E118 10400008 */ beqz $v0, .Ljp7F08E13C +/* 0C2C8C 7F08E11C 24A80001 */ addiu $t0, $a1, 1 +/* 0C2C90 7F08E120 29010002 */ slti $at, $t0, 2 +/* 0C2C94 7F08E124 14200005 */ bnez $at, .Ljp7F08E13C +/* 0C2C98 7F08E128 00000000 */ nop +/* 0C2C9C 7F08E12C 0FC19D86 */ jal get_ptr_first_title_line_item +/* 0C2CA0 7F08E130 24A40002 */ addiu $a0, $a1, 2 +/* 0C2CA4 7F08E134 10000008 */ b .Ljp7F08E158 +/* 0C2CA8 7F08E138 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E13C: +/* 0C2CAC 7F08E13C 0FC19D86 */ jal get_ptr_first_title_line_item +/* 0C2CB0 7F08E140 24A40001 */ addiu $a0, $a1, 1 +/* 0C2CB4 7F08E144 10000004 */ b .Ljp7F08E158 +/* 0C2CB8 7F08E148 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E14C: +/* 0C2CBC 7F08E14C 0FC19D86 */ jal get_ptr_first_title_line_item +/* 0C2CC0 7F08E150 00C02025 */ move $a0, $a2 +/* 0C2CC4 7F08E154 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E158: +/* 0C2CC8 7F08E158 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C2CCC 7F08E15C 03E00008 */ jr $ra +/* 0C2CD0 7F08E160 00000000 */ nop +) +#endif + +#endif + + + + +#ifdef NONMATCHING +void sub_GAME_7F08D6BC(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D6BC +/* 0C21EC 7F08D6BC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C21F0 7F08D6C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C21F4 7F08D6C4 0FC23442 */ jal sub_GAME_7F08D108 +/* 0C21F8 7F08D6C8 AFA40020 */ sw $a0, 0x20($sp) +/* 0C21FC 7F08D6CC 8FA50020 */ lw $a1, 0x20($sp) +/* 0C2200 7F08D6D0 00401825 */ move $v1, $v0 +/* 0C2204 7F08D6D4 10400024 */ beqz $v0, .L7F08D768 +/* 0C2208 7F08D6D8 00003025 */ move $a2, $zero +/* 0C220C 7F08D6DC 8C440000 */ lw $a0, ($v0) +/* 0C2210 7F08D6E0 24010002 */ li $at, 2 +/* 0C2214 7F08D6E4 54810012 */ bnel $a0, $at, .L7F08D730 +/* 0C2218 7F08D6E8 24010001 */ li $at, 1 +/* 0C221C 7F08D6EC 8C420004 */ lw $v0, 4($v0) +/* 0C2220 7F08D6F0 8C440004 */ lw $a0, 4($v0) +/* 0C2224 7F08D6F4 0FC23487 */ jal get_textoverride_by_obj +/* 0C2228 7F08D6F8 AFA00018 */ sw $zero, 0x18($sp) +/* 0C222C 7F08D6FC 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2230 7F08D700 10400025 */ beqz $v0, .L7F08D798 +/* 0C2234 7F08D704 00401825 */ move $v1, $v0 +/* 0C2238 7F08D708 8C4E0010 */ lw $t6, 0x10($v0) +/* 0C223C 7F08D70C 11C00005 */ beqz $t6, .L7F08D724 +/* 0C2240 7F08D710 00000000 */ nop +/* 0C2244 7F08D714 0FC30776 */ jal get_textptr_for_textID +/* 0C2248 7F08D718 8C640010 */ lw $a0, 0x10($v1) +/* 0C224C 7F08D71C 10000021 */ b .L7F08D7A4 +/* 0C2250 7F08D720 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D724: +/* 0C2254 7F08D724 1000001C */ b .L7F08D798 +/* 0C2258 7F08D728 8C460008 */ lw $a2, 8($v0) +/* 0C225C 7F08D72C 24010001 */ li $at, 1 +.L7F08D730: +/* 0C2260 7F08D730 14810019 */ bne $a0, $at, .L7F08D798 +/* 0C2264 7F08D734 00000000 */ nop +/* 0C2268 7F08D738 8C640004 */ lw $a0, 4($v1) +/* 0C226C 7F08D73C 0FC23497 */ jal get_textoverride_by_weaponum +/* 0C2270 7F08D740 AFA40018 */ sw $a0, 0x18($sp) +/* 0C2274 7F08D744 10400014 */ beqz $v0, .L7F08D798 +/* 0C2278 7F08D748 8FA60018 */ lw $a2, 0x18($sp) +/* 0C227C 7F08D74C 8C4F0010 */ lw $t7, 0x10($v0) +/* 0C2280 7F08D750 11E00011 */ beqz $t7, .L7F08D798 +/* 0C2284 7F08D754 00000000 */ nop +/* 0C2288 7F08D758 0FC30776 */ jal get_textptr_for_textID +/* 0C228C 7F08D75C 8C440010 */ lw $a0, 0x10($v0) +/* 0C2290 7F08D760 10000010 */ b .L7F08D7A4 +/* 0C2294 7F08D764 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D768: +/* 0C2298 7F08D768 3C188008 */ lui $t8, %hi(pPlayer) +/* 0C229C 7F08D76C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0C22A0 7F08D770 28A10020 */ slti $at, $a1, 0x20 +/* 0C22A4 7F08D774 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C22A8 7F08D778 13200007 */ beqz $t9, .L7F08D798 +/* 0C22AC 7F08D77C 00000000 */ nop +/* 0C22B0 7F08D780 10200005 */ beqz $at, .L7F08D798 +/* 0C22B4 7F08D784 00000000 */ nop +/* 0C22B8 7F08D788 0FC19C1D */ jal get_ptr_second_title_line_item +/* 0C22BC 7F08D78C 24A40001 */ addiu $a0, $a1, 1 +/* 0C22C0 7F08D790 10000004 */ b .L7F08D7A4 +/* 0C22C4 7F08D794 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D798: +/* 0C22C8 7F08D798 0FC19C1D */ jal get_ptr_second_title_line_item +/* 0C22CC 7F08D79C 00C02025 */ move $a0, $a2 +/* 0C22D0 7F08D7A0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D7A4: +/* 0C22D4 7F08D7A4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C22D8 7F08D7A8 03E00008 */ jr $ra +/* 0C22DC 7F08D7AC 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D6BC +/* 0C2CD4 7F08E164 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C2CD8 7F08E168 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C2CDC 7F08E16C 0FC236A1 */ jal sub_GAME_7F08D108 +/* 0C2CE0 7F08E170 AFA40020 */ sw $a0, 0x20($sp) +/* 0C2CE4 7F08E174 8FA50020 */ lw $a1, 0x20($sp) +/* 0C2CE8 7F08E178 00401825 */ move $v1, $v0 +/* 0C2CEC 7F08E17C 10400024 */ beqz $v0, .Ljp7F08E210 +/* 0C2CF0 7F08E180 00003025 */ move $a2, $zero +/* 0C2CF4 7F08E184 8C440000 */ lw $a0, ($v0) +/* 0C2CF8 7F08E188 24010002 */ li $at, 2 +/* 0C2CFC 7F08E18C 54810012 */ bnel $a0, $at, .Ljp7F08E1D8 +/* 0C2D00 7F08E190 24010001 */ li $at, 1 +/* 0C2D04 7F08E194 8C420004 */ lw $v0, 4($v0) +/* 0C2D08 7F08E198 8C440004 */ lw $a0, 4($v0) +/* 0C2D0C 7F08E19C 0FC236F3 */ jal get_textoverride_by_obj +/* 0C2D10 7F08E1A0 AFA00018 */ sw $zero, 0x18($sp) +/* 0C2D14 7F08E1A4 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2D18 7F08E1A8 10400035 */ beqz $v0, .Ljp7F08E280 +/* 0C2D1C 7F08E1AC 00401825 */ move $v1, $v0 +/* 0C2D20 7F08E1B0 8C4E0010 */ lw $t6, 0x10($v0) +/* 0C2D24 7F08E1B4 11C00005 */ beqz $t6, .Ljp7F08E1CC +/* 0C2D28 7F08E1B8 00000000 */ nop +/* 0C2D2C 7F08E1BC 0FC30AA2 */ jal get_textptr_for_textID +/* 0C2D30 7F08E1C0 8C640010 */ lw $a0, 0x10($v1) +/* 0C2D34 7F08E1C4 10000031 */ b .Ljp7F08E28C +/* 0C2D38 7F08E1C8 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E1CC: +/* 0C2D3C 7F08E1CC 1000002C */ b .Ljp7F08E280 +/* 0C2D40 7F08E1D0 8C460008 */ lw $a2, 8($v0) +/* 0C2D44 7F08E1D4 24010001 */ li $at, 1 +.Ljp7F08E1D8: +/* 0C2D48 7F08E1D8 14810029 */ bne $a0, $at, .Ljp7F08E280 +/* 0C2D4C 7F08E1DC 00000000 */ nop +/* 0C2D50 7F08E1E0 8C640004 */ lw $a0, 4($v1) +/* 0C2D54 7F08E1E4 0FC23703 */ jal get_textoverride_by_weaponum +/* 0C2D58 7F08E1E8 AFA40018 */ sw $a0, 0x18($sp) +/* 0C2D5C 7F08E1EC 10400024 */ beqz $v0, .Ljp7F08E280 +/* 0C2D60 7F08E1F0 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2D64 7F08E1F4 8C4F0010 */ lw $t7, 0x10($v0) +/* 0C2D68 7F08E1F8 11E00021 */ beqz $t7, .Ljp7F08E280 +/* 0C2D6C 7F08E1FC 00000000 */ nop +/* 0C2D70 7F08E200 0FC30AA2 */ jal get_textptr_for_textID +/* 0C2D74 7F08E204 8C440010 */ lw $a0, 0x10($v0) +/* 0C2D78 7F08E208 10000020 */ b .Ljp7F08E28C +/* 0C2D7C 7F08E20C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E210: +/* 0C2D80 7F08E210 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0C2D84 7F08E214 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0C2D88 7F08E218 3C028005 */ lui $v0, %hi(j_text_trigger) # $v0, 0x8005 +/* 0C2D8C 7F08E21C 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C2D90 7F08E220 13200017 */ beqz $t9, .Ljp7F08E280 +/* 0C2D94 7F08E224 00000000 */ nop +/* 0C2D98 7F08E228 8C428500 */ lw $v0, %lo(j_text_trigger)($v0) +/* 0C2D9C 7F08E22C 24030020 */ li $v1, 32 +/* 0C2DA0 7F08E230 10400003 */ beqz $v0, .Ljp7F08E240 +/* 0C2DA4 7F08E234 00000000 */ nop +/* 0C2DA8 7F08E238 10000001 */ b .Ljp7F08E240 +/* 0C2DAC 7F08E23C 2403001F */ li $v1, 31 +.Ljp7F08E240: +/* 0C2DB0 7F08E240 00A3082A */ slt $at, $a1, $v1 +/* 0C2DB4 7F08E244 1020000E */ beqz $at, .Ljp7F08E280 +/* 0C2DB8 7F08E248 00000000 */ nop +/* 0C2DBC 7F08E24C 10400008 */ beqz $v0, .Ljp7F08E270 +/* 0C2DC0 7F08E250 24A80001 */ addiu $t0, $a1, 1 +/* 0C2DC4 7F08E254 29010002 */ slti $at, $t0, 2 +/* 0C2DC8 7F08E258 14200005 */ bnez $at, .Ljp7F08E270 +/* 0C2DCC 7F08E25C 00000000 */ nop +/* 0C2DD0 7F08E260 0FC19D93 */ jal get_ptr_second_title_line_item +/* 0C2DD4 7F08E264 24A40002 */ addiu $a0, $a1, 2 +/* 0C2DD8 7F08E268 10000008 */ b .Ljp7F08E28C +/* 0C2DDC 7F08E26C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E270: +/* 0C2DE0 7F08E270 0FC19D93 */ jal get_ptr_second_title_line_item +/* 0C2DE4 7F08E274 24A40001 */ addiu $a0, $a1, 1 +/* 0C2DE8 7F08E278 10000004 */ b .Ljp7F08E28C +/* 0C2DEC 7F08E27C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E280: +/* 0C2DF0 7F08E280 0FC19D93 */ jal get_ptr_second_title_line_item +/* 0C2DF4 7F08E284 00C02025 */ move $a0, $a2 +/* 0C2DF8 7F08E288 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08E28C: +/* 0C2DFC 7F08E28C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C2E00 7F08E290 03E00008 */ jr $ra +/* 0C2E04 7F08E294 00000000 */ nop +) +#endif +#endif + + + + +int sub_GAME_7F08D7B0(int index) { + return get_45_degree_angle(get_weaponnum_by_inv_index(index)); +} + + + + + +int sub_GAME_7F08D7D8(int index) { + return get_vertical_position_solo_watch_menu_main_page_for_item(get_weaponnum_by_inv_index(index)); +} + + + + +int sub_GAME_7F08D800(int index) { + return get_lateral_position_solo_watch_menu_main_page_for_item(get_weaponnum_by_inv_index(index)); +} + + + + + +int sub_GAME_7F08D828(int index) { + return get_depth_on_solo_watch_menu_page_for_item(get_weaponnum_by_inv_index(index)); +} + + + + + +int sub_GAME_7F08D850(int index) { + return get_xrotation_solo_watch_menu_for_item(get_weaponnum_by_inv_index(index)); +} + + + + + +int sub_GAME_7F08D878(int index) { + return get_yrotation_solo_watch_menu_for_item(get_weaponnum_by_inv_index(index)); +} + + + +void sub_GAME_7F08D8A0(textoverride *override) { + override->next = pPlayer->textoverrides; + pPlayer->textoverrides = override; +} + +int get_BONDdata_equipcuritem(void) { + return pPlayer->equipcuritem; +} + + +void set_BONDdata_equipcuritem(int current_item) { + pPlayer->equipcuritem = current_item; +} + +void calculate_equip_cur_item(void) { + s32 current_weapon; + s32 i; + + current_weapon = get_item_in_hand(RIGHT_HAND); + + pPlayer->equipcuritem = 0; + + for (i=0; i < count_total_items_in_inventory(); i++) { + + if (get_weaponnum_by_inv_index(i) == current_weapon) { + pPlayer->equipcuritem = i; + return; + } + + } +} + + +u8 *obj_get_activated_text(ObjectRecord *obj) { + + textoverride *override = get_textoverride_by_obj(obj); + + if (override && override->unk8) { + return get_textptr_for_textID(override->unk8); + } + + return NULL; +} + +u8 *weapon_get_activated_text(ITEM_IDS weaponnum) { + + textoverride *override = get_textoverride_by_weaponum(weaponnum); + + if (override && override->unk8) { + return get_textptr_for_textID(override->unk8); + } + + return NULL; +} + + +#ifdef NONMATCHING +void sub_GAME_7F08D9EC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D9EC +/* 0C251C 7F08D9EC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C2520 7F08D9F0 AFB00014 */ sw $s0, 0x14($sp) +/* 0C2524 7F08D9F4 00A08025 */ move $s0, $a1 +/* 0C2528 7F08D9F8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0C252C 7F08D9FC AFB10018 */ sw $s1, 0x18($sp) +/* 0C2530 7F08DA00 00808825 */ move $s1, $a0 +/* 0C2534 7F08DA04 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C2538 7F08DA08 3C050002 */ lui $a1, 2 +/* 0C253C 7F08DA0C 10400039 */ beqz $v0, .L7F08DAF4 +/* 0C2540 7F08DA10 3C067FFF */ lui $a2, (0x7FFFFFFF >> 16) # lui $a2, 0x7fff +/* 0C2544 7F08DA14 34C6FFFF */ ori $a2, (0x7FFFFFFF & 0xFFFF) # ori $a2, $a2, 0xffff +/* 0C2548 7F08DA18 AFA60024 */ sw $a2, 0x24($sp) +/* 0C254C 7F08DA1C 02002025 */ move $a0, $s0 +/* 0C2550 7F08DA20 3C050002 */ lui $a1, 2 +/* 0C2554 7F08DA24 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C2558 7F08DA28 AFA00020 */ sw $zero, 0x20($sp) +/* 0C255C 7F08DA2C 8FA60024 */ lw $a2, 0x24($sp) +/* 0C2560 7F08DA30 14400002 */ bnez $v0, .L7F08DA3C +/* 0C2564 7F08DA34 8FA70020 */ lw $a3, 0x20($sp) +/* 0C2568 7F08DA38 00008025 */ move $s0, $zero +.L7F08DA3C: +/* 0C256C 7F08DA3C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C2570 7F08DA40 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C2574 7F08DA44 00002025 */ move $a0, $zero +.L7F08DA48: +/* 0C2578 7F08DA48 8C431200 */ lw $v1, 0x1200($v0) +/* 0C257C 7F08DA4C 04600010 */ bltz $v1, .L7F08DA90 +/* 0C2580 7F08DA50 0066082A */ slt $at, $v1, $a2 +/* 0C2584 7F08DA54 8C4E11F8 */ lw $t6, 0x11f8($v0) +/* 0C2588 7F08DA58 162E0008 */ bne $s1, $t6, .L7F08DA7C +/* 0C258C 7F08DA5C 00000000 */ nop +/* 0C2590 7F08DA60 8C4F11FC */ lw $t7, 0x11fc($v0) +/* 0C2594 7F08DA64 160F0005 */ bne $s0, $t7, .L7F08DA7C +/* 0C2598 7F08DA68 3C188005 */ lui $t8, %hi(clock_timer) +/* 0C259C 7F08DA6C 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 0C25A0 7F08DA70 0078C821 */ addu $t9, $v1, $t8 +/* 0C25A4 7F08DA74 1000000D */ b .L7F08DAAC +/* 0C25A8 7F08DA78 AC591200 */ sw $t9, 0x1200($v0) +.L7F08DA7C: +/* 0C25AC 7F08DA7C 50200008 */ beql $at, $zero, .L7F08DAA0 +/* 0C25B0 7F08DA80 24840001 */ addiu $a0, $a0, 1 +/* 0C25B4 7F08DA84 00603025 */ move $a2, $v1 +/* 0C25B8 7F08DA88 10000004 */ b .L7F08DA9C +/* 0C25BC 7F08DA8C 00803825 */ move $a3, $a0 +.L7F08DA90: +/* 0C25C0 7F08DA90 00803825 */ move $a3, $a0 +/* 0C25C4 7F08DA94 10000005 */ b .L7F08DAAC +/* 0C25C8 7F08DA98 2404000A */ li $a0, 10 +.L7F08DA9C: +/* 0C25CC 7F08DA9C 24840001 */ addiu $a0, $a0, 1 +.L7F08DAA0: +/* 0C25D0 7F08DAA0 2881000A */ slti $at, $a0, 0xa +/* 0C25D4 7F08DAA4 1420FFE8 */ bnez $at, .L7F08DA48 +/* 0C25D8 7F08DAA8 2442000C */ addiu $v0, $v0, 0xc +.L7F08DAAC: +/* 0C25DC 7F08DAAC 2401000A */ li $at, 10 +/* 0C25E0 7F08DAB0 14810010 */ bne $a0, $at, .L7F08DAF4 +/* 0C25E4 7F08DAB4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C25E8 7F08DAB8 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0C25EC 7F08DABC 8C690000 */ lw $t1, ($v1) +/* 0C25F0 7F08DAC0 00071080 */ sll $v0, $a3, 2 +/* 0C25F4 7F08DAC4 3C088005 */ lui $t0, %hi(clock_timer) +/* 0C25F8 7F08DAC8 8D088374 */ lw $t0, %lo(clock_timer)($t0) +/* 0C25FC 7F08DACC 00471023 */ subu $v0, $v0, $a3 +/* 0C2600 7F08DAD0 00021080 */ sll $v0, $v0, 2 +/* 0C2604 7F08DAD4 01225021 */ addu $t2, $t1, $v0 +/* 0C2608 7F08DAD8 AD481200 */ sw $t0, 0x1200($t2) +/* 0C260C 7F08DADC 8C6B0000 */ lw $t3, ($v1) +/* 0C2610 7F08DAE0 01626021 */ addu $t4, $t3, $v0 +/* 0C2614 7F08DAE4 AD9111F8 */ sw $s1, 0x11f8($t4) +/* 0C2618 7F08DAE8 8C6D0000 */ lw $t5, ($v1) +/* 0C261C 7F08DAEC 01A27021 */ addu $t6, $t5, $v0 +/* 0C2620 7F08DAF0 ADD011FC */ sw $s0, 0x11fc($t6) +.L7F08DAF4: +/* 0C2624 7F08DAF4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C2628 7F08DAF8 8FB00014 */ lw $s0, 0x14($sp) +/* 0C262C 7F08DAFC 8FB10018 */ lw $s1, 0x18($sp) +/* 0C2630 7F08DB00 03E00008 */ jr $ra +/* 0C2634 7F08DB04 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08DB08(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08DB08 +/* 0C2638 7F08DB08 AC800000 */ sw $zero, ($a0) +/* 0C263C 7F08DB0C 3C088008 */ lui $t0, %hi(pPlayer) +/* 0C2640 7F08DB10 2402FFFF */ li $v0, -1 +/* 0C2644 7F08DB14 ACA00000 */ sw $zero, ($a1) +/* 0C2648 7F08DB18 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0C264C 7F08DB1C 00003025 */ move $a2, $zero +/* 0C2650 7F08DB20 24090078 */ li $t1, 120 +/* 0C2654 7F08DB24 8D0E0000 */ lw $t6, ($t0) +.L7F08DB28: +/* 0C2658 7F08DB28 01C61821 */ addu $v1, $t6, $a2 +/* 0C265C 7F08DB2C 8C671200 */ lw $a3, 0x1200($v1) +/* 0C2660 7F08DB30 04E0000C */ bltz $a3, .L7F08DB64 +/* 0C2664 7F08DB34 0047082A */ slt $at, $v0, $a3 +/* 0C2668 7F08DB38 5020000B */ beql $at, $zero, .L7F08DB68 +/* 0C266C 7F08DB3C 8C67120C */ lw $a3, 0x120c($v1) +/* 0C2670 7F08DB40 8C6F11F8 */ lw $t7, 0x11f8($v1) +/* 0C2674 7F08DB44 00E01025 */ move $v0, $a3 +/* 0C2678 7F08DB48 AC8F0000 */ sw $t7, ($a0) +/* 0C267C 7F08DB4C 8D180000 */ lw $t8, ($t0) +/* 0C2680 7F08DB50 0306C821 */ addu $t9, $t8, $a2 +/* 0C2684 7F08DB54 8F2A11FC */ lw $t2, 0x11fc($t9) +/* 0C2688 7F08DB58 ACAA0000 */ sw $t2, ($a1) +/* 0C268C 7F08DB5C 8D0B0000 */ lw $t3, ($t0) +/* 0C2690 7F08DB60 01661821 */ addu $v1, $t3, $a2 +.L7F08DB64: +/* 0C2694 7F08DB64 8C67120C */ lw $a3, 0x120c($v1) +.L7F08DB68: +/* 0C2698 7F08DB68 04E0000A */ bltz $a3, .L7F08DB94 +/* 0C269C 7F08DB6C 0047082A */ slt $at, $v0, $a3 +/* 0C26A0 7F08DB70 50200009 */ beql $at, $zero, .L7F08DB98 +/* 0C26A4 7F08DB74 24C60018 */ addiu $a2, $a2, 0x18 +/* 0C26A8 7F08DB78 8C6C1204 */ lw $t4, 0x1204($v1) +/* 0C26AC 7F08DB7C 00E01025 */ move $v0, $a3 +/* 0C26B0 7F08DB80 AC8C0000 */ sw $t4, ($a0) +/* 0C26B4 7F08DB84 8D0D0000 */ lw $t5, ($t0) +/* 0C26B8 7F08DB88 01A67021 */ addu $t6, $t5, $a2 +/* 0C26BC 7F08DB8C 8DCF1208 */ lw $t7, 0x1208($t6) +/* 0C26C0 7F08DB90 ACAF0000 */ sw $t7, ($a1) +.L7F08DB94: +/* 0C26C4 7F08DB94 24C60018 */ addiu $a2, $a2, 0x18 +.L7F08DB98: +/* 0C26C8 7F08DB98 54C9FFE3 */ bnel $a2, $t1, .L7F08DB28 +/* 0C26CC 7F08DB9C 8D0E0000 */ lw $t6, ($t0) +/* 0C26D0 7F08DBA0 03E00008 */ jr $ra +/* 0C26D4 7F08DBA4 00000000 */ nop +) +#endif + + + diff --git a/src/game/bondinv.h b/src/game/bondinv.h new file mode 100644 index 0000000..9cbd756 --- /dev/null +++ b/src/game/bondinv.h @@ -0,0 +1,8 @@ +#ifndef _BONDINV_H_ +#define _BONDINV_H_ +#include "ultra64.h" + +void reinit_BONDdata_inventory(void); +s32 bondinvIsAliveWithFlag(void); + +#endif diff --git a/src/game/bondwalk.c b/src/game/bondwalk.c new file mode 100644 index 0000000..4f6ff45 --- /dev/null +++ b/src/game/bondwalk.c @@ -0,0 +1,24961 @@ +#include "ultra64.h" +#include "bondconstants.h" +#include "bondtypes.h" +#include "game/bond.h" +#include "game/bondwalk.h" +#include "game/chrobjdata.h" + +#include "bondgame.h" + +#include "game/unk_093880.h" +#include "music.h" +#include "game/lvl.h" + +// bss +s32 dword_CODE_bss_80075DB0; +s32 dword_CODE_bss_80075DB4; +s32 dword_CODE_bss_80075DB8; +s32 dword_CODE_bss_80075DBC; +s32 dword_CODE_bss_80075DC0; +s32 dword_CODE_bss_80075DC4; +char dword_CODE_bss_80075DC8[0x9C]; +s32 dword_CODE_bss_80075E64; +char dword_CODE_bss_80075E68[0xBE0]; +s32 dword_CODE_bss_80076A48; + + +// data +//D:80032440 +struct rgba_val D_80032440[] = { + {0x96, 0x96, 0x96, 0}, + {0x96, 0x96, 0x96, 0} +}; + +//D:80032448 +struct rgba_val D_80032448[] = { + {0xFF, 0xFF, 0xFF, 0}, + {0xFF, 0xFF, 0xFF, 0}, + {0xB2, 0x4D, 0x2E, 0} +}; +//D:80032454 +u32 D_80032454 = 0; + +//D:80032458 +u32 D_80032458 = 0; + +//D:8003245C +u32 size_item_buffer[] = {0x14820, 0x14820}; + +//D:80032464 +u32 D_80032464[] ={0x7530, 0x7530}; + + + +//D:8003246C +struct ejected_cart ejected_cartridge[] = { + {&GcartridgeZ_struct, "GcartridgeZ"}, + {&GcartrifleZ_struct, "GcartrifleZ"}, + {&GcartblueZ_struct, "GcartblueZ"}, + {&GcartshellZ_struct, "GcartshellZ"}, + {0, ""} +}; + +#ifdef VERSION_US +#define SCALEVAL1 0.80000001 +#define SCALEVAL_KNIFE 0.80000001 +#define SCALEVAL_SKORPIAN 0.80000001 +#define SCALEVAL_AK47 0.80000001 +#define SCALEVAL_UZI 0.80000001 +#define SCALEVAL_P90 0.80000001 +#define SCALEVAL_RUGER 0.80000001 +#define SCALEVAL_LAUNCHER 0.80000001 +#endif +#ifdef VERSION_EU +//!FIXME temp copy of us data +#define SCALEVAL1 0.80000001 +#define SCALEVAL_KNIFE 0.80000001 +#define SCALEVAL_SKORPIAN 0.80000001 +#define SCALEVAL_AK47 0.80000001 +#define SCALEVAL_UZI 0.80000001 +#define SCALEVAL_P90 0.80000001 +#define SCALEVAL_RUGER 0.80000001 +#define SCALEVAL_LAUNCHER 0.80000001 +#endif +#ifdef VERSION_JP +#define SCALEVAL1 0.8812 +#define SCALEVAL_KNIFE 0.8228 +#define SCALEVAL_SKORPIAN 0.8695 +#define SCALEVAL_AK47 0.893 +#define SCALEVAL_UZI 0.8578 +#define SCALEVAL_P90 0.8461 +#define SCALEVAL_RUGER 0.8344 +#define SCALEVAL_LAUNCHER 0.9048 +#endif +//D:80032494 +struct weapon_stats default_weaponstats = { + 1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 4.0, 0.0, 0x110 +}; +//D:80032504 +struct weapon_stats GfistZ_stats = { + 1.0, 11.0, -50.0, -33.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x06, 1, 0, 0, NULL, 2.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 2.0, 4.0,0.0, 0x64D91 +}; +//D:80032574 +struct weapon_stats GknifeZ_stats = { + 1.0, 14.0, -24.799999, -34.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x06, 1, 0, 0, NULL, 3.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 2.0,4.0, 0.0, 0x160D91 +}; +//D:800325E4 +struct weapon_stats GthrowknifeZ_stats = { + 1.0, 14.0, -24.799999, -34.0, 3.0, 3.0, 8.5, 0xA, 1, 0xFF, 0x06, 1, 0, 0, NULL, 3.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0,2.0, 4.0, 1.0, 0x560D83 +}; + +//D:80032654 +struct weapon_stats GwppkZ_stats = { + 1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 7, 0xFF, 0x10, 1, 0, 0x6B, &GcartridgeZ_struct, 1.0, 1.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 3.0, 10.0, 29.999998, 1.0, 12.0, 2.0, 2.0, 4.0, 0.0, 0x170FB9 +}; +//D:800326C4 +struct weapon_stats GwppksilZ_stats = { + 1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 7, 0xFF, 0x10, 1, 0, 0x2E, &GcartridgeZ_struct, 1.0, 3.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 1.5, 5.0, 29.999998, 0.0, 5.0, 1.0, 2.0, 4.0, 0.0, 0x170FB9 +}; +//D:80032734 +struct weapon_stats Gtt33Z_stats = { + 1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 8, 0xFF, 0x10, 1, 0, 0x70, &GcartridgeZ_struct, 1.0, 6.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 5.0, 10.0, 59.999996, 2.0, 16.0, 3.0, 2.0, 4.0, 0.0, 0x170FB9 +}; +//D:800327A4 +struct weapon_stats GskorpianZ_stats = { + 2.0, 11.5, -25.0, -27.5, 3.0, 5.0, 10.0, 1, 0x14, 0x03, 0x00, 1, 0xB, 0x6A, &GcartridgeZ_struct, 0.60000002, 15.0, 0.0, SCALEVAL_SKORPIAN, 0.88999999, 1.0, 6, 0.0, 0.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x170B79 +}; +//D:80032814 +struct weapon_stats Gak47Z_stats = { + 2.0, 11.0, -19.0, -16.0, 3.0, 3.0, 8.5, 3, 0x1E, 0x03, 0x00, 1, 4, 0x6D, &GcartrifleZ_struct, 1.0, 10.0, 30.0, SCALEVAL_AK47, 0.91000003, 1.0, 0x40C0006,4.5, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 3.0, 0x171A7C +}; +//D:80032884 +struct weapon_stats GuziZ_stats = { + 3.0, 11.0, -24.5, -37.0, 3.0, 8.0, 15.0, 1, 0x20, 0x02, 0x00, 1, 4, 0x6E, &GcartridgeZ_struct, 1.0, 9.0, 0.0, SCALEVAL_UZI, 0.88, 1.0, 0x6120006, 4.0, 3.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x171B79 +}; +//D:800328F4 +struct weapon_stats Gmp5kZ_stats = { + 2.0, 11.0, -26.4, -35.0, 3.0, 8.0, 15.0, 1, 0x1E, 0x03, 0x00, 1, 4, 0x75, &GcartridgeZ_struct, 1.0, 7.0, 0.0, SCALEVAL_SKORPIAN, 0.88999999, 1.0, 0x6120006, 4.0, 3.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x171A79 +}; +//D:80032964 +struct weapon_stats Gmp5ksilZ_stats = { + 2.0, 11.0, -26.4, -35.0, 3.0, 8.0, 15.0, 1, 0x1E, 0x03, 0x00, 1, 4, 0x2E, &GcartridgeZ_struct, 1.0, 9.0, 0.0, SCALEVAL_SKORPIAN, 0.88999999, 1.0, 0x6120006, 3.5, 2.0, 0.0, 0.0, 7.0, 1.2, 2.0, 4.0, 0.0, 0x171A79 +}; +//D:800329D4 +struct weapon_stats GspectreZ_stats = { + 2.0, 11.0, -21.9, -35.0, 3.0, 8.0, 15.0, 1, 0x32, 0x03, 0x00, 1, 4, 0x6D, &GcartridgeZ_struct, 1.4, 12.0, 0.0, SCALEVAL_SKORPIAN, 0.88999999, 1.0, 0x40C0006, 4.5, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x171A79 +}; +//D:80032A44 +struct weapon_stats Gm16Z_stats = { + 6.0, 11.0, -19.200001, -21.5, 3.0, 3.0, 8.5, 3, 0x1E, 0x02, 0x00, 2, 5, 0x71, &GcartblueZ_struct, 1.4, 6.0, 20.0, SCALEVAL_AK47, 0.91000003, 0.5, 0x6120208, 5.0, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 4.0, 0x171A7C +}; +//D:80032AB4 +struct weapon_stats Gfnp90Z_stats = { + 4.0, 12.5, -25.299999, -32.5, 3.0, 8.0, 15.0, 1, 0x50, 0x02, 0x00, 3, 2, 0xFD, &GcartridgeZ_struct, 1.8, 6.0, 0.0, SCALEVAL_P90, 0.87, 1.0, 0x4080003, 3.5, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 4.0, 0x171A78 +}; +//D:80032B24 +struct weapon_stats GshotgunZ_stats = { + 4.0, 11.0, -20.6, -19.5, 3.0, 3.0, 8.5, 4, 5, 0xFF, 0x0A, 1, 0, 0x79, &GcartshellZ_struct, 0.40000001, 20.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0x812080C, 9.0, 10.0, 0.0, 2.0, 25.0, 4.0, 2.0, 4.0, 5.0, 0x170AF9 +}; + +//D:80032B94 +struct weapon_stats GautoshotZ_stats = { + 4.0, 12.0, -24.1, -19.0, 3.0, 3.0, 8.5, 4, 5, 0xFF, 0x0A, 1, 0, 0x74, NULL, 0.60000002, 16.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0x812080C, 4.5, 3.0, 0.0, 2.0, 20.0, 3.0, 2.0, 4.0, 5.0, 0x170AF9 +}; + +//D:80032C04 +struct weapon_stats GsniperrifleZ_stats = { + 6.0, 11.0, -20.700001, -31.5, 3.0, 3.0, 8.5, 3, 8, 0xFF, 0x10, 1, 0, 0x2E, &GcartblueZ_struct, 1.0, 0.0, 15.0, SCALEVAL_AK47, 0.91000003, 0.25, 0, 0.0, 0.0, 0.0, 0.0, 7.0, 1.2, 2.0, 4.0, 0.0, 0x178A70 +}; + +//D:80032C74 +struct weapon_stats GrugerZ_stats = { + 2.0, 12.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 0xC, 6, 0xFF, 0x14, 0xA, 0, 0x6F, NULL, 2.0, 0.0, 0.0, SCALEVAL_RUGER, 0.86000001, 1.0, 0x81000FF, 12.0, 35.0, 0.0, 2.0, 20.0, 3.0, 2.0, 4.0, 6.0, 0x170FB9 +}; +//D:80032CE4 +struct weapon_stats GgoldengunZ_stats = { + 1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 0xD, 1, 0xFF, 0x00, 1, 0, 0x75, NULL, 100.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x40800FF, 5.0, 10.0, 0.0, 1.0, 9.0, 1.5, 2.0, 4.0, 0.0, 0x170F99 +}; + +//D:80032D54 +struct weapon_stats GsilverwppkZ_stats = { + 1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 7, 0xFF, 0x10, 0xA, 0, 0x6B, &GcartridgeZ_struct, 2.0, 1.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 3.0, 10.0, 29.999998, 1.0, 12.0, 2.0, 2.0, 4.0, 0.0, 0x170FB9 +}; +//D:80032DC4 +struct weapon_stats GgoldwppkZ_stats = { + 1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 7, 0xFF, 0x10, 1, 0, 0x6B, &GcartridgeZ_struct, 100.0, 1.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300,3.0, 10.0, 29.999998, 1.0, 12.0, 2.0, 2.0, 4.0, 0.0, 0x170FB9 +}; + +//D:80032E34 +struct weapon_stats GlaserZ_stats = { + 1.0, 11.0, -19.5, -28.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x06, 2, 0, 0xE4, NULL, 2.0, 0.0, 0.0, SCALEVAL_SKORPIAN, 0.88999999, 1.0, 0x6000606, 0.0, 0.0, 0.0, 2.0, 16.0, 2.0, 2.0, 4.0, 2.0, 0x170B99 +}; +//D:80032EA4 +struct weapon_stats GwatchlaserZ_stats = { + 1.0, -2.0, -21.5, -19.0, 3.0, 3.0, 8.5, 0x18, 0x3E8, 0xFF, 0x00, 1, 0, 0, NULL, 2.0, 0.0, 0.0, SCALEVAL_SKORPIAN, 0.88999999, 1.0, 0xFF, 0.0, 0.0, 0.0, 1.0, 4.0, 0.2, 1.0, 4.0, 0.0, 0x600F91 +}; +//D:80032F14 +struct weapon_stats GgrenadelaunchZ_stats = { + 1.0, 9.5, -18.0, -18.5, 3.0, 3.0, 8.5, 0xB, 6, 0xFF, 0x14, 1, 0, 0xC, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x81000FF, 10.5, 15.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x120AF1 +}; +//D:80032F84 +struct weapon_stats GrocketlaunchZ_stats = { + 1.0, 10.5, -22.200001, -14.5, 3.0, 3.0, 8.5, 6, 1, 0xFF, 0x14, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 0.5, 0xFF, 0.0, 0.0, 0.0, 2.0, 25.0, 10.0,2.0, 4.0, 0.0, 0x120FF1 +}; +//D:80032FF4 +struct weapon_stats GgrenadeZ_stats = { + 1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 5, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0, 0.0, 0x422982 +}; +//D:80033064 +struct weapon_stats GtimedmineZ_stats = { + 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 9, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0,0.0, 0x422D82 +}; +//D:800330D4 +struct weapon_stats GproximitymineZ_stats = { + 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 8, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0,0.0, 0x422D82 +}; +//D:80033144 +struct weapon_stats GremotemineZ_stats = { + 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 7, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0,0.0, 0x422D82 +}; +//D:800331B4 +struct weapon_stats GtriggerZ_stats = { + 1.0, -2.0, -21.5, -19.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0xFF, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0,0.0, 0x890 +}; +//D:80033224 +struct weapon_stats GtaserZ_stats = { + 1.0, 16.0, -16.700001, -22.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x00, 1, 0, 0x64, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 2.0, 10.0, 2.0, 2.0, 4.0, 0.0, 0x620F70 +}; +//D:80033294 +struct weapon_stats GtankZ_stats = { + 1.0, 8.0, -19.200001, -11.5, 3.0, 3.0, 8.5, 0x1C, 1, 0xFF, 0x14, 1, 0, 0xB, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x780078FF, 0.0, 0.0, 0.0, 2.0, 25.0, 10.0, 2.0, 4.0, 0.0, 0x76781 +}; +//D:80033304 +struct weapon_stats GbombcaseZ_stats = { + 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 0x10, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0,4.0, 0.0, 0x402D82 +}; +//D:80033374 +struct weapon_stats GplastiqueZ_stats = { + 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 0x17, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0,4.0, 0.0, 0x422D82 +}; +//D:800333E4 +struct weapon_stats GflarepistolZ_stats = { + 1.0, 9.5, -18.0, -18.5, 3.0, 3.0, 8.5, 0x11, 1, 0xFF, 0x14, 1, 0, 0xC, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x81000FF, 10.5, 15.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0xAF1 +}; +//D:80033454 +struct weapon_stats GpitongunZ_stats = { + 1.0, 9.5, -18.0, -18.5, 3.0, 3.0, 8.5, 0x12, 1, 0xFF, 0x14, 1, 0, 0xC, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x81000FF, 10.5, 15.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0xAF1 +}; +//D:800334C4 +struct weapon_stats GbugZ_stats = { + 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 0x14, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x402982 +}; +//D:80033534 +struct weapon_stats GmicrocameraZ_stats = { + 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 0x15, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x402982 +}; +//D:800335A4 +struct weapon_stats GwatchmagnetattractZ_stats = { + 1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 0x19, 0xA, 0xFF, 0xFF, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 4.0, 0.0, 0x602980 +}; +//D:80033614 +struct weapon_stats GgoldeneyekeyZ_stats = { + 1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 0x16, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x482982 +}; +//D:80033684 +struct weapon_stats GcameraZ_stats = { + 1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0xFF, 1, 0, 0xF4, NULL, 1.0, 0.0, 20.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0xA990 +}; +//D:800336F4 +struct weapon_stats Csuit_lf_handz_stats = { + 1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x110 +}; +//D:80033764 +struct weapon_stats GjoypadZ_stats = { + 1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x110 +}; +//D:800337D4 +struct weapon_stats stru_D_800337D4 = { + 1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 6, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x110 +}; +//D:80033844 +struct weapon_stats stru_D_80033844 = { + 1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 0xB, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x110 +}; +//D:800338B4 +struct weapon_stats stru_D_800338B4 = { + 1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 0x1D, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x82182 +}; + + +//D:80033924 +struct gitem_data_struct gitem_structs[] = { + {NULL, NULL, 1, NULL, 0x9883, 0x9811, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9811, 0x9811, 10.0, 10.0, 1000.0}, + {&GfistZ_header, "GfistZ", 0, &GfistZ_stats, 0x9883, 0x9876, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9876, 0x98CD, 10.0, 10.0, 1000.0}, + {&GknifeZ_header, "GknifeZ", 0, &GknifeZ_stats, 0x9883, 0x9846, 200.0, 39.0, 1327.0, 0.0, 0.0, 0x9840, 0x98A8, 38.0, 118.0, 800.0}, + {&GthrowknifeZ_struct, "GthrowknifeZ", 0, &GthrowknifeZ_stats, 0x9871, 0x9806, 200.0, 51.0, 1327.0, 0.0, 0.0, 0x9870, 0x98CA, 38.0, 118.0, 800.0}, + {&GwppkZ_struct, "GwppkZ", 0, &GwppkZ_stats, 0x9857, 0x9801, 20.0, 97.0, 579.0, 0.0, 0.0, 0x9856, 0x98BA, 94.0, 2.0, 356.0}, + {&GwppksilZ_struct, "GwppksilZ", 0, &GwppksilZ_stats, 0x9803, 0x9810, 26.0, 162.0, 668.0, 0.0, 0.0, 0x9855, 0x98B9, 169.0, 5.0, 535.0}, + {&Gtt33Z_struct, "Gtt33Z", 0, &Gtt33Z_stats, 0x9804, 0x9832, 22.0, 128.0, 709.0, 0.0, 0.0, 0x982A, 0x989A, 124.0, 14.0, 455.0}, + {&GskorpianZ_struct, "GskorpionZ", 0, &GskorpianZ_stats, 0x9883, 0x986B, 46.0, 124.0, 785.0, 0.0, 0.0, 0x986B, 0x98C6, 124.0, 32.0, 545.0}, + {&Gak47Z_struct, "Gak47Z", 0, &Gak47Z_stats, 0x9808, 0x9868, -29.0, 307.0, 1410.0, 0.0, 0.0, 0x9842, 0x98AB, 304.0, -31.0, 1020.0}, + {&GuziZ_struct, "GuziZ", 0, &GuziZ_stats, 0x9883, 0x9882, -18.0, 57.0, 1198.0, 0.0, 0.0, 0x9882, 0x98D7, 68.0, -49.0, 667.0}, + {&Gmp5kZ_struct, "Gmp5kZ", 0, &Gmp5kZ_stats, 0x9800, 0x982F, 12.0, 112.0, 1300.0, 0.0, 0.0, 0x9829, 0x9896, 123.0, -2.0, 628.0}, + {&Gmp5ksilZ_struct, "Gmp5ksilZ", 0, &Gmp5ksilZ_stats, 0x9800, 0x9810, 14.0, 227.0, 1300.0, 0.0, 0.0, 0x9828, 0x9895, 226.0, -10.0, 834.0}, + {&GspectreZ_struct, "GspectreZ", 0, &GspectreZ_stats, 0x9883, 0x9858, -4.0, 144.0, 1128.0, 0.0, 0.0, 0x9858, 0x98B4, 146.0, -18.0, 801.0}, + {&Gm16Z_struct, "Gm16Z", 0, &Gm16Z_stats, 0x9875, 0x9812, 25.0, 251.0, 1796.0, 0.0, 0.0, 0x9874, 0x9884, 246.0, -45.0, 1497.0}, + {&Gfnp90Z_struct, "Gfnp90Z", 0, &Gfnp90Z_stats, 0x9883, 0x985E, 88.0, -44.0, 1107.0, 0.0, 0.0, 0x985E, 0x98BC, -44.0, 31.0, 867.0}, + {&GshotgunZ_struct, "GshotgunZ", 0, &GshotgunZ_stats, 0x9883, 0x9864, 39.0, 283.0, 1224.0, 0.0, 0.0, 0x9864, 0x98C1, 284.0, -22.0, 999.0}, + {&GautoshotZ_struct, "GautoshotZ", 0, &GautoshotZ_stats, 0x9816, 0x980C, 73.0, 285.0, 1224.0, 0.0, 0.0, 0x9815, 0x9886, 284.0, 4.0, 980.0}, + {&GsniperrifleZ_struct, "GsniperrifleZ", 0, &GsniperrifleZ_stats, 0x9867, 0x980A, 49.0, 265.0, 1760.0, 0.0, 0.0, 0x9866, 0x98C3, 268.0, 14.0, 1497.0}, + {&GrugerZ_struct, "GrugerZ", 0, &GrugerZ_stats, 0x9826, 0x984C, 47.0, 184.0, 769.0, 0.0, 0.0, 0x9825, 0x9893, 182.0, 36.0, 604.0}, + {&GgoldengunZ_struct, "GgoldengunZ", 0, &GgoldengunZ_stats, 0x983B, 0x9805, 29.0, 146.0, 629.0, 0.0, 0.0, 0x9839, 0x98A3, 144.0, 18.0, 464.0}, + {&GsilverwppkZ_struct, "GsilverwppkZ", 0, &GsilverwppkZ_stats, 0x9883, 0x9865, 20.0, 97.0, 579.0, 0.0, 0.0, 0x9865, 0x98C2, 94.0, 2.0, 356.0}, + {&GgoldwppkZ_struct, "GgoldwppkZ", 0, &GgoldwppkZ_stats, 0x9883, 0x9838, 20.0, 97.0, 579.0, 0.0, 0.0, 0x9838, 0x98A2, 94.0, 2.0, 356.0}, + {&GlaserZ_struct, "GlaserZ", 0, &GlaserZ_stats, 0x9852, 0x9847, 67.0, 106.0, 738.0, 0.0, 0.0, 0x9851, 0x98AC, 103.0, 21.0, 545.0}, + {&GwatchlaserZ_struct, "GwatchlaserZ", 0, &GwatchlaserZ_stats, 0x987F, 0x9847, 82.0, 0.0, 2857.0, 0.0, 90.0, 0x987B, 0x98D2, 0.0, -40.0, 1383.0}, + {&GgrenadelaunchZ_struct, "GgrenadelaunchZ", 0, &GgrenadelaunchZ_stats, 0x983D, 0x9848, 27.0, 279.0, 1152.0, 0.0, 0.0, 0x983C, 0x98A5, 284.0, -22.0, 960.0}, + {&GrocketlaunchZ_struct, "GrocketlaunchZ", 0, &GrocketlaunchZ_stats, 0x980B, 0x9848, 111.0, -50.0, 1624.0, 0.0, 0.0, 0x9861, 0x98BF, -42.0, 16.0, 1381.0}, + {&GgrenadeZ_struct, "GgrenadeZ", 0, &GgrenadeZ_stats, 0x9883, 0x983D, 180.0, 0.0, 2745.0, 0.0, 90.0, 0x983E, 0x98A6, 0.0, 48.0, 1468.0}, + {&GtimedmineZ_struct, "GtimedmineZ", 0, &GtimedmineZ_stats, 0x9809, 0x980F, 8.0, 0.0, 364.0, 90.0, 0.0, 0x9872, 0x98CB, 0.0, -3.0, 179.0}, + {&GproximitymineZ_struct, "GproximitymineZ", 0, &GproximitymineZ_stats, 0x9802, 0x980D, 8.0, 0.0, 364.0, 90.0, 0.0, 0x985D, 0x98BB, 0.0, -3.0, 179.0}, + {&GremotemineZ_struct, "GremotemineZ", 0, &GremotemineZ_stats, 0x9807, 0x980E, 8.0, 0.0, 364.0, 90.0, 0.0, 0x9860, 0x98BE, 0.0, -3.0, 179.0}, + {&GtriggerZ_struct, "GtriggerZ", 0, &GtriggerZ_stats, 0x9883, 0x982E, 82.0, 0.0, 2857.0, 0.0, 90.0, 0x982E, 0x989B, 0.0, -40.0, 1383.0}, + {&GtaserZ_struct, "GtaserZ", 0, &GtaserZ_stats, 0x9883, 0x986F, 107.0, 49.0, 568.0, 0.0, 0.0, 0x986F, 0x98C9, 64.0, 80.0, 333.0}, + {NULL, NULL, 0, &GtankZ_stats, 0x9883, 0x986E, 20.0, 97.0, 579.0, 0.0, 0.0, 0x986E, 0x98C8, 94.0, 2.0, 356.0}, + {&GbombcaseZ_struct, "GbombcaseZ", 0, &GbombcaseZ_stats, 0x9883, 0x981A, 16.0, 0.0, 568.0, 0.0, 90.0, 0x981A, 0x988A, 0.0, -8.0, 323.0}, + {&GplastiqueZ_struct, "GplastiqueZ", 0, &GplastiqueZ_stats, 0x9883, 0x985B, 28.0, 0.0, 1062.0, 80.0, 90.0, 0x985B, 0x98B7, 0.0, -16.0, 739.0}, + {&GflarepistolZ_struct, "GflarepistolZ", 0, &GflarepistolZ_stats, 0x9883, 0x9834, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9834, 0x989F, 0.0, 0.0, 1000.0}, + {&GpitongunZ_struct, "GpitongunZ", 0, &GpitongunZ_stats, 0x9883, 0x9859, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9859, 0x98B5, 0.0, 0.0, 1000.0}, + {&GbungeeZ_struct, "GbungeeZ", 1, NULL, 0x9883, 0x981F, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x981F, 0x988F, 0.0, 0.0, 1000.0}, + {&GdoordecoderZ_struct, "GdoordecoderZ", 1, NULL, 0x9883, 0x9830, 12.0, 0.0, 364.0, 90.0, 90.0, 0x9830, 0x989C, 0.0, -6.0, 199.0}, + {&GbombdefuserZ_struct, "GbombdefuserZ", 1, NULL, 0x9883, 0x981B, 14.0, 0.0, 379.0, 90.0, 90.0, 0x981B, 0x988B, 0.0, 0.0, 279.0}, + {&GcameraZ_struct, "GcameraZ", 0, &GcameraZ_stats, 0x9883, 0x9820, 4.0, 0.0, 195.0, 20.0, 90.0, 0x9820, 0x9890, 0.0, -2.0, 144.0}, + {&GlockexploderZ_struct, "GlockexploderZ", 1, NULL, 0x9883, 0x984A, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x984A, 0x98AE, 0.0, 0.0, 1000.0}, + {&GdoorexploderZ_struct, "GdoorexploderZ", 1, NULL, 0x9883, 0x9831, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9831, 0x989D, 0.0, 0.0, 1000.0}, + {&GbriefcaseZ_struct, "GbriefcaseZ", 1, NULL, 0x9883, 0x981C, 16.0, 0.0, 568.0, 0.0, 90.0, 0x981C, 0x988C, 0.0, -8.0, 323.0}, + {&GweaponcaseZ_struct, "GweaponcaseZ", 1, NULL, 0x9883, 0x9880, 16.0, 0.0, 568.0, 0.0, 90.0, 0x9880, 0x98D5, 0.0, -8.0, 323.0}, + {&GsafecrackercaseZ_struct, "GsafecrackercaseZ", 1, NULL, 0x9883, 0x9863, 16.0, 0.0, 568.0, 0.0, 90.0, 0x9862, 0x98C0, 0.0, -8.0, 323.0}, + {&GkeyanalysercaseZ_struct, "GkeyanalysercaseZ", 1, NULL, 0x9883, 0x9844, 16.0, 0.0, 568.0, 0.0, 90.0, 0x9843, 0x98A9, 0.0, -8.0, 323.0}, + {&GbugZ_struct, "GbugZ", 0, &GbugZ_stats, 0x9883, 0x981E, 16.0, 0.0, 513.0, 0.0, 90.0, 0x981E, 0x988E, 0.0, -6.0, 387.0}, + {&GmicrocameraZ_struct, "GmicrocameraZ", 0, &GmicrocameraZ_stats, 0x9883, 0x984E, 8.0, 0.0, 310.0, 0.0, 270.0, 0x984E, 0x98B0, 0.0, -8.0, 229.0}, + {&GbugdetectorZ_struct, "GbugdetectorZ", 1, NULL, 0x9883, 0x981D, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x981D, 0x988D, 0.0, 0.0, 1000.0}, + {&GexplosivefloppyZ_struct, "GexplosivefloppyZ", 1, NULL, 0x9883, 0x9833, 12.0, 0.0, 336.0, 0.0, 90.0, 0x9833, 0x989E, 0.0, -4.0, 176.0}, + {&GpolarizedglassesZ_struct, "GpolarizedglassesZ", 1, NULL, 0x9883, 0x985C, 2.0, 0.0, 183.0, 15.0, 90.0, 0x985C, 0x98B8, 0.0, 0.0, 147.0}, + {&GdarkglassesZ_struct, "GdarkglassesZ", 1, NULL, 0x9883, 0x982B, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x982B, 0x9897, 0.0, 0.0, 1000.0}, + {&GcreditcardZ_struct, "GcreditcardZ", 1, NULL, 0x9883, 0x9827, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9827, 0x9894, 0.0, 0.0, 1000.0}, + {&GgaskeyringZ_struct, "GgaskeyringZ", 1, NULL, 0x9883, 0x9835, 26.0, 0.0, 769.0, 90.0, 90.0, 0x9835, 0x98A0, 0.0, -8.0, 387.0}, + {&GdatathiefZ_struct, "GdatathiefZ", 1, NULL, 0x9883, 0x982D, 16.0, 0.0, 474.0, 80.0, 0.0, 0x982D, 0x9899, 0.0, -6.0, 350.0}, + {&GwatchidentifierZ_struct, "GwatchidentifierZ", 1, NULL, 0x987F, 0x9841, 82.0, 0.0, 2857.0, 0.0, 90.0, 0x987A, 0x98D1, 0.0, -40.0, 1383.0}, + {&GwatchcommunicatorZ_struct, "GwatchcommunicatorZ", 1, NULL, 0x987F, 0x9823, 82.0, 0.0, 2857.0, 0.0, 90.0, 0x9878, 0x98CF, 0.0, -40.0, 1383.0}, + {&GwatchgeigercounterZ_struct, "GwatchgeigercounterZ", 1, NULL, 0x987F, 0x9836, 82.0, 0.0, 2857.0, 0.0, 90.0, 0x9879, 0x98D0, 0.0, -40.0, 1383.0}, + {&GwatchmagnetrepelZ_struct, "GwatchmagnetrepelZ", 1, NULL, 0x987F, 0x984B, 82.0, 0.0, 2857.0, 0.0, 90.0, 0x987D, 0x98D4, 0.0, -40.0, 1383.0}, + {&GwatchmagnetattractZ_struct, "GwatchmagnetattractZ", 0, &GwatchmagnetattractZ_stats, 0x987E, 0x9813, 80.0, 0.0, 3036.0, 0.0, 90.0, 0x987C, 0x98D3, 0.0, -40.0, 1383.0}, + {&GgoldeneyekeyZ_struct, "GgoldeneyekeyZ", 0, &GgoldeneyekeyZ_stats, 0x9883, 0x983A, 18.0, 0.0, 560.0, 80.0, 0.0, 0x983A, 0x98A4, 0.0, -4.0, 310.0}, + {&GblackboxZ_struct, "GblackboxZ", 1, NULL, 0x9883, 0x9817, 18.0, 0.0, 545.0, 0.0, 90.0, 0x9817, 0x9887, 0.0, -8.0, 380.0}, + {&GcircuitboardZ_struct, "GcircuitboardZ", 1, NULL, 0x9883, 0x9821, 20.0, 0.0, 568.0, 80.0, 0.0, 0x9821, 0x9891, 0.0, 0.0, 394.0}, + {&GclipboardZ_struct, "GclipboardZ", 1, NULL, 0x9883, 0x9822, 40.0, 0.0, 1151.0, 80.0, 90.0, 0x9822, 0x9892, 0.0, -20.0, 580.0}, + {&GstafflistZ_struct, "GstafflistZ", 1, NULL, 0x9883, 0x986C, 44.0, 0.0, 1274.0, 80.0, 90.0, 0x986C, 0x98C7, 0.0, -16.0, 681.0}, + {&GdossierredZ_struct, "GdossierredZ", 1, NULL, 0x9883, 0x985F, 38.0, 0.0, 1084.0, 350.0, 90.0, 0x985F, 0x98BD, 0.0, -12.0, 580.0}, + {&GplansZ_struct, "GplansZ", 1, NULL, 0x9883, 0x985A, 18.0, 0.0, 464.0, 350.0, 90.0, 0x985A, 0x98B6, 0.0, -2.0, 253.0}, + {&GspyfileZ_struct, "GspyfileZ", 1, NULL, 0x9883, 0x986A, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x986A, 0x98C5, 0.0, 0.0, 1000.0}, + {&GblueprintsZ_struct, "GblueprintsZ", 1, NULL, 0x9883, 0x9818, 18.0, 0.0, 579.0, 350.0, 90.0, 0x9818, 0x9888, 0.0, -8.0, 364.0}, + {&GmapZ_struct, "GmapZ", 1, NULL, 0x9883, 0x984D, 18.0, 0.0, 579.0, 350.0, 90.0, 0x984D, 0x98AF, 0.0, -6.0, 364.0}, + {&GaudiotapeZ_struct, "GaudiotapeZ", 1, NULL, 0x9883, 0x9814, 16.0, 0.0, 428.0, 90.0, 90.0, 0x9814, 0x9885, 0.0, -2.0, 292.0}, + {&GvideotapeZ_struct, "GvideotapeZ", 1, NULL, 0x9883, 0x9877, 26.0, 0.0, 753.0, 90.0, 0.0, 0x9877, 0x98CE, 0.0, -8.0, 395.0}, + {&GdattapeZ_struct, "GdattapeZ", 1, NULL, 0x9883, 0x982C, 14.0, 0.0, 387.0, 90.0, 90.0, 0x982C, 0x9898, 0.0, 0.0, 238.0}, + {&GspooltapeZ_struct, "GspooltapeZ", 1, NULL, 0x9883, 0x9869, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9869, 0x98C4, 0.0, 0.0, 1000.0}, + {&GmicrofilmZ_struct, "GmicrofilmZ", 1, NULL, 0x9883, 0x9850, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9850, 0x98B2, 0.0, 0.0, 1000.0}, + {&GmicrocodeZ_struct, "GmicrocodeZ", 1, NULL, 0x9883, 0x984F, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x984F, 0x98B1, 0.0, 0.0, 1000.0}, + {&GlectreZ_struct, "GlectreZ", 1, NULL, 0x9883, 0x9849, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9849, 0x98AD, 0.0, 0.0, 1000.0}, + {&GmoneyZ_struct, "GmoneyZ", 1, NULL, 0x9883, 0x9853, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9853, 0x98B3, 0.0, 0.0, 1000.0}, + {&GgoldbarZ_struct, "GgoldbarZ", 1, NULL, 0x9883, 0x9837, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9837, 0x98A1, 0.0, 0.0, 1000.0}, + {&GheroinZ_struct, "GheroinZ", 1, NULL, 0x9883, 0x983F, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x983F, 0x98A7, 0.0, 0.0, 1000.0}, + {&GkeycardZ_struct, "GkeycardZ", 1, NULL, 0x9883, 0x9845, 24.0, 0.0, 556.0, 80.0, 90.0, 0x9845, 0x98AA, 0.0, -6.0, 411.0}, + {&GkeyyaleZ_struct, "GkeyyaleZ", 1, NULL, 0x9883, 0x9881, 64.0, 0.0, 1912.0, 260.0, 90.0, 0x9881, 0x98D6, 0.0, -18.0, 1568.0}, + {&GkeyboltZ_struct, "GkeyboltZ", 1, NULL, 0x9883, 0x9819, 78.0, 0.0, 3518.0, 80.0, 90.0, 0x9819, 0x9889, 0.0, -12.0, 2582.0}, + {&Csuit_lf_handz_struct, "Csuit_lf_handZ", 0, &Csuit_lf_handz_stats, 0x9883, 0x986D, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9883, 0x9883, 10.0, 10.0, 1000.0}, + {&GjoypadZ_struct, "GjoypadZ", 0, &GjoypadZ_stats, 0x9883, 0x9824, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9883, 0x9883, 10.0, 10.0, 1000.0}, + {NULL , NULL, 0, &stru_D_800337D4, 0x9883, 0x9854, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9883, 0x9883, 10.0, 10.0, 1000.0}, + {NULL , NULL, 0, &stru_D_80033844, 0x9883, 0x9854, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9883, 0x9883, 10.0, 10.0, 1000.0}, + {NULL , NULL, 0, &stru_D_800338B4, 0x9883, 0x9873, 12.0, 0.0, 528.0, 80.0, 0.0, 0x9873, 0x98CC, 0.0, -4.0, 310.0} +}; + +//D:80034C9C +u32 cartridges_eject = 0; +//D:80034CA0 +u32 D_80034CA0 = 0; + +//D:80034CA4 +u32 D_80034CA4[] = { + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41000000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x41000000, 0x0, 0x40C00000, + 0xBFC00000, 0x0, 0x40B487B1, 0x3E70C0AD, + 0x3E0AE536, 0x3F000000, 0x41000000, 0x0, + 0x41480000, 0xC0600000, 0x0, 0x40C159EC, + 0x3D374BC7, 0x3F0E4378, 0x3F000000, 0x41000000, + 0x0, 0xC1200000, 0xC1300000, 0x0, + 0x3F9ED962, 0x3EA24C40, 0x3F8B0DF1, 0x3F000000, + 0x41000000, 0x0, 0xC1600000, 0xC1700000, + 0x0, 0x3FEA4780, 0x40C498E3, 0x3FA316D3, + 0x3F000000, 0x41200000, 0x0, 0xBF800000, + 0xC1100000, 0x0, 0x3EC4BBA1, 0x3EB87C42, + 0x3DD75968, 0x3F000000, 0x41200000, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3F000000, 0x41A00000, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41A00000, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0, 0 +}; + +u32 D_80034E0C[] = { + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41000000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x41000000, 0x0, 0xC1080000, + 0xC0C00000, 0x0, 0x40AF7506, 0x40BAB4B9, + 0x40C2A5C2, 0x3F000000, 0x41000000, 0x0, + 0xC0400000, 0xC0600000, 0x0, 0x3ECE08F2, + 0x40B75721, 0x40B62409, 0x3F000000, 0x41000000, + 0x0, 0xBF000000, 0xC1080000, 0x0, + 0x3F9DFD7A, 0x40B768CD, 0x40B37BDF, 0x3F000000, + 0x41000000, 0x0, 0x40E00000, 0xC1E40000, + 0xBFC00000, 0x3FA74949, 0x40B63EBC, 0x40B6443D, + 0x3F000000, 0x41200000, 0x0, 0xBFC00000, + 0xC1100000, 0x0, 0x3D8ADEEC, 0x40C84E72, + 0x3E506749, 0x3F000000, 0x41200000, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3F000000, 0x41A00000, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41A00000, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0 +}; + +u32 D_80034F74[] = { + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41000000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x41000000, 0x0, 0x0, + 0x0, 0x40900000, 0x40B2719D, 0x0, + 0x0, 0x3F000000, 0x41000000, 0x0, + 0x0, 0x0, 0x41A40000, 0x40A8630B, + 0x0, 0x0, 0x3F000000, 0x41000000, + 0x0, 0x0, 0x40400000, 0x40B00000, + 0x3D008312, 0x0, 0x0, 0x3F000000, + 0x41000000, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0 +}; + +u32 D_8003504C[] = { + + 0x0, 0x0, 0x0, 0x40900000, + 0x40B2719D, 0x0, 0x0, 0x3F000000, + 0x41000000, 0x0, 0x0, 0x0, + 0x41A40000, 0x40A8630B, 0x0, 0x0, + 0x3F000000, 0x41000000, 0x0, 0x0, + 0x40400000, 0x40B00000, 0x3D008312, 0x0, + 0x0, 0x3F000000, 0x41000000, 0x0, + 0x0, 0xC1A00000, 0x41900000, 0x3F4913C7, + 0x0, 0x0, 0x3F000000, 0x41A00000, + 0x0, 0x0, 0xC1A00000, 0x41900000, + 0x3F4913C7, 0x0, 0x0, 0x3F000000, + 0x41A00000, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0 +}; + +u32 D_80035124[] = { + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x40800000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x40800000, 0x0, 0x41200000, + 0x41480000, 0x418C0000, 0x0, 0x0, + 0x0, 0x3F000000, 0x40800000, 0x0, + 0x41200000, 0x420A0000, 0x41CC0000, 0x0, + 0x0, 0x0, 0x3F000000, 0x41200000, + 0x0, 0x41200000, 0x420A0000, 0x41CC0000, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41200000, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0 +}; + +u32 D_800351FC[] = { + 0x0, 0x41200000, 0x420A0000, 0x41CC0000, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41200000, 0x0, 0x41200000, 0x420A0000, + 0x41CC0000, 0x0, 0x0, 0x0, + 0x3F000000, 0x41200000, 0x0, 0x41200000, + 0x41480000, 0x418C0000, 0x0, 0x0, + 0x0, 0x3F000000, 0x41200000, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3F000000, 0x41200000, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41200000, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0 +}; + +u32 D_800352D4[] = { + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x40800000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x40800000, 0x0, 0x0, + 0x0, 0x40900000, 0x40B2719D, 0x0, + 0x0, 0x3F000000, 0x40800000, 0x0, + 0x0, 0x0, 0x41A40000, 0x40A8630B, + 0x0, 0x0, 0x3F000000, 0x41000000, + 0x0, 0x0, 0x40400000, 0x40B00000, + 0x3D008312, 0x0, 0x0, 0x3F000000, + 0x41000000, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0 +}; + +u32 D_800353AC[63] = { + 0x0, 0x0, 0x0, 0x40900000, + 0x40B2719D, 0x0, 0x0, 0x3F000000, + 0x41000000, 0x0, 0x0, 0x0, + 0x41A40000, 0x40A8630B, 0x0, 0x0, + 0x3F000000, 0x41000000, 0x0, 0x0, + 0x40400000, 0x40B00000, 0x3D008312, 0x0, + 0x0, 0x3F000000, 0x41000000, 0x0, + 0x0, 0xC1A00000, 0x41900000, 0x3F4913C7, + 0x0, 0x0, 0x3F000000, 0x41000000, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41A00000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x41A00000, 0x1, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0 +}; + +u32 D_800354A8[90] = { + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41200000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x41200000, 0x0, 0x40C00000, + 0x41B80000, 0x0, 0x40BD4D94, 0x3DAFC8B0, + 0x3E60BFE4, 0x3F000000, 0x41200000, 0x0, + 0x41900000, 0x420C0000, 0x41180000, 0x409FF132, + 0x3DAC729F, 0x3E89B457, 0x3F000000, 0x41200000, + 0x0, 0xC1A00000, 0x41CC0000, 0x40800000, + 0x3E012CF1, 0x3E9BCB1D, 0x3F0C4CCF, 0x3F000000, + 0x41200000, 0x0, 0xC1E00000, 0xC0800000, + 0x40000000, 0x3F01BF05, 0x3F03C558, 0x3EF7DBB1, + 0x3F000000, 0x3F800000, 0x0, 0xC1E00000, + 0xC0800000, 0x40000000, 0x3F01BF05, 0x3F03C558, + 0x3EF7DBB1, 0x3F000000, 0x3F800000, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3F000000, 0x41A00000, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41A00000, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0 +}; + +u32 D_80035610[90] = { + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41200000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x41200000, 0x0, 0xC0C00000, + 0x41B80000, 0x0, 0x40A2C750, 0x40C43392, + 0x40B1199C, 0x3F000000, 0x41200000, 0x0, + 0xC1900000, 0x420C0000, 0x41180000, 0x409C2EAE, + 0x3D902BC7, 0x40B12824, 0x3F000000, 0x41200000, + 0x0, 0x41000000, 0x41CC0000, 0x40800000, + 0x3DDB927D, 0x40C1FEDC, 0x40ACEF69, 0x3F000000, + 0x41200000, 0x0, 0x41E00000, 0xC0800000, + 0x40000000, 0x3DDB927D, 0x40C1FEDC, 0x40ACEF69, + 0x3F000000, 0x3F800000, 0x0, 0x41E00000, + 0xC0800000, 0x40000000, 0x3DDB927D, 0x40C1FEDC, + 0x40ACEF69, 0x3F000000, 0x3F800000, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3F000000, 0x41A00000, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41A00000, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0 +}; + +u32 D_80035778[99] = { + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41100000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x41000000, 0x0, 0x41180000, + 0xBF000000, 0x40600000, 0x3E9504E6, 0x40B2B333, + 0x40C6CBA3, 0x3F000000, 0x41000000, 0x0, + 0x41900000, 0x40F00000, 0x40600000, 0x3EE0F55E, + 0x40BE3F16, 0x40BFCC1D, 0x3F000000, 0x41000000, + 0x0, 0xC1100000, 0x41080000, 0x40B00000, + 0x3F346DF8, 0x3E472043, 0x40C563EB, 0x3F000000, + 0x40E00000, 0x0, 0xC1E80000, 0xC0B00000, + 0x40B00000, 0x40120985, 0x3F8D9CFA, 0x3FBEB841, + 0x3F000000, 0x40E00000, 0x0, 0xC2660000, + 0xC1DC0000, 0x40B00000, 0x40120985, 0x3F8D9CFA, + 0x3FBEB841, 0x3F000000, 0x40E00000, 0x0, + 0xC19C0000, 0xC1A00000, 0x40B00000, 0x3F9CD307, + 0x3F39E0D6, 0x3F9AF8A5, 0x3F000000, 0x41700000, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41A00000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x41A00000, 0x1, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0 +}; + +u32 D_80035904[99] ={ + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41100000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x41000000, 0x0, 0xC1780000, + 0x3F000000, 0x41700000, 0x3F6F3B21, 0x3F2027FA, + 0x3E652B0A, 0x3F000000, 0x41000000, 0x0, + 0xC1B80000, 0x40000000, 0x41400000, 0x3FE69C24, + 0x3F730C35, 0x3F21781C, 0x3F000000, 0x41000000, + 0x0, 0xC1900000, 0xBF000000, 0x40800000, + 0x3F590B0F, 0x3F6CBD66, 0x3D9E9A70, 0x3F000000, + 0x40E00000, 0x0, 0x41280000, 0x40A00000, + 0x40200000, 0x3E6AE968, 0x3E7B99D4, 0x3DCAE18B, + 0x3F000000, 0x40E00000, 0x0, 0x41900000, + 0x40A00000, 0x40200000, 0x3D0666ED, 0x40C6B2E4, + 0x3E0A4E38, 0x3F000000, 0x40E00000, 0x0, + 0x41180000, 0x40600000, 0xBFC00000, 0x40C8BE5E, + 0x40C02F79, 0x3DB7BC7F, 0x3F000000, 0x40E00000, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41A00000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x41A00000, 0x1, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0 +}; + +u32 D_80035A90[54] = { + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41000000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x3F000000, 0x41000000, 0x0, 0x3F000000, + 0xC0C00000, 0xC1000000, 0x3EE101F3, 0x3E8EC2AD, + 0x3E47DCBE, 0x3F000000, 0x41000000, 0x0, + 0xC0000000, 0xC1000000, 0xC1200000, 0x3F8D0308, + 0x3EEBE7D1, 0x3F122A80, 0x3F000000, 0x41000000, + 0x0, 0xC0000000, 0xC1000000, 0xC1200000, + 0x3F8D0308, 0x3EEBE7D1, 0x3F122A80, 0x3F000000, + 0x41000000, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0 +}; + +u32 D_80035B68[54] = { + 0x0, 0xC0000000, 0xC1000000, 0xC1200000, + 0x3F8D0308, 0x3EEBE7D1, 0x3F122A80, 0x3F000000, + 0x41000000, 0x0, 0xC0000000, 0xC1000000, + 0xC1200000, 0x3F8D0308, 0x3EEBE7D1, 0x3F122A80, + 0x3F000000, 0x41000000, 0x0, 0x3F000000, + 0xC0C00000, 0xC1000000, 0x3EE101F3, 0x3E8EC2AD, + 0x3E47DCBE, 0x3F000000, 0x41000000, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3F000000, 0x41000000, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3F000000, + 0x41000000, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0 +}; + + +//D:80035C40 +u32 D_80035C40 = 0; +//D:80035C44 +u32 D_80035C44 = 0; +//D:80035C48 +u32 D_80035C48 = 0; +//D:80035C4C +u32 D_80035C4C = 0; +//D:80035C50 +u32 D_80035C50 = 0; +//D:80035C54 +u32 D_80035C54 = 0; +//D:80035C58 +u32 D_80035C58 = 0; +//D:80035C5C +u32 D_80035C5C = 0; + +//D:80035C60 +f32 D_80035C60 = -1.0; +//D:80035C64 +f32 D_80035C64 = 0.0; +//D:80035C68 +f32 D_80035C68 = 1.0; +//D:80035C6C +f32 D_80035C6C = 0.0; +//D:80035C70 +f32 D_80035C70 = 6.2536321; +//D:80035C74 +f32 D_80035C74 = 6.2592888; +//D:80035C78 +f32 D_80035C78 = 0.204238; +//D:80035C7C +f32 D_80035C7C = 0.25044999; +//D:80035C80 +f32 D_80035C80 = 0.90482301; +//D:80035C84 +f32 D_80035C84 = 0.28716999; +//D:80035C88 +f32 D_80035C88 = 1.715736; +//D:80035C8C +f32 D_80035C8C = 0.37460899; +//D:80035C90 +f32 D_80035C90 = 0.92193699; + +//D:80035C94 +f32 D_80035C94 = 0; + + +//D:80035C98 +u32 D_80035C98 = 0; +//D:80035C9C +u32 D_80035C9C = 0; +//D:80035CA0 +u32 D_80035CA0 = 0; +//D:80035CA4 +s32 D_80035CA4 = 0xFFFFFFFF; +//D:80035CA8 +u32 D_80035CA8 = 0; +//D:80035CAC +u32 D_80035CAC = 0; +//D:80035CB0 +u32 D_80035CB0 = 0; +//D:80035CB4 +u32 D_80035CB4 = 0; +//D:80035CB8 +u32 D_80035CB8 = 0; +//D:80035CBC +u32 D_80035CBC = 0; +//D:80035CC0 +u32 D_80035CC0 = 0; +//D:80035CC4 +u32 D_80035CC4[] = {1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:80035D00 +u32 D_80035D00 = 0; +//D:80035D04 +u32 D_80035D04[] = {1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:80035D44 +u32 D_80035D44[] = { + 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; +//D:80035E04 +u16 D_80035E04[] = { + 0x1B, 0x1C, 0x1D, 0x1E, 0x1B, 0x1C, 0x1D, 0x1E, 0x1B, 0x1C, 0x1D, 0x1E, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28 +}; +//D:80035E28 +u16 D_80035E28[] = {0x29, 0x2A}; +//D:80035E2C +u16 D_80035E2C[] = {0x2F, 0x30}; +//D:80035E30 +u16 D_80035E30[] = {0x31, 0}; +//D:80035E34 +u16 D_80035E34[] = {0x45, 0x45}; +//D:80035E38 +u16 D_80035E38[] = {0x5C, 0x5D}; +//D:80035E3C +u16 D_80035E3C[] = { + 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x17, 0x18, 0x19, 0x1A, 0x17, 0x18, 0x19, 0x1A, 0x1F, 0x20, 0x20, 0x21, 0x1F, 0x20, 0x20, 0x21, 0x1F, 0x20, 0x20, 0x21, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A +}; +//D:80035E84 +u16 D_80035E84[] = {0xA4, 0xA5}; +//D:80035E88 +u16 D_80035E88[] = {0xA6, 0xA7}; +//D:80035E8C +u16 D_80035E8C[] = {0xA8, 0}; +//D:80035E90 +u16 D_80035E90[] = {0x5C, 0x5D}; +//D:80035E94 +u16 D_80035E94[] = {0x5F, 0x60}; +//D:80035E98 +u16 D_80035E98[] = {0x61, 0}; +//D:80035E9C +u32 D_80035E9C = 0; +//D:80035EA0 +u32 D_80035EA0 = 0; +//D:80035EA4 +u32 D_80035EA4 = 0; +//D:80035EA8 +u32 D_80035EA8 = 0; +//D:80035EAC +u32 D_80035EAC = 0; +//D:80035EB0 +u32 D_80035EB0[] = {0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:80035EEC +u32 dword_D_80035EEC = 0; +//D:80035EF0 +u16 ammo_related[] = { + 0, 0, 0, 0, + 0, 0, 0, 0x320, + 0x200, 0xC84, 0, 0, + 0, 0xC8, 0, 0, + 0, 0, 0, 0x190, + 0x200, 0xC90,0xC000, 0, + 0, 0x64, 0x200, 0xC9C, + 0, 0, 0, 0xC, + 0x200, 0xCD8, 0, 0, + 0, 3, 0x200, 0xCC0, + 0xC000, 0, 0, 0xA, + 0x200, 0xCFC,0x3F80, 0, + 0, 0xA, 0x200, 0xD14, + 0x3F80, 0, 0, 0xA, + 0x200, 0xD08,0x3F80, 0, + 0, 0xA, 0x200, 0xCA8, + 0, 0, 0, 0xC, + 0x200, 0xCB4, 0, 0, + 0, 0xC8, 0x200, 0xCE4, + 0, 0, 0, 0x64, + 0x200, 0xCF0, 0, 0, + 0, 0x32, 0, 0, + 0, 0, 0, 0xA, + 0, 0, 0, 0, + 0, 2, 0, 0, + 0, 0, 0, 8, + 0, 0, 0, 0, + 0, 6, 0, 0, + 0, 0, 0, 0xA, + 0, 0, 0, 0, + 0, 0xA, 0, 0, + 0, 0, 0, 0xA, + 0, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 0, 0xA, + 0, 0, 0, 0, + 0, 0x3E8, 0, 0, + 0, 0, 0, 0xA, + 0, 0, 0, 0, + 0, 0xA, 0, 0, + 0, 0, 0, 0xA, + 0, 0, 0, 0, + 0, 0x32, 0x200, 0xD20, + 0xBF80, 0, 0, 1, + 0, 0, 0, 0, + 0, 0, 0, 0}; + + +//i may belong to objecthandler.c +//D:80036060 +u32 D_80036060 = 0; + + +// rodata + + +//D:80053BF4 +const char aD_9[] = "%d\n"; +//D:80053BF8 +const char aSD[] = "%s: %d\n"; +//D:80053C00 +const char aSDS[] = "%s %d %s\n"; +//D:80053C0C +const char aSD_0[] = "%s: %d\n"; + + + + + + +void set_cartridges_eject(u32 uParm1) { + cartridges_eject = uParm1; +} + +u32 get_cartridges_eject(void) { + return cartridges_eject; +} + +void nullsub_73(void) { + return; +} + + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F05C540(void *arg0) { + void *temp_v0; + + // Node 0 + temp_v0 = ((D_80034CA0 * 0x24) + &D_80035904); + temp_v0->unk4 = (f32) (temp_v0->unk4 + *arg0); + temp_v0->unk8 = (f32) (temp_v0->unk8 + arg0->unk4); + temp_v0->unkC = (f32) (temp_v0->unkC + arg0->unk8); + return temp_v0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05C540 +/* 091070 7F05C540 3C0E8003 */ lui $t6, %hi(D_80034CA0) +/* 091074 7F05C544 8DCE4CA0 */ lw $t6, %lo(D_80034CA0)($t6) +/* 091078 7F05C548 3C188003 */ lui $t8, %hi(D_80035904) +/* 09107C 7F05C54C 27185904 */ addiu $t8, %lo(D_80035904) # addiu $t8, $t8, 0x5904 +/* 091080 7F05C550 000E78C0 */ sll $t7, $t6, 3 +/* 091084 7F05C554 01EE7821 */ addu $t7, $t7, $t6 +/* 091088 7F05C558 000F7880 */ sll $t7, $t7, 2 +/* 09108C 7F05C55C 01F81021 */ addu $v0, $t7, $t8 +/* 091090 7F05C560 C4440004 */ lwc1 $f4, 4($v0) +/* 091094 7F05C564 C4860000 */ lwc1 $f6, ($a0) +/* 091098 7F05C568 C44A0008 */ lwc1 $f10, 8($v0) +/* 09109C 7F05C56C 46062200 */ add.s $f8, $f4, $f6 +/* 0910A0 7F05C570 C444000C */ lwc1 $f4, 0xc($v0) +/* 0910A4 7F05C574 E4480004 */ swc1 $f8, 4($v0) +/* 0910A8 7F05C578 C4900004 */ lwc1 $f16, 4($a0) +/* 0910AC 7F05C57C 46105480 */ add.s $f18, $f10, $f16 +/* 0910B0 7F05C580 E4520008 */ swc1 $f18, 8($v0) +/* 0910B4 7F05C584 C4860008 */ lwc1 $f6, 8($a0) +/* 0910B8 7F05C588 46062200 */ add.s $f8, $f4, $f6 +/* 0910BC 7F05C58C 03E00008 */ jr $ra +/* 0910C0 7F05C590 E448000C */ swc1 $f8, 0xc($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05C594(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05C594 +/* 0910C4 7F05C594 3C0E8003 */ lui $t6, %hi(D_80034CA0) +/* 0910C8 7F05C598 8DCE4CA0 */ lw $t6, %lo(D_80034CA0)($t6) +/* 0910CC 7F05C59C 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0910D0 7F05C5A0 3C198003 */ lui $t9, %hi(D_80035904) +/* 0910D4 7F05C5A4 000E78C0 */ sll $t7, $t6, 3 +/* 0910D8 7F05C5A8 01EE7821 */ addu $t7, $t7, $t6 +/* 0910DC 7F05C5AC 000F7880 */ sll $t7, $t7, 2 +/* 0910E0 7F05C5B0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0910E4 7F05C5B4 AFA40058 */ sw $a0, 0x58($sp) +/* 0910E8 7F05C5B8 25F80010 */ addiu $t8, $t7, 0x10 +/* 0910EC 7F05C5BC 27395904 */ addiu $t9, %lo(D_80035904) # addiu $t9, $t9, 0x5904 +/* 0910F0 7F05C5C0 03192021 */ addu $a0, $t8, $t9 +/* 0910F4 7F05C5C4 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 0910F8 7F05C5C8 27A50018 */ addiu $a1, $sp, 0x18 +/* 0910FC 7F05C5CC 8FA40058 */ lw $a0, 0x58($sp) +/* 091100 7F05C5D0 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 091104 7F05C5D4 27A50018 */ addiu $a1, $sp, 0x18 +/* 091108 7F05C5D8 3C088003 */ lui $t0, %hi(D_80034CA0) +/* 09110C 7F05C5DC 8D084CA0 */ lw $t0, %lo(D_80034CA0)($t0) +/* 091110 7F05C5E0 3C0B8003 */ lui $t3, %hi(D_80035904) +/* 091114 7F05C5E4 256B5904 */ addiu $t3, %lo(D_80035904) # addiu $t3, $t3, 0x5904 +/* 091118 7F05C5E8 000848C0 */ sll $t1, $t0, 3 +/* 09111C 7F05C5EC 01284821 */ addu $t1, $t1, $t0 +/* 091120 7F05C5F0 00094880 */ sll $t1, $t1, 2 +/* 091124 7F05C5F4 252A0010 */ addiu $t2, $t1, 0x10 +/* 091128 7F05C5F8 014B2821 */ addu $a1, $t2, $t3 +/* 09112C 7F05C5FC 0FC16218 */ jal matrix_4x4_get_rotation_around_xyz +/* 091130 7F05C600 27A40018 */ addiu $a0, $sp, 0x18 +/* 091134 7F05C604 8FBF0014 */ lw $ra, 0x14($sp) +/* 091138 7F05C608 27BD0058 */ addiu $sp, $sp, 0x58 +/* 09113C 7F05C60C 03E00008 */ jr $ra +/* 091140 7F05C610 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05C614(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05C614 +/* 091144 7F05C614 3C0E8003 */ lui $t6, %hi(cartridges_eject) +/* 091148 7F05C618 8DCE4C9C */ lw $t6, %lo(cartridges_eject)($t6) +/* 09114C 7F05C61C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 091150 7F05C620 AFBF0014 */ sw $ra, 0x14($sp) +/* 091154 7F05C624 11C00020 */ beqz $t6, .L7F05C6A8 +/* 091158 7F05C628 3C028008 */ lui $v0, %hi(pPlayer) +/* 09115C 7F05C62C 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 091160 7F05C630 8C580000 */ lw $t8, ($v0) +/* 091164 7F05C634 240F0001 */ li $t7, 1 +/* 091168 7F05C638 3C198003 */ lui $t9, %hi(D_80034CA0) +/* 09116C 7F05C63C AF0F092C */ sw $t7, 0x92c($t8) +/* 091170 7F05C640 8F394CA0 */ lw $t9, %lo(D_80034CA0)($t9) +/* 091174 7F05C644 8C450000 */ lw $a1, ($v0) +/* 091178 7F05C648 3C0A8003 */ lui $t2, %hi(D_80035904) +/* 09117C 7F05C64C 001940C0 */ sll $t0, $t9, 3 +/* 091180 7F05C650 01194021 */ addu $t0, $t0, $t9 +/* 091184 7F05C654 00084080 */ sll $t0, $t0, 2 +/* 091188 7F05C658 25090010 */ addiu $t1, $t0, 0x10 +/* 09118C 7F05C65C 254A5904 */ addiu $t2, %lo(D_80035904) # addiu $t2, $t2, 0x5904 +/* 091190 7F05C660 012A2021 */ addu $a0, $t1, $t2 +/* 091194 7F05C664 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 091198 7F05C668 24A508EC */ addiu $a1, $a1, 0x8ec +/* 09119C 7F05C66C 3C0B8003 */ lui $t3, %hi(D_80034CA0) +/* 0911A0 7F05C670 8D6B4CA0 */ lw $t3, %lo(D_80034CA0)($t3) +/* 0911A4 7F05C674 3C058008 */ lui $a1, %hi(pPlayer) +/* 0911A8 7F05C678 8CA5A0B0 */ lw $a1, %lo(pPlayer)($a1) +/* 0911AC 7F05C67C 000B60C0 */ sll $t4, $t3, 3 +/* 0911B0 7F05C680 018B6021 */ addu $t4, $t4, $t3 +/* 0911B4 7F05C684 000C6080 */ sll $t4, $t4, 2 +/* 0911B8 7F05C688 3C0E8003 */ lui $t6, %hi(D_80035904) +/* 0911BC 7F05C68C 25CE5904 */ addiu $t6, %lo(D_80035904) # addiu $t6, $t6, 0x5904 +/* 0911C0 7F05C690 258D0004 */ addiu $t5, $t4, 4 +/* 0911C4 7F05C694 01AE2021 */ addu $a0, $t5, $t6 +/* 0911C8 7F05C698 0FC16266 */ jal matrix_4x4_set_position +/* 0911CC 7F05C69C 24A508EC */ addiu $a1, $a1, 0x8ec +/* 0911D0 7F05C6A0 3C018003 */ lui $at, %hi(cartridges_eject) +/* 0911D4 7F05C6A4 AC204C9C */ sw $zero, %lo(cartridges_eject)($at) +.L7F05C6A8: +/* 0911D8 7F05C6A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0911DC 7F05C6AC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0911E0 7F05C6B0 03E00008 */ jr $ra +/* 0911E4 7F05C6B4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05C6B8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05C6B8 +/* 0911E8 7F05C6B8 3C028003 */ lui $v0, %hi(D_80034CA0) +/* 0911EC 7F05C6BC 24424CA0 */ addiu $v0, %lo(D_80034CA0) # addiu $v0, $v0, 0x4ca0 +/* 0911F0 7F05C6C0 8C4E0000 */ lw $t6, ($v0) +/* 0911F4 7F05C6C4 3C088003 */ lui $t0, %hi(D_80035904) +/* 0911F8 7F05C6C8 25CF0001 */ addiu $t7, $t6, 1 +/* 0911FC 7F05C6CC 000FC8C0 */ sll $t9, $t7, 3 +/* 091200 7F05C6D0 032FC821 */ addu $t9, $t9, $t7 +/* 091204 7F05C6D4 0019C880 */ sll $t9, $t9, 2 +/* 091208 7F05C6D8 AC4F0000 */ sw $t7, ($v0) +/* 09120C 7F05C6DC 01194021 */ addu $t0, $t0, $t9 +/* 091210 7F05C6E0 8D085904 */ lw $t0, %lo(D_80035904)($t0) +/* 091214 7F05C6E4 31090001 */ andi $t1, $t0, 1 +/* 091218 7F05C6E8 11200002 */ beqz $t1, .L7F05C6F4 +/* 09121C 7F05C6EC 00000000 */ nop +/* 091220 7F05C6F0 AC400000 */ sw $zero, ($v0) +.L7F05C6F4: +/* 091224 7F05C6F4 03E00008 */ jr $ra +/* 091228 7F05C6F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05C6FC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05C6FC +/* 09122C 7F05C6FC 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 091230 7F05C700 AFBF002C */ sw $ra, 0x2c($sp) +/* 091234 7F05C704 AFB00028 */ sw $s0, 0x28($sp) +/* 091238 7F05C708 AFA600A8 */ sw $a2, 0xa8($sp) +/* 09123C 7F05C70C AFA700AC */ sw $a3, 0xac($sp) +/* 091240 7F05C710 44856000 */ mtc1 $a1, $f12 +/* 091244 7F05C714 C4840044 */ lwc1 $f4, 0x44($a0) +/* 091248 7F05C718 24020001 */ li $v0, 1 +/* 09124C 7F05C71C 24900024 */ addiu $s0, $a0, 0x24 +/* 091250 7F05C720 460C203E */ c.le.s $f4, $f12 +/* 091254 7F05C724 00000000 */ nop +/* 091258 7F05C728 4502000E */ bc1fl .L7F05C764 +/* 09125C 7F05C72C 0002C0C0 */ sll $t8, $v0, 3 +/* 091260 7F05C730 C6000020 */ lwc1 $f0, 0x20($s0) +/* 091264 7F05C734 8E0E006C */ lw $t6, 0x6c($s0) +.L7F05C738: +/* 091268 7F05C738 46006301 */ sub.s $f12, $f12, $f0 +/* 09126C 7F05C73C 24420001 */ addiu $v0, $v0, 1 +/* 091270 7F05C740 31CF0001 */ andi $t7, $t6, 1 +/* 091274 7F05C744 15E00006 */ bnez $t7, .L7F05C760 +/* 091278 7F05C748 26100024 */ addiu $s0, $s0, 0x24 +/* 09127C 7F05C74C C6000020 */ lwc1 $f0, 0x20($s0) +/* 091280 7F05C750 460C003E */ c.le.s $f0, $f12 +/* 091284 7F05C754 00000000 */ nop +/* 091288 7F05C758 4503FFF7 */ bc1tl .L7F05C738 +/* 09128C 7F05C75C 8E0E006C */ lw $t6, 0x6c($s0) +.L7F05C760: +/* 091290 7F05C760 0002C0C0 */ sll $t8, $v0, 3 +.L7F05C764: +/* 091294 7F05C764 0302C021 */ addu $t8, $t8, $v0 +/* 091298 7F05C768 0018C080 */ sll $t8, $t8, 2 +/* 09129C 7F05C76C 00988021 */ addu $s0, $a0, $t8 +/* 0912A0 7F05C770 8E190048 */ lw $t9, 0x48($s0) +/* 0912A4 7F05C774 33280001 */ andi $t0, $t9, 1 +/* 0912A8 7F05C778 11000008 */ beqz $t0, .L7F05C79C +/* 0912AC 7F05C77C 26040010 */ addiu $a0, $s0, 0x10 +/* 0912B0 7F05C780 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 0912B4 7F05C784 8FA500A8 */ lw $a1, 0xa8($sp) +/* 0912B8 7F05C788 26040004 */ addiu $a0, $s0, 4 +/* 0912BC 7F05C78C 0FC16266 */ jal matrix_4x4_set_position +/* 0912C0 7F05C790 8FA500A8 */ lw $a1, 0xa8($sp) +/* 0912C4 7F05C794 10000042 */ b .L7F05C8A0 +/* 0912C8 7F05C798 00001025 */ move $v0, $zero +.L7F05C79C: +/* 0912CC 7F05C79C C6060020 */ lwc1 $f6, 0x20($s0) +/* 0912D0 7F05C7A0 2604FFEC */ addiu $a0, $s0, -0x14 +/* 0912D4 7F05C7A4 27A50068 */ addiu $a1, $sp, 0x68 +/* 0912D8 7F05C7A8 46066203 */ div.s $f8, $f12, $f6 +/* 0912DC 7F05C7AC E7A80098 */ swc1 $f8, 0x98($sp) +/* 0912E0 7F05C7B0 C60A001C */ lwc1 $f10, 0x1c($s0) +/* 0912E4 7F05C7B4 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 0912E8 7F05C7B8 E7AA0094 */ swc1 $f10, 0x94($sp) +/* 0912EC 7F05C7BC 26040010 */ addiu $a0, $s0, 0x10 +/* 0912F0 7F05C7C0 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 0912F4 7F05C7C4 27A50058 */ addiu $a1, $sp, 0x58 +/* 0912F8 7F05C7C8 26040034 */ addiu $a0, $s0, 0x34 +/* 0912FC 7F05C7CC 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 091300 7F05C7D0 27A50048 */ addiu $a1, $sp, 0x48 +/* 091304 7F05C7D4 26040058 */ addiu $a0, $s0, 0x58 +/* 091308 7F05C7D8 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 09130C 7F05C7DC 27A50038 */ addiu $a1, $sp, 0x38 +/* 091310 7F05C7E0 27A40058 */ addiu $a0, $sp, 0x58 +/* 091314 7F05C7E4 0FC16F84 */ jal quaternion_ensure_shortest_path +/* 091318 7F05C7E8 27A50048 */ addiu $a1, $sp, 0x48 +/* 09131C 7F05C7EC 27A40048 */ addiu $a0, $sp, 0x48 +/* 091320 7F05C7F0 0FC16F84 */ jal quaternion_ensure_shortest_path +/* 091324 7F05C7F4 27A50038 */ addiu $a1, $sp, 0x38 +/* 091328 7F05C7F8 27A40058 */ addiu $a0, $sp, 0x58 +/* 09132C 7F05C7FC 0FC16F84 */ jal quaternion_ensure_shortest_path +/* 091330 7F05C800 27A50068 */ addiu $a1, $sp, 0x68 +/* 091334 7F05C804 C7B00098 */ lwc1 $f16, 0x98($sp) +/* 091338 7F05C808 27A90078 */ addiu $t1, $sp, 0x78 +/* 09133C 7F05C80C AFA90014 */ sw $t1, 0x14($sp) +/* 091340 7F05C810 27A40068 */ addiu $a0, $sp, 0x68 +/* 091344 7F05C814 27A50058 */ addiu $a1, $sp, 0x58 +/* 091348 7F05C818 27A60048 */ addiu $a2, $sp, 0x48 +/* 09134C 7F05C81C 27A70038 */ addiu $a3, $sp, 0x38 +/* 091350 7F05C820 0FC170BC */ jal quaternion_7F05C2F0 +/* 091354 7F05C824 E7B00010 */ swc1 $f16, 0x10($sp) +/* 091358 7F05C828 C7B20098 */ lwc1 $f18, 0x98($sp) +/* 09135C 7F05C82C C7A40094 */ lwc1 $f4, 0x94($sp) +/* 091360 7F05C830 27AA0088 */ addiu $t2, $sp, 0x88 +/* 091364 7F05C834 AFAA0018 */ sw $t2, 0x18($sp) +/* 091368 7F05C838 2604FFE0 */ addiu $a0, $s0, -0x20 +/* 09136C 7F05C83C 26050004 */ addiu $a1, $s0, 4 +/* 091370 7F05C840 26060028 */ addiu $a2, $s0, 0x28 +/* 091374 7F05C844 2607004C */ addiu $a3, $s0, 0x4c +/* 091378 7F05C848 E7B20010 */ swc1 $f18, 0x10($sp) +/* 09137C 7F05C84C 0FC16C09 */ jal sub_GAME_7F05B024 +/* 091380 7F05C850 E7A40014 */ swc1 $f4, 0x14($sp) +/* 091384 7F05C854 8FAB00AC */ lw $t3, 0xac($sp) +/* 091388 7F05C858 24010001 */ li $at, 1 +/* 09138C 7F05C85C C7A60088 */ lwc1 $f6, 0x88($sp) +/* 091390 7F05C860 15610009 */ bne $t3, $at, .L7F05C888 +/* 091394 7F05C864 27A40078 */ addiu $a0, $sp, 0x78 +/* 091398 7F05C868 C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 09139C 7F05C86C C7B2007C */ lwc1 $f18, 0x7c($sp) +/* 0913A0 7F05C870 46003207 */ neg.s $f8, $f6 +/* 0913A4 7F05C874 46005407 */ neg.s $f16, $f10 +/* 0913A8 7F05C878 46009107 */ neg.s $f4, $f18 +/* 0913AC 7F05C87C E7A80088 */ swc1 $f8, 0x88($sp) +/* 0913B0 7F05C880 E7B00078 */ swc1 $f16, 0x78($sp) +/* 0913B4 7F05C884 E7A4007C */ swc1 $f4, 0x7c($sp) +.L7F05C888: +/* 0913B8 7F05C888 0FC16D8A */ jal quaternion_to_matrix +/* 0913BC 7F05C88C 8FA500A8 */ lw $a1, 0xa8($sp) +/* 0913C0 7F05C890 27A40088 */ addiu $a0, $sp, 0x88 +/* 0913C4 7F05C894 0FC16266 */ jal matrix_4x4_set_position +/* 0913C8 7F05C898 8FA500A8 */ lw $a1, 0xa8($sp) +/* 0913CC 7F05C89C 24020001 */ li $v0, 1 +.L7F05C8A0: +/* 0913D0 7F05C8A0 8FBF002C */ lw $ra, 0x2c($sp) +/* 0913D4 7F05C8A4 8FB00028 */ lw $s0, 0x28($sp) +/* 0913D8 7F05C8A8 27BD00A0 */ addiu $sp, $sp, 0xa0 +/* 0913DC 7F05C8AC 03E00008 */ jr $ra +/* 0913E0 7F05C8B0 00000000 */ nop +) +#endif + + + + + +struct weapon_stats *get_ptr_item_statistics(int item) { + if (gitem_structs[item].has_no_model == 0) { /* weapon has model, return stats struct */ + return gitem_structs[item].item_weapon_stats; + } + return &default_weaponstats; /* no model, return defaults */ +} + + + + +#ifdef NONMATCHING +void copy_item_in_hand(void) { + +} +#else +GLOBAL_ASM( +.text +glabel copy_item_in_hand +/* 091420 7F05C8F0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 091424 7F05C8F4 AFBF0014 */ sw $ra, 0x14($sp) +/* 091428 7F05C8F8 AFA40018 */ sw $a0, 0x18($sp) +/* 09142C 7F05C8FC 0FC17674 */ jal get_item_in_hand +/* 091430 7F05C900 00002025 */ move $a0, $zero +/* 091434 7F05C904 0FC1722D */ jal get_ptr_item_statistics +/* 091438 7F05C908 00402025 */ move $a0, $v0 +/* 09143C 7F05C90C 8FA30018 */ lw $v1, 0x18($sp) +/* 091440 7F05C910 C4440004 */ lwc1 $f4, 4($v0) +/* 091444 7F05C914 E4640000 */ swc1 $f4, ($v1) +/* 091448 7F05C918 C4460008 */ lwc1 $f6, 8($v0) +/* 09144C 7F05C91C E4660004 */ swc1 $f6, 4($v1) +/* 091450 7F05C920 C448000C */ lwc1 $f8, 0xc($v0) +/* 091454 7F05C924 E4680008 */ swc1 $f8, 8($v1) +/* 091458 7F05C928 8FBF0014 */ lw $ra, 0x14($sp) +/* 09145C 7F05C92C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 091460 7F05C930 03E00008 */ jr $ra +/* 091464 7F05C934 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void copy_item_in_hand_to_main_list(void) { + +} +#else +GLOBAL_ASM( +.text +glabel copy_item_in_hand_to_main_list +/* 091468 7F05C938 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 09146C 7F05C93C AFBF0014 */ sw $ra, 0x14($sp) +/* 091470 7F05C940 AFA40018 */ sw $a0, 0x18($sp) +/* 091474 7F05C944 0FC17674 */ jal get_item_in_hand +/* 091478 7F05C948 00002025 */ move $a0, $zero +/* 09147C 7F05C94C 0FC1722D */ jal get_ptr_item_statistics +/* 091480 7F05C950 00402025 */ move $a0, $v0 +/* 091484 7F05C954 8FA30018 */ lw $v1, 0x18($sp) +/* 091488 7F05C958 C4640000 */ lwc1 $f4, ($v1) +/* 09148C 7F05C95C E4440004 */ swc1 $f4, 4($v0) +/* 091490 7F05C960 C4660004 */ lwc1 $f6, 4($v1) +/* 091494 7F05C964 E4460008 */ swc1 $f6, 8($v0) +/* 091498 7F05C968 C4680008 */ lwc1 $f8, 8($v1) +/* 09149C 7F05C96C E448000C */ swc1 $f8, 0xc($v0) +/* 0914A0 7F05C970 8FBF0014 */ lw $ra, 0x14($sp) +/* 0914A4 7F05C974 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0914A8 7F05C978 03E00008 */ jr $ra +/* 0914AC 7F05C97C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void unknown_takes_playerhand(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053C14 +.word 0x3da3d70a /*0.079999998*/ +glabel D_80053C18 +.word 0x3dcccccd /*0.1*/ +glabel D_80053C1C +.word 0x3dcccccd /*0.1*/ +glabel D_80053C20 +.word 0x3dcccccd /*0.1*/ +.text +glabel unknown_takes_playerhand +/* 0914B0 7F05C980 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0914B4 7F05C984 AFBF003C */ sw $ra, 0x3c($sp) +/* 0914B8 7F05C988 AFB1002C */ sw $s1, 0x2c($sp) +/* 0914BC 7F05C98C 00808825 */ move $s1, $a0 +/* 0914C0 7F05C990 AFB40038 */ sw $s4, 0x38($sp) +/* 0914C4 7F05C994 AFB30034 */ sw $s3, 0x34($sp) +/* 0914C8 7F05C998 AFB20030 */ sw $s2, 0x30($sp) +/* 0914CC 7F05C99C AFB00028 */ sw $s0, 0x28($sp) +/* 0914D0 7F05C9A0 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0914D4 7F05C9A4 0FC17674 */ jal get_item_in_hand +/* 0914D8 7F05C9A8 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0914DC 7F05C9AC 0FC1722D */ jal get_ptr_item_statistics +/* 0914E0 7F05C9B0 00402025 */ move $a0, $v0 +/* 0914E4 7F05C9B4 0011A0C0 */ sll $s4, $s1, 3 +/* 0914E8 7F05C9B8 0291A023 */ subu $s4, $s4, $s1 +/* 0914EC 7F05C9BC 3C138008 */ lui $s3, %hi(pPlayer) +/* 0914F0 7F05C9C0 0014A080 */ sll $s4, $s4, 2 +/* 0914F4 7F05C9C4 2673A0B0 */ addiu $s3, %lo(pPlayer) # addiu $s3, $s3, -0x5f50 +/* 0914F8 7F05C9C8 0291A021 */ addu $s4, $s4, $s1 +/* 0914FC 7F05C9CC 8E6F0000 */ lw $t7, ($s3) +/* 091500 7F05C9D0 0014A080 */ sll $s4, $s4, 2 +/* 091504 7F05C9D4 0291A021 */ addu $s4, $s4, $s1 +/* 091508 7F05C9D8 0014A0C0 */ sll $s4, $s4, 3 +/* 09150C 7F05C9DC 01F41821 */ addu $v1, $t7, $s4 +/* 091510 7F05C9E0 8C780A08 */ lw $t8, 0xa08($v1) +/* 091514 7F05C9E4 00112080 */ sll $a0, $s1, 2 +/* 091518 7F05C9E8 27AE0068 */ addiu $t6, $sp, 0x68 +/* 09151C 7F05C9EC 27190002 */ addiu $t9, $t8, 2 +/* 091520 7F05C9F0 C4540040 */ lwc1 $f20, 0x40($v0) +/* 091524 7F05C9F4 008E8021 */ addu $s0, $a0, $t6 +/* 091528 7F05C9F8 07210004 */ bgez $t9, .L7F05CA0C +/* 09152C 7F05C9FC 33280003 */ andi $t0, $t9, 3 +/* 091530 7F05CA00 11000002 */ beqz $t0, .L7F05CA0C +/* 091534 7F05CA04 00000000 */ nop +/* 091538 7F05CA08 2508FFFC */ addiu $t0, $t0, -4 +.L7F05CA0C: +/* 09153C 7F05CA0C AE080000 */ sw $t0, ($s0) +/* 091540 7F05CA10 8C6A0A08 */ lw $t2, 0xa08($v1) +/* 091544 7F05CA14 27A90060 */ addiu $t1, $sp, 0x60 +/* 091548 7F05CA18 00892821 */ addu $a1, $a0, $t1 +/* 09154C 7F05CA1C 254B0001 */ addiu $t3, $t2, 1 +/* 091550 7F05CA20 05610004 */ bgez $t3, .L7F05CA34 +/* 091554 7F05CA24 316C0003 */ andi $t4, $t3, 3 +/* 091558 7F05CA28 11800002 */ beqz $t4, .L7F05CA34 +/* 09155C 7F05CA2C 00000000 */ nop +/* 091560 7F05CA30 258CFFFC */ addiu $t4, $t4, -4 +.L7F05CA34: +/* 091564 7F05CA34 ACAC0000 */ sw $t4, ($a1) +/* 091568 7F05CA38 0C002914 */ jal get_random_value +/* 09156C 7F05CA3C AC6C0A08 */ sw $t4, 0xa08($v1) +/* 091570 7F05CA40 44822000 */ mtc1 $v0, $f4 +/* 091574 7F05CA44 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 091578 7F05CA48 4481B000 */ mtc1 $at, $f22 +/* 09157C 7F05CA4C 2412000C */ li $s2, 12 +/* 091580 7F05CA50 04410005 */ bgez $v0, .L7F05CA68 +/* 091584 7F05CA54 468021A0 */ cvt.s.w $f6, $f4 +/* 091588 7F05CA58 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09158C 7F05CA5C 44814000 */ mtc1 $at, $f8 +/* 091590 7F05CA60 00000000 */ nop +/* 091594 7F05CA64 46083180 */ add.s $f6, $f6, $f8 +.L7F05CA68: +/* 091598 7F05CA68 46163282 */ mul.s $f10, $f6, $f22 +/* 09159C 7F05CA6C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0915A0 7F05CA70 44818000 */ mtc1 $at, $f16 +/* 0915A4 7F05CA74 3C018005 */ lui $at, %hi(D_80053C14) +/* 0915A8 7F05CA78 C4243C14 */ lwc1 $f4, %lo(D_80053C14)($at) +/* 0915AC 7F05CA7C 8E190000 */ lw $t9, ($s0) +/* 0915B0 7F05CA80 001178C0 */ sll $t7, $s1, 3 +/* 0915B4 7F05CA84 46105481 */ sub.s $f18, $f10, $f16 +/* 0915B8 7F05CA88 03320019 */ multu $t9, $s2 +/* 0915BC 7F05CA8C 01F17823 */ subu $t7, $t7, $s1 +/* 0915C0 7F05CA90 000F7880 */ sll $t7, $t7, 2 +/* 0915C4 7F05CA94 46049202 */ mul.s $f8, $f18, $f4 +/* 0915C8 7F05CA98 01F17821 */ addu $t7, $t7, $s1 +/* 0915CC 7F05CA9C 8E6E0000 */ lw $t6, ($s3) +/* 0915D0 7F05CAA0 000F7880 */ sll $t7, $t7, 2 +/* 0915D4 7F05CAA4 01F17821 */ addu $t7, $t7, $s1 +/* 0915D8 7F05CAA8 000F78C0 */ sll $t7, $t7, 3 +/* 0915DC 7F05CAAC 01CFC021 */ addu $t8, $t6, $t7 +/* 0915E0 7F05CAB0 46144182 */ mul.s $f6, $f8, $f20 +/* 0915E4 7F05CAB4 00004012 */ mflo $t0 +/* 0915E8 7F05CAB8 03084821 */ addu $t1, $t8, $t0 +/* 0915EC 7F05CABC 0C002914 */ jal get_random_value +/* 0915F0 7F05CAC0 E52609A8 */ swc1 $f6, 0x9a8($t1) +/* 0915F4 7F05CAC4 44825000 */ mtc1 $v0, $f10 +/* 0915F8 7F05CAC8 04410005 */ bgez $v0, .L7F05CAE0 +/* 0915FC 7F05CACC 46805420 */ cvt.s.w $f16, $f10 +/* 091600 7F05CAD0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 091604 7F05CAD4 44819000 */ mtc1 $at, $f18 +/* 091608 7F05CAD8 00000000 */ nop +/* 09160C 7F05CADC 46128400 */ add.s $f16, $f16, $f18 +.L7F05CAE0: +/* 091610 7F05CAE0 46168102 */ mul.s $f4, $f16, $f22 +/* 091614 7F05CAE4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 091618 7F05CAE8 44814000 */ mtc1 $at, $f8 +/* 09161C 7F05CAEC 3C018005 */ lui $at, %hi(D_80053C18) +/* 091620 7F05CAF0 C42A3C18 */ lwc1 $f10, %lo(D_80053C18)($at) +/* 091624 7F05CAF4 8E0D0000 */ lw $t5, ($s0) +/* 091628 7F05CAF8 001158C0 */ sll $t3, $s1, 3 +/* 09162C 7F05CAFC 46082181 */ sub.s $f6, $f4, $f8 +/* 091630 7F05CB00 01B20019 */ multu $t5, $s2 +/* 091634 7F05CB04 01715823 */ subu $t3, $t3, $s1 +/* 091638 7F05CB08 000B5880 */ sll $t3, $t3, 2 +/* 09163C 7F05CB0C 460A3482 */ mul.s $f18, $f6, $f10 +/* 091640 7F05CB10 01715821 */ addu $t3, $t3, $s1 +/* 091644 7F05CB14 8E6A0000 */ lw $t2, ($s3) +/* 091648 7F05CB18 000B5880 */ sll $t3, $t3, 2 +/* 09164C 7F05CB1C 01715821 */ addu $t3, $t3, $s1 +/* 091650 7F05CB20 000B58C0 */ sll $t3, $t3, 3 +/* 091654 7F05CB24 014B6021 */ addu $t4, $t2, $t3 +/* 091658 7F05CB28 46149402 */ mul.s $f16, $f18, $f20 +/* 09165C 7F05CB2C 00007012 */ mflo $t6 +/* 091660 7F05CB30 018E7821 */ addu $t7, $t4, $t6 +/* 091664 7F05CB34 0011C0C0 */ sll $t8, $s1, 3 +/* 091668 7F05CB38 0311C023 */ subu $t8, $t8, $s1 +/* 09166C 7F05CB3C 0018C080 */ sll $t8, $t8, 2 +/* 091670 7F05CB40 0311C021 */ addu $t8, $t8, $s1 +/* 091674 7F05CB44 E5F009AC */ swc1 $f16, 0x9ac($t7) +/* 091678 7F05CB48 8E090000 */ lw $t1, ($s0) +/* 09167C 7F05CB4C 8E790000 */ lw $t9, ($s3) +/* 091680 7F05CB50 0018C080 */ sll $t8, $t8, 2 +/* 091684 7F05CB54 01320019 */ multu $t1, $s2 +/* 091688 7F05CB58 0311C021 */ addu $t8, $t8, $s1 +/* 09168C 7F05CB5C 0018C0C0 */ sll $t8, $t8, 3 +/* 091690 7F05CB60 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 091694 7F05CB64 44812000 */ mtc1 $at, $f4 +/* 091698 7F05CB68 03384021 */ addu $t0, $t9, $t8 +/* 09169C 7F05CB6C 00005012 */ mflo $t2 +/* 0916A0 7F05CB70 010A5821 */ addu $t3, $t0, $t2 +/* 0916A4 7F05CB74 0C002914 */ jal get_random_value +/* 0916A8 7F05CB78 E56409B0 */ swc1 $f4, 0x9b0($t3) +/* 0916AC 7F05CB7C 44824000 */ mtc1 $v0, $f8 +/* 0916B0 7F05CB80 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0916B4 7F05CB84 04410004 */ bgez $v0, .L7F05CB98 +/* 0916B8 7F05CB88 468041A0 */ cvt.s.w $f6, $f8 +/* 0916BC 7F05CB8C 44815000 */ mtc1 $at, $f10 +/* 0916C0 7F05CB90 00000000 */ nop +/* 0916C4 7F05CB94 460A3180 */ add.s $f6, $f6, $f10 +.L7F05CB98: +/* 0916C8 7F05CB98 46163482 */ mul.s $f18, $f6, $f22 +/* 0916CC 7F05CB9C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0916D0 7F05CBA0 44818000 */ mtc1 $at, $f16 +/* 0916D4 7F05CBA4 3C018005 */ lui $at, %hi(D_80053C1C) +/* 0916D8 7F05CBA8 C4283C1C */ lwc1 $f8, %lo(D_80053C1C)($at) +/* 0916DC 7F05CBAC 8E0F0000 */ lw $t7, ($s0) +/* 0916E0 7F05CBB0 001160C0 */ sll $t4, $s1, 3 +/* 0916E4 7F05CBB4 46109101 */ sub.s $f4, $f18, $f16 +/* 0916E8 7F05CBB8 01F20019 */ multu $t7, $s2 +/* 0916EC 7F05CBBC 01916023 */ subu $t4, $t4, $s1 +/* 0916F0 7F05CBC0 000C6080 */ sll $t4, $t4, 2 +/* 0916F4 7F05CBC4 46082282 */ mul.s $f10, $f4, $f8 +/* 0916F8 7F05CBC8 01916021 */ addu $t4, $t4, $s1 +/* 0916FC 7F05CBCC 8E6D0000 */ lw $t5, ($s3) +/* 091700 7F05CBD0 000C6080 */ sll $t4, $t4, 2 +/* 091704 7F05CBD4 01916021 */ addu $t4, $t4, $s1 +/* 091708 7F05CBD8 000C60C0 */ sll $t4, $t4, 3 +/* 09170C 7F05CBDC 01AC7021 */ addu $t6, $t5, $t4 +/* 091710 7F05CBE0 46145182 */ mul.s $f6, $f10, $f20 +/* 091714 7F05CBE4 0000C812 */ mflo $t9 +/* 091718 7F05CBE8 01D9C021 */ addu $t8, $t6, $t9 +/* 09171C 7F05CBEC 001140C0 */ sll $t0, $s1, 3 +/* 091720 7F05CBF0 01114023 */ subu $t0, $t0, $s1 +/* 091724 7F05CBF4 00084080 */ sll $t0, $t0, 2 +/* 091728 7F05CBF8 01114021 */ addu $t0, $t0, $s1 +/* 09172C 7F05CBFC E70609D8 */ swc1 $f6, 0x9d8($t8) +/* 091730 7F05CC00 8E0B0000 */ lw $t3, ($s0) +/* 091734 7F05CC04 8E690000 */ lw $t1, ($s3) +/* 091738 7F05CC08 00084080 */ sll $t0, $t0, 2 +/* 09173C 7F05CC0C 01720019 */ multu $t3, $s2 +/* 091740 7F05CC10 01114021 */ addu $t0, $t0, $s1 +/* 091744 7F05CC14 000840C0 */ sll $t0, $t0, 3 +/* 091748 7F05CC18 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09174C 7F05CC1C 44819000 */ mtc1 $at, $f18 +/* 091750 7F05CC20 01285021 */ addu $t2, $t1, $t0 +/* 091754 7F05CC24 00006812 */ mflo $t5 +/* 091758 7F05CC28 014D6021 */ addu $t4, $t2, $t5 +/* 09175C 7F05CC2C 0C002914 */ jal get_random_value +/* 091760 7F05CC30 E59209DC */ swc1 $f18, 0x9dc($t4) +/* 091764 7F05CC34 44828000 */ mtc1 $v0, $f16 +/* 091768 7F05CC38 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09176C 7F05CC3C 04410004 */ bgez $v0, .L7F05CC50 +/* 091770 7F05CC40 46808120 */ cvt.s.w $f4, $f16 +/* 091774 7F05CC44 44814000 */ mtc1 $at, $f8 +/* 091778 7F05CC48 00000000 */ nop +/* 09177C 7F05CC4C 46082100 */ add.s $f4, $f4, $f8 +.L7F05CC50: +/* 091780 7F05CC50 46162282 */ mul.s $f10, $f4, $f22 +/* 091784 7F05CC54 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 091788 7F05CC58 44813000 */ mtc1 $at, $f6 +/* 09178C 7F05CC5C 3C018005 */ lui $at, %hi(D_80053C20) +/* 091790 7F05CC60 C4303C20 */ lwc1 $f16, %lo(D_80053C20)($at) +/* 091794 7F05CC64 8E180000 */ lw $t8, ($s0) +/* 091798 7F05CC68 001170C0 */ sll $t6, $s1, 3 +/* 09179C 7F05CC6C 46065481 */ sub.s $f18, $f10, $f6 +/* 0917A0 7F05CC70 03120019 */ multu $t8, $s2 +/* 0917A4 7F05CC74 01D17023 */ subu $t6, $t6, $s1 +/* 0917A8 7F05CC78 000E7080 */ sll $t6, $t6, 2 +/* 0917AC 7F05CC7C 46109202 */ mul.s $f8, $f18, $f16 +/* 0917B0 7F05CC80 01D17021 */ addu $t6, $t6, $s1 +/* 0917B4 7F05CC84 8E6F0000 */ lw $t7, ($s3) +/* 0917B8 7F05CC88 000E7080 */ sll $t6, $t6, 2 +/* 0917BC 7F05CC8C 01D17021 */ addu $t6, $t6, $s1 +/* 0917C0 7F05CC90 000E70C0 */ sll $t6, $t6, 3 +/* 0917C4 7F05CC94 01EEC821 */ addu $t9, $t7, $t6 +/* 0917C8 7F05CC98 46144102 */ mul.s $f4, $f8, $f20 +/* 0917CC 7F05CC9C 00004812 */ mflo $t1 +/* 0917D0 7F05CCA0 03294021 */ addu $t0, $t9, $t1 +/* 0917D4 7F05CCA4 0C002914 */ jal get_random_value +/* 0917D8 7F05CCA8 E50409E0 */ swc1 $f4, 0x9e0($t0) +/* 0917DC 7F05CCAC 44825000 */ mtc1 $v0, $f10 +/* 0917E0 7F05CCB0 001150C0 */ sll $t2, $s1, 3 +/* 0917E4 7F05CCB4 04410005 */ bgez $v0, .L7F05CCCC +/* 0917E8 7F05CCB8 468051A0 */ cvt.s.w $f6, $f10 +/* 0917EC 7F05CCBC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0917F0 7F05CCC0 44819000 */ mtc1 $at, $f18 +/* 0917F4 7F05CCC4 00000000 */ nop +/* 0917F8 7F05CCC8 46123180 */ add.s $f6, $f6, $f18 +.L7F05CCCC: +/* 0917FC 7F05CCCC 46163402 */ mul.s $f16, $f6, $f22 +/* 091800 7F05CCD0 8E0C0000 */ lw $t4, ($s0) +/* 091804 7F05CCD4 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 091808 7F05CCD8 44814000 */ mtc1 $at, $f8 +/* 09180C 7F05CCDC 01920019 */ multu $t4, $s2 +/* 091810 7F05CCE0 01515023 */ subu $t2, $t2, $s1 +/* 091814 7F05CCE4 000A5080 */ sll $t2, $t2, 2 +/* 091818 7F05CCE8 46088102 */ mul.s $f4, $f16, $f8 +/* 09181C 7F05CCEC 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 091820 7F05CCF0 44815000 */ mtc1 $at, $f10 +/* 091824 7F05CCF4 01515021 */ addu $t2, $t2, $s1 +/* 091828 7F05CCF8 8E6B0000 */ lw $t3, ($s3) +/* 09182C 7F05CCFC 000A5080 */ sll $t2, $t2, 2 +/* 091830 7F05CD00 01515021 */ addu $t2, $t2, $s1 +/* 091834 7F05CD04 460A2480 */ add.s $f18, $f4, $f10 +/* 091838 7F05CD08 000A50C0 */ sll $t2, $t2, 3 +/* 09183C 7F05CD0C 00007812 */ mflo $t7 +/* 091840 7F05CD10 016A6821 */ addu $t5, $t3, $t2 +/* 091844 7F05CD14 01AF7021 */ addu $t6, $t5, $t7 +/* 091848 7F05CD18 0C002914 */ jal get_random_value +/* 09184C 7F05CD1C E5D20978 */ swc1 $f18, 0x978($t6) +/* 091850 7F05CD20 8E780000 */ lw $t8, ($s3) +/* 091854 7F05CD24 44828000 */ mtc1 $v0, $f16 +/* 091858 7F05CD28 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 09185C 7F05CD2C 44813000 */ mtc1 $at, $f6 +/* 091860 7F05CD30 03141821 */ addu $v1, $t8, $s4 +/* 091864 7F05CD34 04410005 */ bgez $v0, .L7F05CD4C +/* 091868 7F05CD38 46808220 */ cvt.s.w $f8, $f16 +/* 09186C 7F05CD3C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 091870 7F05CD40 44812000 */ mtc1 $at, $f4 +/* 091874 7F05CD44 00000000 */ nop +/* 091878 7F05CD48 46044200 */ add.s $f8, $f8, $f4 +.L7F05CD4C: +/* 09187C 7F05CD4C 46164282 */ mul.s $f10, $f8, $f22 +/* 091880 7F05CD50 8E190000 */ lw $t9, ($s0) +/* 091884 7F05CD54 C4700A14 */ lwc1 $f16, 0xa14($v1) +/* 091888 7F05CD58 03320019 */ multu $t9, $s2 +/* 09188C 7F05CD5C 460A3480 */ add.s $f18, $f6, $f10 +/* 091890 7F05CD60 46128102 */ mul.s $f4, $f16, $f18 +/* 091894 7F05CD64 00004812 */ mflo $t1 +/* 091898 7F05CD68 00694021 */ addu $t0, $v1, $t1 +/* 09189C 7F05CD6C 0C002914 */ jal get_random_value +/* 0918A0 7F05CD70 E504097C */ swc1 $f4, 0x97c($t0) +/* 0918A4 7F05CD74 44824000 */ mtc1 $v0, $f8 +/* 0918A8 7F05CD78 001150C0 */ sll $t2, $s1, 3 +/* 0918AC 7F05CD7C 04410005 */ bgez $v0, .L7F05CD94 +/* 0918B0 7F05CD80 468041A0 */ cvt.s.w $f6, $f8 +/* 0918B4 7F05CD84 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0918B8 7F05CD88 44815000 */ mtc1 $at, $f10 +/* 0918BC 7F05CD8C 00000000 */ nop +/* 0918C0 7F05CD90 460A3180 */ add.s $f6, $f6, $f10 +.L7F05CD94: +/* 0918C4 7F05CD94 46163402 */ mul.s $f16, $f6, $f22 +/* 0918C8 7F05CD98 8E0D0000 */ lw $t5, ($s0) +/* 0918CC 7F05CD9C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0918D0 7F05CDA0 44819000 */ mtc1 $at, $f18 +/* 0918D4 7F05CDA4 01B20019 */ multu $t5, $s2 +/* 0918D8 7F05CDA8 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 0918DC 7F05CDAC 44814000 */ mtc1 $at, $f8 +/* 0918E0 7F05CDB0 46128101 */ sub.s $f4, $f16, $f18 +/* 0918E4 7F05CDB4 01515023 */ subu $t2, $t2, $s1 +/* 0918E8 7F05CDB8 000A5080 */ sll $t2, $t2, 2 +/* 0918EC 7F05CDBC 01515021 */ addu $t2, $t2, $s1 +/* 0918F0 7F05CDC0 46082282 */ mul.s $f10, $f4, $f8 +/* 0918F4 7F05CDC4 8E6B0000 */ lw $t3, ($s3) +/* 0918F8 7F05CDC8 000A5080 */ sll $t2, $t2, 2 +/* 0918FC 7F05CDCC 01515021 */ addu $t2, $t2, $s1 +/* 091900 7F05CDD0 000A50C0 */ sll $t2, $t2, 3 +/* 091904 7F05CDD4 00007812 */ mflo $t7 +/* 091908 7F05CDD8 016A6021 */ addu $t4, $t3, $t2 +/* 09190C 7F05CDDC 018F7021 */ addu $t6, $t4, $t7 +/* 091910 7F05CDE0 E5CA0980 */ swc1 $f10, 0x980($t6) +/* 091914 7F05CDE4 8E640000 */ lw $a0, ($s3) +/* 091918 7F05CDE8 24020002 */ li $v0, 2 +/* 09191C 7F05CDEC 00941821 */ addu $v1, $a0, $s4 +/* 091920 7F05CDF0 8C650A18 */ lw $a1, 0xa18($v1) +/* 091924 7F05CDF4 04A1001D */ bgez $a1, .L7F05CE6C +/* 091928 7F05CDF8 00000000 */ nop +/* 09192C 7F05CDFC 8E090000 */ lw $t1, ($s0) +/* 091930 7F05CE00 0011C0C0 */ sll $t8, $s1, 3 +/* 091934 7F05CE04 0311C023 */ subu $t8, $t8, $s1 +/* 091938 7F05CE08 01320019 */ multu $t1, $s2 +/* 09193C 7F05CE0C 0018C080 */ sll $t8, $t8, 2 +/* 091940 7F05CE10 0311C021 */ addu $t8, $t8, $s1 +/* 091944 7F05CE14 0018C080 */ sll $t8, $t8, 2 +/* 091948 7F05CE18 0311C021 */ addu $t8, $t8, $s1 +/* 09194C 7F05CE1C 0018C0C0 */ sll $t8, $t8, 3 +/* 091950 7F05CE20 0098C821 */ addu $t9, $a0, $t8 +/* 091954 7F05CE24 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 091958 7F05CE28 44818000 */ mtc1 $at, $f16 +/* 09195C 7F05CE2C 2405FFFE */ li $a1, -2 +/* 091960 7F05CE30 00004012 */ mflo $t0 +/* 091964 7F05CE34 03281021 */ addu $v0, $t9, $t0 +/* 091968 7F05CE38 C4460978 */ lwc1 $f6, 0x978($v0) +/* 09196C 7F05CE3C 240D0001 */ li $t5, 1 +/* 091970 7F05CE40 46103482 */ mul.s $f18, $f6, $f16 +/* 091974 7F05CE44 E4520978 */ swc1 $f18, 0x978($v0) +/* 091978 7F05CE48 8E6B0000 */ lw $t3, ($s3) +/* 09197C 7F05CE4C 01741821 */ addu $v1, $t3, $s4 +/* 091980 7F05CE50 8C6A0A18 */ lw $t2, 0xa18($v1) +/* 091984 7F05CE54 14AA0003 */ bne $a1, $t2, .L7F05CE64 +/* 091988 7F05CE58 00000000 */ nop +/* 09198C 7F05CE5C 10000008 */ b .L7F05CE80 +/* 091990 7F05CE60 AC6D0A18 */ sw $t5, 0xa18($v1) +.L7F05CE64: +/* 091994 7F05CE64 10000006 */ b .L7F05CE80 +/* 091998 7F05CE68 AC650A18 */ sw $a1, 0xa18($v1) +.L7F05CE6C: +/* 09199C 7F05CE6C 14450003 */ bne $v0, $a1, .L7F05CE7C +/* 0919A0 7F05CE70 240CFFFF */ li $t4, -1 +/* 0919A4 7F05CE74 10000002 */ b .L7F05CE80 +/* 0919A8 7F05CE78 AC6C0A18 */ sw $t4, 0xa18($v1) +.L7F05CE7C: +/* 0919AC 7F05CE7C AC620A18 */ sw $v0, 0xa18($v1) +.L7F05CE80: +/* 0919B0 7F05CE80 8E6F0000 */ lw $t7, ($s3) +/* 0919B4 7F05CE84 01F41821 */ addu $v1, $t7, $s4 +/* 0919B8 7F05CE88 C4640A14 */ lwc1 $f4, 0xa14($v1) +/* 0919BC 7F05CE8C 46002207 */ neg.s $f8, $f4 +/* 0919C0 7F05CE90 E4680A14 */ swc1 $f8, 0xa14($v1) +/* 0919C4 7F05CE94 8FBF003C */ lw $ra, 0x3c($sp) +/* 0919C8 7F05CE98 8FB40038 */ lw $s4, 0x38($sp) +/* 0919CC 7F05CE9C 8FB30034 */ lw $s3, 0x34($sp) +/* 0919D0 7F05CEA0 8FB20030 */ lw $s2, 0x30($sp) +/* 0919D4 7F05CEA4 8FB1002C */ lw $s1, 0x2c($sp) +/* 0919D8 7F05CEA8 8FB00028 */ lw $s0, 0x28($sp) +/* 0919DC 7F05CEAC D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0919E0 7F05CEB0 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0919E4 7F05CEB4 03E00008 */ jr $ra +/* 0919E8 7F05CEB8 27BD0070 */ addiu $sp, $sp, 0x70 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05CEBC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05CEBC +/* 0919EC 7F05CEBC 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0919F0 7F05CEC0 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0919F4 7F05CEC4 00047880 */ sll $t7, $a0, 2 +/* 0919F8 7F05CEC8 01CF1821 */ addu $v1, $t6, $t7 +/* 0919FC 7F05CECC 8C6207F8 */ lw $v0, 0x7f8($v1) +/* 091A00 7F05CED0 0002C02A */ slt $t8, $zero, $v0 +/* 091A04 7F05CED4 17000008 */ bnez $t8, .L7F05CEF8 +/* 091A08 7F05CED8 03001025 */ move $v0, $t8 +/* 091A0C 7F05CEDC 8C620800 */ lw $v0, 0x800($v1) +/* 091A10 7F05CEE0 2C590001 */ sltiu $t9, $v0, 1 +/* 091A14 7F05CEE4 13200004 */ beqz $t9, .L7F05CEF8 +/* 091A18 7F05CEE8 03201025 */ move $v0, $t9 +/* 091A1C 7F05CEEC 8C622A44 */ lw $v0, 0x2a44($v1) +/* 091A20 7F05CEF0 28480000 */ slti $t0, $v0, 0 +/* 091A24 7F05CEF4 01001025 */ move $v0, $t0 +.L7F05CEF8: +/* 091A28 7F05CEF8 03E00008 */ jr $ra +/* 091A2C 7F05CEFC 00000000 */ nop +) +#endif + + + + +s32 get_itemtype_in_hand(s32 hand) +{ + return pPlayer->hand_item[hand]; +} + + + + +#ifdef NONMATCHING +void get_ptr_itemheader_in_hand(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_ptr_itemheader_in_hand +/* 091A48 7F05CF18 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 091A4C 7F05CF1C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 091A50 7F05CF20 00047940 */ sll $t7, $a0, 5 +/* 091A54 7F05CF24 01CF1021 */ addu $v0, $t6, $t7 +/* 091A58 7F05CF28 03E00008 */ jr $ra +/* 091A5C 7F05CF2C 24420810 */ addiu $v0, $v0, 0x810 +) +#endif + + + + + + +u8 * getPlayerWeaponBufferForHand(HANDEDNESS hand) + +{ + return pPlayer->ptr_hand_weapon_buffer[hand]; +} + + + +u32 getSizeBufferWeaponInHand(int hand) +{ + return size_item_buffer[hand]; +} + + +void remove_item_in_hand(HANDEDNESS hand) +{ + pPlayer->hand_invisible[hand] = 0; + pPlayer->hand_item[hand] = ITEM_UNARMED; + pPlayer->field_2A44[hand] = -1; + pPlayer->lock_hand_model[hand] = 1; + return; +} + + + + +#ifdef NONMATCHING +void place_item_in_hand_swap_and_make_visible(void) { + +} +#else +GLOBAL_ASM( +.text +glabel place_item_in_hand_swap_and_make_visible +/* 091AD4 7F05CFA4 3C068008 */ lui $a2, %hi(pPlayer) +/* 091AD8 7F05CFA8 24C6A0B0 */ addiu $a2, %lo(pPlayer) # addiu $a2, $a2, -0x5f50 +/* 091ADC 7F05CFAC 8CCE0000 */ lw $t6, ($a2) +/* 091AE0 7F05CFB0 00041080 */ sll $v0, $a0, 2 +/* 091AE4 7F05CFB4 01C21821 */ addu $v1, $t6, $v0 +/* 091AE8 7F05CFB8 8C6F2A50 */ lw $t7, 0x2a50($v1) +/* 091AEC 7F05CFBC 15E00014 */ bnez $t7, .L7F05D010 +/* 091AF0 7F05CFC0 00000000 */ nop +/* 091AF4 7F05CFC4 8C7807F8 */ lw $t8, 0x7f8($v1) +/* 091AF8 7F05CFC8 0702000B */ bltzl $t8, .L7F05CFF8 +/* 091AFC 7F05CFCC 8C6B0800 */ lw $t3, 0x800($v1) +/* 091B00 7F05CFD0 8C790800 */ lw $t9, 0x800($v1) +/* 091B04 7F05CFD4 2408FFFF */ li $t0, -1 +/* 091B08 7F05CFD8 10B9000D */ beq $a1, $t9, .L7F05D010 +/* 091B0C 7F05CFDC 00000000 */ nop +/* 091B10 7F05CFE0 AC6807F8 */ sw $t0, 0x7f8($v1) +/* 091B14 7F05CFE4 8CC90000 */ lw $t1, ($a2) +/* 091B18 7F05CFE8 01225021 */ addu $t2, $t1, $v0 +/* 091B1C 7F05CFEC 03E00008 */ jr $ra +/* 091B20 7F05CFF0 AD452A44 */ sw $a1, 0x2a44($t2) + +/* 091B24 7F05CFF4 8C6B0800 */ lw $t3, 0x800($v1) +.L7F05CFF8: +/* 091B28 7F05CFF8 240C0001 */ li $t4, 1 +/* 091B2C 7F05CFFC 50AB0004 */ beql $a1, $t3, .L7F05D010 +/* 091B30 7F05D000 AC6C07F8 */ sw $t4, 0x7f8($v1) +/* 091B34 7F05D004 03E00008 */ jr $ra +/* 091B38 7F05D008 AC652A44 */ sw $a1, 0x2a44($v1) + +/* 091B3C 7F05D00C AC6C07F8 */ sw $t4, 0x7f8($v1) +.L7F05D010: +/* 091B40 7F05D010 03E00008 */ jr $ra +/* 091B44 7F05D014 00000000 */ nop +) +#endif + + + + +char * get_ptr_item_text_call_line(ITEM_IDS item) +{ + if (item == ITEM_FIST) { + item = pPlayer->cur_item_weapon_getname; + } + return gitem_structs[item].item_file_name; +} + + +struct Gitemheader * get_ptr_weapon_model_header_line(ITEM_IDS weapon) +{ + if (weapon == ITEM_FIST) { + weapon = pPlayer->cur_item_weapon_getname; + } + return gitem_structs[weapon].item_header; +} + + + + +int getCurrentWeaponOrItem(void) +{ + return pPlayer->cur_item_weapon_getname; +} + + + + +#ifdef NONMATCHING +void used_to_load_1st_person_model_on_demand(void) { + +} +#else +GLOBAL_ASM( +.text +glabel used_to_load_1st_person_model_on_demand +/* 091BB8 7F05D088 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 091BBC 7F05D08C AFB0001C */ sw $s0, 0x1c($sp) +/* 091BC0 7F05D090 3C108008 */ lui $s0, %hi(pPlayer) +/* 091BC4 7F05D094 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 091BC8 7F05D098 8E0F0000 */ lw $t7, ($s0) +/* 091BCC 7F05D09C 00042880 */ sll $a1, $a0, 2 +/* 091BD0 7F05D0A0 AFBF0024 */ sw $ra, 0x24($sp) +/* 091BD4 7F05D0A4 AFB10020 */ sw $s1, 0x20($sp) +/* 091BD8 7F05D0A8 AFA40050 */ sw $a0, 0x50($sp) +/* 091BDC 7F05D0AC 01E51021 */ addu $v0, $t7, $a1 +/* 091BE0 7F05D0B0 8C4307F8 */ lw $v1, 0x7f8($v0) +/* 091BE4 7F05D0B4 0463009B */ bgezl $v1, .L7F05D324 +/* 091BE8 7F05D0B8 8FBF0024 */ lw $ra, 0x24($sp) +/* 091BEC 7F05D0BC 8C582A50 */ lw $t8, 0x2a50($v0) +/* 091BF0 7F05D0C0 2861FFFE */ slti $at, $v1, -2 +/* 091BF4 7F05D0C4 57000097 */ bnezl $t8, .L7F05D324 +/* 091BF8 7F05D0C8 8FBF0024 */ lw $ra, 0x24($sp) +/* 091BFC 7F05D0CC 54200005 */ bnezl $at, .L7F05D0E4 +/* 091C00 7F05D0D0 8C512A44 */ lw $s1, 0x2a44($v0) +/* 091C04 7F05D0D4 8C590800 */ lw $t9, 0x800($v0) +/* 091C08 7F05D0D8 57200090 */ bnezl $t9, .L7F05D31C +/* 091C0C 7F05D0DC 246EFFFF */ addiu $t6, $v1, -1 +/* 091C10 7F05D0E0 8C512A44 */ lw $s1, 0x2a44($v0) +.L7F05D0E4: +/* 091C14 7F05D0E4 AFA50038 */ sw $a1, 0x38($sp) +/* 091C18 7F05D0E8 0FC17406 */ jal get_ptr_item_text_call_line +/* 091C1C 7F05D0EC 02202025 */ move $a0, $s1 +/* 091C20 7F05D0F0 AFA20048 */ sw $v0, 0x48($sp) +/* 091C24 7F05D0F4 0FC17412 */ jal get_ptr_weapon_model_header_line +/* 091C28 7F05D0F8 02202025 */ move $a0, $s1 +/* 091C2C 7F05D0FC 8FAB0048 */ lw $t3, 0x48($sp) +/* 091C30 7F05D100 AFA20044 */ sw $v0, 0x44($sp) +/* 091C34 7F05D104 51600078 */ beql $t3, $zero, .L7F05D2E8 +/* 091C38 7F05D108 8FA20038 */ lw $v0, 0x38($sp) +/* 091C3C 7F05D10C 50400076 */ beql $v0, $zero, .L7F05D2E8 +/* 091C40 7F05D110 8FA20038 */ lw $v0, 0x38($sp) +/* 091C44 7F05D114 0FC173CC */ jal getPlayerWeaponBufferForHand +/* 091C48 7F05D118 8FA40050 */ lw $a0, 0x50($sp) +/* 091C4C 7F05D11C AFA20040 */ sw $v0, 0x40($sp) +/* 091C50 7F05D120 0FC173D2 */ jal getSizeBufferWeaponInHand +/* 091C54 7F05D124 8FA40050 */ lw $a0, 0x50($sp) +/* 091C58 7F05D128 8FAE0044 */ lw $t6, 0x44($sp) +/* 091C5C 7F05D12C 8FAA0050 */ lw $t2, 0x50($sp) +/* 091C60 7F05D130 8E0C0000 */ lw $t4, ($s0) +/* 091C64 7F05D134 8DC10000 */ lw $at, ($t6) +/* 091C68 7F05D138 000A4940 */ sll $t1, $t2, 5 +/* 091C6C 7F05D13C 01896821 */ addu $t5, $t4, $t1 +/* 091C70 7F05D140 ADA10810 */ sw $at, 0x810($t5) +/* 091C74 7F05D144 8DD90004 */ lw $t9, 4($t6) +/* 091C78 7F05D148 00403825 */ move $a3, $v0 +/* 091C7C 7F05D14C 000A1900 */ sll $v1, $t2, 4 +/* 091C80 7F05D150 ADB90814 */ sw $t9, 0x814($t5) +/* 091C84 7F05D154 8DC10008 */ lw $at, 8($t6) +/* 091C88 7F05D158 ADA10818 */ sw $at, 0x818($t5) +/* 091C8C 7F05D15C 8DD9000C */ lw $t9, 0xc($t6) +/* 091C90 7F05D160 ADB9081C */ sw $t9, 0x81c($t5) +/* 091C94 7F05D164 8DC10010 */ lw $at, 0x10($t6) +/* 091C98 7F05D168 ADA10820 */ sw $at, 0x820($t5) +/* 091C9C 7F05D16C 8DD90014 */ lw $t9, 0x14($t6) +/* 091CA0 7F05D170 ADB90824 */ sw $t9, 0x824($t5) +/* 091CA4 7F05D174 8DC10018 */ lw $at, 0x18($t6) +/* 091CA8 7F05D178 ADA10828 */ sw $at, 0x828($t5) +/* 091CAC 7F05D17C 8DD9001C */ lw $t9, 0x1c($t6) +/* 091CB0 7F05D180 24010054 */ li $at, 84 +/* 091CB4 7F05D184 1621001B */ bne $s1, $at, .L7F05D1F4 +/* 091CB8 7F05D188 ADB9082C */ sw $t9, 0x82c($t5) +/* 091CBC 7F05D18C 8FA50040 */ lw $a1, 0x40($sp) +/* 091CC0 7F05D190 8E0B0000 */ lw $t3, ($s0) +/* 091CC4 7F05D194 3401BD70 */ li $at, 48496 +/* 091CC8 7F05D198 00A12821 */ addu $a1, $a1, $at +/* 091CCC 7F05D19C 3C01FFFF */ lui $at, (0xFFFF4290 >> 16) # lui $at, 0xffff +/* 091CD0 7F05D1A0 34214290 */ ori $at, (0xFFFF4290 & 0xFFFF) # ori $at, $at, 0x4290 +/* 091CD4 7F05D1A4 01632021 */ addu $a0, $t3, $v1 +/* 091CD8 7F05D1A8 24840850 */ addiu $a0, $a0, 0x850 +/* 091CDC 7F05D1AC 00413021 */ addu $a2, $v0, $at +/* 091CE0 7F05D1B0 AFA30030 */ sw $v1, 0x30($sp) +/* 091CE4 7F05D1B4 0FC32EBD */ jal sub_GAME_7F0CBAF4 +/* 091CE8 7F05D1B8 AFA90034 */ sw $t1, 0x34($sp) +/* 091CEC 7F05D1BC 8FA30030 */ lw $v1, 0x30($sp) +/* 091CF0 7F05D1C0 8E020000 */ lw $v0, ($s0) +/* 091CF4 7F05D1C4 8FA90034 */ lw $t1, 0x34($sp) +/* 091CF8 7F05D1C8 8FA50048 */ lw $a1, 0x48($sp) +/* 091CFC 7F05D1CC 00436021 */ addu $t4, $v0, $v1 +/* 091D00 7F05D1D0 25980850 */ addiu $t8, $t4, 0x850 +/* 091D04 7F05D1D4 00492021 */ addu $a0, $v0, $t1 +/* 091D08 7F05D1D8 24840810 */ addiu $a0, $a0, 0x810 +/* 091D0C 7F05D1DC AFB80010 */ sw $t8, 0x10($sp) +/* 091D10 7F05D1E0 8FA60040 */ lw $a2, 0x40($sp) +/* 091D14 7F05D1E4 0FC1D929 */ jal load_object_fill_header +/* 091D18 7F05D1E8 3407BD70 */ li $a3, 48496 +/* 091D1C 7F05D1EC 1000003E */ b .L7F05D2E8 +/* 091D20 7F05D1F0 8FA20038 */ lw $v0, 0x38($sp) +.L7F05D1F4: +/* 091D24 7F05D1F4 2401001E */ li $at, 30 +/* 091D28 7F05D1F8 12210004 */ beq $s1, $at, .L7F05D20C +/* 091D2C 7F05D1FC 000A1900 */ sll $v1, $t2, 4 +/* 091D30 7F05D200 24010017 */ li $at, 23 +/* 091D34 7F05D204 1621001B */ bne $s1, $at, .L7F05D274 +/* 091D38 7F05D208 8FAB0038 */ lw $t3, 0x38($sp) +.L7F05D20C: +/* 091D3C 7F05D20C 8FA50040 */ lw $a1, 0x40($sp) +/* 091D40 7F05D210 8E0F0000 */ lw $t7, ($s0) +/* 091D44 7F05D214 3401AFD0 */ li $at, 45008 +/* 091D48 7F05D218 00A12821 */ addu $a1, $a1, $at +/* 091D4C 7F05D21C 3C01FFFF */ lui $at, (0xFFFF5030 >> 16) # lui $at, 0xffff +/* 091D50 7F05D220 34215030 */ ori $at, (0xFFFF5030 & 0xFFFF) # ori $at, $at, 0x5030 +/* 091D54 7F05D224 01E32021 */ addu $a0, $t7, $v1 +/* 091D58 7F05D228 24840850 */ addiu $a0, $a0, 0x850 +/* 091D5C 7F05D22C 00E13021 */ addu $a2, $a3, $at +/* 091D60 7F05D230 AFA30030 */ sw $v1, 0x30($sp) +/* 091D64 7F05D234 0FC32EBD */ jal sub_GAME_7F0CBAF4 +/* 091D68 7F05D238 AFA90034 */ sw $t1, 0x34($sp) +/* 091D6C 7F05D23C 8FA30030 */ lw $v1, 0x30($sp) +/* 091D70 7F05D240 8E020000 */ lw $v0, ($s0) +/* 091D74 7F05D244 8FA90034 */ lw $t1, 0x34($sp) +/* 091D78 7F05D248 8FA50048 */ lw $a1, 0x48($sp) +/* 091D7C 7F05D24C 00436821 */ addu $t5, $v0, $v1 +/* 091D80 7F05D250 25AE0850 */ addiu $t6, $t5, 0x850 +/* 091D84 7F05D254 00492021 */ addu $a0, $v0, $t1 +/* 091D88 7F05D258 24840810 */ addiu $a0, $a0, 0x810 +/* 091D8C 7F05D25C AFAE0010 */ sw $t6, 0x10($sp) +/* 091D90 7F05D260 8FA60040 */ lw $a2, 0x40($sp) +/* 091D94 7F05D264 0FC1D929 */ jal load_object_fill_header +/* 091D98 7F05D268 3407AFD0 */ li $a3, 45008 +/* 091D9C 7F05D26C 1000001E */ b .L7F05D2E8 +/* 091DA0 7F05D270 8FA20038 */ lw $v0, 0x38($sp) +.L7F05D274: +/* 091DA4 7F05D274 3C0C8003 */ lui $t4, %hi(D_80032464) +/* 091DA8 7F05D278 258C2464 */ addiu $t4, %lo(D_80032464) # addiu $t4, $t4, 0x2464 +/* 091DAC 7F05D27C 8E190000 */ lw $t9, ($s0) +/* 091DB0 7F05D280 016C4021 */ addu $t0, $t3, $t4 +/* 091DB4 7F05D284 8D020000 */ lw $v0, ($t0) +/* 091DB8 7F05D288 8FB80040 */ lw $t8, 0x40($sp) +/* 091DBC 7F05D28C 000A1900 */ sll $v1, $t2, 4 +/* 091DC0 7F05D290 03232021 */ addu $a0, $t9, $v1 +/* 091DC4 7F05D294 24840850 */ addiu $a0, $a0, 0x850 +/* 091DC8 7F05D298 AFA30030 */ sw $v1, 0x30($sp) +/* 091DCC 7F05D29C AFA8002C */ sw $t0, 0x2c($sp) +/* 091DD0 7F05D2A0 AFA90034 */ sw $t1, 0x34($sp) +/* 091DD4 7F05D2A4 00E23023 */ subu $a2, $a3, $v0 +/* 091DD8 7F05D2A8 0FC32EBD */ jal sub_GAME_7F0CBAF4 +/* 091DDC 7F05D2AC 00582821 */ addu $a1, $v0, $t8 +/* 091DE0 7F05D2B0 8FA30030 */ lw $v1, 0x30($sp) +/* 091DE4 7F05D2B4 8E020000 */ lw $v0, ($s0) +/* 091DE8 7F05D2B8 8FA90034 */ lw $t1, 0x34($sp) +/* 091DEC 7F05D2BC 8FA8002C */ lw $t0, 0x2c($sp) +/* 091DF0 7F05D2C0 00437821 */ addu $t7, $v0, $v1 +/* 091DF4 7F05D2C4 25ED0850 */ addiu $t5, $t7, 0x850 +/* 091DF8 7F05D2C8 00492021 */ addu $a0, $v0, $t1 +/* 091DFC 7F05D2CC 24840810 */ addiu $a0, $a0, 0x810 +/* 091E00 7F05D2D0 AFAD0010 */ sw $t5, 0x10($sp) +/* 091E04 7F05D2D4 8FA50048 */ lw $a1, 0x48($sp) +/* 091E08 7F05D2D8 8FA60040 */ lw $a2, 0x40($sp) +/* 091E0C 7F05D2DC 0FC1D929 */ jal load_object_fill_header +/* 091E10 7F05D2E0 8D070000 */ lw $a3, ($t0) +/* 091E14 7F05D2E4 8FA20038 */ lw $v0, 0x38($sp) +.L7F05D2E8: +/* 091E18 7F05D2E8 8E190000 */ lw $t9, ($s0) +/* 091E1C 7F05D2EC 240E0001 */ li $t6, 1 +/* 091E20 7F05D2F0 240FFFFF */ li $t7, -1 +/* 091E24 7F05D2F4 03225821 */ addu $t3, $t9, $v0 +/* 091E28 7F05D2F8 AD6E07F8 */ sw $t6, 0x7f8($t3) +/* 091E2C 7F05D2FC 8E0C0000 */ lw $t4, ($s0) +/* 091E30 7F05D300 0182C021 */ addu $t8, $t4, $v0 +/* 091E34 7F05D304 AF110800 */ sw $s1, 0x800($t8) +/* 091E38 7F05D308 8E0D0000 */ lw $t5, ($s0) +/* 091E3C 7F05D30C 01A2C821 */ addu $t9, $t5, $v0 +/* 091E40 7F05D310 10000003 */ b .L7F05D320 +/* 091E44 7F05D314 AF2F2A44 */ sw $t7, 0x2a44($t9) +/* 091E48 7F05D318 246EFFFF */ addiu $t6, $v1, -1 +.L7F05D31C: +/* 091E4C 7F05D31C AC4E07F8 */ sw $t6, 0x7f8($v0) +.L7F05D320: +/* 091E50 7F05D320 8FBF0024 */ lw $ra, 0x24($sp) +.L7F05D324: +/* 091E54 7F05D324 8FB0001C */ lw $s0, 0x1c($sp) +/* 091E58 7F05D328 8FB10020 */ lw $s1, 0x20($sp) +/* 091E5C 7F05D32C 03E00008 */ jr $ra +/* 091E60 7F05D330 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05D334(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05D334 +/* 091E64 7F05D334 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 091E68 7F05D338 AFB30020 */ sw $s3, 0x20($sp) +/* 091E6C 7F05D33C AFB00014 */ sw $s0, 0x14($sp) +/* 091E70 7F05D340 00808025 */ move $s0, $a0 +/* 091E74 7F05D344 00A09825 */ move $s3, $a1 +/* 091E78 7F05D348 AFBF0024 */ sw $ra, 0x24($sp) +/* 091E7C 7F05D34C AFB2001C */ sw $s2, 0x1c($sp) +/* 091E80 7F05D350 18A00016 */ blez $a1, .L7F05D3AC +/* 091E84 7F05D354 AFB10018 */ sw $s1, 0x18($sp) +/* 091E88 7F05D358 24110021 */ li $s1, 33 +/* 091E8C 7F05D35C 260E0001 */ addiu $t6, $s0, 1 +.L7F05D360: +/* 091E90 7F05D360 01D1001A */ div $zero, $t6, $s1 +/* 091E94 7F05D364 00008010 */ mfhi $s0 +/* 091E98 7F05D368 02002025 */ move $a0, $s0 +/* 091E9C 7F05D36C 16200002 */ bnez $s1, .L7F05D378 +/* 091EA0 7F05D370 00000000 */ nop +/* 091EA4 7F05D374 0007000D */ break 7 +.L7F05D378: +/* 091EA8 7F05D378 2401FFFF */ li $at, -1 +/* 091EAC 7F05D37C 16210004 */ bne $s1, $at, .L7F05D390 +/* 091EB0 7F05D380 3C018000 */ lui $at, 0x8000 +/* 091EB4 7F05D384 15C10002 */ bne $t6, $at, .L7F05D390 +/* 091EB8 7F05D388 00000000 */ nop +/* 091EBC 7F05D38C 0006000D */ break 6 +.L7F05D390: +/* 091EC0 7F05D390 0FC230F0 */ jal check_if_item_available +/* 091EC4 7F05D394 00000000 */ nop +/* 091EC8 7F05D398 5040FFF1 */ beql $v0, $zero, .L7F05D360 +/* 091ECC 7F05D39C 260E0001 */ addiu $t6, $s0, 1 +/* 091ED0 7F05D3A0 2673FFFF */ addiu $s3, $s3, -1 +/* 091ED4 7F05D3A4 5E60FFEE */ bgtzl $s3, .L7F05D360 +/* 091ED8 7F05D3A8 260E0001 */ addiu $t6, $s0, 1 +.L7F05D3AC: +/* 091EDC 7F05D3AC 06610019 */ bgez $s3, .L7F05D414 +/* 091EE0 7F05D3B0 24110021 */ li $s1, 33 +/* 091EE4 7F05D3B4 24120020 */ li $s2, 32 +/* 091EE8 7F05D3B8 2610FFFF */ addiu $s0, $s0, -1 +.L7F05D3BC: +/* 091EEC 7F05D3BC 0601000E */ bgez $s0, .L7F05D3F8 +/* 091EF0 7F05D3C0 240FFFFF */ li $t7, -1 +/* 091EF4 7F05D3C4 01F0C023 */ subu $t8, $t7, $s0 +/* 091EF8 7F05D3C8 0311001A */ div $zero, $t8, $s1 +/* 091EFC 7F05D3CC 0000C810 */ mfhi $t9 +/* 091F00 7F05D3D0 02598023 */ subu $s0, $s2, $t9 +/* 091F04 7F05D3D4 16200002 */ bnez $s1, .L7F05D3E0 +/* 091F08 7F05D3D8 00000000 */ nop +/* 091F0C 7F05D3DC 0007000D */ break 7 +.L7F05D3E0: +/* 091F10 7F05D3E0 2401FFFF */ li $at, -1 +/* 091F14 7F05D3E4 16210004 */ bne $s1, $at, .L7F05D3F8 +/* 091F18 7F05D3E8 3C018000 */ lui $at, 0x8000 +/* 091F1C 7F05D3EC 17010002 */ bne $t8, $at, .L7F05D3F8 +/* 091F20 7F05D3F0 00000000 */ nop +/* 091F24 7F05D3F4 0006000D */ break 6 +.L7F05D3F8: +/* 091F28 7F05D3F8 0FC230F0 */ jal check_if_item_available +/* 091F2C 7F05D3FC 02002025 */ move $a0, $s0 +/* 091F30 7F05D400 5040FFEE */ beql $v0, $zero, .L7F05D3BC +/* 091F34 7F05D404 2610FFFF */ addiu $s0, $s0, -1 +/* 091F38 7F05D408 26730001 */ addiu $s3, $s3, 1 +/* 091F3C 7F05D40C 0662FFEB */ bltzl $s3, .L7F05D3BC +/* 091F40 7F05D410 2610FFFF */ addiu $s0, $s0, -1 +.L7F05D414: +/* 091F44 7F05D414 8FBF0024 */ lw $ra, 0x24($sp) +/* 091F48 7F05D418 02001025 */ move $v0, $s0 +/* 091F4C 7F05D41C 8FB00014 */ lw $s0, 0x14($sp) +/* 091F50 7F05D420 8FB10018 */ lw $s1, 0x18($sp) +/* 091F54 7F05D424 8FB2001C */ lw $s2, 0x1c($sp) +/* 091F58 7F05D428 8FB30020 */ lw $s3, 0x20($sp) +/* 091F5C 7F05D42C 03E00008 */ jr $ra +/* 091F60 7F05D430 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void get_next_weapon_in_cycle_for_hand(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_next_weapon_in_cycle_for_hand +/* 091F64 7F05D434 000478C0 */ sll $t7, $a0, 3 +/* 091F68 7F05D438 01E47823 */ subu $t7, $t7, $a0 +/* 091F6C 7F05D43C 000F7880 */ sll $t7, $t7, 2 +/* 091F70 7F05D440 01E47821 */ addu $t7, $t7, $a0 +/* 091F74 7F05D444 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 091F78 7F05D448 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 091F7C 7F05D44C 000F7880 */ sll $t7, $t7, 2 +/* 091F80 7F05D450 01E47821 */ addu $t7, $t7, $a0 +/* 091F84 7F05D454 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 091F88 7F05D458 000F78C0 */ sll $t7, $t7, 3 +/* 091F8C 7F05D45C AFBF0014 */ sw $ra, 0x14($sp) +/* 091F90 7F05D460 01CF1821 */ addu $v1, $t6, $t7 +/* 091F94 7F05D464 8C620894 */ lw $v0, 0x894($v1) +/* 091F98 7F05D468 24010005 */ li $at, 5 +/* 091F9C 7F05D46C 54410012 */ bnel $v0, $at, .L7F05D4B8 +/* 091FA0 7F05D470 24010006 */ li $at, 6 +/* 091FA4 7F05D474 04A10004 */ bgez $a1, .L7F05D488 +/* 091FA8 7F05D478 00000000 */ nop +/* 091FAC 7F05D47C 8C7808B8 */ lw $t8, 0x8b8($v1) +/* 091FB0 7F05D480 1F000006 */ bgtz $t8, .L7F05D49C +/* 091FB4 7F05D484 00000000 */ nop +.L7F05D488: +/* 091FB8 7F05D488 18A00008 */ blez $a1, .L7F05D4AC +/* 091FBC 7F05D48C 00000000 */ nop +/* 091FC0 7F05D490 8C7908B8 */ lw $t9, 0x8b8($v1) +/* 091FC4 7F05D494 07210005 */ bgez $t9, .L7F05D4AC +/* 091FC8 7F05D498 00000000 */ nop +.L7F05D49C: +/* 091FCC 7F05D49C 0FC17674 */ jal get_item_in_hand +/* 091FD0 7F05D4A0 00000000 */ nop +/* 091FD4 7F05D4A4 1000000B */ b .L7F05D4D4 +/* 091FD8 7F05D4A8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F05D4AC: +/* 091FDC 7F05D4AC 10000008 */ b .L7F05D4D0 +/* 091FE0 7F05D4B0 8C6208AC */ lw $v0, 0x8ac($v1) +/* 091FE4 7F05D4B4 24010006 */ li $at, 6 +.L7F05D4B8: +/* 091FE8 7F05D4B8 14410003 */ bne $v0, $at, .L7F05D4C8 +/* 091FEC 7F05D4BC 00000000 */ nop +/* 091FF0 7F05D4C0 10000003 */ b .L7F05D4D0 +/* 091FF4 7F05D4C4 8C6208AC */ lw $v0, 0x8ac($v1) +.L7F05D4C8: +/* 091FF8 7F05D4C8 0FC17674 */ jal get_item_in_hand +/* 091FFC 7F05D4CC 00000000 */ nop +.L7F05D4D0: +/* 092000 7F05D4D0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F05D4D4: +/* 092004 7F05D4D4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 092008 7F05D4D8 03E00008 */ jr $ra +/* 09200C 7F05D4DC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void likely_change_weapon_in_hand(void) { + +} +#else +GLOBAL_ASM( +.text +glabel likely_change_weapon_in_hand +/* 092010 7F05D4E0 000438C0 */ sll $a3, $a0, 3 +/* 092014 7F05D4E4 00E43823 */ subu $a3, $a3, $a0 +/* 092018 7F05D4E8 3C088008 */ lui $t0, %hi(pPlayer) +/* 09201C 7F05D4EC 00073880 */ sll $a3, $a3, 2 +/* 092020 7F05D4F0 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 092024 7F05D4F4 00E43821 */ addu $a3, $a3, $a0 +/* 092028 7F05D4F8 8D0E0000 */ lw $t6, ($t0) +/* 09202C 7F05D4FC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 092030 7F05D500 00073880 */ sll $a3, $a3, 2 +/* 092034 7F05D504 00E43821 */ addu $a3, $a3, $a0 +/* 092038 7F05D508 000738C0 */ sll $a3, $a3, 3 +/* 09203C 7F05D50C AFBF0014 */ sw $ra, 0x14($sp) +/* 092040 7F05D510 AFA50024 */ sw $a1, 0x24($sp) +/* 092044 7F05D514 AFA60028 */ sw $a2, 0x28($sp) +/* 092048 7F05D518 01C71021 */ addu $v0, $t6, $a3 +/* 09204C 7F05D51C 8C430894 */ lw $v1, 0x894($v0) +/* 092050 7F05D520 24010005 */ li $at, 5 +/* 092054 7F05D524 10610003 */ beq $v1, $at, .L7F05D534 +/* 092058 7F05D528 24010006 */ li $at, 6 +/* 09205C 7F05D52C 54610018 */ bnel $v1, $at, .L7F05D590 +/* 092060 7F05D530 00002825 */ move $a1, $zero +.L7F05D534: +/* 092064 7F05D534 8C4F0890 */ lw $t7, 0x890($v0) +/* 092068 7F05D538 AC4F08B0 */ sw $t7, 0x8b0($v0) +/* 09206C 7F05D53C AFA7001C */ sw $a3, 0x1c($sp) +/* 092070 7F05D540 0FC26919 */ jal get_num_players +/* 092074 7F05D544 AFA40020 */ sw $a0, 0x20($sp) +/* 092078 7F05D548 3C088008 */ lui $t0, %hi(pPlayer) +/* 09207C 7F05D54C 24010001 */ li $at, 1 +/* 092080 7F05D550 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 092084 7F05D554 8FA40020 */ lw $a0, 0x20($sp) +/* 092088 7F05D558 14410007 */ bne $v0, $at, .L7F05D578 +/* 09208C 7F05D55C 8FA7001C */ lw $a3, 0x1c($sp) +/* 092090 7F05D560 8D180000 */ lw $t8, ($t0) +/* 092094 7F05D564 03071021 */ addu $v0, $t8, $a3 +/* 092098 7F05D568 8C5908B0 */ lw $t9, 0x8b0($v0) +/* 09209C 7F05D56C 27290011 */ addiu $t1, $t9, 0x11 +/* 0920A0 7F05D570 10000006 */ b .L7F05D58C +/* 0920A4 7F05D574 AC4908B0 */ sw $t1, 0x8b0($v0) +.L7F05D578: +/* 0920A8 7F05D578 8D0A0000 */ lw $t2, ($t0) +/* 0920AC 7F05D57C 01471021 */ addu $v0, $t2, $a3 +/* 0920B0 7F05D580 8C4B08B0 */ lw $t3, 0x8b0($v0) +/* 0920B4 7F05D584 256C000D */ addiu $t4, $t3, 0xd +/* 0920B8 7F05D588 AC4C08B0 */ sw $t4, 0x8b0($v0) +.L7F05D58C: +/* 0920BC 7F05D58C 00002825 */ move $a1, $zero +.L7F05D590: +/* 0920C0 7F05D590 0FC1750D */ jal get_next_weapon_in_cycle_for_hand +/* 0920C4 7F05D594 AFA7001C */ sw $a3, 0x1c($sp) +/* 0920C8 7F05D598 8FAD0024 */ lw $t5, 0x24($sp) +/* 0920CC 7F05D59C 3C088008 */ lui $t0, %hi(pPlayer) +/* 0920D0 7F05D5A0 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0920D4 7F05D5A4 104D0016 */ beq $v0, $t5, .L7F05D600 +/* 0920D8 7F05D5A8 8FA7001C */ lw $a3, 0x1c($sp) +/* 0920DC 7F05D5AC 8D0E0000 */ lw $t6, ($t0) +/* 0920E0 7F05D5B0 24010005 */ li $at, 5 +/* 0920E4 7F05D5B4 01C71021 */ addu $v0, $t6, $a3 +/* 0920E8 7F05D5B8 8C430894 */ lw $v1, 0x894($v0) +/* 0920EC 7F05D5BC 10610006 */ beq $v1, $at, .L7F05D5D8 +/* 0920F0 7F05D5C0 24010006 */ li $at, 6 +/* 0920F4 7F05D5C4 10610004 */ beq $v1, $at, .L7F05D5D8 +/* 0920F8 7F05D5C8 240F0005 */ li $t7, 5 +/* 0920FC 7F05D5CC AC4F0898 */ sw $t7, 0x898($v0) +/* 092100 7F05D5D0 8D180000 */ lw $t8, ($t0) +/* 092104 7F05D5D4 03071021 */ addu $v0, $t8, $a3 +.L7F05D5D8: +/* 092108 7F05D5D8 8FB90024 */ lw $t9, 0x24($sp) +/* 09210C 7F05D5DC 24090001 */ li $t1, 1 +/* 092110 7F05D5E0 AC5908AC */ sw $t9, 0x8ac($v0) +/* 092114 7F05D5E4 8D0A0000 */ lw $t2, ($t0) +/* 092118 7F05D5E8 01475821 */ addu $t3, $t2, $a3 +/* 09211C 7F05D5EC AD6908B4 */ sw $t1, 0x8b4($t3) +/* 092120 7F05D5F0 8D0D0000 */ lw $t5, ($t0) +/* 092124 7F05D5F4 8FAC0028 */ lw $t4, 0x28($sp) +/* 092128 7F05D5F8 01A77021 */ addu $t6, $t5, $a3 +/* 09212C 7F05D5FC ADCC08B8 */ sw $t4, 0x8b8($t6) +.L7F05D600: +/* 092130 7F05D600 8FBF0014 */ lw $ra, 0x14($sp) +/* 092134 7F05D604 27BD0020 */ addiu $sp, $sp, 0x20 +/* 092138 7F05D608 03E00008 */ jr $ra +/* 09213C 7F05D60C 00000000 */ nop +) +#endif + + + + + +void sub_GAME_7F05D610(int param_1) +{ + likely_change_weapon_in_hand(param_1, sub_GAME_7F05D334(get_next_weapon_in_cycle_for_hand(param_1, 0), 1), 0); +} + + +void sub_GAME_7F05D650(int param_1) +{ + likely_change_weapon_in_hand(param_1, sub_GAME_7F05D334(get_next_weapon_in_cycle_for_hand(param_1, 0), -1), 0); +} + + +void sub_GAME_7F05D690(void) +{ + draw_item_in_hand_has_more_ammo(RIGHT_HAND, pPlayer->hands[RIGHT_HAND].previous_weapon); + draw_item_in_hand_has_more_ammo(LEFT_HAND, pPlayer->hands[LEFT_HAND].previous_weapon); +} + + + + +#ifdef NONMATCHING +void advance_through_inventory(void) +{ + s32 nextleft; + s32 nextright; + + nextright = get_next_weapon_in_cycle_for_hand(RIGHT_HAND,1); + nextleft = get_next_weapon_in_cycle_for_hand(LEFT_HAND,1); + if ((nextright < ITEM_BOMBCASE) && (nextleft < ITEM_BOMBCASE)) + { + sub_GAME_7F08C86C(nextright, nextleft, 0); + } + else + { + nextright = pPlayer->previous_right_weapon; + nextleft = pPlayer->left_weapon_previous; + } + likely_change_weapon_in_hand(RIGHT_HAND,nextright,1); + likely_change_weapon_in_hand(LEFT_HAND,nextleft,1); +} +#else +GLOBAL_ASM( +.text +glabel advance_through_inventory +/* 092200 7F05D6D0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 092204 7F05D6D4 AFBF0014 */ sw $ra, 0x14($sp) +/* 092208 7F05D6D8 00002025 */ move $a0, $zero +/* 09220C 7F05D6DC 0FC1750D */ jal get_next_weapon_in_cycle_for_hand +/* 092210 7F05D6E0 24050001 */ li $a1, 1 +/* 092214 7F05D6E4 AFA20024 */ sw $v0, 0x24($sp) +/* 092218 7F05D6E8 24040001 */ li $a0, 1 +/* 09221C 7F05D6EC 0FC1750D */ jal get_next_weapon_in_cycle_for_hand +/* 092220 7F05D6F0 24050001 */ li $a1, 1 +/* 092224 7F05D6F4 8FAE0024 */ lw $t6, 0x24($sp) +/* 092228 7F05D6F8 AFA20020 */ sw $v0, 0x20($sp) +/* 09222C 7F05D6FC 29C10021 */ slti $at, $t6, 0x21 +/* 092230 7F05D700 10200003 */ beqz $at, .L7F05D710 +/* 092234 7F05D704 28410021 */ slti $at, $v0, 0x21 +/* 092238 7F05D708 14200008 */ bnez $at, .L7F05D72C +/* 09223C 7F05D70C 27A40024 */ addiu $a0, $sp, 0x24 +.L7F05D710: +/* 092240 7F05D710 3C028008 */ lui $v0, %hi(pPlayer) +/* 092244 7F05D714 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 092248 7F05D718 8C4F0878 */ lw $t7, 0x878($v0) +/* 09224C 7F05D71C AFAF0024 */ sw $t7, 0x24($sp) +/* 092250 7F05D720 8C580C20 */ lw $t8, 0xc20($v0) +/* 092254 7F05D724 10000004 */ b .L7F05D738 +/* 092258 7F05D728 AFB80020 */ sw $t8, 0x20($sp) +.L7F05D72C: +/* 09225C 7F05D72C 27A50020 */ addiu $a1, $sp, 0x20 +/* 092260 7F05D730 0FC2321B */ jal sub_GAME_7F08C86C +/* 092264 7F05D734 00003025 */ move $a2, $zero +.L7F05D738: +/* 092268 7F05D738 00002025 */ move $a0, $zero +/* 09226C 7F05D73C 8FA50024 */ lw $a1, 0x24($sp) +/* 092270 7F05D740 0FC17538 */ jal likely_change_weapon_in_hand +/* 092274 7F05D744 24060001 */ li $a2, 1 +/* 092278 7F05D748 24040001 */ li $a0, 1 +/* 09227C 7F05D74C 8FA50020 */ lw $a1, 0x20($sp) +/* 092280 7F05D750 0FC17538 */ jal likely_change_weapon_in_hand +/* 092284 7F05D754 24060001 */ li $a2, 1 +/* 092288 7F05D758 8FBF0014 */ lw $ra, 0x14($sp) +/* 09228C 7F05D75C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 092290 7F05D760 03E00008 */ jr $ra +/* 092294 7F05D764 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void backstep_through_inventory(void) +{ + ITEM_IDS nextleft; + ITEM_IDS nextright; + nextright = get_next_weapon_in_cycle_for_hand(RIGHT_HAND,-1); + nextleft = get_next_weapon_in_cycle_for_hand(LEFT_HAND,-1); + if ((nextright < ITEM_BOMBCASE) && (nextleft < ITEM_BOMBCASE)) + { + sub_GAME_7F08CB10(nextright,nextleft,0); + } + else + { + nextright = pPlayer->previous_right_weapon; + nextleft = pPlayer->left_weapon_previous; + } + likely_change_weapon_in_hand(RIGHT_HAND,nextright,-1); + likely_change_weapon_in_hand(LEFT_HAND,nextleft,-1); +} +#else +GLOBAL_ASM( +.text +glabel backstep_through_inventory +/* 092298 7F05D768 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 09229C 7F05D76C AFBF0014 */ sw $ra, 0x14($sp) +/* 0922A0 7F05D770 00002025 */ move $a0, $zero +/* 0922A4 7F05D774 0FC1750D */ jal get_next_weapon_in_cycle_for_hand +/* 0922A8 7F05D778 2405FFFF */ li $a1, -1 +/* 0922AC 7F05D77C AFA20024 */ sw $v0, 0x24($sp) +/* 0922B0 7F05D780 24040001 */ li $a0, 1 +/* 0922B4 7F05D784 0FC1750D */ jal get_next_weapon_in_cycle_for_hand +/* 0922B8 7F05D788 2405FFFF */ li $a1, -1 +/* 0922BC 7F05D78C 8FAE0024 */ lw $t6, 0x24($sp) +/* 0922C0 7F05D790 AFA20020 */ sw $v0, 0x20($sp) +/* 0922C4 7F05D794 29C10021 */ slti $at, $t6, 0x21 +/* 0922C8 7F05D798 10200003 */ beqz $at, .L7F05D7A8 +/* 0922CC 7F05D79C 28410021 */ slti $at, $v0, 0x21 +/* 0922D0 7F05D7A0 14200008 */ bnez $at, .L7F05D7C4 +/* 0922D4 7F05D7A4 27A40024 */ addiu $a0, $sp, 0x24 +.L7F05D7A8: +/* 0922D8 7F05D7A8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0922DC 7F05D7AC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0922E0 7F05D7B0 8C4F0878 */ lw $t7, 0x878($v0) +/* 0922E4 7F05D7B4 AFAF0024 */ sw $t7, 0x24($sp) +/* 0922E8 7F05D7B8 8C580C20 */ lw $t8, 0xc20($v0) +/* 0922EC 7F05D7BC 10000004 */ b .L7F05D7D0 +/* 0922F0 7F05D7C0 AFB80020 */ sw $t8, 0x20($sp) +.L7F05D7C4: +/* 0922F4 7F05D7C4 27A50020 */ addiu $a1, $sp, 0x20 +/* 0922F8 7F05D7C8 0FC232C4 */ jal sub_GAME_7F08CB10 +/* 0922FC 7F05D7CC 00003025 */ move $a2, $zero +.L7F05D7D0: +/* 092300 7F05D7D0 00002025 */ move $a0, $zero +/* 092304 7F05D7D4 8FA50024 */ lw $a1, 0x24($sp) +/* 092308 7F05D7D8 0FC17538 */ jal likely_change_weapon_in_hand +/* 09230C 7F05D7DC 2406FFFF */ li $a2, -1 +/* 092310 7F05D7E0 24040001 */ li $a0, 1 +/* 092314 7F05D7E4 8FA50020 */ lw $a1, 0x20($sp) +/* 092318 7F05D7E8 0FC17538 */ jal likely_change_weapon_in_hand +/* 09231C 7F05D7EC 2406FFFF */ li $a2, -1 +/* 092320 7F05D7F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 092324 7F05D7F4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 092328 7F05D7F8 03E00008 */ jr $ra +/* 09232C 7F05D7FC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void autoadvance_on_deplete_all_ammo(void) +{ + ITEM_IDS nextleft; + ITEM_IDS nextright; + ITEM_IDS dupeleft; + ITEM_IDS duperight; + + nextright = get_next_weapon_in_cycle_for_hand(RIGHT_HAND,1); + duperight = nextright; + nextleft = get_next_weapon_in_cycle_for_hand(LEFT_HAND,1); + if (((int)nextright < ITEM_BOMBCASE) && ((int)nextleft < ITEM_BOMBCASE)) { + dupeleft = nextleft; + if ((nextright == ITEM_REMOTEMINE) && + (check_if_item_available(ITEM_TRIGGER) != 0)) { + nextright = ITEM_TRIGGER; + nextleft = ITEM_UNARMED; + } + else { + sub_GAME_7F08C86C((int *)&nextright,(int *)&nextleft,1); + if (((int)nextright < (int)duperight) || + ((nextright == duperight && ((int)nextleft <= (int)dupeleft)))) { + nextright = duperight; + nextleft = dupeleft; + sub_GAME_7F08CB10((int *)&nextright,(int *)&nextleft,1); + } + } + } + else { + nextright = pPlayer->previous_right_weapon; + nextleft = pPlayer->left_weapon_previous; + } + likely_change_weapon_in_hand(RIGHT_HAND,nextright,1); + likely_change_weapon_in_hand(LEFT_HAND,nextleft,1); +} +#else +GLOBAL_ASM( +.text +glabel autoadvance_on_deplete_all_ammo +/* 092330 7F05D800 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 092334 7F05D804 AFBF0014 */ sw $ra, 0x14($sp) +/* 092338 7F05D808 00002025 */ move $a0, $zero +/* 09233C 7F05D80C 0FC1750D */ jal get_next_weapon_in_cycle_for_hand +/* 092340 7F05D810 24050001 */ li $a1, 1 +/* 092344 7F05D814 AFA2002C */ sw $v0, 0x2c($sp) +/* 092348 7F05D818 AFA20024 */ sw $v0, 0x24($sp) +/* 09234C 7F05D81C 24040001 */ li $a0, 1 +/* 092350 7F05D820 0FC1750D */ jal get_next_weapon_in_cycle_for_hand +/* 092354 7F05D824 24050001 */ li $a1, 1 +/* 092358 7F05D828 8FAE0024 */ lw $t6, 0x24($sp) +/* 09235C 7F05D82C 00401825 */ move $v1, $v0 +/* 092360 7F05D830 AFA20020 */ sw $v0, 0x20($sp) +/* 092364 7F05D834 29C10021 */ slti $at, $t6, 0x21 +/* 092368 7F05D838 10200003 */ beqz $at, .L7F05D848 +/* 09236C 7F05D83C 28410021 */ slti $at, $v0, 0x21 +/* 092370 7F05D840 14200008 */ bnez $at, .L7F05D864 +/* 092374 7F05D844 8FB90024 */ lw $t9, 0x24($sp) +.L7F05D848: +/* 092378 7F05D848 3C028008 */ lui $v0, %hi(pPlayer) +/* 09237C 7F05D84C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 092380 7F05D850 8C4F0878 */ lw $t7, 0x878($v0) +/* 092384 7F05D854 AFAF0024 */ sw $t7, 0x24($sp) +/* 092388 7F05D858 8C580C20 */ lw $t8, 0xc20($v0) +/* 09238C 7F05D85C 10000021 */ b .L7F05D8E4 +/* 092390 7F05D860 AFB80020 */ sw $t8, 0x20($sp) +.L7F05D864: +/* 092394 7F05D864 2401001D */ li $at, 29 +/* 092398 7F05D868 17210009 */ bne $t9, $at, .L7F05D890 +/* 09239C 7F05D86C 2404001E */ li $a0, 30 +/* 0923A0 7F05D870 0FC230F0 */ jal check_if_item_available +/* 0923A4 7F05D874 AFA30028 */ sw $v1, 0x28($sp) +/* 0923A8 7F05D878 10400005 */ beqz $v0, .L7F05D890 +/* 0923AC 7F05D87C 8FA30028 */ lw $v1, 0x28($sp) +/* 0923B0 7F05D880 2408001E */ li $t0, 30 +/* 0923B4 7F05D884 AFA80024 */ sw $t0, 0x24($sp) +/* 0923B8 7F05D888 10000016 */ b .L7F05D8E4 +/* 0923BC 7F05D88C AFA00020 */ sw $zero, 0x20($sp) +.L7F05D890: +/* 0923C0 7F05D890 27A40024 */ addiu $a0, $sp, 0x24 +/* 0923C4 7F05D894 27A50020 */ addiu $a1, $sp, 0x20 +/* 0923C8 7F05D898 24060001 */ li $a2, 1 +/* 0923CC 7F05D89C 0FC2321B */ jal sub_GAME_7F08C86C +/* 0923D0 7F05D8A0 AFA30028 */ sw $v1, 0x28($sp) +/* 0923D4 7F05D8A4 8FA2002C */ lw $v0, 0x2c($sp) +/* 0923D8 7F05D8A8 8FA90024 */ lw $t1, 0x24($sp) +/* 0923DC 7F05D8AC 8FA30028 */ lw $v1, 0x28($sp) +/* 0923E0 7F05D8B0 27A40024 */ addiu $a0, $sp, 0x24 +/* 0923E4 7F05D8B4 0122082A */ slt $at, $t1, $v0 +/* 0923E8 7F05D8B8 14200006 */ bnez $at, .L7F05D8D4 +/* 0923EC 7F05D8BC 27A50020 */ addiu $a1, $sp, 0x20 +/* 0923F0 7F05D8C0 15220008 */ bne $t1, $v0, .L7F05D8E4 +/* 0923F4 7F05D8C4 8FAA0020 */ lw $t2, 0x20($sp) +/* 0923F8 7F05D8C8 006A082A */ slt $at, $v1, $t2 +/* 0923FC 7F05D8CC 54200006 */ bnezl $at, .L7F05D8E8 +/* 092400 7F05D8D0 00002025 */ move $a0, $zero +.L7F05D8D4: +/* 092404 7F05D8D4 AFA20024 */ sw $v0, 0x24($sp) +/* 092408 7F05D8D8 AFA30020 */ sw $v1, 0x20($sp) +/* 09240C 7F05D8DC 0FC232C4 */ jal sub_GAME_7F08CB10 +/* 092410 7F05D8E0 24060001 */ li $a2, 1 +.L7F05D8E4: +/* 092414 7F05D8E4 00002025 */ move $a0, $zero +.L7F05D8E8: +/* 092418 7F05D8E8 8FA50024 */ lw $a1, 0x24($sp) +/* 09241C 7F05D8EC 0FC17538 */ jal likely_change_weapon_in_hand +/* 092420 7F05D8F0 24060001 */ li $a2, 1 +/* 092424 7F05D8F4 24040001 */ li $a0, 1 +/* 092428 7F05D8F8 8FA50020 */ lw $a1, 0x20($sp) +/* 09242C 7F05D8FC 0FC17538 */ jal likely_change_weapon_in_hand +/* 092430 7F05D900 24060001 */ li $a2, 1 +/* 092434 7F05D904 8FBF0014 */ lw $ra, 0x14($sp) +/* 092438 7F05D908 27BD0030 */ addiu $sp, $sp, 0x30 +/* 09243C 7F05D90C 03E00008 */ jr $ra +/* 092440 7F05D910 00000000 */ nop +) +#endif + +s32 draw_item_in_hand_has_more_ammo(HANDEDNESS hand, s32 next_weapon) { + pPlayer->hands[hand].weapon_current_animation = 5; + pPlayer->hands[hand].weapon_next_weapon = next_weapon; + pPlayer->hands[hand].weapon_animation_trigger = 0; +} + +void attempt_reload_item_in_hand(HANDEDNESS hand) { + s32 ammo_type = get_ammo_type_for_weapon(get_item_in_hand(hand)); + if (ammo_type != 0) { + if (pPlayer->hands[hand].weapon_current_animation == 0) { + pPlayer->hands[hand].weapon_current_animation = 9; + } + } +} + +s32 get_item_in_hand(HANDEDNESS hand) { + return pPlayer->hands[hand].weaponnum; +} + +void draw_item_in_hand(HANDEDNESS hand, s32 next_weapon) { + pPlayer->hands[hand].weapon_current_animation = 0xE; + pPlayer->hands[hand].weapon_next_weapon = next_weapon; +} + +s32 get_item_in_hand_or_watch_menu(HANDEDNESS hand) { + if (pPlayer->hands[hand].weaponnum_watchmenu >= 0) { + return pPlayer->hands[hand].weaponnum_watchmenu; + } else { + return pPlayer->hands[hand].weaponnum; + } +} + +void sub_GAME_7F05DA8C(HANDEDNESS hand, s32 weaponnum_watchmenu) { + place_item_in_hand_swap_and_make_visible(); + pPlayer->hands[hand].weaponnum_watchmenu = weaponnum_watchmenu; +} + +void sub_GAME_7F05DAE4(HANDEDNESS hand) { + if (pPlayer->hands[hand].weaponnum_watchmenu >= 0) { + place_item_in_hand_swap_and_make_visible(hand, pPlayer->hands[hand].weaponnum); + pPlayer->hands[hand].weaponnum_watchmenu = -1; + } +} + +#ifdef NONMATCHING +void remove_hands_item(void) { + +} +#else +GLOBAL_ASM( +.text +glabel remove_hands_item +/* 092684 7F05DB54 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 092688 7F05DB58 000470C0 */ sll $t6, $a0, 3 +/* 09268C 7F05DB5C AFB10018 */ sw $s1, 0x18($sp) +/* 092690 7F05DB60 01C47023 */ subu $t6, $t6, $a0 +/* 092694 7F05DB64 3C118008 */ lui $s1, %hi(pPlayer) +/* 092698 7F05DB68 000E7080 */ sll $t6, $t6, 2 +/* 09269C 7F05DB6C 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 0926A0 7F05DB70 01C47021 */ addu $t6, $t6, $a0 +/* 0926A4 7F05DB74 8E2F0000 */ lw $t7, ($s1) +/* 0926A8 7F05DB78 000E7080 */ sll $t6, $t6, 2 +/* 0926AC 7F05DB7C AFB00014 */ sw $s0, 0x14($sp) +/* 0926B0 7F05DB80 01C47021 */ addu $t6, $t6, $a0 +/* 0926B4 7F05DB84 000E80C0 */ sll $s0, $t6, 3 +/* 0926B8 7F05DB88 AFBF001C */ sw $ra, 0x1c($sp) +/* 0926BC 7F05DB8C AFA40028 */ sw $a0, 0x28($sp) +/* 0926C0 7F05DB90 AFA5002C */ sw $a1, 0x2c($sp) +/* 0926C4 7F05DB94 01F0C021 */ addu $t8, $t7, $s0 +/* 0926C8 7F05DB98 8F040870 */ lw $a0, 0x870($t8) +/* 0926CC 7F05DB9C 0FC1A50B */ jal get_ammo_type_for_weapon +/* 0926D0 7F05DBA0 AFA40024 */ sw $a0, 0x24($sp) +/* 0926D4 7F05DBA4 8E230000 */ lw $v1, ($s1) +/* 0926D8 7F05DBA8 8FA60024 */ lw $a2, 0x24($sp) +/* 0926DC 7F05DBAC 00403825 */ move $a3, $v0 +/* 0926E0 7F05DBB0 00702021 */ addu $a0, $v1, $s0 +/* 0926E4 7F05DBB4 8C990874 */ lw $t9, 0x874($a0) +/* 0926E8 7F05DBB8 8FA5002C */ lw $a1, 0x2c($sp) +/* 0926EC 7F05DBBC 0723000A */ bgezl $t9, .L7F05DBE8 +/* 0926F0 7F05DBC0 8C85089C */ lw $a1, 0x89c($a0) +/* 0926F4 7F05DBC4 8FA40028 */ lw $a0, 0x28($sp) +/* 0926F8 7F05DBC8 AFA60024 */ sw $a2, 0x24($sp) +/* 0926FC 7F05DBCC 0FC173E9 */ jal place_item_in_hand_swap_and_make_visible +/* 092700 7F05DBD0 AFA20020 */ sw $v0, 0x20($sp) +/* 092704 7F05DBD4 8E230000 */ lw $v1, ($s1) +/* 092708 7F05DBD8 8FA60024 */ lw $a2, 0x24($sp) +/* 09270C 7F05DBDC 8FA70020 */ lw $a3, 0x20($sp) +/* 092710 7F05DBE0 00702021 */ addu $a0, $v1, $s0 +/* 092714 7F05DBE4 8C85089C */ lw $a1, 0x89c($a0) +.L7F05DBE8: +/* 092718 7F05DBE8 00074080 */ sll $t0, $a3, 2 +/* 09271C 7F05DBEC 00681021 */ addu $v0, $v1, $t0 +/* 092720 7F05DBF0 18A00004 */ blez $a1, .L7F05DC04 +/* 092724 7F05DBF4 28C10021 */ slti $at, $a2, 0x21 +/* 092728 7F05DBF8 8C491130 */ lw $t1, 0x1130($v0) +/* 09272C 7F05DBFC 01255021 */ addu $t2, $t1, $a1 +/* 092730 7F05DC00 AC4A1130 */ sw $t2, 0x1130($v0) +.L7F05DC04: +/* 092734 7F05DC04 10200004 */ beqz $at, .L7F05DC18 +/* 092738 7F05DC08 00000000 */ nop +/* 09273C 7F05DC0C 8E2B0000 */ lw $t3, ($s1) +/* 092740 7F05DC10 01706021 */ addu $t4, $t3, $s0 +/* 092744 7F05DC14 AD860878 */ sw $a2, 0x878($t4) +.L7F05DC18: +/* 092748 7F05DC18 0FC26919 */ jal get_num_players +/* 09274C 7F05DC1C 00000000 */ nop +/* 092750 7F05DC20 28410002 */ slti $at, $v0, 2 +/* 092754 7F05DC24 14200003 */ bnez $at, .L7F05DC34 +/* 092758 7F05DC28 00000000 */ nop +/* 09275C 7F05DC2C 0FC26CDA */ jal sub_GAME_7F09B368 +/* 092760 7F05DC30 8FA40028 */ lw $a0, 0x28($sp) +.L7F05DC34: +/* 092764 7F05DC34 0FC17EC0 */ jal sub_GAME_7F05FB00 +/* 092768 7F05DC38 8FA40028 */ lw $a0, 0x28($sp) +/* 09276C 7F05DC3C 8E2E0000 */ lw $t6, ($s1) +/* 092770 7F05DC40 8FAD002C */ lw $t5, 0x2c($sp) +/* 092774 7F05DC44 01D07821 */ addu $t7, $t6, $s0 +/* 092778 7F05DC48 ADED0870 */ sw $t5, 0x870($t7) +/* 09277C 7F05DC4C 8E380000 */ lw $t8, ($s1) +/* 092780 7F05DC50 0310C821 */ addu $t9, $t8, $s0 +/* 092784 7F05DC54 AF20089C */ sw $zero, 0x89c($t9) +/* 092788 7F05DC58 8E280000 */ lw $t0, ($s1) +/* 09278C 7F05DC5C 01104821 */ addu $t1, $t0, $s0 +/* 092790 7F05DC60 AD200A4C */ sw $zero, 0xa4c($t1) +/* 092794 7F05DC64 8E2A0000 */ lw $t2, ($s1) +/* 092798 7F05DC68 01505821 */ addu $t3, $t2, $s0 +/* 09279C 7F05DC6C 0FC23638 */ jal calculate_equip_cur_item +/* 0927A0 7F05DC70 AD600A50 */ sw $zero, 0xa50($t3) +/* 0927A4 7F05DC74 8FBF001C */ lw $ra, 0x1c($sp) +/* 0927A8 7F05DC78 8FB00014 */ lw $s0, 0x14($sp) +/* 0927AC 7F05DC7C 8FB10018 */ lw $s1, 0x18($sp) +/* 0927B0 7F05DC80 03E00008 */ jr $ra +/* 0927B4 7F05DC84 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + +s8 get_hands_firing_status(HANDEDNESS hand) { + return pPlayer->hands[hand].weapon_firing_status; +} + +f32 sub_GAME_7F05DCB8(HANDEDNESS hand) { + return pPlayer->hands[hand].field_A34; +} + +f32 sub_GAME_7F05DCE8(HANDEDNESS hand) +{ + f32 ret; + + if (hand == RIGHT_HAND) + { + ret = get_ptr_item_statistics(get_item_in_hand_or_watch_menu(RIGHT_HAND))->pos_x; + } + else + { + ret = -get_ptr_item_statistics(get_item_in_hand_or_watch_menu(LEFT_HAND))->pos_x; + } + + return ret; +} + +f32 get_item_in_hand_zoom(void) { + if (get_item_in_hand_or_watch_menu(RIGHT_HAND) == ITEM_SNIPERRIFLE) { + return pPlayer->sniper_zoom; + } + if (get_item_in_hand_or_watch_menu(RIGHT_HAND) == ITEM_CAMERA) { + return pPlayer->camera_zoom; + } + return get_ptr_item_statistics(get_item_in_hand_or_watch_menu(RIGHT_HAND))->zoom; +} + +void camera_sniper_zoom_in(f32 zoom) +{ + if (get_item_in_hand_or_watch_menu(RIGHT_HAND) == ITEM_SNIPERRIFLE) { + pPlayer->sniper_zoom *= (1.0f + (zoom * 0.1f)); + if (pPlayer->sniper_zoom > 60.0f) { + pPlayer->sniper_zoom = 60.0f; + } + } + else + { + if (get_item_in_hand_or_watch_menu(RIGHT_HAND) == ITEM_CAMERA) { + pPlayer->camera_zoom *= (1.0f + (zoom * 0.1f)); + if (pPlayer->camera_zoom > 60.0f) { + pPlayer->camera_zoom = 60.0f; + } + } + } +} + +void camera_sniper_zoom_out(f32 zoom) +{ + if (get_item_in_hand_or_watch_menu(RIGHT_HAND) == ITEM_SNIPERRIFLE) { + pPlayer->sniper_zoom /= (1.0f + (zoom * 0.1f)); + if (pPlayer->sniper_zoom < 7.0f) { + pPlayer->sniper_zoom = 7.0f; + } + } + else + { + if (get_item_in_hand_or_watch_menu(RIGHT_HAND) == ITEM_CAMERA) { + pPlayer->camera_zoom /= (1.0f + (zoom * 0.1f)); + if (pPlayer->camera_zoom < 7.0f) { + pPlayer->camera_zoom = 7.0f; + } + } + } +} + +f32 bondwalkGetItemDestructionAmount(ITEM_IDS item) +{ + return get_ptr_item_statistics(item)->destruction_amount; +} + + +f32 bondwalkGetItemField68(ITEM_IDS item) +{ + return get_ptr_item_statistics(item)->field_68; +} + + +s8 get_automatic_firing_rate(ITEM_IDS item) { + return get_ptr_item_statistics(item)->automatic_firing_rate; +} + + +u8 get_sound_trigger_rate(ITEM_IDS item) { + return get_ptr_item_statistics(item)->sound_trigger_rate; +} + + +u16 bondwalkItemGetSound(ITEM_IDS item) +{ + return get_ptr_item_statistics(item)->sound; +} + + +u8 bondwalkItemGetShootThroughFlag(ITEM_IDS item) +{ + return get_ptr_item_statistics(item)->objects_shoot_through; +} + + +s32 bondwalkItemHasAmmo(ITEM_IDS item) +{ + if (bondwalkItemCheckBitflags(item, 0x40000) != 0) + { + if ((get_ammo_type_for_weapon(item) == 0) || (get_ammo_count_for_weapon(item) > 0)) + { + return 1; + } + } + return 0; +} + + +u32 bondwalkItemCheckBitflags(ITEM_IDS item, u32 mask) +{ + return ((get_ptr_item_statistics(item)->bitflags & mask) != 0); +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05E0E4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053C34 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80053C38 +.word 0x3dcccccd /*0.1*/ +glabel D_80053C3C +.word 0x3dcccccd /*0.1*/ +glabel D_80053C40 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053C44 +.word 0x40333333 /*2.8*/ +glabel D_80053C48 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80053C4C +.word 0x3e4ccccd /*0.2*/ +glabel D_80053C50 +.word 0x3dcccccd /*0.1*/ +glabel D_80053C54 +.word 0x3e99999a /*0.30000001*/ +glabel D_80053C58 +.word 0x3e99999a /*0.30000001*/ +glabel D_80053C5C +.word 0x3f733333 /*0.94999999*/ +glabel D_80053C60 +.word 0x3f733333 /*0.94999999*/ +glabel D_80053C64 +.word 0x3d4cccd0 /*0.050000012*/ +glabel D_80053C68 +.word 0x3c888889 /*0.016666668*/ +glabel D_80053C6C +.word 0x3e4ccccd /*0.2*/ +glabel D_80053C70 +.word 0x3dcccccd /*0.1*/ +glabel D_80053C74 +.word 0xbdcccccd /*-0.1*/ +.text +glabel sub_GAME_7F05E0E4 +/* 092C14 7F05E0E4 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 092C18 7F05E0E8 AFA60070 */ sw $a2, 0x70($sp) +/* 092C1C 7F05E0EC C7A40070 */ lwc1 $f4, 0x70($sp) +/* 092C20 7F05E0F0 44803000 */ mtc1 $zero, $f6 +/* 092C24 7F05E0F4 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 092C28 7F05E0F8 46006586 */ mov.s $f22, $f12 +/* 092C2C 7F05E0FC 4606203C */ c.lt.s $f4, $f6 +/* 092C30 7F05E100 AFBF002C */ sw $ra, 0x2c($sp) +/* 092C34 7F05E104 AFB00028 */ sw $s0, 0x28($sp) +/* 092C38 7F05E108 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 092C3C 7F05E10C AFA70074 */ sw $a3, 0x74($sp) +/* 092C40 7F05E110 45000002 */ bc1f .L7F05E11C +/* 092C44 7F05E114 46002406 */ mov.s $f16, $f4 +/* 092C48 7F05E118 46002407 */ neg.s $f16, $f4 +.L7F05E11C: +/* 092C4C 7F05E11C 3C018005 */ lui $at, %hi(D_80053C34) +/* 092C50 7F05E120 C4283C34 */ lwc1 $f8, %lo(D_80053C34)($at) +/* 092C54 7F05E124 3C108008 */ lui $s0, %hi(pPlayer) +/* 092C58 7F05E128 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 092C5C 7F05E12C 460E403C */ c.lt.s $f8, $f14 +/* 092C60 7F05E130 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 092C64 7F05E134 45000005 */ bc1f .L7F05E14C +/* 092C68 7F05E138 00000000 */ nop +/* 092C6C 7F05E13C 4481A000 */ mtc1 $at, $f20 +/* 092C70 7F05E140 8E0E0000 */ lw $t6, ($s0) +/* 092C74 7F05E144 10000025 */ b .L7F05E1DC +/* 092C78 7F05E148 E5D40FC0 */ swc1 $f20, 0xfc0($t6) +.L7F05E14C: +/* 092C7C 7F05E14C 3C018005 */ lui $at, %hi(D_80053C3C) +/* 092C80 7F05E150 C4203C3C */ lwc1 $f0, %lo(D_80053C3C)($at) +/* 092C84 7F05E154 460E003C */ c.lt.s $f0, $f14 +/* 092C88 7F05E158 00000000 */ nop +/* 092C8C 7F05E15C 45000019 */ bc1f .L7F05E1C4 +/* 092C90 7F05E160 00000000 */ nop +/* 092C94 7F05E164 46007281 */ sub.s $f10, $f14, $f0 +/* 092C98 7F05E168 3C018005 */ lui $at, %hi(D_80053C40) +/* 092C9C 7F05E16C C4323C40 */ lwc1 $f18, %lo(D_80053C40)($at) +/* 092CA0 7F05E170 3C018005 */ lui $at, %hi(D_80053C44) +/* 092CA4 7F05E174 C4243C44 */ lwc1 $f4, %lo(D_80053C44)($at) +/* 092CA8 7F05E178 46125182 */ mul.s $f6, $f10, $f18 +/* 092CAC 7F05E17C E7B00050 */ swc1 $f16, 0x50($sp) +/* 092CB0 7F05E180 0FC15FA8 */ jal cosf +/* 092CB4 7F05E184 46043303 */ div.s $f12, $f6, $f4 +/* 092CB8 7F05E188 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 092CBC 7F05E18C 4481A000 */ mtc1 $at, $f20 +/* 092CC0 7F05E190 3C018005 */ lui $at, %hi(D_80053C48) +/* 092CC4 7F05E194 C4283C48 */ lwc1 $f8, %lo(D_80053C48)($at) +/* 092CC8 7F05E198 4600A281 */ sub.s $f10, $f20, $f0 +/* 092CCC 7F05E19C 3C018005 */ lui $at, %hi(D_80053C4C) +/* 092CD0 7F05E1A0 C4263C4C */ lwc1 $f6, %lo(D_80053C4C)($at) +/* 092CD4 7F05E1A4 3C108008 */ lui $s0, %hi(pPlayer) +/* 092CD8 7F05E1A8 460A4482 */ mul.s $f18, $f8, $f10 +/* 092CDC 7F05E1AC 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 092CE0 7F05E1B0 8E0F0000 */ lw $t7, ($s0) +/* 092CE4 7F05E1B4 C7B00050 */ lwc1 $f16, 0x50($sp) +/* 092CE8 7F05E1B8 46069100 */ add.s $f4, $f18, $f6 +/* 092CEC 7F05E1BC 10000007 */ b .L7F05E1DC +/* 092CF0 7F05E1C0 E5E40FC0 */ swc1 $f4, 0xfc0($t7) +.L7F05E1C4: +/* 092CF4 7F05E1C4 3C108008 */ lui $s0, %hi(pPlayer) +/* 092CF8 7F05E1C8 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 092CFC 7F05E1CC 8E180000 */ lw $t8, ($s0) +/* 092D00 7F05E1D0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 092D04 7F05E1D4 4481A000 */ mtc1 $at, $f20 +/* 092D08 7F05E1D8 E7000FC0 */ swc1 $f0, 0xfc0($t8) +.L7F05E1DC: +/* 092D0C 7F05E1DC 0FC227B5 */ jal get_BONDdata_bondfadefracnew +/* 092D10 7F05E1E0 E7B00050 */ swc1 $f16, 0x50($sp) +/* 092D14 7F05E1E4 3C018005 */ lui $at, %hi(D_80053C54) +/* 092D18 7F05E1E8 C4283C54 */ lwc1 $f8, %lo(D_80053C54)($at) +/* 092D1C 7F05E1EC 8E030000 */ lw $v1, ($s0) +/* 092D20 7F05E1F0 C7B00050 */ lwc1 $f16, 0x50($sp) +/* 092D24 7F05E1F4 46080282 */ mul.s $f10, $f0, $f8 +/* 092D28 7F05E1F8 C4620FC0 */ lwc1 $f2, 0xfc0($v1) +/* 092D2C 7F05E1FC 460A103C */ c.lt.s $f2, $f10 +/* 092D30 7F05E200 00000000 */ nop +/* 092D34 7F05E204 4502000C */ bc1fl .L7F05E238 +/* 092D38 7F05E208 3C013F00 */ lui $at, 0x3f00 +/* 092D3C 7F05E20C 0FC227B5 */ jal get_BONDdata_bondfadefracnew +/* 092D40 7F05E210 E7B00050 */ swc1 $f16, 0x50($sp) +/* 092D44 7F05E214 3C018005 */ lui $at, %hi(D_80053C58) +/* 092D48 7F05E218 C4323C58 */ lwc1 $f18, %lo(D_80053C58)($at) +/* 092D4C 7F05E21C 8E190000 */ lw $t9, ($s0) +/* 092D50 7F05E220 C7B00050 */ lwc1 $f16, 0x50($sp) +/* 092D54 7F05E224 46120182 */ mul.s $f6, $f0, $f18 +/* 092D58 7F05E228 E7260FC0 */ swc1 $f6, 0xfc0($t9) +/* 092D5C 7F05E22C 8E030000 */ lw $v1, ($s0) +/* 092D60 7F05E230 C4620FC0 */ lwc1 $f2, 0xfc0($v1) +/* 092D64 7F05E234 3C013F00 */ li $at, 0x3F000000 # 0.500000 +.L7F05E238: +/* 092D68 7F05E238 44812000 */ mtc1 $at, $f4 +/* 092D6C 7F05E23C 3C048005 */ lui $a0, %hi(clock_timer) +/* 092D70 7F05E240 24848374 */ addiu $a0, %lo(clock_timer) # addiu $a0, $a0, -0x7c8c +/* 092D74 7F05E244 46102002 */ mul.s $f0, $f4, $f16 +/* 092D78 7F05E248 4600103C */ c.lt.s $f2, $f0 +/* 092D7C 7F05E24C 00000000 */ nop +/* 092D80 7F05E250 45020003 */ bc1fl .L7F05E260 +/* 092D84 7F05E254 8C880000 */ lw $t0, ($a0) +/* 092D88 7F05E258 E4600FC0 */ swc1 $f0, 0xfc0($v1) +/* 092D8C 7F05E25C 8C880000 */ lw $t0, ($a0) +.L7F05E260: +/* 092D90 7F05E260 00001025 */ move $v0, $zero +/* 092D94 7F05E264 1900000E */ blez $t0, .L7F05E2A0 +/* 092D98 7F05E268 3C018005 */ lui $at, %hi(D_80053C5C) +/* 092D9C 7F05E26C C4203C5C */ lwc1 $f0, %lo(D_80053C5C)($at) +/* 092DA0 7F05E270 8E030000 */ lw $v1, ($s0) +.L7F05E274: +/* 092DA4 7F05E274 24420001 */ addiu $v0, $v0, 1 +/* 092DA8 7F05E278 C4681080 */ lwc1 $f8, 0x1080($v1) +/* 092DAC 7F05E27C C4720FC0 */ lwc1 $f18, 0xfc0($v1) +/* 092DB0 7F05E280 46004282 */ mul.s $f10, $f8, $f0 +/* 092DB4 7F05E284 46125180 */ add.s $f6, $f10, $f18 +/* 092DB8 7F05E288 E4661080 */ swc1 $f6, 0x1080($v1) +/* 092DBC 7F05E28C 8C890000 */ lw $t1, ($a0) +/* 092DC0 7F05E290 0049082A */ slt $at, $v0, $t1 +/* 092DC4 7F05E294 5420FFF7 */ bnezl $at, .L7F05E274 +/* 092DC8 7F05E298 8E030000 */ lw $v1, ($s0) +/* 092DCC 7F05E29C 00001025 */ move $v0, $zero +.L7F05E2A0: +/* 092DD0 7F05E2A0 8E030000 */ lw $v1, ($s0) +/* 092DD4 7F05E2A4 3C018005 */ lui $at, %hi(D_80053C60) +/* 092DD8 7F05E2A8 C4203C60 */ lwc1 $f0, %lo(D_80053C60)($at) +/* 092DDC 7F05E2AC 3C018005 */ lui $at, %hi(D_80053C64) +/* 092DE0 7F05E2B0 C42C3C64 */ lwc1 $f12, %lo(D_80053C64)($at) +/* 092DE4 7F05E2B4 C4641080 */ lwc1 $f4, 0x1080($v1) +/* 092DE8 7F05E2B8 3C018005 */ lui $at, %hi(D_80053C68) +/* 092DEC 7F05E2BC 460C2202 */ mul.s $f8, $f4, $f12 +/* 092DF0 7F05E2C0 E4680FC0 */ swc1 $f8, 0xfc0($v1) +/* 092DF4 7F05E2C4 C42A3C68 */ lwc1 $f10, %lo(D_80053C68)($at) +/* 092DF8 7F05E2C8 46105082 */ mul.s $f2, $f10, $f16 +/* 092DFC 7F05E2CC 4602B03C */ c.lt.s $f22, $f2 +/* 092E00 7F05E2D0 00000000 */ nop +/* 092E04 7F05E2D4 45020003 */ bc1fl .L7F05E2E4 +/* 092E08 7F05E2D8 8C8A0000 */ lw $t2, ($a0) +/* 092E0C 7F05E2DC 46001586 */ mov.s $f22, $f2 +/* 092E10 7F05E2E0 8C8A0000 */ lw $t2, ($a0) +.L7F05E2E4: +/* 092E14 7F05E2E4 5940000C */ blezl $t2, .L7F05E318 +/* 092E18 7F05E2E8 8E030000 */ lw $v1, ($s0) +/* 092E1C 7F05E2EC 8E030000 */ lw $v1, ($s0) +.L7F05E2F0: +/* 092E20 7F05E2F0 24420001 */ addiu $v0, $v0, 1 +/* 092E24 7F05E2F4 C472107C */ lwc1 $f18, 0x107c($v1) +/* 092E28 7F05E2F8 46009182 */ mul.s $f6, $f18, $f0 +/* 092E2C 7F05E2FC 46163100 */ add.s $f4, $f6, $f22 +/* 092E30 7F05E300 E464107C */ swc1 $f4, 0x107c($v1) +/* 092E34 7F05E304 8C8B0000 */ lw $t3, ($a0) +/* 092E38 7F05E308 004B082A */ slt $at, $v0, $t3 +/* 092E3C 7F05E30C 5420FFF8 */ bnezl $at, .L7F05E2F0 +/* 092E40 7F05E310 8E030000 */ lw $v1, ($s0) +/* 092E44 7F05E314 8E030000 */ lw $v1, ($s0) +.L7F05E318: +/* 092E48 7F05E318 3C018005 */ lui $at, %hi(global_timer_delta) +/* 092E4C 7F05E31C C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 092E50 7F05E320 C468107C */ lwc1 $f8, 0x107c($v1) +/* 092E54 7F05E324 460C4582 */ mul.s $f22, $f8, $f12 +/* 092E58 7F05E328 00000000 */ nop +/* 092E5C 7F05E32C 4600B282 */ mul.s $f10, $f22, $f0 +/* 092E60 7F05E330 E7AA004C */ swc1 $f10, 0x4c($sp) +/* 092E64 7F05E334 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 092E68 7F05E338 C4720A0C */ lwc1 $f18, 0xa0c($v1) +/* 092E6C 7F05E33C 46069100 */ add.s $f4, $f18, $f6 +/* 092E70 7F05E340 E7A40060 */ swc1 $f4, 0x60($sp) +/* 092E74 7F05E344 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 092E78 7F05E348 4608A03E */ c.le.s $f20, $f8 +/* 092E7C 7F05E34C 00000000 */ nop +/* 092E80 7F05E350 45000012 */ bc1f .L7F05E39C +/* 092E84 7F05E354 00000000 */ nop +.L7F05E358: +/* 092E88 7F05E358 0FC17260 */ jal unknown_takes_playerhand +/* 092E8C 7F05E35C 00002025 */ move $a0, $zero +/* 092E90 7F05E360 C7AA0060 */ lwc1 $f10, 0x60($sp) +/* 092E94 7F05E364 8E030000 */ lw $v1, ($s0) +/* 092E98 7F05E368 46145481 */ sub.s $f18, $f10, $f20 +/* 092E9C 7F05E36C E7B20060 */ swc1 $f18, 0x60($sp) +/* 092EA0 7F05E370 8C6C1078 */ lw $t4, 0x1078($v1) +/* 092EA4 7F05E374 258D0001 */ addiu $t5, $t4, 1 +/* 092EA8 7F05E378 AC6D1078 */ sw $t5, 0x1078($v1) +/* 092EAC 7F05E37C C7A60060 */ lwc1 $f6, 0x60($sp) +/* 092EB0 7F05E380 4606A03E */ c.le.s $f20, $f6 +/* 092EB4 7F05E384 00000000 */ nop +/* 092EB8 7F05E388 4501FFF3 */ bc1t .L7F05E358 +/* 092EBC 7F05E38C 00000000 */ nop +/* 092EC0 7F05E390 3C018005 */ lui $at, %hi(global_timer_delta) +/* 092EC4 7F05E394 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 092EC8 7F05E398 8E030000 */ lw $v1, ($s0) +.L7F05E39C: +/* 092ECC 7F05E39C C4641074 */ lwc1 $f4, 0x1074($v1) +/* 092ED0 7F05E3A0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 092ED4 7F05E3A4 4481B000 */ mtc1 $at, $f22 +/* 092ED8 7F05E3A8 46002200 */ add.s $f8, $f4, $f0 +/* 092EDC 7F05E3AC E4681074 */ swc1 $f8, 0x1074($v1) +/* 092EE0 7F05E3B0 8E030000 */ lw $v1, ($s0) +/* 092EE4 7F05E3B4 C46A1074 */ lwc1 $f10, 0x1074($v1) +/* 092EE8 7F05E3B8 460AB03C */ c.lt.s $f22, $f10 +/* 092EEC 7F05E3BC 00000000 */ nop +/* 092EF0 7F05E3C0 45020019 */ bc1fl .L7F05E428 +/* 092EF4 7F05E3C4 C4601070 */ lwc1 $f0, 0x1070($v1) +/* 092EF8 7F05E3C8 44809000 */ mtc1 $zero, $f18 +/* 092EFC 7F05E3CC 0C002914 */ jal get_random_value +/* 092F00 7F05E3D0 E4721074 */ swc1 $f18, 0x1074($v1) +/* 092F04 7F05E3D4 44823000 */ mtc1 $v0, $f6 +/* 092F08 7F05E3D8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 092F0C 7F05E3DC 04410004 */ bgez $v0, .L7F05E3F0 +/* 092F10 7F05E3E0 46803120 */ cvt.s.w $f4, $f6 +/* 092F14 7F05E3E4 44814000 */ mtc1 $at, $f8 +/* 092F18 7F05E3E8 00000000 */ nop +/* 092F1C 7F05E3EC 46082100 */ add.s $f4, $f4, $f8 +.L7F05E3F0: +/* 092F20 7F05E3F0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 092F24 7F05E3F4 44815000 */ mtc1 $at, $f10 +/* 092F28 7F05E3F8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 092F2C 7F05E3FC 44813000 */ mtc1 $at, $f6 +/* 092F30 7F05E400 460A2482 */ mul.s $f18, $f4, $f10 +/* 092F34 7F05E404 3C018005 */ lui $at, %hi(D_80053C6C) +/* 092F38 7F05E408 C4243C6C */ lwc1 $f4, %lo(D_80053C6C)($at) +/* 092F3C 7F05E40C 8E0E0000 */ lw $t6, ($s0) +/* 092F40 7F05E410 46069201 */ sub.s $f8, $f18, $f6 +/* 092F44 7F05E414 46044282 */ mul.s $f10, $f8, $f4 +/* 092F48 7F05E418 46165483 */ div.s $f18, $f10, $f22 +/* 092F4C 7F05E41C E5D21070 */ swc1 $f18, 0x1070($t6) +/* 092F50 7F05E420 8E030000 */ lw $v1, ($s0) +/* 092F54 7F05E424 C4601070 */ lwc1 $f0, 0x1070($v1) +.L7F05E428: +/* 092F58 7F05E428 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 092F5C 7F05E42C 44803000 */ mtc1 $zero, $f6 +/* 092F60 7F05E430 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 092F64 7F05E434 46080100 */ add.s $f4, $f0, $f8 +/* 092F68 7F05E438 44814000 */ mtc1 $at, $f8 +/* 092F6C 7F05E43C 4604303C */ c.lt.s $f6, $f4 +/* 092F70 7F05E440 00000000 */ nop +/* 092F74 7F05E444 45020006 */ bc1fl .L7F05E460 +/* 092F78 7F05E448 C460106C */ lwc1 $f0, 0x106c($v1) +/* 092F7C 7F05E44C C46A106C */ lwc1 $f10, 0x106c($v1) +/* 092F80 7F05E450 46005480 */ add.s $f18, $f10, $f0 +/* 092F84 7F05E454 E472106C */ swc1 $f18, 0x106c($v1) +/* 092F88 7F05E458 8E030000 */ lw $v1, ($s0) +/* 092F8C 7F05E45C C460106C */ lwc1 $f0, 0x106c($v1) +.L7F05E460: +/* 092F90 7F05E460 4600403C */ c.lt.s $f8, $f0 +/* 092F94 7F05E464 00000000 */ nop +/* 092F98 7F05E468 45000007 */ bc1f .L7F05E488 +/* 092F9C 7F05E46C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 092FA0 7F05E470 44813000 */ mtc1 $at, $f6 +/* 092FA4 7F05E474 00000000 */ nop +/* 092FA8 7F05E478 E466106C */ swc1 $f6, 0x106c($v1) +/* 092FAC 7F05E47C 8E030000 */ lw $v1, ($s0) +/* 092FB0 7F05E480 10000024 */ b .L7F05E514 +/* 092FB4 7F05E484 C460106C */ lwc1 $f0, 0x106c($v1) +.L7F05E488: +/* 092FB8 7F05E488 3C01BF00 */ li $at, 0xBF000000 # -0.500000 +/* 092FBC 7F05E48C 44811000 */ mtc1 $at, $f2 +/* 092FC0 7F05E490 3C018005 */ lui $at, %hi(D_80053C70) +/* 092FC4 7F05E494 4602003C */ c.lt.s $f0, $f2 +/* 092FC8 7F05E498 00000000 */ nop +/* 092FCC 7F05E49C 45000005 */ bc1f .L7F05E4B4 +/* 092FD0 7F05E4A0 00000000 */ nop +/* 092FD4 7F05E4A4 E462106C */ swc1 $f2, 0x106c($v1) +/* 092FD8 7F05E4A8 8E030000 */ lw $v1, ($s0) +/* 092FDC 7F05E4AC 10000019 */ b .L7F05E514 +/* 092FE0 7F05E4B0 C460106C */ lwc1 $f0, 0x106c($v1) +.L7F05E4B4: +/* 092FE4 7F05E4B4 C42C3C70 */ lwc1 $f12, %lo(D_80053C70)($at) +/* 092FE8 7F05E4B8 3C018005 */ lui $at, %hi(D_80053C74) +/* 092FEC 7F05E4BC 460C003C */ c.lt.s $f0, $f12 +/* 092FF0 7F05E4C0 00000000 */ nop +/* 092FF4 7F05E4C4 45020014 */ bc1fl .L7F05E518 +/* 092FF8 7F05E4C8 8C6F1078 */ lw $t7, 0x1078($v1) +/* 092FFC 7F05E4CC C4223C74 */ lwc1 $f2, %lo(D_80053C74)($at) +/* 093000 7F05E4D0 4600103C */ c.lt.s $f2, $f0 +/* 093004 7F05E4D4 00000000 */ nop +/* 093008 7F05E4D8 4502000F */ bc1fl .L7F05E518 +/* 09300C 7F05E4DC 8C6F1078 */ lw $t7, 0x1078($v1) +/* 093010 7F05E4E0 44802000 */ mtc1 $zero, $f4 +/* 093014 7F05E4E4 00000000 */ nop +/* 093018 7F05E4E8 4600203C */ c.lt.s $f4, $f0 +/* 09301C 7F05E4EC 00000000 */ nop +/* 093020 7F05E4F0 45020006 */ bc1fl .L7F05E50C +/* 093024 7F05E4F4 E46C106C */ swc1 $f12, 0x106c($v1) +/* 093028 7F05E4F8 E462106C */ swc1 $f2, 0x106c($v1) +/* 09302C 7F05E4FC 8E030000 */ lw $v1, ($s0) +/* 093030 7F05E500 10000004 */ b .L7F05E514 +/* 093034 7F05E504 C460106C */ lwc1 $f0, 0x106c($v1) +/* 093038 7F05E508 E46C106C */ swc1 $f12, 0x106c($v1) +.L7F05E50C: +/* 09303C 7F05E50C 8E030000 */ lw $v1, ($s0) +/* 093040 7F05E510 C460106C */ lwc1 $f0, 0x106c($v1) +.L7F05E514: +/* 093044 7F05E514 8C6F1078 */ lw $t7, 0x1078($v1) +.L7F05E518: +/* 093048 7F05E518 C7AA0060 */ lwc1 $f10, 0x60($sp) +/* 09304C 7F05E51C 448F9000 */ mtc1 $t7, $f18 +/* 093050 7F05E520 00000000 */ nop +/* 093054 7F05E524 46809220 */ cvt.s.w $f8, $f18 +/* 093058 7F05E528 46085180 */ add.s $f6, $f10, $f8 +/* 09305C 7F05E52C 46003100 */ add.s $f4, $f6, $f0 +/* 093060 7F05E530 4604A03E */ c.le.s $f20, $f4 +/* 093064 7F05E534 E7A40064 */ swc1 $f4, 0x64($sp) +/* 093068 7F05E538 45020010 */ bc1fl .L7F05E57C +/* 09306C 7F05E53C 3C01BFE0 */ lui $at, 0xbfe0 +.L7F05E540: +/* 093070 7F05E540 0FC17260 */ jal unknown_takes_playerhand +/* 093074 7F05E544 24040001 */ li $a0, 1 +/* 093078 7F05E548 C7B20064 */ lwc1 $f18, 0x64($sp) +/* 09307C 7F05E54C 8E030000 */ lw $v1, ($s0) +/* 093080 7F05E550 46149281 */ sub.s $f10, $f18, $f20 +/* 093084 7F05E554 E7AA0064 */ swc1 $f10, 0x64($sp) +/* 093088 7F05E558 8C781078 */ lw $t8, 0x1078($v1) +/* 09308C 7F05E55C 2719FFFF */ addiu $t9, $t8, -1 +/* 093090 7F05E560 AC791078 */ sw $t9, 0x1078($v1) +/* 093094 7F05E564 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 093098 7F05E568 4608A03E */ c.le.s $f20, $f8 +/* 09309C 7F05E56C 00000000 */ nop +/* 0930A0 7F05E570 4501FFF3 */ bc1t .L7F05E540 +/* 0930A4 7F05E574 00000000 */ nop +/* 0930A8 7F05E578 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 +.L7F05E57C: +/* 0930AC 7F05E57C 44813000 */ mtc1 $at, $f6 +/* 0930B0 7F05E580 C7A40074 */ lwc1 $f4, 0x74($sp) +/* 0930B4 7F05E584 3C01C000 */ li $at, 0xC0000000 # -2.000000 +/* 0930B8 7F05E588 44819000 */ mtc1 $at, $f18 +/* 0930BC 7F05E58C C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 0930C0 7F05E590 46043002 */ mul.s $f0, $f6, $f4 +/* 0930C4 7F05E594 00001025 */ move $v0, $zero +/* 0930C8 7F05E598 27A30060 */ addiu $v1, $sp, 0x60 +/* 0930CC 7F05E59C 460A9082 */ mul.s $f2, $f18, $f10 +/* 0930D0 7F05E5A0 27A40068 */ addiu $a0, $sp, 0x68 +.L7F05E5A4: +/* 0930D4 7F05E5A4 8E080000 */ lw $t0, ($s0) +/* 0930D8 7F05E5A8 C4680000 */ lwc1 $f8, ($v1) +/* 0930DC 7F05E5AC 24630004 */ addiu $v1, $v1, 4 +/* 0930E0 7F05E5B0 01024821 */ addu $t1, $t0, $v0 +/* 0930E4 7F05E5B4 E5280A0C */ swc1 $f8, 0xa0c($t1) +/* 0930E8 7F05E5B8 8E0A0000 */ lw $t2, ($s0) +/* 0930EC 7F05E5BC 01425821 */ addu $t3, $t2, $v0 +/* 0930F0 7F05E5C0 E5600A1C */ swc1 $f0, 0xa1c($t3) +/* 0930F4 7F05E5C4 8E0C0000 */ lw $t4, ($s0) +/* 0930F8 7F05E5C8 01826821 */ addu $t5, $t4, $v0 +/* 0930FC 7F05E5CC 244203A8 */ addiu $v0, $v0, 0x3a8 +/* 093100 7F05E5D0 1464FFF4 */ bne $v1, $a0, .L7F05E5A4 +/* 093104 7F05E5D4 E5A20A20 */ swc1 $f2, 0xa20($t5) +/* 093108 7F05E5D8 8FBF002C */ lw $ra, 0x2c($sp) +/* 09310C 7F05E5DC D7B40018 */ ldc1 $f20, 0x18($sp) +/* 093110 7F05E5E0 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 093114 7F05E5E4 8FB00028 */ lw $s0, 0x28($sp) +/* 093118 7F05E5E8 03E00008 */ jr $ra +/* 09311C 7F05E5EC 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + +void sub_GAME_7F05E5F0(f32 param_1) +{ + pPlayer->hands[RIGHT_HAND].field_A30 = (1.0f - cosf(param_1)) * 5.0f; + pPlayer->hands[LEFT_HAND].field_A30 = (1.0f - cosf(param_1)) * 5.0f; +} + + +f32 get_value_if_watch_is_on_hand_or_not(int hand) +{ + if ((get_item_in_hand(hand) == ITEM_TRIGGER) || (get_item_in_hand(hand) == ITEM_WATCHLASER)) + { + return 0.08726647f; + } + else + { + return 0.17453294f; + } +} + + + +#ifdef NONMATCHING +void sub_GAME_7F05E6B4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053C80 +.word 0x3cee4baf /*0.029088823*/ +glabel D_80053C84 +.word 0x3c8efa36 /*0.017453294*/ +.text +glabel sub_GAME_7F05E6B4 +/* 0931E4 7F05E6B4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0931E8 7F05E6B8 10A0002F */ beqz $a1, .L7F05E778 +/* 0931EC 7F05E6BC AFBF0014 */ sw $ra, 0x14($sp) +/* 0931F0 7F05E6C0 0FC17999 */ jal get_value_if_watch_is_on_hand_or_not +/* 0931F4 7F05E6C4 AFA40020 */ sw $a0, 0x20($sp) +/* 0931F8 7F05E6C8 8FA40020 */ lw $a0, 0x20($sp) +/* 0931FC 7F05E6CC 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 093200 7F05E6D0 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 093204 7F05E6D4 000418C0 */ sll $v1, $a0, 3 +/* 093208 7F05E6D8 00641823 */ subu $v1, $v1, $a0 +/* 09320C 7F05E6DC 00031880 */ sll $v1, $v1, 2 +/* 093210 7F05E6E0 00641821 */ addu $v1, $v1, $a0 +/* 093214 7F05E6E4 00031880 */ sll $v1, $v1, 2 +/* 093218 7F05E6E8 00641821 */ addu $v1, $v1, $a0 +/* 09321C 7F05E6EC 000318C0 */ sll $v1, $v1, 3 +/* 093220 7F05E6F0 01C31021 */ addu $v0, $t6, $v1 +/* 093224 7F05E6F4 C4420A84 */ lwc1 $f2, 0xa84($v0) +/* 093228 7F05E6F8 3C018005 */ lui $at, %hi(D_80053C80) +/* 09322C 7F05E6FC 4600103C */ c.lt.s $f2, $f0 +/* 093230 7F05E700 00000000 */ nop +/* 093234 7F05E704 45020008 */ bc1fl .L7F05E728 +/* 093238 7F05E708 AFA3001C */ sw $v1, 0x1c($sp) +/* 09323C 7F05E70C C4243C80 */ lwc1 $f4, %lo(D_80053C80)($at) +/* 093240 7F05E710 3C018005 */ lui $at, %hi(global_timer_delta) +/* 093244 7F05E714 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 093248 7F05E718 46062202 */ mul.s $f8, $f4, $f6 +/* 09324C 7F05E71C 46081280 */ add.s $f10, $f2, $f8 +/* 093250 7F05E720 E44A0A84 */ swc1 $f10, 0xa84($v0) +/* 093254 7F05E724 AFA3001C */ sw $v1, 0x1c($sp) +.L7F05E728: +/* 093258 7F05E728 0FC17999 */ jal get_value_if_watch_is_on_hand_or_not +/* 09325C 7F05E72C AFA40020 */ sw $a0, 0x20($sp) +/* 093260 7F05E730 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 093264 7F05E734 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 093268 7F05E738 8FA3001C */ lw $v1, 0x1c($sp) +/* 09326C 7F05E73C 8FA40020 */ lw $a0, 0x20($sp) +/* 093270 7F05E740 01E3C021 */ addu $t8, $t7, $v1 +/* 093274 7F05E744 C7100A84 */ lwc1 $f16, 0xa84($t8) +/* 093278 7F05E748 4610003C */ c.lt.s $f0, $f16 +/* 09327C 7F05E74C 00000000 */ nop +/* 093280 7F05E750 4502002A */ bc1fl .L7F05E7FC +/* 093284 7F05E754 8FBF0014 */ lw $ra, 0x14($sp) +/* 093288 7F05E758 0FC17999 */ jal get_value_if_watch_is_on_hand_or_not +/* 09328C 7F05E75C AFA3001C */ sw $v1, 0x1c($sp) +/* 093290 7F05E760 3C198008 */ lui $t9, %hi(pPlayer) +/* 093294 7F05E764 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 093298 7F05E768 8FA3001C */ lw $v1, 0x1c($sp) +/* 09329C 7F05E76C 03234021 */ addu $t0, $t9, $v1 +/* 0932A0 7F05E770 10000021 */ b .L7F05E7F8 +/* 0932A4 7F05E774 E5000A84 */ swc1 $f0, 0xa84($t0) +.L7F05E778: +/* 0932A8 7F05E778 000418C0 */ sll $v1, $a0, 3 +/* 0932AC 7F05E77C 00641823 */ subu $v1, $v1, $a0 +/* 0932B0 7F05E780 00031880 */ sll $v1, $v1, 2 +/* 0932B4 7F05E784 00641821 */ addu $v1, $v1, $a0 +/* 0932B8 7F05E788 3C098008 */ lui $t1, %hi(pPlayer) +/* 0932BC 7F05E78C 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0932C0 7F05E790 00031880 */ sll $v1, $v1, 2 +/* 0932C4 7F05E794 00641821 */ addu $v1, $v1, $a0 +/* 0932C8 7F05E798 000318C0 */ sll $v1, $v1, 3 +/* 0932CC 7F05E79C 01231021 */ addu $v0, $t1, $v1 +/* 0932D0 7F05E7A0 44800000 */ mtc1 $zero, $f0 +/* 0932D4 7F05E7A4 C4420A84 */ lwc1 $f2, 0xa84($v0) +/* 0932D8 7F05E7A8 3C018005 */ lui $at, %hi(D_80053C84) +/* 0932DC 7F05E7AC 4602003C */ c.lt.s $f0, $f2 +/* 0932E0 7F05E7B0 00000000 */ nop +/* 0932E4 7F05E7B4 4502000C */ bc1fl .L7F05E7E8 +/* 0932E8 7F05E7B8 4600103C */ c.lt.s $f2, $f0 +/* 0932EC 7F05E7BC C4323C84 */ lwc1 $f18, %lo(D_80053C84)($at) +/* 0932F0 7F05E7C0 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0932F4 7F05E7C4 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0932F8 7F05E7C8 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0932FC 7F05E7CC 46049182 */ mul.s $f6, $f18, $f4 +/* 093300 7F05E7D0 46061201 */ sub.s $f8, $f2, $f6 +/* 093304 7F05E7D4 E4480A84 */ swc1 $f8, 0xa84($v0) +/* 093308 7F05E7D8 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 09330C 7F05E7DC 01431021 */ addu $v0, $t2, $v1 +/* 093310 7F05E7E0 C4420A84 */ lwc1 $f2, 0xa84($v0) +/* 093314 7F05E7E4 4600103C */ c.lt.s $f2, $f0 +.L7F05E7E8: +/* 093318 7F05E7E8 00000000 */ nop +/* 09331C 7F05E7EC 45020003 */ bc1fl .L7F05E7FC +/* 093320 7F05E7F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 093324 7F05E7F4 E4400A84 */ swc1 $f0, 0xa84($v0) +.L7F05E7F8: +/* 093328 7F05E7F8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F05E7FC: +/* 09332C 7F05E7FC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 093330 7F05E800 03E00008 */ jr $ra +/* 093334 7F05E804 00000000 */ nop +) +#endif + +void sub_GAME_7F05E808(HANDEDNESS hand) { + pPlayer->hands[hand].field_A8C = 1; +} + +#ifdef NONMATCHING +void sub_GAME_7F05E83C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053C88 +.word 0x3e2aaaab /*0.16666667*/ +.text +glabel sub_GAME_7F05E83C +/* 09336C 7F05E83C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 093370 7F05E840 AFBF0014 */ sw $ra, 0x14($sp) +/* 093374 7F05E844 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 093378 7F05E848 AFA40018 */ sw $a0, 0x18($sp) +/* 09337C 7F05E84C 0FC1722D */ jal get_ptr_item_statistics +/* 093380 7F05E850 00402025 */ move $a0, $v0 +/* 093384 7F05E854 8FA40018 */ lw $a0, 0x18($sp) +/* 093388 7F05E858 3C058008 */ lui $a1, %hi(pPlayer) +/* 09338C 7F05E85C 24A5A0B0 */ addiu $a1, %lo(pPlayer) # addiu $a1, $a1, -0x5f50 +/* 093390 7F05E860 000470C0 */ sll $t6, $a0, 3 +/* 093394 7F05E864 01C47023 */ subu $t6, $t6, $a0 +/* 093398 7F05E868 000E7080 */ sll $t6, $t6, 2 +/* 09339C 7F05E86C 01C47021 */ addu $t6, $t6, $a0 +/* 0933A0 7F05E870 8CAF0000 */ lw $t7, ($a1) +/* 0933A4 7F05E874 000E7080 */ sll $t6, $t6, 2 +/* 0933A8 7F05E878 01C47021 */ addu $t6, $t6, $a0 +/* 0933AC 7F05E87C 000E70C0 */ sll $t6, $t6, 3 +/* 0933B0 7F05E880 01EE1821 */ addu $v1, $t7, $t6 +/* 0933B4 7F05E884 8C780A8C */ lw $t8, 0xa8c($v1) +/* 0933B8 7F05E888 C4420050 */ lwc1 $f2, 0x50($v0) +/* 0933BC 7F05E88C 01C02025 */ move $a0, $t6 +/* 0933C0 7F05E890 5300001C */ beql $t8, $zero, .L7F05E904 +/* 0933C4 7F05E894 8C6A089C */ lw $t2, 0x89c($v1) +/* 0933C8 7F05E898 C4600A88 */ lwc1 $f0, 0xa88($v1) +/* 0933CC 7F05E89C 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0933D0 7F05E8A0 4602003C */ c.lt.s $f0, $f2 +/* 0933D4 7F05E8A4 00000000 */ nop +/* 0933D8 7F05E8A8 4502000D */ bc1fl .L7F05E8E0 +/* 0933DC 7F05E8AC 4600103E */ c.le.s $f2, $f0 +/* 0933E0 7F05E8B0 44812000 */ mtc1 $at, $f4 +/* 0933E4 7F05E8B4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0933E8 7F05E8B8 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0933EC 7F05E8BC 46041182 */ mul.s $f6, $f2, $f4 +/* 0933F0 7F05E8C0 00000000 */ nop +/* 0933F4 7F05E8C4 46083282 */ mul.s $f10, $f6, $f8 +/* 0933F8 7F05E8C8 460A0400 */ add.s $f16, $f0, $f10 +/* 0933FC 7F05E8CC E4700A88 */ swc1 $f16, 0xa88($v1) +/* 093400 7F05E8D0 8CB90000 */ lw $t9, ($a1) +/* 093404 7F05E8D4 032E1821 */ addu $v1, $t9, $t6 +/* 093408 7F05E8D8 C4600A88 */ lwc1 $f0, 0xa88($v1) +/* 09340C 7F05E8DC 4600103E */ c.le.s $f2, $f0 +.L7F05E8E0: +/* 093410 7F05E8E0 00000000 */ nop +/* 093414 7F05E8E4 45020021 */ bc1fl .L7F05E96C +/* 093418 7F05E8E8 8FBF0014 */ lw $ra, 0x14($sp) +/* 09341C 7F05E8EC E4620A88 */ swc1 $f2, 0xa88($v1) +/* 093420 7F05E8F0 8CA80000 */ lw $t0, ($a1) +/* 093424 7F05E8F4 01044821 */ addu $t1, $t0, $a0 +/* 093428 7F05E8F8 1000001B */ b .L7F05E968 +/* 09342C 7F05E8FC AD200A8C */ sw $zero, 0xa8c($t1) +/* 093430 7F05E900 8C6A089C */ lw $t2, 0x89c($v1) +.L7F05E904: +/* 093434 7F05E904 59400019 */ blezl $t2, .L7F05E96C +/* 093438 7F05E908 8FBF0014 */ lw $ra, 0x14($sp) +/* 09343C 7F05E90C 44806000 */ mtc1 $zero, $f12 +/* 093440 7F05E910 C4600A88 */ lwc1 $f0, 0xa88($v1) +/* 093444 7F05E914 3C018005 */ lui $at, %hi(D_80053C88) +/* 093448 7F05E918 4600603C */ c.lt.s $f12, $f0 +/* 09344C 7F05E91C 00000000 */ nop +/* 093450 7F05E920 4502000D */ bc1fl .L7F05E958 +/* 093454 7F05E924 460C003C */ c.lt.s $f0, $f12 +/* 093458 7F05E928 C4323C88 */ lwc1 $f18, %lo(D_80053C88)($at) +/* 09345C 7F05E92C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 093460 7F05E930 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 093464 7F05E934 46121102 */ mul.s $f4, $f2, $f18 +/* 093468 7F05E938 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 09346C 7F05E93C 46062202 */ mul.s $f8, $f4, $f6 +/* 093470 7F05E940 46080281 */ sub.s $f10, $f0, $f8 +/* 093474 7F05E944 E46A0A88 */ swc1 $f10, 0xa88($v1) +/* 093478 7F05E948 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 09347C 7F05E94C 01641821 */ addu $v1, $t3, $a0 +/* 093480 7F05E950 C4600A88 */ lwc1 $f0, 0xa88($v1) +/* 093484 7F05E954 460C003C */ c.lt.s $f0, $f12 +.L7F05E958: +/* 093488 7F05E958 00000000 */ nop +/* 09348C 7F05E95C 45020003 */ bc1fl .L7F05E96C +/* 093490 7F05E960 8FBF0014 */ lw $ra, 0x14($sp) +/* 093494 7F05E964 E46C0A88 */ swc1 $f12, 0xa88($v1) +.L7F05E968: +/* 093498 7F05E968 8FBF0014 */ lw $ra, 0x14($sp) +.L7F05E96C: +/* 09349C 7F05E96C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0934A0 7F05E970 03E00008 */ jr $ra +/* 0934A4 7F05E974 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05E978(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05E978 +/* 0934A8 7F05E978 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0934AC 7F05E97C AFBF001C */ sw $ra, 0x1c($sp) +/* 0934B0 7F05E980 AFB10018 */ sw $s1, 0x18($sp) +/* 0934B4 7F05E984 AFB00014 */ sw $s0, 0x14($sp) +/* 0934B8 7F05E988 8C830008 */ lw $v1, 8($a0) +/* 0934BC 7F05E98C 00808025 */ move $s0, $a0 +/* 0934C0 7F05E990 00A08825 */ move $s1, $a1 +/* 0934C4 7F05E994 8C660008 */ lw $a2, 8($v1) +/* 0934C8 7F05E998 8CC70020 */ lw $a3, 0x20($a2) +/* 0934CC 7F05E99C 50E00007 */ beql $a3, $zero, .L7F05E9BC +/* 0934D0 7F05E9A0 8CC50024 */ lw $a1, 0x24($a2) +/* 0934D4 7F05E9A4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0934D8 7F05E9A8 00E02825 */ move $a1, $a3 +/* 0934DC 7F05E9AC AC510000 */ sw $s1, ($v0) +/* 0934E0 7F05E9B0 8E030008 */ lw $v1, 8($s0) +/* 0934E4 7F05E9B4 8C660008 */ lw $a2, 8($v1) +/* 0934E8 7F05E9B8 8CC50024 */ lw $a1, 0x24($a2) +.L7F05E9BC: +/* 0934EC 7F05E9BC 50A00007 */ beql $a1, $zero, .L7F05E9DC +/* 0934F0 7F05E9C0 8CC50028 */ lw $a1, 0x28($a2) +/* 0934F4 7F05E9C4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0934F8 7F05E9C8 02002025 */ move $a0, $s0 +/* 0934FC 7F05E9CC AC510000 */ sw $s1, ($v0) +/* 093500 7F05E9D0 8E030008 */ lw $v1, 8($s0) +/* 093504 7F05E9D4 8C660008 */ lw $a2, 8($v1) +/* 093508 7F05E9D8 8CC50028 */ lw $a1, 0x28($a2) +.L7F05E9DC: +/* 09350C 7F05E9DC 50A00007 */ beql $a1, $zero, .L7F05E9FC +/* 093510 7F05E9E0 8CC5002C */ lw $a1, 0x2c($a2) +/* 093514 7F05E9E4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 093518 7F05E9E8 02002025 */ move $a0, $s0 +/* 09351C 7F05E9EC AC510000 */ sw $s1, ($v0) +/* 093520 7F05E9F0 8E030008 */ lw $v1, 8($s0) +/* 093524 7F05E9F4 8C660008 */ lw $a2, 8($v1) +/* 093528 7F05E9F8 8CC5002C */ lw $a1, 0x2c($a2) +.L7F05E9FC: +/* 09352C 7F05E9FC 50A00007 */ beql $a1, $zero, .L7F05EA1C +/* 093530 7F05EA00 8CC50030 */ lw $a1, 0x30($a2) +/* 093534 7F05EA04 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 093538 7F05EA08 02002025 */ move $a0, $s0 +/* 09353C 7F05EA0C AC510000 */ sw $s1, ($v0) +/* 093540 7F05EA10 8E030008 */ lw $v1, 8($s0) +/* 093544 7F05EA14 8C660008 */ lw $a2, 8($v1) +/* 093548 7F05EA18 8CC50030 */ lw $a1, 0x30($a2) +.L7F05EA1C: +/* 09354C 7F05EA1C 50A00007 */ beql $a1, $zero, .L7F05EA3C +/* 093550 7F05EA20 8CC50034 */ lw $a1, 0x34($a2) +/* 093554 7F05EA24 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 093558 7F05EA28 02002025 */ move $a0, $s0 +/* 09355C 7F05EA2C AC510000 */ sw $s1, ($v0) +/* 093560 7F05EA30 8E030008 */ lw $v1, 8($s0) +/* 093564 7F05EA34 8C660008 */ lw $a2, 8($v1) +/* 093568 7F05EA38 8CC50034 */ lw $a1, 0x34($a2) +.L7F05EA3C: +/* 09356C 7F05EA3C 50A00006 */ beql $a1, $zero, .L7F05EA58 +/* 093570 7F05EA40 846E000C */ lh $t6, 0xc($v1) +/* 093574 7F05EA44 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 093578 7F05EA48 02002025 */ move $a0, $s0 +/* 09357C 7F05EA4C AC510000 */ sw $s1, ($v0) +/* 093580 7F05EA50 8E030008 */ lw $v1, 8($s0) +/* 093584 7F05EA54 846E000C */ lh $t6, 0xc($v1) +.L7F05EA58: +/* 093588 7F05EA58 29C10024 */ slti $at, $t6, 0x24 +/* 09358C 7F05EA5C 54200009 */ bnezl $at, .L7F05EA84 +/* 093590 7F05EA60 8FBF001C */ lw $ra, 0x1c($sp) +/* 093594 7F05EA64 8C6F0008 */ lw $t7, 8($v1) +/* 093598 7F05EA68 8DE5008C */ lw $a1, 0x8c($t7) +/* 09359C 7F05EA6C 50A00005 */ beql $a1, $zero, .L7F05EA84 +/* 0935A0 7F05EA70 8FBF001C */ lw $ra, 0x1c($sp) +/* 0935A4 7F05EA74 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0935A8 7F05EA78 02002025 */ move $a0, $s0 +/* 0935AC 7F05EA7C AC510000 */ sw $s1, ($v0) +/* 0935B0 7F05EA80 8FBF001C */ lw $ra, 0x1c($sp) +.L7F05EA84: +/* 0935B4 7F05EA84 8FB00014 */ lw $s0, 0x14($sp) +/* 0935B8 7F05EA88 8FB10018 */ lw $s1, 0x18($sp) +/* 0935BC 7F05EA8C 03E00008 */ jr $ra +/* 0935C0 7F05EA90 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05EA94(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05EA94 +/* 0935C4 7F05EA94 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0935C8 7F05EA98 AFBF0014 */ sw $ra, 0x14($sp) +/* 0935CC 7F05EA9C AFA5001C */ sw $a1, 0x1c($sp) +/* 0935D0 7F05EAA0 8C820008 */ lw $v0, 8($a0) +/* 0935D4 7F05EAA4 844E000C */ lh $t6, 0xc($v0) +/* 0935D8 7F05EAA8 29C10010 */ slti $at, $t6, 0x10 +/* 0935DC 7F05EAAC 54200014 */ bnezl $at, .L7F05EB00 +/* 0935E0 7F05EAB0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0935E4 7F05EAB4 8C430008 */ lw $v1, 8($v0) +/* 0935E8 7F05EAB8 8C650038 */ lw $a1, 0x38($v1) +/* 0935EC 7F05EABC 50A00009 */ beql $a1, $zero, .L7F05EAE4 +/* 0935F0 7F05EAC0 8C65003C */ lw $a1, 0x3c($v1) +/* 0935F4 7F05EAC4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0935F8 7F05EAC8 AFA40018 */ sw $a0, 0x18($sp) +/* 0935FC 7F05EACC 8FAF001C */ lw $t7, 0x1c($sp) +/* 093600 7F05EAD0 8FA40018 */ lw $a0, 0x18($sp) +/* 093604 7F05EAD4 AC4F0000 */ sw $t7, ($v0) +/* 093608 7F05EAD8 8C980008 */ lw $t8, 8($a0) +/* 09360C 7F05EADC 8F030008 */ lw $v1, 8($t8) +/* 093610 7F05EAE0 8C65003C */ lw $a1, 0x3c($v1) +.L7F05EAE4: +/* 093614 7F05EAE4 50A00006 */ beql $a1, $zero, .L7F05EB00 +/* 093618 7F05EAE8 8FBF0014 */ lw $ra, 0x14($sp) +/* 09361C 7F05EAEC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 093620 7F05EAF0 00000000 */ nop +/* 093624 7F05EAF4 8FB9001C */ lw $t9, 0x1c($sp) +/* 093628 7F05EAF8 AC590000 */ sw $t9, ($v0) +/* 09362C 7F05EAFC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F05EB00: +/* 093630 7F05EB00 27BD0018 */ addiu $sp, $sp, 0x18 +/* 093634 7F05EB04 03E00008 */ jr $ra +/* 093638 7F05EB08 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05EB0C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05EB0C +/* 09363C 7F05EB0C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 093640 7F05EB10 AFBF001C */ sw $ra, 0x1c($sp) +/* 093644 7F05EB14 AFB10018 */ sw $s1, 0x18($sp) +/* 093648 7F05EB18 AFB00014 */ sw $s0, 0x14($sp) +/* 09364C 7F05EB1C AFA50024 */ sw $a1, 0x24($sp) +/* 093650 7F05EB20 AFA60028 */ sw $a2, 0x28($sp) +/* 093654 7F05EB24 AFA7002C */ sw $a3, 0x2c($sp) +/* 093658 7F05EB28 8C910010 */ lw $s1, 0x10($a0) +/* 09365C 7F05EB2C 00808025 */ move $s0, $a0 +/* 093660 7F05EB30 52200036 */ beql $s1, $zero, .L7F05EC0C +/* 093664 7F05EB34 8FBF001C */ lw $ra, 0x1c($sp) +/* 093668 7F05EB38 0FC0E929 */ jal set_current_objposdata_plus_0x28 +/* 09366C 7F05EB3C 02202025 */ move $a0, $s1 +/* 093670 7F05EB40 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 093674 7F05EB44 02202025 */ move $a0, $s1 +/* 093678 7F05EB48 8E0E0014 */ lw $t6, 0x14($s0) +/* 09367C 7F05EB4C 8FA5002C */ lw $a1, 0x2c($sp) +/* 093680 7F05EB50 0FC1629F */ jal matrix_scalar_multiply +/* 093684 7F05EB54 C5CC0014 */ lwc1 $f12, 0x14($t6) +/* 093688 7F05EB58 02002025 */ move $a0, $s0 +/* 09368C 7F05EB5C 8FA50024 */ lw $a1, 0x24($sp) +/* 093690 7F05EB60 8FA6002C */ lw $a2, 0x2c($sp) +/* 093694 7F05EB64 0FC101D5 */ jal sub_GAME_7F040754 +/* 093698 7F05EB68 8FA70028 */ lw $a3, 0x28($sp) +/* 09369C 7F05EB6C 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 0936A0 7F05EB70 02002025 */ move $a0, $s0 +/* 0936A4 7F05EB74 0FC10121 */ jal sub_GAME_7F040484 +/* 0936A8 7F05EB78 02002025 */ move $a0, $s0 +/* 0936AC 7F05EB7C 0FC0FF6A */ jal sub_GAME_7F03FDA8 +/* 0936B0 7F05EB80 02202025 */ move $a0, $s1 +/* 0936B4 7F05EB84 8E0F0064 */ lw $t7, 0x64($s0) +/* 0936B8 7F05EB88 31F80080 */ andi $t8, $t7, 0x80 +/* 0936BC 7F05EB8C 5300001F */ beql $t8, $zero, .L7F05EC0C +/* 0936C0 7F05EB90 8FBF001C */ lw $ra, 0x1c($sp) +/* 0936C4 7F05EB94 8E02006C */ lw $v0, 0x6c($s0) +/* 0936C8 7F05EB98 02202025 */ move $a0, $s1 +/* 0936CC 7F05EB9C 8C590000 */ lw $t9, ($v0) +/* 0936D0 7F05EBA0 37280041 */ ori $t0, $t9, 0x41 +/* 0936D4 7F05EBA4 AC480000 */ sw $t0, ($v0) +/* 0936D8 7F05EBA8 8E0A006C */ lw $t2, 0x6c($s0) +/* 0936DC 7F05EBAC 8FA90038 */ lw $t1, 0x38($sp) +/* 0936E0 7F05EBB0 0FC0FF85 */ jal sub_GAME_7F03FE14 +/* 0936E4 7F05EBB4 AD490088 */ sw $t1, 0x88($t2) +/* 0936E8 7F05EBB8 8E05006C */ lw $a1, 0x6c($s0) +/* 0936EC 7F05EBBC 8FA40034 */ lw $a0, 0x34($sp) +/* 0936F0 7F05EBC0 0FC16008 */ jal matrix_4x4_copy +/* 0936F4 7F05EBC4 24A50020 */ addiu $a1, $a1, 0x20 +/* 0936F8 7F05EBC8 8FA20030 */ lw $v0, 0x30($sp) +/* 0936FC 7F05EBCC 8E0B006C */ lw $t3, 0x6c($s0) +/* 093700 7F05EBD0 3C0F8005 */ lui $t7, %hi(D_80048380) +/* 093704 7F05EBD4 C4440000 */ lwc1 $f4, ($v0) +/* 093708 7F05EBD8 E5640004 */ swc1 $f4, 4($t3) +/* 09370C 7F05EBDC 8E0C006C */ lw $t4, 0x6c($s0) +/* 093710 7F05EBE0 C4460004 */ lwc1 $f6, 4($v0) +/* 093714 7F05EBE4 E5860008 */ swc1 $f6, 8($t4) +/* 093718 7F05EBE8 8E0D006C */ lw $t5, 0x6c($s0) +/* 09371C 7F05EBEC C4480008 */ lwc1 $f8, 8($v0) +/* 093720 7F05EBF0 E5A8000C */ swc1 $f8, 0xc($t5) +/* 093724 7F05EBF4 8E0E006C */ lw $t6, 0x6c($s0) +/* 093728 7F05EBF8 ADD000E4 */ sw $s0, 0xe4($t6) +/* 09372C 7F05EBFC 8E18006C */ lw $t8, 0x6c($s0) +/* 093730 7F05EC00 8DEF8380 */ lw $t7, %lo(D_80048380)($t7) +/* 093734 7F05EC04 AF0F00E8 */ sw $t7, 0xe8($t8) +/* 093738 7F05EC08 8FBF001C */ lw $ra, 0x1c($sp) +.L7F05EC0C: +/* 09373C 7F05EC0C 8FB00014 */ lw $s0, 0x14($sp) +/* 093740 7F05EC10 8FB10018 */ lw $s1, 0x18($sp) +/* 093744 7F05EC14 03E00008 */ jr $ra +/* 093748 7F05EC18 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05EC1C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05EC1C +/* 09374C 7F05EC1C 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 093750 7F05EC20 AFBF003C */ sw $ra, 0x3c($sp) +/* 093754 7F05EC24 AFB20038 */ sw $s2, 0x38($sp) +/* 093758 7F05EC28 AFB10034 */ sw $s1, 0x34($sp) +/* 09375C 7F05EC2C AFB00030 */ sw $s0, 0x30($sp) +/* 093760 7F05EC30 AFA600E0 */ sw $a2, 0xe0($sp) +/* 093764 7F05EC34 AFA700E4 */ sw $a3, 0xe4($sp) +/* 093768 7F05EC38 8C820010 */ lw $v0, 0x10($a0) +/* 09376C 7F05EC3C 00A08825 */ move $s1, $a1 +/* 093770 7F05EC40 00809025 */ move $s2, $a0 +/* 093774 7F05EC44 50400072 */ beql $v0, $zero, .L7F05EE10 +/* 093778 7F05EC48 8FBF003C */ lw $ra, 0x3c($sp) +/* 09377C 7F05EC4C 0FC225E6 */ jal get_curplayer_positiondata +/* 093780 7F05EC50 00000000 */ nop +/* 093784 7F05EC54 3C048008 */ lui $a0, %hi(pPlayer) +/* 093788 7F05EC58 00408025 */ move $s0, $v0 +/* 09378C 7F05EC5C 0FC225DE */ jal sub_GAME_7F089778 +/* 093790 7F05EC60 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 093794 7F05EC64 AFA000B0 */ sw $zero, 0xb0($sp) +/* 093798 7F05EC68 C60C000C */ lwc1 $f12, 0xc($s0) +/* 09379C 7F05EC6C C6220004 */ lwc1 $f2, 4($s1) +/* 0937A0 7F05EC70 02002025 */ move $a0, $s0 +/* 0937A4 7F05EC74 00002825 */ move $a1, $zero +/* 0937A8 7F05EC78 460C103C */ c.lt.s $f2, $f12 +/* 0937AC 7F05EC7C 00000000 */ nop +/* 0937B0 7F05EC80 45020005 */ bc1fl .L7F05EC98 +/* 0937B4 7F05EC84 46001381 */ sub.s $f14, $f2, $f0 +/* 0937B8 7F05EC88 46006381 */ sub.s $f14, $f12, $f0 +/* 0937BC 7F05EC8C 10000003 */ b .L7F05EC9C +/* 0937C0 7F05EC90 46001401 */ sub.s $f16, $f2, $f0 +/* 0937C4 7F05EC94 46001381 */ sub.s $f14, $f2, $f0 +.L7F05EC98: +/* 0937C8 7F05EC98 46006401 */ sub.s $f16, $f12, $f0 +.L7F05EC9C: +/* 0937CC 7F05EC9C 8E0E0014 */ lw $t6, 0x14($s0) +/* 0937D0 7F05ECA0 E7B000B4 */ swc1 $f16, 0xb4($sp) +/* 0937D4 7F05ECA4 E7AE00B8 */ swc1 $f14, 0xb8($sp) +/* 0937D8 7F05ECA8 0FC2280F */ jal sub_GAME_7F08A03C +/* 0937DC 7F05ECAC AFAE00C4 */ sw $t6, 0xc4($sp) +/* 0937E0 7F05ECB0 C6240008 */ lwc1 $f4, 8($s1) +/* 0937E4 7F05ECB4 8E050008 */ lw $a1, 8($s0) +/* 0937E8 7F05ECB8 8E060010 */ lw $a2, 0x10($s0) +/* 0937EC 7F05ECBC 8E270000 */ lw $a3, ($s1) +/* 0937F0 7F05ECC0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0937F4 7F05ECC4 C7AE00B8 */ lwc1 $f14, 0xb8($sp) +/* 0937F8 7F05ECC8 C7B000B4 */ lwc1 $f16, 0xb4($sp) +/* 0937FC 7F05ECCC 44814000 */ mtc1 $at, $f8 +/* 093800 7F05ECD0 44803000 */ mtc1 $zero, $f6 +/* 093804 7F05ECD4 240F001F */ li $t7, 31 +/* 093808 7F05ECD8 AFAF0014 */ sw $t7, 0x14($sp) +/* 09380C 7F05ECDC 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 093810 7F05ECE0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 093814 7F05ECE4 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 093818 7F05ECE8 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 09381C 7F05ECEC E7A80024 */ swc1 $f8, 0x24($sp) +/* 093820 7F05ECF0 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 093824 7F05ECF4 E7A60020 */ swc1 $f6, 0x20($sp) +/* 093828 7F05ECF8 10400008 */ beqz $v0, .L7F05ED1C +/* 09382C 7F05ECFC 02002025 */ move $a0, $s0 +/* 093830 7F05ED00 C62A0000 */ lwc1 $f10, ($s1) +/* 093834 7F05ED04 E7AA00C8 */ swc1 $f10, 0xc8($sp) +/* 093838 7F05ED08 C6320004 */ lwc1 $f18, 4($s1) +/* 09383C 7F05ED0C E7B200CC */ swc1 $f18, 0xcc($sp) +/* 093840 7F05ED10 C6240008 */ lwc1 $f4, 8($s1) +/* 093844 7F05ED14 1000000B */ b .L7F05ED44 +/* 093848 7F05ED18 E7A400D0 */ swc1 $f4, 0xd0($sp) +.L7F05ED1C: +/* 09384C 7F05ED1C 8E180014 */ lw $t8, 0x14($s0) +/* 093850 7F05ED20 24190001 */ li $t9, 1 +/* 093854 7F05ED24 AFB800C4 */ sw $t8, 0xc4($sp) +/* 093858 7F05ED28 C6060008 */ lwc1 $f6, 8($s0) +/* 09385C 7F05ED2C E7A600C8 */ swc1 $f6, 0xc8($sp) +/* 093860 7F05ED30 C608000C */ lwc1 $f8, 0xc($s0) +/* 093864 7F05ED34 E7A800CC */ swc1 $f8, 0xcc($sp) +/* 093868 7F05ED38 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 09386C 7F05ED3C AFB900B0 */ sw $t9, 0xb0($sp) +/* 093870 7F05ED40 E7AA00D0 */ swc1 $f10, 0xd0($sp) +.L7F05ED44: +/* 093874 7F05ED44 0FC2280F */ jal sub_GAME_7F08A03C +/* 093878 7F05ED48 24050001 */ li $a1, 1 +/* 09387C 7F05ED4C 8FA800E4 */ lw $t0, 0xe4($sp) +/* 093880 7F05ED50 8FA900E8 */ lw $t1, 0xe8($sp) +/* 093884 7F05ED54 02402025 */ move $a0, $s2 +/* 093888 7F05ED58 27A500C8 */ addiu $a1, $sp, 0xc8 +/* 09388C 7F05ED5C 8FA600C4 */ lw $a2, 0xc4($sp) +/* 093890 7F05ED60 8FA700E0 */ lw $a3, 0xe0($sp) +/* 093894 7F05ED64 AFB00018 */ sw $s0, 0x18($sp) +/* 093898 7F05ED68 AFA80010 */ sw $t0, 0x10($sp) +/* 09389C 7F05ED6C 0FC17AC3 */ jal sub_GAME_7F05EB0C +/* 0938A0 7F05ED70 AFA90014 */ sw $t1, 0x14($sp) +/* 0938A4 7F05ED74 8E4A0064 */ lw $t2, 0x64($s2) +/* 0938A8 7F05ED78 8FAC00B0 */ lw $t4, 0xb0($sp) +/* 0938AC 7F05ED7C 314B0080 */ andi $t3, $t2, 0x80 +/* 0938B0 7F05ED80 51600023 */ beql $t3, $zero, .L7F05EE10 +/* 0938B4 7F05ED84 8FBF003C */ lw $ra, 0x3c($sp) +/* 0938B8 7F05ED88 1180000E */ beqz $t4, .L7F05EDC4 +/* 0938BC 7F05ED8C 00000000 */ nop +/* 0938C0 7F05ED90 8E42006C */ lw $v0, 0x6c($s2) +/* 0938C4 7F05ED94 8C4D0000 */ lw $t5, ($v0) +/* 0938C8 7F05ED98 35AE0100 */ ori $t6, $t5, 0x100 +/* 0938CC 7F05ED9C AC4E0000 */ sw $t6, ($v0) +/* 0938D0 7F05EDA0 8E4F006C */ lw $t7, 0x6c($s2) +/* 0938D4 7F05EDA4 C6320000 */ lwc1 $f18, ($s1) +/* 0938D8 7F05EDA8 E5F200D4 */ swc1 $f18, 0xd4($t7) +/* 0938DC 7F05EDAC 8E58006C */ lw $t8, 0x6c($s2) +/* 0938E0 7F05EDB0 C6240004 */ lwc1 $f4, 4($s1) +/* 0938E4 7F05EDB4 E70400D8 */ swc1 $f4, 0xd8($t8) +/* 0938E8 7F05EDB8 8E59006C */ lw $t9, 0x6c($s2) +/* 0938EC 7F05EDBC C6260008 */ lwc1 $f6, 8($s1) +/* 0938F0 7F05EDC0 E72600DC */ swc1 $f6, 0xdc($t9) +.L7F05EDC4: +/* 0938F4 7F05EDC4 0FC227E6 */ jal get_cur_players_room +/* 0938F8 7F05EDC8 00000000 */ nop +/* 0938FC 7F05EDCC 240800FF */ li $t0, 255 +/* 093900 7F05EDD0 A3A200A8 */ sb $v0, 0xa8($sp) +/* 093904 7F05EDD4 0FC22800 */ jal get_BONDdata_position3 +/* 093908 7F05EDD8 A3A800A9 */ sb $t0, 0xa9($sp) +/* 09390C 7F05EDDC 8E47006C */ lw $a3, 0x6c($s2) +/* 093910 7F05EDE0 27A90054 */ addiu $t1, $sp, 0x54 +/* 093914 7F05EDE4 27AA0050 */ addiu $t2, $sp, 0x50 +/* 093918 7F05EDE8 240B0014 */ li $t3, 20 +/* 09391C 7F05EDEC AFAB0018 */ sw $t3, 0x18($sp) +/* 093920 7F05EDF0 AFAA0014 */ sw $t2, 0x14($sp) +/* 093924 7F05EDF4 AFA90010 */ sw $t1, 0x10($sp) +/* 093928 7F05EDF8 00402025 */ move $a0, $v0 +/* 09392C 7F05EDFC 27A500C8 */ addiu $a1, $sp, 0xc8 +/* 093930 7F05EE00 27A600A8 */ addiu $a2, $sp, 0xa8 +/* 093934 7F05EE04 0FC2D2AD */ jal sub_GAME_7F0B4AB4 +/* 093938 7F05EE08 24E700CC */ addiu $a3, $a3, 0xcc +/* 09393C 7F05EE0C 8FBF003C */ lw $ra, 0x3c($sp) +.L7F05EE10: +/* 093940 7F05EE10 8FB00030 */ lw $s0, 0x30($sp) +/* 093944 7F05EE14 8FB10034 */ lw $s1, 0x34($sp) +/* 093948 7F05EE18 8FB20038 */ lw $s2, 0x38($sp) +/* 09394C 7F05EE1C 03E00008 */ jr $ra +/* 093950 7F05EE20 27BD00D8 */ addiu $sp, $sp, 0xd8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05EE24(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053C8C +.word 0x41855555 /*16.666666*/ +glabel D_80053C90 +.word 0x3e99999a /*0.30000001*/ +glabel D_80053C94 +.word 0x3e088888 /*0.13333333*/ +.text +glabel sub_GAME_7F05EE24 +/* 093954 7F05EE24 27BDFEC0 */ addiu $sp, $sp, -0x140 +/* 093958 7F05EE28 AFBF0024 */ sw $ra, 0x24($sp) +/* 09395C 7F05EE2C AFB00020 */ sw $s0, 0x20($sp) +/* 093960 7F05EE30 0FC225E6 */ jal get_curplayer_positiondata +/* 093964 7F05EE34 AFA40140 */ sw $a0, 0x140($sp) +/* 093968 7F05EE38 0FC2280B */ jal get_BONDdata_field408 +/* 09396C 7F05EE3C 00408025 */ move $s0, $v0 +/* 093970 7F05EE40 AFA20080 */ sw $v0, 0x80($sp) +/* 093974 7F05EE44 0FC17674 */ jal get_item_in_hand +/* 093978 7F05EE48 8FA40140 */ lw $a0, 0x140($sp) +/* 09397C 7F05EE4C AFA20038 */ sw $v0, 0x38($sp) +/* 093980 7F05EE50 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 093984 7F05EE54 0FC15F05 */ jal sub_GAME_7F057C14 +/* 093988 7F05EE58 27A500FC */ addiu $a1, $sp, 0xfc +/* 09398C 7F05EE5C 27A40094 */ addiu $a0, $sp, 0x94 +/* 093990 7F05EE60 27A50088 */ addiu $a1, $sp, 0x88 +/* 093994 7F05EE64 0FC1A073 */ jal sub_GAME_7F0681CC +/* 093998 7F05EE68 8FA60140 */ lw $a2, 0x140($sp) +/* 09399C 7F05EE6C 0FC1E111 */ jal sub_GAME_7F078444 +/* 0939A0 7F05EE70 00000000 */ nop +/* 0939A4 7F05EE74 00402025 */ move $a0, $v0 +/* 0939A8 7F05EE78 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0939AC 7F05EE7C 27A50088 */ addiu $a1, $sp, 0x88 +/* 0939B0 7F05EE80 3C018005 */ lui $at, %hi(D_80053C8C) +/* 0939B4 7F05EE84 C4203C8C */ lwc1 $f0, %lo(D_80053C8C)($at) +/* 0939B8 7F05EE88 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0939BC 7F05EE8C C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 0939C0 7F05EE90 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0939C4 7F05EE94 46002182 */ mul.s $f6, $f4, $f0 +/* 0939C8 7F05EE98 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 0939CC 7F05EE9C 44818000 */ mtc1 $at, $f16 +/* 0939D0 7F05EEA0 46004282 */ mul.s $f10, $f8, $f0 +/* 0939D4 7F05EEA4 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 0939D8 7F05EEA8 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 0939DC 7F05EEAC 46002202 */ mul.s $f8, $f4, $f0 +/* 0939E0 7F05EEB0 E7A600F0 */ swc1 $f6, 0xf0($sp) +/* 0939E4 7F05EEB4 8FA20080 */ lw $v0, 0x80($sp) +/* 0939E8 7F05EEB8 46105480 */ add.s $f18, $f10, $f16 +/* 0939EC 7F05EEBC E7A800F8 */ swc1 $f8, 0xf8($sp) +/* 0939F0 7F05EEC0 19C00015 */ blez $t6, .L7F05EF18 +/* 0939F4 7F05EEC4 E7B200F4 */ swc1 $f18, 0xf4($sp) +/* 0939F8 7F05EEC8 C60A0008 */ lwc1 $f10, 8($s0) +/* 0939FC 7F05EECC C4500000 */ lwc1 $f16, ($v0) +/* 093A00 7F05EED0 3C018005 */ lui $at, %hi(global_timer_delta) +/* 093A04 7F05EED4 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 093A08 7F05EED8 46105101 */ sub.s $f4, $f10, $f16 +/* 093A0C 7F05EEDC 46002283 */ div.s $f10, $f4, $f0 +/* 093A10 7F05EEE0 460A3400 */ add.s $f16, $f6, $f10 +/* 093A14 7F05EEE4 E7B000F0 */ swc1 $f16, 0xf0($sp) +/* 093A18 7F05EEE8 C4460004 */ lwc1 $f6, 4($v0) +/* 093A1C 7F05EEEC C604000C */ lwc1 $f4, 0xc($s0) +/* 093A20 7F05EEF0 46062281 */ sub.s $f10, $f4, $f6 +/* 093A24 7F05EEF4 46005403 */ div.s $f16, $f10, $f0 +/* 093A28 7F05EEF8 46109100 */ add.s $f4, $f18, $f16 +/* 093A2C 7F05EEFC E7A400F4 */ swc1 $f4, 0xf4($sp) +/* 093A30 7F05EF00 C44A0008 */ lwc1 $f10, 8($v0) +/* 093A34 7F05EF04 C6060010 */ lwc1 $f6, 0x10($s0) +/* 093A38 7F05EF08 460A3481 */ sub.s $f18, $f6, $f10 +/* 093A3C 7F05EF0C 46009403 */ div.s $f16, $f18, $f0 +/* 093A40 7F05EF10 46104100 */ add.s $f4, $f8, $f16 +/* 093A44 7F05EF14 E7A400F8 */ swc1 $f4, 0xf8($sp) +.L7F05EF18: +/* 093A48 7F05EF18 8FB00140 */ lw $s0, 0x140($sp) +/* 093A4C 7F05EF1C 3C188008 */ lui $t8, %hi(pPlayer) +/* 093A50 7F05EF20 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 093A54 7F05EF24 001078C0 */ sll $t7, $s0, 3 +/* 093A58 7F05EF28 01F07823 */ subu $t7, $t7, $s0 +/* 093A5C 7F05EF2C 000F7880 */ sll $t7, $t7, 2 +/* 093A60 7F05EF30 01F07821 */ addu $t7, $t7, $s0 +/* 093A64 7F05EF34 000F7880 */ sll $t7, $t7, 2 +/* 093A68 7F05EF38 01F07821 */ addu $t7, $t7, $s0 +/* 093A6C 7F05EF3C 000F80C0 */ sll $s0, $t7, 3 +/* 093A70 7F05EF40 03101021 */ addu $v0, $t8, $s0 +/* 093A74 7F05EF44 C4460B08 */ lwc1 $f6, 0xb08($v0) +/* 093A78 7F05EF48 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 093A7C 7F05EF4C E7A600E0 */ swc1 $f6, 0xe0($sp) +/* 093A80 7F05EF50 C44A0B0C */ lwc1 $f10, 0xb0c($v0) +/* 093A84 7F05EF54 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 093A88 7F05EF58 C4520B10 */ lwc1 $f18, 0xb10($v0) +/* 093A8C 7F05EF5C 0FC15FF4 */ jal matrix_4x4_set_identity +/* 093A90 7F05EF60 E7B200E8 */ swc1 $f18, 0xe8($sp) +/* 093A94 7F05EF64 3C198008 */ lui $t9, %hi(pPlayer) +/* 093A98 7F05EF68 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 093A9C 7F05EF6C 27A50040 */ addiu $a1, $sp, 0x40 +/* 093AA0 7F05EF70 03302021 */ addu $a0, $t9, $s0 +/* 093AA4 7F05EF74 0FC16008 */ jal matrix_4x4_copy +/* 093AA8 7F05EF78 24840AD8 */ addiu $a0, $a0, 0xad8 +/* 093AAC 7F05EF7C 44800000 */ mtc1 $zero, $f0 +/* 093AB0 7F05EF80 27A40040 */ addiu $a0, $sp, 0x40 +/* 093AB4 7F05EF84 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 093AB8 7F05EF88 E7A00070 */ swc1 $f0, 0x70($sp) +/* 093ABC 7F05EF8C E7A00074 */ swc1 $f0, 0x74($sp) +/* 093AC0 7F05EF90 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 093AC4 7F05EF94 E7A00078 */ swc1 $f0, 0x78($sp) +/* 093AC8 7F05EF98 240400C4 */ li $a0, 196 +/* 093ACC 7F05EF9C 0FC1481B */ jal create_new_item_instance_of_model +/* 093AD0 7F05EFA0 8FA50038 */ lw $a1, 0x38($sp) +/* 093AD4 7F05EFA4 10400038 */ beqz $v0, .L7F05F088 +/* 093AD8 7F05EFA8 00408025 */ move $s0, $v0 +/* 093ADC 7F05EFAC 3C088008 */ lui $t0, %hi(pPlayer) +/* 093AE0 7F05EFB0 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 093AE4 7F05EFB4 240A00F0 */ li $t2, 240 +/* 093AE8 7F05EFB8 8D09105C */ lw $t1, 0x105c($t0) +/* 093AEC 7F05EFBC 01495823 */ subu $t3, $t2, $t1 +/* 093AF0 7F05EFC0 A44B0082 */ sh $t3, 0x82($v0) +/* 093AF4 7F05EFC4 844C0082 */ lh $t4, 0x82($v0) +/* 093AF8 7F05EFC8 05830003 */ bgezl $t4, .L7F05EFD8 +/* 093AFC 7F05EFCC 8E0D0064 */ lw $t5, 0x64($s0) +/* 093B00 7F05EFD0 A4400082 */ sh $zero, 0x82($v0) +/* 093B04 7F05EFD4 8E0D0064 */ lw $t5, 0x64($s0) +.L7F05EFD8: +/* 093B08 7F05EFD8 3C01FFF9 */ lui $at, (0xFFF9FFFF >> 16) # lui $at, 0xfff9 +/* 093B0C 7F05EFDC 3421FFFF */ ori $at, (0xFFF9FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 093B10 7F05EFE0 01A17024 */ and $t6, $t5, $at +/* 093B14 7F05EFE4 0FC26C54 */ jal get_cur_playernum +/* 093B18 7F05EFE8 AE0E0064 */ sw $t6, 0x64($s0) +/* 093B1C 7F05EFEC 8E0F0064 */ lw $t7, 0x64($s0) +/* 093B20 7F05EFF0 0002C440 */ sll $t8, $v0, 0x11 +/* 093B24 7F05EFF4 27A800FC */ addiu $t0, $sp, 0xfc +/* 093B28 7F05EFF8 01F8C825 */ or $t9, $t7, $t8 +/* 093B2C 7F05EFFC AE190064 */ sw $t9, 0x64($s0) +/* 093B30 7F05F000 AFA80010 */ sw $t0, 0x10($sp) +/* 093B34 7F05F004 02002025 */ move $a0, $s0 +/* 093B38 7F05F008 27A500E0 */ addiu $a1, $sp, 0xe0 +/* 093B3C 7F05F00C 27A600A0 */ addiu $a2, $sp, 0xa0 +/* 093B40 7F05F010 0FC17B07 */ jal sub_GAME_7F05EC1C +/* 093B44 7F05F014 27A700F0 */ addiu $a3, $sp, 0xf0 +/* 093B48 7F05F018 8E0A0064 */ lw $t2, 0x64($s0) +/* 093B4C 7F05F01C 31490080 */ andi $t1, $t2, 0x80 +/* 093B50 7F05F020 5120001A */ beql $t1, $zero, .L7F05F08C +/* 093B54 7F05F024 8FBF0024 */ lw $ra, 0x24($sp) +/* 093B58 7F05F028 8E02006C */ lw $v0, 0x6c($s0) +/* 093B5C 7F05F02C 3C018005 */ lui $at, %hi(D_80053C90) +/* 093B60 7F05F030 240F003C */ li $t7, 60 +/* 093B64 7F05F034 8C4B0000 */ lw $t3, ($v0) +/* 093B68 7F05F038 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 093B6C 7F05F03C 24050004 */ li $a1, 4 +/* 093B70 7F05F040 356C0002 */ ori $t4, $t3, 2 +/* 093B74 7F05F044 AC4C0000 */ sw $t4, ($v0) +/* 093B78 7F05F048 8E0D006C */ lw $t5, 0x6c($s0) +/* 093B7C 7F05F04C C4283C90 */ lwc1 $f8, %lo(D_80053C90)($at) +/* 093B80 7F05F050 3C018005 */ lui $at, %hi(D_80053C94) +/* 093B84 7F05F054 00003025 */ move $a2, $zero +/* 093B88 7F05F058 E5A8008C */ swc1 $f8, 0x8c($t5) +/* 093B8C 7F05F05C 8E0E006C */ lw $t6, 0x6c($s0) +/* 093B90 7F05F060 C4303C94 */ lwc1 $f16, %lo(D_80053C94)($at) +/* 093B94 7F05F064 E5D00094 */ swc1 $f16, 0x94($t6) +/* 093B98 7F05F068 8E18006C */ lw $t8, 0x6c($s0) +/* 093B9C 7F05F06C AF0F00BC */ sw $t7, 0xbc($t8) +/* 093BA0 7F05F070 0C002382 */ jal play_sfx_a1 +/* 093BA4 7F05F074 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 093BA8 7F05F078 10400003 */ beqz $v0, .L7F05F088 +/* 093BAC 7F05F07C 00402025 */ move $a0, $v0 +/* 093BB0 7F05F080 0FC14E84 */ jal sub_GAME_7F053A10 +/* 093BB4 7F05F084 26050058 */ addiu $a1, $s0, 0x58 +.L7F05F088: +/* 093BB8 7F05F088 8FBF0024 */ lw $ra, 0x24($sp) +.L7F05F08C: +/* 093BBC 7F05F08C 8FB00020 */ lw $s0, 0x20($sp) +/* 093BC0 7F05F090 27BD0140 */ addiu $sp, $sp, 0x140 +/* 093BC4 7F05F094 03E00008 */ jr $ra +/* 093BC8 7F05F098 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05F09C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053C98 +.word 0x4096cbe4 /*4.712389*/ +glabel D_80053C9C +.word 0x40490fdb /*3.1415927*/ +glabel D_80053CA0 +.word 0x4141999a /*12.1*/ +glabel D_80053CA4 +.word 0x3dcccccd /*0.1*/ +.text +glabel sub_GAME_7F05F09C +/* 093BCC 7F05F09C 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 093BD0 7F05F0A0 AFBF001C */ sw $ra, 0x1c($sp) +/* 093BD4 7F05F0A4 0FC225E6 */ jal get_curplayer_positiondata +/* 093BD8 7F05F0A8 AFA40130 */ sw $a0, 0x130($sp) +/* 093BDC 7F05F0AC 0FC2280B */ jal get_BONDdata_field408 +/* 093BE0 7F05F0B0 AFA20034 */ sw $v0, 0x34($sp) +/* 093BE4 7F05F0B4 AFA20030 */ sw $v0, 0x30($sp) +/* 093BE8 7F05F0B8 27A400E0 */ addiu $a0, $sp, 0xe0 +/* 093BEC 7F05F0BC 0FC15F05 */ jal sub_GAME_7F057C14 +/* 093BF0 7F05F0C0 27A500EC */ addiu $a1, $sp, 0xec +/* 093BF4 7F05F0C4 27A40084 */ addiu $a0, $sp, 0x84 +/* 093BF8 7F05F0C8 27A50078 */ addiu $a1, $sp, 0x78 +/* 093BFC 7F05F0CC 0FC1A073 */ jal sub_GAME_7F0681CC +/* 093C00 7F05F0D0 8FA60130 */ lw $a2, 0x130($sp) +/* 093C04 7F05F0D4 0FC1E111 */ jal sub_GAME_7F078444 +/* 093C08 7F05F0D8 00000000 */ nop +/* 093C0C 7F05F0DC 00402025 */ move $a0, $v0 +/* 093C10 7F05F0E0 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 093C14 7F05F0E4 27A50078 */ addiu $a1, $sp, 0x78 +/* 093C18 7F05F0E8 3C0141C8 */ li $at, 0x41C80000 # 25.000000 +/* 093C1C 7F05F0EC 44810000 */ mtc1 $at, $f0 +/* 093C20 7F05F0F0 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 093C24 7F05F0F4 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 093C28 7F05F0F8 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 093C2C 7F05F0FC 46002182 */ mul.s $f6, $f4, $f0 +/* 093C30 7F05F100 C7A40080 */ lwc1 $f4, 0x80($sp) +/* 093C34 7F05F104 44818000 */ mtc1 $at, $f16 +/* 093C38 7F05F108 46004282 */ mul.s $f10, $f8, $f0 +/* 093C3C 7F05F10C 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 093C40 7F05F110 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 093C44 7F05F114 46002202 */ mul.s $f8, $f4, $f0 +/* 093C48 7F05F118 E7A600E0 */ swc1 $f6, 0xe0($sp) +/* 093C4C 7F05F11C 46105480 */ add.s $f18, $f10, $f16 +/* 093C50 7F05F120 E7A800E8 */ swc1 $f8, 0xe8($sp) +/* 093C54 7F05F124 19C00017 */ blez $t6, .L7F05F184 +/* 093C58 7F05F128 E7B200E4 */ swc1 $f18, 0xe4($sp) +/* 093C5C 7F05F12C 8FA20030 */ lw $v0, 0x30($sp) +/* 093C60 7F05F130 8FA30034 */ lw $v1, 0x34($sp) +/* 093C64 7F05F134 3C018005 */ lui $at, %hi(global_timer_delta) +/* 093C68 7F05F138 C4500000 */ lwc1 $f16, ($v0) +/* 093C6C 7F05F13C C46A0008 */ lwc1 $f10, 8($v1) +/* 093C70 7F05F140 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 093C74 7F05F144 46105101 */ sub.s $f4, $f10, $f16 +/* 093C78 7F05F148 46002283 */ div.s $f10, $f4, $f0 +/* 093C7C 7F05F14C 460A3400 */ add.s $f16, $f6, $f10 +/* 093C80 7F05F150 E7B000E0 */ swc1 $f16, 0xe0($sp) +/* 093C84 7F05F154 C4460004 */ lwc1 $f6, 4($v0) +/* 093C88 7F05F158 C464000C */ lwc1 $f4, 0xc($v1) +/* 093C8C 7F05F15C 46062281 */ sub.s $f10, $f4, $f6 +/* 093C90 7F05F160 46005403 */ div.s $f16, $f10, $f0 +/* 093C94 7F05F164 46109100 */ add.s $f4, $f18, $f16 +/* 093C98 7F05F168 E7A400E4 */ swc1 $f4, 0xe4($sp) +/* 093C9C 7F05F16C C44A0008 */ lwc1 $f10, 8($v0) +/* 093CA0 7F05F170 C4660010 */ lwc1 $f6, 0x10($v1) +/* 093CA4 7F05F174 460A3481 */ sub.s $f18, $f6, $f10 +/* 093CA8 7F05F178 46009403 */ div.s $f16, $f18, $f0 +/* 093CAC 7F05F17C 46104100 */ add.s $f4, $f8, $f16 +/* 093CB0 7F05F180 E7A400E8 */ swc1 $f4, 0xe8($sp) +.L7F05F184: +/* 093CB4 7F05F184 8FA30130 */ lw $v1, 0x130($sp) +/* 093CB8 7F05F188 3C188008 */ lui $t8, %hi(pPlayer) +/* 093CBC 7F05F18C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 093CC0 7F05F190 000378C0 */ sll $t7, $v1, 3 +/* 093CC4 7F05F194 01E37823 */ subu $t7, $t7, $v1 +/* 093CC8 7F05F198 000F7880 */ sll $t7, $t7, 2 +/* 093CCC 7F05F19C 01E37821 */ addu $t7, $t7, $v1 +/* 093CD0 7F05F1A0 000F7880 */ sll $t7, $t7, 2 +/* 093CD4 7F05F1A4 01E37821 */ addu $t7, $t7, $v1 +/* 093CD8 7F05F1A8 000F78C0 */ sll $t7, $t7, 3 +/* 093CDC 7F05F1AC 030F1021 */ addu $v0, $t8, $t7 +/* 093CE0 7F05F1B0 C4460B08 */ lwc1 $f6, 0xb08($v0) +/* 093CE4 7F05F1B4 3C018005 */ lui $at, %hi(D_80053C98) +/* 093CE8 7F05F1B8 C42C3C98 */ lwc1 $f12, %lo(D_80053C98)($at) +/* 093CEC 7F05F1BC E7A600D0 */ swc1 $f6, 0xd0($sp) +/* 093CF0 7F05F1C0 C44A0B0C */ lwc1 $f10, 0xb0c($v0) +/* 093CF4 7F05F1C4 27A50090 */ addiu $a1, $sp, 0x90 +/* 093CF8 7F05F1C8 E7AA00D4 */ swc1 $f10, 0xd4($sp) +/* 093CFC 7F05F1CC C4520B10 */ lwc1 $f18, 0xb10($v0) +/* 093D00 7F05F1D0 AFAF0028 */ sw $t7, 0x28($sp) +/* 093D04 7F05F1D4 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 093D08 7F05F1D8 E7B200D8 */ swc1 $f18, 0xd8($sp) +/* 093D0C 7F05F1DC 3C018005 */ lui $at, %hi(D_80053C9C) +/* 093D10 7F05F1E0 C42C3C9C */ lwc1 $f12, %lo(D_80053C9C)($at) +/* 093D14 7F05F1E4 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 093D18 7F05F1E8 27A50038 */ addiu $a1, $sp, 0x38 +/* 093D1C 7F05F1EC 27A40038 */ addiu $a0, $sp, 0x38 +/* 093D20 7F05F1F0 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 093D24 7F05F1F4 27A50090 */ addiu $a1, $sp, 0x90 +/* 093D28 7F05F1F8 3C198008 */ lui $t9, %hi(pPlayer) +/* 093D2C 7F05F1FC 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 093D30 7F05F200 8FA80028 */ lw $t0, 0x28($sp) +/* 093D34 7F05F204 27A50038 */ addiu $a1, $sp, 0x38 +/* 093D38 7F05F208 03282021 */ addu $a0, $t9, $t0 +/* 093D3C 7F05F20C 0FC16008 */ jal matrix_4x4_copy +/* 093D40 7F05F210 24840AD8 */ addiu $a0, $a0, 0xad8 +/* 093D44 7F05F214 44800000 */ mtc1 $zero, $f0 +/* 093D48 7F05F218 27A40038 */ addiu $a0, $sp, 0x38 +/* 093D4C 7F05F21C 27A50090 */ addiu $a1, $sp, 0x90 +/* 093D50 7F05F220 E7A00068 */ swc1 $f0, 0x68($sp) +/* 093D54 7F05F224 E7A0006C */ swc1 $f0, 0x6c($sp) +/* 093D58 7F05F228 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 093D5C 7F05F22C E7A00070 */ swc1 $f0, 0x70($sp) +/* 093D60 7F05F230 0C002914 */ jal get_random_value +/* 093D64 7F05F234 00000000 */ nop +/* 093D68 7F05F238 44824000 */ mtc1 $v0, $f8 +/* 093D6C 7F05F23C 27A400EC */ addiu $a0, $sp, 0xec +/* 093D70 7F05F240 04410005 */ bgez $v0, .L7F05F258 +/* 093D74 7F05F244 46804420 */ cvt.s.w $f16, $f8 +/* 093D78 7F05F248 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 093D7C 7F05F24C 44812000 */ mtc1 $at, $f4 +/* 093D80 7F05F250 00000000 */ nop +/* 093D84 7F05F254 46048400 */ add.s $f16, $f16, $f4 +.L7F05F258: +/* 093D88 7F05F258 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 093D8C 7F05F25C 44813000 */ mtc1 $at, $f6 +/* 093D90 7F05F260 3C018005 */ lui $at, %hi(D_80053CA0) +/* 093D94 7F05F264 C4323CA0 */ lwc1 $f18, %lo(D_80053CA0)($at) +/* 093D98 7F05F268 46068282 */ mul.s $f10, $f16, $f6 +/* 093D9C 7F05F26C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 093DA0 7F05F270 44812000 */ mtc1 $at, $f4 +/* 093DA4 7F05F274 C7A600A8 */ lwc1 $f6, 0xa8($sp) +/* 093DA8 7F05F278 8FA600A0 */ lw $a2, 0xa0($sp) +/* 093DAC 7F05F27C 8FA700A4 */ lw $a3, 0xa4($sp) +/* 093DB0 7F05F280 E7A60010 */ swc1 $f6, 0x10($sp) +/* 093DB4 7F05F284 46125200 */ add.s $f8, $f10, $f18 +/* 093DB8 7F05F288 46082403 */ div.s $f16, $f4, $f8 +/* 093DBC 7F05F28C 44058000 */ mfc1 $a1, $f16 +/* 093DC0 7F05F290 0C005DC8 */ jal guRotateF +/* 093DC4 7F05F294 00000000 */ nop +/* 093DC8 7F05F298 240400BA */ li $a0, 186 +/* 093DCC 7F05F29C 0FC1481B */ jal create_new_item_instance_of_model +/* 093DD0 7F05F2A0 24050003 */ li $a1, 3 +/* 093DD4 7F05F2A4 50400029 */ beql $v0, $zero, .L7F05F34C +/* 093DD8 7F05F2A8 8FBF001C */ lw $ra, 0x1c($sp) +/* 093DDC 7F05F2AC 8C490064 */ lw $t1, 0x64($v0) +/* 093DE0 7F05F2B0 3C01FFF9 */ lui $at, (0xFFF9FFFF >> 16) # lui $at, 0xfff9 +/* 093DE4 7F05F2B4 3421FFFF */ ori $at, (0xFFF9FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 093DE8 7F05F2B8 01215024 */ and $t2, $t1, $at +/* 093DEC 7F05F2BC AC4A0064 */ sw $t2, 0x64($v0) +/* 093DF0 7F05F2C0 0FC26C54 */ jal get_cur_playernum +/* 093DF4 7F05F2C4 AFA2012C */ sw $v0, 0x12c($sp) +/* 093DF8 7F05F2C8 8FA4012C */ lw $a0, 0x12c($sp) +/* 093DFC 7F05F2CC 00026440 */ sll $t4, $v0, 0x11 +/* 093E00 7F05F2D0 27AE00EC */ addiu $t6, $sp, 0xec +/* 093E04 7F05F2D4 8C8B0064 */ lw $t3, 0x64($a0) +/* 093E08 7F05F2D8 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 093E0C 7F05F2DC 27A60090 */ addiu $a2, $sp, 0x90 +/* 093E10 7F05F2E0 016C6825 */ or $t5, $t3, $t4 +/* 093E14 7F05F2E4 AC8D0064 */ sw $t5, 0x64($a0) +/* 093E18 7F05F2E8 AFAE0010 */ sw $t6, 0x10($sp) +/* 093E1C 7F05F2EC 0FC17B07 */ jal sub_GAME_7F05EC1C +/* 093E20 7F05F2F0 27A700E0 */ addiu $a3, $sp, 0xe0 +/* 093E24 7F05F2F4 8FA4012C */ lw $a0, 0x12c($sp) +/* 093E28 7F05F2F8 8C8F0064 */ lw $t7, 0x64($a0) +/* 093E2C 7F05F2FC 31F80080 */ andi $t8, $t7, 0x80 +/* 093E30 7F05F300 1300000F */ beqz $t8, .L7F05F340 +/* 093E34 7F05F304 00000000 */ nop +/* 093E38 7F05F308 8C82006C */ lw $v0, 0x6c($a0) +/* 093E3C 7F05F30C 3C018005 */ lui $at, %hi(D_80053CA4) +/* 093E40 7F05F310 240A003C */ li $t2, 60 +/* 093E44 7F05F314 8C590000 */ lw $t9, ($v0) +/* 093E48 7F05F318 37280002 */ ori $t0, $t9, 2 +/* 093E4C 7F05F31C AC480000 */ sw $t0, ($v0) +/* 093E50 7F05F320 8C89006C */ lw $t1, 0x6c($a0) +/* 093E54 7F05F324 C42A3CA4 */ lwc1 $f10, %lo(D_80053CA4)($at) +/* 093E58 7F05F328 E52A008C */ swc1 $f10, 0x8c($t1) +/* 093E5C 7F05F32C 8C8B006C */ lw $t3, 0x6c($a0) +/* 093E60 7F05F330 AD6A00BC */ sw $t2, 0xbc($t3) +/* 093E64 7F05F334 8C8C0064 */ lw $t4, 0x64($a0) +/* 093E68 7F05F338 358D0020 */ ori $t5, $t4, 0x20 +/* 093E6C 7F05F33C AC8D0064 */ sw $t5, 0x64($a0) +.L7F05F340: +/* 093E70 7F05F340 0FC10D94 */ jal sub_GAME_7F043650 +/* 093E74 7F05F344 00000000 */ nop +/* 093E78 7F05F348 8FBF001C */ lw $ra, 0x1c($sp) +.L7F05F34C: +/* 093E7C 7F05F34C 27BD0130 */ addiu $sp, $sp, 0x130 +/* 093E80 7F05F350 03E00008 */ jr $ra +/* 093E84 7F05F354 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void generate_player_thrown_object(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053CA8 +.word 0x41855555 /*16.666666*/ +glabel D_80053CAC +.word 0x40d55555 /*6.6666665*/ +/*D:80053CB0*/ +glabel jpt_player_thrown_object +.word thrown_item_timed_mine +.word thrown_item_proximity_mine +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word thrown_item_bombcase +.word thrown_item_plastique +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word thrown_item_bug +.word thrown_item_micro_camera +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word create_instance +.word thrown_item_GE_key + +/*D:80053D3C*/ +glabel jpt_temp_obj_for_itemtype +.word generate_temp_timed_mine +.word generate_temp_proximity_mine +.word generate_temp_remote_mine +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_bombcase +.word generate_temp_static_thrown +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_static_thrown +.word generate_temp_static_thrown +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_default +.word generate_temp_static_thrown + +glabel D_80053DC8 +.word 0x3dcccccd /*0.1*/ +.text +glabel generate_player_thrown_object +/* 093E88 7F05F358 27BDFEC0 */ addiu $sp, $sp, -0x140 +/* 093E8C 7F05F35C 3C018005 */ lui $at, %hi(D_80053CA8) +/* 093E90 7F05F360 C4243CA8 */ lwc1 $f4, %lo(D_80053CA8)($at) +/* 093E94 7F05F364 AFBF0024 */ sw $ra, 0x24($sp) +/* 093E98 7F05F368 AFB00020 */ sw $s0, 0x20($sp) +/* 093E9C 7F05F36C AFA40140 */ sw $a0, 0x140($sp) +/* 093EA0 7F05F370 00008025 */ move $s0, $zero +/* 093EA4 7F05F374 0FC225E6 */ jal get_curplayer_positiondata +/* 093EA8 7F05F378 E7A400EC */ swc1 $f4, 0xec($sp) +/* 093EAC 7F05F37C 0FC2280B */ jal get_BONDdata_field408 +/* 093EB0 7F05F380 AFA20084 */ sw $v0, 0x84($sp) +/* 093EB4 7F05F384 AFA20080 */ sw $v0, 0x80($sp) +/* 093EB8 7F05F388 0FC17674 */ jal get_item_in_hand +/* 093EBC 7F05F38C 8FA40140 */ lw $a0, 0x140($sp) +/* 093EC0 7F05F390 2401003D */ li $at, 61 +/* 093EC4 7F05F394 14410004 */ bne $v0, $at, .L7F05F3A8 +/* 093EC8 7F05F398 AFA20038 */ sw $v0, 0x38($sp) +/* 093ECC 7F05F39C 3C018005 */ lui $at, %hi(D_80053CAC) +/* 093ED0 7F05F3A0 C4263CAC */ lwc1 $f6, %lo(D_80053CAC)($at) +/* 093ED4 7F05F3A4 E7A600EC */ swc1 $f6, 0xec($sp) +.L7F05F3A8: +/* 093ED8 7F05F3A8 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 093EDC 7F05F3AC 0FC15F05 */ jal sub_GAME_7F057C14 +/* 093EE0 7F05F3B0 27A500FC */ addiu $a1, $sp, 0xfc +/* 093EE4 7F05F3B4 27A40094 */ addiu $a0, $sp, 0x94 +/* 093EE8 7F05F3B8 27A50088 */ addiu $a1, $sp, 0x88 +/* 093EEC 7F05F3BC 0FC1A073 */ jal sub_GAME_7F0681CC +/* 093EF0 7F05F3C0 8FA60140 */ lw $a2, 0x140($sp) +/* 093EF4 7F05F3C4 0FC1E111 */ jal sub_GAME_7F078444 +/* 093EF8 7F05F3C8 00000000 */ nop +/* 093EFC 7F05F3CC 00402025 */ move $a0, $v0 +/* 093F00 7F05F3D0 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 093F04 7F05F3D4 27A50088 */ addiu $a1, $sp, 0x88 +/* 093F08 7F05F3D8 C7A000EC */ lwc1 $f0, 0xec($sp) +/* 093F0C 7F05F3DC C7A80088 */ lwc1 $f8, 0x88($sp) +/* 093F10 7F05F3E0 C7B0008C */ lwc1 $f16, 0x8c($sp) +/* 093F14 7F05F3E4 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 093F18 7F05F3E8 46004282 */ mul.s $f10, $f8, $f0 +/* 093F1C 7F05F3EC C7A80090 */ lwc1 $f8, 0x90($sp) +/* 093F20 7F05F3F0 44812000 */ mtc1 $at, $f4 +/* 093F24 7F05F3F4 46008482 */ mul.s $f18, $f16, $f0 +/* 093F28 7F05F3F8 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 093F2C 7F05F3FC 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 093F30 7F05F400 46004402 */ mul.s $f16, $f8, $f0 +/* 093F34 7F05F404 E7AA00F0 */ swc1 $f10, 0xf0($sp) +/* 093F38 7F05F408 8FA20080 */ lw $v0, 0x80($sp) +/* 093F3C 7F05F40C 8FA30084 */ lw $v1, 0x84($sp) +/* 093F40 7F05F410 46049180 */ add.s $f6, $f18, $f4 +/* 093F44 7F05F414 E7B000F8 */ swc1 $f16, 0xf8($sp) +/* 093F48 7F05F418 19C00015 */ blez $t6, .L7F05F470 +/* 093F4C 7F05F41C E7A600F4 */ swc1 $f6, 0xf4($sp) +/* 093F50 7F05F420 C4720008 */ lwc1 $f18, 8($v1) +/* 093F54 7F05F424 C4440000 */ lwc1 $f4, ($v0) +/* 093F58 7F05F428 3C018005 */ lui $at, %hi(global_timer_delta) +/* 093F5C 7F05F42C C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 093F60 7F05F430 46049201 */ sub.s $f8, $f18, $f4 +/* 093F64 7F05F434 46004483 */ div.s $f18, $f8, $f0 +/* 093F68 7F05F438 46125100 */ add.s $f4, $f10, $f18 +/* 093F6C 7F05F43C E7A400F0 */ swc1 $f4, 0xf0($sp) +/* 093F70 7F05F440 C44A0004 */ lwc1 $f10, 4($v0) +/* 093F74 7F05F444 C468000C */ lwc1 $f8, 0xc($v1) +/* 093F78 7F05F448 460A4481 */ sub.s $f18, $f8, $f10 +/* 093F7C 7F05F44C 46009103 */ div.s $f4, $f18, $f0 +/* 093F80 7F05F450 46043200 */ add.s $f8, $f6, $f4 +/* 093F84 7F05F454 E7A800F4 */ swc1 $f8, 0xf4($sp) +/* 093F88 7F05F458 C4520008 */ lwc1 $f18, 8($v0) +/* 093F8C 7F05F45C C46A0010 */ lwc1 $f10, 0x10($v1) +/* 093F90 7F05F460 46125181 */ sub.s $f6, $f10, $f18 +/* 093F94 7F05F464 46003103 */ div.s $f4, $f6, $f0 +/* 093F98 7F05F468 46048200 */ add.s $f8, $f16, $f4 +/* 093F9C 7F05F46C E7A800F8 */ swc1 $f8, 0xf8($sp) +.L7F05F470: +/* 093FA0 7F05F470 8FA30140 */ lw $v1, 0x140($sp) +/* 093FA4 7F05F474 3C188008 */ lui $t8, %hi(pPlayer) +/* 093FA8 7F05F478 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 093FAC 7F05F47C 000378C0 */ sll $t7, $v1, 3 +/* 093FB0 7F05F480 01E37823 */ subu $t7, $t7, $v1 +/* 093FB4 7F05F484 000F7880 */ sll $t7, $t7, 2 +/* 093FB8 7F05F488 01E37821 */ addu $t7, $t7, $v1 +/* 093FBC 7F05F48C 000F7880 */ sll $t7, $t7, 2 +/* 093FC0 7F05F490 01E37821 */ addu $t7, $t7, $v1 +/* 093FC4 7F05F494 000F78C0 */ sll $t7, $t7, 3 +/* 093FC8 7F05F498 030F1021 */ addu $v0, $t8, $t7 +/* 093FCC 7F05F49C C44A0B08 */ lwc1 $f10, 0xb08($v0) +/* 093FD0 7F05F4A0 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 093FD4 7F05F4A4 E7AA00E0 */ swc1 $f10, 0xe0($sp) +/* 093FD8 7F05F4A8 C4520B0C */ lwc1 $f18, 0xb0c($v0) +/* 093FDC 7F05F4AC E7B200E4 */ swc1 $f18, 0xe4($sp) +/* 093FE0 7F05F4B0 C4460B10 */ lwc1 $f6, 0xb10($v0) +/* 093FE4 7F05F4B4 AFAF002C */ sw $t7, 0x2c($sp) +/* 093FE8 7F05F4B8 0FC15FF4 */ jal matrix_4x4_set_identity +/* 093FEC 7F05F4BC E7A600E8 */ swc1 $f6, 0xe8($sp) +/* 093FF0 7F05F4C0 3C198008 */ lui $t9, %hi(pPlayer) +/* 093FF4 7F05F4C4 8FA3002C */ lw $v1, 0x2c($sp) +/* 093FF8 7F05F4C8 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 093FFC 7F05F4CC 27A50040 */ addiu $a1, $sp, 0x40 +/* 094000 7F05F4D0 03232021 */ addu $a0, $t9, $v1 +/* 094004 7F05F4D4 0FC16008 */ jal matrix_4x4_copy +/* 094008 7F05F4D8 24840AD8 */ addiu $a0, $a0, 0xad8 +/* 09400C 7F05F4DC 44800000 */ mtc1 $zero, $f0 +/* 094010 7F05F4E0 27A40040 */ addiu $a0, $sp, 0x40 +/* 094014 7F05F4E4 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 094018 7F05F4E8 E7A00070 */ swc1 $f0, 0x70($sp) +/* 09401C 7F05F4EC E7A00074 */ swc1 $f0, 0x74($sp) +/* 094020 7F05F4F0 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 094024 7F05F4F4 E7A00078 */ swc1 $f0, 0x78($sp) +/* 094028 7F05F4F8 8FA50038 */ lw $a1, 0x38($sp) +/* 09402C 7F05F4FC 2401003D */ li $at, 61 +/* 094030 7F05F500 14A1000D */ bne $a1, $at, .L7F05F538 +/* 094034 7F05F504 00000000 */ nop +/* 094038 7F05F508 0FC2315C */ jal sub_GAME_7F08C570 +/* 09403C 7F05F50C 00A02025 */ move $a0, $a1 +/* 094040 7F05F510 00408025 */ move $s0, $v0 +/* 094044 7F05F514 0FC23187 */ jal sub_GAME_7F08C61C +/* 094048 7F05F518 8FA40038 */ lw $a0, 0x38($sp) +/* 09404C 7F05F51C 12000003 */ beqz $s0, .L7F05F52C +/* 094050 7F05F520 00000000 */ nop +/* 094054 7F05F524 0FC13011 */ jal sub_GAME_7F04C044 +/* 094058 7F05F528 8E040010 */ lw $a0, 0x10($s0) +.L7F05F52C: +/* 09405C 7F05F52C 0FC175A4 */ jal sub_GAME_7F05D690 +/* 094060 7F05F530 00000000 */ nop +/* 094064 7F05F534 8FA50038 */ lw $a1, 0x38($sp) +.L7F05F538: +/* 094068 7F05F538 1600001B */ bnez $s0, .L7F05F5A8 +/* 09406C 7F05F53C 24A8FFE5 */ addiu $t0, $a1, -0x1b +/* 094070 7F05F540 2D010023 */ sltiu $at, $t0, 0x23 +/* 094074 7F05F544 10200014 */ beqz $at, .L7F05F598 +/* 094078 7F05F548 240400C7 */ li $a0, 199 +/* 09407C 7F05F54C 00084080 */ sll $t0, $t0, 2 +/* 094080 7F05F550 3C018005 */ lui $at, %hi(jpt_player_thrown_object) +/* 094084 7F05F554 00280821 */ addu $at, $at, $t0 +/* 094088 7F05F558 8C283CB0 */ lw $t0, %lo(jpt_player_thrown_object)($at) +/* 09408C 7F05F55C 01000008 */ jr $t0 +/* 094090 7F05F560 00000000 */ nop +thrown_item_proximity_mine: +/* 094094 7F05F564 1000000C */ b .L7F05F598 +/* 094098 7F05F568 240400C8 */ li $a0, 200 +thrown_item_timed_mine: +/* 09409C 7F05F56C 1000000A */ b .L7F05F598 +/* 0940A0 7F05F570 240400C9 */ li $a0, 201 +thrown_item_bombcase: +/* 0940A4 7F05F574 10000008 */ b .L7F05F598 +/* 0940A8 7F05F578 240400E2 */ li $a0, 226 +thrown_item_bug: +/* 0940AC 7F05F57C 10000006 */ b .L7F05F598 +/* 0940B0 7F05F580 240400F5 */ li $a0, 245 +thrown_item_micro_camera: +/* 0940B4 7F05F584 10000004 */ b .L7F05F598 +/* 0940B8 7F05F588 240400F6 */ li $a0, 246 +thrown_item_GE_key: +/* 0940BC 7F05F58C 10000002 */ b .L7F05F598 +/* 0940C0 7F05F590 240400F8 */ li $a0, 248 +thrown_item_plastique: +/* 0940C4 7F05F594 24040111 */ li $a0, 273 +create_instance: +.L7F05F598: +/* 0940C8 7F05F598 0FC1481B */ jal create_new_item_instance_of_model +/* 0940CC 7F05F59C 00000000 */ nop +/* 0940D0 7F05F5A0 00408025 */ move $s0, $v0 +/* 0940D4 7F05F5A4 8FA50038 */ lw $a1, 0x38($sp) +.L7F05F5A8: +/* 0940D8 7F05F5A8 1200005F */ beqz $s0, .L7F05F728 +/* 0940DC 7F05F5AC 24A9FFE5 */ addiu $t1, $a1, -0x1b +/* 0940E0 7F05F5B0 2D210023 */ sltiu $at, $t1, 0x23 +/* 0940E4 7F05F5B4 10200031 */ beqz $at, .L7F05F67C +/* 0940E8 7F05F5B8 00094880 */ sll $t1, $t1, 2 +/* 0940EC 7F05F5BC 3C018005 */ lui $at, %hi(jpt_temp_obj_for_itemtype) +/* 0940F0 7F05F5C0 00290821 */ addu $at, $at, $t1 +/* 0940F4 7F05F5C4 8C293D3C */ lw $t1, %lo(jpt_temp_obj_for_itemtype)($at) +/* 0940F8 7F05F5C8 01200008 */ jr $t1 +/* 0940FC 7F05F5CC 00000000 */ nop +generate_temp_remote_mine: +/* 094100 7F05F5D0 0FC26919 */ jal get_num_players +/* 094104 7F05F5D4 00000000 */ nop +/* 094108 7F05F5D8 24010001 */ li $at, 1 +/* 09410C 7F05F5DC 14410004 */ bne $v0, $at, .L7F05F5F0 +/* 094110 7F05F5E0 240B00B4 */ li $t3, 180 +/* 094114 7F05F5E4 240A012C */ li $t2, 300 +/* 094118 7F05F5E8 10000026 */ b .L7F05F684 +/* 09411C 7F05F5EC A60A0082 */ sh $t2, 0x82($s0) +.L7F05F5F0: +/* 094120 7F05F5F0 10000024 */ b .L7F05F684 +/* 094124 7F05F5F4 A60B0082 */ sh $t3, 0x82($s0) +generate_temp_proximity_mine: +/* 094128 7F05F5F8 0FC26919 */ jal get_num_players +/* 09412C 7F05F5FC 00000000 */ nop +/* 094130 7F05F600 24010001 */ li $at, 1 +/* 094134 7F05F604 14410004 */ bne $v0, $at, .L7F05F618 +/* 094138 7F05F608 240D00B4 */ li $t5, 180 +/* 09413C 7F05F60C 240C012C */ li $t4, 300 +/* 094140 7F05F610 1000001C */ b .L7F05F684 +/* 094144 7F05F614 A60C0082 */ sh $t4, 0x82($s0) +.L7F05F618: +/* 094148 7F05F618 1000001A */ b .L7F05F684 +/* 09414C 7F05F61C A60D0082 */ sh $t5, 0x82($s0) +generate_temp_timed_mine: +/* 094150 7F05F620 0FC26919 */ jal get_num_players +/* 094154 7F05F624 00000000 */ nop +/* 094158 7F05F628 24010001 */ li $at, 1 +/* 09415C 7F05F62C 14410004 */ bne $v0, $at, .L7F05F640 +/* 094160 7F05F630 240F00B4 */ li $t7, 180 +/* 094164 7F05F634 240E012C */ li $t6, 300 +/* 094168 7F05F638 10000012 */ b .L7F05F684 +/* 09416C 7F05F63C A60E0082 */ sh $t6, 0x82($s0) +.L7F05F640: +/* 094170 7F05F640 10000010 */ b .L7F05F684 +/* 094174 7F05F644 A60F0082 */ sh $t7, 0x82($s0) +generate_temp_bombcase: +/* 094178 7F05F648 0FC26919 */ jal get_num_players +/* 09417C 7F05F64C 00000000 */ nop +/* 094180 7F05F650 24010001 */ li $at, 1 +/* 094184 7F05F654 14410004 */ bne $v0, $at, .L7F05F668 +/* 094188 7F05F658 241900B4 */ li $t9, 180 +/* 09418C 7F05F65C 2418012C */ li $t8, 300 +/* 094190 7F05F660 10000008 */ b .L7F05F684 +/* 094194 7F05F664 A6180082 */ sh $t8, 0x82($s0) +.L7F05F668: +/* 094198 7F05F668 10000006 */ b .L7F05F684 +/* 09419C 7F05F66C A6190082 */ sh $t9, 0x82($s0) +generate_temp_static_thrown: +/* 0941A0 7F05F670 24080001 */ li $t0, 1 +/* 0941A4 7F05F674 10000003 */ b .L7F05F684 +/* 0941A8 7F05F678 A6080082 */ sh $t0, 0x82($s0) +generate_temp_default: +.L7F05F67C: +/* 0941AC 7F05F67C 240900F0 */ li $t1, 240 +/* 0941B0 7F05F680 A6090082 */ sh $t1, 0x82($s0) +.L7F05F684: +/* 0941B4 7F05F684 8E0A0064 */ lw $t2, 0x64($s0) +/* 0941B8 7F05F688 3C01FFF9 */ lui $at, (0xFFF9FFFF >> 16) # lui $at, 0xfff9 +/* 0941BC 7F05F68C 3421FFFF */ ori $at, (0xFFF9FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 0941C0 7F05F690 01415824 */ and $t3, $t2, $at +/* 0941C4 7F05F694 0FC26C54 */ jal get_cur_playernum +/* 0941C8 7F05F698 AE0B0064 */ sw $t3, 0x64($s0) +/* 0941CC 7F05F69C 8E0C0064 */ lw $t4, 0x64($s0) +/* 0941D0 7F05F6A0 00026C40 */ sll $t5, $v0, 0x11 +/* 0941D4 7F05F6A4 27AF00FC */ addiu $t7, $sp, 0xfc +/* 0941D8 7F05F6A8 018D7025 */ or $t6, $t4, $t5 +/* 0941DC 7F05F6AC AE0E0064 */ sw $t6, 0x64($s0) +/* 0941E0 7F05F6B0 AFAF0010 */ sw $t7, 0x10($sp) +/* 0941E4 7F05F6B4 02002025 */ move $a0, $s0 +/* 0941E8 7F05F6B8 27A500E0 */ addiu $a1, $sp, 0xe0 +/* 0941EC 7F05F6BC 27A600A0 */ addiu $a2, $sp, 0xa0 +/* 0941F0 7F05F6C0 0FC17B07 */ jal sub_GAME_7F05EC1C +/* 0941F4 7F05F6C4 27A700F0 */ addiu $a3, $sp, 0xf0 +/* 0941F8 7F05F6C8 8E180064 */ lw $t8, 0x64($s0) +/* 0941FC 7F05F6CC 33190080 */ andi $t9, $t8, 0x80 +/* 094200 7F05F6D0 53200016 */ beql $t9, $zero, .L7F05F72C +/* 094204 7F05F6D4 8FBF0024 */ lw $ra, 0x24($sp) +/* 094208 7F05F6D8 8E02006C */ lw $v0, 0x6c($s0) +/* 09420C 7F05F6DC 3C018005 */ lui $at, %hi(D_80053DC8) +/* 094210 7F05F6E0 240B003C */ li $t3, 60 +/* 094214 7F05F6E4 8C480000 */ lw $t0, ($v0) +/* 094218 7F05F6E8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09421C 7F05F6EC 24050004 */ li $a1, 4 +/* 094220 7F05F6F0 35090002 */ ori $t1, $t0, 2 +/* 094224 7F05F6F4 AC490000 */ sw $t1, ($v0) +/* 094228 7F05F6F8 8E0A006C */ lw $t2, 0x6c($s0) +/* 09422C 7F05F6FC C4303DC8 */ lwc1 $f16, %lo(D_80053DC8)($at) +/* 094230 7F05F700 00003025 */ move $a2, $zero +/* 094234 7F05F704 E550008C */ swc1 $f16, 0x8c($t2) +/* 094238 7F05F708 8E0C006C */ lw $t4, 0x6c($s0) +/* 09423C 7F05F70C AD8B00BC */ sw $t3, 0xbc($t4) +/* 094240 7F05F710 0C002382 */ jal play_sfx_a1 +/* 094244 7F05F714 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 094248 7F05F718 10400003 */ beqz $v0, .L7F05F728 +/* 09424C 7F05F71C 00402025 */ move $a0, $v0 +/* 094250 7F05F720 0FC14E84 */ jal sub_GAME_7F053A10 +/* 094254 7F05F724 26050058 */ addiu $a1, $s0, 0x58 +.L7F05F728: +/* 094258 7F05F728 8FBF0024 */ lw $ra, 0x24($sp) +.L7F05F72C: +/* 09425C 7F05F72C 8FB00020 */ lw $s0, 0x20($sp) +/* 094260 7F05F730 27BD0140 */ addiu $sp, $sp, 0x140 +/* 094264 7F05F734 03E00008 */ jr $ra +/* 094268 7F05F738 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05F73C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053DCC +.word 0x42055555 /*33.333332*/ +glabel D_80053DD0 +.word 0x3e99999a /*0.30000001*/ +glabel D_80053DD4 +.word 0x3e088888 /*0.13333333*/ +.text +glabel sub_GAME_7F05F73C +/* 09426C 7F05F73C 000470C0 */ sll $t6, $a0, 3 +/* 094270 7F05F740 01C47023 */ subu $t6, $t6, $a0 +/* 094274 7F05F744 000E7080 */ sll $t6, $t6, 2 +/* 094278 7F05F748 01C47021 */ addu $t6, $t6, $a0 +/* 09427C 7F05F74C 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 094280 7F05F750 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 094284 7F05F754 000E7080 */ sll $t6, $t6, 2 +/* 094288 7F05F758 01C47021 */ addu $t6, $t6, $a0 +/* 09428C 7F05F75C 27BDFF18 */ addiu $sp, $sp, -0xe8 +/* 094290 7F05F760 000E70C0 */ sll $t6, $t6, 3 +/* 094294 7F05F764 01EEC021 */ addu $t8, $t7, $t6 +/* 094298 7F05F768 AFBF001C */ sw $ra, 0x1c($sp) +/* 09429C 7F05F76C 27190870 */ addiu $t9, $t8, 0x870 +/* 0942A0 7F05F770 AFA400E8 */ sw $a0, 0xe8($sp) +/* 0942A4 7F05F774 AFB900E0 */ sw $t9, 0xe0($sp) +/* 0942A8 7F05F778 0FC225E6 */ jal get_curplayer_positiondata +/* 0942AC 7F05F77C AFAE0028 */ sw $t6, 0x28($sp) +/* 0942B0 7F05F780 0FC2280B */ jal get_BONDdata_field408 +/* 0942B4 7F05F784 AFA20034 */ sw $v0, 0x34($sp) +/* 0942B8 7F05F788 AFA20030 */ sw $v0, 0x30($sp) +/* 0942BC 7F05F78C 0FC15FF4 */ jal matrix_4x4_set_identity +/* 0942C0 7F05F790 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 0942C4 7F05F794 27A40044 */ addiu $a0, $sp, 0x44 +/* 0942C8 7F05F798 27A50038 */ addiu $a1, $sp, 0x38 +/* 0942CC 7F05F79C 0FC1A073 */ jal sub_GAME_7F0681CC +/* 0942D0 7F05F7A0 8FA600E8 */ lw $a2, 0xe8($sp) +/* 0942D4 7F05F7A4 0FC1E111 */ jal sub_GAME_7F078444 +/* 0942D8 7F05F7A8 00000000 */ nop +/* 0942DC 7F05F7AC 00402025 */ move $a0, $v0 +/* 0942E0 7F05F7B0 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0942E4 7F05F7B4 27A50038 */ addiu $a1, $sp, 0x38 +/* 0942E8 7F05F7B8 3C018005 */ lui $at, %hi(D_80053DCC) +/* 0942EC 7F05F7BC C4203DCC */ lwc1 $f0, %lo(D_80053DCC)($at) +/* 0942F0 7F05F7C0 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0942F4 7F05F7C4 C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0942F8 7F05F7C8 C7B00040 */ lwc1 $f16, 0x40($sp) +/* 0942FC 7F05F7CC 46002182 */ mul.s $f6, $f4, $f0 +/* 094300 7F05F7D0 3C088005 */ lui $t0, %hi(clock_timer) +/* 094304 7F05F7D4 8D088374 */ lw $t0, %lo(clock_timer)($t0) +/* 094308 7F05F7D8 46004282 */ mul.s $f10, $f8, $f0 +/* 09430C 7F05F7DC 8FA20030 */ lw $v0, 0x30($sp) +/* 094310 7F05F7E0 8FA30034 */ lw $v1, 0x34($sp) +/* 094314 7F05F7E4 46008482 */ mul.s $f18, $f16, $f0 +/* 094318 7F05F7E8 E7A60094 */ swc1 $f6, 0x94($sp) +/* 09431C 7F05F7EC 3C098008 */ lui $t1, %hi(pPlayer) +/* 094320 7F05F7F0 E7AA0098 */ swc1 $f10, 0x98($sp) +/* 094324 7F05F7F4 19000015 */ blez $t0, .L7F05F84C +/* 094328 7F05F7F8 E7B2009C */ swc1 $f18, 0x9c($sp) +/* 09432C 7F05F7FC C4640008 */ lwc1 $f4, 8($v1) +/* 094330 7F05F800 C4480000 */ lwc1 $f8, ($v0) +/* 094334 7F05F804 3C018005 */ lui $at, %hi(global_timer_delta) +/* 094338 7F05F808 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 09433C 7F05F80C 46082401 */ sub.s $f16, $f4, $f8 +/* 094340 7F05F810 46008103 */ div.s $f4, $f16, $f0 +/* 094344 7F05F814 46043200 */ add.s $f8, $f6, $f4 +/* 094348 7F05F818 E7A80094 */ swc1 $f8, 0x94($sp) +/* 09434C 7F05F81C C4460004 */ lwc1 $f6, 4($v0) +/* 094350 7F05F820 C470000C */ lwc1 $f16, 0xc($v1) +/* 094354 7F05F824 46068101 */ sub.s $f4, $f16, $f6 +/* 094358 7F05F828 46002203 */ div.s $f8, $f4, $f0 +/* 09435C 7F05F82C 46085400 */ add.s $f16, $f10, $f8 +/* 094360 7F05F830 E7B00098 */ swc1 $f16, 0x98($sp) +/* 094364 7F05F834 C4440008 */ lwc1 $f4, 8($v0) +/* 094368 7F05F838 C4660010 */ lwc1 $f6, 0x10($v1) +/* 09436C 7F05F83C 46043281 */ sub.s $f10, $f6, $f4 +/* 094370 7F05F840 46005203 */ div.s $f8, $f10, $f0 +/* 094374 7F05F844 46089400 */ add.s $f16, $f18, $f8 +/* 094378 7F05F848 E7B0009C */ swc1 $f16, 0x9c($sp) +.L7F05F84C: +/* 09437C 7F05F84C 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 094380 7F05F850 8FAA0028 */ lw $t2, 0x28($sp) +/* 094384 7F05F854 27A50050 */ addiu $a1, $sp, 0x50 +/* 094388 7F05F858 012A2021 */ addu $a0, $t1, $t2 +/* 09438C 7F05F85C 0FC16008 */ jal matrix_4x4_copy +/* 094390 7F05F860 24840AD8 */ addiu $a0, $a0, 0xad8 +/* 094394 7F05F864 44800000 */ mtc1 $zero, $f0 +/* 094398 7F05F868 240400CB */ li $a0, 203 +/* 09439C 7F05F86C 24050057 */ li $a1, 87 +/* 0943A0 7F05F870 E7A00080 */ swc1 $f0, 0x80($sp) +/* 0943A4 7F05F874 E7A00084 */ swc1 $f0, 0x84($sp) +/* 0943A8 7F05F878 0FC1481B */ jal create_new_item_instance_of_model +/* 0943AC 7F05F87C E7A00088 */ swc1 $f0, 0x88($sp) +/* 0943B0 7F05F880 10400025 */ beqz $v0, .L7F05F918 +/* 0943B4 7F05F884 240B04B0 */ li $t3, 1200 +/* 0943B8 7F05F888 8C4C0064 */ lw $t4, 0x64($v0) +/* 0943BC 7F05F88C 3C01FFF9 */ lui $at, (0xFFF9FFFF >> 16) # lui $at, 0xfff9 +/* 0943C0 7F05F890 3421FFFF */ ori $at, (0xFFF9FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 0943C4 7F05F894 01816824 */ and $t5, $t4, $at +/* 0943C8 7F05F898 A44B0082 */ sh $t3, 0x82($v0) +/* 0943CC 7F05F89C AC4D0064 */ sw $t5, 0x64($v0) +/* 0943D0 7F05F8A0 0FC26C54 */ jal get_cur_playernum +/* 0943D4 7F05F8A4 AFA200E4 */ sw $v0, 0xe4($sp) +/* 0943D8 7F05F8A8 8FA400E4 */ lw $a0, 0xe4($sp) +/* 0943DC 7F05F8AC 00027C40 */ sll $t7, $v0, 0x11 +/* 0943E0 7F05F8B0 27B900A0 */ addiu $t9, $sp, 0xa0 +/* 0943E4 7F05F8B4 8C8E0064 */ lw $t6, 0x64($a0) +/* 0943E8 7F05F8B8 27A60050 */ addiu $a2, $sp, 0x50 +/* 0943EC 7F05F8BC 27A70094 */ addiu $a3, $sp, 0x94 +/* 0943F0 7F05F8C0 01CFC025 */ or $t8, $t6, $t7 +/* 0943F4 7F05F8C4 AC980064 */ sw $t8, 0x64($a0) +/* 0943F8 7F05F8C8 8FA500E0 */ lw $a1, 0xe0($sp) +/* 0943FC 7F05F8CC AFB90010 */ sw $t9, 0x10($sp) +/* 094400 7F05F8D0 0FC17B07 */ jal sub_GAME_7F05EC1C +/* 094404 7F05F8D4 24A502E8 */ addiu $a1, $a1, 0x2e8 +/* 094408 7F05F8D8 8FA400E4 */ lw $a0, 0xe4($sp) +/* 09440C 7F05F8DC 3C018005 */ lui $at, %hi(D_80053DD0) +/* 094410 7F05F8E0 8C880064 */ lw $t0, 0x64($a0) +/* 094414 7F05F8E4 31090080 */ andi $t1, $t0, 0x80 +/* 094418 7F05F8E8 5120000C */ beql $t1, $zero, .L7F05F91C +/* 09441C 7F05F8EC 8FBF001C */ lw $ra, 0x1c($sp) +/* 094420 7F05F8F0 C4263DD0 */ lwc1 $f6, %lo(D_80053DD0)($at) +/* 094424 7F05F8F4 8C8A006C */ lw $t2, 0x6c($a0) +/* 094428 7F05F8F8 3C018005 */ lui $at, %hi(D_80053DD4) +/* 09442C 7F05F8FC 240C003C */ li $t4, 60 +/* 094430 7F05F900 E546008C */ swc1 $f6, 0x8c($t2) +/* 094434 7F05F904 8C8B006C */ lw $t3, 0x6c($a0) +/* 094438 7F05F908 C4243DD4 */ lwc1 $f4, %lo(D_80053DD4)($at) +/* 09443C 7F05F90C E5640094 */ swc1 $f4, 0x94($t3) +/* 094440 7F05F910 8C8D006C */ lw $t5, 0x6c($a0) +/* 094444 7F05F914 ADAC00BC */ sw $t4, 0xbc($t5) +.L7F05F918: +/* 094448 7F05F918 8FBF001C */ lw $ra, 0x1c($sp) +.L7F05F91C: +/* 09444C 7F05F91C 27BD00E8 */ addiu $sp, $sp, 0xe8 +/* 094450 7F05F920 03E00008 */ jr $ra +/* 094454 7F05F924 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05F928(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05F928 +/* 094458 7F05F928 000478C0 */ sll $t7, $a0, 3 +/* 09445C 7F05F92C 01E47823 */ subu $t7, $t7, $a0 +/* 094460 7F05F930 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 094464 7F05F934 000F7880 */ sll $t7, $t7, 2 +/* 094468 7F05F938 01E47821 */ addu $t7, $t7, $a0 +/* 09446C 7F05F93C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 094470 7F05F940 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 094474 7F05F944 000F7880 */ sll $t7, $t7, 2 +/* 094478 7F05F948 01E47821 */ addu $t7, $t7, $a0 +/* 09447C 7F05F94C 000F78C0 */ sll $t7, $t7, 3 +/* 094480 7F05F950 AFBF0024 */ sw $ra, 0x24($sp) +/* 094484 7F05F954 AFB30020 */ sw $s3, 0x20($sp) +/* 094488 7F05F958 AFB2001C */ sw $s2, 0x1c($sp) +/* 09448C 7F05F95C AFB10018 */ sw $s1, 0x18($sp) +/* 094490 7F05F960 AFB00014 */ sw $s0, 0x14($sp) +/* 094494 7F05F964 01CF1021 */ addu $v0, $t6, $t7 +/* 094498 7F05F968 8C500A90 */ lw $s0, 0xa90($v0) +/* 09449C 7F05F96C 24420870 */ addiu $v0, $v0, 0x870 +/* 0944A0 7F05F970 5200003C */ beql $s0, $zero, .L7F05FA64 +/* 0944A4 7F05F974 8FBF0024 */ lw $ra, 0x24($sp) +/* 0944A8 7F05F978 8E130010 */ lw $s3, 0x10($s0) +/* 0944AC 7F05F97C 52600039 */ beql $s3, $zero, .L7F05FA64 +/* 0944B0 7F05F980 8FBF0024 */ lw $ra, 0x24($sp) +/* 0944B4 7F05F984 0FC225E6 */ jal get_curplayer_positiondata +/* 0944B8 7F05F988 AFA2007C */ sw $v0, 0x7c($sp) +/* 0944BC 7F05F98C 8FA4007C */ lw $a0, 0x7c($sp) +/* 0944C0 7F05F990 27B20034 */ addiu $s2, $sp, 0x34 +/* 0944C4 7F05F994 AFA20030 */ sw $v0, 0x30($sp) +/* 0944C8 7F05F998 8E110014 */ lw $s1, 0x14($s0) +/* 0944CC 7F05F99C 02402825 */ move $a1, $s2 +/* 0944D0 7F05F9A0 0FC16008 */ jal matrix_4x4_copy +/* 0944D4 7F05F9A4 24840268 */ addiu $a0, $a0, 0x268 +/* 0944D8 7F05F9A8 44800000 */ mtc1 $zero, $f0 +/* 0944DC 7F05F9AC 02402825 */ move $a1, $s2 +/* 0944E0 7F05F9B0 E7A00064 */ swc1 $f0, 0x64($sp) +/* 0944E4 7F05F9B4 E7A00068 */ swc1 $f0, 0x68($sp) +/* 0944E8 7F05F9B8 E7A0006C */ swc1 $f0, 0x6c($sp) +/* 0944EC 7F05F9BC 8E180014 */ lw $t8, 0x14($s0) +/* 0944F0 7F05F9C0 0FC1629F */ jal matrix_scalar_multiply +/* 0944F4 7F05F9C4 C70C0014 */ lwc1 $f12, 0x14($t8) +/* 0944F8 7F05F9C8 8FA5007C */ lw $a1, 0x7c($sp) +/* 0944FC 7F05F9CC 8FB90030 */ lw $t9, 0x30($sp) +/* 094500 7F05F9D0 02002025 */ move $a0, $s0 +/* 094504 7F05F9D4 02403025 */ move $a2, $s2 +/* 094508 7F05F9D8 24A502E8 */ addiu $a1, $a1, 0x2e8 +/* 09450C 7F05F9DC 0FC101D5 */ jal sub_GAME_7F040754 +/* 094510 7F05F9E0 8F270014 */ lw $a3, 0x14($t9) +/* 094514 7F05F9E4 0FC10121 */ jal sub_GAME_7F040484 +/* 094518 7F05F9E8 02002025 */ move $a0, $s0 +/* 09451C 7F05F9EC 8E280008 */ lw $t0, 8($s1) +/* 094520 7F05F9F0 8504000E */ lh $a0, 0xe($t0) +/* 094524 7F05F9F4 00044980 */ sll $t1, $a0, 6 +/* 094528 7F05F9F8 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 09452C 7F05F9FC 01202025 */ move $a0, $t1 +/* 094530 7F05FA00 AE22000C */ sw $v0, 0xc($s1) +/* 094534 7F05FA04 26040018 */ addiu $a0, $s0, 0x18 +/* 094538 7F05FA08 0FC16008 */ jal matrix_4x4_copy +/* 09453C 7F05FA0C 02402825 */ move $a1, $s2 +/* 094540 7F05FA10 26040058 */ addiu $a0, $s0, 0x58 +/* 094544 7F05FA14 0FC16266 */ jal matrix_4x4_set_position +/* 094548 7F05FA18 02402825 */ move $a1, $s2 +/* 09454C 7F05FA1C 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 094550 7F05FA20 00000000 */ nop +/* 094554 7F05FA24 00402025 */ move $a0, $v0 +/* 094558 7F05FA28 02402825 */ move $a1, $s2 +/* 09455C 7F05FA2C 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 094560 7F05FA30 8E26000C */ lw $a2, 0xc($s1) +/* 094564 7F05FA34 8E2A0008 */ lw $t2, 8($s1) +/* 094568 7F05FA38 02202025 */ move $a0, $s1 +/* 09456C 7F05FA3C 0FC1BBA9 */ jal sub_GAME_7F06EEA4 +/* 094570 7F05FA40 8D450000 */ lw $a1, ($t2) +/* 094574 7F05FA44 926B0001 */ lbu $t3, 1($s3) +/* 094578 7F05FA48 356C0002 */ ori $t4, $t3, 2 +/* 09457C 7F05FA4C A26C0001 */ sb $t4, 1($s3) +/* 094580 7F05FA50 8E2D000C */ lw $t5, 0xc($s1) +/* 094584 7F05FA54 C5A40038 */ lwc1 $f4, 0x38($t5) +/* 094588 7F05FA58 46002187 */ neg.s $f6, $f4 +/* 09458C 7F05FA5C E6660018 */ swc1 $f6, 0x18($s3) +/* 094590 7F05FA60 8FBF0024 */ lw $ra, 0x24($sp) +.L7F05FA64: +/* 094594 7F05FA64 8FB00014 */ lw $s0, 0x14($sp) +/* 094598 7F05FA68 8FB10018 */ lw $s1, 0x18($sp) +/* 09459C 7F05FA6C 8FB2001C */ lw $s2, 0x1c($sp) +/* 0945A0 7F05FA70 8FB30020 */ lw $s3, 0x20($sp) +/* 0945A4 7F05FA74 03E00008 */ jr $ra +/* 0945A8 7F05FA78 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05FA7C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05FA7C +/* 0945AC 7F05FA7C 000478C0 */ sll $t7, $a0, 3 +/* 0945B0 7F05FA80 01E47823 */ subu $t7, $t7, $a0 +/* 0945B4 7F05FA84 000F7880 */ sll $t7, $t7, 2 +/* 0945B8 7F05FA88 01E47821 */ addu $t7, $t7, $a0 +/* 0945BC 7F05FA8C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0945C0 7F05FA90 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0945C4 7F05FA94 000F7880 */ sll $t7, $t7, 2 +/* 0945C8 7F05FA98 01E47821 */ addu $t7, $t7, $a0 +/* 0945CC 7F05FA9C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0945D0 7F05FAA0 000F78C0 */ sll $t7, $t7, 3 +/* 0945D4 7F05FAA4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0945D8 7F05FAA8 01CF1821 */ addu $v1, $t6, $t7 +/* 0945DC 7F05FAAC 8C780A90 */ lw $t8, 0xa90($v1) +/* 0945E0 7F05FAB0 24630870 */ addiu $v1, $v1, 0x870 +/* 0945E4 7F05FAB4 5700000F */ bnezl $t8, .L7F05FAF4 +/* 0945E8 7F05FAB8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0945EC 7F05FABC 8C79002C */ lw $t9, 0x2c($v1) +/* 0945F0 7F05FAC0 240400CA */ li $a0, 202 +/* 0945F4 7F05FAC4 24050056 */ li $a1, 86 +/* 0945F8 7F05FAC8 5B20000A */ blezl $t9, .L7F05FAF4 +/* 0945FC 7F05FACC 8FBF0014 */ lw $ra, 0x14($sp) +/* 094600 7F05FAD0 0FC1481B */ jal create_new_item_instance_of_model +/* 094604 7F05FAD4 AFA3001C */ sw $v1, 0x1c($sp) +/* 094608 7F05FAD8 10400005 */ beqz $v0, .L7F05FAF0 +/* 09460C 7F05FADC 8FA3001C */ lw $v1, 0x1c($sp) +/* 094610 7F05FAE0 AC620220 */ sw $v0, 0x220($v1) +/* 094614 7F05FAE4 AC600224 */ sw $zero, 0x224($v1) +/* 094618 7F05FAE8 24080001 */ li $t0, 1 +/* 09461C 7F05FAEC A4480082 */ sh $t0, 0x82($v0) +.L7F05FAF0: +/* 094620 7F05FAF0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F05FAF4: +/* 094624 7F05FAF4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 094628 7F05FAF8 03E00008 */ jr $ra +/* 09462C 7F05FAFC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05FB00(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05FB00 +/* 094630 7F05FB00 000478C0 */ sll $t7, $a0, 3 +/* 094634 7F05FB04 01E47823 */ subu $t7, $t7, $a0 +/* 094638 7F05FB08 000F7880 */ sll $t7, $t7, 2 +/* 09463C 7F05FB0C 01E47821 */ addu $t7, $t7, $a0 +/* 094640 7F05FB10 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 094644 7F05FB14 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 094648 7F05FB18 000F7880 */ sll $t7, $t7, 2 +/* 09464C 7F05FB1C 01E47821 */ addu $t7, $t7, $a0 +/* 094650 7F05FB20 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 094654 7F05FB24 000F78C0 */ sll $t7, $t7, 3 +/* 094658 7F05FB28 AFBF0014 */ sw $ra, 0x14($sp) +/* 09465C 7F05FB2C 01CF1021 */ addu $v0, $t6, $t7 +/* 094660 7F05FB30 8C460A90 */ lw $a2, 0xa90($v0) +/* 094664 7F05FB34 24420870 */ addiu $v0, $v0, 0x870 +/* 094668 7F05FB38 24050001 */ li $a1, 1 +/* 09466C 7F05FB3C 10C00005 */ beqz $a2, .L7F05FB54 +/* 094670 7F05FB40 00C02025 */ move $a0, $a2 +/* 094674 7F05FB44 0FC10409 */ jal sub_GAME_7F041024 +/* 094678 7F05FB48 AFA2001C */ sw $v0, 0x1c($sp) +/* 09467C 7F05FB4C 8FA2001C */ lw $v0, 0x1c($sp) +/* 094680 7F05FB50 AC400220 */ sw $zero, 0x220($v0) +.L7F05FB54: +/* 094684 7F05FB54 8FBF0014 */ lw $ra, 0x14($sp) +/* 094688 7F05FB58 27BD0020 */ addiu $sp, $sp, 0x20 +/* 09468C 7F05FB5C 03E00008 */ jr $ra +/* 094690 7F05FB60 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05FB64(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053DD8 +.word 0x42855555 /*66.666664*/ +glabel D_80053DDC +.word 0x3f8e38e3 /*1.111111*/ +.text +glabel sub_GAME_7F05FB64 +/* 094694 7F05FB64 000470C0 */ sll $t6, $a0, 3 +/* 094698 7F05FB68 01C47023 */ subu $t6, $t6, $a0 +/* 09469C 7F05FB6C 000E7080 */ sll $t6, $t6, 2 +/* 0946A0 7F05FB70 01C47021 */ addu $t6, $t6, $a0 +/* 0946A4 7F05FB74 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0946A8 7F05FB78 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0946AC 7F05FB7C 000E7080 */ sll $t6, $t6, 2 +/* 0946B0 7F05FB80 01C47021 */ addu $t6, $t6, $a0 +/* 0946B4 7F05FB84 27BDFEF8 */ addiu $sp, $sp, -0x108 +/* 0946B8 7F05FB88 000E70C0 */ sll $t6, $t6, 3 +/* 0946BC 7F05FB8C 01EEC021 */ addu $t8, $t7, $t6 +/* 0946C0 7F05FB90 AFBF001C */ sw $ra, 0x1c($sp) +/* 0946C4 7F05FB94 27190870 */ addiu $t9, $t8, 0x870 +/* 0946C8 7F05FB98 AFA40108 */ sw $a0, 0x108($sp) +/* 0946CC 7F05FB9C AFB90100 */ sw $t9, 0x100($sp) +/* 0946D0 7F05FBA0 0FC225E6 */ jal get_curplayer_positiondata +/* 0946D4 7F05FBA4 AFAE0024 */ sw $t6, 0x24($sp) +/* 0946D8 7F05FBA8 0FC2280B */ jal get_BONDdata_field408 +/* 0946DC 7F05FBAC AFA20048 */ sw $v0, 0x48($sp) +/* 0946E0 7F05FBB0 AFA20044 */ sw $v0, 0x44($sp) +/* 0946E4 7F05FBB4 0FC17674 */ jal get_item_in_hand +/* 0946E8 7F05FBB8 8FA40108 */ lw $a0, 0x108($sp) +/* 0946EC 7F05FBBC AFA20040 */ sw $v0, 0x40($sp) +/* 0946F0 7F05FBC0 0FC15FF4 */ jal matrix_4x4_set_identity +/* 0946F4 7F05FBC4 27A400C0 */ addiu $a0, $sp, 0xc0 +/* 0946F8 7F05FBC8 8FA80040 */ lw $t0, 0x40($sp) +/* 0946FC 7F05FBCC 24010020 */ li $at, 32 +/* 094700 7F05FBD0 27A40058 */ addiu $a0, $sp, 0x58 +/* 094704 7F05FBD4 1501005E */ bne $t0, $at, .L7F05FD50 +/* 094708 7F05FBD8 27A5004C */ addiu $a1, $sp, 0x4c +/* 09470C 7F05FBDC 0FC1F3A1 */ jal get_ptr_for_players_tank +/* 094710 7F05FBE0 00000000 */ nop +/* 094714 7F05FBE4 10400009 */ beqz $v0, .L7F05FC0C +/* 094718 7F05FBE8 AFA20030 */ sw $v0, 0x30($sp) +/* 09471C 7F05FBEC 90490001 */ lbu $t1, 1($v0) +/* 094720 7F05FBF0 312A0002 */ andi $t2, $t1, 2 +/* 094724 7F05FBF4 51400006 */ beql $t2, $zero, .L7F05FC10 +/* 094728 7F05FBF8 27A40058 */ addiu $a0, $sp, 0x58 +/* 09472C 7F05FBFC 0FC1F3AC */ jal sub_GAME_7F07CEB0 +/* 094730 7F05FC00 27A4004C */ addiu $a0, $sp, 0x4c +/* 094734 7F05FC04 10000009 */ b .L7F05FC2C +/* 094738 7F05FC08 00000000 */ nop +.L7F05FC0C: +/* 09473C 7F05FC0C 27A40058 */ addiu $a0, $sp, 0x58 +.L7F05FC10: +/* 094740 7F05FC10 0FC1A064 */ jal sub_GAME_7F068190 +/* 094744 7F05FC14 27A5004C */ addiu $a1, $sp, 0x4c +/* 094748 7F05FC18 0FC1E111 */ jal sub_GAME_7F078444 +/* 09474C 7F05FC1C 00000000 */ nop +/* 094750 7F05FC20 00402025 */ move $a0, $v0 +/* 094754 7F05FC24 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 094758 7F05FC28 27A5004C */ addiu $a1, $sp, 0x4c +.L7F05FC2C: +/* 09475C 7F05FC2C 3C018005 */ lui $at, %hi(D_80053DD8) +/* 094760 7F05FC30 C4203DD8 */ lwc1 $f0, %lo(D_80053DD8)($at) +/* 094764 7F05FC34 C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 094768 7F05FC38 C7A80050 */ lwc1 $f8, 0x50($sp) +/* 09476C 7F05FC3C C7B00054 */ lwc1 $f16, 0x54($sp) +/* 094770 7F05FC40 46002182 */ mul.s $f6, $f4, $f0 +/* 094774 7F05FC44 3C0B8005 */ lui $t3, %hi(clock_timer) +/* 094778 7F05FC48 8D6B8374 */ lw $t3, %lo(clock_timer)($t3) +/* 09477C 7F05FC4C 46004282 */ mul.s $f10, $f8, $f0 +/* 094780 7F05FC50 8FA20048 */ lw $v0, 0x48($sp) +/* 094784 7F05FC54 8FA30044 */ lw $v1, 0x44($sp) +/* 094788 7F05FC58 46008482 */ mul.s $f18, $f16, $f0 +/* 09478C 7F05FC5C E7A600B4 */ swc1 $f6, 0xb4($sp) +/* 094790 7F05FC60 E7AA00B8 */ swc1 $f10, 0xb8($sp) +/* 094794 7F05FC64 19600015 */ blez $t3, .L7F05FCBC +/* 094798 7F05FC68 E7B200BC */ swc1 $f18, 0xbc($sp) +/* 09479C 7F05FC6C C4440008 */ lwc1 $f4, 8($v0) +/* 0947A0 7F05FC70 C4680000 */ lwc1 $f8, ($v1) +/* 0947A4 7F05FC74 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0947A8 7F05FC78 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 0947AC 7F05FC7C 46082401 */ sub.s $f16, $f4, $f8 +/* 0947B0 7F05FC80 46008103 */ div.s $f4, $f16, $f0 +/* 0947B4 7F05FC84 46043200 */ add.s $f8, $f6, $f4 +/* 0947B8 7F05FC88 E7A800B4 */ swc1 $f8, 0xb4($sp) +/* 0947BC 7F05FC8C C4660004 */ lwc1 $f6, 4($v1) +/* 0947C0 7F05FC90 C450000C */ lwc1 $f16, 0xc($v0) +/* 0947C4 7F05FC94 46068101 */ sub.s $f4, $f16, $f6 +/* 0947C8 7F05FC98 46002203 */ div.s $f8, $f4, $f0 +/* 0947CC 7F05FC9C 46085400 */ add.s $f16, $f10, $f8 +/* 0947D0 7F05FCA0 E7B000B8 */ swc1 $f16, 0xb8($sp) +/* 0947D4 7F05FCA4 C4640008 */ lwc1 $f4, 8($v1) +/* 0947D8 7F05FCA8 C4460010 */ lwc1 $f6, 0x10($v0) +/* 0947DC 7F05FCAC 46043281 */ sub.s $f10, $f6, $f4 +/* 0947E0 7F05FCB0 46005203 */ div.s $f8, $f10, $f0 +/* 0947E4 7F05FCB4 46089400 */ add.s $f16, $f18, $f8 +/* 0947E8 7F05FCB8 E7B000BC */ swc1 $f16, 0xbc($sp) +.L7F05FCBC: +/* 0947EC 7F05FCBC 8FA30030 */ lw $v1, 0x30($sp) +/* 0947F0 7F05FCC0 8FA20048 */ lw $v0, 0x48($sp) +/* 0947F4 7F05FCC4 50600019 */ beql $v1, $zero, .L7F05FD2C +/* 0947F8 7F05FCC8 C4520008 */ lwc1 $f18, 8($v0) +/* 0947FC 7F05FCCC 906C0001 */ lbu $t4, 1($v1) +/* 094800 7F05FCD0 318D0002 */ andi $t5, $t4, 2 +/* 094804 7F05FCD4 51A00015 */ beql $t5, $zero, .L7F05FD2C +/* 094808 7F05FCD8 C4520008 */ lwc1 $f18, 8($v0) +/* 09480C 7F05FCDC 8C620004 */ lw $v0, 4($v1) +/* 094810 7F05FCE0 8C4E0014 */ lw $t6, 0x14($v0) +/* 094814 7F05FCE4 8DCF000C */ lw $t7, 0xc($t6) +/* 094818 7F05FCE8 C5E60130 */ lwc1 $f6, 0x130($t7) +/* 09481C 7F05FCEC E7A60034 */ swc1 $f6, 0x34($sp) +/* 094820 7F05FCF0 8C580014 */ lw $t8, 0x14($v0) +/* 094824 7F05FCF4 8F19000C */ lw $t9, 0xc($t8) +/* 094828 7F05FCF8 C7240134 */ lwc1 $f4, 0x134($t9) +/* 09482C 7F05FCFC E7A40038 */ swc1 $f4, 0x38($sp) +/* 094830 7F05FD00 8C480014 */ lw $t0, 0x14($v0) +/* 094834 7F05FD04 8D09000C */ lw $t1, 0xc($t0) +/* 094838 7F05FD08 C52A0138 */ lwc1 $f10, 0x138($t1) +/* 09483C 7F05FD0C 0FC1E111 */ jal sub_GAME_7F078444 +/* 094840 7F05FD10 E7AA003C */ swc1 $f10, 0x3c($sp) +/* 094844 7F05FD14 00402025 */ move $a0, $v0 +/* 094848 7F05FD18 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 09484C 7F05FD1C 27A50034 */ addiu $a1, $sp, 0x34 +/* 094850 7F05FD20 10000007 */ b .L7F05FD40 +/* 094854 7F05FD24 00000000 */ nop +/* 094858 7F05FD28 C4520008 */ lwc1 $f18, 8($v0) +.L7F05FD2C: +/* 09485C 7F05FD2C E7B20034 */ swc1 $f18, 0x34($sp) +/* 094860 7F05FD30 C448000C */ lwc1 $f8, 0xc($v0) +/* 094864 7F05FD34 E7A80038 */ swc1 $f8, 0x38($sp) +/* 094868 7F05FD38 C4500010 */ lwc1 $f16, 0x10($v0) +/* 09486C 7F05FD3C E7B0003C */ swc1 $f16, 0x3c($sp) +.L7F05FD40: +/* 094870 7F05FD40 0FC271EB */ jal sub_GAME_7F09C7AC +/* 094874 7F05FD44 00000000 */ nop +/* 094878 7F05FD48 1000003A */ b .L7F05FE34 +/* 09487C 7F05FD4C 00000000 */ nop +.L7F05FD50: +/* 094880 7F05FD50 0FC1A073 */ jal sub_GAME_7F0681CC +/* 094884 7F05FD54 8FA60108 */ lw $a2, 0x108($sp) +/* 094888 7F05FD58 0FC1E111 */ jal sub_GAME_7F078444 +/* 09488C 7F05FD5C 00000000 */ nop +/* 094890 7F05FD60 00402025 */ move $a0, $v0 +/* 094894 7F05FD64 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 094898 7F05FD68 27A5004C */ addiu $a1, $sp, 0x4c +/* 09489C 7F05FD6C 8FA60100 */ lw $a2, 0x100($sp) +/* 0948A0 7F05FD70 3C018005 */ lui $at, %hi(D_80053DDC) +/* 0948A4 7F05FD74 C4223DDC */ lwc1 $f2, %lo(D_80053DDC)($at) +/* 0948A8 7F05FD78 C4C602E8 */ lwc1 $f6, 0x2e8($a2) +/* 0948AC 7F05FD7C C7B2004C */ lwc1 $f18, 0x4c($sp) +/* 0948B0 7F05FD80 C7B00050 */ lwc1 $f16, 0x50($sp) +/* 0948B4 7F05FD84 E7A60034 */ swc1 $f6, 0x34($sp) +/* 0948B8 7F05FD88 C4C402EC */ lwc1 $f4, 0x2ec($a2) +/* 0948BC 7F05FD8C 46029202 */ mul.s $f8, $f18, $f2 +/* 0948C0 7F05FD90 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0948C4 7F05FD94 E7A40038 */ swc1 $f4, 0x38($sp) +/* 0948C8 7F05FD98 C4CA02F0 */ lwc1 $f10, 0x2f0($a2) +/* 0948CC 7F05FD9C 46028182 */ mul.s $f6, $f16, $f2 +/* 0948D0 7F05FDA0 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 0948D4 7F05FDA4 E7AA003C */ swc1 $f10, 0x3c($sp) +/* 0948D8 7F05FDA8 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 0948DC 7F05FDAC 46022282 */ mul.s $f10, $f4, $f2 +/* 0948E0 7F05FDB0 3C0A8005 */ lui $t2, %hi(clock_timer) +/* 0948E4 7F05FDB4 8D4A8374 */ lw $t2, %lo(clock_timer)($t2) +/* 0948E8 7F05FDB8 46004482 */ mul.s $f18, $f8, $f0 +/* 0948EC 7F05FDBC E7A800A4 */ swc1 $f8, 0xa4($sp) +/* 0948F0 7F05FDC0 E7A600A8 */ swc1 $f6, 0xa8($sp) +/* 0948F4 7F05FDC4 46003402 */ mul.s $f16, $f6, $f0 +/* 0948F8 7F05FDC8 E7AA00AC */ swc1 $f10, 0xac($sp) +/* 0948FC 7F05FDCC 8FA20044 */ lw $v0, 0x44($sp) +/* 094900 7F05FDD0 46005102 */ mul.s $f4, $f10, $f0 +/* 094904 7F05FDD4 E7B200B4 */ swc1 $f18, 0xb4($sp) +/* 094908 7F05FDD8 8FA30048 */ lw $v1, 0x48($sp) +/* 09490C 7F05FDDC E7B000B8 */ swc1 $f16, 0xb8($sp) +/* 094910 7F05FDE0 19400014 */ blez $t2, .L7F05FE34 +/* 094914 7F05FDE4 E7A400BC */ swc1 $f4, 0xbc($sp) +/* 094918 7F05FDE8 C4680008 */ lwc1 $f8, 8($v1) +/* 09491C 7F05FDEC C4460000 */ lwc1 $f6, ($v0) +/* 094920 7F05FDF0 46064281 */ sub.s $f10, $f8, $f6 +/* 094924 7F05FDF4 46005103 */ div.s $f4, $f10, $f0 +/* 094928 7F05FDF8 46049200 */ add.s $f8, $f18, $f4 +/* 09492C 7F05FDFC E7A800B4 */ swc1 $f8, 0xb4($sp) +/* 094930 7F05FE00 C44A0004 */ lwc1 $f10, 4($v0) +/* 094934 7F05FE04 C466000C */ lwc1 $f6, 0xc($v1) +/* 094938 7F05FE08 460A3481 */ sub.s $f18, $f6, $f10 +/* 09493C 7F05FE0C 46009103 */ div.s $f4, $f18, $f0 +/* 094940 7F05FE10 46048200 */ add.s $f8, $f16, $f4 +/* 094944 7F05FE14 C7A400BC */ lwc1 $f4, 0xbc($sp) +/* 094948 7F05FE18 E7A800B8 */ swc1 $f8, 0xb8($sp) +/* 09494C 7F05FE1C C44A0008 */ lwc1 $f10, 8($v0) +/* 094950 7F05FE20 C4660010 */ lwc1 $f6, 0x10($v1) +/* 094954 7F05FE24 460A3481 */ sub.s $f18, $f6, $f10 +/* 094958 7F05FE28 46009403 */ div.s $f16, $f18, $f0 +/* 09495C 7F05FE2C 46102200 */ add.s $f8, $f4, $f16 +/* 094960 7F05FE30 E7A800BC */ swc1 $f8, 0xbc($sp) +.L7F05FE34: +/* 094964 7F05FE34 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 094968 7F05FE38 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 09496C 7F05FE3C 8FAC0024 */ lw $t4, 0x24($sp) +/* 094970 7F05FE40 27A50064 */ addiu $a1, $sp, 0x64 +/* 094974 7F05FE44 016C2021 */ addu $a0, $t3, $t4 +/* 094978 7F05FE48 0FC16008 */ jal matrix_4x4_copy +/* 09497C 7F05FE4C 24840AD8 */ addiu $a0, $a0, 0xad8 +/* 094980 7F05FE50 44800000 */ mtc1 $zero, $f0 +/* 094984 7F05FE54 8FA30100 */ lw $v1, 0x100($sp) +/* 094988 7F05FE58 240D0001 */ li $t5, 1 +/* 09498C 7F05FE5C E7A00094 */ swc1 $f0, 0x94($sp) +/* 094990 7F05FE60 E7A00098 */ swc1 $f0, 0x98($sp) +/* 094994 7F05FE64 E7A0009C */ swc1 $f0, 0x9c($sp) +/* 094998 7F05FE68 8C620220 */ lw $v0, 0x220($v1) +/* 09499C 7F05FE6C 240400CA */ li $a0, 202 +/* 0949A0 7F05FE70 10400004 */ beqz $v0, .L7F05FE84 +/* 0949A4 7F05FE74 00000000 */ nop +/* 0949A8 7F05FE78 00402025 */ move $a0, $v0 +/* 0949AC 7F05FE7C 10000004 */ b .L7F05FE90 +/* 0949B0 7F05FE80 AC6D0224 */ sw $t5, 0x224($v1) +.L7F05FE84: +/* 0949B4 7F05FE84 0FC1481B */ jal create_new_item_instance_of_model +/* 0949B8 7F05FE88 24050056 */ li $a1, 86 +/* 0949BC 7F05FE8C 00402025 */ move $a0, $v0 +.L7F05FE90: +/* 0949C0 7F05FE90 10800049 */ beqz $a0, .L7F05FFB8 +/* 0949C4 7F05FE94 240EFFFF */ li $t6, -1 +/* 0949C8 7F05FE98 8C8F0064 */ lw $t7, 0x64($a0) +/* 0949CC 7F05FE9C 3C01FFF9 */ lui $at, (0xFFF9FFFF >> 16) # lui $at, 0xfff9 +/* 0949D0 7F05FEA0 3421FFFF */ ori $at, (0xFFF9FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 0949D4 7F05FEA4 01E1C024 */ and $t8, $t7, $at +/* 0949D8 7F05FEA8 A48E0082 */ sh $t6, 0x82($a0) +/* 0949DC 7F05FEAC AC980064 */ sw $t8, 0x64($a0) +/* 0949E0 7F05FEB0 0FC26C54 */ jal get_cur_playernum +/* 0949E4 7F05FEB4 AFA40104 */ sw $a0, 0x104($sp) +/* 0949E8 7F05FEB8 8FA40104 */ lw $a0, 0x104($sp) +/* 0949EC 7F05FEBC 00024440 */ sll $t0, $v0, 0x11 +/* 0949F0 7F05FEC0 27AA00C0 */ addiu $t2, $sp, 0xc0 +/* 0949F4 7F05FEC4 8C990064 */ lw $t9, 0x64($a0) +/* 0949F8 7F05FEC8 27A50034 */ addiu $a1, $sp, 0x34 +/* 0949FC 7F05FECC 27A60064 */ addiu $a2, $sp, 0x64 +/* 094A00 7F05FED0 03284825 */ or $t1, $t9, $t0 +/* 094A04 7F05FED4 AC890064 */ sw $t1, 0x64($a0) +/* 094A08 7F05FED8 AFAA0010 */ sw $t2, 0x10($sp) +/* 094A0C 7F05FEDC 0FC17B07 */ jal sub_GAME_7F05EC1C +/* 094A10 7F05FEE0 27A700B4 */ addiu $a3, $sp, 0xb4 +/* 094A14 7F05FEE4 8FA40104 */ lw $a0, 0x104($sp) +/* 094A18 7F05FEE8 8C8B0064 */ lw $t3, 0x64($a0) +/* 094A1C 7F05FEEC 316C0080 */ andi $t4, $t3, 0x80 +/* 094A20 7F05FEF0 51800032 */ beql $t4, $zero, .L7F05FFBC +/* 094A24 7F05FEF4 8FBF001C */ lw $ra, 0x1c($sp) +/* 094A28 7F05FEF8 8C82006C */ lw $v0, 0x6c($a0) +/* 094A2C 7F05FEFC 24010020 */ li $at, 32 +/* 094A30 7F05FF00 8C4D0000 */ lw $t5, ($v0) +/* 094A34 7F05FF04 35AE0080 */ ori $t6, $t5, 0x80 +/* 094A38 7F05FF08 AC4E0000 */ sw $t6, ($v0) +/* 094A3C 7F05FF0C 8FAF0040 */ lw $t7, 0x40($sp) +/* 094A40 7F05FF10 51E1002A */ beql $t7, $at, .L7F05FFBC +/* 094A44 7F05FF14 8FBF001C */ lw $ra, 0x1c($sp) +/* 094A48 7F05FF18 8C82006C */ lw $v0, 0x6c($a0) +/* 094A4C 7F05FF1C 240C003C */ li $t4, 60 +/* 094A50 7F05FF20 24050001 */ li $a1, 1 +/* 094A54 7F05FF24 8C580000 */ lw $t8, ($v0) +/* 094A58 7F05FF28 37190020 */ ori $t9, $t8, 0x20 +/* 094A5C 7F05FF2C AC590000 */ sw $t9, ($v0) +/* 094A60 7F05FF30 8C88006C */ lw $t0, 0x6c($a0) +/* 094A64 7F05FF34 C486005C */ lwc1 $f6, 0x5c($a0) +/* 094A68 7F05FF38 E50600B0 */ swc1 $f6, 0xb0($t0) +/* 094A6C 7F05FF3C 8C82006C */ lw $v0, 0x6c($a0) +/* 094A70 7F05FF40 C44A0008 */ lwc1 $f10, 8($v0) +/* 094A74 7F05FF44 E44A00B4 */ swc1 $f10, 0xb4($v0) +/* 094A78 7F05FF48 8C89006C */ lw $t1, 0x6c($a0) +/* 094A7C 7F05FF4C C7B200A4 */ lwc1 $f18, 0xa4($sp) +/* 094A80 7F05FF50 E5320010 */ swc1 $f18, 0x10($t1) +/* 094A84 7F05FF54 8C8A006C */ lw $t2, 0x6c($a0) +/* 094A88 7F05FF58 C7A400A8 */ lwc1 $f4, 0xa8($sp) +/* 094A8C 7F05FF5C E5440014 */ swc1 $f4, 0x14($t2) +/* 094A90 7F05FF60 8C8B006C */ lw $t3, 0x6c($a0) +/* 094A94 7F05FF64 C7B000AC */ lwc1 $f16, 0xac($sp) +/* 094A98 7F05FF68 E5700018 */ swc1 $f16, 0x18($t3) +/* 094A9C 7F05FF6C 8C8D006C */ lw $t5, 0x6c($a0) +/* 094AA0 7F05FF70 ADAC00BC */ sw $t4, 0xbc($t5) +/* 094AA4 7F05FF74 8C82006C */ lw $v0, 0x6c($a0) +/* 094AA8 7F05FF78 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 094AAC 7F05FF7C 8C4E0098 */ lw $t6, 0x98($v0) +/* 094AB0 7F05FF80 24460098 */ addiu $a2, $v0, 0x98 +/* 094AB4 7F05FF84 55C00006 */ bnezl $t6, .L7F05FFA0 +/* 094AB8 7F05FF88 8C4F009C */ lw $t7, 0x9c($v0) +/* 094ABC 7F05FF8C 0C002382 */ jal play_sfx_a1 +/* 094AC0 7F05FF90 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 094AC4 7F05FF94 10000009 */ b .L7F05FFBC +/* 094AC8 7F05FF98 8FBF001C */ lw $ra, 0x1c($sp) +/* 094ACC 7F05FF9C 8C4F009C */ lw $t7, 0x9c($v0) +.L7F05FFA0: +/* 094AD0 7F05FFA0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 094AD4 7F05FFA4 24050001 */ li $a1, 1 +/* 094AD8 7F05FFA8 15E00003 */ bnez $t7, .L7F05FFB8 +/* 094ADC 7F05FFAC 2446009C */ addiu $a2, $v0, 0x9c +/* 094AE0 7F05FFB0 0C002382 */ jal play_sfx_a1 +/* 094AE4 7F05FFB4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +.L7F05FFB8: +/* 094AE8 7F05FFB8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F05FFBC: +/* 094AEC 7F05FFBC 27BD0108 */ addiu $sp, $sp, 0x108 +/* 094AF0 7F05FFC0 03E00008 */ jr $ra +/* 094AF4 7F05FFC4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void handles_firing_or_throwing_weapon_in_hand(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80053DE0 +.word 0x3f733333 /*0.94999999*/ +glabel D_80053DE4 +.word 0x3d4cccd0 /*0.050000012*/ +glabel D_80053DE8 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053DEC +.word 0x3e99999a /*0.30000001*/ +glabel D_80053DF0 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053DF4 +.word 0x3e99999a /*0.30000001*/ +glabel D_80053DF8 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053DFC +.word 0x3e99999a /*0.30000001*/ +glabel D_80053E00 +.word 0x41de6666 /*27.799999*/ +glabel D_80053E04 +.word 0x3dccccce /*0.10000001*/ +glabel D_80053E08 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E0C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E10 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E14 +.word 0x3f060a92 /*0.52359879*/ +glabel D_80053E18 +.word 0x3f060a92 /*0.52359879*/ +glabel D_80053E1C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E20 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E24 +.word 0x3dccccce /*0.10000001*/ +glabel D_80053E28 +.word 0x3dccccce /*0.10000001*/ +glabel D_80053E2C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E30 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E34 +.word 0x40c90fdb /*6.2831855*/ + +/*D:80053E38*/ +glabel jpt_weapon_bullet_type +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_shotgun_mine +.word weapon_bullet_type_shotgun_mine +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_none +.word weapon_bullet_type_none + +.text +glabel handles_firing_or_throwing_weapon_in_hand +/* 094AF8 7F05FFC8 27BDFD58 */ addiu $sp, $sp, -0x2a8 +/* 094AFC 7F05FFCC 3C0F8003 */ lui $t7, %hi(D_80035C40) +/* 094B00 7F05FFD0 AFBF0034 */ sw $ra, 0x34($sp) +/* 094B04 7F05FFD4 AFB00030 */ sw $s0, 0x30($sp) +/* 094B08 7F05FFD8 25EF5C40 */ addiu $t7, %lo(D_80035C40) # addiu $t7, $t7, 0x5c40 +/* 094B0C 7F05FFDC 8DE10000 */ lw $at, ($t7) +/* 094B10 7F05FFE0 27AE0194 */ addiu $t6, $sp, 0x194 +/* 094B14 7F05FFE4 8DED0004 */ lw $t5, 4($t7) +/* 094B18 7F05FFE8 ADC10000 */ sw $at, ($t6) +/* 094B1C 7F05FFEC 8DE10008 */ lw $at, 8($t7) +/* 094B20 7F05FFF0 0004C0C0 */ sll $t8, $a0, 3 +/* 094B24 7F05FFF4 0304C023 */ subu $t8, $t8, $a0 +/* 094B28 7F05FFF8 0018C080 */ sll $t8, $t8, 2 +/* 094B2C 7F05FFFC 0304C021 */ addu $t8, $t8, $a0 +/* 094B30 7F060000 3C198008 */ lui $t9, %hi(pPlayer) +/* 094B34 7F060004 ADCD0004 */ sw $t5, 4($t6) +/* 094B38 7F060008 ADC10008 */ sw $at, 8($t6) +/* 094B3C 7F06000C 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 094B40 7F060010 0018C080 */ sll $t8, $t8, 2 +/* 094B44 7F060014 0304C021 */ addu $t8, $t8, $a0 +/* 094B48 7F060018 0018C0C0 */ sll $t8, $t8, 3 +/* 094B4C 7F06001C 03388021 */ addu $s0, $t9, $t8 +/* 094B50 7F060020 AFA0010C */ sw $zero, 0x10c($sp) +/* 094B54 7F060024 AFA00108 */ sw $zero, 0x108($sp) +/* 094B58 7F060028 26100870 */ addiu $s0, $s0, 0x870 +/* 094B5C 7F06002C 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 094B60 7F060030 AFA402A8 */ sw $a0, 0x2a8($sp) +/* 094B64 7F060034 AFA200FC */ sw $v0, 0xfc($sp) +/* 094B68 7F060038 0FC1722D */ jal get_ptr_item_statistics +/* 094B6C 7F06003C 00402025 */ move $a0, $v0 +/* 094B70 7F060040 8FAE02A8 */ lw $t6, 0x2a8($sp) +/* 094B74 7F060044 AFA200F8 */ sw $v0, 0xf8($sp) +/* 094B78 7F060048 15C0002D */ bnez $t6, .L7F060100 +/* 094B7C 7F06004C 00000000 */ nop +/* 094B80 7F060050 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 094B84 7F060054 24040001 */ li $a0, 1 +/* 094B88 7F060058 00402025 */ move $a0, $v0 +/* 094B8C 7F06005C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 094B90 7F060060 24050800 */ li $a1, 2048 +/* 094B94 7F060064 10400015 */ beqz $v0, .L7F0600BC +/* 094B98 7F060068 3C018005 */ lui $at, %hi(global_timer_delta) +/* 094B9C 7F06006C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 094BA0 7F060070 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 094BA4 7F060074 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 094BA8 7F060078 44813000 */ mtc1 $at, $f6 +/* 094BAC 7F06007C 46000100 */ add.s $f4, $f0, $f0 +/* 094BB0 7F060080 C60A01C4 */ lwc1 $f10, 0x1c4($s0) +/* 094BB4 7F060084 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 094BB8 7F060088 44819000 */ mtc1 $at, $f18 +/* 094BBC 7F06008C 46062203 */ div.s $f8, $f4, $f6 +/* 094BC0 7F060090 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 094BC4 7F060094 46085400 */ add.s $f16, $f10, $f8 +/* 094BC8 7F060098 E61001C4 */ swc1 $f16, 0x1c4($s0) +/* 094BCC 7F06009C C60401C4 */ lwc1 $f4, 0x1c4($s0) +/* 094BD0 7F0600A0 4604903C */ c.lt.s $f18, $f4 +/* 094BD4 7F0600A4 00000000 */ nop +/* 094BD8 7F0600A8 4500003F */ bc1f .L7F0601A8 +/* 094BDC 7F0600AC 00000000 */ nop +/* 094BE0 7F0600B0 44813000 */ mtc1 $at, $f6 +/* 094BE4 7F0600B4 1000003C */ b .L7F0601A8 +/* 094BE8 7F0600B8 E60601C4 */ swc1 $f6, 0x1c4($s0) +.L7F0600BC: +/* 094BEC 7F0600BC C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 094BF0 7F0600C0 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 094BF4 7F0600C4 44814000 */ mtc1 $at, $f8 +/* 094BF8 7F0600C8 46000280 */ add.s $f10, $f0, $f0 +/* 094BFC 7F0600CC C61201C4 */ lwc1 $f18, 0x1c4($s0) +/* 094C00 7F0600D0 46085403 */ div.s $f16, $f10, $f8 +/* 094C04 7F0600D4 44805000 */ mtc1 $zero, $f10 +/* 094C08 7F0600D8 46109101 */ sub.s $f4, $f18, $f16 +/* 094C0C 7F0600DC E60401C4 */ swc1 $f4, 0x1c4($s0) +/* 094C10 7F0600E0 C60601C4 */ lwc1 $f6, 0x1c4($s0) +/* 094C14 7F0600E4 460A303C */ c.lt.s $f6, $f10 +/* 094C18 7F0600E8 00000000 */ nop +/* 094C1C 7F0600EC 4500002E */ bc1f .L7F0601A8 +/* 094C20 7F0600F0 00000000 */ nop +/* 094C24 7F0600F4 44804000 */ mtc1 $zero, $f8 +/* 094C28 7F0600F8 1000002B */ b .L7F0601A8 +/* 094C2C 7F0600FC E60801C4 */ swc1 $f8, 0x1c4($s0) +.L7F060100: +/* 094C30 7F060100 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 094C34 7F060104 00002025 */ move $a0, $zero +/* 094C38 7F060108 00402025 */ move $a0, $v0 +/* 094C3C 7F06010C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 094C40 7F060110 24050800 */ li $a1, 2048 +/* 094C44 7F060114 10400013 */ beqz $v0, .L7F060164 +/* 094C48 7F060118 3C018005 */ lui $at, %hi(global_timer_delta) +/* 094C4C 7F06011C 3C01C000 */ li $at, 0xC0000000 # -2.000000 +/* 094C50 7F060120 44811000 */ mtc1 $at, $f2 +/* 094C54 7F060124 3C018005 */ lui $at, %hi(global_timer_delta) +/* 094C58 7F060128 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 094C5C 7F06012C 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 094C60 7F060130 44818000 */ mtc1 $at, $f16 +/* 094C64 7F060134 46000480 */ add.s $f18, $f0, $f0 +/* 094C68 7F060138 C60601C4 */ lwc1 $f6, 0x1c4($s0) +/* 094C6C 7F06013C 46109103 */ div.s $f4, $f18, $f16 +/* 094C70 7F060140 46043281 */ sub.s $f10, $f6, $f4 +/* 094C74 7F060144 E60A01C4 */ swc1 $f10, 0x1c4($s0) +/* 094C78 7F060148 C60801C4 */ lwc1 $f8, 0x1c4($s0) +/* 094C7C 7F06014C 4602403C */ c.lt.s $f8, $f2 +/* 094C80 7F060150 00000000 */ nop +/* 094C84 7F060154 45000014 */ bc1f .L7F0601A8 +/* 094C88 7F060158 00000000 */ nop +/* 094C8C 7F06015C 10000012 */ b .L7F0601A8 +/* 094C90 7F060160 E60201C4 */ swc1 $f2, 0x1c4($s0) +.L7F060164: +/* 094C94 7F060164 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 094C98 7F060168 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 094C9C 7F06016C 44818000 */ mtc1 $at, $f16 +/* 094CA0 7F060170 46000480 */ add.s $f18, $f0, $f0 +/* 094CA4 7F060174 C60401C4 */ lwc1 $f4, 0x1c4($s0) +/* 094CA8 7F060178 44804000 */ mtc1 $zero, $f8 +/* 094CAC 7F06017C 46109183 */ div.s $f6, $f18, $f16 +/* 094CB0 7F060180 46062280 */ add.s $f10, $f4, $f6 +/* 094CB4 7F060184 E60A01C4 */ swc1 $f10, 0x1c4($s0) +/* 094CB8 7F060188 C61201C4 */ lwc1 $f18, 0x1c4($s0) +/* 094CBC 7F06018C 4612403C */ c.lt.s $f8, $f18 +/* 094CC0 7F060190 00000000 */ nop +/* 094CC4 7F060194 45000004 */ bc1f .L7F0601A8 +/* 094CC8 7F060198 00000000 */ nop +/* 094CCC 7F06019C 44808000 */ mtc1 $zero, $f16 +/* 094CD0 7F0601A0 00000000 */ nop +/* 094CD4 7F0601A4 E61001C4 */ swc1 $f16, 0x1c4($s0) +.L7F0601A8: +/* 094CD8 7F0601A8 3C0F8003 */ lui $t7, %hi(D_80035C4C) +/* 094CDC 7F0601AC 25EF5C4C */ addiu $t7, %lo(D_80035C4C) # addiu $t7, $t7, 0x5c4c +/* 094CE0 7F0601B0 8DE10000 */ lw $at, ($t7) +/* 094CE4 7F0601B4 27AC00E0 */ addiu $t4, $sp, 0xe0 +/* 094CE8 7F0601B8 3C0E8003 */ lui $t6, %hi(D_80035C58) +/* 094CEC 7F0601BC AD810000 */ sw $at, ($t4) +/* 094CF0 7F0601C0 8DF90004 */ lw $t9, 4($t7) +/* 094CF4 7F0601C4 25CE5C58 */ addiu $t6, %lo(D_80035C58) # addiu $t6, $t6, 0x5c58 +/* 094CF8 7F0601C8 27B800D4 */ addiu $t8, $sp, 0xd4 +/* 094CFC 7F0601CC AD990004 */ sw $t9, 4($t4) +/* 094D00 7F0601D0 8DE10008 */ lw $at, 8($t7) +/* 094D04 7F0601D4 3C0D8003 */ lui $t5, %hi(D_80035C64) +/* 094D08 7F0601D8 25AD5C64 */ addiu $t5, %lo(D_80035C64) # addiu $t5, $t5, 0x5c64 +/* 094D0C 7F0601DC AD810008 */ sw $at, 8($t4) +/* 094D10 7F0601E0 8DC10000 */ lw $at, ($t6) +/* 094D14 7F0601E4 8DCF0004 */ lw $t7, 4($t6) +/* 094D18 7F0601E8 27B900C8 */ addiu $t9, $sp, 0xc8 +/* 094D1C 7F0601EC AF010000 */ sw $at, ($t8) +/* 094D20 7F0601F0 8DC10008 */ lw $at, 8($t6) +/* 094D24 7F0601F4 AF0F0004 */ sw $t7, 4($t8) +/* 094D28 7F0601F8 2403000C */ li $v1, 12 +/* 094D2C 7F0601FC AF010008 */ sw $at, 8($t8) +/* 094D30 7F060200 8DA10000 */ lw $at, ($t5) +/* 094D34 7F060204 8DAE0004 */ lw $t6, 4($t5) +/* 094D38 7F060208 AF210000 */ sw $at, ($t9) +/* 094D3C 7F06020C 8DA10008 */ lw $at, 8($t5) +/* 094D40 7F060210 AF2E0004 */ sw $t6, 4($t9) +/* 094D44 7F060214 AF210008 */ sw $at, 8($t9) +/* 094D48 7F060218 8E020198 */ lw $v0, 0x198($s0) +/* 094D4C 7F06021C C604019C */ lwc1 $f4, 0x19c($s0) +/* 094D50 7F060220 AFAC0014 */ sw $t4, 0x14($sp) +/* 094D54 7F060224 244F0003 */ addiu $t7, $v0, 3 +/* 094D58 7F060228 05E10004 */ bgez $t7, .L7F06023C +/* 094D5C 7F06022C 31F80003 */ andi $t8, $t7, 3 +/* 094D60 7F060230 13000002 */ beqz $t8, .L7F06023C +/* 094D64 7F060234 00000000 */ nop +/* 094D68 7F060238 2718FFFC */ addiu $t8, $t8, -4 +.L7F06023C: +/* 094D6C 7F06023C 03030019 */ multu $t8, $v1 +/* 094D70 7F060240 244E0001 */ addiu $t6, $v0, 1 +/* 094D74 7F060244 E7A40010 */ swc1 $f4, 0x10($sp) +/* 094D78 7F060248 0000C812 */ mflo $t9 +/* 094D7C 7F06024C 02194021 */ addu $t0, $s0, $t9 +/* 094D80 7F060250 24590002 */ addiu $t9, $v0, 2 +/* 094D84 7F060254 00430019 */ multu $v0, $v1 +/* 094D88 7F060258 25040108 */ addiu $a0, $t0, 0x108 +/* 094D8C 7F06025C AFA80044 */ sw $t0, 0x44($sp) +/* 094D90 7F060260 00006812 */ mflo $t5 +/* 094D94 7F060264 020D4821 */ addu $t1, $s0, $t5 +/* 094D98 7F060268 25250108 */ addiu $a1, $t1, 0x108 +/* 094D9C 7F06026C 05C10004 */ bgez $t6, .L7F060280 +/* 094DA0 7F060270 31CF0003 */ andi $t7, $t6, 3 +/* 094DA4 7F060274 11E00002 */ beqz $t7, .L7F060280 +/* 094DA8 7F060278 00000000 */ nop +/* 094DAC 7F06027C 25EFFFFC */ addiu $t7, $t7, -4 +.L7F060280: +/* 094DB0 7F060280 01E30019 */ multu $t7, $v1 +/* 094DB4 7F060284 AFA90040 */ sw $t1, 0x40($sp) +/* 094DB8 7F060288 0000C012 */ mflo $t8 +/* 094DBC 7F06028C 02185021 */ addu $t2, $s0, $t8 +/* 094DC0 7F060290 25460108 */ addiu $a2, $t2, 0x108 +/* 094DC4 7F060294 07210004 */ bgez $t9, .L7F0602A8 +/* 094DC8 7F060298 332D0003 */ andi $t5, $t9, 3 +/* 094DCC 7F06029C 11A00002 */ beqz $t5, .L7F0602A8 +/* 094DD0 7F0602A0 00000000 */ nop +/* 094DD4 7F0602A4 25ADFFFC */ addiu $t5, $t5, -4 +.L7F0602A8: +/* 094DD8 7F0602A8 01A30019 */ multu $t5, $v1 +/* 094DDC 7F0602AC AFAA003C */ sw $t2, 0x3c($sp) +/* 094DE0 7F0602B0 00007012 */ mflo $t6 +/* 094DE4 7F0602B4 020E5821 */ addu $t3, $s0, $t6 +/* 094DE8 7F0602B8 25670108 */ addiu $a3, $t3, 0x108 +/* 094DEC 7F0602BC 0FC16BBF */ jal sub_GAME_7F05AEFC +/* 094DF0 7F0602C0 AFAB0038 */ sw $t3, 0x38($sp) +/* 094DF4 7F0602C4 8FA40044 */ lw $a0, 0x44($sp) +/* 094DF8 7F0602C8 8FA50040 */ lw $a1, 0x40($sp) +/* 094DFC 7F0602CC 8FA6003C */ lw $a2, 0x3c($sp) +/* 094E00 7F0602D0 8FA70038 */ lw $a3, 0x38($sp) +/* 094E04 7F0602D4 C606019C */ lwc1 $f6, 0x19c($s0) +/* 094E08 7F0602D8 27AF00D4 */ addiu $t7, $sp, 0xd4 +/* 094E0C 7F0602DC AFAF0014 */ sw $t7, 0x14($sp) +/* 094E10 7F0602E0 24840138 */ addiu $a0, $a0, 0x138 +/* 094E14 7F0602E4 24A50138 */ addiu $a1, $a1, 0x138 +/* 094E18 7F0602E8 24C60138 */ addiu $a2, $a2, 0x138 +/* 094E1C 7F0602EC 24E70138 */ addiu $a3, $a3, 0x138 +/* 094E20 7F0602F0 0FC16BBF */ jal sub_GAME_7F05AEFC +/* 094E24 7F0602F4 E7A60010 */ swc1 $f6, 0x10($sp) +/* 094E28 7F0602F8 8FA40044 */ lw $a0, 0x44($sp) +/* 094E2C 7F0602FC 8FA50040 */ lw $a1, 0x40($sp) +/* 094E30 7F060300 8FA6003C */ lw $a2, 0x3c($sp) +/* 094E34 7F060304 8FA70038 */ lw $a3, 0x38($sp) +/* 094E38 7F060308 C60A019C */ lwc1 $f10, 0x19c($s0) +/* 094E3C 7F06030C 27B800C8 */ addiu $t8, $sp, 0xc8 +/* 094E40 7F060310 AFB80014 */ sw $t8, 0x14($sp) +/* 094E44 7F060314 24840168 */ addiu $a0, $a0, 0x168 +/* 094E48 7F060318 24A50168 */ addiu $a1, $a1, 0x168 +/* 094E4C 7F06031C 24C60168 */ addiu $a2, $a2, 0x168 +/* 094E50 7F060320 24E70168 */ addiu $a3, $a3, 0x168 +/* 094E54 7F060324 0FC16BBF */ jal sub_GAME_7F05AEFC +/* 094E58 7F060328 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 094E5C 7F06032C 3C028008 */ lui $v0, %hi(pPlayer) +/* 094E60 7F060330 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 094E64 7F060334 C7A800E0 */ lwc1 $f8, 0xe0($sp) +/* 094E68 7F060338 C7A400E4 */ lwc1 $f4, 0xe4($sp) +/* 094E6C 7F06033C C4520FC0 */ lwc1 $f18, 0xfc0($v0) +/* 094E70 7F060340 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 094E74 7F060344 46124402 */ mul.s $f16, $f8, $f18 +/* 094E78 7F060348 C7A800E8 */ lwc1 $f8, 0xe8($sp) +/* 094E7C 7F06034C E7B000E0 */ swc1 $f16, 0xe0($sp) +/* 094E80 7F060350 C4460FC0 */ lwc1 $f6, 0xfc0($v0) +/* 094E84 7F060354 46062282 */ mul.s $f10, $f4, $f6 +/* 094E88 7F060358 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 094E8C 7F06035C C4520FC0 */ lwc1 $f18, 0xfc0($v0) +/* 094E90 7F060360 46124102 */ mul.s $f4, $f8, $f18 +/* 094E94 7F060364 E7A400E8 */ swc1 $f4, 0xe8($sp) +/* 094E98 7F060368 C60601AC */ lwc1 $f6, 0x1ac($s0) +/* 094E9C 7F06036C 46068200 */ add.s $f8, $f16, $f6 +/* 094EA0 7F060370 E7A800E0 */ swc1 $f8, 0xe0($sp) +/* 094EA4 7F060374 C61201B0 */ lwc1 $f18, 0x1b0($s0) +/* 094EA8 7F060378 46125100 */ add.s $f4, $f10, $f18 +/* 094EAC 7F06037C 0FC1772E */ jal sub_GAME_7F05DCB8 +/* 094EB0 7F060380 E7A400E4 */ swc1 $f4, 0xe4($sp) +/* 094EB4 7F060384 C7B000E0 */ lwc1 $f16, 0xe0($sp) +/* 094EB8 7F060388 3C028005 */ lui $v0, %hi(clock_timer) +/* 094EBC 7F06038C 24428374 */ addiu $v0, %lo(clock_timer) # addiu $v0, $v0, -0x7c8c +/* 094EC0 7F060390 46008180 */ add.s $f6, $f16, $f0 +/* 094EC4 7F060394 8C590000 */ lw $t9, ($v0) +/* 094EC8 7F060398 00001825 */ move $v1, $zero +/* 094ECC 7F06039C 1B200035 */ blez $t9, .L7F060474 +/* 094ED0 7F0603A0 E7A600E0 */ swc1 $f6, 0xe0($sp) +/* 094ED4 7F0603A4 3C018005 */ lui $at, %hi(D_80053DE0) +/* 094ED8 7F0603A8 C4203DE0 */ lwc1 $f0, %lo(D_80053DE0)($at) +/* 094EDC 7F0603AC C60A00E4 */ lwc1 $f10, 0xe4($s0) +.L7F0603B0: +/* 094EE0 7F0603B0 C7A800E0 */ lwc1 $f8, 0xe0($sp) +/* 094EE4 7F0603B4 C60600E8 */ lwc1 $f6, 0xe8($s0) +/* 094EE8 7F0603B8 460A0482 */ mul.s $f18, $f0, $f10 +/* 094EEC 7F0603BC 24630001 */ addiu $v1, $v1, 1 +/* 094EF0 7F0603C0 46060282 */ mul.s $f10, $f0, $f6 +/* 094EF4 7F0603C4 46124100 */ add.s $f4, $f8, $f18 +/* 094EF8 7F0603C8 E60400E4 */ swc1 $f4, 0xe4($s0) +/* 094EFC 7F0603CC C7B000E4 */ lwc1 $f16, 0xe4($sp) +/* 094F00 7F0603D0 C60400EC */ lwc1 $f4, 0xec($s0) +/* 094F04 7F0603D4 460A8200 */ add.s $f8, $f16, $f10 +/* 094F08 7F0603D8 46040182 */ mul.s $f6, $f0, $f4 +/* 094F0C 7F0603DC E60800E8 */ swc1 $f8, 0xe8($s0) +/* 094F10 7F0603E0 C7B200E8 */ lwc1 $f18, 0xe8($sp) +/* 094F14 7F0603E4 C60800F0 */ lwc1 $f8, 0xf0($s0) +/* 094F18 7F0603E8 46069400 */ add.s $f16, $f18, $f6 +/* 094F1C 7F0603EC 46080102 */ mul.s $f4, $f0, $f8 +/* 094F20 7F0603F0 E61000EC */ swc1 $f16, 0xec($s0) +/* 094F24 7F0603F4 C7AA00D4 */ lwc1 $f10, 0xd4($sp) +/* 094F28 7F0603F8 C61000F4 */ lwc1 $f16, 0xf4($s0) +/* 094F2C 7F0603FC 46045480 */ add.s $f18, $f10, $f4 +/* 094F30 7F060400 46100202 */ mul.s $f8, $f0, $f16 +/* 094F34 7F060404 E61200F0 */ swc1 $f18, 0xf0($s0) +/* 094F38 7F060408 C7A600D8 */ lwc1 $f6, 0xd8($sp) +/* 094F3C 7F06040C C61200F8 */ lwc1 $f18, 0xf8($s0) +/* 094F40 7F060410 46083280 */ add.s $f10, $f6, $f8 +/* 094F44 7F060414 46120402 */ mul.s $f16, $f0, $f18 +/* 094F48 7F060418 E60A00F4 */ swc1 $f10, 0xf4($s0) +/* 094F4C 7F06041C C7A400DC */ lwc1 $f4, 0xdc($sp) +/* 094F50 7F060420 C60A00FC */ lwc1 $f10, 0xfc($s0) +/* 094F54 7F060424 46102180 */ add.s $f6, $f4, $f16 +/* 094F58 7F060428 460A0482 */ mul.s $f18, $f0, $f10 +/* 094F5C 7F06042C E60600F8 */ swc1 $f6, 0xf8($s0) +/* 094F60 7F060430 C7A800C8 */ lwc1 $f8, 0xc8($sp) +/* 094F64 7F060434 C6060100 */ lwc1 $f6, 0x100($s0) +/* 094F68 7F060438 46124100 */ add.s $f4, $f8, $f18 +/* 094F6C 7F06043C 46060282 */ mul.s $f10, $f0, $f6 +/* 094F70 7F060440 E60400FC */ swc1 $f4, 0xfc($s0) +/* 094F74 7F060444 C7B000CC */ lwc1 $f16, 0xcc($sp) +/* 094F78 7F060448 C6040104 */ lwc1 $f4, 0x104($s0) +/* 094F7C 7F06044C 460A8200 */ add.s $f8, $f16, $f10 +/* 094F80 7F060450 46040182 */ mul.s $f6, $f0, $f4 +/* 094F84 7F060454 E6080100 */ swc1 $f8, 0x100($s0) +/* 094F88 7F060458 C7B200D0 */ lwc1 $f18, 0xd0($sp) +/* 094F8C 7F06045C 46069400 */ add.s $f16, $f18, $f6 +/* 094F90 7F060460 E6100104 */ swc1 $f16, 0x104($s0) +/* 094F94 7F060464 8C4D0000 */ lw $t5, ($v0) +/* 094F98 7F060468 006D082A */ slt $at, $v1, $t5 +/* 094F9C 7F06046C 5420FFD0 */ bnezl $at, .L7F0603B0 +/* 094FA0 7F060470 C60A00E4 */ lwc1 $f10, 0xe4($s0) +.L7F060474: +/* 094FA4 7F060474 3C018005 */ lui $at, %hi(D_80053DE4) +/* 094FA8 7F060478 C4203DE4 */ lwc1 $f0, %lo(D_80053DE4)($at) +/* 094FAC 7F06047C C60A00E4 */ lwc1 $f10, 0xe4($s0) +/* 094FB0 7F060480 C60400E8 */ lwc1 $f4, 0xe8($s0) +/* 094FB4 7F060484 C60600EC */ lwc1 $f6, 0xec($s0) +/* 094FB8 7F060488 46005202 */ mul.s $f8, $f10, $f0 +/* 094FBC 7F06048C C60A00F0 */ lwc1 $f10, 0xf0($s0) +/* 094FC0 7F060490 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 094FC4 7F060494 46002482 */ mul.s $f18, $f4, $f0 +/* 094FC8 7F060498 C60400F4 */ lwc1 $f4, 0xf4($s0) +/* 094FCC 7F06049C 46003402 */ mul.s $f16, $f6, $f0 +/* 094FD0 7F0604A0 E60800C0 */ swc1 $f8, 0xc0($s0) +/* 094FD4 7F0604A4 C60600F8 */ lwc1 $f6, 0xf8($s0) +/* 094FD8 7F0604A8 46005202 */ mul.s $f8, $f10, $f0 +/* 094FDC 7F0604AC E61200C4 */ swc1 $f18, 0xc4($s0) +/* 094FE0 7F0604B0 C60A00FC */ lwc1 $f10, 0xfc($s0) +/* 094FE4 7F0604B4 46002482 */ mul.s $f18, $f4, $f0 +/* 094FE8 7F0604B8 E61000C8 */ swc1 $f16, 0xc8($s0) +/* 094FEC 7F0604BC C6040100 */ lwc1 $f4, 0x100($s0) +/* 094FF0 7F0604C0 46003402 */ mul.s $f16, $f6, $f0 +/* 094FF4 7F0604C4 E60800CC */ swc1 $f8, 0xcc($s0) +/* 094FF8 7F0604C8 C6060104 */ lwc1 $f6, 0x104($s0) +/* 094FFC 7F0604CC 46005202 */ mul.s $f8, $f10, $f0 +/* 095000 7F0604D0 E61200D0 */ swc1 $f18, 0xd0($s0) +/* 095004 7F0604D4 46002482 */ mul.s $f18, $f4, $f0 +/* 095008 7F0604D8 E61000D4 */ swc1 $f16, 0xd4($s0) +/* 09500C 7F0604DC 46003402 */ mul.s $f16, $f6, $f0 +/* 095010 7F0604E0 E60800D8 */ swc1 $f8, 0xd8($s0) +/* 095014 7F0604E4 E61200DC */ swc1 $f18, 0xdc($s0) +/* 095018 7F0604E8 14800009 */ bnez $a0, .L7F060510 +/* 09501C 7F0604EC E61000E0 */ swc1 $f16, 0xe0($s0) +/* 095020 7F0604F0 0FC1773A */ jal sub_GAME_7F05DCE8 +/* 095024 7F0604F4 00000000 */ nop +/* 095028 7F0604F8 C60800C0 */ lwc1 $f8, 0xc0($s0) +/* 09502C 7F0604FC C60A01B8 */ lwc1 $f10, 0x1b8($s0) +/* 095030 7F060500 46080100 */ add.s $f4, $f0, $f8 +/* 095034 7F060504 46045480 */ add.s $f18, $f10, $f4 +/* 095038 7F060508 10000008 */ b .L7F06052C +/* 09503C 7F06050C E7B20194 */ swc1 $f18, 0x194($sp) +.L7F060510: +/* 095040 7F060510 0FC1773A */ jal sub_GAME_7F05DCE8 +/* 095044 7F060514 00000000 */ nop +/* 095048 7F060518 C60600C0 */ lwc1 $f6, 0xc0($s0) +/* 09504C 7F06051C C60801B8 */ lwc1 $f8, 0x1b8($s0) +/* 095050 7F060520 46060400 */ add.s $f16, $f0, $f6 +/* 095054 7F060524 46088281 */ sub.s $f10, $f16, $f8 +/* 095058 7F060528 E7AA0194 */ swc1 $f10, 0x194($sp) +.L7F06052C: +/* 09505C 7F06052C 8FAE00F8 */ lw $t6, 0xf8($sp) +/* 095060 7F060530 C61200C4 */ lwc1 $f18, 0xc4($s0) +/* 095064 7F060534 C61001BC */ lwc1 $f16, 0x1bc($s0) +/* 095068 7F060538 C5C40008 */ lwc1 $f4, 8($t6) +/* 09506C 7F06053C 8FA400FC */ lw $a0, 0xfc($sp) +/* 095070 7F060540 24010019 */ li $at, 25 +/* 095074 7F060544 46122180 */ add.s $f6, $f4, $f18 +/* 095078 7F060548 46068200 */ add.s $f8, $f16, $f6 +/* 09507C 7F06054C E7A80198 */ swc1 $f8, 0x198($sp) +/* 095080 7F060550 C60400C8 */ lwc1 $f4, 0xc8($s0) +/* 095084 7F060554 C5CA000C */ lwc1 $f10, 0xc($t6) +/* 095088 7F060558 C61001C0 */ lwc1 $f16, 0x1c0($s0) +/* 09508C 7F06055C 46045480 */ add.s $f18, $f10, $f4 +/* 095090 7F060560 46128180 */ add.s $f6, $f16, $f18 +/* 095094 7F060564 10810005 */ beq $a0, $at, .L7F06057C +/* 095098 7F060568 E7A6019C */ swc1 $f6, 0x19c($sp) +/* 09509C 7F06056C 2401001E */ li $at, 30 +/* 0950A0 7F060570 10810002 */ beq $a0, $at, .L7F06057C +/* 0950A4 7F060574 24010017 */ li $at, 23 +/* 0950A8 7F060578 14810028 */ bne $a0, $at, .L7F06061C +.L7F06057C: +/* 0950AC 7F06057C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0950B0 7F060580 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0950B4 7F060584 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 0950B8 7F060588 44810000 */ mtc1 $at, $f0 +/* 0950BC 7F06058C C44A00A0 */ lwc1 $f10, 0xa0($v0) +/* 0950C0 7F060590 C7A80198 */ lwc1 $f8, 0x198($sp) +/* 0950C4 7F060594 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 0950C8 7F060598 46005103 */ div.s $f4, $f10, $f0 +/* 0950CC 7F06059C 44819000 */ mtc1 $at, $f18 +/* 0950D0 7F0605A0 24010019 */ li $at, 25 +/* 0950D4 7F0605A4 46044400 */ add.s $f16, $f8, $f4 +/* 0950D8 7F0605A8 C7A4019C */ lwc1 $f4, 0x19c($sp) +/* 0950DC 7F0605AC E7B00198 */ swc1 $f16, 0x198($sp) +/* 0950E0 7F0605B0 C44600A0 */ lwc1 $f6, 0xa0($v0) +/* 0950E4 7F0605B4 46069282 */ mul.s $f10, $f18, $f6 +/* 0950E8 7F0605B8 46005203 */ div.s $f8, $f10, $f0 +/* 0950EC 7F0605BC 46082400 */ add.s $f16, $f4, $f8 +/* 0950F0 7F0605C0 14810014 */ bne $a0, $at, .L7F060614 +/* 0950F4 7F0605C4 E7B0019C */ swc1 $f16, 0x19c($sp) +/* 0950F8 7F0605C8 0FC293B2 */ jal cur_player_get_screen_setting +/* 0950FC 7F0605CC 00000000 */ nop +/* 095100 7F0605D0 24010001 */ li $at, 1 +/* 095104 7F0605D4 5041000B */ beql $v0, $at, .L7F060604 +/* 095108 7F0605D8 3C014040 */ lui $at, 0x4040 +/* 09510C 7F0605DC 0FC293B2 */ jal cur_player_get_screen_setting +/* 095110 7F0605E0 00000000 */ nop +/* 095114 7F0605E4 24010002 */ li $at, 2 +/* 095118 7F0605E8 50410006 */ beql $v0, $at, .L7F060604 +/* 09511C 7F0605EC 3C014040 */ lui $at, 0x4040 +/* 095120 7F0605F0 0FC293B8 */ jal get_screen_ratio +/* 095124 7F0605F4 00000000 */ nop +/* 095128 7F0605F8 24010001 */ li $at, 1 +/* 09512C 7F0605FC 14410005 */ bne $v0, $at, .L7F060614 +/* 095130 7F060600 3C014040 */ li $at, 0x40400000 # 3.000000 +.L7F060604: +/* 095134 7F060604 44813000 */ mtc1 $at, $f6 +/* 095138 7F060608 C7B20198 */ lwc1 $f18, 0x198($sp) +/* 09513C 7F06060C 46069281 */ sub.s $f10, $f18, $f6 +/* 095140 7F060610 E7AA0198 */ swc1 $f10, 0x198($sp) +.L7F060614: +/* 095144 7F060614 1000002C */ b .L7F0606C8 +/* 095148 7F060618 8FA400FC */ lw $a0, 0xfc($sp) +.L7F06061C: +/* 09514C 7F06061C 2401001F */ li $at, 31 +/* 095150 7F060620 14810016 */ bne $a0, $at, .L7F06067C +/* 095154 7F060624 3C028008 */ lui $v0, %hi(pPlayer) +/* 095158 7F060628 3C028008 */ lui $v0, %hi(pPlayer) +/* 09515C 7F06062C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 095160 7F060630 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 095164 7F060634 44810000 */ mtc1 $at, $f0 +/* 095168 7F060638 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 09516C 7F06063C 44812000 */ mtc1 $at, $f4 +/* 095170 7F060640 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 095174 7F060644 C7A60198 */ lwc1 $f6, 0x198($sp) +/* 095178 7F060648 3C0140F0 */ li $at, 0x40F00000 # 7.500000 +/* 09517C 7F06064C 46082402 */ mul.s $f16, $f4, $f8 +/* 095180 7F060650 44812000 */ mtc1 $at, $f4 +/* 095184 7F060654 46008483 */ div.s $f18, $f16, $f0 +/* 095188 7F060658 46123280 */ add.s $f10, $f6, $f18 +/* 09518C 7F06065C C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 095190 7F060660 E7AA0198 */ swc1 $f10, 0x198($sp) +/* 095194 7F060664 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 095198 7F060668 46082402 */ mul.s $f16, $f4, $f8 +/* 09519C 7F06066C 46008183 */ div.s $f6, $f16, $f0 +/* 0951A0 7F060670 46069280 */ add.s $f10, $f18, $f6 +/* 0951A4 7F060674 10000014 */ b .L7F0606C8 +/* 0951A8 7F060678 E7AA019C */ swc1 $f10, 0x19c($sp) +.L7F06067C: +/* 0951AC 7F06067C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0951B0 7F060680 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 0951B4 7F060684 44810000 */ mtc1 $at, $f0 +/* 0951B8 7F060688 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0951BC 7F06068C 44812000 */ mtc1 $at, $f4 +/* 0951C0 7F060690 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 0951C4 7F060694 C7A60198 */ lwc1 $f6, 0x198($sp) +/* 0951C8 7F060698 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0951CC 7F06069C 46082402 */ mul.s $f16, $f4, $f8 +/* 0951D0 7F0606A0 44812000 */ mtc1 $at, $f4 +/* 0951D4 7F0606A4 46008483 */ div.s $f18, $f16, $f0 +/* 0951D8 7F0606A8 46123280 */ add.s $f10, $f6, $f18 +/* 0951DC 7F0606AC C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 0951E0 7F0606B0 E7AA0198 */ swc1 $f10, 0x198($sp) +/* 0951E4 7F0606B4 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 0951E8 7F0606B8 46082402 */ mul.s $f16, $f4, $f8 +/* 0951EC 7F0606BC 46008183 */ div.s $f6, $f16, $f0 +/* 0951F0 7F0606C0 46069280 */ add.s $f10, $f18, $f6 +/* 0951F4 7F0606C4 E7AA019C */ swc1 $f10, 0x19c($sp) +.L7F0606C8: +/* 0951F8 7F0606C8 820F000C */ lb $t7, 0xc($s0) +/* 0951FC 7F0606CC 11E00047 */ beqz $t7, .L7F0607EC +/* 095200 7F0606D0 00000000 */ nop +/* 095204 7F0606D4 0FC1782D */ jal bondwalkItemCheckBitflags +/* 095208 7F0606D8 24050020 */ li $a1, 32 +/* 09520C 7F0606DC 10400043 */ beqz $v0, .L7F0607EC +/* 095210 7F0606E0 8FA400FC */ lw $a0, 0xfc($sp) +/* 095214 7F0606E4 0FC1782D */ jal bondwalkItemCheckBitflags +/* 095218 7F0606E8 24050040 */ li $a1, 64 +/* 09521C 7F0606EC 10400016 */ beqz $v0, .L7F060748 +/* 095220 7F0606F0 00000000 */ nop +/* 095224 7F0606F4 0C002914 */ jal get_random_value +/* 095228 7F0606F8 00000000 */ nop +/* 09522C 7F0606FC 44822000 */ mtc1 $v0, $f4 +/* 095230 7F060700 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095234 7F060704 04410004 */ bgez $v0, .L7F060718 +/* 095238 7F060708 46802220 */ cvt.s.w $f8, $f4 +/* 09523C 7F06070C 44818000 */ mtc1 $at, $f16 +/* 095240 7F060710 00000000 */ nop +/* 095244 7F060714 46104200 */ add.s $f8, $f8, $f16 +.L7F060718: +/* 095248 7F060718 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09524C 7F06071C 44819000 */ mtc1 $at, $f18 +/* 095250 7F060720 3C018005 */ lui $at, %hi(D_80053DE8) +/* 095254 7F060724 C42A3DE8 */ lwc1 $f10, %lo(D_80053DE8)($at) +/* 095258 7F060728 46124182 */ mul.s $f6, $f8, $f18 +/* 09525C 7F06072C 3C018005 */ lui $at, %hi(D_80053DEC) +/* 095260 7F060730 C4303DEC */ lwc1 $f16, %lo(D_80053DEC)($at) +/* 095264 7F060734 C7B20194 */ lwc1 $f18, 0x194($sp) +/* 095268 7F060738 460A3102 */ mul.s $f4, $f6, $f10 +/* 09526C 7F06073C 46048201 */ sub.s $f8, $f16, $f4 +/* 095270 7F060740 46089180 */ add.s $f6, $f18, $f8 +/* 095274 7F060744 E7A60194 */ swc1 $f6, 0x194($sp) +.L7F060748: +/* 095278 7F060748 0C002914 */ jal get_random_value +/* 09527C 7F06074C 00000000 */ nop +/* 095280 7F060750 44825000 */ mtc1 $v0, $f10 +/* 095284 7F060754 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095288 7F060758 04410004 */ bgez $v0, .L7F06076C +/* 09528C 7F06075C 46805420 */ cvt.s.w $f16, $f10 +/* 095290 7F060760 44812000 */ mtc1 $at, $f4 +/* 095294 7F060764 00000000 */ nop +/* 095298 7F060768 46048400 */ add.s $f16, $f16, $f4 +.L7F06076C: +/* 09529C 7F06076C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0952A0 7F060770 44819000 */ mtc1 $at, $f18 +/* 0952A4 7F060774 3C018005 */ lui $at, %hi(D_80053DF0) +/* 0952A8 7F060778 C4263DF0 */ lwc1 $f6, %lo(D_80053DF0)($at) +/* 0952AC 7F06077C 46128202 */ mul.s $f8, $f16, $f18 +/* 0952B0 7F060780 3C018005 */ lui $at, %hi(D_80053DF4) +/* 0952B4 7F060784 C4243DF4 */ lwc1 $f4, %lo(D_80053DF4)($at) +/* 0952B8 7F060788 C7B20198 */ lwc1 $f18, 0x198($sp) +/* 0952BC 7F06078C 46064282 */ mul.s $f10, $f8, $f6 +/* 0952C0 7F060790 460A2401 */ sub.s $f16, $f4, $f10 +/* 0952C4 7F060794 46109200 */ add.s $f8, $f18, $f16 +/* 0952C8 7F060798 0C002914 */ jal get_random_value +/* 0952CC 7F06079C E7A80198 */ swc1 $f8, 0x198($sp) +/* 0952D0 7F0607A0 44823000 */ mtc1 $v0, $f6 +/* 0952D4 7F0607A4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0952D8 7F0607A8 04410004 */ bgez $v0, .L7F0607BC +/* 0952DC 7F0607AC 46803120 */ cvt.s.w $f4, $f6 +/* 0952E0 7F0607B0 44815000 */ mtc1 $at, $f10 +/* 0952E4 7F0607B4 00000000 */ nop +/* 0952E8 7F0607B8 460A2100 */ add.s $f4, $f4, $f10 +.L7F0607BC: +/* 0952EC 7F0607BC 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0952F0 7F0607C0 44819000 */ mtc1 $at, $f18 +/* 0952F4 7F0607C4 3C018005 */ lui $at, %hi(D_80053DF8) +/* 0952F8 7F0607C8 C4283DF8 */ lwc1 $f8, %lo(D_80053DF8)($at) +/* 0952FC 7F0607CC 46122402 */ mul.s $f16, $f4, $f18 +/* 095300 7F0607D0 3C018005 */ lui $at, %hi(D_80053DFC) +/* 095304 7F0607D4 C42A3DFC */ lwc1 $f10, %lo(D_80053DFC)($at) +/* 095308 7F0607D8 C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 09530C 7F0607DC 46088182 */ mul.s $f6, $f16, $f8 +/* 095310 7F0607E0 46065101 */ sub.s $f4, $f10, $f6 +/* 095314 7F0607E4 46049400 */ add.s $f16, $f18, $f4 +/* 095318 7F0607E8 E7B0019C */ swc1 $f16, 0x19c($sp) +.L7F0607EC: +/* 09531C 7F0607EC 0FC1E129 */ jal getPlayer_c_screenwidth +/* 095320 7F0607F0 00000000 */ nop +/* 095324 7F0607F4 0FC1E129 */ jal getPlayer_c_screenwidth +/* 095328 7F0607F8 E7A00048 */ swc1 $f0, 0x48($sp) +/* 09532C 7F0607FC 0FC1E131 */ jal getPlayer_c_screenleft +/* 095330 7F060800 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 095334 7F060804 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 095338 7F060808 3C188008 */ lui $t8, %hi(pPlayer) +/* 09533C 7F06080C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 095340 7F060810 44811000 */ mtc1 $at, $f2 +/* 095344 7F060814 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 095348 7F060818 C7080FFC */ lwc1 $f8, 0xffc($t8) +/* 09534C 7F06081C 8FB900F8 */ lw $t9, 0xf8($sp) +/* 095350 7F060820 46023482 */ mul.s $f18, $f6, $f2 +/* 095354 7F060824 46004281 */ sub.s $f10, $f8, $f0 +/* 095358 7F060828 C7300018 */ lwc1 $f16, 0x18($t9) +/* 09535C 7F06082C C7A60048 */ lwc1 $f6, 0x48($sp) +/* 095360 7F060830 46125101 */ sub.s $f4, $f10, $f18 +/* 095364 7F060834 46102202 */ mul.s $f8, $f4, $f16 +/* 095368 7F060838 C7A40194 */ lwc1 $f4, 0x194($sp) +/* 09536C 7F06083C 46023282 */ mul.s $f10, $f6, $f2 +/* 095370 7F060840 460A4483 */ div.s $f18, $f8, $f10 +/* 095374 7F060844 46122400 */ add.s $f16, $f4, $f18 +/* 095378 7F060848 0FC1E135 */ jal getPlayer_c_screentop +/* 09537C 7F06084C E7B00194 */ swc1 $f16, 0x194($sp) +/* 095380 7F060850 0FC1E12D */ jal getPlayer_c_screenheight +/* 095384 7F060854 E7A00050 */ swc1 $f0, 0x50($sp) +/* 095388 7F060858 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09538C 7F06085C 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 095390 7F060860 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 095394 7F060864 44813000 */ mtc1 $at, $f6 +/* 095398 7F060868 C7A40050 */ lwc1 $f4, 0x50($sp) +/* 09539C 7F06086C C5AA1000 */ lwc1 $f10, 0x1000($t5) +/* 0953A0 7F060870 46060202 */ mul.s $f8, $f0, $f6 +/* 0953A4 7F060874 46045481 */ sub.s $f18, $f10, $f4 +/* 0953A8 7F060878 4612403C */ c.lt.s $f8, $f18 +/* 0953AC 7F06087C 00000000 */ nop +/* 0953B0 7F060880 4500001A */ bc1f .L7F0608EC +/* 0953B4 7F060884 00000000 */ nop +/* 0953B8 7F060888 0FC1E12D */ jal getPlayer_c_screenheight +/* 0953BC 7F06088C 00000000 */ nop +/* 0953C0 7F060890 0FC1E12D */ jal getPlayer_c_screenheight +/* 0953C4 7F060894 E7A00048 */ swc1 $f0, 0x48($sp) +/* 0953C8 7F060898 0FC1E135 */ jal getPlayer_c_screentop +/* 0953CC 7F06089C E7A0004C */ swc1 $f0, 0x4c($sp) +/* 0953D0 7F0608A0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0953D4 7F0608A4 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0953D8 7F0608A8 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0953DC 7F0608AC 44811000 */ mtc1 $at, $f2 +/* 0953E0 7F0608B0 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0953E4 7F0608B4 C5D01000 */ lwc1 $f16, 0x1000($t6) +/* 0953E8 7F0608B8 8FAF00F8 */ lw $t7, 0xf8($sp) +/* 0953EC 7F0608BC 46025102 */ mul.s $f4, $f10, $f2 +/* 0953F0 7F0608C0 46008181 */ sub.s $f6, $f16, $f0 +/* 0953F4 7F0608C4 C5F20014 */ lwc1 $f18, 0x14($t7) +/* 0953F8 7F0608C8 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 0953FC 7F0608CC 46043201 */ sub.s $f8, $f6, $f4 +/* 095400 7F0608D0 46124402 */ mul.s $f16, $f8, $f18 +/* 095404 7F0608D4 C7A80198 */ lwc1 $f8, 0x198($sp) +/* 095408 7F0608D8 46025182 */ mul.s $f6, $f10, $f2 +/* 09540C 7F0608DC 46068103 */ div.s $f4, $f16, $f6 +/* 095410 7F0608E0 46044481 */ sub.s $f18, $f8, $f4 +/* 095414 7F0608E4 1000001A */ b .L7F060950 +/* 095418 7F0608E8 E7B20198 */ swc1 $f18, 0x198($sp) +.L7F0608EC: +/* 09541C 7F0608EC 0FC1E12D */ jal getPlayer_c_screenheight +/* 095420 7F0608F0 00000000 */ nop +/* 095424 7F0608F4 0FC1E12D */ jal getPlayer_c_screenheight +/* 095428 7F0608F8 E7A00048 */ swc1 $f0, 0x48($sp) +/* 09542C 7F0608FC 0FC1E135 */ jal getPlayer_c_screentop +/* 095430 7F060900 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 095434 7F060904 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 095438 7F060908 3C188008 */ lui $t8, %hi(pPlayer) +/* 09543C 7F06090C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 095440 7F060910 44818000 */ mtc1 $at, $f16 +/* 095444 7F060914 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 095448 7F060918 C7081000 */ lwc1 $f8, 0x1000($t8) +/* 09544C 7F06091C 8FB900F8 */ lw $t9, 0xf8($sp) +/* 095450 7F060920 46105182 */ mul.s $f6, $f10, $f16 +/* 095454 7F060924 46004101 */ sub.s $f4, $f8, $f0 +/* 095458 7F060928 C72A0010 */ lwc1 $f10, 0x10($t9) +/* 09545C 7F06092C C7A80048 */ lwc1 $f8, 0x48($sp) +/* 095460 7F060930 46062481 */ sub.s $f18, $f4, $f6 +/* 095464 7F060934 44812000 */ mtc1 $at, $f4 +/* 095468 7F060938 460A9402 */ mul.s $f16, $f18, $f10 +/* 09546C 7F06093C C7AA0198 */ lwc1 $f10, 0x198($sp) +/* 095470 7F060940 46044182 */ mul.s $f6, $f8, $f4 +/* 095474 7F060944 46068483 */ div.s $f18, $f16, $f6 +/* 095478 7F060948 46125201 */ sub.s $f8, $f10, $f18 +/* 09547C 7F06094C E7A80198 */ swc1 $f8, 0x198($sp) +.L7F060950: +/* 095480 7F060950 0FC17185 */ jal sub_GAME_7F05C614 +/* 095484 7F060954 00000000 */ nop +/* 095488 7F060958 0FC15FF4 */ jal matrix_4x4_set_identity +/* 09548C 7F06095C 27A40154 */ addiu $a0, $sp, 0x154 +/* 095490 7F060960 8FA200FC */ lw $v0, 0xfc($sp) +/* 095494 7F060964 2401001E */ li $at, 30 +/* 095498 7F060968 10410002 */ beq $v0, $at, .L7F060974 +/* 09549C 7F06096C 24010017 */ li $at, 23 +/* 0954A0 7F060970 14410010 */ bne $v0, $at, .L7F0609B4 +.L7F060974: +/* 0954A4 7F060974 3C0D8003 */ lui $t5, %hi(D_80035C70) +/* 0954A8 7F060978 25AD5C70 */ addiu $t5, %lo(D_80035C70) # addiu $t5, $t5, 0x5c70 +/* 0954AC 7F06097C 8DA10000 */ lw $at, ($t5) +/* 0954B0 7F060980 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 0954B4 7F060984 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 0954B8 7F060988 AC810000 */ sw $at, ($a0) +/* 0954BC 7F06098C 8DAF0004 */ lw $t7, 4($t5) +/* 0954C0 7F060990 AC8F0004 */ sw $t7, 4($a0) +/* 0954C4 7F060994 8DA10008 */ lw $at, 8($t5) +/* 0954C8 7F060998 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 0954CC 7F06099C AC810008 */ sw $at, 8($a0) +/* 0954D0 7F0609A0 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 0954D4 7F0609A4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0954D8 7F0609A8 27A50154 */ addiu $a1, $sp, 0x154 +/* 0954DC 7F0609AC 10000039 */ b .L7F060A94 +/* 0954E0 7F0609B0 8E0D00BC */ lw $t5, 0xbc($s0) +.L7F0609B4: +/* 0954E4 7F0609B4 2401001F */ li $at, 31 +/* 0954E8 7F0609B8 14410010 */ bne $v0, $at, .L7F0609FC +/* 0954EC 7F0609BC 3C188003 */ lui $t8, %hi(D_80035C7C) +/* 0954F0 7F0609C0 27185C7C */ addiu $t8, %lo(D_80035C7C) # addiu $t8, $t8, 0x5c7c +/* 0954F4 7F0609C4 8F010000 */ lw $at, ($t8) +/* 0954F8 7F0609C8 27A400AC */ addiu $a0, $sp, 0xac +/* 0954FC 7F0609CC 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095500 7F0609D0 AC810000 */ sw $at, ($a0) +/* 095504 7F0609D4 8F0E0004 */ lw $t6, 4($t8) +/* 095508 7F0609D8 AC8E0004 */ sw $t6, 4($a0) +/* 09550C 7F0609DC 8F010008 */ lw $at, 8($t8) +/* 095510 7F0609E0 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 095514 7F0609E4 AC810008 */ sw $at, 8($a0) +/* 095518 7F0609E8 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 09551C 7F0609EC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095520 7F0609F0 27A50154 */ addiu $a1, $sp, 0x154 +/* 095524 7F0609F4 10000027 */ b .L7F060A94 +/* 095528 7F0609F8 8E0D00BC */ lw $t5, 0xbc($s0) +.L7F0609FC: +/* 09552C 7F0609FC 24010001 */ li $at, 1 +/* 095530 7F060A00 14410023 */ bne $v0, $at, .L7F060A90 +/* 095534 7F060A04 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 095538 7F060A08 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 09553C 7F060A0C 24010011 */ li $at, 17 +/* 095540 7F060A10 3C198003 */ lui $t9, %hi(D_80035C88) +/* 095544 7F060A14 8DAF2A38 */ lw $t7, 0x2a38($t5) +/* 095548 7F060A18 27395C88 */ addiu $t9, %lo(D_80035C88) # addiu $t9, $t9, 0x5c88 +/* 09554C 7F060A1C 55E1001D */ bnel $t7, $at, .L7F060A94 +/* 095550 7F060A20 8E0D00BC */ lw $t5, 0xbc($s0) +/* 095554 7F060A24 8F210000 */ lw $at, ($t9) +/* 095558 7F060A28 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 09555C 7F060A2C 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095560 7F060A30 AC810000 */ sw $at, ($a0) +/* 095564 7F060A34 8F2E0004 */ lw $t6, 4($t9) +/* 095568 7F060A38 AC8E0004 */ sw $t6, 4($a0) +/* 09556C 7F060A3C 8F210008 */ lw $at, 8($t9) +/* 095570 7F060A40 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 095574 7F060A44 AC810008 */ sw $at, 8($a0) +/* 095578 7F060A48 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 09557C 7F060A4C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095580 7F060A50 27A50154 */ addiu $a1, $sp, 0x154 +/* 095584 7F060A54 3C01C020 */ li $at, 0xC0200000 # -2.500000 +/* 095588 7F060A58 44818000 */ mtc1 $at, $f16 +/* 09558C 7F060A5C C7A40194 */ lwc1 $f4, 0x194($sp) +/* 095590 7F060A60 3C018005 */ lui $at, %hi(D_80053E00) +/* 095594 7F060A64 C4323E00 */ lwc1 $f18, %lo(D_80053E00)($at) +/* 095598 7F060A68 46102180 */ add.s $f6, $f4, $f16 +/* 09559C 7F060A6C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0955A0 7F060A70 C7AA0198 */ lwc1 $f10, 0x198($sp) +/* 0955A4 7F060A74 44818000 */ mtc1 $at, $f16 +/* 0955A8 7F060A78 C7A4019C */ lwc1 $f4, 0x19c($sp) +/* 0955AC 7F060A7C E7A60194 */ swc1 $f6, 0x194($sp) +/* 0955B0 7F060A80 46125200 */ add.s $f8, $f10, $f18 +/* 0955B4 7F060A84 46102180 */ add.s $f6, $f4, $f16 +/* 0955B8 7F060A88 E7A80198 */ swc1 $f8, 0x198($sp) +/* 0955BC 7F060A8C E7A6019C */ swc1 $f6, 0x19c($sp) +.L7F060A90: +/* 0955C0 7F060A90 8E0D00BC */ lw $t5, 0xbc($s0) +.L7F060A94: +/* 0955C4 7F060A94 51A00017 */ beql $t5, $zero, .L7F060AF4 +/* 0955C8 7F060A98 44802000 */ mtc1 $zero, $f4 +/* 0955CC 7F060A9C C7AA0194 */ lwc1 $f10, 0x194($sp) +/* 0955D0 7F060AA0 C61200AC */ lwc1 $f18, 0xac($s0) +/* 0955D4 7F060AA4 C7A40198 */ lwc1 $f4, 0x198($sp) +/* 0955D8 7F060AA8 2604007C */ addiu $a0, $s0, 0x7c +/* 0955DC 7F060AAC 46125200 */ add.s $f8, $f10, $f18 +/* 0955E0 7F060AB0 C7AA019C */ lwc1 $f10, 0x19c($sp) +/* 0955E4 7F060AB4 27A50154 */ addiu $a1, $sp, 0x154 +/* 0955E8 7F060AB8 E7A80194 */ swc1 $f8, 0x194($sp) +/* 0955EC 7F060ABC C61000B0 */ lwc1 $f16, 0xb0($s0) +/* 0955F0 7F060AC0 46102180 */ add.s $f6, $f4, $f16 +/* 0955F4 7F060AC4 E7A60198 */ swc1 $f6, 0x198($sp) +/* 0955F8 7F060AC8 C61200B4 */ lwc1 $f18, 0xb4($s0) +/* 0955FC 7F060ACC 46125200 */ add.s $f8, $f10, $f18 +/* 095600 7F060AD0 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095604 7F060AD4 E7A8019C */ swc1 $f8, 0x19c($sp) +/* 095608 7F060AD8 44800000 */ mtc1 $zero, $f0 +/* 09560C 7F060ADC 00000000 */ nop +/* 095610 7F060AE0 E7A00184 */ swc1 $f0, 0x184($sp) +/* 095614 7F060AE4 E7A00188 */ swc1 $f0, 0x188($sp) +/* 095618 7F060AE8 1000000A */ b .L7F060B14 +/* 09561C 7F060AEC E7A0018C */ swc1 $f0, 0x18c($sp) +/* 095620 7F060AF0 44802000 */ mtc1 $zero, $f4 +.L7F060AF4: +/* 095624 7F060AF4 44808000 */ mtc1 $zero, $f16 +/* 095628 7F060AF8 44803000 */ mtc1 $zero, $f6 +/* 09562C 7F060AFC 44805000 */ mtc1 $zero, $f10 +/* 095630 7F060B00 44800000 */ mtc1 $zero, $f0 +/* 095634 7F060B04 E6040078 */ swc1 $f4, 0x78($s0) +/* 095638 7F060B08 E610006C */ swc1 $f16, 0x6c($s0) +/* 09563C 7F060B0C E6060070 */ swc1 $f6, 0x70($s0) +/* 095640 7F060B10 E60A0074 */ swc1 $f10, 0x74($s0) +.L7F060B14: +/* 095644 7F060B14 C61200CC */ lwc1 $f18, 0xcc($s0) +/* 095648 7F060B18 44050000 */ mfc1 $a1, $f0 +/* 09564C 7F060B1C 44060000 */ mfc1 $a2, $f0 +/* 095650 7F060B20 E7B20010 */ swc1 $f18, 0x10($sp) +/* 095654 7F060B24 C60800D0 */ lwc1 $f8, 0xd0($s0) +/* 095658 7F060B28 44070000 */ mfc1 $a3, $f0 +/* 09565C 7F060B2C 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 095660 7F060B30 E7A80014 */ swc1 $f8, 0x14($sp) +/* 095664 7F060B34 C60400D4 */ lwc1 $f4, 0xd4($s0) +/* 095668 7F060B38 E7A40018 */ swc1 $f4, 0x18($sp) +/* 09566C 7F060B3C C61000D8 */ lwc1 $f16, 0xd8($s0) +/* 095670 7F060B40 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 095674 7F060B44 C60600DC */ lwc1 $f6, 0xdc($s0) +/* 095678 7F060B48 E7A60020 */ swc1 $f6, 0x20($sp) +/* 09567C 7F060B4C C60A00E0 */ lwc1 $f10, 0xe0($s0) +/* 095680 7F060B50 0FC16642 */ jal sub_GAME_7F059908 +/* 095684 7F060B54 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 095688 7F060B58 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 09568C 7F060B5C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095690 7F060B60 27A50154 */ addiu $a1, $sp, 0x154 +/* 095694 7F060B64 C7B20194 */ lwc1 $f18, 0x194($sp) +/* 095698 7F060B68 C60801C8 */ lwc1 $f8, 0x1c8($s0) +/* 09569C 7F060B6C C7B00198 */ lwc1 $f16, 0x198($sp) +/* 0956A0 7F060B70 C60601CC */ lwc1 $f6, 0x1cc($s0) +/* 0956A4 7F060B74 46089101 */ sub.s $f4, $f18, $f8 +/* 0956A8 7F060B78 C60801D0 */ lwc1 $f8, 0x1d0($s0) +/* 0956AC 7F060B7C C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 0956B0 7F060B80 46068281 */ sub.s $f10, $f16, $f6 +/* 0956B4 7F060B84 44062000 */ mfc1 $a2, $f4 +/* 0956B8 7F060B88 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 0956BC 7F060B8C 46089101 */ sub.s $f4, $f18, $f8 +/* 0956C0 7F060B90 44075000 */ mfc1 $a3, $f10 +/* 0956C4 7F060B94 24050000 */ li $a1, 0 +/* 0956C8 7F060B98 0FC1673A */ jal matrix_4x4_align +/* 0956CC 7F060B9C E7A40010 */ swc1 $f4, 0x10($sp) +/* 0956D0 7F060BA0 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 0956D4 7F060BA4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0956D8 7F060BA8 27A50154 */ addiu $a1, $sp, 0x154 +/* 0956DC 7F060BAC 27A40154 */ addiu $a0, $sp, 0x154 +/* 0956E0 7F060BB0 0FC16008 */ jal matrix_4x4_copy +/* 0956E4 7F060BB4 27A50264 */ addiu $a1, $sp, 0x264 +/* 0956E8 7F060BB8 27A40194 */ addiu $a0, $sp, 0x194 +/* 0956EC 7F060BBC 0FC16266 */ jal matrix_4x4_set_position +/* 0956F0 7F060BC0 27A50264 */ addiu $a1, $sp, 0x264 +/* 0956F4 7F060BC4 26050228 */ addiu $a1, $s0, 0x228 +/* 0956F8 7F060BC8 AFA50044 */ sw $a1, 0x44($sp) +/* 0956FC 7F060BCC 0FC16008 */ jal matrix_4x4_copy +/* 095700 7F060BD0 27A40264 */ addiu $a0, $sp, 0x264 +/* 095704 7F060BD4 26040268 */ addiu $a0, $s0, 0x268 +/* 095708 7F060BD8 AFA40040 */ sw $a0, 0x40($sp) +/* 09570C 7F060BDC 0FC16008 */ jal matrix_4x4_copy +/* 095710 7F060BE0 260502A8 */ addiu $a1, $s0, 0x2a8 +/* 095714 7F060BE4 0FC1E111 */ jal sub_GAME_7F078444 +/* 095718 7F060BE8 00000000 */ nop +/* 09571C 7F060BEC 00402025 */ move $a0, $v0 +/* 095720 7F060BF0 8FA50044 */ lw $a1, 0x44($sp) +/* 095724 7F060BF4 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 095728 7F060BF8 8FA60040 */ lw $a2, 0x40($sp) +/* 09572C 7F060BFC 240F0001 */ li $t7, 1 +/* 095730 7F060C00 A20F000F */ sb $t7, 0xf($s0) +/* 095734 7F060C04 0FC17412 */ jal get_ptr_weapon_model_header_line +/* 095738 7F060C08 8FA400FC */ lw $a0, 0xfc($sp) +/* 09573C 7F060C0C 10400017 */ beqz $v0, .L7F060C6C +/* 095740 7F060C10 8FA400FC */ lw $a0, 0xfc($sp) +/* 095744 7F060C14 0FC1782D */ jal bondwalkItemCheckBitflags +/* 095748 7F060C18 24050800 */ li $a1, 2048 +/* 09574C 7F060C1C 10400013 */ beqz $v0, .L7F060C6C +/* 095750 7F060C20 8FA400FC */ lw $a0, 0xfc($sp) +/* 095754 7F060C24 0FC1782D */ jal bondwalkItemCheckBitflags +/* 095758 7F060C28 24052000 */ li $a1, 8192 +/* 09575C 7F060C2C 54400010 */ bnezl $v0, .L7F060C70 +/* 095760 7F060C30 A200000F */ sb $zero, 0xf($s0) +/* 095764 7F060C34 8E020024 */ lw $v0, 0x24($s0) +/* 095768 7F060C38 24010006 */ li $at, 6 +/* 09576C 7F060C3C 1041000B */ beq $v0, $at, .L7F060C6C +/* 095770 7F060C40 24010007 */ li $at, 7 +/* 095774 7F060C44 5041000A */ beql $v0, $at, .L7F060C70 +/* 095778 7F060C48 A200000F */ sb $zero, 0xf($s0) +/* 09577C 7F060C4C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 095780 7F060C50 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 095784 7F060C54 50400006 */ beql $v0, $zero, .L7F060C70 +/* 095788 7F060C58 A200000F */ sb $zero, 0xf($s0) +/* 09578C 7F060C5C 0FC173C0 */ jal get_itemtype_in_hand +/* 095790 7F060C60 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 095794 7F060C64 54400003 */ bnezl $v0, .L7F060C74 +/* 095798 7F060C68 8E18002C */ lw $t8, 0x2c($s0) +.L7F060C6C: +/* 09579C 7F060C6C A200000F */ sb $zero, 0xf($s0) +.L7F060C70: +/* 0957A0 7F060C70 8E18002C */ lw $t8, 0x2c($s0) +.L7F060C74: +/* 0957A4 7F060C74 8FA400FC */ lw $a0, 0xfc($sp) +/* 0957A8 7F060C78 5F000007 */ bgtzl $t8, .L7F060C98 +/* 0957AC 7F060C7C 8219000F */ lb $t9, 0xf($s0) +/* 0957B0 7F060C80 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0957B4 7F060C84 24050002 */ li $a1, 2 +/* 0957B8 7F060C88 50400003 */ beql $v0, $zero, .L7F060C98 +/* 0957BC 7F060C8C 8219000F */ lb $t9, 0xf($s0) +/* 0957C0 7F060C90 A200000F */ sb $zero, 0xf($s0) +/* 0957C4 7F060C94 8219000F */ lb $t9, 0xf($s0) +.L7F060C98: +/* 0957C8 7F060C98 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0957CC 7F060C9C 8FAD02A8 */ lw $t5, 0x2a8($sp) +/* 0957D0 7F060CA0 532002CD */ beql $t9, $zero, .L7F0617D8 +/* 0957D4 7F060CA4 8FAF00FC */ lw $t7, 0xfc($sp) +/* 0957D8 7F060CA8 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0957DC 7F060CAC 000D7940 */ sll $t7, $t5, 5 +/* 0957E0 7F060CB0 00001825 */ move $v1, $zero +/* 0957E4 7F060CB4 01CF1021 */ addu $v0, $t6, $t7 +/* 0957E8 7F060CB8 8444081E */ lh $a0, 0x81e($v0) +/* 0957EC 7F060CBC 24420810 */ addiu $v0, $v0, 0x810 +/* 0957F0 7F060CC0 AFA201A0 */ sw $v0, 0x1a0($sp) +/* 0957F4 7F060CC4 0004C180 */ sll $t8, $a0, 6 +/* 0957F8 7F060CC8 03002025 */ move $a0, $t8 +/* 0957FC 7F060CCC 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 095800 7F060CD0 AFA00100 */ sw $zero, 0x100($sp) +/* 095804 7F060CD4 8FB901A0 */ lw $t9, 0x1a0($sp) +/* 095808 7F060CD8 AFA202A4 */ sw $v0, 0x2a4($sp) +/* 09580C 7F060CDC 8FA30100 */ lw $v1, 0x100($sp) +/* 095810 7F060CE0 872D000E */ lh $t5, 0xe($t9) +/* 095814 7F060CE4 19A0000D */ blez $t5, .L7F060D1C +/* 095818 7F060CE8 00402025 */ move $a0, $v0 +/* 09581C 7F060CEC AFA30100 */ sw $v1, 0x100($sp) +.L7F060CF0: +/* 095820 7F060CF0 0FC15FF4 */ jal matrix_4x4_set_identity +/* 095824 7F060CF4 AFA40044 */ sw $a0, 0x44($sp) +/* 095828 7F060CF8 8FAE01A0 */ lw $t6, 0x1a0($sp) +/* 09582C 7F060CFC 8FA30100 */ lw $v1, 0x100($sp) +/* 095830 7F060D00 8FA40044 */ lw $a0, 0x44($sp) +/* 095834 7F060D04 85CF000E */ lh $t7, 0xe($t6) +/* 095838 7F060D08 24630001 */ addiu $v1, $v1, 1 +/* 09583C 7F060D0C 24840040 */ addiu $a0, $a0, 0x40 +/* 095840 7F060D10 006F082A */ slt $at, $v1, $t7 +/* 095844 7F060D14 5420FFF6 */ bnezl $at, .L7F060CF0 +/* 095848 7F060D18 AFA30100 */ sw $v1, 0x100($sp) +.L7F060D1C: +/* 09584C 7F060D1C 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 095850 7F060D20 8FA401A0 */ lw $a0, 0x1a0($sp) +/* 095854 7F060D24 260402F8 */ addiu $a0, $s0, 0x2f8 +/* 095858 7F060D28 8FA501A0 */ lw $a1, 0x1a0($sp) +/* 09585C 7F060D2C AFA40044 */ sw $a0, 0x44($sp) +/* 095860 7F060D30 0FC1D7DA */ jal sub_GAME_7F075F68 +/* 095864 7F060D34 26060318 */ addiu $a2, $s0, 0x318 +/* 095868 7F060D38 8FA40044 */ lw $a0, 0x44($sp) +/* 09586C 7F060D3C 0FC17A5E */ jal sub_GAME_7F05E978 +/* 095870 7F060D40 24050001 */ li $a1, 1 +/* 095874 7F060D44 8FA40044 */ lw $a0, 0x44($sp) +/* 095878 7F060D48 0FC17AA5 */ jal sub_GAME_7F05EA94 +/* 09587C 7F060D4C 8205000E */ lb $a1, 0xe($s0) +/* 095880 7F060D50 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 095884 7F060D54 8F020008 */ lw $v0, 8($t8) +/* 095888 7F060D58 8C440004 */ lw $a0, 4($v0) +/* 09588C 7F060D5C 50800008 */ beql $a0, $zero, .L7F060D80 +/* 095890 7F060D60 8C43000C */ lw $v1, 0xc($v0) +/* 095894 7F060D64 8C830004 */ lw $v1, 4($a0) +/* 095898 7F060D68 94790004 */ lhu $t9, 4($v1) +/* 09589C 7F060D6C 00196880 */ sll $t5, $t9, 2 +/* 0958A0 7F060D70 020D7021 */ addu $t6, $s0, $t5 +/* 0958A4 7F060D74 25CF0318 */ addiu $t7, $t6, 0x318 +/* 0958A8 7F060D78 AFAF010C */ sw $t7, 0x10c($sp) +/* 0958AC 7F060D7C 8C43000C */ lw $v1, 0xc($v0) +.L7F060D80: +/* 0958B0 7F060D80 50600004 */ beql $v1, $zero, .L7F060D94 +/* 0958B4 7F060D84 8FB902A4 */ lw $t9, 0x2a4($sp) +/* 0958B8 7F060D88 8C780004 */ lw $t8, 4($v1) +/* 0958BC 7F060D8C AFB80108 */ sw $t8, 0x108($sp) +/* 0958C0 7F060D90 8FB902A4 */ lw $t9, 0x2a4($sp) +.L7F060D94: +/* 0958C4 7F060D94 24050400 */ li $a1, 1024 +/* 0958C8 7F060D98 AE190304 */ sw $t9, 0x304($s0) +/* 0958CC 7F060D9C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0958D0 7F060DA0 8FA400FC */ lw $a0, 0xfc($sp) +/* 0958D4 7F060DA4 10400008 */ beqz $v0, .L7F060DC8 +/* 0958D8 7F060DA8 00000000 */ nop +/* 0958DC 7F060DAC 8FAD02A8 */ lw $t5, 0x2a8($sp) +/* 0958E0 7F060DB0 24010001 */ li $at, 1 +/* 0958E4 7F060DB4 15A10004 */ bne $t5, $at, .L7F060DC8 +/* 0958E8 7F060DB8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0958EC 7F060DBC 44816000 */ mtc1 $at, $f12 +/* 0958F0 7F060DC0 0FC1626D */ jal matrix_column_1_scalar_multiply +/* 0958F4 7F060DC4 27A50264 */ addiu $a1, $sp, 0x264 +.L7F060DC8: +/* 0958F8 7F060DC8 3C018005 */ lui $at, %hi(D_80053E04) +/* 0958FC 7F060DCC C42C3E04 */ lwc1 $f12, %lo(D_80053E04)($at) +/* 095900 7F060DD0 0FC1629F */ jal matrix_scalar_multiply +/* 095904 7F060DD4 27A50264 */ addiu $a1, $sp, 0x264 +/* 095908 7F060DD8 27A40264 */ addiu $a0, $sp, 0x264 +/* 09590C 7F060DDC 0FC16008 */ jal matrix_4x4_copy +/* 095910 7F060DE0 8FA502A4 */ lw $a1, 0x2a4($sp) +/* 095914 7F060DE4 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 095918 7F060DE8 3C0E8004 */ lui $t6, %hi(weapon_gun_revolver) +/* 09591C 7F060DEC 25CEC76C */ addiu $t6, %lo(weapon_gun_revolver) # addiu $t6, $t6, -0x3894 +/* 095920 7F060DF0 8DF80004 */ lw $t8, 4($t7) +/* 095924 7F060DF4 55D80078 */ bnel $t6, $t8, .L7F060FD8 +/* 095928 7F060DF8 8FA2010C */ lw $v0, 0x10c($sp) +/* 09592C 7F060DFC 8DE20008 */ lw $v0, 8($t7) +/* 095930 7F060E00 8FB900FC */ lw $t9, 0xfc($sp) +/* 095934 7F060E04 24010012 */ li $at, 18 +/* 095938 7F060E08 8C430010 */ lw $v1, 0x10($v0) +/* 09593C 7F060E0C 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095940 7F060E10 50600041 */ beql $v1, $zero, .L7F060F18 +/* 095944 7F060E14 8C430014 */ lw $v1, 0x14($v0) +/* 095948 7F060E18 44806000 */ mtc1 $zero, $f12 +/* 09594C 7F060E1C 17210021 */ bne $t9, $at, .L7F060EA4 +/* 095950 7F060E20 8C640004 */ lw $a0, 4($v1) +/* 095954 7F060E24 8E0D0024 */ lw $t5, 0x24($s0) +/* 095958 7F060E28 24010001 */ li $at, 1 +/* 09595C 7F060E2C 55A10012 */ bnel $t5, $at, .L7F060E78 +/* 095960 7F060E30 8E18002C */ lw $t8, 0x2c($s0) +/* 095964 7F060E34 8E18002C */ lw $t8, 0x2c($s0) +/* 095968 7F060E38 8E0E0020 */ lw $t6, 0x20($s0) +/* 09596C 7F060E3C 3C018005 */ lui $at, %hi(D_80053E08) +/* 095970 7F060E40 00187880 */ sll $t7, $t8, 2 +/* 095974 7F060E44 01F87823 */ subu $t7, $t7, $t8 +/* 095978 7F060E48 000F7840 */ sll $t7, $t7, 1 +/* 09597C 7F060E4C 01CFC823 */ subu $t9, $t6, $t7 +/* 095980 7F060E50 272D001E */ addiu $t5, $t9, 0x1e +/* 095984 7F060E54 448D8000 */ mtc1 $t5, $f16 +/* 095988 7F060E58 C42A3E08 */ lwc1 $f10, %lo(D_80053E08)($at) +/* 09598C 7F060E5C 3C014210 */ li $at, 0x42100000 # 36.000000 +/* 095990 7F060E60 468081A0 */ cvt.s.w $f6, $f16 +/* 095994 7F060E64 44814000 */ mtc1 $at, $f8 +/* 095998 7F060E68 460A3482 */ mul.s $f18, $f6, $f10 +/* 09599C 7F060E6C 1000001D */ b .L7F060EE4 +/* 0959A0 7F060E70 46089303 */ div.s $f12, $f18, $f8 +/* 0959A4 7F060E74 8E18002C */ lw $t8, 0x2c($s0) +.L7F060E78: +/* 0959A8 7F060E78 240E0006 */ li $t6, 6 +/* 0959AC 7F060E7C 3C018005 */ lui $at, %hi(D_80053E0C) +/* 0959B0 7F060E80 01D87823 */ subu $t7, $t6, $t8 +/* 0959B4 7F060E84 448F2000 */ mtc1 $t7, $f4 +/* 0959B8 7F060E88 C4263E0C */ lwc1 $f6, %lo(D_80053E0C)($at) +/* 0959BC 7F060E8C 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 0959C0 7F060E90 46802420 */ cvt.s.w $f16, $f4 +/* 0959C4 7F060E94 44819000 */ mtc1 $at, $f18 +/* 0959C8 7F060E98 46068282 */ mul.s $f10, $f16, $f6 +/* 0959CC 7F060E9C 10000011 */ b .L7F060EE4 +/* 0959D0 7F060EA0 46125303 */ div.s $f12, $f10, $f18 +.L7F060EA4: +/* 0959D4 7F060EA4 8E190024 */ lw $t9, 0x24($s0) +/* 0959D8 7F060EA8 24010001 */ li $at, 1 +/* 0959DC 7F060EAC 1721000D */ bne $t9, $at, .L7F060EE4 +/* 0959E0 7F060EB0 00000000 */ nop +/* 0959E4 7F060EB4 8E020020 */ lw $v0, 0x20($s0) +/* 0959E8 7F060EB8 28410006 */ slti $at, $v0, 6 +/* 0959EC 7F060EBC 10200009 */ beqz $at, .L7F060EE4 +/* 0959F0 7F060EC0 00000000 */ nop +/* 0959F4 7F060EC4 44824000 */ mtc1 $v0, $f8 +/* 0959F8 7F060EC8 3C018005 */ lui $at, %hi(D_80053E10) +/* 0959FC 7F060ECC C4303E10 */ lwc1 $f16, %lo(D_80053E10)($at) +/* 095A00 7F060ED0 46804120 */ cvt.s.w $f4, $f8 +/* 095A04 7F060ED4 3C014210 */ li $at, 0x42100000 # 36.000000 +/* 095A08 7F060ED8 44815000 */ mtc1 $at, $f10 +/* 095A0C 7F060EDC 46102182 */ mul.s $f6, $f4, $f16 +/* 095A10 7F060EE0 460A3303 */ div.s $f12, $f6, $f10 +.L7F060EE4: +/* 095A14 7F060EE4 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 095A18 7F060EE8 AFA4009C */ sw $a0, 0x9c($sp) +/* 095A1C 7F060EEC 8FA4009C */ lw $a0, 0x9c($sp) +/* 095A20 7F060EF0 0FC16266 */ jal matrix_4x4_set_position +/* 095A24 7F060EF4 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095A28 7F060EF8 8FA602A4 */ lw $a2, 0x2a4($sp) +/* 095A2C 7F060EFC 27A40264 */ addiu $a0, $sp, 0x264 +/* 095A30 7F060F00 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095A34 7F060F04 0FC16032 */ jal matrix_4x4_multiply +/* 095A38 7F060F08 24C600C0 */ addiu $a2, $a2, 0xc0 +/* 095A3C 7F060F0C 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 095A40 7F060F10 8DA20008 */ lw $v0, 8($t5) +/* 095A44 7F060F14 8C430014 */ lw $v1, 0x14($v0) +.L7F060F18: +/* 095A48 7F060F18 5060002F */ beql $v1, $zero, .L7F060FD8 +/* 095A4C 7F060F1C 8FA2010C */ lw $v0, 0x10c($sp) +/* 095A50 7F060F20 8E0E0024 */ lw $t6, 0x24($s0) +/* 095A54 7F060F24 24010001 */ li $at, 1 +/* 095A58 7F060F28 8C640004 */ lw $a0, 4($v1) +/* 095A5C 7F060F2C 15C10022 */ bne $t6, $at, .L7F060FB8 +/* 095A60 7F060F30 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095A64 7F060F34 8E020020 */ lw $v0, 0x20($s0) +/* 095A68 7F060F38 24180006 */ li $t8, 6 +/* 095A6C 7F060F3C 28410003 */ slti $at, $v0, 3 +/* 095A70 7F060F40 1020000C */ beqz $at, .L7F060F74 +/* 095A74 7F060F44 03027823 */ subu $t7, $t8, $v0 +/* 095A78 7F060F48 44829000 */ mtc1 $v0, $f18 +/* 095A7C 7F060F4C 3C018005 */ lui $at, %hi(D_80053E14) +/* 095A80 7F060F50 C4303E14 */ lwc1 $f16, %lo(D_80053E14)($at) +/* 095A84 7F060F54 46809220 */ cvt.s.w $f8, $f18 +/* 095A88 7F060F58 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 095A8C 7F060F5C 44815000 */ mtc1 $at, $f10 +/* 095A90 7F060F60 46004107 */ neg.s $f4, $f8 +/* 095A94 7F060F64 46102002 */ mul.s $f0, $f4, $f16 +/* 095A98 7F060F68 46000180 */ add.s $f6, $f0, $f0 +/* 095A9C 7F060F6C 1000000B */ b .L7F060F9C +/* 095AA0 7F060F70 460A3303 */ div.s $f12, $f6, $f10 +.L7F060F74: +/* 095AA4 7F060F74 448F9000 */ mtc1 $t7, $f18 +/* 095AA8 7F060F78 3C018005 */ lui $at, %hi(D_80053E18) +/* 095AAC 7F060F7C C4303E18 */ lwc1 $f16, %lo(D_80053E18)($at) +/* 095AB0 7F060F80 46809220 */ cvt.s.w $f8, $f18 +/* 095AB4 7F060F84 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 095AB8 7F060F88 44815000 */ mtc1 $at, $f10 +/* 095ABC 7F060F8C 46004107 */ neg.s $f4, $f8 +/* 095AC0 7F060F90 46102002 */ mul.s $f0, $f4, $f16 +/* 095AC4 7F060F94 46000180 */ add.s $f6, $f0, $f0 +/* 095AC8 7F060F98 460A3303 */ div.s $f12, $f6, $f10 +.L7F060F9C: +/* 095ACC 7F060F9C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 095AD0 7F060FA0 AFA40094 */ sw $a0, 0x94($sp) +/* 095AD4 7F060FA4 8FA40094 */ lw $a0, 0x94($sp) +/* 095AD8 7F060FA8 0FC16266 */ jal matrix_4x4_set_position +/* 095ADC 7F060FAC 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095AE0 7F060FB0 10000004 */ b .L7F060FC4 +/* 095AE4 7F060FB4 8FA602A4 */ lw $a2, 0x2a4($sp) +.L7F060FB8: +/* 095AE8 7F060FB8 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 095AEC 7F060FBC 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095AF0 7F060FC0 8FA602A4 */ lw $a2, 0x2a4($sp) +.L7F060FC4: +/* 095AF4 7F060FC4 27A40264 */ addiu $a0, $sp, 0x264 +/* 095AF8 7F060FC8 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095AFC 7F060FCC 0FC16032 */ jal matrix_4x4_multiply +/* 095B00 7F060FD0 24C60100 */ addiu $a2, $a2, 0x100 +/* 095B04 7F060FD4 8FA2010C */ lw $v0, 0x10c($sp) +.L7F060FD8: +/* 095B08 7F060FD8 50400003 */ beql $v0, $zero, .L7F060FE8 +/* 095B0C 7F060FDC 8FB90108 */ lw $t9, 0x108($sp) +/* 095B10 7F060FE0 AC400000 */ sw $zero, ($v0) +/* 095B14 7F060FE4 8FB90108 */ lw $t9, 0x108($sp) +.L7F060FE8: +/* 095B18 7F060FE8 53200142 */ beql $t9, $zero, .L7F0614F4 +/* 095B1C 7F060FEC C6100260 */ lwc1 $f16, 0x260($s0) +/* 095B20 7F060FF0 0C002914 */ jal get_random_value +/* 095B24 7F060FF4 00000000 */ nop +/* 095B28 7F060FF8 44829000 */ mtc1 $v0, $f18 +/* 095B2C 7F060FFC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095B30 7F061000 04410004 */ bgez $v0, .L7F061014 +/* 095B34 7F061004 46809220 */ cvt.s.w $f8, $f18 +/* 095B38 7F061008 44812000 */ mtc1 $at, $f4 +/* 095B3C 7F06100C 00000000 */ nop +/* 095B40 7F061010 46044200 */ add.s $f8, $f8, $f4 +.L7F061014: +/* 095B44 7F061014 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 095B48 7F061018 44818000 */ mtc1 $at, $f16 +/* 095B4C 7F06101C 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 095B50 7F061020 44815000 */ mtc1 $at, $f10 +/* 095B54 7F061024 46104182 */ mul.s $f6, $f8, $f16 +/* 095B58 7F061028 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 095B5C 7F06102C 44812000 */ mtc1 $at, $f4 +/* 095B60 7F061030 8FAD00F8 */ lw $t5, 0xf8($sp) +/* 095B64 7F061034 8FA400FC */ lw $a0, 0xfc($sp) +/* 095B68 7F061038 24050001 */ li $a1, 1 +/* 095B6C 7F06103C 460A3482 */ mul.s $f18, $f6, $f10 +/* 095B70 7F061040 46049200 */ add.s $f8, $f18, $f4 +/* 095B74 7F061044 E7A80080 */ swc1 $f8, 0x80($sp) +/* 095B78 7F061048 C5B00000 */ lwc1 $f16, ($t5) +/* 095B7C 7F06104C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 095B80 7F061050 E7B0007C */ swc1 $f16, 0x7c($sp) +/* 095B84 7F061054 10400018 */ beqz $v0, .L7F0610B8 +/* 095B88 7F061058 8FA40108 */ lw $a0, 0x108($sp) +/* 095B8C 7F06105C 0C002914 */ jal get_random_value +/* 095B90 7F061060 00000000 */ nop +/* 095B94 7F061064 44823000 */ mtc1 $v0, $f6 +/* 095B98 7F061068 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095B9C 7F06106C 04410004 */ bgez $v0, .L7F061080 +/* 095BA0 7F061070 468032A0 */ cvt.s.w $f10, $f6 +/* 095BA4 7F061074 44819000 */ mtc1 $at, $f18 +/* 095BA8 7F061078 00000000 */ nop +/* 095BAC 7F06107C 46125280 */ add.s $f10, $f10, $f18 +.L7F061080: +/* 095BB0 7F061080 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 095BB4 7F061084 44812000 */ mtc1 $at, $f4 +/* 095BB8 7F061088 3C018005 */ lui $at, %hi(D_80053E1C) +/* 095BBC 7F06108C C4303E1C */ lwc1 $f16, %lo(D_80053E1C)($at) +/* 095BC0 7F061090 46045202 */ mul.s $f8, $f10, $f4 +/* 095BC4 7F061094 27A50224 */ addiu $a1, $sp, 0x224 +/* 095BC8 7F061098 46104302 */ mul.s $f12, $f8, $f16 +/* 095BCC 7F06109C 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 095BD0 7F0610A0 00000000 */ nop +/* 095BD4 7F0610A4 8FA40108 */ lw $a0, 0x108($sp) +/* 095BD8 7F0610A8 0FC16266 */ jal matrix_4x4_set_position +/* 095BDC 7F0610AC 27A50224 */ addiu $a1, $sp, 0x224 +/* 095BE0 7F0610B0 10000004 */ b .L7F0610C4 +/* 095BE4 7F0610B4 C7AC0080 */ lwc1 $f12, 0x80($sp) +.L7F0610B8: +/* 095BE8 7F0610B8 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 095BEC 7F0610BC 27A50224 */ addiu $a1, $sp, 0x224 +/* 095BF0 7F0610C0 C7AC0080 */ lwc1 $f12, 0x80($sp) +.L7F0610C4: +/* 095BF4 7F0610C4 0FC1629F */ jal matrix_scalar_multiply +/* 095BF8 7F0610C8 27A50224 */ addiu $a1, $sp, 0x224 +/* 095BFC 7F0610CC C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 095C00 7F0610D0 0FC16285 */ jal matrix_column_3_scalar_multiply +/* 095C04 7F0610D4 27A50224 */ addiu $a1, $sp, 0x224 +/* 095C08 7F0610D8 27A40264 */ addiu $a0, $sp, 0x264 +/* 095C0C 7F0610DC 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 095C10 7F0610E0 27A50224 */ addiu $a1, $sp, 0x224 +/* 095C14 7F0610E4 8FA502A4 */ lw $a1, 0x2a4($sp) +/* 095C18 7F0610E8 27A40224 */ addiu $a0, $sp, 0x224 +/* 095C1C 7F0610EC 0FC16008 */ jal matrix_4x4_copy +/* 095C20 7F0610F0 24A50040 */ addiu $a1, $a1, 0x40 +/* 095C24 7F0610F4 C7A60254 */ lwc1 $f6, 0x254($sp) +/* 095C28 7F0610F8 E60602E8 */ swc1 $f6, 0x2e8($s0) +/* 095C2C 7F0610FC C7B20258 */ lwc1 $f18, 0x258($sp) +/* 095C30 7F061100 E61202EC */ swc1 $f18, 0x2ec($s0) +/* 095C34 7F061104 C7AA025C */ lwc1 $f10, 0x25c($sp) +/* 095C38 7F061108 0FC1E111 */ jal sub_GAME_7F078444 +/* 095C3C 7F06110C E60A02F0 */ swc1 $f10, 0x2f0($s0) +/* 095C40 7F061110 00402025 */ move $a0, $v0 +/* 095C44 7F061114 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 095C48 7F061118 260502E8 */ addiu $a1, $s0, 0x2e8 +/* 095C4C 7F06111C C7A4025C */ lwc1 $f4, 0x25c($sp) +/* 095C50 7F061120 820E000D */ lb $t6, 0xd($s0) +/* 095C54 7F061124 46002207 */ neg.s $f8, $f4 +/* 095C58 7F061128 11C000EE */ beqz $t6, .L7F0614E4 +/* 095C5C 7F06112C E60802F4 */ swc1 $f8, 0x2f4($s0) +/* 095C60 7F061130 8FB8010C */ lw $t8, 0x10c($sp) +/* 095C64 7F061134 240F0001 */ li $t7, 1 +/* 095C68 7F061138 53000003 */ beql $t8, $zero, .L7F061148 +/* 095C6C 7F06113C 8FB901A0 */ lw $t9, 0x1a0($sp) +/* 095C70 7F061140 AF0F0000 */ sw $t7, ($t8) +/* 095C74 7F061144 8FB901A0 */ lw $t9, 0x1a0($sp) +.L7F061148: +/* 095C78 7F061148 8F2D0008 */ lw $t5, 8($t9) +/* 095C7C 7F06114C 8DA30008 */ lw $v1, 8($t5) +/* 095C80 7F061150 5060006D */ beql $v1, $zero, .L7F061308 +/* 095C84 7F061154 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 095C88 7F061158 8C620004 */ lw $v0, 4($v1) +/* 095C8C 7F06115C C7A60224 */ lwc1 $f6, 0x224($sp) +/* 095C90 7F061160 C7A40234 */ lwc1 $f4, 0x234($sp) +/* 095C94 7F061164 C4500000 */ lwc1 $f16, ($v0) +/* 095C98 7F061168 C44A0004 */ lwc1 $f10, 4($v0) +/* 095C9C 7F06116C 46068482 */ mul.s $f18, $f16, $f6 +/* 095CA0 7F061170 C4460008 */ lwc1 $f6, 8($v0) +/* 095CA4 7F061174 46045202 */ mul.s $f8, $f10, $f4 +/* 095CA8 7F061178 C7AA0244 */ lwc1 $f10, 0x244($sp) +/* 095CAC 7F06117C 460A3102 */ mul.s $f4, $f6, $f10 +/* 095CB0 7F061180 46089400 */ add.s $f16, $f18, $f8 +/* 095CB4 7F061184 C7A80254 */ lwc1 $f8, 0x254($sp) +/* 095CB8 7F061188 46048480 */ add.s $f18, $f16, $f4 +/* 095CBC 7F06118C C7B00228 */ lwc1 $f16, 0x228($sp) +/* 095CC0 7F061190 46124180 */ add.s $f6, $f8, $f18 +/* 095CC4 7F061194 C7B20238 */ lwc1 $f18, 0x238($sp) +/* 095CC8 7F061198 E7A60084 */ swc1 $f6, 0x84($sp) +/* 095CCC 7F06119C C44A0000 */ lwc1 $f10, ($v0) +/* 095CD0 7F0611A0 C4480004 */ lwc1 $f8, 4($v0) +/* 095CD4 7F0611A4 46105102 */ mul.s $f4, $f10, $f16 +/* 095CD8 7F0611A8 C4500008 */ lwc1 $f16, 8($v0) +/* 095CDC 7F0611AC 46124182 */ mul.s $f6, $f8, $f18 +/* 095CE0 7F0611B0 C7A80248 */ lwc1 $f8, 0x248($sp) +/* 095CE4 7F0611B4 46088482 */ mul.s $f18, $f16, $f8 +/* 095CE8 7F0611B8 46062280 */ add.s $f10, $f4, $f6 +/* 095CEC 7F0611BC C7A60258 */ lwc1 $f6, 0x258($sp) +/* 095CF0 7F0611C0 46125100 */ add.s $f4, $f10, $f18 +/* 095CF4 7F0611C4 C7AA022C */ lwc1 $f10, 0x22c($sp) +/* 095CF8 7F0611C8 46043400 */ add.s $f16, $f6, $f4 +/* 095CFC 7F0611CC C7A4023C */ lwc1 $f4, 0x23c($sp) +/* 095D00 7F0611D0 E7B00088 */ swc1 $f16, 0x88($sp) +/* 095D04 7F0611D4 C4480000 */ lwc1 $f8, ($v0) +/* 095D08 7F0611D8 C4460004 */ lwc1 $f6, 4($v0) +/* 095D0C 7F0611DC 460A4482 */ mul.s $f18, $f8, $f10 +/* 095D10 7F0611E0 C44A0008 */ lwc1 $f10, 8($v0) +/* 095D14 7F0611E4 46043402 */ mul.s $f16, $f6, $f4 +/* 095D18 7F0611E8 C7A6024C */ lwc1 $f6, 0x24c($sp) +/* 095D1C 7F0611EC 46065102 */ mul.s $f4, $f10, $f6 +/* 095D20 7F0611F0 46109200 */ add.s $f8, $f18, $f16 +/* 095D24 7F0611F4 C7B0025C */ lwc1 $f16, 0x25c($sp) +/* 095D28 7F0611F8 46044480 */ add.s $f18, $f8, $f4 +/* 095D2C 7F0611FC 46128280 */ add.s $f10, $f16, $f18 +/* 095D30 7F061200 0C002914 */ jal get_random_value +/* 095D34 7F061204 E7AA008C */ swc1 $f10, 0x8c($sp) +/* 095D38 7F061208 44823000 */ mtc1 $v0, $f6 +/* 095D3C 7F06120C 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 095D40 7F061210 04410005 */ bgez $v0, .L7F061228 +/* 095D44 7F061214 46803220 */ cvt.s.w $f8, $f6 +/* 095D48 7F061218 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095D4C 7F06121C 44812000 */ mtc1 $at, $f4 +/* 095D50 7F061220 00000000 */ nop +/* 095D54 7F061224 46044200 */ add.s $f8, $f8, $f4 +.L7F061228: +/* 095D58 7F061228 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 095D5C 7F06122C 44818000 */ mtc1 $at, $f16 +/* 095D60 7F061230 3C018005 */ lui $at, %hi(D_80053E20) +/* 095D64 7F061234 C42A3E20 */ lwc1 $f10, %lo(D_80053E20)($at) +/* 095D68 7F061238 46104482 */ mul.s $f18, $f8, $f16 +/* 095D6C 7F06123C C7B00088 */ lwc1 $f16, 0x88($sp) +/* 095D70 7F061240 C7A40084 */ lwc1 $f4, 0x84($sp) +/* 095D74 7F061244 46002207 */ neg.s $f8, $f4 +/* 095D78 7F061248 460A9182 */ mul.s $f6, $f18, $f10 +/* 095D7C 7F06124C C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 095D80 7F061250 46008487 */ neg.s $f18, $f16 +/* 095D84 7F061254 44064000 */ mfc1 $a2, $f8 +/* 095D88 7F061258 44079000 */ mfc1 $a3, $f18 +/* 095D8C 7F06125C 44053000 */ mfc1 $a1, $f6 +/* 095D90 7F061260 46005187 */ neg.s $f6, $f10 +/* 095D94 7F061264 0FC1673A */ jal matrix_4x4_align +/* 095D98 7F061268 E7A60010 */ swc1 $f6, 0x10($sp) +/* 095D9C 7F06126C 3C018005 */ lui $at, %hi(D_80053E24) +/* 095DA0 7F061270 C4243E24 */ lwc1 $f4, %lo(D_80053E24)($at) +/* 095DA4 7F061274 C7A80080 */ lwc1 $f8, 0x80($sp) +/* 095DA8 7F061278 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095DAC 7F06127C 46082302 */ mul.s $f12, $f4, $f8 +/* 095DB0 7F061280 0FC1629F */ jal matrix_scalar_multiply +/* 095DB4 7F061284 00000000 */ nop +/* 095DB8 7F061288 C7B00194 */ lwc1 $f16, 0x194($sp) +/* 095DBC 7F06128C C61201C8 */ lwc1 $f18, 0x1c8($s0) +/* 095DC0 7F061290 C7A60198 */ lwc1 $f6, 0x198($sp) +/* 095DC4 7F061294 C60401CC */ lwc1 $f4, 0x1cc($s0) +/* 095DC8 7F061298 46128281 */ sub.s $f10, $f16, $f18 +/* 095DCC 7F06129C C61201D0 */ lwc1 $f18, 0x1d0($s0) +/* 095DD0 7F0612A0 C7B0019C */ lwc1 $f16, 0x19c($sp) +/* 095DD4 7F0612A4 46043201 */ sub.s $f8, $f6, $f4 +/* 095DD8 7F0612A8 44065000 */ mfc1 $a2, $f10 +/* 095DDC 7F0612AC 27A40114 */ addiu $a0, $sp, 0x114 +/* 095DE0 7F0612B0 46128281 */ sub.s $f10, $f16, $f18 +/* 095DE4 7F0612B4 44074000 */ mfc1 $a3, $f8 +/* 095DE8 7F0612B8 24050000 */ li $a1, 0 +/* 095DEC 7F0612BC 0FC166D6 */ jal sub_GAME_7F059B58 +/* 095DF0 7F0612C0 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 095DF4 7F0612C4 27A40114 */ addiu $a0, $sp, 0x114 +/* 095DF8 7F0612C8 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 095DFC 7F0612CC 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095E00 7F0612D0 C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 095E04 7F0612D4 0FC162E0 */ jal matrix_row_3_scalar_multiply +/* 095E08 7F0612D8 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095E0C 7F0612DC 27A40154 */ addiu $a0, $sp, 0x154 +/* 095E10 7F0612E0 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 095E14 7F0612E4 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095E18 7F0612E8 27A40084 */ addiu $a0, $sp, 0x84 +/* 095E1C 7F0612EC 0FC16266 */ jal matrix_4x4_set_position +/* 095E20 7F0612F0 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095E24 7F0612F4 8FA502A4 */ lw $a1, 0x2a4($sp) +/* 095E28 7F0612F8 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 095E2C 7F0612FC 0FC16008 */ jal matrix_4x4_copy +/* 095E30 7F061300 24A50080 */ addiu $a1, $a1, 0x80 +/* 095E34 7F061304 8FAF01A0 */ lw $t7, 0x1a0($sp) +.L7F061308: +/* 095E38 7F061308 3C0E8004 */ lui $t6, %hi(weapon_gun_kf7) +/* 095E3C 7F06130C 25CEC7AC */ addiu $t6, %lo(weapon_gun_kf7) # addiu $t6, $t6, -0x3854 +/* 095E40 7F061310 8DF80004 */ lw $t8, 4($t7) +/* 095E44 7F061314 55D80074 */ bnel $t6, $t8, .L7F0614E8 +/* 095E48 7F061318 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 095E4C 7F06131C 8DF90008 */ lw $t9, 8($t7) +/* 095E50 7F061320 8F230010 */ lw $v1, 0x10($t9) +/* 095E54 7F061324 50600070 */ beql $v1, $zero, .L7F0614E8 +/* 095E58 7F061328 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 095E5C 7F06132C 8C620004 */ lw $v0, 4($v1) +/* 095E60 7F061330 C7A40224 */ lwc1 $f4, 0x224($sp) +/* 095E64 7F061334 C7B20234 */ lwc1 $f18, 0x234($sp) +/* 095E68 7F061338 C4460000 */ lwc1 $f6, ($v0) +/* 095E6C 7F06133C C4500004 */ lwc1 $f16, 4($v0) +/* 095E70 7F061340 3C018005 */ lui $at, %hi(D_80053E28) +/* 095E74 7F061344 46043202 */ mul.s $f8, $f6, $f4 +/* 095E78 7F061348 C4440008 */ lwc1 $f4, 8($v0) +/* 095E7C 7F06134C 8FAD02A4 */ lw $t5, 0x2a4($sp) +/* 095E80 7F061350 46128282 */ mul.s $f10, $f16, $f18 +/* 095E84 7F061354 C7B00244 */ lwc1 $f16, 0x244($sp) +/* 095E88 7F061358 25AE00C0 */ addiu $t6, $t5, 0xc0 +/* 095E8C 7F06135C 46102482 */ mul.s $f18, $f4, $f16 +/* 095E90 7F061360 460A4180 */ add.s $f6, $f8, $f10 +/* 095E94 7F061364 C7AA0254 */ lwc1 $f10, 0x254($sp) +/* 095E98 7F061368 46123200 */ add.s $f8, $f6, $f18 +/* 095E9C 7F06136C C7A60228 */ lwc1 $f6, 0x228($sp) +/* 095EA0 7F061370 46085100 */ add.s $f4, $f10, $f8 +/* 095EA4 7F061374 C7A80238 */ lwc1 $f8, 0x238($sp) +/* 095EA8 7F061378 E7A40084 */ swc1 $f4, 0x84($sp) +/* 095EAC 7F06137C C4500000 */ lwc1 $f16, ($v0) +/* 095EB0 7F061380 C44A0004 */ lwc1 $f10, 4($v0) +/* 095EB4 7F061384 46068482 */ mul.s $f18, $f16, $f6 +/* 095EB8 7F061388 C4460008 */ lwc1 $f6, 8($v0) +/* 095EBC 7F06138C 46085102 */ mul.s $f4, $f10, $f8 +/* 095EC0 7F061390 C7AA0248 */ lwc1 $f10, 0x248($sp) +/* 095EC4 7F061394 460A3202 */ mul.s $f8, $f6, $f10 +/* 095EC8 7F061398 46049400 */ add.s $f16, $f18, $f4 +/* 095ECC 7F06139C C7A40258 */ lwc1 $f4, 0x258($sp) +/* 095ED0 7F0613A0 46088480 */ add.s $f18, $f16, $f8 +/* 095ED4 7F0613A4 C7B0022C */ lwc1 $f16, 0x22c($sp) +/* 095ED8 7F0613A8 46122180 */ add.s $f6, $f4, $f18 +/* 095EDC 7F0613AC C7B2023C */ lwc1 $f18, 0x23c($sp) +/* 095EE0 7F0613B0 E7A60088 */ swc1 $f6, 0x88($sp) +/* 095EE4 7F0613B4 C44A0000 */ lwc1 $f10, ($v0) +/* 095EE8 7F0613B8 C4440004 */ lwc1 $f4, 4($v0) +/* 095EEC 7F0613BC 46105202 */ mul.s $f8, $f10, $f16 +/* 095EF0 7F0613C0 C4500008 */ lwc1 $f16, 8($v0) +/* 095EF4 7F0613C4 AFAE0040 */ sw $t6, 0x40($sp) +/* 095EF8 7F0613C8 46122182 */ mul.s $f6, $f4, $f18 +/* 095EFC 7F0613CC C7A4024C */ lwc1 $f4, 0x24c($sp) +/* 095F00 7F0613D0 46048482 */ mul.s $f18, $f16, $f4 +/* 095F04 7F0613D4 C4243E28 */ lwc1 $f4, %lo(D_80053E28)($at) +/* 095F08 7F0613D8 46064280 */ add.s $f10, $f8, $f6 +/* 095F0C 7F0613DC C7A6025C */ lwc1 $f6, 0x25c($sp) +/* 095F10 7F0613E0 46125200 */ add.s $f8, $f10, $f18 +/* 095F14 7F0613E4 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 095F18 7F0613E8 460A2482 */ mul.s $f18, $f4, $f10 +/* 095F1C 7F0613EC 46083400 */ add.s $f16, $f6, $f8 +/* 095F20 7F0613F0 E7B0008C */ swc1 $f16, 0x8c($sp) +/* 095F24 7F0613F4 0C002914 */ jal get_random_value +/* 095F28 7F0613F8 E7B20038 */ swc1 $f18, 0x38($sp) +/* 095F2C 7F0613FC 44823000 */ mtc1 $v0, $f6 +/* 095F30 7F061400 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 095F34 7F061404 04410005 */ bgez $v0, .L7F06141C +/* 095F38 7F061408 46803220 */ cvt.s.w $f8, $f6 +/* 095F3C 7F06140C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095F40 7F061410 44818000 */ mtc1 $at, $f16 +/* 095F44 7F061414 00000000 */ nop +/* 095F48 7F061418 46104200 */ add.s $f8, $f8, $f16 +.L7F06141C: +/* 095F4C 7F06141C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 095F50 7F061420 44812000 */ mtc1 $at, $f4 +/* 095F54 7F061424 3C018005 */ lui $at, %hi(D_80053E2C) +/* 095F58 7F061428 C4323E2C */ lwc1 $f18, %lo(D_80053E2C)($at) +/* 095F5C 7F06142C 46044282 */ mul.s $f10, $f8, $f4 +/* 095F60 7F061430 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 095F64 7F061434 C7B00084 */ lwc1 $f16, 0x84($sp) +/* 095F68 7F061438 46008207 */ neg.s $f8, $f16 +/* 095F6C 7F06143C 46125182 */ mul.s $f6, $f10, $f18 +/* 095F70 7F061440 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 095F74 7F061444 46002287 */ neg.s $f10, $f4 +/* 095F78 7F061448 44064000 */ mfc1 $a2, $f8 +/* 095F7C 7F06144C 44075000 */ mfc1 $a3, $f10 +/* 095F80 7F061450 44053000 */ mfc1 $a1, $f6 +/* 095F84 7F061454 46009187 */ neg.s $f6, $f18 +/* 095F88 7F061458 0FC1673A */ jal matrix_4x4_align +/* 095F8C 7F06145C E7A60010 */ swc1 $f6, 0x10($sp) +/* 095F90 7F061460 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 095F94 7F061464 0FC1629F */ jal matrix_scalar_multiply +/* 095F98 7F061468 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095F9C 7F06146C C7B00194 */ lwc1 $f16, 0x194($sp) +/* 095FA0 7F061470 C60801C8 */ lwc1 $f8, 0x1c8($s0) +/* 095FA4 7F061474 C7AA0198 */ lwc1 $f10, 0x198($sp) +/* 095FA8 7F061478 C61201CC */ lwc1 $f18, 0x1cc($s0) +/* 095FAC 7F06147C 46088101 */ sub.s $f4, $f16, $f8 +/* 095FB0 7F061480 C60801D0 */ lwc1 $f8, 0x1d0($s0) +/* 095FB4 7F061484 C7B0019C */ lwc1 $f16, 0x19c($sp) +/* 095FB8 7F061488 46125181 */ sub.s $f6, $f10, $f18 +/* 095FBC 7F06148C 44062000 */ mfc1 $a2, $f4 +/* 095FC0 7F061490 27A40114 */ addiu $a0, $sp, 0x114 +/* 095FC4 7F061494 46088101 */ sub.s $f4, $f16, $f8 +/* 095FC8 7F061498 44073000 */ mfc1 $a3, $f6 +/* 095FCC 7F06149C 24050000 */ li $a1, 0 +/* 095FD0 7F0614A0 0FC166D6 */ jal sub_GAME_7F059B58 +/* 095FD4 7F0614A4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 095FD8 7F0614A8 27A40114 */ addiu $a0, $sp, 0x114 +/* 095FDC 7F0614AC 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 095FE0 7F0614B0 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095FE4 7F0614B4 C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 095FE8 7F0614B8 0FC162E0 */ jal matrix_row_3_scalar_multiply +/* 095FEC 7F0614BC 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095FF0 7F0614C0 27A40154 */ addiu $a0, $sp, 0x154 +/* 095FF4 7F0614C4 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 095FF8 7F0614C8 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095FFC 7F0614CC 27A40084 */ addiu $a0, $sp, 0x84 +/* 096000 7F0614D0 0FC16266 */ jal matrix_4x4_set_position +/* 096004 7F0614D4 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 096008 7F0614D8 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 09600C 7F0614DC 0FC16008 */ jal matrix_4x4_copy +/* 096010 7F0614E0 8FA50040 */ lw $a1, 0x40($sp) +.L7F0614E4: +/* 096014 7F0614E4 8FB801A0 */ lw $t8, 0x1a0($sp) +.L7F0614E8: +/* 096018 7F0614E8 1000000C */ b .L7F06151C +/* 09601C 7F0614EC 8F020008 */ lw $v0, 8($t8) +/* 096020 7F0614F0 C6100260 */ lwc1 $f16, 0x260($s0) +.L7F0614F4: +/* 096024 7F0614F4 C60A0298 */ lwc1 $f10, 0x298($s0) +/* 096028 7F0614F8 C612029C */ lwc1 $f18, 0x29c($s0) +/* 09602C 7F0614FC C60602A0 */ lwc1 $f6, 0x2a0($s0) +/* 096030 7F061500 46008207 */ neg.s $f8, $f16 +/* 096034 7F061504 E60A02E8 */ swc1 $f10, 0x2e8($s0) +/* 096038 7F061508 E60802F4 */ swc1 $f8, 0x2f4($s0) +/* 09603C 7F06150C E61202EC */ swc1 $f18, 0x2ec($s0) +/* 096040 7F061510 E60602F0 */ swc1 $f6, 0x2f0($s0) +/* 096044 7F061514 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 096048 7F061518 8DE20008 */ lw $v0, 8($t7) +.L7F06151C: +/* 09604C 7F06151C 8C440018 */ lw $a0, 0x18($v0) +/* 096050 7F061520 50800043 */ beql $a0, $zero, .L7F061630 +/* 096054 7F061524 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 096058 7F061528 8C990004 */ lw $t9, 4($a0) +/* 09605C 7F06152C 00002825 */ move $a1, $zero +/* 096060 7F061530 0FC1B15C */ jal sub_GAME_7F06C570 +/* 096064 7F061534 AFB90070 */ sw $t9, 0x70($sp) +/* 096068 7F061538 AFA2006C */ sw $v0, 0x6c($sp) +/* 09606C 7F06153C 8E050010 */ lw $a1, 0x10($s0) +/* 096070 7F061540 0FC179AD */ jal sub_GAME_7F05E6B4 +/* 096074 7F061544 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096078 7F061548 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 09607C 7F06154C 8FA40070 */ lw $a0, 0x70($sp) +/* 096080 7F061550 27A601A4 */ addiu $a2, $sp, 0x1a4 +/* 096084 7F061554 85AE000C */ lh $t6, 0xc($t5) +/* 096088 7F061558 29C1001D */ slti $at, $t6, 0x1d +/* 09608C 7F06155C 1420002A */ bnez $at, .L7F061608 +/* 096090 7F061560 00000000 */ nop +/* 096094 7F061564 8DB80008 */ lw $t8, 8($t5) +/* 096098 7F061568 8F030070 */ lw $v1, 0x70($t8) +/* 09609C 7F06156C 10600026 */ beqz $v1, .L7F061608 +/* 0960A0 7F061570 00000000 */ nop +/* 0960A4 7F061574 8C620004 */ lw $v0, 4($v1) +/* 0960A8 7F061578 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0960AC 7F06157C 0FC17999 */ jal get_value_if_watch_is_on_hand_or_not +/* 0960B0 7F061580 AFA20068 */ sw $v0, 0x68($sp) +/* 0960B4 7F061584 3C018005 */ lui $at, %hi(D_80053E30) +/* 0960B8 7F061588 C42A3E30 */ lwc1 $f10, %lo(D_80053E30)($at) +/* 0960BC 7F06158C C6040214 */ lwc1 $f4, 0x214($s0) +/* 0960C0 7F061590 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0960C4 7F061594 44818000 */ mtc1 $at, $f16 +/* 0960C8 7F061598 460A2480 */ add.s $f18, $f4, $f10 +/* 0960CC 7F06159C 3C018005 */ lui $at, %hi(D_80053E34) +/* 0960D0 7F0615A0 C4243E34 */ lwc1 $f4, %lo(D_80053E34)($at) +/* 0960D4 7F0615A4 8FA20068 */ lw $v0, 0x68($sp) +/* 0960D8 7F0615A8 46009181 */ sub.s $f6, $f18, $f0 +/* 0960DC 7F0615AC 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 0960E0 7F0615B0 C4520000 */ lwc1 $f18, ($v0) +/* 0960E4 7F0615B4 46103202 */ mul.s $f8, $f6, $f16 +/* 0960E8 7F0615B8 C446000C */ lwc1 $f6, 0xc($v0) +/* 0960EC 7F0615BC 46069401 */ sub.s $f16, $f18, $f6 +/* 0960F0 7F0615C0 C4460014 */ lwc1 $f6, 0x14($v0) +/* 0960F4 7F0615C4 C4520008 */ lwc1 $f18, 8($v0) +/* 0960F8 7F0615C8 46044283 */ div.s $f10, $f8, $f4 +/* 0960FC 7F0615CC C4440010 */ lwc1 $f4, 0x10($v0) +/* 096100 7F0615D0 C4480004 */ lwc1 $f8, 4($v0) +/* 096104 7F0615D4 44068000 */ mfc1 $a2, $f16 +/* 096108 7F0615D8 46069401 */ sub.s $f16, $f18, $f6 +/* 09610C 7F0615DC E7B00010 */ swc1 $f16, 0x10($sp) +/* 096110 7F0615E0 44055000 */ mfc1 $a1, $f10 +/* 096114 7F0615E4 46044281 */ sub.s $f10, $f8, $f4 +/* 096118 7F0615E8 44075000 */ mfc1 $a3, $f10 +/* 09611C 7F0615EC 0C005DC8 */ jal guRotateF +/* 096120 7F0615F0 00000000 */ nop +/* 096124 7F0615F4 8FA40070 */ lw $a0, 0x70($sp) +/* 096128 7F0615F8 0FC16266 */ jal matrix_4x4_set_position +/* 09612C 7F0615FC 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 096130 7F061600 10000004 */ b .L7F061614 +/* 096134 7F061604 8FAF006C */ lw $t7, 0x6c($sp) +.L7F061608: +/* 096138 7F061608 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 09613C 7F06160C 8E050214 */ lw $a1, 0x214($s0) +/* 096140 7F061610 8FAF006C */ lw $t7, 0x6c($sp) +.L7F061614: +/* 096144 7F061614 8FAE02A4 */ lw $t6, 0x2a4($sp) +/* 096148 7F061618 27A40264 */ addiu $a0, $sp, 0x264 +/* 09614C 7F06161C 000FC980 */ sll $t9, $t7, 6 +/* 096150 7F061620 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 096154 7F061624 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 096158 7F061628 032E3021 */ addu $a2, $t9, $t6 +/* 09615C 7F06162C 8FAD01A0 */ lw $t5, 0x1a0($sp) +.L7F061630: +/* 096160 7F061630 8FA40044 */ lw $a0, 0x44($sp) +/* 096164 7F061634 85B8000C */ lh $t8, 0xc($t5) +/* 096168 7F061638 01A02825 */ move $a1, $t5 +/* 09616C 7F06163C 2B01001E */ slti $at, $t8, 0x1e +/* 096170 7F061640 54200004 */ bnezl $at, .L7F061654 +/* 096174 7F061644 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 096178 7F061648 0FC21F05 */ jal seems_to_load_cuff_microcode +/* 09617C 7F06164C 2406001D */ li $a2, 29 +/* 096180 7F061650 8FAF01A0 */ lw $t7, 0x1a0($sp) +.L7F061654: +/* 096184 7F061654 8DF90008 */ lw $t9, 8($t7) +/* 096188 7F061658 8F24001C */ lw $a0, 0x1c($t9) +/* 09618C 7F06165C 50800017 */ beql $a0, $zero, .L7F0616BC +/* 096190 7F061660 8FB901A0 */ lw $t9, 0x1a0($sp) +/* 096194 7F061664 8C8E0004 */ lw $t6, 4($a0) +/* 096198 7F061668 00002825 */ move $a1, $zero +/* 09619C 7F06166C 0FC1B15C */ jal sub_GAME_7F06C570 +/* 0961A0 7F061670 AFAE0064 */ sw $t6, 0x64($sp) +/* 0961A4 7F061674 AFA20060 */ sw $v0, 0x60($sp) +/* 0961A8 7F061678 0FC17A0F */ jal sub_GAME_7F05E83C +/* 0961AC 7F06167C 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0961B0 7F061680 8FA40064 */ lw $a0, 0x64($sp) +/* 0961B4 7F061684 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 0961B8 7F061688 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 0961BC 7F06168C C7A801DC */ lwc1 $f8, 0x1dc($sp) +/* 0961C0 7F061690 C6040218 */ lwc1 $f4, 0x218($s0) +/* 0961C4 7F061694 8FB80060 */ lw $t8, 0x60($sp) +/* 0961C8 7F061698 8FAF02A4 */ lw $t7, 0x2a4($sp) +/* 0961CC 7F06169C 46044281 */ sub.s $f10, $f8, $f4 +/* 0961D0 7F0616A0 00186980 */ sll $t5, $t8, 6 +/* 0961D4 7F0616A4 27A40264 */ addiu $a0, $sp, 0x264 +/* 0961D8 7F0616A8 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 0961DC 7F0616AC E7AA01DC */ swc1 $f10, 0x1dc($sp) +/* 0961E0 7F0616B0 0FC16032 */ jal matrix_4x4_multiply +/* 0961E4 7F0616B4 01AF3021 */ addu $a2, $t5, $t7 +/* 0961E8 7F0616B8 8FB901A0 */ lw $t9, 0x1a0($sp) +.L7F0616BC: +/* 0961EC 7F0616BC 00001825 */ move $v1, $zero +/* 0961F0 7F0616C0 00003025 */ move $a2, $zero +/* 0961F4 7F0616C4 872E000C */ lh $t6, 0xc($t9) +/* 0961F8 7F0616C8 24070005 */ li $a3, 5 +/* 0961FC 7F0616CC 29C10013 */ slti $at, $t6, 0x13 +/* 096200 7F0616D0 1420002A */ bnez $at, .L7F06177C +/* 096204 7F0616D4 00000000 */ nop +.L7F0616D8: +/* 096208 7F0616D8 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 09620C 7F0616DC 8FA40044 */ lw $a0, 0x44($sp) +/* 096210 7F0616E0 8F0D0008 */ lw $t5, 8($t8) +/* 096214 7F0616E4 01A67821 */ addu $t7, $t5, $a2 +/* 096218 7F0616E8 8DE50048 */ lw $a1, 0x48($t7) +/* 09621C 7F0616EC 50A0000E */ beql $a1, $zero, .L7F061728 +/* 096220 7F0616F0 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 096224 7F0616F4 AFA3005C */ sw $v1, 0x5c($sp) +/* 096228 7F0616F8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 09622C 7F0616FC AFA60040 */ sw $a2, 0x40($sp) +/* 096230 7F061700 8FA3005C */ lw $v1, 0x5c($sp) +/* 096234 7F061704 8FA60040 */ lw $a2, 0x40($sp) +/* 096238 7F061708 10400006 */ beqz $v0, .L7F061724 +/* 09623C 7F06170C 24070005 */ li $a3, 5 +/* 096240 7F061710 8E190034 */ lw $t9, 0x34($s0) +/* 096244 7F061714 00E37023 */ subu $t6, $a3, $v1 +/* 096248 7F061718 032EC02A */ slt $t8, $t9, $t6 +/* 09624C 7F06171C 3B180001 */ xori $t8, $t8, 1 +/* 096250 7F061720 AC580000 */ sw $t8, ($v0) +.L7F061724: +/* 096254 7F061724 8FAD01A0 */ lw $t5, 0x1a0($sp) +.L7F061728: +/* 096258 7F061728 8FA40044 */ lw $a0, 0x44($sp) +/* 09625C 7F06172C 8DAF0008 */ lw $t7, 8($t5) +/* 096260 7F061730 01E6C821 */ addu $t9, $t7, $a2 +/* 096264 7F061734 8F25005C */ lw $a1, 0x5c($t9) +/* 096268 7F061738 50A0000E */ beql $a1, $zero, .L7F061774 +/* 09626C 7F06173C 24630001 */ addiu $v1, $v1, 1 +/* 096270 7F061740 AFA3005C */ sw $v1, 0x5c($sp) +/* 096274 7F061744 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 096278 7F061748 AFA60040 */ sw $a2, 0x40($sp) +/* 09627C 7F06174C 8FA3005C */ lw $v1, 0x5c($sp) +/* 096280 7F061750 8FA60040 */ lw $a2, 0x40($sp) +/* 096284 7F061754 10400006 */ beqz $v0, .L7F061770 +/* 096288 7F061758 24070005 */ li $a3, 5 +/* 09628C 7F06175C 8E0E0034 */ lw $t6, 0x34($s0) +/* 096290 7F061760 00E3C023 */ subu $t8, $a3, $v1 +/* 096294 7F061764 01D8682A */ slt $t5, $t6, $t8 +/* 096298 7F061768 39AD0001 */ xori $t5, $t5, 1 +/* 09629C 7F06176C AC4D0000 */ sw $t5, ($v0) +.L7F061770: +/* 0962A0 7F061770 24630001 */ addiu $v1, $v1, 1 +.L7F061774: +/* 0962A4 7F061774 1467FFD8 */ bne $v1, $a3, .L7F0616D8 +/* 0962A8 7F061778 24C60004 */ addiu $a2, $a2, 4 +.L7F06177C: +/* 0962AC 7F06177C 0FC1BBF1 */ jal sub_GAME_7F06EFC4 +/* 0962B0 7F061780 8FA40044 */ lw $a0, 0x44($sp) +/* 0962B4 7F061784 820F000C */ lb $t7, 0xc($s0) +/* 0962B8 7F061788 8FB900FC */ lw $t9, 0xfc($sp) +/* 0962BC 7F06178C 11E00011 */ beqz $t7, .L7F0617D4 +/* 0962C0 7F061790 272EFFFC */ addiu $t6, $t9, -4 +/* 0962C4 7F061794 2DC10014 */ sltiu $at, $t6, 0x14 +/* 0962C8 7F061798 1020000E */ beqz $at, .L7F0617D4 +/* 0962CC 7F06179C 000E7080 */ sll $t6, $t6, 2 +/* 0962D0 7F0617A0 3C018005 */ lui $at, %hi(jpt_weapon_bullet_type) +/* 0962D4 7F0617A4 002E0821 */ addu $at, $at, $t6 +/* 0962D8 7F0617A8 8C2E3E38 */ lw $t6, %lo(jpt_weapon_bullet_type)($at) +/* 0962DC 7F0617AC 01C00008 */ jr $t6 +/* 0962E0 7F0617B0 00000000 */ nop +weapon_bullet_type_pistol: +/* 0962E4 7F0617B4 0FC186FD */ jal sub_GAME_7F061BF4 +/* 0962E8 7F0617B8 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0962EC 7F0617BC 8E180030 */ lw $t8, 0x30($s0) +/* 0962F0 7F0617C0 270D0001 */ addiu $t5, $t8, 1 +/* 0962F4 7F0617C4 10000003 */ b .L7F0617D4 +/* 0962F8 7F0617C8 AE0D0030 */ sw $t5, 0x30($s0) +weapon_bullet_type_none: +/* 0962FC 7F0617CC 0FC186FD */ jal sub_GAME_7F061BF4 +/* 096300 7F0617D0 8FA402A8 */ lw $a0, 0x2a8($sp) +weapon_bullet_type_shotgun_mine: +.L7F0617D4: +/* 096304 7F0617D4 8FAF00FC */ lw $t7, 0xfc($sp) +.L7F0617D8: +/* 096308 7F0617D8 24010019 */ li $at, 25 +/* 09630C 7F0617DC 55E10004 */ bnel $t7, $at, .L7F0617F0 +/* 096310 7F0617E0 8219000C */ lb $t9, 0xc($s0) +/* 096314 7F0617E4 0FC17E4A */ jal sub_GAME_7F05F928 +/* 096318 7F0617E8 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 09631C 7F0617EC 8219000C */ lb $t9, 0xc($s0) +.L7F0617F0: +/* 096320 7F0617F0 3C048008 */ lui $a0, %hi(pPlayer) +/* 096324 7F0617F4 53200046 */ beql $t9, $zero, .L7F061910 +/* 096328 7F0617F8 8FBF0034 */ lw $ra, 0x34($sp) +/* 09632C 7F0617FC 0FC225DE */ jal sub_GAME_7F089778 +/* 096330 7F061800 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 096334 7F061804 44050000 */ mfc1 $a1, $f0 +/* 096338 7F061808 0FC1A142 */ jal sub_GAME_7F068508 +/* 09633C 7F06180C 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096340 7F061810 8FAE00FC */ lw $t6, 0xfc($sp) +/* 096344 7F061814 24010018 */ li $at, 24 +/* 096348 7F061818 8FB800FC */ lw $t8, 0xfc($sp) +/* 09634C 7F06181C 55C10006 */ bnel $t6, $at, .L7F061838 +/* 096350 7F061820 2401001A */ li $at, 26 +/* 096354 7F061824 0FC17DCF */ jal sub_GAME_7F05F73C +/* 096358 7F061828 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 09635C 7F06182C 10000038 */ b .L7F061910 +/* 096360 7F061830 8FBF0034 */ lw $ra, 0x34($sp) +/* 096364 7F061834 2401001A */ li $at, 26 +.L7F061838: +/* 096368 7F061838 17010005 */ bne $t8, $at, .L7F061850 +/* 09636C 7F06183C 8FAD00FC */ lw $t5, 0xfc($sp) +/* 096370 7F061840 0FC17B89 */ jal sub_GAME_7F05EE24 +/* 096374 7F061844 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096378 7F061848 10000031 */ b .L7F061910 +/* 09637C 7F06184C 8FBF0034 */ lw $ra, 0x34($sp) +.L7F061850: +/* 096380 7F061850 24010019 */ li $at, 25 +/* 096384 7F061854 15A10005 */ bne $t5, $at, .L7F06186C +/* 096388 7F061858 8FAF00FC */ lw $t7, 0xfc($sp) +/* 09638C 7F06185C 0FC17ED9 */ jal sub_GAME_7F05FB64 +/* 096390 7F061860 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096394 7F061864 1000002A */ b .L7F061910 +/* 096398 7F061868 8FBF0034 */ lw $ra, 0x34($sp) +.L7F06186C: +/* 09639C 7F06186C 24010003 */ li $at, 3 +/* 0963A0 7F061870 15E10005 */ bne $t7, $at, .L7F061888 +/* 0963A4 7F061874 8FB900FC */ lw $t9, 0xfc($sp) +/* 0963A8 7F061878 0FC17C27 */ jal sub_GAME_7F05F09C +/* 0963AC 7F06187C 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0963B0 7F061880 10000023 */ b .L7F061910 +/* 0963B4 7F061884 8FBF0034 */ lw $ra, 0x34($sp) +.L7F061888: +/* 0963B8 7F061888 2401001D */ li $at, 29 +/* 0963BC 7F06188C 1321000F */ beq $t9, $at, .L7F0618CC +/* 0963C0 7F061890 2401001C */ li $at, 28 +/* 0963C4 7F061894 1321000D */ beq $t9, $at, .L7F0618CC +/* 0963C8 7F061898 2401001B */ li $at, 27 +/* 0963CC 7F06189C 1321000B */ beq $t9, $at, .L7F0618CC +/* 0963D0 7F0618A0 24010021 */ li $at, 33 +/* 0963D4 7F0618A4 13210009 */ beq $t9, $at, .L7F0618CC +/* 0963D8 7F0618A8 2401002F */ li $at, 47 +/* 0963DC 7F0618AC 13210007 */ beq $t9, $at, .L7F0618CC +/* 0963E0 7F0618B0 24010030 */ li $at, 48 +/* 0963E4 7F0618B4 13210005 */ beq $t9, $at, .L7F0618CC +/* 0963E8 7F0618B8 2401003D */ li $at, 61 +/* 0963EC 7F0618BC 13210003 */ beq $t9, $at, .L7F0618CC +/* 0963F0 7F0618C0 24010022 */ li $at, 34 +/* 0963F4 7F0618C4 17210005 */ bne $t9, $at, .L7F0618DC +/* 0963F8 7F0618C8 8FAE00FC */ lw $t6, 0xfc($sp) +.L7F0618CC: +/* 0963FC 7F0618CC 0FC17CD6 */ jal generate_player_thrown_object +/* 096400 7F0618D0 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096404 7F0618D4 1000000E */ b .L7F061910 +/* 096408 7F0618D8 8FBF0034 */ lw $ra, 0x34($sp) +.L7F0618DC: +/* 09640C 7F0618DC 24010023 */ li $at, 35 +/* 096410 7F0618E0 15C10005 */ bne $t6, $at, .L7F0618F8 +/* 096414 7F0618E4 8FB800FC */ lw $t8, 0xfc($sp) +/* 096418 7F0618E8 0FC17DCF */ jal sub_GAME_7F05F73C +/* 09641C 7F0618EC 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096420 7F0618F0 10000007 */ b .L7F061910 +/* 096424 7F0618F4 8FBF0034 */ lw $ra, 0x34($sp) +.L7F0618F8: +/* 096428 7F0618F8 24010024 */ li $at, 36 +/* 09642C 7F0618FC 57010004 */ bnel $t8, $at, .L7F061910 +/* 096430 7F061900 8FBF0034 */ lw $ra, 0x34($sp) +/* 096434 7F061904 0FC17DCF */ jal sub_GAME_7F05F73C +/* 096438 7F061908 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 09643C 7F06190C 8FBF0034 */ lw $ra, 0x34($sp) +.L7F061910: +/* 096440 7F061910 8FB00030 */ lw $s0, 0x30($sp) +/* 096444 7F061914 27BD02A8 */ addiu $sp, $sp, 0x2a8 +/* 096448 7F061918 03E00008 */ jr $ra +/* 09644C 7F06191C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80053DE0 +.word 0x3f733333 /*0.94999999*/ +glabel D_80053DE4 +.word 0x3d4cccd0 /*0.050000012*/ +glabel D_80053DE8 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053DEC +.word 0x3e99999a /*0.30000001*/ +glabel D_80053DF0 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053DF4 +.word 0x3e99999a /*0.30000001*/ +glabel D_80053DF8 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053DFC +.word 0x3e99999a /*0.30000001*/ +glabel D_80053E00 +.word 0x41de6666 /*27.799999*/ +glabel D_80053E04 +.word 0x3dccccce /*0.10000001*/ +glabel D_80053E08 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E0C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E10 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E14 +.word 0x3f060a92 /*0.52359879*/ +glabel D_80053E18 +.word 0x3f060a92 /*0.52359879*/ +glabel D_80053E1C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E20 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E24 +.word 0x3dccccce /*0.10000001*/ +glabel D_80053E28 +.word 0x3dccccce /*0.10000001*/ +glabel D_80053E2C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E30 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E34 +.word 0x40c90fdb /*6.2831855*/ + +/*D:80053E38*/ +glabel jpt_weapon_bullet_type +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_shotgun_mine +.word weapon_bullet_type_shotgun_mine +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_none +.word weapon_bullet_type_none +.text +glabel handles_firing_or_throwing_weapon_in_hand +/* 095058 7F0604E8 27BDFD58 */ addiu $sp, $sp, -0x2a8 +/* 09505C 7F0604EC 3C0F8003 */ lui $t7, %hi(D_80035C40) # $t7, 0x8003 +/* 095060 7F0604F0 AFBF0034 */ sw $ra, 0x34($sp) +/* 095064 7F0604F4 AFB00030 */ sw $s0, 0x30($sp) +/* 095068 7F0604F8 25EF5C80 */ addiu $t7, %lo(D_80035C40) # addiu $t7, $t7, 0x5c80 +/* 09506C 7F0604FC 8DE10000 */ lw $at, ($t7) +/* 095070 7F060500 27AE0194 */ addiu $t6, $sp, 0x194 +/* 095074 7F060504 8DED0004 */ lw $t5, 4($t7) +/* 095078 7F060508 ADC10000 */ sw $at, ($t6) +/* 09507C 7F06050C 8DE10008 */ lw $at, 8($t7) +/* 095080 7F060510 0004C0C0 */ sll $t8, $a0, 3 +/* 095084 7F060514 0304C023 */ subu $t8, $t8, $a0 +/* 095088 7F060518 0018C080 */ sll $t8, $t8, 2 +/* 09508C 7F06051C 0304C021 */ addu $t8, $t8, $a0 +/* 095090 7F060520 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 095094 7F060524 ADCD0004 */ sw $t5, 4($t6) +/* 095098 7F060528 ADC10008 */ sw $at, 8($t6) +/* 09509C 7F06052C 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 0950A0 7F060530 0018C080 */ sll $t8, $t8, 2 +/* 0950A4 7F060534 0304C021 */ addu $t8, $t8, $a0 +/* 0950A8 7F060538 0018C0C0 */ sll $t8, $t8, 3 +/* 0950AC 7F06053C 03388021 */ addu $s0, $t9, $t8 +/* 0950B0 7F060540 AFA0010C */ sw $zero, 0x10c($sp) +/* 0950B4 7F060544 AFA00108 */ sw $zero, 0x108($sp) +/* 0950B8 7F060548 26100870 */ addiu $s0, $s0, 0x870 +/* 0950BC 7F06054C 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0950C0 7F060550 AFA402A8 */ sw $a0, 0x2a8($sp) +/* 0950C4 7F060554 AFA200FC */ sw $v0, 0xfc($sp) +/* 0950C8 7F060558 0FC17375 */ jal get_ptr_item_statistics +/* 0950CC 7F06055C 00402025 */ move $a0, $v0 +/* 0950D0 7F060560 8FAE02A8 */ lw $t6, 0x2a8($sp) +/* 0950D4 7F060564 AFA200F8 */ sw $v0, 0xf8($sp) +/* 0950D8 7F060568 15C0002D */ bnez $t6, .Ljp7F060620 +/* 0950DC 7F06056C 00000000 */ nop +/* 0950E0 7F060570 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 0950E4 7F060574 24040001 */ li $a0, 1 +/* 0950E8 7F060578 00402025 */ move $a0, $v0 +/* 0950EC 7F06057C 0FC17975 */ jal bondwalkItemCheckBitflags +/* 0950F0 7F060580 24050800 */ li $a1, 2048 +/* 0950F4 7F060584 10400015 */ beqz $v0, .Ljp7F0605DC +/* 0950F8 7F060588 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0950FC 7F06058C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 095100 7F060590 C42083B4 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 095104 7F060594 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 095108 7F060598 44813000 */ mtc1 $at, $f6 +/* 09510C 7F06059C 46000100 */ add.s $f4, $f0, $f0 +/* 095110 7F0605A0 C60A01C4 */ lwc1 $f10, 0x1c4($s0) +/* 095114 7F0605A4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 095118 7F0605A8 44819000 */ mtc1 $at, $f18 +/* 09511C 7F0605AC 46062203 */ div.s $f8, $f4, $f6 +/* 095120 7F0605B0 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 095124 7F0605B4 46085400 */ add.s $f16, $f10, $f8 +/* 095128 7F0605B8 E61001C4 */ swc1 $f16, 0x1c4($s0) +/* 09512C 7F0605BC C60401C4 */ lwc1 $f4, 0x1c4($s0) +/* 095130 7F0605C0 4604903C */ c.lt.s $f18, $f4 +/* 095134 7F0605C4 00000000 */ nop +/* 095138 7F0605C8 4500003F */ bc1f .Ljp7F0606C8 +/* 09513C 7F0605CC 00000000 */ nop +/* 095140 7F0605D0 44813000 */ mtc1 $at, $f6 +/* 095144 7F0605D4 1000003C */ b .Ljp7F0606C8 +/* 095148 7F0605D8 E60601C4 */ swc1 $f6, 0x1c4($s0) +.Ljp7F0605DC: +/* 09514C 7F0605DC C42083B4 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 095150 7F0605E0 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 095154 7F0605E4 44814000 */ mtc1 $at, $f8 +/* 095158 7F0605E8 46000280 */ add.s $f10, $f0, $f0 +/* 09515C 7F0605EC C61201C4 */ lwc1 $f18, 0x1c4($s0) +/* 095160 7F0605F0 46085403 */ div.s $f16, $f10, $f8 +/* 095164 7F0605F4 44805000 */ mtc1 $zero, $f10 +/* 095168 7F0605F8 46109101 */ sub.s $f4, $f18, $f16 +/* 09516C 7F0605FC E60401C4 */ swc1 $f4, 0x1c4($s0) +/* 095170 7F060600 C60601C4 */ lwc1 $f6, 0x1c4($s0) +/* 095174 7F060604 460A303C */ c.lt.s $f6, $f10 +/* 095178 7F060608 00000000 */ nop +/* 09517C 7F06060C 4500002E */ bc1f .Ljp7F0606C8 +/* 095180 7F060610 00000000 */ nop +/* 095184 7F060614 44804000 */ mtc1 $zero, $f8 +/* 095188 7F060618 1000002B */ b .Ljp7F0606C8 +/* 09518C 7F06061C E60801C4 */ swc1 $f8, 0x1c4($s0) +.Ljp7F060620: +/* 095190 7F060620 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 095194 7F060624 00002025 */ move $a0, $zero +/* 095198 7F060628 00402025 */ move $a0, $v0 +/* 09519C 7F06062C 0FC17975 */ jal bondwalkItemCheckBitflags +/* 0951A0 7F060630 24050800 */ li $a1, 2048 +/* 0951A4 7F060634 10400013 */ beqz $v0, .Ljp7F060684 +/* 0951A8 7F060638 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0951AC 7F06063C 3C01C000 */ li $at, 0xC0000000 # -2.000000 +/* 0951B0 7F060640 44811000 */ mtc1 $at, $f2 +/* 0951B4 7F060644 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0951B8 7F060648 C42083B4 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 0951BC 7F06064C 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 0951C0 7F060650 44818000 */ mtc1 $at, $f16 +/* 0951C4 7F060654 46000480 */ add.s $f18, $f0, $f0 +/* 0951C8 7F060658 C60601C4 */ lwc1 $f6, 0x1c4($s0) +/* 0951CC 7F06065C 46109103 */ div.s $f4, $f18, $f16 +/* 0951D0 7F060660 46043281 */ sub.s $f10, $f6, $f4 +/* 0951D4 7F060664 E60A01C4 */ swc1 $f10, 0x1c4($s0) +/* 0951D8 7F060668 C60801C4 */ lwc1 $f8, 0x1c4($s0) +/* 0951DC 7F06066C 4602403C */ c.lt.s $f8, $f2 +/* 0951E0 7F060670 00000000 */ nop +/* 0951E4 7F060674 45000014 */ bc1f .Ljp7F0606C8 +/* 0951E8 7F060678 00000000 */ nop +/* 0951EC 7F06067C 10000012 */ b .Ljp7F0606C8 +/* 0951F0 7F060680 E60201C4 */ swc1 $f2, 0x1c4($s0) +.Ljp7F060684: +/* 0951F4 7F060684 C42083B4 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 0951F8 7F060688 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 0951FC 7F06068C 44818000 */ mtc1 $at, $f16 +/* 095200 7F060690 46000480 */ add.s $f18, $f0, $f0 +/* 095204 7F060694 C60401C4 */ lwc1 $f4, 0x1c4($s0) +/* 095208 7F060698 44804000 */ mtc1 $zero, $f8 +/* 09520C 7F06069C 46109183 */ div.s $f6, $f18, $f16 +/* 095210 7F0606A0 46062280 */ add.s $f10, $f4, $f6 +/* 095214 7F0606A4 E60A01C4 */ swc1 $f10, 0x1c4($s0) +/* 095218 7F0606A8 C61201C4 */ lwc1 $f18, 0x1c4($s0) +/* 09521C 7F0606AC 4612403C */ c.lt.s $f8, $f18 +/* 095220 7F0606B0 00000000 */ nop +/* 095224 7F0606B4 45000004 */ bc1f .Ljp7F0606C8 +/* 095228 7F0606B8 00000000 */ nop +/* 09522C 7F0606BC 44808000 */ mtc1 $zero, $f16 +/* 095230 7F0606C0 00000000 */ nop +/* 095234 7F0606C4 E61001C4 */ swc1 $f16, 0x1c4($s0) +.Ljp7F0606C8: +/* 095238 7F0606C8 3C0F8003 */ lui $t7, %hi(D_80035C4C) # $t7, 0x8003 +/* 09523C 7F0606CC 25EF5C8C */ addiu $t7, %lo(D_80035C4C) # addiu $t7, $t7, 0x5c8c +/* 095240 7F0606D0 8DE10000 */ lw $at, ($t7) +/* 095244 7F0606D4 27AC00E0 */ addiu $t4, $sp, 0xe0 +/* 095248 7F0606D8 3C0E8003 */ lui $t6, %hi(D_80035C58) # $t6, 0x8003 +/* 09524C 7F0606DC AD810000 */ sw $at, ($t4) +/* 095250 7F0606E0 8DF90004 */ lw $t9, 4($t7) +/* 095254 7F0606E4 25CE5C98 */ addiu $t6, %lo(D_80035C58) # addiu $t6, $t6, 0x5c98 +/* 095258 7F0606E8 27B800D4 */ addiu $t8, $sp, 0xd4 +/* 09525C 7F0606EC AD990004 */ sw $t9, 4($t4) +/* 095260 7F0606F0 8DE10008 */ lw $at, 8($t7) +/* 095264 7F0606F4 3C0D8003 */ lui $t5, %hi(D_80035C64) # $t5, 0x8003 +/* 095268 7F0606F8 25AD5CA4 */ addiu $t5, %lo(D_80035C64) # addiu $t5, $t5, 0x5ca4 +/* 09526C 7F0606FC AD810008 */ sw $at, 8($t4) +/* 095270 7F060700 8DC10000 */ lw $at, ($t6) +/* 095274 7F060704 8DCF0004 */ lw $t7, 4($t6) +/* 095278 7F060708 27B900C8 */ addiu $t9, $sp, 0xc8 +/* 09527C 7F06070C AF010000 */ sw $at, ($t8) +/* 095280 7F060710 8DC10008 */ lw $at, 8($t6) +/* 095284 7F060714 AF0F0004 */ sw $t7, 4($t8) +/* 095288 7F060718 2403000C */ li $v1, 12 +/* 09528C 7F06071C AF010008 */ sw $at, 8($t8) +/* 095290 7F060720 8DA10000 */ lw $at, ($t5) +/* 095294 7F060724 8DAE0004 */ lw $t6, 4($t5) +/* 095298 7F060728 AF210000 */ sw $at, ($t9) +/* 09529C 7F06072C 8DA10008 */ lw $at, 8($t5) +/* 0952A0 7F060730 AF2E0004 */ sw $t6, 4($t9) +/* 0952A4 7F060734 AF210008 */ sw $at, 8($t9) +/* 0952A8 7F060738 8E020198 */ lw $v0, 0x198($s0) +/* 0952AC 7F06073C C604019C */ lwc1 $f4, 0x19c($s0) +/* 0952B0 7F060740 AFAC0014 */ sw $t4, 0x14($sp) +/* 0952B4 7F060744 244F0003 */ addiu $t7, $v0, 3 +/* 0952B8 7F060748 05E10004 */ bgez $t7, .Ljp7F06075C +/* 0952BC 7F06074C 31F80003 */ andi $t8, $t7, 3 +/* 0952C0 7F060750 13000002 */ beqz $t8, .Ljp7F06075C +/* 0952C4 7F060754 00000000 */ nop +/* 0952C8 7F060758 2718FFFC */ addiu $t8, $t8, -4 +.Ljp7F06075C: +/* 0952CC 7F06075C 03030019 */ multu $t8, $v1 +/* 0952D0 7F060760 244E0001 */ addiu $t6, $v0, 1 +/* 0952D4 7F060764 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0952D8 7F060768 0000C812 */ mflo $t9 +/* 0952DC 7F06076C 02194021 */ addu $t0, $s0, $t9 +/* 0952E0 7F060770 24590002 */ addiu $t9, $v0, 2 +/* 0952E4 7F060774 00430019 */ multu $v0, $v1 +/* 0952E8 7F060778 25040108 */ addiu $a0, $t0, 0x108 +/* 0952EC 7F06077C AFA80044 */ sw $t0, 0x44($sp) +/* 0952F0 7F060780 00006812 */ mflo $t5 +/* 0952F4 7F060784 020D4821 */ addu $t1, $s0, $t5 +/* 0952F8 7F060788 25250108 */ addiu $a1, $t1, 0x108 +/* 0952FC 7F06078C 05C10004 */ bgez $t6, .Ljp7F0607A0 +/* 095300 7F060790 31CF0003 */ andi $t7, $t6, 3 +/* 095304 7F060794 11E00002 */ beqz $t7, .Ljp7F0607A0 +/* 095308 7F060798 00000000 */ nop +/* 09530C 7F06079C 25EFFFFC */ addiu $t7, $t7, -4 +.Ljp7F0607A0: +/* 095310 7F0607A0 01E30019 */ multu $t7, $v1 +/* 095314 7F0607A4 AFA90040 */ sw $t1, 0x40($sp) +/* 095318 7F0607A8 0000C012 */ mflo $t8 +/* 09531C 7F0607AC 02185021 */ addu $t2, $s0, $t8 +/* 095320 7F0607B0 25460108 */ addiu $a2, $t2, 0x108 +/* 095324 7F0607B4 07210004 */ bgez $t9, .Ljp7F0607C8 +/* 095328 7F0607B8 332D0003 */ andi $t5, $t9, 3 +/* 09532C 7F0607BC 11A00002 */ beqz $t5, .Ljp7F0607C8 +/* 095330 7F0607C0 00000000 */ nop +/* 095334 7F0607C4 25ADFFFC */ addiu $t5, $t5, -4 +.Ljp7F0607C8: +/* 095338 7F0607C8 01A30019 */ multu $t5, $v1 +/* 09533C 7F0607CC AFAA003C */ sw $t2, 0x3c($sp) +/* 095340 7F0607D0 00007012 */ mflo $t6 +/* 095344 7F0607D4 020E5821 */ addu $t3, $s0, $t6 +/* 095348 7F0607D8 25670108 */ addiu $a3, $t3, 0x108 +/* 09534C 7F0607DC 0FC16D07 */ jal sub_GAME_7F05AEFC +/* 095350 7F0607E0 AFAB0038 */ sw $t3, 0x38($sp) +/* 095354 7F0607E4 8FA40044 */ lw $a0, 0x44($sp) +/* 095358 7F0607E8 8FA50040 */ lw $a1, 0x40($sp) +/* 09535C 7F0607EC 8FA6003C */ lw $a2, 0x3c($sp) +/* 095360 7F0607F0 8FA70038 */ lw $a3, 0x38($sp) +/* 095364 7F0607F4 C606019C */ lwc1 $f6, 0x19c($s0) +/* 095368 7F0607F8 27AF00D4 */ addiu $t7, $sp, 0xd4 +/* 09536C 7F0607FC AFAF0014 */ sw $t7, 0x14($sp) +/* 095370 7F060800 24840138 */ addiu $a0, $a0, 0x138 +/* 095374 7F060804 24A50138 */ addiu $a1, $a1, 0x138 +/* 095378 7F060808 24C60138 */ addiu $a2, $a2, 0x138 +/* 09537C 7F06080C 24E70138 */ addiu $a3, $a3, 0x138 +/* 095380 7F060810 0FC16D07 */ jal sub_GAME_7F05AEFC +/* 095384 7F060814 E7A60010 */ swc1 $f6, 0x10($sp) +/* 095388 7F060818 8FA40044 */ lw $a0, 0x44($sp) +/* 09538C 7F06081C 8FA50040 */ lw $a1, 0x40($sp) +/* 095390 7F060820 8FA6003C */ lw $a2, 0x3c($sp) +/* 095394 7F060824 8FA70038 */ lw $a3, 0x38($sp) +/* 095398 7F060828 C60A019C */ lwc1 $f10, 0x19c($s0) +/* 09539C 7F06082C 27B800C8 */ addiu $t8, $sp, 0xc8 +/* 0953A0 7F060830 AFB80014 */ sw $t8, 0x14($sp) +/* 0953A4 7F060834 24840168 */ addiu $a0, $a0, 0x168 +/* 0953A8 7F060838 24A50168 */ addiu $a1, $a1, 0x168 +/* 0953AC 7F06083C 24C60168 */ addiu $a2, $a2, 0x168 +/* 0953B0 7F060840 24E70168 */ addiu $a3, $a3, 0x168 +/* 0953B4 7F060844 0FC16D07 */ jal sub_GAME_7F05AEFC +/* 0953B8 7F060848 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0953BC 7F06084C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0953C0 7F060850 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0953C4 7F060854 C7A800E0 */ lwc1 $f8, 0xe0($sp) +/* 0953C8 7F060858 C7A400E4 */ lwc1 $f4, 0xe4($sp) +/* 0953CC 7F06085C C4520FC0 */ lwc1 $f18, 0xfc0($v0) +/* 0953D0 7F060860 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0953D4 7F060864 46124402 */ mul.s $f16, $f8, $f18 +/* 0953D8 7F060868 C7A800E8 */ lwc1 $f8, 0xe8($sp) +/* 0953DC 7F06086C E7B000E0 */ swc1 $f16, 0xe0($sp) +/* 0953E0 7F060870 C4460FC0 */ lwc1 $f6, 0xfc0($v0) +/* 0953E4 7F060874 46062282 */ mul.s $f10, $f4, $f6 +/* 0953E8 7F060878 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 0953EC 7F06087C C4520FC0 */ lwc1 $f18, 0xfc0($v0) +/* 0953F0 7F060880 46124102 */ mul.s $f4, $f8, $f18 +/* 0953F4 7F060884 E7A400E8 */ swc1 $f4, 0xe8($sp) +/* 0953F8 7F060888 C60601AC */ lwc1 $f6, 0x1ac($s0) +/* 0953FC 7F06088C 46068200 */ add.s $f8, $f16, $f6 +/* 095400 7F060890 E7A800E0 */ swc1 $f8, 0xe0($sp) +/* 095404 7F060894 C61201B0 */ lwc1 $f18, 0x1b0($s0) +/* 095408 7F060898 46125100 */ add.s $f4, $f10, $f18 +/* 09540C 7F06089C 0FC17876 */ jal sub_GAME_7F05DCB8 +/* 095410 7F0608A0 E7A400E4 */ swc1 $f4, 0xe4($sp) +/* 095414 7F0608A4 C7B000E0 */ lwc1 $f16, 0xe0($sp) +/* 095418 7F0608A8 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 +/* 09541C 7F0608AC 244283A4 */ addiu $v0, %lo(clock_timer) # addiu $v0, $v0, -0x7c5c +/* 095420 7F0608B0 46008180 */ add.s $f6, $f16, $f0 +/* 095424 7F0608B4 8C590000 */ lw $t9, ($v0) +/* 095428 7F0608B8 00001825 */ move $v1, $zero +/* 09542C 7F0608BC 1B200035 */ blez $t9, .Ljp7F060994 +/* 095430 7F0608C0 E7A600E0 */ swc1 $f6, 0xe0($sp) +/* 095434 7F0608C4 3C018005 */ lui $at, %hi(D_80053DE0) # $at, 0x8005 +/* 095438 7F0608C8 C4203E10 */ lwc1 $f0, %lo(D_80053DE0)($at) +/* 09543C 7F0608CC C60A00E4 */ lwc1 $f10, 0xe4($s0) +.Ljp7F0608D0: +/* 095440 7F0608D0 C7A800E0 */ lwc1 $f8, 0xe0($sp) +/* 095444 7F0608D4 C60600E8 */ lwc1 $f6, 0xe8($s0) +/* 095448 7F0608D8 460A0482 */ mul.s $f18, $f0, $f10 +/* 09544C 7F0608DC 24630001 */ addiu $v1, $v1, 1 +/* 095450 7F0608E0 46060282 */ mul.s $f10, $f0, $f6 +/* 095454 7F0608E4 46124100 */ add.s $f4, $f8, $f18 +/* 095458 7F0608E8 E60400E4 */ swc1 $f4, 0xe4($s0) +/* 09545C 7F0608EC C7B000E4 */ lwc1 $f16, 0xe4($sp) +/* 095460 7F0608F0 C60400EC */ lwc1 $f4, 0xec($s0) +/* 095464 7F0608F4 460A8200 */ add.s $f8, $f16, $f10 +/* 095468 7F0608F8 46040182 */ mul.s $f6, $f0, $f4 +/* 09546C 7F0608FC E60800E8 */ swc1 $f8, 0xe8($s0) +/* 095470 7F060900 C7B200E8 */ lwc1 $f18, 0xe8($sp) +/* 095474 7F060904 C60800F0 */ lwc1 $f8, 0xf0($s0) +/* 095478 7F060908 46069400 */ add.s $f16, $f18, $f6 +/* 09547C 7F06090C 46080102 */ mul.s $f4, $f0, $f8 +/* 095480 7F060910 E61000EC */ swc1 $f16, 0xec($s0) +/* 095484 7F060914 C7AA00D4 */ lwc1 $f10, 0xd4($sp) +/* 095488 7F060918 C61000F4 */ lwc1 $f16, 0xf4($s0) +/* 09548C 7F06091C 46045480 */ add.s $f18, $f10, $f4 +/* 095490 7F060920 46100202 */ mul.s $f8, $f0, $f16 +/* 095494 7F060924 E61200F0 */ swc1 $f18, 0xf0($s0) +/* 095498 7F060928 C7A600D8 */ lwc1 $f6, 0xd8($sp) +/* 09549C 7F06092C C61200F8 */ lwc1 $f18, 0xf8($s0) +/* 0954A0 7F060930 46083280 */ add.s $f10, $f6, $f8 +/* 0954A4 7F060934 46120402 */ mul.s $f16, $f0, $f18 +/* 0954A8 7F060938 E60A00F4 */ swc1 $f10, 0xf4($s0) +/* 0954AC 7F06093C C7A400DC */ lwc1 $f4, 0xdc($sp) +/* 0954B0 7F060940 C60A00FC */ lwc1 $f10, 0xfc($s0) +/* 0954B4 7F060944 46102180 */ add.s $f6, $f4, $f16 +/* 0954B8 7F060948 460A0482 */ mul.s $f18, $f0, $f10 +/* 0954BC 7F06094C E60600F8 */ swc1 $f6, 0xf8($s0) +/* 0954C0 7F060950 C7A800C8 */ lwc1 $f8, 0xc8($sp) +/* 0954C4 7F060954 C6060100 */ lwc1 $f6, 0x100($s0) +/* 0954C8 7F060958 46124100 */ add.s $f4, $f8, $f18 +/* 0954CC 7F06095C 46060282 */ mul.s $f10, $f0, $f6 +/* 0954D0 7F060960 E60400FC */ swc1 $f4, 0xfc($s0) +/* 0954D4 7F060964 C7B000CC */ lwc1 $f16, 0xcc($sp) +/* 0954D8 7F060968 C6040104 */ lwc1 $f4, 0x104($s0) +/* 0954DC 7F06096C 460A8200 */ add.s $f8, $f16, $f10 +/* 0954E0 7F060970 46040182 */ mul.s $f6, $f0, $f4 +/* 0954E4 7F060974 E6080100 */ swc1 $f8, 0x100($s0) +/* 0954E8 7F060978 C7B200D0 */ lwc1 $f18, 0xd0($sp) +/* 0954EC 7F06097C 46069400 */ add.s $f16, $f18, $f6 +/* 0954F0 7F060980 E6100104 */ swc1 $f16, 0x104($s0) +/* 0954F4 7F060984 8C4D0000 */ lw $t5, ($v0) +/* 0954F8 7F060988 006D082A */ slt $at, $v1, $t5 +/* 0954FC 7F06098C 5420FFD0 */ bnezl $at, .Ljp7F0608D0 +/* 095500 7F060990 C60A00E4 */ lwc1 $f10, 0xe4($s0) +.Ljp7F060994: +/* 095504 7F060994 3C018005 */ lui $at, %hi(D_80053DE4) # $at, 0x8005 +/* 095508 7F060998 C4203E14 */ lwc1 $f0, %lo(D_80053DE4)($at) +/* 09550C 7F06099C C60A00E4 */ lwc1 $f10, 0xe4($s0) +/* 095510 7F0609A0 C60400E8 */ lwc1 $f4, 0xe8($s0) +/* 095514 7F0609A4 C60600EC */ lwc1 $f6, 0xec($s0) +/* 095518 7F0609A8 46005202 */ mul.s $f8, $f10, $f0 +/* 09551C 7F0609AC C60A00F0 */ lwc1 $f10, 0xf0($s0) +/* 095520 7F0609B0 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 095524 7F0609B4 46002482 */ mul.s $f18, $f4, $f0 +/* 095528 7F0609B8 C60400F4 */ lwc1 $f4, 0xf4($s0) +/* 09552C 7F0609BC 46003402 */ mul.s $f16, $f6, $f0 +/* 095530 7F0609C0 E60800C0 */ swc1 $f8, 0xc0($s0) +/* 095534 7F0609C4 C60600F8 */ lwc1 $f6, 0xf8($s0) +/* 095538 7F0609C8 46005202 */ mul.s $f8, $f10, $f0 +/* 09553C 7F0609CC E61200C4 */ swc1 $f18, 0xc4($s0) +/* 095540 7F0609D0 C60A00FC */ lwc1 $f10, 0xfc($s0) +/* 095544 7F0609D4 46002482 */ mul.s $f18, $f4, $f0 +/* 095548 7F0609D8 E61000C8 */ swc1 $f16, 0xc8($s0) +/* 09554C 7F0609DC C6040100 */ lwc1 $f4, 0x100($s0) +/* 095550 7F0609E0 46003402 */ mul.s $f16, $f6, $f0 +/* 095554 7F0609E4 E60800CC */ swc1 $f8, 0xcc($s0) +/* 095558 7F0609E8 C6060104 */ lwc1 $f6, 0x104($s0) +/* 09555C 7F0609EC 46005202 */ mul.s $f8, $f10, $f0 +/* 095560 7F0609F0 E61200D0 */ swc1 $f18, 0xd0($s0) +/* 095564 7F0609F4 46002482 */ mul.s $f18, $f4, $f0 +/* 095568 7F0609F8 E61000D4 */ swc1 $f16, 0xd4($s0) +/* 09556C 7F0609FC 46003402 */ mul.s $f16, $f6, $f0 +/* 095570 7F060A00 E60800D8 */ swc1 $f8, 0xd8($s0) +/* 095574 7F060A04 E61200DC */ swc1 $f18, 0xdc($s0) +/* 095578 7F060A08 14800009 */ bnez $a0, .Ljp7F060A30 +/* 09557C 7F060A0C E61000E0 */ swc1 $f16, 0xe0($s0) +/* 095580 7F060A10 0FC17882 */ jal sub_GAME_7F05DCE8 +/* 095584 7F060A14 00000000 */ nop +/* 095588 7F060A18 C60800C0 */ lwc1 $f8, 0xc0($s0) +/* 09558C 7F060A1C C60A01B8 */ lwc1 $f10, 0x1b8($s0) +/* 095590 7F060A20 46080100 */ add.s $f4, $f0, $f8 +/* 095594 7F060A24 46045480 */ add.s $f18, $f10, $f4 +/* 095598 7F060A28 10000008 */ b .Ljp7F060A4C +/* 09559C 7F060A2C E7B20194 */ swc1 $f18, 0x194($sp) +.Ljp7F060A30: +/* 0955A0 7F060A30 0FC17882 */ jal sub_GAME_7F05DCE8 +/* 0955A4 7F060A34 00000000 */ nop +/* 0955A8 7F060A38 C60600C0 */ lwc1 $f6, 0xc0($s0) +/* 0955AC 7F060A3C C60801B8 */ lwc1 $f8, 0x1b8($s0) +/* 0955B0 7F060A40 46060400 */ add.s $f16, $f0, $f6 +/* 0955B4 7F060A44 46088281 */ sub.s $f10, $f16, $f8 +/* 0955B8 7F060A48 E7AA0194 */ swc1 $f10, 0x194($sp) +.Ljp7F060A4C: +/* 0955BC 7F060A4C 8FAE00F8 */ lw $t6, 0xf8($sp) +/* 0955C0 7F060A50 C61200C4 */ lwc1 $f18, 0xc4($s0) +/* 0955C4 7F060A54 C61001BC */ lwc1 $f16, 0x1bc($s0) +/* 0955C8 7F060A58 C5C40008 */ lwc1 $f4, 8($t6) +/* 0955CC 7F060A5C 8FA400FC */ lw $a0, 0xfc($sp) +/* 0955D0 7F060A60 24010019 */ li $at, 25 +/* 0955D4 7F060A64 46122180 */ add.s $f6, $f4, $f18 +/* 0955D8 7F060A68 46068200 */ add.s $f8, $f16, $f6 +/* 0955DC 7F060A6C E7A80198 */ swc1 $f8, 0x198($sp) +/* 0955E0 7F060A70 C60400C8 */ lwc1 $f4, 0xc8($s0) +/* 0955E4 7F060A74 C5CA000C */ lwc1 $f10, 0xc($t6) +/* 0955E8 7F060A78 C61001C0 */ lwc1 $f16, 0x1c0($s0) +/* 0955EC 7F060A7C 46045480 */ add.s $f18, $f10, $f4 +/* 0955F0 7F060A80 46128180 */ add.s $f6, $f16, $f18 +/* 0955F4 7F060A84 10810005 */ beq $a0, $at, .Ljp7F060A9C +/* 0955F8 7F060A88 E7A6019C */ swc1 $f6, 0x19c($sp) +/* 0955FC 7F060A8C 2401001E */ li $at, 30 +/* 095600 7F060A90 10810002 */ beq $a0, $at, .Ljp7F060A9C +/* 095604 7F060A94 24010017 */ li $at, 23 +/* 095608 7F060A98 14810028 */ bne $a0, $at, .Ljp7F060B3C +.Ljp7F060A9C: +/* 09560C 7F060A9C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 095610 7F060AA0 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 095614 7F060AA4 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 095618 7F060AA8 44810000 */ mtc1 $at, $f0 +/* 09561C 7F060AAC C44A00A0 */ lwc1 $f10, 0xa0($v0) +/* 095620 7F060AB0 C7A80198 */ lwc1 $f8, 0x198($sp) +/* 095624 7F060AB4 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 095628 7F060AB8 46005103 */ div.s $f4, $f10, $f0 +/* 09562C 7F060ABC 44819000 */ mtc1 $at, $f18 +/* 095630 7F060AC0 24010019 */ li $at, 25 +/* 095634 7F060AC4 46044400 */ add.s $f16, $f8, $f4 +/* 095638 7F060AC8 C7A4019C */ lwc1 $f4, 0x19c($sp) +/* 09563C 7F060ACC E7B00198 */ swc1 $f16, 0x198($sp) +/* 095640 7F060AD0 C44600A0 */ lwc1 $f6, 0xa0($v0) +/* 095644 7F060AD4 46069282 */ mul.s $f10, $f18, $f6 +/* 095648 7F060AD8 46005203 */ div.s $f8, $f10, $f0 +/* 09564C 7F060ADC 46082400 */ add.s $f16, $f4, $f8 +/* 095650 7F060AE0 14810014 */ bne $a0, $at, .Ljp7F060B34 +/* 095654 7F060AE4 E7B0019C */ swc1 $f16, 0x19c($sp) +/* 095658 7F060AE8 0FC2969A */ jal cur_player_get_screen_setting +/* 09565C 7F060AEC 00000000 */ nop +/* 095660 7F060AF0 24010001 */ li $at, 1 +/* 095664 7F060AF4 5041000B */ beql $v0, $at, .Ljp7F060B24 +/* 095668 7F060AF8 3C014040 */ lui $at, 0x4040 +/* 09566C 7F060AFC 0FC2969A */ jal cur_player_get_screen_setting +/* 095670 7F060B00 00000000 */ nop +/* 095674 7F060B04 24010002 */ li $at, 2 +/* 095678 7F060B08 50410006 */ beql $v0, $at, .Ljp7F060B24 +/* 09567C 7F060B0C 3C014040 */ lui $at, 0x4040 +/* 095680 7F060B10 0FC296A0 */ jal get_screen_ratio +/* 095684 7F060B14 00000000 */ nop +/* 095688 7F060B18 24010001 */ li $at, 1 +/* 09568C 7F060B1C 14410005 */ bne $v0, $at, .Ljp7F060B34 +/* 095690 7F060B20 3C014040 */ li $at, 0x40400000 # 3.000000 +.Ljp7F060B24: +/* 095694 7F060B24 44813000 */ mtc1 $at, $f6 +/* 095698 7F060B28 C7B20198 */ lwc1 $f18, 0x198($sp) +/* 09569C 7F060B2C 46069281 */ sub.s $f10, $f18, $f6 +/* 0956A0 7F060B30 E7AA0198 */ swc1 $f10, 0x198($sp) +.Ljp7F060B34: +/* 0956A4 7F060B34 1000002C */ b .Ljp7F060BE8 +/* 0956A8 7F060B38 8FA400FC */ lw $a0, 0xfc($sp) +.Ljp7F060B3C: +/* 0956AC 7F060B3C 2401001F */ li $at, 31 +/* 0956B0 7F060B40 14810016 */ bne $a0, $at, .Ljp7F060B9C +/* 0956B4 7F060B44 3C028008 */ lui $v0, %hi(pPlayer) +/* 0956B8 7F060B48 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0956BC 7F060B4C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0956C0 7F060B50 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 0956C4 7F060B54 44810000 */ mtc1 $at, $f0 +/* 0956C8 7F060B58 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 0956CC 7F060B5C 44812000 */ mtc1 $at, $f4 +/* 0956D0 7F060B60 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 0956D4 7F060B64 C7A60198 */ lwc1 $f6, 0x198($sp) +/* 0956D8 7F060B68 3C0140F0 */ li $at, 0x40F00000 # 7.500000 +/* 0956DC 7F060B6C 46082402 */ mul.s $f16, $f4, $f8 +/* 0956E0 7F060B70 44812000 */ mtc1 $at, $f4 +/* 0956E4 7F060B74 46008483 */ div.s $f18, $f16, $f0 +/* 0956E8 7F060B78 46123280 */ add.s $f10, $f6, $f18 +/* 0956EC 7F060B7C C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 0956F0 7F060B80 E7AA0198 */ swc1 $f10, 0x198($sp) +/* 0956F4 7F060B84 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 0956F8 7F060B88 46082402 */ mul.s $f16, $f4, $f8 +/* 0956FC 7F060B8C 46008183 */ div.s $f6, $f16, $f0 +/* 095700 7F060B90 46069280 */ add.s $f10, $f18, $f6 +/* 095704 7F060B94 10000014 */ b .Ljp7F060BE8 +/* 095708 7F060B98 E7AA019C */ swc1 $f10, 0x19c($sp) +.Ljp7F060B9C: +/* 09570C 7F060B9C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 095710 7F060BA0 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 095714 7F060BA4 44810000 */ mtc1 $at, $f0 +/* 095718 7F060BA8 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 09571C 7F060BAC 44812000 */ mtc1 $at, $f4 +/* 095720 7F060BB0 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 095724 7F060BB4 C7A60198 */ lwc1 $f6, 0x198($sp) +/* 095728 7F060BB8 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09572C 7F060BBC 46082402 */ mul.s $f16, $f4, $f8 +/* 095730 7F060BC0 44812000 */ mtc1 $at, $f4 +/* 095734 7F060BC4 46008483 */ div.s $f18, $f16, $f0 +/* 095738 7F060BC8 46123280 */ add.s $f10, $f6, $f18 +/* 09573C 7F060BCC C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 095740 7F060BD0 E7AA0198 */ swc1 $f10, 0x198($sp) +/* 095744 7F060BD4 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 095748 7F060BD8 46082402 */ mul.s $f16, $f4, $f8 +/* 09574C 7F060BDC 46008183 */ div.s $f6, $f16, $f0 +/* 095750 7F060BE0 46069280 */ add.s $f10, $f18, $f6 +/* 095754 7F060BE4 E7AA019C */ swc1 $f10, 0x19c($sp) +.Ljp7F060BE8: +/* 095758 7F060BE8 820F000C */ lb $t7, 0xc($s0) +/* 09575C 7F060BEC 11E00047 */ beqz $t7, .Ljp7F060D0C +/* 095760 7F060BF0 00000000 */ nop +/* 095764 7F060BF4 0FC17975 */ jal bondwalkItemCheckBitflags +/* 095768 7F060BF8 24050020 */ li $a1, 32 +/* 09576C 7F060BFC 10400043 */ beqz $v0, .Ljp7F060D0C +/* 095770 7F060C00 8FA400FC */ lw $a0, 0xfc($sp) +/* 095774 7F060C04 0FC17975 */ jal bondwalkItemCheckBitflags +/* 095778 7F060C08 24050040 */ li $a1, 64 +/* 09577C 7F060C0C 10400016 */ beqz $v0, .Ljp7F060C68 +/* 095780 7F060C10 00000000 */ nop +/* 095784 7F060C14 0C002918 */ jal get_random_value +/* 095788 7F060C18 00000000 */ nop +/* 09578C 7F060C1C 44822000 */ mtc1 $v0, $f4 +/* 095790 7F060C20 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095794 7F060C24 04410004 */ bgez $v0, .Ljp7F060C38 +/* 095798 7F060C28 46802220 */ cvt.s.w $f8, $f4 +/* 09579C 7F060C2C 44818000 */ mtc1 $at, $f16 +/* 0957A0 7F060C30 00000000 */ nop +/* 0957A4 7F060C34 46104200 */ add.s $f8, $f8, $f16 +.Ljp7F060C38: +/* 0957A8 7F060C38 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0957AC 7F060C3C 44819000 */ mtc1 $at, $f18 +/* 0957B0 7F060C40 3C018005 */ lui $at, %hi(D_80053DE8) # $at, 0x8005 +/* 0957B4 7F060C44 C42A3E18 */ lwc1 $f10, %lo(D_80053DE8)($at) +/* 0957B8 7F060C48 46124182 */ mul.s $f6, $f8, $f18 +/* 0957BC 7F060C4C 3C018005 */ lui $at, %hi(D_80053DEC) # $at, 0x8005 +/* 0957C0 7F060C50 C4303E1C */ lwc1 $f16, %lo(D_80053DEC)($at) +/* 0957C4 7F060C54 C7B20194 */ lwc1 $f18, 0x194($sp) +/* 0957C8 7F060C58 460A3102 */ mul.s $f4, $f6, $f10 +/* 0957CC 7F060C5C 46048201 */ sub.s $f8, $f16, $f4 +/* 0957D0 7F060C60 46089180 */ add.s $f6, $f18, $f8 +/* 0957D4 7F060C64 E7A60194 */ swc1 $f6, 0x194($sp) +.Ljp7F060C68: +/* 0957D8 7F060C68 0C002918 */ jal get_random_value +/* 0957DC 7F060C6C 00000000 */ nop +/* 0957E0 7F060C70 44825000 */ mtc1 $v0, $f10 +/* 0957E4 7F060C74 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0957E8 7F060C78 04410004 */ bgez $v0, .Ljp7F060C8C +/* 0957EC 7F060C7C 46805420 */ cvt.s.w $f16, $f10 +/* 0957F0 7F060C80 44812000 */ mtc1 $at, $f4 +/* 0957F4 7F060C84 00000000 */ nop +/* 0957F8 7F060C88 46048400 */ add.s $f16, $f16, $f4 +.Ljp7F060C8C: +/* 0957FC 7F060C8C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 095800 7F060C90 44819000 */ mtc1 $at, $f18 +/* 095804 7F060C94 3C018005 */ lui $at, %hi(D_80053DF0) # $at, 0x8005 +/* 095808 7F060C98 C4263E20 */ lwc1 $f6, %lo(D_80053DF0)($at) +/* 09580C 7F060C9C 46128202 */ mul.s $f8, $f16, $f18 +/* 095810 7F060CA0 3C018005 */ lui $at, %hi(D_80053DF4) # $at, 0x8005 +/* 095814 7F060CA4 C4243E24 */ lwc1 $f4, %lo(D_80053DF4)($at) +/* 095818 7F060CA8 C7B20198 */ lwc1 $f18, 0x198($sp) +/* 09581C 7F060CAC 46064282 */ mul.s $f10, $f8, $f6 +/* 095820 7F060CB0 460A2401 */ sub.s $f16, $f4, $f10 +/* 095824 7F060CB4 46109200 */ add.s $f8, $f18, $f16 +/* 095828 7F060CB8 0C002918 */ jal get_random_value +/* 09582C 7F060CBC E7A80198 */ swc1 $f8, 0x198($sp) +/* 095830 7F060CC0 44823000 */ mtc1 $v0, $f6 +/* 095834 7F060CC4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095838 7F060CC8 04410004 */ bgez $v0, .Ljp7F060CDC +/* 09583C 7F060CCC 46803120 */ cvt.s.w $f4, $f6 +/* 095840 7F060CD0 44815000 */ mtc1 $at, $f10 +/* 095844 7F060CD4 00000000 */ nop +/* 095848 7F060CD8 460A2100 */ add.s $f4, $f4, $f10 +.Ljp7F060CDC: +/* 09584C 7F060CDC 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 095850 7F060CE0 44819000 */ mtc1 $at, $f18 +/* 095854 7F060CE4 3C018005 */ lui $at, %hi(D_80053DF8) # $at, 0x8005 +/* 095858 7F060CE8 C4283E28 */ lwc1 $f8, %lo(D_80053DF8)($at) +/* 09585C 7F060CEC 46122402 */ mul.s $f16, $f4, $f18 +/* 095860 7F060CF0 3C018005 */ lui $at, %hi(D_80053DFC) +/* 095864 7F060CF4 C42A3E2C */ lwc1 $f10, %lo(D_80053DFC)($at) +/* 095868 7F060CF8 C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 09586C 7F060CFC 46088182 */ mul.s $f6, $f16, $f8 +/* 095870 7F060D00 46065101 */ sub.s $f4, $f10, $f6 +/* 095874 7F060D04 46049400 */ add.s $f16, $f18, $f4 +/* 095878 7F060D08 E7B0019C */ swc1 $f16, 0x19c($sp) +.Ljp7F060D0C: +/* 09587C 7F060D0C 0FC1E2A5 */ jal getPlayer_c_screenwidth +/* 095880 7F060D10 00000000 */ nop +/* 095884 7F060D14 0FC1E2A5 */ jal getPlayer_c_screenwidth +/* 095888 7F060D18 E7A00048 */ swc1 $f0, 0x48($sp) +/* 09588C 7F060D1C 0FC1E2AD */ jal getPlayer_c_screenleft +/* 095890 7F060D20 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 095894 7F060D24 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 095898 7F060D28 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09589C 7F060D2C 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0958A0 7F060D30 44811000 */ mtc1 $at, $f2 +/* 0958A4 7F060D34 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 0958A8 7F060D38 C7080FFC */ lwc1 $f8, 0xffc($t8) +/* 0958AC 7F060D3C 8FB900F8 */ lw $t9, 0xf8($sp) +/* 0958B0 7F060D40 46023482 */ mul.s $f18, $f6, $f2 +/* 0958B4 7F060D44 46004281 */ sub.s $f10, $f8, $f0 +/* 0958B8 7F060D48 C7300018 */ lwc1 $f16, 0x18($t9) +/* 0958BC 7F060D4C C7A60048 */ lwc1 $f6, 0x48($sp) +/* 0958C0 7F060D50 46125101 */ sub.s $f4, $f10, $f18 +/* 0958C4 7F060D54 46102202 */ mul.s $f8, $f4, $f16 +/* 0958C8 7F060D58 C7A40194 */ lwc1 $f4, 0x194($sp) +/* 0958CC 7F060D5C 46023282 */ mul.s $f10, $f6, $f2 +/* 0958D0 7F060D60 460A4483 */ div.s $f18, $f8, $f10 +/* 0958D4 7F060D64 46122400 */ add.s $f16, $f4, $f18 +/* 0958D8 7F060D68 0FC1E2B1 */ jal getPlayer_c_screentop +/* 0958DC 7F060D6C E7B00194 */ swc1 $f16, 0x194($sp) +/* 0958E0 7F060D70 0FC1E2A9 */ jal getPlayer_c_screenheight +/* 0958E4 7F060D74 E7A00050 */ swc1 $f0, 0x50($sp) +/* 0958E8 7F060D78 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0958EC 7F060D7C 3C0D8008 */ lui $t5, %hi(pPlayer) # $t5, 0x8008 +/* 0958F0 7F060D80 8DADA120 */ lw $t5, %lo(pPlayer)($t5) +/* 0958F4 7F060D84 44813000 */ mtc1 $at, $f6 +/* 0958F8 7F060D88 C7A40050 */ lwc1 $f4, 0x50($sp) +/* 0958FC 7F060D8C C5AA1000 */ lwc1 $f10, 0x1000($t5) +/* 095900 7F060D90 46060202 */ mul.s $f8, $f0, $f6 +/* 095904 7F060D94 46045481 */ sub.s $f18, $f10, $f4 +/* 095908 7F060D98 4612403C */ c.lt.s $f8, $f18 +/* 09590C 7F060D9C 00000000 */ nop +/* 095910 7F060DA0 4500001A */ bc1f .Ljp7F060E0C +/* 095914 7F060DA4 00000000 */ nop +/* 095918 7F060DA8 0FC1E2A9 */ jal getPlayer_c_screenheight +/* 09591C 7F060DAC 00000000 */ nop +/* 095920 7F060DB0 0FC1E2A9 */ jal getPlayer_c_screenheight +/* 095924 7F060DB4 E7A00048 */ swc1 $f0, 0x48($sp) +/* 095928 7F060DB8 0FC1E2B1 */ jal getPlayer_c_screentop +/* 09592C 7F060DBC E7A0004C */ swc1 $f0, 0x4c($sp) +/* 095930 7F060DC0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 095934 7F060DC4 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 095938 7F060DC8 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 09593C 7F060DCC 44811000 */ mtc1 $at, $f2 +/* 095940 7F060DD0 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 095944 7F060DD4 C5D01000 */ lwc1 $f16, 0x1000($t6) +/* 095948 7F060DD8 8FAF00F8 */ lw $t7, 0xf8($sp) +/* 09594C 7F060DDC 46025102 */ mul.s $f4, $f10, $f2 +/* 095950 7F060DE0 46008181 */ sub.s $f6, $f16, $f0 +/* 095954 7F060DE4 C5F20014 */ lwc1 $f18, 0x14($t7) +/* 095958 7F060DE8 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 09595C 7F060DEC 46043201 */ sub.s $f8, $f6, $f4 +/* 095960 7F060DF0 46124402 */ mul.s $f16, $f8, $f18 +/* 095964 7F060DF4 C7A80198 */ lwc1 $f8, 0x198($sp) +/* 095968 7F060DF8 46025182 */ mul.s $f6, $f10, $f2 +/* 09596C 7F060DFC 46068103 */ div.s $f4, $f16, $f6 +/* 095970 7F060E00 46044481 */ sub.s $f18, $f8, $f4 +/* 095974 7F060E04 1000001A */ b .Ljp7F060E70 +/* 095978 7F060E08 E7B20198 */ swc1 $f18, 0x198($sp) +.Ljp7F060E0C: +/* 09597C 7F060E0C 0FC1E2A9 */ jal getPlayer_c_screenheight +/* 095980 7F060E10 00000000 */ nop +/* 095984 7F060E14 0FC1E2A9 */ jal getPlayer_c_screenheight +/* 095988 7F060E18 E7A00048 */ swc1 $f0, 0x48($sp) +/* 09598C 7F060E1C 0FC1E2B1 */ jal getPlayer_c_screentop +/* 095990 7F060E20 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 095994 7F060E24 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 095998 7F060E28 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09599C 7F060E2C 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0959A0 7F060E30 44818000 */ mtc1 $at, $f16 +/* 0959A4 7F060E34 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0959A8 7F060E38 C7081000 */ lwc1 $f8, 0x1000($t8) +/* 0959AC 7F060E3C 8FB900F8 */ lw $t9, 0xf8($sp) +/* 0959B0 7F060E40 46105182 */ mul.s $f6, $f10, $f16 +/* 0959B4 7F060E44 46004101 */ sub.s $f4, $f8, $f0 +/* 0959B8 7F060E48 C72A0010 */ lwc1 $f10, 0x10($t9) +/* 0959BC 7F060E4C C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0959C0 7F060E50 46062481 */ sub.s $f18, $f4, $f6 +/* 0959C4 7F060E54 44812000 */ mtc1 $at, $f4 +/* 0959C8 7F060E58 460A9402 */ mul.s $f16, $f18, $f10 +/* 0959CC 7F060E5C C7AA0198 */ lwc1 $f10, 0x198($sp) +/* 0959D0 7F060E60 46044182 */ mul.s $f6, $f8, $f4 +/* 0959D4 7F060E64 46068483 */ div.s $f18, $f16, $f6 +/* 0959D8 7F060E68 46125201 */ sub.s $f8, $f10, $f18 +/* 0959DC 7F060E6C E7A80198 */ swc1 $f8, 0x198($sp) +.Ljp7F060E70: +/* 0959E0 7F060E70 0FC172CD */ jal sub_GAME_7F05C614 +/* 0959E4 7F060E74 00000000 */ nop +/* 0959E8 7F060E78 0FC1613C */ jal matrix_4x4_set_identity +/* 0959EC 7F060E7C 27A40154 */ addiu $a0, $sp, 0x154 +/* 0959F0 7F060E80 8FA200FC */ lw $v0, 0xfc($sp) +/* 0959F4 7F060E84 2401001E */ li $at, 30 +/* 0959F8 7F060E88 10410002 */ beq $v0, $at, .Ljp7F060E94 +/* 0959FC 7F060E8C 24010017 */ li $at, 23 +/* 095A00 7F060E90 14410010 */ bne $v0, $at, .Ljp7F060ED4 +.Ljp7F060E94: +/* 095A04 7F060E94 3C0D8003 */ lui $t5, %hi(D_80035C70) # $t5, 0x8003 +/* 095A08 7F060E98 25AD5CB0 */ addiu $t5, %lo(D_80035C70) # addiu $t5, $t5, 0x5cb0 +/* 095A0C 7F060E9C 8DA10000 */ lw $at, ($t5) +/* 095A10 7F060EA0 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 095A14 7F060EA4 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095A18 7F060EA8 AC810000 */ sw $at, ($a0) +/* 095A1C 7F060EAC 8DAF0004 */ lw $t7, 4($t5) +/* 095A20 7F060EB0 AC8F0004 */ sw $t7, 4($a0) +/* 095A24 7F060EB4 8DA10008 */ lw $at, 8($t5) +/* 095A28 7F060EB8 0FC1630D */ jal matrix_4x4_set_rotation_around_xyz +/* 095A2C 7F060EBC AC810008 */ sw $at, 8($a0) +/* 095A30 7F060EC0 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 095A34 7F060EC4 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095A38 7F060EC8 27A50154 */ addiu $a1, $sp, 0x154 +/* 095A3C 7F060ECC 10000039 */ b .Ljp7F060FB4 +/* 095A40 7F060ED0 8E0D00BC */ lw $t5, 0xbc($s0) +.Ljp7F060ED4: +/* 095A44 7F060ED4 2401001F */ li $at, 31 +/* 095A48 7F060ED8 14410010 */ bne $v0, $at, .Ljp7F060F1C +/* 095A4C 7F060EDC 3C188003 */ lui $t8, %hi(D_80035C7C) # $t8, 0x8003 +/* 095A50 7F060EE0 27185CBC */ addiu $t8, %lo(D_80035C7C) # addiu $t8, $t8, 0x5cbc +/* 095A54 7F060EE4 8F010000 */ lw $at, ($t8) +/* 095A58 7F060EE8 27A400AC */ addiu $a0, $sp, 0xac +/* 095A5C 7F060EEC 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095A60 7F060EF0 AC810000 */ sw $at, ($a0) +/* 095A64 7F060EF4 8F0E0004 */ lw $t6, 4($t8) +/* 095A68 7F060EF8 AC8E0004 */ sw $t6, 4($a0) +/* 095A6C 7F060EFC 8F010008 */ lw $at, 8($t8) +/* 095A70 7F060F00 0FC1630D */ jal matrix_4x4_set_rotation_around_xyz +/* 095A74 7F060F04 AC810008 */ sw $at, 8($a0) +/* 095A78 7F060F08 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 095A7C 7F060F0C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095A80 7F060F10 27A50154 */ addiu $a1, $sp, 0x154 +/* 095A84 7F060F14 10000027 */ b .Ljp7F060FB4 +/* 095A88 7F060F18 8E0D00BC */ lw $t5, 0xbc($s0) +.Ljp7F060F1C: +/* 095A8C 7F060F1C 24010001 */ li $at, 1 +/* 095A90 7F060F20 14410023 */ bne $v0, $at, .Ljp7F060FB0 +/* 095A94 7F060F24 3C0D8008 */ lui $t5, %hi(pPlayer) # $t5, 0x8008 +/* 095A98 7F060F28 8DADA120 */ lw $t5, %lo(pPlayer)($t5) +/* 095A9C 7F060F2C 24010011 */ li $at, 17 +/* 095AA0 7F060F30 3C198003 */ lui $t9, %hi(D_80035C88) # $t9, 0x8003 +/* 095AA4 7F060F34 8DAF2A38 */ lw $t7, 0x2a38($t5) +/* 095AA8 7F060F38 27395CC8 */ addiu $t9, %lo(D_80035C88) # addiu $t9, $t9, 0x5cc8 +/* 095AAC 7F060F3C 55E1001D */ bnel $t7, $at, .Ljp7F060FB4 +/* 095AB0 7F060F40 8E0D00BC */ lw $t5, 0xbc($s0) +/* 095AB4 7F060F44 8F210000 */ lw $at, ($t9) +/* 095AB8 7F060F48 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 095ABC 7F060F4C 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095AC0 7F060F50 AC810000 */ sw $at, ($a0) +/* 095AC4 7F060F54 8F2E0004 */ lw $t6, 4($t9) +/* 095AC8 7F060F58 AC8E0004 */ sw $t6, 4($a0) +/* 095ACC 7F060F5C 8F210008 */ lw $at, 8($t9) +/* 095AD0 7F060F60 0FC1630D */ jal matrix_4x4_set_rotation_around_xyz +/* 095AD4 7F060F64 AC810008 */ sw $at, 8($a0) +/* 095AD8 7F060F68 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 095ADC 7F060F6C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095AE0 7F060F70 27A50154 */ addiu $a1, $sp, 0x154 +/* 095AE4 7F060F74 3C01C020 */ li $at, 0xC0200000 # -2.500000 +/* 095AE8 7F060F78 44818000 */ mtc1 $at, $f16 +/* 095AEC 7F060F7C C7A40194 */ lwc1 $f4, 0x194($sp) +/* 095AF0 7F060F80 3C018005 */ lui $at, %hi(D_80053E00) # $at, 0x8005 +/* 095AF4 7F060F84 C4323E30 */ lwc1 $f18, %lo(D_80053E00)($at) +/* 095AF8 7F060F88 46102180 */ add.s $f6, $f4, $f16 +/* 095AFC 7F060F8C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 095B00 7F060F90 C7AA0198 */ lwc1 $f10, 0x198($sp) +/* 095B04 7F060F94 44818000 */ mtc1 $at, $f16 +/* 095B08 7F060F98 C7A4019C */ lwc1 $f4, 0x19c($sp) +/* 095B0C 7F060F9C E7A60194 */ swc1 $f6, 0x194($sp) +/* 095B10 7F060FA0 46125200 */ add.s $f8, $f10, $f18 +/* 095B14 7F060FA4 46102180 */ add.s $f6, $f4, $f16 +/* 095B18 7F060FA8 E7A80198 */ swc1 $f8, 0x198($sp) +/* 095B1C 7F060FAC E7A6019C */ swc1 $f6, 0x19c($sp) +.Ljp7F060FB0: +/* 095B20 7F060FB0 8E0D00BC */ lw $t5, 0xbc($s0) +.Ljp7F060FB4: +/* 095B24 7F060FB4 51A00017 */ beql $t5, $zero, .Ljp7F061014 +/* 095B28 7F060FB8 44802000 */ mtc1 $zero, $f4 +/* 095B2C 7F060FBC C7AA0194 */ lwc1 $f10, 0x194($sp) +/* 095B30 7F060FC0 C61200AC */ lwc1 $f18, 0xac($s0) +/* 095B34 7F060FC4 C7A40198 */ lwc1 $f4, 0x198($sp) +/* 095B38 7F060FC8 2604007C */ addiu $a0, $s0, 0x7c +/* 095B3C 7F060FCC 46125200 */ add.s $f8, $f10, $f18 +/* 095B40 7F060FD0 C7AA019C */ lwc1 $f10, 0x19c($sp) +/* 095B44 7F060FD4 27A50154 */ addiu $a1, $sp, 0x154 +/* 095B48 7F060FD8 E7A80194 */ swc1 $f8, 0x194($sp) +/* 095B4C 7F060FDC C61000B0 */ lwc1 $f16, 0xb0($s0) +/* 095B50 7F060FE0 46102180 */ add.s $f6, $f4, $f16 +/* 095B54 7F060FE4 E7A60198 */ swc1 $f6, 0x198($sp) +/* 095B58 7F060FE8 C61200B4 */ lwc1 $f18, 0xb4($s0) +/* 095B5C 7F060FEC 46125200 */ add.s $f8, $f10, $f18 +/* 095B60 7F060FF0 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095B64 7F060FF4 E7A8019C */ swc1 $f8, 0x19c($sp) +/* 095B68 7F060FF8 44800000 */ mtc1 $zero, $f0 +/* 095B6C 7F060FFC 00000000 */ nop +/* 095B70 7F061000 E7A00184 */ swc1 $f0, 0x184($sp) +/* 095B74 7F061004 E7A00188 */ swc1 $f0, 0x188($sp) +/* 095B78 7F061008 1000000A */ b .Ljp7F061034 +/* 095B7C 7F06100C E7A0018C */ swc1 $f0, 0x18c($sp) +/* 095B80 7F061010 44802000 */ mtc1 $zero, $f4 +.Ljp7F061014: +/* 095B84 7F061014 44808000 */ mtc1 $zero, $f16 +/* 095B88 7F061018 44803000 */ mtc1 $zero, $f6 +/* 095B8C 7F06101C 44805000 */ mtc1 $zero, $f10 +/* 095B90 7F061020 44800000 */ mtc1 $zero, $f0 +/* 095B94 7F061024 E6040078 */ swc1 $f4, 0x78($s0) +/* 095B98 7F061028 E610006C */ swc1 $f16, 0x6c($s0) +/* 095B9C 7F06102C E6060070 */ swc1 $f6, 0x70($s0) +/* 095BA0 7F061030 E60A0074 */ swc1 $f10, 0x74($s0) +.Ljp7F061034: +/* 095BA4 7F061034 C61200CC */ lwc1 $f18, 0xcc($s0) +/* 095BA8 7F061038 44050000 */ mfc1 $a1, $f0 +/* 095BAC 7F06103C 44060000 */ mfc1 $a2, $f0 +/* 095BB0 7F061040 E7B20010 */ swc1 $f18, 0x10($sp) +/* 095BB4 7F061044 C60800D0 */ lwc1 $f8, 0xd0($s0) +/* 095BB8 7F061048 44070000 */ mfc1 $a3, $f0 +/* 095BBC 7F06104C 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 095BC0 7F061050 E7A80014 */ swc1 $f8, 0x14($sp) +/* 095BC4 7F061054 C60400D4 */ lwc1 $f4, 0xd4($s0) +/* 095BC8 7F061058 E7A40018 */ swc1 $f4, 0x18($sp) +/* 095BCC 7F06105C C61000D8 */ lwc1 $f16, 0xd8($s0) +/* 095BD0 7F061060 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 095BD4 7F061064 C60600DC */ lwc1 $f6, 0xdc($s0) +/* 095BD8 7F061068 E7A60020 */ swc1 $f6, 0x20($sp) +/* 095BDC 7F06106C C60A00E0 */ lwc1 $f10, 0xe0($s0) +/* 095BE0 7F061070 0FC1678A */ jal sub_GAME_7F059908 +/* 095BE4 7F061074 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 095BE8 7F061078 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 095BEC 7F06107C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095BF0 7F061080 27A50154 */ addiu $a1, $sp, 0x154 +/* 095BF4 7F061084 C7B20194 */ lwc1 $f18, 0x194($sp) +/* 095BF8 7F061088 C60801C8 */ lwc1 $f8, 0x1c8($s0) +/* 095BFC 7F06108C C7B00198 */ lwc1 $f16, 0x198($sp) +/* 095C00 7F061090 C60601CC */ lwc1 $f6, 0x1cc($s0) +/* 095C04 7F061094 46089101 */ sub.s $f4, $f18, $f8 +/* 095C08 7F061098 C60801D0 */ lwc1 $f8, 0x1d0($s0) +/* 095C0C 7F06109C C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 095C10 7F0610A0 46068281 */ sub.s $f10, $f16, $f6 +/* 095C14 7F0610A4 44062000 */ mfc1 $a2, $f4 +/* 095C18 7F0610A8 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 095C1C 7F0610AC 46089101 */ sub.s $f4, $f18, $f8 +/* 095C20 7F0610B0 44075000 */ mfc1 $a3, $f10 +/* 095C24 7F0610B4 24050000 */ li $a1, 0 +/* 095C28 7F0610B8 0FC16882 */ jal matrix_4x4_align +/* 095C2C 7F0610BC E7A40010 */ swc1 $f4, 0x10($sp) +/* 095C30 7F0610C0 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 095C34 7F0610C4 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095C38 7F0610C8 27A50154 */ addiu $a1, $sp, 0x154 +/* 095C3C 7F0610CC 27A40154 */ addiu $a0, $sp, 0x154 +/* 095C40 7F0610D0 0FC16150 */ jal matrix_4x4_copy +/* 095C44 7F0610D4 27A50264 */ addiu $a1, $sp, 0x264 +/* 095C48 7F0610D8 27A40194 */ addiu $a0, $sp, 0x194 +/* 095C4C 7F0610DC 0FC163AE */ jal matrix_4x4_set_position +/* 095C50 7F0610E0 27A50264 */ addiu $a1, $sp, 0x264 +/* 095C54 7F0610E4 26050228 */ addiu $a1, $s0, 0x228 +/* 095C58 7F0610E8 AFA50044 */ sw $a1, 0x44($sp) +/* 095C5C 7F0610EC 0FC16150 */ jal matrix_4x4_copy +/* 095C60 7F0610F0 27A40264 */ addiu $a0, $sp, 0x264 +/* 095C64 7F0610F4 26040268 */ addiu $a0, $s0, 0x268 +/* 095C68 7F0610F8 AFA40040 */ sw $a0, 0x40($sp) +/* 095C6C 7F0610FC 0FC16150 */ jal matrix_4x4_copy +/* 095C70 7F061100 260502A8 */ addiu $a1, $s0, 0x2a8 +/* 095C74 7F061104 0FC1E28D */ jal sub_GAME_7F078444 +/* 095C78 7F061108 00000000 */ nop +/* 095C7C 7F06110C 00402025 */ move $a0, $v0 +/* 095C80 7F061110 8FA50044 */ lw $a1, 0x44($sp) +/* 095C84 7F061114 0FC161AB */ jal matrix_4x4_multiply_homogeneous +/* 095C88 7F061118 8FA60040 */ lw $a2, 0x40($sp) +/* 095C8C 7F06111C 240F0001 */ li $t7, 1 +/* 095C90 7F061120 A20F000F */ sb $t7, 0xf($s0) +/* 095C94 7F061124 0FC1755A */ jal get_ptr_weapon_model_header_line +/* 095C98 7F061128 8FA400FC */ lw $a0, 0xfc($sp) +/* 095C9C 7F06112C 10400017 */ beqz $v0, .Ljp7F06118C +/* 095CA0 7F061130 8FA400FC */ lw $a0, 0xfc($sp) +/* 095CA4 7F061134 0FC17975 */ jal bondwalkItemCheckBitflags +/* 095CA8 7F061138 24050800 */ li $a1, 2048 +/* 095CAC 7F06113C 10400013 */ beqz $v0, .Ljp7F06118C +/* 095CB0 7F061140 8FA400FC */ lw $a0, 0xfc($sp) +/* 095CB4 7F061144 0FC17975 */ jal bondwalkItemCheckBitflags +/* 095CB8 7F061148 24052000 */ li $a1, 8192 +/* 095CBC 7F06114C 54400010 */ bnezl $v0, .Ljp7F061190 +/* 095CC0 7F061150 A200000F */ sb $zero, 0xf($s0) +/* 095CC4 7F061154 8E020024 */ lw $v0, 0x24($s0) +/* 095CC8 7F061158 24010006 */ li $at, 6 +/* 095CCC 7F06115C 1041000B */ beq $v0, $at, .Ljp7F06118C +/* 095CD0 7F061160 24010007 */ li $at, 7 +/* 095CD4 7F061164 5041000A */ beql $v0, $at, .Ljp7F061190 +/* 095CD8 7F061168 A200000F */ sb $zero, 0xf($s0) +/* 095CDC 7F06116C 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 095CE0 7F061170 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 095CE4 7F061174 50400006 */ beql $v0, $zero, .Ljp7F061190 +/* 095CE8 7F061178 A200000F */ sb $zero, 0xf($s0) +/* 095CEC 7F06117C 0FC17508 */ jal get_itemtype_in_hand +/* 095CF0 7F061180 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 095CF4 7F061184 54400003 */ bnezl $v0, .Ljp7F061194 +/* 095CF8 7F061188 8E18002C */ lw $t8, 0x2c($s0) +.Ljp7F06118C: +/* 095CFC 7F06118C A200000F */ sb $zero, 0xf($s0) +.Ljp7F061190: +/* 095D00 7F061190 8E18002C */ lw $t8, 0x2c($s0) +.Ljp7F061194: +/* 095D04 7F061194 8FA400FC */ lw $a0, 0xfc($sp) +/* 095D08 7F061198 5F000007 */ bgtzl $t8, .Ljp7F0611B8 +/* 095D0C 7F06119C 8219000F */ lb $t9, 0xf($s0) +/* 095D10 7F0611A0 0FC17975 */ jal bondwalkItemCheckBitflags +/* 095D14 7F0611A4 24050002 */ li $a1, 2 +/* 095D18 7F0611A8 50400003 */ beql $v0, $zero, .Ljp7F0611B8 +/* 095D1C 7F0611AC 8219000F */ lb $t9, 0xf($s0) +/* 095D20 7F0611B0 A200000F */ sb $zero, 0xf($s0) +/* 095D24 7F0611B4 8219000F */ lb $t9, 0xf($s0) +.Ljp7F0611B8: +/* 095D28 7F0611B8 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 095D2C 7F0611BC 8FAD02A8 */ lw $t5, 0x2a8($sp) +/* 095D30 7F0611C0 532002D0 */ beql $t9, $zero, .Ljp7F061D04 +/* 095D34 7F0611C4 8FAE00FC */ lw $t6, 0xfc($sp) +/* 095D38 7F0611C8 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 095D3C 7F0611CC 000D7940 */ sll $t7, $t5, 5 +/* 095D40 7F0611D0 00001825 */ move $v1, $zero +/* 095D44 7F0611D4 01CF1021 */ addu $v0, $t6, $t7 +/* 095D48 7F0611D8 8444081E */ lh $a0, 0x81e($v0) +/* 095D4C 7F0611DC 24420810 */ addiu $v0, $v0, 0x810 +/* 095D50 7F0611E0 AFA201A0 */ sw $v0, 0x1a0($sp) +/* 095D54 7F0611E4 0004C180 */ sll $t8, $a0, 6 +/* 095D58 7F0611E8 03002025 */ move $a0, $t8 +/* 095D5C 7F0611EC 0FC2F8B1 */ jal sub_GAME_7F0BD714 +/* 095D60 7F0611F0 AFA00100 */ sw $zero, 0x100($sp) +/* 095D64 7F0611F4 8FB901A0 */ lw $t9, 0x1a0($sp) +/* 095D68 7F0611F8 AFA202A4 */ sw $v0, 0x2a4($sp) +/* 095D6C 7F0611FC 8FA30100 */ lw $v1, 0x100($sp) +/* 095D70 7F061200 872D000E */ lh $t5, 0xe($t9) +/* 095D74 7F061204 19A0000D */ blez $t5, .Ljp7F06123C +/* 095D78 7F061208 00402025 */ move $a0, $v0 +/* 095D7C 7F06120C AFA30100 */ sw $v1, 0x100($sp) +.Ljp7F061210: +/* 095D80 7F061210 0FC1613C */ jal matrix_4x4_set_identity +/* 095D84 7F061214 AFA40044 */ sw $a0, 0x44($sp) +/* 095D88 7F061218 8FAE01A0 */ lw $t6, 0x1a0($sp) +/* 095D8C 7F06121C 8FA30100 */ lw $v1, 0x100($sp) +/* 095D90 7F061220 8FA40044 */ lw $a0, 0x44($sp) +/* 095D94 7F061224 85CF000E */ lh $t7, 0xe($t6) +/* 095D98 7F061228 24630001 */ addiu $v1, $v1, 1 +/* 095D9C 7F06122C 24840040 */ addiu $a0, $a0, 0x40 +/* 095DA0 7F061230 006F082A */ slt $at, $v1, $t7 +/* 095DA4 7F061234 5420FFF6 */ bnezl $at, .Ljp7F061210 +/* 095DA8 7F061238 AFA30100 */ sw $v1, 0x100($sp) +.Ljp7F06123C: +/* 095DAC 7F06123C 0FC1D8B9 */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 095DB0 7F061240 8FA401A0 */ lw $a0, 0x1a0($sp) +/* 095DB4 7F061244 260402F8 */ addiu $a0, $s0, 0x2f8 +/* 095DB8 7F061248 8FA501A0 */ lw $a1, 0x1a0($sp) +/* 095DBC 7F06124C AFA40044 */ sw $a0, 0x44($sp) +/* 095DC0 7F061250 0FC1D956 */ jal sub_GAME_7F075F68 +/* 095DC4 7F061254 26060318 */ addiu $a2, $s0, 0x318 +/* 095DC8 7F061258 8FA40044 */ lw $a0, 0x44($sp) +/* 095DCC 7F06125C 0FC17BA6 */ jal sub_GAME_7F05E978 +/* 095DD0 7F061260 24050001 */ li $a1, 1 +/* 095DD4 7F061264 8FA40044 */ lw $a0, 0x44($sp) +/* 095DD8 7F061268 0FC17BED */ jal sub_GAME_7F05EA94 +/* 095DDC 7F06126C 8205000E */ lb $a1, 0xe($s0) +/* 095DE0 7F061270 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 095DE4 7F061274 8F020008 */ lw $v0, 8($t8) +/* 095DE8 7F061278 8C440004 */ lw $a0, 4($v0) +/* 095DEC 7F06127C 50800008 */ beql $a0, $zero, .Ljp7F0612A0 +/* 095DF0 7F061280 8C43000C */ lw $v1, 0xc($v0) +/* 095DF4 7F061284 8C830004 */ lw $v1, 4($a0) +/* 095DF8 7F061288 94790004 */ lhu $t9, 4($v1) +/* 095DFC 7F06128C 00196880 */ sll $t5, $t9, 2 +/* 095E00 7F061290 020D7021 */ addu $t6, $s0, $t5 +/* 095E04 7F061294 25CF0318 */ addiu $t7, $t6, 0x318 +/* 095E08 7F061298 AFAF010C */ sw $t7, 0x10c($sp) +/* 095E0C 7F06129C 8C43000C */ lw $v1, 0xc($v0) +.Ljp7F0612A0: +/* 095E10 7F0612A0 50600004 */ beql $v1, $zero, .Ljp7F0612B4 +/* 095E14 7F0612A4 8FB902A4 */ lw $t9, 0x2a4($sp) +/* 095E18 7F0612A8 8C780004 */ lw $t8, 4($v1) +/* 095E1C 7F0612AC AFB80108 */ sw $t8, 0x108($sp) +/* 095E20 7F0612B0 8FB902A4 */ lw $t9, 0x2a4($sp) +.Ljp7F0612B4: +/* 095E24 7F0612B4 24050400 */ li $a1, 1024 +/* 095E28 7F0612B8 AE190304 */ sw $t9, 0x304($s0) +/* 095E2C 7F0612BC 0FC17975 */ jal bondwalkItemCheckBitflags +/* 095E30 7F0612C0 8FA400FC */ lw $a0, 0xfc($sp) +/* 095E34 7F0612C4 10400008 */ beqz $v0, .Ljp7F0612E8 +/* 095E38 7F0612C8 00000000 */ nop +/* 095E3C 7F0612CC 8FAD02A8 */ lw $t5, 0x2a8($sp) +/* 095E40 7F0612D0 24010001 */ li $at, 1 +/* 095E44 7F0612D4 15A10004 */ bne $t5, $at, .Ljp7F0612E8 +/* 095E48 7F0612D8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 095E4C 7F0612DC 44816000 */ mtc1 $at, $f12 +/* 095E50 7F0612E0 0FC163B5 */ jal matrix_column_1_scalar_multiply +/* 095E54 7F0612E4 27A50264 */ addiu $a1, $sp, 0x264 +.Ljp7F0612E8: +/* 095E58 7F0612E8 3C018005 */ lui $at, %hi(D_80053E04) # $at, 0x8005 +/* 095E5C 7F0612EC C42C3E34 */ lwc1 $f12, %lo(D_80053E04)($at) +/* 095E60 7F0612F0 0FC163E7 */ jal matrix_scalar_multiply +/* 095E64 7F0612F4 27A50264 */ addiu $a1, $sp, 0x264 +/* 095E68 7F0612F8 27A40264 */ addiu $a0, $sp, 0x264 +/* 095E6C 7F0612FC 0FC16150 */ jal matrix_4x4_copy +/* 095E70 7F061300 8FA502A4 */ lw $a1, 0x2a4($sp) +/* 095E74 7F061304 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 095E78 7F061308 3C0E8004 */ lui $t6, %hi(weapon_gun_revolver) # $t6, 0x8004 +/* 095E7C 7F06130C 25CEC79C */ addiu $t6, %lo(weapon_gun_revolver) # addiu $t6, $t6, -0x3864 +/* 095E80 7F061310 8DF80004 */ lw $t8, 4($t7) +/* 095E84 7F061314 55D80078 */ bnel $t6, $t8, .Ljp7F0614F8 +/* 095E88 7F061318 8FA2010C */ lw $v0, 0x10c($sp) +/* 095E8C 7F06131C 8DE20008 */ lw $v0, 8($t7) +/* 095E90 7F061320 8FB900FC */ lw $t9, 0xfc($sp) +/* 095E94 7F061324 24010012 */ li $at, 18 +/* 095E98 7F061328 8C430010 */ lw $v1, 0x10($v0) +/* 095E9C 7F06132C 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095EA0 7F061330 50600041 */ beql $v1, $zero, .Ljp7F061438 +/* 095EA4 7F061334 8C430014 */ lw $v1, 0x14($v0) +/* 095EA8 7F061338 44806000 */ mtc1 $zero, $f12 +/* 095EAC 7F06133C 17210021 */ bne $t9, $at, .Ljp7F0613C4 +/* 095EB0 7F061340 8C640004 */ lw $a0, 4($v1) +/* 095EB4 7F061344 8E0D0024 */ lw $t5, 0x24($s0) +/* 095EB8 7F061348 24010001 */ li $at, 1 +/* 095EBC 7F06134C 55A10012 */ bnel $t5, $at, .Ljp7F061398 +/* 095EC0 7F061350 8E18002C */ lw $t8, 0x2c($s0) +/* 095EC4 7F061354 8E18002C */ lw $t8, 0x2c($s0) +/* 095EC8 7F061358 8E0E0020 */ lw $t6, 0x20($s0) +/* 095ECC 7F06135C 3C018005 */ lui $at, %hi(D_80053E08) # $at, 0x8005 +/* 095ED0 7F061360 00187880 */ sll $t7, $t8, 2 +/* 095ED4 7F061364 01F87823 */ subu $t7, $t7, $t8 +/* 095ED8 7F061368 000F7840 */ sll $t7, $t7, 1 +/* 095EDC 7F06136C 01CFC823 */ subu $t9, $t6, $t7 +/* 095EE0 7F061370 272D001E */ addiu $t5, $t9, 0x1e +/* 095EE4 7F061374 448D8000 */ mtc1 $t5, $f16 +/* 095EE8 7F061378 C42A3E38 */ lwc1 $f10, %lo(D_80053E08)($at) +/* 095EEC 7F06137C 3C014210 */ li $at, 0x42100000 # 36.000000 +/* 095EF0 7F061380 468081A0 */ cvt.s.w $f6, $f16 +/* 095EF4 7F061384 44814000 */ mtc1 $at, $f8 +/* 095EF8 7F061388 460A3482 */ mul.s $f18, $f6, $f10 +/* 095EFC 7F06138C 1000001D */ b .Ljp7F061404 +/* 095F00 7F061390 46089303 */ div.s $f12, $f18, $f8 +/* 095F04 7F061394 8E18002C */ lw $t8, 0x2c($s0) +.Ljp7F061398: +/* 095F08 7F061398 240E0006 */ li $t6, 6 +/* 095F0C 7F06139C 3C018005 */ lui $at, %hi(D_80053E0C) # $at, 0x8005 +/* 095F10 7F0613A0 01D87823 */ subu $t7, $t6, $t8 +/* 095F14 7F0613A4 448F2000 */ mtc1 $t7, $f4 +/* 095F18 7F0613A8 C4263E3C */ lwc1 $f6, %lo(D_80053E0C)($at) +/* 095F1C 7F0613AC 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 095F20 7F0613B0 46802420 */ cvt.s.w $f16, $f4 +/* 095F24 7F0613B4 44819000 */ mtc1 $at, $f18 +/* 095F28 7F0613B8 46068282 */ mul.s $f10, $f16, $f6 +/* 095F2C 7F0613BC 10000011 */ b .Ljp7F061404 +/* 095F30 7F0613C0 46125303 */ div.s $f12, $f10, $f18 +.Ljp7F0613C4: +/* 095F34 7F0613C4 8E190024 */ lw $t9, 0x24($s0) +/* 095F38 7F0613C8 24010001 */ li $at, 1 +/* 095F3C 7F0613CC 1721000D */ bne $t9, $at, .Ljp7F061404 +/* 095F40 7F0613D0 00000000 */ nop +/* 095F44 7F0613D4 8E020020 */ lw $v0, 0x20($s0) +/* 095F48 7F0613D8 28410006 */ slti $at, $v0, 6 +/* 095F4C 7F0613DC 10200009 */ beqz $at, .Ljp7F061404 +/* 095F50 7F0613E0 00000000 */ nop +/* 095F54 7F0613E4 44824000 */ mtc1 $v0, $f8 +/* 095F58 7F0613E8 3C018005 */ lui $at, %hi(D_80053E10) # $at, 0x8005 +/* 095F5C 7F0613EC C4303E40 */ lwc1 $f16, %lo(D_80053E10)($at) +/* 095F60 7F0613F0 46804120 */ cvt.s.w $f4, $f8 +/* 095F64 7F0613F4 3C014210 */ li $at, 0x42100000 # 36.000000 +/* 095F68 7F0613F8 44815000 */ mtc1 $at, $f10 +/* 095F6C 7F0613FC 46102182 */ mul.s $f6, $f4, $f16 +/* 095F70 7F061400 460A3303 */ div.s $f12, $f6, $f10 +.Ljp7F061404: +/* 095F74 7F061404 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 095F78 7F061408 AFA4009C */ sw $a0, 0x9c($sp) +/* 095F7C 7F06140C 8FA4009C */ lw $a0, 0x9c($sp) +/* 095F80 7F061410 0FC163AE */ jal matrix_4x4_set_position +/* 095F84 7F061414 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095F88 7F061418 8FA602A4 */ lw $a2, 0x2a4($sp) +/* 095F8C 7F06141C 27A40264 */ addiu $a0, $sp, 0x264 +/* 095F90 7F061420 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095F94 7F061424 0FC1617A */ jal matrix_4x4_multiply +/* 095F98 7F061428 24C600C0 */ addiu $a2, $a2, 0xc0 +/* 095F9C 7F06142C 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 095FA0 7F061430 8DA20008 */ lw $v0, 8($t5) +/* 095FA4 7F061434 8C430014 */ lw $v1, 0x14($v0) +.Ljp7F061438: +/* 095FA8 7F061438 5060002F */ beql $v1, $zero, .Ljp7F0614F8 +/* 095FAC 7F06143C 8FA2010C */ lw $v0, 0x10c($sp) +/* 095FB0 7F061440 8E0E0024 */ lw $t6, 0x24($s0) +/* 095FB4 7F061444 24010001 */ li $at, 1 +/* 095FB8 7F061448 8C640004 */ lw $a0, 4($v1) +/* 095FBC 7F06144C 15C10022 */ bne $t6, $at, .Ljp7F0614D8 +/* 095FC0 7F061450 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095FC4 7F061454 8E020020 */ lw $v0, 0x20($s0) +/* 095FC8 7F061458 24180006 */ li $t8, 6 +/* 095FCC 7F06145C 28410003 */ slti $at, $v0, 3 +/* 095FD0 7F061460 1020000C */ beqz $at, .Ljp7F061494 +/* 095FD4 7F061464 03027823 */ subu $t7, $t8, $v0 +/* 095FD8 7F061468 44829000 */ mtc1 $v0, $f18 +/* 095FDC 7F06146C 3C018005 */ lui $at, %hi(D_80053E14) # $at, 0x8005 +/* 095FE0 7F061470 C4303E44 */ lwc1 $f16, %lo(D_80053E14)($at) +/* 095FE4 7F061474 46809220 */ cvt.s.w $f8, $f18 +/* 095FE8 7F061478 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 095FEC 7F06147C 44815000 */ mtc1 $at, $f10 +/* 095FF0 7F061480 46004107 */ neg.s $f4, $f8 +/* 095FF4 7F061484 46102002 */ mul.s $f0, $f4, $f16 +/* 095FF8 7F061488 46000180 */ add.s $f6, $f0, $f0 +/* 095FFC 7F06148C 1000000B */ b .Ljp7F0614BC +/* 096000 7F061490 460A3303 */ div.s $f12, $f6, $f10 +.Ljp7F061494: +/* 096004 7F061494 448F9000 */ mtc1 $t7, $f18 +/* 096008 7F061498 3C018005 */ lui $at, %hi(D_80053E18) # $at, 0x8005 +/* 09600C 7F06149C C4303E48 */ lwc1 $f16, %lo(D_80053E18)($at) +/* 096010 7F0614A0 46809220 */ cvt.s.w $f8, $f18 +/* 096014 7F0614A4 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 096018 7F0614A8 44815000 */ mtc1 $at, $f10 +/* 09601C 7F0614AC 46004107 */ neg.s $f4, $f8 +/* 096020 7F0614B0 46102002 */ mul.s $f0, $f4, $f16 +/* 096024 7F0614B4 46000180 */ add.s $f6, $f0, $f0 +/* 096028 7F0614B8 460A3303 */ div.s $f12, $f6, $f10 +.Ljp7F0614BC: +/* 09602C 7F0614BC 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 096030 7F0614C0 AFA40094 */ sw $a0, 0x94($sp) +/* 096034 7F0614C4 8FA40094 */ lw $a0, 0x94($sp) +/* 096038 7F0614C8 0FC163AE */ jal matrix_4x4_set_position +/* 09603C 7F0614CC 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 096040 7F0614D0 10000004 */ b .Ljp7F0614E4 +/* 096044 7F0614D4 8FA602A4 */ lw $a2, 0x2a4($sp) +.Ljp7F0614D8: +/* 096048 7F0614D8 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 09604C 7F0614DC 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 096050 7F0614E0 8FA602A4 */ lw $a2, 0x2a4($sp) +.Ljp7F0614E4: +/* 096054 7F0614E4 27A40264 */ addiu $a0, $sp, 0x264 +/* 096058 7F0614E8 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 09605C 7F0614EC 0FC1617A */ jal matrix_4x4_multiply +/* 096060 7F0614F0 24C60100 */ addiu $a2, $a2, 0x100 +/* 096064 7F0614F4 8FA2010C */ lw $v0, 0x10c($sp) +.Ljp7F0614F8: +/* 096068 7F0614F8 50400003 */ beql $v0, $zero, .Ljp7F061508 +/* 09606C 7F0614FC 8FB90108 */ lw $t9, 0x108($sp) +/* 096070 7F061500 AC400000 */ sw $zero, ($v0) +/* 096074 7F061504 8FB90108 */ lw $t9, 0x108($sp) +.Ljp7F061508: +/* 096078 7F061508 53200142 */ beql $t9, $zero, .Ljp7F061A14 +/* 09607C 7F06150C C6100260 */ lwc1 $f16, 0x260($s0) +/* 096080 7F061510 0C002918 */ jal get_random_value +/* 096084 7F061514 00000000 */ nop +/* 096088 7F061518 44829000 */ mtc1 $v0, $f18 +/* 09608C 7F06151C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 096090 7F061520 04410004 */ bgez $v0, .Ljp7F061534 +/* 096094 7F061524 46809220 */ cvt.s.w $f8, $f18 +/* 096098 7F061528 44812000 */ mtc1 $at, $f4 +/* 09609C 7F06152C 00000000 */ nop +/* 0960A0 7F061530 46044200 */ add.s $f8, $f8, $f4 +.Ljp7F061534: +/* 0960A4 7F061534 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0960A8 7F061538 44818000 */ mtc1 $at, $f16 +/* 0960AC 7F06153C 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0960B0 7F061540 44815000 */ mtc1 $at, $f10 +/* 0960B4 7F061544 46104182 */ mul.s $f6, $f8, $f16 +/* 0960B8 7F061548 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0960BC 7F06154C 44812000 */ mtc1 $at, $f4 +/* 0960C0 7F061550 8FAD00F8 */ lw $t5, 0xf8($sp) +/* 0960C4 7F061554 8FA400FC */ lw $a0, 0xfc($sp) +/* 0960C8 7F061558 24050001 */ li $a1, 1 +/* 0960CC 7F06155C 460A3482 */ mul.s $f18, $f6, $f10 +/* 0960D0 7F061560 46049200 */ add.s $f8, $f18, $f4 +/* 0960D4 7F061564 E7A80080 */ swc1 $f8, 0x80($sp) +/* 0960D8 7F061568 C5B00000 */ lwc1 $f16, ($t5) +/* 0960DC 7F06156C 0FC17975 */ jal bondwalkItemCheckBitflags +/* 0960E0 7F061570 E7B0007C */ swc1 $f16, 0x7c($sp) +/* 0960E4 7F061574 10400018 */ beqz $v0, .Ljp7F0615D8 +/* 0960E8 7F061578 8FA40108 */ lw $a0, 0x108($sp) +/* 0960EC 7F06157C 0C002918 */ jal get_random_value +/* 0960F0 7F061580 00000000 */ nop +/* 0960F4 7F061584 44823000 */ mtc1 $v0, $f6 +/* 0960F8 7F061588 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0960FC 7F06158C 04410004 */ bgez $v0, .Ljp7F0615A0 +/* 096100 7F061590 468032A0 */ cvt.s.w $f10, $f6 +/* 096104 7F061594 44819000 */ mtc1 $at, $f18 +/* 096108 7F061598 00000000 */ nop +/* 09610C 7F06159C 46125280 */ add.s $f10, $f10, $f18 +.Ljp7F0615A0: +/* 096110 7F0615A0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 096114 7F0615A4 44812000 */ mtc1 $at, $f4 +/* 096118 7F0615A8 3C018005 */ lui $at, %hi(D_80053E1C) # $at, 0x8005 +/* 09611C 7F0615AC C4303E4C */ lwc1 $f16, %lo(D_80053E1C)($at) +/* 096120 7F0615B0 46045202 */ mul.s $f8, $f10, $f4 +/* 096124 7F0615B4 27A50224 */ addiu $a1, $sp, 0x224 +/* 096128 7F0615B8 46104302 */ mul.s $f12, $f8, $f16 +/* 09612C 7F0615BC 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 096130 7F0615C0 00000000 */ nop +/* 096134 7F0615C4 8FA40108 */ lw $a0, 0x108($sp) +/* 096138 7F0615C8 0FC163AE */ jal matrix_4x4_set_position +/* 09613C 7F0615CC 27A50224 */ addiu $a1, $sp, 0x224 +/* 096140 7F0615D0 10000004 */ b .Ljp7F0615E4 +/* 096144 7F0615D4 C7AC0080 */ lwc1 $f12, 0x80($sp) +.Ljp7F0615D8: +/* 096148 7F0615D8 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 09614C 7F0615DC 27A50224 */ addiu $a1, $sp, 0x224 +/* 096150 7F0615E0 C7AC0080 */ lwc1 $f12, 0x80($sp) +.Ljp7F0615E4: +/* 096154 7F0615E4 0FC163E7 */ jal matrix_scalar_multiply +/* 096158 7F0615E8 27A50224 */ addiu $a1, $sp, 0x224 +/* 09615C 7F0615EC C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 096160 7F0615F0 0FC163CD */ jal matrix_column_3_scalar_multiply +/* 096164 7F0615F4 27A50224 */ addiu $a1, $sp, 0x224 +/* 096168 7F0615F8 27A40264 */ addiu $a0, $sp, 0x264 +/* 09616C 7F0615FC 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 096170 7F061600 27A50224 */ addiu $a1, $sp, 0x224 +/* 096174 7F061604 8FA502A4 */ lw $a1, 0x2a4($sp) +/* 096178 7F061608 27A40224 */ addiu $a0, $sp, 0x224 +/* 09617C 7F06160C 0FC16150 */ jal matrix_4x4_copy +/* 096180 7F061610 24A50040 */ addiu $a1, $a1, 0x40 +/* 096184 7F061614 C7A60254 */ lwc1 $f6, 0x254($sp) +/* 096188 7F061618 E60602E8 */ swc1 $f6, 0x2e8($s0) +/* 09618C 7F06161C C7B20258 */ lwc1 $f18, 0x258($sp) +/* 096190 7F061620 E61202EC */ swc1 $f18, 0x2ec($s0) +/* 096194 7F061624 C7AA025C */ lwc1 $f10, 0x25c($sp) +/* 096198 7F061628 0FC1E28D */ jal sub_GAME_7F078444 +/* 09619C 7F06162C E60A02F0 */ swc1 $f10, 0x2f0($s0) +/* 0961A0 7F061630 00402025 */ move $a0, $v0 +/* 0961A4 7F061634 0FC16265 */ jal matrix_4x4_transform_vector_in_place +/* 0961A8 7F061638 260502E8 */ addiu $a1, $s0, 0x2e8 +/* 0961AC 7F06163C C7A4025C */ lwc1 $f4, 0x25c($sp) +/* 0961B0 7F061640 820E000D */ lb $t6, 0xd($s0) +/* 0961B4 7F061644 46002207 */ neg.s $f8, $f4 +/* 0961B8 7F061648 11C000EE */ beqz $t6, .Ljp7F061A04 +/* 0961BC 7F06164C E60802F4 */ swc1 $f8, 0x2f4($s0) +/* 0961C0 7F061650 8FB8010C */ lw $t8, 0x10c($sp) +/* 0961C4 7F061654 240F0001 */ li $t7, 1 +/* 0961C8 7F061658 53000003 */ beql $t8, $zero, .Ljp7F061668 +/* 0961CC 7F06165C 8FB901A0 */ lw $t9, 0x1a0($sp) +/* 0961D0 7F061660 AF0F0000 */ sw $t7, ($t8) +/* 0961D4 7F061664 8FB901A0 */ lw $t9, 0x1a0($sp) +.Ljp7F061668: +/* 0961D8 7F061668 8F2D0008 */ lw $t5, 8($t9) +/* 0961DC 7F06166C 8DA30008 */ lw $v1, 8($t5) +/* 0961E0 7F061670 5060006D */ beql $v1, $zero, .Ljp7F061828 +/* 0961E4 7F061674 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 0961E8 7F061678 8C620004 */ lw $v0, 4($v1) +/* 0961EC 7F06167C C7A60224 */ lwc1 $f6, 0x224($sp) +/* 0961F0 7F061680 C7A40234 */ lwc1 $f4, 0x234($sp) +/* 0961F4 7F061684 C4500000 */ lwc1 $f16, ($v0) +/* 0961F8 7F061688 C44A0004 */ lwc1 $f10, 4($v0) +/* 0961FC 7F06168C 46068482 */ mul.s $f18, $f16, $f6 +/* 096200 7F061690 C4460008 */ lwc1 $f6, 8($v0) +/* 096204 7F061694 46045202 */ mul.s $f8, $f10, $f4 +/* 096208 7F061698 C7AA0244 */ lwc1 $f10, 0x244($sp) +/* 09620C 7F06169C 460A3102 */ mul.s $f4, $f6, $f10 +/* 096210 7F0616A0 46089400 */ add.s $f16, $f18, $f8 +/* 096214 7F0616A4 C7A80254 */ lwc1 $f8, 0x254($sp) +/* 096218 7F0616A8 46048480 */ add.s $f18, $f16, $f4 +/* 09621C 7F0616AC C7B00228 */ lwc1 $f16, 0x228($sp) +/* 096220 7F0616B0 46124180 */ add.s $f6, $f8, $f18 +/* 096224 7F0616B4 C7B20238 */ lwc1 $f18, 0x238($sp) +/* 096228 7F0616B8 E7A60084 */ swc1 $f6, 0x84($sp) +/* 09622C 7F0616BC C44A0000 */ lwc1 $f10, ($v0) +/* 096230 7F0616C0 C4480004 */ lwc1 $f8, 4($v0) +/* 096234 7F0616C4 46105102 */ mul.s $f4, $f10, $f16 +/* 096238 7F0616C8 C4500008 */ lwc1 $f16, 8($v0) +/* 09623C 7F0616CC 46124182 */ mul.s $f6, $f8, $f18 +/* 096240 7F0616D0 C7A80248 */ lwc1 $f8, 0x248($sp) +/* 096244 7F0616D4 46088482 */ mul.s $f18, $f16, $f8 +/* 096248 7F0616D8 46062280 */ add.s $f10, $f4, $f6 +/* 09624C 7F0616DC C7A60258 */ lwc1 $f6, 0x258($sp) +/* 096250 7F0616E0 46125100 */ add.s $f4, $f10, $f18 +/* 096254 7F0616E4 C7AA022C */ lwc1 $f10, 0x22c($sp) +/* 096258 7F0616E8 46043400 */ add.s $f16, $f6, $f4 +/* 09625C 7F0616EC C7A4023C */ lwc1 $f4, 0x23c($sp) +/* 096260 7F0616F0 E7B00088 */ swc1 $f16, 0x88($sp) +/* 096264 7F0616F4 C4480000 */ lwc1 $f8, ($v0) +/* 096268 7F0616F8 C4460004 */ lwc1 $f6, 4($v0) +/* 09626C 7F0616FC 460A4482 */ mul.s $f18, $f8, $f10 +/* 096270 7F061700 C44A0008 */ lwc1 $f10, 8($v0) +/* 096274 7F061704 46043402 */ mul.s $f16, $f6, $f4 +/* 096278 7F061708 C7A6024C */ lwc1 $f6, 0x24c($sp) +/* 09627C 7F06170C 46065102 */ mul.s $f4, $f10, $f6 +/* 096280 7F061710 46109200 */ add.s $f8, $f18, $f16 +/* 096284 7F061714 C7B0025C */ lwc1 $f16, 0x25c($sp) +/* 096288 7F061718 46044480 */ add.s $f18, $f8, $f4 +/* 09628C 7F06171C 46128280 */ add.s $f10, $f16, $f18 +/* 096290 7F061720 0C002918 */ jal get_random_value +/* 096294 7F061724 E7AA008C */ swc1 $f10, 0x8c($sp) +/* 096298 7F061728 44823000 */ mtc1 $v0, $f6 +/* 09629C 7F06172C 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 0962A0 7F061730 04410005 */ bgez $v0, .Ljp7F061748 +/* 0962A4 7F061734 46803220 */ cvt.s.w $f8, $f6 +/* 0962A8 7F061738 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0962AC 7F06173C 44812000 */ mtc1 $at, $f4 +/* 0962B0 7F061740 00000000 */ nop +/* 0962B4 7F061744 46044200 */ add.s $f8, $f8, $f4 +.Ljp7F061748: +/* 0962B8 7F061748 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0962BC 7F06174C 44818000 */ mtc1 $at, $f16 +/* 0962C0 7F061750 3C018005 */ lui $at, %hi(D_80053E20) # $at, 0x8005 +/* 0962C4 7F061754 C42A3E50 */ lwc1 $f10, %lo(D_80053E20)($at) +/* 0962C8 7F061758 46104482 */ mul.s $f18, $f8, $f16 +/* 0962CC 7F06175C C7B00088 */ lwc1 $f16, 0x88($sp) +/* 0962D0 7F061760 C7A40084 */ lwc1 $f4, 0x84($sp) +/* 0962D4 7F061764 46002207 */ neg.s $f8, $f4 +/* 0962D8 7F061768 460A9182 */ mul.s $f6, $f18, $f10 +/* 0962DC 7F06176C C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0962E0 7F061770 46008487 */ neg.s $f18, $f16 +/* 0962E4 7F061774 44064000 */ mfc1 $a2, $f8 +/* 0962E8 7F061778 44079000 */ mfc1 $a3, $f18 +/* 0962EC 7F06177C 44053000 */ mfc1 $a1, $f6 +/* 0962F0 7F061780 46005187 */ neg.s $f6, $f10 +/* 0962F4 7F061784 0FC16882 */ jal matrix_4x4_align +/* 0962F8 7F061788 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0962FC 7F06178C 3C018005 */ lui $at, %hi(D_80053E24) # $at, 0x8005 +/* 096300 7F061790 C4243E54 */ lwc1 $f4, %lo(D_80053E24)($at) +/* 096304 7F061794 C7A80080 */ lwc1 $f8, 0x80($sp) +/* 096308 7F061798 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 09630C 7F06179C 46082302 */ mul.s $f12, $f4, $f8 +/* 096310 7F0617A0 0FC163E7 */ jal matrix_scalar_multiply +/* 096314 7F0617A4 00000000 */ nop +/* 096318 7F0617A8 C7B00194 */ lwc1 $f16, 0x194($sp) +/* 09631C 7F0617AC C61201C8 */ lwc1 $f18, 0x1c8($s0) +/* 096320 7F0617B0 C7A60198 */ lwc1 $f6, 0x198($sp) +/* 096324 7F0617B4 C60401CC */ lwc1 $f4, 0x1cc($s0) +/* 096328 7F0617B8 46128281 */ sub.s $f10, $f16, $f18 +/* 09632C 7F0617BC C61201D0 */ lwc1 $f18, 0x1d0($s0) +/* 096330 7F0617C0 C7B0019C */ lwc1 $f16, 0x19c($sp) +/* 096334 7F0617C4 46043201 */ sub.s $f8, $f6, $f4 +/* 096338 7F0617C8 44065000 */ mfc1 $a2, $f10 +/* 09633C 7F0617CC 27A40114 */ addiu $a0, $sp, 0x114 +/* 096340 7F0617D0 46128281 */ sub.s $f10, $f16, $f18 +/* 096344 7F0617D4 44074000 */ mfc1 $a3, $f8 +/* 096348 7F0617D8 24050000 */ li $a1, 0 +/* 09634C 7F0617DC 0FC1681E */ jal sub_GAME_7F059B58 +/* 096350 7F0617E0 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 096354 7F0617E4 27A40114 */ addiu $a0, $sp, 0x114 +/* 096358 7F0617E8 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 09635C 7F0617EC 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 096360 7F0617F0 C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 096364 7F0617F4 0FC16428 */ jal matrix_row_3_scalar_multiply +/* 096368 7F0617F8 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 09636C 7F0617FC 27A40154 */ addiu $a0, $sp, 0x154 +/* 096370 7F061800 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 096374 7F061804 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 096378 7F061808 27A40084 */ addiu $a0, $sp, 0x84 +/* 09637C 7F06180C 0FC163AE */ jal matrix_4x4_set_position +/* 096380 7F061810 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 096384 7F061814 8FA502A4 */ lw $a1, 0x2a4($sp) +/* 096388 7F061818 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 09638C 7F06181C 0FC16150 */ jal matrix_4x4_copy +/* 096390 7F061820 24A50080 */ addiu $a1, $a1, 0x80 +/* 096394 7F061824 8FAF01A0 */ lw $t7, 0x1a0($sp) +.Ljp7F061828: +/* 096398 7F061828 3C0E8004 */ lui $t6, %hi(weapon_gun_kf7) # $t6, 0x8004 +/* 09639C 7F06182C 25CEC7DC */ addiu $t6, %lo(weapon_gun_kf7) # addiu $t6, $t6, -0x3824 +/* 0963A0 7F061830 8DF80004 */ lw $t8, 4($t7) +/* 0963A4 7F061834 55D80074 */ bnel $t6, $t8, .Ljp7F061A08 +/* 0963A8 7F061838 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 0963AC 7F06183C 8DF90008 */ lw $t9, 8($t7) +/* 0963B0 7F061840 8F230010 */ lw $v1, 0x10($t9) +/* 0963B4 7F061844 50600070 */ beql $v1, $zero, .Ljp7F061A08 +/* 0963B8 7F061848 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 0963BC 7F06184C 8C620004 */ lw $v0, 4($v1) +/* 0963C0 7F061850 C7A40224 */ lwc1 $f4, 0x224($sp) +/* 0963C4 7F061854 C7B20234 */ lwc1 $f18, 0x234($sp) +/* 0963C8 7F061858 C4460000 */ lwc1 $f6, ($v0) +/* 0963CC 7F06185C C4500004 */ lwc1 $f16, 4($v0) +/* 0963D0 7F061860 3C018005 */ lui $at, %hi(D_80053E28) # $at, 0x8005 +/* 0963D4 7F061864 46043202 */ mul.s $f8, $f6, $f4 +/* 0963D8 7F061868 C4440008 */ lwc1 $f4, 8($v0) +/* 0963DC 7F06186C 8FAD02A4 */ lw $t5, 0x2a4($sp) +/* 0963E0 7F061870 46128282 */ mul.s $f10, $f16, $f18 +/* 0963E4 7F061874 C7B00244 */ lwc1 $f16, 0x244($sp) +/* 0963E8 7F061878 25AE00C0 */ addiu $t6, $t5, 0xc0 +/* 0963EC 7F06187C 46102482 */ mul.s $f18, $f4, $f16 +/* 0963F0 7F061880 460A4180 */ add.s $f6, $f8, $f10 +/* 0963F4 7F061884 C7AA0254 */ lwc1 $f10, 0x254($sp) +/* 0963F8 7F061888 46123200 */ add.s $f8, $f6, $f18 +/* 0963FC 7F06188C C7A60228 */ lwc1 $f6, 0x228($sp) +/* 096400 7F061890 46085100 */ add.s $f4, $f10, $f8 +/* 096404 7F061894 C7A80238 */ lwc1 $f8, 0x238($sp) +/* 096408 7F061898 E7A40084 */ swc1 $f4, 0x84($sp) +/* 09640C 7F06189C C4500000 */ lwc1 $f16, ($v0) +/* 096410 7F0618A0 C44A0004 */ lwc1 $f10, 4($v0) +/* 096414 7F0618A4 46068482 */ mul.s $f18, $f16, $f6 +/* 096418 7F0618A8 C4460008 */ lwc1 $f6, 8($v0) +/* 09641C 7F0618AC 46085102 */ mul.s $f4, $f10, $f8 +/* 096420 7F0618B0 C7AA0248 */ lwc1 $f10, 0x248($sp) +/* 096424 7F0618B4 460A3202 */ mul.s $f8, $f6, $f10 +/* 096428 7F0618B8 46049400 */ add.s $f16, $f18, $f4 +/* 09642C 7F0618BC C7A40258 */ lwc1 $f4, 0x258($sp) +/* 096430 7F0618C0 46088480 */ add.s $f18, $f16, $f8 +/* 096434 7F0618C4 C7B0022C */ lwc1 $f16, 0x22c($sp) +/* 096438 7F0618C8 46122180 */ add.s $f6, $f4, $f18 +/* 09643C 7F0618CC C7B2023C */ lwc1 $f18, 0x23c($sp) +/* 096440 7F0618D0 E7A60088 */ swc1 $f6, 0x88($sp) +/* 096444 7F0618D4 C44A0000 */ lwc1 $f10, ($v0) +/* 096448 7F0618D8 C4440004 */ lwc1 $f4, 4($v0) +/* 09644C 7F0618DC 46105202 */ mul.s $f8, $f10, $f16 +/* 096450 7F0618E0 C4500008 */ lwc1 $f16, 8($v0) +/* 096454 7F0618E4 AFAE0040 */ sw $t6, 0x40($sp) +/* 096458 7F0618E8 46122182 */ mul.s $f6, $f4, $f18 +/* 09645C 7F0618EC C7A4024C */ lwc1 $f4, 0x24c($sp) +/* 096460 7F0618F0 46048482 */ mul.s $f18, $f16, $f4 +/* 096464 7F0618F4 C4243E58 */ lwc1 $f4, %lo(D_80053E28)($at) +/* 096468 7F0618F8 46064280 */ add.s $f10, $f8, $f6 +/* 09646C 7F0618FC C7A6025C */ lwc1 $f6, 0x25c($sp) +/* 096470 7F061900 46125200 */ add.s $f8, $f10, $f18 +/* 096474 7F061904 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 096478 7F061908 460A2482 */ mul.s $f18, $f4, $f10 +/* 09647C 7F06190C 46083400 */ add.s $f16, $f6, $f8 +/* 096480 7F061910 E7B0008C */ swc1 $f16, 0x8c($sp) +/* 096484 7F061914 0C002918 */ jal get_random_value +/* 096488 7F061918 E7B20038 */ swc1 $f18, 0x38($sp) +/* 09648C 7F06191C 44823000 */ mtc1 $v0, $f6 +/* 096490 7F061920 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 096494 7F061924 04410005 */ bgez $v0, .Ljp7F06193C +/* 096498 7F061928 46803220 */ cvt.s.w $f8, $f6 +/* 09649C 7F06192C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0964A0 7F061930 44818000 */ mtc1 $at, $f16 +/* 0964A4 7F061934 00000000 */ nop +/* 0964A8 7F061938 46104200 */ add.s $f8, $f8, $f16 +.Ljp7F06193C: +/* 0964AC 7F06193C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0964B0 7F061940 44812000 */ mtc1 $at, $f4 +/* 0964B4 7F061944 3C018005 */ lui $at, %hi(D_80053E2C) # $at, 0x8005 +/* 0964B8 7F061948 C4323E5C */ lwc1 $f18, %lo(D_80053E2C)($at) +/* 0964BC 7F06194C 46044282 */ mul.s $f10, $f8, $f4 +/* 0964C0 7F061950 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0964C4 7F061954 C7B00084 */ lwc1 $f16, 0x84($sp) +/* 0964C8 7F061958 46008207 */ neg.s $f8, $f16 +/* 0964CC 7F06195C 46125182 */ mul.s $f6, $f10, $f18 +/* 0964D0 7F061960 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 0964D4 7F061964 46002287 */ neg.s $f10, $f4 +/* 0964D8 7F061968 44064000 */ mfc1 $a2, $f8 +/* 0964DC 7F06196C 44075000 */ mfc1 $a3, $f10 +/* 0964E0 7F061970 44053000 */ mfc1 $a1, $f6 +/* 0964E4 7F061974 46009187 */ neg.s $f6, $f18 +/* 0964E8 7F061978 0FC16882 */ jal matrix_4x4_align +/* 0964EC 7F06197C E7A60010 */ swc1 $f6, 0x10($sp) +/* 0964F0 7F061980 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 0964F4 7F061984 0FC163E7 */ jal matrix_scalar_multiply +/* 0964F8 7F061988 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 0964FC 7F06198C C7B00194 */ lwc1 $f16, 0x194($sp) +/* 096500 7F061990 C60801C8 */ lwc1 $f8, 0x1c8($s0) +/* 096504 7F061994 C7AA0198 */ lwc1 $f10, 0x198($sp) +/* 096508 7F061998 C61201CC */ lwc1 $f18, 0x1cc($s0) +/* 09650C 7F06199C 46088101 */ sub.s $f4, $f16, $f8 +/* 096510 7F0619A0 C60801D0 */ lwc1 $f8, 0x1d0($s0) +/* 096514 7F0619A4 C7B0019C */ lwc1 $f16, 0x19c($sp) +/* 096518 7F0619A8 46125181 */ sub.s $f6, $f10, $f18 +/* 09651C 7F0619AC 44062000 */ mfc1 $a2, $f4 +/* 096520 7F0619B0 27A40114 */ addiu $a0, $sp, 0x114 +/* 096524 7F0619B4 46088101 */ sub.s $f4, $f16, $f8 +/* 096528 7F0619B8 44073000 */ mfc1 $a3, $f6 +/* 09652C 7F0619BC 24050000 */ li $a1, 0 +/* 096530 7F0619C0 0FC1681E */ jal sub_GAME_7F059B58 +/* 096534 7F0619C4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 096538 7F0619C8 27A40114 */ addiu $a0, $sp, 0x114 +/* 09653C 7F0619CC 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 096540 7F0619D0 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 096544 7F0619D4 C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 096548 7F0619D8 0FC16428 */ jal matrix_row_3_scalar_multiply +/* 09654C 7F0619DC 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 096550 7F0619E0 27A40154 */ addiu $a0, $sp, 0x154 +/* 096554 7F0619E4 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 096558 7F0619E8 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 09655C 7F0619EC 27A40084 */ addiu $a0, $sp, 0x84 +/* 096560 7F0619F0 0FC163AE */ jal matrix_4x4_set_position +/* 096564 7F0619F4 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 096568 7F0619F8 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 09656C 7F0619FC 0FC16150 */ jal matrix_4x4_copy +/* 096570 7F061A00 8FA50040 */ lw $a1, 0x40($sp) +.Ljp7F061A04: +/* 096574 7F061A04 8FB801A0 */ lw $t8, 0x1a0($sp) +.Ljp7F061A08: +/* 096578 7F061A08 1000000C */ b .Ljp7F061A3C +/* 09657C 7F061A0C 8F020008 */ lw $v0, 8($t8) +/* 096580 7F061A10 C6100260 */ lwc1 $f16, 0x260($s0) +.Ljp7F061A14: +/* 096584 7F061A14 C60A0298 */ lwc1 $f10, 0x298($s0) +/* 096588 7F061A18 C612029C */ lwc1 $f18, 0x29c($s0) +/* 09658C 7F061A1C C60602A0 */ lwc1 $f6, 0x2a0($s0) +/* 096590 7F061A20 46008207 */ neg.s $f8, $f16 +/* 096594 7F061A24 E60A02E8 */ swc1 $f10, 0x2e8($s0) +/* 096598 7F061A28 E60802F4 */ swc1 $f8, 0x2f4($s0) +/* 09659C 7F061A2C E61202EC */ swc1 $f18, 0x2ec($s0) +/* 0965A0 7F061A30 E60602F0 */ swc1 $f6, 0x2f0($s0) +/* 0965A4 7F061A34 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 0965A8 7F061A38 8DE20008 */ lw $v0, 8($t7) +.Ljp7F061A3C: +/* 0965AC 7F061A3C 8C440018 */ lw $a0, 0x18($v0) +/* 0965B0 7F061A40 50800043 */ beql $a0, $zero, .Ljp7F061B50 +/* 0965B4 7F061A44 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 0965B8 7F061A48 8C990004 */ lw $t9, 4($a0) +/* 0965BC 7F061A4C 00002825 */ move $a1, $zero +/* 0965C0 7F061A50 0FC1B2D8 */ jal sub_GAME_7F06C570 +/* 0965C4 7F061A54 AFB90070 */ sw $t9, 0x70($sp) +/* 0965C8 7F061A58 AFA2006C */ sw $v0, 0x6c($sp) +/* 0965CC 7F061A5C 8E050010 */ lw $a1, 0x10($s0) +/* 0965D0 7F061A60 0FC17AF5 */ jal sub_GAME_7F05E6B4 +/* 0965D4 7F061A64 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0965D8 7F061A68 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 0965DC 7F061A6C 8FA40070 */ lw $a0, 0x70($sp) +/* 0965E0 7F061A70 27A601A4 */ addiu $a2, $sp, 0x1a4 +/* 0965E4 7F061A74 85AE000C */ lh $t6, 0xc($t5) +/* 0965E8 7F061A78 29C1001D */ slti $at, $t6, 0x1d +/* 0965EC 7F061A7C 1420002A */ bnez $at, .Ljp7F061B28 +/* 0965F0 7F061A80 00000000 */ nop +/* 0965F4 7F061A84 8DB80008 */ lw $t8, 8($t5) +/* 0965F8 7F061A88 8F030070 */ lw $v1, 0x70($t8) +/* 0965FC 7F061A8C 10600026 */ beqz $v1, .Ljp7F061B28 +/* 096600 7F061A90 00000000 */ nop +/* 096604 7F061A94 8C620004 */ lw $v0, 4($v1) +/* 096608 7F061A98 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 09660C 7F061A9C 0FC17AE1 */ jal get_value_if_watch_is_on_hand_or_not +/* 096610 7F061AA0 AFA20068 */ sw $v0, 0x68($sp) +/* 096614 7F061AA4 3C018005 */ lui $at, %hi(D_80053E30) # $at, 0x8005 +/* 096618 7F061AA8 C42A3E60 */ lwc1 $f10, %lo(D_80053E30)($at) +/* 09661C 7F061AAC C6040214 */ lwc1 $f4, 0x214($s0) +/* 096620 7F061AB0 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 096624 7F061AB4 44818000 */ mtc1 $at, $f16 +/* 096628 7F061AB8 460A2480 */ add.s $f18, $f4, $f10 +/* 09662C 7F061ABC 3C018005 */ lui $at, %hi(D_80053E34) # $at, 0x8005 +/* 096630 7F061AC0 C4243E64 */ lwc1 $f4, %lo(D_80053E34)($at) +/* 096634 7F061AC4 8FA20068 */ lw $v0, 0x68($sp) +/* 096638 7F061AC8 46009181 */ sub.s $f6, $f18, $f0 +/* 09663C 7F061ACC 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 096640 7F061AD0 C4520000 */ lwc1 $f18, ($v0) +/* 096644 7F061AD4 46103202 */ mul.s $f8, $f6, $f16 +/* 096648 7F061AD8 C446000C */ lwc1 $f6, 0xc($v0) +/* 09664C 7F061ADC 46069401 */ sub.s $f16, $f18, $f6 +/* 096650 7F061AE0 C4460014 */ lwc1 $f6, 0x14($v0) +/* 096654 7F061AE4 C4520008 */ lwc1 $f18, 8($v0) +/* 096658 7F061AE8 46044283 */ div.s $f10, $f8, $f4 +/* 09665C 7F061AEC C4440010 */ lwc1 $f4, 0x10($v0) +/* 096660 7F061AF0 C4480004 */ lwc1 $f8, 4($v0) +/* 096664 7F061AF4 44068000 */ mfc1 $a2, $f16 +/* 096668 7F061AF8 46069401 */ sub.s $f16, $f18, $f6 +/* 09666C 7F061AFC E7B00010 */ swc1 $f16, 0x10($sp) +/* 096670 7F061B00 44055000 */ mfc1 $a1, $f10 +/* 096674 7F061B04 46044281 */ sub.s $f10, $f8, $f4 +/* 096678 7F061B08 44075000 */ mfc1 $a3, $f10 +/* 09667C 7F061B0C 0C005DD8 */ jal guRotateF +/* 096680 7F061B10 00000000 */ nop +/* 096684 7F061B14 8FA40070 */ lw $a0, 0x70($sp) +/* 096688 7F061B18 0FC163AE */ jal matrix_4x4_set_position +/* 09668C 7F061B1C 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 096690 7F061B20 10000004 */ b .Ljp7F061B34 +/* 096694 7F061B24 8FAF006C */ lw $t7, 0x6c($sp) +.Ljp7F061B28: +/* 096698 7F061B28 0FC1627C */ jal matrix_4x4_set_position_and_rotation_around_y +/* 09669C 7F061B2C 8E050214 */ lw $a1, 0x214($s0) +/* 0966A0 7F061B30 8FAF006C */ lw $t7, 0x6c($sp) +.Ljp7F061B34: +/* 0966A4 7F061B34 8FAE02A4 */ lw $t6, 0x2a4($sp) +/* 0966A8 7F061B38 27A40264 */ addiu $a0, $sp, 0x264 +/* 0966AC 7F061B3C 000FC980 */ sll $t9, $t7, 6 +/* 0966B0 7F061B40 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 0966B4 7F061B44 0FC161AB */ jal matrix_4x4_multiply_homogeneous +/* 0966B8 7F061B48 032E3021 */ addu $a2, $t9, $t6 +/* 0966BC 7F061B4C 8FAD01A0 */ lw $t5, 0x1a0($sp) +.Ljp7F061B50: +/* 0966C0 7F061B50 8FA40044 */ lw $a0, 0x44($sp) +/* 0966C4 7F061B54 85B8000C */ lh $t8, 0xc($t5) +/* 0966C8 7F061B58 01A02825 */ move $a1, $t5 +/* 0966CC 7F061B5C 2B01001E */ slti $at, $t8, 0x1e +/* 0966D0 7F061B60 54200004 */ bnezl $at, .Ljp7F061B74 +/* 0966D4 7F061B64 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 0966D8 7F061B68 0FC220B8 */ jal seems_to_load_cuff_microcode +/* 0966DC 7F061B6C 2406001D */ li $a2, 29 +/* 0966E0 7F061B70 8FAF01A0 */ lw $t7, 0x1a0($sp) +.Ljp7F061B74: +/* 0966E4 7F061B74 8DF90008 */ lw $t9, 8($t7) +/* 0966E8 7F061B78 8F24001C */ lw $a0, 0x1c($t9) +/* 0966EC 7F061B7C 50800017 */ beql $a0, $zero, .Ljp7F061BDC +/* 0966F0 7F061B80 8FB901A0 */ lw $t9, 0x1a0($sp) +/* 0966F4 7F061B84 8C8E0004 */ lw $t6, 4($a0) +/* 0966F8 7F061B88 00002825 */ move $a1, $zero +/* 0966FC 7F061B8C 0FC1B2D8 */ jal sub_GAME_7F06C570 +/* 096700 7F061B90 AFAE0064 */ sw $t6, 0x64($sp) +/* 096704 7F061B94 AFA20060 */ sw $v0, 0x60($sp) +/* 096708 7F061B98 0FC17B57 */ jal sub_GAME_7F05E83C +/* 09670C 7F061B9C 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096710 7F061BA0 8FA40064 */ lw $a0, 0x64($sp) +/* 096714 7F061BA4 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 096718 7F061BA8 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 09671C 7F061BAC C7A801DC */ lwc1 $f8, 0x1dc($sp) +/* 096720 7F061BB0 C6040218 */ lwc1 $f4, 0x218($s0) +/* 096724 7F061BB4 8FB80060 */ lw $t8, 0x60($sp) +/* 096728 7F061BB8 8FAF02A4 */ lw $t7, 0x2a4($sp) +/* 09672C 7F061BBC 46044281 */ sub.s $f10, $f8, $f4 +/* 096730 7F061BC0 00186980 */ sll $t5, $t8, 6 +/* 096734 7F061BC4 27A40264 */ addiu $a0, $sp, 0x264 +/* 096738 7F061BC8 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 09673C 7F061BCC E7AA01DC */ swc1 $f10, 0x1dc($sp) +/* 096740 7F061BD0 0FC1617A */ jal matrix_4x4_multiply +/* 096744 7F061BD4 01AF3021 */ addu $a2, $t5, $t7 +/* 096748 7F061BD8 8FB901A0 */ lw $t9, 0x1a0($sp) +.Ljp7F061BDC: +/* 09674C 7F061BDC 00001825 */ move $v1, $zero +/* 096750 7F061BE0 00003025 */ move $a2, $zero +/* 096754 7F061BE4 872E000C */ lh $t6, 0xc($t9) +/* 096758 7F061BE8 24070005 */ li $a3, 5 +/* 09675C 7F061BEC 29C10013 */ slti $at, $t6, 0x13 +/* 096760 7F061BF0 1420002A */ bnez $at, .Ljp7F061C9C +/* 096764 7F061BF4 00000000 */ nop +.Ljp7F061BF8: +/* 096768 7F061BF8 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 09676C 7F061BFC 8FA40044 */ lw $a0, 0x44($sp) +/* 096770 7F061C00 8F0D0008 */ lw $t5, 8($t8) +/* 096774 7F061C04 01A67821 */ addu $t7, $t5, $a2 +/* 096778 7F061C08 8DE50048 */ lw $a1, 0x48($t7) +/* 09677C 7F061C0C 50A0000E */ beql $a1, $zero, .Ljp7F061C48 +/* 096780 7F061C10 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 096784 7F061C14 AFA3005C */ sw $v1, 0x5c($sp) +/* 096788 7F061C18 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 09678C 7F061C1C AFA60040 */ sw $a2, 0x40($sp) +/* 096790 7F061C20 8FA3005C */ lw $v1, 0x5c($sp) +/* 096794 7F061C24 8FA60040 */ lw $a2, 0x40($sp) +/* 096798 7F061C28 10400006 */ beqz $v0, .Ljp7F061C44 +/* 09679C 7F061C2C 24070005 */ li $a3, 5 +/* 0967A0 7F061C30 8E190034 */ lw $t9, 0x34($s0) +/* 0967A4 7F061C34 00E37023 */ subu $t6, $a3, $v1 +/* 0967A8 7F061C38 032EC02A */ slt $t8, $t9, $t6 +/* 0967AC 7F061C3C 3B180001 */ xori $t8, $t8, 1 +/* 0967B0 7F061C40 AC580000 */ sw $t8, ($v0) +.Ljp7F061C44: +/* 0967B4 7F061C44 8FAD01A0 */ lw $t5, 0x1a0($sp) +.Ljp7F061C48: +/* 0967B8 7F061C48 8FA40044 */ lw $a0, 0x44($sp) +/* 0967BC 7F061C4C 8DAF0008 */ lw $t7, 8($t5) +/* 0967C0 7F061C50 01E6C821 */ addu $t9, $t7, $a2 +/* 0967C4 7F061C54 8F25005C */ lw $a1, 0x5c($t9) +/* 0967C8 7F061C58 50A0000E */ beql $a1, $zero, .Ljp7F061C94 +/* 0967CC 7F061C5C 24630001 */ addiu $v1, $v1, 1 +/* 0967D0 7F061C60 AFA3005C */ sw $v1, 0x5c($sp) +/* 0967D4 7F061C64 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 0967D8 7F061C68 AFA60040 */ sw $a2, 0x40($sp) +/* 0967DC 7F061C6C 8FA3005C */ lw $v1, 0x5c($sp) +/* 0967E0 7F061C70 8FA60040 */ lw $a2, 0x40($sp) +/* 0967E4 7F061C74 10400006 */ beqz $v0, .Ljp7F061C90 +/* 0967E8 7F061C78 24070005 */ li $a3, 5 +/* 0967EC 7F061C7C 8E0E0034 */ lw $t6, 0x34($s0) +/* 0967F0 7F061C80 00E3C023 */ subu $t8, $a3, $v1 +/* 0967F4 7F061C84 01D8682A */ slt $t5, $t6, $t8 +/* 0967F8 7F061C88 39AD0001 */ xori $t5, $t5, 1 +/* 0967FC 7F061C8C AC4D0000 */ sw $t5, ($v0) +.Ljp7F061C90: +/* 096800 7F061C90 24630001 */ addiu $v1, $v1, 1 +.Ljp7F061C94: +/* 096804 7F061C94 1467FFD8 */ bne $v1, $a3, .Ljp7F061BF8 +/* 096808 7F061C98 24C60004 */ addiu $a2, $a2, 4 +.Ljp7F061C9C: +/* 09680C 7F061C9C 0FC1BD6D */ jal sub_GAME_7F06EFC4 +/* 096810 7F061CA0 8FA40044 */ lw $a0, 0x44($sp) +/* 096814 7F061CA4 820F000C */ lb $t7, 0xc($s0) +/* 096818 7F061CA8 8FB900FC */ lw $t9, 0xfc($sp) +/* 09681C 7F061CAC 11E00014 */ beqz $t7, weapon_bullet_type_shotgun_mine +/* 096820 7F061CB0 272EFFFC */ addiu $t6, $t9, -4 +/* 096824 7F061CB4 2DC10014 */ sltiu $at, $t6, 0x14 +/* 096828 7F061CB8 10200011 */ beqz $at, weapon_bullet_type_shotgun_mine +/* 09682C 7F061CBC 000E7080 */ sll $t6, $t6, 2 +/* 096830 7F061CC0 3C018005 */ lui $at, %hi(jpt_weapon_bullet_type) +/* 096834 7F061CC4 002E0821 */ addu $at, $at, $t6 +/* 096838 7F061CC8 8C2E3E68 */ lw $t6, %lo(jpt_weapon_bullet_type)($at) +/* 09683C 7F061CCC 01C00008 */ jr $t6 +/* 096840 7F061CD0 00000000 */ nop +weapon_bullet_type_pistol: +/* 096844 7F061CD4 0FC18848 */ jal sub_GAME_7F061BF4 +/* 096848 7F061CD8 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 09684C 7F061CDC 8E180030 */ lw $t8, 0x30($s0) +/* 096850 7F061CE0 270D0001 */ addiu $t5, $t8, 1 +/* 096854 7F061CE4 10000006 */ b weapon_bullet_type_shotgun_mine +/* 096858 7F061CE8 AE0D0030 */ sw $t5, 0x30($s0) +weapon_bullet_type_none: +/* 09685C 7F061CEC 8E0F0030 */ lw $t7, 0x30($s0) +/* 096860 7F061CF0 25F90001 */ addiu $t9, $t7, 1 +/* 096864 7F061CF4 AE190030 */ sw $t9, 0x30($s0) +/* 096868 7F061CF8 0FC18848 */ jal sub_GAME_7F061BF4 +/* 09686C 7F061CFC 8FA402A8 */ lw $a0, 0x2a8($sp) +weapon_bullet_type_shotgun_mine: +/* 096870 7F061D00 8FAE00FC */ lw $t6, 0xfc($sp) +.Ljp7F061D04: +/* 096874 7F061D04 24010019 */ li $at, 25 +/* 096878 7F061D08 55C10004 */ bnel $t6, $at, .Ljp7F061D1C +/* 09687C 7F061D0C 8218000C */ lb $t8, 0xc($s0) +/* 096880 7F061D10 0FC17F92 */ jal sub_GAME_7F05F928 +/* 096884 7F061D14 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096888 7F061D18 8218000C */ lb $t8, 0xc($s0) +.Ljp7F061D1C: +/* 09688C 7F061D1C 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 096890 7F061D20 53000046 */ beql $t8, $zero, .Ljp7F061E3C +/* 096894 7F061D24 8FBF0034 */ lw $ra, 0x34($sp) +/* 096898 7F061D28 0FC22793 */ jal sub_GAME_7F089778 +/* 09689C 7F061D2C 8C84A120 */ lw $a0, %lo(pPlayer)($a0) +/* 0968A0 7F061D30 44050000 */ mfc1 $a1, $f0 +/* 0968A4 7F061D34 0FC1A2B8 */ jal sub_GAME_7F068508 +/* 0968A8 7F061D38 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0968AC 7F061D3C 8FAD00FC */ lw $t5, 0xfc($sp) +/* 0968B0 7F061D40 24010018 */ li $at, 24 +/* 0968B4 7F061D44 8FAF00FC */ lw $t7, 0xfc($sp) +/* 0968B8 7F061D48 55A10006 */ bnel $t5, $at, .Ljp7F061D64 +/* 0968BC 7F061D4C 2401001A */ li $at, 26 +/* 0968C0 7F061D50 0FC17F17 */ jal sub_GAME_7F05F73C +/* 0968C4 7F061D54 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0968C8 7F061D58 10000038 */ b .Ljp7F061E3C +/* 0968CC 7F061D5C 8FBF0034 */ lw $ra, 0x34($sp) +/* 0968D0 7F061D60 2401001A */ li $at, 26 +.Ljp7F061D64: +/* 0968D4 7F061D64 15E10005 */ bne $t7, $at, .Ljp7F061D7C +/* 0968D8 7F061D68 8FB900FC */ lw $t9, 0xfc($sp) +/* 0968DC 7F061D6C 0FC17CD1 */ jal sub_GAME_7F05EE24 +/* 0968E0 7F061D70 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0968E4 7F061D74 10000031 */ b .Ljp7F061E3C +/* 0968E8 7F061D78 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F061D7C: +/* 0968EC 7F061D7C 24010019 */ li $at, 25 +/* 0968F0 7F061D80 17210005 */ bne $t9, $at, .Ljp7F061D98 +/* 0968F4 7F061D84 8FAE00FC */ lw $t6, 0xfc($sp) +/* 0968F8 7F061D88 0FC18021 */ jal sub_GAME_7F05FB64 +/* 0968FC 7F061D8C 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096900 7F061D90 1000002A */ b .Ljp7F061E3C +/* 096904 7F061D94 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F061D98: +/* 096908 7F061D98 24010003 */ li $at, 3 +/* 09690C 7F061D9C 15C10005 */ bne $t6, $at, .Ljp7F061DB4 +/* 096910 7F061DA0 8FB800FC */ lw $t8, 0xfc($sp) +/* 096914 7F061DA4 0FC17D6F */ jal sub_GAME_7F05F09C +/* 096918 7F061DA8 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 09691C 7F061DAC 10000023 */ b .Ljp7F061E3C +/* 096920 7F061DB0 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F061DB4: +/* 096924 7F061DB4 2401001D */ li $at, 29 +/* 096928 7F061DB8 1301000F */ beq $t8, $at, .Ljp7F061DF8 +/* 09692C 7F061DBC 2401001C */ li $at, 28 +/* 096930 7F061DC0 1301000D */ beq $t8, $at, .Ljp7F061DF8 +/* 096934 7F061DC4 2401001B */ li $at, 27 +/* 096938 7F061DC8 1301000B */ beq $t8, $at, .Ljp7F061DF8 +/* 09693C 7F061DCC 24010021 */ li $at, 33 +/* 096940 7F061DD0 13010009 */ beq $t8, $at, .Ljp7F061DF8 +/* 096944 7F061DD4 2401002F */ li $at, 47 +/* 096948 7F061DD8 13010007 */ beq $t8, $at, .Ljp7F061DF8 +/* 09694C 7F061DDC 24010030 */ li $at, 48 +/* 096950 7F061DE0 13010005 */ beq $t8, $at, .Ljp7F061DF8 +/* 096954 7F061DE4 2401003D */ li $at, 61 +/* 096958 7F061DE8 13010003 */ beq $t8, $at, .Ljp7F061DF8 +/* 09695C 7F061DEC 24010022 */ li $at, 34 +/* 096960 7F061DF0 17010005 */ bne $t8, $at, .Ljp7F061E08 +/* 096964 7F061DF4 8FAD00FC */ lw $t5, 0xfc($sp) +.Ljp7F061DF8: +/* 096968 7F061DF8 0FC17E1E */ jal generate_player_thrown_object +/* 09696C 7F061DFC 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096970 7F061E00 1000000E */ b .Ljp7F061E3C +/* 096974 7F061E04 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F061E08: +/* 096978 7F061E08 24010023 */ li $at, 35 +/* 09697C 7F061E0C 15A10005 */ bne $t5, $at, .Ljp7F061E24 +/* 096980 7F061E10 8FAF00FC */ lw $t7, 0xfc($sp) +/* 096984 7F061E14 0FC17F17 */ jal sub_GAME_7F05F73C +/* 096988 7F061E18 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 09698C 7F061E1C 10000007 */ b .Ljp7F061E3C +/* 096990 7F061E20 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F061E24: +/* 096994 7F061E24 24010024 */ li $at, 36 +/* 096998 7F061E28 55E10004 */ bnel $t7, $at, .Ljp7F061E3C +/* 09699C 7F061E2C 8FBF0034 */ lw $ra, 0x34($sp) +/* 0969A0 7F061E30 0FC17F17 */ jal sub_GAME_7F05F73C +/* 0969A4 7F061E34 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0969A8 7F061E38 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F061E3C: +/* 0969AC 7F061E3C 8FB00030 */ lw $s0, 0x30($sp) +/* 0969B0 7F061E40 27BD02A8 */ addiu $sp, $sp, 0x2a8 +/* 0969B4 7F061E44 03E00008 */ jr $ra +/* 0969B8 7F061E48 00000000 */ nop +) +#endif + +#endif + + + +void bondwalkFireBothHands(void) +{ + handles_firing_or_throwing_weapon_in_hand(RIGHT_HAND); + handles_firing_or_throwing_weapon_in_hand(LEFT_HAND); +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F061948(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053E88 +.word 0x461c4000 /*10000.0*/ +glabel D_80053E8C +.word 0x453b8000 /*3000.0*/ +glabel D_80053E90 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053E94 +.word 0x3e99999a /*0.30000001*/ +glabel D_80053E98 +.word 0xbdcccccd /*-0.1*/ +glabel D_80053E9C +.word 0x453b8000 /*3000.0*/ +glabel D_80053EA0 +.word 0x453b8000 /*3000.0*/ +glabel D_80053EA4 +.word 0x3e4ccccd /*0.2*/ +.text +glabel sub_GAME_7F061948 +/* 096478 7F061948 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 09647C 7F06194C AFBF0014 */ sw $ra, 0x14($sp) +/* 096480 7F061950 C4C40000 */ lwc1 $f4, ($a2) +/* 096484 7F061954 E4840004 */ swc1 $f4, 4($a0) +/* 096488 7F061958 C4C60004 */ lwc1 $f6, 4($a2) +/* 09648C 7F06195C E4860008 */ swc1 $f6, 8($a0) +/* 096490 7F061960 C4C80008 */ lwc1 $f8, 8($a2) +/* 096494 7F061964 E488000C */ swc1 $f8, 0xc($a0) +/* 096498 7F061968 C4D00000 */ lwc1 $f16, ($a2) +/* 09649C 7F06196C C4EA0000 */ lwc1 $f10, ($a3) +/* 0964A0 7F061970 46105481 */ sub.s $f18, $f10, $f16 +/* 0964A4 7F061974 E4920010 */ swc1 $f18, 0x10($a0) +/* 0964A8 7F061978 C4C60004 */ lwc1 $f6, 4($a2) +/* 0964AC 7F06197C C4E40004 */ lwc1 $f4, 4($a3) +/* 0964B0 7F061980 C4820010 */ lwc1 $f2, 0x10($a0) +/* 0964B4 7F061984 46062201 */ sub.s $f8, $f4, $f6 +/* 0964B8 7F061988 46021102 */ mul.s $f4, $f2, $f2 +/* 0964BC 7F06198C E4880014 */ swc1 $f8, 0x14($a0) +/* 0964C0 7F061990 C4D00008 */ lwc1 $f16, 8($a2) +/* 0964C4 7F061994 C4EA0008 */ lwc1 $f10, 8($a3) +/* 0964C8 7F061998 C48E0014 */ lwc1 $f14, 0x14($a0) +/* 0964CC 7F06199C 46105481 */ sub.s $f18, $f10, $f16 +/* 0964D0 7F0619A0 460E7182 */ mul.s $f6, $f14, $f14 +/* 0964D4 7F0619A4 E4920018 */ swc1 $f18, 0x18($a0) +/* 0964D8 7F0619A8 C4800018 */ lwc1 $f0, 0x18($a0) +/* 0964DC 7F0619AC AFA50024 */ sw $a1, 0x24($sp) +/* 0964E0 7F0619B0 AFA40020 */ sw $a0, 0x20($sp) +/* 0964E4 7F0619B4 46000282 */ mul.s $f10, $f0, $f0 +/* 0964E8 7F0619B8 46062200 */ add.s $f8, $f4, $f6 +/* 0964EC 7F0619BC 0C007DF8 */ jal sqrtf +/* 0964F0 7F0619C0 46085300 */ add.s $f12, $f10, $f8 +/* 0964F4 7F0619C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0964F8 7F0619C8 44818000 */ mtc1 $at, $f16 +/* 0964FC 7F0619CC 8FA40020 */ lw $a0, 0x20($sp) +/* 096500 7F0619D0 8FA50024 */ lw $a1, 0x24($sp) +/* 096504 7F0619D4 46008083 */ div.s $f2, $f16, $f0 +/* 096508 7F0619D8 C4920010 */ lwc1 $f18, 0x10($a0) +/* 09650C 7F0619DC C4860014 */ lwc1 $f6, 0x14($a0) +/* 096510 7F0619E0 C4880018 */ lwc1 $f8, 0x18($a0) +/* 096514 7F0619E4 24020017 */ li $v0, 23 +/* 096518 7F0619E8 46000306 */ mov.s $f12, $f0 +/* 09651C 7F0619EC 3C018005 */ lui $at, %hi(D_80053E88) +/* 096520 7F0619F0 46029102 */ mul.s $f4, $f18, $f2 +/* 096524 7F0619F4 00000000 */ nop +/* 096528 7F0619F8 46023282 */ mul.s $f10, $f6, $f2 +/* 09652C 7F0619FC 00000000 */ nop +/* 096530 7F061A00 46024402 */ mul.s $f16, $f8, $f2 +/* 096534 7F061A04 E4840010 */ swc1 $f4, 0x10($a0) +/* 096538 7F061A08 E48A0014 */ swc1 $f10, 0x14($a0) +/* 09653C 7F061A0C 14A2000A */ bne $a1, $v0, .L7F061A38 +/* 096540 7F061A10 E4900018 */ swc1 $f16, 0x18($a0) +/* 096544 7F061A14 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 096548 7F061A18 44811000 */ mtc1 $at, $f2 +/* 09654C 7F061A1C 00000000 */ nop +/* 096550 7F061A20 4600103C */ c.lt.s $f2, $f0 +/* 096554 7F061A24 00000000 */ nop +/* 096558 7F061A28 4502000A */ bc1fl .L7F061A54 +/* 09655C 7F061A2C 3C0143FA */ lui $at, %hi(0x43FA3E88) # $at, 0x43fa +/* 096560 7F061A30 10000007 */ b .L7F061A50 +/* 096564 7F061A34 46001306 */ mov.s $f12, $f2 +.L7F061A38: +/* 096568 7F061A38 C4223E88 */ lwc1 $f2, %lo(D_80053E88)($at) +/* 09656C 7F061A3C 4600103C */ c.lt.s $f2, $f0 +/* 096570 7F061A40 00000000 */ nop +/* 096574 7F061A44 45020003 */ bc1fl .L7F061A54 +/* 096578 7F061A48 3C0143FA */ lui $at, 0x43fa +/* 09657C 7F061A4C 46001306 */ mov.s $f12, $f2 +.L7F061A50: +/* 096580 7F061A50 3C0143FA */ li $at, 0x43FA0000 # 500.000000 +.L7F061A54: +/* 096584 7F061A54 44810000 */ mtc1 $at, $f0 +/* 096588 7F061A58 A0800000 */ sb $zero, ($a0) +/* 09658C 7F061A5C A0850001 */ sb $a1, 1($a0) +/* 096590 7F061A60 4600603C */ c.lt.s $f12, $f0 +/* 096594 7F061A64 E48C001C */ swc1 $f12, 0x1c($a0) +/* 096598 7F061A68 24010016 */ li $at, 22 +/* 09659C 7F061A6C 45000002 */ bc1f .L7F061A78 +/* 0965A0 7F061A70 00000000 */ nop +/* 0965A4 7F061A74 46000306 */ mov.s $f12, $f0 +.L7F061A78: +/* 0965A8 7F061A78 14A10026 */ bne $a1, $at, .L7F061B14 +/* 0965AC 7F061A7C 3C018005 */ lui $at, %hi(D_80053E8C) +/* 0965B0 7F061A80 C4223E8C */ lwc1 $f2, %lo(D_80053E8C)($at) +/* 0965B4 7F061A84 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0965B8 7F061A88 44819000 */ mtc1 $at, $f18 +/* 0965BC 7F061A8C 3C018005 */ lui $at, %hi(D_80053E90) +/* 0965C0 7F061A90 460C9102 */ mul.s $f4, $f18, $f12 +/* 0965C4 7F061A94 E4840020 */ swc1 $f4, 0x20($a0) +/* 0965C8 7F061A98 C4263E90 */ lwc1 $f6, %lo(D_80053E90)($at) +/* 0965CC 7F061A9C 460C3002 */ mul.s $f0, $f6, $f12 +/* 0965D0 7F061AA0 4600103C */ c.lt.s $f2, $f0 +/* 0965D4 7F061AA4 E4800024 */ swc1 $f0, 0x24($a0) +/* 0965D8 7F061AA8 45020003 */ bc1fl .L7F061AB8 +/* 0965DC 7F061AAC AFA40020 */ sw $a0, 0x20($sp) +/* 0965E0 7F061AB0 E4820024 */ swc1 $f2, 0x24($a0) +/* 0965E4 7F061AB4 AFA40020 */ sw $a0, 0x20($sp) +.L7F061AB8: +/* 0965E8 7F061AB8 0C002914 */ jal get_random_value +/* 0965EC 7F061ABC E7AC001C */ swc1 $f12, 0x1c($sp) +/* 0965F0 7F061AC0 44825000 */ mtc1 $v0, $f10 +/* 0965F4 7F061AC4 8FA40020 */ lw $a0, 0x20($sp) +/* 0965F8 7F061AC8 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 0965FC 7F061ACC 04410005 */ bgez $v0, .L7F061AE4 +/* 096600 7F061AD0 46805220 */ cvt.s.w $f8, $f10 +/* 096604 7F061AD4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 096608 7F061AD8 44818000 */ mtc1 $at, $f16 +/* 09660C 7F061ADC 00000000 */ nop +/* 096610 7F061AE0 46104200 */ add.s $f8, $f8, $f16 +.L7F061AE4: +/* 096614 7F061AE4 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 096618 7F061AE8 44819000 */ mtc1 $at, $f18 +/* 09661C 7F061AEC 3C018005 */ lui $at, %hi(D_80053E94) +/* 096620 7F061AF0 C4263E94 */ lwc1 $f6, %lo(D_80053E94)($at) +/* 096624 7F061AF4 46124102 */ mul.s $f4, $f8, $f18 +/* 096628 7F061AF8 3C018005 */ lui $at, %hi(D_80053E98) +/* 09662C 7F061AFC C4303E98 */ lwc1 $f16, %lo(D_80053E98)($at) +/* 096630 7F061B00 46062282 */ mul.s $f10, $f4, $f6 +/* 096634 7F061B04 460A8201 */ sub.s $f8, $f16, $f10 +/* 096638 7F061B08 460C4482 */ mul.s $f18, $f8, $f12 +/* 09663C 7F061B0C 1000002D */ b .L7F061BC4 +/* 096640 7F061B10 E4920028 */ swc1 $f18, 0x28($a0) +.L7F061B14: +/* 096644 7F061B14 14A2000D */ bne $a1, $v0, .L7F061B4C +/* 096648 7F061B18 3C018005 */ lui $at, %hi(D_80053EA0) +/* 09664C 7F061B1C 3C018005 */ lui $at, %hi(D_80053E9C) +/* 096650 7F061B20 C4223E9C */ lwc1 $f2, %lo(D_80053E9C)($at) +/* 096654 7F061B24 460C6100 */ add.s $f4, $f12, $f12 +/* 096658 7F061B28 44803000 */ mtc1 $zero, $f6 +/* 09665C 7F061B2C E48C0024 */ swc1 $f12, 0x24($a0) +/* 096660 7F061B30 460C103C */ c.lt.s $f2, $f12 +/* 096664 7F061B34 E4840020 */ swc1 $f4, 0x20($a0) +/* 096668 7F061B38 45000002 */ bc1f .L7F061B44 +/* 09666C 7F061B3C 00000000 */ nop +/* 096670 7F061B40 E4820024 */ swc1 $f2, 0x24($a0) +.L7F061B44: +/* 096674 7F061B44 1000001F */ b .L7F061BC4 +/* 096678 7F061B48 E4860028 */ swc1 $f6, 0x28($a0) +.L7F061B4C: +/* 09667C 7F061B4C C4223EA0 */ lwc1 $f2, %lo(D_80053EA0)($at) +/* 096680 7F061B50 3C018005 */ lui $at, %hi(D_80053EA4) +/* 096684 7F061B54 C4303EA4 */ lwc1 $f16, %lo(D_80053EA4)($at) +/* 096688 7F061B58 460C8002 */ mul.s $f0, $f16, $f12 +/* 09668C 7F061B5C 4600103C */ c.lt.s $f2, $f0 +/* 096690 7F061B60 E4800020 */ swc1 $f0, 0x20($a0) +/* 096694 7F061B64 E4800024 */ swc1 $f0, 0x24($a0) +/* 096698 7F061B68 45000002 */ bc1f .L7F061B74 +/* 09669C 7F061B6C 00000000 */ nop +/* 0966A0 7F061B70 E4820024 */ swc1 $f2, 0x24($a0) +.L7F061B74: +/* 0966A4 7F061B74 0C002914 */ jal get_random_value +/* 0966A8 7F061B78 AFA40020 */ sw $a0, 0x20($sp) +/* 0966AC 7F061B7C 44825000 */ mtc1 $v0, $f10 +/* 0966B0 7F061B80 8FA40020 */ lw $a0, 0x20($sp) +/* 0966B4 7F061B84 04410005 */ bgez $v0, .L7F061B9C +/* 0966B8 7F061B88 46805220 */ cvt.s.w $f8, $f10 +/* 0966BC 7F061B8C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0966C0 7F061B90 44819000 */ mtc1 $at, $f18 +/* 0966C4 7F061B94 00000000 */ nop +/* 0966C8 7F061B98 46124200 */ add.s $f8, $f8, $f18 +.L7F061B9C: +/* 0966CC 7F061B9C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0966D0 7F061BA0 44812000 */ mtc1 $at, $f4 +/* 0966D4 7F061BA4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0966D8 7F061BA8 44818000 */ mtc1 $at, $f16 +/* 0966DC 7F061BAC 46044002 */ mul.s $f0, $f8, $f4 +/* 0966E0 7F061BB0 C4920020 */ lwc1 $f18, 0x20($a0) +/* 0966E4 7F061BB4 46000180 */ add.s $f6, $f0, $f0 +/* 0966E8 7F061BB8 46103281 */ sub.s $f10, $f6, $f16 +/* 0966EC 7F061BBC 46125202 */ mul.s $f8, $f10, $f18 +/* 0966F0 7F061BC0 E4880028 */ swc1 $f8, 0x28($a0) +.L7F061BC4: +/* 0966F4 7F061BC4 C4840028 */ lwc1 $f4, 0x28($a0) +/* 0966F8 7F061BC8 C486001C */ lwc1 $f6, 0x1c($a0) +/* 0966FC 7F061BCC 240EFFFF */ li $t6, -1 +/* 096700 7F061BD0 4604303E */ c.le.s $f6, $f4 +/* 096704 7F061BD4 00000000 */ nop +/* 096708 7F061BD8 45020003 */ bc1fl .L7F061BE8 +/* 09670C 7F061BDC 8FBF0014 */ lw $ra, 0x14($sp) +/* 096710 7F061BE0 A08E0000 */ sb $t6, ($a0) +/* 096714 7F061BE4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F061BE8: +/* 096718 7F061BE8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 09671C 7F061BEC 03E00008 */ jr $ra +/* 096720 7F061BF0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F061BF4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053EA8 +.word 0x3db2b8c3 /*0.087266468*/ +.text +glabel sub_GAME_7F061BF4 +/* 096724 7F061BF4 000478C0 */ sll $t7, $a0, 3 +/* 096728 7F061BF8 01E47823 */ subu $t7, $t7, $a0 +/* 09672C 7F061BFC 000F7880 */ sll $t7, $t7, 2 +/* 096730 7F061C00 01E47821 */ addu $t7, $t7, $a0 +/* 096734 7F061C04 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 096738 7F061C08 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 09673C 7F061C0C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 096740 7F061C10 000F7880 */ sll $t7, $t7, 2 +/* 096744 7F061C14 01E47821 */ addu $t7, $t7, $a0 +/* 096748 7F061C18 AFB00014 */ sw $s0, 0x14($sp) +/* 09674C 7F061C1C 000F78C0 */ sll $t7, $t7, 3 +/* 096750 7F061C20 AFBF001C */ sw $ra, 0x1c($sp) +/* 096754 7F061C24 AFB10018 */ sw $s1, 0x18($sp) +/* 096758 7F061C28 01CF8021 */ addu $s0, $t6, $t7 +/* 09675C 7F061C2C 00808825 */ move $s1, $a0 +/* 096760 7F061C30 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 096764 7F061C34 26100870 */ addiu $s0, $s0, 0x870 +/* 096768 7F061C38 C604039C */ lwc1 $f4, 0x39c($s0) +/* 09676C 7F061C3C C4460008 */ lwc1 $f6, 8($v0) +/* 096770 7F061C40 C60A03A0 */ lwc1 $f10, 0x3a0($s0) +/* 096774 7F061C44 C4500018 */ lwc1 $f16, 0x18($v0) +/* 096778 7F061C48 46062202 */ mul.s $f8, $f4, $f6 +/* 09677C 7F061C4C C60603A4 */ lwc1 $f6, 0x3a4($s0) +/* 096780 7F061C50 46105482 */ mul.s $f18, $f10, $f16 +/* 096784 7F061C54 C44A0028 */ lwc1 $f10, 0x28($v0) +/* 096788 7F061C58 460A3402 */ mul.s $f16, $f6, $f10 +/* 09678C 7F061C5C C60602F4 */ lwc1 $f6, 0x2f4($s0) +/* 096790 7F061C60 46124100 */ add.s $f4, $f8, $f18 +/* 096794 7F061C64 C4520038 */ lwc1 $f18, 0x38($v0) +/* 096798 7F061C68 46102200 */ add.s $f8, $f4, $f16 +/* 09679C 7F061C6C 46089000 */ add.s $f0, $f18, $f8 +/* 0967A0 7F061C70 46000007 */ neg.s $f0, $f0 +/* 0967A4 7F061C74 4606003C */ c.lt.s $f0, $f6 +/* 0967A8 7F061C78 00000000 */ nop +/* 0967AC 7F061C7C 45030062 */ bc1tl .L7F061E08 +/* 0967B0 7F061C80 8FBF001C */ lw $ra, 0x1c($sp) +/* 0967B4 7F061C84 0FC17674 */ jal get_item_in_hand +/* 0967B8 7F061C88 02202025 */ move $a0, $s1 +/* 0967BC 7F061C8C 2607039C */ addiu $a3, $s0, 0x39c +/* 0967C0 7F061C90 AFA70028 */ sw $a3, 0x28($sp) +/* 0967C4 7F061C94 260401E4 */ addiu $a0, $s0, 0x1e4 +/* 0967C8 7F061C98 00402825 */ move $a1, $v0 +/* 0967CC 7F061C9C 0FC18652 */ jal sub_GAME_7F061948 +/* 0967D0 7F061CA0 260602E8 */ addiu $a2, $s0, 0x2e8 +/* 0967D4 7F061CA4 3C188008 */ lui $t8, %hi(pPlayer) +/* 0967D8 7F061CA8 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0967DC 7F061CAC 8F1900A8 */ lw $t9, 0xa8($t8) +/* 0967E0 7F061CB0 8F280004 */ lw $t0, 4($t9) +/* 0967E4 7F061CB4 51000054 */ beql $t0, $zero, .L7F061E08 +/* 0967E8 7F061CB8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0967EC 7F061CBC 0FC26919 */ jal get_num_players +/* 0967F0 7F061CC0 00000000 */ nop +/* 0967F4 7F061CC4 28410002 */ slti $at, $v0, 2 +/* 0967F8 7F061CC8 1420004E */ bnez $at, .L7F061E04 +/* 0967FC 7F061CCC 3C038008 */ lui $v1, %hi(pPlayer) +/* 096800 7F061CD0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 096804 7F061CD4 00113880 */ sll $a3, $s1, 2 +/* 096808 7F061CD8 00F13823 */ subu $a3, $a3, $s1 +/* 09680C 7F061CDC 8C6900A8 */ lw $t1, 0xa8($v1) +/* 096810 7F061CE0 00073880 */ sll $a3, $a3, 2 +/* 096814 7F061CE4 00671021 */ addu $v0, $v1, $a3 +/* 096818 7F061CE8 8D2A0004 */ lw $t2, 4($t1) +/* 09681C 7F061CEC 27A40040 */ addiu $a0, $sp, 0x40 +/* 096820 7F061CF0 27A50044 */ addiu $a1, $sp, 0x44 +/* 096824 7F061CF4 AFAA004C */ sw $t2, 0x4c($sp) +/* 096828 7F061CF8 C4442A18 */ lwc1 $f4, 0x2a18($v0) +/* 09682C 7F061CFC C60A039C */ lwc1 $f10, 0x39c($s0) +/* 096830 7F061D00 27A60048 */ addiu $a2, $sp, 0x48 +/* 096834 7F061D04 46045401 */ sub.s $f16, $f10, $f4 +/* 096838 7F061D08 E7B00040 */ swc1 $f16, 0x40($sp) +/* 09683C 7F061D0C C4482A1C */ lwc1 $f8, 0x2a1c($v0) +/* 096840 7F061D10 C61203A0 */ lwc1 $f18, 0x3a0($s0) +/* 096844 7F061D14 46089181 */ sub.s $f6, $f18, $f8 +/* 096848 7F061D18 E7A60044 */ swc1 $f6, 0x44($sp) +/* 09684C 7F061D1C C4442A20 */ lwc1 $f4, 0x2a20($v0) +/* 096850 7F061D20 C60A03A4 */ lwc1 $f10, 0x3a4($s0) +/* 096854 7F061D24 AFA70024 */ sw $a3, 0x24($sp) +/* 096858 7F061D28 46045401 */ sub.s $f16, $f10, $f4 +/* 09685C 7F061D2C 0C007DD4 */ jal guNormalize +/* 096860 7F061D30 E7B00048 */ swc1 $f16, 0x48($sp) +/* 096864 7F061D34 C612039C */ lwc1 $f18, 0x39c($s0) +/* 096868 7F061D38 C60802E8 */ lwc1 $f8, 0x2e8($s0) +/* 09686C 7F061D3C 27A40034 */ addiu $a0, $sp, 0x34 +/* 096870 7F061D40 27A50038 */ addiu $a1, $sp, 0x38 +/* 096874 7F061D44 46089181 */ sub.s $f6, $f18, $f8 +/* 096878 7F061D48 27A6003C */ addiu $a2, $sp, 0x3c +/* 09687C 7F061D4C E7A60034 */ swc1 $f6, 0x34($sp) +/* 096880 7F061D50 C60402EC */ lwc1 $f4, 0x2ec($s0) +/* 096884 7F061D54 C60A03A0 */ lwc1 $f10, 0x3a0($s0) +/* 096888 7F061D58 46045401 */ sub.s $f16, $f10, $f4 +/* 09688C 7F061D5C E7B00038 */ swc1 $f16, 0x38($sp) +/* 096890 7F061D60 C60802F0 */ lwc1 $f8, 0x2f0($s0) +/* 096894 7F061D64 C61203A4 */ lwc1 $f18, 0x3a4($s0) +/* 096898 7F061D68 46089181 */ sub.s $f6, $f18, $f8 +/* 09689C 7F061D6C 0C007DD4 */ jal guNormalize +/* 0968A0 7F061D70 E7A6003C */ swc1 $f6, 0x3c($sp) +/* 0968A4 7F061D74 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 0968A8 7F061D78 C7A40034 */ lwc1 $f4, 0x34($sp) +/* 0968AC 7F061D7C C7B20044 */ lwc1 $f18, 0x44($sp) +/* 0968B0 7F061D80 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0968B4 7F061D84 46045402 */ mul.s $f16, $f10, $f4 +/* 0968B8 7F061D88 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0968BC 7F061D8C 46089182 */ mul.s $f6, $f18, $f8 +/* 0968C0 7F061D90 C7B20048 */ lwc1 $f18, 0x48($sp) +/* 0968C4 7F061D94 46122202 */ mul.s $f8, $f4, $f18 +/* 0968C8 7F061D98 46068280 */ add.s $f10, $f16, $f6 +/* 0968CC 7F061D9C 0FC16B2C */ jal acosf +/* 0968D0 7F061DA0 460A4300 */ add.s $f12, $f8, $f10 +/* 0968D4 7F061DA4 3C018005 */ lui $at, %hi(D_80053EA8) +/* 0968D8 7F061DA8 C4303EA8 */ lwc1 $f16, %lo(D_80053EA8)($at) +/* 0968DC 7F061DAC 4600803C */ c.lt.s $f16, $f0 +/* 0968E0 7F061DB0 00000000 */ nop +/* 0968E4 7F061DB4 45030014 */ bc1tl .L7F061E08 +/* 0968E8 7F061DB8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0968EC 7F061DBC 0FC17674 */ jal get_item_in_hand +/* 0968F0 7F061DC0 02202025 */ move $a0, $s1 +/* 0968F4 7F061DC4 00116080 */ sll $t4, $s1, 2 +/* 0968F8 7F061DC8 01916023 */ subu $t4, $t4, $s1 +/* 0968FC 7F061DCC 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 096900 7F061DD0 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 096904 7F061DD4 8FAB004C */ lw $t3, 0x4c($sp) +/* 096908 7F061DD8 8FAE0024 */ lw $t6, 0x24($sp) +/* 09690C 7F061DDC 000C6080 */ sll $t4, $t4, 2 +/* 096910 7F061DE0 01916023 */ subu $t4, $t4, $s1 +/* 096914 7F061DE4 000C6080 */ sll $t4, $t4, 2 +/* 096918 7F061DE8 016C2021 */ addu $a0, $t3, $t4 +/* 09691C 7F061DEC 01AE3021 */ addu $a2, $t5, $t6 +/* 096920 7F061DF0 24C62A18 */ addiu $a2, $a2, 0x2a18 +/* 096924 7F061DF4 24840180 */ addiu $a0, $a0, 0x180 +/* 096928 7F061DF8 00402825 */ move $a1, $v0 +/* 09692C 7F061DFC 0FC18652 */ jal sub_GAME_7F061948 +/* 096930 7F061E00 8FA70028 */ lw $a3, 0x28($sp) +.L7F061E04: +/* 096934 7F061E04 8FBF001C */ lw $ra, 0x1c($sp) +.L7F061E08: +/* 096938 7F061E08 8FB00014 */ lw $s0, 0x14($sp) +/* 09693C 7F061E0C 8FB10018 */ lw $s1, 0x18($sp) +/* 096940 7F061E10 03E00008 */ jr $ra +/* 096944 7F061E14 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F061E18(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053EAC +.word 0x3fb50481 /*1.4141999*/ +glabel D_80053EB0 +.word 0x3dcccccd /*0.1*/ +glabel D_80053EB4 +.word 0x3f666666 /*0.89999998*/ +glabel D_80053EB8 +.word 0x3f666666 /*0.89999998*/ +glabel D_80053EBC +.word 0x3f666666 /*0.89999998*/ +glabel D_80053EC0 +.word 0x3f666666 /*0.89999998*/ +glabel D_80053EC4 +.word 0x3f666666 /*0.89999998*/ +glabel D_80053EC8 +.word 0x3f666666 /*0.89999998*/ +glabel D_80053ECC +.word 0x3fb50481 /*1.4141999*/ +glabel D_80053ED0 +.word 0x3f666666 /*0.89999998*/ +.text +glabel sub_GAME_7F061E18 +/* 096948 7F061E18 27BDFEA0 */ addiu $sp, $sp, -0x160 +/* 09694C 7F061E1C AFBF002C */ sw $ra, 0x2c($sp) +/* 096950 7F061E20 AFB10028 */ sw $s1, 0x28($sp) +/* 096954 7F061E24 AFB00024 */ sw $s0, 0x24($sp) +/* 096958 7F061E28 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 09695C 7F061E2C AFA40160 */ sw $a0, 0x160($sp) +/* 096960 7F061E30 AFA60168 */ sw $a2, 0x168($sp) +/* 096964 7F061E34 80AB0000 */ lb $t3, ($a1) +/* 096968 7F061E38 3C0E8003 */ lui $t6, %hi(D_80035C98) +/* 09696C 7F061E3C 00A08825 */ move $s1, $a1 +/* 096970 7F061E40 05600328 */ bltz $t3, .L7F062AE4 +/* 096974 7F061E44 25CE5C98 */ addiu $t6, %lo(D_80035C98) # addiu $t6, $t6, 0x5c98 +/* 096978 7F061E48 8DC10000 */ lw $at, ($t6) +/* 09697C 7F061E4C 8DD90004 */ lw $t9, 4($t6) +/* 096980 7F061E50 27A90108 */ addiu $t1, $sp, 0x108 +/* 096984 7F061E54 AD210000 */ sw $at, ($t1) +/* 096988 7F061E58 AD390004 */ sw $t9, 4($t1) +/* 09698C 7F061E5C 8DD9000C */ lw $t9, 0xc($t6) +/* 096990 7F061E60 8DC10008 */ lw $at, 8($t6) +/* 096994 7F061E64 AD39000C */ sw $t9, 0xc($t1) +/* 096998 7F061E68 0FC227F5 */ jal get_BONDdata_position +/* 09699C 7F061E6C AD210008 */ sw $at, 8($t1) +/* 0969A0 7F061E70 AFA200F8 */ sw $v0, 0xf8($sp) +/* 0969A4 7F061E74 3C0D8003 */ lui $t5, %hi(D_80035CA8) +/* 0969A8 7F061E78 25AD5CA8 */ addiu $t5, %lo(D_80035CA8) # addiu $t5, $t5, 0x5ca8 +/* 0969AC 7F061E7C 8DA10000 */ lw $at, ($t5) +/* 0969B0 7F061E80 C6200028 */ lwc1 $f0, 0x28($s1) +/* 0969B4 7F061E84 C6340024 */ lwc1 $f20, 0x24($s1) +/* 0969B8 7F061E88 27AF00C4 */ addiu $t7, $sp, 0xc4 +/* 0969BC 7F061E8C ADE10000 */ sw $at, ($t7) +/* 0969C0 7F061E90 8DA10008 */ lw $at, 8($t5) +/* 0969C4 7F061E94 8DAB0004 */ lw $t3, 4($t5) +/* 0969C8 7F061E98 3C098003 */ lui $t1, %hi(D_80035CB4) +/* 0969CC 7F061E9C 25295CB4 */ addiu $t1, %lo(D_80035CB4) # addiu $t1, $t1, 0x5cb4 +/* 0969D0 7F061EA0 ADE10008 */ sw $at, 8($t7) +/* 0969D4 7F061EA4 ADEB0004 */ sw $t3, 4($t7) +/* 0969D8 7F061EA8 8D210000 */ lw $at, ($t1) +/* 0969DC 7F061EAC 27B800B8 */ addiu $t8, $sp, 0xb8 +/* 0969E0 7F061EB0 8D2A0004 */ lw $t2, 4($t1) +/* 0969E4 7F061EB4 AF010000 */ sw $at, ($t8) +/* 0969E8 7F061EB8 8D210008 */ lw $at, 8($t1) +/* 0969EC 7F061EBC AF0A0004 */ sw $t2, 4($t8) +/* 0969F0 7F061EC0 3C0C8009 */ lui $t4, %hi(flareimage3) +/* 0969F4 7F061EC4 AF010008 */ sw $at, 8($t8) +/* 0969F8 7F061EC8 3C018005 */ lui $at, %hi(D_80053EAC) +/* 0969FC 7F061ECC C4243EAC */ lwc1 $f4, %lo(D_80053EAC)($at) +/* 096A00 7F061ED0 8D8CD0D0 */ lw $t4, %lo(flareimage3)($t4) +/* 096A04 7F061ED4 E7A000E8 */ swc1 $f0, 0xe8($sp) +/* 096A08 7F061ED8 E7A400B4 */ swc1 $f4, 0xb4($sp) +/* 096A0C 7F061EDC 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 096A10 7F061EE0 AFAC00B0 */ sw $t4, 0xb0($sp) +/* 096A14 7F061EE4 AFA200A8 */ sw $v0, 0xa8($sp) +/* 096A18 7F061EE8 82230001 */ lb $v1, 1($s1) +/* 096A1C 7F061EEC 24010016 */ li $at, 22 +/* 096A20 7F061EF0 C7A000E8 */ lwc1 $f0, 0xe8($sp) +/* 096A24 7F061EF4 14610007 */ bne $v1, $at, .L7F061F14 +/* 096A28 7F061EF8 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 096A2C 7F061EFC 44819000 */ mtc1 $at, $f18 +/* 096A30 7F061F00 3C0F8009 */ lui $t7, %hi(flareimage4) +/* 096A34 7F061F04 8DEFD0D4 */ lw $t7, %lo(flareimage4)($t7) +/* 096A38 7F061F08 E7B200F4 */ swc1 $f18, 0xf4($sp) +/* 096A3C 7F061F0C 10000026 */ b .L7F061FA8 +/* 096A40 7F061F10 AFAF00B0 */ sw $t7, 0xb0($sp) +.L7F061F14: +/* 096A44 7F061F14 24010017 */ li $at, 23 +/* 096A48 7F061F18 1461001F */ bne $v1, $at, .L7F061F98 +/* 096A4C 7F061F1C 3C0D8009 */ lui $t5, %hi(flareimage4) +/* 096A50 7F061F20 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 096A54 7F061F24 44813000 */ mtc1 $at, $f6 +/* 096A58 7F061F28 8DADD0D4 */ lw $t5, %lo(flareimage4)($t5) +/* 096A5C 7F061F2C E7A000E8 */ swc1 $f0, 0xe8($sp) +/* 096A60 7F061F30 E7A600F4 */ swc1 $f6, 0xf4($sp) +/* 096A64 7F061F34 0C002914 */ jal get_random_value +/* 096A68 7F061F38 AFAD00B0 */ sw $t5, 0xb0($sp) +/* 096A6C 7F061F3C 24010032 */ li $at, 50 +/* 096A70 7F061F40 0041001B */ divu $zero, $v0, $at +/* 096A74 7F061F44 00005810 */ mfhi $t3 +/* 096A78 7F061F48 25790096 */ addiu $t9, $t3, 0x96 +/* 096A7C 7F061F4C 0C002914 */ jal get_random_value +/* 096A80 7F061F50 A3B90117 */ sb $t9, 0x117($sp) +/* 096A84 7F061F54 24010005 */ li $at, 5 +/* 096A88 7F061F58 0041001B */ divu $zero, $v0, $at +/* 096A8C 7F061F5C 00007010 */ mfhi $t6 +/* 096A90 7F061F60 C7A000E8 */ lwc1 $f0, 0xe8($sp) +/* 096A94 7F061F64 55C00011 */ bnezl $t6, .L7F061FAC +/* 096A98 7F061F68 C6240004 */ lwc1 $f4, 4($s1) +/* 096A9C 7F061F6C 0C002914 */ jal get_random_value +/* 096AA0 7F061F70 E7A000E8 */ swc1 $f0, 0xe8($sp) +/* 096AA4 7F061F74 24010064 */ li $at, 100 +/* 096AA8 7F061F78 0041001B */ divu $zero, $v0, $at +/* 096AAC 7F061F7C 0000C010 */ mfhi $t8 +/* 096AB0 7F061F80 240900FF */ li $t1, 255 +/* 096AB4 7F061F84 01381823 */ subu $v1, $t1, $t8 +/* 096AB8 7F061F88 A3A30115 */ sb $v1, 0x115($sp) +/* 096ABC 7F061F8C A3A30114 */ sb $v1, 0x114($sp) +/* 096AC0 7F061F90 10000005 */ b .L7F061FA8 +/* 096AC4 7F061F94 C7A000E8 */ lwc1 $f0, 0xe8($sp) +.L7F061F98: +/* 096AC8 7F061F98 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 096ACC 7F061F9C 44815000 */ mtc1 $at, $f10 +/* 096AD0 7F061FA0 00000000 */ nop +/* 096AD4 7F061FA4 E7AA00F4 */ swc1 $f10, 0xf4($sp) +.L7F061FA8: +/* 096AD8 7F061FA8 C6240004 */ lwc1 $f4, 4($s1) +.L7F061FAC: +/* 096ADC 7F061FAC 44807000 */ mtc1 $zero, $f14 +/* 096AE0 7F061FB0 E7A400FC */ swc1 $f4, 0xfc($sp) +/* 096AE4 7F061FB4 C6280008 */ lwc1 $f8, 8($s1) +/* 096AE8 7F061FB8 4600703C */ c.lt.s $f14, $f0 +/* 096AEC 7F061FBC E7A80100 */ swc1 $f8, 0x100($sp) +/* 096AF0 7F061FC0 C626000C */ lwc1 $f6, 0xc($s1) +/* 096AF4 7F061FC4 45000011 */ bc1f .L7F06200C +/* 096AF8 7F061FC8 E7A60104 */ swc1 $f6, 0x104($sp) +/* 096AFC 7F061FCC C6240010 */ lwc1 $f4, 0x10($s1) +/* 096B00 7F061FD0 C7AA00FC */ lwc1 $f10, 0xfc($sp) +/* 096B04 7F061FD4 46040202 */ mul.s $f8, $f0, $f4 +/* 096B08 7F061FD8 C7A40100 */ lwc1 $f4, 0x100($sp) +/* 096B0C 7F061FDC 46085180 */ add.s $f6, $f10, $f8 +/* 096B10 7F061FE0 E7A600FC */ swc1 $f6, 0xfc($sp) +/* 096B14 7F061FE4 C62A0014 */ lwc1 $f10, 0x14($s1) +/* 096B18 7F061FE8 460A0202 */ mul.s $f8, $f0, $f10 +/* 096B1C 7F061FEC C7AA0104 */ lwc1 $f10, 0x104($sp) +/* 096B20 7F061FF0 46082180 */ add.s $f6, $f4, $f8 +/* 096B24 7F061FF4 E7A60100 */ swc1 $f6, 0x100($sp) +/* 096B28 7F061FF8 C6240018 */ lwc1 $f4, 0x18($s1) +/* 096B2C 7F061FFC 46040202 */ mul.s $f8, $f0, $f4 +/* 096B30 7F062000 46085180 */ add.s $f6, $f10, $f8 +/* 096B34 7F062004 10000003 */ b .L7F062014 +/* 096B38 7F062008 E7A60104 */ swc1 $f6, 0x104($sp) +.L7F06200C: +/* 096B3C 7F06200C 4600A500 */ add.s $f20, $f20, $f0 +/* 096B40 7F062010 46007006 */ mov.s $f0, $f14 +.L7F062014: +/* 096B44 7F062014 46140100 */ add.s $f4, $f0, $f20 +/* 096B48 7F062018 C622001C */ lwc1 $f2, 0x1c($s1) +/* 096B4C 7F06201C 4604103C */ c.lt.s $f2, $f4 +/* 096B50 7F062020 00000000 */ nop +/* 096B54 7F062024 45020003 */ bc1fl .L7F062034 +/* 096B58 7F062028 C62C0018 */ lwc1 $f12, 0x18($s1) +/* 096B5C 7F06202C 46001501 */ sub.s $f20, $f2, $f0 +/* 096B60 7F062030 C62C0018 */ lwc1 $f12, 0x18($s1) +.L7F062034: +/* 096B64 7F062034 C7AA0104 */ lwc1 $f10, 0x104($sp) +/* 096B68 7F062038 8FA200F8 */ lw $v0, 0xf8($sp) +/* 096B6C 7F06203C 460CA202 */ mul.s $f8, $f20, $f12 +/* 096B70 7F062040 C6220014 */ lwc1 $f2, 0x14($s1) +/* 096B74 7F062044 C4440008 */ lwc1 $f4, 8($v0) +/* 096B78 7F062048 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 096B7C 7F06204C 46085180 */ add.s $f6, $f10, $f8 +/* 096B80 7F062050 C44A0004 */ lwc1 $f10, 4($v0) +/* 096B84 7F062054 46062201 */ sub.s $f8, $f4, $f6 +/* 096B88 7F062058 46081102 */ mul.s $f4, $f2, $f8 +/* 096B8C 7F06205C C7A80100 */ lwc1 $f8, 0x100($sp) +/* 096B90 7F062060 46141182 */ mul.s $f6, $f2, $f20 +/* 096B94 7F062064 46083180 */ add.s $f6, $f6, $f8 +/* 096B98 7F062068 46065281 */ sub.s $f10, $f10, $f6 +/* 096B9C 7F06206C 460C5182 */ mul.s $f6, $f10, $f12 +/* 096BA0 7F062070 46062281 */ sub.s $f10, $f4, $f6 +/* 096BA4 7F062074 C7A400FC */ lwc1 $f4, 0xfc($sp) +/* 096BA8 7F062078 E7AA00D0 */ swc1 $f10, 0xd0($sp) +/* 096BAC 7F06207C C6200010 */ lwc1 $f0, 0x10($s1) +/* 096BB0 7F062080 C62C0018 */ lwc1 $f12, 0x18($s1) +/* 096BB4 7F062084 E7A80034 */ swc1 $f8, 0x34($sp) +/* 096BB8 7F062088 4600A182 */ mul.s $f6, $f20, $f0 +/* 096BBC 7F06208C C4480000 */ lwc1 $f8, ($v0) +/* 096BC0 7F062090 E7AA0038 */ swc1 $f10, 0x38($sp) +/* 096BC4 7F062094 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 096BC8 7F062098 46062180 */ add.s $f6, $f4, $f6 +/* 096BCC 7F06209C 46064201 */ sub.s $f8, $f8, $f6 +/* 096BD0 7F0620A0 46086182 */ mul.s $f6, $f12, $f8 +/* 096BD4 7F0620A4 00000000 */ nop +/* 096BD8 7F0620A8 46146202 */ mul.s $f8, $f12, $f20 +/* 096BDC 7F0620AC 460A4200 */ add.s $f8, $f8, $f10 +/* 096BE0 7F0620B0 C44A0008 */ lwc1 $f10, 8($v0) +/* 096BE4 7F0620B4 46085281 */ sub.s $f10, $f10, $f8 +/* 096BE8 7F0620B8 46005202 */ mul.s $f8, $f10, $f0 +/* 096BEC 7F0620BC 46083281 */ sub.s $f10, $f6, $f8 +/* 096BF0 7F0620C0 C7A60034 */ lwc1 $f6, 0x34($sp) +/* 096BF4 7F0620C4 E7AA00D4 */ swc1 $f10, 0xd4($sp) +/* 096BF8 7F0620C8 C6220014 */ lwc1 $f2, 0x14($s1) +/* 096BFC 7F0620CC C6200010 */ lwc1 $f0, 0x10($s1) +/* 096C00 7F0620D0 4602A202 */ mul.s $f8, $f20, $f2 +/* 096C04 7F0620D4 46083180 */ add.s $f6, $f6, $f8 +/* 096C08 7F0620D8 C4480004 */ lwc1 $f8, 4($v0) +/* 096C0C 7F0620DC 46064201 */ sub.s $f8, $f8, $f6 +/* 096C10 7F0620E0 46080182 */ mul.s $f6, $f0, $f8 +/* 096C14 7F0620E4 00000000 */ nop +/* 096C18 7F0620E8 46140202 */ mul.s $f8, $f0, $f20 +/* 096C1C 7F0620EC 46044200 */ add.s $f8, $f8, $f4 +/* 096C20 7F0620F0 C4440000 */ lwc1 $f4, ($v0) +/* 096C24 7F0620F4 46082101 */ sub.s $f4, $f4, $f8 +/* 096C28 7F0620F8 46022202 */ mul.s $f8, $f4, $f2 +/* 096C2C 7F0620FC 46083101 */ sub.s $f4, $f6, $f8 +/* 096C30 7F062100 C7A60038 */ lwc1 $f6, 0x38($sp) +/* 096C34 7F062104 46067032 */ c.eq.s $f14, $f6 +/* 096C38 7F062108 E7A400D8 */ swc1 $f4, 0xd8($sp) +/* 096C3C 7F06210C 45000008 */ bc1f .L7F062130 +/* 096C40 7F062110 00000000 */ nop +/* 096C44 7F062114 460A7032 */ c.eq.s $f14, $f10 +/* 096C48 7F062118 00000000 */ nop +/* 096C4C 7F06211C 45020005 */ bc1fl .L7F062134 +/* 096C50 7F062120 27A400D0 */ addiu $a0, $sp, 0xd0 +/* 096C54 7F062124 46047032 */ c.eq.s $f14, $f4 +/* 096C58 7F062128 00000000 */ nop +/* 096C5C 7F06212C 4501000F */ bc1t .L7F06216C +.L7F062130: +/* 096C60 7F062130 27A400D0 */ addiu $a0, $sp, 0xd0 +.L7F062134: +/* 096C64 7F062134 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 096C68 7F062138 0C007DD4 */ jal guNormalize +/* 096C6C 7F06213C 27A600D8 */ addiu $a2, $sp, 0xd8 +/* 096C70 7F062140 C7A000F4 */ lwc1 $f0, 0xf4($sp) +/* 096C74 7F062144 C7A800D0 */ lwc1 $f8, 0xd0($sp) +/* 096C78 7F062148 C7AA00D4 */ lwc1 $f10, 0xd4($sp) +/* 096C7C 7F06214C 46004182 */ mul.s $f6, $f8, $f0 +/* 096C80 7F062150 C7A800D8 */ lwc1 $f8, 0xd8($sp) +/* 096C84 7F062154 46005102 */ mul.s $f4, $f10, $f0 +/* 096C88 7F062158 E7A600D0 */ swc1 $f6, 0xd0($sp) +/* 096C8C 7F06215C 46004182 */ mul.s $f6, $f8, $f0 +/* 096C90 7F062160 E7A400D4 */ swc1 $f4, 0xd4($sp) +/* 096C94 7F062164 10000005 */ b .L7F06217C +/* 096C98 7F062168 E7A600D8 */ swc1 $f6, 0xd8($sp) +.L7F06216C: +/* 096C9C 7F06216C C7AA00F4 */ lwc1 $f10, 0xf4($sp) +/* 096CA0 7F062170 E7AE00D0 */ swc1 $f14, 0xd0($sp) +/* 096CA4 7F062174 E7AE00D8 */ swc1 $f14, 0xd8($sp) +/* 096CA8 7F062178 E7AA00D4 */ swc1 $f10, 0xd4($sp) +.L7F06217C: +/* 096CAC 7F06217C C6240014 */ lwc1 $f4, 0x14($s1) +/* 096CB0 7F062180 C7A800D8 */ lwc1 $f8, 0xd8($sp) +/* 096CB4 7F062184 C7AA00D4 */ lwc1 $f10, 0xd4($sp) +/* 096CB8 7F062188 27A400DC */ addiu $a0, $sp, 0xdc +/* 096CBC 7F06218C 46082182 */ mul.s $f6, $f4, $f8 +/* 096CC0 7F062190 C6240018 */ lwc1 $f4, 0x18($s1) +/* 096CC4 7F062194 27A500E0 */ addiu $a1, $sp, 0xe0 +/* 096CC8 7F062198 27A600E4 */ addiu $a2, $sp, 0xe4 +/* 096CCC 7F06219C 46045102 */ mul.s $f4, $f10, $f4 +/* 096CD0 7F0621A0 46043181 */ sub.s $f6, $f6, $f4 +/* 096CD4 7F0621A4 E7A600DC */ swc1 $f6, 0xdc($sp) +/* 096CD8 7F0621A8 C6240018 */ lwc1 $f4, 0x18($s1) +/* 096CDC 7F0621AC C7A600D0 */ lwc1 $f6, 0xd0($sp) +/* 096CE0 7F0621B0 E7AA0038 */ swc1 $f10, 0x38($sp) +/* 096CE4 7F0621B4 C62A0010 */ lwc1 $f10, 0x10($s1) +/* 096CE8 7F0621B8 46062102 */ mul.s $f4, $f4, $f6 +/* 096CEC 7F0621BC 00000000 */ nop +/* 096CF0 7F0621C0 460A4202 */ mul.s $f8, $f8, $f10 +/* 096CF4 7F0621C4 46082281 */ sub.s $f10, $f4, $f8 +/* 096CF8 7F0621C8 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 096CFC 7F0621CC E7AA00E0 */ swc1 $f10, 0xe0($sp) +/* 096D00 7F0621D0 C6240010 */ lwc1 $f4, 0x10($s1) +/* 096D04 7F0621D4 46082282 */ mul.s $f10, $f4, $f8 +/* 096D08 7F0621D8 C6240014 */ lwc1 $f4, 0x14($s1) +/* 096D0C 7F0621DC 46043202 */ mul.s $f8, $f6, $f4 +/* 096D10 7F0621E0 46085181 */ sub.s $f6, $f10, $f8 +/* 096D14 7F0621E4 0C007DD4 */ jal guNormalize +/* 096D18 7F0621E8 E7A600E4 */ swc1 $f6, 0xe4($sp) +/* 096D1C 7F0621EC C7A000F4 */ lwc1 $f0, 0xf4($sp) +/* 096D20 7F0621F0 C7A400DC */ lwc1 $f4, 0xdc($sp) +/* 096D24 7F0621F4 C7A800E0 */ lwc1 $f8, 0xe0($sp) +/* 096D28 7F0621F8 24010016 */ li $at, 22 +/* 096D2C 7F0621FC 46002282 */ mul.s $f10, $f4, $f0 +/* 096D30 7F062200 C7A400E4 */ lwc1 $f4, 0xe4($sp) +/* 096D34 7F062204 46004182 */ mul.s $f6, $f8, $f0 +/* 096D38 7F062208 E7AA00DC */ swc1 $f10, 0xdc($sp) +/* 096D3C 7F06220C 46002282 */ mul.s $f10, $f4, $f0 +/* 096D40 7F062210 E7A600E0 */ swc1 $f6, 0xe0($sp) +/* 096D44 7F062214 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 096D48 7F062218 822A0001 */ lb $t2, 1($s1) +/* 096D4C 7F06221C 15410005 */ bne $t2, $at, .L7F062234 +/* 096D50 7F062220 00000000 */ nop +/* 096D54 7F062224 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 096D58 7F062228 24040008 */ li $a0, 8 +/* 096D5C 7F06222C 10000004 */ b .L7F062240 +/* 096D60 7F062230 00408025 */ move $s0, $v0 +.L7F062234: +/* 096D64 7F062234 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 096D68 7F062238 24040004 */ li $a0, 4 +/* 096D6C 7F06223C 00408025 */ move $s0, $v0 +.L7F062240: +/* 096D70 7F062240 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 096D74 7F062244 00000000 */ nop +/* 096D78 7F062248 AFA20158 */ sw $v0, 0x158($sp) +/* 096D7C 7F06224C 27A400FC */ addiu $a0, $sp, 0xfc +/* 096D80 7F062250 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 096D84 7F062254 27A50118 */ addiu $a1, $sp, 0x118 +/* 096D88 7F062258 3C018005 */ lui $at, %hi(D_80053EB0) +/* 096D8C 7F06225C C42C3EB0 */ lwc1 $f12, %lo(D_80053EB0)($at) +/* 096D90 7F062260 0FC1629F */ jal matrix_scalar_multiply +/* 096D94 7F062264 27A50118 */ addiu $a1, $sp, 0x118 +/* 096D98 7F062268 8FA400A8 */ lw $a0, 0xa8($sp) +/* 096D9C 7F06226C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 096DA0 7F062270 27A50118 */ addiu $a1, $sp, 0x118 +/* 096DA4 7F062274 27A40118 */ addiu $a0, $sp, 0x118 +/* 096DA8 7F062278 0FC16327 */ jal sub_GAME_7F058C9C +/* 096DAC 7F06227C 8FA50158 */ lw $a1, 0x158($sp) +/* 096DB0 7F062280 27A20108 */ addiu $v0, $sp, 0x108 +/* 096DB4 7F062284 8C410000 */ lw $at, ($v0) +/* 096DB8 7F062288 AE010000 */ sw $at, ($s0) +/* 096DBC 7F06228C 8C4D0004 */ lw $t5, 4($v0) +/* 096DC0 7F062290 AE0D0004 */ sw $t5, 4($s0) +/* 096DC4 7F062294 8C410008 */ lw $at, 8($v0) +/* 096DC8 7F062298 AE010008 */ sw $at, 8($s0) +/* 096DCC 7F06229C 8C4D000C */ lw $t5, 0xc($v0) +/* 096DD0 7F0622A0 AE0D000C */ sw $t5, 0xc($s0) +/* 096DD4 7F0622A4 8C410000 */ lw $at, ($v0) +/* 096DD8 7F0622A8 AE010010 */ sw $at, 0x10($s0) +/* 096DDC 7F0622AC 8C4E0004 */ lw $t6, 4($v0) +/* 096DE0 7F0622B0 AE0E0014 */ sw $t6, 0x14($s0) +/* 096DE4 7F0622B4 8C410008 */ lw $at, 8($v0) +/* 096DE8 7F0622B8 AE010018 */ sw $at, 0x18($s0) +/* 096DEC 7F0622BC 8C4E000C */ lw $t6, 0xc($v0) +/* 096DF0 7F0622C0 AE0E001C */ sw $t6, 0x1c($s0) +/* 096DF4 7F0622C4 8C410000 */ lw $at, ($v0) +/* 096DF8 7F0622C8 AE010020 */ sw $at, 0x20($s0) +/* 096DFC 7F0622CC 8C4A0004 */ lw $t2, 4($v0) +/* 096E00 7F0622D0 AE0A0024 */ sw $t2, 0x24($s0) +/* 096E04 7F0622D4 8C410008 */ lw $at, 8($v0) +/* 096E08 7F0622D8 AE010028 */ sw $at, 0x28($s0) +/* 096E0C 7F0622DC 8C4A000C */ lw $t2, 0xc($v0) +/* 096E10 7F0622E0 AE0A002C */ sw $t2, 0x2c($s0) +/* 096E14 7F0622E4 8C410000 */ lw $at, ($v0) +/* 096E18 7F0622E8 AE010030 */ sw $at, 0x30($s0) +/* 096E1C 7F0622EC 8C4D0004 */ lw $t5, 4($v0) +/* 096E20 7F0622F0 AE0D0034 */ sw $t5, 0x34($s0) +/* 096E24 7F0622F4 8C410008 */ lw $at, 8($v0) +/* 096E28 7F0622F8 AE010038 */ sw $at, 0x38($s0) +/* 096E2C 7F0622FC 8C4D000C */ lw $t5, 0xc($v0) +/* 096E30 7F062300 24010016 */ li $at, 22 +/* 096E34 7F062304 AE0D003C */ sw $t5, 0x3c($s0) +/* 096E38 7F062308 82230001 */ lb $v1, 1($s1) +/* 096E3C 7F06230C 54610023 */ bnel $v1, $at, .L7F06239C +/* 096E40 7F062310 24010017 */ li $at, 23 +/* 096E44 7F062314 8C410000 */ lw $at, ($v0) +/* 096E48 7F062318 AE010040 */ sw $at, 0x40($s0) +/* 096E4C 7F06231C 8C4B0004 */ lw $t3, 4($v0) +/* 096E50 7F062320 AE0B0044 */ sw $t3, 0x44($s0) +/* 096E54 7F062324 8C410008 */ lw $at, 8($v0) +/* 096E58 7F062328 AE010048 */ sw $at, 0x48($s0) +/* 096E5C 7F06232C 8C4B000C */ lw $t3, 0xc($v0) +/* 096E60 7F062330 AE0B004C */ sw $t3, 0x4c($s0) +/* 096E64 7F062334 8C410000 */ lw $at, ($v0) +/* 096E68 7F062338 AE010050 */ sw $at, 0x50($s0) +/* 096E6C 7F06233C 8C580004 */ lw $t8, 4($v0) +/* 096E70 7F062340 AE180054 */ sw $t8, 0x54($s0) +/* 096E74 7F062344 8C410008 */ lw $at, 8($v0) +/* 096E78 7F062348 AE010058 */ sw $at, 0x58($s0) +/* 096E7C 7F06234C 8C58000C */ lw $t8, 0xc($v0) +/* 096E80 7F062350 AE18005C */ sw $t8, 0x5c($s0) +/* 096E84 7F062354 8C410000 */ lw $at, ($v0) +/* 096E88 7F062358 AE010060 */ sw $at, 0x60($s0) +/* 096E8C 7F06235C 8C4A0004 */ lw $t2, 4($v0) +/* 096E90 7F062360 AE0A0064 */ sw $t2, 0x64($s0) +/* 096E94 7F062364 8C410008 */ lw $at, 8($v0) +/* 096E98 7F062368 AE010068 */ sw $at, 0x68($s0) +/* 096E9C 7F06236C 8C4A000C */ lw $t2, 0xc($v0) +/* 096EA0 7F062370 AE0A006C */ sw $t2, 0x6c($s0) +/* 096EA4 7F062374 8C410000 */ lw $at, ($v0) +/* 096EA8 7F062378 AE010070 */ sw $at, 0x70($s0) +/* 096EAC 7F06237C 8C4F0004 */ lw $t7, 4($v0) +/* 096EB0 7F062380 AE0F0074 */ sw $t7, 0x74($s0) +/* 096EB4 7F062384 8C410008 */ lw $at, 8($v0) +/* 096EB8 7F062388 AE010078 */ sw $at, 0x78($s0) +/* 096EBC 7F06238C 8C4F000C */ lw $t7, 0xc($v0) +/* 096EC0 7F062390 AE0F007C */ sw $t7, 0x7c($s0) +/* 096EC4 7F062394 82230001 */ lb $v1, 1($s1) +/* 096EC8 7F062398 24010017 */ li $at, 23 +.L7F06239C: +/* 096ECC 7F06239C 5461004F */ bnel $v1, $at, .L7F0624DC +/* 096ED0 7F0623A0 3C014120 */ lui $at, 0x4120 +/* 096ED4 7F0623A4 C6280010 */ lwc1 $f8, 0x10($s1) +/* 096ED8 7F0623A8 C7A400FC */ lwc1 $f4, 0xfc($sp) +/* 096EDC 7F0623AC 8FA400A8 */ lw $a0, 0xa8($sp) +/* 096EE0 7F0623B0 46144182 */ mul.s $f6, $f8, $f20 +/* 096EE4 7F0623B4 27A5009C */ addiu $a1, $sp, 0x9c +/* 096EE8 7F0623B8 46043280 */ add.s $f10, $f6, $f4 +/* 096EEC 7F0623BC C7A40100 */ lwc1 $f4, 0x100($sp) +/* 096EF0 7F0623C0 E7AA009C */ swc1 $f10, 0x9c($sp) +/* 096EF4 7F0623C4 C6280014 */ lwc1 $f8, 0x14($s1) +/* 096EF8 7F0623C8 46144182 */ mul.s $f6, $f8, $f20 +/* 096EFC 7F0623CC 46043280 */ add.s $f10, $f6, $f4 +/* 096F00 7F0623D0 C7A40104 */ lwc1 $f4, 0x104($sp) +/* 096F04 7F0623D4 E7AA00A0 */ swc1 $f10, 0xa0($sp) +/* 096F08 7F0623D8 C6280018 */ lwc1 $f8, 0x18($s1) +/* 096F0C 7F0623DC 46144182 */ mul.s $f6, $f8, $f20 +/* 096F10 7F0623E0 46043280 */ add.s $f10, $f6, $f4 +/* 096F14 7F0623E4 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 096F18 7F0623E8 E7AA00A4 */ swc1 $f10, 0xa4($sp) +/* 096F1C 7F0623EC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 096F20 7F0623F0 44813000 */ mtc1 $at, $f6 +/* 096F24 7F0623F4 C7A800F4 */ lwc1 $f8, 0xf4($sp) +/* 096F28 7F0623F8 C7AE00A4 */ lwc1 $f14, 0xa4($sp) +/* 096F2C 7F0623FC 27A40088 */ addiu $a0, $sp, 0x88 +/* 096F30 7F062400 46064003 */ div.s $f0, $f8, $f6 +/* 096F34 7F062404 27A60090 */ addiu $a2, $sp, 0x90 +/* 096F38 7F062408 46007087 */ neg.s $f2, $f14 +/* 096F3C 7F06240C 44051000 */ mfc1 $a1, $f2 +/* 096F40 7F062410 E7A0008C */ swc1 $f0, 0x8c($sp) +/* 096F44 7F062414 0FC1E03C */ jal sub_GAME_7F0780F0 +/* 096F48 7F062418 E7A00088 */ swc1 $f0, 0x88($sp) +/* 096F4C 7F06241C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 096F50 7F062420 C7B00090 */ lwc1 $f16, 0x90($sp) +/* 096F54 7F062424 44812000 */ mtc1 $at, $f4 +/* 096F58 7F062428 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 096F5C 7F06242C 4604803C */ c.lt.s $f16, $f4 +/* 096F60 7F062430 00000000 */ nop +/* 096F64 7F062434 4500000E */ bc1f .L7F062470 +/* 096F68 7F062438 00000000 */ nop +/* 096F6C 7F06243C 44815000 */ mtc1 $at, $f10 +/* 096F70 7F062440 C7A2009C */ lwc1 $f2, 0x9c($sp) +/* 096F74 7F062444 C7AC00A0 */ lwc1 $f12, 0xa0($sp) +/* 096F78 7F062448 460A8002 */ mul.s $f0, $f16, $f10 +/* 096F7C 7F06244C C7AE00A4 */ lwc1 $f14, 0xa4($sp) +/* 096F80 7F062450 46001082 */ mul.s $f2, $f2, $f0 +/* 096F84 7F062454 00000000 */ nop +/* 096F88 7F062458 46006302 */ mul.s $f12, $f12, $f0 +/* 096F8C 7F06245C 00000000 */ nop +/* 096F90 7F062460 46007382 */ mul.s $f14, $f14, $f0 +/* 096F94 7F062464 E7A2009C */ swc1 $f2, 0x9c($sp) +/* 096F98 7F062468 E7AC00A0 */ swc1 $f12, 0xa0($sp) +/* 096F9C 7F06246C E7AE00A4 */ swc1 $f14, 0xa4($sp) +.L7F062470: +/* 096FA0 7F062470 0FC1E111 */ jal sub_GAME_7F078444 +/* 096FA4 7F062474 00000000 */ nop +/* 096FA8 7F062478 00402025 */ move $a0, $v0 +/* 096FAC 7F06247C 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 096FB0 7F062480 27A5009C */ addiu $a1, $sp, 0x9c +/* 096FB4 7F062484 C7A2009C */ lwc1 $f2, 0x9c($sp) +/* 096FB8 7F062488 C7A800FC */ lwc1 $f8, 0xfc($sp) +/* 096FBC 7F06248C C7AC00A0 */ lwc1 $f12, 0xa0($sp) +/* 096FC0 7F062490 C7A60100 */ lwc1 $f6, 0x100($sp) +/* 096FC4 7F062494 46081081 */ sub.s $f2, $f2, $f8 +/* 096FC8 7F062498 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 096FCC 7F06249C 44810000 */ mtc1 $at, $f0 +/* 096FD0 7F0624A0 46066301 */ sub.s $f12, $f12, $f6 +/* 096FD4 7F0624A4 C7AE00A4 */ lwc1 $f14, 0xa4($sp) +/* 096FD8 7F0624A8 C7A40104 */ lwc1 $f4, 0x104($sp) +/* 096FDC 7F0624AC 46001282 */ mul.s $f10, $f2, $f0 +/* 096FE0 7F0624B0 E7AC00A0 */ swc1 $f12, 0xa0($sp) +/* 096FE4 7F0624B4 46047381 */ sub.s $f14, $f14, $f4 +/* 096FE8 7F0624B8 46006202 */ mul.s $f8, $f12, $f0 +/* 096FEC 7F0624BC E7A2009C */ swc1 $f2, 0x9c($sp) +/* 096FF0 7F0624C0 46007182 */ mul.s $f6, $f14, $f0 +/* 096FF4 7F0624C4 E7AA00C4 */ swc1 $f10, 0xc4($sp) +/* 096FF8 7F0624C8 E7AE00A4 */ swc1 $f14, 0xa4($sp) +/* 096FFC 7F0624CC E7A800C8 */ swc1 $f8, 0xc8($sp) +/* 097000 7F0624D0 1000000E */ b .L7F06250C +/* 097004 7F0624D4 E7A600CC */ swc1 $f6, 0xcc($sp) +/* 097008 7F0624D8 3C014120 */ li $at, 0x41200000 # 10.000000 +.L7F0624DC: +/* 09700C 7F0624DC 44812000 */ mtc1 $at, $f4 +/* 097010 7F0624E0 C62A0010 */ lwc1 $f10, 0x10($s1) +/* 097014 7F0624E4 4604A002 */ mul.s $f0, $f20, $f4 +/* 097018 7F0624E8 00000000 */ nop +/* 09701C 7F0624EC 46005202 */ mul.s $f8, $f10, $f0 +/* 097020 7F0624F0 E7A800C4 */ swc1 $f8, 0xc4($sp) +/* 097024 7F0624F4 C6260014 */ lwc1 $f6, 0x14($s1) +/* 097028 7F0624F8 46003102 */ mul.s $f4, $f6, $f0 +/* 09702C 7F0624FC E7A400C8 */ swc1 $f4, 0xc8($sp) +/* 097030 7F062500 C62A0018 */ lwc1 $f10, 0x18($s1) +/* 097034 7F062504 46005202 */ mul.s $f8, $f10, $f0 +/* 097038 7F062508 E7A800CC */ swc1 $f8, 0xcc($sp) +.L7F06250C: +/* 09703C 7F06250C C7A600D0 */ lwc1 $f6, 0xd0($sp) +/* 097040 7F062510 8FA500B0 */ lw $a1, 0xb0($sp) +/* 097044 7F062514 3C018005 */ lui $at, %hi(D_80053EB4) +/* 097048 7F062518 4600310D */ trunc.w.s $f4, $f6 +/* 09704C 7F06251C 44192000 */ mfc1 $t9, $f4 +/* 097050 7F062520 00000000 */ nop +/* 097054 7F062524 A6190000 */ sh $t9, ($s0) +/* 097058 7F062528 C7AA00D4 */ lwc1 $f10, 0xd4($sp) +/* 09705C 7F06252C 4600520D */ trunc.w.s $f8, $f10 +/* 097060 7F062530 440E4000 */ mfc1 $t6, $f8 +/* 097064 7F062534 00000000 */ nop +/* 097068 7F062538 A60E0002 */ sh $t6, 2($s0) +/* 09706C 7F06253C C7A600D8 */ lwc1 $f6, 0xd8($sp) +/* 097070 7F062540 4600310D */ trunc.w.s $f4, $f6 +/* 097074 7F062544 44092000 */ mfc1 $t1, $f4 +/* 097078 7F062548 00000000 */ nop +/* 09707C 7F06254C A6090004 */ sh $t1, 4($s0) +/* 097080 7F062550 90AA0004 */ lbu $t2, 4($a1) +/* 097084 7F062554 A600000A */ sh $zero, 0xa($s0) +/* 097088 7F062558 000A6140 */ sll $t4, $t2, 5 +/* 09708C 7F06255C A60C0008 */ sh $t4, 8($s0) +/* 097090 7F062560 C7AA00D0 */ lwc1 $f10, 0xd0($sp) +/* 097094 7F062564 46005207 */ neg.s $f8, $f10 +/* 097098 7F062568 4600418D */ trunc.w.s $f6, $f8 +/* 09709C 7F06256C 440D3000 */ mfc1 $t5, $f6 +/* 0970A0 7F062570 00000000 */ nop +/* 0970A4 7F062574 A60D0010 */ sh $t5, 0x10($s0) +/* 0970A8 7F062578 C7A400D4 */ lwc1 $f4, 0xd4($sp) +/* 0970AC 7F06257C 46002287 */ neg.s $f10, $f4 +/* 0970B0 7F062580 4600520D */ trunc.w.s $f8, $f10 +/* 0970B4 7F062584 440B4000 */ mfc1 $t3, $f8 +/* 0970B8 7F062588 00000000 */ nop +/* 0970BC 7F06258C A60B0012 */ sh $t3, 0x12($s0) +/* 0970C0 7F062590 C7A600D8 */ lwc1 $f6, 0xd8($sp) +/* 0970C4 7F062594 A6000018 */ sh $zero, 0x18($s0) +/* 0970C8 7F062598 A600001A */ sh $zero, 0x1a($s0) +/* 0970CC 7F06259C 46003107 */ neg.s $f4, $f6 +/* 0970D0 7F0625A0 4600228D */ trunc.w.s $f10, $f4 +/* 0970D4 7F0625A4 44185000 */ mfc1 $t8, $f10 +/* 0970D8 7F0625A8 00000000 */ nop +/* 0970DC 7F0625AC A6180014 */ sh $t8, 0x14($s0) +/* 0970E0 7F0625B0 C7A800D0 */ lwc1 $f8, 0xd0($sp) +/* 0970E4 7F0625B4 C4263EB4 */ lwc1 $f6, %lo(D_80053EB4)($at) +/* 0970E8 7F0625B8 C7AA00C4 */ lwc1 $f10, 0xc4($sp) +/* 0970EC 7F0625BC 3C018005 */ lui $at, %hi(D_80053EB8) +/* 0970F0 7F0625C0 46064102 */ mul.s $f4, $f8, $f6 +/* 0970F4 7F0625C4 460A2200 */ add.s $f8, $f4, $f10 +/* 0970F8 7F0625C8 4600418D */ trunc.w.s $f6, $f8 +/* 0970FC 7F0625CC 440A3000 */ mfc1 $t2, $f6 +/* 097100 7F0625D0 00000000 */ nop +/* 097104 7F0625D4 A60A0020 */ sh $t2, 0x20($s0) +/* 097108 7F0625D8 C7A400D4 */ lwc1 $f4, 0xd4($sp) +/* 09710C 7F0625DC C42A3EB8 */ lwc1 $f10, %lo(D_80053EB8)($at) +/* 097110 7F0625E0 C7A600C8 */ lwc1 $f6, 0xc8($sp) +/* 097114 7F0625E4 3C018005 */ lui $at, %hi(D_80053EBC) +/* 097118 7F0625E8 460A2202 */ mul.s $f8, $f4, $f10 +/* 09711C 7F0625EC 46064100 */ add.s $f4, $f8, $f6 +/* 097120 7F0625F0 4600228D */ trunc.w.s $f10, $f4 +/* 097124 7F0625F4 440F5000 */ mfc1 $t7, $f10 +/* 097128 7F0625F8 00000000 */ nop +/* 09712C 7F0625FC A60F0022 */ sh $t7, 0x22($s0) +/* 097130 7F062600 C7A800D8 */ lwc1 $f8, 0xd8($sp) +/* 097134 7F062604 C4263EBC */ lwc1 $f6, %lo(D_80053EBC)($at) +/* 097138 7F062608 C7AA00CC */ lwc1 $f10, 0xcc($sp) +/* 09713C 7F06260C 3C018005 */ lui $at, %hi(D_80053EC0) +/* 097140 7F062610 46064102 */ mul.s $f4, $f8, $f6 +/* 097144 7F062614 460A2200 */ add.s $f8, $f4, $f10 +/* 097148 7F062618 4600418D */ trunc.w.s $f6, $f8 +/* 09714C 7F06261C 44193000 */ mfc1 $t9, $f6 +/* 097150 7F062620 00000000 */ nop +/* 097154 7F062624 A6190024 */ sh $t9, 0x24($s0) +/* 097158 7F062628 90AB0004 */ lbu $t3, 4($a1) +/* 09715C 7F06262C 000B7140 */ sll $t6, $t3, 5 +/* 097160 7F062630 A60E0028 */ sh $t6, 0x28($s0) +/* 097164 7F062634 90B80005 */ lbu $t8, 5($a1) +/* 097168 7F062638 00184940 */ sll $t1, $t8, 5 +/* 09716C 7F06263C A609002A */ sh $t1, 0x2a($s0) +/* 097170 7F062640 C42A3EC0 */ lwc1 $f10, %lo(D_80053EC0)($at) +/* 097174 7F062644 C7A400D0 */ lwc1 $f4, 0xd0($sp) +/* 097178 7F062648 C7A600C4 */ lwc1 $f6, 0xc4($sp) +/* 09717C 7F06264C 3C018005 */ lui $at, %hi(D_80053EC4) +/* 097180 7F062650 460A2202 */ mul.s $f8, $f4, $f10 +/* 097184 7F062654 46083101 */ sub.s $f4, $f6, $f8 +/* 097188 7F062658 4600228D */ trunc.w.s $f10, $f4 +/* 09718C 7F06265C 440C5000 */ mfc1 $t4, $f10 +/* 097190 7F062660 00000000 */ nop +/* 097194 7F062664 A60C0030 */ sh $t4, 0x30($s0) +/* 097198 7F062668 C4283EC4 */ lwc1 $f8, %lo(D_80053EC4)($at) +/* 09719C 7F06266C C7A600D4 */ lwc1 $f6, 0xd4($sp) +/* 0971A0 7F062670 C7AA00C8 */ lwc1 $f10, 0xc8($sp) +/* 0971A4 7F062674 3C018005 */ lui $at, %hi(D_80053EC8) +/* 0971A8 7F062678 46083102 */ mul.s $f4, $f6, $f8 +/* 0971AC 7F06267C 46045181 */ sub.s $f6, $f10, $f4 +/* 0971B0 7F062680 4600320D */ trunc.w.s $f8, $f6 +/* 0971B4 7F062684 440D4000 */ mfc1 $t5, $f8 +/* 0971B8 7F062688 00000000 */ nop +/* 0971BC 7F06268C A60D0032 */ sh $t5, 0x32($s0) +/* 0971C0 7F062690 C4243EC8 */ lwc1 $f4, %lo(D_80053EC8)($at) +/* 0971C4 7F062694 C7AA00D8 */ lwc1 $f10, 0xd8($sp) +/* 0971C8 7F062698 C7A800CC */ lwc1 $f8, 0xcc($sp) +/* 0971CC 7F06269C A6000038 */ sh $zero, 0x38($s0) +/* 0971D0 7F0626A0 46045182 */ mul.s $f6, $f10, $f4 +/* 0971D4 7F0626A4 24010016 */ li $at, 22 +/* 0971D8 7F0626A8 46064281 */ sub.s $f10, $f8, $f6 +/* 0971DC 7F0626AC 4600510D */ trunc.w.s $f4, $f10 +/* 0971E0 7F0626B0 440B2000 */ mfc1 $t3, $f4 +/* 0971E4 7F0626B4 00000000 */ nop +/* 0971E8 7F0626B8 A60B0034 */ sh $t3, 0x34($s0) +/* 0971EC 7F0626BC 90AE0005 */ lbu $t6, 5($a1) +/* 0971F0 7F0626C0 000EC140 */ sll $t8, $t6, 5 +/* 0971F4 7F0626C4 A618003A */ sh $t8, 0x3a($s0) +/* 0971F8 7F0626C8 82290001 */ lb $t1, 1($s1) +/* 0971FC 7F0626CC C7A800FC */ lwc1 $f8, 0xfc($sp) +/* 097200 7F0626D0 8FAA00F8 */ lw $t2, 0xf8($sp) +/* 097204 7F0626D4 552100AD */ bnel $t1, $at, .L7F06298C +/* 097208 7F0626D8 8FAC0160 */ lw $t4, 0x160($sp) +/* 09720C 7F0626DC C54C0000 */ lwc1 $f12, ($t2) +/* 097210 7F0626E0 C5420004 */ lwc1 $f2, 4($t2) +/* 097214 7F0626E4 C7A60100 */ lwc1 $f6, 0x100($sp) +/* 097218 7F0626E8 46086381 */ sub.s $f14, $f12, $f8 +/* 09721C 7F0626EC C5400008 */ lwc1 $f0, 8($t2) +/* 097220 7F0626F0 E7A80038 */ swc1 $f8, 0x38($sp) +/* 097224 7F0626F4 46061401 */ sub.s $f16, $f2, $f6 +/* 097228 7F0626F8 460E7102 */ mul.s $f4, $f14, $f14 +/* 09722C 7F0626FC C7AA0104 */ lwc1 $f10, 0x104($sp) +/* 097230 7F062700 3C018005 */ lui $at, %hi(D_80053ECC) +/* 097234 7F062704 46108202 */ mul.s $f8, $f16, $f16 +/* 097238 7F062708 460A0481 */ sub.s $f18, $f0, $f10 +/* 09723C 7F06270C 46082100 */ add.s $f4, $f4, $f8 +/* 097240 7F062710 46129202 */ mul.s $f8, $f18, $f18 +/* 097244 7F062714 46082100 */ add.s $f4, $f4, $f8 +/* 097248 7F062718 E7A40078 */ swc1 $f4, 0x78($sp) +/* 09724C 7F06271C C6280010 */ lwc1 $f8, 0x10($s1) +/* 097250 7F062720 E7A60034 */ swc1 $f6, 0x34($sp) +/* 097254 7F062724 C7A60038 */ lwc1 $f6, 0x38($sp) +/* 097258 7F062728 46144202 */ mul.s $f8, $f8, $f20 +/* 09725C 7F06272C 46064200 */ add.s $f8, $f8, $f6 +/* 097260 7F062730 C6260014 */ lwc1 $f6, 0x14($s1) +/* 097264 7F062734 46086381 */ sub.s $f14, $f12, $f8 +/* 097268 7F062738 46143202 */ mul.s $f8, $f6, $f20 +/* 09726C 7F06273C C7A60034 */ lwc1 $f6, 0x34($sp) +/* 097270 7F062740 46064200 */ add.s $f8, $f8, $f6 +/* 097274 7F062744 C6260018 */ lwc1 $f6, 0x18($s1) +/* 097278 7F062748 46081401 */ sub.s $f16, $f2, $f8 +/* 09727C 7F06274C 46143202 */ mul.s $f8, $f6, $f20 +/* 097280 7F062750 460A4180 */ add.s $f6, $f8, $f10 +/* 097284 7F062754 460E7202 */ mul.s $f8, $f14, $f14 +/* 097288 7F062758 00000000 */ nop +/* 09728C 7F06275C 46108282 */ mul.s $f10, $f16, $f16 +/* 097290 7F062760 46060481 */ sub.s $f18, $f0, $f6 +/* 097294 7F062764 460A4180 */ add.s $f6, $f8, $f10 +/* 097298 7F062768 46129202 */ mul.s $f8, $f18, $f18 +/* 09729C 7F06276C 46083280 */ add.s $f10, $f6, $f8 +/* 0972A0 7F062770 C7A600C4 */ lwc1 $f6, 0xc4($sp) +/* 0972A4 7F062774 4604503C */ c.lt.s $f10, $f4 +/* 0972A8 7F062778 00000000 */ nop +/* 0972AC 7F06277C 4500000B */ bc1f .L7F0627AC +/* 0972B0 7F062780 00000000 */ nop +/* 0972B4 7F062784 C4243ECC */ lwc1 $f4, %lo(D_80053ECC)($at) +/* 0972B8 7F062788 E7A600B8 */ swc1 $f6, 0xb8($sp) +/* 0972BC 7F06278C 3C018005 */ lui $at, %hi(D_80053ED0) +/* 0972C0 7F062790 C4263ED0 */ lwc1 $f6, %lo(D_80053ED0)($at) +/* 0972C4 7F062794 C7A800C8 */ lwc1 $f8, 0xc8($sp) +/* 0972C8 7F062798 C7AA00CC */ lwc1 $f10, 0xcc($sp) +/* 0972CC 7F06279C 46062002 */ mul.s $f0, $f4, $f6 +/* 0972D0 7F0627A0 E7A800BC */ swc1 $f8, 0xbc($sp) +/* 0972D4 7F0627A4 E7AA00C0 */ swc1 $f10, 0xc0($sp) +/* 0972D8 7F0627A8 E7A000B4 */ swc1 $f0, 0xb4($sp) +.L7F0627AC: +/* 0972DC 7F0627AC C7A000B4 */ lwc1 $f0, 0xb4($sp) +/* 0972E0 7F0627B0 C7A800DC */ lwc1 $f8, 0xdc($sp) +/* 0972E4 7F0627B4 C7A400B8 */ lwc1 $f4, 0xb8($sp) +/* 0972E8 7F0627B8 3C088009 */ lui $t0, %hi(flareimage5) +/* 0972EC 7F0627BC 46004282 */ mul.s $f10, $f8, $f0 +/* 0972F0 7F0627C0 2508D0D8 */ addiu $t0, %lo(flareimage5) # addiu $t0, $t0, -0x2f28 +/* 0972F4 7F0627C4 46045180 */ add.s $f6, $f10, $f4 +/* 0972F8 7F0627C8 4600320D */ trunc.w.s $f8, $f6 +/* 0972FC 7F0627CC 440F4000 */ mfc1 $t7, $f8 +/* 097300 7F0627D0 00000000 */ nop +/* 097304 7F0627D4 A60F0040 */ sh $t7, 0x40($s0) +/* 097308 7F0627D8 C7AA00E0 */ lwc1 $f10, 0xe0($sp) +/* 09730C 7F0627DC C7A600BC */ lwc1 $f6, 0xbc($sp) +/* 097310 7F0627E0 46005102 */ mul.s $f4, $f10, $f0 +/* 097314 7F0627E4 46062200 */ add.s $f8, $f4, $f6 +/* 097318 7F0627E8 4600428D */ trunc.w.s $f10, $f8 +/* 09731C 7F0627EC 44195000 */ mfc1 $t9, $f10 +/* 097320 7F0627F0 00000000 */ nop +/* 097324 7F0627F4 A6190042 */ sh $t9, 0x42($s0) +/* 097328 7F0627F8 C7A400E4 */ lwc1 $f4, 0xe4($sp) +/* 09732C 7F0627FC C7A800C0 */ lwc1 $f8, 0xc0($sp) +/* 097330 7F062800 46002182 */ mul.s $f6, $f4, $f0 +/* 097334 7F062804 46083280 */ add.s $f10, $f6, $f8 +/* 097338 7F062808 4600510D */ trunc.w.s $f4, $f10 +/* 09733C 7F06280C 440E2000 */ mfc1 $t6, $f4 +/* 097340 7F062810 00000000 */ nop +/* 097344 7F062814 A60E0044 */ sh $t6, 0x44($s0) +/* 097348 7F062818 8D180000 */ lw $t8, ($t0) +/* 09734C 7F06281C 93090004 */ lbu $t1, 4($t8) +/* 097350 7F062820 00095140 */ sll $t2, $t1, 5 +/* 097354 7F062824 A60A0048 */ sh $t2, 0x48($s0) +/* 097358 7F062828 8D0C0000 */ lw $t4, ($t0) +/* 09735C 7F06282C 918F0005 */ lbu $t7, 5($t4) +/* 097360 7F062830 000F6940 */ sll $t5, $t7, 5 +/* 097364 7F062834 A60D004A */ sh $t5, 0x4a($s0) +/* 097368 7F062838 C7A800DC */ lwc1 $f8, 0xdc($sp) +/* 09736C 7F06283C C7A600B8 */ lwc1 $f6, 0xb8($sp) +/* 097370 7F062840 46004282 */ mul.s $f10, $f8, $f0 +/* 097374 7F062844 460A3101 */ sub.s $f4, $f6, $f10 +/* 097378 7F062848 4600220D */ trunc.w.s $f8, $f4 +/* 09737C 7F06284C 440B4000 */ mfc1 $t3, $f8 +/* 097380 7F062850 00000000 */ nop +/* 097384 7F062854 A60B0050 */ sh $t3, 0x50($s0) +/* 097388 7F062858 C7AA00E0 */ lwc1 $f10, 0xe0($sp) +/* 09738C 7F06285C C7A600BC */ lwc1 $f6, 0xbc($sp) +/* 097390 7F062860 46005102 */ mul.s $f4, $f10, $f0 +/* 097394 7F062864 46043201 */ sub.s $f8, $f6, $f4 +/* 097398 7F062868 4600428D */ trunc.w.s $f10, $f8 +/* 09739C 7F06286C 44185000 */ mfc1 $t8, $f10 +/* 0973A0 7F062870 00000000 */ nop +/* 0973A4 7F062874 A6180052 */ sh $t8, 0x52($s0) +/* 0973A8 7F062878 C7A400E4 */ lwc1 $f4, 0xe4($sp) +/* 0973AC 7F06287C C7A600C0 */ lwc1 $f6, 0xc0($sp) +/* 0973B0 7F062880 A6000058 */ sh $zero, 0x58($s0) +/* 0973B4 7F062884 46002202 */ mul.s $f8, $f4, $f0 +/* 0973B8 7F062888 A600005A */ sh $zero, 0x5a($s0) +/* 0973BC 7F06288C 46083281 */ sub.s $f10, $f6, $f8 +/* 0973C0 7F062890 4600510D */ trunc.w.s $f4, $f10 +/* 0973C4 7F062894 440A2000 */ mfc1 $t2, $f4 +/* 0973C8 7F062898 00000000 */ nop +/* 0973CC 7F06289C A60A0054 */ sh $t2, 0x54($s0) +/* 0973D0 7F0628A0 C7A600D0 */ lwc1 $f6, 0xd0($sp) +/* 0973D4 7F0628A4 C7AA00B8 */ lwc1 $f10, 0xb8($sp) +/* 0973D8 7F0628A8 46003202 */ mul.s $f8, $f6, $f0 +/* 0973DC 7F0628AC 460A4100 */ add.s $f4, $f8, $f10 +/* 0973E0 7F0628B0 4600218D */ trunc.w.s $f6, $f4 +/* 0973E4 7F0628B4 440F3000 */ mfc1 $t7, $f6 +/* 0973E8 7F0628B8 00000000 */ nop +/* 0973EC 7F0628BC A60F0060 */ sh $t7, 0x60($s0) +/* 0973F0 7F0628C0 C7A800D4 */ lwc1 $f8, 0xd4($sp) +/* 0973F4 7F0628C4 C7A400BC */ lwc1 $f4, 0xbc($sp) +/* 0973F8 7F0628C8 46004282 */ mul.s $f10, $f8, $f0 +/* 0973FC 7F0628CC 46045180 */ add.s $f6, $f10, $f4 +/* 097400 7F0628D0 4600320D */ trunc.w.s $f8, $f6 +/* 097404 7F0628D4 44194000 */ mfc1 $t9, $f8 +/* 097408 7F0628D8 00000000 */ nop +/* 09740C 7F0628DC A6190062 */ sh $t9, 0x62($s0) +/* 097410 7F0628E0 C7AA00D8 */ lwc1 $f10, 0xd8($sp) +/* 097414 7F0628E4 C7A600C0 */ lwc1 $f6, 0xc0($sp) +/* 097418 7F0628E8 A6000068 */ sh $zero, 0x68($s0) +/* 09741C 7F0628EC 46005102 */ mul.s $f4, $f10, $f0 +/* 097420 7F0628F0 46062200 */ add.s $f8, $f4, $f6 +/* 097424 7F0628F4 4600428D */ trunc.w.s $f10, $f8 +/* 097428 7F0628F8 440E5000 */ mfc1 $t6, $f10 +/* 09742C 7F0628FC 00000000 */ nop +/* 097430 7F062900 A60E0064 */ sh $t6, 0x64($s0) +/* 097434 7F062904 8D180000 */ lw $t8, ($t0) +/* 097438 7F062908 93090005 */ lbu $t1, 5($t8) +/* 09743C 7F06290C 00095140 */ sll $t2, $t1, 5 +/* 097440 7F062910 A60A006A */ sh $t2, 0x6a($s0) +/* 097444 7F062914 C7A600D0 */ lwc1 $f6, 0xd0($sp) +/* 097448 7F062918 C7A400B8 */ lwc1 $f4, 0xb8($sp) +/* 09744C 7F06291C 46003202 */ mul.s $f8, $f6, $f0 +/* 097450 7F062920 46082281 */ sub.s $f10, $f4, $f8 +/* 097454 7F062924 4600518D */ trunc.w.s $f6, $f10 +/* 097458 7F062928 440F3000 */ mfc1 $t7, $f6 +/* 09745C 7F06292C 00000000 */ nop +/* 097460 7F062930 A60F0070 */ sh $t7, 0x70($s0) +/* 097464 7F062934 C7A800D4 */ lwc1 $f8, 0xd4($sp) +/* 097468 7F062938 C7A400BC */ lwc1 $f4, 0xbc($sp) +/* 09746C 7F06293C 46004282 */ mul.s $f10, $f8, $f0 +/* 097470 7F062940 460A2181 */ sub.s $f6, $f4, $f10 +/* 097474 7F062944 4600320D */ trunc.w.s $f8, $f6 +/* 097478 7F062948 44194000 */ mfc1 $t9, $f8 +/* 09747C 7F06294C 00000000 */ nop +/* 097480 7F062950 A6190072 */ sh $t9, 0x72($s0) +/* 097484 7F062954 C7AA00D8 */ lwc1 $f10, 0xd8($sp) +/* 097488 7F062958 C7A400C0 */ lwc1 $f4, 0xc0($sp) +/* 09748C 7F06295C 46005182 */ mul.s $f6, $f10, $f0 +/* 097490 7F062960 46062201 */ sub.s $f8, $f4, $f6 +/* 097494 7F062964 4600428D */ trunc.w.s $f10, $f8 +/* 097498 7F062968 440E5000 */ mfc1 $t6, $f10 +/* 09749C 7F06296C 00000000 */ nop +/* 0974A0 7F062970 A60E0074 */ sh $t6, 0x74($s0) +/* 0974A4 7F062974 8D180000 */ lw $t8, ($t0) +/* 0974A8 7F062978 93090004 */ lbu $t1, 4($t8) +/* 0974AC 7F06297C A600007A */ sh $zero, 0x7a($s0) +/* 0974B0 7F062980 00095140 */ sll $t2, $t1, 5 +/* 0974B4 7F062984 A60A0078 */ sh $t2, 0x78($s0) +/* 0974B8 7F062988 8FAC0160 */ lw $t4, 0x160($sp) +.L7F06298C: +/* 0974BC 7F06298C 3C0DB600 */ lui $t5, 0xb600 +/* 0974C0 7F062990 24192000 */ li $t9, 8192 +/* 0974C4 7F062994 258F0008 */ addiu $t7, $t4, 8 +/* 0974C8 7F062998 AFAF0160 */ sw $t7, 0x160($sp) +/* 0974CC 7F06299C AD990004 */ sw $t9, 4($t4) +/* 0974D0 7F0629A0 AD8D0000 */ sw $t5, ($t4) +/* 0974D4 7F0629A4 8FAB0160 */ lw $t3, 0x160($sp) +/* 0974D8 7F0629A8 3C180102 */ lui $t8, (0x01020040 >> 16) # lui $t8, 0x102 +/* 0974DC 7F0629AC 37180040 */ ori $t8, (0x01020040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 0974E0 7F0629B0 256E0008 */ addiu $t6, $t3, 8 +/* 0974E4 7F0629B4 AFAE0160 */ sw $t6, 0x160($sp) +/* 0974E8 7F0629B8 AD780000 */ sw $t8, ($t3) +/* 0974EC 7F0629BC 8FA40158 */ lw $a0, 0x158($sp) +/* 0974F0 7F0629C0 0C003A2C */ jal osVirtualToPhysical +/* 0974F4 7F0629C4 AFAB006C */ sw $t3, 0x6c($sp) +/* 0974F8 7F0629C8 8FA3006C */ lw $v1, 0x6c($sp) +/* 0974FC 7F0629CC 3C088009 */ lui $t0, %hi(flareimage5) +/* 097500 7F0629D0 24010016 */ li $at, 22 +/* 097504 7F0629D4 AC620004 */ sw $v0, 4($v1) +/* 097508 7F0629D8 82290001 */ lb $t1, 1($s1) +/* 09750C 7F0629DC 2508D0D8 */ addiu $t0, %lo(flareimage5) # addiu $t0, $t0, -0x2f28 +/* 097510 7F0629E0 8FA500B0 */ lw $a1, 0xb0($sp) +/* 097514 7F0629E4 15210029 */ bne $t1, $at, .L7F062A8C +/* 097518 7F0629E8 27A40160 */ addiu $a0, $sp, 0x160 +/* 09751C 7F0629EC 240A0002 */ li $t2, 2 +/* 097520 7F0629F0 AFAA0010 */ sw $t2, 0x10($sp) +/* 097524 7F0629F4 27A40160 */ addiu $a0, $sp, 0x160 +/* 097528 7F0629F8 8D050000 */ lw $a1, ($t0) +/* 09752C 7F0629FC 24060004 */ li $a2, 4 +/* 097530 7F062A00 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 097534 7F062A04 8FA70168 */ lw $a3, 0x168($sp) +/* 097538 7F062A08 8FB10160 */ lw $s1, 0x160($sp) +/* 09753C 7F062A0C 3C0D0470 */ lui $t5, (0x04700080 >> 16) # lui $t5, 0x470 +/* 097540 7F062A10 35AD0080 */ ori $t5, (0x04700080 & 0xFFFF) # ori $t5, $t5, 0x80 +/* 097544 7F062A14 262F0008 */ addiu $t7, $s1, 8 +/* 097548 7F062A18 AFAF0160 */ sw $t7, 0x160($sp) +/* 09754C 7F062A1C 02002025 */ move $a0, $s0 +/* 097550 7F062A20 0C003A2C */ jal osVirtualToPhysical +/* 097554 7F062A24 AE2D0000 */ sw $t5, ($s1) +/* 097558 7F062A28 AE220004 */ sw $v0, 4($s1) +/* 09755C 7F062A2C 8FB90160 */ lw $t9, 0x160($sp) +/* 097560 7F062A30 3C0EB100 */ lui $t6, (0xB1000076 >> 16) # lui $t6, 0xb100 # gSP4Triangles(8,8,6,5,1,7,2,0,0,0,0,0 +/* 097564 7F062A34 35CE0076 */ ori $t6, (0xB1000076 & 0xFFFF) # ori $t6, $t6, 0x76 +/* 097568 7F062A38 272B0008 */ addiu $t3, $t9, 8 +/* 09756C 7F062A3C AFAB0160 */ sw $t3, 0x160($sp) +/* 097570 7F062A40 24185454 */ li $t8, 21588 +/* 097574 7F062A44 AF380004 */ sw $t8, 4($t9) # ), +/* 097578 7F062A48 AF2E0000 */ sw $t6, ($t9) +/* 09757C 7F062A4C 24090002 */ li $t1, 2 +/* 097580 7F062A50 AFA90010 */ sw $t1, 0x10($sp) +/* 097584 7F062A54 8FA70168 */ lw $a3, 0x168($sp) +/* 097588 7F062A58 8FA500B0 */ lw $a1, 0xb0($sp) +/* 09758C 7F062A5C 27A40160 */ addiu $a0, $sp, 0x160 +/* 097590 7F062A60 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 097594 7F062A64 24060004 */ li $a2, 4 +/* 097598 7F062A68 8FAA0160 */ lw $t2, 0x160($sp) +/* 09759C 7F062A6C 3C0FB100 */ lui $t7, (0xB1000013 >> 16) # lui $t7, 0xb100 # gSP4Triangles(0,2,3,3,2,1,1,0,0,0,0 +/* 0975A0 7F062A70 35EF0013 */ ori $t7, (0xB1000013 & 0xFFFF) # ori $t7, $t7, 0x13 +/* 0975A4 7F062A74 254C0008 */ addiu $t4, $t2, 8 +/* 0975A8 7F062A78 AFAC0160 */ sw $t4, 0x160($sp) +/* 0975AC 7F062A7C 240D3020 */ li $t5, 12320 +/* 0975B0 7F062A80 AD4D0004 */ sw $t5, 4($t2) +/* 0975B4 7F062A84 10000017 */ b .L7F062AE4 +/* 0975B8 7F062A88 AD4F0000 */ sw $t7, ($t2) # ), +.L7F062A8C: +/* 0975BC 7F062A8C 24190002 */ li $t9, 2 +/* 0975C0 7F062A90 AFB90010 */ sw $t9, 0x10($sp) +/* 0975C4 7F062A94 24060004 */ li $a2, 4 +/* 0975C8 7F062A98 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 0975CC 7F062A9C 8FA70168 */ lw $a3, 0x168($sp) +/* 0975D0 7F062AA0 8FB10160 */ lw $s1, 0x160($sp) +/* 0975D4 7F062AA4 3C180430 */ lui $t8, (0x04300040 >> 16) # lui $t8, 0x430 +/* 0975D8 7F062AA8 37180040 */ ori $t8, (0x04300040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 0975DC 7F062AAC 262E0008 */ addiu $t6, $s1, 8 +/* 0975E0 7F062AB0 AFAE0160 */ sw $t6, 0x160($sp) +/* 0975E4 7F062AB4 02002025 */ move $a0, $s0 +/* 0975E8 7F062AB8 0C003A2C */ jal osVirtualToPhysical +/* 0975EC 7F062ABC AE380000 */ sw $t8, ($s1) +/* 0975F0 7F062AC0 AE220004 */ sw $v0, 4($s1) +/* 0975F4 7F062AC4 8FA90160 */ lw $t1, 0x160($sp) +/* 0975F8 7F062AC8 3C0CB100 */ lui $t4, (0xB1000013 >> 16) # lui $t4, 0xb100 +/* 0975FC 7F062ACC 358C0013 */ ori $t4, (0xB1000013 & 0xFFFF) # ori $t4, $t4, 0x13 +/* 097600 7F062AD0 252A0008 */ addiu $t2, $t1, 8 +/* 097604 7F062AD4 AFAA0160 */ sw $t2, 0x160($sp) +/* 097608 7F062AD8 240F3020 */ li $t7, 12320 +/* 09760C 7F062ADC AD2F0004 */ sw $t7, 4($t1) +/* 097610 7F062AE0 AD2C0000 */ sw $t4, ($t1) +.L7F062AE4: +/* 097614 7F062AE4 8FBF002C */ lw $ra, 0x2c($sp) +/* 097618 7F062AE8 8FA20160 */ lw $v0, 0x160($sp) +/* 09761C 7F062AEC D7B40018 */ ldc1 $f20, 0x18($sp) +/* 097620 7F062AF0 8FB00024 */ lw $s0, 0x24($sp) +/* 097624 7F062AF4 8FB10028 */ lw $s1, 0x28($sp) +/* 097628 7F062AF8 03E00008 */ jr $ra +/* 09762C 7F062AFC 27BD0160 */ addiu $sp, $sp, 0x160 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F062B00(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F062B00 +/* 097630 7F062B00 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 097634 7F062B04 AFBF0014 */ sw $ra, 0x14($sp) +/* 097638 7F062B08 808E0000 */ lb $t6, ($a0) +/* 09763C 7F062B0C 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 097640 7F062B10 05C20031 */ bltzl $t6, .L7F062BD8 +/* 097644 7F062B14 8FBF0014 */ lw $ra, 0x14($sp) +/* 097648 7F062B18 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 09764C 7F062B1C 29E10003 */ slti $at, $t7, 3 +/* 097650 7F062B20 10200008 */ beqz $at, .L7F062B44 +/* 097654 7F062B24 3C018005 */ lui $at, %hi(global_timer_delta) +/* 097658 7F062B28 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 09765C 7F062B2C C4840020 */ lwc1 $f4, 0x20($a0) +/* 097660 7F062B30 C48A0028 */ lwc1 $f10, 0x28($a0) +/* 097664 7F062B34 46062202 */ mul.s $f8, $f4, $f6 +/* 097668 7F062B38 46085400 */ add.s $f16, $f10, $f8 +/* 09766C 7F062B3C 10000019 */ b .L7F062BA4 +/* 097670 7F062B40 E4900028 */ swc1 $f16, 0x28($a0) +.L7F062B44: +/* 097674 7F062B44 0C002914 */ jal get_random_value +/* 097678 7F062B48 AFA40018 */ sw $a0, 0x18($sp) +/* 09767C 7F062B4C 44829000 */ mtc1 $v0, $f18 +/* 097680 7F062B50 8FA40018 */ lw $a0, 0x18($sp) +/* 097684 7F062B54 04410005 */ bgez $v0, .L7F062B6C +/* 097688 7F062B58 46809120 */ cvt.s.w $f4, $f18 +/* 09768C 7F062B5C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 097690 7F062B60 44813000 */ mtc1 $at, $f6 +/* 097694 7F062B64 00000000 */ nop +/* 097698 7F062B68 46062100 */ add.s $f4, $f4, $f6 +.L7F062B6C: +/* 09769C 7F062B6C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0976A0 7F062B70 44815000 */ mtc1 $at, $f10 +/* 0976A4 7F062B74 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0976A8 7F062B78 44818000 */ mtc1 $at, $f16 +/* 0976AC 7F062B7C 460A2202 */ mul.s $f8, $f4, $f10 +/* 0976B0 7F062B80 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0976B4 7F062B84 44813000 */ mtc1 $at, $f6 +/* 0976B8 7F062B88 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0976BC 7F062B8C 46104482 */ mul.s $f18, $f8, $f16 +/* 0976C0 7F062B90 C4900028 */ lwc1 $f16, 0x28($a0) +/* 0976C4 7F062B94 46123100 */ add.s $f4, $f6, $f18 +/* 0976C8 7F062B98 46045202 */ mul.s $f8, $f10, $f4 +/* 0976CC 7F062B9C 46088180 */ add.s $f6, $f16, $f8 +/* 0976D0 7F062BA0 E4860028 */ swc1 $f6, 0x28($a0) +.L7F062BA4: +/* 0976D4 7F062BA4 C4920028 */ lwc1 $f18, 0x28($a0) +/* 0976D8 7F062BA8 C48A001C */ lwc1 $f10, 0x1c($a0) +/* 0976DC 7F062BAC 2418FFFF */ li $t8, -1 +/* 0976E0 7F062BB0 4612503E */ c.le.s $f10, $f18 +/* 0976E4 7F062BB4 00000000 */ nop +/* 0976E8 7F062BB8 45020004 */ bc1fl .L7F062BCC +/* 0976EC 7F062BBC 80990000 */ lb $t9, ($a0) +/* 0976F0 7F062BC0 10000004 */ b .L7F062BD4 +/* 0976F4 7F062BC4 A0980000 */ sb $t8, ($a0) +/* 0976F8 7F062BC8 80990000 */ lb $t9, ($a0) +.L7F062BCC: +/* 0976FC 7F062BCC 27280001 */ addiu $t0, $t9, 1 +/* 097700 7F062BD0 A0880000 */ sb $t0, ($a0) +.L7F062BD4: +/* 097704 7F062BD4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F062BD8: +/* 097708 7F062BD8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 09770C 7F062BDC 03E00008 */ jr $ra +/* 097710 7F062BE0 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F062B00 +/* 097630 7F062B00 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 097634 7F062B04 AFBF0014 */ sw $ra, 0x14($sp) +/* 097638 7F062B08 808E0000 */ lb $t6, ($a0) +/* 09763C 7F062B0C 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 097640 7F062B10 05C20031 */ bltzl $t6, .L7F062BD8 +/* 097644 7F062B14 8FBF0014 */ lw $ra, 0x14($sp) +/* 097648 7F062B18 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 09764C 7F062B1C 29E10003 */ slti $at, $t7, 3 +/* 097650 7F062B20 10200008 */ beqz $at, .L7F062B44 +/* 097654 7F062B24 3C018005 */ lui $at, %hi(jp_global_timer_delta) +/* 097658 7F062B28 C4268378 */ lwc1 $f6, %lo(jp_global_timer_delta)($at) +/* 09765C 7F062B2C C4840020 */ lwc1 $f4, 0x20($a0) +/* 097660 7F062B30 C48A0028 */ lwc1 $f10, 0x28($a0) +/* 097664 7F062B34 46062202 */ mul.s $f8, $f4, $f6 +/* 097668 7F062B38 46085400 */ add.s $f16, $f10, $f8 +/* 09766C 7F062B3C 10000019 */ b .L7F062BA4 +/* 097670 7F062B40 E4900028 */ swc1 $f16, 0x28($a0) +.L7F062B44: +/* 097674 7F062B44 0C002914 */ jal get_random_value +/* 097678 7F062B48 AFA40018 */ sw $a0, 0x18($sp) +/* 09767C 7F062B4C 44829000 */ mtc1 $v0, $f18 +/* 097680 7F062B50 8FA40018 */ lw $a0, 0x18($sp) +/* 097684 7F062B54 04410005 */ bgez $v0, .L7F062B6C +/* 097688 7F062B58 46809120 */ cvt.s.w $f4, $f18 +/* 09768C 7F062B5C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 097690 7F062B60 44813000 */ mtc1 $at, $f6 +/* 097694 7F062B64 00000000 */ nop +/* 097698 7F062B68 46062100 */ add.s $f4, $f4, $f6 +.L7F062B6C: +/* 09769C 7F062B6C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0976A0 7F062B70 44815000 */ mtc1 $at, $f10 +/* 0976A4 7F062B74 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0976A8 7F062B78 44818000 */ mtc1 $at, $f16 +/* 0976AC 7F062B7C 460A2202 */ mul.s $f8, $f4, $f10 +/* 0976B0 7F062B80 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0976B4 7F062B84 44813000 */ mtc1 $at, $f6 +/* 0976B8 7F062B88 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0976BC 7F062B8C 46104482 */ mul.s $f18, $f8, $f16 +/* 0976C0 7F062B90 C4900028 */ lwc1 $f16, 0x28($a0) +/* 0976C4 7F062B94 46123100 */ add.s $f4, $f6, $f18 +/* 0976C8 7F062B98 46045202 */ mul.s $f8, $f10, $f4 +/* 0976CC 7F062B9C 46088180 */ add.s $f6, $f16, $f8 +/* 0976D0 7F062BA0 E4860028 */ swc1 $f6, 0x28($a0) +.L7F062BA4: +/* 0976D4 7F062BA4 C4920028 */ lwc1 $f18, 0x28($a0) +/* 0976D8 7F062BA8 C48A001C */ lwc1 $f10, 0x1c($a0) +/* 0976DC 7F062BAC 2418FFFF */ li $t8, -1 +/* 0976E0 7F062BB0 4612503E */ c.le.s $f10, $f18 +/* 0976E4 7F062BB4 00000000 */ nop +/* 0976E8 7F062BB8 45020004 */ bc1fl .L7F062BCC +/* 0976EC 7F062BBC 80990000 */ lb $t9, ($a0) +/* 0976F0 7F062BC0 10000004 */ b .L7F062BD4 +/* 0976F4 7F062BC4 A0980000 */ sb $t8, ($a0) +/* 0976F8 7F062BC8 80990000 */ lb $t9, ($a0) +.L7F062BCC: +/* 0976FC 7F062BCC 27280001 */ addiu $t0, $t9, 1 +/* 097700 7F062BD0 A0880000 */ sb $t0, ($a0) +.L7F062BD4: +/* 097704 7F062BD4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F062BD8: +/* 097708 7F062BD8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 09770C 7F062BDC 03E00008 */ jr $ra +/* 097710 7F062BE0 00000000 */ nop +) +#endif +#endif + + + + +#ifdef NONMATCHING +void sub_GAME_7F062BE4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F062BE4 +/* 097714 7F062BE4 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 097718 7F062BE8 AFB7003C */ sw $s7, 0x3c($sp) +/* 09771C 7F062BEC 3C0F8003 */ lui $t7, %hi(D_80035CC0) +/* 097720 7F062BF0 27B7008C */ addiu $s7, $sp, 0x8c +/* 097724 7F062BF4 AFBF0044 */ sw $ra, 0x44($sp) +/* 097728 7F062BF8 AFBE0040 */ sw $fp, 0x40($sp) +/* 09772C 7F062BFC AFB60038 */ sw $s6, 0x38($sp) +/* 097730 7F062C00 AFB50034 */ sw $s5, 0x34($sp) +/* 097734 7F062C04 AFB40030 */ sw $s4, 0x30($sp) +/* 097738 7F062C08 AFB3002C */ sw $s3, 0x2c($sp) +/* 09773C 7F062C0C AFB20028 */ sw $s2, 0x28($sp) +/* 097740 7F062C10 AFB10024 */ sw $s1, 0x24($sp) +/* 097744 7F062C14 AFB00020 */ sw $s0, 0x20($sp) +/* 097748 7F062C18 AFA400D0 */ sw $a0, 0xd0($sp) +/* 09774C 7F062C1C 25EF5CC0 */ addiu $t7, %lo(D_80035CC0) # addiu $t7, $t7, 0x5cc0 +/* 097750 7F062C20 8C900000 */ lw $s0, ($a0) +/* 097754 7F062C24 25E8003C */ addiu $t0, $t7, 0x3c +/* 097758 7F062C28 02E04825 */ move $t1, $s7 +.L7F062C2C: +/* 09775C 7F062C2C 8DE10000 */ lw $at, ($t7) +/* 097760 7F062C30 25EF000C */ addiu $t7, $t7, 0xc +/* 097764 7F062C34 2529000C */ addiu $t1, $t1, 0xc +/* 097768 7F062C38 AD21FFF4 */ sw $at, -0xc($t1) +/* 09776C 7F062C3C 8DE1FFF8 */ lw $at, -8($t7) +/* 097770 7F062C40 AD21FFF8 */ sw $at, -8($t1) +/* 097774 7F062C44 8DE1FFFC */ lw $at, -4($t7) +/* 097778 7F062C48 15E8FFF8 */ bne $t7, $t0, .L7F062C2C +/* 09777C 7F062C4C AD21FFFC */ sw $at, -4($t1) +/* 097780 7F062C50 8DE10000 */ lw $at, ($t7) +/* 097784 7F062C54 3C1E8008 */ lui $fp, %hi(pPlayer) +/* 097788 7F062C58 27DEA0B0 */ addiu $fp, %lo(pPlayer) # addiu $fp, $fp, -0x5f50 +/* 09778C 7F062C5C 0000A825 */ move $s5, $zero +/* 097790 7F062C60 0000B025 */ move $s6, $zero +/* 097794 7F062C64 AD210000 */ sw $at, ($t1) +.L7F062C68: +/* 097798 7F062C68 8FCA0000 */ lw $t2, ($fp) +/* 09779C 7F062C6C 02A02025 */ move $a0, $s5 +/* 0977A0 7F062C70 01569821 */ addu $s3, $t2, $s6 +/* 0977A4 7F062C74 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0977A8 7F062C78 26730870 */ addiu $s3, $s3, 0x870 +/* 0977AC 7F062C7C 826B000F */ lb $t3, 0xf($s3) +/* 0977B0 7F062C80 0040A025 */ move $s4, $v0 +/* 0977B4 7F062C84 24010017 */ li $at, 23 +/* 0977B8 7F062C88 516000CD */ beql $t3, $zero, .L7F062FC0 +/* 0977BC 7F062C8C 26B50001 */ addiu $s5, $s5, 1 +/* 0977C0 7F062C90 10410005 */ beq $v0, $at, .L7F062CA8 +/* 0977C4 7F062C94 02002025 */ move $a0, $s0 +/* 0977C8 7F062C98 266501E4 */ addiu $a1, $s3, 0x1e4 +/* 0977CC 7F062C9C 0FC18786 */ jal sub_GAME_7F061E18 +/* 0977D0 7F062CA0 00003025 */ move $a2, $zero +/* 0977D4 7F062CA4 00408025 */ move $s0, $v0 +.L7F062CA8: +/* 0977D8 7F062CA8 24010013 */ li $at, 19 +/* 0977DC 7F062CAC 1281000C */ beq $s4, $at, .L7F062CE0 +/* 0977E0 7F062CB0 02001025 */ move $v0, $s0 +/* 0977E4 7F062CB4 24010012 */ li $at, 18 +/* 0977E8 7F062CB8 12810009 */ beq $s4, $at, .L7F062CE0 +/* 0977EC 7F062CBC 24010002 */ li $at, 2 +/* 0977F0 7F062CC0 12810007 */ beq $s4, $at, .L7F062CE0 +/* 0977F4 7F062CC4 24010003 */ li $at, 3 +/* 0977F8 7F062CC8 12810005 */ beq $s4, $at, .L7F062CE0 +/* 0977FC 7F062CCC 24010014 */ li $at, 20 +/* 097800 7F062CD0 12810003 */ beq $s4, $at, .L7F062CE0 +/* 097804 7F062CD4 24010015 */ li $at, 21 +/* 097808 7F062CD8 56810028 */ bnel $s4, $at, .L7F062D7C +/* 09780C 7F062CDC 3C0BBC00 */ lui $t3, 0xbc00 +.L7F062CE0: +/* 097810 7F062CE0 26100008 */ addiu $s0, $s0, 8 +/* 097814 7F062CE4 3C0CBC00 */ lui $t4, (0xBC000002 >> 16) # lui $t4, 0xbc00 +/* 097818 7F062CE8 3C0D8000 */ lui $t5, (0x80000040 >> 16) # lui $t5, 0x8000 +/* 09781C 7F062CEC 35AD0040 */ ori $t5, (0x80000040 & 0xFFFF) # ori $t5, $t5, 0x40 +/* 097820 7F062CF0 358C0002 */ ori $t4, (0xBC000002 & 0xFFFF) # ori $t4, $t4, 2 +/* 097824 7F062CF4 02001825 */ move $v1, $s0 +/* 097828 7F062CF8 26100008 */ addiu $s0, $s0, 8 +/* 09782C 7F062CFC AC4C0000 */ sw $t4, ($v0) +/* 097830 7F062D00 AC4D0004 */ sw $t5, 4($v0) +/* 097834 7F062D04 3C0E0386 */ lui $t6, (0x03860010 >> 16) # lui $t6, 0x386 +/* 097838 7F062D08 3C198003 */ lui $t9, %hi(D_80032448) +/* 09783C 7F062D0C 27392448 */ addiu $t9, %lo(D_80032448) # addiu $t9, $t9, 0x2448 +/* 097840 7F062D10 35CE0010 */ ori $t6, (0x03860010 & 0xFFFF) # ori $t6, $t6, 0x10 +/* 097844 7F062D14 02002025 */ move $a0, $s0 +/* 097848 7F062D18 AC6E0000 */ sw $t6, ($v1) +/* 09784C 7F062D1C AC790004 */ sw $t9, 4($v1) +/* 097850 7F062D20 3C180388 */ lui $t8, (0x03880010 >> 16) # lui $t8, 0x388 +/* 097854 7F062D24 3C088003 */ lui $t0, %hi(D_80032440) +/* 097858 7F062D28 25082440 */ addiu $t0, %lo(D_80032440) # addiu $t0, $t0, 0x2440 +/* 09785C 7F062D2C 37180010 */ ori $t8, (0x03880010 & 0xFFFF) # ori $t8, $t8, 0x10 +/* 097860 7F062D30 26100008 */ addiu $s0, $s0, 8 +/* 097864 7F062D34 3C0F0384 */ lui $t7, (0x03840010 >> 16) # lui $t7, 0x384 +/* 097868 7F062D38 AC980000 */ sw $t8, ($a0) +/* 09786C 7F062D3C AC880004 */ sw $t0, 4($a0) +/* 097870 7F062D40 35EF0010 */ ori $t7, (0x03840010 & 0xFFFF) # ori $t7, $t7, 0x10 +/* 097874 7F062D44 02008825 */ move $s1, $s0 +/* 097878 7F062D48 AE2F0000 */ sw $t7, ($s1) +/* 09787C 7F062D4C 0FC1E11D */ jal sub_GAME_7F078474 +/* 097880 7F062D50 26100008 */ addiu $s0, $s0, 8 +/* 097884 7F062D54 3C090382 */ lui $t1, (0x03820010 >> 16) # lui $t1, 0x382 +/* 097888 7F062D58 35290010 */ ori $t1, (0x03820010 & 0xFFFF) # ori $t1, $t1, 0x10 +/* 09788C 7F062D5C AE220004 */ sw $v0, 4($s1) +/* 097890 7F062D60 02009025 */ move $s2, $s0 +/* 097894 7F062D64 AE490000 */ sw $t1, ($s2) +/* 097898 7F062D68 0FC1E11D */ jal sub_GAME_7F078474 +/* 09789C 7F062D6C 26100008 */ addiu $s0, $s0, 8 +/* 0978A0 7F062D70 244A0010 */ addiu $t2, $v0, 0x10 +/* 0978A4 7F062D74 AE4A0004 */ sw $t2, 4($s2) +/* 0978A8 7F062D78 3C0BBC00 */ lui $t3, (0xBC00000E >> 16) # lui $t3, 0xbc00 +.L7F062D7C: +/* 0978AC 7F062D7C 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0978B0 7F062D80 44817000 */ mtc1 $at, $f14 +/* 0978B4 7F062D84 356B000E */ ori $t3, (0xBC00000E & 0xFFFF) # ori $t3, $t3, 0xe +/* 0978B8 7F062D88 02008825 */ move $s1, $s0 +/* 0978BC 7F062D8C 44806000 */ mtc1 $zero, $f12 +/* 0978C0 7F062D90 AE2B0000 */ sw $t3, ($s1) +/* 0978C4 7F062D94 0FC1665F */ jal sub_GAME_7F05997C +/* 0978C8 7F062D98 26100008 */ addiu $s0, $s0, 8 +/* 0978CC 7F062D9C AE220004 */ sw $v0, 4($s1) +/* 0978D0 7F062DA0 8E630300 */ lw $v1, 0x300($s3) +/* 0978D4 7F062DA4 846C000C */ lh $t4, 0xc($v1) +/* 0978D8 7F062DA8 29810011 */ slti $at, $t4, 0x11 +/* 0978DC 7F062DAC 5420002D */ bnezl $at, .L7F062E64 +/* 0978E0 7F062DB0 8FC20000 */ lw $v0, ($fp) +/* 0978E4 7F062DB4 8C620008 */ lw $v0, 8($v1) +/* 0978E8 7F062DB8 267102F8 */ addiu $s1, $s3, 0x2f8 +/* 0978EC 7F062DBC 02202025 */ move $a0, $s1 +/* 0978F0 7F062DC0 8C4D0040 */ lw $t5, 0x40($v0) +/* 0978F4 7F062DC4 51A00027 */ beql $t5, $zero, .L7F062E64 +/* 0978F8 7F062DC8 8FC20000 */ lw $v0, ($fp) +/* 0978FC 7F062DCC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 097900 7F062DD0 8C450044 */ lw $a1, 0x44($v0) +/* 097904 7F062DD4 10400003 */ beqz $v0, .L7F062DE4 +/* 097908 7F062DD8 24010019 */ li $at, 25 +/* 09790C 7F062DDC 240E0001 */ li $t6, 1 +/* 097910 7F062DE0 AC4E0000 */ sw $t6, ($v0) +.L7F062DE4: +/* 097914 7F062DE4 16810013 */ bne $s4, $at, .L7F062E34 +/* 097918 7F062DE8 02202025 */ move $a0, $s1 +/* 09791C 7F062DEC 3C048007 */ lui $a0, %hi(dword_CODE_bss_80075C10) +/* 097920 7F062DF0 3C058009 */ lui $a1, %hi(crosshairimage) +/* 097924 7F062DF4 8CA5D114 */ lw $a1, %lo(crosshairimage)($a1) +/* 097928 7F062DF8 0FC127D0 */ jal save_img_index_to_obj_ani_slot +/* 09792C 7F062DFC 24845C10 */ addiu $a0, %lo(dword_CODE_bss_80075C10) # addiu $a0, $a0, 0x5c10 +/* 097930 7F062E00 8E790300 */ lw $t9, 0x300($s3) +/* 097934 7F062E04 3C068007 */ lui $a2, %hi(dword_CODE_bss_80075C10) +/* 097938 7F062E08 24080004 */ li $t0, 4 +/* 09793C 7F062E0C 8F380008 */ lw $t8, 8($t9) +/* 097940 7F062E10 24C65C10 */ addiu $a2, %lo(dword_CODE_bss_80075C10) # addiu $a2, $a2, 0x5c10 +/* 097944 7F062E14 02202025 */ move $a0, $s1 +/* 097948 7F062E18 8F050040 */ lw $a1, 0x40($t8) +/* 09794C 7F062E1C AFA80014 */ sw $t0, 0x14($sp) +/* 097950 7F062E20 AFA00010 */ sw $zero, 0x10($sp) +/* 097954 7F062E24 0FC127D2 */ jal process_monitor_animation_microcode +/* 097958 7F062E28 02003825 */ move $a3, $s0 +/* 09795C 7F062E2C 1000000C */ b .L7F062E60 +/* 097960 7F062E30 00408025 */ move $s0, $v0 +.L7F062E34: +/* 097964 7F062E34 8E6F0300 */ lw $t7, 0x300($s3) +/* 097968 7F062E38 3C068007 */ lui $a2, %hi(dword_CODE_bss_80075C88) +/* 09796C 7F062E3C 240A0001 */ li $t2, 1 +/* 097970 7F062E40 8DE90008 */ lw $t1, 8($t7) +/* 097974 7F062E44 24C65C88 */ addiu $a2, %lo(dword_CODE_bss_80075C88) # addiu $a2, $a2, 0x5c88 +/* 097978 7F062E48 02003825 */ move $a3, $s0 +/* 09797C 7F062E4C 8D250040 */ lw $a1, 0x40($t1) +/* 097980 7F062E50 AFAA0014 */ sw $t2, 0x14($sp) +/* 097984 7F062E54 0FC127D2 */ jal process_monitor_animation_microcode +/* 097988 7F062E58 AFA00010 */ sw $zero, 0x10($sp) +/* 09798C 7F062E5C 00408025 */ move $s0, $v0 +.L7F062E60: +/* 097990 7F062E60 8FC20000 */ lw $v0, ($fp) +.L7F062E64: +/* 097994 7F062E64 240B0004 */ li $t3, 4 +/* 097998 7F062E68 AFB00098 */ sw $s0, 0x98($sp) +/* 09799C 7F062E6C AFAB00BC */ sw $t3, 0xbc($sp) +/* 0979A0 7F062E70 904D0FDC */ lbu $t5, 0xfdc($v0) +/* 0979A4 7F062E74 90580FDD */ lbu $t8, 0xfdd($v0) +/* 0979A8 7F062E78 904C0FDF */ lbu $t4, 0xfdf($v0) +/* 0979AC 7F062E7C 90490FDE */ lbu $t1, 0xfde($v0) +/* 0979B0 7F062E80 000D7600 */ sll $t6, $t5, 0x18 +/* 0979B4 7F062E84 00184400 */ sll $t0, $t8, 0x10 +/* 0979B8 7F062E88 018EC825 */ or $t9, $t4, $t6 +/* 0979BC 7F062E8C 03287825 */ or $t7, $t9, $t0 +/* 0979C0 7F062E90 00095200 */ sll $t2, $t1, 8 +/* 0979C4 7F062E94 01EA5825 */ or $t3, $t7, $t2 +/* 0979C8 7F062E98 AFAB00C0 */ sw $t3, 0xc0($sp) +/* 0979CC 7F062E9C AFA00090 */ sw $zero, 0x90($sp) +/* 0979D0 7F062EA0 0FC16319 */ jal sub_GAME_7F058C64 +/* 0979D4 7F062EA4 267102F8 */ addiu $s1, $s3, 0x2f8 +/* 0979D8 7F062EA8 24010019 */ li $at, 25 +/* 0979DC 7F062EAC 56810011 */ bnel $s4, $at, .L7F062EF4 +/* 0979E0 7F062EB0 02802025 */ move $a0, $s4 +/* 0979E4 7F062EB4 8E620220 */ lw $v0, 0x220($s3) +/* 0979E8 7F062EB8 5040000E */ beql $v0, $zero, .L7F062EF4 +/* 0979EC 7F062EBC 02802025 */ move $a0, $s4 +/* 0979F0 7F062EC0 8C500014 */ lw $s0, 0x14($v0) +/* 0979F4 7F062EC4 02E02025 */ move $a0, $s7 +/* 0979F8 7F062EC8 0FC1D1A1 */ jal subdraw +/* 0979FC 7F062ECC 02002825 */ move $a1, $s0 +/* 097A00 7F062ED0 8E0D0008 */ lw $t5, 8($s0) +/* 097A04 7F062ED4 8E04000C */ lw $a0, 0xc($s0) +/* 097A08 7F062ED8 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 097A0C 7F062EDC 85A5000E */ lh $a1, 0xe($t5) +/* 097A10 7F062EE0 8E6C0224 */ lw $t4, 0x224($s3) +/* 097A14 7F062EE4 51800003 */ beql $t4, $zero, .L7F062EF4 +/* 097A18 7F062EE8 02802025 */ move $a0, $s4 +/* 097A1C 7F062EEC AE600220 */ sw $zero, 0x220($s3) +/* 097A20 7F062EF0 02802025 */ move $a0, $s4 +.L7F062EF4: +/* 097A24 7F062EF4 0FC1782D */ jal bondwalkItemCheckBitflags +/* 097A28 7F062EF8 24050400 */ li $a1, 1024 +/* 097A2C 7F062EFC 1040000E */ beqz $v0, .L7F062F38 +/* 097A30 7F062F00 02E02025 */ move $a0, $s7 +/* 097A34 7F062F04 8FAE0098 */ lw $t6, 0x98($sp) +/* 097A38 7F062F08 3C19B600 */ lui $t9, 0xb600 +/* 097A3C 7F062F0C 24083000 */ li $t0, 12288 +/* 097A40 7F062F10 25D80008 */ addiu $t8, $t6, 8 +/* 097A44 7F062F14 AFB80098 */ sw $t8, 0x98($sp) +/* 097A48 7F062F18 ADC80004 */ sw $t0, 4($t6) +/* 097A4C 7F062F1C 16A00004 */ bnez $s5, .L7F062F30 +/* 097A50 7F062F20 ADD90000 */ sw $t9, ($t6) +/* 097A54 7F062F24 24090003 */ li $t1, 3 +/* 097A58 7F062F28 10000003 */ b .L7F062F38 +/* 097A5C 7F062F2C AFA900C8 */ sw $t1, 0xc8($sp) +.L7F062F30: +/* 097A60 7F062F30 240F0002 */ li $t7, 2 +/* 097A64 7F062F34 AFAF00C8 */ sw $t7, 0xc8($sp) +.L7F062F38: +/* 097A68 7F062F38 0FC1D1A1 */ jal subdraw +/* 097A6C 7F062F3C 02202825 */ move $a1, $s1 +/* 097A70 7F062F40 8FB00098 */ lw $s0, 0x98($sp) +/* 097A74 7F062F44 02802025 */ move $a0, $s4 +/* 097A78 7F062F48 0FC1782D */ jal bondwalkItemCheckBitflags +/* 097A7C 7F062F4C 24050400 */ li $a1, 1024 +/* 097A80 7F062F50 10400006 */ beqz $v0, .L7F062F6C +/* 097A84 7F062F54 3C0AB600 */ lui $t2, 0xb600 +/* 097A88 7F062F58 02001025 */ move $v0, $s0 +/* 097A8C 7F062F5C 240B3000 */ li $t3, 12288 +/* 097A90 7F062F60 AC4B0004 */ sw $t3, 4($v0) +/* 097A94 7F062F64 AC4A0000 */ sw $t2, ($v0) +/* 097A98 7F062F68 26100008 */ addiu $s0, $s0, 8 +.L7F062F6C: +/* 097A9C 7F062F6C 8E6D0300 */ lw $t5, 0x300($s3) +/* 097AA0 7F062F70 8E640304 */ lw $a0, 0x304($s3) +/* 097AA4 7F062F74 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 097AA8 7F062F78 85A5000E */ lh $a1, 0xe($t5) +/* 097AAC 7F062F7C 0FC16322 */ jal sub_GAME_7F058C88 +/* 097AB0 7F062F80 00000000 */ nop +/* 097AB4 7F062F84 3C0CBC00 */ lui $t4, (0xBC00000E >> 16) # lui $t4, 0xbc00 +/* 097AB8 7F062F88 358C000E */ ori $t4, (0xBC00000E & 0xFFFF) # ori $t4, $t4, 0xe +/* 097ABC 7F062F8C 02008825 */ move $s1, $s0 +/* 097AC0 7F062F90 AE2C0000 */ sw $t4, ($s1) +/* 097AC4 7F062F94 0C000F13 */ jal get_80060824 +/* 097AC8 7F062F98 26100008 */ addiu $s0, $s0, 8 +/* 097ACC 7F062F9C 24010017 */ li $at, 23 +/* 097AD0 7F062FA0 16810006 */ bne $s4, $at, .L7F062FBC +/* 097AD4 7F062FA4 AE220004 */ sw $v0, 4($s1) +/* 097AD8 7F062FA8 02002025 */ move $a0, $s0 +/* 097ADC 7F062FAC 266501E4 */ addiu $a1, $s3, 0x1e4 +/* 097AE0 7F062FB0 0FC18786 */ jal sub_GAME_7F061E18 +/* 097AE4 7F062FB4 00003025 */ move $a2, $zero +/* 097AE8 7F062FB8 00408025 */ move $s0, $v0 +.L7F062FBC: +/* 097AEC 7F062FBC 26B50001 */ addiu $s5, $s5, 1 +.L7F062FC0: +/* 097AF0 7F062FC0 24010002 */ li $at, 2 +/* 097AF4 7F062FC4 16A1FF28 */ bne $s5, $at, .L7F062C68 +/* 097AF8 7F062FC8 26D603A8 */ addiu $s6, $s6, 0x3a8 +/* 097AFC 7F062FCC 8FAE00D0 */ lw $t6, 0xd0($sp) +/* 097B00 7F062FD0 ADD00000 */ sw $s0, ($t6) +/* 097B04 7F062FD4 8FBF0044 */ lw $ra, 0x44($sp) +/* 097B08 7F062FD8 8FBE0040 */ lw $fp, 0x40($sp) +/* 097B0C 7F062FDC 8FB7003C */ lw $s7, 0x3c($sp) +/* 097B10 7F062FE0 8FB60038 */ lw $s6, 0x38($sp) +/* 097B14 7F062FE4 8FB50034 */ lw $s5, 0x34($sp) +/* 097B18 7F062FE8 8FB40030 */ lw $s4, 0x30($sp) +/* 097B1C 7F062FEC 8FB3002C */ lw $s3, 0x2c($sp) +/* 097B20 7F062FF0 8FB20028 */ lw $s2, 0x28($sp) +/* 097B24 7F062FF4 8FB10024 */ lw $s1, 0x24($sp) +/* 097B28 7F062FF8 8FB00020 */ lw $s0, 0x20($sp) +/* 097B2C 7F062FFC 03E00008 */ jr $ra +/* 097B30 7F063000 27BD00D0 */ addiu $sp, $sp, 0xd0 +) +#endif + + + + + +#ifdef NONMATCHING +void set_enviro_fog_for_items_in_solo_watch_menu(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_enviro_fog_for_items_in_solo_watch_menu +/* 097B34 7F063004 27BDFE68 */ addiu $sp, $sp, -0x198 +/* 097B38 7F063008 3C0F8003 */ lui $t7, %hi(D_80035D00) +/* 097B3C 7F06300C 25EF5D00 */ addiu $t7, %lo(D_80035D00) # addiu $t7, $t7, 0x5d00 +/* 097B40 7F063010 AFBF0024 */ sw $ra, 0x24($sp) +/* 097B44 7F063014 AFB30020 */ sw $s3, 0x20($sp) +/* 097B48 7F063018 AFB2001C */ sw $s2, 0x1c($sp) +/* 097B4C 7F06301C AFB10018 */ sw $s1, 0x18($sp) +/* 097B50 7F063020 AFB00014 */ sw $s0, 0x14($sp) +/* 097B54 7F063024 AFA40198 */ sw $a0, 0x198($sp) +/* 097B58 7F063028 AFA601A0 */ sw $a2, 0x1a0($sp) +/* 097B5C 7F06302C AFA701A4 */ sw $a3, 0x1a4($sp) +/* 097B60 7F063030 25E8003C */ addiu $t0, $t7, 0x3c +/* 097B64 7F063034 27AE0158 */ addiu $t6, $sp, 0x158 +.L7F063038: +/* 097B68 7F063038 8DE10000 */ lw $at, ($t7) +/* 097B6C 7F06303C 25EF000C */ addiu $t7, $t7, 0xc +/* 097B70 7F063040 25CE000C */ addiu $t6, $t6, 0xc +/* 097B74 7F063044 ADC1FFF4 */ sw $at, -0xc($t6) +/* 097B78 7F063048 8DE1FFF8 */ lw $at, -8($t7) +/* 097B7C 7F06304C ADC1FFF8 */ sw $at, -8($t6) +/* 097B80 7F063050 8DE1FFFC */ lw $at, -4($t7) +/* 097B84 7F063054 15E8FFF8 */ bne $t7, $t0, .L7F063038 +/* 097B88 7F063058 ADC1FFFC */ sw $at, -4($t6) +/* 097B8C 7F06305C 8DE10000 */ lw $at, ($t7) +/* 097B90 7F063060 00002025 */ move $a0, $zero +/* 097B94 7F063064 ADC10000 */ sw $at, ($t6) +/* 097B98 7F063068 2401001E */ li $at, 30 +/* 097B9C 7F06306C 10A10003 */ beq $a1, $at, .L7F06307C +/* 097BA0 7F063070 24010017 */ li $at, 23 +/* 097BA4 7F063074 14A10002 */ bne $a1, $at, .L7F063080 +/* 097BA8 7F063078 00000000 */ nop +.L7F06307C: +/* 097BAC 7F06307C 2405003C */ li $a1, 60 +.L7F063080: +/* 097BB0 7F063080 0FC176A3 */ jal sub_GAME_7F05DA8C +/* 097BB4 7F063084 AFA5019C */ sw $a1, 0x19c($sp) +/* 097BB8 7F063088 0FC173AF */ jal sub_GAME_7F05CEBC +/* 097BBC 7F06308C 00002025 */ move $a0, $zero +/* 097BC0 7F063090 10400005 */ beqz $v0, .L7F0630A8 +/* 097BC4 7F063094 00000000 */ nop +/* 097BC8 7F063098 0FC173C0 */ jal get_itemtype_in_hand +/* 097BCC 7F06309C 00002025 */ move $a0, $zero +/* 097BD0 7F0630A0 14400003 */ bnez $v0, .L7F0630B0 +/* 097BD4 7F0630A4 3C128008 */ lui $s2, %hi(pPlayer) +.L7F0630A8: +/* 097BD8 7F0630A8 10000104 */ b .L7F0634BC +/* 097BDC 7F0630AC 8FA20198 */ lw $v0, 0x198($sp) +.L7F0630B0: +/* 097BE0 7F0630B0 8E52A0B0 */ lw $s2, %lo(pPlayer)($s2) +/* 097BE4 7F0630B4 8FA4019C */ lw $a0, 0x19c($sp) +/* 097BE8 7F0630B8 0FC17412 */ jal get_ptr_weapon_model_header_line +/* 097BEC 7F0630BC 26520810 */ addiu $s2, $s2, 0x810 +/* 097BF0 7F0630C0 104000FD */ beqz $v0, .L7F0634B8 +/* 097BF4 7F0630C4 8FA4019C */ lw $a0, 0x19c($sp) +/* 097BF8 7F0630C8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 097BFC 7F0630CC 24054000 */ li $a1, 16384 +/* 097C00 7F0630D0 544000FA */ bnezl $v0, .L7F0634BC +/* 097C04 7F0630D4 8FA20198 */ lw $v0, 0x198($sp) +/* 097C08 7F0630D8 8644000E */ lh $a0, 0xe($s2) +/* 097C0C 7F0630DC 00044980 */ sll $t1, $a0, 6 +/* 097C10 7F0630E0 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 097C14 7F0630E4 01202025 */ move $a0, $t1 +/* 097C18 7F0630E8 864A000E */ lh $t2, 0xe($s2) +/* 097C1C 7F0630EC 00408025 */ move $s0, $v0 +/* 097C20 7F0630F0 00008825 */ move $s1, $zero +/* 097C24 7F0630F4 19400009 */ blez $t2, .L7F06311C +/* 097C28 7F0630F8 00115980 */ sll $t3, $s1, 6 +.L7F0630FC: +/* 097C2C 7F0630FC 0FC15FF4 */ jal matrix_4x4_set_identity +/* 097C30 7F063100 01702021 */ addu $a0, $t3, $s0 +/* 097C34 7F063104 864C000E */ lh $t4, 0xe($s2) +/* 097C38 7F063108 26310001 */ addiu $s1, $s1, 1 +/* 097C3C 7F06310C 022C082A */ slt $at, $s1, $t4 +/* 097C40 7F063110 5420FFFA */ bnezl $at, .L7F0630FC +/* 097C44 7F063114 00115980 */ sll $t3, $s1, 6 +/* 097C48 7F063118 00008825 */ move $s1, $zero +.L7F06311C: +/* 097C4C 7F06311C AFB00144 */ sw $s0, 0x144($sp) +/* 097C50 7F063120 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 097C54 7F063124 02402025 */ move $a0, $s2 +/* 097C58 7F063128 27B30138 */ addiu $s3, $sp, 0x138 +/* 097C5C 7F06312C 02602025 */ move $a0, $s3 +/* 097C60 7F063130 02402825 */ move $a1, $s2 +/* 097C64 7F063134 0FC1D7DA */ jal sub_GAME_7F075F68 +/* 097C68 7F063138 27A600B8 */ addiu $a2, $sp, 0xb8 +/* 097C6C 7F06313C 02602025 */ move $a0, $s3 +/* 097C70 7F063140 0FC17A5E */ jal sub_GAME_7F05E978 +/* 097C74 7F063144 00002825 */ move $a1, $zero +/* 097C78 7F063148 02602025 */ move $a0, $s3 +/* 097C7C 7F06314C 0FC17AA5 */ jal sub_GAME_7F05EA94 +/* 097C80 7F063150 24050001 */ li $a1, 1 +/* 097C84 7F063154 8E4D0008 */ lw $t5, 8($s2) +/* 097C88 7F063158 8DA50004 */ lw $a1, 4($t5) +/* 097C8C 7F06315C 50A00007 */ beql $a1, $zero, .L7F06317C +/* 097C90 7F063160 8FA401A0 */ lw $a0, 0x1a0($sp) +/* 097C94 7F063164 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 097C98 7F063168 02602025 */ move $a0, $s3 +/* 097C9C 7F06316C 50400003 */ beql $v0, $zero, .L7F06317C +/* 097CA0 7F063170 8FA401A0 */ lw $a0, 0x1a0($sp) +/* 097CA4 7F063174 AC400000 */ sw $zero, ($v0) +/* 097CA8 7F063178 8FA401A0 */ lw $a0, 0x1a0($sp) +.L7F06317C: +/* 097CAC 7F06317C 0FC16008 */ jal matrix_4x4_copy +/* 097CB0 7F063180 02002825 */ move $a1, $s0 +/* 097CB4 7F063184 8E580004 */ lw $t8, 4($s2) +/* 097CB8 7F063188 3C198004 */ lui $t9, %hi(weapon_gun_revolver) +/* 097CBC 7F06318C 2739C76C */ addiu $t9, %lo(weapon_gun_revolver) # addiu $t9, $t9, -0x3894 +/* 097CC0 7F063190 57380018 */ bnel $t9, $t8, .L7F0631F4 +/* 097CC4 7F063194 8E420008 */ lw $v0, 8($s2) +/* 097CC8 7F063198 8E420008 */ lw $v0, 8($s2) +/* 097CCC 7F06319C 27A50074 */ addiu $a1, $sp, 0x74 +/* 097CD0 7F0631A0 8C430010 */ lw $v1, 0x10($v0) +/* 097CD4 7F0631A4 50600009 */ beql $v1, $zero, .L7F0631CC +/* 097CD8 7F0631A8 8C430014 */ lw $v1, 0x14($v0) +/* 097CDC 7F0631AC 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 097CE0 7F0631B0 8C640004 */ lw $a0, 4($v1) +/* 097CE4 7F0631B4 8FA401A0 */ lw $a0, 0x1a0($sp) +/* 097CE8 7F0631B8 27A50074 */ addiu $a1, $sp, 0x74 +/* 097CEC 7F0631BC 0FC16032 */ jal matrix_4x4_multiply +/* 097CF0 7F0631C0 260600C0 */ addiu $a2, $s0, 0xc0 +/* 097CF4 7F0631C4 8E420008 */ lw $v0, 8($s2) +/* 097CF8 7F0631C8 8C430014 */ lw $v1, 0x14($v0) +.L7F0631CC: +/* 097CFC 7F0631CC 27A50074 */ addiu $a1, $sp, 0x74 +/* 097D00 7F0631D0 50600008 */ beql $v1, $zero, .L7F0631F4 +/* 097D04 7F0631D4 8E420008 */ lw $v0, 8($s2) +/* 097D08 7F0631D8 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 097D0C 7F0631DC 8C640004 */ lw $a0, 4($v1) +/* 097D10 7F0631E0 8FA401A0 */ lw $a0, 0x1a0($sp) +/* 097D14 7F0631E4 27A50074 */ addiu $a1, $sp, 0x74 +/* 097D18 7F0631E8 0FC16032 */ jal matrix_4x4_multiply +/* 097D1C 7F0631EC 26060100 */ addiu $a2, $s0, 0x100 +/* 097D20 7F0631F0 8E420008 */ lw $v0, 8($s2) +.L7F0631F4: +/* 097D24 7F0631F4 8C440018 */ lw $a0, 0x18($v0) +/* 097D28 7F0631F8 50800011 */ beql $a0, $zero, .L7F063240 +/* 097D2C 7F0631FC 8C44001C */ lw $a0, 0x1c($v0) +/* 097D30 7F063200 8C880004 */ lw $t0, 4($a0) +/* 097D34 7F063204 00002825 */ move $a1, $zero +/* 097D38 7F063208 0FC1B15C */ jal sub_GAME_7F06C570 +/* 097D3C 7F06320C AFA8005C */ sw $t0, 0x5c($sp) +/* 097D40 7F063210 AFA20058 */ sw $v0, 0x58($sp) +/* 097D44 7F063214 8FA4005C */ lw $a0, 0x5c($sp) +/* 097D48 7F063218 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 097D4C 7F06321C 27A50074 */ addiu $a1, $sp, 0x74 +/* 097D50 7F063220 8FAF0058 */ lw $t7, 0x58($sp) +/* 097D54 7F063224 8FA401A0 */ lw $a0, 0x1a0($sp) +/* 097D58 7F063228 27A50074 */ addiu $a1, $sp, 0x74 +/* 097D5C 7F06322C 000F7180 */ sll $t6, $t7, 6 +/* 097D60 7F063230 0FC16032 */ jal matrix_4x4_multiply +/* 097D64 7F063234 01D03021 */ addu $a2, $t6, $s0 +/* 097D68 7F063238 8E420008 */ lw $v0, 8($s2) +/* 097D6C 7F06323C 8C44001C */ lw $a0, 0x1c($v0) +.L7F063240: +/* 097D70 7F063240 50800010 */ beql $a0, $zero, .L7F063284 +/* 097D74 7F063244 864C000C */ lh $t4, 0xc($s2) +/* 097D78 7F063248 8C890004 */ lw $t1, 4($a0) +/* 097D7C 7F06324C 00002825 */ move $a1, $zero +/* 097D80 7F063250 0FC1B15C */ jal sub_GAME_7F06C570 +/* 097D84 7F063254 AFA90054 */ sw $t1, 0x54($sp) +/* 097D88 7F063258 AFA20050 */ sw $v0, 0x50($sp) +/* 097D8C 7F06325C 8FA40054 */ lw $a0, 0x54($sp) +/* 097D90 7F063260 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 097D94 7F063264 27A50074 */ addiu $a1, $sp, 0x74 +/* 097D98 7F063268 8FAA0050 */ lw $t2, 0x50($sp) +/* 097D9C 7F06326C 8FA401A0 */ lw $a0, 0x1a0($sp) +/* 097DA0 7F063270 27A50074 */ addiu $a1, $sp, 0x74 +/* 097DA4 7F063274 000A5980 */ sll $t3, $t2, 6 +/* 097DA8 7F063278 0FC16032 */ jal matrix_4x4_multiply +/* 097DAC 7F06327C 01703021 */ addu $a2, $t3, $s0 +/* 097DB0 7F063280 864C000C */ lh $t4, 0xc($s2) +.L7F063284: +/* 097DB4 7F063284 00008025 */ move $s0, $zero +/* 097DB8 7F063288 29810013 */ slti $at, $t4, 0x13 +/* 097DBC 7F06328C 14200019 */ bnez $at, .L7F0632F4 +/* 097DC0 7F063290 00000000 */ nop +/* 097DC4 7F063294 8E4D0008 */ lw $t5, 8($s2) +.L7F063298: +/* 097DC8 7F063298 01B0C821 */ addu $t9, $t5, $s0 +/* 097DCC 7F06329C 8F250048 */ lw $a1, 0x48($t9) +/* 097DD0 7F0632A0 50A00007 */ beql $a1, $zero, .L7F0632C0 +/* 097DD4 7F0632A4 8E480008 */ lw $t0, 8($s2) +/* 097DD8 7F0632A8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 097DDC 7F0632AC 02602025 */ move $a0, $s3 +/* 097DE0 7F0632B0 10400002 */ beqz $v0, .L7F0632BC +/* 097DE4 7F0632B4 24180001 */ li $t8, 1 +/* 097DE8 7F0632B8 AC580000 */ sw $t8, ($v0) +.L7F0632BC: +/* 097DEC 7F0632BC 8E480008 */ lw $t0, 8($s2) +.L7F0632C0: +/* 097DF0 7F0632C0 01107821 */ addu $t7, $t0, $s0 +/* 097DF4 7F0632C4 8DE5005C */ lw $a1, 0x5c($t7) +/* 097DF8 7F0632C8 50A00007 */ beql $a1, $zero, .L7F0632E8 +/* 097DFC 7F0632CC 26100004 */ addiu $s0, $s0, 4 +/* 097E00 7F0632D0 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 097E04 7F0632D4 02602025 */ move $a0, $s3 +/* 097E08 7F0632D8 10400002 */ beqz $v0, .L7F0632E4 +/* 097E0C 7F0632DC 240E0001 */ li $t6, 1 +/* 097E10 7F0632E0 AC4E0000 */ sw $t6, ($v0) +.L7F0632E4: +/* 097E14 7F0632E4 26100004 */ addiu $s0, $s0, 4 +.L7F0632E8: +/* 097E18 7F0632E8 24010014 */ li $at, 20 +/* 097E1C 7F0632EC 5601FFEA */ bnel $s0, $at, .L7F063298 +/* 097E20 7F0632F0 8E4D0008 */ lw $t5, 8($s2) +.L7F0632F4: +/* 097E24 7F0632F4 0FC1BBF1 */ jal sub_GAME_7F06EFC4 +/* 097E28 7F0632F8 02602025 */ move $a0, $s3 +/* 097E2C 7F0632FC 8FA2019C */ lw $v0, 0x19c($sp) +/* 097E30 7F063300 24010013 */ li $at, 19 +/* 097E34 7F063304 3C09BC00 */ lui $t1, (0xBC000002 >> 16) # lui $t1, 0xbc00 +/* 097E38 7F063308 1041000C */ beq $v0, $at, .L7F06333C +/* 097E3C 7F06330C 35290002 */ ori $t1, (0xBC000002 & 0xFFFF) # ori $t1, $t1, 2 +/* 097E40 7F063310 24010012 */ li $at, 18 +/* 097E44 7F063314 10410009 */ beq $v0, $at, .L7F06333C +/* 097E48 7F063318 24010002 */ li $at, 2 +/* 097E4C 7F06331C 10410007 */ beq $v0, $at, .L7F06333C +/* 097E50 7F063320 24010003 */ li $at, 3 +/* 097E54 7F063324 10410005 */ beq $v0, $at, .L7F06333C +/* 097E58 7F063328 24010014 */ li $at, 20 +/* 097E5C 7F06332C 10410003 */ beq $v0, $at, .L7F06333C +/* 097E60 7F063330 24010015 */ li $at, 21 +/* 097E64 7F063334 54410028 */ bnel $v0, $at, .L7F0633D8 +/* 097E68 7F063338 864A000C */ lh $t2, 0xc($s2) +.L7F06333C: +/* 097E6C 7F06333C 8FA20198 */ lw $v0, 0x198($sp) +/* 097E70 7F063340 3C0A8000 */ lui $t2, (0x80000040 >> 16) # lui $t2, 0x8000 +/* 097E74 7F063344 354A0040 */ ori $t2, (0x80000040 & 0xFFFF) # ori $t2, $t2, 0x40 +/* 097E78 7F063348 24430008 */ addiu $v1, $v0, 8 +/* 097E7C 7F06334C 3C0B0386 */ lui $t3, (0x03860010 >> 16) # lui $t3, 0x386 +/* 097E80 7F063350 3C0C8003 */ lui $t4, %hi(D_80032448) +/* 097E84 7F063354 AC4A0004 */ sw $t2, 4($v0) +/* 097E88 7F063358 AC490000 */ sw $t1, ($v0) +/* 097E8C 7F06335C 258C2448 */ addiu $t4, %lo(D_80032448) # addiu $t4, $t4, 0x2448 +/* 097E90 7F063360 356B0010 */ ori $t3, (0x03860010 & 0xFFFF) # ori $t3, $t3, 0x10 +/* 097E94 7F063364 24640008 */ addiu $a0, $v1, 8 +/* 097E98 7F063368 AC6B0000 */ sw $t3, ($v1) +/* 097E9C 7F06336C AC6C0004 */ sw $t4, 4($v1) +/* 097EA0 7F063370 3C0D0388 */ lui $t5, (0x03880010 >> 16) # lui $t5, 0x388 +/* 097EA4 7F063374 3C198003 */ lui $t9, %hi(D_80032440) +/* 097EA8 7F063378 27392440 */ addiu $t9, %lo(D_80032440) # addiu $t9, $t9, 0x2440 +/* 097EAC 7F06337C 35AD0010 */ ori $t5, (0x03880010 & 0xFFFF) # ori $t5, $t5, 0x10 +/* 097EB0 7F063380 24900008 */ addiu $s0, $a0, 8 +/* 097EB4 7F063384 3C180384 */ lui $t8, (0x03840010 >> 16) # lui $t8, 0x384 +/* 097EB8 7F063388 AC8D0000 */ sw $t5, ($a0) +/* 097EBC 7F06338C AC990004 */ sw $t9, 4($a0) +/* 097EC0 7F063390 37180010 */ ori $t8, (0x03840010 & 0xFFFF) # ori $t8, $t8, 0x10 +/* 097EC4 7F063394 AE180000 */ sw $t8, ($s0) +/* 097EC8 7F063398 26050008 */ addiu $a1, $s0, 8 +/* 097ECC 7F06339C 0FC1E11D */ jal sub_GAME_7F078474 +/* 097ED0 7F0633A0 AFA50198 */ sw $a1, 0x198($sp) +/* 097ED4 7F0633A4 AE020004 */ sw $v0, 4($s0) +/* 097ED8 7F0633A8 8FA80198 */ lw $t0, 0x198($sp) +/* 097EDC 7F0633AC 3C0E0382 */ lui $t6, (0x03820010 >> 16) # lui $t6, 0x382 +/* 097EE0 7F0633B0 35CE0010 */ ori $t6, (0x03820010 & 0xFFFF) # ori $t6, $t6, 0x10 +/* 097EE4 7F0633B4 250F0008 */ addiu $t7, $t0, 8 +/* 097EE8 7F0633B8 AFAF0198 */ sw $t7, 0x198($sp) +/* 097EEC 7F0633BC AD0E0000 */ sw $t6, ($t0) +/* 097EF0 7F0633C0 0FC1E11D */ jal sub_GAME_7F078474 +/* 097EF4 7F0633C4 AFA80034 */ sw $t0, 0x34($sp) +/* 097EF8 7F0633C8 8FA30034 */ lw $v1, 0x34($sp) +/* 097EFC 7F0633CC 24490010 */ addiu $t1, $v0, 0x10 +/* 097F00 7F0633D0 AC690004 */ sw $t1, 4($v1) +/* 097F04 7F0633D4 864A000C */ lh $t2, 0xc($s2) +.L7F0633D8: +/* 097F08 7F0633D8 29410011 */ slti $at, $t2, 0x11 +/* 097F0C 7F0633DC 5420000C */ bnezl $at, .L7F063410 +/* 097F10 7F0633E0 8FA201A4 */ lw $v0, 0x1a4($sp) +/* 097F14 7F0633E4 8E420008 */ lw $v0, 8($s2) +/* 097F18 7F0633E8 02602025 */ move $a0, $s3 +/* 097F1C 7F0633EC 8C4B0040 */ lw $t3, 0x40($v0) +/* 097F20 7F0633F0 51600007 */ beql $t3, $zero, .L7F063410 +/* 097F24 7F0633F4 8FA201A4 */ lw $v0, 0x1a4($sp) +/* 097F28 7F0633F8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 097F2C 7F0633FC 8C450044 */ lw $a1, 0x44($v0) +/* 097F30 7F063400 50400003 */ beql $v0, $zero, .L7F063410 +/* 097F34 7F063404 8FA201A4 */ lw $v0, 0x1a4($sp) +/* 097F38 7F063408 AC400000 */ sw $zero, ($v0) +/* 097F3C 7F06340C 8FA201A4 */ lw $v0, 0x1a4($sp) +.L7F063410: +/* 097F40 7F063410 8FAC0198 */ lw $t4, 0x198($sp) +/* 097F44 7F063414 27A40158 */ addiu $a0, $sp, 0x158 +/* 097F48 7F063418 284100FF */ slti $at, $v0, 0xff +/* 097F4C 7F06341C 14200006 */ bnez $at, .L7F063438 +/* 097F50 7F063420 AFAC0164 */ sw $t4, 0x164($sp) +/* 097F54 7F063424 8FB901A8 */ lw $t9, 0x1a8($sp) +/* 097F58 7F063428 240D0004 */ li $t5, 4 +/* 097F5C 7F06342C AFAD0188 */ sw $t5, 0x188($sp) +/* 097F60 7F063430 10000006 */ b .L7F06344C +/* 097F64 7F063434 AFB9018C */ sw $t9, 0x18c($sp) +.L7F063438: +/* 097F68 7F063438 8FA801A8 */ lw $t0, 0x1a8($sp) +/* 097F6C 7F06343C 24180005 */ li $t8, 5 +/* 097F70 7F063440 AFB80188 */ sw $t8, 0x188($sp) +/* 097F74 7F063444 AFA2018C */ sw $v0, 0x18c($sp) +/* 097F78 7F063448 AFA80190 */ sw $t0, 0x190($sp) +.L7F06344C: +/* 097F7C 7F06344C AFA0015C */ sw $zero, 0x15c($sp) +/* 097F80 7F063450 0FC1D1A1 */ jal subdraw +/* 097F84 7F063454 02602825 */ move $a1, $s3 +/* 097F88 7F063458 8FAF0164 */ lw $t7, 0x164($sp) +/* 097F8C 7F06345C 0FC16319 */ jal sub_GAME_7F058C64 +/* 097F90 7F063460 AFAF0198 */ sw $t7, 0x198($sp) +/* 097F94 7F063464 864E000E */ lh $t6, 0xe($s2) +/* 097F98 7F063468 00008025 */ move $s0, $zero +/* 097F9C 7F06346C 19C00010 */ blez $t6, .L7F0634B0 +/* 097FA0 7F063470 00000000 */ nop +/* 097FA4 7F063474 8FA90144 */ lw $t1, 0x144($sp) +.L7F063478: +/* 097FA8 7F063478 27A50074 */ addiu $a1, $sp, 0x74 +/* 097FAC 7F06347C 0FC16008 */ jal matrix_4x4_copy +/* 097FB0 7F063480 01302021 */ addu $a0, $t1, $s0 +/* 097FB4 7F063484 8FAB0144 */ lw $t3, 0x144($sp) +/* 097FB8 7F063488 00115180 */ sll $t2, $s1, 6 +/* 097FBC 7F06348C 27A40074 */ addiu $a0, $sp, 0x74 +/* 097FC0 7F063490 0FC16327 */ jal sub_GAME_7F058C9C +/* 097FC4 7F063494 014B2821 */ addu $a1, $t2, $t3 +/* 097FC8 7F063498 864C000E */ lh $t4, 0xe($s2) +/* 097FCC 7F06349C 26310001 */ addiu $s1, $s1, 1 +/* 097FD0 7F0634A0 26100040 */ addiu $s0, $s0, 0x40 +/* 097FD4 7F0634A4 022C082A */ slt $at, $s1, $t4 +/* 097FD8 7F0634A8 5420FFF3 */ bnezl $at, .L7F063478 +/* 097FDC 7F0634AC 8FA90144 */ lw $t1, 0x144($sp) +.L7F0634B0: +/* 097FE0 7F0634B0 0FC16322 */ jal sub_GAME_7F058C88 +/* 097FE4 7F0634B4 00000000 */ nop +.L7F0634B8: +/* 097FE8 7F0634B8 8FA20198 */ lw $v0, 0x198($sp) +.L7F0634BC: +/* 097FEC 7F0634BC 8FBF0024 */ lw $ra, 0x24($sp) +/* 097FF0 7F0634C0 8FB00014 */ lw $s0, 0x14($sp) +/* 097FF4 7F0634C4 8FB10018 */ lw $s1, 0x18($sp) +/* 097FF8 7F0634C8 8FB2001C */ lw $s2, 0x1c($sp) +/* 097FFC 7F0634CC 8FB30020 */ lw $s3, 0x20($sp) +/* 098000 7F0634D0 03E00008 */ jr $ra +/* 098004 7F0634D4 27BD0198 */ addiu $sp, $sp, 0x198 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0634D8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0634D8 +/* 098008 7F0634D8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 09800C 7F0634DC AFBF001C */ sw $ra, 0x1c($sp) +/* 098010 7F0634E0 240EFF00 */ li $t6, -256 +/* 098014 7F0634E4 0FC18C01 */ jal set_enviro_fog_for_items_in_solo_watch_menu +/* 098018 7F0634E8 AFAE0010 */ sw $t6, 0x10($sp) +/* 09801C 7F0634EC 8FBF001C */ lw $ra, 0x1c($sp) +/* 098020 7F0634F0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 098024 7F0634F4 03E00008 */ jr $ra +/* 098028 7F0634F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0634FC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0634FC +/* 09802C 7F0634FC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 098030 7F063500 AFBF0014 */ sw $ra, 0x14($sp) +/* 098034 7F063504 0FC18D36 */ jal sub_GAME_7F0634D8 +/* 098038 7F063508 240700FF */ li $a3, 255 +/* 09803C 7F06350C 8FBF0014 */ lw $ra, 0x14($sp) +/* 098040 7F063510 27BD0018 */ addiu $sp, $sp, 0x18 +/* 098044 7F063514 03E00008 */ jr $ra +/* 098048 7F063518 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06351C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06351C +/* 09804C 7F06351C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 098050 7F063520 AFB00018 */ sw $s0, 0x18($sp) +/* 098054 7F063524 8FB00078 */ lw $s0, 0x78($sp) +/* 098058 7F063528 AFBF001C */ sw $ra, 0x1c($sp) +/* 09805C 7F06352C AFA50064 */ sw $a1, 0x64($sp) +/* 098060 7F063530 AFA60068 */ sw $a2, 0x68($sp) +/* 098064 7F063534 AFA7006C */ sw $a3, 0x6c($sp) +/* 098068 7F063538 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 09806C 7F06353C 02002825 */ move $a1, $s0 +/* 098070 7F063540 8FA40064 */ lw $a0, 0x64($sp) +/* 098074 7F063544 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 098078 7F063548 02002825 */ move $a1, $s0 +/* 09807C 7F06354C 8FA40068 */ lw $a0, 0x68($sp) +/* 098080 7F063550 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 098084 7F063554 02002825 */ move $a1, $s0 +/* 098088 7F063558 8FA4006C */ lw $a0, 0x6c($sp) +/* 09808C 7F06355C 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 098090 7F063560 02002825 */ move $a1, $s0 +/* 098094 7F063564 8FA40070 */ lw $a0, 0x70($sp) +/* 098098 7F063568 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 09809C 7F06356C 27A50020 */ addiu $a1, $sp, 0x20 +/* 0980A0 7F063570 27A40020 */ addiu $a0, $sp, 0x20 +/* 0980A4 7F063574 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0980A8 7F063578 02002825 */ move $a1, $s0 +/* 0980AC 7F06357C 8FA40074 */ lw $a0, 0x74($sp) +/* 0980B0 7F063580 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0980B4 7F063584 02002825 */ move $a1, $s0 +/* 0980B8 7F063588 8FBF001C */ lw $ra, 0x1c($sp) +/* 0980BC 7F06358C 8FB00018 */ lw $s0, 0x18($sp) +/* 0980C0 7F063590 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0980C4 7F063594 03E00008 */ jr $ra +/* 0980C8 7F063598 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06359C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053ED4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053ED8 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053EDC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053EE0 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053EE4 +.word 0xbf860a92 /*-1.0471976*/ +glabel D_80053EE8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053EEC +.word 0x3f19999a /*0.60000002*/ +glabel D_80053EF0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053EF4 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053EF8 +.word 0xbe32b8c3 /*-0.17453294*/ +glabel D_80053EFC +.word 0x3f860a92 /*1.0471976*/ +glabel D_80053F00 +.word 0x3e32b8c3 /*0.17453294*/ +glabel D_80053F04 +.word 0x3f860a92 /*1.0471976*/ +glabel D_80053F08 +.word 0xbe32b8c3 /*-0.17453294*/ +glabel D_80053F0C +.word 0x3e32b8c3 /*0.17453294*/ +glabel D_80053F10 +.word 0x3e32b8c3 /*0.17453294*/ +glabel D_80053F14 +.word 0xbe32b8c3 /*-0.17453294*/ +glabel D_80053F18 +.word 0xbf65c8fa /*-0.89759791*/ +glabel D_80053F1C +.word 0xbe32b8c3 /*-0.17453294*/ +glabel D_80053F20 +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F06359C +/* 0980CC 7F06359C 27BDFAC8 */ addiu $sp, $sp, -0x538 +/* 0980D0 7F0635A0 3C0F8003 */ lui $t7, %hi(D_80035D04+0x3C) +/* 0980D4 7F0635A4 AFB30054 */ sw $s3, 0x54($sp) +/* 0980D8 7F0635A8 AFB20050 */ sw $s2, 0x50($sp) +/* 0980DC 7F0635AC 25EF5D40 */ addiu $t7, %lo(D_80035D04+0x3C) # addiu $t7, $t7, 0x5d40 +/* 0980E0 7F0635B0 00C09025 */ move $s2, $a2 +/* 0980E4 7F0635B4 00E09825 */ move $s3, $a3 +/* 0980E8 7F0635B8 AFBF006C */ sw $ra, 0x6c($sp) +/* 0980EC 7F0635BC AFBE0068 */ sw $fp, 0x68($sp) +/* 0980F0 7F0635C0 AFB70064 */ sw $s7, 0x64($sp) +/* 0980F4 7F0635C4 AFB60060 */ sw $s6, 0x60($sp) +/* 0980F8 7F0635C8 AFB5005C */ sw $s5, 0x5c($sp) +/* 0980FC 7F0635CC AFB40058 */ sw $s4, 0x58($sp) +/* 098100 7F0635D0 AFB1004C */ sw $s1, 0x4c($sp) +/* 098104 7F0635D4 AFB00048 */ sw $s0, 0x48($sp) +/* 098108 7F0635D8 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 09810C 7F0635DC F7B60038 */ sdc1 $f22, 0x38($sp) +/* 098110 7F0635E0 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 098114 7F0635E4 AFA40538 */ sw $a0, 0x538($sp) +/* 098118 7F0635E8 AFA5053C */ sw $a1, 0x53c($sp) +/* 09811C 7F0635EC 25E8003C */ addiu $t0, $t7, 0x3c +/* 098120 7F0635F0 27AE04F8 */ addiu $t6, $sp, 0x4f8 +.L7F0635F4: +/* 098124 7F0635F4 8DE10000 */ lw $at, ($t7) +/* 098128 7F0635F8 25EF000C */ addiu $t7, $t7, 0xc +/* 09812C 7F0635FC 25CE000C */ addiu $t6, $t6, 0xc +/* 098130 7F063600 ADC1FFF4 */ sw $at, -0xc($t6) +/* 098134 7F063604 8DE1FFF8 */ lw $at, -8($t7) +/* 098138 7F063608 ADC1FFF8 */ sw $at, -8($t6) +/* 09813C 7F06360C 8DE1FFFC */ lw $at, -4($t7) +/* 098140 7F063610 15E8FFF8 */ bne $t7, $t0, .L7F0635F4 +/* 098144 7F063614 ADC1FFFC */ sw $at, -4($t6) +/* 098148 7F063618 8DE10000 */ lw $at, ($t7) +/* 09814C 7F06361C 00002025 */ move $a0, $zero +/* 098150 7F063620 24050055 */ li $a1, 85 +/* 098154 7F063624 0FC176A3 */ jal sub_GAME_7F05DA8C +/* 098158 7F063628 ADC10000 */ sw $at, ($t6) +/* 09815C 7F06362C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 098160 7F063630 00002025 */ move $a0, $zero +/* 098164 7F063634 10400005 */ beqz $v0, .L7F06364C +/* 098168 7F063638 00000000 */ nop +/* 09816C 7F06363C 0FC173C0 */ jal get_itemtype_in_hand +/* 098170 7F063640 00002025 */ move $a0, $zero +/* 098174 7F063644 14400003 */ bnez $v0, .L7F063654 +/* 098178 7F063648 00000000 */ nop +.L7F06364C: +/* 09817C 7F06364C 10000336 */ b .L7F064328 +/* 098180 7F063650 8FA20538 */ lw $v0, 0x538($sp) +.L7F063654: +/* 098184 7F063654 3C028008 */ lui $v0, %hi(pPlayer) +/* 098188 7F063658 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09818C 7F06365C 8444081E */ lh $a0, 0x81e($v0) +/* 098190 7F063660 24420810 */ addiu $v0, $v0, 0x810 +/* 098194 7F063664 AFA203D8 */ sw $v0, 0x3d8($sp) +/* 098198 7F063668 00044980 */ sll $t1, $a0, 6 +/* 09819C 7F06366C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 0981A0 7F063670 01202025 */ move $a0, $t1 +/* 0981A4 7F063674 0040B825 */ move $s7, $v0 +/* 0981A8 7F063678 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0981AC 7F06367C 8FA403D8 */ lw $a0, 0x3d8($sp) +/* 0981B0 7F063680 8FA503D8 */ lw $a1, 0x3d8($sp) +/* 0981B4 7F063684 27A404D8 */ addiu $a0, $sp, 0x4d8 +/* 0981B8 7F063688 0FC1D7DA */ jal sub_GAME_7F075F68 +/* 0981BC 7F06368C 27A60460 */ addiu $a2, $sp, 0x460 +/* 0981C0 7F063690 AFB704E4 */ sw $s7, 0x4e4($sp) +/* 0981C4 7F063694 8FA4053C */ lw $a0, 0x53c($sp) +/* 0981C8 7F063698 0FC16008 */ jal matrix_4x4_copy +/* 0981CC 7F06369C 02E02825 */ move $a1, $s7 +/* 0981D0 7F0636A0 240A0004 */ li $t2, 4 +/* 0981D4 7F0636A4 AFAA0070 */ sw $t2, 0x70($sp) +/* 0981D8 7F0636A8 24110001 */ li $s1, 1 +/* 0981DC 7F0636AC 8FB4054C */ lw $s4, 0x54c($sp) +.L7F0636B0: +/* 0981E0 7F0636B0 8FAB03D8 */ lw $t3, 0x3d8($sp) +/* 0981E4 7F0636B4 8FAD0070 */ lw $t5, 0x70($sp) +/* 0981E8 7F0636B8 24010002 */ li $at, 2 +/* 0981EC 7F0636BC 8D6C0008 */ lw $t4, 8($t3) +/* 0981F0 7F0636C0 27A5041C */ addiu $a1, $sp, 0x41c +/* 0981F4 7F0636C4 018DC821 */ addu $t9, $t4, $t5 +/* 0981F8 7F0636C8 8F380000 */ lw $t8, ($t9) +/* 0981FC 7F0636CC 1621002B */ bne $s1, $at, .L7F06377C +/* 098200 7F0636D0 8F100004 */ lw $s0, 4($t8) +/* 098204 7F0636D4 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 098208 7F0636D8 82840000 */ lb $a0, ($s4) +/* 09820C 7F0636DC 44822000 */ mtc1 $v0, $f4 +/* 098210 7F0636E0 3C018005 */ lui $at, %hi(D_80053ED4) +/* 098214 7F0636E4 C42A3ED4 */ lwc1 $f10, %lo(D_80053ED4)($at) +/* 098218 7F0636E8 468021A0 */ cvt.s.w $f6, $f4 +/* 09821C 7F0636EC 3C018005 */ lui $at, %hi(D_80053ED8) +/* 098220 7F0636F0 C4323ED8 */ lwc1 $f18, %lo(D_80053ED8)($at) +/* 098224 7F0636F4 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 098228 7F0636F8 27A5041C */ addiu $a1, $sp, 0x41c +/* 09822C 7F0636FC 46003207 */ neg.s $f8, $f6 +/* 098230 7F063700 44813000 */ mtc1 $at, $f6 +/* 098234 7F063704 460A4402 */ mul.s $f16, $f8, $f10 +/* 098238 7F063708 00000000 */ nop +/* 09823C 7F06370C 46128102 */ mul.s $f4, $f16, $f18 +/* 098240 7F063710 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 098244 7F063714 46062303 */ div.s $f12, $f4, $f6 +/* 098248 7F063718 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 09824C 7F06371C 82840000 */ lb $a0, ($s4) +/* 098250 7F063720 44824000 */ mtc1 $v0, $f8 +/* 098254 7F063724 3C018005 */ lui $at, %hi(D_80053EDC) +/* 098258 7F063728 C4323EDC */ lwc1 $f18, %lo(D_80053EDC)($at) +/* 09825C 7F06372C 468042A0 */ cvt.s.w $f10, $f8 +/* 098260 7F063730 3C018005 */ lui $at, %hi(D_80053EE0) +/* 098264 7F063734 C4263EE0 */ lwc1 $f6, %lo(D_80053EE0)($at) +/* 098268 7F063738 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 09826C 7F06373C 27A503DC */ addiu $a1, $sp, 0x3dc +/* 098270 7F063740 46005407 */ neg.s $f16, $f10 +/* 098274 7F063744 44815000 */ mtc1 $at, $f10 +/* 098278 7F063748 46128102 */ mul.s $f4, $f16, $f18 +/* 09827C 7F06374C 00000000 */ nop +/* 098280 7F063750 46062202 */ mul.s $f8, $f4, $f6 +/* 098284 7F063754 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098288 7F063758 460A4303 */ div.s $f12, $f8, $f10 +/* 09828C 7F06375C 27A403DC */ addiu $a0, $sp, 0x3dc +/* 098290 7F063760 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 098294 7F063764 27A5041C */ addiu $a1, $sp, 0x41c +/* 098298 7F063768 02002025 */ move $a0, $s0 +/* 09829C 7F06376C 0FC16266 */ jal matrix_4x4_set_position +/* 0982A0 7F063770 27A5041C */ addiu $a1, $sp, 0x41c +/* 0982A4 7F063774 10000004 */ b .L7F063788 +/* 0982A8 7F063778 00114180 */ sll $t0, $s1, 6 +.L7F06377C: +/* 0982AC 7F06377C 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 0982B0 7F063780 02002025 */ move $a0, $s0 +/* 0982B4 7F063784 00114180 */ sll $t0, $s1, 6 +.L7F063788: +/* 0982B8 7F063788 01173021 */ addu $a2, $t0, $s7 +/* 0982BC 7F06378C 8FA4053C */ lw $a0, 0x53c($sp) +/* 0982C0 7F063790 0FC16032 */ jal matrix_4x4_multiply +/* 0982C4 7F063794 27A5041C */ addiu $a1, $sp, 0x41c +/* 0982C8 7F063798 8FAF0070 */ lw $t7, 0x70($sp) +/* 0982CC 7F06379C 26310001 */ addiu $s1, $s1, 1 +/* 0982D0 7F0637A0 2A21000D */ slti $at, $s1, 0xd +/* 0982D4 7F0637A4 25EE0004 */ addiu $t6, $t7, 4 +/* 0982D8 7F0637A8 1420FFC1 */ bnez $at, .L7F0636B0 +/* 0982DC 7F0637AC AFAE0070 */ sw $t6, 0x70($sp) +/* 0982E0 7F0637B0 0FC1BBF1 */ jal sub_GAME_7F06EFC4 +/* 0982E4 7F0637B4 27A404D8 */ addiu $a0, $sp, 0x4d8 +/* 0982E8 7F0637B8 8FA90538 */ lw $t1, 0x538($sp) +/* 0982EC 7F0637BC 2A4100FF */ slti $at, $s2, 0xff +/* 0982F0 7F0637C0 14200004 */ bnez $at, .L7F0637D4 +/* 0982F4 7F0637C4 AFA90504 */ sw $t1, 0x504($sp) +/* 0982F8 7F0637C8 240A0001 */ li $t2, 1 +/* 0982FC 7F0637CC 10000006 */ b .L7F0637E8 +/* 098300 7F0637D0 AFAA0528 */ sw $t2, 0x528($sp) +.L7F0637D4: +/* 098304 7F0637D4 240B0005 */ li $t3, 5 +/* 098308 7F0637D8 240CFF00 */ li $t4, -256 +/* 09830C 7F0637DC AFAB0528 */ sw $t3, 0x528($sp) +/* 098310 7F0637E0 AFB2052C */ sw $s2, 0x52c($sp) +/* 098314 7F0637E4 AFAC0530 */ sw $t4, 0x530($sp) +.L7F0637E8: +/* 098318 7F0637E8 240D0001 */ li $t5, 1 +/* 09831C 7F0637EC AFAD04FC */ sw $t5, 0x4fc($sp) +/* 098320 7F0637F0 27A404F8 */ addiu $a0, $sp, 0x4f8 +/* 098324 7F0637F4 0FC1D1A1 */ jal subdraw +/* 098328 7F0637F8 27A504D8 */ addiu $a1, $sp, 0x4d8 +/* 09832C 7F0637FC 8FB90504 */ lw $t9, 0x504($sp) +/* 098330 7F063800 0FC16319 */ jal sub_GAME_7F058C64 +/* 098334 7F063804 AFB90538 */ sw $t9, 0x538($sp) +/* 098338 7F063808 8FB803D8 */ lw $t8, 0x3d8($sp) +/* 09833C 7F06380C 00008825 */ move $s1, $zero +/* 098340 7F063810 00008025 */ move $s0, $zero +/* 098344 7F063814 8708000E */ lh $t0, 0xe($t8) +/* 098348 7F063818 19000011 */ blez $t0, .L7F063860 +/* 09834C 7F06381C 00000000 */ nop +/* 098350 7F063820 8FAF04E4 */ lw $t7, 0x4e4($sp) +.L7F063824: +/* 098354 7F063824 27A5041C */ addiu $a1, $sp, 0x41c +/* 098358 7F063828 0FC16008 */ jal matrix_4x4_copy +/* 09835C 7F06382C 01F02021 */ addu $a0, $t7, $s0 +/* 098360 7F063830 8FA904E4 */ lw $t1, 0x4e4($sp) +/* 098364 7F063834 00117180 */ sll $t6, $s1, 6 +/* 098368 7F063838 27A4041C */ addiu $a0, $sp, 0x41c +/* 09836C 7F06383C 0FC16327 */ jal sub_GAME_7F058C9C +/* 098370 7F063840 01C92821 */ addu $a1, $t6, $t1 +/* 098374 7F063844 8FAA03D8 */ lw $t2, 0x3d8($sp) +/* 098378 7F063848 26310001 */ addiu $s1, $s1, 1 +/* 09837C 7F06384C 26100040 */ addiu $s0, $s0, 0x40 +/* 098380 7F063850 854B000E */ lh $t3, 0xe($t2) +/* 098384 7F063854 022B082A */ slt $at, $s1, $t3 +/* 098388 7F063858 5420FFF2 */ bnezl $at, .L7F063824 +/* 09838C 7F06385C 8FAF04E4 */ lw $t7, 0x4e4($sp) +.L7F063860: +/* 098390 7F063860 0FC16322 */ jal sub_GAME_7F058C88 +/* 098394 7F063864 00000000 */ nop +/* 098398 7F063868 126002AE */ beqz $s3, .L7F064324 +/* 09839C 7F06386C 8FAC03D8 */ lw $t4, 0x3d8($sp) +/* 0983A0 7F063870 8D8D0008 */ lw $t5, 8($t4) +/* 0983A4 7F063874 00008825 */ move $s1, $zero +/* 0983A8 7F063878 8DA50034 */ lw $a1, 0x34($t5) +/* 0983AC 7F06387C 50A00005 */ beql $a1, $zero, .L7F063894 +/* 0983B0 7F063880 8FB903D8 */ lw $t9, 0x3d8($sp) +/* 0983B4 7F063884 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0983B8 7F063888 27A404D8 */ addiu $a0, $sp, 0x4d8 +/* 0983BC 7F06388C AC400000 */ sw $zero, ($v0) +/* 0983C0 7F063890 8FB903D8 */ lw $t9, 0x3d8($sp) +.L7F063894: +/* 0983C4 7F063894 8724000E */ lh $a0, 0xe($t9) +/* 0983C8 7F063898 0004C180 */ sll $t8, $a0, 6 +/* 0983CC 7F06389C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 0983D0 7F0638A0 03002025 */ move $a0, $t8 +/* 0983D4 7F0638A4 3C018005 */ lui $at, %hi(D_80053EE4) +/* 0983D8 7F0638A8 C4363EE4 */ lwc1 $f22, %lo(D_80053EE4)($at) +/* 0983DC 7F0638AC 3C01C120 */ li $at, 0xC1200000 # -10.000000 +/* 0983E0 7F0638B0 4481A000 */ mtc1 $at, $f20 +/* 0983E4 7F0638B4 4480C000 */ mtc1 $zero, $f24 +/* 0983E8 7F0638B8 0040B825 */ move $s7, $v0 +/* 0983EC 7F0638BC AFA204E4 */ sw $v0, 0x4e4($sp) +/* 0983F0 7F0638C0 8FBE0548 */ lw $fp, 0x548($sp) +/* 0983F4 7F0638C4 27B601CC */ addiu $s6, $sp, 0x1cc +/* 0983F8 7F0638C8 27B5020C */ addiu $s5, $sp, 0x20c +/* 0983FC 7F0638CC 27B3024C */ addiu $s3, $sp, 0x24c +/* 098400 7F0638D0 27B2028C */ addiu $s2, $sp, 0x28c +/* 098404 7F0638D4 27B0038C */ addiu $s0, $sp, 0x38c +/* 098408 7F0638D8 3C01C0A0 */ li $at, 0xC0A00000 # -5.000000 +.L7F0638DC: +/* 09840C 7F0638DC 44810000 */ mtc1 $at, $f0 +/* 098410 7F0638E0 3C01C328 */ li $at, 0xC3280000 # -168.000000 +/* 098414 7F0638E4 44811000 */ mtc1 $at, $f2 +/* 098418 7F0638E8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 09841C 7F0638EC 44818000 */ mtc1 $at, $f16 +/* 098420 7F0638F0 44050000 */ mfc1 $a1, $f0 +/* 098424 7F0638F4 44071000 */ mfc1 $a3, $f2 +/* 098428 7F0638F8 02A02025 */ move $a0, $s5 +/* 09842C 7F0638FC 3C0644FA */ lui $a2, 0x44fa +/* 098430 7F063900 E7B80014 */ swc1 $f24, 0x14($sp) +/* 098434 7F063904 E7B8001C */ swc1 $f24, 0x1c($sp) +/* 098438 7F063908 E7B80020 */ swc1 $f24, 0x20($sp) +/* 09843C 7F06390C E7A00010 */ swc1 $f0, 0x10($sp) +/* 098440 7F063910 E7A20018 */ swc1 $f2, 0x18($sp) +/* 098444 7F063914 0FC165A5 */ jal sub_GAME_7F059694 +/* 098448 7F063918 E7B00024 */ swc1 $f16, 0x24($sp) +/* 09844C 7F06391C 3C01C0A0 */ li $at, 0xC0A00000 # -5.000000 +/* 098450 7F063920 44810000 */ mtc1 $at, $f0 +/* 098454 7F063924 3C01C328 */ li $at, 0xC3280000 # -168.000000 +/* 098458 7F063928 44811000 */ mtc1 $at, $f2 +/* 09845C 7F06392C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 098460 7F063930 44819000 */ mtc1 $at, $f18 +/* 098464 7F063934 44050000 */ mfc1 $a1, $f0 +/* 098468 7F063938 44071000 */ mfc1 $a3, $f2 +/* 09846C 7F06393C 02002025 */ move $a0, $s0 +/* 098470 7F063940 3C0644FA */ lui $a2, 0x44fa +/* 098474 7F063944 E7B80014 */ swc1 $f24, 0x14($sp) +/* 098478 7F063948 E7B8001C */ swc1 $f24, 0x1c($sp) +/* 09847C 7F06394C E7B80020 */ swc1 $f24, 0x20($sp) +/* 098480 7F063950 E7A00010 */ swc1 $f0, 0x10($sp) +/* 098484 7F063954 E7A20018 */ swc1 $f2, 0x18($sp) +/* 098488 7F063958 0FC165A5 */ jal sub_GAME_7F059694 +/* 09848C 7F06395C E7B20024 */ swc1 $f18, 0x24($sp) +/* 098490 7F063960 0FC15FF4 */ jal matrix_4x4_set_identity +/* 098494 7F063964 02602025 */ move $a0, $s3 +/* 098498 7F063968 0FC15FF4 */ jal matrix_4x4_set_identity +/* 09849C 7F06396C 02C02025 */ move $a0, $s6 +/* 0984A0 7F063970 02C02025 */ move $a0, $s6 +/* 0984A4 7F063974 0FC16008 */ jal matrix_4x4_copy +/* 0984A8 7F063978 27A502CC */ addiu $a1, $sp, 0x2cc +/* 0984AC 7F06397C 24010002 */ li $at, 2 +/* 0984B0 7F063980 5621003D */ bnel $s1, $at, .L7F063A78 +/* 0984B4 7F063984 2401000B */ li $at, 11 +/* 0984B8 7F063988 8FC10058 */ lw $at, 0x58($fp) +/* 0984BC 7F06398C 27A401C0 */ addiu $a0, $sp, 0x1c0 +/* 0984C0 7F063990 27A5034C */ addiu $a1, $sp, 0x34c +/* 0984C4 7F063994 AC810000 */ sw $at, ($a0) +/* 0984C8 7F063998 8FCF005C */ lw $t7, 0x5c($fp) +/* 0984CC 7F06399C AC8F0004 */ sw $t7, 4($a0) +/* 0984D0 7F0639A0 8FC10060 */ lw $at, 0x60($fp) +/* 0984D4 7F0639A4 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 0984D8 7F0639A8 AC810008 */ sw $at, 8($a0) +/* 0984DC 7F0639AC 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0984E0 7F0639B0 82840000 */ lb $a0, ($s4) +/* 0984E4 7F0639B4 44822000 */ mtc1 $v0, $f4 +/* 0984E8 7F0639B8 3C018005 */ lui $at, %hi(D_80053EE8) +/* 0984EC 7F0639BC C42A3EE8 */ lwc1 $f10, %lo(D_80053EE8)($at) +/* 0984F0 7F0639C0 468021A0 */ cvt.s.w $f6, $f4 +/* 0984F4 7F0639C4 3C018005 */ lui $at, %hi(D_80053EEC) +/* 0984F8 7F0639C8 C4323EEC */ lwc1 $f18, %lo(D_80053EEC)($at) +/* 0984FC 7F0639CC 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 098500 7F0639D0 27A5041C */ addiu $a1, $sp, 0x41c +/* 098504 7F0639D4 46003207 */ neg.s $f8, $f6 +/* 098508 7F0639D8 44813000 */ mtc1 $at, $f6 +/* 09850C 7F0639DC 460A4402 */ mul.s $f16, $f8, $f10 +/* 098510 7F0639E0 00000000 */ nop +/* 098514 7F0639E4 46128102 */ mul.s $f4, $f16, $f18 +/* 098518 7F0639E8 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09851C 7F0639EC 46062303 */ div.s $f12, $f4, $f6 +/* 098520 7F0639F0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 098524 7F0639F4 82840000 */ lb $a0, ($s4) +/* 098528 7F0639F8 44824000 */ mtc1 $v0, $f8 +/* 09852C 7F0639FC 3C018005 */ lui $at, %hi(D_80053EF0) +/* 098530 7F063A00 C4323EF0 */ lwc1 $f18, %lo(D_80053EF0)($at) +/* 098534 7F063A04 468042A0 */ cvt.s.w $f10, $f8 +/* 098538 7F063A08 3C018005 */ lui $at, %hi(D_80053EF4) +/* 09853C 7F063A0C C4263EF4 */ lwc1 $f6, %lo(D_80053EF4)($at) +/* 098540 7F063A10 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 098544 7F063A14 27A503DC */ addiu $a1, $sp, 0x3dc +/* 098548 7F063A18 46005407 */ neg.s $f16, $f10 +/* 09854C 7F063A1C 44815000 */ mtc1 $at, $f10 +/* 098550 7F063A20 46128102 */ mul.s $f4, $f16, $f18 +/* 098554 7F063A24 00000000 */ nop +/* 098558 7F063A28 46062202 */ mul.s $f8, $f4, $f6 +/* 09855C 7F063A2C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098560 7F063A30 460A4303 */ div.s $f12, $f8, $f10 +/* 098564 7F063A34 27A403DC */ addiu $a0, $sp, 0x3dc +/* 098568 7F063A38 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 09856C 7F063A3C 27A5041C */ addiu $a1, $sp, 0x41c +/* 098570 7F063A40 27A4034C */ addiu $a0, $sp, 0x34c +/* 098574 7F063A44 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 098578 7F063A48 27A5041C */ addiu $a1, $sp, 0x41c +/* 09857C 7F063A4C 02A02025 */ move $a0, $s5 +/* 098580 7F063A50 27A5041C */ addiu $a1, $sp, 0x41c +/* 098584 7F063A54 0FC16032 */ jal matrix_4x4_multiply +/* 098588 7F063A58 27A6030C */ addiu $a2, $sp, 0x30c +/* 09858C 7F063A5C 00117180 */ sll $t6, $s1, 6 +/* 098590 7F063A60 01D72821 */ addu $a1, $t6, $s7 +/* 098594 7F063A64 0FC16008 */ jal matrix_4x4_copy +/* 098598 7F063A68 27A4030C */ addiu $a0, $sp, 0x30c +/* 09859C 7F063A6C 10000208 */ b .L7F064290 +/* 0985A0 7F063A70 26310001 */ addiu $s1, $s1, 1 +/* 0985A4 7F063A74 2401000B */ li $at, 11 +.L7F063A78: +/* 0985A8 7F063A78 1621002B */ bne $s1, $at, .L7F063B28 +/* 0985AC 7F063A7C 3C0A8003 */ lui $t2, %hi(D_80035D44+0x3C) +/* 0985B0 7F063A80 254A5D80 */ addiu $t2, %lo(D_80035D44+0x3C) # addiu $t2, $t2, 0x5d80 +/* 0985B4 7F063A84 8D410000 */ lw $at, ($t2) +/* 0985B8 7F063A88 27A901A8 */ addiu $t1, $sp, 0x1a8 +/* 0985BC 7F063A8C 8D4C0004 */ lw $t4, 4($t2) +/* 0985C0 7F063A90 AD210000 */ sw $at, ($t1) +/* 0985C4 7F063A94 8D410008 */ lw $at, 8($t2) +/* 0985C8 7F063A98 AD2C0004 */ sw $t4, 4($t1) +/* 0985CC 7F063A9C 27AD01B4 */ addiu $t5, $sp, 0x1b4 +/* 0985D0 7F063AA0 AD210008 */ sw $at, 8($t1) +/* 0985D4 7F063AA4 8FC100C4 */ lw $at, 0xc4($fp) +/* 0985D8 7F063AA8 24050010 */ li $a1, 16 +/* 0985DC 7F063AAC ADA10000 */ sw $at, ($t5) +/* 0985E0 7F063AB0 8FD800C8 */ lw $t8, 0xc8($fp) +/* 0985E4 7F063AB4 ADB80004 */ sw $t8, 4($t5) +/* 0985E8 7F063AB8 8FC100CC */ lw $at, 0xcc($fp) +/* 0985EC 7F063ABC ADA10008 */ sw $at, 8($t5) +/* 0985F0 7F063AC0 0C0030C3 */ jal get_controller_buttons_held +/* 0985F4 7F063AC4 82840000 */ lb $a0, ($s4) +/* 0985F8 7F063AC8 10400004 */ beqz $v0, .L7F063ADC +/* 0985FC 7F063ACC 3C018005 */ lui $at, %hi(D_80053EF8) +/* 098600 7F063AD0 C42C3EF8 */ lwc1 $f12, %lo(D_80053EF8)($at) +/* 098604 7F063AD4 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 098608 7F063AD8 02602825 */ move $a1, $s3 +.L7F063ADC: +/* 09860C 7F063ADC 3C018005 */ lui $at, %hi(D_80053EFC) +/* 098610 7F063AE0 C42C3EFC */ lwc1 $f12, %lo(D_80053EFC)($at) +/* 098614 7F063AE4 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098618 7F063AE8 02402825 */ move $a1, $s2 +/* 09861C 7F063AEC 27A801B4 */ addiu $t0, $sp, 0x1b4 +/* 098620 7F063AF0 AFA80010 */ sw $t0, 0x10($sp) +/* 098624 7F063AF4 27A401A8 */ addiu $a0, $sp, 0x1a8 +/* 098628 7F063AF8 02602825 */ move $a1, $s3 +/* 09862C 7F063AFC 02403025 */ move $a2, $s2 +/* 098630 7F063B00 02C03825 */ move $a3, $s6 +/* 098634 7F063B04 AFB50014 */ sw $s5, 0x14($sp) +/* 098638 7F063B08 0FC18D47 */ jal sub_GAME_7F06351C +/* 09863C 7F063B0C AFB00018 */ sw $s0, 0x18($sp) +/* 098640 7F063B10 00117980 */ sll $t7, $s1, 6 +/* 098644 7F063B14 01F72821 */ addu $a1, $t7, $s7 +/* 098648 7F063B18 0FC16008 */ jal matrix_4x4_copy +/* 09864C 7F063B1C 02002025 */ move $a0, $s0 +/* 098650 7F063B20 100001DB */ b .L7F064290 +/* 098654 7F063B24 26310001 */ addiu $s1, $s1, 1 +.L7F063B28: +/* 098658 7F063B28 24010004 */ li $at, 4 +/* 09865C 7F063B2C 16210029 */ bne $s1, $at, .L7F063BD4 +/* 098660 7F063B30 3C0B8003 */ lui $t3, %hi(D_80035D44+0x48) +/* 098664 7F063B34 256B5D8C */ addiu $t3, %lo(D_80035D44+0x48) # addiu $t3, $t3, 0x5d8c +/* 098668 7F063B38 8D610000 */ lw $at, ($t3) +/* 09866C 7F063B3C 27AE0190 */ addiu $t6, $sp, 0x190 +/* 098670 7F063B40 8D6A0004 */ lw $t2, 4($t3) +/* 098674 7F063B44 ADC10000 */ sw $at, ($t6) +/* 098678 7F063B48 8D610008 */ lw $at, 8($t3) +/* 09867C 7F063B4C ADCA0004 */ sw $t2, 4($t6) +/* 098680 7F063B50 27AC019C */ addiu $t4, $sp, 0x19c +/* 098684 7F063B54 ADC10008 */ sw $at, 8($t6) +/* 098688 7F063B58 8FC10070 */ lw $at, 0x70($fp) +/* 09868C 7F063B5C 24050008 */ li $a1, 8 +/* 098690 7F063B60 AD810000 */ sw $at, ($t4) +/* 098694 7F063B64 8FCD0074 */ lw $t5, 0x74($fp) +/* 098698 7F063B68 AD8D0004 */ sw $t5, 4($t4) +/* 09869C 7F063B6C 8FC10078 */ lw $at, 0x78($fp) +/* 0986A0 7F063B70 AD810008 */ sw $at, 8($t4) +/* 0986A4 7F063B74 0C0030C3 */ jal get_controller_buttons_held +/* 0986A8 7F063B78 82840000 */ lb $a0, ($s4) +/* 0986AC 7F063B7C 10400004 */ beqz $v0, .L7F063B90 +/* 0986B0 7F063B80 4600B306 */ mov.s $f12, $f22 +/* 0986B4 7F063B84 C7B00194 */ lwc1 $f16, 0x194($sp) +/* 0986B8 7F063B88 46148480 */ add.s $f18, $f16, $f20 +/* 0986BC 7F063B8C E7B20194 */ swc1 $f18, 0x194($sp) +.L7F063B90: +/* 0986C0 7F063B90 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0986C4 7F063B94 02402825 */ move $a1, $s2 +/* 0986C8 7F063B98 27B8019C */ addiu $t8, $sp, 0x19c +/* 0986CC 7F063B9C AFB80010 */ sw $t8, 0x10($sp) +/* 0986D0 7F063BA0 27A40190 */ addiu $a0, $sp, 0x190 +/* 0986D4 7F063BA4 02602825 */ move $a1, $s3 +/* 0986D8 7F063BA8 02403025 */ move $a2, $s2 +/* 0986DC 7F063BAC 02C03825 */ move $a3, $s6 +/* 0986E0 7F063BB0 AFB50014 */ sw $s5, 0x14($sp) +/* 0986E4 7F063BB4 0FC18D47 */ jal sub_GAME_7F06351C +/* 0986E8 7F063BB8 AFB00018 */ sw $s0, 0x18($sp) +/* 0986EC 7F063BBC 00114180 */ sll $t0, $s1, 6 +/* 0986F0 7F063BC0 01172821 */ addu $a1, $t0, $s7 +/* 0986F4 7F063BC4 0FC16008 */ jal matrix_4x4_copy +/* 0986F8 7F063BC8 02002025 */ move $a0, $s0 +/* 0986FC 7F063BCC 100001B0 */ b .L7F064290 +/* 098700 7F063BD0 26310001 */ addiu $s1, $s1, 1 +.L7F063BD4: +/* 098704 7F063BD4 24010005 */ li $at, 5 +/* 098708 7F063BD8 16210029 */ bne $s1, $at, .L7F063C80 +/* 09870C 7F063BDC 3C098003 */ lui $t1, %hi(D_80035D44+0x54) +/* 098710 7F063BE0 25295D98 */ addiu $t1, %lo(D_80035D44+0x54) # addiu $t1, $t1, 0x5d98 +/* 098714 7F063BE4 8D210000 */ lw $at, ($t1) +/* 098718 7F063BE8 27AF0178 */ addiu $t7, $sp, 0x178 +/* 09871C 7F063BEC 8D2B0004 */ lw $t3, 4($t1) +/* 098720 7F063BF0 ADE10000 */ sw $at, ($t7) +/* 098724 7F063BF4 8D210008 */ lw $at, 8($t1) +/* 098728 7F063BF8 ADEB0004 */ sw $t3, 4($t7) +/* 09872C 7F063BFC 27AA0184 */ addiu $t2, $sp, 0x184 +/* 098730 7F063C00 ADE10008 */ sw $at, 8($t7) +/* 098734 7F063C04 8FC1007C */ lw $at, 0x7c($fp) +/* 098738 7F063C08 24050004 */ li $a1, 4 +/* 09873C 7F063C0C AD410000 */ sw $at, ($t2) +/* 098740 7F063C10 8FCC0080 */ lw $t4, 0x80($fp) +/* 098744 7F063C14 AD4C0004 */ sw $t4, 4($t2) +/* 098748 7F063C18 8FC10084 */ lw $at, 0x84($fp) +/* 09874C 7F063C1C AD410008 */ sw $at, 8($t2) +/* 098750 7F063C20 0C0030C3 */ jal get_controller_buttons_held +/* 098754 7F063C24 82840000 */ lb $a0, ($s4) +/* 098758 7F063C28 10400004 */ beqz $v0, .L7F063C3C +/* 09875C 7F063C2C 4600B306 */ mov.s $f12, $f22 +/* 098760 7F063C30 C7A4017C */ lwc1 $f4, 0x17c($sp) +/* 098764 7F063C34 46142180 */ add.s $f6, $f4, $f20 +/* 098768 7F063C38 E7A6017C */ swc1 $f6, 0x17c($sp) +.L7F063C3C: +/* 09876C 7F063C3C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098770 7F063C40 02402825 */ move $a1, $s2 +/* 098774 7F063C44 27AD0184 */ addiu $t5, $sp, 0x184 +/* 098778 7F063C48 AFAD0010 */ sw $t5, 0x10($sp) +/* 09877C 7F063C4C 27A40178 */ addiu $a0, $sp, 0x178 +/* 098780 7F063C50 02602825 */ move $a1, $s3 +/* 098784 7F063C54 02403025 */ move $a2, $s2 +/* 098788 7F063C58 02C03825 */ move $a3, $s6 +/* 09878C 7F063C5C AFB50014 */ sw $s5, 0x14($sp) +/* 098790 7F063C60 0FC18D47 */ jal sub_GAME_7F06351C +/* 098794 7F063C64 AFB00018 */ sw $s0, 0x18($sp) +/* 098798 7F063C68 0011C180 */ sll $t8, $s1, 6 +/* 09879C 7F063C6C 03172821 */ addu $a1, $t8, $s7 +/* 0987A0 7F063C70 0FC16008 */ jal matrix_4x4_copy +/* 0987A4 7F063C74 02002025 */ move $a0, $s0 +/* 0987A8 7F063C78 10000185 */ b .L7F064290 +/* 0987AC 7F063C7C 26310001 */ addiu $s1, $s1, 1 +.L7F063C80: +/* 0987B0 7F063C80 24010006 */ li $at, 6 +/* 0987B4 7F063C84 16210029 */ bne $s1, $at, .L7F063D2C +/* 0987B8 7F063C88 3C0E8003 */ lui $t6, %hi(D_80035D44+0x60) +/* 0987BC 7F063C8C 25CE5DA4 */ addiu $t6, %lo(D_80035D44+0x60) # addiu $t6, $t6, 0x5da4 +/* 0987C0 7F063C90 8DC10000 */ lw $at, ($t6) +/* 0987C4 7F063C94 27A80160 */ addiu $t0, $sp, 0x160 +/* 0987C8 7F063C98 8DC90004 */ lw $t1, 4($t6) +/* 0987CC 7F063C9C AD010000 */ sw $at, ($t0) +/* 0987D0 7F063CA0 8DC10008 */ lw $at, 8($t6) +/* 0987D4 7F063CA4 AD090004 */ sw $t1, 4($t0) +/* 0987D8 7F063CA8 27AB016C */ addiu $t3, $sp, 0x16c +/* 0987DC 7F063CAC AD010008 */ sw $at, 8($t0) +/* 0987E0 7F063CB0 8FC10088 */ lw $at, 0x88($fp) +/* 0987E4 7F063CB4 24050002 */ li $a1, 2 +/* 0987E8 7F063CB8 AD610000 */ sw $at, ($t3) +/* 0987EC 7F063CBC 8FCA008C */ lw $t2, 0x8c($fp) +/* 0987F0 7F063CC0 AD6A0004 */ sw $t2, 4($t3) +/* 0987F4 7F063CC4 8FC10090 */ lw $at, 0x90($fp) +/* 0987F8 7F063CC8 AD610008 */ sw $at, 8($t3) +/* 0987FC 7F063CCC 0C0030C3 */ jal get_controller_buttons_held +/* 098800 7F063CD0 82840000 */ lb $a0, ($s4) +/* 098804 7F063CD4 10400004 */ beqz $v0, .L7F063CE8 +/* 098808 7F063CD8 4600B306 */ mov.s $f12, $f22 +/* 09880C 7F063CDC C7A80164 */ lwc1 $f8, 0x164($sp) +/* 098810 7F063CE0 46144280 */ add.s $f10, $f8, $f20 +/* 098814 7F063CE4 E7AA0164 */ swc1 $f10, 0x164($sp) +.L7F063CE8: +/* 098818 7F063CE8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09881C 7F063CEC 02402825 */ move $a1, $s2 +/* 098820 7F063CF0 27AC016C */ addiu $t4, $sp, 0x16c +/* 098824 7F063CF4 AFAC0010 */ sw $t4, 0x10($sp) +/* 098828 7F063CF8 27A40160 */ addiu $a0, $sp, 0x160 +/* 09882C 7F063CFC 02602825 */ move $a1, $s3 +/* 098830 7F063D00 02403025 */ move $a2, $s2 +/* 098834 7F063D04 02C03825 */ move $a3, $s6 +/* 098838 7F063D08 AFB50014 */ sw $s5, 0x14($sp) +/* 09883C 7F063D0C 0FC18D47 */ jal sub_GAME_7F06351C +/* 098840 7F063D10 AFB00018 */ sw $s0, 0x18($sp) +/* 098844 7F063D14 00116980 */ sll $t5, $s1, 6 +/* 098848 7F063D18 01B72821 */ addu $a1, $t5, $s7 +/* 09884C 7F063D1C 0FC16008 */ jal matrix_4x4_copy +/* 098850 7F063D20 02002025 */ move $a0, $s0 +/* 098854 7F063D24 1000015A */ b .L7F064290 +/* 098858 7F063D28 26310001 */ addiu $s1, $s1, 1 +.L7F063D2C: +/* 09885C 7F063D2C 24010007 */ li $at, 7 +/* 098860 7F063D30 16210029 */ bne $s1, $at, .L7F063DD8 +/* 098864 7F063D34 3C0F8003 */ lui $t7, %hi(D_80035D44+0x6C) +/* 098868 7F063D38 25EF5DB0 */ addiu $t7, %lo(D_80035D44+0x6C) # addiu $t7, $t7, 0x5db0 +/* 09886C 7F063D3C 8DE10000 */ lw $at, ($t7) +/* 098870 7F063D40 27B80148 */ addiu $t8, $sp, 0x148 +/* 098874 7F063D44 8DEE0004 */ lw $t6, 4($t7) +/* 098878 7F063D48 AF010000 */ sw $at, ($t8) +/* 09887C 7F063D4C 8DE10008 */ lw $at, 8($t7) +/* 098880 7F063D50 AF0E0004 */ sw $t6, 4($t8) +/* 098884 7F063D54 27A90154 */ addiu $t1, $sp, 0x154 +/* 098888 7F063D58 AF010008 */ sw $at, 8($t8) +/* 09888C 7F063D5C 8FC10094 */ lw $at, 0x94($fp) +/* 098890 7F063D60 24050001 */ li $a1, 1 +/* 098894 7F063D64 AD210000 */ sw $at, ($t1) +/* 098898 7F063D68 8FCB0098 */ lw $t3, 0x98($fp) +/* 09889C 7F063D6C AD2B0004 */ sw $t3, 4($t1) +/* 0988A0 7F063D70 8FC1009C */ lw $at, 0x9c($fp) +/* 0988A4 7F063D74 AD210008 */ sw $at, 8($t1) +/* 0988A8 7F063D78 0C0030C3 */ jal get_controller_buttons_held +/* 0988AC 7F063D7C 82840000 */ lb $a0, ($s4) +/* 0988B0 7F063D80 10400004 */ beqz $v0, .L7F063D94 +/* 0988B4 7F063D84 4600B306 */ mov.s $f12, $f22 +/* 0988B8 7F063D88 C7B0014C */ lwc1 $f16, 0x14c($sp) +/* 0988BC 7F063D8C 46148480 */ add.s $f18, $f16, $f20 +/* 0988C0 7F063D90 E7B2014C */ swc1 $f18, 0x14c($sp) +.L7F063D94: +/* 0988C4 7F063D94 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0988C8 7F063D98 02402825 */ move $a1, $s2 +/* 0988CC 7F063D9C 27AA0154 */ addiu $t2, $sp, 0x154 +/* 0988D0 7F063DA0 AFAA0010 */ sw $t2, 0x10($sp) +/* 0988D4 7F063DA4 27A40148 */ addiu $a0, $sp, 0x148 +/* 0988D8 7F063DA8 02602825 */ move $a1, $s3 +/* 0988DC 7F063DAC 02403025 */ move $a2, $s2 +/* 0988E0 7F063DB0 02C03825 */ move $a3, $s6 +/* 0988E4 7F063DB4 AFB50014 */ sw $s5, 0x14($sp) +/* 0988E8 7F063DB8 0FC18D47 */ jal sub_GAME_7F06351C +/* 0988EC 7F063DBC AFB00018 */ sw $s0, 0x18($sp) +/* 0988F0 7F063DC0 00116180 */ sll $t4, $s1, 6 +/* 0988F4 7F063DC4 01972821 */ addu $a1, $t4, $s7 +/* 0988F8 7F063DC8 0FC16008 */ jal matrix_4x4_copy +/* 0988FC 7F063DCC 02002025 */ move $a0, $s0 +/* 098900 7F063DD0 1000012F */ b .L7F064290 +/* 098904 7F063DD4 26310001 */ addiu $s1, $s1, 1 +.L7F063DD8: +/* 098908 7F063DD8 24010009 */ li $at, 9 +/* 09890C 7F063DDC 16210029 */ bne $s1, $at, .L7F063E84 +/* 098910 7F063DE0 3C088003 */ lui $t0, %hi(D_80035D44+0x78) +/* 098914 7F063DE4 25085DBC */ addiu $t0, %lo(D_80035D44+0x78) # addiu $t0, $t0, 0x5dbc +/* 098918 7F063DE8 8D010000 */ lw $at, ($t0) +/* 09891C 7F063DEC 27AD0130 */ addiu $t5, $sp, 0x130 +/* 098920 7F063DF0 8D0F0004 */ lw $t7, 4($t0) +/* 098924 7F063DF4 ADA10000 */ sw $at, ($t5) +/* 098928 7F063DF8 8D010008 */ lw $at, 8($t0) +/* 09892C 7F063DFC ADAF0004 */ sw $t7, 4($t5) +/* 098930 7F063E00 27AE013C */ addiu $t6, $sp, 0x13c +/* 098934 7F063E04 ADA10008 */ sw $at, 8($t5) +/* 098938 7F063E08 8FC100AC */ lw $at, 0xac($fp) +/* 09893C 7F063E0C 24054000 */ li $a1, 16384 +/* 098940 7F063E10 ADC10000 */ sw $at, ($t6) +/* 098944 7F063E14 8FC900B0 */ lw $t1, 0xb0($fp) +/* 098948 7F063E18 ADC90004 */ sw $t1, 4($t6) +/* 09894C 7F063E1C 8FC100B4 */ lw $at, 0xb4($fp) +/* 098950 7F063E20 ADC10008 */ sw $at, 8($t6) +/* 098954 7F063E24 0C0030C3 */ jal get_controller_buttons_held +/* 098958 7F063E28 82840000 */ lb $a0, ($s4) +/* 09895C 7F063E2C 10400004 */ beqz $v0, .L7F063E40 +/* 098960 7F063E30 4600B306 */ mov.s $f12, $f22 +/* 098964 7F063E34 C7A40134 */ lwc1 $f4, 0x134($sp) +/* 098968 7F063E38 46142180 */ add.s $f6, $f4, $f20 +/* 09896C 7F063E3C E7A60134 */ swc1 $f6, 0x134($sp) +.L7F063E40: +/* 098970 7F063E40 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098974 7F063E44 02402825 */ move $a1, $s2 +/* 098978 7F063E48 27AB013C */ addiu $t3, $sp, 0x13c +/* 09897C 7F063E4C AFAB0010 */ sw $t3, 0x10($sp) +/* 098980 7F063E50 27A40130 */ addiu $a0, $sp, 0x130 +/* 098984 7F063E54 02602825 */ move $a1, $s3 +/* 098988 7F063E58 02403025 */ move $a2, $s2 +/* 09898C 7F063E5C 02C03825 */ move $a3, $s6 +/* 098990 7F063E60 AFB50014 */ sw $s5, 0x14($sp) +/* 098994 7F063E64 0FC18D47 */ jal sub_GAME_7F06351C +/* 098998 7F063E68 AFB00018 */ sw $s0, 0x18($sp) +/* 09899C 7F063E6C 00115180 */ sll $t2, $s1, 6 +/* 0989A0 7F063E70 01572821 */ addu $a1, $t2, $s7 +/* 0989A4 7F063E74 0FC16008 */ jal matrix_4x4_copy +/* 0989A8 7F063E78 02002025 */ move $a0, $s0 +/* 0989AC 7F063E7C 10000104 */ b .L7F064290 +/* 0989B0 7F063E80 26310001 */ addiu $s1, $s1, 1 +.L7F063E84: +/* 0989B4 7F063E84 24010008 */ li $at, 8 +/* 0989B8 7F063E88 16210029 */ bne $s1, $at, .L7F063F30 +/* 0989BC 7F063E8C 3C188003 */ lui $t8, %hi(D_80035D44+0x84) +/* 0989C0 7F063E90 27185DC8 */ addiu $t8, %lo(D_80035D44+0x84) # addiu $t8, $t8, 0x5dc8 +/* 0989C4 7F063E94 8F010000 */ lw $at, ($t8) +/* 0989C8 7F063E98 27AC0118 */ addiu $t4, $sp, 0x118 +/* 0989CC 7F063E9C 8F080004 */ lw $t0, 4($t8) +/* 0989D0 7F063EA0 AD810000 */ sw $at, ($t4) +/* 0989D4 7F063EA4 8F010008 */ lw $at, 8($t8) +/* 0989D8 7F063EA8 AD880004 */ sw $t0, 4($t4) +/* 0989DC 7F063EAC 27AF0124 */ addiu $t7, $sp, 0x124 +/* 0989E0 7F063EB0 AD810008 */ sw $at, 8($t4) +/* 0989E4 7F063EB4 8FC100A0 */ lw $at, 0xa0($fp) +/* 0989E8 7F063EB8 34058000 */ li $a1, 32768 +/* 0989EC 7F063EBC ADE10000 */ sw $at, ($t7) +/* 0989F0 7F063EC0 8FCE00A4 */ lw $t6, 0xa4($fp) +/* 0989F4 7F063EC4 ADEE0004 */ sw $t6, 4($t7) +/* 0989F8 7F063EC8 8FC100A8 */ lw $at, 0xa8($fp) +/* 0989FC 7F063ECC ADE10008 */ sw $at, 8($t7) +/* 098A00 7F063ED0 0C0030C3 */ jal get_controller_buttons_held +/* 098A04 7F063ED4 82840000 */ lb $a0, ($s4) +/* 098A08 7F063ED8 10400004 */ beqz $v0, .L7F063EEC +/* 098A0C 7F063EDC 4600B306 */ mov.s $f12, $f22 +/* 098A10 7F063EE0 C7A8011C */ lwc1 $f8, 0x11c($sp) +/* 098A14 7F063EE4 46144280 */ add.s $f10, $f8, $f20 +/* 098A18 7F063EE8 E7AA011C */ swc1 $f10, 0x11c($sp) +.L7F063EEC: +/* 098A1C 7F063EEC 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098A20 7F063EF0 02402825 */ move $a1, $s2 +/* 098A24 7F063EF4 27A90124 */ addiu $t1, $sp, 0x124 +/* 098A28 7F063EF8 AFA90010 */ sw $t1, 0x10($sp) +/* 098A2C 7F063EFC 27A40118 */ addiu $a0, $sp, 0x118 +/* 098A30 7F063F00 02602825 */ move $a1, $s3 +/* 098A34 7F063F04 02403025 */ move $a2, $s2 +/* 098A38 7F063F08 02C03825 */ move $a3, $s6 +/* 098A3C 7F063F0C AFB50014 */ sw $s5, 0x14($sp) +/* 098A40 7F063F10 0FC18D47 */ jal sub_GAME_7F06351C +/* 098A44 7F063F14 AFB00018 */ sw $s0, 0x18($sp) +/* 098A48 7F063F18 00115980 */ sll $t3, $s1, 6 +/* 098A4C 7F063F1C 01772821 */ addu $a1, $t3, $s7 +/* 098A50 7F063F20 0FC16008 */ jal matrix_4x4_copy +/* 098A54 7F063F24 02002025 */ move $a0, $s0 +/* 098A58 7F063F28 100000D9 */ b .L7F064290 +/* 098A5C 7F063F2C 26310001 */ addiu $s1, $s1, 1 +.L7F063F30: +/* 098A60 7F063F30 2401000A */ li $at, 10 +/* 098A64 7F063F34 1621002B */ bne $s1, $at, .L7F063FE4 +/* 098A68 7F063F38 3C0D8003 */ lui $t5, %hi(D_80035D44+0x90) +/* 098A6C 7F063F3C 25AD5DD4 */ addiu $t5, %lo(D_80035D44+0x90) # addiu $t5, $t5, 0x5dd4 +/* 098A70 7F063F40 8DA10000 */ lw $at, ($t5) +/* 098A74 7F063F44 27AA0100 */ addiu $t2, $sp, 0x100 +/* 098A78 7F063F48 8DB80004 */ lw $t8, 4($t5) +/* 098A7C 7F063F4C AD410000 */ sw $at, ($t2) +/* 098A80 7F063F50 8DA10008 */ lw $at, 8($t5) +/* 098A84 7F063F54 AD580004 */ sw $t8, 4($t2) +/* 098A88 7F063F58 27A8010C */ addiu $t0, $sp, 0x10c +/* 098A8C 7F063F5C AD410008 */ sw $at, 8($t2) +/* 098A90 7F063F60 8FC100B8 */ lw $at, 0xb8($fp) +/* 098A94 7F063F64 24050020 */ li $a1, 32 +/* 098A98 7F063F68 AD010000 */ sw $at, ($t0) +/* 098A9C 7F063F6C 8FCF00BC */ lw $t7, 0xbc($fp) +/* 098AA0 7F063F70 AD0F0004 */ sw $t7, 4($t0) +/* 098AA4 7F063F74 8FC100C0 */ lw $at, 0xc0($fp) +/* 098AA8 7F063F78 AD010008 */ sw $at, 8($t0) +/* 098AAC 7F063F7C 0C0030C3 */ jal get_controller_buttons_held +/* 098AB0 7F063F80 82840000 */ lb $a0, ($s4) +/* 098AB4 7F063F84 10400004 */ beqz $v0, .L7F063F98 +/* 098AB8 7F063F88 3C018005 */ lui $at, %hi(D_80053F00) +/* 098ABC 7F063F8C C42C3F00 */ lwc1 $f12, %lo(D_80053F00)($at) +/* 098AC0 7F063F90 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 098AC4 7F063F94 02602825 */ move $a1, $s3 +.L7F063F98: +/* 098AC8 7F063F98 3C018005 */ lui $at, %hi(D_80053F04) +/* 098ACC 7F063F9C C42C3F04 */ lwc1 $f12, %lo(D_80053F04)($at) +/* 098AD0 7F063FA0 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098AD4 7F063FA4 02402825 */ move $a1, $s2 +/* 098AD8 7F063FA8 27AE010C */ addiu $t6, $sp, 0x10c +/* 098ADC 7F063FAC AFAE0010 */ sw $t6, 0x10($sp) +/* 098AE0 7F063FB0 27A40100 */ addiu $a0, $sp, 0x100 +/* 098AE4 7F063FB4 02602825 */ move $a1, $s3 +/* 098AE8 7F063FB8 02403025 */ move $a2, $s2 +/* 098AEC 7F063FBC 02C03825 */ move $a3, $s6 +/* 098AF0 7F063FC0 AFB50014 */ sw $s5, 0x14($sp) +/* 098AF4 7F063FC4 0FC18D47 */ jal sub_GAME_7F06351C +/* 098AF8 7F063FC8 AFB00018 */ sw $s0, 0x18($sp) +/* 098AFC 7F063FCC 00114980 */ sll $t1, $s1, 6 +/* 098B00 7F063FD0 01372821 */ addu $a1, $t1, $s7 +/* 098B04 7F063FD4 0FC16008 */ jal matrix_4x4_copy +/* 098B08 7F063FD8 02002025 */ move $a0, $s0 +/* 098B0C 7F063FDC 100000AC */ b .L7F064290 +/* 098B10 7F063FE0 26310001 */ addiu $s1, $s1, 1 +.L7F063FE4: +/* 098B14 7F063FE4 24010003 */ li $at, 3 +/* 098B18 7F063FE8 1621004C */ bne $s1, $at, .L7F06411C +/* 098B1C 7F063FEC 3C0C8003 */ lui $t4, %hi(D_80035D44+0x9C) +/* 098B20 7F063FF0 258C5DE0 */ addiu $t4, %lo(D_80035D44+0x9C) # addiu $t4, $t4, 0x5de0 +/* 098B24 7F063FF4 8D810000 */ lw $at, ($t4) +/* 098B28 7F063FF8 27AB00A8 */ addiu $t3, $sp, 0xa8 +/* 098B2C 7F063FFC 8D8D0004 */ lw $t5, 4($t4) +/* 098B30 7F064000 AD610000 */ sw $at, ($t3) +/* 098B34 7F064004 8D810008 */ lw $at, 8($t4) +/* 098B38 7F064008 AD6D0004 */ sw $t5, 4($t3) +/* 098B3C 7F06400C 27B800F4 */ addiu $t8, $sp, 0xf4 +/* 098B40 7F064010 AD610008 */ sw $at, 8($t3) +/* 098B44 7F064014 8FC10064 */ lw $at, 0x64($fp) +/* 098B48 7F064018 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 098B4C 7F06401C AF010000 */ sw $at, ($t8) +/* 098B50 7F064020 8FC80068 */ lw $t0, 0x68($fp) +/* 098B54 7F064024 AF080004 */ sw $t0, 4($t8) +/* 098B58 7F064028 8FC1006C */ lw $at, 0x6c($fp) +/* 098B5C 7F06402C 0FC15FF4 */ jal matrix_4x4_set_identity +/* 098B60 7F064030 AF010008 */ sw $at, 8($t8) +/* 098B64 7F064034 82840000 */ lb $a0, ($s4) +/* 098B68 7F064038 0C0030C3 */ jal get_controller_buttons_held +/* 098B6C 7F06403C 24050800 */ li $a1, 2048 +/* 098B70 7F064040 10400007 */ beqz $v0, .L7F064060 +/* 098B74 7F064044 24050400 */ li $a1, 1024 +/* 098B78 7F064048 3C018005 */ lui $at, %hi(D_80053F08) +/* 098B7C 7F06404C C42C3F08 */ lwc1 $f12, %lo(D_80053F08)($at) +/* 098B80 7F064050 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098B84 7F064054 02602825 */ move $a1, $s3 +/* 098B88 7F064058 10000009 */ b .L7F064080 +/* 098B8C 7F06405C 82840000 */ lb $a0, ($s4) +.L7F064060: +/* 098B90 7F064060 0C0030C3 */ jal get_controller_buttons_held +/* 098B94 7F064064 82840000 */ lb $a0, ($s4) +/* 098B98 7F064068 10400004 */ beqz $v0, .L7F06407C +/* 098B9C 7F06406C 3C018005 */ lui $at, %hi(D_80053F0C) +/* 098BA0 7F064070 C42C3F0C */ lwc1 $f12, %lo(D_80053F0C)($at) +/* 098BA4 7F064074 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098BA8 7F064078 02602825 */ move $a1, $s3 +.L7F06407C: +/* 098BAC 7F06407C 82840000 */ lb $a0, ($s4) +.L7F064080: +/* 098BB0 7F064080 0C0030C3 */ jal get_controller_buttons_held +/* 098BB4 7F064084 24050200 */ li $a1, 512 +/* 098BB8 7F064088 10400007 */ beqz $v0, .L7F0640A8 +/* 098BBC 7F06408C 24050100 */ li $a1, 256 +/* 098BC0 7F064090 3C018005 */ lui $at, %hi(D_80053F10) +/* 098BC4 7F064094 C42C3F10 */ lwc1 $f12, %lo(D_80053F10)($at) +/* 098BC8 7F064098 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 098BCC 7F06409C 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 098BD0 7F0640A0 10000009 */ b .L7F0640C8 +/* 098BD4 7F0640A4 27A400B4 */ addiu $a0, $sp, 0xb4 +.L7F0640A8: +/* 098BD8 7F0640A8 0C0030C3 */ jal get_controller_buttons_held +/* 098BDC 7F0640AC 82840000 */ lb $a0, ($s4) +/* 098BE0 7F0640B0 10400004 */ beqz $v0, .L7F0640C4 +/* 098BE4 7F0640B4 3C018005 */ lui $at, %hi(D_80053F14) +/* 098BE8 7F0640B8 C42C3F14 */ lwc1 $f12, %lo(D_80053F14)($at) +/* 098BEC 7F0640BC 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 098BF0 7F0640C0 27A500B4 */ addiu $a1, $sp, 0xb4 +.L7F0640C4: +/* 098BF4 7F0640C4 27A400B4 */ addiu $a0, $sp, 0xb4 +.L7F0640C8: +/* 098BF8 7F0640C8 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 098BFC 7F0640CC 02602825 */ move $a1, $s3 +/* 098C00 7F0640D0 3C018005 */ lui $at, %hi(D_80053F18) +/* 098C04 7F0640D4 C42C3F18 */ lwc1 $f12, %lo(D_80053F18)($at) +/* 098C08 7F0640D8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098C0C 7F0640DC 02402825 */ move $a1, $s2 +/* 098C10 7F0640E0 27AF00F4 */ addiu $t7, $sp, 0xf4 +/* 098C14 7F0640E4 AFAF0010 */ sw $t7, 0x10($sp) +/* 098C18 7F0640E8 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 098C1C 7F0640EC 02602825 */ move $a1, $s3 +/* 098C20 7F0640F0 02403025 */ move $a2, $s2 +/* 098C24 7F0640F4 02C03825 */ move $a3, $s6 +/* 098C28 7F0640F8 AFB50014 */ sw $s5, 0x14($sp) +/* 098C2C 7F0640FC 0FC18D47 */ jal sub_GAME_7F06351C +/* 098C30 7F064100 AFB00018 */ sw $s0, 0x18($sp) +/* 098C34 7F064104 00117180 */ sll $t6, $s1, 6 +/* 098C38 7F064108 01D72821 */ addu $a1, $t6, $s7 +/* 098C3C 7F06410C 0FC16008 */ jal matrix_4x4_copy +/* 098C40 7F064110 02002025 */ move $a0, $s0 +/* 098C44 7F064114 1000005E */ b .L7F064290 +/* 098C48 7F064118 26310001 */ addiu $s1, $s1, 1 +.L7F06411C: +/* 098C4C 7F06411C 24010001 */ li $at, 1 +/* 098C50 7F064120 16210029 */ bne $s1, $at, .L7F0641C8 +/* 098C54 7F064124 3C0A8003 */ lui $t2, %hi(D_80035D44+0xA8) +/* 098C58 7F064128 254A5DEC */ addiu $t2, %lo(D_80035D44+0xA8) # addiu $t2, $t2, 0x5dec +/* 098C5C 7F06412C 8D410000 */ lw $at, ($t2) +/* 098C60 7F064130 27A90090 */ addiu $t1, $sp, 0x90 +/* 098C64 7F064134 8D4C0004 */ lw $t4, 4($t2) +/* 098C68 7F064138 AD210000 */ sw $at, ($t1) +/* 098C6C 7F06413C 8D410008 */ lw $at, 8($t2) +/* 098C70 7F064140 AD2C0004 */ sw $t4, 4($t1) +/* 098C74 7F064144 27AD009C */ addiu $t5, $sp, 0x9c +/* 098C78 7F064148 AD210008 */ sw $at, 8($t1) +/* 098C7C 7F06414C 8FC1004C */ lw $at, 0x4c($fp) +/* 098C80 7F064150 24051000 */ li $a1, 4096 +/* 098C84 7F064154 ADA10000 */ sw $at, ($t5) +/* 098C88 7F064158 8FD80050 */ lw $t8, 0x50($fp) +/* 098C8C 7F06415C ADB80004 */ sw $t8, 4($t5) +/* 098C90 7F064160 8FC10054 */ lw $at, 0x54($fp) +/* 098C94 7F064164 ADA10008 */ sw $at, 8($t5) +/* 098C98 7F064168 0C0030C3 */ jal get_controller_buttons_held +/* 098C9C 7F06416C 82840000 */ lb $a0, ($s4) +/* 098CA0 7F064170 10400004 */ beqz $v0, .L7F064184 +/* 098CA4 7F064174 4600B306 */ mov.s $f12, $f22 +/* 098CA8 7F064178 C7B00094 */ lwc1 $f16, 0x94($sp) +/* 098CAC 7F06417C 46148480 */ add.s $f18, $f16, $f20 +/* 098CB0 7F064180 E7B20094 */ swc1 $f18, 0x94($sp) +.L7F064184: +/* 098CB4 7F064184 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098CB8 7F064188 02402825 */ move $a1, $s2 +/* 098CBC 7F06418C 27A8009C */ addiu $t0, $sp, 0x9c +/* 098CC0 7F064190 AFA80010 */ sw $t0, 0x10($sp) +/* 098CC4 7F064194 27A40090 */ addiu $a0, $sp, 0x90 +/* 098CC8 7F064198 02602825 */ move $a1, $s3 +/* 098CCC 7F06419C 02403025 */ move $a2, $s2 +/* 098CD0 7F0641A0 02C03825 */ move $a3, $s6 +/* 098CD4 7F0641A4 AFB50014 */ sw $s5, 0x14($sp) +/* 098CD8 7F0641A8 0FC18D47 */ jal sub_GAME_7F06351C +/* 098CDC 7F0641AC AFB00018 */ sw $s0, 0x18($sp) +/* 098CE0 7F0641B0 00117980 */ sll $t7, $s1, 6 +/* 098CE4 7F0641B4 01F72821 */ addu $a1, $t7, $s7 +/* 098CE8 7F0641B8 0FC16008 */ jal matrix_4x4_copy +/* 098CEC 7F0641BC 02002025 */ move $a0, $s0 +/* 098CF0 7F0641C0 10000033 */ b .L7F064290 +/* 098CF4 7F0641C4 26310001 */ addiu $s1, $s1, 1 +.L7F0641C8: +/* 098CF8 7F0641C8 2401000C */ li $at, 12 +/* 098CFC 7F0641CC 1621002C */ bne $s1, $at, .L7F064280 +/* 098D00 7F0641D0 8FA4053C */ lw $a0, 0x53c($sp) +/* 098D04 7F0641D4 3C0B8003 */ lui $t3, %hi(D_80035D44+0xB4) +/* 098D08 7F0641D8 256B5DF8 */ addiu $t3, %lo(D_80035D44+0xB4) # addiu $t3, $t3, 0x5df8 +/* 098D0C 7F0641DC 8D610000 */ lw $at, ($t3) +/* 098D10 7F0641E0 27AE0078 */ addiu $t6, $sp, 0x78 +/* 098D14 7F0641E4 8D6A0004 */ lw $t2, 4($t3) +/* 098D18 7F0641E8 ADC10000 */ sw $at, ($t6) +/* 098D1C 7F0641EC 8D610008 */ lw $at, 8($t3) +/* 098D20 7F0641F0 ADCA0004 */ sw $t2, 4($t6) +/* 098D24 7F0641F4 27AC0084 */ addiu $t4, $sp, 0x84 +/* 098D28 7F0641F8 ADC10008 */ sw $at, 8($t6) +/* 098D2C 7F0641FC 8FC100D0 */ lw $at, 0xd0($fp) +/* 098D30 7F064200 24052000 */ li $a1, 8192 +/* 098D34 7F064204 AD810000 */ sw $at, ($t4) +/* 098D38 7F064208 8FCD00D4 */ lw $t5, 0xd4($fp) +/* 098D3C 7F06420C AD8D0004 */ sw $t5, 4($t4) +/* 098D40 7F064210 8FC100D8 */ lw $at, 0xd8($fp) +/* 098D44 7F064214 AD810008 */ sw $at, 8($t4) +/* 098D48 7F064218 0C0030C3 */ jal get_controller_buttons_held +/* 098D4C 7F06421C 82840000 */ lb $a0, ($s4) +/* 098D50 7F064220 10400004 */ beqz $v0, .L7F064234 +/* 098D54 7F064224 3C018005 */ lui $at, %hi(D_80053F1C) +/* 098D58 7F064228 C42C3F1C */ lwc1 $f12, %lo(D_80053F1C)($at) +/* 098D5C 7F06422C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 098D60 7F064230 02602825 */ move $a1, $s3 +.L7F064234: +/* 098D64 7F064234 3C018005 */ lui $at, %hi(D_80053F20) +/* 098D68 7F064238 C42C3F20 */ lwc1 $f12, %lo(D_80053F20)($at) +/* 098D6C 7F06423C 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 098D70 7F064240 02402825 */ move $a1, $s2 +/* 098D74 7F064244 27B80084 */ addiu $t8, $sp, 0x84 +/* 098D78 7F064248 AFB80010 */ sw $t8, 0x10($sp) +/* 098D7C 7F06424C 27A40078 */ addiu $a0, $sp, 0x78 +/* 098D80 7F064250 02602825 */ move $a1, $s3 +/* 098D84 7F064254 02403025 */ move $a2, $s2 +/* 098D88 7F064258 02C03825 */ move $a3, $s6 +/* 098D8C 7F06425C AFB50014 */ sw $s5, 0x14($sp) +/* 098D90 7F064260 0FC18D47 */ jal sub_GAME_7F06351C +/* 098D94 7F064264 AFB00018 */ sw $s0, 0x18($sp) +/* 098D98 7F064268 00114180 */ sll $t0, $s1, 6 +/* 098D9C 7F06426C 01172821 */ addu $a1, $t0, $s7 +/* 098DA0 7F064270 0FC16008 */ jal matrix_4x4_copy +/* 098DA4 7F064274 02002025 */ move $a0, $s0 +/* 098DA8 7F064278 10000005 */ b .L7F064290 +/* 098DAC 7F06427C 26310001 */ addiu $s1, $s1, 1 +.L7F064280: +/* 098DB0 7F064280 00117980 */ sll $t7, $s1, 6 +/* 098DB4 7F064284 0FC16008 */ jal matrix_4x4_copy +/* 098DB8 7F064288 01F72821 */ addu $a1, $t7, $s7 +/* 098DBC 7F06428C 26310001 */ addiu $s1, $s1, 1 +.L7F064290: +/* 098DC0 7F064290 2A21000D */ slti $at, $s1, 0xd +/* 098DC4 7F064294 5420FD91 */ bnezl $at, .L7F0638DC +/* 098DC8 7F064298 3C01C0A0 */ lui $at, 0xc0a0 +/* 098DCC 7F06429C 0FC1BBF1 */ jal sub_GAME_7F06EFC4 +/* 098DD0 7F0642A0 27A404D8 */ addiu $a0, $sp, 0x4d8 +/* 098DD4 7F0642A4 8FA90538 */ lw $t1, 0x538($sp) +/* 098DD8 7F0642A8 27A404F8 */ addiu $a0, $sp, 0x4f8 +/* 098DDC 7F0642AC 27A504D8 */ addiu $a1, $sp, 0x4d8 +/* 098DE0 7F0642B0 0FC1D1A1 */ jal subdraw +/* 098DE4 7F0642B4 AFA90504 */ sw $t1, 0x504($sp) +/* 098DE8 7F0642B8 8FAE0504 */ lw $t6, 0x504($sp) +/* 098DEC 7F0642BC 0FC16319 */ jal sub_GAME_7F058C64 +/* 098DF0 7F0642C0 AFAE0538 */ sw $t6, 0x538($sp) +/* 098DF4 7F0642C4 8FAB03D8 */ lw $t3, 0x3d8($sp) +/* 098DF8 7F0642C8 00008825 */ move $s1, $zero +/* 098DFC 7F0642CC 00008025 */ move $s0, $zero +/* 098E00 7F0642D0 856A000E */ lh $t2, 0xe($t3) +/* 098E04 7F0642D4 19400011 */ blez $t2, .L7F06431C +/* 098E08 7F0642D8 00000000 */ nop +/* 098E0C 7F0642DC 8FB904E4 */ lw $t9, 0x4e4($sp) +.L7F0642E0: +/* 098E10 7F0642E0 27A5041C */ addiu $a1, $sp, 0x41c +/* 098E14 7F0642E4 0FC16008 */ jal matrix_4x4_copy +/* 098E18 7F0642E8 03302021 */ addu $a0, $t9, $s0 +/* 098E1C 7F0642EC 8FAD04E4 */ lw $t5, 0x4e4($sp) +/* 098E20 7F0642F0 00116180 */ sll $t4, $s1, 6 +/* 098E24 7F0642F4 27A4041C */ addiu $a0, $sp, 0x41c +/* 098E28 7F0642F8 0FC16327 */ jal sub_GAME_7F058C9C +/* 098E2C 7F0642FC 018D2821 */ addu $a1, $t4, $t5 +/* 098E30 7F064300 8FB803D8 */ lw $t8, 0x3d8($sp) +/* 098E34 7F064304 26310001 */ addiu $s1, $s1, 1 +/* 098E38 7F064308 26100040 */ addiu $s0, $s0, 0x40 +/* 098E3C 7F06430C 8708000E */ lh $t0, 0xe($t8) +/* 098E40 7F064310 0228082A */ slt $at, $s1, $t0 +/* 098E44 7F064314 5420FFF2 */ bnezl $at, .L7F0642E0 +/* 098E48 7F064318 8FB904E4 */ lw $t9, 0x4e4($sp) +.L7F06431C: +/* 098E4C 7F06431C 0FC16322 */ jal sub_GAME_7F058C88 +/* 098E50 7F064320 00000000 */ nop +.L7F064324: +/* 098E54 7F064324 8FA20538 */ lw $v0, 0x538($sp) +.L7F064328: +/* 098E58 7F064328 8FBF006C */ lw $ra, 0x6c($sp) +/* 098E5C 7F06432C D7B40030 */ ldc1 $f20, 0x30($sp) +/* 098E60 7F064330 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 098E64 7F064334 D7B80040 */ ldc1 $f24, 0x40($sp) +/* 098E68 7F064338 8FB00048 */ lw $s0, 0x48($sp) +/* 098E6C 7F06433C 8FB1004C */ lw $s1, 0x4c($sp) +/* 098E70 7F064340 8FB20050 */ lw $s2, 0x50($sp) +/* 098E74 7F064344 8FB30054 */ lw $s3, 0x54($sp) +/* 098E78 7F064348 8FB40058 */ lw $s4, 0x58($sp) +/* 098E7C 7F06434C 8FB5005C */ lw $s5, 0x5c($sp) +/* 098E80 7F064350 8FB60060 */ lw $s6, 0x60($sp) +/* 098E84 7F064354 8FB70064 */ lw $s7, 0x64($sp) +/* 098E88 7F064358 8FBE0068 */ lw $fp, 0x68($sp) +/* 098E8C 7F06435C 03E00008 */ jr $ra +/* 098E90 7F064360 27BD0538 */ addiu $sp, $sp, 0x538 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F064364(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F064364 +/* 098E94 7F064364 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 098E98 7F064368 AFA7002C */ sw $a3, 0x2c($sp) +/* 098E9C 7F06436C 8FAE002C */ lw $t6, 0x2c($sp) +/* 098EA0 7F064370 8FAF0030 */ lw $t7, 0x30($sp) +/* 098EA4 7F064374 00C03825 */ move $a3, $a2 +/* 098EA8 7F064378 AFBF001C */ sw $ra, 0x1c($sp) +/* 098EAC 7F06437C AFA60028 */ sw $a2, 0x28($sp) +/* 098EB0 7F064380 240600FF */ li $a2, 255 +/* 098EB4 7F064384 AFAE0010 */ sw $t6, 0x10($sp) +/* 098EB8 7F064388 0FC18D67 */ jal sub_GAME_7F06359C +/* 098EBC 7F06438C AFAF0014 */ sw $t7, 0x14($sp) +/* 098EC0 7F064390 8FBF001C */ lw $ra, 0x1c($sp) +/* 098EC4 7F064394 27BD0020 */ addiu $sp, $sp, 0x20 +/* 098EC8 7F064398 03E00008 */ jr $ra +/* 098ECC 7F06439C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0643A0(void) +{ + if (dword_CODE_bss_80075DB8 == 0) { + return &dword_CODE_bss_80075DB8; + } + if (dword_CODE_bss_80075DBC == 0) { + return &dword_CODE_bss_80075DBC; + } + if (dword_CODE_bss_80075DC0 == 0) { + return &dword_CODE_bss_80075DC0; + } + if (dword_CODE_bss_80075DC4 == 0) { + return &dword_CODE_bss_80075DC4; + } + return 0x0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0643A0 +/* 098ED0 7F0643A0 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80075DB8) +/* 098ED4 7F0643A4 8DCE5DB8 */ lw $t6, %lo(dword_CODE_bss_80075DB8)($t6) +/* 098ED8 7F0643A8 3C0F8007 */ lui $t7, %hi(dword_CODE_bss_80075DBC) +/* 098EDC 7F0643AC 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075DB8) +/* 098EE0 7F0643B0 15C00003 */ bnez $t6, .L7F0643C0 +/* 098EE4 7F0643B4 00000000 */ nop +/* 098EE8 7F0643B8 03E00008 */ jr $ra +/* 098EEC 7F0643BC 24425DB8 */ addiu $v0, $v0, %lo(dword_CODE_bss_80075DB8) + +.L7F0643C0: +/* 098EF0 7F0643C0 8DEF5DBC */ lw $t7, %lo(dword_CODE_bss_80075DBC)($t7) +/* 098EF4 7F0643C4 3C188007 */ lui $t8, %hi(dword_CODE_bss_80075DC0) +/* 098EF8 7F0643C8 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075DBC) +/* 098EFC 7F0643CC 15E00003 */ bnez $t7, .L7F0643DC +/* 098F00 7F0643D0 00000000 */ nop +/* 098F04 7F0643D4 03E00008 */ jr $ra +/* 098F08 7F0643D8 24425DBC */ addiu $v0, $v0, %lo(dword_CODE_bss_80075DBC) + +.L7F0643DC: +/* 098F0C 7F0643DC 8F185DC0 */ lw $t8, %lo(dword_CODE_bss_80075DC0)($t8) +/* 098F10 7F0643E0 3C198007 */ lui $t9, %hi(dword_CODE_bss_80075DC4) +/* 098F14 7F0643E4 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075DC0) +/* 098F18 7F0643E8 17000003 */ bnez $t8, .L7F0643F8 +/* 098F1C 7F0643EC 00000000 */ nop +/* 098F20 7F0643F0 03E00008 */ jr $ra +/* 098F24 7F0643F4 24425DC0 */ addiu $v0, $v0, %lo(dword_CODE_bss_80075DC0) + +.L7F0643F8: +/* 098F28 7F0643F8 8F395DC4 */ lw $t9, %lo(dword_CODE_bss_80075DC4)($t9) +/* 098F2C 7F0643FC 00001025 */ move $v0, $zero +/* 098F30 7F064400 17200004 */ bnez $t9, .L7F064414 +/* 098F34 7F064404 00000000 */ nop +/* 098F38 7F064408 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075DC4) +/* 098F3C 7F06440C 03E00008 */ jr $ra +/* 098F40 7F064410 24425DC4 */ addiu $v0, $v0, %lo(dword_CODE_bss_80075DC4) + +.L7F064414: +/* 098F44 7F064414 03E00008 */ jr $ra +/* 098F48 7F064418 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void recall_joy2_hits_edit_detail_edit_flag(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel recall_joy2_hits_edit_detail_edit_flag +/* 098F4C 7F06441C 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 098F50 7F064420 00803825 */ move $a3, $a0 +/* 098F54 7F064424 AFBF0014 */ sw $ra, 0x14($sp) +/* 098F58 7F064428 24A40008 */ addiu $a0, $a1, 8 +/* 098F5C 7F06442C AFA50074 */ sw $a1, 0x74($sp) +/* 098F60 7F064430 AFA60078 */ sw $a2, 0x78($sp) +/* 098F64 7F064434 AFA40024 */ sw $a0, 0x24($sp) +/* 098F68 7F064438 0FC14E79 */ jal sub_GAME_7F0539E4 +/* 098F6C 7F06443C AFA70070 */ sw $a3, 0x70($sp) +/* 098F70 7F064440 0C002914 */ jal get_random_value +/* 098F74 7F064444 AFA2006C */ sw $v0, 0x6c($sp) +/* 098F78 7F064448 0C002914 */ jal get_random_value +/* 098F7C 7F06444C AFA20068 */ sw $v0, 0x68($sp) +/* 098F80 7F064450 8FAE0078 */ lw $t6, 0x78($sp) +/* 098F84 7F064454 3C018005 */ lui $at, %hi(D_800483C4) +/* 098F88 7F064458 AFA20064 */ sw $v0, 0x64($sp) +/* 098F8C 7F06445C 0FC243EB */ jal get_debug_joy2hitsedit_flag +/* 098F90 7F064460 AC2E83C4 */ sw $t6, %lo(D_800483C4)($at) +/* 098F94 7F064464 14400004 */ bnez $v0, .L7F064478 +/* 098F98 7F064468 8FA70070 */ lw $a3, 0x70($sp) +/* 098F9C 7F06446C 0FC243EE */ jal get_debug_joy2detailedit_flag +/* 098FA0 7F064470 AFA70070 */ sw $a3, 0x70($sp) +/* 098FA4 7F064474 8FA70070 */ lw $a3, 0x70($sp) +.L7F064478: +/* 098FA8 7F064478 2401001D */ li $at, 29 +/* 098FAC 7F06447C 10E100A4 */ beq $a3, $at, .L7F064710 +/* 098FB0 7F064480 2401001C */ li $at, 28 +/* 098FB4 7F064484 10E100A2 */ beq $a3, $at, .L7F064710 +/* 098FB8 7F064488 2401001B */ li $at, 27 +/* 098FBC 7F06448C 10E100A0 */ beq $a3, $at, .L7F064710 +/* 098FC0 7F064490 24010021 */ li $at, 33 +/* 098FC4 7F064494 10E1009E */ beq $a3, $at, .L7F064710 +/* 098FC8 7F064498 2401002F */ li $at, 47 +/* 098FCC 7F06449C 10E1009C */ beq $a3, $at, .L7F064710 +/* 098FD0 7F0644A0 24010030 */ li $at, 48 +/* 098FD4 7F0644A4 10E1009A */ beq $a3, $at, .L7F064710 +/* 098FD8 7F0644A8 24010022 */ li $at, 34 +/* 098FDC 7F0644AC 10E10098 */ beq $a3, $at, .L7F064710 +/* 098FE0 7F0644B0 24010017 */ li $at, 23 +/* 098FE4 7F0644B4 10E10096 */ beq $a3, $at, .L7F064710 +/* 098FE8 7F0644B8 2401003C */ li $at, 60 +/* 098FEC 7F0644BC 50E10095 */ beql $a3, $at, .L7F064714 +/* 098FF0 7F0644C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 098FF4 7F0644C4 0FC190E8 */ jal sub_GAME_7F0643A0 +/* 098FF8 7F0644C8 AFA70070 */ sw $a3, 0x70($sp) +/* 098FFC 7F0644CC 8FA70070 */ lw $a3, 0x70($sp) +/* 099000 7F0644D0 10400068 */ beqz $v0, .L7F064674 +/* 099004 7F0644D4 00403025 */ move $a2, $v0 +/* 099008 7F0644D8 8FAF0074 */ lw $t7, 0x74($sp) +/* 09900C 7F0644DC 24010003 */ li $at, 3 +/* 099010 7F0644E0 91E20000 */ lbu $v0, ($t7) +/* 099014 7F0644E4 1041002F */ beq $v0, $at, .L7F0645A4 +/* 099018 7F0644E8 24010006 */ li $at, 6 +/* 09901C 7F0644EC 1041002D */ beq $v0, $at, .L7F0645A4 +/* 099020 7F0644F0 24010016 */ li $at, 22 +/* 099024 7F0644F4 14E10008 */ bne $a3, $at, .L7F064518 +/* 099028 7F0644F8 27A20038 */ addiu $v0, $sp, 0x38 +/* 09902C 7F0644FC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 099030 7F064500 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099034 7F064504 2405005B */ li $a1, 91 +/* 099038 7F064508 0C002382 */ jal play_sfx_a1 +/* 09903C 7F06450C AFA60060 */ sw $a2, 0x60($sp) +/* 099040 7F064510 1000001C */ b .L7F064584 +/* 099044 7F064514 8FAF0060 */ lw $t7, 0x60($sp) +.L7F064518: +/* 099048 7F064518 3C188003 */ lui $t8, %hi(D_80035E04) +/* 09904C 7F06451C 27185E04 */ addiu $t8, %lo(D_80035E04) # addiu $t8, $t8, 0x5e04 +/* 099050 7F064520 27090024 */ addiu $t1, $t8, 0x24 +/* 099054 7F064524 00405025 */ move $t2, $v0 +.L7F064528: +/* 099058 7F064528 8F010000 */ lw $at, ($t8) +/* 09905C 7F06452C 2718000C */ addiu $t8, $t8, 0xc +/* 099060 7F064530 254A000C */ addiu $t2, $t2, 0xc +/* 099064 7F064534 AD41FFF4 */ sw $at, -0xc($t2) +/* 099068 7F064538 8F01FFF8 */ lw $at, -8($t8) +/* 09906C 7F06453C AD41FFF8 */ sw $at, -8($t2) +/* 099070 7F064540 8F01FFFC */ lw $at, -4($t8) +/* 099074 7F064544 1709FFF8 */ bne $t8, $t1, .L7F064528 +/* 099078 7F064548 AD41FFFC */ sw $at, -4($t2) +/* 09907C 7F06454C 8F010000 */ lw $at, ($t8) +/* 099080 7F064550 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 099084 7F064554 AD410000 */ sw $at, ($t2) +/* 099088 7F064558 8FAB0068 */ lw $t3, 0x68($sp) +/* 09908C 7F06455C 24010014 */ li $at, 20 +/* 099090 7F064560 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099094 7F064564 0161001B */ divu $zero, $t3, $at +/* 099098 7F064568 00006010 */ mfhi $t4 +/* 09909C 7F06456C 000C6840 */ sll $t5, $t4, 1 +/* 0990A0 7F064570 004D7021 */ addu $t6, $v0, $t5 +/* 0990A4 7F064574 85C50000 */ lh $a1, ($t6) +/* 0990A8 7F064578 0C002382 */ jal play_sfx_a1 +/* 0990AC 7F06457C AFA60060 */ sw $a2, 0x60($sp) +/* 0990B0 7F064580 8FAF0060 */ lw $t7, 0x60($sp) +.L7F064584: +/* 0990B4 7F064584 24050008 */ li $a1, 8 +/* 0990B8 7F064588 8DE40000 */ lw $a0, ($t7) +/* 0990BC 7F06458C 10800039 */ beqz $a0, .L7F064674 +/* 0990C0 7F064590 00000000 */ nop +/* 0990C4 7F064594 0C002461 */ jal sfx_c_70009184 +/* 0990C8 7F064598 8FA6006C */ lw $a2, 0x6c($sp) +/* 0990CC 7F06459C 10000035 */ b .L7F064674 +/* 0990D0 7F0645A0 00000000 */ nop +.L7F0645A4: +/* 0990D4 7F0645A4 24010002 */ li $at, 2 +/* 0990D8 7F0645A8 14E10007 */ bne $a3, $at, .L7F0645C8 +/* 0990DC 7F0645AC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0990E0 7F0645B0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0990E4 7F0645B4 2405004A */ li $a1, 74 +/* 0990E8 7F0645B8 0C002382 */ jal play_sfx_a1 +/* 0990EC 7F0645BC AFA60060 */ sw $a2, 0x60($sp) +/* 0990F0 7F0645C0 10000026 */ b .L7F06465C +/* 0990F4 7F0645C4 8FAB0060 */ lw $t3, 0x60($sp) +.L7F0645C8: +/* 0990F8 7F0645C8 24010001 */ li $at, 1 +/* 0990FC 7F0645CC 14E10015 */ bne $a3, $at, .L7F064624 +/* 099100 7F0645D0 3C0D8003 */ lui $t5, %hi(D_80035E34) +/* 099104 7F0645D4 3C088003 */ lui $t0, %hi(D_80035E2C) +/* 099108 7F0645D8 25085E2C */ addiu $t0, %lo(D_80035E2C) # addiu $t0, $t0, 0x5e2c +/* 09910C 7F0645DC 8D010000 */ lw $at, ($t0) +/* 099110 7F0645E0 27A20030 */ addiu $v0, $sp, 0x30 +/* 099114 7F0645E4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 099118 7F0645E8 AC410000 */ sw $at, ($v0) +/* 09911C 7F0645EC 95010004 */ lhu $at, 4($t0) +/* 099120 7F0645F0 A4410004 */ sh $at, 4($v0) +/* 099124 7F0645F4 8FB80068 */ lw $t8, 0x68($sp) +/* 099128 7F0645F8 24010003 */ li $at, 3 +/* 09912C 7F0645FC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099130 7F064600 0301001B */ divu $zero, $t8, $at +/* 099134 7F064604 00005010 */ mfhi $t2 +/* 099138 7F064608 000A5840 */ sll $t3, $t2, 1 +/* 09913C 7F06460C 004B6021 */ addu $t4, $v0, $t3 +/* 099140 7F064610 85850000 */ lh $a1, ($t4) +/* 099144 7F064614 0C002382 */ jal play_sfx_a1 +/* 099148 7F064618 AFA60060 */ sw $a2, 0x60($sp) +/* 09914C 7F06461C 1000000F */ b .L7F06465C +/* 099150 7F064620 8FAB0060 */ lw $t3, 0x60($sp) +.L7F064624: +/* 099154 7F064624 25AD5E34 */ addiu $t5, %lo(D_80035E34) # addiu $t5, $t5, 0x5e34 +/* 099158 7F064628 8DA10000 */ lw $at, ($t5) +/* 09915C 7F06462C 27A2002C */ addiu $v0, $sp, 0x2c +/* 099160 7F064630 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 099164 7F064634 AC410000 */ sw $at, ($v0) +/* 099168 7F064638 8FA80068 */ lw $t0, 0x68($sp) +/* 09916C 7F06463C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099170 7F064640 31090001 */ andi $t1, $t0, 1 +/* 099174 7F064644 0009C040 */ sll $t8, $t1, 1 +/* 099178 7F064648 00585021 */ addu $t2, $v0, $t8 +/* 09917C 7F06464C 85450000 */ lh $a1, ($t2) +/* 099180 7F064650 0C002382 */ jal play_sfx_a1 +/* 099184 7F064654 AFA60060 */ sw $a2, 0x60($sp) +/* 099188 7F064658 8FAB0060 */ lw $t3, 0x60($sp) +.L7F06465C: +/* 09918C 7F06465C 24050008 */ li $a1, 8 +/* 099190 7F064660 8D640000 */ lw $a0, ($t3) +/* 099194 7F064664 10800003 */ beqz $a0, .L7F064674 +/* 099198 7F064668 00000000 */ nop +/* 09919C 7F06466C 0C002461 */ jal sfx_c_70009184 +/* 0991A0 7F064670 8FA6006C */ lw $a2, 0x6c($sp) +.L7F064674: +/* 0991A4 7F064674 0FC190E8 */ jal sub_GAME_7F0643A0 +/* 0991A8 7F064678 00000000 */ nop +/* 0991AC 7F06467C 10400024 */ beqz $v0, .L7F064710 +/* 0991B0 7F064680 AFA20060 */ sw $v0, 0x60($sp) +/* 0991B4 7F064684 8FAC0078 */ lw $t4, 0x78($sp) +/* 0991B8 7F064688 3C0E8005 */ lui $t6, %hi(image_entries) +/* 0991BC 7F06468C 05800020 */ bltz $t4, .L7F064710 +/* 0991C0 7F064690 000C78C0 */ sll $t7, $t4, 3 +/* 0991C4 7F064694 01CF7021 */ addu $t6, $t6, $t7 +/* 0991C8 7F064698 8DCE9300 */ lw $t6, %lo(image_entries)($t6) +/* 0991CC 7F06469C 3C028005 */ lui $v0, %hi(D_8004E86C) +/* 0991D0 7F0646A0 000E6F02 */ srl $t5, $t6, 0x1c +/* 0991D4 7F0646A4 000DC880 */ sll $t9, $t5, 2 +/* 0991D8 7F0646A8 00591021 */ addu $v0, $v0, $t9 +/* 0991DC 7F0646AC 8C42E86C */ lw $v0, %lo(D_8004E86C)($v0) +/* 0991E0 7F0646B0 50400018 */ beql $v0, $zero, .L7F064714 +/* 0991E4 7F0646B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0991E8 7F0646B8 84470008 */ lh $a3, 8($v0) +/* 0991EC 7F0646BC 8FA80064 */ lw $t0, 0x64($sp) +/* 0991F0 7F0646C0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0991F4 7F0646C4 18E0000C */ blez $a3, .L7F0646F8 +/* 0991F8 7F0646C8 8FA60060 */ lw $a2, 0x60($sp) +/* 0991FC 7F0646CC 0107001B */ divu $zero, $t0, $a3 +/* 099200 7F0646D0 8C490000 */ lw $t1, ($v0) +/* 099204 7F0646D4 00001810 */ mfhi $v1 +/* 099208 7F0646D8 0003C040 */ sll $t8, $v1, 1 +/* 09920C 7F0646DC 14E00002 */ bnez $a3, .L7F0646E8 +/* 099210 7F0646E0 00000000 */ nop +/* 099214 7F0646E4 0007000D */ break 7 +.L7F0646E8: +/* 099218 7F0646E8 01385021 */ addu $t2, $t1, $t8 +/* 09921C 7F0646EC 85450000 */ lh $a1, ($t2) +/* 099220 7F0646F0 0C002382 */ jal play_sfx_a1 +/* 099224 7F0646F4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +.L7F0646F8: +/* 099228 7F0646F8 8FAB0060 */ lw $t3, 0x60($sp) +/* 09922C 7F0646FC 8D640000 */ lw $a0, ($t3) +/* 099230 7F064700 50800004 */ beql $a0, $zero, .L7F064714 +/* 099234 7F064704 8FBF0014 */ lw $ra, 0x14($sp) +/* 099238 7F064708 0FC14E84 */ jal sub_GAME_7F053A10 +/* 09923C 7F06470C 8FA50024 */ lw $a1, 0x24($sp) +.L7F064710: +/* 099240 7F064710 8FBF0014 */ lw $ra, 0x14($sp) +.L7F064714: +/* 099244 7F064714 27BD0070 */ addiu $sp, $sp, 0x70 +/* 099248 7F064718 03E00008 */ jr $ra +/* 09924C 7F06471C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel recall_joy2_hits_edit_detail_edit_flag +/* 0994B8 7F064948 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0994BC 7F06494C 00803825 */ move $a3, $a0 +/* 0994C0 7F064950 AFBF0014 */ sw $ra, 0x14($sp) +/* 0994C4 7F064954 24A40008 */ addiu $a0, $a1, 8 +/* 0994C8 7F064958 AFA50074 */ sw $a1, 0x74($sp) +/* 0994CC 7F06495C AFA60078 */ sw $a2, 0x78($sp) +/* 0994D0 7F064960 AFA40024 */ sw $a0, 0x24($sp) +/* 0994D4 7F064964 0FC14FB8 */ jal sub_GAME_7F0539E4 +/* 0994D8 7F064968 AFA70070 */ sw $a3, 0x70($sp) +/* 0994DC 7F06496C 0C002918 */ jal get_random_value +/* 0994E0 7F064970 AFA2006C */ sw $v0, 0x6c($sp) +/* 0994E4 7F064974 0C002918 */ jal get_random_value +/* 0994E8 7F064978 AFA20068 */ sw $v0, 0x68($sp) +/* 0994EC 7F06497C 8FAE0078 */ lw $t6, 0x78($sp) +/* 0994F0 7F064980 3C018005 */ lui $at, %hi(D_800483C4) # $at, 0x8005 +/* 0994F4 7F064984 AFA20064 */ sw $v0, 0x64($sp) +/* 0994F8 7F064988 0FC246A3 */ jal get_debug_joy2hitsedit_flag +/* 0994FC 7F06498C AC2E83F8 */ sw $t6, %lo(D_800483C4)($at) +/* 099500 7F064990 14400004 */ bnez $v0, .L7F0649A4 +/* 099504 7F064994 8FA70070 */ lw $a3, 0x70($sp) +/* 099508 7F064998 0FC246A6 */ jal get_debug_joy2detailedit_flag +/* 09950C 7F06499C AFA70070 */ sw $a3, 0x70($sp) +/* 099510 7F0649A0 8FA70070 */ lw $a3, 0x70($sp) +.L7F0649A4: +/* 099514 7F0649A4 2401001D */ li $at, 29 +/* 099518 7F0649A8 10E100A7 */ beq $a3, $at, .L7F064C48 +/* 09951C 7F0649AC 2401001C */ li $at, 28 +/* 099520 7F0649B0 10E100A5 */ beq $a3, $at, .L7F064C48 +/* 099524 7F0649B4 2401001B */ li $at, 27 +/* 099528 7F0649B8 10E100A3 */ beq $a3, $at, .L7F064C48 +/* 09952C 7F0649BC 24010021 */ li $at, 33 +/* 099530 7F0649C0 10E100A1 */ beq $a3, $at, .L7F064C48 +/* 099534 7F0649C4 2401002F */ li $at, 47 +/* 099538 7F0649C8 10E1009F */ beq $a3, $at, .L7F064C48 +/* 09953C 7F0649CC 24010030 */ li $at, 48 +/* 099540 7F0649D0 10E1009D */ beq $a3, $at, .L7F064C48 +/* 099544 7F0649D4 24010022 */ li $at, 34 +/* 099548 7F0649D8 10E1009B */ beq $a3, $at, .L7F064C48 +/* 09954C 7F0649DC 24010017 */ li $at, 23 +/* 099550 7F0649E0 10E10099 */ beq $a3, $at, .L7F064C48 +/* 099554 7F0649E4 2401003C */ li $at, 60 +/* 099558 7F0649E8 10E10097 */ beq $a3, $at, .L7F064C48 +/* 09955C 7F0649EC 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 +/* 099560 7F0649F0 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) +/* 099564 7F0649F4 59E00095 */ blezl $t7, .L7F064C4C +/* 099568 7F0649F8 8FBF0014 */ lw $ra, 0x14($sp) +/* 09956C 7F0649FC 0FC19233 */ jal sub_GAME_7F0643A0 +/* 099570 7F064A00 AFA70070 */ sw $a3, 0x70($sp) +/* 099574 7F064A04 8FA70070 */ lw $a3, 0x70($sp) +/* 099578 7F064A08 10400068 */ beqz $v0, .L7F064BAC +/* 09957C 7F064A0C 00403025 */ move $a2, $v0 +/* 099580 7F064A10 8FB80074 */ lw $t8, 0x74($sp) +/* 099584 7F064A14 24010003 */ li $at, 3 +/* 099588 7F064A18 93020000 */ lbu $v0, ($t8) +/* 09958C 7F064A1C 1041002F */ beq $v0, $at, .L7F064ADC +/* 099590 7F064A20 24010006 */ li $at, 6 +/* 099594 7F064A24 1041002D */ beq $v0, $at, .L7F064ADC +/* 099598 7F064A28 24010016 */ li $at, 22 +/* 09959C 7F064A2C 14E10008 */ bne $a3, $at, .L7F064A50 +/* 0995A0 7F064A30 27A20038 */ addiu $v0, $sp, 0x38 +/* 0995A4 7F064A34 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0995A8 7F064A38 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0995AC 7F064A3C 2405005B */ li $a1, 91 +/* 0995B0 7F064A40 0C002386 */ jal play_sfx_a1 +/* 0995B4 7F064A44 AFA60060 */ sw $a2, 0x60($sp) +/* 0995B8 7F064A48 1000001C */ b .L7F064ABC +/* 0995BC 7F064A4C 8FB80060 */ lw $t8, 0x60($sp) +.L7F064A50: +/* 0995C0 7F064A50 3C198003 */ lui $t9, %hi(D_80035E04) # $t9, 0x8003 +/* 0995C4 7F064A54 27395E44 */ addiu $t9, %lo(D_80035E04) # addiu $t9, $t9, 0x5e44 +/* 0995C8 7F064A58 272A0024 */ addiu $t2, $t9, 0x24 +/* 0995CC 7F064A5C 00405825 */ move $t3, $v0 +.L7F064A60: +/* 0995D0 7F064A60 8F210000 */ lw $at, ($t9) +/* 0995D4 7F064A64 2739000C */ addiu $t9, $t9, 0xc +/* 0995D8 7F064A68 256B000C */ addiu $t3, $t3, 0xc +/* 0995DC 7F064A6C AD61FFF4 */ sw $at, -0xc($t3) +/* 0995E0 7F064A70 8F21FFF8 */ lw $at, -8($t9) +/* 0995E4 7F064A74 AD61FFF8 */ sw $at, -8($t3) +/* 0995E8 7F064A78 8F21FFFC */ lw $at, -4($t9) +/* 0995EC 7F064A7C 172AFFF8 */ bne $t9, $t2, .L7F064A60 +/* 0995F0 7F064A80 AD61FFFC */ sw $at, -4($t3) +/* 0995F4 7F064A84 8F210000 */ lw $at, ($t9) +/* 0995F8 7F064A88 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0995FC 7F064A8C AD610000 */ sw $at, ($t3) +/* 099600 7F064A90 8FAC0068 */ lw $t4, 0x68($sp) +/* 099604 7F064A94 24010014 */ li $at, 20 +/* 099608 7F064A98 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09960C 7F064A9C 0181001B */ divu $zero, $t4, $at +/* 099610 7F064AA0 00006810 */ mfhi $t5 +/* 099614 7F064AA4 000D7040 */ sll $t6, $t5, 1 +/* 099618 7F064AA8 004E7821 */ addu $t7, $v0, $t6 +/* 09961C 7F064AAC 85E50000 */ lh $a1, ($t7) +/* 099620 7F064AB0 0C002386 */ jal play_sfx_a1 +/* 099624 7F064AB4 AFA60060 */ sw $a2, 0x60($sp) +/* 099628 7F064AB8 8FB80060 */ lw $t8, 0x60($sp) +.L7F064ABC: +/* 09962C 7F064ABC 24050008 */ li $a1, 8 +/* 099630 7F064AC0 8F040000 */ lw $a0, ($t8) +/* 099634 7F064AC4 10800039 */ beqz $a0, .L7F064BAC +/* 099638 7F064AC8 00000000 */ nop +/* 09963C 7F064ACC 0C002465 */ jal sfx_c_70009184 +/* 099640 7F064AD0 8FA6006C */ lw $a2, 0x6c($sp) +/* 099644 7F064AD4 10000035 */ b .L7F064BAC +/* 099648 7F064AD8 00000000 */ nop +.L7F064ADC: +/* 09964C 7F064ADC 24010002 */ li $at, 2 +/* 099650 7F064AE0 14E10007 */ bne $a3, $at, .L7F064B00 +/* 099654 7F064AE4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 099658 7F064AE8 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09965C 7F064AEC 2405004A */ li $a1, 74 +/* 099660 7F064AF0 0C002386 */ jal play_sfx_a1 +/* 099664 7F064AF4 AFA60060 */ sw $a2, 0x60($sp) +/* 099668 7F064AF8 10000026 */ b .L7F064B94 +/* 09966C 7F064AFC 8FAC0060 */ lw $t4, 0x60($sp) +.L7F064B00: +/* 099670 7F064B00 24010001 */ li $at, 1 +/* 099674 7F064B04 14E10015 */ bne $a3, $at, .L7F064B5C +/* 099678 7F064B08 3C0E8003 */ lui $t6, %hi(D_80035E34) # $t6, 0x8003 +/* 09967C 7F064B0C 3C098003 */ lui $t1, %hi(D_80035E2C) # $t1, 0x8003 +/* 099680 7F064B10 25295E6C */ addiu $t1, %lo(D_80035E2C) # addiu $t1, $t1, 0x5e6c +/* 099684 7F064B14 8D210000 */ lw $at, ($t1) +/* 099688 7F064B18 27A20030 */ addiu $v0, $sp, 0x30 +/* 09968C 7F064B1C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 099690 7F064B20 AC410000 */ sw $at, ($v0) +/* 099694 7F064B24 95210004 */ lhu $at, 4($t1) +/* 099698 7F064B28 A4410004 */ sh $at, 4($v0) +/* 09969C 7F064B2C 8FB90068 */ lw $t9, 0x68($sp) +/* 0996A0 7F064B30 24010003 */ li $at, 3 +/* 0996A4 7F064B34 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0996A8 7F064B38 0321001B */ divu $zero, $t9, $at +/* 0996AC 7F064B3C 00005810 */ mfhi $t3 +/* 0996B0 7F064B40 000B6040 */ sll $t4, $t3, 1 +/* 0996B4 7F064B44 004C6821 */ addu $t5, $v0, $t4 +/* 0996B8 7F064B48 85A50000 */ lh $a1, ($t5) +/* 0996BC 7F064B4C 0C002386 */ jal play_sfx_a1 +/* 0996C0 7F064B50 AFA60060 */ sw $a2, 0x60($sp) +/* 0996C4 7F064B54 1000000F */ b .L7F064B94 +/* 0996C8 7F064B58 8FAC0060 */ lw $t4, 0x60($sp) +.L7F064B5C: +/* 0996CC 7F064B5C 25CE5E74 */ addiu $t6, %lo(D_80035E34) # addiu $t6, $t6, 0x5e74 +/* 0996D0 7F064B60 8DC10000 */ lw $at, ($t6) +/* 0996D4 7F064B64 27A2002C */ addiu $v0, $sp, 0x2c +/* 0996D8 7F064B68 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0996DC 7F064B6C AC410000 */ sw $at, ($v0) +/* 0996E0 7F064B70 8FA90068 */ lw $t1, 0x68($sp) +/* 0996E4 7F064B74 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0996E8 7F064B78 312A0001 */ andi $t2, $t1, 1 +/* 0996EC 7F064B7C 000AC840 */ sll $t9, $t2, 1 +/* 0996F0 7F064B80 00595821 */ addu $t3, $v0, $t9 +/* 0996F4 7F064B84 85650000 */ lh $a1, ($t3) +/* 0996F8 7F064B88 0C002386 */ jal play_sfx_a1 +/* 0996FC 7F064B8C AFA60060 */ sw $a2, 0x60($sp) +/* 099700 7F064B90 8FAC0060 */ lw $t4, 0x60($sp) +.L7F064B94: +/* 099704 7F064B94 24050008 */ li $a1, 8 +/* 099708 7F064B98 8D840000 */ lw $a0, ($t4) +/* 09970C 7F064B9C 10800003 */ beqz $a0, .L7F064BAC +/* 099710 7F064BA0 00000000 */ nop +/* 099714 7F064BA4 0C002465 */ jal sfx_c_70009184 +/* 099718 7F064BA8 8FA6006C */ lw $a2, 0x6c($sp) +.L7F064BAC: +/* 09971C 7F064BAC 0FC19233 */ jal sub_GAME_7F0643A0 +/* 099720 7F064BB0 00000000 */ nop +/* 099724 7F064BB4 10400024 */ beqz $v0, .L7F064C48 +/* 099728 7F064BB8 AFA20060 */ sw $v0, 0x60($sp) +/* 09972C 7F064BBC 8FAD0078 */ lw $t5, 0x78($sp) +/* 099730 7F064BC0 3C0F8005 */ lui $t7, %hi(image_entries) +/* 099734 7F064BC4 05A00020 */ bltz $t5, .L7F064C48 +/* 099738 7F064BC8 000DC0C0 */ sll $t8, $t5, 3 +/* 09973C 7F064BCC 01F87821 */ addu $t7, $t7, $t8 +/* 099740 7F064BD0 8DEF9330 */ lw $t7, %lo(image_entries)($t7) +/* 099744 7F064BD4 3C028005 */ lui $v0, %hi(D_8004E86C) +/* 099748 7F064BD8 000F7702 */ srl $t6, $t7, 0x1c +/* 09974C 7F064BDC 000E4080 */ sll $t0, $t6, 2 +/* 099750 7F064BE0 00481021 */ addu $v0, $v0, $t0 +/* 099754 7F064BE4 8C42E89C */ lw $v0, %lo(D_8004E86C)($v0) +/* 099758 7F064BE8 50400018 */ beql $v0, $zero, .L7F064C4C +/* 09975C 7F064BEC 8FBF0014 */ lw $ra, 0x14($sp) +/* 099760 7F064BF0 84470008 */ lh $a3, 8($v0) +/* 099764 7F064BF4 8FA90064 */ lw $t1, 0x64($sp) +/* 099768 7F064BF8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09976C 7F064BFC 18E0000C */ blez $a3, .L7F064C30 +/* 099770 7F064C00 8FA60060 */ lw $a2, 0x60($sp) +/* 099774 7F064C04 0127001B */ divu $zero, $t1, $a3 +/* 099778 7F064C08 8C4A0000 */ lw $t2, ($v0) +/* 09977C 7F064C0C 00001810 */ mfhi $v1 +/* 099780 7F064C10 0003C840 */ sll $t9, $v1, 1 +/* 099784 7F064C14 14E00002 */ bnez $a3, .L7F064C20 +/* 099788 7F064C18 00000000 */ nop +/* 09978C 7F064C1C 0007000D */ break 7 +.L7F064C20: +/* 099790 7F064C20 01595821 */ addu $t3, $t2, $t9 +/* 099794 7F064C24 85650000 */ lh $a1, ($t3) +/* 099798 7F064C28 0C002386 */ jal play_sfx_a1 +/* 09979C 7F064C2C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +.L7F064C30: +/* 0997A0 7F064C30 8FAC0060 */ lw $t4, 0x60($sp) +/* 0997A4 7F064C34 8D840000 */ lw $a0, ($t4) +/* 0997A8 7F064C38 50800004 */ beql $a0, $zero, .L7F064C4C +/* 0997AC 7F064C3C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0997B0 7F064C40 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 0997B4 7F064C44 8FA50024 */ lw $a1, 0x24($sp) +.L7F064C48: +/* 0997B8 7F064C48 8FBF0014 */ lw $ra, 0x14($sp) +.L7F064C4C: +/* 0997BC 7F064C4C 27BD0070 */ addiu $sp, $sp, 0x70 +/* 0997C0 7F064C50 03E00008 */ jr $ra +/* 0997C4 7F064C54 00000000 */ nop +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F064720(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F064720 +/* 099250 7F064720 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 099254 7F064724 AFBF0014 */ sw $ra, 0x14($sp) +/* 099258 7F064728 0FC190E8 */ jal sub_GAME_7F0643A0 +/* 09925C 7F06472C AFA40020 */ sw $a0, 0x20($sp) +/* 099260 7F064730 1040000C */ beqz $v0, .L7F064764 +/* 099264 7F064734 00403025 */ move $a2, $v0 +/* 099268 7F064738 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09926C 7F06473C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099270 7F064740 24050046 */ li $a1, 70 +/* 099274 7F064744 0C002382 */ jal play_sfx_a1 +/* 099278 7F064748 AFA2001C */ sw $v0, 0x1c($sp) +/* 09927C 7F06474C 8FA6001C */ lw $a2, 0x1c($sp) +/* 099280 7F064750 8CC40000 */ lw $a0, ($a2) +/* 099284 7F064754 50800004 */ beql $a0, $zero, .L7F064768 +/* 099288 7F064758 8FBF0014 */ lw $ra, 0x14($sp) +/* 09928C 7F06475C 0FC14E84 */ jal sub_GAME_7F053A10 +/* 099290 7F064760 8FA50020 */ lw $a1, 0x20($sp) +.L7F064764: +/* 099294 7F064764 8FBF0014 */ lw $ra, 0x14($sp) +.L7F064768: +/* 099298 7F064768 27BD0020 */ addiu $sp, $sp, 0x20 +/* 09929C 7F06476C 03E00008 */ jr $ra +/* 0992A0 7F064770 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F064720 +/* 0997C8 7F064C58 3C0E8005 */ lui $t6, %hi(clock_timer) # $t6, 0x8005 +/* 0997CC 7F064C5C 8DCE83A4 */ lw $t6, %lo(clock_timer)($t6) +/* 0997D0 7F064C60 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0997D4 7F064C64 AFBF0014 */ sw $ra, 0x14($sp) +/* 0997D8 7F064C68 19C00010 */ blez $t6, .L7F064CAC +/* 0997DC 7F064C6C AFA40020 */ sw $a0, 0x20($sp) +/* 0997E0 7F064C70 0FC19233 */ jal sub_GAME_7F0643A0 +/* 0997E4 7F064C74 00000000 */ nop +/* 0997E8 7F064C78 1040000C */ beqz $v0, .L7F064CAC +/* 0997EC 7F064C7C 00403025 */ move $a2, $v0 +/* 0997F0 7F064C80 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0997F4 7F064C84 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0997F8 7F064C88 24050046 */ li $a1, 70 +/* 0997FC 7F064C8C 0C002386 */ jal play_sfx_a1 +/* 099800 7F064C90 AFA2001C */ sw $v0, 0x1c($sp) +/* 099804 7F064C94 8FA6001C */ lw $a2, 0x1c($sp) +/* 099808 7F064C98 8CC40000 */ lw $a0, ($a2) +/* 09980C 7F064C9C 50800004 */ beql $a0, $zero, .L7F064CB0 +/* 099810 7F064CA0 8FBF0014 */ lw $ra, 0x14($sp) +/* 099814 7F064CA4 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 099818 7F064CA8 8FA50020 */ lw $a1, 0x20($sp) +.L7F064CAC: +/* 09981C 7F064CAC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F064CB0: +/* 099820 7F064CB0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 099824 7F064CB4 03E00008 */ jr $ra +/* 099828 7F064CB8 00000000 */ nop +) +#endif + +#endif + + + +#ifdef NONMATCHING +void recall_joy2_hits_edit_flag(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel recall_joy2_hits_edit_flag +/* 0992A4 7F064774 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0992A8 7F064778 AFBF0014 */ sw $ra, 0x14($sp) +/* 0992AC 7F06477C AFA40080 */ sw $a0, 0x80($sp) +/* 0992B0 7F064780 AFA50084 */ sw $a1, 0x84($sp) +/* 0992B4 7F064784 0C002914 */ jal get_random_value +/* 0992B8 7F064788 AFA60088 */ sw $a2, 0x88($sp) +/* 0992BC 7F06478C 0C002914 */ jal get_random_value +/* 0992C0 7F064790 AFA20078 */ sw $v0, 0x78($sp) +/* 0992C4 7F064794 8FAE0088 */ lw $t6, 0x88($sp) +/* 0992C8 7F064798 3C018005 */ lui $at, %hi(D_800483C4) +/* 0992CC 7F06479C AFA20074 */ sw $v0, 0x74($sp) +/* 0992D0 7F0647A0 0FC243EB */ jal get_debug_joy2hitsedit_flag +/* 0992D4 7F0647A4 AC2E83C4 */ sw $t6, %lo(D_800483C4)($at) +/* 0992D8 7F0647A8 0FC190E8 */ jal sub_GAME_7F0643A0 +/* 0992DC 7F0647AC 00000000 */ nop +/* 0992E0 7F0647B0 10400035 */ beqz $v0, .L7F064888 +/* 0992E4 7F0647B4 00403025 */ move $a2, $v0 +/* 0992E8 7F0647B8 8FA20080 */ lw $v0, 0x80($sp) +/* 0992EC 7F0647BC 24010017 */ li $at, 23 +/* 0992F0 7F0647C0 1041002C */ beq $v0, $at, .L7F064874 +/* 0992F4 7F0647C4 24010016 */ li $at, 22 +/* 0992F8 7F0647C8 14410011 */ bne $v0, $at, .L7F064810 +/* 0992FC 7F0647CC 3C0C8003 */ lui $t4, %hi(D_80035E3C) +/* 099300 7F0647D0 3C0F8003 */ lui $t7, %hi(D_80035E38) +/* 099304 7F0647D4 25EF5E38 */ addiu $t7, %lo(D_80035E38) # addiu $t7, $t7, 0x5e38 +/* 099308 7F0647D8 8DE10000 */ lw $at, ($t7) +/* 09930C 7F0647DC 27A20070 */ addiu $v0, $sp, 0x70 +/* 099310 7F0647E0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 099314 7F0647E4 AC410000 */ sw $at, ($v0) +/* 099318 7F0647E8 8FA80078 */ lw $t0, 0x78($sp) +/* 09931C 7F0647EC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099320 7F0647F0 31090001 */ andi $t1, $t0, 1 +/* 099324 7F0647F4 00095040 */ sll $t2, $t1, 1 +/* 099328 7F0647F8 004A5821 */ addu $t3, $v0, $t2 +/* 09932C 7F0647FC 85650000 */ lh $a1, ($t3) +/* 099330 7F064800 0C002382 */ jal play_sfx_a1 +/* 099334 7F064804 AFA6007C */ sw $a2, 0x7c($sp) +/* 099338 7F064808 1000001A */ b .L7F064874 +/* 09933C 7F06480C 8FA6007C */ lw $a2, 0x7c($sp) +.L7F064810: +/* 099340 7F064810 27A20028 */ addiu $v0, $sp, 0x28 +/* 099344 7F064814 258C5E3C */ addiu $t4, %lo(D_80035E3C) # addiu $t4, $t4, 0x5e3c +/* 099348 7F064818 25980048 */ addiu $t8, $t4, 0x48 +/* 09934C 7F06481C 00407825 */ move $t7, $v0 +.L7F064820: +/* 099350 7F064820 8D810000 */ lw $at, ($t4) +/* 099354 7F064824 258C000C */ addiu $t4, $t4, 0xc +/* 099358 7F064828 25EF000C */ addiu $t7, $t7, 0xc +/* 09935C 7F06482C ADE1FFF4 */ sw $at, -0xc($t7) +/* 099360 7F064830 8D81FFF8 */ lw $at, -8($t4) +/* 099364 7F064834 ADE1FFF8 */ sw $at, -8($t7) +/* 099368 7F064838 8D81FFFC */ lw $at, -4($t4) +/* 09936C 7F06483C 1598FFF8 */ bne $t4, $t8, .L7F064820 +/* 099370 7F064840 ADE1FFFC */ sw $at, -4($t7) +/* 099374 7F064844 8FB90078 */ lw $t9, 0x78($sp) +/* 099378 7F064848 24010024 */ li $at, 36 +/* 09937C 7F06484C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 099380 7F064850 0321001B */ divu $zero, $t9, $at +/* 099384 7F064854 00004010 */ mfhi $t0 +/* 099388 7F064858 00084840 */ sll $t1, $t0, 1 +/* 09938C 7F06485C 00495021 */ addu $t2, $v0, $t1 +/* 099390 7F064860 85450000 */ lh $a1, ($t2) +/* 099394 7F064864 AFA6007C */ sw $a2, 0x7c($sp) +/* 099398 7F064868 0C002382 */ jal play_sfx_a1 +/* 09939C 7F06486C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0993A0 7F064870 8FA6007C */ lw $a2, 0x7c($sp) +.L7F064874: +/* 0993A4 7F064874 8CC40000 */ lw $a0, ($a2) +/* 0993A8 7F064878 10800003 */ beqz $a0, .L7F064888 +/* 0993AC 7F06487C 00000000 */ nop +/* 0993B0 7F064880 0FC14E84 */ jal sub_GAME_7F053A10 +/* 0993B4 7F064884 8FA50084 */ lw $a1, 0x84($sp) +.L7F064888: +/* 0993B8 7F064888 0FC190E8 */ jal sub_GAME_7F0643A0 +/* 0993BC 7F06488C 00000000 */ nop +/* 0993C0 7F064890 10400024 */ beqz $v0, .L7F064924 +/* 0993C4 7F064894 00403025 */ move $a2, $v0 +/* 0993C8 7F064898 8FAB0088 */ lw $t3, 0x88($sp) +/* 0993CC 7F06489C 3C0D8005 */ lui $t5, %hi(image_entries) +/* 0993D0 7F0648A0 05600020 */ bltz $t3, .L7F064924 +/* 0993D4 7F0648A4 000B70C0 */ sll $t6, $t3, 3 +/* 0993D8 7F0648A8 01AE6821 */ addu $t5, $t5, $t6 +/* 0993DC 7F0648AC 8DAD9300 */ lw $t5, %lo(image_entries)($t5) +/* 0993E0 7F0648B0 3C028005 */ lui $v0, %hi(D_8004E86C) +/* 0993E4 7F0648B4 000DC702 */ srl $t8, $t5, 0x1c +/* 0993E8 7F0648B8 00186080 */ sll $t4, $t8, 2 +/* 0993EC 7F0648BC 004C1021 */ addu $v0, $v0, $t4 +/* 0993F0 7F0648C0 8C42E86C */ lw $v0, %lo(D_8004E86C)($v0) +/* 0993F4 7F0648C4 84470008 */ lh $a3, 8($v0) +/* 0993F8 7F0648C8 58E00017 */ blezl $a3, .L7F064928 +/* 0993FC 7F0648CC 8FBF0014 */ lw $ra, 0x14($sp) +/* 099400 7F0648D0 1040000F */ beqz $v0, .L7F064910 +/* 099404 7F0648D4 8FAF0074 */ lw $t7, 0x74($sp) +/* 099408 7F0648D8 01E7001B */ divu $zero, $t7, $a3 +/* 09940C 7F0648DC 8C590000 */ lw $t9, ($v0) +/* 099410 7F0648E0 00001810 */ mfhi $v1 +/* 099414 7F0648E4 00034040 */ sll $t0, $v1, 1 +/* 099418 7F0648E8 03284821 */ addu $t1, $t9, $t0 +/* 09941C 7F0648EC 14E00002 */ bnez $a3, .L7F0648F8 +/* 099420 7F0648F0 00000000 */ nop +/* 099424 7F0648F4 0007000D */ break 7 +.L7F0648F8: +/* 099428 7F0648F8 85250000 */ lh $a1, ($t1) +/* 09942C 7F0648FC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 099430 7F064900 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099434 7F064904 0C002382 */ jal play_sfx_a1 +/* 099438 7F064908 AFA6007C */ sw $a2, 0x7c($sp) +/* 09943C 7F06490C 8FA6007C */ lw $a2, 0x7c($sp) +.L7F064910: +/* 099440 7F064910 8CC40000 */ lw $a0, ($a2) +/* 099444 7F064914 50800004 */ beql $a0, $zero, .L7F064928 +/* 099448 7F064918 8FBF0014 */ lw $ra, 0x14($sp) +/* 09944C 7F06491C 0FC14E84 */ jal sub_GAME_7F053A10 +/* 099450 7F064920 8FA50084 */ lw $a1, 0x84($sp) +.L7F064924: +/* 099454 7F064924 8FBF0014 */ lw $ra, 0x14($sp) +.L7F064928: +/* 099458 7F064928 27BD0080 */ addiu $sp, $sp, 0x80 +/* 09945C 7F06492C 03E00008 */ jr $ra +/* 099460 7F064930 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel recall_joy2_hits_edit_flag +/* 09982C 7F064CBC 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 099830 7F064CC0 AFBF0014 */ sw $ra, 0x14($sp) +/* 099834 7F064CC4 AFA40080 */ sw $a0, 0x80($sp) +/* 099838 7F064CC8 AFA50084 */ sw $a1, 0x84($sp) +/* 09983C 7F064CCC 0C002918 */ jal get_random_value +/* 099840 7F064CD0 AFA60088 */ sw $a2, 0x88($sp) +/* 099844 7F064CD4 0C002918 */ jal get_random_value +/* 099848 7F064CD8 AFA20078 */ sw $v0, 0x78($sp) +/* 09984C 7F064CDC 8FAE0088 */ lw $t6, 0x88($sp) +/* 099850 7F064CE0 3C018005 */ lui $at, %hi(D_800483C4) # $at, 0x8005 +/* 099854 7F064CE4 AFA20074 */ sw $v0, 0x74($sp) +/* 099858 7F064CE8 0FC246A3 */ jal get_debug_joy2hitsedit_flag +/* 09985C 7F064CEC AC2E83F8 */ sw $t6, %lo(D_800483C4)($at) +/* 099860 7F064CF0 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 +/* 099864 7F064CF4 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) +/* 099868 7F064CF8 59E00061 */ blezl $t7, .L7F064E80 +/* 09986C 7F064CFC 8FBF0014 */ lw $ra, 0x14($sp) +/* 099870 7F064D00 0FC19233 */ jal sub_GAME_7F0643A0 +/* 099874 7F064D04 00000000 */ nop +/* 099878 7F064D08 10400035 */ beqz $v0, .L7F064DE0 +/* 09987C 7F064D0C 00403025 */ move $a2, $v0 +/* 099880 7F064D10 8FA20080 */ lw $v0, 0x80($sp) +/* 099884 7F064D14 24010017 */ li $at, 23 +/* 099888 7F064D18 1041002C */ beq $v0, $at, .L7F064DCC +/* 09988C 7F064D1C 24010016 */ li $at, 22 +/* 099890 7F064D20 14410011 */ bne $v0, $at, .L7F064D68 +/* 099894 7F064D24 3C0D8003 */ lui $t5, %hi(D_80035E3C) # $t5, 0x8003 +/* 099898 7F064D28 3C188003 */ lui $t8, %hi(D_80035E38) # $t8, 0x8003 +/* 09989C 7F064D2C 27185E78 */ addiu $t8, %lo(D_80035E38) # addiu $t8, $t8, 0x5e78 +/* 0998A0 7F064D30 8F010000 */ lw $at, ($t8) +/* 0998A4 7F064D34 27A20070 */ addiu $v0, $sp, 0x70 +/* 0998A8 7F064D38 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0998AC 7F064D3C AC410000 */ sw $at, ($v0) +/* 0998B0 7F064D40 8FA90078 */ lw $t1, 0x78($sp) +/* 0998B4 7F064D44 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0998B8 7F064D48 312A0001 */ andi $t2, $t1, 1 +/* 0998BC 7F064D4C 000A5840 */ sll $t3, $t2, 1 +/* 0998C0 7F064D50 004B6021 */ addu $t4, $v0, $t3 +/* 0998C4 7F064D54 85850000 */ lh $a1, ($t4) +/* 0998C8 7F064D58 0C002386 */ jal play_sfx_a1 +/* 0998CC 7F064D5C AFA6007C */ sw $a2, 0x7c($sp) +/* 0998D0 7F064D60 1000001A */ b .L7F064DCC +/* 0998D4 7F064D64 8FA6007C */ lw $a2, 0x7c($sp) +.L7F064D68: +/* 0998D8 7F064D68 27A20028 */ addiu $v0, $sp, 0x28 +/* 0998DC 7F064D6C 25AD5E7C */ addiu $t5, %lo(D_80035E3C) # addiu $t5, $t5, 0x5e7c +/* 0998E0 7F064D70 25B90048 */ addiu $t9, $t5, 0x48 +/* 0998E4 7F064D74 0040C025 */ move $t8, $v0 +.L7F064D78: +/* 0998E8 7F064D78 8DA10000 */ lw $at, ($t5) +/* 0998EC 7F064D7C 25AD000C */ addiu $t5, $t5, 0xc +/* 0998F0 7F064D80 2718000C */ addiu $t8, $t8, 0xc +/* 0998F4 7F064D84 AF01FFF4 */ sw $at, -0xc($t8) +/* 0998F8 7F064D88 8DA1FFF8 */ lw $at, -8($t5) +/* 0998FC 7F064D8C AF01FFF8 */ sw $at, -8($t8) +/* 099900 7F064D90 8DA1FFFC */ lw $at, -4($t5) +/* 099904 7F064D94 15B9FFF8 */ bne $t5, $t9, .L7F064D78 +/* 099908 7F064D98 AF01FFFC */ sw $at, -4($t8) +/* 09990C 7F064D9C 8FA80078 */ lw $t0, 0x78($sp) +/* 099910 7F064DA0 24010024 */ li $at, 36 +/* 099914 7F064DA4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 099918 7F064DA8 0101001B */ divu $zero, $t0, $at +/* 09991C 7F064DAC 00004810 */ mfhi $t1 +/* 099920 7F064DB0 00095040 */ sll $t2, $t1, 1 +/* 099924 7F064DB4 004A5821 */ addu $t3, $v0, $t2 +/* 099928 7F064DB8 85650000 */ lh $a1, ($t3) +/* 09992C 7F064DBC AFA6007C */ sw $a2, 0x7c($sp) +/* 099930 7F064DC0 0C002386 */ jal play_sfx_a1 +/* 099934 7F064DC4 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099938 7F064DC8 8FA6007C */ lw $a2, 0x7c($sp) +.L7F064DCC: +/* 09993C 7F064DCC 8CC40000 */ lw $a0, ($a2) +/* 099940 7F064DD0 10800003 */ beqz $a0, .L7F064DE0 +/* 099944 7F064DD4 00000000 */ nop +/* 099948 7F064DD8 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 09994C 7F064DDC 8FA50084 */ lw $a1, 0x84($sp) +.L7F064DE0: +/* 099950 7F064DE0 0FC19233 */ jal sub_GAME_7F0643A0 +/* 099954 7F064DE4 00000000 */ nop +/* 099958 7F064DE8 10400024 */ beqz $v0, .L7F064E7C +/* 09995C 7F064DEC 00403025 */ move $a2, $v0 +/* 099960 7F064DF0 8FAC0088 */ lw $t4, 0x88($sp) +/* 099964 7F064DF4 3C0E8005 */ lui $t6, %hi(image_entries) +/* 099968 7F064DF8 05800020 */ bltz $t4, .L7F064E7C +/* 09996C 7F064DFC 000C78C0 */ sll $t7, $t4, 3 +/* 099970 7F064E00 01CF7021 */ addu $t6, $t6, $t7 +/* 099974 7F064E04 8DCE9330 */ lw $t6, %lo(image_entries)($t6) +/* 099978 7F064E08 3C028005 */ lui $v0, %hi(D_8004E86C) +/* 09997C 7F064E0C 000ECF02 */ srl $t9, $t6, 0x1c +/* 099980 7F064E10 00196880 */ sll $t5, $t9, 2 +/* 099984 7F064E14 004D1021 */ addu $v0, $v0, $t5 +/* 099988 7F064E18 8C42E89C */ lw $v0, %lo(D_8004E86C)($v0) +/* 09998C 7F064E1C 84470008 */ lh $a3, 8($v0) +/* 099990 7F064E20 58E00017 */ blezl $a3, .L7F064E80 +/* 099994 7F064E24 8FBF0014 */ lw $ra, 0x14($sp) +/* 099998 7F064E28 1040000F */ beqz $v0, .L7F064E68 +/* 09999C 7F064E2C 8FB80074 */ lw $t8, 0x74($sp) +/* 0999A0 7F064E30 0307001B */ divu $zero, $t8, $a3 +/* 0999A4 7F064E34 8C480000 */ lw $t0, ($v0) +/* 0999A8 7F064E38 00001810 */ mfhi $v1 +/* 0999AC 7F064E3C 00034840 */ sll $t1, $v1, 1 +/* 0999B0 7F064E40 01095021 */ addu $t2, $t0, $t1 +/* 0999B4 7F064E44 14E00002 */ bnez $a3, .L7F064E50 +/* 0999B8 7F064E48 00000000 */ nop +/* 0999BC 7F064E4C 0007000D */ break 7 +.L7F064E50: +/* 0999C0 7F064E50 85450000 */ lh $a1, ($t2) +/* 0999C4 7F064E54 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0999C8 7F064E58 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0999CC 7F064E5C 0C002386 */ jal play_sfx_a1 +/* 0999D0 7F064E60 AFA6007C */ sw $a2, 0x7c($sp) +/* 0999D4 7F064E64 8FA6007C */ lw $a2, 0x7c($sp) +.L7F064E68: +/* 0999D8 7F064E68 8CC40000 */ lw $a0, ($a2) +/* 0999DC 7F064E6C 50800004 */ beql $a0, $zero, .L7F064E80 +/* 0999E0 7F064E70 8FBF0014 */ lw $ra, 0x14($sp) +/* 0999E4 7F064E74 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 0999E8 7F064E78 8FA50084 */ lw $a1, 0x84($sp) +.L7F064E7C: +/* 0999EC 7F064E7C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F064E80: +/* 0999F0 7F064E80 27BD0080 */ addiu $sp, $sp, 0x80 +/* 0999F4 7F064E84 03E00008 */ jr $ra +/* 0999F8 7F064E88 00000000 */ nop +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F064934(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F064934 +/* 099464 7F064934 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 099468 7F064938 24010016 */ li $at, 22 +/* 09946C 7F06493C 10810017 */ beq $a0, $at, .L7F06499C +/* 099470 7F064940 AFBF0014 */ sw $ra, 0x14($sp) +/* 099474 7F064944 24010017 */ li $at, 23 +/* 099478 7F064948 10810014 */ beq $a0, $at, .L7F06499C +/* 09947C 7F06494C 3C0F8003 */ lui $t7, %hi(D_80035E84) +/* 099480 7F064950 25EF5E84 */ addiu $t7, %lo(D_80035E84) # addiu $t7, $t7, 0x5e84 +/* 099484 7F064954 8DE10000 */ lw $at, ($t7) +/* 099488 7F064958 27AE001C */ addiu $t6, $sp, 0x1c +/* 09948C 7F06495C 8DF90004 */ lw $t9, 4($t7) +/* 099490 7F064960 ADC10000 */ sw $at, ($t6) +/* 099494 7F064964 95E10008 */ lhu $at, 8($t7) +/* 099498 7F064968 ADD90004 */ sw $t9, 4($t6) +/* 09949C 7F06496C 0C002914 */ jal get_random_value +/* 0994A0 7F064970 A5C10008 */ sh $at, 8($t6) +/* 0994A4 7F064974 24010005 */ li $at, 5 +/* 0994A8 7F064978 0041001B */ divu $zero, $v0, $at +/* 0994AC 7F06497C 00004010 */ mfhi $t0 +/* 0994B0 7F064980 00084840 */ sll $t1, $t0, 1 +/* 0994B4 7F064984 03A92821 */ addu $a1, $sp, $t1 +/* 0994B8 7F064988 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0994BC 7F06498C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0994C0 7F064990 84A5001C */ lh $a1, 0x1c($a1) +/* 0994C4 7F064994 0C002382 */ jal play_sfx_a1 +/* 0994C8 7F064998 00003025 */ move $a2, $zero +.L7F06499C: +/* 0994CC 7F06499C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0994D0 7F0649A0 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0994D4 7F0649A4 03E00008 */ jr $ra +/* 0994D8 7F0649A8 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F064934 +/* 0999FC 7F064E8C 3C0E8005 */ lui $t6, %hi(clock_timer) # $t6, 0x8005 +/* 099A00 7F064E90 8DCE83A4 */ lw $t6, %lo(clock_timer)($t6) +/* 099A04 7F064E94 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 099A08 7F064E98 AFBF0014 */ sw $ra, 0x14($sp) +/* 099A0C 7F064E9C 19C00018 */ blez $t6, .L7F064F00 +/* 099A10 7F064EA0 24010016 */ li $at, 22 +/* 099A14 7F064EA4 10810016 */ beq $a0, $at, .L7F064F00 +/* 099A18 7F064EA8 24010017 */ li $at, 23 +/* 099A1C 7F064EAC 10810014 */ beq $a0, $at, .L7F064F00 +/* 099A20 7F064EB0 3C188003 */ lui $t8, %hi(D_80035E84) # $t8, 0x8003 +/* 099A24 7F064EB4 27185EC4 */ addiu $t8, %lo(D_80035E84) # addiu $t8, $t8, 0x5ec4 +/* 099A28 7F064EB8 8F010000 */ lw $at, ($t8) +/* 099A2C 7F064EBC 27AF001C */ addiu $t7, $sp, 0x1c +/* 099A30 7F064EC0 8F080004 */ lw $t0, 4($t8) +/* 099A34 7F064EC4 ADE10000 */ sw $at, ($t7) +/* 099A38 7F064EC8 97010008 */ lhu $at, 8($t8) +/* 099A3C 7F064ECC ADE80004 */ sw $t0, 4($t7) +/* 099A40 7F064ED0 0C002918 */ jal get_random_value +/* 099A44 7F064ED4 A5E10008 */ sh $at, 8($t7) +/* 099A48 7F064ED8 24010005 */ li $at, 5 +/* 099A4C 7F064EDC 0041001B */ divu $zero, $v0, $at +/* 099A50 7F064EE0 00004810 */ mfhi $t1 +/* 099A54 7F064EE4 00095040 */ sll $t2, $t1, 1 +/* 099A58 7F064EE8 03AA2821 */ addu $a1, $sp, $t2 +/* 099A5C 7F064EEC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 099A60 7F064EF0 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099A64 7F064EF4 84A5001C */ lh $a1, 0x1c($a1) +/* 099A68 7F064EF8 0C002386 */ jal play_sfx_a1 +/* 099A6C 7F064EFC 00003025 */ move $a2, $zero +.L7F064F00: +/* 099A70 7F064F00 8FBF0014 */ lw $ra, 0x14($sp) +/* 099A74 7F064F04 27BD0028 */ addiu $sp, $sp, 0x28 +/* 099A78 7F064F08 03E00008 */ jr $ra +/* 099A7C 7F064F0C 00000000 */ nop +) +#endif + +#endif + + +f32 sub_GAME_7F0649AC(s32 param_1) +{ + f32 fVar1; + + fVar1 = -60.0f; + if (param_1 == 0x19) { + fVar1 -= 20.0f; + } + return fVar1; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0649D8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0649D8 +/* 099508 7F0649D8 000478C0 */ sll $t7, $a0, 3 +/* 09950C 7F0649DC 01E47823 */ subu $t7, $t7, $a0 +/* 099510 7F0649E0 000F7880 */ sll $t7, $t7, 2 +/* 099514 7F0649E4 01E47821 */ addu $t7, $t7, $a0 +/* 099518 7F0649E8 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 09951C 7F0649EC 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 099520 7F0649F0 000F7880 */ sll $t7, $t7, 2 +/* 099524 7F0649F4 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 099528 7F0649F8 01E47821 */ addu $t7, $t7, $a0 +/* 09952C 7F0649FC AFB10018 */ sw $s1, 0x18($sp) +/* 099530 7F064A00 000F78C0 */ sll $t7, $t7, 3 +/* 099534 7F064A04 AFBF001C */ sw $ra, 0x1c($sp) +/* 099538 7F064A08 01CF8821 */ addu $s1, $t6, $t7 +/* 09953C 7F064A0C AFB00014 */ sw $s0, 0x14($sp) +/* 099540 7F064A10 26310870 */ addiu $s1, $s1, 0x870 +/* 099544 7F064A14 0FC17674 */ jal get_item_in_hand +/* 099548 7F064A18 AFA40038 */ sw $a0, 0x38($sp) +/* 09954C 7F064A1C 8E38002C */ lw $t8, 0x2c($s1) +/* 099550 7F064A20 00408025 */ move $s0, $v0 +/* 099554 7F064A24 8FA40038 */ lw $a0, 0x38($sp) +/* 099558 7F064A28 0FC1A4DD */ jal get_ammo_in_hands_weapon +/* 09955C 7F064A2C AFB8002C */ sw $t8, 0x2c($sp) +/* 099560 7F064A30 AFA20028 */ sw $v0, 0x28($sp) +/* 099564 7F064A34 0FC1722D */ jal get_ptr_item_statistics +/* 099568 7F064A38 02002025 */ move $a0, $s0 +/* 09956C 7F064A3C 8FB90028 */ lw $t9, 0x28($sp) +/* 099570 7F064A40 8FA8002C */ lw $t0, 0x2c($sp) +/* 099574 7F064A44 84440020 */ lh $a0, 0x20($v0) +/* 099578 7F064A48 00403025 */ move $a2, $v0 +/* 09957C 7F064A4C 03281821 */ addu $v1, $t9, $t0 +/* 099580 7F064A50 0064082A */ slt $at, $v1, $a0 +/* 099584 7F064A54 14200003 */ bnez $at, .L7F064A64 +/* 099588 7F064A58 3C050020 */ lui $a1, 0x20 +/* 09958C 7F064A5C 10000002 */ b .L7F064A68 +/* 099590 7F064A60 AE24002C */ sw $a0, 0x2c($s1) +.L7F064A64: +/* 099594 7F064A64 AE23002C */ sw $v1, 0x2c($s1) +.L7F064A68: +/* 099598 7F064A68 02002025 */ move $a0, $s0 +/* 09959C 7F064A6C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0995A0 7F064A70 AFA60024 */ sw $a2, 0x24($sp) +/* 0995A4 7F064A74 10400008 */ beqz $v0, .L7F064A98 +/* 0995A8 7F064A78 8FA60024 */ lw $a2, 0x24($sp) +/* 0995AC 7F064A7C 8CCA001C */ lw $t2, 0x1c($a2) +/* 0995B0 7F064A80 3C098008 */ lui $t1, %hi(pPlayer) +/* 0995B4 7F064A84 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0995B8 7F064A88 000A5880 */ sll $t3, $t2, 2 +/* 0995BC 7F064A8C 012B6021 */ addu $t4, $t1, $t3 +/* 0995C0 7F064A90 1000000C */ b .L7F064AC4 +/* 0995C4 7F064A94 AD801130 */ sw $zero, 0x1130($t4) +.L7F064A98: +/* 0995C8 7F064A98 8CCE001C */ lw $t6, 0x1c($a2) +/* 0995CC 7F064A9C 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0995D0 7F064AA0 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0995D4 7F064AA4 000E7880 */ sll $t7, $t6, 2 +/* 0995D8 7F064AA8 8E39002C */ lw $t9, 0x2c($s1) +/* 0995DC 7F064AAC 01AF1021 */ addu $v0, $t5, $t7 +/* 0995E0 7F064AB0 8C581130 */ lw $t8, 0x1130($v0) +/* 0995E4 7F064AB4 8FAA002C */ lw $t2, 0x2c($sp) +/* 0995E8 7F064AB8 03194023 */ subu $t0, $t8, $t9 +/* 0995EC 7F064ABC 010A4821 */ addu $t1, $t0, $t2 +/* 0995F0 7F064AC0 AC491130 */ sw $t1, 0x1130($v0) +.L7F064AC4: +/* 0995F4 7F064AC4 24010019 */ li $at, 25 +/* 0995F8 7F064AC8 56010006 */ bnel $s0, $at, .L7F064AE4 +/* 0995FC 7F064ACC 2401000F */ li $at, 15 +/* 099600 7F064AD0 0FC17E9F */ jal sub_GAME_7F05FA7C +/* 099604 7F064AD4 8FA40038 */ lw $a0, 0x38($sp) +/* 099608 7F064AD8 1000000F */ b .L7F064B18 +/* 09960C 7F064ADC 8FBF001C */ lw $ra, 0x1c($sp) +/* 099610 7F064AE0 2401000F */ li $at, 15 +.L7F064AE4: +/* 099614 7F064AE4 12010003 */ beq $s0, $at, .L7F064AF4 +/* 099618 7F064AE8 24010010 */ li $at, 16 +/* 09961C 7F064AEC 5601000A */ bnel $s0, $at, .L7F064B18 +/* 099620 7F064AF0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F064AF4: +/* 099624 7F064AF4 0FC1A4DD */ jal get_ammo_in_hands_weapon +/* 099628 7F064AF8 8FA40038 */ lw $a0, 0x38($sp) +/* 09962C 7F064AFC 28410005 */ slti $at, $v0, 5 +/* 099630 7F064B00 14200003 */ bnez $at, .L7F064B10 +/* 099634 7F064B04 240B0005 */ li $t3, 5 +/* 099638 7F064B08 10000002 */ b .L7F064B14 +/* 09963C 7F064B0C AE2B0034 */ sw $t3, 0x34($s1) +.L7F064B10: +/* 099640 7F064B10 AE220034 */ sw $v0, 0x34($s1) +.L7F064B14: +/* 099644 7F064B14 8FBF001C */ lw $ra, 0x1c($sp) +.L7F064B18: +/* 099648 7F064B18 8FB00014 */ lw $s0, 0x14($sp) +/* 09964C 7F064B1C 8FB10018 */ lw $s1, 0x18($sp) +/* 099650 7F064B20 03E00008 */ jr $ra +/* 099654 7F064B24 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void handle_weapon_id_values_possibly_1st_person_animation(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +/*D:80053F24*/ +glabel jpt_80053F24 +.word Weapon_function_slapper +.word Weapon_function_hunting_knife +.word Weapon_function_throwing_knife +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_magnum +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_magnum +.word Weapon_function_guns +.word Weapon_function_grenades +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_guns +.word Weapon_function_tazer +.word Weapon_function_guns +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_camera +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_collectible +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_guns +.word Weapon_function_throwable_item +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_key +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible + +/*D:80054084*/ +glabel jpt_80054084 +.word Weapon_shooting_noammo +.word Weapon_shooting_throwable +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_pistol +.word Weapon_shooting_tazer +.word Weapon_shooting_pistol +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_watch_magnet +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_watch_magnet + +glabel D_80054170 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054174 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80054178 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005417C +.word 0x40490fdb /*3.1415927*/ +glabel D_80054180 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80054184 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054188 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_8005418C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054190 +.word 0x3f32b8c3 /*0.69813174*/ + +/*D:80054194*/ +glabel jpt_80054194 +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_playsfx_knife +.word weapon_playsfx_knife +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_F2 +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_playsfx_mine +.word weapon_playsfx_mine +.word weapon_playsfx_mine +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE + +glabel D_8005428C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054290 +.word 0x3f32b8c3 /*0.69813174*/ + +/*D:80054294*/ +glabel jpt_80054294 +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx + +glabel D_8005438C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054390 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054394 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054398 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_8005439C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543A0 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543A4 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543A8 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543AC +.word 0x3f32b8c3 /*0.69813174*/ + +.text +glabel handle_weapon_id_values_possibly_1st_person_animation +/* 099658 7F064B28 000410C0 */ sll $v0, $a0, 3 +/* 09965C 7F064B2C 00441023 */ subu $v0, $v0, $a0 +/* 099660 7F064B30 00021080 */ sll $v0, $v0, 2 +/* 099664 7F064B34 27BDFE30 */ addiu $sp, $sp, -0x1d0 +/* 099668 7F064B38 00441021 */ addu $v0, $v0, $a0 +/* 09966C 7F064B3C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 099670 7F064B40 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 099674 7F064B44 00021080 */ sll $v0, $v0, 2 +/* 099678 7F064B48 00441021 */ addu $v0, $v0, $a0 +/* 09967C 7F064B4C AFB0001C */ sw $s0, 0x1c($sp) +/* 099680 7F064B50 000210C0 */ sll $v0, $v0, 3 +/* 099684 7F064B54 AFBF0024 */ sw $ra, 0x24($sp) +/* 099688 7F064B58 01C28021 */ addu $s0, $t6, $v0 +/* 09968C 7F064B5C AFB10020 */ sw $s1, 0x20($sp) +/* 099690 7F064B60 AFA501D4 */ sw $a1, 0x1d4($sp) +/* 099694 7F064B64 26100870 */ addiu $s0, $s0, 0x870 +/* 099698 7F064B68 AFA20038 */ sw $v0, 0x38($sp) +/* 09969C 7F064B6C 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0996A0 7F064B70 AFA401D0 */ sw $a0, 0x1d0($sp) +/* 0996A4 7F064B74 00408825 */ move $s1, $v0 +/* 0996A8 7F064B78 0FC1A50B */ jal get_ammo_type_for_weapon +/* 0996AC 7F064B7C 00402025 */ move $a0, $v0 +/* 0996B0 7F064B80 8FA301D4 */ lw $v1, 0x1d4($sp) +/* 0996B4 7F064B84 8E0F0010 */ lw $t7, 0x10($s0) +/* 0996B8 7F064B88 00403025 */ move $a2, $v0 +/* 0996BC 7F064B8C AE030010 */ sw $v1, 0x10($s0) +/* 0996C0 7F064B90 14600003 */ bnez $v1, .L7F064BA0 +/* 0996C4 7F064B94 AE0F0014 */ sw $t7, 0x14($s0) +/* 0996C8 7F064B98 24180001 */ li $t8, 1 +/* 0996CC 7F064B9C AE180018 */ sw $t8, 0x18($s0) +.L7F064BA0: +/* 0996D0 7F064BA0 A200000C */ sb $zero, 0xc($s0) +/* 0996D4 7F064BA4 A200000D */ sb $zero, 0xd($s0) +/* 0996D8 7F064BA8 3C028005 */ lui $v0, %hi(clock_timer) +/* 0996DC 7F064BAC 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0996E0 7F064BB0 58400008 */ blezl $v0, .L7F064BD4 +/* 0996E4 7F064BB4 8E0E0024 */ lw $t6, 0x24($s0) +/* 0996E8 7F064BB8 8E190020 */ lw $t9, 0x20($s0) +/* 0996EC 7F064BBC 8E0C001C */ lw $t4, 0x1c($s0) +/* 0996F0 7F064BC0 03225821 */ addu $t3, $t9, $v0 +/* 0996F4 7F064BC4 258D0001 */ addiu $t5, $t4, 1 +/* 0996F8 7F064BC8 AE0B0020 */ sw $t3, 0x20($s0) +/* 0996FC 7F064BCC AE0D001C */ sw $t5, 0x1c($s0) +/* 099700 7F064BD0 8E0E0024 */ lw $t6, 0x24($s0) +.L7F064BD4: +/* 099704 7F064BD4 AE0000BC */ sw $zero, 0xbc($s0) +/* 099708 7F064BD8 55C00072 */ bnezl $t6, .L7F064DA4 +/* 09970C 7F064BDC 8E020024 */ lw $v0, 0x24($s0) +/* 099710 7F064BE0 8E0F0010 */ lw $t7, 0x10($s0) +/* 099714 7F064BE4 51E00011 */ beql $t7, $zero, .L7F064C2C +/* 099718 7F064BE8 8E020028 */ lw $v0, 0x28($s0) +/* 09971C 7F064BEC 1220000E */ beqz $s1, .L7F064C28 +/* 099720 7F064BF0 02202025 */ move $a0, $s1 +/* 099724 7F064BF4 24050010 */ li $a1, 16 +/* 099728 7F064BF8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09972C 7F064BFC AFA601C4 */ sw $a2, 0x1c4($sp) +/* 099730 7F064C00 14400003 */ bnez $v0, .L7F064C10 +/* 099734 7F064C04 8FA601C4 */ lw $a2, 0x1c4($sp) +/* 099738 7F064C08 8E18002C */ lw $t8, 0x2c($s0) +/* 09973C 7F064C0C 1B000006 */ blez $t8, .L7F064C28 +.L7F064C10: +/* 099740 7F064C10 24190001 */ li $t9, 1 +/* 099744 7F064C14 AE190024 */ sw $t9, 0x24($s0) +/* 099748 7F064C18 AE000020 */ sw $zero, 0x20($s0) +/* 09974C 7F064C1C AE00001C */ sw $zero, 0x1c($s0) +/* 099750 7F064C20 10000007 */ b .L7F064C40 +/* 099754 7F064C24 AE000018 */ sw $zero, 0x18($s0) +.L7F064C28: +/* 099758 7F064C28 8E020028 */ lw $v0, 0x28($s0) +.L7F064C2C: +/* 09975C 7F064C2C 50400005 */ beql $v0, $zero, .L7F064C44 +/* 099760 7F064C30 8E0B0024 */ lw $t3, 0x24($s0) +/* 099764 7F064C34 AE020024 */ sw $v0, 0x24($s0) +/* 099768 7F064C38 AE000020 */ sw $zero, 0x20($s0) +/* 09976C 7F064C3C AE00001C */ sw $zero, 0x1c($s0) +.L7F064C40: +/* 099770 7F064C40 8E0B0024 */ lw $t3, 0x24($s0) +.L7F064C44: +/* 099774 7F064C44 AE000028 */ sw $zero, 0x28($s0) +/* 099778 7F064C48 55600056 */ bnezl $t3, .L7F064DA4 +/* 09977C 7F064C4C 8E020024 */ lw $v0, 0x24($s0) +/* 099780 7F064C50 8E0C002C */ lw $t4, 0x2c($s0) +/* 099784 7F064C54 55800053 */ bnezl $t4, .L7F064DA4 +/* 099788 7F064C58 8E020024 */ lw $v0, 0x24($s0) +/* 09978C 7F064C5C 50C00051 */ beql $a2, $zero, .L7F064DA4 +/* 099790 7F064C60 8E020024 */ lw $v0, 0x24($s0) +/* 099794 7F064C64 0FC2FF01 */ jal get_controls_locked_flag +/* 099798 7F064C68 AFA601C4 */ sw $a2, 0x1c4($sp) +/* 09979C 7F064C6C 1440004C */ bnez $v0, .L7F064DA0 +/* 0997A0 7F064C70 8FA601C4 */ lw $a2, 0x1c4($sp) +/* 0997A4 7F064C74 3C028008 */ lui $v0, %hi(pPlayer) +/* 0997A8 7F064C78 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0997AC 7F064C7C 3C0E8003 */ lui $t6, %hi(D_80032458) +/* 0997B0 7F064C80 8C4D29C4 */ lw $t5, 0x29c4($v0) +/* 0997B4 7F064C84 55A00047 */ bnezl $t5, .L7F064DA4 +/* 0997B8 7F064C88 8E020024 */ lw $v0, 0x24($s0) +/* 0997BC 7F064C8C 8DCE2458 */ lw $t6, %lo(D_80032458)($t6) +/* 0997C0 7F064C90 24010001 */ li $at, 1 +/* 0997C4 7F064C94 11C00009 */ beqz $t6, .L7F064CBC +/* 0997C8 7F064C98 00000000 */ nop +/* 0997CC 7F064C9C 14C10007 */ bne $a2, $at, .L7F064CBC +/* 0997D0 7F064CA0 00067880 */ sll $t7, $a2, 2 +/* 0997D4 7F064CA4 004F1821 */ addu $v1, $v0, $t7 +/* 0997D8 7F064CA8 8C781130 */ lw $t8, 0x1130($v1) +/* 0997DC 7F064CAC 24190001 */ li $t9, 1 +/* 0997E0 7F064CB0 1F000002 */ bgtz $t8, .L7F064CBC +/* 0997E4 7F064CB4 00000000 */ nop +/* 0997E8 7F064CB8 AC791130 */ sw $t9, 0x1130($v1) +.L7F064CBC: +/* 0997EC 7F064CBC 0FC1A4DD */ jal get_ammo_in_hands_weapon +/* 0997F0 7F064CC0 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 0997F4 7F064CC4 18400006 */ blez $v0, .L7F064CE0 +/* 0997F8 7F064CC8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0997FC 7F064CCC 240B0009 */ li $t3, 9 +/* 099800 7F064CD0 AE0B0024 */ sw $t3, 0x24($s0) +/* 099804 7F064CD4 AE000020 */ sw $zero, 0x20($s0) +/* 099808 7F064CD8 10000031 */ b .L7F064DA0 +/* 09980C 7F064CDC AE00001C */ sw $zero, 0x1c($s0) +.L7F064CE0: +/* 099810 7F064CE0 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 099814 7F064CE4 8FAE01D0 */ lw $t6, 0x1d0($sp) +/* 099818 7F064CE8 240F0001 */ li $t7, 1 +/* 09981C 7F064CEC 8D8D0FC8 */ lw $t5, 0xfc8($t4) +/* 099820 7F064CF0 01EE2023 */ subu $a0, $t7, $t6 +/* 099824 7F064CF4 51A0002B */ beql $t5, $zero, .L7F064DA4 +/* 099828 7F064CF8 8E020024 */ lw $v0, 0x24($s0) +/* 09982C 7F064CFC 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 099830 7F064D00 AFA4003C */ sw $a0, 0x3c($sp) +/* 099834 7F064D04 3C188008 */ lui $t8, %hi(pPlayer) +/* 099838 7F064D08 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 09983C 7F064D0C 8FB90038 */ lw $t9, 0x38($sp) +/* 099840 7F064D10 00402025 */ move $a0, $v0 +/* 099844 7F064D14 03191823 */ subu $v1, $t8, $t9 +/* 099848 7F064D18 8C6B0C3C */ lw $t3, 0xc3c($v1) +/* 09984C 7F064D1C 24630C18 */ addiu $v1, $v1, 0xc18 +/* 099850 7F064D20 55600020 */ bnezl $t3, .L7F064DA4 +/* 099854 7F064D24 8E020024 */ lw $v0, 0x24($s0) +/* 099858 7F064D28 8C6C0028 */ lw $t4, 0x28($v1) +/* 09985C 7F064D2C 5580001D */ bnezl $t4, .L7F064DA4 +/* 099860 7F064D30 8E020024 */ lw $v0, 0x24($s0) +/* 099864 7F064D34 1040000D */ beqz $v0, .L7F064D6C +/* 099868 7F064D38 00000000 */ nop +/* 09986C 7F064D3C 8C6D002C */ lw $t5, 0x2c($v1) +/* 099870 7F064D40 55A00018 */ bnezl $t5, .L7F064DA4 +/* 099874 7F064D44 8E020024 */ lw $v0, 0x24($s0) +/* 099878 7F064D48 0FC1A50B */ jal get_ammo_type_for_weapon +/* 09987C 7F064D4C AFA301BC */ sw $v1, 0x1bc($sp) +/* 099880 7F064D50 10400013 */ beqz $v0, .L7F064DA0 +/* 099884 7F064D54 8FA301BC */ lw $v1, 0x1bc($sp) +/* 099888 7F064D58 8FA4003C */ lw $a0, 0x3c($sp) +/* 09988C 7F064D5C 0FC1A4DD */ jal get_ammo_in_hands_weapon +/* 099890 7F064D60 AFA301BC */ sw $v1, 0x1bc($sp) +/* 099894 7F064D64 1C40000E */ bgtz $v0, .L7F064DA0 +/* 099898 7F064D68 8FA301BC */ lw $v1, 0x1bc($sp) +.L7F064D6C: +/* 09989C 7F064D6C 0FC17600 */ jal autoadvance_on_deplete_all_ammo +/* 0998A0 7F064D70 AFA301BC */ sw $v1, 0x1bc($sp) +/* 0998A4 7F064D74 8FA301BC */ lw $v1, 0x1bc($sp) +/* 0998A8 7F064D78 8E0F0028 */ lw $t7, 0x28($s0) +/* 0998AC 7F064D7C AE00001C */ sw $zero, 0x1c($s0) +/* 0998B0 7F064D80 AE000020 */ sw $zero, 0x20($s0) +/* 0998B4 7F064D84 AE000028 */ sw $zero, 0x28($s0) +/* 0998B8 7F064D88 AE0F0024 */ sw $t7, 0x24($s0) +/* 0998BC 7F064D8C 8C6E0028 */ lw $t6, 0x28($v1) +/* 0998C0 7F064D90 AC60001C */ sw $zero, 0x1c($v1) +/* 0998C4 7F064D94 AC600020 */ sw $zero, 0x20($v1) +/* 0998C8 7F064D98 AC600028 */ sw $zero, 0x28($v1) +/* 0998CC 7F064D9C AC6E0024 */ sw $t6, 0x24($v1) +.L7F064DA0: +/* 0998D0 7F064DA0 8E020024 */ lw $v0, 0x24($s0) +.L7F064DA4: +/* 0998D4 7F064DA4 24010001 */ li $at, 1 +/* 0998D8 7F064DA8 1441007E */ bne $v0, $at, .L7F064FA4 +/* 0998DC 7F064DAC 2638FFFF */ addiu $t8, $s1, -1 +/* 0998E0 7F064DB0 2F010058 */ sltiu $at, $t8, 0x58 +/* 0998E4 7F064DB4 10200076 */ beqz $at, .L7F064F90 +/* 0998E8 7F064DB8 0018C080 */ sll $t8, $t8, 2 +/* 0998EC 7F064DBC 3C018005 */ lui $at, %hi(jpt_80053F24) +/* 0998F0 7F064DC0 00380821 */ addu $at, $at, $t8 +/* 0998F4 7F064DC4 8C383F24 */ lw $t8, %lo(jpt_80053F24)($at) +/* 0998F8 7F064DC8 03000008 */ jr $t8 +/* 0998FC 7F064DCC 00000000 */ nop +Weapon_function_magnum: +/* 099900 7F064DD0 8E190020 */ lw $t9, 0x20($s0) +/* 099904 7F064DD4 240B0002 */ li $t3, 2 +/* 099908 7F064DD8 2B210006 */ slti $at, $t9, 6 +/* 09990C 7F064DDC 54200070 */ bnezl $at, .L7F064FA0 +/* 099910 7F064DE0 AE000398 */ sw $zero, 0x398($s0) +/* 099914 7F064DE4 AE0B0024 */ sw $t3, 0x24($s0) +/* 099918 7F064DE8 AE000020 */ sw $zero, 0x20($s0) +/* 09991C 7F064DEC 1000006B */ b .L7F064F9C +/* 099920 7F064DF0 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_camera: +/* 099924 7F064DF4 8E0C001C */ lw $t4, 0x1c($s0) +/* 099928 7F064DF8 00002025 */ move $a0, $zero +/* 09992C 7F064DFC 00002825 */ move $a1, $zero +/* 099930 7F064E00 15800005 */ bnez $t4, .L7F064E18 +/* 099934 7F064E04 00003025 */ move $a2, $zero +/* 099938 7F064E08 0FC201EC */ jal set_rgba_tint +/* 09993C 7F064E0C 3C073F80 */ lui $a3, 0x3f80 +/* 099940 7F064E10 10000063 */ b .L7F064FA0 +/* 099944 7F064E14 AE000398 */ sw $zero, 0x398($s0) +.L7F064E18: +/* 099948 7F064E18 8E0D0020 */ lw $t5, 0x20($s0) +/* 09994C 7F064E1C 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 099950 7F064E20 00002825 */ move $a1, $zero +/* 099954 7F064E24 19A0005D */ blez $t5, .L7F064F9C +/* 099958 7F064E28 00003025 */ move $a2, $zero +/* 09995C 7F064E2C 44802000 */ mtc1 $zero, $f4 +/* 099960 7F064E30 44816000 */ mtc1 $at, $f12 +/* 099964 7F064E34 00003825 */ move $a3, $zero +/* 099968 7F064E38 0FC201F8 */ jal sub_GAME_7F0807E0 +/* 09996C 7F064E3C E7A40010 */ swc1 $f4, 0x10($sp) +/* 099970 7F064E40 240F0002 */ li $t7, 2 +/* 099974 7F064E44 AE0F0024 */ sw $t7, 0x24($s0) +/* 099978 7F064E48 AE000020 */ sw $zero, 0x20($s0) +/* 09997C 7F064E4C 10000053 */ b .L7F064F9C +/* 099980 7F064E50 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_guns: +/* 099984 7F064E54 240E0002 */ li $t6, 2 +/* 099988 7F064E58 AE0E0024 */ sw $t6, 0x24($s0) +/* 09998C 7F064E5C AE000020 */ sw $zero, 0x20($s0) +/* 099990 7F064E60 1000004E */ b .L7F064F9C +/* 099994 7F064E64 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_throwable_item: +/* 099998 7F064E68 2418001C */ li $t8, 28 +/* 09999C 7F064E6C AE180024 */ sw $t8, 0x24($s0) +/* 0999A0 7F064E70 AE000020 */ sw $zero, 0x20($s0) +/* 0999A4 7F064E74 10000049 */ b .L7F064F9C +/* 0999A8 7F064E78 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_hunting_knife: +/* 0999AC 7F064E7C 0C002914 */ jal get_random_value +/* 0999B0 7F064E80 00000000 */ nop +/* 0999B4 7F064E84 30590001 */ andi $t9, $v0, 1 +/* 0999B8 7F064E88 17200004 */ bnez $t9, .L7F064E9C +/* 0999BC 7F064E8C 240C0014 */ li $t4, 20 +/* 0999C0 7F064E90 240B0011 */ li $t3, 17 +/* 0999C4 7F064E94 10000002 */ b .L7F064EA0 +/* 0999C8 7F064E98 AE0B0024 */ sw $t3, 0x24($s0) +.L7F064E9C: +/* 0999CC 7F064E9C AE0C0024 */ sw $t4, 0x24($s0) +.L7F064EA0: +/* 0999D0 7F064EA0 AE000020 */ sw $zero, 0x20($s0) +/* 0999D4 7F064EA4 1000003D */ b .L7F064F9C +/* 0999D8 7F064EA8 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_grenades: +/* 0999DC 7F064EAC 8E0D0018 */ lw $t5, 0x18($s0) +/* 0999E0 7F064EB0 3C188008 */ lui $t8, %hi(pPlayer) +/* 0999E4 7F064EB4 55A00006 */ bnezl $t5, .L7F064ED0 +/* 0999E8 7F064EB8 8E0E0020 */ lw $t6, 0x20($s0) +/* 0999EC 7F064EBC 8E0F0020 */ lw $t7, 0x20($s0) +/* 0999F0 7F064EC0 29E100F0 */ slti $at, $t7, 0xf0 +/* 0999F4 7F064EC4 54200036 */ bnezl $at, .L7F064FA0 +/* 0999F8 7F064EC8 AE000398 */ sw $zero, 0x398($s0) +/* 0999FC 7F064ECC 8E0E0020 */ lw $t6, 0x20($s0) +.L7F064ED0: +/* 099A00 7F064ED0 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 099A04 7F064ED4 2419001A */ li $t9, 26 +/* 099A08 7F064ED8 AF0E105C */ sw $t6, 0x105c($t8) +/* 099A0C 7F064EDC AE190024 */ sw $t9, 0x24($s0) +/* 099A10 7F064EE0 AE00001C */ sw $zero, 0x1c($s0) +/* 099A14 7F064EE4 1000002D */ b .L7F064F9C +/* 099A18 7F064EE8 AE000020 */ sw $zero, 0x20($s0) +Weapon_function_slapper: +/* 099A1C 7F064EEC 0C002914 */ jal get_random_value +/* 099A20 7F064EF0 00000000 */ nop +/* 099A24 7F064EF4 304B0001 */ andi $t3, $v0, 1 +/* 099A28 7F064EF8 15600004 */ bnez $t3, .L7F064F0C +/* 099A2C 7F064EFC 240D0020 */ li $t5, 32 +/* 099A30 7F064F00 240C001E */ li $t4, 30 +/* 099A34 7F064F04 10000002 */ b .L7F064F10 +/* 099A38 7F064F08 AE0C0024 */ sw $t4, 0x24($s0) +.L7F064F0C: +/* 099A3C 7F064F0C AE0D0024 */ sw $t5, 0x24($s0) +.L7F064F10: +/* 099A40 7F064F10 AE000020 */ sw $zero, 0x20($s0) +/* 099A44 7F064F14 10000021 */ b .L7F064F9C +/* 099A48 7F064F18 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_throwing_knife: +/* 099A4C 7F064F1C 240F0017 */ li $t7, 23 +/* 099A50 7F064F20 AE0F0024 */ sw $t7, 0x24($s0) +/* 099A54 7F064F24 AE000020 */ sw $zero, 0x20($s0) +/* 099A58 7F064F28 1000001C */ b .L7F064F9C +/* 099A5C 7F064F2C AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_tazer: +/* 099A60 7F064F30 8E0E0020 */ lw $t6, 0x20($s0) +/* 099A64 7F064F34 3C048003 */ lui $a0, %hi(D_80035A90) +/* 099A68 7F064F38 24845A90 */ addiu $a0, %lo(D_80035A90) # addiu $a0, $a0, 0x5a90 +/* 099A6C 7F064F3C 448E3000 */ mtc1 $t6, $f6 +/* 099A70 7F064F40 2606007C */ addiu $a2, $s0, 0x7c +/* 099A74 7F064F44 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 099A78 7F064F48 46803020 */ cvt.s.w $f0, $f6 +/* 099A7C 7F064F4C 44050000 */ mfc1 $a1, $f0 +/* 099A80 7F064F50 0FC171BF */ jal sub_GAME_7F05C6FC +/* 099A84 7F064F54 00000000 */ nop +/* 099A88 7F064F58 10400004 */ beqz $v0, .L7F064F6C +/* 099A8C 7F064F5C 24190002 */ li $t9, 2 +/* 099A90 7F064F60 24180001 */ li $t8, 1 +/* 099A94 7F064F64 1000000D */ b .L7F064F9C +/* 099A98 7F064F68 AE1800BC */ sw $t8, 0xbc($s0) +.L7F064F6C: +/* 099A9C 7F064F6C AE190024 */ sw $t9, 0x24($s0) +/* 099AA0 7F064F70 AE000020 */ sw $zero, 0x20($s0) +/* 099AA4 7F064F74 10000009 */ b .L7F064F9C +/* 099AA8 7F064F78 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_key: +/* 099AAC 7F064F7C 240B0024 */ li $t3, 36 +/* 099AB0 7F064F80 AE0B0024 */ sw $t3, 0x24($s0) +/* 099AB4 7F064F84 AE000020 */ sw $zero, 0x20($s0) +/* 099AB8 7F064F88 10000004 */ b .L7F064F9C +/* 099ABC 7F064F8C AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_collectible: +.L7F064F90: +/* 099AC0 7F064F90 AE000024 */ sw $zero, 0x24($s0) +/* 099AC4 7F064F94 AE000020 */ sw $zero, 0x20($s0) +/* 099AC8 7F064F98 AE00001C */ sw $zero, 0x1c($s0) +.L7F064F9C: +/* 099ACC 7F064F9C AE000398 */ sw $zero, 0x398($s0) +.L7F064FA0: +/* 099AD0 7F064FA0 8E020024 */ lw $v0, 0x24($s0) +.L7F064FA4: +/* 099AD4 7F064FA4 24010002 */ li $at, 2 +/* 099AD8 7F064FA8 54410168 */ bnel $v0, $at, .L7F06554C +/* 099ADC 7F064FAC 8E0B0024 */ lw $t3, 0x24($s0) +/* 099AE0 7F064FB0 0FC1A50B */ jal get_ammo_type_for_weapon +/* 099AE4 7F064FB4 02202025 */ move $a0, $s1 +/* 099AE8 7F064FB8 10400003 */ beqz $v0, .L7F064FC8 +/* 099AEC 7F064FBC 262DFFFE */ addiu $t5, $s1, -2 +/* 099AF0 7F064FC0 8E0C002C */ lw $t4, 0x2c($s0) +/* 099AF4 7F064FC4 19800148 */ blez $t4, .L7F0654E8 +.L7F064FC8: +/* 099AF8 7F064FC8 2DA1003B */ sltiu $at, $t5, 0x3b +/* 099AFC 7F064FCC 102000AF */ beqz $at, .L7F06528C +/* 099B00 7F064FD0 000D6880 */ sll $t5, $t5, 2 +/* 099B04 7F064FD4 3C018005 */ lui $at, %hi(jpt_80054084) +/* 099B08 7F064FD8 002D0821 */ addu $at, $at, $t5 +/* 099B0C 7F064FDC 8C2D4084 */ lw $t5, %lo(jpt_80054084)($at) +/* 099B10 7F064FE0 01A00008 */ jr $t5 +/* 099B14 7F064FE4 00000000 */ nop +Weapon_shooting_watch_magnet: +/* 099B18 7F064FE8 8E0F001C */ lw $t7, 0x1c($s0) +/* 099B1C 7F064FEC 24190003 */ li $t9, 3 +/* 099B20 7F064FF0 55E0000D */ bnezl $t7, .L7F065028 +/* 099B24 7F064FF4 AE190024 */ sw $t9, 0x24($s0) +/* 099B28 7F064FF8 0FC2FF01 */ jal get_controls_locked_flag +/* 099B2C 7F064FFC 00000000 */ nop +/* 099B30 7F065000 2C450001 */ sltiu $a1, $v0, 1 +/* 099B34 7F065004 10A00005 */ beqz $a1, .L7F06501C +/* 099B38 7F065008 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 099B3C 7F06500C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 099B40 7F065010 8DC529C4 */ lw $a1, 0x29c4($t6) +/* 099B44 7F065014 2CB80001 */ sltiu $t8, $a1, 1 +/* 099B48 7F065018 03002825 */ move $a1, $t8 +.L7F06501C: +/* 099B4C 7F06501C 1000009B */ b .L7F06528C +/* 099B50 7F065020 A205000C */ sb $a1, 0xc($s0) +/* 099B54 7F065024 AE190024 */ sw $t9, 0x24($s0) +.L7F065028: +/* 099B58 7F065028 AE000020 */ sw $zero, 0x20($s0) +/* 099B5C 7F06502C 10000097 */ b .L7F06528C +/* 099B60 7F065030 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_pistol: +/* 099B64 7F065034 8E0B001C */ lw $t3, 0x1c($s0) +/* 099B68 7F065038 24190003 */ li $t9, 3 +/* 099B6C 7F06503C 5560001E */ bnezl $t3, .L7F0650B8 +/* 099B70 7F065040 AE190024 */ sw $t9, 0x24($s0) +/* 099B74 7F065044 0FC26919 */ jal get_num_players +/* 099B78 7F065048 00000000 */ nop +/* 099B7C 7F06504C 24010001 */ li $at, 1 +/* 099B80 7F065050 50410009 */ beql $v0, $at, .L7F065078 +/* 099B84 7F065054 240F0001 */ li $t7, 1 +/* 099B88 7F065058 0FC31820 */ jal checkGamePaused +/* 099B8C 7F06505C 00000000 */ nop +/* 099B90 7F065060 14400006 */ bnez $v0, .L7F06507C +/* 099B94 7F065064 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 099B98 7F065068 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 099B9C 7F06506C 8D8D29C4 */ lw $t5, 0x29c4($t4) +/* 099BA0 7F065070 15A00002 */ bnez $t5, .L7F06507C +/* 099BA4 7F065074 240F0001 */ li $t7, 1 +.L7F065078: +/* 099BA8 7F065078 A20F000D */ sb $t7, 0xd($s0) +.L7F06507C: +/* 099BAC 7F06507C 0FC2FF01 */ jal get_controls_locked_flag +/* 099BB0 7F065080 00000000 */ nop +/* 099BB4 7F065084 2C450001 */ sltiu $a1, $v0, 1 +/* 099BB8 7F065088 10A00005 */ beqz $a1, .L7F0650A0 +/* 099BBC 7F06508C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 099BC0 7F065090 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 099BC4 7F065094 8DC529C4 */ lw $a1, 0x29c4($t6) +/* 099BC8 7F065098 2CB80001 */ sltiu $t8, $a1, 1 +/* 099BCC 7F06509C 03002825 */ move $a1, $t8 +.L7F0650A0: +/* 099BD0 7F0650A0 A205000C */ sb $a1, 0xc($s0) +/* 099BD4 7F0650A4 0FC17A02 */ jal sub_GAME_7F05E808 +/* 099BD8 7F0650A8 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 099BDC 7F0650AC 10000078 */ b .L7F065290 +/* 099BE0 7F0650B0 820F000C */ lb $t7, 0xc($s0) +/* 099BE4 7F0650B4 AE190024 */ sw $t9, 0x24($s0) +.L7F0650B8: +/* 099BE8 7F0650B8 AE000020 */ sw $zero, 0x20($s0) +/* 099BEC 7F0650BC 10000073 */ b .L7F06528C +/* 099BF0 7F0650C0 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_machinegun: +/* 099BF4 7F0650C4 8E0B001C */ lw $t3, 0x1c($s0) +/* 099BF8 7F0650C8 11600013 */ beqz $t3, .L7F065118 +/* 099BFC 7F0650CC 00000000 */ nop +/* 099C00 7F0650D0 8E0C0010 */ lw $t4, 0x10($s0) +/* 099C04 7F0650D4 02202025 */ move $a0, $s1 +/* 099C08 7F0650D8 1580000F */ bnez $t4, .L7F065118 +/* 099C0C 7F0650DC 00000000 */ nop +/* 099C10 7F0650E0 0FC1782D */ jal bondwalkItemCheckBitflags +/* 099C14 7F0650E4 24050004 */ li $a1, 4 +/* 099C18 7F0650E8 50400035 */ beql $v0, $zero, .L7F0651C0 +/* 099C1C 7F0650EC 240E0003 */ li $t6, 3 +/* 099C20 7F0650F0 0FC1F178 */ jal get_BONDdata_is_aiming +/* 099C24 7F0650F4 00000000 */ nop +/* 099C28 7F0650F8 54400031 */ bnezl $v0, .L7F0651C0 +/* 099C2C 7F0650FC 240E0003 */ li $t6, 3 +/* 099C30 7F065100 8E0D0398 */ lw $t5, 0x398($s0) +/* 099C34 7F065104 24010003 */ li $at, 3 +/* 099C38 7F065108 01A1001A */ div $zero, $t5, $at +/* 099C3C 7F06510C 00007810 */ mfhi $t7 +/* 099C40 7F065110 51E0002B */ beql $t7, $zero, .L7F0651C0 +/* 099C44 7F065114 240E0003 */ li $t6, 3 +.L7F065118: +/* 099C48 7F065118 0FC177F3 */ jal get_automatic_firing_rate +/* 099C4C 7F06511C 02202025 */ move $a0, $s1 +/* 099C50 7F065120 8E0E001C */ lw $t6, 0x1c($s0) +/* 099C54 7F065124 01C2001A */ div $zero, $t6, $v0 +/* 099C58 7F065128 0000C010 */ mfhi $t8 +/* 099C5C 7F06512C 14400002 */ bnez $v0, .L7F065138 +/* 099C60 7F065130 00000000 */ nop +/* 099C64 7F065134 0007000D */ break 7 +.L7F065138: +/* 099C68 7F065138 2401FFFF */ li $at, -1 +/* 099C6C 7F06513C 14410004 */ bne $v0, $at, .L7F065150 +/* 099C70 7F065140 3C018000 */ lui $at, 0x8000 +/* 099C74 7F065144 15C10002 */ bne $t6, $at, .L7F065150 +/* 099C78 7F065148 00000000 */ nop +/* 099C7C 7F06514C 0006000D */ break 6 +.L7F065150: +/* 099C80 7F065150 5700004F */ bnezl $t8, .L7F065290 +/* 099C84 7F065154 820F000C */ lb $t7, 0xc($s0) +/* 099C88 7F065158 0FC26919 */ jal get_num_players +/* 099C8C 7F06515C 00000000 */ nop +/* 099C90 7F065160 24010001 */ li $at, 1 +/* 099C94 7F065164 50410009 */ beql $v0, $at, .L7F06518C +/* 099C98 7F065168 240C0001 */ li $t4, 1 +/* 099C9C 7F06516C 0FC31820 */ jal checkGamePaused +/* 099CA0 7F065170 00000000 */ nop +/* 099CA4 7F065174 14400006 */ bnez $v0, .L7F065190 +/* 099CA8 7F065178 3C198008 */ lui $t9, %hi(pPlayer) +/* 099CAC 7F06517C 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 099CB0 7F065180 8F2B29C4 */ lw $t3, 0x29c4($t9) +/* 099CB4 7F065184 15600002 */ bnez $t3, .L7F065190 +/* 099CB8 7F065188 240C0001 */ li $t4, 1 +.L7F06518C: +/* 099CBC 7F06518C A20C000D */ sb $t4, 0xd($s0) +.L7F065190: +/* 099CC0 7F065190 0FC2FF01 */ jal get_controls_locked_flag +/* 099CC4 7F065194 00000000 */ nop +/* 099CC8 7F065198 2C450001 */ sltiu $a1, $v0, 1 +/* 099CCC 7F06519C 10A00005 */ beqz $a1, .L7F0651B4 +/* 099CD0 7F0651A0 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 099CD4 7F0651A4 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 099CD8 7F0651A8 8DA529C4 */ lw $a1, 0x29c4($t5) +/* 099CDC 7F0651AC 2CAF0001 */ sltiu $t7, $a1, 1 +/* 099CE0 7F0651B0 01E02825 */ move $a1, $t7 +.L7F0651B4: +/* 099CE4 7F0651B4 10000035 */ b .L7F06528C +/* 099CE8 7F0651B8 A205000C */ sb $a1, 0xc($s0) +/* 099CEC 7F0651BC 240E0003 */ li $t6, 3 +.L7F0651C0: +/* 099CF0 7F0651C0 AE0E0024 */ sw $t6, 0x24($s0) +/* 099CF4 7F0651C4 AE000020 */ sw $zero, 0x20($s0) +/* 099CF8 7F0651C8 10000030 */ b .L7F06528C +/* 099CFC 7F0651CC AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_noammo: +/* 099D00 7F0651D0 8E18001C */ lw $t8, 0x1c($s0) +/* 099D04 7F0651D4 53000006 */ beql $t8, $zero, .L7F0651F0 +/* 099D08 7F0651D8 A200000C */ sb $zero, 0xc($s0) +/* 099D0C 7F0651DC 8E190010 */ lw $t9, 0x10($s0) +/* 099D10 7F0651E0 240C0003 */ li $t4, 3 +/* 099D14 7F0651E4 53200006 */ beql $t9, $zero, .L7F065200 +/* 099D18 7F0651E8 AE0C0024 */ sw $t4, 0x24($s0) +/* 099D1C 7F0651EC A200000C */ sb $zero, 0xc($s0) +.L7F0651F0: +/* 099D20 7F0651F0 820B000C */ lb $t3, 0xc($s0) +/* 099D24 7F0651F4 10000025 */ b .L7F06528C +/* 099D28 7F0651F8 A20B000D */ sb $t3, 0xd($s0) +/* 099D2C 7F0651FC AE0C0024 */ sw $t4, 0x24($s0) +.L7F065200: +/* 099D30 7F065200 AE000020 */ sw $zero, 0x20($s0) +/* 099D34 7F065204 10000021 */ b .L7F06528C +/* 099D38 7F065208 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_tazer: +/* 099D3C 7F06520C 8E0D001C */ lw $t5, 0x1c($s0) +/* 099D40 7F065210 3C048003 */ lui $a0, %hi(D_80035B68) +/* 099D44 7F065214 24845B68 */ addiu $a0, %lo(D_80035B68) # addiu $a0, $a0, 0x5b68 +/* 099D48 7F065218 11A00004 */ beqz $t5, .L7F06522C +/* 099D4C 7F06521C 24050000 */ li $a1, 0 +/* 099D50 7F065220 8E0F0010 */ lw $t7, 0x10($s0) +/* 099D54 7F065224 240D0003 */ li $t5, 3 +/* 099D58 7F065228 11E00015 */ beqz $t7, .L7F065280 +.L7F06522C: +/* 099D5C 7F06522C 2606007C */ addiu $a2, $s0, 0x7c +/* 099D60 7F065230 0FC171BF */ jal sub_GAME_7F05C6FC +/* 099D64 7F065234 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 099D68 7F065238 8E19001C */ lw $t9, 0x1c($s0) +/* 099D6C 7F06523C A200000C */ sb $zero, 0xc($s0) +/* 099D70 7F065240 8218000C */ lb $t8, 0xc($s0) +/* 099D74 7F065244 240E0001 */ li $t6, 1 +/* 099D78 7F065248 AE0E00BC */ sw $t6, 0xbc($s0) +/* 099D7C 7F06524C 1720000F */ bnez $t9, .L7F06528C +/* 099D80 7F065250 A218000D */ sb $t8, 0xd($s0) +/* 099D84 7F065254 0FC2FF01 */ jal get_controls_locked_flag +/* 099D88 7F065258 00000000 */ nop +/* 099D8C 7F06525C 2C450001 */ sltiu $a1, $v0, 1 +/* 099D90 7F065260 10A00005 */ beqz $a1, .L7F065278 +/* 099D94 7F065264 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 099D98 7F065268 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 099D9C 7F06526C 8D6529C4 */ lw $a1, 0x29c4($t3) +/* 099DA0 7F065270 2CAC0001 */ sltiu $t4, $a1, 1 +/* 099DA4 7F065274 01802825 */ move $a1, $t4 +.L7F065278: +/* 099DA8 7F065278 10000004 */ b .L7F06528C +/* 099DAC 7F06527C A205000C */ sb $a1, 0xc($s0) +.L7F065280: +/* 099DB0 7F065280 AE0D0024 */ sw $t5, 0x24($s0) +/* 099DB4 7F065284 AE000020 */ sw $zero, 0x20($s0) +/* 099DB8 7F065288 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_throwable: +.L7F06528C: +/* 099DBC 7F06528C 820F000C */ lb $t7, 0xc($s0) +.L7F065290: +/* 099DC0 7F065290 24010028 */ li $at, 40 +/* 099DC4 7F065294 51E0001E */ beql $t7, $zero, .L7F065310 +/* 099DC8 7F065298 8E0D0024 */ lw $t5, 0x24($s0) +/* 099DCC 7F06529C 52210016 */ beql $s1, $at, .L7F0652F8 +/* 099DD0 7F0652A0 8E18002C */ lw $t8, 0x2c($s0) +/* 099DD4 7F0652A4 0FC26C54 */ jal get_cur_playernum +/* 099DD8 7F0652A8 00000000 */ nop +/* 099DDC 7F0652AC 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 099DE0 7F0652B0 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 099DE4 7F0652B4 0C003215 */ jal controller_7000C854 +/* 099DE8 7F0652B8 00402025 */ move $a0, $v0 +/* 099DEC 7F0652BC 0FC29370 */ jal cur_player_get_control_type +/* 099DF0 7F0652C0 00000000 */ nop +/* 099DF4 7F0652C4 28410004 */ slti $at, $v0, 4 +/* 099DF8 7F0652C8 5420000B */ bnezl $at, .L7F0652F8 +/* 099DFC 7F0652CC 8E18002C */ lw $t8, 0x2c($s0) +/* 099E00 7F0652D0 0FC26C54 */ jal get_cur_playernum +/* 099E04 7F0652D4 00000000 */ nop +/* 099E08 7F0652D8 0FC26919 */ jal get_num_players +/* 099E0C 7F0652DC AFA20048 */ sw $v0, 0x48($sp) +/* 099E10 7F0652E0 8FAE0048 */ lw $t6, 0x48($sp) +/* 099E14 7F0652E4 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 099E18 7F0652E8 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 099E1C 7F0652EC 0C003215 */ jal controller_7000C854 +/* 099E20 7F0652F0 004E2021 */ addu $a0, $v0, $t6 +/* 099E24 7F0652F4 8E18002C */ lw $t8, 0x2c($s0) +.L7F0652F8: +/* 099E28 7F0652F8 8E0B0398 */ lw $t3, 0x398($s0) +/* 099E2C 7F0652FC 2719FFFF */ addiu $t9, $t8, -1 +/* 099E30 7F065300 256C0001 */ addiu $t4, $t3, 1 +/* 099E34 7F065304 AE19002C */ sw $t9, 0x2c($s0) +/* 099E38 7F065308 AE0C0398 */ sw $t4, 0x398($s0) +/* 099E3C 7F06530C 8E0D0024 */ lw $t5, 0x24($s0) +.L7F065310: +/* 099E40 7F065310 24010002 */ li $at, 2 +/* 099E44 7F065314 02202025 */ move $a0, $s1 +/* 099E48 7F065318 55A1008C */ bnel $t5, $at, .L7F06554C +/* 099E4C 7F06531C 8E0B0024 */ lw $t3, 0x24($s0) +/* 099E50 7F065320 0FC177FC */ jal get_sound_trigger_rate +/* 099E54 7F065324 AFA001B4 */ sw $zero, 0x1b4($sp) +/* 099E58 7F065328 18400017 */ blez $v0, .L7F065388 +/* 099E5C 7F06532C 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 099E60 7F065330 8FAE0038 */ lw $t6, 0x38($sp) +/* 099E64 7F065334 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 099E68 7F065338 3C028005 */ lui $v0, %hi(global_timer) +/* 099E6C 7F06533C 000EC023 */ negu $t8, $t6 +/* 099E70 7F065340 01F8C821 */ addu $t9, $t7, $t8 +/* 099E74 7F065344 8F2B0DF8 */ lw $t3, 0xdf8($t9) +/* 099E78 7F065348 8C42837C */ lw $v0, %lo(global_timer)($v0) +/* 099E7C 7F06534C 104B0013 */ beq $v0, $t3, .L7F06539C +/* 099E80 7F065350 00000000 */ nop +/* 099E84 7F065354 8E0C01DC */ lw $t4, 0x1dc($s0) +/* 099E88 7F065358 0182082A */ slt $at, $t4, $v0 +/* 099E8C 7F06535C 1020000F */ beqz $at, .L7F06539C +/* 099E90 7F065360 00000000 */ nop +/* 099E94 7F065364 0FC177FC */ jal get_sound_trigger_rate +/* 099E98 7F065368 02202025 */ move $a0, $s1 +/* 099E9C 7F06536C 3C0D8005 */ lui $t5, %hi(global_timer) +/* 099EA0 7F065370 8DAD837C */ lw $t5, %lo(global_timer)($t5) +/* 099EA4 7F065374 240F0001 */ li $t7, 1 +/* 099EA8 7F065378 004D7021 */ addu $t6, $v0, $t5 +/* 099EAC 7F06537C AE0E01DC */ sw $t6, 0x1dc($s0) +/* 099EB0 7F065380 10000006 */ b .L7F06539C +/* 099EB4 7F065384 AFAF01B4 */ sw $t7, 0x1b4($sp) +.L7F065388: +/* 099EB8 7F065388 8218000C */ lb $t8, 0xc($s0) +/* 099EBC 7F06538C 24190001 */ li $t9, 1 +/* 099EC0 7F065390 13000002 */ beqz $t8, .L7F06539C +/* 099EC4 7F065394 00000000 */ nop +/* 099EC8 7F065398 AFB901B4 */ sw $t9, 0x1b4($sp) +.L7F06539C: +/* 099ECC 7F06539C 0FC26919 */ jal get_num_players +/* 099ED0 7F0653A0 00000000 */ nop +/* 099ED4 7F0653A4 24010001 */ li $at, 1 +/* 099ED8 7F0653A8 5041000A */ beql $v0, $at, .L7F0653D4 +/* 099EDC 7F0653AC 8FAD01B4 */ lw $t5, 0x1b4($sp) +/* 099EE0 7F0653B0 0FC31820 */ jal checkGamePaused +/* 099EE4 7F0653B4 00000000 */ nop +/* 099EE8 7F0653B8 14400063 */ bnez $v0, .L7F065548 +/* 099EEC 7F0653BC 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 099EF0 7F0653C0 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 099EF4 7F0653C4 8D6C29C4 */ lw $t4, 0x29c4($t3) +/* 099EF8 7F0653C8 55800060 */ bnezl $t4, .L7F06554C +/* 099EFC 7F0653CC 8E0B0024 */ lw $t3, 0x24($s0) +/* 099F00 7F0653D0 8FAD01B4 */ lw $t5, 0x1b4($sp) +.L7F0653D4: +/* 099F04 7F0653D4 51A00035 */ beql $t5, $zero, .L7F0654AC +/* 099F08 7F0653D8 24010017 */ li $at, 23 +/* 099F0C 7F0653DC 8E0401D4 */ lw $a0, 0x1d4($s0) +/* 099F10 7F0653E0 50800008 */ beql $a0, $zero, .L7F065404 +/* 099F14 7F0653E4 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 099F18 7F0653E8 0C00237C */ jal sfxGetArg0Unk3F +/* 099F1C 7F0653EC 00000000 */ nop +/* 099F20 7F0653F0 50400004 */ beql $v0, $zero, .L7F065404 +/* 099F24 7F0653F4 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 099F28 7F0653F8 0C002408 */ jal sfxDeactivate +/* 099F2C 7F0653FC 8E0401D4 */ lw $a0, 0x1d4($s0) +/* 099F30 7F065400 8E0401D8 */ lw $a0, 0x1d8($s0) +.L7F065404: +/* 099F34 7F065404 10800007 */ beqz $a0, .L7F065424 +/* 099F38 7F065408 00000000 */ nop +/* 099F3C 7F06540C 0C00237C */ jal sfxGetArg0Unk3F +/* 099F40 7F065410 00000000 */ nop +/* 099F44 7F065414 10400003 */ beqz $v0, .L7F065424 +/* 099F48 7F065418 00000000 */ nop +/* 099F4C 7F06541C 0C002408 */ jal sfxDeactivate +/* 099F50 7F065420 8E0401D8 */ lw $a0, 0x1d8($s0) +.L7F065424: +/* 099F54 7F065424 0FC17805 */ jal bondwalkItemGetSound +/* 099F58 7F065428 02202025 */ move $a0, $s1 +/* 099F5C 7F06542C 5040001F */ beql $v0, $zero, .L7F0654AC +/* 099F60 7F065430 24010017 */ li $at, 23 +/* 099F64 7F065434 8E0E01D4 */ lw $t6, 0x1d4($s0) +/* 099F68 7F065438 55C0000D */ bnezl $t6, .L7F065470 +/* 099F6C 7F06543C 8E1801D8 */ lw $t8, 0x1d8($s0) +/* 099F70 7F065440 0FC17805 */ jal bondwalkItemGetSound +/* 099F74 7F065444 02202025 */ move $a0, $s1 +/* 099F78 7F065448 00022C00 */ sll $a1, $v0, 0x10 +/* 099F7C 7F06544C 00057C03 */ sra $t7, $a1, 0x10 +/* 099F80 7F065450 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 099F84 7F065454 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099F88 7F065458 01E02825 */ move $a1, $t7 +/* 099F8C 7F06545C 0C002382 */ jal play_sfx_a1 +/* 099F90 7F065460 260601D4 */ addiu $a2, $s0, 0x1d4 +/* 099F94 7F065464 1000000D */ b .L7F06549C +/* 099F98 7F065468 00000000 */ nop +/* 099F9C 7F06546C 8E1801D8 */ lw $t8, 0x1d8($s0) +.L7F065470: +/* 099FA0 7F065470 1700000A */ bnez $t8, .L7F06549C +/* 099FA4 7F065474 00000000 */ nop +/* 099FA8 7F065478 0FC17805 */ jal bondwalkItemGetSound +/* 099FAC 7F06547C 02202025 */ move $a0, $s1 +/* 099FB0 7F065480 00022C00 */ sll $a1, $v0, 0x10 +/* 099FB4 7F065484 0005CC03 */ sra $t9, $a1, 0x10 +/* 099FB8 7F065488 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 099FBC 7F06548C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099FC0 7F065490 03202825 */ move $a1, $t9 +/* 099FC4 7F065494 0C002382 */ jal play_sfx_a1 +/* 099FC8 7F065498 260601D8 */ addiu $a2, $s0, 0x1d8 +.L7F06549C: +/* 099FCC 7F06549C 3C0B8005 */ lui $t3, %hi(global_timer) +/* 099FD0 7F0654A0 8D6B837C */ lw $t3, %lo(global_timer)($t3) +/* 099FD4 7F0654A4 AE0B01E0 */ sw $t3, 0x1e0($s0) +/* 099FD8 7F0654A8 24010017 */ li $at, 23 +.L7F0654AC: +/* 099FDC 7F0654AC 16210026 */ bne $s1, $at, .L7F065548 +/* 099FE0 7F0654B0 3C0C8003 */ lui $t4, %hi(D_80035E90) +/* 099FE4 7F0654B4 8D8C5E90 */ lw $t4, %lo(D_80035E90)($t4) +/* 099FE8 7F0654B8 0C002914 */ jal get_random_value +/* 099FEC 7F0654BC AFAC01B0 */ sw $t4, 0x1b0($sp) +/* 099FF0 7F0654C0 304D0001 */ andi $t5, $v0, 1 +/* 099FF4 7F0654C4 000D7040 */ sll $t6, $t5, 1 +/* 099FF8 7F0654C8 03AE2821 */ addu $a1, $sp, $t6 +/* 099FFC 7F0654CC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09A000 7F0654D0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A004 7F0654D4 84A501B0 */ lh $a1, 0x1b0($a1) +/* 09A008 7F0654D8 0C002382 */ jal play_sfx_a1 +/* 09A00C 7F0654DC 00003025 */ move $a2, $zero +/* 09A010 7F0654E0 1000001A */ b .L7F06554C +/* 09A014 7F0654E4 8E0B0024 */ lw $t3, 0x24($s0) +.L7F0654E8: +/* 09A018 7F0654E8 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A01C 7F0654EC 24180003 */ li $t8, 3 +/* 09A020 7F0654F0 2419000D */ li $t9, 13 +/* 09A024 7F0654F4 59E00006 */ blezl $t7, .L7F065510 +/* 09A028 7F0654F8 AE190024 */ sw $t9, 0x24($s0) +/* 09A02C 7F0654FC AE180024 */ sw $t8, 0x24($s0) +/* 09A030 7F065500 AE000020 */ sw $zero, 0x20($s0) +/* 09A034 7F065504 10000010 */ b .L7F065548 +/* 09A038 7F065508 AE00001C */ sw $zero, 0x1c($s0) +/* 09A03C 7F06550C AE190024 */ sw $t9, 0x24($s0) +.L7F065510: +/* 09A040 7F065510 AE000020 */ sw $zero, 0x20($s0) +/* 09A044 7F065514 0FC26919 */ jal get_num_players +/* 09A048 7F065518 AE00001C */ sw $zero, 0x1c($s0) +/* 09A04C 7F06551C 24010001 */ li $at, 1 +/* 09A050 7F065520 10410004 */ beq $v0, $at, .L7F065534 +/* 09A054 7F065524 00000000 */ nop +/* 09A058 7F065528 0FC31820 */ jal checkGamePaused +/* 09A05C 7F06552C 00000000 */ nop +/* 09A060 7F065530 14400005 */ bnez $v0, .L7F065548 +.L7F065534: +/* 09A064 7F065534 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09A068 7F065538 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A06C 7F06553C 24050059 */ li $a1, 89 +/* 09A070 7F065540 0C002382 */ jal play_sfx_a1 +/* 09A074 7F065544 00003025 */ move $a2, $zero +.L7F065548: +/* 09A078 7F065548 8E0B0024 */ lw $t3, 0x24($s0) +.L7F06554C: +/* 09A07C 7F06554C 24010003 */ li $at, 3 +/* 09A080 7F065550 156100D5 */ bne $t3, $at, .L7F0658A8 +/* 09A084 7F065554 2401001F */ li $at, 31 +/* 09A088 7F065558 16210013 */ bne $s1, $at, .L7F0655A8 +/* 09A08C 7F06555C 00000000 */ nop +/* 09A090 7F065560 8E0C0020 */ lw $t4, 0x20($s0) +/* 09A094 7F065564 3C048003 */ lui $a0, %hi(D_80035B68) +/* 09A098 7F065568 24845B68 */ addiu $a0, %lo(D_80035B68) # addiu $a0, $a0, 0x5b68 +/* 09A09C 7F06556C 448C4000 */ mtc1 $t4, $f8 +/* 09A0A0 7F065570 2606007C */ addiu $a2, $s0, 0x7c +/* 09A0A4 7F065574 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09A0A8 7F065578 46804020 */ cvt.s.w $f0, $f8 +/* 09A0AC 7F06557C 44050000 */ mfc1 $a1, $f0 +/* 09A0B0 7F065580 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09A0B4 7F065584 00000000 */ nop +/* 09A0B8 7F065588 10400003 */ beqz $v0, .L7F065598 +/* 09A0BC 7F06558C 240D0001 */ li $t5, 1 +/* 09A0C0 7F065590 100000C5 */ b .L7F0658A8 +/* 09A0C4 7F065594 AE0D00BC */ sw $t5, 0xbc($s0) +.L7F065598: +/* 09A0C8 7F065598 AE000024 */ sw $zero, 0x24($s0) +/* 09A0CC 7F06559C AE000020 */ sw $zero, 0x20($s0) +/* 09A0D0 7F0655A0 100000C1 */ b .L7F0658A8 +/* 09A0D4 7F0655A4 AE00001C */ sw $zero, 0x1c($s0) +.L7F0655A8: +/* 09A0D8 7F0655A8 0FC1722D */ jal get_ptr_item_statistics +/* 09A0DC 7F0655AC 02202025 */ move $a0, $s1 +/* 09A0E0 7F0655B0 8E050018 */ lw $a1, 0x18($s0) +/* 09A0E4 7F0655B4 00405025 */ move $t2, $v0 +/* 09A0E8 7F0655B8 80470044 */ lb $a3, 0x44($v0) +/* 09A0EC 7F0655BC 10A00006 */ beqz $a1, .L7F0655D8 +/* 09A0F0 7F0655C0 80490045 */ lb $t1, 0x45($v0) +/* 09A0F4 7F0655C4 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A0F8 7F0655C8 00E97821 */ addu $t7, $a3, $t1 +/* 09A0FC 7F0655CC 01CF082A */ slt $at, $t6, $t7 +/* 09A100 7F0655D0 5020000C */ beql $at, $zero, .L7F065604 +/* 09A104 7F0655D4 AE000024 */ sw $zero, 0x24($s0) +.L7F0655D8: +/* 09A108 7F0655D8 80440023 */ lb $a0, 0x23($v0) +/* 09A10C 7F0655DC 8E030020 */ lw $v1, 0x20($s0) +/* 09A110 7F0655E0 00E94021 */ addu $t0, $a3, $t1 +/* 09A114 7F0655E4 0480000A */ bltz $a0, .L7F065610 +/* 09A118 7F0655E8 00000000 */ nop +/* 09A11C 7F0655EC 14A00008 */ bnez $a1, .L7F065610 +/* 09A120 7F0655F0 0104C021 */ addu $t8, $t0, $a0 +/* 09A124 7F0655F4 0078082A */ slt $at, $v1, $t8 +/* 09A128 7F0655F8 14200005 */ bnez $at, .L7F065610 +/* 09A12C 7F0655FC 00000000 */ nop +/* 09A130 7F065600 AE000024 */ sw $zero, 0x24($s0) +.L7F065604: +/* 09A134 7F065604 AE000020 */ sw $zero, 0x20($s0) +/* 09A138 7F065608 100000A7 */ b .L7F0658A8 +/* 09A13C 7F06560C AE00001C */ sw $zero, 0x1c($s0) +.L7F065610: +/* 09A140 7F065610 50A00017 */ beql $a1, $zero, .L7F065670 +/* 09A144 7F065614 0068082A */ slt $at, $v1, $t0 +/* 09A148 7F065618 8E190010 */ lw $t9, 0x10($s0) +/* 09A14C 7F06561C 53200014 */ beql $t9, $zero, .L7F065670 +/* 09A150 7F065620 0068082A */ slt $at, $v1, $t0 +/* 09A154 7F065624 80460046 */ lb $a2, 0x46($v0) +/* 09A158 7F065628 0066082A */ slt $at, $v1, $a2 +/* 09A15C 7F06562C 54200010 */ bnezl $at, .L7F065670 +/* 09A160 7F065630 0068082A */ slt $at, $v1, $t0 +/* 09A164 7F065634 80440047 */ lb $a0, 0x47($v0) +/* 09A168 7F065638 0480000C */ bltz $a0, .L7F06566C +/* 09A16C 7F06563C 00642821 */ addu $a1, $v1, $a0 +/* 09A170 7F065640 00A8082A */ slt $at, $a1, $t0 +/* 09A174 7F065644 10200009 */ beqz $at, .L7F06566C +/* 09A178 7F065648 00A6082A */ slt $at, $a1, $a2 +/* 09A17C 7F06564C 14200007 */ bnez $at, .L7F06566C +/* 09A180 7F065650 240B0004 */ li $t3, 4 +/* 09A184 7F065654 AE0B0024 */ sw $t3, 0x24($s0) +/* 09A188 7F065658 AE000020 */ sw $zero, 0x20($s0) +/* 09A18C 7F06565C AE00001C */ sw $zero, 0x1c($s0) +/* 09A190 7F065660 804C0047 */ lb $t4, 0x47($v0) +/* 09A194 7F065664 10000090 */ b .L7F0658A8 +/* 09A198 7F065668 AE0C0038 */ sw $t4, 0x38($s0) +.L7F06566C: +/* 09A19C 7F06566C 0068082A */ slt $at, $v1, $t0 +.L7F065670: +/* 09A1A0 7F065670 1020008D */ beqz $at, .L7F0658A8 +/* 09A1A4 7F065674 260D007C */ addiu $t5, $s0, 0x7c +/* 09A1A8 7F065678 C4420048 */ lwc1 $f2, 0x48($v0) +/* 09A1AC 7F06567C C440004C */ lwc1 $f0, 0x4c($v0) +/* 09A1B0 7F065680 1460000A */ bnez $v1, .L7F0656AC +/* 09A1B4 7F065684 AFAD0030 */ sw $t5, 0x30($sp) +/* 09A1B8 7F065688 C60A0078 */ lwc1 $f10, 0x78($s0) +/* 09A1BC 7F06568C C604006C */ lwc1 $f4, 0x6c($s0) +/* 09A1C0 7F065690 C6060070 */ lwc1 $f6, 0x70($s0) +/* 09A1C4 7F065694 C6080074 */ lwc1 $f8, 0x74($s0) +/* 09A1C8 7F065698 8E030020 */ lw $v1, 0x20($s0) +/* 09A1CC 7F06569C E60A0058 */ swc1 $f10, 0x58($s0) +/* 09A1D0 7F0656A0 E604004C */ swc1 $f4, 0x4c($s0) +/* 09A1D4 7F0656A4 E6060050 */ swc1 $f6, 0x50($s0) +/* 09A1D8 7F0656A8 E6080054 */ swc1 $f8, 0x54($s0) +.L7F0656AC: +/* 09A1DC 7F0656AC 0067082A */ slt $at, $v1, $a3 +/* 09A1E0 7F0656B0 1020002B */ beqz $at, .L7F065760 +/* 09A1E4 7F0656B4 3C018005 */ lui $at, %hi(D_80054170) +/* 09A1E8 7F0656B8 C42C4170 */ lwc1 $f12, %lo(D_80054170)($at) +/* 09A1EC 7F0656BC 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 09A1F0 7F0656C0 44812000 */ mtc1 $at, $f4 +/* 09A1F4 7F0656C4 460C0282 */ mul.s $f10, $f0, $f12 +/* 09A1F8 7F0656C8 46045183 */ div.s $f6, $f10, $f4 +/* 09A1FC 7F0656CC 46066201 */ sub.s $f8, $f12, $f6 +/* 09A200 7F0656D0 E6080068 */ swc1 $f8, 0x68($s0) +/* 09A204 7F0656D4 E7A20198 */ swc1 $f2, 0x198($sp) +/* 09A208 7F0656D8 AFAA01A8 */ sw $t2, 0x1a8($sp) +/* 09A20C 7F0656DC AFA701A4 */ sw $a3, 0x1a4($sp) +/* 09A210 7F0656E0 0FC1773A */ jal sub_GAME_7F05DCE8 +/* 09A214 7F0656E4 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A218 7F0656E8 C60A01C8 */ lwc1 $f10, 0x1c8($s0) +/* 09A21C 7F0656EC C7A20198 */ lwc1 $f2, 0x198($sp) +/* 09A220 7F0656F0 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 09A224 7F0656F4 460A0101 */ sub.s $f4, $f0, $f10 +/* 09A228 7F0656F8 44817000 */ mtc1 $at, $f14 +/* 09A22C 7F0656FC 8FAA01A8 */ lw $t2, 0x1a8($sp) +/* 09A230 7F065700 44805000 */ mtc1 $zero, $f10 +/* 09A234 7F065704 46022182 */ mul.s $f6, $f4, $f2 +/* 09A238 7F065708 8FA701A4 */ lw $a3, 0x1a4($sp) +/* 09A23C 7F06570C E60A0060 */ swc1 $f10, 0x60($s0) +/* 09A240 7F065710 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A244 7F065714 3C018005 */ lui $at, %hi(D_80054174) +/* 09A248 7F065718 460E3203 */ div.s $f8, $f6, $f14 +/* 09A24C 7F06571C C60601D0 */ lwc1 $f6, 0x1d0($s0) +/* 09A250 7F065720 E608005C */ swc1 $f8, 0x5c($s0) +/* 09A254 7F065724 C544000C */ lwc1 $f4, 0xc($t2) +/* 09A258 7F065728 46062201 */ sub.s $f8, $f4, $f6 +/* 09A25C 7F06572C 448E3000 */ mtc1 $t6, $f6 +/* 09A260 7F065730 46024282 */ mul.s $f10, $f8, $f2 +/* 09A264 7F065734 46803220 */ cvt.s.w $f8, $f6 +/* 09A268 7F065738 44873000 */ mtc1 $a3, $f6 +/* 09A26C 7F06573C 460E5103 */ div.s $f4, $f10, $f14 +/* 09A270 7F065740 E6040064 */ swc1 $f4, 0x64($s0) +/* 09A274 7F065744 C42A4174 */ lwc1 $f10, %lo(D_80054174)($at) +/* 09A278 7F065748 460A4102 */ mul.s $f4, $f8, $f10 +/* 09A27C 7F06574C 46803220 */ cvt.s.w $f8, $f6 +/* 09A280 7F065750 0FC15FAB */ jal sinf +/* 09A284 7F065754 46082303 */ div.s $f12, $f4, $f8 +/* 09A288 7F065758 10000032 */ b .L7F065824 +/* 09A28C 7F06575C 46000086 */ mov.s $f2, $f0 +.L7F065760: +/* 09A290 7F065760 3C018005 */ lui $at, %hi(D_80054178) +/* 09A294 7F065764 C42C4178 */ lwc1 $f12, %lo(D_80054178)($at) +/* 09A298 7F065768 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 09A29C 7F06576C 44813000 */ mtc1 $at, $f6 +/* 09A2A0 7F065770 460C0282 */ mul.s $f10, $f0, $f12 +/* 09A2A4 7F065774 46065103 */ div.s $f4, $f10, $f6 +/* 09A2A8 7F065778 46046201 */ sub.s $f8, $f12, $f4 +/* 09A2AC 7F06577C E6080068 */ swc1 $f8, 0x68($s0) +/* 09A2B0 7F065780 E7A20198 */ swc1 $f2, 0x198($sp) +/* 09A2B4 7F065784 AFAA01A8 */ sw $t2, 0x1a8($sp) +/* 09A2B8 7F065788 AFA901A0 */ sw $t1, 0x1a0($sp) +/* 09A2BC 7F06578C AFA701A4 */ sw $a3, 0x1a4($sp) +/* 09A2C0 7F065790 0FC1773A */ jal sub_GAME_7F05DCE8 +/* 09A2C4 7F065794 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A2C8 7F065798 C60A01C8 */ lwc1 $f10, 0x1c8($s0) +/* 09A2CC 7F06579C C7A20198 */ lwc1 $f2, 0x198($sp) +/* 09A2D0 7F0657A0 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 09A2D4 7F0657A4 460A0181 */ sub.s $f6, $f0, $f10 +/* 09A2D8 7F0657A8 44817000 */ mtc1 $at, $f14 +/* 09A2DC 7F0657AC 8FAA01A8 */ lw $t2, 0x1a8($sp) +/* 09A2E0 7F0657B0 44805000 */ mtc1 $zero, $f10 +/* 09A2E4 7F0657B4 46023102 */ mul.s $f4, $f6, $f2 +/* 09A2E8 7F0657B8 8FA701A4 */ lw $a3, 0x1a4($sp) +/* 09A2EC 7F0657BC 8FA901A0 */ lw $t1, 0x1a0($sp) +/* 09A2F0 7F0657C0 E60A0060 */ swc1 $f10, 0x60($s0) +/* 09A2F4 7F0657C4 8E0F0020 */ lw $t7, 0x20($s0) +/* 09A2F8 7F0657C8 3C018005 */ lui $at, %hi(D_8005417C) +/* 09A2FC 7F0657CC 460E2203 */ div.s $f8, $f4, $f14 +/* 09A300 7F0657D0 C60401D0 */ lwc1 $f4, 0x1d0($s0) +/* 09A304 7F0657D4 01E7C023 */ subu $t8, $t7, $a3 +/* 09A308 7F0657D8 E608005C */ swc1 $f8, 0x5c($s0) +/* 09A30C 7F0657DC C546000C */ lwc1 $f6, 0xc($t2) +/* 09A310 7F0657E0 46043201 */ sub.s $f8, $f6, $f4 +/* 09A314 7F0657E4 44982000 */ mtc1 $t8, $f4 +/* 09A318 7F0657E8 46024282 */ mul.s $f10, $f8, $f2 +/* 09A31C 7F0657EC 46802220 */ cvt.s.w $f8, $f4 +/* 09A320 7F0657F0 44892000 */ mtc1 $t1, $f4 +/* 09A324 7F0657F4 460E5183 */ div.s $f6, $f10, $f14 +/* 09A328 7F0657F8 E6060064 */ swc1 $f6, 0x64($s0) +/* 09A32C 7F0657FC C42A417C */ lwc1 $f10, %lo(D_8005417C)($at) +/* 09A330 7F065800 460A4182 */ mul.s $f6, $f8, $f10 +/* 09A334 7F065804 46802220 */ cvt.s.w $f8, $f4 +/* 09A338 7F065808 0FC15FA8 */ jal cosf +/* 09A33C 7F06580C 46083303 */ div.s $f12, $f6, $f8 +/* 09A340 7F065810 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09A344 7F065814 44815000 */ mtc1 $at, $f10 +/* 09A348 7F065818 44813000 */ mtc1 $at, $f6 +/* 09A34C 7F06581C 460A0102 */ mul.s $f4, $f0, $f10 +/* 09A350 7F065820 46062080 */ add.s $f2, $f4, $f6 +.L7F065824: +/* 09A354 7F065824 C60C0058 */ lwc1 $f12, 0x58($s0) +/* 09A358 7F065828 C60E0068 */ lwc1 $f14, 0x68($s0) +/* 09A35C 7F06582C 44061000 */ mfc1 $a2, $f2 +/* 09A360 7F065830 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 09A364 7F065834 E7A20190 */ swc1 $f2, 0x190($sp) +/* 09A368 7F065838 C60E004C */ lwc1 $f14, 0x4c($s0) +/* 09A36C 7F06583C C608005C */ lwc1 $f8, 0x5c($s0) +/* 09A370 7F065840 C7A20190 */ lwc1 $f2, 0x190($sp) +/* 09A374 7F065844 C6100050 */ lwc1 $f16, 0x50($s0) +/* 09A378 7F065848 460E4281 */ sub.s $f10, $f8, $f14 +/* 09A37C 7F06584C C6080060 */ lwc1 $f8, 0x60($s0) +/* 09A380 7F065850 C6120054 */ lwc1 $f18, 0x54($s0) +/* 09A384 7F065854 24190001 */ li $t9, 1 +/* 09A388 7F065858 46025102 */ mul.s $f4, $f10, $f2 +/* 09A38C 7F06585C 46104281 */ sub.s $f10, $f8, $f16 +/* 09A390 7F065860 C6080064 */ lwc1 $f8, 0x64($s0) +/* 09A394 7F065864 E6000078 */ swc1 $f0, 0x78($s0) +/* 09A398 7F065868 AE1900BC */ sw $t9, 0xbc($s0) +/* 09A39C 7F06586C 46000306 */ mov.s $f12, $f0 +/* 09A3A0 7F065870 460E2180 */ add.s $f6, $f4, $f14 +/* 09A3A4 7F065874 46025102 */ mul.s $f4, $f10, $f2 +/* 09A3A8 7F065878 46124281 */ sub.s $f10, $f8, $f18 +/* 09A3AC 7F06587C E606006C */ swc1 $f6, 0x6c($s0) +/* 09A3B0 7F065880 46102180 */ add.s $f6, $f4, $f16 +/* 09A3B4 7F065884 46025102 */ mul.s $f4, $f10, $f2 +/* 09A3B8 7F065888 E6060070 */ swc1 $f6, 0x70($s0) +/* 09A3BC 7F06588C 46122180 */ add.s $f6, $f4, $f18 +/* 09A3C0 7F065890 E6060074 */ swc1 $f6, 0x74($s0) +/* 09A3C4 7F065894 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09A3C8 7F065898 8FA50030 */ lw $a1, 0x30($sp) +/* 09A3CC 7F06589C 2604006C */ addiu $a0, $s0, 0x6c +/* 09A3D0 7F0658A0 0FC16266 */ jal matrix_4x4_set_position +/* 09A3D4 7F0658A4 8FA50030 */ lw $a1, 0x30($sp) +.L7F0658A8: +/* 09A3D8 7F0658A8 8E020024 */ lw $v0, 0x24($s0) +/* 09A3DC 7F0658AC 24010004 */ li $at, 4 +/* 09A3E0 7F0658B0 54410053 */ bnel $v0, $at, .L7F065A00 +/* 09A3E4 7F0658B4 2401000D */ li $at, 13 +/* 09A3E8 7F0658B8 8E030020 */ lw $v1, 0x20($s0) +/* 09A3EC 7F0658BC 54600013 */ bnezl $v1, .L7F06590C +/* 09A3F0 7F0658C0 8E020038 */ lw $v0, 0x38($s0) +/* 09A3F4 7F0658C4 C6080078 */ lwc1 $f8, 0x78($s0) +/* 09A3F8 7F0658C8 C60A006C */ lwc1 $f10, 0x6c($s0) +/* 09A3FC 7F0658CC C6040070 */ lwc1 $f4, 0x70($s0) +/* 09A400 7F0658D0 C6060074 */ lwc1 $f6, 0x74($s0) +/* 09A404 7F0658D4 E6080058 */ swc1 $f8, 0x58($s0) +/* 09A408 7F0658D8 E60A004C */ swc1 $f10, 0x4c($s0) +/* 09A40C 7F0658DC E6040050 */ swc1 $f4, 0x50($s0) +/* 09A410 7F0658E0 E6060054 */ swc1 $f6, 0x54($s0) +/* 09A414 7F0658E4 44804000 */ mtc1 $zero, $f8 +/* 09A418 7F0658E8 44805000 */ mtc1 $zero, $f10 +/* 09A41C 7F0658EC 44802000 */ mtc1 $zero, $f4 +/* 09A420 7F0658F0 44803000 */ mtc1 $zero, $f6 +/* 09A424 7F0658F4 8E030020 */ lw $v1, 0x20($s0) +/* 09A428 7F0658F8 E6080068 */ swc1 $f8, 0x68($s0) +/* 09A42C 7F0658FC E60A005C */ swc1 $f10, 0x5c($s0) +/* 09A430 7F065900 E6040060 */ swc1 $f4, 0x60($s0) +/* 09A434 7F065904 E6060064 */ swc1 $f6, 0x64($s0) +/* 09A438 7F065908 8E020038 */ lw $v0, 0x38($s0) +.L7F06590C: +/* 09A43C 7F06590C 0062082A */ slt $at, $v1, $v0 +/* 09A440 7F065910 10200036 */ beqz $at, .L7F0659EC +/* 09A444 7F065914 00435823 */ subu $t3, $v0, $v1 +/* 09A448 7F065918 448B4000 */ mtc1 $t3, $f8 +/* 09A44C 7F06591C 3C018005 */ lui $at, %hi(D_80054180) +/* 09A450 7F065920 C4244180 */ lwc1 $f4, %lo(D_80054180)($at) +/* 09A454 7F065924 468042A0 */ cvt.s.w $f10, $f8 +/* 09A458 7F065928 44824000 */ mtc1 $v0, $f8 +/* 09A45C 7F06592C 260C007C */ addiu $t4, $s0, 0x7c +/* 09A460 7F065930 260D006C */ addiu $t5, $s0, 0x6c +/* 09A464 7F065934 AFAD0034 */ sw $t5, 0x34($sp) +/* 09A468 7F065938 AFAC0030 */ sw $t4, 0x30($sp) +/* 09A46C 7F06593C 46045182 */ mul.s $f6, $f10, $f4 +/* 09A470 7F065940 468042A0 */ cvt.s.w $f10, $f8 +/* 09A474 7F065944 0FC15FA8 */ jal cosf +/* 09A478 7F065948 460A3303 */ div.s $f12, $f6, $f10 +/* 09A47C 7F06594C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09A480 7F065950 44818000 */ mtc1 $at, $f16 +/* 09A484 7F065954 00000000 */ nop +/* 09A488 7F065958 46100102 */ mul.s $f4, $f0, $f16 +/* 09A48C 7F06595C 46102080 */ add.s $f2, $f4, $f16 +/* 09A490 7F065960 E7A2018C */ swc1 $f2, 0x18c($sp) +/* 09A494 7F065964 44061000 */ mfc1 $a2, $f2 +/* 09A498 7F065968 C60E0068 */ lwc1 $f14, 0x68($s0) +/* 09A49C 7F06596C 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 09A4A0 7F065970 C60C0058 */ lwc1 $f12, 0x58($s0) +/* 09A4A4 7F065974 C60E004C */ lwc1 $f14, 0x4c($s0) +/* 09A4A8 7F065978 C608005C */ lwc1 $f8, 0x5c($s0) +/* 09A4AC 7F06597C C7A2018C */ lwc1 $f2, 0x18c($sp) +/* 09A4B0 7F065980 C6100050 */ lwc1 $f16, 0x50($s0) +/* 09A4B4 7F065984 460E4181 */ sub.s $f6, $f8, $f14 +/* 09A4B8 7F065988 C6080060 */ lwc1 $f8, 0x60($s0) +/* 09A4BC 7F06598C C6120054 */ lwc1 $f18, 0x54($s0) +/* 09A4C0 7F065990 240E0001 */ li $t6, 1 +/* 09A4C4 7F065994 46023282 */ mul.s $f10, $f6, $f2 +/* 09A4C8 7F065998 46104181 */ sub.s $f6, $f8, $f16 +/* 09A4CC 7F06599C C6080064 */ lwc1 $f8, 0x64($s0) +/* 09A4D0 7F0659A0 E6000078 */ swc1 $f0, 0x78($s0) +/* 09A4D4 7F0659A4 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09A4D8 7F0659A8 46000306 */ mov.s $f12, $f0 +/* 09A4DC 7F0659AC 460E5100 */ add.s $f4, $f10, $f14 +/* 09A4E0 7F0659B0 46023282 */ mul.s $f10, $f6, $f2 +/* 09A4E4 7F0659B4 46124181 */ sub.s $f6, $f8, $f18 +/* 09A4E8 7F0659B8 E604006C */ swc1 $f4, 0x6c($s0) +/* 09A4EC 7F0659BC 46105100 */ add.s $f4, $f10, $f16 +/* 09A4F0 7F0659C0 46023282 */ mul.s $f10, $f6, $f2 +/* 09A4F4 7F0659C4 E6040070 */ swc1 $f4, 0x70($s0) +/* 09A4F8 7F0659C8 46125100 */ add.s $f4, $f10, $f18 +/* 09A4FC 7F0659CC E6040074 */ swc1 $f4, 0x74($s0) +/* 09A500 7F0659D0 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09A504 7F0659D4 8FA50030 */ lw $a1, 0x30($sp) +/* 09A508 7F0659D8 8FA40034 */ lw $a0, 0x34($sp) +/* 09A50C 7F0659DC 0FC16266 */ jal matrix_4x4_set_position +/* 09A510 7F0659E0 8FA50030 */ lw $a1, 0x30($sp) +/* 09A514 7F0659E4 10000005 */ b .L7F0659FC +/* 09A518 7F0659E8 8E020024 */ lw $v0, 0x24($s0) +.L7F0659EC: +/* 09A51C 7F0659EC AE000024 */ sw $zero, 0x24($s0) +/* 09A520 7F0659F0 AE000020 */ sw $zero, 0x20($s0) +/* 09A524 7F0659F4 AE00001C */ sw $zero, 0x1c($s0) +/* 09A528 7F0659F8 00001025 */ move $v0, $zero +.L7F0659FC: +/* 09A52C 7F0659FC 2401000D */ li $at, 13 +.L7F065A00: +/* 09A530 7F065A00 54410013 */ bnel $v0, $at, .L7F065A50 +/* 09A534 7F065A04 8E020024 */ lw $v0, 0x24($s0) +/* 09A538 7F065A08 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A53C 7F065A0C 55E00004 */ bnezl $t7, .L7F065A20 +/* 09A540 7F065A10 8E050018 */ lw $a1, 0x18($s0) +/* 09A544 7F065A14 0FC17A02 */ jal sub_GAME_7F05E808 +/* 09A548 7F065A18 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A54C 7F065A1C 8E050018 */ lw $a1, 0x18($s0) +.L7F065A20: +/* 09A550 7F065A20 54A00008 */ bnezl $a1, .L7F065A44 +/* 09A554 7F065A24 AE000024 */ sw $zero, 0x24($s0) +/* 09A558 7F065A28 54A00009 */ bnezl $a1, .L7F065A50 +/* 09A55C 7F065A2C 8E020024 */ lw $v0, 0x24($s0) +/* 09A560 7F065A30 8E180020 */ lw $t8, 0x20($s0) +/* 09A564 7F065A34 2B010014 */ slti $at, $t8, 0x14 +/* 09A568 7F065A38 54200005 */ bnezl $at, .L7F065A50 +/* 09A56C 7F065A3C 8E020024 */ lw $v0, 0x24($s0) +/* 09A570 7F065A40 AE000024 */ sw $zero, 0x24($s0) +.L7F065A44: +/* 09A574 7F065A44 AE000020 */ sw $zero, 0x20($s0) +/* 09A578 7F065A48 AE00001C */ sw $zero, 0x1c($s0) +/* 09A57C 7F065A4C 8E020024 */ lw $v0, 0x24($s0) +.L7F065A50: +/* 09A580 7F065A50 24050005 */ li $a1, 5 +/* 09A584 7F065A54 24040010 */ li $a0, 16 +/* 09A588 7F065A58 54A2005E */ bnel $a1, $v0, .L7F065BD4 +/* 09A58C 7F065A5C 24060006 */ li $a2, 6 +/* 09A590 7F065A60 0FC26919 */ jal get_num_players +/* 09A594 7F065A64 AFA40188 */ sw $a0, 0x188($sp) +/* 09A598 7F065A68 28410002 */ slti $at, $v0, 2 +/* 09A59C 7F065A6C 14200002 */ bnez $at, .L7F065A78 +/* 09A5A0 7F065A70 8FA40188 */ lw $a0, 0x188($sp) +/* 09A5A4 7F065A74 2404000C */ li $a0, 12 +.L7F065A78: +/* 09A5A8 7F065A78 8E19001C */ lw $t9, 0x1c($s0) +/* 09A5AC 7F065A7C 5720000C */ bnezl $t9, .L7F065AB0 +/* 09A5B0 7F065A80 8E030020 */ lw $v1, 0x20($s0) +/* 09A5B4 7F065A84 0FC26919 */ jal get_num_players +/* 09A5B8 7F065A88 AFA40188 */ sw $a0, 0x188($sp) +/* 09A5BC 7F065A8C 24010001 */ li $at, 1 +/* 09A5C0 7F065A90 14410004 */ bne $v0, $at, .L7F065AA4 +/* 09A5C4 7F065A94 8FA40188 */ lw $a0, 0x188($sp) +/* 09A5C8 7F065A98 240B0011 */ li $t3, 17 +/* 09A5CC 7F065A9C 10000003 */ b .L7F065AAC +/* 09A5D0 7F065AA0 AE0B0040 */ sw $t3, 0x40($s0) +.L7F065AA4: +/* 09A5D4 7F065AA4 240C000D */ li $t4, 13 +/* 09A5D8 7F065AA8 AE0C0040 */ sw $t4, 0x40($s0) +.L7F065AAC: +/* 09A5DC 7F065AAC 8E030020 */ lw $v1, 0x20($s0) +.L7F065AB0: +/* 09A5E0 7F065AB0 0064082A */ slt $at, $v1, $a0 +/* 09A5E4 7F065AB4 54200026 */ bnezl $at, .L7F065B50 +/* 09A5E8 7F065AB8 44834000 */ mtc1 $v1, $f8 +/* 09A5EC 7F065ABC 0FC1A50B */ jal get_ammo_type_for_weapon +/* 09A5F0 7F065AC0 02202025 */ move $a0, $s1 +/* 09A5F4 7F065AC4 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 09A5F8 7F065AC8 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 09A5FC 7F065ACC 00027080 */ sll $t6, $v0, 2 +/* 09A600 7F065AD0 8E18002C */ lw $t8, 0x2c($s0) +/* 09A604 7F065AD4 01AE1821 */ addu $v1, $t5, $t6 +/* 09A608 7F065AD8 8C6F1130 */ lw $t7, 0x1130($v1) +/* 09A60C 7F065ADC 01F8C821 */ addu $t9, $t7, $t8 +/* 09A610 7F065AE0 AC791130 */ sw $t9, 0x1130($v1) +/* 09A614 7F065AE4 0FC26919 */ jal get_num_players +/* 09A618 7F065AE8 AE00002C */ sw $zero, 0x2c($s0) +/* 09A61C 7F065AEC 28410002 */ slti $at, $v0, 2 +/* 09A620 7F065AF0 14200003 */ bnez $at, .L7F065B00 +/* 09A624 7F065AF4 00000000 */ nop +/* 09A628 7F065AF8 0FC26CDA */ jal sub_GAME_7F09B368 +/* 09A62C 7F065AFC 8FA401D0 */ lw $a0, 0x1d0($sp) +.L7F065B00: +/* 09A630 7F065B00 0FC17EC0 */ jal sub_GAME_7F05FB00 +/* 09A634 7F065B04 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A638 7F065B08 240B0006 */ li $t3, 6 +/* 09A63C 7F065B0C AE0B0024 */ sw $t3, 0x24($s0) +/* 09A640 7F065B10 0FC230F0 */ jal check_if_item_available +/* 09A644 7F065B14 24040011 */ li $a0, 17 +/* 09A648 7F065B18 10400006 */ beqz $v0, .L7F065B34 +/* 09A64C 7F065B1C 24050005 */ li $a1, 5 +/* 09A650 7F065B20 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 09A654 7F065B24 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 09A658 7F065B28 240C0011 */ li $t4, 17 +/* 09A65C 7F065B2C 10000005 */ b .L7F065B44 +/* 09A660 7F065B30 ADAC2A38 */ sw $t4, 0x2a38($t5) +.L7F065B34: +/* 09A664 7F065B34 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 09A668 7F065B38 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 09A66C 7F065B3C 240E0001 */ li $t6, 1 +/* 09A670 7F065B40 ADEE2A38 */ sw $t6, 0x2a38($t7) +.L7F065B44: +/* 09A674 7F065B44 10000022 */ b .L7F065BD0 +/* 09A678 7F065B48 8E020024 */ lw $v0, 0x24($s0) +/* 09A67C 7F065B4C 44834000 */ mtc1 $v1, $f8 +.L7F065B50: +/* 09A680 7F065B50 3C018005 */ lui $at, %hi(D_80054184) +/* 09A684 7F065B54 C42A4184 */ lwc1 $f10, %lo(D_80054184)($at) +/* 09A688 7F065B58 468041A0 */ cvt.s.w $f6, $f8 +/* 09A68C 7F065B5C 44844000 */ mtc1 $a0, $f8 +/* 09A690 7F065B60 24180001 */ li $t8, 1 +/* 09A694 7F065B64 AE1800BC */ sw $t8, 0xbc($s0) +/* 09A698 7F065B68 2605007C */ addiu $a1, $s0, 0x7c +/* 09A69C 7F065B6C 460A3102 */ mul.s $f4, $f6, $f10 +/* 09A6A0 7F065B70 468041A0 */ cvt.s.w $f6, $f8 +/* 09A6A4 7F065B74 46062303 */ div.s $f12, $f4, $f6 +/* 09A6A8 7F065B78 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09A6AC 7F065B7C E7AC0184 */ swc1 $f12, 0x184($sp) +/* 09A6B0 7F065B80 44805000 */ mtc1 $zero, $f10 +/* 09A6B4 7F065B84 00000000 */ nop +/* 09A6B8 7F065B88 E60A00AC */ swc1 $f10, 0xac($s0) +/* 09A6BC 7F065B8C 0FC15FA8 */ jal cosf +/* 09A6C0 7F065B90 C7AC0184 */ lwc1 $f12, 0x184($sp) +/* 09A6C4 7F065B94 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09A6C8 7F065B98 44814000 */ mtc1 $at, $f8 +/* 09A6CC 7F065B9C 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09A6D0 7F065BA0 44813000 */ mtc1 $at, $f6 +/* 09A6D4 7F065BA4 46004101 */ sub.s $f4, $f8, $f0 +/* 09A6D8 7F065BA8 46062282 */ mul.s $f10, $f4, $f6 +/* 09A6DC 7F065BAC E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 09A6E0 7F065BB0 0FC15FAB */ jal sinf +/* 09A6E4 7F065BB4 C7AC0184 */ lwc1 $f12, 0x184($sp) +/* 09A6E8 7F065BB8 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09A6EC 7F065BBC 44814000 */ mtc1 $at, $f8 +/* 09A6F0 7F065BC0 8E020024 */ lw $v0, 0x24($s0) +/* 09A6F4 7F065BC4 24050005 */ li $a1, 5 +/* 09A6F8 7F065BC8 46080102 */ mul.s $f4, $f0, $f8 +/* 09A6FC 7F065BCC E60400B4 */ swc1 $f4, 0xb4($s0) +.L7F065BD0: +/* 09A700 7F065BD0 24060006 */ li $a2, 6 +.L7F065BD4: +/* 09A704 7F065BD4 10C20003 */ beq $a2, $v0, .L7F065BE4 +/* 09A708 7F065BD8 24010007 */ li $at, 7 +/* 09A70C 7F065BDC 54410066 */ bnel $v0, $at, .L7F065D78 +/* 09A710 7F065BE0 24010008 */ li $at, 8 +.L7F065BE4: +/* 09A714 7F065BE4 8E190044 */ lw $t9, 0x44($s0) +/* 09A718 7F065BE8 13200006 */ beqz $t9, .L7F065C04 +/* 09A71C 7F065BEC 00000000 */ nop +/* 09A720 7F065BF0 8E0B0020 */ lw $t3, 0x20($s0) +/* 09A724 7F065BF4 8E0C0040 */ lw $t4, 0x40($s0) +/* 09A728 7F065BF8 016C082A */ slt $at, $t3, $t4 +/* 09A72C 7F065BFC 5420003E */ bnezl $at, .L7F065CF8 +/* 09A730 7F065C00 8E020024 */ lw $v0, 0x24($s0) +.L7F065C04: +/* 09A734 7F065C04 14C20034 */ bne $a2, $v0, .L7F065CD8 +/* 09A738 7F065C08 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 09A73C 7F065C0C 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 09A740 7F065C10 8FAE0038 */ lw $t6, 0x38($sp) +/* 09A744 7F065C14 01AE1823 */ subu $v1, $t5, $t6 +/* 09A748 7F065C18 8C620C3C */ lw $v0, 0xc3c($v1) +/* 09A74C 7F065C1C 24630C18 */ addiu $v1, $v1, 0xc18 +/* 09A750 7F065C20 50C20025 */ beql $a2, $v0, .L7F065CB8 +/* 09A754 7F065C24 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A758 7F065C28 50A20023 */ beql $a1, $v0, .L7F065CB8 +/* 09A75C 7F065C2C 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A760 7F065C30 8C640028 */ lw $a0, 0x28($v1) +/* 09A764 7F065C34 2401000E */ li $at, 14 +/* 09A768 7F065C38 50A4001F */ beql $a1, $a0, .L7F065CB8 +/* 09A76C 7F065C3C 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A770 7F065C40 1041001C */ beq $v0, $at, .L7F065CB4 +/* 09A774 7F065C44 2401000F */ li $at, 15 +/* 09A778 7F065C48 1041001A */ beq $v0, $at, .L7F065CB4 +/* 09A77C 7F065C4C 24010010 */ li $at, 16 +/* 09A780 7F065C50 10410018 */ beq $v0, $at, .L7F065CB4 +/* 09A784 7F065C54 2401000E */ li $at, 14 +/* 09A788 7F065C58 10810016 */ beq $a0, $at, .L7F065CB4 +/* 09A78C 7F065C5C 8FAF01D0 */ lw $t7, 0x1d0($sp) +/* 09A790 7F065C60 15E0000C */ bnez $t7, .L7F065C94 +/* 09A794 7F065C64 00000000 */ nop +/* 09A798 7F065C68 0FC17674 */ jal get_item_in_hand +/* 09A79C 7F065C6C 24040001 */ li $a0, 1 +/* 09A7A0 7F065C70 8E04003C */ lw $a0, 0x3c($s0) +/* 09A7A4 7F065C74 0FC23103 */ jal check_if_item_for_hand_available +/* 09A7A8 7F065C78 00402825 */ move $a1, $v0 +/* 09A7AC 7F065C7C 1440000D */ bnez $v0, .L7F065CB4 +/* 09A7B0 7F065C80 24040001 */ li $a0, 1 +/* 09A7B4 7F065C84 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 09A7B8 7F065C88 00002825 */ move $a1, $zero +/* 09A7BC 7F065C8C 1000000A */ b .L7F065CB8 +/* 09A7C0 7F065C90 8FA401D0 */ lw $a0, 0x1d0($sp) +.L7F065C94: +/* 09A7C4 7F065C94 0FC17674 */ jal get_item_in_hand +/* 09A7C8 7F065C98 00002025 */ move $a0, $zero +/* 09A7CC 7F065C9C 00402025 */ move $a0, $v0 +/* 09A7D0 7F065CA0 0FC23103 */ jal check_if_item_for_hand_available +/* 09A7D4 7F065CA4 8E05003C */ lw $a1, 0x3c($s0) +/* 09A7D8 7F065CA8 54400003 */ bnezl $v0, .L7F065CB8 +/* 09A7DC 7F065CAC 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A7E0 7F065CB0 AE00003C */ sw $zero, 0x3c($s0) +.L7F065CB4: +/* 09A7E4 7F065CB4 8FA401D0 */ lw $a0, 0x1d0($sp) +.L7F065CB8: +/* 09A7E8 7F065CB8 0FC176D5 */ jal remove_hands_item +/* 09A7EC 7F065CBC 8E05003C */ lw $a1, 0x3c($s0) +/* 09A7F0 7F065CC0 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 09A7F4 7F065CC4 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A7F8 7F065CC8 24180007 */ li $t8, 7 +/* 09A7FC 7F065CCC 00408825 */ move $s1, $v0 +/* 09A800 7F065CD0 10000008 */ b .L7F065CF4 +/* 09A804 7F065CD4 AE180024 */ sw $t8, 0x24($s0) +.L7F065CD8: +/* 09A808 7F065CD8 0FC173AF */ jal sub_GAME_7F05CEBC +/* 09A80C 7F065CDC 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A810 7F065CE0 10400004 */ beqz $v0, .L7F065CF4 +/* 09A814 7F065CE4 24190008 */ li $t9, 8 +/* 09A818 7F065CE8 AE190024 */ sw $t9, 0x24($s0) +/* 09A81C 7F065CEC AE000020 */ sw $zero, 0x20($s0) +/* 09A820 7F065CF0 AE00001C */ sw $zero, 0x1c($s0) +.L7F065CF4: +/* 09A824 7F065CF4 8E020024 */ lw $v0, 0x24($s0) +.L7F065CF8: +/* 09A828 7F065CF8 24060006 */ li $a2, 6 +/* 09A82C 7F065CFC 24010007 */ li $at, 7 +/* 09A830 7F065D00 10C20003 */ beq $a2, $v0, .L7F065D10 +/* 09A834 7F065D04 240B0001 */ li $t3, 1 +/* 09A838 7F065D08 5441001B */ bnel $v0, $at, .L7F065D78 +/* 09A83C 7F065D0C 24010008 */ li $at, 8 +.L7F065D10: +/* 09A840 7F065D10 AE0B00BC */ sw $t3, 0xbc($s0) +/* 09A844 7F065D14 3C018005 */ lui $at, %hi(D_80054188) +/* 09A848 7F065D18 C42C4188 */ lwc1 $f12, %lo(D_80054188)($at) +/* 09A84C 7F065D1C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09A850 7F065D20 2605007C */ addiu $a1, $s0, 0x7c +/* 09A854 7F065D24 44803000 */ mtc1 $zero, $f6 +/* 09A858 7F065D28 3C018005 */ lui $at, %hi(D_8005418C) +/* 09A85C 7F065D2C E60600AC */ swc1 $f6, 0xac($s0) +/* 09A860 7F065D30 0FC15FA8 */ jal cosf +/* 09A864 7F065D34 C42C418C */ lwc1 $f12, %lo(D_8005418C)($at) +/* 09A868 7F065D38 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09A86C 7F065D3C 44815000 */ mtc1 $at, $f10 +/* 09A870 7F065D40 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09A874 7F065D44 44812000 */ mtc1 $at, $f4 +/* 09A878 7F065D48 46005201 */ sub.s $f8, $f10, $f0 +/* 09A87C 7F065D4C 3C018005 */ lui $at, %hi(D_80054190) +/* 09A880 7F065D50 46044182 */ mul.s $f6, $f8, $f4 +/* 09A884 7F065D54 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 09A888 7F065D58 0FC15FAB */ jal sinf +/* 09A88C 7F065D5C C42C4190 */ lwc1 $f12, %lo(D_80054190)($at) +/* 09A890 7F065D60 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09A894 7F065D64 44815000 */ mtc1 $at, $f10 +/* 09A898 7F065D68 8E020024 */ lw $v0, 0x24($s0) +/* 09A89C 7F065D6C 460A0202 */ mul.s $f8, $f0, $f10 +/* 09A8A0 7F065D70 E60800B4 */ swc1 $f8, 0xb4($s0) +/* 09A8A4 7F065D74 24010008 */ li $at, 8 +.L7F065D78: +/* 09A8A8 7F065D78 14410088 */ bne $v0, $at, .L7F065F9C +/* 09A8AC 7F065D7C 240C0017 */ li $t4, 23 +/* 09A8B0 7F065D80 0FC26919 */ jal get_num_players +/* 09A8B4 7F065D84 AFAC0178 */ sw $t4, 0x178($sp) +/* 09A8B8 7F065D88 28410002 */ slti $at, $v0, 2 +/* 09A8BC 7F065D8C 14200002 */ bnez $at, .L7F065D98 +/* 09A8C0 7F065D90 240D000C */ li $t5, 12 +/* 09A8C4 7F065D94 AFAD0178 */ sw $t5, 0x178($sp) +.L7F065D98: +/* 09A8C8 7F065D98 8E0E001C */ lw $t6, 0x1c($s0) +/* 09A8CC 7F065D9C 55C00048 */ bnezl $t6, .L7F065EC0 +/* 09A8D0 7F065DA0 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A8D4 7F065DA4 0FC26919 */ jal get_num_players +/* 09A8D8 7F065DA8 00000000 */ nop +/* 09A8DC 7F065DAC 28410002 */ slti $at, $v0, 2 +/* 09A8E0 7F065DB0 14200003 */ bnez $at, .L7F065DC0 +/* 09A8E4 7F065DB4 00000000 */ nop +/* 09A8E8 7F065DB8 0FC26CE6 */ jal sub_GAME_7F09B398 +/* 09A8EC 7F065DBC 8FA401D0 */ lw $a0, 0x1d0($sp) +.L7F065DC0: +/* 09A8F0 7F065DC0 0FC19276 */ jal sub_GAME_7F0649D8 +/* 09A8F4 7F065DC4 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A8F8 7F065DC8 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 09A8FC 7F065DCC 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 09A900 7F065DD0 3C188005 */ lui $t8, %hi(clock_timer) +/* 09A904 7F065DD4 3C198008 */ lui $t9, %hi(pPlayer) +/* 09A908 7F065DD8 ADE00FC8 */ sw $zero, 0xfc8($t7) +/* 09A90C 7F065DDC 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 09A910 7F065DE0 5B000037 */ blezl $t8, .L7F065EC0 +/* 09A914 7F065DE4 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A918 7F065DE8 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 09A91C 7F065DEC 24010001 */ li $at, 1 +/* 09A920 7F065DF0 8F2B0000 */ lw $t3, ($t9) +/* 09A924 7F065DF4 51610032 */ beql $t3, $at, .L7F065EC0 +/* 09A928 7F065DF8 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A92C 7F065DFC 0FC173AF */ jal sub_GAME_7F05CEBC +/* 09A930 7F065E00 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A934 7F065E04 1040002D */ beqz $v0, .L7F065EBC +/* 09A938 7F065E08 3C0C8003 */ lui $t4, %hi(disable_player_pickups_flag) +/* 09A93C 7F065E0C 8D8C64B4 */ lw $t4, %lo(disable_player_pickups_flag)($t4) +/* 09A940 7F065E10 2A21003E */ slti $at, $s1, 0x3e +/* 09A944 7F065E14 5580002A */ bnezl $t4, .L7F065EC0 +/* 09A948 7F065E18 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A94C 7F065E1C 14200005 */ bnez $at, .L7F065E34 +/* 09A950 7F065E20 24010058 */ li $at, 88 +/* 09A954 7F065E24 52210026 */ beql $s1, $at, .L7F065EC0 +/* 09A958 7F065E28 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A95C 7F065E2C 1000001E */ b .L7F065EA8 +/* 09A960 7F065E30 00000000 */ nop +.L7F065E34: +/* 09A964 7F065E34 2E21003E */ sltiu $at, $s1, 0x3e +/* 09A968 7F065E38 1020001B */ beqz $at, .L7F065EA8 +/* 09A96C 7F065E3C 00116880 */ sll $t5, $s1, 2 +/* 09A970 7F065E40 3C018005 */ lui $at, %hi(jpt_80054194) +/* 09A974 7F065E44 002D0821 */ addu $at, $at, $t5 +/* 09A978 7F065E48 8C2D4194 */ lw $t5, %lo(jpt_80054194)($at) +/* 09A97C 7F065E4C 01A00008 */ jr $t5 +/* 09A980 7F065E50 00000000 */ nop +weapon_playsfx_F2: +/* 09A984 7F065E54 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09A988 7F065E58 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A98C 7F065E5C 240500F2 */ li $a1, 242 +/* 09A990 7F065E60 0C002382 */ jal play_sfx_a1 +/* 09A994 7F065E64 00003025 */ move $a2, $zero +/* 09A998 7F065E68 10000015 */ b .L7F065EC0 +/* 09A99C 7F065E6C 8E0E0020 */ lw $t6, 0x20($s0) +weapon_playsfx_knife: +/* 09A9A0 7F065E70 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09A9A4 7F065E74 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A9A8 7F065E78 240500E9 */ li $a1, 233 +/* 09A9AC 7F065E7C 0C002382 */ jal play_sfx_a1 +/* 09A9B0 7F065E80 00003025 */ move $a2, $zero +/* 09A9B4 7F065E84 1000000E */ b .L7F065EC0 +/* 09A9B8 7F065E88 8E0E0020 */ lw $t6, 0x20($s0) +weapon_playsfx_mine: +/* 09A9BC 7F065E8C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09A9C0 7F065E90 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A9C4 7F065E94 240500EB */ li $a1, 235 +/* 09A9C8 7F065E98 0C002382 */ jal play_sfx_a1 +/* 09A9CC 7F065E9C 00003025 */ move $a2, $zero +/* 09A9D0 7F065EA0 10000007 */ b .L7F065EC0 +/* 09A9D4 7F065EA4 8E0E0020 */ lw $t6, 0x20($s0) +weapon_playsfx_gun: +.L7F065EA8: +/* 09A9D8 7F065EA8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09A9DC 7F065EAC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A9E0 7F065EB0 240500E8 */ li $a1, 232 +/* 09A9E4 7F065EB4 0C002382 */ jal play_sfx_a1 +/* 09A9E8 7F065EB8 00003025 */ move $a2, $zero +weapon_switchstyle_NONE: +.L7F065EBC: +/* 09A9EC 7F065EBC 8E0E0020 */ lw $t6, 0x20($s0) +.L7F065EC0: +/* 09A9F0 7F065EC0 8FAF0178 */ lw $t7, 0x178($sp) +/* 09A9F4 7F065EC4 01CF082A */ slt $at, $t6, $t7 +/* 09A9F8 7F065EC8 5020000E */ beql $at, $zero, .L7F065F04 +/* 09A9FC 7F065ECC AE000024 */ sw $zero, 0x24($s0) +/* 09AA00 7F065ED0 0FC17412 */ jal get_ptr_weapon_model_header_line +/* 09AA04 7F065ED4 02202025 */ move $a0, $s1 +/* 09AA08 7F065ED8 10400009 */ beqz $v0, .L7F065F00 +/* 09AA0C 7F065EDC 02202025 */ move $a0, $s1 +/* 09AA10 7F065EE0 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09AA14 7F065EE4 24050800 */ li $a1, 2048 +/* 09AA18 7F065EE8 10400005 */ beqz $v0, .L7F065F00 +/* 09AA1C 7F065EEC 02202025 */ move $a0, $s1 +/* 09AA20 7F065EF0 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09AA24 7F065EF4 24052000 */ li $a1, 8192 +/* 09AA28 7F065EF8 10400006 */ beqz $v0, .L7F065F14 +/* 09AA2C 7F065EFC 8FB80178 */ lw $t8, 0x178($sp) +.L7F065F00: +/* 09AA30 7F065F00 AE000024 */ sw $zero, 0x24($s0) +.L7F065F04: +/* 09AA34 7F065F04 AE000020 */ sw $zero, 0x20($s0) +/* 09AA38 7F065F08 AE00001C */ sw $zero, 0x1c($s0) +/* 09AA3C 7F065F0C 10000023 */ b .L7F065F9C +/* 09AA40 7F065F10 00001025 */ move $v0, $zero +.L7F065F14: +/* 09AA44 7F065F14 8E190020 */ lw $t9, 0x20($s0) +/* 09AA48 7F065F18 3C018005 */ lui $at, %hi(D_8005428C) +/* 09AA4C 7F065F1C C42A428C */ lwc1 $f10, %lo(D_8005428C)($at) +/* 09AA50 7F065F20 03195823 */ subu $t3, $t8, $t9 +/* 09AA54 7F065F24 448B2000 */ mtc1 $t3, $f4 +/* 09AA58 7F065F28 240C0001 */ li $t4, 1 +/* 09AA5C 7F065F2C AE0C00BC */ sw $t4, 0xbc($s0) +/* 09AA60 7F065F30 468021A0 */ cvt.s.w $f6, $f4 +/* 09AA64 7F065F34 44982000 */ mtc1 $t8, $f4 +/* 09AA68 7F065F38 2605007C */ addiu $a1, $s0, 0x7c +/* 09AA6C 7F065F3C 460A3202 */ mul.s $f8, $f6, $f10 +/* 09AA70 7F065F40 468021A0 */ cvt.s.w $f6, $f4 +/* 09AA74 7F065F44 46064303 */ div.s $f12, $f8, $f6 +/* 09AA78 7F065F48 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09AA7C 7F065F4C E7AC0174 */ swc1 $f12, 0x174($sp) +/* 09AA80 7F065F50 44805000 */ mtc1 $zero, $f10 +/* 09AA84 7F065F54 00000000 */ nop +/* 09AA88 7F065F58 E60A00AC */ swc1 $f10, 0xac($s0) +/* 09AA8C 7F065F5C 0FC15FA8 */ jal cosf +/* 09AA90 7F065F60 C7AC0174 */ lwc1 $f12, 0x174($sp) +/* 09AA94 7F065F64 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09AA98 7F065F68 44812000 */ mtc1 $at, $f4 +/* 09AA9C 7F065F6C 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09AAA0 7F065F70 44813000 */ mtc1 $at, $f6 +/* 09AAA4 7F065F74 46002201 */ sub.s $f8, $f4, $f0 +/* 09AAA8 7F065F78 46064282 */ mul.s $f10, $f8, $f6 +/* 09AAAC 7F065F7C E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 09AAB0 7F065F80 0FC15FAB */ jal sinf +/* 09AAB4 7F065F84 C7AC0174 */ lwc1 $f12, 0x174($sp) +/* 09AAB8 7F065F88 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09AABC 7F065F8C 44812000 */ mtc1 $at, $f4 +/* 09AAC0 7F065F90 8E020024 */ lw $v0, 0x24($s0) +/* 09AAC4 7F065F94 46040202 */ mul.s $f8, $f0, $f4 +/* 09AAC8 7F065F98 E60800B4 */ swc1 $f8, 0xb4($s0) +.L7F065F9C: +/* 09AACC 7F065F9C 24010009 */ li $at, 9 +/* 09AAD0 7F065FA0 54410018 */ bnel $v0, $at, .L7F066004 +/* 09AAD4 7F065FA4 2401000A */ li $at, 10 +/* 09AAD8 7F065FA8 0FC1722D */ jal get_ptr_item_statistics +/* 09AADC 7F065FAC 02202025 */ move $a0, $s1 +/* 09AAE0 7F065FB0 8E0D002C */ lw $t5, 0x2c($s0) +/* 09AAE4 7F065FB4 844E0020 */ lh $t6, 0x20($v0) +/* 09AAE8 7F065FB8 02202025 */ move $a0, $s1 +/* 09AAEC 7F065FBC 01AE082A */ slt $at, $t5, $t6 +/* 09AAF0 7F065FC0 14200005 */ bnez $at, .L7F065FD8 +/* 09AAF4 7F065FC4 00000000 */ nop +/* 09AAF8 7F065FC8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09AAFC 7F065FCC 3C050020 */ lui $a1, 0x20 +/* 09AB00 7F065FD0 50400008 */ beql $v0, $zero, .L7F065FF4 +/* 09AB04 7F065FD4 AE000024 */ sw $zero, 0x24($s0) +.L7F065FD8: +/* 09AB08 7F065FD8 0FC1A4DD */ jal get_ammo_in_hands_weapon +/* 09AB0C 7F065FDC 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09AB10 7F065FE0 18400003 */ blez $v0, .L7F065FF0 +/* 09AB14 7F065FE4 2402000A */ li $v0, 10 +/* 09AB18 7F065FE8 10000005 */ b .L7F066000 +/* 09AB1C 7F065FEC AE020024 */ sw $v0, 0x24($s0) +.L7F065FF0: +/* 09AB20 7F065FF0 AE000024 */ sw $zero, 0x24($s0) +.L7F065FF4: +/* 09AB24 7F065FF4 AE000020 */ sw $zero, 0x20($s0) +/* 09AB28 7F065FF8 AE00001C */ sw $zero, 0x1c($s0) +/* 09AB2C 7F065FFC 00001025 */ move $v0, $zero +.L7F066000: +/* 09AB30 7F066000 2401000A */ li $at, 10 +.L7F066004: +/* 09AB34 7F066004 54410048 */ bnel $v0, $at, .L7F066128 +/* 09AB38 7F066008 2401000B */ li $at, 11 +/* 09AB3C 7F06600C 8E030020 */ lw $v1, 0x20($s0) +/* 09AB40 7F066010 2402000B */ li $v0, 11 +/* 09AB44 7F066014 24180011 */ li $t8, 17 +/* 09AB48 7F066018 28610010 */ slti $at, $v1, 0x10 +/* 09AB4C 7F06601C 50200005 */ beql $at, $zero, .L7F066034 +/* 09AB50 7F066020 AE020024 */ sw $v0, 0x24($s0) +/* 09AB54 7F066024 8219000F */ lb $t9, 0xf($s0) +/* 09AB58 7F066028 57200007 */ bnezl $t9, .L7F066048 +/* 09AB5C 7F06602C 44833000 */ mtc1 $v1, $f6 +/* 09AB60 7F066030 AE020024 */ sw $v0, 0x24($s0) +.L7F066034: +/* 09AB64 7F066034 AE180040 */ sw $t8, 0x40($s0) +/* 09AB68 7F066038 AE000020 */ sw $zero, 0x20($s0) +/* 09AB6C 7F06603C 10000039 */ b .L7F066124 +/* 09AB70 7F066040 AE00001C */ sw $zero, 0x1c($s0) +/* 09AB74 7F066044 44833000 */ mtc1 $v1, $f6 +.L7F066048: +/* 09AB78 7F066048 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 09AB7C 7F06604C 44811000 */ mtc1 $at, $f2 +/* 09AB80 7F066050 468032A0 */ cvt.s.w $f10, $f6 +/* 09AB84 7F066054 3C018005 */ lui $at, %hi(D_80054290) +/* 09AB88 7F066058 C4244290 */ lwc1 $f4, %lo(D_80054290)($at) +/* 09AB8C 7F06605C 240C0001 */ li $t4, 1 +/* 09AB90 7F066060 2605007C */ addiu $a1, $s0, 0x7c +/* 09AB94 7F066064 46045202 */ mul.s $f8, $f10, $f4 +/* 09AB98 7F066068 46024183 */ div.s $f6, $f8, $f2 +/* 09AB9C 7F06606C E7A60128 */ swc1 $f6, 0x128($sp) +/* 09ABA0 7F066070 AE0C00BC */ sw $t4, 0xbc($s0) +/* 09ABA4 7F066074 8FAD01D0 */ lw $t5, 0x1d0($sp) +/* 09ABA8 7F066078 55A00009 */ bnezl $t5, .L7F0660A0 +/* 09ABAC 7F06607C 44802000 */ mtc1 $zero, $f4 +/* 09ABB0 7F066080 44805000 */ mtc1 $zero, $f10 +/* 09ABB4 7F066084 AFA50030 */ sw $a1, 0x30($sp) +/* 09ABB8 7F066088 46025303 */ div.s $f12, $f10, $f2 +/* 09ABBC 7F06608C 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09ABC0 7F066090 E7AC003C */ swc1 $f12, 0x3c($sp) +/* 09ABC4 7F066094 10000008 */ b .L7F0660B8 +/* 09ABC8 7F066098 C7AC0128 */ lwc1 $f12, 0x128($sp) +/* 09ABCC 7F06609C 44802000 */ mtc1 $zero, $f4 +.L7F0660A0: +/* 09ABD0 7F0660A0 AFA50030 */ sw $a1, 0x30($sp) +/* 09ABD4 7F0660A4 46022003 */ div.s $f0, $f4, $f2 +/* 09ABD8 7F0660A8 46000307 */ neg.s $f12, $f0 +/* 09ABDC 7F0660AC 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09ABE0 7F0660B0 E7A0003C */ swc1 $f0, 0x3c($sp) +/* 09ABE4 7F0660B4 C7AC0128 */ lwc1 $f12, 0x128($sp) +.L7F0660B8: +/* 09ABE8 7F0660B8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09ABEC 7F0660BC 27A5012C */ addiu $a1, $sp, 0x12c +/* 09ABF0 7F0660C0 27A4012C */ addiu $a0, $sp, 0x12c +/* 09ABF4 7F0660C4 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 09ABF8 7F0660C8 8FA50030 */ lw $a1, 0x30($sp) +/* 09ABFC 7F0660CC 0FC15FAB */ jal sinf +/* 09AC00 7F0660D0 C7AC003C */ lwc1 $f12, 0x3c($sp) +/* 09AC04 7F0660D4 44804000 */ mtc1 $zero, $f8 +/* 09AC08 7F0660D8 02202025 */ move $a0, $s1 +/* 09AC0C 7F0660DC 0FC1926B */ jal sub_GAME_7F0649AC +/* 09AC10 7F0660E0 E60800AC */ swc1 $f8, 0xac($s0) +/* 09AC14 7F0660E4 E7A00040 */ swc1 $f0, 0x40($sp) +/* 09AC18 7F0660E8 0FC15FA8 */ jal cosf +/* 09AC1C 7F0660EC C7AC0128 */ lwc1 $f12, 0x128($sp) +/* 09AC20 7F0660F0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09AC24 7F0660F4 44813000 */ mtc1 $at, $f6 +/* 09AC28 7F0660F8 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 09AC2C 7F0660FC 46003281 */ sub.s $f10, $f6, $f0 +/* 09AC30 7F066100 46045202 */ mul.s $f8, $f10, $f4 +/* 09AC34 7F066104 E60800B0 */ swc1 $f8, 0xb0($s0) +/* 09AC38 7F066108 0FC15FAB */ jal sinf +/* 09AC3C 7F06610C C7AC0128 */ lwc1 $f12, 0x128($sp) +/* 09AC40 7F066110 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09AC44 7F066114 44813000 */ mtc1 $at, $f6 +/* 09AC48 7F066118 8E020024 */ lw $v0, 0x24($s0) +/* 09AC4C 7F06611C 46060282 */ mul.s $f10, $f0, $f6 +/* 09AC50 7F066120 E60A00B4 */ swc1 $f10, 0xb4($s0) +.L7F066124: +/* 09AC54 7F066124 2401000B */ li $at, 11 +.L7F066128: +/* 09AC58 7F066128 54410063 */ bnel $v0, $at, .L7F0662B8 +/* 09AC5C 7F06612C 2401000C */ li $at, 12 +/* 09AC60 7F066130 8E0E001C */ lw $t6, 0x1c($s0) +/* 09AC64 7F066134 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 09AC68 7F066138 55C00022 */ bnezl $t6, .L7F0661C4 +/* 09AC6C 7F06613C 8E0C0020 */ lw $t4, 0x20($s0) +/* 09AC70 7F066140 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 09AC74 7F066144 24010001 */ li $at, 1 +/* 09AC78 7F066148 8DF90000 */ lw $t9, ($t7) +/* 09AC7C 7F06614C 5321001D */ beql $t9, $at, .L7F0661C4 +/* 09AC80 7F066150 8E0C0020 */ lw $t4, 0x20($s0) +/* 09AC84 7F066154 0FC173AF */ jal sub_GAME_7F05CEBC +/* 09AC88 7F066158 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09AC8C 7F06615C 10400018 */ beqz $v0, .L7F0661C0 +/* 09AC90 7F066160 3C0B8003 */ lui $t3, %hi(disable_player_pickups_flag) +/* 09AC94 7F066164 8D6B64B4 */ lw $t3, %lo(disable_player_pickups_flag)($t3) +/* 09AC98 7F066168 2A21003E */ slti $at, $s1, 0x3e +/* 09AC9C 7F06616C 55600015 */ bnezl $t3, .L7F0661C4 +/* 09ACA0 7F066170 8E0C0020 */ lw $t4, 0x20($s0) +/* 09ACA4 7F066174 14200005 */ bnez $at, .L7F06618C +/* 09ACA8 7F066178 24010058 */ li $at, 88 +/* 09ACAC 7F06617C 52210011 */ beql $s1, $at, .L7F0661C4 +/* 09ACB0 7F066180 8E0C0020 */ lw $t4, 0x20($s0) +/* 09ACB4 7F066184 10000009 */ b .L7F0661AC +/* 09ACB8 7F066188 00000000 */ nop +.L7F06618C: +/* 09ACBC 7F06618C 2E21003E */ sltiu $at, $s1, 0x3e +/* 09ACC0 7F066190 10200006 */ beqz $at, .L7F0661AC +/* 09ACC4 7F066194 0011C080 */ sll $t8, $s1, 2 +/* 09ACC8 7F066198 3C018005 */ lui $at, %hi(jpt_80054294) +/* 09ACCC 7F06619C 00380821 */ addu $at, $at, $t8 +/* 09ACD0 7F0661A0 8C384294 */ lw $t8, %lo(jpt_80054294)($at) +/* 09ACD4 7F0661A4 03000008 */ jr $t8 +/* 09ACD8 7F0661A8 00000000 */ nop +weapon_reload_gun_sfx: +.L7F0661AC: +/* 09ACDC 7F0661AC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09ACE0 7F0661B0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09ACE4 7F0661B4 24050032 */ li $a1, 50 +/* 09ACE8 7F0661B8 0C002382 */ jal play_sfx_a1 +/* 09ACEC 7F0661BC 00003025 */ move $a2, $zero +weapon_reload_none_sfx: +.L7F0661C0: +/* 09ACF0 7F0661C0 8E0C0020 */ lw $t4, 0x20($s0) +.L7F0661C4: +/* 09ACF4 7F0661C4 8E0D0040 */ lw $t5, 0x40($s0) +/* 09ACF8 7F0661C8 24190001 */ li $t9, 1 +/* 09ACFC 7F0661CC 018D082A */ slt $at, $t4, $t5 +/* 09AD00 7F0661D0 5420000B */ bnezl $at, .L7F066200 +/* 09AD04 7F0661D4 AE1900BC */ sw $t9, 0xbc($s0) +/* 09AD08 7F0661D8 8E0E001C */ lw $t6, 0x1c($s0) +/* 09AD0C 7F0661DC 2402000C */ li $v0, 12 +/* 09AD10 7F0661E0 29C10002 */ slti $at, $t6, 2 +/* 09AD14 7F0661E4 54200006 */ bnezl $at, .L7F066200 +/* 09AD18 7F0661E8 AE1900BC */ sw $t9, 0xbc($s0) +/* 09AD1C 7F0661EC AE020024 */ sw $v0, 0x24($s0) +/* 09AD20 7F0661F0 AE000020 */ sw $zero, 0x20($s0) +/* 09AD24 7F0661F4 1000002F */ b .L7F0662B4 +/* 09AD28 7F0661F8 AE00001C */ sw $zero, 0x1c($s0) +/* 09AD2C 7F0661FC AE1900BC */ sw $t9, 0xbc($s0) +.L7F066200: +/* 09AD30 7F066200 8FAB01D0 */ lw $t3, 0x1d0($sp) +/* 09AD34 7F066204 2605007C */ addiu $a1, $s0, 0x7c +/* 09AD38 7F066208 55600007 */ bnezl $t3, .L7F066228 +/* 09AD3C 7F06620C 44806000 */ mtc1 $zero, $f12 +/* 09AD40 7F066210 44806000 */ mtc1 $zero, $f12 +/* 09AD44 7F066214 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09AD48 7F066218 AFA50030 */ sw $a1, 0x30($sp) +/* 09AD4C 7F06621C 10000005 */ b .L7F066234 +/* 09AD50 7F066220 00000000 */ nop +/* 09AD54 7F066224 44806000 */ mtc1 $zero, $f12 +.L7F066228: +/* 09AD58 7F066228 AFA50030 */ sw $a1, 0x30($sp) +/* 09AD5C 7F06622C 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09AD60 7F066230 46006307 */ neg.s $f12, $f12 +.L7F066234: +/* 09AD64 7F066234 3C018005 */ lui $at, %hi(D_8005438C) +/* 09AD68 7F066238 C42C438C */ lwc1 $f12, %lo(D_8005438C)($at) +/* 09AD6C 7F06623C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09AD70 7F066240 27A500E4 */ addiu $a1, $sp, 0xe4 +/* 09AD74 7F066244 27A400E4 */ addiu $a0, $sp, 0xe4 +/* 09AD78 7F066248 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 09AD7C 7F06624C 8FA50030 */ lw $a1, 0x30($sp) +/* 09AD80 7F066250 44806000 */ mtc1 $zero, $f12 +/* 09AD84 7F066254 0FC15FAB */ jal sinf +/* 09AD88 7F066258 00000000 */ nop +/* 09AD8C 7F06625C 44802000 */ mtc1 $zero, $f4 +/* 09AD90 7F066260 02202025 */ move $a0, $s1 +/* 09AD94 7F066264 0FC1926B */ jal sub_GAME_7F0649AC +/* 09AD98 7F066268 E60400AC */ swc1 $f4, 0xac($s0) +/* 09AD9C 7F06626C 3C018005 */ lui $at, %hi(D_80054390) +/* 09ADA0 7F066270 C42C4390 */ lwc1 $f12, %lo(D_80054390)($at) +/* 09ADA4 7F066274 0FC15FA8 */ jal cosf +/* 09ADA8 7F066278 E7A00040 */ swc1 $f0, 0x40($sp) +/* 09ADAC 7F06627C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09ADB0 7F066280 44814000 */ mtc1 $at, $f8 +/* 09ADB4 7F066284 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 09ADB8 7F066288 3C018005 */ lui $at, %hi(D_80054394) +/* 09ADBC 7F06628C 46004181 */ sub.s $f6, $f8, $f0 +/* 09ADC0 7F066290 460A3102 */ mul.s $f4, $f6, $f10 +/* 09ADC4 7F066294 E60400B0 */ swc1 $f4, 0xb0($s0) +/* 09ADC8 7F066298 0FC15FAB */ jal sinf +/* 09ADCC 7F06629C C42C4394 */ lwc1 $f12, %lo(D_80054394)($at) +/* 09ADD0 7F0662A0 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09ADD4 7F0662A4 44814000 */ mtc1 $at, $f8 +/* 09ADD8 7F0662A8 8E020024 */ lw $v0, 0x24($s0) +/* 09ADDC 7F0662AC 46080182 */ mul.s $f6, $f0, $f8 +/* 09ADE0 7F0662B0 E60600B4 */ swc1 $f6, 0xb4($s0) +.L7F0662B4: +/* 09ADE4 7F0662B4 2401000C */ li $at, 12 +.L7F0662B8: +/* 09ADE8 7F0662B8 5441005A */ bnel $v0, $at, .L7F066424 +/* 09ADEC 7F0662BC 2401000E */ li $at, 14 +/* 09ADF0 7F0662C0 8E18001C */ lw $t8, 0x1c($s0) +/* 09ADF4 7F0662C4 57000007 */ bnezl $t8, .L7F0662E4 +/* 09ADF8 7F0662C8 8E0D0020 */ lw $t5, 0x20($s0) +/* 09ADFC 7F0662CC 0FC19276 */ jal sub_GAME_7F0649D8 +/* 09AE00 7F0662D0 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09AE04 7F0662D4 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 09AE08 7F0662D8 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 09AE0C 7F0662DC AD800FC8 */ sw $zero, 0xfc8($t4) +/* 09AE10 7F0662E0 8E0D0020 */ lw $t5, 0x20($s0) +.L7F0662E4: +/* 09AE14 7F0662E4 29A10017 */ slti $at, $t5, 0x17 +/* 09AE18 7F0662E8 5020000E */ beql $at, $zero, .L7F066324 +/* 09AE1C 7F0662EC AE000024 */ sw $zero, 0x24($s0) +/* 09AE20 7F0662F0 0FC17412 */ jal get_ptr_weapon_model_header_line +/* 09AE24 7F0662F4 02202025 */ move $a0, $s1 +/* 09AE28 7F0662F8 10400009 */ beqz $v0, .L7F066320 +/* 09AE2C 7F0662FC 02202025 */ move $a0, $s1 +/* 09AE30 7F066300 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09AE34 7F066304 24050800 */ li $a1, 2048 +/* 09AE38 7F066308 10400005 */ beqz $v0, .L7F066320 +/* 09AE3C 7F06630C 02202025 */ move $a0, $s1 +/* 09AE40 7F066310 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09AE44 7F066314 24052000 */ li $a1, 8192 +/* 09AE48 7F066318 50400007 */ beql $v0, $zero, .L7F066338 +/* 09AE4C 7F06631C 8E0E0020 */ lw $t6, 0x20($s0) +.L7F066320: +/* 09AE50 7F066320 AE000024 */ sw $zero, 0x24($s0) +.L7F066324: +/* 09AE54 7F066324 AE000020 */ sw $zero, 0x20($s0) +/* 09AE58 7F066328 AE00001C */ sw $zero, 0x1c($s0) +/* 09AE5C 7F06632C 1000003C */ b .L7F066420 +/* 09AE60 7F066330 00001025 */ move $v0, $zero +/* 09AE64 7F066334 8E0E0020 */ lw $t6, 0x20($s0) +.L7F066338: +/* 09AE68 7F066338 240F0017 */ li $t7, 23 +/* 09AE6C 7F06633C 3C0141B8 */ li $at, 0x41B80000 # 23.000000 +/* 09AE70 7F066340 01EEC823 */ subu $t9, $t7, $t6 +/* 09AE74 7F066344 44995000 */ mtc1 $t9, $f10 +/* 09AE78 7F066348 44811000 */ mtc1 $at, $f2 +/* 09AE7C 7F06634C 3C018005 */ lui $at, %hi(D_80054398) +/* 09AE80 7F066350 46805120 */ cvt.s.w $f4, $f10 +/* 09AE84 7F066354 C4284398 */ lwc1 $f8, %lo(D_80054398)($at) +/* 09AE88 7F066358 240B0001 */ li $t3, 1 +/* 09AE8C 7F06635C 2605007C */ addiu $a1, $s0, 0x7c +/* 09AE90 7F066360 46082182 */ mul.s $f6, $f4, $f8 +/* 09AE94 7F066364 46023283 */ div.s $f10, $f6, $f2 +/* 09AE98 7F066368 E7AA0098 */ swc1 $f10, 0x98($sp) +/* 09AE9C 7F06636C AE0B00BC */ sw $t3, 0xbc($s0) +/* 09AEA0 7F066370 8FB801D0 */ lw $t8, 0x1d0($sp) +/* 09AEA4 7F066374 57000009 */ bnezl $t8, .L7F06639C +/* 09AEA8 7F066378 44804000 */ mtc1 $zero, $f8 +/* 09AEAC 7F06637C 44802000 */ mtc1 $zero, $f4 +/* 09AEB0 7F066380 AFA50030 */ sw $a1, 0x30($sp) +/* 09AEB4 7F066384 46022303 */ div.s $f12, $f4, $f2 +/* 09AEB8 7F066388 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09AEBC 7F06638C E7AC003C */ swc1 $f12, 0x3c($sp) +/* 09AEC0 7F066390 10000008 */ b .L7F0663B4 +/* 09AEC4 7F066394 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 09AEC8 7F066398 44804000 */ mtc1 $zero, $f8 +.L7F06639C: +/* 09AECC 7F06639C AFA50030 */ sw $a1, 0x30($sp) +/* 09AED0 7F0663A0 46024003 */ div.s $f0, $f8, $f2 +/* 09AED4 7F0663A4 46000307 */ neg.s $f12, $f0 +/* 09AED8 7F0663A8 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09AEDC 7F0663AC E7A0003C */ swc1 $f0, 0x3c($sp) +/* 09AEE0 7F0663B0 C7AC0098 */ lwc1 $f12, 0x98($sp) +.L7F0663B4: +/* 09AEE4 7F0663B4 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09AEE8 7F0663B8 27A5009C */ addiu $a1, $sp, 0x9c +/* 09AEEC 7F0663BC 27A4009C */ addiu $a0, $sp, 0x9c +/* 09AEF0 7F0663C0 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 09AEF4 7F0663C4 8FA50030 */ lw $a1, 0x30($sp) +/* 09AEF8 7F0663C8 0FC15FAB */ jal sinf +/* 09AEFC 7F0663CC C7AC003C */ lwc1 $f12, 0x3c($sp) +/* 09AF00 7F0663D0 44803000 */ mtc1 $zero, $f6 +/* 09AF04 7F0663D4 02202025 */ move $a0, $s1 +/* 09AF08 7F0663D8 0FC1926B */ jal sub_GAME_7F0649AC +/* 09AF0C 7F0663DC E60600AC */ swc1 $f6, 0xac($s0) +/* 09AF10 7F0663E0 E7A00040 */ swc1 $f0, 0x40($sp) +/* 09AF14 7F0663E4 0FC15FA8 */ jal cosf +/* 09AF18 7F0663E8 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 09AF1C 7F0663EC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09AF20 7F0663F0 44815000 */ mtc1 $at, $f10 +/* 09AF24 7F0663F4 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 09AF28 7F0663F8 46005101 */ sub.s $f4, $f10, $f0 +/* 09AF2C 7F0663FC 46082182 */ mul.s $f6, $f4, $f8 +/* 09AF30 7F066400 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 09AF34 7F066404 0FC15FAB */ jal sinf +/* 09AF38 7F066408 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 09AF3C 7F06640C 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09AF40 7F066410 44815000 */ mtc1 $at, $f10 +/* 09AF44 7F066414 8E020024 */ lw $v0, 0x24($s0) +/* 09AF48 7F066418 460A0102 */ mul.s $f4, $f0, $f10 +/* 09AF4C 7F06641C E60400B4 */ swc1 $f4, 0xb4($s0) +.L7F066420: +/* 09AF50 7F066420 2401000E */ li $at, 14 +.L7F066424: +/* 09AF54 7F066424 5441002E */ bnel $v0, $at, .L7F0664E0 +/* 09AF58 7F066428 2401000F */ li $at, 15 +/* 09AF5C 7F06642C 8E030020 */ lw $v1, 0x20($s0) +/* 09AF60 7F066430 2402000F */ li $v0, 15 +/* 09AF64 7F066434 28610010 */ slti $at, $v1, 0x10 +/* 09AF68 7F066438 50200005 */ beql $at, $zero, .L7F066450 +/* 09AF6C 7F06643C AE020024 */ sw $v0, 0x24($s0) +/* 09AF70 7F066440 820C000F */ lb $t4, 0xf($s0) +/* 09AF74 7F066444 55800006 */ bnezl $t4, .L7F066460 +/* 09AF78 7F066448 44834000 */ mtc1 $v1, $f8 +/* 09AF7C 7F06644C AE020024 */ sw $v0, 0x24($s0) +.L7F066450: +/* 09AF80 7F066450 AE000020 */ sw $zero, 0x20($s0) +/* 09AF84 7F066454 10000021 */ b .L7F0664DC +/* 09AF88 7F066458 AE00001C */ sw $zero, 0x1c($s0) +/* 09AF8C 7F06645C 44834000 */ mtc1 $v1, $f8 +.L7F066460: +/* 09AF90 7F066460 3C018005 */ lui $at, %hi(D_8005439C) +/* 09AF94 7F066464 C42A439C */ lwc1 $f10, %lo(D_8005439C)($at) +/* 09AF98 7F066468 468041A0 */ cvt.s.w $f6, $f8 +/* 09AF9C 7F06646C 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 09AFA0 7F066470 44814000 */ mtc1 $at, $f8 +/* 09AFA4 7F066474 240F0001 */ li $t7, 1 +/* 09AFA8 7F066478 AE0F00BC */ sw $t7, 0xbc($s0) +/* 09AFAC 7F06647C 2605007C */ addiu $a1, $s0, 0x7c +/* 09AFB0 7F066480 460A3102 */ mul.s $f4, $f6, $f10 +/* 09AFB4 7F066484 46082303 */ div.s $f12, $f4, $f8 +/* 09AFB8 7F066488 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09AFBC 7F06648C E7AC0094 */ swc1 $f12, 0x94($sp) +/* 09AFC0 7F066490 44803000 */ mtc1 $zero, $f6 +/* 09AFC4 7F066494 00000000 */ nop +/* 09AFC8 7F066498 E60600AC */ swc1 $f6, 0xac($s0) +/* 09AFCC 7F06649C 0FC15FA8 */ jal cosf +/* 09AFD0 7F0664A0 C7AC0094 */ lwc1 $f12, 0x94($sp) +/* 09AFD4 7F0664A4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09AFD8 7F0664A8 44815000 */ mtc1 $at, $f10 +/* 09AFDC 7F0664AC 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09AFE0 7F0664B0 44814000 */ mtc1 $at, $f8 +/* 09AFE4 7F0664B4 46005101 */ sub.s $f4, $f10, $f0 +/* 09AFE8 7F0664B8 46082182 */ mul.s $f6, $f4, $f8 +/* 09AFEC 7F0664BC E60600B0 */ swc1 $f6, 0xb0($s0) +/* 09AFF0 7F0664C0 0FC15FAB */ jal sinf +/* 09AFF4 7F0664C4 C7AC0094 */ lwc1 $f12, 0x94($sp) +/* 09AFF8 7F0664C8 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09AFFC 7F0664CC 44815000 */ mtc1 $at, $f10 +/* 09B000 7F0664D0 8E020024 */ lw $v0, 0x24($s0) +/* 09B004 7F0664D4 460A0102 */ mul.s $f4, $f0, $f10 +/* 09B008 7F0664D8 E60400B4 */ swc1 $f4, 0xb4($s0) +.L7F0664DC: +/* 09B00C 7F0664DC 2401000F */ li $at, 15 +.L7F0664E0: +/* 09B010 7F0664E0 54410031 */ bnel $v0, $at, .L7F0665A8 +/* 09B014 7F0664E4 24010010 */ li $at, 16 +/* 09B018 7F0664E8 8E0E001C */ lw $t6, 0x1c($s0) +/* 09B01C 7F0664EC 51C00006 */ beql $t6, $zero, .L7F066508 +/* 09B020 7F0664F0 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09B024 7F0664F4 0FC173AF */ jal sub_GAME_7F05CEBC +/* 09B028 7F0664F8 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09B02C 7F0664FC 14400007 */ bnez $v0, .L7F06651C +/* 09B030 7F066500 00000000 */ nop +/* 09B034 7F066504 8FA401D0 */ lw $a0, 0x1d0($sp) +.L7F066508: +/* 09B038 7F066508 0FC176A3 */ jal sub_GAME_7F05DA8C +/* 09B03C 7F06650C 8E05003C */ lw $a1, 0x3c($s0) +/* 09B040 7F066510 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 09B044 7F066514 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09B048 7F066518 00408825 */ move $s1, $v0 +.L7F06651C: +/* 09B04C 7F06651C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 09B050 7F066520 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09B054 7F066524 10400006 */ beqz $v0, .L7F066540 +/* 09B058 7F066528 240B0001 */ li $t3, 1 +/* 09B05C 7F06652C 24020010 */ li $v0, 16 +/* 09B060 7F066530 AE020024 */ sw $v0, 0x24($s0) +/* 09B064 7F066534 AE000020 */ sw $zero, 0x20($s0) +/* 09B068 7F066538 1000001A */ b .L7F0665A4 +/* 09B06C 7F06653C AE00001C */ sw $zero, 0x1c($s0) +.L7F066540: +/* 09B070 7F066540 AE0B00BC */ sw $t3, 0xbc($s0) +/* 09B074 7F066544 3C018005 */ lui $at, %hi(D_800543A0) +/* 09B078 7F066548 C42C43A0 */ lwc1 $f12, %lo(D_800543A0)($at) +/* 09B07C 7F06654C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09B080 7F066550 2605007C */ addiu $a1, $s0, 0x7c +/* 09B084 7F066554 44804000 */ mtc1 $zero, $f8 +/* 09B088 7F066558 3C018005 */ lui $at, %hi(D_800543A4) +/* 09B08C 7F06655C E60800AC */ swc1 $f8, 0xac($s0) +/* 09B090 7F066560 0FC15FA8 */ jal cosf +/* 09B094 7F066564 C42C43A4 */ lwc1 $f12, %lo(D_800543A4)($at) +/* 09B098 7F066568 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B09C 7F06656C 44813000 */ mtc1 $at, $f6 +/* 09B0A0 7F066570 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09B0A4 7F066574 44812000 */ mtc1 $at, $f4 +/* 09B0A8 7F066578 46003281 */ sub.s $f10, $f6, $f0 +/* 09B0AC 7F06657C 3C018005 */ lui $at, %hi(D_800543A8) +/* 09B0B0 7F066580 46045202 */ mul.s $f8, $f10, $f4 +/* 09B0B4 7F066584 E60800B0 */ swc1 $f8, 0xb0($s0) +/* 09B0B8 7F066588 0FC15FAB */ jal sinf +/* 09B0BC 7F06658C C42C43A8 */ lwc1 $f12, %lo(D_800543A8)($at) +/* 09B0C0 7F066590 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B0C4 7F066594 44813000 */ mtc1 $at, $f6 +/* 09B0C8 7F066598 8E020024 */ lw $v0, 0x24($s0) +/* 09B0CC 7F06659C 46060282 */ mul.s $f10, $f0, $f6 +/* 09B0D0 7F0665A0 E60A00B4 */ swc1 $f10, 0xb4($s0) +.L7F0665A4: +/* 09B0D4 7F0665A4 24010010 */ li $at, 16 +.L7F0665A8: +/* 09B0D8 7F0665A8 5441004C */ bnel $v0, $at, .L7F0666DC +/* 09B0DC 7F0665AC 24010011 */ li $at, 17 +/* 09B0E0 7F0665B0 8E18001C */ lw $t8, 0x1c($s0) +/* 09B0E4 7F0665B4 2A210021 */ slti $at, $s1, 0x21 +/* 09B0E8 7F0665B8 57000010 */ bnezl $t8, .L7F0665FC +/* 09B0EC 7F0665BC 8E0D0020 */ lw $t5, 0x20($s0) +/* 09B0F0 7F0665C0 5020000E */ beql $at, $zero, .L7F0665FC +/* 09B0F4 7F0665C4 8E0D0020 */ lw $t5, 0x20($s0) +/* 09B0F8 7F0665C8 0FC26919 */ jal get_num_players +/* 09B0FC 7F0665CC 00000000 */ nop +/* 09B100 7F0665D0 28410002 */ slti $at, $v0, 2 +/* 09B104 7F0665D4 14200003 */ bnez $at, .L7F0665E4 +/* 09B108 7F0665D8 00000000 */ nop +/* 09B10C 7F0665DC 0FC26CE6 */ jal sub_GAME_7F09B398 +/* 09B110 7F0665E0 8FA401D0 */ lw $a0, 0x1d0($sp) +.L7F0665E4: +/* 09B114 7F0665E4 0FC19276 */ jal sub_GAME_7F0649D8 +/* 09B118 7F0665E8 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09B11C 7F0665EC 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 09B120 7F0665F0 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 09B124 7F0665F4 AD800FC8 */ sw $zero, 0xfc8($t4) +/* 09B128 7F0665F8 8E0D0020 */ lw $t5, 0x20($s0) +.L7F0665FC: +/* 09B12C 7F0665FC 29A10017 */ slti $at, $t5, 0x17 +/* 09B130 7F066600 5020000E */ beql $at, $zero, .L7F06663C +/* 09B134 7F066604 AE000024 */ sw $zero, 0x24($s0) +/* 09B138 7F066608 0FC17412 */ jal get_ptr_weapon_model_header_line +/* 09B13C 7F06660C 02202025 */ move $a0, $s1 +/* 09B140 7F066610 10400009 */ beqz $v0, .L7F066638 +/* 09B144 7F066614 02202025 */ move $a0, $s1 +/* 09B148 7F066618 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09B14C 7F06661C 24050800 */ li $a1, 2048 +/* 09B150 7F066620 10400005 */ beqz $v0, .L7F066638 +/* 09B154 7F066624 02202025 */ move $a0, $s1 +/* 09B158 7F066628 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09B15C 7F06662C 24052000 */ li $a1, 8192 +/* 09B160 7F066630 50400007 */ beql $v0, $zero, .L7F066650 +/* 09B164 7F066634 8E0F0020 */ lw $t7, 0x20($s0) +.L7F066638: +/* 09B168 7F066638 AE000024 */ sw $zero, 0x24($s0) +.L7F06663C: +/* 09B16C 7F06663C AE000020 */ sw $zero, 0x20($s0) +/* 09B170 7F066640 AE00001C */ sw $zero, 0x1c($s0) +/* 09B174 7F066644 10000024 */ b .L7F0666D8 +/* 09B178 7F066648 00001025 */ move $v0, $zero +/* 09B17C 7F06664C 8E0F0020 */ lw $t7, 0x20($s0) +.L7F066650: +/* 09B180 7F066650 240E0017 */ li $t6, 23 +/* 09B184 7F066654 3C018005 */ lui $at, %hi(D_800543AC) +/* 09B188 7F066658 01CFC823 */ subu $t9, $t6, $t7 +/* 09B18C 7F06665C 44992000 */ mtc1 $t9, $f4 +/* 09B190 7F066660 C42643AC */ lwc1 $f6, %lo(D_800543AC)($at) +/* 09B194 7F066664 3C0141B8 */ li $at, 0x41B80000 # 23.000000 +/* 09B198 7F066668 46802220 */ cvt.s.w $f8, $f4 +/* 09B19C 7F06666C 44812000 */ mtc1 $at, $f4 +/* 09B1A0 7F066670 240B0001 */ li $t3, 1 +/* 09B1A4 7F066674 AE0B00BC */ sw $t3, 0xbc($s0) +/* 09B1A8 7F066678 2605007C */ addiu $a1, $s0, 0x7c +/* 09B1AC 7F06667C 46064282 */ mul.s $f10, $f8, $f6 +/* 09B1B0 7F066680 46045303 */ div.s $f12, $f10, $f4 +/* 09B1B4 7F066684 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09B1B8 7F066688 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 09B1BC 7F06668C 44804000 */ mtc1 $zero, $f8 +/* 09B1C0 7F066690 00000000 */ nop +/* 09B1C4 7F066694 E60800AC */ swc1 $f8, 0xac($s0) +/* 09B1C8 7F066698 0FC15FA8 */ jal cosf +/* 09B1CC 7F06669C C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 09B1D0 7F0666A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B1D4 7F0666A4 44813000 */ mtc1 $at, $f6 +/* 09B1D8 7F0666A8 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09B1DC 7F0666AC 44812000 */ mtc1 $at, $f4 +/* 09B1E0 7F0666B0 46003281 */ sub.s $f10, $f6, $f0 +/* 09B1E4 7F0666B4 46045202 */ mul.s $f8, $f10, $f4 +/* 09B1E8 7F0666B8 E60800B0 */ swc1 $f8, 0xb0($s0) +/* 09B1EC 7F0666BC 0FC15FAB */ jal sinf +/* 09B1F0 7F0666C0 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 09B1F4 7F0666C4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B1F8 7F0666C8 44813000 */ mtc1 $at, $f6 +/* 09B1FC 7F0666CC 8E020024 */ lw $v0, 0x24($s0) +/* 09B200 7F0666D0 46060282 */ mul.s $f10, $f0, $f6 +/* 09B204 7F0666D4 E60A00B4 */ swc1 $f10, 0xb4($s0) +.L7F0666D8: +/* 09B208 7F0666D8 24010011 */ li $at, 17 +.L7F0666DC: +/* 09B20C 7F0666DC 1041000B */ beq $v0, $at, .L7F06670C +/* 09B210 7F0666E0 24010012 */ li $at, 18 +/* 09B214 7F0666E4 10410009 */ beq $v0, $at, .L7F06670C +/* 09B218 7F0666E8 24040013 */ li $a0, 19 +/* 09B21C 7F0666EC 10820007 */ beq $a0, $v0, .L7F06670C +/* 09B220 7F0666F0 24010014 */ li $at, 20 +/* 09B224 7F0666F4 10410005 */ beq $v0, $at, .L7F06670C +/* 09B228 7F0666F8 24010015 */ li $at, 21 +/* 09B22C 7F0666FC 10410003 */ beq $v0, $at, .L7F06670C +/* 09B230 7F066700 24010016 */ li $at, 22 +/* 09B234 7F066704 54410056 */ bnel $v0, $at, .L7F066860 +/* 09B238 7F066708 2401001E */ li $at, 30 +.L7F06670C: +/* 09B23C 7F06670C 8E030020 */ lw $v1, 0x20($s0) +/* 09B240 7F066710 2618007C */ addiu $t8, $s0, 0x7c +/* 09B244 7F066714 24010011 */ li $at, 17 +/* 09B248 7F066718 44832000 */ mtc1 $v1, $f4 +/* 09B24C 7F06671C 24040013 */ li $a0, 19 +/* 09B250 7F066720 AFB80030 */ sw $t8, 0x30($sp) +/* 09B254 7F066724 46802220 */ cvt.s.w $f8, $f4 +/* 09B258 7F066728 10410003 */ beq $v0, $at, .L7F066738 +/* 09B25C 7F06672C E7A80088 */ swc1 $f8, 0x88($sp) +/* 09B260 7F066730 24010014 */ li $at, 20 +/* 09B264 7F066734 1441001E */ bne $v0, $at, .L7F0667B0 +.L7F066738: +/* 09B268 7F066738 28610010 */ slti $at, $v1, 0x10 +/* 09B26C 7F06673C 1420001C */ bnez $at, .L7F0667B0 +/* 09B270 7F066740 3C0D8003 */ lui $t5, %hi(D_80035E94) +/* 09B274 7F066744 25AD5E94 */ addiu $t5, %lo(D_80035E94) # addiu $t5, $t5, 0x5e94 +/* 09B278 7F066748 8DA10000 */ lw $at, ($t5) +/* 09B27C 7F06674C 27AC007C */ addiu $t4, $sp, 0x7c +/* 09B280 7F066750 AD810000 */ sw $at, ($t4) +/* 09B284 7F066754 95A10004 */ lhu $at, 4($t5) +/* 09B288 7F066758 0C002914 */ jal get_random_value +/* 09B28C 7F06675C A5810004 */ sh $at, 4($t4) +/* 09B290 7F066760 24010003 */ li $at, 3 +/* 09B294 7F066764 0041001B */ divu $zero, $v0, $at +/* 09B298 7F066768 0000C810 */ mfhi $t9 +/* 09B29C 7F06676C 00195840 */ sll $t3, $t9, 1 +/* 09B2A0 7F066770 03AB2821 */ addu $a1, $sp, $t3 +/* 09B2A4 7F066774 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09B2A8 7F066778 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09B2AC 7F06677C 84A5007C */ lh $a1, 0x7c($a1) +/* 09B2B0 7F066780 0C002382 */ jal play_sfx_a1 +/* 09B2B4 7F066784 00003025 */ move $a2, $zero +/* 09B2B8 7F066788 8E180024 */ lw $t8, 0x24($s0) +/* 09B2BC 7F06678C 24010011 */ li $at, 17 +/* 09B2C0 7F066790 24020015 */ li $v0, 21 +/* 09B2C4 7F066794 17010005 */ bne $t8, $at, .L7F0667AC +/* 09B2C8 7F066798 24040013 */ li $a0, 19 +/* 09B2CC 7F06679C 24020012 */ li $v0, 18 +/* 09B2D0 7F0667A0 AE020024 */ sw $v0, 0x24($s0) +/* 09B2D4 7F0667A4 10000002 */ b .L7F0667B0 +/* 09B2D8 7F0667A8 24040013 */ li $a0, 19 +.L7F0667AC: +/* 09B2DC 7F0667AC AE020024 */ sw $v0, 0x24($s0) +.L7F0667B0: +/* 09B2E0 7F0667B0 10820012 */ beq $a0, $v0, .L7F0667FC +/* 09B2E4 7F0667B4 24010016 */ li $at, 22 +/* 09B2E8 7F0667B8 50410011 */ beql $v0, $at, .L7F066800 +/* 09B2EC 7F0667BC 24010011 */ li $at, 17 +/* 09B2F0 7F0667C0 8E0D0020 */ lw $t5, 0x20($s0) +/* 09B2F4 7F0667C4 240F0001 */ li $t7, 1 +/* 09B2F8 7F0667C8 29A10018 */ slti $at, $t5, 0x18 +/* 09B2FC 7F0667CC 1420000B */ bnez $at, .L7F0667FC +/* 09B300 7F0667D0 24010011 */ li $at, 17 +/* 09B304 7F0667D4 10410004 */ beq $v0, $at, .L7F0667E8 +/* 09B308 7F0667D8 A20F000C */ sb $t7, 0xc($s0) +/* 09B30C 7F0667DC 24010012 */ li $at, 18 +/* 09B310 7F0667E0 54410005 */ bnel $v0, $at, .L7F0667F8 +/* 09B314 7F0667E4 24020016 */ li $v0, 22 +.L7F0667E8: +/* 09B318 7F0667E8 AE040024 */ sw $a0, 0x24($s0) +/* 09B31C 7F0667EC 10000003 */ b .L7F0667FC +/* 09B320 7F0667F0 00801025 */ move $v0, $a0 +/* 09B324 7F0667F4 24020016 */ li $v0, 22 +.L7F0667F8: +/* 09B328 7F0667F8 AE020024 */ sw $v0, 0x24($s0) +.L7F0667FC: +/* 09B32C 7F0667FC 24010011 */ li $at, 17 +.L7F066800: +/* 09B330 7F066800 10410005 */ beq $v0, $at, .L7F066818 +/* 09B334 7F066804 8FA50088 */ lw $a1, 0x88($sp) +/* 09B338 7F066808 24010012 */ li $at, 18 +/* 09B33C 7F06680C 10410002 */ beq $v0, $at, .L7F066818 +/* 09B340 7F066810 00000000 */ nop +/* 09B344 7F066814 14820003 */ bne $a0, $v0, .L7F066824 +.L7F066818: +/* 09B348 7F066818 3C048003 */ lui $a0, %hi(D_80034CA4) +/* 09B34C 7F06681C 10000003 */ b .L7F06682C +/* 09B350 7F066820 24844CA4 */ addiu $a0, %lo(D_80034CA4) # addiu $a0, $a0, 0x4ca4 +.L7F066824: +/* 09B354 7F066824 3C048003 */ lui $a0, %hi(D_80034E0C) +/* 09B358 7F066828 24844E0C */ addiu $a0, %lo(D_80034E0C) # addiu $a0, $a0, 0x4e0c +.L7F06682C: +/* 09B35C 7F06682C 8FA60030 */ lw $a2, 0x30($sp) +/* 09B360 7F066830 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B364 7F066834 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B368 7F066838 10400004 */ beqz $v0, .L7F06684C +/* 09B36C 7F06683C 240B0001 */ li $t3, 1 +/* 09B370 7F066840 AE0B00BC */ sw $t3, 0xbc($s0) +/* 09B374 7F066844 10000005 */ b .L7F06685C +/* 09B378 7F066848 8E020024 */ lw $v0, 0x24($s0) +.L7F06684C: +/* 09B37C 7F06684C AE000024 */ sw $zero, 0x24($s0) +/* 09B380 7F066850 AE000020 */ sw $zero, 0x20($s0) +/* 09B384 7F066854 AE00001C */ sw $zero, 0x1c($s0) +/* 09B388 7F066858 00001025 */ move $v0, $zero +.L7F06685C: +/* 09B38C 7F06685C 2401001E */ li $at, 30 +.L7F066860: +/* 09B390 7F066860 10410007 */ beq $v0, $at, .L7F066880 +/* 09B394 7F066864 2405001F */ li $a1, 31 +/* 09B398 7F066868 10A20005 */ beq $a1, $v0, .L7F066880 +/* 09B39C 7F06686C 24010020 */ li $at, 32 +/* 09B3A0 7F066870 10410003 */ beq $v0, $at, .L7F066880 +/* 09B3A4 7F066874 24040021 */ li $a0, 33 +/* 09B3A8 7F066878 54820041 */ bnel $a0, $v0, .L7F066980 +/* 09B3AC 7F06687C 2401001A */ li $at, 26 +.L7F066880: +/* 09B3B0 7F066880 8E030020 */ lw $v1, 0x20($s0) +/* 09B3B4 7F066884 2401001E */ li $at, 30 +/* 09B3B8 7F066888 24040021 */ li $a0, 33 +/* 09B3BC 7F06688C 44833000 */ mtc1 $v1, $f6 +/* 09B3C0 7F066890 2405001F */ li $a1, 31 +/* 09B3C4 7F066894 2606007C */ addiu $a2, $s0, 0x7c +/* 09B3C8 7F066898 10410003 */ beq $v0, $at, .L7F0668A8 +/* 09B3CC 7F06689C 46803020 */ cvt.s.w $f0, $f6 +/* 09B3D0 7F0668A0 14A20014 */ bne $a1, $v0, .L7F0668F4 +/* 09B3D4 7F0668A4 24010020 */ li $at, 32 +.L7F0668A8: +/* 09B3D8 7F0668A8 3C188008 */ lui $t8, %hi(pPlayer) +/* 09B3DC 7F0668AC 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 09B3E0 7F0668B0 24010011 */ li $at, 17 +/* 09B3E4 7F0668B4 3C0C8003 */ lui $t4, %hi(D_80035778) +/* 09B3E8 7F0668B8 8F0E2A38 */ lw $t6, 0x2a38($t8) +/* 09B3EC 7F0668BC 3C0D8003 */ lui $t5, %hi(D_800354A8) +/* 09B3F0 7F0668C0 258C5778 */ addiu $t4, %lo(D_80035778) # addiu $t4, $t4, 0x5778 +/* 09B3F4 7F0668C4 15C10003 */ bne $t6, $at, .L7F0668D4 +/* 09B3F8 7F0668C8 25AD54A8 */ addiu $t5, %lo(D_800354A8) # addiu $t5, $t5, 0x54a8 +/* 09B3FC 7F0668CC 10000002 */ b .L7F0668D8 +/* 09B400 7F0668D0 AFAC0074 */ sw $t4, 0x74($sp) +.L7F0668D4: +/* 09B404 7F0668D4 AFAD0074 */ sw $t5, 0x74($sp) +.L7F0668D8: +/* 09B408 7F0668D8 10A2001B */ beq $a1, $v0, .L7F066948 +/* 09B40C 7F0668DC 2861001E */ slti $at, $v1, 0x1e +/* 09B410 7F0668E0 14200019 */ bnez $at, .L7F066948 +/* 09B414 7F0668E4 240F0001 */ li $t7, 1 +/* 09B418 7F0668E8 A20F000C */ sb $t7, 0xc($s0) +/* 09B41C 7F0668EC 10000016 */ b .L7F066948 +/* 09B420 7F0668F0 AE050024 */ sw $a1, 0x24($s0) +.L7F0668F4: +/* 09B424 7F0668F4 10410003 */ beq $v0, $at, .L7F066904 +/* 09B428 7F0668F8 3C198008 */ lui $t9, %hi(pPlayer) +/* 09B42C 7F0668FC 54820013 */ bnel $a0, $v0, .L7F06694C +/* 09B430 7F066900 44050000 */ mfc1 $a1, $f0 +.L7F066904: +/* 09B434 7F066904 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 09B438 7F066908 24010011 */ li $at, 17 +/* 09B43C 7F06690C 3C188003 */ lui $t8, %hi(D_80035904) +/* 09B440 7F066910 8F2B2A38 */ lw $t3, 0x2a38($t9) +/* 09B444 7F066914 3C0E8003 */ lui $t6, %hi(D_80035610) +/* 09B448 7F066918 27185904 */ addiu $t8, %lo(D_80035904) # addiu $t8, $t8, 0x5904 +/* 09B44C 7F06691C 15610003 */ bne $t3, $at, .L7F06692C +/* 09B450 7F066920 25CE5610 */ addiu $t6, %lo(D_80035610) # addiu $t6, $t6, 0x5610 +/* 09B454 7F066924 10000002 */ b .L7F066930 +/* 09B458 7F066928 AFB80074 */ sw $t8, 0x74($sp) +.L7F06692C: +/* 09B45C 7F06692C AFAE0074 */ sw $t6, 0x74($sp) +.L7F066930: +/* 09B460 7F066930 10820005 */ beq $a0, $v0, .L7F066948 +/* 09B464 7F066934 2861001E */ slti $at, $v1, 0x1e +/* 09B468 7F066938 14200003 */ bnez $at, .L7F066948 +/* 09B46C 7F06693C 240C0001 */ li $t4, 1 +/* 09B470 7F066940 A20C000C */ sb $t4, 0xc($s0) +/* 09B474 7F066944 AE040024 */ sw $a0, 0x24($s0) +.L7F066948: +/* 09B478 7F066948 44050000 */ mfc1 $a1, $f0 +.L7F06694C: +/* 09B47C 7F06694C 8FA40074 */ lw $a0, 0x74($sp) +/* 09B480 7F066950 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B484 7F066954 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B488 7F066958 10400004 */ beqz $v0, .L7F06696C +/* 09B48C 7F06695C 240D0001 */ li $t5, 1 +/* 09B490 7F066960 AE0D00BC */ sw $t5, 0xbc($s0) +/* 09B494 7F066964 10000005 */ b .L7F06697C +/* 09B498 7F066968 8E020024 */ lw $v0, 0x24($s0) +.L7F06696C: +/* 09B49C 7F06696C AE000024 */ sw $zero, 0x24($s0) +/* 09B4A0 7F066970 AE000020 */ sw $zero, 0x20($s0) +/* 09B4A4 7F066974 AE00001C */ sw $zero, 0x1c($s0) +/* 09B4A8 7F066978 00001025 */ move $v0, $zero +.L7F06697C: +/* 09B4AC 7F06697C 2401001A */ li $at, 26 +.L7F066980: +/* 09B4B0 7F066980 54410023 */ bnel $v0, $at, .L7F066A10 +/* 09B4B4 7F066984 2401001B */ li $at, 27 +/* 09B4B8 7F066988 8E0F002C */ lw $t7, 0x2c($s0) +/* 09B4BC 7F06698C 00001025 */ move $v0, $zero +/* 09B4C0 7F066990 59E0001C */ blezl $t7, .L7F066A04 +/* 09B4C4 7F066994 AE000024 */ sw $zero, 0x24($s0) +/* 09B4C8 7F066998 8E190020 */ lw $t9, 0x20($s0) +/* 09B4CC 7F06699C 3C048003 */ lui $a0, %hi(D_80035124) +/* 09B4D0 7F0669A0 24845124 */ addiu $a0, %lo(D_80035124) # addiu $a0, $a0, 0x5124 +/* 09B4D4 7F0669A4 44995000 */ mtc1 $t9, $f10 +/* 09B4D8 7F0669A8 2606007C */ addiu $a2, $s0, 0x7c +/* 09B4DC 7F0669AC 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B4E0 7F0669B0 46805020 */ cvt.s.w $f0, $f10 +/* 09B4E4 7F0669B4 44050000 */ mfc1 $a1, $f0 +/* 09B4E8 7F0669B8 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B4EC 7F0669BC 00000000 */ nop +/* 09B4F0 7F0669C0 10400004 */ beqz $v0, .L7F0669D4 +/* 09B4F4 7F0669C4 24180001 */ li $t8, 1 +/* 09B4F8 7F0669C8 240B0001 */ li $t3, 1 +/* 09B4FC 7F0669CC 1000000A */ b .L7F0669F8 +/* 09B500 7F0669D0 AE0B00BC */ sw $t3, 0xbc($s0) +.L7F0669D4: +/* 09B504 7F0669D4 8E0E002C */ lw $t6, 0x2c($s0) +/* 09B508 7F0669D8 240D001B */ li $t5, 27 +/* 09B50C 7F0669DC A200000E */ sb $zero, 0xe($s0) +/* 09B510 7F0669E0 25CCFFFF */ addiu $t4, $t6, -1 +/* 09B514 7F0669E4 A218000C */ sb $t8, 0xc($s0) +/* 09B518 7F0669E8 AE0C002C */ sw $t4, 0x2c($s0) +/* 09B51C 7F0669EC AE0D0024 */ sw $t5, 0x24($s0) +/* 09B520 7F0669F0 AE000020 */ sw $zero, 0x20($s0) +/* 09B524 7F0669F4 AE00001C */ sw $zero, 0x1c($s0) +.L7F0669F8: +/* 09B528 7F0669F8 10000004 */ b .L7F066A0C +/* 09B52C 7F0669FC 8E020024 */ lw $v0, 0x24($s0) +/* 09B530 7F066A00 AE000024 */ sw $zero, 0x24($s0) +.L7F066A04: +/* 09B534 7F066A04 AE000020 */ sw $zero, 0x20($s0) +/* 09B538 7F066A08 AE00001C */ sw $zero, 0x1c($s0) +.L7F066A0C: +/* 09B53C 7F066A0C 2401001B */ li $at, 27 +.L7F066A10: +/* 09B540 7F066A10 54410017 */ bnel $v0, $at, .L7F066A70 +/* 09B544 7F066A14 24010017 */ li $at, 23 +/* 09B548 7F066A18 8E0F0020 */ lw $t7, 0x20($s0) +/* 09B54C 7F066A1C 3C048003 */ lui $a0, %hi(D_800351FC) +/* 09B550 7F066A20 248451FC */ addiu $a0, %lo(D_800351FC) # addiu $a0, $a0, 0x51fc +/* 09B554 7F066A24 448F2000 */ mtc1 $t7, $f4 +/* 09B558 7F066A28 2606007C */ addiu $a2, $s0, 0x7c +/* 09B55C 7F066A2C 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B560 7F066A30 46802020 */ cvt.s.w $f0, $f4 +/* 09B564 7F066A34 44050000 */ mfc1 $a1, $f0 +/* 09B568 7F066A38 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B56C 7F066A3C 00000000 */ nop +/* 09B570 7F066A40 10400005 */ beqz $v0, .L7F066A58 +/* 09B574 7F066A44 240B0001 */ li $t3, 1 +/* 09B578 7F066A48 24190001 */ li $t9, 1 +/* 09B57C 7F066A4C AE1900BC */ sw $t9, 0xbc($s0) +/* 09B580 7F066A50 10000006 */ b .L7F066A6C +/* 09B584 7F066A54 8E020024 */ lw $v0, 0x24($s0) +.L7F066A58: +/* 09B588 7F066A58 A20B000E */ sb $t3, 0xe($s0) +/* 09B58C 7F066A5C AE000024 */ sw $zero, 0x24($s0) +/* 09B590 7F066A60 AE000020 */ sw $zero, 0x20($s0) +/* 09B594 7F066A64 AE00001C */ sw $zero, 0x1c($s0) +/* 09B598 7F066A68 00001025 */ move $v0, $zero +.L7F066A6C: +/* 09B59C 7F066A6C 24010017 */ li $at, 23 +.L7F066A70: +/* 09B5A0 7F066A70 5441002C */ bnel $v0, $at, .L7F066B24 +/* 09B5A4 7F066A74 24010018 */ li $at, 24 +/* 09B5A8 7F066A78 8E18002C */ lw $t8, 0x2c($s0) +/* 09B5AC 7F066A7C 00001025 */ move $v0, $zero +/* 09B5B0 7F066A80 5B000025 */ blezl $t8, .L7F066B18 +/* 09B5B4 7F066A84 AE000024 */ sw $zero, 0x24($s0) +/* 09B5B8 7F066A88 8E0E0018 */ lw $t6, 0x18($s0) +/* 09B5BC 7F066A8C 240C0018 */ li $t4, 24 +/* 09B5C0 7F066A90 51C00004 */ beql $t6, $zero, .L7F066AA4 +/* 09B5C4 7F066A94 8E0D0020 */ lw $t5, 0x20($s0) +/* 09B5C8 7F066A98 1000001C */ b .L7F066B0C +/* 09B5CC 7F066A9C AE0C0024 */ sw $t4, 0x24($s0) +/* 09B5D0 7F066AA0 8E0D0020 */ lw $t5, 0x20($s0) +.L7F066AA4: +/* 09B5D4 7F066AA4 3C048003 */ lui $a0, %hi(D_80034F74) +/* 09B5D8 7F066AA8 2606007C */ addiu $a2, $s0, 0x7c +/* 09B5DC 7F066AAC 448D4000 */ mtc1 $t5, $f8 +/* 09B5E0 7F066AB0 AFA60030 */ sw $a2, 0x30($sp) +/* 09B5E4 7F066AB4 24844F74 */ addiu $a0, %lo(D_80034F74) # addiu $a0, $a0, 0x4f74 +/* 09B5E8 7F066AB8 46804020 */ cvt.s.w $f0, $f8 +/* 09B5EC 7F066ABC 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B5F0 7F066AC0 44050000 */ mfc1 $a1, $f0 +/* 09B5F4 7F066AC4 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B5F8 7F066AC8 00000000 */ nop +/* 09B5FC 7F066ACC 10400004 */ beqz $v0, .L7F066AE0 +/* 09B600 7F066AD0 3C048003 */ lui $a0, %hi(D_8003504C) +/* 09B604 7F066AD4 240F0001 */ li $t7, 1 +/* 09B608 7F066AD8 1000000C */ b .L7F066B0C +/* 09B60C 7F066ADC AE0F00BC */ sw $t7, 0xbc($s0) +.L7F066AE0: +/* 09B610 7F066AE0 2484504C */ addiu $a0, %lo(D_8003504C) # addiu $a0, $a0, 0x504c +/* 09B614 7F066AE4 24050000 */ li $a1, 0 +/* 09B618 7F066AE8 8FA60030 */ lw $a2, 0x30($sp) +/* 09B61C 7F066AEC 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B620 7F066AF0 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B624 7F066AF4 10400004 */ beqz $v0, .L7F066B08 +/* 09B628 7F066AF8 240B0018 */ li $t3, 24 +/* 09B62C 7F066AFC 24190001 */ li $t9, 1 +/* 09B630 7F066B00 10000002 */ b .L7F066B0C +/* 09B634 7F066B04 AE1900BC */ sw $t9, 0xbc($s0) +.L7F066B08: +/* 09B638 7F066B08 AE0B0024 */ sw $t3, 0x24($s0) +.L7F066B0C: +/* 09B63C 7F066B0C 10000004 */ b .L7F066B20 +/* 09B640 7F066B10 8E020024 */ lw $v0, 0x24($s0) +/* 09B644 7F066B14 AE000024 */ sw $zero, 0x24($s0) +.L7F066B18: +/* 09B648 7F066B18 AE000020 */ sw $zero, 0x20($s0) +/* 09B64C 7F066B1C AE00001C */ sw $zero, 0x1c($s0) +.L7F066B20: +/* 09B650 7F066B20 24010018 */ li $at, 24 +.L7F066B24: +/* 09B654 7F066B24 54410023 */ bnel $v0, $at, .L7F066BB4 +/* 09B658 7F066B28 24010019 */ li $at, 25 +/* 09B65C 7F066B2C 8E18002C */ lw $t8, 0x2c($s0) +/* 09B660 7F066B30 00001025 */ move $v0, $zero +/* 09B664 7F066B34 5B00001C */ blezl $t8, .L7F066BA8 +/* 09B668 7F066B38 AE000024 */ sw $zero, 0x24($s0) +/* 09B66C 7F066B3C 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B670 7F066B40 3C048003 */ lui $a0, %hi(D_80034F74) +/* 09B674 7F066B44 24844F74 */ addiu $a0, %lo(D_80034F74) # addiu $a0, $a0, 0x4f74 +/* 09B678 7F066B48 448E3000 */ mtc1 $t6, $f6 +/* 09B67C 7F066B4C 2606007C */ addiu $a2, $s0, 0x7c +/* 09B680 7F066B50 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B684 7F066B54 46803020 */ cvt.s.w $f0, $f6 +/* 09B688 7F066B58 44050000 */ mfc1 $a1, $f0 +/* 09B68C 7F066B5C 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B690 7F066B60 00000000 */ nop +/* 09B694 7F066B64 10400004 */ beqz $v0, .L7F066B78 +/* 09B698 7F066B68 240D0001 */ li $t5, 1 +/* 09B69C 7F066B6C 240C0001 */ li $t4, 1 +/* 09B6A0 7F066B70 1000000A */ b .L7F066B9C +/* 09B6A4 7F066B74 AE0C00BC */ sw $t4, 0xbc($s0) +.L7F066B78: +/* 09B6A8 7F066B78 8E0F002C */ lw $t7, 0x2c($s0) +/* 09B6AC 7F066B7C 240B0019 */ li $t3, 25 +/* 09B6B0 7F066B80 A200000E */ sb $zero, 0xe($s0) +/* 09B6B4 7F066B84 25F9FFFF */ addiu $t9, $t7, -1 +/* 09B6B8 7F066B88 A20D000C */ sb $t5, 0xc($s0) +/* 09B6BC 7F066B8C AE19002C */ sw $t9, 0x2c($s0) +/* 09B6C0 7F066B90 AE0B0024 */ sw $t3, 0x24($s0) +/* 09B6C4 7F066B94 AE000020 */ sw $zero, 0x20($s0) +/* 09B6C8 7F066B98 AE00001C */ sw $zero, 0x1c($s0) +.L7F066B9C: +/* 09B6CC 7F066B9C 10000004 */ b .L7F066BB0 +/* 09B6D0 7F066BA0 8E020024 */ lw $v0, 0x24($s0) +/* 09B6D4 7F066BA4 AE000024 */ sw $zero, 0x24($s0) +.L7F066BA8: +/* 09B6D8 7F066BA8 AE000020 */ sw $zero, 0x20($s0) +/* 09B6DC 7F066BAC AE00001C */ sw $zero, 0x1c($s0) +.L7F066BB0: +/* 09B6E0 7F066BB0 24010019 */ li $at, 25 +.L7F066BB4: +/* 09B6E4 7F066BB4 54410017 */ bnel $v0, $at, .L7F066C14 +/* 09B6E8 7F066BB8 2401001C */ li $at, 28 +/* 09B6EC 7F066BBC 8E180020 */ lw $t8, 0x20($s0) +/* 09B6F0 7F066BC0 3C048003 */ lui $a0, %hi(D_8003504C) +/* 09B6F4 7F066BC4 2484504C */ addiu $a0, %lo(D_8003504C) # addiu $a0, $a0, 0x504c +/* 09B6F8 7F066BC8 44985000 */ mtc1 $t8, $f10 +/* 09B6FC 7F066BCC 2606007C */ addiu $a2, $s0, 0x7c +/* 09B700 7F066BD0 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B704 7F066BD4 46805020 */ cvt.s.w $f0, $f10 +/* 09B708 7F066BD8 44050000 */ mfc1 $a1, $f0 +/* 09B70C 7F066BDC 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B710 7F066BE0 00000000 */ nop +/* 09B714 7F066BE4 10400005 */ beqz $v0, .L7F066BFC +/* 09B718 7F066BE8 240C0001 */ li $t4, 1 +/* 09B71C 7F066BEC 240E0001 */ li $t6, 1 +/* 09B720 7F066BF0 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09B724 7F066BF4 10000006 */ b .L7F066C10 +/* 09B728 7F066BF8 8E020024 */ lw $v0, 0x24($s0) +.L7F066BFC: +/* 09B72C 7F066BFC A20C000E */ sb $t4, 0xe($s0) +/* 09B730 7F066C00 AE000024 */ sw $zero, 0x24($s0) +/* 09B734 7F066C04 AE000020 */ sw $zero, 0x20($s0) +/* 09B738 7F066C08 AE00001C */ sw $zero, 0x1c($s0) +/* 09B73C 7F066C0C 00001025 */ move $v0, $zero +.L7F066C10: +/* 09B740 7F066C10 2401001C */ li $at, 28 +.L7F066C14: +/* 09B744 7F066C14 54410028 */ bnel $v0, $at, .L7F066CB8 +/* 09B748 7F066C18 2401001D */ li $at, 29 +/* 09B74C 7F066C1C 8E0D002C */ lw $t5, 0x2c($s0) +/* 09B750 7F066C20 02202025 */ move $a0, $s1 +/* 09B754 7F066C24 5DA00006 */ bgtzl $t5, .L7F066C40 +/* 09B758 7F066C28 8E0F0020 */ lw $t7, 0x20($s0) +/* 09B75C 7F066C2C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09B760 7F066C30 24050010 */ li $a1, 16 +/* 09B764 7F066C34 5040001C */ beql $v0, $zero, .L7F066CA8 +/* 09B768 7F066C38 AE000024 */ sw $zero, 0x24($s0) +/* 09B76C 7F066C3C 8E0F0020 */ lw $t7, 0x20($s0) +.L7F066C40: +/* 09B770 7F066C40 3C048003 */ lui $a0, %hi(D_800352D4) +/* 09B774 7F066C44 248452D4 */ addiu $a0, %lo(D_800352D4) # addiu $a0, $a0, 0x52d4 +/* 09B778 7F066C48 448F2000 */ mtc1 $t7, $f4 +/* 09B77C 7F066C4C 2606007C */ addiu $a2, $s0, 0x7c +/* 09B780 7F066C50 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B784 7F066C54 46802020 */ cvt.s.w $f0, $f4 +/* 09B788 7F066C58 44050000 */ mfc1 $a1, $f0 +/* 09B78C 7F066C5C 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B790 7F066C60 00000000 */ nop +/* 09B794 7F066C64 10400004 */ beqz $v0, .L7F066C78 +/* 09B798 7F066C68 240B0001 */ li $t3, 1 +/* 09B79C 7F066C6C 24190001 */ li $t9, 1 +/* 09B7A0 7F066C70 1000000A */ b .L7F066C9C +/* 09B7A4 7F066C74 AE1900BC */ sw $t9, 0xbc($s0) +.L7F066C78: +/* 09B7A8 7F066C78 8E18002C */ lw $t8, 0x2c($s0) +/* 09B7AC 7F066C7C 240C001D */ li $t4, 29 +/* 09B7B0 7F066C80 A200000E */ sb $zero, 0xe($s0) +/* 09B7B4 7F066C84 270EFFFF */ addiu $t6, $t8, -1 +/* 09B7B8 7F066C88 A20B000C */ sb $t3, 0xc($s0) +/* 09B7BC 7F066C8C AE0E002C */ sw $t6, 0x2c($s0) +/* 09B7C0 7F066C90 AE0C0024 */ sw $t4, 0x24($s0) +/* 09B7C4 7F066C94 AE000020 */ sw $zero, 0x20($s0) +/* 09B7C8 7F066C98 AE00001C */ sw $zero, 0x1c($s0) +.L7F066C9C: +/* 09B7CC 7F066C9C 10000005 */ b .L7F066CB4 +/* 09B7D0 7F066CA0 8E020024 */ lw $v0, 0x24($s0) +/* 09B7D4 7F066CA4 AE000024 */ sw $zero, 0x24($s0) +.L7F066CA8: +/* 09B7D8 7F066CA8 AE000020 */ sw $zero, 0x20($s0) +/* 09B7DC 7F066CAC AE00001C */ sw $zero, 0x1c($s0) +/* 09B7E0 7F066CB0 00001025 */ move $v0, $zero +.L7F066CB4: +/* 09B7E4 7F066CB4 2401001D */ li $at, 29 +.L7F066CB8: +/* 09B7E8 7F066CB8 54410017 */ bnel $v0, $at, .L7F066D18 +/* 09B7EC 7F066CBC 24010024 */ li $at, 36 +/* 09B7F0 7F066CC0 8E0D0020 */ lw $t5, 0x20($s0) +/* 09B7F4 7F066CC4 3C048003 */ lui $a0, %hi(D_800353AC) +/* 09B7F8 7F066CC8 248453AC */ addiu $a0, %lo(D_800353AC) # addiu $a0, $a0, 0x53ac +/* 09B7FC 7F066CCC 448D4000 */ mtc1 $t5, $f8 +/* 09B800 7F066CD0 2606007C */ addiu $a2, $s0, 0x7c +/* 09B804 7F066CD4 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B808 7F066CD8 46804020 */ cvt.s.w $f0, $f8 +/* 09B80C 7F066CDC 44050000 */ mfc1 $a1, $f0 +/* 09B810 7F066CE0 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B814 7F066CE4 00000000 */ nop +/* 09B818 7F066CE8 10400005 */ beqz $v0, .L7F066D00 +/* 09B81C 7F066CEC 24190001 */ li $t9, 1 +/* 09B820 7F066CF0 240F0001 */ li $t7, 1 +/* 09B824 7F066CF4 AE0F00BC */ sw $t7, 0xbc($s0) +/* 09B828 7F066CF8 10000006 */ b .L7F066D14 +/* 09B82C 7F066CFC 8E020024 */ lw $v0, 0x24($s0) +.L7F066D00: +/* 09B830 7F066D00 A219000E */ sb $t9, 0xe($s0) +/* 09B834 7F066D04 AE000024 */ sw $zero, 0x24($s0) +/* 09B838 7F066D08 AE000020 */ sw $zero, 0x20($s0) +/* 09B83C 7F066D0C AE00001C */ sw $zero, 0x1c($s0) +/* 09B840 7F066D10 00001025 */ move $v0, $zero +.L7F066D14: +/* 09B844 7F066D14 24010024 */ li $at, 36 +.L7F066D18: +/* 09B848 7F066D18 1441004D */ bne $v0, $at, .L7F066E50 +/* 09B84C 7F066D1C 2401002E */ li $at, 46 +/* 09B850 7F066D20 56210009 */ bnel $s1, $at, .L7F066D48 +/* 09B854 7F066D24 2401002C */ li $at, 44 +/* 09B858 7F066D28 8E0B001C */ lw $t3, 0x1c($s0) +/* 09B85C 7F066D2C 15600003 */ bnez $t3, .L7F066D3C +/* 09B860 7F066D30 00000000 */ nop +/* 09B864 7F066D34 0FC19B99 */ jal sub_GAME_7F066E64 +/* 09B868 7F066D38 00000000 */ nop +.L7F066D3C: +/* 09B86C 7F066D3C 1000003F */ b .L7F066E3C +/* 09B870 7F066D40 8E050018 */ lw $a1, 0x18($s0) +/* 09B874 7F066D44 2401002C */ li $at, 44 +.L7F066D48: +/* 09B878 7F066D48 56210009 */ bnel $s1, $at, .L7F066D70 +/* 09B87C 7F066D4C 24010027 */ li $at, 39 +/* 09B880 7F066D50 8E18001C */ lw $t8, 0x1c($s0) +/* 09B884 7F066D54 17000003 */ bnez $t8, .L7F066D64 +/* 09B888 7F066D58 00000000 */ nop +/* 09B88C 7F066D5C 0FC19BC2 */ jal sub_GAME_7F066F08 +/* 09B890 7F066D60 00000000 */ nop +.L7F066D64: +/* 09B894 7F066D64 10000035 */ b .L7F066E3C +/* 09B898 7F066D68 8E050018 */ lw $a1, 0x18($s0) +/* 09B89C 7F066D6C 24010027 */ li $at, 39 +.L7F066D70: +/* 09B8A0 7F066D70 12210009 */ beq $s1, $at, .L7F066D98 +/* 09B8A4 7F066D74 24010037 */ li $at, 55 +/* 09B8A8 7F066D78 12210007 */ beq $s1, $at, .L7F066D98 +/* 09B8AC 7F066D7C 24010026 */ li $at, 38 +/* 09B8B0 7F066D80 12210005 */ beq $s1, $at, .L7F066D98 +/* 09B8B4 7F066D84 24010032 */ li $at, 50 +/* 09B8B8 7F066D88 12210003 */ beq $s1, $at, .L7F066D98 +/* 09B8BC 7F066D8C 24010049 */ li $at, 73 +/* 09B8C0 7F066D90 5621000F */ bnel $s1, $at, .L7F066DD0 +/* 09B8C4 7F066D94 24010033 */ li $at, 51 +.L7F066D98: +/* 09B8C8 7F066D98 8E0E001C */ lw $t6, 0x1c($s0) +/* 09B8CC 7F066D9C 15C00009 */ bnez $t6, .L7F066DC4 +/* 09B8D0 7F066DA0 00000000 */ nop +/* 09B8D4 7F066DA4 0FC0F0FF */ jal sub_GAME_7F03C3FC +/* 09B8D8 7F066DA8 00000000 */ nop +/* 09B8DC 7F066DAC 10400005 */ beqz $v0, .L7F066DC4 +/* 09B8E0 7F066DB0 00000000 */ nop +/* 09B8E4 7F066DB4 8C430004 */ lw $v1, 4($v0) +/* 09B8E8 7F066DB8 906C0002 */ lbu $t4, 2($v1) +/* 09B8EC 7F066DBC 358D0040 */ ori $t5, $t4, 0x40 +/* 09B8F0 7F066DC0 A06D0002 */ sb $t5, 2($v1) +.L7F066DC4: +/* 09B8F4 7F066DC4 1000001D */ b .L7F066E3C +/* 09B8F8 7F066DC8 8E050018 */ lw $a1, 0x18($s0) +/* 09B8FC 7F066DCC 24010033 */ li $at, 51 +.L7F066DD0: +/* 09B900 7F066DD0 1221001A */ beq $s1, $at, .L7F066E3C +/* 09B904 7F066DD4 8E050018 */ lw $a1, 0x18($s0) +/* 09B908 7F066DD8 24010034 */ li $at, 52 +/* 09B90C 7F066DDC 12210017 */ beq $s1, $at, .L7F066E3C +/* 09B910 7F066DE0 2401003A */ li $at, 58 +/* 09B914 7F066DE4 12210015 */ beq $s1, $at, .L7F066E3C +/* 09B918 7F066DE8 2401003B */ li $at, 59 +/* 09B91C 7F066DEC 12210013 */ beq $s1, $at, .L7F066E3C +/* 09B920 7F066DF0 24010051 */ li $at, 81 +/* 09B924 7F066DF4 12210011 */ beq $s1, $at, .L7F066E3C +/* 09B928 7F066DF8 24010052 */ li $at, 82 +/* 09B92C 7F066DFC 1221000F */ beq $s1, $at, .L7F066E3C +/* 09B930 7F066E00 24010053 */ li $at, 83 +/* 09B934 7F066E04 1221000D */ beq $s1, $at, .L7F066E3C +/* 09B938 7F066E08 2401002D */ li $at, 45 +/* 09B93C 7F066E0C 1221000B */ beq $s1, $at, .L7F066E3C +/* 09B940 7F066E10 24010029 */ li $at, 41 +/* 09B944 7F066E14 12210009 */ beq $s1, $at, .L7F066E3C +/* 09B948 7F066E18 2401002A */ li $at, 42 +/* 09B94C 7F066E1C 12210007 */ beq $s1, $at, .L7F066E3C +/* 09B950 7F066E20 24010035 */ li $at, 53 +/* 09B954 7F066E24 12210005 */ beq $s1, $at, .L7F066E3C +/* 09B958 7F066E28 24010036 */ li $at, 54 +/* 09B95C 7F066E2C 12210003 */ beq $s1, $at, .L7F066E3C +/* 09B960 7F066E30 24010025 */ li $at, 37 +/* 09B964 7F066E34 12210001 */ beq $s1, $at, .L7F066E3C +/* 09B968 7F066E38 00000000 */ nop +.L7F066E3C: +/* 09B96C 7F066E3C 50A00005 */ beql $a1, $zero, .L7F066E54 +/* 09B970 7F066E40 8FBF0024 */ lw $ra, 0x24($sp) +/* 09B974 7F066E44 AE000024 */ sw $zero, 0x24($s0) +/* 09B978 7F066E48 AE000020 */ sw $zero, 0x20($s0) +/* 09B97C 7F066E4C AE00001C */ sw $zero, 0x1c($s0) +.L7F066E50: +/* 09B980 7F066E50 8FBF0024 */ lw $ra, 0x24($sp) +.L7F066E54: +/* 09B984 7F066E54 8FB0001C */ lw $s0, 0x1c($sp) +/* 09B988 7F066E58 8FB10020 */ lw $s1, 0x20($sp) +/* 09B98C 7F066E5C 03E00008 */ jr $ra +/* 09B990 7F066E60 27BD01D0 */ addiu $sp, $sp, 0x1d0 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( + .late_rodata +/*D:80053F24*/ +glabel jpt_80053F24 +.word Weapon_function_slapper +.word Weapon_function_hunting_knife +.word Weapon_function_throwing_knife +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_magnum +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_magnum +.word Weapon_function_guns +.word Weapon_function_grenades +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_guns +.word Weapon_function_tazer +.word Weapon_function_guns +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_camera +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_collectible +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_guns +.word Weapon_function_throwable_item +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_key +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible + +/*D:80054084*/ +glabel jpt_80054084 +.word Weapon_shooting_noammo +.word Weapon_shooting_throwable +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_pistol +.word Weapon_shooting_tazer +.word Weapon_shooting_pistol +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_watch_magnet +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_watch_magnet + +glabel D_80054170 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054174 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80054178 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005417C +.word 0x40490fdb /*3.1415927*/ +glabel D_80054180 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80054184 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054188 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_8005418C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054190 +.word 0x3f32b8c3 /*0.69813174*/ + +/*D:80054194*/ +glabel jpt_80054194 +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_playsfx_knife +.word weapon_playsfx_knife +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_F2 +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_playsfx_mine +.word weapon_playsfx_mine +.word weapon_playsfx_mine +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE + +glabel D_8005428C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054290 +.word 0x3f32b8c3 /*0.69813174*/ + +/*D:80054294*/ +glabel jpt_80054294 +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx + +glabel D_8005438C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054390 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054394 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054398 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_8005439C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543A0 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543A4 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543A8 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543AC +.word 0x3f32b8c3 /*0.69813174*/ +.text +glabel handle_weapon_id_values_possibly_1st_person_animation +/* 099BFC 7F06508C 000410C0 */ sll $v0, $a0, 3 +/* 099C00 7F065090 00441023 */ subu $v0, $v0, $a0 +/* 099C04 7F065094 00021080 */ sll $v0, $v0, 2 +/* 099C08 7F065098 27BDFE20 */ addiu $sp, $sp, -0x1e0 +/* 099C0C 7F06509C 00441021 */ addu $v0, $v0, $a0 +/* 099C10 7F0650A0 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 099C14 7F0650A4 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 099C18 7F0650A8 00021080 */ sll $v0, $v0, 2 +/* 099C1C 7F0650AC 00441021 */ addu $v0, $v0, $a0 +/* 099C20 7F0650B0 AFB0001C */ sw $s0, 0x1c($sp) +/* 099C24 7F0650B4 000210C0 */ sll $v0, $v0, 3 +/* 099C28 7F0650B8 AFBF0024 */ sw $ra, 0x24($sp) +/* 099C2C 7F0650BC 01C28021 */ addu $s0, $t6, $v0 +/* 099C30 7F0650C0 AFB10020 */ sw $s1, 0x20($sp) +/* 099C34 7F0650C4 AFA501E4 */ sw $a1, 0x1e4($sp) +/* 099C38 7F0650C8 26100870 */ addiu $s0, $s0, 0x870 +/* 099C3C 7F0650CC AFA2003C */ sw $v0, 0x3c($sp) +/* 099C40 7F0650D0 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 099C44 7F0650D4 AFA401E0 */ sw $a0, 0x1e0($sp) +/* 099C48 7F0650D8 00408825 */ move $s1, $v0 +/* 099C4C 7F0650DC 0FC1A686 */ jal get_ammo_type_for_weapon +/* 099C50 7F0650E0 00402025 */ move $a0, $v0 +/* 099C54 7F0650E4 8FA301E4 */ lw $v1, 0x1e4($sp) +/* 099C58 7F0650E8 8E0F0010 */ lw $t7, 0x10($s0) +/* 099C5C 7F0650EC 00403025 */ move $a2, $v0 +/* 099C60 7F0650F0 AE030010 */ sw $v1, 0x10($s0) +/* 099C64 7F0650F4 14600003 */ bnez $v1, .Ljp7F065104 +/* 099C68 7F0650F8 AE0F0014 */ sw $t7, 0x14($s0) +/* 099C6C 7F0650FC 24180001 */ li $t8, 1 +/* 099C70 7F065100 AE180018 */ sw $t8, 0x18($s0) +.Ljp7F065104: +/* 099C74 7F065104 A200000C */ sb $zero, 0xc($s0) +/* 099C78 7F065108 A200000D */ sb $zero, 0xd($s0) +/* 099C7C 7F06510C 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 +/* 099C80 7F065110 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) +/* 099C84 7F065114 58400008 */ blezl $v0, .Ljp7F065138 +/* 099C88 7F065118 8E190024 */ lw $t9, 0x24($s0) +/* 099C8C 7F06511C 8E190020 */ lw $t9, 0x20($s0) +/* 099C90 7F065120 8E0F001C */ lw $t7, 0x1c($s0) +/* 099C94 7F065124 03227021 */ addu $t6, $t9, $v0 +/* 099C98 7F065128 25F80001 */ addiu $t8, $t7, 1 +/* 099C9C 7F06512C AE0E0020 */ sw $t6, 0x20($s0) +/* 099CA0 7F065130 AE18001C */ sw $t8, 0x1c($s0) +/* 099CA4 7F065134 8E190024 */ lw $t9, 0x24($s0) +.Ljp7F065138: +/* 099CA8 7F065138 AE0000BC */ sw $zero, 0xbc($s0) +/* 099CAC 7F06513C 1720007D */ bnez $t9, .Ljp7F065334 +/* 099CB0 7F065140 24010016 */ li $at, 22 +/* 099CB4 7F065144 56210006 */ bnel $s1, $at, .Ljp7F065160 +/* 099CB8 7F065148 8E0F0010 */ lw $t7, 0x10($s0) +/* 099CBC 7F06514C 8E0E0018 */ lw $t6, 0x18($s0) +/* 099CC0 7F065150 51C00003 */ beql $t6, $zero, .Ljp7F065160 +/* 099CC4 7F065154 8E0F0010 */ lw $t7, 0x10($s0) +/* 099CC8 7F065158 AE000030 */ sw $zero, 0x30($s0) +/* 099CCC 7F06515C 8E0F0010 */ lw $t7, 0x10($s0) +.Ljp7F065160: +/* 099CD0 7F065160 51E00017 */ beql $t7, $zero, .Ljp7F0651C0 +/* 099CD4 7F065164 8E020028 */ lw $v0, 0x28($s0) +/* 099CD8 7F065168 12200014 */ beqz $s1, .Ljp7F0651BC +/* 099CDC 7F06516C 02202025 */ move $a0, $s1 +/* 099CE0 7F065170 24050010 */ li $a1, 16 +/* 099CE4 7F065174 0FC17975 */ jal bondwalkItemCheckBitflags +/* 099CE8 7F065178 AFA601D4 */ sw $a2, 0x1d4($sp) +/* 099CEC 7F06517C 14400003 */ bnez $v0, .Ljp7F06518C +/* 099CF0 7F065180 8FA601D4 */ lw $a2, 0x1d4($sp) +/* 099CF4 7F065184 8E18002C */ lw $t8, 0x2c($s0) +/* 099CF8 7F065188 1B00000C */ blez $t8, .Ljp7F0651BC +.Ljp7F06518C: +/* 099CFC 7F06518C 24010016 */ li $at, 22 +/* 099D00 7F065190 16210005 */ bne $s1, $at, .Ljp7F0651A8 +/* 099D04 7F065194 240E0001 */ li $t6, 1 +/* 099D08 7F065198 8E190030 */ lw $t9, 0x30($s0) +/* 099D0C 7F06519C 2B2100C8 */ slti $at, $t9, 0xc8 +/* 099D10 7F0651A0 50200007 */ beql $at, $zero, .Ljp7F0651C0 +/* 099D14 7F0651A4 8E020028 */ lw $v0, 0x28($s0) +.Ljp7F0651A8: +/* 099D18 7F0651A8 AE0E0024 */ sw $t6, 0x24($s0) +/* 099D1C 7F0651AC AE000020 */ sw $zero, 0x20($s0) +/* 099D20 7F0651B0 AE00001C */ sw $zero, 0x1c($s0) +/* 099D24 7F0651B4 10000007 */ b .Ljp7F0651D4 +/* 099D28 7F0651B8 AE000018 */ sw $zero, 0x18($s0) +.Ljp7F0651BC: +/* 099D2C 7F0651BC 8E020028 */ lw $v0, 0x28($s0) +.Ljp7F0651C0: +/* 099D30 7F0651C0 50400005 */ beql $v0, $zero, .Ljp7F0651D8 +/* 099D34 7F0651C4 8E0F0024 */ lw $t7, 0x24($s0) +/* 099D38 7F0651C8 AE020024 */ sw $v0, 0x24($s0) +/* 099D3C 7F0651CC AE000020 */ sw $zero, 0x20($s0) +/* 099D40 7F0651D0 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F0651D4: +/* 099D44 7F0651D4 8E0F0024 */ lw $t7, 0x24($s0) +.Ljp7F0651D8: +/* 099D48 7F0651D8 AE000028 */ sw $zero, 0x28($s0) +/* 099D4C 7F0651DC 55E00056 */ bnezl $t7, .Ljp7F065338 +/* 099D50 7F0651E0 8E020024 */ lw $v0, 0x24($s0) +/* 099D54 7F0651E4 8E18002C */ lw $t8, 0x2c($s0) +/* 099D58 7F0651E8 57000053 */ bnezl $t8, .Ljp7F065338 +/* 099D5C 7F0651EC 8E020024 */ lw $v0, 0x24($s0) +/* 099D60 7F0651F0 50C00051 */ beql $a2, $zero, .Ljp7F065338 +/* 099D64 7F0651F4 8E020024 */ lw $v0, 0x24($s0) +/* 099D68 7F0651F8 0FC3021B */ jal get_controls_locked_flag +/* 099D6C 7F0651FC AFA601D4 */ sw $a2, 0x1d4($sp) +/* 099D70 7F065200 1440004C */ bnez $v0, .Ljp7F065334 +/* 099D74 7F065204 8FA601D4 */ lw $a2, 0x1d4($sp) +/* 099D78 7F065208 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 099D7C 7F06520C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 099D80 7F065210 3C0E8003 */ lui $t6, %hi(D_80032458) # $t6, 0x8003 +/* 099D84 7F065214 8C5929C4 */ lw $t9, 0x29c4($v0) +/* 099D88 7F065218 57200047 */ bnezl $t9, .Ljp7F065338 +/* 099D8C 7F06521C 8E020024 */ lw $v0, 0x24($s0) +/* 099D90 7F065220 8DCE2498 */ lw $t6, %lo(D_80032458)($t6) +/* 099D94 7F065224 24010001 */ li $at, 1 +/* 099D98 7F065228 11C00009 */ beqz $t6, .Ljp7F065250 +/* 099D9C 7F06522C 00000000 */ nop +/* 099DA0 7F065230 14C10007 */ bne $a2, $at, .Ljp7F065250 +/* 099DA4 7F065234 00067880 */ sll $t7, $a2, 2 +/* 099DA8 7F065238 004F1821 */ addu $v1, $v0, $t7 +/* 099DAC 7F06523C 8C781130 */ lw $t8, 0x1130($v1) +/* 099DB0 7F065240 24190001 */ li $t9, 1 +/* 099DB4 7F065244 1F000002 */ bgtz $t8, .Ljp7F065250 +/* 099DB8 7F065248 00000000 */ nop +/* 099DBC 7F06524C AC791130 */ sw $t9, 0x1130($v1) +.Ljp7F065250: +/* 099DC0 7F065250 0FC1A658 */ jal get_ammo_in_hands_weapon +/* 099DC4 7F065254 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 099DC8 7F065258 18400006 */ blez $v0, .Ljp7F065274 +/* 099DCC 7F06525C 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 099DD0 7F065260 240E0009 */ li $t6, 9 +/* 099DD4 7F065264 AE0E0024 */ sw $t6, 0x24($s0) +/* 099DD8 7F065268 AE000020 */ sw $zero, 0x20($s0) +/* 099DDC 7F06526C 10000031 */ b .Ljp7F065334 +/* 099DE0 7F065270 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F065274: +/* 099DE4 7F065274 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 099DE8 7F065278 8FB901E0 */ lw $t9, 0x1e0($sp) +/* 099DEC 7F06527C 240E0001 */ li $t6, 1 +/* 099DF0 7F065280 8DF80FC8 */ lw $t8, 0xfc8($t7) +/* 099DF4 7F065284 01D92023 */ subu $a0, $t6, $t9 +/* 099DF8 7F065288 5300002B */ beql $t8, $zero, .Ljp7F065338 +/* 099DFC 7F06528C 8E020024 */ lw $v0, 0x24($s0) +/* 099E00 7F065290 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 099E04 7F065294 AFA40040 */ sw $a0, 0x40($sp) +/* 099E08 7F065298 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 099E0C 7F06529C 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 099E10 7F0652A0 8FB8003C */ lw $t8, 0x3c($sp) +/* 099E14 7F0652A4 00402025 */ move $a0, $v0 +/* 099E18 7F0652A8 01F81823 */ subu $v1, $t7, $t8 +/* 099E1C 7F0652AC 8C6E0C3C */ lw $t6, 0xc3c($v1) +/* 099E20 7F0652B0 24630C18 */ addiu $v1, $v1, 0xc18 +/* 099E24 7F0652B4 55C00020 */ bnezl $t6, .Ljp7F065338 +/* 099E28 7F0652B8 8E020024 */ lw $v0, 0x24($s0) +/* 099E2C 7F0652BC 8C790028 */ lw $t9, 0x28($v1) +/* 099E30 7F0652C0 5720001D */ bnezl $t9, .Ljp7F065338 +/* 099E34 7F0652C4 8E020024 */ lw $v0, 0x24($s0) +/* 099E38 7F0652C8 1040000D */ beqz $v0, .Ljp7F065300 +/* 099E3C 7F0652CC 00000000 */ nop +/* 099E40 7F0652D0 8C6F002C */ lw $t7, 0x2c($v1) +/* 099E44 7F0652D4 55E00018 */ bnezl $t7, .Ljp7F065338 +/* 099E48 7F0652D8 8E020024 */ lw $v0, 0x24($s0) +/* 099E4C 7F0652DC 0FC1A686 */ jal get_ammo_type_for_weapon +/* 099E50 7F0652E0 AFA301CC */ sw $v1, 0x1cc($sp) +/* 099E54 7F0652E4 10400013 */ beqz $v0, .Ljp7F065334 +/* 099E58 7F0652E8 8FA301CC */ lw $v1, 0x1cc($sp) +/* 099E5C 7F0652EC 8FA40040 */ lw $a0, 0x40($sp) +/* 099E60 7F0652F0 0FC1A658 */ jal get_ammo_in_hands_weapon +/* 099E64 7F0652F4 AFA301CC */ sw $v1, 0x1cc($sp) +/* 099E68 7F0652F8 1C40000E */ bgtz $v0, .Ljp7F065334 +/* 099E6C 7F0652FC 8FA301CC */ lw $v1, 0x1cc($sp) +.Ljp7F065300: +/* 099E70 7F065300 0FC17748 */ jal autoadvance_on_deplete_all_ammo +/* 099E74 7F065304 AFA301CC */ sw $v1, 0x1cc($sp) +/* 099E78 7F065308 8FA301CC */ lw $v1, 0x1cc($sp) +/* 099E7C 7F06530C 8E180028 */ lw $t8, 0x28($s0) +/* 099E80 7F065310 AE00001C */ sw $zero, 0x1c($s0) +/* 099E84 7F065314 AE000020 */ sw $zero, 0x20($s0) +/* 099E88 7F065318 AE000028 */ sw $zero, 0x28($s0) +/* 099E8C 7F06531C AE180024 */ sw $t8, 0x24($s0) +/* 099E90 7F065320 8C6E0028 */ lw $t6, 0x28($v1) +/* 099E94 7F065324 AC60001C */ sw $zero, 0x1c($v1) +/* 099E98 7F065328 AC600020 */ sw $zero, 0x20($v1) +/* 099E9C 7F06532C AC600028 */ sw $zero, 0x28($v1) +/* 099EA0 7F065330 AC6E0024 */ sw $t6, 0x24($v1) +.Ljp7F065334: +/* 099EA4 7F065334 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F065338: +/* 099EA8 7F065338 24010001 */ li $at, 1 +/* 099EAC 7F06533C 1441007E */ bne $v0, $at, .Ljp7F065538 +/* 099EB0 7F065340 2639FFFF */ addiu $t9, $s1, -1 +/* 099EB4 7F065344 2F210058 */ sltiu $at, $t9, 0x58 +/* 099EB8 7F065348 10200076 */ beqz $at, Weapon_function_collectible +/* 099EBC 7F06534C 0019C880 */ sll $t9, $t9, 2 +/* 099EC0 7F065350 3C018005 */ lui $at, %hi(jpt_80053F24) +/* 099EC4 7F065354 00390821 */ addu $at, $at, $t9 +/* 099EC8 7F065358 8C393F54 */ lw $t9, %lo(jpt_80053F24)($at) +/* 099ECC 7F06535C 03200008 */ jr $t9 +/* 099ED0 7F065360 00000000 */ nop +Weapon_function_magnum: +/* 099ED4 7F065364 8E0F0020 */ lw $t7, 0x20($s0) +/* 099ED8 7F065368 24180002 */ li $t8, 2 +/* 099EDC 7F06536C 29E10006 */ slti $at, $t7, 6 +/* 099EE0 7F065370 54200070 */ bnezl $at, .Ljp7F065534 +/* 099EE4 7F065374 AE000398 */ sw $zero, 0x398($s0) +/* 099EE8 7F065378 AE180024 */ sw $t8, 0x24($s0) +/* 099EEC 7F06537C AE000020 */ sw $zero, 0x20($s0) +/* 099EF0 7F065380 1000006B */ b .Ljp7F065530 +/* 099EF4 7F065384 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_camera: +/* 099EF8 7F065388 8E0E001C */ lw $t6, 0x1c($s0) +/* 099EFC 7F06538C 00002025 */ move $a0, $zero +/* 099F00 7F065390 00002825 */ move $a1, $zero +/* 099F04 7F065394 15C00005 */ bnez $t6, .Ljp7F0653AC +/* 099F08 7F065398 00003025 */ move $a2, $zero +/* 099F0C 7F06539C 0FC20370 */ jal set_rgba_tint +/* 099F10 7F0653A0 3C073F80 */ lui $a3, 0x3f80 +/* 099F14 7F0653A4 10000063 */ b .Ljp7F065534 +/* 099F18 7F0653A8 AE000398 */ sw $zero, 0x398($s0) +.Ljp7F0653AC: +/* 099F1C 7F0653AC 8E190020 */ lw $t9, 0x20($s0) +/* 099F20 7F0653B0 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 099F24 7F0653B4 00002825 */ move $a1, $zero +/* 099F28 7F0653B8 1B20005D */ blez $t9, .Ljp7F065530 +/* 099F2C 7F0653BC 00003025 */ move $a2, $zero +/* 099F30 7F0653C0 44802000 */ mtc1 $zero, $f4 +/* 099F34 7F0653C4 44816000 */ mtc1 $at, $f12 +/* 099F38 7F0653C8 00003825 */ move $a3, $zero +/* 099F3C 7F0653CC 0FC2037C */ jal sub_GAME_7F0807E0 +/* 099F40 7F0653D0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 099F44 7F0653D4 240F0002 */ li $t7, 2 +/* 099F48 7F0653D8 AE0F0024 */ sw $t7, 0x24($s0) +/* 099F4C 7F0653DC AE000020 */ sw $zero, 0x20($s0) +/* 099F50 7F0653E0 10000053 */ b .Ljp7F065530 +/* 099F54 7F0653E4 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_guns: +/* 099F58 7F0653E8 24180002 */ li $t8, 2 +/* 099F5C 7F0653EC AE180024 */ sw $t8, 0x24($s0) +/* 099F60 7F0653F0 AE000020 */ sw $zero, 0x20($s0) +/* 099F64 7F0653F4 1000004E */ b .Ljp7F065530 +/* 099F68 7F0653F8 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_throwable_item: +/* 099F6C 7F0653FC 240E001C */ li $t6, 28 +/* 099F70 7F065400 AE0E0024 */ sw $t6, 0x24($s0) +/* 099F74 7F065404 AE000020 */ sw $zero, 0x20($s0) +/* 099F78 7F065408 10000049 */ b .Ljp7F065530 +/* 099F7C 7F06540C AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_hunting_knife: +/* 099F80 7F065410 0C002918 */ jal get_random_value +/* 099F84 7F065414 00000000 */ nop +/* 099F88 7F065418 30590001 */ andi $t9, $v0, 1 +/* 099F8C 7F06541C 17200004 */ bnez $t9, .Ljp7F065430 +/* 099F90 7F065420 24180014 */ li $t8, 20 +/* 099F94 7F065424 240F0011 */ li $t7, 17 +/* 099F98 7F065428 10000002 */ b .Ljp7F065434 +/* 099F9C 7F06542C AE0F0024 */ sw $t7, 0x24($s0) +.Ljp7F065430: +/* 099FA0 7F065430 AE180024 */ sw $t8, 0x24($s0) +.Ljp7F065434: +/* 099FA4 7F065434 AE000020 */ sw $zero, 0x20($s0) +/* 099FA8 7F065438 1000003D */ b .Ljp7F065530 +/* 099FAC 7F06543C AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_grenades: +/* 099FB0 7F065440 8E0E0018 */ lw $t6, 0x18($s0) +/* 099FB4 7F065444 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 099FB8 7F065448 55C00006 */ bnezl $t6, .Ljp7F065464 +/* 099FBC 7F06544C 8E0F0020 */ lw $t7, 0x20($s0) +/* 099FC0 7F065450 8E190020 */ lw $t9, 0x20($s0) +/* 099FC4 7F065454 2B2100F0 */ slti $at, $t9, 0xf0 +/* 099FC8 7F065458 54200036 */ bnezl $at, .Ljp7F065534 +/* 099FCC 7F06545C AE000398 */ sw $zero, 0x398($s0) +/* 099FD0 7F065460 8E0F0020 */ lw $t7, 0x20($s0) +.Ljp7F065464: +/* 099FD4 7F065464 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 099FD8 7F065468 240E001A */ li $t6, 26 +/* 099FDC 7F06546C AF0F105C */ sw $t7, 0x105c($t8) +/* 099FE0 7F065470 AE0E0024 */ sw $t6, 0x24($s0) +/* 099FE4 7F065474 AE00001C */ sw $zero, 0x1c($s0) +/* 099FE8 7F065478 1000002D */ b .Ljp7F065530 +/* 099FEC 7F06547C AE000020 */ sw $zero, 0x20($s0) +Weapon_function_slapper: +/* 099FF0 7F065480 0C002918 */ jal get_random_value +/* 099FF4 7F065484 00000000 */ nop +/* 099FF8 7F065488 30590001 */ andi $t9, $v0, 1 +/* 099FFC 7F06548C 17200004 */ bnez $t9, .Ljp7F0654A0 +/* 09A000 7F065490 24180020 */ li $t8, 32 +/* 09A004 7F065494 240F001E */ li $t7, 30 +/* 09A008 7F065498 10000002 */ b .Ljp7F0654A4 +/* 09A00C 7F06549C AE0F0024 */ sw $t7, 0x24($s0) +.Ljp7F0654A0: +/* 09A010 7F0654A0 AE180024 */ sw $t8, 0x24($s0) +.Ljp7F0654A4: +/* 09A014 7F0654A4 AE000020 */ sw $zero, 0x20($s0) +/* 09A018 7F0654A8 10000021 */ b .Ljp7F065530 +/* 09A01C 7F0654AC AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_throwing_knife: +/* 09A020 7F0654B0 240E0017 */ li $t6, 23 +/* 09A024 7F0654B4 AE0E0024 */ sw $t6, 0x24($s0) +/* 09A028 7F0654B8 AE000020 */ sw $zero, 0x20($s0) +/* 09A02C 7F0654BC 1000001C */ b .Ljp7F065530 +/* 09A030 7F0654C0 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_tazer: +/* 09A034 7F0654C4 8E190020 */ lw $t9, 0x20($s0) +/* 09A038 7F0654C8 3C048003 */ lui $a0, %hi(D_80035A90) # $a0, 0x8003 +/* 09A03C 7F0654CC 24845AD0 */ addiu $a0, %lo(D_80035A90) # addiu $a0, $a0, 0x5ad0 +/* 09A040 7F0654D0 44993000 */ mtc1 $t9, $f6 +/* 09A044 7F0654D4 2606007C */ addiu $a2, $s0, 0x7c +/* 09A048 7F0654D8 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09A04C 7F0654DC 46803020 */ cvt.s.w $f0, $f6 +/* 09A050 7F0654E0 44050000 */ mfc1 $a1, $f0 +/* 09A054 7F0654E4 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09A058 7F0654E8 00000000 */ nop +/* 09A05C 7F0654EC 10400004 */ beqz $v0, .Ljp7F065500 +/* 09A060 7F0654F0 24180002 */ li $t8, 2 +/* 09A064 7F0654F4 240F0001 */ li $t7, 1 +/* 09A068 7F0654F8 1000000D */ b .Ljp7F065530 +/* 09A06C 7F0654FC AE0F00BC */ sw $t7, 0xbc($s0) +.Ljp7F065500: +/* 09A070 7F065500 AE180024 */ sw $t8, 0x24($s0) +/* 09A074 7F065504 AE000020 */ sw $zero, 0x20($s0) +/* 09A078 7F065508 10000009 */ b .Ljp7F065530 +/* 09A07C 7F06550C AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_key: +/* 09A080 7F065510 240E0024 */ li $t6, 36 +/* 09A084 7F065514 AE0E0024 */ sw $t6, 0x24($s0) +/* 09A088 7F065518 AE000020 */ sw $zero, 0x20($s0) +/* 09A08C 7F06551C 10000004 */ b .Ljp7F065530 +/* 09A090 7F065520 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_collectible: +/* 09A094 7F065524 AE000024 */ sw $zero, 0x24($s0) +/* 09A098 7F065528 AE000020 */ sw $zero, 0x20($s0) +/* 09A09C 7F06552C AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F065530: +/* 09A0A0 7F065530 AE000398 */ sw $zero, 0x398($s0) +.Ljp7F065534: +/* 09A0A4 7F065534 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F065538: +/* 09A0A8 7F065538 24010002 */ li $at, 2 +/* 09A0AC 7F06553C 5441016C */ bnel $v0, $at, .Ljp7F065AF0 +/* 09A0B0 7F065540 8E0E0024 */ lw $t6, 0x24($s0) +/* 09A0B4 7F065544 0FC1A686 */ jal get_ammo_type_for_weapon +/* 09A0B8 7F065548 02202025 */ move $a0, $s1 +/* 09A0BC 7F06554C 10400003 */ beqz $v0, .Ljp7F06555C +/* 09A0C0 7F065550 262FFFFE */ addiu $t7, $s1, -2 +/* 09A0C4 7F065554 8E19002C */ lw $t9, 0x2c($s0) +/* 09A0C8 7F065558 1B200148 */ blez $t9, .Ljp7F065A7C +.Ljp7F06555C: +/* 09A0CC 7F06555C 2DE1003B */ sltiu $at, $t7, 0x3b +/* 09A0D0 7F065560 102000AF */ beqz $at, Weapon_shooting_throwable +/* 09A0D4 7F065564 000F7880 */ sll $t7, $t7, 2 +/* 09A0D8 7F065568 3C018005 */ lui $at, %hi(jpt_80054084) +/* 09A0DC 7F06556C 002F0821 */ addu $at, $at, $t7 +/* 09A0E0 7F065570 8C2F40B4 */ lw $t7, %lo(jpt_80054084)($at) +/* 09A0E4 7F065574 01E00008 */ jr $t7 +/* 09A0E8 7F065578 00000000 */ nop +Weapon_shooting_watch_magnet: +/* 09A0EC 7F06557C 8E18001C */ lw $t8, 0x1c($s0) +/* 09A0F0 7F065580 240F0003 */ li $t7, 3 +/* 09A0F4 7F065584 5700000D */ bnezl $t8, .Ljp7F0655BC +/* 09A0F8 7F065588 AE0F0024 */ sw $t7, 0x24($s0) +/* 09A0FC 7F06558C 0FC3021B */ jal get_controls_locked_flag +/* 09A100 7F065590 00000000 */ nop +/* 09A104 7F065594 2C450001 */ sltiu $a1, $v0, 1 +/* 09A108 7F065598 10A00005 */ beqz $a1, .Ljp7F0655B0 +/* 09A10C 7F06559C 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 09A110 7F0655A0 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 09A114 7F0655A4 8DC529C4 */ lw $a1, 0x29c4($t6) +/* 09A118 7F0655A8 2CB90001 */ sltiu $t9, $a1, 1 +/* 09A11C 7F0655AC 03202825 */ move $a1, $t9 +.Ljp7F0655B0: +/* 09A120 7F0655B0 1000009B */ b Weapon_shooting_throwable +/* 09A124 7F0655B4 A205000C */ sb $a1, 0xc($s0) +/* 09A128 7F0655B8 AE0F0024 */ sw $t7, 0x24($s0) +.Ljp7F0655BC: +/* 09A12C 7F0655BC AE000020 */ sw $zero, 0x20($s0) +/* 09A130 7F0655C0 10000097 */ b Weapon_shooting_throwable +/* 09A134 7F0655C4 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_pistol: +/* 09A138 7F0655C8 8E18001C */ lw $t8, 0x1c($s0) +/* 09A13C 7F0655CC 24190003 */ li $t9, 3 +/* 09A140 7F0655D0 5700001E */ bnezl $t8, .Ljp7F06564C +/* 09A144 7F0655D4 AE190024 */ sw $t9, 0x24($s0) +/* 09A148 7F0655D8 0FC26C01 */ jal get_num_players +/* 09A14C 7F0655DC 00000000 */ nop +/* 09A150 7F0655E0 24010001 */ li $at, 1 +/* 09A154 7F0655E4 50410009 */ beql $v0, $at, .Ljp7F06560C +/* 09A158 7F0655E8 240F0001 */ li $t7, 1 +/* 09A15C 7F0655EC 0FC31B59 */ jal checkGamePaused +/* 09A160 7F0655F0 00000000 */ nop +/* 09A164 7F0655F4 14400006 */ bnez $v0, .Ljp7F065610 +/* 09A168 7F0655F8 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 09A16C 7F0655FC 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 09A170 7F065600 8DD929C4 */ lw $t9, 0x29c4($t6) +/* 09A174 7F065604 17200002 */ bnez $t9, .Ljp7F065610 +/* 09A178 7F065608 240F0001 */ li $t7, 1 +.Ljp7F06560C: +/* 09A17C 7F06560C A20F000D */ sb $t7, 0xd($s0) +.Ljp7F065610: +/* 09A180 7F065610 0FC3021B */ jal get_controls_locked_flag +/* 09A184 7F065614 00000000 */ nop +/* 09A188 7F065618 2C450001 */ sltiu $a1, $v0, 1 +/* 09A18C 7F06561C 10A00005 */ beqz $a1, .Ljp7F065634 +/* 09A190 7F065620 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09A194 7F065624 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09A198 7F065628 8F0529C4 */ lw $a1, 0x29c4($t8) +/* 09A19C 7F06562C 2CAE0001 */ sltiu $t6, $a1, 1 +/* 09A1A0 7F065630 01C02825 */ move $a1, $t6 +.Ljp7F065634: +/* 09A1A4 7F065634 A205000C */ sb $a1, 0xc($s0) +/* 09A1A8 7F065638 0FC17B4A */ jal sub_GAME_7F05E808 +/* 09A1AC 7F06563C 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09A1B0 7F065640 10000078 */ b .Ljp7F065824 +/* 09A1B4 7F065644 820F000C */ lb $t7, 0xc($s0) +/* 09A1B8 7F065648 AE190024 */ sw $t9, 0x24($s0) +.Ljp7F06564C: +/* 09A1BC 7F06564C AE000020 */ sw $zero, 0x20($s0) +/* 09A1C0 7F065650 10000073 */ b Weapon_shooting_throwable +/* 09A1C4 7F065654 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_machinegun: +/* 09A1C8 7F065658 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A1CC 7F06565C 11E00013 */ beqz $t7, .Ljp7F0656AC +/* 09A1D0 7F065660 00000000 */ nop +/* 09A1D4 7F065664 8E180010 */ lw $t8, 0x10($s0) +/* 09A1D8 7F065668 02202025 */ move $a0, $s1 +/* 09A1DC 7F06566C 1700000F */ bnez $t8, .Ljp7F0656AC +/* 09A1E0 7F065670 00000000 */ nop +/* 09A1E4 7F065674 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09A1E8 7F065678 24050004 */ li $a1, 4 +/* 09A1EC 7F06567C 50400035 */ beql $v0, $zero, .Ljp7F065754 +/* 09A1F0 7F065680 24190003 */ li $t9, 3 +/* 09A1F4 7F065684 0FC1F301 */ jal get_BONDdata_is_aiming +/* 09A1F8 7F065688 00000000 */ nop +/* 09A1FC 7F06568C 54400031 */ bnezl $v0, .Ljp7F065754 +/* 09A200 7F065690 24190003 */ li $t9, 3 +/* 09A204 7F065694 8E0E0398 */ lw $t6, 0x398($s0) +/* 09A208 7F065698 24010003 */ li $at, 3 +/* 09A20C 7F06569C 01C1001A */ div $zero, $t6, $at +/* 09A210 7F0656A0 0000C810 */ mfhi $t9 +/* 09A214 7F0656A4 5320002B */ beql $t9, $zero, .Ljp7F065754 +/* 09A218 7F0656A8 24190003 */ li $t9, 3 +.Ljp7F0656AC: +/* 09A21C 7F0656AC 0FC1793B */ jal get_automatic_firing_rate +/* 09A220 7F0656B0 02202025 */ move $a0, $s1 +/* 09A224 7F0656B4 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A228 7F0656B8 01E2001A */ div $zero, $t7, $v0 +/* 09A22C 7F0656BC 0000C010 */ mfhi $t8 +/* 09A230 7F0656C0 14400002 */ bnez $v0, .Ljp7F0656CC +/* 09A234 7F0656C4 00000000 */ nop +/* 09A238 7F0656C8 0007000D */ break 7 +.Ljp7F0656CC: +/* 09A23C 7F0656CC 2401FFFF */ li $at, -1 +/* 09A240 7F0656D0 14410004 */ bne $v0, $at, .Ljp7F0656E4 +/* 09A244 7F0656D4 3C018000 */ lui $at, 0x8000 +/* 09A248 7F0656D8 15E10002 */ bne $t7, $at, .Ljp7F0656E4 +/* 09A24C 7F0656DC 00000000 */ nop +/* 09A250 7F0656E0 0006000D */ break 6 +.Ljp7F0656E4: +/* 09A254 7F0656E4 5700004F */ bnezl $t8, .Ljp7F065824 +/* 09A258 7F0656E8 820F000C */ lb $t7, 0xc($s0) +/* 09A25C 7F0656EC 0FC26C01 */ jal get_num_players +/* 09A260 7F0656F0 00000000 */ nop +/* 09A264 7F0656F4 24010001 */ li $at, 1 +/* 09A268 7F0656F8 50410009 */ beql $v0, $at, .Ljp7F065720 +/* 09A26C 7F0656FC 240F0001 */ li $t7, 1 +/* 09A270 7F065700 0FC31B59 */ jal checkGamePaused +/* 09A274 7F065704 00000000 */ nop +/* 09A278 7F065708 14400006 */ bnez $v0, .Ljp7F065724 +/* 09A27C 7F06570C 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 09A280 7F065710 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 09A284 7F065714 8DD929C4 */ lw $t9, 0x29c4($t6) +/* 09A288 7F065718 17200002 */ bnez $t9, .Ljp7F065724 +/* 09A28C 7F06571C 240F0001 */ li $t7, 1 +.Ljp7F065720: +/* 09A290 7F065720 A20F000D */ sb $t7, 0xd($s0) +.Ljp7F065724: +/* 09A294 7F065724 0FC3021B */ jal get_controls_locked_flag +/* 09A298 7F065728 00000000 */ nop +/* 09A29C 7F06572C 2C450001 */ sltiu $a1, $v0, 1 +/* 09A2A0 7F065730 10A00005 */ beqz $a1, .Ljp7F065748 +/* 09A2A4 7F065734 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09A2A8 7F065738 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09A2AC 7F06573C 8F0529C4 */ lw $a1, 0x29c4($t8) +/* 09A2B0 7F065740 2CAE0001 */ sltiu $t6, $a1, 1 +/* 09A2B4 7F065744 01C02825 */ move $a1, $t6 +.Ljp7F065748: +/* 09A2B8 7F065748 10000035 */ b Weapon_shooting_throwable +/* 09A2BC 7F06574C A205000C */ sb $a1, 0xc($s0) +/* 09A2C0 7F065750 24190003 */ li $t9, 3 +.Ljp7F065754: +/* 09A2C4 7F065754 AE190024 */ sw $t9, 0x24($s0) +/* 09A2C8 7F065758 AE000020 */ sw $zero, 0x20($s0) +/* 09A2CC 7F06575C 10000030 */ b Weapon_shooting_throwable +/* 09A2D0 7F065760 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_noammo: +/* 09A2D4 7F065764 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A2D8 7F065768 51E00006 */ beql $t7, $zero, .Ljp7F065784 +/* 09A2DC 7F06576C A200000C */ sb $zero, 0xc($s0) +/* 09A2E0 7F065770 8E180010 */ lw $t8, 0x10($s0) +/* 09A2E4 7F065774 24190003 */ li $t9, 3 +/* 09A2E8 7F065778 53000006 */ beql $t8, $zero, .Ljp7F065794 +/* 09A2EC 7F06577C AE190024 */ sw $t9, 0x24($s0) +/* 09A2F0 7F065780 A200000C */ sb $zero, 0xc($s0) +.Ljp7F065784: +/* 09A2F4 7F065784 820E000C */ lb $t6, 0xc($s0) +/* 09A2F8 7F065788 10000025 */ b Weapon_shooting_throwable +/* 09A2FC 7F06578C A20E000D */ sb $t6, 0xd($s0) +/* 09A300 7F065790 AE190024 */ sw $t9, 0x24($s0) +.Ljp7F065794: +/* 09A304 7F065794 AE000020 */ sw $zero, 0x20($s0) +/* 09A308 7F065798 10000021 */ b Weapon_shooting_throwable +/* 09A30C 7F06579C AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_tazer: +/* 09A310 7F0657A0 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A314 7F0657A4 3C048003 */ lui $a0, %hi(D_80035B68) # $a0, 0x8003 +/* 09A318 7F0657A8 24845BA8 */ addiu $a0, %lo(D_80035B68) # addiu $a0, $a0, 0x5ba8 +/* 09A31C 7F0657AC 11E00004 */ beqz $t7, .Ljp7F0657C0 +/* 09A320 7F0657B0 24050000 */ li $a1, 0 +/* 09A324 7F0657B4 8E180010 */ lw $t8, 0x10($s0) +/* 09A328 7F0657B8 24190003 */ li $t9, 3 +/* 09A32C 7F0657BC 13000015 */ beqz $t8, .Ljp7F065814 +.Ljp7F0657C0: +/* 09A330 7F0657C0 2606007C */ addiu $a2, $s0, 0x7c +/* 09A334 7F0657C4 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09A338 7F0657C8 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09A33C 7F0657CC 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A340 7F0657D0 A200000C */ sb $zero, 0xc($s0) +/* 09A344 7F0657D4 8219000C */ lb $t9, 0xc($s0) +/* 09A348 7F0657D8 240E0001 */ li $t6, 1 +/* 09A34C 7F0657DC AE0E00BC */ sw $t6, 0xbc($s0) +/* 09A350 7F0657E0 15E0000F */ bnez $t7, Weapon_shooting_throwable +/* 09A354 7F0657E4 A219000D */ sb $t9, 0xd($s0) +/* 09A358 7F0657E8 0FC3021B */ jal get_controls_locked_flag +/* 09A35C 7F0657EC 00000000 */ nop +/* 09A360 7F0657F0 2C450001 */ sltiu $a1, $v0, 1 +/* 09A364 7F0657F4 10A00005 */ beqz $a1, .Ljp7F06580C +/* 09A368 7F0657F8 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09A36C 7F0657FC 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09A370 7F065800 8F0529C4 */ lw $a1, 0x29c4($t8) +/* 09A374 7F065804 2CAE0001 */ sltiu $t6, $a1, 1 +/* 09A378 7F065808 01C02825 */ move $a1, $t6 +.Ljp7F06580C: +/* 09A37C 7F06580C 10000004 */ b Weapon_shooting_throwable +/* 09A380 7F065810 A205000C */ sb $a1, 0xc($s0) +.Ljp7F065814: +/* 09A384 7F065814 AE190024 */ sw $t9, 0x24($s0) +/* 09A388 7F065818 AE000020 */ sw $zero, 0x20($s0) +/* 09A38C 7F06581C AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_throwable: +/* 09A390 7F065820 820F000C */ lb $t7, 0xc($s0) +.Ljp7F065824: +/* 09A394 7F065824 24010028 */ li $at, 40 +/* 09A398 7F065828 51E0001E */ beql $t7, $zero, .Ljp7F0658A4 +/* 09A39C 7F06582C 8E0E0024 */ lw $t6, 0x24($s0) +/* 09A3A0 7F065830 52210016 */ beql $s1, $at, .Ljp7F06588C +/* 09A3A4 7F065834 8E0E002C */ lw $t6, 0x2c($s0) +/* 09A3A8 7F065838 0FC26F3C */ jal get_cur_playernum +/* 09A3AC 7F06583C 00000000 */ nop +/* 09A3B0 7F065840 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 09A3B4 7F065844 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 09A3B8 7F065848 0C00322E */ jal controller_7000C854 +/* 09A3BC 7F06584C 00402025 */ move $a0, $v0 +/* 09A3C0 7F065850 0FC29658 */ jal cur_player_get_control_type +/* 09A3C4 7F065854 00000000 */ nop +/* 09A3C8 7F065858 28410004 */ slti $at, $v0, 4 +/* 09A3CC 7F06585C 5420000B */ bnezl $at, .Ljp7F06588C +/* 09A3D0 7F065860 8E0E002C */ lw $t6, 0x2c($s0) +/* 09A3D4 7F065864 0FC26F3C */ jal get_cur_playernum +/* 09A3D8 7F065868 00000000 */ nop +/* 09A3DC 7F06586C 0FC26C01 */ jal get_num_players +/* 09A3E0 7F065870 AFA2004C */ sw $v0, 0x4c($sp) +/* 09A3E4 7F065874 8FB8004C */ lw $t8, 0x4c($sp) +/* 09A3E8 7F065878 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 09A3EC 7F06587C 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 09A3F0 7F065880 0C00322E */ jal controller_7000C854 +/* 09A3F4 7F065884 00582021 */ addu $a0, $v0, $t8 +/* 09A3F8 7F065888 8E0E002C */ lw $t6, 0x2c($s0) +.Ljp7F06588C: +/* 09A3FC 7F06588C 8E0F0398 */ lw $t7, 0x398($s0) +/* 09A400 7F065890 25D9FFFF */ addiu $t9, $t6, -1 +/* 09A404 7F065894 25F80001 */ addiu $t8, $t7, 1 +/* 09A408 7F065898 AE19002C */ sw $t9, 0x2c($s0) +/* 09A40C 7F06589C AE180398 */ sw $t8, 0x398($s0) +/* 09A410 7F0658A0 8E0E0024 */ lw $t6, 0x24($s0) +.Ljp7F0658A4: +/* 09A414 7F0658A4 24010002 */ li $at, 2 +/* 09A418 7F0658A8 02202025 */ move $a0, $s1 +/* 09A41C 7F0658AC 55C10090 */ bnel $t6, $at, .Ljp7F065AF0 +/* 09A420 7F0658B0 8E0E0024 */ lw $t6, 0x24($s0) +/* 09A424 7F0658B4 0FC17944 */ jal get_sound_trigger_rate +/* 09A428 7F0658B8 AFA001C4 */ sw $zero, 0x1c4($sp) +/* 09A42C 7F0658BC 18400017 */ blez $v0, .Ljp7F06591C +/* 09A430 7F0658C0 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 09A434 7F0658C4 8FAF003C */ lw $t7, 0x3c($sp) +/* 09A438 7F0658C8 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 09A43C 7F0658CC 3C028005 */ lui $v0, %hi(global_timer) # $v0, 0x8005 +/* 09A440 7F0658D0 000FC023 */ negu $t8, $t7 +/* 09A444 7F0658D4 03387021 */ addu $t6, $t9, $t8 +/* 09A448 7F0658D8 8DCF0DF8 */ lw $t7, 0xdf8($t6) +/* 09A44C 7F0658DC 8C4283AC */ lw $v0, %lo(global_timer)($v0) +/* 09A450 7F0658E0 104F0013 */ beq $v0, $t7, .Ljp7F065930 +/* 09A454 7F0658E4 00000000 */ nop +/* 09A458 7F0658E8 8E1901DC */ lw $t9, 0x1dc($s0) +/* 09A45C 7F0658EC 0322082A */ slt $at, $t9, $v0 +/* 09A460 7F0658F0 1020000F */ beqz $at, .Ljp7F065930 +/* 09A464 7F0658F4 00000000 */ nop +/* 09A468 7F0658F8 0FC17944 */ jal get_sound_trigger_rate +/* 09A46C 7F0658FC 02202025 */ move $a0, $s1 +/* 09A470 7F065900 3C188005 */ lui $t8, %hi(global_timer) # $t8, 0x8005 +/* 09A474 7F065904 8F1883AC */ lw $t8, %lo(global_timer)($t8) +/* 09A478 7F065908 240F0001 */ li $t7, 1 +/* 09A47C 7F06590C 00587021 */ addu $t6, $v0, $t8 +/* 09A480 7F065910 AE0E01DC */ sw $t6, 0x1dc($s0) +/* 09A484 7F065914 10000006 */ b .Ljp7F065930 +/* 09A488 7F065918 AFAF01C4 */ sw $t7, 0x1c4($sp) +.Ljp7F06591C: +/* 09A48C 7F06591C 8219000C */ lb $t9, 0xc($s0) +/* 09A490 7F065920 24180001 */ li $t8, 1 +/* 09A494 7F065924 13200002 */ beqz $t9, .Ljp7F065930 +/* 09A498 7F065928 00000000 */ nop +/* 09A49C 7F06592C AFB801C4 */ sw $t8, 0x1c4($sp) +.Ljp7F065930: +/* 09A4A0 7F065930 0FC26C01 */ jal get_num_players +/* 09A4A4 7F065934 00000000 */ nop +/* 09A4A8 7F065938 24010001 */ li $at, 1 +/* 09A4AC 7F06593C 5041000A */ beql $v0, $at, .Ljp7F065968 +/* 09A4B0 7F065940 8FB901C4 */ lw $t9, 0x1c4($sp) +/* 09A4B4 7F065944 0FC31B59 */ jal checkGamePaused +/* 09A4B8 7F065948 00000000 */ nop +/* 09A4BC 7F06594C 14400067 */ bnez $v0, .Ljp7F065AEC +/* 09A4C0 7F065950 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 09A4C4 7F065954 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 09A4C8 7F065958 8DCF29C4 */ lw $t7, 0x29c4($t6) +/* 09A4CC 7F06595C 55E00064 */ bnezl $t7, .Ljp7F065AF0 +/* 09A4D0 7F065960 8E0E0024 */ lw $t6, 0x24($s0) +/* 09A4D4 7F065964 8FB901C4 */ lw $t9, 0x1c4($sp) +.Ljp7F065968: +/* 09A4D8 7F065968 53200035 */ beql $t9, $zero, .Ljp7F065A40 +/* 09A4DC 7F06596C 24010017 */ li $at, 23 +/* 09A4E0 7F065970 8E0401D4 */ lw $a0, 0x1d4($s0) +/* 09A4E4 7F065974 50800008 */ beql $a0, $zero, .Ljp7F065998 +/* 09A4E8 7F065978 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 09A4EC 7F06597C 0C002380 */ jal sfxGetArg0Unk3F +/* 09A4F0 7F065980 00000000 */ nop +/* 09A4F4 7F065984 50400004 */ beql $v0, $zero, .Ljp7F065998 +/* 09A4F8 7F065988 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 09A4FC 7F06598C 0C00240C */ jal sfxDeactivate +/* 09A500 7F065990 8E0401D4 */ lw $a0, 0x1d4($s0) +/* 09A504 7F065994 8E0401D8 */ lw $a0, 0x1d8($s0) +.Ljp7F065998: +/* 09A508 7F065998 10800007 */ beqz $a0, .Ljp7F0659B8 +/* 09A50C 7F06599C 00000000 */ nop +/* 09A510 7F0659A0 0C002380 */ jal sfxGetArg0Unk3F +/* 09A514 7F0659A4 00000000 */ nop +/* 09A518 7F0659A8 10400003 */ beqz $v0, .Ljp7F0659B8 +/* 09A51C 7F0659AC 00000000 */ nop +/* 09A520 7F0659B0 0C00240C */ jal sfxDeactivate +/* 09A524 7F0659B4 8E0401D8 */ lw $a0, 0x1d8($s0) +.Ljp7F0659B8: +/* 09A528 7F0659B8 0FC1794D */ jal bondwalkItemGetSound +/* 09A52C 7F0659BC 02202025 */ move $a0, $s1 +/* 09A530 7F0659C0 5040001F */ beql $v0, $zero, .Ljp7F065A40 +/* 09A534 7F0659C4 24010017 */ li $at, 23 +/* 09A538 7F0659C8 8E1801D4 */ lw $t8, 0x1d4($s0) +/* 09A53C 7F0659CC 5700000D */ bnezl $t8, .Ljp7F065A04 +/* 09A540 7F0659D0 8E0F01D8 */ lw $t7, 0x1d8($s0) +/* 09A544 7F0659D4 0FC1794D */ jal bondwalkItemGetSound +/* 09A548 7F0659D8 02202025 */ move $a0, $s1 +/* 09A54C 7F0659DC 00022C00 */ sll $a1, $v0, 0x10 +/* 09A550 7F0659E0 00057403 */ sra $t6, $a1, 0x10 +/* 09A554 7F0659E4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09A558 7F0659E8 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A55C 7F0659EC 01C02825 */ move $a1, $t6 +/* 09A560 7F0659F0 0C002386 */ jal play_sfx_a1 +/* 09A564 7F0659F4 260601D4 */ addiu $a2, $s0, 0x1d4 +/* 09A568 7F0659F8 1000000D */ b .Ljp7F065A30 +/* 09A56C 7F0659FC 00000000 */ nop +/* 09A570 7F065A00 8E0F01D8 */ lw $t7, 0x1d8($s0) +.Ljp7F065A04: +/* 09A574 7F065A04 15E0000A */ bnez $t7, .Ljp7F065A30 +/* 09A578 7F065A08 00000000 */ nop +/* 09A57C 7F065A0C 0FC1794D */ jal bondwalkItemGetSound +/* 09A580 7F065A10 02202025 */ move $a0, $s1 +/* 09A584 7F065A14 00022C00 */ sll $a1, $v0, 0x10 +/* 09A588 7F065A18 0005CC03 */ sra $t9, $a1, 0x10 +/* 09A58C 7F065A1C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09A590 7F065A20 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A594 7F065A24 03202825 */ move $a1, $t9 +/* 09A598 7F065A28 0C002386 */ jal play_sfx_a1 +/* 09A59C 7F065A2C 260601D8 */ addiu $a2, $s0, 0x1d8 +.Ljp7F065A30: +/* 09A5A0 7F065A30 3C188005 */ lui $t8, %hi(global_timer) # $t8, 0x8005 +/* 09A5A4 7F065A34 8F1883AC */ lw $t8, %lo(global_timer)($t8) +/* 09A5A8 7F065A38 AE1801E0 */ sw $t8, 0x1e0($s0) +/* 09A5AC 7F065A3C 24010017 */ li $at, 23 +.Ljp7F065A40: +/* 09A5B0 7F065A40 1621002A */ bne $s1, $at, .Ljp7F065AEC +/* 09A5B4 7F065A44 3C0E8003 */ lui $t6, %hi(D_80035E90) # $t6, 0x8003 +/* 09A5B8 7F065A48 8DCE5ED0 */ lw $t6, %lo(D_80035E90)($t6) +/* 09A5BC 7F065A4C 0C002918 */ jal get_random_value +/* 09A5C0 7F065A50 AFAE01C0 */ sw $t6, 0x1c0($sp) +/* 09A5C4 7F065A54 304F0001 */ andi $t7, $v0, 1 +/* 09A5C8 7F065A58 000FC840 */ sll $t9, $t7, 1 +/* 09A5CC 7F065A5C 03B92821 */ addu $a1, $sp, $t9 +/* 09A5D0 7F065A60 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09A5D4 7F065A64 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A5D8 7F065A68 84A501C0 */ lh $a1, 0x1c0($a1) +/* 09A5DC 7F065A6C 0C002386 */ jal play_sfx_a1 +/* 09A5E0 7F065A70 00003025 */ move $a2, $zero +/* 09A5E4 7F065A74 1000001E */ b .Ljp7F065AF0 +/* 09A5E8 7F065A78 8E0E0024 */ lw $t6, 0x24($s0) +.Ljp7F065A7C: +/* 09A5EC 7F065A7C 8E18001C */ lw $t8, 0x1c($s0) +/* 09A5F0 7F065A80 240E0003 */ li $t6, 3 +/* 09A5F4 7F065A84 240F000D */ li $t7, 13 +/* 09A5F8 7F065A88 5B000006 */ blezl $t8, .Ljp7F065AA4 +/* 09A5FC 7F065A8C AE0F0024 */ sw $t7, 0x24($s0) +/* 09A600 7F065A90 AE0E0024 */ sw $t6, 0x24($s0) +/* 09A604 7F065A94 AE000020 */ sw $zero, 0x20($s0) +/* 09A608 7F065A98 10000014 */ b .Ljp7F065AEC +/* 09A60C 7F065A9C AE00001C */ sw $zero, 0x1c($s0) +/* 09A610 7F065AA0 AE0F0024 */ sw $t7, 0x24($s0) +.Ljp7F065AA4: +/* 09A614 7F065AA4 AE000020 */ sw $zero, 0x20($s0) +/* 09A618 7F065AA8 0FC26C01 */ jal get_num_players +/* 09A61C 7F065AAC AE00001C */ sw $zero, 0x1c($s0) +/* 09A620 7F065AB0 24010001 */ li $at, 1 +/* 09A624 7F065AB4 10410008 */ beq $v0, $at, .Ljp7F065AD8 +/* 09A628 7F065AB8 00000000 */ nop +/* 09A62C 7F065ABC 0FC31B59 */ jal checkGamePaused +/* 09A630 7F065AC0 00000000 */ nop +/* 09A634 7F065AC4 14400009 */ bnez $v0, .Ljp7F065AEC +/* 09A638 7F065AC8 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 09A63C 7F065ACC 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 09A640 7F065AD0 8F3829C4 */ lw $t8, 0x29c4($t9) +/* 09A644 7F065AD4 17000005 */ bnez $t8, .Ljp7F065AEC +.Ljp7F065AD8: +/* 09A648 7F065AD8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09A64C 7F065ADC 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09A650 7F065AE0 24050059 */ li $a1, 89 +/* 09A654 7F065AE4 0C002386 */ jal play_sfx_a1 +/* 09A658 7F065AE8 00003025 */ move $a2, $zero +.Ljp7F065AEC: +/* 09A65C 7F065AEC 8E0E0024 */ lw $t6, 0x24($s0) +.Ljp7F065AF0: +/* 09A660 7F065AF0 24010003 */ li $at, 3 +/* 09A664 7F065AF4 15C100D5 */ bne $t6, $at, .Ljp7F065E4C +/* 09A668 7F065AF8 2401001F */ li $at, 31 +/* 09A66C 7F065AFC 16210013 */ bne $s1, $at, .Ljp7F065B4C +/* 09A670 7F065B00 00000000 */ nop +/* 09A674 7F065B04 8E0F0020 */ lw $t7, 0x20($s0) +/* 09A678 7F065B08 3C048003 */ lui $a0, %hi(D_80035B68) # $a0, 0x8003 +/* 09A67C 7F065B0C 24845BA8 */ addiu $a0, %lo(D_80035B68) # addiu $a0, $a0, 0x5ba8 +/* 09A680 7F065B10 448F4000 */ mtc1 $t7, $f8 +/* 09A684 7F065B14 2606007C */ addiu $a2, $s0, 0x7c +/* 09A688 7F065B18 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09A68C 7F065B1C 46804020 */ cvt.s.w $f0, $f8 +/* 09A690 7F065B20 44050000 */ mfc1 $a1, $f0 +/* 09A694 7F065B24 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09A698 7F065B28 00000000 */ nop +/* 09A69C 7F065B2C 10400003 */ beqz $v0, .Ljp7F065B3C +/* 09A6A0 7F065B30 24190001 */ li $t9, 1 +/* 09A6A4 7F065B34 100000C5 */ b .Ljp7F065E4C +/* 09A6A8 7F065B38 AE1900BC */ sw $t9, 0xbc($s0) +.Ljp7F065B3C: +/* 09A6AC 7F065B3C AE000024 */ sw $zero, 0x24($s0) +/* 09A6B0 7F065B40 AE000020 */ sw $zero, 0x20($s0) +/* 09A6B4 7F065B44 100000C1 */ b .Ljp7F065E4C +/* 09A6B8 7F065B48 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F065B4C: +/* 09A6BC 7F065B4C 0FC17375 */ jal get_ptr_item_statistics +/* 09A6C0 7F065B50 02202025 */ move $a0, $s1 +/* 09A6C4 7F065B54 8E050018 */ lw $a1, 0x18($s0) +/* 09A6C8 7F065B58 804A0047 */ lb $t2, 0x47($v0) +/* 09A6CC 7F065B5C 80440023 */ lb $a0, 0x23($v0) +/* 09A6D0 7F065B60 00406825 */ move $t5, $v0 +/* 09A6D4 7F065B64 80460044 */ lb $a2, 0x44($v0) +/* 09A6D8 7F065B68 804B0045 */ lb $t3, 0x45($v0) +/* 09A6DC 7F065B6C 80480046 */ lb $t0, 0x46($v0) +/* 09A6E0 7F065B70 01404825 */ move $t1, $t2 +/* 09A6E4 7F065B74 10A00006 */ beqz $a1, .Ljp7F065B90 +/* 09A6E8 7F065B78 00806025 */ move $t4, $a0 +/* 09A6EC 7F065B7C 8E180020 */ lw $t8, 0x20($s0) +/* 09A6F0 7F065B80 00CB7021 */ addu $t6, $a2, $t3 +/* 09A6F4 7F065B84 030E082A */ slt $at, $t8, $t6 +/* 09A6F8 7F065B88 5020000A */ beql $at, $zero, .Ljp7F065BB4 +/* 09A6FC 7F065B8C AE000024 */ sw $zero, 0x24($s0) +.Ljp7F065B90: +/* 09A700 7F065B90 8E030020 */ lw $v1, 0x20($s0) +/* 09A704 7F065B94 0480000A */ bltz $a0, .Ljp7F065BC0 +/* 09A708 7F065B98 00CB3821 */ addu $a3, $a2, $t3 +/* 09A70C 7F065B9C 14A00008 */ bnez $a1, .Ljp7F065BC0 +/* 09A710 7F065BA0 00EC7821 */ addu $t7, $a3, $t4 +/* 09A714 7F065BA4 006F082A */ slt $at, $v1, $t7 +/* 09A718 7F065BA8 14200005 */ bnez $at, .Ljp7F065BC0 +/* 09A71C 7F065BAC 00000000 */ nop +/* 09A720 7F065BB0 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F065BB4: +/* 09A724 7F065BB4 AE000020 */ sw $zero, 0x20($s0) +/* 09A728 7F065BB8 100000A4 */ b .Ljp7F065E4C +/* 09A72C 7F065BBC AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F065BC0: +/* 09A730 7F065BC0 50A00014 */ beql $a1, $zero, .Ljp7F065C14 +/* 09A734 7F065BC4 0067082A */ slt $at, $v1, $a3 +/* 09A738 7F065BC8 8E190010 */ lw $t9, 0x10($s0) +/* 09A73C 7F065BCC 0068082A */ slt $at, $v1, $t0 +/* 09A740 7F065BD0 53200010 */ beql $t9, $zero, .Ljp7F065C14 +/* 09A744 7F065BD4 0067082A */ slt $at, $v1, $a3 +/* 09A748 7F065BD8 5420000E */ bnezl $at, .Ljp7F065C14 +/* 09A74C 7F065BDC 0067082A */ slt $at, $v1, $a3 +/* 09A750 7F065BE0 0540000B */ bltz $t2, .Ljp7F065C10 +/* 09A754 7F065BE4 00692021 */ addu $a0, $v1, $t1 +/* 09A758 7F065BE8 0087082A */ slt $at, $a0, $a3 +/* 09A75C 7F065BEC 10200008 */ beqz $at, .Ljp7F065C10 +/* 09A760 7F065BF0 0088082A */ slt $at, $a0, $t0 +/* 09A764 7F065BF4 14200006 */ bnez $at, .Ljp7F065C10 +/* 09A768 7F065BF8 24180004 */ li $t8, 4 +/* 09A76C 7F065BFC AE180024 */ sw $t8, 0x24($s0) +/* 09A770 7F065C00 AE000020 */ sw $zero, 0x20($s0) +/* 09A774 7F065C04 AE00001C */ sw $zero, 0x1c($s0) +/* 09A778 7F065C08 10000090 */ b .Ljp7F065E4C +/* 09A77C 7F065C0C AE090038 */ sw $t1, 0x38($s0) +.Ljp7F065C10: +/* 09A780 7F065C10 0067082A */ slt $at, $v1, $a3 +.Ljp7F065C14: +/* 09A784 7F065C14 1020008D */ beqz $at, .Ljp7F065E4C +/* 09A788 7F065C18 260E007C */ addiu $t6, $s0, 0x7c +/* 09A78C 7F065C1C C4420048 */ lwc1 $f2, 0x48($v0) +/* 09A790 7F065C20 C440004C */ lwc1 $f0, 0x4c($v0) +/* 09A794 7F065C24 1460000A */ bnez $v1, .Ljp7F065C50 +/* 09A798 7F065C28 AFAE0034 */ sw $t6, 0x34($sp) +/* 09A79C 7F065C2C C60A0078 */ lwc1 $f10, 0x78($s0) +/* 09A7A0 7F065C30 C604006C */ lwc1 $f4, 0x6c($s0) +/* 09A7A4 7F065C34 C6060070 */ lwc1 $f6, 0x70($s0) +/* 09A7A8 7F065C38 C6080074 */ lwc1 $f8, 0x74($s0) +/* 09A7AC 7F065C3C 8E030020 */ lw $v1, 0x20($s0) +/* 09A7B0 7F065C40 E60A0058 */ swc1 $f10, 0x58($s0) +/* 09A7B4 7F065C44 E604004C */ swc1 $f4, 0x4c($s0) +/* 09A7B8 7F065C48 E6060050 */ swc1 $f6, 0x50($s0) +/* 09A7BC 7F065C4C E6080054 */ swc1 $f8, 0x54($s0) +.Ljp7F065C50: +/* 09A7C0 7F065C50 0066082A */ slt $at, $v1, $a2 +/* 09A7C4 7F065C54 1020002B */ beqz $at, .Ljp7F065D04 +/* 09A7C8 7F065C58 3C018005 */ lui $at, %hi(D_80054170) # $at, 0x8005 +/* 09A7CC 7F065C5C C42C41A0 */ lwc1 $f12, %lo(D_80054170)($at) +/* 09A7D0 7F065C60 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 09A7D4 7F065C64 44812000 */ mtc1 $at, $f4 +/* 09A7D8 7F065C68 460C0282 */ mul.s $f10, $f0, $f12 +/* 09A7DC 7F065C6C 46045183 */ div.s $f6, $f10, $f4 +/* 09A7E0 7F065C70 46066201 */ sub.s $f8, $f12, $f6 +/* 09A7E4 7F065C74 E6080068 */ swc1 $f8, 0x68($s0) +/* 09A7E8 7F065C78 E7A2019C */ swc1 $f2, 0x19c($sp) +/* 09A7EC 7F065C7C AFAD01B8 */ sw $t5, 0x1b8($sp) +/* 09A7F0 7F065C80 AFA601B4 */ sw $a2, 0x1b4($sp) +/* 09A7F4 7F065C84 0FC17882 */ jal sub_GAME_7F05DCE8 +/* 09A7F8 7F065C88 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09A7FC 7F065C8C C60A01C8 */ lwc1 $f10, 0x1c8($s0) +/* 09A800 7F065C90 C7A2019C */ lwc1 $f2, 0x19c($sp) +/* 09A804 7F065C94 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 09A808 7F065C98 460A0101 */ sub.s $f4, $f0, $f10 +/* 09A80C 7F065C9C 44817000 */ mtc1 $at, $f14 +/* 09A810 7F065CA0 8FAD01B8 */ lw $t5, 0x1b8($sp) +/* 09A814 7F065CA4 44805000 */ mtc1 $zero, $f10 +/* 09A818 7F065CA8 46022182 */ mul.s $f6, $f4, $f2 +/* 09A81C 7F065CAC 8FA601B4 */ lw $a2, 0x1b4($sp) +/* 09A820 7F065CB0 E60A0060 */ swc1 $f10, 0x60($s0) +/* 09A824 7F065CB4 8E0F0020 */ lw $t7, 0x20($s0) +/* 09A828 7F065CB8 3C018005 */ lui $at, %hi(D_80054174) # $at, 0x8005 +/* 09A82C 7F065CBC 460E3203 */ div.s $f8, $f6, $f14 +/* 09A830 7F065CC0 C60601D0 */ lwc1 $f6, 0x1d0($s0) +/* 09A834 7F065CC4 E608005C */ swc1 $f8, 0x5c($s0) +/* 09A838 7F065CC8 C5A4000C */ lwc1 $f4, 0xc($t5) +/* 09A83C 7F065CCC 46062201 */ sub.s $f8, $f4, $f6 +/* 09A840 7F065CD0 448F3000 */ mtc1 $t7, $f6 +/* 09A844 7F065CD4 46024282 */ mul.s $f10, $f8, $f2 +/* 09A848 7F065CD8 46803220 */ cvt.s.w $f8, $f6 +/* 09A84C 7F065CDC 44863000 */ mtc1 $a2, $f6 +/* 09A850 7F065CE0 460E5103 */ div.s $f4, $f10, $f14 +/* 09A854 7F065CE4 E6040064 */ swc1 $f4, 0x64($s0) +/* 09A858 7F065CE8 C42A41A4 */ lwc1 $f10, %lo(D_80054174)($at) +/* 09A85C 7F065CEC 460A4102 */ mul.s $f4, $f8, $f10 +/* 09A860 7F065CF0 46803220 */ cvt.s.w $f8, $f6 +/* 09A864 7F065CF4 0FC160F3 */ jal sinf +/* 09A868 7F065CF8 46082303 */ div.s $f12, $f4, $f8 +/* 09A86C 7F065CFC 10000032 */ b .Ljp7F065DC8 +/* 09A870 7F065D00 46000086 */ mov.s $f2, $f0 +.Ljp7F065D04: +/* 09A874 7F065D04 3C018005 */ lui $at, %hi(D_80054178) # $at, 0x8005 +/* 09A878 7F065D08 C42C41A8 */ lwc1 $f12, %lo(D_80054178)($at) +/* 09A87C 7F065D0C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 09A880 7F065D10 44813000 */ mtc1 $at, $f6 +/* 09A884 7F065D14 460C0282 */ mul.s $f10, $f0, $f12 +/* 09A888 7F065D18 46065103 */ div.s $f4, $f10, $f6 +/* 09A88C 7F065D1C 46046201 */ sub.s $f8, $f12, $f4 +/* 09A890 7F065D20 E6080068 */ swc1 $f8, 0x68($s0) +/* 09A894 7F065D24 E7A2019C */ swc1 $f2, 0x19c($sp) +/* 09A898 7F065D28 AFAD01B8 */ sw $t5, 0x1b8($sp) +/* 09A89C 7F065D2C AFAB01B0 */ sw $t3, 0x1b0($sp) +/* 09A8A0 7F065D30 AFA601B4 */ sw $a2, 0x1b4($sp) +/* 09A8A4 7F065D34 0FC17882 */ jal sub_GAME_7F05DCE8 +/* 09A8A8 7F065D38 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09A8AC 7F065D3C C60A01C8 */ lwc1 $f10, 0x1c8($s0) +/* 09A8B0 7F065D40 C7A2019C */ lwc1 $f2, 0x19c($sp) +/* 09A8B4 7F065D44 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 09A8B8 7F065D48 460A0181 */ sub.s $f6, $f0, $f10 +/* 09A8BC 7F065D4C 44817000 */ mtc1 $at, $f14 +/* 09A8C0 7F065D50 8FAD01B8 */ lw $t5, 0x1b8($sp) +/* 09A8C4 7F065D54 44805000 */ mtc1 $zero, $f10 +/* 09A8C8 7F065D58 46023102 */ mul.s $f4, $f6, $f2 +/* 09A8CC 7F065D5C 8FA601B4 */ lw $a2, 0x1b4($sp) +/* 09A8D0 7F065D60 8FAB01B0 */ lw $t3, 0x1b0($sp) +/* 09A8D4 7F065D64 E60A0060 */ swc1 $f10, 0x60($s0) +/* 09A8D8 7F065D68 8E190020 */ lw $t9, 0x20($s0) +/* 09A8DC 7F065D6C 3C018005 */ lui $at, %hi(D_8005417C) +/* 09A8E0 7F065D70 460E2203 */ div.s $f8, $f4, $f14 +/* 09A8E4 7F065D74 C60401D0 */ lwc1 $f4, 0x1d0($s0) +/* 09A8E8 7F065D78 0326C023 */ subu $t8, $t9, $a2 +/* 09A8EC 7F065D7C E608005C */ swc1 $f8, 0x5c($s0) +/* 09A8F0 7F065D80 C5A6000C */ lwc1 $f6, 0xc($t5) +/* 09A8F4 7F065D84 46043201 */ sub.s $f8, $f6, $f4 +/* 09A8F8 7F065D88 44982000 */ mtc1 $t8, $f4 +/* 09A8FC 7F065D8C 46024282 */ mul.s $f10, $f8, $f2 +/* 09A900 7F065D90 46802220 */ cvt.s.w $f8, $f4 +/* 09A904 7F065D94 448B2000 */ mtc1 $t3, $f4 +/* 09A908 7F065D98 460E5183 */ div.s $f6, $f10, $f14 +/* 09A90C 7F065D9C E6060064 */ swc1 $f6, 0x64($s0) +/* 09A910 7F065DA0 C42A41AC */ lwc1 $f10, %lo(D_8005417C)($at) +/* 09A914 7F065DA4 460A4182 */ mul.s $f6, $f8, $f10 +/* 09A918 7F065DA8 46802220 */ cvt.s.w $f8, $f4 +/* 09A91C 7F065DAC 0FC160F0 */ jal cosf +/* 09A920 7F065DB0 46083303 */ div.s $f12, $f6, $f8 +/* 09A924 7F065DB4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09A928 7F065DB8 44815000 */ mtc1 $at, $f10 +/* 09A92C 7F065DBC 44813000 */ mtc1 $at, $f6 +/* 09A930 7F065DC0 460A0102 */ mul.s $f4, $f0, $f10 +/* 09A934 7F065DC4 46062080 */ add.s $f2, $f4, $f6 +.Ljp7F065DC8: +/* 09A938 7F065DC8 C60C0058 */ lwc1 $f12, 0x58($s0) +/* 09A93C 7F065DCC C60E0068 */ lwc1 $f14, 0x68($s0) +/* 09A940 7F065DD0 44061000 */ mfc1 $a2, $f2 +/* 09A944 7F065DD4 0FC1B5AF */ jal sub_GAME_7F06D0CC +/* 09A948 7F065DD8 E7A20194 */ swc1 $f2, 0x194($sp) +/* 09A94C 7F065DDC C60E004C */ lwc1 $f14, 0x4c($s0) +/* 09A950 7F065DE0 C608005C */ lwc1 $f8, 0x5c($s0) +/* 09A954 7F065DE4 C7A20194 */ lwc1 $f2, 0x194($sp) +/* 09A958 7F065DE8 C6100050 */ lwc1 $f16, 0x50($s0) +/* 09A95C 7F065DEC 460E4281 */ sub.s $f10, $f8, $f14 +/* 09A960 7F065DF0 C6080060 */ lwc1 $f8, 0x60($s0) +/* 09A964 7F065DF4 C6120054 */ lwc1 $f18, 0x54($s0) +/* 09A968 7F065DF8 240E0001 */ li $t6, 1 +/* 09A96C 7F065DFC 46025102 */ mul.s $f4, $f10, $f2 +/* 09A970 7F065E00 46104281 */ sub.s $f10, $f8, $f16 +/* 09A974 7F065E04 C6080064 */ lwc1 $f8, 0x64($s0) +/* 09A978 7F065E08 E6000078 */ swc1 $f0, 0x78($s0) +/* 09A97C 7F065E0C AE0E00BC */ sw $t6, 0xbc($s0) +/* 09A980 7F065E10 46000306 */ mov.s $f12, $f0 +/* 09A984 7F065E14 460E2180 */ add.s $f6, $f4, $f14 +/* 09A988 7F065E18 46025102 */ mul.s $f4, $f10, $f2 +/* 09A98C 7F065E1C 46124281 */ sub.s $f10, $f8, $f18 +/* 09A990 7F065E20 E606006C */ swc1 $f6, 0x6c($s0) +/* 09A994 7F065E24 46102180 */ add.s $f6, $f4, $f16 +/* 09A998 7F065E28 46025102 */ mul.s $f4, $f10, $f2 +/* 09A99C 7F065E2C E6060070 */ swc1 $f6, 0x70($s0) +/* 09A9A0 7F065E30 46122180 */ add.s $f6, $f4, $f18 +/* 09A9A4 7F065E34 E6060074 */ swc1 $f6, 0x74($s0) +/* 09A9A8 7F065E38 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09A9AC 7F065E3C 8FA50034 */ lw $a1, 0x34($sp) +/* 09A9B0 7F065E40 2604006C */ addiu $a0, $s0, 0x6c +/* 09A9B4 7F065E44 0FC163AE */ jal matrix_4x4_set_position +/* 09A9B8 7F065E48 8FA50034 */ lw $a1, 0x34($sp) +.Ljp7F065E4C: +/* 09A9BC 7F065E4C 8E020024 */ lw $v0, 0x24($s0) +/* 09A9C0 7F065E50 24010004 */ li $at, 4 +/* 09A9C4 7F065E54 54410053 */ bnel $v0, $at, .Ljp7F065FA4 +/* 09A9C8 7F065E58 2401000D */ li $at, 13 +/* 09A9CC 7F065E5C 8E030020 */ lw $v1, 0x20($s0) +/* 09A9D0 7F065E60 54600013 */ bnezl $v1, .Ljp7F065EB0 +/* 09A9D4 7F065E64 8E020038 */ lw $v0, 0x38($s0) +/* 09A9D8 7F065E68 C6080078 */ lwc1 $f8, 0x78($s0) +/* 09A9DC 7F065E6C C60A006C */ lwc1 $f10, 0x6c($s0) +/* 09A9E0 7F065E70 C6040070 */ lwc1 $f4, 0x70($s0) +/* 09A9E4 7F065E74 C6060074 */ lwc1 $f6, 0x74($s0) +/* 09A9E8 7F065E78 E6080058 */ swc1 $f8, 0x58($s0) +/* 09A9EC 7F065E7C E60A004C */ swc1 $f10, 0x4c($s0) +/* 09A9F0 7F065E80 E6040050 */ swc1 $f4, 0x50($s0) +/* 09A9F4 7F065E84 E6060054 */ swc1 $f6, 0x54($s0) +/* 09A9F8 7F065E88 44804000 */ mtc1 $zero, $f8 +/* 09A9FC 7F065E8C 44805000 */ mtc1 $zero, $f10 +/* 09AA00 7F065E90 44802000 */ mtc1 $zero, $f4 +/* 09AA04 7F065E94 44803000 */ mtc1 $zero, $f6 +/* 09AA08 7F065E98 8E030020 */ lw $v1, 0x20($s0) +/* 09AA0C 7F065E9C E6080068 */ swc1 $f8, 0x68($s0) +/* 09AA10 7F065EA0 E60A005C */ swc1 $f10, 0x5c($s0) +/* 09AA14 7F065EA4 E6040060 */ swc1 $f4, 0x60($s0) +/* 09AA18 7F065EA8 E6060064 */ swc1 $f6, 0x64($s0) +/* 09AA1C 7F065EAC 8E020038 */ lw $v0, 0x38($s0) +.Ljp7F065EB0: +/* 09AA20 7F065EB0 0062082A */ slt $at, $v1, $v0 +/* 09AA24 7F065EB4 10200036 */ beqz $at, .Ljp7F065F90 +/* 09AA28 7F065EB8 00437823 */ subu $t7, $v0, $v1 +/* 09AA2C 7F065EBC 448F4000 */ mtc1 $t7, $f8 +/* 09AA30 7F065EC0 3C018005 */ lui $at, %hi(D_80054180) # $at, 0x8005 +/* 09AA34 7F065EC4 C42441B0 */ lwc1 $f4, %lo(D_80054180)($at) +/* 09AA38 7F065EC8 468042A0 */ cvt.s.w $f10, $f8 +/* 09AA3C 7F065ECC 44824000 */ mtc1 $v0, $f8 +/* 09AA40 7F065ED0 2619007C */ addiu $t9, $s0, 0x7c +/* 09AA44 7F065ED4 2618006C */ addiu $t8, $s0, 0x6c +/* 09AA48 7F065ED8 AFB80038 */ sw $t8, 0x38($sp) +/* 09AA4C 7F065EDC AFB90034 */ sw $t9, 0x34($sp) +/* 09AA50 7F065EE0 46045182 */ mul.s $f6, $f10, $f4 +/* 09AA54 7F065EE4 468042A0 */ cvt.s.w $f10, $f8 +/* 09AA58 7F065EE8 0FC160F0 */ jal cosf +/* 09AA5C 7F065EEC 460A3303 */ div.s $f12, $f6, $f10 +/* 09AA60 7F065EF0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09AA64 7F065EF4 44818000 */ mtc1 $at, $f16 +/* 09AA68 7F065EF8 00000000 */ nop +/* 09AA6C 7F065EFC 46100102 */ mul.s $f4, $f0, $f16 +/* 09AA70 7F065F00 46102080 */ add.s $f2, $f4, $f16 +/* 09AA74 7F065F04 E7A20190 */ swc1 $f2, 0x190($sp) +/* 09AA78 7F065F08 44061000 */ mfc1 $a2, $f2 +/* 09AA7C 7F065F0C C60E0068 */ lwc1 $f14, 0x68($s0) +/* 09AA80 7F065F10 0FC1B5AF */ jal sub_GAME_7F06D0CC +/* 09AA84 7F065F14 C60C0058 */ lwc1 $f12, 0x58($s0) +/* 09AA88 7F065F18 C60E004C */ lwc1 $f14, 0x4c($s0) +/* 09AA8C 7F065F1C C608005C */ lwc1 $f8, 0x5c($s0) +/* 09AA90 7F065F20 C7A20190 */ lwc1 $f2, 0x190($sp) +/* 09AA94 7F065F24 C6100050 */ lwc1 $f16, 0x50($s0) +/* 09AA98 7F065F28 460E4181 */ sub.s $f6, $f8, $f14 +/* 09AA9C 7F065F2C C6080060 */ lwc1 $f8, 0x60($s0) +/* 09AAA0 7F065F30 C6120054 */ lwc1 $f18, 0x54($s0) +/* 09AAA4 7F065F34 240E0001 */ li $t6, 1 +/* 09AAA8 7F065F38 46023282 */ mul.s $f10, $f6, $f2 +/* 09AAAC 7F065F3C 46104181 */ sub.s $f6, $f8, $f16 +/* 09AAB0 7F065F40 C6080064 */ lwc1 $f8, 0x64($s0) +/* 09AAB4 7F065F44 E6000078 */ swc1 $f0, 0x78($s0) +/* 09AAB8 7F065F48 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09AABC 7F065F4C 46000306 */ mov.s $f12, $f0 +/* 09AAC0 7F065F50 460E5100 */ add.s $f4, $f10, $f14 +/* 09AAC4 7F065F54 46023282 */ mul.s $f10, $f6, $f2 +/* 09AAC8 7F065F58 46124181 */ sub.s $f6, $f8, $f18 +/* 09AACC 7F065F5C E604006C */ swc1 $f4, 0x6c($s0) +/* 09AAD0 7F065F60 46105100 */ add.s $f4, $f10, $f16 +/* 09AAD4 7F065F64 46023282 */ mul.s $f10, $f6, $f2 +/* 09AAD8 7F065F68 E6040070 */ swc1 $f4, 0x70($s0) +/* 09AADC 7F065F6C 46125100 */ add.s $f4, $f10, $f18 +/* 09AAE0 7F065F70 E6040074 */ swc1 $f4, 0x74($s0) +/* 09AAE4 7F065F74 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09AAE8 7F065F78 8FA50034 */ lw $a1, 0x34($sp) +/* 09AAEC 7F065F7C 8FA40038 */ lw $a0, 0x38($sp) +/* 09AAF0 7F065F80 0FC163AE */ jal matrix_4x4_set_position +/* 09AAF4 7F065F84 8FA50034 */ lw $a1, 0x34($sp) +/* 09AAF8 7F065F88 10000005 */ b .Ljp7F065FA0 +/* 09AAFC 7F065F8C 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F065F90: +/* 09AB00 7F065F90 AE000024 */ sw $zero, 0x24($s0) +/* 09AB04 7F065F94 AE000020 */ sw $zero, 0x20($s0) +/* 09AB08 7F065F98 AE00001C */ sw $zero, 0x1c($s0) +/* 09AB0C 7F065F9C 00001025 */ move $v0, $zero +.Ljp7F065FA0: +/* 09AB10 7F065FA0 2401000D */ li $at, 13 +.Ljp7F065FA4: +/* 09AB14 7F065FA4 54410013 */ bnel $v0, $at, .Ljp7F065FF4 +/* 09AB18 7F065FA8 8E020024 */ lw $v0, 0x24($s0) +/* 09AB1C 7F065FAC 8E0F001C */ lw $t7, 0x1c($s0) +/* 09AB20 7F065FB0 55E00004 */ bnezl $t7, .Ljp7F065FC4 +/* 09AB24 7F065FB4 8E050018 */ lw $a1, 0x18($s0) +/* 09AB28 7F065FB8 0FC17B4A */ jal sub_GAME_7F05E808 +/* 09AB2C 7F065FBC 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AB30 7F065FC0 8E050018 */ lw $a1, 0x18($s0) +.Ljp7F065FC4: +/* 09AB34 7F065FC4 54A00008 */ bnezl $a1, .Ljp7F065FE8 +/* 09AB38 7F065FC8 AE000024 */ sw $zero, 0x24($s0) +/* 09AB3C 7F065FCC 54A00009 */ bnezl $a1, .Ljp7F065FF4 +/* 09AB40 7F065FD0 8E020024 */ lw $v0, 0x24($s0) +/* 09AB44 7F065FD4 8E190020 */ lw $t9, 0x20($s0) +/* 09AB48 7F065FD8 2B210014 */ slti $at, $t9, 0x14 +/* 09AB4C 7F065FDC 54200005 */ bnezl $at, .Ljp7F065FF4 +/* 09AB50 7F065FE0 8E020024 */ lw $v0, 0x24($s0) +/* 09AB54 7F065FE4 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F065FE8: +/* 09AB58 7F065FE8 AE000020 */ sw $zero, 0x20($s0) +/* 09AB5C 7F065FEC AE00001C */ sw $zero, 0x1c($s0) +/* 09AB60 7F065FF0 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F065FF4: +/* 09AB64 7F065FF4 24050005 */ li $a1, 5 +/* 09AB68 7F065FF8 24040010 */ li $a0, 16 +/* 09AB6C 7F065FFC 54A2005E */ bnel $a1, $v0, .Ljp7F066178 +/* 09AB70 7F066000 24060006 */ li $a2, 6 +/* 09AB74 7F066004 0FC26C01 */ jal get_num_players +/* 09AB78 7F066008 AFA4018C */ sw $a0, 0x18c($sp) +/* 09AB7C 7F06600C 28410002 */ slti $at, $v0, 2 +/* 09AB80 7F066010 14200002 */ bnez $at, .Ljp7F06601C +/* 09AB84 7F066014 8FA4018C */ lw $a0, 0x18c($sp) +/* 09AB88 7F066018 2404000C */ li $a0, 12 +.Ljp7F06601C: +/* 09AB8C 7F06601C 8E18001C */ lw $t8, 0x1c($s0) +/* 09AB90 7F066020 5700000C */ bnezl $t8, .Ljp7F066054 +/* 09AB94 7F066024 8E030020 */ lw $v1, 0x20($s0) +/* 09AB98 7F066028 0FC26C01 */ jal get_num_players +/* 09AB9C 7F06602C AFA4018C */ sw $a0, 0x18c($sp) +/* 09ABA0 7F066030 24010001 */ li $at, 1 +/* 09ABA4 7F066034 14410004 */ bne $v0, $at, .Ljp7F066048 +/* 09ABA8 7F066038 8FA4018C */ lw $a0, 0x18c($sp) +/* 09ABAC 7F06603C 240E0011 */ li $t6, 17 +/* 09ABB0 7F066040 10000003 */ b .Ljp7F066050 +/* 09ABB4 7F066044 AE0E0040 */ sw $t6, 0x40($s0) +.Ljp7F066048: +/* 09ABB8 7F066048 240F000D */ li $t7, 13 +/* 09ABBC 7F06604C AE0F0040 */ sw $t7, 0x40($s0) +.Ljp7F066050: +/* 09ABC0 7F066050 8E030020 */ lw $v1, 0x20($s0) +.Ljp7F066054: +/* 09ABC4 7F066054 0064082A */ slt $at, $v1, $a0 +/* 09ABC8 7F066058 54200026 */ bnezl $at, .Ljp7F0660F4 +/* 09ABCC 7F06605C 44834000 */ mtc1 $v1, $f8 +/* 09ABD0 7F066060 0FC1A686 */ jal get_ammo_type_for_weapon +/* 09ABD4 7F066064 02202025 */ move $a0, $s1 +/* 09ABD8 7F066068 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 09ABDC 7F06606C 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 09ABE0 7F066070 0002C080 */ sll $t8, $v0, 2 +/* 09ABE4 7F066074 8E0F002C */ lw $t7, 0x2c($s0) +/* 09ABE8 7F066078 03381821 */ addu $v1, $t9, $t8 +/* 09ABEC 7F06607C 8C6E1130 */ lw $t6, 0x1130($v1) +/* 09ABF0 7F066080 01CFC821 */ addu $t9, $t6, $t7 +/* 09ABF4 7F066084 AC791130 */ sw $t9, 0x1130($v1) +/* 09ABF8 7F066088 0FC26C01 */ jal get_num_players +/* 09ABFC 7F06608C AE00002C */ sw $zero, 0x2c($s0) +/* 09AC00 7F066090 28410002 */ slti $at, $v0, 2 +/* 09AC04 7F066094 14200003 */ bnez $at, .Ljp7F0660A4 +/* 09AC08 7F066098 00000000 */ nop +/* 09AC0C 7F06609C 0FC26FC2 */ jal sub_GAME_7F09B368 +/* 09AC10 7F0660A0 8FA401E0 */ lw $a0, 0x1e0($sp) +.Ljp7F0660A4: +/* 09AC14 7F0660A4 0FC18008 */ jal sub_GAME_7F05FB00 +/* 09AC18 7F0660A8 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AC1C 7F0660AC 24180006 */ li $t8, 6 +/* 09AC20 7F0660B0 AE180024 */ sw $t8, 0x24($s0) +/* 09AC24 7F0660B4 0FC23314 */ jal check_if_item_available +/* 09AC28 7F0660B8 24040011 */ li $a0, 17 +/* 09AC2C 7F0660BC 10400006 */ beqz $v0, .Ljp7F0660D8 +/* 09AC30 7F0660C0 24050005 */ li $a1, 5 +/* 09AC34 7F0660C4 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 09AC38 7F0660C8 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 09AC3C 7F0660CC 240E0011 */ li $t6, 17 +/* 09AC40 7F0660D0 10000005 */ b .Ljp7F0660E8 +/* 09AC44 7F0660D4 ADEE2A38 */ sw $t6, 0x2a38($t7) +.Ljp7F0660D8: +/* 09AC48 7F0660D8 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09AC4C 7F0660DC 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09AC50 7F0660E0 24190001 */ li $t9, 1 +/* 09AC54 7F0660E4 AF192A38 */ sw $t9, 0x2a38($t8) +.Ljp7F0660E8: +/* 09AC58 7F0660E8 10000022 */ b .Ljp7F066174 +/* 09AC5C 7F0660EC 8E020024 */ lw $v0, 0x24($s0) +/* 09AC60 7F0660F0 44834000 */ mtc1 $v1, $f8 +.Ljp7F0660F4: +/* 09AC64 7F0660F4 3C018005 */ lui $at, %hi(D_80054184) # $at, 0x8005 +/* 09AC68 7F0660F8 C42A41B4 */ lwc1 $f10, %lo(D_80054184)($at) +/* 09AC6C 7F0660FC 468041A0 */ cvt.s.w $f6, $f8 +/* 09AC70 7F066100 44844000 */ mtc1 $a0, $f8 +/* 09AC74 7F066104 240E0001 */ li $t6, 1 +/* 09AC78 7F066108 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09AC7C 7F06610C 2605007C */ addiu $a1, $s0, 0x7c +/* 09AC80 7F066110 460A3102 */ mul.s $f4, $f6, $f10 +/* 09AC84 7F066114 468041A0 */ cvt.s.w $f6, $f8 +/* 09AC88 7F066118 46062303 */ div.s $f12, $f4, $f6 +/* 09AC8C 7F06611C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09AC90 7F066120 E7AC0188 */ swc1 $f12, 0x188($sp) +/* 09AC94 7F066124 44805000 */ mtc1 $zero, $f10 +/* 09AC98 7F066128 00000000 */ nop +/* 09AC9C 7F06612C E60A00AC */ swc1 $f10, 0xac($s0) +/* 09ACA0 7F066130 0FC160F0 */ jal cosf +/* 09ACA4 7F066134 C7AC0188 */ lwc1 $f12, 0x188($sp) +/* 09ACA8 7F066138 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09ACAC 7F06613C 44814000 */ mtc1 $at, $f8 +/* 09ACB0 7F066140 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09ACB4 7F066144 44813000 */ mtc1 $at, $f6 +/* 09ACB8 7F066148 46004101 */ sub.s $f4, $f8, $f0 +/* 09ACBC 7F06614C 46062282 */ mul.s $f10, $f4, $f6 +/* 09ACC0 7F066150 E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 09ACC4 7F066154 0FC160F3 */ jal sinf +/* 09ACC8 7F066158 C7AC0188 */ lwc1 $f12, 0x188($sp) +/* 09ACCC 7F06615C 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09ACD0 7F066160 44814000 */ mtc1 $at, $f8 +/* 09ACD4 7F066164 8E020024 */ lw $v0, 0x24($s0) +/* 09ACD8 7F066168 24050005 */ li $a1, 5 +/* 09ACDC 7F06616C 46080102 */ mul.s $f4, $f0, $f8 +/* 09ACE0 7F066170 E60400B4 */ swc1 $f4, 0xb4($s0) +.Ljp7F066174: +/* 09ACE4 7F066174 24060006 */ li $a2, 6 +.Ljp7F066178: +/* 09ACE8 7F066178 10C20003 */ beq $a2, $v0, .Ljp7F066188 +/* 09ACEC 7F06617C 24010007 */ li $at, 7 +/* 09ACF0 7F066180 54410066 */ bnel $v0, $at, .Ljp7F06631C +/* 09ACF4 7F066184 24010008 */ li $at, 8 +.Ljp7F066188: +/* 09ACF8 7F066188 8E0F0044 */ lw $t7, 0x44($s0) +/* 09ACFC 7F06618C 11E00006 */ beqz $t7, .Ljp7F0661A8 +/* 09AD00 7F066190 00000000 */ nop +/* 09AD04 7F066194 8E190020 */ lw $t9, 0x20($s0) +/* 09AD08 7F066198 8E180040 */ lw $t8, 0x40($s0) +/* 09AD0C 7F06619C 0338082A */ slt $at, $t9, $t8 +/* 09AD10 7F0661A0 5420003E */ bnezl $at, .Ljp7F06629C +/* 09AD14 7F0661A4 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F0661A8: +/* 09AD18 7F0661A8 14C20034 */ bne $a2, $v0, .Ljp7F06627C +/* 09AD1C 7F0661AC 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 09AD20 7F0661B0 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 09AD24 7F0661B4 8FAF003C */ lw $t7, 0x3c($sp) +/* 09AD28 7F0661B8 01CF1823 */ subu $v1, $t6, $t7 +/* 09AD2C 7F0661BC 8C620C3C */ lw $v0, 0xc3c($v1) +/* 09AD30 7F0661C0 24630C18 */ addiu $v1, $v1, 0xc18 +/* 09AD34 7F0661C4 50C20025 */ beql $a2, $v0, .Ljp7F06625C +/* 09AD38 7F0661C8 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AD3C 7F0661CC 50A20023 */ beql $a1, $v0, .Ljp7F06625C +/* 09AD40 7F0661D0 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AD44 7F0661D4 8C640028 */ lw $a0, 0x28($v1) +/* 09AD48 7F0661D8 2401000E */ li $at, 14 +/* 09AD4C 7F0661DC 50A4001F */ beql $a1, $a0, .Ljp7F06625C +/* 09AD50 7F0661E0 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AD54 7F0661E4 1041001C */ beq $v0, $at, .Ljp7F066258 +/* 09AD58 7F0661E8 2401000F */ li $at, 15 +/* 09AD5C 7F0661EC 1041001A */ beq $v0, $at, .Ljp7F066258 +/* 09AD60 7F0661F0 24010010 */ li $at, 16 +/* 09AD64 7F0661F4 10410018 */ beq $v0, $at, .Ljp7F066258 +/* 09AD68 7F0661F8 2401000E */ li $at, 14 +/* 09AD6C 7F0661FC 10810016 */ beq $a0, $at, .Ljp7F066258 +/* 09AD70 7F066200 8FB901E0 */ lw $t9, 0x1e0($sp) +/* 09AD74 7F066204 1720000C */ bnez $t9, .Ljp7F066238 +/* 09AD78 7F066208 00000000 */ nop +/* 09AD7C 7F06620C 0FC177BC */ jal get_item_in_hand +/* 09AD80 7F066210 24040001 */ li $a0, 1 +/* 09AD84 7F066214 8E04003C */ lw $a0, 0x3c($s0) +/* 09AD88 7F066218 0FC2332D */ jal check_if_item_for_hand_available +/* 09AD8C 7F06621C 00402825 */ move $a1, $v0 +/* 09AD90 7F066220 1440000D */ bnez $v0, .Ljp7F066258 +/* 09AD94 7F066224 24040001 */ li $a0, 1 +/* 09AD98 7F066228 0FC1778D */ jal draw_item_in_hand_has_more_ammo +/* 09AD9C 7F06622C 00002825 */ move $a1, $zero +/* 09ADA0 7F066230 1000000A */ b .Ljp7F06625C +/* 09ADA4 7F066234 8FA401E0 */ lw $a0, 0x1e0($sp) +.Ljp7F066238: +/* 09ADA8 7F066238 0FC177BC */ jal get_item_in_hand +/* 09ADAC 7F06623C 00002025 */ move $a0, $zero +/* 09ADB0 7F066240 00402025 */ move $a0, $v0 +/* 09ADB4 7F066244 0FC2332D */ jal check_if_item_for_hand_available +/* 09ADB8 7F066248 8E05003C */ lw $a1, 0x3c($s0) +/* 09ADBC 7F06624C 54400003 */ bnezl $v0, .Ljp7F06625C +/* 09ADC0 7F066250 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09ADC4 7F066254 AE00003C */ sw $zero, 0x3c($s0) +.Ljp7F066258: +/* 09ADC8 7F066258 8FA401E0 */ lw $a0, 0x1e0($sp) +.Ljp7F06625C: +/* 09ADCC 7F06625C 0FC1781D */ jal remove_hands_item +/* 09ADD0 7F066260 8E05003C */ lw $a1, 0x3c($s0) +/* 09ADD4 7F066264 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 09ADD8 7F066268 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09ADDC 7F06626C 24180007 */ li $t8, 7 +/* 09ADE0 7F066270 00408825 */ move $s1, $v0 +/* 09ADE4 7F066274 10000008 */ b .Ljp7F066298 +/* 09ADE8 7F066278 AE180024 */ sw $t8, 0x24($s0) +.Ljp7F06627C: +/* 09ADEC 7F06627C 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 09ADF0 7F066280 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09ADF4 7F066284 10400004 */ beqz $v0, .Ljp7F066298 +/* 09ADF8 7F066288 240E0008 */ li $t6, 8 +/* 09ADFC 7F06628C AE0E0024 */ sw $t6, 0x24($s0) +/* 09AE00 7F066290 AE000020 */ sw $zero, 0x20($s0) +/* 09AE04 7F066294 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F066298: +/* 09AE08 7F066298 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F06629C: +/* 09AE0C 7F06629C 24060006 */ li $a2, 6 +/* 09AE10 7F0662A0 24010007 */ li $at, 7 +/* 09AE14 7F0662A4 10C20003 */ beq $a2, $v0, .Ljp7F0662B4 +/* 09AE18 7F0662A8 240F0001 */ li $t7, 1 +/* 09AE1C 7F0662AC 5441001B */ bnel $v0, $at, .Ljp7F06631C +/* 09AE20 7F0662B0 24010008 */ li $at, 8 +.Ljp7F0662B4: +/* 09AE24 7F0662B4 AE0F00BC */ sw $t7, 0xbc($s0) +/* 09AE28 7F0662B8 3C018005 */ lui $at, %hi(D_80054188) # $at, 0x8005 +/* 09AE2C 7F0662BC C42C41B8 */ lwc1 $f12, %lo(D_80054188)($at) +/* 09AE30 7F0662C0 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09AE34 7F0662C4 2605007C */ addiu $a1, $s0, 0x7c +/* 09AE38 7F0662C8 44803000 */ mtc1 $zero, $f6 +/* 09AE3C 7F0662CC 3C018005 */ lui $at, %hi(D_8005418C) # $at, 0x8005 +/* 09AE40 7F0662D0 E60600AC */ swc1 $f6, 0xac($s0) +/* 09AE44 7F0662D4 0FC160F0 */ jal cosf +/* 09AE48 7F0662D8 C42C41BC */ lwc1 $f12, %lo(D_8005418C)($at) +/* 09AE4C 7F0662DC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09AE50 7F0662E0 44815000 */ mtc1 $at, $f10 +/* 09AE54 7F0662E4 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09AE58 7F0662E8 44812000 */ mtc1 $at, $f4 +/* 09AE5C 7F0662EC 46005201 */ sub.s $f8, $f10, $f0 +/* 09AE60 7F0662F0 3C018005 */ lui $at, %hi(D_80054190) # $at, 0x8005 +/* 09AE64 7F0662F4 46044182 */ mul.s $f6, $f8, $f4 +/* 09AE68 7F0662F8 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 09AE6C 7F0662FC 0FC160F3 */ jal sinf +/* 09AE70 7F066300 C42C41C0 */ lwc1 $f12, %lo(D_80054190)($at) +/* 09AE74 7F066304 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09AE78 7F066308 44815000 */ mtc1 $at, $f10 +/* 09AE7C 7F06630C 8E020024 */ lw $v0, 0x24($s0) +/* 09AE80 7F066310 460A0202 */ mul.s $f8, $f0, $f10 +/* 09AE84 7F066314 E60800B4 */ swc1 $f8, 0xb4($s0) +/* 09AE88 7F066318 24010008 */ li $at, 8 +.Ljp7F06631C: +/* 09AE8C 7F06631C 1441008D */ bne $v0, $at, .Ljp7F066554 +/* 09AE90 7F066320 24190017 */ li $t9, 23 +/* 09AE94 7F066324 0FC26C01 */ jal get_num_players +/* 09AE98 7F066328 AFB9017C */ sw $t9, 0x17c($sp) +/* 09AE9C 7F06632C 28410002 */ slti $at, $v0, 2 +/* 09AEA0 7F066330 14200002 */ bnez $at, .Ljp7F06633C +/* 09AEA4 7F066334 2418000C */ li $t8, 12 +/* 09AEA8 7F066338 AFB8017C */ sw $t8, 0x17c($sp) +.Ljp7F06633C: +/* 09AEAC 7F06633C 8E0E001C */ lw $t6, 0x1c($s0) +/* 09AEB0 7F066340 55C0004D */ bnezl $t6, .Ljp7F066478 +/* 09AEB4 7F066344 8E0F0020 */ lw $t7, 0x20($s0) +/* 09AEB8 7F066348 0FC26C01 */ jal get_num_players +/* 09AEBC 7F06634C 00000000 */ nop +/* 09AEC0 7F066350 28410002 */ slti $at, $v0, 2 +/* 09AEC4 7F066354 14200003 */ bnez $at, .Ljp7F066364 +/* 09AEC8 7F066358 00000000 */ nop +/* 09AECC 7F06635C 0FC26FCE */ jal sub_GAME_7F09B398 +/* 09AED0 7F066360 8FA401E0 */ lw $a0, 0x1e0($sp) +.Ljp7F066364: +/* 09AED4 7F066364 0FC193CF */ jal sub_GAME_7F0649D8 +/* 09AED8 7F066368 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AEDC 7F06636C 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 09AEE0 7F066370 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 09AEE4 7F066374 3C198005 */ lui $t9, %hi(clock_timer) # $t9, 0x8005 +/* 09AEE8 7F066378 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09AEEC 7F06637C ADE00FC8 */ sw $zero, 0xfc8($t7) +/* 09AEF0 7F066380 8F3983A4 */ lw $t9, %lo(clock_timer)($t9) +/* 09AEF4 7F066384 5B20003C */ blezl $t9, .Ljp7F066478 +/* 09AEF8 7F066388 8E0F0020 */ lw $t7, 0x20($s0) +/* 09AEFC 7F06638C 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09AF00 7F066390 24010001 */ li $at, 1 +/* 09AF04 7F066394 8F0E0000 */ lw $t6, ($t8) +/* 09AF08 7F066398 51C10037 */ beql $t6, $at, .Ljp7F066478 +/* 09AF0C 7F06639C 8E0F0020 */ lw $t7, 0x20($s0) +/* 09AF10 7F0663A0 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 09AF14 7F0663A4 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AF18 7F0663A8 10400032 */ beqz $v0, weapon_switchstyle_NONE +/* 09AF1C 7F0663AC 3C0F8003 */ lui $t7, %hi(disable_player_pickups_flag) # $t7, 0x8003 +/* 09AF20 7F0663B0 8DEF64F4 */ lw $t7, %lo(disable_player_pickups_flag)($t7) +/* 09AF24 7F0663B4 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 09AF28 7F0663B8 55E0002F */ bnezl $t7, .Ljp7F066478 +/* 09AF2C 7F0663BC 8E0F0020 */ lw $t7, 0x20($s0) +/* 09AF30 7F0663C0 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 09AF34 7F0663C4 2A21003E */ slti $at, $s1, 0x3e +/* 09AF38 7F0663C8 8F3800D8 */ lw $t8, 0xd8($t9) +/* 09AF3C 7F0663CC 5700002A */ bnezl $t8, .Ljp7F066478 +/* 09AF40 7F0663D0 8E0F0020 */ lw $t7, 0x20($s0) +/* 09AF44 7F0663D4 14200005 */ bnez $at, .Ljp7F0663EC +/* 09AF48 7F0663D8 24010058 */ li $at, 88 +/* 09AF4C 7F0663DC 52210026 */ beql $s1, $at, .Ljp7F066478 +/* 09AF50 7F0663E0 8E0F0020 */ lw $t7, 0x20($s0) +/* 09AF54 7F0663E4 1000001E */ b weapon_playsfx_gun +/* 09AF58 7F0663E8 00000000 */ nop +.Ljp7F0663EC: +/* 09AF5C 7F0663EC 2E21003E */ sltiu $at, $s1, 0x3e +/* 09AF60 7F0663F0 1020001B */ beqz $at, weapon_playsfx_gun +/* 09AF64 7F0663F4 00117080 */ sll $t6, $s1, 2 +/* 09AF68 7F0663F8 3C018005 */ lui $at, %hi(jpt_80054194) +/* 09AF6C 7F0663FC 002E0821 */ addu $at, $at, $t6 +/* 09AF70 7F066400 8C2E41C4 */ lw $t6, %lo(jpt_80054194)($at) +/* 09AF74 7F066404 01C00008 */ jr $t6 +/* 09AF78 7F066408 00000000 */ nop +weapon_playsfx_F2: +/* 09AF7C 7F06640C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09AF80 7F066410 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09AF84 7F066414 240500F2 */ li $a1, 242 +/* 09AF88 7F066418 0C002386 */ jal play_sfx_a1 +/* 09AF8C 7F06641C 00003025 */ move $a2, $zero +/* 09AF90 7F066420 10000015 */ b .Ljp7F066478 +/* 09AF94 7F066424 8E0F0020 */ lw $t7, 0x20($s0) +weapon_playsfx_knife: +/* 09AF98 7F066428 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09AF9C 7F06642C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09AFA0 7F066430 240500E9 */ li $a1, 233 +/* 09AFA4 7F066434 0C002386 */ jal play_sfx_a1 +/* 09AFA8 7F066438 00003025 */ move $a2, $zero +/* 09AFAC 7F06643C 1000000E */ b .Ljp7F066478 +/* 09AFB0 7F066440 8E0F0020 */ lw $t7, 0x20($s0) +weapon_playsfx_mine: +/* 09AFB4 7F066444 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09AFB8 7F066448 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09AFBC 7F06644C 240500EB */ li $a1, 235 +/* 09AFC0 7F066450 0C002386 */ jal play_sfx_a1 +/* 09AFC4 7F066454 00003025 */ move $a2, $zero +/* 09AFC8 7F066458 10000007 */ b .Ljp7F066478 +/* 09AFCC 7F06645C 8E0F0020 */ lw $t7, 0x20($s0) +weapon_playsfx_gun: +/* 09AFD0 7F066460 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09AFD4 7F066464 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09AFD8 7F066468 240500E8 */ li $a1, 232 +/* 09AFDC 7F06646C 0C002386 */ jal play_sfx_a1 +/* 09AFE0 7F066470 00003025 */ move $a2, $zero +weapon_switchstyle_NONE: +/* 09AFE4 7F066474 8E0F0020 */ lw $t7, 0x20($s0) +.Ljp7F066478: +/* 09AFE8 7F066478 8FB9017C */ lw $t9, 0x17c($sp) +/* 09AFEC 7F06647C 01F9082A */ slt $at, $t7, $t9 +/* 09AFF0 7F066480 5020000E */ beql $at, $zero, .Ljp7F0664BC +/* 09AFF4 7F066484 AE000024 */ sw $zero, 0x24($s0) +/* 09AFF8 7F066488 0FC1755A */ jal get_ptr_weapon_model_header_line +/* 09AFFC 7F06648C 02202025 */ move $a0, $s1 +/* 09B000 7F066490 10400009 */ beqz $v0, .Ljp7F0664B8 +/* 09B004 7F066494 02202025 */ move $a0, $s1 +/* 09B008 7F066498 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B00C 7F06649C 24050800 */ li $a1, 2048 +/* 09B010 7F0664A0 10400005 */ beqz $v0, .Ljp7F0664B8 +/* 09B014 7F0664A4 02202025 */ move $a0, $s1 +/* 09B018 7F0664A8 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B01C 7F0664AC 24052000 */ li $a1, 8192 +/* 09B020 7F0664B0 10400006 */ beqz $v0, .Ljp7F0664CC +/* 09B024 7F0664B4 8FB8017C */ lw $t8, 0x17c($sp) +.Ljp7F0664B8: +/* 09B028 7F0664B8 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F0664BC: +/* 09B02C 7F0664BC AE000020 */ sw $zero, 0x20($s0) +/* 09B030 7F0664C0 AE00001C */ sw $zero, 0x1c($s0) +/* 09B034 7F0664C4 10000023 */ b .Ljp7F066554 +/* 09B038 7F0664C8 00001025 */ move $v0, $zero +.Ljp7F0664CC: +/* 09B03C 7F0664CC 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B040 7F0664D0 3C018005 */ lui $at, %hi(D_8005428C) # $at, 0x8005 +/* 09B044 7F0664D4 C42A42BC */ lwc1 $f10, %lo(D_8005428C)($at) +/* 09B048 7F0664D8 030E7823 */ subu $t7, $t8, $t6 +/* 09B04C 7F0664DC 448F2000 */ mtc1 $t7, $f4 +/* 09B050 7F0664E0 24190001 */ li $t9, 1 +/* 09B054 7F0664E4 AE1900BC */ sw $t9, 0xbc($s0) +/* 09B058 7F0664E8 468021A0 */ cvt.s.w $f6, $f4 +/* 09B05C 7F0664EC 44982000 */ mtc1 $t8, $f4 +/* 09B060 7F0664F0 2605007C */ addiu $a1, $s0, 0x7c +/* 09B064 7F0664F4 460A3202 */ mul.s $f8, $f6, $f10 +/* 09B068 7F0664F8 468021A0 */ cvt.s.w $f6, $f4 +/* 09B06C 7F0664FC 46064303 */ div.s $f12, $f8, $f6 +/* 09B070 7F066500 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B074 7F066504 E7AC0178 */ swc1 $f12, 0x178($sp) +/* 09B078 7F066508 44805000 */ mtc1 $zero, $f10 +/* 09B07C 7F06650C 00000000 */ nop +/* 09B080 7F066510 E60A00AC */ swc1 $f10, 0xac($s0) +/* 09B084 7F066514 0FC160F0 */ jal cosf +/* 09B088 7F066518 C7AC0178 */ lwc1 $f12, 0x178($sp) +/* 09B08C 7F06651C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B090 7F066520 44812000 */ mtc1 $at, $f4 +/* 09B094 7F066524 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09B098 7F066528 44813000 */ mtc1 $at, $f6 +/* 09B09C 7F06652C 46002201 */ sub.s $f8, $f4, $f0 +/* 09B0A0 7F066530 46064282 */ mul.s $f10, $f8, $f6 +/* 09B0A4 7F066534 E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 09B0A8 7F066538 0FC160F3 */ jal sinf +/* 09B0AC 7F06653C C7AC0178 */ lwc1 $f12, 0x178($sp) +/* 09B0B0 7F066540 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B0B4 7F066544 44812000 */ mtc1 $at, $f4 +/* 09B0B8 7F066548 8E020024 */ lw $v0, 0x24($s0) +/* 09B0BC 7F06654C 46040202 */ mul.s $f8, $f0, $f4 +/* 09B0C0 7F066550 E60800B4 */ swc1 $f8, 0xb4($s0) +.Ljp7F066554: +/* 09B0C4 7F066554 24010009 */ li $at, 9 +/* 09B0C8 7F066558 54410018 */ bnel $v0, $at, .Ljp7F0665BC +/* 09B0CC 7F06655C 2401000A */ li $at, 10 +/* 09B0D0 7F066560 0FC17375 */ jal get_ptr_item_statistics +/* 09B0D4 7F066564 02202025 */ move $a0, $s1 +/* 09B0D8 7F066568 8E0E002C */ lw $t6, 0x2c($s0) +/* 09B0DC 7F06656C 844F0020 */ lh $t7, 0x20($v0) +/* 09B0E0 7F066570 02202025 */ move $a0, $s1 +/* 09B0E4 7F066574 01CF082A */ slt $at, $t6, $t7 +/* 09B0E8 7F066578 14200005 */ bnez $at, .Ljp7F066590 +/* 09B0EC 7F06657C 00000000 */ nop +/* 09B0F0 7F066580 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B0F4 7F066584 3C050020 */ lui $a1, 0x20 +/* 09B0F8 7F066588 50400008 */ beql $v0, $zero, .Ljp7F0665AC +/* 09B0FC 7F06658C AE000024 */ sw $zero, 0x24($s0) +.Ljp7F066590: +/* 09B100 7F066590 0FC1A658 */ jal get_ammo_in_hands_weapon +/* 09B104 7F066594 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B108 7F066598 18400003 */ blez $v0, .Ljp7F0665A8 +/* 09B10C 7F06659C 2402000A */ li $v0, 10 +/* 09B110 7F0665A0 10000005 */ b .Ljp7F0665B8 +/* 09B114 7F0665A4 AE020024 */ sw $v0, 0x24($s0) +.Ljp7F0665A8: +/* 09B118 7F0665A8 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F0665AC: +/* 09B11C 7F0665AC AE000020 */ sw $zero, 0x20($s0) +/* 09B120 7F0665B0 AE00001C */ sw $zero, 0x1c($s0) +/* 09B124 7F0665B4 00001025 */ move $v0, $zero +.Ljp7F0665B8: +/* 09B128 7F0665B8 2401000A */ li $at, 10 +.Ljp7F0665BC: +/* 09B12C 7F0665BC 54410048 */ bnel $v0, $at, .Ljp7F0666E0 +/* 09B130 7F0665C0 2401000B */ li $at, 11 +/* 09B134 7F0665C4 8E030020 */ lw $v1, 0x20($s0) +/* 09B138 7F0665C8 2402000B */ li $v0, 11 +/* 09B13C 7F0665CC 240F0011 */ li $t7, 17 +/* 09B140 7F0665D0 28610010 */ slti $at, $v1, 0x10 +/* 09B144 7F0665D4 50200005 */ beql $at, $zero, .Ljp7F0665EC +/* 09B148 7F0665D8 AE020024 */ sw $v0, 0x24($s0) +/* 09B14C 7F0665DC 8219000F */ lb $t9, 0xf($s0) +/* 09B150 7F0665E0 57200007 */ bnezl $t9, .Ljp7F066600 +/* 09B154 7F0665E4 44833000 */ mtc1 $v1, $f6 +/* 09B158 7F0665E8 AE020024 */ sw $v0, 0x24($s0) +.Ljp7F0665EC: +/* 09B15C 7F0665EC AE0F0040 */ sw $t7, 0x40($s0) +/* 09B160 7F0665F0 AE000020 */ sw $zero, 0x20($s0) +/* 09B164 7F0665F4 10000039 */ b .Ljp7F0666DC +/* 09B168 7F0665F8 AE00001C */ sw $zero, 0x1c($s0) +/* 09B16C 7F0665FC 44833000 */ mtc1 $v1, $f6 +.Ljp7F066600: +/* 09B170 7F066600 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 09B174 7F066604 44811000 */ mtc1 $at, $f2 +/* 09B178 7F066608 468032A0 */ cvt.s.w $f10, $f6 +/* 09B17C 7F06660C 3C018005 */ lui $at, %hi(D_80054290) # $at, 0x8005 +/* 09B180 7F066610 C42442C0 */ lwc1 $f4, %lo(D_80054290)($at) +/* 09B184 7F066614 24180001 */ li $t8, 1 +/* 09B188 7F066618 2605007C */ addiu $a1, $s0, 0x7c +/* 09B18C 7F06661C 46045202 */ mul.s $f8, $f10, $f4 +/* 09B190 7F066620 46024183 */ div.s $f6, $f8, $f2 +/* 09B194 7F066624 E7A6012C */ swc1 $f6, 0x12c($sp) +/* 09B198 7F066628 AE1800BC */ sw $t8, 0xbc($s0) +/* 09B19C 7F06662C 8FB901E0 */ lw $t9, 0x1e0($sp) +/* 09B1A0 7F066630 57200009 */ bnezl $t9, .Ljp7F066658 +/* 09B1A4 7F066634 44802000 */ mtc1 $zero, $f4 +/* 09B1A8 7F066638 44805000 */ mtc1 $zero, $f10 +/* 09B1AC 7F06663C AFA50034 */ sw $a1, 0x34($sp) +/* 09B1B0 7F066640 46025303 */ div.s $f12, $f10, $f2 +/* 09B1B4 7F066644 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 09B1B8 7F066648 E7AC0040 */ swc1 $f12, 0x40($sp) +/* 09B1BC 7F06664C 10000008 */ b .Ljp7F066670 +/* 09B1C0 7F066650 C7AC012C */ lwc1 $f12, 0x12c($sp) +/* 09B1C4 7F066654 44802000 */ mtc1 $zero, $f4 +.Ljp7F066658: +/* 09B1C8 7F066658 AFA50034 */ sw $a1, 0x34($sp) +/* 09B1CC 7F06665C 46022003 */ div.s $f0, $f4, $f2 +/* 09B1D0 7F066660 46000307 */ neg.s $f12, $f0 +/* 09B1D4 7F066664 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 09B1D8 7F066668 E7A00040 */ swc1 $f0, 0x40($sp) +/* 09B1DC 7F06666C C7AC012C */ lwc1 $f12, 0x12c($sp) +.Ljp7F066670: +/* 09B1E0 7F066670 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B1E4 7F066674 27A50130 */ addiu $a1, $sp, 0x130 +/* 09B1E8 7F066678 27A40130 */ addiu $a0, $sp, 0x130 +/* 09B1EC 7F06667C 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 09B1F0 7F066680 8FA50034 */ lw $a1, 0x34($sp) +/* 09B1F4 7F066684 0FC160F3 */ jal sinf +/* 09B1F8 7F066688 C7AC0040 */ lwc1 $f12, 0x40($sp) +/* 09B1FC 7F06668C 44804000 */ mtc1 $zero, $f8 +/* 09B200 7F066690 02202025 */ move $a0, $s1 +/* 09B204 7F066694 0FC193C4 */ jal sub_GAME_7F0649AC +/* 09B208 7F066698 E60800AC */ swc1 $f8, 0xac($s0) +/* 09B20C 7F06669C E7A00044 */ swc1 $f0, 0x44($sp) +/* 09B210 7F0666A0 0FC160F0 */ jal cosf +/* 09B214 7F0666A4 C7AC012C */ lwc1 $f12, 0x12c($sp) +/* 09B218 7F0666A8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B21C 7F0666AC 44813000 */ mtc1 $at, $f6 +/* 09B220 7F0666B0 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 09B224 7F0666B4 46003281 */ sub.s $f10, $f6, $f0 +/* 09B228 7F0666B8 46045202 */ mul.s $f8, $f10, $f4 +/* 09B22C 7F0666BC E60800B0 */ swc1 $f8, 0xb0($s0) +/* 09B230 7F0666C0 0FC160F3 */ jal sinf +/* 09B234 7F0666C4 C7AC012C */ lwc1 $f12, 0x12c($sp) +/* 09B238 7F0666C8 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B23C 7F0666CC 44813000 */ mtc1 $at, $f6 +/* 09B240 7F0666D0 8E020024 */ lw $v0, 0x24($s0) +/* 09B244 7F0666D4 46060282 */ mul.s $f10, $f0, $f6 +/* 09B248 7F0666D8 E60A00B4 */ swc1 $f10, 0xb4($s0) +.Ljp7F0666DC: +/* 09B24C 7F0666DC 2401000B */ li $at, 11 +.Ljp7F0666E0: +/* 09B250 7F0666E0 5441006B */ bnel $v0, $at, .Ljp7F066890 +/* 09B254 7F0666E4 2401000C */ li $at, 12 +/* 09B258 7F0666E8 8E0E001C */ lw $t6, 0x1c($s0) +/* 09B25C 7F0666EC 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 +/* 09B260 7F0666F0 55C0002B */ bnezl $t6, .Ljp7F0667A0 +/* 09B264 7F0666F4 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B268 7F0666F8 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) +/* 09B26C 7F0666FC 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09B270 7F066700 59E00027 */ blezl $t7, .Ljp7F0667A0 +/* 09B274 7F066704 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B278 7F066708 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09B27C 7F06670C 24010001 */ li $at, 1 +/* 09B280 7F066710 8F190000 */ lw $t9, ($t8) +/* 09B284 7F066714 53210022 */ beql $t9, $at, .Ljp7F0667A0 +/* 09B288 7F066718 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B28C 7F06671C 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 09B290 7F066720 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B294 7F066724 1040001D */ beqz $v0, weapon_reload_none_sfx +/* 09B298 7F066728 3C0E8003 */ lui $t6, %hi(disable_player_pickups_flag) # $t6, 0x8003 +/* 09B29C 7F06672C 8DCE64F4 */ lw $t6, %lo(disable_player_pickups_flag)($t6) +/* 09B2A0 7F066730 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 09B2A4 7F066734 55C0001A */ bnezl $t6, .Ljp7F0667A0 +/* 09B2A8 7F066738 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B2AC 7F06673C 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 09B2B0 7F066740 2A21003E */ slti $at, $s1, 0x3e +/* 09B2B4 7F066744 8DF800D8 */ lw $t8, 0xd8($t7) +/* 09B2B8 7F066748 57000015 */ bnezl $t8, .Ljp7F0667A0 +/* 09B2BC 7F06674C 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B2C0 7F066750 14200005 */ bnez $at, .Ljp7F066768 +/* 09B2C4 7F066754 24010058 */ li $at, 88 +/* 09B2C8 7F066758 52210011 */ beql $s1, $at, .Ljp7F0667A0 +/* 09B2CC 7F06675C 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B2D0 7F066760 10000009 */ b weapon_reload_gun_sfx +/* 09B2D4 7F066764 00000000 */ nop +.Ljp7F066768: +/* 09B2D8 7F066768 2E21003E */ sltiu $at, $s1, 0x3e +/* 09B2DC 7F06676C 10200006 */ beqz $at, weapon_reload_gun_sfx +/* 09B2E0 7F066770 0011C880 */ sll $t9, $s1, 2 +/* 09B2E4 7F066774 3C018005 */ lui $at, %hi(jpt_80054294) +/* 09B2E8 7F066778 00390821 */ addu $at, $at, $t9 +/* 09B2EC 7F06677C 8C3942C4 */ lw $t9, %lo(jpt_80054294)($at) +/* 09B2F0 7F066780 03200008 */ jr $t9 +/* 09B2F4 7F066784 00000000 */ nop +weapon_reload_gun_sfx: +/* 09B2F8 7F066788 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09B2FC 7F06678C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09B300 7F066790 24050032 */ li $a1, 50 +/* 09B304 7F066794 0C002386 */ jal play_sfx_a1 +/* 09B308 7F066798 00003025 */ move $a2, $zero +weapon_reload_none_sfx: +/* 09B30C 7F06679C 8E0E0020 */ lw $t6, 0x20($s0) +.Ljp7F0667A0: +/* 09B310 7F0667A0 8E0F0040 */ lw $t7, 0x40($s0) +/* 09B314 7F0667A4 01CF082A */ slt $at, $t6, $t7 +/* 09B318 7F0667A8 1420000A */ bnez $at, .Ljp7F0667D4 +/* 09B31C 7F0667AC 240E0001 */ li $t6, 1 +/* 09B320 7F0667B0 8E18001C */ lw $t8, 0x1c($s0) +/* 09B324 7F0667B4 2402000C */ li $v0, 12 +/* 09B328 7F0667B8 2B010002 */ slti $at, $t8, 2 +/* 09B32C 7F0667BC 54200006 */ bnezl $at, .Ljp7F0667D8 +/* 09B330 7F0667C0 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09B334 7F0667C4 AE020024 */ sw $v0, 0x24($s0) +/* 09B338 7F0667C8 AE000020 */ sw $zero, 0x20($s0) +/* 09B33C 7F0667CC 1000002F */ b .Ljp7F06688C +/* 09B340 7F0667D0 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F0667D4: +/* 09B344 7F0667D4 AE0E00BC */ sw $t6, 0xbc($s0) +.Ljp7F0667D8: +/* 09B348 7F0667D8 8FAF01E0 */ lw $t7, 0x1e0($sp) +/* 09B34C 7F0667DC 2605007C */ addiu $a1, $s0, 0x7c +/* 09B350 7F0667E0 55E00007 */ bnezl $t7, .Ljp7F066800 +/* 09B354 7F0667E4 44806000 */ mtc1 $zero, $f12 +/* 09B358 7F0667E8 44806000 */ mtc1 $zero, $f12 +/* 09B35C 7F0667EC 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 09B360 7F0667F0 AFA50034 */ sw $a1, 0x34($sp) +/* 09B364 7F0667F4 10000005 */ b .Ljp7F06680C +/* 09B368 7F0667F8 00000000 */ nop +/* 09B36C 7F0667FC 44806000 */ mtc1 $zero, $f12 +.Ljp7F066800: +/* 09B370 7F066800 AFA50034 */ sw $a1, 0x34($sp) +/* 09B374 7F066804 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 09B378 7F066808 46006307 */ neg.s $f12, $f12 +.Ljp7F06680C: +/* 09B37C 7F06680C 3C018005 */ lui $at, %hi(D_8005438C) # $at, 0x8005 +/* 09B380 7F066810 C42C43BC */ lwc1 $f12, %lo(D_8005438C)($at) +/* 09B384 7F066814 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B388 7F066818 27A500E8 */ addiu $a1, $sp, 0xe8 +/* 09B38C 7F06681C 27A400E8 */ addiu $a0, $sp, 0xe8 +/* 09B390 7F066820 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 09B394 7F066824 8FA50034 */ lw $a1, 0x34($sp) +/* 09B398 7F066828 44806000 */ mtc1 $zero, $f12 +/* 09B39C 7F06682C 0FC160F3 */ jal sinf +/* 09B3A0 7F066830 00000000 */ nop +/* 09B3A4 7F066834 44802000 */ mtc1 $zero, $f4 +/* 09B3A8 7F066838 02202025 */ move $a0, $s1 +/* 09B3AC 7F06683C 0FC193C4 */ jal sub_GAME_7F0649AC +/* 09B3B0 7F066840 E60400AC */ swc1 $f4, 0xac($s0) +/* 09B3B4 7F066844 3C018005 */ lui $at, %hi(D_80054390) # $at, 0x8005 +/* 09B3B8 7F066848 C42C43C0 */ lwc1 $f12, %lo(D_80054390)($at) +/* 09B3BC 7F06684C 0FC160F0 */ jal cosf +/* 09B3C0 7F066850 E7A00044 */ swc1 $f0, 0x44($sp) +/* 09B3C4 7F066854 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B3C8 7F066858 44814000 */ mtc1 $at, $f8 +/* 09B3CC 7F06685C C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 09B3D0 7F066860 3C018005 */ lui $at, %hi(D_80054394) # $at, 0x8005 +/* 09B3D4 7F066864 46004181 */ sub.s $f6, $f8, $f0 +/* 09B3D8 7F066868 460A3102 */ mul.s $f4, $f6, $f10 +/* 09B3DC 7F06686C E60400B0 */ swc1 $f4, 0xb0($s0) +/* 09B3E0 7F066870 0FC160F3 */ jal sinf +/* 09B3E4 7F066874 C42C43C4 */ lwc1 $f12, %lo(D_80054394)($at) +/* 09B3E8 7F066878 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B3EC 7F06687C 44814000 */ mtc1 $at, $f8 +/* 09B3F0 7F066880 8E020024 */ lw $v0, 0x24($s0) +/* 09B3F4 7F066884 46080182 */ mul.s $f6, $f0, $f8 +/* 09B3F8 7F066888 E60600B4 */ swc1 $f6, 0xb4($s0) +.Ljp7F06688C: +/* 09B3FC 7F06688C 2401000C */ li $at, 12 +.Ljp7F066890: +/* 09B400 7F066890 5441005A */ bnel $v0, $at, .Ljp7F0669FC +/* 09B404 7F066894 2401000E */ li $at, 14 +/* 09B408 7F066898 8E18001C */ lw $t8, 0x1c($s0) +/* 09B40C 7F06689C 57000007 */ bnezl $t8, .Ljp7F0668BC +/* 09B410 7F0668A0 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B414 7F0668A4 0FC193CF */ jal sub_GAME_7F0649D8 +/* 09B418 7F0668A8 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B41C 7F0668AC 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 09B420 7F0668B0 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 09B424 7F0668B4 AF200FC8 */ sw $zero, 0xfc8($t9) +/* 09B428 7F0668B8 8E0E0020 */ lw $t6, 0x20($s0) +.Ljp7F0668BC: +/* 09B42C 7F0668BC 29C10017 */ slti $at, $t6, 0x17 +/* 09B430 7F0668C0 5020000E */ beql $at, $zero, .Ljp7F0668FC +/* 09B434 7F0668C4 AE000024 */ sw $zero, 0x24($s0) +/* 09B438 7F0668C8 0FC1755A */ jal get_ptr_weapon_model_header_line +/* 09B43C 7F0668CC 02202025 */ move $a0, $s1 +/* 09B440 7F0668D0 10400009 */ beqz $v0, .Ljp7F0668F8 +/* 09B444 7F0668D4 02202025 */ move $a0, $s1 +/* 09B448 7F0668D8 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B44C 7F0668DC 24050800 */ li $a1, 2048 +/* 09B450 7F0668E0 10400005 */ beqz $v0, .Ljp7F0668F8 +/* 09B454 7F0668E4 02202025 */ move $a0, $s1 +/* 09B458 7F0668E8 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B45C 7F0668EC 24052000 */ li $a1, 8192 +/* 09B460 7F0668F0 50400007 */ beql $v0, $zero, .Ljp7F066910 +/* 09B464 7F0668F4 8E0F0020 */ lw $t7, 0x20($s0) +.Ljp7F0668F8: +/* 09B468 7F0668F8 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F0668FC: +/* 09B46C 7F0668FC AE000020 */ sw $zero, 0x20($s0) +/* 09B470 7F066900 AE00001C */ sw $zero, 0x1c($s0) +/* 09B474 7F066904 1000003C */ b .Ljp7F0669F8 +/* 09B478 7F066908 00001025 */ move $v0, $zero +/* 09B47C 7F06690C 8E0F0020 */ lw $t7, 0x20($s0) +.Ljp7F066910: +/* 09B480 7F066910 24180017 */ li $t8, 23 +/* 09B484 7F066914 3C0141B8 */ li $at, 0x41B80000 # 23.000000 +/* 09B488 7F066918 030FC823 */ subu $t9, $t8, $t7 +/* 09B48C 7F06691C 44995000 */ mtc1 $t9, $f10 +/* 09B490 7F066920 44811000 */ mtc1 $at, $f2 +/* 09B494 7F066924 3C018005 */ lui $at, %hi(D_80054398) # $at, 0x8005 +/* 09B498 7F066928 46805120 */ cvt.s.w $f4, $f10 +/* 09B49C 7F06692C C42843C8 */ lwc1 $f8, %lo(D_80054398)($at) +/* 09B4A0 7F066930 240E0001 */ li $t6, 1 +/* 09B4A4 7F066934 2605007C */ addiu $a1, $s0, 0x7c +/* 09B4A8 7F066938 46082182 */ mul.s $f6, $f4, $f8 +/* 09B4AC 7F06693C 46023283 */ div.s $f10, $f6, $f2 +/* 09B4B0 7F066940 E7AA009C */ swc1 $f10, 0x9c($sp) +/* 09B4B4 7F066944 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09B4B8 7F066948 8FB801E0 */ lw $t8, 0x1e0($sp) +/* 09B4BC 7F06694C 57000009 */ bnezl $t8, .Ljp7F066974 +/* 09B4C0 7F066950 44804000 */ mtc1 $zero, $f8 +/* 09B4C4 7F066954 44802000 */ mtc1 $zero, $f4 +/* 09B4C8 7F066958 AFA50034 */ sw $a1, 0x34($sp) +/* 09B4CC 7F06695C 46022303 */ div.s $f12, $f4, $f2 +/* 09B4D0 7F066960 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 09B4D4 7F066964 E7AC0040 */ swc1 $f12, 0x40($sp) +/* 09B4D8 7F066968 10000008 */ b .Ljp7F06698C +/* 09B4DC 7F06696C C7AC009C */ lwc1 $f12, 0x9c($sp) +/* 09B4E0 7F066970 44804000 */ mtc1 $zero, $f8 +.Ljp7F066974: +/* 09B4E4 7F066974 AFA50034 */ sw $a1, 0x34($sp) +/* 09B4E8 7F066978 46024003 */ div.s $f0, $f8, $f2 +/* 09B4EC 7F06697C 46000307 */ neg.s $f12, $f0 +/* 09B4F0 7F066980 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 09B4F4 7F066984 E7A00040 */ swc1 $f0, 0x40($sp) +/* 09B4F8 7F066988 C7AC009C */ lwc1 $f12, 0x9c($sp) +.Ljp7F06698C: +/* 09B4FC 7F06698C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B500 7F066990 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 09B504 7F066994 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 09B508 7F066998 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 09B50C 7F06699C 8FA50034 */ lw $a1, 0x34($sp) +/* 09B510 7F0669A0 0FC160F3 */ jal sinf +/* 09B514 7F0669A4 C7AC0040 */ lwc1 $f12, 0x40($sp) +/* 09B518 7F0669A8 44803000 */ mtc1 $zero, $f6 +/* 09B51C 7F0669AC 02202025 */ move $a0, $s1 +/* 09B520 7F0669B0 0FC193C4 */ jal sub_GAME_7F0649AC +/* 09B524 7F0669B4 E60600AC */ swc1 $f6, 0xac($s0) +/* 09B528 7F0669B8 E7A00044 */ swc1 $f0, 0x44($sp) +/* 09B52C 7F0669BC 0FC160F0 */ jal cosf +/* 09B530 7F0669C0 C7AC009C */ lwc1 $f12, 0x9c($sp) +/* 09B534 7F0669C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B538 7F0669C8 44815000 */ mtc1 $at, $f10 +/* 09B53C 7F0669CC C7A80044 */ lwc1 $f8, 0x44($sp) +/* 09B540 7F0669D0 46005101 */ sub.s $f4, $f10, $f0 +/* 09B544 7F0669D4 46082182 */ mul.s $f6, $f4, $f8 +/* 09B548 7F0669D8 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 09B54C 7F0669DC 0FC160F3 */ jal sinf +/* 09B550 7F0669E0 C7AC009C */ lwc1 $f12, 0x9c($sp) +/* 09B554 7F0669E4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B558 7F0669E8 44815000 */ mtc1 $at, $f10 +/* 09B55C 7F0669EC 8E020024 */ lw $v0, 0x24($s0) +/* 09B560 7F0669F0 460A0102 */ mul.s $f4, $f0, $f10 +/* 09B564 7F0669F4 E60400B4 */ swc1 $f4, 0xb4($s0) +.Ljp7F0669F8: +/* 09B568 7F0669F8 2401000E */ li $at, 14 +.Ljp7F0669FC: +/* 09B56C 7F0669FC 5441002E */ bnel $v0, $at, .Ljp7F066AB8 +/* 09B570 7F066A00 2401000F */ li $at, 15 +/* 09B574 7F066A04 8E030020 */ lw $v1, 0x20($s0) +/* 09B578 7F066A08 2402000F */ li $v0, 15 +/* 09B57C 7F066A0C 28610010 */ slti $at, $v1, 0x10 +/* 09B580 7F066A10 50200005 */ beql $at, $zero, .Ljp7F066A28 +/* 09B584 7F066A14 AE020024 */ sw $v0, 0x24($s0) +/* 09B588 7F066A18 820F000F */ lb $t7, 0xf($s0) +/* 09B58C 7F066A1C 55E00006 */ bnezl $t7, .Ljp7F066A38 +/* 09B590 7F066A20 44834000 */ mtc1 $v1, $f8 +/* 09B594 7F066A24 AE020024 */ sw $v0, 0x24($s0) +.Ljp7F066A28: +/* 09B598 7F066A28 AE000020 */ sw $zero, 0x20($s0) +/* 09B59C 7F066A2C 10000021 */ b .Ljp7F066AB4 +/* 09B5A0 7F066A30 AE00001C */ sw $zero, 0x1c($s0) +/* 09B5A4 7F066A34 44834000 */ mtc1 $v1, $f8 +.Ljp7F066A38: +/* 09B5A8 7F066A38 3C018005 */ lui $at, %hi(D_8005439C) # $at, 0x8005 +/* 09B5AC 7F066A3C C42A43CC */ lwc1 $f10, %lo(D_8005439C)($at) +/* 09B5B0 7F066A40 468041A0 */ cvt.s.w $f6, $f8 +/* 09B5B4 7F066A44 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 09B5B8 7F066A48 44814000 */ mtc1 $at, $f8 +/* 09B5BC 7F066A4C 240E0001 */ li $t6, 1 +/* 09B5C0 7F066A50 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09B5C4 7F066A54 2605007C */ addiu $a1, $s0, 0x7c +/* 09B5C8 7F066A58 460A3102 */ mul.s $f4, $f6, $f10 +/* 09B5CC 7F066A5C 46082303 */ div.s $f12, $f4, $f8 +/* 09B5D0 7F066A60 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B5D4 7F066A64 E7AC0098 */ swc1 $f12, 0x98($sp) +/* 09B5D8 7F066A68 44803000 */ mtc1 $zero, $f6 +/* 09B5DC 7F066A6C 00000000 */ nop +/* 09B5E0 7F066A70 E60600AC */ swc1 $f6, 0xac($s0) +/* 09B5E4 7F066A74 0FC160F0 */ jal cosf +/* 09B5E8 7F066A78 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 09B5EC 7F066A7C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B5F0 7F066A80 44815000 */ mtc1 $at, $f10 +/* 09B5F4 7F066A84 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09B5F8 7F066A88 44814000 */ mtc1 $at, $f8 +/* 09B5FC 7F066A8C 46005101 */ sub.s $f4, $f10, $f0 +/* 09B600 7F066A90 46082182 */ mul.s $f6, $f4, $f8 +/* 09B604 7F066A94 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 09B608 7F066A98 0FC160F3 */ jal sinf +/* 09B60C 7F066A9C C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 09B610 7F066AA0 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B614 7F066AA4 44815000 */ mtc1 $at, $f10 +/* 09B618 7F066AA8 8E020024 */ lw $v0, 0x24($s0) +/* 09B61C 7F066AAC 460A0102 */ mul.s $f4, $f0, $f10 +/* 09B620 7F066AB0 E60400B4 */ swc1 $f4, 0xb4($s0) +.Ljp7F066AB4: +/* 09B624 7F066AB4 2401000F */ li $at, 15 +.Ljp7F066AB8: +/* 09B628 7F066AB8 54410031 */ bnel $v0, $at, .Ljp7F066B80 +/* 09B62C 7F066ABC 24010010 */ li $at, 16 +/* 09B630 7F066AC0 8E18001C */ lw $t8, 0x1c($s0) +/* 09B634 7F066AC4 53000006 */ beql $t8, $zero, .Ljp7F066AE0 +/* 09B638 7F066AC8 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B63C 7F066ACC 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 09B640 7F066AD0 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B644 7F066AD4 14400007 */ bnez $v0, .Ljp7F066AF4 +/* 09B648 7F066AD8 00000000 */ nop +/* 09B64C 7F066ADC 8FA401E0 */ lw $a0, 0x1e0($sp) +.Ljp7F066AE0: +/* 09B650 7F066AE0 0FC177EB */ jal sub_GAME_7F05DA8C +/* 09B654 7F066AE4 8E05003C */ lw $a1, 0x3c($s0) +/* 09B658 7F066AE8 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 09B65C 7F066AEC 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B660 7F066AF0 00408825 */ move $s1, $v0 +.Ljp7F066AF4: +/* 09B664 7F066AF4 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 09B668 7F066AF8 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B66C 7F066AFC 10400006 */ beqz $v0, .Ljp7F066B18 +/* 09B670 7F066B00 24190001 */ li $t9, 1 +/* 09B674 7F066B04 24020010 */ li $v0, 16 +/* 09B678 7F066B08 AE020024 */ sw $v0, 0x24($s0) +/* 09B67C 7F066B0C AE000020 */ sw $zero, 0x20($s0) +/* 09B680 7F066B10 1000001A */ b .Ljp7F066B7C +/* 09B684 7F066B14 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F066B18: +/* 09B688 7F066B18 AE1900BC */ sw $t9, 0xbc($s0) +/* 09B68C 7F066B1C 3C018005 */ lui $at, %hi(D_800543A0) # $at, 0x8005 +/* 09B690 7F066B20 C42C43D0 */ lwc1 $f12, %lo(D_800543A0)($at) +/* 09B694 7F066B24 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B698 7F066B28 2605007C */ addiu $a1, $s0, 0x7c +/* 09B69C 7F066B2C 44804000 */ mtc1 $zero, $f8 +/* 09B6A0 7F066B30 3C018005 */ lui $at, %hi(D_800543A4) # $at, 0x8005 +/* 09B6A4 7F066B34 E60800AC */ swc1 $f8, 0xac($s0) +/* 09B6A8 7F066B38 0FC160F0 */ jal cosf +/* 09B6AC 7F066B3C C42C43D4 */ lwc1 $f12, %lo(D_800543A4)($at) +/* 09B6B0 7F066B40 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B6B4 7F066B44 44813000 */ mtc1 $at, $f6 +/* 09B6B8 7F066B48 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09B6BC 7F066B4C 44812000 */ mtc1 $at, $f4 +/* 09B6C0 7F066B50 46003281 */ sub.s $f10, $f6, $f0 +/* 09B6C4 7F066B54 3C018005 */ lui $at, %hi(D_800543A8) # $at, 0x8005 +/* 09B6C8 7F066B58 46045202 */ mul.s $f8, $f10, $f4 +/* 09B6CC 7F066B5C E60800B0 */ swc1 $f8, 0xb0($s0) +/* 09B6D0 7F066B60 0FC160F3 */ jal sinf +/* 09B6D4 7F066B64 C42C43D8 */ lwc1 $f12, %lo(D_800543A8)($at) +/* 09B6D8 7F066B68 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B6DC 7F066B6C 44813000 */ mtc1 $at, $f6 +/* 09B6E0 7F066B70 8E020024 */ lw $v0, 0x24($s0) +/* 09B6E4 7F066B74 46060282 */ mul.s $f10, $f0, $f6 +/* 09B6E8 7F066B78 E60A00B4 */ swc1 $f10, 0xb4($s0) +.Ljp7F066B7C: +/* 09B6EC 7F066B7C 24010010 */ li $at, 16 +.Ljp7F066B80: +/* 09B6F0 7F066B80 5441004C */ bnel $v0, $at, .Ljp7F066CB4 +/* 09B6F4 7F066B84 24010011 */ li $at, 17 +/* 09B6F8 7F066B88 8E0E001C */ lw $t6, 0x1c($s0) +/* 09B6FC 7F066B8C 2A210021 */ slti $at, $s1, 0x21 +/* 09B700 7F066B90 55C00010 */ bnezl $t6, .Ljp7F066BD4 +/* 09B704 7F066B94 8E0F0020 */ lw $t7, 0x20($s0) +/* 09B708 7F066B98 5020000E */ beql $at, $zero, .Ljp7F066BD4 +/* 09B70C 7F066B9C 8E0F0020 */ lw $t7, 0x20($s0) +/* 09B710 7F066BA0 0FC26C01 */ jal get_num_players +/* 09B714 7F066BA4 00000000 */ nop +/* 09B718 7F066BA8 28410002 */ slti $at, $v0, 2 +/* 09B71C 7F066BAC 14200003 */ bnez $at, .Ljp7F066BBC +/* 09B720 7F066BB0 00000000 */ nop +/* 09B724 7F066BB4 0FC26FCE */ jal sub_GAME_7F09B398 +/* 09B728 7F066BB8 8FA401E0 */ lw $a0, 0x1e0($sp) +.Ljp7F066BBC: +/* 09B72C 7F066BBC 0FC193CF */ jal sub_GAME_7F0649D8 +/* 09B730 7F066BC0 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B734 7F066BC4 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09B738 7F066BC8 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09B73C 7F066BCC AF000FC8 */ sw $zero, 0xfc8($t8) +/* 09B740 7F066BD0 8E0F0020 */ lw $t7, 0x20($s0) +.Ljp7F066BD4: +/* 09B744 7F066BD4 29E10017 */ slti $at, $t7, 0x17 +/* 09B748 7F066BD8 5020000E */ beql $at, $zero, .Ljp7F066C14 +/* 09B74C 7F066BDC AE000024 */ sw $zero, 0x24($s0) +/* 09B750 7F066BE0 0FC1755A */ jal get_ptr_weapon_model_header_line +/* 09B754 7F066BE4 02202025 */ move $a0, $s1 +/* 09B758 7F066BE8 10400009 */ beqz $v0, .Ljp7F066C10 +/* 09B75C 7F066BEC 02202025 */ move $a0, $s1 +/* 09B760 7F066BF0 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B764 7F066BF4 24050800 */ li $a1, 2048 +/* 09B768 7F066BF8 10400005 */ beqz $v0, .Ljp7F066C10 +/* 09B76C 7F066BFC 02202025 */ move $a0, $s1 +/* 09B770 7F066C00 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B774 7F066C04 24052000 */ li $a1, 8192 +/* 09B778 7F066C08 50400007 */ beql $v0, $zero, .Ljp7F066C28 +/* 09B77C 7F066C0C 8E190020 */ lw $t9, 0x20($s0) +.Ljp7F066C10: +/* 09B780 7F066C10 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F066C14: +/* 09B784 7F066C14 AE000020 */ sw $zero, 0x20($s0) +/* 09B788 7F066C18 AE00001C */ sw $zero, 0x1c($s0) +/* 09B78C 7F066C1C 10000024 */ b .Ljp7F066CB0 +/* 09B790 7F066C20 00001025 */ move $v0, $zero +/* 09B794 7F066C24 8E190020 */ lw $t9, 0x20($s0) +.Ljp7F066C28: +/* 09B798 7F066C28 240E0017 */ li $t6, 23 +/* 09B79C 7F066C2C 3C018005 */ lui $at, %hi(D_800543AC) # $at, 0x8005 +/* 09B7A0 7F066C30 01D9C023 */ subu $t8, $t6, $t9 +/* 09B7A4 7F066C34 44982000 */ mtc1 $t8, $f4 +/* 09B7A8 7F066C38 C42643DC */ lwc1 $f6, %lo(D_800543AC)($at) +/* 09B7AC 7F066C3C 3C0141B8 */ li $at, 0x41B80000 # 23.000000 +/* 09B7B0 7F066C40 46802220 */ cvt.s.w $f8, $f4 +/* 09B7B4 7F066C44 44812000 */ mtc1 $at, $f4 +/* 09B7B8 7F066C48 240F0001 */ li $t7, 1 +/* 09B7BC 7F066C4C AE0F00BC */ sw $t7, 0xbc($s0) +/* 09B7C0 7F066C50 2605007C */ addiu $a1, $s0, 0x7c +/* 09B7C4 7F066C54 46064282 */ mul.s $f10, $f8, $f6 +/* 09B7C8 7F066C58 46045303 */ div.s $f12, $f10, $f4 +/* 09B7CC 7F066C5C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B7D0 7F066C60 E7AC0090 */ swc1 $f12, 0x90($sp) +/* 09B7D4 7F066C64 44804000 */ mtc1 $zero, $f8 +/* 09B7D8 7F066C68 00000000 */ nop +/* 09B7DC 7F066C6C E60800AC */ swc1 $f8, 0xac($s0) +/* 09B7E0 7F066C70 0FC160F0 */ jal cosf +/* 09B7E4 7F066C74 C7AC0090 */ lwc1 $f12, 0x90($sp) +/* 09B7E8 7F066C78 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B7EC 7F066C7C 44813000 */ mtc1 $at, $f6 +/* 09B7F0 7F066C80 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09B7F4 7F066C84 44812000 */ mtc1 $at, $f4 +/* 09B7F8 7F066C88 46003281 */ sub.s $f10, $f6, $f0 +/* 09B7FC 7F066C8C 46045202 */ mul.s $f8, $f10, $f4 +/* 09B800 7F066C90 E60800B0 */ swc1 $f8, 0xb0($s0) +/* 09B804 7F066C94 0FC160F3 */ jal sinf +/* 09B808 7F066C98 C7AC0090 */ lwc1 $f12, 0x90($sp) +/* 09B80C 7F066C9C 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B810 7F066CA0 44813000 */ mtc1 $at, $f6 +/* 09B814 7F066CA4 8E020024 */ lw $v0, 0x24($s0) +/* 09B818 7F066CA8 46060282 */ mul.s $f10, $f0, $f6 +/* 09B81C 7F066CAC E60A00B4 */ swc1 $f10, 0xb4($s0) +.Ljp7F066CB0: +/* 09B820 7F066CB0 24010011 */ li $at, 17 +.Ljp7F066CB4: +/* 09B824 7F066CB4 1041000B */ beq $v0, $at, .Ljp7F066CE4 +/* 09B828 7F066CB8 24010012 */ li $at, 18 +/* 09B82C 7F066CBC 10410009 */ beq $v0, $at, .Ljp7F066CE4 +/* 09B830 7F066CC0 24040013 */ li $a0, 19 +/* 09B834 7F066CC4 10820007 */ beq $a0, $v0, .Ljp7F066CE4 +/* 09B838 7F066CC8 24010014 */ li $at, 20 +/* 09B83C 7F066CCC 10410005 */ beq $v0, $at, .Ljp7F066CE4 +/* 09B840 7F066CD0 24010015 */ li $at, 21 +/* 09B844 7F066CD4 10410003 */ beq $v0, $at, .Ljp7F066CE4 +/* 09B848 7F066CD8 24010016 */ li $at, 22 +/* 09B84C 7F066CDC 54410056 */ bnel $v0, $at, .Ljp7F066E38 +/* 09B850 7F066CE0 2401001E */ li $at, 30 +.Ljp7F066CE4: +/* 09B854 7F066CE4 8E030020 */ lw $v1, 0x20($s0) +/* 09B858 7F066CE8 260E007C */ addiu $t6, $s0, 0x7c +/* 09B85C 7F066CEC 24010011 */ li $at, 17 +/* 09B860 7F066CF0 44832000 */ mtc1 $v1, $f4 +/* 09B864 7F066CF4 24040013 */ li $a0, 19 +/* 09B868 7F066CF8 AFAE0034 */ sw $t6, 0x34($sp) +/* 09B86C 7F066CFC 46802220 */ cvt.s.w $f8, $f4 +/* 09B870 7F066D00 10410003 */ beq $v0, $at, .Ljp7F066D10 +/* 09B874 7F066D04 E7A8008C */ swc1 $f8, 0x8c($sp) +/* 09B878 7F066D08 24010014 */ li $at, 20 +/* 09B87C 7F066D0C 1441001E */ bne $v0, $at, .Ljp7F066D88 +.Ljp7F066D10: +/* 09B880 7F066D10 28610010 */ slti $at, $v1, 0x10 +/* 09B884 7F066D14 1420001C */ bnez $at, .Ljp7F066D88 +/* 09B888 7F066D18 3C188003 */ lui $t8, %hi(D_80035E94) # $t8, 0x8003 +/* 09B88C 7F066D1C 27185ED4 */ addiu $t8, %lo(D_80035E94) # addiu $t8, $t8, 0x5ed4 +/* 09B890 7F066D20 8F010000 */ lw $at, ($t8) +/* 09B894 7F066D24 27B90080 */ addiu $t9, $sp, 0x80 +/* 09B898 7F066D28 AF210000 */ sw $at, ($t9) +/* 09B89C 7F066D2C 97010004 */ lhu $at, 4($t8) +/* 09B8A0 7F066D30 0C002918 */ jal get_random_value +/* 09B8A4 7F066D34 A7210004 */ sh $at, 4($t9) +/* 09B8A8 7F066D38 24010003 */ li $at, 3 +/* 09B8AC 7F066D3C 0041001B */ divu $zero, $v0, $at +/* 09B8B0 7F066D40 00007810 */ mfhi $t7 +/* 09B8B4 7F066D44 000FC840 */ sll $t9, $t7, 1 +/* 09B8B8 7F066D48 03B92821 */ addu $a1, $sp, $t9 +/* 09B8BC 7F066D4C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09B8C0 7F066D50 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09B8C4 7F066D54 84A50080 */ lh $a1, 0x80($a1) +/* 09B8C8 7F066D58 0C002386 */ jal play_sfx_a1 +/* 09B8CC 7F066D5C 00003025 */ move $a2, $zero +/* 09B8D0 7F066D60 8E180024 */ lw $t8, 0x24($s0) +/* 09B8D4 7F066D64 24010011 */ li $at, 17 +/* 09B8D8 7F066D68 24020015 */ li $v0, 21 +/* 09B8DC 7F066D6C 17010005 */ bne $t8, $at, .Ljp7F066D84 +/* 09B8E0 7F066D70 24040013 */ li $a0, 19 +/* 09B8E4 7F066D74 24020012 */ li $v0, 18 +/* 09B8E8 7F066D78 AE020024 */ sw $v0, 0x24($s0) +/* 09B8EC 7F066D7C 10000002 */ b .Ljp7F066D88 +/* 09B8F0 7F066D80 24040013 */ li $a0, 19 +.Ljp7F066D84: +/* 09B8F4 7F066D84 AE020024 */ sw $v0, 0x24($s0) +.Ljp7F066D88: +/* 09B8F8 7F066D88 10820012 */ beq $a0, $v0, .Ljp7F066DD4 +/* 09B8FC 7F066D8C 24010016 */ li $at, 22 +/* 09B900 7F066D90 50410011 */ beql $v0, $at, .Ljp7F066DD8 +/* 09B904 7F066D94 24010011 */ li $at, 17 +/* 09B908 7F066D98 8E190020 */ lw $t9, 0x20($s0) +/* 09B90C 7F066D9C 24180001 */ li $t8, 1 +/* 09B910 7F066DA0 2B210018 */ slti $at, $t9, 0x18 +/* 09B914 7F066DA4 1420000B */ bnez $at, .Ljp7F066DD4 +/* 09B918 7F066DA8 24010011 */ li $at, 17 +/* 09B91C 7F066DAC 10410004 */ beq $v0, $at, .Ljp7F066DC0 +/* 09B920 7F066DB0 A218000C */ sb $t8, 0xc($s0) +/* 09B924 7F066DB4 24010012 */ li $at, 18 +/* 09B928 7F066DB8 54410005 */ bnel $v0, $at, .Ljp7F066DD0 +/* 09B92C 7F066DBC 24020016 */ li $v0, 22 +.Ljp7F066DC0: +/* 09B930 7F066DC0 AE040024 */ sw $a0, 0x24($s0) +/* 09B934 7F066DC4 10000003 */ b .Ljp7F066DD4 +/* 09B938 7F066DC8 00801025 */ move $v0, $a0 +/* 09B93C 7F066DCC 24020016 */ li $v0, 22 +.Ljp7F066DD0: +/* 09B940 7F066DD0 AE020024 */ sw $v0, 0x24($s0) +.Ljp7F066DD4: +/* 09B944 7F066DD4 24010011 */ li $at, 17 +.Ljp7F066DD8: +/* 09B948 7F066DD8 10410005 */ beq $v0, $at, .Ljp7F066DF0 +/* 09B94C 7F066DDC 8FA5008C */ lw $a1, 0x8c($sp) +/* 09B950 7F066DE0 24010012 */ li $at, 18 +/* 09B954 7F066DE4 10410002 */ beq $v0, $at, .Ljp7F066DF0 +/* 09B958 7F066DE8 00000000 */ nop +/* 09B95C 7F066DEC 14820003 */ bne $a0, $v0, .Ljp7F066DFC +.Ljp7F066DF0: +/* 09B960 7F066DF0 3C048003 */ lui $a0, %hi(D_80034CA4) # $a0, 0x8003 +/* 09B964 7F066DF4 10000003 */ b .Ljp7F066E04 +/* 09B968 7F066DF8 24844CE4 */ addiu $a0, %lo(D_80034CA4) # addiu $a0, $a0, 0x4ce4 +.Ljp7F066DFC: +/* 09B96C 7F066DFC 3C048003 */ lui $a0, %hi(D_80034E0C) # $a0, 0x8003 +/* 09B970 7F066E00 24844E4C */ addiu $a0, %lo(D_80034E0C) # addiu $a0, $a0, 0x4e4c +.Ljp7F066E04: +/* 09B974 7F066E04 8FA60034 */ lw $a2, 0x34($sp) +/* 09B978 7F066E08 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09B97C 7F066E0C 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09B980 7F066E10 10400004 */ beqz $v0, .Ljp7F066E24 +/* 09B984 7F066E14 240F0001 */ li $t7, 1 +/* 09B988 7F066E18 AE0F00BC */ sw $t7, 0xbc($s0) +/* 09B98C 7F066E1C 10000005 */ b .Ljp7F066E34 +/* 09B990 7F066E20 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F066E24: +/* 09B994 7F066E24 AE000024 */ sw $zero, 0x24($s0) +/* 09B998 7F066E28 AE000020 */ sw $zero, 0x20($s0) +/* 09B99C 7F066E2C AE00001C */ sw $zero, 0x1c($s0) +/* 09B9A0 7F066E30 00001025 */ move $v0, $zero +.Ljp7F066E34: +/* 09B9A4 7F066E34 2401001E */ li $at, 30 +.Ljp7F066E38: +/* 09B9A8 7F066E38 10410007 */ beq $v0, $at, .Ljp7F066E58 +/* 09B9AC 7F066E3C 2405001F */ li $a1, 31 +/* 09B9B0 7F066E40 10A20005 */ beq $a1, $v0, .Ljp7F066E58 +/* 09B9B4 7F066E44 24010020 */ li $at, 32 +/* 09B9B8 7F066E48 10410003 */ beq $v0, $at, .Ljp7F066E58 +/* 09B9BC 7F066E4C 24040021 */ li $a0, 33 +/* 09B9C0 7F066E50 54820041 */ bnel $a0, $v0, .Ljp7F066F58 +/* 09B9C4 7F066E54 2401001A */ li $at, 26 +.Ljp7F066E58: +/* 09B9C8 7F066E58 8E030020 */ lw $v1, 0x20($s0) +/* 09B9CC 7F066E5C 2401001E */ li $at, 30 +/* 09B9D0 7F066E60 24040021 */ li $a0, 33 +/* 09B9D4 7F066E64 44833000 */ mtc1 $v1, $f6 +/* 09B9D8 7F066E68 2405001F */ li $a1, 31 +/* 09B9DC 7F066E6C 2606007C */ addiu $a2, $s0, 0x7c +/* 09B9E0 7F066E70 10410003 */ beq $v0, $at, .Ljp7F066E80 +/* 09B9E4 7F066E74 46803020 */ cvt.s.w $f0, $f6 +/* 09B9E8 7F066E78 14A20014 */ bne $a1, $v0, .Ljp7F066ECC +/* 09B9EC 7F066E7C 24010020 */ li $at, 32 +.Ljp7F066E80: +/* 09B9F0 7F066E80 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 09B9F4 7F066E84 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 09B9F8 7F066E88 24010011 */ li $at, 17 +/* 09B9FC 7F066E8C 3C0E8003 */ lui $t6, %hi(D_80035778) # $t6, 0x8003 +/* 09BA00 7F066E90 8F382A38 */ lw $t8, 0x2a38($t9) +/* 09BA04 7F066E94 3C0F8003 */ lui $t7, %hi(D_800354A8) # $t7, 0x8003 +/* 09BA08 7F066E98 25CE57B8 */ addiu $t6, %lo(D_80035778) # addiu $t6, $t6, 0x57b8 +/* 09BA0C 7F066E9C 17010003 */ bne $t8, $at, .Ljp7F066EAC +/* 09BA10 7F066EA0 25EF54E8 */ addiu $t7, %lo(D_800354A8) # addiu $t7, $t7, 0x54e8 +/* 09BA14 7F066EA4 10000002 */ b .Ljp7F066EB0 +/* 09BA18 7F066EA8 AFAE0078 */ sw $t6, 0x78($sp) +.Ljp7F066EAC: +/* 09BA1C 7F066EAC AFAF0078 */ sw $t7, 0x78($sp) +.Ljp7F066EB0: +/* 09BA20 7F066EB0 10A2001B */ beq $a1, $v0, .Ljp7F066F20 +/* 09BA24 7F066EB4 2861001E */ slti $at, $v1, 0x1e +/* 09BA28 7F066EB8 14200019 */ bnez $at, .Ljp7F066F20 +/* 09BA2C 7F066EBC 24190001 */ li $t9, 1 +/* 09BA30 7F066EC0 A219000C */ sb $t9, 0xc($s0) +/* 09BA34 7F066EC4 10000016 */ b .Ljp7F066F20 +/* 09BA38 7F066EC8 AE050024 */ sw $a1, 0x24($s0) +.Ljp7F066ECC: +/* 09BA3C 7F066ECC 10410003 */ beq $v0, $at, .Ljp7F066EDC +/* 09BA40 7F066ED0 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09BA44 7F066ED4 54820013 */ bnel $a0, $v0, .Ljp7F066F24 +/* 09BA48 7F066ED8 44050000 */ mfc1 $a1, $f0 +.Ljp7F066EDC: +/* 09BA4C 7F066EDC 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09BA50 7F066EE0 24010011 */ li $at, 17 +/* 09BA54 7F066EE4 3C0F8003 */ lui $t7, %hi(D_80035904) # $t7, 0x8003 +/* 09BA58 7F066EE8 8F0E2A38 */ lw $t6, 0x2a38($t8) +/* 09BA5C 7F066EEC 3C198003 */ lui $t9, %hi(D_80035610) # $t9, 0x8003 +/* 09BA60 7F066EF0 25EF5944 */ addiu $t7, %lo(D_80035904) # addiu $t7, $t7, 0x5944 +/* 09BA64 7F066EF4 15C10003 */ bne $t6, $at, .Ljp7F066F04 +/* 09BA68 7F066EF8 27395650 */ addiu $t9, %lo(D_80035610) # addiu $t9, $t9, 0x5650 +/* 09BA6C 7F066EFC 10000002 */ b .Ljp7F066F08 +/* 09BA70 7F066F00 AFAF0078 */ sw $t7, 0x78($sp) +.Ljp7F066F04: +/* 09BA74 7F066F04 AFB90078 */ sw $t9, 0x78($sp) +.Ljp7F066F08: +/* 09BA78 7F066F08 10820005 */ beq $a0, $v0, .Ljp7F066F20 +/* 09BA7C 7F066F0C 2861001E */ slti $at, $v1, 0x1e +/* 09BA80 7F066F10 14200003 */ bnez $at, .Ljp7F066F20 +/* 09BA84 7F066F14 24180001 */ li $t8, 1 +/* 09BA88 7F066F18 A218000C */ sb $t8, 0xc($s0) +/* 09BA8C 7F066F1C AE040024 */ sw $a0, 0x24($s0) +.Ljp7F066F20: +/* 09BA90 7F066F20 44050000 */ mfc1 $a1, $f0 +.Ljp7F066F24: +/* 09BA94 7F066F24 8FA40078 */ lw $a0, 0x78($sp) +/* 09BA98 7F066F28 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BA9C 7F066F2C 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BAA0 7F066F30 10400004 */ beqz $v0, .Ljp7F066F44 +/* 09BAA4 7F066F34 240E0001 */ li $t6, 1 +/* 09BAA8 7F066F38 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09BAAC 7F066F3C 10000005 */ b .Ljp7F066F54 +/* 09BAB0 7F066F40 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F066F44: +/* 09BAB4 7F066F44 AE000024 */ sw $zero, 0x24($s0) +/* 09BAB8 7F066F48 AE000020 */ sw $zero, 0x20($s0) +/* 09BABC 7F066F4C AE00001C */ sw $zero, 0x1c($s0) +/* 09BAC0 7F066F50 00001025 */ move $v0, $zero +.Ljp7F066F54: +/* 09BAC4 7F066F54 2401001A */ li $at, 26 +.Ljp7F066F58: +/* 09BAC8 7F066F58 54410023 */ bnel $v0, $at, .Ljp7F066FE8 +/* 09BACC 7F066F5C 2401001B */ li $at, 27 +/* 09BAD0 7F066F60 8E0F002C */ lw $t7, 0x2c($s0) +/* 09BAD4 7F066F64 00001025 */ move $v0, $zero +/* 09BAD8 7F066F68 59E0001C */ blezl $t7, .Ljp7F066FDC +/* 09BADC 7F066F6C AE000024 */ sw $zero, 0x24($s0) +/* 09BAE0 7F066F70 8E190020 */ lw $t9, 0x20($s0) +/* 09BAE4 7F066F74 3C048003 */ lui $a0, %hi(D_80035124) # $a0, 0x8003 +/* 09BAE8 7F066F78 24845164 */ addiu $a0, %lo(D_80035124) # addiu $a0, $a0, 0x5164 +/* 09BAEC 7F066F7C 44995000 */ mtc1 $t9, $f10 +/* 09BAF0 7F066F80 2606007C */ addiu $a2, $s0, 0x7c +/* 09BAF4 7F066F84 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BAF8 7F066F88 46805020 */ cvt.s.w $f0, $f10 +/* 09BAFC 7F066F8C 44050000 */ mfc1 $a1, $f0 +/* 09BB00 7F066F90 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BB04 7F066F94 00000000 */ nop +/* 09BB08 7F066F98 10400004 */ beqz $v0, .Ljp7F066FAC +/* 09BB0C 7F066F9C 240E0001 */ li $t6, 1 +/* 09BB10 7F066FA0 24180001 */ li $t8, 1 +/* 09BB14 7F066FA4 1000000A */ b .Ljp7F066FD0 +/* 09BB18 7F066FA8 AE1800BC */ sw $t8, 0xbc($s0) +.Ljp7F066FAC: +/* 09BB1C 7F066FAC 8E0F002C */ lw $t7, 0x2c($s0) +/* 09BB20 7F066FB0 2418001B */ li $t8, 27 +/* 09BB24 7F066FB4 A200000E */ sb $zero, 0xe($s0) +/* 09BB28 7F066FB8 25F9FFFF */ addiu $t9, $t7, -1 +/* 09BB2C 7F066FBC A20E000C */ sb $t6, 0xc($s0) +/* 09BB30 7F066FC0 AE19002C */ sw $t9, 0x2c($s0) +/* 09BB34 7F066FC4 AE180024 */ sw $t8, 0x24($s0) +/* 09BB38 7F066FC8 AE000020 */ sw $zero, 0x20($s0) +/* 09BB3C 7F066FCC AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F066FD0: +/* 09BB40 7F066FD0 10000004 */ b .Ljp7F066FE4 +/* 09BB44 7F066FD4 8E020024 */ lw $v0, 0x24($s0) +/* 09BB48 7F066FD8 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F066FDC: +/* 09BB4C 7F066FDC AE000020 */ sw $zero, 0x20($s0) +/* 09BB50 7F066FE0 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F066FE4: +/* 09BB54 7F066FE4 2401001B */ li $at, 27 +.Ljp7F066FE8: +/* 09BB58 7F066FE8 54410017 */ bnel $v0, $at, .Ljp7F067048 +/* 09BB5C 7F066FEC 24010017 */ li $at, 23 +/* 09BB60 7F066FF0 8E0E0020 */ lw $t6, 0x20($s0) +/* 09BB64 7F066FF4 3C048003 */ lui $a0, %hi(D_800351FC) # $a0, 0x8003 +/* 09BB68 7F066FF8 2484523C */ addiu $a0, %lo(D_800351FC) # addiu $a0, $a0, 0x523c +/* 09BB6C 7F066FFC 448E2000 */ mtc1 $t6, $f4 +/* 09BB70 7F067000 2606007C */ addiu $a2, $s0, 0x7c +/* 09BB74 7F067004 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BB78 7F067008 46802020 */ cvt.s.w $f0, $f4 +/* 09BB7C 7F06700C 44050000 */ mfc1 $a1, $f0 +/* 09BB80 7F067010 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BB84 7F067014 00000000 */ nop +/* 09BB88 7F067018 10400005 */ beqz $v0, .Ljp7F067030 +/* 09BB8C 7F06701C 24190001 */ li $t9, 1 +/* 09BB90 7F067020 240F0001 */ li $t7, 1 +/* 09BB94 7F067024 AE0F00BC */ sw $t7, 0xbc($s0) +/* 09BB98 7F067028 10000006 */ b .Ljp7F067044 +/* 09BB9C 7F06702C 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F067030: +/* 09BBA0 7F067030 A219000E */ sb $t9, 0xe($s0) +/* 09BBA4 7F067034 AE000024 */ sw $zero, 0x24($s0) +/* 09BBA8 7F067038 AE000020 */ sw $zero, 0x20($s0) +/* 09BBAC 7F06703C AE00001C */ sw $zero, 0x1c($s0) +/* 09BBB0 7F067040 00001025 */ move $v0, $zero +.Ljp7F067044: +/* 09BBB4 7F067044 24010017 */ li $at, 23 +.Ljp7F067048: +/* 09BBB8 7F067048 5441002C */ bnel $v0, $at, .Ljp7F0670FC +/* 09BBBC 7F06704C 24010018 */ li $at, 24 +/* 09BBC0 7F067050 8E18002C */ lw $t8, 0x2c($s0) +/* 09BBC4 7F067054 00001025 */ move $v0, $zero +/* 09BBC8 7F067058 5B000025 */ blezl $t8, .Ljp7F0670F0 +/* 09BBCC 7F06705C AE000024 */ sw $zero, 0x24($s0) +/* 09BBD0 7F067060 8E0E0018 */ lw $t6, 0x18($s0) +/* 09BBD4 7F067064 240F0018 */ li $t7, 24 +/* 09BBD8 7F067068 51C00004 */ beql $t6, $zero, .Ljp7F06707C +/* 09BBDC 7F06706C 8E190020 */ lw $t9, 0x20($s0) +/* 09BBE0 7F067070 1000001C */ b .Ljp7F0670E4 +/* 09BBE4 7F067074 AE0F0024 */ sw $t7, 0x24($s0) +/* 09BBE8 7F067078 8E190020 */ lw $t9, 0x20($s0) +.Ljp7F06707C: +/* 09BBEC 7F06707C 3C048003 */ lui $a0, %hi(D_80034F74) # $a0, 0x8003 +/* 09BBF0 7F067080 2606007C */ addiu $a2, $s0, 0x7c +/* 09BBF4 7F067084 44994000 */ mtc1 $t9, $f8 +/* 09BBF8 7F067088 AFA60034 */ sw $a2, 0x34($sp) +/* 09BBFC 7F06708C 24844FB4 */ addiu $a0, %lo(D_80034F74) # addiu $a0, $a0, 0x4fb4 +/* 09BC00 7F067090 46804020 */ cvt.s.w $f0, $f8 +/* 09BC04 7F067094 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BC08 7F067098 44050000 */ mfc1 $a1, $f0 +/* 09BC0C 7F06709C 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BC10 7F0670A0 00000000 */ nop +/* 09BC14 7F0670A4 10400004 */ beqz $v0, .Ljp7F0670B8 +/* 09BC18 7F0670A8 3C048003 */ lui $a0, %hi(D_8003504C) # $a0, 0x8003 +/* 09BC1C 7F0670AC 24180001 */ li $t8, 1 +/* 09BC20 7F0670B0 1000000C */ b .Ljp7F0670E4 +/* 09BC24 7F0670B4 AE1800BC */ sw $t8, 0xbc($s0) +.Ljp7F0670B8: +/* 09BC28 7F0670B8 2484508C */ addiu $a0, %lo(D_8003504C) # addiu $a0, $a0, 0x508c +/* 09BC2C 7F0670BC 24050000 */ li $a1, 0 +/* 09BC30 7F0670C0 8FA60034 */ lw $a2, 0x34($sp) +/* 09BC34 7F0670C4 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BC38 7F0670C8 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BC3C 7F0670CC 10400004 */ beqz $v0, .Ljp7F0670E0 +/* 09BC40 7F0670D0 240F0018 */ li $t7, 24 +/* 09BC44 7F0670D4 240E0001 */ li $t6, 1 +/* 09BC48 7F0670D8 10000002 */ b .Ljp7F0670E4 +/* 09BC4C 7F0670DC AE0E00BC */ sw $t6, 0xbc($s0) +.Ljp7F0670E0: +/* 09BC50 7F0670E0 AE0F0024 */ sw $t7, 0x24($s0) +.Ljp7F0670E4: +/* 09BC54 7F0670E4 10000004 */ b .Ljp7F0670F8 +/* 09BC58 7F0670E8 8E020024 */ lw $v0, 0x24($s0) +/* 09BC5C 7F0670EC AE000024 */ sw $zero, 0x24($s0) +.Ljp7F0670F0: +/* 09BC60 7F0670F0 AE000020 */ sw $zero, 0x20($s0) +/* 09BC64 7F0670F4 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F0670F8: +/* 09BC68 7F0670F8 24010018 */ li $at, 24 +.Ljp7F0670FC: +/* 09BC6C 7F0670FC 54410023 */ bnel $v0, $at, .Ljp7F06718C +/* 09BC70 7F067100 24010019 */ li $at, 25 +/* 09BC74 7F067104 8E19002C */ lw $t9, 0x2c($s0) +/* 09BC78 7F067108 00001025 */ move $v0, $zero +/* 09BC7C 7F06710C 5B20001C */ blezl $t9, .Ljp7F067180 +/* 09BC80 7F067110 AE000024 */ sw $zero, 0x24($s0) +/* 09BC84 7F067114 8E180020 */ lw $t8, 0x20($s0) +/* 09BC88 7F067118 3C048003 */ lui $a0, %hi(D_80034F74) # $a0, 0x8003 +/* 09BC8C 7F06711C 24844FB4 */ addiu $a0, %lo(D_80034F74) # addiu $a0, $a0, 0x4fb4 +/* 09BC90 7F067120 44983000 */ mtc1 $t8, $f6 +/* 09BC94 7F067124 2606007C */ addiu $a2, $s0, 0x7c +/* 09BC98 7F067128 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BC9C 7F06712C 46803020 */ cvt.s.w $f0, $f6 +/* 09BCA0 7F067130 44050000 */ mfc1 $a1, $f0 +/* 09BCA4 7F067134 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BCA8 7F067138 00000000 */ nop +/* 09BCAC 7F06713C 10400004 */ beqz $v0, .Ljp7F067150 +/* 09BCB0 7F067140 240F0001 */ li $t7, 1 +/* 09BCB4 7F067144 240E0001 */ li $t6, 1 +/* 09BCB8 7F067148 1000000A */ b .Ljp7F067174 +/* 09BCBC 7F06714C AE0E00BC */ sw $t6, 0xbc($s0) +.Ljp7F067150: +/* 09BCC0 7F067150 8E19002C */ lw $t9, 0x2c($s0) +/* 09BCC4 7F067154 240E0019 */ li $t6, 25 +/* 09BCC8 7F067158 A200000E */ sb $zero, 0xe($s0) +/* 09BCCC 7F06715C 2738FFFF */ addiu $t8, $t9, -1 +/* 09BCD0 7F067160 A20F000C */ sb $t7, 0xc($s0) +/* 09BCD4 7F067164 AE18002C */ sw $t8, 0x2c($s0) +/* 09BCD8 7F067168 AE0E0024 */ sw $t6, 0x24($s0) +/* 09BCDC 7F06716C AE000020 */ sw $zero, 0x20($s0) +/* 09BCE0 7F067170 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F067174: +/* 09BCE4 7F067174 10000004 */ b .Ljp7F067188 +/* 09BCE8 7F067178 8E020024 */ lw $v0, 0x24($s0) +/* 09BCEC 7F06717C AE000024 */ sw $zero, 0x24($s0) +.Ljp7F067180: +/* 09BCF0 7F067180 AE000020 */ sw $zero, 0x20($s0) +/* 09BCF4 7F067184 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F067188: +/* 09BCF8 7F067188 24010019 */ li $at, 25 +.Ljp7F06718C: +/* 09BCFC 7F06718C 54410017 */ bnel $v0, $at, .Ljp7F0671EC +/* 09BD00 7F067190 2401001C */ li $at, 28 +/* 09BD04 7F067194 8E0F0020 */ lw $t7, 0x20($s0) +/* 09BD08 7F067198 3C048003 */ lui $a0, %hi(D_8003504C) # $a0, 0x8003 +/* 09BD0C 7F06719C 2484508C */ addiu $a0, %lo(D_8003504C) # addiu $a0, $a0, 0x508c +/* 09BD10 7F0671A0 448F5000 */ mtc1 $t7, $f10 +/* 09BD14 7F0671A4 2606007C */ addiu $a2, $s0, 0x7c +/* 09BD18 7F0671A8 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BD1C 7F0671AC 46805020 */ cvt.s.w $f0, $f10 +/* 09BD20 7F0671B0 44050000 */ mfc1 $a1, $f0 +/* 09BD24 7F0671B4 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BD28 7F0671B8 00000000 */ nop +/* 09BD2C 7F0671BC 10400005 */ beqz $v0, .Ljp7F0671D4 +/* 09BD30 7F0671C0 24180001 */ li $t8, 1 +/* 09BD34 7F0671C4 24190001 */ li $t9, 1 +/* 09BD38 7F0671C8 AE1900BC */ sw $t9, 0xbc($s0) +/* 09BD3C 7F0671CC 10000006 */ b .Ljp7F0671E8 +/* 09BD40 7F0671D0 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F0671D4: +/* 09BD44 7F0671D4 A218000E */ sb $t8, 0xe($s0) +/* 09BD48 7F0671D8 AE000024 */ sw $zero, 0x24($s0) +/* 09BD4C 7F0671DC AE000020 */ sw $zero, 0x20($s0) +/* 09BD50 7F0671E0 AE00001C */ sw $zero, 0x1c($s0) +/* 09BD54 7F0671E4 00001025 */ move $v0, $zero +.Ljp7F0671E8: +/* 09BD58 7F0671E8 2401001C */ li $at, 28 +.Ljp7F0671EC: +/* 09BD5C 7F0671EC 54410028 */ bnel $v0, $at, .Ljp7F067290 +/* 09BD60 7F0671F0 2401001D */ li $at, 29 +/* 09BD64 7F0671F4 8E0E002C */ lw $t6, 0x2c($s0) +/* 09BD68 7F0671F8 02202025 */ move $a0, $s1 +/* 09BD6C 7F0671FC 5DC00006 */ bgtzl $t6, .Ljp7F067218 +/* 09BD70 7F067200 8E0F0020 */ lw $t7, 0x20($s0) +/* 09BD74 7F067204 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09BD78 7F067208 24050010 */ li $a1, 16 +/* 09BD7C 7F06720C 5040001C */ beql $v0, $zero, .Ljp7F067280 +/* 09BD80 7F067210 AE000024 */ sw $zero, 0x24($s0) +/* 09BD84 7F067214 8E0F0020 */ lw $t7, 0x20($s0) +.Ljp7F067218: +/* 09BD88 7F067218 3C048003 */ lui $a0, %hi(D_800352D4) # $a0, 0x8003 +/* 09BD8C 7F06721C 24845314 */ addiu $a0, %lo(D_800352D4) # addiu $a0, $a0, 0x5314 +/* 09BD90 7F067220 448F2000 */ mtc1 $t7, $f4 +/* 09BD94 7F067224 2606007C */ addiu $a2, $s0, 0x7c +/* 09BD98 7F067228 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BD9C 7F06722C 46802020 */ cvt.s.w $f0, $f4 +/* 09BDA0 7F067230 44050000 */ mfc1 $a1, $f0 +/* 09BDA4 7F067234 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BDA8 7F067238 00000000 */ nop +/* 09BDAC 7F06723C 10400004 */ beqz $v0, .Ljp7F067250 +/* 09BDB0 7F067240 24180001 */ li $t8, 1 +/* 09BDB4 7F067244 24190001 */ li $t9, 1 +/* 09BDB8 7F067248 1000000A */ b .Ljp7F067274 +/* 09BDBC 7F06724C AE1900BC */ sw $t9, 0xbc($s0) +.Ljp7F067250: +/* 09BDC0 7F067250 8E0E002C */ lw $t6, 0x2c($s0) +/* 09BDC4 7F067254 2419001D */ li $t9, 29 +/* 09BDC8 7F067258 A200000E */ sb $zero, 0xe($s0) +/* 09BDCC 7F06725C 25CFFFFF */ addiu $t7, $t6, -1 +/* 09BDD0 7F067260 A218000C */ sb $t8, 0xc($s0) +/* 09BDD4 7F067264 AE0F002C */ sw $t7, 0x2c($s0) +/* 09BDD8 7F067268 AE190024 */ sw $t9, 0x24($s0) +/* 09BDDC 7F06726C AE000020 */ sw $zero, 0x20($s0) +/* 09BDE0 7F067270 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F067274: +/* 09BDE4 7F067274 10000005 */ b .Ljp7F06728C +/* 09BDE8 7F067278 8E020024 */ lw $v0, 0x24($s0) +/* 09BDEC 7F06727C AE000024 */ sw $zero, 0x24($s0) +.Ljp7F067280: +/* 09BDF0 7F067280 AE000020 */ sw $zero, 0x20($s0) +/* 09BDF4 7F067284 AE00001C */ sw $zero, 0x1c($s0) +/* 09BDF8 7F067288 00001025 */ move $v0, $zero +.Ljp7F06728C: +/* 09BDFC 7F06728C 2401001D */ li $at, 29 +.Ljp7F067290: +/* 09BE00 7F067290 54410017 */ bnel $v0, $at, .Ljp7F0672F0 +/* 09BE04 7F067294 24010024 */ li $at, 36 +/* 09BE08 7F067298 8E180020 */ lw $t8, 0x20($s0) +/* 09BE0C 7F06729C 3C048003 */ lui $a0, %hi(D_800353AC) # $a0, 0x8003 +/* 09BE10 7F0672A0 248453EC */ addiu $a0, %lo(D_800353AC) # addiu $a0, $a0, 0x53ec +/* 09BE14 7F0672A4 44984000 */ mtc1 $t8, $f8 +/* 09BE18 7F0672A8 2606007C */ addiu $a2, $s0, 0x7c +/* 09BE1C 7F0672AC 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BE20 7F0672B0 46804020 */ cvt.s.w $f0, $f8 +/* 09BE24 7F0672B4 44050000 */ mfc1 $a1, $f0 +/* 09BE28 7F0672B8 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BE2C 7F0672BC 00000000 */ nop +/* 09BE30 7F0672C0 10400005 */ beqz $v0, .Ljp7F0672D8 +/* 09BE34 7F0672C4 240F0001 */ li $t7, 1 +/* 09BE38 7F0672C8 240E0001 */ li $t6, 1 +/* 09BE3C 7F0672CC AE0E00BC */ sw $t6, 0xbc($s0) +/* 09BE40 7F0672D0 10000006 */ b .Ljp7F0672EC +/* 09BE44 7F0672D4 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F0672D8: +/* 09BE48 7F0672D8 A20F000E */ sb $t7, 0xe($s0) +/* 09BE4C 7F0672DC AE000024 */ sw $zero, 0x24($s0) +/* 09BE50 7F0672E0 AE000020 */ sw $zero, 0x20($s0) +/* 09BE54 7F0672E4 AE00001C */ sw $zero, 0x1c($s0) +/* 09BE58 7F0672E8 00001025 */ move $v0, $zero +.Ljp7F0672EC: +/* 09BE5C 7F0672EC 24010024 */ li $at, 36 +.Ljp7F0672F0: +/* 09BE60 7F0672F0 1441004D */ bne $v0, $at, .Ljp7F067428 +/* 09BE64 7F0672F4 2401002E */ li $at, 46 +/* 09BE68 7F0672F8 56210009 */ bnel $s1, $at, .Ljp7F067320 +/* 09BE6C 7F0672FC 2401002C */ li $at, 44 +/* 09BE70 7F067300 8E19001C */ lw $t9, 0x1c($s0) +/* 09BE74 7F067304 17200003 */ bnez $t9, .Ljp7F067314 +/* 09BE78 7F067308 00000000 */ nop +/* 09BE7C 7F06730C 0FC19D0F */ jal sub_GAME_7F066E64 +/* 09BE80 7F067310 00000000 */ nop +.Ljp7F067314: +/* 09BE84 7F067314 1000003F */ b .Ljp7F067414 +/* 09BE88 7F067318 8E050018 */ lw $a1, 0x18($s0) +/* 09BE8C 7F06731C 2401002C */ li $at, 44 +.Ljp7F067320: +/* 09BE90 7F067320 56210009 */ bnel $s1, $at, .Ljp7F067348 +/* 09BE94 7F067324 24010027 */ li $at, 39 +/* 09BE98 7F067328 8E18001C */ lw $t8, 0x1c($s0) +/* 09BE9C 7F06732C 17000003 */ bnez $t8, .Ljp7F06733C +/* 09BEA0 7F067330 00000000 */ nop +/* 09BEA4 7F067334 0FC19D38 */ jal sub_GAME_7F066F08 +/* 09BEA8 7F067338 00000000 */ nop +.Ljp7F06733C: +/* 09BEAC 7F06733C 10000035 */ b .Ljp7F067414 +/* 09BEB0 7F067340 8E050018 */ lw $a1, 0x18($s0) +/* 09BEB4 7F067344 24010027 */ li $at, 39 +.Ljp7F067348: +/* 09BEB8 7F067348 12210009 */ beq $s1, $at, .Ljp7F067370 +/* 09BEBC 7F06734C 24010037 */ li $at, 55 +/* 09BEC0 7F067350 12210007 */ beq $s1, $at, .Ljp7F067370 +/* 09BEC4 7F067354 24010026 */ li $at, 38 +/* 09BEC8 7F067358 12210005 */ beq $s1, $at, .Ljp7F067370 +/* 09BECC 7F06735C 24010032 */ li $at, 50 +/* 09BED0 7F067360 12210003 */ beq $s1, $at, .Ljp7F067370 +/* 09BED4 7F067364 24010049 */ li $at, 73 +/* 09BED8 7F067368 5621000F */ bnel $s1, $at, .Ljp7F0673A8 +/* 09BEDC 7F06736C 24010033 */ li $at, 51 +.Ljp7F067370: +/* 09BEE0 7F067370 8E0E001C */ lw $t6, 0x1c($s0) +/* 09BEE4 7F067374 15C00009 */ bnez $t6, .Ljp7F06739C +/* 09BEE8 7F067378 00000000 */ nop +/* 09BEEC 7F06737C 0FC0F1BF */ jal sub_GAME_7F03C3FC +/* 09BEF0 7F067380 00000000 */ nop +/* 09BEF4 7F067384 10400005 */ beqz $v0, .Ljp7F06739C +/* 09BEF8 7F067388 00000000 */ nop +/* 09BEFC 7F06738C 8C430004 */ lw $v1, 4($v0) +/* 09BF00 7F067390 906F0002 */ lbu $t7, 2($v1) +/* 09BF04 7F067394 35F90040 */ ori $t9, $t7, 0x40 +/* 09BF08 7F067398 A0790002 */ sb $t9, 2($v1) +.Ljp7F06739C: +/* 09BF0C 7F06739C 1000001D */ b .Ljp7F067414 +/* 09BF10 7F0673A0 8E050018 */ lw $a1, 0x18($s0) +/* 09BF14 7F0673A4 24010033 */ li $at, 51 +.Ljp7F0673A8: +/* 09BF18 7F0673A8 1221001A */ beq $s1, $at, .Ljp7F067414 +/* 09BF1C 7F0673AC 8E050018 */ lw $a1, 0x18($s0) +/* 09BF20 7F0673B0 24010034 */ li $at, 52 +/* 09BF24 7F0673B4 12210017 */ beq $s1, $at, .Ljp7F067414 +/* 09BF28 7F0673B8 2401003A */ li $at, 58 +/* 09BF2C 7F0673BC 12210015 */ beq $s1, $at, .Ljp7F067414 +/* 09BF30 7F0673C0 2401003B */ li $at, 59 +/* 09BF34 7F0673C4 12210013 */ beq $s1, $at, .Ljp7F067414 +/* 09BF38 7F0673C8 24010051 */ li $at, 81 +/* 09BF3C 7F0673CC 12210011 */ beq $s1, $at, .Ljp7F067414 +/* 09BF40 7F0673D0 24010052 */ li $at, 82 +/* 09BF44 7F0673D4 1221000F */ beq $s1, $at, .Ljp7F067414 +/* 09BF48 7F0673D8 24010053 */ li $at, 83 +/* 09BF4C 7F0673DC 1221000D */ beq $s1, $at, .Ljp7F067414 +/* 09BF50 7F0673E0 2401002D */ li $at, 45 +/* 09BF54 7F0673E4 1221000B */ beq $s1, $at, .Ljp7F067414 +/* 09BF58 7F0673E8 24010029 */ li $at, 41 +/* 09BF5C 7F0673EC 12210009 */ beq $s1, $at, .Ljp7F067414 +/* 09BF60 7F0673F0 2401002A */ li $at, 42 +/* 09BF64 7F0673F4 12210007 */ beq $s1, $at, .Ljp7F067414 +/* 09BF68 7F0673F8 24010035 */ li $at, 53 +/* 09BF6C 7F0673FC 12210005 */ beq $s1, $at, .Ljp7F067414 +/* 09BF70 7F067400 24010036 */ li $at, 54 +/* 09BF74 7F067404 12210003 */ beq $s1, $at, .Ljp7F067414 +/* 09BF78 7F067408 24010025 */ li $at, 37 +/* 09BF7C 7F06740C 12210001 */ beq $s1, $at, .Ljp7F067414 +/* 09BF80 7F067410 00000000 */ nop +.Ljp7F067414: +/* 09BF84 7F067414 50A00005 */ beql $a1, $zero, .Ljp7F06742C +/* 09BF88 7F067418 8FBF0024 */ lw $ra, 0x24($sp) +/* 09BF8C 7F06741C AE000024 */ sw $zero, 0x24($s0) +/* 09BF90 7F067420 AE000020 */ sw $zero, 0x20($s0) +/* 09BF94 7F067424 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F067428: +/* 09BF98 7F067428 8FBF0024 */ lw $ra, 0x24($sp) +.Ljp7F06742C: +/* 09BF9C 7F06742C 8FB0001C */ lw $s0, 0x1c($sp) +/* 09BFA0 7F067430 8FB10020 */ lw $s1, 0x20($sp) +/* 09BFA4 7F067434 03E00008 */ jr $ra +/* 09BFA8 7F067438 27BD01E0 */ addiu $sp, $sp, 0x1e0 +) +#endif + +#endif + + +void sub_GAME_7F066E64(void) +{ + if (sub_GAME_7F08CF0C()) + { + #ifndef VERSION_JP + display_string_in_lower_left_corner(get_textptr_for_textID(0x98d8)); + #else + jp_display_string_in_lower_left_corner(get_textptr_for_textID(0x98d8)); + #endif + pPlayer->copiedgoldeneye = 1; + play_sfx_a1(ptr_sfx_buf, 0xf5, 0x0); + draw_item_in_hand_has_more_ammo(RIGHT_HAND, ITEM_GOLDENEYEKEY); + draw_item_in_hand_has_more_ammo(LEFT_HAND, ITEM_UNARMED); + } + else + { + #ifndef VERSION_JP + display_string_in_lower_left_corner(get_textptr_for_textID(0x98d9)); + #else + jp_display_string_in_lower_left_corner(get_textptr_for_textID(0x98d9)); + #endif + sub_GAME_7F05D690(); + } + return; +} + + +int get_keyanalyzer_flag(void) + +{ + return pPlayer->copiedgoldeneye; +} + + +void sub_GAME_7F066F08(void) +{ + add_ammo_to_inventory(AMMO_KNIFE,2,0,1); + add_ammo_to_inventory(AMMO_GRENADE,2,0,1); + add_item_to_inventory(ITEM_SNIPERRIFLE); + set_sound_effect_for_weapontype_collection(ITEM_SNIPERRIFLE); + display_text_for_weapon_in_lower_left_corner(ITEM_SNIPERRIFLE); + give_cur_player_ammo(GsniperrifleZ_stats.ammotype,check_cur_player_ammo_amount_in_inventory(GsniperrifleZ_stats.ammotype) + GsniperrifleZ_stats.mag_size); + sub_GAME_7F08C61C(0x2c); + draw_item_in_hand_has_more_ammo(RIGHT_HAND,ITEM_SNIPERRIFLE); + draw_item_in_hand_has_more_ammo(LEFT_HAND,ITEM_UNARMED); +} + + +f32 get_vertical_position_solo_watch_menu_main_page_for_item(ITEM_IDS item) +{ + return gitem_structs[item].watch_pos_x; +} + + +f32 get_lateral_position_solo_watch_menu_main_page_for_item(ITEM_IDS item) +{ + return gitem_structs[item].watch_pos_y; +} + + +f32 get_depth_on_solo_watch_menu_page_for_item(ITEM_IDS item) +{ + return gitem_structs[item].watch_pos_z; +} + + +f32 get_xrotation_solo_watch_menu_for_item(ITEM_IDS item) + +{ + return gitem_structs[item].x_rotation; +} + + +f32 get_yrotation_solo_watch_menu_for_item(ITEM_IDS item) +{ + return gitem_structs[item].y_rotation; +} + + +f32 get_45_degree_angle(s32 unk) { + return 45.0f; +} + + +u16 *get_ptr_first_title_line_item(ITEM_IDS item) +{ + return get_textptr_for_textID(gitem_structs[item].upper_watch_text); +} + + +u16 *get_ptr_second_title_line_item(ITEM_IDS item) +{ + return get_textptr_for_textID(gitem_structs[item].lower_watch_text); +} + + +u16 *get_ptr_short_watch_text_for_item(ITEM_IDS item) +{ + return get_textptr_for_textID(gitem_structs[item].watch_equipment_text); +} + + +u16 *get_ptr_long_watch_text_for_item(ITEM_IDS item) +{ + return get_textptr_for_textID(gitem_structs[item].weapon_of_choice_text); +} + + +f32 get_45_degree_angle_0(s32 unk) +{ + return 45.0f; +} + + +f32 get_horizontal_offset_on_solo_watch_menu_for_item(ITEM_IDS item) +{ + return gitem_structs[item].equip_watch_x; +} + + +f32 get_vertical_offset_on_solo_watch_menu_for_item(ITEM_IDS item) +{ + return gitem_structs[item].equip_watch_y; +} + + +f32 get_depth_offset_solo_watch_menu_inventory_page_for_item(ITEM_IDS item) +{ + return gitem_structs[item].equip_watch_z; +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F067174(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F067174 +/* 09BCA4 7F067174 000478C0 */ sll $t7, $a0, 3 +/* 09BCA8 7F067178 01E47823 */ subu $t7, $t7, $a0 +/* 09BCAC 7F06717C 000F7880 */ sll $t7, $t7, 2 +/* 09BCB0 7F067180 01E47821 */ addu $t7, $t7, $a0 +/* 09BCB4 7F067184 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 09BCB8 7F067188 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 09BCBC 7F06718C 000F7880 */ sll $t7, $t7, 2 +/* 09BCC0 7F067190 01E47821 */ addu $t7, $t7, $a0 +/* 09BCC4 7F067194 000F78C0 */ sll $t7, $t7, 3 +/* 09BCC8 7F067198 01CFC021 */ addu $t8, $t6, $t7 +/* 09BCCC 7F06719C 03E00008 */ jr $ra +/* 09BCD0 7F0671A0 C7000A80 */ lwc1 $f0, 0xa80($t8) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0671A4(void) + +{ + ITEM_IDS item; + ITEM_IDS item_00; + struct weapon_stats *pwVar2; + struct weapon_stats *pwVar3; + + float fVar4; + float fVar5; + + item = get_item_in_hand(0); + item_00 = get_item_in_hand(1); + pwVar2 = get_ptr_item_statistics(item); + pwVar3 = get_ptr_item_statistics(item_00); + if ((item != ITEM_UNARMED) && (get_hands_firing_status(0) != 0)) { + *(float *)&pPlayer->noise = (float)pPlayer->noise + pwVar2->field_5C; + if (pwVar2->loudness2 < (float)pPlayer->noise) { + *(float *)&pPlayer->noise = pwVar2->loudness2; + } + } + if ((item_00 != ITEM_UNARMED) && (get_hands_firing_status(1) != 0)) { + *(float *)&pPlayer->field_E28 = (float)pPlayer->field_E28 + pwVar3->field_5C; + if (pwVar3->loudness2 < (float)pPlayer->field_E28) { + *(float *)&pPlayer->field_E28 = pwVar3->loudness2; + } + } + fVar5 = (pwVar2->field_5C * global_timer_delta) / (pwVar2->field_60 * 60.00000000); + fVar4 = (((float)pPlayer->noise - pwVar2->loudness) * global_timer_delta) / + (pwVar2->field_64 * 60.00000000); + if (fVar4 <= fVar5) { + fVar4 = fVar5; + } + *(float *)&pPlayer->noise = (float)pPlayer->noise - fVar4; + if ((float)pPlayer->noise < pwVar2->loudness) { + *(float *)&pPlayer->noise = pwVar2->loudness; + } + fVar5 = (pwVar3->field_5C * global_timer_delta) / (pwVar3->field_60 * 60.00000000); + fVar4 = (((float)pPlayer->field_E28 - pwVar3->loudness) * global_timer_delta) / + (pwVar3->field_64 * 60.00000000); + if (fVar4 <= fVar5) { + fVar4 = fVar5; + } + *(float *)&pPlayer->field_E28 = (float)pPlayer->field_E28 - fVar4; + if ((float)pPlayer->field_E28 < pwVar3->loudness) { + *(float *)&pPlayer->field_E28 = pwVar3->loudness; + } + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0671A4 +/* 09BCD4 7F0671A4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 09BCD8 7F0671A8 AFBF0014 */ sw $ra, 0x14($sp) +/* 09BCDC 7F0671AC 0FC17674 */ jal get_item_in_hand +/* 09BCE0 7F0671B0 00002025 */ move $a0, $zero +/* 09BCE4 7F0671B4 AFA2002C */ sw $v0, 0x2c($sp) +/* 09BCE8 7F0671B8 0FC17674 */ jal get_item_in_hand +/* 09BCEC 7F0671BC 24040001 */ li $a0, 1 +/* 09BCF0 7F0671C0 AFA20028 */ sw $v0, 0x28($sp) +/* 09BCF4 7F0671C4 0FC1722D */ jal get_ptr_item_statistics +/* 09BCF8 7F0671C8 8FA4002C */ lw $a0, 0x2c($sp) +/* 09BCFC 7F0671CC 8FA40028 */ lw $a0, 0x28($sp) +/* 09BD00 7F0671D0 0FC1722D */ jal get_ptr_item_statistics +/* 09BD04 7F0671D4 AFA2001C */ sw $v0, 0x1c($sp) +/* 09BD08 7F0671D8 8FAE002C */ lw $t6, 0x2c($sp) +/* 09BD0C 7F0671DC 8FA3001C */ lw $v1, 0x1c($sp) +/* 09BD10 7F0671E0 00402825 */ move $a1, $v0 +/* 09BD14 7F0671E4 11C00016 */ beqz $t6, .L7F067240 +/* 09BD18 7F0671E8 00002025 */ move $a0, $zero +/* 09BD1C 7F0671EC AFA3001C */ sw $v1, 0x1c($sp) +/* 09BD20 7F0671F0 0FC17722 */ jal get_hands_firing_status +/* 09BD24 7F0671F4 AFA20018 */ sw $v0, 0x18($sp) +/* 09BD28 7F0671F8 8FA3001C */ lw $v1, 0x1c($sp) +/* 09BD2C 7F0671FC 10400010 */ beqz $v0, .L7F067240 +/* 09BD30 7F067200 8FA50018 */ lw $a1, 0x18($sp) +/* 09BD34 7F067204 3C068008 */ lui $a2, %hi(pPlayer) +/* 09BD38 7F067208 24C6A0B0 */ addiu $a2, %lo(pPlayer) # addiu $a2, $a2, -0x5f50 +/* 09BD3C 7F06720C 8CC20000 */ lw $v0, ($a2) +/* 09BD40 7F067210 C466005C */ lwc1 $f6, 0x5c($v1) +/* 09BD44 7F067214 C4440A80 */ lwc1 $f4, 0xa80($v0) +/* 09BD48 7F067218 46062200 */ add.s $f8, $f4, $f6 +/* 09BD4C 7F06721C E4480A80 */ swc1 $f8, 0xa80($v0) +/* 09BD50 7F067220 8CC20000 */ lw $v0, ($a2) +/* 09BD54 7F067224 C4600058 */ lwc1 $f0, 0x58($v1) +/* 09BD58 7F067228 C44A0A80 */ lwc1 $f10, 0xa80($v0) +/* 09BD5C 7F06722C 460A003C */ c.lt.s $f0, $f10 +/* 09BD60 7F067230 00000000 */ nop +/* 09BD64 7F067234 45020003 */ bc1fl .L7F067244 +/* 09BD68 7F067238 8FAF0028 */ lw $t7, 0x28($sp) +/* 09BD6C 7F06723C E4400A80 */ swc1 $f0, 0xa80($v0) +.L7F067240: +/* 09BD70 7F067240 8FAF0028 */ lw $t7, 0x28($sp) +.L7F067244: +/* 09BD74 7F067244 3C068008 */ lui $a2, %hi(pPlayer) +/* 09BD78 7F067248 24C6A0B0 */ addiu $a2, %lo(pPlayer) # addiu $a2, $a2, -0x5f50 +/* 09BD7C 7F06724C 11E00016 */ beqz $t7, .L7F0672A8 +/* 09BD80 7F067250 24040001 */ li $a0, 1 +/* 09BD84 7F067254 AFA3001C */ sw $v1, 0x1c($sp) +/* 09BD88 7F067258 0FC17722 */ jal get_hands_firing_status +/* 09BD8C 7F06725C AFA50018 */ sw $a1, 0x18($sp) +/* 09BD90 7F067260 3C068008 */ lui $a2, %hi(pPlayer) +/* 09BD94 7F067264 24C6A0B0 */ addiu $a2, %lo(pPlayer) # addiu $a2, $a2, -0x5f50 +/* 09BD98 7F067268 8FA3001C */ lw $v1, 0x1c($sp) +/* 09BD9C 7F06726C 1040000E */ beqz $v0, .L7F0672A8 +/* 09BDA0 7F067270 8FA50018 */ lw $a1, 0x18($sp) +/* 09BDA4 7F067274 8CC20000 */ lw $v0, ($a2) +/* 09BDA8 7F067278 C4A4005C */ lwc1 $f4, 0x5c($a1) +/* 09BDAC 7F06727C C4520E28 */ lwc1 $f18, 0xe28($v0) +/* 09BDB0 7F067280 46049180 */ add.s $f6, $f18, $f4 +/* 09BDB4 7F067284 E4460E28 */ swc1 $f6, 0xe28($v0) +/* 09BDB8 7F067288 8CC20000 */ lw $v0, ($a2) +/* 09BDBC 7F06728C C4A00058 */ lwc1 $f0, 0x58($a1) +/* 09BDC0 7F067290 C4480E28 */ lwc1 $f8, 0xe28($v0) +/* 09BDC4 7F067294 4608003C */ c.lt.s $f0, $f8 +/* 09BDC8 7F067298 00000000 */ nop +/* 09BDCC 7F06729C 45000002 */ bc1f .L7F0672A8 +/* 09BDD0 7F0672A0 00000000 */ nop +/* 09BDD4 7F0672A4 E4400E28 */ swc1 $f0, 0xe28($v0) +.L7F0672A8: +/* 09BDD8 7F0672A8 3C048005 */ lui $a0, %hi(global_timer_delta) +/* 09BDDC 7F0672AC 24848378 */ addiu $a0, %lo(global_timer_delta) # addiu $a0, $a0, -0x7c88 +/* 09BDE0 7F0672B0 C4800000 */ lwc1 $f0, ($a0) +/* 09BDE4 7F0672B4 C46A005C */ lwc1 $f10, 0x5c($v1) +/* 09BDE8 7F0672B8 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 09BDEC 7F0672BC 44818000 */ mtc1 $at, $f16 +/* 09BDF0 7F0672C0 46005482 */ mul.s $f18, $f10, $f0 +/* 09BDF4 7F0672C4 C4640060 */ lwc1 $f4, 0x60($v1) +/* 09BDF8 7F0672C8 8CC20000 */ lw $v0, ($a2) +/* 09BDFC 7F0672CC C4680054 */ lwc1 $f8, 0x54($v1) +/* 09BE00 7F0672D0 46102182 */ mul.s $f6, $f4, $f16 +/* 09BE04 7F0672D4 C44E0A80 */ lwc1 $f14, 0xa80($v0) +/* 09BE08 7F0672D8 46087281 */ sub.s $f10, $f14, $f8 +/* 09BE0C 7F0672DC 46069303 */ div.s $f12, $f18, $f6 +/* 09BE10 7F0672E0 C4720064 */ lwc1 $f18, 0x64($v1) +/* 09BE14 7F0672E4 46005102 */ mul.s $f4, $f10, $f0 +/* 09BE18 7F0672E8 00000000 */ nop +/* 09BE1C 7F0672EC 46109182 */ mul.s $f6, $f18, $f16 +/* 09BE20 7F0672F0 46062083 */ div.s $f2, $f4, $f6 +/* 09BE24 7F0672F4 4602603C */ c.lt.s $f12, $f2 +/* 09BE28 7F0672F8 00000000 */ nop +/* 09BE2C 7F0672FC 45000002 */ bc1f .L7F067308 +/* 09BE30 7F067300 00000000 */ nop +/* 09BE34 7F067304 46001306 */ mov.s $f12, $f2 +.L7F067308: +/* 09BE38 7F067308 460C7201 */ sub.s $f8, $f14, $f12 +/* 09BE3C 7F06730C E4480A80 */ swc1 $f8, 0xa80($v0) +/* 09BE40 7F067310 8CC20000 */ lw $v0, ($a2) +/* 09BE44 7F067314 C4600054 */ lwc1 $f0, 0x54($v1) +/* 09BE48 7F067318 C44A0A80 */ lwc1 $f10, 0xa80($v0) +/* 09BE4C 7F06731C 4600503C */ c.lt.s $f10, $f0 +/* 09BE50 7F067320 00000000 */ nop +/* 09BE54 7F067324 45020004 */ bc1fl .L7F067338 +/* 09BE58 7F067328 C4800000 */ lwc1 $f0, ($a0) +/* 09BE5C 7F06732C E4400A80 */ swc1 $f0, 0xa80($v0) +/* 09BE60 7F067330 8CC20000 */ lw $v0, ($a2) +/* 09BE64 7F067334 C4800000 */ lwc1 $f0, ($a0) +.L7F067338: +/* 09BE68 7F067338 C4B2005C */ lwc1 $f18, 0x5c($a1) +/* 09BE6C 7F06733C C4A60060 */ lwc1 $f6, 0x60($a1) +/* 09BE70 7F067340 C44E0E28 */ lwc1 $f14, 0xe28($v0) +/* 09BE74 7F067344 46009102 */ mul.s $f4, $f18, $f0 +/* 09BE78 7F067348 C4AA0054 */ lwc1 $f10, 0x54($a1) +/* 09BE7C 7F06734C 46103202 */ mul.s $f8, $f6, $f16 +/* 09BE80 7F067350 460A7481 */ sub.s $f18, $f14, $f10 +/* 09BE84 7F067354 46009182 */ mul.s $f6, $f18, $f0 +/* 09BE88 7F067358 46082303 */ div.s $f12, $f4, $f8 +/* 09BE8C 7F06735C C4A40064 */ lwc1 $f4, 0x64($a1) +/* 09BE90 7F067360 46102202 */ mul.s $f8, $f4, $f16 +/* 09BE94 7F067364 46083083 */ div.s $f2, $f6, $f8 +/* 09BE98 7F067368 4602603C */ c.lt.s $f12, $f2 +/* 09BE9C 7F06736C 00000000 */ nop +/* 09BEA0 7F067370 45020003 */ bc1fl .L7F067380 +/* 09BEA4 7F067374 460C7281 */ sub.s $f10, $f14, $f12 +/* 09BEA8 7F067378 46001306 */ mov.s $f12, $f2 +/* 09BEAC 7F06737C 460C7281 */ sub.s $f10, $f14, $f12 +.L7F067380: +/* 09BEB0 7F067380 E44A0E28 */ swc1 $f10, 0xe28($v0) +/* 09BEB4 7F067384 8CC20000 */ lw $v0, ($a2) +/* 09BEB8 7F067388 C4A00054 */ lwc1 $f0, 0x54($a1) +/* 09BEBC 7F06738C C4520E28 */ lwc1 $f18, 0xe28($v0) +/* 09BEC0 7F067390 4600903C */ c.lt.s $f18, $f0 +/* 09BEC4 7F067394 00000000 */ nop +/* 09BEC8 7F067398 45020003 */ bc1fl .L7F0673A8 +/* 09BECC 7F06739C 8FBF0014 */ lw $ra, 0x14($sp) +/* 09BED0 7F0673A0 E4400E28 */ swc1 $f0, 0xe28($v0) +/* 09BED4 7F0673A4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0673A8: +/* 09BED8 7F0673A8 27BD0030 */ addiu $sp, $sp, 0x30 +/* 09BEDC 7F0673AC 03E00008 */ jr $ra +/* 09BEE0 7F0673B0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0673B4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0673B4 +/* 09BEE4 7F0673B4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 09BEE8 7F0673B8 AFBF0014 */ sw $ra, 0x14($sp) +/* 09BEEC 7F0673BC 0FC17674 */ jal get_item_in_hand +/* 09BEF0 7F0673C0 AFA40018 */ sw $a0, 0x18($sp) +/* 09BEF4 7F0673C4 0FC1A50B */ jal get_ammo_type_for_weapon +/* 09BEF8 7F0673C8 00402025 */ move $a0, $v0 +/* 09BEFC 7F0673CC 2C4E0001 */ sltiu $t6, $v0, 1 +/* 09BF00 7F0673D0 15C0000F */ bnez $t6, .L7F067410 +/* 09BF04 7F0673D4 01C01025 */ move $v0, $t6 +/* 09BF08 7F0673D8 8FB80018 */ lw $t8, 0x18($sp) +/* 09BF0C 7F0673DC 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 09BF10 7F0673E0 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 09BF14 7F0673E4 0018C8C0 */ sll $t9, $t8, 3 +/* 09BF18 7F0673E8 0338C823 */ subu $t9, $t9, $t8 +/* 09BF1C 7F0673EC 0019C880 */ sll $t9, $t9, 2 +/* 09BF20 7F0673F0 0338C821 */ addu $t9, $t9, $t8 +/* 09BF24 7F0673F4 0019C880 */ sll $t9, $t9, 2 +/* 09BF28 7F0673F8 0338C821 */ addu $t9, $t9, $t8 +/* 09BF2C 7F0673FC 0019C8C0 */ sll $t9, $t9, 3 +/* 09BF30 7F067400 01F94021 */ addu $t0, $t7, $t9 +/* 09BF34 7F067404 8D02089C */ lw $v0, 0x89c($t0) +/* 09BF38 7F067408 0002482A */ slt $t1, $zero, $v0 +/* 09BF3C 7F06740C 01201025 */ move $v0, $t1 +.L7F067410: +/* 09BF40 7F067410 8FBF0014 */ lw $ra, 0x14($sp) +/* 09BF44 7F067414 27BD0018 */ addiu $sp, $sp, 0x18 +/* 09BF48 7F067418 03E00008 */ jr $ra +/* 09BF4C 7F06741C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F067420(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F067420 +/* 09BF50 7F067420 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 09BF54 7F067424 3C0F8003 */ lui $t7, %hi(D_80035E9C) +/* 09BF58 7F067428 AFBF001C */ sw $ra, 0x1c($sp) +/* 09BF5C 7F06742C AFB00018 */ sw $s0, 0x18($sp) +/* 09BF60 7F067430 25EF5E9C */ addiu $t7, %lo(D_80035E9C) # addiu $t7, $t7, 0x5e9c +/* 09BF64 7F067434 8DE10000 */ lw $at, ($t7) +/* 09BF68 7F067438 8DE80004 */ lw $t0, 4($t7) +/* 09BF6C 7F06743C 27AE0048 */ addiu $t6, $sp, 0x48 +/* 09BF70 7F067440 3C108008 */ lui $s0, %hi(pPlayer) +/* 09BF74 7F067444 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 09BF78 7F067448 ADC10000 */ sw $at, ($t6) +/* 09BF7C 7F06744C ADC80004 */ sw $t0, 4($t6) +/* 09BF80 7F067450 8E030000 */ lw $v1, ($s0) +/* 09BF84 7F067454 8C690FCC */ lw $t1, 0xfcc($v1) +/* 09BF88 7F067458 AC690FD0 */ sw $t1, 0xfd0($v1) +/* 09BF8C 7F06745C 8E0A0000 */ lw $t2, ($s0) +/* 09BF90 7F067460 AD440FCC */ sw $a0, 0xfcc($t2) +/* 09BF94 7F067464 8E030000 */ lw $v1, ($s0) +/* 09BF98 7F067468 8C620FCC */ lw $v0, 0xfcc($v1) +/* 09BF9C 7F06746C 14400008 */ bnez $v0, .L7F067490 +/* 09BFA0 7F067470 00000000 */ nop +/* 09BFA4 7F067474 8C6B0FD0 */ lw $t3, 0xfd0($v1) +/* 09BFA8 7F067478 240C0001 */ li $t4, 1 +/* 09BFAC 7F06747C 11600004 */ beqz $t3, .L7F067490 +/* 09BFB0 7F067480 00000000 */ nop +/* 09BFB4 7F067484 AC6C0FC8 */ sw $t4, 0xfc8($v1) +/* 09BFB8 7F067488 8E030000 */ lw $v1, ($s0) +/* 09BFBC 7F06748C 8C620FCC */ lw $v0, 0xfcc($v1) +.L7F067490: +/* 09BFC0 7F067490 5040012A */ beql $v0, $zero, .L7F06793C +/* 09BFC4 7F067494 AC600FD4 */ sw $zero, 0xfd4($v1) +/* 09BFC8 7F067498 0FC17674 */ jal get_item_in_hand +/* 09BFCC 7F06749C 00002025 */ move $a0, $zero +/* 09BFD0 7F0674A0 AFA20044 */ sw $v0, 0x44($sp) +/* 09BFD4 7F0674A4 0FC17674 */ jal get_item_in_hand +/* 09BFD8 7F0674A8 24040001 */ li $a0, 1 +/* 09BFDC 7F0674AC 8E030000 */ lw $v1, ($s0) +/* 09BFE0 7F0674B0 AFA20040 */ sw $v0, 0x40($sp) +/* 09BFE4 7F0674B4 3C198005 */ lui $t9, %hi(clock_timer) +/* 09BFE8 7F0674B8 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 09BFEC 7F0674BC 8C6D0FD4 */ lw $t5, 0xfd4($v1) +/* 09BFF0 7F0674C0 8FA40044 */ lw $a0, 0x44($sp) +/* 09BFF4 7F0674C4 01B9C021 */ addu $t8, $t5, $t9 +/* 09BFF8 7F0674C8 108000FD */ beqz $a0, .L7F0678C0 +/* 09BFFC 7F0674CC AC780FD4 */ sw $t8, 0xfd4($v1) +/* 09C000 7F0674D0 504000FC */ beql $v0, $zero, .L7F0678C4 +/* 09C004 7F0674D4 8E0D0000 */ lw $t5, ($s0) +/* 09C008 7F0674D8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09C00C 7F0674DC 24050080 */ li $a1, 128 +/* 09C010 7F0674E0 10400049 */ beqz $v0, .L7F067608 +/* 09C014 7F0674E4 8FA40040 */ lw $a0, 0x40($sp) +/* 09C018 7F0674E8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09C01C 7F0674EC 24050080 */ li $a1, 128 +/* 09C020 7F0674F0 50400046 */ beql $v0, $zero, .L7F06760C +/* 09C024 7F0674F4 8FA40044 */ lw $a0, 0x44($sp) +/* 09C028 7F0674F8 8E030000 */ lw $v1, ($s0) +/* 09C02C 7F0674FC 8C6E0FD4 */ lw $t6, 0xfd4($v1) +/* 09C030 7F067500 29C10015 */ slti $at, $t6, 0x15 +/* 09C034 7F067504 54200022 */ bnezl $at, .L7F067590 +/* 09C038 7F067508 8C6C0FD0 */ lw $t4, 0xfd0($v1) +/* 09C03C 7F06750C 8C6F0FD8 */ lw $t7, 0xfd8($v1) +/* 09C040 7F067510 24020001 */ li $v0, 1 +/* 09C044 7F067514 000F4080 */ sll $t0, $t7, 2 +/* 09C048 7F067518 03A84821 */ addu $t1, $sp, $t0 +/* 09C04C 7F06751C AD220048 */ sw $v0, 0x48($t1) +/* 09C050 7F067520 8C6A0FD8 */ lw $t2, 0xfd8($v1) +/* 09C054 7F067524 0FC19CED */ jal sub_GAME_7F0673B4 +/* 09C058 7F067528 004A2023 */ subu $a0, $v0, $t2 +/* 09C05C 7F06752C 54400010 */ bnezl $v0, .L7F067570 +/* 09C060 7F067530 8E0F0000 */ lw $t7, ($s0) +/* 09C064 7F067534 8E030000 */ lw $v1, ($s0) +/* 09C068 7F067538 8C6B0FD8 */ lw $t3, 0xfd8($v1) +/* 09C06C 7F06753C 000B60C0 */ sll $t4, $t3, 3 +/* 09C070 7F067540 018B6023 */ subu $t4, $t4, $t3 +/* 09C074 7F067544 000C6080 */ sll $t4, $t4, 2 +/* 09C078 7F067548 018B6021 */ addu $t4, $t4, $t3 +/* 09C07C 7F06754C 000C6080 */ sll $t4, $t4, 2 +/* 09C080 7F067550 018B6021 */ addu $t4, $t4, $t3 +/* 09C084 7F067554 000C60C0 */ sll $t4, $t4, 3 +/* 09C088 7F067558 000C6823 */ negu $t5, $t4 +/* 09C08C 7F06755C 006DC821 */ addu $t9, $v1, $t5 +/* 09C090 7F067560 8F380C28 */ lw $t8, 0xc28($t9) +/* 09C094 7F067564 530000F6 */ beql $t8, $zero, .L7F067940 +/* 09C098 7F067568 00002025 */ move $a0, $zero +/* 09C09C 7F06756C 8E0F0000 */ lw $t7, ($s0) +.L7F067570: +/* 09C0A0 7F067570 240E0001 */ li $t6, 1 +/* 09C0A4 7F067574 8DE80FD8 */ lw $t0, 0xfd8($t7) +/* 09C0A8 7F067578 00084880 */ sll $t1, $t0, 2 +/* 09C0AC 7F06757C 00095023 */ negu $t2, $t1 +/* 09C0B0 7F067580 03AA5821 */ addu $t3, $sp, $t2 +/* 09C0B4 7F067584 100000ED */ b .L7F06793C +/* 09C0B8 7F067588 AD6E004C */ sw $t6, 0x4c($t3) +/* 09C0BC 7F06758C 8C6C0FD0 */ lw $t4, 0xfd0($v1) +.L7F067590: +/* 09C0C0 7F067590 55800012 */ bnezl $t4, .L7F0675DC +/* 09C0C4 7F067594 8E030000 */ lw $v1, ($s0) +/* 09C0C8 7F067598 8C6D0FD8 */ lw $t5, 0xfd8($v1) +/* 09C0CC 7F06759C 24190001 */ li $t9, 1 +/* 09C0D0 7F0675A0 0FC19CED */ jal sub_GAME_7F0673B4 +/* 09C0D4 7F0675A4 032D2023 */ subu $a0, $t9, $t5 +/* 09C0D8 7F0675A8 54400007 */ bnezl $v0, .L7F0675C8 +/* 09C0DC 7F0675AC 8E030000 */ lw $v1, ($s0) +/* 09C0E0 7F0675B0 8E180000 */ lw $t8, ($s0) +/* 09C0E4 7F0675B4 0FC19CED */ jal sub_GAME_7F0673B4 +/* 09C0E8 7F0675B8 8F040FD8 */ lw $a0, 0xfd8($t8) +/* 09C0EC 7F0675BC 54400007 */ bnezl $v0, .L7F0675DC +/* 09C0F0 7F0675C0 8E030000 */ lw $v1, ($s0) +/* 09C0F4 7F0675C4 8E030000 */ lw $v1, ($s0) +.L7F0675C8: +/* 09C0F8 7F0675C8 24080001 */ li $t0, 1 +/* 09C0FC 7F0675CC 8C6F0FD8 */ lw $t7, 0xfd8($v1) +/* 09C100 7F0675D0 010F4823 */ subu $t1, $t0, $t7 +/* 09C104 7F0675D4 AC690FD8 */ sw $t1, 0xfd8($v1) +/* 09C108 7F0675D8 8E030000 */ lw $v1, ($s0) +.L7F0675DC: +/* 09C10C 7F0675DC 240E0001 */ li $t6, 1 +/* 09C110 7F0675E0 8C6A0FD8 */ lw $t2, 0xfd8($v1) +/* 09C114 7F0675E4 000A5880 */ sll $t3, $t2, 2 +/* 09C118 7F0675E8 03AB6021 */ addu $t4, $sp, $t3 +/* 09C11C 7F0675EC AD8E0048 */ sw $t6, 0x48($t4) +/* 09C120 7F0675F0 8C790FD8 */ lw $t9, 0xfd8($v1) +/* 09C124 7F0675F4 00196880 */ sll $t5, $t9, 2 +/* 09C128 7F0675F8 000DC023 */ negu $t8, $t5 +/* 09C12C 7F0675FC 03B84021 */ addu $t0, $sp, $t8 +/* 09C130 7F067600 100000CE */ b .L7F06793C +/* 09C134 7F067604 AD00004C */ sw $zero, 0x4c($t0) +.L7F067608: +/* 09C138 7F067608 8FA40044 */ lw $a0, 0x44($sp) +.L7F06760C: +/* 09C13C 7F06760C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09C140 7F067610 24050080 */ li $a1, 128 +/* 09C144 7F067614 14400005 */ bnez $v0, .L7F06762C +/* 09C148 7F067618 8FA40040 */ lw $a0, 0x40($sp) +/* 09C14C 7F06761C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09C150 7F067620 24050080 */ li $a1, 128 +/* 09C154 7F067624 50400063 */ beql $v0, $zero, .L7F0677B4 +/* 09C158 7F067628 8E030000 */ lw $v1, ($s0) +.L7F06762C: +/* 09C15C 7F06762C 8E030000 */ lw $v1, ($s0) +/* 09C160 7F067630 8FA40044 */ lw $a0, 0x44($sp) +/* 09C164 7F067634 8C6F0FD4 */ lw $t7, 0xfd4($v1) +/* 09C168 7F067638 29E1001F */ slti $at, $t7, 0x1f +/* 09C16C 7F06763C 14200021 */ bnez $at, .L7F0676C4 +/* 09C170 7F067640 00000000 */ nop +/* 09C174 7F067644 8C690FD8 */ lw $t1, 0xfd8($v1) +/* 09C178 7F067648 24020001 */ li $v0, 1 +/* 09C17C 7F06764C 00095080 */ sll $t2, $t1, 2 +/* 09C180 7F067650 03AA7021 */ addu $t6, $sp, $t2 +/* 09C184 7F067654 ADC20048 */ sw $v0, 0x48($t6) +/* 09C188 7F067658 8C6B0FD8 */ lw $t3, 0xfd8($v1) +/* 09C18C 7F06765C 0FC19CED */ jal sub_GAME_7F0673B4 +/* 09C190 7F067660 004B2023 */ subu $a0, $v0, $t3 +/* 09C194 7F067664 54400010 */ bnezl $v0, .L7F0676A8 +/* 09C198 7F067668 8E090000 */ lw $t1, ($s0) +/* 09C19C 7F06766C 8E030000 */ lw $v1, ($s0) +/* 09C1A0 7F067670 8C6C0FD8 */ lw $t4, 0xfd8($v1) +/* 09C1A4 7F067674 000CC8C0 */ sll $t9, $t4, 3 +/* 09C1A8 7F067678 032CC823 */ subu $t9, $t9, $t4 +/* 09C1AC 7F06767C 0019C880 */ sll $t9, $t9, 2 +/* 09C1B0 7F067680 032CC821 */ addu $t9, $t9, $t4 +/* 09C1B4 7F067684 0019C880 */ sll $t9, $t9, 2 +/* 09C1B8 7F067688 032CC821 */ addu $t9, $t9, $t4 +/* 09C1BC 7F06768C 0019C8C0 */ sll $t9, $t9, 3 +/* 09C1C0 7F067690 00196823 */ negu $t5, $t9 +/* 09C1C4 7F067694 006DC021 */ addu $t8, $v1, $t5 +/* 09C1C8 7F067698 8F080C28 */ lw $t0, 0xc28($t8) +/* 09C1CC 7F06769C 510000A8 */ beql $t0, $zero, .L7F067940 +/* 09C1D0 7F0676A0 00002025 */ move $a0, $zero +/* 09C1D4 7F0676A4 8E090000 */ lw $t1, ($s0) +.L7F0676A8: +/* 09C1D8 7F0676A8 240F0001 */ li $t7, 1 +/* 09C1DC 7F0676AC 8D2A0FD8 */ lw $t2, 0xfd8($t1) +/* 09C1E0 7F0676B0 000A7080 */ sll $t6, $t2, 2 +/* 09C1E4 7F0676B4 000E5823 */ negu $t3, $t6 +/* 09C1E8 7F0676B8 03AB6021 */ addu $t4, $sp, $t3 +/* 09C1EC 7F0676BC 1000009F */ b .L7F06793C +/* 09C1F0 7F0676C0 AD8F004C */ sw $t7, 0x4c($t4) +.L7F0676C4: +/* 09C1F4 7F0676C4 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09C1F8 7F0676C8 24050080 */ li $a1, 128 +/* 09C1FC 7F0676CC 10400003 */ beqz $v0, .L7F0676DC +/* 09C200 7F0676D0 24050001 */ li $a1, 1 +/* 09C204 7F0676D4 10000001 */ b .L7F0676DC +/* 09C208 7F0676D8 00002825 */ move $a1, $zero +.L7F0676DC: +/* 09C20C 7F0676DC 00A02025 */ move $a0, $a1 +/* 09C210 7F0676E0 0FC19CED */ jal sub_GAME_7F0673B4 +/* 09C214 7F0676E4 AFA5003C */ sw $a1, 0x3c($sp) +/* 09C218 7F0676E8 1440000F */ bnez $v0, .L7F067728 +/* 09C21C 7F0676EC 8FA5003C */ lw $a1, 0x3c($sp) +/* 09C220 7F0676F0 000530C0 */ sll $a2, $a1, 3 +/* 09C224 7F0676F4 00C53023 */ subu $a2, $a2, $a1 +/* 09C228 7F0676F8 00063080 */ sll $a2, $a2, 2 +/* 09C22C 7F0676FC 00C53021 */ addu $a2, $a2, $a1 +/* 09C230 7F067700 8E190000 */ lw $t9, ($s0) +/* 09C234 7F067704 00063080 */ sll $a2, $a2, 2 +/* 09C238 7F067708 00C53021 */ addu $a2, $a2, $a1 +/* 09C23C 7F06770C 000630C0 */ sll $a2, $a2, 3 +/* 09C240 7F067710 03266821 */ addu $t5, $t9, $a2 +/* 09C244 7F067714 8DB80880 */ lw $t8, 0x880($t5) +/* 09C248 7F067718 24090001 */ li $t1, 1 +/* 09C24C 7F06771C 01252023 */ subu $a0, $t1, $a1 +/* 09C250 7F067720 53000005 */ beql $t8, $zero, .L7F067738 +/* 09C254 7F067724 AFA40020 */ sw $a0, 0x20($sp) +.L7F067728: +/* 09C258 7F067728 8E080000 */ lw $t0, ($s0) +/* 09C25C 7F06772C 10000014 */ b .L7F067780 +/* 09C260 7F067730 AD050FD8 */ sw $a1, 0xfd8($t0) +/* 09C264 7F067734 AFA40020 */ sw $a0, 0x20($sp) +.L7F067738: +/* 09C268 7F067738 0FC19CED */ jal sub_GAME_7F0673B4 +/* 09C26C 7F06773C AFA60024 */ sw $a2, 0x24($sp) +/* 09C270 7F067740 8FA40020 */ lw $a0, 0x20($sp) +/* 09C274 7F067744 14400007 */ bnez $v0, .L7F067764 +/* 09C278 7F067748 8FA60024 */ lw $a2, 0x24($sp) +/* 09C27C 7F06774C 8E030000 */ lw $v1, ($s0) +/* 09C280 7F067750 00065023 */ negu $t2, $a2 +/* 09C284 7F067754 006A7021 */ addu $t6, $v1, $t2 +/* 09C288 7F067758 8DCF0C28 */ lw $t7, 0xc28($t6) +/* 09C28C 7F06775C 51E00005 */ beql $t7, $zero, .L7F067774 +/* 09C290 7F067760 8C6C0FD8 */ lw $t4, 0xfd8($v1) +.L7F067764: +/* 09C294 7F067764 8E0B0000 */ lw $t3, ($s0) +/* 09C298 7F067768 10000005 */ b .L7F067780 +/* 09C29C 7F06776C AD640FD8 */ sw $a0, 0xfd8($t3) +/* 09C2A0 7F067770 8C6C0FD8 */ lw $t4, 0xfd8($v1) +.L7F067774: +/* 09C2A4 7F067774 24190001 */ li $t9, 1 +/* 09C2A8 7F067778 032C6823 */ subu $t5, $t9, $t4 +/* 09C2AC 7F06777C AC6D0FD8 */ sw $t5, 0xfd8($v1) +.L7F067780: +/* 09C2B0 7F067780 8E030000 */ lw $v1, ($s0) +/* 09C2B4 7F067784 24180001 */ li $t8, 1 +/* 09C2B8 7F067788 8C680FD8 */ lw $t0, 0xfd8($v1) +/* 09C2BC 7F06778C 00084880 */ sll $t1, $t0, 2 +/* 09C2C0 7F067790 03A95021 */ addu $t2, $sp, $t1 +/* 09C2C4 7F067794 AD580048 */ sw $t8, 0x48($t2) +/* 09C2C8 7F067798 8C6E0FD8 */ lw $t6, 0xfd8($v1) +/* 09C2CC 7F06779C 000E7880 */ sll $t7, $t6, 2 +/* 09C2D0 7F0677A0 000F5823 */ negu $t3, $t7 +/* 09C2D4 7F0677A4 03ABC821 */ addu $t9, $sp, $t3 +/* 09C2D8 7F0677A8 10000064 */ b .L7F06793C +/* 09C2DC 7F0677AC AF20004C */ sw $zero, 0x4c($t9) +/* 09C2E0 7F0677B0 8E030000 */ lw $v1, ($s0) +.L7F0677B4: +/* 09C2E4 7F0677B4 8C6C0FD4 */ lw $t4, 0xfd4($v1) +/* 09C2E8 7F0677B8 2981001F */ slti $at, $t4, 0x1f +/* 09C2EC 7F0677BC 54200022 */ bnezl $at, .L7F067848 +/* 09C2F0 7F0677C0 8C6E0FD0 */ lw $t6, 0xfd0($v1) +/* 09C2F4 7F0677C4 8C6D0FD8 */ lw $t5, 0xfd8($v1) +/* 09C2F8 7F0677C8 24020001 */ li $v0, 1 +/* 09C2FC 7F0677CC 000D4080 */ sll $t0, $t5, 2 +/* 09C300 7F0677D0 03A8C021 */ addu $t8, $sp, $t0 +/* 09C304 7F0677D4 AF020048 */ sw $v0, 0x48($t8) +/* 09C308 7F0677D8 8C690FD8 */ lw $t1, 0xfd8($v1) +/* 09C30C 7F0677DC 0FC19CED */ jal sub_GAME_7F0673B4 +/* 09C310 7F0677E0 00492023 */ subu $a0, $v0, $t1 +/* 09C314 7F0677E4 54400010 */ bnezl $v0, .L7F067828 +/* 09C318 7F0677E8 8E0D0000 */ lw $t5, ($s0) +/* 09C31C 7F0677EC 8E030000 */ lw $v1, ($s0) +/* 09C320 7F0677F0 8C6A0FD8 */ lw $t2, 0xfd8($v1) +/* 09C324 7F0677F4 000A70C0 */ sll $t6, $t2, 3 +/* 09C328 7F0677F8 01CA7023 */ subu $t6, $t6, $t2 +/* 09C32C 7F0677FC 000E7080 */ sll $t6, $t6, 2 +/* 09C330 7F067800 01CA7021 */ addu $t6, $t6, $t2 +/* 09C334 7F067804 000E7080 */ sll $t6, $t6, 2 +/* 09C338 7F067808 01CA7021 */ addu $t6, $t6, $t2 +/* 09C33C 7F06780C 000E70C0 */ sll $t6, $t6, 3 +/* 09C340 7F067810 000E7823 */ negu $t7, $t6 +/* 09C344 7F067814 006F5821 */ addu $t3, $v1, $t7 +/* 09C348 7F067818 8D790C28 */ lw $t9, 0xc28($t3) +/* 09C34C 7F06781C 53200048 */ beql $t9, $zero, .L7F067940 +/* 09C350 7F067820 00002025 */ move $a0, $zero +/* 09C354 7F067824 8E0D0000 */ lw $t5, ($s0) +.L7F067828: +/* 09C358 7F067828 240C0001 */ li $t4, 1 +/* 09C35C 7F06782C 8DA80FD8 */ lw $t0, 0xfd8($t5) +/* 09C360 7F067830 0008C080 */ sll $t8, $t0, 2 +/* 09C364 7F067834 00184823 */ negu $t1, $t8 +/* 09C368 7F067838 03A95021 */ addu $t2, $sp, $t1 +/* 09C36C 7F06783C 1000003F */ b .L7F06793C +/* 09C370 7F067840 AD4C004C */ sw $t4, 0x4c($t2) +/* 09C374 7F067844 8C6E0FD0 */ lw $t6, 0xfd0($v1) +.L7F067848: +/* 09C378 7F067848 55C00012 */ bnezl $t6, .L7F067894 +/* 09C37C 7F06784C 8E030000 */ lw $v1, ($s0) +/* 09C380 7F067850 8C6F0FD8 */ lw $t7, 0xfd8($v1) +/* 09C384 7F067854 240B0001 */ li $t3, 1 +/* 09C388 7F067858 0FC19CED */ jal sub_GAME_7F0673B4 +/* 09C38C 7F06785C 016F2023 */ subu $a0, $t3, $t7 +/* 09C390 7F067860 54400007 */ bnezl $v0, .L7F067880 +/* 09C394 7F067864 8E030000 */ lw $v1, ($s0) +/* 09C398 7F067868 8E190000 */ lw $t9, ($s0) +/* 09C39C 7F06786C 0FC19CED */ jal sub_GAME_7F0673B4 +/* 09C3A0 7F067870 8F240FD8 */ lw $a0, 0xfd8($t9) +/* 09C3A4 7F067874 54400007 */ bnezl $v0, .L7F067894 +/* 09C3A8 7F067878 8E030000 */ lw $v1, ($s0) +/* 09C3AC 7F06787C 8E030000 */ lw $v1, ($s0) +.L7F067880: +/* 09C3B0 7F067880 24080001 */ li $t0, 1 +/* 09C3B4 7F067884 8C6D0FD8 */ lw $t5, 0xfd8($v1) +/* 09C3B8 7F067888 010DC023 */ subu $t8, $t0, $t5 +/* 09C3BC 7F06788C AC780FD8 */ sw $t8, 0xfd8($v1) +/* 09C3C0 7F067890 8E030000 */ lw $v1, ($s0) +.L7F067894: +/* 09C3C4 7F067894 240C0001 */ li $t4, 1 +/* 09C3C8 7F067898 8C690FD8 */ lw $t1, 0xfd8($v1) +/* 09C3CC 7F06789C 00095080 */ sll $t2, $t1, 2 +/* 09C3D0 7F0678A0 03AA7021 */ addu $t6, $sp, $t2 +/* 09C3D4 7F0678A4 ADCC0048 */ sw $t4, 0x48($t6) +/* 09C3D8 7F0678A8 8C6B0FD8 */ lw $t3, 0xfd8($v1) +/* 09C3DC 7F0678AC 000B7880 */ sll $t7, $t3, 2 +/* 09C3E0 7F0678B0 000FC823 */ negu $t9, $t7 +/* 09C3E4 7F0678B4 03B94021 */ addu $t0, $sp, $t9 +/* 09C3E8 7F0678B8 10000020 */ b .L7F06793C +/* 09C3EC 7F0678BC AD00004C */ sw $zero, 0x4c($t0) +.L7F0678C0: +/* 09C3F0 7F0678C0 8E0D0000 */ lw $t5, ($s0) +.L7F0678C4: +/* 09C3F4 7F0678C4 0FC17674 */ jal get_item_in_hand +/* 09C3F8 7F0678C8 8DA40FD8 */ lw $a0, 0xfd8($t5) +/* 09C3FC 7F0678CC 5440000E */ bnezl $v0, .L7F067908 +/* 09C400 7F0678D0 8E030000 */ lw $v1, ($s0) +/* 09C404 7F0678D4 8E180000 */ lw $t8, ($s0) +/* 09C408 7F0678D8 240C0001 */ li $t4, 1 +/* 09C40C 7F0678DC 8F090FD8 */ lw $t1, 0xfd8($t8) +/* 09C410 7F0678E0 0FC17674 */ jal get_item_in_hand +/* 09C414 7F0678E4 01892023 */ subu $a0, $t4, $t1 +/* 09C418 7F0678E8 50400007 */ beql $v0, $zero, .L7F067908 +/* 09C41C 7F0678EC 8E030000 */ lw $v1, ($s0) +/* 09C420 7F0678F0 8E030000 */ lw $v1, ($s0) +/* 09C424 7F0678F4 240E0001 */ li $t6, 1 +/* 09C428 7F0678F8 8C6A0FD8 */ lw $t2, 0xfd8($v1) +/* 09C42C 7F0678FC 01CA5823 */ subu $t3, $t6, $t2 +/* 09C430 7F067900 AC6B0FD8 */ sw $t3, 0xfd8($v1) +/* 09C434 7F067904 8E030000 */ lw $v1, ($s0) +.L7F067908: +/* 09C438 7F067908 240F0001 */ li $t7, 1 +/* 09C43C 7F06790C 8C790FD8 */ lw $t9, 0xfd8($v1) +/* 09C440 7F067910 00194080 */ sll $t0, $t9, 2 +/* 09C444 7F067914 03A86821 */ addu $t5, $sp, $t0 +/* 09C448 7F067918 ADAF0048 */ sw $t7, 0x48($t5) +/* 09C44C 7F06791C 8C780FD8 */ lw $t8, 0xfd8($v1) +/* 09C450 7F067920 00186080 */ sll $t4, $t8, 2 +/* 09C454 7F067924 000C4823 */ negu $t1, $t4 +/* 09C458 7F067928 03A97021 */ addu $t6, $sp, $t1 +/* 09C45C 7F06792C ADC0004C */ sw $zero, 0x4c($t6) +/* 09C460 7F067930 10000003 */ b .L7F067940 +/* 09C464 7F067934 00002025 */ move $a0, $zero +/* 09C468 7F067938 AC600FD4 */ sw $zero, 0xfd4($v1) +.L7F06793C: +/* 09C46C 7F06793C 00002025 */ move $a0, $zero +.L7F067940: +/* 09C470 7F067940 0FC192CA */ jal handle_weapon_id_values_possibly_1st_person_animation +/* 09C474 7F067944 8FA50048 */ lw $a1, 0x48($sp) +/* 09C478 7F067948 24040001 */ li $a0, 1 +/* 09C47C 7F06794C 0FC192CA */ jal handle_weapon_id_values_possibly_1st_person_animation +/* 09C480 7F067950 8FA5004C */ lw $a1, 0x4c($sp) +/* 09C484 7F067954 0FC17422 */ jal used_to_load_1st_person_model_on_demand +/* 09C488 7F067958 00002025 */ move $a0, $zero +/* 09C48C 7F06795C 0FC17422 */ jal used_to_load_1st_person_model_on_demand +/* 09C490 7F067960 24040001 */ li $a0, 1 +/* 09C494 7F067964 0FC19C69 */ jal sub_GAME_7F0671A4 +/* 09C498 7F067968 00000000 */ nop +/* 09C49C 7F06796C 8E0A0000 */ lw $t2, ($s0) +/* 09C4A0 7F067970 8D4B0FE0 */ lw $t3, 0xfe0($t2) +/* 09C4A4 7F067974 1160000A */ beqz $t3, .L7F0679A0 +/* 09C4A8 7F067978 00000000 */ nop +/* 09C4AC 7F06797C 0FC225E6 */ jal get_curplayer_positiondata +/* 09C4B0 7F067980 00000000 */ nop +/* 09C4B4 7F067984 8E050000 */ lw $a1, ($s0) +/* 09C4B8 7F067988 00402025 */ move $a0, $v0 +/* 09C4BC 7F06798C 0FC10027 */ jal set_color_shading_from_tile +/* 09C4C0 7F067990 24A50FDC */ addiu $a1, $a1, 0xfdc +/* 09C4C4 7F067994 8E190000 */ lw $t9, ($s0) +/* 09C4C8 7F067998 1000000A */ b .L7F0679C4 +/* 09C4CC 7F06799C AF200FE0 */ sw $zero, 0xfe0($t9) +.L7F0679A0: +/* 09C4D0 7F0679A0 0FC225E6 */ jal get_curplayer_positiondata +/* 09C4D4 7F0679A4 00000000 */ nop +/* 09C4D8 7F0679A8 00402025 */ move $a0, $v0 +/* 09C4DC 7F0679AC 0FC10027 */ jal set_color_shading_from_tile +/* 09C4E0 7F0679B0 27A50038 */ addiu $a1, $sp, 0x38 +/* 09C4E4 7F0679B4 8E040000 */ lw $a0, ($s0) +/* 09C4E8 7F0679B8 27A50038 */ addiu $a1, $sp, 0x38 +/* 09C4EC 7F0679BC 0FC100C4 */ jal update_color_shading +/* 09C4F0 7F0679C0 24840FDC */ addiu $a0, $a0, 0xfdc +.L7F0679C4: +/* 09C4F4 7F0679C4 0FC17674 */ jal get_item_in_hand +/* 09C4F8 7F0679C8 00002025 */ move $a0, $zero +/* 09C4FC 7F0679CC AFA2002C */ sw $v0, 0x2c($sp) +/* 09C500 7F0679D0 0FC17674 */ jal get_item_in_hand +/* 09C504 7F0679D4 24040001 */ li $a0, 1 +/* 09C508 7F0679D8 8FA4002C */ lw $a0, 0x2c($sp) +/* 09C50C 7F0679DC 0FC2367B */ jal sub_GAME_7F08D9EC +/* 09C510 7F0679E0 00402825 */ move $a1, $v0 +/* 09C514 7F0679E4 8E030000 */ lw $v1, ($s0) +/* 09C518 7F0679E8 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 09C51C 7F0679EC 8C621270 */ lw $v0, 0x1270($v1) +/* 09C520 7F0679F0 04420028 */ bltzl $v0, .L7F067A94 +/* 09C524 7F0679F4 8FBF001C */ lw $ra, 0x1c($sp) +/* 09C528 7F0679F8 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 09C52C 7F0679FC 24670870 */ addiu $a3, $v1, 0x870 +/* 09C530 7F067A00 2418FFFF */ li $t8, -1 +/* 09C534 7F067A04 004F4021 */ addu $t0, $v0, $t7 +/* 09C538 7F067A08 AC681270 */ sw $t0, 0x1270($v1) +/* 09C53C 7F067A0C 8E030000 */ lw $v1, ($s0) +/* 09C540 7F067A10 8C6D1270 */ lw $t5, 0x1270($v1) +/* 09C544 7F067A14 29A1012C */ slti $at, $t5, 0x12c +/* 09C548 7F067A18 50200014 */ beql $at, $zero, .L7F067A6C +/* 09C54C 7F067A1C AC781270 */ sw $t8, 0x1270($v1) +/* 09C550 7F067A20 8CE401D4 */ lw $a0, 0x1d4($a3) +/* 09C554 7F067A24 10800005 */ beqz $a0, .L7F067A3C +/* 09C558 7F067A28 00000000 */ nop +/* 09C55C 7F067A2C 0C00237C */ jal sfxGetArg0Unk3F +/* 09C560 7F067A30 AFA70034 */ sw $a3, 0x34($sp) +/* 09C564 7F067A34 14400016 */ bnez $v0, .L7F067A90 +/* 09C568 7F067A38 8FA70034 */ lw $a3, 0x34($sp) +.L7F067A3C: +/* 09C56C 7F067A3C 0FC2FF01 */ jal get_controls_locked_flag +/* 09C570 7F067A40 AFA70034 */ sw $a3, 0x34($sp) +/* 09C574 7F067A44 14400012 */ bnez $v0, .L7F067A90 +/* 09C578 7F067A48 8FA70034 */ lw $a3, 0x34($sp) +/* 09C57C 7F067A4C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09C580 7F067A50 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09C584 7F067A54 240500F6 */ li $a1, 246 +/* 09C588 7F067A58 0C002382 */ jal play_sfx_a1 +/* 09C58C 7F067A5C 24E601D4 */ addiu $a2, $a3, 0x1d4 +/* 09C590 7F067A60 1000000C */ b .L7F067A94 +/* 09C594 7F067A64 8FBF001C */ lw $ra, 0x1c($sp) +/* 09C598 7F067A68 AC781270 */ sw $t8, 0x1270($v1) +.L7F067A6C: +/* 09C59C 7F067A6C 8CE401D4 */ lw $a0, 0x1d4($a3) +/* 09C5A0 7F067A70 50800008 */ beql $a0, $zero, .L7F067A94 +/* 09C5A4 7F067A74 8FBF001C */ lw $ra, 0x1c($sp) +/* 09C5A8 7F067A78 0C00237C */ jal sfxGetArg0Unk3F +/* 09C5AC 7F067A7C AFA70034 */ sw $a3, 0x34($sp) +/* 09C5B0 7F067A80 10400003 */ beqz $v0, .L7F067A90 +/* 09C5B4 7F067A84 8FA70034 */ lw $a3, 0x34($sp) +/* 09C5B8 7F067A88 0C002408 */ jal sfxDeactivate +/* 09C5BC 7F067A8C 8CE401D4 */ lw $a0, 0x1d4($a3) +.L7F067A90: +/* 09C5C0 7F067A90 8FBF001C */ lw $ra, 0x1c($sp) +.L7F067A94: +/* 09C5C4 7F067A94 8FB00018 */ lw $s0, 0x18($sp) +/* 09C5C8 7F067A98 27BD0050 */ addiu $sp, $sp, 0x50 +/* 09C5CC 7F067A9C 03E00008 */ jr $ra +/* 09C5D0 7F067AA0 00000000 */ nop +) +#endif + + + + + + +void sub_GAME_7F067AA4(s32 param_1) +{ + pPlayer->field_FE4 = param_1; +} + + +void sub_GAME_7F067AB4(struct xyzpoint *param_1) +{ + pPlayer->hands[RIGHT_HAND].field_A38 = sub_GAME_7F05DCB8(RIGHT_HAND) + param_1->x; + pPlayer->hands[RIGHT_HAND].field_A3C = param_1->y; + pPlayer->hands[RIGHT_HAND].field_A40 = param_1->z; + + pPlayer->hands[LEFT_HAND].field_A38 = sub_GAME_7F05DCB8(LEFT_HAND) + param_1->x; + pPlayer->hands[LEFT_HAND].field_A3C = param_1->y; + pPlayer->hands[LEFT_HAND].field_A40 = param_1->z; + +} + + + + +#ifdef NONMATCHING +void sub_GAME_7F067B4C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F067B4C +/* 09C67C 7F067B4C 3C028008 */ lui $v0, %hi(pPlayer) +/* 09C680 7F067B50 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 09C684 7F067B54 8C4E0000 */ lw $t6, ($v0) +/* 09C688 7F067B58 C4800000 */ lwc1 $f0, ($a0) +/* 09C68C 7F067B5C E5C00C0C */ swc1 $f0, 0xc0c($t6) +/* 09C690 7F067B60 8C4F0000 */ lw $t7, ($v0) +/* 09C694 7F067B64 E5E00FB4 */ swc1 $f0, 0xfb4($t7) +/* 09C698 7F067B68 8C580000 */ lw $t8, ($v0) +/* 09C69C 7F067B6C C4800004 */ lwc1 $f0, 4($a0) +/* 09C6A0 7F067B70 E7000C10 */ swc1 $f0, 0xc10($t8) +/* 09C6A4 7F067B74 8C590000 */ lw $t9, ($v0) +/* 09C6A8 7F067B78 E7200FB8 */ swc1 $f0, 0xfb8($t9) +/* 09C6AC 7F067B7C 8C480000 */ lw $t0, ($v0) +/* 09C6B0 7F067B80 C4800008 */ lwc1 $f0, 8($a0) +/* 09C6B4 7F067B84 E5000C14 */ swc1 $f0, 0xc14($t0) +/* 09C6B8 7F067B88 8C490000 */ lw $t1, ($v0) +/* 09C6BC 7F067B8C 03E00008 */ jr $ra +/* 09C6C0 7F067B90 E5200FBC */ swc1 $f0, 0xfbc($t1) +) +#endif + + + + + +#ifdef NONMATCHING +void caclulate_gun_crosshair_position_rotation(void) { + +} +#else +GLOBAL_ASM( +.text +glabel caclulate_gun_crosshair_position_rotation +/* 09C6C4 7F067B94 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 09C6C8 7F067B98 F7B60018 */ sdc1 $f22, 0x18($sp) +/* 09C6CC 7F067B9C F7B40010 */ sdc1 $f20, 0x10($sp) +/* 09C6D0 7F067BA0 4486A000 */ mtc1 $a2, $f20 +/* 09C6D4 7F067BA4 4487B000 */ mtc1 $a3, $f22 +/* 09C6D8 7F067BA8 AFBF0024 */ sw $ra, 0x24($sp) +/* 09C6DC 7F067BAC E7AC0058 */ swc1 $f12, 0x58($sp) +/* 09C6E0 7F067BB0 0FC1E129 */ jal getPlayer_c_screenwidth +/* 09C6E4 7F067BB4 E7AE005C */ swc1 $f14, 0x5c($sp) +/* 09C6E8 7F067BB8 0FC1E12D */ jal getPlayer_c_screenheight +/* 09C6EC 7F067BBC E7A00050 */ swc1 $f0, 0x50($sp) +/* 09C6F0 7F067BC0 3C078008 */ lui $a3, %hi(pPlayer) +/* 09C6F4 7F067BC4 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 09C6F8 7F067BC8 8CE20000 */ lw $v0, ($a3) +/* 09C6FC 7F067BCC E7A0004C */ swc1 $f0, 0x4c($sp) +/* 09C700 7F067BD0 C7AC0058 */ lwc1 $f12, 0x58($sp) +/* 09C704 7F067BD4 C4520FF8 */ lwc1 $f18, 0xff8($v0) +/* 09C708 7F067BD8 C7AE005C */ lwc1 $f14, 0x5c($sp) +/* 09C70C 7F067BDC 3C048005 */ lui $a0, %hi(clock_timer) +/* 09C710 7F067BE0 4612A032 */ c.eq.s $f20, $f18 +/* 09C714 7F067BE4 00000000 */ nop +/* 09C718 7F067BE8 45010012 */ bc1t .L7F067C34 +/* 09C71C 7F067BEC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09C720 7F067BF0 44818000 */ mtc1 $at, $f16 +/* 09C724 7F067BF4 C4440FF0 */ lwc1 $f4, 0xff0($v0) +/* 09C728 7F067BF8 46128181 */ sub.s $f6, $f16, $f18 +/* 09C72C 7F067BFC 46148081 */ sub.s $f2, $f16, $f20 +/* 09C730 7F067C00 46062202 */ mul.s $f8, $f4, $f6 +/* 09C734 7F067C04 46024283 */ div.s $f10, $f8, $f2 +/* 09C738 7F067C08 E44A0FF0 */ swc1 $f10, 0xff0($v0) +/* 09C73C 7F067C0C 8CE20000 */ lw $v0, ($a3) +/* 09C740 7F067C10 C4460FF8 */ lwc1 $f6, 0xff8($v0) +/* 09C744 7F067C14 C4440FF4 */ lwc1 $f4, 0xff4($v0) +/* 09C748 7F067C18 46068201 */ sub.s $f8, $f16, $f6 +/* 09C74C 7F067C1C 46082282 */ mul.s $f10, $f4, $f8 +/* 09C750 7F067C20 46025183 */ div.s $f6, $f10, $f2 +/* 09C754 7F067C24 E4460FF4 */ swc1 $f6, 0xff4($v0) +/* 09C758 7F067C28 8CEE0000 */ lw $t6, ($a3) +/* 09C75C 7F067C2C E5D40FF8 */ swc1 $f20, 0xff8($t6) +/* 09C760 7F067C30 8CE20000 */ lw $v0, ($a3) +.L7F067C34: +/* 09C764 7F067C34 C452100C */ lwc1 $f18, 0x100c($v0) +/* 09C768 7F067C38 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09C76C 7F067C3C 44818000 */ mtc1 $at, $f16 +/* 09C770 7F067C40 4612B032 */ c.eq.s $f22, $f18 +/* 09C774 7F067C44 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09C778 7F067C48 46148081 */ sub.s $f2, $f16, $f20 +/* 09C77C 7F067C4C 45030014 */ bc1tl .L7F067CA0 +/* 09C780 7F067C50 44812000 */ mtc1 $at, $f4 +/* 09C784 7F067C54 46168101 */ sub.s $f4, $f16, $f22 +/* 09C788 7F067C58 46128281 */ sub.s $f10, $f16, $f18 +/* 09C78C 7F067C5C E7A4002C */ swc1 $f4, 0x2c($sp) +/* 09C790 7F067C60 C4481004 */ lwc1 $f8, 0x1004($v0) +/* 09C794 7F067C64 C7A4002C */ lwc1 $f4, 0x2c($sp) +/* 09C798 7F067C68 460A4182 */ mul.s $f6, $f8, $f10 +/* 09C79C 7F067C6C 46043203 */ div.s $f8, $f6, $f4 +/* 09C7A0 7F067C70 E4481004 */ swc1 $f8, 0x1004($v0) +/* 09C7A4 7F067C74 8CE20000 */ lw $v0, ($a3) +/* 09C7A8 7F067C78 C446100C */ lwc1 $f6, 0x100c($v0) +/* 09C7AC 7F067C7C C44A1008 */ lwc1 $f10, 0x1008($v0) +/* 09C7B0 7F067C80 46068101 */ sub.s $f4, $f16, $f6 +/* 09C7B4 7F067C84 C7A6002C */ lwc1 $f6, 0x2c($sp) +/* 09C7B8 7F067C88 46045202 */ mul.s $f8, $f10, $f4 +/* 09C7BC 7F067C8C 46064283 */ div.s $f10, $f8, $f6 +/* 09C7C0 7F067C90 E44A1008 */ swc1 $f10, 0x1008($v0) +/* 09C7C4 7F067C94 8CEF0000 */ lw $t7, ($a3) +/* 09C7C8 7F067C98 E5F6100C */ swc1 $f22, 0x100c($t7) +/* 09C7CC 7F067C9C 44812000 */ mtc1 $at, $f4 +.L7F067CA0: +/* 09C7D0 7F067CA0 24848374 */ addiu $a0, %lo(clock_timer) # addiu $a0, $a0, -0x7c8c +/* 09C7D4 7F067CA4 8C980000 */ lw $t8, ($a0) +/* 09C7D8 7F067CA8 46162201 */ sub.s $f8, $f4, $f22 +/* 09C7DC 7F067CAC 00001825 */ move $v1, $zero +/* 09C7E0 7F067CB0 1B000011 */ blez $t8, .L7F067CF8 +/* 09C7E4 7F067CB4 E7A80030 */ swc1 $f8, 0x30($sp) +/* 09C7E8 7F067CB8 8CE20000 */ lw $v0, ($a3) +.L7F067CBC: +/* 09C7EC 7F067CBC 24630001 */ addiu $v1, $v1, 1 +/* 09C7F0 7F067CC0 C4460FF0 */ lwc1 $f6, 0xff0($v0) +/* 09C7F4 7F067CC4 46143282 */ mul.s $f10, $f6, $f20 +/* 09C7F8 7F067CC8 460C5100 */ add.s $f4, $f10, $f12 +/* 09C7FC 7F067CCC E4440FF0 */ swc1 $f4, 0xff0($v0) +/* 09C800 7F067CD0 8CE20000 */ lw $v0, ($a3) +/* 09C804 7F067CD4 C4480FF4 */ lwc1 $f8, 0xff4($v0) +/* 09C808 7F067CD8 46144182 */ mul.s $f6, $f8, $f20 +/* 09C80C 7F067CDC 460E3280 */ add.s $f10, $f6, $f14 +/* 09C810 7F067CE0 E44A0FF4 */ swc1 $f10, 0xff4($v0) +/* 09C814 7F067CE4 8C990000 */ lw $t9, ($a0) +/* 09C818 7F067CE8 0079082A */ slt $at, $v1, $t9 +/* 09C81C 7F067CEC 5420FFF3 */ bnezl $at, .L7F067CBC +/* 09C820 7F067CF0 8CE20000 */ lw $v0, ($a3) +/* 09C824 7F067CF4 00001825 */ move $v1, $zero +.L7F067CF8: +/* 09C828 7F067CF8 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 09C82C 7F067CFC 44819000 */ mtc1 $at, $f18 +/* 09C830 7F067D00 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09C834 7F067D04 4481A000 */ mtc1 $at, $f20 +/* 09C838 7F067D08 C7A40050 */ lwc1 $f4, 0x50($sp) +/* 09C83C 7F067D0C 8CE20000 */ lw $v0, ($a3) +/* 09C840 7F067D10 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 09C844 7F067D14 46142202 */ mul.s $f8, $f4, $f20 +/* 09C848 7F067D18 E7A8002C */ swc1 $f8, 0x2c($sp) +/* 09C84C 7F067D1C C4460FF0 */ lwc1 $f6, 0xff0($v0) +/* 09C850 7F067D20 46023282 */ mul.s $f10, $f6, $f2 +/* 09C854 7F067D24 00000000 */ nop +/* 09C858 7F067D28 46045182 */ mul.s $f6, $f10, $f4 +/* 09C85C 7F067D2C 00000000 */ nop +/* 09C860 7F067D30 46143282 */ mul.s $f10, $f6, $f20 +/* 09C864 7F067D34 46085100 */ add.s $f4, $f10, $f8 +/* 09C868 7F067D38 E4440FE8 */ swc1 $f4, 0xfe8($v0) +/* 09C86C 7F067D3C 8CE20000 */ lw $v0, ($a3) +/* 09C870 7F067D40 C4460FF4 */ lwc1 $f6, 0xff4($v0) +/* 09C874 7F067D44 46023282 */ mul.s $f10, $f6, $f2 +/* 09C878 7F067D48 00000000 */ nop +/* 09C87C 7F067D4C 46005202 */ mul.s $f8, $f10, $f0 +/* 09C880 7F067D50 00000000 */ nop +/* 09C884 7F067D54 46144102 */ mul.s $f4, $f8, $f20 +/* 09C888 7F067D58 00000000 */ nop +/* 09C88C 7F067D5C 46140182 */ mul.s $f6, $f0, $f20 +/* 09C890 7F067D60 46062280 */ add.s $f10, $f4, $f6 +/* 09C894 7F067D64 E44A0FEC */ swc1 $f10, 0xfec($v0) +/* 09C898 7F067D68 8CE20000 */ lw $v0, ($a3) +/* 09C89C 7F067D6C C7A80050 */ lwc1 $f8, 0x50($sp) +/* 09C8A0 7F067D70 C4500FE8 */ lwc1 $f16, 0xfe8($v0) +/* 09C8A4 7F067D74 4612803C */ c.lt.s $f16, $f18 +/* 09C8A8 7F067D78 00000000 */ nop +/* 09C8AC 7F067D7C 45000004 */ bc1f .L7F067D90 +/* 09C8B0 7F067D80 00000000 */ nop +/* 09C8B4 7F067D84 E4520FE8 */ swc1 $f18, 0xfe8($v0) +/* 09C8B8 7F067D88 1000000A */ b .L7F067DB4 +/* 09C8BC 7F067D8C 8CE20000 */ lw $v0, ($a3) +.L7F067D90: +/* 09C8C0 7F067D90 44812000 */ mtc1 $at, $f4 +/* 09C8C4 7F067D94 00000000 */ nop +/* 09C8C8 7F067D98 46044081 */ sub.s $f2, $f8, $f4 +/* 09C8CC 7F067D9C 4610103C */ c.lt.s $f2, $f16 +/* 09C8D0 7F067DA0 00000000 */ nop +/* 09C8D4 7F067DA4 45020004 */ bc1fl .L7F067DB8 +/* 09C8D8 7F067DA8 C4420FEC */ lwc1 $f2, 0xfec($v0) +/* 09C8DC 7F067DAC E4420FE8 */ swc1 $f2, 0xfe8($v0) +/* 09C8E0 7F067DB0 8CE20000 */ lw $v0, ($a3) +.L7F067DB4: +/* 09C8E4 7F067DB4 C4420FEC */ lwc1 $f2, 0xfec($v0) +.L7F067DB8: +/* 09C8E8 7F067DB8 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 09C8EC 7F067DBC 4612103C */ c.lt.s $f2, $f18 +/* 09C8F0 7F067DC0 00000000 */ nop +/* 09C8F4 7F067DC4 45020004 */ bc1fl .L7F067DD8 +/* 09C8F8 7F067DC8 44813000 */ mtc1 $at, $f6 +/* 09C8FC 7F067DCC 10000009 */ b .L7F067DF4 +/* 09C900 7F067DD0 E4520FEC */ swc1 $f18, 0xfec($v0) +/* 09C904 7F067DD4 44813000 */ mtc1 $at, $f6 +.L7F067DD8: +/* 09C908 7F067DD8 00000000 */ nop +/* 09C90C 7F067DDC 46060401 */ sub.s $f16, $f0, $f6 +/* 09C910 7F067DE0 4602803C */ c.lt.s $f16, $f2 +/* 09C914 7F067DE4 00000000 */ nop +/* 09C918 7F067DE8 45020003 */ bc1fl .L7F067DF8 +/* 09C91C 7F067DEC AFA30054 */ sw $v1, 0x54($sp) +/* 09C920 7F067DF0 E4500FEC */ swc1 $f16, 0xfec($v0) +.L7F067DF4: +/* 09C924 7F067DF4 AFA30054 */ sw $v1, 0x54($sp) +.L7F067DF8: +/* 09C928 7F067DF8 E7AC0058 */ swc1 $f12, 0x58($sp) +/* 09C92C 7F067DFC 0FC1E131 */ jal getPlayer_c_screenleft +/* 09C930 7F067E00 E7AE005C */ swc1 $f14, 0x5c($sp) +/* 09C934 7F067E04 3C078008 */ lui $a3, %hi(pPlayer) +/* 09C938 7F067E08 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 09C93C 7F067E0C 8CE20000 */ lw $v0, ($a3) +/* 09C940 7F067E10 C44A0FE8 */ lwc1 $f10, 0xfe8($v0) +/* 09C944 7F067E14 46005200 */ add.s $f8, $f10, $f0 +/* 09C948 7F067E18 0FC1E135 */ jal getPlayer_c_screentop +/* 09C94C 7F067E1C E4480FE8 */ swc1 $f8, 0xfe8($v0) +/* 09C950 7F067E20 3C078008 */ lui $a3, %hi(pPlayer) +/* 09C954 7F067E24 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 09C958 7F067E28 8CE20000 */ lw $v0, ($a3) +/* 09C95C 7F067E2C 8FA30054 */ lw $v1, 0x54($sp) +/* 09C960 7F067E30 3C048005 */ lui $a0, %hi(clock_timer) +/* 09C964 7F067E34 C4440FEC */ lwc1 $f4, 0xfec($v0) +/* 09C968 7F067E38 C7AC0058 */ lwc1 $f12, 0x58($sp) +/* 09C96C 7F067E3C C7AE005C */ lwc1 $f14, 0x5c($sp) +/* 09C970 7F067E40 46002180 */ add.s $f6, $f4, $f0 +/* 09C974 7F067E44 24848374 */ addiu $a0, %lo(clock_timer) # addiu $a0, $a0, -0x7c8c +/* 09C978 7F067E48 E4460FEC */ swc1 $f6, 0xfec($v0) +/* 09C97C 7F067E4C 8C880000 */ lw $t0, ($a0) +/* 09C980 7F067E50 59000011 */ blezl $t0, .L7F067E98 +/* 09C984 7F067E54 8CE20000 */ lw $v0, ($a3) +/* 09C988 7F067E58 8CE20000 */ lw $v0, ($a3) +.L7F067E5C: +/* 09C98C 7F067E5C 24630001 */ addiu $v1, $v1, 1 +/* 09C990 7F067E60 C44A1004 */ lwc1 $f10, 0x1004($v0) +/* 09C994 7F067E64 46165202 */ mul.s $f8, $f10, $f22 +/* 09C998 7F067E68 460C4100 */ add.s $f4, $f8, $f12 +/* 09C99C 7F067E6C E4441004 */ swc1 $f4, 0x1004($v0) +/* 09C9A0 7F067E70 8CE20000 */ lw $v0, ($a3) +/* 09C9A4 7F067E74 C4461008 */ lwc1 $f6, 0x1008($v0) +/* 09C9A8 7F067E78 46163282 */ mul.s $f10, $f6, $f22 +/* 09C9AC 7F067E7C 460E5200 */ add.s $f8, $f10, $f14 +/* 09C9B0 7F067E80 E4481008 */ swc1 $f8, 0x1008($v0) +/* 09C9B4 7F067E84 8C890000 */ lw $t1, ($a0) +/* 09C9B8 7F067E88 0069082A */ slt $at, $v1, $t1 +/* 09C9BC 7F067E8C 5420FFF3 */ bnezl $at, .L7F067E5C +/* 09C9C0 7F067E90 8CE20000 */ lw $v0, ($a3) +/* 09C9C4 7F067E94 8CE20000 */ lw $v0, ($a3) +.L7F067E98: +/* 09C9C8 7F067E98 C7A00030 */ lwc1 $f0, 0x30($sp) +/* 09C9CC 7F067E9C C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 09C9D0 7F067EA0 C4441004 */ lwc1 $f4, 0x1004($v0) +/* 09C9D4 7F067EA4 C7A2004C */ lwc1 $f2, 0x4c($sp) +/* 09C9D8 7F067EA8 46002182 */ mul.s $f6, $f4, $f0 +/* 09C9DC 7F067EAC 00000000 */ nop +/* 09C9E0 7F067EB0 460A3202 */ mul.s $f8, $f6, $f10 +/* 09C9E4 7F067EB4 C7A6002C */ lwc1 $f6, 0x2c($sp) +/* 09C9E8 7F067EB8 46144102 */ mul.s $f4, $f8, $f20 +/* 09C9EC 7F067EBC 46062280 */ add.s $f10, $f4, $f6 +/* 09C9F0 7F067EC0 E44A0FFC */ swc1 $f10, 0xffc($v0) +/* 09C9F4 7F067EC4 8CE20000 */ lw $v0, ($a3) +/* 09C9F8 7F067EC8 C4481008 */ lwc1 $f8, 0x1008($v0) +/* 09C9FC 7F067ECC 46004102 */ mul.s $f4, $f8, $f0 +/* 09CA00 7F067ED0 00000000 */ nop +/* 09CA04 7F067ED4 46022182 */ mul.s $f6, $f4, $f2 +/* 09CA08 7F067ED8 00000000 */ nop +/* 09CA0C 7F067EDC 46143282 */ mul.s $f10, $f6, $f20 +/* 09CA10 7F067EE0 00000000 */ nop +/* 09CA14 7F067EE4 46141202 */ mul.s $f8, $f2, $f20 +/* 09CA18 7F067EE8 46085100 */ add.s $f4, $f10, $f8 +/* 09CA1C 7F067EEC 0FC1E131 */ jal getPlayer_c_screenleft +/* 09CA20 7F067EF0 E4441000 */ swc1 $f4, 0x1000($v0) +/* 09CA24 7F067EF4 3C078008 */ lui $a3, %hi(pPlayer) +/* 09CA28 7F067EF8 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 09CA2C 7F067EFC 8CE20000 */ lw $v0, ($a3) +/* 09CA30 7F067F00 C4460FFC */ lwc1 $f6, 0xffc($v0) +/* 09CA34 7F067F04 46003280 */ add.s $f10, $f6, $f0 +/* 09CA38 7F067F08 0FC1E135 */ jal getPlayer_c_screentop +/* 09CA3C 7F067F0C E44A0FFC */ swc1 $f10, 0xffc($v0) +/* 09CA40 7F067F10 3C078008 */ lui $a3, %hi(pPlayer) +/* 09CA44 7F067F14 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 09CA48 7F067F18 8CE20000 */ lw $v0, ($a3) +/* 09CA4C 7F067F1C 27A50040 */ addiu $a1, $sp, 0x40 +/* 09CA50 7F067F20 3C06447A */ lui $a2, 0x447a +/* 09CA54 7F067F24 C4481000 */ lwc1 $f8, 0x1000($v0) +/* 09CA58 7F067F28 46004100 */ add.s $f4, $f8, $f0 +/* 09CA5C 7F067F2C E4441000 */ swc1 $f4, 0x1000($v0) +/* 09CA60 7F067F30 8CE40000 */ lw $a0, ($a3) +/* 09CA64 7F067F34 0FC1DFBB */ jal sub_GAME_7F077EEC +/* 09CA68 7F067F38 24840FFC */ addiu $a0, $a0, 0xffc +/* 09CA6C 7F067F3C 0FC19EAD */ jal sub_GAME_7F067AB4 +/* 09CA70 7F067F40 27A40040 */ addiu $a0, $sp, 0x40 +/* 09CA74 7F067F44 8FBF0024 */ lw $ra, 0x24($sp) +/* 09CA78 7F067F48 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 09CA7C 7F067F4C D7B60018 */ ldc1 $f22, 0x18($sp) +/* 09CA80 7F067F50 03E00008 */ jr $ra +/* 09CA84 7F067F54 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F067F58(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F067F58 +/* 09CA88 7F067F58 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 09CA8C 7F067F5C AFBF0014 */ sw $ra, 0x14($sp) +/* 09CA90 7F067F60 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 09CA94 7F067F64 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 09CA98 7F067F68 AFA60020 */ sw $a2, 0x20($sp) +/* 09CA9C 7F067F6C 0FC17674 */ jal get_item_in_hand +/* 09CAA0 7F067F70 00002025 */ move $a0, $zero +/* 09CAA4 7F067F74 0FC1722D */ jal get_ptr_item_statistics +/* 09CAA8 7F067F78 00402025 */ move $a0, $v0 +/* 09CAAC 7F067F7C C7A20020 */ lwc1 $f2, 0x20($sp) +/* 09CAB0 7F067F80 C440003C */ lwc1 $f0, 0x3c($v0) +/* 09CAB4 7F067F84 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 09CAB8 7F067F88 44061000 */ mfc1 $a2, $f2 +/* 09CABC 7F067F8C 4602003C */ c.lt.s $f0, $f2 +/* 09CAC0 7F067F90 00000000 */ nop +/* 09CAC4 7F067F94 45020003 */ bc1fl .L7F067FA4 +/* 09CAC8 7F067F98 44070000 */ mfc1 $a3, $f0 +/* 09CACC 7F067F9C 46001006 */ mov.s $f0, $f2 +/* 09CAD0 7F067FA0 44070000 */ mfc1 $a3, $f0 +.L7F067FA4: +/* 09CAD4 7F067FA4 0FC19EE5 */ jal caclulate_gun_crosshair_position_rotation +/* 09CAD8 7F067FA8 C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 09CADC 7F067FAC 8FBF0014 */ lw $ra, 0x14($sp) +/* 09CAE0 7F067FB0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 09CAE4 7F067FB4 03E00008 */ jr $ra +/* 09CAE8 7F067FB8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F067FBC(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F067FBC +/* 09CAEC 7F067FBC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 09CAF0 7F067FC0 AFBF0014 */ sw $ra, 0x14($sp) +/* 09CAF4 7F067FC4 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 09CAF8 7F067FC8 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 09CAFC 7F067FCC 0FC17674 */ jal get_item_in_hand +/* 09CB00 7F067FD0 00002025 */ move $a0, $zero +/* 09CB04 7F067FD4 0FC1722D */ jal get_ptr_item_statistics +/* 09CB08 7F067FD8 00402025 */ move $a0, $v0 +/* 09CB0C 7F067FDC C4400038 */ lwc1 $f0, 0x38($v0) +/* 09CB10 7F067FE0 C442003C */ lwc1 $f2, 0x3c($v0) +/* 09CB14 7F067FE4 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 09CB18 7F067FE8 44060000 */ mfc1 $a2, $f0 +/* 09CB1C 7F067FEC 44071000 */ mfc1 $a3, $f2 +/* 09CB20 7F067FF0 0FC19EE5 */ jal caclulate_gun_crosshair_position_rotation +/* 09CB24 7F067FF4 C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 09CB28 7F067FF8 8FBF0014 */ lw $ra, 0x14($sp) +/* 09CB2C 7F067FFC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 09CB30 7F068000 03E00008 */ jr $ra +/* 09CB34 7F068004 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F067FBC +/* 09D104 7F068594 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 09D108 7F068598 AFBF0014 */ sw $ra, 0x14($sp) +/* 09D10C 7F06859C E7AC0018 */ swc1 $f12, 0x18($sp) +/* 09D110 7F0685A0 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 09D114 7F0685A4 0FC177BC */ jal get_item_in_hand +/* 09D118 7F0685A8 00002025 */ move $a0, $zero +/* 09D11C 7F0685AC 0FC17375 */ jal get_ptr_item_statistics +/* 09D120 7F0685B0 00402025 */ move $a0, $v0 +/* 09D124 7F0685B4 C440003C */ lwc1 $f0, 0x3c($v0) +/* 09D128 7F0685B8 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 09D12C 7F0685BC 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 09D130 7F0685C0 44070000 */ mfc1 $a3, $f0 +/* 09D134 7F0685C4 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 09D138 7F0685C8 0FC1A05B */ jal caclulate_gun_crosshair_position_rotation +/* 09D13C 7F0685CC C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 09D140 7F0685D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 09D144 7F0685D4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 09D148 7F0685D8 03E00008 */ jr $ra +/* 09D14C 7F0685DC 00000000 */ nop +) +#endif + +#endif + +void get_bullet_angle(f32* horizontal_angle, f32* vertical_angle) { + *horizontal_angle = pPlayer->field_FE8; + *vertical_angle = pPlayer->field_FEC; +} + +#ifdef NONMATCHING +void sub_GAME_7F06802C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06802C +/* 09CB5C 7F06802C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 09CB60 7F068030 AFBF0014 */ sw $ra, 0x14($sp) +/* 09CB64 7F068034 0FC1E131 */ jal getPlayer_c_screenleft +/* 09CB68 7F068038 00000000 */ nop +/* 09CB6C 7F06803C 0FC1E129 */ jal getPlayer_c_screenwidth +/* 09CB70 7F068040 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 09CB74 7F068044 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09CB78 7F068048 44812000 */ mtc1 $at, $f4 +/* 09CB7C 7F06804C C7A8001C */ lwc1 $f8, 0x1c($sp) +/* 09CB80 7F068050 3C028008 */ lui $v0, %hi(pPlayer) +/* 09CB84 7F068054 46040182 */ mul.s $f6, $f0, $f4 +/* 09CB88 7F068058 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 09CB8C 7F06805C 8C4E0000 */ lw $t6, ($v0) +/* 09CB90 7F068060 46083080 */ add.s $f2, $f6, $f8 +/* 09CB94 7F068064 E5C20FE8 */ swc1 $f2, 0xfe8($t6) +/* 09CB98 7F068068 8C4F0000 */ lw $t7, ($v0) +/* 09CB9C 7F06806C 0FC1E135 */ jal getPlayer_c_screentop +/* 09CBA0 7F068070 E5E20FFC */ swc1 $f2, 0xffc($t7) +/* 09CBA4 7F068074 0FC1E12D */ jal getPlayer_c_screenheight +/* 09CBA8 7F068078 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 09CBAC 7F06807C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09CBB0 7F068080 44815000 */ mtc1 $at, $f10 +/* 09CBB4 7F068084 C7B2001C */ lwc1 $f18, 0x1c($sp) +/* 09CBB8 7F068088 3C028008 */ lui $v0, %hi(pPlayer) +/* 09CBBC 7F06808C 460A0402 */ mul.s $f16, $f0, $f10 +/* 09CBC0 7F068090 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 09CBC4 7F068094 8C580000 */ lw $t8, ($v0) +/* 09CBC8 7F068098 27A50024 */ addiu $a1, $sp, 0x24 +/* 09CBCC 7F06809C 3C06447A */ lui $a2, 0x447a +/* 09CBD0 7F0680A0 46128080 */ add.s $f2, $f16, $f18 +/* 09CBD4 7F0680A4 E7020FEC */ swc1 $f2, 0xfec($t8) +/* 09CBD8 7F0680A8 8C590000 */ lw $t9, ($v0) +/* 09CBDC 7F0680AC E7221000 */ swc1 $f2, 0x1000($t9) +/* 09CBE0 7F0680B0 8C440000 */ lw $a0, ($v0) +/* 09CBE4 7F0680B4 0FC1DFBB */ jal sub_GAME_7F077EEC +/* 09CBE8 7F0680B8 24840FFC */ addiu $a0, $a0, 0xffc +/* 09CBEC 7F0680BC 0FC19EAD */ jal sub_GAME_7F067AB4 +/* 09CBF0 7F0680C0 27A40024 */ addiu $a0, $sp, 0x24 +/* 09CBF4 7F0680C4 8FBF0014 */ lw $ra, 0x14($sp) +/* 09CBF8 7F0680C8 27BD0030 */ addiu $sp, $sp, 0x30 +/* 09CBFC 7F0680CC 03E00008 */ jr $ra +/* 09CC00 7F0680D0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void glabel(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0680D4 +/* 09CC04 7F0680D4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 09CC08 7F0680D8 3C038008 */ lui $v1, %hi(pPlayer) +/* 09CC0C 7F0680DC 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 09CC10 7F0680E0 AFBF0014 */ sw $ra, 0x14($sp) +/* 09CC14 7F0680E4 C4840000 */ lwc1 $f4, ($a0) +/* 09CC18 7F0680E8 8C6E0000 */ lw $t6, ($v1) +/* 09CC1C 7F0680EC E5C41010 */ swc1 $f4, 0x1010($t6) +/* 09CC20 7F0680F0 8C6F0000 */ lw $t7, ($v1) +/* 09CC24 7F0680F4 C4860004 */ lwc1 $f6, 4($a0) +/* 09CC28 7F0680F8 E5E61014 */ swc1 $f6, 0x1014($t7) +/* 09CC2C 7F0680FC 8C780000 */ lw $t8, ($v1) +/* 09CC30 7F068100 C4880008 */ lwc1 $f8, 8($a0) +/* 09CC34 7F068104 E7081018 */ swc1 $f8, 0x1018($t8) +/* 09CC38 7F068108 8C650000 */ lw $a1, ($v1) +/* 09CC3C 7F06810C 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 09CC40 7F068110 24A5101C */ addiu $a1, $a1, 0x101c +/* 09CC44 7F068114 3C038008 */ lui $v1, %hi(pPlayer) +/* 09CC48 7F068118 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 09CC4C 7F06811C 8C620000 */ lw $v0, ($v1) +/* 09CC50 7F068120 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 09CC54 7F068124 44810000 */ mtc1 $at, $f0 +/* 09CC58 7F068128 C44A103C */ lwc1 $f10, 0x103c($v0) +/* 09CC5C 7F06812C 27A4001C */ addiu $a0, $sp, 0x1c +/* 09CC60 7F068130 24450FE8 */ addiu $a1, $v0, 0xfe8 +/* 09CC64 7F068134 46005402 */ mul.s $f16, $f10, $f0 +/* 09CC68 7F068138 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 09CC6C 7F06813C C4521040 */ lwc1 $f18, 0x1040($v0) +/* 09CC70 7F068140 46009102 */ mul.s $f4, $f18, $f0 +/* 09CC74 7F068144 E7A40020 */ swc1 $f4, 0x20($sp) +/* 09CC78 7F068148 C4461044 */ lwc1 $f6, 0x1044($v0) +/* 09CC7C 7F06814C 46003202 */ mul.s $f8, $f6, $f0 +/* 09CC80 7F068150 0FC1DFFD */ jal sub_GAME_7F077FF4 +/* 09CC84 7F068154 E7A80024 */ swc1 $f8, 0x24($sp) +/* 09CC88 7F068158 3C038008 */ lui $v1, %hi(pPlayer) +/* 09CC8C 7F06815C 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 09CC90 7F068160 8C620000 */ lw $v0, ($v1) +/* 09CC94 7F068164 27A4001C */ addiu $a0, $sp, 0x1c +/* 09CC98 7F068168 C44A0FE8 */ lwc1 $f10, 0xfe8($v0) +/* 09CC9C 7F06816C E44A0FFC */ swc1 $f10, 0xffc($v0) +/* 09CCA0 7F068170 8C620000 */ lw $v0, ($v1) +/* 09CCA4 7F068174 C4500FEC */ lwc1 $f16, 0xfec($v0) +/* 09CCA8 7F068178 0FC19EAD */ jal sub_GAME_7F067AB4 +/* 09CCAC 7F06817C E4501000 */ swc1 $f16, 0x1000($v0) +/* 09CCB0 7F068180 8FBF0014 */ lw $ra, 0x14($sp) +/* 09CCB4 7F068184 27BD0028 */ addiu $sp, $sp, 0x28 +/* 09CCB8 7F068188 03E00008 */ jr $ra +/* 09CCBC 7F06818C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F068190(void *arg0) { + // Node 0 + *arg0 = 0.0f; + arg0->unk4 = 0.0f; + arg0->unk8 = 0.0f; + return sub_GAME_7F077EEC((pPlayer + 0xfe8), 0x3f800000); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F068190 +/* 09CCC0 7F068190 44800000 */ mtc1 $zero, $f0 +/* 09CCC4 7F068194 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 09CCC8 7F068198 AFBF0014 */ sw $ra, 0x14($sp) +/* 09CCCC 7F06819C E4800000 */ swc1 $f0, ($a0) +/* 09CCD0 7F0681A0 E4800004 */ swc1 $f0, 4($a0) +/* 09CCD4 7F0681A4 E4800008 */ swc1 $f0, 8($a0) +/* 09CCD8 7F0681A8 3C048008 */ lui $a0, %hi(pPlayer) +/* 09CCDC 7F0681AC 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 09CCE0 7F0681B0 3C063F80 */ lui $a2, 0x3f80 +/* 09CCE4 7F0681B4 0FC1DFBB */ jal sub_GAME_7F077EEC +/* 09CCE8 7F0681B8 24840FE8 */ addiu $a0, $a0, 0xfe8 +/* 09CCEC 7F0681BC 8FBF0014 */ lw $ra, 0x14($sp) +/* 09CCF0 7F0681C0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 09CCF4 7F0681C4 03E00008 */ jr $ra +/* 09CCF8 7F0681C8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0681CC(void *arg0, s32 arg1, s32 arg2) { + f32 sp18; + s32 sp1C; + f32 sp20; + f32 sp24; + f32 sp28; + f32 sp30; + f32 sp34; + ? temp_ret; + f32 temp_f10; + f32 temp_f16; + ? temp_ret_2; + f32 temp_f8; + f32 temp_f16_2; + f32 phi_f16; + f32 phi_f10; + f32 phi_f16_2; + f32 phi_f8; + + // Node 0 + sp28 = (f32) get_ptr_item_statistics(get_item_in_hand(arg2))->unk30; + if (bondwalkItemCheckBitflags(get_item_in_hand_or_watch_menu(arg2), 0x1000) != 0) + { + // Node 1 + if ((pPlayer + (arg2 * 0x3a8))->unkC08 == 0x3e800000) + { + // Node 2 + sp28 = (f32) (sp28 * 0x3e800000); + } + } + // Node 3 + sp24 = (f32) ((120.0f * sp28) / video_related_23()); + sp1C = get_random_value(); + temp_ret = get_random_value(); + temp_f10 = (f32) sp1C; + phi_f10 = temp_f10; + if (sp1C < 0) + { + // Node 4 + phi_f10 = (temp_f10 + 4294967296.0f); + } + // Node 5 + temp_f16 = (f32) temp_ret; + phi_f16 = temp_f16; + if (temp_ret < 0) + { + // Node 6 + phi_f16 = (temp_f16 + 4294967296.0f); + } + // Node 7 + sp20 = (f32) ((phi_f16 * 2.3283064365386963e-10f) * ((phi_f10 * 2.3283064365386963e-10f) - 0.5f)); + sp18 = getPlayer_c_screenwidth(); + sp30 = (f32) (((((sp20 * sp24) * sp18) * D_800543B0) / (getPlayer_c_perspaspect() * 320.0f)) + pPlayer->unkFE8); + sp1C = get_random_value(); + temp_ret_2 = get_random_value(); + temp_f8 = (f32) sp1C; + phi_f8 = temp_f8; + if (sp1C < 0) + { + // Node 8 + phi_f8 = (temp_f8 + 4294967296.0f); + } + // Node 9 + temp_f16_2 = (f32) temp_ret_2; + phi_f16_2 = temp_f16_2; + if (temp_ret_2 < 0) + { + // Node 10 + phi_f16_2 = (temp_f16_2 + 4294967296.0f); + } + // Node 11 + sp20 = (f32) ((phi_f16_2 * 2.3283064365386963e-10f) * ((phi_f8 * 2.3283064365386963e-10f) - 0.5f)); + sp34 = (f32) (((getPlayer_c_screenheight() * (sp20 * sp24)) / 240.0f) + pPlayer->unkFEC); + *arg0 = 0.0f; + arg0->unk4 = 0.0f; + arg0->unk8 = 0.0f; + return sub_GAME_7F077EEC(&sp30, arg1, 0x3f800000); +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800543B0 +.word 0x3faaaaab /*1.3333334*/ +.text +glabel sub_GAME_7F0681CC +/* 09CCFC 7F0681CC 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 09CD00 7F0681D0 AFBF0014 */ sw $ra, 0x14($sp) +/* 09CD04 7F0681D4 AFA40038 */ sw $a0, 0x38($sp) +/* 09CD08 7F0681D8 AFA5003C */ sw $a1, 0x3c($sp) +/* 09CD0C 7F0681DC AFA60040 */ sw $a2, 0x40($sp) +/* 09CD10 7F0681E0 0FC17674 */ jal get_item_in_hand +/* 09CD14 7F0681E4 00C02025 */ move $a0, $a2 +/* 09CD18 7F0681E8 0FC1722D */ jal get_ptr_item_statistics +/* 09CD1C 7F0681EC 00402025 */ move $a0, $v0 +/* 09CD20 7F0681F0 C4440030 */ lwc1 $f4, 0x30($v0) +/* 09CD24 7F0681F4 8FA40040 */ lw $a0, 0x40($sp) +/* 09CD28 7F0681F8 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 09CD2C 7F0681FC E7A40028 */ swc1 $f4, 0x28($sp) +/* 09CD30 7F068200 00402025 */ move $a0, $v0 +/* 09CD34 7F068204 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09CD38 7F068208 24051000 */ li $a1, 4096 +/* 09CD3C 7F06820C 10400015 */ beqz $v0, .L7F068264 +/* 09CD40 7F068210 00000000 */ nop +/* 09CD44 7F068214 8FAF0040 */ lw $t7, 0x40($sp) +/* 09CD48 7F068218 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 09CD4C 7F06821C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 09CD50 7F068220 000FC0C0 */ sll $t8, $t7, 3 +/* 09CD54 7F068224 030FC023 */ subu $t8, $t8, $t7 +/* 09CD58 7F068228 0018C080 */ sll $t8, $t8, 2 +/* 09CD5C 7F06822C 030FC021 */ addu $t8, $t8, $t7 +/* 09CD60 7F068230 0018C080 */ sll $t8, $t8, 2 +/* 09CD64 7F068234 030FC021 */ addu $t8, $t8, $t7 +/* 09CD68 7F068238 0018C0C0 */ sll $t8, $t8, 3 +/* 09CD6C 7F06823C 01D8C821 */ addu $t9, $t6, $t8 +/* 09CD70 7F068240 8F280C08 */ lw $t0, 0xc08($t9) +/* 09CD74 7F068244 24010001 */ li $at, 1 +/* 09CD78 7F068248 C7A60028 */ lwc1 $f6, 0x28($sp) +/* 09CD7C 7F06824C 15010005 */ bne $t0, $at, .L7F068264 +/* 09CD80 7F068250 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 09CD84 7F068254 44814000 */ mtc1 $at, $f8 +/* 09CD88 7F068258 00000000 */ nop +/* 09CD8C 7F06825C 46083282 */ mul.s $f10, $f6, $f8 +/* 09CD90 7F068260 E7AA0028 */ swc1 $f10, 0x28($sp) +.L7F068264: +/* 09CD94 7F068264 0C001177 */ jal video_related_23 +/* 09CD98 7F068268 00000000 */ nop +/* 09CD9C 7F06826C 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 09CDA0 7F068270 44818000 */ mtc1 $at, $f16 +/* 09CDA4 7F068274 C7B20028 */ lwc1 $f18, 0x28($sp) +/* 09CDA8 7F068278 46128102 */ mul.s $f4, $f16, $f18 +/* 09CDAC 7F06827C 46002183 */ div.s $f6, $f4, $f0 +/* 09CDB0 7F068280 0C002914 */ jal get_random_value +/* 09CDB4 7F068284 E7A60024 */ swc1 $f6, 0x24($sp) +/* 09CDB8 7F068288 0C002914 */ jal get_random_value +/* 09CDBC 7F06828C AFA2001C */ sw $v0, 0x1c($sp) +/* 09CDC0 7F068290 8FA9001C */ lw $t1, 0x1c($sp) +/* 09CDC4 7F068294 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09CDC8 7F068298 44810000 */ mtc1 $at, $f0 +/* 09CDCC 7F06829C 44894000 */ mtc1 $t1, $f8 +/* 09CDD0 7F0682A0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09CDD4 7F0682A4 05210004 */ bgez $t1, .L7F0682B8 +/* 09CDD8 7F0682A8 468042A0 */ cvt.s.w $f10, $f8 +/* 09CDDC 7F0682AC 44818000 */ mtc1 $at, $f16 +/* 09CDE0 7F0682B0 00000000 */ nop +/* 09CDE4 7F0682B4 46105280 */ add.s $f10, $f10, $f16 +.L7F0682B8: +/* 09CDE8 7F0682B8 46005482 */ mul.s $f18, $f10, $f0 +/* 09CDEC 7F0682BC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09CDF0 7F0682C0 44812000 */ mtc1 $at, $f4 +/* 09CDF4 7F0682C4 44824000 */ mtc1 $v0, $f8 +/* 09CDF8 7F0682C8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09CDFC 7F0682CC 46804420 */ cvt.s.w $f16, $f8 +/* 09CE00 7F0682D0 04410004 */ bgez $v0, .L7F0682E4 +/* 09CE04 7F0682D4 46049181 */ sub.s $f6, $f18, $f4 +/* 09CE08 7F0682D8 44815000 */ mtc1 $at, $f10 +/* 09CE0C 7F0682DC 00000000 */ nop +/* 09CE10 7F0682E0 460A8400 */ add.s $f16, $f16, $f10 +.L7F0682E4: +/* 09CE14 7F0682E4 46008482 */ mul.s $f18, $f16, $f0 +/* 09CE18 7F0682E8 00000000 */ nop +/* 09CE1C 7F0682EC 46069102 */ mul.s $f4, $f18, $f6 +/* 09CE20 7F0682F0 0FC1E129 */ jal getPlayer_c_screenwidth +/* 09CE24 7F0682F4 E7A40020 */ swc1 $f4, 0x20($sp) +/* 09CE28 7F0682F8 0FC1E13D */ jal getPlayer_c_perspaspect +/* 09CE2C 7F0682FC E7A00018 */ swc1 $f0, 0x18($sp) +/* 09CE30 7F068300 C7A80020 */ lwc1 $f8, 0x20($sp) +/* 09CE34 7F068304 C7AA0024 */ lwc1 $f10, 0x24($sp) +/* 09CE38 7F068308 C7B20018 */ lwc1 $f18, 0x18($sp) +/* 09CE3C 7F06830C 3C018005 */ lui $at, %hi(D_800543B0) +/* 09CE40 7F068310 460A4402 */ mul.s $f16, $f8, $f10 +/* 09CE44 7F068314 C42443B0 */ lwc1 $f4, %lo(D_800543B0)($at) +/* 09CE48 7F068318 3C0143A0 */ li $at, 0x43A00000 # 320.000000 +/* 09CE4C 7F06831C 44815000 */ mtc1 $at, $f10 +/* 09CE50 7F068320 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 09CE54 7F068324 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 09CE58 7F068328 46128182 */ mul.s $f6, $f16, $f18 +/* 09CE5C 7F06832C 00000000 */ nop +/* 09CE60 7F068330 46043202 */ mul.s $f8, $f6, $f4 +/* 09CE64 7F068334 C5460FE8 */ lwc1 $f6, 0xfe8($t2) +/* 09CE68 7F068338 460A0402 */ mul.s $f16, $f0, $f10 +/* 09CE6C 7F06833C 46104483 */ div.s $f18, $f8, $f16 +/* 09CE70 7F068340 46069100 */ add.s $f4, $f18, $f6 +/* 09CE74 7F068344 0C002914 */ jal get_random_value +/* 09CE78 7F068348 E7A40030 */ swc1 $f4, 0x30($sp) +/* 09CE7C 7F06834C 0C002914 */ jal get_random_value +/* 09CE80 7F068350 AFA2001C */ sw $v0, 0x1c($sp) +/* 09CE84 7F068354 8FAB001C */ lw $t3, 0x1c($sp) +/* 09CE88 7F068358 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09CE8C 7F06835C 44810000 */ mtc1 $at, $f0 +/* 09CE90 7F068360 448B5000 */ mtc1 $t3, $f10 +/* 09CE94 7F068364 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09CE98 7F068368 05610004 */ bgez $t3, .L7F06837C +/* 09CE9C 7F06836C 46805220 */ cvt.s.w $f8, $f10 +/* 09CEA0 7F068370 44818000 */ mtc1 $at, $f16 +/* 09CEA4 7F068374 00000000 */ nop +/* 09CEA8 7F068378 46104200 */ add.s $f8, $f8, $f16 +.L7F06837C: +/* 09CEAC 7F06837C 46004482 */ mul.s $f18, $f8, $f0 +/* 09CEB0 7F068380 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09CEB4 7F068384 44813000 */ mtc1 $at, $f6 +/* 09CEB8 7F068388 44825000 */ mtc1 $v0, $f10 +/* 09CEBC 7F06838C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09CEC0 7F068390 46805420 */ cvt.s.w $f16, $f10 +/* 09CEC4 7F068394 04410004 */ bgez $v0, .L7F0683A8 +/* 09CEC8 7F068398 46069101 */ sub.s $f4, $f18, $f6 +/* 09CECC 7F06839C 44814000 */ mtc1 $at, $f8 +/* 09CED0 7F0683A0 00000000 */ nop +/* 09CED4 7F0683A4 46088400 */ add.s $f16, $f16, $f8 +.L7F0683A8: +/* 09CED8 7F0683A8 46008482 */ mul.s $f18, $f16, $f0 +/* 09CEDC 7F0683AC 00000000 */ nop +/* 09CEE0 7F0683B0 46049182 */ mul.s $f6, $f18, $f4 +/* 09CEE4 7F0683B4 0FC1E12D */ jal getPlayer_c_screenheight +/* 09CEE8 7F0683B8 E7A60020 */ swc1 $f6, 0x20($sp) +/* 09CEEC 7F0683BC C7AA0020 */ lwc1 $f10, 0x20($sp) +/* 09CEF0 7F0683C0 C7A80024 */ lwc1 $f8, 0x24($sp) +/* 09CEF4 7F0683C4 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 09CEF8 7F0683C8 44812000 */ mtc1 $at, $f4 +/* 09CEFC 7F0683CC 46085402 */ mul.s $f16, $f10, $f8 +/* 09CF00 7F0683D0 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 09CF04 7F0683D4 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 09CF08 7F0683D8 8FA20038 */ lw $v0, 0x38($sp) +/* 09CF0C 7F0683DC 44801000 */ mtc1 $zero, $f2 +/* 09CF10 7F0683E0 C58A0FEC */ lwc1 $f10, 0xfec($t4) +/* 09CF14 7F0683E4 27A40030 */ addiu $a0, $sp, 0x30 +/* 09CF18 7F0683E8 46100482 */ mul.s $f18, $f0, $f16 +/* 09CF1C 7F0683EC 3C063F80 */ lui $a2, 0x3f80 +/* 09CF20 7F0683F0 46049183 */ div.s $f6, $f18, $f4 +/* 09CF24 7F0683F4 460A3200 */ add.s $f8, $f6, $f10 +/* 09CF28 7F0683F8 E7A80034 */ swc1 $f8, 0x34($sp) +/* 09CF2C 7F0683FC E4420000 */ swc1 $f2, ($v0) +/* 09CF30 7F068400 E4420004 */ swc1 $f2, 4($v0) +/* 09CF34 7F068404 E4420008 */ swc1 $f2, 8($v0) +/* 09CF38 7F068408 0FC1DFBB */ jal sub_GAME_7F077EEC +/* 09CF3C 7F06840C 8FA5003C */ lw $a1, 0x3c($sp) +/* 09CF40 7F068410 8FBF0014 */ lw $ra, 0x14($sp) +/* 09CF44 7F068414 27BD0038 */ addiu $sp, $sp, 0x38 +/* 09CF48 7F068418 03E00008 */ jr $ra +/* 09CF4C 7F06841C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +u32 sub_GAME_7F068420(s32 arg0, void *arg1) { + u32 temp_v1; + u32 phi_v1; + u32 phi_v1_2; + + // Node 0 + phi_v1_2 = &dword_CODE_bss_80075DC8; + if (dword_CODE_bss_80075E64 != 0) + { + // Node 1 + phi_v1 = &dword_CODE_bss_80075DC8; + // Node 2 + temp_v1 = (phi_v1 + 0xa0); + phi_v1_2 = temp_v1; + if (temp_v1 < &dword_CODE_bss_80076A48) + { + // Node 3 + phi_v1 = temp_v1; + phi_v1_2 = temp_v1; + if (temp_v1->unk9C != 0) + { + goto loop_2; + } + } + } + // Node 4 + if ((u32) phi_v1_2 < &dword_CODE_bss_80076A48) + { + // Node 5 + phi_v1_2->unk9C = arg0; + phi_v1_2->unk4 = (f32) arg1->unk30; + phi_v1_2->unk8 = (f32) arg1->unk34; + phi_v1_2->unkC = (f32) arg1->unk38; + phi_v1_2->unk1C = (f32) *arg1; + phi_v1_2->unk20 = (f32) arg1->unk4; + phi_v1_2->unk28 = 0.0f; + phi_v1_2->unk24 = (f32) arg1->unk8; + phi_v1_2->unk2C = (f32) arg1->unk10; + phi_v1_2->unk30 = (f32) arg1->unk14; + phi_v1_2->unk38 = 0.0f; + phi_v1_2->unk34 = (f32) arg1->unk18; + phi_v1_2->unk3C = (f32) arg1->unk20; + phi_v1_2->unk40 = (f32) arg1->unk24; + phi_v1_2->unk48 = 0.0f; + phi_v1_2->unk4C = 0.0f; + phi_v1_2->unk50 = 0.0f; + phi_v1_2->unk54 = 0.0f; + phi_v1_2->unk58 = 1.0f; + phi_v1_2->unk44 = (f32) arg1->unk28; + return phi_v1_2; + } + // Node 6 + return 0U; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F068420 +/* 09CF50 7F068420 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80075E64) +/* 09CF54 7F068424 8DCE5E64 */ lw $t6, %lo(dword_CODE_bss_80075E64)($t6) +/* 09CF58 7F068428 3C038007 */ lui $v1, %hi(dword_CODE_bss_80075DC8) +/* 09CF5C 7F06842C 24635DC8 */ addiu $v1, %lo(dword_CODE_bss_80075DC8) # addiu $v1, $v1, 0x5dc8 +/* 09CF60 7F068430 11C00009 */ beqz $t6, .L7F068458 +/* 09CF64 7F068434 3C028007 */ lui $v0, %hi(dword_CODE_bss_80076A48) +/* 09CF68 7F068438 24426A48 */ addiu $v0, %lo(dword_CODE_bss_80076A48) # addiu $v0, $v0, 0x6a48 +/* 09CF6C 7F06843C 246300A0 */ addiu $v1, $v1, 0xa0 +.L7F068440: +/* 09CF70 7F068440 0062082B */ sltu $at, $v1, $v0 +/* 09CF74 7F068444 10200004 */ beqz $at, .L7F068458 +/* 09CF78 7F068448 00000000 */ nop +/* 09CF7C 7F06844C 8C6F009C */ lw $t7, 0x9c($v1) +/* 09CF80 7F068450 55E0FFFB */ bnezl $t7, .L7F068440 +/* 09CF84 7F068454 246300A0 */ addiu $v1, $v1, 0xa0 +.L7F068458: +/* 09CF88 7F068458 3C028007 */ lui $v0, %hi(dword_CODE_bss_80076A48) +/* 09CF8C 7F06845C 24426A48 */ addiu $v0, %lo(dword_CODE_bss_80076A48) # addiu $v0, $v0, 0x6a48 +/* 09CF90 7F068460 0062082B */ sltu $at, $v1, $v0 +/* 09CF94 7F068464 10200026 */ beqz $at, .L7F068500 +/* 09CF98 7F068468 00001025 */ move $v0, $zero +/* 09CF9C 7F06846C AC64009C */ sw $a0, 0x9c($v1) +/* 09CFA0 7F068470 C4A40030 */ lwc1 $f4, 0x30($a1) +/* 09CFA4 7F068474 44800000 */ mtc1 $zero, $f0 +/* 09CFA8 7F068478 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09CFAC 7F06847C E4640004 */ swc1 $f4, 4($v1) +/* 09CFB0 7F068480 C4A60034 */ lwc1 $f6, 0x34($a1) +/* 09CFB4 7F068484 00601025 */ move $v0, $v1 +/* 09CFB8 7F068488 E4660008 */ swc1 $f6, 8($v1) +/* 09CFBC 7F06848C C4A80038 */ lwc1 $f8, 0x38($a1) +/* 09CFC0 7F068490 E468000C */ swc1 $f8, 0xc($v1) +/* 09CFC4 7F068494 C4AA0000 */ lwc1 $f10, ($a1) +/* 09CFC8 7F068498 E46A001C */ swc1 $f10, 0x1c($v1) +/* 09CFCC 7F06849C C4B00004 */ lwc1 $f16, 4($a1) +/* 09CFD0 7F0684A0 E4700020 */ swc1 $f16, 0x20($v1) +/* 09CFD4 7F0684A4 C4B20008 */ lwc1 $f18, 8($a1) +/* 09CFD8 7F0684A8 E4600028 */ swc1 $f0, 0x28($v1) +/* 09CFDC 7F0684AC E4720024 */ swc1 $f18, 0x24($v1) +/* 09CFE0 7F0684B0 C4A40010 */ lwc1 $f4, 0x10($a1) +/* 09CFE4 7F0684B4 E464002C */ swc1 $f4, 0x2c($v1) +/* 09CFE8 7F0684B8 C4A60014 */ lwc1 $f6, 0x14($a1) +/* 09CFEC 7F0684BC 44812000 */ mtc1 $at, $f4 +/* 09CFF0 7F0684C0 E4660030 */ swc1 $f6, 0x30($v1) +/* 09CFF4 7F0684C4 C4A80018 */ lwc1 $f8, 0x18($a1) +/* 09CFF8 7F0684C8 E4600038 */ swc1 $f0, 0x38($v1) +/* 09CFFC 7F0684CC E4680034 */ swc1 $f8, 0x34($v1) +/* 09D000 7F0684D0 C4AA0020 */ lwc1 $f10, 0x20($a1) +/* 09D004 7F0684D4 E46A003C */ swc1 $f10, 0x3c($v1) +/* 09D008 7F0684D8 C4B00024 */ lwc1 $f16, 0x24($a1) +/* 09D00C 7F0684DC E4700040 */ swc1 $f16, 0x40($v1) +/* 09D010 7F0684E0 C4B20028 */ lwc1 $f18, 0x28($a1) +/* 09D014 7F0684E4 E4600048 */ swc1 $f0, 0x48($v1) +/* 09D018 7F0684E8 E460004C */ swc1 $f0, 0x4c($v1) +/* 09D01C 7F0684EC E4600050 */ swc1 $f0, 0x50($v1) +/* 09D020 7F0684F0 E4600054 */ swc1 $f0, 0x54($v1) +/* 09D024 7F0684F4 E4640058 */ swc1 $f4, 0x58($v1) +/* 09D028 7F0684F8 03E00008 */ jr $ra +/* 09D02C 7F0684FC E4720044 */ swc1 $f18, 0x44($v1) + +.L7F068500: +/* 09D030 7F068500 03E00008 */ jr $ra +/* 09D034 7F068504 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F068508(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800543B4 +.word 0x3dccccce /*0.10000001*/ +glabel D_800543B8 +.word 0x3f088888 /*0.5333333*/ +glabel D_800543BC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800543C0 +.word 0x3ec90fdb /*0.39269909*/ +glabel D_800543C4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800543C8 +.word 0x3ec90fdb /*0.39269909*/ +glabel D_800543CC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800543D0 +.word 0x3ec90fdb /*0.39269909*/ +glabel D_800543D4 +.word 0x493d6c30 /*775875.0*/ +glabel expended_shell_initial_gravity_modifier_pistol +.word 0x3e8e38e4 /*0.27777779*/ +glabel D_800543DC +.word 0x3fb55555 /*1.4166666*/ +glabel D_800543E0 +.word 0x3fd55555 /*1.6666666*/ +glabel D_800543E4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800543E8 +.word 0x3ec90fdb /*0.39269909*/ +glabel D_800543EC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800543F0 +.word 0x3ec90fdb /*0.39269909*/ +glabel D_800543F4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800543F8 +.word 0x3ec90fdb /*0.39269909*/ +glabel D_800543FC +.word 0x493d6c30 /*775875.0*/ +glabel expended_shell_initial_gravity_modifier_non_pistol +.word 0x3e8e38e4 /*0.27777779*/ +.text +glabel sub_GAME_7F068508 +/* 09D038 7F068508 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 09D03C 7F06850C AFBF001C */ sw $ra, 0x1c($sp) +/* 09D040 7F068510 AFB00014 */ sw $s0, 0x14($sp) +/* 09D044 7F068514 00808025 */ move $s0, $a0 +/* 09D048 7F068518 AFB10018 */ sw $s1, 0x18($sp) +/* 09D04C 7F06851C 0FC17674 */ jal get_item_in_hand +/* 09D050 7F068520 AFA500C4 */ sw $a1, 0xc4($sp) +/* 09D054 7F068524 AFA20078 */ sw $v0, 0x78($sp) +/* 09D058 7F068528 0FC1722D */ jal get_ptr_item_statistics +/* 09D05C 7F06852C 00402025 */ move $a0, $v0 +/* 09D060 7F068530 8C430028 */ lw $v1, 0x28($v0) +/* 09D064 7F068534 506001F6 */ beql $v1, $zero, .L7F068D10 +/* 09D068 7F068538 8FBF001C */ lw $ra, 0x1c($sp) +/* 09D06C 7F06853C 0FC26919 */ jal get_num_players +/* 09D070 7F068540 AFA30070 */ sw $v1, 0x70($sp) +/* 09D074 7F068544 28410002 */ slti $at, $v0, 2 +/* 09D078 7F068548 102001F0 */ beqz $at, .L7F068D0C +/* 09D07C 7F06854C 3C028008 */ lui $v0, %hi(pPlayer) +/* 09D080 7F068550 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09D084 7F068554 00107140 */ sll $t6, $s0, 5 +/* 09D088 7F068558 001088C0 */ sll $s1, $s0, 3 +/* 09D08C 7F06855C 004E7821 */ addu $t7, $v0, $t6 +/* 09D090 7F068560 8DF80818 */ lw $t8, 0x818($t7) +/* 09D094 7F068564 02308823 */ subu $s1, $s1, $s0 +/* 09D098 7F068568 00118880 */ sll $s1, $s1, 2 +/* 09D09C 7F06856C 8F030000 */ lw $v1, ($t8) +/* 09D0A0 7F068570 02308821 */ addu $s1, $s1, $s0 +/* 09D0A4 7F068574 00118880 */ sll $s1, $s1, 2 +/* 09D0A8 7F068578 1060001F */ beqz $v1, .L7F0685F8 +/* 09D0AC 7F06857C 02308821 */ addu $s1, $s1, $s0 +/* 09D0B0 7F068580 8C620004 */ lw $v0, 4($v1) +/* 09D0B4 7F068584 3C018005 */ lui $at, %hi(D_800543B4) +/* 09D0B8 7F068588 C42043B4 */ lwc1 $f0, %lo(D_800543B4)($at) +/* 09D0BC 7F06858C C4440000 */ lwc1 $f4, ($v0) +/* 09D0C0 7F068590 27A40064 */ addiu $a0, $sp, 0x64 +/* 09D0C4 7F068594 27A5007C */ addiu $a1, $sp, 0x7c +/* 09D0C8 7F068598 46002182 */ mul.s $f6, $f4, $f0 +/* 09D0CC 7F06859C E7A60064 */ swc1 $f6, 0x64($sp) +/* 09D0D0 7F0685A0 C4480004 */ lwc1 $f8, 4($v0) +/* 09D0D4 7F0685A4 46004282 */ mul.s $f10, $f8, $f0 +/* 09D0D8 7F0685A8 E7AA0068 */ swc1 $f10, 0x68($sp) +/* 09D0DC 7F0685AC C4520008 */ lwc1 $f18, 8($v0) +/* 09D0E0 7F0685B0 46009102 */ mul.s $f4, $f18, $f0 +/* 09D0E4 7F0685B4 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 09D0E8 7F0685B8 E7A4006C */ swc1 $f4, 0x6c($sp) +/* 09D0EC 7F0685BC 001088C0 */ sll $s1, $s0, 3 +/* 09D0F0 7F0685C0 02308823 */ subu $s1, $s1, $s0 +/* 09D0F4 7F0685C4 00118880 */ sll $s1, $s1, 2 +/* 09D0F8 7F0685C8 02308821 */ addu $s1, $s1, $s0 +/* 09D0FC 7F0685CC 3C198008 */ lui $t9, %hi(pPlayer) +/* 09D100 7F0685D0 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 09D104 7F0685D4 00118880 */ sll $s1, $s1, 2 +/* 09D108 7F0685D8 02308821 */ addu $s1, $s1, $s0 +/* 09D10C 7F0685DC 001188C0 */ sll $s1, $s1, 3 +/* 09D110 7F0685E0 03312021 */ addu $a0, $t9, $s1 +/* 09D114 7F0685E4 24840AD8 */ addiu $a0, $a0, 0xad8 +/* 09D118 7F0685E8 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 09D11C 7F0685EC 27A5007C */ addiu $a1, $sp, 0x7c +/* 09D120 7F0685F0 10000007 */ b .L7F068610 +/* 09D124 7F0685F4 8FA40070 */ lw $a0, 0x70($sp) +.L7F0685F8: +/* 09D128 7F0685F8 001188C0 */ sll $s1, $s1, 3 +/* 09D12C 7F0685FC 00512021 */ addu $a0, $v0, $s1 +/* 09D130 7F068600 24840AD8 */ addiu $a0, $a0, 0xad8 +/* 09D134 7F068604 0FC16008 */ jal matrix_4x4_copy +/* 09D138 7F068608 27A5007C */ addiu $a1, $sp, 0x7c +/* 09D13C 7F06860C 8FA40070 */ lw $a0, 0x70($sp) +.L7F068610: +/* 09D140 7F068610 0FC1A108 */ jal sub_GAME_7F068420 +/* 09D144 7F068614 27A5007C */ addiu $a1, $sp, 0x7c +/* 09D148 7F068618 104001BC */ beqz $v0, .L7F068D0C +/* 09D14C 7F06861C 00408025 */ move $s0, $v0 +/* 09D150 7F068620 3C098003 */ lui $t1, %hi(D_80035EA4) +/* 09D154 7F068624 25295EA4 */ addiu $t1, %lo(D_80035EA4) # addiu $t1, $t1, 0x5ea4 +/* 09D158 7F068628 8D210000 */ lw $at, ($t1) +/* 09D15C 7F06862C 8FA30078 */ lw $v1, 0x78($sp) +/* 09D160 7F068630 27A80054 */ addiu $t0, $sp, 0x54 +/* 09D164 7F068634 AD010000 */ sw $at, ($t0) +/* 09D168 7F068638 8D210008 */ lw $at, 8($t1) +/* 09D16C 7F06863C 8D2B0004 */ lw $t3, 4($t1) +/* 09D170 7F068640 AD010008 */ sw $at, 8($t0) +/* 09D174 7F068644 AD0B0004 */ sw $t3, 4($t0) +/* 09D178 7F068648 C7A600C4 */ lwc1 $f6, 0xc4($sp) +/* 09D17C 7F06864C 24010004 */ li $at, 4 +/* 09D180 7F068650 1061000A */ beq $v1, $at, .L7F06867C +/* 09D184 7F068654 E4460000 */ swc1 $f6, ($v0) +/* 09D188 7F068658 24010005 */ li $at, 5 +/* 09D18C 7F06865C 10610007 */ beq $v1, $at, .L7F06867C +/* 09D190 7F068660 24010006 */ li $at, 6 +/* 09D194 7F068664 10610005 */ beq $v1, $at, .L7F06867C +/* 09D198 7F068668 24010014 */ li $at, 20 +/* 09D19C 7F06866C 10610003 */ beq $v1, $at, .L7F06867C +/* 09D1A0 7F068670 24010015 */ li $at, 21 +/* 09D1A4 7F068674 146100D3 */ bne $v1, $at, .L7F0689C4 +/* 09D1A8 7F068678 00000000 */ nop +.L7F06867C: +/* 09D1AC 7F06867C 0C002914 */ jal get_random_value +/* 09D1B0 7F068680 00000000 */ nop +/* 09D1B4 7F068684 44824000 */ mtc1 $v0, $f8 +/* 09D1B8 7F068688 3C018005 */ lui $at, %hi(D_800543B8) +/* 09D1BC 7F06868C C42043B8 */ lwc1 $f0, %lo(D_800543B8)($at) +/* 09D1C0 7F068690 04410005 */ bgez $v0, .L7F0686A8 +/* 09D1C4 7F068694 468042A0 */ cvt.s.w $f10, $f8 +/* 09D1C8 7F068698 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D1CC 7F06869C 44819000 */ mtc1 $at, $f18 +/* 09D1D0 7F0686A0 00000000 */ nop +/* 09D1D4 7F0686A4 46125280 */ add.s $f10, $f10, $f18 +.L7F0686A8: +/* 09D1D8 7F0686A8 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D1DC 7F0686AC 44812000 */ mtc1 $at, $f4 +/* 09D1E0 7F0686B0 3C013D80 */ li $at, 0x3D800000 # 0.062500 +/* 09D1E4 7F0686B4 44819000 */ mtc1 $at, $f18 +/* 09D1E8 7F0686B8 46045182 */ mul.s $f6, $f10, $f4 +/* 09D1EC 7F0686BC 00000000 */ nop +/* 09D1F0 7F0686C0 46003202 */ mul.s $f8, $f6, $f0 +/* 09D1F4 7F0686C4 00000000 */ nop +/* 09D1F8 7F0686C8 46124282 */ mul.s $f10, $f8, $f18 +/* 09D1FC 7F0686CC 46005100 */ add.s $f4, $f10, $f0 +/* 09D200 7F0686D0 46002187 */ neg.s $f6, $f4 +/* 09D204 7F0686D4 0C002914 */ jal get_random_value +/* 09D208 7F0686D8 E6060010 */ swc1 $f6, 0x10($s0) +/* 09D20C 7F0686DC 44824000 */ mtc1 $v0, $f8 +/* 09D210 7F0686E0 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 09D214 7F0686E4 44810000 */ mtc1 $at, $f0 +/* 09D218 7F0686E8 04410005 */ bgez $v0, .L7F068700 +/* 09D21C 7F0686EC 468044A0 */ cvt.s.w $f18, $f8 +/* 09D220 7F0686F0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D224 7F0686F4 44815000 */ mtc1 $at, $f10 +/* 09D228 7F0686F8 00000000 */ nop +/* 09D22C 7F0686FC 460A9480 */ add.s $f18, $f18, $f10 +.L7F068700: +/* 09D230 7F068700 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D234 7F068704 44812000 */ mtc1 $at, $f4 +/* 09D238 7F068708 3C013D80 */ li $at, 0x3D800000 # 0.062500 +/* 09D23C 7F06870C 44815000 */ mtc1 $at, $f10 +/* 09D240 7F068710 46049182 */ mul.s $f6, $f18, $f4 +/* 09D244 7F068714 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 09D248 7F068718 26050010 */ addiu $a1, $s0, 0x10 +/* 09D24C 7F06871C 46003202 */ mul.s $f8, $f6, $f0 +/* 09D250 7F068720 44803000 */ mtc1 $zero, $f6 +/* 09D254 7F068724 00000000 */ nop +/* 09D258 7F068728 E6060018 */ swc1 $f6, 0x18($s0) +/* 09D25C 7F06872C 460A4482 */ mul.s $f18, $f8, $f10 +/* 09D260 7F068730 46009100 */ add.s $f4, $f18, $f0 +/* 09D264 7F068734 E6040014 */ swc1 $f4, 0x14($s0) +/* 09D268 7F068738 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 09D26C 7F06873C 01912021 */ addu $a0, $t4, $s1 +/* 09D270 7F068740 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 09D274 7F068744 24840AD8 */ addiu $a0, $a0, 0xad8 +/* 09D278 7F068748 0C002914 */ jal get_random_value +/* 09D27C 7F06874C 00000000 */ nop +/* 09D280 7F068750 44824000 */ mtc1 $v0, $f8 +/* 09D284 7F068754 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D288 7F068758 04410004 */ bgez $v0, .L7F06876C +/* 09D28C 7F06875C 468042A0 */ cvt.s.w $f10, $f8 +/* 09D290 7F068760 44819000 */ mtc1 $at, $f18 +/* 09D294 7F068764 00000000 */ nop +/* 09D298 7F068768 46125280 */ add.s $f10, $f10, $f18 +.L7F06876C: +/* 09D29C 7F06876C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D2A0 7F068770 44812000 */ mtc1 $at, $f4 +/* 09D2A4 7F068774 3C018005 */ lui $at, %hi(D_800543BC) +/* 09D2A8 7F068778 C42843BC */ lwc1 $f8, %lo(D_800543BC)($at) +/* 09D2AC 7F06877C 46045002 */ mul.s $f0, $f10, $f4 +/* 09D2B0 7F068780 3C013D80 */ li $at, 0x3D800000 # 0.062500 +/* 09D2B4 7F068784 44815000 */ mtc1 $at, $f10 +/* 09D2B8 7F068788 3C018005 */ lui $at, %hi(D_800543C0) +/* 09D2BC 7F06878C 46000180 */ add.s $f6, $f0, $f0 +/* 09D2C0 7F068790 46083482 */ mul.s $f18, $f6, $f8 +/* 09D2C4 7F068794 C42643C0 */ lwc1 $f6, %lo(D_800543C0)($at) +/* 09D2C8 7F068798 460A9102 */ mul.s $f4, $f18, $f10 +/* 09D2CC 7F06879C 46062201 */ sub.s $f8, $f4, $f6 +/* 09D2D0 7F0687A0 0C002914 */ jal get_random_value +/* 09D2D4 7F0687A4 E7A80054 */ swc1 $f8, 0x54($sp) +/* 09D2D8 7F0687A8 44829000 */ mtc1 $v0, $f18 +/* 09D2DC 7F0687AC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D2E0 7F0687B0 04410004 */ bgez $v0, .L7F0687C4 +/* 09D2E4 7F0687B4 468092A0 */ cvt.s.w $f10, $f18 +/* 09D2E8 7F0687B8 44812000 */ mtc1 $at, $f4 +/* 09D2EC 7F0687BC 00000000 */ nop +/* 09D2F0 7F0687C0 46045280 */ add.s $f10, $f10, $f4 +.L7F0687C4: +/* 09D2F4 7F0687C4 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D2F8 7F0687C8 44813000 */ mtc1 $at, $f6 +/* 09D2FC 7F0687CC 3C018005 */ lui $at, %hi(D_800543C4) +/* 09D300 7F0687D0 C43243C4 */ lwc1 $f18, %lo(D_800543C4)($at) +/* 09D304 7F0687D4 46065002 */ mul.s $f0, $f10, $f6 +/* 09D308 7F0687D8 3C013D80 */ li $at, 0x3D800000 # 0.062500 +/* 09D30C 7F0687DC 44815000 */ mtc1 $at, $f10 +/* 09D310 7F0687E0 3C018005 */ lui $at, %hi(D_800543C8) +/* 09D314 7F0687E4 46000200 */ add.s $f8, $f0, $f0 +/* 09D318 7F0687E8 46124102 */ mul.s $f4, $f8, $f18 +/* 09D31C 7F0687EC C42843C8 */ lwc1 $f8, %lo(D_800543C8)($at) +/* 09D320 7F0687F0 460A2182 */ mul.s $f6, $f4, $f10 +/* 09D324 7F0687F4 46083481 */ sub.s $f18, $f6, $f8 +/* 09D328 7F0687F8 0C002914 */ jal get_random_value +/* 09D32C 7F0687FC E7B20058 */ swc1 $f18, 0x58($sp) +/* 09D330 7F068800 44822000 */ mtc1 $v0, $f4 +/* 09D334 7F068804 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D338 7F068808 04410004 */ bgez $v0, .L7F06881C +/* 09D33C 7F06880C 468022A0 */ cvt.s.w $f10, $f4 +/* 09D340 7F068810 44813000 */ mtc1 $at, $f6 +/* 09D344 7F068814 00000000 */ nop +/* 09D348 7F068818 46065280 */ add.s $f10, $f10, $f6 +.L7F06881C: +/* 09D34C 7F06881C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D350 7F068820 44814000 */ mtc1 $at, $f8 +/* 09D354 7F068824 3C018005 */ lui $at, %hi(D_800543CC) +/* 09D358 7F068828 C42443CC */ lwc1 $f4, %lo(D_800543CC)($at) +/* 09D35C 7F06882C 46085002 */ mul.s $f0, $f10, $f8 +/* 09D360 7F068830 3C013D80 */ li $at, 0x3D800000 # 0.062500 +/* 09D364 7F068834 44815000 */ mtc1 $at, $f10 +/* 09D368 7F068838 3C018005 */ lui $at, %hi(D_800543D0) +/* 09D36C 7F06883C 27A40054 */ addiu $a0, $sp, 0x54 +/* 09D370 7F068840 2605005C */ addiu $a1, $s0, 0x5c +/* 09D374 7F068844 46000480 */ add.s $f18, $f0, $f0 +/* 09D378 7F068848 46049182 */ mul.s $f6, $f18, $f4 +/* 09D37C 7F06884C C43243D0 */ lwc1 $f18, %lo(D_800543D0)($at) +/* 09D380 7F068850 460A3202 */ mul.s $f8, $f6, $f10 +/* 09D384 7F068854 46124101 */ sub.s $f4, $f8, $f18 +/* 09D388 7F068858 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 09D38C 7F06885C E7A4005C */ swc1 $f4, 0x5c($sp) +/* 09D390 7F068860 0C002914 */ jal get_random_value +/* 09D394 7F068864 00000000 */ nop +/* 09D398 7F068868 3C030015 */ lui $v1, (0x00158679 >> 16) # lui $v1, 0x15 +/* 09D39C 7F06886C 34638679 */ ori $v1, (0x00158679 & 0xFFFF) # ori $v1, $v1, 0x8679 +/* 09D3A0 7F068870 00026E02 */ srl $t5, $v0, 0x18 +/* 09D3A4 7F068874 01A30019 */ multu $t5, $v1 +/* 09D3A8 7F068878 00007012 */ mflo $t6 +/* 09D3AC 7F06887C 000E7A83 */ sra $t7, $t6, 0xa +/* 09D3B0 7F068880 01E3C021 */ addu $t8, $t7, $v1 +/* 09D3B4 7F068884 0C002914 */ jal get_random_value +/* 09D3B8 7F068888 AFB8004C */ sw $t8, 0x4c($sp) +/* 09D3BC 7F06888C 8FB9004C */ lw $t9, 0x4c($sp) +/* 09D3C0 7F068890 C60C0014 */ lwc1 $f12, 0x14($s0) +/* 09D3C4 7F068894 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D3C8 7F068898 0059001B */ divu $zero, $v0, $t9 +/* 09D3CC 7F06889C 00005010 */ mfhi $t2 +/* 09D3D0 7F0688A0 448A3000 */ mtc1 $t2, $f6 +/* 09D3D4 7F0688A4 17200002 */ bnez $t9, .L7F0688B0 +/* 09D3D8 7F0688A8 00000000 */ nop +/* 09D3DC 7F0688AC 0007000D */ break 7 +.L7F0688B0: +/* 09D3E0 7F0688B0 3C048008 */ lui $a0, %hi(pPlayer) +/* 09D3E4 7F0688B4 05410004 */ bgez $t2, .L7F0688C8 +/* 09D3E8 7F0688B8 468032A0 */ cvt.s.w $f10, $f6 +/* 09D3EC 7F0688BC 44814000 */ mtc1 $at, $f8 +/* 09D3F0 7F0688C0 00000000 */ nop +/* 09D3F4 7F0688C4 46085280 */ add.s $f10, $f10, $f8 +.L7F0688C8: +/* 09D3F8 7F0688C8 3C018005 */ lui $at, %hi(D_800543D4) +/* 09D3FC 7F0688CC C43243D4 */ lwc1 $f18, %lo(D_800543D4)($at) +/* 09D400 7F0688D0 3C018005 */ lui $at, %hi(expended_shell_initial_gravity_modifier_pistol) +/* 09D404 7F0688D4 C42443D8 */ lwc1 $f4, %lo(expended_shell_initial_gravity_modifier_pistol)($at) +/* 09D408 7F0688D8 46125003 */ div.s $f0, $f10, $f18 +/* 09D40C 7F0688DC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09D410 7F0688E0 44819000 */ mtc1 $at, $f18 +/* 09D414 7F0688E4 C60E0010 */ lwc1 $f14, 0x10($s0) +/* 09D418 7F0688E8 C6100018 */ lwc1 $f16, 0x18($s0) +/* 09D41C 7F0688EC 3C088005 */ lui $t0, %hi(clock_timer) +/* 09D420 7F0688F0 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 09D424 7F0688F4 46040182 */ mul.s $f6, $f0, $f4 +/* 09D428 7F0688F8 46066081 */ sub.s $f2, $f12, $f6 +/* 09D42C 7F0688FC C6060008 */ lwc1 $f6, 8($s0) +/* 09D430 7F068900 46026200 */ add.s $f8, $f12, $f2 +/* 09D434 7F068904 E6020014 */ swc1 $f2, 0x14($s0) +/* 09D438 7F068908 46080282 */ mul.s $f10, $f0, $f8 +/* 09D43C 7F06890C 00000000 */ nop +/* 09D440 7F068910 46125102 */ mul.s $f4, $f10, $f18 +/* 09D444 7F068914 C60A0004 */ lwc1 $f10, 4($s0) +/* 09D448 7F068918 460E0482 */ mul.s $f18, $f0, $f14 +/* 09D44C 7F06891C 46043200 */ add.s $f8, $f6, $f4 +/* 09D450 7F068920 C604000C */ lwc1 $f4, 0xc($s0) +/* 09D454 7F068924 46125180 */ add.s $f6, $f10, $f18 +/* 09D458 7F068928 E6080008 */ swc1 $f8, 8($s0) +/* 09D45C 7F06892C 46100202 */ mul.s $f8, $f0, $f16 +/* 09D460 7F068930 E6060004 */ swc1 $f6, 4($s0) +/* 09D464 7F068934 46082280 */ add.s $f10, $f4, $f8 +/* 09D468 7F068938 E60A000C */ swc1 $f10, 0xc($s0) +/* 09D46C 7F06893C 8D088374 */ lw $t0, %lo(clock_timer)($t0) +/* 09D470 7F068940 190000F2 */ blez $t0, .L7F068D0C +/* 09D474 7F068944 00000000 */ nop +/* 09D478 7F068948 8C890000 */ lw $t1, ($a0) +/* 09D47C 7F06894C 3C038005 */ lui $v1, %hi(global_timer_delta) +/* 09D480 7F068950 24638378 */ addiu $v1, %lo(global_timer_delta) # addiu $v1, $v1, -0x7c88 +/* 09D484 7F068954 01311021 */ addu $v0, $t1, $s1 +/* 09D488 7F068958 C4520B08 */ lwc1 $f18, 0xb08($v0) +/* 09D48C 7F06895C C4460B48 */ lwc1 $f6, 0xb48($v0) +/* 09D490 7F068960 C4680000 */ lwc1 $f8, ($v1) +/* 09D494 7F068964 46069101 */ sub.s $f4, $f18, $f6 +/* 09D498 7F068968 46082283 */ div.s $f10, $f4, $f8 +/* 09D49C 7F06896C 460A7480 */ add.s $f18, $f14, $f10 +/* 09D4A0 7F068970 E6120010 */ swc1 $f18, 0x10($s0) +/* 09D4A4 7F068974 8C8B0000 */ lw $t3, ($a0) +/* 09D4A8 7F068978 C46A0000 */ lwc1 $f10, ($v1) +/* 09D4AC 7F06897C 01711021 */ addu $v0, $t3, $s1 +/* 09D4B0 7F068980 C4460B0C */ lwc1 $f6, 0xb0c($v0) +/* 09D4B4 7F068984 C4440B4C */ lwc1 $f4, 0xb4c($v0) +/* 09D4B8 7F068988 46043201 */ sub.s $f8, $f6, $f4 +/* 09D4BC 7F06898C C6060014 */ lwc1 $f6, 0x14($s0) +/* 09D4C0 7F068990 460A4483 */ div.s $f18, $f8, $f10 +/* 09D4C4 7F068994 46123100 */ add.s $f4, $f6, $f18 +/* 09D4C8 7F068998 E6040014 */ swc1 $f4, 0x14($s0) +/* 09D4CC 7F06899C 8C8C0000 */ lw $t4, ($a0) +/* 09D4D0 7F0689A0 C4720000 */ lwc1 $f18, ($v1) +/* 09D4D4 7F0689A4 01911021 */ addu $v0, $t4, $s1 +/* 09D4D8 7F0689A8 C4480B10 */ lwc1 $f8, 0xb10($v0) +/* 09D4DC 7F0689AC C44A0B50 */ lwc1 $f10, 0xb50($v0) +/* 09D4E0 7F0689B0 460A4181 */ sub.s $f6, $f8, $f10 +/* 09D4E4 7F0689B4 46123103 */ div.s $f4, $f6, $f18 +/* 09D4E8 7F0689B8 46048200 */ add.s $f8, $f16, $f4 +/* 09D4EC 7F0689BC 100000D3 */ b .L7F068D0C +/* 09D4F0 7F0689C0 E6080018 */ swc1 $f8, 0x18($s0) +.L7F0689C4: +/* 09D4F4 7F0689C4 0C002914 */ jal get_random_value +/* 09D4F8 7F0689C8 00000000 */ nop +/* 09D4FC 7F0689CC 44825000 */ mtc1 $v0, $f10 +/* 09D500 7F0689D0 3C018005 */ lui $at, %hi(D_800543DC) +/* 09D504 7F0689D4 C42043DC */ lwc1 $f0, %lo(D_800543DC)($at) +/* 09D508 7F0689D8 04410005 */ bgez $v0, .L7F0689F0 +/* 09D50C 7F0689DC 468051A0 */ cvt.s.w $f6, $f10 +/* 09D510 7F0689E0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D514 7F0689E4 44819000 */ mtc1 $at, $f18 +/* 09D518 7F0689E8 00000000 */ nop +/* 09D51C 7F0689EC 46123180 */ add.s $f6, $f6, $f18 +.L7F0689F0: +/* 09D520 7F0689F0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D524 7F0689F4 44812000 */ mtc1 $at, $f4 +/* 09D528 7F0689F8 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 09D52C 7F0689FC 44819000 */ mtc1 $at, $f18 +/* 09D530 7F068A00 46043202 */ mul.s $f8, $f6, $f4 +/* 09D534 7F068A04 00000000 */ nop +/* 09D538 7F068A08 46004282 */ mul.s $f10, $f8, $f0 +/* 09D53C 7F068A0C 00000000 */ nop +/* 09D540 7F068A10 46125182 */ mul.s $f6, $f10, $f18 +/* 09D544 7F068A14 46003100 */ add.s $f4, $f6, $f0 +/* 09D548 7F068A18 46002207 */ neg.s $f8, $f4 +/* 09D54C 7F068A1C 0C002914 */ jal get_random_value +/* 09D550 7F068A20 E6080010 */ swc1 $f8, 0x10($s0) +/* 09D554 7F068A24 44825000 */ mtc1 $v0, $f10 +/* 09D558 7F068A28 3C018005 */ lui $at, %hi(D_800543E0) +/* 09D55C 7F068A2C C42043E0 */ lwc1 $f0, %lo(D_800543E0)($at) +/* 09D560 7F068A30 04410005 */ bgez $v0, .L7F068A48 +/* 09D564 7F068A34 468054A0 */ cvt.s.w $f18, $f10 +/* 09D568 7F068A38 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D56C 7F068A3C 44813000 */ mtc1 $at, $f6 +/* 09D570 7F068A40 00000000 */ nop +/* 09D574 7F068A44 46069480 */ add.s $f18, $f18, $f6 +.L7F068A48: +/* 09D578 7F068A48 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D57C 7F068A4C 44812000 */ mtc1 $at, $f4 +/* 09D580 7F068A50 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 09D584 7F068A54 44813000 */ mtc1 $at, $f6 +/* 09D588 7F068A58 46049202 */ mul.s $f8, $f18, $f4 +/* 09D58C 7F068A5C 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 09D590 7F068A60 26050010 */ addiu $a1, $s0, 0x10 +/* 09D594 7F068A64 46004282 */ mul.s $f10, $f8, $f0 +/* 09D598 7F068A68 44804000 */ mtc1 $zero, $f8 +/* 09D59C 7F068A6C 00000000 */ nop +/* 09D5A0 7F068A70 E6080018 */ swc1 $f8, 0x18($s0) +/* 09D5A4 7F068A74 46065482 */ mul.s $f18, $f10, $f6 +/* 09D5A8 7F068A78 46009100 */ add.s $f4, $f18, $f0 +/* 09D5AC 7F068A7C E6040014 */ swc1 $f4, 0x14($s0) +/* 09D5B0 7F068A80 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 09D5B4 7F068A84 01B12021 */ addu $a0, $t5, $s1 +/* 09D5B8 7F068A88 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 09D5BC 7F068A8C 24840AD8 */ addiu $a0, $a0, 0xad8 +/* 09D5C0 7F068A90 0C002914 */ jal get_random_value +/* 09D5C4 7F068A94 00000000 */ nop +/* 09D5C8 7F068A98 44825000 */ mtc1 $v0, $f10 +/* 09D5CC 7F068A9C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D5D0 7F068AA0 04410004 */ bgez $v0, .L7F068AB4 +/* 09D5D4 7F068AA4 468051A0 */ cvt.s.w $f6, $f10 +/* 09D5D8 7F068AA8 44819000 */ mtc1 $at, $f18 +/* 09D5DC 7F068AAC 00000000 */ nop +/* 09D5E0 7F068AB0 46123180 */ add.s $f6, $f6, $f18 +.L7F068AB4: +/* 09D5E4 7F068AB4 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D5E8 7F068AB8 44812000 */ mtc1 $at, $f4 +/* 09D5EC 7F068ABC 3C018005 */ lui $at, %hi(D_800543E4) +/* 09D5F0 7F068AC0 C42A43E4 */ lwc1 $f10, %lo(D_800543E4)($at) +/* 09D5F4 7F068AC4 46043002 */ mul.s $f0, $f6, $f4 +/* 09D5F8 7F068AC8 3C013D80 */ li $at, 0x3D800000 # 0.062500 +/* 09D5FC 7F068ACC 44813000 */ mtc1 $at, $f6 +/* 09D600 7F068AD0 3C018005 */ lui $at, %hi(D_800543E8) +/* 09D604 7F068AD4 46000200 */ add.s $f8, $f0, $f0 +/* 09D608 7F068AD8 460A4482 */ mul.s $f18, $f8, $f10 +/* 09D60C 7F068ADC C42843E8 */ lwc1 $f8, %lo(D_800543E8)($at) +/* 09D610 7F068AE0 46069102 */ mul.s $f4, $f18, $f6 +/* 09D614 7F068AE4 46082281 */ sub.s $f10, $f4, $f8 +/* 09D618 7F068AE8 0C002914 */ jal get_random_value +/* 09D61C 7F068AEC E7AA0054 */ swc1 $f10, 0x54($sp) +/* 09D620 7F068AF0 44829000 */ mtc1 $v0, $f18 +/* 09D624 7F068AF4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D628 7F068AF8 04410004 */ bgez $v0, .L7F068B0C +/* 09D62C 7F068AFC 468091A0 */ cvt.s.w $f6, $f18 +/* 09D630 7F068B00 44812000 */ mtc1 $at, $f4 +/* 09D634 7F068B04 00000000 */ nop +/* 09D638 7F068B08 46043180 */ add.s $f6, $f6, $f4 +.L7F068B0C: +/* 09D63C 7F068B0C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D640 7F068B10 44814000 */ mtc1 $at, $f8 +/* 09D644 7F068B14 3C018005 */ lui $at, %hi(D_800543EC) +/* 09D648 7F068B18 C43243EC */ lwc1 $f18, %lo(D_800543EC)($at) +/* 09D64C 7F068B1C 46083002 */ mul.s $f0, $f6, $f8 +/* 09D650 7F068B20 3C013D80 */ li $at, 0x3D800000 # 0.062500 +/* 09D654 7F068B24 44813000 */ mtc1 $at, $f6 +/* 09D658 7F068B28 3C018005 */ lui $at, %hi(D_800543F0) +/* 09D65C 7F068B2C 46000280 */ add.s $f10, $f0, $f0 +/* 09D660 7F068B30 46125102 */ mul.s $f4, $f10, $f18 +/* 09D664 7F068B34 C42A43F0 */ lwc1 $f10, %lo(D_800543F0)($at) +/* 09D668 7F068B38 46062202 */ mul.s $f8, $f4, $f6 +/* 09D66C 7F068B3C 460A4481 */ sub.s $f18, $f8, $f10 +/* 09D670 7F068B40 0C002914 */ jal get_random_value +/* 09D674 7F068B44 E7B20058 */ swc1 $f18, 0x58($sp) +/* 09D678 7F068B48 44822000 */ mtc1 $v0, $f4 +/* 09D67C 7F068B4C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D680 7F068B50 04410004 */ bgez $v0, .L7F068B64 +/* 09D684 7F068B54 468021A0 */ cvt.s.w $f6, $f4 +/* 09D688 7F068B58 44814000 */ mtc1 $at, $f8 +/* 09D68C 7F068B5C 00000000 */ nop +/* 09D690 7F068B60 46083180 */ add.s $f6, $f6, $f8 +.L7F068B64: +/* 09D694 7F068B64 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09D698 7F068B68 44815000 */ mtc1 $at, $f10 +/* 09D69C 7F068B6C 3C018005 */ lui $at, %hi(D_800543F4) +/* 09D6A0 7F068B70 C42443F4 */ lwc1 $f4, %lo(D_800543F4)($at) +/* 09D6A4 7F068B74 460A3002 */ mul.s $f0, $f6, $f10 +/* 09D6A8 7F068B78 3C013D80 */ li $at, 0x3D800000 # 0.062500 +/* 09D6AC 7F068B7C 44813000 */ mtc1 $at, $f6 +/* 09D6B0 7F068B80 3C018005 */ lui $at, %hi(D_800543F8) +/* 09D6B4 7F068B84 27A40054 */ addiu $a0, $sp, 0x54 +/* 09D6B8 7F068B88 2605005C */ addiu $a1, $s0, 0x5c +/* 09D6BC 7F068B8C 46000480 */ add.s $f18, $f0, $f0 +/* 09D6C0 7F068B90 46049202 */ mul.s $f8, $f18, $f4 +/* 09D6C4 7F068B94 C43243F8 */ lwc1 $f18, %lo(D_800543F8)($at) +/* 09D6C8 7F068B98 46064282 */ mul.s $f10, $f8, $f6 +/* 09D6CC 7F068B9C 46125101 */ sub.s $f4, $f10, $f18 +/* 09D6D0 7F068BA0 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 09D6D4 7F068BA4 E7A4005C */ swc1 $f4, 0x5c($sp) +/* 09D6D8 7F068BA8 0C002914 */ jal get_random_value +/* 09D6DC 7F068BAC 00000000 */ nop +/* 09D6E0 7F068BB0 3C030015 */ lui $v1, (0x00158679 >> 16) # lui $v1, 0x15 +/* 09D6E4 7F068BB4 34638679 */ ori $v1, (0x00158679 & 0xFFFF) # ori $v1, $v1, 0x8679 +/* 09D6E8 7F068BB8 00027602 */ srl $t6, $v0, 0x18 +/* 09D6EC 7F068BBC 01C30019 */ multu $t6, $v1 +/* 09D6F0 7F068BC0 00007812 */ mflo $t7 +/* 09D6F4 7F068BC4 000FC283 */ sra $t8, $t7, 0xa +/* 09D6F8 7F068BC8 0303C821 */ addu $t9, $t8, $v1 +/* 09D6FC 7F068BCC 0C002914 */ jal get_random_value +/* 09D700 7F068BD0 AFB9003C */ sw $t9, 0x3c($sp) +/* 09D704 7F068BD4 8FAA003C */ lw $t2, 0x3c($sp) +/* 09D708 7F068BD8 C60C0014 */ lwc1 $f12, 0x14($s0) +/* 09D70C 7F068BDC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09D710 7F068BE0 004A001B */ divu $zero, $v0, $t2 +/* 09D714 7F068BE4 00004010 */ mfhi $t0 +/* 09D718 7F068BE8 44884000 */ mtc1 $t0, $f8 +/* 09D71C 7F068BEC 15400002 */ bnez $t2, .L7F068BF8 +/* 09D720 7F068BF0 00000000 */ nop +/* 09D724 7F068BF4 0007000D */ break 7 +.L7F068BF8: +/* 09D728 7F068BF8 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 09D72C 7F068BFC 05010004 */ bgez $t0, .L7F068C10 +/* 09D730 7F068C00 468041A0 */ cvt.s.w $f6, $f8 +/* 09D734 7F068C04 44815000 */ mtc1 $at, $f10 +/* 09D738 7F068C08 00000000 */ nop +/* 09D73C 7F068C0C 460A3180 */ add.s $f6, $f6, $f10 +.L7F068C10: +/* 09D740 7F068C10 3C018005 */ lui $at, %hi(D_800543FC) +/* 09D744 7F068C14 C43243FC */ lwc1 $f18, %lo(D_800543FC)($at) +/* 09D748 7F068C18 3C018005 */ lui $at, %hi(expended_shell_initial_gravity_modifier_non_pistol) +/* 09D74C 7F068C1C C4244400 */ lwc1 $f4, %lo(expended_shell_initial_gravity_modifier_non_pistol)($at) +/* 09D750 7F068C20 46123003 */ div.s $f0, $f6, $f18 +/* 09D754 7F068C24 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09D758 7F068C28 44819000 */ mtc1 $at, $f18 +/* 09D75C 7F068C2C C60E0010 */ lwc1 $f14, 0x10($s0) +/* 09D760 7F068C30 C6100018 */ lwc1 $f16, 0x18($s0) +/* 09D764 7F068C34 3C098005 */ lui $t1, %hi(clock_timer) +/* 09D768 7F068C38 46040202 */ mul.s $f8, $f0, $f4 +/* 09D76C 7F068C3C 46086081 */ sub.s $f2, $f12, $f8 +/* 09D770 7F068C40 C6080008 */ lwc1 $f8, 8($s0) +/* 09D774 7F068C44 46026280 */ add.s $f10, $f12, $f2 +/* 09D778 7F068C48 E6020014 */ swc1 $f2, 0x14($s0) +/* 09D77C 7F068C4C 460A0182 */ mul.s $f6, $f0, $f10 +/* 09D780 7F068C50 00000000 */ nop +/* 09D784 7F068C54 46123102 */ mul.s $f4, $f6, $f18 +/* 09D788 7F068C58 C6060004 */ lwc1 $f6, 4($s0) +/* 09D78C 7F068C5C 460E0482 */ mul.s $f18, $f0, $f14 +/* 09D790 7F068C60 46044280 */ add.s $f10, $f8, $f4 +/* 09D794 7F068C64 C604000C */ lwc1 $f4, 0xc($s0) +/* 09D798 7F068C68 46123200 */ add.s $f8, $f6, $f18 +/* 09D79C 7F068C6C E60A0008 */ swc1 $f10, 8($s0) +/* 09D7A0 7F068C70 46100282 */ mul.s $f10, $f0, $f16 +/* 09D7A4 7F068C74 E6080004 */ swc1 $f8, 4($s0) +/* 09D7A8 7F068C78 460A2180 */ add.s $f6, $f4, $f10 +/* 09D7AC 7F068C7C E606000C */ swc1 $f6, 0xc($s0) +/* 09D7B0 7F068C80 8D298374 */ lw $t1, %lo(clock_timer)($t1) +/* 09D7B4 7F068C84 19200021 */ blez $t1, .L7F068D0C +/* 09D7B8 7F068C88 00000000 */ nop +/* 09D7BC 7F068C8C 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 09D7C0 7F068C90 3C038005 */ lui $v1, %hi(global_timer_delta) +/* 09D7C4 7F068C94 24638378 */ addiu $v1, %lo(global_timer_delta) # addiu $v1, $v1, -0x7c88 +/* 09D7C8 7F068C98 01711021 */ addu $v0, $t3, $s1 +/* 09D7CC 7F068C9C C4520B08 */ lwc1 $f18, 0xb08($v0) +/* 09D7D0 7F068CA0 C4480B48 */ lwc1 $f8, 0xb48($v0) +/* 09D7D4 7F068CA4 C46A0000 */ lwc1 $f10, ($v1) +/* 09D7D8 7F068CA8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 09D7DC 7F068CAC 46089101 */ sub.s $f4, $f18, $f8 +/* 09D7E0 7F068CB0 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 09D7E4 7F068CB4 460A2183 */ div.s $f6, $f4, $f10 +/* 09D7E8 7F068CB8 46067480 */ add.s $f18, $f14, $f6 +/* 09D7EC 7F068CBC E6120010 */ swc1 $f18, 0x10($s0) +/* 09D7F0 7F068CC0 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 09D7F4 7F068CC4 C4660000 */ lwc1 $f6, ($v1) +/* 09D7F8 7F068CC8 01911021 */ addu $v0, $t4, $s1 +/* 09D7FC 7F068CCC C4480B0C */ lwc1 $f8, 0xb0c($v0) +/* 09D800 7F068CD0 C4440B4C */ lwc1 $f4, 0xb4c($v0) +/* 09D804 7F068CD4 46044281 */ sub.s $f10, $f8, $f4 +/* 09D808 7F068CD8 C6080014 */ lwc1 $f8, 0x14($s0) +/* 09D80C 7F068CDC 46065483 */ div.s $f18, $f10, $f6 +/* 09D810 7F068CE0 46124100 */ add.s $f4, $f8, $f18 +/* 09D814 7F068CE4 E6040014 */ swc1 $f4, 0x14($s0) +/* 09D818 7F068CE8 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 09D81C 7F068CEC C4720000 */ lwc1 $f18, ($v1) +/* 09D820 7F068CF0 01B11021 */ addu $v0, $t5, $s1 +/* 09D824 7F068CF4 C44A0B10 */ lwc1 $f10, 0xb10($v0) +/* 09D828 7F068CF8 C4460B50 */ lwc1 $f6, 0xb50($v0) +/* 09D82C 7F068CFC 46065201 */ sub.s $f8, $f10, $f6 +/* 09D830 7F068D00 46124103 */ div.s $f4, $f8, $f18 +/* 09D834 7F068D04 46048280 */ add.s $f10, $f16, $f4 +/* 09D838 7F068D08 E60A0018 */ swc1 $f10, 0x18($s0) +.L7F068D0C: +/* 09D83C 7F068D0C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F068D10: +/* 09D840 7F068D10 8FB00014 */ lw $s0, 0x14($sp) +/* 09D844 7F068D14 8FB10018 */ lw $s1, 0x18($sp) +/* 09D848 7F068D18 03E00008 */ jr $ra +/* 09D84C 7F068D1C 27BD00C0 */ addiu $sp, $sp, 0xc0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F068D20(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel expended_shell_initial_gravity_modifier_all +.word 0x3e8e38e4 /*0.27777779*/ +.text +glabel sub_GAME_7F068D20 +/* 09D850 7F068D20 3C018005 */ lui $at, %hi(global_timer_delta) +/* 09D854 7F068D24 C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 09D858 7F068D28 3C018005 */ lui $at, %hi(expended_shell_initial_gravity_modifier_all) +/* 09D85C 7F068D2C C4244404 */ lwc1 $f4, %lo(expended_shell_initial_gravity_modifier_all)($at) +/* 09D860 7F068D30 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 09D864 7F068D34 AFBF0024 */ sw $ra, 0x24($sp) +/* 09D868 7F068D38 46041182 */ mul.s $f6, $f2, $f4 +/* 09D86C 7F068D3C AFB30020 */ sw $s3, 0x20($sp) +/* 09D870 7F068D40 AFB2001C */ sw $s2, 0x1c($sp) +/* 09D874 7F068D44 AFB10018 */ sw $s1, 0x18($sp) +/* 09D878 7F068D48 AFB00014 */ sw $s0, 0x14($sp) +/* 09D87C 7F068D4C C4800014 */ lwc1 $f0, 0x14($a0) +/* 09D880 7F068D50 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09D884 7F068D54 44814000 */ mtc1 $at, $f8 +/* 09D888 7F068D58 46060301 */ sub.s $f12, $f0, $f6 +/* 09D88C 7F068D5C C4840008 */ lwc1 $f4, 8($a0) +/* 09D890 7F068D60 46081282 */ mul.s $f10, $f2, $f8 +/* 09D894 7F068D64 3C068007 */ lui $a2, %hi(dword_CODE_bss_80075DB0) +/* 09D898 7F068D68 460C0400 */ add.s $f16, $f0, $f12 +/* 09D89C 7F068D6C 00803825 */ move $a3, $a0 +/* 09D8A0 7F068D70 24C65DB0 */ addiu $a2, %lo(dword_CODE_bss_80075DB0) # addiu $a2, $a2, 0x5db0 +/* 09D8A4 7F068D74 46105482 */ mul.s $f18, $f10, $f16 +/* 09D8A8 7F068D78 C48A0000 */ lwc1 $f10, ($a0) +/* 09D8AC 7F068D7C 46122180 */ add.s $f6, $f4, $f18 +/* 09D8B0 7F068D80 E4860008 */ swc1 $f6, 8($a0) +/* 09D8B4 7F068D84 C4880008 */ lwc1 $f8, 8($a0) +/* 09D8B8 7F068D88 460A403C */ c.lt.s $f8, $f10 +/* 09D8BC 7F068D8C 00000000 */ nop +/* 09D8C0 7F068D90 45020016 */ bc1fl .L7F068DEC +/* 09D8C4 7F068D94 C4E40010 */ lwc1 $f4, 0x10($a3) +/* 09D8C8 7F068D98 8CCE0000 */ lw $t6, ($a2) +/* 09D8CC 7F068D9C 3C028008 */ lui $v0, %hi(pPlayer) +/* 09D8D0 7F068DA0 15C0000F */ bnez $t6, .L7F068DE0 +/* 09D8D4 7F068DA4 00000000 */ nop +/* 09D8D8 7F068DA8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09D8DC 7F068DAC 24030002 */ li $v1, 2 +/* 09D8E0 7F068DB0 8C4F0894 */ lw $t7, 0x894($v0) +/* 09D8E4 7F068DB4 106F000A */ beq $v1, $t7, .L7F068DE0 +/* 09D8E8 7F068DB8 00000000 */ nop +/* 09D8EC 7F068DBC 8C580C3C */ lw $t8, 0xc3c($v0) +/* 09D8F0 7F068DC0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09D8F4 7F068DC4 2405007A */ li $a1, 122 +/* 09D8F8 7F068DC8 10780005 */ beq $v1, $t8, .L7F068DE0 +/* 09D8FC 7F068DCC 00000000 */ nop +/* 09D900 7F068DD0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09D904 7F068DD4 0C002382 */ jal play_sfx_a1 +/* 09D908 7F068DD8 AFA70028 */ sw $a3, 0x28($sp) +/* 09D90C 7F068DDC 8FA70028 */ lw $a3, 0x28($sp) +.L7F068DE0: +/* 09D910 7F068DE0 1000001B */ b .L7F068E50 +/* 09D914 7F068DE4 ACE0009C */ sw $zero, 0x9c($a3) +/* 09D918 7F068DE8 C4E40010 */ lwc1 $f4, 0x10($a3) +.L7F068DEC: +/* 09D91C 7F068DEC C4EA0018 */ lwc1 $f10, 0x18($a3) +/* 09D920 7F068DF0 C4F00004 */ lwc1 $f16, 4($a3) +/* 09D924 7F068DF4 46041482 */ mul.s $f18, $f2, $f4 +/* 09D928 7F068DF8 C4E8000C */ lwc1 $f8, 0xc($a3) +/* 09D92C 7F068DFC 3C138005 */ lui $s3, %hi(clock_timer) +/* 09D930 7F068E00 460A1102 */ mul.s $f4, $f2, $f10 +/* 09D934 7F068E04 26738374 */ addiu $s3, %lo(clock_timer) # addiu $s3, $s3, -0x7c8c +/* 09D938 7F068E08 E4EC0014 */ swc1 $f12, 0x14($a3) +/* 09D93C 7F068E0C 00008025 */ move $s0, $zero +/* 09D940 7F068E10 24F1005C */ addiu $s1, $a3, 0x5c +/* 09D944 7F068E14 46128180 */ add.s $f6, $f16, $f18 +/* 09D948 7F068E18 24F2001C */ addiu $s2, $a3, 0x1c +/* 09D94C 7F068E1C 46044400 */ add.s $f16, $f8, $f4 +/* 09D950 7F068E20 E4E60004 */ swc1 $f6, 4($a3) +/* 09D954 7F068E24 E4F0000C */ swc1 $f16, 0xc($a3) +/* 09D958 7F068E28 8E790000 */ lw $t9, ($s3) +/* 09D95C 7F068E2C 1B200008 */ blez $t9, .L7F068E50 +/* 09D960 7F068E30 02202025 */ move $a0, $s1 +.L7F068E34: +/* 09D964 7F068E34 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 09D968 7F068E38 02402825 */ move $a1, $s2 +/* 09D96C 7F068E3C 8E680000 */ lw $t0, ($s3) +/* 09D970 7F068E40 26100001 */ addiu $s0, $s0, 1 +/* 09D974 7F068E44 0208082A */ slt $at, $s0, $t0 +/* 09D978 7F068E48 5420FFFA */ bnezl $at, .L7F068E34 +/* 09D97C 7F068E4C 02202025 */ move $a0, $s1 +.L7F068E50: +/* 09D980 7F068E50 8FBF0024 */ lw $ra, 0x24($sp) +/* 09D984 7F068E54 8FB00014 */ lw $s0, 0x14($sp) +/* 09D988 7F068E58 8FB10018 */ lw $s1, 0x18($sp) +/* 09D98C 7F068E5C 8FB2001C */ lw $s2, 0x1c($sp) +/* 09D990 7F068E60 8FB30020 */ lw $s3, 0x20($sp) +/* 09D994 7F068E64 03E00008 */ jr $ra +/* 09D998 7F068E68 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel expended_shell_initial_gravity_modifier_all +.word 0x3e8e38e4 /*0.27777779*/ +.text +glabel sub_GAME_7F068D20 +/* 09DE68 7F0692F8 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 09DE6C 7F0692FC C42283B4 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 09DE70 7F069300 3C018005 */ lui $at, %hi(expended_shell_initial_gravity_modifier_all) # $at, 0x8005 +/* 09DE74 7F069304 C4244434 */ lwc1 $f4, %lo(expended_shell_initial_gravity_modifier_all)($at) +/* 09DE78 7F069308 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 09DE7C 7F06930C AFBF0024 */ sw $ra, 0x24($sp) +/* 09DE80 7F069310 46041182 */ mul.s $f6, $f2, $f4 +/* 09DE84 7F069314 AFB30020 */ sw $s3, 0x20($sp) +/* 09DE88 7F069318 AFB2001C */ sw $s2, 0x1c($sp) +/* 09DE8C 7F06931C AFB10018 */ sw $s1, 0x18($sp) +/* 09DE90 7F069320 AFB00014 */ sw $s0, 0x14($sp) +/* 09DE94 7F069324 C4800014 */ lwc1 $f0, 0x14($a0) +/* 09DE98 7F069328 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09DE9C 7F06932C 44814000 */ mtc1 $at, $f8 +/* 09DEA0 7F069330 46060301 */ sub.s $f12, $f0, $f6 +/* 09DEA4 7F069334 C4840008 */ lwc1 $f4, 8($a0) +/* 09DEA8 7F069338 46081282 */ mul.s $f10, $f2, $f8 +/* 09DEAC 7F06933C 3C068007 */ lui $a2, %hi(dword_CODE_bss_80075DB0) # $a2, 0x8007 +/* 09DEB0 7F069340 460C0400 */ add.s $f16, $f0, $f12 +/* 09DEB4 7F069344 00803825 */ move $a3, $a0 +/* 09DEB8 7F069348 24C65DF0 */ addiu $a2, %lo(dword_CODE_bss_80075DB0) # addiu $a2, $a2, 0x5df0 +/* 09DEBC 7F06934C 46105482 */ mul.s $f18, $f10, $f16 +/* 09DEC0 7F069350 C48A0000 */ lwc1 $f10, ($a0) +/* 09DEC4 7F069354 46122180 */ add.s $f6, $f4, $f18 +/* 09DEC8 7F069358 E4860008 */ swc1 $f6, 8($a0) +/* 09DECC 7F06935C C4880008 */ lwc1 $f8, 8($a0) +/* 09DED0 7F069360 460A403C */ c.lt.s $f8, $f10 +/* 09DED4 7F069364 00000000 */ nop +/* 09DED8 7F069368 4502001B */ bc1fl .Ljp7F0693D8 +/* 09DEDC 7F06936C C4E40010 */ lwc1 $f4, 0x10($a3) +/* 09DEE0 7F069370 8CCE0000 */ lw $t6, ($a2) +/* 09DEE4 7F069374 3C138005 */ lui $s3, %hi(clock_timer) # $s3, 0x8005 +/* 09DEE8 7F069378 267383A4 */ addiu $s3, %lo(clock_timer) # addiu $s3, $s3, -0x7c5c +/* 09DEEC 7F06937C 15C00013 */ bnez $t6, .Ljp7F0693CC +/* 09DEF0 7F069380 00000000 */ nop +/* 09DEF4 7F069384 8E6F0000 */ lw $t7, ($s3) +/* 09DEF8 7F069388 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 09DEFC 7F06938C 19E0000F */ blez $t7, .Ljp7F0693CC +/* 09DF00 7F069390 00000000 */ nop +/* 09DF04 7F069394 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 09DF08 7F069398 24030002 */ li $v1, 2 +/* 09DF0C 7F06939C 8C580894 */ lw $t8, 0x894($v0) +/* 09DF10 7F0693A0 1078000A */ beq $v1, $t8, .Ljp7F0693CC +/* 09DF14 7F0693A4 00000000 */ nop +/* 09DF18 7F0693A8 8C590C3C */ lw $t9, 0xc3c($v0) +/* 09DF1C 7F0693AC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09DF20 7F0693B0 2405007A */ li $a1, 122 +/* 09DF24 7F0693B4 10790005 */ beq $v1, $t9, .Ljp7F0693CC +/* 09DF28 7F0693B8 00000000 */ nop +/* 09DF2C 7F0693BC 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09DF30 7F0693C0 0C002386 */ jal play_sfx_a1 +/* 09DF34 7F0693C4 AFA70028 */ sw $a3, 0x28($sp) +/* 09DF38 7F0693C8 8FA70028 */ lw $a3, 0x28($sp) +.Ljp7F0693CC: +/* 09DF3C 7F0693CC 1000001B */ b .Ljp7F06943C +/* 09DF40 7F0693D0 ACE0009C */ sw $zero, 0x9c($a3) +/* 09DF44 7F0693D4 C4E40010 */ lwc1 $f4, 0x10($a3) +.Ljp7F0693D8: +/* 09DF48 7F0693D8 C4EA0018 */ lwc1 $f10, 0x18($a3) +/* 09DF4C 7F0693DC C4F00004 */ lwc1 $f16, 4($a3) +/* 09DF50 7F0693E0 46041482 */ mul.s $f18, $f2, $f4 +/* 09DF54 7F0693E4 C4E8000C */ lwc1 $f8, 0xc($a3) +/* 09DF58 7F0693E8 3C138005 */ lui $s3, %hi(clock_timer) # $s3, 0x8005 +/* 09DF5C 7F0693EC 460A1102 */ mul.s $f4, $f2, $f10 +/* 09DF60 7F0693F0 267383A4 */ addiu $s3, %lo(clock_timer) # addiu $s3, $s3, -0x7c5c +/* 09DF64 7F0693F4 E4EC0014 */ swc1 $f12, 0x14($a3) +/* 09DF68 7F0693F8 00008025 */ move $s0, $zero +/* 09DF6C 7F0693FC 24F1005C */ addiu $s1, $a3, 0x5c +/* 09DF70 7F069400 46128180 */ add.s $f6, $f16, $f18 +/* 09DF74 7F069404 24F2001C */ addiu $s2, $a3, 0x1c +/* 09DF78 7F069408 46044400 */ add.s $f16, $f8, $f4 +/* 09DF7C 7F06940C E4E60004 */ swc1 $f6, 4($a3) +/* 09DF80 7F069410 E4F0000C */ swc1 $f16, 0xc($a3) +/* 09DF84 7F069414 8E680000 */ lw $t0, ($s3) +/* 09DF88 7F069418 19000008 */ blez $t0, .Ljp7F06943C +/* 09DF8C 7F06941C 02202025 */ move $a0, $s1 +.Ljp7F069420: +/* 09DF90 7F069420 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 09DF94 7F069424 02402825 */ move $a1, $s2 +/* 09DF98 7F069428 8E690000 */ lw $t1, ($s3) +/* 09DF9C 7F06942C 26100001 */ addiu $s0, $s0, 1 +/* 09DFA0 7F069430 0209082A */ slt $at, $s0, $t1 +/* 09DFA4 7F069434 5420FFFA */ bnezl $at, .Ljp7F069420 +/* 09DFA8 7F069438 02202025 */ move $a0, $s1 +.Ljp7F06943C: +/* 09DFAC 7F06943C 8FBF0024 */ lw $ra, 0x24($sp) +/* 09DFB0 7F069440 8FB00014 */ lw $s0, 0x14($sp) +/* 09DFB4 7F069444 8FB10018 */ lw $s1, 0x18($sp) +/* 09DFB8 7F069448 8FB2001C */ lw $s2, 0x1c($sp) +/* 09DFBC 7F06944C 8FB30020 */ lw $s3, 0x20($sp) +/* 09DFC0 7F069450 03E00008 */ jr $ra +/* 09DFC4 7F069454 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F068E6C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F068E6C +/* 09D99C 7F068E6C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 09D9A0 7F068E70 AFB10018 */ sw $s1, 0x18($sp) +/* 09D9A4 7F068E74 AFB00014 */ sw $s0, 0x14($sp) +/* 09D9A8 7F068E78 3C118007 */ lui $s1, %hi(dword_CODE_bss_80076A48) +/* 09D9AC 7F068E7C 3C108007 */ lui $s0, %hi(dword_CODE_bss_80075DC8) +/* 09D9B0 7F068E80 AFBF001C */ sw $ra, 0x1c($sp) +/* 09D9B4 7F068E84 26316A48 */ addiu $s1, %lo(dword_CODE_bss_80076A48) # addiu $s1, $s1, 0x6a48 +/* 09D9B8 7F068E88 26105DC8 */ addiu $s0, %lo(dword_CODE_bss_80075DC8) # addiu $s0, $s0, 0x5dc8 +/* 09D9BC 7F068E8C 8E0E009C */ lw $t6, 0x9c($s0) +.L7F068E90: +/* 09D9C0 7F068E90 51C00004 */ beql $t6, $zero, .L7F068EA4 +/* 09D9C4 7F068E94 261000A0 */ addiu $s0, $s0, 0xa0 +/* 09D9C8 7F068E98 0FC1A348 */ jal sub_GAME_7F068D20 +/* 09D9CC 7F068E9C 02002025 */ move $a0, $s0 +/* 09D9D0 7F068EA0 261000A0 */ addiu $s0, $s0, 0xa0 +.L7F068EA4: +/* 09D9D4 7F068EA4 0211082B */ sltu $at, $s0, $s1 +/* 09D9D8 7F068EA8 5420FFF9 */ bnezl $at, .L7F068E90 +/* 09D9DC 7F068EAC 8E0E009C */ lw $t6, 0x9c($s0) +/* 09D9E0 7F068EB0 8FBF001C */ lw $ra, 0x1c($sp) +/* 09D9E4 7F068EB4 8FB00014 */ lw $s0, 0x14($sp) +/* 09D9E8 7F068EB8 8FB10018 */ lw $s1, 0x18($sp) +/* 09D9EC 7F068EBC 03E00008 */ jr $ra +/* 09D9F0 7F068EC0 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F068EC4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054408 +.word 0x3dccccce /*0.10000001*/ +glabel D_8005440C +.word 0xc6ea6000 /*-30000.0*/ +glabel D_80054410 +.word 0x46ea6000 /*30000.0*/ +.text +glabel sub_GAME_7F068EC4 +/* 09D9F4 7F068EC4 27BDFF18 */ addiu $sp, $sp, -0xe8 +/* 09D9F8 7F068EC8 AFBF001C */ sw $ra, 0x1c($sp) +/* 09D9FC 7F068ECC AFB00018 */ sw $s0, 0x18($sp) +/* 09DA00 7F068ED0 AFA400E8 */ sw $a0, 0xe8($sp) +/* 09DA04 7F068ED4 AFA500EC */ sw $a1, 0xec($sp) +/* 09DA08 7F068ED8 8CAF0000 */ lw $t7, ($a1) +/* 09DA0C 7F068EDC AFAF00E4 */ sw $t7, 0xe4($sp) +/* 09DA10 7F068EE0 8C82009C */ lw $v0, 0x9c($a0) +/* 09DA14 7F068EE4 8444000E */ lh $a0, 0xe($v0) +/* 09DA18 7F068EE8 AFA200E0 */ sw $v0, 0xe0($sp) +/* 09DA1C 7F068EEC 0004C980 */ sll $t9, $a0, 6 +/* 09DA20 7F068EF0 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 09DA24 7F068EF4 03202025 */ move $a0, $t9 +/* 09DA28 7F068EF8 3C098003 */ lui $t1, %hi(D_80035EB0) +/* 09DA2C 7F068EFC 25295EB0 */ addiu $t1, %lo(D_80035EB0) # addiu $t1, $t1, 0x5eb0 +/* 09DA30 7F068F00 AFA200DC */ sw $v0, 0xdc($sp) +/* 09DA34 7F068F04 252C003C */ addiu $t4, $t1, 0x3c +/* 09DA38 7F068F08 27A8007C */ addiu $t0, $sp, 0x7c +.L7F068F0C: +/* 09DA3C 7F068F0C 8D210000 */ lw $at, ($t1) +/* 09DA40 7F068F10 2529000C */ addiu $t1, $t1, 0xc +/* 09DA44 7F068F14 2508000C */ addiu $t0, $t0, 0xc +/* 09DA48 7F068F18 AD01FFF4 */ sw $at, -0xc($t0) +/* 09DA4C 7F068F1C 8D21FFF8 */ lw $at, -8($t1) +/* 09DA50 7F068F20 AD01FFF8 */ sw $at, -8($t0) +/* 09DA54 7F068F24 8D21FFFC */ lw $at, -4($t1) +/* 09DA58 7F068F28 152CFFF8 */ bne $t1, $t4, .L7F068F0C +/* 09DA5C 7F068F2C AD01FFFC */ sw $at, -4($t0) +/* 09DA60 7F068F30 8D210000 */ lw $at, ($t1) +/* 09DA64 7F068F34 24100001 */ li $s0, 1 +/* 09DA68 7F068F38 AD010000 */ sw $at, ($t0) +/* 09DA6C 7F068F3C 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 09DA70 7F068F40 8FA400E0 */ lw $a0, 0xe0($sp) +/* 09DA74 7F068F44 27A400BC */ addiu $a0, $sp, 0xbc +/* 09DA78 7F068F48 8FA500E0 */ lw $a1, 0xe0($sp) +/* 09DA7C 7F068F4C 0FC1D7DA */ jal sub_GAME_7F075F68 +/* 09DA80 7F068F50 00003025 */ move $a2, $zero +/* 09DA84 7F068F54 8FAD00DC */ lw $t5, 0xdc($sp) +/* 09DA88 7F068F58 8FA400E8 */ lw $a0, 0xe8($sp) +/* 09DA8C 7F068F5C 27A5003C */ addiu $a1, $sp, 0x3c +/* 09DA90 7F068F60 AFAD00C8 */ sw $t5, 0xc8($sp) +/* 09DA94 7F068F64 0FC16008 */ jal matrix_4x4_copy +/* 09DA98 7F068F68 2484001C */ addiu $a0, $a0, 0x1c +/* 09DA9C 7F068F6C 3C018005 */ lui $at, %hi(D_80054408) +/* 09DAA0 7F068F70 C42C4408 */ lwc1 $f12, %lo(D_80054408)($at) +/* 09DAA4 7F068F74 0FC1629F */ jal matrix_scalar_multiply +/* 09DAA8 7F068F78 27A5003C */ addiu $a1, $sp, 0x3c +/* 09DAAC 7F068F7C 8FA400E8 */ lw $a0, 0xe8($sp) +/* 09DAB0 7F068F80 27A5003C */ addiu $a1, $sp, 0x3c +/* 09DAB4 7F068F84 0FC16266 */ jal matrix_4x4_set_position +/* 09DAB8 7F068F88 24840004 */ addiu $a0, $a0, 4 +/* 09DABC 7F068F8C 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 09DAC0 7F068F90 00000000 */ nop +/* 09DAC4 7F068F94 00402025 */ move $a0, $v0 +/* 09DAC8 7F068F98 27A5003C */ addiu $a1, $sp, 0x3c +/* 09DACC 7F068F9C 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 09DAD0 7F068FA0 8FA600C8 */ lw $a2, 0xc8($sp) +/* 09DAD4 7F068FA4 3C018005 */ lui $at, %hi(D_8005440C) +/* 09DAD8 7F068FA8 C42C440C */ lwc1 $f12, %lo(D_8005440C)($at) +/* 09DADC 7F068FAC 3C018005 */ lui $at, %hi(D_80054410) +/* 09DAE0 7F068FB0 C4224410 */ lwc1 $f2, %lo(D_80054410)($at) +/* 09DAE4 7F068FB4 00001025 */ move $v0, $zero +/* 09DAE8 7F068FB8 8FA300C8 */ lw $v1, 0xc8($sp) +/* 09DAEC 7F068FBC 2404000C */ li $a0, 12 +.L7F068FC0: +/* 09DAF0 7F068FC0 C4600030 */ lwc1 $f0, 0x30($v1) +/* 09DAF4 7F068FC4 24420004 */ addiu $v0, $v0, 4 +/* 09DAF8 7F068FC8 4600103C */ c.lt.s $f2, $f0 +/* 09DAFC 7F068FCC 00000000 */ nop +/* 09DB00 7F068FD0 45020004 */ bc1fl .L7F068FE4 +/* 09DB04 7F068FD4 460C003C */ c.lt.s $f0, $f12 +/* 09DB08 7F068FD8 10000006 */ b .L7F068FF4 +/* 09DB0C 7F068FDC 00008025 */ move $s0, $zero +/* 09DB10 7F068FE0 460C003C */ c.lt.s $f0, $f12 +.L7F068FE4: +/* 09DB14 7F068FE4 00000000 */ nop +/* 09DB18 7F068FE8 45000002 */ bc1f .L7F068FF4 +/* 09DB1C 7F068FEC 00000000 */ nop +/* 09DB20 7F068FF0 00008025 */ move $s0, $zero +.L7F068FF4: +/* 09DB24 7F068FF4 1444FFF2 */ bne $v0, $a0, .L7F068FC0 +/* 09DB28 7F068FF8 24630004 */ addiu $v1, $v1, 4 +/* 09DB2C 7F068FFC 1200001E */ beqz $s0, .L7F069078 +/* 09DB30 7F069000 24180004 */ li $t8, 4 +/* 09DB34 7F069004 8FAE00E4 */ lw $t6, 0xe4($sp) +/* 09DB38 7F069008 8FAF00DC */ lw $t7, 0xdc($sp) +/* 09DB3C 7F06900C 3C028008 */ lui $v0, %hi(pPlayer) +/* 09DB40 7F069010 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09DB44 7F069014 AFA00080 */ sw $zero, 0x80($sp) +/* 09DB48 7F069018 AFB800AC */ sw $t8, 0xac($sp) +/* 09DB4C 7F06901C AFAE0088 */ sw $t6, 0x88($sp) +/* 09DB50 7F069020 AFAF008C */ sw $t7, 0x8c($sp) +/* 09DB54 7F069024 904B0FDC */ lbu $t3, 0xfdc($v0) +/* 09DB58 7F069028 90490FDD */ lbu $t1, 0xfdd($v0) +/* 09DB5C 7F06902C 90590FDF */ lbu $t9, 0xfdf($v0) +/* 09DB60 7F069030 904E0FDE */ lbu $t6, 0xfde($v0) +/* 09DB64 7F069034 000B5600 */ sll $t2, $t3, 0x18 +/* 09DB68 7F069038 00094400 */ sll $t0, $t1, 0x10 +/* 09DB6C 7F06903C 032A6025 */ or $t4, $t9, $t2 +/* 09DB70 7F069040 01886825 */ or $t5, $t4, $t0 +/* 09DB74 7F069044 000E7A00 */ sll $t7, $t6, 8 +/* 09DB78 7F069048 01AFC025 */ or $t8, $t5, $t7 +/* 09DB7C 7F06904C AFB800B0 */ sw $t8, 0xb0($sp) +/* 09DB80 7F069050 27A4007C */ addiu $a0, $sp, 0x7c +/* 09DB84 7F069054 0FC1D1A1 */ jal subdraw +/* 09DB88 7F069058 27A500BC */ addiu $a1, $sp, 0xbc +/* 09DB8C 7F06905C 8FAB0088 */ lw $t3, 0x88($sp) +/* 09DB90 7F069060 8FB900EC */ lw $t9, 0xec($sp) +/* 09DB94 7F069064 AF2B0000 */ sw $t3, ($t9) +/* 09DB98 7F069068 8FAA00E0 */ lw $t2, 0xe0($sp) +/* 09DB9C 7F06906C 8FA400DC */ lw $a0, 0xdc($sp) +/* 09DBA0 7F069070 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 09DBA4 7F069074 8545000E */ lh $a1, 0xe($t2) +.L7F069078: +/* 09DBA8 7F069078 8FBF001C */ lw $ra, 0x1c($sp) +/* 09DBAC 7F06907C 8FB00018 */ lw $s0, 0x18($sp) +/* 09DBB0 7F069080 27BD00E8 */ addiu $sp, $sp, 0xe8 +/* 09DBB4 7F069084 03E00008 */ jr $ra +/* 09DBB8 7F069088 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06908C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06908C +/* 09DBBC 7F06908C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 09DBC0 7F069090 AFB1001C */ sw $s1, 0x1c($sp) +/* 09DBC4 7F069094 AFB00018 */ sw $s0, 0x18($sp) +/* 09DBC8 7F069098 AFB20020 */ sw $s2, 0x20($sp) +/* 09DBCC 7F06909C 3C118007 */ lui $s1, %hi(dword_CODE_bss_80076A48) +/* 09DBD0 7F0690A0 3C108007 */ lui $s0, %hi(dword_CODE_bss_80075DC8) +/* 09DBD4 7F0690A4 00809025 */ move $s2, $a0 +/* 09DBD8 7F0690A8 AFBF0024 */ sw $ra, 0x24($sp) +/* 09DBDC 7F0690AC 26316A48 */ addiu $s1, %lo(dword_CODE_bss_80076A48) # addiu $s1, $s1, 0x6a48 +/* 09DBE0 7F0690B0 26105DC8 */ addiu $s0, %lo(dword_CODE_bss_80075DC8) # addiu $s0, $s0, 0x5dc8 +/* 09DBE4 7F0690B4 8E0E009C */ lw $t6, 0x9c($s0) +.L7F0690B8: +/* 09DBE8 7F0690B8 02002025 */ move $a0, $s0 +/* 09DBEC 7F0690BC 51C00004 */ beql $t6, $zero, .L7F0690D0 +/* 09DBF0 7F0690C0 261000A0 */ addiu $s0, $s0, 0xa0 +/* 09DBF4 7F0690C4 0FC1A3B1 */ jal sub_GAME_7F068EC4 +/* 09DBF8 7F0690C8 02402825 */ move $a1, $s2 +/* 09DBFC 7F0690CC 261000A0 */ addiu $s0, $s0, 0xa0 +.L7F0690D0: +/* 09DC00 7F0690D0 0211082B */ sltu $at, $s0, $s1 +/* 09DC04 7F0690D4 5420FFF8 */ bnezl $at, .L7F0690B8 +/* 09DC08 7F0690D8 8E0E009C */ lw $t6, 0x9c($s0) +/* 09DC0C 7F0690DC 8FBF0024 */ lw $ra, 0x24($sp) +/* 09DC10 7F0690E0 8FB00018 */ lw $s0, 0x18($sp) +/* 09DC14 7F0690E4 8FB1001C */ lw $s1, 0x1c($sp) +/* 09DC18 7F0690E8 8FB20020 */ lw $s2, 0x20($sp) +/* 09DC1C 7F0690EC 03E00008 */ jr $ra +/* 09DC20 7F0690F0 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void set_unset_ammo_on_screen_setting(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_unset_ammo_on_screen_setting +/* 09DC24 7F0690F4 10A00008 */ beqz $a1, .L7F069118 +/* 09DC28 7F0690F8 3C028008 */ lui $v0, %hi(pPlayer) +/* 09DC2C 7F0690FC 3C028008 */ lui $v0, %hi(pPlayer) +/* 09DC30 7F069100 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09DC34 7F069104 00807827 */ not $t7, $a0 +/* 09DC38 7F069108 8C4E1064 */ lw $t6, 0x1064($v0) +/* 09DC3C 7F06910C 01CFC024 */ and $t8, $t6, $t7 +/* 09DC40 7F069110 03E00008 */ jr $ra +/* 09DC44 7F069114 AC581064 */ sw $t8, 0x1064($v0) + +.L7F069118: +/* 09DC48 7F069118 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09DC4C 7F06911C 8C591064 */ lw $t9, 0x1064($v0) +/* 09DC50 7F069120 03244025 */ or $t0, $t9, $a0 +/* 09DC54 7F069124 AC481064 */ sw $t0, 0x1064($v0) +/* 09DC58 7F069128 03E00008 */ jr $ra +/* 09DC5C 7F06912C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void give_cur_player_ammo(void) { + +} +#else +GLOBAL_ASM( +.text +glabel give_cur_player_ammo +/* 09DC60 7F069130 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 09DC64 7F069134 AFB00018 */ sw $s0, 0x18($sp) +/* 09DC68 7F069138 00808025 */ move $s0, $a0 +/* 09DC6C 7F06913C AFBF001C */ sw $ra, 0x1c($sp) +/* 09DC70 7F069140 AFA5002C */ sw $a1, 0x2c($sp) +/* 09DC74 7F069144 0FC17674 */ jal get_item_in_hand +/* 09DC78 7F069148 00002025 */ move $a0, $zero +/* 09DC7C 7F06914C AFA20024 */ sw $v0, 0x24($sp) +/* 09DC80 7F069150 0FC1A50B */ jal get_ammo_type_for_weapon +/* 09DC84 7F069154 00402025 */ move $a0, $v0 +/* 09DC88 7F069158 1450001F */ bne $v0, $s0, .L7F0691D8 +/* 09DC8C 7F06915C 8FA40024 */ lw $a0, 0x24($sp) +/* 09DC90 7F069160 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09DC94 7F069164 3C050020 */ lui $a1, 0x20 +/* 09DC98 7F069168 1040001B */ beqz $v0, .L7F0691D8 +/* 09DC9C 7F06916C 3C038008 */ lui $v1, %hi(pPlayer) +/* 09DCA0 7F069170 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 09DCA4 7F069174 8FAF002C */ lw $t7, 0x2c($sp) +/* 09DCA8 7F069178 8C6E089C */ lw $t6, 0x89c($v1) +/* 09DCAC 7F06917C 01CFC021 */ addu $t8, $t6, $t7 +/* 09DCB0 7F069180 AC78089C */ sw $t8, 0x89c($v1) +/* 09DCB4 7F069184 0FC1722D */ jal get_ptr_item_statistics +/* 09DCB8 7F069188 8FA40024 */ lw $a0, 0x24($sp) +/* 09DCBC 7F06918C 3C038008 */ lui $v1, %hi(pPlayer) +/* 09DCC0 7F069190 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 09DCC4 7F069194 84590020 */ lh $t9, 0x20($v0) +/* 09DCC8 7F069198 8C68089C */ lw $t0, 0x89c($v1) +/* 09DCCC 7F06919C 0328082A */ slt $at, $t9, $t0 +/* 09DCD0 7F0691A0 5020000A */ beql $at, $zero, .L7F0691CC +/* 09DCD4 7F0691A4 00105880 */ sll $t3, $s0, 2 +/* 09DCD8 7F0691A8 0FC1722D */ jal get_ptr_item_statistics +/* 09DCDC 7F0691AC 8FA40024 */ lw $a0, 0x24($sp) +/* 09DCE0 7F0691B0 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 09DCE4 7F0691B4 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 09DCE8 7F0691B8 84490020 */ lh $t1, 0x20($v0) +/* 09DCEC 7F0691BC 3C038008 */ lui $v1, %hi(pPlayer) +/* 09DCF0 7F0691C0 AD49089C */ sw $t1, 0x89c($t2) +/* 09DCF4 7F0691C4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 09DCF8 7F0691C8 00105880 */ sll $t3, $s0, 2 +.L7F0691CC: +/* 09DCFC 7F0691CC 006B6021 */ addu $t4, $v1, $t3 +/* 09DD00 7F0691D0 10000016 */ b .L7F06922C +/* 09DD04 7F0691D4 AD801130 */ sw $zero, 0x1130($t4) +.L7F0691D8: +/* 09DD08 7F0691D8 00106880 */ sll $t5, $s0, 2 +/* 09DD0C 7F0691DC 01B06823 */ subu $t5, $t5, $s0 +/* 09DD10 7F0691E0 000D6880 */ sll $t5, $t5, 2 +/* 09DD14 7F0691E4 3C028003 */ lui $v0, %hi(ammo_related) +/* 09DD18 7F0691E8 004D1021 */ addu $v0, $v0, $t5 +/* 09DD1C 7F0691EC 8FA3002C */ lw $v1, 0x2c($sp) +/* 09DD20 7F0691F0 8C425EF0 */ lw $v0, %lo(ammo_related)($v0) +/* 09DD24 7F0691F4 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 09DD28 7F0691F8 3C198008 */ lui $t9, %hi(pPlayer) +/* 09DD2C 7F0691FC 0043082A */ slt $at, $v0, $v1 +/* 09DD30 7F069200 10200006 */ beqz $at, .L7F06921C +/* 09DD34 7F069204 00000000 */ nop +/* 09DD38 7F069208 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 09DD3C 7F06920C 00107880 */ sll $t7, $s0, 2 +/* 09DD40 7F069210 01CFC021 */ addu $t8, $t6, $t7 +/* 09DD44 7F069214 10000005 */ b .L7F06922C +/* 09DD48 7F069218 AF021130 */ sw $v0, 0x1130($t8) +.L7F06921C: +/* 09DD4C 7F06921C 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 09DD50 7F069220 00104080 */ sll $t0, $s0, 2 +/* 09DD54 7F069224 03284821 */ addu $t1, $t9, $t0 +/* 09DD58 7F069228 AD231130 */ sw $v1, 0x1130($t1) +.L7F06922C: +/* 09DD5C 7F06922C 8FBF001C */ lw $ra, 0x1c($sp) +/* 09DD60 7F069230 8FB00018 */ lw $s0, 0x18($sp) +/* 09DD64 7F069234 27BD0028 */ addiu $sp, $sp, 0x28 +/* 09DD68 7F069238 03E00008 */ jr $ra +/* 09DD6C 7F06923C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void check_cur_player_ammo_amount_in_inventory(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_cur_player_ammo_amount_in_inventory +/* 09DD70 7F069240 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 09DD74 7F069244 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 09DD78 7F069248 00047880 */ sll $t7, $a0, 2 +/* 09DD7C 7F06924C 01CFC021 */ addu $t8, $t6, $t7 +/* 09DD80 7F069250 03E00008 */ jr $ra +/* 09DD84 7F069254 8F021130 */ lw $v0, 0x1130($t8) +) +#endif + + + + + +#ifdef NONMATCHING +void check_cur_player_ammo_amount_total(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_cur_player_ammo_amount_total +/* 09DD88 7F069258 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 09DD8C 7F06925C AFBF001C */ sw $ra, 0x1c($sp) +/* 09DD90 7F069260 AFB00018 */ sw $s0, 0x18($sp) +/* 09DD94 7F069264 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory +/* 09DD98 7F069268 AFA40020 */ sw $a0, 0x20($sp) +/* 09DD9C 7F06926C 00408025 */ move $s0, $v0 +/* 09DDA0 7F069270 0FC17674 */ jal get_item_in_hand +/* 09DDA4 7F069274 00002025 */ move $a0, $zero +/* 09DDA8 7F069278 0FC1A50B */ jal get_ammo_type_for_weapon +/* 09DDAC 7F06927C 00402025 */ move $a0, $v0 +/* 09DDB0 7F069280 8FAE0020 */ lw $t6, 0x20($sp) +/* 09DDB4 7F069284 144E0004 */ bne $v0, $t6, .L7F069298 +/* 09DDB8 7F069288 00000000 */ nop +/* 09DDBC 7F06928C 0FC1A4D1 */ jal get_ammo_in_hands_magazine +/* 09DDC0 7F069290 00002025 */ move $a0, $zero +/* 09DDC4 7F069294 02028021 */ addu $s0, $s0, $v0 +.L7F069298: +/* 09DDC8 7F069298 0FC17674 */ jal get_item_in_hand +/* 09DDCC 7F06929C 24040001 */ li $a0, 1 +/* 09DDD0 7F0692A0 0FC1A50B */ jal get_ammo_type_for_weapon +/* 09DDD4 7F0692A4 00402025 */ move $a0, $v0 +/* 09DDD8 7F0692A8 8FAF0020 */ lw $t7, 0x20($sp) +/* 09DDDC 7F0692AC 544F0005 */ bnel $v0, $t7, .L7F0692C4 +/* 09DDE0 7F0692B0 8FBF001C */ lw $ra, 0x1c($sp) +/* 09DDE4 7F0692B4 0FC1A4D1 */ jal get_ammo_in_hands_magazine +/* 09DDE8 7F0692B8 24040001 */ li $a0, 1 +/* 09DDEC 7F0692BC 02028021 */ addu $s0, $s0, $v0 +/* 09DDF0 7F0692C0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0692C4: +/* 09DDF4 7F0692C4 02001025 */ move $v0, $s0 +/* 09DDF8 7F0692C8 8FB00018 */ lw $s0, 0x18($sp) +/* 09DDFC 7F0692CC 03E00008 */ jr $ra +/* 09DE00 7F0692D0 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void get_max_ammo_for_type(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_max_ammo_for_type +/* 09DE04 7F0692D4 00047080 */ sll $t6, $a0, 2 +/* 09DE08 7F0692D8 01C47023 */ subu $t6, $t6, $a0 +/* 09DE0C 7F0692DC 000E7080 */ sll $t6, $t6, 2 +/* 09DE10 7F0692E0 3C028003 */ lui $v0, %hi(ammo_related) +/* 09DE14 7F0692E4 004E1021 */ addu $v0, $v0, $t6 +/* 09DE18 7F0692E8 03E00008 */ jr $ra +/* 09DE1C 7F0692EC 8C425EF0 */ lw $v0, %lo(ammo_related)($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void set_max_ammo_for_cur_player(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_max_ammo_for_cur_player +/* 09DE20 7F0692F0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 09DE24 7F0692F4 AFB1001C */ sw $s1, 0x1c($sp) +/* 09DE28 7F0692F8 AFB20020 */ sw $s2, 0x20($sp) +/* 09DE2C 7F0692FC AFB00018 */ sw $s0, 0x18($sp) +/* 09DE30 7F069300 3C118003 */ lui $s1, %hi(ammo_related) +/* 09DE34 7F069304 AFBF0024 */ sw $ra, 0x24($sp) +/* 09DE38 7F069308 26315EF0 */ addiu $s1, %lo(ammo_related) # addiu $s1, $s1, 0x5ef0 +/* 09DE3C 7F06930C 00008025 */ move $s0, $zero +/* 09DE40 7F069310 2412001E */ li $s2, 30 +.L7F069314: +/* 09DE44 7F069314 02002025 */ move $a0, $s0 +/* 09DE48 7F069318 0FC1A44C */ jal give_cur_player_ammo +/* 09DE4C 7F06931C 8E250000 */ lw $a1, ($s1) +/* 09DE50 7F069320 26100001 */ addiu $s0, $s0, 1 +/* 09DE54 7F069324 1612FFFB */ bne $s0, $s2, .L7F069314 +/* 09DE58 7F069328 2631000C */ addiu $s1, $s1, 0xc +/* 09DE5C 7F06932C 8FBF0024 */ lw $ra, 0x24($sp) +/* 09DE60 7F069330 8FB00018 */ lw $s0, 0x18($sp) +/* 09DE64 7F069334 8FB1001C */ lw $s1, 0x1c($sp) +/* 09DE68 7F069338 8FB20020 */ lw $s2, 0x20($sp) +/* 09DE6C 7F06933C 03E00008 */ jr $ra +/* 09DE70 7F069340 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void get_ammo_in_hands_magazine(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_ammo_in_hands_magazine +/* 09DE74 7F069344 000478C0 */ sll $t7, $a0, 3 +/* 09DE78 7F069348 01E47823 */ subu $t7, $t7, $a0 +/* 09DE7C 7F06934C 000F7880 */ sll $t7, $t7, 2 +/* 09DE80 7F069350 01E47821 */ addu $t7, $t7, $a0 +/* 09DE84 7F069354 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 09DE88 7F069358 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 09DE8C 7F06935C 000F7880 */ sll $t7, $t7, 2 +/* 09DE90 7F069360 01E47821 */ addu $t7, $t7, $a0 +/* 09DE94 7F069364 000F78C0 */ sll $t7, $t7, 3 +/* 09DE98 7F069368 01CFC021 */ addu $t8, $t6, $t7 +/* 09DE9C 7F06936C 03E00008 */ jr $ra +/* 09DEA0 7F069370 8F02089C */ lw $v0, 0x89c($t8) +) +#endif + + + + + +#ifdef NONMATCHING +void get_ammo_in_hands_weapon(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_ammo_in_hands_weapon +/* 09DEA4 7F069374 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 09DEA8 7F069378 AFBF0014 */ sw $ra, 0x14($sp) +/* 09DEAC 7F06937C 0FC17674 */ jal get_item_in_hand +/* 09DEB0 7F069380 AFA40020 */ sw $a0, 0x20($sp) +/* 09DEB4 7F069384 00402025 */ move $a0, $v0 +/* 09DEB8 7F069388 0FC1A514 */ jal get_ammo_count_for_weapon +/* 09DEBC 7F06938C AFA2001C */ sw $v0, 0x1c($sp) +/* 09DEC0 7F069390 8FA3001C */ lw $v1, 0x1c($sp) +/* 09DEC4 7F069394 2401000F */ li $at, 15 +/* 09DEC8 7F069398 00402825 */ move $a1, $v0 +/* 09DECC 7F06939C 10610004 */ beq $v1, $at, .L7F0693B0 +/* 09DED0 7F0693A0 8FAE0020 */ lw $t6, 0x20($sp) +/* 09DED4 7F0693A4 24010010 */ li $at, 16 +/* 09DED8 7F0693A8 1461001C */ bne $v1, $at, .L7F06941C +/* 09DEDC 7F0693AC 00A01025 */ move $v0, $a1 +.L7F0693B0: +/* 09DEE0 7F0693B0 240F0001 */ li $t7, 1 +/* 09DEE4 7F0693B4 01EE2023 */ subu $a0, $t7, $t6 +/* 09DEE8 7F0693B8 0FC17674 */ jal get_item_in_hand +/* 09DEEC 7F0693BC AFA50018 */ sw $a1, 0x18($sp) +/* 09DEF0 7F0693C0 2401000F */ li $at, 15 +/* 09DEF4 7F0693C4 10410004 */ beq $v0, $at, .L7F0693D8 +/* 09DEF8 7F0693C8 8FA50018 */ lw $a1, 0x18($sp) +/* 09DEFC 7F0693CC 24010010 */ li $at, 16 +/* 09DF00 7F0693D0 14410010 */ bne $v0, $at, .L7F069414 +/* 09DF04 7F0693D4 00000000 */ nop +.L7F0693D8: +/* 09DF08 7F0693D8 8FB90020 */ lw $t9, 0x20($sp) +/* 09DF0C 7F0693DC 3C188008 */ lui $t8, %hi(pPlayer) +/* 09DF10 7F0693E0 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 09DF14 7F0693E4 001940C0 */ sll $t0, $t9, 3 +/* 09DF18 7F0693E8 01194023 */ subu $t0, $t0, $t9 +/* 09DF1C 7F0693EC 00084080 */ sll $t0, $t0, 2 +/* 09DF20 7F0693F0 01194021 */ addu $t0, $t0, $t9 +/* 09DF24 7F0693F4 00084080 */ sll $t0, $t0, 2 +/* 09DF28 7F0693F8 01194021 */ addu $t0, $t0, $t9 +/* 09DF2C 7F0693FC 000840C0 */ sll $t0, $t0, 3 +/* 09DF30 7F069400 00084823 */ negu $t1, $t0 +/* 09DF34 7F069404 03095021 */ addu $t2, $t8, $t1 +/* 09DF38 7F069408 8D4B0C4C */ lw $t3, 0xc4c($t2) +/* 09DF3C 7F06940C 10000003 */ b .L7F06941C +/* 09DF40 7F069410 00AB1023 */ subu $v0, $a1, $t3 +.L7F069414: +/* 09DF44 7F069414 10000001 */ b .L7F06941C +/* 09DF48 7F069418 00A01025 */ move $v0, $a1 +.L7F06941C: +/* 09DF4C 7F06941C 8FBF0014 */ lw $ra, 0x14($sp) +/* 09DF50 7F069420 27BD0020 */ addiu $sp, $sp, 0x20 +/* 09DF54 7F069424 03E00008 */ jr $ra +/* 09DF58 7F069428 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_ammo_type_for_weapon(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_ammo_type_for_weapon +/* 09DF5C 7F06942C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 09DF60 7F069430 AFBF0014 */ sw $ra, 0x14($sp) +/* 09DF64 7F069434 0FC1722D */ jal get_ptr_item_statistics +/* 09DF68 7F069438 00000000 */ nop +/* 09DF6C 7F06943C 8FBF0014 */ lw $ra, 0x14($sp) +/* 09DF70 7F069440 8C42001C */ lw $v0, 0x1c($v0) +/* 09DF74 7F069444 27BD0018 */ addiu $sp, $sp, 0x18 +/* 09DF78 7F069448 03E00008 */ jr $ra +/* 09DF7C 7F06944C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_ammo_count_for_weapon(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_ammo_count_for_weapon +/* 09DF80 7F069450 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 09DF84 7F069454 AFBF0014 */ sw $ra, 0x14($sp) +/* 09DF88 7F069458 0FC1722D */ jal get_ptr_item_statistics +/* 09DF8C 7F06945C 00000000 */ nop +/* 09DF90 7F069460 8C4F001C */ lw $t7, 0x1c($v0) +/* 09DF94 7F069464 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 09DF98 7F069468 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 09DF9C 7F06946C 8FBF0014 */ lw $ra, 0x14($sp) +/* 09DFA0 7F069470 000FC080 */ sll $t8, $t7, 2 +/* 09DFA4 7F069474 01D8C821 */ addu $t9, $t6, $t8 +/* 09DFA8 7F069478 8F221130 */ lw $v0, 0x1130($t9) +/* 09DFAC 7F06947C 03E00008 */ jr $ra +/* 09DFB0 7F069480 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void add_ammo_to_weapon(void) { + +} +#else +GLOBAL_ASM( +.text +glabel add_ammo_to_weapon +/* 09DFB4 7F069484 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 09DFB8 7F069488 AFBF0014 */ sw $ra, 0x14($sp) +/* 09DFBC 7F06948C 0FC1722D */ jal get_ptr_item_statistics +/* 09DFC0 7F069490 AFA5001C */ sw $a1, 0x1c($sp) +/* 09DFC4 7F069494 8C44001C */ lw $a0, 0x1c($v0) +/* 09DFC8 7F069498 0FC1A44C */ jal give_cur_player_ammo +/* 09DFCC 7F06949C 8FA5001C */ lw $a1, 0x1c($sp) +/* 09DFD0 7F0694A0 8FBF0014 */ lw $ra, 0x14($sp) +/* 09DFD4 7F0694A4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 09DFD8 7F0694A8 03E00008 */ jr $ra +/* 09DFDC 7F0694AC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_max_ammo_for_weapon(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_max_ammo_for_weapon +/* 09DFE0 7F0694B0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 09DFE4 7F0694B4 AFBF0014 */ sw $ra, 0x14($sp) +/* 09DFE8 7F0694B8 0FC1722D */ jal get_ptr_item_statistics +/* 09DFEC 7F0694BC 00000000 */ nop +/* 09DFF0 7F0694C0 8C4E001C */ lw $t6, 0x1c($v0) +/* 09DFF4 7F0694C4 8FBF0014 */ lw $ra, 0x14($sp) +/* 09DFF8 7F0694C8 3C028003 */ lui $v0, %hi(ammo_related) +/* 09DFFC 7F0694CC 000E7880 */ sll $t7, $t6, 2 +/* 09E000 7F0694D0 01EE7823 */ subu $t7, $t7, $t6 +/* 09E004 7F0694D4 000F7880 */ sll $t7, $t7, 2 +/* 09E008 7F0694D8 004F1021 */ addu $v0, $v0, $t7 +/* 09E00C 7F0694DC 8C425EF0 */ lw $v0, %lo(ammo_related)($v0) +/* 09E010 7F0694E0 03E00008 */ jr $ra +/* 09E014 7F0694E4 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void *microcode_generation_ammo_related(void *arg0, void *arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, f32 arg6, s32 arg7, ?32 arg8, ?32 arg9, ?32 argA, ?32 argB) { + f32 spA8; + f32 spAC; + f32 spB0; + f32 spB4; + f32 temp_f4; + f32 temp_f4_2; + f32 temp_f18; + f32 temp_f10; + f32 temp_f6; + f32 temp_f18_2; + f32 temp_f16; + s32 phi_t9; + f32 phi_f4; + f32 phi_f18; + s32 phi_t2; + f32 phi_f18_2; + f32 phi_f16; + ? phi_a2; + + // Node 0 + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0xc0; + *arg0 = 0xba000602; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xba001301; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xb9000002; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xba001001; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xba000c02; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0xc00; + *arg0 = 0xba000903; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xba000e02; + phi_t9 = ((s32) arg1->unk4 >> 1); + if (arg1->unk4 < 0) + { + // Node 1 + phi_t9 = ((s32) (arg1->unk4 + 1) >> 1); + } + // Node 2 + temp_f4 = (((f32) (u32) arg1->unk4 * 0.5f) - (f32) phi_t9); + spB0 = temp_f4; + if (arg5 != 0) + { + // Node 3 + spB0 = (f32) -temp_f4; + } + // Node 4 + spB0 = (f32) (spB0 + arg2); + if (0.0f <= arg3) + { + // Node 5 + temp_f4_2 = (f32) arg1->unk5; + phi_f4 = temp_f4_2; + if (arg1->unk5 < 0) + { + // Node 6 + phi_f4 = (temp_f4_2 + 4294967296.0f); + } + // Node 7 + spB4 = (f32) (arg3 - (phi_f4 * 0.5f)); + } + else + { + // Node 8 + temp_f18 = (f32) arg1->unk5; + phi_f18 = temp_f18; + if (arg1->unk5 < 0) + { + // Node 9 + phi_f18 = (temp_f18 + 4294967296.0f); + } + // Node 10 + phi_t2 = ((s32) arg1->unk5 >> 1); + if (arg1->unk5 < 0) + { + // Node 11 + phi_t2 = ((s32) (arg1->unk5 + 1) >> 1); + } + // Node 12 + temp_f10 = ((phi_f18 * 0.5f) - (f32) phi_t2); + temp_f6 = (arg4 - temp_f10); + spB4 = (f32) -temp_f10; + spB4 = temp_f6; + spB4 = (f32) (temp_f6 + arg6); + } + // Node 13 + temp_f18_2 = (f32) arg1->unk4; + phi_f18_2 = temp_f18_2; + if (arg1->unk4 < 0) + { + // Node 14 + phi_f18_2 = (temp_f18_2 + 4294967296.0f); + } + // Node 15 + spA8 = (f32) (phi_f18_2 * 0.5f); + temp_f16 = (f32) arg1->unk5; + phi_f16 = temp_f16; + if (arg1->unk5 < 0) + { + // Node 16 + phi_f16 = (temp_f16 + 4294967296.0f); + } + // Node 17 + arg0 = (void *) (arg0 + 8); + spAC = (f32) (phi_f16 * 0.5f); + arg0->unk4 = 0; + *arg0 = 0xe7000000; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xba001402; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0x504240; + *arg0 = 0xb900031d; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0xfffdf6fb; + *arg0 = 0xfcffffff; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xfa000000; + arg0 = (void *) (arg0 + 8); + *arg0 = (s32) ((((((s32) (spAC + spB4) + 1) & 0x3ff) * 4) | 0xf6000000) | ((((s32) (spB0 + spA8) + 1) & 0x3ff) << 0xe)); + arg0->unk4 = (s32) (((((s32) (spB4 - spAC) + -1) & 0x3ff) * 4) | ((((s32) (spB0 - spA8) + -1) & 0x3ff) << 0xe)); + phi_a2 = 1; + if (arg7 != 0) + { + // Node 18 + phi_a2 = 2; + } + // Node 19 + likely_generate_DL_for_image_declaration(arg3, arg2, &arg0, arg1, phi_a2, 0, 0); + display_image_at_on_screen_coord(&arg0, &spB0, &spA8, arg1->unk4, (s32) arg1->unk5, 0, 0, 1, arg8, arg9, argA, argB, (s32) (0 < arg1->unk6), 0); + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xe7000000; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0x40; + *arg0 = 0xba000602; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0x80000; + *arg0 = 0xba001301; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xb9000002; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0x10000; + *arg0 = 0xba001001; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0x2000; + *arg0 = 0xba000c02; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0xc00; + *arg0 = 0xba000903; + arg0 = (void *) (arg0 + 8); + arg0->unk4 = 0; + *arg0 = 0xba000e02; + return arg0; +} + +#else +GLOBAL_ASM( +.text +glabel microcode_generation_ammo_related +/* 09E018 7F0694E8 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 09E01C 7F0694EC AFA400B8 */ sw $a0, 0xb8($sp) +/* 09E020 7F0694F0 248F0008 */ addiu $t7, $a0, 8 +/* 09E024 7F0694F4 AFBF0044 */ sw $ra, 0x44($sp) +/* 09E028 7F0694F8 AFB00040 */ sw $s0, 0x40($sp) +/* 09E02C 7F0694FC AFAF00B8 */ sw $t7, 0xb8($sp) +/* 09E030 7F069500 3C18BA00 */ lui $t8, (0xBA000602 >> 16) # lui $t8, 0xba00 +/* 09E034 7F069504 37180602 */ ori $t8, (0xBA000602 & 0xFFFF) # ori $t8, $t8, 0x602 +/* 09E038 7F069508 241900C0 */ li $t9, 192 +/* 09E03C 7F06950C AC990004 */ sw $t9, 4($a0) +/* 09E040 7F069510 AC980000 */ sw $t8, ($a0) +/* 09E044 7F069514 8FA800B8 */ lw $t0, 0xb8($sp) +/* 09E048 7F069518 3C0ABA00 */ lui $t2, (0xBA001301 >> 16) # lui $t2, 0xba00 +/* 09E04C 7F06951C 354A1301 */ ori $t2, (0xBA001301 & 0xFFFF) # ori $t2, $t2, 0x1301 +/* 09E050 7F069520 25090008 */ addiu $t1, $t0, 8 +/* 09E054 7F069524 AFA900B8 */ sw $t1, 0xb8($sp) +/* 09E058 7F069528 AD000004 */ sw $zero, 4($t0) +/* 09E05C 7F06952C AD0A0000 */ sw $t2, ($t0) +/* 09E060 7F069530 8FAB00B8 */ lw $t3, 0xb8($sp) +/* 09E064 7F069534 3C0DB900 */ lui $t5, (0xB9000002 >> 16) # lui $t5, 0xb900 +/* 09E068 7F069538 35AD0002 */ ori $t5, (0xB9000002 & 0xFFFF) # ori $t5, $t5, 2 +/* 09E06C 7F06953C 256C0008 */ addiu $t4, $t3, 8 +/* 09E070 7F069540 AFAC00B8 */ sw $t4, 0xb8($sp) +/* 09E074 7F069544 AD600004 */ sw $zero, 4($t3) +/* 09E078 7F069548 AD6D0000 */ sw $t5, ($t3) +/* 09E07C 7F06954C 8FAE00B8 */ lw $t6, 0xb8($sp) +/* 09E080 7F069550 3C18BA00 */ lui $t8, (0xBA001001 >> 16) # lui $t8, 0xba00 +/* 09E084 7F069554 37181001 */ ori $t8, (0xBA001001 & 0xFFFF) # ori $t8, $t8, 0x1001 +/* 09E088 7F069558 25CF0008 */ addiu $t7, $t6, 8 +/* 09E08C 7F06955C AFAF00B8 */ sw $t7, 0xb8($sp) +/* 09E090 7F069560 ADC00004 */ sw $zero, 4($t6) +/* 09E094 7F069564 ADD80000 */ sw $t8, ($t6) +/* 09E098 7F069568 8FB900B8 */ lw $t9, 0xb8($sp) +/* 09E09C 7F06956C 3C09BA00 */ lui $t1, (0xBA000C02 >> 16) # lui $t1, 0xba00 +/* 09E0A0 7F069570 35290C02 */ ori $t1, (0xBA000C02 & 0xFFFF) # ori $t1, $t1, 0xc02 +/* 09E0A4 7F069574 27280008 */ addiu $t0, $t9, 8 +/* 09E0A8 7F069578 AFA800B8 */ sw $t0, 0xb8($sp) +/* 09E0AC 7F06957C AF200004 */ sw $zero, 4($t9) +/* 09E0B0 7F069580 AF290000 */ sw $t1, ($t9) +/* 09E0B4 7F069584 8FAA00B8 */ lw $t2, 0xb8($sp) +/* 09E0B8 7F069588 3C0CBA00 */ lui $t4, (0xBA000903 >> 16) # lui $t4, 0xba00 +/* 09E0BC 7F06958C 358C0903 */ ori $t4, (0xBA000903 & 0xFFFF) # ori $t4, $t4, 0x903 +/* 09E0C0 7F069590 254B0008 */ addiu $t3, $t2, 8 +/* 09E0C4 7F069594 AFAB00B8 */ sw $t3, 0xb8($sp) +/* 09E0C8 7F069598 240D0C00 */ li $t5, 3072 +/* 09E0CC 7F06959C AD4D0004 */ sw $t5, 4($t2) +/* 09E0D0 7F0695A0 AD4C0000 */ sw $t4, ($t2) +/* 09E0D4 7F0695A4 8FAE00B8 */ lw $t6, 0xb8($sp) +/* 09E0D8 7F0695A8 3C18BA00 */ lui $t8, (0xBA000E02 >> 16) # lui $t8, 0xba00 +/* 09E0DC 7F0695AC 37180E02 */ ori $t8, (0xBA000E02 & 0xFFFF) # ori $t8, $t8, 0xe02 +/* 09E0E0 7F0695B0 25CF0008 */ addiu $t7, $t6, 8 +/* 09E0E4 7F0695B4 AFAF00B8 */ sw $t7, 0xb8($sp) +/* 09E0E8 7F0695B8 ADC00004 */ sw $zero, 4($t6) +/* 09E0EC 7F0695BC ADD80000 */ sw $t8, ($t6) +/* 09E0F0 7F0695C0 90A40004 */ lbu $a0, 4($a1) +/* 09E0F4 7F0695C4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09E0F8 7F0695C8 44867000 */ mtc1 $a2, $f14 +/* 09E0FC 7F0695CC 44842000 */ mtc1 $a0, $f4 +/* 09E100 7F0695D0 44876000 */ mtc1 $a3, $f12 +/* 09E104 7F0695D4 44810000 */ mtc1 $at, $f0 +/* 09E108 7F0695D8 00A08025 */ move $s0, $a1 +/* 09E10C 7F0695DC 04810005 */ bgez $a0, .L7F0695F4 +/* 09E110 7F0695E0 468021A0 */ cvt.s.w $f6, $f4 +/* 09E114 7F0695E4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09E118 7F0695E8 44814000 */ mtc1 $at, $f8 +/* 09E11C 7F0695EC 00000000 */ nop +/* 09E120 7F0695F0 46083180 */ add.s $f6, $f6, $f8 +.L7F0695F4: +/* 09E124 7F0695F4 46003282 */ mul.s $f10, $f6, $f0 +/* 09E128 7F0695F8 04810003 */ bgez $a0, .L7F069608 +/* 09E12C 7F0695FC 0004C843 */ sra $t9, $a0, 1 +/* 09E130 7F069600 24810001 */ addiu $at, $a0, 1 +/* 09E134 7F069604 0001C843 */ sra $t9, $at, 1 +.L7F069608: +/* 09E138 7F069608 44998000 */ mtc1 $t9, $f16 +/* 09E13C 7F06960C 8FA800CC */ lw $t0, 0xcc($sp) +/* 09E140 7F069610 3C0FE700 */ lui $t7, 0xe700 +/* 09E144 7F069614 468084A0 */ cvt.s.w $f18, $f16 +/* 09E148 7F069618 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 09E14C 7F06961C 02002825 */ move $a1, $s0 +/* 09E150 7F069620 00003825 */ move $a3, $zero +/* 09E154 7F069624 46125101 */ sub.s $f4, $f10, $f18 +/* 09E158 7F069628 44805000 */ mtc1 $zero, $f10 +/* 09E15C 7F06962C 11000003 */ beqz $t0, .L7F06963C +/* 09E160 7F069630 E7A400B0 */ swc1 $f4, 0xb0($sp) +/* 09E164 7F069634 46002207 */ neg.s $f8, $f4 +/* 09E168 7F069638 E7A800B0 */ swc1 $f8, 0xb0($sp) +.L7F06963C: +/* 09E16C 7F06963C C7A600B0 */ lwc1 $f6, 0xb0($sp) +/* 09E170 7F069640 460C503E */ c.le.s $f10, $f12 +/* 09E174 7F069644 3C08BA00 */ lui $t0, (0xBA001402 >> 16) # lui $t0, 0xba00 +/* 09E178 7F069648 460E3400 */ add.s $f16, $f6, $f14 +/* 09E17C 7F06964C 4500000D */ bc1f .L7F069684 +/* 09E180 7F069650 E7B000B0 */ swc1 $f16, 0xb0($sp) +/* 09E184 7F069654 92090005 */ lbu $t1, 5($s0) +/* 09E188 7F069658 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09E18C 7F06965C 44899000 */ mtc1 $t1, $f18 +/* 09E190 7F069660 05210004 */ bgez $t1, .L7F069674 +/* 09E194 7F069664 46809120 */ cvt.s.w $f4, $f18 +/* 09E198 7F069668 44814000 */ mtc1 $at, $f8 +/* 09E19C 7F06966C 00000000 */ nop +/* 09E1A0 7F069670 46082100 */ add.s $f4, $f4, $f8 +.L7F069674: +/* 09E1A4 7F069674 46002182 */ mul.s $f6, $f4, $f0 +/* 09E1A8 7F069678 46066401 */ sub.s $f16, $f12, $f6 +/* 09E1AC 7F06967C 10000019 */ b .L7F0696E4 +/* 09E1B0 7F069680 E7B000B4 */ swc1 $f16, 0xb4($sp) +.L7F069684: +/* 09E1B4 7F069684 92020005 */ lbu $v0, 5($s0) +/* 09E1B8 7F069688 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09E1BC 7F06968C 44825000 */ mtc1 $v0, $f10 +/* 09E1C0 7F069690 04410004 */ bgez $v0, .L7F0696A4 +/* 09E1C4 7F069694 468054A0 */ cvt.s.w $f18, $f10 +/* 09E1C8 7F069698 44814000 */ mtc1 $at, $f8 +/* 09E1CC 7F06969C 00000000 */ nop +/* 09E1D0 7F0696A0 46089480 */ add.s $f18, $f18, $f8 +.L7F0696A4: +/* 09E1D4 7F0696A4 46009102 */ mul.s $f4, $f18, $f0 +/* 09E1D8 7F0696A8 04410003 */ bgez $v0, .L7F0696B8 +/* 09E1DC 7F0696AC 00025043 */ sra $t2, $v0, 1 +/* 09E1E0 7F0696B0 24410001 */ addiu $at, $v0, 1 +/* 09E1E4 7F0696B4 00015043 */ sra $t2, $at, 1 +.L7F0696B8: +/* 09E1E8 7F0696B8 448A3000 */ mtc1 $t2, $f6 +/* 09E1EC 7F0696BC C7B200C8 */ lwc1 $f18, 0xc8($sp) +/* 09E1F0 7F0696C0 46803420 */ cvt.s.w $f16, $f6 +/* 09E1F4 7F0696C4 46102281 */ sub.s $f10, $f4, $f16 +/* 09E1F8 7F0696C8 C7A400D0 */ lwc1 $f4, 0xd0($sp) +/* 09E1FC 7F0696CC 460A9181 */ sub.s $f6, $f18, $f10 +/* 09E200 7F0696D0 46005207 */ neg.s $f8, $f10 +/* 09E204 7F0696D4 46043400 */ add.s $f16, $f6, $f4 +/* 09E208 7F0696D8 E7A800B4 */ swc1 $f8, 0xb4($sp) +/* 09E20C 7F0696DC E7A600B4 */ swc1 $f6, 0xb4($sp) +/* 09E210 7F0696E0 E7B000B4 */ swc1 $f16, 0xb4($sp) +.L7F0696E4: +/* 09E214 7F0696E4 920B0004 */ lbu $t3, 4($s0) +/* 09E218 7F0696E8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09E21C 7F0696EC 24060001 */ li $a2, 1 +/* 09E220 7F0696F0 448B4000 */ mtc1 $t3, $f8 +/* 09E224 7F0696F4 05610004 */ bgez $t3, .L7F069708 +/* 09E228 7F0696F8 468044A0 */ cvt.s.w $f18, $f8 +/* 09E22C 7F0696FC 44815000 */ mtc1 $at, $f10 +/* 09E230 7F069700 00000000 */ nop +/* 09E234 7F069704 460A9480 */ add.s $f18, $f18, $f10 +.L7F069708: +/* 09E238 7F069708 46009182 */ mul.s $f6, $f18, $f0 +/* 09E23C 7F06970C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 09E240 7F069710 E7A600A8 */ swc1 $f6, 0xa8($sp) +/* 09E244 7F069714 920C0005 */ lbu $t4, 5($s0) +/* 09E248 7F069718 448C2000 */ mtc1 $t4, $f4 +/* 09E24C 7F06971C 05810004 */ bgez $t4, .L7F069730 +/* 09E250 7F069720 46802420 */ cvt.s.w $f16, $f4 +/* 09E254 7F069724 44814000 */ mtc1 $at, $f8 +/* 09E258 7F069728 00000000 */ nop +/* 09E25C 7F06972C 46088400 */ add.s $f16, $f16, $f8 +.L7F069730: +/* 09E260 7F069730 46008282 */ mul.s $f10, $f16, $f0 +/* 09E264 7F069734 8FAD00B8 */ lw $t5, 0xb8($sp) +/* 09E268 7F069738 35081402 */ ori $t0, (0xBA001402 & 0xFFFF) # ori $t0, $t0, 0x1402 +/* 09E26C 7F06973C 3C0BB900 */ lui $t3, (0xB900031D >> 16) # lui $t3, 0xb900 +/* 09E270 7F069740 25AE0008 */ addiu $t6, $t5, 8 +/* 09E274 7F069744 AFAE00B8 */ sw $t6, 0xb8($sp) +/* 09E278 7F069748 3C0C0050 */ lui $t4, (0x00504240 >> 16) # lui $t4, 0x50 +/* 09E27C 7F06974C E7AA00AC */ swc1 $f10, 0xac($sp) +/* 09E280 7F069750 ADA00004 */ sw $zero, 4($t5) +/* 09E284 7F069754 ADAF0000 */ sw $t7, ($t5) +/* 09E288 7F069758 8FB800B8 */ lw $t8, 0xb8($sp) +/* 09E28C 7F06975C 358C4240 */ ori $t4, (0x00504240 & 0xFFFF) # ori $t4, $t4, 0x4240 +/* 09E290 7F069760 356B031D */ ori $t3, (0xB900031D & 0xFFFF) # ori $t3, $t3, 0x31d +/* 09E294 7F069764 27190008 */ addiu $t9, $t8, 8 +/* 09E298 7F069768 AFB900B8 */ sw $t9, 0xb8($sp) +/* 09E29C 7F06976C AF000004 */ sw $zero, 4($t8) +/* 09E2A0 7F069770 AF080000 */ sw $t0, ($t8) +/* 09E2A4 7F069774 8FA900B8 */ lw $t1, 0xb8($sp) +/* 09E2A8 7F069778 3C18FFFD */ lui $t8, (0xFFFDF6FB >> 16) # lui $t8, 0xfffd +/* 09E2AC 7F06977C 3C0FFCFF */ lui $t7, (0xFCFFFFFF >> 16) # lui $t7, 0xfcff +/* 09E2B0 7F069780 252A0008 */ addiu $t2, $t1, 8 +/* 09E2B4 7F069784 AFAA00B8 */ sw $t2, 0xb8($sp) +/* 09E2B8 7F069788 AD2C0004 */ sw $t4, 4($t1) +/* 09E2BC 7F06978C AD2B0000 */ sw $t3, ($t1) +/* 09E2C0 7F069790 8FAD00B8 */ lw $t5, 0xb8($sp) +/* 09E2C4 7F069794 35EFFFFF */ ori $t7, (0xFCFFFFFF & 0xFFFF) # ori $t7, $t7, 0xffff +/* 09E2C8 7F069798 3718F6FB */ ori $t8, (0xFFFDF6FB & 0xFFFF) # ori $t8, $t8, 0xf6fb +/* 09E2CC 7F06979C 25AE0008 */ addiu $t6, $t5, 8 +/* 09E2D0 7F0697A0 AFAE00B8 */ sw $t6, 0xb8($sp) +/* 09E2D4 7F0697A4 ADB80004 */ sw $t8, 4($t5) +/* 09E2D8 7F0697A8 ADAF0000 */ sw $t7, ($t5) +/* 09E2DC 7F0697AC 8FB900B8 */ lw $t9, 0xb8($sp) +/* 09E2E0 7F0697B0 3C09FA00 */ lui $t1, 0xfa00 +/* 09E2E4 7F0697B4 3C01F600 */ lui $at, 0xf600 +/* 09E2E8 7F0697B8 27280008 */ addiu $t0, $t9, 8 +/* 09E2EC 7F0697BC AFA800B8 */ sw $t0, 0xb8($sp) +/* 09E2F0 7F0697C0 AF200004 */ sw $zero, 4($t9) +/* 09E2F4 7F0697C4 AF290000 */ sw $t1, ($t9) +/* 09E2F8 7F0697C8 C7B200AC */ lwc1 $f18, 0xac($sp) +/* 09E2FC 7F0697CC C7A600B4 */ lwc1 $f6, 0xb4($sp) +/* 09E300 7F0697D0 C7AA00A8 */ lwc1 $f10, 0xa8($sp) +/* 09E304 7F0697D4 C7B000B0 */ lwc1 $f16, 0xb0($sp) +/* 09E308 7F0697D8 46069100 */ add.s $f4, $f18, $f6 +/* 09E30C 7F0697DC 8FA200B8 */ lw $v0, 0xb8($sp) +/* 09E310 7F0697E0 460A8480 */ add.s $f18, $f16, $f10 +/* 09E314 7F0697E4 244B0008 */ addiu $t3, $v0, 8 +/* 09E318 7F0697E8 AFAB00B8 */ sw $t3, 0xb8($sp) +/* 09E31C 7F0697EC 4600220D */ trunc.w.s $f8, $f4 +/* 09E320 7F0697F0 4600918D */ trunc.w.s $f6, $f18 +/* 09E324 7F0697F4 440D4000 */ mfc1 $t5, $f8 +/* 09E328 7F0697F8 44093000 */ mfc1 $t1, $f6 +/* 09E32C 7F0697FC 25AE0001 */ addiu $t6, $t5, 1 +/* 09E330 7F069800 31CF03FF */ andi $t7, $t6, 0x3ff +/* 09E334 7F069804 252A0001 */ addiu $t2, $t1, 1 +/* 09E338 7F069808 314B03FF */ andi $t3, $t2, 0x3ff +/* 09E33C 7F06980C 000FC080 */ sll $t8, $t7, 2 +/* 09E340 7F069810 0301C825 */ or $t9, $t8, $at +/* 09E344 7F069814 000B6380 */ sll $t4, $t3, 0xe +/* 09E348 7F069818 032C6825 */ or $t5, $t9, $t4 +/* 09E34C 7F06981C AC4D0000 */ sw $t5, ($v0) +/* 09E350 7F069820 C7A800AC */ lwc1 $f8, 0xac($sp) +/* 09E354 7F069824 C7A400B4 */ lwc1 $f4, 0xb4($sp) +/* 09E358 7F069828 C7A600A8 */ lwc1 $f6, 0xa8($sp) +/* 09E35C 7F06982C C7B200B0 */ lwc1 $f18, 0xb0($sp) +/* 09E360 7F069830 46082401 */ sub.s $f16, $f4, $f8 +/* 09E364 7F069834 46069101 */ sub.s $f4, $f18, $f6 +/* 09E368 7F069838 4600828D */ trunc.w.s $f10, $f16 +/* 09E36C 7F06983C 4600220D */ trunc.w.s $f8, $f4 +/* 09E370 7F069840 440F5000 */ mfc1 $t7, $f10 +/* 09E374 7F069844 440B4000 */ mfc1 $t3, $f8 +/* 09E378 7F069848 25F8FFFF */ addiu $t8, $t7, -1 +/* 09E37C 7F06984C 330803FF */ andi $t0, $t8, 0x3ff +/* 09E380 7F069850 2579FFFF */ addiu $t9, $t3, -1 +/* 09E384 7F069854 332C03FF */ andi $t4, $t9, 0x3ff +/* 09E388 7F069858 000C6B80 */ sll $t5, $t4, 0xe +/* 09E38C 7F06985C 00084880 */ sll $t1, $t0, 2 +/* 09E390 7F069860 012D7025 */ or $t6, $t1, $t5 +/* 09E394 7F069864 AC4E0004 */ sw $t6, 4($v0) +/* 09E398 7F069868 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 09E39C 7F06986C 11E00003 */ beqz $t7, .L7F06987C +/* 09E3A0 7F069870 00000000 */ nop +/* 09E3A4 7F069874 10000001 */ b .L7F06987C +/* 09E3A8 7F069878 24060002 */ li $a2, 2 +.L7F06987C: +/* 09E3AC 7F06987C 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 09E3B0 7F069880 AFA00010 */ sw $zero, 0x10($sp) +/* 09E3B4 7F069884 92180005 */ lbu $t8, 5($s0) +/* 09E3B8 7F069888 92070004 */ lbu $a3, 4($s0) +/* 09E3BC 7F06988C 8FAA00D8 */ lw $t2, 0xd8($sp) +/* 09E3C0 7F069890 8FAB00DC */ lw $t3, 0xdc($sp) +/* 09E3C4 7F069894 8FB900E0 */ lw $t9, 0xe0($sp) +/* 09E3C8 7F069898 8FAC00E4 */ lw $t4, 0xe4($sp) +/* 09E3CC 7F06989C 24080001 */ li $t0, 1 +/* 09E3D0 7F0698A0 AFA8001C */ sw $t0, 0x1c($sp) +/* 09E3D4 7F0698A4 AFA00018 */ sw $zero, 0x18($sp) +/* 09E3D8 7F0698A8 AFA00014 */ sw $zero, 0x14($sp) +/* 09E3DC 7F0698AC AFB80010 */ sw $t8, 0x10($sp) +/* 09E3E0 7F0698B0 AFAA0020 */ sw $t2, 0x20($sp) +/* 09E3E4 7F0698B4 AFAB0024 */ sw $t3, 0x24($sp) +/* 09E3E8 7F0698B8 AFB90028 */ sw $t9, 0x28($sp) +/* 09E3EC 7F0698BC AFAC002C */ sw $t4, 0x2c($sp) +/* 09E3F0 7F0698C0 92090006 */ lbu $t1, 6($s0) +/* 09E3F4 7F0698C4 AFA00034 */ sw $zero, 0x34($sp) +/* 09E3F8 7F0698C8 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 09E3FC 7F0698CC 0009682A */ slt $t5, $zero, $t1 +/* 09E400 7F0698D0 AFAD0030 */ sw $t5, 0x30($sp) +/* 09E404 7F0698D4 27A500B0 */ addiu $a1, $sp, 0xb0 +/* 09E408 7F0698D8 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 09E40C 7F0698DC 27A600A8 */ addiu $a2, $sp, 0xa8 +/* 09E410 7F0698E0 8FAE00B8 */ lw $t6, 0xb8($sp) +/* 09E414 7F0698E4 3C18E700 */ lui $t8, 0xe700 +/* 09E418 7F0698E8 3C0BBA00 */ lui $t3, (0xBA000602 >> 16) # lui $t3, 0xba00 +/* 09E41C 7F0698EC 25CF0008 */ addiu $t7, $t6, 8 +/* 09E420 7F0698F0 AFAF00B8 */ sw $t7, 0xb8($sp) +/* 09E424 7F0698F4 ADC00004 */ sw $zero, 4($t6) +/* 09E428 7F0698F8 ADD80000 */ sw $t8, ($t6) +/* 09E42C 7F0698FC 8FA800B8 */ lw $t0, 0xb8($sp) +/* 09E430 7F069900 356B0602 */ ori $t3, (0xBA000602 & 0xFFFF) # ori $t3, $t3, 0x602 +/* 09E434 7F069904 24190040 */ li $t9, 64 +/* 09E438 7F069908 250A0008 */ addiu $t2, $t0, 8 +/* 09E43C 7F06990C AFAA00B8 */ sw $t2, 0xb8($sp) +/* 09E440 7F069910 AD190004 */ sw $t9, 4($t0) +/* 09E444 7F069914 AD0B0000 */ sw $t3, ($t0) +/* 09E448 7F069918 8FAC00B8 */ lw $t4, 0xb8($sp) +/* 09E44C 7F06991C 3C0DBA00 */ lui $t5, (0xBA001301 >> 16) # lui $t5, 0xba00 +/* 09E450 7F069920 35AD1301 */ ori $t5, (0xBA001301 & 0xFFFF) # ori $t5, $t5, 0x1301 +/* 09E454 7F069924 25890008 */ addiu $t1, $t4, 8 +/* 09E458 7F069928 AFA900B8 */ sw $t1, 0xb8($sp) +/* 09E45C 7F06992C 3C0E0008 */ lui $t6, 8 +/* 09E460 7F069930 AD8E0004 */ sw $t6, 4($t4) +/* 09E464 7F069934 AD8D0000 */ sw $t5, ($t4) +/* 09E468 7F069938 8FAF00B8 */ lw $t7, 0xb8($sp) +/* 09E46C 7F06993C 3C08B900 */ lui $t0, (0xB9000002 >> 16) # lui $t0, 0xb900 +/* 09E470 7F069940 35080002 */ ori $t0, (0xB9000002 & 0xFFFF) # ori $t0, $t0, 2 +/* 09E474 7F069944 25F80008 */ addiu $t8, $t7, 8 +/* 09E478 7F069948 AFB800B8 */ sw $t8, 0xb8($sp) +/* 09E47C 7F06994C ADE00004 */ sw $zero, 4($t7) +/* 09E480 7F069950 ADE80000 */ sw $t0, ($t7) +/* 09E484 7F069954 8FAA00B8 */ lw $t2, 0xb8($sp) +/* 09E488 7F069958 3C19BA00 */ lui $t9, (0xBA001001 >> 16) # lui $t9, 0xba00 +/* 09E48C 7F06995C 37391001 */ ori $t9, (0xBA001001 & 0xFFFF) # ori $t9, $t9, 0x1001 +/* 09E490 7F069960 254B0008 */ addiu $t3, $t2, 8 +/* 09E494 7F069964 AFAB00B8 */ sw $t3, 0xb8($sp) +/* 09E498 7F069968 3C0C0001 */ lui $t4, 1 +/* 09E49C 7F06996C AD4C0004 */ sw $t4, 4($t2) +/* 09E4A0 7F069970 AD590000 */ sw $t9, ($t2) +/* 09E4A4 7F069974 8FA900B8 */ lw $t1, 0xb8($sp) +/* 09E4A8 7F069978 3C0EBA00 */ lui $t6, (0xBA000C02 >> 16) # lui $t6, 0xba00 +/* 09E4AC 7F06997C 35CE0C02 */ ori $t6, (0xBA000C02 & 0xFFFF) # ori $t6, $t6, 0xc02 +/* 09E4B0 7F069980 252D0008 */ addiu $t5, $t1, 8 +/* 09E4B4 7F069984 AFAD00B8 */ sw $t5, 0xb8($sp) +/* 09E4B8 7F069988 240F2000 */ li $t7, 8192 +/* 09E4BC 7F06998C AD2F0004 */ sw $t7, 4($t1) +/* 09E4C0 7F069990 AD2E0000 */ sw $t6, ($t1) +/* 09E4C4 7F069994 8FB800B8 */ lw $t8, 0xb8($sp) +/* 09E4C8 7F069998 3C0ABA00 */ lui $t2, (0xBA000903 >> 16) # lui $t2, 0xba00 +/* 09E4CC 7F06999C 354A0903 */ ori $t2, (0xBA000903 & 0xFFFF) # ori $t2, $t2, 0x903 +/* 09E4D0 7F0699A0 27080008 */ addiu $t0, $t8, 8 +/* 09E4D4 7F0699A4 AFA800B8 */ sw $t0, 0xb8($sp) +/* 09E4D8 7F0699A8 240B0C00 */ li $t3, 3072 +/* 09E4DC 7F0699AC AF0B0004 */ sw $t3, 4($t8) +/* 09E4E0 7F0699B0 AF0A0000 */ sw $t2, ($t8) +/* 09E4E4 7F0699B4 8FB900B8 */ lw $t9, 0xb8($sp) +/* 09E4E8 7F0699B8 3C09BA00 */ lui $t1, (0xBA000E02 >> 16) # lui $t1, 0xba00 +/* 09E4EC 7F0699BC 35290E02 */ ori $t1, (0xBA000E02 & 0xFFFF) # ori $t1, $t1, 0xe02 +/* 09E4F0 7F0699C0 272C0008 */ addiu $t4, $t9, 8 +/* 09E4F4 7F0699C4 AFAC00B8 */ sw $t4, 0xb8($sp) +/* 09E4F8 7F0699C8 AF200004 */ sw $zero, 4($t9) +/* 09E4FC 7F0699CC AF290000 */ sw $t1, ($t9) +/* 09E500 7F0699D0 8FBF0044 */ lw $ra, 0x44($sp) +/* 09E504 7F0699D4 8FB00040 */ lw $s0, 0x40($sp) +/* 09E508 7F0699D8 8FA200B8 */ lw $v0, 0xb8($sp) +/* 09E50C 7F0699DC 03E00008 */ jr $ra +/* 09E510 7F0699E0 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void set_rgba_redirect_generate_microcode(? arg2, ? arg3, f32 arg4, ?32 arg5, f32 arg6, ?32 arg7) { + // Node 0 + return microcode_generation_ammo_related(arg2, arg3, arg2, arg3, arg4, arg5, arg6, arg7, 0xff, 0xff, 0xff, 0xff); +} +#else +GLOBAL_ASM( +.text +glabel set_rgba_redirect_generate_microcode +/* 09E514 7F0699E4 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 09E518 7F0699E8 44866000 */ mtc1 $a2, $f12 +/* 09E51C 7F0699EC 44877000 */ mtc1 $a3, $f14 +/* 09E520 7F0699F0 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 09E524 7F0699F4 8FAE004C */ lw $t6, 0x4c($sp) +/* 09E528 7F0699F8 C7A60050 */ lwc1 $f6, 0x50($sp) +/* 09E52C 7F0699FC 8FAF0054 */ lw $t7, 0x54($sp) +/* 09E530 7F069A00 AFBF0034 */ sw $ra, 0x34($sp) +/* 09E534 7F069A04 241800FF */ li $t8, 255 +/* 09E538 7F069A08 241900FF */ li $t9, 255 +/* 09E53C 7F069A0C 240800FF */ li $t0, 255 +/* 09E540 7F069A10 240900FF */ li $t1, 255 +/* 09E544 7F069A14 44066000 */ mfc1 $a2, $f12 +/* 09E548 7F069A18 44077000 */ mfc1 $a3, $f14 +/* 09E54C 7F069A1C AFA9002C */ sw $t1, 0x2c($sp) +/* 09E550 7F069A20 AFA80028 */ sw $t0, 0x28($sp) +/* 09E554 7F069A24 AFB90024 */ sw $t9, 0x24($sp) +/* 09E558 7F069A28 AFB80020 */ sw $t8, 0x20($sp) +/* 09E55C 7F069A2C E7A40010 */ swc1 $f4, 0x10($sp) +/* 09E560 7F069A30 AFAE0014 */ sw $t6, 0x14($sp) +/* 09E564 7F069A34 E7A60018 */ swc1 $f6, 0x18($sp) +/* 09E568 7F069A38 0FC1A53A */ jal microcode_generation_ammo_related +/* 09E56C 7F069A3C AFAF001C */ sw $t7, 0x1c($sp) +/* 09E570 7F069A40 8FBF0034 */ lw $ra, 0x34($sp) +/* 09E574 7F069A44 27BD0038 */ addiu $sp, $sp, 0x38 +/* 09E578 7F069A48 03E00008 */ jr $ra +/* 09E57C 7F069A4C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 some_kind_of_display_routine(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { + s16 sp44; + s32 sp48; + s32 sp4C; + s32 sp50; + s32 sp54; + s32 sp58; + s32 sp5C; + s32 temp_v1; + s32 temp_t0; + s32 temp_s0; + s32 phi_t8; + s32 phi_t4; + s32 phi_s0; + + // Node 0 + sp5C = 0; + sp58 = 0; + sp54 = 0; + sp50 = 0; + sp48 = 0; + sp4C = 0; + sub_GAME_7F0AE98C(&sp4C, &sp48, arg1, ptrSecondFontTableSmall, (?32) ptrFirstFontTableSmall, 0); + if (arg3 == 1) + { + // Node 1 + sp5C = arg2; + sp54 = (s32) (arg2 + sp48); + } + else + { + // Node 2 + if (arg3 == 0) + { + // Node 3 + sp54 = arg2; + sp5C = (s32) (arg2 - sp48); + } + else + { + // Node 4 + if (arg3 == 2) + { + // Node 5 + phi_t8 = (sp48 >> 1); + if (sp48 < 0) + { + // Node 6 + phi_t8 = ((s32) (sp48 + 1) >> 1); + } + // Node 7 + temp_v1 = (phi_t8 + arg2); + sp5C = (s32) (temp_v1 - sp48); + sp54 = temp_v1; + } + } + } + // Node 8 + if (arg5 == 1) + { + // Node 9 + sp58 = arg4; + sp50 = (s32) (arg4 + sp4C); + } + else + { + // Node 10 + if (arg5 == 0) + { + // Node 11 + sp50 = arg4; + sp58 = (s32) (arg4 - sp4C); + } + else + { + // Node 12 + if (arg5 == 2) + { + // Node 13 + phi_t4 = (sp4C >> 1); + if (sp4C < 0) + { + // Node 14 + phi_t4 = ((s32) (sp4C + 1) >> 1); + } + // Node 15 + temp_t0 = (phi_t4 + arg4); + sp58 = (s32) (temp_t0 - sp4C); + sp50 = temp_t0; + } + } + } + // Node 16 + temp_s0 = draw_blackbox_to_screen(arg0, &sp5C, &sp58, &sp54, &sp50); + if (arg6 != 0) + { + // Node 17 + sp44 = get_video2_settings_txtClipW(); + phi_s0 = jp_text_write_stuff(temp_s0, &sp5C, &sp58, arg1, (?32) ptrSecondFontTableSmall, (?32) ptrFirstFontTableSmall, -1, 0x646464ff, sp44, get_video2_settings_txtClipH(), 0, 0); + } + else + { + // Node 18 + sp44 = get_video2_settings_txtClipW(); + phi_s0 = en_text_write_stuff(temp_s0, &sp5C, &sp58, arg1, (?32) ptrSecondFontTableSmall, (?32) ptrFirstFontTableSmall, 0xff00b0, sp44, get_video2_settings_txtClipH(), 0, 0); + } + // Node 19 + return phi_s0; +} +#else +GLOBAL_ASM( +.text +glabel some_kind_of_display_routine +/* 09E580 7F069A50 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 09E584 7F069A54 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 09E588 7F069A58 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 09E58C 7F069A5C AFB00038 */ sw $s0, 0x38($sp) +/* 09E590 7F069A60 AFA7006C */ sw $a3, 0x6c($sp) +/* 09E594 7F069A64 00808025 */ move $s0, $a0 +/* 09E598 7F069A68 AFBF003C */ sw $ra, 0x3c($sp) +/* 09E59C 7F069A6C AFA50064 */ sw $a1, 0x64($sp) +/* 09E5A0 7F069A70 AFA60068 */ sw $a2, 0x68($sp) +/* 09E5A4 7F069A74 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 09E5A8 7F069A78 AFA0005C */ sw $zero, 0x5c($sp) +/* 09E5AC 7F069A7C AFA00058 */ sw $zero, 0x58($sp) +/* 09E5B0 7F069A80 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 09E5B4 7F069A84 8FA60064 */ lw $a2, 0x64($sp) +/* 09E5B8 7F069A88 27A50048 */ addiu $a1, $sp, 0x48 +/* 09E5BC 7F069A8C 27A4004C */ addiu $a0, $sp, 0x4c +/* 09E5C0 7F069A90 AFA00014 */ sw $zero, 0x14($sp) +/* 09E5C4 7F069A94 AFA00054 */ sw $zero, 0x54($sp) +/* 09E5C8 7F069A98 AFA00050 */ sw $zero, 0x50($sp) +/* 09E5CC 7F069A9C AFA00048 */ sw $zero, 0x48($sp) +/* 09E5D0 7F069AA0 AFA0004C */ sw $zero, 0x4c($sp) +/* 09E5D4 7F069AA4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 09E5D8 7F069AA8 AFAE0010 */ sw $t6, 0x10($sp) +/* 09E5DC 7F069AAC 8FA3006C */ lw $v1, 0x6c($sp) +/* 09E5E0 7F069AB0 24040001 */ li $a0, 1 +/* 09E5E4 7F069AB4 8FA20068 */ lw $v0, 0x68($sp) +/* 09E5E8 7F069AB8 14640006 */ bne $v1, $a0, .L7F069AD4 +/* 09E5EC 7F069ABC 27A5005C */ addiu $a1, $sp, 0x5c +/* 09E5F0 7F069AC0 8FA90048 */ lw $t1, 0x48($sp) +/* 09E5F4 7F069AC4 AFA2005C */ sw $v0, 0x5c($sp) +/* 09E5F8 7F069AC8 00491821 */ addu $v1, $v0, $t1 +/* 09E5FC 7F069ACC 10000012 */ b .L7F069B18 +/* 09E600 7F069AD0 AFA30054 */ sw $v1, 0x54($sp) +.L7F069AD4: +/* 09E604 7F069AD4 14600006 */ bnez $v1, .L7F069AF0 +/* 09E608 7F069AD8 24010002 */ li $at, 2 +/* 09E60C 7F069ADC 8FA90048 */ lw $t1, 0x48($sp) +/* 09E610 7F069AE0 AFA20054 */ sw $v0, 0x54($sp) +/* 09E614 7F069AE4 00497823 */ subu $t7, $v0, $t1 +/* 09E618 7F069AE8 1000000B */ b .L7F069B18 +/* 09E61C 7F069AEC AFAF005C */ sw $t7, 0x5c($sp) +.L7F069AF0: +/* 09E620 7F069AF0 14610009 */ bne $v1, $at, .L7F069B18 +/* 09E624 7F069AF4 8FA90048 */ lw $t1, 0x48($sp) +/* 09E628 7F069AF8 05210003 */ bgez $t1, .L7F069B08 +/* 09E62C 7F069AFC 0009C043 */ sra $t8, $t1, 1 +/* 09E630 7F069B00 25210001 */ addiu $at, $t1, 1 +/* 09E634 7F069B04 0001C043 */ sra $t8, $at, 1 +.L7F069B08: +/* 09E638 7F069B08 03021821 */ addu $v1, $t8, $v0 +/* 09E63C 7F069B0C 0069C823 */ subu $t9, $v1, $t1 +/* 09E640 7F069B10 AFB9005C */ sw $t9, 0x5c($sp) +/* 09E644 7F069B14 AFA30054 */ sw $v1, 0x54($sp) +.L7F069B18: +/* 09E648 7F069B18 8FA20074 */ lw $v0, 0x74($sp) +/* 09E64C 7F069B1C 27A60058 */ addiu $a2, $sp, 0x58 +/* 09E650 7F069B20 27A70054 */ addiu $a3, $sp, 0x54 +/* 09E654 7F069B24 14440007 */ bne $v0, $a0, .L7F069B44 +/* 09E658 7F069B28 27AE0050 */ addiu $t6, $sp, 0x50 +/* 09E65C 7F069B2C 8FA20070 */ lw $v0, 0x70($sp) +/* 09E660 7F069B30 8FAA004C */ lw $t2, 0x4c($sp) +/* 09E664 7F069B34 AFA20058 */ sw $v0, 0x58($sp) +/* 09E668 7F069B38 004A4021 */ addu $t0, $v0, $t2 +/* 09E66C 7F069B3C 10000014 */ b .L7F069B90 +/* 09E670 7F069B40 AFA80050 */ sw $t0, 0x50($sp) +.L7F069B44: +/* 09E674 7F069B44 14400007 */ bnez $v0, .L7F069B64 +/* 09E678 7F069B48 24010002 */ li $at, 2 +/* 09E67C 7F069B4C 8FA20070 */ lw $v0, 0x70($sp) +/* 09E680 7F069B50 8FAA004C */ lw $t2, 0x4c($sp) +/* 09E684 7F069B54 AFA20050 */ sw $v0, 0x50($sp) +/* 09E688 7F069B58 004A5823 */ subu $t3, $v0, $t2 +/* 09E68C 7F069B5C 1000000C */ b .L7F069B90 +/* 09E690 7F069B60 AFAB0058 */ sw $t3, 0x58($sp) +.L7F069B64: +/* 09E694 7F069B64 1441000A */ bne $v0, $at, .L7F069B90 +/* 09E698 7F069B68 8FAA004C */ lw $t2, 0x4c($sp) +/* 09E69C 7F069B6C 8FA20070 */ lw $v0, 0x70($sp) +/* 09E6A0 7F069B70 05410003 */ bgez $t2, .L7F069B80 +/* 09E6A4 7F069B74 000A6043 */ sra $t4, $t2, 1 +/* 09E6A8 7F069B78 25410001 */ addiu $at, $t2, 1 +/* 09E6AC 7F069B7C 00016043 */ sra $t4, $at, 1 +.L7F069B80: +/* 09E6B0 7F069B80 01824021 */ addu $t0, $t4, $v0 +/* 09E6B4 7F069B84 010A6823 */ subu $t5, $t0, $t2 +/* 09E6B8 7F069B88 AFAD0058 */ sw $t5, 0x58($sp) +/* 09E6BC 7F069B8C AFA80050 */ sw $t0, 0x50($sp) +.L7F069B90: +/* 09E6C0 7F069B90 02002025 */ move $a0, $s0 +/* 09E6C4 7F069B94 0FC2B3D3 */ jal draw_blackbox_to_screen +/* 09E6C8 7F069B98 AFAE0010 */ sw $t6, 0x10($sp) +/* 09E6CC 7F069B9C 8FAF0078 */ lw $t7, 0x78($sp) +/* 09E6D0 7F069BA0 00408025 */ move $s0, $v0 +/* 09E6D4 7F069BA4 11E0001C */ beqz $t7, .L7F069C18 +/* 09E6D8 7F069BA8 00000000 */ nop +/* 09E6DC 7F069BAC 0C001107 */ jal get_video2_settings_txtClipW +/* 09E6E0 7F069BB0 00000000 */ nop +/* 09E6E4 7F069BB4 0C00110B */ jal get_video2_settings_txtClipH +/* 09E6E8 7F069BB8 A7A20044 */ sh $v0, 0x44($sp) +/* 09E6EC 7F069BBC 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) +/* 09E6F0 7F069BC0 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 09E6F4 7F069BC4 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 09E6F8 7F069BC8 8F180EB0 */ lw $t8, %lo(ptrSecondFontTableSmall)($t8) +/* 09E6FC 7F069BCC 87AD0044 */ lh $t5, 0x44($sp) +/* 09E700 7F069BD0 3C0C6464 */ lui $t4, (0x646464FF >> 16) # lui $t4, 0x6464 +/* 09E704 7F069BD4 358C64FF */ ori $t4, (0x646464FF & 0xFFFF) # ori $t4, $t4, 0x64ff +/* 09E708 7F069BD8 240BFFFF */ li $t3, -1 +/* 09E70C 7F069BDC AFAB0018 */ sw $t3, 0x18($sp) +/* 09E710 7F069BE0 AFAC001C */ sw $t4, 0x1c($sp) +/* 09E714 7F069BE4 02002025 */ move $a0, $s0 +/* 09E718 7F069BE8 27A5005C */ addiu $a1, $sp, 0x5c +/* 09E71C 7F069BEC 27A60058 */ addiu $a2, $sp, 0x58 +/* 09E720 7F069BF0 8FA70064 */ lw $a3, 0x64($sp) +/* 09E724 7F069BF4 AFA20024 */ sw $v0, 0x24($sp) +/* 09E728 7F069BF8 AFA00028 */ sw $zero, 0x28($sp) +/* 09E72C 7F069BFC AFA0002C */ sw $zero, 0x2c($sp) +/* 09E730 7F069C00 AFB90014 */ sw $t9, 0x14($sp) +/* 09E734 7F069C04 AFB80010 */ sw $t8, 0x10($sp) +/* 09E738 7F069C08 0FC2B9BB */ jal jp_text_write_stuff +/* 09E73C 7F069C0C AFAD0020 */ sw $t5, 0x20($sp) +/* 09E740 7F069C10 10000019 */ b .L7F069C78 +/* 09E744 7F069C14 00408025 */ move $s0, $v0 +.L7F069C18: +/* 09E748 7F069C18 0C001107 */ jal get_video2_settings_txtClipW +/* 09E74C 7F069C1C 00000000 */ nop +/* 09E750 7F069C20 0C00110B */ jal get_video2_settings_txtClipH +/* 09E754 7F069C24 A7A20044 */ sh $v0, 0x44($sp) +/* 09E758 7F069C28 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) +/* 09E75C 7F069C2C 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) +/* 09E760 7F069C30 8DEF0EAC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 09E764 7F069C34 8DCE0EB0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 09E768 7F069C38 87B90044 */ lh $t9, 0x44($sp) +/* 09E76C 7F069C3C 3C1800FF */ lui $t8, (0x00FF00B0 >> 16) # lui $t8, 0xff +/* 09E770 7F069C40 371800B0 */ ori $t8, (0x00FF00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 09E774 7F069C44 AFB80018 */ sw $t8, 0x18($sp) +/* 09E778 7F069C48 02002025 */ move $a0, $s0 +/* 09E77C 7F069C4C 27A5005C */ addiu $a1, $sp, 0x5c +/* 09E780 7F069C50 27A60058 */ addiu $a2, $sp, 0x58 +/* 09E784 7F069C54 8FA70064 */ lw $a3, 0x64($sp) +/* 09E788 7F069C58 AFA20020 */ sw $v0, 0x20($sp) +/* 09E78C 7F069C5C AFA00024 */ sw $zero, 0x24($sp) +/* 09E790 7F069C60 AFA00028 */ sw $zero, 0x28($sp) +/* 09E794 7F069C64 AFAF0014 */ sw $t7, 0x14($sp) +/* 09E798 7F069C68 AFAE0010 */ sw $t6, 0x10($sp) +/* 09E79C 7F069C6C 0FC2B6AF */ jal en_text_write_stuff +/* 09E7A0 7F069C70 AFB9001C */ sw $t9, 0x1c($sp) +/* 09E7A4 7F069C74 00408025 */ move $s0, $v0 +.L7F069C78: +/* 09E7A8 7F069C78 8FBF003C */ lw $ra, 0x3c($sp) +/* 09E7AC 7F069C7C 02001025 */ move $v0, $s0 +/* 09E7B0 7F069C80 8FB00038 */ lw $s0, 0x38($sp) +/* 09E7B4 7F069C84 03E00008 */ jr $ra +/* 09E7B8 7F069C88 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + +#ifdef NONMATCHING +void display_ammo_total_in_a1(s32 arg0, s32 arg1, ? arg2, ? arg3, ?32 arg4, ?32 arg5, ?32 arg6) { + ? sp2C; + + // Node 0 + sprintf(&sp2C, &aD_9, arg1); + return some_kind_of_display_routine(arg0, &sp2C, arg2, arg3, arg4, arg5, arg6); +} + +#else +GLOBAL_ASM( +.text +glabel display_ammo_total_in_a1 +/* 09E7BC 7F069C8C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 09E7C0 7F069C90 AFA60040 */ sw $a2, 0x40($sp) +/* 09E7C4 7F069C94 00A03025 */ move $a2, $a1 +/* 09E7C8 7F069C98 AFA5003C */ sw $a1, 0x3c($sp) +/* 09E7CC 7F069C9C AFBF0024 */ sw $ra, 0x24($sp) +/* 09E7D0 7F069CA0 AFA40038 */ sw $a0, 0x38($sp) +/* 09E7D4 7F069CA4 3C058005 */ lui $a1, %hi(aD_9) +/* 09E7D8 7F069CA8 AFA70044 */ sw $a3, 0x44($sp) +/* 09E7DC 7F069CAC 24A53BF4 */ addiu $a1, %lo(aD_9) # addiu $a1, $a1, 0x3bf4 +/* 09E7E0 7F069CB0 0C002B25 */ jal sprintf +/* 09E7E4 7F069CB4 27A4002C */ addiu $a0, $sp, 0x2c +/* 09E7E8 7F069CB8 8FAE0048 */ lw $t6, 0x48($sp) +/* 09E7EC 7F069CBC 8FAF004C */ lw $t7, 0x4c($sp) +/* 09E7F0 7F069CC0 8FB80050 */ lw $t8, 0x50($sp) +/* 09E7F4 7F069CC4 8FA40038 */ lw $a0, 0x38($sp) +/* 09E7F8 7F069CC8 27A5002C */ addiu $a1, $sp, 0x2c +/* 09E7FC 7F069CCC 8FA60040 */ lw $a2, 0x40($sp) +/* 09E800 7F069CD0 8FA70044 */ lw $a3, 0x44($sp) +/* 09E804 7F069CD4 AFAE0010 */ sw $t6, 0x10($sp) +/* 09E808 7F069CD8 AFAF0014 */ sw $t7, 0x14($sp) +/* 09E80C 7F069CDC 0FC1A694 */ jal some_kind_of_display_routine +/* 09E810 7F069CE0 AFB80018 */ sw $t8, 0x18($sp) +/* 09E814 7F069CE4 8FBF0024 */ lw $ra, 0x24($sp) +/* 09E818 7F069CE8 27BD0038 */ addiu $sp, $sp, 0x38 +/* 09E81C 7F069CEC 03E00008 */ jr $ra +/* 09E820 7F069CF0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 generate_ammo_total_microcode(s32 arg0) { + void *sp28; + s16 sp2C; + s16 sp2E; + f32 sp30; + f32 sp34; + s16 sp38; + s32 sp3C; + void *sp40; + s32 sp44; + void *sp48; + s32 sp4C; + s32 sp50; + s32 sp54; + s32 sp58; + s32 sp5C; + s32 sp60; + s32 sp64; + ? temp_ret; + void *temp_v1; + s32 temp_v1_3; + s32 temp_t3; + ? temp_ret_2; + void *temp_v1_2; + s32 temp_v1_4; + s32 temp_t1; + s32 phi_v1; + s32 phi_t9; + s32 phi_t0; + s32 phi_v1_2; + s32 phi_t3; + s32 phi_t0_2; + + // Node 0 + if (pPlayer->unk1064 == 0) + { + // Node 1 + if (pPlayer->unk29C4 == 0) + { + // Node 2 + sp64 = get_item_in_hand(1); + sp60 = get_item_in_hand(0); + if (get_num_players() < 3) + { + // Node 3 + sp58 = 0x3b; + sp54 = 0x3b; + } + else + { + // Node 4 + if ((get_cur_playernum() & 1) != 0) + { + // Node 5 + sp58 = 0x2b; + sp54 = 0x7f; + } + else + { + // Node 6 + sp58 = 0x3b; + sp54 = 0x6d; + } + } + // Node 7 + if (sp60 != 0) + { + // Node 8 + temp_ret = get_ammo_type_for_weapon(sp60); + sp5C = temp_ret; + if (temp_ret != 0) + { + // Node 9 + if (pPlayer->unk894 != 7) + { + // Node 10 + if (pPlayer->unk894 != 7) + { + // Node 11 + if (bondwalkItemCheckBitflags(sp60, 0x80000) == 0) + { + // Node 12 + temp_v1 = ((sp5C * 0xc) + &ammo_related); + sp44 = 5; + if (temp_v1->unk4 != 0) + { + // Node 13 + sp28 = temp_v1; + sp48 = (void *) (temp_v1->unk4 + globalbank_rdram_offset); + sp30 = getPlayer_c_screenleft(); + sp34 = getPlayer_c_screenwidth(); + sp38 = get_video2_settings_uly(); + arg0 = set_rgba_redirect_generate_microcode(arg0, sp48, ((sp34 + sp30) - (f32) sp54), 0xbf800000, (f32) ((get_video2_settings_height() + sp38) + -0x14), 0, (f32) sp28->unk8, 1); + sp44 = (s32) sp48->unk4; + } + // Node 14 + arg0 = microcode_constructor(arg0); + if (bondwalkItemCheckBitflags(sp60, 0x400000) != 0) + { + // Node 15 + sp4C = 0; + temp_v1_3 = (pPlayer->unk89C + (pPlayer + (sp5C * 4))->unk1130); + phi_v1 = temp_v1_3; + if (sp64 == sp60) + { + // Node 16 + phi_v1 = (temp_v1_3 + pPlayer->unkC44); + } + // Node 17 + sp50 = (s32) phi_v1; + } + else + { + // Node 18 + sp4C = (s32) pPlayer->unk89C; + sp50 = (s32) (pPlayer + (sp5C * 4))->unk1130; + } + // Node 19 + if (bondwalkItemCheckBitflags(sp60, 0x400000) == 0) + { + // Node 20 + sp2C = get_video2_settings_ulx(); + sp2E = get_video2_settings_width(); + sp38 = get_video2_settings_uly(); + get_video2_settings_height(); + phi_t9 = (sp44 >> 1); + if (sp44 < 0) + { + // Node 21 + phi_t9 = ((s32) (sp44 + 1) >> 1); + } + // Node 22 + arg0 = display_ammo_total_in_a1(arg0, sp4C, ((((sp2E + sp2C) - sp54) - phi_t9) + -4), 0); + } + // Node 23 + if ((sp50 > 0) || (bondwalkItemCheckBitflags(sp60, 0x400000) != 0)) + { + // Node 25 + sp2C = get_video2_settings_ulx(); + sp2E = get_video2_settings_width(); + sp38 = get_video2_settings_uly(); + get_video2_settings_height(); + temp_t3 = (sp44 + 1); + phi_t0 = (temp_t3 >> 1); + if (temp_t3 < 0) + { + // Node 26 + phi_t0 = ((s32) (temp_t3 + 1) >> 1); + } + // Node 27 + arg0 = display_ammo_total_in_a1(arg0, sp50, ((((sp2E + sp2C) - sp54) + phi_t0) + 3), 1); + } + else + { + + } + // Node 28 + arg0 = combiner_bayer_lod_perspective(arg0); + } + } + } + } + } + // Node 29 + if (sp64 != 0) + { + // Node 30 + temp_ret_2 = get_ammo_type_for_weapon(sp64); + sp5C = temp_ret_2; + if (temp_ret_2 != 0) + { + // Node 31 + if (pPlayer->unkC3C != 7) + { + // Node 32 + if (pPlayer->unkC3C != 7) + { + // Node 33 + if (bondwalkItemCheckBitflags(sp64, 0x80000) == 0) + { + // Node 34 + temp_v1_2 = ((sp5C * 0xc) + &ammo_related); + sp3C = 5; + if (temp_v1_2->unk4 != 0) + { + // Node 35 + sp28 = temp_v1_2; + sp40 = (void *) (temp_v1_2->unk4 + globalbank_rdram_offset); + sp34 = getPlayer_c_screenleft(); + sp38 = get_video2_settings_uly(); + get_video2_settings_height(); + arg0 = set_rgba_redirect_generate_microcode(sp28->unk8, arg0, sp40, (sp34 + (f32) sp58), 0xbf800000, 1, 1); + sp3C = (s32) sp40->unk4; + } + // Node 36 + arg0 = microcode_constructor(arg0); + if (bondwalkItemCheckBitflags(sp64, 0x400000) != 0) + { + // Node 37 + sp4C = 0; + temp_v1_4 = (pPlayer->unkC44 + (pPlayer + (sp5C * 4))->unk1130); + phi_v1_2 = temp_v1_4; + if (sp64 == sp60) + { + // Node 38 + phi_v1_2 = (temp_v1_4 + pPlayer->unk89C); + } + // Node 39 + sp50 = (s32) phi_v1_2; + } + else + { + // Node 40 + sp4C = (s32) pPlayer->unkC44; + sp50 = (s32) (pPlayer + (sp5C * 4))->unk1130; + } + // Node 41 + if (bondwalkItemCheckBitflags(sp64, 0x400000) == 0) + { + // Node 42 + sp2E = get_video2_settings_ulx(); + sp38 = get_video2_settings_uly(); + get_video2_settings_height(); + phi_t3 = (sp3C >> 1); + if (sp3C < 0) + { + // Node 43 + phi_t3 = ((s32) (sp3C + 1) >> 1); + } + // Node 44 + arg0 = display_ammo_total_in_a1(arg0, sp4C, (((sp2E + sp58) + phi_t3) + 3), 1); + } + // Node 45 + if ((sp50 > 0) || (bondwalkItemCheckBitflags(sp64, 0x400000) != 0)) + { + // Node 47 + sp2E = get_video2_settings_ulx(); + sp38 = get_video2_settings_uly(); + get_video2_settings_height(); + temp_t1 = (sp3C + 1); + phi_t0_2 = (temp_t1 >> 1); + if (temp_t1 < 0) + { + // Node 48 + phi_t0_2 = ((s32) (temp_t1 + 1) >> 1); + } + // Node 49 + arg0 = display_ammo_total_in_a1(arg0, sp50, (((sp2E + sp58) - phi_t0_2) + -4), 0); + } + else + { + + } + // Node 50 + arg0 = combiner_bayer_lod_perspective(arg0); + } + } + } + } + } + } + } + // Node 51 + return arg0; +} +#else +GLOBAL_ASM( +.text +glabel generate_ammo_total_microcode +/* 09E824 7F069CF4 3C028008 */ lui $v0, %hi(pPlayer) +/* 09E828 7F069CF8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09E82C 7F069CFC 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 09E830 7F069D00 AFBF0024 */ sw $ra, 0x24($sp) +/* 09E834 7F069D04 AFA40068 */ sw $a0, 0x68($sp) +/* 09E838 7F069D08 8C4E1064 */ lw $t6, 0x1064($v0) +/* 09E83C 7F069D0C 55C00185 */ bnezl $t6, .L7F06A324 +/* 09E840 7F069D10 8FBF0024 */ lw $ra, 0x24($sp) +/* 09E844 7F069D14 8C4F29C4 */ lw $t7, 0x29c4($v0) +/* 09E848 7F069D18 55E00182 */ bnezl $t7, .L7F06A324 +/* 09E84C 7F069D1C 8FBF0024 */ lw $ra, 0x24($sp) +/* 09E850 7F069D20 0FC17674 */ jal get_item_in_hand +/* 09E854 7F069D24 24040001 */ li $a0, 1 +/* 09E858 7F069D28 AFA20064 */ sw $v0, 0x64($sp) +/* 09E85C 7F069D2C 0FC17674 */ jal get_item_in_hand +/* 09E860 7F069D30 00002025 */ move $a0, $zero +/* 09E864 7F069D34 0FC26919 */ jal get_num_players +/* 09E868 7F069D38 AFA20060 */ sw $v0, 0x60($sp) +/* 09E86C 7F069D3C 28410003 */ slti $at, $v0, 3 +/* 09E870 7F069D40 10200005 */ beqz $at, .L7F069D58 +/* 09E874 7F069D44 2418003B */ li $t8, 59 +/* 09E878 7F069D48 2419003B */ li $t9, 59 +/* 09E87C 7F069D4C AFB80058 */ sw $t8, 0x58($sp) +/* 09E880 7F069D50 1000000E */ b .L7F069D8C +/* 09E884 7F069D54 AFB90054 */ sw $t9, 0x54($sp) +.L7F069D58: +/* 09E888 7F069D58 0FC26C54 */ jal get_cur_playernum +/* 09E88C 7F069D5C 00000000 */ nop +/* 09E890 7F069D60 30480001 */ andi $t0, $v0, 1 +/* 09E894 7F069D64 11000006 */ beqz $t0, .L7F069D80 +/* 09E898 7F069D68 240B003B */ li $t3, 59 +/* 09E89C 7F069D6C 2409002B */ li $t1, 43 +/* 09E8A0 7F069D70 240A007F */ li $t2, 127 +/* 09E8A4 7F069D74 AFA90058 */ sw $t1, 0x58($sp) +/* 09E8A8 7F069D78 10000004 */ b .L7F069D8C +/* 09E8AC 7F069D7C AFAA0054 */ sw $t2, 0x54($sp) +.L7F069D80: +/* 09E8B0 7F069D80 240C006D */ li $t4, 109 +/* 09E8B4 7F069D84 AFAB0058 */ sw $t3, 0x58($sp) +/* 09E8B8 7F069D88 AFAC0054 */ sw $t4, 0x54($sp) +.L7F069D8C: +/* 09E8BC 7F069D8C 8FAD0060 */ lw $t5, 0x60($sp) +/* 09E8C0 7F069D90 51A000B7 */ beql $t5, $zero, .L7F06A070 +/* 09E8C4 7F069D94 8FA40064 */ lw $a0, 0x64($sp) +/* 09E8C8 7F069D98 0FC1A50B */ jal get_ammo_type_for_weapon +/* 09E8CC 7F069D9C 01A02025 */ move $a0, $t5 +/* 09E8D0 7F069DA0 104000B2 */ beqz $v0, .L7F06A06C +/* 09E8D4 7F069DA4 AFA2005C */ sw $v0, 0x5c($sp) +/* 09E8D8 7F069DA8 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 09E8DC 7F069DAC 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 09E8E0 7F069DB0 24010006 */ li $at, 6 +/* 09E8E4 7F069DB4 8DC20894 */ lw $v0, 0x894($t6) +/* 09E8E8 7F069DB8 104100AC */ beq $v0, $at, .L7F06A06C +/* 09E8EC 7F069DBC 24010007 */ li $at, 7 +/* 09E8F0 7F069DC0 104100AA */ beq $v0, $at, .L7F06A06C +/* 09E8F4 7F069DC4 8FA40060 */ lw $a0, 0x60($sp) +/* 09E8F8 7F069DC8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09E8FC 7F069DCC 3C050008 */ lui $a1, 8 +/* 09E900 7F069DD0 144000A6 */ bnez $v0, .L7F06A06C +/* 09E904 7F069DD4 8FAF005C */ lw $t7, 0x5c($sp) +/* 09E908 7F069DD8 000FC080 */ sll $t8, $t7, 2 +/* 09E90C 7F069DDC 030FC023 */ subu $t8, $t8, $t7 +/* 09E910 7F069DE0 3C198003 */ lui $t9, %hi(ammo_related) +/* 09E914 7F069DE4 27395EF0 */ addiu $t9, %lo(ammo_related) # addiu $t9, $t9, 0x5ef0 +/* 09E918 7F069DE8 0018C080 */ sll $t8, $t8, 2 +/* 09E91C 7F069DEC 03191821 */ addu $v1, $t8, $t9 +/* 09E920 7F069DF0 8C620004 */ lw $v0, 4($v1) +/* 09E924 7F069DF4 24080005 */ li $t0, 5 +/* 09E928 7F069DF8 AFA80044 */ sw $t0, 0x44($sp) +/* 09E92C 7F069DFC 10400028 */ beqz $v0, .L7F069EA0 +/* 09E930 7F069E00 3C098009 */ lui $t1, %hi(globalbank_rdram_offset) +/* 09E934 7F069E04 8D29D0B0 */ lw $t1, %lo(globalbank_rdram_offset)($t1) +/* 09E938 7F069E08 AFA30028 */ sw $v1, 0x28($sp) +/* 09E93C 7F069E0C 00491021 */ addu $v0, $v0, $t1 +/* 09E940 7F069E10 0FC1E131 */ jal getPlayer_c_screenleft +/* 09E944 7F069E14 AFA20048 */ sw $v0, 0x48($sp) +/* 09E948 7F069E18 0FC1E129 */ jal getPlayer_c_screenwidth +/* 09E94C 7F069E1C E7A00030 */ swc1 $f0, 0x30($sp) +/* 09E950 7F069E20 0C001149 */ jal get_video2_settings_uly +/* 09E954 7F069E24 E7A00034 */ swc1 $f0, 0x34($sp) +/* 09E958 7F069E28 0C00112B */ jal get_video2_settings_height +/* 09E95C 7F069E2C A7A20038 */ sh $v0, 0x38($sp) +/* 09E960 7F069E30 8FAA0054 */ lw $t2, 0x54($sp) +/* 09E964 7F069E34 87AB0038 */ lh $t3, 0x38($sp) +/* 09E968 7F069E38 C7A40034 */ lwc1 $f4, 0x34($sp) +/* 09E96C 7F069E3C C7A60030 */ lwc1 $f6, 0x30($sp) +/* 09E970 7F069E40 448A5000 */ mtc1 $t2, $f10 +/* 09E974 7F069E44 004B6021 */ addu $t4, $v0, $t3 +/* 09E978 7F069E48 46062200 */ add.s $f8, $f4, $f6 +/* 09E97C 7F069E4C 258DFFEC */ addiu $t5, $t4, -0x14 +/* 09E980 7F069E50 448D2000 */ mtc1 $t5, $f4 +/* 09E984 7F069E54 46805420 */ cvt.s.w $f16, $f10 +/* 09E988 7F069E58 8FAE0028 */ lw $t6, 0x28($sp) +/* 09E98C 7F069E5C AFA00014 */ sw $zero, 0x14($sp) +/* 09E990 7F069E60 240F0001 */ li $t7, 1 +/* 09E994 7F069E64 8FA40068 */ lw $a0, 0x68($sp) +/* 09E998 7F069E68 468021A0 */ cvt.s.w $f6, $f4 +/* 09E99C 7F069E6C 8FA50048 */ lw $a1, 0x48($sp) +/* 09E9A0 7F069E70 3C07BF80 */ lui $a3, 0xbf80 +/* 09E9A4 7F069E74 46104481 */ sub.s $f18, $f8, $f16 +/* 09E9A8 7F069E78 E7A60010 */ swc1 $f6, 0x10($sp) +/* 09E9AC 7F069E7C C5CA0008 */ lwc1 $f10, 8($t6) +/* 09E9B0 7F069E80 AFAF001C */ sw $t7, 0x1c($sp) +/* 09E9B4 7F069E84 44069000 */ mfc1 $a2, $f18 +/* 09E9B8 7F069E88 0FC1A679 */ jal set_rgba_redirect_generate_microcode +/* 09E9BC 7F069E8C E7AA0018 */ swc1 $f10, 0x18($sp) +/* 09E9C0 7F069E90 8FB80048 */ lw $t8, 0x48($sp) +/* 09E9C4 7F069E94 AFA20068 */ sw $v0, 0x68($sp) +/* 09E9C8 7F069E98 93190004 */ lbu $t9, 4($t8) +/* 09E9CC 7F069E9C AFB90044 */ sw $t9, 0x44($sp) +.L7F069EA0: +/* 09E9D0 7F069EA0 0FC2B366 */ jal microcode_constructor +/* 09E9D4 7F069EA4 8FA40068 */ lw $a0, 0x68($sp) +/* 09E9D8 7F069EA8 AFA20068 */ sw $v0, 0x68($sp) +/* 09E9DC 7F069EAC 8FA40060 */ lw $a0, 0x60($sp) +/* 09E9E0 7F069EB0 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09E9E4 7F069EB4 3C050040 */ lui $a1, 0x40 +/* 09E9E8 7F069EB8 10400011 */ beqz $v0, .L7F069F00 +/* 09E9EC 7F069EBC 3C050040 */ lui $a1, 0x40 +/* 09E9F0 7F069EC0 8FA9005C */ lw $t1, 0x5c($sp) +/* 09E9F4 7F069EC4 3C028008 */ lui $v0, %hi(pPlayer) +/* 09E9F8 7F069EC8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09E9FC 7F069ECC AFA0004C */ sw $zero, 0x4c($sp) +/* 09EA00 7F069ED0 00095080 */ sll $t2, $t1, 2 +/* 09EA04 7F069ED4 8FAD0064 */ lw $t5, 0x64($sp) +/* 09EA08 7F069ED8 8FAE0060 */ lw $t6, 0x60($sp) +/* 09EA0C 7F069EDC 004A5821 */ addu $t3, $v0, $t2 +/* 09EA10 7F069EE0 8D6C1130 */ lw $t4, 0x1130($t3) +/* 09EA14 7F069EE4 8C48089C */ lw $t0, 0x89c($v0) +/* 09EA18 7F069EE8 15AE0003 */ bne $t5, $t6, .L7F069EF8 +/* 09EA1C 7F069EEC 010C1821 */ addu $v1, $t0, $t4 +/* 09EA20 7F069EF0 8C4F0C44 */ lw $t7, 0xc44($v0) +/* 09EA24 7F069EF4 006F1821 */ addu $v1, $v1, $t7 +.L7F069EF8: +/* 09EA28 7F069EF8 1000000A */ b .L7F069F24 +/* 09EA2C 7F069EFC AFA30050 */ sw $v1, 0x50($sp) +.L7F069F00: +/* 09EA30 7F069F00 3C028008 */ lui $v0, %hi(pPlayer) +/* 09EA34 7F069F04 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09EA38 7F069F08 8FB9005C */ lw $t9, 0x5c($sp) +/* 09EA3C 7F069F0C 8C58089C */ lw $t8, 0x89c($v0) +/* 09EA40 7F069F10 00194880 */ sll $t1, $t9, 2 +/* 09EA44 7F069F14 00495021 */ addu $t2, $v0, $t1 +/* 09EA48 7F069F18 AFB8004C */ sw $t8, 0x4c($sp) +/* 09EA4C 7F069F1C 8D4B1130 */ lw $t3, 0x1130($t2) +/* 09EA50 7F069F20 AFAB0050 */ sw $t3, 0x50($sp) +.L7F069F24: +/* 09EA54 7F069F24 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09EA58 7F069F28 8FA40060 */ lw $a0, 0x60($sp) +/* 09EA5C 7F069F2C 54400023 */ bnezl $v0, .L7F069FBC +/* 09EA60 7F069F30 8FAD0050 */ lw $t5, 0x50($sp) +/* 09EA64 7F069F34 0C001145 */ jal get_video2_settings_ulx +/* 09EA68 7F069F38 00000000 */ nop +/* 09EA6C 7F069F3C 0C001127 */ jal get_video2_settings_width +/* 09EA70 7F069F40 A7A2002C */ sh $v0, 0x2c($sp) +/* 09EA74 7F069F44 0C001149 */ jal get_video2_settings_uly +/* 09EA78 7F069F48 A7A2002E */ sh $v0, 0x2e($sp) +/* 09EA7C 7F069F4C 0C00112B */ jal get_video2_settings_height +/* 09EA80 7F069F50 A7A20038 */ sh $v0, 0x38($sp) +/* 09EA84 7F069F54 87A8002E */ lh $t0, 0x2e($sp) +/* 09EA88 7F069F58 87AC002C */ lh $t4, 0x2c($sp) +/* 09EA8C 7F069F5C 8FAE0054 */ lw $t6, 0x54($sp) +/* 09EA90 7F069F60 8FB80044 */ lw $t8, 0x44($sp) +/* 09EA94 7F069F64 87A90038 */ lh $t1, 0x38($sp) +/* 09EA98 7F069F68 010C6821 */ addu $t5, $t0, $t4 +/* 09EA9C 7F069F6C 01AE7823 */ subu $t7, $t5, $t6 +/* 09EAA0 7F069F70 00495021 */ addu $t2, $v0, $t1 +/* 09EAA4 7F069F74 254BFFEE */ addiu $t3, $t2, -0x12 +/* 09EAA8 7F069F78 240C0001 */ li $t4, 1 +/* 09EAAC 7F069F7C 24080002 */ li $t0, 2 +/* 09EAB0 7F069F80 AFA80014 */ sw $t0, 0x14($sp) +/* 09EAB4 7F069F84 AFAC0018 */ sw $t4, 0x18($sp) +/* 09EAB8 7F069F88 AFAB0010 */ sw $t3, 0x10($sp) +/* 09EABC 7F069F8C 8FA40068 */ lw $a0, 0x68($sp) +/* 09EAC0 7F069F90 8FA5004C */ lw $a1, 0x4c($sp) +/* 09EAC4 7F069F94 07010003 */ bgez $t8, .L7F069FA4 +/* 09EAC8 7F069F98 0018C843 */ sra $t9, $t8, 1 +/* 09EACC 7F069F9C 27010001 */ addiu $at, $t8, 1 +/* 09EAD0 7F069FA0 0001C843 */ sra $t9, $at, 1 +.L7F069FA4: +/* 09EAD4 7F069FA4 01F93023 */ subu $a2, $t7, $t9 +/* 09EAD8 7F069FA8 24C6FFFC */ addiu $a2, $a2, -4 +/* 09EADC 7F069FAC 0FC1A723 */ jal display_ammo_total_in_a1 +/* 09EAE0 7F069FB0 00003825 */ move $a3, $zero +/* 09EAE4 7F069FB4 AFA20068 */ sw $v0, 0x68($sp) +/* 09EAE8 7F069FB8 8FAD0050 */ lw $t5, 0x50($sp) +.L7F069FBC: +/* 09EAEC 7F069FBC 8FA40060 */ lw $a0, 0x60($sp) +/* 09EAF0 7F069FC0 1DA00005 */ bgtz $t5, .L7F069FD8 +/* 09EAF4 7F069FC4 00000000 */ nop +/* 09EAF8 7F069FC8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09EAFC 7F069FCC 3C050040 */ lui $a1, 0x40 +/* 09EB00 7F069FD0 10400023 */ beqz $v0, .L7F06A060 +/* 09EB04 7F069FD4 00000000 */ nop +.L7F069FD8: +/* 09EB08 7F069FD8 0C001145 */ jal get_video2_settings_ulx +/* 09EB0C 7F069FDC 00000000 */ nop +/* 09EB10 7F069FE0 0C001127 */ jal get_video2_settings_width +/* 09EB14 7F069FE4 A7A2002C */ sh $v0, 0x2c($sp) +/* 09EB18 7F069FE8 0C001149 */ jal get_video2_settings_uly +/* 09EB1C 7F069FEC A7A2002E */ sh $v0, 0x2e($sp) +/* 09EB20 7F069FF0 0C00112B */ jal get_video2_settings_height +/* 09EB24 7F069FF4 A7A20038 */ sh $v0, 0x38($sp) +/* 09EB28 7F069FF8 87AE002E */ lh $t6, 0x2e($sp) +/* 09EB2C 7F069FFC 87B8002C */ lh $t8, 0x2c($sp) +/* 09EB30 7F06A000 8FB90054 */ lw $t9, 0x54($sp) +/* 09EB34 7F06A004 8FAA0044 */ lw $t2, 0x44($sp) +/* 09EB38 7F06A008 87AC0038 */ lh $t4, 0x38($sp) +/* 09EB3C 7F06A00C 01D87821 */ addu $t7, $t6, $t8 +/* 09EB40 7F06A010 01F94823 */ subu $t1, $t7, $t9 +/* 09EB44 7F06A014 254B0001 */ addiu $t3, $t2, 1 +/* 09EB48 7F06A018 004C6821 */ addu $t5, $v0, $t4 +/* 09EB4C 7F06A01C 25AEFFEE */ addiu $t6, $t5, -0x12 +/* 09EB50 7F06A020 240F0001 */ li $t7, 1 +/* 09EB54 7F06A024 24180002 */ li $t8, 2 +/* 09EB58 7F06A028 AFB80014 */ sw $t8, 0x14($sp) +/* 09EB5C 7F06A02C AFAF0018 */ sw $t7, 0x18($sp) +/* 09EB60 7F06A030 AFAE0010 */ sw $t6, 0x10($sp) +/* 09EB64 7F06A034 8FA40068 */ lw $a0, 0x68($sp) +/* 09EB68 7F06A038 8FA50050 */ lw $a1, 0x50($sp) +/* 09EB6C 7F06A03C 05610003 */ bgez $t3, .L7F06A04C +/* 09EB70 7F06A040 000B4043 */ sra $t0, $t3, 1 +/* 09EB74 7F06A044 25610001 */ addiu $at, $t3, 1 +/* 09EB78 7F06A048 00014043 */ sra $t0, $at, 1 +.L7F06A04C: +/* 09EB7C 7F06A04C 01283021 */ addu $a2, $t1, $t0 +/* 09EB80 7F06A050 24C60003 */ addiu $a2, $a2, 3 +/* 09EB84 7F06A054 0FC1A723 */ jal display_ammo_total_in_a1 +/* 09EB88 7F06A058 24070001 */ li $a3, 1 +/* 09EB8C 7F06A05C AFA20068 */ sw $v0, 0x68($sp) +.L7F06A060: +/* 09EB90 7F06A060 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 09EB94 7F06A064 8FA40068 */ lw $a0, 0x68($sp) +/* 09EB98 7F06A068 AFA20068 */ sw $v0, 0x68($sp) +.L7F06A06C: +/* 09EB9C 7F06A06C 8FA40064 */ lw $a0, 0x64($sp) +.L7F06A070: +/* 09EBA0 7F06A070 508000AC */ beql $a0, $zero, .L7F06A324 +/* 09EBA4 7F06A074 8FBF0024 */ lw $ra, 0x24($sp) +/* 09EBA8 7F06A078 0FC1A50B */ jal get_ammo_type_for_weapon +/* 09EBAC 7F06A07C 00000000 */ nop +/* 09EBB0 7F06A080 104000A7 */ beqz $v0, .L7F06A320 +/* 09EBB4 7F06A084 AFA2005C */ sw $v0, 0x5c($sp) +/* 09EBB8 7F06A088 3C198008 */ lui $t9, %hi(pPlayer) +/* 09EBBC 7F06A08C 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 09EBC0 7F06A090 24010006 */ li $at, 6 +/* 09EBC4 7F06A094 8F220C3C */ lw $v0, 0xc3c($t9) +/* 09EBC8 7F06A098 104100A1 */ beq $v0, $at, .L7F06A320 +/* 09EBCC 7F06A09C 24010007 */ li $at, 7 +/* 09EBD0 7F06A0A0 1041009F */ beq $v0, $at, .L7F06A320 +/* 09EBD4 7F06A0A4 8FA40064 */ lw $a0, 0x64($sp) +/* 09EBD8 7F06A0A8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09EBDC 7F06A0AC 3C050008 */ lui $a1, 8 +/* 09EBE0 7F06A0B0 1440009B */ bnez $v0, .L7F06A320 +/* 09EBE4 7F06A0B4 8FAA005C */ lw $t2, 0x5c($sp) +/* 09EBE8 7F06A0B8 000A5880 */ sll $t3, $t2, 2 +/* 09EBEC 7F06A0BC 016A5823 */ subu $t3, $t3, $t2 +/* 09EBF0 7F06A0C0 3C098003 */ lui $t1, %hi(ammo_related) +/* 09EBF4 7F06A0C4 25295EF0 */ addiu $t1, %lo(ammo_related) # addiu $t1, $t1, 0x5ef0 +/* 09EBF8 7F06A0C8 000B5880 */ sll $t3, $t3, 2 +/* 09EBFC 7F06A0CC 01691821 */ addu $v1, $t3, $t1 +/* 09EC00 7F06A0D0 8C620004 */ lw $v0, 4($v1) +/* 09EC04 7F06A0D4 24080005 */ li $t0, 5 +/* 09EC08 7F06A0D8 AFA8003C */ sw $t0, 0x3c($sp) +/* 09EC0C 7F06A0DC 10400025 */ beqz $v0, .L7F06A174 +/* 09EC10 7F06A0E0 3C0C8009 */ lui $t4, %hi(globalbank_rdram_offset) +/* 09EC14 7F06A0E4 8D8CD0B0 */ lw $t4, %lo(globalbank_rdram_offset)($t4) +/* 09EC18 7F06A0E8 AFA30028 */ sw $v1, 0x28($sp) +/* 09EC1C 7F06A0EC 004C1021 */ addu $v0, $v0, $t4 +/* 09EC20 7F06A0F0 0FC1E131 */ jal getPlayer_c_screenleft +/* 09EC24 7F06A0F4 AFA20040 */ sw $v0, 0x40($sp) +/* 09EC28 7F06A0F8 0C001149 */ jal get_video2_settings_uly +/* 09EC2C 7F06A0FC E7A00034 */ swc1 $f0, 0x34($sp) +/* 09EC30 7F06A100 0C00112B */ jal get_video2_settings_height +/* 09EC34 7F06A104 A7A20038 */ sh $v0, 0x38($sp) +/* 09EC38 7F06A108 8FAD0058 */ lw $t5, 0x58($sp) +/* 09EC3C 7F06A10C 87AE0038 */ lh $t6, 0x38($sp) +/* 09EC40 7F06A110 C7B20034 */ lwc1 $f18, 0x34($sp) +/* 09EC44 7F06A114 448D8000 */ mtc1 $t5, $f16 +/* 09EC48 7F06A118 8FAA0028 */ lw $t2, 0x28($sp) +/* 09EC4C 7F06A11C 004EC021 */ addu $t8, $v0, $t6 +/* 09EC50 7F06A120 46808420 */ cvt.s.w $f16, $f16 +/* 09EC54 7F06A124 270FFFEC */ addiu $t7, $t8, -0x14 +/* 09EC58 7F06A128 448F7000 */ mtc1 $t7, $f14 +/* 09EC5C 7F06A12C 24190001 */ li $t9, 1 +/* 09EC60 7F06A130 AFB90014 */ sw $t9, 0x14($sp) +/* 09EC64 7F06A134 468073A0 */ cvt.s.w $f14, $f14 +/* 09EC68 7F06A138 240B0001 */ li $t3, 1 +/* 09EC6C 7F06A13C 8FA40068 */ lw $a0, 0x68($sp) +/* 09EC70 7F06A140 8FA50040 */ lw $a1, 0x40($sp) +/* 09EC74 7F06A144 3C07BF80 */ lui $a3, 0xbf80 +/* 09EC78 7F06A148 46109400 */ add.s $f16, $f18, $f16 +/* 09EC7C 7F06A14C E7AE0010 */ swc1 $f14, 0x10($sp) +/* 09EC80 7F06A150 C54E0008 */ lwc1 $f14, 8($t2) +/* 09EC84 7F06A154 AFAB001C */ sw $t3, 0x1c($sp) +/* 09EC88 7F06A158 44068000 */ mfc1 $a2, $f16 +/* 09EC8C 7F06A15C 0FC1A679 */ jal set_rgba_redirect_generate_microcode +/* 09EC90 7F06A160 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 09EC94 7F06A164 8FA90040 */ lw $t1, 0x40($sp) +/* 09EC98 7F06A168 AFA20068 */ sw $v0, 0x68($sp) +/* 09EC9C 7F06A16C 91280004 */ lbu $t0, 4($t1) +/* 09ECA0 7F06A170 AFA8003C */ sw $t0, 0x3c($sp) +.L7F06A174: +/* 09ECA4 7F06A174 0FC2B366 */ jal microcode_constructor +/* 09ECA8 7F06A178 8FA40068 */ lw $a0, 0x68($sp) +/* 09ECAC 7F06A17C AFA20068 */ sw $v0, 0x68($sp) +/* 09ECB0 7F06A180 8FA40064 */ lw $a0, 0x64($sp) +/* 09ECB4 7F06A184 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09ECB8 7F06A188 3C050040 */ lui $a1, 0x40 +/* 09ECBC 7F06A18C 10400011 */ beqz $v0, .L7F06A1D4 +/* 09ECC0 7F06A190 3C050040 */ lui $a1, 0x40 +/* 09ECC4 7F06A194 8FAD005C */ lw $t5, 0x5c($sp) +/* 09ECC8 7F06A198 3C028008 */ lui $v0, %hi(pPlayer) +/* 09ECCC 7F06A19C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09ECD0 7F06A1A0 AFA0004C */ sw $zero, 0x4c($sp) +/* 09ECD4 7F06A1A4 000D7080 */ sll $t6, $t5, 2 +/* 09ECD8 7F06A1A8 8FB90064 */ lw $t9, 0x64($sp) +/* 09ECDC 7F06A1AC 8FAA0060 */ lw $t2, 0x60($sp) +/* 09ECE0 7F06A1B0 004EC021 */ addu $t8, $v0, $t6 +/* 09ECE4 7F06A1B4 8F0F1130 */ lw $t7, 0x1130($t8) +/* 09ECE8 7F06A1B8 8C4C0C44 */ lw $t4, 0xc44($v0) +/* 09ECEC 7F06A1BC 172A0003 */ bne $t9, $t2, .L7F06A1CC +/* 09ECF0 7F06A1C0 018F1821 */ addu $v1, $t4, $t7 +/* 09ECF4 7F06A1C4 8C4B089C */ lw $t3, 0x89c($v0) +/* 09ECF8 7F06A1C8 006B1821 */ addu $v1, $v1, $t3 +.L7F06A1CC: +/* 09ECFC 7F06A1CC 1000000A */ b .L7F06A1F8 +/* 09ED00 7F06A1D0 AFA30050 */ sw $v1, 0x50($sp) +.L7F06A1D4: +/* 09ED04 7F06A1D4 3C028008 */ lui $v0, %hi(pPlayer) +/* 09ED08 7F06A1D8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09ED0C 7F06A1DC 8FA8005C */ lw $t0, 0x5c($sp) +/* 09ED10 7F06A1E0 8C490C44 */ lw $t1, 0xc44($v0) +/* 09ED14 7F06A1E4 00086880 */ sll $t5, $t0, 2 +/* 09ED18 7F06A1E8 004D7021 */ addu $t6, $v0, $t5 +/* 09ED1C 7F06A1EC AFA9004C */ sw $t1, 0x4c($sp) +/* 09ED20 7F06A1F0 8DD81130 */ lw $t8, 0x1130($t6) +/* 09ED24 7F06A1F4 AFB80050 */ sw $t8, 0x50($sp) +.L7F06A1F8: +/* 09ED28 7F06A1F8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09ED2C 7F06A1FC 8FA40064 */ lw $a0, 0x64($sp) +/* 09ED30 7F06A200 5440001F */ bnezl $v0, .L7F06A280 +/* 09ED34 7F06A204 8FAC0050 */ lw $t4, 0x50($sp) +/* 09ED38 7F06A208 0C001145 */ jal get_video2_settings_ulx +/* 09ED3C 7F06A20C 00000000 */ nop +/* 09ED40 7F06A210 0C001149 */ jal get_video2_settings_uly +/* 09ED44 7F06A214 A7A2002E */ sh $v0, 0x2e($sp) +/* 09ED48 7F06A218 0C00112B */ jal get_video2_settings_height +/* 09ED4C 7F06A21C A7A20038 */ sh $v0, 0x38($sp) +/* 09ED50 7F06A220 87AC002E */ lh $t4, 0x2e($sp) +/* 09ED54 7F06A224 8FAF0058 */ lw $t7, 0x58($sp) +/* 09ED58 7F06A228 8FAA003C */ lw $t2, 0x3c($sp) +/* 09ED5C 7F06A22C 87A90038 */ lh $t1, 0x38($sp) +/* 09ED60 7F06A230 018FC821 */ addu $t9, $t4, $t7 +/* 09ED64 7F06A234 240E0002 */ li $t6, 2 +/* 09ED68 7F06A238 00494021 */ addu $t0, $v0, $t1 +/* 09ED6C 7F06A23C 250DFFEE */ addiu $t5, $t0, -0x12 +/* 09ED70 7F06A240 24180001 */ li $t8, 1 +/* 09ED74 7F06A244 AFB80018 */ sw $t8, 0x18($sp) +/* 09ED78 7F06A248 AFAD0010 */ sw $t5, 0x10($sp) +/* 09ED7C 7F06A24C AFAE0014 */ sw $t6, 0x14($sp) +/* 09ED80 7F06A250 8FA40068 */ lw $a0, 0x68($sp) +/* 09ED84 7F06A254 8FA5004C */ lw $a1, 0x4c($sp) +/* 09ED88 7F06A258 05410003 */ bgez $t2, .L7F06A268 +/* 09ED8C 7F06A25C 000A5843 */ sra $t3, $t2, 1 +/* 09ED90 7F06A260 25410001 */ addiu $at, $t2, 1 +/* 09ED94 7F06A264 00015843 */ sra $t3, $at, 1 +.L7F06A268: +/* 09ED98 7F06A268 032B3021 */ addu $a2, $t9, $t3 +/* 09ED9C 7F06A26C 24C60003 */ addiu $a2, $a2, 3 +/* 09EDA0 7F06A270 0FC1A723 */ jal display_ammo_total_in_a1 +/* 09EDA4 7F06A274 24070001 */ li $a3, 1 +/* 09EDA8 7F06A278 AFA20068 */ sw $v0, 0x68($sp) +/* 09EDAC 7F06A27C 8FAC0050 */ lw $t4, 0x50($sp) +.L7F06A280: +/* 09EDB0 7F06A280 8FA40064 */ lw $a0, 0x64($sp) +/* 09EDB4 7F06A284 1D800005 */ bgtz $t4, .L7F06A29C +/* 09EDB8 7F06A288 00000000 */ nop +/* 09EDBC 7F06A28C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09EDC0 7F06A290 3C050040 */ lui $a1, 0x40 +/* 09EDC4 7F06A294 1040001F */ beqz $v0, .L7F06A314 +/* 09EDC8 7F06A298 00000000 */ nop +.L7F06A29C: +/* 09EDCC 7F06A29C 0C001145 */ jal get_video2_settings_ulx +/* 09EDD0 7F06A2A0 00000000 */ nop +/* 09EDD4 7F06A2A4 0C001149 */ jal get_video2_settings_uly +/* 09EDD8 7F06A2A8 A7A2002E */ sh $v0, 0x2e($sp) +/* 09EDDC 7F06A2AC 0C00112B */ jal get_video2_settings_height +/* 09EDE0 7F06A2B0 A7A20038 */ sh $v0, 0x38($sp) +/* 09EDE4 7F06A2B4 87AF002E */ lh $t7, 0x2e($sp) +/* 09EDE8 7F06A2B8 8FAA0058 */ lw $t2, 0x58($sp) +/* 09EDEC 7F06A2BC 8FAB003C */ lw $t3, 0x3c($sp) +/* 09EDF0 7F06A2C0 87AD0038 */ lh $t5, 0x38($sp) +/* 09EDF4 7F06A2C4 01EAC821 */ addu $t9, $t7, $t2 +/* 09EDF8 7F06A2C8 25690001 */ addiu $t1, $t3, 1 +/* 09EDFC 7F06A2CC 004D7021 */ addu $t6, $v0, $t5 +/* 09EE00 7F06A2D0 25D8FFEE */ addiu $t8, $t6, -0x12 +/* 09EE04 7F06A2D4 240F0001 */ li $t7, 1 +/* 09EE08 7F06A2D8 240C0002 */ li $t4, 2 +/* 09EE0C 7F06A2DC AFAC0014 */ sw $t4, 0x14($sp) +/* 09EE10 7F06A2E0 AFAF0018 */ sw $t7, 0x18($sp) +/* 09EE14 7F06A2E4 AFB80010 */ sw $t8, 0x10($sp) +/* 09EE18 7F06A2E8 8FA40068 */ lw $a0, 0x68($sp) +/* 09EE1C 7F06A2EC 8FA50050 */ lw $a1, 0x50($sp) +/* 09EE20 7F06A2F0 05210003 */ bgez $t1, .L7F06A300 +/* 09EE24 7F06A2F4 00094043 */ sra $t0, $t1, 1 +/* 09EE28 7F06A2F8 25210001 */ addiu $at, $t1, 1 +/* 09EE2C 7F06A2FC 00014043 */ sra $t0, $at, 1 +.L7F06A300: +/* 09EE30 7F06A300 03283023 */ subu $a2, $t9, $t0 +/* 09EE34 7F06A304 24C6FFFC */ addiu $a2, $a2, -4 +/* 09EE38 7F06A308 0FC1A723 */ jal display_ammo_total_in_a1 +/* 09EE3C 7F06A30C 00003825 */ move $a3, $zero +/* 09EE40 7F06A310 AFA20068 */ sw $v0, 0x68($sp) +.L7F06A314: +/* 09EE44 7F06A314 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 09EE48 7F06A318 8FA40068 */ lw $a0, 0x68($sp) +/* 09EE4C 7F06A31C AFA20068 */ sw $v0, 0x68($sp) +.L7F06A320: +/* 09EE50 7F06A320 8FBF0024 */ lw $ra, 0x24($sp) +.L7F06A324: +/* 09EE54 7F06A324 8FA20068 */ lw $v0, 0x68($sp) +/* 09EE58 7F06A328 27BD0068 */ addiu $sp, $sp, 0x68 +/* 09EE5C 7F06A32C 03E00008 */ jr $ra +/* 09EE60 7F06A330 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F06A334(s32 arg0) { + void *sp30; + s16 sp34; + s32 sp3C; + void *sp40; + s32 sp44; + s32 sp48; + s32 sp4C; + s32 sp50; + s32 sp54; + ? temp_ret; + ? temp_ret_2; + void *temp_v0; + s32 temp_s0; + s32 temp_v1; + s32 temp_a2; + s32 phi_s0; + s32 phi_v1; + s32 phi_t4; + s32 phi_s0_2; + s32 phi_t9; + s32 phi_s0_3; + s32 phi_s0_4; + + // Node 0 + sp54 = get_item_in_hand(1); + temp_ret = get_item_in_hand(0); + phi_s0_4 = arg0; + if (temp_ret != 0) + { + // Node 1 + sp50 = temp_ret; + temp_ret_2 = get_ammo_type_for_weapon(temp_ret); + sp4C = temp_ret_2; + phi_s0_4 = arg0; + if (temp_ret_2 != 0) + { + // Node 2 + phi_s0_4 = arg0; + if (pPlayer->unk894 != 7) + { + // Node 3 + phi_s0_4 = arg0; + if (pPlayer->unk894 != 7) + { + // Node 4 + phi_s0_4 = arg0; + if (bondwalkItemCheckBitflags(sp50, 0x80000) == 0) + { + // Node 5 + temp_v0 = ((sp4C * 0xc) + &ammo_related); + sp3C = 5; + sp30 = temp_v0; + sp40 = (void *) temp_v0->unk4; + get_ptr_item_statistics(sp50); + phi_s0 = arg0; + if (sp40 != 0) + { + // Node 6 + sp40 = (void *) (sp40 + globalbank_rdram_offset); + sp34 = get_video2_settings_uly(); + sp3C = (s32) sp40->unk4; + phi_s0 = set_rgba_redirect_generate_microcode(arg0, sp40, 0x43480000, 0x43340000, (f32) ((get_video2_settings_height() + sp34) + -0x14), 0, (f32) sp30->unk8, 1); + } + // Node 7 + temp_s0 = microcode_constructor(phi_s0); + if (bondwalkItemCheckBitflags(sp50, 0x400000) != 0) + { + // Node 8 + sp44 = 0; + temp_v1 = (pPlayer->unk89C + (pPlayer + (sp4C * 4))->unk1130); + phi_v1 = temp_v1; + if (sp54 == sp50) + { + // Node 9 + phi_v1 = (temp_v1 + pPlayer->unkC44); + } + // Node 10 + sp48 = (s32) phi_v1; + } + else + { + // Node 11 + sp44 = (s32) pPlayer->unk89C; + sp48 = (s32) (pPlayer + (sp4C * 4))->unk1130; + } + // Node 12 + phi_s0_2 = temp_s0; + if (bondwalkItemCheckBitflags(sp50, 0x400000) == 0) + { + // Node 13 + phi_t4 = (sp3C >> 1); + if (sp3C < 0) + { + // Node 14 + phi_t4 = ((s32) (sp3C + 1) >> 1); + } + // Node 15 + phi_s0_2 = display_ammo_total_in_a1(temp_s0, sp44, (0xc4 - phi_t4), 0, 0); + } + // Node 16 + if ((sp48 > 0) || (bondwalkItemCheckBitflags(sp50, 0x400000) != 0)) + { + // Node 18 + temp_a2 = (sp3C + 1); + phi_t9 = (temp_a2 >> 1); + if (temp_a2 < 0) + { + // Node 19 + phi_t9 = ((s32) (temp_a2 + 1) >> 1); + } + // Node 20 + phi_s0_3 = display_ammo_total_in_a1(phi_s0_2, sp48, (phi_t9 + 0xcb), 1, 0); + } + else + { + + } + // Node 21 + phi_s0_4 = combiner_bayer_lod_perspective(phi_s0_3); + } + } + } + } + } + // Node 22 + return phi_s0_4; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06A334 +/* 09EE64 7F06A334 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 09EE68 7F06A338 AFB00028 */ sw $s0, 0x28($sp) +/* 09EE6C 7F06A33C 00808025 */ move $s0, $a0 +/* 09EE70 7F06A340 AFBF002C */ sw $ra, 0x2c($sp) +/* 09EE74 7F06A344 0FC17674 */ jal get_item_in_hand +/* 09EE78 7F06A348 24040001 */ li $a0, 1 +/* 09EE7C 7F06A34C AFA20054 */ sw $v0, 0x54($sp) +/* 09EE80 7F06A350 0FC17674 */ jal get_item_in_hand +/* 09EE84 7F06A354 00002025 */ move $a0, $zero +/* 09EE88 7F06A358 1040008E */ beqz $v0, .L7F06A594 +/* 09EE8C 7F06A35C 00402025 */ move $a0, $v0 +/* 09EE90 7F06A360 0FC1A50B */ jal get_ammo_type_for_weapon +/* 09EE94 7F06A364 AFA20050 */ sw $v0, 0x50($sp) +/* 09EE98 7F06A368 1040008A */ beqz $v0, .L7F06A594 +/* 09EE9C 7F06A36C AFA2004C */ sw $v0, 0x4c($sp) +/* 09EEA0 7F06A370 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 09EEA4 7F06A374 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 09EEA8 7F06A378 24010006 */ li $at, 6 +/* 09EEAC 7F06A37C 8DC20894 */ lw $v0, 0x894($t6) +/* 09EEB0 7F06A380 10410084 */ beq $v0, $at, .L7F06A594 +/* 09EEB4 7F06A384 24010007 */ li $at, 7 +/* 09EEB8 7F06A388 10410082 */ beq $v0, $at, .L7F06A594 +/* 09EEBC 7F06A38C 8FA40050 */ lw $a0, 0x50($sp) +/* 09EEC0 7F06A390 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09EEC4 7F06A394 3C050008 */ lui $a1, 8 +/* 09EEC8 7F06A398 1440007E */ bnez $v0, .L7F06A594 +/* 09EECC 7F06A39C 8FAF004C */ lw $t7, 0x4c($sp) +/* 09EED0 7F06A3A0 000FC080 */ sll $t8, $t7, 2 +/* 09EED4 7F06A3A4 030FC023 */ subu $t8, $t8, $t7 +/* 09EED8 7F06A3A8 3C198003 */ lui $t9, %hi(ammo_related) +/* 09EEDC 7F06A3AC 27395EF0 */ addiu $t9, %lo(ammo_related) # addiu $t9, $t9, 0x5ef0 +/* 09EEE0 7F06A3B0 0018C080 */ sll $t8, $t8, 2 +/* 09EEE4 7F06A3B4 03191021 */ addu $v0, $t8, $t9 +/* 09EEE8 7F06A3B8 8C480004 */ lw $t0, 4($v0) +/* 09EEEC 7F06A3BC 24090005 */ li $t1, 5 +/* 09EEF0 7F06A3C0 AFA9003C */ sw $t1, 0x3c($sp) +/* 09EEF4 7F06A3C4 AFA20030 */ sw $v0, 0x30($sp) +/* 09EEF8 7F06A3C8 8FA40050 */ lw $a0, 0x50($sp) +/* 09EEFC 7F06A3CC 0FC1722D */ jal get_ptr_item_statistics +/* 09EF00 7F06A3D0 AFA80040 */ sw $t0, 0x40($sp) +/* 09EF04 7F06A3D4 8FA30040 */ lw $v1, 0x40($sp) +/* 09EF08 7F06A3D8 3C0A8009 */ lui $t2, %hi(globalbank_rdram_offset) +/* 09EF0C 7F06A3DC 1060001C */ beqz $v1, .L7F06A450 +/* 09EF10 7F06A3E0 00000000 */ nop +/* 09EF14 7F06A3E4 8D4AD0B0 */ lw $t2, %lo(globalbank_rdram_offset)($t2) +/* 09EF18 7F06A3E8 006A1821 */ addu $v1, $v1, $t2 +/* 09EF1C 7F06A3EC 0C001149 */ jal get_video2_settings_uly +/* 09EF20 7F06A3F0 AFA30040 */ sw $v1, 0x40($sp) +/* 09EF24 7F06A3F4 0C00112B */ jal get_video2_settings_height +/* 09EF28 7F06A3F8 A7A20034 */ sh $v0, 0x34($sp) +/* 09EF2C 7F06A3FC 87AB0034 */ lh $t3, 0x34($sp) +/* 09EF30 7F06A400 8FAE0030 */ lw $t6, 0x30($sp) +/* 09EF34 7F06A404 AFA00014 */ sw $zero, 0x14($sp) +/* 09EF38 7F06A408 004B6021 */ addu $t4, $v0, $t3 +/* 09EF3C 7F06A40C 258DFFEC */ addiu $t5, $t4, -0x14 +/* 09EF40 7F06A410 448D2000 */ mtc1 $t5, $f4 +/* 09EF44 7F06A414 240F0001 */ li $t7, 1 +/* 09EF48 7F06A418 02002025 */ move $a0, $s0 +/* 09EF4C 7F06A41C 468021A0 */ cvt.s.w $f6, $f4 +/* 09EF50 7F06A420 8FA50040 */ lw $a1, 0x40($sp) +/* 09EF54 7F06A424 3C064348 */ lui $a2, 0x4348 +/* 09EF58 7F06A428 3C074334 */ lui $a3, 0x4334 +/* 09EF5C 7F06A42C E7A60010 */ swc1 $f6, 0x10($sp) +/* 09EF60 7F06A430 C5C80008 */ lwc1 $f8, 8($t6) +/* 09EF64 7F06A434 AFAF001C */ sw $t7, 0x1c($sp) +/* 09EF68 7F06A438 0FC1A679 */ jal set_rgba_redirect_generate_microcode +/* 09EF6C 7F06A43C E7A80018 */ swc1 $f8, 0x18($sp) +/* 09EF70 7F06A440 8FB80040 */ lw $t8, 0x40($sp) +/* 09EF74 7F06A444 00408025 */ move $s0, $v0 +/* 09EF78 7F06A448 93190004 */ lbu $t9, 4($t8) +/* 09EF7C 7F06A44C AFB9003C */ sw $t9, 0x3c($sp) +.L7F06A450: +/* 09EF80 7F06A450 0FC2B366 */ jal microcode_constructor +/* 09EF84 7F06A454 02002025 */ move $a0, $s0 +/* 09EF88 7F06A458 00408025 */ move $s0, $v0 +/* 09EF8C 7F06A45C 8FA40050 */ lw $a0, 0x50($sp) +/* 09EF90 7F06A460 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09EF94 7F06A464 3C050040 */ lui $a1, 0x40 +/* 09EF98 7F06A468 10400011 */ beqz $v0, .L7F06A4B0 +/* 09EF9C 7F06A46C 3C050040 */ lui $a1, 0x40 +/* 09EFA0 7F06A470 8FA9004C */ lw $t1, 0x4c($sp) +/* 09EFA4 7F06A474 3C028008 */ lui $v0, %hi(pPlayer) +/* 09EFA8 7F06A478 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09EFAC 7F06A47C AFA00044 */ sw $zero, 0x44($sp) +/* 09EFB0 7F06A480 00095080 */ sll $t2, $t1, 2 +/* 09EFB4 7F06A484 8FAD0054 */ lw $t5, 0x54($sp) +/* 09EFB8 7F06A488 8FAE0050 */ lw $t6, 0x50($sp) +/* 09EFBC 7F06A48C 004A5821 */ addu $t3, $v0, $t2 +/* 09EFC0 7F06A490 8D6C1130 */ lw $t4, 0x1130($t3) +/* 09EFC4 7F06A494 8C48089C */ lw $t0, 0x89c($v0) +/* 09EFC8 7F06A498 15AE0003 */ bne $t5, $t6, .L7F06A4A8 +/* 09EFCC 7F06A49C 010C1821 */ addu $v1, $t0, $t4 +/* 09EFD0 7F06A4A0 8C4F0C44 */ lw $t7, 0xc44($v0) +/* 09EFD4 7F06A4A4 006F1821 */ addu $v1, $v1, $t7 +.L7F06A4A8: +/* 09EFD8 7F06A4A8 1000000A */ b .L7F06A4D4 +/* 09EFDC 7F06A4AC AFA30048 */ sw $v1, 0x48($sp) +.L7F06A4B0: +/* 09EFE0 7F06A4B0 3C028008 */ lui $v0, %hi(pPlayer) +/* 09EFE4 7F06A4B4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09EFE8 7F06A4B8 8FB9004C */ lw $t9, 0x4c($sp) +/* 09EFEC 7F06A4BC 8C58089C */ lw $t8, 0x89c($v0) +/* 09EFF0 7F06A4C0 00194880 */ sll $t1, $t9, 2 +/* 09EFF4 7F06A4C4 00495021 */ addu $t2, $v0, $t1 +/* 09EFF8 7F06A4C8 AFB80044 */ sw $t8, 0x44($sp) +/* 09EFFC 7F06A4CC 8D4B1130 */ lw $t3, 0x1130($t2) +/* 09F000 7F06A4D0 AFAB0048 */ sw $t3, 0x48($sp) +.L7F06A4D4: +/* 09F004 7F06A4D4 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09F008 7F06A4D8 8FA40050 */ lw $a0, 0x50($sp) +/* 09F00C 7F06A4DC 14400011 */ bnez $v0, .L7F06A524 +/* 09F010 7F06A4E0 02002025 */ move $a0, $s0 +/* 09F014 7F06A4E4 8FA8003C */ lw $t0, 0x3c($sp) +/* 09F018 7F06A4E8 240D00C4 */ li $t5, 196 +/* 09F01C 7F06A4EC 240E00B1 */ li $t6, 177 +/* 09F020 7F06A4F0 240F0002 */ li $t7, 2 +/* 09F024 7F06A4F4 AFAF0014 */ sw $t7, 0x14($sp) +/* 09F028 7F06A4F8 AFAE0010 */ sw $t6, 0x10($sp) +/* 09F02C 7F06A4FC 8FA50044 */ lw $a1, 0x44($sp) +/* 09F030 7F06A500 05010003 */ bgez $t0, .L7F06A510 +/* 09F034 7F06A504 00086043 */ sra $t4, $t0, 1 +/* 09F038 7F06A508 25010001 */ addiu $at, $t0, 1 +/* 09F03C 7F06A50C 00016043 */ sra $t4, $at, 1 +.L7F06A510: +/* 09F040 7F06A510 01AC3023 */ subu $a2, $t5, $t4 +/* 09F044 7F06A514 00003825 */ move $a3, $zero +/* 09F048 7F06A518 0FC1A723 */ jal display_ammo_total_in_a1 +/* 09F04C 7F06A51C AFA00018 */ sw $zero, 0x18($sp) +/* 09F050 7F06A520 00408025 */ move $s0, $v0 +.L7F06A524: +/* 09F054 7F06A524 8FB80048 */ lw $t8, 0x48($sp) +/* 09F058 7F06A528 8FA40050 */ lw $a0, 0x50($sp) +/* 09F05C 7F06A52C 5F000006 */ bgtzl $t8, .L7F06A548 +/* 09F060 7F06A530 8FA6003C */ lw $a2, 0x3c($sp) +/* 09F064 7F06A534 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09F068 7F06A538 3C050040 */ lui $a1, 0x40 +/* 09F06C 7F06A53C 10400012 */ beqz $v0, .L7F06A588 +/* 09F070 7F06A540 00000000 */ nop +/* 09F074 7F06A544 8FA6003C */ lw $a2, 0x3c($sp) +.L7F06A548: +/* 09F078 7F06A548 240900B1 */ li $t1, 177 +/* 09F07C 7F06A54C 240A0002 */ li $t2, 2 +/* 09F080 7F06A550 24C60001 */ addiu $a2, $a2, 1 +/* 09F084 7F06A554 AFAA0014 */ sw $t2, 0x14($sp) +/* 09F088 7F06A558 AFA90010 */ sw $t1, 0x10($sp) +/* 09F08C 7F06A55C 02002025 */ move $a0, $s0 +/* 09F090 7F06A560 8FA50048 */ lw $a1, 0x48($sp) +/* 09F094 7F06A564 04C10003 */ bgez $a2, .L7F06A574 +/* 09F098 7F06A568 0006C843 */ sra $t9, $a2, 1 +/* 09F09C 7F06A56C 24C10001 */ addiu $at, $a2, 1 +/* 09F0A0 7F06A570 0001C843 */ sra $t9, $at, 1 +.L7F06A574: +/* 09F0A4 7F06A574 272600CB */ addiu $a2, $t9, 0xcb +/* 09F0A8 7F06A578 24070001 */ li $a3, 1 +/* 09F0AC 7F06A57C 0FC1A723 */ jal display_ammo_total_in_a1 +/* 09F0B0 7F06A580 AFA00018 */ sw $zero, 0x18($sp) +/* 09F0B4 7F06A584 00408025 */ move $s0, $v0 +.L7F06A588: +/* 09F0B8 7F06A588 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 09F0BC 7F06A58C 02002025 */ move $a0, $s0 +/* 09F0C0 7F06A590 00408025 */ move $s0, $v0 +.L7F06A594: +/* 09F0C4 7F06A594 8FBF002C */ lw $ra, 0x2c($sp) +/* 09F0C8 7F06A598 02001025 */ move $v0, $s0 +/* 09F0CC 7F06A59C 8FB00028 */ lw $s0, 0x28($sp) +/* 09F0D0 7F06A5A0 03E00008 */ jr $ra +/* 09F0D4 7F06A5A4 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void *set_unset_bitflags(s32 arg0, s32 arg1) { + // Node 0 + if (arg1 != 0) + { + // Node 1 + // Error: I don't know how to handle not! + return; + } + // Node 2 + (void *)0x80080000->unk-5F50->unk1128 = (s32) ((void *)0x80080000->unk-5F50->unk1128 | arg0); + return (void *)0x80080000->unk-5F50; +} + +#else +GLOBAL_ASM( +.text +glabel set_unset_bitflags +/* 09F0D8 7F06A5A8 10A00008 */ beqz $a1, .L7F06A5CC +/* 09F0DC 7F06A5AC 3C028008 */ lui $v0, %hi(pPlayer) +/* 09F0E0 7F06A5B0 3C028008 */ lui $v0, %hi(pPlayer) +/* 09F0E4 7F06A5B4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09F0E8 7F06A5B8 00807827 */ not $t7, $a0 +/* 09F0EC 7F06A5BC 8C4E1128 */ lw $t6, 0x1128($v0) +/* 09F0F0 7F06A5C0 01CFC024 */ and $t8, $t6, $t7 +/* 09F0F4 7F06A5C4 03E00008 */ jr $ra +/* 09F0F8 7F06A5C8 AC581128 */ sw $t8, 0x1128($v0) + +.L7F06A5CC: +/* 09F0FC 7F06A5CC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09F100 7F06A5D0 8C591128 */ lw $t9, 0x1128($v0) +/* 09F104 7F06A5D4 03244025 */ or $t0, $t9, $a0 +/* 09F108 7F06A5D8 AC481128 */ sw $t0, 0x1128($v0) +/* 09F10C 7F06A5DC 03E00008 */ jr $ra +/* 09F110 7F06A5E0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F06A5E4(void *arg0) { + f32 sp44; + f32 sp48; + f32 sp4C; + f32 sp50; + ?32 sp54; + void *phi_return_reg; + + // Node 0 + phi_return_reg = pPlayer; + if (pPlayer->unk1128 == 0) + { + // Node 1 + phi_return_reg = pPlayer; + if (pPlayer->unk29C4 == 0) + { + // Node 2 + sp54 = (?32) *arg0; + likely_generate_DL_for_image_declaration(&sp54, crosshairimage, 4, 0, 0); + sp4C = (f32) pPlayer->unkFE8; + sp44 = 16.0f; + sp48 = 16.0f; + sp50 = (f32) pPlayer->unkFEC; + if (get_screen_ratio() == 1) + { + // Node 3 + sp44 = (f32) (sp44 * 0.75f); + } + // Node 4 + *arg0 = sp54; + phi_return_reg = display_image_at_on_screen_coord(&sp54, &sp4C, &sp44, 0x20, 0x20, 0, 0, 1, 0xff, 0xff, 0xff, 0x6e, (s32) (0 < crosshairimage->unk6), 0); + } + } + // Node 5 + return phi_return_reg; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06A5E4 +/* 09F114 7F06A5E4 3C028008 */ lui $v0, %hi(pPlayer) +/* 09F118 7F06A5E8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09F11C 7F06A5EC 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 09F120 7F06A5F0 AFBF003C */ sw $ra, 0x3c($sp) +/* 09F124 7F06A5F4 AFA40058 */ sw $a0, 0x58($sp) +/* 09F128 7F06A5F8 8C4E1128 */ lw $t6, 0x1128($v0) +/* 09F12C 7F06A5FC 55C0003B */ bnezl $t6, .L7F06A6EC +/* 09F130 7F06A600 8FBF003C */ lw $ra, 0x3c($sp) +/* 09F134 7F06A604 8C4F29C4 */ lw $t7, 0x29c4($v0) +/* 09F138 7F06A608 3C058009 */ lui $a1, %hi(crosshairimage) +/* 09F13C 7F06A60C 24060004 */ li $a2, 4 +/* 09F140 7F06A610 15E00035 */ bnez $t7, .L7F06A6E8 +/* 09F144 7F06A614 00003825 */ move $a3, $zero +/* 09F148 7F06A618 8C990000 */ lw $t9, ($a0) +/* 09F14C 7F06A61C AFA00010 */ sw $zero, 0x10($sp) +/* 09F150 7F06A620 27A40054 */ addiu $a0, $sp, 0x54 +/* 09F154 7F06A624 8CA5D114 */ lw $a1, %lo(crosshairimage)($a1) +/* 09F158 7F06A628 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 09F15C 7F06A62C AFB90054 */ sw $t9, 0x54($sp) +/* 09F160 7F06A630 3C028008 */ lui $v0, %hi(pPlayer) +/* 09F164 7F06A634 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09F168 7F06A638 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 09F16C 7F06A63C 44810000 */ mtc1 $at, $f0 +/* 09F170 7F06A640 C4440FE8 */ lwc1 $f4, 0xfe8($v0) +/* 09F174 7F06A644 E7A4004C */ swc1 $f4, 0x4c($sp) +/* 09F178 7F06A648 C4460FEC */ lwc1 $f6, 0xfec($v0) +/* 09F17C 7F06A64C E7A00044 */ swc1 $f0, 0x44($sp) +/* 09F180 7F06A650 E7A00048 */ swc1 $f0, 0x48($sp) +/* 09F184 7F06A654 0FC293B8 */ jal get_screen_ratio +/* 09F188 7F06A658 E7A60050 */ swc1 $f6, 0x50($sp) +/* 09F18C 7F06A65C 24010001 */ li $at, 1 +/* 09F190 7F06A660 14410006 */ bne $v0, $at, .L7F06A67C +/* 09F194 7F06A664 27A40054 */ addiu $a0, $sp, 0x54 +/* 09F198 7F06A668 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 09F19C 7F06A66C 44815000 */ mtc1 $at, $f10 +/* 09F1A0 7F06A670 C7A80044 */ lwc1 $f8, 0x44($sp) +/* 09F1A4 7F06A674 460A4402 */ mul.s $f16, $f8, $f10 +/* 09F1A8 7F06A678 E7B00044 */ swc1 $f16, 0x44($sp) +.L7F06A67C: +/* 09F1AC 7F06A67C 3C0E8009 */ lui $t6, %hi(crosshairimage) +/* 09F1B0 7F06A680 8DCED114 */ lw $t6, %lo(crosshairimage)($t6) +/* 09F1B4 7F06A684 24080020 */ li $t0, 32 +/* 09F1B8 7F06A688 24090001 */ li $t1, 1 +/* 09F1BC 7F06A68C 240A00FF */ li $t2, 255 +/* 09F1C0 7F06A690 240B00FF */ li $t3, 255 +/* 09F1C4 7F06A694 240C00FF */ li $t4, 255 +/* 09F1C8 7F06A698 240D006E */ li $t5, 110 +/* 09F1CC 7F06A69C AFAD002C */ sw $t5, 0x2c($sp) +/* 09F1D0 7F06A6A0 AFAC0028 */ sw $t4, 0x28($sp) +/* 09F1D4 7F06A6A4 AFAB0024 */ sw $t3, 0x24($sp) +/* 09F1D8 7F06A6A8 AFAA0020 */ sw $t2, 0x20($sp) +/* 09F1DC 7F06A6AC AFA9001C */ sw $t1, 0x1c($sp) +/* 09F1E0 7F06A6B0 AFA80010 */ sw $t0, 0x10($sp) +/* 09F1E4 7F06A6B4 AFA00014 */ sw $zero, 0x14($sp) +/* 09F1E8 7F06A6B8 AFA00018 */ sw $zero, 0x18($sp) +/* 09F1EC 7F06A6BC 91CF0006 */ lbu $t7, 6($t6) +/* 09F1F0 7F06A6C0 AFA00034 */ sw $zero, 0x34($sp) +/* 09F1F4 7F06A6C4 27A5004C */ addiu $a1, $sp, 0x4c +/* 09F1F8 7F06A6C8 000FC02A */ slt $t8, $zero, $t7 +/* 09F1FC 7F06A6CC AFB80030 */ sw $t8, 0x30($sp) +/* 09F200 7F06A6D0 27A60044 */ addiu $a2, $sp, 0x44 +/* 09F204 7F06A6D4 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 09F208 7F06A6D8 24070020 */ li $a3, 32 +/* 09F20C 7F06A6DC 8FB90054 */ lw $t9, 0x54($sp) +/* 09F210 7F06A6E0 8FA80058 */ lw $t0, 0x58($sp) +/* 09F214 7F06A6E4 AD190000 */ sw $t9, ($t0) +.L7F06A6E8: +/* 09F218 7F06A6E8 8FBF003C */ lw $ra, 0x3c($sp) +.L7F06A6EC: +/* 09F21C 7F06A6EC 27BD0058 */ addiu $sp, $sp, 0x58 +/* 09F220 7F06A6F0 03E00008 */ jr $ra +/* 09F224 7F06A6F4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void inc_curplayer_hitcount_with_weapon(s32 arg1) { + ? temp_ret; + void *temp_v0; + + // Node 0 + temp_ret = bondwalkItemCheckBitflags(0x10000); + if (temp_ret != 0) + { + // Node 1 + temp_v0 = (pPlayersPerm + (arg1 * 4)); + *temp_v0 = (s32) (*temp_v0 + 1); + } + // Node 2 + return temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel inc_curplayer_hitcount_with_weapon +/* 09F228 7F06A6F8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 09F22C 7F06A6FC AFBF0014 */ sw $ra, 0x14($sp) +/* 09F230 7F06A700 AFA5001C */ sw $a1, 0x1c($sp) +/* 09F234 7F06A704 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09F238 7F06A708 3C050001 */ lui $a1, 1 +/* 09F23C 7F06A70C 10400008 */ beqz $v0, .L7F06A730 +/* 09F240 7F06A710 3C0E8008 */ lui $t6, %hi(pPlayersPerm) +/* 09F244 7F06A714 8FAF001C */ lw $t7, 0x1c($sp) +/* 09F248 7F06A718 8DCEA0B4 */ lw $t6, %lo(pPlayersPerm)($t6) +/* 09F24C 7F06A71C 000FC080 */ sll $t8, $t7, 2 +/* 09F250 7F06A720 01D81021 */ addu $v0, $t6, $t8 +/* 09F254 7F06A724 8C590000 */ lw $t9, ($v0) +/* 09F258 7F06A728 27280001 */ addiu $t0, $t9, 1 +/* 09F25C 7F06A72C AC480000 */ sw $t0, ($v0) +.L7F06A730: +/* 09F260 7F06A730 8FBF0014 */ lw $ra, 0x14($sp) +/* 09F264 7F06A734 27BD0018 */ addiu $sp, $sp, 0x18 +/* 09F268 7F06A738 03E00008 */ jr $ra +/* 09F26C 7F06A73C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_curplayer_shot_register(s32 arg0) { + // Node 0 + return *(pPlayersPerm + (arg0 * 4)); +} +#else +GLOBAL_ASM( +.text +glabel get_curplayer_shot_register +/* 09F270 7F06A740 3C0E8008 */ lui $t6, %hi(pPlayersPerm) +/* 09F274 7F06A744 8DCEA0B4 */ lw $t6, %lo(pPlayersPerm)($t6) +/* 09F278 7F06A748 00047880 */ sll $t7, $a0, 2 +/* 09F27C 7F06A74C 01CFC021 */ addu $t8, $t6, $t7 +/* 09F280 7F06A750 03E00008 */ jr $ra +/* 09F284 7F06A754 8F020000 */ lw $v0, ($t8) +) +#endif + + + + + +#ifdef NONMATCHING +void inc_cur_civilian_casualties(void) +{ + pPlayersPerm->killed_civilians++ + +} +#else +GLOBAL_ASM( +.text +glabel inc_cur_civilian_casualties +/* 09F288 7F06A758 3C028008 */ lui $v0, %hi(pPlayersPerm) +/* 09F28C 7F06A75C 8C42A0B4 */ lw $v0, %lo(pPlayersPerm)($v0) +/* 09F290 7F06A760 8C4E006C */ lw $t6, 0x6c($v0) +/* 09F294 7F06A764 25CF0001 */ addiu $t7, $t6, 1 +/* 09F298 7F06A768 03E00008 */ jr $ra +/* 09F29C 7F06A76C AC4F006C */ sw $t7, 0x6c($v0) +) +#endif + + + + + +#ifdef NONMATCHING +int get_civilian_casualties(void) +{ + return pPlayersPerm->killed_civilians; +} +#else +GLOBAL_ASM( +.text +glabel get_civilian_casualties +/* 09F2A0 7F06A770 3C0E8008 */ lui $t6, %hi(pPlayersPerm) +/* 09F2A4 7F06A774 8DCEA0B4 */ lw $t6, %lo(pPlayersPerm)($t6) +/* 09F2A8 7F06A778 03E00008 */ jr $ra +/* 09F2AC 7F06A77C 8DC2006C */ lw $v0, 0x6c($t6) +) +#endif + + + + + +#ifdef NONMATCHING +void *increment_num_kills_display_text_in_MP(void) { + s32 sp34; + ? sp40; + void *temp_ret; + s32 temp_v0; + s32 temp_a0; + s32 phi_a0; + void *phi_return_reg; + + // Node 0 + pPlayersPerm->killcount = (s32) (pPlayersPerm->killcount + 1); + pPlayer->field_29F8 = (s32) (pPlayer->field_29F8 + 1); + temp_ret = get_num_players(); + phi_return_reg = temp_ret; + if (temp_ret >= 2) + { + // Node 1 + sp34 = get_mission_timer(); + sprintf(&sp40, &aSD, get_textptr_for_textID(0x98da), pPlayersPerm->killcount); + display_string_in_lower_left_corner(&sp40); + if (pPlayersPerm->killcount >= 2) + { + // Node 2 + temp_v0 = (sp34 - pPlayer->last_kill_time); + if (pPlayersPerm->slowest2kills < temp_v0) + { + // Node 3 + pPlayersPerm->slowest2kills = temp_v0; + } + // Node 4 + if (temp_v0 < pPlayersPerm->fastest2kills) + { + // Node 5 + pPlayersPerm->fastest2kills = temp_v0; + } + } + // Node 6 + pPlayer->unk29F0 = (s32) pPlayer->unk29EC; + pPlayer->unk29EC = (s32) pPlayer->unk29E8; + pPlayer->unk29E8 = (s32) pPlayer->last_kill_time; + pPlayer->last_kill_time = sp34; + phi_a0 = 1; + if (-1 != pPlayer->unk29E8) + { + // Node 7 + phi_a0 = 1; + if ((pPlayer->last_kill_time - pPlayer->unk29E8) < 0x78) + { + // Node 8 + phi_a0 = 2; + if (-1 != pPlayer->unk29EC) + { + // Node 9 + phi_a0 = 2; + if ((pPlayer->last_kill_time - pPlayer->unk29EC) < 0x78) + { + // Node 10 + temp_a0 = (2 + 1); + phi_a0 = temp_a0; + if (-1 != pPlayer->unk29F0) + { + // Node 11 + phi_a0 = temp_a0; + if ((pPlayer->last_kill_time - pPlayer->unk29F0) < 0x78) + { + // Node 12 + phi_a0 = (temp_a0 + 1); + } + } + } + } + } + } + // Node 13 + phi_return_reg = pPlayer; + if (pPlayersPerm->most_killed_one_time < phi_a0) + { + // Node 14 + pPlayersPerm->most_killed_one_time = (s32) phi_a0; + phi_return_reg = pPlayer; + } + } + // Node 15 + return phi_return_reg; +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel increment_num_kills_display_text_in_MP +/* 09F2B0 7F06A780 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F2B4 7F06A784 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F2B8 7F06A788 27BDFEC0 */ addiu $sp, $sp, -0x140 +/* 09F2BC 7F06A78C AFBF001C */ sw $ra, 0x1c($sp) +/* 09F2C0 7F06A790 AFB00018 */ sw $s0, 0x18($sp) +/* 09F2C4 7F06A794 8C6E001C */ lw $t6, 0x1c($v1) +/* 09F2C8 7F06A798 3C108008 */ lui $s0, %hi(pPlayer) +/* 09F2CC 7F06A79C 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 09F2D0 7F06A7A0 25CF0001 */ addiu $t7, $t6, 1 +/* 09F2D4 7F06A7A4 AC6F001C */ sw $t7, 0x1c($v1) +/* 09F2D8 7F06A7A8 8E020000 */ lw $v0, ($s0) +/* 09F2DC 7F06A7AC 8C5829F8 */ lw $t8, 0x29f8($v0) +/* 09F2E0 7F06A7B0 27190001 */ addiu $t9, $t8, 1 +/* 09F2E4 7F06A7B4 0FC26919 */ jal get_num_players +/* 09F2E8 7F06A7B8 AC5929F8 */ sw $t9, 0x29f8($v0) +/* 09F2EC 7F06A7BC 28410002 */ slti $at, $v0, 2 +/* 09F2F0 7F06A7C0 54200054 */ bnezl $at, .L7F06A914 +/* 09F2F4 7F06A7C4 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F2F8 7F06A7C8 0FC22FEE */ jal get_mission_timer +/* 09F2FC 7F06A7CC 00000000 */ nop +/* 09F300 7F06A7D0 AFA20034 */ sw $v0, 0x34($sp) +/* 09F304 7F06A7D4 0FC30776 */ jal get_textptr_for_textID +/* 09F308 7F06A7D8 340498DA */ li $a0, 39130 +/* 09F30C 7F06A7DC 3C088008 */ lui $t0, %hi(pPlayersPerm) +/* 09F310 7F06A7E0 8D08A0B4 */ lw $t0, %lo(pPlayersPerm)($t0) +/* 09F314 7F06A7E4 3C058005 */ lui $a1, %hi(aSD) +/* 09F318 7F06A7E8 24A53BF8 */ addiu $a1, %lo(aSD) # addiu $a1, $a1, 0x3bf8 +/* 09F31C 7F06A7EC 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F320 7F06A7F0 00403025 */ move $a2, $v0 +/* 09F324 7F06A7F4 0C002B25 */ jal sprintf +/* 09F328 7F06A7F8 8D07001C */ lw $a3, 0x1c($t0) +/* 09F32C 7F06A7FC 0FC228F2 */ jal display_string_in_lower_left_corner +/* 09F330 7F06A800 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F334 7F06A804 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F338 7F06A808 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F33C 7F06A80C 8C69001C */ lw $t1, 0x1c($v1) +/* 09F340 7F06A810 29210002 */ slti $at, $t1, 2 +/* 09F344 7F06A814 54200012 */ bnezl $at, .L7F06A860 +/* 09F348 7F06A818 8E020000 */ lw $v0, ($s0) +/* 09F34C 7F06A81C 8E0B0000 */ lw $t3, ($s0) +/* 09F350 7F06A820 8FAA0034 */ lw $t2, 0x34($sp) +/* 09F354 7F06A824 8C6D0048 */ lw $t5, 0x48($v1) +/* 09F358 7F06A828 8D6C29E4 */ lw $t4, 0x29e4($t3) +/* 09F35C 7F06A82C 014C1023 */ subu $v0, $t2, $t4 +/* 09F360 7F06A830 01A2082A */ slt $at, $t5, $v0 +/* 09F364 7F06A834 50200005 */ beql $at, $zero, .L7F06A84C +/* 09F368 7F06A838 8C6E0044 */ lw $t6, 0x44($v1) +/* 09F36C 7F06A83C AC620048 */ sw $v0, 0x48($v1) +/* 09F370 7F06A840 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F374 7F06A844 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F378 7F06A848 8C6E0044 */ lw $t6, 0x44($v1) +.L7F06A84C: +/* 09F37C 7F06A84C 004E082A */ slt $at, $v0, $t6 +/* 09F380 7F06A850 50200003 */ beql $at, $zero, .L7F06A860 +/* 09F384 7F06A854 8E020000 */ lw $v0, ($s0) +/* 09F388 7F06A858 AC620044 */ sw $v0, 0x44($v1) +/* 09F38C 7F06A85C 8E020000 */ lw $v0, ($s0) +.L7F06A860: +/* 09F390 7F06A860 2406FFFF */ li $a2, -1 +/* 09F394 7F06A864 24040001 */ li $a0, 1 +/* 09F398 7F06A868 8C4F29EC */ lw $t7, 0x29ec($v0) +/* 09F39C 7F06A86C AC4F29F0 */ sw $t7, 0x29f0($v0) +/* 09F3A0 7F06A870 8E020000 */ lw $v0, ($s0) +/* 09F3A4 7F06A874 8C5829E8 */ lw $t8, 0x29e8($v0) +/* 09F3A8 7F06A878 AC5829EC */ sw $t8, 0x29ec($v0) +/* 09F3AC 7F06A87C 8E020000 */ lw $v0, ($s0) +/* 09F3B0 7F06A880 8C5929E4 */ lw $t9, 0x29e4($v0) +/* 09F3B4 7F06A884 AC5929E8 */ sw $t9, 0x29e8($v0) +/* 09F3B8 7F06A888 8E090000 */ lw $t1, ($s0) +/* 09F3BC 7F06A88C 8FA80034 */ lw $t0, 0x34($sp) +/* 09F3C0 7F06A890 AD2829E4 */ sw $t0, 0x29e4($t1) +/* 09F3C4 7F06A894 8E020000 */ lw $v0, ($s0) +/* 09F3C8 7F06A898 8C4529E8 */ lw $a1, 0x29e8($v0) +/* 09F3CC 7F06A89C 10C50015 */ beq $a2, $a1, .L7F06A8F4 +/* 09F3D0 7F06A8A0 00000000 */ nop +/* 09F3D4 7F06A8A4 8C4329E4 */ lw $v1, 0x29e4($v0) +/* 09F3D8 7F06A8A8 00655823 */ subu $t3, $v1, $a1 +/* 09F3DC 7F06A8AC 29610078 */ slti $at, $t3, 0x78 +/* 09F3E0 7F06A8B0 10200010 */ beqz $at, .L7F06A8F4 +/* 09F3E4 7F06A8B4 00000000 */ nop +/* 09F3E8 7F06A8B8 8C4529EC */ lw $a1, 0x29ec($v0) +/* 09F3EC 7F06A8BC 24040002 */ li $a0, 2 +/* 09F3F0 7F06A8C0 10C5000C */ beq $a2, $a1, .L7F06A8F4 +/* 09F3F4 7F06A8C4 00655023 */ subu $t2, $v1, $a1 +/* 09F3F8 7F06A8C8 29410078 */ slti $at, $t2, 0x78 +/* 09F3FC 7F06A8CC 10200009 */ beqz $at, .L7F06A8F4 +/* 09F400 7F06A8D0 00000000 */ nop +/* 09F404 7F06A8D4 8C4529F0 */ lw $a1, 0x29f0($v0) +/* 09F408 7F06A8D8 24840001 */ addiu $a0, $a0, 1 +/* 09F40C 7F06A8DC 10C50005 */ beq $a2, $a1, .L7F06A8F4 +/* 09F410 7F06A8E0 00656023 */ subu $t4, $v1, $a1 +/* 09F414 7F06A8E4 29810078 */ slti $at, $t4, 0x78 +/* 09F418 7F06A8E8 10200002 */ beqz $at, .L7F06A8F4 +/* 09F41C 7F06A8EC 00000000 */ nop +/* 09F420 7F06A8F0 24840001 */ addiu $a0, $a0, 1 +.L7F06A8F4: +/* 09F424 7F06A8F4 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F428 7F06A8F8 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F42C 7F06A8FC 8C6D0058 */ lw $t5, 0x58($v1) +/* 09F430 7F06A900 01A4082A */ slt $at, $t5, $a0 +/* 09F434 7F06A904 50200003 */ beql $at, $zero, .L7F06A914 +/* 09F438 7F06A908 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F43C 7F06A90C AC640058 */ sw $a0, 0x58($v1) +/* 09F440 7F06A910 8FBF001C */ lw $ra, 0x1c($sp) +.L7F06A914: +/* 09F444 7F06A914 8FB00018 */ lw $s0, 0x18($sp) +/* 09F448 7F06A918 27BD0140 */ addiu $sp, $sp, 0x140 +/* 09F44C 7F06A91C 03E00008 */ jr $ra +/* 09F450 7F06A920 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel increment_num_kills_display_text_in_MP +/* 09F2B0 7F06A780 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F2B4 7F06A784 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F2B8 7F06A788 27BDFEC0 */ addiu $sp, $sp, -0x140 +/* 09F2BC 7F06A78C AFBF001C */ sw $ra, 0x1c($sp) +/* 09F2C0 7F06A790 AFB00018 */ sw $s0, 0x18($sp) +/* 09F2C4 7F06A794 8C6E001C */ lw $t6, 0x1c($v1) +/* 09F2C8 7F06A798 3C108008 */ lui $s0, %hi(pPlayer) +/* 09F2CC 7F06A79C 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 09F2D0 7F06A7A0 25CF0001 */ addiu $t7, $t6, 1 +/* 09F2D4 7F06A7A4 AC6F001C */ sw $t7, 0x1c($v1) +/* 09F2D8 7F06A7A8 8E020000 */ lw $v0, ($s0) +/* 09F2DC 7F06A7AC 8C5829F8 */ lw $t8, 0x29f8($v0) +/* 09F2E0 7F06A7B0 27190001 */ addiu $t9, $t8, 1 +/* 09F2E4 7F06A7B4 0FC26919 */ jal get_num_players +/* 09F2E8 7F06A7B8 AC5929F8 */ sw $t9, 0x29f8($v0) +/* 09F2EC 7F06A7BC 28410002 */ slti $at, $v0, 2 +/* 09F2F0 7F06A7C0 54200054 */ bnezl $at, .L7F06A914 +/* 09F2F4 7F06A7C4 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F2F8 7F06A7C8 0FC22FEE */ jal get_mission_timer +/* 09F2FC 7F06A7CC 00000000 */ nop +/* 09F300 7F06A7D0 AFA20034 */ sw $v0, 0x34($sp) +/* 09F304 7F06A7D4 0FC30776 */ jal get_textptr_for_textID +/* 09F308 7F06A7D8 340498DA */ li $a0, 39130 +/* 09F30C 7F06A7DC 3C088008 */ lui $t0, %hi(pPlayersPerm) +/* 09F310 7F06A7E0 8D08A0B4 */ lw $t0, %lo(pPlayersPerm)($t0) +/* 09F314 7F06A7E4 3C058005 */ lui $a1, %hi(aSD) +/* 09F318 7F06A7E8 24A53BF8 */ addiu $a1, %lo(aSD) # addiu $a1, $a1, 0x3bf8 +/* 09F31C 7F06A7EC 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F320 7F06A7F0 00403025 */ move $a2, $v0 +/* 09F324 7F06A7F4 0C002B25 */ jal sprintf +/* 09F328 7F06A7F8 8D07001C */ lw $a3, 0x1c($t0) +/* 09F32C 7F06A7FC 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 09F330 7F06A800 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F334 7F06A804 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F338 7F06A808 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F33C 7F06A80C 8C69001C */ lw $t1, 0x1c($v1) +/* 09F340 7F06A810 29210002 */ slti $at, $t1, 2 +/* 09F344 7F06A814 54200012 */ bnezl $at, .L7F06A860 +/* 09F348 7F06A818 8E020000 */ lw $v0, ($s0) +/* 09F34C 7F06A81C 8E0B0000 */ lw $t3, ($s0) +/* 09F350 7F06A820 8FAA0034 */ lw $t2, 0x34($sp) +/* 09F354 7F06A824 8C6D0048 */ lw $t5, 0x48($v1) +/* 09F358 7F06A828 8D6C29E4 */ lw $t4, 0x29e4($t3) +/* 09F35C 7F06A82C 014C1023 */ subu $v0, $t2, $t4 +/* 09F360 7F06A830 01A2082A */ slt $at, $t5, $v0 +/* 09F364 7F06A834 50200005 */ beql $at, $zero, .L7F06A84C +/* 09F368 7F06A838 8C6E0044 */ lw $t6, 0x44($v1) +/* 09F36C 7F06A83C AC620048 */ sw $v0, 0x48($v1) +/* 09F370 7F06A840 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F374 7F06A844 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F378 7F06A848 8C6E0044 */ lw $t6, 0x44($v1) +.L7F06A84C: +/* 09F37C 7F06A84C 004E082A */ slt $at, $v0, $t6 +/* 09F380 7F06A850 50200003 */ beql $at, $zero, .L7F06A860 +/* 09F384 7F06A854 8E020000 */ lw $v0, ($s0) +/* 09F388 7F06A858 AC620044 */ sw $v0, 0x44($v1) +/* 09F38C 7F06A85C 8E020000 */ lw $v0, ($s0) +.L7F06A860: +/* 09F390 7F06A860 2406FFFF */ li $a2, -1 +/* 09F394 7F06A864 24040001 */ li $a0, 1 +/* 09F398 7F06A868 8C4F29EC */ lw $t7, 0x29ec($v0) +/* 09F39C 7F06A86C AC4F29F0 */ sw $t7, 0x29f0($v0) +/* 09F3A0 7F06A870 8E020000 */ lw $v0, ($s0) +/* 09F3A4 7F06A874 8C5829E8 */ lw $t8, 0x29e8($v0) +/* 09F3A8 7F06A878 AC5829EC */ sw $t8, 0x29ec($v0) +/* 09F3AC 7F06A87C 8E020000 */ lw $v0, ($s0) +/* 09F3B0 7F06A880 8C5929E4 */ lw $t9, 0x29e4($v0) +/* 09F3B4 7F06A884 AC5929E8 */ sw $t9, 0x29e8($v0) +/* 09F3B8 7F06A888 8E090000 */ lw $t1, ($s0) +/* 09F3BC 7F06A88C 8FA80034 */ lw $t0, 0x34($sp) +/* 09F3C0 7F06A890 AD2829E4 */ sw $t0, 0x29e4($t1) +/* 09F3C4 7F06A894 8E020000 */ lw $v0, ($s0) +/* 09F3C8 7F06A898 8C4529E8 */ lw $a1, 0x29e8($v0) +/* 09F3CC 7F06A89C 10C50015 */ beq $a2, $a1, .L7F06A8F4 +/* 09F3D0 7F06A8A0 00000000 */ nop +/* 09F3D4 7F06A8A4 8C4329E4 */ lw $v1, 0x29e4($v0) +/* 09F3D8 7F06A8A8 00655823 */ subu $t3, $v1, $a1 +/* 09F3DC 7F06A8AC 29610078 */ slti $at, $t3, 0x78 +/* 09F3E0 7F06A8B0 10200010 */ beqz $at, .L7F06A8F4 +/* 09F3E4 7F06A8B4 00000000 */ nop +/* 09F3E8 7F06A8B8 8C4529EC */ lw $a1, 0x29ec($v0) +/* 09F3EC 7F06A8BC 24040002 */ li $a0, 2 +/* 09F3F0 7F06A8C0 10C5000C */ beq $a2, $a1, .L7F06A8F4 +/* 09F3F4 7F06A8C4 00655023 */ subu $t2, $v1, $a1 +/* 09F3F8 7F06A8C8 29410078 */ slti $at, $t2, 0x78 +/* 09F3FC 7F06A8CC 10200009 */ beqz $at, .L7F06A8F4 +/* 09F400 7F06A8D0 00000000 */ nop +/* 09F404 7F06A8D4 8C4529F0 */ lw $a1, 0x29f0($v0) +/* 09F408 7F06A8D8 24840001 */ addiu $a0, $a0, 1 +/* 09F40C 7F06A8DC 10C50005 */ beq $a2, $a1, .L7F06A8F4 +/* 09F410 7F06A8E0 00656023 */ subu $t4, $v1, $a1 +/* 09F414 7F06A8E4 29810078 */ slti $at, $t4, 0x78 +/* 09F418 7F06A8E8 10200002 */ beqz $at, .L7F06A8F4 +/* 09F41C 7F06A8EC 00000000 */ nop +/* 09F420 7F06A8F0 24840001 */ addiu $a0, $a0, 1 +.L7F06A8F4: +/* 09F424 7F06A8F4 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F428 7F06A8F8 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F42C 7F06A8FC 8C6D0058 */ lw $t5, 0x58($v1) +/* 09F430 7F06A900 01A4082A */ slt $at, $t5, $a0 +/* 09F434 7F06A904 50200003 */ beql $at, $zero, .L7F06A914 +/* 09F438 7F06A908 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F43C 7F06A90C AC640058 */ sw $a0, 0x58($v1) +/* 09F440 7F06A910 8FBF001C */ lw $ra, 0x1c($sp) +.L7F06A914: +/* 09F444 7F06A914 8FB00018 */ lw $s0, 0x18($sp) +/* 09F448 7F06A918 27BD0140 */ addiu $sp, $sp, 0x140 +/* 09F44C 7F06A91C 03E00008 */ jr $ra +/* 09F450 7F06A920 00000000 */ nop +) +#endif +#endif + +s32 get_curplay_killcount(void) { + return pPlayersPerm->kill_count; +} + +void increment_num_times_killed_MwtGC(void){ + pPlayersPerm->killed_gg_owner_count++; +} + +s32 get_times_killed_mwtgx(void) { + return pPlayersPerm->killed_gg_owner_count; +} + +#ifdef NONMATCHING +void increment_num_deaths(void) +{ + char acStack256 [256] + pPlayer->deathcount = (s32) (pPlayer->deathcount + 1); + if (get_num_players() >= 2) + { + if (pPlayer->deathcount == 1) + { + sprintf(acStack256, get_textptr_for_textID(0x98db)); + } + else + { + sprintf(acStack256, &aSDS, get_textptr_for_textID(0x98dc), pPlayer->deathcount, get_textptr_for_textID(0x98dd)); + } + display_string_in_lower_left_corner(acStack256); + } +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel increment_num_deaths +/* 09F48C 7F06A95C 3C028008 */ lui $v0, %hi(pPlayer) +/* 09F490 7F06A960 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09F494 7F06A964 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 09F498 7F06A968 AFBF001C */ sw $ra, 0x1c($sp) +/* 09F49C 7F06A96C 8C4E29D8 */ lw $t6, 0x29d8($v0) +/* 09F4A0 7F06A970 25CF0001 */ addiu $t7, $t6, 1 +/* 09F4A4 7F06A974 0FC26919 */ jal get_num_players +/* 09F4A8 7F06A978 AC4F29D8 */ sw $t7, 0x29d8($v0) +/* 09F4AC 7F06A97C 28410002 */ slti $at, $v0, 2 +/* 09F4B0 7F06A980 1420001D */ bnez $at, .L7F06A9F8 +/* 09F4B4 7F06A984 3C188008 */ lui $t8, %hi(pPlayer) +/* 09F4B8 7F06A988 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 09F4BC 7F06A98C 24010001 */ li $at, 1 +/* 09F4C0 7F06A990 8F1929D8 */ lw $t9, 0x29d8($t8) +/* 09F4C4 7F06A994 17210008 */ bne $t9, $at, .L7F06A9B8 +/* 09F4C8 7F06A998 00000000 */ nop +/* 09F4CC 7F06A99C 0FC30776 */ jal get_textptr_for_textID +/* 09F4D0 7F06A9A0 340498DB */ li $a0, 39131 +/* 09F4D4 7F06A9A4 27A40030 */ addiu $a0, $sp, 0x30 +/* 09F4D8 7F06A9A8 0C002B25 */ jal sprintf +/* 09F4DC 7F06A9AC 00402825 */ move $a1, $v0 +/* 09F4E0 7F06A9B0 1000000F */ b .L7F06A9F0 +/* 09F4E4 7F06A9B4 00000000 */ nop +.L7F06A9B8: +/* 09F4E8 7F06A9B8 0FC30776 */ jal get_textptr_for_textID +/* 09F4EC 7F06A9BC 340498DC */ li $a0, 39132 +/* 09F4F0 7F06A9C0 AFA20028 */ sw $v0, 0x28($sp) +/* 09F4F4 7F06A9C4 0FC30776 */ jal get_textptr_for_textID +/* 09F4F8 7F06A9C8 340498DD */ li $a0, 39133 +/* 09F4FC 7F06A9CC 3C088008 */ lui $t0, %hi(pPlayer) +/* 09F500 7F06A9D0 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 09F504 7F06A9D4 3C058005 */ lui $a1, %hi(aSDS) +/* 09F508 7F06A9D8 24A53C00 */ addiu $a1, %lo(aSDS) # addiu $a1, $a1, 0x3c00 +/* 09F50C 7F06A9DC 8D0729D8 */ lw $a3, 0x29d8($t0) +/* 09F510 7F06A9E0 AFA20010 */ sw $v0, 0x10($sp) +/* 09F514 7F06A9E4 27A40030 */ addiu $a0, $sp, 0x30 +/* 09F518 7F06A9E8 0C002B25 */ jal sprintf +/* 09F51C 7F06A9EC 8FA60028 */ lw $a2, 0x28($sp) +.L7F06A9F0: +/* 09F520 7F06A9F0 0FC228F2 */ jal display_string_in_lower_left_corner +/* 09F524 7F06A9F4 27A40030 */ addiu $a0, $sp, 0x30 +.L7F06A9F8: +/* 09F528 7F06A9F8 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F52C 7F06A9FC 27BD0130 */ addiu $sp, $sp, 0x130 +/* 09F530 7F06AA00 03E00008 */ jr $ra +/* 09F534 7F06AA04 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel increment_num_deaths +/* 09F48C 7F06A95C 3C028008 */ lui $v0, %hi(pPlayer) +/* 09F490 7F06A960 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09F494 7F06A964 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 09F498 7F06A968 AFBF001C */ sw $ra, 0x1c($sp) +/* 09F49C 7F06A96C 8C4E29D8 */ lw $t6, 0x29d8($v0) +/* 09F4A0 7F06A970 25CF0001 */ addiu $t7, $t6, 1 +/* 09F4A4 7F06A974 0FC26919 */ jal get_num_players +/* 09F4A8 7F06A978 AC4F29D8 */ sw $t7, 0x29d8($v0) +/* 09F4AC 7F06A97C 28410002 */ slti $at, $v0, 2 +/* 09F4B0 7F06A980 1420001D */ bnez $at, .L7F06A9F8 +/* 09F4B4 7F06A984 3C188008 */ lui $t8, %hi(pPlayer) +/* 09F4B8 7F06A988 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 09F4BC 7F06A98C 24010001 */ li $at, 1 +/* 09F4C0 7F06A990 8F1929D8 */ lw $t9, 0x29d8($t8) +/* 09F4C4 7F06A994 17210008 */ bne $t9, $at, .L7F06A9B8 +/* 09F4C8 7F06A998 00000000 */ nop +/* 09F4CC 7F06A99C 0FC30776 */ jal get_textptr_for_textID +/* 09F4D0 7F06A9A0 340498DB */ li $a0, 39131 +/* 09F4D4 7F06A9A4 27A40030 */ addiu $a0, $sp, 0x30 +/* 09F4D8 7F06A9A8 0C002B25 */ jal sprintf +/* 09F4DC 7F06A9AC 00402825 */ move $a1, $v0 +/* 09F4E0 7F06A9B0 1000000F */ b .L7F06A9F0 +/* 09F4E4 7F06A9B4 00000000 */ nop +.L7F06A9B8: +/* 09F4E8 7F06A9B8 0FC30776 */ jal get_textptr_for_textID +/* 09F4EC 7F06A9BC 340498DC */ li $a0, 39132 +/* 09F4F0 7F06A9C0 AFA20028 */ sw $v0, 0x28($sp) +/* 09F4F4 7F06A9C4 0FC30776 */ jal get_textptr_for_textID +/* 09F4F8 7F06A9C8 340498DD */ li $a0, 39133 +/* 09F4FC 7F06A9CC 3C088008 */ lui $t0, %hi(pPlayer) +/* 09F500 7F06A9D0 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 09F504 7F06A9D4 3C058005 */ lui $a1, %hi(aSDS) +/* 09F508 7F06A9D8 24A53C00 */ addiu $a1, %lo(aSDS) # addiu $a1, $a1, 0x3c00 +/* 09F50C 7F06A9DC 8D0729D8 */ lw $a3, 0x29d8($t0) +/* 09F510 7F06A9E0 AFA20010 */ sw $v0, 0x10($sp) +/* 09F514 7F06A9E4 27A40030 */ addiu $a0, $sp, 0x30 +/* 09F518 7F06A9E8 0C002B25 */ jal sprintf +/* 09F51C 7F06A9EC 8FA60028 */ lw $a2, 0x28($sp) +.L7F06A9F0: +/* 09F520 7F06A9F0 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 09F524 7F06A9F4 27A40030 */ addiu $a0, $sp, 0x30 +.L7F06A9F8: +/* 09F528 7F06A9F8 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F52C 7F06A9FC 27BD0130 */ addiu $sp, $sp, 0x130 +/* 09F530 7F06AA00 03E00008 */ jr $ra +/* 09F534 7F06AA04 00000000 */ nop +) +#endif +#endif + +s32 get_curplayer_numdeaths(void) { + return pPlayer->deathcount; +} + +#ifdef NONMATCHING +void *increment_num_suicides_display_MP(void) { + s32 sp34; + ? sp40; + void *temp_ret; + s32 temp_v1; + s32 temp_v1_2; + s32 phi_v1; + void *phi_return_reg; + + // Node 0 + pPlayer->num_suicides = (s32) (pPlayer->num_suicides + 1); + temp_ret = get_num_players(); + phi_return_reg = temp_ret; + if (temp_ret >= 2) + { + // Node 1 + sp34 = get_mission_timer(); + sprintf(&sp40, &aSD_0, get_textptr_for_textID(0x98de), pPlayer->num_suicides); + display_string_in_lower_left_corner(&sp40); + if (pPlayersPerm->killcount >= 2) + { + // Node 2 + temp_v1 = (sp34 - pPlayer->last_kill_time); + if (pPlayersPerm->slowest2kills < temp_v1) + { + // Node 3 + pPlayersPerm->slowest2kills = temp_v1; + } + // Node 4 + if (temp_v1 < pPlayersPerm->fastest2kills) + { + // Node 5 + pPlayersPerm->fastest2kills = temp_v1; + } + } + // Node 6 + pPlayer->unk29F0 = (s32) pPlayer->unk29EC; + pPlayer->unk29EC = (s32) pPlayer->unk29E8; + pPlayer->unk29E8 = (s32) pPlayer->last_kill_time; + pPlayer->last_kill_time = sp34; + phi_v1 = 1; + if (-1 != pPlayer->unk29E8) + { + // Node 7 + phi_v1 = 1; + if ((pPlayer->last_kill_time - pPlayer->unk29E8) < 0x78) + { + // Node 8 + phi_v1 = 2; + if (-1 != pPlayer->unk29EC) + { + // Node 9 + phi_v1 = 2; + if ((pPlayer->last_kill_time - pPlayer->unk29EC) < 0x78) + { + // Node 10 + temp_v1_2 = (2 + 1); + phi_v1 = temp_v1_2; + if (-1 != pPlayer->unk29F0) + { + // Node 11 + phi_v1 = temp_v1_2; + if ((pPlayer->last_kill_time - pPlayer->unk29F0) < 0x78) + { + // Node 12 + phi_v1 = (temp_v1_2 + 1); + } + } + } + } + } + } + // Node 13 + phi_return_reg = pPlayersPerm; + if (pPlayersPerm->most_killed_one_time < phi_v1) + { + // Node 14 + pPlayersPerm->most_killed_one_time = (s32) phi_v1; + phi_return_reg = pPlayersPerm; + } + } + // Node 15 + return phi_return_reg; +} + +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel increment_num_suicides_display_MP +/* 09F548 7F06AA18 27BDFEC0 */ addiu $sp, $sp, -0x140 +/* 09F54C 7F06AA1C AFB00018 */ sw $s0, 0x18($sp) +/* 09F550 7F06AA20 3C108008 */ lui $s0, %hi(pPlayer) +/* 09F554 7F06AA24 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 09F558 7F06AA28 8E020000 */ lw $v0, ($s0) +/* 09F55C 7F06AA2C AFBF001C */ sw $ra, 0x1c($sp) +/* 09F560 7F06AA30 8C4E29DC */ lw $t6, 0x29dc($v0) +/* 09F564 7F06AA34 25CF0001 */ addiu $t7, $t6, 1 +/* 09F568 7F06AA38 0FC26919 */ jal get_num_players +/* 09F56C 7F06AA3C AC4F29DC */ sw $t7, 0x29dc($v0) +/* 09F570 7F06AA40 28410002 */ slti $at, $v0, 2 +/* 09F574 7F06AA44 54200052 */ bnezl $at, .L7F06AB90 +/* 09F578 7F06AA48 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F57C 7F06AA4C 0FC22FEE */ jal get_mission_timer +/* 09F580 7F06AA50 00000000 */ nop +/* 09F584 7F06AA54 AFA20034 */ sw $v0, 0x34($sp) +/* 09F588 7F06AA58 0FC30776 */ jal get_textptr_for_textID +/* 09F58C 7F06AA5C 340498DE */ li $a0, 39134 +/* 09F590 7F06AA60 8E180000 */ lw $t8, ($s0) +/* 09F594 7F06AA64 3C058005 */ lui $a1, %hi(aSD_0) +/* 09F598 7F06AA68 24A53C0C */ addiu $a1, %lo(aSD_0) # addiu $a1, $a1, 0x3c0c +/* 09F59C 7F06AA6C 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F5A0 7F06AA70 00403025 */ move $a2, $v0 +/* 09F5A4 7F06AA74 0C002B25 */ jal sprintf +/* 09F5A8 7F06AA78 8F0729DC */ lw $a3, 0x29dc($t8) +/* 09F5AC 7F06AA7C 0FC228F2 */ jal display_string_in_lower_left_corner +/* 09F5B0 7F06AA80 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F5B4 7F06AA84 3C078008 */ lui $a3, %hi(pPlayersPerm) +/* 09F5B8 7F06AA88 24E7A0B4 */ addiu $a3, %lo(pPlayersPerm) # addiu $a3, $a3, -0x5f4c +/* 09F5BC 7F06AA8C 8CE20000 */ lw $v0, ($a3) +/* 09F5C0 7F06AA90 8C59001C */ lw $t9, 0x1c($v0) +/* 09F5C4 7F06AA94 2B210002 */ slti $at, $t9, 2 +/* 09F5C8 7F06AA98 54200011 */ bnezl $at, .L7F06AAE0 +/* 09F5CC 7F06AA9C 8E020000 */ lw $v0, ($s0) +/* 09F5D0 7F06AAA0 8E090000 */ lw $t1, ($s0) +/* 09F5D4 7F06AAA4 8FA80034 */ lw $t0, 0x34($sp) +/* 09F5D8 7F06AAA8 8C4B0048 */ lw $t3, 0x48($v0) +/* 09F5DC 7F06AAAC 8D2A29E4 */ lw $t2, 0x29e4($t1) +/* 09F5E0 7F06AAB0 010A1823 */ subu $v1, $t0, $t2 +/* 09F5E4 7F06AAB4 0163082A */ slt $at, $t3, $v1 +/* 09F5E8 7F06AAB8 50200004 */ beql $at, $zero, .L7F06AACC +/* 09F5EC 7F06AABC 8C4C0044 */ lw $t4, 0x44($v0) +/* 09F5F0 7F06AAC0 AC430048 */ sw $v1, 0x48($v0) +/* 09F5F4 7F06AAC4 8CE20000 */ lw $v0, ($a3) +/* 09F5F8 7F06AAC8 8C4C0044 */ lw $t4, 0x44($v0) +.L7F06AACC: +/* 09F5FC 7F06AACC 006C082A */ slt $at, $v1, $t4 +/* 09F600 7F06AAD0 50200003 */ beql $at, $zero, .L7F06AAE0 +/* 09F604 7F06AAD4 8E020000 */ lw $v0, ($s0) +/* 09F608 7F06AAD8 AC430044 */ sw $v1, 0x44($v0) +/* 09F60C 7F06AADC 8E020000 */ lw $v0, ($s0) +.L7F06AAE0: +/* 09F610 7F06AAE0 2406FFFF */ li $a2, -1 +/* 09F614 7F06AAE4 24030001 */ li $v1, 1 +/* 09F618 7F06AAE8 8C4D29EC */ lw $t5, 0x29ec($v0) +/* 09F61C 7F06AAEC AC4D29F0 */ sw $t5, 0x29f0($v0) +/* 09F620 7F06AAF0 8E020000 */ lw $v0, ($s0) +/* 09F624 7F06AAF4 8C4E29E8 */ lw $t6, 0x29e8($v0) +/* 09F628 7F06AAF8 AC4E29EC */ sw $t6, 0x29ec($v0) +/* 09F62C 7F06AAFC 8E020000 */ lw $v0, ($s0) +/* 09F630 7F06AB00 8C4F29E4 */ lw $t7, 0x29e4($v0) +/* 09F634 7F06AB04 AC4F29E8 */ sw $t7, 0x29e8($v0) +/* 09F638 7F06AB08 8E190000 */ lw $t9, ($s0) +/* 09F63C 7F06AB0C 8FB80034 */ lw $t8, 0x34($sp) +/* 09F640 7F06AB10 AF3829E4 */ sw $t8, 0x29e4($t9) +/* 09F644 7F06AB14 8E020000 */ lw $v0, ($s0) +/* 09F648 7F06AB18 8C4529E8 */ lw $a1, 0x29e8($v0) +/* 09F64C 7F06AB1C 50C50016 */ beql $a2, $a1, .L7F06AB78 +/* 09F650 7F06AB20 8CE20000 */ lw $v0, ($a3) +/* 09F654 7F06AB24 8C4429E4 */ lw $a0, 0x29e4($v0) +/* 09F658 7F06AB28 00854823 */ subu $t1, $a0, $a1 +/* 09F65C 7F06AB2C 29210078 */ slti $at, $t1, 0x78 +/* 09F660 7F06AB30 50200011 */ beql $at, $zero, .L7F06AB78 +/* 09F664 7F06AB34 8CE20000 */ lw $v0, ($a3) +/* 09F668 7F06AB38 8C4529EC */ lw $a1, 0x29ec($v0) +/* 09F66C 7F06AB3C 24030002 */ li $v1, 2 +/* 09F670 7F06AB40 10C5000C */ beq $a2, $a1, .L7F06AB74 +/* 09F674 7F06AB44 00854023 */ subu $t0, $a0, $a1 +/* 09F678 7F06AB48 29010078 */ slti $at, $t0, 0x78 +/* 09F67C 7F06AB4C 5020000A */ beql $at, $zero, .L7F06AB78 +/* 09F680 7F06AB50 8CE20000 */ lw $v0, ($a3) +/* 09F684 7F06AB54 8C4529F0 */ lw $a1, 0x29f0($v0) +/* 09F688 7F06AB58 24630001 */ addiu $v1, $v1, 1 +/* 09F68C 7F06AB5C 10C50005 */ beq $a2, $a1, .L7F06AB74 +/* 09F690 7F06AB60 00855023 */ subu $t2, $a0, $a1 +/* 09F694 7F06AB64 29410078 */ slti $at, $t2, 0x78 +/* 09F698 7F06AB68 50200003 */ beql $at, $zero, .L7F06AB78 +/* 09F69C 7F06AB6C 8CE20000 */ lw $v0, ($a3) +/* 09F6A0 7F06AB70 24630001 */ addiu $v1, $v1, 1 +.L7F06AB74: +/* 09F6A4 7F06AB74 8CE20000 */ lw $v0, ($a3) +.L7F06AB78: +/* 09F6A8 7F06AB78 8C4B0058 */ lw $t3, 0x58($v0) +/* 09F6AC 7F06AB7C 0163082A */ slt $at, $t3, $v1 +/* 09F6B0 7F06AB80 50200003 */ beql $at, $zero, .L7F06AB90 +/* 09F6B4 7F06AB84 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F6B8 7F06AB88 AC430058 */ sw $v1, 0x58($v0) +/* 09F6BC 7F06AB8C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F06AB90: +/* 09F6C0 7F06AB90 8FB00018 */ lw $s0, 0x18($sp) +/* 09F6C4 7F06AB94 27BD0140 */ addiu $sp, $sp, 0x140 +/* 09F6C8 7F06AB98 03E00008 */ jr $ra +/* 09F6CC 7F06AB9C 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel increment_num_suicides_display_MP +/* 09F548 7F06AA18 27BDFEC0 */ addiu $sp, $sp, -0x140 +/* 09F54C 7F06AA1C AFB00018 */ sw $s0, 0x18($sp) +/* 09F550 7F06AA20 3C108008 */ lui $s0, %hi(pPlayer) +/* 09F554 7F06AA24 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 09F558 7F06AA28 8E020000 */ lw $v0, ($s0) +/* 09F55C 7F06AA2C AFBF001C */ sw $ra, 0x1c($sp) +/* 09F560 7F06AA30 8C4E29DC */ lw $t6, 0x29dc($v0) +/* 09F564 7F06AA34 25CF0001 */ addiu $t7, $t6, 1 +/* 09F568 7F06AA38 0FC26919 */ jal get_num_players +/* 09F56C 7F06AA3C AC4F29DC */ sw $t7, 0x29dc($v0) +/* 09F570 7F06AA40 28410002 */ slti $at, $v0, 2 +/* 09F574 7F06AA44 54200052 */ bnezl $at, .L7F06AB90 +/* 09F578 7F06AA48 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F57C 7F06AA4C 0FC22FEE */ jal get_mission_timer +/* 09F580 7F06AA50 00000000 */ nop +/* 09F584 7F06AA54 AFA20034 */ sw $v0, 0x34($sp) +/* 09F588 7F06AA58 0FC30776 */ jal get_textptr_for_textID +/* 09F58C 7F06AA5C 340498DE */ li $a0, 39134 +/* 09F590 7F06AA60 8E180000 */ lw $t8, ($s0) +/* 09F594 7F06AA64 3C058005 */ lui $a1, %hi(aSD_0) +/* 09F598 7F06AA68 24A53C0C */ addiu $a1, %lo(aSD_0) # addiu $a1, $a1, 0x3c0c +/* 09F59C 7F06AA6C 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F5A0 7F06AA70 00403025 */ move $a2, $v0 +/* 09F5A4 7F06AA74 0C002B25 */ jal sprintf +/* 09F5A8 7F06AA78 8F0729DC */ lw $a3, 0x29dc($t8) +/* 09F5AC 7F06AA7C 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 09F5B0 7F06AA80 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F5B4 7F06AA84 3C078008 */ lui $a3, %hi(pPlayersPerm) +/* 09F5B8 7F06AA88 24E7A0B4 */ addiu $a3, %lo(pPlayersPerm) # addiu $a3, $a3, -0x5f4c +/* 09F5BC 7F06AA8C 8CE20000 */ lw $v0, ($a3) +/* 09F5C0 7F06AA90 8C59001C */ lw $t9, 0x1c($v0) +/* 09F5C4 7F06AA94 2B210002 */ slti $at, $t9, 2 +/* 09F5C8 7F06AA98 54200011 */ bnezl $at, .L7F06AAE0 +/* 09F5CC 7F06AA9C 8E020000 */ lw $v0, ($s0) +/* 09F5D0 7F06AAA0 8E090000 */ lw $t1, ($s0) +/* 09F5D4 7F06AAA4 8FA80034 */ lw $t0, 0x34($sp) +/* 09F5D8 7F06AAA8 8C4B0048 */ lw $t3, 0x48($v0) +/* 09F5DC 7F06AAAC 8D2A29E4 */ lw $t2, 0x29e4($t1) +/* 09F5E0 7F06AAB0 010A1823 */ subu $v1, $t0, $t2 +/* 09F5E4 7F06AAB4 0163082A */ slt $at, $t3, $v1 +/* 09F5E8 7F06AAB8 50200004 */ beql $at, $zero, .L7F06AACC +/* 09F5EC 7F06AABC 8C4C0044 */ lw $t4, 0x44($v0) +/* 09F5F0 7F06AAC0 AC430048 */ sw $v1, 0x48($v0) +/* 09F5F4 7F06AAC4 8CE20000 */ lw $v0, ($a3) +/* 09F5F8 7F06AAC8 8C4C0044 */ lw $t4, 0x44($v0) +.L7F06AACC: +/* 09F5FC 7F06AACC 006C082A */ slt $at, $v1, $t4 +/* 09F600 7F06AAD0 50200003 */ beql $at, $zero, .L7F06AAE0 +/* 09F604 7F06AAD4 8E020000 */ lw $v0, ($s0) +/* 09F608 7F06AAD8 AC430044 */ sw $v1, 0x44($v0) +/* 09F60C 7F06AADC 8E020000 */ lw $v0, ($s0) +.L7F06AAE0: +/* 09F610 7F06AAE0 2406FFFF */ li $a2, -1 +/* 09F614 7F06AAE4 24030001 */ li $v1, 1 +/* 09F618 7F06AAE8 8C4D29EC */ lw $t5, 0x29ec($v0) +/* 09F61C 7F06AAEC AC4D29F0 */ sw $t5, 0x29f0($v0) +/* 09F620 7F06AAF0 8E020000 */ lw $v0, ($s0) +/* 09F624 7F06AAF4 8C4E29E8 */ lw $t6, 0x29e8($v0) +/* 09F628 7F06AAF8 AC4E29EC */ sw $t6, 0x29ec($v0) +/* 09F62C 7F06AAFC 8E020000 */ lw $v0, ($s0) +/* 09F630 7F06AB00 8C4F29E4 */ lw $t7, 0x29e4($v0) +/* 09F634 7F06AB04 AC4F29E8 */ sw $t7, 0x29e8($v0) +/* 09F638 7F06AB08 8E190000 */ lw $t9, ($s0) +/* 09F63C 7F06AB0C 8FB80034 */ lw $t8, 0x34($sp) +/* 09F640 7F06AB10 AF3829E4 */ sw $t8, 0x29e4($t9) +/* 09F644 7F06AB14 8E020000 */ lw $v0, ($s0) +/* 09F648 7F06AB18 8C4529E8 */ lw $a1, 0x29e8($v0) +/* 09F64C 7F06AB1C 50C50016 */ beql $a2, $a1, .L7F06AB78 +/* 09F650 7F06AB20 8CE20000 */ lw $v0, ($a3) +/* 09F654 7F06AB24 8C4429E4 */ lw $a0, 0x29e4($v0) +/* 09F658 7F06AB28 00854823 */ subu $t1, $a0, $a1 +/* 09F65C 7F06AB2C 29210078 */ slti $at, $t1, 0x78 +/* 09F660 7F06AB30 50200011 */ beql $at, $zero, .L7F06AB78 +/* 09F664 7F06AB34 8CE20000 */ lw $v0, ($a3) +/* 09F668 7F06AB38 8C4529EC */ lw $a1, 0x29ec($v0) +/* 09F66C 7F06AB3C 24030002 */ li $v1, 2 +/* 09F670 7F06AB40 10C5000C */ beq $a2, $a1, .L7F06AB74 +/* 09F674 7F06AB44 00854023 */ subu $t0, $a0, $a1 +/* 09F678 7F06AB48 29010078 */ slti $at, $t0, 0x78 +/* 09F67C 7F06AB4C 5020000A */ beql $at, $zero, .L7F06AB78 +/* 09F680 7F06AB50 8CE20000 */ lw $v0, ($a3) +/* 09F684 7F06AB54 8C4529F0 */ lw $a1, 0x29f0($v0) +/* 09F688 7F06AB58 24630001 */ addiu $v1, $v1, 1 +/* 09F68C 7F06AB5C 10C50005 */ beq $a2, $a1, .L7F06AB74 +/* 09F690 7F06AB60 00855023 */ subu $t2, $a0, $a1 +/* 09F694 7F06AB64 29410078 */ slti $at, $t2, 0x78 +/* 09F698 7F06AB68 50200003 */ beql $at, $zero, .L7F06AB78 +/* 09F69C 7F06AB6C 8CE20000 */ lw $v0, ($a3) +/* 09F6A0 7F06AB70 24630001 */ addiu $v1, $v1, 1 +.L7F06AB74: +/* 09F6A4 7F06AB74 8CE20000 */ lw $v0, ($a3) +.L7F06AB78: +/* 09F6A8 7F06AB78 8C4B0058 */ lw $t3, 0x58($v0) +/* 09F6AC 7F06AB7C 0163082A */ slt $at, $t3, $v1 +/* 09F6B0 7F06AB80 50200003 */ beql $at, $zero, .L7F06AB90 +/* 09F6B4 7F06AB84 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F6B8 7F06AB88 AC430058 */ sw $v1, 0x58($v0) +/* 09F6BC 7F06AB8C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F06AB90: +/* 09F6C0 7F06AB90 8FB00018 */ lw $s0, 0x18($sp) +/* 09F6C4 7F06AB94 27BD0140 */ addiu $sp, $sp, 0x140 +/* 09F6C8 7F06AB98 03E00008 */ jr $ra +/* 09F6CC 7F06AB9C 00000000 */ nop +) +#endif +#endif + + +s32 get_curplayer_numsuicides(void) { + return pPlayer->num_suicides; +} diff --git a/src/game/bondwalk.h b/src/game/bondwalk.h new file mode 100644 index 0000000..c4bd69e --- /dev/null +++ b/src/game/bondwalk.h @@ -0,0 +1,76 @@ +#ifndef _BONDWALK_H_ +#define _BONDWALK_H_ +#include "ultra64.h" +#include "game/chrobjdata.h" +#include "bondconstants.h" + +struct weapon_stats +{ + f32 field_0; + f32 pos_x; + f32 pos_y; + f32 pos_z; + f32 field_10; + f32 field_14; + f32 field_18; + s32 ammotype; + s16 mag_size; + u8 automatic_firing_rate; + s8 single_firing_rate; + u8 objects_shoot_through; + u8 sound_trigger_rate; + u16 sound; + struct Gitemheader * ptr_cartridge_struct; + f32 destruction_amount; + f32 inaccuracy; + f32 zoom; + f32 field_38; + f32 field_3C; + f32 sway; + s32 recoilspeed; + f32 recoil_back; + f32 recoil_up; + f32 bolt_recoil_back; + f32 loudness; + f32 loudness2; + f32 field_5C; + f32 field_60; + f32 field_64; + f32 field_68; + u32 bitflags; +}; + +struct gitem_data_struct +{ + struct Gitemheader * item_header; + char * item_file_name; + s32 has_no_model; + struct weapon_stats * item_weapon_stats; + u16 upper_watch_text; + u16 lower_watch_text; + f32 watch_pos_x; + f32 watch_pos_y; + f32 watch_pos_z; + f32 x_rotation; + f32 y_rotation; + u16 weapon_of_choice_text; + u16 watch_equipment_text; + f32 equip_watch_x; + f32 equip_watch_y; + f32 equip_watch_z; +}; + +struct ejected_cart { + struct Gitemheader * header; + char * text; +}; + +f32 bondwalkGetItemField68(ITEM_IDS item); +u32 bondwalkItemCheckBitflags(ITEM_IDS item, u32 mask); + +void bondwalkFireBothHands(void); + +f32 sub_GAME_7F0649AC(s32 param_1); + +f32 sub_GAME_7F05DCB8(HANDEDNESS hand); +#endif diff --git a/src/game/bondwalk2.c b/src/game/bondwalk2.c new file mode 100644 index 0000000..1d27ab5 --- /dev/null +++ b/src/game/bondwalk2.c @@ -0,0 +1,611 @@ +#include "ultra64.h" + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F06ABB0(void *arg0, void *arg1, void *arg2, s32 arg3, s32 arg4, s3 2 arg5, s32 arg6, s32 arg7) { + void *sp0; + void *spC; + void *temp_v0; + s32 temp_f18; + s32 temp_f8; + s32 temp_f4; + s32 temp_f10; + void *temp_v0_2; + void *temp_v0_4; + void *temp_v0_3; + void *temp_v0_5; + void *temp_v1; + s32 phi_a1; + s32 phi_a2; + s32 phi_a3; + s32 phi_t0; + s32 phi_v1; + s32 phi_a0; + void *phi_v0; + s32 phi_a3_2; + s32 phi_t0_2; + s32 phi_v1_2; + s32 phi_a0_2; + s32 phi_a3_3; + s32 phi_t0_3; + + // Node 0 + if (0.0f < *arg2) + { + // Node 1 + if (0.0f < arg2->unk4) + { + // Node 2 + **arg0 = 0xba001301; + *arg0->unk4 = 0; + temp_v0 = (*arg0 + 8); + temp_f18 = (s32) ((*arg1 - *arg2) * 4.0f); + temp_f8 = (s32) ((arg1->unk4 - arg2->unk4) * 4.0f); + temp_f4 = (s32) ((*arg2 + *arg1) * 4.0f); + temp_f10 = (s32) ((arg2->unk4 + arg1->unk4) * 4.0f); + phi_v0 = temp_v0; + if (temp_f4 >= 0) + { + // Node 3 + phi_v0 = temp_v0; + if (temp_f10 >= 0) + { + // Node 4 + phi_a1 = temp_f18; + phi_a3_3 = 0; + phi_t0_3 = 0; + if (temp_f18 < 0) + { + // Node 5 + if (arg5 != 0) + { + // Node 6 + phi_a1 = 0; + phi_a3_3 = 0; + phi_t0_3 = ((s32) ((-temp_f18 * arg4) << 5) / (s32) (temp_f4 - temp_f18)); + } + else + { + // Node 7 + phi_a1 = 0; + phi_a3_3 = ((s32) ((-temp_f18 * arg3) << 5) / (s32) (temp_f4 - temp_f18)); + phi_t0_3 = 0; + } + } + // Node 8 + phi_a2 = temp_f8; + phi_a3_2 = phi_a3_3; + phi_t0_2 = phi_t0_3; + if (temp_f8 < 0) + { + // Node 9 + if (arg5 != 0) + { + // Node 10 + phi_a2 = 0; + phi_a3_2 = (phi_a3_3 + ((s32) ((-temp_f8 * arg3) << 5) / (s32) (temp_f10 - temp_f8))); + phi_t0_2 = phi_t0_3; + } + else + { + // Node 11 + phi_a2 = 0; + phi_a3_2 = phi_a3_3; + phi_t0_2 = (phi_t0_3 + ((s32) ((-temp_f8 * arg4) << 5) / (s32) (temp_f10 - temp_f8))); + } + } + // Node 12 + if (arg5 != 0) + { + // Node 13 + phi_v1_2 = (s32) (((f32) arg3 / (arg2->unk4 + arg2->unk4 )) * 1024.0f); + phi_a0_2 = (s32) (((f32) arg4 / (*arg2 + *arg2)) * 1024. 0f); + } + else + { + // Node 14 + phi_v1_2 = (s32) (((f32) arg3 / (*arg2 + *arg2)) * 1024. 0f); + phi_a0_2 = (s32) (((f32) arg4 / (arg2->unk4 + arg2->unk4 )) * 1024.0f); + } + // Node 15 + phi_a3 = phi_a3_2; + phi_v1 = phi_v1_2; + if (arg6 != 0) + { + // Node 16 + phi_a3 = (((arg3 + -1) << 5) - phi_a3_2); + phi_v1 = (0x10000 - phi_v1_2); + } + // Node 17 + phi_t0 = phi_t0_2; + phi_a0 = phi_a0_2; + if (arg7 != 0) + { + // Node 18 + phi_t0 = (((arg4 + -1) << 5) - phi_t0_2); + phi_a0 = (0x10000 - phi_a0_2); + } + // Node 19 + if (arg5 != 0) + { + // Node 20 + *temp_v0 = (s32) ((((temp_f4 & 0xfff) << 0xc) | 0xe50000 00) | (temp_f10 & 0xfff)); + temp_v0->unk4 = (s32) (((phi_a1 & 0xfff) << 0xc) | (phi_ a2 & 0xfff)); + temp_v0_2 = (temp_v0 + 8); + *temp_v0_2 = 0xb4000000; + temp_v0_2->unk4 = (s32) ((phi_a3 << 0x10) | (phi_t0 & 0x ffff)); + temp_v0_4 = (temp_v0_2 + 8); + spC = temp_v0_4; + *spC = 0xb3000000; + spC->unk4 = (s32) ((phi_v1 << 0x10) | (phi_a0 & 0xffff)) ; + phi_v0 = (temp_v0_4 + 8); + } + else + { + // Node 21 + *temp_v0 = (s32) ((((temp_f4 & 0xfff) << 0xc) | 0xe40000 00) | (temp_f10 & 0xfff)); + temp_v0->unk4 = (s32) (((phi_a1 & 0xfff) << 0xc) | (phi_ a2 & 0xfff)); + temp_v0_3 = (temp_v0 + 8); + *temp_v0_3 = 0xb4000000; + temp_v0_3->unk4 = (s32) ((phi_a3 << 0x10) | (phi_t0 & 0x ffff)); + temp_v0_5 = (temp_v0_3 + 8); + sp0 = temp_v0_5; + *sp0 = 0xb3000000; + sp0->unk4 = (s32) ((phi_v1 << 0x10) | (phi_a0 & 0xffff)) ; + phi_v0 = (temp_v0_5 + 8); + } + } + } + // Node 22 + temp_v1 = phi_v0; + temp_v1->unk4 = 0x80000; + *temp_v1 = 0xba001301; + *arg0 = (void *) (phi_v0 + 8); + } + } + // Node 23 + return 0.0f; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06ABB0 +/* 09F6E0 7F06ABB0 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 09F6E4 7F06ABB4 AFA40040 */ sw $a0, 0x40($sp) +/* 09F6E8 7F06ABB8 AFA50044 */ sw $a1, 0x44($sp) +/* 09F6EC 7F06ABBC AFA60048 */ sw $a2, 0x48($sp) +/* 09F6F0 7F06ABC0 AFA7004C */ sw $a3, 0x4c($sp) +/* 09F6F4 7F06ABC4 44800000 */ mtc1 $zero, $f0 +/* 09F6F8 7F06ABC8 C4C40000 */ lwc1 $f4, ($a2) +/* 09F6FC 7F06ABCC 4604003C */ c.lt.s $f0, $f4 +/* 09F700 7F06ABD0 00000000 */ nop +/* 09F704 7F06ABD4 45000102 */ bc1f .L7F06AFE0 +/* 09F708 7F06ABD8 00000000 */ nop +/* 09F70C 7F06ABDC C4C60004 */ lwc1 $f6, 4($a2) +/* 09F710 7F06ABE0 3C0BBA00 */ lui $t3, (0xBA001301 >> 16) # lui $t3, 0xba00 +/* 09F714 7F06ABE4 4606003C */ c.lt.s $f0, $f6 +/* 09F718 7F06ABE8 00000000 */ nop +/* 09F71C 7F06ABEC 450000FC */ bc1f .L7F06AFE0 +/* 09F720 7F06ABF0 00000000 */ nop +/* 09F724 7F06ABF4 8C820000 */ lw $v0, ($a0) +/* 09F728 7F06ABF8 356B1301 */ ori $t3, (0xBA001301 & 0xFFFF) # ori $t3, $t3, 0x1301 +/* 09F72C 7F06ABFC 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 09F730 7F06AC00 00401825 */ move $v1, $v0 +/* 09F734 7F06AC04 AC6B0000 */ sw $t3, ($v1) +/* 09F738 7F06AC08 AC600004 */ sw $zero, 4($v1) +/* 09F73C 7F06AC0C 8FB90048 */ lw $t9, 0x48($sp) +/* 09F740 7F06AC10 8FB80044 */ lw $t8, 0x44($sp) +/* 09F744 7F06AC14 44818000 */ mtc1 $at, $f16 +/* 09F748 7F06AC18 C7200000 */ lwc1 $f0, ($t9) +/* 09F74C 7F06AC1C C70C0000 */ lwc1 $f12, ($t8) +/* 09F750 7F06AC20 C7220004 */ lwc1 $f2, 4($t9) +/* 09F754 7F06AC24 C70E0004 */ lwc1 $f14, 4($t8) +/* 09F758 7F06AC28 46006201 */ sub.s $f8, $f12, $f0 +/* 09F75C 7F06AC2C 00003825 */ move $a3, $zero +/* 09F760 7F06AC30 00004025 */ move $t0, $zero +/* 09F764 7F06AC34 46027101 */ sub.s $f4, $f14, $f2 +/* 09F768 7F06AC38 46104282 */ mul.s $f10, $f8, $f16 +/* 09F76C 7F06AC3C 24420008 */ addiu $v0, $v0, 8 +/* 09F770 7F06AC40 46102182 */ mul.s $f6, $f4, $f16 +/* 09F774 7F06AC44 4600548D */ trunc.w.s $f18, $f10 +/* 09F778 7F06AC48 460C0280 */ add.s $f10, $f0, $f12 +/* 09F77C 7F06AC4C 44059000 */ mfc1 $a1, $f18 +/* 09F780 7F06AC50 4600320D */ trunc.w.s $f8, $f6 +/* 09F784 7F06AC54 46105482 */ mul.s $f18, $f10, $f16 +/* 09F788 7F06AC58 460E1180 */ add.s $f6, $f2, $f14 +/* 09F78C 7F06AC5C 44064000 */ mfc1 $a2, $f8 +/* 09F790 7F06AC60 46103202 */ mul.s $f8, $f6, $f16 +/* 09F794 7F06AC64 4600910D */ trunc.w.s $f4, $f18 +/* 09F798 7F06AC68 44092000 */ mfc1 $t1, $f4 +/* 09F79C 7F06AC6C 4600428D */ trunc.w.s $f10, $f8 +/* 09F7A0 7F06AC70 440A5000 */ mfc1 $t2, $f10 +/* 09F7A4 7F06AC74 052200D4 */ bltzl $t1, .L7F06AFC8 +/* 09F7A8 7F06AC78 00401825 */ move $v1, $v0 +/* 09F7AC 7F06AC7C 054200D2 */ bltzl $t2, .L7F06AFC8 +/* 09F7B0 7F06AC80 00401825 */ move $v1, $v0 +/* 09F7B4 7F06AC84 04A1002A */ bgez $a1, .L7F06AD30 +/* 09F7B8 7F06AC88 8FAC0054 */ lw $t4, 0x54($sp) +/* 09F7BC 7F06AC8C 11800015 */ beqz $t4, .L7F06ACE4 +/* 09F7C0 7F06AC90 8FAF004C */ lw $t7, 0x4c($sp) +/* 09F7C4 7F06AC94 8FAD0050 */ lw $t5, 0x50($sp) +/* 09F7C8 7F06AC98 0005C823 */ negu $t9, $a1 +/* 09F7CC 7F06AC9C 0125C023 */ subu $t8, $t1, $a1 +/* 09F7D0 7F06ACA0 032D0019 */ multu $t9, $t5 +/* 09F7D4 7F06ACA4 00007812 */ mflo $t7 +/* 09F7D8 7F06ACA8 000F7140 */ sll $t6, $t7, 5 +/* 09F7DC 7F06ACAC 00000000 */ nop +/* 09F7E0 7F06ACB0 01D8001A */ div $zero, $t6, $t8 +/* 09F7E4 7F06ACB4 00004012 */ mflo $t0 +/* 09F7E8 7F06ACB8 17000002 */ bnez $t8, .L7F06ACC4 +/* 09F7EC 7F06ACBC 00000000 */ nop +/* 09F7F0 7F06ACC0 0007000D */ break 7 +.L7F06ACC4: +/* 09F7F4 7F06ACC4 2401FFFF */ li $at, -1 +/* 09F7F8 7F06ACC8 17010004 */ bne $t8, $at, .L7F06ACDC +/* 09F7FC 7F06ACCC 3C018000 */ lui $at, 0x8000 +/* 09F800 7F06ACD0 15C10002 */ bne $t6, $at, .L7F06ACDC +/* 09F804 7F06ACD4 00000000 */ nop +/* 09F808 7F06ACD8 0006000D */ break 6 +.L7F06ACDC: +/* 09F80C 7F06ACDC 10000014 */ b .L7F06AD30 +/* 09F810 7F06ACE0 00002825 */ move $a1, $zero +.L7F06ACE4: +/* 09F814 7F06ACE4 0005C823 */ negu $t9, $a1 +/* 09F818 7F06ACE8 032F0019 */ multu $t9, $t7 +/* 09F81C 7F06ACEC 0125C823 */ subu $t9, $t1, $a1 +/* 09F820 7F06ACF0 8FAD0050 */ lw $t5, 0x50($sp) +/* 09F824 7F06ACF4 00007012 */ mflo $t6 +/* 09F828 7F06ACF8 000EC140 */ sll $t8, $t6, 5 +/* 09F82C 7F06ACFC 00000000 */ nop +/* 09F830 7F06AD00 0319001A */ div $zero, $t8, $t9 +/* 09F834 7F06AD04 00003812 */ mflo $a3 +/* 09F838 7F06AD08 17200002 */ bnez $t9, .L7F06AD14 +/* 09F83C 7F06AD0C 00000000 */ nop +/* 09F840 7F06AD10 0007000D */ break 7 +.L7F06AD14: +/* 09F844 7F06AD14 2401FFFF */ li $at, -1 +/* 09F848 7F06AD18 17210004 */ bne $t9, $at, .L7F06AD2C +/* 09F84C 7F06AD1C 3C018000 */ lui $at, 0x8000 +/* 09F850 7F06AD20 17010002 */ bne $t8, $at, .L7F06AD2C +/* 09F854 7F06AD24 00000000 */ nop +/* 09F858 7F06AD28 0006000D */ break 6 +.L7F06AD2C: +/* 09F85C 7F06AD2C 00002825 */ move $a1, $zero +.L7F06AD30: +/* 09F860 7F06AD30 8FAC0054 */ lw $t4, 0x54($sp) +/* 09F864 7F06AD34 04C1002A */ bgez $a2, .L7F06ADE0 +/* 09F868 7F06AD38 8FAD0050 */ lw $t5, 0x50($sp) +/* 09F86C 7F06AD3C 11800016 */ beqz $t4, .L7F06AD98 +/* 09F870 7F06AD40 0006C023 */ negu $t8, $a2 +/* 09F874 7F06AD44 8FAE004C */ lw $t6, 0x4c($sp) +/* 09F878 7F06AD48 00067823 */ negu $t7, $a2 +/* 09F87C 7F06AD4C 01EE0019 */ multu $t7, $t6 +/* 09F880 7F06AD50 01467823 */ subu $t7, $t2, $a2 +/* 09F884 7F06AD54 0000C012 */ mflo $t8 +/* 09F888 7F06AD58 0018C940 */ sll $t9, $t8, 5 +/* 09F88C 7F06AD5C 00000000 */ nop +/* 09F890 7F06AD60 032F001A */ div $zero, $t9, $t7 +/* 09F894 7F06AD64 00007012 */ mflo $t6 +/* 09F898 7F06AD68 00EE3821 */ addu $a3, $a3, $t6 +/* 09F89C 7F06AD6C 15E00002 */ bnez $t7, .L7F06AD78 +/* 09F8A0 7F06AD70 00000000 */ nop +/* 09F8A4 7F06AD74 0007000D */ break 7 +.L7F06AD78: +/* 09F8A8 7F06AD78 2401FFFF */ li $at, -1 +/* 09F8AC 7F06AD7C 15E10004 */ bne $t7, $at, .L7F06AD90 +/* 09F8B0 7F06AD80 3C018000 */ lui $at, 0x8000 +/* 09F8B4 7F06AD84 17210002 */ bne $t9, $at, .L7F06AD90 +/* 09F8B8 7F06AD88 00000000 */ nop +/* 09F8BC 7F06AD8C 0006000D */ break 6 +.L7F06AD90: +/* 09F8C0 7F06AD90 10000013 */ b .L7F06ADE0 +/* 09F8C4 7F06AD94 00003025 */ move $a2, $zero +.L7F06AD98: +/* 09F8C8 7F06AD98 030D0019 */ multu $t8, $t5 +/* 09F8CC 7F06AD9C 01467023 */ subu $t6, $t2, $a2 +/* 09F8D0 7F06ADA0 0000C812 */ mflo $t9 +/* 09F8D4 7F06ADA4 00197940 */ sll $t7, $t9, 5 +/* 09F8D8 7F06ADA8 00000000 */ nop +/* 09F8DC 7F06ADAC 01EE001A */ div $zero, $t7, $t6 +/* 09F8E0 7F06ADB0 0000C012 */ mflo $t8 +/* 09F8E4 7F06ADB4 01184021 */ addu $t0, $t0, $t8 +/* 09F8E8 7F06ADB8 15C00002 */ bnez $t6, .L7F06ADC4 +/* 09F8EC 7F06ADBC 00000000 */ nop +/* 09F8F0 7F06ADC0 0007000D */ break 7 +.L7F06ADC4: +/* 09F8F4 7F06ADC4 2401FFFF */ li $at, -1 +/* 09F8F8 7F06ADC8 15C10004 */ bne $t6, $at, .L7F06ADDC +/* 09F8FC 7F06ADCC 3C018000 */ lui $at, 0x8000 +/* 09F900 7F06ADD0 15E10002 */ bne $t7, $at, .L7F06ADDC +/* 09F904 7F06ADD4 00000000 */ nop +/* 09F908 7F06ADD8 0006000D */ break 6 +.L7F06ADDC: +/* 09F90C 7F06ADDC 00003025 */ move $a2, $zero +.L7F06ADE0: +/* 09F910 7F06ADE0 11800015 */ beqz $t4, .L7F06AE38 +/* 09F914 7F06ADE4 8FAE0058 */ lw $t6, 0x58($sp) +/* 09F918 7F06ADE8 8FB9004C */ lw $t9, 0x4c($sp) +/* 09F91C 7F06ADEC 46021180 */ add.s $f6, $f2, $f2 +/* 09F920 7F06ADF0 3C014480 */ li $at, 0x44800000 # 1024.000000 +/* 09F924 7F06ADF4 44999000 */ mtc1 $t9, $f18 +/* 09F928 7F06ADF8 44816000 */ mtc1 $at, $f12 +/* 09F92C 7F06ADFC 46809120 */ cvt.s.w $f4, $f18 +/* 09F930 7F06AE00 46062203 */ div.s $f8, $f4, $f6 +/* 09F934 7F06AE04 448D2000 */ mtc1 $t5, $f4 +/* 09F938 7F06AE08 00000000 */ nop +/* 09F93C 7F06AE0C 468021A0 */ cvt.s.w $f6, $f4 +/* 09F940 7F06AE10 460C4282 */ mul.s $f10, $f8, $f12 +/* 09F944 7F06AE14 46000200 */ add.s $f8, $f0, $f0 +/* 09F948 7F06AE18 4600548D */ trunc.w.s $f18, $f10 +/* 09F94C 7F06AE1C 46083283 */ div.s $f10, $f6, $f8 +/* 09F950 7F06AE20 44039000 */ mfc1 $v1, $f18 +/* 09F954 7F06AE24 460C5482 */ mul.s $f18, $f10, $f12 +/* 09F958 7F06AE28 4600910D */ trunc.w.s $f4, $f18 +/* 09F95C 7F06AE2C 44042000 */ mfc1 $a0, $f4 +/* 09F960 7F06AE30 10000014 */ b .L7F06AE84 +/* 09F964 7F06AE34 00000000 */ nop +.L7F06AE38: +/* 09F968 7F06AE38 8FB8004C */ lw $t8, 0x4c($sp) +/* 09F96C 7F06AE3C 46000280 */ add.s $f10, $f0, $f0 +/* 09F970 7F06AE40 3C014480 */ li $at, 0x44800000 # 1024.000000 +/* 09F974 7F06AE44 44983000 */ mtc1 $t8, $f6 +/* 09F978 7F06AE48 44816000 */ mtc1 $at, $f12 +/* 09F97C 7F06AE4C 46803220 */ cvt.s.w $f8, $f6 +/* 09F980 7F06AE50 460A4483 */ div.s $f18, $f8, $f10 +/* 09F984 7F06AE54 448D4000 */ mtc1 $t5, $f8 +/* 09F988 7F06AE58 00000000 */ nop +/* 09F98C 7F06AE5C 468042A0 */ cvt.s.w $f10, $f8 +/* 09F990 7F06AE60 460C9102 */ mul.s $f4, $f18, $f12 +/* 09F994 7F06AE64 46021480 */ add.s $f18, $f2, $f2 +/* 09F998 7F06AE68 4600218D */ trunc.w.s $f6, $f4 +/* 09F99C 7F06AE6C 46125103 */ div.s $f4, $f10, $f18 +/* 09F9A0 7F06AE70 44033000 */ mfc1 $v1, $f6 +/* 09F9A4 7F06AE74 460C2182 */ mul.s $f6, $f4, $f12 +/* 09F9A8 7F06AE78 4600320D */ trunc.w.s $f8, $f6 +/* 09F9AC 7F06AE7C 44044000 */ mfc1 $a0, $f8 +/* 09F9B0 7F06AE80 00000000 */ nop +.L7F06AE84: +/* 09F9B4 7F06AE84 11C00006 */ beqz $t6, .L7F06AEA0 +/* 09F9B8 7F06AE88 8FB9004C */ lw $t9, 0x4c($sp) +/* 09F9BC 7F06AE8C 272FFFFF */ addiu $t7, $t9, -1 +/* 09F9C0 7F06AE90 3C180001 */ lui $t8, 1 +/* 09F9C4 7F06AE94 000F7140 */ sll $t6, $t7, 5 +/* 09F9C8 7F06AE98 03031823 */ subu $v1, $t8, $v1 +/* 09F9CC 7F06AE9C 01C73823 */ subu $a3, $t6, $a3 +.L7F06AEA0: +/* 09F9D0 7F06AEA0 8FB8005C */ lw $t8, 0x5c($sp) +/* 09F9D4 7F06AEA4 25AFFFFF */ addiu $t7, $t5, -1 +/* 09F9D8 7F06AEA8 3C190001 */ lui $t9, 1 +/* 09F9DC 7F06AEAC 13000003 */ beqz $t8, .L7F06AEBC +/* 09F9E0 7F06AEB0 000F7140 */ sll $t6, $t7, 5 +/* 09F9E4 7F06AEB4 03242023 */ subu $a0, $t9, $a0 +/* 09F9E8 7F06AEB8 01C84023 */ subu $t0, $t6, $t0 +.L7F06AEBC: +/* 09F9EC 7F06AEBC 11800022 */ beqz $t4, .L7F06AF48 +/* 09F9F0 7F06AEC0 31390FFF */ andi $t9, $t1, 0xfff +/* 09F9F4 7F06AEC4 31380FFF */ andi $t8, $t1, 0xfff +/* 09F9F8 7F06AEC8 0018CB00 */ sll $t9, $t8, 0xc +/* 09F9FC 7F06AECC 3C01E500 */ lui $at, 0xe500 +/* 09FA00 7F06AED0 03217825 */ or $t7, $t9, $at +/* 09FA04 7F06AED4 314E0FFF */ andi $t6, $t2, 0xfff +/* 09FA08 7F06AED8 01EEC025 */ or $t8, $t7, $t6 +/* 09FA0C 7F06AEDC 30B90FFF */ andi $t9, $a1, 0xfff +/* 09FA10 7F06AEE0 00406025 */ move $t4, $v0 +/* 09FA14 7F06AEE4 AD980000 */ sw $t8, ($t4) +/* 09FA18 7F06AEE8 00197B00 */ sll $t7, $t9, 0xc +/* 09FA1C 7F06AEEC 30CE0FFF */ andi $t6, $a2, 0xfff +/* 09FA20 7F06AEF0 01EEC025 */ or $t8, $t7, $t6 +/* 09FA24 7F06AEF4 AD980004 */ sw $t8, 4($t4) +/* 09FA28 7F06AEF8 24420008 */ addiu $v0, $v0, 8 +/* 09FA2C 7F06AEFC 00406825 */ move $t5, $v0 +/* 09FA30 7F06AF00 3C19B400 */ lui $t9, 0xb400 +/* 09FA34 7F06AF04 ADB90000 */ sw $t9, ($t5) +/* 09FA38 7F06AF08 3118FFFF */ andi $t8, $t0, 0xffff +/* 09FA3C 7F06AF0C 00077400 */ sll $t6, $a3, 0x10 +/* 09FA40 7F06AF10 01D8C825 */ or $t9, $t6, $t8 +/* 09FA44 7F06AF14 ADB90004 */ sw $t9, 4($t5) +/* 09FA48 7F06AF18 24420008 */ addiu $v0, $v0, 8 +/* 09FA4C 7F06AF1C AFA2000C */ sw $v0, 0xc($sp) +/* 09FA50 7F06AF20 8FAE000C */ lw $t6, 0xc($sp) +/* 09FA54 7F06AF24 3C0FB300 */ lui $t7, 0xb300 +/* 09FA58 7F06AF28 0003CC00 */ sll $t9, $v1, 0x10 +/* 09FA5C 7F06AF2C ADCF0000 */ sw $t7, ($t6) +/* 09FA60 7F06AF30 8FB8000C */ lw $t8, 0xc($sp) +/* 09FA64 7F06AF34 308FFFFF */ andi $t7, $a0, 0xffff +/* 09FA68 7F06AF38 032F7025 */ or $t6, $t9, $t7 +/* 09FA6C 7F06AF3C 24420008 */ addiu $v0, $v0, 8 +/* 09FA70 7F06AF40 10000020 */ b .L7F06AFC4 +/* 09FA74 7F06AF44 AF0E0004 */ sw $t6, 4($t8) +.L7F06AF48: +/* 09FA78 7F06AF48 00197B00 */ sll $t7, $t9, 0xc +/* 09FA7C 7F06AF4C 3C01E400 */ lui $at, 0xe400 +/* 09FA80 7F06AF50 01E17025 */ or $t6, $t7, $at +/* 09FA84 7F06AF54 31580FFF */ andi $t8, $t2, 0xfff +/* 09FA88 7F06AF58 01D8C825 */ or $t9, $t6, $t8 +/* 09FA8C 7F06AF5C 30AF0FFF */ andi $t7, $a1, 0xfff +/* 09FA90 7F06AF60 00406025 */ move $t4, $v0 +/* 09FA94 7F06AF64 AD990000 */ sw $t9, ($t4) +/* 09FA98 7F06AF68 000F7300 */ sll $t6, $t7, 0xc +/* 09FA9C 7F06AF6C 30D80FFF */ andi $t8, $a2, 0xfff +/* 09FAA0 7F06AF70 01D8C825 */ or $t9, $t6, $t8 +/* 09FAA4 7F06AF74 AD990004 */ sw $t9, 4($t4) +/* 09FAA8 7F06AF78 24420008 */ addiu $v0, $v0, 8 +/* 09FAAC 7F06AF7C 00406825 */ move $t5, $v0 +/* 09FAB0 7F06AF80 3C0FB400 */ lui $t7, 0xb400 +/* 09FAB4 7F06AF84 ADAF0000 */ sw $t7, ($t5) +/* 09FAB8 7F06AF88 3119FFFF */ andi $t9, $t0, 0xffff +/* 09FABC 7F06AF8C 0007C400 */ sll $t8, $a3, 0x10 +/* 09FAC0 7F06AF90 03197825 */ or $t7, $t8, $t9 +/* 09FAC4 7F06AF94 ADAF0004 */ sw $t7, 4($t5) +/* 09FAC8 7F06AF98 24420008 */ addiu $v0, $v0, 8 +/* 09FACC 7F06AF9C AFA20000 */ sw $v0, ($sp) +/* 09FAD0 7F06AFA0 8FB80000 */ lw $t8, ($sp) +/* 09FAD4 7F06AFA4 3C0EB300 */ lui $t6, 0xb300 +/* 09FAD8 7F06AFA8 00037C00 */ sll $t7, $v1, 0x10 +/* 09FADC 7F06AFAC AF0E0000 */ sw $t6, ($t8) +/* 09FAE0 7F06AFB0 8FB90000 */ lw $t9, ($sp) +/* 09FAE4 7F06AFB4 308EFFFF */ andi $t6, $a0, 0xffff +/* 09FAE8 7F06AFB8 01EEC025 */ or $t8, $t7, $t6 +/* 09FAEC 7F06AFBC 24420008 */ addiu $v0, $v0, 8 +/* 09FAF0 7F06AFC0 AF380004 */ sw $t8, 4($t9) +.L7F06AFC4: +/* 09FAF4 7F06AFC4 00401825 */ move $v1, $v0 +.L7F06AFC8: +/* 09FAF8 7F06AFC8 3C0F0008 */ lui $t7, 8 +/* 09FAFC 7F06AFCC AC6F0004 */ sw $t7, 4($v1) +/* 09FB00 7F06AFD0 AC6B0000 */ sw $t3, ($v1) +/* 09FB04 7F06AFD4 8FAE0040 */ lw $t6, 0x40($sp) +/* 09FB08 7F06AFD8 24420008 */ addiu $v0, $v0, 8 +/* 09FB0C 7F06AFDC ADC20000 */ sw $v0, ($t6) +.L7F06AFE0: +/* 09FB10 7F06AFE0 03E00008 */ jr $ra +/* 09FB14 7F06AFE4 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +f32 display_image_at_on_screen_coord(void *arg0, void *arg2, ?32 arg4, ?32 arg5, ?32 arg6, ?32 arg7, s32 arg8, s32 arg9, s32 argA, s32 argB, s32 argC, s32 argD) { + void *temp_v0; + void *phi_v0; + f32 phi_return_reg; + + // Node 0 + phi_return_reg = 0.0f; + if (0.0f < *arg2) + { + // Node 1 + phi_return_reg = 0.0f; + if (0.0f < arg2->unk4) + { + // Node 2 + **arg0 = 0xfb000000; + *arg0->unk4 = (s32) ((((arg8 << 0x18) | ((arg9 & 0xff) << 0x10)) | ((argA & 0xff) << 8)) | (argB & 0xff)); + temp_v0 = (*arg0 + 8); + if (argC != 0) + { + // Node 3 + *temp_v0 = 0xfc26a005; + temp_v0->unk4 = 0x1f1493ff; + phi_v0 = (temp_v0 + 8); + } + else + { + // Node 4 + if (argD != 0) + { + // Node 5 + temp_v0->unk4 = -0x1c8; + *temp_v0 = 0xfc129bff; + phi_v0 = (temp_v0 + 8); + } + else + { + // Node 6 + *temp_v0 = 0xfc129a25; + temp_v0->unk4 = 0xff37ffff; + phi_v0 = (temp_v0 + 8); + } + } + // Node 7 + *arg0 = (void *) phi_v0; + phi_return_reg = sub_GAME_7F06ABB0(arg4, arg5, arg6, arg7); + } + } + // Node 8 + return phi_return_reg; +} +#else +GLOBAL_ASM( +.text +glabel display_image_at_on_screen_coord +/* 09FB18 7F06AFE8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 09FB1C 7F06AFEC AFBF0024 */ sw $ra, 0x24($sp) +/* 09FB20 7F06AFF0 44800000 */ mtc1 $zero, $f0 +/* 09FB24 7F06AFF4 C4C40000 */ lwc1 $f4, ($a2) +/* 09FB28 7F06AFF8 4604003C */ c.lt.s $f0, $f4 +/* 09FB2C 7F06AFFC 00000000 */ nop +/* 09FB30 7F06B000 45020041 */ bc1fl .L7F06B108 +/* 09FB34 7F06B004 8FBF0024 */ lw $ra, 0x24($sp) +/* 09FB38 7F06B008 C4C60004 */ lwc1 $f6, 4($a2) +/* 09FB3C 7F06B00C 4606003C */ c.lt.s $f0, $f6 +/* 09FB40 7F06B010 00000000 */ nop +/* 09FB44 7F06B014 4502003C */ bc1fl .L7F06B108 +/* 09FB48 7F06B018 8FBF0024 */ lw $ra, 0x24($sp) +/* 09FB4C 7F06B01C 8C820000 */ lw $v0, ($a0) +/* 09FB50 7F06B020 3C0EFB00 */ lui $t6, 0xfb00 +/* 09FB54 7F06B024 00401825 */ move $v1, $v0 +/* 09FB58 7F06B028 AC6E0000 */ sw $t6, ($v1) +/* 09FB5C 7F06B02C 8FB80048 */ lw $t8, 0x48($sp) +/* 09FB60 7F06B030 8FA8004C */ lw $t0, 0x4c($sp) +/* 09FB64 7F06B034 8FAC0050 */ lw $t4, 0x50($sp) +/* 09FB68 7F06B038 0018CE00 */ sll $t9, $t8, 0x18 +/* 09FB6C 7F06B03C 8FB80054 */ lw $t8, 0x54($sp) +/* 09FB70 7F06B040 310900FF */ andi $t1, $t0, 0xff +/* 09FB74 7F06B044 00095400 */ sll $t2, $t1, 0x10 +/* 09FB78 7F06B048 318D00FF */ andi $t5, $t4, 0xff +/* 09FB7C 7F06B04C 000D7200 */ sll $t6, $t5, 8 +/* 09FB80 7F06B050 032A5825 */ or $t3, $t9, $t2 +/* 09FB84 7F06B054 016E7825 */ or $t7, $t3, $t6 +/* 09FB88 7F06B058 330800FF */ andi $t0, $t8, 0xff +/* 09FB8C 7F06B05C 01E84825 */ or $t1, $t7, $t0 +/* 09FB90 7F06B060 AC690004 */ sw $t1, 4($v1) +/* 09FB94 7F06B064 8FB90058 */ lw $t9, 0x58($sp) +/* 09FB98 7F06B068 24420008 */ addiu $v0, $v0, 8 +/* 09FB9C 7F06B06C 00401825 */ move $v1, $v0 +/* 09FBA0 7F06B070 13200009 */ beqz $t9, .L7F06B098 +/* 09FBA4 7F06B074 8FAD005C */ lw $t5, 0x5c($sp) +/* 09FBA8 7F06B078 3C0AFC26 */ lui $t2, (0xFC26A005 >> 16) # lui $t2, 0xfc26 +/* 09FBAC 7F06B07C 3C0C1F14 */ lui $t4, (0x1F1493FF >> 16) # lui $t4, 0x1f14 +/* 09FBB0 7F06B080 358C93FF */ ori $t4, (0x1F1493FF & 0xFFFF) # ori $t4, $t4, 0x93ff +/* 09FBB4 7F06B084 354AA005 */ ori $t2, (0xFC26A005 & 0xFFFF) # ori $t2, $t2, 0xa005 +/* 09FBB8 7F06B088 AC6A0000 */ sw $t2, ($v1) +/* 09FBBC 7F06B08C AC6C0004 */ sw $t4, 4($v1) +/* 09FBC0 7F06B090 10000012 */ b .L7F06B0DC +/* 09FBC4 7F06B094 24420008 */ addiu $v0, $v0, 8 +.L7F06B098: +/* 09FBC8 7F06B098 11A00009 */ beqz $t5, .L7F06B0C0 +/* 09FBCC 7F06B09C 00401825 */ move $v1, $v0 +/* 09FBD0 7F06B0A0 00401825 */ move $v1, $v0 +/* 09FBD4 7F06B0A4 3C0BFC12 */ lui $t3, (0xFC129BFF >> 16) # lui $t3, 0xfc12 +/* 09FBD8 7F06B0A8 356B9BFF */ ori $t3, (0xFC129BFF & 0xFFFF) # ori $t3, $t3, 0x9bff +/* 09FBDC 7F06B0AC 240EFE38 */ li $t6, -456 +/* 09FBE0 7F06B0B0 AC6E0004 */ sw $t6, 4($v1) +/* 09FBE4 7F06B0B4 AC6B0000 */ sw $t3, ($v1) +/* 09FBE8 7F06B0B8 10000008 */ b .L7F06B0DC +/* 09FBEC 7F06B0BC 24420008 */ addiu $v0, $v0, 8 +.L7F06B0C0: +/* 09FBF0 7F06B0C0 3C18FC12 */ lui $t8, (0xFC129A25 >> 16) # lui $t8, 0xfc12 +/* 09FBF4 7F06B0C4 3C0FFF37 */ lui $t7, (0xFF37FFFF >> 16) # lui $t7, 0xff37 +/* 09FBF8 7F06B0C8 35EFFFFF */ ori $t7, (0xFF37FFFF & 0xFFFF) # ori $t7, $t7, 0xffff +/* 09FBFC 7F06B0CC 37189A25 */ ori $t8, (0xFC129A25 & 0xFFFF) # ori $t8, $t8, 0x9a25 +/* 09FC00 7F06B0D0 AC780000 */ sw $t8, ($v1) +/* 09FC04 7F06B0D4 AC6F0004 */ sw $t7, 4($v1) +/* 09FC08 7F06B0D8 24420008 */ addiu $v0, $v0, 8 +.L7F06B0DC: +/* 09FC0C 7F06B0DC AC820000 */ sw $v0, ($a0) +/* 09FC10 7F06B0E0 8FAA0044 */ lw $t2, 0x44($sp) +/* 09FC14 7F06B0E4 8FB90040 */ lw $t9, 0x40($sp) +/* 09FC18 7F06B0E8 8FA9003C */ lw $t1, 0x3c($sp) +/* 09FC1C 7F06B0EC 8FA80038 */ lw $t0, 0x38($sp) +/* 09FC20 7F06B0F0 AFAA001C */ sw $t2, 0x1c($sp) +/* 09FC24 7F06B0F4 AFB90018 */ sw $t9, 0x18($sp) +/* 09FC28 7F06B0F8 AFA90014 */ sw $t1, 0x14($sp) +/* 09FC2C 7F06B0FC 0FC1AAEC */ jal sub_GAME_7F06ABB0 +/* 09FC30 7F06B100 AFA80010 */ sw $t0, 0x10($sp) +/* 09FC34 7F06B104 8FBF0024 */ lw $ra, 0x24($sp) +.L7F06B108: +/* 09FC38 7F06B108 27BD0028 */ addiu $sp, $sp, 0x28 +/* 09FC3C 7F06B10C 03E00008 */ jr $ra +/* 09FC40 7F06B110 00000000 */ nop +) +#endif + + + + diff --git a/src/game/cheat_buttons.c b/src/game/cheat_buttons.c new file mode 100644 index 0000000..a85ff99 --- /dev/null +++ b/src/game/cheat_buttons.c @@ -0,0 +1,3245 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "game/cheat_buttons.h" +//#include "game/chraicommands.h" /* needed for ai list commands, remove when moving global ai lists to chraicommands/chrai */ +// bss +char off_CODE_bss_80079E30[0x4C]; + + + +//D:8003F430 +u32 dword_D_8003F430[] = {0x320028, 0x2300120, 0x4100032, 0x280130, 0x340420}; +//D:8003F444 +u32 dword_D_8003F444[] = {0x4200011, 0x180120, 0x240018, 0x1200410, 0x2200031}; +//D:8003F458 +u32 dword_D_8003F458[] = {0x4300022, 0x210032, 0x4200024, 0x120031, 0x8100022}; +//D:8003F46C +u32 dword_D_8003F46C[] = {0x310810, 0x4100410, 0x310230, 0x4100810, 0x310210}; +//D:8003F480 +u32 dword_D_8003F480[] = {0x8200011, 0x140032, 0x2300130, 0x4100018, 0x110430}; +//D:8003F494 +u32 dword_D_8003F494[] = {0x1100220, 0x2200810, 0x4200014, 0x220031, 0x4200028}; +//D:8003F4A8 +u32 dword_D_8003F4A8[] = {0x140430, 0x1200018, 0x310810, 0x4200120, 0x120018}; +//D:8003F4BC +u32 dword_D_8003F4BC[] = {0x120038, 0x2300830, 0x8100022, 0x180024, 0x2300110}; +//D:8003F4D0 +u32 dword_D_8003F4D0[] = {0x280032, 0x8100021, 0x120120, 0x320021, 0x8200034}; +//D:8003F4E4 +u32 dword_D_8003F4E4[] = {0x380210, 0x140024, 0x8100420, 0x110120, 0x1300014}; +//D:8003F4F8 +u32 dword_D_8003F4F8[] = {0x380012, 0x2200018, 0x2200014, 0x210110, 0x380120}; +//D:8003F50C +u32 dword_D_8003F50C[] = {0x2300210, 0x280220, 0x180014, 0x110110, 0x4200012}; +//D:8003F520 +u32 dword_D_8003F520[] = {0x120038, 0x2200810, 0x2100820, 0x140120, 0x210430}; +//D:8003F534 +u32 dword_D_8003F534[] = {0x240110, 0x210012, 0x240230, 0x210830, 0x110820}; +//D:8003F548 +u32 dword_D_8003F548[] = {0x8200014, 0x2200410, 0x220031, 0x280110, 0x1100011}; +//D:8003F55C +u32 dword_D_8003F55C[] = {0x180420, 0x110220, 0x8300034, 0x110810, 0x340810}; +//D:8003F570 +u32 dword_D_8003F570[] = {0x240031, 0x110018, 0x120120, 0x380028, 0x4300021}; +//D:8003F584 +u32 dword_D_8003F584[] = {0x4200410, 0x380220, 0x1300022, 0x1100028, 0x2200024}; +//D:8003F598 +u32 dword_D_8003F598[] = {0x340034, 0x1200230, 0x2100011, 0x2300018, 0x140110}; +//D:8003F5AC +u32 dword_D_8003F5AC[] = {0x2100830, 0x340210, 0x310220, 0x1300034, 0x8200014}; +//D:8003F5C0 +u32 dword_D_8003F5C0[] = {0x320021, 0x8200034, 0x110014, 0x2100014, 0x180420}; +//D:8003F5D4 +u32 dword_D_8003F5D4[] = {0x4200420, 0x140021, 0x1300012, 0x4200022, 0x210820}; +//D:8003F5E8 +u32 dword_D_8003F5E8[] = {0x2100014, 0x110230, 0x1200014, 0x2200032, 0x8200028}; +//D:8003F5FC +u32 dword_D_8003F5FC[] = {0x140210, 0x8300110, 0x4100410, 0x8100012, 0x180230}; +//D:8003F610 +u32 dword_D_8003F610[] = {0x240410, 0x1200011, 0x140210, 0x2100018, 0x2100038}; +//D:8003F624 +u32 dword_D_8003F624[] = {0x4200014, 0x8300120, 0x180012, 0x8100022, 0x8200012}; +//D:8003F638 +u32 dword_D_8003F638[] = {0x380220, 0x4100420, 0x280420, 0x1100018, 0x220110}; +//D:8003F64C +u32 dword_D_8003F64C[] = {0x140210, 0x1200031, 0x4200038, 0x2200038, 0x1300022}; +//D:8003F660 +u32 dword_D_8003F660[] = {0x8300031, 0x4200110, 0x8100420, 0x2200021, 0x310220, 0x80304030, 0x80304030}; +//D:8003F67C +u32 dword_D_8003F67C[] = {0x8200008, 0x1100032, 0x8200014, 0x240034, 0x8300024}; +//D:8003F690 +u32 dword_D_8003F690[] = {0x2100420, 0x2000800, 0x4000012, 0x220230, 0x1300022}; +//D:8003F6A4 +u32 dword_D_8003F6A4[] = {0x8300001, 0x2100810, 0x8000110, 0x8000034, 0x4300032}; +//D:8003F6B8 +u32 dword_D_8003F6B8[] = {0x4100810, 0x1000034, 0x1200210, 0x2000400, 0x8000014}; +//D:8003F6CC +u32 dword_D_8003F6CC[] = {0x1100820, 0x4000400, 0x140220, 0x220810, 0x4100012}; +//D:8003F6E0 +u32 dword_D_8003F6E0[] = {0x4200024, 0x8300014, 0x2000410, 0x240800, 0x4100120}; +//D:8003F6F4 +u32 dword_D_8003F6F4[] = {0x8100004, 0x20008, 0x4200810, 0x20100, 0x2100110}; +//D:8003F708 +u32 dword_D_8003F708[] = {0x4300410, 0x240200, 0x120034, 0x1000400, 0x140110}; +//D:8003F71C +u32 dword_D_8003F71C[] = {0x120220, 0x8000130, 0x1000032, 0x320410, 0x2100012}; +//D:8003F730 +u32 dword_D_8003F730[] = {0x240022, 0x40001, 0x20130, 0x10830, 0x120220}; +//D:8003F744 +u32 dword_D_8003F744[] = {0x320034, 0x220012, 0x1100230, 0x1200200, 0x320420}; +//D:8003F758 +u32 dword_D_8003F758[] = {0x340002, 0x140004, 0x40034, 0x8300004, 0x8100820}; +//D:8003F76C +u32 dword_D_8003F76C[] = {0x2300230, 0x4300230, 0x10430, 0x4300420, 0x20008}; +//D:8003F780 +u32 dword_D_8003F780[] = {0x2200830, 0x1200830, 0x320230, 0x4300004, 0x1300230}; +//D:8003F794 +u32 dword_D_8003F794[] = {0x140120, 0x120110, 0x1300830, 0x4200210, 0x1200022}; +//D:8003F7A8 +u32 dword_D_8003F7A8[] = {0x220130, 0x10002, 0x2100024, 0x2300034, 0x8200001}; +//D:8003F7BC +u32 dword_D_8003F7BC[] = {0x8000100, 0x2200410, 0x8200022, 0x2200001, 0x80430}; +//D:8003F7D0 +u32 dword_D_8003F7D0[] = {0x1300430, 0x8200430, 0x80810, 0x1300220, 0x4000024}; +//D:8003F7E4 +u32 dword_D_8003F7E4[] = {0x1200032, 0x4200210, 0x4100120, 0x80100, 0x1100830}; +//D:8003F7F8 +u32 dword_D_8003F7F8[] = {0x4000200, 0x80100, 0x4200220}; + +//D:8003F804 +u32 D_8003F804 = 0x8200002; +//D:8003F808 +u32 D_8003F808 = 0x2000004; + +//D:8003F80C +struct struct_15 D_8003F80C[] = { + {1, 0xA, 0, 0, dword_D_8003F430, 0, 0x31}, + {2, 0xA, 0, 0, dword_D_8003F444, 0xB0000000, 6}, + {3, 0xA, 0, 0, dword_D_8003F458, 0xB0010000, 2}, + {4, 0xA, 0, 0, dword_D_8003F46C, 0, 0x16}, + {5, 0xA, 0, 0, dword_D_8003F480, 0, 0x16}, + {6, 0xA, 0, 0, dword_D_8003F494, 0, 0x34}, + {7, 0xA, 0, 0, dword_D_8003F4A8, 0xB0370000, 0x66}, + {8, 0, 0, 0, 0, 0, 0x16}, + {9, 0, 0, 0, 0, 0, 0x16}, + {0xA, 0xA, 0, 0, dword_D_8003F4BC, 0xB0040000, 0x62}, + {0xB, 0, 0, 0, 0, 0xB0060000, 0x66}, + {0xC, 0, 0, 0, 0, 0xB0070000, 0x26}, + {0xD, 0, 0, 0, 0, 0, 0x12}, + {0xE, 0, 0, 0, 0, 0xB0080000, 2}, + {0xF, 0, 0, 0, 0, 0xB0380000, 0x66}, + {0x10, 0, 0, 0, 0, 0, 0x16}, + {0x11, 0, 0, 0, 0, 0xB00A0000, 0x12}, + {0x12, 0, 0, 0, 0, 0xB00B0000, 0x12}, + {0x13, 0, 0, 0, 0, 0xB00C0000, 0x12}, + {0x14, 0, 0, 0, 0, 0xB00D0000, 0x12}, + {0x15, 0, 0, 0, 0, 0xB00E0000, 0x12}, + {0x16, 0xA, 0, 0, dword_D_8003F4D0, 0, 4}, + {0x17, 0, 0, 0, 0, 0xB0430000, 0x64}, + {0x18, 0, 0, 0, 0, 0xB0400000, 0x66}, + {0x19, 0, 0, 0, 0, 0, 0x20}, + {0x1A, 0, 0, 0, 0, 0xB0410000, 0x72}, + {0x1B, 0, 0, 0, 0, 0xB0420000, 0x72}, + {0x1C, 0, 0, 0, 0, 0xB0390000, 1}, + {0x1D, 0, 0, 0, 0, 0xB03A0000, 0x12}, + {0x1E, 0, 0, 0, 0, 0xB03B0000, 0x12}, + {0x1F, 0, 0, 0, 0, 0xB03C0000, 0x12}, + {0x20, 0, 0, 0, 0, 0xB03D0000, 0x12}, + {0x21, 0, 0, 0, 0, 0xB03E0000, 0x12}, + {0x22, 0, 0, 0, 0, 0xB03F0000, 0x12}, + {0x23, 0xA, 0, 0, dword_D_8003F67C, 0, 0x11}, + {0x24, 0xA, 0, 0, dword_D_8003F690, 0, 0x11}, + {0x25, 0xA, 0, 0, dword_D_8003F6A4, 0, 0x11}, + {0x26, 0xA, 0, 0, dword_D_8003F6B8, 0, 0x11}, + {0x27, 0xA, 0, 0, dword_D_8003F6CC, 0, 0x11}, + {0x28, 0xA, 0, 0, dword_D_8003F6E0, 0, 0x11}, + {0x29, 0xA, 0, 0, dword_D_8003F6F4, 0, 0x11}, + {0x2A, 0xA, 0, 0, dword_D_8003F708, 0, 0x11}, + {0x2B, 0xA, 0, 0, dword_D_8003F71C, 0, 0x11}, + {0x2C, 0xA, 0, 0, dword_D_8003F730, 0, 0x11}, + {0x2D, 0xA, 0, 0, dword_D_8003F744, 0, 0x11}, + {0x2E, 0xA, 0, 0, dword_D_8003F758, 0, 0x11}, + {0x2F, 0xA, 0, 0, dword_D_8003F76C, 0, 0x11}, + {0x30, 0xA, 0, 0, dword_D_8003F780, 0, 0x11}, + {0x31, 0xA, 0, 0, dword_D_8003F794, 0, 0x11}, + {0x32, 0xA, 0, 0, dword_D_8003F7A8, 0, 0x11}, + {0x33, 0xA, 0, 0, dword_D_8003F7BC, 0, 0x11}, + {0x34, 0xA, 0, 0, dword_D_8003F7D0, 0, 0x11}, + {0x35, 0xA, 0, 0, dword_D_8003F7E4, 0, 0x11}, + {0x36, 0xA, 0, 0, dword_D_8003F7F8, 0, 0x11}, + {0x37, 0xA, 0, 0, dword_D_8003F4E4, 0, 0x11}, + {0x38, 0xA, 0, 0, dword_D_8003F4F8, 0, 0x11}, + {0x39, 0xA, 0, 0, dword_D_8003F50C, 0, 0x11}, + {0x3A, 0xA, 0, 0, dword_D_8003F520, 0, 0x11}, + {0x3B, 0xA, 0, 0, dword_D_8003F534, 0, 0x11}, + {0x3C, 0xA, 0, 0, dword_D_8003F548, 0, 0x11}, + {0x3D, 0xA, 0, 0, dword_D_8003F55C, 0, 0x11}, + {0x3E, 0xA, 0, 0, dword_D_8003F570, 0, 0x11}, + {0x3F, 0xA, 0, 0, dword_D_8003F584, 0, 0x11}, + {0x40, 0xA, 0, 0, dword_D_8003F598, 0, 0x11}, + {0x41, 0xA, 0, 0, dword_D_8003F5AC, 0, 0x11}, + {0x42, 0xA, 0, 0, dword_D_8003F5C0, 0, 0x11}, + {0x43, 0xA, 0, 0, dword_D_8003F5D4, 0, 0x11}, + {0x44, 0xA, 0, 0, dword_D_8003F5E8, 0, 0x11}, + {0x45, 0xA, 0, 0, dword_D_8003F5FC, 0, 0x11}, + {0x46, 0xA, 0, 0, dword_D_8003F610, 0, 0x11}, + {0x47, 0xA, 0, 0, dword_D_8003F624, 0, 0x11}, + {0x48, 0xA, 0, 0, dword_D_8003F638, 0, 0x11}, + {0x49, 0xA, 0, 0, dword_D_8003F64C, 0, 0x11}, + {0x4A, 0xA, 0, 0, dword_D_8003F660, 0, 0x11}, + {0} +}; + +//D:8003FCBC +//u32 D_8003FCBC = 0; + + + + +// rodata + + + + + + + +#ifdef NONMATCHING +int cheatButton_7F091740(u16 param_1) { + +} +#else +GLOBAL_ASM( +.text +glabel cheatButton_7F091740 +/* 0C6270 7F091740 AFA40000 */ sw $a0, ($sp) +/* 0C6274 7F091744 308EFFFF */ andi $t6, $a0, 0xffff +/* 0C6278 7F091748 01C02025 */ move $a0, $t6 +/* 0C627C 7F09174C 11C00009 */ beqz $t6, .L7F091774 +/* 0C6280 7F091750 00001825 */ move $v1, $zero +.L7F091754: +/* 0C6284 7F091754 308F0001 */ andi $t7, $a0, 1 +/* 0C6288 7F091758 11E00002 */ beqz $t7, .L7F091764 +/* 0C628C 7F09175C 00801025 */ move $v0, $a0 +/* 0C6290 7F091760 24630001 */ addiu $v1, $v1, 1 +.L7F091764: +/* 0C6294 7F091764 00022042 */ srl $a0, $v0, 1 +/* 0C6298 7F091768 3098FFFF */ andi $t8, $a0, 0xffff +/* 0C629C 7F09176C 1700FFF9 */ bnez $t8, .L7F091754 +/* 0C62A0 7F091770 03002025 */ move $a0, $t8 +.L7F091774: +/* 0C62A4 7F091774 03E00008 */ jr $ra +/* 0C62A8 7F091778 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void cheatButton_7F09177C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel cheatButton_7F09177C +/* 0C62AC 7F09177C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C62B0 7F091780 AFB1001C */ sw $s1, 0x1c($sp) +/* 0C62B4 7F091784 AFBF002C */ sw $ra, 0x2c($sp) +/* 0C62B8 7F091788 AFB40028 */ sw $s4, 0x28($sp) +/* 0C62BC 7F09178C 3C118004 */ lui $s1, %hi(D_8003F80C) +/* 0C62C0 7F091790 AFB30024 */ sw $s3, 0x24($sp) +/* 0C62C4 7F091794 AFB20020 */ sw $s2, 0x20($sp) +/* 0C62C8 7F091798 AFB00018 */ sw $s0, 0x18($sp) +/* 0C62CC 7F09179C 2631F80C */ addiu $s1, %lo(D_8003F80C) # addiu $s1, $s1, -0x7f4 +/* 0C62D0 7F0917A0 0FC2F7C1 */ jal sub_GAME_7F0BDF04 +/* 0C62D4 7F0917A4 0000A025 */ move $s4, $zero +/* 0C62D8 7F0917A8 2401005A */ li $at, 90 +/* 0C62DC 7F0917AC 14410003 */ bne $v0, $at, .L7F0917BC +/* 0C62E0 7F0917B0 00000000 */ nop +/* 0C62E4 7F0917B4 10000008 */ b .L7F0917D8 +/* 0C62E8 7F0917B8 24130001 */ li $s3, 1 +.L7F0917BC: +/* 0C62EC 7F0917BC 0FC26919 */ jal get_num_players +/* 0C62F0 7F0917C0 00000000 */ nop +/* 0C62F4 7F0917C4 24010001 */ li $at, 1 +/* 0C62F8 7F0917C8 14410003 */ bne $v0, $at, .L7F0917D8 +/* 0C62FC 7F0917CC 24130004 */ li $s3, 4 +/* 0C6300 7F0917D0 10000001 */ b .L7F0917D8 +/* 0C6304 7F0917D4 24130002 */ li $s3, 2 +.L7F0917D8: +/* 0C6308 7F0917D8 3C0E8004 */ lui $t6, %hi(D_8003F80C) +/* 0C630C 7F0917DC 91CEF80C */ lbu $t6, %lo(D_8003F80C)($t6) +/* 0C6310 7F0917E0 3C128008 */ lui $s2, %hi(pPlayer) +/* 0C6314 7F0917E4 2652A0B0 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5f50 +/* 0C6318 7F0917E8 11C0004C */ beqz $t6, .L7F09191C +/* 0C631C 7F0917EC 24100014 */ li $s0, 20 +/* 0C6320 7F0917F0 92250001 */ lbu $a1, 1($s1) +.L7F0917F4: +/* 0C6324 7F0917F4 58A00044 */ blezl $a1, .L7F091908 +/* 0C6328 7F0917F8 92280010 */ lbu $t0, 0x10($s1) +/* 0C632C 7F0917FC 8E460000 */ lw $a2, ($s2) +/* 0C6330 7F091800 90CF12B5 */ lbu $t7, 0x12b5($a2) +/* 0C6334 7F091804 01E5082A */ slt $at, $t7, $a1 +/* 0C6338 7F091808 5420003F */ bnezl $at, .L7F091908 +/* 0C633C 7F09180C 92280010 */ lbu $t0, 0x10($s1) +/* 0C6340 7F091810 8E38000C */ lw $t8, 0xc($s1) +/* 0C6344 7F091814 0313C824 */ and $t9, $t8, $s3 +/* 0C6348 7F091818 5320003B */ beql $t9, $zero, .L7F091908 +/* 0C634C 7F09181C 92280010 */ lbu $t0, 0x10($s1) +/* 0C6350 7F091820 90C812B4 */ lbu $t0, 0x12b4($a2) +/* 0C6354 7F091824 00002025 */ move $a0, $zero +/* 0C6358 7F091828 01054823 */ subu $t1, $t0, $a1 +/* 0C635C 7F09182C 252A0014 */ addiu $t2, $t1, 0x14 +/* 0C6360 7F091830 0150001A */ div $zero, $t2, $s0 +/* 0C6364 7F091834 00001010 */ mfhi $v0 +/* 0C6368 7F091838 16000002 */ bnez $s0, .L7F091844 +/* 0C636C 7F09183C 00000000 */ nop +/* 0C6370 7F091840 0007000D */ break 7 +.L7F091844: +/* 0C6374 7F091844 2401FFFF */ li $at, -1 +/* 0C6378 7F091848 16010004 */ bne $s0, $at, .L7F09185C +/* 0C637C 7F09184C 3C018000 */ lui $at, 0x8000 +/* 0C6380 7F091850 15410002 */ bne $t2, $at, .L7F09185C +/* 0C6384 7F091854 00000000 */ nop +/* 0C6388 7F091858 0006000D */ break 6 +.L7F09185C: +/* 0C638C 7F09185C 18A00018 */ blez $a1, .L7F0918C0 +/* 0C6390 7F091860 00000000 */ nop +/* 0C6394 7F091864 8E230004 */ lw $v1, 4($s1) +.L7F091868: +/* 0C6398 7F091868 00025840 */ sll $t3, $v0, 1 +/* 0C639C 7F09186C 00CB6021 */ addu $t4, $a2, $t3 +/* 0C63A0 7F091870 958D128C */ lhu $t5, 0x128c($t4) +/* 0C63A4 7F091874 946E0000 */ lhu $t6, ($v1) +/* 0C63A8 7F091878 244F0001 */ addiu $t7, $v0, 1 +/* 0C63AC 7F09187C 15AE0010 */ bne $t5, $t6, .L7F0918C0 +/* 0C63B0 7F091880 00000000 */ nop +/* 0C63B4 7F091884 01F0001A */ div $zero, $t7, $s0 +/* 0C63B8 7F091888 16000002 */ bnez $s0, .L7F091894 +/* 0C63BC 7F09188C 00000000 */ nop +/* 0C63C0 7F091890 0007000D */ break 7 +.L7F091894: +/* 0C63C4 7F091894 2401FFFF */ li $at, -1 +/* 0C63C8 7F091898 16010004 */ bne $s0, $at, .L7F0918AC +/* 0C63CC 7F09189C 3C018000 */ lui $at, 0x8000 +/* 0C63D0 7F0918A0 15E10002 */ bne $t7, $at, .L7F0918AC +/* 0C63D4 7F0918A4 00000000 */ nop +/* 0C63D8 7F0918A8 0006000D */ break 6 +.L7F0918AC: +/* 0C63DC 7F0918AC 24840001 */ addiu $a0, $a0, 1 +/* 0C63E0 7F0918B0 00001010 */ mfhi $v0 +/* 0C63E4 7F0918B4 0085082A */ slt $at, $a0, $a1 +/* 0C63E8 7F0918B8 1420FFEB */ bnez $at, .L7F091868 +/* 0C63EC 7F0918BC 24630002 */ addiu $v1, $v1, 2 +.L7F0918C0: +/* 0C63F0 7F0918C0 54850011 */ bnel $a0, $a1, .L7F091908 +/* 0C63F4 7F0918C4 92280010 */ lbu $t0, 0x10($s1) +/* 0C63F8 7F0918C8 A0C012B5 */ sb $zero, 0x12b5($a2) +/* 0C63FC 7F0918CC 0FC249EF */ jal cheatCheckIfOn +/* 0C6400 7F0918D0 92240000 */ lbu $a0, ($s1) +/* 0C6404 7F0918D4 10400005 */ beqz $v0, .L7F0918EC +/* 0C6408 7F0918D8 00000000 */ nop +/* 0C640C 7F0918DC 8E38000C */ lw $t8, 0xc($s1) +/* 0C6410 7F0918E0 33190010 */ andi $t9, $t8, 0x10 +/* 0C6414 7F0918E4 13200005 */ beqz $t9, .L7F0918FC +/* 0C6418 7F0918E8 00000000 */ nop +.L7F0918EC: +/* 0C641C 7F0918EC 0FC246D9 */ jal handle_cheats_turned_on +/* 0C6420 7F0918F0 92240000 */ lbu $a0, ($s1) +/* 0C6424 7F0918F4 10000004 */ b .L7F091908 +/* 0C6428 7F0918F8 92280010 */ lbu $t0, 0x10($s1) +.L7F0918FC: +/* 0C642C 7F0918FC 0FC2490E */ jal cheatDisplayMessageActivateCheat +/* 0C6430 7F091900 92240000 */ lbu $a0, ($s1) +/* 0C6434 7F091904 92280010 */ lbu $t0, 0x10($s1) +.L7F091908: +/* 0C6438 7F091908 26310010 */ addiu $s1, $s1, 0x10 +/* 0C643C 7F09190C 51000004 */ beql $t0, $zero, .L7F091920 +/* 0C6440 7F091910 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C6444 7F091914 5280FFB7 */ beql $s4, $zero, .L7F0917F4 +/* 0C6448 7F091918 92250001 */ lbu $a1, 1($s1) +.L7F09191C: +/* 0C644C 7F09191C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F091920: +/* 0C6450 7F091920 8FB00018 */ lw $s0, 0x18($sp) +/* 0C6454 7F091924 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C6458 7F091928 8FB20020 */ lw $s2, 0x20($sp) +/* 0C645C 7F09192C 8FB30024 */ lw $s3, 0x24($sp) +/* 0C6460 7F091930 8FB40028 */ lw $s4, 0x28($sp) +/* 0C6464 7F091934 03E00008 */ jr $ra +/* 0C6468 7F091938 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void cheat_buttons_mp_related(void) + +} +#else +GLOBAL_ASM( +.text +glabel cheat_buttons_mp_related +/* 0C646C 7F09193C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C6470 7F091940 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C6474 7F091944 0FC26C54 */ jal get_cur_playernum +/* 0C6478 7F091948 00000000 */ nop +/* 0C647C 7F09194C 00022600 */ sll $a0, $v0, 0x18 +/* 0C6480 7F091950 00047603 */ sra $t6, $a0, 0x18 +/* 0C6484 7F091954 01C02025 */ move $a0, $t6 +/* 0C6488 7F091958 0C0030C3 */ jal get_controller_buttons_held +/* 0C648C 7F09195C 3405FFFF */ li $a1, 65535 +/* 0C6490 7F091960 0FC26C54 */ jal get_cur_playernum +/* 0C6494 7F091964 A7A20026 */ sh $v0, 0x26($sp) +/* 0C6498 7F091968 00022600 */ sll $a0, $v0, 0x18 +/* 0C649C 7F09196C 00047E03 */ sra $t7, $a0, 0x18 +/* 0C64A0 7F091970 01E02025 */ move $a0, $t7 +/* 0C64A4 7F091974 0C0030EB */ jal get_controller_buttons_pressed +/* 0C64A8 7F091978 3405FFFF */ li $a1, 65535 +/* 0C64AC 7F09197C 97A30026 */ lhu $v1, 0x26($sp) +/* 0C64B0 7F091980 30780030 */ andi $t8, $v1, 0x30 +/* 0C64B4 7F091984 3306FFFF */ andi $a2, $t8, 0xffff +/* 0C64B8 7F091988 00C04827 */ not $t1, $a2 +/* 0C64BC 7F09198C 0300C827 */ not $t9, $t8 +/* 0C64C0 7F091990 00492824 */ and $a1, $v0, $t1 +/* 0C64C4 7F091994 30AAFFFF */ andi $t2, $a1, 0xffff +/* 0C64C8 7F091998 00794024 */ and $t0, $v1, $t9 +/* 0C64CC 7F09199C A7A80026 */ sh $t0, 0x26($sp) +/* 0C64D0 7F0919A0 11400028 */ beqz $t2, .L7F091A44 +/* 0C64D4 7F0919A4 A7A50024 */ sh $a1, 0x24($sp) +/* 0C64D8 7F0919A8 30A4FFFF */ andi $a0, $a1, 0xffff +/* 0C64DC 7F0919AC 0FC245D0 */ jal cheatButton_7F091740 +/* 0C64E0 7F0919B0 AFA60018 */ sw $a2, 0x18($sp) +/* 0C64E4 7F0919B4 24010001 */ li $at, 1 +/* 0C64E8 7F0919B8 1441001E */ bne $v0, $at, .L7F091A34 +/* 0C64EC 7F0919BC 8FA70018 */ lw $a3, 0x18($sp) +/* 0C64F0 7F0919C0 97A40026 */ lhu $a0, 0x26($sp) +/* 0C64F4 7F0919C4 0FC245D0 */ jal cheatButton_7F091740 +/* 0C64F8 7F0919C8 AFA70018 */ sw $a3, 0x18($sp) +/* 0C64FC 7F0919CC 24010001 */ li $at, 1 +/* 0C6500 7F0919D0 14410018 */ bne $v0, $at, .L7F091A34 +/* 0C6504 7F0919D4 8FA70018 */ lw $a3, 0x18($sp) +/* 0C6508 7F0919D8 3C048008 */ lui $a0, %hi(pPlayer) +/* 0C650C 7F0919DC 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0C6510 7F0919E0 8C820000 */ lw $v0, ($a0) +/* 0C6514 7F0919E4 97AB0024 */ lhu $t3, 0x24($sp) +/* 0C6518 7F0919E8 24010014 */ li $at, 20 +/* 0C651C 7F0919EC 904D12B4 */ lbu $t5, 0x12b4($v0) +/* 0C6520 7F0919F0 01676025 */ or $t4, $t3, $a3 +/* 0C6524 7F0919F4 000D7040 */ sll $t6, $t5, 1 +/* 0C6528 7F0919F8 004E7821 */ addu $t7, $v0, $t6 +/* 0C652C 7F0919FC A5EC128C */ sh $t4, 0x128c($t7) +/* 0C6530 7F091A00 8C820000 */ lw $v0, ($a0) +/* 0C6534 7F091A04 905812B4 */ lbu $t8, 0x12b4($v0) +/* 0C6538 7F091A08 27190001 */ addiu $t9, $t8, 1 +/* 0C653C 7F091A0C 0321001A */ div $zero, $t9, $at +/* 0C6540 7F091A10 00004010 */ mfhi $t0 +/* 0C6544 7F091A14 A04812B4 */ sb $t0, 0x12b4($v0) +/* 0C6548 7F091A18 8C820000 */ lw $v0, ($a0) +/* 0C654C 7F091A1C 904312B5 */ lbu $v1, 0x12b5($v0) +/* 0C6550 7F091A20 28610014 */ slti $at, $v1, 0x14 +/* 0C6554 7F091A24 10200007 */ beqz $at, .L7F091A44 +/* 0C6558 7F091A28 24690001 */ addiu $t1, $v1, 1 +/* 0C655C 7F091A2C 10000005 */ b .L7F091A44 +/* 0C6560 7F091A30 A04912B5 */ sb $t1, 0x12b5($v0) +.L7F091A34: +/* 0C6564 7F091A34 3C048008 */ lui $a0, %hi(pPlayer) +/* 0C6568 7F091A38 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0C656C 7F091A3C 8C8A0000 */ lw $t2, ($a0) +/* 0C6570 7F091A40 A14012B5 */ sb $zero, 0x12b5($t2) +.L7F091A44: +/* 0C6574 7F091A44 0FC245DF */ jal cheatButton_7F09177C +/* 0C6578 7F091A48 00000000 */ nop +/* 0C657C 7F091A4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6580 7F091A50 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0C6584 7F091A54 03E00008 */ jr $ra +/* 0C6588 7F091A58 00000000 */ nop +) +#endif + + + + + + +u32 is_cheat_index_equal_to_1C(u32 cheatindex) +{ + if (cheatindex == 0x1c) { + return 1; + } + return 0; +} + + + + + + +#ifdef NONMATCHING +void cheatCheckIfMPCheat(void) { + +} +#else +GLOBAL_ASM( +.text +glabel cheatCheckIfMPCheat +/* 0C65A8 7F091A78 00047100 */ sll $t6, $a0, 4 +/* 0C65AC 7F091A7C 3C0F8004 */ lui $t7, %hi(D_8003F808) +/* 0C65B0 7F091A80 01EE7821 */ addu $t7, $t7, $t6 +/* 0C65B4 7F091A84 8DEFF808 */ lw $t7, %lo(D_8003F808)($t7) +/* 0C65B8 7F091A88 24010004 */ li $at, 4 +/* 0C65BC 7F091A8C 00001025 */ move $v0, $zero +/* 0C65C0 7F091A90 31F80004 */ andi $t8, $t7, 4 +/* 0C65C4 7F091A94 17010003 */ bne $t8, $at, .L7F091AA4 +/* 0C65C8 7F091A98 00000000 */ nop +/* 0C65CC 7F091A9C 03E00008 */ jr $ra +/* 0C65D0 7F091AA0 24020001 */ li $v0, 1 + +.L7F091AA4: +/* 0C65D4 7F091AA4 03E00008 */ jr $ra +/* 0C65D8 7F091AA8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void turn_on_cheat_for_players(u32 cheatindex) +{ + u32 uVar1; + u32 playernum; + u32 numplayers; + u32 i; + + uVar1 = D_8003F80C[cheatindex]; + playernum = get_cur_playernum(); + numplayers = get_num_players(); + if (numplayers == 1) { + handle_cheats_turned_on(cheatindex); + } + else { + if ((uVar1 & 4) != 0) + { + if ((uVar1 & 0x20) == 0) + { + i = 0; + if (0 < (int)numplayers) + { + while (i != numplayers) + { + set_cur_player(i); + handle_cheats_turned_on(cheatindex); + i = i + 1; + }; + } + set_cur_player(playernum); + } + else + { + handle_cheats_turned_on(cheatindex); + } + } + } + return; +} +#else +GLOBAL_ASM( +.text +glabel turn_on_cheat_for_players +/* 0C65DC 7F091AAC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C65E0 7F091AB0 AFB00018 */ sw $s0, 0x18($sp) +/* 0C65E4 7F091AB4 3C108004 */ lui $s0, %hi(D_8003F808) +/* 0C65E8 7F091AB8 00047100 */ sll $t6, $a0, 4 +/* 0C65EC 7F091ABC AFBF0024 */ sw $ra, 0x24($sp) +/* 0C65F0 7F091AC0 AFB20020 */ sw $s2, 0x20($sp) +/* 0C65F4 7F091AC4 020E8021 */ addu $s0, $s0, $t6 +/* 0C65F8 7F091AC8 00809025 */ move $s2, $a0 +/* 0C65FC 7F091ACC AFB1001C */ sw $s1, 0x1c($sp) +/* 0C6600 7F091AD0 0FC26C54 */ jal get_cur_playernum +/* 0C6604 7F091AD4 8E10F808 */ lw $s0, %lo(D_8003F808)($s0) +/* 0C6608 7F091AD8 0FC26919 */ jal get_num_players +/* 0C660C 7F091ADC AFA20028 */ sw $v0, 0x28($sp) +/* 0C6610 7F091AE0 24010001 */ li $at, 1 +/* 0C6614 7F091AE4 14410005 */ bne $v0, $at, .L7F091AFC +/* 0C6618 7F091AE8 00408825 */ move $s1, $v0 +/* 0C661C 7F091AEC 0FC246D9 */ jal handle_cheats_turned_on +/* 0C6620 7F091AF0 02402025 */ move $a0, $s2 +/* 0C6624 7F091AF4 10000016 */ b .L7F091B50 +/* 0C6628 7F091AF8 8FBF0024 */ lw $ra, 0x24($sp) +.L7F091AFC: +/* 0C662C 7F091AFC 320F0004 */ andi $t7, $s0, 4 +/* 0C6630 7F091B00 11E00012 */ beqz $t7, .L7F091B4C +/* 0C6634 7F091B04 32180020 */ andi $t8, $s0, 0x20 +/* 0C6638 7F091B08 13000005 */ beqz $t8, .L7F091B20 +/* 0C663C 7F091B0C 00000000 */ nop +/* 0C6640 7F091B10 0FC246D9 */ jal handle_cheats_turned_on +/* 0C6644 7F091B14 02402025 */ move $a0, $s2 +/* 0C6648 7F091B18 1000000D */ b .L7F091B50 +/* 0C664C 7F091B1C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F091B20: +/* 0C6650 7F091B20 18400008 */ blez $v0, .L7F091B44 +/* 0C6654 7F091B24 00008025 */ move $s0, $zero +.L7F091B28: +/* 0C6658 7F091B28 0FC26C43 */ jal set_cur_player +/* 0C665C 7F091B2C 02002025 */ move $a0, $s0 +/* 0C6660 7F091B30 0FC246D9 */ jal handle_cheats_turned_on +/* 0C6664 7F091B34 02402025 */ move $a0, $s2 +/* 0C6668 7F091B38 26100001 */ addiu $s0, $s0, 1 +/* 0C666C 7F091B3C 1611FFFA */ bne $s0, $s1, .L7F091B28 +/* 0C6670 7F091B40 00000000 */ nop +.L7F091B44: +/* 0C6674 7F091B44 0FC26C43 */ jal set_cur_player +/* 0C6678 7F091B48 8FA40028 */ lw $a0, 0x28($sp) +.L7F091B4C: +/* 0C667C 7F091B4C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F091B50: +/* 0C6680 7F091B50 8FB00018 */ lw $s0, 0x18($sp) +/* 0C6684 7F091B54 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C6688 7F091B58 8FB20020 */ lw $s2, 0x20($sp) +/* 0C668C 7F091B5C 03E00008 */ jr $ra +/* 0C6690 7F091B60 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void handle_cheats_turned_on(CHEAT_IDS cheat) + +{ + uint uVar1; + bool bVar2; + PLAYER_ID playernum; + PLAYER_ID PVar4; + //ulonglong uVar3; + //BOOL BVar5; + //BOOL BVar6; + //BOOL BVar7; + //BOOL BVar8; + //BOOL BVar9; + //u8 *text; + s32 sVar10; + //int amount; + STAGENUM stageid; + STAGENUM SVar11; + //f32 fVar12; + f32 scale; + PLAYER_ID local_10; + + uVar1 = (&D_8003F808)[cheat * 4]; + playernum = get_cur_playernum(); + numplayers = get_num_players(); + if ((uVar1 & 0x10) == 0) { + if ((uVar1 & 0x20) == 0) { + cheatl_ARRAY_80079e30[cheat] = cheatl_ARRAY_80079e30[cheat] | (byte)(1 << (playernum & 0x1f)); + } + else { + cheatl_ARRAY_80079e30[cheat] = (char)(1 << (numplayers & 0x1f)) + -1; + } + } + switch(cheat) { + case CHEAT_EXTRA_MP_CHARS: + unlock_mp_chars(); + break; + case CHEAT_INVINCIBILITY: + if (get_bondata_invincible_flag() == 0) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb00f)); + set_bondata_invincible_flag(1); + } + break; + case CHEAT_ALLGUNS: + if (get_BONDdata_allguns_flag() == 0) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb010)); + set_BONDdata_allguns_flag(1); + } + break; + case CHEAT_MAXAMMO: + display_string_in_lower_left_corner(get_textptr_for_textID(0xb011)); + set_max_ammo_for_cur_player(); + break; + case CHEAT_REMOVE_INVINCIBILITY: + bVar2 = false; + if (1 < (int)numplayers) { + local_10 = PLAYER1; + if (0 < (int)numplayers) { + do { + if (local_10 != playernum) { + set_cur_player(local_10); + if (get_bondata_invincible_flag() != 0) { + bVar2 = true; + set_bondata_invincible_flag(0); + } + } + set_cur_player(playernum); + local_10 = local_10 + PLAYER2; + } while (local_10 != numplayers); + } + if (bVar2) { + play_sfx_a1(ptr_sfx_buf,0x9f,(ALSndPlayer *)0x0); + } + } + break; + case CHEAT_LINEMODE: + set_linemode_flag(1); + break; + case cheats_cheat_2x_health: + if ((pPlayer->actual_health == 1.00000000) || (pPlayer->bondhealth < 1.00000000)) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb012)); + pPlayer->bondhealth = 1.00000000; + pPlayer->actual_health = 2.00000000; + } + break; + case cheats_cheat_2x_armor: + if ((pPlayer->actual_armor == 1.00000000) || (pPlayer->bondarmour < 1.00000000)) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb013)); + pPlayer->bondarmour = 1.00000000; + pPlayer->actual_armor = 2.00000000; + } + break; + case cheats_cheat_invisibility: + if (get_invisible_to_guards_flag() != 0) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb014)); + set_invisible_to_guards_flag(0); + } + break; + case cheats_cheat_infinite_ammo: + display_string_in_lower_left_corner(get_textptr_for_textID(0xb016)); + break; + case cheats_cheat_dk_mode: + display_string_in_lower_left_corner(get_textptr_for_textID(0xb017)); + set_DKMode(1); + break; + case cheats_cheat_extra_weapons: + if (numplayers == PLAYER2) + { + give_cur_player_ammo(AMMO_MAGNUM, get_max_ammo_for_type(AMMO_MAGNUM)); + give_cur_player_ammo(AMMO_GGUN, get_max_ammo_for_type(AMMO_GGUN)); + give_cur_player_ammo(AMMO_9MM, get_max_ammo_for_type(AMMO_9MM)); + if (0 < (add_item_to_inventory(ITEM_RUGER) + add_item_to_inventory(ITEM_LASER) + add_item_to_inventory(ITEM_GOLDENGUN) + add_item_to_inventory(ITEM_SILVERWPPK) + add_item_to_inventory(ITEM_GOLDWPPK))) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb018)); + } + } + break; + case cheats_cheat_tiny_bond: + if ((numplayers == PLAYER2) && (pPlayersPerm->player_perspective_height == 1.00000000)) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb019)); + pPlayersPerm->player_perspective_height = 0.50000000; + if (pPlayer->ptr_char_objectinstance != 0) + { + set_obj_instance_controller_scale(pPlayer->ptr_char_objectinstance,scale); + } + } + break; + case cheats_cheat_paintball: + display_string_in_lower_left_corner(get_textptr_for_textID(0xb01a)); + break; + case cheats_cheat_10x_health: + if ((pPlayer->actual_health == 1.00000000) || (pPlayer->bondhealth < 1.00000000)) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb01b)); + pPlayer->bondhealth = 1.00000000; + pPlayer->actual_health = 10.00000000; + } + break; + case cheats_cheat_magnum: + if (numplayers == PLAYER2) + { + add_item_to_inventory(ITEM_RUGER); + give_cur_player_ammo(AMMO_MAGNUM, get_max_ammo_for_type(AMMO_MAGNUM)); + } + break; + case cheats_cheat_laser: + if (numplayers == PLAYER2) + { + add_item_to_inventory(ITEM_LASER); + } + break; + case cheats_cheat_goldengun: + if (numplayers == PLAYER2) { + add_item_to_inventory(ITEM_GOLDENGUN); + give_cur_player_ammo(AMMO_GGUN, get_max_ammo_for_type(AMMO_GGUN)); + } + break; + case cheats_cheat_silverpp7: + if (numplayers == PLAYER2) + { + add_item_to_inventory(ITEM_SILVERWPPK); + give_cur_player_ammo(AMMO_9MM, get_max_ammo_for_type(AMMO_9MM)); + } + break; + case cheats_cheat_goldpp7: + if (numplayers == PLAYER2) + { + add_item_to_inventory(ITEM_GOLDWPPK); + give_cur_player_ammo(AMMO_9MM, get_max_ammo_for_type(AMMO_9MM)); + } + break; + case cheats_cheat_invisibility_mp: + set_curplayer_fade(300.00000000, 0.5f); + break; + case cheats_cheat_fast: + if (get_debug_fast_bond_flag() == FALSE) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb01d)); + set_debug_fast_bond_flag(TRUE); + } + break; + case cheats_debug_pos: + if (get_debug_testingmanpos_flag() == FALSE) + { + set_debug_testingmanpos_flag(TRUE); + } + break; + case cheats_debug_fast_ani: + if (get_animation_rate() < 4.00000000) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb034)); + animation_speed_related(4.00000000); + } + break; + case cheats_debug_slow_ani: + if (0.25000000 < get_animation_rate()) + { + display_string_in_lower_left_corner(get_textptr_for_textID(0xb032)); + animation_speed_related(0.25000000); + } + break; + case cheats_debug_2x_rockets: + if (numplayers == PLAYER2) + { + add_doubles_item_to_inventory(ITEM_ROCKETLAUNCH, ITEM_ROCKETLAUNCH); + give_cur_player_ammo(AMMO_ROCKETS, get_max_ammo_for_type(AMMO_ROCKETS)); + } + break; + case cheats_debug_2x_grenade_launch: + if (numplayers == PLAYER2) + { + add_doubles_item_to_inventory(ITEM_GRENADELAUNCH, ITEM_GRENADELAUNCH); + give_cur_player_ammo(AMMO_GRENADEROUND, get_max_ammo_for_type(AMMO_GRENADEROUND)); + } + break; + case cheats_debug_2x_rcp90: + if (numplayers == PLAYER2) + { + add_doubles_item_to_inventory(ITEM_FNP90, ITEM_FNP90); + give_cur_player_ammo(AMMO_9MM, get_max_ammo_for_type(AMMO_9MM)); + } + break; + case cheats_debug_2x_throwing_knife: + if (numplayers == PLAYER2) + { + add_doubles_item_to_inventory(ITEM_THROWKNIFE, ITEM_THROWKNIFE); + give_cur_player_ammo(AMMO_KNIFE, get_max_ammo_for_type(AMMO_KNIFE)); + } + break; + case cheats_debug_2x_hunting_knife: + if (numplayers == PLAYER2) + { + add_doubles_item_to_inventory(ITEM_KNIFE, ITEM_KNIFE); + } + break; + case cheats_debug_2x_laser: + if (numplayers == PLAYER2) + { + add_doubles_item_to_inventory(ITEM_LASER, ITEM_LASER); + } + break; + case UNUSED_23: + case UNUSED_24: + case UNUSED_25: + case UNUSED_26: + case UNUSED_27: + case UNUSED_28: + case UNUSED_29: + case UNUSED_2A: + case UNUSED_2B: + case UNUSED_2C: + case UNUSED_2D: + case UNUSED_2E: + case UNUSED_2F: + case UNUSED_30: + case UNUSED_31: + case UNUSED_32: + case UNUSED_33: + case UNUSED_34: + case UNUSED_35: + case UNLOCK_CHEATS: + if ((-1 < selected_folder_num) && (selected_folder_num < 4)) { + proc_7F01E760(selected_folder_num,cheat + ~cheats_debug_2x_laser); + play_sfx_a1(ptr_sfx_buf,0x9f,(ALSndPlayer *)0x0); + } + break; + case UNUSED_37: + case UNUSED_38: + case UNUSED_39: + case UNUSED_3A: + case UNUSED_3B: + case UNUSED_3C: + case UNUSED_3D: + case UNUSED_3E: + case UNUSED_3F: + case UNUSED_40: + case UNUSED_41: + case UNUSED_42: + case UNUSED_43: + case UNUSED_44: + case UNUSED_45: + case UNUSED_46: + case UNUSED_47: + case UNUSED_48: + case UNUSED_49: + case UNLOCK_STAGES: + SVar11 = cheat + ~UNLOCK_CHEATS; + if ((-1 < (int)selected_folder_num) && (amount = 0, (int)selected_folder_num < 4)) { + stageid = SP_STAGE_DAM; + if (0 < (int)SVar11) { + do { + sVar10 = isStageUnlockedAtDifficulty(selected_folder_num,stageid,DIFFICULTY_AGENT); + if (sVar10 == 3) { + amount = amount + 1; + } + stageid = stageid + SP_STAGE_FACILITY; + } while (stageid != SVar11); + } + if (SVar11 == amount + SP_STAGE_FACILITY) { + unlock_stage_in_folder_on_difficulty + (selected_folder_num,(longlong)(int)(cheat + ~UNUSED_37),0,99999999); + play_sfx_a1(ptr_sfx_buf,0x9f,(ALSndPlayer *)0x0); + } + } + } + return; +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +/*D:800572B0*/ +glabel jpt_cheats_cheat +.word cheats_cheat_extra_mp_chars +.word cheats_cheat_invincibility +.word cheats_cheat_allguns +.word cheats_cheat_max_ammo +.word cheats_debug_return_saved_ra +.word cheats_cheat_deactivate_invincibility +.word cheats_cheat_linemode +.word cheats_cheat_2x_health +.word cheats_cheat_2x_armor +.word cheats_cheat_invisibility +.word cheats_cheat_infinite_ammo +.word cheats_cheat_dk_mode +.word cheats_cheat_extra_weapons +.word cheats_cheat_tiny_bond +.word cheats_cheat_paintball +.word cheats_cheat_10x_health +.word cheats_cheat_magnum +.word cheats_cheat_laser +.word cheats_cheat_goldengun +.word cheats_cheat_silverpp7 +.word cheats_cheat_goldpp7 +.word cheats_cheat_invisibility_mp +.word cheats_debug_return_saved_ra +.word cheats_cheat_fast +.word cheats_debug_pos +.word cheats_debug_fast_ani +.word cheats_debug_slow_ani +.word cheats_debug_return_saved_ra +.word cheats_debug_2x_rockets +.word cheats_debug_2x_grenade_launch +.word cheats_debug_2x_rcp90 +.word cheats_debug_2x_throwing_knife +.word cheats_debug_2x_hunting_knife +.word cheats_debug_2x_laser +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel + +/*800573D8*/ +glabel finalamount +.word 0x3d4ccccd /*0.050000001*/ +.text +glabel handle_cheats_turned_on +/* 0C6694 7F091B64 00047100 */ sll $t6, $a0, 4 +/* 0C6698 7F091B68 3C0F8004 */ lui $t7, %hi(D_8003F808) +/* 0C669C 7F091B6C 01EE7821 */ addu $t7, $t7, $t6 +/* 0C66A0 7F091B70 8DEFF808 */ lw $t7, %lo(D_8003F808)($t7) +/* 0C66A4 7F091B74 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0C66A8 7F091B78 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C66AC 7F091B7C AFA40040 */ sw $a0, 0x40($sp) +/* 0C66B0 7F091B80 0FC26C54 */ jal get_cur_playernum +/* 0C66B4 7F091B84 AFAF003C */ sw $t7, 0x3c($sp) +/* 0C66B8 7F091B88 0FC26919 */ jal get_num_players +/* 0C66BC 7F091B8C AFA20038 */ sw $v0, 0x38($sp) +/* 0C66C0 7F091B90 8FA3003C */ lw $v1, 0x3c($sp) +/* 0C66C4 7F091B94 8FA60040 */ lw $a2, 0x40($sp) +/* 0C66C8 7F091B98 AFA20034 */ sw $v0, 0x34($sp) +/* 0C66CC 7F091B9C 30780010 */ andi $t8, $v1, 0x10 +/* 0C66D0 7F091BA0 17000012 */ bnez $t8, .L7F091BEC +/* 0C66D4 7F091BA4 30790020 */ andi $t9, $v1, 0x20 +/* 0C66D8 7F091BA8 1720000A */ bnez $t9, .L7F091BD4 +/* 0C66DC 7F091BAC 8FA50038 */ lw $a1, 0x38($sp) +/* 0C66E0 7F091BB0 3C098008 */ lui $t1, %hi(off_CODE_bss_80079E30) +/* 0C66E4 7F091BB4 25299E30 */ addiu $t1, %lo(off_CODE_bss_80079E30) # addiu $t1, $t1, -0x61d0 +/* 0C66E8 7F091BB8 00C91821 */ addu $v1, $a2, $t1 +/* 0C66EC 7F091BBC 906A0000 */ lbu $t2, ($v1) +/* 0C66F0 7F091BC0 240B0001 */ li $t3, 1 +/* 0C66F4 7F091BC4 00AB6004 */ sllv $t4, $t3, $a1 +/* 0C66F8 7F091BC8 014C6825 */ or $t5, $t2, $t4 +/* 0C66FC 7F091BCC 10000007 */ b .L7F091BEC +/* 0C6700 7F091BD0 A06D0000 */ sb $t5, ($v1) +.L7F091BD4: +/* 0C6704 7F091BD4 240E0001 */ li $t6, 1 +/* 0C6708 7F091BD8 004E7804 */ sllv $t7, $t6, $v0 +/* 0C670C 7F091BDC 3C018008 */ lui $at, %hi(off_CODE_bss_80079E30) +/* 0C6710 7F091BE0 00260821 */ addu $at, $at, $a2 +/* 0C6714 7F091BE4 25F8FFFF */ addiu $t8, $t7, -1 +/* 0C6718 7F091BE8 A0389E30 */ sb $t8, %lo(off_CODE_bss_80079E30)($at) +.L7F091BEC: +/* 0C671C 7F091BEC 24D9FFFF */ addiu $t9, $a2, -1 +/* 0C6720 7F091BF0 2F21004A */ sltiu $at, $t9, 0x4a +/* 0C6724 7F091BF4 1020020C */ beqz $at, .L7F092428 +/* 0C6728 7F091BF8 0019C880 */ sll $t9, $t9, 2 +/* 0C672C 7F091BFC 3C018005 */ lui $at, %hi(jpt_cheats_cheat) +/* 0C6730 7F091C00 00390821 */ addu $at, $at, $t9 +/* 0C6734 7F091C04 8C3972B0 */ lw $t9, %lo(jpt_cheats_cheat)($at) +/* 0C6738 7F091C08 03200008 */ jr $t9 +/* 0C673C 7F091C0C 00000000 */ nop +cheats_cheat_extra_mp_chars: +/* 0C6740 7F091C10 0FC040A0 */ jal unlock_all_mp_chars +/* 0C6744 7F091C14 00000000 */ nop +/* 0C6748 7F091C18 10000204 */ b .L7F09242C +/* 0C674C 7F091C1C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_invincibility: +/* 0C6750 7F091C20 0FC227D6 */ jal get_bondata_invincible_flag +/* 0C6754 7F091C24 00000000 */ nop +/* 0C6758 7F091C28 54400200 */ bnezl $v0, .L7F09242C +/* 0C675C 7F091C2C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6760 7F091C30 0FC30776 */ jal get_textptr_for_textID +/* 0C6764 7F091C34 3404B00F */ li $a0, 45071 +/* 0C6768 7F091C38 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C676C 7F091C3C 00402025 */ move $a0, $v0 +/* 0C6770 7F091C40 0FC227D2 */ jal set_bondata_invincible_flag +/* 0C6774 7F091C44 24040001 */ li $a0, 1 +/* 0C6778 7F091C48 100001F8 */ b .L7F09242C +/* 0C677C 7F091C4C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_allguns: +/* 0C6780 7F091C50 0FC230AB */ jal get_BONDdata_allguns_flag +/* 0C6784 7F091C54 00000000 */ nop +/* 0C6788 7F091C58 544001F4 */ bnezl $v0, .L7F09242C +/* 0C678C 7F091C5C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6790 7F091C60 0FC30776 */ jal get_textptr_for_textID +/* 0C6794 7F091C64 3404B010 */ li $a0, 45072 +/* 0C6798 7F091C68 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C679C 7F091C6C 00402025 */ move $a0, $v0 +/* 0C67A0 7F091C70 0FC230A7 */ jal set_BONDdata_allguns_flag +/* 0C67A4 7F091C74 24040001 */ li $a0, 1 +/* 0C67A8 7F091C78 100001EC */ b .L7F09242C +/* 0C67AC 7F091C7C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_max_ammo: +/* 0C67B0 7F091C80 0FC30776 */ jal get_textptr_for_textID +/* 0C67B4 7F091C84 3404B011 */ li $a0, 45073 +/* 0C67B8 7F091C88 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C67BC 7F091C8C 00402025 */ move $a0, $v0 +/* 0C67C0 7F091C90 0FC1A4BC */ jal set_max_ammo_for_cur_player +/* 0C67C4 7F091C94 00000000 */ nop +/* 0C67C8 7F091C98 100001E4 */ b .L7F09242C +/* 0C67CC 7F091C9C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_deactivate_invincibility: +/* 0C67D0 7F091CA0 28410002 */ slti $at, $v0, 2 +/* 0C67D4 7F091CA4 142001E0 */ bnez $at, .L7F092428 +/* 0C67D8 7F091CA8 AFA0002C */ sw $zero, 0x2c($sp) +/* 0C67DC 7F091CAC 18400015 */ blez $v0, .L7F091D04 +/* 0C67E0 7F091CB0 AFA00030 */ sw $zero, 0x30($sp) +.L7F091CB4: +/* 0C67E4 7F091CB4 8FA50038 */ lw $a1, 0x38($sp) +/* 0C67E8 7F091CB8 8FA90030 */ lw $t1, 0x30($sp) +/* 0C67EC 7F091CBC 1125000A */ beq $t1, $a1, .L7F091CE8 +/* 0C67F0 7F091CC0 00000000 */ nop +/* 0C67F4 7F091CC4 0FC26C43 */ jal set_cur_player +/* 0C67F8 7F091CC8 01202025 */ move $a0, $t1 +/* 0C67FC 7F091CCC 0FC227D6 */ jal get_bondata_invincible_flag +/* 0C6800 7F091CD0 00000000 */ nop +/* 0C6804 7F091CD4 10400004 */ beqz $v0, .L7F091CE8 +/* 0C6808 7F091CD8 00002025 */ move $a0, $zero +/* 0C680C 7F091CDC 240B0001 */ li $t3, 1 +/* 0C6810 7F091CE0 0FC227D2 */ jal set_bondata_invincible_flag +/* 0C6814 7F091CE4 AFAB002C */ sw $t3, 0x2c($sp) +.L7F091CE8: +/* 0C6818 7F091CE8 0FC26C43 */ jal set_cur_player +/* 0C681C 7F091CEC 8FA40038 */ lw $a0, 0x38($sp) +/* 0C6820 7F091CF0 8FAA0030 */ lw $t2, 0x30($sp) +/* 0C6824 7F091CF4 8FAD0034 */ lw $t5, 0x34($sp) +/* 0C6828 7F091CF8 254C0001 */ addiu $t4, $t2, 1 +/* 0C682C 7F091CFC 158DFFED */ bne $t4, $t5, .L7F091CB4 +/* 0C6830 7F091D00 AFAC0030 */ sw $t4, 0x30($sp) +.L7F091D04: +/* 0C6834 7F091D04 8FAE002C */ lw $t6, 0x2c($sp) +/* 0C6838 7F091D08 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0C683C 7F091D0C 2405009F */ li $a1, 159 +/* 0C6840 7F091D10 11C001C5 */ beqz $t6, .L7F092428 +/* 0C6844 7F091D14 00003025 */ move $a2, $zero +/* 0C6848 7F091D18 0C002382 */ jal play_sfx_a1 +/* 0C684C 7F091D1C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0C6850 7F091D20 100001C2 */ b .L7F09242C +/* 0C6854 7F091D24 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_linemode: +/* 0C6858 7F091D28 0FC243FA */ jal set_debug_VisCVG_flag +/* 0C685C 7F091D2C 24040001 */ li $a0, 1 +/* 0C6860 7F091D30 100001BE */ b .L7F09242C +/* 0C6864 7F091D34 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_2x_health: +/* 0C6868 7F091D38 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C686C 7F091D3C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C6870 7F091D40 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C6874 7F091D44 44812000 */ mtc1 $at, $f4 +/* 0C6878 7F091D48 C4462A3C */ lwc1 $f6, 0x2a3c($v0) +/* 0C687C 7F091D4C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C6880 7F091D50 46062032 */ c.eq.s $f4, $f6 +/* 0C6884 7F091D54 00000000 */ nop +/* 0C6888 7F091D58 45010008 */ bc1t .L7F091D7C +/* 0C688C 7F091D5C 00000000 */ nop +/* 0C6890 7F091D60 C44800DC */ lwc1 $f8, 0xdc($v0) +/* 0C6894 7F091D64 44815000 */ mtc1 $at, $f10 +/* 0C6898 7F091D68 00000000 */ nop +/* 0C689C 7F091D6C 460A403C */ c.lt.s $f8, $f10 +/* 0C68A0 7F091D70 00000000 */ nop +/* 0C68A4 7F091D74 450201AD */ bc1fl .L7F09242C +/* 0C68A8 7F091D78 8FBF0014 */ lw $ra, 0x14($sp) +.L7F091D7C: +/* 0C68AC 7F091D7C 0FC30776 */ jal get_textptr_for_textID +/* 0C68B0 7F091D80 3404B012 */ li $a0, 45074 +/* 0C68B4 7F091D84 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C68B8 7F091D88 00402025 */ move $a0, $v0 +/* 0C68BC 7F091D8C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C68C0 7F091D90 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0C68C4 7F091D94 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0C68C8 7F091D98 44818000 */ mtc1 $at, $f16 +/* 0C68CC 7F091D9C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0C68D0 7F091DA0 3C188008 */ lui $t8, %hi(pPlayer) +/* 0C68D4 7F091DA4 E5F000DC */ swc1 $f16, 0xdc($t7) +/* 0C68D8 7F091DA8 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0C68DC 7F091DAC 44819000 */ mtc1 $at, $f18 +/* 0C68E0 7F091DB0 1000019D */ b .L7F092428 +/* 0C68E4 7F091DB4 E7122A3C */ swc1 $f18, 0x2a3c($t8) +cheats_cheat_2x_armor: +/* 0C68E8 7F091DB8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C68EC 7F091DBC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C68F0 7F091DC0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C68F4 7F091DC4 44810000 */ mtc1 $at, $f0 +/* 0C68F8 7F091DC8 C4442A40 */ lwc1 $f4, 0x2a40($v0) +/* 0C68FC 7F091DCC 46040032 */ c.eq.s $f0, $f4 +/* 0C6900 7F091DD0 00000000 */ nop +/* 0C6904 7F091DD4 45010006 */ bc1t .L7F091DF0 +/* 0C6908 7F091DD8 00000000 */ nop +/* 0C690C 7F091DDC C44600E0 */ lwc1 $f6, 0xe0($v0) +/* 0C6910 7F091DE0 4600303C */ c.lt.s $f6, $f0 +/* 0C6914 7F091DE4 00000000 */ nop +/* 0C6918 7F091DE8 45020190 */ bc1fl .L7F09242C +/* 0C691C 7F091DEC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F091DF0: +/* 0C6920 7F091DF0 0FC30776 */ jal get_textptr_for_textID +/* 0C6924 7F091DF4 3404B013 */ li $a0, 45075 +/* 0C6928 7F091DF8 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C692C 7F091DFC 00402025 */ move $a0, $v0 +/* 0C6930 7F091E00 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C6934 7F091E04 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0C6938 7F091E08 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C693C 7F091E0C 44814000 */ mtc1 $at, $f8 +/* 0C6940 7F091E10 8C590000 */ lw $t9, ($v0) +/* 0C6944 7F091E14 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0C6948 7F091E18 44815000 */ mtc1 $at, $f10 +/* 0C694C 7F091E1C E72800E0 */ swc1 $f8, 0xe0($t9) +/* 0C6950 7F091E20 8C490000 */ lw $t1, ($v0) +/* 0C6954 7F091E24 10000180 */ b .L7F092428 +/* 0C6958 7F091E28 E52A2A40 */ swc1 $f10, 0x2a40($t1) +cheats_cheat_invisibility: +/* 0C695C 7F091E2C 0FC227DD */ jal get_invisible_to_guards_flag +/* 0C6960 7F091E30 00000000 */ nop +/* 0C6964 7F091E34 5040017D */ beql $v0, $zero, .L7F09242C +/* 0C6968 7F091E38 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C696C 7F091E3C 0FC30776 */ jal get_textptr_for_textID +/* 0C6970 7F091E40 3404B014 */ li $a0, 45076 +/* 0C6974 7F091E44 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6978 7F091E48 00402025 */ move $a0, $v0 +/* 0C697C 7F091E4C 0FC227DA */ jal set_invisible_to_guards_flag +/* 0C6980 7F091E50 00002025 */ move $a0, $zero +/* 0C6984 7F091E54 10000175 */ b .L7F09242C +/* 0C6988 7F091E58 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_infinite_ammo: +/* 0C698C 7F091E5C 0FC30776 */ jal get_textptr_for_textID +/* 0C6990 7F091E60 3404B016 */ li $a0, 45078 +/* 0C6994 7F091E64 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6998 7F091E68 00402025 */ move $a0, $v0 +/* 0C699C 7F091E6C 1000016F */ b .L7F09242C +/* 0C69A0 7F091E70 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_dk_mode: +/* 0C69A4 7F091E74 0FC30776 */ jal get_textptr_for_textID +/* 0C69A8 7F091E78 3404B017 */ li $a0, 45079 +/* 0C69AC 7F091E7C 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C69B0 7F091E80 00402025 */ move $a0, $v0 +/* 0C69B4 7F091E84 0FC249FD */ jal set_DKMode +/* 0C69B8 7F091E88 24040001 */ li $a0, 1 +/* 0C69BC 7F091E8C 10000167 */ b .L7F09242C +/* 0C69C0 7F091E90 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_extra_weapons: +/* 0C69C4 7F091E94 24010001 */ li $at, 1 +/* 0C69C8 7F091E98 54410164 */ bnel $v0, $at, .L7F09242C +/* 0C69CC 7F091E9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C69D0 7F091EA0 0FC23122 */ jal add_item_to_inventory +/* 0C69D4 7F091EA4 24040012 */ li $a0, 18 +/* 0C69D8 7F091EA8 AFA20028 */ sw $v0, 0x28($sp) +/* 0C69DC 7F091EAC 0FC23122 */ jal add_item_to_inventory +/* 0C69E0 7F091EB0 24040016 */ li $a0, 22 +/* 0C69E4 7F091EB4 8FAB0028 */ lw $t3, 0x28($sp) +/* 0C69E8 7F091EB8 24040013 */ li $a0, 19 +/* 0C69EC 7F091EBC 01625021 */ addu $t2, $t3, $v0 +/* 0C69F0 7F091EC0 0FC23122 */ jal add_item_to_inventory +/* 0C69F4 7F091EC4 AFAA0028 */ sw $t2, 0x28($sp) +/* 0C69F8 7F091EC8 8FAC0028 */ lw $t4, 0x28($sp) +/* 0C69FC 7F091ECC 24040014 */ li $a0, 20 +/* 0C6A00 7F091ED0 01826821 */ addu $t5, $t4, $v0 +/* 0C6A04 7F091ED4 0FC23122 */ jal add_item_to_inventory +/* 0C6A08 7F091ED8 AFAD0028 */ sw $t5, 0x28($sp) +/* 0C6A0C 7F091EDC 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C6A10 7F091EE0 24040015 */ li $a0, 21 +/* 0C6A14 7F091EE4 01C27821 */ addu $t7, $t6, $v0 +/* 0C6A18 7F091EE8 0FC23122 */ jal add_item_to_inventory +/* 0C6A1C 7F091EEC AFAF0028 */ sw $t7, 0x28($sp) +/* 0C6A20 7F091EF0 8FB80028 */ lw $t8, 0x28($sp) +/* 0C6A24 7F091EF4 2404000C */ li $a0, 12 +/* 0C6A28 7F091EF8 0302C821 */ addu $t9, $t8, $v0 +/* 0C6A2C 7F091EFC 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6A30 7F091F00 AFB90028 */ sw $t9, 0x28($sp) +/* 0C6A34 7F091F04 2404000C */ li $a0, 12 +/* 0C6A38 7F091F08 0FC1A44C */ jal give_cur_player_ammo +/* 0C6A3C 7F091F0C 00402825 */ move $a1, $v0 +/* 0C6A40 7F091F10 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6A44 7F091F14 2404000D */ li $a0, 13 +/* 0C6A48 7F091F18 2404000D */ li $a0, 13 +/* 0C6A4C 7F091F1C 0FC1A44C */ jal give_cur_player_ammo +/* 0C6A50 7F091F20 00402825 */ move $a1, $v0 +/* 0C6A54 7F091F24 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6A58 7F091F28 24040001 */ li $a0, 1 +/* 0C6A5C 7F091F2C 24040001 */ li $a0, 1 +/* 0C6A60 7F091F30 0FC1A44C */ jal give_cur_player_ammo +/* 0C6A64 7F091F34 00402825 */ move $a1, $v0 +/* 0C6A68 7F091F38 8FA90028 */ lw $t1, 0x28($sp) +/* 0C6A6C 7F091F3C 5920013B */ blezl $t1, .L7F09242C +/* 0C6A70 7F091F40 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6A74 7F091F44 0FC30776 */ jal get_textptr_for_textID +/* 0C6A78 7F091F48 3404B018 */ li $a0, 45080 +/* 0C6A7C 7F091F4C 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6A80 7F091F50 00402025 */ move $a0, $v0 +/* 0C6A84 7F091F54 10000135 */ b .L7F09242C +/* 0C6A88 7F091F58 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_tiny_bond: +/* 0C6A8C 7F091F5C 24010001 */ li $at, 1 +/* 0C6A90 7F091F60 14410131 */ bne $v0, $at, .L7F092428 +/* 0C6A94 7F091F64 3C0B8008 */ lui $t3, %hi(pPlayersPerm) +/* 0C6A98 7F091F68 8D6BA0B4 */ lw $t3, %lo(pPlayersPerm)($t3) +/* 0C6A9C 7F091F6C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C6AA0 7F091F70 44818000 */ mtc1 $at, $f16 +/* 0C6AA4 7F091F74 C5720064 */ lwc1 $f18, 0x64($t3) +/* 0C6AA8 7F091F78 46128032 */ c.eq.s $f16, $f18 +/* 0C6AAC 7F091F7C 00000000 */ nop +/* 0C6AB0 7F091F80 4502012A */ bc1fl .L7F09242C +/* 0C6AB4 7F091F84 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6AB8 7F091F88 0FC30776 */ jal get_textptr_for_textID +/* 0C6ABC 7F091F8C 3404B019 */ li $a0, 45081 +/* 0C6AC0 7F091F90 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6AC4 7F091F94 00402025 */ move $a0, $v0 +/* 0C6AC8 7F091F98 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C6ACC 7F091F9C 3C0A8008 */ lui $t2, %hi(pPlayersPerm) +/* 0C6AD0 7F091FA0 44810000 */ mtc1 $at, $f0 +/* 0C6AD4 7F091FA4 8D4AA0B4 */ lw $t2, %lo(pPlayersPerm)($t2) +/* 0C6AD8 7F091FA8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0C6ADC 7F091FAC E5400064 */ swc1 $f0, 0x64($t2) +/* 0C6AE0 7F091FB0 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0C6AE4 7F091FB4 8D8400D4 */ lw $a0, 0xd4($t4) +/* 0C6AE8 7F091FB8 5080011C */ beql $a0, $zero, .L7F09242C +/* 0C6AEC 7F091FBC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6AF0 7F091FC0 C4840014 */ lwc1 $f4, 0x14($a0) +/* 0C6AF4 7F091FC4 46002182 */ mul.s $f6, $f4, $f0 +/* 0C6AF8 7F091FC8 44053000 */ mfc1 $a1, $f6 +/* 0C6AFC 7F091FCC 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0C6B00 7F091FD0 00000000 */ nop +/* 0C6B04 7F091FD4 10000115 */ b .L7F09242C +/* 0C6B08 7F091FD8 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_paintball: +/* 0C6B0C 7F091FDC 0FC30776 */ jal get_textptr_for_textID +/* 0C6B10 7F091FE0 3404B01A */ li $a0, 45082 +/* 0C6B14 7F091FE4 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6B18 7F091FE8 00402025 */ move $a0, $v0 +/* 0C6B1C 7F091FEC 1000010F */ b .L7F09242C +/* 0C6B20 7F091FF0 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_10x_health: +/* 0C6B24 7F091FF4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C6B28 7F091FF8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C6B2C 7F091FFC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C6B30 7F092000 44810000 */ mtc1 $at, $f0 +/* 0C6B34 7F092004 C4482A3C */ lwc1 $f8, 0x2a3c($v0) +/* 0C6B38 7F092008 46080032 */ c.eq.s $f0, $f8 +/* 0C6B3C 7F09200C 00000000 */ nop +/* 0C6B40 7F092010 45010006 */ bc1t .L7F09202C +/* 0C6B44 7F092014 00000000 */ nop +/* 0C6B48 7F092018 C44A00DC */ lwc1 $f10, 0xdc($v0) +/* 0C6B4C 7F09201C 4600503C */ c.lt.s $f10, $f0 +/* 0C6B50 7F092020 00000000 */ nop +/* 0C6B54 7F092024 45020101 */ bc1fl .L7F09242C +/* 0C6B58 7F092028 8FBF0014 */ lw $ra, 0x14($sp) +.L7F09202C: +/* 0C6B5C 7F09202C 0FC30776 */ jal get_textptr_for_textID +/* 0C6B60 7F092030 3404B01B */ li $a0, 45083 +/* 0C6B64 7F092034 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6B68 7F092038 00402025 */ move $a0, $v0 +/* 0C6B6C 7F09203C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C6B70 7F092040 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0C6B74 7F092044 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C6B78 7F092048 44818000 */ mtc1 $at, $f16 +/* 0C6B7C 7F09204C 8C4D0000 */ lw $t5, ($v0) +/* 0C6B80 7F092050 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0C6B84 7F092054 44819000 */ mtc1 $at, $f18 +/* 0C6B88 7F092058 E5B000DC */ swc1 $f16, 0xdc($t5) +/* 0C6B8C 7F09205C 8C4E0000 */ lw $t6, ($v0) +/* 0C6B90 7F092060 100000F1 */ b .L7F092428 +/* 0C6B94 7F092064 E5D22A3C */ swc1 $f18, 0x2a3c($t6) +cheats_cheat_magnum: +/* 0C6B98 7F092068 24010001 */ li $at, 1 +/* 0C6B9C 7F09206C 544100EF */ bnel $v0, $at, .L7F09242C +/* 0C6BA0 7F092070 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6BA4 7F092074 0FC23122 */ jal add_item_to_inventory +/* 0C6BA8 7F092078 24040012 */ li $a0, 18 +/* 0C6BAC 7F09207C 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6BB0 7F092080 2404000C */ li $a0, 12 +/* 0C6BB4 7F092084 2404000C */ li $a0, 12 +/* 0C6BB8 7F092088 0FC1A44C */ jal give_cur_player_ammo +/* 0C6BBC 7F09208C 00402825 */ move $a1, $v0 +/* 0C6BC0 7F092090 100000E6 */ b .L7F09242C +/* 0C6BC4 7F092094 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_laser: +/* 0C6BC8 7F092098 24010001 */ li $at, 1 +/* 0C6BCC 7F09209C 544100E3 */ bnel $v0, $at, .L7F09242C +/* 0C6BD0 7F0920A0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6BD4 7F0920A4 0FC23122 */ jal add_item_to_inventory +/* 0C6BD8 7F0920A8 24040016 */ li $a0, 22 +/* 0C6BDC 7F0920AC 100000DF */ b .L7F09242C +/* 0C6BE0 7F0920B0 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_goldengun: +/* 0C6BE4 7F0920B4 24010001 */ li $at, 1 +/* 0C6BE8 7F0920B8 544100DC */ bnel $v0, $at, .L7F09242C +/* 0C6BEC 7F0920BC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6BF0 7F0920C0 0FC23122 */ jal add_item_to_inventory +/* 0C6BF4 7F0920C4 24040013 */ li $a0, 19 +/* 0C6BF8 7F0920C8 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6BFC 7F0920CC 2404000D */ li $a0, 13 +/* 0C6C00 7F0920D0 2404000D */ li $a0, 13 +/* 0C6C04 7F0920D4 0FC1A44C */ jal give_cur_player_ammo +/* 0C6C08 7F0920D8 00402825 */ move $a1, $v0 +/* 0C6C0C 7F0920DC 100000D3 */ b .L7F09242C +/* 0C6C10 7F0920E0 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_silverpp7: +/* 0C6C14 7F0920E4 24010001 */ li $at, 1 +/* 0C6C18 7F0920E8 544100D0 */ bnel $v0, $at, .L7F09242C +/* 0C6C1C 7F0920EC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6C20 7F0920F0 0FC23122 */ jal add_item_to_inventory +/* 0C6C24 7F0920F4 24040014 */ li $a0, 20 +/* 0C6C28 7F0920F8 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6C2C 7F0920FC 24040001 */ li $a0, 1 +/* 0C6C30 7F092100 24040001 */ li $a0, 1 +/* 0C6C34 7F092104 0FC1A44C */ jal give_cur_player_ammo +/* 0C6C38 7F092108 00402825 */ move $a1, $v0 +/* 0C6C3C 7F09210C 100000C7 */ b .L7F09242C +/* 0C6C40 7F092110 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_goldpp7: +/* 0C6C44 7F092114 24010001 */ li $at, 1 +/* 0C6C48 7F092118 544100C4 */ bnel $v0, $at, .L7F09242C +/* 0C6C4C 7F09211C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6C50 7F092120 0FC23122 */ jal add_item_to_inventory +/* 0C6C54 7F092124 24040015 */ li $a0, 21 +/* 0C6C58 7F092128 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6C5C 7F09212C 24040001 */ li $a0, 1 +/* 0C6C60 7F092130 24040001 */ li $a0, 1 +/* 0C6C64 7F092134 0FC1A44C */ jal give_cur_player_ammo +/* 0C6C68 7F092138 00402825 */ move $a1, $v0 +/* 0C6C6C 7F09213C 100000BB */ b .L7F09242C +/* 0C6C70 7F092140 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_invisibility_mp: +/* 0C6C74 7F092144 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0C6C78 7F092148 44816000 */ mtc1 $at, $f12 +/* 0C6C7C 7F09214C 3C018005 */ lui $at, %hi(finalamount) +/* 0C6C80 7F092150 0FC20284 */ jal set_curplayer_fade +/* 0C6C84 7F092154 C42E73D8 */ lwc1 $f14, %lo(finalamount)($at) +/* 0C6C88 7F092158 100000B4 */ b .L7F09242C +/* 0C6C8C 7F09215C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_fast: +/* 0C6C90 7F092160 0FC24406 */ jal get_debug_fast_bond_flag +/* 0C6C94 7F092164 00000000 */ nop +/* 0C6C98 7F092168 544000B0 */ bnezl $v0, .L7F09242C +/* 0C6C9C 7F09216C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6CA0 7F092170 0FC30776 */ jal get_textptr_for_textID +/* 0C6CA4 7F092174 3404B01D */ li $a0, 45085 +/* 0C6CA8 7F092178 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6CAC 7F09217C 00402025 */ move $a0, $v0 +/* 0C6CB0 7F092180 0FC24409 */ jal set_debug_fast_bond_flag +/* 0C6CB4 7F092184 24040001 */ li $a0, 1 +/* 0C6CB8 7F092188 100000A8 */ b .L7F09242C +/* 0C6CBC 7F09218C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_pos: +/* 0C6CC0 7F092190 0FC243E2 */ jal get_debug_testingmanpos_flag +/* 0C6CC4 7F092194 00000000 */ nop +/* 0C6CC8 7F092198 544000A4 */ bnezl $v0, .L7F09242C +/* 0C6CCC 7F09219C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6CD0 7F0921A0 0FC243E5 */ jal set_debug_testingmanpos_flag +/* 0C6CD4 7F0921A4 24040001 */ li $a0, 1 +/* 0C6CD8 7F0921A8 100000A0 */ b .L7F09242C +/* 0C6CDC 7F0921AC 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_fast_ani: +/* 0C6CE0 7F0921B0 0FC08179 */ jal get_animation_rate +/* 0C6CE4 7F0921B4 00000000 */ nop +/* 0C6CE8 7F0921B8 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0C6CEC 7F0921BC 44812000 */ mtc1 $at, $f4 +/* 0C6CF0 7F0921C0 00000000 */ nop +/* 0C6CF4 7F0921C4 4604003C */ c.lt.s $f0, $f4 +/* 0C6CF8 7F0921C8 00000000 */ nop +/* 0C6CFC 7F0921CC 45020097 */ bc1fl .L7F09242C +/* 0C6D00 7F0921D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6D04 7F0921D4 0FC30776 */ jal get_textptr_for_textID +/* 0C6D08 7F0921D8 3404B034 */ li $a0, 45108 +/* 0C6D0C 7F0921DC 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6D10 7F0921E0 00402025 */ move $a0, $v0 +/* 0C6D14 7F0921E4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0C6D18 7F0921E8 44816000 */ mtc1 $at, $f12 +/* 0C6D1C 7F0921EC 0FC08150 */ jal animation_speed_related +/* 0C6D20 7F0921F0 00000000 */ nop +/* 0C6D24 7F0921F4 1000008D */ b .L7F09242C +/* 0C6D28 7F0921F8 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_slow_ani: +/* 0C6D2C 7F0921FC 0FC08179 */ jal get_animation_rate +/* 0C6D30 7F092200 00000000 */ nop +/* 0C6D34 7F092204 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0C6D38 7F092208 44813000 */ mtc1 $at, $f6 +/* 0C6D3C 7F09220C 00000000 */ nop +/* 0C6D40 7F092210 4600303C */ c.lt.s $f6, $f0 +/* 0C6D44 7F092214 00000000 */ nop +/* 0C6D48 7F092218 45020084 */ bc1fl .L7F09242C +/* 0C6D4C 7F09221C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6D50 7F092220 0FC30776 */ jal get_textptr_for_textID +/* 0C6D54 7F092224 3404B032 */ li $a0, 45106 +/* 0C6D58 7F092228 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6D5C 7F09222C 00402025 */ move $a0, $v0 +/* 0C6D60 7F092230 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0C6D64 7F092234 44816000 */ mtc1 $at, $f12 +/* 0C6D68 7F092238 0FC08150 */ jal animation_speed_related +/* 0C6D6C 7F09223C 00000000 */ nop +/* 0C6D70 7F092240 1000007A */ b .L7F09242C +/* 0C6D74 7F092244 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_rockets: +/* 0C6D78 7F092248 24010001 */ li $at, 1 +/* 0C6D7C 7F09224C 14410076 */ bne $v0, $at, .L7F092428 +/* 0C6D80 7F092250 24040019 */ li $a0, 25 +/* 0C6D84 7F092254 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C6D88 7F092258 24050019 */ li $a1, 25 +/* 0C6D8C 7F09225C 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6D90 7F092260 24040006 */ li $a0, 6 +/* 0C6D94 7F092264 24040006 */ li $a0, 6 +/* 0C6D98 7F092268 0FC1A44C */ jal give_cur_player_ammo +/* 0C6D9C 7F09226C 00402825 */ move $a1, $v0 +/* 0C6DA0 7F092270 1000006E */ b .L7F09242C +/* 0C6DA4 7F092274 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_grenade_launch: +/* 0C6DA8 7F092278 24010001 */ li $at, 1 +/* 0C6DAC 7F09227C 1441006A */ bne $v0, $at, .L7F092428 +/* 0C6DB0 7F092280 24040018 */ li $a0, 24 +/* 0C6DB4 7F092284 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C6DB8 7F092288 24050018 */ li $a1, 24 +/* 0C6DBC 7F09228C 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6DC0 7F092290 2404000B */ li $a0, 11 +/* 0C6DC4 7F092294 2404000B */ li $a0, 11 +/* 0C6DC8 7F092298 0FC1A44C */ jal give_cur_player_ammo +/* 0C6DCC 7F09229C 00402825 */ move $a1, $v0 +/* 0C6DD0 7F0922A0 10000062 */ b .L7F09242C +/* 0C6DD4 7F0922A4 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_rcp90: +/* 0C6DD8 7F0922A8 24010001 */ li $at, 1 +/* 0C6DDC 7F0922AC 1441005E */ bne $v0, $at, .L7F092428 +/* 0C6DE0 7F0922B0 2404000E */ li $a0, 14 +/* 0C6DE4 7F0922B4 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C6DE8 7F0922B8 2405000E */ li $a1, 14 +/* 0C6DEC 7F0922BC 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6DF0 7F0922C0 24040001 */ li $a0, 1 +/* 0C6DF4 7F0922C4 24040001 */ li $a0, 1 +/* 0C6DF8 7F0922C8 0FC1A44C */ jal give_cur_player_ammo +/* 0C6DFC 7F0922CC 00402825 */ move $a1, $v0 +/* 0C6E00 7F0922D0 10000056 */ b .L7F09242C +/* 0C6E04 7F0922D4 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_throwing_knife: +/* 0C6E08 7F0922D8 24010001 */ li $at, 1 +/* 0C6E0C 7F0922DC 14410052 */ bne $v0, $at, .L7F092428 +/* 0C6E10 7F0922E0 24040003 */ li $a0, 3 +/* 0C6E14 7F0922E4 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C6E18 7F0922E8 24050003 */ li $a1, 3 +/* 0C6E1C 7F0922EC 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6E20 7F0922F0 2404000A */ li $a0, 10 +/* 0C6E24 7F0922F4 2404000A */ li $a0, 10 +/* 0C6E28 7F0922F8 0FC1A44C */ jal give_cur_player_ammo +/* 0C6E2C 7F0922FC 00402825 */ move $a1, $v0 +/* 0C6E30 7F092300 1000004A */ b .L7F09242C +/* 0C6E34 7F092304 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_hunting_knife: +/* 0C6E38 7F092308 24010001 */ li $at, 1 +/* 0C6E3C 7F09230C 14410046 */ bne $v0, $at, .L7F092428 +/* 0C6E40 7F092310 24040002 */ li $a0, 2 +/* 0C6E44 7F092314 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C6E48 7F092318 24050002 */ li $a1, 2 +/* 0C6E4C 7F09231C 10000043 */ b .L7F09242C +/* 0C6E50 7F092320 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_laser: +/* 0C6E54 7F092324 24010001 */ li $at, 1 +/* 0C6E58 7F092328 1441003F */ bne $v0, $at, .L7F092428 +/* 0C6E5C 7F09232C 24040016 */ li $a0, 22 +/* 0C6E60 7F092330 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C6E64 7F092334 24050016 */ li $a1, 22 +/* 0C6E68 7F092338 1000003C */ b .L7F09242C +/* 0C6E6C 7F09233C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_unlockcheat: +/* 0C6E70 7F092340 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 0C6E74 7F092344 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 0C6E78 7F092348 24C5FFDD */ addiu $a1, $a2, -0x23 +/* 0C6E7C 7F09234C 04800036 */ bltz $a0, .L7F092428 +/* 0C6E80 7F092350 28810004 */ slti $at, $a0, 4 +/* 0C6E84 7F092354 50200035 */ beql $at, $zero, .L7F09242C +/* 0C6E88 7F092358 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6E8C 7F09235C 0FC079D8 */ jal sub_GAME_7F01E760 +/* 0C6E90 7F092360 00000000 */ nop +/* 0C6E94 7F092364 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0C6E98 7F092368 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0C6E9C 7F09236C 2405009F */ li $a1, 159 +/* 0C6EA0 7F092370 0C002382 */ jal play_sfx_a1 +/* 0C6EA4 7F092374 00003025 */ move $a2, $zero +/* 0C6EA8 7F092378 1000002C */ b .L7F09242C +/* 0C6EAC 7F09237C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_unlocklevel: +/* 0C6EB0 7F092380 3C028003 */ lui $v0, %hi(selected_folder_num) +/* 0C6EB4 7F092384 2442A8E8 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x5718 +/* 0C6EB8 7F092388 8C440000 */ lw $a0, ($v0) +/* 0C6EBC 7F09238C 24C8FFC9 */ addiu $t0, $a2, -0x37 +/* 0C6EC0 7F092390 04800025 */ bltz $a0, .L7F092428 +/* 0C6EC4 7F092394 28810004 */ slti $at, $a0, 4 +/* 0C6EC8 7F092398 10200023 */ beqz $at, .L7F092428 +/* 0C6ECC 7F09239C 00001825 */ move $v1, $zero +/* 0C6ED0 7F0923A0 19000014 */ blez $t0, .L7F0923F4 +/* 0C6ED4 7F0923A4 00002825 */ move $a1, $zero +.L7F0923A8: +/* 0C6ED8 7F0923A8 3C028003 */ lui $v0, %hi(selected_folder_num) +/* 0C6EDC 7F0923AC 2442A8E8 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x5718 +/* 0C6EE0 7F0923B0 8C440000 */ lw $a0, ($v0) +/* 0C6EE4 7F0923B4 00003025 */ move $a2, $zero +/* 0C6EE8 7F0923B8 AFA30018 */ sw $v1, 0x18($sp) +/* 0C6EEC 7F0923BC AFA5001C */ sw $a1, 0x1c($sp) +/* 0C6EF0 7F0923C0 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 0C6EF4 7F0923C4 AFA80020 */ sw $t0, 0x20($sp) +/* 0C6EF8 7F0923C8 24010003 */ li $at, 3 +/* 0C6EFC 7F0923CC 8FA30018 */ lw $v1, 0x18($sp) +/* 0C6F00 7F0923D0 8FA5001C */ lw $a1, 0x1c($sp) +/* 0C6F04 7F0923D4 14410002 */ bne $v0, $at, .L7F0923E0 +/* 0C6F08 7F0923D8 8FA80020 */ lw $t0, 0x20($sp) +/* 0C6F0C 7F0923DC 24630001 */ addiu $v1, $v1, 1 +.L7F0923E0: +/* 0C6F10 7F0923E0 24A50001 */ addiu $a1, $a1, 1 +/* 0C6F14 7F0923E4 14A8FFF0 */ bne $a1, $t0, .L7F0923A8 +/* 0C6F18 7F0923E8 00000000 */ nop +/* 0C6F1C 7F0923EC 3C028003 */ lui $v0, %hi(selected_folder_num) +/* 0C6F20 7F0923F0 2442A8E8 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x5718 +.L7F0923F4: +/* 0C6F24 7F0923F4 246F0001 */ addiu $t7, $v1, 1 +/* 0C6F28 7F0923F8 150F000B */ bne $t0, $t7, .L7F092428 +/* 0C6F2C 7F0923FC 2505FFFF */ addiu $a1, $t0, -1 +/* 0C6F30 7F092400 3C0705F5 */ lui $a3, (0x05F5E0FF >> 16) # lui $a3, 0x5f5 +/* 0C6F34 7F092404 34E7E0FF */ ori $a3, (0x05F5E0FF & 0xFFFF) # ori $a3, $a3, 0xe0ff +/* 0C6F38 7F092408 8C440000 */ lw $a0, ($v0) +/* 0C6F3C 7F09240C 0FC0797E */ jal unlock_stage_in_folder_on_difficulty +/* 0C6F40 7F092410 00003025 */ move $a2, $zero +/* 0C6F44 7F092414 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0C6F48 7F092418 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0C6F4C 7F09241C 2405009F */ li $a1, 159 +/* 0C6F50 7F092420 0C002382 */ jal play_sfx_a1 +/* 0C6F54 7F092424 00003025 */ move $a2, $zero +cheats_debug_return_saved_ra: +.L7F092428: +/* 0C6F58 7F092428 8FBF0014 */ lw $ra, 0x14($sp) +.L7F09242C: +/* 0C6F5C 7F09242C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0C6F60 7F092430 03E00008 */ jr $ra +/* 0C6F64 7F092434 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +/*D:800572B0*/ +glabel jpt_cheats_cheat +.word cheats_cheat_extra_mp_chars +.word cheats_cheat_invincibility +.word cheats_cheat_allguns +.word cheats_cheat_max_ammo +.word cheats_debug_return_saved_ra +.word cheats_cheat_deactivate_invincibility +.word cheats_cheat_linemode +.word cheats_cheat_2x_health +.word cheats_cheat_2x_armor +.word cheats_cheat_invisibility +.word cheats_cheat_infinite_ammo +.word cheats_cheat_dk_mode +.word cheats_cheat_extra_weapons +.word cheats_cheat_tiny_bond +.word cheats_cheat_paintball +.word cheats_cheat_10x_health +.word cheats_cheat_magnum +.word cheats_cheat_laser +.word cheats_cheat_goldengun +.word cheats_cheat_silverpp7 +.word cheats_cheat_goldpp7 +.word cheats_cheat_invisibility_mp +.word cheats_debug_return_saved_ra +.word cheats_cheat_fast +.word cheats_debug_pos +.word cheats_debug_fast_ani +.word cheats_debug_slow_ani +.word cheats_debug_return_saved_ra +.word cheats_debug_2x_rockets +.word cheats_debug_2x_grenade_launch +.word cheats_debug_2x_rcp90 +.word cheats_debug_2x_throwing_knife +.word cheats_debug_2x_hunting_knife +.word cheats_debug_2x_laser +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel + +/*800573D8*/ +glabel finalamount +.word 0x3d4ccccd /*0.050000001*/ + +.text +glabel handle_cheats_turned_on +/* 0C71B4 7F092644 00047100 */ sll $t6, $a0, 4 +/* 0C71B8 7F092648 3C0F8004 */ lui $t7, %hi(D_8003F808) +/* 0C71BC 7F09264C 01EE7821 */ addu $t7, $t7, $t6 +/* 0C71C0 7F092650 8DEFF838 */ lw $t7, %lo(D_8003F808)($t7) +/* 0C71C4 7F092654 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0C71C8 7F092658 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C71CC 7F09265C AFA40040 */ sw $a0, 0x40($sp) +/* 0C71D0 7F092660 0FC26F3C */ jal get_cur_playernum +/* 0C71D4 7F092664 AFAF003C */ sw $t7, 0x3c($sp) +/* 0C71D8 7F092668 0FC26C01 */ jal get_num_players +/* 0C71DC 7F09266C AFA20038 */ sw $v0, 0x38($sp) +/* 0C71E0 7F092670 8FA3003C */ lw $v1, 0x3c($sp) +/* 0C71E4 7F092674 8FA60040 */ lw $a2, 0x40($sp) +/* 0C71E8 7F092678 AFA20034 */ sw $v0, 0x34($sp) +/* 0C71EC 7F09267C 30780010 */ andi $t8, $v1, 0x10 +/* 0C71F0 7F092680 17000012 */ bnez $t8, .Ljp7F0926CC +/* 0C71F4 7F092684 30790020 */ andi $t9, $v1, 0x20 +/* 0C71F8 7F092688 1720000A */ bnez $t9, .Ljp7F0926B4 +/* 0C71FC 7F09268C 8FA50038 */ lw $a1, 0x38($sp) +/* 0C7200 7F092690 3C098008 */ lui $t1, %hi(off_CODE_bss_80079E30) # $t1, 0x8008 +/* 0C7204 7F092694 25299EA0 */ addiu $t1, %lo(off_CODE_bss_80079E30) # addiu $t1, $t1, -0x6160 +/* 0C7208 7F092698 00C91821 */ addu $v1, $a2, $t1 +/* 0C720C 7F09269C 906A0000 */ lbu $t2, ($v1) +/* 0C7210 7F0926A0 240B0001 */ li $t3, 1 +/* 0C7214 7F0926A4 00AB6004 */ sllv $t4, $t3, $a1 +/* 0C7218 7F0926A8 014C6825 */ or $t5, $t2, $t4 +/* 0C721C 7F0926AC 10000007 */ b .Ljp7F0926CC +/* 0C7220 7F0926B0 A06D0000 */ sb $t5, ($v1) +.Ljp7F0926B4: +/* 0C7224 7F0926B4 240E0001 */ li $t6, 1 +/* 0C7228 7F0926B8 004E7804 */ sllv $t7, $t6, $v0 +/* 0C722C 7F0926BC 3C018008 */ lui $at, %hi(off_CODE_bss_80079E30) +/* 0C7230 7F0926C0 00260821 */ addu $at, $at, $a2 +/* 0C7234 7F0926C4 25F8FFFF */ addiu $t8, $t7, -1 +/* 0C7238 7F0926C8 A0389EA0 */ sb $t8, %lo(off_CODE_bss_80079E30)($at) +.Ljp7F0926CC: +/* 0C723C 7F0926CC 24D9FFFF */ addiu $t9, $a2, -1 +/* 0C7240 7F0926D0 2F21004A */ sltiu $at, $t9, 0x4a +/* 0C7244 7F0926D4 10200234 */ beqz $at, .Ljp7F092FA8 +/* 0C7248 7F0926D8 0019C880 */ sll $t9, $t9, 2 +/* 0C724C 7F0926DC 3C018005 */ lui $at, %hi(jpt_cheats_cheat) +/* 0C7250 7F0926E0 00390821 */ addu $at, $at, $t9 +/* 0C7254 7F0926E4 8C3972E0 */ lw $t9, %lo(jpt_cheats_cheat)($at) +/* 0C7258 7F0926E8 03200008 */ jr $t9 +/* 0C725C 7F0926EC 00000000 */ nop +cheats_cheat_extra_mp_chars: +/* 0C7260 7F0926F0 0FC040B0 */ jal unlock_all_mp_chars +/* 0C7264 7F0926F4 00000000 */ nop +/* 0C7268 7F0926F8 1000022C */ b .Ljp7F092FAC +/* 0C726C 7F0926FC 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_invincibility: +/* 0C7270 7F092700 0FC229A4 */ jal get_bondata_invincible_flag +/* 0C7274 7F092704 00000000 */ nop +/* 0C7278 7F092708 54400228 */ bnezl $v0, .Ljp7F092FAC +/* 0C727C 7F09270C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7280 7F092710 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7284 7F092714 3404B00F */ li $a0, 45071 +/* 0C7288 7F092718 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C728C 7F09271C 00402025 */ move $a0, $v0 +/* 0C7290 7F092720 0FC229A0 */ jal set_bondata_invincible_flag +/* 0C7294 7F092724 24040001 */ li $a0, 1 +/* 0C7298 7F092728 10000220 */ b .Ljp7F092FAC +/* 0C729C 7F09272C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_allguns: +/* 0C72A0 7F092730 0FC232CF */ jal get_BONDdata_allguns_flag +/* 0C72A4 7F092734 00000000 */ nop +/* 0C72A8 7F092738 5440021C */ bnezl $v0, .Ljp7F092FAC +/* 0C72AC 7F09273C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C72B0 7F092740 0FC30AA2 */ jal get_textptr_for_textID +/* 0C72B4 7F092744 3404B010 */ li $a0, 45072 +/* 0C72B8 7F092748 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C72BC 7F09274C 00402025 */ move $a0, $v0 +/* 0C72C0 7F092750 0FC232CB */ jal set_BONDdata_allguns_flag +/* 0C72C4 7F092754 24040001 */ li $a0, 1 +/* 0C72C8 7F092758 10000214 */ b .Ljp7F092FAC +/* 0C72CC 7F09275C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_max_ammo: +/* 0C72D0 7F092760 0FC30AA2 */ jal get_textptr_for_textID +/* 0C72D4 7F092764 3404B011 */ li $a0, 45073 +/* 0C72D8 7F092768 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C72DC 7F09276C 00402025 */ move $a0, $v0 +/* 0C72E0 7F092770 0FC1A637 */ jal set_max_ammo_for_cur_player +/* 0C72E4 7F092774 00000000 */ nop +/* 0C72E8 7F092778 1000020C */ b .Ljp7F092FAC +/* 0C72EC 7F09277C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_deactivate_invincibility: +/* 0C72F0 7F092780 28410002 */ slti $at, $v0, 2 +/* 0C72F4 7F092784 14200208 */ bnez $at, .Ljp7F092FA8 +/* 0C72F8 7F092788 AFA0002C */ sw $zero, 0x2c($sp) +/* 0C72FC 7F09278C 18400015 */ blez $v0, .Ljp7F0927E4 +/* 0C7300 7F092790 AFA00030 */ sw $zero, 0x30($sp) +.Ljp7F092794: +/* 0C7304 7F092794 8FA50038 */ lw $a1, 0x38($sp) +/* 0C7308 7F092798 8FA90030 */ lw $t1, 0x30($sp) +/* 0C730C 7F09279C 1125000A */ beq $t1, $a1, .Ljp7F0927C8 +/* 0C7310 7F0927A0 00000000 */ nop +/* 0C7314 7F0927A4 0FC26F2B */ jal set_cur_player +/* 0C7318 7F0927A8 01202025 */ move $a0, $t1 +/* 0C731C 7F0927AC 0FC229A4 */ jal get_bondata_invincible_flag +/* 0C7320 7F0927B0 00000000 */ nop +/* 0C7324 7F0927B4 10400004 */ beqz $v0, .Ljp7F0927C8 +/* 0C7328 7F0927B8 00002025 */ move $a0, $zero +/* 0C732C 7F0927BC 240B0001 */ li $t3, 1 +/* 0C7330 7F0927C0 0FC229A0 */ jal set_bondata_invincible_flag +/* 0C7334 7F0927C4 AFAB002C */ sw $t3, 0x2c($sp) +.Ljp7F0927C8: +/* 0C7338 7F0927C8 0FC26F2B */ jal set_cur_player +/* 0C733C 7F0927CC 8FA40038 */ lw $a0, 0x38($sp) +/* 0C7340 7F0927D0 8FAA0030 */ lw $t2, 0x30($sp) +/* 0C7344 7F0927D4 8FAD0034 */ lw $t5, 0x34($sp) +/* 0C7348 7F0927D8 254C0001 */ addiu $t4, $t2, 1 +/* 0C734C 7F0927DC 158DFFED */ bne $t4, $t5, .Ljp7F092794 +/* 0C7350 7F0927E0 AFAC0030 */ sw $t4, 0x30($sp) +.Ljp7F0927E4: +/* 0C7354 7F0927E4 8FAE002C */ lw $t6, 0x2c($sp) +/* 0C7358 7F0927E8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0C735C 7F0927EC 2405009F */ li $a1, 159 +/* 0C7360 7F0927F0 11C001ED */ beqz $t6, .Ljp7F092FA8 +/* 0C7364 7F0927F4 00003025 */ move $a2, $zero +/* 0C7368 7F0927F8 0C002386 */ jal play_sfx_a1 +/* 0C736C 7F0927FC 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0C7370 7F092800 100001EA */ b .Ljp7F092FAC +/* 0C7374 7F092804 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_linemode: +/* 0C7378 7F092808 0FC246B2 */ jal set_debug_VisCVG_flag +/* 0C737C 7F09280C 24040001 */ li $a0, 1 +/* 0C7380 7F092810 100001E6 */ b .Ljp7F092FAC +/* 0C7384 7F092814 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_2x_health: +/* 0C7388 7F092818 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C738C 7F09281C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0C7390 7F092820 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7394 7F092824 44812000 */ mtc1 $at, $f4 +/* 0C7398 7F092828 C4462A3C */ lwc1 $f6, 0x2a3c($v0) +/* 0C739C 7F09282C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C73A0 7F092830 46062032 */ c.eq.s $f4, $f6 +/* 0C73A4 7F092834 00000000 */ nop +/* 0C73A8 7F092838 45010008 */ bc1t .Ljp7F09285C +/* 0C73AC 7F09283C 00000000 */ nop +/* 0C73B0 7F092840 C44800DC */ lwc1 $f8, 0xdc($v0) +/* 0C73B4 7F092844 44815000 */ mtc1 $at, $f10 +/* 0C73B8 7F092848 00000000 */ nop +/* 0C73BC 7F09284C 460A403C */ c.lt.s $f8, $f10 +/* 0C73C0 7F092850 00000000 */ nop +/* 0C73C4 7F092854 450201D5 */ bc1fl .Ljp7F092FAC +/* 0C73C8 7F092858 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F09285C: +/* 0C73CC 7F09285C 0FC30AA2 */ jal get_textptr_for_textID +/* 0C73D0 7F092860 3404B012 */ li $a0, 45074 +/* 0C73D4 7F092864 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C73D8 7F092868 00402025 */ move $a0, $v0 +/* 0C73DC 7F09286C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C73E0 7F092870 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 0C73E4 7F092874 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 0C73E8 7F092878 44818000 */ mtc1 $at, $f16 +/* 0C73EC 7F09287C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0C73F0 7F092880 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0C73F4 7F092884 E5F000DC */ swc1 $f16, 0xdc($t7) +/* 0C73F8 7F092888 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0C73FC 7F09288C 44819000 */ mtc1 $at, $f18 +/* 0C7400 7F092890 100001C5 */ b .Ljp7F092FA8 +/* 0C7404 7F092894 E7122A3C */ swc1 $f18, 0x2a3c($t8) +cheats_cheat_2x_armor: +/* 0C7408 7F092898 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C740C 7F09289C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0C7410 7F0928A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7414 7F0928A4 44810000 */ mtc1 $at, $f0 +/* 0C7418 7F0928A8 C4442A40 */ lwc1 $f4, 0x2a40($v0) +/* 0C741C 7F0928AC 46040032 */ c.eq.s $f0, $f4 +/* 0C7420 7F0928B0 00000000 */ nop +/* 0C7424 7F0928B4 45010006 */ bc1t .Ljp7F0928D0 +/* 0C7428 7F0928B8 00000000 */ nop +/* 0C742C 7F0928BC C44600E0 */ lwc1 $f6, 0xe0($v0) +/* 0C7430 7F0928C0 4600303C */ c.lt.s $f6, $f0 +/* 0C7434 7F0928C4 00000000 */ nop +/* 0C7438 7F0928C8 450201B8 */ bc1fl .Ljp7F092FAC +/* 0C743C 7F0928CC 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0928D0: +/* 0C7440 7F0928D0 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7444 7F0928D4 3404B013 */ li $a0, 45075 +/* 0C7448 7F0928D8 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C744C 7F0928DC 00402025 */ move $a0, $v0 +/* 0C7450 7F0928E0 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C7454 7F0928E4 2442A120 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5ee0 +/* 0C7458 7F0928E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C745C 7F0928EC 44814000 */ mtc1 $at, $f8 +/* 0C7460 7F0928F0 8C590000 */ lw $t9, ($v0) +/* 0C7464 7F0928F4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0C7468 7F0928F8 44815000 */ mtc1 $at, $f10 +/* 0C746C 7F0928FC E72800E0 */ swc1 $f8, 0xe0($t9) +/* 0C7470 7F092900 8C490000 */ lw $t1, ($v0) +/* 0C7474 7F092904 100001A8 */ b .Ljp7F092FA8 +/* 0C7478 7F092908 E52A2A40 */ swc1 $f10, 0x2a40($t1) +cheats_cheat_invisibility: +/* 0C747C 7F09290C 0FC229AB */ jal get_invisible_to_guards_flag +/* 0C7480 7F092910 00000000 */ nop +/* 0C7484 7F092914 504001A5 */ beql $v0, $zero, .Ljp7F092FAC +/* 0C7488 7F092918 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C748C 7F09291C 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7490 7F092920 3404B014 */ li $a0, 45076 +/* 0C7494 7F092924 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C7498 7F092928 00402025 */ move $a0, $v0 +/* 0C749C 7F09292C 0FC229A8 */ jal set_invisible_to_guards_flag +/* 0C74A0 7F092930 00002025 */ move $a0, $zero +/* 0C74A4 7F092934 1000019D */ b .Ljp7F092FAC +/* 0C74A8 7F092938 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_infinite_ammo: +/* 0C74AC 7F09293C 0FC30AA2 */ jal get_textptr_for_textID +/* 0C74B0 7F092940 3404B016 */ li $a0, 45078 +/* 0C74B4 7F092944 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C74B8 7F092948 00402025 */ move $a0, $v0 +/* 0C74BC 7F09294C 10000197 */ b .Ljp7F092FAC +/* 0C74C0 7F092950 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_dk_mode: +/* 0C74C4 7F092954 0FC30AA2 */ jal get_textptr_for_textID +/* 0C74C8 7F092958 3404B017 */ li $a0, 45079 +/* 0C74CC 7F09295C 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C74D0 7F092960 00402025 */ move $a0, $v0 +/* 0C74D4 7F092964 0FC24CDD */ jal set_DKMode +/* 0C74D8 7F092968 24040001 */ li $a0, 1 +/* 0C74DC 7F09296C 1000018F */ b .Ljp7F092FAC +/* 0C74E0 7F092970 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_extra_weapons: +/* 0C74E4 7F092974 24010001 */ li $at, 1 +/* 0C74E8 7F092978 5441018C */ bnel $v0, $at, .Ljp7F092FAC +/* 0C74EC 7F09297C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C74F0 7F092980 0FC2335A */ jal add_item_to_inventory +/* 0C74F4 7F092984 24040012 */ li $a0, 18 +/* 0C74F8 7F092988 AFA20028 */ sw $v0, 0x28($sp) +/* 0C74FC 7F09298C 0FC2335A */ jal add_item_to_inventory +/* 0C7500 7F092990 24040016 */ li $a0, 22 +/* 0C7504 7F092994 8FAB0028 */ lw $t3, 0x28($sp) +/* 0C7508 7F092998 24040013 */ li $a0, 19 +/* 0C750C 7F09299C 01625021 */ addu $t2, $t3, $v0 +/* 0C7510 7F0929A0 0FC2335A */ jal add_item_to_inventory +/* 0C7514 7F0929A4 AFAA0028 */ sw $t2, 0x28($sp) +/* 0C7518 7F0929A8 8FAC0028 */ lw $t4, 0x28($sp) +/* 0C751C 7F0929AC 24040014 */ li $a0, 20 +/* 0C7520 7F0929B0 01826821 */ addu $t5, $t4, $v0 +/* 0C7524 7F0929B4 0FC2335A */ jal add_item_to_inventory +/* 0C7528 7F0929B8 AFAD0028 */ sw $t5, 0x28($sp) +/* 0C752C 7F0929BC 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C7530 7F0929C0 24040015 */ li $a0, 21 +/* 0C7534 7F0929C4 01C27821 */ addu $t7, $t6, $v0 +/* 0C7538 7F0929C8 0FC2335A */ jal add_item_to_inventory +/* 0C753C 7F0929CC AFAF0028 */ sw $t7, 0x28($sp) +/* 0C7540 7F0929D0 8FB80028 */ lw $t8, 0x28($sp) +/* 0C7544 7F0929D4 2404000C */ li $a0, 12 +/* 0C7548 7F0929D8 0302C821 */ addu $t9, $t8, $v0 +/* 0C754C 7F0929DC 0FC1A630 */ jal get_max_ammo_for_type +/* 0C7550 7F0929E0 AFB90028 */ sw $t9, 0x28($sp) +/* 0C7554 7F0929E4 2404000C */ li $a0, 12 +/* 0C7558 7F0929E8 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C755C 7F0929EC 00402825 */ move $a1, $v0 +/* 0C7560 7F0929F0 0FC1A630 */ jal get_max_ammo_for_type +/* 0C7564 7F0929F4 2404000D */ li $a0, 13 +/* 0C7568 7F0929F8 2404000D */ li $a0, 13 +/* 0C756C 7F0929FC 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7570 7F092A00 00402825 */ move $a1, $v0 +/* 0C7574 7F092A04 0FC1A630 */ jal get_max_ammo_for_type +/* 0C7578 7F092A08 24040001 */ li $a0, 1 +/* 0C757C 7F092A0C 24040001 */ li $a0, 1 +/* 0C7580 7F092A10 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7584 7F092A14 00402825 */ move $a1, $v0 +/* 0C7588 7F092A18 8FA90028 */ lw $t1, 0x28($sp) +/* 0C758C 7F092A1C 59200163 */ blezl $t1, .Ljp7F092FAC +/* 0C7590 7F092A20 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7594 7F092A24 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7598 7F092A28 3404B018 */ li $a0, 45080 +/* 0C759C 7F092A2C 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C75A0 7F092A30 00402025 */ move $a0, $v0 +/* 0C75A4 7F092A34 1000015D */ b .Ljp7F092FAC +/* 0C75A8 7F092A38 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_tiny_bond: +/* 0C75AC 7F092A3C 24010001 */ li $at, 1 +/* 0C75B0 7F092A40 14410159 */ bne $v0, $at, .Ljp7F092FA8 +/* 0C75B4 7F092A44 3C0B8008 */ lui $t3, %hi(pPlayersPerm) # $t3, 0x8008 +/* 0C75B8 7F092A48 8D6BA124 */ lw $t3, %lo(pPlayersPerm)($t3) +/* 0C75BC 7F092A4C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C75C0 7F092A50 44818000 */ mtc1 $at, $f16 +/* 0C75C4 7F092A54 C5720064 */ lwc1 $f18, 0x64($t3) +/* 0C75C8 7F092A58 46128032 */ c.eq.s $f16, $f18 +/* 0C75CC 7F092A5C 00000000 */ nop +/* 0C75D0 7F092A60 45020152 */ bc1fl .Ljp7F092FAC +/* 0C75D4 7F092A64 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C75D8 7F092A68 0FC30AA2 */ jal get_textptr_for_textID +/* 0C75DC 7F092A6C 3404B019 */ li $a0, 45081 +/* 0C75E0 7F092A70 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C75E4 7F092A74 00402025 */ move $a0, $v0 +/* 0C75E8 7F092A78 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C75EC 7F092A7C 3C0A8008 */ lui $t2, %hi(pPlayersPerm) # $t2, 0x8008 +/* 0C75F0 7F092A80 44810000 */ mtc1 $at, $f0 +/* 0C75F4 7F092A84 8D4AA124 */ lw $t2, %lo(pPlayersPerm)($t2) +/* 0C75F8 7F092A88 3C0C8008 */ lui $t4, %hi(pPlayer) # $t4, 0x8008 +/* 0C75FC 7F092A8C E5400064 */ swc1 $f0, 0x64($t2) +/* 0C7600 7F092A90 8D8CA120 */ lw $t4, %lo(pPlayer)($t4) +/* 0C7604 7F092A94 8D8400D4 */ lw $a0, 0xd4($t4) +/* 0C7608 7F092A98 50800144 */ beql $a0, $zero, .Ljp7F092FAC +/* 0C760C 7F092A9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7610 7F092AA0 C4840014 */ lwc1 $f4, 0x14($a0) +/* 0C7614 7F092AA4 46002182 */ mul.s $f6, $f4, $f0 +/* 0C7618 7F092AA8 44053000 */ mfc1 $a1, $f6 +/* 0C761C 7F092AAC 0FC1B51A */ jal set_obj_instance_controller_scale +/* 0C7620 7F092AB0 00000000 */ nop +/* 0C7624 7F092AB4 1000013D */ b .Ljp7F092FAC +/* 0C7628 7F092AB8 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_paintball: +/* 0C762C 7F092ABC 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7630 7F092AC0 3404B01A */ li $a0, 45082 +/* 0C7634 7F092AC4 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C7638 7F092AC8 00402025 */ move $a0, $v0 +/* 0C763C 7F092ACC 10000137 */ b .Ljp7F092FAC +/* 0C7640 7F092AD0 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_10x_health: +/* 0C7644 7F092AD4 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C7648 7F092AD8 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0C764C 7F092ADC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7650 7F092AE0 44810000 */ mtc1 $at, $f0 +/* 0C7654 7F092AE4 C4482A3C */ lwc1 $f8, 0x2a3c($v0) +/* 0C7658 7F092AE8 46080032 */ c.eq.s $f0, $f8 +/* 0C765C 7F092AEC 00000000 */ nop +/* 0C7660 7F092AF0 45010006 */ bc1t .Ljp7F092B0C +/* 0C7664 7F092AF4 00000000 */ nop +/* 0C7668 7F092AF8 C44A00DC */ lwc1 $f10, 0xdc($v0) +/* 0C766C 7F092AFC 4600503C */ c.lt.s $f10, $f0 +/* 0C7670 7F092B00 00000000 */ nop +/* 0C7674 7F092B04 45020129 */ bc1fl .Ljp7F092FAC +/* 0C7678 7F092B08 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F092B0C: +/* 0C767C 7F092B0C 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7680 7F092B10 3404B01B */ li $a0, 45083 +/* 0C7684 7F092B14 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C7688 7F092B18 00402025 */ move $a0, $v0 +/* 0C768C 7F092B1C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C7690 7F092B20 2442A120 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5ee0 +/* 0C7694 7F092B24 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7698 7F092B28 44818000 */ mtc1 $at, $f16 +/* 0C769C 7F092B2C 8C4D0000 */ lw $t5, ($v0) +/* 0C76A0 7F092B30 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0C76A4 7F092B34 44819000 */ mtc1 $at, $f18 +/* 0C76A8 7F092B38 E5B000DC */ swc1 $f16, 0xdc($t5) +/* 0C76AC 7F092B3C 8C4E0000 */ lw $t6, ($v0) +/* 0C76B0 7F092B40 10000119 */ b .Ljp7F092FA8 +/* 0C76B4 7F092B44 E5D22A3C */ swc1 $f18, 0x2a3c($t6) +cheats_cheat_magnum: +/* 0C76B8 7F092B48 24010001 */ li $at, 1 +/* 0C76BC 7F092B4C 54410117 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C76C0 7F092B50 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C76C4 7F092B54 0FC2335A */ jal add_item_to_inventory +/* 0C76C8 7F092B58 24040012 */ li $a0, 18 +/* 0C76CC 7F092B5C 0FC1A630 */ jal get_max_ammo_for_type +/* 0C76D0 7F092B60 2404000C */ li $a0, 12 +/* 0C76D4 7F092B64 2404000C */ li $a0, 12 +/* 0C76D8 7F092B68 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C76DC 7F092B6C 00402825 */ move $a1, $v0 +/* 0C76E0 7F092B70 1000010E */ b .Ljp7F092FAC +/* 0C76E4 7F092B74 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_laser: +/* 0C76E8 7F092B78 24010001 */ li $at, 1 +/* 0C76EC 7F092B7C 5441010B */ bnel $v0, $at, .Ljp7F092FAC +/* 0C76F0 7F092B80 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C76F4 7F092B84 0FC2335A */ jal add_item_to_inventory +/* 0C76F8 7F092B88 24040016 */ li $a0, 22 +/* 0C76FC 7F092B8C 10000107 */ b .Ljp7F092FAC +/* 0C7700 7F092B90 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_goldengun: +/* 0C7704 7F092B94 24010001 */ li $at, 1 +/* 0C7708 7F092B98 54410104 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C770C 7F092B9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7710 7F092BA0 0FC2335A */ jal add_item_to_inventory +/* 0C7714 7F092BA4 24040013 */ li $a0, 19 +/* 0C7718 7F092BA8 0FC1A630 */ jal get_max_ammo_for_type +/* 0C771C 7F092BAC 2404000D */ li $a0, 13 +/* 0C7720 7F092BB0 2404000D */ li $a0, 13 +/* 0C7724 7F092BB4 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7728 7F092BB8 00402825 */ move $a1, $v0 +/* 0C772C 7F092BBC 100000FB */ b .Ljp7F092FAC +/* 0C7730 7F092BC0 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_silverpp7: +/* 0C7734 7F092BC4 24010001 */ li $at, 1 +/* 0C7738 7F092BC8 544100F8 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C773C 7F092BCC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7740 7F092BD0 0FC2335A */ jal add_item_to_inventory +/* 0C7744 7F092BD4 24040014 */ li $a0, 20 +/* 0C7748 7F092BD8 0FC1A630 */ jal get_max_ammo_for_type +/* 0C774C 7F092BDC 24040001 */ li $a0, 1 +/* 0C7750 7F092BE0 24040001 */ li $a0, 1 +/* 0C7754 7F092BE4 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7758 7F092BE8 00402825 */ move $a1, $v0 +/* 0C775C 7F092BEC 100000EF */ b .Ljp7F092FAC +/* 0C7760 7F092BF0 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_goldpp7: +/* 0C7764 7F092BF4 24010001 */ li $at, 1 +/* 0C7768 7F092BF8 544100EC */ bnel $v0, $at, .Ljp7F092FAC +/* 0C776C 7F092BFC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7770 7F092C00 0FC2335A */ jal add_item_to_inventory +/* 0C7774 7F092C04 24040015 */ li $a0, 21 +/* 0C7778 7F092C08 0FC1A630 */ jal get_max_ammo_for_type +/* 0C777C 7F092C0C 24040001 */ li $a0, 1 +/* 0C7780 7F092C10 24040001 */ li $a0, 1 +/* 0C7784 7F092C14 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7788 7F092C18 00402825 */ move $a1, $v0 +/* 0C778C 7F092C1C 100000E3 */ b .Ljp7F092FAC +/* 0C7790 7F092C20 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_invisibility_mp: +/* 0C7794 7F092C24 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0C7798 7F092C28 44816000 */ mtc1 $at, $f12 +/* 0C779C 7F092C2C 3C018005 */ lui $at, %hi(finalamount) # $at, 0x8005 +/* 0C77A0 7F092C30 0FC20408 */ jal set_curplayer_fade +/* 0C77A4 7F092C34 C42E7408 */ lwc1 $f14, %lo(finalamount)($at) +/* 0C77A8 7F092C38 100000DC */ b .Ljp7F092FAC +/* 0C77AC 7F092C3C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_fast: +/* 0C77B0 7F092C40 0FC246BE */ jal get_debug_fast_bond_flag +/* 0C77B4 7F092C44 00000000 */ nop +/* 0C77B8 7F092C48 544000D8 */ bnezl $v0, .Ljp7F092FAC +/* 0C77BC 7F092C4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C77C0 7F092C50 0FC30AA2 */ jal get_textptr_for_textID +/* 0C77C4 7F092C54 3404B01D */ li $a0, 45085 +/* 0C77C8 7F092C58 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C77CC 7F092C5C 00402025 */ move $a0, $v0 +/* 0C77D0 7F092C60 0FC246C1 */ jal set_debug_fast_bond_flag +/* 0C77D4 7F092C64 24040001 */ li $a0, 1 +/* 0C77D8 7F092C68 100000D0 */ b .Ljp7F092FAC +/* 0C77DC 7F092C6C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_pos: +/* 0C77E0 7F092C70 0FC2469A */ jal get_debug_testingmanpos_flag +/* 0C77E4 7F092C74 00000000 */ nop +/* 0C77E8 7F092C78 544000CC */ bnezl $v0, .Ljp7F092FAC +/* 0C77EC 7F092C7C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C77F0 7F092C80 0FC2469D */ jal set_debug_testingmanpos_flag +/* 0C77F4 7F092C84 24040001 */ li $a0, 1 +/* 0C77F8 7F092C88 100000C8 */ b .Ljp7F092FAC +/* 0C77FC 7F092C8C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_fast_ani: +/* 0C7800 7F092C90 0FC081E5 */ jal get_animation_rate +/* 0C7804 7F092C94 00000000 */ nop +/* 0C7808 7F092C98 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0C780C 7F092C9C 44812000 */ mtc1 $at, $f4 +/* 0C7810 7F092CA0 00000000 */ nop +/* 0C7814 7F092CA4 4604003C */ c.lt.s $f0, $f4 +/* 0C7818 7F092CA8 00000000 */ nop +/* 0C781C 7F092CAC 450200BF */ bc1fl .Ljp7F092FAC +/* 0C7820 7F092CB0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7824 7F092CB4 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7828 7F092CB8 3404B034 */ li $a0, 45108 +/* 0C782C 7F092CBC 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C7830 7F092CC0 00402025 */ move $a0, $v0 +/* 0C7834 7F092CC4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0C7838 7F092CC8 44816000 */ mtc1 $at, $f12 +/* 0C783C 7F092CCC 0FC081BC */ jal animation_speed_related +/* 0C7840 7F092CD0 00000000 */ nop +/* 0C7844 7F092CD4 100000B5 */ b .Ljp7F092FAC +/* 0C7848 7F092CD8 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_slow_ani: +/* 0C784C 7F092CDC 0FC081E5 */ jal get_animation_rate +/* 0C7850 7F092CE0 00000000 */ nop +/* 0C7854 7F092CE4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0C7858 7F092CE8 44813000 */ mtc1 $at, $f6 +/* 0C785C 7F092CEC 00000000 */ nop +/* 0C7860 7F092CF0 4600303C */ c.lt.s $f6, $f0 +/* 0C7864 7F092CF4 00000000 */ nop +/* 0C7868 7F092CF8 450200AC */ bc1fl .Ljp7F092FAC +/* 0C786C 7F092CFC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7870 7F092D00 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7874 7F092D04 3404B032 */ li $a0, 45106 +/* 0C7878 7F092D08 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C787C 7F092D0C 00402025 */ move $a0, $v0 +/* 0C7880 7F092D10 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0C7884 7F092D14 44816000 */ mtc1 $at, $f12 +/* 0C7888 7F092D18 0FC081BC */ jal animation_speed_related +/* 0C788C 7F092D1C 00000000 */ nop +/* 0C7890 7F092D20 100000A2 */ b .Ljp7F092FAC +/* 0C7894 7F092D24 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_rockets: +/* 0C7898 7F092D28 24010001 */ li $at, 1 +/* 0C789C 7F092D2C 5441009F */ bnel $v0, $at, .Ljp7F092FAC +/* 0C78A0 7F092D30 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C78A4 7F092D34 0FC2335A */ jal add_item_to_inventory +/* 0C78A8 7F092D38 24040019 */ li $a0, 25 +/* 0C78AC 7F092D3C 24040019 */ li $a0, 25 +/* 0C78B0 7F092D40 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C78B4 7F092D44 24050019 */ li $a1, 25 +/* 0C78B8 7F092D48 0FC1A630 */ jal get_max_ammo_for_type +/* 0C78BC 7F092D4C 24040006 */ li $a0, 6 +/* 0C78C0 7F092D50 24040006 */ li $a0, 6 +/* 0C78C4 7F092D54 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C78C8 7F092D58 00402825 */ move $a1, $v0 +/* 0C78CC 7F092D5C 10000093 */ b .Ljp7F092FAC +/* 0C78D0 7F092D60 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_grenade_launch: +/* 0C78D4 7F092D64 24010001 */ li $at, 1 +/* 0C78D8 7F092D68 54410090 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C78DC 7F092D6C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C78E0 7F092D70 0FC2335A */ jal add_item_to_inventory +/* 0C78E4 7F092D74 24040018 */ li $a0, 24 +/* 0C78E8 7F092D78 24040018 */ li $a0, 24 +/* 0C78EC 7F092D7C 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C78F0 7F092D80 24050018 */ li $a1, 24 +/* 0C78F4 7F092D84 0FC1A630 */ jal get_max_ammo_for_type +/* 0C78F8 7F092D88 2404000B */ li $a0, 11 +/* 0C78FC 7F092D8C 2404000B */ li $a0, 11 +/* 0C7900 7F092D90 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7904 7F092D94 00402825 */ move $a1, $v0 +/* 0C7908 7F092D98 10000084 */ b .Ljp7F092FAC +/* 0C790C 7F092D9C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_rcp90: +/* 0C7910 7F092DA0 24010001 */ li $at, 1 +/* 0C7914 7F092DA4 54410081 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C7918 7F092DA8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C791C 7F092DAC 0FC2335A */ jal add_item_to_inventory +/* 0C7920 7F092DB0 2404000E */ li $a0, 14 +/* 0C7924 7F092DB4 2404000E */ li $a0, 14 +/* 0C7928 7F092DB8 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C792C 7F092DBC 2405000E */ li $a1, 14 +/* 0C7930 7F092DC0 0FC1A630 */ jal get_max_ammo_for_type +/* 0C7934 7F092DC4 24040001 */ li $a0, 1 +/* 0C7938 7F092DC8 24040001 */ li $a0, 1 +/* 0C793C 7F092DCC 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7940 7F092DD0 00402825 */ move $a1, $v0 +/* 0C7944 7F092DD4 10000075 */ b .Ljp7F092FAC +/* 0C7948 7F092DD8 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_throwing_knife: +/* 0C794C 7F092DDC 24010001 */ li $at, 1 +/* 0C7950 7F092DE0 54410072 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C7954 7F092DE4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7958 7F092DE8 0FC2335A */ jal add_item_to_inventory +/* 0C795C 7F092DEC 24040003 */ li $a0, 3 +/* 0C7960 7F092DF0 24040003 */ li $a0, 3 +/* 0C7964 7F092DF4 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C7968 7F092DF8 24050003 */ li $a1, 3 +/* 0C796C 7F092DFC 0FC1A630 */ jal get_max_ammo_for_type +/* 0C7970 7F092E00 2404000A */ li $a0, 10 +/* 0C7974 7F092E04 2404000A */ li $a0, 10 +/* 0C7978 7F092E08 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C797C 7F092E0C 00402825 */ move $a1, $v0 +/* 0C7980 7F092E10 10000066 */ b .Ljp7F092FAC +/* 0C7984 7F092E14 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_hunting_knife: +/* 0C7988 7F092E18 24010001 */ li $at, 1 +/* 0C798C 7F092E1C 14410062 */ bne $v0, $at, .Ljp7F092FA8 +/* 0C7990 7F092E20 3C0F8005 */ lui $t7, %hi(j_text_trigger) # $t7, 0x8005 +/* 0C7994 7F092E24 8DEF8500 */ lw $t7, %lo(j_text_trigger)($t7) +/* 0C7998 7F092E28 11E00014 */ beqz $t7, .cheats_debug_2x_hunting_knife_en +/* 0C799C 7F092E2C 00000000 */ nop +/* 0C79A0 7F092E30 0FC2335A */ jal add_item_to_inventory +/* 0C79A4 7F092E34 24040019 */ li $a0, 25 +/* 0C79A8 7F092E38 0FC2335A */ jal add_item_to_inventory +/* 0C79AC 7F092E3C 24040011 */ li $a0, 17 +/* 0C79B0 7F092E40 24040011 */ li $a0, 17 +/* 0C79B4 7F092E44 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C79B8 7F092E48 24050019 */ li $a1, 25 +/* 0C79BC 7F092E4C 0FC1A630 */ jal get_max_ammo_for_type +/* 0C79C0 7F092E50 24040006 */ li $a0, 6 +/* 0C79C4 7F092E54 24040006 */ li $a0, 6 +/* 0C79C8 7F092E58 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C79CC 7F092E5C 00402825 */ move $a1, $v0 +/* 0C79D0 7F092E60 0FC1A630 */ jal get_max_ammo_for_type +/* 0C79D4 7F092E64 24040003 */ li $a0, 3 +/* 0C79D8 7F092E68 24040003 */ li $a0, 3 +/* 0C79DC 7F092E6C 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C79E0 7F092E70 00402825 */ move $a1, $v0 +/* 0C79E4 7F092E74 1000004D */ b .Ljp7F092FAC +/* 0C79E8 7F092E78 8FBF0014 */ lw $ra, 0x14($sp) +.cheats_debug_2x_hunting_knife_en: +/* 0C79EC 7F092E7C 0FC2335A */ jal add_item_to_inventory +/* 0C79F0 7F092E80 24040002 */ li $a0, 2 +/* 0C79F4 7F092E84 24040002 */ li $a0, 2 +/* 0C79F8 7F092E88 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C79FC 7F092E8C 24050002 */ li $a1, 2 +/* 0C7A00 7F092E90 10000046 */ b .Ljp7F092FAC +/* 0C7A04 7F092E94 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_laser: +/* 0C7A08 7F092E98 24010001 */ li $at, 1 +/* 0C7A0C 7F092E9C 54410043 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C7A10 7F092EA0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7A14 7F092EA4 0FC2335A */ jal add_item_to_inventory +/* 0C7A18 7F092EA8 24040016 */ li $a0, 22 +/* 0C7A1C 7F092EAC 24040016 */ li $a0, 22 +/* 0C7A20 7F092EB0 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C7A24 7F092EB4 24050016 */ li $a1, 22 +/* 0C7A28 7F092EB8 1000003C */ b .Ljp7F092FAC +/* 0C7A2C 7F092EBC 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_unlockcheat: +/* 0C7A30 7F092EC0 3C048003 */ lui $a0, %hi(selected_folder_num) # $a0, 0x8003 +/* 0C7A34 7F092EC4 8C84A928 */ lw $a0, %lo(selected_folder_num)($a0) +/* 0C7A38 7F092EC8 24C5FFDD */ addiu $a1, $a2, -0x23 +/* 0C7A3C 7F092ECC 04800036 */ bltz $a0, .Ljp7F092FA8 +/* 0C7A40 7F092ED0 28810004 */ slti $at, $a0, 4 +/* 0C7A44 7F092ED4 50200035 */ beql $at, $zero, .Ljp7F092FAC +/* 0C7A48 7F092ED8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7A4C 7F092EDC 0FC07A44 */ jal sub_GAME_7F01E760 +/* 0C7A50 7F092EE0 00000000 */ nop +/* 0C7A54 7F092EE4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0C7A58 7F092EE8 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0C7A5C 7F092EEC 2405009F */ li $a1, 159 +/* 0C7A60 7F092EF0 0C002386 */ jal play_sfx_a1 +/* 0C7A64 7F092EF4 00003025 */ move $a2, $zero +/* 0C7A68 7F092EF8 1000002C */ b .Ljp7F092FAC +/* 0C7A6C 7F092EFC 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_unlocklevel: +/* 0C7A70 7F092F00 3C028003 */ lui $v0, %hi(selected_folder_num) # $v0, 0x8003 +/* 0C7A74 7F092F04 2442A928 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x56d8 +/* 0C7A78 7F092F08 8C440000 */ lw $a0, ($v0) +/* 0C7A7C 7F092F0C 24C8FFC9 */ addiu $t0, $a2, -0x37 +/* 0C7A80 7F092F10 04800025 */ bltz $a0, .Ljp7F092FA8 +/* 0C7A84 7F092F14 28810004 */ slti $at, $a0, 4 +/* 0C7A88 7F092F18 10200023 */ beqz $at, .Ljp7F092FA8 +/* 0C7A8C 7F092F1C 00001825 */ move $v1, $zero +/* 0C7A90 7F092F20 19000014 */ blez $t0, .Ljp7F092F74 +/* 0C7A94 7F092F24 00002825 */ move $a1, $zero +.Ljp7F092F28: +/* 0C7A98 7F092F28 3C028003 */ lui $v0, %hi(selected_folder_num) # $v0, 0x8003 +/* 0C7A9C 7F092F2C 2442A928 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x56d8 +/* 0C7AA0 7F092F30 8C440000 */ lw $a0, ($v0) +/* 0C7AA4 7F092F34 00003025 */ move $a2, $zero +/* 0C7AA8 7F092F38 AFA30018 */ sw $v1, 0x18($sp) +/* 0C7AAC 7F092F3C AFA5001C */ sw $a1, 0x1c($sp) +/* 0C7AB0 7F092F40 0FC0791C */ jal isStageUnlockedAtDifficulty +/* 0C7AB4 7F092F44 AFA80020 */ sw $t0, 0x20($sp) +/* 0C7AB8 7F092F48 24010003 */ li $at, 3 +/* 0C7ABC 7F092F4C 8FA30018 */ lw $v1, 0x18($sp) +/* 0C7AC0 7F092F50 8FA5001C */ lw $a1, 0x1c($sp) +/* 0C7AC4 7F092F54 14410002 */ bne $v0, $at, .Ljp7F092F60 +/* 0C7AC8 7F092F58 8FA80020 */ lw $t0, 0x20($sp) +/* 0C7ACC 7F092F5C 24630001 */ addiu $v1, $v1, 1 +.Ljp7F092F60: +/* 0C7AD0 7F092F60 24A50001 */ addiu $a1, $a1, 1 +/* 0C7AD4 7F092F64 14A8FFF0 */ bne $a1, $t0, .Ljp7F092F28 +/* 0C7AD8 7F092F68 00000000 */ nop +/* 0C7ADC 7F092F6C 3C028003 */ lui $v0, %hi(selected_folder_num) # $v0, 0x8003 +/* 0C7AE0 7F092F70 2442A928 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x56d8 +.Ljp7F092F74: +/* 0C7AE4 7F092F74 24780001 */ addiu $t8, $v1, 1 +/* 0C7AE8 7F092F78 1518000B */ bne $t0, $t8, .Ljp7F092FA8 +/* 0C7AEC 7F092F7C 2505FFFF */ addiu $a1, $t0, -1 +/* 0C7AF0 7F092F80 3C0705F5 */ lui $a3, (0x05F5E0FF >> 16) # lui $a3, 0x5f5 +/* 0C7AF4 7F092F84 34E7E0FF */ ori $a3, (0x05F5E0FF & 0xFFFF) # ori $a3, $a3, 0xe0ff +/* 0C7AF8 7F092F88 8C440000 */ lw $a0, ($v0) +/* 0C7AFC 7F092F8C 0FC079EA */ jal unlock_stage_in_folder_on_difficulty +/* 0C7B00 7F092F90 00003025 */ move $a2, $zero +/* 0C7B04 7F092F94 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0C7B08 7F092F98 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0C7B0C 7F092F9C 2405009F */ li $a1, 159 +/* 0C7B10 7F092FA0 0C002386 */ jal play_sfx_a1 +/* 0C7B14 7F092FA4 00003025 */ move $a2, $zero +cheats_debug_return_saved_ra: +.Ljp7F092FA8: +/* 0C7B18 7F092FA8 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F092FAC: +/* 0C7B1C 7F092FAC 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0C7B20 7F092FB0 03E00008 */ jr $ra +/* 0C7B24 7F092FB4 00000000 */ nop +) +#endif + +#endif + + + +#ifdef NONMATCHING +void cheatDisplayMessageActivateCheat(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +/*D:800573DC*/ +glabel jpt_800573DC +.word cheat_button_default +.word cheat_button_invincibility +.word cheat_button_all_guns +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_line_mode +.word cheat_button_default +.word cheat_button_default +.word cheat_button_unknown +.word cheat_button_infinite_ammo +.word cheat_button_dkmode +.word cheat_button_default +.word cheat_button_unknown_0 +.word cheat_button_paintball +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_mp_invis +.word cheat_button_default +.word cheat_button_fast_mode +.word cheat_button_debug_mode +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ + +.text +glabel cheatDisplayMessageActivateCheat +/* 0C6F68 7F092438 00047100 */ sll $t6, $a0, 4 +/* 0C6F6C 7F09243C 3C0F8004 */ lui $t7, %hi(D_8003F808) +/* 0C6F70 7F092440 01EE7821 */ addu $t7, $t7, $t6 +/* 0C6F74 7F092444 8DEFF808 */ lw $t7, %lo(D_8003F808)($t7) +/* 0C6F78 7F092448 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C6F7C 7F09244C AFBF0014 */ sw $ra, 0x14($sp) +/* 0C6F80 7F092450 AFA40020 */ sw $a0, 0x20($sp) +/* 0C6F84 7F092454 0FC26C54 */ jal get_cur_playernum +/* 0C6F88 7F092458 AFAF001C */ sw $t7, 0x1c($sp) +/* 0C6F8C 7F09245C 0FC26919 */ jal get_num_players +/* 0C6F90 7F092460 AFA20018 */ sw $v0, 0x18($sp) +/* 0C6F94 7F092464 8FA3001C */ lw $v1, 0x1c($sp) +/* 0C6F98 7F092468 8FA40020 */ lw $a0, 0x20($sp) +/* 0C6F9C 7F09246C 30780010 */ andi $t8, $v1, 0x10 +/* 0C6FA0 7F092470 17000010 */ bnez $t8, .L7F0924B4 +/* 0C6FA4 7F092474 30790020 */ andi $t9, $v1, 0x20 +/* 0C6FA8 7F092478 1720000B */ bnez $t9, .L7F0924A8 +/* 0C6FAC 7F09247C 3C088008 */ lui $t0, %hi(off_CODE_bss_80079E30) +/* 0C6FB0 7F092480 8FAA0018 */ lw $t2, 0x18($sp) +/* 0C6FB4 7F092484 25089E30 */ addiu $t0, %lo(off_CODE_bss_80079E30) # addiu $t0, $t0, -0x61d0 +/* 0C6FB8 7F092488 00881821 */ addu $v1, $a0, $t0 +/* 0C6FBC 7F09248C 90690000 */ lbu $t1, ($v1) +/* 0C6FC0 7F092490 240B0001 */ li $t3, 1 +/* 0C6FC4 7F092494 014B6004 */ sllv $t4, $t3, $t2 +/* 0C6FC8 7F092498 01806827 */ not $t5, $t4 +/* 0C6FCC 7F09249C 012D7024 */ and $t6, $t1, $t5 +/* 0C6FD0 7F0924A0 10000004 */ b .L7F0924B4 +/* 0C6FD4 7F0924A4 A06E0000 */ sb $t6, ($v1) +.L7F0924A8: +/* 0C6FD8 7F0924A8 3C018008 */ lui $at, %hi(off_CODE_bss_80079E30) +/* 0C6FDC 7F0924AC 00240821 */ addu $at, $at, $a0 +/* 0C6FE0 7F0924B0 A0209E30 */ sb $zero, %lo(off_CODE_bss_80079E30)($at) +.L7F0924B4: +/* 0C6FE4 7F0924B4 248FFFFF */ addiu $t7, $a0, -1 +/* 0C6FE8 7F0924B8 2DE1004A */ sltiu $at, $t7, 0x4a +/* 0C6FEC 7F0924BC 1020007C */ beqz $at, .L7F0926B0 +/* 0C6FF0 7F0924C0 000F7880 */ sll $t7, $t7, 2 +/* 0C6FF4 7F0924C4 3C018005 */ lui $at, %hi(jpt_800573DC) +/* 0C6FF8 7F0924C8 002F0821 */ addu $at, $at, $t7 +/* 0C6FFC 7F0924CC 8C2F73DC */ lw $t7, %lo(jpt_800573DC)($at) +/* 0C7000 7F0924D0 01E00008 */ jr $t7 +/* 0C7004 7F0924D4 00000000 */ nop +cheat_button_invincibility: +/* 0C7008 7F0924D8 0FC227D6 */ jal get_bondata_invincible_flag +/* 0C700C 7F0924DC 00000000 */ nop +/* 0C7010 7F0924E0 50400074 */ beql $v0, $zero, .L7F0926B4 +/* 0C7014 7F0924E4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7018 7F0924E8 0FC30776 */ jal get_textptr_for_textID +/* 0C701C 7F0924EC 3404B01E */ li $a0, 45086 +/* 0C7020 7F0924F0 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C7024 7F0924F4 00402025 */ move $a0, $v0 +/* 0C7028 7F0924F8 0FC227D2 */ jal set_bondata_invincible_flag +/* 0C702C 7F0924FC 00002025 */ move $a0, $zero +/* 0C7030 7F092500 1000006C */ b .L7F0926B4 +/* 0C7034 7F092504 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_all_guns: +/* 0C7038 7F092508 0FC230AB */ jal get_BONDdata_allguns_flag +/* 0C703C 7F09250C 00000000 */ nop +/* 0C7040 7F092510 50400068 */ beql $v0, $zero, .L7F0926B4 +/* 0C7044 7F092514 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7048 7F092518 0FC30776 */ jal get_textptr_for_textID +/* 0C704C 7F09251C 3404B01F */ li $a0, 45087 +/* 0C7050 7F092520 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C7054 7F092524 00402025 */ move $a0, $v0 +/* 0C7058 7F092528 0FC230A7 */ jal set_BONDdata_allguns_flag +/* 0C705C 7F09252C 00002025 */ move $a0, $zero +/* 0C7060 7F092530 10000060 */ b .L7F0926B4 +/* 0C7064 7F092534 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_line_mode: +/* 0C7068 7F092538 0FC243FA */ jal set_debug_VisCVG_flag +/* 0C706C 7F09253C 00002025 */ move $a0, $zero +/* 0C7070 7F092540 1000005C */ b .L7F0926B4 +/* 0C7074 7F092544 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_unknown: +/* 0C7078 7F092548 0FC227DD */ jal get_invisible_to_guards_flag +/* 0C707C 7F09254C 00000000 */ nop +/* 0C7080 7F092550 54400058 */ bnezl $v0, .L7F0926B4 +/* 0C7084 7F092554 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7088 7F092558 0FC30776 */ jal get_textptr_for_textID +/* 0C708C 7F09255C 3404B020 */ li $a0, 45088 +/* 0C7090 7F092560 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C7094 7F092564 00402025 */ move $a0, $v0 +/* 0C7098 7F092568 0FC227DA */ jal set_invisible_to_guards_flag +/* 0C709C 7F09256C 24040001 */ li $a0, 1 +/* 0C70A0 7F092570 10000050 */ b .L7F0926B4 +/* 0C70A4 7F092574 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_infinite_ammo: +/* 0C70A8 7F092578 0FC30776 */ jal get_textptr_for_textID +/* 0C70AC 7F09257C 3404B022 */ li $a0, 45090 +/* 0C70B0 7F092580 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C70B4 7F092584 00402025 */ move $a0, $v0 +/* 0C70B8 7F092588 1000004A */ b .L7F0926B4 +/* 0C70BC 7F09258C 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_dkmode: +/* 0C70C0 7F092590 0FC30776 */ jal get_textptr_for_textID +/* 0C70C4 7F092594 3404B023 */ li $a0, 45091 +/* 0C70C8 7F092598 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C70CC 7F09259C 00402025 */ move $a0, $v0 +/* 0C70D0 7F0925A0 0FC249FD */ jal set_DKMode +/* 0C70D4 7F0925A4 00002025 */ move $a0, $zero +/* 0C70D8 7F0925A8 10000042 */ b .L7F0926B4 +/* 0C70DC 7F0925AC 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_unknown_0: +/* 0C70E0 7F0925B0 24010001 */ li $at, 1 +/* 0C70E4 7F0925B4 1441003E */ bne $v0, $at, .L7F0926B0 +/* 0C70E8 7F0925B8 3C188008 */ lui $t8, %hi(pPlayersPerm) +/* 0C70EC 7F0925BC 8F18A0B4 */ lw $t8, %lo(pPlayersPerm)($t8) +/* 0C70F0 7F0925C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C70F4 7F0925C4 44812000 */ mtc1 $at, $f4 +/* 0C70F8 7F0925C8 C7060064 */ lwc1 $f6, 0x64($t8) +/* 0C70FC 7F0925CC 46062032 */ c.eq.s $f4, $f6 +/* 0C7100 7F0925D0 00000000 */ nop +/* 0C7104 7F0925D4 45030037 */ bc1tl .L7F0926B4 +/* 0C7108 7F0925D8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C710C 7F0925DC 0FC30776 */ jal get_textptr_for_textID +/* 0C7110 7F0925E0 3404B024 */ li $a0, 45092 +/* 0C7114 7F0925E4 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C7118 7F0925E8 00402025 */ move $a0, $v0 +/* 0C711C 7F0925EC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7120 7F0925F0 3C198008 */ lui $t9, %hi(pPlayersPerm) +/* 0C7124 7F0925F4 8F39A0B4 */ lw $t9, %lo(pPlayersPerm)($t9) +/* 0C7128 7F0925F8 44814000 */ mtc1 $at, $f8 +/* 0C712C 7F0925FC 3C088008 */ lui $t0, %hi(pPlayer) +/* 0C7130 7F092600 E7280064 */ swc1 $f8, 0x64($t9) +/* 0C7134 7F092604 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0C7138 7F092608 8D0400D4 */ lw $a0, 0xd4($t0) +/* 0C713C 7F09260C 50800029 */ beql $a0, $zero, .L7F0926B4 +/* 0C7140 7F092610 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7144 7F092614 C4800014 */ lwc1 $f0, 0x14($a0) +/* 0C7148 7F092618 46000280 */ add.s $f10, $f0, $f0 +/* 0C714C 7F09261C 44055000 */ mfc1 $a1, $f10 +/* 0C7150 7F092620 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0C7154 7F092624 00000000 */ nop +/* 0C7158 7F092628 10000022 */ b .L7F0926B4 +/* 0C715C 7F09262C 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_paintball: +/* 0C7160 7F092630 0FC30776 */ jal get_textptr_for_textID +/* 0C7164 7F092634 3404B025 */ li $a0, 45093 +/* 0C7168 7F092638 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C716C 7F09263C 00402025 */ move $a0, $v0 +/* 0C7170 7F092640 1000001C */ b .L7F0926B4 +/* 0C7174 7F092644 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_mp_invis: +/* 0C7178 7F092648 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0C717C 7F09264C 44816000 */ mtc1 $at, $f12 +/* 0C7180 7F092650 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7184 7F092654 44817000 */ mtc1 $at, $f14 +/* 0C7188 7F092658 0FC20284 */ jal set_curplayer_fade +/* 0C718C 7F09265C 00000000 */ nop +/* 0C7190 7F092660 10000014 */ b .L7F0926B4 +/* 0C7194 7F092664 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_fast_mode: +/* 0C7198 7F092668 0FC24406 */ jal get_debug_fast_bond_flag +/* 0C719C 7F09266C 00000000 */ nop +/* 0C71A0 7F092670 50400010 */ beql $v0, $zero, .L7F0926B4 +/* 0C71A4 7F092674 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C71A8 7F092678 0FC30776 */ jal get_textptr_for_textID +/* 0C71AC 7F09267C 3404B027 */ li $a0, 45095 +/* 0C71B0 7F092680 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C71B4 7F092684 00402025 */ move $a0, $v0 +/* 0C71B8 7F092688 0FC24409 */ jal set_debug_fast_bond_flag +/* 0C71BC 7F09268C 00002025 */ move $a0, $zero +/* 0C71C0 7F092690 10000008 */ b .L7F0926B4 +/* 0C71C4 7F092694 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_debug_mode: +/* 0C71C8 7F092698 0FC243E2 */ jal get_debug_testingmanpos_flag +/* 0C71CC 7F09269C 00000000 */ nop +/* 0C71D0 7F0926A0 50400004 */ beql $v0, $zero, .L7F0926B4 +/* 0C71D4 7F0926A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C71D8 7F0926A8 0FC243E5 */ jal set_debug_testingmanpos_flag +/* 0C71DC 7F0926AC 00002025 */ move $a0, $zero +cheat_button_default: +.L7F0926B0: +/* 0C71E0 7F0926B0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0926B4: +/* 0C71E4 7F0926B4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C71E8 7F0926B8 03E00008 */ jr $ra +/* 0C71EC 7F0926BC 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +/*D:800573DC*/ +glabel jpt_800573DC +.word cheat_button_default +.word cheat_button_invincibility +.word cheat_button_all_guns +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_line_mode +.word cheat_button_default +.word cheat_button_default +.word cheat_button_unknown +.word cheat_button_infinite_ammo +.word cheat_button_dkmode +.word cheat_button_default +.word cheat_button_unknown_0 +.word cheat_button_paintball +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_mp_invis +.word cheat_button_default +.word cheat_button_fast_mode +.word cheat_button_debug_mode +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ + +.text +glabel cheatDisplayMessageActivateCheat +/* 0C6F68 7F092438 00047100 */ sll $t6, $a0, 4 +/* 0C6F6C 7F09243C 3C0F8004 */ lui $t7, %hi(D_8003F808) +/* 0C6F70 7F092440 01EE7821 */ addu $t7, $t7, $t6 +/* 0C6F74 7F092444 8DEFF808 */ lw $t7, %lo(D_8003F808)($t7) +/* 0C6F78 7F092448 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C6F7C 7F09244C AFBF0014 */ sw $ra, 0x14($sp) +/* 0C6F80 7F092450 AFA40020 */ sw $a0, 0x20($sp) +/* 0C6F84 7F092454 0FC26C54 */ jal get_cur_playernum +/* 0C6F88 7F092458 AFAF001C */ sw $t7, 0x1c($sp) +/* 0C6F8C 7F09245C 0FC26919 */ jal get_num_players +/* 0C6F90 7F092460 AFA20018 */ sw $v0, 0x18($sp) +/* 0C6F94 7F092464 8FA3001C */ lw $v1, 0x1c($sp) +/* 0C6F98 7F092468 8FA40020 */ lw $a0, 0x20($sp) +/* 0C6F9C 7F09246C 30780010 */ andi $t8, $v1, 0x10 +/* 0C6FA0 7F092470 17000010 */ bnez $t8, .L7F0924B4 +/* 0C6FA4 7F092474 30790020 */ andi $t9, $v1, 0x20 +/* 0C6FA8 7F092478 1720000B */ bnez $t9, .L7F0924A8 +/* 0C6FAC 7F09247C 3C088008 */ lui $t0, %hi(off_CODE_bss_80079E30) +/* 0C6FB0 7F092480 8FAA0018 */ lw $t2, 0x18($sp) +/* 0C6FB4 7F092484 25089E30 */ addiu $t0, %lo(off_CODE_bss_80079E30) # addiu $t0, $t0, -0x61d0 +/* 0C6FB8 7F092488 00881821 */ addu $v1, $a0, $t0 +/* 0C6FBC 7F09248C 90690000 */ lbu $t1, ($v1) +/* 0C6FC0 7F092490 240B0001 */ li $t3, 1 +/* 0C6FC4 7F092494 014B6004 */ sllv $t4, $t3, $t2 +/* 0C6FC8 7F092498 01806827 */ not $t5, $t4 +/* 0C6FCC 7F09249C 012D7024 */ and $t6, $t1, $t5 +/* 0C6FD0 7F0924A0 10000004 */ b .L7F0924B4 +/* 0C6FD4 7F0924A4 A06E0000 */ sb $t6, ($v1) +.L7F0924A8: +/* 0C6FD8 7F0924A8 3C018008 */ lui $at, %hi(off_CODE_bss_80079E30) +/* 0C6FDC 7F0924AC 00240821 */ addu $at, $at, $a0 +/* 0C6FE0 7F0924B0 A0209E30 */ sb $zero, %lo(off_CODE_bss_80079E30)($at) +.L7F0924B4: +/* 0C6FE4 7F0924B4 248FFFFF */ addiu $t7, $a0, -1 +/* 0C6FE8 7F0924B8 2DE1004A */ sltiu $at, $t7, 0x4a +/* 0C6FEC 7F0924BC 1020007C */ beqz $at, .L7F0926B0 +/* 0C6FF0 7F0924C0 000F7880 */ sll $t7, $t7, 2 +/* 0C6FF4 7F0924C4 3C018005 */ lui $at, %hi(jpt_800573DC) +/* 0C6FF8 7F0924C8 002F0821 */ addu $at, $at, $t7 +/* 0C6FFC 7F0924CC 8C2F73DC */ lw $t7, %lo(jpt_800573DC)($at) +/* 0C7000 7F0924D0 01E00008 */ jr $t7 +/* 0C7004 7F0924D4 00000000 */ nop +cheat_button_invincibility: +/* 0C7008 7F0924D8 0FC227D6 */ jal get_bondata_invincible_flag +/* 0C700C 7F0924DC 00000000 */ nop +/* 0C7010 7F0924E0 50400074 */ beql $v0, $zero, .L7F0926B4 +/* 0C7014 7F0924E4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7018 7F0924E8 0FC30776 */ jal get_textptr_for_textID +/* 0C701C 7F0924EC 3404B01E */ li $a0, 45086 +/* 0C7020 7F0924F0 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 0C7024 7F0924F4 00402025 */ move $a0, $v0 +/* 0C7028 7F0924F8 0FC227D2 */ jal set_bondata_invincible_flag +/* 0C702C 7F0924FC 00002025 */ move $a0, $zero +/* 0C7030 7F092500 1000006C */ b .L7F0926B4 +/* 0C7034 7F092504 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_all_guns: +/* 0C7038 7F092508 0FC230AB */ jal get_BONDdata_allguns_flag +/* 0C703C 7F09250C 00000000 */ nop +/* 0C7040 7F092510 50400068 */ beql $v0, $zero, .L7F0926B4 +/* 0C7044 7F092514 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7048 7F092518 0FC30776 */ jal get_textptr_for_textID +/* 0C704C 7F09251C 3404B01F */ li $a0, 45087 +/* 0C7050 7F092520 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 0C7054 7F092524 00402025 */ move $a0, $v0 +/* 0C7058 7F092528 0FC230A7 */ jal set_BONDdata_allguns_flag +/* 0C705C 7F09252C 00002025 */ move $a0, $zero +/* 0C7060 7F092530 10000060 */ b .L7F0926B4 +/* 0C7064 7F092534 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_line_mode: +/* 0C7068 7F092538 0FC243FA */ jal set_debug_VisCVG_flag +/* 0C706C 7F09253C 00002025 */ move $a0, $zero +/* 0C7070 7F092540 1000005C */ b .L7F0926B4 +/* 0C7074 7F092544 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_unknown: +/* 0C7078 7F092548 0FC227DD */ jal get_invisible_to_guards_flag +/* 0C707C 7F09254C 00000000 */ nop +/* 0C7080 7F092550 54400058 */ bnezl $v0, .L7F0926B4 +/* 0C7084 7F092554 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7088 7F092558 0FC30776 */ jal get_textptr_for_textID +/* 0C708C 7F09255C 3404B020 */ li $a0, 45088 +/* 0C7090 7F092560 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 0C7094 7F092564 00402025 */ move $a0, $v0 +/* 0C7098 7F092568 0FC227DA */ jal set_invisible_to_guards_flag +/* 0C709C 7F09256C 24040001 */ li $a0, 1 +/* 0C70A0 7F092570 10000050 */ b .L7F0926B4 +/* 0C70A4 7F092574 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_infinite_ammo: +/* 0C70A8 7F092578 0FC30776 */ jal get_textptr_for_textID +/* 0C70AC 7F09257C 3404B022 */ li $a0, 45090 +/* 0C70B0 7F092580 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 0C70B4 7F092584 00402025 */ move $a0, $v0 +/* 0C70B8 7F092588 1000004A */ b .L7F0926B4 +/* 0C70BC 7F09258C 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_dkmode: +/* 0C70C0 7F092590 0FC30776 */ jal get_textptr_for_textID +/* 0C70C4 7F092594 3404B023 */ li $a0, 45091 +/* 0C70C8 7F092598 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 0C70CC 7F09259C 00402025 */ move $a0, $v0 +/* 0C70D0 7F0925A0 0FC249FD */ jal set_DKMode +/* 0C70D4 7F0925A4 00002025 */ move $a0, $zero +/* 0C70D8 7F0925A8 10000042 */ b .L7F0926B4 +/* 0C70DC 7F0925AC 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_unknown_0: +/* 0C70E0 7F0925B0 24010001 */ li $at, 1 +/* 0C70E4 7F0925B4 1441003E */ bne $v0, $at, .L7F0926B0 +/* 0C70E8 7F0925B8 3C188008 */ lui $t8, %hi(pPlayersPerm) +/* 0C70EC 7F0925BC 8F18A0B4 */ lw $t8, %lo(pPlayersPerm)($t8) +/* 0C70F0 7F0925C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C70F4 7F0925C4 44812000 */ mtc1 $at, $f4 +/* 0C70F8 7F0925C8 C7060064 */ lwc1 $f6, 0x64($t8) +/* 0C70FC 7F0925CC 46062032 */ c.eq.s $f4, $f6 +/* 0C7100 7F0925D0 00000000 */ nop +/* 0C7104 7F0925D4 45030037 */ bc1tl .L7F0926B4 +/* 0C7108 7F0925D8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C710C 7F0925DC 0FC30776 */ jal get_textptr_for_textID +/* 0C7110 7F0925E0 3404B024 */ li $a0, 45092 +/* 0C7114 7F0925E4 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 0C7118 7F0925E8 00402025 */ move $a0, $v0 +/* 0C711C 7F0925EC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7120 7F0925F0 3C198008 */ lui $t9, %hi(pPlayersPerm) +/* 0C7124 7F0925F4 8F39A0B4 */ lw $t9, %lo(pPlayersPerm)($t9) +/* 0C7128 7F0925F8 44814000 */ mtc1 $at, $f8 +/* 0C712C 7F0925FC 3C088008 */ lui $t0, %hi(pPlayer) +/* 0C7130 7F092600 E7280064 */ swc1 $f8, 0x64($t9) +/* 0C7134 7F092604 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0C7138 7F092608 8D0400D4 */ lw $a0, 0xd4($t0) +/* 0C713C 7F09260C 50800029 */ beql $a0, $zero, .L7F0926B4 +/* 0C7140 7F092610 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7144 7F092614 C4800014 */ lwc1 $f0, 0x14($a0) +/* 0C7148 7F092618 46000280 */ add.s $f10, $f0, $f0 +/* 0C714C 7F09261C 44055000 */ mfc1 $a1, $f10 +/* 0C7150 7F092620 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0C7154 7F092624 00000000 */ nop +/* 0C7158 7F092628 10000022 */ b .L7F0926B4 +/* 0C715C 7F09262C 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_paintball: +/* 0C7160 7F092630 0FC30776 */ jal get_textptr_for_textID +/* 0C7164 7F092634 3404B025 */ li $a0, 45093 +/* 0C7168 7F092638 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 0C716C 7F09263C 00402025 */ move $a0, $v0 +/* 0C7170 7F092640 1000001C */ b .L7F0926B4 +/* 0C7174 7F092644 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_mp_invis: +/* 0C7178 7F092648 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0C717C 7F09264C 44816000 */ mtc1 $at, $f12 +/* 0C7180 7F092650 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7184 7F092654 44817000 */ mtc1 $at, $f14 +/* 0C7188 7F092658 0FC20284 */ jal set_curplayer_fade +/* 0C718C 7F09265C 00000000 */ nop +/* 0C7190 7F092660 10000014 */ b .L7F0926B4 +/* 0C7194 7F092664 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_fast_mode: +/* 0C7198 7F092668 0FC24406 */ jal get_debug_fast_bond_flag +/* 0C719C 7F09266C 00000000 */ nop +/* 0C71A0 7F092670 50400010 */ beql $v0, $zero, .L7F0926B4 +/* 0C71A4 7F092674 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C71A8 7F092678 0FC30776 */ jal get_textptr_for_textID +/* 0C71AC 7F09267C 3404B027 */ li $a0, 45095 +/* 0C71B0 7F092680 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 0C71B4 7F092684 00402025 */ move $a0, $v0 +/* 0C71B8 7F092688 0FC24409 */ jal set_debug_fast_bond_flag +/* 0C71BC 7F09268C 00002025 */ move $a0, $zero +/* 0C71C0 7F092690 10000008 */ b .L7F0926B4 +/* 0C71C4 7F092694 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_debug_mode: +/* 0C71C8 7F092698 0FC243E2 */ jal get_debug_testingmanpos_flag +/* 0C71CC 7F09269C 00000000 */ nop +/* 0C71D0 7F0926A0 50400004 */ beql $v0, $zero, .L7F0926B4 +/* 0C71D4 7F0926A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C71D8 7F0926A8 0FC243E5 */ jal set_debug_testingmanpos_flag +/* 0C71DC 7F0926AC 00002025 */ move $a0, $zero +cheat_button_default: +.L7F0926B0: +/* 0C71E0 7F0926B0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0926B4: +/* 0C71E4 7F0926B4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C71E8 7F0926B8 03E00008 */ jr $ra +/* 0C71EC 7F0926BC 00000000 */ nop +) +#endif +#endif + + + + + +#ifdef NONMATCHING +void cheatDisableAllCheats(void) { + s32 sp30; + s32 temp_s4; + s32 temp_s0; + s32 temp_s3; + s32 phi_s3; + void *phi_s1; + s32 phi_s0; + + // Node 0 + temp_s4 = get_num_players(); + sp30 = get_cur_playernum(); + if (temp_s4 > 0) + { + // Node 1 + phi_s3 = 0; +loop_2: + // Node 2 + set_cur_player(phi_s3); + phi_s1 = &D_8003F80C+0x10; + phi_s0 = 1; +loop_3: + // Node 3 + if ((phi_s1->unk-4 & 0x40) != 0) + { + // Node 4 + if (cheatCheckIfOn(phi_s0) != 0) + { + // Node 5 + cheatDisplayMessageActivateCheat(phi_s0); + } + } + // Node 6 + temp_s0 = (phi_s0 + 1); + phi_s1 = (phi_s1 + 0x10); + phi_s0 = temp_s0; + if (temp_s0 != 0x4b) + { + goto loop_3; + } + // Node 7 + temp_s3 = (phi_s3 + 1); + phi_s3 = temp_s3; + if (temp_s3 != temp_s4) + { + goto loop_2; + } + } + // Node 8 + return set_cur_player(sp30); +} +#else +GLOBAL_ASM( +.late_rodata +/*hack for jtbl*/ +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +.text +glabel cheatDisableAllCheats +/* 0C71F0 7F0926C0 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0C71F4 7F0926C4 AFBF002C */ sw $ra, 0x2c($sp) +/* 0C71F8 7F0926C8 AFB40028 */ sw $s4, 0x28($sp) +/* 0C71FC 7F0926CC AFB30024 */ sw $s3, 0x24($sp) +/* 0C7200 7F0926D0 AFB20020 */ sw $s2, 0x20($sp) +/* 0C7204 7F0926D4 AFB1001C */ sw $s1, 0x1c($sp) +/* 0C7208 7F0926D8 0FC26919 */ jal get_num_players +/* 0C720C 7F0926DC AFB00018 */ sw $s0, 0x18($sp) +/* 0C7210 7F0926E0 0FC26C54 */ jal get_cur_playernum +/* 0C7214 7F0926E4 0040A025 */ move $s4, $v0 +/* 0C7218 7F0926E8 AFA20030 */ sw $v0, 0x30($sp) +/* 0C721C 7F0926EC 1A800017 */ blez $s4, .L7F09274C +/* 0C7220 7F0926F0 00009825 */ move $s3, $zero +/* 0C7224 7F0926F4 2412004B */ li $s2, 75 +.L7F0926F8: +/* 0C7228 7F0926F8 0FC26C43 */ jal set_cur_player +/* 0C722C 7F0926FC 02602025 */ move $a0, $s3 +/* 0C7230 7F092700 3C118004 */ lui $s1, %hi(D_8003F80C+0x10) +/* 0C7234 7F092704 2631F81C */ addiu $s1, %lo(D_8003F80C+0x10) # addiu $s1, $s1, -0x7e4 +/* 0C7238 7F092708 24100001 */ li $s0, 1 +.L7F09270C: +/* 0C723C 7F09270C 8E2EFFFC */ lw $t6, -4($s1) +/* 0C7240 7F092710 31CF0040 */ andi $t7, $t6, 0x40 +/* 0C7244 7F092714 51E00008 */ beql $t7, $zero, .L7F092738 +/* 0C7248 7F092718 26100001 */ addiu $s0, $s0, 1 +/* 0C724C 7F09271C 0FC249EF */ jal cheatCheckIfOn +/* 0C7250 7F092720 02002025 */ move $a0, $s0 +/* 0C7254 7F092724 50400004 */ beql $v0, $zero, .L7F092738 +/* 0C7258 7F092728 26100001 */ addiu $s0, $s0, 1 +/* 0C725C 7F09272C 0FC2490E */ jal cheatDisplayMessageActivateCheat +/* 0C7260 7F092730 02002025 */ move $a0, $s0 +/* 0C7264 7F092734 26100001 */ addiu $s0, $s0, 1 +.L7F092738: +/* 0C7268 7F092738 1612FFF4 */ bne $s0, $s2, .L7F09270C +/* 0C726C 7F09273C 26310010 */ addiu $s1, $s1, 0x10 +/* 0C7270 7F092740 26730001 */ addiu $s3, $s3, 1 +/* 0C7274 7F092744 1674FFEC */ bne $s3, $s4, .L7F0926F8 +/* 0C7278 7F092748 00000000 */ nop +.L7F09274C: +/* 0C727C 7F09274C 0FC26C43 */ jal set_cur_player +/* 0C7280 7F092750 8FA40030 */ lw $a0, 0x30($sp) +/* 0C7284 7F092754 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C7288 7F092758 8FB00018 */ lw $s0, 0x18($sp) +/* 0C728C 7F09275C 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C7290 7F092760 8FB20020 */ lw $s2, 0x20($sp) +/* 0C7294 7F092764 8FB30024 */ lw $s3, 0x24($sp) +/* 0C7298 7F092768 8FB40028 */ lw $s4, 0x28($sp) +/* 0C729C 7F09276C 03E00008 */ jr $ra +/* 0C72A0 7F092770 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void cheatGetMenuTextPointer(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*hack for jtbl*/ +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +.text +glabel cheatGetMenuTextPointer +/* 0C72A4 7F092774 00047100 */ sll $t6, $a0, 4 +/* 0C72A8 7F092778 3C028004 */ lui $v0, %hi(D_8003F804) +/* 0C72AC 7F09277C 004E1021 */ addu $v0, $v0, $t6 +/* 0C72B0 7F092780 9442F804 */ lhu $v0, %lo(D_8003F804)($v0) +/* 0C72B4 7F092784 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C72B8 7F092788 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C72BC 7F09278C 10400005 */ beqz $v0, .L7F0927A4 +/* 0C72C0 7F092790 00000000 */ nop +/* 0C72C4 7F092794 0FC30776 */ jal get_textptr_for_textID +/* 0C72C8 7F092798 00402025 */ move $a0, $v0 +/* 0C72CC 7F09279C 10000004 */ b .L7F0927B0 +/* 0C72D0 7F0927A0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0927A4: +/* 0C72D4 7F0927A4 0FC30776 */ jal get_textptr_for_textID +/* 0C72D8 7F0927A8 3404B028 */ li $a0, 45096 +/* 0C72DC 7F0927AC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0927B0: +/* 0C72E0 7F0927B0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C72E4 7F0927B4 03E00008 */ jr $ra +/* 0C72E8 7F0927B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void cheatCheckIfOn(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*ugh hack for jtbl*/ +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default + +.text +glabel cheatCheckIfOn +/* 0C72EC 7F0927BC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C72F0 7F0927C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C72F4 7F0927C4 0FC26C54 */ jal get_cur_playernum +/* 0C72F8 7F0927C8 AFA40018 */ sw $a0, 0x18($sp) +/* 0C72FC 7F0927CC 8FAE0018 */ lw $t6, 0x18($sp) +/* 0C7300 7F0927D0 3C0F8008 */ lui $t7, %hi(off_CODE_bss_80079E30) +/* 0C7304 7F0927D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7308 7F0927D8 01EE7821 */ addu $t7, $t7, $t6 +/* 0C730C 7F0927DC 91EF9E30 */ lbu $t7, %lo(off_CODE_bss_80079E30)($t7) +/* 0C7310 7F0927E0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C7314 7F0927E4 004F1007 */ srav $v0, $t7, $v0 +/* 0C7318 7F0927E8 30580001 */ andi $t8, $v0, 1 +/* 0C731C 7F0927EC 03E00008 */ jr $ra +/* 0C7320 7F0927F0 03001025 */ move $v0, $t8 +) +#endif + + + + + +#ifdef NONMATCHING +void set_DKMode(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80057504 +.word 0x3f4ccccd /*0.80000001*/ +.text +glabel set_DKMode +/* 0C7324 7F0927F4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C7328 7F0927F8 AFB10024 */ sw $s1, 0x24($sp) +/* 0C732C 7F0927FC AFBF002C */ sw $ra, 0x2c($sp) +/* 0C7330 7F092800 AFB00020 */ sw $s0, 0x20($sp) +/* 0C7334 7F092804 3C118003 */ lui $s1, %hi(ptr_guard_data) +/* 0C7338 7F092808 00808025 */ move $s0, $a0 +/* 0C733C 7F09280C AFB20028 */ sw $s2, 0x28($sp) +/* 0C7340 7F092810 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0C7344 7F092814 0FC07D4C */ jal get_numguards +/* 0C7348 7F092818 8E31CC64 */ lw $s1, %lo(ptr_guard_data)($s1) +/* 0C734C 7F09281C 12000004 */ beqz $s0, .L7F092830 +/* 0C7350 7F092820 00409025 */ move $s2, $v0 +/* 0C7354 7F092824 3C018005 */ lui $at, %hi(D_80057504) +/* 0C7358 7F092828 10000004 */ b .L7F09283C +/* 0C735C 7F09282C C4347504 */ lwc1 $f20, %lo(D_80057504)($at) +.L7F092830: +/* 0C7360 7F092830 3C013FA0 */ li $at, 0x3FA00000 # 1.250000 +/* 0C7364 7F092834 4481A000 */ mtc1 $at, $f20 +/* 0C7368 7F092838 00000000 */ nop +.L7F09283C: +/* 0C736C 7F09283C 1840000C */ blez $v0, .L7F092870 +/* 0C7370 7F092840 00008025 */ move $s0, $zero +.L7F092844: +/* 0C7374 7F092844 8E24001C */ lw $a0, 0x1c($s1) +/* 0C7378 7F092848 50800007 */ beql $a0, $zero, .L7F092868 +/* 0C737C 7F09284C 26100001 */ addiu $s0, $s0, 1 +/* 0C7380 7F092850 C4840014 */ lwc1 $f4, 0x14($a0) +/* 0C7384 7F092854 46142182 */ mul.s $f6, $f4, $f20 +/* 0C7388 7F092858 44053000 */ mfc1 $a1, $f6 +/* 0C738C 7F09285C 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0C7390 7F092860 00000000 */ nop +/* 0C7394 7F092864 26100001 */ addiu $s0, $s0, 1 +.L7F092868: +/* 0C7398 7F092868 1612FFF6 */ bne $s0, $s2, .L7F092844 +/* 0C739C 7F09286C 263101DC */ addiu $s1, $s1, 0x1dc +.L7F092870: +/* 0C73A0 7F092870 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C73A4 7F092874 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0C73A8 7F092878 8FB00020 */ lw $s0, 0x20($sp) +/* 0C73AC 7F09287C 8FB10024 */ lw $s1, 0x24($sp) +/* 0C73B0 7F092880 8FB20028 */ lw $s2, 0x28($sp) +/* 0C73B4 7F092884 03E00008 */ jr $ra +/* 0C73B8 7F092888 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80057504 +.word 0x3f4ccccd /*0.80000001*/ +.text +glabel set_DKMode +/* 0C7EE4 7F093374 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C7EE8 7F093378 AFB00020 */ sw $s0, 0x20($sp) +/* 0C7EEC 7F09337C AFBF002C */ sw $ra, 0x2c($sp) +/* 0C7EF0 7F093380 AFB10024 */ sw $s1, 0x24($sp) +/* 0C7EF4 7F093384 3C108003 */ lui $s0, %hi(ptr_guard_data) # $s0, 0x8003 +/* 0C7EF8 7F093388 00808825 */ move $s1, $a0 +/* 0C7EFC 7F09338C AFB20028 */ sw $s2, 0x28($sp) +/* 0C7F00 7F093390 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0C7F04 7F093394 0FC07DB8 */ jal get_numguards +/* 0C7F08 7F093398 8E10CCA4 */ lw $s0, %lo(ptr_guard_data)($s0) +/* 0C7F0C 7F09339C 12200004 */ beqz $s1, .L7F0933B0 +/* 0C7F10 7F0933A0 00409025 */ move $s2, $v0 +/* 0C7F14 7F0933A4 3C018005 */ lui $at, %hi(D_80057504) # $at, 0x8005 +/* 0C7F18 7F0933A8 10000004 */ b .L7F0933BC +/* 0C7F1C 7F0933AC C4347534 */ lwc1 $f20, %lo(D_80057504)($at) +.L7F0933B0: +/* 0C7F20 7F0933B0 3C013FA0 */ li $at, 0x3FA00000 # 1.250000 +/* 0C7F24 7F0933B4 4481A000 */ mtc1 $at, $f20 +/* 0C7F28 7F0933B8 00000000 */ nop +.L7F0933BC: +/* 0C7F2C 7F0933BC 18400012 */ blez $v0, .L7F093408 +/* 0C7F30 7F0933C0 00008825 */ move $s1, $zero +.L7F0933C4: +/* 0C7F34 7F0933C4 8E0E001C */ lw $t6, 0x1c($s0) +/* 0C7F38 7F0933C8 51C0000D */ beql $t6, $zero, .L7F093400 +/* 0C7F3C 7F0933CC 26310001 */ addiu $s1, $s1, 1 +/* 0C7F40 7F0933D0 8204000F */ lb $a0, 0xf($s0) +/* 0C7F44 7F0933D4 0FC0827B */ jal jp_only_7F0209EC +/* 0C7F48 7F0933D8 82050006 */ lb $a1, 6($s0) +/* 0C7F4C 7F0933DC 50400008 */ beql $v0, $zero, .L7F093400 +/* 0C7F50 7F0933E0 26310001 */ addiu $s1, $s1, 1 +/* 0C7F54 7F0933E4 8E04001C */ lw $a0, 0x1c($s0) +/* 0C7F58 7F0933E8 C4840014 */ lwc1 $f4, 0x14($a0) +/* 0C7F5C 7F0933EC 46142182 */ mul.s $f6, $f4, $f20 +/* 0C7F60 7F0933F0 44053000 */ mfc1 $a1, $f6 +/* 0C7F64 7F0933F4 0FC1B51A */ jal set_obj_instance_controller_scale +/* 0C7F68 7F0933F8 00000000 */ nop +/* 0C7F6C 7F0933FC 26310001 */ addiu $s1, $s1, 1 +.L7F093400: +/* 0C7F70 7F093400 1632FFF0 */ bne $s1, $s2, .L7F0933C4 +/* 0C7F74 7F093404 261001DC */ addiu $s0, $s0, 0x1dc +.L7F093408: +/* 0C7F78 7F093408 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C7F7C 7F09340C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0C7F80 7F093410 8FB00020 */ lw $s0, 0x20($sp) +/* 0C7F84 7F093414 8FB10024 */ lw $s1, 0x24($sp) +/* 0C7F88 7F093418 8FB20028 */ lw $s2, 0x28($sp) +/* 0C7F8C 7F09341C 03E00008 */ jr $ra +/* 0C7F90 7F093420 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + +#endif + diff --git a/src/game/cheat_buttons.h b/src/game/cheat_buttons.h new file mode 100644 index 0000000..5e2b66a --- /dev/null +++ b/src/game/cheat_buttons.h @@ -0,0 +1,15 @@ +#ifndef _CHEAT_BUTTONS_H_ +#define _CHEAT_BUTTONS_H_ +#include "ultra64.h" + +struct struct_15 { + char anonymous_0; + char field_1; + char field_2; + char field_3; + void * anonymous_1; + int anonymous_2; + int anonymous_3; +}; + +#endif diff --git a/src/game/chr.c b/src/game/chr.c new file mode 100644 index 0000000..2fcf4f0 --- /dev/null +++ b/src/game/chr.c @@ -0,0 +1,7567 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "game/chr.h" +#include "game/bondwalk.h" + +// data +f32 animation_rate = 0; +s32 D_8002C904 = 0; +s32 D_8002C908 = 0; +s32 D_8002C90C = 0; +s32 D_8002C910 = 0; + + +//D:8002C914 +struct animation_something D_8002C914 = {0,0,0,0,0,0,0,NULL,0,NULL,0}; +struct animation_something D_8002C940 = {1, 1, 0, 17.0, 3, 0, 34.0, D_8002CE54, 0, D_8002DF10, 0}; +struct animation_something D_8002C96C = {2, 1, 0, 17.0, 3, 0, 39.0, D_8002CEE0, 0, D_8002DF64, 0}; +struct animation_something D_8002C998 = {3, 1, 0, 21.0, 3, 0, 43.0, D_8002CF6C, 0, D_8002DFB8, 0}; +struct animation_something D_8002C9C4 = {4, 1, 0, 17.0, 3, 0, 34.0, D_8002D014, 0, D_8002E028, 0}; +struct animation_something D_8002C9F0 = {5, 1, 0, 17.0, 3, 0, 39.0, D_8002D0A0, 0, D_8002E07C, 0}; +struct animation_something D_8002CA1C = {6, 1, 0, 21.0, 3, 0, 43.0, D_8002D12C, 0, D_8002E0D0, 0}; +struct animation_something D_8002CA48 = {7, 1, 0, 21.0, 3, 0, 52.0, D_8002D1D4, 0, D_8002E140, 0}; +struct animation_something D_8002CA74 = {8, 1, 0, 21.0, 3, 0, 43.0, D_8002D3B0, 0, D_8002E23C, 0}; +struct animation_something D_8002CAA0 = {9, 1, 0, 17.0, 3, 0, 34.0, D_8002D6DC, 0, D_8002E300, 0}; +struct animation_something D_8002CACC = {0xA, 1, 0, 17.0, 3, 0, 43.0, D_8002D768, 0, D_8002E354, 0}; +struct animation_something D_8002CAF8 = {0xB, 1, 0, 21.0, 3, 0, 52.0, D_8002D7F4, 0, D_8002E3A8, 0}; +struct animation_something D_8002CB24 = {0xC, 1, 0, 17.0, 3, 0, 34.0, D_8002D880, 0, D_8002E418, 0}; +struct animation_something D_8002CB50 = {0xD, 1, 0, 17.0, 3, 0, 43.0, D_8002D90C, 0, D_8002E46C, 0}; +struct animation_something D_8002CB7C = {0xE, 1, 0, 21.0, 3, 0, 52.0, D_8002D998, 0, D_8002E4C0, 0}; +struct animation_something D_8002CBA8 = {0xF, 1, 0, 26.0, 3, 0, 60.0, D_8002DA24, 0, D_8002E530, 0}; +struct animation_something D_8002CBD4 = {0x64, 1, 0, 26.0, 0, 0, 0.0, D_8002DCE0, 0, D_8002E5BC, 0}; +struct animation_something D_8002CC00 = {0x6E, 1, 0, 21.0, 0, 0, 0.0, NULL, 0, NULL, 0}; +struct animation_something D_8002CC2C = {0xFFFFFFFF, 0, 0, 0.0, 0, 0, 0.0, NULL, 0, NULL, 0}; + + + +s32 D_8002CC58 = 0; +s32 show_patrols_flag = FALSE; +s32 player1_guardID = 0x1388; +s32 ptr_guard_data = 0; +s32 num_guards = 0; +s32 D_8002CC6C[] = {0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +s32 D_8002CCA8 = 0; +s32 D_8002CCAC = 0; +s32 D_8002CCB0 = 0; +s32 D_8002CCB4 = 0; +u8 D_8002CCB8 = 0x5A; + +u32 D_8002CCBC = 0; +u32 D_8002CCC0[] = {1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +s32 D_8002CCF8 = 0; +s32 D_8002CCFC = 0; +s32 num_bodies = 0; +s32 num_male_heads = 0; +s32 num_female_heads = 0; + +s32 list_of_bodies[] = { + BODY_Jungle_Commando,BODY_St_Petersburg_Guard,BODY_Russian_Soldier,BODY_Russian_Infantry, + BODY_Janus_Special_Forces,BODY_Tuxedo,BODY_Boris,BODY_Ourumov, + BODY_Trevelyan_Janus,BODY_Valentin_,BODY_Xenia,BODY_Baron_Samedi, + BODY_Jaws,BODY_Mayday,BODY_Oddjob,BODY_Natalya_Skirt, + BODY_Janus_Marine,BODY_Russian_Commandant,BODY_Siberian_Guard_1_Mishkin,BODY_Naval_Officer, + BODY_Siberian_Special_Forces,BODY_Special_Operations_Uniform,BODY_Formal_Wear,BODY_Jungle_Fatigues, + BODY_Unused_Female,BODY_Rosika,BODY_Scientist_2_Female,BODY_Civilian_1_Female, + BODY_Unused_Male_1,BODY_Unused_Male_2,BODY_Civilian_4,BODY_Civilian_2, + BODY_Civilian_3,BODY_Scientist_1_Male,BODY_Tuxedo,BODY_Tuxedo, + BODY_Tuxedo,BODY_Helicopter_Pilot,BODY_Siberian_Guard_2,BODY_Arctic_Commando, + BODY_Moonraker_Elite_1_Male,BODY_Moonraker_Elite_2_Female,-1, +}; + +s32 random_male_heads[] = { + HEAD_Male_Jim,HEAD_Male_Chris,HEAD_Male_Lee,HEAD_Male_Graeme,HEAD_Male_Steve_H, + HEAD_Male_Neil,HEAD_Male_Robin,HEAD_Male_Des,HEAD_Male_Grant,HEAD_Male_Dave_Dr_Doak, + HEAD_Male_Karl,HEAD_Male_Alan,HEAD_Male_Pete,HEAD_Male_Martin,HEAD_Male_Mark, + HEAD_Male_Duncan,HEAD_Male_Shaun,HEAD_Male_Dwayne,HEAD_Male_B,HEAD_Male_Steve_Ellis, + HEAD_Male_Joel,HEAD_Male_Scott,HEAD_Male_Joe_Altered,HEAD_Male_Ken,HEAD_Male_Joe, + -1 +}; + +s32 random_female_heads[] = { + HEAD_Female_Sally,HEAD_Female_Marion_Rosika,HEAD_Female_Mandy,HEAD_Female_Vivien, -1 +}; + +s32 current_random_body = 0; +s32 current_random_male_head = 0; +s32 current_random_female_head = 0; +f32 ai_accuracy_modifier = 1.0f; +f32 ai_damage_modifier = 1.0f; +f32 ai_health_modifier = 1.0f; +f32 ai_reaction_speed = 1.0f; +f32 setting_007_5 = 0.0f; + +struct struck_animation_table D_8002CE54[] = { + {0x35C8, 0, -1.0, 0.5, 0, 27.0, -1.0}, + {0x36D8, 0, -1.0, 0.5, 0, 26.0, -1.0}, + {0x33AC, 1, -1.0, 0.5, 0, 25.0, -1.0}, + {0x34D4, 1, -1.0, 0.5, 0, 23.0, -1.0}, + {0, 0, 0.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002CEE0[] = { + {0x35C8, 0, -1.0, 0.5, 0, 27.0, -1.0}, + {0x36D8, 0, -1.0, 0.5, 0, 26.0, -1.0}, + {0x33AC, 1, -1.0, 0.5, 0, 25.0, -1.0}, + {0x34D4, 1, -1.0, 0.5, 0, 23.0, -1.0}, + {0, 0, 0.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002CF6C[] = { + {0x35C8, 0, -1.0, 0.5, 1, 27.0, -1.0}, + {0x36D8, 0, -1.0, 0.5, 1, 26.0, -1.0}, + {0x33AC, 1, -1.0, 0.5, 1, 25.0, -1.0}, + {0x34D4, 1, -1.0, 0.5, 1, 23.0, -1.0}, + {0x540C, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {0, 0, 0.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002D014[] = { + {0x33AC, 0, -1.0, 0.5, 0, 25.0, -1.0}, + {0x34D4, 0, -1.0, 0.5, 0, 23.0, -1.0}, + {0x35C8, 1, -1.0, 0.5, 0, 27.0, -1.0}, + {0x36D8, 1, -1.0, 0.5, 0, 26.0, -1.0}, + {0, 0, 0.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002D0A0[] = { + {0x33AC, 0, -1.0, 0.5, 0, 25.0, -1.0}, + {0x34D4, 0, -1.0, 0.5, 0, 23.0, -1.0}, + {0x35C8, 1, -1.0, 0.5, 0, 27.0, -1.0}, + {0x36D8, 1, -1.0, 0.5, 0, 26.0, -1.0}, + {0, 0, 0.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002D12C[] = { + {0x33AC, 0, -1.0, 0.5, 1, 25.0, -1.0}, + {0x34D4, 0, -1.0, 0.5, 1, 23.0, -1.0}, + {0x35C8, 1, -1.0, 0.5, 1, 27.0, -1.0}, + {0x36D8, 1, -1.0, 0.5, 1, 26.0, -1.0}, + {0x540C, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {0, 0, 0.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002D1D4[] = { + {0x30B8, 0, -1.0, 0.5, 0, 55.0, 39.0}, + {0x30B8, 1, -1.0, 0.5, 0, 55.0, 39.0}, + {0x31DC, 0, -1.0, 0.5, 0, 36.0, -1.0}, + {0x31DC, 1, -1.0, 0.5, 0, 36.0, -1.0}, + {0x32C8, 0, -1.0, 0.5, 1, 29.0, -1.0}, + {0x32C8, 1, -1.0, 0.5, 1, 29.0, -1.0}, + {0x384C, 0, -1.0, 0.5, 0, 97.0, 64.0}, + {0x384C, 1, -1.0, 0.5, 0, 97.0, 64.0}, + {0x3AF0, 0, -1.0, 0.5, 0, 31.0, -1.0}, + {0x3AF0, 1, -1.0, 0.5, 0, 31.0, -1.0}, + {0x3C10, 0, -1.0, 0.5, 0, 36.0, -1.0}, + {0x3C10, 1, -1.0, 0.5, 0, 36.0, -1.0}, + {0x3D04, 0, -1.0, 0.5, 0, 28.0, -1.0}, + {0x3D04, 1, -1.0, 0.5, 0, 28.0, -1.0}, + {0x282C, 0, -1.0, 0.5, 0, 79.0, 415.0}, + {0x282C, 1, -1.0, 0.5, 0, 79.0, 415.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002D3B0[] = { + {0x30B8, 0, -1.0, 0.5, 0, 55.0, 39.0}, + {0x30B8, 1, -1.0, 0.5, 0, 55.0, 39.0}, + {0x31DC, 0, -1.0, 0.5, 0, 36.0, -1.0}, + {0x31DC, 1, -1.0, 0.5, 0, 36.0, -1.0}, + {0x32C8, 0, -1.0, 0.5, 1, 29.0, -1.0}, + {0x32C8, 1, -1.0, 0.5, 1, 29.0, -1.0}, + {0x33AC, 0, -1.0, 0.5, 1, 25.0, -1.0}, + {0x33AC, 1, -1.0, 0.5, 1, 25.0, -1.0}, + {0x34D4, 0, -1.0, 0.5, 1, 23.0, -1.0}, + {0x34D4, 1, -1.0, 0.5, 1, 23.0, -1.0}, + {0x35C8, 0, -1.0, 0.5, 1, 27.0, -1.0}, + {0x35C8, 1, -1.0, 0.5, 1, 27.0, -1.0}, + {0x36D8, 0, -1.0, 0.5, 1, 26.0, -1.0}, + {0x36D8, 1, -1.0, 0.5, 1, 26.0, -1.0}, + {0x384C, 0, -1.0, 0.5, 0, 97.0, 64.0}, + {0x384C, 1, -1.0, 0.5, 0, 97.0, 64.0}, + {0x39C0, 0, -1.0, 0.5, 0, 94.0, 66.0}, + {0x39C0, 1, -1.0, 0.5, 0, 94.0, 66.0}, + {0x3AF0, 0, -1.0, 0.5, 0, 31.0, -1.0}, + {0x3AF0, 1, -1.0, 0.5, 0, 31.0, -1.0}, + {0x3C10, 0, -1.0, 0.5, 0, 36.0, -1.0}, + {0x3C10, 1, -1.0, 0.5, 0, 36.0, -1.0}, + {0x3D04, 0, -1.0, 0.5, 0, 28.0, -1.0}, + {0x3D04, 1, -1.0, 0.5, 0, 28.0, -1.0}, + {0x2E64, 0, -1.0, 0.5, 0, 87.0, 203.0}, + {0x2E64, 1, -1.0, 0.5, 0, 87.0, 203.0}, + {0x51C4, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {0x51C4, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002D6DC[] = { + {0x35C8, 0, -1.0, 0.5, 0, 27.0, -1.0}, + {0x36D8, 0, -1.0, 0.5, 0, 26.0, -1.0}, + {0x33AC, 1, -1.0, 0.5, 0, 25.0, -1.0}, + {0x34D4, 1, -1.0, 0.5, 0, 23.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002D768[] = { + {0x35C8, 0, -1.0, 0.5, 0, 27.0, -1.0}, + {0x36D8, 0, -1.0, 0.5, 0, 26.0, -1.0}, + {0x33AC, 1, -1.0, 0.5, 0, 25.0, -1.0}, + {0x34D4, 1, -1.0, 0.5, 0, 23.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002D7F4[] = { + {0x35C8, 0, -1.0, 0.5, 1, 27.0, -1.0}, + {0x36D8, 0, -1.0, 0.5, 1, 26.0, -1.0}, + {0x33AC, 1, -1.0, 0.5, 1, 25.0, -1.0}, + {0x34D4, 1, -1.0, 0.5, 1, 23.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002D880[] = { + {0x33AC, 0, -1.0, 0.5, 0, 25.0, -1.0}, + {0x34D4, 0, -1.0, 0.5, 0, 23.0, -1.0}, + {0x35C8, 1, -1.0, 0.5, 0, 27.0, -1.0}, + {0x36D8, 1, -1.0, 0.5, 0, 26.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002D90C[] = { + {0x33AC, 0, -1.0, 0.5, 0, 25.0, -1.0}, + {0x34D4, 0, -1.0, 0.5, 0, 23.0, -1.0}, + {0x35C8, 1, -1.0, 0.5, 0, 27.0, -1.0}, + {0x36D8, 1, -1.0, 0.5, 0, 26.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002D998[] = { + {0x33AC, 0, -1.0, 0.5, 1, 25.0, -1.0}, + {0x34D4, 0, -1.0, 0.5, 1, 23.0, -1.0}, + {0x35C8, 1, -1.0, 0.5, 1, 27.0, -1.0}, + {0x36D8, 1, -1.0, 0.5, 1, 26.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002DA24[] = { + {0x30B8, 0, -1.0, 0.5, 0, 55.0, 39.0}, + {0x30B8, 1, -1.0, 0.5, 0, 55.0, 39.0}, + {0x31DC, 0, -1.0, 0.5, 0, 36.0, -1.0}, + {0x31DC, 1, -1.0, 0.5, 0, 36.0, -1.0}, + {0x32C8, 0, -1.0, 0.5, 1, 29.0, -1.0}, + {0x32C8, 1, -1.0, 0.5, 1, 29.0, -1.0}, + {0x33AC, 0, -1.0, 0.5, 1, 25.0, -1.0}, + {0x33AC, 1, -1.0, 0.5, 1, 25.0, -1.0}, + {0x34D4, 0, -1.0, 0.5, 1, 23.0, -1.0}, + {0x34D4, 1, -1.0, 0.5, 1, 23.0, -1.0}, + {0x35C8, 0, -1.0, 0.5, 1, 27.0, -1.0}, + {0x35C8, 1, -1.0, 0.5, 1, 27.0, -1.0}, + {0x36D8, 0, -1.0, 0.5, 1, 26.0, -1.0}, + {0x36D8, 1, -1.0, 0.5, 1, 26.0, -1.0}, + {0x384C, 0, -1.0, 0.5, 0, 97.0, 64.0}, + {0x384C, 1, -1.0, 0.5, 0, 97.0, 64.0}, + {0x39C0, 0, -1.0, 0.5, 0, 94.0, 66.0}, + {0x39C0, 1, -1.0, 0.5, 0, 94.0, 66.0}, + {0x3AF0, 0, -1.0, 0.5, 0, 31.0, -1.0}, + {0x3AF0, 1, -1.0, 0.5, 0, 31.0, -1.0}, + {0x3C10, 0, -1.0, 0.5, 0, 36.0, -1.0}, + {0x3C10, 1, -1.0, 0.5, 0, 36.0, -1.0}, + {0x3D04, 0, -1.0, 0.5, 0, 28.0, -1.0}, + {0x3D04, 1, -1.0, 0.5, 0, 28.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002DCE0[] = { + {0x30B8, 0, -1.0, 0.5, 0, 55.0, 39.0}, + {0x30B8, 1, -1.0, 0.5, 0, 55.0, 39.0}, + {0x31DC, 0, -1.0, 0.5, 0, 36.0, -1.0}, + {0x31DC, 1, -1.0, 0.5, 0, 36.0, -1.0}, + {0x32C8, 0, -1.0, 0.5, 1, 29.0, -1.0}, + {0x32C8, 1, -1.0, 0.5, 1, 29.0, -1.0}, + {0x384C, 0, -1.0, 0.5, 0, 97.0, 64.0}, + {0x384C, 1, -1.0, 0.5, 0, 97.0, 64.0}, + {0x39C0, 0, -1.0, 0.5, 0, 94.0, 66.0}, + {0x39C0, 1, -1.0, 0.5, 0, 94.0, 66.0}, + {0x3AF0, 0, -1.0, 0.5, 0, 31.0, -1.0}, + {0x3AF0, 1, -1.0, 0.5, 0, 31.0, -1.0}, + {0x3C10, 0, -1.0, 0.5, 0, 36.0, -1.0}, + {0x3C10, 1, -1.0, 0.5, 0, 36.0, -1.0}, + {0x3D04, 0, -1.0, 0.5, 0, 28.0, -1.0}, + {0x3D04, 1, -1.0, 0.5, 0, 28.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002DEBC[] = { + {0x2F94, 0, -1.0, 0.5, 0, 67.0, 54.0}, + {0x2F94, 1, -1.0, 0.5, 0, 67.0, 54.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002DF10[] = { + {0x1F84, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {0x2134, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002DF64[] = { + {0x1F84, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {0x2134, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002DFB8[] = { + {0x1F84, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {0x2134, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {0x540C, 1, 20.0, 0.40000001, 0, -1.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002E028[] = { + {0x2134, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {0x1F84, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002E07C[] = { + {0x2134, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {0x1F84, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002E0D0[] = { + {0x2134, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {0x1F84, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {0x540C, 0, 20.0, 0.40000001, 0, -1.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002E140[] = { + {0x282C, 0, 20.0, 0.5, 0, -1.0, -1.0}, + {0x282C, 1, 30.0, 0.5, 0, -1.0, -1.0}, + {0x39C0, 0, 20.0, 0.5, 0, -1.0, -1.0}, + {0x39C0, 1, 20.0, 0.5, 0, -1.0, -1.0}, + {0x30B8, 0, 15.0, 0.5, 0, -1.0, -1.0}, + {0x30B8, 1, 15.0, 0.5, 0, -1.0, -1.0}, + {0x3AF0, 0, 10.0, 0.25, 0, -1.0, -1.0}, + {0x3AF0, 1, 10.0, 0.25, 0, -1.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002E23C[] = { + {0x2E64, 0, 15.0, 0.5, 0, 87.0, 203.0}, + {0x2E64, 1, 15.0, 0.5, 0, 87.0, 203.0}, + {0x39C0, 0, 20.0, 0.5, 0, -1.0, -1.0}, + {0x39C0, 1, 20.0, 0.5, 0, -1.0, -1.0}, + {0x30B8, 0, 15.0, 0.5, 0, -1.0, -1.0}, + {0x30B8, 1, 15.0, 0.5, 0, -1.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002E300[] = { + {0x1C9C, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {0x1E40, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002E354[] = { + {0x1A6C, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {0x1B54, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002E3A8[] = { + {0x186C, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {0x1984, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {0x39C0, 0, 20.0, 0.5, 0, -1.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002E418[] = { + {0x1E40, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {0x1C9C, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002E46C[] = { + {0x1B54, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {0x1A6C, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002E4C0[] = { + {0x1984, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {0x186C, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {0x39C0, 1, 20.0, 0.5, 0, -1.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002E530[] = { + {0x39C0, 0, 20.0, 0.5, 0, -1.0, -1.0}, + {0x39C0, 1, 20.0, 0.5, 0, -1.0, -1.0}, + {0x30B8, 0, 15.0, 0.5, 0, -1.0, -1.0}, + {0x30B8, 1, 15.0, 0.5, 0, -1.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + +struct struck_animation_table D_8002E5BC[] = { + {0x39C0, 0, 20.0, 0.5, 0, -1.0, -1.0}, + {0x39C0, 1, 20.0, 0.5, 0, -1.0, -1.0}, + {0x30B8, 0, 15.0, 0.5, 0, -1.0, -1.0}, + {0x30B8, 1, 15.0, 0.5, 0, -1.0, -1.0}, + {0, 0, -1.0, 0.5, 0, -1.0, -1.0} +}; + + + +struct explosion_death_animation D_8002E648[] = { + {0x98C8, 0, 0.5, 9.0, 18.0, 29.0, -1.0}, + {0x98C8, 1, 0.5, 9.0, 18.0, 29.0, -1.0}, + {0xA1B8, 0, 0.5, 11.0, 19.0, 31.0, -1.0}, + {0xA1B8, 1, 0.5, 11.0, 19.0, 31.0, -1.0}, + {0xA094, 0, 0.5, 6.0, 20.0, 27.0, -1.0}, + {0xA094, 1, 0.5, 6.0, 20.0, 27.0, -1.0}, + {0xA424, 0, 0.5, 29.0, 36.0, 48.0, -1.0}, + {0xA424, 1, 0.5, 29.0, 36.0, 48.0, -1.0}, + {0xA538, 0, 0.5, 29.0, 38.0, 49.0, -1.0}, + {0xA538, 1, 0.5, 29.0, 38.0, 49.0, -1.0}, + {0xA650, 0, 0.5, 19.0, 30.0, 42.0, -1.0}, + {0xA650, 1, 0.5, 19.0, 30.0, 42.0, -1.0}, + {0x9A2C, 0, 0.5, 9.0, 21.0, 29.0, 55.0}, + {0x9A2C, 1, 0.5, 9.0, 21.0, 29.0, 55.0}, + {0x9D5C, 0, 0.5, 6.0, 18.0, 27.0, -1.0}, + {0x9D5C, 1, 0.5, 6.0, 18.0, 27.0, -1.0}, + {0x9E44, 0, 0.5, 6.0, 19.0, 29.0, -1.0}, + {0x9E44, 1, 0.5, 6.0, 19.0, 29.0, -1.0}, + {0x9B48, 0, 0.5, 8.0, 14.0, 25.0, -1.0}, + {0x9B48, 1, 0.5, 8.0, 14.0, 25.0, -1.0}, + {0x9C4C, 0, 0.5, 8.0, 19.0, 25.0, -1.0}, + {0x9C4C, 1, 0.5, 8.0, 19.0, 25.0, -1.0}, + {0x9F48, 0, 0.5, 12.0, 21.0, 29.0, -1.0}, + {0x9F48, 1, 0.5, 12.0, 21.0, 29.0, -1.0}, + {0xA2F8, 0, 0.5, 22.0, 30.0, 41.0, -1.0}, + {0xA2F8, 1, 0.5, 22.0, 30.0, 41.0, -1.0}, + {0, 0, 0.5, 0.0, 0.0, 0.0, -1.0}, +}; + +u8 expl_forward[] = {0x0, 0x01, 0x02, 0x03, 0x4, 0x05, 0x00, 0x00}; +u8 expl_f_left[] = {0x7, 0x09, 0x0B, 0x00}; +u8 expl_f_right[] = {0x06, 0x08, 0x0A, 0x00}; +u8 expl_left[] = {0x0C, 0x0F, 0x11, 0x00}; +u8 expl_right[] = {0x0D, 0x0E, 0x10, 0x00}; +u8 expl_back[] = {0x14, 0x15, 0x16, 0x17}; +u8 expl_b_right[] = {0x12, 0x18, 0x00, 0x00}; +u8 expl_b_left[] = {0x13, 0x19, 0x00, 0x00}; + +struct explosion_animation explosion_animation_table[] = { + {expl_forward, 6}, + {expl_f_left, 3}, + {expl_left, 3}, + {expl_b_right, 2}, + {expl_back, 4}, + {expl_b_left, 2}, + {expl_right, 3}, + {expl_f_right, 3} +}; + +struct weapon_firing_animation_table rifle_firing_animation_group1[] = { + {0x214, 28.0, 0, 0, 0, -1.0, 23.0, 54.0, -1.0, -1.0, 18.0, 54.0, 0.87266463, -0.52359879, 1.0471976, -0.34906587, 1.6, 1.8}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_rifle_firing_animation_group1[] = { + &rifle_firing_animation_group1, + ((void *)-1) +}; + +struct weapon_firing_animation_table rifle_firing_animation_group2[] = { + {0x144, 37.0, 0, 0, 0, -1.0, 30.0, 81.0, -1.0, -1.0, 25.0, 81.0, 0.87266463, -0.69813174, 0.69813174, -0.69813174, 1.6, 1.75}, + {0x318, 27.0, 0, 0, 0, -1.0, 22.0, 61.0, -1.0, -1.0, 17.0, 61.0, 0.87266463, -0.2617994, 0.69813174, -0.69813174, 2.0, 1.0}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_rifle_firing_animation_group2[] = { + &rifle_firing_animation_group2, + ((void *)-1) +}; + +struct weapon_firing_animation_table rifle_firing_animation_group5[] = { + {0x144, 37.0, 0, 0, 0, -1.0, 30.0, 81.0, -1.0, -1.0, 25.0, 81.0, 0.87266463, -0.69813174, 0.69813174, -0.69813174, 1.6, 1.75}, + {0x318, 27.0, 0, 0, 0, -1.0, 22.0, 61.0, -1.0, -1.0, 17.0, 61.0, 0.87266463, -0.2617994, 0.69813174, -0.69813174, 2.0, 1.0}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_rifle_firing_animation_group5[] = { + &rifle_firing_animation_group5, + ((void *)-1) +}; + +struct weapon_firing_animation_table rifle_firing_animation_group3[] = { + {0x3C4, 19.0, 0, 1.5707964, 0, -1.0, 19.0, 61.0, -1.0, -1.0, 14.0, 61.0, 0.87266463, -0.34906587, 0.43633232, -1.0471976, 2.5, 2.5}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_rifle_firing_animation_group3[] = { + &rifle_firing_animation_group3, + ((void *)-1) +}; + +struct weapon_firing_animation_table rifle_firing_animation_group4[] = { + {0x814, 27.0, 0, 0, 0, -1.0, 39.0, 74.0, -1.0, -1.0, 34.0, 74.0, 0.87266463, -0.69813174, 0.78539819, -0.69813174, 1.5, 1.5}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_rifle_firing_animation_group4[] = { + &rifle_firing_animation_group4, + ((void *)-1) +}; + +void * ptr_rifle_firing_animation_groups[] = { + &ptr_rifle_firing_animation_group1, + &ptr_rifle_firing_animation_group2, + &ptr_rifle_firing_animation_group2, + &ptr_rifle_firing_animation_group2, + &ptr_rifle_firing_animation_group2, + &ptr_rifle_firing_animation_group2, + &ptr_rifle_firing_animation_group2, + &ptr_rifle_firing_animation_group2, + &ptr_rifle_firing_animation_group2, + &ptr_rifle_firing_animation_group2, + &ptr_rifle_firing_animation_group3, + &ptr_rifle_firing_animation_group3, + &ptr_rifle_firing_animation_group3, + &ptr_rifle_firing_animation_group3, + &ptr_rifle_firing_animation_group3, + &ptr_rifle_firing_animation_group3, + &ptr_rifle_firing_animation_group4, + &ptr_rifle_firing_animation_group4, + &ptr_rifle_firing_animation_group4, + &ptr_rifle_firing_animation_group4, + &ptr_rifle_firing_animation_group4, + &ptr_rifle_firing_animation_group4, + &ptr_rifle_firing_animation_group5, + &ptr_rifle_firing_animation_group5, + &ptr_rifle_firing_animation_group5, + &ptr_rifle_firing_animation_group5, + &ptr_rifle_firing_animation_group5, + &ptr_rifle_firing_animation_group5, + &ptr_rifle_firing_animation_group5, + &ptr_rifle_firing_animation_group5, + &ptr_rifle_firing_animation_group5, + &ptr_rifle_firing_animation_group1 +}; + +struct weapon_firing_animation_table pistol_firing_animation_group1[] = { + {0x60D4, 26.0, 0, 0, 12.0, 140.0, 58.0, 92.0, 60.0, 79.0, 20.0, 120.0, 0.87266463, -0.69813174, 0.69813174, -0.69813174, 0.0, 0.0}, + {0x6484, 0.0, 0, 0, 17.0, 100.0, 25.0, 87.0, 30.0, 55.0, 20.0, 93.0, 0.87266463, -0.69813174, 0.69813174, -1.0471976, 0.0, 0.0}, + {0x6554, 0.0, 0, 0, 12.0, 64.0, 19.0, 51.0, 24.0, 46.0, 14.0, 58.0, 0.87266463, -0.69813174, 0.52359879, -0.78539819, 0.0, 0.0}, + {0x6644, 22.0, 0, 0, 4.0, 69.0, 22.0, 49.0, 22.0, 33.0, 8.0, 58.0, 0.87266463, -0.69813174, 0.43633232, -0.78539819, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_pistol_firing_animation_group1[] = { + &pistol_firing_animation_group1, + ((void *)-1) +}; + +struct weapon_firing_animation_table pistol_firing_animation_group2[] = { + {0x60D4, 26.0, 0, 0, 12.0, 140.0, 58.0, 92.0, 60.0, 79.0, 20.0, 120.0, 0.87266463, -0.69813174, 0.69813174, -0.69813174, 0.0, 0.0}, + {0x6644, 22.0, 0, 0, 4.0, 69.0, 22.0, 49.0, 22.0, 33.0, 8.0, 58.0, 0.87266463, -0.69813174, 0.43633232, -0.78539819, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_pistol_firing_animation_group2[] = { + &pistol_firing_animation_group2, + ((void *)-1) +}; + +struct weapon_firing_animation_table pistol_firing_animation_group3[] = { + {0x60D4, 26.0, 0, 0, 12.0, 140.0, 58.0, 92.0, 60.0, 79.0, 20.0, 120.0, 0.87266463, -0.69813174, 0.69813174, -0.69813174, 0.0, 0.0}, + {0x6644, 22.0, 0, 0, 4.0, 69.0, 22.0, 49.0, 22.0, 33.0, 8.0, 58.0, 0.87266463, -0.69813174, 0.43633232, -0.78539819, 0.0, 0.0}, + {0x694C, 0.0, 0, 1.5707964, 7.0, 130.0, 45.0, 93.0, 56.0, 73.0, 26.0, 107.0, 0.87266463, -0.69813174, 0.34906587, -0.52359879, 0.0, 0.0}, + {0x6A18, 15.0, 0, 1.5707964, 5.0, 76.0, 20.0, 31.0, 31.0, 38.0, 15.0, 49.0, 0.87266463, -0.69813174, 0.52359879, -1.0471976, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_pistol_firing_animation_group3[] = { + &pistol_firing_animation_group3, + ((void *)-1) +}; + +struct weapon_firing_animation_table pistol_firing_animation_group6[] = { + {0x60D4, 26.0, 0, 0, 12.0, 140.0, 58.0, 92.0, 60.0, 79.0, 20.0, 120.0, 0.87266463, -0.69813174, 0.69813174, -0.69813174, 0.0, 0.0}, + {0x6644, 22.0, 0, 0, 4.0, 69.0, 22.0, 49.0, 22.0, 33.0, 8.0, 58.0, 0.87266463, -0.69813174, 0.43633232, -0.78539819, 0.0, 0.0}, + {0x6738, 0.0, 0, 4.712389, 7.0, 139.0, 54.0, 105.0, 61.0, 88.0, 26.0, 120.0, 0.87266463, -0.69813174, 0.69813174, -0.61086529, 0.0, 0.0}, + {0x6808, 19.0, 0, 4.712389, 4.0, 79.0, 21.0, 50.0, 26.0, 42.0, 10.0, 64.0, 0.87266463, -0.69813174, 0.69813174, -0.61086529, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_pistol_firing_animation_group6[] = { + &pistol_firing_animation_group6, + ((void *)-1) +}; + +struct weapon_firing_animation_table pistol_firing_animation_group4[] = { + {0x6A18, 19.0, 0, 1.5707964, 5.0, 76.0, 20.0, 31.0, 31.0, 38.0, 15.0, 49.0, 0.87266463, -0.69813174, 0.52359879, -1.0471976, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_pistol_firing_animation_group4[] = { + &pistol_firing_animation_group4, + ((void *)-1) +}; + +struct weapon_firing_animation_table pistol_firing_animation_group5[] = { + {0x6808, 19.0, 0, 4.712389, 4.0, 79.0, 21.0, 50.0, 26.0, 42.0, 10.0, 64.0, 0.87266463, -0.69813174, 0.69813174, -0.61086529, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_pistol_firing_animation_group5[] = { + &pistol_firing_animation_group5, + ((void *)-1) +}; + +void * ptr_pistol_firing_animation_groups[] = { + &ptr_pistol_firing_animation_group1, + &ptr_pistol_firing_animation_group1, + &ptr_pistol_firing_animation_group2, + &ptr_pistol_firing_animation_group2, + &ptr_pistol_firing_animation_group2, + &ptr_pistol_firing_animation_group3, + &ptr_pistol_firing_animation_group3, + &ptr_pistol_firing_animation_group3, + &ptr_pistol_firing_animation_group3, + &ptr_pistol_firing_animation_group3, + &ptr_pistol_firing_animation_group4, + &ptr_pistol_firing_animation_group4, + &ptr_pistol_firing_animation_group4, + &ptr_pistol_firing_animation_group4, + &ptr_pistol_firing_animation_group4, + &ptr_pistol_firing_animation_group4, + &ptr_pistol_firing_animation_group5, + &ptr_pistol_firing_animation_group5, + &ptr_pistol_firing_animation_group5, + &ptr_pistol_firing_animation_group5, + &ptr_pistol_firing_animation_group5, + &ptr_pistol_firing_animation_group5, + &ptr_pistol_firing_animation_group6, + &ptr_pistol_firing_animation_group6, + &ptr_pistol_firing_animation_group6, + &ptr_pistol_firing_animation_group6, + &ptr_pistol_firing_animation_group6, + &ptr_pistol_firing_animation_group2, + &ptr_pistol_firing_animation_group2, + &ptr_pistol_firing_animation_group2, + &ptr_pistol_firing_animation_group1, + &ptr_pistol_firing_animation_group1 +}; + +struct weapon_firing_animation_table doubles_firing_animation_group1[] = { + {0x8E1C, 26.0, 0, 0, 7.0, 92.0, 28.0, 68.0, -1.0, -1.0, 11.0, 73.0, 0.87266463, -0.69813174, 0.69813174, -0.69813174, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_doubles_firing_animation_group1[] = { + doubles_firing_animation_group1, + ((void *)-1) +}; + +struct weapon_firing_animation_table doubles_firing_animation_group2[] = { + {0x8F2C, 26.0, 0, 1.5707964, 9.0, 112.0, 38.0, 87.0, -1.0, -1.0, 19.0, 98.0, 0.87266463, -0.69813174, 0.43633232, -0.43633232, 0.0, 0.0}, + {0x9194, 25.0, 0, 1.5707964, 10.0, 112.0, 32.0, 86.0, -1.0, -1.0, 19.0, 97.0, 0.87266463, -0.69813174, 0.43633232, -0.43633232, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_doubles_firing_animation_group2[] = { + doubles_firing_animation_group2, + ((void *)-1) +}; + +struct weapon_firing_animation_table doubles_firing_animation_group3[] = { + {0x9084, 39.0, 0, 4.712389, 22.0, 127.0, 44.0, 102.0, -1.0, -1.0, 28.0, 112.0, 0.87266463, -0.69813174, 0.43633232, -0.43633232, 0.0, 0.0}, + {0x92EC, 39.0, 0, 4.712389, 23.0, 130.0, 46.0, 100.0, -1.0, -1.0, 30.0, 110.0, 0.87266463, -0.69813174, 0.43633232, -0.43633232, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_doubles_firing_animation_group3[] = { + doubles_firing_animation_group3, + ((void *)-1) +}; + +void * ptr_doubles_firing_animation_groups[] = { + &ptr_doubles_firing_animation_group1, + &ptr_doubles_firing_animation_group1, + &ptr_doubles_firing_animation_group1, + &ptr_doubles_firing_animation_group1, + &ptr_doubles_firing_animation_group1, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group2, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group3, + &ptr_doubles_firing_animation_group1, + &ptr_doubles_firing_animation_group1, + &ptr_doubles_firing_animation_group1, + &ptr_doubles_firing_animation_group1, + &ptr_doubles_firing_animation_group1 +}; + +struct weapon_firing_animation_table crouched_rifle_firing_animation_group1[] = { + {0x990, 27.0, 0, 0, 0, -1.0, 35.0, 75.0, -1.0, -1.0, 31.0, 75.0, 0.87266463, -0.69813174, 0.90757126, -0.69813174, 1.5, 1.5}, +}; + +struct weapon_firing_animation_table crouched_rifle_firing_animation_groupA[] = { + {0xB84, 24.0, 0, 0, 0, -1.0, 46.0, 98.0, -1.0, -1.0, 41.0, 98.0, 0.87266463, -0.52359879, 1.134464, -0.69813174, 1.6, 1.6}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_crouched_rifle_firing_animation_group1[] = { + &crouched_rifle_firing_animation_group1, + ((void *)-1) +}; + +struct weapon_firing_animation_table crouched_rifle_firing_animation_group2[] = { + {0xDB4, 26.0, 0, 0, 0, -1.0, 34.0, 87.0, -1.0, -1.0, 29.0, 87.0, 0.87266463, -0.52359879, 0.69813174, -0.95993108, 1.6, 2.0}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_crouched_rifle_firing_animation_group2[] = { + &crouched_rifle_firing_animation_group2, + ((void *)-1) +}; + +struct weapon_firing_animation_table crouched_rifle_firing_animation_group3[] = { + {0x1028, 28.0, 0, 0, 0, -1.0, 36.0, 88.0, -1.0, -1.0, 31.0, 88.0, 0.87266463, -0.69813174, 0.87266463, -0.43633232, 1.6, 1.5}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_crouched_rifle_firing_animation_group3[] = { + &crouched_rifle_firing_animation_group3, + ((void *)-1) +}; + +void * ptr_crouched_rifle_firing_animation_groups[] = { + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group2, + &ptr_crouched_rifle_firing_animation_group2, + &ptr_crouched_rifle_firing_animation_group2, + &ptr_crouched_rifle_firing_animation_group2, + &ptr_crouched_rifle_firing_animation_group2, + &ptr_crouched_rifle_firing_animation_group2, + &ptr_crouched_rifle_firing_animation_group3, + &ptr_crouched_rifle_firing_animation_group3, + &ptr_crouched_rifle_firing_animation_group3, + &ptr_crouched_rifle_firing_animation_group3, + &ptr_crouched_rifle_firing_animation_group3, + &ptr_crouched_rifle_firing_animation_group3, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1, + &ptr_crouched_rifle_firing_animation_group1 +}; + +struct weapon_firing_animation_table crouched_pistol_firing_animation_group1[] = { + {0x6C18, 25.0, 0, 0, 12.0, 132.0, 55.0, 87.0, 67.0, 87.0, 26.0, 111.0, 0.87266463, -0.69813174, 0.61086529, -0.78539819, 0.0, 0.0}, + {0x6D50, 26.0, 0, 0, 8.0, 89.0, 31.0, 63.0, 41.0, 51.0, 21.0, 80.0, 0.87266463, -0.69813174, 0.34906587, -1.134464, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_crouched_pistol_firing_animation_group1[] = { + &crouched_pistol_firing_animation_group1, + ((void *)-1) +}; + +struct weapon_firing_animation_table crouched_pistol_firing_animation_group2[] = { + {0x71D0, 47.0, 0, 1.5707964, 7.0, 128.0, 33.0, 86.0,47.0, 74.0, 23.0, 106.0, 0.87266463, -0.52359879, 0.52359879, -0.78539819, 0.0, 0.0}, + {0x7304, 18.0, 0, 1.5707964, 7.0, 78.0, 28.0, 52.0, 35.0, 45.0, 15.0, 66.0, 0.87266463, -0.087266468, 0.69813174, -0.78539819, 1.5, 1.0}, + {0x7430, 20.0, 0, 1.5707964, 13.0, 92.0, 37.0, 67.0, 42.0, 55.0, 25.0, 84.0, 0.87266463, -0.52359879, 0.34906587, -0.69813174, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_crouched_pistol_firing_animation_group2[] = { + &crouched_pistol_firing_animation_group2, + ((void *)-1) +}; + +struct weapon_firing_animation_table crouched_pistol_firing_animation_group3[] = { + {0x6F08, 28.0, 0, 4.712389, 15.0, 124.0, 38.0, 97.0, 60.0, 84.0, 20.0, 106.0, 0.87266463, -0.69813174, 0.52359879, -0.87266463, 0.0, 0.0}, + {0x700C, 23.0, 0, 4.712389, 0, 85.0, 32.0, 38.0, 38.0, 60.0, 14.0, 71.0, 0.87266463, -0.69813174, 0.61086529, -0.95993108, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_crouched_pistol_firing_animation_group3[] = { + &crouched_pistol_firing_animation_group3, + ((void *)-1) +}; + +void * ptr_crouched_pistol_firing_animation_groups[] = { + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group2, + &ptr_crouched_pistol_firing_animation_group2, + &ptr_crouched_pistol_firing_animation_group2, + &ptr_crouched_pistol_firing_animation_group2, + &ptr_crouched_pistol_firing_animation_group2, + &ptr_crouched_pistol_firing_animation_group2, + &ptr_crouched_pistol_firing_animation_group3, + &ptr_crouched_pistol_firing_animation_group3, + &ptr_crouched_pistol_firing_animation_group3, + &ptr_crouched_pistol_firing_animation_group3, + &ptr_crouched_pistol_firing_animation_group3, + &ptr_crouched_pistol_firing_animation_group3, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1, + &ptr_crouched_pistol_firing_animation_group1 +}; + +struct weapon_firing_animation_table crouched_doubles_firing_animation_group1[] = { + {0x8698, 22.0, 0, 0, 10.0, 111.0, 34.0, 87.0, -1.0, -1.0, 17.0, 104.0, 0.87266463, -0.69813174, 0.61086529, -0.78539819, 0.0, 0.0}, + {0x8AAC, 25.0, 0, 0, 9.0, 92.0, 33.0, 62.0, -1.0, -1.0, 18.0, 69.0, 0.87266463, -0.69813174, 0.61086529, -0.78539819, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_crouched_doubles_firing_animation_group1[] = { + &crouched_doubles_firing_animation_group1, + ((void *)-1) +}; + +struct weapon_firing_animation_table crouched_doubles_firing_animation_group2[] = { + {0x8800, 28.0, 0, 1.5707964, 15.0, 108.0, 34.0, 73.0, -1.0, -1.0, 17.0, 93.0, 0.87266463, -0.69813174, 0.52359879, -0.78539819, 0.0, 0.0}, + {0x8BF0, 19.0, 0, 1.5707964, 3.0, 95.0, 30.0, 64.0, -1.0, -1.0, 14.0, 71.0, 0.87266463, -0.69813174, 0.52359879, -0.78539819, 1.5, 1.0}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_crouched_doubles_firing_animation_group2[] = { + &crouched_doubles_firing_animation_group2, + ((void *)-1) +}; + +struct weapon_firing_animation_table crouched_doubles_firing_animation_group3[] = { + {0x8978, 31.0, 0, 4.712389, 14.0, 111.0, 40.0, 83.0,-1.0, -1.0, 21.0, 94.0, 0.87266463, -0.69813174, 0.52359879, -0.78539819, 0.0, 0.0}, + {0x8D28, 26.0, 0, 4.712389, 7.0, 89.0, 34.0, 60.0, -1.0, -1.0, 20.0, 68.0, 0.87266463, -0.69813174, 0.52359879, -0.78539819, 0.0, 0.0}, + {0, 0.0, 0, 0, 0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} +}; + +void * ptr_crouched_doubles_firing_animation_group3[] = { + &crouched_doubles_firing_animation_group3, + ((void *)-1) +}; + +void * ptr_crouched_doubles_firing_animation_groups[] = { + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group2, + &ptr_crouched_doubles_firing_animation_group2, + &ptr_crouched_doubles_firing_animation_group2, + &ptr_crouched_doubles_firing_animation_group2, + &ptr_crouched_doubles_firing_animation_group2, + &ptr_crouched_doubles_firing_animation_group2, + &ptr_crouched_doubles_firing_animation_group3, + &ptr_crouched_doubles_firing_animation_group3, + &ptr_crouched_doubles_firing_animation_group3, + &ptr_crouched_doubles_firing_animation_group3, + &ptr_crouched_doubles_firing_animation_group3, + &ptr_crouched_doubles_firing_animation_group3, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1, + &ptr_crouched_doubles_firing_animation_group1 +}; + + +//stru_D_80030078 +struct weapon_firing_animation_table D_80030078 = {0x1334, 76.0, 0.0, 0.0, 20.0, -1.0, 98.0, 161.0, -1.0, -1.0, 93.0, 161.0, 0.87266463, -0.52359879, 0.69813174, -0.69813174, 1.7, 2.0}; +//stru_D_800300C0 +struct weapon_firing_animation_table D_800300C0 = {0x1578, 58.0, 0.0, 0.0, 10.0, -1.0, 77.0, 104.0, -1.0, -1.0, 72.0, 104.0, 0.87266463, -0.34906587, 0.61086529, -0.69813174, 1.55, 1.5}; +//stru_D_80030108 +struct weapon_firing_animation_table D_80030108 = {0x17B4, 61.0, 0.0, 0.0, 10.0, -1.0, 83.0, 128.0, -1.0, -1.0, 78.0, 128.0, 0.87266463, -0.52359879, 0.87266463, -0.52359879, 1.2, 1.3}; +//stru_D_80030150 +struct weapon_firing_animation_table D_80030150 = {0x3FA0, 63.0, 0.0, 0.0, 10.0, -1.0, 73.0, 114.0, -1.0, -1.0, 68.0, 114.0, 0.87266463, -0.52359879, 0.61086529, -0.61086529, 1.65, 1.5}; +//stru_D_80030198 +struct weapon_firing_animation_table D_80030198 = {0x1334, 76.0, 0.0, 0.0, 20.0, 76.0, 98.0, 161.0, -1.0, -1.0, 93.0, 161.0, 0.87266463, -0.52359879, 0.69813174, -0.69813174, 1.7, 2.0}; +//stru_D_800301E0 +struct weapon_firing_animation_table D_800301E0 = {0x1578, 58.0, 0.0, 0.0, 10.0, 63.0, 77.0, 104.0, -1.0, -1.0, 72.0, 104.0, 0.87266463, -0.34906587, 0.61086529, -0.69813174, 1.55, 1.5}; +//stru_D_80030228 +struct weapon_firing_animation_table D_80030228 = {0x17B4, 61.0, 0.0, 0.0, 10.0, 56.0, 83.0, 128.0, -1.0, -1.0, 78.0, 128.0, 0.87266463, -0.52359879, 0.87266463, -0.52359879, 1.2, 1.3}; +//stru_D_80030270 +struct weapon_firing_animation_table D_80030270 = {0x3FA0, 63.0, 0.0, 0.0, 10.0, 50.0, 73.0, 114.0, -1.0, -1.0, 68.0, 114.0, 0.87266463, -0.52359879, 0.61086529, -0.61086529, 1.65, 1.5}; +//stru_D_800302B8 +struct weapon_firing_animation_table D_800302B8 = {0x6554, 0.0, 0.0, 0.0, 7.0, 64.0, 19.0, 51.0, 24.0, 46.0, 14.0, 58.0, 0.87266463, -0.69813174, 0.52359879, -0.78539819, 0.0, 0.0}; +//stru_D_80030300 +struct weapon_firing_animation_table D_80030300 = {0x6A18, 0.0, 0.0, 1.5707964, 14.0, 76.0, 26.0, 31.0, 31.0, 38.0, 15.0, 49.0, 0.87266463, -0.69813174, 0.52359879, -1.0471976, 0.0, 0.0}; +//stru_D_80030348 +struct weapon_firing_animation_table D_80030348 = {0x6D50, 26.0, 0.0, 0.0, 25.0, 89.0, 41.0, 63.0, 41.0, 51.0, 21.0, 80.0, 0.87266463, -0.69813174, 0.34906587, -1.134464, 0.0, 0.0}; +//stru_D_80030390 +struct weapon_firing_animation_table D_80030390 = {0x7304, 18.0, 0.0, 1.5707964, 11.0, 78.0, 33.0, 52.0, 35.0, 45.0, 15.0, 66.0, 0.87266463, -0.087266468, 0.69813174, -0.78539819, 1.5, 1.0}; +//stru_D_800303D8 +struct weapon_firing_animation_table D_800303D8 = {0x8E1C, 26.0, 0.0, 0.0, 7.0, 92.0, 28.0, 68.0, -1.0, -1.0, 11.0, 73.0, 0.87266463, -0.69813174, 0.69813174, -0.69813174, 0.0, 0.0}; +//stru_D_80030420 +struct weapon_firing_animation_table D_80030420 = {0x8F2C, 26.0, 0.0, 1.5707964, 9.0, 112.0, 38.0, 87.0, -1.0, -1.0, 19.0, 98.0, 0.87266463, -0.69813174, 0.43633232, -0.43633232, 0.0, 0.0}; +//stru_D_80030468 +struct weapon_firing_animation_table D_80030468 = {0x8698, 22.0, 0.0, 0.0, 10.0, 11.0, 34.0, 87.0, -1.0, -1.0, 17.0, 104.0, 0.87266463, -0.69813174, 0.61086529, -0.78539819, 0.0, 0.0}; +//stru_D_800304B0 +struct weapon_firing_animation_table D_800304B0 = {0x8800, 28.0, 0.0, 1.5707964, 15.0, 108.0, 34.0, 73.0, -1.0, -1.0, 17.0, 93.0, 0.87266463, -0.69813174, 0.52359879, -0.78539819, 0.0, 0.0}; +//stru_D_800304F8 +struct weapon_firing_animation_table D_800304F8 = {0x8E1C, 26.0, 0.0, 0.0, 7.0, 92.0, 28.0, 68.0, -1.0, -1.0, 11.0, 73.0, 0.87266463, -0.69813174, 0.69813174, -0.69813174, 0.0, 0.0}; +//stru_D_80030540 +struct weapon_firing_animation_table D_80030540 = {0x9194, 25.0, 0.0, 1.5707964, 10.0, 112.0, 32.0, 86.0, -1.0, -1.0, 19.0, 97.0, 0.87266463, -0.69813174, 0.43633232, -0.43633232, 0.0, 0.0}; +//stru_D_80030588 +struct weapon_firing_animation_table D_80030588 = {0x8AAC, 25.0, 0.0, 0.0, 9.0, 92.0, 33.0, 62.0, -1.0, -1.0, 18.0, 69.0, 0.87266463, -0.69813174, 0.61086529, -0.78539819, 0.0, 0.0}; +//stru_D_800305D0 +struct weapon_firing_animation_table D_800305D0 = {0x8BF0, 19.0, 0.0, 1.5707964, 3.0, 95.0, 30.0, 64.0, -1.0, -1.0, 14.0, 71.0, 0.87266463, -0.69813174, 0.52359879, -0.78539819, 1.5, 1.0}; +//stru_D_80030618 +struct weapon_firing_animation_table D_80030618 = {0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; + +//stru_D_80030660 +struct weapon_firing_animation_table D_80030660 = {0x4574, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 1.4, 1.3}; +//stru_D_800306A8 +struct weapon_firing_animation_table D_800306A8 = {0x45CC, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 1.1, 1.2}; +//stru_D_800306F0 +struct weapon_firing_animation_table D_800306F0 = {0x74A4, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 0.0, 0.0}; +//stru_D_80030738 +struct weapon_firing_animation_table D_80030738 = {0x75EC, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 0.0, 0.0}; +//stru_D_80030780 +struct weapon_firing_animation_table D_80030780 = {0x8274, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 0.0, 0.0}; +//stru_D_800307C8 +struct weapon_firing_animation_table D_800307C8 = {0x8340, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 0.0, 0.0}; +//stru_D_80030810 +struct weapon_firing_animation_table D_80030810 = {0x82E0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 0.0, 0.0}; +//stru_D_80030858 +struct weapon_firing_animation_table D_80030858 = {0x83A4, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 0.0, 0.0}; +//stru_D_800308A0 +struct weapon_firing_animation_table D_800308A0 = {0x76B8, 0.0, 0.0, 1.5707964, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 0.0, 0.0}; +//stru_D_800308E8 +struct weapon_firing_animation_table D_800308E8 = {0x7650, 0.0, 0.0, 4.712389, 0.0, -1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 0.0, 0.87266463, -0.52359879, 0.52359879, -0.52359879, 0.0, 0.0}; +//stru_D_80030930 +struct weapon_firing_animation_table D_80030930 = {0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; + +s32 objectiveregisters1 = 0; +s32 objectiveregisters2 = 0; +s32 objectiveregisters3 = 0; +s32 D_80030984 = 0; +s32 D_80030988 = 0; +s32 D_8003098C = 0; +s32 D_80030990 = 0; +s32 D_80030994 = 0; +s32 D_80030998 = 0; +s32 D_8003099C = 0; +s32 D_800309A0 = 0; +s32 D_800309A4 = 0; +s32 D_800309A8 = 0; +s32 D_800309AC = 0; +s32 D_800309B0 = 0; +s32 D_800309B4 = 0; +s32 D_800309B8 = 0; +s32 D_800309BC = 0; +s32 D_800309C0 = 0; +s32 D_800309C4 = 0; +s32 D_800309C8 = 0; +s32 D_800309CC = 0; +s32 D_800309D0 = 0; +s32 D_800309D4 = 0; +s32 D_800309D8 = 0; +s32 D_800309DC = 0; +s32 D_800309E0 = 0; +s32 D_800309E4 = 0; +s32 D_800309E8 = 0; +s32 D_800309EC = 0; +s32 D_800309F0 = 0; +s32 D_800309F4 = 0; + +s16 male_guard_yelps[] = { + 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, + 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0 +}; + +s16 female_guard_yelps[] = { + 0xD, 0xE, 0xF, 0 +}; + +s32 male_guard_yelp_counter = 0; +s32 female_guard_yelp_counter = 0; + +s16 metal_ricochet_SFX[] = {0xEF, 0x48, 0x49}; + + +s32 D_80030A44 = 0; +s32 D_80030A48 = 0; +s32 D_80030A4C = 0; + +s16 body_hit_SFX[] = {0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85}; + +s32 D_80030A68 = 0; + + + +s32 get_numguards(void){ + return num_guards; +} + +void get_ptr_allocated_block_for_vertices(int param_1) { + sub_GAME_7F0BD714(param_1 << 4); +} + +void set_show_patrols_flag(s32 flag){ + show_patrols_flag = flag; +} + +s32 get_show_patrols_flag(void){ + return show_patrols_flag; +} + + + + +#ifdef NONMATCHING +void sub_GAME_7F01F574(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01F574 +/* 0540A4 7F01F574 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0540A8 7F01F578 AFBF001C */ sw $ra, 0x1c($sp) +/* 0540AC 7F01F57C AFB00018 */ sw $s0, 0x18($sp) +/* 0540B0 7F01F580 8C8E0014 */ lw $t6, 0x14($a0) +/* 0540B4 7F01F584 00808025 */ move $s0, $a0 +/* 0540B8 7F01F588 24840014 */ addiu $a0, $a0, 0x14 +/* 0540BC 7F01F58C 11C0000F */ beqz $t6, .L7F01F5CC +/* 0540C0 7F01F590 3C073F80 */ lui $a3, 0x3f80 +/* 0540C4 7F01F594 8E050008 */ lw $a1, 8($s0) +/* 0540C8 7F01F598 0FC2C834 */ jal sub_GAME_7F0B20D0 +/* 0540CC 7F01F59C 8E060010 */ lw $a2, 0x10($s0) +/* 0540D0 7F01F5A0 04430008 */ bgezl $v0, .L7F01F5C4 +/* 0540D4 7F01F5A4 44800000 */ mtc1 $zero, $f0 +/* 0540D8 7F01F5A8 8E040014 */ lw $a0, 0x14($s0) +/* 0540DC 7F01F5AC 8E050008 */ lw $a1, 8($s0) +/* 0540E0 7F01F5B0 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0540E4 7F01F5B4 8E060010 */ lw $a2, 0x10($s0) +/* 0540E8 7F01F5B8 10000007 */ b .L7F01F5D8 +/* 0540EC 7F01F5BC 8FBF001C */ lw $ra, 0x1c($sp) +/* 0540F0 7F01F5C0 44800000 */ mtc1 $zero, $f0 +.L7F01F5C4: +/* 0540F4 7F01F5C4 10000004 */ b .L7F01F5D8 +/* 0540F8 7F01F5C8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F01F5CC: +/* 0540FC 7F01F5CC 44800000 */ mtc1 $zero, $f0 +/* 054100 7F01F5D0 00000000 */ nop +/* 054104 7F01F5D4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F01F5D8: +/* 054108 7F01F5D8 8FB00018 */ lw $s0, 0x18($sp) +/* 05410C 7F01F5DC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 054110 7F01F5E0 03E00008 */ jr $ra +/* 054114 7F01F5E4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void set_or_unset_GUARDdata_flag(GUARDdata *guard,s32 param_2){ + if (param_2 == 0) { + guard->special_bitflags = guard->special_bitflags | 0x100; + return; + } + guard->special_bitflags = guard->special_bitflags & 0xfeff; + return; +} +#else +GLOBAL_ASM( +.text +glabel set_or_unset_GUARDdata_flag +/* 054118 7F01F5E8 50A00006 */ beql $a1, $zero, .L7F01F604 +/* 05411C 7F01F5EC 94980012 */ lhu $t8, 0x12($a0) +/* 054120 7F01F5F0 948E0012 */ lhu $t6, 0x12($a0) +/* 054124 7F01F5F4 31CFFEFF */ andi $t7, $t6, 0xfeff +/* 054128 7F01F5F8 03E00008 */ jr $ra +/* 05412C 7F01F5FC A48F0012 */ sh $t7, 0x12($a0) + +/* 054130 7F01F600 94980012 */ lhu $t8, 0x12($a0) +.L7F01F604: +/* 054134 7F01F604 37190100 */ ori $t9, $t8, 0x100 +/* 054138 7F01F608 A4990012 */ sh $t9, 0x12($a0) +/* 05413C 7F01F60C 03E00008 */ jr $ra +/* 054140 7F01F610 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01F614(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01F614 +/* 054144 7F01F614 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 054148 7F01F618 AFB10030 */ sw $s1, 0x30($sp) +/* 05414C 7F01F61C AFB0002C */ sw $s0, 0x2c($sp) +/* 054150 7F01F620 00C08025 */ move $s0, $a2 +/* 054154 7F01F624 00E08825 */ move $s1, $a3 +/* 054158 7F01F628 AFBF0034 */ sw $ra, 0x34($sp) +/* 05415C 7F01F62C AFA40098 */ sw $a0, 0x98($sp) +/* 054160 7F01F630 AFA5009C */ sw $a1, 0x9c($sp) +/* 054164 7F01F634 AFA00094 */ sw $zero, 0x94($sp) +/* 054168 7F01F638 AFA50090 */ sw $a1, 0x90($sp) +/* 05416C 7F01F63C 8C840018 */ lw $a0, 0x18($a0) +/* 054170 7F01F640 27A50084 */ addiu $a1, $sp, 0x84 +/* 054174 7F01F644 27A70088 */ addiu $a3, $sp, 0x88 +/* 054178 7F01F648 0FC08C58 */ jal sub_GAME_7F023160 +/* 05417C 7F01F64C 27A6008C */ addiu $a2, $sp, 0x8c +/* 054180 7F01F650 8FA40098 */ lw $a0, 0x98($sp) +/* 054184 7F01F654 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 054188 7F01F658 00002825 */ move $a1, $zero +/* 05418C 7F01F65C 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 054190 7F01F660 00000000 */ nop +/* 054194 7F01F664 C6240008 */ lwc1 $f4, 8($s1) +/* 054198 7F01F668 8E050000 */ lw $a1, ($s0) +/* 05419C 7F01F66C 8E060008 */ lw $a2, 8($s0) +/* 0541A0 7F01F670 8E270000 */ lw $a3, ($s1) +/* 0541A4 7F01F674 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0541A8 7F01F678 44818000 */ mtc1 $at, $f16 +/* 0541AC 7F01F67C C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 0541B0 7F01F680 C7A80088 */ lwc1 $f8, 0x88($sp) +/* 0541B4 7F01F684 44805000 */ mtc1 $zero, $f10 +/* 0541B8 7F01F688 2418001F */ li $t8, 31 +/* 0541BC 7F01F68C AFB80014 */ sw $t8, 0x14($sp) +/* 0541C0 7F01F690 27A40090 */ addiu $a0, $sp, 0x90 +/* 0541C4 7F01F694 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0541C8 7F01F698 E7A60018 */ swc1 $f6, 0x18($sp) +/* 0541CC 7F01F69C E7B00024 */ swc1 $f16, 0x24($sp) +/* 0541D0 7F01F6A0 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 0541D4 7F01F6A4 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0541D8 7F01F6A8 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 0541DC 7F01F6AC 10400016 */ beqz $v0, .L7F01F708 +/* 0541E0 7F01F6B0 27A40090 */ addiu $a0, $sp, 0x90 +/* 0541E4 7F01F6B4 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 0541E8 7F01F6B8 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0541EC 7F01F6BC 8E250000 */ lw $a1, ($s1) +/* 0541F0 7F01F6C0 8E260008 */ lw $a2, 8($s1) +/* 0541F4 7F01F6C4 2419001F */ li $t9, 31 +/* 0541F8 7F01F6C8 AFB90010 */ sw $t9, 0x10($sp) +/* 0541FC 7F01F6CC 8FA70084 */ lw $a3, 0x84($sp) +/* 054200 7F01F6D0 E7B20014 */ swc1 $f18, 0x14($sp) +/* 054204 7F01F6D4 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 054208 7F01F6D8 E7A40018 */ swc1 $f4, 0x18($sp) +/* 05420C 7F01F6DC 0441000A */ bgez $v0, .L7F01F708 +/* 054210 7F01F6E0 8FA800A8 */ lw $t0, 0xa8($sp) +/* 054214 7F01F6E4 11000005 */ beqz $t0, .L7F01F6FC +/* 054218 7F01F6E8 8FA90098 */ lw $t1, 0x98($sp) +/* 05421C 7F01F6EC A1200009 */ sb $zero, 9($t1) +/* 054220 7F01F6F0 3C0A8005 */ lui $t2, %hi(global_timer) +/* 054224 7F01F6F4 8D4A837C */ lw $t2, %lo(global_timer)($t2) +/* 054228 7F01F6F8 AD2A00CC */ sw $t2, 0xcc($t1) +.L7F01F6FC: +/* 05422C 7F01F6FC 8FAB0090 */ lw $t3, 0x90($sp) +/* 054230 7F01F700 10000135 */ b .L7F01FBD8 +/* 054234 7F01F704 AFAB0094 */ sw $t3, 0x94($sp) +.L7F01F708: +/* 054238 7F01F708 AFA0004C */ sw $zero, 0x4c($sp) +/* 05423C 7F01F70C 27A40078 */ addiu $a0, $sp, 0x78 +/* 054240 7F01F710 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 054244 7F01F714 27A5006C */ addiu $a1, $sp, 0x6c +/* 054248 7F01F718 50400130 */ beql $v0, $zero, .L7F01FBDC +/* 05424C 7F01F71C 8FA40098 */ lw $a0, 0x98($sp) +/* 054250 7F01F720 C6260000 */ lwc1 $f6, ($s1) +/* 054254 7F01F724 C6080000 */ lwc1 $f8, ($s0) +/* 054258 7F01F728 46083281 */ sub.s $f10, $f6, $f8 +/* 05425C 7F01F72C C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 054260 7F01F730 C7A60078 */ lwc1 $f6, 0x78($sp) +/* 054264 7F01F734 E7AA0060 */ swc1 $f10, 0x60($sp) +/* 054268 7F01F738 C6120008 */ lwc1 $f18, 8($s0) +/* 05426C 7F01F73C C6300008 */ lwc1 $f16, 8($s1) +/* 054270 7F01F740 46083032 */ c.eq.s $f6, $f8 +/* 054274 7F01F744 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 054278 7F01F748 46128101 */ sub.s $f4, $f16, $f18 +/* 05427C 7F01F74C C7B00074 */ lwc1 $f16, 0x74($sp) +/* 054280 7F01F750 45000005 */ bc1f .L7F01F768 +/* 054284 7F01F754 E7A40068 */ swc1 $f4, 0x68($sp) +/* 054288 7F01F758 46105032 */ c.eq.s $f10, $f16 +/* 05428C 7F01F75C 00000000 */ nop +/* 054290 7F01F760 45030028 */ bc1tl .L7F01F804 +/* 054294 7F01F764 8FAE004C */ lw $t6, 0x4c($sp) +.L7F01F768: +/* 054298 7F01F768 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 05429C 7F01F76C C7A80080 */ lwc1 $f8, 0x80($sp) +/* 0542A0 7F01F770 C7B2006C */ lwc1 $f18, 0x6c($sp) +/* 0542A4 7F01F774 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 0542A8 7F01F778 46083081 */ sub.s $f2, $f6, $f8 +/* 0542AC 7F01F77C 240C0001 */ li $t4, 1 +/* 0542B0 7F01F780 AFAC004C */ sw $t4, 0x4c($sp) +/* 0542B4 7F01F784 46049001 */ sub.s $f0, $f18, $f4 +/* 0542B8 7F01F788 46021282 */ mul.s $f10, $f2, $f2 +/* 0542BC 7F01F78C E7A2005C */ swc1 $f2, 0x5c($sp) +/* 0542C0 7F01F790 46000402 */ mul.s $f16, $f0, $f0 +/* 0542C4 7F01F794 E7A00054 */ swc1 $f0, 0x54($sp) +/* 0542C8 7F01F798 0C007DF8 */ jal sqrtf +/* 0542CC 7F01F79C 46105300 */ add.s $f12, $f10, $f16 +/* 0542D0 7F01F7A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0542D4 7F01F7A4 44819000 */ mtc1 $at, $f18 +/* 0542D8 7F01F7A8 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 0542DC 7F01F7AC C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 0542E0 7F01F7B0 46009083 */ div.s $f2, $f18, $f0 +/* 0542E4 7F01F7B4 C7B00068 */ lwc1 $f16, 0x68($sp) +/* 0542E8 7F01F7B8 8FAD009C */ lw $t5, 0x9c($sp) +/* 0542EC 7F01F7BC 46022182 */ mul.s $f6, $f4, $f2 +/* 0542F0 7F01F7C0 C7A40060 */ lwc1 $f4, 0x60($sp) +/* 0542F4 7F01F7C4 46024282 */ mul.s $f10, $f8, $f2 +/* 0542F8 7F01F7C8 E7A60054 */ swc1 $f6, 0x54($sp) +/* 0542FC 7F01F7CC 46105482 */ mul.s $f18, $f10, $f16 +/* 054300 7F01F7D0 E7AA005C */ swc1 $f10, 0x5c($sp) +/* 054304 7F01F7D4 46062202 */ mul.s $f8, $f4, $f6 +/* 054308 7F01F7D8 C6040000 */ lwc1 $f4, ($s0) +/* 05430C 7F01F7DC 46089300 */ add.s $f12, $f18, $f8 +/* 054310 7F01F7E0 460C3402 */ mul.s $f16, $f6, $f12 +/* 054314 7F01F7E4 46048480 */ add.s $f18, $f16, $f4 +/* 054318 7F01F7E8 460C5202 */ mul.s $f8, $f10, $f12 +/* 05431C 7F01F7EC E7B20040 */ swc1 $f18, 0x40($sp) +/* 054320 7F01F7F0 C6060008 */ lwc1 $f6, 8($s0) +/* 054324 7F01F7F4 AFAD0090 */ sw $t5, 0x90($sp) +/* 054328 7F01F7F8 46064400 */ add.s $f16, $f8, $f6 +/* 05432C 7F01F7FC E7B00048 */ swc1 $f16, 0x48($sp) +/* 054330 7F01F800 8FAE004C */ lw $t6, 0x4c($sp) +.L7F01F804: +/* 054334 7F01F804 27A40090 */ addiu $a0, $sp, 0x90 +/* 054338 7F01F808 8FA70040 */ lw $a3, 0x40($sp) +/* 05433C 7F01F80C 11C00027 */ beqz $t6, .L7F01F8AC +/* 054340 7F01F810 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 054344 7F01F814 8E050000 */ lw $a1, ($s0) +/* 054348 7F01F818 8E060008 */ lw $a2, 8($s0) +/* 05434C 7F01F81C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 054350 7F01F820 44813000 */ mtc1 $at, $f6 +/* 054354 7F01F824 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 054358 7F01F828 C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 05435C 7F01F82C 44804000 */ mtc1 $zero, $f8 +/* 054360 7F01F830 240F001F */ li $t7, 31 +/* 054364 7F01F834 AFAF0014 */ sw $t7, 0x14($sp) +/* 054368 7F01F838 E7A40010 */ swc1 $f4, 0x10($sp) +/* 05436C 7F01F83C E7B20018 */ swc1 $f18, 0x18($sp) +/* 054370 7F01F840 E7A60024 */ swc1 $f6, 0x24($sp) +/* 054374 7F01F844 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 054378 7F01F848 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05437C 7F01F84C E7A80020 */ swc1 $f8, 0x20($sp) +/* 054380 7F01F850 10400016 */ beqz $v0, .L7F01F8AC +/* 054384 7F01F854 27A40090 */ addiu $a0, $sp, 0x90 +/* 054388 7F01F858 C7B0008C */ lwc1 $f16, 0x8c($sp) +/* 05438C 7F01F85C C7A40088 */ lwc1 $f4, 0x88($sp) +/* 054390 7F01F860 2418001F */ li $t8, 31 +/* 054394 7F01F864 AFB80010 */ sw $t8, 0x10($sp) +/* 054398 7F01F868 8FA50040 */ lw $a1, 0x40($sp) +/* 05439C 7F01F86C 8FA60048 */ lw $a2, 0x48($sp) +/* 0543A0 7F01F870 8FA70084 */ lw $a3, 0x84($sp) +/* 0543A4 7F01F874 E7B00014 */ swc1 $f16, 0x14($sp) +/* 0543A8 7F01F878 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 0543AC 7F01F87C E7A40018 */ swc1 $f4, 0x18($sp) +/* 0543B0 7F01F880 0441000A */ bgez $v0, .L7F01F8AC +/* 0543B4 7F01F884 C7B20040 */ lwc1 $f18, 0x40($sp) +/* 0543B8 7F01F888 E6320000 */ swc1 $f18, ($s1) +/* 0543BC 7F01F88C C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 0543C0 7F01F890 24190002 */ li $t9, 2 +/* 0543C4 7F01F894 E62A0008 */ swc1 $f10, 8($s1) +/* 0543C8 7F01F898 8FA80098 */ lw $t0, 0x98($sp) +/* 0543CC 7F01F89C A1190009 */ sb $t9, 9($t0) +/* 0543D0 7F01F8A0 8FAA0090 */ lw $t2, 0x90($sp) +/* 0543D4 7F01F8A4 100000CC */ b .L7F01FBD8 +/* 0543D8 7F01F8A8 AFAA0094 */ sw $t2, 0x94($sp) +.L7F01F8AC: +/* 0543DC 7F01F8AC C7A80078 */ lwc1 $f8, 0x78($sp) +/* 0543E0 7F01F8B0 C6260000 */ lwc1 $f6, ($s1) +/* 0543E4 7F01F8B4 C7A40080 */ lwc1 $f4, 0x80($sp) +/* 0543E8 7F01F8B8 46064401 */ sub.s $f16, $f8, $f6 +/* 0543EC 7F01F8BC C7A60084 */ lwc1 $f6, 0x84($sp) +/* 0543F0 7F01F8C0 E7B00054 */ swc1 $f16, 0x54($sp) +/* 0543F4 7F01F8C4 C6320008 */ lwc1 $f18, 8($s1) +/* 0543F8 7F01F8C8 46063002 */ mul.s $f0, $f6, $f6 +/* 0543FC 7F01F8CC 46122281 */ sub.s $f10, $f4, $f18 +/* 054400 7F01F8D0 460A5482 */ mul.s $f18, $f10, $f10 +/* 054404 7F01F8D4 E7AA005C */ swc1 $f10, 0x5c($sp) +/* 054408 7F01F8D8 46108182 */ mul.s $f6, $f16, $f16 +/* 05440C 7F01F8DC C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 054410 7F01F8E0 46069280 */ add.s $f10, $f18, $f6 +/* 054414 7F01F8E4 4600503E */ c.le.s $f10, $f0 +/* 054418 7F01F8E8 00000000 */ nop +/* 05441C 7F01F8EC 45020058 */ bc1fl .L7F01FA50 +/* 054420 7F01F8F0 C6260000 */ lwc1 $f6, ($s1) +/* 054424 7F01F8F4 C6100000 */ lwc1 $f16, ($s0) +/* 054428 7F01F8F8 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 05442C 7F01F8FC 46104032 */ c.eq.s $f8, $f16 +/* 054430 7F01F900 00000000 */ nop +/* 054434 7F01F904 45020007 */ bc1fl .L7F01F924 +/* 054438 7F01F908 C60A0008 */ lwc1 $f10, 8($s0) +/* 05443C 7F01F90C C6120008 */ lwc1 $f18, 8($s0) +/* 054440 7F01F910 46122032 */ c.eq.s $f4, $f18 +/* 054444 7F01F914 00000000 */ nop +/* 054448 7F01F918 450300B0 */ bc1tl .L7F01FBDC +/* 05444C 7F01F91C 8FA40098 */ lw $a0, 0x98($sp) +/* 054450 7F01F920 C60A0008 */ lwc1 $f10, 8($s0) +.L7F01F924: +/* 054454 7F01F924 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 054458 7F01F928 460A3201 */ sub.s $f8, $f6, $f10 +/* 05445C 7F01F92C 46004407 */ neg.s $f16, $f8 +/* 054460 7F01F930 E7B00054 */ swc1 $f16, 0x54($sp) +/* 054464 7F01F934 C6120000 */ lwc1 $f18, ($s0) +/* 054468 7F01F938 46122181 */ sub.s $f6, $f4, $f18 +/* 05446C 7F01F93C 46063282 */ mul.s $f10, $f6, $f6 +/* 054470 7F01F940 E7A6005C */ swc1 $f6, 0x5c($sp) +/* 054474 7F01F944 46108202 */ mul.s $f8, $f16, $f16 +/* 054478 7F01F948 0C007DF8 */ jal sqrtf +/* 05447C 7F01F94C 46085300 */ add.s $f12, $f10, $f8 +/* 054480 7F01F950 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 054484 7F01F954 44812000 */ mtc1 $at, $f4 +/* 054488 7F01F958 C7B20054 */ lwc1 $f18, 0x54($sp) +/* 05448C 7F01F95C C7B0005C */ lwc1 $f16, 0x5c($sp) +/* 054490 7F01F960 46002083 */ div.s $f2, $f4, $f0 +/* 054494 7F01F964 C7A80068 */ lwc1 $f8, 0x68($sp) +/* 054498 7F01F968 8FA9009C */ lw $t1, 0x9c($sp) +/* 05449C 7F01F96C 240B001F */ li $t3, 31 +/* 0544A0 7F01F970 27A40090 */ addiu $a0, $sp, 0x90 +/* 0544A4 7F01F974 46029182 */ mul.s $f6, $f18, $f2 +/* 0544A8 7F01F978 C7B20060 */ lwc1 $f18, 0x60($sp) +/* 0544AC 7F01F97C 46028282 */ mul.s $f10, $f16, $f2 +/* 0544B0 7F01F980 E7A60054 */ swc1 $f6, 0x54($sp) +/* 0544B4 7F01F984 46085102 */ mul.s $f4, $f10, $f8 +/* 0544B8 7F01F988 E7AA005C */ swc1 $f10, 0x5c($sp) +/* 0544BC 7F01F98C 46069402 */ mul.s $f16, $f18, $f6 +/* 0544C0 7F01F990 C6120000 */ lwc1 $f18, ($s0) +/* 0544C4 7F01F994 46102300 */ add.s $f12, $f4, $f16 +/* 0544C8 7F01F998 460C3202 */ mul.s $f8, $f6, $f12 +/* 0544CC 7F01F99C 46124100 */ add.s $f4, $f8, $f18 +/* 0544D0 7F01F9A0 460C5402 */ mul.s $f16, $f10, $f12 +/* 0544D4 7F01F9A4 C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 0544D8 7F01F9A8 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 0544DC 7F01F9AC E7A40040 */ swc1 $f4, 0x40($sp) +/* 0544E0 7F01F9B0 C6060008 */ lwc1 $f6, 8($s0) +/* 0544E4 7F01F9B4 AFA90090 */ sw $t1, 0x90($sp) +/* 0544E8 7F01F9B8 44072000 */ mfc1 $a3, $f4 +/* 0544EC 7F01F9BC 46068200 */ add.s $f8, $f16, $f6 +/* 0544F0 7F01F9C0 44813000 */ mtc1 $at, $f6 +/* 0544F4 7F01F9C4 44808000 */ mtc1 $zero, $f16 +/* 0544F8 7F01F9C8 E7A80048 */ swc1 $f8, 0x48($sp) +/* 0544FC 7F01F9CC 8E060008 */ lw $a2, 8($s0) +/* 054500 7F01F9D0 8E050000 */ lw $a1, ($s0) +/* 054504 7F01F9D4 AFAB0014 */ sw $t3, 0x14($sp) +/* 054508 7F01F9D8 E7A80010 */ swc1 $f8, 0x10($sp) +/* 05450C 7F01F9DC E7AA001C */ swc1 $f10, 0x1c($sp) +/* 054510 7F01F9E0 E7B20018 */ swc1 $f18, 0x18($sp) +/* 054514 7F01F9E4 E7A60024 */ swc1 $f6, 0x24($sp) +/* 054518 7F01F9E8 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05451C 7F01F9EC E7B00020 */ swc1 $f16, 0x20($sp) +/* 054520 7F01F9F0 10400079 */ beqz $v0, .L7F01FBD8 +/* 054524 7F01F9F4 27A40090 */ addiu $a0, $sp, 0x90 +/* 054528 7F01F9F8 C7A4008C */ lwc1 $f4, 0x8c($sp) +/* 05452C 7F01F9FC C7A80088 */ lwc1 $f8, 0x88($sp) +/* 054530 7F01FA00 240C001F */ li $t4, 31 +/* 054534 7F01FA04 AFAC0010 */ sw $t4, 0x10($sp) +/* 054538 7F01FA08 8FA50040 */ lw $a1, 0x40($sp) +/* 05453C 7F01FA0C 8FA60048 */ lw $a2, 0x48($sp) +/* 054540 7F01FA10 8FA70084 */ lw $a3, 0x84($sp) +/* 054544 7F01FA14 E7A40014 */ swc1 $f4, 0x14($sp) +/* 054548 7F01FA18 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 05454C 7F01FA1C E7A80018 */ swc1 $f8, 0x18($sp) +/* 054550 7F01FA20 0441006D */ bgez $v0, .L7F01FBD8 +/* 054554 7F01FA24 C7B20040 */ lwc1 $f18, 0x40($sp) +/* 054558 7F01FA28 E6320000 */ swc1 $f18, ($s1) +/* 05455C 7F01FA2C C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 054560 7F01FA30 240D0002 */ li $t5, 2 +/* 054564 7F01FA34 E62A0008 */ swc1 $f10, 8($s1) +/* 054568 7F01FA38 8FAE0098 */ lw $t6, 0x98($sp) +/* 05456C 7F01FA3C A1CD0009 */ sb $t5, 9($t6) +/* 054570 7F01FA40 8FAF0090 */ lw $t7, 0x90($sp) +/* 054574 7F01FA44 10000064 */ b .L7F01FBD8 +/* 054578 7F01FA48 AFAF0094 */ sw $t7, 0x94($sp) +/* 05457C 7F01FA4C C6260000 */ lwc1 $f6, ($s1) +.L7F01FA50: +/* 054580 7F01FA50 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 054584 7F01FA54 46068101 */ sub.s $f4, $f16, $f6 +/* 054588 7F01FA58 E7A40054 */ swc1 $f4, 0x54($sp) +/* 05458C 7F01FA5C C6320008 */ lwc1 $f18, 8($s1) +/* 054590 7F01FA60 46124281 */ sub.s $f10, $f8, $f18 +/* 054594 7F01FA64 460A5182 */ mul.s $f6, $f10, $f10 +/* 054598 7F01FA68 E7AA005C */ swc1 $f10, 0x5c($sp) +/* 05459C 7F01FA6C 46042482 */ mul.s $f18, $f4, $f4 +/* 0545A0 7F01FA70 46123280 */ add.s $f10, $f6, $f18 +/* 0545A4 7F01FA74 4600503E */ c.le.s $f10, $f0 +/* 0545A8 7F01FA78 00000000 */ nop +/* 0545AC 7F01FA7C 45020057 */ bc1fl .L7F01FBDC +/* 0545B0 7F01FA80 8FA40098 */ lw $a0, 0x98($sp) +/* 0545B4 7F01FA84 C6040000 */ lwc1 $f4, ($s0) +/* 0545B8 7F01FA88 C7B20074 */ lwc1 $f18, 0x74($sp) +/* 0545BC 7F01FA8C 46048032 */ c.eq.s $f16, $f4 +/* 0545C0 7F01FA90 00000000 */ nop +/* 0545C4 7F01FA94 45020007 */ bc1fl .L7F01FAB4 +/* 0545C8 7F01FA98 C60A0008 */ lwc1 $f10, 8($s0) +/* 0545CC 7F01FA9C C6060008 */ lwc1 $f6, 8($s0) +/* 0545D0 7F01FAA0 46064032 */ c.eq.s $f8, $f6 +/* 0545D4 7F01FAA4 00000000 */ nop +/* 0545D8 7F01FAA8 4503004C */ bc1tl .L7F01FBDC +/* 0545DC 7F01FAAC 8FA40098 */ lw $a0, 0x98($sp) +/* 0545E0 7F01FAB0 C60A0008 */ lwc1 $f10, 8($s0) +.L7F01FAB4: +/* 0545E4 7F01FAB4 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 0545E8 7F01FAB8 460A9401 */ sub.s $f16, $f18, $f10 +/* 0545EC 7F01FABC 46008107 */ neg.s $f4, $f16 +/* 0545F0 7F01FAC0 E7A40054 */ swc1 $f4, 0x54($sp) +/* 0545F4 7F01FAC4 C6060000 */ lwc1 $f6, ($s0) +/* 0545F8 7F01FAC8 46064481 */ sub.s $f18, $f8, $f6 +/* 0545FC 7F01FACC 46129282 */ mul.s $f10, $f18, $f18 +/* 054600 7F01FAD0 E7B2005C */ swc1 $f18, 0x5c($sp) +/* 054604 7F01FAD4 46042402 */ mul.s $f16, $f4, $f4 +/* 054608 7F01FAD8 0C007DF8 */ jal sqrtf +/* 05460C 7F01FADC 46105300 */ add.s $f12, $f10, $f16 +/* 054610 7F01FAE0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 054614 7F01FAE4 44814000 */ mtc1 $at, $f8 +/* 054618 7F01FAE8 C7A60054 */ lwc1 $f6, 0x54($sp) +/* 05461C 7F01FAEC C7A4005C */ lwc1 $f4, 0x5c($sp) +/* 054620 7F01FAF0 46004083 */ div.s $f2, $f8, $f0 +/* 054624 7F01FAF4 C7B00068 */ lwc1 $f16, 0x68($sp) +/* 054628 7F01FAF8 8FB8009C */ lw $t8, 0x9c($sp) +/* 05462C 7F01FAFC 2419001F */ li $t9, 31 +/* 054630 7F01FB00 27A40090 */ addiu $a0, $sp, 0x90 +/* 054634 7F01FB04 46023482 */ mul.s $f18, $f6, $f2 +/* 054638 7F01FB08 C7A60060 */ lwc1 $f6, 0x60($sp) +/* 05463C 7F01FB0C 46022282 */ mul.s $f10, $f4, $f2 +/* 054640 7F01FB10 E7B20054 */ swc1 $f18, 0x54($sp) +/* 054644 7F01FB14 46105202 */ mul.s $f8, $f10, $f16 +/* 054648 7F01FB18 E7AA005C */ swc1 $f10, 0x5c($sp) +/* 05464C 7F01FB1C 46123102 */ mul.s $f4, $f6, $f18 +/* 054650 7F01FB20 C6060000 */ lwc1 $f6, ($s0) +/* 054654 7F01FB24 46044300 */ add.s $f12, $f8, $f4 +/* 054658 7F01FB28 460C9402 */ mul.s $f16, $f18, $f12 +/* 05465C 7F01FB2C 46068200 */ add.s $f8, $f16, $f6 +/* 054660 7F01FB30 460C5102 */ mul.s $f4, $f10, $f12 +/* 054664 7F01FB34 C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 054668 7F01FB38 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 05466C 7F01FB3C E7A80040 */ swc1 $f8, 0x40($sp) +/* 054670 7F01FB40 C6120008 */ lwc1 $f18, 8($s0) +/* 054674 7F01FB44 AFB80090 */ sw $t8, 0x90($sp) +/* 054678 7F01FB48 44074000 */ mfc1 $a3, $f8 +/* 05467C 7F01FB4C 46122400 */ add.s $f16, $f4, $f18 +/* 054680 7F01FB50 44819000 */ mtc1 $at, $f18 +/* 054684 7F01FB54 44802000 */ mtc1 $zero, $f4 +/* 054688 7F01FB58 E7B00048 */ swc1 $f16, 0x48($sp) +/* 05468C 7F01FB5C 8E060008 */ lw $a2, 8($s0) +/* 054690 7F01FB60 8E050000 */ lw $a1, ($s0) +/* 054694 7F01FB64 AFB90014 */ sw $t9, 0x14($sp) +/* 054698 7F01FB68 E7B00010 */ swc1 $f16, 0x10($sp) +/* 05469C 7F01FB6C E7AA001C */ swc1 $f10, 0x1c($sp) +/* 0546A0 7F01FB70 E7A60018 */ swc1 $f6, 0x18($sp) +/* 0546A4 7F01FB74 E7B20024 */ swc1 $f18, 0x24($sp) +/* 0546A8 7F01FB78 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0546AC 7F01FB7C E7A40020 */ swc1 $f4, 0x20($sp) +/* 0546B0 7F01FB80 10400015 */ beqz $v0, .L7F01FBD8 +/* 0546B4 7F01FB84 27A40090 */ addiu $a0, $sp, 0x90 +/* 0546B8 7F01FB88 C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 0546BC 7F01FB8C C7B00088 */ lwc1 $f16, 0x88($sp) +/* 0546C0 7F01FB90 2408001F */ li $t0, 31 +/* 0546C4 7F01FB94 AFA80010 */ sw $t0, 0x10($sp) +/* 0546C8 7F01FB98 8FA50040 */ lw $a1, 0x40($sp) +/* 0546CC 7F01FB9C 8FA60048 */ lw $a2, 0x48($sp) +/* 0546D0 7F01FBA0 8FA70084 */ lw $a3, 0x84($sp) +/* 0546D4 7F01FBA4 E7A80014 */ swc1 $f8, 0x14($sp) +/* 0546D8 7F01FBA8 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 0546DC 7F01FBAC E7B00018 */ swc1 $f16, 0x18($sp) +/* 0546E0 7F01FBB0 04410009 */ bgez $v0, .L7F01FBD8 +/* 0546E4 7F01FBB4 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 0546E8 7F01FBB8 E6260000 */ swc1 $f6, ($s1) +/* 0546EC 7F01FBBC C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 0546F0 7F01FBC0 240A0002 */ li $t2, 2 +/* 0546F4 7F01FBC4 E62A0008 */ swc1 $f10, 8($s1) +/* 0546F8 7F01FBC8 8FA90098 */ lw $t1, 0x98($sp) +/* 0546FC 7F01FBCC A12A0009 */ sb $t2, 9($t1) +/* 054700 7F01FBD0 8FAB0090 */ lw $t3, 0x90($sp) +/* 054704 7F01FBD4 AFAB0094 */ sw $t3, 0x94($sp) +.L7F01FBD8: +/* 054708 7F01FBD8 8FA40098 */ lw $a0, 0x98($sp) +.L7F01FBDC: +/* 05470C 7F01FBDC 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 054710 7F01FBE0 24050001 */ li $a1, 1 +/* 054714 7F01FBE4 8FAC0094 */ lw $t4, 0x94($sp) +/* 054718 7F01FBE8 8FAE0098 */ lw $t6, 0x98($sp) +/* 05471C 7F01FBEC 15800002 */ bnez $t4, .L7F01FBF8 +/* 054720 7F01FBF0 240D0001 */ li $t5, 1 +/* 054724 7F01FBF4 A1CD0009 */ sb $t5, 9($t6) +.L7F01FBF8: +/* 054728 7F01FBF8 8FBF0034 */ lw $ra, 0x34($sp) +/* 05472C 7F01FBFC 8FA20094 */ lw $v0, 0x94($sp) +/* 054730 7F01FC00 8FB0002C */ lw $s0, 0x2c($sp) +/* 054734 7F01FC04 8FB10030 */ lw $s1, 0x30($sp) +/* 054738 7F01FC08 03E00008 */ jr $ra +/* 05473C 7F01FC0C 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01FC10(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80051D10 +.word 0x3dccccd0 /*0.10000002*/ +glabel D_80051D14 +.word 0x3dccccd0 /*0.10000002*/ +glabel D_80051D18 +.word 0x3f666666 /*0.89999998*/ +glabel D_80051D1C +.word 0x3dcccccd /*0.1*/ +glabel D_80051D20 +.word 0x3dccccd0 /*0.10000002*/ +glabel D_80051D24 +.word 0xbdcccccd /*-0.1*/ +glabel D_80051D28 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D2C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D30 +.word 0x3f860a92 /*1.0471976*/ +glabel D_80051D34 +.word 0xbf5f66f3 /*-0.87266463*/ +glabel D_80051D38 +.word 0x3f5f66f3 /*0.87266463*/ +glabel D_80051D3C +.word 0x3f860a92 /*1.0471976*/ +glabel D_80051D40 +.word 0xbf5f66f3 /*-0.87266463*/ +glabel D_80051D44 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D48 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D4C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D50 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D54 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D58 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D5C +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D60 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D64 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D68 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D6C +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D70 +.word 0x3f7eb852 /*0.995*/ +glabel D_80051D74 +.word 0x3f80a3d7 /*1.005*/ +glabel D_80051D78 +.word 0x3f7eb852 /*0.995*/ +glabel D_80051D7C +.word 0x3f80a3d7 /*1.005*/ +glabel D_80051D80 +.word 0x3f7eb852 /*0.995*/ +glabel D_80051D84 +.word 0x3f80a3d7 /*1.005*/ +glabel D_80051D88 +.word 0x41aa6666 /*21.299999*/ + +.text +glabel sub_GAME_7F01FC10 +/* 054740 7F01FC10 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 054744 7F01FC14 AFBF0024 */ sw $ra, 0x24($sp) +/* 054748 7F01FC18 AFB10020 */ sw $s1, 0x20($sp) +/* 05474C 7F01FC1C AFB0001C */ sw $s0, 0x1c($sp) +/* 054750 7F01FC20 AFA40038 */ sw $a0, 0x38($sp) +/* 054754 7F01FC24 AFA5003C */ sw $a1, 0x3c($sp) +/* 054758 7F01FC28 AFA70044 */ sw $a3, 0x44($sp) +/* 05475C 7F01FC2C 8C900004 */ lw $s0, 4($a0) +/* 054760 7F01FC30 AFA00030 */ sw $zero, 0x30($sp) +/* 054764 7F01FC34 44806000 */ mtc1 $zero, $f12 +/* 054768 7F01FC38 8E0F0018 */ lw $t7, 0x18($s0) +/* 05476C 7F01FC3C 00C08825 */ move $s1, $a2 +/* 054770 7F01FC40 00A01825 */ move $v1, $a1 +/* 054774 7F01FC44 8DF80014 */ lw $t8, 0x14($t7) +/* 054778 7F01FC48 46006386 */ mov.s $f14, $f12 +/* 05477C 7F01FC4C 530000CC */ beql $t8, $zero, .L7F01FF80 +/* 054780 7F01FC50 8FAD0044 */ lw $t5, 0x44($sp) +/* 054784 7F01FC54 82190007 */ lb $t9, 7($s0) +/* 054788 7F01FC58 24010004 */ li $at, 4 +/* 05478C 7F01FC5C 1721002C */ bne $t9, $at, .L7F01FD10 +/* 054790 7F01FC60 00000000 */ nop +/* 054794 7F01FC64 C6020038 */ lwc1 $f2, 0x38($s0) +/* 054798 7F01FC68 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 05479C 7F01FC6C 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 0547A0 7F01FC70 4602603C */ c.lt.s $f12, $f2 +/* 0547A4 7F01FC74 00000000 */ nop +/* 0547A8 7F01FC78 45000025 */ bc1f .L7F01FD10 +/* 0547AC 7F01FC7C 00000000 */ nop +/* 0547B0 7F01FC80 C48400A4 */ lwc1 $f4, 0xa4($a0) +/* 0547B4 7F01FC84 C4460000 */ lwc1 $f6, ($v0) +/* 0547B8 7F01FC88 C60A003C */ lwc1 $f10, 0x3c($s0) +/* 0547BC 7F01FC8C 46062202 */ mul.s $f8, $f4, $f6 +/* 0547C0 7F01FC90 460A1481 */ sub.s $f18, $f2, $f10 +/* 0547C4 7F01FC94 C60A0040 */ lwc1 $f10, 0x40($s0) +/* 0547C8 7F01FC98 C4C60000 */ lwc1 $f6, ($a2) +/* 0547CC 7F01FC9C 46124102 */ mul.s $f4, $f8, $f18 +/* 0547D0 7F01FCA0 46022003 */ div.s $f0, $f4, $f2 +/* 0547D4 7F01FCA4 C4C40004 */ lwc1 $f4, 4($a2) +/* 0547D8 7F01FCA8 46005202 */ mul.s $f8, $f10, $f0 +/* 0547DC 7F01FCAC 46083480 */ add.s $f18, $f6, $f8 +/* 0547E0 7F01FCB0 E4D20000 */ swc1 $f18, ($a2) +/* 0547E4 7F01FCB4 C60A0044 */ lwc1 $f10, 0x44($s0) +/* 0547E8 7F01FCB8 C4D20008 */ lwc1 $f18, 8($a2) +/* 0547EC 7F01FCBC 46005182 */ mul.s $f6, $f10, $f0 +/* 0547F0 7F01FCC0 46062200 */ add.s $f8, $f4, $f6 +/* 0547F4 7F01FCC4 E4C80004 */ swc1 $f8, 4($a2) +/* 0547F8 7F01FCC8 C60A0048 */ lwc1 $f10, 0x48($s0) +/* 0547FC 7F01FCCC 46005102 */ mul.s $f4, $f10, $f0 +/* 054800 7F01FCD0 46049180 */ add.s $f6, $f18, $f4 +/* 054804 7F01FCD4 E4C60008 */ swc1 $f6, 8($a2) +/* 054808 7F01FCD8 8FA80038 */ lw $t0, 0x38($sp) +/* 05480C 7F01FCDC C4480000 */ lwc1 $f8, ($v0) +/* 054810 7F01FCE0 C604003C */ lwc1 $f4, 0x3c($s0) +/* 054814 7F01FCE4 C50A00A4 */ lwc1 $f10, 0xa4($t0) +/* 054818 7F01FCE8 460A4482 */ mul.s $f18, $f8, $f10 +/* 05481C 7F01FCEC C6080038 */ lwc1 $f8, 0x38($s0) +/* 054820 7F01FCF0 46122180 */ add.s $f6, $f4, $f18 +/* 054824 7F01FCF4 E606003C */ swc1 $f6, 0x3c($s0) +/* 054828 7F01FCF8 C60A003C */ lwc1 $f10, 0x3c($s0) +/* 05482C 7F01FCFC 460A403C */ c.lt.s $f8, $f10 +/* 054830 7F01FD00 00000000 */ nop +/* 054834 7F01FD04 45000002 */ bc1f .L7F01FD10 +/* 054838 7F01FD08 00000000 */ nop +/* 05483C 7F01FD0C E60C0038 */ swc1 $f12, 0x38($s0) +.L7F01FD10: +/* 054840 7F01FD10 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 054844 7F01FD14 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 054848 7F01FD18 C4520000 */ lwc1 $f18, ($v0) +/* 05484C 7F01FD1C C60400B0 */ lwc1 $f4, 0xb0($s0) +/* 054850 7F01FD20 C6280000 */ lwc1 $f8, ($s1) +/* 054854 7F01FD24 240A0001 */ li $t2, 1 +/* 054858 7F01FD28 46122182 */ mul.s $f6, $f4, $f18 +/* 05485C 7F01FD2C 02002025 */ move $a0, $s0 +/* 054860 7F01FD30 02203825 */ move $a3, $s1 +/* 054864 7F01FD34 46064280 */ add.s $f10, $f8, $f6 +/* 054868 7F01FD38 C6260008 */ lwc1 $f6, 8($s1) +/* 05486C 7F01FD3C E62A0000 */ swc1 $f10, ($s1) +/* 054870 7F01FD40 C4520000 */ lwc1 $f18, ($v0) +/* 054874 7F01FD44 C60400B8 */ lwc1 $f4, 0xb8($s0) +/* 054878 7F01FD48 46122202 */ mul.s $f8, $f4, $f18 +/* 05487C 7F01FD4C 46083280 */ add.s $f10, $f6, $f8 +/* 054880 7F01FD50 E62A0008 */ swc1 $f10, 8($s1) +/* 054884 7F01FD54 8E090018 */ lw $t1, 0x18($s0) +/* 054888 7F01FD58 8FA6003C */ lw $a2, 0x3c($sp) +/* 05488C 7F01FD5C 8D250014 */ lw $a1, 0x14($t1) +/* 054890 7F01FD60 AFA30028 */ sw $v1, 0x28($sp) +/* 054894 7F01FD64 0FC07D85 */ jal sub_GAME_7F01F614 +/* 054898 7F01FD68 AFAA0010 */ sw $t2, 0x10($sp) +/* 05489C 7F01FD6C 10400006 */ beqz $v0, .L7F01FD88 +/* 0548A0 7F01FD70 8FA30028 */ lw $v1, 0x28($sp) +/* 0548A4 7F01FD74 8E0B0018 */ lw $t3, 0x18($s0) +/* 0548A8 7F01FD78 240C0001 */ li $t4, 1 +/* 0548AC 7F01FD7C 02201825 */ move $v1, $s1 +/* 0548B0 7F01FD80 AD620014 */ sw $v0, 0x14($t3) +/* 0548B4 7F01FD84 AFAC0030 */ sw $t4, 0x30($sp) +.L7F01FD88: +/* 0548B8 7F01FD88 8E0D0014 */ lw $t5, 0x14($s0) +/* 0548BC 7F01FD8C 31AF1000 */ andi $t7, $t5, 0x1000 +/* 0548C0 7F01FD90 55E0007A */ bnezl $t7, .L7F01FF7C +/* 0548C4 7F01FD94 C60E00AC */ lwc1 $f14, 0xac($s0) +/* 0548C8 7F01FD98 8E180018 */ lw $t8, 0x18($s0) +/* 0548CC 7F01FD9C 8C650000 */ lw $a1, ($v1) +/* 0548D0 7F01FDA0 8C660008 */ lw $a2, 8($v1) +/* 0548D4 7F01FDA4 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0548D8 7F01FDA8 8F040014 */ lw $a0, 0x14($t8) +/* 0548DC 7F01FDAC 8E190014 */ lw $t9, 0x14($s0) +/* 0548E0 7F01FDB0 44806000 */ mtc1 $zero, $f12 +/* 0548E4 7F01FDB4 46000386 */ mov.s $f14, $f0 +/* 0548E8 7F01FDB8 332E0001 */ andi $t6, $t9, 1 +/* 0548EC 7F01FDBC 11C00014 */ beqz $t6, .L7F01FE10 +/* 0548F0 7F01FDC0 E60000AC */ swc1 $f0, 0xac($s0) +/* 0548F4 7F01FDC4 8FA40038 */ lw $a0, 0x38($sp) +/* 0548F8 7F01FDC8 8C880008 */ lw $t0, 8($a0) +/* 0548FC 7F01FDCC 8D050000 */ lw $a1, ($t0) +/* 054900 7F01FDD0 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 054904 7F01FDD4 E7AE002C */ swc1 $f14, 0x2c($sp) +/* 054908 7F01FDD8 8E090014 */ lw $t1, 0x14($s0) +/* 05490C 7F01FDDC C60200AC */ lwc1 $f2, 0xac($s0) +/* 054910 7F01FDE0 2401FFFE */ li $at, -2 +/* 054914 7F01FDE4 C7AE002C */ lwc1 $f14, 0x2c($sp) +/* 054918 7F01FDE8 01215024 */ and $t2, $t1, $at +/* 05491C 7F01FDEC AE0A0014 */ sw $t2, 0x14($s0) +/* 054920 7F01FDF0 3C018005 */ lui $at, %hi(D_80051D10) +/* 054924 7F01FDF4 E60200A8 */ swc1 $f2, 0xa8($s0) +/* 054928 7F01FDF8 C4241D10 */ lwc1 $f4, %lo(D_80051D10)($at) +/* 05492C 7F01FDFC 46041483 */ div.s $f18, $f2, $f4 +/* 054930 7F01FE00 E61200A4 */ swc1 $f18, 0xa4($s0) +/* 054934 7F01FE04 C4460028 */ lwc1 $f6, 0x28($v0) +/* 054938 7F01FE08 10000055 */ b .L7F01FF60 +/* 05493C 7F01FE0C E4460038 */ swc1 $f6, 0x38($v0) +.L7F01FE10: +/* 054940 7F01FE10 C60800B4 */ lwc1 $f8, 0xb4($s0) +/* 054944 7F01FE14 260400A8 */ addiu $a0, $s0, 0xa8 +/* 054948 7F01FE18 260500B4 */ addiu $a1, $s0, 0xb4 +/* 05494C 7F01FE1C 46086032 */ c.eq.s $f12, $f8 +/* 054950 7F01FE20 3C068005 */ lui $a2, %hi(global_timer_delta) +/* 054954 7F01FE24 45000007 */ bc1f .L7F01FE44 +/* 054958 7F01FE28 00000000 */ nop +/* 05495C 7F01FE2C C60200AC */ lwc1 $f2, 0xac($s0) +/* 054960 7F01FE30 C60000A8 */ lwc1 $f0, 0xa8($s0) +/* 054964 7F01FE34 4600103C */ c.lt.s $f2, $f0 +/* 054968 7F01FE38 00000000 */ nop +/* 05496C 7F01FE3C 45020013 */ bc1fl .L7F01FE8C +/* 054970 7F01FE40 4602003E */ c.le.s $f0, $f2 +.L7F01FE44: +/* 054974 7F01FE44 8CC68378 */ lw $a2, %lo(global_timer_delta)($a2) +/* 054978 7F01FE48 0FC15F51 */ jal sub_GAME_7F057D44 +/* 05497C 7F01FE4C E7AE002C */ swc1 $f14, 0x2c($sp) +/* 054980 7F01FE50 C60200AC */ lwc1 $f2, 0xac($s0) +/* 054984 7F01FE54 C60000A8 */ lwc1 $f0, 0xa8($s0) +/* 054988 7F01FE58 44806000 */ mtc1 $zero, $f12 +/* 05498C 7F01FE5C C7AE002C */ lwc1 $f14, 0x2c($sp) +/* 054990 7F01FE60 4602003E */ c.le.s $f0, $f2 +/* 054994 7F01FE64 3C018005 */ lui $at, %hi(D_80051D14) +/* 054998 7F01FE68 45020008 */ bc1fl .L7F01FE8C +/* 05499C 7F01FE6C 4602003E */ c.le.s $f0, $f2 +/* 0549A0 7F01FE70 E60200A8 */ swc1 $f2, 0xa8($s0) +/* 0549A4 7F01FE74 C42A1D14 */ lwc1 $f10, %lo(D_80051D14)($at) +/* 0549A8 7F01FE78 E60C00B4 */ swc1 $f12, 0xb4($s0) +/* 0549AC 7F01FE7C C60000A8 */ lwc1 $f0, 0xa8($s0) +/* 0549B0 7F01FE80 460A1103 */ div.s $f4, $f2, $f10 +/* 0549B4 7F01FE84 E60400A4 */ swc1 $f4, 0xa4($s0) +/* 0549B8 7F01FE88 4602003E */ c.le.s $f0, $f2 +.L7F01FE8C: +/* 0549BC 7F01FE8C 3C038005 */ lui $v1, %hi(clock_timer) +/* 0549C0 7F01FE90 24638374 */ addiu $v1, %lo(clock_timer) # addiu $v1, $v1, -0x7c8c +/* 0549C4 7F01FE94 45020033 */ bc1fl .L7F01FF64 +/* 0549C8 7F01FE98 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 0549CC 7F01FE9C 8C6B0000 */ lw $t3, ($v1) +/* 0549D0 7F01FEA0 00001025 */ move $v0, $zero +/* 0549D4 7F01FEA4 3C018005 */ lui $at, %hi(D_80051D18) +/* 0549D8 7F01FEA8 19600011 */ blez $t3, .L7F01FEF0 +/* 0549DC 7F01FEAC 00000000 */ nop +/* 0549E0 7F01FEB0 C4201D18 */ lwc1 $f0, %lo(D_80051D18)($at) +/* 0549E4 7F01FEB4 C61200A4 */ lwc1 $f18, 0xa4($s0) +.L7F01FEB8: +/* 0549E8 7F01FEB8 C60A00B0 */ lwc1 $f10, 0xb0($s0) +/* 0549EC 7F01FEBC 24420001 */ addiu $v0, $v0, 1 +/* 0549F0 7F01FEC0 46009182 */ mul.s $f6, $f18, $f0 +/* 0549F4 7F01FEC4 C61200B8 */ lwc1 $f18, 0xb8($s0) +/* 0549F8 7F01FEC8 46005102 */ mul.s $f4, $f10, $f0 +/* 0549FC 7F01FECC 46023200 */ add.s $f8, $f6, $f2 +/* 054A00 7F01FED0 46009182 */ mul.s $f6, $f18, $f0 +/* 054A04 7F01FED4 E60400B0 */ swc1 $f4, 0xb0($s0) +/* 054A08 7F01FED8 E60800A4 */ swc1 $f8, 0xa4($s0) +/* 054A0C 7F01FEDC E60600B8 */ swc1 $f6, 0xb8($s0) +/* 054A10 7F01FEE0 8C6C0000 */ lw $t4, ($v1) +/* 054A14 7F01FEE4 004C082A */ slt $at, $v0, $t4 +/* 054A18 7F01FEE8 5420FFF3 */ bnezl $at, .L7F01FEB8 +/* 054A1C 7F01FEEC C61200A4 */ lwc1 $f18, 0xa4($s0) +.L7F01FEF0: +/* 054A20 7F01FEF0 3C018005 */ lui $at, %hi(D_80051D1C) +/* 054A24 7F01FEF4 C4221D1C */ lwc1 $f2, %lo(D_80051D1C)($at) +/* 054A28 7F01FEF8 3C018005 */ lui $at, %hi(D_80051D20) +/* 054A2C 7F01FEFC C42A1D20 */ lwc1 $f10, %lo(D_80051D20)($at) +/* 054A30 7F01FF00 C60800A4 */ lwc1 $f8, 0xa4($s0) +/* 054A34 7F01FF04 C60000B0 */ lwc1 $f0, 0xb0($s0) +/* 054A38 7F01FF08 3C018005 */ lui $at, %hi(D_80051D24) +/* 054A3C 7F01FF0C 460A4102 */ mul.s $f4, $f8, $f10 +/* 054A40 7F01FF10 4602003C */ c.lt.s $f0, $f2 +/* 054A44 7F01FF14 00000000 */ nop +/* 054A48 7F01FF18 45000011 */ bc1f .L7F01FF60 +/* 054A4C 7F01FF1C E60400A8 */ swc1 $f4, 0xa8($s0) +/* 054A50 7F01FF20 C4301D24 */ lwc1 $f16, %lo(D_80051D24)($at) +/* 054A54 7F01FF24 4600803C */ c.lt.s $f16, $f0 +/* 054A58 7F01FF28 00000000 */ nop +/* 054A5C 7F01FF2C 4502000D */ bc1fl .L7F01FF64 +/* 054A60 7F01FF30 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 054A64 7F01FF34 C60000B8 */ lwc1 $f0, 0xb8($s0) +/* 054A68 7F01FF38 4602003C */ c.lt.s $f0, $f2 +/* 054A6C 7F01FF3C 00000000 */ nop +/* 054A70 7F01FF40 45020008 */ bc1fl .L7F01FF64 +/* 054A74 7F01FF44 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 054A78 7F01FF48 4600803C */ c.lt.s $f16, $f0 +/* 054A7C 7F01FF4C 00000000 */ nop +/* 054A80 7F01FF50 45020004 */ bc1fl .L7F01FF64 +/* 054A84 7F01FF54 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 054A88 7F01FF58 E60C00B8 */ swc1 $f12, 0xb8($s0) +/* 054A8C 7F01FF5C E60C00B0 */ swc1 $f12, 0xb0($s0) +.L7F01FF60: +/* 054A90 7F01FF60 C60600A8 */ lwc1 $f6, 0xa8($s0) +.L7F01FF64: +/* 054A94 7F01FF64 C6320004 */ lwc1 $f18, 4($s1) +/* 054A98 7F01FF68 460E3201 */ sub.s $f8, $f6, $f14 +/* 054A9C 7F01FF6C 46089280 */ add.s $f10, $f18, $f8 +/* 054AA0 7F01FF70 10000002 */ b .L7F01FF7C +/* 054AA4 7F01FF74 E62A0004 */ swc1 $f10, 4($s1) +/* 054AA8 7F01FF78 C60E00AC */ lwc1 $f14, 0xac($s0) +.L7F01FF7C: +/* 054AAC 7F01FF7C 8FAD0044 */ lw $t5, 0x44($sp) +.L7F01FF80: +/* 054AB0 7F01FF80 24020001 */ li $v0, 1 +/* 054AB4 7F01FF84 E5AE0000 */ swc1 $f14, ($t5) +/* 054AB8 7F01FF88 8FAF0030 */ lw $t7, 0x30($sp) +/* 054ABC 7F01FF8C 8FB8003C */ lw $t8, 0x3c($sp) +/* 054AC0 7F01FF90 55E00007 */ bnezl $t7, .L7F01FFB0 +/* 054AC4 7F01FF94 8FBF0024 */ lw $ra, 0x24($sp) +/* 054AC8 7F01FF98 C7040000 */ lwc1 $f4, ($t8) +/* 054ACC 7F01FF9C E6240000 */ swc1 $f4, ($s1) +/* 054AD0 7F01FFA0 8FB9003C */ lw $t9, 0x3c($sp) +/* 054AD4 7F01FFA4 C7260008 */ lwc1 $f6, 8($t9) +/* 054AD8 7F01FFA8 E6260008 */ swc1 $f6, 8($s1) +/* 054ADC 7F01FFAC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F01FFB0: +/* 054AE0 7F01FFB0 8FB0001C */ lw $s0, 0x1c($sp) +/* 054AE4 7F01FFB4 8FB10020 */ lw $s1, 0x20($sp) +/* 054AE8 7F01FFB8 03E00008 */ jr $ra +/* 054AEC 7F01FFBC 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80051D10 +.word 0x3dccccd0 /*0.10000002*/ +glabel D_80051D14 +.word 0x3dccccd0 /*0.10000002*/ +glabel D_80051D18 +.word 0x3f666666 /*0.89999998*/ +glabel D_80051D1C +.word 0x3dcccccd /*0.1*/ +glabel D_80051D20 +.word 0x3dccccd0 /*0.10000002*/ +glabel D_80051D24 +.word 0xbdcccccd /*-0.1*/ +glabel D_80051D28 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D2C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D30 +.word 0x3f860a92 /*1.0471976*/ +glabel D_80051D34 +.word 0xbf5f66f3 /*-0.87266463*/ +glabel D_80051D38 +.word 0x3f5f66f3 /*0.87266463*/ +glabel D_80051D3C +.word 0x3f860a92 /*1.0471976*/ +glabel D_80051D40 +.word 0xbf5f66f3 /*-0.87266463*/ +glabel D_80051D44 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D48 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D4C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D50 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D54 +.word 0x40c90fdb /*6.2831855*/ + +glabel D_jp80051D88 +.word 0x3f4ccccd + +glabel D_80051D58 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D5C +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D60 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D64 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D68 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D6C +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D70 +.word 0x3f7eb852 /*0.995*/ +glabel D_80051D74 +.word 0x3f80a3d7 /*1.005*/ +glabel D_80051D78 +.word 0x3f7eb852 /*0.995*/ +glabel D_80051D7C +.word 0x3f80a3d7 /*1.005*/ +glabel D_80051D80 +.word 0x3f7eb852 /*0.995*/ +glabel D_80051D84 +.word 0x3f80a3d7 /*1.005*/ +glabel D_80051D88 +.word 0x41aa6666 /*21.299999*/ + +/*.word 0x0*/ +.text +glabel sub_GAME_7F01FC10 +/* 054740 7F01FC10 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 054744 7F01FC14 AFBF0024 */ sw $ra, 0x24($sp) +/* 054748 7F01FC18 AFB10020 */ sw $s1, 0x20($sp) +/* 05474C 7F01FC1C AFB0001C */ sw $s0, 0x1c($sp) +/* 054750 7F01FC20 AFA40038 */ sw $a0, 0x38($sp) +/* 054754 7F01FC24 AFA5003C */ sw $a1, 0x3c($sp) +/* 054758 7F01FC28 AFA70044 */ sw $a3, 0x44($sp) +/* 05475C 7F01FC2C 8C900004 */ lw $s0, 4($a0) +/* 054760 7F01FC30 AFA00030 */ sw $zero, 0x30($sp) +/* 054764 7F01FC34 44806000 */ mtc1 $zero, $f12 +/* 054768 7F01FC38 8E0F0018 */ lw $t7, 0x18($s0) +/* 05476C 7F01FC3C 00C08825 */ move $s1, $a2 +/* 054770 7F01FC40 00A01825 */ move $v1, $a1 +/* 054774 7F01FC44 8DF80014 */ lw $t8, 0x14($t7) +/* 054778 7F01FC48 46006386 */ mov.s $f14, $f12 +/* 05477C 7F01FC4C 530000CC */ beql $t8, $zero, .L7F01FF80 +/* 054780 7F01FC50 8FAD0044 */ lw $t5, 0x44($sp) +/* 054784 7F01FC54 82190007 */ lb $t9, 7($s0) +/* 054788 7F01FC58 24010004 */ li $at, 4 +/* 05478C 7F01FC5C 1721002C */ bne $t9, $at, .L7F01FD10 +/* 054790 7F01FC60 00000000 */ nop +/* 054794 7F01FC64 C6020038 */ lwc1 $f2, 0x38($s0) +/* 054798 7F01FC68 3C028005 */ lui $v0, %hi(jp_global_timer_delta) +/* 05479C 7F01FC6C 24428378 */ addiu $v0, %lo(jp_global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 0547A0 7F01FC70 4602603C */ c.lt.s $f12, $f2 +/* 0547A4 7F01FC74 00000000 */ nop +/* 0547A8 7F01FC78 45000025 */ bc1f .L7F01FD10 +/* 0547AC 7F01FC7C 00000000 */ nop +/* 0547B0 7F01FC80 C48400A4 */ lwc1 $f4, 0xa4($a0) +/* 0547B4 7F01FC84 C4460000 */ lwc1 $f6, ($v0) +/* 0547B8 7F01FC88 C60A003C */ lwc1 $f10, 0x3c($s0) +/* 0547BC 7F01FC8C 46062202 */ mul.s $f8, $f4, $f6 +/* 0547C0 7F01FC90 460A1481 */ sub.s $f18, $f2, $f10 +/* 0547C4 7F01FC94 C60A0040 */ lwc1 $f10, 0x40($s0) +/* 0547C8 7F01FC98 C4C60000 */ lwc1 $f6, ($a2) +/* 0547CC 7F01FC9C 46124102 */ mul.s $f4, $f8, $f18 +/* 0547D0 7F01FCA0 46022003 */ div.s $f0, $f4, $f2 +/* 0547D4 7F01FCA4 C4C40004 */ lwc1 $f4, 4($a2) +/* 0547D8 7F01FCA8 46005202 */ mul.s $f8, $f10, $f0 +/* 0547DC 7F01FCAC 46083480 */ add.s $f18, $f6, $f8 +/* 0547E0 7F01FCB0 E4D20000 */ swc1 $f18, ($a2) +/* 0547E4 7F01FCB4 C60A0044 */ lwc1 $f10, 0x44($s0) +/* 0547E8 7F01FCB8 C4D20008 */ lwc1 $f18, 8($a2) +/* 0547EC 7F01FCBC 46005182 */ mul.s $f6, $f10, $f0 +/* 0547F0 7F01FCC0 46062200 */ add.s $f8, $f4, $f6 +/* 0547F4 7F01FCC4 E4C80004 */ swc1 $f8, 4($a2) +/* 0547F8 7F01FCC8 C60A0048 */ lwc1 $f10, 0x48($s0) +/* 0547FC 7F01FCCC 46005102 */ mul.s $f4, $f10, $f0 +/* 054800 7F01FCD0 46049180 */ add.s $f6, $f18, $f4 +/* 054804 7F01FCD4 E4C60008 */ swc1 $f6, 8($a2) +/* 054808 7F01FCD8 8FA80038 */ lw $t0, 0x38($sp) +/* 05480C 7F01FCDC C4480000 */ lwc1 $f8, ($v0) +/* 054810 7F01FCE0 C604003C */ lwc1 $f4, 0x3c($s0) +/* 054814 7F01FCE4 C50A00A4 */ lwc1 $f10, 0xa4($t0) +/* 054818 7F01FCE8 460A4482 */ mul.s $f18, $f8, $f10 +/* 05481C 7F01FCEC C6080038 */ lwc1 $f8, 0x38($s0) +/* 054820 7F01FCF0 46122180 */ add.s $f6, $f4, $f18 +/* 054824 7F01FCF4 E606003C */ swc1 $f6, 0x3c($s0) +/* 054828 7F01FCF8 C60A003C */ lwc1 $f10, 0x3c($s0) +/* 05482C 7F01FCFC 460A403C */ c.lt.s $f8, $f10 +/* 054830 7F01FD00 00000000 */ nop +/* 054834 7F01FD04 45000002 */ bc1f .L7F01FD10 +/* 054838 7F01FD08 00000000 */ nop +/* 05483C 7F01FD0C E60C0038 */ swc1 $f12, 0x38($s0) +.L7F01FD10: +/* 054840 7F01FD10 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 054844 7F01FD14 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 054848 7F01FD18 C4520000 */ lwc1 $f18, ($v0) +/* 05484C 7F01FD1C C60400B0 */ lwc1 $f4, 0xb0($s0) +/* 054850 7F01FD20 C6280000 */ lwc1 $f8, ($s1) +/* 054854 7F01FD24 240A0001 */ li $t2, 1 +/* 054858 7F01FD28 46122182 */ mul.s $f6, $f4, $f18 +/* 05485C 7F01FD2C 02002025 */ move $a0, $s0 +/* 054860 7F01FD30 02203825 */ move $a3, $s1 +/* 054864 7F01FD34 46064280 */ add.s $f10, $f8, $f6 +/* 054868 7F01FD38 C6260008 */ lwc1 $f6, 8($s1) +/* 05486C 7F01FD3C E62A0000 */ swc1 $f10, ($s1) +/* 054870 7F01FD40 C4520000 */ lwc1 $f18, ($v0) +/* 054874 7F01FD44 C60400B8 */ lwc1 $f4, 0xb8($s0) +/* 054878 7F01FD48 46122202 */ mul.s $f8, $f4, $f18 +/* 05487C 7F01FD4C 46083280 */ add.s $f10, $f6, $f8 +/* 054880 7F01FD50 E62A0008 */ swc1 $f10, 8($s1) +/* 054884 7F01FD54 8E090018 */ lw $t1, 0x18($s0) +/* 054888 7F01FD58 8FA6003C */ lw $a2, 0x3c($sp) +/* 05488C 7F01FD5C 8D250014 */ lw $a1, 0x14($t1) +/* 054890 7F01FD60 AFA30028 */ sw $v1, 0x28($sp) +/* 054894 7F01FD64 0FC07D85 */ jal sub_GAME_7F01F614 +/* 054898 7F01FD68 AFAA0010 */ sw $t2, 0x10($sp) +/* 05489C 7F01FD6C 10400006 */ beqz $v0, .L7F01FD88 +/* 0548A0 7F01FD70 8FA30028 */ lw $v1, 0x28($sp) +/* 0548A4 7F01FD74 8E0B0018 */ lw $t3, 0x18($s0) +/* 0548A8 7F01FD78 240C0001 */ li $t4, 1 +/* 0548AC 7F01FD7C 02201825 */ move $v1, $s1 +/* 0548B0 7F01FD80 AD620014 */ sw $v0, 0x14($t3) +/* 0548B4 7F01FD84 AFAC0030 */ sw $t4, 0x30($sp) +.L7F01FD88: +/* 0548B8 7F01FD88 8E0D0014 */ lw $t5, 0x14($s0) +/* 0548BC 7F01FD8C 31AF1000 */ andi $t7, $t5, 0x1000 +/* 0548C0 7F01FD90 55E0007A */ bnezl $t7, .L7F01FF7C +/* 0548C4 7F01FD94 C60E00AC */ lwc1 $f14, 0xac($s0) +/* 0548C8 7F01FD98 8E180018 */ lw $t8, 0x18($s0) +/* 0548CC 7F01FD9C 8C650000 */ lw $a1, ($v1) +/* 0548D0 7F01FDA0 8C660008 */ lw $a2, 8($v1) +/* 0548D4 7F01FDA4 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0548D8 7F01FDA8 8F040014 */ lw $a0, 0x14($t8) +/* 0548DC 7F01FDAC 8E190014 */ lw $t9, 0x14($s0) +/* 0548E0 7F01FDB0 44806000 */ mtc1 $zero, $f12 +/* 0548E4 7F01FDB4 46000386 */ mov.s $f14, $f0 +/* 0548E8 7F01FDB8 332E0001 */ andi $t6, $t9, 1 +/* 0548EC 7F01FDBC 11C00014 */ beqz $t6, .L7F01FE10 +/* 0548F0 7F01FDC0 E60000AC */ swc1 $f0, 0xac($s0) +/* 0548F4 7F01FDC4 8FA40038 */ lw $a0, 0x38($sp) +/* 0548F8 7F01FDC8 8C880008 */ lw $t0, 8($a0) +/* 0548FC 7F01FDCC 8D050000 */ lw $a1, ($t0) +/* 054900 7F01FDD0 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 054904 7F01FDD4 E7AE002C */ swc1 $f14, 0x2c($sp) +/* 054908 7F01FDD8 8E090014 */ lw $t1, 0x14($s0) +/* 05490C 7F01FDDC C60200AC */ lwc1 $f2, 0xac($s0) +/* 054910 7F01FDE0 2401FFFE */ li $at, -2 +/* 054914 7F01FDE4 C7AE002C */ lwc1 $f14, 0x2c($sp) +/* 054918 7F01FDE8 01215024 */ and $t2, $t1, $at +/* 05491C 7F01FDEC AE0A0014 */ sw $t2, 0x14($s0) +/* 054920 7F01FDF0 3C018005 */ lui $at, %hi(D_80051D10) +/* 054924 7F01FDF4 E60200A8 */ swc1 $f2, 0xa8($s0) +/* 054928 7F01FDF8 C4241D10 */ lwc1 $f4, %lo(D_80051D10)($at) +/* 05492C 7F01FDFC 46041483 */ div.s $f18, $f2, $f4 +/* 054930 7F01FE00 E61200A4 */ swc1 $f18, 0xa4($s0) +/* 054934 7F01FE04 C4460028 */ lwc1 $f6, 0x28($v0) +/* 054938 7F01FE08 10000055 */ b .L7F01FF60 +/* 05493C 7F01FE0C E4460038 */ swc1 $f6, 0x38($v0) +.L7F01FE10: +/* 054940 7F01FE10 C60800B4 */ lwc1 $f8, 0xb4($s0) +/* 054944 7F01FE14 260400A8 */ addiu $a0, $s0, 0xa8 +/* 054948 7F01FE18 260500B4 */ addiu $a1, $s0, 0xb4 +/* 05494C 7F01FE1C 46086032 */ c.eq.s $f12, $f8 +/* 054950 7F01FE20 3C068005 */ lui $a2, %hi(global_timer_delta) +/* 054954 7F01FE24 45000007 */ bc1f .L7F01FE44 +/* 054958 7F01FE28 00000000 */ nop +/* 05495C 7F01FE2C C60200AC */ lwc1 $f2, 0xac($s0) +/* 054960 7F01FE30 C60000A8 */ lwc1 $f0, 0xa8($s0) +/* 054964 7F01FE34 4600103C */ c.lt.s $f2, $f0 +/* 054968 7F01FE38 00000000 */ nop +/* 05496C 7F01FE3C 45020013 */ bc1fl .L7F01FE8C +/* 054970 7F01FE40 4602003E */ c.le.s $f0, $f2 +.L7F01FE44: +/* 054974 7F01FE44 8CC68378 */ lw $a2, %lo(global_timer_delta)($a2) +/* 054978 7F01FE48 0FC15F51 */ jal sub_GAME_7F057D44 +/* 05497C 7F01FE4C E7AE002C */ swc1 $f14, 0x2c($sp) +/* 054980 7F01FE50 C60200AC */ lwc1 $f2, 0xac($s0) +/* 054984 7F01FE54 C60000A8 */ lwc1 $f0, 0xa8($s0) +/* 054988 7F01FE58 44806000 */ mtc1 $zero, $f12 +/* 05498C 7F01FE5C C7AE002C */ lwc1 $f14, 0x2c($sp) +/* 054990 7F01FE60 4602003E */ c.le.s $f0, $f2 +/* 054994 7F01FE64 3C018005 */ lui $at, %hi(D_80051D14) +/* 054998 7F01FE68 45020008 */ bc1fl .L7F01FE8C +/* 05499C 7F01FE6C 4602003E */ c.le.s $f0, $f2 +/* 0549A0 7F01FE70 E60200A8 */ swc1 $f2, 0xa8($s0) +/* 0549A4 7F01FE74 C42A1D14 */ lwc1 $f10, %lo(D_80051D14)($at) +/* 0549A8 7F01FE78 E60C00B4 */ swc1 $f12, 0xb4($s0) +/* 0549AC 7F01FE7C C60000A8 */ lwc1 $f0, 0xa8($s0) +/* 0549B0 7F01FE80 460A1103 */ div.s $f4, $f2, $f10 +/* 0549B4 7F01FE84 E60400A4 */ swc1 $f4, 0xa4($s0) +/* 0549B8 7F01FE88 4602003E */ c.le.s $f0, $f2 +.L7F01FE8C: +/* 0549BC 7F01FE8C 3C038005 */ lui $v1, %hi(clock_timer) +/* 0549C0 7F01FE90 24638374 */ addiu $v1, %lo(clock_timer) # addiu $v1, $v1, -0x7c8c +/* 0549C4 7F01FE94 45020033 */ bc1fl .L7F01FF64 +/* 0549C8 7F01FE98 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 0549CC 7F01FE9C 8C6B0000 */ lw $t3, ($v1) +/* 0549D0 7F01FEA0 00001025 */ move $v0, $zero +/* 0549D4 7F01FEA4 3C018005 */ lui $at, %hi(D_80051D18) +/* 0549D8 7F01FEA8 19600011 */ blez $t3, .L7F01FEF0 +/* 0549DC 7F01FEAC 00000000 */ nop +/* 0549E0 7F01FEB0 C4201D18 */ lwc1 $f0, %lo(D_80051D18)($at) +/* 0549E4 7F01FEB4 C61200A4 */ lwc1 $f18, 0xa4($s0) +.L7F01FEB8: +/* 0549E8 7F01FEB8 C60A00B0 */ lwc1 $f10, 0xb0($s0) +/* 0549EC 7F01FEBC 24420001 */ addiu $v0, $v0, 1 +/* 0549F0 7F01FEC0 46009182 */ mul.s $f6, $f18, $f0 +/* 0549F4 7F01FEC4 C61200B8 */ lwc1 $f18, 0xb8($s0) +/* 0549F8 7F01FEC8 46005102 */ mul.s $f4, $f10, $f0 +/* 0549FC 7F01FECC 46023200 */ add.s $f8, $f6, $f2 +/* 054A00 7F01FED0 46009182 */ mul.s $f6, $f18, $f0 +/* 054A04 7F01FED4 E60400B0 */ swc1 $f4, 0xb0($s0) +/* 054A08 7F01FED8 E60800A4 */ swc1 $f8, 0xa4($s0) +/* 054A0C 7F01FEDC E60600B8 */ swc1 $f6, 0xb8($s0) +/* 054A10 7F01FEE0 8C6C0000 */ lw $t4, ($v1) +/* 054A14 7F01FEE4 004C082A */ slt $at, $v0, $t4 +/* 054A18 7F01FEE8 5420FFF3 */ bnezl $at, .L7F01FEB8 +/* 054A1C 7F01FEEC C61200A4 */ lwc1 $f18, 0xa4($s0) +.L7F01FEF0: +/* 054A20 7F01FEF0 3C018005 */ lui $at, %hi(D_80051D1C) +/* 054A24 7F01FEF4 C4221D1C */ lwc1 $f2, %lo(D_80051D1C)($at) +/* 054A28 7F01FEF8 3C018005 */ lui $at, %hi(D_80051D20) +/* 054A2C 7F01FEFC C42A1D20 */ lwc1 $f10, %lo(D_80051D20)($at) +/* 054A30 7F01FF00 C60800A4 */ lwc1 $f8, 0xa4($s0) +/* 054A34 7F01FF04 C60000B0 */ lwc1 $f0, 0xb0($s0) +/* 054A38 7F01FF08 3C018005 */ lui $at, %hi(D_80051D24) +/* 054A3C 7F01FF0C 460A4102 */ mul.s $f4, $f8, $f10 +/* 054A40 7F01FF10 4602003C */ c.lt.s $f0, $f2 +/* 054A44 7F01FF14 00000000 */ nop +/* 054A48 7F01FF18 45000011 */ bc1f .L7F01FF60 +/* 054A4C 7F01FF1C E60400A8 */ swc1 $f4, 0xa8($s0) +/* 054A50 7F01FF20 C4301D24 */ lwc1 $f16, %lo(D_80051D24)($at) +/* 054A54 7F01FF24 4600803C */ c.lt.s $f16, $f0 +/* 054A58 7F01FF28 00000000 */ nop +/* 054A5C 7F01FF2C 4502000D */ bc1fl .L7F01FF64 +/* 054A60 7F01FF30 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 054A64 7F01FF34 C60000B8 */ lwc1 $f0, 0xb8($s0) +/* 054A68 7F01FF38 4602003C */ c.lt.s $f0, $f2 +/* 054A6C 7F01FF3C 00000000 */ nop +/* 054A70 7F01FF40 45020008 */ bc1fl .L7F01FF64 +/* 054A74 7F01FF44 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 054A78 7F01FF48 4600803C */ c.lt.s $f16, $f0 +/* 054A7C 7F01FF4C 00000000 */ nop +/* 054A80 7F01FF50 45020004 */ bc1fl .L7F01FF64 +/* 054A84 7F01FF54 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 054A88 7F01FF58 E60C00B8 */ swc1 $f12, 0xb8($s0) +/* 054A8C 7F01FF5C E60C00B0 */ swc1 $f12, 0xb0($s0) +.L7F01FF60: +/* 054A90 7F01FF60 C60600A8 */ lwc1 $f6, 0xa8($s0) +.L7F01FF64: +/* 054A94 7F01FF64 C6320004 */ lwc1 $f18, 4($s1) +/* 054A98 7F01FF68 460E3201 */ sub.s $f8, $f6, $f14 +/* 054A9C 7F01FF6C 46089280 */ add.s $f10, $f18, $f8 +/* 054AA0 7F01FF70 10000002 */ b .L7F01FF7C +/* 054AA4 7F01FF74 E62A0004 */ swc1 $f10, 4($s1) +/* 054AA8 7F01FF78 C60E00AC */ lwc1 $f14, 0xac($s0) +.L7F01FF7C: +/* 054AAC 7F01FF7C 8FAD0044 */ lw $t5, 0x44($sp) +.L7F01FF80: +/* 054AB0 7F01FF80 24020001 */ li $v0, 1 +/* 054AB4 7F01FF84 E5AE0000 */ swc1 $f14, ($t5) +/* 054AB8 7F01FF88 8FAF0030 */ lw $t7, 0x30($sp) +/* 054ABC 7F01FF8C 8FB8003C */ lw $t8, 0x3c($sp) +/* 054AC0 7F01FF90 55E00007 */ bnezl $t7, .L7F01FFB0 +/* 054AC4 7F01FF94 8FBF0024 */ lw $ra, 0x24($sp) +/* 054AC8 7F01FF98 C7040000 */ lwc1 $f4, ($t8) +/* 054ACC 7F01FF9C E6240000 */ swc1 $f4, ($s1) +/* 054AD0 7F01FFA0 8FB9003C */ lw $t9, 0x3c($sp) +/* 054AD4 7F01FFA4 C7260008 */ lwc1 $f6, 8($t9) +/* 054AD8 7F01FFA8 E6260008 */ swc1 $f6, 8($s1) +/* 054ADC 7F01FFAC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F01FFB0: +/* 054AE0 7F01FFB0 8FB0001C */ lw $s0, 0x1c($sp) +/* 054AE4 7F01FFB4 8FB10020 */ lw $s1, 0x20($sp) +/* 054AE8 7F01FFB8 03E00008 */ jr $ra +/* 054AEC 7F01FFBC 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif +#endif + + +#ifdef NONMATCHING +void get_next_available_guardID(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_next_available_guardID +/* 054AF0 7F01FFC0 3C048003 */ lui $a0, %hi(num_guards) +/* 054AF4 7F01FFC4 8C84CC68 */ lw $a0, %lo(num_guards)($a0) +/* 054AF8 7F01FFC8 00001825 */ move $v1, $zero +/* 054AFC 7F01FFCC 00001025 */ move $v0, $zero +/* 054B00 7F01FFD0 1880000F */ blez $a0, .L7F020010 +/* 054B04 7F01FFD4 3C058003 */ lui $a1, %hi(ptr_guard_data) +/* 054B08 7F01FFD8 00043100 */ sll $a2, $a0, 4 +/* 054B0C 7F01FFDC 00C43023 */ subu $a2, $a2, $a0 +/* 054B10 7F01FFE0 000630C0 */ sll $a2, $a2, 3 +/* 054B14 7F01FFE4 00C43023 */ subu $a2, $a2, $a0 +/* 054B18 7F01FFE8 00063080 */ sll $a2, $a2, 2 +/* 054B1C 7F01FFEC 8CA5CC64 */ lw $a1, %lo(ptr_guard_data)($a1) +.L7F01FFF0: +/* 054B20 7F01FFF0 8CAE001C */ lw $t6, 0x1c($a1) +/* 054B24 7F01FFF4 244201DC */ addiu $v0, $v0, 0x1dc +/* 054B28 7F01FFF8 0046082A */ slt $at, $v0, $a2 +/* 054B2C 7F01FFFC 15C00002 */ bnez $t6, .L7F020008 +/* 054B30 7F020000 00000000 */ nop +/* 054B34 7F020004 24630001 */ addiu $v1, $v1, 1 +.L7F020008: +/* 054B38 7F020008 1420FFF9 */ bnez $at, .L7F01FFF0 +/* 054B3C 7F02000C 24A501DC */ addiu $a1, $a1, 0x1dc +.L7F020010: +/* 054B40 7F020010 03E00008 */ jr $ra +/* 054B44 7F020014 00601025 */ move $v0, $v1 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F020018(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F020018 +/* 054B48 7F020018 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 054B4C 7F02001C AFBF0014 */ sw $ra, 0x14($sp) +/* 054B50 7F020020 AFA40018 */ sw $a0, 0x18($sp) +/* 054B54 7F020024 0FC074BA */ jal get_007_health_mod +/* 054B58 7F020028 AFA5001C */ sw $a1, 0x1c($sp) +/* 054B5C 7F02002C C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 054B60 7F020030 8FAE0018 */ lw $t6, 0x18($sp) +/* 054B64 7F020034 46040182 */ mul.s $f6, $f0, $f4 +/* 054B68 7F020038 E5C60100 */ swc1 $f6, 0x100($t6) +/* 054B6C 7F02003C 8FBF0014 */ lw $ra, 0x14($sp) +/* 054B70 7F020040 27BD0018 */ addiu $sp, $sp, 0x18 +/* 054B74 7F020044 03E00008 */ jr $ra +/* 054B78 7F020048 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02004C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02004C +/* 054B7C 7F02004C 03E00008 */ jr $ra +/* 054B80 7F020050 C4800100 */ lwc1 $f0, 0x100($a0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F020054(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F020054 +/* 054B84 7F020054 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 054B88 7F020058 AFBF0014 */ sw $ra, 0x14($sp) +/* 054B8C 7F02005C AFA40018 */ sw $a0, 0x18($sp) +/* 054B90 7F020060 0FC074BA */ jal get_007_health_mod +/* 054B94 7F020064 AFA5001C */ sw $a1, 0x1c($sp) +/* 054B98 7F020068 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 054B9C 7F02006C 8FA20018 */ lw $v0, 0x18($sp) +/* 054BA0 7F020070 46003202 */ mul.s $f8, $f6, $f0 +/* 054BA4 7F020074 C44400FC */ lwc1 $f4, 0xfc($v0) +/* 054BA8 7F020078 46082281 */ sub.s $f10, $f4, $f8 +/* 054BAC 7F02007C E44A00FC */ swc1 $f10, 0xfc($v0) +/* 054BB0 7F020080 8FBF0014 */ lw $ra, 0x14($sp) +/* 054BB4 7F020084 27BD0018 */ addiu $sp, $sp, 0x18 +/* 054BB8 7F020088 03E00008 */ jr $ra +/* 054BBC 7F02008C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F020090(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F020090 +/* 054BC0 7F020090 44806000 */ mtc1 $zero, $f12 +/* 054BC4 7F020094 C48200FC */ lwc1 $f2, 0xfc($a0) +/* 054BC8 7F020098 460C103C */ c.lt.s $f2, $f12 +/* 054BCC 7F02009C 00000000 */ nop +/* 054BD0 7F0200A0 45020004 */ bc1fl .L7F0200B4 +/* 054BD4 7F0200A4 46006006 */ mov.s $f0, $f12 +/* 054BD8 7F0200A8 03E00008 */ jr $ra +/* 054BDC 7F0200AC 46001007 */ neg.s $f0, $f2 + +/* 054BE0 7F0200B0 46006006 */ mov.s $f0, $f12 +.L7F0200B4: +/* 054BE4 7F0200B4 03E00008 */ jr $ra +/* 054BE8 7F0200B8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void init_GUARDdata_with_set_values(void) { + +} +#else +GLOBAL_ASM( +.text +glabel init_GUARDdata_with_set_values +/* 054BEC 7F0200BC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 054BF0 7F0200C0 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 054BF4 7F0200C4 4487A000 */ mtc1 $a3, $f20 +/* 054BF8 7F0200C8 3C078003 */ lui $a3, %hi(num_guards) +/* 054BFC 7F0200CC 8CE7CC68 */ lw $a3, %lo(num_guards)($a3) +/* 054C00 7F0200D0 AFB30028 */ sw $s3, 0x28($sp) +/* 054C04 7F0200D4 AFB20024 */ sw $s2, 0x24($sp) +/* 054C08 7F0200D8 AFB10020 */ sw $s1, 0x20($sp) +/* 054C0C 7F0200DC AFB0001C */ sw $s0, 0x1c($sp) +/* 054C10 7F0200E0 00808825 */ move $s1, $a0 +/* 054C14 7F0200E4 00A09025 */ move $s2, $a1 +/* 054C18 7F0200E8 00C09825 */ move $s3, $a2 +/* 054C1C 7F0200EC AFBF002C */ sw $ra, 0x2c($sp) +/* 054C20 7F0200F0 00008025 */ move $s0, $zero +/* 054C24 7F0200F4 18E0000E */ blez $a3, .L7F020130 +/* 054C28 7F0200F8 00001025 */ move $v0, $zero +/* 054C2C 7F0200FC 3C058003 */ lui $a1, %hi(ptr_guard_data) +/* 054C30 7F020100 8CA5CC64 */ lw $a1, %lo(ptr_guard_data)($a1) +/* 054C34 7F020104 00002025 */ move $a0, $zero +/* 054C38 7F020108 00A01825 */ move $v1, $a1 +.L7F02010C: +/* 054C3C 7F02010C 8C6E001C */ lw $t6, 0x1c($v1) +/* 054C40 7F020110 24420001 */ addiu $v0, $v0, 1 +/* 054C44 7F020114 0047082A */ slt $at, $v0, $a3 +/* 054C48 7F020118 15C00003 */ bnez $t6, .L7F020128 +/* 054C4C 7F02011C 246301DC */ addiu $v1, $v1, 0x1dc +/* 054C50 7F020120 10000003 */ b .L7F020130 +/* 054C54 7F020124 00858021 */ addu $s0, $a0, $a1 +.L7F020128: +/* 054C58 7F020128 1420FFF8 */ bnez $at, .L7F02010C +/* 054C5C 7F02012C 248401DC */ addiu $a0, $a0, 0x1dc +.L7F020130: +/* 054C60 7F020130 240F0003 */ li $t7, 3 +/* 054C64 7F020134 A22F0000 */ sb $t7, ($s1) +/* 054C68 7F020138 AE300004 */ sw $s0, 4($s1) +/* 054C6C 7F02013C C6640000 */ lwc1 $f4, ($s3) +/* 054C70 7F020140 3C057F02 */ lui $a1, %hi(sub_GAME_7F01FC10) # $a1, 0x7f02 +/* 054C74 7F020144 24A5FC10 */ addiu $a1, %lo(sub_GAME_7F01FC10) # addiu $a1, $a1, -0x3f0 +/* 054C78 7F020148 E6240008 */ swc1 $f4, 8($s1) +/* 054C7C 7F02014C C6660004 */ lwc1 $f6, 4($s3) +/* 054C80 7F020150 02402025 */ move $a0, $s2 +/* 054C84 7F020154 E626000C */ swc1 $f6, 0xc($s1) +/* 054C88 7F020158 C6680008 */ lwc1 $f8, 8($s3) +/* 054C8C 7F02015C E6280010 */ swc1 $f8, 0x10($s1) +/* 054C90 7F020160 8FB80040 */ lw $t8, 0x40($sp) +/* 054C94 7F020164 0FC1BFD7 */ jal sub_GAME_7F06FF5C +/* 054C98 7F020168 AE380014 */ sw $t8, 0x14($s1) +/* 054C9C 7F02016C 2419000A */ li $t9, 10 +/* 054CA0 7F020170 A6590000 */ sh $t9, ($s2) +/* 054CA4 7F020174 AE500004 */ sw $s0, 4($s2) +/* 054CA8 7F020178 02402025 */ move $a0, $s2 +/* 054CAC 7F02017C 0FC1B303 */ jal setsuboffset +/* 054CB0 7F020180 02602825 */ move $a1, $s3 +/* 054CB4 7F020184 4405A000 */ mfc1 $a1, $f20 +/* 054CB8 7F020188 0FC1B34F */ jal setsubroty +/* 054CBC 7F02018C 02402025 */ move $a0, $s2 +/* 054CC0 7F020190 4480A000 */ mtc1 $zero, $f20 +/* 054CC4 7F020194 3C058003 */ lui $a1, %hi(animation_rate) +/* 054CC8 7F020198 8CA5C900 */ lw $a1, %lo(animation_rate)($a1) +/* 054CCC 7F02019C 4406A000 */ mfc1 $a2, $f20 +/* 054CD0 7F0201A0 0FC1BFC6 */ jal sub_GAME_7F06FF18 +/* 054CD4 7F0201A4 02402025 */ move $a0, $s2 +/* 054CD8 7F0201A8 3C028003 */ lui $v0, %hi(player1_guardID) +/* 054CDC 7F0201AC 2442CC60 */ addiu $v0, %lo(player1_guardID) # addiu $v0, $v0, -0x33a0 +/* 054CE0 7F0201B0 8C480000 */ lw $t0, ($v0) +/* 054CE4 7F0201B4 3C0B8005 */ lui $t3, %hi(global_timer) +/* 054CE8 7F0201B8 3C01437A */ li $at, 0x437A0000 # 250.000000 +/* 054CEC 7F0201BC A6080000 */ sh $t0, ($s0) +/* 054CF0 7F0201C0 8C490000 */ lw $t1, ($v0) +/* 054CF4 7F0201C4 44815000 */ mtc1 $at, $f10 +/* 054CF8 7F0201C8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 054CFC 7F0201CC 252A0001 */ addiu $t2, $t1, 1 +/* 054D00 7F0201D0 AC4A0000 */ sw $t2, ($v0) +/* 054D04 7F0201D4 A2000006 */ sb $zero, 6($s0) +/* 054D08 7F0201D8 A200000F */ sb $zero, 0xf($s0) +/* 054D0C 7F0201DC AE110018 */ sw $s1, 0x18($s0) +/* 054D10 7F0201E0 AE12001C */ sw $s2, 0x1c($s0) +/* 054D14 7F0201E4 AE000020 */ sw $zero, 0x20($s0) +/* 054D18 7F0201E8 A200000B */ sb $zero, 0xb($s0) +/* 054D1C 7F0201EC AE0000C8 */ sw $zero, 0xc8($s0) +/* 054D20 7F0201F0 A2000009 */ sb $zero, 9($s0) +/* 054D24 7F0201F4 8D6B837C */ lw $t3, %lo(global_timer)($t3) +/* 054D28 7F0201F8 44818000 */ mtc1 $at, $f16 +/* 054D2C 7F0201FC AE0000D4 */ sw $zero, 0xd4($s0) +/* 054D30 7F020200 E61400D8 */ swc1 $f20, 0xd8($s0) +/* 054D34 7F020204 E61400DC */ swc1 $f20, 0xdc($s0) +/* 054D38 7F020208 E61400E0 */ swc1 $f20, 0xe0($s0) +/* 054D3C 7F02020C AE0000E4 */ sw $zero, 0xe4($s0) +/* 054D40 7F020210 AE0000E8 */ sw $zero, 0xe8($s0) +/* 054D44 7F020214 AE0000F0 */ sw $zero, 0xf0($s0) +/* 054D48 7F020218 A200000A */ sb $zero, 0xa($s0) +/* 054D4C 7F02021C E614013C */ swc1 $f20, 0x13c($s0) +/* 054D50 7F020220 E61400FC */ swc1 $f20, 0xfc($s0) +/* 054D54 7F020224 E60A00D0 */ swc1 $f10, 0xd0($s0) +/* 054D58 7F020228 AE0B00CC */ sw $t3, 0xcc($s0) +/* 054D5C 7F02022C 0FC074BA */ jal get_007_health_mod +/* 054D60 7F020230 E61000EC */ swc1 $f16, 0xec($s0) +/* 054D64 7F020234 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 054D68 7F020238 44819000 */ mtc1 $at, $f18 +/* 054D6C 7F02023C 02202025 */ move $a0, $s1 +/* 054D70 7F020240 260500F8 */ addiu $a1, $s0, 0xf8 +/* 054D74 7F020244 46120102 */ mul.s $f4, $f0, $f18 +/* 054D78 7F020248 0FC10027 */ jal set_color_shading_from_tile +/* 054D7C 7F02024C E6040100 */ swc1 $f4, 0x100($s0) +/* 054D80 7F020250 920C00F8 */ lbu $t4, 0xf8($s0) +/* 054D84 7F020254 920D00F9 */ lbu $t5, 0xf9($s0) +/* 054D88 7F020258 920E00FA */ lbu $t6, 0xfa($s0) +/* 054D8C 7F02025C 920F00FB */ lbu $t7, 0xfb($s0) +/* 054D90 7F020260 241800FF */ li $t8, 255 +/* 054D94 7F020264 24190001 */ li $t9, 1 +/* 054D98 7F020268 A218000C */ sb $t8, 0xc($s0) +/* 054D9C 7F02026C AE000168 */ sw $zero, 0x168($s0) +/* 054DA0 7F020270 AE00016C */ sw $zero, 0x16c($s0) +/* 054DA4 7F020274 AE000170 */ sw $zero, 0x170($s0) +/* 054DA8 7F020278 AE000174 */ sw $zero, 0x174($s0) +/* 054DAC 7F02027C AE000178 */ sw $zero, 0x178($s0) +/* 054DB0 7F020280 AE00017C */ sw $zero, 0x17c($s0) +/* 054DB4 7F020284 AE190014 */ sw $t9, 0x14($s0) +/* 054DB8 7F020288 A6000012 */ sh $zero, 0x12($s0) +/* 054DBC 7F02028C E61400A4 */ swc1 $f20, 0xa4($s0) +/* 054DC0 7F020290 E61400A8 */ swc1 $f20, 0xa8($s0) +/* 054DC4 7F020294 E61400AC */ swc1 $f20, 0xac($s0) +/* 054DC8 7F020298 E61400B0 */ swc1 $f20, 0xb0($s0) +/* 054DCC 7F02029C E61400B4 */ swc1 $f20, 0xb4($s0) +/* 054DD0 7F0202A0 E61400B8 */ swc1 $f20, 0xb8($s0) +/* 054DD4 7F0202A4 A20C00F4 */ sb $t4, 0xf4($s0) +/* 054DD8 7F0202A8 A20D00F5 */ sb $t5, 0xf5($s0) +/* 054DDC 7F0202AC A20E00F6 */ sb $t6, 0xf6($s0) +/* 054DE0 7F0202B0 A20F00F7 */ sb $t7, 0xf7($s0) +/* 054DE4 7F0202B4 C6660000 */ lwc1 $f6, ($s3) +/* 054DE8 7F0202B8 2402FFFF */ li $v0, -1 +/* 054DEC 7F0202BC 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 054DF0 7F0202C0 E60600BC */ swc1 $f6, 0xbc($s0) +/* 054DF4 7F0202C4 C6680004 */ lwc1 $f8, 4($s3) +/* 054DF8 7F0202C8 44818000 */ mtc1 $at, $f16 +/* 054DFC 7F0202CC 3C014339 */ li $at, 0x43390000 # 185.000000 +/* 054E00 7F0202D0 E60800C0 */ swc1 $f8, 0xc0($s0) +/* 054E04 7F0202D4 C66A0008 */ lwc1 $f10, 8($s3) +/* 054E08 7F0202D8 A2000007 */ sb $zero, 7($s0) +/* 054E0C 7F0202DC A2000008 */ sb $zero, 8($s0) +/* 054E10 7F0202E0 E60A00C4 */ swc1 $f10, 0xc4($s0) +/* 054E14 7F0202E4 8FA80044 */ lw $t0, 0x44($sp) +/* 054E18 7F0202E8 44819000 */ mtc1 $at, $f18 +/* 054E1C 7F0202EC 26250008 */ addiu $a1, $s1, 8 +/* 054E20 7F0202F0 A6000108 */ sh $zero, 0x108($s0) +/* 054E24 7F0202F4 A602010A */ sh $v0, 0x10a($s0) +/* 054E28 7F0202F8 A200010C */ sb $zero, 0x10c($s0) +/* 054E2C 7F0202FC A200010D */ sb $zero, 0x10d($s0) +/* 054E30 7F020300 A200010E */ sb $zero, 0x10e($s0) +/* 054E34 7F020304 A200010F */ sb $zero, 0x10f($s0) +/* 054E38 7F020308 AE000110 */ sw $zero, 0x110($s0) +/* 054E3C 7F02030C A6020114 */ sh $v0, 0x114($s0) +/* 054E40 7F020310 A6020118 */ sh $v0, 0x118($s0) +/* 054E44 7F020314 A602011A */ sh $v0, 0x11a($s0) +/* 054E48 7F020318 A6020116 */ sh $v0, 0x116($s0) +/* 054E4C 7F02031C A2020180 */ sb $v0, 0x180($s0) +/* 054E50 7F020320 A20201AC */ sb $v0, 0x1ac($s0) +/* 054E54 7F020324 A2000004 */ sb $zero, 4($s0) +/* 054E58 7F020328 A2000005 */ sb $zero, 5($s0) +/* 054E5C 7F02032C A2000010 */ sb $zero, 0x10($s0) +/* 054E60 7F020330 A2000002 */ sb $zero, 2($s0) +/* 054E64 7F020334 A2000003 */ sb $zero, 3($s0) +/* 054E68 7F020338 A200000D */ sb $zero, 0xd($s0) +/* 054E6C 7F02033C A2020011 */ sb $v0, 0x11($s0) +/* 054E70 7F020340 E6140140 */ swc1 $f20, 0x140($s0) +/* 054E74 7F020344 E6140144 */ swc1 $f20, 0x144($s0) +/* 054E78 7F020348 E6140148 */ swc1 $f20, 0x148($s0) +/* 054E7C 7F02034C E614014C */ swc1 $f20, 0x14c($s0) +/* 054E80 7F020350 E6140150 */ swc1 $f20, 0x150($s0) +/* 054E84 7F020354 E6140154 */ swc1 $f20, 0x154($s0) +/* 054E88 7F020358 E6140158 */ swc1 $f20, 0x158($s0) +/* 054E8C 7F02035C E614015C */ swc1 $f20, 0x15c($s0) +/* 054E90 7F020360 A200000E */ sb $zero, 0xe($s0) +/* 054E94 7F020364 AE000160 */ sw $zero, 0x160($s0) +/* 054E98 7F020368 AE000164 */ sw $zero, 0x164($s0) +/* 054E9C 7F02036C AE0001D8 */ sw $zero, 0x1d8($s0) +/* 054EA0 7F020370 00A03025 */ move $a2, $a1 +/* 054EA4 7F020374 02402025 */ move $a0, $s2 +/* 054EA8 7F020378 260700AC */ addiu $a3, $s0, 0xac +/* 054EAC 7F02037C E6100024 */ swc1 $f16, 0x24($s0) +/* 054EB0 7F020380 AE080104 */ sw $t0, 0x104($s0) +/* 054EB4 7F020384 0FC07F04 */ jal sub_GAME_7F01FC10 +/* 054EB8 7F020388 E6120028 */ swc1 $f18, 0x28($s0) +/* 054EBC 7F02038C 0FC08365 */ jal sub_GAME_7F020D94 +/* 054EC0 7F020390 02002025 */ move $a0, $s0 +/* 054EC4 7F020394 8FBF002C */ lw $ra, 0x2c($sp) +/* 054EC8 7F020398 02201025 */ move $v0, $s1 +/* 054ECC 7F02039C 8FB10020 */ lw $s1, 0x20($sp) +/* 054ED0 7F0203A0 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 054ED4 7F0203A4 8FB0001C */ lw $s0, 0x1c($sp) +/* 054ED8 7F0203A8 8FB20024 */ lw $s2, 0x24($sp) +/* 054EDC 7F0203AC 8FB30028 */ lw $s3, 0x28($sp) +/* 054EE0 7F0203B0 03E00008 */ jr $ra +/* 054EE4 7F0203B4 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +#ifdef NONMATCHING +void replace_GUARDdata_with_actual_values(void) { + +} +#else +GLOBAL_ASM( +.text +glabel replace_GUARDdata_with_actual_values +/* 054EE8 7F0203B8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 054EEC 7F0203BC AFBF001C */ sw $ra, 0x1c($sp) +/* 054EF0 7F0203C0 AFA40020 */ sw $a0, 0x20($sp) +/* 054EF4 7F0203C4 AFA50024 */ sw $a1, 0x24($sp) +/* 054EF8 7F0203C8 AFA60028 */ sw $a2, 0x28($sp) +/* 054EFC 7F0203CC 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 054F00 7F0203D0 AFA7002C */ sw $a3, 0x2c($sp) +/* 054F04 7F0203D4 1040000A */ beqz $v0, .L7F020400 +/* 054F08 7F0203D8 00402025 */ move $a0, $v0 +/* 054F0C 7F0203DC 8FAE002C */ lw $t6, 0x2c($sp) +/* 054F10 7F0203E0 8FAF0030 */ lw $t7, 0x30($sp) +/* 054F14 7F0203E4 8FA50020 */ lw $a1, 0x20($sp) +/* 054F18 7F0203E8 8FA60024 */ lw $a2, 0x24($sp) +/* 054F1C 7F0203EC 8FA70028 */ lw $a3, 0x28($sp) +/* 054F20 7F0203F0 AFAE0010 */ sw $t6, 0x10($sp) +/* 054F24 7F0203F4 0FC0802F */ jal init_GUARDdata_with_set_values +/* 054F28 7F0203F8 AFAF0014 */ sw $t7, 0x14($sp) +/* 054F2C 7F0203FC 00402025 */ move $a0, $v0 +.L7F020400: +/* 054F30 7F020400 8FBF001C */ lw $ra, 0x1c($sp) +/* 054F34 7F020404 27BD0020 */ addiu $sp, $sp, 0x20 +/* 054F38 7F020408 00801025 */ move $v0, $a0 +/* 054F3C 7F02040C 03E00008 */ jr $ra +/* 054F40 7F020410 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void disable_sounds_attached_to_player_then_something(void) { + +} +#else +GLOBAL_ASM( +.text +glabel disable_sounds_attached_to_player_then_something +/* 054F44 7F020414 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 054F48 7F020418 AFBF0024 */ sw $ra, 0x24($sp) +/* 054F4C 7F02041C AFB20020 */ sw $s2, 0x20($sp) +/* 054F50 7F020420 AFB1001C */ sw $s1, 0x1c($sp) +/* 054F54 7F020424 AFB00018 */ sw $s0, 0x18($sp) +/* 054F58 7F020428 8C920004 */ lw $s2, 4($a0) +/* 054F5C 7F02042C 00808025 */ move $s0, $a0 +/* 054F60 7F020430 8E4E001C */ lw $t6, 0x1c($s2) +/* 054F64 7F020434 AFAE0028 */ sw $t6, 0x28($sp) +/* 054F68 7F020438 8E450168 */ lw $a1, 0x168($s2) +/* 054F6C 7F02043C 50A00008 */ beql $a1, $zero, .L7F020460 +/* 054F70 7F020440 8E44016C */ lw $a0, 0x16c($s2) +/* 054F74 7F020444 0C00237C */ jal sfxGetArg0Unk3F +/* 054F78 7F020448 00A02025 */ move $a0, $a1 +/* 054F7C 7F02044C 50400004 */ beql $v0, $zero, .L7F020460 +/* 054F80 7F020450 8E44016C */ lw $a0, 0x16c($s2) +/* 054F84 7F020454 0C002408 */ jal sfxDeactivate +/* 054F88 7F020458 8E440168 */ lw $a0, 0x168($s2) +/* 054F8C 7F02045C 8E44016C */ lw $a0, 0x16c($s2) +.L7F020460: +/* 054F90 7F020460 50800008 */ beql $a0, $zero, .L7F020484 +/* 054F94 7F020464 8E440170 */ lw $a0, 0x170($s2) +/* 054F98 7F020468 0C00237C */ jal sfxGetArg0Unk3F +/* 054F9C 7F02046C 00000000 */ nop +/* 054FA0 7F020470 50400004 */ beql $v0, $zero, .L7F020484 +/* 054FA4 7F020474 8E440170 */ lw $a0, 0x170($s2) +/* 054FA8 7F020478 0C002408 */ jal sfxDeactivate +/* 054FAC 7F02047C 8E44016C */ lw $a0, 0x16c($s2) +/* 054FB0 7F020480 8E440170 */ lw $a0, 0x170($s2) +.L7F020484: +/* 054FB4 7F020484 50800008 */ beql $a0, $zero, .L7F0204A8 +/* 054FB8 7F020488 8E440174 */ lw $a0, 0x174($s2) +/* 054FBC 7F02048C 0C00237C */ jal sfxGetArg0Unk3F +/* 054FC0 7F020490 00000000 */ nop +/* 054FC4 7F020494 50400004 */ beql $v0, $zero, .L7F0204A8 +/* 054FC8 7F020498 8E440174 */ lw $a0, 0x174($s2) +/* 054FCC 7F02049C 0C002408 */ jal sfxDeactivate +/* 054FD0 7F0204A0 8E440170 */ lw $a0, 0x170($s2) +/* 054FD4 7F0204A4 8E440174 */ lw $a0, 0x174($s2) +.L7F0204A8: +/* 054FD8 7F0204A8 10800007 */ beqz $a0, .L7F0204C8 +/* 054FDC 7F0204AC 00000000 */ nop +/* 054FE0 7F0204B0 0C00237C */ jal sfxGetArg0Unk3F +/* 054FE4 7F0204B4 00000000 */ nop +/* 054FE8 7F0204B8 10400003 */ beqz $v0, .L7F0204C8 +/* 054FEC 7F0204BC 00000000 */ nop +/* 054FF0 7F0204C0 0C002408 */ jal sfxDeactivate +/* 054FF4 7F0204C4 8E440174 */ lw $a0, 0x174($s2) +.L7F0204C8: +/* 054FF8 7F0204C8 0FC1437A */ jal sub_GAME_7F050DE8 +/* 054FFC 7F0204CC 8FA40028 */ lw $a0, 0x28($sp) +/* 055000 7F0204D0 0FC0F863 */ jal sub_GAME_7F03E18C +/* 055004 7F0204D4 02002025 */ move $a0, $s0 +/* 055008 7F0204D8 8E040020 */ lw $a0, 0x20($s0) +/* 05500C 7F0204DC 10800009 */ beqz $a0, .L7F020504 +/* 055010 7F0204E0 00000000 */ nop +.L7F0204E4: +/* 055014 7F0204E4 8C910004 */ lw $s1, 4($a0) +/* 055018 7F0204E8 0FC13011 */ jal sub_GAME_7F04C044 +/* 05501C 7F0204EC 8C900024 */ lw $s0, 0x24($a0) +/* 055020 7F0204F0 02202025 */ move $a0, $s1 +/* 055024 7F0204F4 0FC10409 */ jal sub_GAME_7F041024 +/* 055028 7F0204F8 24050001 */ li $a1, 1 +/* 05502C 7F0204FC 1600FFF9 */ bnez $s0, .L7F0204E4 +/* 055030 7F020500 02002025 */ move $a0, $s0 +.L7F020504: +/* 055034 7F020504 0FC1B0FE */ jal set_aircraft_obj_inst_scale_to_zero +/* 055038 7F020508 8FA40028 */ lw $a0, 0x28($sp) +/* 05503C 7F02050C 8E440020 */ lw $a0, 0x20($s2) +/* 055040 7F020510 240FFFFF */ li $t7, -1 +/* 055044 7F020514 AE40001C */ sw $zero, 0x1c($s2) +/* 055048 7F020518 10800003 */ beqz $a0, .L7F020528 +/* 05504C 7F02051C A64F0000 */ sh $t7, ($s2) +/* 055050 7F020520 0FC1AC92 */ jal sub_GAME_7F06B248 +/* 055054 7F020524 00000000 */ nop +.L7F020528: +/* 055058 7F020528 8FBF0024 */ lw $ra, 0x24($sp) +/* 05505C 7F02052C 8FB00018 */ lw $s0, 0x18($sp) +/* 055060 7F020530 8FB1001C */ lw $s1, 0x1c($sp) +/* 055064 7F020534 8FB20020 */ lw $s2, 0x20($sp) +/* 055068 7F020538 03E00008 */ jr $ra +/* 05506C 7F02053C 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +#ifdef NONMATCHING +void animation_speed_related(void) { + +} +#else +GLOBAL_ASM( +.text +glabel animation_speed_related +/* 055070 7F020540 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 055074 7F020544 AFB30028 */ sw $s3, 0x28($sp) +/* 055078 7F020548 3C138003 */ lui $s3, %hi(animation_rate) +/* 05507C 7F02054C 2673C900 */ addiu $s3, %lo(animation_rate) # addiu $s3, $s3, -0x3700 +/* 055080 7F020550 E66C0000 */ swc1 $f12, ($s3) +/* 055084 7F020554 3C028003 */ lui $v0, %hi(num_guards) +/* 055088 7F020558 8C42CC68 */ lw $v0, %lo(num_guards)($v0) +/* 05508C 7F02055C AFB10020 */ sw $s1, 0x20($sp) +/* 055090 7F020560 AFBF002C */ sw $ra, 0x2c($sp) +/* 055094 7F020564 AFB20024 */ sw $s2, 0x24($sp) +/* 055098 7F020568 AFB0001C */ sw $s0, 0x1c($sp) +/* 05509C 7F02056C F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0550A0 7F020570 18400014 */ blez $v0, .L7F0205C4 +/* 0550A4 7F020574 00008825 */ move $s1, $zero +/* 0550A8 7F020578 3C014416 */ li $at, 0x44160000 # 600.000000 +/* 0550AC 7F02057C 3C128003 */ lui $s2, %hi(ptr_guard_data) +/* 0550B0 7F020580 4481A000 */ mtc1 $at, $f20 +/* 0550B4 7F020584 2652CC64 */ addiu $s2, %lo(ptr_guard_data) # addiu $s2, $s2, -0x339c +/* 0550B8 7F020588 00008025 */ move $s0, $zero +.L7F02058C: +/* 0550BC 7F02058C 8E4E0000 */ lw $t6, ($s2) +/* 0550C0 7F020590 01D07821 */ addu $t7, $t6, $s0 +/* 0550C4 7F020594 8DE4001C */ lw $a0, 0x1c($t7) +/* 0550C8 7F020598 50800007 */ beql $a0, $zero, .L7F0205B8 +/* 0550CC 7F02059C 26310001 */ addiu $s1, $s1, 1 +/* 0550D0 7F0205A0 4406A000 */ mfc1 $a2, $f20 +/* 0550D4 7F0205A4 0FC1BFC6 */ jal sub_GAME_7F06FF18 +/* 0550D8 7F0205A8 8E650000 */ lw $a1, ($s3) +/* 0550DC 7F0205AC 3C028003 */ lui $v0, %hi(num_guards) +/* 0550E0 7F0205B0 8C42CC68 */ lw $v0, %lo(num_guards)($v0) +/* 0550E4 7F0205B4 26310001 */ addiu $s1, $s1, 1 +.L7F0205B8: +/* 0550E8 7F0205B8 0222082A */ slt $at, $s1, $v0 +/* 0550EC 7F0205BC 1420FFF3 */ bnez $at, .L7F02058C +/* 0550F0 7F0205C0 261001DC */ addiu $s0, $s0, 0x1dc +.L7F0205C4: +/* 0550F4 7F0205C4 8FBF002C */ lw $ra, 0x2c($sp) +/* 0550F8 7F0205C8 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0550FC 7F0205CC 8FB0001C */ lw $s0, 0x1c($sp) +/* 055100 7F0205D0 8FB10020 */ lw $s1, 0x20($sp) +/* 055104 7F0205D4 8FB20024 */ lw $s2, 0x24($sp) +/* 055108 7F0205D8 8FB30028 */ lw $s3, 0x28($sp) +/* 05510C 7F0205DC 03E00008 */ jr $ra +/* 055110 7F0205E0 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +f32 get_animation_rate(void) { + return animation_rate; +} + + + +#ifdef NONMATCHING +void sub_GAME_7F0205F0(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F0205F0 +/* 055120 7F0205F0 8082000E */ lb $v0, 0xe($a0) +/* 055124 7F0205F4 28410002 */ slti $at, $v0, 2 +/* 055128 7F0205F8 5420002D */ bnezl $at, .L7F0206B0 +/* 05512C 7F0205FC C4920150 */ lwc1 $f18, 0x150($a0) +/* 055130 7F020600 44823000 */ mtc1 $v0, $f6 +/* 055134 7F020604 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 055138 7F020608 44811000 */ mtc1 $at, $f2 +/* 05513C 7F02060C 46803220 */ cvt.s.w $f8, $f6 +/* 055140 7F020610 3C018005 */ lui $at, %hi(global_timer_delta) +/* 055144 7F020614 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 055148 7F020618 46082003 */ div.s $f0, $f4, $f8 +/* 05514C 7F02061C 4600103C */ c.lt.s $f2, $f0 +/* 055150 7F020620 00000000 */ nop +/* 055154 7F020624 45020003 */ bc1fl .L7F020634 +/* 055158 7F020628 C4820140 */ lwc1 $f2, 0x140($a0) +/* 05515C 7F02062C 46001006 */ mov.s $f0, $f2 +/* 055160 7F020630 C4820140 */ lwc1 $f2, 0x140($a0) +.L7F020634: +/* 055164 7F020634 C48A0150 */ lwc1 $f10, 0x150($a0) +/* 055168 7F020638 C48C0144 */ lwc1 $f12, 0x144($a0) +/* 05516C 7F02063C C4880154 */ lwc1 $f8, 0x154($a0) +/* 055170 7F020640 46025481 */ sub.s $f18, $f10, $f2 +/* 055174 7F020644 C48E0148 */ lwc1 $f14, 0x148($a0) +/* 055178 7F020648 C490014C */ lwc1 $f16, 0x14c($a0) +/* 05517C 7F02064C 460C4281 */ sub.s $f10, $f8, $f12 +/* 055180 7F020650 46009182 */ mul.s $f6, $f18, $f0 +/* 055184 7F020654 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 055188 7F020658 808E000E */ lb $t6, 0xe($a0) +/* 05518C 7F02065C 46005482 */ mul.s $f18, $f10, $f0 +/* 055190 7F020660 46061100 */ add.s $f4, $f2, $f6 +/* 055194 7F020664 46126180 */ add.s $f6, $f12, $f18 +/* 055198 7F020668 E4840140 */ swc1 $f4, 0x140($a0) +/* 05519C 7F02066C C4840158 */ lwc1 $f4, 0x158($a0) +/* 0551A0 7F020670 E4860144 */ swc1 $f6, 0x144($a0) +/* 0551A4 7F020674 460E2201 */ sub.s $f8, $f4, $f14 +/* 0551A8 7F020678 C486015C */ lwc1 $f6, 0x15c($a0) +/* 0551AC 7F02067C 46103101 */ sub.s $f4, $f6, $f16 +/* 0551B0 7F020680 46004282 */ mul.s $f10, $f8, $f0 +/* 0551B4 7F020684 00000000 */ nop +/* 0551B8 7F020688 46002202 */ mul.s $f8, $f4, $f0 +/* 0551BC 7F02068C 460A7480 */ add.s $f18, $f14, $f10 +/* 0551C0 7F020690 46088280 */ add.s $f10, $f16, $f8 +/* 0551C4 7F020694 E4920148 */ swc1 $f18, 0x148($a0) +/* 0551C8 7F020698 E48A014C */ swc1 $f10, 0x14c($a0) +/* 0551CC 7F02069C 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 0551D0 7F0206A0 01CFC023 */ subu $t8, $t6, $t7 +/* 0551D4 7F0206A4 03E00008 */ jr $ra +/* 0551D8 7F0206A8 A098000E */ sb $t8, 0xe($a0) + +/* 0551DC 7F0206AC C4920150 */ lwc1 $f18, 0x150($a0) +.L7F0206B0: +/* 0551E0 7F0206B0 C4860154 */ lwc1 $f6, 0x154($a0) +/* 0551E4 7F0206B4 C4840158 */ lwc1 $f4, 0x158($a0) +/* 0551E8 7F0206B8 C488015C */ lwc1 $f8, 0x15c($a0) +/* 0551EC 7F0206BC E4920140 */ swc1 $f18, 0x140($a0) +/* 0551F0 7F0206C0 E4860144 */ swc1 $f6, 0x144($a0) +/* 0551F4 7F0206C4 E4840148 */ swc1 $f4, 0x148($a0) +/* 0551F8 7F0206C8 E488014C */ swc1 $f8, 0x14c($a0) +/* 0551FC 7F0206CC 03E00008 */ jr $ra +/* 055200 7F0206D0 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F0205F0 +/* 055120 7F0205F0 8082000E */ lb $v0, 0xe($a0) +/* 055124 7F0205F4 28410002 */ slti $at, $v0, 2 +/* 055128 7F0205F8 5420002D */ bnezl $at, .L7F0206B0 +/* 05512C 7F0205FC C4920150 */ lwc1 $f18, 0x150($a0) +/* 055130 7F020600 44823000 */ mtc1 $v0, $f6 +/* 055134 7F020604 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 055138 7F020608 44811000 */ mtc1 $at, $f2 +/* 05513C 7F02060C 46803220 */ cvt.s.w $f8, $f6 +/* 055140 7F020610 3C018005 */ lui $at, %hi(jp_global_timer_delta) +/* 055144 7F020614 C4248378 */ lwc1 $f4, %lo(jp_global_timer_delta)($at) +/* 055148 7F020618 46082003 */ div.s $f0, $f4, $f8 +/* 05514C 7F02061C 4600103C */ c.lt.s $f2, $f0 +/* 055150 7F020620 00000000 */ nop +/* 055154 7F020624 45020003 */ bc1fl .L7F020634 +/* 055158 7F020628 C4820140 */ lwc1 $f2, 0x140($a0) +/* 05515C 7F02062C 46001006 */ mov.s $f0, $f2 +/* 055160 7F020630 C4820140 */ lwc1 $f2, 0x140($a0) +.L7F020634: +/* 055164 7F020634 C48A0150 */ lwc1 $f10, 0x150($a0) +/* 055168 7F020638 C48C0144 */ lwc1 $f12, 0x144($a0) +/* 05516C 7F02063C C4880154 */ lwc1 $f8, 0x154($a0) +/* 055170 7F020640 46025481 */ sub.s $f18, $f10, $f2 +/* 055174 7F020644 C48E0148 */ lwc1 $f14, 0x148($a0) +/* 055178 7F020648 C490014C */ lwc1 $f16, 0x14c($a0) +/* 05517C 7F02064C 460C4281 */ sub.s $f10, $f8, $f12 +/* 055180 7F020650 46009182 */ mul.s $f6, $f18, $f0 +/* 055184 7F020654 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 055188 7F020658 808E000E */ lb $t6, 0xe($a0) +/* 05518C 7F02065C 46005482 */ mul.s $f18, $f10, $f0 +/* 055190 7F020660 46061100 */ add.s $f4, $f2, $f6 +/* 055194 7F020664 46126180 */ add.s $f6, $f12, $f18 +/* 055198 7F020668 E4840140 */ swc1 $f4, 0x140($a0) +/* 05519C 7F02066C C4840158 */ lwc1 $f4, 0x158($a0) +/* 0551A0 7F020670 E4860144 */ swc1 $f6, 0x144($a0) +/* 0551A4 7F020674 460E2201 */ sub.s $f8, $f4, $f14 +/* 0551A8 7F020678 C486015C */ lwc1 $f6, 0x15c($a0) +/* 0551AC 7F02067C 46103101 */ sub.s $f4, $f6, $f16 +/* 0551B0 7F020680 46004282 */ mul.s $f10, $f8, $f0 +/* 0551B4 7F020684 00000000 */ nop +/* 0551B8 7F020688 46002202 */ mul.s $f8, $f4, $f0 +/* 0551BC 7F02068C 460A7480 */ add.s $f18, $f14, $f10 +/* 0551C0 7F020690 46088280 */ add.s $f10, $f16, $f8 +/* 0551C4 7F020694 E4920148 */ swc1 $f18, 0x148($a0) +/* 0551C8 7F020698 E48A014C */ swc1 $f10, 0x14c($a0) +/* 0551CC 7F02069C 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 0551D0 7F0206A0 01CFC023 */ subu $t8, $t6, $t7 +/* 0551D4 7F0206A4 03E00008 */ jr $ra +/* 0551D8 7F0206A8 A098000E */ sb $t8, 0xe($a0) + +/* 0551DC 7F0206AC C4920150 */ lwc1 $f18, 0x150($a0) +.L7F0206B0: +/* 0551E0 7F0206B0 C4860154 */ lwc1 $f6, 0x154($a0) +/* 0551E4 7F0206B4 C4840158 */ lwc1 $f4, 0x158($a0) +/* 0551E8 7F0206B8 C488015C */ lwc1 $f8, 0x15c($a0) +/* 0551EC 7F0206BC E4920140 */ swc1 $f18, 0x140($a0) +/* 0551F0 7F0206C0 E4860144 */ swc1 $f6, 0x144($a0) +/* 0551F4 7F0206C4 E4840148 */ swc1 $f4, 0x148($a0) +/* 0551F8 7F0206C8 E488014C */ swc1 $f8, 0x14c($a0) +/* 0551FC 7F0206CC 03E00008 */ jr $ra +/* 055200 7F0206D0 00000000 */ nop +) +#endif +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0206D4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0206D4 +/* 055204 7F0206D4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 055208 7F0206D8 AFBF0014 */ sw $ra, 0x14($sp) +/* 05520C 7F0206DC 808E0011 */ lb $t6, 0x11($a0) +/* 055210 7F0206E0 05C30029 */ bgezl $t6, .L7F020788 +/* 055214 7F0206E4 8FBF0014 */ lw $ra, 0x14($sp) +/* 055218 7F0206E8 94980012 */ lhu $t8, 0x12($a0) +/* 05521C 7F0206EC 240F0001 */ li $t7, 1 +/* 055220 7F0206F0 A08F0011 */ sb $t7, 0x11($a0) +/* 055224 7F0206F4 33190FFF */ andi $t9, $t8, 0xfff +/* 055228 7F0206F8 A4990012 */ sh $t9, 0x12($a0) +/* 05522C 7F0206FC 0C002914 */ jal get_random_value +/* 055230 7F020700 AFA40018 */ sw $a0, 0x18($sp) +/* 055234 7F020704 24010003 */ li $at, 3 +/* 055238 7F020708 0041001B */ divu $zero, $v0, $at +/* 05523C 7F02070C 00001810 */ mfhi $v1 +/* 055240 7F020710 8FA40018 */ lw $a0, 0x18($sp) +/* 055244 7F020714 14600005 */ bnez $v1, .L7F02072C +/* 055248 7F020718 24010001 */ li $at, 1 +/* 05524C 7F02071C 94880012 */ lhu $t0, 0x12($a0) +/* 055250 7F020720 35091000 */ ori $t1, $t0, 0x1000 +/* 055254 7F020724 10000006 */ b .L7F020740 +/* 055258 7F020728 A4890012 */ sh $t1, 0x12($a0) +.L7F02072C: +/* 05525C 7F02072C 14610004 */ bne $v1, $at, .L7F020740 +/* 055260 7F020730 00000000 */ nop +/* 055264 7F020734 948A0012 */ lhu $t2, 0x12($a0) +/* 055268 7F020738 354B2000 */ ori $t3, $t2, 0x2000 +/* 05526C 7F02073C A48B0012 */ sh $t3, 0x12($a0) +.L7F020740: +/* 055270 7F020740 0C002914 */ jal get_random_value +/* 055274 7F020744 AFA40018 */ sw $a0, 0x18($sp) +/* 055278 7F020748 24010003 */ li $at, 3 +/* 05527C 7F02074C 0041001B */ divu $zero, $v0, $at +/* 055280 7F020750 00001810 */ mfhi $v1 +/* 055284 7F020754 8FA40018 */ lw $a0, 0x18($sp) +/* 055288 7F020758 14600005 */ bnez $v1, .L7F020770 +/* 05528C 7F02075C 24010001 */ li $at, 1 +/* 055290 7F020760 948C0012 */ lhu $t4, 0x12($a0) +/* 055294 7F020764 358D4000 */ ori $t5, $t4, 0x4000 +/* 055298 7F020768 10000006 */ b .L7F020784 +/* 05529C 7F02076C A48D0012 */ sh $t5, 0x12($a0) +.L7F020770: +/* 0552A0 7F020770 54610005 */ bnel $v1, $at, .L7F020788 +/* 0552A4 7F020774 8FBF0014 */ lw $ra, 0x14($sp) +/* 0552A8 7F020778 948E0012 */ lhu $t6, 0x12($a0) +/* 0552AC 7F02077C 35CF8000 */ ori $t7, $t6, 0x8000 +/* 0552B0 7F020780 A48F0012 */ sh $t7, 0x12($a0) +.L7F020784: +/* 0552B4 7F020784 8FBF0014 */ lw $ra, 0x14($sp) +.L7F020788: +/* 0552B8 7F020788 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0552BC 7F02078C 03E00008 */ jr $ra +/* 0552C0 7F020790 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F020794(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F020794 +/* 0552C4 7F020794 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0552C8 7F020798 AFBF0014 */ sw $ra, 0x14($sp) +/* 0552CC 7F02079C 808E0011 */ lb $t6, 0x11($a0) +/* 0552D0 7F0207A0 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0552D4 7F0207A4 44810000 */ mtc1 $at, $f0 +/* 0552D8 7F0207A8 448E2000 */ mtc1 $t6, $f4 +/* 0552DC 7F0207AC 3C018005 */ lui $at, %hi(D_80051D2C) +/* 0552E0 7F0207B0 468020A0 */ cvt.s.w $f2, $f4 +/* 0552E4 7F0207B4 4600103C */ c.lt.s $f2, $f0 +/* 0552E8 7F0207B8 00000000 */ nop +/* 0552EC 7F0207BC 4502000D */ bc1fl .L7F0207F4 +/* 0552F0 7F0207C0 46001481 */ sub.s $f18, $f2, $f0 +/* 0552F4 7F0207C4 3C018005 */ lui $at, %hi(D_80051D28) +/* 0552F8 7F0207C8 C4261D28 */ lwc1 $f6, %lo(D_80051D28)($at) +/* 0552FC 7F0207CC 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 055300 7F0207D0 44815000 */ mtc1 $at, $f10 +/* 055304 7F0207D4 46061202 */ mul.s $f8, $f2, $f6 +/* 055308 7F0207D8 00000000 */ nop +/* 05530C 7F0207DC 460A4402 */ mul.s $f16, $f8, $f10 +/* 055310 7F0207E0 0FC15FAB */ jal sinf +/* 055314 7F0207E4 46008303 */ div.s $f12, $f16, $f0 +/* 055318 7F0207E8 1000000F */ b .L7F020828 +/* 05531C 7F0207EC 46000086 */ mov.s $f2, $f0 +/* 055320 7F0207F0 46001481 */ sub.s $f18, $f2, $f0 +.L7F0207F4: +/* 055324 7F0207F4 C4241D2C */ lwc1 $f4, %lo(D_80051D2C)($at) +/* 055328 7F0207F8 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 05532C 7F0207FC 44814000 */ mtc1 $at, $f8 +/* 055330 7F020800 46049182 */ mul.s $f6, $f18, $f4 +/* 055334 7F020804 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 055338 7F020808 44818000 */ mtc1 $at, $f16 +/* 05533C 7F02080C 46083282 */ mul.s $f10, $f6, $f8 +/* 055340 7F020810 0FC15FAB */ jal sinf +/* 055344 7F020814 46105303 */ div.s $f12, $f10, $f16 +/* 055348 7F020818 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05534C 7F02081C 44819000 */ mtc1 $at, $f18 +/* 055350 7F020820 00000000 */ nop +/* 055354 7F020824 46009081 */ sub.s $f2, $f18, $f0 +.L7F020828: +/* 055358 7F020828 8FBF0014 */ lw $ra, 0x14($sp) +/* 05535C 7F02082C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 055360 7F020830 46001006 */ mov.s $f0, $f2 +/* 055364 7F020834 03E00008 */ jr $ra +/* 055368 7F020838 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +#ifdef NONMATCHING +void jp_only_7F0209EC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel jp_only_7F0209EC +/* 05555C 7F0209EC 3C0E8005 */ lui $t6, %hi(j_text_trigger) # $t6, 0x8005 +/* 055560 7F0209F0 8DCE8500 */ lw $t6, %lo(j_text_trigger)($t6) +/* 055564 7F0209F4 24010006 */ li $at, 6 +/* 055568 7F0209F8 15C00003 */ bnez $t6, .L7F020A08 +/* 05556C 7F0209FC 00000000 */ nop +/* 055570 7F020A00 03E00008 */ jr $ra +/* 055574 7F020A04 24020001 */ li $v0, 1 + +.L7F020A08: +/* 055578 7F020A08 10810026 */ beq $a0, $at, .L7F020AA4 +/* 05557C 7F020A0C 00001025 */ move $v0, $zero +/* 055580 7F020A10 24010007 */ li $at, 7 +/* 055584 7F020A14 10810023 */ beq $a0, $at, .L7F020AA4 +/* 055588 7F020A18 24010008 */ li $at, 8 +/* 05558C 7F020A1C 10810021 */ beq $a0, $at, .L7F020AA4 +/* 055590 7F020A20 24010009 */ li $at, 9 +/* 055594 7F020A24 1081001F */ beq $a0, $at, .L7F020AA4 +/* 055598 7F020A28 2401000A */ li $at, 10 +/* 05559C 7F020A2C 1081001D */ beq $a0, $at, .L7F020AA4 +/* 0555A0 7F020A30 2401000B */ li $at, 11 +/* 0555A4 7F020A34 1081001B */ beq $a0, $at, .L7F020AA4 +/* 0555A8 7F020A38 2401000C */ li $at, 12 +/* 0555AC 7F020A3C 10810019 */ beq $a0, $at, .L7F020AA4 +/* 0555B0 7F020A40 2401000D */ li $at, 13 +/* 0555B4 7F020A44 10810017 */ beq $a0, $at, .L7F020AA4 +/* 0555B8 7F020A48 2401000E */ li $at, 14 +/* 0555BC 7F020A4C 10810015 */ beq $a0, $at, .L7F020AA4 +/* 0555C0 7F020A50 2401000F */ li $at, 15 +/* 0555C4 7F020A54 10810013 */ beq $a0, $at, .L7F020AA4 +/* 0555C8 7F020A58 24010010 */ li $at, 16 +/* 0555CC 7F020A5C 10810011 */ beq $a0, $at, .L7F020AA4 +/* 0555D0 7F020A60 2401004F */ li $at, 79 +/* 0555D4 7F020A64 1081000F */ beq $a0, $at, .L7F020AA4 +/* 0555D8 7F020A68 2401004A */ li $at, 74 +/* 0555DC 7F020A6C 10A1000D */ beq $a1, $at, .L7F020AA4 +/* 0555E0 7F020A70 2401004B */ li $at, 75 +/* 0555E4 7F020A74 10A1000B */ beq $a1, $at, .L7F020AA4 +/* 0555E8 7F020A78 2401004C */ li $at, 76 +/* 0555EC 7F020A7C 10A10009 */ beq $a1, $at, .L7F020AA4 +/* 0555F0 7F020A80 2401004D */ li $at, 77 +/* 0555F4 7F020A84 10A10007 */ beq $a1, $at, .L7F020AA4 +/* 0555F8 7F020A88 2401004E */ li $at, 78 +/* 0555FC 7F020A8C 10A10005 */ beq $a1, $at, .L7F020AA4 +/* 055600 7F020A90 24010045 */ li $at, 69 +/* 055604 7F020A94 10A10003 */ beq $a1, $at, .L7F020AA4 +/* 055608 7F020A98 00000000 */ nop +/* 05560C 7F020A9C 03E00008 */ jr $ra +/* 055610 7F020AA0 24020001 */ li $v0, 1 + +.L7F020AA4: +/* 055614 7F020AA4 03E00008 */ jr $ra +/* 055618 7F020AA8 00000000 */ nop +) +#endif +#endif + +#ifdef NONMATCHING +void sub_GAME_7F02083C(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F02083C +/* 05536C 7F02083C 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 055370 7F020840 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 055374 7F020844 44812000 */ mtc1 $at, $f4 +/* 055378 7F020848 AFBF0014 */ sw $ra, 0x14($sp) +/* 05537C 7F02084C 00803025 */ move $a2, $a0 +/* 055380 7F020850 AFA5009C */ sw $a1, 0x9c($sp) +/* 055384 7F020854 AFA60098 */ sw $a2, 0x98($sp) +/* 055388 7F020858 2404000C */ li $a0, 12 +/* 05538C 7F02085C 0FC249EF */ jal cheatCheckIfOn +/* 055390 7F020860 E7A40094 */ swc1 $f4, 0x94($sp) +/* 055394 7F020864 1040000E */ beqz $v0, .L7F0208A0 +/* 055398 7F020868 8FA60098 */ lw $a2, 0x98($sp) +/* 05539C 7F02086C 14C00005 */ bnez $a2, .L7F020884 +/* 0553A0 7F020870 24030002 */ li $v1, 2 +/* 0553A4 7F020874 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0553A8 7F020878 44813000 */ mtc1 $at, $f6 +/* 0553AC 7F02087C 10000008 */ b .L7F0208A0 +/* 0553B0 7F020880 E7A60094 */ swc1 $f6, 0x94($sp) +.L7F020884: +/* 0553B4 7F020884 10C30002 */ beq $a2, $v1, .L7F020890 +/* 0553B8 7F020888 24050003 */ li $a1, 3 +/* 0553BC 7F02088C 14C50004 */ bne $a2, $a1, .L7F0208A0 +.L7F020890: +/* 0553C0 7F020890 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 0553C4 7F020894 44814000 */ mtc1 $at, $f8 +/* 0553C8 7F020898 00000000 */ nop +/* 0553CC 7F02089C E7A80094 */ swc1 $f8, 0x94($sp) +.L7F0208A0: +/* 0553D0 7F0208A0 24030002 */ li $v1, 2 +/* 0553D4 7F0208A4 10C30007 */ beq $a2, $v1, .L7F0208C4 +/* 0553D8 7F0208A8 24050003 */ li $a1, 3 +/* 0553DC 7F0208AC 10C50005 */ beq $a2, $a1, .L7F0208C4 +/* 0553E0 7F0208B0 24070001 */ li $a3, 1 +/* 0553E4 7F0208B4 50C70004 */ beql $a2, $a3, .L7F0208C8 +/* 0553E8 7F0208B8 44809000 */ mtc1 $zero, $f18 +/* 0553EC 7F0208BC 54C00132 */ bnezl $a2, .L7F020D88 +/* 0553F0 7F0208C0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0208C4: +/* 0553F4 7F0208C4 44809000 */ mtc1 $zero, $f18 +.L7F0208C8: +/* 0553F8 7F0208C8 24070001 */ li $a3, 1 +/* 0553FC 7F0208CC 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80069B60) +/* 055400 7F0208D0 46009386 */ mov.s $f14, $f18 +/* 055404 7F0208D4 46009306 */ mov.s $f12, $f18 +/* 055408 7F0208D8 14C50004 */ bne $a2, $a1, .L7F0208EC +/* 05540C 7F0208DC E7B20088 */ swc1 $f18, 0x88($sp) +/* 055410 7F0208E0 8DCE9B60 */ lw $t6, %lo(dword_CODE_bss_80069B60)($t6) +/* 055414 7F0208E4 10000043 */ b .L7F0209F4 +/* 055418 7F0208E8 C5CE0144 */ lwc1 $f14, 0x144($t6) +.L7F0208EC: +/* 05541C 7F0208EC 14C30004 */ bne $a2, $v1, .L7F020900 +/* 055420 7F0208F0 3C0F8007 */ lui $t7, %hi(dword_CODE_bss_80069B60) +/* 055424 7F0208F4 8DEF9B60 */ lw $t7, %lo(dword_CODE_bss_80069B60)($t7) +/* 055428 7F0208F8 1000003E */ b .L7F0209F4 +/* 05542C 7F0208FC C5EE0140 */ lwc1 $f14, 0x140($t7) +.L7F020900: +/* 055430 7F020900 14C7001C */ bne $a2, $a3, .L7F020974 +/* 055434 7F020904 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069B60) +/* 055438 7F020908 8C849B60 */ lw $a0, %lo(dword_CODE_bss_80069B60)($a0) +/* 05543C 7F02090C 3C018005 */ lui $at, %hi(D_80051D30) +/* 055440 7F020910 94980012 */ lhu $t8, 0x12($a0) +/* 055444 7F020914 C48E0148 */ lwc1 $f14, 0x148($a0) +/* 055448 7F020918 33190400 */ andi $t9, $t8, 0x400 +/* 05544C 7F02091C 13200013 */ beqz $t9, .L7F02096C +/* 055450 7F020920 00000000 */ nop +/* 055454 7F020924 C4201D30 */ lwc1 $f0, %lo(D_80051D30)($at) +/* 055458 7F020928 3C018005 */ lui $at, %hi(D_80051D34) +/* 05545C 7F02092C 460E003C */ c.lt.s $f0, $f14 +/* 055460 7F020930 00000000 */ nop +/* 055464 7F020934 45000003 */ bc1f .L7F020944 +/* 055468 7F020938 00000000 */ nop +/* 05546C 7F02093C 1000000B */ b .L7F02096C +/* 055470 7F020940 46007381 */ sub.s $f14, $f14, $f0 +.L7F020944: +/* 055474 7F020944 C4201D34 */ lwc1 $f0, %lo(D_80051D34)($at) +/* 055478 7F020948 3C018005 */ lui $at, %hi(D_80051D38) +/* 05547C 7F02094C 4600703C */ c.lt.s $f14, $f0 +/* 055480 7F020950 00000000 */ nop +/* 055484 7F020954 45020005 */ bc1fl .L7F02096C +/* 055488 7F020958 46009386 */ mov.s $f14, $f18 +/* 05548C 7F02095C C42A1D38 */ lwc1 $f10, %lo(D_80051D38)($at) +/* 055490 7F020960 10000002 */ b .L7F02096C +/* 055494 7F020964 460A7380 */ add.s $f14, $f14, $f10 +/* 055498 7F020968 46009386 */ mov.s $f14, $f18 +.L7F02096C: +/* 05549C 7F02096C 10000021 */ b .L7F0209F4 +/* 0554A0 7F020970 C48C014C */ lwc1 $f12, 0x14c($a0) +.L7F020974: +/* 0554A4 7F020974 14C0001F */ bnez $a2, .L7F0209F4 +/* 0554A8 7F020978 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069B60) +/* 0554AC 7F02097C 8C849B60 */ lw $a0, %lo(dword_CODE_bss_80069B60)($a0) +/* 0554B0 7F020980 94820012 */ lhu $v0, 0x12($a0) +/* 0554B4 7F020984 30480400 */ andi $t0, $v0, 0x400 +/* 0554B8 7F020988 51000014 */ beql $t0, $zero, .L7F0209DC +/* 0554BC 7F02098C 8C89001C */ lw $t1, 0x1c($a0) +/* 0554C0 7F020990 11000018 */ beqz $t0, .L7F0209F4 +/* 0554C4 7F020994 C48E0148 */ lwc1 $f14, 0x148($a0) +/* 0554C8 7F020998 3C018005 */ lui $at, %hi(D_80051D3C) +/* 0554CC 7F02099C C4201D3C */ lwc1 $f0, %lo(D_80051D3C)($at) +/* 0554D0 7F0209A0 3C018005 */ lui $at, %hi(D_80051D40) +/* 0554D4 7F0209A4 460E003C */ c.lt.s $f0, $f14 +/* 0554D8 7F0209A8 00000000 */ nop +/* 0554DC 7F0209AC 45000003 */ bc1f .L7F0209BC +/* 0554E0 7F0209B0 00000000 */ nop +/* 0554E4 7F0209B4 1000000F */ b .L7F0209F4 +/* 0554E8 7F0209B8 46000386 */ mov.s $f14, $f0 +.L7F0209BC: +/* 0554EC 7F0209BC C4201D40 */ lwc1 $f0, %lo(D_80051D40)($at) +/* 0554F0 7F0209C0 4600703C */ c.lt.s $f14, $f0 +/* 0554F4 7F0209C4 00000000 */ nop +/* 0554F8 7F0209C8 4500000A */ bc1f .L7F0209F4 +/* 0554FC 7F0209CC 00000000 */ nop +/* 055500 7F0209D0 10000008 */ b .L7F0209F4 +/* 055504 7F0209D4 46000386 */ mov.s $f14, $f0 +/* 055508 7F0209D8 8C89001C */ lw $t1, 0x1c($a0) +.L7F0209DC: +/* 05550C 7F0209DC 812A0024 */ lb $t2, 0x24($t1) +/* 055510 7F0209E0 51400004 */ beql $t2, $zero, .L7F0209F4 +/* 055514 7F0209E4 C48E0144 */ lwc1 $f14, 0x144($a0) +/* 055518 7F0209E8 10000002 */ b .L7F0209F4 +/* 05551C 7F0209EC C48E0140 */ lwc1 $f14, 0x140($a0) +/* 055520 7F0209F0 C48E0144 */ lwc1 $f14, 0x144($a0) +.L7F0209F4: +/* 055524 7F0209F4 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069B60) +/* 055528 7F0209F8 8C849B60 */ lw $a0, %lo(dword_CODE_bss_80069B60)($a0) +/* 05552C 7F0209FC 808B0011 */ lb $t3, 0x11($a0) +/* 055530 7F020A00 05620055 */ bltzl $t3, .L7F020B58 +/* 055534 7F020A04 46127032 */ c.eq.s $f14, $f18 +/* 055538 7F020A08 50C50004 */ beql $a2, $a1, .L7F020A1C +/* 05553C 7F020A0C E7AC008C */ swc1 $f12, 0x8c($sp) +/* 055540 7F020A10 14C3001D */ bne $a2, $v1, .L7F020A88 +/* 055544 7F020A14 00000000 */ nop +/* 055548 7F020A18 E7AC008C */ swc1 $f12, 0x8c($sp) +.L7F020A1C: +/* 05554C 7F020A1C 0FC081E5 */ jal sub_GAME_7F020794 +/* 055550 7F020A20 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 055554 7F020A24 3C018005 */ lui $at, %hi(D_80051D44) +/* 055558 7F020A28 C4241D44 */ lwc1 $f4, %lo(D_80051D44)($at) +/* 05555C 7F020A2C 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 055560 7F020A30 44814000 */ mtc1 $at, $f8 +/* 055564 7F020A34 46040182 */ mul.s $f6, $f0, $f4 +/* 055568 7F020A38 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 05556C 7F020A3C 44812000 */ mtc1 $at, $f4 +/* 055570 7F020A40 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069B60) +/* 055574 7F020A44 8C849B60 */ lw $a0, %lo(dword_CODE_bss_80069B60)($a0) +/* 055578 7F020A48 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 05557C 7F020A4C 44809000 */ mtc1 $zero, $f18 +/* 055580 7F020A50 46083282 */ mul.s $f10, $f6, $f8 +/* 055584 7F020A54 94820012 */ lhu $v0, 0x12($a0) +/* 055588 7F020A58 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 05558C 7F020A5C 304C1000 */ andi $t4, $v0, 0x1000 +/* 055590 7F020A60 304D2000 */ andi $t5, $v0, 0x2000 +/* 055594 7F020A64 46045083 */ div.s $f2, $f10, $f4 +/* 055598 7F020A68 11800003 */ beqz $t4, .L7F020A78 +/* 05559C 7F020A6C 46027381 */ sub.s $f14, $f14, $f2 +/* 0555A0 7F020A70 10000038 */ b .L7F020B54 +/* 0555A4 7F020A74 46026301 */ sub.s $f12, $f12, $f2 +.L7F020A78: +/* 0555A8 7F020A78 51A00037 */ beql $t5, $zero, .L7F020B58 +/* 0555AC 7F020A7C 46127032 */ c.eq.s $f14, $f18 +/* 0555B0 7F020A80 10000034 */ b .L7F020B54 +/* 0555B4 7F020A84 46026300 */ add.s $f12, $f12, $f2 +.L7F020A88: +/* 0555B8 7F020A88 54C70033 */ bnel $a2, $a3, .L7F020B58 +/* 0555BC 7F020A8C 46127032 */ c.eq.s $f14, $f18 +/* 0555C0 7F020A90 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 0555C4 7F020A94 0FC081E5 */ jal sub_GAME_7F020794 +/* 0555C8 7F020A98 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 0555CC 7F020A9C 3C018005 */ lui $at, %hi(D_80051D48) +/* 0555D0 7F020AA0 C4261D48 */ lwc1 $f6, %lo(D_80051D48)($at) +/* 0555D4 7F020AA4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0555D8 7F020AA8 44814000 */ mtc1 $at, $f8 +/* 0555DC 7F020AAC 46060402 */ mul.s $f16, $f0, $f6 +/* 0555E0 7F020AB0 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0555E4 7F020AB4 44812000 */ mtc1 $at, $f4 +/* 0555E8 7F020AB8 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069B60) +/* 0555EC 7F020ABC 8C849B60 */ lw $a0, %lo(dword_CODE_bss_80069B60)($a0) +/* 0555F0 7F020AC0 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 0555F4 7F020AC4 44809000 */ mtc1 $zero, $f18 +/* 0555F8 7F020AC8 46088282 */ mul.s $f10, $f16, $f8 +/* 0555FC 7F020ACC 94820012 */ lhu $v0, 0x12($a0) +/* 055600 7F020AD0 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 055604 7F020AD4 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 055608 7F020AD8 304E1000 */ andi $t6, $v0, 0x1000 +/* 05560C 7F020ADC 304F2000 */ andi $t7, $v0, 0x2000 +/* 055610 7F020AE0 30584000 */ andi $t8, $v0, 0x4000 +/* 055614 7F020AE4 46045083 */ div.s $f2, $f10, $f4 +/* 055618 7F020AE8 30598000 */ andi $t9, $v0, 0x8000 +/* 05561C 7F020AEC 11C00003 */ beqz $t6, .L7F020AFC +/* 055620 7F020AF0 46027380 */ add.s $f14, $f14, $f2 +/* 055624 7F020AF4 10000004 */ b .L7F020B08 +/* 055628 7F020AF8 46026300 */ add.s $f12, $f12, $f2 +.L7F020AFC: +/* 05562C 7F020AFC 11E00002 */ beqz $t7, .L7F020B08 +/* 055630 7F020B00 00000000 */ nop +/* 055634 7F020B04 46026301 */ sub.s $f12, $f12, $f2 +.L7F020B08: +/* 055638 7F020B08 13000009 */ beqz $t8, .L7F020B30 +/* 05563C 7F020B0C 00000000 */ nop +/* 055640 7F020B10 44813000 */ mtc1 $at, $f6 +/* 055644 7F020B14 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 055648 7F020B18 44815000 */ mtc1 $at, $f10 +/* 05564C 7F020B1C 46068202 */ mul.s $f8, $f16, $f6 +/* 055650 7F020B20 460A4103 */ div.s $f4, $f8, $f10 +/* 055654 7F020B24 46049180 */ add.s $f6, $f18, $f4 +/* 055658 7F020B28 1000000A */ b .L7F020B54 +/* 05565C 7F020B2C E7A60088 */ swc1 $f6, 0x88($sp) +.L7F020B30: +/* 055660 7F020B30 13200008 */ beqz $t9, .L7F020B54 +/* 055664 7F020B34 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 055668 7F020B38 44814000 */ mtc1 $at, $f8 +/* 05566C 7F020B3C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 055670 7F020B40 44812000 */ mtc1 $at, $f4 +/* 055674 7F020B44 46088282 */ mul.s $f10, $f16, $f8 +/* 055678 7F020B48 46045183 */ div.s $f6, $f10, $f4 +/* 05567C 7F020B4C 46069201 */ sub.s $f8, $f18, $f6 +/* 055680 7F020B50 E7A80088 */ swc1 $f8, 0x88($sp) +.L7F020B54: +/* 055684 7F020B54 46127032 */ c.eq.s $f14, $f18 +.L7F020B58: +/* 055688 7F020B58 00000000 */ nop +/* 05568C 7F020B5C 45020011 */ bc1fl .L7F020BA4 +/* 055690 7F020B60 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 055694 7F020B64 46126032 */ c.eq.s $f12, $f18 +/* 055698 7F020B68 C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 05569C 7F020B6C 4502000D */ bc1fl .L7F020BA4 +/* 0556A0 7F020B70 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 0556A4 7F020B74 46125032 */ c.eq.s $f10, $f18 +/* 0556A8 7F020B78 C7A40094 */ lwc1 $f4, 0x94($sp) +/* 0556AC 7F020B7C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0556B0 7F020B80 45020008 */ bc1fl .L7F020BA4 +/* 0556B4 7F020B84 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 0556B8 7F020B88 44813000 */ mtc1 $at, $f6 +/* 0556BC 7F020B8C 00000000 */ nop +/* 0556C0 7F020B90 46062032 */ c.eq.s $f4, $f6 +/* 0556C4 7F020B94 00000000 */ nop +/* 0556C8 7F020B98 4503007B */ bc1tl .L7F020D88 +/* 0556CC 7F020B9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0556D0 7F020BA0 E7AC008C */ swc1 $f12, 0x8c($sp) +.L7F020BA4: +/* 0556D4 7F020BA4 0FC0B064 */ jal sub_GAME_7F02C190 +/* 0556D8 7F020BA8 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 0556DC 7F020BAC C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 0556E0 7F020BB0 44809000 */ mtc1 $zero, $f18 +/* 0556E4 7F020BB4 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 0556E8 7F020BB8 E7A00070 */ swc1 $f0, 0x70($sp) +/* 0556EC 7F020BBC 4612703C */ c.lt.s $f14, $f18 +/* 0556F0 7F020BC0 3C018005 */ lui $at, %hi(D_80051D4C) +/* 0556F4 7F020BC4 45000003 */ bc1f .L7F020BD4 +/* 0556F8 7F020BC8 00000000 */ nop +/* 0556FC 7F020BCC 10000003 */ b .L7F020BDC +/* 055700 7F020BD0 46007387 */ neg.s $f14, $f14 +.L7F020BD4: +/* 055704 7F020BD4 C4281D4C */ lwc1 $f8, %lo(D_80051D4C)($at) +/* 055708 7F020BD8 460E4381 */ sub.s $f14, $f8, $f14 +.L7F020BDC: +/* 05570C 7F020BDC 4612603C */ c.lt.s $f12, $f18 +/* 055710 7F020BE0 3C018005 */ lui $at, %hi(D_80051D50) +/* 055714 7F020BE4 45020004 */ bc1fl .L7F020BF8 +/* 055718 7F020BE8 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 05571C 7F020BEC C42A1D50 */ lwc1 $f10, %lo(D_80051D50)($at) +/* 055720 7F020BF0 460A6300 */ add.s $f12, $f12, $f10 +/* 055724 7F020BF4 E7AC008C */ swc1 $f12, 0x8c($sp) +.L7F020BF8: +/* 055728 7F020BF8 0FC1E111 */ jal sub_GAME_7F078444 +/* 05572C 7F020BFC E7AE0090 */ swc1 $f14, 0x90($sp) +/* 055730 7F020C00 00402025 */ move $a0, $v0 +/* 055734 7F020C04 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055738 7F020C08 8FA5009C */ lw $a1, 0x9c($sp) +/* 05573C 7F020C0C 8FA2009C */ lw $v0, 0x9c($sp) +/* 055740 7F020C10 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 055744 7F020C14 44809000 */ mtc1 $zero, $f18 +/* 055748 7F020C18 C4440030 */ lwc1 $f4, 0x30($v0) +/* 05574C 7F020C1C C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 055750 7F020C20 46127032 */ c.eq.s $f14, $f18 +/* 055754 7F020C24 E7A40074 */ swc1 $f4, 0x74($sp) +/* 055758 7F020C28 C4460034 */ lwc1 $f6, 0x34($v0) +/* 05575C 7F020C2C 27A50030 */ addiu $a1, $sp, 0x30 +/* 055760 7F020C30 E7A60078 */ swc1 $f6, 0x78($sp) +/* 055764 7F020C34 C4480038 */ lwc1 $f8, 0x38($v0) +/* 055768 7F020C38 E7A8007C */ swc1 $f8, 0x7c($sp) +/* 05576C 7F020C3C E4520030 */ swc1 $f18, 0x30($v0) +/* 055770 7F020C40 E4520034 */ swc1 $f18, 0x34($v0) +/* 055774 7F020C44 45000006 */ bc1f .L7F020C60 +/* 055778 7F020C48 E4520038 */ swc1 $f18, 0x38($v0) +/* 05577C 7F020C4C C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 055780 7F020C50 46125032 */ c.eq.s $f10, $f18 +/* 055784 7F020C54 00000000 */ nop +/* 055788 7F020C58 45010030 */ bc1t .L7F020D1C +/* 05578C 7F020C5C 00000000 */ nop +.L7F020C60: +/* 055790 7F020C60 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 055794 7F020C64 3C018005 */ lui $at, %hi(D_80051D54) +/* 055798 7F020C68 46046301 */ sub.s $f12, $f12, $f4 +/* 05579C 7F020C6C 4612603C */ c.lt.s $f12, $f18 +/* 0557A0 7F020C70 00000000 */ nop +/* 0557A4 7F020C74 45000003 */ bc1f .L7F020C84 +/* 0557A8 7F020C78 00000000 */ nop +/* 0557AC 7F020C7C C4261D54 */ lwc1 $f6, %lo(D_80051D54)($at) +/* 0557B0 7F020C80 46066300 */ add.s $f12, $f12, $f6 +.L7F020C84: +/* 0557B4 7F020C84 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0557B8 7F020C88 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 0557BC 7F020C8C 27A40030 */ addiu $a0, $sp, 0x30 +/* 0557C0 7F020C90 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0557C4 7F020C94 8FA5009C */ lw $a1, 0x9c($sp) +/* 0557C8 7F020C98 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 0557CC 7F020C9C 44809000 */ mtc1 $zero, $f18 +/* 0557D0 7F020CA0 27A50030 */ addiu $a1, $sp, 0x30 +/* 0557D4 7F020CA4 46127032 */ c.eq.s $f14, $f18 +/* 0557D8 7F020CA8 00000000 */ nop +/* 0557DC 7F020CAC 45030009 */ bc1tl .L7F020CD4 +/* 0557E0 7F020CB0 C7A80088 */ lwc1 $f8, 0x88($sp) +/* 0557E4 7F020CB4 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0557E8 7F020CB8 46007306 */ mov.s $f12, $f14 +/* 0557EC 7F020CBC 27A40030 */ addiu $a0, $sp, 0x30 +/* 0557F0 7F020CC0 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0557F4 7F020CC4 8FA5009C */ lw $a1, 0x9c($sp) +/* 0557F8 7F020CC8 44809000 */ mtc1 $zero, $f18 +/* 0557FC 7F020CCC 00000000 */ nop +/* 055800 7F020CD0 C7A80088 */ lwc1 $f8, 0x88($sp) +.L7F020CD4: +/* 055804 7F020CD4 27A50030 */ addiu $a1, $sp, 0x30 +/* 055808 7F020CD8 46124032 */ c.eq.s $f8, $f18 +/* 05580C 7F020CDC 00000000 */ nop +/* 055810 7F020CE0 45030007 */ bc1tl .L7F020D00 +/* 055814 7F020CE4 C7AC0070 */ lwc1 $f12, 0x70($sp) +/* 055818 7F020CE8 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 05581C 7F020CEC 46004306 */ mov.s $f12, $f8 +/* 055820 7F020CF0 27A40030 */ addiu $a0, $sp, 0x30 +/* 055824 7F020CF4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055828 7F020CF8 8FA5009C */ lw $a1, 0x9c($sp) +/* 05582C 7F020CFC C7AC0070 */ lwc1 $f12, 0x70($sp) +.L7F020D00: +/* 055830 7F020D00 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 055834 7F020D04 27A50030 */ addiu $a1, $sp, 0x30 +/* 055838 7F020D08 27A40030 */ addiu $a0, $sp, 0x30 +/* 05583C 7F020D0C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055840 7F020D10 8FA5009C */ lw $a1, 0x9c($sp) +/* 055844 7F020D14 10000007 */ b .L7F020D34 +/* 055848 7F020D18 3C013F80 */ lui $at, 0x3f80 +.L7F020D1C: +/* 05584C 7F020D1C 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 055850 7F020D20 27A50030 */ addiu $a1, $sp, 0x30 +/* 055854 7F020D24 27A40030 */ addiu $a0, $sp, 0x30 +/* 055858 7F020D28 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 05585C 7F020D2C 8FA5009C */ lw $a1, 0x9c($sp) +/* 055860 7F020D30 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F020D34: +/* 055864 7F020D34 44812000 */ mtc1 $at, $f4 +/* 055868 7F020D38 C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 05586C 7F020D3C 8FA5009C */ lw $a1, 0x9c($sp) +/* 055870 7F020D40 46045032 */ c.eq.s $f10, $f4 +/* 055874 7F020D44 00000000 */ nop +/* 055878 7F020D48 45030004 */ bc1tl .L7F020D5C +/* 05587C 7F020D4C C7A60074 */ lwc1 $f6, 0x74($sp) +/* 055880 7F020D50 0FC1629F */ jal matrix_scalar_multiply +/* 055884 7F020D54 46005306 */ mov.s $f12, $f10 +/* 055888 7F020D58 C7A60074 */ lwc1 $f6, 0x74($sp) +.L7F020D5C: +/* 05588C 7F020D5C 8FA8009C */ lw $t0, 0x9c($sp) +/* 055890 7F020D60 E5060030 */ swc1 $f6, 0x30($t0) +/* 055894 7F020D64 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 055898 7F020D68 E5080034 */ swc1 $f8, 0x34($t0) +/* 05589C 7F020D6C C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 0558A0 7F020D70 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0558A4 7F020D74 E5040038 */ swc1 $f4, 0x38($t0) +/* 0558A8 7F020D78 00402025 */ move $a0, $v0 +/* 0558AC 7F020D7C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0558B0 7F020D80 8FA5009C */ lw $a1, 0x9c($sp) +/* 0558B4 7F020D84 8FBF0014 */ lw $ra, 0x14($sp) +.L7F020D88: +/* 0558B8 7F020D88 27BD0098 */ addiu $sp, $sp, 0x98 +/* 0558BC 7F020D8C 03E00008 */ jr $ra +/* 0558C0 7F020D90 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F02083C +/* 05561C 7F020AAC 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 055620 7F020AB0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 055624 7F020AB4 44812000 */ mtc1 $at, $f4 +/* 055628 7F020AB8 AFBF0014 */ sw $ra, 0x14($sp) +/* 05562C 7F020ABC 00803825 */ move $a3, $a0 +/* 055630 7F020AC0 AFA5009C */ sw $a1, 0x9c($sp) +/* 055634 7F020AC4 AFA70098 */ sw $a3, 0x98($sp) +/* 055638 7F020AC8 2404000C */ li $a0, 12 +/* 05563C 7F020ACC 0FC24CCF */ jal cheatCheckIfOn +/* 055640 7F020AD0 E7A40094 */ swc1 $f4, 0x94($sp) +/* 055644 7F020AD4 1040001C */ beqz $v0, .L7F020B48 +/* 055648 7F020AD8 8FA70098 */ lw $a3, 0x98($sp) +/* 05564C 7F020ADC 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069B60) # $a2, 0x8007 +/* 055650 7F020AE0 8CC69BA0 */ lw $a2, %lo(dword_CODE_bss_80069B60)($a2) +/* 055654 7F020AE4 80C4000F */ lb $a0, 0xf($a2) +/* 055658 7F020AE8 80C50006 */ lb $a1, 6($a2) +/* 05565C 7F020AEC 0FC0827B */ jal jp_only_7F0209EC +/* 055660 7F020AF0 AFA70098 */ sw $a3, 0x98($sp) +/* 055664 7F020AF4 10400014 */ beqz $v0, .L7F020B48 +/* 055668 7F020AF8 8FA70098 */ lw $a3, 0x98($sp) +/* 05566C 7F020AFC 14E00005 */ bnez $a3, .L7F020B14 +/* 055670 7F020B00 24030002 */ li $v1, 2 +/* 055674 7F020B04 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 055678 7F020B08 44813000 */ mtc1 $at, $f6 +/* 05567C 7F020B0C 1000000E */ b .L7F020B48 +/* 055680 7F020B10 E7A60094 */ swc1 $f6, 0x94($sp) +.L7F020B14: +/* 055684 7F020B14 10E30002 */ beq $a3, $v1, .L7F020B20 +/* 055688 7F020B18 24050003 */ li $a1, 3 +/* 05568C 7F020B1C 14E5000A */ bne $a3, $a1, .L7F020B48 +.L7F020B20: +/* 055690 7F020B20 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80069B60) # $t6, 0x8007 +/* 055694 7F020B24 8DCE9BA0 */ lw $t6, %lo(dword_CODE_bss_80069B60)($t6) +/* 055698 7F020B28 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 05569C 7F020B2C 8DCF0014 */ lw $t7, 0x14($t6) +/* 0556A0 7F020B30 000FC100 */ sll $t8, $t7, 4 +/* 0556A4 7F020B34 07020005 */ bltzl $t8, .L7F020B4C +/* 0556A8 7F020B38 24030002 */ li $v1, 2 +/* 0556AC 7F020B3C 44814000 */ mtc1 $at, $f8 +/* 0556B0 7F020B40 00000000 */ nop +/* 0556B4 7F020B44 E7A80094 */ swc1 $f8, 0x94($sp) +.L7F020B48: +/* 0556B8 7F020B48 24030002 */ li $v1, 2 +.L7F020B4C: +/* 0556BC 7F020B4C 10E30007 */ beq $a3, $v1, .L7F020B6C +/* 0556C0 7F020B50 24050003 */ li $a1, 3 +/* 0556C4 7F020B54 10E50005 */ beq $a3, $a1, .L7F020B6C +/* 0556C8 7F020B58 24040001 */ li $a0, 1 +/* 0556CC 7F020B5C 50E40004 */ beql $a3, $a0, .L7F020B70 +/* 0556D0 7F020B60 44809000 */ mtc1 $zero, $f18 +/* 0556D4 7F020B64 54E0012E */ bnezl $a3, .L7F021020 +/* 0556D8 7F020B68 8FBF0014 */ lw $ra, 0x14($sp) +.L7F020B6C: +/* 0556DC 7F020B6C 44809000 */ mtc1 $zero, $f18 +.L7F020B70: +/* 0556E0 7F020B70 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069B60) # $a2, 0x8007 +/* 0556E4 7F020B74 24040001 */ li $a0, 1 +/* 0556E8 7F020B78 8CC69BA0 */ lw $a2, %lo(dword_CODE_bss_80069B60)($a2) +/* 0556EC 7F020B7C 46009386 */ mov.s $f14, $f18 +/* 0556F0 7F020B80 46009306 */ mov.s $f12, $f18 +/* 0556F4 7F020B84 14E50003 */ bne $a3, $a1, .L7F020B94 +/* 0556F8 7F020B88 E7B20088 */ swc1 $f18, 0x88($sp) +/* 0556FC 7F020B8C 10000040 */ b .L7F020C90 +/* 055700 7F020B90 C4CE0144 */ lwc1 $f14, 0x144($a2) +.L7F020B94: +/* 055704 7F020B94 14E30003 */ bne $a3, $v1, .L7F020BA4 +/* 055708 7F020B98 00000000 */ nop +/* 05570C 7F020B9C 1000003C */ b .L7F020C90 +/* 055710 7F020BA0 C4CE0140 */ lwc1 $f14, 0x140($a2) +.L7F020BA4: +/* 055714 7F020BA4 14E4001B */ bne $a3, $a0, .L7F020C14 +/* 055718 7F020BA8 00000000 */ nop +/* 05571C 7F020BAC 94D90012 */ lhu $t9, 0x12($a2) +/* 055720 7F020BB0 C4CE0148 */ lwc1 $f14, 0x148($a2) +/* 055724 7F020BB4 3C018005 */ lui $at, %hi(D_80051D30) # $at, 0x8005 +/* 055728 7F020BB8 33280400 */ andi $t0, $t9, 0x400 +/* 05572C 7F020BBC 11000013 */ beqz $t0, .L7F020C0C +/* 055730 7F020BC0 00000000 */ nop +/* 055734 7F020BC4 C4201D60 */ lwc1 $f0, %lo(D_80051D30)($at) +/* 055738 7F020BC8 3C018005 */ lui $at, %hi(D_80051D34) # $at, 0x8005 +/* 05573C 7F020BCC 460E003C */ c.lt.s $f0, $f14 +/* 055740 7F020BD0 00000000 */ nop +/* 055744 7F020BD4 45000003 */ bc1f .L7F020BE4 +/* 055748 7F020BD8 00000000 */ nop +/* 05574C 7F020BDC 1000000B */ b .L7F020C0C +/* 055750 7F020BE0 46007381 */ sub.s $f14, $f14, $f0 +.L7F020BE4: +/* 055754 7F020BE4 C4201D64 */ lwc1 $f0, %lo(D_80051D34)($at) +/* 055758 7F020BE8 3C018005 */ lui $at, %hi(D_80051D38) # $at, 0x8005 +/* 05575C 7F020BEC 4600703C */ c.lt.s $f14, $f0 +/* 055760 7F020BF0 00000000 */ nop +/* 055764 7F020BF4 45020005 */ bc1fl .L7F020C0C +/* 055768 7F020BF8 46009386 */ mov.s $f14, $f18 +/* 05576C 7F020BFC C42A1D68 */ lwc1 $f10, %lo(D_80051D38)($at) +/* 055770 7F020C00 10000002 */ b .L7F020C0C +/* 055774 7F020C04 460A7380 */ add.s $f14, $f14, $f10 +/* 055778 7F020C08 46009386 */ mov.s $f14, $f18 +.L7F020C0C: +/* 05577C 7F020C0C 10000020 */ b .L7F020C90 +/* 055780 7F020C10 C4CC014C */ lwc1 $f12, 0x14c($a2) +.L7F020C14: +/* 055784 7F020C14 54E0001F */ bnezl $a3, .L7F020C94 +/* 055788 7F020C18 80CC0011 */ lb $t4, 0x11($a2) +/* 05578C 7F020C1C 94C20012 */ lhu $v0, 0x12($a2) +/* 055790 7F020C20 30490400 */ andi $t1, $v0, 0x400 +/* 055794 7F020C24 51200014 */ beql $t1, $zero, .L7F020C78 +/* 055798 7F020C28 8CCA001C */ lw $t2, 0x1c($a2) +/* 05579C 7F020C2C 11200018 */ beqz $t1, .L7F020C90 +/* 0557A0 7F020C30 C4CE0148 */ lwc1 $f14, 0x148($a2) +/* 0557A4 7F020C34 3C018005 */ lui $at, %hi(D_80051D3C) # $at, 0x8005 +/* 0557A8 7F020C38 C4201D6C */ lwc1 $f0, %lo(D_80051D3C)($at) +/* 0557AC 7F020C3C 3C018005 */ lui $at, %hi(D_80051D40) # $at, 0x8005 +/* 0557B0 7F020C40 460E003C */ c.lt.s $f0, $f14 +/* 0557B4 7F020C44 00000000 */ nop +/* 0557B8 7F020C48 45000003 */ bc1f .L7F020C58 +/* 0557BC 7F020C4C 00000000 */ nop +/* 0557C0 7F020C50 1000000F */ b .L7F020C90 +/* 0557C4 7F020C54 46000386 */ mov.s $f14, $f0 +.L7F020C58: +/* 0557C8 7F020C58 C4201D70 */ lwc1 $f0, %lo(D_80051D40)($at) +/* 0557CC 7F020C5C 4600703C */ c.lt.s $f14, $f0 +/* 0557D0 7F020C60 00000000 */ nop +/* 0557D4 7F020C64 4502000B */ bc1fl .L7F020C94 +/* 0557D8 7F020C68 80CC0011 */ lb $t4, 0x11($a2) +/* 0557DC 7F020C6C 10000008 */ b .L7F020C90 +/* 0557E0 7F020C70 46000386 */ mov.s $f14, $f0 +/* 0557E4 7F020C74 8CCA001C */ lw $t2, 0x1c($a2) +.L7F020C78: +/* 0557E8 7F020C78 814B0024 */ lb $t3, 0x24($t2) +/* 0557EC 7F020C7C 51600004 */ beql $t3, $zero, .L7F020C90 +/* 0557F0 7F020C80 C4CE0144 */ lwc1 $f14, 0x144($a2) +/* 0557F4 7F020C84 10000002 */ b .L7F020C90 +/* 0557F8 7F020C88 C4CE0140 */ lwc1 $f14, 0x140($a2) +/* 0557FC 7F020C8C C4CE0144 */ lwc1 $f14, 0x144($a2) +.L7F020C90: +/* 055800 7F020C90 80CC0011 */ lb $t4, 0x11($a2) +.L7F020C94: +/* 055804 7F020C94 05820056 */ bltzl $t4, .L7F020DF0 +/* 055808 7F020C98 46127032 */ c.eq.s $f14, $f18 +/* 05580C 7F020C9C 50E50004 */ beql $a3, $a1, .L7F020CB0 +/* 055810 7F020CA0 00C02025 */ move $a0, $a2 +/* 055814 7F020CA4 14E3001E */ bne $a3, $v1, .L7F020D20 +/* 055818 7F020CA8 00000000 */ nop +/* 05581C 7F020CAC 00C02025 */ move $a0, $a2 +.L7F020CB0: +/* 055820 7F020CB0 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 055824 7F020CB4 0FC08251 */ jal sub_GAME_7F020794 +/* 055828 7F020CB8 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 05582C 7F020CBC 3C018005 */ lui $at, %hi(D_80051D44) # $at, 0x8005 +/* 055830 7F020CC0 C4241D74 */ lwc1 $f4, %lo(D_80051D44)($at) +/* 055834 7F020CC4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 055838 7F020CC8 44814000 */ mtc1 $at, $f8 +/* 05583C 7F020CCC 46040182 */ mul.s $f6, $f0, $f4 +/* 055840 7F020CD0 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 055844 7F020CD4 44812000 */ mtc1 $at, $f4 +/* 055848 7F020CD8 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069B60) # $a2, 0x8007 +/* 05584C 7F020CDC 8CC69BA0 */ lw $a2, %lo(dword_CODE_bss_80069B60)($a2) +/* 055850 7F020CE0 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 055854 7F020CE4 44809000 */ mtc1 $zero, $f18 +/* 055858 7F020CE8 46083282 */ mul.s $f10, $f6, $f8 +/* 05585C 7F020CEC 94C20012 */ lhu $v0, 0x12($a2) +/* 055860 7F020CF0 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 055864 7F020CF4 304D1000 */ andi $t5, $v0, 0x1000 +/* 055868 7F020CF8 304E2000 */ andi $t6, $v0, 0x2000 +/* 05586C 7F020CFC 46045083 */ div.s $f2, $f10, $f4 +/* 055870 7F020D00 11A00003 */ beqz $t5, .L7F020D10 +/* 055874 7F020D04 46027381 */ sub.s $f14, $f14, $f2 +/* 055878 7F020D08 10000038 */ b .L7F020DEC +/* 05587C 7F020D0C 46026301 */ sub.s $f12, $f12, $f2 +.L7F020D10: +/* 055880 7F020D10 51C00037 */ beql $t6, $zero, .L7F020DF0 +/* 055884 7F020D14 46127032 */ c.eq.s $f14, $f18 +/* 055888 7F020D18 10000034 */ b .L7F020DEC +/* 05588C 7F020D1C 46026300 */ add.s $f12, $f12, $f2 +.L7F020D20: +/* 055890 7F020D20 14E40032 */ bne $a3, $a0, .L7F020DEC +/* 055894 7F020D24 00C02025 */ move $a0, $a2 +/* 055898 7F020D28 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 05589C 7F020D2C 0FC08251 */ jal sub_GAME_7F020794 +/* 0558A0 7F020D30 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 0558A4 7F020D34 3C018005 */ lui $at, %hi(D_80051D48) # $at, 0x8005 +/* 0558A8 7F020D38 C4261D78 */ lwc1 $f6, %lo(D_80051D48)($at) +/* 0558AC 7F020D3C 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0558B0 7F020D40 44814000 */ mtc1 $at, $f8 +/* 0558B4 7F020D44 46060402 */ mul.s $f16, $f0, $f6 +/* 0558B8 7F020D48 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0558BC 7F020D4C 44812000 */ mtc1 $at, $f4 +/* 0558C0 7F020D50 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069B60) # $a2, 0x8007 +/* 0558C4 7F020D54 8CC69BA0 */ lw $a2, %lo(dword_CODE_bss_80069B60)($a2) +/* 0558C8 7F020D58 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 0558CC 7F020D5C 44809000 */ mtc1 $zero, $f18 +/* 0558D0 7F020D60 46088282 */ mul.s $f10, $f16, $f8 +/* 0558D4 7F020D64 94C20012 */ lhu $v0, 0x12($a2) +/* 0558D8 7F020D68 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 0558DC 7F020D6C 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0558E0 7F020D70 304F1000 */ andi $t7, $v0, 0x1000 +/* 0558E4 7F020D74 30582000 */ andi $t8, $v0, 0x2000 +/* 0558E8 7F020D78 30594000 */ andi $t9, $v0, 0x4000 +/* 0558EC 7F020D7C 46045083 */ div.s $f2, $f10, $f4 +/* 0558F0 7F020D80 30488000 */ andi $t0, $v0, 0x8000 +/* 0558F4 7F020D84 11E00003 */ beqz $t7, .L7F020D94 +/* 0558F8 7F020D88 46027380 */ add.s $f14, $f14, $f2 +/* 0558FC 7F020D8C 10000004 */ b .L7F020DA0 +/* 055900 7F020D90 46026300 */ add.s $f12, $f12, $f2 +.L7F020D94: +/* 055904 7F020D94 13000002 */ beqz $t8, .L7F020DA0 +/* 055908 7F020D98 00000000 */ nop +/* 05590C 7F020D9C 46026301 */ sub.s $f12, $f12, $f2 +.L7F020DA0: +/* 055910 7F020DA0 13200009 */ beqz $t9, .L7F020DC8 +/* 055914 7F020DA4 00000000 */ nop +/* 055918 7F020DA8 44813000 */ mtc1 $at, $f6 +/* 05591C 7F020DAC 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 055920 7F020DB0 44815000 */ mtc1 $at, $f10 +/* 055924 7F020DB4 46068202 */ mul.s $f8, $f16, $f6 +/* 055928 7F020DB8 460A4103 */ div.s $f4, $f8, $f10 +/* 05592C 7F020DBC 46049180 */ add.s $f6, $f18, $f4 +/* 055930 7F020DC0 1000000A */ b .L7F020DEC +/* 055934 7F020DC4 E7A60088 */ swc1 $f6, 0x88($sp) +.L7F020DC8: +/* 055938 7F020DC8 11000008 */ beqz $t0, .L7F020DEC +/* 05593C 7F020DCC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 055940 7F020DD0 44814000 */ mtc1 $at, $f8 +/* 055944 7F020DD4 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 055948 7F020DD8 44812000 */ mtc1 $at, $f4 +/* 05594C 7F020DDC 46088282 */ mul.s $f10, $f16, $f8 +/* 055950 7F020DE0 46045183 */ div.s $f6, $f10, $f4 +/* 055954 7F020DE4 46069201 */ sub.s $f8, $f18, $f6 +/* 055958 7F020DE8 E7A80088 */ swc1 $f8, 0x88($sp) +.L7F020DEC: +/* 05595C 7F020DEC 46127032 */ c.eq.s $f14, $f18 +.L7F020DF0: +/* 055960 7F020DF0 00C02025 */ move $a0, $a2 +/* 055964 7F020DF4 45020011 */ bc1fl .L7F020E3C +/* 055968 7F020DF8 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 05596C 7F020DFC 46126032 */ c.eq.s $f12, $f18 +/* 055970 7F020E00 C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 055974 7F020E04 4502000D */ bc1fl .L7F020E3C +/* 055978 7F020E08 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 05597C 7F020E0C 46125032 */ c.eq.s $f10, $f18 +/* 055980 7F020E10 C7A40094 */ lwc1 $f4, 0x94($sp) +/* 055984 7F020E14 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 055988 7F020E18 45020008 */ bc1fl .L7F020E3C +/* 05598C 7F020E1C E7AC008C */ swc1 $f12, 0x8c($sp) +/* 055990 7F020E20 44813000 */ mtc1 $at, $f6 +/* 055994 7F020E24 00000000 */ nop +/* 055998 7F020E28 46062032 */ c.eq.s $f4, $f6 +/* 05599C 7F020E2C 00000000 */ nop +/* 0559A0 7F020E30 4503007B */ bc1tl .L7F021020 +/* 0559A4 7F020E34 8FBF0014 */ lw $ra, 0x14($sp) +/* 0559A8 7F020E38 E7AC008C */ swc1 $f12, 0x8c($sp) +.L7F020E3C: +/* 0559AC 7F020E3C 0FC0B126 */ jal sub_GAME_7F02C190 +/* 0559B0 7F020E40 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 0559B4 7F020E44 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 0559B8 7F020E48 44809000 */ mtc1 $zero, $f18 +/* 0559BC 7F020E4C C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 0559C0 7F020E50 E7A00070 */ swc1 $f0, 0x70($sp) +/* 0559C4 7F020E54 4612703C */ c.lt.s $f14, $f18 +/* 0559C8 7F020E58 3C018005 */ lui $at, %hi(D_80051D4C) # $at, 0x8005 +/* 0559CC 7F020E5C 45000003 */ bc1f .L7F020E6C +/* 0559D0 7F020E60 00000000 */ nop +/* 0559D4 7F020E64 10000003 */ b .L7F020E74 +/* 0559D8 7F020E68 46007387 */ neg.s $f14, $f14 +.L7F020E6C: +/* 0559DC 7F020E6C C4281D7C */ lwc1 $f8, %lo(D_80051D4C)($at) +/* 0559E0 7F020E70 460E4381 */ sub.s $f14, $f8, $f14 +.L7F020E74: +/* 0559E4 7F020E74 4612603C */ c.lt.s $f12, $f18 +/* 0559E8 7F020E78 3C018005 */ lui $at, %hi(D_80051D50) # $at, 0x8005 +/* 0559EC 7F020E7C 45020004 */ bc1fl .L7F020E90 +/* 0559F0 7F020E80 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 0559F4 7F020E84 C42A1D80 */ lwc1 $f10, %lo(D_80051D50)($at) +/* 0559F8 7F020E88 460A6300 */ add.s $f12, $f12, $f10 +/* 0559FC 7F020E8C E7AC008C */ swc1 $f12, 0x8c($sp) +.L7F020E90: +/* 055A00 7F020E90 0FC1E28D */ jal sub_GAME_7F078444 +/* 055A04 7F020E94 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 055A08 7F020E98 00402025 */ move $a0, $v0 +/* 055A0C 7F020E9C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055A10 7F020EA0 8FA5009C */ lw $a1, 0x9c($sp) +/* 055A14 7F020EA4 8FA2009C */ lw $v0, 0x9c($sp) +/* 055A18 7F020EA8 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 055A1C 7F020EAC 44809000 */ mtc1 $zero, $f18 +/* 055A20 7F020EB0 C4440030 */ lwc1 $f4, 0x30($v0) +/* 055A24 7F020EB4 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 055A28 7F020EB8 46127032 */ c.eq.s $f14, $f18 +/* 055A2C 7F020EBC E7A40074 */ swc1 $f4, 0x74($sp) +/* 055A30 7F020EC0 C4460034 */ lwc1 $f6, 0x34($v0) +/* 055A34 7F020EC4 27A50030 */ addiu $a1, $sp, 0x30 +/* 055A38 7F020EC8 E7A60078 */ swc1 $f6, 0x78($sp) +/* 055A3C 7F020ECC C4480038 */ lwc1 $f8, 0x38($v0) +/* 055A40 7F020ED0 E7A8007C */ swc1 $f8, 0x7c($sp) +/* 055A44 7F020ED4 E4520030 */ swc1 $f18, 0x30($v0) +/* 055A48 7F020ED8 E4520034 */ swc1 $f18, 0x34($v0) +/* 055A4C 7F020EDC 45000006 */ bc1f .L7F020EF8 +/* 055A50 7F020EE0 E4520038 */ swc1 $f18, 0x38($v0) +/* 055A54 7F020EE4 C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 055A58 7F020EE8 46125032 */ c.eq.s $f10, $f18 +/* 055A5C 7F020EEC 00000000 */ nop +/* 055A60 7F020EF0 45010030 */ bc1t .L7F020FB4 +/* 055A64 7F020EF4 00000000 */ nop +.L7F020EF8: +/* 055A68 7F020EF8 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 055A6C 7F020EFC 3C018005 */ lui $at, %hi(D_80051D54) # $at, 0x8005 +/* 055A70 7F020F00 46046301 */ sub.s $f12, $f12, $f4 +/* 055A74 7F020F04 4612603C */ c.lt.s $f12, $f18 +/* 055A78 7F020F08 00000000 */ nop +/* 055A7C 7F020F0C 45000003 */ bc1f .L7F020F1C +/* 055A80 7F020F10 00000000 */ nop +/* 055A84 7F020F14 C4261D84 */ lwc1 $f6, %lo(D_80051D54)($at) +/* 055A88 7F020F18 46066300 */ add.s $f12, $f12, $f6 +.L7F020F1C: +/* 055A8C 7F020F1C 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 055A90 7F020F20 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 055A94 7F020F24 27A40030 */ addiu $a0, $sp, 0x30 +/* 055A98 7F020F28 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055A9C 7F020F2C 8FA5009C */ lw $a1, 0x9c($sp) +/* 055AA0 7F020F30 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 055AA4 7F020F34 44809000 */ mtc1 $zero, $f18 +/* 055AA8 7F020F38 27A50030 */ addiu $a1, $sp, 0x30 +/* 055AAC 7F020F3C 46127032 */ c.eq.s $f14, $f18 +/* 055AB0 7F020F40 00000000 */ nop +/* 055AB4 7F020F44 45030009 */ bc1tl .L7F020F6C +/* 055AB8 7F020F48 C7A80088 */ lwc1 $f8, 0x88($sp) +/* 055ABC 7F020F4C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 055AC0 7F020F50 46007306 */ mov.s $f12, $f14 +/* 055AC4 7F020F54 27A40030 */ addiu $a0, $sp, 0x30 +/* 055AC8 7F020F58 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055ACC 7F020F5C 8FA5009C */ lw $a1, 0x9c($sp) +/* 055AD0 7F020F60 44809000 */ mtc1 $zero, $f18 +/* 055AD4 7F020F64 00000000 */ nop +/* 055AD8 7F020F68 C7A80088 */ lwc1 $f8, 0x88($sp) +.L7F020F6C: +/* 055ADC 7F020F6C 27A50030 */ addiu $a1, $sp, 0x30 +/* 055AE0 7F020F70 46124032 */ c.eq.s $f8, $f18 +/* 055AE4 7F020F74 00000000 */ nop +/* 055AE8 7F020F78 45030007 */ bc1tl .L7F020F98 +/* 055AEC 7F020F7C C7AC0070 */ lwc1 $f12, 0x70($sp) +/* 055AF0 7F020F80 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 055AF4 7F020F84 46004306 */ mov.s $f12, $f8 +/* 055AF8 7F020F88 27A40030 */ addiu $a0, $sp, 0x30 +/* 055AFC 7F020F8C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055B00 7F020F90 8FA5009C */ lw $a1, 0x9c($sp) +/* 055B04 7F020F94 C7AC0070 */ lwc1 $f12, 0x70($sp) +.L7F020F98: +/* 055B08 7F020F98 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 055B0C 7F020F9C 27A50030 */ addiu $a1, $sp, 0x30 +/* 055B10 7F020FA0 27A40030 */ addiu $a0, $sp, 0x30 +/* 055B14 7F020FA4 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055B18 7F020FA8 8FA5009C */ lw $a1, 0x9c($sp) +/* 055B1C 7F020FAC 10000007 */ b .L7F020FCC +/* 055B20 7F020FB0 3C013F80 */ lui $at, 0x3f80 +.L7F020FB4: +/* 055B24 7F020FB4 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 055B28 7F020FB8 27A50030 */ addiu $a1, $sp, 0x30 +/* 055B2C 7F020FBC 27A40030 */ addiu $a0, $sp, 0x30 +/* 055B30 7F020FC0 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055B34 7F020FC4 8FA5009C */ lw $a1, 0x9c($sp) +/* 055B38 7F020FC8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F020FCC: +/* 055B3C 7F020FCC 44812000 */ mtc1 $at, $f4 +/* 055B40 7F020FD0 C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 055B44 7F020FD4 8FA5009C */ lw $a1, 0x9c($sp) +/* 055B48 7F020FD8 46045032 */ c.eq.s $f10, $f4 +/* 055B4C 7F020FDC 00000000 */ nop +/* 055B50 7F020FE0 45030004 */ bc1tl .L7F020FF4 +/* 055B54 7F020FE4 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 055B58 7F020FE8 0FC163E7 */ jal matrix_scalar_multiply +/* 055B5C 7F020FEC 46005306 */ mov.s $f12, $f10 +/* 055B60 7F020FF0 C7A60074 */ lwc1 $f6, 0x74($sp) +.L7F020FF4: +/* 055B64 7F020FF4 8FA9009C */ lw $t1, 0x9c($sp) +/* 055B68 7F020FF8 E5260030 */ swc1 $f6, 0x30($t1) +/* 055B6C 7F020FFC C7A80078 */ lwc1 $f8, 0x78($sp) +/* 055B70 7F021000 E5280034 */ swc1 $f8, 0x34($t1) +/* 055B74 7F021004 C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 055B78 7F021008 0FC1E26D */ jal get_BONDdata_field_10CC +/* 055B7C 7F02100C E5240038 */ swc1 $f4, 0x38($t1) +/* 055B80 7F021010 00402025 */ move $a0, $v0 +/* 055B84 7F021014 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055B88 7F021018 8FA5009C */ lw $a1, 0x9c($sp) +/* 055B8C 7F02101C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F021020: +/* 055B90 7F021020 27BD0098 */ addiu $sp, $sp, 0x98 +/* 055B94 7F021024 03E00008 */ jr $ra +/* 055B98 7F021028 00000000 */ nop + +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F020D94(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F020D94 +/* 0558C4 7F020D94 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0558C8 7F020D98 AFBF0014 */ sw $ra, 0x14($sp) +/* 0558CC 7F020D9C 00802825 */ move $a1, $a0 +/* 0558D0 7F020DA0 8C840018 */ lw $a0, 0x18($a0) +/* 0558D4 7F020DA4 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 0558D8 7F020DA8 44810000 */ mtc1 $at, $f0 +/* 0558DC 7F020DAC C4840008 */ lwc1 $f4, 8($a0) +/* 0558E0 7F020DB0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0558E4 7F020DB4 44815000 */ mtc1 $at, $f10 +/* 0558E8 7F020DB8 46002181 */ sub.s $f6, $f4, $f0 +/* 0558EC 7F020DBC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0558F0 7F020DC0 E7A60028 */ swc1 $f6, 0x28($sp) +/* 0558F4 7F020DC4 C4A800AC */ lwc1 $f8, 0xac($a1) +/* 0558F8 7F020DC8 460A4401 */ sub.s $f16, $f8, $f10 +/* 0558FC 7F020DCC E7B0002C */ swc1 $f16, 0x2c($sp) +/* 055900 7F020DD0 C4920010 */ lwc1 $f18, 0x10($a0) +/* 055904 7F020DD4 44818000 */ mtc1 $at, $f16 +/* 055908 7F020DD8 46009101 */ sub.s $f4, $f18, $f0 +/* 05590C 7F020DDC E7A40030 */ swc1 $f4, 0x30($sp) +/* 055910 7F020DE0 C4860008 */ lwc1 $f6, 8($a0) +/* 055914 7F020DE4 46003200 */ add.s $f8, $f6, $f0 +/* 055918 7F020DE8 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 05591C 7F020DEC C48A000C */ lwc1 $f10, 0xc($a0) +/* 055920 7F020DF0 46105480 */ add.s $f18, $f10, $f16 +/* 055924 7F020DF4 E7B20020 */ swc1 $f18, 0x20($sp) +/* 055928 7F020DF8 C4840010 */ lwc1 $f4, 0x10($a0) +/* 05592C 7F020DFC AFA40034 */ sw $a0, 0x34($sp) +/* 055930 7F020E00 46002180 */ add.s $f6, $f4, $f0 +/* 055934 7F020E04 0FC0F863 */ jal sub_GAME_7F03E18C +/* 055938 7F020E08 E7A60024 */ swc1 $f6, 0x24($sp) +/* 05593C 7F020E0C 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 055940 7F020E10 44810000 */ mtc1 $at, $f0 +/* 055944 7F020E14 8FA40034 */ lw $a0, 0x34($sp) +/* 055948 7F020E18 27A50028 */ addiu $a1, $sp, 0x28 +/* 05594C 7F020E1C 44070000 */ mfc1 $a3, $f0 +/* 055950 7F020E20 0FC0F89F */ jal sub_GAME_7F03E27C +/* 055954 7F020E24 27A6001C */ addiu $a2, $sp, 0x1c +/* 055958 7F020E28 0FC0F884 */ jal sub_GAME_7F03E210 +/* 05595C 7F020E2C 8FA40034 */ lw $a0, 0x34($sp) +/* 055960 7F020E30 8FBF0014 */ lw $ra, 0x14($sp) +/* 055964 7F020E34 27BD0038 */ addiu $sp, $sp, 0x38 +/* 055968 7F020E38 03E00008 */ jr $ra +/* 05596C 7F020E3C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F020E40(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F020E40 +/* 055970 7F020E40 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 055974 7F020E44 AFBF001C */ sw $ra, 0x1c($sp) +/* 055978 7F020E48 AFB10018 */ sw $s1, 0x18($sp) +/* 05597C 7F020E4C AFB00014 */ sw $s0, 0x14($sp) +/* 055980 7F020E50 AFA5002C */ sw $a1, 0x2c($sp) +/* 055984 7F020E54 8C8E0018 */ lw $t6, 0x18($a0) +/* 055988 7F020E58 8C90001C */ lw $s0, 0x1c($a0) +/* 05598C 7F020E5C 00808825 */ move $s1, $a0 +/* 055990 7F020E60 AFAE0020 */ sw $t6, 0x20($sp) +/* 055994 7F020E64 948F0012 */ lhu $t7, 0x12($a0) +/* 055998 7F020E68 02002025 */ move $a0, $s0 +/* 05599C 7F020E6C 31F80800 */ andi $t8, $t7, 0x800 +/* 0559A0 7F020E70 17000014 */ bnez $t8, .L7F020EC4 +/* 0559A4 7F020E74 00000000 */ nop +/* 0559A8 7F020E78 0FC1B2E6 */ jal getsuboffset +/* 0559AC 7F020E7C 262500BC */ addiu $a1, $s1, 0xbc +/* 0559B0 7F020E80 02002025 */ move $a0, $s0 +/* 0559B4 7F020E84 8FA5002C */ lw $a1, 0x2c($sp) +/* 0559B8 7F020E88 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 0559BC 7F020E8C 24060001 */ li $a2, 1 +/* 0559C0 7F020E90 0FC1B5AC */ jal subcalcpos +/* 0559C4 7F020E94 02002025 */ move $a0, $s0 +/* 0559C8 7F020E98 8FA40020 */ lw $a0, 0x20($sp) +/* 0559CC 7F020E9C 0FC10027 */ jal set_color_shading_from_tile +/* 0559D0 7F020EA0 262500F8 */ addiu $a1, $s1, 0xf8 +/* 0559D4 7F020EA4 8FA50020 */ lw $a1, 0x20($sp) +/* 0559D8 7F020EA8 02002025 */ move $a0, $s0 +/* 0559DC 7F020EAC 0FC1B2E6 */ jal getsuboffset +/* 0559E0 7F020EB0 24A50008 */ addiu $a1, $a1, 8 +/* 0559E4 7F020EB4 0FC08365 */ jal sub_GAME_7F020D94 +/* 0559E8 7F020EB8 02202025 */ move $a0, $s1 +/* 0559EC 7F020EBC 10000008 */ b .L7F020EE0 +/* 0559F0 7F020EC0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F020EC4: +/* 0559F4 7F020EC4 0FC1B5AC */ jal subcalcpos +/* 0559F8 7F020EC8 02002025 */ move $a0, $s0 +/* 0559FC 7F020ECC 8FA50020 */ lw $a1, 0x20($sp) +/* 055A00 7F020ED0 02002025 */ move $a0, $s0 +/* 055A04 7F020ED4 0FC1B2E6 */ jal getsuboffset +/* 055A08 7F020ED8 24A50008 */ addiu $a1, $a1, 8 +/* 055A0C 7F020EDC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F020EE0: +/* 055A10 7F020EE0 8FB00014 */ lw $s0, 0x14($sp) +/* 055A14 7F020EE4 8FB10018 */ lw $s1, 0x18($sp) +/* 055A18 7F020EE8 03E00008 */ jr $ra +/* 055A1C 7F020EEC 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F020EF0(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F020EF0 +/* 055A20 7F020EF0 27BDFEA8 */ addiu $sp, $sp, -0x158 +/* 055A24 7F020EF4 3C0F8003 */ lui $t7, %hi(D_8002CC6C) +/* 055A28 7F020EF8 25EFCC6C */ addiu $t7, %lo(D_8002CC6C) # addiu $t7, $t7, -0x3394 +/* 055A2C 7F020EFC AFBF0024 */ sw $ra, 0x24($sp) +/* 055A30 7F020F00 AFB00020 */ sw $s0, 0x20($sp) +/* 055A34 7F020F04 AFA40158 */ sw $a0, 0x158($sp) +/* 055A38 7F020F08 25E8003C */ addiu $t0, $t7, 0x3c +/* 055A3C 7F020F0C 27AE0118 */ addiu $t6, $sp, 0x118 +.L7F020F10: +/* 055A40 7F020F10 8DE10000 */ lw $at, ($t7) +/* 055A44 7F020F14 25EF000C */ addiu $t7, $t7, 0xc +/* 055A48 7F020F18 25CE000C */ addiu $t6, $t6, 0xc +/* 055A4C 7F020F1C ADC1FFF4 */ sw $at, -0xc($t6) +/* 055A50 7F020F20 8DE1FFF8 */ lw $at, -8($t7) +/* 055A54 7F020F24 ADC1FFF8 */ sw $at, -8($t6) +/* 055A58 7F020F28 8DE1FFFC */ lw $at, -4($t7) +/* 055A5C 7F020F2C 15E8FFF8 */ bne $t7, $t0, .L7F020F10 +/* 055A60 7F020F30 ADC1FFFC */ sw $at, -4($t6) +/* 055A64 7F020F34 8DE10000 */ lw $at, ($t7) +/* 055A68 7F020F38 3C0C8005 */ lui $t4, %hi(clock_timer) +/* 055A6C 7F020F3C 240B0001 */ li $t3, 1 +/* 055A70 7F020F40 ADC10000 */ sw $at, ($t6) +/* 055A74 7F020F44 8FA90158 */ lw $t1, 0x158($sp) +/* 055A78 7F020F48 8D8C8374 */ lw $t4, %lo(clock_timer)($t4) +/* 055A7C 7F020F4C 3C188003 */ lui $t8, %hi(D_8002C904) +/* 055A80 7F020F50 8D300004 */ lw $s0, 4($t1) +/* 055A84 7F020F54 8E0A001C */ lw $t2, 0x1c($s0) +/* 055A88 7F020F58 AFAB0108 */ sw $t3, 0x108($sp) +/* 055A8C 7F020F5C AFAC0104 */ sw $t4, 0x104($sp) +/* 055A90 7F020F60 AFAA0110 */ sw $t2, 0x110($sp) +/* 055A94 7F020F64 8E020014 */ lw $v0, 0x14($s0) +/* 055A98 7F020F68 304D0400 */ andi $t5, $v0, 0x400 +/* 055A9C 7F020F6C 11A00003 */ beqz $t5, .L7F020F7C +/* 055AA0 7F020F70 0002CB40 */ sll $t9, $v0, 0xd +/* 055AA4 7F020F74 07230035 */ bgezl $t9, .L7F02104C +/* 055AA8 7F020F78 96180012 */ lhu $t8, 0x12($s0) +.L7F020F7C: +/* 055AAC 7F020F7C 8F18C904 */ lw $t8, %lo(D_8002C904)($t8) +/* 055AB0 7F020F80 3C088003 */ lui $t0, %hi(D_8002C908) +/* 055AB4 7F020F84 1300001E */ beqz $t8, .L7F021000 +/* 055AB8 7F020F88 00000000 */ nop +/* 055ABC 7F020F8C 8D08C908 */ lw $t0, %lo(D_8002C908)($t0) +/* 055AC0 7F020F90 3C0E8003 */ lui $t6, %hi(animation_table_ptrs1) +/* 055AC4 7F020F94 24010001 */ li $at, 1 +/* 055AC8 7F020F98 00087880 */ sll $t7, $t0, 2 +/* 055ACC 7F020F9C 01CF7021 */ addu $t6, $t6, $t7 +/* 055AD0 7F020FA0 8DCE9D6C */ lw $t6, %lo(animation_table_ptrs1)($t6) +/* 055AD4 7F020FA4 11C1001D */ beq $t6, $at, .L7F02101C +/* 055AD8 7F020FA8 00000000 */ nop +/* 055ADC 7F020FAC 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 055AE0 7F020FB0 8FA40110 */ lw $a0, 0x110($sp) +/* 055AE4 7F020FB4 3C098003 */ lui $t1, %hi(D_8002C908) +/* 055AE8 7F020FB8 8D29C908 */ lw $t1, %lo(D_8002C908)($t1) +/* 055AEC 7F020FBC 3C058003 */ lui $a1, %hi(animation_table_ptrs1) +/* 055AF0 7F020FC0 8FA40110 */ lw $a0, 0x110($sp) +/* 055AF4 7F020FC4 00095080 */ sll $t2, $t1, 2 +/* 055AF8 7F020FC8 00AA2821 */ addu $a1, $a1, $t2 +/* 055AFC 7F020FCC 8CA59D6C */ lw $a1, %lo(animation_table_ptrs1)($a1) +/* 055B00 7F020FD0 00003025 */ move $a2, $zero +/* 055B04 7F020FD4 10450011 */ beq $v0, $a1, .L7F02101C +/* 055B08 7F020FD8 00000000 */ nop +/* 055B0C 7F020FDC 44800000 */ mtc1 $zero, $f0 +/* 055B10 7F020FE0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 055B14 7F020FE4 44812000 */ mtc1 $at, $f4 +/* 055B18 7F020FE8 44070000 */ mfc1 $a3, $f0 +/* 055B1C 7F020FEC E7A00014 */ swc1 $f0, 0x14($sp) +/* 055B20 7F020FF0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 055B24 7F020FF4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 055B28 7F020FF8 10000008 */ b .L7F02101C +/* 055B2C 7F020FFC 00000000 */ nop +.L7F021000: +/* 055B30 7F021000 0FC0C9AF */ jal manage_actions +/* 055B34 7F021004 02002025 */ move $a0, $s0 +/* 055B38 7F021008 8E0B001C */ lw $t3, 0x1c($s0) +/* 055B3C 7F02100C 15600003 */ bnez $t3, .L7F02101C +/* 055B40 7F021010 00000000 */ nop +/* 055B44 7F021014 100002BD */ b .L7F021B0C +/* 055B48 7F021018 24020001 */ li $v0, 1 +.L7F02101C: +/* 055B4C 7F02101C 3C0C8003 */ lui $t4, %hi(D_8002C90C) +/* 055B50 7F021020 8D8CC90C */ lw $t4, %lo(D_8002C90C)($t4) +/* 055B54 7F021024 3C0D8003 */ lui $t5, %hi(D_8002C910) +/* 055B58 7F021028 51800008 */ beql $t4, $zero, .L7F02104C +/* 055B5C 7F02102C 96180012 */ lhu $t8, 0x12($s0) +/* 055B60 7F021030 8DADC910 */ lw $t5, %lo(D_8002C910)($t5) +/* 055B64 7F021034 AFA00104 */ sw $zero, 0x104($sp) +/* 055B68 7F021038 24190001 */ li $t9, 1 +/* 055B6C 7F02103C 51A00003 */ beql $t5, $zero, .L7F02104C +/* 055B70 7F021040 96180012 */ lhu $t8, 0x12($s0) +/* 055B74 7F021044 AFB90104 */ sw $t9, 0x104($sp) +/* 055B78 7F021048 96180012 */ lhu $t8, 0x12($s0) +.L7F02104C: +/* 055B7C 7F02104C 33080020 */ andi $t0, $t8, 0x20 +/* 055B80 7F021050 51000006 */ beql $t0, $zero, .L7F02106C +/* 055B84 7F021054 8E020160 */ lw $v0, 0x160($s0) +/* 055B88 7F021058 0FC08105 */ jal disable_sounds_attached_to_player_then_something +/* 055B8C 7F02105C 8FA40158 */ lw $a0, 0x158($sp) +/* 055B90 7F021060 100002AA */ b .L7F021B0C +/* 055B94 7F021064 24020001 */ li $v0, 1 +/* 055B98 7F021068 8E020160 */ lw $v0, 0x160($s0) +.L7F02106C: +/* 055B9C 7F02106C 50400009 */ beql $v0, $zero, .L7F021094 +/* 055BA0 7F021070 8E020164 */ lw $v0, 0x164($s0) +/* 055BA4 7F021074 8C440004 */ lw $a0, 4($v0) +/* 055BA8 7F021078 8C8F0064 */ lw $t7, 0x64($a0) +/* 055BAC 7F02107C 31EE0004 */ andi $t6, $t7, 4 +/* 055BB0 7F021080 51C00004 */ beql $t6, $zero, .L7F021094 +/* 055BB4 7F021084 8E020164 */ lw $v0, 0x164($s0) +/* 055BB8 7F021088 0FC10409 */ jal sub_GAME_7F041024 +/* 055BBC 7F02108C 24050001 */ li $a1, 1 +/* 055BC0 7F021090 8E020164 */ lw $v0, 0x164($s0) +.L7F021094: +/* 055BC4 7F021094 50400009 */ beql $v0, $zero, .L7F0210BC +/* 055BC8 7F021098 8E020014 */ lw $v0, 0x14($s0) +/* 055BCC 7F02109C 8C440004 */ lw $a0, 4($v0) +/* 055BD0 7F0210A0 8C890064 */ lw $t1, 0x64($a0) +/* 055BD4 7F0210A4 312A0004 */ andi $t2, $t1, 4 +/* 055BD8 7F0210A8 51400004 */ beql $t2, $zero, .L7F0210BC +/* 055BDC 7F0210AC 8E020014 */ lw $v0, 0x14($s0) +/* 055BE0 7F0210B0 0FC10409 */ jal sub_GAME_7F041024 +/* 055BE4 7F0210B4 24050001 */ li $a1, 1 +/* 055BE8 7F0210B8 8E020014 */ lw $v0, 0x14($s0) +.L7F0210BC: +/* 055BEC 7F0210BC 8FAC0158 */ lw $t4, 0x158($sp) +/* 055BF0 7F0210C0 304B0400 */ andi $t3, $v0, 0x400 +/* 055BF4 7F0210C4 51600005 */ beql $t3, $zero, .L7F0210DC +/* 055BF8 7F0210C8 918D0000 */ lbu $t5, ($t4) +/* 055BFC 7F0210CC AFA0010C */ sw $zero, 0x10c($sp) +/* 055C00 7F0210D0 100000BD */ b .L7F0213C8 +/* 055C04 7F0210D4 82030007 */ lb $v1, 7($s0) +/* 055C08 7F0210D8 918D0000 */ lbu $t5, ($t4) +.L7F0210DC: +/* 055C0C 7F0210DC 24010006 */ li $at, 6 +/* 055C10 7F0210E0 55A1000D */ bnel $t5, $at, .L7F021118 +/* 055C14 7F0210E4 00027A00 */ sll $t7, $v0, 8 +/* 055C18 7F0210E8 0FC26C57 */ jal sub_GAME_7F09B15C +/* 055C1C 7F0210EC 01802025 */ move $a0, $t4 +/* 055C20 7F0210F0 0002C880 */ sll $t9, $v0, 2 +/* 055C24 7F0210F4 3C188008 */ lui $t8, %hi(ptr_BONDdata_p1) +/* 055C28 7F0210F8 0319C021 */ addu $t8, $t8, $t9 +/* 055C2C 7F0210FC 8F189EE0 */ lw $t8, %lo(ptr_BONDdata_p1)($t8) +/* 055C30 7F021100 24010001 */ li $at, 1 +/* 055C34 7F021104 8F080000 */ lw $t0, ($t8) +/* 055C38 7F021108 51010005 */ beql $t0, $at, .L7F021120 +/* 055C3C 7F02110C 240E0001 */ li $t6, 1 +/* 055C40 7F021110 8E020014 */ lw $v0, 0x14($s0) +/* 055C44 7F021114 00027A00 */ sll $t7, $v0, 8 +.L7F021118: +/* 055C48 7F021118 05E10017 */ bgez $t7, .L7F021178 +/* 055C4C 7F02111C 240E0001 */ li $t6, 1 +.L7F021120: +/* 055C50 7F021120 AFAE010C */ sw $t6, 0x10c($sp) +/* 055C54 7F021124 82090007 */ lb $t1, 7($s0) +/* 055C58 7F021128 24010003 */ li $at, 3 +/* 055C5C 7F02112C 02002025 */ move $a0, $s0 +/* 055C60 7F021130 1521000D */ bne $t1, $at, .L7F021168 +/* 055C64 7F021134 00000000 */ nop +/* 055C68 7F021138 8E0A002C */ lw $t2, 0x2c($s0) +/* 055C6C 7F02113C 1540000A */ bnez $t2, .L7F021168 +/* 055C70 7F021140 00000000 */ nop +/* 055C74 7F021144 8E0B003C */ lw $t3, 0x3c($s0) +/* 055C78 7F021148 8FA50104 */ lw $a1, 0x104($sp) +/* 055C7C 7F02114C 00003025 */ move $a2, $zero +/* 055C80 7F021150 11600005 */ beqz $t3, .L7F021168 +/* 055C84 7F021154 00000000 */ nop +/* 055C88 7F021158 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 055C8C 7F02115C 8FA40110 */ lw $a0, 0x110($sp) +/* 055C90 7F021160 10000003 */ b .L7F021170 +/* 055C94 7F021164 00000000 */ nop +.L7F021168: +/* 055C98 7F021168 0FC08390 */ jal sub_GAME_7F020E40 +/* 055C9C 7F02116C 8FA50104 */ lw $a1, 0x104($sp) +.L7F021170: +/* 055CA0 7F021170 10000095 */ b .L7F0213C8 +/* 055CA4 7F021174 82030007 */ lb $v1, 7($s0) +.L7F021178: +/* 055CA8 7F021178 82030007 */ lb $v1, 7($s0) +/* 055CAC 7F02117C 2406000E */ li $a2, 14 +/* 055CB0 7F021180 2401000F */ li $at, 15 +/* 055CB4 7F021184 10C30003 */ beq $a2, $v1, .L7F021194 +/* 055CB8 7F021188 00000000 */ nop +/* 055CBC 7F02118C 54610041 */ bnel $v1, $at, .L7F021294 +/* 055CC0 7F021190 24010003 */ li $at, 3 +.L7F021194: +/* 055CC4 7F021194 54C30005 */ bnel $a2, $v1, .L7F0211AC +/* 055CC8 7F021198 2401000F */ li $at, 15 +/* 055CCC 7F02119C 820D0038 */ lb $t5, 0x38($s0) +/* 055CD0 7F0211A0 24010006 */ li $at, 6 +/* 055CD4 7F0211A4 11A10007 */ beq $t5, $at, .L7F0211C4 +/* 055CD8 7F0211A8 2401000F */ li $at, 15 +.L7F0211AC: +/* 055CDC 7F0211AC 1461001E */ bne $v1, $at, .L7F021228 +/* 055CE0 7F0211B0 02002025 */ move $a0, $s0 +/* 055CE4 7F0211B4 820C005C */ lb $t4, 0x5c($s0) +/* 055CE8 7F0211B8 24010006 */ li $at, 6 +/* 055CEC 7F0211BC 1581001A */ bne $t4, $at, .L7F021228 +/* 055CF0 7F0211C0 00000000 */ nop +.L7F0211C4: +/* 055CF4 7F0211C4 0FC1B403 */ jal getinstsize +/* 055CF8 7F0211C8 8FA40110 */ lw $a0, 0x110($sp) +/* 055CFC 7F0211CC 8FA40158 */ lw $a0, 0x158($sp) +/* 055D00 7F0211D0 44060000 */ mfc1 $a2, $f0 +/* 055D04 7F0211D4 24070001 */ li $a3, 1 +/* 055D08 7F0211D8 24850008 */ addiu $a1, $a0, 8 +/* 055D0C 7F0211DC 0FC1535B */ jal sub_GAME_7F054D6C +/* 055D10 7F0211E0 AFA50030 */ sw $a1, 0x30($sp) +/* 055D14 7F0211E4 10400028 */ beqz $v0, .L7F021288 +/* 055D18 7F0211E8 AFA2010C */ sw $v0, 0x10c($sp) +/* 055D1C 7F0211EC 8FA40110 */ lw $a0, 0x110($sp) +/* 055D20 7F0211F0 0FC1B2E6 */ jal getsuboffset +/* 055D24 7F0211F4 260500BC */ addiu $a1, $s0, 0xbc +/* 055D28 7F0211F8 0FC1B5AC */ jal subcalcpos +/* 055D2C 7F0211FC 8FA40110 */ lw $a0, 0x110($sp) +/* 055D30 7F021200 8FA40158 */ lw $a0, 0x158($sp) +/* 055D34 7F021204 0FC10027 */ jal set_color_shading_from_tile +/* 055D38 7F021208 260500F8 */ addiu $a1, $s0, 0xf8 +/* 055D3C 7F02120C 8FA40110 */ lw $a0, 0x110($sp) +/* 055D40 7F021210 0FC1B2E6 */ jal getsuboffset +/* 055D44 7F021214 8FA50030 */ lw $a1, 0x30($sp) +/* 055D48 7F021218 0FC08365 */ jal sub_GAME_7F020D94 +/* 055D4C 7F02121C 02002025 */ move $a0, $s0 +/* 055D50 7F021220 10000019 */ b .L7F021288 +/* 055D54 7F021224 00000000 */ nop +.L7F021228: +/* 055D58 7F021228 0FC08390 */ jal sub_GAME_7F020E40 +/* 055D5C 7F02122C 8FA50104 */ lw $a1, 0x104($sp) +/* 055D60 7F021230 0FC1B403 */ jal getinstsize +/* 055D64 7F021234 8FA40110 */ lw $a0, 0x110($sp) +/* 055D68 7F021238 8FA40158 */ lw $a0, 0x158($sp) +/* 055D6C 7F02123C 44060000 */ mfc1 $a2, $f0 +/* 055D70 7F021240 24070001 */ li $a3, 1 +/* 055D74 7F021244 0FC1535B */ jal sub_GAME_7F054D6C +/* 055D78 7F021248 24850008 */ addiu $a1, $a0, 8 +/* 055D7C 7F02124C 1040000E */ beqz $v0, .L7F021288 +/* 055D80 7F021250 AFA2010C */ sw $v0, 0x10c($sp) +/* 055D84 7F021254 82030007 */ lb $v1, 7($s0) +/* 055D88 7F021258 2401000E */ li $at, 14 +/* 055D8C 7F02125C 3C088005 */ lui $t0, %hi(global_timer) +/* 055D90 7F021260 54610005 */ bnel $v1, $at, .L7F021278 +/* 055D94 7F021264 2401000F */ li $at, 15 +/* 055D98 7F021268 8D08837C */ lw $t0, %lo(global_timer)($t0) +/* 055D9C 7F02126C 10000006 */ b .L7F021288 +/* 055DA0 7F021270 AE080078 */ sw $t0, 0x78($s0) +/* 055DA4 7F021274 2401000F */ li $at, 15 +.L7F021278: +/* 055DA8 7F021278 14610003 */ bne $v1, $at, .L7F021288 +/* 055DAC 7F02127C 3C0F8005 */ lui $t7, %hi(global_timer) +/* 055DB0 7F021280 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 055DB4 7F021284 AE0F009C */ sw $t7, 0x9c($s0) +.L7F021288: +/* 055DB8 7F021288 1000004F */ b .L7F0213C8 +/* 055DBC 7F02128C 82030007 */ lb $v1, 7($s0) +/* 055DC0 7F021290 24010003 */ li $at, 3 +.L7F021294: +/* 055DC4 7F021294 5461001C */ bnel $v1, $at, .L7F021308 +/* 055DC8 7F021298 24010001 */ li $at, 1 +/* 055DCC 7F02129C 8E0E002C */ lw $t6, 0x2c($s0) +/* 055DD0 7F0212A0 55C00019 */ bnezl $t6, .L7F021308 +/* 055DD4 7F0212A4 24010001 */ li $at, 1 +/* 055DD8 7F0212A8 0FC1B403 */ jal getinstsize +/* 055DDC 7F0212AC 8FA40110 */ lw $a0, 0x110($sp) +/* 055DE0 7F0212B0 8FA40158 */ lw $a0, 0x158($sp) +/* 055DE4 7F0212B4 44060000 */ mfc1 $a2, $f0 +/* 055DE8 7F0212B8 24070001 */ li $a3, 1 +/* 055DEC 7F0212BC 0FC1535B */ jal sub_GAME_7F054D6C +/* 055DF0 7F0212C0 24850008 */ addiu $a1, $a0, 8 +/* 055DF4 7F0212C4 10400009 */ beqz $v0, .L7F0212EC +/* 055DF8 7F0212C8 AFA2010C */ sw $v0, 0x10c($sp) +/* 055DFC 7F0212CC 8E0A003C */ lw $t2, 0x3c($s0) +/* 055E00 7F0212D0 02002025 */ move $a0, $s0 +/* 055E04 7F0212D4 55400006 */ bnezl $t2, .L7F0212F0 +/* 055E08 7F0212D8 8FA40110 */ lw $a0, 0x110($sp) +/* 055E0C 7F0212DC 0FC08390 */ jal sub_GAME_7F020E40 +/* 055E10 7F0212E0 8FA50104 */ lw $a1, 0x104($sp) +/* 055E14 7F0212E4 10000005 */ b .L7F0212FC +/* 055E18 7F0212E8 00000000 */ nop +.L7F0212EC: +/* 055E1C 7F0212EC 8FA40110 */ lw $a0, 0x110($sp) +.L7F0212F0: +/* 055E20 7F0212F0 8FA50104 */ lw $a1, 0x104($sp) +/* 055E24 7F0212F4 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 055E28 7F0212F8 00003025 */ move $a2, $zero +.L7F0212FC: +/* 055E2C 7F0212FC 10000032 */ b .L7F0213C8 +/* 055E30 7F021300 82030007 */ lb $v1, 7($s0) +/* 055E34 7F021304 24010001 */ li $at, 1 +.L7F021308: +/* 055E38 7F021308 1461001C */ bne $v1, $at, .L7F02137C +/* 055E3C 7F02130C 30484000 */ andi $t0, $v0, 0x4000 +/* 055E40 7F021310 0FC1B403 */ jal getinstsize +/* 055E44 7F021314 8FA40110 */ lw $a0, 0x110($sp) +/* 055E48 7F021318 8FA40158 */ lw $a0, 0x158($sp) +/* 055E4C 7F02131C 44060000 */ mfc1 $a2, $f0 +/* 055E50 7F021320 24070001 */ li $a3, 1 +/* 055E54 7F021324 0FC1535B */ jal sub_GAME_7F054D6C +/* 055E58 7F021328 24850008 */ addiu $a1, $a0, 8 +/* 055E5C 7F02132C 14400005 */ bnez $v0, .L7F021344 +/* 055E60 7F021330 AFA2010C */ sw $v0, 0x10c($sp) +/* 055E64 7F021334 8E0D0014 */ lw $t5, 0x14($s0) +/* 055E68 7F021338 8FB90110 */ lw $t9, 0x110($sp) +/* 055E6C 7F02133C 31AC0001 */ andi $t4, $t5, 1 +/* 055E70 7F021340 11800005 */ beqz $t4, .L7F021358 +.L7F021344: +/* 055E74 7F021344 02002025 */ move $a0, $s0 +/* 055E78 7F021348 0FC08390 */ jal sub_GAME_7F020E40 +/* 055E7C 7F02134C 8FA50104 */ lw $a1, 0x104($sp) +/* 055E80 7F021350 10000008 */ b .L7F021374 +/* 055E84 7F021354 00000000 */ nop +.L7F021358: +/* 055E88 7F021358 8F380054 */ lw $t8, 0x54($t9) +/* 055E8C 7F02135C 03202025 */ move $a0, $t9 +/* 055E90 7F021360 8FA50104 */ lw $a1, 0x104($sp) +/* 055E94 7F021364 13000003 */ beqz $t8, .L7F021374 +/* 055E98 7F021368 00000000 */ nop +/* 055E9C 7F02136C 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 055EA0 7F021370 00003025 */ move $a2, $zero +.L7F021374: +/* 055EA4 7F021374 10000014 */ b .L7F0213C8 +/* 055EA8 7F021378 82030007 */ lb $v1, 7($s0) +.L7F02137C: +/* 055EAC 7F02137C 11000007 */ beqz $t0, .L7F02139C +/* 055EB0 7F021380 02002025 */ move $a0, $s0 +/* 055EB4 7F021384 8FA40110 */ lw $a0, 0x110($sp) +/* 055EB8 7F021388 8FA50104 */ lw $a1, 0x104($sp) +/* 055EBC 7F02138C 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 055EC0 7F021390 00003025 */ move $a2, $zero +/* 055EC4 7F021394 10000003 */ b .L7F0213A4 +/* 055EC8 7F021398 00000000 */ nop +.L7F02139C: +/* 055ECC 7F02139C 0FC08390 */ jal sub_GAME_7F020E40 +/* 055ED0 7F0213A0 8FA50104 */ lw $a1, 0x104($sp) +.L7F0213A4: +/* 055ED4 7F0213A4 0FC1B403 */ jal getinstsize +/* 055ED8 7F0213A8 8FA40110 */ lw $a0, 0x110($sp) +/* 055EDC 7F0213AC 8FA40158 */ lw $a0, 0x158($sp) +/* 055EE0 7F0213B0 44060000 */ mfc1 $a2, $f0 +/* 055EE4 7F0213B4 24070001 */ li $a3, 1 +/* 055EE8 7F0213B8 0FC1535B */ jal sub_GAME_7F054D6C +/* 055EEC 7F0213BC 24850008 */ addiu $a1, $a0, 8 +/* 055EF0 7F0213C0 AFA2010C */ sw $v0, 0x10c($sp) +/* 055EF4 7F0213C4 82030007 */ lb $v1, 7($s0) +.L7F0213C8: +/* 055EF8 7F0213C8 24010001 */ li $at, 1 +/* 055EFC 7F0213CC 14610009 */ bne $v1, $at, .L7F0213F4 +/* 055F00 7F0213D0 8FAE0110 */ lw $t6, 0x110($sp) +/* 055F04 7F0213D4 8DC90054 */ lw $t1, 0x54($t6) +/* 055F08 7F0213D8 8FAA0158 */ lw $t2, 0x158($sp) +/* 055F0C 7F0213DC 55200006 */ bnezl $t1, .L7F0213F8 +/* 055F10 7F0213E0 960D0012 */ lhu $t5, 0x12($s0) +/* 055F14 7F0213E4 914B0000 */ lbu $t3, ($t2) +/* 055F18 7F0213E8 24010006 */ li $at, 6 +/* 055F1C 7F0213EC 15610004 */ bne $t3, $at, .L7F021400 +/* 055F20 7F0213F0 00000000 */ nop +.L7F0213F4: +/* 055F24 7F0213F4 960D0012 */ lhu $t5, 0x12($s0) +.L7F0213F8: +/* 055F28 7F0213F8 35AC0200 */ ori $t4, $t5, 0x200 +/* 055F2C 7F0213FC A60C0012 */ sh $t4, 0x12($s0) +.L7F021400: +/* 055F30 7F021400 0FC0817C */ jal sub_GAME_7F0205F0 +/* 055F34 7F021404 02002025 */ move $a0, $s0 +/* 055F38 7F021408 8E040020 */ lw $a0, 0x20($s0) +/* 055F3C 7F02140C 50800005 */ beql $a0, $zero, .L7F021424 +/* 055F40 7F021410 8FB8010C */ lw $t8, 0x10c($sp) +/* 055F44 7F021414 0FC1AC92 */ jal sub_GAME_7F06B248 +/* 055F48 7F021418 00000000 */ nop +/* 055F4C 7F02141C AE000020 */ sw $zero, 0x20($s0) +/* 055F50 7F021420 8FB8010C */ lw $t8, 0x10c($sp) +.L7F021424: +/* 055F54 7F021424 261900F8 */ addiu $t9, $s0, 0xf8 +/* 055F58 7F021428 53000182 */ beql $t8, $zero, .L7F021A34 +/* 055F5C 7F02142C 8E020160 */ lw $v0, 0x160($s0) +/* 055F60 7F021430 0FC24412 */ jal get_debug_chrnum_flag +/* 055F64 7F021434 AFB90030 */ sw $t9, 0x30($sp) +/* 055F68 7F021438 8FA20158 */ lw $v0, 0x158($sp) +/* 055F6C 7F02143C 2404000C */ li $a0, 12 +/* 055F70 7F021440 90480001 */ lbu $t0, 1($v0) +/* 055F74 7F021444 350F0002 */ ori $t7, $t0, 2 +/* 055F78 7F021448 A04F0001 */ sb $t7, 1($v0) +/* 055F7C 7F02144C 8E0E0014 */ lw $t6, 0x14($s0) +/* 055F80 7F021450 35C90008 */ ori $t1, $t6, 8 +/* 055F84 7F021454 0FC249EF */ jal cheatCheckIfOn +/* 055F88 7F021458 AE090014 */ sw $t1, 0x14($s0) +/* 055F8C 7F02145C 10400004 */ beqz $v0, .L7F021470 +/* 055F90 7F021460 3C013EA0 */ li $at, 0x3EA00000 # 0.312500 +/* 055F94 7F021464 44816000 */ mtc1 $at, $f12 +/* 055F98 7F021468 0FC1B103 */ jal set_float_80036088 +/* 055F9C 7F02146C 00000000 */ nop +.L7F021470: +/* 055FA0 7F021470 3C0A7F02 */ lui $t2, %hi(sub_GAME_7F02083C) # $t2, 0x7f02 +/* 055FA4 7F021474 254A083C */ addiu $t2, %lo(sub_GAME_7F02083C) # addiu $t2, $t2, 0x83c +/* 055FA8 7F021478 3C018003 */ lui $at, %hi(D_80036090) +/* 055FAC 7F02147C AC2A6090 */ sw $t2, %lo(D_80036090)($at) +/* 055FB0 7F021480 3C018007 */ lui $at, %hi(dword_CODE_bss_80069B60) +/* 055FB4 7F021484 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 055FB8 7F021488 AC309B60 */ sw $s0, %lo(dword_CODE_bss_80069B60)($at) +/* 055FBC 7F02148C 8FAB0110 */ lw $t3, 0x110($sp) +/* 055FC0 7F021490 AFA20118 */ sw $v0, 0x118($sp) +/* 055FC4 7F021494 8D6D0008 */ lw $t5, 8($t3) +/* 055FC8 7F021498 85A4000E */ lh $a0, 0xe($t5) +/* 055FCC 7F02149C 00046180 */ sll $t4, $a0, 6 +/* 055FD0 7F0214A0 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 055FD4 7F0214A4 01802025 */ move $a0, $t4 +/* 055FD8 7F0214A8 3C058007 */ lui $a1, %hi(dword_CODE_bss_80069B60) +/* 055FDC 7F0214AC 24A59B60 */ addiu $a1, %lo(dword_CODE_bss_80069B60) # addiu $a1, $a1, -0x64a0 +/* 055FE0 7F0214B0 8CA30000 */ lw $v1, ($a1) +/* 055FE4 7F0214B4 AFA20128 */ sw $v0, 0x128($sp) +/* 055FE8 7F0214B8 80640011 */ lb $a0, 0x11($v1) +/* 055FEC 7F0214BC 0480000B */ bltz $a0, .L7F0214EC +/* 055FF0 7F0214C0 3C188005 */ lui $t8, %hi(clock_timer) +/* 055FF4 7F0214C4 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 055FF8 7F0214C8 240FFFFF */ li $t7, -1 +/* 055FFC 7F0214CC 0098C821 */ addu $t9, $a0, $t8 +/* 056000 7F0214D0 A0790011 */ sb $t9, 0x11($v1) +/* 056004 7F0214D4 8CA30000 */ lw $v1, ($a1) +/* 056008 7F0214D8 80680011 */ lb $t0, 0x11($v1) +/* 05600C 7F0214DC 2901001E */ slti $at, $t0, 0x1e +/* 056010 7F0214E0 54200003 */ bnezl $at, .L7F0214F0 +/* 056014 7F0214E4 27A40118 */ addiu $a0, $sp, 0x118 +/* 056018 7F0214E8 A06F0011 */ sb $t7, 0x11($v1) +.L7F0214EC: +/* 05601C 7F0214EC 27A40118 */ addiu $a0, $sp, 0x118 +.L7F0214F0: +/* 056020 7F0214F0 0FC1BCBE */ jal subcalcmatrices +/* 056024 7F0214F4 8FA50110 */ lw $a1, 0x110($sp) +/* 056028 7F0214F8 3C018003 */ lui $at, %hi(D_80036090) +/* 05602C 7F0214FC AC206090 */ sw $zero, %lo(D_80036090)($at) +/* 056030 7F021500 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 056034 7F021504 44816000 */ mtc1 $at, $f12 +/* 056038 7F021508 0FC1B103 */ jal set_float_80036088 +/* 05603C 7F02150C 00000000 */ nop +/* 056040 7F021510 260400F4 */ addiu $a0, $s0, 0xf4 +/* 056044 7F021514 0FC100C4 */ jal update_color_shading +/* 056048 7F021518 8FA50030 */ lw $a1, 0x30($sp) +/* 05604C 7F02151C 0FC1B1DA */ jal sub_GAME_7F06C768 +/* 056050 7F021520 8FA40110 */ lw $a0, 0x110($sp) +/* 056054 7F021524 8FAE0158 */ lw $t6, 0x158($sp) +/* 056058 7F021528 00002025 */ move $a0, $zero +/* 05605C 7F02152C E5C00018 */ swc1 $f0, 0x18($t6) +/* 056060 7F021530 0FC1AC48 */ jal sub_GAME_7F06B120 +/* 056064 7F021534 8FA50110 */ lw $a1, 0x110($sp) +/* 056068 7F021538 AE020020 */ sw $v0, 0x20($s0) +/* 05606C 7F02153C 26060020 */ addiu $a2, $s0, 0x20 +/* 056070 7F021540 AFA60030 */ sw $a2, 0x30($sp) +/* 056074 7F021544 8FA40158 */ lw $a0, 0x158($sp) +/* 056078 7F021548 0FC148FE */ jal sub_GAME_7F0523F8 +/* 05607C 7F02154C 00002825 */ move $a1, $zero +/* 056080 7F021550 8FA60030 */ lw $a2, 0x30($sp) +/* 056084 7F021554 8FA40158 */ lw $a0, 0x158($sp) +/* 056088 7F021558 0FC148FE */ jal sub_GAME_7F0523F8 +/* 05608C 7F02155C 24050001 */ li $a1, 1 +/* 056090 7F021560 8E0201D8 */ lw $v0, 0x1d8($s0) +/* 056094 7F021564 5040011A */ beql $v0, $zero, .L7F0219D0 +/* 056098 7F021568 8FAD0110 */ lw $t5, 0x110($sp) +/* 05609C 7F02156C 8C470004 */ lw $a3, 4($v0) +/* 0560A0 7F021570 90490001 */ lbu $t1, 1($v0) +/* 0560A4 7F021574 00003025 */ move $a2, $zero +/* 0560A8 7F021578 8CE30014 */ lw $v1, 0x14($a3) +/* 0560AC 7F02157C 352A0002 */ ori $t2, $t1, 2 +/* 0560B0 7F021580 A04A0001 */ sb $t2, 1($v0) +/* 0560B4 7F021584 8C65001C */ lw $a1, 0x1c($v1) +/* 0560B8 7F021588 8FA40110 */ lw $a0, 0x110($sp) +/* 0560BC 7F02158C AFA70100 */ sw $a3, 0x100($sp) +/* 0560C0 7F021590 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0560C4 7F021594 AFA300FC */ sw $v1, 0xfc($sp) +/* 0560C8 7F021598 8FAB00FC */ lw $t3, 0xfc($sp) +/* 0560CC 7F02159C AFA20118 */ sw $v0, 0x118($sp) +/* 0560D0 7F0215A0 8D6D0008 */ lw $t5, 8($t3) +/* 0560D4 7F0215A4 85A4000E */ lh $a0, 0xe($t5) +/* 0560D8 7F0215A8 00046180 */ sll $t4, $a0, 6 +/* 0560DC 7F0215AC 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 0560E0 7F0215B0 01802025 */ move $a0, $t4 +/* 0560E4 7F0215B4 AFA20128 */ sw $v0, 0x128($sp) +/* 0560E8 7F0215B8 27A40118 */ addiu $a0, $sp, 0x118 +/* 0560EC 7F0215BC 0FC1BC92 */ jal instcalcmatrices +/* 0560F0 7F0215C0 8FA500FC */ lw $a1, 0xfc($sp) +/* 0560F4 7F0215C4 82020006 */ lb $v0, 6($s0) +/* 0560F8 7F0215C8 2841002A */ slti $at, $v0, 0x2a +/* 0560FC 7F0215CC 142000F2 */ bnez $at, .L7F021998 +/* 056100 7F0215D0 28410046 */ slti $at, $v0, 0x46 +/* 056104 7F0215D4 102000F0 */ beqz $at, .L7F021998 +/* 056108 7F0215D8 3C198003 */ lui $t9, %hi(D_8002CCAC) +/* 05610C 7F0215DC 2739CCAC */ addiu $t9, %lo(D_8002CCAC) # addiu $t9, $t9, -0x3354 +/* 056110 7F0215E0 8F210000 */ lw $at, ($t9) +/* 056114 7F0215E4 27B800F0 */ addiu $t8, $sp, 0xf0 +/* 056118 7F0215E8 8F2F0004 */ lw $t7, 4($t9) +/* 05611C 7F0215EC AF010000 */ sw $at, ($t8) +/* 056120 7F0215F0 8F210008 */ lw $at, 8($t9) +/* 056124 7F0215F4 AF0F0004 */ sw $t7, 4($t8) +/* 056128 7F0215F8 AF010008 */ sw $at, 8($t8) +/* 05612C 7F0215FC 0FC149A1 */ jal get_hat_model +/* 056130 7F021600 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 056134 7F021604 AFA20060 */ sw $v0, 0x60($sp) +/* 056138 7F021608 82040006 */ lb $a0, 6($s0) +/* 05613C 7F02160C 00024880 */ sll $t1, $v0, 2 +/* 056140 7F021610 01224823 */ subu $t1, $t1, $v0 +/* 056144 7F021614 2484FFD6 */ addiu $a0, $a0, -0x2a +/* 056148 7F021618 000470C0 */ sll $t6, $a0, 3 +/* 05614C 7F02161C 01C47021 */ addu $t6, $t6, $a0 +/* 056150 7F021620 000E7100 */ sll $t6, $t6, 4 +/* 056154 7F021624 000948C0 */ sll $t1, $t1, 3 +/* 056158 7F021628 3C0B8004 */ lui $t3, %hi(headHat_array_8003E464) +/* 05615C 7F02162C 256BE464 */ addiu $t3, %lo(headHat_array_8003E464) # addiu $t3, $t3, -0x1b9c +/* 056160 7F021630 01C95021 */ addu $t2, $t6, $t1 +/* 056164 7F021634 014B1821 */ addu $v1, $t2, $t3 +/* 056168 7F021638 0FC243BF */ jal get_debug_render_raster +/* 05616C 7F02163C AFA30058 */ sw $v1, 0x58($sp) +/* 056170 7F021640 144000AA */ bnez $v0, .L7F0218EC +/* 056174 7F021644 8FA30058 */ lw $v1, 0x58($sp) +/* 056178 7F021648 AFA00054 */ sw $zero, 0x54($sp) +/* 05617C 7F02164C 00002025 */ move $a0, $zero +/* 056180 7F021650 24050020 */ li $a1, 32 +/* 056184 7F021654 0C0030C3 */ jal get_controller_buttons_held +/* 056188 7F021658 AFA30058 */ sw $v1, 0x58($sp) +/* 05618C 7F02165C 1040004F */ beqz $v0, .L7F02179C +/* 056190 7F021660 8FA30058 */ lw $v1, 0x58($sp) +/* 056194 7F021664 00002025 */ move $a0, $zero +/* 056198 7F021668 34058000 */ li $a1, 32768 +/* 05619C 7F02166C 0C0030C3 */ jal get_controller_buttons_held +/* 0561A0 7F021670 AFA30058 */ sw $v1, 0x58($sp) +/* 0561A4 7F021674 10400008 */ beqz $v0, .L7F021698 +/* 0561A8 7F021678 8FA30058 */ lw $v1, 0x58($sp) +/* 0561AC 7F02167C 3C018005 */ lui $at, %hi(D_80051D58) +/* 0561B0 7F021680 C4281D58 */ lwc1 $f8, %lo(D_80051D58)($at) +/* 0561B4 7F021684 C4660008 */ lwc1 $f6, 8($v1) +/* 0561B8 7F021688 240D0001 */ li $t5, 1 +/* 0561BC 7F02168C 46083281 */ sub.s $f10, $f6, $f8 +/* 0561C0 7F021690 E46A0008 */ swc1 $f10, 8($v1) +/* 0561C4 7F021694 AFAD0054 */ sw $t5, 0x54($sp) +.L7F021698: +/* 0561C8 7F021698 00002025 */ move $a0, $zero +/* 0561CC 7F02169C 24054000 */ li $a1, 16384 +/* 0561D0 7F0216A0 0C0030C3 */ jal get_controller_buttons_held +/* 0561D4 7F0216A4 AFA30058 */ sw $v1, 0x58($sp) +/* 0561D8 7F0216A8 10400008 */ beqz $v0, .L7F0216CC +/* 0561DC 7F0216AC 8FA30058 */ lw $v1, 0x58($sp) +/* 0561E0 7F0216B0 3C018005 */ lui $at, %hi(D_80051D5C) +/* 0561E4 7F0216B4 C4321D5C */ lwc1 $f18, %lo(D_80051D5C)($at) +/* 0561E8 7F0216B8 C4700008 */ lwc1 $f16, 8($v1) +/* 0561EC 7F0216BC 240C0001 */ li $t4, 1 +/* 0561F0 7F0216C0 46128100 */ add.s $f4, $f16, $f18 +/* 0561F4 7F0216C4 E4640008 */ swc1 $f4, 8($v1) +/* 0561F8 7F0216C8 AFAC0054 */ sw $t4, 0x54($sp) +.L7F0216CC: +/* 0561FC 7F0216CC 00002025 */ move $a0, $zero +/* 056200 7F0216D0 24050004 */ li $a1, 4 +/* 056204 7F0216D4 0C0030C3 */ jal get_controller_buttons_held +/* 056208 7F0216D8 AFA30058 */ sw $v1, 0x58($sp) +/* 05620C 7F0216DC 10400008 */ beqz $v0, .L7F021700 +/* 056210 7F0216E0 8FA30058 */ lw $v1, 0x58($sp) +/* 056214 7F0216E4 3C018005 */ lui $at, %hi(D_80051D60) +/* 056218 7F0216E8 C4281D60 */ lwc1 $f8, %lo(D_80051D60)($at) +/* 05621C 7F0216EC C4660004 */ lwc1 $f6, 4($v1) +/* 056220 7F0216F0 24080001 */ li $t0, 1 +/* 056224 7F0216F4 46083281 */ sub.s $f10, $f6, $f8 +/* 056228 7F0216F8 E46A0004 */ swc1 $f10, 4($v1) +/* 05622C 7F0216FC AFA80054 */ sw $t0, 0x54($sp) +.L7F021700: +/* 056230 7F021700 00002025 */ move $a0, $zero +/* 056234 7F021704 24050008 */ li $a1, 8 +/* 056238 7F021708 0C0030C3 */ jal get_controller_buttons_held +/* 05623C 7F02170C AFA30058 */ sw $v1, 0x58($sp) +/* 056240 7F021710 10400008 */ beqz $v0, .L7F021734 +/* 056244 7F021714 8FA30058 */ lw $v1, 0x58($sp) +/* 056248 7F021718 3C018005 */ lui $at, %hi(D_80051D64) +/* 05624C 7F02171C C4321D64 */ lwc1 $f18, %lo(D_80051D64)($at) +/* 056250 7F021720 C4700004 */ lwc1 $f16, 4($v1) +/* 056254 7F021724 24180001 */ li $t8, 1 +/* 056258 7F021728 46128100 */ add.s $f4, $f16, $f18 +/* 05625C 7F02172C E4640004 */ swc1 $f4, 4($v1) +/* 056260 7F021730 AFB80054 */ sw $t8, 0x54($sp) +.L7F021734: +/* 056264 7F021734 00002025 */ move $a0, $zero +/* 056268 7F021738 24050002 */ li $a1, 2 +/* 05626C 7F02173C 0C0030C3 */ jal get_controller_buttons_held +/* 056270 7F021740 AFA30058 */ sw $v1, 0x58($sp) +/* 056274 7F021744 10400008 */ beqz $v0, .L7F021768 +/* 056278 7F021748 8FA30058 */ lw $v1, 0x58($sp) +/* 05627C 7F02174C 3C018005 */ lui $at, %hi(D_80051D68) +/* 056280 7F021750 C4281D68 */ lwc1 $f8, %lo(D_80051D68)($at) +/* 056284 7F021754 C4660000 */ lwc1 $f6, ($v1) +/* 056288 7F021758 24190001 */ li $t9, 1 +/* 05628C 7F02175C 46083281 */ sub.s $f10, $f6, $f8 +/* 056290 7F021760 E46A0000 */ swc1 $f10, ($v1) +/* 056294 7F021764 AFB90054 */ sw $t9, 0x54($sp) +.L7F021768: +/* 056298 7F021768 00002025 */ move $a0, $zero +/* 05629C 7F02176C 24050001 */ li $a1, 1 +/* 0562A0 7F021770 0C0030C3 */ jal get_controller_buttons_held +/* 0562A4 7F021774 AFA30058 */ sw $v1, 0x58($sp) +/* 0562A8 7F021778 10400008 */ beqz $v0, .L7F02179C +/* 0562AC 7F02177C 8FA30058 */ lw $v1, 0x58($sp) +/* 0562B0 7F021780 3C018005 */ lui $at, %hi(D_80051D6C) +/* 0562B4 7F021784 C4321D6C */ lwc1 $f18, %lo(D_80051D6C)($at) +/* 0562B8 7F021788 C4700000 */ lwc1 $f16, ($v1) +/* 0562BC 7F02178C 240F0001 */ li $t7, 1 +/* 0562C0 7F021790 46128100 */ add.s $f4, $f16, $f18 +/* 0562C4 7F021794 E4640000 */ swc1 $f4, ($v1) +/* 0562C8 7F021798 AFAF0054 */ sw $t7, 0x54($sp) +.L7F02179C: +/* 0562CC 7F02179C 00002025 */ move $a0, $zero +/* 0562D0 7F0217A0 24050010 */ li $a1, 16 +/* 0562D4 7F0217A4 0C0030C3 */ jal get_controller_buttons_held +/* 0562D8 7F0217A8 AFA30058 */ sw $v1, 0x58($sp) +/* 0562DC 7F0217AC 1040004F */ beqz $v0, .L7F0218EC +/* 0562E0 7F0217B0 8FA30058 */ lw $v1, 0x58($sp) +/* 0562E4 7F0217B4 00002025 */ move $a0, $zero +/* 0562E8 7F0217B8 34058000 */ li $a1, 32768 +/* 0562EC 7F0217BC 0C0030C3 */ jal get_controller_buttons_held +/* 0562F0 7F0217C0 AFA30058 */ sw $v1, 0x58($sp) +/* 0562F4 7F0217C4 10400008 */ beqz $v0, .L7F0217E8 +/* 0562F8 7F0217C8 8FA30058 */ lw $v1, 0x58($sp) +/* 0562FC 7F0217CC 3C018005 */ lui $at, %hi(D_80051D70) +/* 056300 7F0217D0 C4281D70 */ lwc1 $f8, %lo(D_80051D70)($at) +/* 056304 7F0217D4 C4660014 */ lwc1 $f6, 0x14($v1) +/* 056308 7F0217D8 240E0001 */ li $t6, 1 +/* 05630C 7F0217DC 46083282 */ mul.s $f10, $f6, $f8 +/* 056310 7F0217E0 E46A0014 */ swc1 $f10, 0x14($v1) +/* 056314 7F0217E4 AFAE0054 */ sw $t6, 0x54($sp) +.L7F0217E8: +/* 056318 7F0217E8 00002025 */ move $a0, $zero +/* 05631C 7F0217EC 24054000 */ li $a1, 16384 +/* 056320 7F0217F0 0C0030C3 */ jal get_controller_buttons_held +/* 056324 7F0217F4 AFA30058 */ sw $v1, 0x58($sp) +/* 056328 7F0217F8 10400008 */ beqz $v0, .L7F02181C +/* 05632C 7F0217FC 8FA30058 */ lw $v1, 0x58($sp) +/* 056330 7F021800 3C018005 */ lui $at, %hi(D_80051D74) +/* 056334 7F021804 C4321D74 */ lwc1 $f18, %lo(D_80051D74)($at) +/* 056338 7F021808 C4700014 */ lwc1 $f16, 0x14($v1) +/* 05633C 7F02180C 24090001 */ li $t1, 1 +/* 056340 7F021810 46128102 */ mul.s $f4, $f16, $f18 +/* 056344 7F021814 E4640014 */ swc1 $f4, 0x14($v1) +/* 056348 7F021818 AFA90054 */ sw $t1, 0x54($sp) +.L7F02181C: +/* 05634C 7F02181C 00002025 */ move $a0, $zero +/* 056350 7F021820 24050004 */ li $a1, 4 +/* 056354 7F021824 0C0030C3 */ jal get_controller_buttons_held +/* 056358 7F021828 AFA30058 */ sw $v1, 0x58($sp) +/* 05635C 7F02182C 10400008 */ beqz $v0, .L7F021850 +/* 056360 7F021830 8FA30058 */ lw $v1, 0x58($sp) +/* 056364 7F021834 3C018005 */ lui $at, %hi(D_80051D78) +/* 056368 7F021838 C4281D78 */ lwc1 $f8, %lo(D_80051D78)($at) +/* 05636C 7F02183C C4660010 */ lwc1 $f6, 0x10($v1) +/* 056370 7F021840 240A0001 */ li $t2, 1 +/* 056374 7F021844 46083282 */ mul.s $f10, $f6, $f8 +/* 056378 7F021848 E46A0010 */ swc1 $f10, 0x10($v1) +/* 05637C 7F02184C AFAA0054 */ sw $t2, 0x54($sp) +.L7F021850: +/* 056380 7F021850 00002025 */ move $a0, $zero +/* 056384 7F021854 24050008 */ li $a1, 8 +/* 056388 7F021858 0C0030C3 */ jal get_controller_buttons_held +/* 05638C 7F02185C AFA30058 */ sw $v1, 0x58($sp) +/* 056390 7F021860 10400008 */ beqz $v0, .L7F021884 +/* 056394 7F021864 8FA30058 */ lw $v1, 0x58($sp) +/* 056398 7F021868 3C018005 */ lui $at, %hi(D_80051D7C) +/* 05639C 7F02186C C4321D7C */ lwc1 $f18, %lo(D_80051D7C)($at) +/* 0563A0 7F021870 C4700010 */ lwc1 $f16, 0x10($v1) +/* 0563A4 7F021874 240B0001 */ li $t3, 1 +/* 0563A8 7F021878 46128102 */ mul.s $f4, $f16, $f18 +/* 0563AC 7F02187C E4640010 */ swc1 $f4, 0x10($v1) +/* 0563B0 7F021880 AFAB0054 */ sw $t3, 0x54($sp) +.L7F021884: +/* 0563B4 7F021884 00002025 */ move $a0, $zero +/* 0563B8 7F021888 24050002 */ li $a1, 2 +/* 0563BC 7F02188C 0C0030C3 */ jal get_controller_buttons_held +/* 0563C0 7F021890 AFA30058 */ sw $v1, 0x58($sp) +/* 0563C4 7F021894 10400008 */ beqz $v0, .L7F0218B8 +/* 0563C8 7F021898 8FA30058 */ lw $v1, 0x58($sp) +/* 0563CC 7F02189C 3C018005 */ lui $at, %hi(D_80051D80) +/* 0563D0 7F0218A0 C4281D80 */ lwc1 $f8, %lo(D_80051D80)($at) +/* 0563D4 7F0218A4 C466000C */ lwc1 $f6, 0xc($v1) +/* 0563D8 7F0218A8 240D0001 */ li $t5, 1 +/* 0563DC 7F0218AC 46083282 */ mul.s $f10, $f6, $f8 +/* 0563E0 7F0218B0 E46A000C */ swc1 $f10, 0xc($v1) +/* 0563E4 7F0218B4 AFAD0054 */ sw $t5, 0x54($sp) +.L7F0218B8: +/* 0563E8 7F0218B8 00002025 */ move $a0, $zero +/* 0563EC 7F0218BC 24050001 */ li $a1, 1 +/* 0563F0 7F0218C0 0C0030C3 */ jal get_controller_buttons_held +/* 0563F4 7F0218C4 AFA30058 */ sw $v1, 0x58($sp) +/* 0563F8 7F0218C8 10400008 */ beqz $v0, .L7F0218EC +/* 0563FC 7F0218CC 8FA30058 */ lw $v1, 0x58($sp) +/* 056400 7F0218D0 3C018005 */ lui $at, %hi(D_80051D84) +/* 056404 7F0218D4 C4321D84 */ lwc1 $f18, %lo(D_80051D84)($at) +/* 056408 7F0218D8 C470000C */ lwc1 $f16, 0xc($v1) +/* 05640C 7F0218DC 240C0001 */ li $t4, 1 +/* 056410 7F0218E0 46128102 */ mul.s $f4, $f16, $f18 +/* 056414 7F0218E4 E464000C */ swc1 $f4, 0xc($v1) +/* 056418 7F0218E8 AFAC0054 */ sw $t4, 0x54($sp) +.L7F0218EC: +/* 05641C 7F0218EC 3C018005 */ lui $at, %hi(D_80051D88) +/* 056420 7F0218F0 C4201D88 */ lwc1 $f0, %lo(D_80051D88)($at) +/* 056424 7F0218F4 C4660000 */ lwc1 $f6, ($v1) +/* 056428 7F0218F8 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 05642C 7F0218FC 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 056430 7F021900 46003202 */ mul.s $f8, $f6, $f0 +/* 056434 7F021904 E7A800F0 */ swc1 $f8, 0xf0($sp) +/* 056438 7F021908 C46A0004 */ lwc1 $f10, 4($v1) +/* 05643C 7F02190C 46005402 */ mul.s $f16, $f10, $f0 +/* 056440 7F021910 E7B000F4 */ swc1 $f16, 0xf4($sp) +/* 056444 7F021914 C4720008 */ lwc1 $f18, 8($v1) +/* 056448 7F021918 46009102 */ mul.s $f4, $f18, $f0 +/* 05644C 7F02191C E7A400F8 */ swc1 $f4, 0xf8($sp) +/* 056450 7F021920 C466000C */ lwc1 $f6, 0xc($v1) +/* 056454 7F021924 E7A600EC */ swc1 $f6, 0xec($sp) +/* 056458 7F021928 C4680010 */ lwc1 $f8, 0x10($v1) +/* 05645C 7F02192C E7A800E8 */ swc1 $f8, 0xe8($sp) +/* 056460 7F021930 C46A0014 */ lwc1 $f10, 0x14($v1) +/* 056464 7F021934 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 056468 7F021938 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 05646C 7F02193C C7AC00EC */ lwc1 $f12, 0xec($sp) +/* 056470 7F021940 0FC1626D */ jal matrix_column_1_scalar_multiply +/* 056474 7F021944 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 056478 7F021948 C7AC00E8 */ lwc1 $f12, 0xe8($sp) +/* 05647C 7F02194C 0FC16279 */ jal matrix_column_2_scalar_multiply +/* 056480 7F021950 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 056484 7F021954 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 056488 7F021958 0FC16293 */ jal matrix_column_3_scalar_multiply_2 +/* 05648C 7F02195C 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 056490 7F021960 8FA800FC */ lw $t0, 0xfc($sp) +/* 056494 7F021964 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 056498 7F021968 27A60064 */ addiu $a2, $sp, 0x64 +/* 05649C 7F02196C 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0564A0 7F021970 8D04000C */ lw $a0, 0xc($t0) +/* 0564A4 7F021974 8FB800FC */ lw $t8, 0xfc($sp) +/* 0564A8 7F021978 27A40064 */ addiu $a0, $sp, 0x64 +/* 0564AC 7F02197C 0FC16008 */ jal matrix_4x4_copy +/* 0564B0 7F021980 8F05000C */ lw $a1, 0xc($t8) +/* 0564B4 7F021984 8FB90060 */ lw $t9, 0x60($sp) +/* 0564B8 7F021988 24010002 */ li $at, 2 +/* 0564BC 7F02198C 57210003 */ bnel $t9, $at, .L7F02199C +/* 0564C0 7F021990 960F0012 */ lhu $t7, 0x12($s0) +/* 0564C4 7F021994 AFA00108 */ sw $zero, 0x108($sp) +.L7F021998: +/* 0564C8 7F021998 960F0012 */ lhu $t7, 0x12($s0) +.L7F02199C: +/* 0564CC 7F02199C 8FA90100 */ lw $t1, 0x100($sp) +/* 0564D0 7F0219A0 8FA500FC */ lw $a1, 0xfc($sp) +/* 0564D4 7F0219A4 31EE0001 */ andi $t6, $t7, 1 +/* 0564D8 7F0219A8 11C00005 */ beqz $t6, .L7F0219C0 +/* 0564DC 7F0219AC 00000000 */ nop +/* 0564E0 7F0219B0 8D2A0064 */ lw $t2, 0x64($t1) +/* 0564E4 7F0219B4 314B0080 */ andi $t3, $t2, 0x80 +/* 0564E8 7F0219B8 55600005 */ bnezl $t3, .L7F0219D0 +/* 0564EC 7F0219BC 8FAD0110 */ lw $t5, 0x110($sp) +.L7F0219C0: +/* 0564F0 7F0219C0 0FC1AC48 */ jal sub_GAME_7F06B120 +/* 0564F4 7F0219C4 8E040020 */ lw $a0, 0x20($s0) +/* 0564F8 7F0219C8 AE020020 */ sw $v0, 0x20($s0) +/* 0564FC 7F0219CC 8FAD0110 */ lw $t5, 0x110($sp) +.L7F0219D0: +/* 056500 7F0219D0 8DAC0008 */ lw $t4, 8($t5) +/* 056504 7F0219D4 8D880008 */ lw $t0, 8($t4) +/* 056508 7F0219D8 8D050010 */ lw $a1, 0x10($t0) +/* 05650C 7F0219DC 10A0000E */ beqz $a1, .L7F021A18 +/* 056510 7F0219E0 00000000 */ nop +/* 056514 7F0219E4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 056518 7F0219E8 01A02025 */ move $a0, $t5 +/* 05651C 7F0219EC 8C430000 */ lw $v1, ($v0) +/* 056520 7F0219F0 10600009 */ beqz $v1, .L7F021A18 +/* 056524 7F0219F4 00000000 */ nop +/* 056528 7F0219F8 8C780008 */ lw $t8, 8($v1) +/* 05652C 7F0219FC 8F050004 */ lw $a1, 4($t8) +/* 056530 7F021A00 10A00005 */ beqz $a1, .L7F021A18 +/* 056534 7F021A04 00000000 */ nop +/* 056538 7F021A08 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 05653C 7F021A0C 8FA40110 */ lw $a0, 0x110($sp) +/* 056540 7F021A10 8FB90108 */ lw $t9, 0x108($sp) +/* 056544 7F021A14 AC590000 */ sw $t9, ($v0) +.L7F021A18: +/* 056548 7F021A18 0FC1ACA7 */ jal sub_GAME_7F06B29C +/* 05654C 7F021A1C 8E040020 */ lw $a0, 0x20($s0) +/* 056550 7F021A20 0FC1AECA */ jal sub_GAME_7F06BB28 +/* 056554 7F021A24 8E040020 */ lw $a0, 0x20($s0) +/* 056558 7F021A28 10000020 */ b .L7F021AAC +/* 05655C 7F021A2C AE020020 */ sw $v0, 0x20($s0) +/* 056560 7F021A30 8E020160 */ lw $v0, 0x160($s0) +.L7F021A34: +/* 056564 7F021A34 50400005 */ beql $v0, $zero, .L7F021A4C +/* 056568 7F021A38 8E020164 */ lw $v0, 0x164($s0) +/* 05656C 7F021A3C 904F0001 */ lbu $t7, 1($v0) +/* 056570 7F021A40 31EEFFFD */ andi $t6, $t7, 0xfffd +/* 056574 7F021A44 A04E0001 */ sb $t6, 1($v0) +/* 056578 7F021A48 8E020164 */ lw $v0, 0x164($s0) +.L7F021A4C: +/* 05657C 7F021A4C 2403FFFD */ li $v1, -3 +/* 056580 7F021A50 50400005 */ beql $v0, $zero, .L7F021A68 +/* 056584 7F021A54 8E0201D8 */ lw $v0, 0x1d8($s0) +/* 056588 7F021A58 90490001 */ lbu $t1, 1($v0) +/* 05658C 7F021A5C 01235024 */ and $t2, $t1, $v1 +/* 056590 7F021A60 A04A0001 */ sb $t2, 1($v0) +/* 056594 7F021A64 8E0201D8 */ lw $v0, 0x1d8($s0) +.L7F021A68: +/* 056598 7F021A68 50400005 */ beql $v0, $zero, .L7F021A80 +/* 05659C 7F021A6C 8FA80158 */ lw $t0, 0x158($sp) +/* 0565A0 7F021A70 904B0001 */ lbu $t3, 1($v0) +/* 0565A4 7F021A74 01636024 */ and $t4, $t3, $v1 +/* 0565A8 7F021A78 A04C0001 */ sb $t4, 1($v0) +/* 0565AC 7F021A7C 8FA80158 */ lw $t0, 0x158($sp) +.L7F021A80: +/* 0565B0 7F021A80 910D0001 */ lbu $t5, 1($t0) +/* 0565B4 7F021A84 01A3C024 */ and $t8, $t5, $v1 +/* 0565B8 7F021A88 A1180001 */ sb $t8, 1($t0) +/* 0565BC 7F021A8C 921900F8 */ lbu $t9, 0xf8($s0) +/* 0565C0 7F021A90 920F00F9 */ lbu $t7, 0xf9($s0) +/* 0565C4 7F021A94 920E00FA */ lbu $t6, 0xfa($s0) +/* 0565C8 7F021A98 920900FB */ lbu $t1, 0xfb($s0) +/* 0565CC 7F021A9C A21900F4 */ sb $t9, 0xf4($s0) +/* 0565D0 7F021AA0 A20F00F5 */ sb $t7, 0xf5($s0) +/* 0565D4 7F021AA4 A20E00F6 */ sb $t6, 0xf6($s0) +/* 0565D8 7F021AA8 A20900F7 */ sb $t1, 0xf7($s0) +.L7F021AAC: +/* 0565DC 7F021AAC 8E0A0014 */ lw $t2, 0x14($s0) +/* 0565E0 7F021AB0 314B0400 */ andi $t3, $t2, 0x400 +/* 0565E4 7F021AB4 55600015 */ bnezl $t3, .L7F021B0C +/* 0565E8 7F021AB8 00001025 */ move $v0, $zero +/* 0565EC 7F021ABC 96020012 */ lhu $v0, 0x12($s0) +/* 0565F0 7F021AC0 8FAD0158 */ lw $t5, 0x158($sp) +/* 0565F4 7F021AC4 304C0001 */ andi $t4, $v0, 1 +/* 0565F8 7F021AC8 1180000D */ beqz $t4, .L7F021B00 +/* 0565FC 7F021ACC 00000000 */ nop +/* 056600 7F021AD0 8DA40020 */ lw $a0, 0x20($t5) +/* 056604 7F021AD4 50800009 */ beql $a0, $zero, .L7F021AFC +/* 056608 7F021AD8 3058FFFE */ andi $t8, $v0, 0xfffe +/* 05660C 7F021ADC 8C830024 */ lw $v1, 0x24($a0) +.L7F021AE0: +/* 056610 7F021AE0 0FC1304C */ jal sub_GAME_7F04C130 +/* 056614 7F021AE4 AFA3003C */ sw $v1, 0x3c($sp) +/* 056618 7F021AE8 8FA4003C */ lw $a0, 0x3c($sp) +/* 05661C 7F021AEC 5480FFFC */ bnezl $a0, .L7F021AE0 +/* 056620 7F021AF0 8C830024 */ lw $v1, 0x24($a0) +/* 056624 7F021AF4 96020012 */ lhu $v0, 0x12($s0) +/* 056628 7F021AF8 3058FFFE */ andi $t8, $v0, 0xfffe +.L7F021AFC: +/* 05662C 7F021AFC A6180012 */ sh $t8, 0x12($s0) +.L7F021B00: +/* 056630 7F021B00 0FC0B89B */ jal sub_GAME_7F02E26C +/* 056634 7F021B04 02002025 */ move $a0, $s0 +/* 056638 7F021B08 00001025 */ move $v0, $zero +.L7F021B0C: +/* 05663C 7F021B0C 8FBF0024 */ lw $ra, 0x24($sp) +/* 056640 7F021B10 8FB00020 */ lw $s0, 0x20($sp) +/* 056644 7F021B14 27BD0158 */ addiu $sp, $sp, 0x158 +/* 056648 7F021B18 03E00008 */ jr $ra +/* 05664C 7F021B1C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F020EF0 +/* 055CF8 7F021188 27BDFEA8 */ addiu $sp, $sp, -0x158 +/* 055CFC 7F02118C 3C0F8003 */ lui $t7, %hi(D_8002CC6C) # $t7, 0x8003 +/* 055D00 7F021190 25EFCCAC */ addiu $t7, %lo(D_8002CC6C) # addiu $t7, $t7, -0x3354 +/* 055D04 7F021194 AFBF0024 */ sw $ra, 0x24($sp) +/* 055D08 7F021198 AFB00020 */ sw $s0, 0x20($sp) +/* 055D0C 7F02119C AFA40158 */ sw $a0, 0x158($sp) +/* 055D10 7F0211A0 25E8003C */ addiu $t0, $t7, 0x3c +/* 055D14 7F0211A4 27AE0118 */ addiu $t6, $sp, 0x118 +.Ljp7F0211A8: +/* 055D18 7F0211A8 8DE10000 */ lw $at, ($t7) +/* 055D1C 7F0211AC 25EF000C */ addiu $t7, $t7, 0xc +/* 055D20 7F0211B0 25CE000C */ addiu $t6, $t6, 0xc +/* 055D24 7F0211B4 ADC1FFF4 */ sw $at, -0xc($t6) +/* 055D28 7F0211B8 8DE1FFF8 */ lw $at, -8($t7) +/* 055D2C 7F0211BC ADC1FFF8 */ sw $at, -8($t6) +/* 055D30 7F0211C0 8DE1FFFC */ lw $at, -4($t7) +/* 055D34 7F0211C4 15E8FFF8 */ bne $t7, $t0, .Ljp7F0211A8 +/* 055D38 7F0211C8 ADC1FFFC */ sw $at, -4($t6) +/* 055D3C 7F0211CC 8DE10000 */ lw $at, ($t7) +/* 055D40 7F0211D0 3C0C8005 */ lui $t4, %hi(clock_timer) # $t4, 0x8005 +/* 055D44 7F0211D4 240B0001 */ li $t3, 1 +/* 055D48 7F0211D8 ADC10000 */ sw $at, ($t6) +/* 055D4C 7F0211DC 8FA90158 */ lw $t1, 0x158($sp) +/* 055D50 7F0211E0 8D8C83A4 */ lw $t4, %lo(clock_timer)($t4) +/* 055D54 7F0211E4 3C188003 */ lui $t8, %hi(D_8002C904) # $t8, 0x8003 +/* 055D58 7F0211E8 8D300004 */ lw $s0, 4($t1) +/* 055D5C 7F0211EC 8E0A001C */ lw $t2, 0x1c($s0) +/* 055D60 7F0211F0 AFAB0108 */ sw $t3, 0x108($sp) +/* 055D64 7F0211F4 AFAC0104 */ sw $t4, 0x104($sp) +/* 055D68 7F0211F8 AFAA0110 */ sw $t2, 0x110($sp) +/* 055D6C 7F0211FC 8E020014 */ lw $v0, 0x14($s0) +/* 055D70 7F021200 304D0400 */ andi $t5, $v0, 0x400 +/* 055D74 7F021204 11A00003 */ beqz $t5, .Ljp7F021214 +/* 055D78 7F021208 0002CB40 */ sll $t9, $v0, 0xd +/* 055D7C 7F02120C 07230035 */ bgezl $t9, .Ljp7F0212E4 +/* 055D80 7F021210 96180012 */ lhu $t8, 0x12($s0) +.Ljp7F021214: +/* 055D84 7F021214 8F18C944 */ lw $t8, %lo(D_8002C904)($t8) +/* 055D88 7F021218 3C088003 */ lui $t0, %hi(D_8002C908) # $t0, 0x8003 +/* 055D8C 7F02121C 1300001E */ beqz $t8, .Ljp7F021298 +/* 055D90 7F021220 00000000 */ nop +/* 055D94 7F021224 8D08C948 */ lw $t0, %lo(D_8002C908)($t0) +/* 055D98 7F021228 3C0E8003 */ lui $t6, %hi(animation_table_ptrs1) +/* 055D9C 7F02122C 24010001 */ li $at, 1 +/* 055DA0 7F021230 00087880 */ sll $t7, $t0, 2 +/* 055DA4 7F021234 01CF7021 */ addu $t6, $t6, $t7 +/* 055DA8 7F021238 8DCE9DAC */ lw $t6, %lo(animation_table_ptrs1)($t6) +/* 055DAC 7F02123C 11C1001D */ beq $t6, $at, .Ljp7F0212B4 +/* 055DB0 7F021240 00000000 */ nop +/* 055DB4 7F021244 0FC1BEE7 */ jal sub_GAME_7F06F5AC +/* 055DB8 7F021248 8FA40110 */ lw $a0, 0x110($sp) +/* 055DBC 7F02124C 3C098003 */ lui $t1, %hi(D_8002C908) # $t1, 0x8003 +/* 055DC0 7F021250 8D29C948 */ lw $t1, %lo(D_8002C908)($t1) +/* 055DC4 7F021254 3C058003 */ lui $a1, %hi(animation_table_ptrs1) +/* 055DC8 7F021258 8FA40110 */ lw $a0, 0x110($sp) +/* 055DCC 7F02125C 00095080 */ sll $t2, $t1, 2 +/* 055DD0 7F021260 00AA2821 */ addu $a1, $a1, $t2 +/* 055DD4 7F021264 8CA59DAC */ lw $a1, %lo(animation_table_ptrs1)($a1) +/* 055DD8 7F021268 00003025 */ move $a2, $zero +/* 055DDC 7F02126C 10450011 */ beq $v0, $a1, .Ljp7F0212B4 +/* 055DE0 7F021270 00000000 */ nop +/* 055DE4 7F021274 44800000 */ mtc1 $zero, $f0 +/* 055DE8 7F021278 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 055DEC 7F02127C 44812000 */ mtc1 $at, $f4 +/* 055DF0 7F021280 44070000 */ mfc1 $a3, $f0 +/* 055DF4 7F021284 E7A00014 */ swc1 $f0, 0x14($sp) +/* 055DF8 7F021288 0FC1C0A6 */ jal sub_GAME_7F06FCA8 +/* 055DFC 7F02128C E7A40010 */ swc1 $f4, 0x10($sp) +/* 055E00 7F021290 10000008 */ b .Ljp7F0212B4 +/* 055E04 7F021294 00000000 */ nop +.Ljp7F021298: +/* 055E08 7F021298 0FC0CA6F */ jal manage_actions +/* 055E0C 7F02129C 02002025 */ move $a0, $s0 +/* 055E10 7F0212A0 8E0B001C */ lw $t3, 0x1c($s0) +/* 055E14 7F0212A4 15600003 */ bnez $t3, .Ljp7F0212B4 +/* 055E18 7F0212A8 00000000 */ nop +/* 055E1C 7F0212AC 100002D1 */ b .Ljp7F021DF4 +/* 055E20 7F0212B0 24020001 */ li $v0, 1 +.Ljp7F0212B4: +/* 055E24 7F0212B4 3C0C8003 */ lui $t4, %hi(D_8002C90C) # $t4, 0x8003 +/* 055E28 7F0212B8 8D8CC94C */ lw $t4, %lo(D_8002C90C)($t4) +/* 055E2C 7F0212BC 3C0D8003 */ lui $t5, %hi(D_8002C910) # $t5, 0x8003 +/* 055E30 7F0212C0 51800008 */ beql $t4, $zero, .Ljp7F0212E4 +/* 055E34 7F0212C4 96180012 */ lhu $t8, 0x12($s0) +/* 055E38 7F0212C8 8DADC950 */ lw $t5, %lo(D_8002C910)($t5) +/* 055E3C 7F0212CC AFA00104 */ sw $zero, 0x104($sp) +/* 055E40 7F0212D0 24190001 */ li $t9, 1 +/* 055E44 7F0212D4 51A00003 */ beql $t5, $zero, .Ljp7F0212E4 +/* 055E48 7F0212D8 96180012 */ lhu $t8, 0x12($s0) +/* 055E4C 7F0212DC AFB90104 */ sw $t9, 0x104($sp) +/* 055E50 7F0212E0 96180012 */ lhu $t8, 0x12($s0) +.Ljp7F0212E4: +/* 055E54 7F0212E4 33080020 */ andi $t0, $t8, 0x20 +/* 055E58 7F0212E8 51000006 */ beql $t0, $zero, .Ljp7F021304 +/* 055E5C 7F0212EC 8E020160 */ lw $v0, 0x160($s0) +/* 055E60 7F0212F0 0FC08171 */ jal disable_sounds_attached_to_player_then_something +/* 055E64 7F0212F4 8FA40158 */ lw $a0, 0x158($sp) +/* 055E68 7F0212F8 100002BE */ b .Ljp7F021DF4 +/* 055E6C 7F0212FC 24020001 */ li $v0, 1 +/* 055E70 7F021300 8E020160 */ lw $v0, 0x160($s0) +.Ljp7F021304: +/* 055E74 7F021304 50400009 */ beql $v0, $zero, .Ljp7F02132C +/* 055E78 7F021308 8E020164 */ lw $v0, 0x164($s0) +/* 055E7C 7F02130C 8C440004 */ lw $a0, 4($v0) +/* 055E80 7F021310 8C8F0064 */ lw $t7, 0x64($a0) +/* 055E84 7F021314 31EE0004 */ andi $t6, $t7, 4 +/* 055E88 7F021318 51C00004 */ beql $t6, $zero, .Ljp7F02132C +/* 055E8C 7F02131C 8E020164 */ lw $v0, 0x164($s0) +/* 055E90 7F021320 0FC104C9 */ jal sub_GAME_7F041024 +/* 055E94 7F021324 24050001 */ li $a1, 1 +/* 055E98 7F021328 8E020164 */ lw $v0, 0x164($s0) +.Ljp7F02132C: +/* 055E9C 7F02132C 50400009 */ beql $v0, $zero, .Ljp7F021354 +/* 055EA0 7F021330 8E020014 */ lw $v0, 0x14($s0) +/* 055EA4 7F021334 8C440004 */ lw $a0, 4($v0) +/* 055EA8 7F021338 8C890064 */ lw $t1, 0x64($a0) +/* 055EAC 7F02133C 312A0004 */ andi $t2, $t1, 4 +/* 055EB0 7F021340 51400004 */ beql $t2, $zero, .Ljp7F021354 +/* 055EB4 7F021344 8E020014 */ lw $v0, 0x14($s0) +/* 055EB8 7F021348 0FC104C9 */ jal sub_GAME_7F041024 +/* 055EBC 7F02134C 24050001 */ li $a1, 1 +/* 055EC0 7F021350 8E020014 */ lw $v0, 0x14($s0) +.Ljp7F021354: +/* 055EC4 7F021354 8FAC0158 */ lw $t4, 0x158($sp) +/* 055EC8 7F021358 304B0400 */ andi $t3, $v0, 0x400 +/* 055ECC 7F02135C 51600005 */ beql $t3, $zero, .Ljp7F021374 +/* 055ED0 7F021360 918D0000 */ lbu $t5, ($t4) +/* 055ED4 7F021364 AFA0010C */ sw $zero, 0x10c($sp) +/* 055ED8 7F021368 100000BD */ b .Ljp7F021660 +/* 055EDC 7F02136C 82030007 */ lb $v1, 7($s0) +/* 055EE0 7F021370 918D0000 */ lbu $t5, ($t4) +.Ljp7F021374: +/* 055EE4 7F021374 24010006 */ li $at, 6 +/* 055EE8 7F021378 55A1000D */ bnel $t5, $at, .Ljp7F0213B0 +/* 055EEC 7F02137C 00027A00 */ sll $t7, $v0, 8 +/* 055EF0 7F021380 0FC26F3F */ jal sub_GAME_7F09B15C +/* 055EF4 7F021384 01802025 */ move $a0, $t4 +/* 055EF8 7F021388 0002C880 */ sll $t9, $v0, 2 +/* 055EFC 7F02138C 3C188008 */ lui $t8, %hi(ptr_BONDdata_p1) +/* 055F00 7F021390 0319C021 */ addu $t8, $t8, $t9 +/* 055F04 7F021394 8F189F50 */ lw $t8, %lo(ptr_BONDdata_p1)($t8) +/* 055F08 7F021398 24010001 */ li $at, 1 +/* 055F0C 7F02139C 8F080000 */ lw $t0, ($t8) +/* 055F10 7F0213A0 51010005 */ beql $t0, $at, .Ljp7F0213B8 +/* 055F14 7F0213A4 240E0001 */ li $t6, 1 +/* 055F18 7F0213A8 8E020014 */ lw $v0, 0x14($s0) +/* 055F1C 7F0213AC 00027A00 */ sll $t7, $v0, 8 +.Ljp7F0213B0: +/* 055F20 7F0213B0 05E10017 */ bgez $t7, .Ljp7F021410 +/* 055F24 7F0213B4 240E0001 */ li $t6, 1 +.Ljp7F0213B8: +/* 055F28 7F0213B8 AFAE010C */ sw $t6, 0x10c($sp) +/* 055F2C 7F0213BC 82090007 */ lb $t1, 7($s0) +/* 055F30 7F0213C0 24010003 */ li $at, 3 +/* 055F34 7F0213C4 02002025 */ move $a0, $s0 +/* 055F38 7F0213C8 1521000D */ bne $t1, $at, .Ljp7F021400 +/* 055F3C 7F0213CC 00000000 */ nop +/* 055F40 7F0213D0 8E0A002C */ lw $t2, 0x2c($s0) +/* 055F44 7F0213D4 1540000A */ bnez $t2, .Ljp7F021400 +/* 055F48 7F0213D8 00000000 */ nop +/* 055F4C 7F0213DC 8E0B003C */ lw $t3, 0x3c($s0) +/* 055F50 7F0213E0 8FA50104 */ lw $a1, 0x104($sp) +/* 055F54 7F0213E4 00003025 */ move $a2, $zero +/* 055F58 7F0213E8 11600005 */ beqz $t3, .Ljp7F021400 +/* 055F5C 7F0213EC 00000000 */ nop +/* 055F60 7F0213F0 0FC1C437 */ jal sub_GAME_7F070AEC +/* 055F64 7F0213F4 8FA40110 */ lw $a0, 0x110($sp) +/* 055F68 7F0213F8 10000003 */ b .Ljp7F021408 +/* 055F6C 7F0213FC 00000000 */ nop +.Ljp7F021400: +/* 055F70 7F021400 0FC08436 */ jal sub_GAME_7F020E40 +/* 055F74 7F021404 8FA50104 */ lw $a1, 0x104($sp) +.Ljp7F021408: +/* 055F78 7F021408 10000095 */ b .Ljp7F021660 +/* 055F7C 7F02140C 82030007 */ lb $v1, 7($s0) +.Ljp7F021410: +/* 055F80 7F021410 82030007 */ lb $v1, 7($s0) +/* 055F84 7F021414 2406000E */ li $a2, 14 +/* 055F88 7F021418 2401000F */ li $at, 15 +/* 055F8C 7F02141C 10C30003 */ beq $a2, $v1, .Ljp7F02142C +/* 055F90 7F021420 00000000 */ nop +/* 055F94 7F021424 54610041 */ bnel $v1, $at, .Ljp7F02152C +/* 055F98 7F021428 24010003 */ li $at, 3 +.Ljp7F02142C: +/* 055F9C 7F02142C 54C30005 */ bnel $a2, $v1, .Ljp7F021444 +/* 055FA0 7F021430 2401000F */ li $at, 15 +/* 055FA4 7F021434 820D0038 */ lb $t5, 0x38($s0) +/* 055FA8 7F021438 24010006 */ li $at, 6 +/* 055FAC 7F02143C 11A10007 */ beq $t5, $at, .Ljp7F02145C +/* 055FB0 7F021440 2401000F */ li $at, 15 +.Ljp7F021444: +/* 055FB4 7F021444 1461001E */ bne $v1, $at, .Ljp7F0214C0 +/* 055FB8 7F021448 02002025 */ move $a0, $s0 +/* 055FBC 7F02144C 820C005C */ lb $t4, 0x5c($s0) +/* 055FC0 7F021450 24010006 */ li $at, 6 +/* 055FC4 7F021454 1581001A */ bne $t4, $at, .Ljp7F0214C0 +/* 055FC8 7F021458 00000000 */ nop +.Ljp7F02145C: +/* 055FCC 7F02145C 0FC1B57F */ jal getinstsize +/* 055FD0 7F021460 8FA40110 */ lw $a0, 0x110($sp) +/* 055FD4 7F021464 8FA40158 */ lw $a0, 0x158($sp) +/* 055FD8 7F021468 44060000 */ mfc1 $a2, $f0 +/* 055FDC 7F02146C 24070001 */ li $a3, 1 +/* 055FE0 7F021470 24850008 */ addiu $a1, $a0, 8 +/* 055FE4 7F021474 0FC1549A */ jal sub_GAME_7F054D6C +/* 055FE8 7F021478 AFA50030 */ sw $a1, 0x30($sp) +/* 055FEC 7F02147C 10400028 */ beqz $v0, .Ljp7F021520 +/* 055FF0 7F021480 AFA2010C */ sw $v0, 0x10c($sp) +/* 055FF4 7F021484 8FA40110 */ lw $a0, 0x110($sp) +/* 055FF8 7F021488 0FC1B462 */ jal getsuboffset +/* 055FFC 7F02148C 260500BC */ addiu $a1, $s0, 0xbc +/* 056000 7F021490 0FC1B728 */ jal subcalcpos +/* 056004 7F021494 8FA40110 */ lw $a0, 0x110($sp) +/* 056008 7F021498 8FA40158 */ lw $a0, 0x158($sp) +/* 05600C 7F02149C 0FC100E7 */ jal set_color_shading_from_tile +/* 056010 7F0214A0 260500F8 */ addiu $a1, $s0, 0xf8 +/* 056014 7F0214A4 8FA40110 */ lw $a0, 0x110($sp) +/* 056018 7F0214A8 0FC1B462 */ jal getsuboffset +/* 05601C 7F0214AC 8FA50030 */ lw $a1, 0x30($sp) +/* 056020 7F0214B0 0FC0840B */ jal sub_GAME_7F020D94 +/* 056024 7F0214B4 02002025 */ move $a0, $s0 +/* 056028 7F0214B8 10000019 */ b .Ljp7F021520 +/* 05602C 7F0214BC 00000000 */ nop +.Ljp7F0214C0: +/* 056030 7F0214C0 0FC08436 */ jal sub_GAME_7F020E40 +/* 056034 7F0214C4 8FA50104 */ lw $a1, 0x104($sp) +/* 056038 7F0214C8 0FC1B57F */ jal getinstsize +/* 05603C 7F0214CC 8FA40110 */ lw $a0, 0x110($sp) +/* 056040 7F0214D0 8FA40158 */ lw $a0, 0x158($sp) +/* 056044 7F0214D4 44060000 */ mfc1 $a2, $f0 +/* 056048 7F0214D8 24070001 */ li $a3, 1 +/* 05604C 7F0214DC 0FC1549A */ jal sub_GAME_7F054D6C +/* 056050 7F0214E0 24850008 */ addiu $a1, $a0, 8 +/* 056054 7F0214E4 1040000E */ beqz $v0, .Ljp7F021520 +/* 056058 7F0214E8 AFA2010C */ sw $v0, 0x10c($sp) +/* 05605C 7F0214EC 82030007 */ lb $v1, 7($s0) +/* 056060 7F0214F0 2401000E */ li $at, 14 +/* 056064 7F0214F4 3C088005 */ lui $t0, %hi(global_timer) # $t0, 0x8005 +/* 056068 7F0214F8 54610005 */ bnel $v1, $at, .Ljp7F021510 +/* 05606C 7F0214FC 2401000F */ li $at, 15 +/* 056070 7F021500 8D0883AC */ lw $t0, %lo(global_timer)($t0) +/* 056074 7F021504 10000006 */ b .Ljp7F021520 +/* 056078 7F021508 AE080078 */ sw $t0, 0x78($s0) +/* 05607C 7F02150C 2401000F */ li $at, 15 +.Ljp7F021510: +/* 056080 7F021510 14610003 */ bne $v1, $at, .Ljp7F021520 +/* 056084 7F021514 3C0F8005 */ lui $t7, %hi(global_timer) # $t7, 0x8005 +/* 056088 7F021518 8DEF83AC */ lw $t7, %lo(global_timer)($t7) +/* 05608C 7F02151C AE0F009C */ sw $t7, 0x9c($s0) +.Ljp7F021520: +/* 056090 7F021520 1000004F */ b .Ljp7F021660 +/* 056094 7F021524 82030007 */ lb $v1, 7($s0) +/* 056098 7F021528 24010003 */ li $at, 3 +.Ljp7F02152C: +/* 05609C 7F02152C 5461001C */ bnel $v1, $at, .Ljp7F0215A0 +/* 0560A0 7F021530 24010001 */ li $at, 1 +/* 0560A4 7F021534 8E0E002C */ lw $t6, 0x2c($s0) +/* 0560A8 7F021538 55C00019 */ bnezl $t6, .Ljp7F0215A0 +/* 0560AC 7F02153C 24010001 */ li $at, 1 +/* 0560B0 7F021540 0FC1B57F */ jal getinstsize +/* 0560B4 7F021544 8FA40110 */ lw $a0, 0x110($sp) +/* 0560B8 7F021548 8FA40158 */ lw $a0, 0x158($sp) +/* 0560BC 7F02154C 44060000 */ mfc1 $a2, $f0 +/* 0560C0 7F021550 24070001 */ li $a3, 1 +/* 0560C4 7F021554 0FC1549A */ jal sub_GAME_7F054D6C +/* 0560C8 7F021558 24850008 */ addiu $a1, $a0, 8 +/* 0560CC 7F02155C 10400009 */ beqz $v0, .Ljp7F021584 +/* 0560D0 7F021560 AFA2010C */ sw $v0, 0x10c($sp) +/* 0560D4 7F021564 8E0A003C */ lw $t2, 0x3c($s0) +/* 0560D8 7F021568 02002025 */ move $a0, $s0 +/* 0560DC 7F02156C 55400006 */ bnezl $t2, .Ljp7F021588 +/* 0560E0 7F021570 8FA40110 */ lw $a0, 0x110($sp) +/* 0560E4 7F021574 0FC08436 */ jal sub_GAME_7F020E40 +/* 0560E8 7F021578 8FA50104 */ lw $a1, 0x104($sp) +/* 0560EC 7F02157C 10000005 */ b .Ljp7F021594 +/* 0560F0 7F021580 00000000 */ nop +.Ljp7F021584: +/* 0560F4 7F021584 8FA40110 */ lw $a0, 0x110($sp) +.Ljp7F021588: +/* 0560F8 7F021588 8FA50104 */ lw $a1, 0x104($sp) +/* 0560FC 7F02158C 0FC1C437 */ jal sub_GAME_7F070AEC +/* 056100 7F021590 00003025 */ move $a2, $zero +.Ljp7F021594: +/* 056104 7F021594 10000032 */ b .Ljp7F021660 +/* 056108 7F021598 82030007 */ lb $v1, 7($s0) +/* 05610C 7F02159C 24010001 */ li $at, 1 +.Ljp7F0215A0: +/* 056110 7F0215A0 1461001C */ bne $v1, $at, .Ljp7F021614 +/* 056114 7F0215A4 30484000 */ andi $t0, $v0, 0x4000 +/* 056118 7F0215A8 0FC1B57F */ jal getinstsize +/* 05611C 7F0215AC 8FA40110 */ lw $a0, 0x110($sp) +/* 056120 7F0215B0 8FA40158 */ lw $a0, 0x158($sp) +/* 056124 7F0215B4 44060000 */ mfc1 $a2, $f0 +/* 056128 7F0215B8 24070001 */ li $a3, 1 +/* 05612C 7F0215BC 0FC1549A */ jal sub_GAME_7F054D6C +/* 056130 7F0215C0 24850008 */ addiu $a1, $a0, 8 +/* 056134 7F0215C4 14400005 */ bnez $v0, .Ljp7F0215DC +/* 056138 7F0215C8 AFA2010C */ sw $v0, 0x10c($sp) +/* 05613C 7F0215CC 8E0D0014 */ lw $t5, 0x14($s0) +/* 056140 7F0215D0 8FB90110 */ lw $t9, 0x110($sp) +/* 056144 7F0215D4 31AC0001 */ andi $t4, $t5, 1 +/* 056148 7F0215D8 11800005 */ beqz $t4, .Ljp7F0215F0 +.Ljp7F0215DC: +/* 05614C 7F0215DC 02002025 */ move $a0, $s0 +/* 056150 7F0215E0 0FC08436 */ jal sub_GAME_7F020E40 +/* 056154 7F0215E4 8FA50104 */ lw $a1, 0x104($sp) +/* 056158 7F0215E8 10000008 */ b .Ljp7F02160C +/* 05615C 7F0215EC 00000000 */ nop +.Ljp7F0215F0: +/* 056160 7F0215F0 8F380054 */ lw $t8, 0x54($t9) +/* 056164 7F0215F4 03202025 */ move $a0, $t9 +/* 056168 7F0215F8 8FA50104 */ lw $a1, 0x104($sp) +/* 05616C 7F0215FC 13000003 */ beqz $t8, .Ljp7F02160C +/* 056170 7F021600 00000000 */ nop +/* 056174 7F021604 0FC1C437 */ jal sub_GAME_7F070AEC +/* 056178 7F021608 00003025 */ move $a2, $zero +.Ljp7F02160C: +/* 05617C 7F02160C 10000014 */ b .Ljp7F021660 +/* 056180 7F021610 82030007 */ lb $v1, 7($s0) +.Ljp7F021614: +/* 056184 7F021614 11000007 */ beqz $t0, .Ljp7F021634 +/* 056188 7F021618 02002025 */ move $a0, $s0 +/* 05618C 7F02161C 8FA40110 */ lw $a0, 0x110($sp) +/* 056190 7F021620 8FA50104 */ lw $a1, 0x104($sp) +/* 056194 7F021624 0FC1C437 */ jal sub_GAME_7F070AEC +/* 056198 7F021628 00003025 */ move $a2, $zero +/* 05619C 7F02162C 10000003 */ b .Ljp7F02163C +/* 0561A0 7F021630 00000000 */ nop +.Ljp7F021634: +/* 0561A4 7F021634 0FC08436 */ jal sub_GAME_7F020E40 +/* 0561A8 7F021638 8FA50104 */ lw $a1, 0x104($sp) +.Ljp7F02163C: +/* 0561AC 7F02163C 0FC1B57F */ jal getinstsize +/* 0561B0 7F021640 8FA40110 */ lw $a0, 0x110($sp) +/* 0561B4 7F021644 8FA40158 */ lw $a0, 0x158($sp) +/* 0561B8 7F021648 44060000 */ mfc1 $a2, $f0 +/* 0561BC 7F02164C 24070001 */ li $a3, 1 +/* 0561C0 7F021650 0FC1549A */ jal sub_GAME_7F054D6C +/* 0561C4 7F021654 24850008 */ addiu $a1, $a0, 8 +/* 0561C8 7F021658 AFA2010C */ sw $v0, 0x10c($sp) +/* 0561CC 7F02165C 82030007 */ lb $v1, 7($s0) +.Ljp7F021660: +/* 0561D0 7F021660 24010001 */ li $at, 1 +/* 0561D4 7F021664 14610009 */ bne $v1, $at, .Ljp7F02168C +/* 0561D8 7F021668 8FAE0110 */ lw $t6, 0x110($sp) +/* 0561DC 7F02166C 8DC90054 */ lw $t1, 0x54($t6) +/* 0561E0 7F021670 8FAA0158 */ lw $t2, 0x158($sp) +/* 0561E4 7F021674 55200006 */ bnezl $t1, .Ljp7F021690 +/* 0561E8 7F021678 960D0012 */ lhu $t5, 0x12($s0) +/* 0561EC 7F02167C 914B0000 */ lbu $t3, ($t2) +/* 0561F0 7F021680 24010006 */ li $at, 6 +/* 0561F4 7F021684 15610004 */ bne $t3, $at, .Ljp7F021698 +/* 0561F8 7F021688 00000000 */ nop +.Ljp7F02168C: +/* 0561FC 7F02168C 960D0012 */ lhu $t5, 0x12($s0) +.Ljp7F021690: +/* 056200 7F021690 35AC0200 */ ori $t4, $t5, 0x200 +/* 056204 7F021694 A60C0012 */ sh $t4, 0x12($s0) +.Ljp7F021698: +/* 056208 7F021698 0FC081E8 */ jal sub_GAME_7F0205F0 +/* 05620C 7F02169C 02002025 */ move $a0, $s0 +/* 056210 7F0216A0 8E040020 */ lw $a0, 0x20($s0) +/* 056214 7F0216A4 50800005 */ beql $a0, $zero, .Ljp7F0216BC +/* 056218 7F0216A8 8FB8010C */ lw $t8, 0x10c($sp) +/* 05621C 7F0216AC 0FC1AE0E */ jal sub_GAME_7F06B248 +/* 056220 7F0216B0 00000000 */ nop +/* 056224 7F0216B4 AE000020 */ sw $zero, 0x20($s0) +/* 056228 7F0216B8 8FB8010C */ lw $t8, 0x10c($sp) +.Ljp7F0216BC: +/* 05622C 7F0216BC 261900F8 */ addiu $t9, $s0, 0xf8 +/* 056230 7F0216C0 53000196 */ beql $t8, $zero, .Ljp7F021D1C +/* 056234 7F0216C4 8E020160 */ lw $v0, 0x160($s0) +/* 056238 7F0216C8 0FC246CA */ jal get_debug_chrnum_flag +/* 05623C 7F0216CC AFB9002C */ sw $t9, 0x2c($sp) +/* 056240 7F0216D0 8FA20158 */ lw $v0, 0x158($sp) +/* 056244 7F0216D4 2404000C */ li $a0, 12 +/* 056248 7F0216D8 90480001 */ lbu $t0, 1($v0) +/* 05624C 7F0216DC 350F0002 */ ori $t7, $t0, 2 +/* 056250 7F0216E0 A04F0001 */ sb $t7, 1($v0) +/* 056254 7F0216E4 8E0E0014 */ lw $t6, 0x14($s0) +/* 056258 7F0216E8 35C90008 */ ori $t1, $t6, 8 +/* 05625C 7F0216EC 0FC24CCF */ jal cheatCheckIfOn +/* 056260 7F0216F0 AE090014 */ sw $t1, 0x14($s0) +/* 056264 7F0216F4 10400018 */ beqz $v0, .Ljp7F021758 +/* 056268 7F0216F8 00000000 */ nop +/* 05626C 7F0216FC 8204000F */ lb $a0, 0xf($s0) +/* 056270 7F021700 0FC0827B */ jal jp_only_7F0209EC +/* 056274 7F021704 82050006 */ lb $a1, 6($s0) +/* 056278 7F021708 10400013 */ beqz $v0, .Ljp7F021758 +/* 05627C 7F02170C 3C013EA0 */ li $at, 0x3EA00000 # 0.312500 +/* 056280 7F021710 44816000 */ mtc1 $at, $f12 +/* 056284 7F021714 0FC1B27F */ jal set_float_80036088 +/* 056288 7F021718 00000000 */ nop +/* 05628C 7F02171C 8E020014 */ lw $v0, 0x14($s0) +/* 056290 7F021720 3C01EFFF */ lui $at, (0xEFFFFFFF >> 16) # lui $at, 0xefff +/* 056294 7F021724 3421FFFF */ ori $at, (0xEFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 056298 7F021728 000250C0 */ sll $t2, $v0, 3 +/* 05629C 7F02172C 0541000A */ bgez $t2, .Ljp7F021758 +/* 0562A0 7F021730 00415824 */ and $t3, $v0, $at +/* 0562A4 7F021734 8E04001C */ lw $a0, 0x1c($s0) +/* 0562A8 7F021738 AE0B0014 */ sw $t3, 0x14($s0) +/* 0562AC 7F02173C 3C018005 */ lui $at, %hi(D_jp80051D88) # $at, 0x8005 +/* 0562B0 7F021740 C4281D88 */ lwc1 $f8, %lo(D_jp80051D88)($at) +/* 0562B4 7F021744 C4860014 */ lwc1 $f6, 0x14($a0) +/* 0562B8 7F021748 46083283 */ div.s $f10, $f6, $f8 +/* 0562BC 7F02174C 44055000 */ mfc1 $a1, $f10 +/* 0562C0 7F021750 0FC1B51A */ jal set_obj_instance_controller_scale +/* 0562C4 7F021754 00000000 */ nop +.Ljp7F021758: +/* 0562C8 7F021758 3C0D7F02 */ lui $t5, %hi(sub_GAME_7F02083C) # $t5, 0x7f02 +/* 0562CC 7F02175C 25AD0AAC */ addiu $t5, %lo(sub_GAME_7F02083C) # addiu $t5, $t5, 0xaac +/* 0562D0 7F021760 3C018003 */ lui $at, %hi(D_80036090) # $at, 0x8003 +/* 0562D4 7F021764 AC2D60D0 */ sw $t5, %lo(D_80036090)($at) +/* 0562D8 7F021768 3C018007 */ lui $at, %hi(dword_CODE_bss_80069B60) # $at, 0x8007 +/* 0562DC 7F02176C 0FC1E26D */ jal get_BONDdata_field_10CC +/* 0562E0 7F021770 AC309BA0 */ sw $s0, %lo(dword_CODE_bss_80069B60)($at) +/* 0562E4 7F021774 8FAC0110 */ lw $t4, 0x110($sp) +/* 0562E8 7F021778 AFA20118 */ sw $v0, 0x118($sp) +/* 0562EC 7F02177C 8D980008 */ lw $t8, 8($t4) +/* 0562F0 7F021780 8704000E */ lh $a0, 0xe($t8) +/* 0562F4 7F021784 0004C980 */ sll $t9, $a0, 6 +/* 0562F8 7F021788 0FC2F8B1 */ jal sub_GAME_7F0BD714 +/* 0562FC 7F02178C 03202025 */ move $a0, $t9 +/* 056300 7F021790 3C058007 */ lui $a1, %hi(dword_CODE_bss_80069B60) # $a1, 0x8007 +/* 056304 7F021794 24A59BA0 */ addiu $a1, %lo(dword_CODE_bss_80069B60) # addiu $a1, $a1, -0x6460 +/* 056308 7F021798 8CA30000 */ lw $v1, ($a1) +/* 05630C 7F02179C AFA20128 */ sw $v0, 0x128($sp) +/* 056310 7F0217A0 80640011 */ lb $a0, 0x11($v1) +/* 056314 7F0217A4 0480000B */ bltz $a0, .Ljp7F0217D4 +/* 056318 7F0217A8 3C088005 */ lui $t0, %hi(clock_timer) # $t0, 0x8005 +/* 05631C 7F0217AC 8D0883A4 */ lw $t0, %lo(clock_timer)($t0) +/* 056320 7F0217B0 2409FFFF */ li $t1, -1 +/* 056324 7F0217B4 00887821 */ addu $t7, $a0, $t0 +/* 056328 7F0217B8 A06F0011 */ sb $t7, 0x11($v1) +/* 05632C 7F0217BC 8CA30000 */ lw $v1, ($a1) +/* 056330 7F0217C0 806E0011 */ lb $t6, 0x11($v1) +/* 056334 7F0217C4 29C1001E */ slti $at, $t6, 0x1e +/* 056338 7F0217C8 54200003 */ bnezl $at, .Ljp7F0217D8 +/* 05633C 7F0217CC 27A40118 */ addiu $a0, $sp, 0x118 +/* 056340 7F0217D0 A0690011 */ sb $t1, 0x11($v1) +.Ljp7F0217D4: +/* 056344 7F0217D4 27A40118 */ addiu $a0, $sp, 0x118 +.Ljp7F0217D8: +/* 056348 7F0217D8 0FC1BE3A */ jal subcalcmatrices +/* 05634C 7F0217DC 8FA50110 */ lw $a1, 0x110($sp) +/* 056350 7F0217E0 3C018003 */ lui $at, %hi(D_80036090) # $at, 0x8003 +/* 056354 7F0217E4 AC2060D0 */ sw $zero, %lo(D_80036090)($at) +/* 056358 7F0217E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05635C 7F0217EC 44816000 */ mtc1 $at, $f12 +/* 056360 7F0217F0 0FC1B27F */ jal set_float_80036088 +/* 056364 7F0217F4 00000000 */ nop +/* 056368 7F0217F8 260400F4 */ addiu $a0, $s0, 0xf4 +/* 05636C 7F0217FC 0FC10184 */ jal update_color_shading +/* 056370 7F021800 8FA5002C */ lw $a1, 0x2c($sp) +/* 056374 7F021804 0FC1B356 */ jal sub_GAME_7F06C768 +/* 056378 7F021808 8FA40110 */ lw $a0, 0x110($sp) +/* 05637C 7F02180C 8FAA0158 */ lw $t2, 0x158($sp) +/* 056380 7F021810 00002025 */ move $a0, $zero +/* 056384 7F021814 E5400018 */ swc1 $f0, 0x18($t2) +/* 056388 7F021818 0FC1ADC4 */ jal sub_GAME_7F06B120 +/* 05638C 7F02181C 8FA50110 */ lw $a1, 0x110($sp) +/* 056390 7F021820 AE020020 */ sw $v0, 0x20($s0) +/* 056394 7F021824 26060020 */ addiu $a2, $s0, 0x20 +/* 056398 7F021828 AFA60030 */ sw $a2, 0x30($sp) +/* 05639C 7F02182C 8FA40158 */ lw $a0, 0x158($sp) +/* 0563A0 7F021830 0FC14A3D */ jal sub_GAME_7F0523F8 +/* 0563A4 7F021834 00002825 */ move $a1, $zero +/* 0563A8 7F021838 8FA60030 */ lw $a2, 0x30($sp) +/* 0563AC 7F02183C 8FA40158 */ lw $a0, 0x158($sp) +/* 0563B0 7F021840 0FC14A3D */ jal sub_GAME_7F0523F8 +/* 0563B4 7F021844 24050001 */ li $a1, 1 +/* 0563B8 7F021848 8E0201D8 */ lw $v0, 0x1d8($s0) +/* 0563BC 7F02184C 5040011A */ beql $v0, $zero, .Ljp7F021CB8 +/* 0563C0 7F021850 8FB80110 */ lw $t8, 0x110($sp) +/* 0563C4 7F021854 8C470004 */ lw $a3, 4($v0) +/* 0563C8 7F021858 904B0001 */ lbu $t3, 1($v0) +/* 0563CC 7F02185C 00003025 */ move $a2, $zero +/* 0563D0 7F021860 8CE30014 */ lw $v1, 0x14($a3) +/* 0563D4 7F021864 356D0002 */ ori $t5, $t3, 2 +/* 0563D8 7F021868 A04D0001 */ sb $t5, 1($v0) +/* 0563DC 7F02186C 8C65001C */ lw $a1, 0x1c($v1) +/* 0563E0 7F021870 8FA40110 */ lw $a0, 0x110($sp) +/* 0563E4 7F021874 AFA70100 */ sw $a3, 0x100($sp) +/* 0563E8 7F021878 0FC1B314 */ jal sub_GAME_7F06C660 +/* 0563EC 7F02187C AFA300FC */ sw $v1, 0xfc($sp) +/* 0563F0 7F021880 8FAC00FC */ lw $t4, 0xfc($sp) +/* 0563F4 7F021884 AFA20118 */ sw $v0, 0x118($sp) +/* 0563F8 7F021888 8D980008 */ lw $t8, 8($t4) +/* 0563FC 7F02188C 8704000E */ lh $a0, 0xe($t8) +/* 056400 7F021890 0004C980 */ sll $t9, $a0, 6 +/* 056404 7F021894 0FC2F8B1 */ jal sub_GAME_7F0BD714 +/* 056408 7F021898 03202025 */ move $a0, $t9 +/* 05640C 7F02189C AFA20128 */ sw $v0, 0x128($sp) +/* 056410 7F0218A0 27A40118 */ addiu $a0, $sp, 0x118 +/* 056414 7F0218A4 0FC1BE0E */ jal instcalcmatrices +/* 056418 7F0218A8 8FA500FC */ lw $a1, 0xfc($sp) +/* 05641C 7F0218AC 82020006 */ lb $v0, 6($s0) +/* 056420 7F0218B0 2841002A */ slti $at, $v0, 0x2a +/* 056424 7F0218B4 142000F2 */ bnez $at, .Ljp7F021C80 +/* 056428 7F0218B8 28410046 */ slti $at, $v0, 0x46 +/* 05642C 7F0218BC 102000F0 */ beqz $at, .Ljp7F021C80 +/* 056430 7F0218C0 3C0F8003 */ lui $t7, %hi(D_8002CCAC) # $t7, 0x8003 +/* 056434 7F0218C4 25EFCCEC */ addiu $t7, %lo(D_8002CCAC) # addiu $t7, $t7, -0x3314 +/* 056438 7F0218C8 8DE10000 */ lw $at, ($t7) +/* 05643C 7F0218CC 27A800F0 */ addiu $t0, $sp, 0xf0 +/* 056440 7F0218D0 8DE90004 */ lw $t1, 4($t7) +/* 056444 7F0218D4 AD010000 */ sw $at, ($t0) +/* 056448 7F0218D8 8DE10008 */ lw $at, 8($t7) +/* 05644C 7F0218DC AD090004 */ sw $t1, 4($t0) +/* 056450 7F0218E0 AD010008 */ sw $at, 8($t0) +/* 056454 7F0218E4 0FC14AE0 */ jal get_hat_model +/* 056458 7F0218E8 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 05645C 7F0218EC AFA20060 */ sw $v0, 0x60($sp) +/* 056460 7F0218F0 82040006 */ lb $a0, 6($s0) +/* 056464 7F0218F4 00025880 */ sll $t3, $v0, 2 +/* 056468 7F0218F8 01625823 */ subu $t3, $t3, $v0 +/* 05646C 7F0218FC 2484FFD6 */ addiu $a0, $a0, -0x2a +/* 056470 7F021900 000450C0 */ sll $t2, $a0, 3 +/* 056474 7F021904 01445021 */ addu $t2, $t2, $a0 +/* 056478 7F021908 000A5100 */ sll $t2, $t2, 4 +/* 05647C 7F02190C 000B58C0 */ sll $t3, $t3, 3 +/* 056480 7F021910 3C0C8004 */ lui $t4, %hi(headHat_array_8003E464) # $t4, 0x8004 +/* 056484 7F021914 258CE494 */ addiu $t4, %lo(headHat_array_8003E464) # addiu $t4, $t4, -0x1b6c +/* 056488 7F021918 014B6821 */ addu $t5, $t2, $t3 +/* 05648C 7F02191C 01AC1821 */ addu $v1, $t5, $t4 +/* 056490 7F021920 0FC24677 */ jal get_debug_render_raster +/* 056494 7F021924 AFA30058 */ sw $v1, 0x58($sp) +/* 056498 7F021928 144000AA */ bnez $v0, .Ljp7F021BD4 +/* 05649C 7F02192C 8FA30058 */ lw $v1, 0x58($sp) +/* 0564A0 7F021930 AFA00054 */ sw $zero, 0x54($sp) +/* 0564A4 7F021934 00002025 */ move $a0, $zero +/* 0564A8 7F021938 24050020 */ li $a1, 32 +/* 0564AC 7F02193C 0C0030DC */ jal get_controller_buttons_held +/* 0564B0 7F021940 AFA30058 */ sw $v1, 0x58($sp) +/* 0564B4 7F021944 1040004F */ beqz $v0, .Ljp7F021A84 +/* 0564B8 7F021948 8FA30058 */ lw $v1, 0x58($sp) +/* 0564BC 7F02194C 00002025 */ move $a0, $zero +/* 0564C0 7F021950 34058000 */ li $a1, 32768 +/* 0564C4 7F021954 0C0030DC */ jal get_controller_buttons_held +/* 0564C8 7F021958 AFA30058 */ sw $v1, 0x58($sp) +/* 0564CC 7F02195C 10400008 */ beqz $v0, .Ljp7F021980 +/* 0564D0 7F021960 8FA30058 */ lw $v1, 0x58($sp) +/* 0564D4 7F021964 3C018005 */ lui $at, %hi(D_80051D58) # $at, 0x8005 +/* 0564D8 7F021968 C4321D8C */ lwc1 $f18, %lo(D_80051D58)($at) +/* 0564DC 7F02196C C4700008 */ lwc1 $f16, 8($v1) +/* 0564E0 7F021970 24180001 */ li $t8, 1 +/* 0564E4 7F021974 46128101 */ sub.s $f4, $f16, $f18 +/* 0564E8 7F021978 E4640008 */ swc1 $f4, 8($v1) +/* 0564EC 7F02197C AFB80054 */ sw $t8, 0x54($sp) +.Ljp7F021980: +/* 0564F0 7F021980 00002025 */ move $a0, $zero +/* 0564F4 7F021984 24054000 */ li $a1, 16384 +/* 0564F8 7F021988 0C0030DC */ jal get_controller_buttons_held +/* 0564FC 7F02198C AFA30058 */ sw $v1, 0x58($sp) +/* 056500 7F021990 10400008 */ beqz $v0, .Ljp7F0219B4 +/* 056504 7F021994 8FA30058 */ lw $v1, 0x58($sp) +/* 056508 7F021998 3C018005 */ lui $at, %hi(D_80051D5C) # $at, 0x8005 +/* 05650C 7F02199C C4281D90 */ lwc1 $f8, %lo(D_80051D5C)($at) +/* 056510 7F0219A0 C4660008 */ lwc1 $f6, 8($v1) +/* 056514 7F0219A4 24190001 */ li $t9, 1 +/* 056518 7F0219A8 46083280 */ add.s $f10, $f6, $f8 +/* 05651C 7F0219AC E46A0008 */ swc1 $f10, 8($v1) +/* 056520 7F0219B0 AFB90054 */ sw $t9, 0x54($sp) +.Ljp7F0219B4: +/* 056524 7F0219B4 00002025 */ move $a0, $zero +/* 056528 7F0219B8 24050004 */ li $a1, 4 +/* 05652C 7F0219BC 0C0030DC */ jal get_controller_buttons_held +/* 056530 7F0219C0 AFA30058 */ sw $v1, 0x58($sp) +/* 056534 7F0219C4 10400008 */ beqz $v0, .Ljp7F0219E8 +/* 056538 7F0219C8 8FA30058 */ lw $v1, 0x58($sp) +/* 05653C 7F0219CC 3C018005 */ lui $at, %hi(D_80051D60) # $at, 0x8005 +/* 056540 7F0219D0 C4321D94 */ lwc1 $f18, %lo(D_80051D60)($at) +/* 056544 7F0219D4 C4700004 */ lwc1 $f16, 4($v1) +/* 056548 7F0219D8 240E0001 */ li $t6, 1 +/* 05654C 7F0219DC 46128101 */ sub.s $f4, $f16, $f18 +/* 056550 7F0219E0 E4640004 */ swc1 $f4, 4($v1) +/* 056554 7F0219E4 AFAE0054 */ sw $t6, 0x54($sp) +.Ljp7F0219E8: +/* 056558 7F0219E8 00002025 */ move $a0, $zero +/* 05655C 7F0219EC 24050008 */ li $a1, 8 +/* 056560 7F0219F0 0C0030DC */ jal get_controller_buttons_held +/* 056564 7F0219F4 AFA30058 */ sw $v1, 0x58($sp) +/* 056568 7F0219F8 10400008 */ beqz $v0, .Ljp7F021A1C +/* 05656C 7F0219FC 8FA30058 */ lw $v1, 0x58($sp) +/* 056570 7F021A00 3C018005 */ lui $at, %hi(D_80051D64) # $at, 0x8005 +/* 056574 7F021A04 C4281D98 */ lwc1 $f8, %lo(D_80051D64)($at) +/* 056578 7F021A08 C4660004 */ lwc1 $f6, 4($v1) +/* 05657C 7F021A0C 24080001 */ li $t0, 1 +/* 056580 7F021A10 46083280 */ add.s $f10, $f6, $f8 +/* 056584 7F021A14 E46A0004 */ swc1 $f10, 4($v1) +/* 056588 7F021A18 AFA80054 */ sw $t0, 0x54($sp) +.Ljp7F021A1C: +/* 05658C 7F021A1C 00002025 */ move $a0, $zero +/* 056590 7F021A20 24050002 */ li $a1, 2 +/* 056594 7F021A24 0C0030DC */ jal get_controller_buttons_held +/* 056598 7F021A28 AFA30058 */ sw $v1, 0x58($sp) +/* 05659C 7F021A2C 10400008 */ beqz $v0, .Ljp7F021A50 +/* 0565A0 7F021A30 8FA30058 */ lw $v1, 0x58($sp) +/* 0565A4 7F021A34 3C018005 */ lui $at, %hi(D_80051D68) # $at, 0x8005 +/* 0565A8 7F021A38 C4321D9C */ lwc1 $f18, %lo(D_80051D68)($at) +/* 0565AC 7F021A3C C4700000 */ lwc1 $f16, ($v1) +/* 0565B0 7F021A40 240F0001 */ li $t7, 1 +/* 0565B4 7F021A44 46128101 */ sub.s $f4, $f16, $f18 +/* 0565B8 7F021A48 E4640000 */ swc1 $f4, ($v1) +/* 0565BC 7F021A4C AFAF0054 */ sw $t7, 0x54($sp) +.Ljp7F021A50: +/* 0565C0 7F021A50 00002025 */ move $a0, $zero +/* 0565C4 7F021A54 24050001 */ li $a1, 1 +/* 0565C8 7F021A58 0C0030DC */ jal get_controller_buttons_held +/* 0565CC 7F021A5C AFA30058 */ sw $v1, 0x58($sp) +/* 0565D0 7F021A60 10400008 */ beqz $v0, .Ljp7F021A84 +/* 0565D4 7F021A64 8FA30058 */ lw $v1, 0x58($sp) +/* 0565D8 7F021A68 3C018005 */ lui $at, %hi(D_80051D6C) # $at, 0x8005 +/* 0565DC 7F021A6C C4281DA0 */ lwc1 $f8, %lo(D_80051D6C)($at) +/* 0565E0 7F021A70 C4660000 */ lwc1 $f6, ($v1) +/* 0565E4 7F021A74 24090001 */ li $t1, 1 +/* 0565E8 7F021A78 46083280 */ add.s $f10, $f6, $f8 +/* 0565EC 7F021A7C E46A0000 */ swc1 $f10, ($v1) +/* 0565F0 7F021A80 AFA90054 */ sw $t1, 0x54($sp) +.Ljp7F021A84: +/* 0565F4 7F021A84 00002025 */ move $a0, $zero +/* 0565F8 7F021A88 24050010 */ li $a1, 16 +/* 0565FC 7F021A8C 0C0030DC */ jal get_controller_buttons_held +/* 056600 7F021A90 AFA30058 */ sw $v1, 0x58($sp) +/* 056604 7F021A94 1040004F */ beqz $v0, .Ljp7F021BD4 +/* 056608 7F021A98 8FA30058 */ lw $v1, 0x58($sp) +/* 05660C 7F021A9C 00002025 */ move $a0, $zero +/* 056610 7F021AA0 34058000 */ li $a1, 32768 +/* 056614 7F021AA4 0C0030DC */ jal get_controller_buttons_held +/* 056618 7F021AA8 AFA30058 */ sw $v1, 0x58($sp) +/* 05661C 7F021AAC 10400008 */ beqz $v0, .Ljp7F021AD0 +/* 056620 7F021AB0 8FA30058 */ lw $v1, 0x58($sp) +/* 056624 7F021AB4 3C018005 */ lui $at, %hi(D_80051D70) # $at, 0x8005 +/* 056628 7F021AB8 C4321DA4 */ lwc1 $f18, %lo(D_80051D70)($at) +/* 05662C 7F021ABC C4700014 */ lwc1 $f16, 0x14($v1) +/* 056630 7F021AC0 240A0001 */ li $t2, 1 +/* 056634 7F021AC4 46128102 */ mul.s $f4, $f16, $f18 +/* 056638 7F021AC8 E4640014 */ swc1 $f4, 0x14($v1) +/* 05663C 7F021ACC AFAA0054 */ sw $t2, 0x54($sp) +.Ljp7F021AD0: +/* 056640 7F021AD0 00002025 */ move $a0, $zero +/* 056644 7F021AD4 24054000 */ li $a1, 16384 +/* 056648 7F021AD8 0C0030DC */ jal get_controller_buttons_held +/* 05664C 7F021ADC AFA30058 */ sw $v1, 0x58($sp) +/* 056650 7F021AE0 10400008 */ beqz $v0, .Ljp7F021B04 +/* 056654 7F021AE4 8FA30058 */ lw $v1, 0x58($sp) +/* 056658 7F021AE8 3C018005 */ lui $at, %hi(D_80051D74) # $at, 0x8005 +/* 05665C 7F021AEC C4281DA8 */ lwc1 $f8, %lo(D_80051D74)($at) +/* 056660 7F021AF0 C4660014 */ lwc1 $f6, 0x14($v1) +/* 056664 7F021AF4 240B0001 */ li $t3, 1 +/* 056668 7F021AF8 46083282 */ mul.s $f10, $f6, $f8 +/* 05666C 7F021AFC E46A0014 */ swc1 $f10, 0x14($v1) +/* 056670 7F021B00 AFAB0054 */ sw $t3, 0x54($sp) +.Ljp7F021B04: +/* 056674 7F021B04 00002025 */ move $a0, $zero +/* 056678 7F021B08 24050004 */ li $a1, 4 +/* 05667C 7F021B0C 0C0030DC */ jal get_controller_buttons_held +/* 056680 7F021B10 AFA30058 */ sw $v1, 0x58($sp) +/* 056684 7F021B14 10400008 */ beqz $v0, .Ljp7F021B38 +/* 056688 7F021B18 8FA30058 */ lw $v1, 0x58($sp) +/* 05668C 7F021B1C 3C018005 */ lui $at, %hi(D_80051D78) # $at, 0x8005 +/* 056690 7F021B20 C4321DAC */ lwc1 $f18, %lo(D_80051D78)($at) +/* 056694 7F021B24 C4700010 */ lwc1 $f16, 0x10($v1) +/* 056698 7F021B28 240D0001 */ li $t5, 1 +/* 05669C 7F021B2C 46128102 */ mul.s $f4, $f16, $f18 +/* 0566A0 7F021B30 E4640010 */ swc1 $f4, 0x10($v1) +/* 0566A4 7F021B34 AFAD0054 */ sw $t5, 0x54($sp) +.Ljp7F021B38: +/* 0566A8 7F021B38 00002025 */ move $a0, $zero +/* 0566AC 7F021B3C 24050008 */ li $a1, 8 +/* 0566B0 7F021B40 0C0030DC */ jal get_controller_buttons_held +/* 0566B4 7F021B44 AFA30058 */ sw $v1, 0x58($sp) +/* 0566B8 7F021B48 10400008 */ beqz $v0, .Ljp7F021B6C +/* 0566BC 7F021B4C 8FA30058 */ lw $v1, 0x58($sp) +/* 0566C0 7F021B50 3C018005 */ lui $at, %hi(D_80051D7C) # $at, 0x8005 +/* 0566C4 7F021B54 C4281DB0 */ lwc1 $f8, %lo(D_80051D7C)($at) +/* 0566C8 7F021B58 C4660010 */ lwc1 $f6, 0x10($v1) +/* 0566CC 7F021B5C 240C0001 */ li $t4, 1 +/* 0566D0 7F021B60 46083282 */ mul.s $f10, $f6, $f8 +/* 0566D4 7F021B64 E46A0010 */ swc1 $f10, 0x10($v1) +/* 0566D8 7F021B68 AFAC0054 */ sw $t4, 0x54($sp) +.Ljp7F021B6C: +/* 0566DC 7F021B6C 00002025 */ move $a0, $zero +/* 0566E0 7F021B70 24050002 */ li $a1, 2 +/* 0566E4 7F021B74 0C0030DC */ jal get_controller_buttons_held +/* 0566E8 7F021B78 AFA30058 */ sw $v1, 0x58($sp) +/* 0566EC 7F021B7C 10400008 */ beqz $v0, .Ljp7F021BA0 +/* 0566F0 7F021B80 8FA30058 */ lw $v1, 0x58($sp) +/* 0566F4 7F021B84 3C018005 */ lui $at, %hi(D_80051D80) # $at, 0x8005 +/* 0566F8 7F021B88 C4321DB4 */ lwc1 $f18, %lo(D_80051D80)($at) +/* 0566FC 7F021B8C C470000C */ lwc1 $f16, 0xc($v1) +/* 056700 7F021B90 24180001 */ li $t8, 1 +/* 056704 7F021B94 46128102 */ mul.s $f4, $f16, $f18 +/* 056708 7F021B98 E464000C */ swc1 $f4, 0xc($v1) +/* 05670C 7F021B9C AFB80054 */ sw $t8, 0x54($sp) +.Ljp7F021BA0: +/* 056710 7F021BA0 00002025 */ move $a0, $zero +/* 056714 7F021BA4 24050001 */ li $a1, 1 +/* 056718 7F021BA8 0C0030DC */ jal get_controller_buttons_held +/* 05671C 7F021BAC AFA30058 */ sw $v1, 0x58($sp) +/* 056720 7F021BB0 10400008 */ beqz $v0, .Ljp7F021BD4 +/* 056724 7F021BB4 8FA30058 */ lw $v1, 0x58($sp) +/* 056728 7F021BB8 3C018005 */ lui $at, %hi(D_80051D84) # $at, 0x8005 +/* 05672C 7F021BBC C4281DB8 */ lwc1 $f8, %lo(D_80051D84)($at) +/* 056730 7F021BC0 C466000C */ lwc1 $f6, 0xc($v1) +/* 056734 7F021BC4 24190001 */ li $t9, 1 +/* 056738 7F021BC8 46083282 */ mul.s $f10, $f6, $f8 +/* 05673C 7F021BCC E46A000C */ swc1 $f10, 0xc($v1) +/* 056740 7F021BD0 AFB90054 */ sw $t9, 0x54($sp) +.Ljp7F021BD4: +/* 056744 7F021BD4 3C018005 */ lui $at, %hi(D_80051D88) # $at, 0x8005 +/* 056748 7F021BD8 C4201DBC */ lwc1 $f0, %lo(D_80051D88)($at) +/* 05674C 7F021BDC C4700000 */ lwc1 $f16, ($v1) +/* 056750 7F021BE0 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 056754 7F021BE4 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 056758 7F021BE8 46008482 */ mul.s $f18, $f16, $f0 +/* 05675C 7F021BEC E7B200F0 */ swc1 $f18, 0xf0($sp) +/* 056760 7F021BF0 C4640004 */ lwc1 $f4, 4($v1) +/* 056764 7F021BF4 46002182 */ mul.s $f6, $f4, $f0 +/* 056768 7F021BF8 E7A600F4 */ swc1 $f6, 0xf4($sp) +/* 05676C 7F021BFC C4680008 */ lwc1 $f8, 8($v1) +/* 056770 7F021C00 46004282 */ mul.s $f10, $f8, $f0 +/* 056774 7F021C04 E7AA00F8 */ swc1 $f10, 0xf8($sp) +/* 056778 7F021C08 C470000C */ lwc1 $f16, 0xc($v1) +/* 05677C 7F021C0C E7B000EC */ swc1 $f16, 0xec($sp) +/* 056780 7F021C10 C4720010 */ lwc1 $f18, 0x10($v1) +/* 056784 7F021C14 E7B200E8 */ swc1 $f18, 0xe8($sp) +/* 056788 7F021C18 C4640014 */ lwc1 $f4, 0x14($v1) +/* 05678C 7F021C1C 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 056790 7F021C20 E7A400E4 */ swc1 $f4, 0xe4($sp) +/* 056794 7F021C24 C7AC00EC */ lwc1 $f12, 0xec($sp) +/* 056798 7F021C28 0FC163B5 */ jal matrix_column_1_scalar_multiply +/* 05679C 7F021C2C 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 0567A0 7F021C30 C7AC00E8 */ lwc1 $f12, 0xe8($sp) +/* 0567A4 7F021C34 0FC163C1 */ jal matrix_column_2_scalar_multiply +/* 0567A8 7F021C38 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 0567AC 7F021C3C C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 0567B0 7F021C40 0FC163DB */ jal matrix_column_3_scalar_multiply_2 +/* 0567B4 7F021C44 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 0567B8 7F021C48 8FAE00FC */ lw $t6, 0xfc($sp) +/* 0567BC 7F021C4C 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 0567C0 7F021C50 27A60064 */ addiu $a2, $sp, 0x64 +/* 0567C4 7F021C54 0FC161AB */ jal matrix_4x4_multiply_homogeneous +/* 0567C8 7F021C58 8DC4000C */ lw $a0, 0xc($t6) +/* 0567CC 7F021C5C 8FA800FC */ lw $t0, 0xfc($sp) +/* 0567D0 7F021C60 27A40064 */ addiu $a0, $sp, 0x64 +/* 0567D4 7F021C64 0FC16150 */ jal matrix_4x4_copy +/* 0567D8 7F021C68 8D05000C */ lw $a1, 0xc($t0) +/* 0567DC 7F021C6C 8FAF0060 */ lw $t7, 0x60($sp) +/* 0567E0 7F021C70 24010002 */ li $at, 2 +/* 0567E4 7F021C74 55E10003 */ bnel $t7, $at, .Ljp7F021C84 +/* 0567E8 7F021C78 96090012 */ lhu $t1, 0x12($s0) +/* 0567EC 7F021C7C AFA00108 */ sw $zero, 0x108($sp) +.Ljp7F021C80: +/* 0567F0 7F021C80 96090012 */ lhu $t1, 0x12($s0) +.Ljp7F021C84: +/* 0567F4 7F021C84 8FAB0100 */ lw $t3, 0x100($sp) +/* 0567F8 7F021C88 8FA500FC */ lw $a1, 0xfc($sp) +/* 0567FC 7F021C8C 312A0001 */ andi $t2, $t1, 1 +/* 056800 7F021C90 11400005 */ beqz $t2, .Ljp7F021CA8 +/* 056804 7F021C94 00000000 */ nop +/* 056808 7F021C98 8D6D0064 */ lw $t5, 0x64($t3) +/* 05680C 7F021C9C 31AC0080 */ andi $t4, $t5, 0x80 +/* 056810 7F021CA0 55800005 */ bnezl $t4, .Ljp7F021CB8 +/* 056814 7F021CA4 8FB80110 */ lw $t8, 0x110($sp) +.Ljp7F021CA8: +/* 056818 7F021CA8 0FC1ADC4 */ jal sub_GAME_7F06B120 +/* 05681C 7F021CAC 8E040020 */ lw $a0, 0x20($s0) +/* 056820 7F021CB0 AE020020 */ sw $v0, 0x20($s0) +/* 056824 7F021CB4 8FB80110 */ lw $t8, 0x110($sp) +.Ljp7F021CB8: +/* 056828 7F021CB8 8F190008 */ lw $t9, 8($t8) +/* 05682C 7F021CBC 8F2E0008 */ lw $t6, 8($t9) +/* 056830 7F021CC0 8DC50010 */ lw $a1, 0x10($t6) +/* 056834 7F021CC4 10A0000E */ beqz $a1, .Ljp7F021D00 +/* 056838 7F021CC8 00000000 */ nop +/* 05683C 7F021CCC 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 056840 7F021CD0 03002025 */ move $a0, $t8 +/* 056844 7F021CD4 8C430000 */ lw $v1, ($v0) +/* 056848 7F021CD8 10600009 */ beqz $v1, .Ljp7F021D00 +/* 05684C 7F021CDC 00000000 */ nop +/* 056850 7F021CE0 8C680008 */ lw $t0, 8($v1) +/* 056854 7F021CE4 8D050004 */ lw $a1, 4($t0) +/* 056858 7F021CE8 10A00005 */ beqz $a1, .Ljp7F021D00 +/* 05685C 7F021CEC 00000000 */ nop +/* 056860 7F021CF0 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 056864 7F021CF4 8FA40110 */ lw $a0, 0x110($sp) +/* 056868 7F021CF8 8FAF0108 */ lw $t7, 0x108($sp) +/* 05686C 7F021CFC AC4F0000 */ sw $t7, ($v0) +.Ljp7F021D00: +/* 056870 7F021D00 0FC1AE23 */ jal sub_GAME_7F06B29C +/* 056874 7F021D04 8E040020 */ lw $a0, 0x20($s0) +/* 056878 7F021D08 0FC1B046 */ jal sub_GAME_7F06BB28 +/* 05687C 7F021D0C 8E040020 */ lw $a0, 0x20($s0) +/* 056880 7F021D10 10000020 */ b .Ljp7F021D94 +/* 056884 7F021D14 AE020020 */ sw $v0, 0x20($s0) +/* 056888 7F021D18 8E020160 */ lw $v0, 0x160($s0) +.Ljp7F021D1C: +/* 05688C 7F021D1C 50400005 */ beql $v0, $zero, .Ljp7F021D34 +/* 056890 7F021D20 8E020164 */ lw $v0, 0x164($s0) +/* 056894 7F021D24 90490001 */ lbu $t1, 1($v0) +/* 056898 7F021D28 312AFFFD */ andi $t2, $t1, 0xfffd +/* 05689C 7F021D2C A04A0001 */ sb $t2, 1($v0) +/* 0568A0 7F021D30 8E020164 */ lw $v0, 0x164($s0) +.Ljp7F021D34: +/* 0568A4 7F021D34 2403FFFD */ li $v1, -3 +/* 0568A8 7F021D38 50400005 */ beql $v0, $zero, .Ljp7F021D50 +/* 0568AC 7F021D3C 8E0201D8 */ lw $v0, 0x1d8($s0) +/* 0568B0 7F021D40 904B0001 */ lbu $t3, 1($v0) +/* 0568B4 7F021D44 01636824 */ and $t5, $t3, $v1 +/* 0568B8 7F021D48 A04D0001 */ sb $t5, 1($v0) +/* 0568BC 7F021D4C 8E0201D8 */ lw $v0, 0x1d8($s0) +.Ljp7F021D50: +/* 0568C0 7F021D50 50400005 */ beql $v0, $zero, .Ljp7F021D68 +/* 0568C4 7F021D54 8FAE0158 */ lw $t6, 0x158($sp) +/* 0568C8 7F021D58 904C0001 */ lbu $t4, 1($v0) +/* 0568CC 7F021D5C 0183C824 */ and $t9, $t4, $v1 +/* 0568D0 7F021D60 A0590001 */ sb $t9, 1($v0) +/* 0568D4 7F021D64 8FAE0158 */ lw $t6, 0x158($sp) +.Ljp7F021D68: +/* 0568D8 7F021D68 91D80001 */ lbu $t8, 1($t6) +/* 0568DC 7F021D6C 03034024 */ and $t0, $t8, $v1 +/* 0568E0 7F021D70 A1C80001 */ sb $t0, 1($t6) +/* 0568E4 7F021D74 920F00F8 */ lbu $t7, 0xf8($s0) +/* 0568E8 7F021D78 920900F9 */ lbu $t1, 0xf9($s0) +/* 0568EC 7F021D7C 920A00FA */ lbu $t2, 0xfa($s0) +/* 0568F0 7F021D80 920B00FB */ lbu $t3, 0xfb($s0) +/* 0568F4 7F021D84 A20F00F4 */ sb $t7, 0xf4($s0) +/* 0568F8 7F021D88 A20900F5 */ sb $t1, 0xf5($s0) +/* 0568FC 7F021D8C A20A00F6 */ sb $t2, 0xf6($s0) +/* 056900 7F021D90 A20B00F7 */ sb $t3, 0xf7($s0) +.Ljp7F021D94: +/* 056904 7F021D94 8E0D0014 */ lw $t5, 0x14($s0) +/* 056908 7F021D98 31AC0400 */ andi $t4, $t5, 0x400 +/* 05690C 7F021D9C 55800015 */ bnezl $t4, .Ljp7F021DF4 +/* 056910 7F021DA0 00001025 */ move $v0, $zero +/* 056914 7F021DA4 96020012 */ lhu $v0, 0x12($s0) +/* 056918 7F021DA8 8FB80158 */ lw $t8, 0x158($sp) +/* 05691C 7F021DAC 30590001 */ andi $t9, $v0, 1 +/* 056920 7F021DB0 1320000D */ beqz $t9, .Ljp7F021DE8 +/* 056924 7F021DB4 00000000 */ nop +/* 056928 7F021DB8 8F040020 */ lw $a0, 0x20($t8) +/* 05692C 7F021DBC 50800009 */ beql $a0, $zero, .Ljp7F021DE4 +/* 056930 7F021DC0 3048FFFE */ andi $t0, $v0, 0xfffe +/* 056934 7F021DC4 8C830024 */ lw $v1, 0x24($a0) +.Ljp7F021DC8: +/* 056938 7F021DC8 0FC1314D */ jal sub_GAME_7F04C130 +/* 05693C 7F021DCC AFA3003C */ sw $v1, 0x3c($sp) +/* 056940 7F021DD0 8FA4003C */ lw $a0, 0x3c($sp) +/* 056944 7F021DD4 5480FFFC */ bnezl $a0, .Ljp7F021DC8 +/* 056948 7F021DD8 8C830024 */ lw $v1, 0x24($a0) +/* 05694C 7F021DDC 96020012 */ lhu $v0, 0x12($s0) +/* 056950 7F021DE0 3048FFFE */ andi $t0, $v0, 0xfffe +.Ljp7F021DE4: +/* 056954 7F021DE4 A6080012 */ sh $t0, 0x12($s0) +.Ljp7F021DE8: +/* 056958 7F021DE8 0FC0B95D */ jal sub_GAME_7F02E26C +/* 05695C 7F021DEC 02002025 */ move $a0, $s0 +/* 056960 7F021DF0 00001025 */ move $v0, $zero +.Ljp7F021DF4: +/* 056964 7F021DF4 8FBF0024 */ lw $ra, 0x24($sp) +/* 056968 7F021DF8 8FB00020 */ lw $s0, 0x20($sp) +/* 05696C 7F021DFC 27BD0158 */ addiu $sp, $sp, 0x158 +/* 056970 7F021E00 03E00008 */ jr $ra +/* 056974 7F021E04 00000000 */ nop + +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F021B20(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F021B20 +/* 056650 7F021B20 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 056654 7F021B24 AFBF001C */ sw $ra, 0x1c($sp) +/* 056658 7F021B28 AFB10018 */ sw $s1, 0x18($sp) +/* 05665C 7F021B2C AFB00014 */ sw $s0, 0x14($sp) +/* 056660 7F021B30 8C8E0018 */ lw $t6, 0x18($a0) +/* 056664 7F021B34 00808825 */ move $s1, $a0 +/* 056668 7F021B38 8DD00020 */ lw $s0, 0x20($t6) +/* 05666C 7F021B3C 52000016 */ beql $s0, $zero, .L7F021B98 +/* 056670 7F021B40 962A0012 */ lhu $t2, 0x12($s1) +/* 056674 7F021B44 8E2F01D8 */ lw $t7, 0x1d8($s1) +.L7F021B48: +/* 056678 7F021B48 520F0010 */ beql $s0, $t7, .L7F021B8C +/* 05667C 7F021B4C 8E100024 */ lw $s0, 0x24($s0) +/* 056680 7F021B50 8E380164 */ lw $t8, 0x164($s1) +/* 056684 7F021B54 5218000D */ beql $s0, $t8, .L7F021B8C +/* 056688 7F021B58 8E100024 */ lw $s0, 0x24($s0) +/* 05668C 7F021B5C 8E390160 */ lw $t9, 0x160($s1) +/* 056690 7F021B60 5219000A */ beql $s0, $t9, .L7F021B8C +/* 056694 7F021B64 8E100024 */ lw $s0, 0x24($s0) +/* 056698 7F021B68 8E020004 */ lw $v0, 4($s0) +/* 05669C 7F021B6C 02002025 */ move $a0, $s0 +/* 0566A0 7F021B70 8C480008 */ lw $t0, 8($v0) +/* 0566A4 7F021B74 31092000 */ andi $t1, $t0, 0x2000 +/* 0566A8 7F021B78 55200004 */ bnezl $t1, .L7F021B8C +/* 0566AC 7F021B7C 8E100024 */ lw $s0, 0x24($s0) +/* 0566B0 7F021B80 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 0566B4 7F021B84 24050001 */ li $a1, 1 +/* 0566B8 7F021B88 8E100024 */ lw $s0, 0x24($s0) +.L7F021B8C: +/* 0566BC 7F021B8C 5600FFEE */ bnezl $s0, .L7F021B48 +/* 0566C0 7F021B90 8E2F01D8 */ lw $t7, 0x1d8($s1) +/* 0566C4 7F021B94 962A0012 */ lhu $t2, 0x12($s1) +.L7F021B98: +/* 0566C8 7F021B98 354B0001 */ ori $t3, $t2, 1 +/* 0566CC 7F021B9C A62B0012 */ sh $t3, 0x12($s1) +/* 0566D0 7F021BA0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0566D4 7F021BA4 8FB10018 */ lw $s1, 0x18($sp) +/* 0566D8 7F021BA8 8FB00014 */ lw $s0, 0x14($sp) +/* 0566DC 7F021BAC 03E00008 */ jr $ra +/* 0566E0 7F021BB0 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F021BB4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F021BB4 +/* 0566E4 7F021BB4 908E0000 */ lbu $t6, ($a0) +/* 0566E8 7F021BB8 3C028003 */ lui $v0, %hi(D_8002CCB8) +/* 0566EC 7F021BBC 2442CCB8 */ addiu $v0, %lo(D_8002CCB8) # addiu $v0, $v0, -0x3348 +/* 0566F0 7F021BC0 A04E0000 */ sb $t6, ($v0) +/* 0566F4 7F021BC4 908F0001 */ lbu $t7, 1($a0) +/* 0566F8 7F021BC8 A04F0001 */ sb $t7, 1($v0) +/* 0566FC 7F021BCC 90980002 */ lbu $t8, 2($a0) +/* 056700 7F021BD0 03E00008 */ jr $ra +/* 056704 7F021BD4 A0580002 */ sb $t8, 2($v0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F021BD8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F021BD8 +/* 056708 7F021BD8 3C028003 */ lui $v0, %hi(D_8002CCB8) +/* 05670C 7F021BDC 2442CCB8 */ addiu $v0, %lo(D_8002CCB8) # addiu $v0, $v0, -0x3348 +/* 056710 7F021BE0 904E0000 */ lbu $t6, ($v0) +/* 056714 7F021BE4 A08E0000 */ sb $t6, ($a0) +/* 056718 7F021BE8 904F0001 */ lbu $t7, 1($v0) +/* 05671C 7F021BEC A08F0001 */ sb $t7, 1($a0) +/* 056720 7F021BF0 90580002 */ lbu $t8, 2($v0) +/* 056724 7F021BF4 03E00008 */ jr $ra +/* 056728 7F021BF8 A0980002 */ sb $t8, 2($a0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F021BFC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F021BFC +/* 05672C 7F021BFC 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 056730 7F021C00 AFBF0024 */ sw $ra, 0x24($sp) +/* 056734 7F021C04 AFB00020 */ sw $s0, 0x20($sp) +/* 056738 7F021C08 AFA400D8 */ sw $a0, 0xd8($sp) +/* 05673C 7F021C0C AFA500DC */ sw $a1, 0xdc($sp) +/* 056740 7F021C10 AFA600E0 */ sw $a2, 0xe0($sp) +/* 056744 7F021C14 8C900004 */ lw $s0, 4($a0) +/* 056748 7F021C18 920F000C */ lbu $t7, 0xc($s0) +/* 05674C 7F021C1C 8E07001C */ lw $a3, 0x1c($s0) +/* 056750 7F021C20 AFAF00B4 */ sw $t7, 0xb4($sp) +/* 056754 7F021C24 8E180014 */ lw $t8, 0x14($s0) +/* 056758 7F021C28 0018C940 */ sll $t9, $t8, 5 +/* 05675C 7F021C2C 07220010 */ bltzl $t9, .L7F021C70 +/* 056760 7F021C30 8FAD00B4 */ lw $t5, 0xb4($sp) +/* 056764 7F021C34 0FC1B403 */ jal getinstsize +/* 056768 7F021C38 00E02025 */ move $a0, $a3 +/* 05676C 7F021C3C 44050000 */ mfc1 $a1, $f0 +/* 056770 7F021C40 0FC152E0 */ jal sub_GAME_7F054B80 +/* 056774 7F021C44 8FA400D8 */ lw $a0, 0xd8($sp) +/* 056778 7F021C48 8FAA00B4 */ lw $t2, 0xb4($sp) +/* 05677C 7F021C4C 448A2000 */ mtc1 $t2, $f4 +/* 056780 7F021C50 00000000 */ nop +/* 056784 7F021C54 468021A0 */ cvt.s.w $f6, $f4 +/* 056788 7F021C58 46003202 */ mul.s $f8, $f6, $f0 +/* 05678C 7F021C5C 4600428D */ trunc.w.s $f10, $f8 +/* 056790 7F021C60 440C5000 */ mfc1 $t4, $f10 +/* 056794 7F021C64 00000000 */ nop +/* 056798 7F021C68 AFAC00B4 */ sw $t4, 0xb4($sp) +/* 05679C 7F021C6C 8FAD00B4 */ lw $t5, 0xb4($sp) +.L7F021C70: +/* 0567A0 7F021C70 8FB800E0 */ lw $t8, 0xe0($sp) +/* 0567A4 7F021C74 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0567A8 7F021C78 29A100FF */ slti $at, $t5, 0xff +/* 0567AC 7F021C7C 14200006 */ bnez $at, .L7F021C98 +/* 0567B0 7F021C80 00000000 */ nop +/* 0567B4 7F021C84 8E0E0014 */ lw $t6, 0x14($s0) +/* 0567B8 7F021C88 8FAA00E0 */ lw $t2, 0xe0($sp) +/* 0567BC 7F021C8C 000E7B80 */ sll $t7, $t6, 0xe +/* 0567C0 7F021C90 05E10007 */ bgez $t7, .L7F021CB0 +/* 0567C4 7F021C94 00000000 */ nop +.L7F021C98: +/* 0567C8 7F021C98 17000003 */ bnez $t8, .L7F021CA8 +/* 0567CC 7F021C9C 24190003 */ li $t9, 3 +/* 0567D0 7F021CA0 100000F0 */ b .L7F022064 +/* 0567D4 7F021CA4 8FA200DC */ lw $v0, 0xdc($sp) +.L7F021CA8: +/* 0567D8 7F021CA8 10000007 */ b .L7F021CC8 +/* 0567DC 7F021CAC AFB900B8 */ sw $t9, 0xb8($sp) +.L7F021CB0: +/* 0567E0 7F021CB0 15400004 */ bnez $t2, .L7F021CC4 +/* 0567E4 7F021CB4 240C0002 */ li $t4, 2 +/* 0567E8 7F021CB8 240B0001 */ li $t3, 1 +/* 0567EC 7F021CBC 10000002 */ b .L7F021CC8 +/* 0567F0 7F021CC0 AFAB00B8 */ sw $t3, 0xb8($sp) +.L7F021CC4: +/* 0567F4 7F021CC4 AFAC00B8 */ sw $t4, 0xb8($sp) +.L7F021CC8: +/* 0567F8 7F021CC8 0FC2ECE9 */ jal if_sky_present_convert_values +/* 0567FC 7F021CCC 8FA400D8 */ lw $a0, 0xd8($sp) +/* 056800 7F021CD0 104000DD */ beqz $v0, .L7F022048 +/* 056804 7F021CD4 AFA200BC */ sw $v0, 0xbc($sp) +/* 056808 7F021CD8 8FAD00B4 */ lw $t5, 0xb4($sp) +/* 05680C 7F021CDC 3C0F8003 */ lui $t7, %hi(D_8002CCBC) +/* 056810 7F021CE0 25EFCCBC */ addiu $t7, %lo(D_8002CCBC) # addiu $t7, $t7, -0x3344 +/* 056814 7F021CE4 19A000D8 */ blez $t5, .L7F022048 +/* 056818 7F021CE8 27AE0070 */ addiu $t6, $sp, 0x70 +/* 05681C 7F021CEC 25F9003C */ addiu $t9, $t7, 0x3c +.L7F021CF0: +/* 056820 7F021CF0 8DE10000 */ lw $at, ($t7) +/* 056824 7F021CF4 25EF000C */ addiu $t7, $t7, 0xc +/* 056828 7F021CF8 25CE000C */ addiu $t6, $t6, 0xc +/* 05682C 7F021CFC ADC1FFF4 */ sw $at, -0xc($t6) +/* 056830 7F021D00 8DE1FFF8 */ lw $at, -8($t7) +/* 056834 7F021D04 ADC1FFF8 */ sw $at, -8($t6) +/* 056838 7F021D08 8DE1FFFC */ lw $at, -4($t7) +/* 05683C 7F021D0C 15F9FFF8 */ bne $t7, $t9, .L7F021CF0 +/* 056840 7F021D10 ADC1FFFC */ sw $at, -4($t6) +/* 056844 7F021D14 8DE10000 */ lw $at, ($t7) +/* 056848 7F021D18 240A0050 */ li $t2, 80 +/* 05684C 7F021D1C 00003825 */ move $a3, $zero +/* 056850 7F021D20 ADC10000 */ sw $at, ($t6) +/* 056854 7F021D24 AFAA004C */ sw $t2, 0x4c($sp) +/* 056858 7F021D28 8E020160 */ lw $v0, 0x160($s0) +/* 05685C 7F021D2C 8E030164 */ lw $v1, 0x164($s0) +/* 056860 7F021D30 8E0601D8 */ lw $a2, 0x1d8($s0) +/* 056864 7F021D34 00004025 */ move $t0, $zero +/* 056868 7F021D38 10400002 */ beqz $v0, .L7F021D44 +/* 05686C 7F021D3C 00004825 */ move $t1, $zero +/* 056870 7F021D40 8C470004 */ lw $a3, 4($v0) +.L7F021D44: +/* 056874 7F021D44 10600002 */ beqz $v1, .L7F021D50 +/* 056878 7F021D48 8FA400D8 */ lw $a0, 0xd8($sp) +/* 05687C 7F021D4C 8C680004 */ lw $t0, 4($v1) +.L7F021D50: +/* 056880 7F021D50 10C00002 */ beqz $a2, .L7F021D5C +/* 056884 7F021D54 27A50060 */ addiu $a1, $sp, 0x60 +/* 056888 7F021D58 8CC90004 */ lw $t1, 4($a2) +.L7F021D5C: +/* 05688C 7F021D5C AFA20048 */ sw $v0, 0x48($sp) +/* 056890 7F021D60 AFA30044 */ sw $v1, 0x44($sp) +/* 056894 7F021D64 AFA60040 */ sw $a2, 0x40($sp) +/* 056898 7F021D68 AFA7003C */ sw $a3, 0x3c($sp) +/* 05689C 7F021D6C AFA80038 */ sw $t0, 0x38($sp) +/* 0568A0 7F021D70 0FC15299 */ jal sub_GAME_7F054A64 +/* 0568A4 7F021D74 AFA90034 */ sw $t1, 0x34($sp) +/* 0568A8 7F021D78 1840000D */ blez $v0, .L7F021DB0 +/* 0568AC 7F021D7C 00000000 */ nop +/* 0568B0 7F021D80 8E0B0014 */ lw $t3, 0x14($s0) +/* 0568B4 7F021D84 8FA400DC */ lw $a0, 0xdc($sp) +/* 0568B8 7F021D88 8FA50060 */ lw $a1, 0x60($sp) +/* 0568BC 7F021D8C 000B6200 */ sll $t4, $t3, 8 +/* 0568C0 7F021D90 05800007 */ bltz $t4, .L7F021DB0 +/* 0568C4 7F021D94 8FA60064 */ lw $a2, 0x64($sp) +/* 0568C8 7F021D98 C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 0568CC 7F021D9C 8FA70068 */ lw $a3, 0x68($sp) +/* 0568D0 7F021DA0 0FC2D3FD */ jal sub_GAME_7F0B4FF4 +/* 0568D4 7F021DA4 E7B00010 */ swc1 $f16, 0x10($sp) +/* 0568D8 7F021DA8 10000004 */ b .L7F021DBC +/* 0568DC 7F021DAC 8FAD00B8 */ lw $t5, 0xb8($sp) +.L7F021DB0: +/* 0568E0 7F021DB0 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 0568E4 7F021DB4 8FA400DC */ lw $a0, 0xdc($sp) +/* 0568E8 7F021DB8 8FAD00B8 */ lw $t5, 0xb8($sp) +.L7F021DBC: +/* 0568EC 7F021DBC 24180001 */ li $t8, 1 +/* 0568F0 7F021DC0 AFB80074 */ sw $t8, 0x74($sp) +/* 0568F4 7F021DC4 AFA2007C */ sw $v0, 0x7c($sp) +/* 0568F8 7F021DC8 AFAD0078 */ sw $t5, 0x78($sp) +/* 0568FC 7F021DCC 8E190014 */ lw $t9, 0x14($s0) +/* 056900 7F021DD0 8FAE00BC */ lw $t6, 0xbc($sp) +/* 056904 7F021DD4 24010001 */ li $at, 1 +/* 056908 7F021DD8 332F2000 */ andi $t7, $t9, 0x2000 +/* 05690C 7F021DDC 11E00003 */ beqz $t7, .L7F021DEC +/* 056910 7F021DE0 00000000 */ nop +/* 056914 7F021DE4 1000000E */ b .L7F021E20 +/* 056918 7F021DE8 AFA0004C */ sw $zero, 0x4c($sp) +.L7F021DEC: +/* 05691C 7F021DEC 15C1000C */ bne $t6, $at, .L7F021E20 +/* 056920 7F021DF0 C7A400CC */ lwc1 $f4, 0xcc($sp) +/* 056924 7F021DF4 240A0050 */ li $t2, 80 +/* 056928 7F021DF8 448A4000 */ mtc1 $t2, $f8 +/* 05692C 7F021DFC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 056930 7F021E00 44819000 */ mtc1 $at, $f18 +/* 056934 7F021E04 468042A0 */ cvt.s.w $f10, $f8 +/* 056938 7F021E08 46049181 */ sub.s $f6, $f18, $f4 +/* 05693C 7F021E0C 460A3402 */ mul.s $f16, $f6, $f10 +/* 056940 7F021E10 4600848D */ trunc.w.s $f18, $f16 +/* 056944 7F021E14 440C9000 */ mfc1 $t4, $f18 +/* 056948 7F021E18 00000000 */ nop +/* 05694C 7F021E1C AFAC004C */ sw $t4, 0x4c($sp) +.L7F021E20: +/* 056950 7F021E20 0FC1CFF2 */ jal sub_GAME_7F073FC8 +/* 056954 7F021E24 8FA4004C */ lw $a0, 0x4c($sp) +/* 056958 7F021E28 920D00F4 */ lbu $t5, 0xf4($s0) +/* 05695C 7F021E2C 27A40050 */ addiu $a0, $sp, 0x50 +/* 056960 7F021E30 8FA500BC */ lw $a1, 0xbc($sp) +/* 056964 7F021E34 AFAD0050 */ sw $t5, 0x50($sp) +/* 056968 7F021E38 921800F5 */ lbu $t8, 0xf5($s0) +/* 05696C 7F021E3C 27A600C0 */ addiu $a2, $sp, 0xc0 +/* 056970 7F021E40 AFB80054 */ sw $t8, 0x54($sp) +/* 056974 7F021E44 921900F6 */ lbu $t9, 0xf6($s0) +/* 056978 7F021E48 AFB90058 */ sw $t9, 0x58($sp) +/* 05697C 7F021E4C 920F00F7 */ lbu $t7, 0xf7($s0) +/* 056980 7F021E50 0FC100E1 */ jal sub_GAME_7F040384 +/* 056984 7F021E54 AFAF005C */ sw $t7, 0x5c($sp) +/* 056988 7F021E58 3C028003 */ lui $v0, %hi(D_8002CCB8) +/* 05698C 7F021E5C 2442CCB8 */ addiu $v0, %lo(D_8002CCB8) # addiu $v0, $v0, -0x3348 +/* 056990 7F021E60 904E0002 */ lbu $t6, 2($v0) +/* 056994 7F021E64 904B0000 */ lbu $t3, ($v0) +/* 056998 7F021E68 90580001 */ lbu $t8, 1($v0) +/* 05699C 7F021E6C 000E5200 */ sll $t2, $t6, 8 +/* 0569A0 7F021E70 8FAE0050 */ lw $t6, 0x50($sp) +/* 0569A4 7F021E74 000B6600 */ sll $t4, $t3, 0x18 +/* 0569A8 7F021E78 8FAF005C */ lw $t7, 0x5c($sp) +/* 0569AC 7F021E7C 014C6825 */ or $t5, $t2, $t4 +/* 0569B0 7F021E80 0018CC00 */ sll $t9, $t8, 0x10 +/* 0569B4 7F021E84 8FAC0054 */ lw $t4, 0x54($sp) +/* 0569B8 7F021E88 01B91825 */ or $v1, $t5, $t9 +/* 0569BC 7F021E8C 000E5E00 */ sll $t3, $t6, 0x18 +/* 0569C0 7F021E90 8FB90058 */ lw $t9, 0x58($sp) +/* 0569C4 7F021E94 01EB5025 */ or $t2, $t7, $t3 +/* 0569C8 7F021E98 8FAB00B4 */ lw $t3, 0xb4($sp) +/* 0569CC 7F021E9C 000CC400 */ sll $t8, $t4, 0x10 +/* 0569D0 7F021EA0 01586825 */ or $t5, $t2, $t8 +/* 0569D4 7F021EA4 00197200 */ sll $t6, $t9, 8 +/* 0569D8 7F021EA8 01AE7825 */ or $t7, $t5, $t6 +/* 0569DC 7F021EAC 296100FF */ slti $at, $t3, 0xff +/* 0569E0 7F021EB0 10200007 */ beqz $at, .L7F021ED0 +/* 0569E4 7F021EB4 AFAF00A8 */ sw $t7, 0xa8($sp) +/* 0569E8 7F021EB8 93AA00B7 */ lbu $t2, 0xb7($sp) +/* 0569EC 7F021EBC 240C0008 */ li $t4, 8 +/* 0569F0 7F021EC0 AFAC00A0 */ sw $t4, 0xa0($sp) +/* 0569F4 7F021EC4 006A1825 */ or $v1, $v1, $t2 +/* 0569F8 7F021EC8 10000004 */ b .L7F021EDC +/* 0569FC 7F021ECC AFA300A4 */ sw $v1, 0xa4($sp) +.L7F021ED0: +/* 056A00 7F021ED0 24180007 */ li $t8, 7 +/* 056A04 7F021ED4 AFA300A4 */ sw $v1, 0xa4($sp) +/* 056A08 7F021ED8 AFB800A0 */ sw $t8, 0xa0($sp) +.L7F021EDC: +/* 056A0C 7F021EDC 3C028008 */ lui $v0, %hi(pPlayersPerm) +/* 056A10 7F021EE0 8C42A0B4 */ lw $v0, %lo(pPlayersPerm)($v0) +/* 056A14 7F021EE4 27A40070 */ addiu $a0, $sp, 0x70 +/* 056A18 7F021EE8 8C590034 */ lw $t9, 0x34($v0) +/* 056A1C 7F021EEC 272D0001 */ addiu $t5, $t9, 1 +/* 056A20 7F021EF0 AC4D0034 */ sw $t5, 0x34($v0) +/* 056A24 7F021EF4 0FC1AF03 */ jal drawjointlist +/* 056A28 7F021EF8 8E050020 */ lw $a1, 0x20($s0) +/* 056A2C 7F021EFC 8FAF003C */ lw $t7, 0x3c($sp) +/* 056A30 7F021F00 8FAE007C */ lw $t6, 0x7c($sp) +/* 056A34 7F021F04 8FA600E0 */ lw $a2, 0xe0($sp) +/* 056A38 7F021F08 11E0000B */ beqz $t7, .L7F021F38 +/* 056A3C 7F021F0C AFAE00DC */ sw $t6, 0xdc($sp) +/* 056A40 7F021F10 91EB0002 */ lbu $t3, 2($t7) +/* 056A44 7F021F14 240C0001 */ li $t4, 1 +/* 056A48 7F021F18 00CC5004 */ sllv $t2, $t4, $a2 +/* 056A4C 7F021F1C 315800FF */ andi $t8, $t2, 0xff +/* 056A50 7F021F20 0178C824 */ and $t9, $t3, $t8 +/* 056A54 7F021F24 13200004 */ beqz $t9, .L7F021F38 +/* 056A58 7F021F28 01C02025 */ move $a0, $t6 +/* 056A5C 7F021F2C 0FC286A5 */ jal sub_GAME_7F0A1A94 +/* 056A60 7F021F30 8FA50048 */ lw $a1, 0x48($sp) +/* 056A64 7F021F34 AFA200DC */ sw $v0, 0xdc($sp) +.L7F021F38: +/* 056A68 7F021F38 8FAD0038 */ lw $t5, 0x38($sp) +/* 056A6C 7F021F3C 8FA600E0 */ lw $a2, 0xe0($sp) +/* 056A70 7F021F40 240C0001 */ li $t4, 1 +/* 056A74 7F021F44 51A0000C */ beql $t5, $zero, .L7F021F78 +/* 056A78 7F021F48 8FB90034 */ lw $t9, 0x34($sp) +/* 056A7C 7F021F4C 91AF0002 */ lbu $t7, 2($t5) +/* 056A80 7F021F50 00CC5004 */ sllv $t2, $t4, $a2 +/* 056A84 7F021F54 314B00FF */ andi $t3, $t2, 0xff +/* 056A88 7F021F58 01EBC024 */ and $t8, $t7, $t3 +/* 056A8C 7F021F5C 13000005 */ beqz $t8, .L7F021F74 +/* 056A90 7F021F60 8FA400DC */ lw $a0, 0xdc($sp) +/* 056A94 7F021F64 0FC286A5 */ jal sub_GAME_7F0A1A94 +/* 056A98 7F021F68 8FA50044 */ lw $a1, 0x44($sp) +/* 056A9C 7F021F6C AFA200DC */ sw $v0, 0xdc($sp) +/* 056AA0 7F021F70 8FA600E0 */ lw $a2, 0xe0($sp) +.L7F021F74: +/* 056AA4 7F021F74 8FB90034 */ lw $t9, 0x34($sp) +.L7F021F78: +/* 056AA8 7F021F78 240D0001 */ li $t5, 1 +/* 056AAC 7F021F7C 1320000B */ beqz $t9, .L7F021FAC +/* 056AB0 7F021F80 00000000 */ nop +/* 056AB4 7F021F84 932E0002 */ lbu $t6, 2($t9) +/* 056AB8 7F021F88 00CD6004 */ sllv $t4, $t5, $a2 +/* 056ABC 7F021F8C 318A00FF */ andi $t2, $t4, 0xff +/* 056AC0 7F021F90 01CA7824 */ and $t7, $t6, $t2 +/* 056AC4 7F021F94 11E00005 */ beqz $t7, .L7F021FAC +/* 056AC8 7F021F98 8FA400DC */ lw $a0, 0xdc($sp) +/* 056ACC 7F021F9C 0FC286A5 */ jal sub_GAME_7F0A1A94 +/* 056AD0 7F021FA0 8FA50040 */ lw $a1, 0x40($sp) +/* 056AD4 7F021FA4 AFA200DC */ sw $v0, 0xdc($sp) +/* 056AD8 7F021FA8 8FA600E0 */ lw $a2, 0xe0($sp) +.L7F021FAC: +/* 056ADC 7F021FAC 50C00027 */ beql $a2, $zero, .L7F02204C +/* 056AE0 7F021FB0 8FA600E0 */ lw $a2, 0xe0($sp) +/* 056AE4 7F021FB4 8E02001C */ lw $v0, 0x1c($s0) +/* 056AE8 7F021FB8 8C4B0008 */ lw $t3, 8($v0) +/* 056AEC 7F021FBC 8C44000C */ lw $a0, 0xc($v0) +/* 056AF0 7F021FC0 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 056AF4 7F021FC4 8565000E */ lh $a1, 0xe($t3) +/* 056AF8 7F021FC8 8FB8003C */ lw $t8, 0x3c($sp) +/* 056AFC 7F021FCC 5300000B */ beql $t8, $zero, .L7F021FFC +/* 056B00 7F021FD0 8FAE0038 */ lw $t6, 0x38($sp) +/* 056B04 7F021FD4 8F190064 */ lw $t9, 0x64($t8) +/* 056B08 7F021FD8 332D0800 */ andi $t5, $t9, 0x800 +/* 056B0C 7F021FDC 55A00007 */ bnezl $t5, .L7F021FFC +/* 056B10 7F021FE0 8FAE0038 */ lw $t6, 0x38($sp) +/* 056B14 7F021FE4 8F020014 */ lw $v0, 0x14($t8) +/* 056B18 7F021FE8 8C4C0008 */ lw $t4, 8($v0) +/* 056B1C 7F021FEC 8C44000C */ lw $a0, 0xc($v0) +/* 056B20 7F021FF0 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 056B24 7F021FF4 8585000E */ lh $a1, 0xe($t4) +/* 056B28 7F021FF8 8FAE0038 */ lw $t6, 0x38($sp) +.L7F021FFC: +/* 056B2C 7F021FFC 51C0000B */ beql $t6, $zero, .L7F02202C +/* 056B30 7F022000 8FB90034 */ lw $t9, 0x34($sp) +/* 056B34 7F022004 8DCA0064 */ lw $t2, 0x64($t6) +/* 056B38 7F022008 314F0800 */ andi $t7, $t2, 0x800 +/* 056B3C 7F02200C 55E00007 */ bnezl $t7, .L7F02202C +/* 056B40 7F022010 8FB90034 */ lw $t9, 0x34($sp) +/* 056B44 7F022014 8DC20014 */ lw $v0, 0x14($t6) +/* 056B48 7F022018 8C4B0008 */ lw $t3, 8($v0) +/* 056B4C 7F02201C 8C44000C */ lw $a0, 0xc($v0) +/* 056B50 7F022020 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 056B54 7F022024 8565000E */ lh $a1, 0xe($t3) +/* 056B58 7F022028 8FB90034 */ lw $t9, 0x34($sp) +.L7F02202C: +/* 056B5C 7F02202C 53200007 */ beql $t9, $zero, .L7F02204C +/* 056B60 7F022030 8FA600E0 */ lw $a2, 0xe0($sp) +/* 056B64 7F022034 8F220014 */ lw $v0, 0x14($t9) +/* 056B68 7F022038 8C4D0008 */ lw $t5, 8($v0) +/* 056B6C 7F02203C 8C44000C */ lw $a0, 0xc($v0) +/* 056B70 7F022040 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 056B74 7F022044 85A5000E */ lh $a1, 0xe($t5) +.L7F022048: +/* 056B78 7F022048 8FA600E0 */ lw $a2, 0xe0($sp) +.L7F02204C: +/* 056B7C 7F02204C 50C00005 */ beql $a2, $zero, .L7F022064 +/* 056B80 7F022050 8FA200DC */ lw $v0, 0xdc($sp) +/* 056B84 7F022054 0FC1AC92 */ jal sub_GAME_7F06B248 +/* 056B88 7F022058 8E040020 */ lw $a0, 0x20($s0) +/* 056B8C 7F02205C AE000020 */ sw $zero, 0x20($s0) +/* 056B90 7F022060 8FA200DC */ lw $v0, 0xdc($sp) +.L7F022064: +/* 056B94 7F022064 8FBF0024 */ lw $ra, 0x24($sp) +/* 056B98 7F022068 8FB00020 */ lw $s0, 0x20($sp) +/* 056B9C 7F02206C 27BD00D8 */ addiu $sp, $sp, 0xd8 +/* 056BA0 7F022070 03E00008 */ jr $ra +/* 056BA4 7F022074 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F022078(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F022078 +/* 056BA8 7F022078 3C0B8003 */ lui $t3, %hi(D_8002C914) +/* 056BAC 7F02207C 256BC914 */ addiu $t3, %lo(D_8002C914) # addiu $t3, $t3, -0x36ec +/* 056BB0 7F022080 8D6E0000 */ lw $t6, ($t3) +/* 056BB4 7F022084 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 056BB8 7F022088 2409FFFF */ li $t1, -1 +/* 056BBC 7F02208C AFBF001C */ sw $ra, 0x1c($sp) +/* 056BC0 7F022090 AFB00018 */ sw $s0, 0x18($sp) +/* 056BC4 7F022094 AFA40050 */ sw $a0, 0x50($sp) +/* 056BC8 7F022098 AFA7005C */ sw $a3, 0x5c($sp) +/* 056BCC 7F02209C 00005025 */ move $t2, $zero +/* 056BD0 7F0220A0 112E000D */ beq $t1, $t6, .L7F0220D8 +/* 056BD4 7F0220A4 00004025 */ move $t0, $zero +/* 056BD8 7F0220A8 3C0F8003 */ lui $t7, %hi(D_8002C914) +/* 056BDC 7F0220AC 25E2C914 */ addiu $v0, $t7, %lo(D_8002C914) +/* 056BE0 7F0220B0 8C430000 */ lw $v1, ($v0) +.L7F0220B4: +/* 056BE4 7F0220B4 54A30004 */ bnel $a1, $v1, .L7F0220C8 +/* 056BE8 7F0220B8 8C43002C */ lw $v1, 0x2c($v0) +/* 056BEC 7F0220BC 10000006 */ b .L7F0220D8 +/* 056BF0 7F0220C0 01005025 */ move $t2, $t0 +/* 056BF4 7F0220C4 8C43002C */ lw $v1, 0x2c($v0) +.L7F0220C8: +/* 056BF8 7F0220C8 25080001 */ addiu $t0, $t0, 1 +/* 056BFC 7F0220CC 2442002C */ addiu $v0, $v0, 0x2c +/* 056C00 7F0220D0 1523FFF8 */ bne $t1, $v1, .L7F0220B4 +/* 056C04 7F0220D4 00000000 */ nop +.L7F0220D8: +/* 056C08 7F0220D8 000AC080 */ sll $t8, $t2, 2 +/* 056C0C 7F0220DC 030AC023 */ subu $t8, $t8, $t2 +/* 056C10 7F0220E0 0018C080 */ sll $t8, $t8, 2 +/* 056C14 7F0220E4 030AC023 */ subu $t8, $t8, $t2 +/* 056C18 7F0220E8 0018C080 */ sll $t8, $t8, 2 +/* 056C1C 7F0220EC 01788021 */ addu $s0, $t3, $t8 +/* 056C20 7F0220F0 8E190010 */ lw $t9, 0x10($s0) +/* 056C24 7F0220F4 5320002C */ beql $t9, $zero, .L7F0221A8 +/* 056C28 7F0220F8 8E050004 */ lw $a1, 4($s0) +/* 056C2C 7F0220FC 0C002914 */ jal get_random_value +/* 056C30 7F022100 AFA60058 */ sw $a2, 0x58($sp) +/* 056C34 7F022104 304C0004 */ andi $t4, $v0, 4 +/* 056C38 7F022108 15800026 */ bnez $t4, .L7F0221A4 +/* 056C3C 7F02210C 8FA60058 */ lw $a2, 0x58($sp) +/* 056C40 7F022110 C4C20000 */ lwc1 $f2, ($a2) +/* 056C44 7F022114 C4CE0004 */ lwc1 $f14, 4($a2) +/* 056C48 7F022118 C4C00008 */ lwc1 $f0, 8($a2) +/* 056C4C 7F02211C 46021102 */ mul.s $f4, $f2, $f2 +/* 056C50 7F022120 AFA60058 */ sw $a2, 0x58($sp) +/* 056C54 7F022124 460E7182 */ mul.s $f6, $f14, $f14 +/* 056C58 7F022128 46062200 */ add.s $f8, $f4, $f6 +/* 056C5C 7F02212C 46000282 */ mul.s $f10, $f0, $f0 +/* 056C60 7F022130 0C007DF8 */ jal sqrtf +/* 056C64 7F022134 46085300 */ add.s $f12, $f10, $f8 +/* 056C68 7F022138 3C014228 */ li $at, 0x42280000 # 42.000000 +/* 056C6C 7F02213C 44818000 */ mtc1 $at, $f16 +/* 056C70 7F022140 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 056C74 7F022144 44812000 */ mtc1 $at, $f4 +/* 056C78 7F022148 46008483 */ div.s $f18, $f16, $f0 +/* 056C7C 7F02214C 8FA60058 */ lw $a2, 0x58($sp) +/* 056C80 7F022150 C4C60000 */ lwc1 $f6, ($a2) +/* 056C84 7F022154 46049080 */ add.s $f2, $f18, $f4 +/* 056C88 7F022158 46023282 */ mul.s $f10, $f6, $f2 +/* 056C8C 7F02215C E7AA003C */ swc1 $f10, 0x3c($sp) +/* 056C90 7F022160 C4C80004 */ lwc1 $f8, 4($a2) +/* 056C94 7F022164 46024402 */ mul.s $f16, $f8, $f2 +/* 056C98 7F022168 E7B00040 */ swc1 $f16, 0x40($sp) +/* 056C9C 7F02216C C4D20008 */ lwc1 $f18, 8($a2) +/* 056CA0 7F022170 46029102 */ mul.s $f4, $f18, $f2 +/* 056CA4 7F022174 0FC1E111 */ jal sub_GAME_7F078444 +/* 056CA8 7F022178 E7A40044 */ swc1 $f4, 0x44($sp) +/* 056CAC 7F02217C 00402025 */ move $a0, $v0 +/* 056CB0 7F022180 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 056CB4 7F022184 27A5003C */ addiu $a1, $sp, 0x3c +/* 056CB8 7F022188 8FAD0050 */ lw $t5, 0x50($sp) +/* 056CBC 7F02218C 27A4003C */ addiu $a0, $sp, 0x3c +/* 056CC0 7F022190 8E050010 */ lw $a1, 0x10($s0) +/* 056CC4 7F022194 8DAE0014 */ lw $t6, 0x14($t5) +/* 056CC8 7F022198 8E060018 */ lw $a2, 0x18($s0) +/* 056CCC 7F02219C 0FC28F87 */ jal sub_GAME_7F0A3E1C +/* 056CD0 7F0221A0 91C70003 */ lbu $a3, 3($t6) +.L7F0221A4: +/* 056CD4 7F0221A4 8E050004 */ lw $a1, 4($s0) +.L7F0221A8: +/* 056CD8 7F0221A8 8FAF0050 */ lw $t7, 0x50($sp) +/* 056CDC 7F0221AC 50A00007 */ beql $a1, $zero, .L7F0221CC +/* 056CE0 7F0221B0 8FBF001C */ lw $ra, 0x1c($sp) +/* 056CE4 7F0221B4 8DF80014 */ lw $t8, 0x14($t7) +/* 056CE8 7F0221B8 8FA4005C */ lw $a0, 0x5c($sp) +/* 056CEC 7F0221BC 8E06000C */ lw $a2, 0xc($s0) +/* 056CF0 7F0221C0 0FC28F87 */ jal sub_GAME_7F0A3E1C +/* 056CF4 7F0221C4 93070003 */ lbu $a3, 3($t8) +/* 056CF8 7F0221C8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0221CC: +/* 056CFC 7F0221CC 8FB00018 */ lw $s0, 0x18($sp) +/* 056D00 7F0221D0 27BD0050 */ addiu $sp, $sp, 0x50 +/* 056D04 7F0221D4 03E00008 */ jr $ra +/* 056D08 7F0221D8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0221DC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0221DC +/* 056D0C 7F0221DC 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 056D10 7F0221E0 AFBF0034 */ sw $ra, 0x34($sp) +/* 056D14 7F0221E4 AFB60030 */ sw $s6, 0x30($sp) +/* 056D18 7F0221E8 AFB5002C */ sw $s5, 0x2c($sp) +/* 056D1C 7F0221EC AFB40028 */ sw $s4, 0x28($sp) +/* 056D20 7F0221F0 AFB30024 */ sw $s3, 0x24($sp) +/* 056D24 7F0221F4 AFB20020 */ sw $s2, 0x20($sp) +/* 056D28 7F0221F8 AFB1001C */ sw $s1, 0x1c($sp) +/* 056D2C 7F0221FC AFB00018 */ sw $s0, 0x18($sp) +/* 056D30 7F022200 AFA500B4 */ sw $a1, 0xb4($sp) +/* 056D34 7F022204 C4E40000 */ lwc1 $f4, ($a3) +/* 056D38 7F022208 3C117FFF */ lui $s1, (0x7FFFFFFF >> 16) # lui $s1, 0x7fff +/* 056D3C 7F02220C 00C09025 */ move $s2, $a2 +/* 056D40 7F022210 4600218D */ trunc.w.s $f6, $f4 +/* 056D44 7F022214 0080B025 */ move $s6, $a0 +/* 056D48 7F022218 0000A025 */ move $s4, $zero +/* 056D4C 7F02221C 0000A825 */ move $s5, $zero +/* 056D50 7F022220 440F3000 */ mfc1 $t7, $f6 +/* 056D54 7F022224 3631FFFF */ ori $s1, (0x7FFFFFFF & 0xFFFF) # ori $s1, $s1, 0xffff +/* 056D58 7F022228 00C08025 */ move $s0, $a2 +/* 056D5C 7F02222C AFAF00A4 */ sw $t7, 0xa4($sp) +/* 056D60 7F022230 C4E80004 */ lwc1 $f8, 4($a3) +/* 056D64 7F022234 4600428D */ trunc.w.s $f10, $f8 +/* 056D68 7F022238 44195000 */ mfc1 $t9, $f10 +/* 056D6C 7F02223C 00000000 */ nop +/* 056D70 7F022240 AFB900A8 */ sw $t9, 0xa8($sp) +/* 056D74 7F022244 C4F00008 */ lwc1 $f16, 8($a3) +/* 056D78 7F022248 4600848D */ trunc.w.s $f18, $f16 +/* 056D7C 7F02224C 440B9000 */ mfc1 $t3, $f18 +/* 056D80 7F022250 10C0005B */ beqz $a2, .L7F0223C0 +/* 056D84 7F022254 AFAB00AC */ sw $t3, 0xac($sp) +/* 056D88 7F022258 96130000 */ lhu $s3, ($s0) +.L7F02225C: +/* 056D8C 7F02225C 24010008 */ li $at, 8 +/* 056D90 7F022260 02C02025 */ move $a0, $s6 +/* 056D94 7F022264 326C00FF */ andi $t4, $s3, 0xff +/* 056D98 7F022268 11810030 */ beq $t4, $at, .L7F02232C +/* 056D9C 7F02226C 01809825 */ move $s3, $t4 +/* 056DA0 7F022270 24010012 */ li $at, 18 +/* 056DA4 7F022274 11810031 */ beq $t4, $at, .L7F02233C +/* 056DA8 7F022278 02C02025 */ move $a0, $s6 +/* 056DAC 7F02227C 24010017 */ li $at, 23 +/* 056DB0 7F022280 11810032 */ beq $t4, $at, .L7F02234C +/* 056DB4 7F022284 02C02025 */ move $a0, $s6 +/* 056DB8 7F022288 24010018 */ li $at, 24 +/* 056DBC 7F02228C 15810032 */ bne $t4, $at, .L7F022358 +/* 056DC0 7F022290 8E090014 */ lw $t1, 0x14($s0) +/* 056DC4 7F022294 8E020004 */ lw $v0, 4($s0) +/* 056DC8 7F022298 00003025 */ move $a2, $zero +/* 056DCC 7F02229C 8448000E */ lh $t0, 0xe($v0) +/* 056DD0 7F0222A0 1900002D */ blez $t0, .L7F022358 +/* 056DD4 7F0222A4 00000000 */ nop +/* 056DD8 7F0222A8 8C450010 */ lw $a1, 0x10($v0) +.L7F0222AC: +/* 056DDC 7F0222AC 8FAD00A4 */ lw $t5, 0xa4($sp) +/* 056DE0 7F0222B0 84AE0000 */ lh $t6, ($a1) +/* 056DE4 7F0222B4 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 056DE8 7F0222B8 84B80002 */ lh $t8, 2($a1) +/* 056DEC 7F0222BC 01AE1023 */ subu $v0, $t5, $t6 +/* 056DF0 7F0222C0 00420019 */ multu $v0, $v0 +/* 056DF4 7F0222C4 01F81823 */ subu $v1, $t7, $t8 +/* 056DF8 7F0222C8 8FB900AC */ lw $t9, 0xac($sp) +/* 056DFC 7F0222CC 84AA0004 */ lh $t2, 4($a1) +/* 056E00 7F0222D0 032A2023 */ subu $a0, $t9, $t2 +/* 056E04 7F0222D4 00005812 */ mflo $t3 +/* 056E08 7F0222D8 00000000 */ nop +/* 056E0C 7F0222DC 00000000 */ nop +/* 056E10 7F0222E0 00630019 */ multu $v1, $v1 +/* 056E14 7F0222E4 00006012 */ mflo $t4 +/* 056E18 7F0222E8 016C6821 */ addu $t5, $t3, $t4 +/* 056E1C 7F0222EC 00000000 */ nop +/* 056E20 7F0222F0 00840019 */ multu $a0, $a0 +/* 056E24 7F0222F4 00007012 */ mflo $t6 +/* 056E28 7F0222F8 01AE3821 */ addu $a3, $t5, $t6 +/* 056E2C 7F0222FC 00F1082A */ slt $at, $a3, $s1 +/* 056E30 7F022300 50200005 */ beql $at, $zero, .L7F022318 +/* 056E34 7F022304 24C60001 */ addiu $a2, $a2, 1 +/* 056E38 7F022308 00E08825 */ move $s1, $a3 +/* 056E3C 7F02230C 0200A025 */ move $s4, $s0 +/* 056E40 7F022310 00C0A825 */ move $s5, $a2 +/* 056E44 7F022314 24C60001 */ addiu $a2, $a2, 1 +.L7F022318: +/* 056E48 7F022318 00C8082A */ slt $at, $a2, $t0 +/* 056E4C 7F02231C 1420FFE3 */ bnez $at, .L7F0222AC +/* 056E50 7F022320 24A50010 */ addiu $a1, $a1, 0x10 +/* 056E54 7F022324 1000000C */ b .L7F022358 +/* 056E58 7F022328 00000000 */ nop +.L7F02232C: +/* 056E5C 7F02232C 0FC1BA5C */ jal sub_GAME_7F06E970 +/* 056E60 7F022330 02002825 */ move $a1, $s0 +/* 056E64 7F022334 10000008 */ b .L7F022358 +/* 056E68 7F022338 8E090014 */ lw $t1, 0x14($s0) +.L7F02233C: +/* 056E6C 7F02233C 0FC1BA6F */ jal process_12_handle_switch +/* 056E70 7F022340 02002825 */ move $a1, $s0 +/* 056E74 7F022344 10000004 */ b .L7F022358 +/* 056E78 7F022348 8E090014 */ lw $t1, 0x14($s0) +.L7F02234C: +/* 056E7C 7F02234C 0FC1BA82 */ jal process_17_pointer_to_head +/* 056E80 7F022350 02002825 */ move $a1, $s0 +/* 056E84 7F022354 8E090014 */ lw $t1, 0x14($s0) +.L7F022358: +/* 056E88 7F022358 11200009 */ beqz $t1, .L7F022380 +/* 056E8C 7F02235C 00000000 */ nop +/* 056E90 7F022360 12120005 */ beq $s0, $s2, .L7F022378 +/* 056E94 7F022364 2401000A */ li $at, 10 +/* 056E98 7F022368 12610005 */ beq $s3, $at, .L7F022380 +/* 056E9C 7F02236C 24010011 */ li $at, 17 +/* 056EA0 7F022370 12610003 */ beq $s3, $at, .L7F022380 +/* 056EA4 7F022374 00000000 */ nop +.L7F022378: +/* 056EA8 7F022378 1000000F */ b .L7F0223B8 +/* 056EAC 7F02237C 01208025 */ move $s0, $t1 +.L7F022380: +/* 056EB0 7F022380 1200000D */ beqz $s0, .L7F0223B8 +/* 056EB4 7F022384 00000000 */ nop +.L7F022388: +/* 056EB8 7F022388 56120004 */ bnel $s0, $s2, .L7F02239C +/* 056EBC 7F02238C 8E02000C */ lw $v0, 0xc($s0) +/* 056EC0 7F022390 10000009 */ b .L7F0223B8 +/* 056EC4 7F022394 00008025 */ move $s0, $zero +/* 056EC8 7F022398 8E02000C */ lw $v0, 0xc($s0) +.L7F02239C: +/* 056ECC 7F02239C 50400004 */ beql $v0, $zero, .L7F0223B0 +/* 056ED0 7F0223A0 8E100008 */ lw $s0, 8($s0) +/* 056ED4 7F0223A4 10000004 */ b .L7F0223B8 +/* 056ED8 7F0223A8 00408025 */ move $s0, $v0 +/* 056EDC 7F0223AC 8E100008 */ lw $s0, 8($s0) +.L7F0223B0: +/* 056EE0 7F0223B0 1600FFF5 */ bnez $s0, .L7F022388 +/* 056EE4 7F0223B4 00000000 */ nop +.L7F0223B8: +/* 056EE8 7F0223B8 5600FFA8 */ bnezl $s0, .L7F02225C +/* 056EEC 7F0223BC 96130000 */ lhu $s3, ($s0) +.L7F0223C0: +/* 056EF0 7F0223C0 12800097 */ beqz $s4, .L7F022620 +/* 056EF4 7F0223C4 02C02025 */ move $a0, $s6 +/* 056EF8 7F0223C8 8E900004 */ lw $s0, 4($s4) +/* 056EFC 7F0223CC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 056F00 7F0223D0 02802825 */ move $a1, $s4 +/* 056F04 7F0223D4 0040A025 */ move $s4, $v0 +/* 056F08 7F0223D8 00008825 */ move $s1, $zero +/* 056F0C 7F0223DC 00009825 */ move $s3, $zero +/* 056F10 7F0223E0 0C002914 */ jal get_random_value +/* 056F14 7F0223E4 AFA00060 */ sw $zero, 0x60($sp) +/* 056F18 7F0223E8 24010032 */ li $at, 50 +/* 056F1C 7F0223EC 0041001B */ divu $zero, $v0, $at +/* 056F20 7F0223F0 8FAF00B4 */ lw $t7, 0xb4($sp) +/* 056F24 7F0223F4 00001810 */ mfhi $v1 +/* 056F28 7F0223F8 24630014 */ addiu $v1, $v1, 0x14 +/* 056F2C 7F0223FC 24010008 */ li $at, 8 +/* 056F30 7F022400 15E10002 */ bne $t7, $at, .L7F02240C +/* 056F34 7F022404 00609025 */ move $s2, $v1 +/* 056F38 7F022408 24720064 */ addiu $s2, $v1, 0x64 +.L7F02240C: +/* 056F3C 7F02240C 8FB800B4 */ lw $t8, 0xb4($sp) +/* 056F40 7F022410 2401000F */ li $at, 15 +/* 056F44 7F022414 02C02025 */ move $a0, $s6 +/* 056F48 7F022418 57010003 */ bnel $t8, $at, .L7F022428 +/* 056F4C 7F02241C 8E190010 */ lw $t9, 0x10($s0) +/* 056F50 7F022420 26520032 */ addiu $s2, $s2, 0x32 +/* 056F54 7F022424 8E190010 */ lw $t9, 0x10($s0) +.L7F022428: +/* 056F58 7F022428 00154100 */ sll $t0, $s5, 4 +/* 056F5C 7F02242C 03285021 */ addu $t2, $t9, $t0 +/* 056F60 7F022430 8D420008 */ lw $v0, 8($t2) +/* 056F64 7F022434 1040000A */ beqz $v0, .L7F022460 +/* 056F68 7F022438 00402825 */ move $a1, $v0 +/* 056F6C 7F02243C 8C510004 */ lw $s1, 4($v0) +/* 056F70 7F022440 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 056F74 7F022444 AFA8003C */ sw $t0, 0x3c($sp) +/* 056F78 7F022448 8FA8003C */ lw $t0, 0x3c($sp) +/* 056F7C 7F02244C 8E0B0010 */ lw $t3, 0x10($s0) +/* 056F80 7F022450 00409825 */ move $s3, $v0 +/* 056F84 7F022454 01686021 */ addu $t4, $t3, $t0 +/* 056F88 7F022458 858D000C */ lh $t5, 0xc($t4) +/* 056F8C 7F02245C AFAD0060 */ sw $t5, 0x60($sp) +.L7F022460: +/* 056F90 7F022460 8E0E0008 */ lw $t6, 8($s0) +/* 056F94 7F022464 8E8F0000 */ lw $t7, ($s4) +/* 056F98 7F022468 3405CCCC */ li $a1, 52428 +/* 056F9C 7F02246C 00003025 */ move $a2, $zero +/* 056FA0 7F022470 15CF001D */ bne $t6, $t7, .L7F0224E8 +/* 056FA4 7F022474 00003825 */ move $a3, $zero +/* 056FA8 7F022478 8604000C */ lh $a0, 0xc($s0) +/* 056FAC 7F02247C 0FC26F93 */ jal sub_GAME_7F09BE4C +/* 056FB0 7F022480 AFA8003C */ sw $t0, 0x3c($sp) +/* 056FB4 7F022484 10400018 */ beqz $v0, .L7F0224E8 +/* 056FB8 7F022488 8FA8003C */ lw $t0, 0x3c($sp) +/* 056FBC 7F02248C AE820000 */ sw $v0, ($s4) +/* 056FC0 7F022490 8618000C */ lh $t8, 0xc($s0) +/* 056FC4 7F022494 00001825 */ move $v1, $zero +/* 056FC8 7F022498 00002025 */ move $a0, $zero +/* 056FCC 7F02249C 1B000012 */ blez $t8, .L7F0224E8 +/* 056FD0 7F0224A0 00402825 */ move $a1, $v0 +/* 056FD4 7F0224A4 8E190008 */ lw $t9, 8($s0) +.L7F0224A8: +/* 056FD8 7F0224A8 24630001 */ addiu $v1, $v1, 1 +/* 056FDC 7F0224AC 24A50010 */ addiu $a1, $a1, 0x10 +/* 056FE0 7F0224B0 03245021 */ addu $t2, $t9, $a0 +/* 056FE4 7F0224B4 8D410000 */ lw $at, ($t2) +/* 056FE8 7F0224B8 24840010 */ addiu $a0, $a0, 0x10 +/* 056FEC 7F0224BC ACA1FFF0 */ sw $at, -0x10($a1) +/* 056FF0 7F0224C0 8D4C0004 */ lw $t4, 4($t2) +/* 056FF4 7F0224C4 ACACFFF4 */ sw $t4, -0xc($a1) +/* 056FF8 7F0224C8 8D410008 */ lw $at, 8($t2) +/* 056FFC 7F0224CC ACA1FFF8 */ sw $at, -8($a1) +/* 057000 7F0224D0 8D4C000C */ lw $t4, 0xc($t2) +/* 057004 7F0224D4 ACACFFFC */ sw $t4, -4($a1) +/* 057008 7F0224D8 860D000C */ lh $t5, 0xc($s0) +/* 05700C 7F0224DC 006D082A */ slt $at, $v1, $t5 +/* 057010 7F0224E0 5420FFF1 */ bnezl $at, .L7F0224A8 +/* 057014 7F0224E4 8E190008 */ lw $t9, 8($s0) +.L7F0224E8: +/* 057018 7F0224E8 52600024 */ beql $s3, $zero, .L7F02257C +/* 05701C 7F0224EC 8E0E0008 */ lw $t6, 8($s0) +/* 057020 7F0224F0 8E2E0008 */ lw $t6, 8($s1) +/* 057024 7F0224F4 8E6F0000 */ lw $t7, ($s3) +/* 057028 7F0224F8 3405CCCC */ li $a1, 52428 +/* 05702C 7F0224FC 00003025 */ move $a2, $zero +/* 057030 7F022500 15CF001D */ bne $t6, $t7, .L7F022578 +/* 057034 7F022504 00003825 */ move $a3, $zero +/* 057038 7F022508 8624000C */ lh $a0, 0xc($s1) +/* 05703C 7F02250C 0FC26F93 */ jal sub_GAME_7F09BE4C +/* 057040 7F022510 AFA8003C */ sw $t0, 0x3c($sp) +/* 057044 7F022514 10400018 */ beqz $v0, .L7F022578 +/* 057048 7F022518 8FA8003C */ lw $t0, 0x3c($sp) +/* 05704C 7F02251C AE620000 */ sw $v0, ($s3) +/* 057050 7F022520 8638000C */ lh $t8, 0xc($s1) +/* 057054 7F022524 00001825 */ move $v1, $zero +/* 057058 7F022528 00002025 */ move $a0, $zero +/* 05705C 7F02252C 1B000012 */ blez $t8, .L7F022578 +/* 057060 7F022530 00402825 */ move $a1, $v0 +/* 057064 7F022534 8E390008 */ lw $t9, 8($s1) +.L7F022538: +/* 057068 7F022538 24630001 */ addiu $v1, $v1, 1 +/* 05706C 7F02253C 24A50010 */ addiu $a1, $a1, 0x10 +/* 057070 7F022540 03245821 */ addu $t3, $t9, $a0 +/* 057074 7F022544 8D610000 */ lw $at, ($t3) +/* 057078 7F022548 24840010 */ addiu $a0, $a0, 0x10 +/* 05707C 7F02254C ACA1FFF0 */ sw $at, -0x10($a1) +/* 057080 7F022550 8D6C0004 */ lw $t4, 4($t3) +/* 057084 7F022554 ACACFFF4 */ sw $t4, -0xc($a1) +/* 057088 7F022558 8D610008 */ lw $at, 8($t3) +/* 05708C 7F02255C ACA1FFF8 */ sw $at, -8($a1) +/* 057090 7F022560 8D6C000C */ lw $t4, 0xc($t3) +/* 057094 7F022564 ACACFFFC */ sw $t4, -4($a1) +/* 057098 7F022568 862D000C */ lh $t5, 0xc($s1) +/* 05709C 7F02256C 006D082A */ slt $at, $v1, $t5 +/* 0570A0 7F022570 5420FFF1 */ bnezl $at, .L7F022538 +/* 0570A4 7F022574 8E390008 */ lw $t9, 8($s1) +.L7F022578: +/* 0570A8 7F022578 8E0E0008 */ lw $t6, 8($s0) +.L7F02257C: +/* 0570AC 7F02257C 8E8F0000 */ lw $t7, ($s4) +/* 0570B0 7F022580 11CF0010 */ beq $t6, $t7, .L7F0225C4 +/* 0570B4 7F022584 00000000 */ nop +/* 0570B8 7F022588 8E180010 */ lw $t8, 0x10($s0) +/* 0570BC 7F02258C 0308C821 */ addu $t9, $t8, $t0 +/* 0570C0 7F022590 87220006 */ lh $v0, 6($t9) +/* 0570C4 7F022594 0440000B */ bltz $v0, .L7F0225C4 +/* 0570C8 7F022598 00000000 */ nop +/* 0570CC 7F02259C 8E8A0000 */ lw $t2, ($s4) +.L7F0225A0: +/* 0570D0 7F0225A0 00025900 */ sll $t3, $v0, 4 +/* 0570D4 7F0225A4 00027040 */ sll $t6, $v0, 1 +/* 0570D8 7F0225A8 014B6021 */ addu $t4, $t2, $t3 +/* 0570DC 7F0225AC A192000F */ sb $s2, 0xf($t4) +/* 0570E0 7F0225B0 8E0D0014 */ lw $t5, 0x14($s0) +/* 0570E4 7F0225B4 01AE7821 */ addu $t7, $t5, $t6 +/* 0570E8 7F0225B8 85E20000 */ lh $v0, ($t7) +/* 0570EC 7F0225BC 0443FFF8 */ bgezl $v0, .L7F0225A0 +/* 0570F0 7F0225C0 8E8A0000 */ lw $t2, ($s4) +.L7F0225C4: +/* 0570F4 7F0225C4 52600017 */ beql $s3, $zero, .L7F022624 +/* 0570F8 7F0225C8 8FBF0034 */ lw $ra, 0x34($sp) +/* 0570FC 7F0225CC 8E380008 */ lw $t8, 8($s1) +/* 057100 7F0225D0 8E790000 */ lw $t9, ($s3) +/* 057104 7F0225D4 8FAB0060 */ lw $t3, 0x60($sp) +/* 057108 7F0225D8 53190012 */ beql $t8, $t9, .L7F022624 +/* 05710C 7F0225DC 8FBF0034 */ lw $ra, 0x34($sp) +/* 057110 7F0225E0 8E2A0010 */ lw $t2, 0x10($s1) +/* 057114 7F0225E4 000B6100 */ sll $t4, $t3, 4 +/* 057118 7F0225E8 014C6821 */ addu $t5, $t2, $t4 +/* 05711C 7F0225EC 85A20006 */ lh $v0, 6($t5) +/* 057120 7F0225F0 0442000C */ bltzl $v0, .L7F022624 +/* 057124 7F0225F4 8FBF0034 */ lw $ra, 0x34($sp) +/* 057128 7F0225F8 8E6E0000 */ lw $t6, ($s3) +.L7F0225FC: +/* 05712C 7F0225FC 00027900 */ sll $t7, $v0, 4 +/* 057130 7F022600 00025840 */ sll $t3, $v0, 1 +/* 057134 7F022604 01CFC021 */ addu $t8, $t6, $t7 +/* 057138 7F022608 A312000F */ sb $s2, 0xf($t8) +/* 05713C 7F02260C 8E390014 */ lw $t9, 0x14($s1) +/* 057140 7F022610 032B5021 */ addu $t2, $t9, $t3 +/* 057144 7F022614 85420000 */ lh $v0, ($t2) +/* 057148 7F022618 0443FFF8 */ bgezl $v0, .L7F0225FC +/* 05714C 7F02261C 8E6E0000 */ lw $t6, ($s3) +.L7F022620: +/* 057150 7F022620 8FBF0034 */ lw $ra, 0x34($sp) +.L7F022624: +/* 057154 7F022624 8FB00018 */ lw $s0, 0x18($sp) +/* 057158 7F022628 8FB1001C */ lw $s1, 0x1c($sp) +/* 05715C 7F02262C 8FB20020 */ lw $s2, 0x20($sp) +/* 057160 7F022630 8FB30024 */ lw $s3, 0x24($sp) +/* 057164 7F022634 8FB40028 */ lw $s4, 0x28($sp) +/* 057168 7F022638 8FB5002C */ lw $s5, 0x2c($sp) +/* 05716C 7F02263C 8FB60030 */ lw $s6, 0x30($sp) +/* 057170 7F022640 03E00008 */ jr $ra +/* 057174 7F022644 27BD00B0 */ addiu $sp, $sp, 0xb0 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F022648(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F022648 +/* 057178 7F022648 27BDFF10 */ addiu $sp, $sp, -0xf0 +/* 05717C 7F02264C AFBF0044 */ sw $ra, 0x44($sp) +/* 057180 7F022650 AFB20040 */ sw $s2, 0x40($sp) +/* 057184 7F022654 AFB1003C */ sw $s1, 0x3c($sp) +/* 057188 7F022658 AFB00038 */ sw $s0, 0x38($sp) +/* 05718C 7F02265C AFA400F0 */ sw $a0, 0xf0($sp) +/* 057190 7F022660 8C820004 */ lw $v0, 4($a0) +/* 057194 7F022664 24010005 */ li $at, 5 +/* 057198 7F022668 00A09025 */ move $s2, $a1 +/* 05719C 7F02266C 804F0007 */ lb $t7, 7($v0) +/* 0571A0 7F022670 51E100BE */ beql $t7, $at, .L7F02296C +/* 0571A4 7F022674 8FBF0044 */ lw $ra, 0x44($sp) +/* 0571A8 7F022678 8C50001C */ lw $s0, 0x1c($v0) +/* 0571AC 7F02267C AFA200EC */ sw $v0, 0xec($sp) +/* 0571B0 7F022680 0FC1B403 */ jal getinstsize +/* 0571B4 7F022684 02002025 */ move $a0, $s0 +/* 0571B8 7F022688 8FA200F0 */ lw $v0, 0xf0($sp) +/* 0571BC 7F02268C E7A000E4 */ swc1 $f0, 0xe4($sp) +/* 0571C0 7F022690 90580001 */ lbu $t8, 1($v0) +/* 0571C4 7F022694 33190002 */ andi $t9, $t8, 2 +/* 0571C8 7F022698 532000B4 */ beql $t9, $zero, .L7F02296C +/* 0571CC 7F02269C 8FBF0044 */ lw $ra, 0x44($sp) +/* 0571D0 7F0226A0 C4440018 */ lwc1 $f4, 0x18($v0) +/* 0571D4 7F0226A4 C6480034 */ lwc1 $f8, 0x34($s2) +/* 0571D8 7F0226A8 00008825 */ move $s1, $zero +/* 0571DC 7F0226AC 46002181 */ sub.s $f6, $f4, $f0 +/* 0571E0 7F0226B0 02002025 */ move $a0, $s0 +/* 0571E4 7F0226B4 4608303C */ c.lt.s $f6, $f8 +/* 0571E8 7F0226B8 00000000 */ nop +/* 0571EC 7F0226BC 450200AB */ bc1fl .L7F02296C +/* 0571F0 7F0226C0 8FBF0044 */ lw $ra, 0x44($sp) +/* 0571F4 7F0226C4 AFA000DC */ sw $zero, 0xdc($sp) +/* 0571F8 7F0226C8 AFA000D8 */ sw $zero, 0xd8($sp) +/* 0571FC 7F0226CC AFA000D4 */ sw $zero, 0xd4($sp) +/* 057200 7F0226D0 0FC1B1A8 */ jal getsubmatrix +/* 057204 7F0226D4 AFA0009C */ sw $zero, 0x9c($sp) +/* 057208 7F0226D8 44806000 */ mtc1 $zero, $f12 +/* 05720C 7F0226DC AFA20098 */ sw $v0, 0x98($sp) +/* 057210 7F0226E0 00002825 */ move $a1, $zero +/* 057214 7F0226E4 8FA600EC */ lw $a2, 0xec($sp) +.L7F0226E8: +/* 057218 7F0226E8 8CC30160 */ lw $v1, 0x160($a2) +/* 05721C 7F0226EC 50600012 */ beql $v1, $zero, .L7F022738 +/* 057220 7F0226F0 24A50004 */ addiu $a1, $a1, 4 +/* 057224 7F0226F4 8C620004 */ lw $v0, 4($v1) +/* 057228 7F0226F8 8C440014 */ lw $a0, 0x14($v0) +/* 05722C 7F0226FC E7AC0094 */ swc1 $f12, 0x94($sp) +/* 057230 7F022700 AFA60050 */ sw $a2, 0x50($sp) +/* 057234 7F022704 0FC1B403 */ jal getinstsize +/* 057238 7F022708 AFA50054 */ sw $a1, 0x54($sp) +/* 05723C 7F02270C C60A0014 */ lwc1 $f10, 0x14($s0) +/* 057240 7F022710 C7AC0094 */ lwc1 $f12, 0x94($sp) +/* 057244 7F022714 8FA50054 */ lw $a1, 0x54($sp) +/* 057248 7F022718 460A0082 */ mul.s $f2, $f0, $f10 +/* 05724C 7F02271C 8FA60050 */ lw $a2, 0x50($sp) +/* 057250 7F022720 4602603C */ c.lt.s $f12, $f2 +/* 057254 7F022724 00000000 */ nop +/* 057258 7F022728 45020003 */ bc1fl .L7F022738 +/* 05725C 7F02272C 24A50004 */ addiu $a1, $a1, 4 +/* 057260 7F022730 46001306 */ mov.s $f12, $f2 +/* 057264 7F022734 24A50004 */ addiu $a1, $a1, 4 +.L7F022738: +/* 057268 7F022738 24010008 */ li $at, 8 +/* 05726C 7F02273C 14A1FFEA */ bne $a1, $at, .L7F0226E8 +/* 057270 7F022740 24C60004 */ addiu $a2, $a2, 4 +/* 057274 7F022744 C7A000E4 */ lwc1 $f0, 0xe4($sp) +/* 057278 7F022748 8FA60098 */ lw $a2, 0x98($sp) +/* 05727C 7F02274C 2650000C */ addiu $s0, $s2, 0xc +/* 057280 7F022750 460C0000 */ add.s $f0, $f0, $f12 +/* 057284 7F022754 02002825 */ move $a1, $s0 +/* 057288 7F022758 02402025 */ move $a0, $s2 +/* 05728C 7F02275C 24C60030 */ addiu $a2, $a2, 0x30 +/* 057290 7F022760 44070000 */ mfc1 $a3, $f0 +/* 057294 7F022764 0FC1041D */ jal sub_GAME_7F041074 +/* 057298 7F022768 00000000 */ nop +/* 05729C 7F02276C 10400003 */ beqz $v0, .L7F02277C +/* 0572A0 7F022770 24080001 */ li $t0, 1 +/* 0572A4 7F022774 AFA800D4 */ sw $t0, 0xd4($sp) +/* 0572A8 7F022778 24110001 */ li $s1, 1 +.L7F02277C: +/* 0572AC 7F02277C 12200028 */ beqz $s1, .L7F022820 +/* 0572B0 7F022780 8FA900EC */ lw $t1, 0xec($sp) +/* 0572B4 7F022784 8D2A0020 */ lw $t2, 0x20($t1) +/* 0572B8 7F022788 27AB00D8 */ addiu $t3, $sp, 0xd8 +/* 0572BC 7F02278C AFAB0010 */ sw $t3, 0x10($sp) +/* 0572C0 7F022790 27A40080 */ addiu $a0, $sp, 0x80 +/* 0572C4 7F022794 02402825 */ move $a1, $s2 +/* 0572C8 7F022798 02003025 */ move $a2, $s0 +/* 0572CC 7F02279C 27A700DC */ addiu $a3, $sp, 0xdc +/* 0572D0 7F0227A0 0FC1B004 */ jal sub_GAME_7F06C010 +/* 0572D4 7F0227A4 AFAA0080 */ sw $t2, 0x80($sp) +/* 0572D8 7F0227A8 24010064 */ li $at, 100 +/* 0572DC 7F0227AC 10410003 */ beq $v0, $at, .L7F0227BC +/* 0572E0 7F0227B0 00408825 */ move $s1, $v0 +/* 0572E4 7F0227B4 2401006E */ li $at, 110 +/* 0572E8 7F0227B8 14410019 */ bne $v0, $at, .L7F022820 +.L7F0227BC: +/* 0572EC 7F0227BC 27AC00A4 */ addiu $t4, $sp, 0xa4 +.L7F0227C0: +/* 0572F0 7F0227C0 27AD00A0 */ addiu $t5, $sp, 0xa0 +/* 0572F4 7F0227C4 27AE009C */ addiu $t6, $sp, 0x9c +/* 0572F8 7F0227C8 AFAE0018 */ sw $t6, 0x18($sp) +/* 0572FC 7F0227CC AFAD0014 */ sw $t5, 0x14($sp) +/* 057300 7F0227D0 AFAC0010 */ sw $t4, 0x10($sp) +/* 057304 7F0227D4 8FA400DC */ lw $a0, 0xdc($sp) +/* 057308 7F0227D8 8FA500D8 */ lw $a1, 0xd8($sp) +/* 05730C 7F0227DC 02403025 */ move $a2, $s2 +/* 057310 7F0227E0 0FC1366C */ jal sub_GAME_7F04D9B0 +/* 057314 7F0227E4 02003825 */ move $a3, $s0 +/* 057318 7F0227E8 1440000D */ bnez $v0, .L7F022820 +/* 05731C 7F0227EC 27A40080 */ addiu $a0, $sp, 0x80 +/* 057320 7F0227F0 27AF00D8 */ addiu $t7, $sp, 0xd8 +/* 057324 7F0227F4 AFAF0010 */ sw $t7, 0x10($sp) +/* 057328 7F0227F8 02402825 */ move $a1, $s2 +/* 05732C 7F0227FC 02003025 */ move $a2, $s0 +/* 057330 7F022800 0FC1AF80 */ jal probably_damage_detail_blood_effect_related +/* 057334 7F022804 27A700DC */ addiu $a3, $sp, 0xdc +/* 057338 7F022808 24010064 */ li $at, 100 +/* 05733C 7F02280C 1041FFEB */ beq $v0, $at, .L7F0227BC +/* 057340 7F022810 00408825 */ move $s1, $v0 +/* 057344 7F022814 2401006E */ li $at, 110 +/* 057348 7F022818 5041FFE9 */ beql $v0, $at, .L7F0227C0 +/* 05734C 7F02281C 27AC00A4 */ addiu $t4, $sp, 0xa4 +.L7F022820: +/* 057350 7F022820 5A200041 */ blezl $s1, .L7F022928 +/* 057354 7F022824 8FAC00D4 */ lw $t4, 0xd4($sp) +/* 057358 7F022828 C650000C */ lwc1 $f16, 0xc($s2) +/* 05735C 7F02282C E7B00074 */ swc1 $f16, 0x74($sp) +/* 057360 7F022830 C6520010 */ lwc1 $f18, 0x10($s2) +/* 057364 7F022834 E7B20078 */ swc1 $f18, 0x78($sp) +/* 057368 7F022838 C6440014 */ lwc1 $f4, 0x14($s2) +/* 05736C 7F02283C 0FC1E111 */ jal sub_GAME_7F078444 +/* 057370 7F022840 E7A4007C */ swc1 $f4, 0x7c($sp) +/* 057374 7F022844 00402025 */ move $a0, $v0 +/* 057378 7F022848 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 05737C 7F02284C 27A50074 */ addiu $a1, $sp, 0x74 +/* 057380 7F022850 8FA400DC */ lw $a0, 0xdc($sp) +/* 057384 7F022854 8FA500D8 */ lw $a1, 0xd8($sp) +/* 057388 7F022858 0FC1B198 */ jal sub_GAME_7F06C660 +/* 05738C 7F02285C 00003025 */ move $a2, $zero +/* 057390 7F022860 C4460030 */ lwc1 $f6, 0x30($v0) +/* 057394 7F022864 C6480000 */ lwc1 $f8, ($s2) +/* 057398 7F022868 46083281 */ sub.s $f10, $f6, $f8 +/* 05739C 7F02286C E7AA0060 */ swc1 $f10, 0x60($sp) +/* 0573A0 7F022870 C6520004 */ lwc1 $f18, 4($s2) +/* 0573A4 7F022874 C4500034 */ lwc1 $f16, 0x34($v0) +/* 0573A8 7F022878 46128101 */ sub.s $f4, $f16, $f18 +/* 0573AC 7F02287C C7B00060 */ lwc1 $f16, 0x60($sp) +/* 0573B0 7F022880 E7A40064 */ swc1 $f4, 0x64($sp) +/* 0573B4 7F022884 C6480008 */ lwc1 $f8, 8($s2) +/* 0573B8 7F022888 C4460038 */ lwc1 $f6, 0x38($v0) +/* 0573BC 7F02288C 46108482 */ mul.s $f18, $f16, $f16 +/* 0573C0 7F022890 C7A40064 */ lwc1 $f4, 0x64($sp) +/* 0573C4 7F022894 46083281 */ sub.s $f10, $f6, $f8 +/* 0573C8 7F022898 46042182 */ mul.s $f6, $f4, $f4 +/* 0573CC 7F02289C E7AA0068 */ swc1 $f10, 0x68($sp) +/* 0573D0 7F0228A0 C7AA0068 */ lwc1 $f10, 0x68($sp) +/* 0573D4 7F0228A4 460A5402 */ mul.s $f16, $f10, $f10 +/* 0573D8 7F0228A8 46069200 */ add.s $f8, $f18, $f6 +/* 0573DC 7F0228AC 0C007DF8 */ jal sqrtf +/* 0573E0 7F0228B0 46088300 */ add.s $f12, $f16, $f8 +/* 0573E4 7F0228B4 C6440014 */ lwc1 $f4, 0x14($s2) +/* 0573E8 7F0228B8 C6460008 */ lwc1 $f6, 8($s2) +/* 0573EC 7F0228BC C64A0034 */ lwc1 $f10, 0x34($s2) +/* 0573F0 7F0228C0 46002482 */ mul.s $f18, $f4, $f0 +/* 0573F4 7F0228C4 02402025 */ move $a0, $s2 +/* 0573F8 7F0228C8 8FA500F0 */ lw $a1, 0xf0($sp) +/* 0573FC 7F0228CC 02203825 */ move $a3, $s1 +/* 057400 7F0228D0 8FB800D8 */ lw $t8, 0xd8($sp) +/* 057404 7F0228D4 27B900A4 */ addiu $t9, $sp, 0xa4 +/* 057408 7F0228D8 240B0001 */ li $t3, 1 +/* 05740C 7F0228DC 46069080 */ add.s $f2, $f18, $f6 +/* 057410 7F0228E0 46001087 */ neg.s $f2, $f2 +/* 057414 7F0228E4 460A103C */ c.lt.s $f2, $f10 +/* 057418 7F0228E8 00000000 */ nop +/* 05741C 7F0228EC 4502000E */ bc1fl .L7F022928 +/* 057420 7F0228F0 8FAC00D4 */ lw $t4, 0xd4($sp) +/* 057424 7F0228F4 8FA800A0 */ lw $t0, 0xa0($sp) +/* 057428 7F0228F8 8FA9009C */ lw $t1, 0x9c($sp) +/* 05742C 7F0228FC 8FAA00DC */ lw $t2, 0xdc($sp) +/* 057430 7F022900 44061000 */ mfc1 $a2, $f2 +/* 057434 7F022904 AFB80010 */ sw $t8, 0x10($sp) +/* 057438 7F022908 AFB90014 */ sw $t9, 0x14($sp) +/* 05743C 7F02290C AFAB0024 */ sw $t3, 0x24($sp) +/* 057440 7F022910 AFA00028 */ sw $zero, 0x28($sp) +/* 057444 7F022914 AFA80018 */ sw $t0, 0x18($sp) +/* 057448 7F022918 AFA9001C */ sw $t1, 0x1c($sp) +/* 05744C 7F02291C 0FC0EE70 */ jal sub_GAME_7F03B9C0 +/* 057450 7F022920 AFAA0020 */ sw $t2, 0x20($sp) +/* 057454 7F022924 8FAC00D4 */ lw $t4, 0xd4($sp) +.L7F022928: +/* 057458 7F022928 8FAD00F0 */ lw $t5, 0xf0($sp) +/* 05745C 7F02292C 5180000F */ beql $t4, $zero, .L7F02296C +/* 057460 7F022930 8FBF0044 */ lw $ra, 0x44($sp) +/* 057464 7F022934 C6500034 */ lwc1 $f16, 0x34($s2) +/* 057468 7F022938 C5A80018 */ lwc1 $f8, 0x18($t5) +/* 05746C 7F02293C 8FAE00EC */ lw $t6, 0xec($sp) +/* 057470 7F022940 4610403E */ c.le.s $f8, $f16 +/* 057474 7F022944 00000000 */ nop +/* 057478 7F022948 45020008 */ bc1fl .L7F02296C +/* 05747C 7F02294C 8FBF0044 */ lw $ra, 0x44($sp) +/* 057480 7F022950 8DCF0014 */ lw $t7, 0x14($t6) +/* 057484 7F022954 81D9000A */ lb $t9, 0xa($t6) +/* 057488 7F022958 35F80004 */ ori $t8, $t7, 4 +/* 05748C 7F02295C 27280001 */ addiu $t0, $t9, 1 +/* 057490 7F022960 ADD80014 */ sw $t8, 0x14($t6) +/* 057494 7F022964 A1C8000A */ sb $t0, 0xa($t6) +/* 057498 7F022968 8FBF0044 */ lw $ra, 0x44($sp) +.L7F02296C: +/* 05749C 7F02296C 8FB00038 */ lw $s0, 0x38($sp) +/* 0574A0 7F022970 8FB1003C */ lw $s1, 0x3c($sp) +/* 0574A4 7F022974 8FB20040 */ lw $s2, 0x40($sp) +/* 0574A8 7F022978 03E00008 */ jr $ra +/* 0574AC 7F02297C 27BD00F0 */ addiu $sp, $sp, 0xf0 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F022980(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F022980 +/* 0574B0 7F022980 27BDFF08 */ addiu $sp, $sp, -0xf8 +/* 0574B4 7F022984 AFBF004C */ sw $ra, 0x4c($sp) +/* 0574B8 7F022988 AFB60048 */ sw $s6, 0x48($sp) +/* 0574BC 7F02298C AFB50044 */ sw $s5, 0x44($sp) +/* 0574C0 7F022990 AFB40040 */ sw $s4, 0x40($sp) +/* 0574C4 7F022994 AFB3003C */ sw $s3, 0x3c($sp) +/* 0574C8 7F022998 AFB20038 */ sw $s2, 0x38($sp) +/* 0574CC 7F02299C AFB10034 */ sw $s1, 0x34($sp) +/* 0574D0 7F0229A0 AFB00030 */ sw $s0, 0x30($sp) +/* 0574D4 7F0229A4 F7B40028 */ sdc1 $f20, 0x28($sp) +/* 0574D8 7F0229A8 C4A40000 */ lwc1 $f4, ($a1) +/* 0574DC 7F0229AC C486000C */ lwc1 $f6, 0xc($a0) +/* 0574E0 7F0229B0 C48A0014 */ lwc1 $f10, 0x14($a0) +/* 0574E4 7F0229B4 C4920000 */ lwc1 $f18, ($a0) +/* 0574E8 7F0229B8 46062202 */ mul.s $f8, $f4, $f6 +/* 0574EC 7F0229BC 8CAE0004 */ lw $t6, 4($a1) +/* 0574F0 7F0229C0 00A08825 */ move $s1, $a1 +/* 0574F4 7F0229C4 0080A025 */ move $s4, $a0 +/* 0574F8 7F0229C8 8DD60004 */ lw $s6, 4($t6) +/* 0574FC 7F0229CC 460A4403 */ div.s $f16, $f8, $f10 +/* 057500 7F0229D0 46109101 */ sub.s $f4, $f18, $f16 +/* 057504 7F0229D4 E7A40098 */ swc1 $f4, 0x98($sp) +/* 057508 7F0229D8 C4A60000 */ lwc1 $f6, ($a1) +/* 05750C 7F0229DC C4880010 */ lwc1 $f8, 0x10($a0) +/* 057510 7F0229E0 C4920014 */ lwc1 $f18, 0x14($a0) +/* 057514 7F0229E4 C4840004 */ lwc1 $f4, 4($a0) +/* 057518 7F0229E8 46083282 */ mul.s $f10, $f6, $f8 +/* 05751C 7F0229EC 46125403 */ div.s $f16, $f10, $f18 +/* 057520 7F0229F0 46102181 */ sub.s $f6, $f4, $f16 +/* 057524 7F0229F4 C7A40098 */ lwc1 $f4, 0x98($sp) +/* 057528 7F0229F8 E7A6009C */ swc1 $f6, 0x9c($sp) +/* 05752C 7F0229FC C4AA0000 */ lwc1 $f10, ($a1) +/* 057530 7F022A00 C4880008 */ lwc1 $f8, 8($a0) +/* 057534 7F022A04 46042402 */ mul.s $f16, $f4, $f4 +/* 057538 7F022A08 C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 05753C 7F022A0C 460A4481 */ sub.s $f18, $f8, $f10 +/* 057540 7F022A10 46063202 */ mul.s $f8, $f6, $f6 +/* 057544 7F022A14 E7B200A0 */ swc1 $f18, 0xa0($sp) +/* 057548 7F022A18 C7B200A0 */ lwc1 $f18, 0xa0($sp) +/* 05754C 7F022A1C 46129102 */ mul.s $f4, $f18, $f18 +/* 057550 7F022A20 46088280 */ add.s $f10, $f16, $f8 +/* 057554 7F022A24 0C007DF8 */ jal sqrtf +/* 057558 7F022A28 460A2300 */ add.s $f12, $f4, $f10 +/* 05755C 7F022A2C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 057560 7F022A30 44813000 */ mtc1 $at, $f6 +/* 057564 7F022A34 3C014228 */ li $at, 0x42280000 # 42.000000 +/* 057568 7F022A38 44818000 */ mtc1 $at, $f16 +/* 05756C 7F022A3C C7B20098 */ lwc1 $f18, 0x98($sp) +/* 057570 7F022A40 C7AA009C */ lwc1 $f10, 0x9c($sp) +/* 057574 7F022A44 46008203 */ div.s $f8, $f16, $f0 +/* 057578 7F022A48 46083081 */ sub.s $f2, $f6, $f8 +/* 05757C 7F022A4C C7A600A0 */ lwc1 $f6, 0xa0($sp) +/* 057580 7F022A50 46029102 */ mul.s $f4, $f18, $f2 +/* 057584 7F022A54 00000000 */ nop +/* 057588 7F022A58 46025402 */ mul.s $f16, $f10, $f2 +/* 05758C 7F022A5C 00000000 */ nop +/* 057590 7F022A60 46023202 */ mul.s $f8, $f6, $f2 +/* 057594 7F022A64 E7A400A8 */ swc1 $f4, 0xa8($sp) +/* 057598 7F022A68 E7B000AC */ swc1 $f16, 0xac($sp) +/* 05759C 7F022A6C 0FC1E111 */ jal sub_GAME_7F078444 +/* 0575A0 7F022A70 E7A800B0 */ swc1 $f8, 0xb0($sp) +/* 0575A4 7F022A74 27B000A8 */ addiu $s0, $sp, 0xa8 +/* 0575A8 7F022A78 02002825 */ move $a1, $s0 +/* 0575AC 7F022A7C 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 0575B0 7F022A80 00402025 */ move $a0, $v0 +/* 0575B4 7F022A84 0FC19ED3 */ jal sub_GAME_7F067B4C +/* 0575B8 7F022A88 02002025 */ move $a0, $s0 +/* 0575BC 7F022A8C 8E840018 */ lw $a0, 0x18($s4) +/* 0575C0 7F022A90 8E250004 */ lw $a1, 4($s1) +/* 0575C4 7F022A94 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 0575C8 7F022A98 2406FFFF */ li $a2, -1 +/* 0575CC 7F022A9C 8E240004 */ lw $a0, 4($s1) +/* 0575D0 7F022AA0 8E250008 */ lw $a1, 8($s1) +/* 0575D4 7F022AA4 27A60098 */ addiu $a2, $sp, 0x98 +/* 0575D8 7F022AA8 0FC0881E */ jal sub_GAME_7F022078 +/* 0575DC 7F022AAC 02003825 */ move $a3, $s0 +/* 0575E0 7F022AB0 8E250008 */ lw $a1, 8($s1) +/* 0575E4 7F022AB4 8E870018 */ lw $a3, 0x18($s4) +/* 0575E8 7F022AB8 240F0001 */ li $t7, 1 +/* 0575EC 7F022ABC AFAF0010 */ sw $t7, 0x10($sp) +/* 0575F0 7F022AC0 02C02025 */ move $a0, $s6 +/* 0575F4 7F022AC4 0FC09C9F */ jal handles_shot_actors +/* 0575F8 7F022AC8 26860028 */ addiu $a2, $s4, 0x28 +/* 0575FC 7F022ACC 504000C9 */ beql $v0, $zero, .L7F022DF4 +/* 057600 7F022AD0 8FBF004C */ lw $ra, 0x4c($sp) +/* 057604 7F022AD4 8E220008 */ lw $v0, 8($s1) +/* 057608 7F022AD8 24010064 */ li $at, 100 +/* 05760C 7F022ADC 3C158005 */ lui $s5, %hi(D_8004E86C) +/* 057610 7F022AE0 14410057 */ bne $v0, $at, .L7F022C40 +/* 057614 7F022AE4 26B5E86C */ addiu $s5, %lo(D_8004E86C) # addiu $s5, $s5, -0x1794 +/* 057618 7F022AE8 00009025 */ move $s2, $zero +/* 05761C 7F022AEC 02C09825 */ move $s3, $s6 +.L7F022AF0: +/* 057620 7F022AF0 8E700160 */ lw $s0, 0x160($s3) +/* 057624 7F022AF4 5200004D */ beql $s0, $zero, .L7F022C2C +/* 057628 7F022AF8 26520004 */ addiu $s2, $s2, 4 +/* 05762C 7F022AFC 8E030004 */ lw $v1, 4($s0) +/* 057630 7F022B00 8E380048 */ lw $t8, 0x48($s1) +/* 057634 7F022B04 8C790014 */ lw $t9, 0x14($v1) +/* 057638 7F022B08 57190048 */ bnel $t8, $t9, .L7F022C2C +/* 05763C 7F022B0C 26520004 */ addiu $s2, $s2, 4 +/* 057640 7F022B10 80620080 */ lb $v0, 0x80($v1) +/* 057644 7F022B14 2401001A */ li $at, 26 +/* 057648 7F022B18 02002025 */ move $a0, $s0 +/* 05764C 7F022B1C 1041000D */ beq $v0, $at, .L7F022B54 +/* 057650 7F022B20 24010057 */ li $at, 87 +/* 057654 7F022B24 1041000B */ beq $v0, $at, .L7F022B54 +/* 057658 7F022B28 24010056 */ li $at, 86 +/* 05765C 7F022B2C 10410009 */ beq $v0, $at, .L7F022B54 +/* 057660 7F022B30 2401001B */ li $at, 27 +/* 057664 7F022B34 10410007 */ beq $v0, $at, .L7F022B54 +/* 057668 7F022B38 24010021 */ li $at, 33 +/* 05766C 7F022B3C 10410005 */ beq $v0, $at, .L7F022B54 +/* 057670 7F022B40 2401001D */ li $at, 29 +/* 057674 7F022B44 10410003 */ beq $v0, $at, .L7F022B54 +/* 057678 7F022B48 2401001C */ li $at, 28 +/* 05767C 7F022B4C 54410013 */ bnel $v0, $at, .L7F022B9C +/* 057680 7F022B50 8622003A */ lh $v0, 0x3a($s1) +.L7F022B54: +/* 057684 7F022B54 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 057688 7F022B58 24050001 */ li $a1, 1 +/* 05768C 7F022B5C 96C90012 */ lhu $t1, 0x12($s6) +/* 057690 7F022B60 352A0001 */ ori $t2, $t1, 1 +/* 057694 7F022B64 A6CA0012 */ sh $t2, 0x12($s6) +/* 057698 7F022B68 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 05769C 7F022B6C 8E840018 */ lw $a0, 0x18($s4) +/* 0576A0 7F022B70 0FC26C54 */ jal get_cur_playernum +/* 0576A4 7F022B74 46000506 */ mov.s $f20, $f0 +/* 0576A8 7F022B78 8E040004 */ lw $a0, 4($s0) +/* 0576AC 7F022B7C 4405A000 */ mfc1 $a1, $f20 +/* 0576B0 7F022B80 8E870018 */ lw $a3, 0x18($s4) +/* 0576B4 7F022B84 AFA20010 */ sw $v0, 0x10($sp) +/* 0576B8 7F022B88 0FC13842 */ jal maybe_detonate_object +/* 0576BC 7F022B8C 27A60098 */ addiu $a2, $sp, 0x98 +/* 0576C0 7F022B90 10000026 */ b .L7F022C2C +/* 0576C4 7F022B94 26520004 */ addiu $s2, $s2, 4 +/* 0576C8 7F022B98 8622003A */ lh $v0, 0x3a($s1) +.L7F022B9C: +/* 0576CC 7F022B9C 26240010 */ addiu $a0, $s1, 0x10 +/* 0576D0 7F022BA0 2625001C */ addiu $a1, $s1, 0x1c +/* 0576D4 7F022BA4 04410003 */ bgez $v0, .L7F022BB4 +/* 0576D8 7F022BA8 000258C0 */ sll $t3, $v0, 3 +/* 0576DC 7F022BAC 10000008 */ b .L7F022BD0 +/* 0576E0 7F022BB0 8EA30000 */ lw $v1, ($s5) +.L7F022BB4: +/* 0576E4 7F022BB4 3C0C8005 */ lui $t4, %hi(image_entries) +/* 0576E8 7F022BB8 018B6021 */ addu $t4, $t4, $t3 +/* 0576EC 7F022BBC 918C9300 */ lbu $t4, %lo(image_entries)($t4) +/* 0576F0 7F022BC0 318D000F */ andi $t5, $t4, 0xf +/* 0576F4 7F022BC4 000D7080 */ sll $t6, $t5, 2 +/* 0576F8 7F022BC8 02AE7821 */ addu $t7, $s5, $t6 +/* 0576FC 7F022BCC 8DE30000 */ lw $v1, ($t7) +.L7F022BD0: +/* 057700 7F022BD0 AFA30088 */ sw $v1, 0x88($sp) +/* 057704 7F022BD4 AFA40054 */ sw $a0, 0x54($sp) +/* 057708 7F022BD8 0C002914 */ jal get_random_value +/* 05770C 7F022BDC AFA50050 */ sw $a1, 0x50($sp) +/* 057710 7F022BE0 8FA30088 */ lw $v1, 0x88($sp) +/* 057714 7F022BE4 8FA40054 */ lw $a0, 0x54($sp) +/* 057718 7F022BE8 8FA50050 */ lw $a1, 0x50($sp) +/* 05771C 7F022BEC 8478000A */ lh $t8, 0xa($v1) +/* 057720 7F022BF0 8C790004 */ lw $t9, 4($v1) +/* 057724 7F022BF4 24070001 */ li $a3, 1 +/* 057728 7F022BF8 0058001B */ divu $zero, $v0, $t8 +/* 05772C 7F022BFC 00004010 */ mfhi $t0 +/* 057730 7F022C00 03284821 */ addu $t1, $t9, $t0 +/* 057734 7F022C04 91260000 */ lbu $a2, ($t1) +/* 057738 7F022C08 AFB00010 */ sw $s0, 0x10($sp) +/* 05773C 7F022C0C 8E2A0040 */ lw $t2, 0x40($s1) +/* 057740 7F022C10 17000002 */ bnez $t8, .L7F022C1C +/* 057744 7F022C14 00000000 */ nop +/* 057748 7F022C18 0007000D */ break 7 +.L7F022C1C: +/* 05774C 7F022C1C AFA00018 */ sw $zero, 0x18($sp) +/* 057750 7F022C20 0FC28423 */ jal sub_GAME_7F0A108C +/* 057754 7F022C24 AFAA0014 */ sw $t2, 0x14($sp) +/* 057758 7F022C28 26520004 */ addiu $s2, $s2, 4 +.L7F022C2C: +/* 05775C 7F022C2C 24010008 */ li $at, 8 +/* 057760 7F022C30 1641FFAF */ bne $s2, $at, .L7F022AF0 +/* 057764 7F022C34 26730004 */ addiu $s3, $s3, 4 +/* 057768 7F022C38 1000006E */ b .L7F022DF4 +/* 05776C 7F022C3C 8FBF004C */ lw $ra, 0x4c($sp) +.L7F022C40: +/* 057770 7F022C40 2401006E */ li $at, 110 +/* 057774 7F022C44 14410027 */ bne $v0, $at, .L7F022CE4 +/* 057778 7F022C48 00003025 */ move $a2, $zero +/* 05777C 7F022C4C 8622003A */ lh $v0, 0x3a($s1) +/* 057780 7F022C50 3C158005 */ lui $s5, %hi(D_8004E86C) +/* 057784 7F022C54 3C0C8005 */ lui $t4, %hi(image_entries) +/* 057788 7F022C58 04410004 */ bgez $v0, .L7F022C6C +/* 05778C 7F022C5C 000258C0 */ sll $t3, $v0, 3 +/* 057790 7F022C60 26B5E86C */ addiu $s5, %lo(D_8004E86C) # addiu $s5, $s5, -0x1794 +/* 057794 7F022C64 10000009 */ b .L7F022C8C +/* 057798 7F022C68 8EB00000 */ lw $s0, ($s5) +.L7F022C6C: +/* 05779C 7F022C6C 018B6021 */ addu $t4, $t4, $t3 +/* 0577A0 7F022C70 918C9300 */ lbu $t4, %lo(image_entries)($t4) +/* 0577A4 7F022C74 3C158005 */ lui $s5, %hi(D_8004E86C) +/* 0577A8 7F022C78 26B5E86C */ addiu $s5, %lo(D_8004E86C) # addiu $s5, $s5, -0x1794 +/* 0577AC 7F022C7C 318D000F */ andi $t5, $t4, 0xf +/* 0577B0 7F022C80 000D7080 */ sll $t6, $t5, 2 +/* 0577B4 7F022C84 02AE7821 */ addu $t7, $s5, $t6 +/* 0577B8 7F022C88 8DF00000 */ lw $s0, ($t7) +.L7F022C8C: +/* 0577BC 7F022C8C 0C002914 */ jal get_random_value +/* 0577C0 7F022C90 00000000 */ nop +/* 0577C4 7F022C94 8618000A */ lh $t8, 0xa($s0) +/* 0577C8 7F022C98 8E190004 */ lw $t9, 4($s0) +/* 0577CC 7F022C9C 8ECA01D8 */ lw $t2, 0x1d8($s6) +/* 0577D0 7F022CA0 0058001B */ divu $zero, $v0, $t8 +/* 0577D4 7F022CA4 00001810 */ mfhi $v1 +/* 0577D8 7F022CA8 03234821 */ addu $t1, $t9, $v1 +/* 0577DC 7F022CAC 91260000 */ lbu $a2, ($t1) +/* 0577E0 7F022CB0 AFAA0010 */ sw $t2, 0x10($sp) +/* 0577E4 7F022CB4 8E2B0040 */ lw $t3, 0x40($s1) +/* 0577E8 7F022CB8 17000002 */ bnez $t8, .L7F022CC4 +/* 0577EC 7F022CBC 00000000 */ nop +/* 0577F0 7F022CC0 0007000D */ break 7 +.L7F022CC4: +/* 0577F4 7F022CC4 AFA00018 */ sw $zero, 0x18($sp) +/* 0577F8 7F022CC8 26240010 */ addiu $a0, $s1, 0x10 +/* 0577FC 7F022CCC 2625001C */ addiu $a1, $s1, 0x1c +/* 057800 7F022CD0 24070001 */ li $a3, 1 +/* 057804 7F022CD4 0FC28423 */ jal sub_GAME_7F0A108C +/* 057808 7F022CD8 AFAB0014 */ sw $t3, 0x14($sp) +/* 05780C 7F022CDC 10000045 */ b .L7F022DF4 +/* 057810 7F022CE0 8FBF004C */ lw $ra, 0x4c($sp) +.L7F022CE4: +/* 057814 7F022CE4 8E240048 */ lw $a0, 0x48($s1) +/* 057818 7F022CE8 0FC1B198 */ jal sub_GAME_7F06C660 +/* 05781C 7F022CEC 8E25000C */ lw $a1, 0xc($s1) +/* 057820 7F022CF0 C7B20098 */ lwc1 $f18, 0x98($sp) +/* 057824 7F022CF4 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 057828 7F022CF8 C7AA00A0 */ lwc1 $f10, 0xa0($sp) +/* 05782C 7F022CFC E7B20070 */ swc1 $f18, 0x70($sp) +/* 057830 7F022D00 E7A40074 */ swc1 $f4, 0x74($sp) +/* 057834 7F022D04 E7AA0078 */ swc1 $f10, 0x78($sp) +/* 057838 7F022D08 C4500030 */ lwc1 $f16, 0x30($v0) +/* 05783C 7F022D0C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 057840 7F022D10 4481A000 */ mtc1 $at, $f20 +/* 057844 7F022D14 46109181 */ sub.s $f6, $f18, $f16 +/* 057848 7F022D18 00408025 */ move $s0, $v0 +/* 05784C 7F022D1C 46143202 */ mul.s $f8, $f6, $f20 +/* 057850 7F022D20 46089400 */ add.s $f16, $f18, $f8 +/* 057854 7F022D24 E7B00070 */ swc1 $f16, 0x70($sp) +/* 057858 7F022D28 C4460034 */ lwc1 $f6, 0x34($v0) +/* 05785C 7F022D2C 46062481 */ sub.s $f18, $f4, $f6 +/* 057860 7F022D30 46149202 */ mul.s $f8, $f18, $f20 +/* 057864 7F022D34 46082400 */ add.s $f16, $f4, $f8 +/* 057868 7F022D38 E7B00074 */ swc1 $f16, 0x74($sp) +/* 05786C 7F022D3C C4460038 */ lwc1 $f6, 0x38($v0) +/* 057870 7F022D40 46065481 */ sub.s $f18, $f10, $f6 +/* 057874 7F022D44 46149102 */ mul.s $f4, $f18, $f20 +/* 057878 7F022D48 46045200 */ add.s $f8, $f10, $f4 +/* 05787C 7F022D4C E7A80078 */ swc1 $f8, 0x78($sp) +/* 057880 7F022D50 8E25000C */ lw $a1, 0xc($s1) +/* 057884 7F022D54 0FC1B3A4 */ jal getjointsize +/* 057888 7F022D58 8E240048 */ lw $a0, 0x48($s1) +/* 05788C 7F022D5C 46140402 */ mul.s $f16, $f0, $f20 +/* 057890 7F022D60 C686000C */ lwc1 $f6, 0xc($s4) +/* 057894 7F022D64 C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 057898 7F022D68 46068482 */ mul.s $f18, $f16, $f6 +/* 05789C 7F022D6C 46125101 */ sub.s $f4, $f10, $f18 +/* 0578A0 7F022D70 E7A40070 */ swc1 $f4, 0x70($sp) +/* 0578A4 7F022D74 8E25000C */ lw $a1, 0xc($s1) +/* 0578A8 7F022D78 0FC1B3A4 */ jal getjointsize +/* 0578AC 7F022D7C 8E240048 */ lw $a0, 0x48($s1) +/* 0578B0 7F022D80 46140202 */ mul.s $f8, $f0, $f20 +/* 0578B4 7F022D84 C6900010 */ lwc1 $f16, 0x10($s4) +/* 0578B8 7F022D88 C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 0578BC 7F022D8C 46104182 */ mul.s $f6, $f8, $f16 +/* 0578C0 7F022D90 46065481 */ sub.s $f18, $f10, $f6 +/* 0578C4 7F022D94 E7B20074 */ swc1 $f18, 0x74($sp) +/* 0578C8 7F022D98 8E25000C */ lw $a1, 0xc($s1) +/* 0578CC 7F022D9C 0FC1B3A4 */ jal getjointsize +/* 0578D0 7F022DA0 8E240048 */ lw $a0, 0x48($s1) +/* 0578D4 7F022DA4 46140102 */ mul.s $f4, $f0, $f20 +/* 0578D8 7F022DA8 C6880014 */ lwc1 $f8, 0x14($s4) +/* 0578DC 7F022DAC C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 0578E0 7F022DB0 27B200B4 */ addiu $s2, $sp, 0xb4 +/* 0578E4 7F022DB4 02402825 */ move $a1, $s2 +/* 0578E8 7F022DB8 02002025 */ move $a0, $s0 +/* 0578EC 7F022DBC 46082402 */ mul.s $f16, $f4, $f8 +/* 0578F0 7F022DC0 46105181 */ sub.s $f6, $f10, $f16 +/* 0578F4 7F022DC4 0FC16799 */ jal sub_GAME_7F059E64 +/* 0578F8 7F022DC8 E7A60078 */ swc1 $f6, 0x78($sp) +/* 0578FC 7F022DCC 27B00070 */ addiu $s0, $sp, 0x70 +/* 057900 7F022DD0 02002825 */ move $a1, $s0 +/* 057904 7F022DD4 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 057908 7F022DD8 02402025 */ move $a0, $s2 +/* 05790C 7F022DDC 8E240048 */ lw $a0, 0x48($s1) +/* 057910 7F022DE0 8E250008 */ lw $a1, 8($s1) +/* 057914 7F022DE4 8E26000C */ lw $a2, 0xc($s1) +/* 057918 7F022DE8 0FC08877 */ jal sub_GAME_7F0221DC +/* 05791C 7F022DEC 02003825 */ move $a3, $s0 +/* 057920 7F022DF0 8FBF004C */ lw $ra, 0x4c($sp) +.L7F022DF4: +/* 057924 7F022DF4 D7B40028 */ ldc1 $f20, 0x28($sp) +/* 057928 7F022DF8 8FB00030 */ lw $s0, 0x30($sp) +/* 05792C 7F022DFC 8FB10034 */ lw $s1, 0x34($sp) +/* 057930 7F022E00 8FB20038 */ lw $s2, 0x38($sp) +/* 057934 7F022E04 8FB3003C */ lw $s3, 0x3c($sp) +/* 057938 7F022E08 8FB40040 */ lw $s4, 0x40($sp) +/* 05793C 7F022E0C 8FB50044 */ lw $s5, 0x44($sp) +/* 057940 7F022E10 8FB60048 */ lw $s6, 0x48($sp) +/* 057944 7F022E14 03E00008 */ jr $ra +/* 057948 7F022E18 27BD00F8 */ addiu $sp, $sp, 0xf8 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F022E1C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F022E1C +/* 05794C 7F022E1C 03E00008 */ jr $ra +/* 057950 7F022E20 E7AC0000 */ swc1 $f12, ($sp) +) +#endif + + + + +void sub_GAME_7F022E24(s32 param_1){ + D_8002C904 = param_1; + return; +} + + + +#ifdef NONMATCHING +void sub_GAME_7F022E30(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F022E30 +/* 057960 7F022E30 3C038003 */ lui $v1, %hi(D_8002C908) +/* 057964 7F022E34 2463C908 */ addiu $v1, %lo(D_8002C908) # addiu $v1, $v1, -0x36f8 +/* 057968 7F022E38 8C6E0000 */ lw $t6, ($v1) +/* 05796C 7F022E3C 3C048003 */ lui $a0, %hi(animation_table_ptrs1) +/* 057970 7F022E40 24849D6C */ addiu $a0, %lo(animation_table_ptrs1) # addiu $a0, $a0, -0x6294 +/* 057974 7F022E44 25CFFFFF */ addiu $t7, $t6, -1 +/* 057978 7F022E48 05E1000F */ bgez $t7, .L7F022E88 +/* 05797C 7F022E4C AC6F0000 */ sw $t7, ($v1) +/* 057980 7F022E50 0000C880 */ sll $t9, $zero, 2 +/* 057984 7F022E54 00994021 */ addu $t0, $a0, $t9 +/* 057988 7F022E58 8D090004 */ lw $t1, 4($t0) +/* 05798C 7F022E5C AC600000 */ sw $zero, ($v1) +/* 057990 7F022E60 00001025 */ move $v0, $zero +/* 057994 7F022E64 11200008 */ beqz $t1, .L7F022E88 +/* 057998 7F022E68 244A0001 */ addiu $t2, $v0, 1 +.L7F022E6C: +/* 05799C 7F022E6C 000A5880 */ sll $t3, $t2, 2 +/* 0579A0 7F022E70 008B6021 */ addu $t4, $a0, $t3 +/* 0579A4 7F022E74 8D8D0004 */ lw $t5, 4($t4) +/* 0579A8 7F022E78 AC6A0000 */ sw $t2, ($v1) +/* 0579AC 7F022E7C 01401025 */ move $v0, $t2 +/* 0579B0 7F022E80 55A0FFFA */ bnezl $t5, .L7F022E6C +/* 0579B4 7F022E84 244A0001 */ addiu $t2, $v0, 1 +.L7F022E88: +/* 0579B8 7F022E88 03E00008 */ jr $ra +/* 0579BC 7F022E8C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F022E90(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F022E90 +/* 0579C0 7F022E90 3C028003 */ lui $v0, %hi(D_8002C908) +/* 0579C4 7F022E94 2442C908 */ addiu $v0, %lo(D_8002C908) # addiu $v0, $v0, -0x36f8 +/* 0579C8 7F022E98 8C4E0000 */ lw $t6, ($v0) +/* 0579CC 7F022E9C 3C088003 */ lui $t0, %hi(animation_table_ptrs1) +/* 0579D0 7F022EA0 25CF0001 */ addiu $t7, $t6, 1 +/* 0579D4 7F022EA4 000FC880 */ sll $t9, $t7, 2 +/* 0579D8 7F022EA8 AC4F0000 */ sw $t7, ($v0) +/* 0579DC 7F022EAC 01194021 */ addu $t0, $t0, $t9 +/* 0579E0 7F022EB0 8D089D6C */ lw $t0, %lo(animation_table_ptrs1)($t0) +/* 0579E4 7F022EB4 15000002 */ bnez $t0, .L7F022EC0 +/* 0579E8 7F022EB8 00000000 */ nop +/* 0579EC 7F022EBC AC400000 */ sw $zero, ($v0) +.L7F022EC0: +/* 0579F0 7F022EC0 03E00008 */ jr $ra +/* 0579F4 7F022EC4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F022EC8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F022EC8 +/* 0579F8 7F022EC8 3C038003 */ lui $v1, %hi(D_8002C90C) +/* 0579FC 7F022ECC 2463C90C */ addiu $v1, %lo(D_8002C90C) # addiu $v1, $v1, -0x36f4 +/* 057A00 7F022ED0 8C620000 */ lw $v0, ($v1) +/* 057A04 7F022ED4 2C4E0001 */ sltiu $t6, $v0, 1 +/* 057A08 7F022ED8 03E00008 */ jr $ra +/* 057A0C 7F022EDC AC6E0000 */ sw $t6, ($v1) +) +#endif + + + +void sub_GAME_7F022EE0(s32 param_1){ + D_8002C910 = param_1; +} + + + + +#ifdef NONMATCHING +void sub_GAME_7F022EEC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F022EEC +/* 057A1C 7F022EEC 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 057A20 7F022EF0 AFB40038 */ sw $s4, 0x38($sp) +/* 057A24 7F022EF4 3C148003 */ lui $s4, %hi(num_guards) +/* 057A28 7F022EF8 2694CC68 */ addiu $s4, %lo(num_guards) # addiu $s4, $s4, -0x3398 +/* 057A2C 7F022EFC 8E8E0000 */ lw $t6, ($s4) +/* 057A30 7F022F00 AFB20030 */ sw $s2, 0x30($sp) +/* 057A34 7F022F04 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 057A38 7F022F08 46006586 */ mov.s $f22, $f12 +/* 057A3C 7F022F0C AFBF003C */ sw $ra, 0x3c($sp) +/* 057A40 7F022F10 AFB30034 */ sw $s3, 0x34($sp) +/* 057A44 7F022F14 AFB1002C */ sw $s1, 0x2c($sp) +/* 057A48 7F022F18 AFB00028 */ sw $s0, 0x28($sp) +/* 057A4C 7F022F1C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 057A50 7F022F20 19C0001F */ blez $t6, .L7F022FA0 +/* 057A54 7F022F24 00009025 */ move $s2, $zero +/* 057A58 7F022F28 3C138003 */ lui $s3, %hi(ptr_guard_data) +/* 057A5C 7F022F2C 2673CC64 */ addiu $s3, %lo(ptr_guard_data) # addiu $s3, $s3, -0x339c +/* 057A60 7F022F30 00008825 */ move $s1, $zero +/* 057A64 7F022F34 8E700000 */ lw $s0, ($s3) +.L7F022F38: +/* 057A68 7F022F38 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 057A6C 7F022F3C 02117821 */ addu $t7, $s0, $s1 +/* 057A70 7F022F40 8DF8001C */ lw $t8, 0x1c($t7) +/* 057A74 7F022F44 53000011 */ beql $t8, $zero, .L7F022F8C +/* 057A78 7F022F48 8E880000 */ lw $t0, ($s4) +/* 057A7C 7F022F4C 44812000 */ mtc1 $at, $f4 +/* 057A80 7F022F50 02302021 */ addu $a0, $s1, $s0 +/* 057A84 7F022F54 4604B502 */ mul.s $f20, $f22, $f4 +/* 057A88 7F022F58 0FC0CB79 */ jal sub_GAME_7F032DE4 +/* 057A8C 7F022F5C 00000000 */ nop +/* 057A90 7F022F60 8E700000 */ lw $s0, ($s3) +/* 057A94 7F022F64 0211C821 */ addu $t9, $s0, $s1 +/* 057A98 7F022F68 C72600EC */ lwc1 $f6, 0xec($t9) +/* 057A9C 7F022F6C 46143202 */ mul.s $f8, $f6, $f20 +/* 057AA0 7F022F70 4608003C */ c.lt.s $f0, $f8 +/* 057AA4 7F022F74 00000000 */ nop +/* 057AA8 7F022F78 45020004 */ bc1fl .L7F022F8C +/* 057AAC 7F022F7C 8E880000 */ lw $t0, ($s4) +/* 057AB0 7F022F80 0FC0A700 */ jal sub_GAME_7F029C00 +/* 057AB4 7F022F84 02302021 */ addu $a0, $s1, $s0 +/* 057AB8 7F022F88 8E880000 */ lw $t0, ($s4) +.L7F022F8C: +/* 057ABC 7F022F8C 26520001 */ addiu $s2, $s2, 1 +/* 057AC0 7F022F90 263101DC */ addiu $s1, $s1, 0x1dc +/* 057AC4 7F022F94 0248082A */ slt $at, $s2, $t0 +/* 057AC8 7F022F98 5420FFE7 */ bnezl $at, .L7F022F38 +/* 057ACC 7F022F9C 8E700000 */ lw $s0, ($s3) +.L7F022FA0: +/* 057AD0 7F022FA0 8FBF003C */ lw $ra, 0x3c($sp) +/* 057AD4 7F022FA4 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 057AD8 7F022FA8 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 057ADC 7F022FAC 8FB00028 */ lw $s0, 0x28($sp) +/* 057AE0 7F022FB0 8FB1002C */ lw $s1, 0x2c($sp) +/* 057AE4 7F022FB4 8FB20030 */ lw $s2, 0x30($sp) +/* 057AE8 7F022FB8 8FB30034 */ lw $s3, 0x34($sp) +/* 057AEC 7F022FBC 8FB40038 */ lw $s4, 0x38($sp) +/* 057AF0 7F022FC0 03E00008 */ jr $ra +/* 057AF4 7F022FC4 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + +#ifdef NONMATCHING +void check_if_guardnum_loaded_get_ptr_GUARDdata(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_guardnum_loaded_get_ptr_GUARDdata +/* 057AF8 7F022FC8 3C038003 */ lui $v1, %hi(num_guards) +/* 057AFC 7F022FCC 8C63CC68 */ lw $v1, %lo(num_guards)($v1) +/* 057B00 7F022FD0 00803825 */ move $a3, $a0 +/* 057B04 7F022FD4 3C048003 */ lui $a0, %hi(ptr_guard_data) +/* 057B08 7F022FD8 18600011 */ blez $v1, .L7F023020 +/* 057B0C 7F022FDC 00001025 */ move $v0, $zero +/* 057B10 7F022FE0 8C84CC64 */ lw $a0, %lo(ptr_guard_data)($a0) +/* 057B14 7F022FE4 00002825 */ move $a1, $zero +/* 057B18 7F022FE8 00803025 */ move $a2, $a0 +.L7F022FEC: +/* 057B1C 7F022FEC 8CCE001C */ lw $t6, 0x1c($a2) +/* 057B20 7F022FF0 24420001 */ addiu $v0, $v0, 1 +/* 057B24 7F022FF4 0043082A */ slt $at, $v0, $v1 +/* 057B28 7F022FF8 51C00007 */ beql $t6, $zero, .L7F023018 +/* 057B2C 7F022FFC 24A501DC */ addiu $a1, $a1, 0x1dc +/* 057B30 7F023000 84CF0000 */ lh $t7, ($a2) +/* 057B34 7F023004 54EF0004 */ bnel $a3, $t7, .L7F023018 +/* 057B38 7F023008 24A501DC */ addiu $a1, $a1, 0x1dc +/* 057B3C 7F02300C 03E00008 */ jr $ra +/* 057B40 7F023010 00A41021 */ addu $v0, $a1, $a0 + +/* 057B44 7F023014 24A501DC */ addiu $a1, $a1, 0x1dc +.L7F023018: +/* 057B48 7F023018 1420FFF4 */ bnez $at, .L7F022FEC +/* 057B4C 7F02301C 24C601DC */ addiu $a2, $a2, 0x1dc +.L7F023020: +/* 057B50 7F023020 00001025 */ move $v0, $zero +/* 057B54 7F023024 03E00008 */ jr $ra +/* 057B58 7F023028 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void something_with_weaponpos_of_guarddata_hand(void) { + +} +#else +GLOBAL_ASM( +.text +glabel something_with_weaponpos_of_guarddata_hand +/* 057B5C 7F02302C 00057080 */ sll $t6, $a1, 2 +/* 057B60 7F023030 008E7821 */ addu $t7, $a0, $t6 +/* 057B64 7F023034 03E00008 */ jr $ra +/* 057B68 7F023038 8DE20160 */ lw $v0, 0x160($t7) +) +#endif + + + +#ifdef NONMATCHING +void is_weapon_in_guarddata_hand(void) { + +} +#else +GLOBAL_ASM( +.text +glabel is_weapon_in_guarddata_hand +/* 057B6C 7F02303C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 057B70 7F023040 00057080 */ sll $t6, $a1, 2 +/* 057B74 7F023044 AFBF0014 */ sw $ra, 0x14($sp) +/* 057B78 7F023048 008E7821 */ addu $t7, $a0, $t6 +/* 057B7C 7F02304C 8DE30160 */ lw $v1, 0x160($t7) +/* 057B80 7F023050 5060000A */ beql $v1, $zero, .L7F02307C +/* 057B84 7F023054 8FBF0014 */ lw $ra, 0x14($sp) +/* 057B88 7F023058 8C620004 */ lw $v0, 4($v1) +/* 057B8C 7F02305C 24050200 */ li $a1, 512 +/* 057B90 7F023060 80440080 */ lb $a0, 0x80($v0) +/* 057B94 7F023064 0FC1782D */ jal bondwalkItemCheckBitflags +/* 057B98 7F023068 AFA3001C */ sw $v1, 0x1c($sp) +/* 057B9C 7F02306C 14400002 */ bnez $v0, .L7F023078 +/* 057BA0 7F023070 8FA3001C */ lw $v1, 0x1c($sp) +/* 057BA4 7F023074 00001825 */ move $v1, $zero +.L7F023078: +/* 057BA8 7F023078 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02307C: +/* 057BAC 7F02307C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 057BB0 7F023080 00601025 */ move $v0, $v1 +/* 057BB4 7F023084 03E00008 */ jr $ra +/* 057BB8 7F023088 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02308C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02308C +/* 057BBC 7F02308C 8C820004 */ lw $v0, 4($a0) +/* 057BC0 7F023090 24080004 */ li $t0, 4 +/* 057BC4 7F023094 24010005 */ li $at, 5 +/* 057BC8 7F023098 80430007 */ lb $v1, 7($v0) +/* 057BCC 7F02309C 5103002E */ beql $t0, $v1, .L7F023158 +/* 057BD0 7F0230A0 ACC00000 */ sw $zero, ($a2) +/* 057BD4 7F0230A4 5061002C */ beql $v1, $at, .L7F023158 +/* 057BD8 7F0230A8 ACC00000 */ sw $zero, ($a2) +/* 057BDC 7F0230AC 8C4E0014 */ lw $t6, 0x14($v0) +/* 057BE0 7F0230B0 3C010001 */ lui $at, (0x00010400 >> 16) # lui $at, 1 +/* 057BE4 7F0230B4 34210400 */ ori $at, (0x00010400 & 0xFFFF) # ori $at, $at, 0x400 +/* 057BE8 7F0230B8 01C17824 */ and $t7, $t6, $at +/* 057BEC 7F0230BC 55E00026 */ bnezl $t7, .L7F023158 +/* 057BF0 7F0230C0 ACC00000 */ sw $zero, ($a2) +/* 057BF4 7F0230C4 94580012 */ lhu $t8, 0x12($v0) +/* 057BF8 7F0230C8 2449011C */ addiu $t1, $v0, 0x11c +/* 057BFC 7F0230CC 33190100 */ andi $t9, $t8, 0x100 +/* 057C00 7F0230D0 57200021 */ bnezl $t9, .L7F023158 +/* 057C04 7F0230D4 ACC00000 */ sw $zero, ($a2) +/* 057C08 7F0230D8 ACC80000 */ sw $t0, ($a2) +/* 057C0C 7F0230DC ACA90000 */ sw $t1, ($a1) +/* 057C10 7F0230E0 C4840008 */ lwc1 $f4, 8($a0) +/* 057C14 7F0230E4 C4400024 */ lwc1 $f0, 0x24($v0) +/* 057C18 7F0230E8 46002180 */ add.s $f6, $f4, $f0 +/* 057C1C 7F0230EC E446011C */ swc1 $f6, 0x11c($v0) +/* 057C20 7F0230F0 C4880010 */ lwc1 $f8, 0x10($a0) +/* 057C24 7F0230F4 E4480120 */ swc1 $f8, 0x120($v0) +/* 057C28 7F0230F8 C48A0008 */ lwc1 $f10, 8($a0) +/* 057C2C 7F0230FC E44A0124 */ swc1 $f10, 0x124($v0) +/* 057C30 7F023100 C4900010 */ lwc1 $f16, 0x10($a0) +/* 057C34 7F023104 46008480 */ add.s $f18, $f16, $f0 +/* 057C38 7F023108 E4520128 */ swc1 $f18, 0x128($v0) +/* 057C3C 7F02310C C4840008 */ lwc1 $f4, 8($a0) +/* 057C40 7F023110 46002181 */ sub.s $f6, $f4, $f0 +/* 057C44 7F023114 C44400AC */ lwc1 $f4, 0xac($v0) +/* 057C48 7F023118 E446012C */ swc1 $f6, 0x12c($v0) +/* 057C4C 7F02311C C4880010 */ lwc1 $f8, 0x10($a0) +/* 057C50 7F023120 E4480130 */ swc1 $f8, 0x130($v0) +/* 057C54 7F023124 C48A0008 */ lwc1 $f10, 8($a0) +/* 057C58 7F023128 E44A0134 */ swc1 $f10, 0x134($v0) +/* 057C5C 7F02312C C4900010 */ lwc1 $f16, 0x10($a0) +/* 057C60 7F023130 8FA30010 */ lw $v1, 0x10($sp) +/* 057C64 7F023134 46008481 */ sub.s $f18, $f16, $f0 +/* 057C68 7F023138 E4520138 */ swc1 $f18, 0x138($v0) +/* 057C6C 7F02313C E4640000 */ swc1 $f4, ($v1) +/* 057C70 7F023140 C4480028 */ lwc1 $f8, 0x28($v0) +/* 057C74 7F023144 C4660000 */ lwc1 $f6, ($v1) +/* 057C78 7F023148 46083280 */ add.s $f10, $f6, $f8 +/* 057C7C 7F02314C 03E00008 */ jr $ra +/* 057C80 7F023150 E4EA0000 */ swc1 $f10, ($a3) + +/* 057C84 7F023154 ACC00000 */ sw $zero, ($a2) +.L7F023158: +/* 057C88 7F023158 03E00008 */ jr $ra +/* 057C8C 7F02315C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023160(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023160 +/* 057C90 7F023160 8C820004 */ lw $v0, 4($a0) +/* 057C94 7F023164 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 057C98 7F023168 44810000 */ mtc1 $at, $f0 +/* 057C9C 7F02316C C4440024 */ lwc1 $f4, 0x24($v0) +/* 057CA0 7F023170 E4A40000 */ swc1 $f4, ($a1) +/* 057CA4 7F023174 C4460028 */ lwc1 $f6, 0x28($v0) +/* 057CA8 7F023178 46003201 */ sub.s $f8, $f6, $f0 +/* 057CAC 7F02317C E4C80000 */ swc1 $f8, ($a2) +/* 057CB0 7F023180 03E00008 */ jr $ra +/* 057CB4 7F023184 E4E00000 */ swc1 $f0, ($a3) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023188(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023188 +/* 057CB8 7F023188 8C820004 */ lw $v0, 4($a0) +/* 057CBC 7F02318C 03E00008 */ jr $ra +/* 057CC0 7F023190 C44000AC */ lwc1 $f0, 0xac($v0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023194(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023194 +/* 057CC4 7F023194 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 057CC8 7F023198 AFBF001C */ sw $ra, 0x1c($sp) +/* 057CCC 7F02319C AFA50024 */ sw $a1, 0x24($sp) +/* 057CD0 7F0231A0 AFA7002C */ sw $a3, 0x2c($sp) +/* 057CD4 7F0231A4 908E0001 */ lbu $t6, 1($a0) +/* 057CD8 7F0231A8 8C830004 */ lw $v1, 4($a0) +/* 057CDC 7F0231AC 31CF0002 */ andi $t7, $t6, 2 +/* 057CE0 7F0231B0 51E00033 */ beql $t7, $zero, .L7F023280 +/* 057CE4 7F0231B4 00001025 */ move $v0, $zero +/* 057CE8 7F0231B8 80620007 */ lb $v0, 7($v1) +/* 057CEC 7F0231BC 24010004 */ li $at, 4 +/* 057CF0 7F0231C0 1041002E */ beq $v0, $at, .L7F02327C +/* 057CF4 7F0231C4 24010005 */ li $at, 5 +/* 057CF8 7F0231C8 5041002D */ beql $v0, $at, .L7F023280 +/* 057CFC 7F0231CC 00001025 */ move $v0, $zero +/* 057D00 7F0231D0 8C780014 */ lw $t8, 0x14($v1) +/* 057D04 7F0231D4 33190800 */ andi $t9, $t8, 0x800 +/* 057D08 7F0231D8 57200029 */ bnezl $t9, .L7F023280 +/* 057D0C 7F0231DC 00001025 */ move $v0, $zero +/* 057D10 7F0231E0 8C64001C */ lw $a0, 0x1c($v1) +/* 057D14 7F0231E4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 057D18 7F0231E8 44817000 */ mtc1 $at, $f14 +/* 057D1C 7F0231EC 8C82000C */ lw $v0, 0xc($a0) +/* 057D20 7F0231F0 44806000 */ mtc1 $zero, $f12 +/* 057D24 7F0231F4 24480040 */ addiu $t0, $v0, 0x40 +/* 057D28 7F0231F8 C5000038 */ lwc1 $f0, 0x38($t0) +/* 057D2C 7F0231FC C4440038 */ lwc1 $f4, 0x38($v0) +/* 057D30 7F023200 46002181 */ sub.s $f6, $f4, $f0 +/* 057D34 7F023204 460E3202 */ mul.s $f8, $f6, $f14 +/* 057D38 7F023208 46004280 */ add.s $f10, $f8, $f0 +/* 057D3C 7F02320C 460C503C */ c.lt.s $f10, $f12 +/* 057D40 7F023210 E4AA0008 */ swc1 $f10, 8($a1) +/* 057D44 7F023214 4502001A */ bc1fl .L7F023280 +/* 057D48 7F023218 00001025 */ move $v0, $zero +/* 057D4C 7F02321C C5000030 */ lwc1 $f0, 0x30($t0) +/* 057D50 7F023220 C4500030 */ lwc1 $f16, 0x30($v0) +/* 057D54 7F023224 46008481 */ sub.s $f18, $f16, $f0 +/* 057D58 7F023228 460E9102 */ mul.s $f4, $f18, $f14 +/* 057D5C 7F02322C 46002180 */ add.s $f6, $f4, $f0 +/* 057D60 7F023230 E4A60000 */ swc1 $f6, ($a1) +/* 057D64 7F023234 C4480034 */ lwc1 $f8, 0x34($v0) +/* 057D68 7F023238 C5020034 */ lwc1 $f2, 0x34($t0) +/* 057D6C 7F02323C 46024281 */ sub.s $f10, $f8, $f2 +/* 057D70 7F023240 460E5402 */ mul.s $f16, $f10, $f14 +/* 057D74 7F023244 46028480 */ add.s $f18, $f16, $f2 +/* 057D78 7F023248 E4B20004 */ swc1 $f18, 4($a1) +/* 057D7C 7F02324C 8FAB002C */ lw $t3, 0x2c($sp) +/* 057D80 7F023250 24C50004 */ addiu $a1, $a2, 4 +/* 057D84 7F023254 E56C0004 */ swc1 $f12, 4($t3) +/* 057D88 7F023258 E56C0000 */ swc1 $f12, ($t3) +/* 057D8C 7F02325C E4CC0000 */ swc1 $f12, ($a2) +/* 057D90 7F023260 E4CC0004 */ swc1 $f12, 4($a2) +/* 057D94 7F023264 8FAC002C */ lw $t4, 0x2c($sp) +/* 057D98 7F023268 25870004 */ addiu $a3, $t4, 4 +/* 057D9C 7F02326C 0FC0FE43 */ jal sub_GAME_7F03F90C +/* 057DA0 7F023270 AFAC0010 */ sw $t4, 0x10($sp) +/* 057DA4 7F023274 10000002 */ b .L7F023280 +/* 057DA8 7F023278 24020001 */ li $v0, 1 +.L7F02327C: +/* 057DAC 7F02327C 00001025 */ move $v0, $zero +.L7F023280: +/* 057DB0 7F023280 8FBF001C */ lw $ra, 0x1c($sp) +/* 057DB4 7F023284 27BD0020 */ addiu $sp, $sp, 0x20 +/* 057DB8 7F023288 03E00008 */ jr $ra +/* 057DBC 7F02328C 00000000 */ nop +) +#endif + +//filesplit diff --git a/src/game/chr.h b/src/game/chr.h new file mode 100644 index 0000000..e82007a --- /dev/null +++ b/src/game/chr.h @@ -0,0 +1,190 @@ +#ifndef _CHR_H_ +#define _CHR_H_ +#include "ultra64.h" +#include "bondgame.h" + +struct animation_something +{ + s32 anonymous_0; + s32 field_4; + s32 field_8; + f32 field_C; + s32 field_10; + s32 field_14; + f32 field_18; + struct struck_animation_table *field_1C; + s32 field_20; + struct struck_animation_table *field_24; + s32 field_28; +}; + +struct struck_animation_table +{ + void *anonymous_0; + s32 anonymous_1; + f32 anonymous_2; + f32 anonymous_3; + s32 anonymous_4; + f32 sfx1_timer_60; + f32 sfx2_timer_60; +}; + +struct explosion_death_animation +{ + s32 anonymous_0; + s32 anonymous_1; + f32 anonymous_2; + f32 anonymous_3; + f32 anonymous_4; + f32 anonymous_5; + f32 anonymous_6; +}; + +struct explosion_animation +{ + void *explosion_death_animation; + s32 count; +}; + +struct weapon_firing_animation_table +{ + s32 anonymous_0; + f32 anonymous_1; + f32 anonymous_2; + f32 anonymous_3; + f32 anonymous_4; + f32 anonymous_5; + f32 anonymous_6; + f32 anonymous_7; + f32 anonymous_8; + f32 anonymous_9; + f32 anonymous_10; + f32 anonymous_11; + f32 anonymous_12; + f32 anonymous_13; + f32 anonymous_14; + f32 anonymous_15; + f32 anonymous_16; + f32 anonymous_17; +}; + + +extern struct animation_something D_8002C914; + + +extern struct struck_animation_table D_8002CE54[]; +extern struct struck_animation_table D_8002DF10[]; +extern struct struck_animation_table D_8002CEE0[]; +extern struct struck_animation_table D_8002DF64[]; +extern struct struck_animation_table D_8002CF6C[]; +extern struct struck_animation_table D_8002DFB8[]; +extern struct struck_animation_table D_8002D014[]; +extern struct struck_animation_table D_8002E028[]; +extern struct struck_animation_table D_8002D0A0[]; +extern struct struck_animation_table D_8002E07C[]; +extern struct struck_animation_table D_8002D12C[]; +extern struct struck_animation_table D_8002E0D0[]; +extern struct struck_animation_table D_8002D1D4[]; +extern struct struck_animation_table D_8002E140[]; +extern struct struck_animation_table D_8002D3B0[]; +extern struct struck_animation_table D_8002E23C[]; +extern struct struck_animation_table D_8002D6DC[]; +extern struct struck_animation_table D_8002E300[]; +extern struct struck_animation_table D_8002D768[]; +extern struct struck_animation_table D_8002E354[]; +extern struct struck_animation_table D_8002D7F4[]; +extern struct struck_animation_table D_8002E3A8[]; +extern struct struck_animation_table D_8002D880[]; +extern struct struck_animation_table D_8002E418[]; +extern struct struck_animation_table D_8002D90C[]; +extern struct struck_animation_table D_8002E46C[]; +extern struct struck_animation_table D_8002D998[]; +extern struct struck_animation_table D_8002E4C0[]; +extern struct struck_animation_table D_8002DA24[]; +extern struct struck_animation_table D_8002E530[]; +extern struct struck_animation_table D_8002DCE0[]; +extern struct struck_animation_table D_8002E5BC[]; + +extern struct weapon_firing_animation_table rifle_firing_animation_group1[]; +extern struct weapon_firing_animation_table rifle_firing_animation_group2[]; +extern struct weapon_firing_animation_table rifle_firing_animation_group5[]; +extern struct weapon_firing_animation_table rifle_firing_animation_group3[]; +extern struct weapon_firing_animation_table rifle_firing_animation_group4[]; +extern struct weapon_firing_animation_table pistol_firing_animation_group1[]; +extern struct weapon_firing_animation_table pistol_firing_animation_group2[]; +extern struct weapon_firing_animation_table pistol_firing_animation_group3[]; +extern struct weapon_firing_animation_table pistol_firing_animation_group6[]; +extern struct weapon_firing_animation_table pistol_firing_animation_group4[]; +extern struct weapon_firing_animation_table pistol_firing_animation_group5[]; +extern struct weapon_firing_animation_table doubles_firing_animation_group1[]; +extern struct weapon_firing_animation_table doubles_firing_animation_group2[]; +extern struct weapon_firing_animation_table doubles_firing_animation_group3[]; +extern struct weapon_firing_animation_table crouched_rifle_firing_animation_group1[]; +extern struct weapon_firing_animation_table crouched_rifle_firing_animation_groupA[]; +extern struct weapon_firing_animation_table crouched_rifle_firing_animation_group2[]; +extern struct weapon_firing_animation_table crouched_rifle_firing_animation_group3[]; +extern struct weapon_firing_animation_table crouched_pistol_firing_animation_group1[]; +extern struct weapon_firing_animation_table crouched_pistol_firing_animation_group2[]; +extern struct weapon_firing_animation_table crouched_pistol_firing_animation_group3[]; +extern struct weapon_firing_animation_table crouched_doubles_firing_animation_group1[]; +extern struct weapon_firing_animation_table crouched_doubles_firing_animation_group2[]; +extern struct weapon_firing_animation_table crouched_doubles_firing_animation_group3[]; + + +extern struct weapon_firing_animation_table D_80030078; +extern struct weapon_firing_animation_table D_800300C0; +extern struct weapon_firing_animation_table D_80030108; +extern struct weapon_firing_animation_table D_80030150; +extern struct weapon_firing_animation_table D_80030198; +extern struct weapon_firing_animation_table D_800301E0; +extern struct weapon_firing_animation_table D_80030228; +extern struct weapon_firing_animation_table D_80030270; +extern struct weapon_firing_animation_table D_800302B8; +extern struct weapon_firing_animation_table D_80030300; +extern struct weapon_firing_animation_table D_80030348; +extern struct weapon_firing_animation_table D_80030390; +extern struct weapon_firing_animation_table D_800303D8; +extern struct weapon_firing_animation_table D_80030420; +extern struct weapon_firing_animation_table D_80030468; +extern struct weapon_firing_animation_table D_800304B0; +extern struct weapon_firing_animation_table D_800304F8; +extern struct weapon_firing_animation_table D_80030540; +extern struct weapon_firing_animation_table D_80030588; +extern struct weapon_firing_animation_table D_800305D0; +extern struct weapon_firing_animation_table D_80030618; +extern struct weapon_firing_animation_table D_80030660; +extern struct weapon_firing_animation_table D_800306A8; +extern struct weapon_firing_animation_table D_800306F0; +extern struct weapon_firing_animation_table D_80030738; +extern struct weapon_firing_animation_table D_80030780; +extern struct weapon_firing_animation_table D_800307C8; +extern struct weapon_firing_animation_table D_80030810; +extern struct weapon_firing_animation_table D_80030858; +extern struct weapon_firing_animation_table D_800308A0; +extern struct weapon_firing_animation_table D_800308E8; +extern struct weapon_firing_animation_table D_80030930; + +extern f32 animation_rate; +extern s32 D_8002C904; +extern s32 D_8002C908; +extern s32 D_8002C90C; +extern s32 D_8002C910; + +extern s32 D_8002CC58; +extern s32 show_patrols_flag; +extern s32 player1_guardID; +extern s32 ptr_guard_data; +extern s32 num_guards; +extern s32 D_8002CC6C[]; +extern s32 D_8002CCA8; +extern s32 D_8002CCAC; +extern s32 D_8002CCB0; +extern s32 D_8002CCB4; +extern u8 D_8002CCB8; +extern s32 num_bodies; +extern s32 num_male_heads; +extern s32 num_female_heads; +extern s32 list_of_bodies[]; +extern s32 random_male_heads[]; +extern s32 random_female_heads[]; +#endif diff --git a/src/game/chr2.c b/src/game/chr2.c new file mode 100644 index 0000000..40a8f7e --- /dev/null +++ b/src/game/chr2.c @@ -0,0 +1,23191 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "game/chr.h" +#include "game/bondwalk.h" + +#ifdef NONMATCHING +void load_body_head_if_not_loaded(void) { + +} +#else +GLOBAL_ASM( +.text +glabel load_body_head_if_not_loaded +/* 057DC0 7F023290 00047080 */ sll $t6, $a0, 2 +/* 057DC4 7F023294 01C47021 */ addu $t6, $t6, $a0 +/* 057DC8 7F023298 3C0F8004 */ lui $t7, %hi(c_item_entries) +/* 057DCC 7F02329C 25EFDE10 */ addiu $t7, %lo(c_item_entries) # addiu $t7, $t7, -0x21f0 +/* 057DD0 7F0232A0 000E7080 */ sll $t6, $t6, 2 +/* 057DD4 7F0232A4 01CF1021 */ addu $v0, $t6, $t7 +/* 057DD8 7F0232A8 8C460000 */ lw $a2, ($v0) +/* 057DDC 7F0232AC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 057DE0 7F0232B0 AFBF0014 */ sw $ra, 0x14($sp) +/* 057DE4 7F0232B4 8CD80000 */ lw $t8, ($a2) +/* 057DE8 7F0232B8 00C02025 */ move $a0, $a2 +/* 057DEC 7F0232BC 57000006 */ bnezl $t8, .L7F0232D8 +/* 057DF0 7F0232C0 00001025 */ move $v0, $zero +/* 057DF4 7F0232C4 0FC1D953 */ jal load_object_into_memory +/* 057DF8 7F0232C8 8C450004 */ lw $a1, 4($v0) +/* 057DFC 7F0232CC 10000002 */ b .L7F0232D8 +/* 057E00 7F0232D0 24020001 */ li $v0, 1 +/* 057E04 7F0232D4 00001025 */ move $v0, $zero +.L7F0232D8: +/* 057E08 7F0232D8 8FBF0014 */ lw $ra, 0x14($sp) +/* 057E0C 7F0232DC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 057E10 7F0232E0 03E00008 */ jr $ra +/* 057E14 7F0232E4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void maybe_load_models_for_guards(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80051D90 +.word 0x3dccccce /*0.10000001*/ +glabel D_80051D94 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80051D98 +.word 0x0 +glabel D_80051D9C +.word 0x0 +.text +glabel maybe_load_models_for_guards +/* 057E18 7F0232E8 00047880 */ sll $t7, $a0, 2 +/* 057E1C 7F0232EC 01E47821 */ addu $t7, $t7, $a0 +/* 057E20 7F0232F0 3C188004 */ lui $t8, %hi(c_item_entries) +/* 057E24 7F0232F4 2718DE10 */ addiu $t8, %lo(c_item_entries) # addiu $t8, $t8, -0x21f0 +/* 057E28 7F0232F8 000F7880 */ sll $t7, $t7, 2 +/* 057E2C 7F0232FC 01F81021 */ addu $v0, $t7, $t8 +/* 057E30 7F023300 3C018005 */ lui $at, %hi(D_80051D90) +/* 057E34 7F023304 C4261D90 */ lwc1 $f6, %lo(D_80051D90)($at) +/* 057E38 7F023308 C4440008 */ lwc1 $f4, 8($v0) +/* 057E3C 7F02330C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 057E40 7F023310 C44A000C */ lwc1 $f10, 0xc($v0) +/* 057E44 7F023314 46062202 */ mul.s $f8, $f4, $f6 +/* 057E48 7F023318 AFBF001C */ sw $ra, 0x1c($sp) +/* 057E4C 7F02331C AFB10018 */ sw $s1, 0x18($sp) +/* 057E50 7F023320 AFB00014 */ sw $s0, 0x14($sp) +/* 057E54 7F023324 AFA40038 */ sw $a0, 0x38($sp) +/* 057E58 7F023328 00C08025 */ move $s0, $a2 +/* 057E5C 7F02332C 00E08825 */ move $s1, $a3 +/* 057E60 7F023330 AFA5003C */ sw $a1, 0x3c($sp) +/* 057E64 7F023334 E7A80034 */ swc1 $f8, 0x34($sp) +/* 057E68 7F023338 AFA0002C */ sw $zero, 0x2c($sp) +/* 057E6C 7F02333C 2404000C */ li $a0, 12 +/* 057E70 7F023340 AFA20024 */ sw $v0, 0x24($sp) +/* 057E74 7F023344 0FC249EF */ jal cheatCheckIfOn +/* 057E78 7F023348 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 057E7C 7F02334C 10400005 */ beqz $v0, .L7F023364 +/* 057E80 7F023350 C7B00034 */ lwc1 $f16, 0x34($sp) +/* 057E84 7F023354 3C018005 */ lui $at, %hi(D_80051D94) +/* 057E88 7F023358 C4321D94 */ lwc1 $f18, %lo(D_80051D94)($at) +/* 057E8C 7F02335C 46128102 */ mul.s $f4, $f16, $f18 +/* 057E90 7F023360 E7A40034 */ swc1 $f4, 0x34($sp) +.L7F023364: +/* 057E94 7F023364 8E190000 */ lw $t9, ($s0) +/* 057E98 7F023368 8FA80024 */ lw $t0, 0x24($sp) +/* 057E9C 7F02336C 17200003 */ bnez $t9, .L7F02337C +/* 057EA0 7F023370 02002025 */ move $a0, $s0 +/* 057EA4 7F023374 0FC1D953 */ jal load_object_into_memory +/* 057EA8 7F023378 8D050004 */ lw $a1, 4($t0) +.L7F02337C: +/* 057EAC 7F02337C 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 057EB0 7F023380 02002025 */ move $a0, $s0 +/* 057EB4 7F023384 8FA90024 */ lw $t1, 0x24($sp) +/* 057EB8 7F023388 8FA2003C */ lw $v0, 0x3c($sp) +/* 057EBC 7F02338C 912A0011 */ lbu $t2, 0x11($t1) +/* 057EC0 7F023390 55400018 */ bnezl $t2, .L7F0233F4 +/* 057EC4 7F023394 8FA9004C */ lw $t1, 0x4c($sp) +/* 057EC8 7F023398 04420016 */ bltzl $v0, .L7F0233F4 +/* 057ECC 7F02339C 8FA9004C */ lw $t1, 0x4c($sp) +/* 057ED0 7F0233A0 8E0B0008 */ lw $t3, 8($s0) +/* 057ED4 7F0233A4 8D6C0010 */ lw $t4, 0x10($t3) +/* 057ED8 7F0233A8 11800011 */ beqz $t4, .L7F0233F0 +/* 057EDC 7F0233AC AFAC002C */ sw $t4, 0x2c($sp) +/* 057EE0 7F0233B0 8E2E0000 */ lw $t6, ($s1) +/* 057EE4 7F0233B4 00027880 */ sll $t7, $v0, 2 +/* 057EE8 7F0233B8 01E27821 */ addu $t7, $t7, $v0 +/* 057EEC 7F0233BC 15C00006 */ bnez $t6, .L7F0233D8 +/* 057EF0 7F0233C0 02202025 */ move $a0, $s1 +/* 057EF4 7F0233C4 000F7880 */ sll $t7, $t7, 2 +/* 057EF8 7F0233C8 3C058004 */ lui $a1, %hi(c_item_entries+4) +/* 057EFC 7F0233CC 00AF2821 */ addu $a1, $a1, $t7 +/* 057F00 7F0233D0 0FC1D953 */ jal load_object_into_memory +/* 057F04 7F0233D4 8CA5DE14 */ lw $a1, %lo(c_item_entries+4)($a1) +.L7F0233D8: +/* 057F08 7F0233D8 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 057F0C 7F0233DC 02202025 */ move $a0, $s1 +/* 057F10 7F0233E0 86180014 */ lh $t8, 0x14($s0) +/* 057F14 7F0233E4 86390014 */ lh $t9, 0x14($s1) +/* 057F18 7F0233E8 03194021 */ addu $t0, $t8, $t9 +/* 057F1C 7F0233EC A6080014 */ sh $t0, 0x14($s0) +.L7F0233F0: +/* 057F20 7F0233F0 8FA9004C */ lw $t1, 0x4c($sp) +.L7F0233F4: +/* 057F24 7F0233F4 55200005 */ bnezl $t1, .L7F02340C +/* 057F28 7F0233F8 8FAA004C */ lw $t2, 0x4c($sp) +/* 057F2C 7F0233FC 0FC1B08F */ jal get_aircraft_obj_instance_controller +/* 057F30 7F023400 02002025 */ move $a0, $s0 +/* 057F34 7F023404 AFA2004C */ sw $v0, 0x4c($sp) +/* 057F38 7F023408 8FAA004C */ lw $t2, 0x4c($sp) +.L7F02340C: +/* 057F3C 7F02340C 11400020 */ beqz $t2, .L7F023490 +/* 057F40 7F023410 01402025 */ move $a0, $t2 +/* 057F44 7F023414 0FC1B39E */ jal set_obj_instance_controller_scale +/* 057F48 7F023418 8FA50034 */ lw $a1, 0x34($sp) +/* 057F4C 7F02341C 8FA4004C */ lw $a0, 0x4c($sp) +/* 057F50 7F023420 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 057F54 7F023424 8FA50030 */ lw $a1, 0x30($sp) +/* 057F58 7F023428 12200019 */ beqz $s1, .L7F023490 +/* 057F5C 7F02342C 8FAB0024 */ lw $t3, 0x24($sp) +/* 057F60 7F023430 916C0011 */ lbu $t4, 0x11($t3) +/* 057F64 7F023434 55800017 */ bnezl $t4, .L7F023494 +/* 057F68 7F023438 8FBF001C */ lw $ra, 0x1c($sp) +/* 057F6C 7F02343C 860D0014 */ lh $t5, 0x14($s0) +/* 057F70 7F023440 862E0014 */ lh $t6, 0x14($s1) +/* 057F74 7F023444 02203025 */ move $a2, $s1 +/* 057F78 7F023448 01AE7823 */ subu $t7, $t5, $t6 +/* 057F7C 7F02344C A60F0014 */ sh $t7, 0x14($s0) +/* 057F80 7F023450 8FA5002C */ lw $a1, 0x2c($sp) +/* 057F84 7F023454 0FC1B0ED */ jal sub_GAME_7F06C3B4 +/* 057F88 7F023458 8FA4004C */ lw $a0, 0x4c($sp) +/* 057F8C 7F02345C 8FB80048 */ lw $t8, 0x48($sp) +/* 057F90 7F023460 5700000C */ bnezl $t8, .L7F023494 +/* 057F94 7F023464 8FBF001C */ lw $ra, 0x1c($sp) +/* 057F98 7F023468 8639000C */ lh $t9, 0xc($s1) +/* 057F9C 7F02346C 5B200009 */ blezl $t9, .L7F023494 +/* 057FA0 7F023470 8FBF001C */ lw $ra, 0x1c($sp) +/* 057FA4 7F023474 8E280008 */ lw $t0, 8($s1) +/* 057FA8 7F023478 8D050000 */ lw $a1, ($t0) +/* 057FAC 7F02347C 50A00005 */ beql $a1, $zero, .L7F023494 +/* 057FB0 7F023480 8FBF001C */ lw $ra, 0x1c($sp) +/* 057FB4 7F023484 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 057FB8 7F023488 8FA4004C */ lw $a0, 0x4c($sp) +/* 057FBC 7F02348C AC400000 */ sw $zero, ($v0) +.L7F023490: +/* 057FC0 7F023490 8FBF001C */ lw $ra, 0x1c($sp) +.L7F023494: +/* 057FC4 7F023494 8FA2004C */ lw $v0, 0x4c($sp) +/* 057FC8 7F023498 8FB00014 */ lw $s0, 0x14($sp) +/* 057FCC 7F02349C 8FB10018 */ lw $s1, 0x18($sp) +/* 057FD0 7F0234A0 03E00008 */ jr $ra +/* 057FD4 7F0234A4 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80051D90 +.word 0x3dccccce /*0.10000001*/ +glabel D_80051D94 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80051D98 +.word 0x0 +glabel D_80051D9C +.word 0x0 +.text +glabel maybe_load_models_for_guards +/* 058148 7F0235D8 00047880 */ sll $t7, $a0, 2 +/* 05814C 7F0235DC 01E47821 */ addu $t7, $t7, $a0 +/* 058150 7F0235E0 3C188004 */ lui $t8, %hi(c_item_entries) # $t8, 0x8004 +/* 058154 7F0235E4 2718DE40 */ addiu $t8, %lo(c_item_entries) # addiu $t8, $t8, -0x21c0 +/* 058158 7F0235E8 000F7880 */ sll $t7, $t7, 2 +/* 05815C 7F0235EC 01F81021 */ addu $v0, $t7, $t8 +/* 058160 7F0235F0 3C018005 */ lui $at, %hi(D_80051D90) # $at, 0x8005 +/* 058164 7F0235F4 C4261DC0 */ lwc1 $f6, %lo(D_80051D90)($at) +/* 058168 7F0235F8 C4440008 */ lwc1 $f4, 8($v0) +/* 05816C 7F0235FC 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 058170 7F023600 C44A000C */ lwc1 $f10, 0xc($v0) +/* 058174 7F023604 46062202 */ mul.s $f8, $f4, $f6 +/* 058178 7F023608 AFBF001C */ sw $ra, 0x1c($sp) +/* 05817C 7F02360C AFB10018 */ sw $s1, 0x18($sp) +/* 058180 7F023610 AFB00014 */ sw $s0, 0x14($sp) +/* 058184 7F023614 AFA40038 */ sw $a0, 0x38($sp) +/* 058188 7F023618 00C08025 */ move $s0, $a2 +/* 05818C 7F02361C 00E08825 */ move $s1, $a3 +/* 058190 7F023620 AFA5003C */ sw $a1, 0x3c($sp) +/* 058194 7F023624 E7A80034 */ swc1 $f8, 0x34($sp) +/* 058198 7F023628 AFA0002C */ sw $zero, 0x2c($sp) +/* 05819C 7F02362C 2404000C */ li $a0, 12 +/* 0581A0 7F023630 AFA20024 */ sw $v0, 0x24($sp) +/* 0581A4 7F023634 0FC24CCF */ jal cheatCheckIfOn +/* 0581A8 7F023638 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 0581AC 7F02363C 10400009 */ beqz $v0, .Ljp7F023664 +/* 0581B0 7F023640 8FA40038 */ lw $a0, 0x38($sp) +/* 0581B4 7F023644 0FC0827B */ jal jp_only_7F0209EC +/* 0581B8 7F023648 8FA5003C */ lw $a1, 0x3c($sp) +/* 0581BC 7F02364C 10400005 */ beqz $v0, .Ljp7F023664 +/* 0581C0 7F023650 C7B00034 */ lwc1 $f16, 0x34($sp) +/* 0581C4 7F023654 3C018005 */ lui $at, %hi(D_80051D94) # $at, 0x8005 +/* 0581C8 7F023658 C4321DC4 */ lwc1 $f18, %lo(D_80051D94)($at) +/* 0581CC 7F02365C 46128102 */ mul.s $f4, $f16, $f18 +/* 0581D0 7F023660 E7A40034 */ swc1 $f4, 0x34($sp) +.Ljp7F023664: +/* 0581D4 7F023664 8E190000 */ lw $t9, ($s0) +/* 0581D8 7F023668 8FA80024 */ lw $t0, 0x24($sp) +/* 0581DC 7F02366C 17200003 */ bnez $t9, .Ljp7F02367C +/* 0581E0 7F023670 02002025 */ move $a0, $s0 +/* 0581E4 7F023674 0FC1DACF */ jal load_object_into_memory +/* 0581E8 7F023678 8D050004 */ lw $a1, 4($t0) +.Ljp7F02367C: +/* 0581EC 7F02367C 0FC1D8B9 */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0581F0 7F023680 02002025 */ move $a0, $s0 +/* 0581F4 7F023684 8FA90024 */ lw $t1, 0x24($sp) +/* 0581F8 7F023688 8FAB003C */ lw $t3, 0x3c($sp) +/* 0581FC 7F02368C 912A0011 */ lbu $t2, 0x11($t1) +/* 058200 7F023690 55400018 */ bnezl $t2, .Ljp7F0236F4 +/* 058204 7F023694 8FAA004C */ lw $t2, 0x4c($sp) +/* 058208 7F023698 05620016 */ bltzl $t3, .Ljp7F0236F4 +/* 05820C 7F02369C 8FAA004C */ lw $t2, 0x4c($sp) +/* 058210 7F0236A0 8E0C0008 */ lw $t4, 8($s0) +/* 058214 7F0236A4 8D8D0010 */ lw $t5, 0x10($t4) +/* 058218 7F0236A8 11A00011 */ beqz $t5, .Ljp7F0236F0 +/* 05821C 7F0236AC AFAD002C */ sw $t5, 0x2c($sp) +/* 058220 7F0236B0 8E2F0000 */ lw $t7, ($s1) +/* 058224 7F0236B4 000BC080 */ sll $t8, $t3, 2 +/* 058228 7F0236B8 030BC021 */ addu $t8, $t8, $t3 +/* 05822C 7F0236BC 15E00006 */ bnez $t7, .Ljp7F0236D8 +/* 058230 7F0236C0 02202025 */ move $a0, $s1 +/* 058234 7F0236C4 0018C080 */ sll $t8, $t8, 2 +/* 058238 7F0236C8 3C058004 */ lui $a1, %hi(c_item_entries+4) +/* 05823C 7F0236CC 00B82821 */ addu $a1, $a1, $t8 +/* 058240 7F0236D0 0FC1DACF */ jal load_object_into_memory +/* 058244 7F0236D4 8CA5DE44 */ lw $a1, %lo(c_item_entries+4)($a1) +.Ljp7F0236D8: +/* 058248 7F0236D8 0FC1D8B9 */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 05824C 7F0236DC 02202025 */ move $a0, $s1 +/* 058250 7F0236E0 86190014 */ lh $t9, 0x14($s0) +/* 058254 7F0236E4 86280014 */ lh $t0, 0x14($s1) +/* 058258 7F0236E8 03284821 */ addu $t1, $t9, $t0 +/* 05825C 7F0236EC A6090014 */ sh $t1, 0x14($s0) +.Ljp7F0236F0: +/* 058260 7F0236F0 8FAA004C */ lw $t2, 0x4c($sp) +.Ljp7F0236F4: +/* 058264 7F0236F4 55400005 */ bnezl $t2, .Ljp7F02370C +/* 058268 7F0236F8 8FAC004C */ lw $t4, 0x4c($sp) +/* 05826C 7F0236FC 0FC1B20B */ jal get_aircraft_obj_instance_controller +/* 058270 7F023700 02002025 */ move $a0, $s0 +/* 058274 7F023704 AFA2004C */ sw $v0, 0x4c($sp) +/* 058278 7F023708 8FAC004C */ lw $t4, 0x4c($sp) +.Ljp7F02370C: +/* 05827C 7F02370C 11800020 */ beqz $t4, .Ljp7F023790 +/* 058280 7F023710 01802025 */ move $a0, $t4 +/* 058284 7F023714 0FC1B51A */ jal set_obj_instance_controller_scale +/* 058288 7F023718 8FA50034 */ lw $a1, 0x34($sp) +/* 05828C 7F02371C 8FA4004C */ lw $a0, 0x4c($sp) +/* 058290 7F023720 0FC1B51D */ jal sub_GAME_7F06CE84 +/* 058294 7F023724 8FA50030 */ lw $a1, 0x30($sp) +/* 058298 7F023728 12200019 */ beqz $s1, .Ljp7F023790 +/* 05829C 7F02372C 8FAD0024 */ lw $t5, 0x24($sp) +/* 0582A0 7F023730 91AE0011 */ lbu $t6, 0x11($t5) +/* 0582A4 7F023734 55C00017 */ bnezl $t6, .Ljp7F023794 +/* 0582A8 7F023738 8FBF001C */ lw $ra, 0x1c($sp) +/* 0582AC 7F02373C 860F0014 */ lh $t7, 0x14($s0) +/* 0582B0 7F023740 862B0014 */ lh $t3, 0x14($s1) +/* 0582B4 7F023744 02203025 */ move $a2, $s1 +/* 0582B8 7F023748 01EBC023 */ subu $t8, $t7, $t3 +/* 0582BC 7F02374C A6180014 */ sh $t8, 0x14($s0) +/* 0582C0 7F023750 8FA5002C */ lw $a1, 0x2c($sp) +/* 0582C4 7F023754 0FC1B269 */ jal sub_GAME_7F06C3B4 +/* 0582C8 7F023758 8FA4004C */ lw $a0, 0x4c($sp) +/* 0582CC 7F02375C 8FB90048 */ lw $t9, 0x48($sp) +/* 0582D0 7F023760 5720000C */ bnezl $t9, .Ljp7F023794 +/* 0582D4 7F023764 8FBF001C */ lw $ra, 0x1c($sp) +/* 0582D8 7F023768 8628000C */ lh $t0, 0xc($s1) +/* 0582DC 7F02376C 59000009 */ blezl $t0, .Ljp7F023794 +/* 0582E0 7F023770 8FBF001C */ lw $ra, 0x1c($sp) +/* 0582E4 7F023774 8E290008 */ lw $t1, 8($s1) +/* 0582E8 7F023778 8D250000 */ lw $a1, ($t1) +/* 0582EC 7F02377C 50A00005 */ beql $a1, $zero, .Ljp7F023794 +/* 0582F0 7F023780 8FBF001C */ lw $ra, 0x1c($sp) +/* 0582F4 7F023784 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 0582F8 7F023788 8FA4004C */ lw $a0, 0x4c($sp) +/* 0582FC 7F02378C AC400000 */ sw $zero, ($v0) +.Ljp7F023790: +/* 058300 7F023790 8FBF001C */ lw $ra, 0x1c($sp) +.Ljp7F023794: +/* 058304 7F023794 8FA2004C */ lw $v0, 0x4c($sp) +/* 058308 7F023798 8FB00014 */ lw $s0, 0x14($sp) +/* 05830C 7F02379C 8FB10018 */ lw $s1, 0x18($sp) +/* 058310 7F0237A0 03E00008 */ jr $ra +/* 058314 7F0237A4 27BD0038 */ addiu $sp, $sp, 0x38 + +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0234A8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0234A8 +/* 057FD8 7F0234A8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 057FDC 7F0234AC 8FAE0030 */ lw $t6, 0x30($sp) +/* 057FE0 7F0234B0 AFBF001C */ sw $ra, 0x1c($sp) +/* 057FE4 7F0234B4 AFA00014 */ sw $zero, 0x14($sp) +/* 057FE8 7F0234B8 0FC08CBA */ jal maybe_load_models_for_guards +/* 057FEC 7F0234BC AFAE0010 */ sw $t6, 0x10($sp) +/* 057FF0 7F0234C0 8FBF001C */ lw $ra, 0x1c($sp) +/* 057FF4 7F0234C4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 057FF8 7F0234C8 03E00008 */ jr $ra +/* 057FFC 7F0234CC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void retrieve_header_for_body_and_head(void) { + +} +#else +GLOBAL_ASM( +.text +glabel retrieve_header_for_body_and_head +/* 058000 7F0234D0 00047080 */ sll $t6, $a0, 2 +/* 058004 7F0234D4 01C47021 */ addu $t6, $t6, $a0 +/* 058008 7F0234D8 3C0F8004 */ lui $t7, %hi(c_item_entries) +/* 05800C 7F0234DC 25EFDE10 */ addiu $t7, %lo(c_item_entries) # addiu $t7, $t7, -0x21f0 +/* 058010 7F0234E0 000E7080 */ sll $t6, $t6, 2 +/* 058014 7F0234E4 01CF3821 */ addu $a3, $t6, $t7 +/* 058018 7F0234E8 8CF80000 */ lw $t8, ($a3) +/* 05801C 7F0234EC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 058020 7F0234F0 30D90001 */ andi $t9, $a2, 1 +/* 058024 7F0234F4 AFBF001C */ sw $ra, 0x1c($sp) +/* 058028 7F0234F8 AFA00028 */ sw $zero, 0x28($sp) +/* 05802C 7F0234FC 00001825 */ move $v1, $zero +/* 058030 7F023500 13200003 */ beqz $t9, .L7F023510 +/* 058034 7F023504 AFB8002C */ sw $t8, 0x2c($sp) +/* 058038 7F023508 1000000E */ b .L7F023544 +/* 05803C 7F02350C 24030001 */ li $v1, 1 +.L7F023510: +/* 058040 7F023510 30C80002 */ andi $t0, $a2, 2 +/* 058044 7F023514 1100000B */ beqz $t0, .L7F023544 +/* 058048 7F023518 00000000 */ nop +/* 05804C 7F02351C AFA40030 */ sw $a0, 0x30($sp) +/* 058050 7F023520 AFA50034 */ sw $a1, 0x34($sp) +/* 058054 7F023524 0C002914 */ jal get_random_value +/* 058058 7F023528 AFA70020 */ sw $a3, 0x20($sp) +/* 05805C 7F02352C 30430001 */ andi $v1, $v0, 1 +/* 058060 7F023530 2C690001 */ sltiu $t1, $v1, 1 +/* 058064 7F023534 01201825 */ move $v1, $t1 +/* 058068 7F023538 8FA40030 */ lw $a0, 0x30($sp) +/* 05806C 7F02353C 8FA50034 */ lw $a1, 0x34($sp) +/* 058070 7F023540 8FA70020 */ lw $a3, 0x20($sp) +.L7F023544: +/* 058074 7F023544 04A2000B */ bltzl $a1, .L7F023574 +/* 058078 7F023548 8FA6002C */ lw $a2, 0x2c($sp) +/* 05807C 7F02354C 90EA0011 */ lbu $t2, 0x11($a3) +/* 058080 7F023550 00055880 */ sll $t3, $a1, 2 +/* 058084 7F023554 01655821 */ addu $t3, $t3, $a1 +/* 058088 7F023558 15400005 */ bnez $t2, .L7F023570 +/* 05808C 7F02355C 000B5880 */ sll $t3, $t3, 2 +/* 058090 7F023560 3C0C8004 */ lui $t4, %hi(c_item_entries) +/* 058094 7F023564 018B6021 */ addu $t4, $t4, $t3 +/* 058098 7F023568 8D8CDE10 */ lw $t4, %lo(c_item_entries)($t4) +/* 05809C 7F02356C AFAC0028 */ sw $t4, 0x28($sp) +.L7F023570: +/* 0580A0 7F023570 8FA6002C */ lw $a2, 0x2c($sp) +.L7F023574: +/* 0580A4 7F023574 8FA70028 */ lw $a3, 0x28($sp) +/* 0580A8 7F023578 0FC08D2A */ jal sub_GAME_7F0234A8 +/* 0580AC 7F02357C AFA30010 */ sw $v1, 0x10($sp) +/* 0580B0 7F023580 8FBF001C */ lw $ra, 0x1c($sp) +/* 0580B4 7F023584 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0580B8 7F023588 03E00008 */ jr $ra +/* 0580BC 7F02358C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_current_random_body(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_current_random_body +/* 0580C0 7F023590 3C0E8003 */ lui $t6, %hi(current_random_body) +/* 0580C4 7F023594 8DCECE34 */ lw $t6, %lo(current_random_body)($t6) +/* 0580C8 7F023598 3C028003 */ lui $v0, %hi(list_of_bodies) +/* 0580CC 7F02359C 000E7880 */ sll $t7, $t6, 2 +/* 0580D0 7F0235A0 004F1021 */ addu $v0, $v0, $t7 +/* 0580D4 7F0235A4 03E00008 */ jr $ra +/* 0580D8 7F0235A8 8C42CD0C */ lw $v0, %lo(list_of_bodies)($v0) +) +#endif + + + +#ifdef NONMATCHING +void select_psuedorandom_heads(void) { + +} +#else +GLOBAL_ASM( +.text +glabel select_psuedorandom_heads +/* 0580DC 7F0235AC 00047080 */ sll $t6, $a0, 2 +/* 0580E0 7F0235B0 01C47021 */ addu $t6, $t6, $a0 +/* 0580E4 7F0235B4 000E7080 */ sll $t6, $t6, 2 +/* 0580E8 7F0235B8 3C0F8004 */ lui $t7, %hi(c_item_entries+16) +/* 0580EC 7F0235BC 01EE7821 */ addu $t7, $t7, $t6 +/* 0580F0 7F0235C0 91EFDE20 */ lbu $t7, %lo(c_item_entries+16)($t7) +/* 0580F4 7F0235C4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0580F8 7F0235C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0580FC 7F0235CC 11E0001A */ beqz $t7, .L7F023638 +/* 058100 7F0235D0 3C0B8003 */ lui $t3, %hi(current_random_female_head) +/* 058104 7F0235D4 0C002914 */ jal get_random_value +/* 058108 7F0235D8 00000000 */ nop +/* 05810C 7F0235DC 3C188003 */ lui $t8, %hi(current_random_male_head) +/* 058110 7F0235E0 8F18CE38 */ lw $t8, %lo(current_random_male_head)($t8) +/* 058114 7F0235E4 30590003 */ andi $t9, $v0, 3 +/* 058118 7F0235E8 3C098003 */ lui $t1, %hi(num_male_heads) +/* 05811C 7F0235EC 8D29CD04 */ lw $t1, %lo(num_male_heads)($t1) +/* 058120 7F0235F0 03194021 */ addu $t0, $t8, $t9 +/* 058124 7F0235F4 0109001A */ div $zero, $t0, $t1 +/* 058128 7F0235F8 00001810 */ mfhi $v1 +/* 05812C 7F0235FC 00035080 */ sll $t2, $v1, 2 +/* 058130 7F023600 3C038003 */ lui $v1, %hi(random_male_heads) +/* 058134 7F023604 006A1821 */ addu $v1, $v1, $t2 +/* 058138 7F023608 15200002 */ bnez $t1, .L7F023614 +/* 05813C 7F02360C 00000000 */ nop +/* 058140 7F023610 0007000D */ break 7 +.L7F023614: +/* 058144 7F023614 2401FFFF */ li $at, -1 +/* 058148 7F023618 15210004 */ bne $t1, $at, .L7F02362C +/* 05814C 7F02361C 3C018000 */ lui $at, 0x8000 +/* 058150 7F023620 15010002 */ bne $t0, $at, .L7F02362C +/* 058154 7F023624 00000000 */ nop +/* 058158 7F023628 0006000D */ break 6 +.L7F02362C: +/* 05815C 7F02362C 8C63CDB8 */ lw $v1, %lo(random_male_heads)($v1) +/* 058160 7F023630 10000007 */ b .L7F023650 +/* 058164 7F023634 8FBF0014 */ lw $ra, 0x14($sp) +.L7F023638: +/* 058168 7F023638 8D6BCE3C */ lw $t3, %lo(current_random_female_head)($t3) +/* 05816C 7F02363C 3C038003 */ lui $v1, %hi(random_female_heads) +/* 058170 7F023640 000B6080 */ sll $t4, $t3, 2 +/* 058174 7F023644 006C1821 */ addu $v1, $v1, $t4 +/* 058178 7F023648 8C63CE20 */ lw $v1, %lo(random_female_heads)($v1) +/* 05817C 7F02364C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F023650: +/* 058180 7F023650 27BD0018 */ addiu $sp, $sp, 0x18 +/* 058184 7F023654 00601025 */ move $v0, $v1 +/* 058188 7F023658 03E00008 */ jr $ra +/* 05818C 7F02365C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_random_head(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_random_head +/* 058190 7F023660 00047080 */ sll $t6, $a0, 2 +/* 058194 7F023664 01C47021 */ addu $t6, $t6, $a0 +/* 058198 7F023668 000E7080 */ sll $t6, $t6, 2 +/* 05819C 7F02366C 3C0F8004 */ lui $t7, %hi(c_item_entries+16) +/* 0581A0 7F023670 01EE7821 */ addu $t7, $t7, $t6 +/* 0581A4 7F023674 91EFDE20 */ lbu $t7, %lo(c_item_entries+16)($t7) +/* 0581A8 7F023678 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0581AC 7F02367C AFBF0014 */ sw $ra, 0x14($sp) +/* 0581B0 7F023680 11E00010 */ beqz $t7, .L7F0236C4 +/* 0581B4 7F023684 00000000 */ nop +/* 0581B8 7F023688 0C002914 */ jal get_random_value +/* 0581BC 7F02368C 00000000 */ nop +/* 0581C0 7F023690 3C188003 */ lui $t8, %hi(num_male_heads) +/* 0581C4 7F023694 8F18CD04 */ lw $t8, %lo(num_male_heads)($t8) +/* 0581C8 7F023698 3C038003 */ lui $v1, %hi(random_male_heads) +/* 0581CC 7F02369C 0058001B */ divu $zero, $v0, $t8 +/* 0581D0 7F0236A0 0000C810 */ mfhi $t9 +/* 0581D4 7F0236A4 00194080 */ sll $t0, $t9, 2 +/* 0581D8 7F0236A8 00681821 */ addu $v1, $v1, $t0 +/* 0581DC 7F0236AC 17000002 */ bnez $t8, .L7F0236B8 +/* 0581E0 7F0236B0 00000000 */ nop +/* 0581E4 7F0236B4 0007000D */ break 7 +.L7F0236B8: +/* 0581E8 7F0236B8 8C63CDB8 */ lw $v1, %lo(random_male_heads)($v1) +/* 0581EC 7F0236BC 1000000F */ b .L7F0236FC +/* 0581F0 7F0236C0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0236C4: +/* 0581F4 7F0236C4 0C002914 */ jal get_random_value +/* 0581F8 7F0236C8 00000000 */ nop +/* 0581FC 7F0236CC 3C098003 */ lui $t1, %hi(num_female_heads) +/* 058200 7F0236D0 8D29CD08 */ lw $t1, %lo(num_female_heads)($t1) +/* 058204 7F0236D4 3C038003 */ lui $v1, %hi(random_female_heads) +/* 058208 7F0236D8 0049001B */ divu $zero, $v0, $t1 +/* 05820C 7F0236DC 00005010 */ mfhi $t2 +/* 058210 7F0236E0 000A5880 */ sll $t3, $t2, 2 +/* 058214 7F0236E4 006B1821 */ addu $v1, $v1, $t3 +/* 058218 7F0236E8 8C63CE20 */ lw $v1, %lo(random_female_heads)($v1) +/* 05821C 7F0236EC 15200002 */ bnez $t1, .L7F0236F8 +/* 058220 7F0236F0 00000000 */ nop +/* 058224 7F0236F4 0007000D */ break 7 +.L7F0236F8: +/* 058228 7F0236F8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0236FC: +/* 05822C 7F0236FC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 058230 7F023700 00601025 */ move $v0, $v1 +/* 058234 7F023704 03E00008 */ jr $ra +/* 058238 7F023708 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void expand_09_characters(void) { + +} +#else +GLOBAL_ASM( +.text +glabel expand_09_characters +/* 05823C 7F02370C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 058240 7F023710 AFBF0024 */ sw $ra, 0x24($sp) +/* 058244 7F023714 AFB00020 */ sw $s0, 0x20($sp) +/* 058248 7F023718 AFA40060 */ sw $a0, 0x60($sp) +/* 05824C 7F02371C AFA60068 */ sw $a2, 0x68($sp) +/* 058250 7F023720 94AE0006 */ lhu $t6, 6($a1) +/* 058254 7F023724 3C188007 */ lui $t8, %hi(ptr_0xxxpresets) +/* 058258 7F023728 8F185D18 */ lw $t8, %lo(ptr_0xxxpresets)($t8) +/* 05825C 7F02372C 000E7880 */ sll $t7, $t6, 2 +/* 058260 7F023730 01EE7823 */ subu $t7, $t7, $t6 +/* 058264 7F023734 000F7880 */ sll $t7, $t7, 2 +/* 058268 7F023738 01EE7823 */ subu $t7, $t7, $t6 +/* 05826C 7F02373C 000F7880 */ sll $t7, $t7, 2 +/* 058270 7F023740 00A08025 */ move $s0, $a1 +/* 058274 7F023744 01F82021 */ addu $a0, $t7, $t8 +/* 058278 7F023748 8C850028 */ lw $a1, 0x28($a0) +/* 05827C 7F02374C 27B90054 */ addiu $t9, $sp, 0x54 +/* 058280 7F023750 AFB90010 */ sw $t9, 0x10($sp) +/* 058284 7F023754 AFA4005C */ sw $a0, 0x5c($sp) +/* 058288 7F023758 3C0641A0 */ lui $a2, 0x41a0 +/* 05828C 7F02375C 0FC15A14 */ jal sub_GAME_7F056850 +/* 058290 7F023760 27A70048 */ addiu $a3, $sp, 0x48 +/* 058294 7F023764 10400065 */ beqz $v0, .L7F0238FC +/* 058298 7F023768 2408FFFF */ li $t0, -1 +/* 05829C 7F02376C AFA80030 */ sw $t0, 0x30($sp) +/* 0582A0 7F023770 96020008 */ lhu $v0, 8($s0) +/* 0582A4 7F023774 3401FFFF */ li $at, 65535 +/* 0582A8 7F023778 54410006 */ bnel $v0, $at, .L7F023794 +/* 0582AC 7F02377C AFA20034 */ sw $v0, 0x34($sp) +/* 0582B0 7F023780 0FC08D64 */ jal get_current_random_body +/* 0582B4 7F023784 00000000 */ nop +/* 0582B8 7F023788 10000002 */ b .L7F023794 +/* 0582BC 7F02378C AFA20034 */ sw $v0, 0x34($sp) +/* 0582C0 7F023790 AFA20034 */ sw $v0, 0x34($sp) +.L7F023794: +/* 0582C4 7F023794 8FA90034 */ lw $t1, 0x34($sp) +/* 0582C8 7F023798 3C0B8004 */ lui $t3, %hi(c_item_entries+17) +/* 0582CC 7F02379C 00095080 */ sll $t2, $t1, 2 +/* 0582D0 7F0237A0 01495021 */ addu $t2, $t2, $t1 +/* 0582D4 7F0237A4 000A5080 */ sll $t2, $t2, 2 +/* 0582D8 7F0237A8 016A5821 */ addu $t3, $t3, $t2 +/* 0582DC 7F0237AC 916BDE21 */ lbu $t3, %lo(c_item_entries+17)($t3) +/* 0582E0 7F0237B0 5560000A */ bnezl $t3, .L7F0237DC +/* 0582E4 7F0237B4 8FA40034 */ lw $a0, 0x34($sp) +/* 0582E8 7F0237B8 86020016 */ lh $v0, 0x16($s0) +/* 0582EC 7F0237BC 04400003 */ bltz $v0, .L7F0237CC +/* 0582F0 7F0237C0 00000000 */ nop +/* 0582F4 7F0237C4 10000004 */ b .L7F0237D8 +/* 0582F8 7F0237C8 AFA20030 */ sw $v0, 0x30($sp) +.L7F0237CC: +/* 0582FC 7F0237CC 0FC08D6B */ jal select_psuedorandom_heads +/* 058300 7F0237D0 8FA40034 */ lw $a0, 0x34($sp) +/* 058304 7F0237D4 AFA20030 */ sw $v0, 0x30($sp) +.L7F0237D8: +/* 058308 7F0237D8 8FA40034 */ lw $a0, 0x34($sp) +.L7F0237DC: +/* 05830C 7F0237DC 8FA50030 */ lw $a1, 0x30($sp) +/* 058310 7F0237E0 0FC08D34 */ jal retrieve_header_for_body_and_head +/* 058314 7F0237E4 96060014 */ lhu $a2, 0x14($s0) +/* 058318 7F0237E8 10400044 */ beqz $v0, .L7F0238FC +/* 05831C 7F0237EC AFA20038 */ sw $v0, 0x38($sp) +/* 058320 7F0237F0 8FA2005C */ lw $v0, 0x5c($sp) +/* 058324 7F0237F4 C44C0018 */ lwc1 $f12, 0x18($v0) +/* 058328 7F0237F8 0FC16A8C */ jal atan2f +/* 05832C 7F0237FC C44E0020 */ lwc1 $f14, 0x20($v0) +/* 058330 7F023800 E7A0003C */ swc1 $f0, 0x3c($sp) +/* 058334 7F023804 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 058338 7F023808 9604000A */ lhu $a0, 0xa($s0) +/* 05833C 7F02380C 8FA40038 */ lw $a0, 0x38($sp) +/* 058340 7F023810 27A50048 */ addiu $a1, $sp, 0x48 +/* 058344 7F023814 8FA6003C */ lw $a2, 0x3c($sp) +/* 058348 7F023818 8FA70054 */ lw $a3, 0x54($sp) +/* 05834C 7F02381C 0FC080EE */ jal replace_GUARDdata_with_actual_values +/* 058350 7F023820 AFA20010 */ sw $v0, 0x10($sp) +/* 058354 7F023824 10400035 */ beqz $v0, .L7F0238FC +/* 058358 7F023828 00402025 */ move $a0, $v0 +/* 05835C 7F02382C 0FC0E929 */ jal set_current_objposdata_plus_0x28 +/* 058360 7F023830 AFA20044 */ sw $v0, 0x44($sp) +/* 058364 7F023834 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 058368 7F023838 8FA40044 */ lw $a0, 0x44($sp) +/* 05836C 7F02383C 8FAC0044 */ lw $t4, 0x44($sp) +/* 058370 7F023840 960D0004 */ lhu $t5, 4($s0) +/* 058374 7F023844 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 058378 7F023848 8D820004 */ lw $v0, 4($t4) +/* 05837C 7F02384C A44D0000 */ sh $t5, ($v0) +/* 058380 7F023850 960E0010 */ lhu $t6, 0x10($s0) +/* 058384 7F023854 448E2000 */ mtc1 $t6, $f4 +/* 058388 7F023858 05C10004 */ bgez $t6, .L7F02386C +/* 05838C 7F02385C 468021A0 */ cvt.s.w $f6, $f4 +/* 058390 7F023860 44814000 */ mtc1 $at, $f8 +/* 058394 7F023864 00000000 */ nop +/* 058398 7F023868 46083180 */ add.s $f6, $f6, $f8 +.L7F02386C: +/* 05839C 7F02386C 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0583A0 7F023870 44815000 */ mtc1 $at, $f10 +/* 0583A4 7F023874 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0583A8 7F023878 460A3403 */ div.s $f16, $f6, $f10 +/* 0583AC 7F02387C E45000EC */ swc1 $f16, 0xec($v0) +/* 0583B0 7F023880 960F0012 */ lhu $t7, 0x12($s0) +/* 0583B4 7F023884 448F9000 */ mtc1 $t7, $f18 +/* 0583B8 7F023888 05E10004 */ bgez $t7, .L7F02389C +/* 0583BC 7F02388C 46809120 */ cvt.s.w $f4, $f18 +/* 0583C0 7F023890 44814000 */ mtc1 $at, $f8 +/* 0583C4 7F023894 00000000 */ nop +/* 0583C8 7F023898 46082100 */ add.s $f4, $f4, $f8 +.L7F02389C: +/* 0583CC 7F02389C E44400D0 */ swc1 $f4, 0xd0($v0) +/* 0583D0 7F0238A0 9618000C */ lhu $t8, 0xc($s0) +/* 0583D4 7F0238A4 A4580114 */ sh $t8, 0x114($v0) +/* 0583D8 7F0238A8 9619000E */ lhu $t9, 0xe($s0) +/* 0583DC 7F0238AC A4590116 */ sh $t9, 0x116($v0) +/* 0583E0 7F0238B0 8FA80030 */ lw $t0, 0x30($sp) +/* 0583E4 7F0238B4 A0480006 */ sb $t0, 6($v0) +/* 0583E8 7F0238B8 8FA90034 */ lw $t1, 0x34($sp) +/* 0583EC 7F0238BC A049000F */ sb $t1, 0xf($v0) +/* 0583F0 7F0238C0 96030014 */ lhu $v1, 0x14($s0) +/* 0583F4 7F0238C4 306A0004 */ andi $t2, $v1, 4 +/* 0583F8 7F0238C8 51400006 */ beql $t2, $zero, .L7F0238E4 +/* 0583FC 7F0238CC 306D0008 */ andi $t5, $v1, 8 +/* 058400 7F0238D0 8C4B0014 */ lw $t3, 0x14($v0) +/* 058404 7F0238D4 356C0002 */ ori $t4, $t3, 2 +/* 058408 7F0238D8 AC4C0014 */ sw $t4, 0x14($v0) +/* 05840C 7F0238DC 96030014 */ lhu $v1, 0x14($s0) +/* 058410 7F0238E0 306D0008 */ andi $t5, $v1, 8 +.L7F0238E4: +/* 058414 7F0238E4 51A00005 */ beql $t5, $zero, .L7F0238FC +/* 058418 7F0238E8 AE020018 */ sw $v0, 0x18($s0) +/* 05841C 7F0238EC 8C4E0014 */ lw $t6, 0x14($v0) +/* 058420 7F0238F0 35CF0010 */ ori $t7, $t6, 0x10 +/* 058424 7F0238F4 AC4F0014 */ sw $t7, 0x14($v0) +/* 058428 7F0238F8 AE020018 */ sw $v0, 0x18($s0) +.L7F0238FC: +/* 05842C 7F0238FC 8FBF0024 */ lw $ra, 0x24($sp) +/* 058430 7F023900 8FB00020 */ lw $s0, 0x20($sp) +/* 058434 7F023904 27BD0060 */ addiu $sp, $sp, 0x60 +/* 058438 7F023908 03E00008 */ jr $ra +/* 05843C 7F02390C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_item_held_like_pistol(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_item_held_like_pistol +/* 058440 7F023910 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 058444 7F023914 10800007 */ beqz $a0, .L7F023934 +/* 058448 7F023918 AFBF0014 */ sw $ra, 0x14($sp) +/* 05844C 7F02391C 8C820004 */ lw $v0, 4($a0) +/* 058450 7F023920 24050100 */ li $a1, 256 +/* 058454 7F023924 0FC1782D */ jal bondwalkItemCheckBitflags +/* 058458 7F023928 80440080 */ lb $a0, 0x80($v0) +/* 05845C 7F02392C 10000003 */ b .L7F02393C +/* 058460 7F023930 8FBF0014 */ lw $ra, 0x14($sp) +.L7F023934: +/* 058464 7F023934 00001025 */ move $v0, $zero +/* 058468 7F023938 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02393C: +/* 05846C 7F02393C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 058470 7F023940 03E00008 */ jr $ra +/* 058474 7F023944 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023948(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023948 +/* 058478 7F023948 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 05847C 7F02394C AFBF0024 */ sw $ra, 0x24($sp) +/* 058480 7F023950 AFB00020 */ sw $s0, 0x20($sp) +/* 058484 7F023954 AFA50034 */ sw $a1, 0x34($sp) +/* 058488 7F023958 00808025 */ move $s0, $a0 +/* 05848C 7F02395C 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 058490 7F023960 24050001 */ li $a1, 1 +/* 058494 7F023964 AFA2002C */ sw $v0, 0x2c($sp) +/* 058498 7F023968 02002025 */ move $a0, $s0 +/* 05849C 7F02396C 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0584A0 7F023970 00002825 */ move $a1, $zero +/* 0584A4 7F023974 8FA4002C */ lw $a0, 0x2c($sp) +/* 0584A8 7F023978 AFA20028 */ sw $v0, 0x28($sp) +/* 0584AC 7F02397C 10800003 */ beqz $a0, .L7F02398C +/* 0584B0 7F023980 00000000 */ nop +/* 0584B4 7F023984 1440000D */ bnez $v0, .L7F0239BC +/* 0584B8 7F023988 00000000 */ nop +.L7F02398C: +/* 0584BC 7F02398C 14800003 */ bnez $a0, .L7F02399C +/* 0584C0 7F023990 00000000 */ nop +/* 0584C4 7F023994 10400009 */ beqz $v0, .L7F0239BC +/* 0584C8 7F023998 00000000 */ nop +.L7F02399C: +/* 0584CC 7F02399C 0FC08E44 */ jal check_if_item_held_like_pistol +/* 0584D0 7F0239A0 00000000 */ nop +/* 0584D4 7F0239A4 14400005 */ bnez $v0, .L7F0239BC +/* 0584D8 7F0239A8 00000000 */ nop +/* 0584DC 7F0239AC 0FC08E44 */ jal check_if_item_held_like_pistol +/* 0584E0 7F0239B0 8FA40028 */ lw $a0, 0x28($sp) +/* 0584E4 7F0239B4 10400017 */ beqz $v0, .L7F023A14 +/* 0584E8 7F0239B8 8FB80028 */ lw $t8, 0x28($sp) +.L7F0239BC: +/* 0584EC 7F0239BC 0C002914 */ jal get_random_value +/* 0584F0 7F0239C0 00000000 */ nop +/* 0584F4 7F0239C4 3C0E8007 */ lui $t6, %hi(ptr_animation_table) +/* 0584F8 7F0239C8 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0584FC 7F0239CC 44812000 */ mtc1 $at, $f4 +/* 058500 7F0239D0 8DCE9538 */ lw $t6, %lo(ptr_animation_table)($t6) +/* 058504 7F0239D4 C7A60034 */ lwc1 $f6, 0x34($sp) +/* 058508 7F0239D8 3C0F0001 */ lui $t7, %hi(0x00008194) # $t7, 1 +/* 05850C 7F0239DC 25EF8194 */ addiu $t7, %lo(0x00008194) # addiu $t7, $t7, -0x7e6c +/* 058510 7F0239E0 8E04001C */ lw $a0, 0x1c($s0) +/* 058514 7F0239E4 30460001 */ andi $a2, $v0, 1 +/* 058518 7F0239E8 24070000 */ li $a3, 0 +/* 05851C 7F0239EC E7A40010 */ swc1 $f4, 0x10($sp) +/* 058520 7F0239F0 01CF2821 */ addu $a1, $t6, $t7 +/* 058524 7F0239F4 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058528 7F0239F8 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05852C 7F0239FC 8E04001C */ lw $a0, 0x1c($s0) +/* 058530 7F023A00 24050000 */ li $a1, 0 +/* 058534 7F023A04 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 058538 7F023A08 3C064180 */ lui $a2, 0x4180 +/* 05853C 7F023A0C 1000001D */ b .L7F023A84 +/* 058540 7F023A10 8FBF0024 */ lw $ra, 0x24($sp) +.L7F023A14: +/* 058544 7F023A14 17000003 */ bnez $t8, .L7F023A24 +/* 058548 7F023A18 8FB9002C */ lw $t9, 0x2c($sp) +/* 05854C 7F023A1C 53200019 */ beql $t9, $zero, .L7F023A84 +/* 058550 7F023A20 8FBF0024 */ lw $ra, 0x24($sp) +.L7F023A24: +/* 058554 7F023A24 8FA6002C */ lw $a2, 0x2c($sp) +/* 058558 7F023A28 3C088007 */ lui $t0, %hi(ptr_animation_table) +/* 05855C 7F023A2C 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 058560 7F023A30 44814000 */ mtc1 $at, $f8 +/* 058564 7F023A34 8D089538 */ lw $t0, %lo(ptr_animation_table)($t0) +/* 058568 7F023A38 C7AA0034 */ lwc1 $f10, 0x34($sp) +/* 05856C 7F023A3C 3C090000 */ lui $t1, %hi(0x0000001C) # $t1, 0 +/* 058570 7F023A40 2529001C */ addiu $t1, %lo(0x0000001C) # addiu $t1, $t1, 0x1c +/* 058574 7F023A44 8E04001C */ lw $a0, 0x1c($s0) +/* 058578 7F023A48 0006502B */ sltu $t2, $zero, $a2 +/* 05857C 7F023A4C 01403025 */ move $a2, $t2 +/* 058580 7F023A50 24070000 */ li $a3, 0 +/* 058584 7F023A54 E7A80010 */ swc1 $f8, 0x10($sp) +/* 058588 7F023A58 01092821 */ addu $a1, $t0, $t1 +/* 05858C 7F023A5C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058590 7F023A60 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 058594 7F023A64 8E04001C */ lw $a0, 0x1c($s0) +/* 058598 7F023A68 24050000 */ li $a1, 0 +/* 05859C 7F023A6C 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 0585A0 7F023A70 3C064180 */ lui $a2, 0x4180 +/* 0585A4 7F023A74 8E04001C */ lw $a0, 0x1c($s0) +/* 0585A8 7F023A78 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0585AC 7F023A7C 3C0542F0 */ lui $a1, 0x42f0 +/* 0585B0 7F023A80 8FBF0024 */ lw $ra, 0x24($sp) +.L7F023A84: +/* 0585B4 7F023A84 8FB00020 */ lw $s0, 0x20($sp) +/* 0585B8 7F023A88 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0585BC 7F023A8C 03E00008 */ jr $ra +/* 0585C0 7F023A90 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023A94(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F023A94 +/* 0585C4 7F023A94 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0585C8 7F023A98 AFBF0014 */ sw $ra, 0x14($sp) +/* 0585CC 7F023A9C AFA5001C */ sw $a1, 0x1c($sp) +/* 0585D0 7F023AA0 0FC0B461 */ jal sub_GAME_7F02D184 +/* 0585D4 7F023AA4 AFA40018 */ sw $a0, 0x18($sp) +/* 0585D8 7F023AA8 8FA40018 */ lw $a0, 0x18($sp) +/* 0585DC 7F023AAC 240E0001 */ li $t6, 1 +/* 0585E0 7F023AB0 240F0002 */ li $t7, 2 +/* 0585E4 7F023AB4 A08E0007 */ sb $t6, 7($a0) +/* 0585E8 7F023AB8 AC80002C */ sw $zero, 0x2c($a0) +/* 0585EC 7F023ABC AC800030 */ sw $zero, 0x30($a0) +/* 0585F0 7F023AC0 AC800034 */ sw $zero, 0x34($a0) +/* 0585F4 7F023AC4 AC800038 */ sw $zero, 0x38($a0) +/* 0585F8 7F023AC8 AC8F003C */ sw $t7, 0x3c($a0) +/* 0585FC 7F023ACC 0C002914 */ jal get_random_value +/* 058600 7F023AD0 AC800040 */ sw $zero, 0x40($a0) +/* 058604 7F023AD4 24010078 */ li $at, 120 +/* 058608 7F023AD8 0041001B */ divu $zero, $v0, $at +/* 05860C 7F023ADC 8FA40018 */ lw $a0, 0x18($sp) +/* 058610 7F023AE0 0000C010 */ mfhi $t8 +/* 058614 7F023AE4 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 058618 7F023AE8 8C88001C */ lw $t0, 0x1c($a0) +/* 05861C 7F023AEC 271900B4 */ addiu $t9, $t8, 0xb4 +/* 058620 7F023AF0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 058624 7F023AF4 AC990044 */ sw $t9, 0x44($a0) +/* 058628 7F023AF8 44812000 */ mtc1 $at, $f4 +/* 05862C 7F023AFC C50200A4 */ lwc1 $f2, 0xa4($t0) +/* 058630 7F023B00 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 058634 7F023B04 46006006 */ mov.s $f0, $f12 +/* 058638 7F023B08 46022032 */ c.eq.s $f4, $f2 +/* 05863C 7F023B0C 00000000 */ nop +/* 058640 7F023B10 45030003 */ bc1tl .L7F023B20 +/* 058644 7F023B14 44811000 */ mtc1 $at, $f2 +/* 058648 7F023B18 46026003 */ div.s $f0, $f12, $f2 +/* 05864C 7F023B1C 44811000 */ mtc1 $at, $f2 +.L7F023B20: +/* 058650 7F023B20 00000000 */ nop +/* 058654 7F023B24 4600103C */ c.lt.s $f2, $f0 +/* 058658 7F023B28 00000000 */ nop +/* 05865C 7F023B2C 45020003 */ bc1fl .L7F023B3C +/* 058660 7F023B30 4600018D */ trunc.w.s $f6, $f0 +/* 058664 7F023B34 46001006 */ mov.s $f0, $f2 +/* 058668 7F023B38 4600018D */ trunc.w.s $f6, $f0 +.L7F023B3C: +/* 05866C 7F023B3C 44056000 */ mfc1 $a1, $f12 +/* 058670 7F023B40 440A3000 */ mfc1 $t2, $f6 +/* 058674 7F023B44 0FC08E52 */ jal sub_GAME_7F023948 +/* 058678 7F023B48 A08A0008 */ sb $t2, 8($a0) +/* 05867C 7F023B4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 058680 7F023B50 27BD0018 */ addiu $sp, $sp, 0x18 +/* 058684 7F023B54 03E00008 */ jr $ra +/* 058688 7F023B58 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F023A94 +/* 058904 7F023D94 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 058908 7F023D98 AFBF0014 */ sw $ra, 0x14($sp) +/* 05890C 7F023D9C AFA5001C */ sw $a1, 0x1c($sp) +/* 058910 7F023DA0 0FC0B523 */ jal sub_GAME_7F02D184 +/* 058914 7F023DA4 AFA40018 */ sw $a0, 0x18($sp) +/* 058918 7F023DA8 8FA40018 */ lw $a0, 0x18($sp) +/* 05891C 7F023DAC 240E0001 */ li $t6, 1 +/* 058920 7F023DB0 240F0002 */ li $t7, 2 +/* 058924 7F023DB4 A08E0007 */ sb $t6, 7($a0) +/* 058928 7F023DB8 AC80002C */ sw $zero, 0x2c($a0) +/* 05892C 7F023DBC AC800030 */ sw $zero, 0x30($a0) +/* 058930 7F023DC0 AC800034 */ sw $zero, 0x34($a0) +/* 058934 7F023DC4 AC800038 */ sw $zero, 0x38($a0) +/* 058938 7F023DC8 AC8F003C */ sw $t7, 0x3c($a0) +/* 05893C 7F023DCC 0C002918 */ jal get_random_value +/* 058940 7F023DD0 AC800040 */ sw $zero, 0x40($a0) +/* 058944 7F023DD4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 058948 7F023DD8 44817000 */ mtc1 $at, $f14 +/* 05894C 7F023DDC 24010078 */ li $at, 120 +/* 058950 7F023DE0 0041001B */ divu $zero, $v0, $at +/* 058954 7F023DE4 8FA40018 */ lw $a0, 0x18($sp) +/* 058958 7F023DE8 0000C010 */ mfhi $t8 +/* 05895C 7F023DEC C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 058960 7F023DF0 8C88001C */ lw $t0, 0x1c($a0) +/* 058964 7F023DF4 271900B4 */ addiu $t9, $t8, 0xb4 +/* 058968 7F023DF8 AC990044 */ sw $t9, 0x44($a0) +/* 05896C 7F023DFC C50200A4 */ lwc1 $f2, 0xa4($t0) +/* 058970 7F023E00 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 058974 7F023E04 46006006 */ mov.s $f0, $f12 +/* 058978 7F023E08 46027032 */ c.eq.s $f14, $f2 +/* 05897C 7F023E0C 00000000 */ nop +/* 058980 7F023E10 45030005 */ bc1tl .L7F023E28 +/* 058984 7F023E14 44811000 */ mtc1 $at, $f2 +/* 058988 7F023E18 46027103 */ div.s $f4, $f14, $f2 +/* 05898C 7F023E1C 46046002 */ mul.s $f0, $f12, $f4 +/* 058990 7F023E20 00000000 */ nop +/* 058994 7F023E24 44811000 */ mtc1 $at, $f2 +.L7F023E28: +/* 058998 7F023E28 00000000 */ nop +/* 05899C 7F023E2C 4600103C */ c.lt.s $f2, $f0 +/* 0589A0 7F023E30 00000000 */ nop +/* 0589A4 7F023E34 45020003 */ bc1fl .L7F023E44 +/* 0589A8 7F023E38 4600018D */ trunc.w.s $f6, $f0 +/* 0589AC 7F023E3C 46001006 */ mov.s $f0, $f2 +/* 0589B0 7F023E40 4600018D */ trunc.w.s $f6, $f0 +.L7F023E44: +/* 0589B4 7F023E44 44056000 */ mfc1 $a1, $f12 +/* 0589B8 7F023E48 440A3000 */ mfc1 $t2, $f6 +/* 0589BC 7F023E4C 0FC08F12 */ jal sub_GAME_7F023948 +/* 0589C0 7F023E50 A08A0008 */ sb $t2, 8($a0) +/* 0589C4 7F023E54 8FBF0014 */ lw $ra, 0x14($sp) +/* 0589C8 7F023E58 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0589CC 7F023E5C 03E00008 */ jr $ra +/* 0589D0 7F023E60 00000000 */ nop + +) +#endif + +#endif + +#ifdef NONMATCHING +void sub_GAME_7F023B5C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023B5C +/* 05868C 7F023B5C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 058690 7F023B60 AFBF0014 */ sw $ra, 0x14($sp) +/* 058694 7F023B64 AFA50024 */ sw $a1, 0x24($sp) +/* 058698 7F023B68 AFA60028 */ sw $a2, 0x28($sp) +/* 05869C 7F023B6C 808E0003 */ lb $t6, 3($a0) +/* 0586A0 7F023B70 448E2000 */ mtc1 $t6, $f4 +/* 0586A4 7F023B74 00000000 */ nop +/* 0586A8 7F023B78 468020A0 */ cvt.s.w $f2, $f4 +/* 0586AC 7F023B7C 0FC074AC */ jal get_007_reaction_speed +/* 0586B0 7F023B80 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0586B4 7F023B84 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0586B8 7F023B88 44816000 */ mtc1 $at, $f12 +/* 0586BC 7F023B8C C7A2001C */ lwc1 $f2, 0x1c($sp) +/* 0586C0 7F023B90 C7AE0024 */ lwc1 $f14, 0x24($sp) +/* 0586C4 7F023B94 C7AA0028 */ lwc1 $f10, 0x28($sp) +/* 0586C8 7F023B98 46026181 */ sub.s $f6, $f12, $f2 +/* 0586CC 7F023B9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0586D0 7F023BA0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0586D4 7F023BA4 460E5401 */ sub.s $f16, $f10, $f14 +/* 0586D8 7F023BA8 46060202 */ mul.s $f8, $f0, $f6 +/* 0586DC 7F023BAC 46024080 */ add.s $f2, $f8, $f2 +/* 0586E0 7F023BB0 46028482 */ mul.s $f18, $f16, $f2 +/* 0586E4 7F023BB4 460C9103 */ div.s $f4, $f18, $f12 +/* 0586E8 7F023BB8 03E00008 */ jr $ra +/* 0586EC 7F023BBC 460E2000 */ add.s $f0, $f4, $f14 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023BC0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023BC0 +/* 0586F0 7F023BC0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0586F4 7F023BC4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0586F8 7F023BC8 AFA50024 */ sw $a1, 0x24($sp) +/* 0586FC 7F023BCC 80830003 */ lb $v1, 3($a0) +/* 058700 7F023BD0 0FC074AC */ jal get_007_reaction_speed +/* 058704 7F023BD4 AFA3001C */ sw $v1, 0x1c($sp) +/* 058708 7F023BD8 8FA3001C */ lw $v1, 0x1c($sp) +/* 05870C 7F023BDC 24040064 */ li $a0, 100 +/* 058710 7F023BE0 8FA80024 */ lw $t0, 0x24($sp) +/* 058714 7F023BE4 00837023 */ subu $t6, $a0, $v1 +/* 058718 7F023BE8 448E2000 */ mtc1 $t6, $f4 +/* 05871C 7F023BEC 8FBF0014 */ lw $ra, 0x14($sp) +/* 058720 7F023BF0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 058724 7F023BF4 468021A0 */ cvt.s.w $f6, $f4 +/* 058728 7F023BF8 46060202 */ mul.s $f8, $f0, $f6 +/* 05872C 7F023BFC 4600428D */ trunc.w.s $f10, $f8 +/* 058730 7F023C00 44185000 */ mfc1 $t8, $f10 +/* 058734 7F023C04 00000000 */ nop +/* 058738 7F023C08 03031821 */ addu $v1, $t8, $v1 +/* 05873C 7F023C0C 0083C823 */ subu $t9, $a0, $v1 +/* 058740 7F023C10 03280019 */ multu $t9, $t0 +/* 058744 7F023C14 00004812 */ mflo $t1 +/* 058748 7F023C18 00000000 */ nop +/* 05874C 7F023C1C 00000000 */ nop +/* 058750 7F023C20 0124001A */ div $zero, $t1, $a0 +/* 058754 7F023C24 00001012 */ mflo $v0 +/* 058758 7F023C28 14800002 */ bnez $a0, .L7F023C34 +/* 05875C 7F023C2C 00000000 */ nop +/* 058760 7F023C30 0007000D */ break 7 +.L7F023C34: +/* 058764 7F023C34 2401FFFF */ li $at, -1 +/* 058768 7F023C38 14810004 */ bne $a0, $at, .L7F023C4C +/* 05876C 7F023C3C 3C018000 */ lui $at, 0x8000 +/* 058770 7F023C40 15210002 */ bne $t1, $at, .L7F023C4C +/* 058774 7F023C44 00000000 */ nop +/* 058778 7F023C48 0006000D */ break 6 +.L7F023C4C: +/* 05877C 7F023C4C 03E00008 */ jr $ra +/* 058780 7F023C50 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023C54(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023C54 +/* 058784 7F023C54 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 058788 7F023C58 AFBF0014 */ sw $ra, 0x14($sp) +/* 05878C 7F023C5C AFA50024 */ sw $a1, 0x24($sp) +/* 058790 7F023C60 AFA60028 */ sw $a2, 0x28($sp) +/* 058794 7F023C64 808E000D */ lb $t6, 0xd($a0) +/* 058798 7F023C68 448E2000 */ mtc1 $t6, $f4 +/* 05879C 7F023C6C 00000000 */ nop +/* 0587A0 7F023C70 468020A0 */ cvt.s.w $f2, $f4 +/* 0587A4 7F023C74 0FC074AC */ jal get_007_reaction_speed +/* 0587A8 7F023C78 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0587AC 7F023C7C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0587B0 7F023C80 44816000 */ mtc1 $at, $f12 +/* 0587B4 7F023C84 C7A2001C */ lwc1 $f2, 0x1c($sp) +/* 0587B8 7F023C88 C7AE0024 */ lwc1 $f14, 0x24($sp) +/* 0587BC 7F023C8C C7AA0028 */ lwc1 $f10, 0x28($sp) +/* 0587C0 7F023C90 46026181 */ sub.s $f6, $f12, $f2 +/* 0587C4 7F023C94 8FBF0014 */ lw $ra, 0x14($sp) +/* 0587C8 7F023C98 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0587CC 7F023C9C 460E5401 */ sub.s $f16, $f10, $f14 +/* 0587D0 7F023CA0 46060202 */ mul.s $f8, $f0, $f6 +/* 0587D4 7F023CA4 46024080 */ add.s $f2, $f8, $f2 +/* 0587D8 7F023CA8 46028482 */ mul.s $f18, $f16, $f2 +/* 0587DC 7F023CAC 460C9103 */ div.s $f4, $f18, $f12 +/* 0587E0 7F023CB0 03E00008 */ jr $ra +/* 0587E4 7F023CB4 460E2000 */ add.s $f0, $f4, $f14 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023CB8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023CB8 +/* 0587E8 7F023CB8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0587EC 7F023CBC AFBF0024 */ sw $ra, 0x24($sp) +/* 0587F0 7F023CC0 AFB00020 */ sw $s0, 0x20($sp) +/* 0587F4 7F023CC4 808E0007 */ lb $t6, 7($a0) +/* 0587F8 7F023CC8 24010002 */ li $at, 2 +/* 0587FC 7F023CCC 00808025 */ move $s0, $a0 +/* 058800 7F023CD0 15C10049 */ bne $t6, $at, .L7F023DF8 +/* 058804 7F023CD4 3C054180 */ lui $a1, 0x4180 +/* 058808 7F023CD8 0FC0B461 */ jal sub_GAME_7F02D184 +/* 05880C 7F023CDC 00000000 */ nop +/* 058810 7F023CE0 24020001 */ li $v0, 1 +/* 058814 7F023CE4 240F0002 */ li $t7, 2 +/* 058818 7F023CE8 A2020007 */ sb $v0, 7($s0) +/* 05881C 7F023CEC AE02002C */ sw $v0, 0x2c($s0) +/* 058820 7F023CF0 AE000030 */ sw $zero, 0x30($s0) +/* 058824 7F023CF4 AE000034 */ sw $zero, 0x34($s0) +/* 058828 7F023CF8 AE000038 */ sw $zero, 0x38($s0) +/* 05882C 7F023CFC AE0F003C */ sw $t7, 0x3c($s0) +/* 058830 7F023D00 0C002914 */ jal get_random_value +/* 058834 7F023D04 AE000040 */ sw $zero, 0x40($s0) +/* 058838 7F023D08 24010078 */ li $at, 120 +/* 05883C 7F023D0C 0041001B */ divu $zero, $v0, $at +/* 058840 7F023D10 0000C010 */ mfhi $t8 +/* 058844 7F023D14 271900B4 */ addiu $t9, $t8, 0xb4 +/* 058848 7F023D18 AE190044 */ sw $t9, 0x44($s0) +/* 05884C 7F023D1C A2000008 */ sb $zero, 8($s0) +/* 058850 7F023D20 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 058854 7F023D24 8E04001C */ lw $a0, 0x1c($s0) +/* 058858 7F023D28 3C088007 */ lui $t0, %hi(ptr_animation_table) +/* 05885C 7F023D2C 8D089538 */ lw $t0, %lo(ptr_animation_table)($t0) +/* 058860 7F023D30 3C030000 */ lui $v1, %hi(0x00006C18) # $v1, 0 +/* 058864 7F023D34 24636C18 */ addiu $v1, %lo(0x00006C18) # addiu $v1, $v1, 0x6c18 +/* 058868 7F023D38 00684821 */ addu $t1, $v1, $t0 +/* 05886C 7F023D3C 14490018 */ bne $v0, $t1, .L7F023DA0 +/* 058870 7F023D40 02002025 */ move $a0, $s0 +/* 058874 7F023D44 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 058878 7F023D48 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 05887C 7F023D4C 02002025 */ move $a0, $s0 +/* 058880 7F023D50 3C053F00 */ lui $a1, 0x3f00 +/* 058884 7F023D54 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 058888 7F023D58 AFA30028 */ sw $v1, 0x28($sp) +/* 05888C 7F023D5C 8E04001C */ lw $a0, 0x1c($s0) +/* 058890 7F023D60 3C0A8007 */ lui $t2, %hi(ptr_animation_table) +/* 058894 7F023D64 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 058898 7F023D68 44812000 */ mtc1 $at, $f4 +/* 05889C 7F023D6C 8D4A9538 */ lw $t2, %lo(ptr_animation_table)($t2) +/* 0588A0 7F023D70 8FA30028 */ lw $v1, 0x28($sp) +/* 0588A4 7F023D74 80860024 */ lb $a2, 0x24($a0) +/* 0588A8 7F023D78 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0588AC 7F023D7C 3C0742DA */ lui $a3, 0x42da +/* 0588B0 7F023D80 E7A40014 */ swc1 $f4, 0x14($sp) +/* 0588B4 7F023D84 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0588B8 7F023D88 006A2821 */ addu $a1, $v1, $t2 +/* 0588BC 7F023D8C 8E04001C */ lw $a0, 0x1c($s0) +/* 0588C0 7F023D90 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0588C4 7F023D94 3C05430C */ lui $a1, 0x430c +/* 0588C8 7F023D98 1000001A */ b .L7F023E04 +/* 0588CC 7F023D9C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F023DA0: +/* 0588D0 7F023DA0 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 0588D4 7F023DA4 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0588D8 7F023DA8 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0588DC 7F023DAC 3C053F00 */ lui $a1, 0x3f00 +/* 0588E0 7F023DB0 8E04001C */ lw $a0, 0x1c($s0) +/* 0588E4 7F023DB4 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 0588E8 7F023DB8 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0588EC 7F023DBC 44813000 */ mtc1 $at, $f6 +/* 0588F0 7F023DC0 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 0588F4 7F023DC4 3C0C0000 */ lui $t4, %hi(0x00000B84) # $t4, 0 +/* 0588F8 7F023DC8 258C0B84 */ addiu $t4, %lo(0x00000B84) # addiu $t4, $t4, 0xb84 +/* 0588FC 7F023DCC 80860024 */ lb $a2, 0x24($a0) +/* 058900 7F023DD0 E7A00010 */ swc1 $f0, 0x10($sp) +/* 058904 7F023DD4 3C0742F0 */ lui $a3, 0x42f0 +/* 058908 7F023DD8 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05890C 7F023DDC 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058910 7F023DE0 016C2821 */ addu $a1, $t3, $t4 +/* 058914 7F023DE4 8E04001C */ lw $a0, 0x1c($s0) +/* 058918 7F023DE8 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05891C 7F023DEC 3C054317 */ lui $a1, 0x4317 +/* 058920 7F023DF0 10000004 */ b .L7F023E04 +/* 058924 7F023DF4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F023DF8: +/* 058928 7F023DF8 0FC08EA5 */ jal sub_GAME_7F023A94 +/* 05892C 7F023DFC 02002025 */ move $a0, $s0 +/* 058930 7F023E00 8FBF0024 */ lw $ra, 0x24($sp) +.L7F023E04: +/* 058934 7F023E04 8FB00020 */ lw $s0, 0x20($sp) +/* 058938 7F023E08 27BD0030 */ addiu $sp, $sp, 0x30 +/* 05893C 7F023E0C 03E00008 */ jr $ra +/* 058940 7F023E10 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023E14(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023E14 +/* 058944 7F023E14 44856000 */ mtc1 $a1, $f12 +/* 058948 7F023E18 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05894C 7F023E1C AFBF0014 */ sw $ra, 0x14($sp) +/* 058950 7F023E20 44056000 */ mfc1 $a1, $f12 +/* 058954 7F023E24 0FC08EA5 */ jal sub_GAME_7F023A94 +/* 058958 7F023E28 AFA40018 */ sw $a0, 0x18($sp) +/* 05895C 7F023E2C 8FAF0018 */ lw $t7, 0x18($sp) +/* 058960 7F023E30 240E0001 */ li $t6, 1 +/* 058964 7F023E34 ADEE0040 */ sw $t6, 0x40($t7) +/* 058968 7F023E38 8FBF0014 */ lw $ra, 0x14($sp) +/* 05896C 7F023E3C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 058970 7F023E40 03E00008 */ jr $ra +/* 058974 7F023E44 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F023E48(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F023E48 +/* 058978 7F023E48 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05897C 7F023E4C AFBF0014 */ sw $ra, 0x14($sp) +/* 058980 7F023E50 0FC08F2E */ jal sub_GAME_7F023CB8 +/* 058984 7F023E54 AFA40018 */ sw $a0, 0x18($sp) +/* 058988 7F023E58 8FAF0018 */ lw $t7, 0x18($sp) +/* 05898C 7F023E5C 240E0001 */ li $t6, 1 +/* 058990 7F023E60 ADEE0040 */ sw $t6, 0x40($t7) +/* 058994 7F023E64 8FBF0014 */ lw $ra, 0x14($sp) +/* 058998 7F023E68 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05899C 7F023E6C 03E00008 */ jr $ra +/* 0589A0 7F023E70 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_kneel(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_kneel +/* 0589A4 7F023E74 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0589A8 7F023E78 AFBF0024 */ sw $ra, 0x24($sp) +/* 0589AC 7F023E7C AFB00020 */ sw $s0, 0x20($sp) +/* 0589B0 7F023E80 00808025 */ move $s0, $a0 +/* 0589B4 7F023E84 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0589B8 7F023E88 24050001 */ li $a1, 1 +/* 0589BC 7F023E8C AFA20034 */ sw $v0, 0x34($sp) +/* 0589C0 7F023E90 02002025 */ move $a0, $s0 +/* 0589C4 7F023E94 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0589C8 7F023E98 00002825 */ move $a1, $zero +/* 0589CC 7F023E9C AFA20030 */ sw $v0, 0x30($sp) +/* 0589D0 7F023EA0 0FC0B461 */ jal sub_GAME_7F02D184 +/* 0589D4 7F023EA4 02002025 */ move $a0, $s0 +/* 0589D8 7F023EA8 8FA40034 */ lw $a0, 0x34($sp) +/* 0589DC 7F023EAC 8FAE0030 */ lw $t6, 0x30($sp) +/* 0589E0 7F023EB0 10800003 */ beqz $a0, .L7F023EC0 +/* 0589E4 7F023EB4 00000000 */ nop +/* 0589E8 7F023EB8 15C0000D */ bnez $t6, .L7F023EF0 +/* 0589EC 7F023EBC 00000000 */ nop +.L7F023EC0: +/* 0589F0 7F023EC0 14800003 */ bnez $a0, .L7F023ED0 +/* 0589F4 7F023EC4 8FAF0030 */ lw $t7, 0x30($sp) +/* 0589F8 7F023EC8 11E00009 */ beqz $t7, .L7F023EF0 +/* 0589FC 7F023ECC 00000000 */ nop +.L7F023ED0: +/* 058A00 7F023ED0 0FC08E44 */ jal check_if_item_held_like_pistol +/* 058A04 7F023ED4 00000000 */ nop +/* 058A08 7F023ED8 14400005 */ bnez $v0, .L7F023EF0 +/* 058A0C 7F023EDC 00000000 */ nop +/* 058A10 7F023EE0 0FC08E44 */ jal check_if_item_held_like_pistol +/* 058A14 7F023EE4 8FA40030 */ lw $a0, 0x30($sp) +/* 058A18 7F023EE8 1040001C */ beqz $v0, .L7F023F5C +/* 058A1C 7F023EEC 8FA90030 */ lw $t1, 0x30($sp) +.L7F023EF0: +/* 058A20 7F023EF0 0C002914 */ jal get_random_value +/* 058A24 7F023EF4 00000000 */ nop +/* 058A28 7F023EF8 30580001 */ andi $t8, $v0, 1 +/* 058A2C 7F023EFC 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 058A30 7F023F00 AFB8002C */ sw $t8, 0x2c($sp) +/* 058A34 7F023F04 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 058A38 7F023F08 02002025 */ move $a0, $s0 +/* 058A3C 7F023F0C 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 058A40 7F023F10 3C053F00 */ lui $a1, 0x3f00 +/* 058A44 7F023F14 3C198007 */ lui $t9, %hi(ptr_animation_table) +/* 058A48 7F023F18 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 058A4C 7F023F1C 44812000 */ mtc1 $at, $f4 +/* 058A50 7F023F20 8F399538 */ lw $t9, %lo(ptr_animation_table)($t9) +/* 058A54 7F023F24 3C080000 */ lui $t0, %hi(0x00006C18) # $t0, 0 +/* 058A58 7F023F28 25086C18 */ addiu $t0, %lo(0x00006C18) # addiu $t0, $t0, 0x6c18 +/* 058A5C 7F023F2C 8E04001C */ lw $a0, 0x1c($s0) +/* 058A60 7F023F30 E7A00010 */ swc1 $f0, 0x10($sp) +/* 058A64 7F023F34 8FA6002C */ lw $a2, 0x2c($sp) +/* 058A68 7F023F38 24070000 */ li $a3, 0 +/* 058A6C 7F023F3C E7A40014 */ swc1 $f4, 0x14($sp) +/* 058A70 7F023F40 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058A74 7F023F44 03282821 */ addu $a1, $t9, $t0 +/* 058A78 7F023F48 8E04001C */ lw $a0, 0x1c($s0) +/* 058A7C 7F023F4C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 058A80 7F023F50 3C0541E0 */ lui $a1, 0x41e0 +/* 058A84 7F023F54 1000001C */ b .L7F023FC8 +/* 058A88 7F023F58 240E0002 */ li $t6, 2 +.L7F023F5C: +/* 058A8C 7F023F5C 15200002 */ bnez $t1, .L7F023F68 +/* 058A90 7F023F60 8FAA0034 */ lw $t2, 0x34($sp) +/* 058A94 7F023F64 11400017 */ beqz $t2, .L7F023FC4 +.L7F023F68: +/* 058A98 7F023F68 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 058A9C 7F023F6C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 058AA0 7F023F70 02002025 */ move $a0, $s0 +/* 058AA4 7F023F74 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 058AA8 7F023F78 3C053F00 */ lui $a1, 0x3f00 +/* 058AAC 7F023F7C 8FA60034 */ lw $a2, 0x34($sp) +/* 058AB0 7F023F80 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 058AB4 7F023F84 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 058AB8 7F023F88 44813000 */ mtc1 $at, $f6 +/* 058ABC 7F023F8C 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 058AC0 7F023F90 3C0C0000 */ lui $t4, %hi(0x00000B84) # $t4, 0 +/* 058AC4 7F023F94 258C0B84 */ addiu $t4, %lo(0x00000B84) # addiu $t4, $t4, 0xb84 +/* 058AC8 7F023F98 8E04001C */ lw $a0, 0x1c($s0) +/* 058ACC 7F023F9C 0006682B */ sltu $t5, $zero, $a2 +/* 058AD0 7F023FA0 01A03025 */ move $a2, $t5 +/* 058AD4 7F023FA4 E7A00010 */ swc1 $f0, 0x10($sp) +/* 058AD8 7F023FA8 24070000 */ li $a3, 0 +/* 058ADC 7F023FAC E7A60014 */ swc1 $f6, 0x14($sp) +/* 058AE0 7F023FB0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058AE4 7F023FB4 016C2821 */ addu $a1, $t3, $t4 +/* 058AE8 7F023FB8 8E04001C */ lw $a0, 0x1c($s0) +/* 058AEC 7F023FBC 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 058AF0 7F023FC0 3C0541D8 */ lui $a1, 0x41d8 +.L7F023FC4: +/* 058AF4 7F023FC4 240E0002 */ li $t6, 2 +.L7F023FC8: +/* 058AF8 7F023FC8 A20E0007 */ sb $t6, 7($s0) +/* 058AFC 7F023FCC A2000008 */ sb $zero, 8($s0) +/* 058B00 7F023FD0 8FBF0024 */ lw $ra, 0x24($sp) +/* 058B04 7F023FD4 8FB00020 */ lw $s0, 0x20($sp) +/* 058B08 7F023FD8 27BD0038 */ addiu $sp, $sp, 0x38 +/* 058B0C 7F023FDC 03E00008 */ jr $ra +/* 058B10 7F023FE0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void perform_animation_for_actor(void) { + +} +#else +GLOBAL_ASM( +.text +glabel perform_animation_for_actor +/* 058B14 7F023FE4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 058B18 7F023FE8 AFB10020 */ sw $s1, 0x20($sp) +/* 058B1C 7F023FEC 93B10043 */ lbu $s1, 0x43($sp) +/* 058B20 7F023FF0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 058B24 7F023FF4 AFB0001C */ sw $s0, 0x1c($sp) +/* 058B28 7F023FF8 44810000 */ mtc1 $at, $f0 +/* 058B2C 7F023FFC 322E0080 */ andi $t6, $s1, 0x80 +/* 058B30 7F024000 00808025 */ move $s0, $a0 +/* 058B34 7F024004 AFBF0024 */ sw $ra, 0x24($sp) +/* 058B38 7F024008 AFA50034 */ sw $a1, 0x34($sp) +/* 058B3C 7F02400C AFA60038 */ sw $a2, 0x38($sp) +/* 058B40 7F024010 11C00004 */ beqz $t6, .L7F024024 +/* 058B44 7F024014 AFA7003C */ sw $a3, 0x3c($sp) +/* 058B48 7F024018 3C01BF00 */ li $at, 0xBF000000 # -0.500000 +/* 058B4C 7F02401C 44810000 */ mtc1 $at, $f0 +/* 058B50 7F024020 00000000 */ nop +.L7F024024: +/* 058B54 7F024024 02002025 */ move $a0, $s0 +/* 058B58 7F024028 0FC0B461 */ jal sub_GAME_7F02D184 +/* 058B5C 7F02402C E7A00028 */ swc1 $f0, 0x28($sp) +/* 058B60 7F024030 8FA80038 */ lw $t0, 0x38($sp) +/* 058B64 7F024034 8FA90044 */ lw $t1, 0x44($sp) +/* 058B68 7F024038 8FAF0034 */ lw $t7, 0x34($sp) +/* 058B6C 7F02403C 44882000 */ mtc1 $t0, $f4 +/* 058B70 7F024040 44893000 */ mtc1 $t1, $f6 +/* 058B74 7F024044 C7A00028 */ lwc1 $f0, 0x28($sp) +/* 058B78 7F024048 46802120 */ cvt.s.w $f4, $f4 +/* 058B7C 7F02404C 3C058003 */ lui $a1, %hi(animation_table_ptrs1) +/* 058B80 7F024050 32260001 */ andi $a2, $s1, 1 +/* 058B84 7F024054 000FC080 */ sll $t8, $t7, 2 +/* 058B88 7F024058 00B82821 */ addu $a1, $a1, $t8 +/* 058B8C 7F02405C 46803220 */ cvt.s.w $f8, $f6 +/* 058B90 7F024060 0006C82B */ sltu $t9, $zero, $a2 +/* 058B94 7F024064 44072000 */ mfc1 $a3, $f4 +/* 058B98 7F024068 8E04001C */ lw $a0, 0x1c($s0) +/* 058B9C 7F02406C 03203025 */ move $a2, $t9 +/* 058BA0 7F024070 8CA59D6C */ lw $a1, %lo(animation_table_ptrs1)($a1) +/* 058BA4 7F024074 E7A80014 */ swc1 $f8, 0x14($sp) +/* 058BA8 7F024078 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058BAC 7F02407C E7A00010 */ swc1 $f0, 0x10($sp) +/* 058BB0 7F024080 8FA2003C */ lw $v0, 0x3c($sp) +/* 058BB4 7F024084 04420008 */ bltzl $v0, .L7F0240A8 +/* 058BB8 7F024088 322A0020 */ andi $t2, $s1, 0x20 +/* 058BBC 7F02408C 44825000 */ mtc1 $v0, $f10 +/* 058BC0 7F024090 8E04001C */ lw $a0, 0x1c($s0) +/* 058BC4 7F024094 468052A0 */ cvt.s.w $f10, $f10 +/* 058BC8 7F024098 44055000 */ mfc1 $a1, $f10 +/* 058BCC 7F02409C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 058BD0 7F0240A0 00000000 */ nop +/* 058BD4 7F0240A4 322A0020 */ andi $t2, $s1, 0x20 +.L7F0240A8: +/* 058BD8 7F0240A8 5140000A */ beql $t2, $zero, .L7F0240D4 +/* 058BDC 7F0240AC 8E0B0014 */ lw $t3, 0x14($s0) +/* 058BE0 7F0240B0 8E04001C */ lw $a0, 0x1c($s0) +/* 058BE4 7F0240B4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 058BE8 7F0240B8 44819000 */ mtc1 $at, $f18 +/* 058BEC 7F0240BC C49000B8 */ lwc1 $f16, 0xb8($a0) +/* 058BF0 7F0240C0 46128102 */ mul.s $f4, $f16, $f18 +/* 058BF4 7F0240C4 44052000 */ mfc1 $a1, $f4 +/* 058BF8 7F0240C8 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 058BFC 7F0240CC 00000000 */ nop +/* 058C00 7F0240D0 8E0B0014 */ lw $t3, 0x14($s0) +.L7F0240D4: +/* 058C04 7F0240D4 3C01FDFF */ lui $at, (0xFDFFFFFF >> 16) # lui $at, 0xfdff +/* 058C08 7F0240D8 3421FFFF */ ori $at, (0xFDFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 058C0C 7F0240DC 01616024 */ and $t4, $t3, $at +/* 058C10 7F0240E0 AE0C0014 */ sw $t4, 0x14($s0) +/* 058C14 7F0240E4 322E0002 */ andi $t6, $s1, 2 +/* 058C18 7F0240E8 32380004 */ andi $t8, $s1, 4 +/* 058C1C 7F0240EC 32280008 */ andi $t0, $s1, 8 +/* 058C20 7F0240F0 32220010 */ andi $v0, $s1, 0x10 +/* 058C24 7F0240F4 322B0040 */ andi $t3, $s1, 0x40 +/* 058C28 7F0240F8 240D0003 */ li $t5, 3 +/* 058C2C 7F0240FC 000E782B */ sltu $t7, $zero, $t6 +/* 058C30 7F024100 0018C82B */ sltu $t9, $zero, $t8 +/* 058C34 7F024104 0008482B */ sltu $t1, $zero, $t0 +/* 058C38 7F024108 0002502B */ sltu $t2, $zero, $v0 +/* 058C3C 7F02410C 000B602B */ sltu $t4, $zero, $t3 +/* 058C40 7F024110 A20D0007 */ sb $t5, 7($s0) +/* 058C44 7F024114 AE0F002C */ sw $t7, 0x2c($s0) +/* 058C48 7F024118 AE190030 */ sw $t9, 0x30($s0) +/* 058C4C 7F02411C AE090034 */ sw $t1, 0x34($s0) +/* 058C50 7F024120 AE0A0038 */ sw $t2, 0x38($s0) +/* 058C54 7F024124 11400004 */ beqz $t2, .L7F024138 +/* 058C58 7F024128 AE0C003C */ sw $t4, 0x3c($s0) +/* 058C5C 7F02412C 8FAD0044 */ lw $t5, 0x44($sp) +/* 058C60 7F024130 10000002 */ b .L7F02413C +/* 058C64 7F024134 A20D0008 */ sb $t5, 8($s0) +.L7F024138: +/* 058C68 7F024138 A2000008 */ sb $zero, 8($s0) +.L7F02413C: +/* 058C6C 7F02413C 8FBF0024 */ lw $ra, 0x24($sp) +/* 058C70 7F024140 8FB0001C */ lw $s0, 0x1c($sp) +/* 058C74 7F024144 8FB10020 */ lw $s1, 0x20($sp) +/* 058C78 7F024148 03E00008 */ jr $ra +/* 058C7C 7F02414C 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F024150(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F024150 +/* 058C80 7F024150 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 058C84 7F024154 AFBF0024 */ sw $ra, 0x24($sp) +/* 058C88 7F024158 AFB00020 */ sw $s0, 0x20($sp) +/* 058C8C 7F02415C 00808025 */ move $s0, $a0 +/* 058C90 7F024160 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 058C94 7F024164 24050001 */ li $a1, 1 +/* 058C98 7F024168 02002025 */ move $a0, $s0 +/* 058C9C 7F02416C 00002825 */ move $a1, $zero +/* 058CA0 7F024170 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 058CA4 7F024174 AFA20034 */ sw $v0, 0x34($sp) +/* 058CA8 7F024178 8FA30034 */ lw $v1, 0x34($sp) +/* 058CAC 7F02417C 00003025 */ move $a2, $zero +/* 058CB0 7F024180 10600005 */ beqz $v1, .L7F024198 +/* 058CB4 7F024184 00000000 */ nop +/* 058CB8 7F024188 14400003 */ bnez $v0, .L7F024198 +/* 058CBC 7F02418C 00000000 */ nop +/* 058CC0 7F024190 1000000C */ b .L7F0241C4 +/* 058CC4 7F024194 24060001 */ li $a2, 1 +.L7F024198: +/* 058CC8 7F024198 10600003 */ beqz $v1, .L7F0241A8 +/* 058CCC 7F02419C 00000000 */ nop +/* 058CD0 7F0241A0 14400005 */ bnez $v0, .L7F0241B8 +/* 058CD4 7F0241A4 00000000 */ nop +.L7F0241A8: +/* 058CD8 7F0241A8 54600007 */ bnezl $v1, .L7F0241C8 +/* 058CDC 7F0241AC 02002025 */ move $a0, $s0 +/* 058CE0 7F0241B0 54400005 */ bnezl $v0, .L7F0241C8 +/* 058CE4 7F0241B4 02002025 */ move $a0, $s0 +.L7F0241B8: +/* 058CE8 7F0241B8 0C002914 */ jal get_random_value +/* 058CEC 7F0241BC 00000000 */ nop +/* 058CF0 7F0241C0 30460001 */ andi $a2, $v0, 1 +.L7F0241C4: +/* 058CF4 7F0241C4 02002025 */ move $a0, $s0 +.L7F0241C8: +/* 058CF8 7F0241C8 0FC0B461 */ jal sub_GAME_7F02D184 +/* 058CFC 7F0241CC AFA6002C */ sw $a2, 0x2c($sp) +/* 058D00 7F0241D0 8FA6002C */ lw $a2, 0x2c($sp) +/* 058D04 7F0241D4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 058D08 7F0241D8 44812000 */ mtc1 $at, $f4 +/* 058D0C 7F0241DC 240E0013 */ li $t6, 19 +/* 058D10 7F0241E0 A20E0007 */ sb $t6, 7($s0) +/* 058D14 7F0241E4 A2000008 */ sb $zero, 8($s0) +/* 058D18 7F0241E8 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 058D1C 7F0241EC 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 058D20 7F0241F0 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 058D24 7F0241F4 44813000 */ mtc1 $at, $f6 +/* 058D28 7F0241F8 3C180000 */ lui $t8, %hi(0x00005744) # $t8, 0 +/* 058D2C 7F0241FC 27185744 */ addiu $t8, %lo(0x00005744) # addiu $t8, $t8, 0x5744 +/* 058D30 7F024200 8E04001C */ lw $a0, 0x1c($s0) +/* 058D34 7F024204 3C074220 */ lui $a3, 0x4220 +/* 058D38 7F024208 E7A40010 */ swc1 $f4, 0x10($sp) +/* 058D3C 7F02420C 01F82821 */ addu $a1, $t7, $t8 +/* 058D40 7F024210 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058D44 7F024214 E7A60014 */ swc1 $f6, 0x14($sp) +/* 058D48 7F024218 8E04001C */ lw $a0, 0x1c($s0) +/* 058D4C 7F02421C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 058D50 7F024220 3C0542A4 */ lui $a1, 0x42a4 +/* 058D54 7F024224 8FBF0024 */ lw $ra, 0x24($sp) +/* 058D58 7F024228 8FB00020 */ lw $s0, 0x20($sp) +/* 058D5C 7F02422C 27BD0038 */ addiu $sp, $sp, 0x38 +/* 058D60 7F024230 03E00008 */ jr $ra +/* 058D64 7F024234 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void throw_weapon_in_guard_hand(void) { + +} +#else +GLOBAL_ASM( +.text +glabel throw_weapon_in_guard_hand +/* 058D68 7F024238 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 058D6C 7F02423C AFBF0024 */ sw $ra, 0x24($sp) +/* 058D70 7F024240 AFB00020 */ sw $s0, 0x20($sp) +/* 058D74 7F024244 00808025 */ move $s0, $a0 +/* 058D78 7F024248 AFA5002C */ sw $a1, 0x2c($sp) +/* 058D7C 7F02424C AFA60030 */ sw $a2, 0x30($sp) +/* 058D80 7F024250 0FC0B461 */ jal sub_GAME_7F02D184 +/* 058D84 7F024254 AFA70034 */ sw $a3, 0x34($sp) +/* 058D88 7F024258 240E0014 */ li $t6, 20 +/* 058D8C 7F02425C A20E0007 */ sb $t6, 7($s0) +/* 058D90 7F024260 A2000008 */ sb $zero, 8($s0) +/* 058D94 7F024264 8FAF0034 */ lw $t7, 0x34($sp) +/* 058D98 7F024268 02002025 */ move $a0, $s0 +/* 058D9C 7F02426C 3C053F00 */ lui $a1, 0x3f00 +/* 058DA0 7F024270 11E00017 */ beqz $t7, .L7F0242D0 +/* 058DA4 7F024274 3C063F4C */ lui $a2, 0x3f4c +/* 058DA8 7F024278 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 058DAC 7F02427C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 058DB0 7F024280 02002025 */ move $a0, $s0 +/* 058DB4 7F024284 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 058DB8 7F024288 3C053F00 */ lui $a1, 0x3f00 +/* 058DBC 7F02428C 8FA60030 */ lw $a2, 0x30($sp) +/* 058DC0 7F024290 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 058DC4 7F024294 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 058DC8 7F024298 44812000 */ mtc1 $at, $f4 +/* 058DCC 7F02429C 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 058DD0 7F0242A0 3C190000 */ lui $t9, %hi(0x00005964) # $t9, 0 +/* 058DD4 7F0242A4 27395964 */ addiu $t9, %lo(0x00005964) # addiu $t9, $t9, 0x5964 +/* 058DD8 7F0242A8 8E04001C */ lw $a0, 0x1c($s0) +/* 058DDC 7F0242AC 0006402B */ sltu $t0, $zero, $a2 +/* 058DE0 7F0242B0 01003025 */ move $a2, $t0 +/* 058DE4 7F0242B4 E7A00010 */ swc1 $f0, 0x10($sp) +/* 058DE8 7F0242B8 24070000 */ li $a3, 0 +/* 058DEC 7F0242BC E7A40014 */ swc1 $f4, 0x14($sp) +/* 058DF0 7F0242C0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058DF4 7F0242C4 03192821 */ addu $a1, $t8, $t9 +/* 058DF8 7F0242C8 10000013 */ b .L7F024318 +/* 058DFC 7F0242CC 8E04001C */ lw $a0, 0x1c($s0) +.L7F0242D0: +/* 058E00 7F0242D0 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 058E04 7F0242D4 34C6CCCD */ ori $a2, $a2, 0xcccd +/* 058E08 7F0242D8 8FA60030 */ lw $a2, 0x30($sp) +/* 058E0C 7F0242DC 3C098007 */ lui $t1, %hi(ptr_animation_table) +/* 058E10 7F0242E0 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 058E14 7F0242E4 44813000 */ mtc1 $at, $f6 +/* 058E18 7F0242E8 8D299538 */ lw $t1, %lo(ptr_animation_table)($t1) +/* 058E1C 7F0242EC 3C0A0000 */ lui $t2, %hi(0x00005964) # $t2, 0 +/* 058E20 7F0242F0 254A5964 */ addiu $t2, %lo(0x00005964) # addiu $t2, $t2, 0x5964 +/* 058E24 7F0242F4 8E04001C */ lw $a0, 0x1c($s0) +/* 058E28 7F0242F8 0006582B */ sltu $t3, $zero, $a2 +/* 058E2C 7F0242FC 01603025 */ move $a2, $t3 +/* 058E30 7F024300 E7A00010 */ swc1 $f0, 0x10($sp) +/* 058E34 7F024304 3C0742A8 */ lui $a3, 0x42a8 +/* 058E38 7F024308 E7A60014 */ swc1 $f6, 0x14($sp) +/* 058E3C 7F02430C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058E40 7F024310 012A2821 */ addu $a1, $t1, $t2 +/* 058E44 7F024314 8E04001C */ lw $a0, 0x1c($s0) +.L7F024318: +/* 058E48 7F024318 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 058E4C 7F02431C 3C054341 */ lui $a1, 0x4341 +/* 058E50 7F024320 8FBF0024 */ lw $ra, 0x24($sp) +/* 058E54 7F024324 8FB00020 */ lw $s0, 0x20($sp) +/* 058E58 7F024328 27BD0028 */ addiu $sp, $sp, 0x28 +/* 058E5C 7F02432C 03E00008 */ jr $ra +/* 058E60 7F024330 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F024334(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F024334 +/* 058E64 7F024334 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 058E68 7F024338 AFBF0024 */ sw $ra, 0x24($sp) +/* 058E6C 7F02433C AFB00020 */ sw $s0, 0x20($sp) +/* 058E70 7F024340 AFA5003C */ sw $a1, 0x3c($sp) +/* 058E74 7F024344 00808025 */ move $s0, $a0 +/* 058E78 7F024348 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 058E7C 7F02434C 24050001 */ li $a1, 1 +/* 058E80 7F024350 02002025 */ move $a0, $s0 +/* 058E84 7F024354 00002825 */ move $a1, $zero +/* 058E88 7F024358 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 058E8C 7F02435C AFA20034 */ sw $v0, 0x34($sp) +/* 058E90 7F024360 8FA30034 */ lw $v1, 0x34($sp) +/* 058E94 7F024364 AFA0002C */ sw $zero, 0x2c($sp) +/* 058E98 7F024368 10600005 */ beqz $v1, .L7F024380 +/* 058E9C 7F02436C 00000000 */ nop +/* 058EA0 7F024370 14400003 */ bnez $v0, .L7F024380 +/* 058EA4 7F024374 240E0001 */ li $t6, 1 +/* 058EA8 7F024378 1000000D */ b .L7F0243B0 +/* 058EAC 7F02437C AFAE002C */ sw $t6, 0x2c($sp) +.L7F024380: +/* 058EB0 7F024380 10600003 */ beqz $v1, .L7F024390 +/* 058EB4 7F024384 00000000 */ nop +/* 058EB8 7F024388 14400005 */ bnez $v0, .L7F0243A0 +/* 058EBC 7F02438C 00000000 */ nop +.L7F024390: +/* 058EC0 7F024390 54600008 */ bnezl $v1, .L7F0243B4 +/* 058EC4 7F024394 3C053F19 */ lui $a1, 0x3f19 +/* 058EC8 7F024398 54400006 */ bnezl $v0, .L7F0243B4 +/* 058ECC 7F02439C 3C053F19 */ lui $a1, 0x3f19 +.L7F0243A0: +/* 058ED0 7F0243A0 0C002914 */ jal get_random_value +/* 058ED4 7F0243A4 00000000 */ nop +/* 058ED8 7F0243A8 304F0001 */ andi $t7, $v0, 1 +/* 058EDC 7F0243AC AFAF002C */ sw $t7, 0x2c($sp) +.L7F0243B0: +/* 058EE0 7F0243B0 3C053F19 */ lui $a1, (0x3F19999A >> 16) # lui $a1, 0x3f19 +.L7F0243B4: +/* 058EE4 7F0243B4 3C063F75 */ lui $a2, (0x3F75C290 >> 16) # lui $a2, 0x3f75 +/* 058EE8 7F0243B8 34C6C290 */ ori $a2, (0x3F75C290 & 0xFFFF) # ori $a2, $a2, 0xc290 +/* 058EEC 7F0243BC 34A5999A */ ori $a1, (0x3F19999A & 0xFFFF) # ori $a1, $a1, 0x999a +/* 058EF0 7F0243C0 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 058EF4 7F0243C4 02002025 */ move $a0, $s0 +/* 058EF8 7F0243C8 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 058EFC 7F0243CC 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 058F00 7F0243D0 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 058F04 7F0243D4 3C190000 */ lui $t9, %hi(0x00005D10) # $t9, 0 +/* 058F08 7F0243D8 27395D10 */ addiu $t9, %lo(0x00005D10) # addiu $t9, $t9, 0x5d10 +/* 058F0C 7F0243DC 8E04001C */ lw $a0, 0x1c($s0) +/* 058F10 7F0243E0 E7A00010 */ swc1 $f0, 0x10($sp) +/* 058F14 7F0243E4 8FA6002C */ lw $a2, 0x2c($sp) +/* 058F18 7F0243E8 3C074120 */ lui $a3, 0x4120 +/* 058F1C 7F0243EC 03192821 */ addu $a1, $t8, $t9 +/* 058F20 7F0243F0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 058F24 7F0243F4 E7A40014 */ swc1 $f4, 0x14($sp) +/* 058F28 7F0243F8 8E04001C */ lw $a0, 0x1c($s0) +/* 058F2C 7F0243FC 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 058F30 7F024400 3C054250 */ lui $a1, 0x4250 +/* 058F34 7F024404 8FBF0024 */ lw $ra, 0x24($sp) +/* 058F38 7F024408 8FB00020 */ lw $s0, 0x20($sp) +/* 058F3C 7F02440C 27BD0038 */ addiu $sp, $sp, 0x38 +/* 058F40 7F024410 03E00008 */ jr $ra +/* 058F44 7F024414 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_shuffle_feet(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DA0 +.word 0x3e32b8c3 /*0.17453294*/ +glabel D_80051DA4 +.word 0x40c37a15 /*6.1086526*/ +.text +glabel actor_shuffle_feet +/* 058F48 7F024418 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 058F4C 7F02441C AFBF001C */ sw $ra, 0x1c($sp) +/* 058F50 7F024420 AFB00018 */ sw $s0, 0x18($sp) +/* 058F54 7F024424 0FC0CB13 */ jal sub_GAME_7F032C4C +/* 058F58 7F024428 00808025 */ move $s0, $a0 +/* 058F5C 7F02442C 3C018005 */ lui $at, %hi(D_80051DA0) +/* 058F60 7F024430 C4241DA0 */ lwc1 $f4, %lo(D_80051DA0)($at) +/* 058F64 7F024434 3C018005 */ lui $at, %hi(D_80051DA4) +/* 058F68 7F024438 02002025 */ move $a0, $s0 +/* 058F6C 7F02443C 4604003C */ c.lt.s $f0, $f4 +/* 058F70 7F024440 00000000 */ nop +/* 058F74 7F024444 45010006 */ bc1t .L7F024460 +/* 058F78 7F024448 00000000 */ nop +/* 058F7C 7F02444C C4261DA4 */ lwc1 $f6, %lo(D_80051DA4)($at) +/* 058F80 7F024450 4600303C */ c.lt.s $f6, $f0 +/* 058F84 7F024454 00000000 */ nop +/* 058F88 7F024458 45000009 */ bc1f .L7F024480 +/* 058F8C 7F02445C 00000000 */ nop +.L7F024460: +/* 058F90 7F024460 0FC090CD */ jal sub_GAME_7F024334 +/* 058F94 7F024464 3C054180 */ lui $a1, 0x4180 +/* 058F98 7F024468 0FC0B461 */ jal sub_GAME_7F02D184 +/* 058F9C 7F02446C 02002025 */ move $a0, $s0 +/* 058FA0 7F024470 240E0012 */ li $t6, 18 +/* 058FA4 7F024474 A20E0007 */ sb $t6, 7($s0) +/* 058FA8 7F024478 10000007 */ b .L7F024498 +/* 058FAC 7F02447C A2000008 */ sb $zero, 8($s0) +.L7F024480: +/* 058FB0 7F024480 0FC0A717 */ jal check_if_actor_stationary +/* 058FB4 7F024484 02002025 */ move $a0, $s0 +/* 058FB8 7F024488 54400004 */ bnezl $v0, .L7F02449C +/* 058FBC 7F02448C 8FBF001C */ lw $ra, 0x1c($sp) +/* 058FC0 7F024490 0FC08F2E */ jal sub_GAME_7F023CB8 +/* 058FC4 7F024494 02002025 */ move $a0, $s0 +.L7F024498: +/* 058FC8 7F024498 8FBF001C */ lw $ra, 0x1c($sp) +.L7F02449C: +/* 058FCC 7F02449C 8FB00018 */ lw $s0, 0x18($sp) +/* 058FD0 7F0244A0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 058FD4 7F0244A4 03E00008 */ jr $ra +/* 058FD8 7F0244A8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_fawn_on_shoulder(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_fawn_on_shoulder +/* 058FDC 7F0244AC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 058FE0 7F0244B0 AFBF0024 */ sw $ra, 0x24($sp) +/* 058FE4 7F0244B4 AFB00020 */ sw $s0, 0x20($sp) +/* 058FE8 7F0244B8 0FC0B461 */ jal sub_GAME_7F02D184 +/* 058FEC 7F0244BC 00808025 */ move $s0, $a0 +/* 058FF0 7F0244C0 240E0012 */ li $t6, 18 +/* 058FF4 7F0244C4 A20E0007 */ sb $t6, 7($s0) +/* 058FF8 7F0244C8 0C002914 */ jal get_random_value +/* 058FFC 7F0244CC A2000008 */ sb $zero, 8($s0) +/* 059000 7F0244D0 3C053EB3 */ lui $a1, (0x3EB33333 >> 16) # lui $a1, 0x3eb3 +/* 059004 7F0244D4 3C063F0F */ lui $a2, (0x3F0F5C29 >> 16) # lui $a2, 0x3f0f +/* 059008 7F0244D8 34C65C29 */ ori $a2, (0x3F0F5C29 & 0xFFFF) # ori $a2, $a2, 0x5c29 +/* 05900C 7F0244DC 34A53333 */ ori $a1, (0x3EB33333 & 0xFFFF) # ori $a1, $a1, 0x3333 +/* 059010 7F0244E0 AFA20028 */ sw $v0, 0x28($sp) +/* 059014 7F0244E4 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 059018 7F0244E8 02002025 */ move $a0, $s0 +/* 05901C 7F0244EC 8FA60028 */ lw $a2, 0x28($sp) +/* 059020 7F0244F0 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 059024 7F0244F4 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059028 7F0244F8 44812000 */ mtc1 $at, $f4 +/* 05902C 7F0244FC 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 059030 7F024500 3C180000 */ lui $t8, %hi(0x00004384) # $t8, 0 +/* 059034 7F024504 27184384 */ addiu $t8, %lo(0x00004384) # addiu $t8, $t8, 0x4384 +/* 059038 7F024508 8E04001C */ lw $a0, 0x1c($s0) +/* 05903C 7F02450C 30D90001 */ andi $t9, $a2, 1 +/* 059040 7F024510 03203025 */ move $a2, $t9 +/* 059044 7F024514 E7A00010 */ swc1 $f0, 0x10($sp) +/* 059048 7F024518 24070000 */ li $a3, 0 +/* 05904C 7F02451C E7A40014 */ swc1 $f4, 0x14($sp) +/* 059050 7F024520 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 059054 7F024524 01F82821 */ addu $a1, $t7, $t8 +/* 059058 7F024528 8E04001C */ lw $a0, 0x1c($s0) +/* 05905C 7F02452C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059060 7F024530 3C0540E0 */ lui $a1, 0x40e0 +/* 059064 7F024534 8FBF0024 */ lw $ra, 0x24($sp) +/* 059068 7F024538 8FB00020 */ lw $s0, 0x20($sp) +/* 05906C 7F02453C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 059070 7F024540 03E00008 */ jr $ra +/* 059074 7F024544 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_look_flustered(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DA8 +.word 0x3f19999a /*0.60000002*/ +.text +glabel actor_look_flustered +/* 059078 7F024548 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 05907C 7F02454C AFBF0024 */ sw $ra, 0x24($sp) +/* 059080 7F024550 AFB00020 */ sw $s0, 0x20($sp) +/* 059084 7F024554 0C002914 */ jal get_random_value +/* 059088 7F024558 00808025 */ move $s0, $a0 +/* 05908C 7F02455C 24010003 */ li $at, 3 +/* 059090 7F024560 0041001B */ divu $zero, $v0, $at +/* 059094 7F024564 00007010 */ mfhi $t6 +/* 059098 7F024568 AFAE002C */ sw $t6, 0x2c($sp) +/* 05909C 7F02456C 0FC0B461 */ jal sub_GAME_7F02D184 +/* 0590A0 7F024570 02002025 */ move $a0, $s0 +/* 0590A4 7F024574 240F0012 */ li $t7, 18 +/* 0590A8 7F024578 A20F0007 */ sb $t7, 7($s0) +/* 0590AC 7F02457C 0C002914 */ jal get_random_value +/* 0590B0 7F024580 A2000008 */ sb $zero, 8($s0) +/* 0590B4 7F024584 3C018005 */ lui $at, %hi(D_80051DA8) +/* 0590B8 7F024588 C4241DA8 */ lwc1 $f4, %lo(D_80051DA8)($at) +/* 0590BC 7F02458C 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0590C0 7F024590 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 0590C4 7F024594 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 0590C8 7F024598 44813000 */ mtc1 $at, $f6 +/* 0590CC 7F02459C 3C190000 */ lui $t9, %hi(0x00005EF0) # $t9, 0 +/* 0590D0 7F0245A0 27395EF0 */ addiu $t9, %lo(0x00005EF0) # addiu $t9, $t9, 0x5ef0 +/* 0590D4 7F0245A4 8E04001C */ lw $a0, 0x1c($s0) +/* 0590D8 7F0245A8 30460001 */ andi $a2, $v0, 1 +/* 0590DC 7F0245AC 3C074188 */ lui $a3, 0x4188 +/* 0590E0 7F0245B0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0590E4 7F0245B4 03192821 */ addu $a1, $t8, $t9 +/* 0590E8 7F0245B8 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0590EC 7F0245BC E7A60014 */ swc1 $f6, 0x14($sp) +/* 0590F0 7F0245C0 8FA2002C */ lw $v0, 0x2c($sp) +/* 0590F4 7F0245C4 02002025 */ move $a0, $s0 +/* 0590F8 7F0245C8 3C054218 */ lui $a1, 0x4218 +/* 0590FC 7F0245CC 14400008 */ bnez $v0, .L7F0245F0 +/* 059100 7F0245D0 24010001 */ li $at, 1 +/* 059104 7F0245D4 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 059108 7F0245D8 3C064100 */ lui $a2, 0x4100 +/* 05910C 7F0245DC 44050000 */ mfc1 $a1, $f0 +/* 059110 7F0245E0 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059114 7F0245E4 8E04001C */ lw $a0, 0x1c($s0) +/* 059118 7F0245E8 10000013 */ b .L7F024638 +/* 05911C 7F0245EC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0245F0: +/* 059120 7F0245F0 1441000A */ bne $v0, $at, .L7F02461C +/* 059124 7F0245F4 02002025 */ move $a0, $s0 +/* 059128 7F0245F8 02002025 */ move $a0, $s0 +/* 05912C 7F0245FC 3C054284 */ lui $a1, 0x4284 +/* 059130 7F024600 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 059134 7F024604 3C064100 */ lui $a2, 0x4100 +/* 059138 7F024608 44050000 */ mfc1 $a1, $f0 +/* 05913C 7F02460C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059140 7F024610 8E04001C */ lw $a0, 0x1c($s0) +/* 059144 7F024614 10000008 */ b .L7F024638 +/* 059148 7F024618 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02461C: +/* 05914C 7F02461C 3C0542C0 */ lui $a1, 0x42c0 +/* 059150 7F024620 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 059154 7F024624 3C064100 */ lui $a2, 0x4100 +/* 059158 7F024628 44050000 */ mfc1 $a1, $f0 +/* 05915C 7F02462C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059160 7F024630 8E04001C */ lw $a0, 0x1c($s0) +/* 059164 7F024634 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024638: +/* 059168 7F024638 8FB00020 */ lw $s0, 0x20($sp) +/* 05916C 7F02463C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 059170 7F024640 03E00008 */ jr $ra +/* 059174 7F024644 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_throw_weapon_surrender(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_throw_weapon_surrender +/* 059178 7F024648 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 05917C 7F02464C AFBF0024 */ sw $ra, 0x24($sp) +/* 059180 7F024650 AFB00020 */ sw $s0, 0x20($sp) +/* 059184 7F024654 808E0007 */ lb $t6, 7($a0) +/* 059188 7F024658 24010010 */ li $at, 16 +/* 05918C 7F02465C 00808025 */ move $s0, $a0 +/* 059190 7F024660 51C10051 */ beql $t6, $at, .L7F0247A8 +/* 059194 7F024664 8FBF0024 */ lw $ra, 0x24($sp) +/* 059198 7F024668 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05919C 7F02466C 24050001 */ li $a1, 1 +/* 0591A0 7F024670 AFA2002C */ sw $v0, 0x2c($sp) +/* 0591A4 7F024674 02002025 */ move $a0, $s0 +/* 0591A8 7F024678 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0591AC 7F02467C 00002825 */ move $a1, $zero +/* 0591B0 7F024680 AFA20028 */ sw $v0, 0x28($sp) +/* 0591B4 7F024684 0FC0B461 */ jal sub_GAME_7F02D184 +/* 0591B8 7F024688 02002025 */ move $a0, $s0 +/* 0591BC 7F02468C 240F0010 */ li $t7, 16 +/* 0591C0 7F024690 A20F0007 */ sb $t7, 7($s0) +/* 0591C4 7F024694 8FB80028 */ lw $t8, 0x28($sp) +/* 0591C8 7F024698 8FB9002C */ lw $t9, 0x2c($sp) +/* 0591CC 7F02469C 17000003 */ bnez $t8, .L7F0246AC +/* 0591D0 7F0246A0 00000000 */ nop +/* 0591D4 7F0246A4 13200026 */ beqz $t9, .L7F024740 +/* 0591D8 7F0246A8 00000000 */ nop +.L7F0246AC: +/* 0591DC 7F0246AC 0C002914 */ jal get_random_value +/* 0591E0 7F0246B0 00000000 */ nop +/* 0591E4 7F0246B4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0591E8 7F0246B8 44812000 */ mtc1 $at, $f4 +/* 0591EC 7F0246BC 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0591F0 7F0246C0 3C088007 */ lui $t0, %hi(ptr_animation_table) +/* 0591F4 7F0246C4 8D089538 */ lw $t0, %lo(ptr_animation_table)($t0) +/* 0591F8 7F0246C8 44813000 */ mtc1 $at, $f6 +/* 0591FC 7F0246CC 3C090000 */ lui $t1, %hi(0x00004504) # $t1, 0 +/* 059200 7F0246D0 25294504 */ addiu $t1, %lo(0x00004504) # addiu $t1, $t1, 0x4504 +/* 059204 7F0246D4 8E04001C */ lw $a0, 0x1c($s0) +/* 059208 7F0246D8 30460001 */ andi $a2, $v0, 1 +/* 05920C 7F0246DC 24070000 */ li $a3, 0 +/* 059210 7F0246E0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 059214 7F0246E4 01092821 */ addu $a1, $t0, $t1 +/* 059218 7F0246E8 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05921C 7F0246EC E7A60014 */ swc1 $f6, 0x14($sp) +/* 059220 7F0246F0 8E04001C */ lw $a0, 0x1c($s0) +/* 059224 7F0246F4 3C054220 */ lui $a1, 0x4220 +/* 059228 7F0246F8 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 05922C 7F0246FC 3C064180 */ lui $a2, 0x4180 +/* 059230 7F024700 240A0010 */ li $t2, 16 +/* 059234 7F024704 A20A0008 */ sb $t2, 8($s0) +/* 059238 7F024708 8FAB002C */ lw $t3, 0x2c($sp) +/* 05923C 7F02470C 11600003 */ beqz $t3, .L7F02471C +/* 059240 7F024710 01602025 */ move $a0, $t3 +/* 059244 7F024714 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 059248 7F024718 24050002 */ li $a1, 2 +.L7F02471C: +/* 05924C 7F02471C 8FA40028 */ lw $a0, 0x28($sp) +/* 059250 7F024720 50800004 */ beql $a0, $zero, .L7F024734 +/* 059254 7F024724 960C0012 */ lhu $t4, 0x12($s0) +/* 059258 7F024728 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 05925C 7F02472C 24050002 */ li $a1, 2 +/* 059260 7F024730 960C0012 */ lhu $t4, 0x12($s0) +.L7F024734: +/* 059264 7F024734 358D0001 */ ori $t5, $t4, 1 +/* 059268 7F024738 10000018 */ b .L7F02479C +/* 05926C 7F02473C A60D0012 */ sh $t5, 0x12($s0) +.L7F024740: +/* 059270 7F024740 0C002914 */ jal get_random_value +/* 059274 7F024744 00000000 */ nop +/* 059278 7F024748 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05927C 7F02474C 44814000 */ mtc1 $at, $f8 +/* 059280 7F024750 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059284 7F024754 3C0E8007 */ lui $t6, %hi(ptr_animation_table) +/* 059288 7F024758 8DCE9538 */ lw $t6, %lo(ptr_animation_table)($t6) +/* 05928C 7F02475C 44815000 */ mtc1 $at, $f10 +/* 059290 7F024760 3C0F0000 */ lui $t7, %hi(0x00004384) # $t7, 0 +/* 059294 7F024764 25EF4384 */ addiu $t7, %lo(0x00004384) # addiu $t7, $t7, 0x4384 +/* 059298 7F024768 8E04001C */ lw $a0, 0x1c($s0) +/* 05929C 7F02476C 30460001 */ andi $a2, $v0, 1 +/* 0592A0 7F024770 24070000 */ li $a3, 0 +/* 0592A4 7F024774 E7A80010 */ swc1 $f8, 0x10($sp) +/* 0592A8 7F024778 01CF2821 */ addu $a1, $t6, $t7 +/* 0592AC 7F02477C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0592B0 7F024780 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 0592B4 7F024784 8E04001C */ lw $a0, 0x1c($s0) +/* 0592B8 7F024788 3C0541F0 */ lui $a1, 0x41f0 +/* 0592BC 7F02478C 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 0592C0 7F024790 3C064180 */ lui $a2, 0x4180 +/* 0592C4 7F024794 24180010 */ li $t8, 16 +/* 0592C8 7F024798 A2180008 */ sb $t8, 8($s0) +.L7F02479C: +/* 0592CC 7F02479C 0FC086C8 */ jal sub_GAME_7F021B20 +/* 0592D0 7F0247A0 02002025 */ move $a0, $s0 +/* 0592D4 7F0247A4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0247A8: +/* 0592D8 7F0247A8 8FB00020 */ lw $s0, 0x20($sp) +/* 0592DC 7F0247AC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0592E0 7F0247B0 03E00008 */ jr $ra +/* 0592E4 7F0247B4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_fade_away(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_fade_away +/* 0592E8 7F0247B8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0592EC 7F0247BC AFBF0014 */ sw $ra, 0x14($sp) +/* 0592F0 7F0247C0 808E0007 */ lb $t6, 7($a0) +/* 0592F4 7F0247C4 24010005 */ li $at, 5 +/* 0592F8 7F0247C8 51C1000A */ beql $t6, $at, .L7F0247F4 +/* 0592FC 7F0247CC 8FBF0014 */ lw $ra, 0x14($sp) +/* 059300 7F0247D0 0FC0B461 */ jal sub_GAME_7F02D184 +/* 059304 7F0247D4 AFA40018 */ sw $a0, 0x18($sp) +/* 059308 7F0247D8 8FA40018 */ lw $a0, 0x18($sp) +/* 05930C 7F0247DC 240F0005 */ li $t7, 5 +/* 059310 7F0247E0 2418FFFF */ li $t8, -1 +/* 059314 7F0247E4 A08F0007 */ sb $t7, 7($a0) +/* 059318 7F0247E8 AC98002C */ sw $t8, 0x2c($a0) +/* 05931C 7F0247EC A0800008 */ sb $zero, 8($a0) +/* 059320 7F0247F0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0247F4: +/* 059324 7F0247F4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 059328 7F0247F8 03E00008 */ jr $ra +/* 05932C 7F0247FC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F024800(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F024800 +/* 059330 7F024800 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 059334 7F024804 AFBF0024 */ sw $ra, 0x24($sp) +/* 059338 7F024808 AFB00020 */ sw $s0, 0x20($sp) +/* 05933C 7F02480C AFA5003C */ sw $a1, 0x3c($sp) +/* 059340 7F024810 00808025 */ move $s0, $a0 +/* 059344 7F024814 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 059348 7F024818 24050001 */ li $a1, 1 +/* 05934C 7F02481C AFA20034 */ sw $v0, 0x34($sp) +/* 059350 7F024820 02002025 */ move $a0, $s0 +/* 059354 7F024824 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 059358 7F024828 00002825 */ move $a1, $zero +/* 05935C 7F02482C 8FA40034 */ lw $a0, 0x34($sp) +/* 059360 7F024830 AFA20030 */ sw $v0, 0x30($sp) +/* 059364 7F024834 AFA0002C */ sw $zero, 0x2c($sp) +/* 059368 7F024838 1080000A */ beqz $a0, .L7F024864 +/* 05936C 7F02483C 00001825 */ move $v1, $zero +/* 059370 7F024840 10400008 */ beqz $v0, .L7F024864 +/* 059374 7F024844 00000000 */ nop +/* 059378 7F024848 0C002914 */ jal get_random_value +/* 05937C 7F02484C 00000000 */ nop +/* 059380 7F024850 304E0001 */ andi $t6, $v0, 1 +/* 059384 7F024854 0C002914 */ jal get_random_value +/* 059388 7F024858 AFAE002C */ sw $t6, 0x2c($sp) +/* 05938C 7F02485C 10000013 */ b .L7F0248AC +/* 059390 7F024860 30430001 */ andi $v1, $v0, 1 +.L7F024864: +/* 059394 7F024864 0FC08E44 */ jal check_if_item_held_like_pistol +/* 059398 7F024868 AFA30028 */ sw $v1, 0x28($sp) +/* 05939C 7F02486C 1440000F */ bnez $v0, .L7F0248AC +/* 0593A0 7F024870 8FA30028 */ lw $v1, 0x28($sp) +/* 0593A4 7F024874 8FA40030 */ lw $a0, 0x30($sp) +/* 0593A8 7F024878 0FC08E44 */ jal check_if_item_held_like_pistol +/* 0593AC 7F02487C AFA30028 */ sw $v1, 0x28($sp) +/* 0593B0 7F024880 1440000A */ bnez $v0, .L7F0248AC +/* 0593B4 7F024884 8FA30028 */ lw $v1, 0x28($sp) +/* 0593B8 7F024888 8FA20034 */ lw $v0, 0x34($sp) +/* 0593BC 7F02488C 8FAF0030 */ lw $t7, 0x30($sp) +/* 0593C0 7F024890 14400003 */ bnez $v0, .L7F0248A0 +/* 0593C4 7F024894 0002C02B */ sltu $t8, $zero, $v0 +/* 0593C8 7F024898 51E00005 */ beql $t7, $zero, .L7F0248B0 +/* 0593CC 7F02489C 02002025 */ move $a0, $s0 +.L7F0248A0: +/* 0593D0 7F0248A0 0C002914 */ jal get_random_value +/* 0593D4 7F0248A4 AFB8002C */ sw $t8, 0x2c($sp) +/* 0593D8 7F0248A8 30430001 */ andi $v1, $v0, 1 +.L7F0248AC: +/* 0593DC 7F0248AC 02002025 */ move $a0, $s0 +.L7F0248B0: +/* 0593E0 7F0248B0 0FC0B461 */ jal sub_GAME_7F02D184 +/* 0593E4 7F0248B4 AFA30028 */ sw $v1, 0x28($sp) +/* 0593E8 7F0248B8 8FA30028 */ lw $v1, 0x28($sp) +/* 0593EC 7F0248BC 2419000B */ li $t9, 11 +/* 0593F0 7F0248C0 A2190007 */ sb $t9, 7($s0) +/* 0593F4 7F0248C4 14600033 */ bnez $v1, .L7F024994 +/* 0593F8 7F0248C8 A2000008 */ sb $zero, 8($s0) +/* 0593FC 7F0248CC 8FA8003C */ lw $t0, 0x3c($sp) +/* 059400 7F0248D0 3C053F0C */ lui $a1, (0x3F0CCCCD >> 16) # lui $a1, 0x3f0c +/* 059404 7F0248D4 34A5CCCD */ ori $a1, (0x3F0CCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 059408 7F0248D8 11000019 */ beqz $t0, .L7F024940 +/* 05940C 7F0248DC 02002025 */ move $a0, $s0 +/* 059410 7F0248E0 3C053F0C */ lui $a1, (0x3F0CCCCD >> 16) # lui $a1, 0x3f0c +/* 059414 7F0248E4 3C063F61 */ lui $a2, (0x3F6147AF >> 16) # lui $a2, 0x3f61 +/* 059418 7F0248E8 34C647AF */ ori $a2, (0x3F6147AF & 0xFFFF) # ori $a2, $a2, 0x47af +/* 05941C 7F0248EC 34A5CCCD */ ori $a1, (0x3F0CCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 059420 7F0248F0 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 059424 7F0248F4 02002025 */ move $a0, $s0 +/* 059428 7F0248F8 3C098007 */ lui $t1, %hi(ptr_animation_table) +/* 05942C 7F0248FC 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059430 7F024900 44812000 */ mtc1 $at, $f4 +/* 059434 7F024904 8D299538 */ lw $t1, %lo(ptr_animation_table)($t1) +/* 059438 7F024908 3C0A0000 */ lui $t2, %hi(0x00003D9C) # $t2, 0 +/* 05943C 7F02490C 254A3D9C */ addiu $t2, %lo(0x00003D9C) # addiu $t2, $t2, 0x3d9c +/* 059440 7F024910 8E04001C */ lw $a0, 0x1c($s0) +/* 059444 7F024914 E7A00010 */ swc1 $f0, 0x10($sp) +/* 059448 7F024918 00003025 */ move $a2, $zero +/* 05944C 7F02491C 3C0740A0 */ lui $a3, 0x40a0 +/* 059450 7F024920 E7A40014 */ swc1 $f4, 0x14($sp) +/* 059454 7F024924 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 059458 7F024928 012A2821 */ addu $a1, $t1, $t2 +/* 05945C 7F02492C 8E04001C */ lw $a0, 0x1c($s0) +/* 059460 7F024930 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059464 7F024934 3C0541D8 */ lui $a1, 0x41d8 +/* 059468 7F024938 1000004E */ b .L7F024A74 +/* 05946C 7F02493C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024940: +/* 059470 7F024940 3C063F61 */ lui $a2, (0x3F6147AF >> 16) # lui $a2, 0x3f61 +/* 059474 7F024944 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 059478 7F024948 34C647AF */ ori $a2, (0x3F6147AF & 0xFFFF) # ori $a2, $a2, 0x47af +/* 05947C 7F02494C 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 059480 7F024950 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059484 7F024954 44813000 */ mtc1 $at, $f6 +/* 059488 7F024958 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 05948C 7F02495C 3C0C0000 */ lui $t4, %hi(0x00003D9C) # $t4, 0 +/* 059490 7F024960 258C3D9C */ addiu $t4, %lo(0x00003D9C) # addiu $t4, $t4, 0x3d9c +/* 059494 7F024964 8E04001C */ lw $a0, 0x1c($s0) +/* 059498 7F024968 E7A00010 */ swc1 $f0, 0x10($sp) +/* 05949C 7F02496C 24060001 */ li $a2, 1 +/* 0594A0 7F024970 3C0740A0 */ lui $a3, 0x40a0 +/* 0594A4 7F024974 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0594A8 7F024978 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0594AC 7F02497C 016C2821 */ addu $a1, $t3, $t4 +/* 0594B0 7F024980 8E04001C */ lw $a0, 0x1c($s0) +/* 0594B4 7F024984 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0594B8 7F024988 3C0541D8 */ lui $a1, 0x41d8 +/* 0594BC 7F02498C 10000039 */ b .L7F024A74 +/* 0594C0 7F024990 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024994: +/* 0594C4 7F024994 8FA2003C */ lw $v0, 0x3c($sp) +/* 0594C8 7F024998 8FAD002C */ lw $t5, 0x2c($sp) +/* 0594CC 7F02499C 10400003 */ beqz $v0, .L7F0249AC +/* 0594D0 7F0249A0 00000000 */ nop +/* 0594D4 7F0249A4 51A00005 */ beql $t5, $zero, .L7F0249BC +/* 0594D8 7F0249A8 3C053F33 */ lui $a1, 0x3f33 +.L7F0249AC: +/* 0594DC 7F0249AC 1440001A */ bnez $v0, .L7F024A18 +/* 0594E0 7F0249B0 8FAE002C */ lw $t6, 0x2c($sp) +/* 0594E4 7F0249B4 11C00018 */ beqz $t6, .L7F024A18 +/* 0594E8 7F0249B8 3C053F33 */ lui $a1, (0x3F333333 >> 16) # lui $a1, 0x3f33 +.L7F0249BC: +/* 0594EC 7F0249BC 3C063F8F */ lui $a2, (0x3F8F5C29 >> 16) # lui $a2, 0x3f8f +/* 0594F0 7F0249C0 34C65C29 */ ori $a2, (0x3F8F5C29 & 0xFFFF) # ori $a2, $a2, 0x5c29 +/* 0594F4 7F0249C4 34A53333 */ ori $a1, (0x3F333333 & 0xFFFF) # ori $a1, $a1, 0x3333 +/* 0594F8 7F0249C8 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0594FC 7F0249CC 02002025 */ move $a0, $s0 +/* 059500 7F0249D0 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 059504 7F0249D4 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059508 7F0249D8 44814000 */ mtc1 $at, $f8 +/* 05950C 7F0249DC 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 059510 7F0249E0 3C180000 */ lui $t8, %hi(0x00005554) # $t8, 0 +/* 059514 7F0249E4 27185554 */ addiu $t8, %lo(0x00005554) # addiu $t8, $t8, 0x5554 +/* 059518 7F0249E8 8E04001C */ lw $a0, 0x1c($s0) +/* 05951C 7F0249EC E7A00010 */ swc1 $f0, 0x10($sp) +/* 059520 7F0249F0 8FA6002C */ lw $a2, 0x2c($sp) +/* 059524 7F0249F4 3C0740A0 */ lui $a3, 0x40a0 +/* 059528 7F0249F8 E7A80014 */ swc1 $f8, 0x14($sp) +/* 05952C 7F0249FC 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 059530 7F024A00 01F82821 */ addu $a1, $t7, $t8 +/* 059534 7F024A04 8E04001C */ lw $a0, 0x1c($s0) +/* 059538 7F024A08 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05953C 7F024A0C 3C054208 */ lui $a1, 0x4208 +/* 059540 7F024A10 10000018 */ b .L7F024A74 +/* 059544 7F024A14 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024A18: +/* 059548 7F024A18 3C053F33 */ lui $a1, (0x3F333333 >> 16) # lui $a1, 0x3f33 +/* 05954C 7F024A1C 3C063F8F */ lui $a2, (0x3F8F5C29 >> 16) # lui $a2, 0x3f8f +/* 059550 7F024A20 34C65C29 */ ori $a2, (0x3F8F5C29 & 0xFFFF) # ori $a2, $a2, 0x5c29 +/* 059554 7F024A24 34A53333 */ ori $a1, (0x3F333333 & 0xFFFF) # ori $a1, $a1, 0x3333 +/* 059558 7F024A28 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 05955C 7F024A2C 02002025 */ move $a0, $s0 +/* 059560 7F024A30 3C198007 */ lui $t9, %hi(ptr_animation_table) +/* 059564 7F024A34 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059568 7F024A38 44815000 */ mtc1 $at, $f10 +/* 05956C 7F024A3C 8F399538 */ lw $t9, %lo(ptr_animation_table)($t9) +/* 059570 7F024A40 3C080000 */ lui $t0, %hi(0x000054A0) # $t0, 0 +/* 059574 7F024A44 250854A0 */ addiu $t0, %lo(0x000054A0) # addiu $t0, $t0, 0x54a0 +/* 059578 7F024A48 8E04001C */ lw $a0, 0x1c($s0) +/* 05957C 7F024A4C E7A00010 */ swc1 $f0, 0x10($sp) +/* 059580 7F024A50 8FA6002C */ lw $a2, 0x2c($sp) +/* 059584 7F024A54 3C0740A0 */ lui $a3, 0x40a0 +/* 059588 7F024A58 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 05958C 7F024A5C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 059590 7F024A60 03282821 */ addu $a1, $t9, $t0 +/* 059594 7F024A64 8E04001C */ lw $a0, 0x1c($s0) +/* 059598 7F024A68 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05959C 7F024A6C 3C054200 */ lui $a1, 0x4200 +/* 0595A0 7F024A70 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024A74: +/* 0595A4 7F024A74 8FB00020 */ lw $s0, 0x20($sp) +/* 0595A8 7F024A78 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0595AC 7F024A7C 03E00008 */ jr $ra +/* 0595B0 7F024A80 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F024A84(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F024A84 +/* 0595B4 7F024A84 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0595B8 7F024A88 AFBF0024 */ sw $ra, 0x24($sp) +/* 0595BC 7F024A8C AFB00020 */ sw $s0, 0x20($sp) +/* 0595C0 7F024A90 AFA5003C */ sw $a1, 0x3c($sp) +/* 0595C4 7F024A94 00808025 */ move $s0, $a0 +/* 0595C8 7F024A98 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0595CC 7F024A9C 24050001 */ li $a1, 1 +/* 0595D0 7F024AA0 02002025 */ move $a0, $s0 +/* 0595D4 7F024AA4 00002825 */ move $a1, $zero +/* 0595D8 7F024AA8 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0595DC 7F024AAC AFA20034 */ sw $v0, 0x34($sp) +/* 0595E0 7F024AB0 8FA60034 */ lw $a2, 0x34($sp) +/* 0595E4 7F024AB4 00402825 */ move $a1, $v0 +/* 0595E8 7F024AB8 AFA0002C */ sw $zero, 0x2c($sp) +/* 0595EC 7F024ABC 10C00005 */ beqz $a2, .L7F024AD4 +/* 0595F0 7F024AC0 00000000 */ nop +/* 0595F4 7F024AC4 14400003 */ bnez $v0, .L7F024AD4 +/* 0595F8 7F024AC8 240E0001 */ li $t6, 1 +/* 0595FC 7F024ACC 10000015 */ b .L7F024B24 +/* 059600 7F024AD0 AFAE002C */ sw $t6, 0x2c($sp) +.L7F024AD4: +/* 059604 7F024AD4 10C00003 */ beqz $a2, .L7F024AE4 +/* 059608 7F024AD8 00000000 */ nop +/* 05960C 7F024ADC 1440000D */ bnez $v0, .L7F024B14 +/* 059610 7F024AE0 00000000 */ nop +.L7F024AE4: +/* 059614 7F024AE4 14C00003 */ bnez $a2, .L7F024AF4 +/* 059618 7F024AE8 00C02025 */ move $a0, $a2 +/* 05961C 7F024AEC 10400009 */ beqz $v0, .L7F024B14 +/* 059620 7F024AF0 00000000 */ nop +.L7F024AF4: +/* 059624 7F024AF4 0FC08E44 */ jal check_if_item_held_like_pistol +/* 059628 7F024AF8 AFA50030 */ sw $a1, 0x30($sp) +/* 05962C 7F024AFC 14400005 */ bnez $v0, .L7F024B14 +/* 059630 7F024B00 8FA50030 */ lw $a1, 0x30($sp) +/* 059634 7F024B04 0FC08E44 */ jal check_if_item_held_like_pistol +/* 059638 7F024B08 00A02025 */ move $a0, $a1 +/* 05963C 7F024B0C 10400005 */ beqz $v0, .L7F024B24 +/* 059640 7F024B10 00000000 */ nop +.L7F024B14: +/* 059644 7F024B14 0C002914 */ jal get_random_value +/* 059648 7F024B18 00000000 */ nop +/* 05964C 7F024B1C 304F0001 */ andi $t7, $v0, 1 +/* 059650 7F024B20 AFAF002C */ sw $t7, 0x2c($sp) +.L7F024B24: +/* 059654 7F024B24 0FC0B461 */ jal sub_GAME_7F02D184 +/* 059658 7F024B28 02002025 */ move $a0, $s0 +/* 05965C 7F024B2C 8FA2003C */ lw $v0, 0x3c($sp) +/* 059660 7F024B30 2418000C */ li $t8, 12 +/* 059664 7F024B34 A2180007 */ sb $t8, 7($s0) +/* 059668 7F024B38 10400004 */ beqz $v0, .L7F024B4C +/* 05966C 7F024B3C A2000008 */ sb $zero, 8($s0) +/* 059670 7F024B40 8FB9002C */ lw $t9, 0x2c($sp) +/* 059674 7F024B44 13200005 */ beqz $t9, .L7F024B5C +/* 059678 7F024B48 00000000 */ nop +.L7F024B4C: +/* 05967C 7F024B4C 14400035 */ bnez $v0, .L7F024C24 +/* 059680 7F024B50 8FA8002C */ lw $t0, 0x2c($sp) +/* 059684 7F024B54 11000033 */ beqz $t0, .L7F024C24 +/* 059688 7F024B58 00000000 */ nop +.L7F024B5C: +/* 05968C 7F024B5C 0C002914 */ jal get_random_value +/* 059690 7F024B60 00000000 */ nop +/* 059694 7F024B64 30490001 */ andi $t1, $v0, 1 +/* 059698 7F024B68 11200018 */ beqz $t1, .L7F024BCC +/* 05969C 7F024B6C 02002025 */ move $a0, $s0 +/* 0596A0 7F024B70 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 0596A4 7F024B74 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0596A8 7F024B78 02002025 */ move $a0, $s0 +/* 0596AC 7F024B7C 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0596B0 7F024B80 3C053F00 */ lui $a1, 0x3f00 +/* 0596B4 7F024B84 3C0A8007 */ lui $t2, %hi(ptr_animation_table) +/* 0596B8 7F024B88 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0596BC 7F024B8C 44812000 */ mtc1 $at, $f4 +/* 0596C0 7F024B90 8D4A9538 */ lw $t2, %lo(ptr_animation_table)($t2) +/* 0596C4 7F024B94 3C0B0000 */ lui $t3, %hi(0x000047BC) # $t3, 0 +/* 0596C8 7F024B98 256B47BC */ addiu $t3, %lo(0x000047BC) # addiu $t3, $t3, 0x47bc +/* 0596CC 7F024B9C 8E04001C */ lw $a0, 0x1c($s0) +/* 0596D0 7F024BA0 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0596D4 7F024BA4 8FA6002C */ lw $a2, 0x2c($sp) +/* 0596D8 7F024BA8 3C0740A0 */ lui $a3, 0x40a0 +/* 0596DC 7F024BAC E7A40014 */ swc1 $f4, 0x14($sp) +/* 0596E0 7F024BB0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0596E4 7F024BB4 014B2821 */ addu $a1, $t2, $t3 +/* 0596E8 7F024BB8 8E04001C */ lw $a0, 0x1c($s0) +/* 0596EC 7F024BBC 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0596F0 7F024BC0 3C054244 */ lui $a1, 0x4244 +/* 0596F4 7F024BC4 10000048 */ b .L7F024CE8 +/* 0596F8 7F024BC8 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024BCC: +/* 0596FC 7F024BCC 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 059700 7F024BD0 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 059704 7F024BD4 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 059708 7F024BD8 3C053F00 */ lui $a1, 0x3f00 +/* 05970C 7F024BDC 3C0C8007 */ lui $t4, %hi(ptr_animation_table) +/* 059710 7F024BE0 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059714 7F024BE4 44813000 */ mtc1 $at, $f6 +/* 059718 7F024BE8 8D8C9538 */ lw $t4, %lo(ptr_animation_table)($t4) +/* 05971C 7F024BEC 3C0D0000 */ lui $t5, %hi(0x00004A40) # $t5, 0 +/* 059720 7F024BF0 25AD4A40 */ addiu $t5, %lo(0x00004A40) # addiu $t5, $t5, 0x4a40 +/* 059724 7F024BF4 8E04001C */ lw $a0, 0x1c($s0) +/* 059728 7F024BF8 E7A00010 */ swc1 $f0, 0x10($sp) +/* 05972C 7F024BFC 8FA6002C */ lw $a2, 0x2c($sp) +/* 059730 7F024C00 3C074302 */ lui $a3, 0x4302 +/* 059734 7F024C04 E7A60014 */ swc1 $f6, 0x14($sp) +/* 059738 7F024C08 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05973C 7F024C0C 018D2821 */ addu $a1, $t4, $t5 +/* 059740 7F024C10 8E04001C */ lw $a0, 0x1c($s0) +/* 059744 7F024C14 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059748 7F024C18 3C05432D */ lui $a1, 0x432d +/* 05974C 7F024C1C 10000032 */ b .L7F024CE8 +/* 059750 7F024C20 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024C24: +/* 059754 7F024C24 0C002914 */ jal get_random_value +/* 059758 7F024C28 00000000 */ nop +/* 05975C 7F024C2C 304E0001 */ andi $t6, $v0, 1 +/* 059760 7F024C30 11C00018 */ beqz $t6, .L7F024C94 +/* 059764 7F024C34 02002025 */ move $a0, $s0 +/* 059768 7F024C38 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 05976C 7F024C3C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 059770 7F024C40 02002025 */ move $a0, $s0 +/* 059774 7F024C44 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 059778 7F024C48 3C053F00 */ lui $a1, 0x3f00 +/* 05977C 7F024C4C 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 059780 7F024C50 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059784 7F024C54 44814000 */ mtc1 $at, $f8 +/* 059788 7F024C58 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 05978C 7F024C5C 3C180000 */ lui $t8, %hi(0x00004A40) # $t8, 0 +/* 059790 7F024C60 27184A40 */ addiu $t8, %lo(0x00004A40) # addiu $t8, $t8, 0x4a40 +/* 059794 7F024C64 8E04001C */ lw $a0, 0x1c($s0) +/* 059798 7F024C68 E7A00010 */ swc1 $f0, 0x10($sp) +/* 05979C 7F024C6C 8FA6002C */ lw $a2, 0x2c($sp) +/* 0597A0 7F024C70 3C0741A0 */ lui $a3, 0x41a0 +/* 0597A4 7F024C74 E7A80014 */ swc1 $f8, 0x14($sp) +/* 0597A8 7F024C78 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0597AC 7F024C7C 01F82821 */ addu $a1, $t7, $t8 +/* 0597B0 7F024C80 8E04001C */ lw $a0, 0x1c($s0) +/* 0597B4 7F024C84 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0597B8 7F024C88 3C05427C */ lui $a1, 0x427c +/* 0597BC 7F024C8C 10000016 */ b .L7F024CE8 +/* 0597C0 7F024C90 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024C94: +/* 0597C4 7F024C94 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 0597C8 7F024C98 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0597CC 7F024C9C 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0597D0 7F024CA0 3C053F00 */ lui $a1, 0x3f00 +/* 0597D4 7F024CA4 3C198007 */ lui $t9, %hi(ptr_animation_table) +/* 0597D8 7F024CA8 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0597DC 7F024CAC 44815000 */ mtc1 $at, $f10 +/* 0597E0 7F024CB0 8F399538 */ lw $t9, %lo(ptr_animation_table)($t9) +/* 0597E4 7F024CB4 3C080000 */ lui $t0, %hi(0x000047BC) # $t0, 0 +/* 0597E8 7F024CB8 250847BC */ addiu $t0, %lo(0x000047BC) # addiu $t0, $t0, 0x47bc +/* 0597EC 7F024CBC 8E04001C */ lw $a0, 0x1c($s0) +/* 0597F0 7F024CC0 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0597F4 7F024CC4 8FA6002C */ lw $a2, 0x2c($sp) +/* 0597F8 7F024CC8 3C0742B6 */ lui $a3, 0x42b6 +/* 0597FC 7F024CCC E7AA0014 */ swc1 $f10, 0x14($sp) +/* 059800 7F024CD0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 059804 7F024CD4 03282821 */ addu $a1, $t9, $t0 +/* 059808 7F024CD8 8E04001C */ lw $a0, 0x1c($s0) +/* 05980C 7F024CDC 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059810 7F024CE0 3C054308 */ lui $a1, 0x4308 +/* 059814 7F024CE4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024CE8: +/* 059818 7F024CE8 8FB00020 */ lw $s0, 0x20($sp) +/* 05981C 7F024CEC 27BD0038 */ addiu $sp, $sp, 0x38 +/* 059820 7F024CF0 03E00008 */ jr $ra +/* 059824 7F024CF4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F024CF8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F024CF8 +/* 059828 7F024CF8 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 05982C 7F024CFC AFBF0024 */ sw $ra, 0x24($sp) +/* 059830 7F024D00 AFB00020 */ sw $s0, 0x20($sp) +/* 059834 7F024D04 8C820018 */ lw $v0, 0x18($a0) +/* 059838 7F024D08 C4A60000 */ lwc1 $f6, ($a1) +/* 05983C 7F024D0C C4AA0008 */ lwc1 $f10, 8($a1) +/* 059840 7F024D10 C4440008 */ lwc1 $f4, 8($v0) +/* 059844 7F024D14 C4480010 */ lwc1 $f8, 0x10($v0) +/* 059848 7F024D18 00808025 */ move $s0, $a0 +/* 05984C 7F024D1C 46062001 */ sub.s $f0, $f4, $f6 +/* 059850 7F024D20 AFA5004C */ sw $a1, 0x4c($sp) +/* 059854 7F024D24 460A4081 */ sub.s $f2, $f8, $f10 +/* 059858 7F024D28 46000402 */ mul.s $f16, $f0, $f0 +/* 05985C 7F024D2C 00000000 */ nop +/* 059860 7F024D30 46021482 */ mul.s $f18, $f2, $f2 +/* 059864 7F024D34 0C007DF8 */ jal sqrtf +/* 059868 7F024D38 46128300 */ add.s $f12, $f16, $f18 +/* 05986C 7F024D3C E7A00038 */ swc1 $f0, 0x38($sp) +/* 059870 7F024D40 02002025 */ move $a0, $s0 +/* 059874 7F024D44 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 059878 7F024D48 24050001 */ li $a1, 1 +/* 05987C 7F024D4C 02002025 */ move $a0, $s0 +/* 059880 7F024D50 00002825 */ move $a1, $zero +/* 059884 7F024D54 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 059888 7F024D58 AFA20034 */ sw $v0, 0x34($sp) +/* 05988C 7F024D5C 8FA70034 */ lw $a3, 0x34($sp) +/* 059890 7F024D60 240E0001 */ li $t6, 1 +/* 059894 7F024D64 00402825 */ move $a1, $v0 +/* 059898 7F024D68 10E00003 */ beqz $a3, .L7F024D78 +/* 05989C 7F024D6C AFAE002C */ sw $t6, 0x2c($sp) +/* 0598A0 7F024D70 14400005 */ bnez $v0, .L7F024D88 +/* 0598A4 7F024D74 00000000 */ nop +.L7F024D78: +/* 0598A8 7F024D78 14E00007 */ bnez $a3, .L7F024D98 +/* 0598AC 7F024D7C 00E02025 */ move $a0, $a3 +/* 0598B0 7F024D80 54400006 */ bnezl $v0, .L7F024D9C +/* 0598B4 7F024D84 AFA50030 */ sw $a1, 0x30($sp) +.L7F024D88: +/* 0598B8 7F024D88 0C002914 */ jal get_random_value +/* 0598BC 7F024D8C AFA0002C */ sw $zero, 0x2c($sp) +/* 0598C0 7F024D90 10000010 */ b .L7F024DD4 +/* 0598C4 7F024D94 30460001 */ andi $a2, $v0, 1 +.L7F024D98: +/* 0598C8 7F024D98 AFA50030 */ sw $a1, 0x30($sp) +.L7F024D9C: +/* 0598CC 7F024D9C 0FC08E44 */ jal check_if_item_held_like_pistol +/* 0598D0 7F024DA0 AFA70034 */ sw $a3, 0x34($sp) +/* 0598D4 7F024DA4 8FA50030 */ lw $a1, 0x30($sp) +/* 0598D8 7F024DA8 14400006 */ bnez $v0, .L7F024DC4 +/* 0598DC 7F024DAC 8FA70034 */ lw $a3, 0x34($sp) +/* 0598E0 7F024DB0 00A02025 */ move $a0, $a1 +/* 0598E4 7F024DB4 0FC08E44 */ jal check_if_item_held_like_pistol +/* 0598E8 7F024DB8 AFA70034 */ sw $a3, 0x34($sp) +/* 0598EC 7F024DBC 10400004 */ beqz $v0, .L7F024DD0 +/* 0598F0 7F024DC0 8FA70034 */ lw $a3, 0x34($sp) +.L7F024DC4: +/* 0598F4 7F024DC4 AFA0002C */ sw $zero, 0x2c($sp) +/* 0598F8 7F024DC8 10000002 */ b .L7F024DD4 +/* 0598FC 7F024DCC 0007302B */ sltu $a2, $zero, $a3 +.L7F024DD0: +/* 059900 7F024DD0 0007302B */ sltu $a2, $zero, $a3 +.L7F024DD4: +/* 059904 7F024DD4 02002025 */ move $a0, $s0 +/* 059908 7F024DD8 0FC0B461 */ jal sub_GAME_7F02D184 +/* 05990C 7F024DDC AFA60028 */ sw $a2, 0x28($sp) +/* 059910 7F024DE0 8FA2004C */ lw $v0, 0x4c($sp) +/* 059914 7F024DE4 8FA60028 */ lw $a2, 0x28($sp) +/* 059918 7F024DE8 240F000D */ li $t7, 13 +/* 05991C 7F024DEC A20F0007 */ sb $t7, 7($s0) +/* 059920 7F024DF0 C4440000 */ lwc1 $f4, ($v0) +/* 059924 7F024DF4 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 059928 7F024DF8 44800000 */ mtc1 $zero, $f0 +/* 05992C 7F024DFC E604002C */ swc1 $f4, 0x2c($s0) +/* 059930 7F024E00 C4460004 */ lwc1 $f6, 4($v0) +/* 059934 7F024E04 44815000 */ mtc1 $at, $f10 +/* 059938 7F024E08 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05993C 7F024E0C E6060030 */ swc1 $f6, 0x30($s0) +/* 059940 7F024E10 C4480008 */ lwc1 $f8, 8($v0) +/* 059944 7F024E14 A2000008 */ sb $zero, 8($s0) +/* 059948 7F024E18 E6000040 */ swc1 $f0, 0x40($s0) +/* 05994C 7F024E1C E60A0038 */ swc1 $f10, 0x38($s0) +/* 059950 7F024E20 E6080034 */ swc1 $f8, 0x34($s0) +/* 059954 7F024E24 8FB8002C */ lw $t8, 0x2c($sp) +/* 059958 7F024E28 5300001B */ beql $t8, $zero, .L7F024E98 +/* 05995C 7F024E2C 44811000 */ mtc1 $at, $f2 +/* 059960 7F024E30 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 059964 7F024E34 44811000 */ mtc1 $at, $f2 +/* 059968 7F024E38 3C018003 */ lui $at, %hi(D_80030988) # -0.000000 +/* 05996C 7F024E3C C4320988 */ lwc1 $f18, %lo(D_80030988)($at) +/* 059970 7F024E40 C7B00038 */ lwc1 $f16, 0x38($sp) +/* 059974 7F024E44 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059978 7F024E48 46029102 */ mul.s $f4, $f18, $f2 +/* 05997C 7F024E4C 3C098007 */ lui $t1, %hi(ptr_animation_table) +/* 059980 7F024E50 44815000 */ mtc1 $at, $f10 +/* 059984 7F024E54 3C0A0000 */ lui $t2, %hi(0x000040D4) # $t2, 0 +/* 059988 7F024E58 254A40D4 */ addiu $t2, %lo(0x000040D4) # addiu $t2, $t2, 0x40d4 +/* 05998C 7F024E5C 8E04001C */ lw $a0, 0x1c($s0) +/* 059990 7F024E60 44070000 */ mfc1 $a3, $f0 +/* 059994 7F024E64 46048183 */ div.s $f6, $f16, $f4 +/* 059998 7F024E68 4600320D */ trunc.w.s $f8, $f6 +/* 05999C 7F024E6C 44084000 */ mfc1 $t0, $f8 +/* 0599A0 7F024E70 00000000 */ nop +/* 0599A4 7F024E74 AE08003C */ sw $t0, 0x3c($s0) +/* 0599A8 7F024E78 8D299538 */ lw $t1, %lo(ptr_animation_table)($t1) +/* 0599AC 7F024E7C E7A20010 */ swc1 $f2, 0x10($sp) +/* 0599B0 7F024E80 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 0599B4 7F024E84 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0599B8 7F024E88 012A2821 */ addu $a1, $t1, $t2 +/* 0599BC 7F024E8C 10000018 */ b .L7F024EF0 +/* 0599C0 7F024E90 8FBF0024 */ lw $ra, 0x24($sp) +/* 0599C4 7F024E94 44811000 */ mtc1 $at, $f2 +.L7F024E98: +/* 0599C8 7F024E98 3C018003 */ lui $at, %hi(D_80030994) +/* 0599CC 7F024E9C C4300994 */ lwc1 $f16, %lo(D_80030994)($at) +/* 0599D0 7F024EA0 C7B20038 */ lwc1 $f18, 0x38($sp) +/* 0599D4 7F024EA4 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0599D8 7F024EA8 46028102 */ mul.s $f4, $f16, $f2 +/* 0599DC 7F024EAC 3C0D8007 */ lui $t5, %hi(ptr_animation_table) +/* 0599E0 7F024EB0 44815000 */ mtc1 $at, $f10 +/* 0599E4 7F024EB4 3C0E0000 */ lui $t6, %hi(0x0000777C) # $t6, 0 +/* 0599E8 7F024EB8 25CE777C */ addiu $t6, %lo(0x0000777C) # addiu $t6, $t6, 0x777c +/* 0599EC 7F024EBC 8E04001C */ lw $a0, 0x1c($s0) +/* 0599F0 7F024EC0 44070000 */ mfc1 $a3, $f0 +/* 0599F4 7F024EC4 46049183 */ div.s $f6, $f18, $f4 +/* 0599F8 7F024EC8 4600320D */ trunc.w.s $f8, $f6 +/* 0599FC 7F024ECC 440C4000 */ mfc1 $t4, $f8 +/* 059A00 7F024ED0 00000000 */ nop +/* 059A04 7F024ED4 AE0C003C */ sw $t4, 0x3c($s0) +/* 059A08 7F024ED8 8DAD9538 */ lw $t5, %lo(ptr_animation_table)($t5) +/* 059A0C 7F024EDC E7A20010 */ swc1 $f2, 0x10($sp) +/* 059A10 7F024EE0 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 059A14 7F024EE4 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 059A18 7F024EE8 01AE2821 */ addu $a1, $t5, $t6 +/* 059A1C 7F024EEC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F024EF0: +/* 059A20 7F024EF0 8FB00020 */ lw $s0, 0x20($sp) +/* 059A24 7F024EF4 27BD0048 */ addiu $sp, $sp, 0x48 +/* 059A28 7F024EF8 03E00008 */ jr $ra +/* 059A2C 7F024EFC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F024F00(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F024F00 +/* 059A30 7F024F00 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 059A34 7F024F04 AFBF0024 */ sw $ra, 0x24($sp) +/* 059A38 7F024F08 AFB00020 */ sw $s0, 0x20($sp) +/* 059A3C 7F024F0C 0FC0B461 */ jal sub_GAME_7F02D184 +/* 059A40 7F024F10 00808025 */ move $s0, $a0 +/* 059A44 7F024F14 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 059A48 7F024F18 44812000 */ mtc1 $at, $f4 +/* 059A4C 7F024F1C 240E0016 */ li $t6, 22 +/* 059A50 7F024F20 A20E0007 */ sb $t6, 7($s0) +/* 059A54 7F024F24 A2000008 */ sb $zero, 8($s0) +/* 059A58 7F024F28 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 059A5C 7F024F2C 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 059A60 7F024F30 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 059A64 7F024F34 44813000 */ mtc1 $at, $f6 +/* 059A68 7F024F38 3C180000 */ lui $t8, %hi(0x00002F94) # $t8, 0 +/* 059A6C 7F024F3C 27182F94 */ addiu $t8, %lo(0x00002F94) # addiu $t8, $t8, 0x2f94 +/* 059A70 7F024F40 8E04001C */ lw $a0, 0x1c($s0) +/* 059A74 7F024F44 00003025 */ move $a2, $zero +/* 059A78 7F024F48 3C074120 */ lui $a3, 0x4120 +/* 059A7C 7F024F4C E7A40010 */ swc1 $f4, 0x10($sp) +/* 059A80 7F024F50 01F82821 */ addu $a1, $t7, $t8 +/* 059A84 7F024F54 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 059A88 7F024F58 E7A60014 */ swc1 $f6, 0x14($sp) +/* 059A8C 7F024F5C 8E04001C */ lw $a0, 0x1c($s0) +/* 059A90 7F024F60 3C054120 */ lui $a1, 0x4120 +/* 059A94 7F024F64 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 059A98 7F024F68 3C064180 */ lui $a2, 0x4180 +/* 059A9C 7F024F6C 8E04001C */ lw $a0, 0x1c($s0) +/* 059AA0 7F024F70 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059AA4 7F024F74 3C054220 */ lui $a1, 0x4220 +/* 059AA8 7F024F78 8FBF0024 */ lw $ra, 0x24($sp) +/* 059AAC 7F024F7C 8FB00020 */ lw $s0, 0x20($sp) +/* 059AB0 7F024F80 27BD0028 */ addiu $sp, $sp, 0x28 +/* 059AB4 7F024F84 03E00008 */ jr $ra +/* 059AB8 7F024F88 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F024F8C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F024F8C +/* 059ABC 7F024F8C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 059AC0 7F024F90 AFBF0014 */ sw $ra, 0x14($sp) +/* 059AC4 7F024F94 8C8E004C */ lw $t6, 0x4c($a0) +/* 059AC8 7F024F98 8C86001C */ lw $a2, 0x1c($a0) +/* 059ACC 7F024F9C 8C82002C */ lw $v0, 0x2c($a0) +/* 059AD0 7F024FA0 31CF0020 */ andi $t7, $t6, 0x20 +/* 059AD4 7F024FA4 51E00017 */ beql $t7, $zero, .L7F025004 +/* 059AD8 7F024FA8 80980036 */ lb $t8, 0x36($a0) +/* 059ADC 7F024FAC 44801000 */ mtc1 $zero, $f2 +/* 059AE0 7F024FB0 C4400020 */ lwc1 $f0, 0x20($v0) +/* 059AE4 7F024FB4 00C02025 */ move $a0, $a2 +/* 059AE8 7F024FB8 4600103E */ c.le.s $f2, $f0 +/* 059AEC 7F024FBC 00000000 */ nop +/* 059AF0 7F024FC0 4500000B */ bc1f .L7F024FF0 +/* 059AF4 7F024FC4 00000000 */ nop +/* 059AF8 7F024FC8 C4440018 */ lwc1 $f4, 0x18($v0) +/* 059AFC 7F024FCC 4604003C */ c.lt.s $f0, $f4 +/* 059B00 7F024FD0 00000000 */ nop +/* 059B04 7F024FD4 45000006 */ bc1f .L7F024FF0 +/* 059B08 7F024FD8 00000000 */ nop +/* 059B0C 7F024FDC 44050000 */ mfc1 $a1, $f0 +/* 059B10 7F024FE0 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059B14 7F024FE4 00C02025 */ move $a0, $a2 +/* 059B18 7F024FE8 10000031 */ b .L7F0250B0 +/* 059B1C 7F024FEC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F024FF0: +/* 059B20 7F024FF0 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059B24 7F024FF4 8C450018 */ lw $a1, 0x18($v0) +/* 059B28 7F024FF8 1000002D */ b .L7F0250B0 +/* 059B2C 7F024FFC 8FBF0014 */ lw $ra, 0x14($sp) +/* 059B30 7F025000 80980036 */ lb $t8, 0x36($a0) +.L7F025004: +/* 059B34 7F025004 53000012 */ beql $t8, $zero, .L7F025050 +/* 059B38 7F025008 44801000 */ mtc1 $zero, $f2 +/* 059B3C 7F02500C 44801000 */ mtc1 $zero, $f2 +/* 059B40 7F025010 C4400020 */ lwc1 $f0, 0x20($v0) +/* 059B44 7F025014 00C02025 */ move $a0, $a2 +/* 059B48 7F025018 4600103E */ c.le.s $f2, $f0 +/* 059B4C 7F02501C 00000000 */ nop +/* 059B50 7F025020 45000006 */ bc1f .L7F02503C +/* 059B54 7F025024 00000000 */ nop +/* 059B58 7F025028 44050000 */ mfc1 $a1, $f0 +/* 059B5C 7F02502C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059B60 7F025030 00C02025 */ move $a0, $a2 +/* 059B64 7F025034 1000001E */ b .L7F0250B0 +/* 059B68 7F025038 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02503C: +/* 059B6C 7F02503C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059B70 7F025040 8C450018 */ lw $a1, 0x18($v0) +/* 059B74 7F025044 1000001A */ b .L7F0250B0 +/* 059B78 7F025048 8FBF0014 */ lw $ra, 0x14($sp) +/* 059B7C 7F02504C 44801000 */ mtc1 $zero, $f2 +.L7F025050: +/* 059B80 7F025050 C4400020 */ lwc1 $f0, 0x20($v0) +/* 059B84 7F025054 4600103E */ c.le.s $f2, $f0 +/* 059B88 7F025058 00000000 */ nop +/* 059B8C 7F02505C 45020007 */ bc1fl .L7F02507C +/* 059B90 7F025060 C4400014 */ lwc1 $f0, 0x14($v0) +/* 059B94 7F025064 44050000 */ mfc1 $a1, $f0 +/* 059B98 7F025068 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059B9C 7F02506C 00C02025 */ move $a0, $a2 +/* 059BA0 7F025070 1000000F */ b .L7F0250B0 +/* 059BA4 7F025074 8FBF0014 */ lw $ra, 0x14($sp) +/* 059BA8 7F025078 C4400014 */ lwc1 $f0, 0x14($v0) +.L7F02507C: +/* 059BAC 7F02507C 00C02025 */ move $a0, $a2 +/* 059BB0 7F025080 4600103E */ c.le.s $f2, $f0 +/* 059BB4 7F025084 00000000 */ nop +/* 059BB8 7F025088 45000006 */ bc1f .L7F0250A4 +/* 059BBC 7F02508C 00000000 */ nop +/* 059BC0 7F025090 44050000 */ mfc1 $a1, $f0 +/* 059BC4 7F025094 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059BC8 7F025098 00C02025 */ move $a0, $a2 +/* 059BCC 7F02509C 10000004 */ b .L7F0250B0 +/* 059BD0 7F0250A0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0250A4: +/* 059BD4 7F0250A4 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 059BD8 7F0250A8 3C05BF80 */ lui $a1, 0xbf80 +/* 059BDC 7F0250AC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0250B0: +/* 059BE0 7F0250B0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 059BE4 7F0250B4 03E00008 */ jr $ra +/* 059BE8 7F0250B8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0250BC(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DAC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051DB0 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F0250BC +/* 059BEC 7F0250BC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 059BF0 7F0250C0 30AE0002 */ andi $t6, $a1, 2 +/* 059BF4 7F0250C4 AFBF0014 */ sw $ra, 0x14($sp) +/* 059BF8 7F0250C8 11C00004 */ beqz $t6, .L7F0250DC +/* 059BFC 7F0250CC AFA40030 */ sw $a0, 0x30($sp) +/* 059C00 7F0250D0 44800000 */ mtc1 $zero, $f0 +/* 059C04 7F0250D4 10000022 */ b .L7F025160 +/* 059C08 7F0250D8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0250DC: +/* 059C0C 7F0250DC 30AF0010 */ andi $t7, $a1, 0x10 +/* 059C10 7F0250E0 11E00019 */ beqz $t7, .L7F025148 +/* 059C14 7F0250E4 8FA40030 */ lw $a0, 0x30($sp) +/* 059C18 7F0250E8 44862000 */ mtc1 $a2, $f4 +/* 059C1C 7F0250EC 3C018005 */ lui $at, %hi(D_80051DAC) +/* 059C20 7F0250F0 C4281DAC */ lwc1 $f8, %lo(D_80051DAC)($at) +/* 059C24 7F0250F4 468021A0 */ cvt.s.w $f6, $f4 +/* 059C28 7F0250F8 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 059C2C 7F0250FC 44818000 */ mtc1 $at, $f16 +/* 059C30 7F025100 8FB80030 */ lw $t8, 0x30($sp) +/* 059C34 7F025104 46083282 */ mul.s $f10, $f6, $f8 +/* 059C38 7F025108 8F04001C */ lw $a0, 0x1c($t8) +/* 059C3C 7F02510C 46105303 */ div.s $f12, $f10, $f16 +/* 059C40 7F025110 0FC1B320 */ jal getsubroty +/* 059C44 7F025114 E7AC001C */ swc1 $f12, 0x1c($sp) +/* 059C48 7F025118 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 059C4C 7F02511C 44809000 */ mtc1 $zero, $f18 +/* 059C50 7F025120 3C018005 */ lui $at, %hi(D_80051DB0) +/* 059C54 7F025124 46006081 */ sub.s $f2, $f12, $f0 +/* 059C58 7F025128 4612103C */ c.lt.s $f2, $f18 +/* 059C5C 7F02512C 00000000 */ nop +/* 059C60 7F025130 45000003 */ bc1f .L7F025140 +/* 059C64 7F025134 00000000 */ nop +/* 059C68 7F025138 C4241DB0 */ lwc1 $f4, %lo(D_80051DB0)($at) +/* 059C6C 7F02513C 46041080 */ add.s $f2, $f2, $f4 +.L7F025140: +/* 059C70 7F025140 10000006 */ b .L7F02515C +/* 059C74 7F025144 46001006 */ mov.s $f0, $f2 +.L7F025148: +/* 059C78 7F025148 0FC0CB1E */ jal sub_GAME_7F032C78 +/* 059C7C 7F02514C 27A70028 */ addiu $a3, $sp, 0x28 +/* 059C80 7F025150 8FA40030 */ lw $a0, 0x30($sp) +/* 059C84 7F025154 0FC0CAF6 */ jal get_distance_actor_to_position +/* 059C88 7F025158 00402825 */ move $a1, $v0 +.L7F02515C: +/* 059C8C 7F02515C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F025160: +/* 059C90 7F025160 27BD0030 */ addiu $sp, $sp, 0x30 +/* 059C94 7F025164 03E00008 */ jr $ra +/* 059C98 7F025168 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02516C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DB4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051DB8 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F02516C +/* 059C9C 7F02516C 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 059CA0 7F025170 AFBF003C */ sw $ra, 0x3c($sp) +/* 059CA4 7F025174 AFB70038 */ sw $s7, 0x38($sp) +/* 059CA8 7F025178 AFB60034 */ sw $s6, 0x34($sp) +/* 059CAC 7F02517C AFB50030 */ sw $s5, 0x30($sp) +/* 059CB0 7F025180 AFB4002C */ sw $s4, 0x2c($sp) +/* 059CB4 7F025184 AFB30028 */ sw $s3, 0x28($sp) +/* 059CB8 7F025188 AFB20024 */ sw $s2, 0x24($sp) +/* 059CBC 7F02518C AFB10020 */ sw $s1, 0x20($sp) +/* 059CC0 7F025190 AFB0001C */ sw $s0, 0x1c($sp) +/* 059CC4 7F025194 AFA60098 */ sw $a2, 0x98($sp) +/* 059CC8 7F025198 AFA7009C */ sw $a3, 0x9c($sp) +/* 059CCC 7F02519C 8C8E001C */ lw $t6, 0x1c($a0) +/* 059CD0 7F0251A0 3C188003 */ lui $t8, %hi(D_800309A8) +/* 059CD4 7F0251A4 271809A8 */ addiu $t8, %lo(D_800309A8) # addiu $t8, $t8, 0x9a8 +/* 059CD8 7F0251A8 AFAE008C */ sw $t6, 0x8c($sp) +/* 059CDC 7F0251AC 8F0A0004 */ lw $t2, 4($t8) +/* 059CE0 7F0251B0 8F010000 */ lw $at, ($t8) +/* 059CE4 7F0251B4 27AF0060 */ addiu $t7, $sp, 0x60 +/* 059CE8 7F0251B8 3C0C8003 */ lui $t4, %hi(D_800309B0) +/* 059CEC 7F0251BC 258C09B0 */ addiu $t4, %lo(D_800309B0) # addiu $t4, $t4, 0x9b0 +/* 059CF0 7F0251C0 ADEA0004 */ sw $t2, 4($t7) +/* 059CF4 7F0251C4 ADE10000 */ sw $at, ($t7) +/* 059CF8 7F0251C8 8D890004 */ lw $t1, 4($t4) +/* 059CFC 7F0251CC 8D810000 */ lw $at, ($t4) +/* 059D00 7F0251D0 27AB0058 */ addiu $t3, $sp, 0x58 +/* 059D04 7F0251D4 24190008 */ li $t9, 8 +/* 059D08 7F0251D8 AD690004 */ sw $t1, 4($t3) +/* 059D0C 7F0251DC AD610000 */ sw $at, ($t3) +/* 059D10 7F0251E0 00A08825 */ move $s1, $a1 +/* 059D14 7F0251E4 A0990007 */ sb $t9, 7($a0) +/* 059D18 7F0251E8 0080A025 */ move $s4, $a0 +/* 059D1C 7F0251EC 24160001 */ li $s6, 1 +/* 059D20 7F0251F0 0000B825 */ move $s7, $zero +/* 059D24 7F0251F4 8FA600A4 */ lw $a2, 0xa4($sp) +/* 059D28 7F0251F8 0FC0942F */ jal sub_GAME_7F0250BC +/* 059D2C 7F0251FC 8FA500A0 */ lw $a1, 0xa0($sp) +/* 059D30 7F025200 8FAF0098 */ lw $t7, 0x98($sp) +/* 059D34 7F025204 3C018005 */ lui $at, %hi(D_80051DB8) +/* 059D38 7F025208 11E0000F */ beqz $t7, .L7F025248 +/* 059D3C 7F02520C 00000000 */ nop +/* 059D40 7F025210 3C018005 */ lui $at, %hi(D_80051DB4) +/* 059D44 7F025214 C4221DB4 */ lwc1 $f2, %lo(D_80051DB4)($at) +/* 059D48 7F025218 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 059D4C 7F02521C 44813000 */ mtc1 $at, $f6 +/* 059D50 7F025220 46001101 */ sub.s $f4, $f2, $f0 +/* 059D54 7F025224 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 059D58 7F025228 44818000 */ mtc1 $at, $f16 +/* 059D5C 7F02522C 46062202 */ mul.s $f8, $f4, $f6 +/* 059D60 7F025230 46024283 */ div.s $f10, $f8, $f2 +/* 059D64 7F025234 46105480 */ add.s $f18, $f10, $f16 +/* 059D68 7F025238 4600910D */ trunc.w.s $f4, $f18 +/* 059D6C 7F02523C 44102000 */ mfc1 $s0, $f4 +/* 059D70 7F025240 1000000D */ b .L7F025278 +/* 059D74 7F025244 2A010020 */ slti $at, $s0, 0x20 +.L7F025248: +/* 059D78 7F025248 C4221DB8 */ lwc1 $f2, %lo(D_80051DB8)($at) +/* 059D7C 7F02524C 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 059D80 7F025250 44813000 */ mtc1 $at, $f6 +/* 059D84 7F025254 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 059D88 7F025258 44818000 */ mtc1 $at, $f16 +/* 059D8C 7F02525C 46060202 */ mul.s $f8, $f0, $f6 +/* 059D90 7F025260 46024283 */ div.s $f10, $f8, $f2 +/* 059D94 7F025264 46105480 */ add.s $f18, $f10, $f16 +/* 059D98 7F025268 4600910D */ trunc.w.s $f4, $f18 +/* 059D9C 7F02526C 44102000 */ mfc1 $s0, $f4 +/* 059DA0 7F025270 00000000 */ nop +/* 059DA4 7F025274 2A010020 */ slti $at, $s0, 0x20 +.L7F025278: +/* 059DA8 7F025278 14200002 */ bnez $at, .L7F025284 +/* 059DAC 7F02527C 00000000 */ nop +/* 059DB0 7F025280 00008025 */ move $s0, $zero +.L7F025284: +/* 059DB4 7F025284 0C002914 */ jal get_random_value +/* 059DB8 7F025288 00000000 */ nop +/* 059DBC 7F02528C 00107080 */ sll $t6, $s0, 2 +/* 059DC0 7F025290 022E6821 */ addu $t5, $s1, $t6 +/* 059DC4 7F025294 8DA30000 */ lw $v1, ($t5) +/* 059DC8 7F025298 24080048 */ li $t0, 72 +/* 059DCC 7F02529C 8E8C0014 */ lw $t4, 0x14($s4) +/* 059DD0 7F0252A0 8C650004 */ lw $a1, 4($v1) +/* 059DD4 7F0252A4 8C660000 */ lw $a2, ($v1) +/* 059DD8 7F0252A8 31890020 */ andi $t1, $t4, 0x20 +/* 059DDC 7F0252AC 0045001B */ divu $zero, $v0, $a1 +/* 059DE0 7F0252B0 00002010 */ mfhi $a0 +/* 059DE4 7F0252B4 3C198007 */ lui $t9, %hi(ptr_animation_table) +/* 059DE8 7F0252B8 14A00002 */ bnez $a1, .L7F0252C4 +/* 059DEC 7F0252BC 00000000 */ nop +/* 059DF0 7F0252C0 0007000D */ break 7 +.L7F0252C4: +/* 059DF4 7F0252C4 00880019 */ multu $a0, $t0 +/* 059DF8 7F0252C8 3C0F0000 */ lui $t7, %hi(0x00000318) # $t7, 0 +/* 059DFC 7F0252CC 00008825 */ move $s1, $zero +/* 059E00 7F0252D0 00009025 */ move $s2, $zero +/* 059E04 7F0252D4 8FB3009C */ lw $s3, 0x9c($sp) +/* 059E08 7F0252D8 24150001 */ li $s5, 1 +/* 059E0C 7F0252DC 00005812 */ mflo $t3 +/* 059E10 7F0252E0 00CB3821 */ addu $a3, $a2, $t3 +/* 059E14 7F0252E4 51200017 */ beql $t1, $zero, .L7F025344 +/* 059E18 7F0252E8 AFA70080 */ sw $a3, 0x80($sp) +/* 059E1C 7F0252EC 8F399538 */ lw $t9, %lo(ptr_animation_table)($t9) +/* 059E20 7F0252F0 8CEA0000 */ lw $t2, ($a3) +/* 059E24 7F0252F4 25EF0318 */ addiu $t7, %lo(0x00000318) # addiu $t7, $t7, 0x318 +/* 059E28 7F0252F8 032FC021 */ addu $t8, $t9, $t7 +/* 059E2C 7F0252FC 170A0010 */ bne $t8, $t2, .L7F025340 +/* 059E30 7F025300 248E0001 */ addiu $t6, $a0, 1 +/* 059E34 7F025304 01C5001A */ div $zero, $t6, $a1 +/* 059E38 7F025308 00006810 */ mfhi $t5 +/* 059E3C 7F02530C 14A00002 */ bnez $a1, .L7F025318 +/* 059E40 7F025310 00000000 */ nop +/* 059E44 7F025314 0007000D */ break 7 +.L7F025318: +/* 059E48 7F025318 2401FFFF */ li $at, -1 +/* 059E4C 7F02531C 14A10004 */ bne $a1, $at, .L7F025330 +/* 059E50 7F025320 3C018000 */ lui $at, 0x8000 +/* 059E54 7F025324 15C10002 */ bne $t6, $at, .L7F025330 +/* 059E58 7F025328 00000000 */ nop +/* 059E5C 7F02532C 0006000D */ break 6 +.L7F025330: +/* 059E60 7F025330 01A80019 */ multu $t5, $t0 +/* 059E64 7F025334 00005812 */ mflo $t3 +/* 059E68 7F025338 01663821 */ addu $a3, $t3, $a2 +/* 059E6C 7F02533C 00000000 */ nop +.L7F025340: +/* 059E70 7F025340 AFA70080 */ sw $a3, 0x80($sp) +.L7F025344: +/* 059E74 7F025344 8E6C0000 */ lw $t4, ($s3) +/* 059E78 7F025348 02802025 */ move $a0, $s4 +/* 059E7C 7F02534C 5180001A */ beql $t4, $zero, .L7F0253B8 +/* 059E80 7F025350 26310001 */ addiu $s1, $s1, 1 +/* 059E84 7F025354 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 059E88 7F025358 02202825 */ move $a1, $s1 +/* 059E8C 7F02535C 8C500004 */ lw $s0, 4($v0) +/* 059E90 7F025360 0FC177F3 */ jal get_automatic_firing_rate +/* 059E94 7F025364 82040080 */ lb $a0, 0x80($s0) +/* 059E98 7F025368 04410008 */ bgez $v0, .L7F02538C +/* 059E9C 7F02536C 03B24821 */ addu $t1, $sp, $s2 +/* 059EA0 7F025370 AD350060 */ sw $s5, 0x60($t1) +/* 059EA4 7F025374 82020080 */ lb $v0, 0x80($s0) +/* 059EA8 7F025378 24010016 */ li $at, 22 +/* 059EAC 7F02537C 54410007 */ bnel $v0, $at, .L7F02539C +/* 059EB0 7F025380 24010019 */ li $at, 25 +/* 059EB4 7F025384 10000004 */ b .L7F025398 +/* 059EB8 7F025388 0000B025 */ move $s6, $zero +.L7F02538C: +/* 059EBC 7F02538C 0000B025 */ move $s6, $zero +/* 059EC0 7F025390 02A0B825 */ move $s7, $s5 +/* 059EC4 7F025394 82020080 */ lb $v0, 0x80($s0) +.L7F025398: +/* 059EC8 7F025398 24010019 */ li $at, 25 +.L7F02539C: +/* 059ECC 7F02539C 10410004 */ beq $v0, $at, .L7F0253B0 +/* 059ED0 7F0253A0 03B2C821 */ addu $t9, $sp, $s2 +/* 059ED4 7F0253A4 24010018 */ li $at, 24 +/* 059ED8 7F0253A8 54410003 */ bnel $v0, $at, .L7F0253B8 +/* 059EDC 7F0253AC 26310001 */ addiu $s1, $s1, 1 +.L7F0253B0: +/* 059EE0 7F0253B0 AF350058 */ sw $s5, 0x58($t9) +/* 059EE4 7F0253B4 26310001 */ addiu $s1, $s1, 1 +.L7F0253B8: +/* 059EE8 7F0253B8 24010002 */ li $at, 2 +/* 059EEC 7F0253BC 26520004 */ addiu $s2, $s2, 4 +/* 059EF0 7F0253C0 1621FFE0 */ bne $s1, $at, .L7F025344 +/* 059EF4 7F0253C4 26730004 */ addiu $s3, $s3, 4 +/* 059EF8 7F0253C8 A2950030 */ sb $s5, 0x30($s4) +/* 059EFC 7F0253CC 8FAF0080 */ lw $t7, 0x80($sp) +/* 059F00 7F0253D0 A2800031 */ sb $zero, 0x31($s4) +/* 059F04 7F0253D4 0C002914 */ jal get_random_value +/* 059F08 7F0253D8 AE8F002C */ sw $t7, 0x2c($s4) +/* 059F0C 7F0253DC 30580001 */ andi $t8, $v0, 1 +/* 059F10 7F0253E0 A2980032 */ sb $t8, 0x32($s4) +/* 059F14 7F0253E4 8FAA009C */ lw $t2, 0x9c($sp) +/* 059F18 7F0253E8 8D4E0004 */ lw $t6, 4($t2) +/* 059F1C 7F0253EC A28E0039 */ sb $t6, 0x39($s4) +/* 059F20 7F0253F0 8FAD009C */ lw $t5, 0x9c($sp) +/* 059F24 7F0253F4 8DAB0000 */ lw $t3, ($t5) +/* 059F28 7F0253F8 A28B0038 */ sb $t3, 0x38($s4) +/* 059F2C 7F0253FC 8FAC0064 */ lw $t4, 0x64($sp) +/* 059F30 7F025400 A28C003B */ sb $t4, 0x3b($s4) +/* 059F34 7F025404 8FA90060 */ lw $t1, 0x60($sp) +/* 059F38 7F025408 A289003A */ sb $t1, 0x3a($s4) +/* 059F3C 7F02540C 8FB9005C */ lw $t9, 0x5c($sp) +/* 059F40 7F025410 A299003D */ sb $t9, 0x3d($s4) +/* 059F44 7F025414 8FAF0058 */ lw $t7, 0x58($sp) +/* 059F48 7F025418 A2960036 */ sb $s6, 0x36($s4) +/* 059F4C 7F02541C A2970037 */ sb $s7, 0x37($s4) +/* 059F50 7F025420 AE800040 */ sw $zero, 0x40($s4) +/* 059F54 7F025424 A2800033 */ sb $zero, 0x33($s4) +/* 059F58 7F025428 A28F003C */ sb $t7, 0x3c($s4) +/* 059F5C 7F02542C 8FB8005C */ lw $t8, 0x5c($sp) +/* 059F60 7F025430 8FAA0058 */ lw $t2, 0x58($sp) +/* 059F64 7F025434 8FAE005C */ lw $t6, 0x5c($sp) +/* 059F68 7F025438 17000003 */ bnez $t8, .L7F025448 +/* 059F6C 7F02543C 00000000 */ nop +/* 059F70 7F025440 11400009 */ beqz $t2, .L7F025468 +/* 059F74 7F025444 8FAC00A0 */ lw $t4, 0xa0($sp) +.L7F025448: +/* 059F78 7F025448 11C00005 */ beqz $t6, .L7F025460 +/* 059F7C 7F02544C 8FAD0058 */ lw $t5, 0x58($sp) +/* 059F80 7F025450 11A00003 */ beqz $t5, .L7F025460 +/* 059F84 7F025454 240B0002 */ li $t3, 2 +/* 059F88 7F025458 1000001B */ b .L7F0254C8 +/* 059F8C 7F02545C A28B0034 */ sb $t3, 0x34($s4) +.L7F025460: +/* 059F90 7F025460 10000019 */ b .L7F0254C8 +/* 059F94 7F025464 A2950034 */ sb $s5, 0x34($s4) +.L7F025468: +/* 059F98 7F025468 31890080 */ andi $t1, $t4, 0x80 +/* 059F9C 7F02546C 11200003 */ beqz $t1, .L7F02547C +/* 059FA0 7F025470 00000000 */ nop +/* 059FA4 7F025474 10000006 */ b .L7F025490 +/* 059FA8 7F025478 A2950034 */ sb $s5, 0x34($s4) +.L7F02547C: +/* 059FAC 7F02547C 0C002914 */ jal get_random_value +/* 059FB0 7F025480 00000000 */ nop +/* 059FB4 7F025484 30590003 */ andi $t9, $v0, 3 +/* 059FB8 7F025488 272F0002 */ addiu $t7, $t9, 2 +/* 059FBC 7F02548C A28F0034 */ sb $t7, 0x34($s4) +.L7F025490: +/* 059FC0 7F025490 8FB8009C */ lw $t8, 0x9c($sp) +/* 059FC4 7F025494 8F0A0000 */ lw $t2, ($t8) +/* 059FC8 7F025498 5140000C */ beql $t2, $zero, .L7F0254CC +/* 059FCC 7F02549C 8FB900A0 */ lw $t9, 0xa0($sp) +/* 059FD0 7F0254A0 8F0E0004 */ lw $t6, 4($t8) +/* 059FD4 7F0254A4 51C00009 */ beql $t6, $zero, .L7F0254CC +/* 059FD8 7F0254A8 8FB900A0 */ lw $t9, 0xa0($sp) +/* 059FDC 7F0254AC 0C002914 */ jal get_random_value +/* 059FE0 7F0254B0 00000000 */ nop +/* 059FE4 7F0254B4 828D0034 */ lb $t5, 0x34($s4) +/* 059FE8 7F0254B8 304B0003 */ andi $t3, $v0, 3 +/* 059FEC 7F0254BC 01AB6021 */ addu $t4, $t5, $t3 +/* 059FF0 7F0254C0 25890002 */ addiu $t1, $t4, 2 +/* 059FF4 7F0254C4 A2890034 */ sb $t1, 0x34($s4) +.L7F0254C8: +/* 059FF8 7F0254C8 8FB900A0 */ lw $t9, 0xa0($sp) +.L7F0254CC: +/* 059FFC 7F0254CC 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 05A000 7F0254D0 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 05A004 7F0254D4 AE99004C */ sw $t9, 0x4c($s4) +/* 05A008 7F0254D8 8FAF00A4 */ lw $t7, 0xa4($sp) +/* 05A00C 7F0254DC 02802025 */ move $a0, $s4 +/* 05A010 7F0254E0 3C053F00 */ lui $a1, 0x3f00 +/* 05A014 7F0254E4 AE8F0050 */ sw $t7, 0x50($s4) +/* 05A018 7F0254E8 8FAA00A8 */ lw $t2, 0xa8($sp) +/* 05A01C 7F0254EC AE800058 */ sw $zero, 0x58($s4) +/* 05A020 7F0254F0 AE800044 */ sw $zero, 0x44($s4) +/* 05A024 7F0254F4 AE800048 */ sw $zero, 0x48($s4) +/* 05A028 7F0254F8 A2800008 */ sb $zero, 8($s4) +/* 05A02C 7F0254FC 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 05A030 7F025500 AE8A0054 */ sw $t2, 0x54($s4) +/* 05A034 7F025504 8FA20080 */ lw $v0, 0x80($sp) +/* 05A038 7F025508 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05A03C 7F02550C 44813000 */ mtc1 $at, $f6 +/* 05A040 7F025510 8C450000 */ lw $a1, ($v0) +/* 05A044 7F025514 8C470010 */ lw $a3, 0x10($v0) +/* 05A048 7F025518 E7A00010 */ swc1 $f0, 0x10($sp) +/* 05A04C 7F02551C 8FA4008C */ lw $a0, 0x8c($sp) +/* 05A050 7F025520 8FA60098 */ lw $a2, 0x98($sp) +/* 05A054 7F025524 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05A058 7F025528 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05A05C 7F02552C 0FC093E3 */ jal sub_GAME_7F024F8C +/* 05A060 7F025530 02802025 */ move $a0, $s4 +/* 05A064 7F025534 8FBF003C */ lw $ra, 0x3c($sp) +/* 05A068 7F025538 8FB0001C */ lw $s0, 0x1c($sp) +/* 05A06C 7F02553C 8FB10020 */ lw $s1, 0x20($sp) +/* 05A070 7F025540 8FB20024 */ lw $s2, 0x24($sp) +/* 05A074 7F025544 8FB30028 */ lw $s3, 0x28($sp) +/* 05A078 7F025548 8FB4002C */ lw $s4, 0x2c($sp) +/* 05A07C 7F02554C 8FB50030 */ lw $s5, 0x30($sp) +/* 05A080 7F025550 8FB60034 */ lw $s6, 0x34($sp) +/* 05A084 7F025554 8FB70038 */ lw $s7, 0x38($sp) +/* 05A088 7F025558 03E00008 */ jr $ra +/* 05A08C 7F02555C 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F025560(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F025560 +/* 05A090 7F025560 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 05A094 7F025564 AFBF0024 */ sw $ra, 0x24($sp) +/* 05A098 7F025568 AFA50054 */ sw $a1, 0x54($sp) +/* 05A09C 7F02556C AFA40050 */ sw $a0, 0x50($sp) +/* 05A0A0 7F025570 AFA60058 */ sw $a2, 0x58($sp) +/* 05A0A4 7F025574 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A0A8 7F025578 24050001 */ li $a1, 1 +/* 05A0AC 7F02557C AFA2004C */ sw $v0, 0x4c($sp) +/* 05A0B0 7F025580 8FA40050 */ lw $a0, 0x50($sp) +/* 05A0B4 7F025584 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A0B8 7F025588 00002825 */ move $a1, $zero +/* 05A0BC 7F02558C 3C0F8003 */ lui $t7, %hi(D_800309B8) +/* 05A0C0 7F025590 25EF09B8 */ addiu $t7, %lo(D_800309B8) # addiu $t7, $t7, 0x9b8 +/* 05A0C4 7F025594 8FA4004C */ lw $a0, 0x4c($sp) +/* 05A0C8 7F025598 8DE10000 */ lw $at, ($t7) +/* 05A0CC 7F02559C 8DE80004 */ lw $t0, 4($t7) +/* 05A0D0 7F0255A0 27AE0038 */ addiu $t6, $sp, 0x38 +/* 05A0D4 7F0255A4 00402825 */ move $a1, $v0 +/* 05A0D8 7F0255A8 ADC10000 */ sw $at, ($t6) +/* 05A0DC 7F0255AC 1080002C */ beqz $a0, .L7F025660 +/* 05A0E0 7F0255B0 ADC80004 */ sw $t0, 4($t6) +/* 05A0E4 7F0255B4 1040002A */ beqz $v0, .L7F025660 +/* 05A0E8 7F0255B8 00000000 */ nop +/* 05A0EC 7F0255BC 8FA40050 */ lw $a0, 0x50($sp) +/* 05A0F0 7F0255C0 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05A0F4 7F0255C4 24050001 */ li $a1, 1 +/* 05A0F8 7F0255C8 AFA20034 */ sw $v0, 0x34($sp) +/* 05A0FC 7F0255CC 8FA40050 */ lw $a0, 0x50($sp) +/* 05A100 7F0255D0 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05A104 7F0255D4 00002825 */ move $a1, $zero +/* 05A108 7F0255D8 8FA90034 */ lw $t1, 0x34($sp) +/* 05A10C 7F0255DC 3C058003 */ lui $a1, %hi(ptr_pistol_firing_animation_groups) +/* 05A110 7F0255E0 2C460001 */ sltiu $a2, $v0, 1 +/* 05A114 7F0255E4 1120001A */ beqz $t1, .L7F025650 +/* 05A118 7F0255E8 24A5F408 */ addiu $a1, %lo(ptr_pistol_firing_animation_groups) # addiu $a1, $a1, -0xbf8 +/* 05A11C 7F0255EC 50400019 */ beql $v0, $zero, .L7F025654 +/* 05A120 7F0255F0 2CD90001 */ sltiu $t9, $a2, 1 +/* 05A124 7F0255F4 0C002914 */ jal get_random_value +/* 05A128 7F0255F8 00000000 */ nop +/* 05A12C 7F0255FC 30460001 */ andi $a2, $v0, 1 +/* 05A130 7F025600 0C002914 */ jal get_random_value +/* 05A134 7F025604 AFA60044 */ sw $a2, 0x44($sp) +/* 05A138 7F025608 24010003 */ li $at, 3 +/* 05A13C 7F02560C 0041001B */ divu $zero, $v0, $at +/* 05A140 7F025610 00005010 */ mfhi $t2 +/* 05A144 7F025614 8FA60044 */ lw $a2, 0x44($sp) +/* 05A148 7F025618 15400007 */ bnez $t2, .L7F025638 +/* 05A14C 7F02561C 3C058003 */ lui $a1, %hi(ptr_doubles_firing_animation_groups) +/* 05A150 7F025620 3C058003 */ lui $a1, %hi(ptr_pistol_firing_animation_groups) +/* 05A154 7F025624 2CCB0001 */ sltiu $t3, $a2, 1 +/* 05A158 7F025628 24A5F408 */ addiu $a1, %lo(ptr_pistol_firing_animation_groups) # addiu $a1, $a1, -0xbf8 +/* 05A15C 7F02562C AFA6003C */ sw $a2, 0x3c($sp) +/* 05A160 7F025630 10000022 */ b .L7F0256BC +/* 05A164 7F025634 AFAB0038 */ sw $t3, 0x38($sp) +.L7F025638: +/* 05A168 7F025638 240C0001 */ li $t4, 1 +/* 05A16C 7F02563C 240D0001 */ li $t5, 1 +/* 05A170 7F025640 24A5F6E0 */ addiu $a1, $a1, %lo(ptr_doubles_firing_animation_groups) +/* 05A174 7F025644 AFAC003C */ sw $t4, 0x3c($sp) +/* 05A178 7F025648 1000001C */ b .L7F0256BC +/* 05A17C 7F02564C AFAD0038 */ sw $t5, 0x38($sp) +.L7F025650: +/* 05A180 7F025650 2CD90001 */ sltiu $t9, $a2, 1 +.L7F025654: +/* 05A184 7F025654 AFA6003C */ sw $a2, 0x3c($sp) +/* 05A188 7F025658 10000018 */ b .L7F0256BC +/* 05A18C 7F02565C AFB90038 */ sw $t9, 0x38($sp) +.L7F025660: +/* 05A190 7F025660 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05A194 7F025664 AFA50048 */ sw $a1, 0x48($sp) +/* 05A198 7F025668 14400005 */ bnez $v0, .L7F025680 +/* 05A19C 7F02566C 8FA50048 */ lw $a1, 0x48($sp) +/* 05A1A0 7F025670 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05A1A4 7F025674 00A02025 */ move $a0, $a1 +/* 05A1A8 7F025678 5040000A */ beql $v0, $zero, .L7F0256A4 +/* 05A1AC 7F02567C 8FA2004C */ lw $v0, 0x4c($sp) +.L7F025680: +/* 05A1B0 7F025680 8FA2004C */ lw $v0, 0x4c($sp) +/* 05A1B4 7F025684 3C058003 */ lui $a1, %hi(ptr_pistol_firing_animation_groups) +/* 05A1B8 7F025688 24A5F408 */ addiu $a1, %lo(ptr_pistol_firing_animation_groups) # addiu $a1, $a1, -0xbf8 +/* 05A1BC 7F02568C 0002302B */ sltu $a2, $zero, $v0 +/* 05A1C0 7F025690 2CCE0001 */ sltiu $t6, $a2, 1 +/* 05A1C4 7F025694 AFA6003C */ sw $a2, 0x3c($sp) +/* 05A1C8 7F025698 10000008 */ b .L7F0256BC +/* 05A1CC 7F02569C AFAE0038 */ sw $t6, 0x38($sp) +/* 05A1D0 7F0256A0 8FA2004C */ lw $v0, 0x4c($sp) +.L7F0256A4: +/* 05A1D4 7F0256A4 3C058003 */ lui $a1, %hi(ptr_rifle_firing_animation_groups) +/* 05A1D8 7F0256A8 24A5ED28 */ addiu $a1, %lo(ptr_rifle_firing_animation_groups) # addiu $a1, $a1, -0x12d8 +/* 05A1DC 7F0256AC 0002302B */ sltu $a2, $zero, $v0 +/* 05A1E0 7F0256B0 2CC80001 */ sltiu $t0, $a2, 1 +/* 05A1E4 7F0256B4 AFA6003C */ sw $a2, 0x3c($sp) +/* 05A1E8 7F0256B8 AFA80038 */ sw $t0, 0x38($sp) +.L7F0256BC: +/* 05A1EC 7F0256BC 8FA90054 */ lw $t1, 0x54($sp) +/* 05A1F0 7F0256C0 8FAA0058 */ lw $t2, 0x58($sp) +/* 05A1F4 7F0256C4 240B0001 */ li $t3, 1 +/* 05A1F8 7F0256C8 AFAB0018 */ sw $t3, 0x18($sp) +/* 05A1FC 7F0256CC 8FA40050 */ lw $a0, 0x50($sp) +/* 05A200 7F0256D0 27A70038 */ addiu $a3, $sp, 0x38 +/* 05A204 7F0256D4 AFA90010 */ sw $t1, 0x10($sp) +/* 05A208 7F0256D8 0FC0945B */ jal sub_GAME_7F02516C +/* 05A20C 7F0256DC AFAA0014 */ sw $t2, 0x14($sp) +/* 05A210 7F0256E0 8FBF0024 */ lw $ra, 0x24($sp) +/* 05A214 7F0256E4 27BD0050 */ addiu $sp, $sp, 0x50 +/* 05A218 7F0256E8 03E00008 */ jr $ra +/* 05A21C 7F0256EC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0256F0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0256F0 +/* 05A220 7F0256F0 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 05A224 7F0256F4 AFBF0024 */ sw $ra, 0x24($sp) +/* 05A228 7F0256F8 AFA50054 */ sw $a1, 0x54($sp) +/* 05A22C 7F0256FC AFA40050 */ sw $a0, 0x50($sp) +/* 05A230 7F025700 AFA60058 */ sw $a2, 0x58($sp) +/* 05A234 7F025704 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A238 7F025708 24050001 */ li $a1, 1 +/* 05A23C 7F02570C AFA2004C */ sw $v0, 0x4c($sp) +/* 05A240 7F025710 8FA40050 */ lw $a0, 0x50($sp) +/* 05A244 7F025714 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A248 7F025718 00002825 */ move $a1, $zero +/* 05A24C 7F02571C 3C0F8003 */ lui $t7, %hi(D_800309C0) +/* 05A250 7F025720 25EF09C0 */ addiu $t7, %lo(D_800309C0) # addiu $t7, $t7, 0x9c0 +/* 05A254 7F025724 8FA4004C */ lw $a0, 0x4c($sp) +/* 05A258 7F025728 8DE10000 */ lw $at, ($t7) +/* 05A25C 7F02572C 8DE80004 */ lw $t0, 4($t7) +/* 05A260 7F025730 27AE0038 */ addiu $t6, $sp, 0x38 +/* 05A264 7F025734 00402825 */ move $a1, $v0 +/* 05A268 7F025738 ADC10000 */ sw $at, ($t6) +/* 05A26C 7F02573C 1080002C */ beqz $a0, .L7F0257F0 +/* 05A270 7F025740 ADC80004 */ sw $t0, 4($t6) +/* 05A274 7F025744 1040002A */ beqz $v0, .L7F0257F0 +/* 05A278 7F025748 00000000 */ nop +/* 05A27C 7F02574C 8FA40050 */ lw $a0, 0x50($sp) +/* 05A280 7F025750 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05A284 7F025754 24050001 */ li $a1, 1 +/* 05A288 7F025758 AFA20034 */ sw $v0, 0x34($sp) +/* 05A28C 7F02575C 8FA40050 */ lw $a0, 0x50($sp) +/* 05A290 7F025760 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05A294 7F025764 00002825 */ move $a1, $zero +/* 05A298 7F025768 8FA90034 */ lw $t1, 0x34($sp) +/* 05A29C 7F02576C 3C058003 */ lui $a1, %hi(ptr_crouched_pistol_firing_animation_groups) +/* 05A2A0 7F025770 2C460001 */ sltiu $a2, $v0, 1 +/* 05A2A4 7F025774 1120001A */ beqz $t1, .L7F0257E0 +/* 05A2A8 7F025778 24A5FCD8 */ addiu $a1, %lo(ptr_crouched_pistol_firing_animation_groups) # addiu $a1, $a1, -0x328 +/* 05A2AC 7F02577C 50400019 */ beql $v0, $zero, .L7F0257E4 +/* 05A2B0 7F025780 2CD90001 */ sltiu $t9, $a2, 1 +/* 05A2B4 7F025784 0C002914 */ jal get_random_value +/* 05A2B8 7F025788 00000000 */ nop +/* 05A2BC 7F02578C 30460001 */ andi $a2, $v0, 1 +/* 05A2C0 7F025790 0C002914 */ jal get_random_value +/* 05A2C4 7F025794 AFA60044 */ sw $a2, 0x44($sp) +/* 05A2C8 7F025798 24010003 */ li $at, 3 +/* 05A2CC 7F02579C 0041001B */ divu $zero, $v0, $at +/* 05A2D0 7F0257A0 00005010 */ mfhi $t2 +/* 05A2D4 7F0257A4 8FA60044 */ lw $a2, 0x44($sp) +/* 05A2D8 7F0257A8 15400007 */ bnez $t2, .L7F0257C8 +/* 05A2DC 7F0257AC 3C058003 */ lui $a1, %hi(ptr_crouched_doubles_firing_animation_groups) +/* 05A2E0 7F0257B0 3C058003 */ lui $a1, %hi(ptr_crouched_pistol_firing_animation_groups) +/* 05A2E4 7F0257B4 2CCB0001 */ sltiu $t3, $a2, 1 +/* 05A2E8 7F0257B8 24A5FCD8 */ addiu $a1, %lo(ptr_crouched_pistol_firing_animation_groups) # addiu $a1, $a1, -0x328 +/* 05A2EC 7F0257BC AFA6003C */ sw $a2, 0x3c($sp) +/* 05A2F0 7F0257C0 10000022 */ b .L7F02584C +/* 05A2F4 7F0257C4 AFAB0038 */ sw $t3, 0x38($sp) +.L7F0257C8: +/* 05A2F8 7F0257C8 240C0001 */ li $t4, 1 +/* 05A2FC 7F0257CC 240D0001 */ li $t5, 1 +/* 05A300 7F0257D0 24A5FFF8 */ addiu $a1, $a1, %lo(ptr_crouched_doubles_firing_animation_groups) +/* 05A304 7F0257D4 AFAC003C */ sw $t4, 0x3c($sp) +/* 05A308 7F0257D8 1000001C */ b .L7F02584C +/* 05A30C 7F0257DC AFAD0038 */ sw $t5, 0x38($sp) +.L7F0257E0: +/* 05A310 7F0257E0 2CD90001 */ sltiu $t9, $a2, 1 +.L7F0257E4: +/* 05A314 7F0257E4 AFA6003C */ sw $a2, 0x3c($sp) +/* 05A318 7F0257E8 10000018 */ b .L7F02584C +/* 05A31C 7F0257EC AFB90038 */ sw $t9, 0x38($sp) +.L7F0257F0: +/* 05A320 7F0257F0 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05A324 7F0257F4 AFA50048 */ sw $a1, 0x48($sp) +/* 05A328 7F0257F8 14400005 */ bnez $v0, .L7F025810 +/* 05A32C 7F0257FC 8FA50048 */ lw $a1, 0x48($sp) +/* 05A330 7F025800 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05A334 7F025804 00A02025 */ move $a0, $a1 +/* 05A338 7F025808 5040000A */ beql $v0, $zero, .L7F025834 +/* 05A33C 7F02580C 8FA2004C */ lw $v0, 0x4c($sp) +.L7F025810: +/* 05A340 7F025810 8FA2004C */ lw $v0, 0x4c($sp) +/* 05A344 7F025814 3C058003 */ lui $a1, %hi(ptr_crouched_pistol_firing_animation_groups) +/* 05A348 7F025818 24A5FCD8 */ addiu $a1, %lo(ptr_crouched_pistol_firing_animation_groups) # addiu $a1, $a1, -0x328 +/* 05A34C 7F02581C 0002302B */ sltu $a2, $zero, $v0 +/* 05A350 7F025820 2CCE0001 */ sltiu $t6, $a2, 1 +/* 05A354 7F025824 AFA6003C */ sw $a2, 0x3c($sp) +/* 05A358 7F025828 10000008 */ b .L7F02584C +/* 05A35C 7F02582C AFAE0038 */ sw $t6, 0x38($sp) +/* 05A360 7F025830 8FA2004C */ lw $v0, 0x4c($sp) +.L7F025834: +/* 05A364 7F025834 3C058003 */ lui $a1, %hi(ptr_crouched_rifle_firing_animation_groups) +/* 05A368 7F025838 24A5F970 */ addiu $a1, %lo(ptr_crouched_rifle_firing_animation_groups) # addiu $a1, $a1, -0x690 +/* 05A36C 7F02583C 0002302B */ sltu $a2, $zero, $v0 +/* 05A370 7F025840 2CC80001 */ sltiu $t0, $a2, 1 +/* 05A374 7F025844 AFA6003C */ sw $a2, 0x3c($sp) +/* 05A378 7F025848 AFA80038 */ sw $t0, 0x38($sp) +.L7F02584C: +/* 05A37C 7F02584C 8FA90054 */ lw $t1, 0x54($sp) +/* 05A380 7F025850 8FAA0058 */ lw $t2, 0x58($sp) +/* 05A384 7F025854 8FA40050 */ lw $a0, 0x50($sp) +/* 05A388 7F025858 27A70038 */ addiu $a3, $sp, 0x38 +/* 05A38C 7F02585C AFA00018 */ sw $zero, 0x18($sp) +/* 05A390 7F025860 AFA90010 */ sw $t1, 0x10($sp) +/* 05A394 7F025864 0FC0945B */ jal sub_GAME_7F02516C +/* 05A398 7F025868 AFAA0014 */ sw $t2, 0x14($sp) +/* 05A39C 7F02586C 8FBF0024 */ lw $ra, 0x24($sp) +/* 05A3A0 7F025870 27BD0050 */ addiu $sp, $sp, 0x50 +/* 05A3A4 7F025874 03E00008 */ jr $ra +/* 05A3A8 7F025878 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02587C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02587C +/* 05A3AC 7F02587C 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 05A3B0 7F025880 AFB20024 */ sw $s2, 0x24($sp) +/* 05A3B4 7F025884 00A09025 */ move $s2, $a1 +/* 05A3B8 7F025888 AFBF0034 */ sw $ra, 0x34($sp) +/* 05A3BC 7F02588C AFB50030 */ sw $s5, 0x30($sp) +/* 05A3C0 7F025890 0080A825 */ move $s5, $a0 +/* 05A3C4 7F025894 AFB4002C */ sw $s4, 0x2c($sp) +/* 05A3C8 7F025898 AFB30028 */ sw $s3, 0x28($sp) +/* 05A3CC 7F02589C AFB10020 */ sw $s1, 0x20($sp) +/* 05A3D0 7F0258A0 AFB0001C */ sw $s0, 0x1c($sp) +/* 05A3D4 7F0258A4 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A3D8 7F0258A8 24050001 */ li $a1, 1 +/* 05A3DC 7F0258AC 00408025 */ move $s0, $v0 +/* 05A3E0 7F0258B0 02A02025 */ move $a0, $s5 +/* 05A3E4 7F0258B4 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A3E8 7F0258B8 00002825 */ move $a1, $zero +/* 05A3EC 7F0258BC 3C0F8003 */ lui $t7, %hi(D_800309C8) +/* 05A3F0 7F0258C0 25EF09C8 */ addiu $t7, %lo(D_800309C8) # addiu $t7, $t7, 0x9c8 +/* 05A3F4 7F0258C4 8DE10000 */ lw $at, ($t7) +/* 05A3F8 7F0258C8 8DE80004 */ lw $t0, 4($t7) +/* 05A3FC 7F0258CC 27AE0070 */ addiu $t6, $sp, 0x70 +/* 05A400 7F0258D0 3C0A8003 */ lui $t2, %hi(D_800309D0) +/* 05A404 7F0258D4 254A09D0 */ addiu $t2, %lo(D_800309D0) # addiu $t2, $t2, 0x9d0 +/* 05A408 7F0258D8 ADC10000 */ sw $at, ($t6) +/* 05A40C 7F0258DC ADC80004 */ sw $t0, 4($t6) +/* 05A410 7F0258E0 8D4D0004 */ lw $t5, 4($t2) +/* 05A414 7F0258E4 8D410000 */ lw $at, ($t2) +/* 05A418 7F0258E8 27A90068 */ addiu $t1, $sp, 0x68 +/* 05A41C 7F0258EC 3C188003 */ lui $t8, %hi(D_800309D8) +/* 05A420 7F0258F0 271809D8 */ addiu $t8, %lo(D_800309D8) # addiu $t8, $t8, 0x9d8 +/* 05A424 7F0258F4 AD2D0004 */ sw $t5, 4($t1) +/* 05A428 7F0258F8 AD210000 */ sw $at, ($t1) +/* 05A42C 7F0258FC 8F080004 */ lw $t0, 4($t8) +/* 05A430 7F025900 8F010000 */ lw $at, ($t8) +/* 05A434 7F025904 27B90060 */ addiu $t9, $sp, 0x60 +/* 05A438 7F025908 00408825 */ move $s1, $v0 +/* 05A43C 7F02590C AF280004 */ sw $t0, 4($t9) +/* 05A440 7F025910 12000045 */ beqz $s0, .L7F025A28 +/* 05A444 7F025914 AF210000 */ sw $at, ($t9) +/* 05A448 7F025918 10400043 */ beqz $v0, .L7F025A28 +/* 05A44C 7F02591C 02A02025 */ move $a0, $s5 +/* 05A450 7F025920 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05A454 7F025924 24050001 */ li $a1, 1 +/* 05A458 7F025928 00408025 */ move $s0, $v0 +/* 05A45C 7F02592C 02A02025 */ move $a0, $s5 +/* 05A460 7F025930 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05A464 7F025934 00002825 */ move $a1, $zero +/* 05A468 7F025938 1200000D */ beqz $s0, .L7F025970 +/* 05A46C 7F02593C 00001825 */ move $v1, $zero +/* 05A470 7F025940 5040000C */ beql $v0, $zero, .L7F025974 +/* 05A474 7F025944 2C4B0001 */ sltiu $t3, $v0, 1 +/* 05A478 7F025948 0C002914 */ jal get_random_value +/* 05A47C 7F02594C 00000000 */ nop +/* 05A480 7F025950 304C0001 */ andi $t4, $v0, 1 +/* 05A484 7F025954 0C002914 */ jal get_random_value +/* 05A488 7F025958 AFAC0078 */ sw $t4, 0x78($sp) +/* 05A48C 7F02595C 24010003 */ li $at, 3 +/* 05A490 7F025960 0041001B */ divu $zero, $v0, $at +/* 05A494 7F025964 00001810 */ mfhi $v1 +/* 05A498 7F025968 10000003 */ b .L7F025978 +/* 05A49C 7F02596C 00000000 */ nop +.L7F025970: +/* 05A4A0 7F025970 2C4B0001 */ sltiu $t3, $v0, 1 +.L7F025974: +/* 05A4A4 7F025974 AFAB0078 */ sw $t3, 0x78($sp) +.L7F025978: +/* 05A4A8 7F025978 14600013 */ bnez $v1, .L7F0259C8 +/* 05A4AC 7F02597C 24140001 */ li $s4, 1 +/* 05A4B0 7F025980 12400005 */ beqz $s2, .L7F025998 +/* 05A4B4 7F025984 3C0A8003 */ lui $t2, %hi(D_800306F0) +/* 05A4B8 7F025988 3C098003 */ lui $t1, %hi(D_80030738) +/* 05A4BC 7F02598C 25290738 */ addiu $t1, %lo(D_80030738) # addiu $t1, $t1, 0x738 +/* 05A4C0 7F025990 10000003 */ b .L7F0259A0 +/* 05A4C4 7F025994 AFA90084 */ sw $t1, 0x84($sp) +.L7F025998: +/* 05A4C8 7F025998 254A06F0 */ addiu $t2, %lo(D_800306F0) # addiu $t2, $t2, 0x6f0 +/* 05A4CC 7F02599C AFAA0084 */ sw $t2, 0x84($sp) +.L7F0259A0: +/* 05A4D0 7F0259A0 8FAD0078 */ lw $t5, 0x78($sp) +/* 05A4D4 7F0259A4 240F0001 */ li $t7, 1 +/* 05A4D8 7F0259A8 24020001 */ li $v0, 1 +/* 05A4DC 7F0259AC 11A00003 */ beqz $t5, .L7F0259BC +/* 05A4E0 7F0259B0 24140001 */ li $s4, 1 +/* 05A4E4 7F0259B4 10000048 */ b .L7F025AD8 +/* 05A4E8 7F0259B8 AFAF0074 */ sw $t7, 0x74($sp) +.L7F0259BC: +/* 05A4EC 7F0259BC AFA20070 */ sw $v0, 0x70($sp) +/* 05A4F0 7F0259C0 10000045 */ b .L7F025AD8 +/* 05A4F4 7F0259C4 24140001 */ li $s4, 1 +.L7F0259C8: +/* 05A4F8 7F0259C8 1474000C */ bne $v1, $s4, .L7F0259FC +/* 05A4FC 7F0259CC 00000000 */ nop +/* 05A500 7F0259D0 12400005 */ beqz $s2, .L7F0259E8 +/* 05A504 7F0259D4 3C198003 */ lui $t9, %hi(D_80030780) +/* 05A508 7F0259D8 3C0E8003 */ lui $t6, %hi(D_800307C8) +/* 05A50C 7F0259DC 25CE07C8 */ addiu $t6, %lo(D_800307C8) # addiu $t6, $t6, 0x7c8 +/* 05A510 7F0259E0 10000003 */ b .L7F0259F0 +/* 05A514 7F0259E4 AFAE0084 */ sw $t6, 0x84($sp) +.L7F0259E8: +/* 05A518 7F0259E8 27390780 */ addiu $t9, %lo(D_80030780) # addiu $t9, $t9, 0x780 +/* 05A51C 7F0259EC AFB90084 */ sw $t9, 0x84($sp) +.L7F0259F0: +/* 05A520 7F0259F0 AFB40074 */ sw $s4, 0x74($sp) +/* 05A524 7F0259F4 10000038 */ b .L7F025AD8 +/* 05A528 7F0259F8 AFB40070 */ sw $s4, 0x70($sp) +.L7F0259FC: +/* 05A52C 7F0259FC 12400005 */ beqz $s2, .L7F025A14 +/* 05A530 7F025A00 3C088003 */ lui $t0, %hi(D_80030810) +/* 05A534 7F025A04 3C188003 */ lui $t8, %hi(D_80030858) +/* 05A538 7F025A08 27180858 */ addiu $t8, %lo(D_80030858) # addiu $t8, $t8, 0x858 +/* 05A53C 7F025A0C 10000003 */ b .L7F025A1C +/* 05A540 7F025A10 AFB80084 */ sw $t8, 0x84($sp) +.L7F025A14: +/* 05A544 7F025A14 25080810 */ addiu $t0, %lo(D_80030810) # addiu $t0, $t0, 0x810 +/* 05A548 7F025A18 AFA80084 */ sw $t0, 0x84($sp) +.L7F025A1C: +/* 05A54C 7F025A1C AFB40074 */ sw $s4, 0x74($sp) +/* 05A550 7F025A20 1000002D */ b .L7F025AD8 +/* 05A554 7F025A24 AFB40070 */ sw $s4, 0x70($sp) +.L7F025A28: +/* 05A558 7F025A28 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05A55C 7F025A2C 02002025 */ move $a0, $s0 +/* 05A560 7F025A30 54400005 */ bnezl $v0, .L7F025A48 +/* 05A564 7F025A34 0010102B */ sltu $v0, $zero, $s0 +/* 05A568 7F025A38 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05A56C 7F025A3C 02202025 */ move $a0, $s1 +/* 05A570 7F025A40 10400013 */ beqz $v0, .L7F025A90 +/* 05A574 7F025A44 0010102B */ sltu $v0, $zero, $s0 +.L7F025A48: +/* 05A578 7F025A48 12400005 */ beqz $s2, .L7F025A60 +/* 05A57C 7F025A4C AFA20078 */ sw $v0, 0x78($sp) +/* 05A580 7F025A50 3C0C8003 */ lui $t4, %hi(D_80030738) +/* 05A584 7F025A54 258C0738 */ addiu $t4, %lo(D_80030738) # addiu $t4, $t4, 0x738 +/* 05A588 7F025A58 10000004 */ b .L7F025A6C +/* 05A58C 7F025A5C AFAC0084 */ sw $t4, 0x84($sp) +.L7F025A60: +/* 05A590 7F025A60 3C0B8003 */ lui $t3, %hi(D_800306F0) +/* 05A594 7F025A64 256B06F0 */ addiu $t3, %lo(D_800306F0) # addiu $t3, $t3, 0x6f0 +/* 05A598 7F025A68 AFAB0084 */ sw $t3, 0x84($sp) +.L7F025A6C: +/* 05A59C 7F025A6C 10400004 */ beqz $v0, .L7F025A80 +/* 05A5A0 7F025A70 24090001 */ li $t1, 1 +/* 05A5A4 7F025A74 AFA90074 */ sw $t1, 0x74($sp) +/* 05A5A8 7F025A78 10000017 */ b .L7F025AD8 +/* 05A5AC 7F025A7C 24140001 */ li $s4, 1 +.L7F025A80: +/* 05A5B0 7F025A80 24020001 */ li $v0, 1 +/* 05A5B4 7F025A84 AFA20070 */ sw $v0, 0x70($sp) +/* 05A5B8 7F025A88 10000013 */ b .L7F025AD8 +/* 05A5BC 7F025A8C 24140001 */ li $s4, 1 +.L7F025A90: +/* 05A5C0 7F025A90 0010102B */ sltu $v0, $zero, $s0 +/* 05A5C4 7F025A94 12400005 */ beqz $s2, .L7F025AAC +/* 05A5C8 7F025A98 AFA20078 */ sw $v0, 0x78($sp) +/* 05A5CC 7F025A9C 3C0A8003 */ lui $t2, %hi(D_800306A8) +/* 05A5D0 7F025AA0 254A06A8 */ addiu $t2, %lo(D_800306A8) # addiu $t2, $t2, 0x6a8 +/* 05A5D4 7F025AA4 10000004 */ b .L7F025AB8 +/* 05A5D8 7F025AA8 AFAA0084 */ sw $t2, 0x84($sp) +.L7F025AAC: +/* 05A5DC 7F025AAC 3C0D8003 */ lui $t5, %hi(D_80030660) +/* 05A5E0 7F025AB0 25AD0660 */ addiu $t5, %lo(D_80030660) # addiu $t5, $t5, 0x660 +/* 05A5E4 7F025AB4 AFAD0084 */ sw $t5, 0x84($sp) +.L7F025AB8: +/* 05A5E8 7F025AB8 10400005 */ beqz $v0, .L7F025AD0 +/* 05A5EC 7F025ABC 24140001 */ li $s4, 1 +/* 05A5F0 7F025AC0 240F0001 */ li $t7, 1 +/* 05A5F4 7F025AC4 AFAF0074 */ sw $t7, 0x74($sp) +/* 05A5F8 7F025AC8 10000003 */ b .L7F025AD8 +/* 05A5FC 7F025ACC 24140001 */ li $s4, 1 +.L7F025AD0: +/* 05A600 7F025AD0 24020001 */ li $v0, 1 +/* 05A604 7F025AD4 AFA20070 */ sw $v0, 0x70($sp) +.L7F025AD8: +/* 05A608 7F025AD8 00008825 */ move $s1, $zero +/* 05A60C 7F025ADC 00009025 */ move $s2, $zero +/* 05A610 7F025AE0 27B30070 */ addiu $s3, $sp, 0x70 +.L7F025AE4: +/* 05A614 7F025AE4 8E6E0000 */ lw $t6, ($s3) +/* 05A618 7F025AE8 02A02025 */ move $a0, $s5 +/* 05A61C 7F025AEC 51C00012 */ beql $t6, $zero, .L7F025B38 +/* 05A620 7F025AF0 26310001 */ addiu $s1, $s1, 1 +/* 05A624 7F025AF4 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A628 7F025AF8 02202825 */ move $a1, $s1 +/* 05A62C 7F025AFC 8C500004 */ lw $s0, 4($v0) +/* 05A630 7F025B00 0FC177F3 */ jal get_automatic_firing_rate +/* 05A634 7F025B04 82040080 */ lb $a0, 0x80($s0) +/* 05A638 7F025B08 04410002 */ bgez $v0, .L7F025B14 +/* 05A63C 7F025B0C 03B2C821 */ addu $t9, $sp, $s2 +/* 05A640 7F025B10 AF340068 */ sw $s4, 0x68($t9) +.L7F025B14: +/* 05A644 7F025B14 82020080 */ lb $v0, 0x80($s0) +/* 05A648 7F025B18 24010019 */ li $at, 25 +/* 05A64C 7F025B1C 03B2C021 */ addu $t8, $sp, $s2 +/* 05A650 7F025B20 10410003 */ beq $v0, $at, .L7F025B30 +/* 05A654 7F025B24 24010018 */ li $at, 24 +/* 05A658 7F025B28 54410003 */ bnel $v0, $at, .L7F025B38 +/* 05A65C 7F025B2C 26310001 */ addiu $s1, $s1, 1 +.L7F025B30: +/* 05A660 7F025B30 AF140060 */ sw $s4, 0x60($t8) +/* 05A664 7F025B34 26310001 */ addiu $s1, $s1, 1 +.L7F025B38: +/* 05A668 7F025B38 24010002 */ li $at, 2 +/* 05A66C 7F025B3C 26520004 */ addiu $s2, $s2, 4 +/* 05A670 7F025B40 1621FFE8 */ bne $s1, $at, .L7F025AE4 +/* 05A674 7F025B44 26730004 */ addiu $s3, $s3, 4 +/* 05A678 7F025B48 24080009 */ li $t0, 9 +/* 05A67C 7F025B4C A2A80007 */ sb $t0, 7($s5) +/* 05A680 7F025B50 0C002914 */ jal get_random_value +/* 05A684 7F025B54 AEA00030 */ sw $zero, 0x30($s5) +/* 05A688 7F025B58 3C0143C8 */ li $at, 0x43C80000 # 400.000000 +/* 05A68C 7F025B5C 44812000 */ mtc1 $at, $f4 +/* 05A690 7F025B60 3C018003 */ lui $at, %hi(ai_reaction_speed) +/* 05A694 7F025B64 C426CE4C */ lwc1 $f6, %lo(ai_reaction_speed)($at) +/* 05A698 7F025B68 AEA00038 */ sw $zero, 0x38($s5) +/* 05A69C 7F025B6C 46062202 */ mul.s $f8, $f4, $f6 +/* 05A6A0 7F025B70 4600428D */ trunc.w.s $f10, $f8 +/* 05A6A4 7F025B74 440B5000 */ mfc1 $t3, $f10 +/* 05A6A8 7F025B78 00000000 */ nop +/* 05A6AC 7F025B7C 004B001B */ divu $zero, $v0, $t3 +/* 05A6B0 7F025B80 00004810 */ mfhi $t1 +/* 05A6B4 7F025B84 252A0078 */ addiu $t2, $t1, 0x78 +/* 05A6B8 7F025B88 AEAA0034 */ sw $t2, 0x34($s5) +/* 05A6BC 7F025B8C 8FAD0084 */ lw $t5, 0x84($sp) +/* 05A6C0 7F025B90 15600002 */ bnez $t3, .L7F025B9C +/* 05A6C4 7F025B94 00000000 */ nop +/* 05A6C8 7F025B98 0007000D */ break 7 +.L7F025B9C: +/* 05A6CC 7F025B9C AEA00040 */ sw $zero, 0x40($s5) +/* 05A6D0 7F025BA0 0C002914 */ jal get_random_value +/* 05A6D4 7F025BA4 AEAD003C */ sw $t5, 0x3c($s5) +/* 05A6D8 7F025BA8 304F0001 */ andi $t7, $v0, 1 +/* 05A6DC 7F025BAC AEAF0044 */ sw $t7, 0x44($s5) +/* 05A6E0 7F025BB0 8FAE0074 */ lw $t6, 0x74($sp) +/* 05A6E4 7F025BB4 44808000 */ mtc1 $zero, $f16 +/* 05A6E8 7F025BB8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05A6EC 7F025BBC A2AE0049 */ sb $t6, 0x49($s5) +/* 05A6F0 7F025BC0 8FB90070 */ lw $t9, 0x70($sp) +/* 05A6F4 7F025BC4 44819000 */ mtc1 $at, $f18 +/* 05A6F8 7F025BC8 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05A6FC 7F025BCC A2B90048 */ sb $t9, 0x48($s5) +/* 05A700 7F025BD0 8FB8006C */ lw $t8, 0x6c($sp) +/* 05A704 7F025BD4 44812000 */ mtc1 $at, $f4 +/* 05A708 7F025BD8 8EA4001C */ lw $a0, 0x1c($s5) +/* 05A70C 7F025BDC A2B8004B */ sb $t8, 0x4b($s5) +/* 05A710 7F025BE0 8FA80068 */ lw $t0, 0x68($sp) +/* 05A714 7F025BE4 A2A8004A */ sb $t0, 0x4a($s5) +/* 05A718 7F025BE8 8FAC0064 */ lw $t4, 0x64($sp) +/* 05A71C 7F025BEC A2AC004D */ sb $t4, 0x4d($s5) +/* 05A720 7F025BF0 8FAB0060 */ lw $t3, 0x60($sp) +/* 05A724 7F025BF4 A2A00008 */ sb $zero, 8($s5) +/* 05A728 7F025BF8 E6B00054 */ swc1 $f16, 0x54($s5) +/* 05A72C 7F025BFC A2AB004C */ sb $t3, 0x4c($s5) +/* 05A730 7F025C00 8FA90084 */ lw $t1, 0x84($sp) +/* 05A734 7F025C04 8FA60078 */ lw $a2, 0x78($sp) +/* 05A738 7F025C08 8D250000 */ lw $a1, ($t1) +/* 05A73C 7F025C0C 8D270010 */ lw $a3, 0x10($t1) +/* 05A740 7F025C10 E7B20010 */ swc1 $f18, 0x10($sp) +/* 05A744 7F025C14 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05A748 7F025C18 E7A40014 */ swc1 $f4, 0x14($sp) +/* 05A74C 7F025C1C 8FBF0034 */ lw $ra, 0x34($sp) +/* 05A750 7F025C20 8FB0001C */ lw $s0, 0x1c($sp) +/* 05A754 7F025C24 8FB10020 */ lw $s1, 0x20($sp) +/* 05A758 7F025C28 8FB20024 */ lw $s2, 0x24($sp) +/* 05A75C 7F025C2C 8FB30028 */ lw $s3, 0x28($sp) +/* 05A760 7F025C30 8FB4002C */ lw $s4, 0x2c($sp) +/* 05A764 7F025C34 8FB50030 */ lw $s5, 0x30($sp) +/* 05A768 7F025C38 03E00008 */ jr $ra +/* 05A76C 7F025C3C 27BD0088 */ addiu $sp, $sp, 0x88 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F025C40(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F025C40 +/* 05A770 7F025C40 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 05A774 7F025C44 AFBF002C */ sw $ra, 0x2c($sp) +/* 05A778 7F025C48 AFB30028 */ sw $s3, 0x28($sp) +/* 05A77C 7F025C4C AFB20024 */ sw $s2, 0x24($sp) +/* 05A780 7F025C50 AFB10020 */ sw $s1, 0x20($sp) +/* 05A784 7F025C54 AFB0001C */ sw $s0, 0x1c($sp) +/* 05A788 7F025C58 AFA50094 */ sw $a1, 0x94($sp) +/* 05A78C 7F025C5C 8C8E001C */ lw $t6, 0x1c($a0) +/* 05A790 7F025C60 00809025 */ move $s2, $a0 +/* 05A794 7F025C64 24050001 */ li $a1, 1 +/* 05A798 7F025C68 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A79C 7F025C6C AFAE008C */ sw $t6, 0x8c($sp) +/* 05A7A0 7F025C70 00408025 */ move $s0, $v0 +/* 05A7A4 7F025C74 02402025 */ move $a0, $s2 +/* 05A7A8 7F025C78 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A7AC 7F025C7C 00002825 */ move $a1, $zero +/* 05A7B0 7F025C80 3C188003 */ lui $t8, %hi(D_800309E0) +/* 05A7B4 7F025C84 AFA00078 */ sw $zero, 0x78($sp) +/* 05A7B8 7F025C88 271809E0 */ addiu $t8, %lo(D_800309E0) # addiu $t8, $t8, 0x9e0 +/* 05A7BC 7F025C8C 8F010000 */ lw $at, ($t8) +/* 05A7C0 7F025C90 8F090004 */ lw $t1, 4($t8) +/* 05A7C4 7F025C94 27AF0064 */ addiu $t7, $sp, 0x64 +/* 05A7C8 7F025C98 3C0B8003 */ lui $t3, %hi(D_800309E8) +/* 05A7CC 7F025C9C ADE10000 */ sw $at, ($t7) +/* 05A7D0 7F025CA0 ADE90004 */ sw $t1, 4($t7) +/* 05A7D4 7F025CA4 AFA0005C */ sw $zero, 0x5c($sp) +/* 05A7D8 7F025CA8 256B09E8 */ addiu $t3, %lo(D_800309E8) # addiu $t3, $t3, 0x9e8 +/* 05A7DC 7F025CAC 8D610000 */ lw $at, ($t3) +/* 05A7E0 7F025CB0 8D6E0004 */ lw $t6, 4($t3) +/* 05A7E4 7F025CB4 27AA0054 */ addiu $t2, $sp, 0x54 +/* 05A7E8 7F025CB8 3C198003 */ lui $t9, %hi(D_800309F0) +/* 05A7EC 7F025CBC 273909F0 */ addiu $t9, %lo(D_800309F0) # addiu $t9, $t9, 0x9f0 +/* 05A7F0 7F025CC0 AD410000 */ sw $at, ($t2) +/* 05A7F4 7F025CC4 AD4E0004 */ sw $t6, 4($t2) +/* 05A7F8 7F025CC8 8F290004 */ lw $t1, 4($t9) +/* 05A7FC 7F025CCC 8F210000 */ lw $at, ($t9) +/* 05A800 7F025CD0 27A8004C */ addiu $t0, $sp, 0x4c +/* 05A804 7F025CD4 00408825 */ move $s1, $v0 +/* 05A808 7F025CD8 24130001 */ li $s3, 1 +/* 05A80C 7F025CDC AD090004 */ sw $t1, 4($t0) +/* 05A810 7F025CE0 12000029 */ beqz $s0, .L7F025D88 +/* 05A814 7F025CE4 AD010000 */ sw $at, ($t0) +/* 05A818 7F025CE8 10400027 */ beqz $v0, .L7F025D88 +/* 05A81C 7F025CEC 02402025 */ move $a0, $s2 +/* 05A820 7F025CF0 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05A824 7F025CF4 24050001 */ li $a1, 1 +/* 05A828 7F025CF8 00408025 */ move $s0, $v0 +/* 05A82C 7F025CFC 02402025 */ move $a0, $s2 +/* 05A830 7F025D00 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05A834 7F025D04 00002825 */ move $a1, $zero +/* 05A838 7F025D08 12000018 */ beqz $s0, .L7F025D6C +/* 05A83C 7F025D0C 2C430001 */ sltiu $v1, $v0, 1 +/* 05A840 7F025D10 50400017 */ beql $v0, $zero, .L7F025D70 +/* 05A844 7F025D14 24080001 */ li $t0, 1 +/* 05A848 7F025D18 0C002914 */ jal get_random_value +/* 05A84C 7F025D1C 00000000 */ nop +/* 05A850 7F025D20 304D0001 */ andi $t5, $v0, 1 +/* 05A854 7F025D24 240C0001 */ li $t4, 1 +/* 05A858 7F025D28 AFAD007C */ sw $t5, 0x7c($sp) +/* 05A85C 7F025D2C 0C002914 */ jal get_random_value +/* 05A860 7F025D30 AFAC0078 */ sw $t4, 0x78($sp) +/* 05A864 7F025D34 24010003 */ li $at, 3 +/* 05A868 7F025D38 0041001B */ divu $zero, $v0, $at +/* 05A86C 7F025D3C 00005010 */ mfhi $t2 +/* 05A870 7F025D40 24180001 */ li $t8, 1 +/* 05A874 7F025D44 15400006 */ bnez $t2, .L7F025D60 +/* 05A878 7F025D48 240F0001 */ li $t7, 1 +/* 05A87C 7F025D4C 8FAB007C */ lw $t3, 0x7c($sp) +/* 05A880 7F025D50 2D6E0001 */ sltiu $t6, $t3, 1 +/* 05A884 7F025D54 AFAE0064 */ sw $t6, 0x64($sp) +/* 05A888 7F025D58 1000001F */ b .L7F025DD8 +/* 05A88C 7F025D5C AFAB0068 */ sw $t3, 0x68($sp) +.L7F025D60: +/* 05A890 7F025D60 AFB80068 */ sw $t8, 0x68($sp) +/* 05A894 7F025D64 1000001C */ b .L7F025DD8 +/* 05A898 7F025D68 AFAF0064 */ sw $t7, 0x64($sp) +.L7F025D6C: +/* 05A89C 7F025D6C 24080001 */ li $t0, 1 +.L7F025D70: +/* 05A8A0 7F025D70 2C790001 */ sltiu $t9, $v1, 1 +/* 05A8A4 7F025D74 AFA3007C */ sw $v1, 0x7c($sp) +/* 05A8A8 7F025D78 AFA80078 */ sw $t0, 0x78($sp) +/* 05A8AC 7F025D7C AFA30068 */ sw $v1, 0x68($sp) +/* 05A8B0 7F025D80 10000015 */ b .L7F025DD8 +/* 05A8B4 7F025D84 AFB90064 */ sw $t9, 0x64($sp) +.L7F025D88: +/* 05A8B8 7F025D88 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05A8BC 7F025D8C 02002025 */ move $a0, $s0 +/* 05A8C0 7F025D90 54400005 */ bnezl $v0, .L7F025DA8 +/* 05A8C4 7F025D94 0010102B */ sltu $v0, $zero, $s0 +/* 05A8C8 7F025D98 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05A8CC 7F025D9C 02202025 */ move $a0, $s1 +/* 05A8D0 7F025DA0 10400008 */ beqz $v0, .L7F025DC4 +/* 05A8D4 7F025DA4 0010102B */ sltu $v0, $zero, $s0 +.L7F025DA8: +/* 05A8D8 7F025DA8 24090001 */ li $t1, 1 +/* 05A8DC 7F025DAC 2C4D0001 */ sltiu $t5, $v0, 1 +/* 05A8E0 7F025DB0 AFA2007C */ sw $v0, 0x7c($sp) +/* 05A8E4 7F025DB4 AFA90078 */ sw $t1, 0x78($sp) +/* 05A8E8 7F025DB8 AFA20068 */ sw $v0, 0x68($sp) +/* 05A8EC 7F025DBC 10000006 */ b .L7F025DD8 +/* 05A8F0 7F025DC0 AFAD0064 */ sw $t5, 0x64($sp) +.L7F025DC4: +/* 05A8F4 7F025DC4 0010102B */ sltu $v0, $zero, $s0 +/* 05A8F8 7F025DC8 2C4C0001 */ sltiu $t4, $v0, 1 +/* 05A8FC 7F025DCC AFA2007C */ sw $v0, 0x7c($sp) +/* 05A900 7F025DD0 AFA20068 */ sw $v0, 0x68($sp) +/* 05A904 7F025DD4 AFAC0064 */ sw $t4, 0x64($sp) +.L7F025DD8: +/* 05A908 7F025DD8 8FA20094 */ lw $v0, 0x94($sp) +/* 05A90C 7F025DDC 8FAA007C */ lw $t2, 0x7c($sp) +/* 05A910 7F025DE0 10400003 */ beqz $v0, .L7F025DF0 +/* 05A914 7F025DE4 00000000 */ nop +/* 05A918 7F025DE8 11400005 */ beqz $t2, .L7F025E00 +/* 05A91C 7F025DEC 00000000 */ nop +.L7F025DF0: +/* 05A920 7F025DF0 1440000F */ bnez $v0, .L7F025E30 +/* 05A924 7F025DF4 8FAB007C */ lw $t3, 0x7c($sp) +/* 05A928 7F025DF8 1160000D */ beqz $t3, .L7F025E30 +/* 05A92C 7F025DFC 00000000 */ nop +.L7F025E00: +/* 05A930 7F025E00 0C002914 */ jal get_random_value +/* 05A934 7F025E04 00000000 */ nop +/* 05A938 7F025E08 304E0001 */ andi $t6, $v0, 1 +/* 05A93C 7F025E0C 11C00005 */ beqz $t6, .L7F025E24 +/* 05A940 7F025E10 3C0F8003 */ lui $t7, %hi(D_80030108) +/* 05A944 7F025E14 3C188003 */ lui $t8, %hi(D_80030078) +/* 05A948 7F025E18 27180078 */ addiu $t8, %lo(D_80030078) # addiu $t8, $t8, 0x78 +/* 05A94C 7F025E1C 1000000F */ b .L7F025E5C +/* 05A950 7F025E20 AFB80088 */ sw $t8, 0x88($sp) +.L7F025E24: +/* 05A954 7F025E24 25EF0108 */ addiu $t7, %lo(D_80030108) # addiu $t7, $t7, 0x108 +/* 05A958 7F025E28 1000000C */ b .L7F025E5C +/* 05A95C 7F025E2C AFAF0088 */ sw $t7, 0x88($sp) +.L7F025E30: +/* 05A960 7F025E30 0C002914 */ jal get_random_value +/* 05A964 7F025E34 00000000 */ nop +/* 05A968 7F025E38 30480001 */ andi $t0, $v0, 1 +/* 05A96C 7F025E3C 11000005 */ beqz $t0, .L7F025E54 +/* 05A970 7F025E40 3C098003 */ lui $t1, %hi(D_80030150) +/* 05A974 7F025E44 3C198003 */ lui $t9, %hi(D_800300C0) +/* 05A978 7F025E48 273900C0 */ addiu $t9, %lo(D_800300C0) # addiu $t9, $t9, 0xc0 +/* 05A97C 7F025E4C 10000003 */ b .L7F025E5C +/* 05A980 7F025E50 AFB90088 */ sw $t9, 0x88($sp) +.L7F025E54: +/* 05A984 7F025E54 25290150 */ addiu $t1, %lo(D_80030150) # addiu $t1, $t1, 0x150 +/* 05A988 7F025E58 AFA90088 */ sw $t1, 0x88($sp) +.L7F025E5C: +/* 05A98C 7F025E5C 8FAD0078 */ lw $t5, 0x78($sp) +/* 05A990 7F025E60 00008025 */ move $s0, $zero +/* 05A994 7F025E64 00003025 */ move $a2, $zero +/* 05A998 7F025E68 11A00004 */ beqz $t5, .L7F025E7C +/* 05A99C 7F025E6C 27A70064 */ addiu $a3, $sp, 0x64 +/* 05A9A0 7F025E70 8FAC0088 */ lw $t4, 0x88($sp) +/* 05A9A4 7F025E74 258A0120 */ addiu $t2, $t4, 0x120 +/* 05A9A8 7F025E78 AFAA0088 */ sw $t2, 0x88($sp) +.L7F025E7C: +/* 05A9AC 7F025E7C 24110001 */ li $s1, 1 +.L7F025E80: +/* 05A9B0 7F025E80 8CEB0000 */ lw $t3, ($a3) +/* 05A9B4 7F025E84 02402025 */ move $a0, $s2 +/* 05A9B8 7F025E88 02002825 */ move $a1, $s0 +/* 05A9BC 7F025E8C 5160001F */ beql $t3, $zero, .L7F025F0C +/* 05A9C0 7F025E90 26100001 */ addiu $s0, $s0, 1 +/* 05A9C4 7F025E94 AFA60038 */ sw $a2, 0x38($sp) +/* 05A9C8 7F025E98 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05A9CC 7F025E9C AFA70034 */ sw $a3, 0x34($sp) +/* 05A9D0 7F025EA0 8C430004 */ lw $v1, 4($v0) +/* 05A9D4 7F025EA4 80640080 */ lb $a0, 0x80($v1) +/* 05A9D8 7F025EA8 0FC177F3 */ jal get_automatic_firing_rate +/* 05A9DC 7F025EAC AFA30070 */ sw $v1, 0x70($sp) +/* 05A9E0 7F025EB0 8FA30070 */ lw $v1, 0x70($sp) +/* 05A9E4 7F025EB4 8FA60038 */ lw $a2, 0x38($sp) +/* 05A9E8 7F025EB8 04410009 */ bgez $v0, .L7F025EE0 +/* 05A9EC 7F025EBC 8FA70034 */ lw $a3, 0x34($sp) +/* 05A9F0 7F025EC0 03A67021 */ addu $t6, $sp, $a2 +/* 05A9F4 7F025EC4 ADD10054 */ sw $s1, 0x54($t6) +/* 05A9F8 7F025EC8 80620080 */ lb $v0, 0x80($v1) +/* 05A9FC 7F025ECC 24010016 */ li $at, 22 +/* 05AA00 7F025ED0 54410007 */ bnel $v0, $at, .L7F025EF0 +/* 05AA04 7F025ED4 24010019 */ li $at, 25 +/* 05AA08 7F025ED8 10000004 */ b .L7F025EEC +/* 05AA0C 7F025EDC 00009825 */ move $s3, $zero +.L7F025EE0: +/* 05AA10 7F025EE0 AFB1005C */ sw $s1, 0x5c($sp) +/* 05AA14 7F025EE4 00009825 */ move $s3, $zero +/* 05AA18 7F025EE8 80620080 */ lb $v0, 0x80($v1) +.L7F025EEC: +/* 05AA1C 7F025EEC 24010019 */ li $at, 25 +.L7F025EF0: +/* 05AA20 7F025EF0 10410004 */ beq $v0, $at, .L7F025F04 +/* 05AA24 7F025EF4 03A6C021 */ addu $t8, $sp, $a2 +/* 05AA28 7F025EF8 24010018 */ li $at, 24 +/* 05AA2C 7F025EFC 54410003 */ bnel $v0, $at, .L7F025F0C +/* 05AA30 7F025F00 26100001 */ addiu $s0, $s0, 1 +.L7F025F04: +/* 05AA34 7F025F04 AF11004C */ sw $s1, 0x4c($t8) +/* 05AA38 7F025F08 26100001 */ addiu $s0, $s0, 1 +.L7F025F0C: +/* 05AA3C 7F025F0C 24010002 */ li $at, 2 +/* 05AA40 7F025F10 24C60004 */ addiu $a2, $a2, 4 +/* 05AA44 7F025F14 1601FFDA */ bne $s0, $at, .L7F025E80 +/* 05AA48 7F025F18 24E70004 */ addiu $a3, $a3, 4 +/* 05AA4C 7F025F1C 240F000A */ li $t7, 10 +/* 05AA50 7F025F20 A24F0007 */ sb $t7, 7($s2) +/* 05AA54 7F025F24 8FA80088 */ lw $t0, 0x88($sp) +/* 05AA58 7F025F28 A2400031 */ sb $zero, 0x31($s2) +/* 05AA5C 7F025F2C 0C002914 */ jal get_random_value +/* 05AA60 7F025F30 AE48002C */ sw $t0, 0x2c($s2) +/* 05AA64 7F025F34 30590001 */ andi $t9, $v0, 1 +/* 05AA68 7F025F38 A2590032 */ sb $t9, 0x32($s2) +/* 05AA6C 7F025F3C 8FA90068 */ lw $t1, 0x68($sp) +/* 05AA70 7F025F40 A2490039 */ sb $t1, 0x39($s2) +/* 05AA74 7F025F44 8FAD0064 */ lw $t5, 0x64($sp) +/* 05AA78 7F025F48 A24D0038 */ sb $t5, 0x38($s2) +/* 05AA7C 7F025F4C 8FAC0058 */ lw $t4, 0x58($sp) +/* 05AA80 7F025F50 A24C003B */ sb $t4, 0x3b($s2) +/* 05AA84 7F025F54 8FAA0054 */ lw $t2, 0x54($sp) +/* 05AA88 7F025F58 A24A003A */ sb $t2, 0x3a($s2) +/* 05AA8C 7F025F5C 8FAB0050 */ lw $t3, 0x50($sp) +/* 05AA90 7F025F60 A24B003D */ sb $t3, 0x3d($s2) +/* 05AA94 7F025F64 8FAE004C */ lw $t6, 0x4c($sp) +/* 05AA98 7F025F68 A2530036 */ sb $s3, 0x36($s2) +/* 05AA9C 7F025F6C A24E003C */ sb $t6, 0x3c($s2) +/* 05AAA0 7F025F70 8FB8005C */ lw $t8, 0x5c($sp) +/* 05AAA4 7F025F74 A2580037 */ sb $t8, 0x37($s2) +/* 05AAA8 7F025F78 8FAF0078 */ lw $t7, 0x78($sp) +/* 05AAAC 7F025F7C AE400040 */ sw $zero, 0x40($s2) +/* 05AAB0 7F025F80 A2400033 */ sb $zero, 0x33($s2) +/* 05AAB4 7F025F84 A2510030 */ sb $s1, 0x30($s2) +/* 05AAB8 7F025F88 A24F0035 */ sb $t7, 0x35($s2) +/* 05AABC 7F025F8C 8FA80050 */ lw $t0, 0x50($sp) +/* 05AAC0 7F025F90 8FB9004C */ lw $t9, 0x4c($sp) +/* 05AAC4 7F025F94 8FA90050 */ lw $t1, 0x50($sp) +/* 05AAC8 7F025F98 15000003 */ bnez $t0, .L7F025FA8 +/* 05AACC 7F025F9C 00000000 */ nop +/* 05AAD0 7F025FA0 13200009 */ beqz $t9, .L7F025FC8 +/* 05AAD4 7F025FA4 00000000 */ nop +.L7F025FA8: +/* 05AAD8 7F025FA8 11200005 */ beqz $t1, .L7F025FC0 +/* 05AADC 7F025FAC 8FAD004C */ lw $t5, 0x4c($sp) +/* 05AAE0 7F025FB0 11A00003 */ beqz $t5, .L7F025FC0 +/* 05AAE4 7F025FB4 240C0002 */ li $t4, 2 +/* 05AAE8 7F025FB8 10000015 */ b .L7F026010 +/* 05AAEC 7F025FBC A24C0034 */ sb $t4, 0x34($s2) +.L7F025FC0: +/* 05AAF0 7F025FC0 10000013 */ b .L7F026010 +/* 05AAF4 7F025FC4 A2510034 */ sb $s1, 0x34($s2) +.L7F025FC8: +/* 05AAF8 7F025FC8 0C002914 */ jal get_random_value +/* 05AAFC 7F025FCC 00000000 */ nop +/* 05AB00 7F025FD0 304A0003 */ andi $t2, $v0, 3 +/* 05AB04 7F025FD4 254B0002 */ addiu $t3, $t2, 2 +/* 05AB08 7F025FD8 A24B0034 */ sb $t3, 0x34($s2) +/* 05AB0C 7F025FDC 8FAE0064 */ lw $t6, 0x64($sp) +/* 05AB10 7F025FE0 8FB80068 */ lw $t8, 0x68($sp) +/* 05AB14 7F025FE4 51C0000B */ beql $t6, $zero, .L7F026014 +/* 05AB18 7F025FE8 3C063F4C */ lui $a2, 0x3f4c +/* 05AB1C 7F025FEC 53000009 */ beql $t8, $zero, .L7F026014 +/* 05AB20 7F025FF0 3C063F4C */ lui $a2, 0x3f4c +/* 05AB24 7F025FF4 0C002914 */ jal get_random_value +/* 05AB28 7F025FF8 00000000 */ nop +/* 05AB2C 7F025FFC 824F0034 */ lb $t7, 0x34($s2) +/* 05AB30 7F026000 30480003 */ andi $t0, $v0, 3 +/* 05AB34 7F026004 01E8C821 */ addu $t9, $t7, $t0 +/* 05AB38 7F026008 27290002 */ addiu $t1, $t9, 2 +/* 05AB3C 7F02600C A2490034 */ sb $t1, 0x34($s2) +.L7F026010: +/* 05AB40 7F026010 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +.L7F026014: +/* 05AB44 7F026014 AE51004C */ sw $s1, 0x4c($s2) +/* 05AB48 7F026018 AE400050 */ sw $zero, 0x50($s2) +/* 05AB4C 7F02601C AE510054 */ sw $s1, 0x54($s2) +/* 05AB50 7F026020 AE400058 */ sw $zero, 0x58($s2) +/* 05AB54 7F026024 AE400044 */ sw $zero, 0x44($s2) +/* 05AB58 7F026028 AE400048 */ sw $zero, 0x48($s2) +/* 05AB5C 7F02602C A2400008 */ sb $zero, 8($s2) +/* 05AB60 7F026030 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 05AB64 7F026034 02402025 */ move $a0, $s2 +/* 05AB68 7F026038 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 05AB6C 7F02603C 3C053F00 */ lui $a1, 0x3f00 +/* 05AB70 7F026040 8FAD0088 */ lw $t5, 0x88($sp) +/* 05AB74 7F026044 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05AB78 7F026048 44812000 */ mtc1 $at, $f4 +/* 05AB7C 7F02604C 8DA50000 */ lw $a1, ($t5) +/* 05AB80 7F026050 8DA70010 */ lw $a3, 0x10($t5) +/* 05AB84 7F026054 E7A00010 */ swc1 $f0, 0x10($sp) +/* 05AB88 7F026058 8FA4008C */ lw $a0, 0x8c($sp) +/* 05AB8C 7F02605C 8FA6007C */ lw $a2, 0x7c($sp) +/* 05AB90 7F026060 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05AB94 7F026064 E7A40014 */ swc1 $f4, 0x14($sp) +/* 05AB98 7F026068 8FAC0078 */ lw $t4, 0x78($sp) +/* 05AB9C 7F02606C 5580002A */ bnezl $t4, .L7F026118 +/* 05ABA0 7F026070 8FBF002C */ lw $ra, 0x2c($sp) +/* 05ABA4 7F026074 12600013 */ beqz $s3, .L7F0260C4 +/* 05ABA8 7F026078 8FAE0088 */ lw $t6, 0x88($sp) +/* 05ABAC 7F02607C 8FAA0088 */ lw $t2, 0x88($sp) +/* 05ABB0 7F026080 44801000 */ mtc1 $zero, $f2 +/* 05ABB4 7F026084 8FAB0088 */ lw $t3, 0x88($sp) +/* 05ABB8 7F026088 C5400024 */ lwc1 $f0, 0x24($t2) +/* 05ABBC 7F02608C 4600103E */ c.le.s $f2, $f0 +/* 05ABC0 7F026090 00000000 */ nop +/* 05ABC4 7F026094 45020007 */ bc1fl .L7F0260B4 +/* 05ABC8 7F026098 8FA4008C */ lw $a0, 0x8c($sp) +/* 05ABCC 7F02609C 44050000 */ mfc1 $a1, $f0 +/* 05ABD0 7F0260A0 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05ABD4 7F0260A4 8FA4008C */ lw $a0, 0x8c($sp) +/* 05ABD8 7F0260A8 1000001B */ b .L7F026118 +/* 05ABDC 7F0260AC 8FBF002C */ lw $ra, 0x2c($sp) +/* 05ABE0 7F0260B0 8FA4008C */ lw $a0, 0x8c($sp) +.L7F0260B4: +/* 05ABE4 7F0260B4 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05ABE8 7F0260B8 8D65001C */ lw $a1, 0x1c($t3) +/* 05ABEC 7F0260BC 10000016 */ b .L7F026118 +/* 05ABF0 7F0260C0 8FBF002C */ lw $ra, 0x2c($sp) +.L7F0260C4: +/* 05ABF4 7F0260C4 44801000 */ mtc1 $zero, $f2 +/* 05ABF8 7F0260C8 C5C00020 */ lwc1 $f0, 0x20($t6) +/* 05ABFC 7F0260CC 8FB80088 */ lw $t8, 0x88($sp) +/* 05AC00 7F0260D0 4600103E */ c.le.s $f2, $f0 +/* 05AC04 7F0260D4 00000000 */ nop +/* 05AC08 7F0260D8 45020007 */ bc1fl .L7F0260F8 +/* 05AC0C 7F0260DC C7000014 */ lwc1 $f0, 0x14($t8) +/* 05AC10 7F0260E0 44050000 */ mfc1 $a1, $f0 +/* 05AC14 7F0260E4 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05AC18 7F0260E8 8FA4008C */ lw $a0, 0x8c($sp) +/* 05AC1C 7F0260EC 1000000A */ b .L7F026118 +/* 05AC20 7F0260F0 8FBF002C */ lw $ra, 0x2c($sp) +/* 05AC24 7F0260F4 C7000014 */ lwc1 $f0, 0x14($t8) +.L7F0260F8: +/* 05AC28 7F0260F8 4600103E */ c.le.s $f2, $f0 +/* 05AC2C 7F0260FC 00000000 */ nop +/* 05AC30 7F026100 45020005 */ bc1fl .L7F026118 +/* 05AC34 7F026104 8FBF002C */ lw $ra, 0x2c($sp) +/* 05AC38 7F026108 44050000 */ mfc1 $a1, $f0 +/* 05AC3C 7F02610C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05AC40 7F026110 8FA4008C */ lw $a0, 0x8c($sp) +/* 05AC44 7F026114 8FBF002C */ lw $ra, 0x2c($sp) +.L7F026118: +/* 05AC48 7F026118 8FB0001C */ lw $s0, 0x1c($sp) +/* 05AC4C 7F02611C 8FB10020 */ lw $s1, 0x20($sp) +/* 05AC50 7F026120 8FB20024 */ lw $s2, 0x24($sp) +/* 05AC54 7F026124 8FB30028 */ lw $s3, 0x28($sp) +/* 05AC58 7F026128 03E00008 */ jr $ra +/* 05AC5C 7F02612C 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F026130(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F026130 +/* 05AC60 7F026130 C48C0000 */ lwc1 $f12, ($a0) +/* 05AC64 7F026134 C4A40000 */ lwc1 $f4, ($a1) +/* 05AC68 7F026138 C4900008 */ lwc1 $f16, 8($a0) +/* 05AC6C 7F02613C C4A60008 */ lwc1 $f6, 8($a1) +/* 05AC70 7F026140 460C2381 */ sub.s $f14, $f4, $f12 +/* 05AC74 7F026144 C4E80000 */ lwc1 $f8, ($a3) +/* 05AC78 7F026148 C4E20008 */ lwc1 $f2, 8($a3) +/* 05AC7C 7F02614C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 05AC80 7F026150 46103481 */ sub.s $f18, $f6, $f16 +/* 05AC84 7F026154 E7A80000 */ swc1 $f8, ($sp) +/* 05AC88 7F026158 460E1282 */ mul.s $f10, $f2, $f14 +/* 05AC8C 7F02615C C7A40000 */ lwc1 $f4, ($sp) +/* 05AC90 7F026160 44804000 */ mtc1 $zero, $f8 +/* 05AC94 7F026164 46049182 */ mul.s $f6, $f18, $f4 +/* 05AC98 7F026168 46065001 */ sub.s $f0, $f10, $f6 +/* 05AC9C 7F02616C 46080032 */ c.eq.s $f0, $f8 +/* 05ACA0 7F026170 C7A80000 */ lwc1 $f8, ($sp) +/* 05ACA4 7F026174 4503001B */ bc1tl .L7F0261E4 +/* 05ACA8 7F026178 44802000 */ mtc1 $zero, $f4 +/* 05ACAC 7F02617C C4CA0000 */ lwc1 $f10, ($a2) +/* 05ACB0 7F026180 8FA20030 */ lw $v0, 0x30($sp) +/* 05ACB4 7F026184 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 05ACB8 7F026188 C7A60014 */ lwc1 $f6, 0x14($sp) +/* 05ACBC 7F02618C 460C3201 */ sub.s $f8, $f6, $f12 +/* 05ACC0 7F026190 46089282 */ mul.s $f10, $f18, $f8 +/* 05ACC4 7F026194 C4C80008 */ lwc1 $f8, 8($a2) +/* 05ACC8 7F026198 46088201 */ sub.s $f8, $f16, $f8 +/* 05ACCC 7F02619C 460E4202 */ mul.s $f8, $f8, $f14 +/* 05ACD0 7F0261A0 46085280 */ add.s $f10, $f10, $f8 +/* 05ACD4 7F0261A4 46005083 */ div.s $f2, $f10, $f0 +/* 05ACD8 7F0261A8 46022202 */ mul.s $f8, $f4, $f2 +/* 05ACDC 7F0261AC 46064280 */ add.s $f10, $f8, $f6 +/* 05ACE0 7F0261B0 E44A0000 */ swc1 $f10, ($v0) +/* 05ACE4 7F0261B4 C4E40004 */ lwc1 $f4, 4($a3) +/* 05ACE8 7F0261B8 C4C60004 */ lwc1 $f6, 4($a2) +/* 05ACEC 7F0261BC 46022202 */ mul.s $f8, $f4, $f2 +/* 05ACF0 7F0261C0 46064280 */ add.s $f10, $f8, $f6 +/* 05ACF4 7F0261C4 E44A0004 */ swc1 $f10, 4($v0) +/* 05ACF8 7F0261C8 C4E40008 */ lwc1 $f4, 8($a3) +/* 05ACFC 7F0261CC C4C60008 */ lwc1 $f6, 8($a2) +/* 05AD00 7F0261D0 46022202 */ mul.s $f8, $f4, $f2 +/* 05AD04 7F0261D4 46064280 */ add.s $f10, $f8, $f6 +/* 05AD08 7F0261D8 1000001A */ b .L7F026244 +/* 05AD0C 7F0261DC E44A0008 */ swc1 $f10, 8($v0) +/* 05AD10 7F0261E0 44802000 */ mtc1 $zero, $f4 +.L7F0261E4: +/* 05AD14 7F0261E4 8FA20030 */ lw $v0, 0x30($sp) +/* 05AD18 7F0261E8 46082032 */ c.eq.s $f4, $f8 +/* 05AD1C 7F0261EC 00000000 */ nop +/* 05AD20 7F0261F0 45020010 */ bc1fl .L7F026234 +/* 05AD24 7F0261F4 E44C0000 */ swc1 $f12, ($v0) +/* 05AD28 7F0261F8 44803000 */ mtc1 $zero, $f6 +/* 05AD2C 7F0261FC 00000000 */ nop +/* 05AD30 7F026200 46023032 */ c.eq.s $f6, $f2 +/* 05AD34 7F026204 00000000 */ nop +/* 05AD38 7F026208 4502000A */ bc1fl .L7F026234 +/* 05AD3C 7F02620C E44C0000 */ swc1 $f12, ($v0) +/* 05AD40 7F026210 8FA20030 */ lw $v0, 0x30($sp) +/* 05AD44 7F026214 C4CA0000 */ lwc1 $f10, ($a2) +/* 05AD48 7F026218 E44A0000 */ swc1 $f10, ($v0) +/* 05AD4C 7F02621C C4C40004 */ lwc1 $f4, 4($a2) +/* 05AD50 7F026220 E4440004 */ swc1 $f4, 4($v0) +/* 05AD54 7F026224 C4C80008 */ lwc1 $f8, 8($a2) +/* 05AD58 7F026228 10000006 */ b .L7F026244 +/* 05AD5C 7F02622C E4480008 */ swc1 $f8, 8($v0) +/* 05AD60 7F026230 E44C0000 */ swc1 $f12, ($v0) +.L7F026234: +/* 05AD64 7F026234 C4860004 */ lwc1 $f6, 4($a0) +/* 05AD68 7F026238 E4460004 */ swc1 $f6, 4($v0) +/* 05AD6C 7F02623C C48A0008 */ lwc1 $f10, 8($a0) +/* 05AD70 7F026240 E44A0008 */ swc1 $f10, 8($v0) +.L7F026244: +/* 05AD74 7F026244 03E00008 */ jr $ra +/* 05AD78 7F026248 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02624C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02624C +/* 05AD7C 7F02624C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 05AD80 7F026250 AFBF001C */ sw $ra, 0x1c($sp) +/* 05AD84 7F026254 AFA40038 */ sw $a0, 0x38($sp) +/* 05AD88 7F026258 AFA5003C */ sw $a1, 0x3c($sp) +/* 05AD8C 7F02625C AFA60040 */ sw $a2, 0x40($sp) +/* 05AD90 7F026260 27A50020 */ addiu $a1, $sp, 0x20 +/* 05AD94 7F026264 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 05AD98 7F026268 27A4002C */ addiu $a0, $sp, 0x2c +/* 05AD9C 7F02626C 8FAE0040 */ lw $t6, 0x40($sp) +/* 05ADA0 7F026270 27A4002C */ addiu $a0, $sp, 0x2c +/* 05ADA4 7F026274 27A50020 */ addiu $a1, $sp, 0x20 +/* 05ADA8 7F026278 8FA60038 */ lw $a2, 0x38($sp) +/* 05ADAC 7F02627C 8FA7003C */ lw $a3, 0x3c($sp) +/* 05ADB0 7F026280 0FC0984C */ jal sub_GAME_7F026130 +/* 05ADB4 7F026284 AFAE0010 */ sw $t6, 0x10($sp) +/* 05ADB8 7F026288 8FBF001C */ lw $ra, 0x1c($sp) +/* 05ADBC 7F02628C 27BD0038 */ addiu $sp, $sp, 0x38 +/* 05ADC0 7F026290 03E00008 */ jr $ra +/* 05ADC4 7F026294 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F026298(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F026298 +/* 05ADC8 7F026298 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 05ADCC 7F02629C AFBF0014 */ sw $ra, 0x14($sp) +/* 05ADD0 7F0262A0 AFA40038 */ sw $a0, 0x38($sp) +/* 05ADD4 7F0262A4 AFA5003C */ sw $a1, 0x3c($sp) +/* 05ADD8 7F0262A8 27A50020 */ addiu $a1, $sp, 0x20 +/* 05ADDC 7F0262AC 27A4002C */ addiu $a0, $sp, 0x2c +/* 05ADE0 7F0262B0 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 05ADE4 7F0262B4 AFA60040 */ sw $a2, 0x40($sp) +/* 05ADE8 7F0262B8 8FA30038 */ lw $v1, 0x38($sp) +/* 05ADEC 7F0262BC C7A40020 */ lwc1 $f4, 0x20($sp) +/* 05ADF0 7F0262C0 C7A6002C */ lwc1 $f6, 0x2c($sp) +/* 05ADF4 7F0262C4 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 05ADF8 7F0262C8 C46A0008 */ lwc1 $f10, 8($v1) +/* 05ADFC 7F0262CC 8FA2003C */ lw $v0, 0x3c($sp) +/* 05AE00 7F0262D0 46062381 */ sub.s $f14, $f4, $f6 +/* 05AE04 7F0262D4 C4640000 */ lwc1 $f4, ($v1) +/* 05AE08 7F0262D8 C4420000 */ lwc1 $f2, ($v0) +/* 05AE0C 7F0262DC 460A4401 */ sub.s $f16, $f8, $f10 +/* 05AE10 7F0262E0 C44C0008 */ lwc1 $f12, 8($v0) +/* 05AE14 7F0262E4 8FA60040 */ lw $a2, 0x40($sp) +/* 05AE18 7F0262E8 46043281 */ sub.s $f10, $f6, $f4 +/* 05AE1C 7F0262EC 46101482 */ mul.s $f18, $f2, $f16 +/* 05AE20 7F0262F0 00000000 */ nop +/* 05AE24 7F0262F4 460A6402 */ mul.s $f16, $f12, $f10 +/* 05AE28 7F0262F8 C7AA0028 */ lwc1 $f10, 0x28($sp) +/* 05AE2C 7F0262FC 46109101 */ sub.s $f4, $f18, $f16 +/* 05AE30 7F026300 46085481 */ sub.s $f18, $f10, $f8 +/* 05AE34 7F026304 46029402 */ mul.s $f16, $f18, $f2 +/* 05AE38 7F026308 00000000 */ nop +/* 05AE3C 7F02630C 460E6282 */ mul.s $f10, $f12, $f14 +/* 05AE40 7F026310 46105201 */ sub.s $f8, $f10, $f16 +/* 05AE44 7F026314 46082003 */ div.s $f0, $f4, $f8 +/* 05AE48 7F026318 46007482 */ mul.s $f18, $f14, $f0 +/* 05AE4C 7F02631C 46069280 */ add.s $f10, $f18, $f6 +/* 05AE50 7F026320 E4CA0000 */ swc1 $f10, ($a2) +/* 05AE54 7F026324 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 05AE58 7F026328 C7B00024 */ lwc1 $f16, 0x24($sp) +/* 05AE5C 7F02632C 46048201 */ sub.s $f8, $f16, $f4 +/* 05AE60 7F026330 46004482 */ mul.s $f18, $f8, $f0 +/* 05AE64 7F026334 46049180 */ add.s $f6, $f18, $f4 +/* 05AE68 7F026338 E4C60004 */ swc1 $f6, 4($a2) +/* 05AE6C 7F02633C C7B00034 */ lwc1 $f16, 0x34($sp) +/* 05AE70 7F026340 C7AA0028 */ lwc1 $f10, 0x28($sp) +/* 05AE74 7F026344 46105201 */ sub.s $f8, $f10, $f16 +/* 05AE78 7F026348 46004482 */ mul.s $f18, $f8, $f0 +/* 05AE7C 7F02634C 46109100 */ add.s $f4, $f18, $f16 +/* 05AE80 7F026350 E4C40008 */ swc1 $f4, 8($a2) +/* 05AE84 7F026354 8FBF0014 */ lw $ra, 0x14($sp) +/* 05AE88 7F026358 27BD0038 */ addiu $sp, $sp, 0x38 +/* 05AE8C 7F02635C 03E00008 */ jr $ra +/* 05AE90 7F026360 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F026364(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F026364 +/* 05AE94 7F026364 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 05AE98 7F026368 AFBF0034 */ sw $ra, 0x34($sp) +/* 05AE9C 7F02636C AFB00030 */ sw $s0, 0x30($sp) +/* 05AEA0 7F026370 AFA5006C */ sw $a1, 0x6c($sp) +/* 05AEA4 7F026374 AFA60070 */ sw $a2, 0x70($sp) +/* 05AEA8 7F026378 AFA70074 */ sw $a3, 0x74($sp) +/* 05AEAC 7F02637C 8C8E0014 */ lw $t6, 0x14($a0) +/* 05AEB0 7F026380 00808025 */ move $s0, $a0 +/* 05AEB4 7F026384 C7AC006C */ lwc1 $f12, 0x6c($sp) +/* 05AEB8 7F026388 AFAE0050 */ sw $t6, 0x50($sp) +/* 05AEBC 7F02638C 8C8F0004 */ lw $t7, 4($a0) +/* 05AEC0 7F026390 0FC15FAB */ jal sinf +/* 05AEC4 7F026394 AFAF004C */ sw $t7, 0x4c($sp) +/* 05AEC8 7F026398 44802000 */ mtc1 $zero, $f4 +/* 05AECC 7F02639C E7A0005C */ swc1 $f0, 0x5c($sp) +/* 05AED0 7F0263A0 C7AC006C */ lwc1 $f12, 0x6c($sp) +/* 05AED4 7F0263A4 0FC15FA8 */ jal cosf +/* 05AED8 7F0263A8 E7A40060 */ swc1 $f4, 0x60($sp) +/* 05AEDC 7F0263AC C7AC0070 */ lwc1 $f12, 0x70($sp) +/* 05AEE0 7F0263B0 C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 05AEE4 7F0263B4 E7A00064 */ swc1 $f0, 0x64($sp) +/* 05AEE8 7F0263B8 C7B00064 */ lwc1 $f16, 0x64($sp) +/* 05AEEC 7F0263BC 460C3202 */ mul.s $f8, $f6, $f12 +/* 05AEF0 7F0263C0 C60A0008 */ lwc1 $f10, 8($s0) +/* 05AEF4 7F0263C4 C6040010 */ lwc1 $f4, 0x10($s0) +/* 05AEF8 7F0263C8 460C8482 */ mul.s $f18, $f16, $f12 +/* 05AEFC 7F0263CC 8FA4004C */ lw $a0, 0x4c($sp) +/* 05AF00 7F0263D0 00002825 */ move $a1, $zero +/* 05AF04 7F0263D4 460A4080 */ add.s $f2, $f8, $f10 +/* 05AF08 7F0263D8 46049380 */ add.s $f14, $f18, $f4 +/* 05AF0C 7F0263DC E7A20058 */ swc1 $f2, 0x58($sp) +/* 05AF10 7F0263E0 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05AF14 7F0263E4 E7AE0054 */ swc1 $f14, 0x54($sp) +/* 05AF18 7F0263E8 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 05AF1C 7F0263EC 00000000 */ nop +/* 05AF20 7F0263F0 8E050008 */ lw $a1, 8($s0) +/* 05AF24 7F0263F4 8E060010 */ lw $a2, 0x10($s0) +/* 05AF28 7F0263F8 C7A20058 */ lwc1 $f2, 0x58($sp) +/* 05AF2C 7F0263FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05AF30 7F026400 C7AE0054 */ lwc1 $f14, 0x54($sp) +/* 05AF34 7F026404 44818000 */ mtc1 $at, $f16 +/* 05AF38 7F026408 8FB80074 */ lw $t8, 0x74($sp) +/* 05AF3C 7F02640C C7A60078 */ lwc1 $f6, 0x78($sp) +/* 05AF40 7F026410 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 05AF44 7F026414 44805000 */ mtc1 $zero, $f10 +/* 05AF48 7F026418 44071000 */ mfc1 $a3, $f2 +/* 05AF4C 7F02641C 27A40050 */ addiu $a0, $sp, 0x50 +/* 05AF50 7F026420 E7AE0010 */ swc1 $f14, 0x10($sp) +/* 05AF54 7F026424 AFB80014 */ sw $t8, 0x14($sp) +/* 05AF58 7F026428 E7B00024 */ swc1 $f16, 0x24($sp) +/* 05AF5C 7F02642C E7A60018 */ swc1 $f6, 0x18($sp) +/* 05AF60 7F026430 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 05AF64 7F026434 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05AF68 7F026438 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 05AF6C 7F02643C 10400003 */ beqz $v0, .L7F02644C +/* 05AF70 7F026440 26040008 */ addiu $a0, $s0, 8 +/* 05AF74 7F026444 10000010 */ b .L7F026488 +/* 05AF78 7F026448 C7A20070 */ lwc1 $f2, 0x70($sp) +.L7F02644C: +/* 05AF7C 7F02644C 27A5005C */ addiu $a1, $sp, 0x5c +/* 05AF80 7F026450 0FC09893 */ jal sub_GAME_7F02624C +/* 05AF84 7F026454 27A6003C */ addiu $a2, $sp, 0x3c +/* 05AF88 7F026458 C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 05AF8C 7F02645C C6040008 */ lwc1 $f4, 8($s0) +/* 05AF90 7F026460 C7A60044 */ lwc1 $f6, 0x44($sp) +/* 05AF94 7F026464 C6080010 */ lwc1 $f8, 0x10($s0) +/* 05AF98 7F026468 46049081 */ sub.s $f2, $f18, $f4 +/* 05AF9C 7F02646C 46083381 */ sub.s $f14, $f6, $f8 +/* 05AFA0 7F026470 46021282 */ mul.s $f10, $f2, $f2 +/* 05AFA4 7F026474 00000000 */ nop +/* 05AFA8 7F026478 460E7402 */ mul.s $f16, $f14, $f14 +/* 05AFAC 7F02647C 0C007DF8 */ jal sqrtf +/* 05AFB0 7F026480 46105300 */ add.s $f12, $f10, $f16 +/* 05AFB4 7F026484 46000086 */ mov.s $f2, $f0 +.L7F026488: +/* 05AFB8 7F026488 8FA4004C */ lw $a0, 0x4c($sp) +/* 05AFBC 7F02648C 24050001 */ li $a1, 1 +/* 05AFC0 7F026490 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05AFC4 7F026494 E7A20048 */ swc1 $f2, 0x48($sp) +/* 05AFC8 7F026498 8FBF0034 */ lw $ra, 0x34($sp) +/* 05AFCC 7F02649C C7A20048 */ lwc1 $f2, 0x48($sp) +/* 05AFD0 7F0264A0 8FB00030 */ lw $s0, 0x30($sp) +/* 05AFD4 7F0264A4 27BD0068 */ addiu $sp, $sp, 0x68 +/* 05AFD8 7F0264A8 03E00008 */ jr $ra +/* 05AFDC 7F0264AC 46001006 */ mov.s $f0, $f2 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0264B0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0264B0 +/* 05AFE0 7F0264B0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 05AFE4 7F0264B4 AFBF001C */ sw $ra, 0x1c($sp) +/* 05AFE8 7F0264B8 AFA50034 */ sw $a1, 0x34($sp) +/* 05AFEC 7F0264BC AFA60038 */ sw $a2, 0x38($sp) +/* 05AFF0 7F0264C0 AFA40030 */ sw $a0, 0x30($sp) +/* 05AFF4 7F0264C4 27A6002C */ addiu $a2, $sp, 0x2c +/* 05AFF8 7F0264C8 27A50024 */ addiu $a1, $sp, 0x24 +/* 05AFFC 7F0264CC 0FC08C58 */ jal sub_GAME_7F023160 +/* 05B000 7F0264D0 27A70028 */ addiu $a3, $sp, 0x28 +/* 05B004 7F0264D4 C7A4002C */ lwc1 $f4, 0x2c($sp) +/* 05B008 7F0264D8 C7A60028 */ lwc1 $f6, 0x28($sp) +/* 05B00C 7F0264DC 8FA40030 */ lw $a0, 0x30($sp) +/* 05B010 7F0264E0 8FA50034 */ lw $a1, 0x34($sp) +/* 05B014 7F0264E4 8FA60038 */ lw $a2, 0x38($sp) +/* 05B018 7F0264E8 2407001F */ li $a3, 31 +/* 05B01C 7F0264EC E7A40010 */ swc1 $f4, 0x10($sp) +/* 05B020 7F0264F0 0FC098D9 */ jal sub_GAME_7F026364 +/* 05B024 7F0264F4 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05B028 7F0264F8 8FBF001C */ lw $ra, 0x1c($sp) +/* 05B02C 7F0264FC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 05B030 7F026500 03E00008 */ jr $ra +/* 05B034 7F026504 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void triggered_on_shot_hit(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DBC +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80051DC0 +.word 0x4096cbe4 /*4.712389*/ +glabel D_80051DC4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051DC8 +.word 0x40490fdb /*3.1415927*/ +glabel D_80051DCC +.word 0x3e32b8c3 /*0.17453294*/ +glabel D_80051DD0 +.word 0x3e32b8c3 /*0.17453294*/ +glabel D_80051DD4 +.word 0x4016cbe4 /*2.3561945*/ +glabel D_80051DD8 +.word 0x407b53d2 /*3.926991*/ +.text +glabel triggered_on_shot_hit +/* 05B038 7F026508 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 05B03C 7F02650C 240E0001 */ li $t6, 1 +/* 05B040 7F026510 AFBF002C */ sw $ra, 0x2c($sp) +/* 05B044 7F026514 AFB00028 */ sw $s0, 0x28($sp) +/* 05B048 7F026518 AFA500A4 */ sw $a1, 0xa4($sp) +/* 05B04C 7F02651C AFAE009C */ sw $t6, 0x9c($sp) +/* 05B050 7F026520 8C820018 */ lw $v0, 0x18($a0) +/* 05B054 7F026524 44866000 */ mtc1 $a2, $f12 +/* 05B058 7F026528 24010006 */ li $at, 6 +/* 05B05C 7F02652C AFA20098 */ sw $v0, 0x98($sp) +/* 05B060 7F026530 8C8F001C */ lw $t7, 0x1c($a0) +/* 05B064 7F026534 AFA00090 */ sw $zero, 0x90($sp) +/* 05B068 7F026538 AFA00088 */ sw $zero, 0x88($sp) +/* 05B06C 7F02653C AFAF0094 */ sw $t7, 0x94($sp) +/* 05B070 7F026540 90580000 */ lbu $t8, ($v0) +/* 05B074 7F026544 00808025 */ move $s0, $a0 +/* 05B078 7F026548 57010009 */ bnel $t8, $at, .L7F026570 +/* 05B07C 7F02654C 82020007 */ lb $v0, 7($s0) +/* 05B080 7F026550 AFA700AC */ sw $a3, 0xac($sp) +/* 05B084 7F026554 0FC26919 */ jal get_num_players +/* 05B088 7F026558 E7AC00A8 */ swc1 $f12, 0xa8($sp) +/* 05B08C 7F02655C 28410002 */ slti $at, $v0, 2 +/* 05B090 7F026560 8FA700AC */ lw $a3, 0xac($sp) +/* 05B094 7F026564 1020026D */ beqz $at, .L7F026F1C +/* 05B098 7F026568 C7AC00A8 */ lwc1 $f12, 0xa8($sp) +/* 05B09C 7F02656C 82020007 */ lb $v0, 7($s0) +.L7F026570: +/* 05B0A0 7F026570 3C098005 */ lui $t1, %hi(global_timer) +/* 05B0A4 7F026574 3C0B8003 */ lui $t3, %hi(D_8002C914) +/* 05B0A8 7F026578 38590006 */ xori $t9, $v0, 6 +/* 05B0AC 7F02657C 2F220001 */ sltiu $v0, $t9, 1 +/* 05B0B0 7F026580 10400005 */ beqz $v0, .L7F026598 +/* 05B0B4 7F026584 3C0C8003 */ lui $t4, %hi(D_8002C914) +/* 05B0B8 7F026588 8D29837C */ lw $t1, %lo(global_timer)($t1) +/* 05B0BC 7F02658C 8E0A0030 */ lw $t2, 0x30($s0) +/* 05B0C0 7F026590 012A1026 */ xor $v0, $t1, $t2 +/* 05B0C4 7F026594 2C420001 */ sltiu $v0, $v0, 1 +.L7F026598: +/* 05B0C8 7F026598 8D6BC914 */ lw $t3, %lo(D_8002C914)($t3) +/* 05B0CC 7F02659C 2405FFFF */ li $a1, -1 +/* 05B0D0 7F0265A0 AFA20084 */ sw $v0, 0x84($sp) +/* 05B0D4 7F0265A4 10AB000C */ beq $a1, $t3, .L7F0265D8 +/* 05B0D8 7F0265A8 00002025 */ move $a0, $zero +/* 05B0DC 7F0265AC 2582C914 */ addiu $v0, $t4, %lo(D_8002C914) +/* 05B0E0 7F0265B0 8C430000 */ lw $v1, ($v0) +.L7F0265B4: +/* 05B0E4 7F0265B4 54E30004 */ bnel $a3, $v1, .L7F0265C8 +/* 05B0E8 7F0265B8 8C43002C */ lw $v1, 0x2c($v0) +/* 05B0EC 7F0265BC 10000006 */ b .L7F0265D8 +/* 05B0F0 7F0265C0 AFA40088 */ sw $a0, 0x88($sp) +/* 05B0F4 7F0265C4 8C43002C */ lw $v1, 0x2c($v0) +.L7F0265C8: +/* 05B0F8 7F0265C8 24840001 */ addiu $a0, $a0, 1 +/* 05B0FC 7F0265CC 2442002C */ addiu $v0, $v0, 0x2c +/* 05B100 7F0265D0 14A3FFF8 */ bne $a1, $v1, .L7F0265B4 +/* 05B104 7F0265D4 00000000 */ nop +.L7F0265D8: +/* 05B108 7F0265D8 C60400FC */ lwc1 $f4, 0xfc($s0) +/* 05B10C 7F0265DC C6060100 */ lwc1 $f6, 0x100($s0) +/* 05B110 7F0265E0 24010007 */ li $at, 7 +/* 05B114 7F0265E4 4604303E */ c.le.s $f6, $f4 +/* 05B118 7F0265E8 00000000 */ nop +/* 05B11C 7F0265EC 45000115 */ bc1f .L7F026A44 +/* 05B120 7F0265F0 00000000 */ nop +/* 05B124 7F0265F4 3C018005 */ lui $at, %hi(D_80051DBC) +/* 05B128 7F0265F8 C4281DBC */ lwc1 $f8, %lo(D_80051DBC)($at) +/* 05B12C 7F0265FC 3C018005 */ lui $at, %hi(D_80051DC0) +/* 05B130 7F026600 4608603C */ c.lt.s $f12, $f8 +/* 05B134 7F026604 00000000 */ nop +/* 05B138 7F026608 45010006 */ bc1t .L7F026624 +/* 05B13C 7F02660C 00000000 */ nop +/* 05B140 7F026610 C42A1DC0 */ lwc1 $f10, %lo(D_80051DC0)($at) +/* 05B144 7F026614 460C503C */ c.lt.s $f10, $f12 +/* 05B148 7F026618 00000000 */ nop +/* 05B14C 7F02661C 45020075 */ bc1fl .L7F0267F4 +/* 05B150 7F026620 8FAC0090 */ lw $t4, 0x90($sp) +.L7F026624: +/* 05B154 7F026624 0C002914 */ jal get_random_value +/* 05B158 7F026628 00000000 */ nop +/* 05B15C 7F02662C 24010014 */ li $at, 20 +/* 05B160 7F026630 0041001B */ divu $zero, $v0, $at +/* 05B164 7F026634 00006810 */ mfhi $t5 +/* 05B168 7F026638 55A0006E */ bnezl $t5, .L7F0267F4 +/* 05B16C 7F02663C 8FAC0090 */ lw $t4, 0x90($sp) +/* 05B170 7F026640 0FC1B320 */ jal getsubroty +/* 05B174 7F026644 8FA40094 */ lw $a0, 0x94($sp) +/* 05B178 7F026648 3C018005 */ lui $at, %hi(D_80051DC4) +/* 05B17C 7F02664C C4321DC4 */ lwc1 $f18, %lo(D_80051DC4)($at) +/* 05B180 7F026650 3C018005 */ lui $at, %hi(D_80051DC8) +/* 05B184 7F026654 C4241DC8 */ lwc1 $f4, %lo(D_80051DC8)($at) +/* 05B188 7F026658 3C018005 */ lui $at, %hi(D_80051DCC) +/* 05B18C 7F02665C C4261DCC */ lwc1 $f6, %lo(D_80051DCC)($at) +/* 05B190 7F026660 46040080 */ add.s $f2, $f0, $f4 +/* 05B194 7F026664 3C018005 */ lui $at, %hi(D_80051DD0) +/* 05B198 7F026668 C4281DD0 */ lwc1 $f8, %lo(D_80051DD0)($at) +/* 05B19C 7F02666C 3C064316 */ lui $a2, 0x4316 +/* 05B1A0 7F026670 46061300 */ add.s $f12, $f2, $f6 +/* 05B1A4 7F026674 46081381 */ sub.s $f14, $f2, $f8 +/* 05B1A8 7F026678 46006406 */ mov.s $f16, $f12 +/* 05B1AC 7F02667C 460C903E */ c.le.s $f18, $f12 +/* 05B1B0 7F026680 E7AE0070 */ swc1 $f14, 0x70($sp) +/* 05B1B4 7F026684 45020003 */ bc1fl .L7F026694 +/* 05B1B8 7F026688 460E903E */ c.le.s $f18, $f14 +/* 05B1BC 7F02668C 46126401 */ sub.s $f16, $f12, $f18 +/* 05B1C0 7F026690 460E903E */ c.le.s $f18, $f14 +.L7F026694: +/* 05B1C4 7F026694 44058000 */ mfc1 $a1, $f16 +/* 05B1C8 7F026698 45000003 */ bc1f .L7F0266A8 +/* 05B1CC 7F02669C 00000000 */ nop +/* 05B1D0 7F0266A0 46127281 */ sub.s $f10, $f14, $f18 +/* 05B1D4 7F0266A4 E7AA0070 */ swc1 $f10, 0x70($sp) +.L7F0266A8: +/* 05B1D8 7F0266A8 0FC0992C */ jal sub_GAME_7F0264B0 +/* 05B1DC 7F0266AC 8FA40098 */ lw $a0, 0x98($sp) +/* 05B1E0 7F0266B0 8FA40098 */ lw $a0, 0x98($sp) +/* 05B1E4 7F0266B4 8FA50070 */ lw $a1, 0x70($sp) +/* 05B1E8 7F0266B8 3C064316 */ lui $a2, 0x4316 +/* 05B1EC 7F0266BC 0FC0992C */ jal sub_GAME_7F0264B0 +/* 05B1F0 7F0266C0 E7A0006C */ swc1 $f0, 0x6c($sp) +/* 05B1F4 7F0266C4 3C014316 */ li $at, 0x43160000 # 150.000000 +/* 05B1F8 7F0266C8 44816000 */ mtc1 $at, $f12 +/* 05B1FC 7F0266CC C7A2006C */ lwc1 $f2, 0x6c($sp) +/* 05B200 7F0266D0 460C103C */ c.lt.s $f2, $f12 +/* 05B204 7F0266D4 00000000 */ nop +/* 05B208 7F0266D8 45020046 */ bc1fl .L7F0267F4 +/* 05B20C 7F0266DC 8FAC0090 */ lw $t4, 0x90($sp) +/* 05B210 7F0266E0 460C003C */ c.lt.s $f0, $f12 +/* 05B214 7F0266E4 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 05B218 7F0266E8 45020042 */ bc1fl .L7F0267F4 +/* 05B21C 7F0266EC 8FAC0090 */ lw $t4, 0x90($sp) +/* 05B220 7F0266F0 46001301 */ sub.s $f12, $f2, $f0 +/* 05B224 7F0266F4 44812000 */ mtc1 $at, $f4 +/* 05B228 7F0266F8 3C01C120 */ li $at, 0xC1200000 # -10.000000 +/* 05B22C 7F0266FC 4604603C */ c.lt.s $f12, $f4 +/* 05B230 7F026700 00000000 */ nop +/* 05B234 7F026704 4502003B */ bc1fl .L7F0267F4 +/* 05B238 7F026708 8FAC0090 */ lw $t4, 0x90($sp) +/* 05B23C 7F02670C 44813000 */ mtc1 $at, $f6 +/* 05B240 7F026710 00000000 */ nop +/* 05B244 7F026714 460C303C */ c.lt.s $f6, $f12 +/* 05B248 7F026718 00000000 */ nop +/* 05B24C 7F02671C 45020035 */ bc1fl .L7F0267F4 +/* 05B250 7F026720 8FAC0090 */ lw $t4, 0x90($sp) +/* 05B254 7F026724 0C002914 */ jal get_random_value +/* 05B258 7F026728 00000000 */ nop +/* 05B25C 7F02672C 304E0001 */ andi $t6, $v0, 1 +/* 05B260 7F026730 000E78C0 */ sll $t7, $t6, 3 +/* 05B264 7F026734 01EE7823 */ subu $t7, $t7, $t6 +/* 05B268 7F026738 3C188003 */ lui $t8, %hi(D_8002DEBC) +/* 05B26C 7F02673C 2718DEBC */ addiu $t8, %lo(D_8002DEBC) # addiu $t8, $t8, -0x2144 +/* 05B270 7F026740 000F7880 */ sll $t7, $t7, 2 +/* 05B274 7F026744 01F81821 */ addu $v1, $t7, $t8 +/* 05B278 7F026748 AFA30064 */ sw $v1, 0x64($sp) +/* 05B27C 7F02674C 0FC0B461 */ jal sub_GAME_7F02D184 +/* 05B280 7F026750 02002025 */ move $a0, $s0 +/* 05B284 7F026754 8FA30064 */ lw $v1, 0x64($sp) +/* 05B288 7F026758 24190004 */ li $t9, 4 +/* 05B28C 7F02675C A2190007 */ sb $t9, 7($s0) +/* 05B290 7F026760 AE00002C */ sw $zero, 0x2c($s0) +/* 05B294 7F026764 C4680014 */ lwc1 $f8, 0x14($v1) +/* 05B298 7F026768 44800000 */ mtc1 $zero, $f0 +/* 05B29C 7F02676C 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05B2A0 7F026770 E6080030 */ swc1 $f8, 0x30($s0) +/* 05B2A4 7F026774 C46A0018 */ lwc1 $f10, 0x18($v1) +/* 05B2A8 7F026778 A2000008 */ sb $zero, 8($s0) +/* 05B2AC 7F02677C E6000038 */ swc1 $f0, 0x38($s0) +/* 05B2B0 7F026780 E60A0034 */ swc1 $f10, 0x34($s0) +/* 05B2B4 7F026784 8FA90084 */ lw $t1, 0x84($sp) +/* 05B2B8 7F026788 44813000 */ mtc1 $at, $f6 +/* 05B2BC 7F02678C C464000C */ lwc1 $f4, 0xc($v1) +/* 05B2C0 7F026790 8C660004 */ lw $a2, 4($v1) +/* 05B2C4 7F026794 8C650000 */ lw $a1, ($v1) +/* 05B2C8 7F026798 44070000 */ mfc1 $a3, $f0 +/* 05B2CC 7F02679C 2D2A0001 */ sltiu $t2, $t1, 1 +/* 05B2D0 7F0267A0 AFAA0018 */ sw $t2, 0x18($sp) +/* 05B2D4 7F0267A4 8FA40094 */ lw $a0, 0x94($sp) +/* 05B2D8 7F0267A8 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05B2DC 7F0267AC 0FC1BF13 */ jal sub_GAME_7F06FC4C +/* 05B2E0 7F0267B0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 05B2E4 7F0267B4 8FA30064 */ lw $v1, 0x64($sp) +/* 05B2E8 7F0267B8 44804000 */ mtc1 $zero, $f8 +/* 05B2EC 7F0267BC C4600008 */ lwc1 $f0, 8($v1) +/* 05B2F0 7F0267C0 4600403E */ c.le.s $f8, $f0 +/* 05B2F4 7F0267C4 00000000 */ nop +/* 05B2F8 7F0267C8 45020005 */ bc1fl .L7F0267E0 +/* 05B2FC 7F0267CC 3C014120 */ lui $at, 0x4120 +/* 05B300 7F0267D0 44050000 */ mfc1 $a1, $f0 +/* 05B304 7F0267D4 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B308 7F0267D8 8FA40094 */ lw $a0, 0x94($sp) +/* 05B30C 7F0267DC 3C014120 */ li $at, 0x41200000 # 10.000000 +.L7F0267E0: +/* 05B310 7F0267E0 44815000 */ mtc1 $at, $f10 +/* 05B314 7F0267E4 240B0001 */ li $t3, 1 +/* 05B318 7F0267E8 E60A0024 */ swc1 $f10, 0x24($s0) +/* 05B31C 7F0267EC AFAB0090 */ sw $t3, 0x90($sp) +/* 05B320 7F0267F0 8FAC0090 */ lw $t4, 0x90($sp) +.L7F0267F4: +/* 05B324 7F0267F4 8FAD0088 */ lw $t5, 0x88($sp) +/* 05B328 7F0267F8 3C0F8003 */ lui $t7, %hi(D_8002C914) +/* 05B32C 7F0267FC 15800085 */ bnez $t4, .L7F026A14 +/* 05B330 7F026800 000D7080 */ sll $t6, $t5, 2 +/* 05B334 7F026804 01CD7023 */ subu $t6, $t6, $t5 +/* 05B338 7F026808 000E7080 */ sll $t6, $t6, 2 +/* 05B33C 7F02680C 01CD7023 */ subu $t6, $t6, $t5 +/* 05B340 7F026810 000E7080 */ sll $t6, $t6, 2 +/* 05B344 7F026814 25EFC914 */ addiu $t7, %lo(D_8002C914) # addiu $t7, $t7, -0x36ec +/* 05B348 7F026818 01CF3021 */ addu $a2, $t6, $t7 +/* 05B34C 7F02681C 8CD8001C */ lw $t8, 0x1c($a2) +/* 05B350 7F026820 1300007C */ beqz $t8, .L7F026A14 +/* 05B354 7F026824 00000000 */ nop +/* 05B358 7F026828 8CD90020 */ lw $t9, 0x20($a2) +/* 05B35C 7F02682C 8FA90084 */ lw $t1, 0x84($sp) +/* 05B360 7F026830 240B0001 */ li $t3, 1 +/* 05B364 7F026834 1B200077 */ blez $t9, .L7F026A14 +/* 05B368 7F026838 2D2A0001 */ sltiu $t2, $t1, 1 +/* 05B36C 7F02683C AFAA0034 */ sw $t2, 0x34($sp) +/* 05B370 7F026840 AFAB0090 */ sw $t3, 0x90($sp) +/* 05B374 7F026844 0C002914 */ jal get_random_value +/* 05B378 7F026848 AFA60030 */ sw $a2, 0x30($sp) +/* 05B37C 7F02684C 8FA60030 */ lw $a2, 0x30($sp) +/* 05B380 7F026850 02002025 */ move $a0, $s0 +/* 05B384 7F026854 8CCC0020 */ lw $t4, 0x20($a2) +/* 05B388 7F026858 8CCD001C */ lw $t5, 0x1c($a2) +/* 05B38C 7F02685C 004C001B */ divu $zero, $v0, $t4 +/* 05B390 7F026860 00001810 */ mfhi $v1 +/* 05B394 7F026864 000370C0 */ sll $t6, $v1, 3 +/* 05B398 7F026868 01C37023 */ subu $t6, $t6, $v1 +/* 05B39C 7F02686C 000E7080 */ sll $t6, $t6, 2 +/* 05B3A0 7F026870 15800002 */ bnez $t4, .L7F02687C +/* 05B3A4 7F026874 00000000 */ nop +/* 05B3A8 7F026878 0007000D */ break 7 +.L7F02687C: +/* 05B3AC 7F02687C 01AE4021 */ addu $t0, $t5, $t6 +/* 05B3B0 7F026880 0FC0B461 */ jal sub_GAME_7F02D184 +/* 05B3B4 7F026884 AFA8005C */ sw $t0, 0x5c($sp) +/* 05B3B8 7F026888 8FA8005C */ lw $t0, 0x5c($sp) +/* 05B3BC 7F02688C 240F0004 */ li $t7, 4 +/* 05B3C0 7F026890 A20F0007 */ sb $t7, 7($s0) +/* 05B3C4 7F026894 AE00002C */ sw $zero, 0x2c($s0) +/* 05B3C8 7F026898 C5040014 */ lwc1 $f4, 0x14($t0) +/* 05B3CC 7F02689C 44800000 */ mtc1 $zero, $f0 +/* 05B3D0 7F0268A0 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05B3D4 7F0268A4 E6040030 */ swc1 $f4, 0x30($s0) +/* 05B3D8 7F0268A8 C5060018 */ lwc1 $f6, 0x18($t0) +/* 05B3DC 7F0268AC A2000008 */ sb $zero, 8($s0) +/* 05B3E0 7F0268B0 E6000038 */ swc1 $f0, 0x38($s0) +/* 05B3E4 7F0268B4 E6060034 */ swc1 $f6, 0x34($s0) +/* 05B3E8 7F0268B8 8FB80034 */ lw $t8, 0x34($sp) +/* 05B3EC 7F0268BC 44815000 */ mtc1 $at, $f10 +/* 05B3F0 7F0268C0 C508000C */ lwc1 $f8, 0xc($t0) +/* 05B3F4 7F0268C4 8D060004 */ lw $a2, 4($t0) +/* 05B3F8 7F0268C8 8D050000 */ lw $a1, ($t0) +/* 05B3FC 7F0268CC 44070000 */ mfc1 $a3, $f0 +/* 05B400 7F0268D0 8FA40094 */ lw $a0, 0x94($sp) +/* 05B404 7F0268D4 AFB80018 */ sw $t8, 0x18($sp) +/* 05B408 7F0268D8 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 05B40C 7F0268DC 0FC1BF13 */ jal sub_GAME_7F06FC4C +/* 05B410 7F0268E0 E7A80010 */ swc1 $f8, 0x10($sp) +/* 05B414 7F0268E4 8FA8005C */ lw $t0, 0x5c($sp) +/* 05B418 7F0268E8 3C198007 */ lui $t9, %hi(ptr_animation_table) +/* 05B41C 7F0268EC 8F399538 */ lw $t9, %lo(ptr_animation_table)($t9) +/* 05B420 7F0268F0 8D0B0000 */ lw $t3, ($t0) +/* 05B424 7F0268F4 3C090000 */ lui $t1, %hi(0x00002E64) # $t1, 0 +/* 05B428 7F0268F8 25292E64 */ addiu $t1, %lo(0x00002E64) # addiu $t1, $t1, 0x2e64 +/* 05B42C 7F0268FC 03295021 */ addu $t2, $t9, $t1 +/* 05B430 7F026900 554B000F */ bnel $t2, $t3, .L7F026940 +/* 05B434 7F026904 C5000008 */ lwc1 $f0, 8($t0) +/* 05B438 7F026908 0C002914 */ jal get_random_value +/* 05B43C 7F02690C AFA8005C */ sw $t0, 0x5c($sp) +/* 05B440 7F026910 24010064 */ li $at, 100 +/* 05B444 7F026914 0041001B */ divu $zero, $v0, $at +/* 05B448 7F026918 00006010 */ mfhi $t4 +/* 05B44C 7F02691C 8FA8005C */ lw $t0, 0x5c($sp) +/* 05B450 7F026920 11800006 */ beqz $t4, .L7F02693C +/* 05B454 7F026924 8FA40094 */ lw $a0, 0x94($sp) +/* 05B458 7F026928 3C054371 */ lui $a1, 0x4371 +/* 05B45C 7F02692C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B460 7F026930 AFA8005C */ sw $t0, 0x5c($sp) +/* 05B464 7F026934 1000000C */ b .L7F026968 +/* 05B468 7F026938 8FA8005C */ lw $t0, 0x5c($sp) +.L7F02693C: +/* 05B46C 7F02693C C5000008 */ lwc1 $f0, 8($t0) +.L7F026940: +/* 05B470 7F026940 44802000 */ mtc1 $zero, $f4 +/* 05B474 7F026944 8FA40094 */ lw $a0, 0x94($sp) +/* 05B478 7F026948 4600203E */ c.le.s $f4, $f0 +/* 05B47C 7F02694C 00000000 */ nop +/* 05B480 7F026950 45020006 */ bc1fl .L7F02696C +/* 05B484 7F026954 8FA400B0 */ lw $a0, 0xb0($sp) +/* 05B488 7F026958 44050000 */ mfc1 $a1, $f0 +/* 05B48C 7F02695C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B490 7F026960 AFA8005C */ sw $t0, 0x5c($sp) +/* 05B494 7F026964 8FA8005C */ lw $t0, 0x5c($sp) +.L7F026968: +/* 05B498 7F026968 8FA400B0 */ lw $a0, 0xb0($sp) +.L7F02696C: +/* 05B49C 7F02696C 0FC177EA */ jal bondwalkGetItemField68 +/* 05B4A0 7F026970 AFA8005C */ sw $t0, 0x5c($sp) +/* 05B4A4 7F026974 44806000 */ mtc1 $zero, $f12 +/* 05B4A8 7F026978 8FA8005C */ lw $t0, 0x5c($sp) +/* 05B4AC 7F02697C 46000086 */ mov.s $f2, $f0 +/* 05B4B0 7F026980 460C003E */ c.le.s $f0, $f12 +/* 05B4B4 7F026984 00000000 */ nop +/* 05B4B8 7F026988 45020009 */ bc1fl .L7F0269B0 +/* 05B4BC 7F02698C 8D0F0010 */ lw $t7, 0x10($t0) +/* 05B4C0 7F026990 8E0D0014 */ lw $t5, 0x14($s0) +/* 05B4C4 7F026994 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 05B4C8 7F026998 31AE8000 */ andi $t6, $t5, 0x8000 +/* 05B4CC 7F02699C 51C00004 */ beql $t6, $zero, .L7F0269B0 +/* 05B4D0 7F0269A0 8D0F0010 */ lw $t7, 0x10($t0) +/* 05B4D4 7F0269A4 44811000 */ mtc1 $at, $f2 +/* 05B4D8 7F0269A8 00000000 */ nop +/* 05B4DC 7F0269AC 8D0F0010 */ lw $t7, 0x10($t0) +.L7F0269B0: +/* 05B4E0 7F0269B0 11E00018 */ beqz $t7, .L7F026A14 +/* 05B4E4 7F0269B4 00000000 */ nop +/* 05B4E8 7F0269B8 4602603C */ c.lt.s $f12, $f2 +/* 05B4EC 7F0269BC 3C0142B4 */ li $at, 0x42B40000 # 90.000000 +/* 05B4F0 7F0269C0 45000014 */ bc1f .L7F026A14 +/* 05B4F4 7F0269C4 00000000 */ nop +/* 05B4F8 7F0269C8 44813000 */ mtc1 $at, $f6 +/* 05B4FC 7F0269CC 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 05B500 7F0269D0 44815000 */ mtc1 $at, $f10 +/* 05B504 7F0269D4 46061202 */ mul.s $f8, $f2, $f6 +/* 05B508 7F0269D8 E60C003C */ swc1 $f12, 0x3c($s0) +/* 05B50C 7F0269DC 460A4103 */ div.s $f4, $f8, $f10 +/* 05B510 7F0269E0 E6040038 */ swc1 $f4, 0x38($s0) +/* 05B514 7F0269E4 8FB800A4 */ lw $t8, 0xa4($sp) +/* 05B518 7F0269E8 C7060000 */ lwc1 $f6, ($t8) +/* 05B51C 7F0269EC 46023202 */ mul.s $f8, $f6, $f2 +/* 05B520 7F0269F0 E6080040 */ swc1 $f8, 0x40($s0) +/* 05B524 7F0269F4 8FB900A4 */ lw $t9, 0xa4($sp) +/* 05B528 7F0269F8 C72A0004 */ lwc1 $f10, 4($t9) +/* 05B52C 7F0269FC 46025102 */ mul.s $f4, $f10, $f2 +/* 05B530 7F026A00 E6040044 */ swc1 $f4, 0x44($s0) +/* 05B534 7F026A04 8FA900A4 */ lw $t1, 0xa4($sp) +/* 05B538 7F026A08 C5260008 */ lwc1 $f6, 8($t1) +/* 05B53C 7F026A0C 46023202 */ mul.s $f8, $f6, $f2 +/* 05B540 7F026A10 E6080048 */ swc1 $f8, 0x48($s0) +.L7F026A14: +/* 05B544 7F026A14 0FC086C8 */ jal sub_GAME_7F021B20 +/* 05B548 7F026A18 02002025 */ move $a0, $s0 +/* 05B54C 7F026A1C 0FC1A9E0 */ jal increment_num_kills_display_text_in_MP +/* 05B550 7F026A20 00000000 */ nop +/* 05B554 7F026A24 8E0A0014 */ lw $t2, 0x14($s0) +/* 05B558 7F026A28 000A5AC0 */ sll $t3, $t2, 0xb +/* 05B55C 7F026A2C 0563011C */ bgezl $t3, .L7F026EA0 +/* 05B560 7F026A30 8FAC009C */ lw $t4, 0x9c($sp) +/* 05B564 7F026A34 0FC1A9D6 */ jal inc_cur_civilian_casualties +/* 05B568 7F026A38 00000000 */ nop +/* 05B56C 7F026A3C 10000118 */ b .L7F026EA0 +/* 05B570 7F026A40 8FAC009C */ lw $t4, 0x9c($sp) +.L7F026A44: +/* 05B574 7F026A44 14E100A0 */ bne $a3, $at, .L7F026CC8 +/* 05B578 7F026A48 3C018005 */ lui $at, %hi(D_80051DD4) +/* 05B57C 7F026A4C C42A1DD4 */ lwc1 $f10, %lo(D_80051DD4)($at) +/* 05B580 7F026A50 3C018005 */ lui $at, %hi(D_80051DD8) +/* 05B584 7F026A54 460C503C */ c.lt.s $f10, $f12 +/* 05B588 7F026A58 00000000 */ nop +/* 05B58C 7F026A5C 4502009B */ bc1fl .L7F026CCC +/* 05B590 7F026A60 8FB80090 */ lw $t8, 0x90($sp) +/* 05B594 7F026A64 C4241DD8 */ lwc1 $f4, %lo(D_80051DD8)($at) +/* 05B598 7F026A68 4604603C */ c.lt.s $f12, $f4 +/* 05B59C 7F026A6C 00000000 */ nop +/* 05B5A0 7F026A70 45020096 */ bc1fl .L7F026CCC +/* 05B5A4 7F026A74 8FB80090 */ lw $t8, 0x90($sp) +/* 05B5A8 7F026A78 0C002914 */ jal get_random_value +/* 05B5AC 7F026A7C 00000000 */ nop +/* 05B5B0 7F026A80 24010005 */ li $at, 5 +/* 05B5B4 7F026A84 0041001B */ divu $zero, $v0, $at +/* 05B5B8 7F026A88 00006010 */ mfhi $t4 +/* 05B5BC 7F026A8C 2D810002 */ sltiu $at, $t4, 2 +/* 05B5C0 7F026A90 5020008E */ beql $at, $zero, .L7F026CCC +/* 05B5C4 7F026A94 8FB80090 */ lw $t8, 0x90($sp) +/* 05B5C8 7F026A98 0C002914 */ jal get_random_value +/* 05B5CC 7F026A9C 00000000 */ nop +/* 05B5D0 7F026AA0 24010005 */ li $at, 5 +/* 05B5D4 7F026AA4 0041001B */ divu $zero, $v0, $at +/* 05B5D8 7F026AA8 00006810 */ mfhi $t5 +/* 05B5DC 7F026AAC AFAD0054 */ sw $t5, 0x54($sp) +/* 05B5E0 7F026AB0 0FC0B461 */ jal sub_GAME_7F02D184 +/* 05B5E4 7F026AB4 02002025 */ move $a0, $s0 +/* 05B5E8 7F026AB8 240E0006 */ li $t6, 6 +/* 05B5EC 7F026ABC A20E0007 */ sb $t6, 7($s0) +/* 05B5F0 7F026AC0 AE00002C */ sw $zero, 0x2c($s0) +/* 05B5F4 7F026AC4 3C0F8005 */ lui $t7, %hi(global_timer) +/* 05B5F8 7F026AC8 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 05B5FC 7F026ACC A2000008 */ sb $zero, 8($s0) +/* 05B600 7F026AD0 0C002914 */ jal get_random_value +/* 05B604 7F026AD4 AE0F0030 */ sw $t7, 0x30($s0) +/* 05B608 7F026AD8 30580001 */ andi $t8, $v0, 1 +/* 05B60C 7F026ADC 1300003D */ beqz $t8, .L7F026BD4 +/* 05B610 7F026AE0 3C198007 */ lui $t9, %hi(ptr_animation_table) +/* 05B614 7F026AE4 8F399538 */ lw $t9, %lo(ptr_animation_table)($t9) +/* 05B618 7F026AE8 3C090000 */ lui $t1, %hi(0x00004CE0) # $t1, 0 +/* 05B61C 7F026AEC 25294CE0 */ addiu $t1, %lo(0x00004CE0) # addiu $t1, $t1, 0x4ce0 +/* 05B620 7F026AF0 03295021 */ addu $t2, $t9, $t1 +/* 05B624 7F026AF4 0C002914 */ jal get_random_value +/* 05B628 7F026AF8 AFAA0080 */ sw $t2, 0x80($sp) +/* 05B62C 7F026AFC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05B630 7F026B00 44813000 */ mtc1 $at, $f6 +/* 05B634 7F026B04 8FAB0084 */ lw $t3, 0x84($sp) +/* 05B638 7F026B08 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05B63C 7F026B0C 44814000 */ mtc1 $at, $f8 +/* 05B640 7F026B10 2D6C0001 */ sltiu $t4, $t3, 1 +/* 05B644 7F026B14 AFAC0018 */ sw $t4, 0x18($sp) +/* 05B648 7F026B18 8FA40094 */ lw $a0, 0x94($sp) +/* 05B64C 7F026B1C 8FA50080 */ lw $a1, 0x80($sp) +/* 05B650 7F026B20 30460001 */ andi $a2, $v0, 1 +/* 05B654 7F026B24 3C074120 */ lui $a3, 0x4120 +/* 05B658 7F026B28 E7A60010 */ swc1 $f6, 0x10($sp) +/* 05B65C 7F026B2C 0FC1BF13 */ jal sub_GAME_7F06FC4C +/* 05B660 7F026B30 E7A80014 */ swc1 $f8, 0x14($sp) +/* 05B664 7F026B34 8FA20054 */ lw $v0, 0x54($sp) +/* 05B668 7F026B38 02002025 */ move $a0, $s0 +/* 05B66C 7F026B3C 3C054208 */ lui $a1, 0x4208 +/* 05B670 7F026B40 2C410002 */ sltiu $at, $v0, 2 +/* 05B674 7F026B44 50200009 */ beql $at, $zero, .L7F026B6C +/* 05B678 7F026B48 2C410004 */ sltiu $at, $v0, 4 +/* 05B67C 7F026B4C 0FC08F15 */ jal sub_GAME_7F023C54 +/* 05B680 7F026B50 3C064100 */ lui $a2, 0x4100 +/* 05B684 7F026B54 44050000 */ mfc1 $a1, $f0 +/* 05B688 7F026B58 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B68C 7F026B5C 8FA40094 */ lw $a0, 0x94($sp) +/* 05B690 7F026B60 10000058 */ b .L7F026CC4 +/* 05B694 7F026B64 240F0001 */ li $t7, 1 +/* 05B698 7F026B68 2C410004 */ sltiu $at, $v0, 4 +.L7F026B6C: +/* 05B69C 7F026B6C 1020000A */ beqz $at, .L7F026B98 +/* 05B6A0 7F026B70 8FAD0080 */ lw $t5, 0x80($sp) +/* 05B6A4 7F026B74 02002025 */ move $a0, $s0 +/* 05B6A8 7F026B78 3C05428E */ lui $a1, 0x428e +/* 05B6AC 7F026B7C 0FC08F15 */ jal sub_GAME_7F023C54 +/* 05B6B0 7F026B80 3C064100 */ lui $a2, 0x4100 +/* 05B6B4 7F026B84 44050000 */ mfc1 $a1, $f0 +/* 05B6B8 7F026B88 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B6BC 7F026B8C 8FA40094 */ lw $a0, 0x94($sp) +/* 05B6C0 7F026B90 1000004C */ b .L7F026CC4 +/* 05B6C4 7F026B94 240F0001 */ li $t7, 1 +.L7F026B98: +/* 05B6C8 7F026B98 95AE0004 */ lhu $t6, 4($t5) +/* 05B6CC 7F026B9C 02002025 */ move $a0, $s0 +/* 05B6D0 7F026BA0 3C064100 */ lui $a2, 0x4100 +/* 05B6D4 7F026BA4 25CFFFFF */ addiu $t7, $t6, -1 +/* 05B6D8 7F026BA8 448F5000 */ mtc1 $t7, $f10 +/* 05B6DC 7F026BAC 00000000 */ nop +/* 05B6E0 7F026BB0 468052A0 */ cvt.s.w $f10, $f10 +/* 05B6E4 7F026BB4 44055000 */ mfc1 $a1, $f10 +/* 05B6E8 7F026BB8 0FC08F15 */ jal sub_GAME_7F023C54 +/* 05B6EC 7F026BBC 00000000 */ nop +/* 05B6F0 7F026BC0 44050000 */ mfc1 $a1, $f0 +/* 05B6F4 7F026BC4 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B6F8 7F026BC8 8FA40094 */ lw $a0, 0x94($sp) +/* 05B6FC 7F026BCC 1000003D */ b .L7F026CC4 +/* 05B700 7F026BD0 240F0001 */ li $t7, 1 +.L7F026BD4: +/* 05B704 7F026BD4 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 05B708 7F026BD8 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 05B70C 7F026BDC 3C190000 */ lui $t9, %hi(0x00004F14) # $t9, 0 +/* 05B710 7F026BE0 27394F14 */ addiu $t9, %lo(0x00004F14) # addiu $t9, $t9, 0x4f14 +/* 05B714 7F026BE4 03194821 */ addu $t1, $t8, $t9 +/* 05B718 7F026BE8 0C002914 */ jal get_random_value +/* 05B71C 7F026BEC AFA90080 */ sw $t1, 0x80($sp) +/* 05B720 7F026BF0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05B724 7F026BF4 44812000 */ mtc1 $at, $f4 +/* 05B728 7F026BF8 8FAA0084 */ lw $t2, 0x84($sp) +/* 05B72C 7F026BFC 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05B730 7F026C00 44813000 */ mtc1 $at, $f6 +/* 05B734 7F026C04 2D4B0001 */ sltiu $t3, $t2, 1 +/* 05B738 7F026C08 AFAB0018 */ sw $t3, 0x18($sp) +/* 05B73C 7F026C0C 8FA40094 */ lw $a0, 0x94($sp) +/* 05B740 7F026C10 8FA50080 */ lw $a1, 0x80($sp) +/* 05B744 7F026C14 30460001 */ andi $a2, $v0, 1 +/* 05B748 7F026C18 24070000 */ li $a3, 0 +/* 05B74C 7F026C1C E7A40010 */ swc1 $f4, 0x10($sp) +/* 05B750 7F026C20 0FC1BF13 */ jal sub_GAME_7F06FC4C +/* 05B754 7F026C24 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05B758 7F026C28 8FA20054 */ lw $v0, 0x54($sp) +/* 05B75C 7F026C2C 02002025 */ move $a0, $s0 +/* 05B760 7F026C30 3C054214 */ lui $a1, 0x4214 +/* 05B764 7F026C34 2C410002 */ sltiu $at, $v0, 2 +/* 05B768 7F026C38 50200009 */ beql $at, $zero, .L7F026C60 +/* 05B76C 7F026C3C 2C410004 */ sltiu $at, $v0, 4 +/* 05B770 7F026C40 0FC08F15 */ jal sub_GAME_7F023C54 +/* 05B774 7F026C44 3C064100 */ lui $a2, 0x4100 +/* 05B778 7F026C48 44050000 */ mfc1 $a1, $f0 +/* 05B77C 7F026C4C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B780 7F026C50 8FA40094 */ lw $a0, 0x94($sp) +/* 05B784 7F026C54 1000001B */ b .L7F026CC4 +/* 05B788 7F026C58 240F0001 */ li $t7, 1 +/* 05B78C 7F026C5C 2C410004 */ sltiu $at, $v0, 4 +.L7F026C60: +/* 05B790 7F026C60 1020000A */ beqz $at, .L7F026C8C +/* 05B794 7F026C64 8FAC0080 */ lw $t4, 0x80($sp) +/* 05B798 7F026C68 02002025 */ move $a0, $s0 +/* 05B79C 7F026C6C 3C05428C */ lui $a1, 0x428c +/* 05B7A0 7F026C70 0FC08F15 */ jal sub_GAME_7F023C54 +/* 05B7A4 7F026C74 3C064100 */ lui $a2, 0x4100 +/* 05B7A8 7F026C78 44050000 */ mfc1 $a1, $f0 +/* 05B7AC 7F026C7C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B7B0 7F026C80 8FA40094 */ lw $a0, 0x94($sp) +/* 05B7B4 7F026C84 1000000F */ b .L7F026CC4 +/* 05B7B8 7F026C88 240F0001 */ li $t7, 1 +.L7F026C8C: +/* 05B7BC 7F026C8C 958D0004 */ lhu $t5, 4($t4) +/* 05B7C0 7F026C90 02002025 */ move $a0, $s0 +/* 05B7C4 7F026C94 3C064100 */ lui $a2, 0x4100 +/* 05B7C8 7F026C98 25AEFFFF */ addiu $t6, $t5, -1 +/* 05B7CC 7F026C9C 448E4000 */ mtc1 $t6, $f8 +/* 05B7D0 7F026CA0 00000000 */ nop +/* 05B7D4 7F026CA4 46804220 */ cvt.s.w $f8, $f8 +/* 05B7D8 7F026CA8 44054000 */ mfc1 $a1, $f8 +/* 05B7DC 7F026CAC 0FC08F15 */ jal sub_GAME_7F023C54 +/* 05B7E0 7F026CB0 00000000 */ nop +/* 05B7E4 7F026CB4 44050000 */ mfc1 $a1, $f0 +/* 05B7E8 7F026CB8 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B7EC 7F026CBC 8FA40094 */ lw $a0, 0x94($sp) +/* 05B7F0 7F026CC0 240F0001 */ li $t7, 1 +.L7F026CC4: +/* 05B7F4 7F026CC4 AFAF0090 */ sw $t7, 0x90($sp) +.L7F026CC8: +/* 05B7F8 7F026CC8 8FB80090 */ lw $t8, 0x90($sp) +.L7F026CCC: +/* 05B7FC 7F026CCC 8FB90088 */ lw $t9, 0x88($sp) +/* 05B800 7F026CD0 3C0A8003 */ lui $t2, %hi(D_8002C914) +/* 05B804 7F026CD4 17000070 */ bnez $t8, .L7F026E98 +/* 05B808 7F026CD8 00194880 */ sll $t1, $t9, 2 +/* 05B80C 7F026CDC 01394823 */ subu $t1, $t1, $t9 +/* 05B810 7F026CE0 00094880 */ sll $t1, $t1, 2 +/* 05B814 7F026CE4 01394823 */ subu $t1, $t1, $t9 +/* 05B818 7F026CE8 00094880 */ sll $t1, $t1, 2 +/* 05B81C 7F026CEC 254AC914 */ addiu $t2, %lo(D_8002C914) # addiu $t2, $t2, -0x36ec +/* 05B820 7F026CF0 012A3021 */ addu $a2, $t1, $t2 +/* 05B824 7F026CF4 8CCB0024 */ lw $t3, 0x24($a2) +/* 05B828 7F026CF8 51600068 */ beql $t3, $zero, .L7F026E9C +/* 05B82C 7F026CFC AFA0009C */ sw $zero, 0x9c($sp) +/* 05B830 7F026D00 8CCC0028 */ lw $t4, 0x28($a2) +/* 05B834 7F026D04 02002025 */ move $a0, $s0 +/* 05B838 7F026D08 24050001 */ li $a1, 1 +/* 05B83C 7F026D0C 19800062 */ blez $t4, .L7F026E98 +/* 05B840 7F026D10 8FAD0084 */ lw $t5, 0x84($sp) +/* 05B844 7F026D14 2DAE0001 */ sltiu $t6, $t5, 1 +/* 05B848 7F026D18 240F0001 */ li $t7, 1 +/* 05B84C 7F026D1C AFAF0090 */ sw $t7, 0x90($sp) +/* 05B850 7F026D20 AFAE0034 */ sw $t6, 0x34($sp) +/* 05B854 7F026D24 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05B858 7F026D28 AFA60030 */ sw $a2, 0x30($sp) +/* 05B85C 7F026D2C AFA20050 */ sw $v0, 0x50($sp) +/* 05B860 7F026D30 02002025 */ move $a0, $s0 +/* 05B864 7F026D34 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05B868 7F026D38 00002825 */ move $a1, $zero +/* 05B86C 7F026D3C 8FA60030 */ lw $a2, 0x30($sp) +/* 05B870 7F026D40 3C188003 */ lui $t8, %hi(D_8002CAA0) +/* 05B874 7F026D44 2718CAA0 */ addiu $t8, %lo(D_8002CAA0) # addiu $t8, $t8, -0x3560 +/* 05B878 7F026D48 14D80007 */ bne $a2, $t8, .L7F026D68 +/* 05B87C 7F026D4C 8FB90050 */ lw $t9, 0x50($sp) +/* 05B880 7F026D50 13200005 */ beqz $t9, .L7F026D68 +/* 05B884 7F026D54 2409000A */ li $t1, 10 +/* 05B888 7F026D58 3C068003 */ lui $a2, %hi(D_8002CACC) +/* 05B88C 7F026D5C 24C6CACC */ addiu $a2, %lo(D_8002CACC) # addiu $a2, $a2, -0x3534 +/* 05B890 7F026D60 1000000A */ b .L7F026D8C +/* 05B894 7F026D64 AFA90088 */ sw $t1, 0x88($sp) +.L7F026D68: +/* 05B898 7F026D68 3C0A8003 */ lui $t2, %hi(D_8002CB24) +/* 05B89C 7F026D6C 254ACB24 */ addiu $t2, %lo(D_8002CB24) # addiu $t2, $t2, -0x34dc +/* 05B8A0 7F026D70 14CA0006 */ bne $a2, $t2, .L7F026D8C +/* 05B8A4 7F026D74 00000000 */ nop +/* 05B8A8 7F026D78 10400004 */ beqz $v0, .L7F026D8C +/* 05B8AC 7F026D7C 240B000D */ li $t3, 13 +/* 05B8B0 7F026D80 3C068003 */ lui $a2, %hi(D_8002CB50) +/* 05B8B4 7F026D84 24C6CB50 */ addiu $a2, %lo(D_8002CB50) # addiu $a2, $a2, -0x34b0 +/* 05B8B8 7F026D88 AFAB0088 */ sw $t3, 0x88($sp) +.L7F026D8C: +/* 05B8BC 7F026D8C 0C002914 */ jal get_random_value +/* 05B8C0 7F026D90 AFA60030 */ sw $a2, 0x30($sp) +/* 05B8C4 7F026D94 8FA60030 */ lw $a2, 0x30($sp) +/* 05B8C8 7F026D98 02002025 */ move $a0, $s0 +/* 05B8CC 7F026D9C 8CCC0028 */ lw $t4, 0x28($a2) +/* 05B8D0 7F026DA0 8CCD0024 */ lw $t5, 0x24($a2) +/* 05B8D4 7F026DA4 004C001B */ divu $zero, $v0, $t4 +/* 05B8D8 7F026DA8 00002810 */ mfhi $a1 +/* 05B8DC 7F026DAC 000570C0 */ sll $t6, $a1, 3 +/* 05B8E0 7F026DB0 01C57023 */ subu $t6, $t6, $a1 +/* 05B8E4 7F026DB4 000E7080 */ sll $t6, $t6, 2 +/* 05B8E8 7F026DB8 15800002 */ bnez $t4, .L7F026DC4 +/* 05B8EC 7F026DBC 00000000 */ nop +/* 05B8F0 7F026DC0 0007000D */ break 7 +.L7F026DC4: +/* 05B8F4 7F026DC4 01AE1821 */ addu $v1, $t5, $t6 +/* 05B8F8 7F026DC8 0FC0B461 */ jal sub_GAME_7F02D184 +/* 05B8FC 7F026DCC AFA30044 */ sw $v1, 0x44($sp) +/* 05B900 7F026DD0 8FA30044 */ lw $v1, 0x44($sp) +/* 05B904 7F026DD4 240F0006 */ li $t7, 6 +/* 05B908 7F026DD8 A20F0007 */ sb $t7, 7($s0) +/* 05B90C 7F026DDC AE00002C */ sw $zero, 0x2c($s0) +/* 05B910 7F026DE0 3C188005 */ lui $t8, %hi(global_timer) +/* 05B914 7F026DE4 8F18837C */ lw $t8, %lo(global_timer)($t8) +/* 05B918 7F026DE8 A2000008 */ sb $zero, 8($s0) +/* 05B91C 7F026DEC 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05B920 7F026DF0 AE180030 */ sw $t8, 0x30($s0) +/* 05B924 7F026DF4 8FB90034 */ lw $t9, 0x34($sp) +/* 05B928 7F026DF8 44812000 */ mtc1 $at, $f4 +/* 05B92C 7F026DFC C46A000C */ lwc1 $f10, 0xc($v1) +/* 05B930 7F026E00 8C660004 */ lw $a2, 4($v1) +/* 05B934 7F026E04 8C650000 */ lw $a1, ($v1) +/* 05B938 7F026E08 8FA40094 */ lw $a0, 0x94($sp) +/* 05B93C 7F026E0C 24070000 */ li $a3, 0 +/* 05B940 7F026E10 AFB90018 */ sw $t9, 0x18($sp) +/* 05B944 7F026E14 E7A40014 */ swc1 $f4, 0x14($sp) +/* 05B948 7F026E18 0FC1BF13 */ jal sub_GAME_7F06FC4C +/* 05B94C 7F026E1C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 05B950 7F026E20 8FA30044 */ lw $v1, 0x44($sp) +/* 05B954 7F026E24 44803000 */ mtc1 $zero, $f6 +/* 05B958 7F026E28 02002025 */ move $a0, $s0 +/* 05B95C 7F026E2C C4600008 */ lwc1 $f0, 8($v1) +/* 05B960 7F026E30 4600303E */ c.le.s $f6, $f0 +/* 05B964 7F026E34 00000000 */ nop +/* 05B968 7F026E38 4502000A */ bc1fl .L7F026E64 +/* 05B96C 7F026E3C 8C690000 */ lw $t1, ($v1) +/* 05B970 7F026E40 44050000 */ mfc1 $a1, $f0 +/* 05B974 7F026E44 0FC08F15 */ jal sub_GAME_7F023C54 +/* 05B978 7F026E48 3C064100 */ lui $a2, 0x4100 +/* 05B97C 7F026E4C 44050000 */ mfc1 $a1, $f0 +/* 05B980 7F026E50 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B984 7F026E54 8FA40094 */ lw $a0, 0x94($sp) +/* 05B988 7F026E58 10000010 */ b .L7F026E9C +/* 05B98C 7F026E5C AFA0009C */ sw $zero, 0x9c($sp) +/* 05B990 7F026E60 8C690000 */ lw $t1, ($v1) +.L7F026E64: +/* 05B994 7F026E64 02002025 */ move $a0, $s0 +/* 05B998 7F026E68 3C064100 */ lui $a2, 0x4100 +/* 05B99C 7F026E6C 952A0004 */ lhu $t2, 4($t1) +/* 05B9A0 7F026E70 254BFFFF */ addiu $t3, $t2, -1 +/* 05B9A4 7F026E74 448B4000 */ mtc1 $t3, $f8 +/* 05B9A8 7F026E78 00000000 */ nop +/* 05B9AC 7F026E7C 46804220 */ cvt.s.w $f8, $f8 +/* 05B9B0 7F026E80 44054000 */ mfc1 $a1, $f8 +/* 05B9B4 7F026E84 0FC08F15 */ jal sub_GAME_7F023C54 +/* 05B9B8 7F026E88 00000000 */ nop +/* 05B9BC 7F026E8C 44050000 */ mfc1 $a1, $f0 +/* 05B9C0 7F026E90 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05B9C4 7F026E94 8FA40094 */ lw $a0, 0x94($sp) +.L7F026E98: +/* 05B9C8 7F026E98 AFA0009C */ sw $zero, 0x9c($sp) +.L7F026E9C: +/* 05B9CC 7F026E9C 8FAC009C */ lw $t4, 0x9c($sp) +.L7F026EA0: +/* 05B9D0 7F026EA0 8FAD0090 */ lw $t5, 0x90($sp) +/* 05B9D4 7F026EA4 5180001E */ beql $t4, $zero, .L7F026F20 +/* 05B9D8 7F026EA8 8FBF002C */ lw $ra, 0x2c($sp) +/* 05B9DC 7F026EAC 51A0001C */ beql $t5, $zero, .L7F026F20 +/* 05B9E0 7F026EB0 8FBF002C */ lw $ra, 0x2c($sp) +/* 05B9E4 7F026EB4 8E040160 */ lw $a0, 0x160($s0) +/* 05B9E8 7F026EB8 5080000C */ beql $a0, $zero, .L7F026EEC +/* 05B9EC 7F026EBC 8E040164 */ lw $a0, 0x164($s0) +/* 05B9F0 7F026EC0 8C8E0004 */ lw $t6, 4($a0) +/* 05B9F4 7F026EC4 8DCF0008 */ lw $t7, 8($t6) +/* 05B9F8 7F026EC8 31F82000 */ andi $t8, $t7, 0x2000 +/* 05B9FC 7F026ECC 57000007 */ bnezl $t8, .L7F026EEC +/* 05BA00 7F026ED0 8E040164 */ lw $a0, 0x164($s0) +/* 05BA04 7F026ED4 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 05BA08 7F026ED8 24050001 */ li $a1, 1 +/* 05BA0C 7F026EDC 96190012 */ lhu $t9, 0x12($s0) +/* 05BA10 7F026EE0 37290001 */ ori $t1, $t9, 1 +/* 05BA14 7F026EE4 A6090012 */ sh $t1, 0x12($s0) +/* 05BA18 7F026EE8 8E040164 */ lw $a0, 0x164($s0) +.L7F026EEC: +/* 05BA1C 7F026EEC 5080000C */ beql $a0, $zero, .L7F026F20 +/* 05BA20 7F026EF0 8FBF002C */ lw $ra, 0x2c($sp) +/* 05BA24 7F026EF4 8C8A0004 */ lw $t2, 4($a0) +/* 05BA28 7F026EF8 8D4B0008 */ lw $t3, 8($t2) +/* 05BA2C 7F026EFC 316C2000 */ andi $t4, $t3, 0x2000 +/* 05BA30 7F026F00 55800007 */ bnezl $t4, .L7F026F20 +/* 05BA34 7F026F04 8FBF002C */ lw $ra, 0x2c($sp) +/* 05BA38 7F026F08 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 05BA3C 7F026F0C 24050001 */ li $a1, 1 +/* 05BA40 7F026F10 960D0012 */ lhu $t5, 0x12($s0) +/* 05BA44 7F026F14 35AE0001 */ ori $t6, $t5, 1 +/* 05BA48 7F026F18 A60E0012 */ sh $t6, 0x12($s0) +.L7F026F1C: +/* 05BA4C 7F026F1C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F026F20: +/* 05BA50 7F026F20 8FB00028 */ lw $s0, 0x28($sp) +/* 05BA54 7F026F24 27BD00A0 */ addiu $sp, $sp, 0xa0 +/* 05BA58 7F026F28 03E00008 */ jr $ra +/* 05BA5C 7F026F2C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F026F30(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F026F30 +/* 05BA60 7F026F30 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 05BA64 7F026F34 AFBF0014 */ sw $ra, 0x14($sp) +/* 05BA68 7F026F38 AFA50024 */ sw $a1, 0x24($sp) +/* 05BA6C 7F026F3C 80820007 */ lb $v0, 7($a0) +/* 05BA70 7F026F40 2401000A */ li $at, 10 +/* 05BA74 7F026F44 00803025 */ move $a2, $a0 +/* 05BA78 7F026F48 1441003C */ bne $v0, $at, .L7F02703C +/* 05BA7C 7F026F4C 00001825 */ move $v1, $zero +/* 05BA80 7F026F50 808E0035 */ lb $t6, 0x35($a0) +/* 05BA84 7F026F54 51C00027 */ beql $t6, $zero, .L7F026FF4 +/* 05BA88 7F026F58 8CCA002C */ lw $t2, 0x2c($a2) +/* 05BA8C 7F026F5C 8C82002C */ lw $v0, 0x2c($a0) +/* 05BA90 7F026F60 3C0F8003 */ lui $t7, %hi(D_80030198) +/* 05BA94 7F026F64 25EF0198 */ addiu $t7, %lo(D_80030198) # addiu $t7, $t7, 0x198 +/* 05BA98 7F026F68 11E2000A */ beq $t7, $v0, .L7F026F94 +/* 05BA9C 7F026F6C 3C188003 */ lui $t8, %hi(D_800301E0) +/* 05BAA0 7F026F70 271801E0 */ addiu $t8, %lo(D_800301E0) # addiu $t8, $t8, 0x1e0 +/* 05BAA4 7F026F74 13020007 */ beq $t8, $v0, .L7F026F94 +/* 05BAA8 7F026F78 3C198003 */ lui $t9, %hi(D_80030228) +/* 05BAAC 7F026F7C 27390228 */ addiu $t9, %lo(D_80030228) # addiu $t9, $t9, 0x228 +/* 05BAB0 7F026F80 13220004 */ beq $t9, $v0, .L7F026F94 +/* 05BAB4 7F026F84 3C088003 */ lui $t0, %hi(D_80030270) +/* 05BAB8 7F026F88 25080270 */ addiu $t0, %lo(D_80030270) # addiu $t0, $t0, 0x270 +/* 05BABC 7F026F8C 55020030 */ bnel $t0, $v0, .L7F027050 +/* 05BAC0 7F026F90 8FBF0014 */ lw $ra, 0x14($sp) +.L7F026F94: +/* 05BAC4 7F026F94 C4400004 */ lwc1 $f0, 4($v0) +/* 05BAC8 7F026F98 C44C0014 */ lwc1 $f12, 0x14($v0) +/* 05BACC 7F026F9C 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 05BAD0 7F026FA0 44812000 */ mtc1 $at, $f4 +/* 05BAD4 7F026FA4 4600603C */ c.lt.s $f12, $f0 +/* 05BAD8 7F026FA8 46040081 */ sub.s $f2, $f0, $f4 +/* 05BADC 7F026FAC 45020003 */ bc1fl .L7F026FBC +/* 05BAE0 7F026FB0 8CC4001C */ lw $a0, 0x1c($a2) +/* 05BAE4 7F026FB4 46006086 */ mov.s $f2, $f12 +/* 05BAE8 7F026FB8 8CC4001C */ lw $a0, 0x1c($a2) +.L7F026FBC: +/* 05BAEC 7F026FBC E7A20018 */ swc1 $f2, 0x18($sp) +/* 05BAF0 7F026FC0 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 05BAF4 7F026FC4 AFA3001C */ sw $v1, 0x1c($sp) +/* 05BAF8 7F026FC8 C7A20018 */ lwc1 $f2, 0x18($sp) +/* 05BAFC 7F026FCC 8FA3001C */ lw $v1, 0x1c($sp) +/* 05BB00 7F026FD0 8FA90024 */ lw $t1, 0x24($sp) +/* 05BB04 7F026FD4 4602003C */ c.lt.s $f0, $f2 +/* 05BB08 7F026FD8 00000000 */ nop +/* 05BB0C 7F026FDC 4502001C */ bc1fl .L7F027050 +/* 05BB10 7F026FE0 8FBF0014 */ lw $ra, 0x14($sp) +/* 05BB14 7F026FE4 E5220000 */ swc1 $f2, ($t1) +/* 05BB18 7F026FE8 10000018 */ b .L7F02704C +/* 05BB1C 7F026FEC 24030001 */ li $v1, 1 +/* 05BB20 7F026FF0 8CCA002C */ lw $t2, 0x2c($a2) +.L7F026FF4: +/* 05BB24 7F026FF4 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 05BB28 7F026FF8 44814000 */ mtc1 $at, $f8 +/* 05BB2C 7F026FFC C5460004 */ lwc1 $f6, 4($t2) +/* 05BB30 7F027000 8CC4001C */ lw $a0, 0x1c($a2) +/* 05BB34 7F027004 AFA3001C */ sw $v1, 0x1c($sp) +/* 05BB38 7F027008 46083081 */ sub.s $f2, $f6, $f8 +/* 05BB3C 7F02700C 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 05BB40 7F027010 E7A20018 */ swc1 $f2, 0x18($sp) +/* 05BB44 7F027014 C7A20018 */ lwc1 $f2, 0x18($sp) +/* 05BB48 7F027018 8FA3001C */ lw $v1, 0x1c($sp) +/* 05BB4C 7F02701C 8FAB0024 */ lw $t3, 0x24($sp) +/* 05BB50 7F027020 4602003C */ c.lt.s $f0, $f2 +/* 05BB54 7F027024 00000000 */ nop +/* 05BB58 7F027028 45020009 */ bc1fl .L7F027050 +/* 05BB5C 7F02702C 8FBF0014 */ lw $ra, 0x14($sp) +/* 05BB60 7F027030 E5620000 */ swc1 $f2, ($t3) +/* 05BB64 7F027034 10000005 */ b .L7F02704C +/* 05BB68 7F027038 24030001 */ li $v1, 1 +.L7F02703C: +/* 05BB6C 7F02703C 24010007 */ li $at, 7 +/* 05BB70 7F027040 54410003 */ bnel $v0, $at, .L7F027050 +/* 05BB74 7F027044 8FBF0014 */ lw $ra, 0x14($sp) +/* 05BB78 7F027048 24030001 */ li $v1, 1 +.L7F02704C: +/* 05BB7C 7F02704C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F027050: +/* 05BB80 7F027050 27BD0020 */ addiu $sp, $sp, 0x20 +/* 05BB84 7F027054 00601025 */ move $v0, $v1 +/* 05BB88 7F027058 03E00008 */ jr $ra +/* 05BB8C 7F02705C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void play_sound_for_shot_actor(void) { + +} +#else +GLOBAL_ASM( +.text +glabel play_sound_for_shot_actor +/* 05BB90 7F027060 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 05BB94 7F027064 AFBF0014 */ sw $ra, 0x14($sp) +/* 05BB98 7F027068 AFA40068 */ sw $a0, 0x68($sp) +/* 05BB9C 7F02706C 8C850018 */ lw $a1, 0x18($a0) +/* 05BBA0 7F027070 24010006 */ li $at, 6 +/* 05BBA4 7F027074 00001825 */ move $v1, $zero +/* 05BBA8 7F027078 90AF0000 */ lbu $t7, ($a1) +/* 05BBAC 7F02707C 00A02025 */ move $a0, $a1 +/* 05BBB0 7F027080 55E1000C */ bnel $t7, $at, .L7F0270B4 +/* 05BBB4 7F027084 8FA90068 */ lw $t1, 0x68($sp) +/* 05BBB8 7F027088 0FC26C57 */ jal sub_GAME_7F09B15C +/* 05BBBC 7F02708C AFA00060 */ sw $zero, 0x60($sp) +/* 05BBC0 7F027090 0002C080 */ sll $t8, $v0, 2 +/* 05BBC4 7F027094 3C198008 */ lui $t9, %hi(ptr_BONDdata_p1) +/* 05BBC8 7F027098 0338C821 */ addu $t9, $t9, $t8 +/* 05BBCC 7F02709C 8F399EE0 */ lw $t9, %lo(ptr_BONDdata_p1)($t9) +/* 05BBD0 7F0270A0 8FA30060 */ lw $v1, 0x60($sp) +/* 05BBD4 7F0270A4 8F2800D8 */ lw $t0, 0xd8($t9) +/* 05BBD8 7F0270A8 55000071 */ bnezl $t0, .L7F027270 +/* 05BBDC 7F0270AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 05BBE0 7F0270B0 8FA90068 */ lw $t1, 0x68($sp) +.L7F0270B4: +/* 05BBE4 7F0270B4 24010006 */ li $at, 6 +/* 05BBE8 7F0270B8 8FB90068 */ lw $t9, 0x68($sp) +/* 05BBEC 7F0270BC 8D2A0018 */ lw $t2, 0x18($t1) +/* 05BBF0 7F0270C0 914B0000 */ lbu $t3, ($t2) +/* 05BBF4 7F0270C4 5561001D */ bnel $t3, $at, .L7F02713C +/* 05BBF8 7F0270C8 8328000F */ lb $t0, 0xf($t9) +/* 05BBFC 7F0270CC 0FC26919 */ jal get_num_players +/* 05BC00 7F0270D0 AFA30060 */ sw $v1, 0x60($sp) +/* 05BC04 7F0270D4 24010001 */ li $at, 1 +/* 05BC08 7F0270D8 1441000D */ bne $v0, $at, .L7F027110 +/* 05BC0C 7F0270DC 8FA30060 */ lw $v1, 0x60($sp) +/* 05BC10 7F0270E0 8FAC0068 */ lw $t4, 0x68($sp) +/* 05BC14 7F0270E4 3C0F8004 */ lui $t7, %hi(c_item_entries+16) +/* 05BC18 7F0270E8 818D000F */ lb $t5, 0xf($t4) +/* 05BC1C 7F0270EC 000D7080 */ sll $t6, $t5, 2 +/* 05BC20 7F0270F0 01CD7021 */ addu $t6, $t6, $t5 +/* 05BC24 7F0270F4 000E7080 */ sll $t6, $t6, 2 +/* 05BC28 7F0270F8 01EE7821 */ addu $t7, $t7, $t6 +/* 05BC2C 7F0270FC 91EFDE20 */ lbu $t7, %lo(c_item_entries+16)($t7) +/* 05BC30 7F027100 11E00017 */ beqz $t7, .L7F027160 +/* 05BC34 7F027104 00000000 */ nop +/* 05BC38 7F027108 10000015 */ b .L7F027160 +/* 05BC3C 7F02710C 24030001 */ li $v1, 1 +.L7F027110: +/* 05BC40 7F027110 8FB80068 */ lw $t8, 0x68($sp) +/* 05BC44 7F027114 8F040018 */ lw $a0, 0x18($t8) +/* 05BC48 7F027118 0FC26C57 */ jal sub_GAME_7F09B15C +/* 05BC4C 7F02711C AFA30060 */ sw $v1, 0x60($sp) +/* 05BC50 7F027120 0FC040C3 */ jal get_player_mp_char_gender +/* 05BC54 7F027124 00402025 */ move $a0, $v0 +/* 05BC58 7F027128 1040000D */ beqz $v0, .L7F027160 +/* 05BC5C 7F02712C 8FA30060 */ lw $v1, 0x60($sp) +/* 05BC60 7F027130 1000000B */ b .L7F027160 +/* 05BC64 7F027134 24030001 */ li $v1, 1 +/* 05BC68 7F027138 8328000F */ lb $t0, 0xf($t9) +.L7F02713C: +/* 05BC6C 7F02713C 3C0A8004 */ lui $t2, %hi(c_item_entries+16) +/* 05BC70 7F027140 00084880 */ sll $t1, $t0, 2 +/* 05BC74 7F027144 01284821 */ addu $t1, $t1, $t0 +/* 05BC78 7F027148 00094880 */ sll $t1, $t1, 2 +/* 05BC7C 7F02714C 01495021 */ addu $t2, $t2, $t1 +/* 05BC80 7F027150 914ADE20 */ lbu $t2, %lo(c_item_entries+16)($t2) +/* 05BC84 7F027154 11400002 */ beqz $t2, .L7F027160 +/* 05BC88 7F027158 00000000 */ nop +/* 05BC8C 7F02715C 24030001 */ li $v1, 1 +.L7F027160: +/* 05BC90 7F027160 10600025 */ beqz $v1, .L7F0271F8 +/* 05BC94 7F027164 3C088003 */ lui $t0, %hi(female_guard_yelps) +/* 05BC98 7F027168 3C0B8003 */ lui $t3, %hi(male_guard_yelps) +/* 05BC9C 7F02716C 27A20028 */ addiu $v0, $sp, 0x28 +/* 05BCA0 7F027170 256B09F8 */ addiu $t3, %lo(male_guard_yelps) # addiu $t3, $t3, 0x9f8 +/* 05BCA4 7F027174 256D0030 */ addiu $t5, $t3, 0x30 +/* 05BCA8 7F027178 00407025 */ move $t6, $v0 +.L7F02717C: +/* 05BCAC 7F02717C 8D610000 */ lw $at, ($t3) +/* 05BCB0 7F027180 256B000C */ addiu $t3, $t3, 0xc +/* 05BCB4 7F027184 25CE000C */ addiu $t6, $t6, 0xc +/* 05BCB8 7F027188 ADC1FFF4 */ sw $at, -0xc($t6) +/* 05BCBC 7F02718C 8D61FFF8 */ lw $at, -8($t3) +/* 05BCC0 7F027190 ADC1FFF8 */ sw $at, -8($t6) +/* 05BCC4 7F027194 8D61FFFC */ lw $at, -4($t3) +/* 05BCC8 7F027198 156DFFF8 */ bne $t3, $t5, .L7F02717C +/* 05BCCC 7F02719C ADC1FFFC */ sw $at, -4($t6) +/* 05BCD0 7F0271A0 95610000 */ lhu $at, ($t3) +/* 05BCD4 7F0271A4 3C0F8003 */ lui $t7, %hi(male_guard_yelp_counter) +/* 05BCD8 7F0271A8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 05BCDC 7F0271AC A5C10000 */ sh $at, ($t6) +/* 05BCE0 7F0271B0 8DEF0A34 */ lw $t7, %lo(male_guard_yelp_counter)($t7) +/* 05BCE4 7F0271B4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 05BCE8 7F0271B8 00003025 */ move $a2, $zero +/* 05BCEC 7F0271BC 000FC040 */ sll $t8, $t7, 1 +/* 05BCF0 7F0271C0 0058C821 */ addu $t9, $v0, $t8 +/* 05BCF4 7F0271C4 0C002382 */ jal play_sfx_a1 +/* 05BCF8 7F0271C8 87250000 */ lh $a1, ($t9) +/* 05BCFC 7F0271CC 3C038003 */ lui $v1, %hi(male_guard_yelp_counter) +/* 05BD00 7F0271D0 8C630A34 */ lw $v1, %lo(male_guard_yelp_counter)($v1) +/* 05BD04 7F0271D4 3C018003 */ lui $at, %hi(male_guard_yelp_counter) +/* 05BD08 7F0271D8 00402025 */ move $a0, $v0 +/* 05BD0C 7F0271DC 24630001 */ addiu $v1, $v1, 1 +/* 05BD10 7F0271E0 AC230A34 */ sw $v1, %lo(male_guard_yelp_counter)($at) +/* 05BD14 7F0271E4 28610019 */ slti $at, $v1, 0x19 +/* 05BD18 7F0271E8 1420001C */ bnez $at, .L7F02725C +/* 05BD1C 7F0271EC 3C018003 */ lui $at, %hi(male_guard_yelp_counter) +/* 05BD20 7F0271F0 1000001A */ b .L7F02725C +/* 05BD24 7F0271F4 AC200A34 */ sw $zero, %lo(male_guard_yelp_counter)($at) +.L7F0271F8: +/* 05BD28 7F0271F8 25080A2C */ addiu $t0, %lo(female_guard_yelps) # addiu $t0, $t0, 0xa2c +/* 05BD2C 7F0271FC 8D010000 */ lw $at, ($t0) +/* 05BD30 7F027200 27A20020 */ addiu $v0, $sp, 0x20 +/* 05BD34 7F027204 3C0D8003 */ lui $t5, %hi(female_guard_yelp_counter) +/* 05BD38 7F027208 AC410000 */ sw $at, ($v0) +/* 05BD3C 7F02720C 95010004 */ lhu $at, 4($t0) +/* 05BD40 7F027210 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 05BD44 7F027214 00003025 */ move $a2, $zero +/* 05BD48 7F027218 A4410004 */ sh $at, 4($v0) +/* 05BD4C 7F02721C 8DAD0A38 */ lw $t5, %lo(female_guard_yelp_counter)($t5) +/* 05BD50 7F027220 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 05BD54 7F027224 000D5840 */ sll $t3, $t5, 1 +/* 05BD58 7F027228 004B7021 */ addu $t6, $v0, $t3 +/* 05BD5C 7F02722C 0C002382 */ jal play_sfx_a1 +/* 05BD60 7F027230 85C50000 */ lh $a1, ($t6) +/* 05BD64 7F027234 3C038003 */ lui $v1, %hi(female_guard_yelp_counter) +/* 05BD68 7F027238 8C630A38 */ lw $v1, %lo(female_guard_yelp_counter)($v1) +/* 05BD6C 7F02723C 3C018003 */ lui $at, %hi(female_guard_yelp_counter) +/* 05BD70 7F027240 00402025 */ move $a0, $v0 +/* 05BD74 7F027244 24630001 */ addiu $v1, $v1, 1 +/* 05BD78 7F027248 AC230A38 */ sw $v1, %lo(female_guard_yelp_counter)($at) +/* 05BD7C 7F02724C 28610003 */ slti $at, $v1, 3 +/* 05BD80 7F027250 14200002 */ bnez $at, .L7F02725C +/* 05BD84 7F027254 3C018003 */ lui $at, %hi(female_guard_yelp_counter) +/* 05BD88 7F027258 AC200A38 */ sw $zero, %lo(female_guard_yelp_counter)($at) +.L7F02725C: +/* 05BD8C 7F02725C 8FAF0068 */ lw $t7, 0x68($sp) +/* 05BD90 7F027260 8DE50018 */ lw $a1, 0x18($t7) +/* 05BD94 7F027264 0FC14E84 */ jal sub_GAME_7F053A10 +/* 05BD98 7F027268 24A50008 */ addiu $a1, $a1, 8 +/* 05BD9C 7F02726C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F027270: +/* 05BDA0 7F027270 27BD0068 */ addiu $sp, $sp, 0x68 +/* 05BDA4 7F027274 03E00008 */ jr $ra +/* 05BDA8 7F027278 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void handles_shot_actors(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DDC +.word 0x3f860a92 /*1.0471976*/ +glabel D_80051DE0 +.word 0x40a78d36 /*5.2359877*/ +glabel D_80051DE4 +.word 0x40060a92 /*2.0943952*/ +glabel D_80051DE8 +.word 0x40860a92 /*4.1887903*/ +.text +glabel handles_shot_actors +/* 05BDAC 7F02727C 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 05BDB0 7F027280 AFBF0024 */ sw $ra, 0x24($sp) +/* 05BDB4 7F027284 AFB00020 */ sw $s0, 0x20($sp) +/* 05BDB8 7F027288 AFA5006C */ sw $a1, 0x6c($sp) +/* 05BDBC 7F02728C AFA60070 */ sw $a2, 0x70($sp) +/* 05BDC0 7F027290 AFA70074 */ sw $a3, 0x74($sp) +/* 05BDC4 7F027294 8C8E0018 */ lw $t6, 0x18($a0) +/* 05BDC8 7F027298 2401006E */ li $at, 110 +/* 05BDCC 7F02729C 00808025 */ move $s0, $a0 +/* 05BDD0 7F0272A0 14A1002A */ bne $a1, $at, .L7F02734C +/* 05BDD4 7F0272A4 AFAE0060 */ sw $t6, 0x60($sp) +/* 05BDD8 7F0272A8 8C8401D8 */ lw $a0, 0x1d8($a0) +/* 05BDDC 7F0272AC 50800028 */ beql $a0, $zero, .L7F027350 +/* 05BDE0 7F0272B0 8FAF0078 */ lw $t7, 0x78($sp) +/* 05BDE4 7F0272B4 0FC149A1 */ jal get_hat_model +/* 05BDE8 7F0272B8 00000000 */ nop +/* 05BDEC 7F0272BC 24010005 */ li $at, 5 +/* 05BDF0 7F0272C0 14410003 */ bne $v0, $at, .L7F0272D0 +/* 05BDF4 7F0272C4 24180008 */ li $t8, 8 +/* 05BDF8 7F0272C8 10000020 */ b .L7F02734C +/* 05BDFC 7F0272CC AFB8006C */ sw $t8, 0x6c($sp) +.L7F0272D0: +/* 05BE00 7F0272D0 24010003 */ li $at, 3 +/* 05BE04 7F0272D4 10410008 */ beq $v0, $at, .L7F0272F8 +/* 05BE08 7F0272D8 3C0A8003 */ lui $t2, %hi(metal_ricochet_SFX) +/* 05BE0C 7F0272DC 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 05BE10 7F0272E0 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 05BE14 7F0272E4 24050004 */ li $a1, 4 +/* 05BE18 7F0272E8 96190012 */ lhu $t9, 0x12($s0) +/* 05BE1C 7F0272EC 37280001 */ ori $t0, $t9, 1 +/* 05BE20 7F0272F0 10000016 */ b .L7F02734C +/* 05BE24 7F0272F4 A6080012 */ sh $t0, 0x12($s0) +.L7F0272F8: +/* 05BE28 7F0272F8 254A0A3C */ addiu $t2, %lo(metal_ricochet_SFX) # addiu $t2, $t2, 0xa3c +/* 05BE2C 7F0272FC 8D410000 */ lw $at, ($t2) +/* 05BE30 7F027300 27A90054 */ addiu $t1, $sp, 0x54 +/* 05BE34 7F027304 AD210000 */ sw $at, ($t1) +/* 05BE38 7F027308 95410004 */ lhu $at, 4($t2) +/* 05BE3C 7F02730C 0C002914 */ jal get_random_value +/* 05BE40 7F027310 A5210004 */ sh $at, 4($t1) +/* 05BE44 7F027314 24010003 */ li $at, 3 +/* 05BE48 7F027318 0041001B */ divu $zero, $v0, $at +/* 05BE4C 7F02731C 00006810 */ mfhi $t5 +/* 05BE50 7F027320 000D7040 */ sll $t6, $t5, 1 +/* 05BE54 7F027324 03AE2821 */ addu $a1, $sp, $t6 +/* 05BE58 7F027328 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 05BE5C 7F02732C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 05BE60 7F027330 84A50054 */ lh $a1, 0x54($a1) +/* 05BE64 7F027334 0C002382 */ jal play_sfx_a1 +/* 05BE68 7F027338 00003025 */ move $a2, $zero +/* 05BE6C 7F02733C 8E050018 */ lw $a1, 0x18($s0) +/* 05BE70 7F027340 00402025 */ move $a0, $v0 +/* 05BE74 7F027344 0FC14E84 */ jal sub_GAME_7F053A10 +/* 05BE78 7F027348 24A50008 */ addiu $a1, $a1, 8 +.L7F02734C: +/* 05BE7C 7F02734C 8FAF0078 */ lw $t7, 0x78($sp) +.L7F027350: +/* 05BE80 7F027350 8FB8006C */ lw $t8, 0x6c($sp) +/* 05BE84 7F027354 51E00025 */ beql $t7, $zero, .L7F0273EC +/* 05BE88 7F027358 8E0B0014 */ lw $t3, 0x14($s0) +/* 05BE8C 7F02735C 13000022 */ beqz $t8, .L7F0273E8 +/* 05BE90 7F027360 24010007 */ li $at, 7 +/* 05BE94 7F027364 1301001A */ beq $t8, $at, .L7F0273D0 +/* 05BE98 7F027368 8FA40074 */ lw $a0, 0x74($sp) +/* 05BE9C 7F02736C 24010008 */ li $at, 8 +/* 05BEA0 7F027370 1301000B */ beq $t8, $at, .L7F0273A0 +/* 05BEA4 7F027374 24050001 */ li $a1, 1 +/* 05BEA8 7F027378 2401000F */ li $at, 15 +/* 05BEAC 7F02737C 13010014 */ beq $t8, $at, .L7F0273D0 +/* 05BEB0 7F027380 24010064 */ li $at, 100 +/* 05BEB4 7F027384 1301000A */ beq $t8, $at, .L7F0273B0 +/* 05BEB8 7F027388 8FA40074 */ lw $a0, 0x74($sp) +/* 05BEBC 7F02738C 2401006E */ li $at, 110 +/* 05BEC0 7F027390 1301000B */ beq $t8, $at, .L7F0273C0 +/* 05BEC4 7F027394 8FA40074 */ lw $a0, 0x74($sp) +/* 05BEC8 7F027398 10000011 */ b .L7F0273E0 +/* 05BECC 7F02739C 8FA40074 */ lw $a0, 0x74($sp) +.L7F0273A0: +/* 05BED0 7F0273A0 0FC1A9BE */ jal inc_curplayer_hitcount_with_weapon +/* 05BED4 7F0273A4 8FA40074 */ lw $a0, 0x74($sp) +/* 05BED8 7F0273A8 10000010 */ b .L7F0273EC +/* 05BEDC 7F0273AC 8E0B0014 */ lw $t3, 0x14($s0) +.L7F0273B0: +/* 05BEE0 7F0273B0 0FC1A9BE */ jal inc_curplayer_hitcount_with_weapon +/* 05BEE4 7F0273B4 24050004 */ li $a1, 4 +/* 05BEE8 7F0273B8 1000000C */ b .L7F0273EC +/* 05BEEC 7F0273BC 8E0B0014 */ lw $t3, 0x14($s0) +.L7F0273C0: +/* 05BEF0 7F0273C0 0FC1A9BE */ jal inc_curplayer_hitcount_with_weapon +/* 05BEF4 7F0273C4 24050005 */ li $a1, 5 +/* 05BEF8 7F0273C8 10000008 */ b .L7F0273EC +/* 05BEFC 7F0273CC 8E0B0014 */ lw $t3, 0x14($s0) +.L7F0273D0: +/* 05BF00 7F0273D0 0FC1A9BE */ jal inc_curplayer_hitcount_with_weapon +/* 05BF04 7F0273D4 24050002 */ li $a1, 2 +/* 05BF08 7F0273D8 10000004 */ b .L7F0273EC +/* 05BF0C 7F0273DC 8E0B0014 */ lw $t3, 0x14($s0) +.L7F0273E0: +/* 05BF10 7F0273E0 0FC1A9BE */ jal inc_curplayer_hitcount_with_weapon +/* 05BF14 7F0273E4 24050003 */ li $a1, 3 +.L7F0273E8: +/* 05BF18 7F0273E8 8E0B0014 */ lw $t3, 0x14($s0) +.L7F0273EC: +/* 05BF1C 7F0273EC 8219000B */ lb $t9, 0xb($s0) +/* 05BF20 7F0273F0 3C010020 */ lui $at, 0x20 +/* 05BF24 7F0273F4 01614825 */ or $t1, $t3, $at +/* 05BF28 7F0273F8 312C0010 */ andi $t4, $t1, 0x10 +/* 05BF2C 7F0273FC 27280001 */ addiu $t0, $t9, 1 +/* 05BF30 7F027400 A208000B */ sb $t0, 0xb($s0) +/* 05BF34 7F027404 11800005 */ beqz $t4, .L7F02741C +/* 05BF38 7F027408 AE090014 */ sw $t1, 0x14($s0) +/* 05BF3C 7F02740C 0FC081B5 */ jal sub_GAME_7F0206D4 +/* 05BF40 7F027410 02002025 */ move $a0, $s0 +/* 05BF44 7F027414 100000F6 */ b .L7F0277F0 +/* 05BF48 7F027418 00001025 */ move $v0, $zero +.L7F02741C: +/* 05BF4C 7F02741C 82020007 */ lb $v0, 7($s0) +/* 05BF50 7F027420 24010004 */ li $at, 4 +/* 05BF54 7F027424 104100F1 */ beq $v0, $at, .L7F0277EC +/* 05BF58 7F027428 24010005 */ li $at, 5 +/* 05BF5C 7F02742C 504100F0 */ beql $v0, $at, .L7F0277F0 +/* 05BF60 7F027430 24020001 */ li $v0, 1 +/* 05BF64 7F027434 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 05BF68 7F027438 8FA40074 */ lw $a0, 0x74($sp) +/* 05BF6C 7F02743C 8FAD0078 */ lw $t5, 0x78($sp) +/* 05BF70 7F027440 46000086 */ mov.s $f2, $f0 +/* 05BF74 7F027444 51A0000B */ beql $t5, $zero, .L7F027474 +/* 05BF78 7F027448 8FA20070 */ lw $v0, 0x70($sp) +/* 05BF7C 7F02744C 0FC26919 */ jal get_num_players +/* 05BF80 7F027450 E7A2003C */ swc1 $f2, 0x3c($sp) +/* 05BF84 7F027454 24010001 */ li $at, 1 +/* 05BF88 7F027458 14410005 */ bne $v0, $at, .L7F027470 +/* 05BF8C 7F02745C C7A2003C */ lwc1 $f2, 0x3c($sp) +/* 05BF90 7F027460 3C018003 */ lui $at, %hi(ai_health_modifier) +/* 05BF94 7F027464 C424CE48 */ lwc1 $f4, %lo(ai_health_modifier)($at) +/* 05BF98 7F027468 46041082 */ mul.s $f2, $f2, $f4 +/* 05BF9C 7F02746C 00000000 */ nop +.L7F027470: +/* 05BFA0 7F027470 8FA20070 */ lw $v0, 0x70($sp) +.L7F027474: +/* 05BFA4 7F027474 8FAE0060 */ lw $t6, 0x60($sp) +/* 05BFA8 7F027478 02002025 */ move $a0, $s0 +/* 05BFAC 7F02747C C4480000 */ lwc1 $f8, ($v0) +/* 05BFB0 7F027480 C5C60008 */ lwc1 $f6, 8($t6) +/* 05BFB4 7F027484 27A50044 */ addiu $a1, $sp, 0x44 +/* 05BFB8 7F027488 46083281 */ sub.s $f10, $f6, $f8 +/* 05BFBC 7F02748C E7AA0044 */ swc1 $f10, 0x44($sp) +/* 05BFC0 7F027490 C4520004 */ lwc1 $f18, 4($v0) +/* 05BFC4 7F027494 C5D0000C */ lwc1 $f16, 0xc($t6) +/* 05BFC8 7F027498 46128101 */ sub.s $f4, $f16, $f18 +/* 05BFCC 7F02749C E7A40048 */ swc1 $f4, 0x48($sp) +/* 05BFD0 7F0274A0 C4480008 */ lwc1 $f8, 8($v0) +/* 05BFD4 7F0274A4 C5C60010 */ lwc1 $f6, 0x10($t6) +/* 05BFD8 7F0274A8 E7A2003C */ swc1 $f2, 0x3c($sp) +/* 05BFDC 7F0274AC 46083281 */ sub.s $f10, $f6, $f8 +/* 05BFE0 7F0274B0 0FC0CAF6 */ jal get_distance_actor_to_position +/* 05BFE4 7F0274B4 E7AA004C */ swc1 $f10, 0x4c($sp) +/* 05BFE8 7F0274B8 8FAF006C */ lw $t7, 0x6c($sp) +/* 05BFEC 7F0274BC 240100C8 */ li $at, 200 +/* 05BFF0 7F0274C0 24030001 */ li $v1, 1 +/* 05BFF4 7F0274C4 C7A2003C */ lwc1 $f2, 0x3c($sp) +/* 05BFF8 7F0274C8 15E10008 */ bne $t7, $at, .L7F0274EC +/* 05BFFC 7F0274CC E7A00040 */ swc1 $f0, 0x40($sp) +/* 05C000 7F0274D0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05C004 7F0274D4 44818000 */ mtc1 $at, $f16 +/* 05C008 7F0274D8 2418000F */ li $t8, 15 +/* 05C00C 7F0274DC AFB8006C */ sw $t8, 0x6c($sp) +/* 05C010 7F0274E0 46101082 */ mul.s $f2, $f2, $f16 +/* 05C014 7F0274E4 1000000B */ b .L7F027514 +/* 05C018 7F0274E8 8FAB0074 */ lw $t3, 0x74($sp) +.L7F0274EC: +/* 05C01C 7F0274EC 8FB9006C */ lw $t9, 0x6c($sp) +/* 05C020 7F0274F0 240100C9 */ li $at, 201 +/* 05C024 7F0274F4 17210006 */ bne $t9, $at, .L7F027510 +/* 05C028 7F0274F8 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 05C02C 7F0274FC 44819000 */ mtc1 $at, $f18 +/* 05C030 7F027500 2408000F */ li $t0, 15 +/* 05C034 7F027504 AFA8006C */ sw $t0, 0x6c($sp) +/* 05C038 7F027508 46121082 */ mul.s $f2, $f2, $f18 +/* 05C03C 7F02750C 00000000 */ nop +.L7F027510: +/* 05C040 7F027510 8FAB0074 */ lw $t3, 0x74($sp) +.L7F027514: +/* 05C044 7F027514 8FAA006C */ lw $t2, 0x6c($sp) +/* 05C048 7F027518 8FAC006C */ lw $t4, 0x6c($sp) +/* 05C04C 7F02751C 55630039 */ bnel $t3, $v1, .L7F027604 +/* 05C050 7F027520 24010008 */ li $at, 8 +/* 05C054 7F027524 82020007 */ lb $v0, 7($s0) +/* 05C058 7F027528 2401000E */ li $at, 14 +/* 05C05C 7F02752C 50620035 */ beql $v1, $v0, .L7F027604 +/* 05C060 7F027530 24010008 */ li $at, 8 +/* 05C064 7F027534 10410032 */ beq $v0, $at, .L7F027600 +/* 05C068 7F027538 24010010 */ li $at, 16 +/* 05C06C 7F02753C 10410030 */ beq $v0, $at, .L7F027600 +/* 05C070 7F027540 24010003 */ li $at, 3 +/* 05C074 7F027544 1041002E */ beq $v0, $at, .L7F027600 +/* 05C078 7F027548 2401000F */ li $at, 15 +/* 05C07C 7F02754C 14410003 */ bne $v0, $at, .L7F02755C +/* 05C080 7F027550 00000000 */ nop +/* 05C084 7F027554 92090059 */ lbu $t1, 0x59($s0) +/* 05C088 7F027558 11200029 */ beqz $t1, .L7F027600 +.L7F02755C: +/* 05C08C 7F02755C 3C018005 */ lui $at, %hi(D_80051DDC) +/* 05C090 7F027560 C4241DDC */ lwc1 $f4, %lo(D_80051DDC)($at) +/* 05C094 7F027564 3C018005 */ lui $at, %hi(D_80051DE0) +/* 05C098 7F027568 4604003C */ c.lt.s $f0, $f4 +/* 05C09C 7F02756C 00000000 */ nop +/* 05C0A0 7F027570 45030008 */ bc1tl .L7F027594 +/* 05C0A4 7F027574 3C013E00 */ lui $at, 0x3e00 +/* 05C0A8 7F027578 C4261DE0 */ lwc1 $f6, %lo(D_80051DE0)($at) +/* 05C0AC 7F02757C 3C018005 */ lui $at, %hi(D_80051DE4) +/* 05C0B0 7F027580 4600303C */ c.lt.s $f6, $f0 +/* 05C0B4 7F027584 00000000 */ nop +/* 05C0B8 7F027588 45000007 */ bc1f .L7F0275A8 +/* 05C0BC 7F02758C 00000000 */ nop +/* 05C0C0 7F027590 3C013E00 */ li $at, 0x3E000000 # 0.125000 +.L7F027594: +/* 05C0C4 7F027594 44814000 */ mtc1 $at, $f8 +/* 05C0C8 7F027598 00000000 */ nop +/* 05C0CC 7F02759C 46081082 */ mul.s $f2, $f2, $f8 +/* 05C0D0 7F0275A0 10000018 */ b .L7F027604 +/* 05C0D4 7F0275A4 24010008 */ li $at, 8 +.L7F0275A8: +/* 05C0D8 7F0275A8 C42A1DE4 */ lwc1 $f10, %lo(D_80051DE4)($at) +/* 05C0DC 7F0275AC 3C018005 */ lui $at, %hi(D_80051DE8) +/* 05C0E0 7F0275B0 460A003C */ c.lt.s $f0, $f10 +/* 05C0E4 7F0275B4 00000000 */ nop +/* 05C0E8 7F0275B8 45030008 */ bc1tl .L7F0275DC +/* 05C0EC 7F0275BC 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 05C0F0 7F0275C0 C4301DE8 */ lwc1 $f16, %lo(D_80051DE8)($at) +/* 05C0F4 7F0275C4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05C0F8 7F0275C8 4600803C */ c.lt.s $f16, $f0 +/* 05C0FC 7F0275CC 00000000 */ nop +/* 05C100 7F0275D0 45020008 */ bc1fl .L7F0275F4 +/* 05C104 7F0275D4 44812000 */ mtc1 $at, $f4 +/* 05C108 7F0275D8 3C013E80 */ li $at, 0x3E800000 # 0.250000 +.L7F0275DC: +/* 05C10C 7F0275DC 44819000 */ mtc1 $at, $f18 +/* 05C110 7F0275E0 00000000 */ nop +/* 05C114 7F0275E4 46121082 */ mul.s $f2, $f2, $f18 +/* 05C118 7F0275E8 10000006 */ b .L7F027604 +/* 05C11C 7F0275EC 24010008 */ li $at, 8 +/* 05C120 7F0275F0 44812000 */ mtc1 $at, $f4 +.L7F0275F4: +/* 05C124 7F0275F4 00000000 */ nop +/* 05C128 7F0275F8 46041082 */ mul.s $f2, $f2, $f4 +/* 05C12C 7F0275FC 00000000 */ nop +.L7F027600: +/* 05C130 7F027600 24010008 */ li $at, 8 +.L7F027604: +/* 05C134 7F027604 15410006 */ bne $t2, $at, .L7F027620 +/* 05C138 7F027608 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 05C13C 7F02760C 44813000 */ mtc1 $at, $f6 +/* 05C140 7F027610 00000000 */ nop +/* 05C144 7F027614 46061082 */ mul.s $f2, $f2, $f6 +/* 05C148 7F027618 10000012 */ b .L7F027664 +/* 05C14C 7F02761C 8E0F0018 */ lw $t7, 0x18($s0) +.L7F027620: +/* 05C150 7F027620 2401000F */ li $at, 15 +/* 05C154 7F027624 15810003 */ bne $t4, $at, .L7F027634 +/* 05C158 7F027628 8FAD006C */ lw $t5, 0x6c($sp) +/* 05C15C 7F02762C 1000000C */ b .L7F027660 +/* 05C160 7F027630 46021080 */ add.s $f2, $f2, $f2 +.L7F027634: +/* 05C164 7F027634 24010064 */ li $at, 100 +/* 05C168 7F027638 15A10004 */ bne $t5, $at, .L7F02764C +/* 05C16C 7F02763C 8FAE006C */ lw $t6, 0x6c($sp) +/* 05C170 7F027640 44801000 */ mtc1 $zero, $f2 +/* 05C174 7F027644 10000007 */ b .L7F027664 +/* 05C178 7F027648 8E0F0018 */ lw $t7, 0x18($s0) +.L7F02764C: +/* 05C17C 7F02764C 2401006E */ li $at, 110 +/* 05C180 7F027650 55C10004 */ bnel $t6, $at, .L7F027664 +/* 05C184 7F027654 8E0F0018 */ lw $t7, 0x18($s0) +/* 05C188 7F027658 44801000 */ mtc1 $zero, $f2 +/* 05C18C 7F02765C 00000000 */ nop +.L7F027660: +/* 05C190 7F027660 8E0F0018 */ lw $t7, 0x18($s0) +.L7F027664: +/* 05C194 7F027664 24010006 */ li $at, 6 +/* 05C198 7F027668 91F80000 */ lbu $t8, ($t7) +/* 05C19C 7F02766C 57010018 */ bnel $t8, $at, .L7F0276D0 +/* 05C1A0 7F027670 C60A00FC */ lwc1 $f10, 0xfc($s0) +/* 05C1A4 7F027674 0FC26C54 */ jal get_cur_playernum +/* 05C1A8 7F027678 E7A2003C */ swc1 $f2, 0x3c($sp) +/* 05C1AC 7F02767C AFA20038 */ sw $v0, 0x38($sp) +/* 05C1B0 7F027680 0FC26C57 */ jal sub_GAME_7F09B15C +/* 05C1B4 7F027684 8E040018 */ lw $a0, 0x18($s0) +/* 05C1B8 7F027688 0FC26C43 */ jal set_cur_player +/* 05C1BC 7F02768C 00402025 */ move $a0, $v0 +/* 05C1C0 7F027690 8FB90070 */ lw $t9, 0x70($sp) +/* 05C1C4 7F027694 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 05C1C8 7F027698 C7A2003C */ lwc1 $f2, 0x3c($sp) +/* 05C1CC 7F02769C 44814000 */ mtc1 $at, $f8 +/* 05C1D0 7F0276A0 24080001 */ li $t0, 1 +/* 05C1D4 7F0276A4 C72E0000 */ lwc1 $f14, ($t9) +/* 05C1D8 7F0276A8 8F260008 */ lw $a2, 8($t9) +/* 05C1DC 7F0276AC 46081302 */ mul.s $f12, $f2, $f8 +/* 05C1E0 7F0276B0 AFA80010 */ sw $t0, 0x10($sp) +/* 05C1E4 7F0276B4 0FC22647 */ jal record_damage_kills +/* 05C1E8 7F0276B8 8FA70038 */ lw $a3, 0x38($sp) +/* 05C1EC 7F0276BC 0FC26C43 */ jal set_cur_player +/* 05C1F0 7F0276C0 8FA40038 */ lw $a0, 0x38($sp) +/* 05C1F4 7F0276C4 1000001A */ b .L7F027730 +/* 05C1F8 7F0276C8 8FAA006C */ lw $t2, 0x6c($sp) +/* 05C1FC 7F0276CC C60A00FC */ lwc1 $f10, 0xfc($s0) +.L7F0276D0: +/* 05C200 7F0276D0 44802000 */ mtc1 $zero, $f4 +/* 05C204 7F0276D4 8E0B0014 */ lw $t3, 0x14($s0) +/* 05C208 7F0276D8 46025400 */ add.s $f16, $f10, $f2 +/* 05C20C 7F0276DC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 05C210 7F0276E0 35690100 */ ori $t1, $t3, 0x100 +/* 05C214 7F0276E4 AE090014 */ sw $t1, 0x14($s0) +/* 05C218 7F0276E8 E61000FC */ swc1 $f16, 0xfc($s0) +/* 05C21C 7F0276EC C61200FC */ lwc1 $f18, 0xfc($s0) +/* 05C220 7F0276F0 02002025 */ move $a0, $s0 +/* 05C224 7F0276F4 4604903C */ c.lt.s $f18, $f4 +/* 05C228 7F0276F8 00000000 */ nop +/* 05C22C 7F0276FC 4502000C */ bc1fl .L7F027730 +/* 05C230 7F027700 8FAA006C */ lw $t2, 0x6c($sp) +/* 05C234 7F027704 44813000 */ mtc1 $at, $f6 +/* 05C238 7F027708 27A50034 */ addiu $a1, $sp, 0x34 +/* 05C23C 7F02770C 0FC09BCC */ jal sub_GAME_7F026F30 +/* 05C240 7F027710 E7A60034 */ swc1 $f6, 0x34($sp) +/* 05C244 7F027714 54400006 */ bnezl $v0, .L7F027730 +/* 05C248 7F027718 8FAA006C */ lw $t2, 0x6c($sp) +/* 05C24C 7F02771C 0FC081B5 */ jal sub_GAME_7F0206D4 +/* 05C250 7F027720 02002025 */ move $a0, $s0 +/* 05C254 7F027724 10000032 */ b .L7F0277F0 +/* 05C258 7F027728 00001025 */ move $v0, $zero +/* 05C25C 7F02772C 8FAA006C */ lw $t2, 0x6c($sp) +.L7F027730: +/* 05C260 7F027730 2401006E */ li $at, 110 +/* 05C264 7F027734 1141002D */ beq $t2, $at, .L7F0277EC +/* 05C268 7F027738 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 05C26C 7F02773C 44814000 */ mtc1 $at, $f8 +/* 05C270 7F027740 02002025 */ move $a0, $s0 +/* 05C274 7F027744 0FC09C18 */ jal play_sound_for_shot_actor +/* 05C278 7F027748 E7A80030 */ swc1 $f8, 0x30($sp) +/* 05C27C 7F02774C 02002025 */ move $a0, $s0 +/* 05C280 7F027750 0FC09BCC */ jal sub_GAME_7F026F30 +/* 05C284 7F027754 27A50030 */ addiu $a1, $sp, 0x30 +/* 05C288 7F027758 1040001E */ beqz $v0, .L7F0277D4 +/* 05C28C 7F02775C 02002025 */ move $a0, $s0 +/* 05C290 7F027760 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 05C294 7F027764 44808000 */ mtc1 $zero, $f16 +/* 05C298 7F027768 00000000 */ nop +/* 05C29C 7F02776C 460A803E */ c.le.s $f16, $f10 +/* 05C2A0 7F027770 00000000 */ nop +/* 05C2A4 7F027774 45020005 */ bc1fl .L7F02778C +/* 05C2A8 7F027778 240C0007 */ li $t4, 7 +/* 05C2AC 7F02777C 44055000 */ mfc1 $a1, $f10 +/* 05C2B0 7F027780 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05C2B4 7F027784 8E04001C */ lw $a0, 0x1c($s0) +/* 05C2B8 7F027788 240C0007 */ li $t4, 7 +.L7F02778C: +/* 05C2BC 7F02778C A20C0007 */ sb $t4, 7($s0) +/* 05C2C0 7F027790 8FAD0070 */ lw $t5, 0x70($sp) +/* 05C2C4 7F027794 C5B20000 */ lwc1 $f18, ($t5) +/* 05C2C8 7F027798 E612002C */ swc1 $f18, 0x2c($s0) +/* 05C2CC 7F02779C 8FAE0070 */ lw $t6, 0x70($sp) +/* 05C2D0 7F0277A0 C5C40004 */ lwc1 $f4, 4($t6) +/* 05C2D4 7F0277A4 E6040030 */ swc1 $f4, 0x30($s0) +/* 05C2D8 7F0277A8 8FAF0070 */ lw $t7, 0x70($sp) +/* 05C2DC 7F0277AC C5E60008 */ lwc1 $f6, 8($t7) +/* 05C2E0 7F0277B0 E6060034 */ swc1 $f6, 0x34($s0) +/* 05C2E4 7F0277B4 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 05C2E8 7F0277B8 E6080038 */ swc1 $f8, 0x38($s0) +/* 05C2EC 7F0277BC 8FB8006C */ lw $t8, 0x6c($sp) +/* 05C2F0 7F0277C0 AE18003C */ sw $t8, 0x3c($s0) +/* 05C2F4 7F0277C4 8FB90074 */ lw $t9, 0x74($sp) +/* 05C2F8 7F0277C8 A2000008 */ sb $zero, 8($s0) +/* 05C2FC 7F0277CC 10000007 */ b .L7F0277EC +/* 05C300 7F0277D0 AE190040 */ sw $t9, 0x40($s0) +.L7F0277D4: +/* 05C304 7F0277D4 8FA80074 */ lw $t0, 0x74($sp) +/* 05C308 7F0277D8 8FA50070 */ lw $a1, 0x70($sp) +/* 05C30C 7F0277DC 8FA60040 */ lw $a2, 0x40($sp) +/* 05C310 7F0277E0 8FA7006C */ lw $a3, 0x6c($sp) +/* 05C314 7F0277E4 0FC09942 */ jal triggered_on_shot_hit +/* 05C318 7F0277E8 AFA80010 */ sw $t0, 0x10($sp) +.L7F0277EC: +/* 05C31C 7F0277EC 24020001 */ li $v0, 1 +.L7F0277F0: +/* 05C320 7F0277F0 8FBF0024 */ lw $ra, 0x24($sp) +/* 05C324 7F0277F4 8FB00020 */ lw $s0, 0x20($sp) +/* 05C328 7F0277F8 27BD0068 */ addiu $sp, $sp, 0x68 +/* 05C32C 7F0277FC 03E00008 */ jr $ra +/* 05C330 7F027800 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F027804(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DEC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051DF0 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F027804 +/* 05C334 7F027804 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 05C338 7F027808 AFBF0024 */ sw $ra, 0x24($sp) +/* 05C33C 7F02780C AFB00020 */ sw $s0, 0x20($sp) +/* 05C340 7F027810 AFA60060 */ sw $a2, 0x60($sp) +/* 05C344 7F027814 AFA70064 */ sw $a3, 0x64($sp) +/* 05C348 7F027818 80830007 */ lb $v1, 7($a0) +/* 05C34C 7F02781C 24010005 */ li $at, 5 +/* 05C350 7F027820 00808025 */ move $s0, $a0 +/* 05C354 7F027824 8C86001C */ lw $a2, 0x1c($a0) +/* 05C358 7F027828 10610004 */ beq $v1, $at, .L7F02783C +/* 05C35C 7F02782C 8C820018 */ lw $v0, 0x18($a0) +/* 05C360 7F027830 24010004 */ li $at, 4 +/* 05C364 7F027834 54610004 */ bnel $v1, $at, .L7F027848 +/* 05C368 7F027838 8E0E0014 */ lw $t6, 0x14($s0) +.L7F02783C: +/* 05C36C 7F02783C 100000E8 */ b .L7F027BE0 +/* 05C370 7F027840 00001025 */ move $v0, $zero +/* 05C374 7F027844 8E0E0014 */ lw $t6, 0x14($s0) +.L7F027848: +/* 05C378 7F027848 3C010020 */ lui $at, 0x20 +/* 05C37C 7F02784C 01C11825 */ or $v1, $t6, $at +/* 05C380 7F027850 30780010 */ andi $t8, $v1, 0x10 +/* 05C384 7F027854 13000003 */ beqz $t8, .L7F027864 +/* 05C388 7F027858 AE030014 */ sw $v1, 0x14($s0) +/* 05C38C 7F02785C 100000E0 */ b .L7F027BE0 +/* 05C390 7F027860 00001025 */ move $v0, $zero +.L7F027864: +/* 05C394 7F027864 8219000B */ lb $t9, 0xb($s0) +/* 05C398 7F027868 C60400FC */ lwc1 $f4, 0xfc($s0) +/* 05C39C 7F02786C 44805000 */ mtc1 $zero, $f10 +/* 05C3A0 7F027870 27280001 */ addiu $t0, $t9, 1 +/* 05C3A4 7F027874 A208000B */ sb $t0, 0xb($s0) +/* 05C3A8 7F027878 C7A60060 */ lwc1 $f6, 0x60($sp) +/* 05C3AC 7F02787C 34690100 */ ori $t1, $v1, 0x100 +/* 05C3B0 7F027880 AE090014 */ sw $t1, 0x14($s0) +/* 05C3B4 7F027884 46062200 */ add.s $f8, $f4, $f6 +/* 05C3B8 7F027888 E60800FC */ swc1 $f8, 0xfc($s0) +/* 05C3BC 7F02788C C60400FC */ lwc1 $f4, 0xfc($s0) +/* 05C3C0 7F027890 4604503C */ c.lt.s $f10, $f4 +/* 05C3C4 7F027894 00000000 */ nop +/* 05C3C8 7F027898 450200D1 */ bc1fl .L7F027BE0 +/* 05C3CC 7F02789C 00001025 */ move $v0, $zero +/* 05C3D0 7F0278A0 C6060100 */ lwc1 $f6, 0x100($s0) +/* 05C3D4 7F0278A4 00C02025 */ move $a0, $a2 +/* 05C3D8 7F0278A8 E60600FC */ swc1 $f6, 0xfc($s0) +/* 05C3DC 7F0278AC AFA60054 */ sw $a2, 0x54($sp) +/* 05C3E0 7F0278B0 AFA5005C */ sw $a1, 0x5c($sp) +/* 05C3E4 7F0278B4 0FC1B320 */ jal getsubroty +/* 05C3E8 7F0278B8 AFA20050 */ sw $v0, 0x50($sp) +/* 05C3EC 7F0278BC 8FA20050 */ lw $v0, 0x50($sp) +/* 05C3F0 7F0278C0 8FA5005C */ lw $a1, 0x5c($sp) +/* 05C3F4 7F0278C4 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 05C3F8 7F0278C8 C4440010 */ lwc1 $f4, 0x10($v0) +/* 05C3FC 7F0278CC C4480008 */ lwc1 $f8, 8($v0) +/* 05C400 7F0278D0 C4A60008 */ lwc1 $f6, 8($a1) +/* 05C404 7F0278D4 C4AA0000 */ lwc1 $f10, ($a1) +/* 05C408 7F0278D8 46062381 */ sub.s $f14, $f4, $f6 +/* 05C40C 7F0278DC 0FC16A8C */ jal atan2f +/* 05C410 7F0278E0 460A4301 */ sub.s $f12, $f8, $f10 +/* 05C414 7F0278E4 8FA20050 */ lw $v0, 0x50($sp) +/* 05C418 7F0278E8 8FA5005C */ lw $a1, 0x5c($sp) +/* 05C41C 7F0278EC 44801000 */ mtc1 $zero, $f2 +/* 05C420 7F0278F0 C4480008 */ lwc1 $f8, 8($v0) +/* 05C424 7F0278F4 C4AA0000 */ lwc1 $f10, ($a1) +/* 05C428 7F0278F8 46000406 */ mov.s $f16, $f0 +/* 05C42C 7F0278FC 460A4101 */ sub.s $f4, $f8, $f10 +/* 05C430 7F027900 E7A4002C */ swc1 $f4, 0x2c($sp) +/* 05C434 7F027904 C446000C */ lwc1 $f6, 0xc($v0) +/* 05C438 7F027908 C4A80004 */ lwc1 $f8, 4($a1) +/* 05C43C 7F02790C 46083281 */ sub.s $f10, $f6, $f8 +/* 05C440 7F027910 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 05C444 7F027914 C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 05C448 7F027918 C4440010 */ lwc1 $f4, 0x10($v0) +/* 05C44C 7F02791C C4A60008 */ lwc1 $f6, 8($a1) +/* 05C450 7F027920 460A1032 */ c.eq.s $f2, $f10 +/* 05C454 7F027924 46062201 */ sub.s $f8, $f4, $f6 +/* 05C458 7F027928 4500000E */ bc1f .L7F027964 +/* 05C45C 7F02792C E7A80034 */ swc1 $f8, 0x34($sp) +/* 05C460 7F027930 C7AE0030 */ lwc1 $f14, 0x30($sp) +/* 05C464 7F027934 C7B20034 */ lwc1 $f18, 0x34($sp) +/* 05C468 7F027938 460E1032 */ c.eq.s $f2, $f14 +/* 05C46C 7F02793C 00000000 */ nop +/* 05C470 7F027940 45020009 */ bc1fl .L7F027968 +/* 05C474 7F027944 C7A0002C */ lwc1 $f0, 0x2c($sp) +/* 05C478 7F027948 46121032 */ c.eq.s $f2, $f18 +/* 05C47C 7F02794C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05C480 7F027950 45020005 */ bc1fl .L7F027968 +/* 05C484 7F027954 C7A0002C */ lwc1 $f0, 0x2c($sp) +/* 05C488 7F027958 44819000 */ mtc1 $at, $f18 +/* 05C48C 7F02795C 00000000 */ nop +/* 05C490 7F027960 E7B20034 */ swc1 $f18, 0x34($sp) +.L7F027964: +/* 05C494 7F027964 C7A0002C */ lwc1 $f0, 0x2c($sp) +.L7F027968: +/* 05C498 7F027968 C7AE0030 */ lwc1 $f14, 0x30($sp) +/* 05C49C 7F02796C C7B20034 */ lwc1 $f18, 0x34($sp) +/* 05C4A0 7F027970 46000102 */ mul.s $f4, $f0, $f0 +/* 05C4A4 7F027974 E7B00048 */ swc1 $f16, 0x48($sp) +/* 05C4A8 7F027978 460E7182 */ mul.s $f6, $f14, $f14 +/* 05C4AC 7F02797C 46062200 */ add.s $f8, $f4, $f6 +/* 05C4B0 7F027980 46129282 */ mul.s $f10, $f18, $f18 +/* 05C4B4 7F027984 0C007DF8 */ jal sqrtf +/* 05C4B8 7F027988 46085300 */ add.s $f12, $f10, $f8 +/* 05C4BC 7F02798C 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 05C4C0 7F027990 44812000 */ mtc1 $at, $f4 +/* 05C4C4 7F027994 C7A60060 */ lwc1 $f6, 0x60($sp) +/* 05C4C8 7F027998 C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 05C4CC 7F02799C C7B00048 */ lwc1 $f16, 0x48($sp) +/* 05C4D0 7F0279A0 46062282 */ mul.s $f10, $f4, $f6 +/* 05C4D4 7F0279A4 C7A60030 */ lwc1 $f6, 0x30($sp) +/* 05C4D8 7F0279A8 C7B2004C */ lwc1 $f18, 0x4c($sp) +/* 05C4DC 7F0279AC 4612803C */ c.lt.s $f16, $f18 +/* 05C4E0 7F0279B0 46005083 */ div.s $f2, $f10, $f0 +/* 05C4E4 7F0279B4 46128381 */ sub.s $f14, $f16, $f18 +/* 05C4E8 7F0279B8 46007306 */ mov.s $f12, $f14 +/* 05C4EC 7F0279BC 46024102 */ mul.s $f4, $f8, $f2 +/* 05C4F0 7F0279C0 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 05C4F4 7F0279C4 46023282 */ mul.s $f10, $f6, $f2 +/* 05C4F8 7F0279C8 00000000 */ nop +/* 05C4FC 7F0279CC 46024182 */ mul.s $f6, $f8, $f2 +/* 05C500 7F0279D0 E7A4002C */ swc1 $f4, 0x2c($sp) +/* 05C504 7F0279D4 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 05C508 7F0279D8 E7A60034 */ swc1 $f6, 0x34($sp) +/* 05C50C 7F0279DC E60400B0 */ swc1 $f4, 0xb0($s0) +/* 05C510 7F0279E0 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 05C514 7F0279E4 E60A00B4 */ swc1 $f10, 0xb4($s0) +/* 05C518 7F0279E8 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 05C51C 7F0279EC 45000004 */ bc1f .L7F027A00 +/* 05C520 7F0279F0 E60800B8 */ swc1 $f8, 0xb8($s0) +/* 05C524 7F0279F4 3C018005 */ lui $at, %hi(D_80051DEC) +/* 05C528 7F0279F8 C4261DEC */ lwc1 $f6, %lo(D_80051DEC)($at) +/* 05C52C 7F0279FC 46067300 */ add.s $f12, $f14, $f6 +.L7F027A00: +/* 05C530 7F027A00 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 05C534 7F027A04 44812000 */ mtc1 $at, $f4 +/* 05C538 7F027A08 3C018005 */ lui $at, %hi(D_80051DF0) +/* 05C53C 7F027A0C C4281DF0 */ lwc1 $f8, %lo(D_80051DF0)($at) +/* 05C540 7F027A10 46046282 */ mul.s $f10, $f12, $f4 +/* 05C544 7F027A14 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05C548 7F027A18 44812000 */ mtc1 $at, $f4 +/* 05C54C 7F027A1C 46085183 */ div.s $f6, $f10, $f8 +/* 05C550 7F027A20 46043280 */ add.s $f10, $f6, $f4 +/* 05C554 7F027A24 4600520D */ trunc.w.s $f8, $f10 +/* 05C558 7F027A28 44074000 */ mfc1 $a3, $f8 +/* 05C55C 7F027A2C 00000000 */ nop +/* 05C560 7F027A30 28E10008 */ slti $at, $a3, 8 +/* 05C564 7F027A34 14200002 */ bnez $at, .L7F027A40 +/* 05C568 7F027A38 00000000 */ nop +/* 05C56C 7F027A3C 00003825 */ move $a3, $zero +.L7F027A40: +/* 05C570 7F027A40 0C002914 */ jal get_random_value +/* 05C574 7F027A44 AFA70040 */ sw $a3, 0x40($sp) +/* 05C578 7F027A48 8FA70040 */ lw $a3, 0x40($sp) +/* 05C57C 7F027A4C 3C0C8003 */ lui $t4, %hi(explosion_animation_table) +/* 05C580 7F027A50 258CE960 */ addiu $t4, %lo(explosion_animation_table) # addiu $t4, $t4, -0x16a0 +/* 05C584 7F027A54 000758C0 */ sll $t3, $a3, 3 +/* 05C588 7F027A58 016C2821 */ addu $a1, $t3, $t4 +/* 05C58C 7F027A5C 8CAD0004 */ lw $t5, 4($a1) +/* 05C590 7F027A60 8CAE0000 */ lw $t6, ($a1) +/* 05C594 7F027A64 3C088003 */ lui $t0, %hi(D_8002E648) +/* 05C598 7F027A68 004D001B */ divu $zero, $v0, $t5 +/* 05C59C 7F027A6C 00003010 */ mfhi $a2 +/* 05C5A0 7F027A70 01C67821 */ addu $t7, $t6, $a2 +/* 05C5A4 7F027A74 81F80000 */ lb $t8, ($t7) +/* 05C5A8 7F027A78 2508E648 */ addiu $t0, %lo(D_8002E648) # addiu $t0, $t0, -0x19b8 +/* 05C5AC 7F027A7C 15A00002 */ bnez $t5, .L7F027A88 +/* 05C5B0 7F027A80 00000000 */ nop +/* 05C5B4 7F027A84 0007000D */ break 7 +.L7F027A88: +/* 05C5B8 7F027A88 0018C8C0 */ sll $t9, $t8, 3 +/* 05C5BC 7F027A8C 0338C823 */ subu $t9, $t9, $t8 +/* 05C5C0 7F027A90 0019C880 */ sll $t9, $t9, 2 +/* 05C5C4 7F027A94 03281821 */ addu $v1, $t9, $t0 +/* 05C5C8 7F027A98 AFA30038 */ sw $v1, 0x38($sp) +/* 05C5CC 7F027A9C 0FC0B461 */ jal sub_GAME_7F02D184 +/* 05C5D0 7F027AA0 02002025 */ move $a0, $s0 +/* 05C5D4 7F027AA4 8FA30038 */ lw $v1, 0x38($sp) +/* 05C5D8 7F027AA8 24090004 */ li $t1, 4 +/* 05C5DC 7F027AAC A2090007 */ sb $t1, 7($s0) +/* 05C5E0 7F027AB0 AE00002C */ sw $zero, 0x2c($s0) +/* 05C5E4 7F027AB4 C4660014 */ lwc1 $f6, 0x14($v1) +/* 05C5E8 7F027AB8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 05C5EC 7F027ABC 44812000 */ mtc1 $at, $f4 +/* 05C5F0 7F027AC0 44805000 */ mtc1 $zero, $f10 +/* 05C5F4 7F027AC4 E6060030 */ swc1 $f6, 0x30($s0) +/* 05C5F8 7F027AC8 A2000008 */ sb $zero, 8($s0) +/* 05C5FC 7F027ACC E6040034 */ swc1 $f4, 0x34($s0) +/* 05C600 7F027AD0 E60A0038 */ swc1 $f10, 0x38($s0) +/* 05C604 7F027AD4 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 05C608 7F027AD8 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 05C60C 7F027ADC 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 05C610 7F027AE0 44813000 */ mtc1 $at, $f6 +/* 05C614 7F027AE4 C4680008 */ lwc1 $f8, 8($v1) +/* 05C618 7F027AE8 8C6A0000 */ lw $t2, ($v1) +/* 05C61C 7F027AEC 8C67000C */ lw $a3, 0xc($v1) +/* 05C620 7F027AF0 8C660004 */ lw $a2, 4($v1) +/* 05C624 7F027AF4 8FA40054 */ lw $a0, 0x54($sp) +/* 05C628 7F027AF8 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05C62C 7F027AFC E7A80010 */ swc1 $f8, 0x10($sp) +/* 05C630 7F027B00 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05C634 7F027B04 014B2821 */ addu $a1, $t2, $t3 +/* 05C638 7F027B08 8FA30038 */ lw $v1, 0x38($sp) +/* 05C63C 7F027B0C 44802000 */ mtc1 $zero, $f4 +/* 05C640 7F027B10 C4600018 */ lwc1 $f0, 0x18($v1) +/* 05C644 7F027B14 4600203E */ c.le.s $f4, $f0 +/* 05C648 7F027B18 00000000 */ nop +/* 05C64C 7F027B1C 45020005 */ bc1fl .L7F027B34 +/* 05C650 7F027B20 8FAC0064 */ lw $t4, 0x64($sp) +/* 05C654 7F027B24 44050000 */ mfc1 $a1, $f0 +/* 05C658 7F027B28 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05C65C 7F027B2C 8FA40054 */ lw $a0, 0x54($sp) +/* 05C660 7F027B30 8FAC0064 */ lw $t4, 0x64($sp) +.L7F027B34: +/* 05C664 7F027B34 11800003 */ beqz $t4, .L7F027B44 +/* 05C668 7F027B38 00000000 */ nop +/* 05C66C 7F027B3C 0FC09C18 */ jal play_sound_for_shot_actor +/* 05C670 7F027B40 02002025 */ move $a0, $s0 +.L7F027B44: +/* 05C674 7F027B44 0FC086C8 */ jal sub_GAME_7F021B20 +/* 05C678 7F027B48 02002025 */ move $a0, $s0 +/* 05C67C 7F027B4C 0FC1A9E0 */ jal increment_num_kills_display_text_in_MP +/* 05C680 7F027B50 00000000 */ nop +/* 05C684 7F027B54 8E0D0014 */ lw $t5, 0x14($s0) +/* 05C688 7F027B58 000D72C0 */ sll $t6, $t5, 0xb +/* 05C68C 7F027B5C 05C30004 */ bgezl $t6, .L7F027B70 +/* 05C690 7F027B60 8E040160 */ lw $a0, 0x160($s0) +/* 05C694 7F027B64 0FC1A9D6 */ jal inc_cur_civilian_casualties +/* 05C698 7F027B68 00000000 */ nop +/* 05C69C 7F027B6C 8E040160 */ lw $a0, 0x160($s0) +.L7F027B70: +/* 05C6A0 7F027B70 5080000C */ beql $a0, $zero, .L7F027BA4 +/* 05C6A4 7F027B74 8E040164 */ lw $a0, 0x164($s0) +/* 05C6A8 7F027B78 8C8F0004 */ lw $t7, 4($a0) +/* 05C6AC 7F027B7C 8DF80008 */ lw $t8, 8($t7) +/* 05C6B0 7F027B80 33192000 */ andi $t9, $t8, 0x2000 +/* 05C6B4 7F027B84 57200007 */ bnezl $t9, .L7F027BA4 +/* 05C6B8 7F027B88 8E040164 */ lw $a0, 0x164($s0) +/* 05C6BC 7F027B8C 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 05C6C0 7F027B90 24050001 */ li $a1, 1 +/* 05C6C4 7F027B94 96080012 */ lhu $t0, 0x12($s0) +/* 05C6C8 7F027B98 35090001 */ ori $t1, $t0, 1 +/* 05C6CC 7F027B9C A6090012 */ sh $t1, 0x12($s0) +/* 05C6D0 7F027BA0 8E040164 */ lw $a0, 0x164($s0) +.L7F027BA4: +/* 05C6D4 7F027BA4 1080000B */ beqz $a0, .L7F027BD4 +/* 05C6D8 7F027BA8 00000000 */ nop +/* 05C6DC 7F027BAC 8C8A0004 */ lw $t2, 4($a0) +/* 05C6E0 7F027BB0 8D4B0008 */ lw $t3, 8($t2) +/* 05C6E4 7F027BB4 316C2000 */ andi $t4, $t3, 0x2000 +/* 05C6E8 7F027BB8 15800006 */ bnez $t4, .L7F027BD4 +/* 05C6EC 7F027BBC 00000000 */ nop +/* 05C6F0 7F027BC0 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 05C6F4 7F027BC4 24050001 */ li $a1, 1 +/* 05C6F8 7F027BC8 960D0012 */ lhu $t5, 0x12($s0) +/* 05C6FC 7F027BCC 35AE0001 */ ori $t6, $t5, 1 +/* 05C700 7F027BD0 A60E0012 */ sh $t6, 0x12($s0) +.L7F027BD4: +/* 05C704 7F027BD4 10000002 */ b .L7F027BE0 +/* 05C708 7F027BD8 24020001 */ li $v0, 1 +/* 05C70C 7F027BDC 00001025 */ move $v0, $zero +.L7F027BE0: +/* 05C710 7F027BE0 8FBF0024 */ lw $ra, 0x24($sp) +/* 05C714 7F027BE4 8FB00020 */ lw $s0, 0x20($sp) +/* 05C718 7F027BE8 27BD0058 */ addiu $sp, $sp, 0x58 +/* 05C71C 7F027BEC 03E00008 */ jr $ra +/* 05C720 7F027BF0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_ptrpreset_in_table_matching_tile(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_ptrpreset_in_table_matching_tile +/* 05C724 7F027BF4 3C028007 */ lui $v0, %hi(ptr_setup_path_tbl) +/* 05C728 7F027BF8 8C425D00 */ lw $v0, %lo(ptr_setup_path_tbl)($v0) +/* 05C72C 7F027BFC 00803025 */ move $a2, $a0 +/* 05C730 7F027C00 50400015 */ beql $v0, $zero, .L7F027C58 +/* 05C734 7F027C04 00001025 */ move $v0, $zero +/* 05C738 7F027C08 8C4E0000 */ lw $t6, ($v0) +/* 05C73C 7F027C0C 00401825 */ move $v1, $v0 +/* 05C740 7F027C10 3C058007 */ lui $a1, %hi(ptr_0xxxpresets) +/* 05C744 7F027C14 05C0000F */ bltz $t6, .L7F027C54 +/* 05C748 7F027C18 2407002C */ li $a3, 44 +/* 05C74C 7F027C1C 8C440000 */ lw $a0, ($v0) +/* 05C750 7F027C20 8CA55D18 */ lw $a1, %lo(ptr_0xxxpresets)($a1) +.L7F027C24: +/* 05C754 7F027C24 00870019 */ multu $a0, $a3 +/* 05C758 7F027C28 00007812 */ mflo $t7 +/* 05C75C 7F027C2C 01E51021 */ addu $v0, $t7, $a1 +/* 05C760 7F027C30 8C580028 */ lw $t8, 0x28($v0) +/* 05C764 7F027C34 54D80004 */ bnel $a2, $t8, .L7F027C48 +/* 05C768 7F027C38 8C640010 */ lw $a0, 0x10($v1) +/* 05C76C 7F027C3C 03E00008 */ jr $ra +/* 05C770 7F027C40 00601025 */ move $v0, $v1 + +/* 05C774 7F027C44 8C640010 */ lw $a0, 0x10($v1) +.L7F027C48: +/* 05C778 7F027C48 24630010 */ addiu $v1, $v1, 0x10 +/* 05C77C 7F027C4C 0481FFF5 */ bgez $a0, .L7F027C24 +/* 05C780 7F027C50 00000000 */ nop +.L7F027C54: +/* 05C784 7F027C54 00001025 */ move $v0, $zero +.L7F027C58: +/* 05C788 7F027C58 03E00008 */ jr $ra +/* 05C78C 7F027C5C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_any_path_preset_lies_on_tile(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_any_path_preset_lies_on_tile +/* 05C790 7F027C60 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05C794 7F027C64 AFBF0014 */ sw $ra, 0x14($sp) +/* 05C798 7F027C68 0FC09EFD */ jal get_ptrpreset_in_table_matching_tile +/* 05C79C 7F027C6C 00000000 */ nop +/* 05C7A0 7F027C70 8FBF0014 */ lw $ra, 0x14($sp) +/* 05C7A4 7F027C74 0002702B */ sltu $t6, $zero, $v0 +/* 05C7A8 7F027C78 01C01025 */ move $v0, $t6 +/* 05C7AC 7F027C7C 03E00008 */ jr $ra +/* 05C7B0 7F027C80 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F027C84(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F027C84 +/* 05C7B4 7F027C84 8CAE0000 */ lw $t6, ($a1) +/* 05C7B8 7F027C88 3C188007 */ lui $t8, %hi(ptr_0xxxpresets) +/* 05C7BC 7F027C8C 8F185D18 */ lw $t8, %lo(ptr_0xxxpresets)($t8) +/* 05C7C0 7F027C90 000E7880 */ sll $t7, $t6, 2 +/* 05C7C4 7F027C94 01EE7823 */ subu $t7, $t7, $t6 +/* 05C7C8 7F027C98 000F7880 */ sll $t7, $t7, 2 +/* 05C7CC 7F027C9C 01EE7823 */ subu $t7, $t7, $t6 +/* 05C7D0 7F027CA0 000F7880 */ sll $t7, $t7, 2 +/* 05C7D4 7F027CA4 01F81021 */ addu $v0, $t7, $t8 +/* 05C7D8 7F027CA8 C4440000 */ lwc1 $f4, ($v0) +/* 05C7DC 7F027CAC C4860000 */ lwc1 $f6, ($a0) +/* 05C7E0 7F027CB0 C4480008 */ lwc1 $f8, 8($v0) +/* 05C7E4 7F027CB4 C48A0008 */ lwc1 $f10, 8($a0) +/* 05C7E8 7F027CB8 46062081 */ sub.s $f2, $f4, $f6 +/* 05C7EC 7F027CBC 460A4301 */ sub.s $f12, $f8, $f10 +/* 05C7F0 7F027CC0 46021402 */ mul.s $f16, $f2, $f2 +/* 05C7F4 7F027CC4 00000000 */ nop +/* 05C7F8 7F027CC8 460C6482 */ mul.s $f18, $f12, $f12 +/* 05C7FC 7F027CCC 03E00008 */ jr $ra +/* 05C800 7F027CD0 46128000 */ add.s $f0, $f16, $f18 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F027CD4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F027CD4 +/* 05C804 7F027CD4 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 05C808 7F027CD8 AFB40030 */ sw $s4, 0x30($sp) +/* 05C80C 7F027CDC 0080A025 */ move $s4, $a0 +/* 05C810 7F027CE0 00A02025 */ move $a0, $a1 +/* 05C814 7F027CE4 AFBF0034 */ sw $ra, 0x34($sp) +/* 05C818 7F027CE8 AFB3002C */ sw $s3, 0x2c($sp) +/* 05C81C 7F027CEC 3C057F02 */ lui $a1, %hi(check_if_any_path_preset_lies_on_tile) # $a1, 0x7f02 +/* 05C820 7F027CF0 AFB20028 */ sw $s2, 0x28($sp) +/* 05C824 7F027CF4 AFB10024 */ sw $s1, 0x24($sp) +/* 05C828 7F027CF8 AFB00020 */ sw $s0, 0x20($sp) +/* 05C82C 7F027CFC F7B40018 */ sdc1 $f20, 0x18($sp) +/* 05C830 7F027D00 00009825 */ move $s3, $zero +/* 05C834 7F027D04 0FC2C9C6 */ jal sub_GAME_7F0B2718 +/* 05C838 7F027D08 24A57C60 */ addiu $a1, %lo(check_if_any_path_preset_lies_on_tile) # addiu $a1, $a1, 0x7c60 +/* 05C83C 7F027D0C 1040001E */ beqz $v0, .L7F027D88 +/* 05C840 7F027D10 00402025 */ move $a0, $v0 +/* 05C844 7F027D14 0FC09EFD */ jal get_ptrpreset_in_table_matching_tile +/* 05C848 7F027D18 00000000 */ nop +/* 05C84C 7F027D1C 1040001A */ beqz $v0, .L7F027D88 +/* 05C850 7F027D20 00409825 */ move $s3, $v0 +/* 05C854 7F027D24 02802025 */ move $a0, $s4 +/* 05C858 7F027D28 0FC09F21 */ jal sub_GAME_7F027C84 +/* 05C85C 7F027D2C 00402825 */ move $a1, $v0 +/* 05C860 7F027D30 8E710004 */ lw $s1, 4($s3) +/* 05C864 7F027D34 3C128007 */ lui $s2, %hi(ptr_setup_path_tbl) +/* 05C868 7F027D38 46000506 */ mov.s $f20, $f0 +/* 05C86C 7F027D3C 8E220000 */ lw $v0, ($s1) +/* 05C870 7F027D40 26525D00 */ addiu $s2, %lo(ptr_setup_path_tbl) # addiu $s2, $s2, 0x5d00 +/* 05C874 7F027D44 04420011 */ bltzl $v0, .L7F027D8C +/* 05C878 7F027D48 8FBF0034 */ lw $ra, 0x34($sp) +/* 05C87C 7F027D4C 8E4F0000 */ lw $t7, ($s2) +.L7F027D50: +/* 05C880 7F027D50 00027100 */ sll $t6, $v0, 4 +/* 05C884 7F027D54 02802025 */ move $a0, $s4 +/* 05C888 7F027D58 01CF8021 */ addu $s0, $t6, $t7 +/* 05C88C 7F027D5C 0FC09F21 */ jal sub_GAME_7F027C84 +/* 05C890 7F027D60 02002825 */ move $a1, $s0 +/* 05C894 7F027D64 4614003C */ c.lt.s $f0, $f20 +/* 05C898 7F027D68 00000000 */ nop +/* 05C89C 7F027D6C 45020003 */ bc1fl .L7F027D7C +/* 05C8A0 7F027D70 8E220004 */ lw $v0, 4($s1) +/* 05C8A4 7F027D74 02009825 */ move $s3, $s0 +/* 05C8A8 7F027D78 8E220004 */ lw $v0, 4($s1) +.L7F027D7C: +/* 05C8AC 7F027D7C 26310004 */ addiu $s1, $s1, 4 +/* 05C8B0 7F027D80 0443FFF3 */ bgezl $v0, .L7F027D50 +/* 05C8B4 7F027D84 8E4F0000 */ lw $t7, ($s2) +.L7F027D88: +/* 05C8B8 7F027D88 8FBF0034 */ lw $ra, 0x34($sp) +.L7F027D8C: +/* 05C8BC 7F027D8C 02601025 */ move $v0, $s3 +/* 05C8C0 7F027D90 8FB3002C */ lw $s3, 0x2c($sp) +/* 05C8C4 7F027D94 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 05C8C8 7F027D98 8FB00020 */ lw $s0, 0x20($sp) +/* 05C8CC 7F027D9C 8FB10024 */ lw $s1, 0x24($sp) +/* 05C8D0 7F027DA0 8FB20028 */ lw $s2, 0x28($sp) +/* 05C8D4 7F027DA4 8FB40030 */ lw $s4, 0x30($sp) +/* 05C8D8 7F027DA8 03E00008 */ jr $ra +/* 05C8DC 7F027DAC 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F027DB0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F027DB0 +/* 05C8E0 7F027DB0 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 05C8E4 7F027DB4 AFBF0034 */ sw $ra, 0x34($sp) +/* 05C8E8 7F027DB8 AFB20030 */ sw $s2, 0x30($sp) +/* 05C8EC 7F027DBC AFB1002C */ sw $s1, 0x2c($sp) +/* 05C8F0 7F027DC0 AFB00028 */ sw $s0, 0x28($sp) +/* 05C8F4 7F027DC4 AFA600A0 */ sw $a2, 0xa0($sp) +/* 05C8F8 7F027DC8 8C820018 */ lw $v0, 0x18($a0) +/* 05C8FC 7F027DCC 00A08025 */ move $s0, $a1 +/* 05C900 7F027DD0 C6040000 */ lwc1 $f4, ($s0) +/* 05C904 7F027DD4 8C450008 */ lw $a1, 8($v0) +/* 05C908 7F027DD8 8C440014 */ lw $a0, 0x14($v0) +/* 05C90C 7F027DDC 8C460010 */ lw $a2, 0x10($v0) +/* 05C910 7F027DE0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 05C914 7F027DE4 C6060008 */ lwc1 $f6, 8($s0) +/* 05C918 7F027DE8 27AE0048 */ addiu $t6, $sp, 0x48 +/* 05C91C 7F027DEC 240F0014 */ li $t7, 20 +/* 05C920 7F027DF0 AFAF001C */ sw $t7, 0x1c($sp) +/* 05C924 7F027DF4 AFAE0018 */ sw $t6, 0x18($sp) +/* 05C928 7F027DF8 27A700A0 */ addiu $a3, $sp, 0xa0 +/* 05C92C 7F027DFC 0FC2C343 */ jal sub_GAME_7F0B0D0C +/* 05C930 7F027E00 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05C934 7F027E04 18400011 */ blez $v0, .L7F027E4C +/* 05C938 7F027E08 00409025 */ move $s2, $v0 +/* 05C93C 7F027E0C 28410014 */ slti $at, $v0, 0x14 +/* 05C940 7F027E10 1020000E */ beqz $at, .L7F027E4C +/* 05C944 7F027E14 00000000 */ nop +/* 05C948 7F027E18 1840000E */ blez $v0, .L7F027E54 +/* 05C94C 7F027E1C 00008025 */ move $s0, $zero +/* 05C950 7F027E20 27B10048 */ addiu $s1, $sp, 0x48 +.L7F027E24: +/* 05C954 7F027E24 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 05C958 7F027E28 8E240000 */ lw $a0, ($s1) +/* 05C95C 7F027E2C 10400003 */ beqz $v0, .L7F027E3C +/* 05C960 7F027E30 26100001 */ addiu $s0, $s0, 1 +/* 05C964 7F027E34 10000008 */ b .L7F027E58 +/* 05C968 7F027E38 00001025 */ move $v0, $zero +.L7F027E3C: +/* 05C96C 7F027E3C 1612FFF9 */ bne $s0, $s2, .L7F027E24 +/* 05C970 7F027E40 26310004 */ addiu $s1, $s1, 4 +/* 05C974 7F027E44 10000004 */ b .L7F027E58 +/* 05C978 7F027E48 24020001 */ li $v0, 1 +.L7F027E4C: +/* 05C97C 7F027E4C 10000002 */ b .L7F027E58 +/* 05C980 7F027E50 00001025 */ move $v0, $zero +.L7F027E54: +/* 05C984 7F027E54 24020001 */ li $v0, 1 +.L7F027E58: +/* 05C988 7F027E58 8FBF0034 */ lw $ra, 0x34($sp) +/* 05C98C 7F027E5C 8FB00028 */ lw $s0, 0x28($sp) +/* 05C990 7F027E60 8FB1002C */ lw $s1, 0x2c($sp) +/* 05C994 7F027E64 8FB20030 */ lw $s2, 0x30($sp) +/* 05C998 7F027E68 03E00008 */ jr $ra +/* 05C99C 7F027E6C 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F027E70(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F027E70 +/* 05C9A0 7F027E70 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05C9A4 7F027E74 AFBF0014 */ sw $ra, 0x14($sp) +/* 05C9A8 7F027E78 0FC09F6C */ jal sub_GAME_7F027DB0 +/* 05C9AC 7F027E7C 8CA60028 */ lw $a2, 0x28($a1) +/* 05C9B0 7F027E80 8FBF0014 */ lw $ra, 0x14($sp) +/* 05C9B4 7F027E84 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05C9B8 7F027E88 03E00008 */ jr $ra +/* 05C9BC 7F027E8C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F027E90(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F027E90 +/* 05C9C0 7F027E90 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05C9C4 7F027E94 AFBF0014 */ sw $ra, 0x14($sp) +/* 05C9C8 7F027E98 AFA40028 */ sw $a0, 0x28($sp) +/* 05C9CC 7F027E9C AFA5002C */ sw $a1, 0x2c($sp) +/* 05C9D0 7F027EA0 8C820018 */ lw $v0, 0x18($a0) +/* 05C9D4 7F027EA4 C4C40000 */ lwc1 $f4, ($a2) +/* 05C9D8 7F027EA8 C4C80008 */ lwc1 $f8, 8($a2) +/* 05C9DC 7F027EAC C4460008 */ lwc1 $f6, 8($v0) +/* 05C9E0 7F027EB0 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 05C9E4 7F027EB4 46062301 */ sub.s $f12, $f4, $f6 +/* 05C9E8 7F027EB8 460A4381 */ sub.s $f14, $f8, $f10 +/* 05C9EC 7F027EBC E7AC0020 */ swc1 $f12, 0x20($sp) +/* 05C9F0 7F027EC0 0FC16A8C */ jal atan2f +/* 05C9F4 7F027EC4 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 05C9F8 7F027EC8 C7A20020 */ lwc1 $f2, 0x20($sp) +/* 05C9FC 7F027ECC C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 05CA00 7F027ED0 8FA2002C */ lw $v0, 0x2c($sp) +/* 05CA04 7F027ED4 46021482 */ mul.s $f18, $f2, $f2 +/* 05CA08 7F027ED8 44808000 */ mtc1 $zero, $f16 +/* 05CA0C 7F027EDC E7A00018 */ swc1 $f0, 0x18($sp) +/* 05CA10 7F027EE0 460E7102 */ mul.s $f4, $f14, $f14 +/* 05CA14 7F027EE4 240F0006 */ li $t7, 6 +/* 05CA18 7F027EE8 A04F0000 */ sb $t7, ($v0) +/* 05CA1C 7F027EEC E4500038 */ swc1 $f16, 0x38($v0) +/* 05CA20 7F027EF0 0C007DF8 */ jal sqrtf +/* 05CA24 7F027EF4 46049300 */ add.s $f12, $f18, $f4 +/* 05CA28 7F027EF8 8FB8002C */ lw $t8, 0x2c($sp) +/* 05CA2C 7F027EFC E700003C */ swc1 $f0, 0x3c($t8) +/* 05CA30 7F027F00 8FB90028 */ lw $t9, 0x28($sp) +/* 05CA34 7F027F04 8FA50018 */ lw $a1, 0x18($sp) +/* 05CA38 7F027F08 0FC1B34F */ jal setsubroty +/* 05CA3C 7F027F0C 8F24001C */ lw $a0, 0x1c($t9) +/* 05CA40 7F027F10 8FBF0014 */ lw $ra, 0x14($sp) +/* 05CA44 7F027F14 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05CA48 7F027F18 03E00008 */ jr $ra +/* 05CA4C 7F027F1C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F027F20(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F027F20 +/* 05CA50 7F027F20 908E0058 */ lbu $t6, 0x58($a0) +/* 05CA54 7F027F24 000E7880 */ sll $t7, $t6, 2 +/* 05CA58 7F027F28 008FC021 */ addu $t8, $a0, $t7 +/* 05CA5C 7F027F2C 8F020040 */ lw $v0, 0x40($t8) +/* 05CA60 7F027F30 50400014 */ beql $v0, $zero, .L7F027F84 +/* 05CA64 7F027F34 C48A002C */ lwc1 $f10, 0x2c($a0) +/* 05CA68 7F027F38 8C590000 */ lw $t9, ($v0) +/* 05CA6C 7F027F3C 3C098007 */ lui $t1, %hi(ptr_0xxxpresets) +/* 05CA70 7F027F40 8D295D18 */ lw $t1, %lo(ptr_0xxxpresets)($t1) +/* 05CA74 7F027F44 00194080 */ sll $t0, $t9, 2 +/* 05CA78 7F027F48 01194023 */ subu $t0, $t0, $t9 +/* 05CA7C 7F027F4C 00084080 */ sll $t0, $t0, 2 +/* 05CA80 7F027F50 01194023 */ subu $t0, $t0, $t9 +/* 05CA84 7F027F54 00084080 */ sll $t0, $t0, 2 +/* 05CA88 7F027F58 01091821 */ addu $v1, $t0, $t1 +/* 05CA8C 7F027F5C C4640000 */ lwc1 $f4, ($v1) +/* 05CA90 7F027F60 E4A40000 */ swc1 $f4, ($a1) +/* 05CA94 7F027F64 C4660004 */ lwc1 $f6, 4($v1) +/* 05CA98 7F027F68 E4A60004 */ swc1 $f6, 4($a1) +/* 05CA9C 7F027F6C C4680008 */ lwc1 $f8, 8($v1) +/* 05CAA0 7F027F70 E4A80008 */ swc1 $f8, 8($a1) +/* 05CAA4 7F027F74 8C6A0028 */ lw $t2, 0x28($v1) +/* 05CAA8 7F027F78 03E00008 */ jr $ra +/* 05CAAC 7F027F7C ACCA0000 */ sw $t2, ($a2) + +/* 05CAB0 7F027F80 C48A002C */ lwc1 $f10, 0x2c($a0) +.L7F027F84: +/* 05CAB4 7F027F84 E4AA0000 */ swc1 $f10, ($a1) +/* 05CAB8 7F027F88 C4900030 */ lwc1 $f16, 0x30($a0) +/* 05CABC 7F027F8C E4B00004 */ swc1 $f16, 4($a1) +/* 05CAC0 7F027F90 C4920034 */ lwc1 $f18, 0x34($a0) +/* 05CAC4 7F027F94 E4B20008 */ swc1 $f18, 8($a1) +/* 05CAC8 7F027F98 8C8B0038 */ lw $t3, 0x38($a0) +/* 05CACC 7F027F9C ACCB0000 */ sw $t3, ($a2) +/* 05CAD0 7F027FA0 03E00008 */ jr $ra +/* 05CAD4 7F027FA4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F027FA8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DF4 +.word 0x411fffff /*9.999999*/ +.text +glabel sub_GAME_7F027FA8 +/* 05CAD8 7F027FA8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 05CADC 7F027FAC AFB10020 */ sw $s1, 0x20($sp) +/* 05CAE0 7F027FB0 00808825 */ move $s1, $a0 +/* 05CAE4 7F027FB4 AFBF0024 */ sw $ra, 0x24($sp) +/* 05CAE8 7F027FB8 AFB0001C */ sw $s0, 0x1c($sp) +/* 05CAEC 7F027FBC F7B40010 */ sdc1 $f20, 0x10($sp) +/* 05CAF0 7F027FC0 3C018003 */ lui $at, %hi(D_80030984) +/* 05CAF4 7F027FC4 C4340984 */ lwc1 $f20, %lo(D_80030984)($at) +/* 05CAF8 7F027FC8 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 05CAFC 7F027FCC 8C84001C */ lw $a0, 0x1c($a0) +/* 05CB00 7F027FD0 3C108007 */ lui $s0, %hi(ptr_animation_table) +/* 05CB04 7F027FD4 26109538 */ addiu $s0, %lo(ptr_animation_table) # addiu $s0, $s0, -0x6ac8 +/* 05CB08 7F027FD8 8E0E0000 */ lw $t6, ($s0) +/* 05CB0C 7F027FDC 3C0F0000 */ lui $t7, %hi(0x00004070) # $t7, 0 +/* 05CB10 7F027FE0 25EF4070 */ addiu $t7, %lo(0x00004070) # addiu $t7, $t7, 0x4070 +/* 05CB14 7F027FE4 01CFC021 */ addu $t8, $t6, $t7 +/* 05CB18 7F027FE8 14580003 */ bne $v0, $t8, .L7F027FF8 +/* 05CB1C 7F027FEC 3C018003 */ lui $at, %hi(D_8003098C) +/* 05CB20 7F027FF0 10000047 */ b .L7F028110 +/* 05CB24 7F027FF4 C434098C */ lwc1 $f20, %lo(D_8003098C)($at) +.L7F027FF8: +/* 05CB28 7F027FF8 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 05CB2C 7F027FFC 8E24001C */ lw $a0, 0x1c($s1) +/* 05CB30 7F028000 8E190000 */ lw $t9, ($s0) +/* 05CB34 7F028004 3C080000 */ lui $t0, %hi(0x000040D4) # $t0, 0 +/* 05CB38 7F028008 250840D4 */ addiu $t0, %lo(0x000040D4) # addiu $t0, $t0, 0x40d4 +/* 05CB3C 7F02800C 03284821 */ addu $t1, $t9, $t0 +/* 05CB40 7F028010 14490003 */ bne $v0, $t1, .L7F028020 +/* 05CB44 7F028014 3C018003 */ lui $at, %hi(D_80030988) +/* 05CB48 7F028018 1000003D */ b .L7F028110 +/* 05CB4C 7F02801C C4340988 */ lwc1 $f20, %lo(D_80030988)($at) +.L7F028020: +/* 05CB50 7F028020 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 05CB54 7F028024 8E24001C */ lw $a0, 0x1c($s1) +/* 05CB58 7F028028 8E0A0000 */ lw $t2, ($s0) +/* 05CB5C 7F02802C 3C030000 */ lui $v1, %hi(0x000077D4) # $v1, 0 +/* 05CB60 7F028030 246377D4 */ addiu $v1, %lo(0x000077D4) # addiu $v1, $v1, 0x77d4 +/* 05CB64 7F028034 006A5821 */ addu $t3, $v1, $t2 +/* 05CB68 7F028038 144B0003 */ bne $v0, $t3, .L7F028048 +/* 05CB6C 7F02803C 3C018003 */ lui $at, %hi(D_80030998) +/* 05CB70 7F028040 10000033 */ b .L7F028110 +/* 05CB74 7F028044 C4340998 */ lwc1 $f20, %lo(D_80030998)($at) +.L7F028048: +/* 05CB78 7F028048 8E24001C */ lw $a0, 0x1c($s1) +/* 05CB7C 7F02804C 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 05CB80 7F028050 AFA30028 */ sw $v1, 0x28($sp) +/* 05CB84 7F028054 8E0C0000 */ lw $t4, ($s0) +/* 05CB88 7F028058 3C0D0000 */ lui $t5, %hi(0x0000777C) # $t5, 0 +/* 05CB8C 7F02805C 25AD777C */ addiu $t5, %lo(0x0000777C) # addiu $t5, $t5, 0x777c +/* 05CB90 7F028060 018D7021 */ addu $t6, $t4, $t5 +/* 05CB94 7F028064 144E0003 */ bne $v0, $t6, .L7F028074 +/* 05CB98 7F028068 3C018003 */ lui $at, %hi(D_80030994) +/* 05CB9C 7F02806C 10000028 */ b .L7F028110 +/* 05CBA0 7F028070 C4340994 */ lwc1 $f20, %lo(D_80030994)($at) +.L7F028074: +/* 05CBA4 7F028074 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 05CBA8 7F028078 8E24001C */ lw $a0, 0x1c($s1) +/* 05CBAC 7F02807C 8E0F0000 */ lw $t7, ($s0) +/* 05CBB0 7F028080 3C180001 */ lui $t8, %hi(0x00008204) # $t8, 1 +/* 05CBB4 7F028084 27188204 */ addiu $t8, %lo(0x00008204) # addiu $t8, $t8, -0x7dfc +/* 05CBB8 7F028088 01F8C821 */ addu $t9, $t7, $t8 +/* 05CBBC 7F02808C 14590003 */ bne $v0, $t9, .L7F02809C +/* 05CBC0 7F028090 3C018003 */ lui $at, %hi(D_80030990) +/* 05CBC4 7F028094 1000001E */ b .L7F028110 +/* 05CBC8 7F028098 C4340990 */ lwc1 $f20, %lo(D_80030990)($at) +.L7F02809C: +/* 05CBCC 7F02809C 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 05CBD0 7F0280A0 8E24001C */ lw $a0, 0x1c($s1) +/* 05CBD4 7F0280A4 8FA80028 */ lw $t0, 0x28($sp) +/* 05CBD8 7F0280A8 8E090000 */ lw $t1, ($s0) +/* 05CBDC 7F0280AC 3C018003 */ lui $at, %hi(D_800309A4) +/* 05CBE0 7F0280B0 01095021 */ addu $t2, $t0, $t1 +/* 05CBE4 7F0280B4 144A0003 */ bne $v0, $t2, .L7F0280C4 +/* 05CBE8 7F0280B8 00000000 */ nop +/* 05CBEC 7F0280BC 10000014 */ b .L7F028110 +/* 05CBF0 7F0280C0 C43409A4 */ lwc1 $f20, %lo(D_800309A4)($at) +.L7F0280C4: +/* 05CBF4 7F0280C4 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 05CBF8 7F0280C8 8E24001C */ lw $a0, 0x1c($s1) +/* 05CBFC 7F0280CC 8E0B0000 */ lw $t3, ($s0) +/* 05CC00 7F0280D0 3C0C0001 */ lui $t4, %hi(0x00008520) # $t4, 1 +/* 05CC04 7F0280D4 258C8520 */ addiu $t4, %lo(0x00008520) # addiu $t4, $t4, -0x7ae0 +/* 05CC08 7F0280D8 016C6821 */ addu $t5, $t3, $t4 +/* 05CC0C 7F0280DC 144D0003 */ bne $v0, $t5, .L7F0280EC +/* 05CC10 7F0280E0 3C018003 */ lui $at, %hi(D_800309A0) +/* 05CC14 7F0280E4 1000000A */ b .L7F028110 +/* 05CC18 7F0280E8 C43409A0 */ lwc1 $f20, %lo(D_800309A0)($at) +.L7F0280EC: +/* 05CC1C 7F0280EC 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 05CC20 7F0280F0 8E24001C */ lw $a0, 0x1c($s1) +/* 05CC24 7F0280F4 8E0E0000 */ lw $t6, ($s0) +/* 05CC28 7F0280F8 3C0F0001 */ lui $t7, %hi(0x000084C4) # $t7, 1 +/* 05CC2C 7F0280FC 25EF84C4 */ addiu $t7, %lo(0x000084C4) # addiu $t7, $t7, -0x7b3c +/* 05CC30 7F028100 01CFC021 */ addu $t8, $t6, $t7 +/* 05CC34 7F028104 14580002 */ bne $v0, $t8, .L7F028110 +/* 05CC38 7F028108 3C018003 */ lui $at, %hi(D_8003099C) +/* 05CC3C 7F02810C C434099C */ lwc1 $f20, %lo(D_8003099C)($at) +.L7F028110: +/* 05CC40 7F028110 8E39001C */ lw $t9, 0x1c($s1) +/* 05CC44 7F028114 3C018005 */ lui $at, %hi(D_80051DF4) +/* 05CC48 7F028118 C4281DF4 */ lwc1 $f8, %lo(D_80051DF4)($at) +/* 05CC4C 7F02811C C7240014 */ lwc1 $f4, 0x14($t9) +/* 05CC50 7F028120 8FBF0024 */ lw $ra, 0x24($sp) +/* 05CC54 7F028124 8FB10020 */ lw $s1, 0x20($sp) +/* 05CC58 7F028128 46142182 */ mul.s $f6, $f4, $f20 +/* 05CC5C 7F02812C D7B40010 */ ldc1 $f20, 0x10($sp) +/* 05CC60 7F028130 8FB0001C */ lw $s0, 0x1c($sp) +/* 05CC64 7F028134 27BD0030 */ addiu $sp, $sp, 0x30 +/* 05CC68 7F028138 46083002 */ mul.s $f0, $f6, $f8 +/* 05CC6C 7F02813C 03E00008 */ jr $ra +/* 05CC70 7F028140 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F028144(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F028144 +/* 05CC74 7F028144 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 05CC78 7F028148 AFBF0014 */ sw $ra, 0x14($sp) +/* 05CC7C 7F02814C AFA40038 */ sw $a0, 0x38($sp) +/* 05CC80 7F028150 0FC1BD86 */ jal sub_GAME_7F06F618 +/* 05CC84 7F028154 8C84001C */ lw $a0, 0x1c($a0) +/* 05CC88 7F028158 E7A00018 */ swc1 $f0, 0x18($sp) +/* 05CC8C 7F02815C 8FA40038 */ lw $a0, 0x38($sp) +/* 05CC90 7F028160 27A50020 */ addiu $a1, $sp, 0x20 +/* 05CC94 7F028164 0FC09FC8 */ jal sub_GAME_7F027F20 +/* 05CC98 7F028168 27A6001C */ addiu $a2, $sp, 0x1c +/* 05CC9C 7F02816C 8FA40038 */ lw $a0, 0x38($sp) +/* 05CCA0 7F028170 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 05CCA4 7F028174 44800000 */ mtc1 $zero, $f0 +/* 05CCA8 7F028178 8C820018 */ lw $v0, 0x18($a0) +/* 05CCAC 7F02817C C7A80028 */ lwc1 $f8, 0x28($sp) +/* 05CCB0 7F028180 C4460008 */ lwc1 $f6, 8($v0) +/* 05CCB4 7F028184 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 05CCB8 7F028188 46062081 */ sub.s $f2, $f4, $f6 +/* 05CCBC 7F02818C 460A4301 */ sub.s $f12, $f8, $f10 +/* 05CCC0 7F028190 4600103C */ c.lt.s $f2, $f0 +/* 05CCC4 7F028194 00000000 */ nop +/* 05CCC8 7F028198 45020003 */ bc1fl .L7F0281A8 +/* 05CCCC 7F02819C 4600603C */ c.lt.s $f12, $f0 +/* 05CCD0 7F0281A0 46001087 */ neg.s $f2, $f2 +/* 05CCD4 7F0281A4 4600603C */ c.lt.s $f12, $f0 +.L7F0281A8: +/* 05CCD8 7F0281A8 00000000 */ nop +/* 05CCDC 7F0281AC 45020003 */ bc1fl .L7F0281BC +/* 05CCE0 7F0281B0 E7A20034 */ swc1 $f2, 0x34($sp) +/* 05CCE4 7F0281B4 46006307 */ neg.s $f12, $f12 +/* 05CCE8 7F0281B8 E7A20034 */ swc1 $f2, 0x34($sp) +.L7F0281BC: +/* 05CCEC 7F0281BC 0FC09FEA */ jal sub_GAME_7F027FA8 +/* 05CCF0 7F0281C0 E7AC0030 */ swc1 $f12, 0x30($sp) +/* 05CCF4 7F0281C4 C7B20018 */ lwc1 $f18, 0x18($sp) +/* 05CCF8 7F0281C8 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 05CCFC 7F0281CC C7AC0030 */ lwc1 $f12, 0x30($sp) +/* 05CD00 7F0281D0 46120102 */ mul.s $f4, $f0, $f18 +/* 05CD04 7F0281D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 05CD08 7F0281D8 460C1400 */ add.s $f16, $f2, $f12 +/* 05CD0C 7F0281DC 27BD0038 */ addiu $sp, $sp, 0x38 +/* 05CD10 7F0281E0 46048183 */ div.s $f6, $f16, $f4 +/* 05CD14 7F0281E4 4600320D */ trunc.w.s $f8, $f6 +/* 05CD18 7F0281E8 44024000 */ mfc1 $v0, $f8 +/* 05CD1C 7F0281EC 03E00008 */ jr $ra +/* 05CD20 7F0281F0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0281F4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0281F4 +/* 05CD24 7F0281F4 03E00008 */ jr $ra +/* 05CD28 7F0281F8 A480005A */ sh $zero, 0x5a($a0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0281FC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0281FC +/* 05CD2C 7F0281FC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05CD30 7F028200 AFBF0014 */ sw $ra, 0x14($sp) +/* 05CD34 7F028204 808E005C */ lb $t6, 0x5c($a0) +/* 05CD38 7F028208 24010006 */ li $at, 6 +/* 05CD3C 7F02820C 51C1001C */ beql $t6, $at, .L7F028280 +/* 05CD40 7F028210 8FBF0014 */ lw $ra, 0x14($sp) +/* 05CD44 7F028214 9482005A */ lhu $v0, 0x5a($a0) +/* 05CD48 7F028218 3C038005 */ lui $v1, %hi(clock_timer+2) +/* 05CD4C 7F02821C 1440000C */ bnez $v0, .L7F028250 +/* 05CD50 7F028220 00000000 */ nop +/* 05CD54 7F028224 0FC0A051 */ jal sub_GAME_7F028144 +/* 05CD58 7F028228 AFA40018 */ sw $a0, 0x18($sp) +/* 05CD5C 7F02822C 00021840 */ sll $v1, $v0, 1 +/* 05CD60 7F028230 2465012C */ addiu $a1, $v1, 0x12c +/* 05CD64 7F028234 3C010001 */ lui $at, 1 +/* 05CD68 7F028238 00A1082A */ slt $at, $a1, $at +/* 05CD6C 7F02823C 14200002 */ bnez $at, .L7F028248 +/* 05CD70 7F028240 8FA40018 */ lw $a0, 0x18($sp) +/* 05CD74 7F028244 3405FFFF */ li $a1, 65535 +.L7F028248: +/* 05CD78 7F028248 1000000C */ b .L7F02827C +/* 05CD7C 7F02824C A485005A */ sh $a1, 0x5a($a0) +.L7F028250: +/* 05CD80 7F028250 94638376 */ lhu $v1, %lo(clock_timer+2)($v1) +/* 05CD84 7F028254 2485002C */ addiu $a1, $a0, 0x2c +/* 05CD88 7F028258 0062082A */ slt $at, $v1, $v0 +/* 05CD8C 7F02825C 14200006 */ bnez $at, .L7F028278 +/* 05CD90 7F028260 00437823 */ subu $t7, $v0, $v1 +/* 05CD94 7F028264 8C860038 */ lw $a2, 0x38($a0) +/* 05CD98 7F028268 0FC0A377 */ jal plot_course_for_actor +/* 05CD9C 7F02826C 90870059 */ lbu $a3, 0x59($a0) +/* 05CDA0 7F028270 10000003 */ b .L7F028280 +/* 05CDA4 7F028274 8FBF0014 */ lw $ra, 0x14($sp) +.L7F028278: +/* 05CDA8 7F028278 A48F005A */ sh $t7, 0x5a($a0) +.L7F02827C: +/* 05CDAC 7F02827C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F028280: +/* 05CDB0 7F028280 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05CDB4 7F028284 03E00008 */ jr $ra +/* 05CDB8 7F028288 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02828C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02828C +/* 05CDBC 7F02828C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05CDC0 7F028290 AFBF0014 */ sw $ra, 0x14($sp) +/* 05CDC4 7F028294 27A5001C */ addiu $a1, $sp, 0x1c +/* 05CDC8 7F028298 27A60018 */ addiu $a2, $sp, 0x18 +/* 05CDCC 7F02829C 0FC09FC8 */ jal sub_GAME_7F027F20 +/* 05CDD0 7F0282A0 AFA40028 */ sw $a0, 0x28($sp) +/* 05CDD4 7F0282A4 8FA40028 */ lw $a0, 0x28($sp) +/* 05CDD8 7F0282A8 A080005C */ sb $zero, 0x5c($a0) +/* 05CDDC 7F0282AC A080005D */ sb $zero, 0x5d($a0) +/* 05CDE0 7F0282B0 A080005E */ sb $zero, 0x5e($a0) +/* 05CDE4 7F0282B4 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 05CDE8 7F0282B8 E4840060 */ swc1 $f4, 0x60($a0) +/* 05CDEC 7F0282BC C7A60020 */ lwc1 $f6, 0x20($sp) +/* 05CDF0 7F0282C0 E4860064 */ swc1 $f6, 0x64($a0) +/* 05CDF4 7F0282C4 C7A80024 */ lwc1 $f8, 0x24($sp) +/* 05CDF8 7F0282C8 0FC0A07D */ jal sub_GAME_7F0281F4 +/* 05CDFC 7F0282CC E4880068 */ swc1 $f8, 0x68($a0) +/* 05CE00 7F0282D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 05CE04 7F0282D4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05CE08 7F0282D8 03E00008 */ jr $ra +/* 05CE0C 7F0282DC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0282E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0282E0 +/* 05CE10 7F0282E0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 05CE14 7F0282E4 AFBF001C */ sw $ra, 0x1c($sp) +/* 05CE18 7F0282E8 AFB00018 */ sw $s0, 0x18($sp) +/* 05CE1C 7F0282EC 90820058 */ lbu $v0, 0x58($a0) +/* 05CE20 7F0282F0 00808025 */ move $s0, $a0 +/* 05CE24 7F0282F4 24190001 */ li $t9, 1 +/* 05CE28 7F0282F8 28410003 */ slti $at, $v0, 3 +/* 05CE2C 7F0282FC 10200004 */ beqz $at, .L7F028310 +/* 05CE30 7F028300 00027880 */ sll $t7, $v0, 2 +/* 05CE34 7F028304 244E0001 */ addiu $t6, $v0, 1 +/* 05CE38 7F028308 10000008 */ b .L7F02832C +/* 05CE3C 7F02830C A08E0058 */ sb $t6, 0x58($a0) +.L7F028310: +/* 05CE40 7F028310 020FC021 */ addu $t8, $s0, $t7 +/* 05CE44 7F028314 8F040040 */ lw $a0, 0x40($t8) +/* 05CE48 7F028318 A2190058 */ sb $t9, 0x58($s0) +/* 05CE4C 7F02831C 8E05003C */ lw $a1, 0x3c($s0) +/* 05CE50 7F028320 26060040 */ addiu $a2, $s0, 0x40 +/* 05CE54 7F028324 0FC23D3C */ jal sub_GAME_7F08F4F0 +/* 05CE58 7F028328 24070006 */ li $a3, 6 +.L7F02832C: +/* 05CE5C 7F02832C 0FC0A0A3 */ jal sub_GAME_7F02828C +/* 05CE60 7F028330 02002025 */ move $a0, $s0 +/* 05CE64 7F028334 8FBF001C */ lw $ra, 0x1c($sp) +/* 05CE68 7F028338 8FB00018 */ lw $s0, 0x18($sp) +/* 05CE6C 7F02833C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 05CE70 7F028340 03E00008 */ jr $ra +/* 05CE74 7F028344 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F028348(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F028348 +/* 05CE78 7F028348 8C830030 */ lw $v1, 0x30($a0) +/* 05CE7C 7F02834C 04C10004 */ bgez $a2, .L7F028360 +/* 05CE80 7F028350 8CA70000 */ lw $a3, ($a1) +/* 05CE84 7F028354 2CEE0001 */ sltiu $t6, $a3, 1 +/* 05CE88 7F028358 01C03825 */ move $a3, $t6 +/* 05CE8C 7F02835C 00063023 */ negu $a2, $a2 +.L7F028360: +/* 05CE90 7F028360 58C00024 */ blezl $a2, .L7F0283F4 +/* 05CE94 7F028364 ACA70000 */ sw $a3, ($a1) +.L7F028368: +/* 05CE98 7F028368 10E00012 */ beqz $a3, .L7F0283B4 +/* 05CE9C 7F02836C 24C6FFFF */ addiu $a2, $a2, -1 +/* 05CEA0 7F028370 8C82002C */ lw $v0, 0x2c($a0) +/* 05CEA4 7F028374 24630001 */ addiu $v1, $v1, 1 +/* 05CEA8 7F028378 0003C080 */ sll $t8, $v1, 2 +/* 05CEAC 7F02837C 8C4F0000 */ lw $t7, ($v0) +/* 05CEB0 7F028380 01F8C821 */ addu $t9, $t7, $t8 +/* 05CEB4 7F028384 8F280000 */ lw $t0, ($t9) +/* 05CEB8 7F028388 05010017 */ bgez $t0, .L7F0283E8 +/* 05CEBC 7F02838C 00000000 */ nop +/* 05CEC0 7F028390 90490005 */ lbu $t1, 5($v0) +/* 05CEC4 7F028394 2463FFFE */ addiu $v1, $v1, -2 +/* 05CEC8 7F028398 312A0001 */ andi $t2, $t1, 1 +/* 05CECC 7F02839C 11400003 */ beqz $t2, .L7F0283AC +/* 05CED0 7F0283A0 00000000 */ nop +/* 05CED4 7F0283A4 10000010 */ b .L7F0283E8 +/* 05CED8 7F0283A8 00001825 */ move $v1, $zero +.L7F0283AC: +/* 05CEDC 7F0283AC 1000000E */ b .L7F0283E8 +/* 05CEE0 7F0283B0 00003825 */ move $a3, $zero +.L7F0283B4: +/* 05CEE4 7F0283B4 2463FFFF */ addiu $v1, $v1, -1 +/* 05CEE8 7F0283B8 0461000B */ bgez $v1, .L7F0283E8 +/* 05CEEC 7F0283BC 00000000 */ nop +/* 05CEF0 7F0283C0 8C82002C */ lw $v0, 0x2c($a0) +/* 05CEF4 7F0283C4 24030001 */ li $v1, 1 +/* 05CEF8 7F0283C8 904B0005 */ lbu $t3, 5($v0) +/* 05CEFC 7F0283CC 316C0001 */ andi $t4, $t3, 1 +/* 05CF00 7F0283D0 51800005 */ beql $t4, $zero, .L7F0283E8 +/* 05CF04 7F0283D4 24070001 */ li $a3, 1 +/* 05CF08 7F0283D8 94430006 */ lhu $v1, 6($v0) +/* 05CF0C 7F0283DC 10000002 */ b .L7F0283E8 +/* 05CF10 7F0283E0 2463FFFF */ addiu $v1, $v1, -1 +/* 05CF14 7F0283E4 24070001 */ li $a3, 1 +.L7F0283E8: +/* 05CF18 7F0283E8 1CC0FFDF */ bgtz $a2, .L7F028368 +/* 05CF1C 7F0283EC 00000000 */ nop +/* 05CF20 7F0283F0 ACA70000 */ sw $a3, ($a1) +.L7F0283F4: +/* 05CF24 7F0283F4 03E00008 */ jr $ra +/* 05CF28 7F0283F8 00601025 */ move $v0, $v1 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0283FC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0283FC +/* 05CF2C 7F0283FC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05CF30 7F028400 AFBF0014 */ sw $ra, 0x14($sp) +/* 05CF34 7F028404 8C8E0034 */ lw $t6, 0x34($a0) +/* 05CF38 7F028408 00A03025 */ move $a2, $a1 +/* 05CF3C 7F02840C 27A50020 */ addiu $a1, $sp, 0x20 +/* 05CF40 7F028410 AFA40028 */ sw $a0, 0x28($sp) +/* 05CF44 7F028414 0FC0A0D2 */ jal sub_GAME_7F028348 +/* 05CF48 7F028418 AFAE0020 */ sw $t6, 0x20($sp) +/* 05CF4C 7F02841C 8FA70028 */ lw $a3, 0x28($sp) +/* 05CF50 7F028420 0002C880 */ sll $t9, $v0, 2 +/* 05CF54 7F028424 3C058007 */ lui $a1, %hi(ptr_setup_path_tbl) +/* 05CF58 7F028428 8CEF002C */ lw $t7, 0x2c($a3) +/* 05CF5C 7F02842C 24A55D00 */ addiu $a1, %lo(ptr_setup_path_tbl) # addiu $a1, $a1, 0x5d00 +/* 05CF60 7F028430 8CAA0000 */ lw $t2, ($a1) +/* 05CF64 7F028434 8DF80000 */ lw $t8, ($t7) +/* 05CF68 7F028438 8FBF0014 */ lw $ra, 0x14($sp) +/* 05CF6C 7F02843C 8CAD0018 */ lw $t5, 0x18($a1) +/* 05CF70 7F028440 03191821 */ addu $v1, $t8, $t9 +/* 05CF74 7F028444 8C680000 */ lw $t0, ($v1) +/* 05CF78 7F028448 00084900 */ sll $t1, $t0, 4 +/* 05CF7C 7F02844C 012A2021 */ addu $a0, $t1, $t2 +/* 05CF80 7F028450 8C8B0000 */ lw $t3, ($a0) +/* 05CF84 7F028454 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05CF88 7F028458 000B6080 */ sll $t4, $t3, 2 +/* 05CF8C 7F02845C 018B6023 */ subu $t4, $t4, $t3 +/* 05CF90 7F028460 000C6080 */ sll $t4, $t4, 2 +/* 05CF94 7F028464 018B6023 */ subu $t4, $t4, $t3 +/* 05CF98 7F028468 000C6080 */ sll $t4, $t4, 2 +/* 05CF9C 7F02846C 03E00008 */ jr $ra +/* 05CFA0 7F028470 018D1021 */ addu $v0, $t4, $t5 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F028474(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F028474 +/* 05CFA4 7F028474 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05CFA8 7F028478 AFBF0014 */ sw $ra, 0x14($sp) +/* 05CFAC 7F02847C 0FC0A0FF */ jal sub_GAME_7F0283FC +/* 05CFB0 7F028480 00002825 */ move $a1, $zero +/* 05CFB4 7F028484 8FBF0014 */ lw $ra, 0x14($sp) +/* 05CFB8 7F028488 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05CFBC 7F02848C 03E00008 */ jr $ra +/* 05CFC0 7F028490 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F028494(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F028494 +/* 05CFC4 7F028494 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05CFC8 7F028498 AFBF0014 */ sw $ra, 0x14($sp) +/* 05CFCC 7F02849C 0FC0A11D */ jal sub_GAME_7F028474 +/* 05CFD0 7F0284A0 AFA40018 */ sw $a0, 0x18($sp) +/* 05CFD4 7F0284A4 8FA40018 */ lw $a0, 0x18($sp) +/* 05CFD8 7F0284A8 A0800038 */ sb $zero, 0x38($a0) +/* 05CFDC 7F0284AC A0800039 */ sb $zero, 0x39($a0) +/* 05CFE0 7F0284B0 A080003A */ sb $zero, 0x3a($a0) +/* 05CFE4 7F0284B4 C4440000 */ lwc1 $f4, ($v0) +/* 05CFE8 7F0284B8 E484003C */ swc1 $f4, 0x3c($a0) +/* 05CFEC 7F0284BC C4460004 */ lwc1 $f6, 4($v0) +/* 05CFF0 7F0284C0 E4860040 */ swc1 $f6, 0x40($a0) +/* 05CFF4 7F0284C4 C4480008 */ lwc1 $f8, 8($v0) +/* 05CFF8 7F0284C8 E4880044 */ swc1 $f8, 0x44($a0) +/* 05CFFC 7F0284CC 8FBF0014 */ lw $ra, 0x14($sp) +/* 05D000 7F0284D0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05D004 7F0284D4 03E00008 */ jr $ra +/* 05D008 7F0284D8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0284DC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0284DC +/* 05D00C 7F0284DC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05D010 7F0284E0 AFBF0014 */ sw $ra, 0x14($sp) +/* 05D014 7F0284E4 AFA40018 */ sw $a0, 0x18($sp) +/* 05D018 7F0284E8 24850034 */ addiu $a1, $a0, 0x34 +/* 05D01C 7F0284EC 0FC0A0D2 */ jal sub_GAME_7F028348 +/* 05D020 7F0284F0 24060001 */ li $a2, 1 +/* 05D024 7F0284F4 8FA40018 */ lw $a0, 0x18($sp) +/* 05D028 7F0284F8 0FC0A125 */ jal sub_GAME_7F028494 +/* 05D02C 7F0284FC AC820030 */ sw $v0, 0x30($a0) +/* 05D030 7F028500 8FBF0014 */ lw $ra, 0x14($sp) +/* 05D034 7F028504 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05D038 7F028508 03E00008 */ jr $ra +/* 05D03C 7F02850C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F028510(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F028510 +/* 05D040 7F028510 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 05D044 7F028514 AFBF0034 */ sw $ra, 0x34($sp) +/* 05D048 7F028518 AFB60030 */ sw $s6, 0x30($sp) +/* 05D04C 7F02851C AFB5002C */ sw $s5, 0x2c($sp) +/* 05D050 7F028520 AFB40028 */ sw $s4, 0x28($sp) +/* 05D054 7F028524 AFB30024 */ sw $s3, 0x24($sp) +/* 05D058 7F028528 AFB20020 */ sw $s2, 0x20($sp) +/* 05D05C 7F02852C AFB1001C */ sw $s1, 0x1c($sp) +/* 05D060 7F028530 AFB00018 */ sw $s0, 0x18($sp) +/* 05D064 7F028534 90AE0003 */ lbu $t6, 3($a1) +/* 05D068 7F028538 00808825 */ move $s1, $a0 +/* 05D06C 7F02853C 240FFFFF */ li $t7, -1 +/* 05D070 7F028540 AFAF0054 */ sw $t7, 0x54($sp) +/* 05D074 7F028544 27A40050 */ addiu $a0, $sp, 0x50 +/* 05D078 7F028548 0FC0F8FF */ jal sub_GAME_7F03E3FC +/* 05D07C 7F02854C AFAE0050 */ sw $t6, 0x50($sp) +/* 05D080 7F028550 3C108007 */ lui $s0, %hi(ptr_list_object_lookup_indices) +/* 05D084 7F028554 8E109C30 */ lw $s0, %lo(ptr_list_object_lookup_indices)($s0) +/* 05D088 7F028558 3C138007 */ lui $s3, %hi(pos_data_entry) +/* 05D08C 7F02855C 26739C38 */ addiu $s3, %lo(pos_data_entry) # addiu $s3, $s3, -0x63c8 +/* 05D090 7F028560 86020000 */ lh $v0, ($s0) +/* 05D094 7F028564 27B60040 */ addiu $s6, $sp, 0x40 +/* 05D098 7F028568 27B50044 */ addiu $s5, $sp, 0x44 +/* 05D09C 7F02856C 04400019 */ bltz $v0, .L7F0285D4 +/* 05D0A0 7F028570 24140001 */ li $s4, 1 +/* 05D0A4 7F028574 24120034 */ li $s2, 52 +.L7F028578: +/* 05D0A8 7F028578 00520019 */ multu $v0, $s2 +/* 05D0AC 7F02857C 02A02825 */ move $a1, $s5 +/* 05D0B0 7F028580 0000C012 */ mflo $t8 +/* 05D0B4 7F028584 03132021 */ addu $a0, $t8, $s3 +/* 05D0B8 7F028588 90990000 */ lbu $t9, ($a0) +/* 05D0BC 7F02858C 5699000E */ bnel $s4, $t9, .L7F0285C8 +/* 05D0C0 7F028590 86020002 */ lh $v0, 2($s0) +/* 05D0C4 7F028594 0FC0F32C */ jal sub_GAME_7F03CCB0 +/* 05D0C8 7F028598 02C03025 */ move $a2, $s6 +/* 05D0CC 7F02859C 8FA60040 */ lw $a2, 0x40($sp) +/* 05D0D0 7F0285A0 02202025 */ move $a0, $s1 +/* 05D0D4 7F0285A4 58C00008 */ blezl $a2, .L7F0285C8 +/* 05D0D8 7F0285A8 86020002 */ lh $v0, 2($s0) +/* 05D0DC 7F0285AC 0FC0F336 */ jal sub_GAME_7F03CCD8 +/* 05D0E0 7F0285B0 8FA50044 */ lw $a1, 0x44($sp) +/* 05D0E4 7F0285B4 50400004 */ beql $v0, $zero, .L7F0285C8 +/* 05D0E8 7F0285B8 86020002 */ lh $v0, 2($s0) +/* 05D0EC 7F0285BC 10000006 */ b .L7F0285D8 +/* 05D0F0 7F0285C0 00001025 */ move $v0, $zero +/* 05D0F4 7F0285C4 86020002 */ lh $v0, 2($s0) +.L7F0285C8: +/* 05D0F8 7F0285C8 26100002 */ addiu $s0, $s0, 2 +/* 05D0FC 7F0285CC 0441FFEA */ bgez $v0, .L7F028578 +/* 05D100 7F0285D0 00000000 */ nop +.L7F0285D4: +/* 05D104 7F0285D4 24020001 */ li $v0, 1 +.L7F0285D8: +/* 05D108 7F0285D8 8FBF0034 */ lw $ra, 0x34($sp) +/* 05D10C 7F0285DC 8FB00018 */ lw $s0, 0x18($sp) +/* 05D110 7F0285E0 8FB1001C */ lw $s1, 0x1c($sp) +/* 05D114 7F0285E4 8FB20020 */ lw $s2, 0x20($sp) +/* 05D118 7F0285E8 8FB30024 */ lw $s3, 0x24($sp) +/* 05D11C 7F0285EC 8FB40028 */ lw $s4, 0x28($sp) +/* 05D120 7F0285F0 8FB5002C */ lw $s5, 0x2c($sp) +/* 05D124 7F0285F4 8FB60030 */ lw $s6, 0x30($sp) +/* 05D128 7F0285F8 03E00008 */ jr $ra +/* 05D12C 7F0285FC 27BD0070 */ addiu $sp, $sp, 0x70 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F028600(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F028600 +/* 05D130 7F028600 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 05D134 7F028604 AFBF002C */ sw $ra, 0x2c($sp) +/* 05D138 7F028608 AFB00028 */ sw $s0, 0x28($sp) +/* 05D13C 7F02860C AFA5006C */ sw $a1, 0x6c($sp) +/* 05D140 7F028610 AFA60070 */ sw $a2, 0x70($sp) +/* 05D144 7F028614 AFA70074 */ sw $a3, 0x74($sp) +/* 05D148 7F028618 A0800009 */ sb $zero, 9($a0) +/* 05D14C 7F02861C 3C0E8005 */ lui $t6, %hi(global_timer) +/* 05D150 7F028620 8DCE837C */ lw $t6, %lo(global_timer)($t6) +/* 05D154 7F028624 00808025 */ move $s0, $a0 +/* 05D158 7F028628 AC8E00CC */ sw $t6, 0xcc($a0) +/* 05D15C 7F02862C 0FC1BD86 */ jal sub_GAME_7F06F618 +/* 05D160 7F028630 8C84001C */ lw $a0, 0x1c($a0) +/* 05D164 7F028634 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 05D168 7F028638 3C018005 */ lui $at, %hi(global_timer_delta) +/* 05D16C 7F02863C C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 05D170 7F028640 46002182 */ mul.s $f6, $f4, $f0 +/* 05D174 7F028644 8FA2006C */ lw $v0, 0x6c($sp) +/* 05D178 7F028648 02002025 */ move $a0, $s0 +/* 05D17C 7F02864C C4500038 */ lwc1 $f16, 0x38($v0) +/* 05D180 7F028650 46083282 */ mul.s $f10, $f6, $f8 +/* 05D184 7F028654 C446003C */ lwc1 $f6, 0x3c($v0) +/* 05D188 7F028658 460A8480 */ add.s $f18, $f16, $f10 +/* 05D18C 7F02865C E4520038 */ swc1 $f18, 0x38($v0) +/* 05D190 7F028660 C4440038 */ lwc1 $f4, 0x38($v0) +/* 05D194 7F028664 4604303E */ c.le.s $f6, $f4 +/* 05D198 7F028668 00000000 */ nop +/* 05D19C 7F02866C 45020085 */ bc1fl .L7F028884 +/* 05D1A0 7F028670 8FBF002C */ lw $ra, 0x2c($sp) +/* 05D1A4 7F028674 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05D1A8 7F028678 00002825 */ move $a1, $zero +/* 05D1AC 7F02867C 8FA20074 */ lw $v0, 0x74($sp) +/* 05D1B0 7F028680 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05D1B4 7F028684 44818000 */ mtc1 $at, $f16 +/* 05D1B8 7F028688 44804000 */ mtc1 $zero, $f8 +/* 05D1BC 7F02868C 8E070024 */ lw $a3, 0x24($s0) +/* 05D1C0 7F028690 8C450000 */ lw $a1, ($v0) +/* 05D1C4 7F028694 8C460008 */ lw $a2, 8($v0) +/* 05D1C8 7F028698 240F001F */ li $t7, 31 +/* 05D1CC 7F02869C AFAF0010 */ sw $t7, 0x10($sp) +/* 05D1D0 7F0286A0 27A40078 */ addiu $a0, $sp, 0x78 +/* 05D1D4 7F0286A4 E7B00018 */ swc1 $f16, 0x18($sp) +/* 05D1D8 7F0286A8 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 05D1DC 7F0286AC E7A80014 */ swc1 $f8, 0x14($sp) +/* 05D1E0 7F0286B0 0441005D */ bgez $v0, .L7F028828 +/* 05D1E4 7F0286B4 8FA60074 */ lw $a2, 0x74($sp) +/* 05D1E8 7F0286B8 00C02025 */ move $a0, $a2 +/* 05D1EC 7F0286BC 0FC0A144 */ jal sub_GAME_7F028510 +/* 05D1F0 7F0286C0 8FA50078 */ lw $a1, 0x78($sp) +/* 05D1F4 7F0286C4 10400058 */ beqz $v0, .L7F028828 +/* 05D1F8 7F0286C8 8FA60074 */ lw $a2, 0x74($sp) +/* 05D1FC 7F0286CC 8E030018 */ lw $v1, 0x18($s0) +/* 05D200 7F0286D0 8FB80078 */ lw $t8, 0x78($sp) +/* 05D204 7F0286D4 00C02825 */ move $a1, $a2 +/* 05D208 7F0286D8 AC780014 */ sw $t8, 0x14($v1) +/* 05D20C 7F0286DC C4CA0000 */ lwc1 $f10, ($a2) +/* 05D210 7F0286E0 E46A0008 */ swc1 $f10, 8($v1) +/* 05D214 7F0286E4 C4D20004 */ lwc1 $f18, 4($a2) +/* 05D218 7F0286E8 E472000C */ swc1 $f18, 0xc($v1) +/* 05D21C 7F0286EC C4C40008 */ lwc1 $f4, 8($a2) +/* 05D220 7F0286F0 E4640010 */ swc1 $f4, 0x10($v1) +/* 05D224 7F0286F4 8E190014 */ lw $t9, 0x14($s0) +/* 05D228 7F0286F8 8E04001C */ lw $a0, 0x1c($s0) +/* 05D22C 7F0286FC 37280001 */ ori $t0, $t9, 1 +/* 05D230 7F028700 AE080014 */ sw $t0, 0x14($s0) +/* 05D234 7F028704 0FC1B303 */ jal setsuboffset +/* 05D238 7F028708 AFA30064 */ sw $v1, 0x64($sp) +/* 05D23C 7F02870C 8FA30064 */ lw $v1, 0x64($sp) +/* 05D240 7F028710 8E04001C */ lw $a0, 0x1c($s0) +/* 05D244 7F028714 260700AC */ addiu $a3, $s0, 0xac +/* 05D248 7F028718 24650008 */ addiu $a1, $v1, 8 +/* 05D24C 7F02871C 0FC07F04 */ jal sub_GAME_7F01FC10 +/* 05D250 7F028720 00A03025 */ move $a2, $a1 +/* 05D254 7F028724 0FC08365 */ jal sub_GAME_7F020D94 +/* 05D258 7F028728 02002025 */ move $a0, $s0 +/* 05D25C 7F02872C 82020007 */ lb $v0, 7($s0) +/* 05D260 7F028730 2401000E */ li $at, 14 +/* 05D264 7F028734 8FA30064 */ lw $v1, 0x64($sp) +/* 05D268 7F028738 5441000C */ bnel $v0, $at, .L7F02876C +/* 05D26C 7F02873C 2401000F */ li $at, 15 +/* 05D270 7F028740 0FC0A137 */ jal sub_GAME_7F0284DC +/* 05D274 7F028744 02002025 */ move $a0, $s0 +/* 05D278 7F028748 0FC0A11D */ jal sub_GAME_7F028474 +/* 05D27C 7F02874C 02002025 */ move $a0, $s0 +/* 05D280 7F028750 02002025 */ move $a0, $s0 +/* 05D284 7F028754 8FA5006C */ lw $a1, 0x6c($sp) +/* 05D288 7F028758 0FC09FA4 */ jal sub_GAME_7F027E90 +/* 05D28C 7F02875C 00403025 */ move $a2, $v0 +/* 05D290 7F028760 10000045 */ b .L7F028878 +/* 05D294 7F028764 02002025 */ move $a0, $s0 +/* 05D298 7F028768 2401000F */ li $at, 15 +.L7F02876C: +/* 05D29C 7F02876C 54410042 */ bnel $v0, $at, .L7F028878 +/* 05D2A0 7F028770 02002025 */ move $a0, $s0 +/* 05D2A4 7F028774 92020058 */ lbu $v0, 0x58($s0) +/* 05D2A8 7F028778 00024880 */ sll $t1, $v0, 2 +/* 05D2AC 7F02877C 02095021 */ addu $t2, $s0, $t1 +/* 05D2B0 7F028780 8D4B0040 */ lw $t3, 0x40($t2) +/* 05D2B4 7F028784 1560001C */ bnez $t3, .L7F0287F8 +/* 05D2B8 7F028788 00000000 */ nop +/* 05D2BC 7F02878C 18400016 */ blez $v0, .L7F0287E8 +/* 05D2C0 7F028790 00026080 */ sll $t4, $v0, 2 +/* 05D2C4 7F028794 020C6821 */ addu $t5, $s0, $t4 +/* 05D2C8 7F028798 8DA4003C */ lw $a0, 0x3c($t5) +/* 05D2CC 7F02879C 3C188007 */ lui $t8, %hi(ptr_0xxxpresets) +/* 05D2D0 7F0287A0 8F185D18 */ lw $t8, %lo(ptr_0xxxpresets)($t8) +/* 05D2D4 7F0287A4 8C8E0000 */ lw $t6, ($a0) +/* 05D2D8 7F0287A8 C4660008 */ lwc1 $f6, 8($v1) +/* 05D2DC 7F0287AC C4700010 */ lwc1 $f16, 0x10($v1) +/* 05D2E0 7F0287B0 000E7880 */ sll $t7, $t6, 2 +/* 05D2E4 7F0287B4 01EE7823 */ subu $t7, $t7, $t6 +/* 05D2E8 7F0287B8 000F7880 */ sll $t7, $t7, 2 +/* 05D2EC 7F0287BC 01EE7823 */ subu $t7, $t7, $t6 +/* 05D2F0 7F0287C0 000F7880 */ sll $t7, $t7, 2 +/* 05D2F4 7F0287C4 01F81021 */ addu $v0, $t7, $t8 +/* 05D2F8 7F0287C8 C4480000 */ lwc1 $f8, ($v0) +/* 05D2FC 7F0287CC C44A0008 */ lwc1 $f10, 8($v0) +/* 05D300 7F0287D0 46083301 */ sub.s $f12, $f6, $f8 +/* 05D304 7F0287D4 0FC16A8C */ jal atan2f +/* 05D308 7F0287D8 460A8381 */ sub.s $f14, $f16, $f10 +/* 05D30C 7F0287DC 44050000 */ mfc1 $a1, $f0 +/* 05D310 7F0287E0 0FC1B34F */ jal setsubroty +/* 05D314 7F0287E4 8E04001C */ lw $a0, 0x1c($s0) +.L7F0287E8: +/* 05D318 7F0287E8 0FC08F92 */ jal sub_GAME_7F023E48 +/* 05D31C 7F0287EC 02002025 */ move $a0, $s0 +/* 05D320 7F0287F0 10000021 */ b .L7F028878 +/* 05D324 7F0287F4 02002025 */ move $a0, $s0 +.L7F0287F8: +/* 05D328 7F0287F8 0FC0A0B8 */ jal sub_GAME_7F0282E0 +/* 05D32C 7F0287FC 02002025 */ move $a0, $s0 +/* 05D330 7F028800 02002025 */ move $a0, $s0 +/* 05D334 7F028804 27A50040 */ addiu $a1, $sp, 0x40 +/* 05D338 7F028808 0FC09FC8 */ jal sub_GAME_7F027F20 +/* 05D33C 7F02880C 27A6003C */ addiu $a2, $sp, 0x3c +/* 05D340 7F028810 02002025 */ move $a0, $s0 +/* 05D344 7F028814 8FA5006C */ lw $a1, 0x6c($sp) +/* 05D348 7F028818 0FC09FA4 */ jal sub_GAME_7F027E90 +/* 05D34C 7F02881C 27A60040 */ addiu $a2, $sp, 0x40 +/* 05D350 7F028820 10000015 */ b .L7F028878 +/* 05D354 7F028824 02002025 */ move $a0, $s0 +.L7F028828: +/* 05D358 7F028828 8FA2006C */ lw $v0, 0x6c($sp) +/* 05D35C 7F02882C 2401000E */ li $at, 14 +/* 05D360 7F028830 3C088005 */ lui $t0, %hi(global_timer) +/* 05D364 7F028834 C452003C */ lwc1 $f18, 0x3c($v0) +/* 05D368 7F028838 3C098005 */ lui $t1, %hi(global_timer) +/* 05D36C 7F02883C E4520038 */ swc1 $f18, 0x38($v0) +/* 05D370 7F028840 82190007 */ lb $t9, 7($s0) +/* 05D374 7F028844 17210007 */ bne $t9, $at, .L7F028864 +/* 05D378 7F028848 00000000 */ nop +/* 05D37C 7F02884C 8D08837C */ lw $t0, %lo(global_timer)($t0) +/* 05D380 7F028850 02002025 */ move $a0, $s0 +/* 05D384 7F028854 0FC0A125 */ jal sub_GAME_7F028494 +/* 05D388 7F028858 AE080078 */ sw $t0, 0x78($s0) +/* 05D38C 7F02885C 10000006 */ b .L7F028878 +/* 05D390 7F028860 02002025 */ move $a0, $s0 +.L7F028864: +/* 05D394 7F028864 8D29837C */ lw $t1, %lo(global_timer)($t1) +/* 05D398 7F028868 02002025 */ move $a0, $s0 +/* 05D39C 7F02886C 0FC0A0A3 */ jal sub_GAME_7F02828C +/* 05D3A0 7F028870 AE09009C */ sw $t1, 0x9c($s0) +/* 05D3A4 7F028874 02002025 */ move $a0, $s0 +.L7F028878: +/* 05D3A8 7F028878 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05D3AC 7F02887C 24050001 */ li $a1, 1 +/* 05D3B0 7F028880 8FBF002C */ lw $ra, 0x2c($sp) +.L7F028884: +/* 05D3B4 7F028884 8FB00028 */ lw $s0, 0x28($sp) +/* 05D3B8 7F028888 27BD0068 */ addiu $sp, $sp, 0x68 +/* 05D3BC 7F02888C 03E00008 */ jr $ra +/* 05D3C0 7F028890 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F028894(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F028894 +/* 05D3C4 7F028894 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 05D3C8 7F028898 AFBF0014 */ sw $ra, 0x14($sp) +/* 05D3CC 7F02889C 80820007 */ lb $v0, 7($a0) +/* 05D3D0 7F0288A0 2401000E */ li $at, 14 +/* 05D3D4 7F0288A4 00A03825 */ move $a3, $a1 +/* 05D3D8 7F0288A8 5441002F */ bnel $v0, $at, .L7F028968 +/* 05D3DC 7F0288AC 2401000F */ li $at, 15 +/* 05D3E0 7F0288B0 808E0038 */ lb $t6, 0x38($a0) +/* 05D3E4 7F0288B4 24010006 */ li $at, 6 +/* 05D3E8 7F0288B8 55C1002B */ bnel $t6, $at, .L7F028968 +/* 05D3EC 7F0288BC 2401000F */ li $at, 15 +/* 05D3F0 7F0288C0 AFA40040 */ sw $a0, 0x40($sp) +/* 05D3F4 7F0288C4 0FC0A11D */ jal sub_GAME_7F028474 +/* 05D3F8 7F0288C8 AFA50044 */ sw $a1, 0x44($sp) +/* 05D3FC 7F0288CC 8FA40040 */ lw $a0, 0x40($sp) +/* 05D400 7F0288D0 8FA70044 */ lw $a3, 0x44($sp) +/* 05D404 7F0288D4 C4900070 */ lwc1 $f16, 0x70($a0) +/* 05D408 7F0288D8 C4920074 */ lwc1 $f18, 0x74($a0) +/* 05D40C 7F0288DC 4610903E */ c.le.s $f18, $f16 +/* 05D410 7F0288E0 00000000 */ nop +/* 05D414 7F0288E4 45020009 */ bc1fl .L7F02890C +/* 05D418 7F0288E8 46128003 */ div.s $f0, $f16, $f18 +/* 05D41C 7F0288EC C4440000 */ lwc1 $f4, ($v0) +/* 05D420 7F0288F0 E4E40000 */ swc1 $f4, ($a3) +/* 05D424 7F0288F4 C4460004 */ lwc1 $f6, 4($v0) +/* 05D428 7F0288F8 E4E60004 */ swc1 $f6, 4($a3) +/* 05D42C 7F0288FC C4480008 */ lwc1 $f8, 8($v0) +/* 05D430 7F028900 10000052 */ b .L7F028A4C +/* 05D434 7F028904 E4E80008 */ swc1 $f8, 8($a3) +/* 05D438 7F028908 46128003 */ div.s $f0, $f16, $f18 +.L7F02890C: +/* 05D43C 7F02890C 8C8F0018 */ lw $t7, 0x18($a0) +/* 05D440 7F028910 C44A0000 */ lwc1 $f10, ($v0) +/* 05D444 7F028914 C5E20008 */ lwc1 $f2, 8($t7) +/* 05D448 7F028918 46025101 */ sub.s $f4, $f10, $f2 +/* 05D44C 7F02891C 46002182 */ mul.s $f6, $f4, $f0 +/* 05D450 7F028920 46023200 */ add.s $f8, $f6, $f2 +/* 05D454 7F028924 E4E80000 */ swc1 $f8, ($a3) +/* 05D458 7F028928 8C980018 */ lw $t8, 0x18($a0) +/* 05D45C 7F02892C C44A0004 */ lwc1 $f10, 4($v0) +/* 05D460 7F028930 C70C000C */ lwc1 $f12, 0xc($t8) +/* 05D464 7F028934 460C5101 */ sub.s $f4, $f10, $f12 +/* 05D468 7F028938 46002182 */ mul.s $f6, $f4, $f0 +/* 05D46C 7F02893C 460C3200 */ add.s $f8, $f6, $f12 +/* 05D470 7F028940 E4E80004 */ swc1 $f8, 4($a3) +/* 05D474 7F028944 8C990018 */ lw $t9, 0x18($a0) +/* 05D478 7F028948 C44A0008 */ lwc1 $f10, 8($v0) +/* 05D47C 7F02894C C72E0010 */ lwc1 $f14, 0x10($t9) +/* 05D480 7F028950 460E5101 */ sub.s $f4, $f10, $f14 +/* 05D484 7F028954 46002182 */ mul.s $f6, $f4, $f0 +/* 05D488 7F028958 460E3200 */ add.s $f8, $f6, $f14 +/* 05D48C 7F02895C 1000003B */ b .L7F028A4C +/* 05D490 7F028960 E4E80008 */ swc1 $f8, 8($a3) +/* 05D494 7F028964 2401000F */ li $at, 15 +.L7F028968: +/* 05D498 7F028968 54410030 */ bnel $v0, $at, .L7F028A2C +/* 05D49C 7F02896C 8C8C0018 */ lw $t4, 0x18($a0) +/* 05D4A0 7F028970 8088005C */ lb $t0, 0x5c($a0) +/* 05D4A4 7F028974 24010006 */ li $at, 6 +/* 05D4A8 7F028978 27A5002C */ addiu $a1, $sp, 0x2c +/* 05D4AC 7F02897C 1501002A */ bne $t0, $at, .L7F028A28 +/* 05D4B0 7F028980 27A60028 */ addiu $a2, $sp, 0x28 +/* 05D4B4 7F028984 AFA40040 */ sw $a0, 0x40($sp) +/* 05D4B8 7F028988 0FC09FC8 */ jal sub_GAME_7F027F20 +/* 05D4BC 7F02898C AFA70044 */ sw $a3, 0x44($sp) +/* 05D4C0 7F028990 8FA40040 */ lw $a0, 0x40($sp) +/* 05D4C4 7F028994 8FA70044 */ lw $a3, 0x44($sp) +/* 05D4C8 7F028998 C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 05D4CC 7F02899C C4900094 */ lwc1 $f16, 0x94($a0) +/* 05D4D0 7F0289A0 C4920098 */ lwc1 $f18, 0x98($a0) +/* 05D4D4 7F0289A4 4610903E */ c.le.s $f18, $f16 +/* 05D4D8 7F0289A8 00000000 */ nop +/* 05D4DC 7F0289AC 45020008 */ bc1fl .L7F0289D0 +/* 05D4E0 7F0289B0 46128003 */ div.s $f0, $f16, $f18 +/* 05D4E4 7F0289B4 E4EA0000 */ swc1 $f10, ($a3) +/* 05D4E8 7F0289B8 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 05D4EC 7F0289BC E4E40004 */ swc1 $f4, 4($a3) +/* 05D4F0 7F0289C0 C7A60034 */ lwc1 $f6, 0x34($sp) +/* 05D4F4 7F0289C4 10000021 */ b .L7F028A4C +/* 05D4F8 7F0289C8 E4E60008 */ swc1 $f6, 8($a3) +/* 05D4FC 7F0289CC 46128003 */ div.s $f0, $f16, $f18 +.L7F0289D0: +/* 05D500 7F0289D0 8C890018 */ lw $t1, 0x18($a0) +/* 05D504 7F0289D4 C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 05D508 7F0289D8 C5220008 */ lwc1 $f2, 8($t1) +/* 05D50C 7F0289DC 46024281 */ sub.s $f10, $f8, $f2 +/* 05D510 7F0289E0 46005102 */ mul.s $f4, $f10, $f0 +/* 05D514 7F0289E4 46022180 */ add.s $f6, $f4, $f2 +/* 05D518 7F0289E8 E4E60000 */ swc1 $f6, ($a3) +/* 05D51C 7F0289EC 8C8A0018 */ lw $t2, 0x18($a0) +/* 05D520 7F0289F0 C7A80030 */ lwc1 $f8, 0x30($sp) +/* 05D524 7F0289F4 C54C000C */ lwc1 $f12, 0xc($t2) +/* 05D528 7F0289F8 460C4281 */ sub.s $f10, $f8, $f12 +/* 05D52C 7F0289FC 46005102 */ mul.s $f4, $f10, $f0 +/* 05D530 7F028A00 460C2180 */ add.s $f6, $f4, $f12 +/* 05D534 7F028A04 E4E60004 */ swc1 $f6, 4($a3) +/* 05D538 7F028A08 8C8B0018 */ lw $t3, 0x18($a0) +/* 05D53C 7F028A0C C7A80034 */ lwc1 $f8, 0x34($sp) +/* 05D540 7F028A10 C56E0010 */ lwc1 $f14, 0x10($t3) +/* 05D544 7F028A14 460E4281 */ sub.s $f10, $f8, $f14 +/* 05D548 7F028A18 46005102 */ mul.s $f4, $f10, $f0 +/* 05D54C 7F028A1C 460E2180 */ add.s $f6, $f4, $f14 +/* 05D550 7F028A20 1000000A */ b .L7F028A4C +/* 05D554 7F028A24 E4E60008 */ swc1 $f6, 8($a3) +.L7F028A28: +/* 05D558 7F028A28 8C8C0018 */ lw $t4, 0x18($a0) +.L7F028A2C: +/* 05D55C 7F028A2C C5880008 */ lwc1 $f8, 8($t4) +/* 05D560 7F028A30 E4E80000 */ swc1 $f8, ($a3) +/* 05D564 7F028A34 8C8D0018 */ lw $t5, 0x18($a0) +/* 05D568 7F028A38 C5AA000C */ lwc1 $f10, 0xc($t5) +/* 05D56C 7F028A3C E4EA0004 */ swc1 $f10, 4($a3) +/* 05D570 7F028A40 8C8E0018 */ lw $t6, 0x18($a0) +/* 05D574 7F028A44 C5C40010 */ lwc1 $f4, 0x10($t6) +/* 05D578 7F028A48 E4E40008 */ swc1 $f4, 8($a3) +.L7F028A4C: +/* 05D57C 7F028A4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 05D580 7F028A50 27BD0040 */ addiu $sp, $sp, 0x40 +/* 05D584 7F028A54 03E00008 */ jr $ra +/* 05D588 7F028A58 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_sound_at_range(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_sound_at_range +/* 05D58C 7F028A5C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 05D590 7F028A60 AFBF001C */ sw $ra, 0x1c($sp) +/* 05D594 7F028A64 AFA50034 */ sw $a1, 0x34($sp) +/* 05D598 7F028A68 AFA40030 */ sw $a0, 0x30($sp) +/* 05D59C 7F028A6C AFA60038 */ sw $a2, 0x38($sp) +/* 05D5A0 7F028A70 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05D5A4 7F028A74 24050001 */ li $a1, 1 +/* 05D5A8 7F028A78 8FA40030 */ lw $a0, 0x30($sp) +/* 05D5AC 7F028A7C 00002825 */ move $a1, $zero +/* 05D5B0 7F028A80 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05D5B4 7F028A84 AFA2002C */ sw $v0, 0x2c($sp) +/* 05D5B8 7F028A88 8FA7002C */ lw $a3, 0x2c($sp) +/* 05D5BC 7F028A8C 00402825 */ move $a1, $v0 +/* 05D5C0 7F028A90 10E00003 */ beqz $a3, .L7F028AA0 +/* 05D5C4 7F028A94 00000000 */ nop +/* 05D5C8 7F028A98 14400005 */ bnez $v0, .L7F028AB0 +/* 05D5CC 7F028A9C 00000000 */ nop +.L7F028AA0: +/* 05D5D0 7F028AA0 14E00009 */ bnez $a3, .L7F028AC8 +/* 05D5D4 7F028AA4 00E02025 */ move $a0, $a3 +/* 05D5D8 7F028AA8 54400008 */ bnezl $v0, .L7F028ACC +/* 05D5DC 7F028AAC AFA50028 */ sw $a1, 0x28($sp) +.L7F028AB0: +/* 05D5E0 7F028AB0 0C002914 */ jal get_random_value +/* 05D5E4 7F028AB4 AFA00020 */ sw $zero, 0x20($sp) +/* 05D5E8 7F028AB8 8FA30020 */ lw $v1, 0x20($sp) +/* 05D5EC 7F028ABC 8FA80030 */ lw $t0, 0x30($sp) +/* 05D5F0 7F028AC0 10000013 */ b .L7F028B10 +/* 05D5F4 7F028AC4 30460001 */ andi $a2, $v0, 1 +.L7F028AC8: +/* 05D5F8 7F028AC8 AFA50028 */ sw $a1, 0x28($sp) +.L7F028ACC: +/* 05D5FC 7F028ACC 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05D600 7F028AD0 AFA7002C */ sw $a3, 0x2c($sp) +/* 05D604 7F028AD4 8FA50028 */ lw $a1, 0x28($sp) +/* 05D608 7F028AD8 8FA7002C */ lw $a3, 0x2c($sp) +/* 05D60C 7F028ADC 14400007 */ bnez $v0, .L7F028AFC +/* 05D610 7F028AE0 8FA80030 */ lw $t0, 0x30($sp) +/* 05D614 7F028AE4 00A02025 */ move $a0, $a1 +/* 05D618 7F028AE8 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05D61C 7F028AEC AFA7002C */ sw $a3, 0x2c($sp) +/* 05D620 7F028AF0 8FA7002C */ lw $a3, 0x2c($sp) +/* 05D624 7F028AF4 10400004 */ beqz $v0, .L7F028B08 +/* 05D628 7F028AF8 8FA80030 */ lw $t0, 0x30($sp) +.L7F028AFC: +/* 05D62C 7F028AFC 00001825 */ move $v1, $zero +/* 05D630 7F028B00 10000003 */ b .L7F028B10 +/* 05D634 7F028B04 0007302B */ sltu $a2, $zero, $a3 +.L7F028B08: +/* 05D638 7F028B08 24030001 */ li $v1, 1 +/* 05D63C 7F028B0C 0007302B */ sltu $a2, $zero, $a3 +.L7F028B10: +/* 05D640 7F028B10 10600036 */ beqz $v1, .L7F028BEC +/* 05D644 7F028B14 8FAB0038 */ lw $t3, 0x38($sp) +/* 05D648 7F028B18 8FA20034 */ lw $v0, 0x34($sp) +/* 05D64C 7F028B1C 24010002 */ li $at, 2 +/* 05D650 7F028B20 3C0E8007 */ lui $t6, %hi(ptr_animation_table) +/* 05D654 7F028B24 1441000F */ bne $v0, $at, .L7F028B64 +/* 05D658 7F028B28 3C0F0000 */ lui $t7, %hi(0x00004070) # $t7, 0 +/* 05D65C 7F028B2C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05D660 7F028B30 44812000 */ mtc1 $at, $f4 +/* 05D664 7F028B34 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05D668 7F028B38 44813000 */ mtc1 $at, $f6 +/* 05D66C 7F028B3C 8DCE9538 */ lw $t6, %lo(ptr_animation_table)($t6) +/* 05D670 7F028B40 8D04001C */ lw $a0, 0x1c($t0) +/* 05D674 7F028B44 25EF4070 */ addiu $t7, %lo(0x00004070) # addiu $t7, $t7, 0x4070 +/* 05D678 7F028B48 24070000 */ li $a3, 0 +/* 05D67C 7F028B4C E7A40010 */ swc1 $f4, 0x10($sp) +/* 05D680 7F028B50 01CF2821 */ addu $a1, $t6, $t7 +/* 05D684 7F028B54 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05D688 7F028B58 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05D68C 7F028B5C 1000008D */ b .L7F028D94 +/* 05D690 7F028B60 8FBF001C */ lw $ra, 0x1c($sp) +.L7F028B64: +/* 05D694 7F028B64 24010001 */ li $at, 1 +/* 05D698 7F028B68 14410011 */ bne $v0, $at, .L7F028BB0 +/* 05D69C 7F028B6C 3C098007 */ lui $t1, %hi(ptr_animation_table) +/* 05D6A0 7F028B70 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05D6A4 7F028B74 44814000 */ mtc1 $at, $f8 +/* 05D6A8 7F028B78 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05D6AC 7F028B7C 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 05D6B0 7F028B80 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 05D6B4 7F028B84 44815000 */ mtc1 $at, $f10 +/* 05D6B8 7F028B88 3C190000 */ lui $t9, %hi(0x000040D4) # $t9, 0 +/* 05D6BC 7F028B8C 273940D4 */ addiu $t9, %lo(0x000040D4) # addiu $t9, $t9, 0x40d4 +/* 05D6C0 7F028B90 8D04001C */ lw $a0, 0x1c($t0) +/* 05D6C4 7F028B94 24070000 */ li $a3, 0 +/* 05D6C8 7F028B98 E7A80010 */ swc1 $f8, 0x10($sp) +/* 05D6CC 7F028B9C 03192821 */ addu $a1, $t8, $t9 +/* 05D6D0 7F028BA0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05D6D4 7F028BA4 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 05D6D8 7F028BA8 1000007A */ b .L7F028D94 +/* 05D6DC 7F028BAC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F028BB0: +/* 05D6E0 7F028BB0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05D6E4 7F028BB4 44818000 */ mtc1 $at, $f16 +/* 05D6E8 7F028BB8 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05D6EC 7F028BBC 44819000 */ mtc1 $at, $f18 +/* 05D6F0 7F028BC0 8D299538 */ lw $t1, %lo(ptr_animation_table)($t1) +/* 05D6F4 7F028BC4 3C0A0000 */ lui $t2, %hi(0x00004018) # $t2, 0 +/* 05D6F8 7F028BC8 254A4018 */ addiu $t2, %lo(0x00004018) # addiu $t2, $t2, 0x4018 +/* 05D6FC 7F028BCC 8D04001C */ lw $a0, 0x1c($t0) +/* 05D700 7F028BD0 24070000 */ li $a3, 0 +/* 05D704 7F028BD4 E7B00010 */ swc1 $f16, 0x10($sp) +/* 05D708 7F028BD8 E7B20014 */ swc1 $f18, 0x14($sp) +/* 05D70C 7F028BDC 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05D710 7F028BE0 012A2821 */ addu $a1, $t1, $t2 +/* 05D714 7F028BE4 1000006B */ b .L7F028D94 +/* 05D718 7F028BE8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F028BEC: +/* 05D71C 7F028BEC 11600036 */ beqz $t3, .L7F028CC8 +/* 05D720 7F028BF0 8FA20034 */ lw $v0, 0x34($sp) +/* 05D724 7F028BF4 8FA20034 */ lw $v0, 0x34($sp) +/* 05D728 7F028BF8 24010002 */ li $at, 2 +/* 05D72C 7F028BFC 3C0C8007 */ lui $t4, %hi(ptr_animation_table) +/* 05D730 7F028C00 1441000F */ bne $v0, $at, .L7F028C40 +/* 05D734 7F028C04 3C0D0000 */ lui $t5, %hi(0x000077D4) # $t5, 0 +/* 05D738 7F028C08 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05D73C 7F028C0C 44812000 */ mtc1 $at, $f4 +/* 05D740 7F028C10 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05D744 7F028C14 44813000 */ mtc1 $at, $f6 +/* 05D748 7F028C18 8D8C9538 */ lw $t4, %lo(ptr_animation_table)($t4) +/* 05D74C 7F028C1C 8D04001C */ lw $a0, 0x1c($t0) +/* 05D750 7F028C20 25AD77D4 */ addiu $t5, %lo(0x000077D4) # addiu $t5, $t5, 0x77d4 +/* 05D754 7F028C24 24070000 */ li $a3, 0 +/* 05D758 7F028C28 E7A40010 */ swc1 $f4, 0x10($sp) +/* 05D75C 7F028C2C 018D2821 */ addu $a1, $t4, $t5 +/* 05D760 7F028C30 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05D764 7F028C34 E7A60014 */ swc1 $f6, 0x14($sp) +/* 05D768 7F028C38 10000056 */ b .L7F028D94 +/* 05D76C 7F028C3C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F028C40: +/* 05D770 7F028C40 24010001 */ li $at, 1 +/* 05D774 7F028C44 14410011 */ bne $v0, $at, .L7F028C8C +/* 05D778 7F028C48 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 05D77C 7F028C4C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05D780 7F028C50 44814000 */ mtc1 $at, $f8 +/* 05D784 7F028C54 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05D788 7F028C58 3C0E8007 */ lui $t6, %hi(ptr_animation_table) +/* 05D78C 7F028C5C 8DCE9538 */ lw $t6, %lo(ptr_animation_table)($t6) +/* 05D790 7F028C60 44815000 */ mtc1 $at, $f10 +/* 05D794 7F028C64 3C0F0000 */ lui $t7, %hi(0x0000777C) # $t7, 0 +/* 05D798 7F028C68 25EF777C */ addiu $t7, %lo(0x0000777C) # addiu $t7, $t7, 0x777c +/* 05D79C 7F028C6C 8D04001C */ lw $a0, 0x1c($t0) +/* 05D7A0 7F028C70 24070000 */ li $a3, 0 +/* 05D7A4 7F028C74 E7A80010 */ swc1 $f8, 0x10($sp) +/* 05D7A8 7F028C78 01CF2821 */ addu $a1, $t6, $t7 +/* 05D7AC 7F028C7C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05D7B0 7F028C80 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 05D7B4 7F028C84 10000043 */ b .L7F028D94 +/* 05D7B8 7F028C88 8FBF001C */ lw $ra, 0x1c($sp) +.L7F028C8C: +/* 05D7BC 7F028C8C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05D7C0 7F028C90 44818000 */ mtc1 $at, $f16 +/* 05D7C4 7F028C94 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05D7C8 7F028C98 44819000 */ mtc1 $at, $f18 +/* 05D7CC 7F028C9C 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 05D7D0 7F028CA0 3C190001 */ lui $t9, %hi(0x00008204) # $t9, 1 +/* 05D7D4 7F028CA4 27398204 */ addiu $t9, %lo(0x00008204) # addiu $t9, $t9, -0x7dfc +/* 05D7D8 7F028CA8 8D04001C */ lw $a0, 0x1c($t0) +/* 05D7DC 7F028CAC 24070000 */ li $a3, 0 +/* 05D7E0 7F028CB0 E7B00010 */ swc1 $f16, 0x10($sp) +/* 05D7E4 7F028CB4 E7B20014 */ swc1 $f18, 0x14($sp) +/* 05D7E8 7F028CB8 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05D7EC 7F028CBC 03192821 */ addu $a1, $t8, $t9 +/* 05D7F0 7F028CC0 10000034 */ b .L7F028D94 +/* 05D7F4 7F028CC4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F028CC8: +/* 05D7F8 7F028CC8 24010002 */ li $at, 2 +/* 05D7FC 7F028CCC 14410010 */ bne $v0, $at, .L7F028D10 +/* 05D800 7F028CD0 3C098007 */ lui $t1, %hi(ptr_animation_table) +/* 05D804 7F028CD4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05D808 7F028CD8 44812000 */ mtc1 $at, $f4 +/* 05D80C 7F028CDC 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05D810 7F028CE0 44813000 */ mtc1 $at, $f6 +/* 05D814 7F028CE4 8D299538 */ lw $t1, %lo(ptr_animation_table)($t1) +/* 05D818 7F028CE8 3C0A0000 */ lui $t2, %hi(0x000077D4) # $t2, 0 +/* 05D81C 7F028CEC 254A77D4 */ addiu $t2, %lo(0x000077D4) # addiu $t2, $t2, 0x77d4 +/* 05D820 7F028CF0 8D04001C */ lw $a0, 0x1c($t0) +/* 05D824 7F028CF4 24070000 */ li $a3, 0 +/* 05D828 7F028CF8 E7A40010 */ swc1 $f4, 0x10($sp) +/* 05D82C 7F028CFC E7A60014 */ swc1 $f6, 0x14($sp) +/* 05D830 7F028D00 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05D834 7F028D04 012A2821 */ addu $a1, $t1, $t2 +/* 05D838 7F028D08 10000022 */ b .L7F028D94 +/* 05D83C 7F028D0C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F028D10: +/* 05D840 7F028D10 24010001 */ li $at, 1 +/* 05D844 7F028D14 14410011 */ bne $v0, $at, .L7F028D5C +/* 05D848 7F028D18 3C0D8007 */ lui $t5, %hi(ptr_animation_table) +/* 05D84C 7F028D1C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05D850 7F028D20 44814000 */ mtc1 $at, $f8 +/* 05D854 7F028D24 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05D858 7F028D28 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 05D85C 7F028D2C 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 05D860 7F028D30 44815000 */ mtc1 $at, $f10 +/* 05D864 7F028D34 3C0C0001 */ lui $t4, %hi(0x00008520) # $t4, 1 +/* 05D868 7F028D38 258C8520 */ addiu $t4, %lo(0x00008520) # addiu $t4, $t4, -0x7ae0 +/* 05D86C 7F028D3C 8D04001C */ lw $a0, 0x1c($t0) +/* 05D870 7F028D40 24070000 */ li $a3, 0 +/* 05D874 7F028D44 E7A80010 */ swc1 $f8, 0x10($sp) +/* 05D878 7F028D48 016C2821 */ addu $a1, $t3, $t4 +/* 05D87C 7F028D4C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05D880 7F028D50 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 05D884 7F028D54 1000000F */ b .L7F028D94 +/* 05D888 7F028D58 8FBF001C */ lw $ra, 0x1c($sp) +.L7F028D5C: +/* 05D88C 7F028D5C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05D890 7F028D60 44818000 */ mtc1 $at, $f16 +/* 05D894 7F028D64 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05D898 7F028D68 44819000 */ mtc1 $at, $f18 +/* 05D89C 7F028D6C 8DAD9538 */ lw $t5, %lo(ptr_animation_table)($t5) +/* 05D8A0 7F028D70 3C0E0001 */ lui $t6, %hi(0x000084C4) # $t6, 1 +/* 05D8A4 7F028D74 25CE84C4 */ addiu $t6, %lo(0x000084C4) # addiu $t6, $t6, -0x7b3c +/* 05D8A8 7F028D78 8D04001C */ lw $a0, 0x1c($t0) +/* 05D8AC 7F028D7C 24070000 */ li $a3, 0 +/* 05D8B0 7F028D80 E7B00010 */ swc1 $f16, 0x10($sp) +/* 05D8B4 7F028D84 E7B20014 */ swc1 $f18, 0x14($sp) +/* 05D8B8 7F028D88 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05D8BC 7F028D8C 01AE2821 */ addu $a1, $t5, $t6 +/* 05D8C0 7F028D90 8FBF001C */ lw $ra, 0x1c($sp) +.L7F028D94: +/* 05D8C4 7F028D94 27BD0030 */ addiu $sp, $sp, 0x30 +/* 05D8C8 7F028D98 03E00008 */ jr $ra +/* 05D8CC 7F028D9C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void play_hit_soundeffect_and_proper_volume(void) { + +} +#else +GLOBAL_ASM( +.text +glabel play_hit_soundeffect_and_proper_volume +/* 05D8D0 7F028DA0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05D8D4 7F028DA4 AFBF0014 */ sw $ra, 0x14($sp) +/* 05D8D8 7F028DA8 808E000F */ lb $t6, 0xf($a0) +/* 05D8DC 7F028DAC 3C068004 */ lui $a2, %hi(c_item_entries+16) +/* 05D8E0 7F028DB0 90850059 */ lbu $a1, 0x59($a0) +/* 05D8E4 7F028DB4 000E7880 */ sll $t7, $t6, 2 +/* 05D8E8 7F028DB8 01EE7821 */ addu $t7, $t7, $t6 +/* 05D8EC 7F028DBC 000F7880 */ sll $t7, $t7, 2 +/* 05D8F0 7F028DC0 00CF3021 */ addu $a2, $a2, $t7 +/* 05D8F4 7F028DC4 0FC0A297 */ jal get_sound_at_range +/* 05D8F8 7F028DC8 90C6DE20 */ lbu $a2, %lo(c_item_entries+16)($a2) +/* 05D8FC 7F028DCC 8FBF0014 */ lw $ra, 0x14($sp) +/* 05D900 7F028DD0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05D904 7F028DD4 03E00008 */ jr $ra +/* 05D908 7F028DD8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void plot_course_for_actor(void) { + +} +#else +GLOBAL_ASM( +.text +glabel plot_course_for_actor +/* 05D90C 7F028DDC 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 05D910 7F028DE0 AFBF001C */ sw $ra, 0x1c($sp) +/* 05D914 7F028DE4 AFB00018 */ sw $s0, 0x18($sp) +/* 05D918 7F028DE8 AFA5006C */ sw $a1, 0x6c($sp) +/* 05D91C 7F028DEC AFA60070 */ sw $a2, 0x70($sp) +/* 05D920 7F028DF0 AFA70074 */ sw $a3, 0x74($sp) +/* 05D924 7F028DF4 80820007 */ lb $v0, 7($a0) +/* 05D928 7F028DF8 00808025 */ move $s0, $a0 +/* 05D92C 7F028DFC 8C830018 */ lw $v1, 0x18($a0) +/* 05D930 7F028E00 384E000F */ xori $t6, $v0, 0xf +/* 05D934 7F028E04 2DC20001 */ sltiu $v0, $t6, 1 +/* 05D938 7F028E08 10400004 */ beqz $v0, .L7F028E1C +/* 05D93C 7F028E0C 93AF0077 */ lbu $t7, 0x77($sp) +/* 05D940 7F028E10 90980059 */ lbu $t8, 0x59($a0) +/* 05D944 7F028E14 01F81026 */ xor $v0, $t7, $t8 +/* 05D948 7F028E18 2C420001 */ sltiu $v0, $v0, 1 +.L7F028E1C: +/* 05D94C 7F028E1C 8C650014 */ lw $a1, 0x14($v1) +/* 05D950 7F028E20 AFA30064 */ sw $v1, 0x64($sp) +/* 05D954 7F028E24 AFA20028 */ sw $v0, 0x28($sp) +/* 05D958 7F028E28 0FC09F35 */ jal sub_GAME_7F027CD4 +/* 05D95C 7F028E2C 24640008 */ addiu $a0, $v1, 8 +/* 05D960 7F028E30 AFA20060 */ sw $v0, 0x60($sp) +/* 05D964 7F028E34 8FA4006C */ lw $a0, 0x6c($sp) +/* 05D968 7F028E38 0FC09F35 */ jal sub_GAME_7F027CD4 +/* 05D96C 7F028E3C 8FA50070 */ lw $a1, 0x70($sp) +/* 05D970 7F028E40 8FA40060 */ lw $a0, 0x60($sp) +/* 05D974 7F028E44 00402825 */ move $a1, $v0 +/* 05D978 7F028E48 50800053 */ beql $a0, $zero, .L7F028F98 +/* 05D97C 7F028E4C 00001025 */ move $v0, $zero +/* 05D980 7F028E50 10400050 */ beqz $v0, .L7F028F94 +/* 05D984 7F028E54 27A60044 */ addiu $a2, $sp, 0x44 +/* 05D988 7F028E58 24070006 */ li $a3, 6 +/* 05D98C 7F028E5C 0FC23D3C */ jal sub_GAME_7F08F4F0 +/* 05D990 7F028E60 AFA2005C */ sw $v0, 0x5c($sp) +/* 05D994 7F028E64 28410002 */ slti $at, $v0, 2 +/* 05D998 7F028E68 5420004B */ bnezl $at, .L7F028F98 +/* 05D99C 7F028E6C 00001025 */ move $v0, $zero +/* 05D9A0 7F028E70 0FC0B461 */ jal sub_GAME_7F02D184 +/* 05D9A4 7F028E74 02002025 */ move $a0, $s0 +/* 05D9A8 7F028E78 8FA2006C */ lw $v0, 0x6c($sp) +/* 05D9AC 7F028E7C 2419000F */ li $t9, 15 +/* 05D9B0 7F028E80 A2190007 */ sb $t9, 7($s0) +/* 05D9B4 7F028E84 C4440000 */ lwc1 $f4, ($v0) +/* 05D9B8 7F028E88 44805000 */ mtc1 $zero, $f10 +/* 05D9BC 7F028E8C E604002C */ swc1 $f4, 0x2c($s0) +/* 05D9C0 7F028E90 C4460004 */ lwc1 $f6, 4($v0) +/* 05D9C4 7F028E94 E6060030 */ swc1 $f6, 0x30($s0) +/* 05D9C8 7F028E98 C4480008 */ lwc1 $f8, 8($v0) +/* 05D9CC 7F028E9C E6080034 */ swc1 $f8, 0x34($s0) +/* 05D9D0 7F028EA0 8FA80070 */ lw $t0, 0x70($sp) +/* 05D9D4 7F028EA4 AE080038 */ sw $t0, 0x38($s0) +/* 05D9D8 7F028EA8 8FA9005C */ lw $t1, 0x5c($sp) +/* 05D9DC 7F028EAC A2000058 */ sb $zero, 0x58($s0) +/* 05D9E0 7F028EB0 AE09003C */ sw $t1, 0x3c($s0) +/* 05D9E4 7F028EB4 8FAA0074 */ lw $t2, 0x74($sp) +/* 05D9E8 7F028EB8 E60A00A0 */ swc1 $f10, 0xa0($s0) +/* 05D9EC 7F028EBC 0C002914 */ jal get_random_value +/* 05D9F0 7F028EC0 A20A0059 */ sb $t2, 0x59($s0) +/* 05D9F4 7F028EC4 24010064 */ li $at, 100 +/* 05D9F8 7F028EC8 0041001B */ divu $zero, $v0, $at +/* 05D9FC 7F028ECC 00005810 */ mfhi $t3 +/* 05DA00 7F028ED0 240CFFFF */ li $t4, -1 +/* 05DA04 7F028ED4 AE0B0084 */ sw $t3, 0x84($s0) +/* 05DA08 7F028ED8 A200005F */ sb $zero, 0x5f($s0) +/* 05DA0C 7F028EDC AE0C009C */ sw $t4, 0x9c($s0) +/* 05DA10 7F028EE0 8FAD0044 */ lw $t5, 0x44($sp) +/* 05DA14 7F028EE4 24050002 */ li $a1, 2 +/* 05DA18 7F028EE8 27A60044 */ addiu $a2, $sp, 0x44 +/* 05DA1C 7F028EEC AE0D0040 */ sw $t5, 0x40($s0) +/* 05DA20 7F028EF0 8FAE0048 */ lw $t6, 0x48($sp) +/* 05DA24 7F028EF4 00052080 */ sll $a0, $a1, 2 +/* 05DA28 7F028EF8 00C41821 */ addu $v1, $a2, $a0 +/* 05DA2C 7F028EFC AE0E0044 */ sw $t6, 0x44($s0) +/* 05DA30 7F028F00 8C6F0000 */ lw $t7, ($v1) +/* 05DA34 7F028F04 02041021 */ addu $v0, $s0, $a0 +/* 05DA38 7F028F08 02002025 */ move $a0, $s0 +/* 05DA3C 7F028F0C AC4F0040 */ sw $t7, 0x40($v0) +/* 05DA40 7F028F10 8C780004 */ lw $t8, 4($v1) +/* 05DA44 7F028F14 AC580044 */ sw $t8, 0x44($v0) +/* 05DA48 7F028F18 8C790008 */ lw $t9, 8($v1) +/* 05DA4C 7F028F1C AC590048 */ sw $t9, 0x48($v0) +/* 05DA50 7F028F20 8C68000C */ lw $t0, 0xc($v1) +/* 05DA54 7F028F24 0FC0A0A3 */ jal sub_GAME_7F02828C +/* 05DA58 7F028F28 AC48004C */ sw $t0, 0x4c($v0) +/* 05DA5C 7F028F2C A2000008 */ sb $zero, 8($s0) +/* 05DA60 7F028F30 8FA90028 */ lw $t1, 0x28($sp) +/* 05DA64 7F028F34 55200004 */ bnezl $t1, .L7F028F48 +/* 05DA68 7F028F38 02002025 */ move $a0, $s0 +/* 05DA6C 7F028F3C 0FC0A368 */ jal play_hit_soundeffect_and_proper_volume +/* 05DA70 7F028F40 02002025 */ move $a0, $s0 +/* 05DA74 7F028F44 02002025 */ move $a0, $s0 +.L7F028F48: +/* 05DA78 7F028F48 27A50034 */ addiu $a1, $sp, 0x34 +/* 05DA7C 7F028F4C 0FC09FC8 */ jal sub_GAME_7F027F20 +/* 05DA80 7F028F50 27A60030 */ addiu $a2, $sp, 0x30 +/* 05DA84 7F028F54 8FAA0064 */ lw $t2, 0x64($sp) +/* 05DA88 7F028F58 02002025 */ move $a0, $s0 +/* 05DA8C 7F028F5C 27A50034 */ addiu $a1, $sp, 0x34 +/* 05DA90 7F028F60 914B0001 */ lbu $t3, 1($t2) +/* 05DA94 7F028F64 316C0002 */ andi $t4, $t3, 2 +/* 05DA98 7F028F68 15800008 */ bnez $t4, .L7F028F8C +/* 05DA9C 7F028F6C 00000000 */ nop +/* 05DAA0 7F028F70 0FC09F6C */ jal sub_GAME_7F027DB0 +/* 05DAA4 7F028F74 8FA60030 */ lw $a2, 0x30($sp) +/* 05DAA8 7F028F78 10400004 */ beqz $v0, .L7F028F8C +/* 05DAAC 7F028F7C 02002025 */ move $a0, $s0 +/* 05DAB0 7F028F80 2605005C */ addiu $a1, $s0, 0x5c +/* 05DAB4 7F028F84 0FC09FA4 */ jal sub_GAME_7F027E90 +/* 05DAB8 7F028F88 27A60034 */ addiu $a2, $sp, 0x34 +.L7F028F8C: +/* 05DABC 7F028F8C 10000002 */ b .L7F028F98 +/* 05DAC0 7F028F90 24020001 */ li $v0, 1 +.L7F028F94: +/* 05DAC4 7F028F94 00001025 */ move $v0, $zero +.L7F028F98: +/* 05DAC8 7F028F98 8FBF001C */ lw $ra, 0x1c($sp) +/* 05DACC 7F028F9C 8FB00018 */ lw $s0, 0x18($sp) +/* 05DAD0 7F028FA0 27BD0068 */ addiu $sp, $sp, 0x68 +/* 05DAD4 7F028FA4 03E00008 */ jr $ra +/* 05DAD8 7F028FA8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F028FAC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F028FAC +/* 05DADC 7F028FAC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 05DAE0 7F028FB0 AFBF001C */ sw $ra, 0x1c($sp) +/* 05DAE4 7F028FB4 AFA40030 */ sw $a0, 0x30($sp) +/* 05DAE8 7F028FB8 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05DAEC 7F028FBC 24050001 */ li $a1, 1 +/* 05DAF0 7F028FC0 8FA40030 */ lw $a0, 0x30($sp) +/* 05DAF4 7F028FC4 00002825 */ move $a1, $zero +/* 05DAF8 7F028FC8 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05DAFC 7F028FCC AFA2002C */ sw $v0, 0x2c($sp) +/* 05DB00 7F028FD0 8FA7002C */ lw $a3, 0x2c($sp) +/* 05DB04 7F028FD4 00402825 */ move $a1, $v0 +/* 05DB08 7F028FD8 10E00003 */ beqz $a3, .L7F028FE8 +/* 05DB0C 7F028FDC 00000000 */ nop +/* 05DB10 7F028FE0 14400005 */ bnez $v0, .L7F028FF8 +/* 05DB14 7F028FE4 00000000 */ nop +.L7F028FE8: +/* 05DB18 7F028FE8 14E00008 */ bnez $a3, .L7F02900C +/* 05DB1C 7F028FEC 00E02025 */ move $a0, $a3 +/* 05DB20 7F028FF0 54400007 */ bnezl $v0, .L7F029010 +/* 05DB24 7F028FF4 AFA50028 */ sw $a1, 0x28($sp) +.L7F028FF8: +/* 05DB28 7F028FF8 0C002914 */ jal get_random_value +/* 05DB2C 7F028FFC AFA00020 */ sw $zero, 0x20($sp) +/* 05DB30 7F029000 8FA30020 */ lw $v1, 0x20($sp) +/* 05DB34 7F029004 10000011 */ b .L7F02904C +/* 05DB38 7F029008 30460001 */ andi $a2, $v0, 1 +.L7F02900C: +/* 05DB3C 7F02900C AFA50028 */ sw $a1, 0x28($sp) +.L7F029010: +/* 05DB40 7F029010 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05DB44 7F029014 AFA7002C */ sw $a3, 0x2c($sp) +/* 05DB48 7F029018 8FA50028 */ lw $a1, 0x28($sp) +/* 05DB4C 7F02901C 14400006 */ bnez $v0, .L7F029038 +/* 05DB50 7F029020 8FA7002C */ lw $a3, 0x2c($sp) +/* 05DB54 7F029024 00A02025 */ move $a0, $a1 +/* 05DB58 7F029028 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05DB5C 7F02902C AFA7002C */ sw $a3, 0x2c($sp) +/* 05DB60 7F029030 10400004 */ beqz $v0, .L7F029044 +/* 05DB64 7F029034 8FA7002C */ lw $a3, 0x2c($sp) +.L7F029038: +/* 05DB68 7F029038 00001825 */ move $v1, $zero +/* 05DB6C 7F02903C 10000003 */ b .L7F02904C +/* 05DB70 7F029040 0007302B */ sltu $a2, $zero, $a3 +.L7F029044: +/* 05DB74 7F029044 24030001 */ li $v1, 1 +/* 05DB78 7F029048 0007302B */ sltu $a2, $zero, $a3 +.L7F02904C: +/* 05DB7C 7F02904C 10600012 */ beqz $v1, .L7F029098 +/* 05DB80 7F029050 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05DB84 7F029054 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05DB88 7F029058 44812000 */ mtc1 $at, $f4 +/* 05DB8C 7F02905C 8FAE0030 */ lw $t6, 0x30($sp) +/* 05DB90 7F029060 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05DB94 7F029064 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 05DB98 7F029068 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 05DB9C 7F02906C 44813000 */ mtc1 $at, $f6 +/* 05DBA0 7F029070 3C180000 */ lui $t8, %hi(0x00004018) # $t8, 0 +/* 05DBA4 7F029074 27184018 */ addiu $t8, %lo(0x00004018) # addiu $t8, $t8, 0x4018 +/* 05DBA8 7F029078 8DC4001C */ lw $a0, 0x1c($t6) +/* 05DBAC 7F02907C 24070000 */ li $a3, 0 +/* 05DBB0 7F029080 E7A40010 */ swc1 $f4, 0x10($sp) +/* 05DBB4 7F029084 01F82821 */ addu $a1, $t7, $t8 +/* 05DBB8 7F029088 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05DBBC 7F02908C E7A60014 */ swc1 $f6, 0x14($sp) +/* 05DBC0 7F029090 10000016 */ b .L7F0290EC +/* 05DBC4 7F029094 8FBF001C */ lw $ra, 0x1c($sp) +.L7F029098: +/* 05DBC8 7F029098 44814000 */ mtc1 $at, $f8 +/* 05DBCC 7F02909C 3C018003 */ lui $at, %hi(D_80030984) +/* 05DBD0 7F0290A0 C42A0984 */ lwc1 $f10, %lo(D_80030984)($at) +/* 05DBD4 7F0290A4 3C018003 */ lui $at, %hi(D_80030990) +/* 05DBD8 7F0290A8 C4320990 */ lwc1 $f18, %lo(D_80030990)($at) +/* 05DBDC 7F0290AC 460A4402 */ mul.s $f16, $f8, $f10 +/* 05DBE0 7F0290B0 8FB90030 */ lw $t9, 0x30($sp) +/* 05DBE4 7F0290B4 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05DBE8 7F0290B8 3C088007 */ lui $t0, %hi(ptr_animation_table) +/* 05DBEC 7F0290BC 8D089538 */ lw $t0, %lo(ptr_animation_table)($t0) +/* 05DBF0 7F0290C0 44812000 */ mtc1 $at, $f4 +/* 05DBF4 7F0290C4 3C090001 */ lui $t1, %hi(0x00008204) # $t1, 1 +/* 05DBF8 7F0290C8 46128003 */ div.s $f0, $f16, $f18 +/* 05DBFC 7F0290CC 25298204 */ addiu $t1, %lo(0x00008204) # addiu $t1, $t1, -0x7dfc +/* 05DC00 7F0290D0 8F24001C */ lw $a0, 0x1c($t9) +/* 05DC04 7F0290D4 24070000 */ li $a3, 0 +/* 05DC08 7F0290D8 01092821 */ addu $a1, $t0, $t1 +/* 05DC0C 7F0290DC E7A40014 */ swc1 $f4, 0x14($sp) +/* 05DC10 7F0290E0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05DC14 7F0290E4 E7A00010 */ swc1 $f0, 0x10($sp) +/* 05DC18 7F0290E8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0290EC: +/* 05DC1C 7F0290EC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 05DC20 7F0290F0 03E00008 */ jr $ra +/* 05DC24 7F0290F4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void set_actor_on_path(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DF8 +.word 0x461c4000 /*10000.0*/ +.text +glabel set_actor_on_path +/* 05DC28 7F0290F8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05DC2C 7F0290FC AFBF001C */ sw $ra, 0x1c($sp) +/* 05DC30 7F029100 AFB00018 */ sw $s0, 0x18($sp) +/* 05DC34 7F029104 AFA5002C */ sw $a1, 0x2c($sp) +/* 05DC38 7F029108 8CA80000 */ lw $t0, ($a1) +/* 05DC3C 7F02910C 00808025 */ move $s0, $a0 +/* 05DC40 7F029110 240CFFFF */ li $t4, -1 +/* 05DC44 7F029114 8D0F0000 */ lw $t7, ($t0) +/* 05DC48 7F029118 8C870018 */ lw $a3, 0x18($a0) +/* 05DC4C 7F02911C 00003025 */ move $a2, $zero +/* 05DC50 7F029120 05E0002C */ bltz $t7, .L7F0291D4 +/* 05DC54 7F029124 3C098007 */ lui $t1, %hi(ptr_setup_path_tbl) +/* 05DC58 7F029128 3C0A8007 */ lui $t2, %hi(ptr_0xxxpresets) +/* 05DC5C 7F02912C 3C018005 */ lui $at, %hi(D_80051DF8) +/* 05DC60 7F029130 C42C1DF8 */ lwc1 $f12, %lo(D_80051DF8)($at) +/* 05DC64 7F029134 8D4A5D18 */ lw $t2, %lo(ptr_0xxxpresets)($t2) +/* 05DC68 7F029138 8D295D00 */ lw $t1, %lo(ptr_setup_path_tbl)($t1) +/* 05DC6C 7F02913C 240B002C */ li $t3, 44 +/* 05DC70 7F029140 0006C080 */ sll $t8, $a2, 2 +.L7F029144: +/* 05DC74 7F029144 01181021 */ addu $v0, $t0, $t8 +/* 05DC78 7F029148 8C590000 */ lw $t9, ($v0) +/* 05DC7C 7F02914C 00196900 */ sll $t5, $t9, 4 +/* 05DC80 7F029150 01A91821 */ addu $v1, $t5, $t1 +/* 05DC84 7F029154 8C6E0000 */ lw $t6, ($v1) +/* 05DC88 7F029158 01CB0019 */ multu $t6, $t3 +/* 05DC8C 7F02915C 00007812 */ mflo $t7 +/* 05DC90 7F029160 01EA2021 */ addu $a0, $t7, $t2 +/* 05DC94 7F029164 8C850028 */ lw $a1, 0x28($a0) +/* 05DC98 7F029168 50A00015 */ beql $a1, $zero, .L7F0291C0 +/* 05DC9C 7F02916C 24C60001 */ addiu $a2, $a2, 1 +/* 05DCA0 7F029170 8CF80014 */ lw $t8, 0x14($a3) +/* 05DCA4 7F029174 57050012 */ bnel $t8, $a1, .L7F0291C0 +/* 05DCA8 7F029178 24C60001 */ addiu $a2, $a2, 1 +/* 05DCAC 7F02917C C4840000 */ lwc1 $f4, ($a0) +/* 05DCB0 7F029180 C4E60008 */ lwc1 $f6, 8($a3) +/* 05DCB4 7F029184 C4880008 */ lwc1 $f8, 8($a0) +/* 05DCB8 7F029188 C4EA0010 */ lwc1 $f10, 0x10($a3) +/* 05DCBC 7F02918C 46062001 */ sub.s $f0, $f4, $f6 +/* 05DCC0 7F029190 460A4081 */ sub.s $f2, $f8, $f10 +/* 05DCC4 7F029194 46000402 */ mul.s $f16, $f0, $f0 +/* 05DCC8 7F029198 00000000 */ nop +/* 05DCCC 7F02919C 46021482 */ mul.s $f18, $f2, $f2 +/* 05DCD0 7F0291A0 46128100 */ add.s $f4, $f16, $f18 +/* 05DCD4 7F0291A4 460C203C */ c.lt.s $f4, $f12 +/* 05DCD8 7F0291A8 00000000 */ nop +/* 05DCDC 7F0291AC 45000003 */ bc1f .L7F0291BC +/* 05DCE0 7F0291B0 00000000 */ nop +/* 05DCE4 7F0291B4 10000007 */ b .L7F0291D4 +/* 05DCE8 7F0291B8 00C06025 */ move $t4, $a2 +.L7F0291BC: +/* 05DCEC 7F0291BC 24C60001 */ addiu $a2, $a2, 1 +.L7F0291C0: +/* 05DCF0 7F0291C0 0006C880 */ sll $t9, $a2, 2 +/* 05DCF4 7F0291C4 01196821 */ addu $t5, $t0, $t9 +/* 05DCF8 7F0291C8 8DAE0000 */ lw $t6, ($t5) +/* 05DCFC 7F0291CC 05C3FFDD */ bgezl $t6, .L7F029144 +/* 05DD00 7F0291D0 0006C080 */ sll $t8, $a2, 2 +.L7F0291D4: +/* 05DD04 7F0291D4 05810002 */ bgez $t4, .L7F0291E0 +/* 05DD08 7F0291D8 02002025 */ move $a0, $s0 +/* 05DD0C 7F0291DC 00006025 */ move $t4, $zero +.L7F0291E0: +/* 05DD10 7F0291E0 0FC0B461 */ jal sub_GAME_7F02D184 +/* 05DD14 7F0291E4 AFAC0020 */ sw $t4, 0x20($sp) +/* 05DD18 7F0291E8 8FAC0020 */ lw $t4, 0x20($sp) +/* 05DD1C 7F0291EC 240F000E */ li $t7, 14 +/* 05DD20 7F0291F0 A20F0007 */ sb $t7, 7($s0) +/* 05DD24 7F0291F4 8FB8002C */ lw $t8, 0x2c($sp) +/* 05DD28 7F0291F8 24190001 */ li $t9, 1 +/* 05DD2C 7F0291FC AE190034 */ sw $t9, 0x34($s0) +/* 05DD30 7F029200 AE0C0030 */ sw $t4, 0x30($s0) +/* 05DD34 7F029204 0C002914 */ jal get_random_value +/* 05DD38 7F029208 AE18002C */ sw $t8, 0x2c($s0) +/* 05DD3C 7F02920C 24010064 */ li $at, 100 +/* 05DD40 7F029210 0041001B */ divu $zero, $v0, $at +/* 05DD44 7F029214 44803000 */ mtc1 $zero, $f6 +/* 05DD48 7F029218 00006810 */ mfhi $t5 +/* 05DD4C 7F02921C 240EFFFF */ li $t6, -1 +/* 05DD50 7F029220 AE0D0060 */ sw $t5, 0x60($s0) +/* 05DD54 7F029224 A200003B */ sb $zero, 0x3b($s0) +/* 05DD58 7F029228 AE0E0078 */ sw $t6, 0x78($s0) +/* 05DD5C 7F02922C 02002025 */ move $a0, $s0 +/* 05DD60 7F029230 0FC0A125 */ jal sub_GAME_7F028494 +/* 05DD64 7F029234 E606007C */ swc1 $f6, 0x7c($s0) +/* 05DD68 7F029238 A2000008 */ sb $zero, 8($s0) +/* 05DD6C 7F02923C 0FC0A3EB */ jal sub_GAME_7F028FAC +/* 05DD70 7F029240 02002025 */ move $a0, $s0 +/* 05DD74 7F029244 0FC0A11D */ jal sub_GAME_7F028474 +/* 05DD78 7F029248 02002025 */ move $a0, $s0 +/* 05DD7C 7F02924C 8E0F0018 */ lw $t7, 0x18($s0) +/* 05DD80 7F029250 02002025 */ move $a0, $s0 +/* 05DD84 7F029254 00402825 */ move $a1, $v0 +/* 05DD88 7F029258 91F80001 */ lbu $t8, 1($t7) +/* 05DD8C 7F02925C 33190002 */ andi $t9, $t8, 2 +/* 05DD90 7F029260 57200009 */ bnezl $t9, .L7F029288 +/* 05DD94 7F029264 8FBF001C */ lw $ra, 0x1c($sp) +/* 05DD98 7F029268 0FC09F9C */ jal sub_GAME_7F027E70 +/* 05DD9C 7F02926C AFA20024 */ sw $v0, 0x24($sp) +/* 05DDA0 7F029270 10400004 */ beqz $v0, .L7F029284 +/* 05DDA4 7F029274 8FA60024 */ lw $a2, 0x24($sp) +/* 05DDA8 7F029278 02002025 */ move $a0, $s0 +/* 05DDAC 7F02927C 0FC09FA4 */ jal sub_GAME_7F027E90 +/* 05DDB0 7F029280 26050038 */ addiu $a1, $s0, 0x38 +.L7F029284: +/* 05DDB4 7F029284 8FBF001C */ lw $ra, 0x1c($sp) +.L7F029288: +/* 05DDB8 7F029288 8FB00018 */ lw $s0, 0x18($sp) +/* 05DDBC 7F02928C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05DDC0 7F029290 03E00008 */ jr $ra +/* 05DDC4 7F029294 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void update_GUARDdata_timer_to_current(void) { + +} +#else +GLOBAL_ASM( +.text +glabel update_GUARDdata_timer_to_current +/* 05DDC8 7F029298 3C0E8005 */ lui $t6, %hi(global_timer) +/* 05DDCC 7F02929C 8DCE837C */ lw $t6, %lo(global_timer)($t6) +/* 05DDD0 7F0292A0 03E00008 */ jr $ra +/* 05DDD4 7F0292A4 AC8E00E8 */ sw $t6, 0xe8($a0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0292A8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0292A8 +/* 05DDD8 7F0292A8 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 05DDDC 7F0292AC 240E0001 */ li $t6, 1 +/* 05DDE0 7F0292B0 AFBF0034 */ sw $ra, 0x34($sp) +/* 05DDE4 7F0292B4 AFB00030 */ sw $s0, 0x30($sp) +/* 05DDE8 7F0292B8 AFA60058 */ sw $a2, 0x58($sp) +/* 05DDEC 7F0292BC AFA0004C */ sw $zero, 0x4c($sp) +/* 05DDF0 7F0292C0 AFAE0048 */ sw $t6, 0x48($sp) +/* 05DDF4 7F0292C4 808F0007 */ lb $t7, 7($a0) +/* 05DDF8 7F0292C8 24010008 */ li $at, 8 +/* 05DDFC 7F0292CC 00A08025 */ move $s0, $a1 +/* 05DE00 7F0292D0 15E10003 */ bne $t7, $at, .L7F0292E0 +/* 05DE04 7F0292D4 24090001 */ li $t1, 1 +/* 05DE08 7F0292D8 8C98004C */ lw $t8, 0x4c($a0) +/* 05DE0C 7F0292DC AFB80048 */ sw $t8, 0x48($sp) +.L7F0292E0: +/* 05DE10 7F0292E0 8FB90048 */ lw $t9, 0x48($sp) +/* 05DE14 7F0292E4 8FAA0058 */ lw $t2, 0x58($sp) +/* 05DE18 7F0292E8 27A70040 */ addiu $a3, $sp, 0x40 +/* 05DE1C 7F0292EC 33280002 */ andi $t0, $t9, 2 +/* 05DE20 7F0292F0 51000004 */ beql $t0, $zero, .L7F029304 +/* 05DE24 7F0292F4 AFAA0044 */ sw $t2, 0x44($sp) +/* 05DE28 7F0292F8 1000006B */ b .L7F0294A8 +/* 05DE2C 7F0292FC AFA9004C */ sw $t1, 0x4c($sp) +/* 05DE30 7F029300 AFAA0044 */ sw $t2, 0x44($sp) +.L7F029304: +/* 05DE34 7F029304 8C860050 */ lw $a2, 0x50($a0) +/* 05DE38 7F029308 AFA40050 */ sw $a0, 0x50($sp) +/* 05DE3C 7F02930C 0FC0CB1E */ jal sub_GAME_7F032C78 +/* 05DE40 7F029310 8FA50048 */ lw $a1, 0x48($sp) +/* 05DE44 7F029314 8FA40050 */ lw $a0, 0x50($sp) +/* 05DE48 7F029318 00002825 */ move $a1, $zero +/* 05DE4C 7F02931C 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05DE50 7F029320 AFA2003C */ sw $v0, 0x3c($sp) +/* 05DE54 7F029324 8FA20048 */ lw $v0, 0x48($sp) +/* 05DE58 7F029328 8FA3003C */ lw $v1, 0x3c($sp) +/* 05DE5C 7F02932C 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 05DE60 7F029330 304B0001 */ andi $t3, $v0, 1 +/* 05DE64 7F029334 11600029 */ beqz $t3, .L7F0293DC +/* 05DE68 7F029338 30480004 */ andi $t0, $v0, 4 +/* 05DE6C 7F02933C 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 05DE70 7F029340 00002825 */ move $a1, $zero +/* 05DE74 7F029344 8D8400A8 */ lw $a0, 0xa8($t4) +/* 05DE78 7F029348 0FC2280F */ jal sub_GAME_7F08A03C +/* 05DE7C 7F02934C AFA3003C */ sw $v1, 0x3c($sp) +/* 05DE80 7F029350 0FC227DD */ jal get_invisible_to_guards_flag +/* 05DE84 7F029354 00000000 */ nop +/* 05DE88 7F029358 10400019 */ beqz $v0, .L7F0293C0 +/* 05DE8C 7F02935C 8FA3003C */ lw $v1, 0x3c($sp) +/* 05DE90 7F029360 C4640008 */ lwc1 $f4, 8($v1) +/* 05DE94 7F029364 8E050000 */ lw $a1, ($s0) +/* 05DE98 7F029368 8E060008 */ lw $a2, 8($s0) +/* 05DE9C 7F02936C 8C670000 */ lw $a3, ($v1) +/* 05DEA0 7F029370 240D011B */ li $t5, 283 +/* 05DEA4 7F029374 AFAD0014 */ sw $t5, 0x14($sp) +/* 05DEA8 7F029378 E7A40010 */ swc1 $f4, 0x10($sp) +/* 05DEAC 7F02937C C6000004 */ lwc1 $f0, 4($s0) +/* 05DEB0 7F029380 27A40044 */ addiu $a0, $sp, 0x44 +/* 05DEB4 7F029384 E7A00018 */ swc1 $f0, 0x18($sp) +/* 05DEB8 7F029388 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 05DEBC 7F02938C C4620004 */ lwc1 $f2, 4($v1) +/* 05DEC0 7F029390 E7A20020 */ swc1 $f2, 0x20($sp) +/* 05DEC4 7F029394 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05DEC8 7F029398 E7A20024 */ swc1 $f2, 0x24($sp) +/* 05DECC 7F02939C 10400008 */ beqz $v0, .L7F0293C0 +/* 05DED0 7F0293A0 8FAE0044 */ lw $t6, 0x44($sp) +/* 05DED4 7F0293A4 8FAF0040 */ lw $t7, 0x40($sp) +/* 05DED8 7F0293A8 15CF0005 */ bne $t6, $t7, .L7F0293C0 +/* 05DEDC 7F0293AC 00000000 */ nop +/* 05DEE0 7F0293B0 0FC0A4A6 */ jal update_GUARDdata_timer_to_current +/* 05DEE4 7F0293B4 8FA40050 */ lw $a0, 0x50($sp) +/* 05DEE8 7F0293B8 24180001 */ li $t8, 1 +/* 05DEEC 7F0293BC AFB8004C */ sw $t8, 0x4c($sp) +.L7F0293C0: +/* 05DEF0 7F0293C0 3C198008 */ lui $t9, %hi(pPlayer) +/* 05DEF4 7F0293C4 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 05DEF8 7F0293C8 24050001 */ li $a1, 1 +/* 05DEFC 7F0293CC 0FC2280F */ jal sub_GAME_7F08A03C +/* 05DF00 7F0293D0 8F2400A8 */ lw $a0, 0xa8($t9) +/* 05DF04 7F0293D4 10000032 */ b .L7F0294A0 +/* 05DF08 7F0293D8 8FA40050 */ lw $a0, 0x50($sp) +.L7F0293DC: +/* 05DF0C 7F0293DC 11000018 */ beqz $t0, .L7F029440 +/* 05DF10 7F0293E0 304D0008 */ andi $t5, $v0, 8 +/* 05DF14 7F0293E4 C4660008 */ lwc1 $f6, 8($v1) +/* 05DF18 7F0293E8 8E050000 */ lw $a1, ($s0) +/* 05DF1C 7F0293EC 8E060008 */ lw $a2, 8($s0) +/* 05DF20 7F0293F0 8C670000 */ lw $a3, ($v1) +/* 05DF24 7F0293F4 24090117 */ li $t1, 279 +/* 05DF28 7F0293F8 AFA90014 */ sw $t1, 0x14($sp) +/* 05DF2C 7F0293FC E7A60010 */ swc1 $f6, 0x10($sp) +/* 05DF30 7F029400 C6000004 */ lwc1 $f0, 4($s0) +/* 05DF34 7F029404 27A40044 */ addiu $a0, $sp, 0x44 +/* 05DF38 7F029408 E7A00018 */ swc1 $f0, 0x18($sp) +/* 05DF3C 7F02940C E7A0001C */ swc1 $f0, 0x1c($sp) +/* 05DF40 7F029410 C4620004 */ lwc1 $f2, 4($v1) +/* 05DF44 7F029414 E7A20020 */ swc1 $f2, 0x20($sp) +/* 05DF48 7F029418 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05DF4C 7F02941C E7A20024 */ swc1 $f2, 0x24($sp) +/* 05DF50 7F029420 1040001E */ beqz $v0, .L7F02949C +/* 05DF54 7F029424 8FAA0044 */ lw $t2, 0x44($sp) +/* 05DF58 7F029428 8FAB0040 */ lw $t3, 0x40($sp) +/* 05DF5C 7F02942C 240C0001 */ li $t4, 1 +/* 05DF60 7F029430 554B001B */ bnel $t2, $t3, .L7F0294A0 +/* 05DF64 7F029434 8FA40050 */ lw $a0, 0x50($sp) +/* 05DF68 7F029438 10000018 */ b .L7F02949C +/* 05DF6C 7F02943C AFAC004C */ sw $t4, 0x4c($sp) +.L7F029440: +/* 05DF70 7F029440 11A00016 */ beqz $t5, .L7F02949C +/* 05DF74 7F029444 240E011F */ li $t6, 287 +/* 05DF78 7F029448 C4680008 */ lwc1 $f8, 8($v1) +/* 05DF7C 7F02944C 8E050000 */ lw $a1, ($s0) +/* 05DF80 7F029450 8E060008 */ lw $a2, 8($s0) +/* 05DF84 7F029454 8C670000 */ lw $a3, ($v1) +/* 05DF88 7F029458 AFAE0014 */ sw $t6, 0x14($sp) +/* 05DF8C 7F02945C E7A80010 */ swc1 $f8, 0x10($sp) +/* 05DF90 7F029460 C6000004 */ lwc1 $f0, 4($s0) +/* 05DF94 7F029464 27A40044 */ addiu $a0, $sp, 0x44 +/* 05DF98 7F029468 E7A00018 */ swc1 $f0, 0x18($sp) +/* 05DF9C 7F02946C E7A0001C */ swc1 $f0, 0x1c($sp) +/* 05DFA0 7F029470 C4620004 */ lwc1 $f2, 4($v1) +/* 05DFA4 7F029474 E7A20020 */ swc1 $f2, 0x20($sp) +/* 05DFA8 7F029478 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05DFAC 7F02947C E7A20024 */ swc1 $f2, 0x24($sp) +/* 05DFB0 7F029480 10400006 */ beqz $v0, .L7F02949C +/* 05DFB4 7F029484 8FAF0044 */ lw $t7, 0x44($sp) +/* 05DFB8 7F029488 8FB80040 */ lw $t8, 0x40($sp) +/* 05DFBC 7F02948C 24190001 */ li $t9, 1 +/* 05DFC0 7F029490 55F80003 */ bnel $t7, $t8, .L7F0294A0 +/* 05DFC4 7F029494 8FA40050 */ lw $a0, 0x50($sp) +/* 05DFC8 7F029498 AFB9004C */ sw $t9, 0x4c($sp) +.L7F02949C: +/* 05DFCC 7F02949C 8FA40050 */ lw $a0, 0x50($sp) +.L7F0294A0: +/* 05DFD0 7F0294A0 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05DFD4 7F0294A4 24050001 */ li $a1, 1 +.L7F0294A8: +/* 05DFD8 7F0294A8 8FBF0034 */ lw $ra, 0x34($sp) +/* 05DFDC 7F0294AC 8FA2004C */ lw $v0, 0x4c($sp) +/* 05DFE0 7F0294B0 8FB00030 */ lw $s0, 0x30($sp) +/* 05DFE4 7F0294B4 03E00008 */ jr $ra +/* 05DFE8 7F0294B8 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0294BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0294BC +/* 05DFEC 7F0294BC 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 05DFF0 7F0294C0 AFBF0034 */ sw $ra, 0x34($sp) +/* 05DFF4 7F0294C4 AFB00030 */ sw $s0, 0x30($sp) +/* 05DFF8 7F0294C8 00808025 */ move $s0, $a0 +/* 05DFFC 7F0294CC 0FC227DD */ jal get_invisible_to_guards_flag +/* 05E000 7F0294D0 AFA0004C */ sw $zero, 0x4c($sp) +/* 05E004 7F0294D4 5040003A */ beql $v0, $zero, .L7F0295C0 +/* 05E008 7F0294D8 8FBF0034 */ lw $ra, 0x34($sp) +/* 05E00C 7F0294DC 8E0E0018 */ lw $t6, 0x18($s0) +/* 05E010 7F0294E0 0FC225E6 */ jal get_curplayer_positiondata +/* 05E014 7F0294E4 AFAE0048 */ sw $t6, 0x48($sp) +/* 05E018 7F0294E8 AFA20044 */ sw $v0, 0x44($sp) +/* 05E01C 7F0294EC 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 05E020 7F0294F0 44813000 */ mtc1 $at, $f6 +/* 05E024 7F0294F4 C6040028 */ lwc1 $f4, 0x28($s0) +/* 05E028 7F0294F8 02002025 */ move $a0, $s0 +/* 05E02C 7F0294FC 00002825 */ move $a1, $zero +/* 05E030 7F029500 46062201 */ sub.s $f8, $f4, $f6 +/* 05E034 7F029504 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05E038 7F029508 E7A8003C */ swc1 $f8, 0x3c($sp) +/* 05E03C 7F02950C 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 05E040 7F029510 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 05E044 7F029514 00002825 */ move $a1, $zero +/* 05E048 7F029518 0FC2280F */ jal sub_GAME_7F08A03C +/* 05E04C 7F02951C 8DE400A8 */ lw $a0, 0xa8($t7) +/* 05E050 7F029520 8FA20048 */ lw $v0, 0x48($sp) +/* 05E054 7F029524 8FA30044 */ lw $v1, 0x44($sp) +/* 05E058 7F029528 C7A0003C */ lwc1 $f0, 0x3c($sp) +/* 05E05C 7F02952C 8C580014 */ lw $t8, 0x14($v0) +/* 05E060 7F029530 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05E064 7F029534 44819000 */ mtc1 $at, $f18 +/* 05E068 7F029538 AFB80040 */ sw $t8, 0x40($sp) +/* 05E06C 7F02953C C46A0010 */ lwc1 $f10, 0x10($v1) +/* 05E070 7F029540 8C460010 */ lw $a2, 0x10($v0) +/* 05E074 7F029544 8C450008 */ lw $a1, 8($v0) +/* 05E078 7F029548 8C670008 */ lw $a3, 8($v1) +/* 05E07C 7F02954C 44808000 */ mtc1 $zero, $f16 +/* 05E080 7F029550 2419011B */ li $t9, 283 +/* 05E084 7F029554 AFB90014 */ sw $t9, 0x14($sp) +/* 05E088 7F029558 27A40040 */ addiu $a0, $sp, 0x40 +/* 05E08C 7F02955C E7A0001C */ swc1 $f0, 0x1c($sp) +/* 05E090 7F029560 E7A00018 */ swc1 $f0, 0x18($sp) +/* 05E094 7F029564 E7B20024 */ swc1 $f18, 0x24($sp) +/* 05E098 7F029568 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 05E09C 7F02956C 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05E0A0 7F029570 E7B00020 */ swc1 $f16, 0x20($sp) +/* 05E0A4 7F029574 10400009 */ beqz $v0, .L7F02959C +/* 05E0A8 7F029578 8FA90044 */ lw $t1, 0x44($sp) +/* 05E0AC 7F02957C 8FA80040 */ lw $t0, 0x40($sp) +/* 05E0B0 7F029580 8D2A0014 */ lw $t2, 0x14($t1) +/* 05E0B4 7F029584 550A0006 */ bnel $t0, $t2, .L7F0295A0 +/* 05E0B8 7F029588 02002025 */ move $a0, $s0 +/* 05E0BC 7F02958C 0FC0A4A6 */ jal update_GUARDdata_timer_to_current +/* 05E0C0 7F029590 02002025 */ move $a0, $s0 +/* 05E0C4 7F029594 240B0001 */ li $t3, 1 +/* 05E0C8 7F029598 AFAB004C */ sw $t3, 0x4c($sp) +.L7F02959C: +/* 05E0CC 7F02959C 02002025 */ move $a0, $s0 +.L7F0295A0: +/* 05E0D0 7F0295A0 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05E0D4 7F0295A4 24050001 */ li $a1, 1 +/* 05E0D8 7F0295A8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 05E0DC 7F0295AC 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 05E0E0 7F0295B0 24050001 */ li $a1, 1 +/* 05E0E4 7F0295B4 0FC2280F */ jal sub_GAME_7F08A03C +/* 05E0E8 7F0295B8 8D8400A8 */ lw $a0, 0xa8($t4) +/* 05E0EC 7F0295BC 8FBF0034 */ lw $ra, 0x34($sp) +.L7F0295C0: +/* 05E0F0 7F0295C0 8FA2004C */ lw $v0, 0x4c($sp) +/* 05E0F4 7F0295C4 8FB00030 */ lw $s0, 0x30($sp) +/* 05E0F8 7F0295C8 03E00008 */ jr $ra +/* 05E0FC 7F0295CC 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + +#ifdef NONMATCHING +void check_if_position_in_same_room(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_position_in_same_room +/* 05E100 7F0295D0 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 05E104 7F0295D4 AFBF002C */ sw $ra, 0x2c($sp) +/* 05E108 7F0295D8 AFA50044 */ sw $a1, 0x44($sp) +/* 05E10C 7F0295DC AFA60048 */ sw $a2, 0x48($sp) +/* 05E110 7F0295E0 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 05E114 7F0295E4 44813000 */ mtc1 $at, $f6 +/* 05E118 7F0295E8 C4840028 */ lwc1 $f4, 0x28($a0) +/* 05E11C 7F0295EC 8C820018 */ lw $v0, 0x18($a0) +/* 05E120 7F0295F0 AFA00030 */ sw $zero, 0x30($sp) +/* 05E124 7F0295F4 46062001 */ sub.s $f0, $f4, $f6 +/* 05E128 7F0295F8 AFA40040 */ sw $a0, 0x40($sp) +/* 05E12C 7F0295FC 00002825 */ move $a1, $zero +/* 05E130 7F029600 AFA2003C */ sw $v0, 0x3c($sp) +/* 05E134 7F029604 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05E138 7F029608 E7A00034 */ swc1 $f0, 0x34($sp) +/* 05E13C 7F02960C 8FA2003C */ lw $v0, 0x3c($sp) +/* 05E140 7F029610 8FA30044 */ lw $v1, 0x44($sp) +/* 05E144 7F029614 C7A00034 */ lwc1 $f0, 0x34($sp) +/* 05E148 7F029618 8C4E0014 */ lw $t6, 0x14($v0) +/* 05E14C 7F02961C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05E150 7F029620 44818000 */ mtc1 $at, $f16 +/* 05E154 7F029624 AFAE0038 */ sw $t6, 0x38($sp) +/* 05E158 7F029628 C4680008 */ lwc1 $f8, 8($v1) +/* 05E15C 7F02962C 8C460010 */ lw $a2, 0x10($v0) +/* 05E160 7F029630 8C450008 */ lw $a1, 8($v0) +/* 05E164 7F029634 8C670000 */ lw $a3, ($v1) +/* 05E168 7F029638 44805000 */ mtc1 $zero, $f10 +/* 05E16C 7F02963C 240F0113 */ li $t7, 275 +/* 05E170 7F029640 AFAF0014 */ sw $t7, 0x14($sp) +/* 05E174 7F029644 27A40038 */ addiu $a0, $sp, 0x38 +/* 05E178 7F029648 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 05E17C 7F02964C E7A00018 */ swc1 $f0, 0x18($sp) +/* 05E180 7F029650 E7B00024 */ swc1 $f16, 0x24($sp) +/* 05E184 7F029654 E7A80010 */ swc1 $f8, 0x10($sp) +/* 05E188 7F029658 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05E18C 7F02965C E7AA0020 */ swc1 $f10, 0x20($sp) +/* 05E190 7F029660 10400007 */ beqz $v0, .L7F029680 +/* 05E194 7F029664 24050001 */ li $a1, 1 +/* 05E198 7F029668 8FB80038 */ lw $t8, 0x38($sp) +/* 05E19C 7F02966C 8FB90048 */ lw $t9, 0x48($sp) +/* 05E1A0 7F029670 24080001 */ li $t0, 1 +/* 05E1A4 7F029674 17190002 */ bne $t8, $t9, .L7F029680 +/* 05E1A8 7F029678 00000000 */ nop +/* 05E1AC 7F02967C AFA80030 */ sw $t0, 0x30($sp) +.L7F029680: +/* 05E1B0 7F029680 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05E1B4 7F029684 8FA40040 */ lw $a0, 0x40($sp) +/* 05E1B8 7F029688 8FBF002C */ lw $ra, 0x2c($sp) +/* 05E1BC 7F02968C 8FA20030 */ lw $v0, 0x30($sp) +/* 05E1C0 7F029690 27BD0040 */ addiu $sp, $sp, 0x40 +/* 05E1C4 7F029694 03E00008 */ jr $ra +/* 05E1C8 7F029698 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02969C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051DFC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051E00 +.word 0x3fdf66f3 /*1.7453293*/ +glabel D_80051E04 +.word 0x4091361e /*4.5378561*/ +.text +glabel sub_GAME_7F02969C +/* 05E1CC 7F02969C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 05E1D0 7F0296A0 AFBF0014 */ sw $ra, 0x14($sp) +/* 05E1D4 7F0296A4 AFA40020 */ sw $a0, 0x20($sp) +/* 05E1D8 7F0296A8 AFA50024 */ sw $a1, 0x24($sp) +/* 05E1DC 7F0296AC AFA60028 */ sw $a2, 0x28($sp) +/* 05E1E0 7F0296B0 0FC1B320 */ jal getsubroty +/* 05E1E4 7F0296B4 8C84001C */ lw $a0, 0x1c($a0) +/* 05E1E8 7F0296B8 8FAF0020 */ lw $t7, 0x20($sp) +/* 05E1EC 7F0296BC 8FA30024 */ lw $v1, 0x24($sp) +/* 05E1F0 7F0296C0 8DE20018 */ lw $v0, 0x18($t7) +/* 05E1F4 7F0296C4 C4640000 */ lwc1 $f4, ($v1) +/* 05E1F8 7F0296C8 C4680008 */ lwc1 $f8, 8($v1) +/* 05E1FC 7F0296CC C4460008 */ lwc1 $f6, 8($v0) +/* 05E200 7F0296D0 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 05E204 7F0296D4 E7A00018 */ swc1 $f0, 0x18($sp) +/* 05E208 7F0296D8 46062301 */ sub.s $f12, $f4, $f6 +/* 05E20C 7F0296DC 0FC16A8C */ jal atan2f +/* 05E210 7F0296E0 460A4381 */ sub.s $f14, $f8, $f10 +/* 05E214 7F0296E4 C7B00018 */ lwc1 $f16, 0x18($sp) +/* 05E218 7F0296E8 3C018005 */ lui $at, %hi(D_80051DFC) +/* 05E21C 7F0296EC 8FA40020 */ lw $a0, 0x20($sp) +/* 05E220 7F0296F0 4610003C */ c.lt.s $f0, $f16 +/* 05E224 7F0296F4 8FA50024 */ lw $a1, 0x24($sp) +/* 05E228 7F0296F8 46100301 */ sub.s $f12, $f0, $f16 +/* 05E22C 7F0296FC 45000003 */ bc1f .L7F02970C +/* 05E230 7F029700 46006086 */ mov.s $f2, $f12 +/* 05E234 7F029704 C4321DFC */ lwc1 $f18, %lo(D_80051DFC)($at) +/* 05E238 7F029708 46126080 */ add.s $f2, $f12, $f18 +.L7F02970C: +/* 05E23C 7F02970C 3C018005 */ lui $at, %hi(D_80051E00) +/* 05E240 7F029710 C4241E00 */ lwc1 $f4, %lo(D_80051E00)($at) +/* 05E244 7F029714 3C018005 */ lui $at, %hi(D_80051E04) +/* 05E248 7F029718 4604103C */ c.lt.s $f2, $f4 +/* 05E24C 7F02971C 00000000 */ nop +/* 05E250 7F029720 45010007 */ bc1t .L7F029740 +/* 05E254 7F029724 00000000 */ nop +/* 05E258 7F029728 C4261E04 */ lwc1 $f6, %lo(D_80051E04)($at) +/* 05E25C 7F02972C 00001025 */ move $v0, $zero +/* 05E260 7F029730 4602303C */ c.lt.s $f6, $f2 +/* 05E264 7F029734 00000000 */ nop +/* 05E268 7F029738 45000005 */ bc1f .L7F029750 +/* 05E26C 7F02973C 00000000 */ nop +.L7F029740: +/* 05E270 7F029740 0FC0A574 */ jal check_if_position_in_same_room +/* 05E274 7F029744 8FA60028 */ lw $a2, 0x28($sp) +/* 05E278 7F029748 10000002 */ b .L7F029754 +/* 05E27C 7F02974C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F029750: +/* 05E280 7F029750 8FBF0014 */ lw $ra, 0x14($sp) +.L7F029754: +/* 05E284 7F029754 27BD0020 */ addiu $sp, $sp, 0x20 +/* 05E288 7F029758 03E00008 */ jr $ra +/* 05E28C 7F02975C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F029760(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F029760 +/* 05E290 7F029760 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 05E294 7F029764 AFBF002C */ sw $ra, 0x2c($sp) +/* 05E298 7F029768 8C8E0018 */ lw $t6, 0x18($a0) +/* 05E29C 7F02976C 0FC225E6 */ jal get_curplayer_positiondata +/* 05E2A0 7F029770 AFAE003C */ sw $t6, 0x3c($sp) +/* 05E2A4 7F029774 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 05E2A8 7F029778 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 05E2AC 7F02977C AFA00030 */ sw $zero, 0x30($sp) +/* 05E2B0 7F029780 00002825 */ move $a1, $zero +/* 05E2B4 7F029784 8DE400A8 */ lw $a0, 0xa8($t7) +/* 05E2B8 7F029788 0FC2280F */ jal sub_GAME_7F08A03C +/* 05E2BC 7F02978C AFA20038 */ sw $v0, 0x38($sp) +/* 05E2C0 7F029790 8FA30038 */ lw $v1, 0x38($sp) +/* 05E2C4 7F029794 8FA2003C */ lw $v0, 0x3c($sp) +/* 05E2C8 7F029798 24190013 */ li $t9, 19 +/* 05E2CC 7F02979C 8C780014 */ lw $t8, 0x14($v1) +/* 05E2D0 7F0297A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05E2D4 7F0297A4 44814000 */ mtc1 $at, $f8 +/* 05E2D8 7F0297A8 AFB80034 */ sw $t8, 0x34($sp) +/* 05E2DC 7F0297AC C4440010 */ lwc1 $f4, 0x10($v0) +/* 05E2E0 7F0297B0 8C660010 */ lw $a2, 0x10($v1) +/* 05E2E4 7F0297B4 8C650008 */ lw $a1, 8($v1) +/* 05E2E8 7F0297B8 8C470008 */ lw $a3, 8($v0) +/* 05E2EC 7F0297BC AFB90014 */ sw $t9, 0x14($sp) +/* 05E2F0 7F0297C0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 05E2F4 7F0297C4 C460000C */ lwc1 $f0, 0xc($v1) +/* 05E2F8 7F0297C8 44803000 */ mtc1 $zero, $f6 +/* 05E2FC 7F0297CC 27A40034 */ addiu $a0, $sp, 0x34 +/* 05E300 7F0297D0 E7A80024 */ swc1 $f8, 0x24($sp) +/* 05E304 7F0297D4 E7A00018 */ swc1 $f0, 0x18($sp) +/* 05E308 7F0297D8 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 05E30C 7F0297DC 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05E310 7F0297E0 E7A60020 */ swc1 $f6, 0x20($sp) +/* 05E314 7F0297E4 10400008 */ beqz $v0, .L7F029808 +/* 05E318 7F0297E8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 05E31C 7F0297EC 8FA9003C */ lw $t1, 0x3c($sp) +/* 05E320 7F0297F0 8FA80034 */ lw $t0, 0x34($sp) +/* 05E324 7F0297F4 240B0001 */ li $t3, 1 +/* 05E328 7F0297F8 8D2A0014 */ lw $t2, 0x14($t1) +/* 05E32C 7F0297FC 150A0002 */ bne $t0, $t2, .L7F029808 +/* 05E330 7F029800 00000000 */ nop +/* 05E334 7F029804 AFAB0030 */ sw $t3, 0x30($sp) +.L7F029808: +/* 05E338 7F029808 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 05E33C 7F02980C 24050001 */ li $a1, 1 +/* 05E340 7F029810 0FC2280F */ jal sub_GAME_7F08A03C +/* 05E344 7F029814 8D8400A8 */ lw $a0, 0xa8($t4) +/* 05E348 7F029818 8FBF002C */ lw $ra, 0x2c($sp) +/* 05E34C 7F02981C 8FA20030 */ lw $v0, 0x30($sp) +/* 05E350 7F029820 27BD0040 */ addiu $sp, $sp, 0x40 +/* 05E354 7F029824 03E00008 */ jr $ra +/* 05E358 7F029828 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02982C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E08 +.word 0x3f99999a /*1.2*/ +.text +glabel sub_GAME_7F02982C +/* 05E35C 7F02982C 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 05E360 7F029830 AFBF0044 */ sw $ra, 0x44($sp) +/* 05E364 7F029834 AFB00040 */ sw $s0, 0x40($sp) +/* 05E368 7F029838 F7B60038 */ sdc1 $f22, 0x38($sp) +/* 05E36C 7F02983C F7B40030 */ sdc1 $f20, 0x30($sp) +/* 05E370 7F029840 AFA50084 */ sw $a1, 0x84($sp) +/* 05E374 7F029844 AFA60088 */ sw $a2, 0x88($sp) +/* 05E378 7F029848 8C820004 */ lw $v0, 4($a0) +/* 05E37C 7F02984C C4C40000 */ lwc1 $f4, ($a2) +/* 05E380 7F029850 3C018005 */ lui $at, %hi(D_80051E08) +/* 05E384 7F029854 C4400024 */ lwc1 $f0, 0x24($v0) +/* 05E388 7F029858 C4221E08 */ lwc1 $f2, %lo(D_80051E08)($at) +/* 05E38C 7F02985C C4C80008 */ lwc1 $f8, 8($a2) +/* 05E390 7F029860 46002182 */ mul.s $f6, $f4, $f0 +/* 05E394 7F029864 00808025 */ move $s0, $a0 +/* 05E398 7F029868 AFA0005C */ sw $zero, 0x5c($sp) +/* 05E39C 7F02986C 27A60058 */ addiu $a2, $sp, 0x58 +/* 05E3A0 7F029870 27A50050 */ addiu $a1, $sp, 0x50 +/* 05E3A4 7F029874 27A70054 */ addiu $a3, $sp, 0x54 +/* 05E3A8 7F029878 AFA2007C */ sw $v0, 0x7c($sp) +/* 05E3AC 7F02987C 46023502 */ mul.s $f20, $f6, $f2 +/* 05E3B0 7F029880 00000000 */ nop +/* 05E3B4 7F029884 46004282 */ mul.s $f10, $f8, $f0 +/* 05E3B8 7F029888 00000000 */ nop +/* 05E3BC 7F02988C 46025582 */ mul.s $f22, $f10, $f2 +/* 05E3C0 7F029890 0FC08C58 */ jal sub_GAME_7F023160 +/* 05E3C4 7F029894 00000000 */ nop +/* 05E3C8 7F029898 8FA4007C */ lw $a0, 0x7c($sp) +/* 05E3CC 7F02989C 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05E3D0 7F0298A0 00002825 */ move $a1, $zero +/* 05E3D4 7F0298A4 8FA20084 */ lw $v0, 0x84($sp) +/* 05E3D8 7F0298A8 C6100008 */ lwc1 $f16, 8($s0) +/* 05E3DC 7F0298AC C6120010 */ lwc1 $f18, 0x10($s0) +/* 05E3E0 7F0298B0 C4440000 */ lwc1 $f4, ($v0) +/* 05E3E4 7F0298B4 46168000 */ add.s $f0, $f16, $f22 +/* 05E3E8 7F0298B8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05E3EC 7F0298BC 2418001F */ li $t8, 31 +/* 05E3F0 7F0298C0 46162180 */ add.s $f6, $f4, $f22 +/* 05E3F4 7F0298C4 C7A40058 */ lwc1 $f4, 0x58($sp) +/* 05E3F8 7F0298C8 44070000 */ mfc1 $a3, $f0 +/* 05E3FC 7F0298CC 46149081 */ sub.s $f2, $f18, $f20 +/* 05E400 7F0298D0 27A40068 */ addiu $a0, $sp, 0x68 +/* 05E404 7F0298D4 46143200 */ add.s $f8, $f6, $f20 +/* 05E408 7F0298D8 C7A60054 */ lwc1 $f6, 0x54($sp) +/* 05E40C 7F0298DC E7A80070 */ swc1 $f8, 0x70($sp) +/* 05E410 7F0298E0 C44A0008 */ lwc1 $f10, 8($v0) +/* 05E414 7F0298E4 44804000 */ mtc1 $zero, $f8 +/* 05E418 7F0298E8 46145401 */ sub.s $f16, $f10, $f20 +/* 05E41C 7F0298EC 44815000 */ mtc1 $at, $f10 +/* 05E420 7F0298F0 46168480 */ add.s $f18, $f16, $f22 +/* 05E424 7F0298F4 E7B2006C */ swc1 $f18, 0x6c($sp) +/* 05E428 7F0298F8 8E0F0014 */ lw $t7, 0x14($s0) +/* 05E42C 7F0298FC AFAF0068 */ sw $t7, 0x68($sp) +/* 05E430 7F029900 8E060010 */ lw $a2, 0x10($s0) +/* 05E434 7F029904 8E050008 */ lw $a1, 8($s0) +/* 05E438 7F029908 E7A20074 */ swc1 $f2, 0x74($sp) +/* 05E43C 7F02990C E7A00078 */ swc1 $f0, 0x78($sp) +/* 05E440 7F029910 AFB80014 */ sw $t8, 0x14($sp) +/* 05E444 7F029914 E7A20010 */ swc1 $f2, 0x10($sp) +/* 05E448 7F029918 E7A40018 */ swc1 $f4, 0x18($sp) +/* 05E44C 7F02991C E7A6001C */ swc1 $f6, 0x1c($sp) +/* 05E450 7F029920 E7A80020 */ swc1 $f8, 0x20($sp) +/* 05E454 7F029924 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05E458 7F029928 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 05E45C 7F02992C C7A00078 */ lwc1 $f0, 0x78($sp) +/* 05E460 7F029930 1040004E */ beqz $v0, .L7F029A6C +/* 05E464 7F029934 C7A20074 */ lwc1 $f2, 0x74($sp) +/* 05E468 7F029938 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05E46C 7F02993C 44814000 */ mtc1 $at, $f8 +/* 05E470 7F029940 C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 05E474 7F029944 C7B20058 */ lwc1 $f18, 0x58($sp) +/* 05E478 7F029948 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 05E47C 7F02994C 44803000 */ mtc1 $zero, $f6 +/* 05E480 7F029950 44050000 */ mfc1 $a1, $f0 +/* 05E484 7F029954 44061000 */ mfc1 $a2, $f2 +/* 05E488 7F029958 2419001F */ li $t9, 31 +/* 05E48C 7F02995C AFB90014 */ sw $t9, 0x14($sp) +/* 05E490 7F029960 27A40068 */ addiu $a0, $sp, 0x68 +/* 05E494 7F029964 8FA70070 */ lw $a3, 0x70($sp) +/* 05E498 7F029968 E7B00010 */ swc1 $f16, 0x10($sp) +/* 05E49C 7F02996C E7A80024 */ swc1 $f8, 0x24($sp) +/* 05E4A0 7F029970 E7B20018 */ swc1 $f18, 0x18($sp) +/* 05E4A4 7F029974 E7A4001C */ swc1 $f4, 0x1c($sp) +/* 05E4A8 7F029978 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05E4AC 7F02997C E7A60020 */ swc1 $f6, 0x20($sp) +/* 05E4B0 7F029980 1040003A */ beqz $v0, .L7F029A6C +/* 05E4B4 7F029984 8FA80084 */ lw $t0, 0x84($sp) +/* 05E4B8 7F029988 C5120000 */ lwc1 $f18, ($t0) +/* 05E4BC 7F02998C C60A0008 */ lwc1 $f10, 8($s0) +/* 05E4C0 7F029990 C6100010 */ lwc1 $f16, 0x10($s0) +/* 05E4C4 7F029994 46169101 */ sub.s $f4, $f18, $f22 +/* 05E4C8 7F029998 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05E4CC 7F02999C C7B20058 */ lwc1 $f18, 0x58($sp) +/* 05E4D0 7F0299A0 46165001 */ sub.s $f0, $f10, $f22 +/* 05E4D4 7F0299A4 240A001F */ li $t2, 31 +/* 05E4D8 7F0299A8 27A40068 */ addiu $a0, $sp, 0x68 +/* 05E4DC 7F0299AC 46142180 */ add.s $f6, $f4, $f20 +/* 05E4E0 7F0299B0 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 05E4E4 7F0299B4 44070000 */ mfc1 $a3, $f0 +/* 05E4E8 7F0299B8 46148080 */ add.s $f2, $f16, $f20 +/* 05E4EC 7F0299BC E7A60070 */ swc1 $f6, 0x70($sp) +/* 05E4F0 7F0299C0 C5080008 */ lwc1 $f8, 8($t0) +/* 05E4F4 7F0299C4 44803000 */ mtc1 $zero, $f6 +/* 05E4F8 7F0299C8 46144280 */ add.s $f10, $f8, $f20 +/* 05E4FC 7F0299CC 44814000 */ mtc1 $at, $f8 +/* 05E500 7F0299D0 46165400 */ add.s $f16, $f10, $f22 +/* 05E504 7F0299D4 E7B0006C */ swc1 $f16, 0x6c($sp) +/* 05E508 7F0299D8 8E090014 */ lw $t1, 0x14($s0) +/* 05E50C 7F0299DC AFA90068 */ sw $t1, 0x68($sp) +/* 05E510 7F0299E0 8E060010 */ lw $a2, 0x10($s0) +/* 05E514 7F0299E4 8E050008 */ lw $a1, 8($s0) +/* 05E518 7F0299E8 E7A20074 */ swc1 $f2, 0x74($sp) +/* 05E51C 7F0299EC E7A00078 */ swc1 $f0, 0x78($sp) +/* 05E520 7F0299F0 AFAA0014 */ sw $t2, 0x14($sp) +/* 05E524 7F0299F4 E7A20010 */ swc1 $f2, 0x10($sp) +/* 05E528 7F0299F8 E7B20018 */ swc1 $f18, 0x18($sp) +/* 05E52C 7F0299FC E7A4001C */ swc1 $f4, 0x1c($sp) +/* 05E530 7F029A00 E7A60020 */ swc1 $f6, 0x20($sp) +/* 05E534 7F029A04 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05E538 7F029A08 E7A80024 */ swc1 $f8, 0x24($sp) +/* 05E53C 7F029A0C C7A00078 */ lwc1 $f0, 0x78($sp) +/* 05E540 7F029A10 10400016 */ beqz $v0, .L7F029A6C +/* 05E544 7F029A14 C7A20074 */ lwc1 $f2, 0x74($sp) +/* 05E548 7F029A18 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05E54C 7F029A1C 44813000 */ mtc1 $at, $f6 +/* 05E550 7F029A20 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 05E554 7F029A24 C7B00058 */ lwc1 $f16, 0x58($sp) +/* 05E558 7F029A28 C7B20054 */ lwc1 $f18, 0x54($sp) +/* 05E55C 7F029A2C 44802000 */ mtc1 $zero, $f4 +/* 05E560 7F029A30 44050000 */ mfc1 $a1, $f0 +/* 05E564 7F029A34 44061000 */ mfc1 $a2, $f2 +/* 05E568 7F029A38 240B001F */ li $t3, 31 +/* 05E56C 7F029A3C AFAB0014 */ sw $t3, 0x14($sp) +/* 05E570 7F029A40 27A40068 */ addiu $a0, $sp, 0x68 +/* 05E574 7F029A44 8FA70070 */ lw $a3, 0x70($sp) +/* 05E578 7F029A48 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 05E57C 7F029A4C E7A60024 */ swc1 $f6, 0x24($sp) +/* 05E580 7F029A50 E7B00018 */ swc1 $f16, 0x18($sp) +/* 05E584 7F029A54 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 05E588 7F029A58 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 05E58C 7F029A5C E7A40020 */ swc1 $f4, 0x20($sp) +/* 05E590 7F029A60 10400002 */ beqz $v0, .L7F029A6C +/* 05E594 7F029A64 240C0001 */ li $t4, 1 +/* 05E598 7F029A68 AFAC005C */ sw $t4, 0x5c($sp) +.L7F029A6C: +/* 05E59C 7F029A6C 8FA4007C */ lw $a0, 0x7c($sp) +/* 05E5A0 7F029A70 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 05E5A4 7F029A74 24050001 */ li $a1, 1 +/* 05E5A8 7F029A78 8FBF0044 */ lw $ra, 0x44($sp) +/* 05E5AC 7F029A7C 8FA2005C */ lw $v0, 0x5c($sp) +/* 05E5B0 7F029A80 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 05E5B4 7F029A84 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 05E5B8 7F029A88 8FB00040 */ lw $s0, 0x40($sp) +/* 05E5BC 7F029A8C 03E00008 */ jr $ra +/* 05E5C0 7F029A90 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F029A94(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F029A94 +/* 05E5C4 7F029A94 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05E5C8 7F029A98 AFBF0014 */ sw $ra, 0x14($sp) +/* 05E5CC 7F029A9C AFA5002C */ sw $a1, 0x2c($sp) +/* 05E5D0 7F029AA0 44866000 */ mtc1 $a2, $f12 +/* 05E5D4 7F029AA4 C4A40000 */ lwc1 $f4, ($a1) +/* 05E5D8 7F029AA8 C4880008 */ lwc1 $f8, 8($a0) +/* 05E5DC 7F029AAC 00A03025 */ move $a2, $a1 +/* 05E5E0 7F029AB0 460C2182 */ mul.s $f6, $f4, $f12 +/* 05E5E4 7F029AB4 46083280 */ add.s $f10, $f6, $f8 +/* 05E5E8 7F029AB8 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 05E5EC 7F029ABC C490000C */ lwc1 $f16, 0xc($a0) +/* 05E5F0 7F029AC0 E7B00020 */ swc1 $f16, 0x20($sp) +/* 05E5F4 7F029AC4 C4B20008 */ lwc1 $f18, 8($a1) +/* 05E5F8 7F029AC8 C4860010 */ lwc1 $f6, 0x10($a0) +/* 05E5FC 7F029ACC 27A5001C */ addiu $a1, $sp, 0x1c +/* 05E600 7F029AD0 460C9102 */ mul.s $f4, $f18, $f12 +/* 05E604 7F029AD4 46062200 */ add.s $f8, $f4, $f6 +/* 05E608 7F029AD8 0FC0A60B */ jal sub_GAME_7F02982C +/* 05E60C 7F029ADC E7A80024 */ swc1 $f8, 0x24($sp) +/* 05E610 7F029AE0 8FBF0014 */ lw $ra, 0x14($sp) +/* 05E614 7F029AE4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05E618 7F029AE8 03E00008 */ jr $ra +/* 05E61C 7F029AEC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F029AF0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F029AF0 +/* 05E620 7F029AF0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 05E624 7F029AF4 AFBF0014 */ sw $ra, 0x14($sp) +/* 05E628 7F029AF8 C4860008 */ lwc1 $f6, 8($a0) +/* 05E62C 7F029AFC C4A40000 */ lwc1 $f4, ($a1) +/* 05E630 7F029B00 44800000 */ mtc1 $zero, $f0 +/* 05E634 7F029B04 46062201 */ sub.s $f8, $f4, $f6 +/* 05E638 7F029B08 E7A00028 */ swc1 $f0, 0x28($sp) +/* 05E63C 7F029B0C E7A80024 */ swc1 $f8, 0x24($sp) +/* 05E640 7F029B10 C7A40024 */ lwc1 $f4, 0x24($sp) +/* 05E644 7F029B14 C4900010 */ lwc1 $f16, 0x10($a0) +/* 05E648 7F029B18 C4AA0008 */ lwc1 $f10, 8($a1) +/* 05E64C 7F029B1C 46040032 */ c.eq.s $f0, $f4 +/* 05E650 7F029B20 46105481 */ sub.s $f18, $f10, $f16 +/* 05E654 7F029B24 45000008 */ bc1f .L7F029B48 +/* 05E658 7F029B28 E7B2002C */ swc1 $f18, 0x2c($sp) +/* 05E65C 7F029B2C C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 05E660 7F029B30 46020032 */ c.eq.s $f0, $f2 +/* 05E664 7F029B34 00000000 */ nop +/* 05E668 7F029B38 45020004 */ bc1fl .L7F029B4C +/* 05E66C 7F029B3C C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 05E670 7F029B40 10000017 */ b .L7F029BA0 +/* 05E674 7F029B44 24020001 */ li $v0, 1 +.L7F029B48: +/* 05E678 7F029B48 C7A2002C */ lwc1 $f2, 0x2c($sp) +.L7F029B4C: +/* 05E67C 7F029B4C C7A00024 */ lwc1 $f0, 0x24($sp) +/* 05E680 7F029B50 AFA40030 */ sw $a0, 0x30($sp) +/* 05E684 7F029B54 46021182 */ mul.s $f6, $f2, $f2 +/* 05E688 7F029B58 AFA50034 */ sw $a1, 0x34($sp) +/* 05E68C 7F029B5C 46000202 */ mul.s $f8, $f0, $f0 +/* 05E690 7F029B60 0C007DF8 */ jal sqrtf +/* 05E694 7F029B64 46083300 */ add.s $f12, $f6, $f8 +/* 05E698 7F029B68 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05E69C 7F029B6C 44815000 */ mtc1 $at, $f10 +/* 05E6A0 7F029B70 C7B00024 */ lwc1 $f16, 0x24($sp) +/* 05E6A4 7F029B74 C7A4002C */ lwc1 $f4, 0x2c($sp) +/* 05E6A8 7F029B78 46005083 */ div.s $f2, $f10, $f0 +/* 05E6AC 7F029B7C 8FA40030 */ lw $a0, 0x30($sp) +/* 05E6B0 7F029B80 8FA50034 */ lw $a1, 0x34($sp) +/* 05E6B4 7F029B84 27A60024 */ addiu $a2, $sp, 0x24 +/* 05E6B8 7F029B88 46028482 */ mul.s $f18, $f16, $f2 +/* 05E6BC 7F029B8C 00000000 */ nop +/* 05E6C0 7F029B90 46022182 */ mul.s $f6, $f4, $f2 +/* 05E6C4 7F029B94 E7B20024 */ swc1 $f18, 0x24($sp) +/* 05E6C8 7F029B98 0FC0A60B */ jal sub_GAME_7F02982C +/* 05E6CC 7F029B9C E7A6002C */ swc1 $f6, 0x2c($sp) +.L7F029BA0: +/* 05E6D0 7F029BA0 8FBF0014 */ lw $ra, 0x14($sp) +/* 05E6D4 7F029BA4 27BD0030 */ addiu $sp, $sp, 0x30 +/* 05E6D8 7F029BA8 03E00008 */ jr $ra +/* 05E6DC 7F029BAC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F029BB0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F029BB0 +/* 05E6E0 7F029BB0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05E6E4 7F029BB4 AFBF0014 */ sw $ra, 0x14($sp) +/* 05E6E8 7F029BB8 0FC225E6 */ jal get_curplayer_positiondata +/* 05E6EC 7F029BBC AFA40018 */ sw $a0, 0x18($sp) +/* 05E6F0 7F029BC0 3C0E8005 */ lui $t6, %hi(global_timer) +/* 05E6F4 7F029BC4 8FA40018 */ lw $a0, 0x18($sp) +/* 05E6F8 7F029BC8 8DCE837C */ lw $t6, %lo(global_timer)($t6) +/* 05E6FC 7F029BCC AC8E00D4 */ sw $t6, 0xd4($a0) +/* 05E700 7F029BD0 C4440008 */ lwc1 $f4, 8($v0) +/* 05E704 7F029BD4 E48400D8 */ swc1 $f4, 0xd8($a0) +/* 05E708 7F029BD8 C446000C */ lwc1 $f6, 0xc($v0) +/* 05E70C 7F029BDC E48600DC */ swc1 $f6, 0xdc($a0) +/* 05E710 7F029BE0 C4480010 */ lwc1 $f8, 0x10($v0) +/* 05E714 7F029BE4 E48800E0 */ swc1 $f8, 0xe0($a0) +/* 05E718 7F029BE8 8C4F0014 */ lw $t7, 0x14($v0) +/* 05E71C 7F029BEC AC8F00E4 */ sw $t7, 0xe4($a0) +/* 05E720 7F029BF0 8FBF0014 */ lw $ra, 0x14($sp) +/* 05E724 7F029BF4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05E728 7F029BF8 03E00008 */ jr $ra +/* 05E72C 7F029BFC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F029C00(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F029C00 +/* 05E730 7F029C00 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05E734 7F029C04 AFBF0014 */ sw $ra, 0x14($sp) +/* 05E738 7F029C08 0FC225E6 */ jal get_curplayer_positiondata +/* 05E73C 7F029C0C AFA40018 */ sw $a0, 0x18($sp) +/* 05E740 7F029C10 8FA40018 */ lw $a0, 0x18($sp) +/* 05E744 7F029C14 3C188005 */ lui $t8, %hi(global_timer) +/* 05E748 7F029C18 948E0012 */ lhu $t6, 0x12($a0) +/* 05E74C 7F029C1C 35CF0002 */ ori $t7, $t6, 2 +/* 05E750 7F029C20 A48F0012 */ sh $t7, 0x12($a0) +/* 05E754 7F029C24 8F18837C */ lw $t8, %lo(global_timer)($t8) +/* 05E758 7F029C28 AC9800F0 */ sw $t8, 0xf0($a0) +/* 05E75C 7F029C2C C4440008 */ lwc1 $f4, 8($v0) +/* 05E760 7F029C30 E48400D8 */ swc1 $f4, 0xd8($a0) +/* 05E764 7F029C34 C446000C */ lwc1 $f6, 0xc($v0) +/* 05E768 7F029C38 E48600DC */ swc1 $f6, 0xdc($a0) +/* 05E76C 7F029C3C C4480010 */ lwc1 $f8, 0x10($v0) +/* 05E770 7F029C40 E48800E0 */ swc1 $f8, 0xe0($a0) +/* 05E774 7F029C44 8C590014 */ lw $t9, 0x14($v0) +/* 05E778 7F029C48 AC9900E4 */ sw $t9, 0xe4($a0) +/* 05E77C 7F029C4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 05E780 7F029C50 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05E784 7F029C54 03E00008 */ jr $ra +/* 05E788 7F029C58 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_actor_stationary(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_actor_stationary +/* 05E78C 7F029C5C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05E790 7F029C60 AFBF001C */ sw $ra, 0x1c($sp) +/* 05E794 7F029C64 AFB00018 */ sw $s0, 0x18($sp) +/* 05E798 7F029C68 80820007 */ lb $v0, 7($a0) +/* 05E79C 7F029C6C 24010001 */ li $at, 1 +/* 05E7A0 7F029C70 00808025 */ move $s0, $a0 +/* 05E7A4 7F029C74 5441000A */ bnel $v0, $at, .L7F029CA0 +/* 05E7A8 7F029C78 24010003 */ li $at, 3 +/* 05E7AC 7F029C7C 8C8E002C */ lw $t6, 0x2c($a0) +/* 05E7B0 7F029C80 55C00007 */ bnezl $t6, .L7F029CA0 +/* 05E7B4 7F029C84 24010003 */ li $at, 3 +/* 05E7B8 7F029C88 8C8F0038 */ lw $t7, 0x38($a0) +/* 05E7BC 7F029C8C 55E00004 */ bnezl $t7, .L7F029CA0 +/* 05E7C0 7F029C90 24010003 */ li $at, 3 +/* 05E7C4 7F029C94 10000031 */ b .L7F029D5C +/* 05E7C8 7F029C98 24020001 */ li $v0, 1 +/* 05E7CC 7F029C9C 24010003 */ li $at, 3 +.L7F029CA0: +/* 05E7D0 7F029CA0 54410029 */ bnel $v0, $at, .L7F029D48 +/* 05E7D4 7F029CA4 2401000E */ li $at, 14 +/* 05E7D8 7F029CA8 8E180034 */ lw $t8, 0x34($s0) +/* 05E7DC 7F029CAC 17000023 */ bnez $t8, .L7F029D3C +/* 05E7E0 7F029CB0 00000000 */ nop +/* 05E7E4 7F029CB4 0FC1BD84 */ jal sub_GAME_7F06F610 +/* 05E7E8 7F029CB8 8E04001C */ lw $a0, 0x1c($s0) +/* 05E7EC 7F029CBC 44802000 */ mtc1 $zero, $f4 +/* 05E7F0 7F029CC0 00000000 */ nop +/* 05E7F4 7F029CC4 4600203E */ c.le.s $f4, $f0 +/* 05E7F8 7F029CC8 00000000 */ nop +/* 05E7FC 7F029CCC 4500000B */ bc1f .L7F029CFC +/* 05E800 7F029CD0 00000000 */ nop +/* 05E804 7F029CD4 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 05E808 7F029CD8 8E04001C */ lw $a0, 0x1c($s0) +/* 05E80C 7F029CDC E7A00024 */ swc1 $f0, 0x24($sp) +/* 05E810 7F029CE0 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 05E814 7F029CE4 8E04001C */ lw $a0, 0x1c($s0) +/* 05E818 7F029CE8 C7A60024 */ lwc1 $f6, 0x24($sp) +/* 05E81C 7F029CEC 4606003E */ c.le.s $f0, $f6 +/* 05E820 7F029CF0 00000000 */ nop +/* 05E824 7F029CF4 45010011 */ bc1t .L7F029D3C +/* 05E828 7F029CF8 00000000 */ nop +.L7F029CFC: +/* 05E82C 7F029CFC 0FC1BD84 */ jal sub_GAME_7F06F610 +/* 05E830 7F029D00 8E04001C */ lw $a0, 0x1c($s0) +/* 05E834 7F029D04 44804000 */ mtc1 $zero, $f8 +/* 05E838 7F029D08 00000000 */ nop +/* 05E83C 7F029D0C 4608003C */ c.lt.s $f0, $f8 +/* 05E840 7F029D10 00000000 */ nop +/* 05E844 7F029D14 45020011 */ bc1fl .L7F029D5C +/* 05E848 7F029D18 00001025 */ move $v0, $zero +/* 05E84C 7F029D1C 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 05E850 7F029D20 8E04001C */ lw $a0, 0x1c($s0) +/* 05E854 7F029D24 44805000 */ mtc1 $zero, $f10 +/* 05E858 7F029D28 00000000 */ nop +/* 05E85C 7F029D2C 460A003E */ c.le.s $f0, $f10 +/* 05E860 7F029D30 00000000 */ nop +/* 05E864 7F029D34 45020009 */ bc1fl .L7F029D5C +/* 05E868 7F029D38 00001025 */ move $v0, $zero +.L7F029D3C: +/* 05E86C 7F029D3C 10000007 */ b .L7F029D5C +/* 05E870 7F029D40 24020001 */ li $v0, 1 +/* 05E874 7F029D44 2401000E */ li $at, 14 +.L7F029D48: +/* 05E878 7F029D48 54410004 */ bnel $v0, $at, .L7F029D5C +/* 05E87C 7F029D4C 00001025 */ move $v0, $zero +/* 05E880 7F029D50 10000002 */ b .L7F029D5C +/* 05E884 7F029D54 24020001 */ li $v0, 1 +/* 05E888 7F029D58 00001025 */ move $v0, $zero +.L7F029D5C: +/* 05E88C 7F029D5C 8FBF001C */ lw $ra, 0x1c($sp) +/* 05E890 7F029D60 8FB00018 */ lw $s0, 0x18($sp) +/* 05E894 7F029D64 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05E898 7F029D68 03E00008 */ jr $ra +/* 05E89C 7F029D6C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F029D70(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E0C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051E10 +.word 0x3ff5be0b /*1.9198622*/ +glabel D_80051E14 +.word 0x408ba058 /*4.3633232*/ +glabel D_80051E18 +.word 0x471c4000 /*40000.0*/ +glabel D_80051E1C +.word 0x3ff5be0b /*1.9198622*/ +glabel D_80051E20 +.word 0x408ba058 /*4.3633232*/ +glabel D_80051E24 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80051E28 +.word 0x40afede0 /*5.4977875*/ +glabel D_80051E2C +.word 0x40490fdb /*3.1415927*/ +glabel D_80051E30 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051E34 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F029D70 +/* 05E8A0 7F029D70 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 05E8A4 7F029D74 AFBF0014 */ sw $ra, 0x14($sp) +/* 05E8A8 7F029D78 AFA40058 */ sw $a0, 0x58($sp) +/* 05E8AC 7F029D7C 8C830018 */ lw $v1, 0x18($a0) +/* 05E8B0 7F029D80 0FC225E6 */ jal get_curplayer_positiondata +/* 05E8B4 7F029D84 AFA30054 */ sw $v1, 0x54($sp) +/* 05E8B8 7F029D88 8FAF0058 */ lw $t7, 0x58($sp) +/* 05E8BC 7F029D8C 8DE4001C */ lw $a0, 0x1c($t7) +/* 05E8C0 7F029D90 0FC1B320 */ jal getsubroty +/* 05E8C4 7F029D94 AFA20050 */ sw $v0, 0x50($sp) +/* 05E8C8 7F029D98 8FA30054 */ lw $v1, 0x54($sp) +/* 05E8CC 7F029D9C 8FA50050 */ lw $a1, 0x50($sp) +/* 05E8D0 7F029DA0 C4660008 */ lwc1 $f6, 8($v1) +/* 05E8D4 7F029DA4 C4A40008 */ lwc1 $f4, 8($a1) +/* 05E8D8 7F029DA8 C46A000C */ lwc1 $f10, 0xc($v1) +/* 05E8DC 7F029DAC C4A8000C */ lwc1 $f8, 0xc($a1) +/* 05E8E0 7F029DB0 46062301 */ sub.s $f12, $f4, $f6 +/* 05E8E4 7F029DB4 460A4101 */ sub.s $f4, $f8, $f10 +/* 05E8E8 7F029DB8 E7A4003C */ swc1 $f4, 0x3c($sp) +/* 05E8EC 7F029DBC C4680010 */ lwc1 $f8, 0x10($v1) +/* 05E8F0 7F029DC0 C4A60010 */ lwc1 $f6, 0x10($a1) +/* 05E8F4 7F029DC4 E7A00044 */ swc1 $f0, 0x44($sp) +/* 05E8F8 7F029DC8 E7AC0040 */ swc1 $f12, 0x40($sp) +/* 05E8FC 7F029DCC 46083381 */ sub.s $f14, $f6, $f8 +/* 05E900 7F029DD0 0FC16A8C */ jal atan2f +/* 05E904 7F029DD4 E7AE0038 */ swc1 $f14, 0x38($sp) +/* 05E908 7F029DD8 C7B00044 */ lwc1 $f16, 0x44($sp) +/* 05E90C 7F029DDC C7AE0038 */ lwc1 $f14, 0x38($sp) +/* 05E910 7F029DE0 00001825 */ move $v1, $zero +/* 05E914 7F029DE4 4610003C */ c.lt.s $f0, $f16 +/* 05E918 7F029DE8 3C018005 */ lui $at, %hi(D_80051E0C) +/* 05E91C 7F029DEC 46100301 */ sub.s $f12, $f0, $f16 +/* 05E920 7F029DF0 8FA40058 */ lw $a0, 0x58($sp) +/* 05E924 7F029DF4 45000003 */ bc1f .L7F029E04 +/* 05E928 7F029DF8 46006086 */ mov.s $f2, $f12 +/* 05E92C 7F029DFC C42A1E0C */ lwc1 $f10, %lo(D_80051E0C)($at) +/* 05E930 7F029E00 460A6080 */ add.s $f2, $f12, $f10 +.L7F029E04: +/* 05E934 7F029E04 AFA3002C */ sw $v1, 0x2c($sp) +/* 05E938 7F029E08 E7A20030 */ swc1 $f2, 0x30($sp) +/* 05E93C 7F029E0C 0FC0CADA */ jal sub_GAME_7F032B68 +/* 05E940 7F029E10 E7AE0038 */ swc1 $f14, 0x38($sp) +/* 05E944 7F029E14 8FA3002C */ lw $v1, 0x2c($sp) +/* 05E948 7F029E18 C7A20030 */ lwc1 $f2, 0x30($sp) +/* 05E94C 7F029E1C 10400003 */ beqz $v0, .L7F029E2C +/* 05E950 7F029E20 C7AE0038 */ lwc1 $f14, 0x38($sp) +/* 05E954 7F029E24 10000078 */ b .L7F02A008 +/* 05E958 7F029E28 24030001 */ li $v1, 1 +.L7F029E2C: +/* 05E95C 7F029E2C C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 05E960 7F029E30 C7B20040 */ lwc1 $f18, 0x40($sp) +/* 05E964 7F029E34 8FB80058 */ lw $t8, 0x58($sp) +/* 05E968 7F029E38 46042182 */ mul.s $f6, $f4, $f4 +/* 05E96C 7F029E3C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 05E970 7F029E40 C70000D0 */ lwc1 $f0, 0xd0($t8) +/* 05E974 7F029E44 46129202 */ mul.s $f8, $f18, $f18 +/* 05E978 7F029E48 44818000 */ mtc1 $at, $f16 +/* 05E97C 7F029E4C 3C018005 */ lui $at, %hi(D_80051E10) +/* 05E980 7F029E50 460E7102 */ mul.s $f4, $f14, $f14 +/* 05E984 7F029E54 46064280 */ add.s $f10, $f8, $f6 +/* 05E988 7F029E58 46000202 */ mul.s $f8, $f0, $f0 +/* 05E98C 7F029E5C 46045300 */ add.s $f12, $f10, $f4 +/* 05E990 7F029E60 46104182 */ mul.s $f6, $f8, $f16 +/* 05E994 7F029E64 00000000 */ nop +/* 05E998 7F029E68 46103282 */ mul.s $f10, $f6, $f16 +/* 05E99C 7F029E6C 460A603C */ c.lt.s $f12, $f10 +/* 05E9A0 7F029E70 00000000 */ nop +/* 05E9A4 7F029E74 4500000B */ bc1f .L7F029EA4 +/* 05E9A8 7F029E78 00000000 */ nop +/* 05E9AC 7F029E7C C4241E10 */ lwc1 $f4, %lo(D_80051E10)($at) +/* 05E9B0 7F029E80 3C018005 */ lui $at, %hi(D_80051E14) +/* 05E9B4 7F029E84 4604103C */ c.lt.s $f2, $f4 +/* 05E9B8 7F029E88 00000000 */ nop +/* 05E9BC 7F029E8C 45030018 */ bc1tl .L7F029EF0 +/* 05E9C0 7F029E90 AFA3002C */ sw $v1, 0x2c($sp) +/* 05E9C4 7F029E94 C4281E14 */ lwc1 $f8, %lo(D_80051E14)($at) +/* 05E9C8 7F029E98 4602403C */ c.lt.s $f8, $f2 +/* 05E9CC 7F029E9C 00000000 */ nop +/* 05E9D0 7F029EA0 45010012 */ bc1t .L7F029EEC +.L7F029EA4: +/* 05E9D4 7F029EA4 3C018005 */ lui $at, %hi(D_80051E18) +/* 05E9D8 7F029EA8 C4261E18 */ lwc1 $f6, %lo(D_80051E18)($at) +/* 05E9DC 7F029EAC 3C018005 */ lui $at, %hi(D_80051E1C) +/* 05E9E0 7F029EB0 4606603C */ c.lt.s $f12, $f6 +/* 05E9E4 7F029EB4 00000000 */ nop +/* 05E9E8 7F029EB8 45000053 */ bc1f .L7F02A008 +/* 05E9EC 7F029EBC 00000000 */ nop +/* 05E9F0 7F029EC0 C42A1E1C */ lwc1 $f10, %lo(D_80051E1C)($at) +/* 05E9F4 7F029EC4 3C018005 */ lui $at, %hi(D_80051E20) +/* 05E9F8 7F029EC8 460A103C */ c.lt.s $f2, $f10 +/* 05E9FC 7F029ECC 00000000 */ nop +/* 05EA00 7F029ED0 45030007 */ bc1tl .L7F029EF0 +/* 05EA04 7F029ED4 AFA3002C */ sw $v1, 0x2c($sp) +/* 05EA08 7F029ED8 C4241E20 */ lwc1 $f4, %lo(D_80051E20)($at) +/* 05EA0C 7F029EDC 4602203C */ c.lt.s $f4, $f2 +/* 05EA10 7F029EE0 00000000 */ nop +/* 05EA14 7F029EE4 45000048 */ bc1f .L7F02A008 +/* 05EA18 7F029EE8 00000000 */ nop +.L7F029EEC: +/* 05EA1C 7F029EEC AFA3002C */ sw $v1, 0x2c($sp) +.L7F029EF0: +/* 05EA20 7F029EF0 E7A20030 */ swc1 $f2, 0x30($sp) +/* 05EA24 7F029EF4 0FC2E9D1 */ jal square_near_fog_value +/* 05EA28 7F029EF8 E7AC001C */ swc1 $f12, 0x1c($sp) +/* 05EA2C 7F029EFC C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 05EA30 7F029F00 8FA3002C */ lw $v1, 0x2c($sp) +/* 05EA34 7F029F04 C7A20030 */ lwc1 $f2, 0x30($sp) +/* 05EA38 7F029F08 4600603C */ c.lt.s $f12, $f0 +/* 05EA3C 7F029F0C 00000000 */ nop +/* 05EA40 7F029F10 4500003D */ bc1f .L7F02A008 +/* 05EA44 7F029F14 00000000 */ nop +/* 05EA48 7F029F18 0C007DF8 */ jal sqrtf +/* 05EA4C 7F029F1C E7A20030 */ swc1 $f2, 0x30($sp) +/* 05EA50 7F029F20 3C018005 */ lui $at, %hi(D_80051E24) +/* 05EA54 7F029F24 C42C1E24 */ lwc1 $f12, %lo(D_80051E24)($at) +/* 05EA58 7F029F28 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 05EA5C 7F029F2C 44814000 */ mtc1 $at, $f8 +/* 05EA60 7F029F30 3C01467A */ li $at, 0x467A0000 # 16000.000000 +/* 05EA64 7F029F34 44815000 */ mtc1 $at, $f10 +/* 05EA68 7F029F38 46080182 */ mul.s $f6, $f0, $f8 +/* 05EA6C 7F029F3C C7A20030 */ lwc1 $f2, 0x30($sp) +/* 05EA70 7F029F40 3C018005 */ lui $at, %hi(D_80051E28) +/* 05EA74 7F029F44 4602603C */ c.lt.s $f12, $f2 +/* 05EA78 7F029F48 460A3103 */ div.s $f4, $f6, $f10 +/* 05EA7C 7F029F4C 4600220D */ trunc.w.s $f8, $f4 +/* 05EA80 7F029F50 44054000 */ mfc1 $a1, $f8 +/* 05EA84 7F029F54 4500001F */ bc1f .L7F029FD4 +/* 05EA88 7F029F58 00000000 */ nop +/* 05EA8C 7F029F5C C4261E28 */ lwc1 $f6, %lo(D_80051E28)($at) +/* 05EA90 7F029F60 3C018005 */ lui $at, %hi(D_80051E2C) +/* 05EA94 7F029F64 4606103C */ c.lt.s $f2, $f6 +/* 05EA98 7F029F68 00000000 */ nop +/* 05EA9C 7F029F6C 45000019 */ bc1f .L7F029FD4 +/* 05EAA0 7F029F70 00000000 */ nop +/* 05EAA4 7F029F74 C42A1E2C */ lwc1 $f10, %lo(D_80051E2C)($at) +/* 05EAA8 7F029F78 46001006 */ mov.s $f0, $f2 +/* 05EAAC 7F029F7C 3C018005 */ lui $at, %hi(D_80051E30) +/* 05EAB0 7F029F80 4602503C */ c.lt.s $f10, $f2 +/* 05EAB4 7F029F84 00000000 */ nop +/* 05EAB8 7F029F88 45020004 */ bc1fl .L7F029F9C +/* 05EABC 7F029F8C 460C0001 */ sub.s $f0, $f0, $f12 +/* 05EAC0 7F029F90 C4241E30 */ lwc1 $f4, %lo(D_80051E30)($at) +/* 05EAC4 7F029F94 46022001 */ sub.s $f0, $f4, $f2 +/* 05EAC8 7F029F98 460C0001 */ sub.s $f0, $f0, $f12 +.L7F029F9C: +/* 05EACC 7F029F9C 3C0141C0 */ li $at, 0x41C00000 # 24.000000 +/* 05EAD0 7F029FA0 44814000 */ mtc1 $at, $f8 +/* 05EAD4 7F029FA4 3C018005 */ lui $at, %hi(D_80051E34) +/* 05EAD8 7F029FA8 C42A1E34 */ lwc1 $f10, %lo(D_80051E34)($at) +/* 05EADC 7F029FAC 46080182 */ mul.s $f6, $f0, $f8 +/* 05EAE0 7F029FB0 460A3103 */ div.s $f4, $f6, $f10 +/* 05EAE4 7F029FB4 4600220D */ trunc.w.s $f8, $f4 +/* 05EAE8 7F029FB8 44094000 */ mfc1 $t1, $f8 +/* 05EAEC 7F029FBC 00000000 */ nop +/* 05EAF0 7F029FC0 252A0001 */ addiu $t2, $t1, 1 +/* 05EAF4 7F029FC4 00AA0019 */ multu $a1, $t2 +/* 05EAF8 7F029FC8 00002812 */ mflo $a1 +/* 05EAFC 7F029FCC 00000000 */ nop +/* 05EB00 7F029FD0 00000000 */ nop +.L7F029FD4: +/* 05EB04 7F029FD4 0FC08EF0 */ jal sub_GAME_7F023BC0 +/* 05EB08 7F029FD8 8FA40058 */ lw $a0, 0x58($sp) +/* 05EB0C 7F029FDC 24450001 */ addiu $a1, $v0, 1 +/* 05EB10 7F029FE0 0C002914 */ jal get_random_value +/* 05EB14 7F029FE4 AFA50024 */ sw $a1, 0x24($sp) +/* 05EB18 7F029FE8 8FA50024 */ lw $a1, 0x24($sp) +/* 05EB1C 7F029FEC 0045001B */ divu $zero, $v0, $a1 +/* 05EB20 7F029FF0 00001810 */ mfhi $v1 +/* 05EB24 7F029FF4 2C6B0001 */ sltiu $t3, $v1, 1 +/* 05EB28 7F029FF8 01601825 */ move $v1, $t3 +/* 05EB2C 7F029FFC 14A00002 */ bnez $a1, .L7F02A008 +/* 05EB30 7F02A000 00000000 */ nop +/* 05EB34 7F02A004 0007000D */ break 7 +.L7F02A008: +/* 05EB38 7F02A008 10600004 */ beqz $v1, .L7F02A01C +/* 05EB3C 7F02A00C 00000000 */ nop +/* 05EB40 7F02A010 0FC0A52F */ jal sub_GAME_7F0294BC +/* 05EB44 7F02A014 8FA40058 */ lw $a0, 0x58($sp) +/* 05EB48 7F02A018 00401825 */ move $v1, $v0 +.L7F02A01C: +/* 05EB4C 7F02A01C 10600004 */ beqz $v1, .L7F02A030 +/* 05EB50 7F02A020 8FA40058 */ lw $a0, 0x58($sp) +/* 05EB54 7F02A024 0FC0A6EC */ jal sub_GAME_7F029BB0 +/* 05EB58 7F02A028 AFA3002C */ sw $v1, 0x2c($sp) +/* 05EB5C 7F02A02C 8FA3002C */ lw $v1, 0x2c($sp) +.L7F02A030: +/* 05EB60 7F02A030 8FBF0014 */ lw $ra, 0x14($sp) +/* 05EB64 7F02A034 27BD0058 */ addiu $sp, $sp, 0x58 +/* 05EB68 7F02A038 00601025 */ move $v0, $v1 +/* 05EB6C 7F02A03C 03E00008 */ jr $ra +/* 05EB70 7F02A040 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02A044(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02A044 +/* 05EB74 7F02A044 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05EB78 7F02A048 AFBF0014 */ sw $ra, 0x14($sp) +/* 05EB7C 7F02A04C AFA5002C */ sw $a1, 0x2c($sp) +/* 05EB80 7F02A050 8C830018 */ lw $v1, 0x18($a0) +/* 05EB84 7F02A054 AFA60030 */ sw $a2, 0x30($sp) +/* 05EB88 7F02A058 0FC225E6 */ jal get_curplayer_positiondata +/* 05EB8C 7F02A05C AFA30024 */ sw $v1, 0x24($sp) +/* 05EB90 7F02A060 8FA30024 */ lw $v1, 0x24($sp) +/* 05EB94 7F02A064 C4440008 */ lwc1 $f4, 8($v0) +/* 05EB98 7F02A068 C4480010 */ lwc1 $f8, 0x10($v0) +/* 05EB9C 7F02A06C C4660008 */ lwc1 $f6, 8($v1) +/* 05EBA0 7F02A070 C46A0010 */ lwc1 $f10, 0x10($v1) +/* 05EBA4 7F02A074 46062081 */ sub.s $f2, $f4, $f6 +/* 05EBA8 7F02A078 460A4381 */ sub.s $f14, $f8, $f10 +/* 05EBAC 7F02A07C 46021402 */ mul.s $f16, $f2, $f2 +/* 05EBB0 7F02A080 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 05EBB4 7F02A084 460E7482 */ mul.s $f18, $f14, $f14 +/* 05EBB8 7F02A088 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 05EBBC 7F02A08C 0C007DF8 */ jal sqrtf +/* 05EBC0 7F02A090 46128300 */ add.s $f12, $f16, $f18 +/* 05EBC4 7F02A094 8FAE002C */ lw $t6, 0x2c($sp) +/* 05EBC8 7F02A098 C7A2001C */ lwc1 $f2, 0x1c($sp) +/* 05EBCC 7F02A09C C7AE0018 */ lwc1 $f14, 0x18($sp) +/* 05EBD0 7F02A0A0 8FA60030 */ lw $a2, 0x30($sp) +/* 05EBD4 7F02A0A4 46001083 */ div.s $f2, $f2, $f0 +/* 05EBD8 7F02A0A8 11C00007 */ beqz $t6, .L7F02A0C8 +/* 05EBDC 7F02A0AC 46007383 */ div.s $f14, $f14, $f0 +/* 05EBE0 7F02A0B0 44802000 */ mtc1 $zero, $f4 +/* 05EBE4 7F02A0B4 46001187 */ neg.s $f6, $f2 +/* 05EBE8 7F02A0B8 E4CE0000 */ swc1 $f14, ($a2) +/* 05EBEC 7F02A0BC E4C60008 */ swc1 $f6, 8($a2) +/* 05EBF0 7F02A0C0 10000006 */ b .L7F02A0DC +/* 05EBF4 7F02A0C4 E4C40004 */ swc1 $f4, 4($a2) +.L7F02A0C8: +/* 05EBF8 7F02A0C8 44805000 */ mtc1 $zero, $f10 +/* 05EBFC 7F02A0CC 46007207 */ neg.s $f8, $f14 +/* 05EC00 7F02A0D0 E4C20008 */ swc1 $f2, 8($a2) +/* 05EC04 7F02A0D4 E4C80000 */ swc1 $f8, ($a2) +/* 05EC08 7F02A0D8 E4CA0004 */ swc1 $f10, 4($a2) +.L7F02A0DC: +/* 05EC0C 7F02A0DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 05EC10 7F02A0E0 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05EC14 7F02A0E4 03E00008 */ jr $ra +/* 05EC18 7F02A0E8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02A0EC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02A0EC +/* 05EC1C 7F02A0EC 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 05EC20 7F02A0F0 AFBF0014 */ sw $ra, 0x14($sp) +/* 05EC24 7F02A0F4 AFA60040 */ sw $a2, 0x40($sp) +/* 05EC28 7F02A0F8 8C870018 */ lw $a3, 0x18($a0) +/* 05EC2C 7F02A0FC 27A60028 */ addiu $a2, $sp, 0x28 +/* 05EC30 7F02A100 0FC0A811 */ jal sub_GAME_7F02A044 +/* 05EC34 7F02A104 AFA70034 */ sw $a3, 0x34($sp) +/* 05EC38 7F02A108 C7A00040 */ lwc1 $f0, 0x40($sp) +/* 05EC3C 7F02A10C C7A40028 */ lwc1 $f4, 0x28($sp) +/* 05EC40 7F02A110 8FA40034 */ lw $a0, 0x34($sp) +/* 05EC44 7F02A114 C7B20030 */ lwc1 $f18, 0x30($sp) +/* 05EC48 7F02A118 46002182 */ mul.s $f6, $f4, $f0 +/* 05EC4C 7F02A11C C4880008 */ lwc1 $f8, 8($a0) +/* 05EC50 7F02A120 27A5001C */ addiu $a1, $sp, 0x1c +/* 05EC54 7F02A124 46009102 */ mul.s $f4, $f18, $f0 +/* 05EC58 7F02A128 27A60028 */ addiu $a2, $sp, 0x28 +/* 05EC5C 7F02A12C 46083280 */ add.s $f10, $f6, $f8 +/* 05EC60 7F02A130 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 05EC64 7F02A134 C490000C */ lwc1 $f16, 0xc($a0) +/* 05EC68 7F02A138 E7B00020 */ swc1 $f16, 0x20($sp) +/* 05EC6C 7F02A13C C4860010 */ lwc1 $f6, 0x10($a0) +/* 05EC70 7F02A140 46062200 */ add.s $f8, $f4, $f6 +/* 05EC74 7F02A144 0FC0A60B */ jal sub_GAME_7F02982C +/* 05EC78 7F02A148 E7A80024 */ swc1 $f8, 0x24($sp) +/* 05EC7C 7F02A14C 8FBF0014 */ lw $ra, 0x14($sp) +/* 05EC80 7F02A150 27BD0038 */ addiu $sp, $sp, 0x38 +/* 05EC84 7F02A154 03E00008 */ jr $ra +/* 05EC88 7F02A158 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02A15C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02A15C +/* 05EC8C 7F02A15C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05EC90 7F02A160 AFBF001C */ sw $ra, 0x1c($sp) +/* 05EC94 7F02A164 AFB00018 */ sw $s0, 0x18($sp) +/* 05EC98 7F02A168 AFA5002C */ sw $a1, 0x2c($sp) +/* 05EC9C 7F02A16C 00C08025 */ move $s0, $a2 +/* 05ECA0 7F02A170 0FC1B320 */ jal getsubroty +/* 05ECA4 7F02A174 8C84001C */ lw $a0, 0x1c($a0) +/* 05ECA8 7F02A178 8FAE002C */ lw $t6, 0x2c($sp) +/* 05ECAC 7F02A17C 46000306 */ mov.s $f12, $f0 +/* 05ECB0 7F02A180 11C0000B */ beqz $t6, .L7F02A1B0 +/* 05ECB4 7F02A184 00000000 */ nop +/* 05ECB8 7F02A188 0FC15FA8 */ jal cosf +/* 05ECBC 7F02A18C E7AC0024 */ swc1 $f12, 0x24($sp) +/* 05ECC0 7F02A190 44802000 */ mtc1 $zero, $f4 +/* 05ECC4 7F02A194 C7AC0024 */ lwc1 $f12, 0x24($sp) +/* 05ECC8 7F02A198 E6000000 */ swc1 $f0, ($s0) +/* 05ECCC 7F02A19C 0FC15FAB */ jal sinf +/* 05ECD0 7F02A1A0 E6040004 */ swc1 $f4, 4($s0) +/* 05ECD4 7F02A1A4 46000187 */ neg.s $f6, $f0 +/* 05ECD8 7F02A1A8 1000000A */ b .L7F02A1D4 +/* 05ECDC 7F02A1AC E6060008 */ swc1 $f6, 8($s0) +.L7F02A1B0: +/* 05ECE0 7F02A1B0 0FC15FA8 */ jal cosf +/* 05ECE4 7F02A1B4 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 05ECE8 7F02A1B8 44805000 */ mtc1 $zero, $f10 +/* 05ECEC 7F02A1BC 46000207 */ neg.s $f8, $f0 +/* 05ECF0 7F02A1C0 C7AC0024 */ lwc1 $f12, 0x24($sp) +/* 05ECF4 7F02A1C4 E6080000 */ swc1 $f8, ($s0) +/* 05ECF8 7F02A1C8 0FC15FAB */ jal sinf +/* 05ECFC 7F02A1CC E60A0004 */ swc1 $f10, 4($s0) +/* 05ED00 7F02A1D0 E6000008 */ swc1 $f0, 8($s0) +.L7F02A1D4: +/* 05ED04 7F02A1D4 8FBF001C */ lw $ra, 0x1c($sp) +/* 05ED08 7F02A1D8 8FB00018 */ lw $s0, 0x18($sp) +/* 05ED0C 7F02A1DC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05ED10 7F02A1E0 03E00008 */ jr $ra +/* 05ED14 7F02A1E4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02A1E8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02A1E8 +/* 05ED18 7F02A1E8 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 05ED1C 7F02A1EC AFBF0014 */ sw $ra, 0x14($sp) +/* 05ED20 7F02A1F0 AFA60040 */ sw $a2, 0x40($sp) +/* 05ED24 7F02A1F4 8C870018 */ lw $a3, 0x18($a0) +/* 05ED28 7F02A1F8 27A60028 */ addiu $a2, $sp, 0x28 +/* 05ED2C 7F02A1FC 0FC0A857 */ jal sub_GAME_7F02A15C +/* 05ED30 7F02A200 AFA70034 */ sw $a3, 0x34($sp) +/* 05ED34 7F02A204 C7A00040 */ lwc1 $f0, 0x40($sp) +/* 05ED38 7F02A208 C7A40028 */ lwc1 $f4, 0x28($sp) +/* 05ED3C 7F02A20C 8FA40034 */ lw $a0, 0x34($sp) +/* 05ED40 7F02A210 C7B20030 */ lwc1 $f18, 0x30($sp) +/* 05ED44 7F02A214 46002182 */ mul.s $f6, $f4, $f0 +/* 05ED48 7F02A218 C4880008 */ lwc1 $f8, 8($a0) +/* 05ED4C 7F02A21C 27A5001C */ addiu $a1, $sp, 0x1c +/* 05ED50 7F02A220 46009102 */ mul.s $f4, $f18, $f0 +/* 05ED54 7F02A224 27A60028 */ addiu $a2, $sp, 0x28 +/* 05ED58 7F02A228 46083280 */ add.s $f10, $f6, $f8 +/* 05ED5C 7F02A22C E7AA001C */ swc1 $f10, 0x1c($sp) +/* 05ED60 7F02A230 C490000C */ lwc1 $f16, 0xc($a0) +/* 05ED64 7F02A234 E7B00020 */ swc1 $f16, 0x20($sp) +/* 05ED68 7F02A238 C4860010 */ lwc1 $f6, 0x10($a0) +/* 05ED6C 7F02A23C 46062200 */ add.s $f8, $f4, $f6 +/* 05ED70 7F02A240 0FC0A60B */ jal sub_GAME_7F02982C +/* 05ED74 7F02A244 E7A80024 */ swc1 $f8, 0x24($sp) +/* 05ED78 7F02A248 8FBF0014 */ lw $ra, 0x14($sp) +/* 05ED7C 7F02A24C 27BD0038 */ addiu $sp, $sp, 0x38 +/* 05ED80 7F02A250 03E00008 */ jr $ra +/* 05ED84 7F02A254 00000000 */ nop +) +#endif + + + +s32 true_if_actor_dying_fading_limping_shot(PCHRdata chr) { + s8 currentaction = chr->actiontype; + + if ((currentaction == ACT_DIE) || (currentaction == ACT_DEAD) || (currentaction == ACT_PREARGH) || (currentaction == ACT_ARGH) && !(chr->chrflags & CHRFLAG_00000200)) + return 0; + return 1; +} + + + +s32 true_if_actor_dying_fading(PCHRdata chr) { + s8 currentaction = chr->actiontype; + + return ((currentaction == ACT_DIE) || (currentaction == ACT_DEAD)); +} + + + +#ifdef NONMATCHING +void actor_steps_sideways(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E38 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051E3C +.word 0x3f490fdb /*0.78539819*/ +glabel D_80051E40 +.word 0x40afede0 /*5.4977875*/ +glabel D_80051E44 +.word 0x4016cbe4 /*2.3561945*/ +glabel D_80051E48 +.word 0x407b53d2 /*3.926991*/ +.text +glabel actor_steps_sideways +/* 05EDF8 7F02A2C8 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 05EDFC 7F02A2CC AFBF001C */ sw $ra, 0x1c($sp) +/* 05EE00 7F02A2D0 AFB00018 */ sw $s0, 0x18($sp) +/* 05EE04 7F02A2D4 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05EE08 7F02A2D8 00808025 */ move $s0, $a0 +/* 05EE0C 7F02A2DC 5040004D */ beql $v0, $zero, .L7F02A414 +/* 05EE10 7F02A2E0 00001025 */ move $v0, $zero +/* 05EE14 7F02A2E4 8E0E0018 */ lw $t6, 0x18($s0) +/* 05EE18 7F02A2E8 0FC225E6 */ jal get_curplayer_positiondata +/* 05EE1C 7F02A2EC AFAE004C */ sw $t6, 0x4c($sp) +/* 05EE20 7F02A2F0 8E04001C */ lw $a0, 0x1c($s0) +/* 05EE24 7F02A2F4 0FC1B320 */ jal getsubroty +/* 05EE28 7F02A2F8 AFA20048 */ sw $v0, 0x48($sp) +/* 05EE2C 7F02A2FC 8FA2004C */ lw $v0, 0x4c($sp) +/* 05EE30 7F02A300 8FA30048 */ lw $v1, 0x48($sp) +/* 05EE34 7F02A304 C4460008 */ lwc1 $f6, 8($v0) +/* 05EE38 7F02A308 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 05EE3C 7F02A30C C4640008 */ lwc1 $f4, 8($v1) +/* 05EE40 7F02A310 C4680010 */ lwc1 $f8, 0x10($v1) +/* 05EE44 7F02A314 E7A00040 */ swc1 $f0, 0x40($sp) +/* 05EE48 7F02A318 46062301 */ sub.s $f12, $f4, $f6 +/* 05EE4C 7F02A31C 0FC16A8C */ jal atan2f +/* 05EE50 7F02A320 460A4381 */ sub.s $f14, $f8, $f10 +/* 05EE54 7F02A324 C7B00040 */ lwc1 $f16, 0x40($sp) +/* 05EE58 7F02A328 3C018005 */ lui $at, %hi(D_80051E38) +/* 05EE5C 7F02A32C 4610003C */ c.lt.s $f0, $f16 +/* 05EE60 7F02A330 46100301 */ sub.s $f12, $f0, $f16 +/* 05EE64 7F02A334 45000003 */ bc1f .L7F02A344 +/* 05EE68 7F02A338 46006086 */ mov.s $f2, $f12 +/* 05EE6C 7F02A33C C4321E38 */ lwc1 $f18, %lo(D_80051E38)($at) +/* 05EE70 7F02A340 46126080 */ add.s $f2, $f12, $f18 +.L7F02A344: +/* 05EE74 7F02A344 3C018005 */ lui $at, %hi(D_80051E3C) +/* 05EE78 7F02A348 C4241E3C */ lwc1 $f4, %lo(D_80051E3C)($at) +/* 05EE7C 7F02A34C 3C018005 */ lui $at, %hi(D_80051E40) +/* 05EE80 7F02A350 4604103C */ c.lt.s $f2, $f4 +/* 05EE84 7F02A354 00000000 */ nop +/* 05EE88 7F02A358 45010012 */ bc1t .L7F02A3A4 +/* 05EE8C 7F02A35C 00000000 */ nop +/* 05EE90 7F02A360 C4261E40 */ lwc1 $f6, %lo(D_80051E40)($at) +/* 05EE94 7F02A364 3C018005 */ lui $at, %hi(D_80051E44) +/* 05EE98 7F02A368 4602303C */ c.lt.s $f6, $f2 +/* 05EE9C 7F02A36C 00000000 */ nop +/* 05EEA0 7F02A370 4501000C */ bc1t .L7F02A3A4 +/* 05EEA4 7F02A374 00000000 */ nop +/* 05EEA8 7F02A378 C4281E44 */ lwc1 $f8, %lo(D_80051E44)($at) +/* 05EEAC 7F02A37C 3C018005 */ lui $at, %hi(D_80051E48) +/* 05EEB0 7F02A380 4602403C */ c.lt.s $f8, $f2 +/* 05EEB4 7F02A384 00000000 */ nop +/* 05EEB8 7F02A388 45020022 */ bc1fl .L7F02A414 +/* 05EEBC 7F02A38C 00001025 */ move $v0, $zero +/* 05EEC0 7F02A390 C42A1E48 */ lwc1 $f10, %lo(D_80051E48)($at) +/* 05EEC4 7F02A394 460A103C */ c.lt.s $f2, $f10 +/* 05EEC8 7F02A398 00000000 */ nop +/* 05EECC 7F02A39C 4502001D */ bc1fl .L7F02A414 +/* 05EED0 7F02A3A0 00001025 */ move $v0, $zero +.L7F02A3A4: +/* 05EED4 7F02A3A4 0C002914 */ jal get_random_value +/* 05EED8 7F02A3A8 00000000 */ nop +/* 05EEDC 7F02A3AC 30450001 */ andi $a1, $v0, 1 +/* 05EEE0 7F02A3B0 2CAF0001 */ sltiu $t7, $a1, 1 +/* 05EEE4 7F02A3B4 01E02825 */ move $a1, $t7 +/* 05EEE8 7F02A3B8 AFAF002C */ sw $t7, 0x2c($sp) +/* 05EEEC 7F02A3BC 02002025 */ move $a0, $s0 +/* 05EEF0 7F02A3C0 0FC0A87A */ jal sub_GAME_7F02A1E8 +/* 05EEF4 7F02A3C4 3C0642C8 */ lui $a2, 0x42c8 +/* 05EEF8 7F02A3C8 10400006 */ beqz $v0, .L7F02A3E4 +/* 05EEFC 7F02A3CC 8FA7002C */ lw $a3, 0x2c($sp) +/* 05EF00 7F02A3D0 02002025 */ move $a0, $s0 +/* 05EF04 7F02A3D4 0FC09200 */ jal sub_GAME_7F024800 +/* 05EF08 7F02A3D8 00E02825 */ move $a1, $a3 +/* 05EF0C 7F02A3DC 1000000D */ b .L7F02A414 +/* 05EF10 7F02A3E0 24020001 */ li $v0, 1 +.L7F02A3E4: +/* 05EF14 7F02A3E4 2CE50001 */ sltiu $a1, $a3, 1 +/* 05EF18 7F02A3E8 AFA50024 */ sw $a1, 0x24($sp) +/* 05EF1C 7F02A3EC 02002025 */ move $a0, $s0 +/* 05EF20 7F02A3F0 0FC0A87A */ jal sub_GAME_7F02A1E8 +/* 05EF24 7F02A3F4 3C0642C8 */ lui $a2, 0x42c8 +/* 05EF28 7F02A3F8 10400005 */ beqz $v0, .L7F02A410 +/* 05EF2C 7F02A3FC 8FA50024 */ lw $a1, 0x24($sp) +/* 05EF30 7F02A400 0FC09200 */ jal sub_GAME_7F024800 +/* 05EF34 7F02A404 02002025 */ move $a0, $s0 +/* 05EF38 7F02A408 10000002 */ b .L7F02A414 +/* 05EF3C 7F02A40C 24020001 */ li $v0, 1 +.L7F02A410: +/* 05EF40 7F02A410 00001025 */ move $v0, $zero +.L7F02A414: +/* 05EF44 7F02A414 8FBF001C */ lw $ra, 0x1c($sp) +/* 05EF48 7F02A418 8FB00018 */ lw $s0, 0x18($sp) +/* 05EF4C 7F02A41C 27BD0050 */ addiu $sp, $sp, 0x50 +/* 05EF50 7F02A420 03E00008 */ jr $ra +/* 05EF54 7F02A424 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_hops_sideways(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E4C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051E50 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80051E54 +.word 0x40afede0 /*5.4977875*/ +glabel D_80051E58 +.word 0x4016cbe4 /*2.3561945*/ +glabel D_80051E5C +.word 0x407b53d2 /*3.926991*/ +.text +glabel actor_hops_sideways +/* 05EF58 7F02A428 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 05EF5C 7F02A42C AFBF001C */ sw $ra, 0x1c($sp) +/* 05EF60 7F02A430 AFB00018 */ sw $s0, 0x18($sp) +/* 05EF64 7F02A434 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05EF68 7F02A438 00808025 */ move $s0, $a0 +/* 05EF6C 7F02A43C 5040004D */ beql $v0, $zero, .L7F02A574 +/* 05EF70 7F02A440 00001025 */ move $v0, $zero +/* 05EF74 7F02A444 8E0E0018 */ lw $t6, 0x18($s0) +/* 05EF78 7F02A448 0FC225E6 */ jal get_curplayer_positiondata +/* 05EF7C 7F02A44C AFAE004C */ sw $t6, 0x4c($sp) +/* 05EF80 7F02A450 8E04001C */ lw $a0, 0x1c($s0) +/* 05EF84 7F02A454 0FC1B320 */ jal getsubroty +/* 05EF88 7F02A458 AFA20048 */ sw $v0, 0x48($sp) +/* 05EF8C 7F02A45C 8FA2004C */ lw $v0, 0x4c($sp) +/* 05EF90 7F02A460 8FA30048 */ lw $v1, 0x48($sp) +/* 05EF94 7F02A464 C4460008 */ lwc1 $f6, 8($v0) +/* 05EF98 7F02A468 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 05EF9C 7F02A46C C4640008 */ lwc1 $f4, 8($v1) +/* 05EFA0 7F02A470 C4680010 */ lwc1 $f8, 0x10($v1) +/* 05EFA4 7F02A474 E7A00040 */ swc1 $f0, 0x40($sp) +/* 05EFA8 7F02A478 46062301 */ sub.s $f12, $f4, $f6 +/* 05EFAC 7F02A47C 0FC16A8C */ jal atan2f +/* 05EFB0 7F02A480 460A4381 */ sub.s $f14, $f8, $f10 +/* 05EFB4 7F02A484 C7B00040 */ lwc1 $f16, 0x40($sp) +/* 05EFB8 7F02A488 3C018005 */ lui $at, %hi(D_80051E4C) +/* 05EFBC 7F02A48C 4610003C */ c.lt.s $f0, $f16 +/* 05EFC0 7F02A490 46100301 */ sub.s $f12, $f0, $f16 +/* 05EFC4 7F02A494 45000003 */ bc1f .L7F02A4A4 +/* 05EFC8 7F02A498 46006086 */ mov.s $f2, $f12 +/* 05EFCC 7F02A49C C4321E4C */ lwc1 $f18, %lo(D_80051E4C)($at) +/* 05EFD0 7F02A4A0 46126080 */ add.s $f2, $f12, $f18 +.L7F02A4A4: +/* 05EFD4 7F02A4A4 3C018005 */ lui $at, %hi(D_80051E50) +/* 05EFD8 7F02A4A8 C4241E50 */ lwc1 $f4, %lo(D_80051E50)($at) +/* 05EFDC 7F02A4AC 3C018005 */ lui $at, %hi(D_80051E54) +/* 05EFE0 7F02A4B0 4604103C */ c.lt.s $f2, $f4 +/* 05EFE4 7F02A4B4 00000000 */ nop +/* 05EFE8 7F02A4B8 45010012 */ bc1t .L7F02A504 +/* 05EFEC 7F02A4BC 00000000 */ nop +/* 05EFF0 7F02A4C0 C4261E54 */ lwc1 $f6, %lo(D_80051E54)($at) +/* 05EFF4 7F02A4C4 3C018005 */ lui $at, %hi(D_80051E58) +/* 05EFF8 7F02A4C8 4602303C */ c.lt.s $f6, $f2 +/* 05EFFC 7F02A4CC 00000000 */ nop +/* 05F000 7F02A4D0 4501000C */ bc1t .L7F02A504 +/* 05F004 7F02A4D4 00000000 */ nop +/* 05F008 7F02A4D8 C4281E58 */ lwc1 $f8, %lo(D_80051E58)($at) +/* 05F00C 7F02A4DC 3C018005 */ lui $at, %hi(D_80051E5C) +/* 05F010 7F02A4E0 4602403C */ c.lt.s $f8, $f2 +/* 05F014 7F02A4E4 00000000 */ nop +/* 05F018 7F02A4E8 45020022 */ bc1fl .L7F02A574 +/* 05F01C 7F02A4EC 00001025 */ move $v0, $zero +/* 05F020 7F02A4F0 C42A1E5C */ lwc1 $f10, %lo(D_80051E5C)($at) +/* 05F024 7F02A4F4 460A103C */ c.lt.s $f2, $f10 +/* 05F028 7F02A4F8 00000000 */ nop +/* 05F02C 7F02A4FC 4502001D */ bc1fl .L7F02A574 +/* 05F030 7F02A500 00001025 */ move $v0, $zero +.L7F02A504: +/* 05F034 7F02A504 0C002914 */ jal get_random_value +/* 05F038 7F02A508 00000000 */ nop +/* 05F03C 7F02A50C 30450001 */ andi $a1, $v0, 1 +/* 05F040 7F02A510 2CAF0001 */ sltiu $t7, $a1, 1 +/* 05F044 7F02A514 01E02825 */ move $a1, $t7 +/* 05F048 7F02A518 AFAF002C */ sw $t7, 0x2c($sp) +/* 05F04C 7F02A51C 02002025 */ move $a0, $s0 +/* 05F050 7F02A520 0FC0A87A */ jal sub_GAME_7F02A1E8 +/* 05F054 7F02A524 3C064348 */ lui $a2, 0x4348 +/* 05F058 7F02A528 10400006 */ beqz $v0, .L7F02A544 +/* 05F05C 7F02A52C 8FA7002C */ lw $a3, 0x2c($sp) +/* 05F060 7F02A530 02002025 */ move $a0, $s0 +/* 05F064 7F02A534 0FC092A1 */ jal sub_GAME_7F024A84 +/* 05F068 7F02A538 00E02825 */ move $a1, $a3 +/* 05F06C 7F02A53C 1000000D */ b .L7F02A574 +/* 05F070 7F02A540 24020001 */ li $v0, 1 +.L7F02A544: +/* 05F074 7F02A544 2CE50001 */ sltiu $a1, $a3, 1 +/* 05F078 7F02A548 AFA50024 */ sw $a1, 0x24($sp) +/* 05F07C 7F02A54C 02002025 */ move $a0, $s0 +/* 05F080 7F02A550 0FC0A87A */ jal sub_GAME_7F02A1E8 +/* 05F084 7F02A554 3C064348 */ lui $a2, 0x4348 +/* 05F088 7F02A558 10400005 */ beqz $v0, .L7F02A570 +/* 05F08C 7F02A55C 8FA50024 */ lw $a1, 0x24($sp) +/* 05F090 7F02A560 0FC092A1 */ jal sub_GAME_7F024A84 +/* 05F094 7F02A564 02002025 */ move $a0, $s0 +/* 05F098 7F02A568 10000002 */ b .L7F02A574 +/* 05F09C 7F02A56C 24020001 */ li $v0, 1 +.L7F02A570: +/* 05F0A0 7F02A570 00001025 */ move $v0, $zero +.L7F02A574: +/* 05F0A4 7F02A574 8FBF001C */ lw $ra, 0x1c($sp) +/* 05F0A8 7F02A578 8FB00018 */ lw $s0, 0x18($sp) +/* 05F0AC 7F02A57C 27BD0050 */ addiu $sp, $sp, 0x50 +/* 05F0B0 7F02A580 03E00008 */ jr $ra +/* 05F0B4 7F02A584 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_runs_sideways(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_runs_sideways +/* 05F0B8 7F02A588 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 05F0BC 7F02A58C AFBF0024 */ sw $ra, 0x24($sp) +/* 05F0C0 7F02A590 AFB10020 */ sw $s1, 0x20($sp) +/* 05F0C4 7F02A594 00808825 */ move $s1, $a0 +/* 05F0C8 7F02A598 AFB0001C */ sw $s0, 0x1c($sp) +/* 05F0CC 7F02A59C 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05F0D0 7F02A5A0 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 05F0D4 7F02A5A4 10400050 */ beqz $v0, .L7F02A6E8 +/* 05F0D8 7F02A5A8 3C0E8005 */ lui $t6, %hi(global_timer) +/* 05F0DC 7F02A5AC 8DCE837C */ lw $t6, %lo(global_timer)($t6) +/* 05F0E0 7F02A5B0 8E2F00C8 */ lw $t7, 0xc8($s1) +/* 05F0E4 7F02A5B4 01CFC023 */ subu $t8, $t6, $t7 +/* 05F0E8 7F02A5B8 2B0100B5 */ slti $at, $t8, 0xb5 +/* 05F0EC 7F02A5BC 5420004B */ bnezl $at, .L7F02A6EC +/* 05F0F0 7F02A5C0 00001025 */ move $v0, $zero +/* 05F0F4 7F02A5C4 0C002914 */ jal get_random_value +/* 05F0F8 7F02A5C8 8E300018 */ lw $s0, 0x18($s1) +/* 05F0FC 7F02A5CC 44822000 */ mtc1 $v0, $f4 +/* 05F100 7F02A5D0 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 05F104 7F02A5D4 44810000 */ mtc1 $at, $f0 +/* 05F108 7F02A5D8 04410005 */ bgez $v0, .L7F02A5F0 +/* 05F10C 7F02A5DC 468021A0 */ cvt.s.w $f6, $f4 +/* 05F110 7F02A5E0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 05F114 7F02A5E4 44814000 */ mtc1 $at, $f8 +/* 05F118 7F02A5E8 00000000 */ nop +/* 05F11C 7F02A5EC 46083180 */ add.s $f6, $f6, $f8 +.L7F02A5F0: +/* 05F120 7F02A5F0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 05F124 7F02A5F4 44815000 */ mtc1 $at, $f10 +/* 05F128 7F02A5F8 00000000 */ nop +/* 05F12C 7F02A5FC 460A3402 */ mul.s $f16, $f6, $f10 +/* 05F130 7F02A600 00000000 */ nop +/* 05F134 7F02A604 46008482 */ mul.s $f18, $f16, $f0 +/* 05F138 7F02A608 0C002914 */ jal get_random_value +/* 05F13C 7F02A60C 46009500 */ add.s $f20, $f18, $f0 +/* 05F140 7F02A610 30450001 */ andi $a1, $v0, 1 +/* 05F144 7F02A614 2CB90001 */ sltiu $t9, $a1, 1 +/* 05F148 7F02A618 03202825 */ move $a1, $t9 +/* 05F14C 7F02A61C 02202025 */ move $a0, $s1 +/* 05F150 7F02A620 0FC0A811 */ jal sub_GAME_7F02A044 +/* 05F154 7F02A624 27A6003C */ addiu $a2, $sp, 0x3c +/* 05F158 7F02A628 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 05F15C 7F02A62C C6060008 */ lwc1 $f6, 8($s0) +/* 05F160 7F02A630 C7B20044 */ lwc1 $f18, 0x44($sp) +/* 05F164 7F02A634 46142202 */ mul.s $f8, $f4, $f20 +/* 05F168 7F02A638 02002025 */ move $a0, $s0 +/* 05F16C 7F02A63C 27A50030 */ addiu $a1, $sp, 0x30 +/* 05F170 7F02A640 46149102 */ mul.s $f4, $f18, $f20 +/* 05F174 7F02A644 27A6003C */ addiu $a2, $sp, 0x3c +/* 05F178 7F02A648 46064280 */ add.s $f10, $f8, $f6 +/* 05F17C 7F02A64C E7AA0030 */ swc1 $f10, 0x30($sp) +/* 05F180 7F02A650 C610000C */ lwc1 $f16, 0xc($s0) +/* 05F184 7F02A654 E7B00034 */ swc1 $f16, 0x34($sp) +/* 05F188 7F02A658 C6080010 */ lwc1 $f8, 0x10($s0) +/* 05F18C 7F02A65C 46082180 */ add.s $f6, $f4, $f8 +/* 05F190 7F02A660 0FC0A60B */ jal sub_GAME_7F02982C +/* 05F194 7F02A664 E7A60038 */ swc1 $f6, 0x38($sp) +/* 05F198 7F02A668 10400006 */ beqz $v0, .L7F02A684 +/* 05F19C 7F02A66C C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 05F1A0 7F02A670 02202025 */ move $a0, $s1 +/* 05F1A4 7F02A674 0FC0933E */ jal sub_GAME_7F024CF8 +/* 05F1A8 7F02A678 27A50030 */ addiu $a1, $sp, 0x30 +/* 05F1AC 7F02A67C 1000001B */ b .L7F02A6EC +/* 05F1B0 7F02A680 24020001 */ li $v0, 1 +.L7F02A684: +/* 05F1B4 7F02A684 C7B20044 */ lwc1 $f18, 0x44($sp) +/* 05F1B8 7F02A688 46005407 */ neg.s $f16, $f10 +/* 05F1BC 7F02A68C 02002025 */ move $a0, $s0 +/* 05F1C0 7F02A690 46148202 */ mul.s $f8, $f16, $f20 +/* 05F1C4 7F02A694 46009107 */ neg.s $f4, $f18 +/* 05F1C8 7F02A698 E7B0003C */ swc1 $f16, 0x3c($sp) +/* 05F1CC 7F02A69C E7A40044 */ swc1 $f4, 0x44($sp) +/* 05F1D0 7F02A6A0 C6060008 */ lwc1 $f6, 8($s0) +/* 05F1D4 7F02A6A4 46142402 */ mul.s $f16, $f4, $f20 +/* 05F1D8 7F02A6A8 27A50030 */ addiu $a1, $sp, 0x30 +/* 05F1DC 7F02A6AC 46064280 */ add.s $f10, $f8, $f6 +/* 05F1E0 7F02A6B0 27A6003C */ addiu $a2, $sp, 0x3c +/* 05F1E4 7F02A6B4 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 05F1E8 7F02A6B8 C612000C */ lwc1 $f18, 0xc($s0) +/* 05F1EC 7F02A6BC E7B20034 */ swc1 $f18, 0x34($sp) +/* 05F1F0 7F02A6C0 C6080010 */ lwc1 $f8, 0x10($s0) +/* 05F1F4 7F02A6C4 46088180 */ add.s $f6, $f16, $f8 +/* 05F1F8 7F02A6C8 0FC0A60B */ jal sub_GAME_7F02982C +/* 05F1FC 7F02A6CC E7A60038 */ swc1 $f6, 0x38($sp) +/* 05F200 7F02A6D0 10400005 */ beqz $v0, .L7F02A6E8 +/* 05F204 7F02A6D4 02202025 */ move $a0, $s1 +/* 05F208 7F02A6D8 0FC0933E */ jal sub_GAME_7F024CF8 +/* 05F20C 7F02A6DC 27A50030 */ addiu $a1, $sp, 0x30 +/* 05F210 7F02A6E0 10000002 */ b .L7F02A6EC +/* 05F214 7F02A6E4 24020001 */ li $v0, 1 +.L7F02A6E8: +/* 05F218 7F02A6E8 00001025 */ move $v0, $zero +.L7F02A6EC: +/* 05F21C 7F02A6EC 8FBF0024 */ lw $ra, 0x24($sp) +/* 05F220 7F02A6F0 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 05F224 7F02A6F4 8FB0001C */ lw $s0, 0x1c($sp) +/* 05F228 7F02A6F8 8FB10020 */ lw $s1, 0x20($sp) +/* 05F22C 7F02A6FC 03E00008 */ jr $ra +/* 05F230 7F02A700 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + +#ifdef NONMATCHING +void actor_walks_and_fires(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E60 +.word 0x49742400 /*1000000.0*/ +.text +glabel actor_walks_and_fires +/* 05F234 7F02A704 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05F238 7F02A708 AFBF001C */ sw $ra, 0x1c($sp) +/* 05F23C 7F02A70C AFB00018 */ sw $s0, 0x18($sp) +/* 05F240 7F02A710 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05F244 7F02A714 00808025 */ move $s0, $a0 +/* 05F248 7F02A718 50400032 */ beql $v0, $zero, .L7F02A7E4 +/* 05F24C 7F02A71C 00001025 */ move $v0, $zero +/* 05F250 7F02A720 8E0E0018 */ lw $t6, 0x18($s0) +/* 05F254 7F02A724 0FC225E6 */ jal get_curplayer_positiondata +/* 05F258 7F02A728 AFAE0024 */ sw $t6, 0x24($sp) +/* 05F25C 7F02A72C 02002025 */ move $a0, $s0 +/* 05F260 7F02A730 00002825 */ move $a1, $zero +/* 05F264 7F02A734 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F268 7F02A738 AFA20020 */ sw $v0, 0x20($sp) +/* 05F26C 7F02A73C 14400007 */ bnez $v0, .L7F02A75C +/* 05F270 7F02A740 8FA30020 */ lw $v1, 0x20($sp) +/* 05F274 7F02A744 02002025 */ move $a0, $s0 +/* 05F278 7F02A748 24050001 */ li $a1, 1 +/* 05F27C 7F02A74C 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F280 7F02A750 AFA30020 */ sw $v1, 0x20($sp) +/* 05F284 7F02A754 10400022 */ beqz $v0, .L7F02A7E0 +/* 05F288 7F02A758 8FA30020 */ lw $v1, 0x20($sp) +.L7F02A75C: +/* 05F28C 7F02A75C 3C0F8005 */ lui $t7, %hi(global_timer) +/* 05F290 7F02A760 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 05F294 7F02A764 8E1800C8 */ lw $t8, 0xc8($s0) +/* 05F298 7F02A768 8FA20024 */ lw $v0, 0x24($sp) +/* 05F29C 7F02A76C 01F8C823 */ subu $t9, $t7, $t8 +/* 05F2A0 7F02A770 2B2100B5 */ slti $at, $t9, 0xb5 +/* 05F2A4 7F02A774 5420001B */ bnezl $at, .L7F02A7E4 +/* 05F2A8 7F02A778 00001025 */ move $v0, $zero +/* 05F2AC 7F02A77C C4640008 */ lwc1 $f4, 8($v1) +/* 05F2B0 7F02A780 C4460008 */ lwc1 $f6, 8($v0) +/* 05F2B4 7F02A784 C468000C */ lwc1 $f8, 0xc($v1) +/* 05F2B8 7F02A788 C44A000C */ lwc1 $f10, 0xc($v0) +/* 05F2BC 7F02A78C 46062001 */ sub.s $f0, $f4, $f6 +/* 05F2C0 7F02A790 C4700010 */ lwc1 $f16, 0x10($v1) +/* 05F2C4 7F02A794 C4520010 */ lwc1 $f18, 0x10($v0) +/* 05F2C8 7F02A798 460A4081 */ sub.s $f2, $f8, $f10 +/* 05F2CC 7F02A79C 46000102 */ mul.s $f4, $f0, $f0 +/* 05F2D0 7F02A7A0 3C018005 */ lui $at, %hi(D_80051E60) +/* 05F2D4 7F02A7A4 46128301 */ sub.s $f12, $f16, $f18 +/* 05F2D8 7F02A7A8 46021182 */ mul.s $f6, $f2, $f2 +/* 05F2DC 7F02A7AC C4321E60 */ lwc1 $f18, %lo(D_80051E60)($at) +/* 05F2E0 7F02A7B0 02002025 */ move $a0, $s0 +/* 05F2E4 7F02A7B4 460C6282 */ mul.s $f10, $f12, $f12 +/* 05F2E8 7F02A7B8 46062200 */ add.s $f8, $f4, $f6 +/* 05F2EC 7F02A7BC 460A4400 */ add.s $f16, $f8, $f10 +/* 05F2F0 7F02A7C0 4610903E */ c.le.s $f18, $f16 +/* 05F2F4 7F02A7C4 00000000 */ nop +/* 05F2F8 7F02A7C8 45020006 */ bc1fl .L7F02A7E4 +/* 05F2FC 7F02A7CC 00001025 */ move $v0, $zero +/* 05F300 7F02A7D0 0FC0961F */ jal sub_GAME_7F02587C +/* 05F304 7F02A7D4 00002825 */ move $a1, $zero +/* 05F308 7F02A7D8 10000002 */ b .L7F02A7E4 +/* 05F30C 7F02A7DC 24020001 */ li $v0, 1 +.L7F02A7E0: +/* 05F310 7F02A7E0 00001025 */ move $v0, $zero +.L7F02A7E4: +/* 05F314 7F02A7E4 8FBF001C */ lw $ra, 0x1c($sp) +/* 05F318 7F02A7E8 8FB00018 */ lw $s0, 0x18($sp) +/* 05F31C 7F02A7EC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05F320 7F02A7F0 03E00008 */ jr $ra +/* 05F324 7F02A7F4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_runs_and_fires(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E64 +.word 0x49742400 /*1000000.0*/ +.text +glabel actor_runs_and_fires +/* 05F328 7F02A7F8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 05F32C 7F02A7FC AFBF001C */ sw $ra, 0x1c($sp) +/* 05F330 7F02A800 AFB00018 */ sw $s0, 0x18($sp) +/* 05F334 7F02A804 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05F338 7F02A808 00808025 */ move $s0, $a0 +/* 05F33C 7F02A80C 50400032 */ beql $v0, $zero, .L7F02A8D8 +/* 05F340 7F02A810 00001025 */ move $v0, $zero +/* 05F344 7F02A814 8E0E0018 */ lw $t6, 0x18($s0) +/* 05F348 7F02A818 0FC225E6 */ jal get_curplayer_positiondata +/* 05F34C 7F02A81C AFAE0024 */ sw $t6, 0x24($sp) +/* 05F350 7F02A820 02002025 */ move $a0, $s0 +/* 05F354 7F02A824 00002825 */ move $a1, $zero +/* 05F358 7F02A828 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F35C 7F02A82C AFA20020 */ sw $v0, 0x20($sp) +/* 05F360 7F02A830 14400007 */ bnez $v0, .L7F02A850 +/* 05F364 7F02A834 8FA30020 */ lw $v1, 0x20($sp) +/* 05F368 7F02A838 02002025 */ move $a0, $s0 +/* 05F36C 7F02A83C 24050001 */ li $a1, 1 +/* 05F370 7F02A840 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F374 7F02A844 AFA30020 */ sw $v1, 0x20($sp) +/* 05F378 7F02A848 10400022 */ beqz $v0, .L7F02A8D4 +/* 05F37C 7F02A84C 8FA30020 */ lw $v1, 0x20($sp) +.L7F02A850: +/* 05F380 7F02A850 3C0F8005 */ lui $t7, %hi(global_timer) +/* 05F384 7F02A854 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 05F388 7F02A858 8E1800C8 */ lw $t8, 0xc8($s0) +/* 05F38C 7F02A85C 8FA20024 */ lw $v0, 0x24($sp) +/* 05F390 7F02A860 01F8C823 */ subu $t9, $t7, $t8 +/* 05F394 7F02A864 2B2100B5 */ slti $at, $t9, 0xb5 +/* 05F398 7F02A868 5420001B */ bnezl $at, .L7F02A8D8 +/* 05F39C 7F02A86C 00001025 */ move $v0, $zero +/* 05F3A0 7F02A870 C4640008 */ lwc1 $f4, 8($v1) +/* 05F3A4 7F02A874 C4460008 */ lwc1 $f6, 8($v0) +/* 05F3A8 7F02A878 C468000C */ lwc1 $f8, 0xc($v1) +/* 05F3AC 7F02A87C C44A000C */ lwc1 $f10, 0xc($v0) +/* 05F3B0 7F02A880 46062001 */ sub.s $f0, $f4, $f6 +/* 05F3B4 7F02A884 C4700010 */ lwc1 $f16, 0x10($v1) +/* 05F3B8 7F02A888 C4520010 */ lwc1 $f18, 0x10($v0) +/* 05F3BC 7F02A88C 460A4081 */ sub.s $f2, $f8, $f10 +/* 05F3C0 7F02A890 46000102 */ mul.s $f4, $f0, $f0 +/* 05F3C4 7F02A894 3C018005 */ lui $at, %hi(D_80051E64) +/* 05F3C8 7F02A898 46128301 */ sub.s $f12, $f16, $f18 +/* 05F3CC 7F02A89C 46021182 */ mul.s $f6, $f2, $f2 +/* 05F3D0 7F02A8A0 C4321E64 */ lwc1 $f18, %lo(D_80051E64)($at) +/* 05F3D4 7F02A8A4 02002025 */ move $a0, $s0 +/* 05F3D8 7F02A8A8 460C6282 */ mul.s $f10, $f12, $f12 +/* 05F3DC 7F02A8AC 46062200 */ add.s $f8, $f4, $f6 +/* 05F3E0 7F02A8B0 460A4400 */ add.s $f16, $f8, $f10 +/* 05F3E4 7F02A8B4 4610903E */ c.le.s $f18, $f16 +/* 05F3E8 7F02A8B8 00000000 */ nop +/* 05F3EC 7F02A8BC 45020006 */ bc1fl .L7F02A8D8 +/* 05F3F0 7F02A8C0 00001025 */ move $v0, $zero +/* 05F3F4 7F02A8C4 0FC0961F */ jal sub_GAME_7F02587C +/* 05F3F8 7F02A8C8 24050001 */ li $a1, 1 +/* 05F3FC 7F02A8CC 10000002 */ b .L7F02A8D8 +/* 05F400 7F02A8D0 24020001 */ li $v0, 1 +.L7F02A8D4: +/* 05F404 7F02A8D4 00001025 */ move $v0, $zero +.L7F02A8D8: +/* 05F408 7F02A8D8 8FBF001C */ lw $ra, 0x1c($sp) +/* 05F40C 7F02A8DC 8FB00018 */ lw $s0, 0x18($sp) +/* 05F410 7F02A8E0 27BD0028 */ addiu $sp, $sp, 0x28 +/* 05F414 7F02A8E4 03E00008 */ jr $ra +/* 05F418 7F02A8E8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_rolls_fires_crouched(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E68 +.word 0x471c4000 /*40000.0*/ +.text +glabel actor_rolls_fires_crouched +/* 05F41C 7F02A8EC 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 05F420 7F02A8F0 AFBF001C */ sw $ra, 0x1c($sp) +/* 05F424 7F02A8F4 AFB00018 */ sw $s0, 0x18($sp) +/* 05F428 7F02A8F8 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05F42C 7F02A8FC 00808025 */ move $s0, $a0 +/* 05F430 7F02A900 50400041 */ beql $v0, $zero, .L7F02AA08 +/* 05F434 7F02A904 00001025 */ move $v0, $zero +/* 05F438 7F02A908 8E0E0018 */ lw $t6, 0x18($s0) +/* 05F43C 7F02A90C 0FC225E6 */ jal get_curplayer_positiondata +/* 05F440 7F02A910 AFAE0044 */ sw $t6, 0x44($sp) +/* 05F444 7F02A914 02002025 */ move $a0, $s0 +/* 05F448 7F02A918 00002825 */ move $a1, $zero +/* 05F44C 7F02A91C 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F450 7F02A920 AFA20040 */ sw $v0, 0x40($sp) +/* 05F454 7F02A924 14400007 */ bnez $v0, .L7F02A944 +/* 05F458 7F02A928 8FA30040 */ lw $v1, 0x40($sp) +/* 05F45C 7F02A92C 02002025 */ move $a0, $s0 +/* 05F460 7F02A930 24050001 */ li $a1, 1 +/* 05F464 7F02A934 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F468 7F02A938 AFA30040 */ sw $v1, 0x40($sp) +/* 05F46C 7F02A93C 10400031 */ beqz $v0, .L7F02AA04 +/* 05F470 7F02A940 8FA30040 */ lw $v1, 0x40($sp) +.L7F02A944: +/* 05F474 7F02A944 8FA20044 */ lw $v0, 0x44($sp) +/* 05F478 7F02A948 C4640008 */ lwc1 $f4, 8($v1) +/* 05F47C 7F02A94C C468000C */ lwc1 $f8, 0xc($v1) +/* 05F480 7F02A950 C4460008 */ lwc1 $f6, 8($v0) +/* 05F484 7F02A954 C44A000C */ lwc1 $f10, 0xc($v0) +/* 05F488 7F02A958 C4700010 */ lwc1 $f16, 0x10($v1) +/* 05F48C 7F02A95C 46062001 */ sub.s $f0, $f4, $f6 +/* 05F490 7F02A960 C4520010 */ lwc1 $f18, 0x10($v0) +/* 05F494 7F02A964 3C018005 */ lui $at, %hi(D_80051E68) +/* 05F498 7F02A968 460A4081 */ sub.s $f2, $f8, $f10 +/* 05F49C 7F02A96C 46000102 */ mul.s $f4, $f0, $f0 +/* 05F4A0 7F02A970 46128301 */ sub.s $f12, $f16, $f18 +/* 05F4A4 7F02A974 46021182 */ mul.s $f6, $f2, $f2 +/* 05F4A8 7F02A978 C4321E68 */ lwc1 $f18, %lo(D_80051E68)($at) +/* 05F4AC 7F02A97C 460C6282 */ mul.s $f10, $f12, $f12 +/* 05F4B0 7F02A980 46062200 */ add.s $f8, $f4, $f6 +/* 05F4B4 7F02A984 460A4400 */ add.s $f16, $f8, $f10 +/* 05F4B8 7F02A988 4610903E */ c.le.s $f18, $f16 +/* 05F4BC 7F02A98C 00000000 */ nop +/* 05F4C0 7F02A990 4502001D */ bc1fl .L7F02AA08 +/* 05F4C4 7F02A994 00001025 */ move $v0, $zero +/* 05F4C8 7F02A998 0C002914 */ jal get_random_value +/* 05F4CC 7F02A99C 00000000 */ nop +/* 05F4D0 7F02A9A0 30450001 */ andi $a1, $v0, 1 +/* 05F4D4 7F02A9A4 2CAF0001 */ sltiu $t7, $a1, 1 +/* 05F4D8 7F02A9A8 01E02825 */ move $a1, $t7 +/* 05F4DC 7F02A9AC AFAF002C */ sw $t7, 0x2c($sp) +/* 05F4E0 7F02A9B0 02002025 */ move $a0, $s0 +/* 05F4E4 7F02A9B4 0FC0A83B */ jal sub_GAME_7F02A0EC +/* 05F4E8 7F02A9B8 3C064348 */ lui $a2, 0x4348 +/* 05F4EC 7F02A9BC 10400006 */ beqz $v0, .L7F02A9D8 +/* 05F4F0 7F02A9C0 8FA7002C */ lw $a3, 0x2c($sp) +/* 05F4F4 7F02A9C4 02002025 */ move $a0, $s0 +/* 05F4F8 7F02A9C8 0FC09710 */ jal sub_GAME_7F025C40 +/* 05F4FC 7F02A9CC 00E02825 */ move $a1, $a3 +/* 05F500 7F02A9D0 1000000D */ b .L7F02AA08 +/* 05F504 7F02A9D4 24020001 */ li $v0, 1 +.L7F02A9D8: +/* 05F508 7F02A9D8 2CE50001 */ sltiu $a1, $a3, 1 +/* 05F50C 7F02A9DC AFA50024 */ sw $a1, 0x24($sp) +/* 05F510 7F02A9E0 02002025 */ move $a0, $s0 +/* 05F514 7F02A9E4 0FC0A83B */ jal sub_GAME_7F02A0EC +/* 05F518 7F02A9E8 3C064348 */ lui $a2, 0x4348 +/* 05F51C 7F02A9EC 10400005 */ beqz $v0, .L7F02AA04 +/* 05F520 7F02A9F0 8FA50024 */ lw $a1, 0x24($sp) +/* 05F524 7F02A9F4 0FC09710 */ jal sub_GAME_7F025C40 +/* 05F528 7F02A9F8 02002025 */ move $a0, $s0 +/* 05F52C 7F02A9FC 10000002 */ b .L7F02AA08 +/* 05F530 7F02AA00 24020001 */ li $v0, 1 +.L7F02AA04: +/* 05F534 7F02AA04 00001025 */ move $v0, $zero +.L7F02AA08: +/* 05F538 7F02AA08 8FBF001C */ lw $ra, 0x1c($sp) +/* 05F53C 7F02AA0C 8FB00018 */ lw $s0, 0x18($sp) +/* 05F540 7F02AA10 27BD0048 */ addiu $sp, $sp, 0x48 +/* 05F544 7F02AA14 03E00008 */ jr $ra +/* 05F548 7F02AA18 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_aim_at_actor(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_aim_at_actor +/* 05F54C 7F02AA1C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05F550 7F02AA20 AFBF0014 */ sw $ra, 0x14($sp) +/* 05F554 7F02AA24 AFA40018 */ sw $a0, 0x18($sp) +/* 05F558 7F02AA28 AFA5001C */ sw $a1, 0x1c($sp) +/* 05F55C 7F02AA2C 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05F560 7F02AA30 AFA60020 */ sw $a2, 0x20($sp) +/* 05F564 7F02AA34 1040000F */ beqz $v0, .L7F02AA74 +/* 05F568 7F02AA38 8FA40018 */ lw $a0, 0x18($sp) +/* 05F56C 7F02AA3C 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F570 7F02AA40 00002825 */ move $a1, $zero +/* 05F574 7F02AA44 14400005 */ bnez $v0, .L7F02AA5C +/* 05F578 7F02AA48 8FA40018 */ lw $a0, 0x18($sp) +/* 05F57C 7F02AA4C 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F580 7F02AA50 24050001 */ li $a1, 1 +/* 05F584 7F02AA54 50400008 */ beql $v0, $zero, .L7F02AA78 +/* 05F588 7F02AA58 00001025 */ move $v0, $zero +.L7F02AA5C: +/* 05F58C 7F02AA5C 8FA40018 */ lw $a0, 0x18($sp) +/* 05F590 7F02AA60 8FA5001C */ lw $a1, 0x1c($sp) +/* 05F594 7F02AA64 0FC09558 */ jal sub_GAME_7F025560 +/* 05F598 7F02AA68 8FA60020 */ lw $a2, 0x20($sp) +/* 05F59C 7F02AA6C 10000002 */ b .L7F02AA78 +/* 05F5A0 7F02AA70 24020001 */ li $v0, 1 +.L7F02AA74: +/* 05F5A4 7F02AA74 00001025 */ move $v0, $zero +.L7F02AA78: +/* 05F5A8 7F02AA78 8FBF0014 */ lw $ra, 0x14($sp) +/* 05F5AC 7F02AA7C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05F5B0 7F02AA80 03E00008 */ jr $ra +/* 05F5B4 7F02AA84 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_kneel_aim_at_actor(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_kneel_aim_at_actor +/* 05F5B8 7F02AA88 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05F5BC 7F02AA8C AFBF0014 */ sw $ra, 0x14($sp) +/* 05F5C0 7F02AA90 AFA40018 */ sw $a0, 0x18($sp) +/* 05F5C4 7F02AA94 AFA5001C */ sw $a1, 0x1c($sp) +/* 05F5C8 7F02AA98 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05F5CC 7F02AA9C AFA60020 */ sw $a2, 0x20($sp) +/* 05F5D0 7F02AAA0 1040000F */ beqz $v0, .L7F02AAE0 +/* 05F5D4 7F02AAA4 8FA40018 */ lw $a0, 0x18($sp) +/* 05F5D8 7F02AAA8 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F5DC 7F02AAAC 00002825 */ move $a1, $zero +/* 05F5E0 7F02AAB0 14400005 */ bnez $v0, .L7F02AAC8 +/* 05F5E4 7F02AAB4 8FA40018 */ lw $a0, 0x18($sp) +/* 05F5E8 7F02AAB8 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 05F5EC 7F02AABC 24050001 */ li $a1, 1 +/* 05F5F0 7F02AAC0 50400008 */ beql $v0, $zero, .L7F02AAE4 +/* 05F5F4 7F02AAC4 00001025 */ move $v0, $zero +.L7F02AAC8: +/* 05F5F8 7F02AAC8 8FA40018 */ lw $a0, 0x18($sp) +/* 05F5FC 7F02AACC 8FA5001C */ lw $a1, 0x1c($sp) +/* 05F600 7F02AAD0 0FC095BC */ jal sub_GAME_7F0256F0 +/* 05F604 7F02AAD4 8FA60020 */ lw $a2, 0x20($sp) +/* 05F608 7F02AAD8 10000002 */ b .L7F02AAE4 +/* 05F60C 7F02AADC 24020001 */ li $v0, 1 +.L7F02AAE0: +/* 05F610 7F02AAE0 00001025 */ move $v0, $zero +.L7F02AAE4: +/* 05F614 7F02AAE4 8FBF0014 */ lw $ra, 0x14($sp) +/* 05F618 7F02AAE8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05F61C 7F02AAEC 03E00008 */ jr $ra +/* 05F620 7F02AAF0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02AAF4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02AAF4 +/* 05F624 7F02AAF4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05F628 7F02AAF8 AFBF0014 */ sw $ra, 0x14($sp) +/* 05F62C 7F02AAFC 808E0007 */ lb $t6, 7($a0) +/* 05F630 7F02AB00 24010008 */ li $at, 8 +/* 05F634 7F02AB04 00001025 */ move $v0, $zero +/* 05F638 7F02AB08 15C1000A */ bne $t6, $at, .L7F02AB34 +/* 05F63C 7F02AB0C 00000000 */ nop +/* 05F640 7F02AB10 8C8F004C */ lw $t7, 0x4c($a0) +/* 05F644 7F02AB14 31F80060 */ andi $t8, $t7, 0x60 +/* 05F648 7F02AB18 13000006 */ beqz $t8, .L7F02AB34 +/* 05F64C 7F02AB1C 00000000 */ nop +/* 05F650 7F02AB20 AC85004C */ sw $a1, 0x4c($a0) +/* 05F654 7F02AB24 0FC093E3 */ jal sub_GAME_7F024F8C +/* 05F658 7F02AB28 AC860050 */ sw $a2, 0x50($a0) +/* 05F65C 7F02AB2C 10000001 */ b .L7F02AB34 +/* 05F660 7F02AB30 24020001 */ li $v0, 1 +.L7F02AB34: +/* 05F664 7F02AB34 8FBF0014 */ lw $ra, 0x14($sp) +/* 05F668 7F02AB38 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05F66C 7F02AB3C 03E00008 */ jr $ra +/* 05F670 7F02AB40 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_set_actor_standing_still(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_set_actor_standing_still +/* 05F674 7F02AB44 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05F678 7F02AB48 AFBF0014 */ sw $ra, 0x14($sp) +/* 05F67C 7F02AB4C AFA5001C */ sw $a1, 0x1c($sp) +/* 05F680 7F02AB50 AFA60020 */ sw $a2, 0x20($sp) +/* 05F684 7F02AB54 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05F688 7F02AB58 AFA40018 */ sw $a0, 0x18($sp) +/* 05F68C 7F02AB5C 10400010 */ beqz $v0, .L7F02ABA0 +/* 05F690 7F02AB60 8FA40018 */ lw $a0, 0x18($sp) +/* 05F694 7F02AB64 808E0007 */ lb $t6, 7($a0) +/* 05F698 7F02AB68 24010001 */ li $at, 1 +/* 05F69C 7F02AB6C 51C10005 */ beql $t6, $at, .L7F02AB84 +/* 05F6A0 7F02AB70 8FAF001C */ lw $t7, 0x1c($sp) +/* 05F6A4 7F02AB74 0FC08F2E */ jal sub_GAME_7F023CB8 +/* 05F6A8 7F02AB78 AFA40018 */ sw $a0, 0x18($sp) +/* 05F6AC 7F02AB7C 8FA40018 */ lw $a0, 0x18($sp) +/* 05F6B0 7F02AB80 8FAF001C */ lw $t7, 0x1c($sp) +.L7F02AB84: +/* 05F6B4 7F02AB84 24020001 */ li $v0, 1 +/* 05F6B8 7F02AB88 AC8F0030 */ sw $t7, 0x30($a0) +/* 05F6BC 7F02AB8C 8FB80020 */ lw $t8, 0x20($sp) +/* 05F6C0 7F02AB90 AC800038 */ sw $zero, 0x38($a0) +/* 05F6C4 7F02AB94 AC800040 */ sw $zero, 0x40($a0) +/* 05F6C8 7F02AB98 10000002 */ b .L7F02ABA4 +/* 05F6CC 7F02AB9C AC980034 */ sw $t8, 0x34($a0) +.L7F02ABA0: +/* 05F6D0 7F02ABA0 00001025 */ move $v0, $zero +.L7F02ABA4: +/* 05F6D4 7F02ABA4 8FBF0014 */ lw $ra, 0x14($sp) +/* 05F6D8 7F02ABA8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05F6DC 7F02ABAC 03E00008 */ jr $ra +/* 05F6E0 7F02ABB0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_moves_to_preset_at_speed(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E6C +.word 0x3f8ccccd /*1.1*/ +.text +glabel actor_moves_to_preset_at_speed +/* 05F6E4 7F02ABB4 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 05F6E8 7F02ABB8 AFB10020 */ sw $s1, 0x20($sp) +/* 05F6EC 7F02ABBC AFB0001C */ sw $s0, 0x1c($sp) +/* 05F6F0 7F02ABC0 00A08025 */ move $s0, $a1 +/* 05F6F4 7F02ABC4 00808825 */ move $s1, $a0 +/* 05F6F8 7F02ABC8 AFBF0024 */ sw $ra, 0x24($sp) +/* 05F6FC 7F02ABCC 04A0005B */ bltz $a1, .L7F02AD3C +/* 05F700 7F02ABD0 AFA60048 */ sw $a2, 0x48($sp) +/* 05F704 7F02ABD4 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05F708 7F02ABD8 00000000 */ nop +/* 05F70C 7F02ABDC 10400057 */ beqz $v0, .L7F02AD3C +/* 05F710 7F02ABE0 3C0E8003 */ lui $t6, %hi(setting_007_5) +/* 05F714 7F02ABE4 8DCECE50 */ lw $t6, %lo(setting_007_5)($t6) +/* 05F718 7F02ABE8 02202025 */ move $a0, $s1 +/* 05F71C 7F02ABEC 29C1000A */ slti $at, $t6, 0xa +/* 05F720 7F02ABF0 50200053 */ beql $at, $zero, .L7F02AD40 +/* 05F724 7F02ABF4 00001025 */ move $v0, $zero +/* 05F728 7F02ABF8 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 05F72C 7F02ABFC 02002825 */ move $a1, $s0 +/* 05F730 7F02AC00 28412710 */ slti $at, $v0, 0x2710 +/* 05F734 7F02AC04 1020000A */ beqz $at, .L7F02AC30 +/* 05F738 7F02AC08 0002C900 */ sll $t9, $v0, 4 +/* 05F73C 7F02AC0C 00027880 */ sll $t7, $v0, 2 +/* 05F740 7F02AC10 01E27823 */ subu $t7, $t7, $v0 +/* 05F744 7F02AC14 000F7880 */ sll $t7, $t7, 2 +/* 05F748 7F02AC18 3C188007 */ lui $t8, %hi(ptr_0xxxpresets) +/* 05F74C 7F02AC1C 8F185D18 */ lw $t8, %lo(ptr_0xxxpresets)($t8) +/* 05F750 7F02AC20 01E27823 */ subu $t7, $t7, $v0 +/* 05F754 7F02AC24 000F7880 */ sll $t7, $t7, 2 +/* 05F758 7F02AC28 10000009 */ b .L7F02AC50 +/* 05F75C 7F02AC2C 01F88021 */ addu $s0, $t7, $t8 +.L7F02AC30: +/* 05F760 7F02AC30 3C088007 */ lui $t0, %hi(ptr_2xxxpresets) +/* 05F764 7F02AC34 8D085D1C */ lw $t0, %lo(ptr_2xxxpresets)($t0) +/* 05F768 7F02AC38 0322C821 */ addu $t9, $t9, $v0 +/* 05F76C 7F02AC3C 0019C880 */ sll $t9, $t9, 2 +/* 05F770 7F02AC40 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 05F774 7F02AC44 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 05F778 7F02AC48 03288021 */ addu $s0, $t9, $t0 +/* 05F77C 7F02AC4C 02018021 */ addu $s0, $s0, $at +.L7F02AC50: +/* 05F780 7F02AC50 8E090028 */ lw $t1, 0x28($s0) +/* 05F784 7F02AC54 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05F788 7F02AC58 11200038 */ beqz $t1, .L7F02AD3C +/* 05F78C 7F02AC5C AFA90028 */ sw $t1, 0x28($sp) +/* 05F790 7F02AC60 C6040010 */ lwc1 $f4, 0x10($s0) +/* 05F794 7F02AC64 44813000 */ mtc1 $at, $f6 +/* 05F798 7F02AC68 3C018005 */ lui $at, %hi(D_80051E6C) +/* 05F79C 7F02AC6C 02202025 */ move $a0, $s1 +/* 05F7A0 7F02AC70 4606203C */ c.lt.s $f4, $f6 +/* 05F7A4 7F02AC74 02002825 */ move $a1, $s0 +/* 05F7A8 7F02AC78 8FA60028 */ lw $a2, 0x28($sp) +/* 05F7AC 7F02AC7C 45000029 */ bc1f .L7F02AD24 +/* 05F7B0 7F02AC80 00000000 */ nop +/* 05F7B4 7F02AC84 AFA90038 */ sw $t1, 0x38($sp) +/* 05F7B8 7F02AC88 C4201E6C */ lwc1 $f0, %lo(D_80051E6C)($at) +/* 05F7BC 7F02AC8C C62A0024 */ lwc1 $f10, 0x24($s1) +/* 05F7C0 7F02AC90 C608000C */ lwc1 $f8, 0xc($s0) +/* 05F7C4 7F02AC94 C6040000 */ lwc1 $f4, ($s0) +/* 05F7C8 7F02AC98 46005402 */ mul.s $f16, $f10, $f0 +/* 05F7CC 7F02AC9C 27A40038 */ addiu $a0, $sp, 0x38 +/* 05F7D0 7F02ACA0 46104482 */ mul.s $f18, $f8, $f16 +/* 05F7D4 7F02ACA4 46049180 */ add.s $f6, $f18, $f4 +/* 05F7D8 7F02ACA8 E7A6002C */ swc1 $f6, 0x2c($sp) +/* 05F7DC 7F02ACAC C6280024 */ lwc1 $f8, 0x24($s1) +/* 05F7E0 7F02ACB0 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 05F7E4 7F02ACB4 C6040004 */ lwc1 $f4, 4($s0) +/* 05F7E8 7F02ACB8 46004402 */ mul.s $f16, $f8, $f0 +/* 05F7EC 7F02ACBC 44073000 */ mfc1 $a3, $f6 +/* 05F7F0 7F02ACC0 46105482 */ mul.s $f18, $f10, $f16 +/* 05F7F4 7F02ACC4 46049200 */ add.s $f8, $f18, $f4 +/* 05F7F8 7F02ACC8 E7A80030 */ swc1 $f8, 0x30($sp) +/* 05F7FC 7F02ACCC C6300024 */ lwc1 $f16, 0x24($s1) +/* 05F800 7F02ACD0 C60A0014 */ lwc1 $f10, 0x14($s0) +/* 05F804 7F02ACD4 C6080008 */ lwc1 $f8, 8($s0) +/* 05F808 7F02ACD8 46008482 */ mul.s $f18, $f16, $f0 +/* 05F80C 7F02ACDC 00000000 */ nop +/* 05F810 7F02ACE0 46125102 */ mul.s $f4, $f10, $f18 +/* 05F814 7F02ACE4 46082400 */ add.s $f16, $f4, $f8 +/* 05F818 7F02ACE8 E7B00034 */ swc1 $f16, 0x34($sp) +/* 05F81C 7F02ACEC 8E060008 */ lw $a2, 8($s0) +/* 05F820 7F02ACF0 8E050000 */ lw $a1, ($s0) +/* 05F824 7F02ACF4 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 05F828 7F02ACF8 E7B00010 */ swc1 $f16, 0x10($sp) +/* 05F82C 7F02ACFC 1040000F */ beqz $v0, .L7F02AD3C +/* 05F830 7F02AD00 02202025 */ move $a0, $s1 +/* 05F834 7F02AD04 27A5002C */ addiu $a1, $sp, 0x2c +/* 05F838 7F02AD08 8FA60038 */ lw $a2, 0x38($sp) +/* 05F83C 7F02AD0C 0FC0A377 */ jal plot_course_for_actor +/* 05F840 7F02AD10 8FA70048 */ lw $a3, 0x48($sp) +/* 05F844 7F02AD14 5040000A */ beql $v0, $zero, .L7F02AD40 +/* 05F848 7F02AD18 00001025 */ move $v0, $zero +/* 05F84C 7F02AD1C 10000008 */ b .L7F02AD40 +/* 05F850 7F02AD20 24020001 */ li $v0, 1 +.L7F02AD24: +/* 05F854 7F02AD24 0FC0A377 */ jal plot_course_for_actor +/* 05F858 7F02AD28 8FA70048 */ lw $a3, 0x48($sp) +/* 05F85C 7F02AD2C 50400004 */ beql $v0, $zero, .L7F02AD40 +/* 05F860 7F02AD30 00001025 */ move $v0, $zero +/* 05F864 7F02AD34 10000002 */ b .L7F02AD40 +/* 05F868 7F02AD38 24020001 */ li $v0, 1 +.L7F02AD3C: +/* 05F86C 7F02AD3C 00001025 */ move $v0, $zero +.L7F02AD40: +/* 05F870 7F02AD40 8FBF0024 */ lw $ra, 0x24($sp) +/* 05F874 7F02AD44 8FB0001C */ lw $s0, 0x1c($sp) +/* 05F878 7F02AD48 8FB10020 */ lw $s1, 0x20($sp) +/* 05F87C 7F02AD4C 03E00008 */ jr $ra +/* 05F880 7F02AD50 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + +#ifdef NONMATCHING +void if_actor_able_set_on_path(void) { + +} +#else +GLOBAL_ASM( +.text +glabel if_actor_able_set_on_path +/* 05F884 7F02AD54 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05F888 7F02AD58 AFBF0014 */ sw $ra, 0x14($sp) +/* 05F88C 7F02AD5C 10A00009 */ beqz $a1, .L7F02AD84 +/* 05F890 7F02AD60 AFA40018 */ sw $a0, 0x18($sp) +/* 05F894 7F02AD64 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 05F898 7F02AD68 AFA5001C */ sw $a1, 0x1c($sp) +/* 05F89C 7F02AD6C 10400005 */ beqz $v0, .L7F02AD84 +/* 05F8A0 7F02AD70 8FA5001C */ lw $a1, 0x1c($sp) +/* 05F8A4 7F02AD74 0FC0A43E */ jal set_actor_on_path +/* 05F8A8 7F02AD78 8FA40018 */ lw $a0, 0x18($sp) +/* 05F8AC 7F02AD7C 10000002 */ b .L7F02AD88 +/* 05F8B0 7F02AD80 24020001 */ li $v0, 1 +.L7F02AD84: +/* 05F8B4 7F02AD84 00001025 */ move $v0, $zero +.L7F02AD88: +/* 05F8B8 7F02AD88 8FBF0014 */ lw $ra, 0x14($sp) +/* 05F8BC 7F02AD8C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05F8C0 7F02AD90 03E00008 */ jr $ra +/* 05F8C4 7F02AD94 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02AD98(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E70 +.word 0x3eb2b8c3 /*0.34906587*/ +glabel D_80051E74 +.word 0x40bde44f /*5.9341197*/ +glabel D_80051E78 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051E7C +.word 0x3f490fdb /*0.78539819*/ +glabel D_80051E80 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051E84 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051E88 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051E8C +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F02AD98 +/* 05F8C8 7F02AD98 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 05F8CC 7F02AD9C AFBF0024 */ sw $ra, 0x24($sp) +/* 05F8D0 7F02ADA0 AFB00020 */ sw $s0, 0x20($sp) +/* 05F8D4 7F02ADA4 808E0008 */ lb $t6, 8($a0) +/* 05F8D8 7F02ADA8 00808025 */ move $s0, $a0 +/* 05F8DC 7F02ADAC 5DC001C8 */ bgtzl $t6, .L7F02B4D0 +/* 05F8E0 7F02ADB0 8FBF0024 */ lw $ra, 0x24($sp) +/* 05F8E4 7F02ADB4 8C8F002C */ lw $t7, 0x2c($a0) +/* 05F8E8 7F02ADB8 51E00012 */ beql $t7, $zero, .L7F02AE04 +/* 05F8EC 7F02ADBC 8E050030 */ lw $a1, 0x30($s0) +/* 05F8F0 7F02ADC0 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 05F8F4 7F02ADC4 8C84001C */ lw $a0, 0x1c($a0) +/* 05F8F8 7F02ADC8 E7A0003C */ swc1 $f0, 0x3c($sp) +/* 05F8FC 7F02ADCC 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 05F900 7F02ADD0 8E04001C */ lw $a0, 0x1c($s0) +/* 05F904 7F02ADD4 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 05F908 7F02ADD8 02002025 */ move $a0, $s0 +/* 05F90C 7F02ADDC 4604003E */ c.le.s $f0, $f4 +/* 05F910 7F02ADE0 00000000 */ nop +/* 05F914 7F02ADE4 45000004 */ bc1f .L7F02ADF8 +/* 05F918 7F02ADE8 00000000 */ nop +/* 05F91C 7F02ADEC 0FC08E52 */ jal sub_GAME_7F023948 +/* 05F920 7F02ADF0 3C054100 */ lui $a1, 0x4100 +/* 05F924 7F02ADF4 AE00002C */ sw $zero, 0x2c($s0) +.L7F02ADF8: +/* 05F928 7F02ADF8 100001B4 */ b .L7F02B4CC +/* 05F92C 7F02ADFC A2000008 */ sb $zero, 8($s0) +/* 05F930 7F02AE00 8E050030 */ lw $a1, 0x30($s0) +.L7F02AE04: +/* 05F934 7F02AE04 18A00095 */ blez $a1, .L7F02B05C +/* 05F938 7F02AE08 00000000 */ nop +/* 05F93C 7F02AE0C 8E180038 */ lw $t8, 0x38($s0) +/* 05F940 7F02AE10 02002025 */ move $a0, $s0 +/* 05F944 7F02AE14 1300001C */ beqz $t8, .L7F02AE88 +/* 05F948 7F02AE18 00000000 */ nop +/* 05F94C 7F02AE1C 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 05F950 7F02AE20 8E04001C */ lw $a0, 0x1c($s0) +/* 05F954 7F02AE24 94590004 */ lhu $t9, 4($v0) +/* 05F958 7F02AE28 44804000 */ mtc1 $zero, $f8 +/* 05F95C 7F02AE2C 8E05003C */ lw $a1, 0x3c($s0) +/* 05F960 7F02AE30 272CFFFF */ addiu $t4, $t9, -1 +/* 05F964 7F02AE34 448C3000 */ mtc1 $t4, $f6 +/* 05F968 7F02AE38 02002025 */ move $a0, $s0 +/* 05F96C 7F02AE3C 3C073F80 */ lui $a3, 0x3f80 +/* 05F970 7F02AE40 46803020 */ cvt.s.w $f0, $f6 +/* 05F974 7F02AE44 E7A80010 */ swc1 $f8, 0x10($sp) +/* 05F978 7F02AE48 44060000 */ mfc1 $a2, $f0 +/* 05F97C 7F02AE4C 0FC0B0AC */ jal sub_GAME_7F02C2B0 +/* 05F980 7F02AE50 00000000 */ nop +/* 05F984 7F02AE54 24030001 */ li $v1, 1 +/* 05F988 7F02AE58 1043007E */ beq $v0, $v1, .L7F02B054 +/* 05F98C 7F02AE5C AE02003C */ sw $v0, 0x3c($s0) +/* 05F990 7F02AE60 02002025 */ move $a0, $s0 +/* 05F994 7F02AE64 0FC08E52 */ jal sub_GAME_7F023948 +/* 05F998 7F02AE68 3C054100 */ lui $a1, 0x4100 +/* 05F99C 7F02AE6C 8E0D0030 */ lw $t5, 0x30($s0) +/* 05F9A0 7F02AE70 AE000038 */ sw $zero, 0x38($s0) +/* 05F9A4 7F02AE74 31AE0010 */ andi $t6, $t5, 0x10 +/* 05F9A8 7F02AE78 11C00076 */ beqz $t6, .L7F02B054 +/* 05F9AC 7F02AE7C 00000000 */ nop +/* 05F9B0 7F02AE80 10000074 */ b .L7F02B054 +/* 05F9B4 7F02AE84 AE000030 */ sw $zero, 0x30($s0) +.L7F02AE88: +/* 05F9B8 7F02AE88 0FC0942F */ jal sub_GAME_7F0250BC +/* 05F9BC 7F02AE8C 8E060034 */ lw $a2, 0x34($s0) +/* 05F9C0 7F02AE90 3C018005 */ lui $at, %hi(D_80051E70) +/* 05F9C4 7F02AE94 C42A1E70 */ lwc1 $f10, %lo(D_80051E70)($at) +/* 05F9C8 7F02AE98 3C018005 */ lui $at, %hi(D_80051E74) +/* 05F9CC 7F02AE9C 4600503C */ c.lt.s $f10, $f0 +/* 05F9D0 7F02AEA0 00000000 */ nop +/* 05F9D4 7F02AEA4 45020067 */ bc1fl .L7F02B044 +/* 05F9D8 7F02AEA8 8E180030 */ lw $t8, 0x30($s0) +/* 05F9DC 7F02AEAC C4301E74 */ lwc1 $f16, %lo(D_80051E74)($at) +/* 05F9E0 7F02AEB0 02002025 */ move $a0, $s0 +/* 05F9E4 7F02AEB4 4610003C */ c.lt.s $f0, $f16 +/* 05F9E8 7F02AEB8 00000000 */ nop +/* 05F9EC 7F02AEBC 45020061 */ bc1fl .L7F02B044 +/* 05F9F0 7F02AEC0 8E180030 */ lw $t8, 0x30($s0) +/* 05F9F4 7F02AEC4 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05F9F8 7F02AEC8 24050001 */ li $a1, 1 +/* 05F9FC 7F02AECC AFA200A0 */ sw $v0, 0xa0($sp) +/* 05FA00 7F02AED0 02002025 */ move $a0, $s0 +/* 05FA04 7F02AED4 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 05FA08 7F02AED8 00002825 */ move $a1, $zero +/* 05FA0C 7F02AEDC 8FA400A0 */ lw $a0, 0xa0($sp) +/* 05FA10 7F02AEE0 24030001 */ li $v1, 1 +/* 05FA14 7F02AEE4 AFA2009C */ sw $v0, 0x9c($sp) +/* 05FA18 7F02AEE8 AE030038 */ sw $v1, 0x38($s0) +/* 05FA1C 7F02AEEC 10800003 */ beqz $a0, .L7F02AEFC +/* 05FA20 7F02AEF0 AE03003C */ sw $v1, 0x3c($s0) +/* 05FA24 7F02AEF4 1440000D */ bnez $v0, .L7F02AF2C +/* 05FA28 7F02AEF8 00000000 */ nop +.L7F02AEFC: +/* 05FA2C 7F02AEFC 14800003 */ bnez $a0, .L7F02AF0C +/* 05FA30 7F02AF00 00000000 */ nop +/* 05FA34 7F02AF04 10400009 */ beqz $v0, .L7F02AF2C +/* 05FA38 7F02AF08 00000000 */ nop +.L7F02AF0C: +/* 05FA3C 7F02AF0C 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05FA40 7F02AF10 00000000 */ nop +/* 05FA44 7F02AF14 14400005 */ bnez $v0, .L7F02AF2C +/* 05FA48 7F02AF18 00000000 */ nop +/* 05FA4C 7F02AF1C 0FC08E44 */ jal check_if_item_held_like_pistol +/* 05FA50 7F02AF20 8FA4009C */ lw $a0, 0x9c($sp) +/* 05FA54 7F02AF24 10400022 */ beqz $v0, .L7F02AFB0 +/* 05FA58 7F02AF28 8FAE009C */ lw $t6, 0x9c($sp) +.L7F02AF2C: +/* 05FA5C 7F02AF2C 0C002914 */ jal get_random_value +/* 05FA60 7F02AF30 00000000 */ nop +/* 05FA64 7F02AF34 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05FA68 7F02AF38 44819000 */ mtc1 $at, $f18 +/* 05FA6C 7F02AF3C 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05FA70 7F02AF40 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 05FA74 7F02AF44 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 05FA78 7F02AF48 44812000 */ mtc1 $at, $f4 +/* 05FA7C 7F02AF4C 8E04001C */ lw $a0, 0x1c($s0) +/* 05FA80 7F02AF50 3C030001 */ lui $v1, %hi(0x00008204) # $v1, 1 +/* 05FA84 7F02AF54 24638204 */ addiu $v1, %lo(0x00008204) # addiu $v1, $v1, -0x7dfc +/* 05FA88 7F02AF58 AFA30034 */ sw $v1, 0x34($sp) +/* 05FA8C 7F02AF5C 30460001 */ andi $a2, $v0, 1 +/* 05FA90 7F02AF60 24070000 */ li $a3, 0 +/* 05FA94 7F02AF64 E7B20010 */ swc1 $f18, 0x10($sp) +/* 05FA98 7F02AF68 006F2821 */ addu $a1, $v1, $t7 +/* 05FA9C 7F02AF6C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05FAA0 7F02AF70 E7A40014 */ swc1 $f4, 0x14($sp) +/* 05FAA4 7F02AF74 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 05FAA8 7F02AF78 8FA30034 */ lw $v1, 0x34($sp) +/* 05FAAC 7F02AF7C 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 05FAB0 7F02AF80 8E04001C */ lw $a0, 0x1c($s0) +/* 05FAB4 7F02AF84 0078C821 */ addu $t9, $v1, $t8 +/* 05FAB8 7F02AF88 972C0004 */ lhu $t4, 4($t9) +/* 05FABC 7F02AF8C 258DFFFF */ addiu $t5, $t4, -1 +/* 05FAC0 7F02AF90 448D3000 */ mtc1 $t5, $f6 +/* 05FAC4 7F02AF94 00000000 */ nop +/* 05FAC8 7F02AF98 468031A0 */ cvt.s.w $f6, $f6 +/* 05FACC 7F02AF9C 44053000 */ mfc1 $a1, $f6 +/* 05FAD0 7F02AFA0 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05FAD4 7F02AFA4 00000000 */ nop +/* 05FAD8 7F02AFA8 1000002A */ b .L7F02B054 +/* 05FADC 7F02AFAC 00000000 */ nop +.L7F02AFB0: +/* 05FAE0 7F02AFB0 15C00002 */ bnez $t6, .L7F02AFBC +/* 05FAE4 7F02AFB4 8FAF00A0 */ lw $t7, 0xa0($sp) +/* 05FAE8 7F02AFB8 11E00026 */ beqz $t7, .L7F02B054 +.L7F02AFBC: +/* 05FAEC 7F02AFBC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 05FAF0 7F02AFC0 44814000 */ mtc1 $at, $f8 +/* 05FAF4 7F02AFC4 8FA600A0 */ lw $a2, 0xa0($sp) +/* 05FAF8 7F02AFC8 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 05FAFC 7F02AFCC 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 05FB00 7F02AFD0 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 05FB04 7F02AFD4 44815000 */ mtc1 $at, $f10 +/* 05FB08 7F02AFD8 8E04001C */ lw $a0, 0x1c($s0) +/* 05FB0C 7F02AFDC 3C020000 */ lui $v0, %hi(0x00004018) # $v0, 0 +/* 05FB10 7F02AFE0 24424018 */ addiu $v0, %lo(0x00004018) # addiu $v0, $v0, 0x4018 +/* 05FB14 7F02AFE4 0006C82B */ sltu $t9, $zero, $a2 +/* 05FB18 7F02AFE8 03203025 */ move $a2, $t9 +/* 05FB1C 7F02AFEC AFA20034 */ sw $v0, 0x34($sp) +/* 05FB20 7F02AFF0 24070000 */ li $a3, 0 +/* 05FB24 7F02AFF4 E7A80010 */ swc1 $f8, 0x10($sp) +/* 05FB28 7F02AFF8 00582821 */ addu $a1, $v0, $t8 +/* 05FB2C 7F02AFFC 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 05FB30 7F02B000 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 05FB34 7F02B004 3C0C8007 */ lui $t4, %hi(ptr_animation_table) +/* 05FB38 7F02B008 8FA20034 */ lw $v0, 0x34($sp) +/* 05FB3C 7F02B00C 8D8C9538 */ lw $t4, %lo(ptr_animation_table)($t4) +/* 05FB40 7F02B010 8E04001C */ lw $a0, 0x1c($s0) +/* 05FB44 7F02B014 004C6821 */ addu $t5, $v0, $t4 +/* 05FB48 7F02B018 95AE0004 */ lhu $t6, 4($t5) +/* 05FB4C 7F02B01C 25CFFFFF */ addiu $t7, $t6, -1 +/* 05FB50 7F02B020 448F8000 */ mtc1 $t7, $f16 +/* 05FB54 7F02B024 00000000 */ nop +/* 05FB58 7F02B028 46808420 */ cvt.s.w $f16, $f16 +/* 05FB5C 7F02B02C 44058000 */ mfc1 $a1, $f16 +/* 05FB60 7F02B030 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 05FB64 7F02B034 00000000 */ nop +/* 05FB68 7F02B038 10000006 */ b .L7F02B054 +/* 05FB6C 7F02B03C 00000000 */ nop +/* 05FB70 7F02B040 8E180030 */ lw $t8, 0x30($s0) +.L7F02B044: +/* 05FB74 7F02B044 33190010 */ andi $t9, $t8, 0x10 +/* 05FB78 7F02B048 13200002 */ beqz $t9, .L7F02B054 +/* 05FB7C 7F02B04C 00000000 */ nop +/* 05FB80 7F02B050 AE000030 */ sw $zero, 0x30($s0) +.L7F02B054: +/* 05FB84 7F02B054 1000011D */ b .L7F02B4CC +/* 05FB88 7F02B058 A2000008 */ sb $zero, 8($s0) +.L7F02B05C: +/* 05FB8C 7F02B05C 0C002914 */ jal get_random_value +/* 05FB90 7F02B060 00000000 */ nop +/* 05FB94 7F02B064 24010005 */ li $at, 5 +/* 05FB98 7F02B068 0041001B */ divu $zero, $v0, $at +/* 05FB9C 7F02B06C 8E0E0040 */ lw $t6, 0x40($s0) +/* 05FBA0 7F02B070 00006010 */ mfhi $t4 +/* 05FBA4 7F02B074 258D000E */ addiu $t5, $t4, 0xe +/* 05FBA8 7F02B078 11C00114 */ beqz $t6, .L7F02B4CC +/* 05FBAC 7F02B07C A20D0008 */ sb $t5, 8($s0) +/* 05FBB0 7F02B080 8E0F0014 */ lw $t7, 0x14($s0) +/* 05FBB4 7F02B084 31F80080 */ andi $t8, $t7, 0x80 +/* 05FBB8 7F02B088 53000004 */ beql $t8, $zero, .L7F02B09C +/* 05FBBC 7F02B08C 8E190044 */ lw $t9, 0x44($s0) +/* 05FBC0 7F02B090 1000010E */ b .L7F02B4CC +/* 05FBC4 7F02B094 AE000040 */ sw $zero, 0x40($s0) +/* 05FBC8 7F02B098 8E190044 */ lw $t9, 0x44($s0) +.L7F02B09C: +/* 05FBCC 7F02B09C 820C0008 */ lb $t4, 8($s0) +/* 05FBD0 7F02B0A0 032C6823 */ subu $t5, $t9, $t4 +/* 05FBD4 7F02B0A4 05A10109 */ bgez $t5, .L7F02B4CC +/* 05FBD8 7F02B0A8 AE0D0044 */ sw $t5, 0x44($s0) +/* 05FBDC 7F02B0AC 0FC1B320 */ jal getsubroty +/* 05FBE0 7F02B0B0 8E04001C */ lw $a0, 0x1c($s0) +/* 05FBE4 7F02B0B4 3C018005 */ lui $at, %hi(D_80051E78) +/* 05FBE8 7F02B0B8 E7A00070 */ swc1 $f0, 0x70($sp) +/* 05FBEC 7F02B0BC 46000086 */ mov.s $f2, $f0 +/* 05FBF0 7F02B0C0 C42C1E78 */ lwc1 $f12, %lo(D_80051E78)($at) +/* 05FBF4 7F02B0C4 27A20074 */ addiu $v0, $sp, 0x74 +.L7F02B0C8: +/* 05FBF8 7F02B0C8 3C018005 */ lui $at, %hi(D_80051E7C) +/* 05FBFC 7F02B0CC C4321E7C */ lwc1 $f18, %lo(D_80051E7C)($at) +/* 05FC00 7F02B0D0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 05FC04 7F02B0D4 44813000 */ mtc1 $at, $f6 +/* 05FC08 7F02B0D8 46121080 */ add.s $f2, $f2, $f18 +/* 05FC0C 7F02B0DC 44802000 */ mtc1 $zero, $f4 +/* 05FC10 7F02B0E0 3C06447A */ lui $a2, %hi(0x447A0001) # $a2, 0x447a +/* 05FC14 7F02B0E4 00003825 */ move $a3, $zero +/* 05FC18 7F02B0E8 4602603E */ c.le.s $f12, $f2 +/* 05FC1C 7F02B0EC 00000000 */ nop +/* 05FC20 7F02B0F0 45020003 */ bc1fl .L7F02B100 +/* 05FC24 7F02B0F4 8E040018 */ lw $a0, 0x18($s0) +/* 05FC28 7F02B0F8 460C1081 */ sub.s $f2, $f2, $f12 +/* 05FC2C 7F02B0FC 8E040018 */ lw $a0, 0x18($s0) +.L7F02B100: +/* 05FC30 7F02B100 44051000 */ mfc1 $a1, $f2 +/* 05FC34 7F02B104 E7A2006C */ swc1 $f2, 0x6c($sp) +/* 05FC38 7F02B108 AFA20034 */ sw $v0, 0x34($sp) +/* 05FC3C 7F02B10C E7A60014 */ swc1 $f6, 0x14($sp) +/* 05FC40 7F02B110 0FC098D9 */ jal sub_GAME_7F026364 +/* 05FC44 7F02B114 E7A40010 */ swc1 $f4, 0x10($sp) +/* 05FC48 7F02B118 8FA20034 */ lw $v0, 0x34($sp) +/* 05FC4C 7F02B11C 3C018005 */ lui $at, %hi(D_80051E80) +/* 05FC50 7F02B120 27AF0094 */ addiu $t7, $sp, 0x94 +/* 05FC54 7F02B124 C42C1E80 */ lwc1 $f12, %lo(D_80051E80)($at) +/* 05FC58 7F02B128 24420004 */ addiu $v0, $v0, 4 +/* 05FC5C 7F02B12C 004F082B */ sltu $at, $v0, $t7 +/* 05FC60 7F02B130 C7A2006C */ lwc1 $f2, 0x6c($sp) +/* 05FC64 7F02B134 1420FFE4 */ bnez $at, .L7F02B0C8 +/* 05FC68 7F02B138 E440FFFC */ swc1 $f0, -4($v0) +/* 05FC6C 7F02B13C 00003025 */ move $a2, $zero +/* 05FC70 7F02B140 27AA0044 */ addiu $t2, $sp, 0x44 +.L7F02B144: +/* 05FC74 7F02B144 AD460000 */ sw $a2, ($t2) +/* 05FC78 7F02B148 24C60001 */ addiu $a2, %lo(0x447A0001) # addiu $a2, $a2, 1 +/* 05FC7C 7F02B14C 28C10008 */ slti $at, $a2, 8 +/* 05FC80 7F02B150 1420FFFC */ bnez $at, .L7F02B144 +/* 05FC84 7F02B154 254A0004 */ addiu $t2, $t2, 4 +/* 05FC88 7F02B158 00003025 */ move $a2, $zero +/* 05FC8C 7F02B15C 27AA0044 */ addiu $t2, $sp, 0x44 +/* 05FC90 7F02B160 27A80044 */ addiu $t0, $sp, 0x44 +/* 05FC94 7F02B164 24070008 */ li $a3, 8 +/* 05FC98 7F02B168 27A40074 */ addiu $a0, $sp, 0x74 +.L7F02B16C: +/* 05FC9C 7F02B16C 24CB0001 */ addiu $t3, $a2, 1 +/* 05FCA0 7F02B170 29610008 */ slti $at, $t3, 8 +/* 05FCA4 7F02B174 00C02825 */ move $a1, $a2 +/* 05FCA8 7F02B178 1020005B */ beqz $at, .L7F02B2E8 +/* 05FCAC 7F02B17C 01601025 */ move $v0, $t3 +/* 05FCB0 7F02B180 00EB4823 */ subu $t1, $a3, $t3 +/* 05FCB4 7F02B184 31380003 */ andi $t8, $t1, 3 +/* 05FCB8 7F02B188 13000016 */ beqz $t8, .L7F02B1E4 +/* 05FCBC 7F02B18C 030B3021 */ addu $a2, $t8, $t3 +/* 05FCC0 7F02B190 0002C880 */ sll $t9, $v0, 2 +/* 05FCC4 7F02B194 01191821 */ addu $v1, $t0, $t9 +.L7F02B198: +/* 05FCC8 7F02B198 8C6C0000 */ lw $t4, ($v1) +/* 05FCCC 7F02B19C 00057880 */ sll $t7, $a1, 2 +/* 05FCD0 7F02B1A0 010FC021 */ addu $t8, $t0, $t7 +/* 05FCD4 7F02B1A4 8F190000 */ lw $t9, ($t8) +/* 05FCD8 7F02B1A8 000C6880 */ sll $t5, $t4, 2 +/* 05FCDC 7F02B1AC 008D7021 */ addu $t6, $a0, $t5 +/* 05FCE0 7F02B1B0 00196080 */ sll $t4, $t9, 2 +/* 05FCE4 7F02B1B4 008C6821 */ addu $t5, $a0, $t4 +/* 05FCE8 7F02B1B8 C5AA0000 */ lwc1 $f10, ($t5) +/* 05FCEC 7F02B1BC C5C80000 */ lwc1 $f8, ($t6) +/* 05FCF0 7F02B1C0 460A403C */ c.lt.s $f8, $f10 +/* 05FCF4 7F02B1C4 00000000 */ nop +/* 05FCF8 7F02B1C8 45020003 */ bc1fl .L7F02B1D8 +/* 05FCFC 7F02B1CC 24420001 */ addiu $v0, $v0, 1 +/* 05FD00 7F02B1D0 00402825 */ move $a1, $v0 +/* 05FD04 7F02B1D4 24420001 */ addiu $v0, $v0, 1 +.L7F02B1D8: +/* 05FD08 7F02B1D8 14C2FFEF */ bne $a2, $v0, .L7F02B198 +/* 05FD0C 7F02B1DC 24630004 */ addiu $v1, $v1, 4 +/* 05FD10 7F02B1E0 10470041 */ beq $v0, $a3, .L7F02B2E8 +.L7F02B1E4: +/* 05FD14 7F02B1E4 00027080 */ sll $t6, $v0, 2 +/* 05FD18 7F02B1E8 010E1821 */ addu $v1, $t0, $t6 +.L7F02B1EC: +/* 05FD1C 7F02B1EC 00057880 */ sll $t7, $a1, 2 +/* 05FD20 7F02B1F0 010FC021 */ addu $t8, $t0, $t7 +/* 05FD24 7F02B1F4 8F190000 */ lw $t9, ($t8) +/* 05FD28 7F02B1F8 8C6E0000 */ lw $t6, ($v1) +/* 05FD2C 7F02B1FC 00196080 */ sll $t4, $t9, 2 +/* 05FD30 7F02B200 000E7880 */ sll $t7, $t6, 2 +/* 05FD34 7F02B204 008FC021 */ addu $t8, $a0, $t7 +/* 05FD38 7F02B208 008C6821 */ addu $t5, $a0, $t4 +/* 05FD3C 7F02B20C C5A00000 */ lwc1 $f0, ($t5) +/* 05FD40 7F02B210 C7100000 */ lwc1 $f16, ($t8) +/* 05FD44 7F02B214 0002C880 */ sll $t9, $v0, 2 +/* 05FD48 7F02B218 01196021 */ addu $t4, $t0, $t9 +/* 05FD4C 7F02B21C 4600803C */ c.lt.s $f16, $f0 +/* 05FD50 7F02B220 00000000 */ nop +/* 05FD54 7F02B224 45020007 */ bc1fl .L7F02B244 +/* 05FD58 7F02B228 8C780004 */ lw $t8, 4($v1) +/* 05FD5C 7F02B22C 8D8D0000 */ lw $t5, ($t4) +/* 05FD60 7F02B230 00402825 */ move $a1, $v0 +/* 05FD64 7F02B234 000D7080 */ sll $t6, $t5, 2 +/* 05FD68 7F02B238 008E7821 */ addu $t7, $a0, $t6 +/* 05FD6C 7F02B23C C5E00000 */ lwc1 $f0, ($t7) +/* 05FD70 7F02B240 8C780004 */ lw $t8, 4($v1) +.L7F02B244: +/* 05FD74 7F02B244 0018C880 */ sll $t9, $t8, 2 +/* 05FD78 7F02B248 00996021 */ addu $t4, $a0, $t9 +/* 05FD7C 7F02B24C C5920000 */ lwc1 $f18, ($t4) +/* 05FD80 7F02B250 4600903C */ c.lt.s $f18, $f0 +/* 05FD84 7F02B254 00000000 */ nop +/* 05FD88 7F02B258 45020009 */ bc1fl .L7F02B280 +/* 05FD8C 7F02B25C 8C6C0008 */ lw $t4, 8($v1) +/* 05FD90 7F02B260 24450001 */ addiu $a1, $v0, 1 +/* 05FD94 7F02B264 00056880 */ sll $t5, $a1, 2 +/* 05FD98 7F02B268 010D7021 */ addu $t6, $t0, $t5 +/* 05FD9C 7F02B26C 8DCF0000 */ lw $t7, ($t6) +/* 05FDA0 7F02B270 000FC080 */ sll $t8, $t7, 2 +/* 05FDA4 7F02B274 0098C821 */ addu $t9, $a0, $t8 +/* 05FDA8 7F02B278 C7200000 */ lwc1 $f0, ($t9) +/* 05FDAC 7F02B27C 8C6C0008 */ lw $t4, 8($v1) +.L7F02B280: +/* 05FDB0 7F02B280 000C6880 */ sll $t5, $t4, 2 +/* 05FDB4 7F02B284 008D7021 */ addu $t6, $a0, $t5 +/* 05FDB8 7F02B288 C5C40000 */ lwc1 $f4, ($t6) +/* 05FDBC 7F02B28C 4600203C */ c.lt.s $f4, $f0 +/* 05FDC0 7F02B290 00000000 */ nop +/* 05FDC4 7F02B294 45020009 */ bc1fl .L7F02B2BC +/* 05FDC8 7F02B298 8C6E000C */ lw $t6, 0xc($v1) +/* 05FDCC 7F02B29C 24450002 */ addiu $a1, $v0, 2 +/* 05FDD0 7F02B2A0 00057880 */ sll $t7, $a1, 2 +/* 05FDD4 7F02B2A4 010FC021 */ addu $t8, $t0, $t7 +/* 05FDD8 7F02B2A8 8F190000 */ lw $t9, ($t8) +/* 05FDDC 7F02B2AC 00196080 */ sll $t4, $t9, 2 +/* 05FDE0 7F02B2B0 008C6821 */ addu $t5, $a0, $t4 +/* 05FDE4 7F02B2B4 C5A00000 */ lwc1 $f0, ($t5) +/* 05FDE8 7F02B2B8 8C6E000C */ lw $t6, 0xc($v1) +.L7F02B2BC: +/* 05FDEC 7F02B2BC 000E7880 */ sll $t7, $t6, 2 +/* 05FDF0 7F02B2C0 008FC021 */ addu $t8, $a0, $t7 +/* 05FDF4 7F02B2C4 C7060000 */ lwc1 $f6, ($t8) +/* 05FDF8 7F02B2C8 4600303C */ c.lt.s $f6, $f0 +/* 05FDFC 7F02B2CC 00000000 */ nop +/* 05FE00 7F02B2D0 45020003 */ bc1fl .L7F02B2E0 +/* 05FE04 7F02B2D4 24420004 */ addiu $v0, $v0, 4 +/* 05FE08 7F02B2D8 24450003 */ addiu $a1, $v0, 3 +/* 05FE0C 7F02B2DC 24420004 */ addiu $v0, $v0, 4 +.L7F02B2E0: +/* 05FE10 7F02B2E0 1447FFC2 */ bne $v0, $a3, .L7F02B1EC +/* 05FE14 7F02B2E4 24630010 */ addiu $v1, $v1, 0x10 +.L7F02B2E8: +/* 05FE18 7F02B2E8 0005C880 */ sll $t9, $a1, 2 +/* 05FE1C 7F02B2EC 01191821 */ addu $v1, $t0, $t9 +/* 05FE20 7F02B2F0 8C6C0000 */ lw $t4, ($v1) +/* 05FE24 7F02B2F4 8D420000 */ lw $v0, ($t2) +/* 05FE28 7F02B2F8 29610007 */ slti $at, $t3, 7 +/* 05FE2C 7F02B2FC AD4C0000 */ sw $t4, ($t2) +/* 05FE30 7F02B300 01603025 */ move $a2, $t3 +/* 05FE34 7F02B304 254A0004 */ addiu $t2, $t2, 4 +/* 05FE38 7F02B308 1420FF98 */ bnez $at, .L7F02B16C +/* 05FE3C 7F02B30C AC620000 */ sw $v0, ($v1) +/* 05FE40 7F02B310 3C0143F5 */ li $at, 0x43F50000 # 490.000000 +/* 05FE44 7F02B314 44815000 */ mtc1 $at, $f10 +/* 05FE48 7F02B318 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 05FE4C 7F02B31C 8FA60054 */ lw $a2, 0x54($sp) +/* 05FE50 7F02B320 2405FFFF */ li $a1, -1 +/* 05FE54 7F02B324 460A403C */ c.lt.s $f8, $f10 +/* 05FE58 7F02B328 00066880 */ sll $t5, $a2, 2 +/* 05FE5C 7F02B32C 008D7021 */ addu $t6, $a0, $t5 +/* 05FE60 7F02B330 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 05FE64 7F02B334 45000046 */ bc1f .L7F02B450 +/* 05FE68 7F02B338 00000000 */ nop +/* 05FE6C 7F02B33C C5D00000 */ lwc1 $f16, ($t6) +/* 05FE70 7F02B340 44819000 */ mtc1 $at, $f18 +/* 05FE74 7F02B344 8FA20044 */ lw $v0, 0x44($sp) +/* 05FE78 7F02B348 4612803C */ c.lt.s $f16, $f18 +/* 05FE7C 7F02B34C 00000000 */ nop +/* 05FE80 7F02B350 45000003 */ bc1f .L7F02B360 +/* 05FE84 7F02B354 00000000 */ nop +/* 05FE88 7F02B358 1000003D */ b .L7F02B450 +/* 05FE8C 7F02B35C 24050007 */ li $a1, 7 +.L7F02B360: +/* 05FE90 7F02B360 10400005 */ beqz $v0, .L7F02B378 +/* 05FE94 7F02B364 8FAF0048 */ lw $t7, 0x48($sp) +/* 05FE98 7F02B368 11E00003 */ beqz $t7, .L7F02B378 +/* 05FE9C 7F02B36C 8FB8004C */ lw $t8, 0x4c($sp) +/* 05FEA0 7F02B370 17000022 */ bnez $t8, .L7F02B3FC +/* 05FEA4 7F02B374 24030001 */ li $v1, 1 +.L7F02B378: +/* 05FEA8 7F02B378 8FB90050 */ lw $t9, 0x50($sp) +/* 05FEAC 7F02B37C 24030004 */ li $v1, 4 +/* 05FEB0 7F02B380 10790003 */ beq $v1, $t9, .L7F02B390 +/* 05FEB4 7F02B384 00000000 */ nop +/* 05FEB8 7F02B388 14660012 */ bne $v1, $a2, .L7F02B3D4 +/* 05FEBC 7F02B38C 00000000 */ nop +.L7F02B390: +/* 05FEC0 7F02B390 0C002914 */ jal get_random_value +/* 05FEC4 7F02B394 00000000 */ nop +/* 05FEC8 7F02B398 3C018005 */ lui $at, %hi(D_80051E84) +/* 05FECC 7F02B39C C42C1E84 */ lwc1 $f12, %lo(D_80051E84)($at) +/* 05FED0 7F02B3A0 24010003 */ li $at, 3 +/* 05FED4 7F02B3A4 0041001B */ divu $zero, $v0, $at +/* 05FED8 7F02B3A8 00006010 */ mfhi $t4 +/* 05FEDC 7F02B3AC 24030004 */ li $v1, 4 +/* 05FEE0 7F02B3B0 15800008 */ bnez $t4, .L7F02B3D4 +/* 05FEE4 7F02B3B4 27A80044 */ addiu $t0, $sp, 0x44 +/* 05FEE8 7F02B3B8 8FAD0050 */ lw $t5, 0x50($sp) +/* 05FEEC 7F02B3BC 146D0003 */ bne $v1, $t5, .L7F02B3CC +/* 05FEF0 7F02B3C0 00000000 */ nop +/* 05FEF4 7F02B3C4 10000022 */ b .L7F02B450 +/* 05FEF8 7F02B3C8 24050003 */ li $a1, 3 +.L7F02B3CC: +/* 05FEFC 7F02B3CC 10000020 */ b .L7F02B450 +/* 05FF00 7F02B3D0 24050004 */ li $a1, 4 +.L7F02B3D4: +/* 05FF04 7F02B3D4 0C002914 */ jal get_random_value +/* 05FF08 7F02B3D8 00000000 */ nop +/* 05FF0C 7F02B3DC 3C018005 */ lui $at, %hi(D_80051E88) +/* 05FF10 7F02B3E0 C42C1E88 */ lwc1 $f12, %lo(D_80051E88)($at) +/* 05FF14 7F02B3E4 24010003 */ li $at, 3 +/* 05FF18 7F02B3E8 0041001B */ divu $zero, $v0, $at +/* 05FF1C 7F02B3EC 00002810 */ mfhi $a1 +/* 05FF20 7F02B3F0 24A50005 */ addiu $a1, $a1, 5 +/* 05FF24 7F02B3F4 10000016 */ b .L7F02B450 +/* 05FF28 7F02B3F8 27A80044 */ addiu $t0, $sp, 0x44 +.L7F02B3FC: +/* 05FF2C 7F02B3FC 10620003 */ beq $v1, $v0, .L7F02B40C +/* 05FF30 7F02B400 24010007 */ li $at, 7 +/* 05FF34 7F02B404 14410012 */ bne $v0, $at, .L7F02B450 +/* 05FF38 7F02B408 00000000 */ nop +.L7F02B40C: +/* 05FF3C 7F02B40C 8FAE0058 */ lw $t6, 0x58($sp) +/* 05FF40 7F02B410 8FAF005C */ lw $t7, 0x5c($sp) +/* 05FF44 7F02B414 11C0000E */ beqz $t6, .L7F02B450 +/* 05FF48 7F02B418 00000000 */ nop +/* 05FF4C 7F02B41C 11E0000C */ beqz $t7, .L7F02B450 +/* 05FF50 7F02B420 8FB80060 */ lw $t8, 0x60($sp) +/* 05FF54 7F02B424 1300000A */ beqz $t8, .L7F02B450 +/* 05FF58 7F02B428 00000000 */ nop +/* 05FF5C 7F02B42C 0C002914 */ jal get_random_value +/* 05FF60 7F02B430 00000000 */ nop +/* 05FF64 7F02B434 3C018005 */ lui $at, %hi(D_80051E8C) +/* 05FF68 7F02B438 C42C1E8C */ lwc1 $f12, %lo(D_80051E8C)($at) +/* 05FF6C 7F02B43C 24010003 */ li $at, 3 +/* 05FF70 7F02B440 0041001B */ divu $zero, $v0, $at +/* 05FF74 7F02B444 00002810 */ mfhi $a1 +/* 05FF78 7F02B448 24A50005 */ addiu $a1, $a1, 5 +/* 05FF7C 7F02B44C 27A80044 */ addiu $t0, $sp, 0x44 +.L7F02B450: +/* 05FF80 7F02B450 04A0001D */ bltz $a1, .L7F02B4C8 +/* 05FF84 7F02B454 0005C880 */ sll $t9, $a1, 2 +/* 05FF88 7F02B458 01196021 */ addu $t4, $t0, $t9 +/* 05FF8C 7F02B45C 8D860000 */ lw $a2, ($t4) +/* 05FF90 7F02B460 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 05FF94 7F02B464 44815000 */ mtc1 $at, $f10 +/* 05FF98 7F02B468 44862000 */ mtc1 $a2, $f4 +/* 05FF9C 7F02B46C C7B20070 */ lwc1 $f18, 0x70($sp) +/* 05FFA0 7F02B470 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 05FFA4 7F02B474 468021A0 */ cvt.s.w $f6, $f4 +/* 05FFA8 7F02B478 44812000 */ mtc1 $at, $f4 +/* 05FFAC 7F02B47C 460C3202 */ mul.s $f8, $f6, $f12 +/* 05FFB0 7F02B480 00000000 */ nop +/* 05FFB4 7F02B484 460A4402 */ mul.s $f16, $f8, $f10 +/* 05FFB8 7F02B488 46128000 */ add.s $f0, $f16, $f18 +/* 05FFBC 7F02B48C 4600603E */ c.le.s $f12, $f0 +/* 05FFC0 7F02B490 46000086 */ mov.s $f2, $f0 +/* 05FFC4 7F02B494 45000002 */ bc1f .L7F02B4A0 +/* 05FFC8 7F02B498 00000000 */ nop +/* 05FFCC 7F02B49C 460C0081 */ sub.s $f2, $f0, $f12 +.L7F02B4A0: +/* 05FFD0 7F02B4A0 46041182 */ mul.s $f6, $f2, $f4 +/* 05FFD4 7F02B4A4 02002025 */ move $a0, $s0 +/* 05FFD8 7F02B4A8 24050010 */ li $a1, 16 +/* 05FFDC 7F02B4AC 460C3203 */ div.s $f8, $f6, $f12 +/* 05FFE0 7F02B4B0 4600428D */ trunc.w.s $f10, $f8 +/* 05FFE4 7F02B4B4 44065000 */ mfc1 $a2, $f10 +/* 05FFE8 7F02B4B8 0FC0AAD1 */ jal check_set_actor_standing_still +/* 05FFEC 7F02B4BC 00000000 */ nop +/* 05FFF0 7F02B4C0 10000003 */ b .L7F02B4D0 +/* 05FFF4 7F02B4C4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02B4C8: +/* 05FFF8 7F02B4C8 AE000040 */ sw $zero, 0x40($s0) +.L7F02B4CC: +/* 05FFFC 7F02B4CC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02B4D0: +/* 060000 7F02B4D0 8FB00020 */ lw $s0, 0x20($sp) +/* 060004 7F02B4D4 27BD00B0 */ addiu $sp, $sp, 0xb0 +/* 060008 7F02B4D8 03E00008 */ jr $ra +/* 06000C 7F02B4DC 00000000 */ nop +) +#endif + + + +void actor_reset_sleep(PCHRdata actor) { + actor->sleep = 0; +} + + + +#ifdef NONMATCHING +void sub_GAME_7F02B4E8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02B4E8 +/* 060018 7F02B4E8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 06001C 7F02B4EC AFBF001C */ sw $ra, 0x1c($sp) +/* 060020 7F02B4F0 AFB00018 */ sw $s0, 0x18($sp) +/* 060024 7F02B4F4 8C8E0030 */ lw $t6, 0x30($a0) +/* 060028 7F02B4F8 00808025 */ move $s0, $a0 +/* 06002C 7F02B4FC 15C0000D */ bnez $t6, .L7F02B534 +/* 060030 7F02B500 00000000 */ nop +/* 060034 7F02B504 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060038 7F02B508 8C84001C */ lw $a0, 0x1c($a0) +/* 06003C 7F02B50C E7A00020 */ swc1 $f0, 0x20($sp) +/* 060040 7F02B510 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 060044 7F02B514 8E04001C */ lw $a0, 0x1c($s0) +/* 060048 7F02B518 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 06004C 7F02B51C 4604003E */ c.le.s $f0, $f4 +/* 060050 7F02B520 00000000 */ nop +/* 060054 7F02B524 45000003 */ bc1f .L7F02B534 +/* 060058 7F02B528 00000000 */ nop +/* 06005C 7F02B52C 0FC08F2E */ jal sub_GAME_7F023CB8 +/* 060060 7F02B530 02002025 */ move $a0, $s0 +.L7F02B534: +/* 060064 7F02B534 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 060068 7F02B538 8E04001C */ lw $a0, 0x1c($s0) +/* 06006C 7F02B53C 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 060070 7F02B540 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 060074 7F02B544 3C180001 */ lui $t8, %hi(0x0000B9A8) # $t8, 1 +/* 060078 7F02B548 2718B9A8 */ addiu $t8, %lo(0x0000B9A8) # addiu $t8, $t8, -0x4658 +/* 06007C 7F02B54C 01F8C821 */ addu $t9, $t7, $t8 +/* 060080 7F02B550 54590028 */ bnel $v0, $t9, .L7F02B5F4 +/* 060084 7F02B554 820E0008 */ lb $t6, 8($s0) +/* 060088 7F02B558 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 06008C 7F02B55C 8E04001C */ lw $a0, 0x1c($s0) +/* 060090 7F02B560 3C014228 */ li $at, 0x42280000 # 42.000000 +/* 060094 7F02B564 44813000 */ mtc1 $at, $f6 +/* 060098 7F02B568 00000000 */ nop +/* 06009C 7F02B56C 4600303E */ c.le.s $f6, $f0 +/* 0600A0 7F02B570 00000000 */ nop +/* 0600A4 7F02B574 4502001F */ bc1fl .L7F02B5F4 +/* 0600A8 7F02B578 820E0008 */ lb $t6, 8($s0) +/* 0600AC 7F02B57C 8E080014 */ lw $t0, 0x14($s0) +/* 0600B0 7F02B580 3C0A8005 */ lui $t2, %hi(D_80048380) +/* 0600B4 7F02B584 00084980 */ sll $t1, $t0, 6 +/* 0600B8 7F02B588 0522001A */ bltzl $t1, .L7F02B5F4 +/* 0600BC 7F02B58C 820E0008 */ lb $t6, 8($s0) +/* 0600C0 7F02B590 8D4A8380 */ lw $t2, %lo(D_80048380)($t2) +/* 0600C4 7F02B594 314B0001 */ andi $t3, $t2, 1 +/* 0600C8 7F02B598 55600012 */ bnezl $t3, .L7F02B5E4 +/* 0600CC 7F02B59C 8E0C0014 */ lw $t4, 0x14($s0) +/* 0600D0 7F02B5A0 0FC0CB79 */ jal sub_GAME_7F032DE4 +/* 0600D4 7F02B5A4 02002025 */ move $a0, $s0 +/* 0600D8 7F02B5A8 3C014448 */ li $at, 0x44480000 # 800.000000 +/* 0600DC 7F02B5AC 44814000 */ mtc1 $at, $f8 +/* 0600E0 7F02B5B0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0600E4 7F02B5B4 24050101 */ li $a1, 257 +/* 0600E8 7F02B5B8 4608003C */ c.lt.s $f0, $f8 +/* 0600EC 7F02B5BC 00003025 */ move $a2, $zero +/* 0600F0 7F02B5C0 45020008 */ bc1fl .L7F02B5E4 +/* 0600F4 7F02B5C4 8E0C0014 */ lw $t4, 0x14($s0) +/* 0600F8 7F02B5C8 0C002382 */ jal play_sfx_a1 +/* 0600FC 7F02B5CC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 060100 7F02B5D0 8E050018 */ lw $a1, 0x18($s0) +/* 060104 7F02B5D4 00402025 */ move $a0, $v0 +/* 060108 7F02B5D8 0FC14E84 */ jal sub_GAME_7F053A10 +/* 06010C 7F02B5DC 24A50008 */ addiu $a1, $a1, 8 +/* 060110 7F02B5E0 8E0C0014 */ lw $t4, 0x14($s0) +.L7F02B5E4: +/* 060114 7F02B5E4 3C010200 */ lui $at, 0x200 +/* 060118 7F02B5E8 01816825 */ or $t5, $t4, $at +/* 06011C 7F02B5EC AE0D0014 */ sw $t5, 0x14($s0) +/* 060120 7F02B5F0 820E0008 */ lb $t6, 8($s0) +.L7F02B5F4: +/* 060124 7F02B5F4 5DC0000C */ bgtzl $t6, .L7F02B628 +/* 060128 7F02B5F8 8FBF001C */ lw $ra, 0x1c($sp) +/* 06012C 7F02B5FC 8E0F0038 */ lw $t7, 0x38($s0) +/* 060130 7F02B600 51E00009 */ beql $t7, $zero, .L7F02B628 +/* 060134 7F02B604 8FBF001C */ lw $ra, 0x1c($sp) +/* 060138 7F02B608 0C002914 */ jal get_random_value +/* 06013C 7F02B60C 00000000 */ nop +/* 060140 7F02B610 24010005 */ li $at, 5 +/* 060144 7F02B614 0041001B */ divu $zero, $v0, $at +/* 060148 7F02B618 0000C010 */ mfhi $t8 +/* 06014C 7F02B61C 2719000E */ addiu $t9, $t8, 0xe +/* 060150 7F02B620 A2190008 */ sb $t9, 8($s0) +/* 060154 7F02B624 8FBF001C */ lw $ra, 0x1c($sp) +.L7F02B628: +/* 060158 7F02B628 8FB00018 */ lw $s0, 0x18($sp) +/* 06015C 7F02B62C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 060160 7F02B630 03E00008 */ jr $ra +/* 060164 7F02B634 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02B638(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02B638 +/* 060168 7F02B638 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 06016C 7F02B63C AFBF0024 */ sw $ra, 0x24($sp) +/* 060170 7F02B640 AFB00020 */ sw $s0, 0x20($sp) +/* 060174 7F02B644 808E0008 */ lb $t6, 8($a0) +/* 060178 7F02B648 00808025 */ move $s0, $a0 +/* 06017C 7F02B64C 240F0010 */ li $t7, 16 +/* 060180 7F02B650 5DC00044 */ bgtzl $t6, .L7F02B764 +/* 060184 7F02B654 8FBF0024 */ lw $ra, 0x24($sp) +/* 060188 7F02B658 8C84001C */ lw $a0, 0x1c($a0) +/* 06018C 7F02B65C A20F0008 */ sb $t7, 8($s0) +/* 060190 7F02B660 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 060194 7F02B664 AFA4003C */ sw $a0, 0x3c($sp) +/* 060198 7F02B668 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 06019C 7F02B66C 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 0601A0 7F02B670 3C190000 */ lui $t9, %hi(0x00004504) # $t9, 0 +/* 0601A4 7F02B674 27394504 */ addiu $t9, %lo(0x00004504) # addiu $t9, $t9, 0x4504 +/* 0601A8 7F02B678 03194021 */ addu $t0, $t8, $t9 +/* 0601AC 7F02B67C 54480039 */ bnel $v0, $t0, .L7F02B764 +/* 0601B0 7F02B680 8FBF0024 */ lw $ra, 0x24($sp) +/* 0601B4 7F02B684 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 0601B8 7F02B688 8FA4003C */ lw $a0, 0x3c($sp) +/* 0601BC 7F02B68C 3C0142A0 */ li $at, 0x42A00000 # 80.000000 +/* 0601C0 7F02B690 44812000 */ mtc1 $at, $f4 +/* 0601C4 7F02B694 3C0A8003 */ lui $t2, %hi(D_80030A44) +/* 0601C8 7F02B698 254A0A44 */ addiu $t2, %lo(D_80030A44) # addiu $t2, $t2, 0xa44 +/* 0601CC 7F02B69C 4600203E */ c.le.s $f4, $f0 +/* 0601D0 7F02B6A0 00000000 */ nop +/* 0601D4 7F02B6A4 4502002F */ bc1fl .L7F02B764 +/* 0601D8 7F02B6A8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0601DC 7F02B6AC 8D410000 */ lw $at, ($t2) +/* 0601E0 7F02B6B0 27A90030 */ addiu $t1, $sp, 0x30 +/* 0601E4 7F02B6B4 8D4C0004 */ lw $t4, 4($t2) +/* 0601E8 7F02B6B8 AD210000 */ sw $at, ($t1) +/* 0601EC 7F02B6BC 8D410008 */ lw $at, 8($t2) +/* 0601F0 7F02B6C0 AD2C0004 */ sw $t4, 4($t1) +/* 0601F4 7F02B6C4 AD210008 */ sw $at, 8($t1) +/* 0601F8 7F02B6C8 0FC1B320 */ jal getsubroty +/* 0601FC 7F02B6CC 8FA4003C */ lw $a0, 0x3c($sp) +/* 060200 7F02B6D0 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 060204 7F02B6D4 0FC15FAB */ jal sinf +/* 060208 7F02B6D8 46000306 */ mov.s $f12, $f0 +/* 06020C 7F02B6DC 46000187 */ neg.s $f6, $f0 +/* 060210 7F02B6E0 C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 060214 7F02B6E4 0FC15FA8 */ jal cosf +/* 060218 7F02B6E8 E7A60030 */ swc1 $f6, 0x30($sp) +/* 06021C 7F02B6EC 46000207 */ neg.s $f8, $f0 +/* 060220 7F02B6F0 27A50030 */ addiu $a1, $sp, 0x30 +/* 060224 7F02B6F4 E7A80038 */ swc1 $f8, 0x38($sp) +/* 060228 7F02B6F8 8E040018 */ lw $a0, 0x18($s0) +/* 06022C 7F02B6FC 0FC0A6A5 */ jal sub_GAME_7F029A94 +/* 060230 7F02B700 3C0641A0 */ lui $a2, 0x41a0 +/* 060234 7F02B704 54400017 */ bnezl $v0, .L7F02B764 +/* 060238 7F02B708 8FBF0024 */ lw $ra, 0x24($sp) +/* 06023C 7F02B70C 0C002914 */ jal get_random_value +/* 060240 7F02B710 00000000 */ nop +/* 060244 7F02B714 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 060248 7F02B718 44815000 */ mtc1 $at, $f10 +/* 06024C 7F02B71C 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 060250 7F02B720 3C0D8007 */ lui $t5, %hi(ptr_animation_table) +/* 060254 7F02B724 8DAD9538 */ lw $t5, %lo(ptr_animation_table)($t5) +/* 060258 7F02B728 44818000 */ mtc1 $at, $f16 +/* 06025C 7F02B72C 3C0E0000 */ lui $t6, %hi(0x00004384) # $t6, 0 +/* 060260 7F02B730 25CE4384 */ addiu $t6, %lo(0x00004384) # addiu $t6, $t6, 0x4384 +/* 060264 7F02B734 8E04001C */ lw $a0, 0x1c($s0) +/* 060268 7F02B738 30460001 */ andi $a2, $v0, 1 +/* 06026C 7F02B73C 3C0741F0 */ lui $a3, 0x41f0 +/* 060270 7F02B740 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 060274 7F02B744 01AE2821 */ addu $a1, $t5, $t6 +/* 060278 7F02B748 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 06027C 7F02B74C E7B00014 */ swc1 $f16, 0x14($sp) +/* 060280 7F02B750 8E04001C */ lw $a0, 0x1c($s0) +/* 060284 7F02B754 3C0541F0 */ lui $a1, 0x41f0 +/* 060288 7F02B758 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 06028C 7F02B75C 3C064180 */ lui $a2, 0x4180 +/* 060290 7F02B760 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02B764: +/* 060294 7F02B764 8FB00020 */ lw $s0, 0x20($sp) +/* 060298 7F02B768 27BD0040 */ addiu $sp, $sp, 0x40 +/* 06029C 7F02B76C 03E00008 */ jr $ra +/* 0602A0 7F02B770 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void manage_guard_fade(void) { + +} +#else +GLOBAL_ASM( +.text +glabel manage_guard_fade +/* 0602A4 7F02B774 8C82002C */ lw $v0, 0x2c($a0) +/* 0602A8 7F02B778 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 0602AC 7F02B77C 0442001E */ bltzl $v0, .L7F02B7F8 +/* 0602B0 7F02B780 AC80002C */ sw $zero, 0x2c($a0) +/* 0602B4 7F02B784 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 0602B8 7F02B788 2403005A */ li $v1, 90 +/* 0602BC 7F02B78C 004E7821 */ addu $t7, $v0, $t6 +/* 0602C0 7F02B790 29E1005A */ slti $at, $t7, 0x5a +/* 0602C4 7F02B794 AC8F002C */ sw $t7, 0x2c($a0) +/* 0602C8 7F02B798 14200005 */ bnez $at, .L7F02B7B0 +/* 0602CC 7F02B79C 01E01025 */ move $v0, $t7 +/* 0602D0 7F02B7A0 94980012 */ lhu $t8, 0x12($a0) +/* 0602D4 7F02B7A4 37190020 */ ori $t9, $t8, 0x20 +/* 0602D8 7F02B7A8 03E00008 */ jr $ra +/* 0602DC 7F02B7AC A4990012 */ sh $t9, 0x12($a0) + +.L7F02B7B0: +/* 0602E0 7F02B7B0 00624023 */ subu $t0, $v1, $v0 +/* 0602E4 7F02B7B4 00084A00 */ sll $t1, $t0, 8 +/* 0602E8 7F02B7B8 01284823 */ subu $t1, $t1, $t0 +/* 0602EC 7F02B7BC 0123001A */ div $zero, $t1, $v1 +/* 0602F0 7F02B7C0 00005012 */ mflo $t2 +/* 0602F4 7F02B7C4 A08A000C */ sb $t2, 0xc($a0) +/* 0602F8 7F02B7C8 14600002 */ bnez $v1, .L7F02B7D4 +/* 0602FC 7F02B7CC 00000000 */ nop +/* 060300 7F02B7D0 0007000D */ break 7 +.L7F02B7D4: +/* 060304 7F02B7D4 2401FFFF */ li $at, -1 +/* 060308 7F02B7D8 14610004 */ bne $v1, $at, .L7F02B7EC +/* 06030C 7F02B7DC 3C018000 */ lui $at, 0x8000 +/* 060310 7F02B7E0 15210002 */ bne $t1, $at, .L7F02B7EC +/* 060314 7F02B7E4 00000000 */ nop +/* 060318 7F02B7E8 0006000D */ break 6 +.L7F02B7EC: +/* 06031C 7F02B7EC 03E00008 */ jr $ra +/* 060320 7F02B7F0 00000000 */ nop + +/* 060324 7F02B7F4 AC80002C */ sw $zero, 0x2c($a0) +.L7F02B7F8: +/* 060328 7F02B7F8 03E00008 */ jr $ra +/* 06032C 7F02B7FC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02B800(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E90 +.word 0x4a742400 /*4000000.0*/ +.text +glabel sub_GAME_7F02B800 +/* 060330 7F02B800 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 060334 7F02B804 AFBF003C */ sw $ra, 0x3c($sp) +/* 060338 7F02B808 AFB70038 */ sw $s7, 0x38($sp) +/* 06033C 7F02B80C AFB4002C */ sw $s4, 0x2c($sp) +/* 060340 7F02B810 AFB30028 */ sw $s3, 0x28($sp) +/* 060344 7F02B814 AFB20024 */ sw $s2, 0x24($sp) +/* 060348 7F02B818 0080A025 */ move $s4, $a0 +/* 06034C 7F02B81C 00A0B825 */ move $s7, $a1 +/* 060350 7F02B820 AFB60034 */ sw $s6, 0x34($sp) +/* 060354 7F02B824 AFB50030 */ sw $s5, 0x30($sp) +/* 060358 7F02B828 AFB10020 */ sw $s1, 0x20($sp) +/* 06035C 7F02B82C AFB0001C */ sw $s0, 0x1c($sp) +/* 060360 7F02B830 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 060364 7F02B834 00009825 */ move $s3, $zero +/* 060368 7F02B838 0FC07D4C */ jal get_numguards +/* 06036C 7F02B83C 00009025 */ move $s2, $zero +/* 060370 7F02B840 82830007 */ lb $v1, 7($s4) +/* 060374 7F02B844 24010006 */ li $at, 6 +/* 060378 7F02B848 0040B025 */ move $s6, $v0 +/* 06037C 7F02B84C 14610003 */ bne $v1, $at, .L7F02B85C +/* 060380 7F02B850 3C158003 */ lui $s5, %hi(ptr_guard_data) +/* 060384 7F02B854 10000005 */ b .L7F02B86C +/* 060388 7F02B858 8E93002C */ lw $s3, 0x2c($s4) +.L7F02B85C: +/* 06038C 7F02B85C 24010004 */ li $at, 4 +/* 060390 7F02B860 54610003 */ bnel $v1, $at, .L7F02B870 +/* 060394 7F02B864 0262082A */ slt $at, $s3, $v0 +/* 060398 7F02B868 8E93002C */ lw $s3, 0x2c($s4) +.L7F02B86C: +/* 06039C 7F02B86C 0262082A */ slt $at, $s3, $v0 +.L7F02B870: +/* 0603A0 7F02B870 10200036 */ beqz $at, .L7F02B94C +/* 0603A4 7F02B874 00138900 */ sll $s1, $s3, 4 +/* 0603A8 7F02B878 02338823 */ subu $s1, $s1, $s3 +/* 0603AC 7F02B87C 001188C0 */ sll $s1, $s1, 3 +/* 0603B0 7F02B880 02338823 */ subu $s1, $s1, $s3 +/* 0603B4 7F02B884 3C018005 */ lui $at, %hi(D_80051E90) +/* 0603B8 7F02B888 C4341E90 */ lwc1 $f20, %lo(D_80051E90)($at) +/* 0603BC 7F02B88C 00118880 */ sll $s1, $s1, 2 +/* 0603C0 7F02B890 26B5CC64 */ addiu $s5, %lo(ptr_guard_data) # addiu $s5, $s5, -0x339c +/* 0603C4 7F02B894 8EAE0000 */ lw $t6, ($s5) +.L7F02B898: +/* 0603C8 7F02B898 022E8021 */ addu $s0, $s1, $t6 +/* 0603CC 7F02B89C 8E0F001C */ lw $t7, 0x1c($s0) +/* 0603D0 7F02B8A0 51E00024 */ beql $t7, $zero, .L7F02B934 +/* 0603D4 7F02B8A4 26730001 */ addiu $s3, $s3, 1 +/* 0603D8 7F02B8A8 8E020018 */ lw $v0, 0x18($s0) +/* 0603DC 7F02B8AC 8E830018 */ lw $v1, 0x18($s4) +/* 0603E0 7F02B8B0 02002025 */ move $a0, $s0 +/* 0603E4 7F02B8B4 C4440008 */ lwc1 $f4, 8($v0) +/* 0603E8 7F02B8B8 C4660008 */ lwc1 $f6, 8($v1) +/* 0603EC 7F02B8BC C448000C */ lwc1 $f8, 0xc($v0) +/* 0603F0 7F02B8C0 C46A000C */ lwc1 $f10, 0xc($v1) +/* 0603F4 7F02B8C4 46062001 */ sub.s $f0, $f4, $f6 +/* 0603F8 7F02B8C8 C4500010 */ lwc1 $f16, 0x10($v0) +/* 0603FC 7F02B8CC C4720010 */ lwc1 $f18, 0x10($v1) +/* 060400 7F02B8D0 460A4081 */ sub.s $f2, $f8, $f10 +/* 060404 7F02B8D4 46000102 */ mul.s $f4, $f0, $f0 +/* 060408 7F02B8D8 24650008 */ addiu $a1, $v1, 8 +/* 06040C 7F02B8DC 46128301 */ sub.s $f12, $f16, $f18 +/* 060410 7F02B8E0 46021182 */ mul.s $f6, $f2, $f2 +/* 060414 7F02B8E4 46062200 */ add.s $f8, $f4, $f6 +/* 060418 7F02B8E8 460C6282 */ mul.s $f10, $f12, $f12 +/* 06041C 7F02B8EC 460A4400 */ add.s $f16, $f8, $f10 +/* 060420 7F02B8F0 4614803C */ c.lt.s $f16, $f20 +/* 060424 7F02B8F4 00000000 */ nop +/* 060428 7F02B8F8 4502000E */ bc1fl .L7F02B934 +/* 06042C 7F02B8FC 26730001 */ addiu $s3, $s3, 1 +/* 060430 7F02B900 26520001 */ addiu $s2, $s2, 1 +/* 060434 7F02B904 0FC0A5A7 */ jal sub_GAME_7F02969C +/* 060438 7F02B908 8C660014 */ lw $a2, 0x14($v1) +/* 06043C 7F02B90C 50400009 */ beql $v0, $zero, .L7F02B934 +/* 060440 7F02B910 26730001 */ addiu $s3, $s3, 1 +/* 060444 7F02B914 56E00005 */ bnezl $s7, .L7F02B92C +/* 060448 7F02B918 86990000 */ lh $t9, ($s4) +/* 06044C 7F02B91C 86980000 */ lh $t8, ($s4) +/* 060450 7F02B920 10000003 */ b .L7F02B930 +/* 060454 7F02B924 A6180118 */ sh $t8, 0x118($s0) +/* 060458 7F02B928 86990000 */ lh $t9, ($s4) +.L7F02B92C: +/* 06045C 7F02B92C A619011A */ sh $t9, 0x11a($s0) +.L7F02B930: +/* 060460 7F02B930 26730001 */ addiu $s3, $s3, 1 +.L7F02B934: +/* 060464 7F02B934 0276082A */ slt $at, $s3, $s6 +/* 060468 7F02B938 10200004 */ beqz $at, .L7F02B94C +/* 06046C 7F02B93C 263101DC */ addiu $s1, $s1, 0x1dc +/* 060470 7F02B940 2A410004 */ slti $at, $s2, 4 +/* 060474 7F02B944 5420FFD4 */ bnezl $at, .L7F02B898 +/* 060478 7F02B948 8EAE0000 */ lw $t6, ($s5) +.L7F02B94C: +/* 06047C 7F02B94C 82830007 */ lb $v1, 7($s4) +/* 060480 7F02B950 24010006 */ li $at, 6 +/* 060484 7F02B954 54610004 */ bnel $v1, $at, .L7F02B968 +/* 060488 7F02B958 24010004 */ li $at, 4 +/* 06048C 7F02B95C 10000005 */ b .L7F02B974 +/* 060490 7F02B960 AE93002C */ sw $s3, 0x2c($s4) +/* 060494 7F02B964 24010004 */ li $at, 4 +.L7F02B968: +/* 060498 7F02B968 54610003 */ bnel $v1, $at, .L7F02B978 +/* 06049C 7F02B96C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0604A0 7F02B970 AE93002C */ sw $s3, 0x2c($s4) +.L7F02B974: +/* 0604A4 7F02B974 8FBF003C */ lw $ra, 0x3c($sp) +.L7F02B978: +/* 0604A8 7F02B978 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0604AC 7F02B97C 8FB0001C */ lw $s0, 0x1c($sp) +/* 0604B0 7F02B980 8FB10020 */ lw $s1, 0x20($sp) +/* 0604B4 7F02B984 8FB20024 */ lw $s2, 0x24($sp) +/* 0604B8 7F02B988 8FB30028 */ lw $s3, 0x28($sp) +/* 0604BC 7F02B98C 8FB4002C */ lw $s4, 0x2c($sp) +/* 0604C0 7F02B990 8FB50030 */ lw $s5, 0x30($sp) +/* 0604C4 7F02B994 8FB60034 */ lw $s6, 0x34($sp) +/* 0604C8 7F02B998 8FB70038 */ lw $s7, 0x38($sp) +/* 0604CC 7F02B99C 03E00008 */ jr $ra +/* 0604D0 7F02B9A0 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + +#ifdef NONMATCHING +void guard_body_hit_sfx(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E94 +.word 0x3e99999a /*0.30000001*/ +.text +glabel guard_body_hit_sfx +/* 0604D4 7F02B9A4 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0604D8 7F02B9A8 3C0F8003 */ lui $t7, %hi(body_hit_SFX) +/* 0604DC 7F02B9AC AFBF0024 */ sw $ra, 0x24($sp) +/* 0604E0 7F02B9B0 AFB10020 */ sw $s1, 0x20($sp) +/* 0604E4 7F02B9B4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0604E8 7F02B9B8 25EF0A50 */ addiu $t7, %lo(body_hit_SFX) # addiu $t7, $t7, 0xa50 +/* 0604EC 7F02B9BC 8DE10000 */ lw $at, ($t7) +/* 0604F0 7F02B9C0 8C91001C */ lw $s1, 0x1c($a0) +/* 0604F4 7F02B9C4 27AE0038 */ addiu $t6, $sp, 0x38 +/* 0604F8 7F02B9C8 ADC10000 */ sw $at, ($t6) +/* 0604FC 7F02B9CC 8DE10008 */ lw $at, 8($t7) +/* 060500 7F02B9D0 8DE80004 */ lw $t0, 4($t7) +/* 060504 7F02B9D4 44803000 */ mtc1 $zero, $f6 +/* 060508 7F02B9D8 ADC10008 */ sw $at, 8($t6) +/* 06050C 7F02B9DC 8DE10010 */ lw $at, 0x10($t7) +/* 060510 7F02B9E0 ADC80004 */ sw $t0, 4($t6) +/* 060514 7F02B9E4 8DE8000C */ lw $t0, 0xc($t7) +/* 060518 7F02B9E8 ADC10010 */ sw $at, 0x10($t6) +/* 06051C 7F02B9EC 95E10014 */ lhu $at, 0x14($t7) +/* 060520 7F02B9F0 ADC8000C */ sw $t0, 0xc($t6) +/* 060524 7F02B9F4 00808025 */ move $s0, $a0 +/* 060528 7F02B9F8 A5C10014 */ sh $at, 0x14($t6) +/* 06052C 7F02B9FC C4840030 */ lwc1 $f4, 0x30($a0) +/* 060530 7F02BA00 4604303E */ c.le.s $f6, $f4 +/* 060534 7F02BA04 00000000 */ nop +/* 060538 7F02BA08 45020023 */ bc1fl .L7F02BA98 +/* 06053C 7F02BA0C C6100034 */ lwc1 $f16, 0x34($s0) +/* 060540 7F02BA10 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060544 7F02BA14 02202025 */ move $a0, $s1 +/* 060548 7F02BA18 C6080030 */ lwc1 $f8, 0x30($s0) +/* 06054C 7F02BA1C 3C028003 */ lui $v0, %hi(D_80030A68) +/* 060550 7F02BA20 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 060554 7F02BA24 4600403E */ c.le.s $f8, $f0 +/* 060558 7F02BA28 00000000 */ nop +/* 06055C 7F02BA2C 4502001A */ bc1fl .L7F02BA98 +/* 060560 7F02BA30 C6100034 */ lwc1 $f16, 0x34($s0) +/* 060564 7F02BA34 8C420A68 */ lw $v0, %lo(D_80030A68)($v0) +/* 060568 7F02BA38 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 06056C 7F02BA3C 00003025 */ move $a2, $zero +/* 060570 7F02BA40 00024840 */ sll $t1, $v0, 1 +/* 060574 7F02BA44 03A92821 */ addu $a1, $sp, $t1 +/* 060578 7F02BA48 0C002382 */ jal play_sfx_a1 +/* 06057C 7F02BA4C 84A50038 */ lh $a1, 0x38($a1) +/* 060580 7F02BA50 8E050018 */ lw $a1, 0x18($s0) +/* 060584 7F02BA54 00402025 */ move $a0, $v0 +/* 060588 7F02BA58 0FC14E84 */ jal sub_GAME_7F053A10 +/* 06058C 7F02BA5C 24A50008 */ addiu $a1, $a1, 8 +/* 060590 7F02BA60 3C028003 */ lui $v0, %hi(D_80030A68) +/* 060594 7F02BA64 8C420A68 */ lw $v0, %lo(D_80030A68)($v0) +/* 060598 7F02BA68 3C018003 */ lui $at, %hi(D_80030A68) +/* 06059C 7F02BA6C 24420001 */ addiu $v0, $v0, 1 +/* 0605A0 7F02BA70 AC220A68 */ sw $v0, %lo(D_80030A68)($at) +/* 0605A4 7F02BA74 2841000B */ slti $at, $v0, 0xb +/* 0605A8 7F02BA78 14200002 */ bnez $at, .L7F02BA84 +/* 0605AC 7F02BA7C 3C018003 */ lui $at, %hi(D_80030A68) +/* 0605B0 7F02BA80 AC200A68 */ sw $zero, %lo(D_80030A68)($at) +.L7F02BA84: +/* 0605B4 7F02BA84 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0605B8 7F02BA88 44815000 */ mtc1 $at, $f10 +/* 0605BC 7F02BA8C 00000000 */ nop +/* 0605C0 7F02BA90 E60A0030 */ swc1 $f10, 0x30($s0) +/* 0605C4 7F02BA94 C6100034 */ lwc1 $f16, 0x34($s0) +.L7F02BA98: +/* 0605C8 7F02BA98 44809000 */ mtc1 $zero, $f18 +/* 0605CC 7F02BA9C 00000000 */ nop +/* 0605D0 7F02BAA0 4610903E */ c.le.s $f18, $f16 +/* 0605D4 7F02BAA4 00000000 */ nop +/* 0605D8 7F02BAA8 45000022 */ bc1f .L7F02BB34 +/* 0605DC 7F02BAAC 00000000 */ nop +/* 0605E0 7F02BAB0 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 0605E4 7F02BAB4 02202025 */ move $a0, $s1 +/* 0605E8 7F02BAB8 C6040034 */ lwc1 $f4, 0x34($s0) +/* 0605EC 7F02BABC 3C028003 */ lui $v0, %hi(D_80030A68) +/* 0605F0 7F02BAC0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0605F4 7F02BAC4 4600203E */ c.le.s $f4, $f0 +/* 0605F8 7F02BAC8 00000000 */ nop +/* 0605FC 7F02BACC 45000019 */ bc1f .L7F02BB34 +/* 060600 7F02BAD0 00000000 */ nop +/* 060604 7F02BAD4 8C420A68 */ lw $v0, %lo(D_80030A68)($v0) +/* 060608 7F02BAD8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 06060C 7F02BADC 00003025 */ move $a2, $zero +/* 060610 7F02BAE0 00025040 */ sll $t2, $v0, 1 +/* 060614 7F02BAE4 03AA2821 */ addu $a1, $sp, $t2 +/* 060618 7F02BAE8 0C002382 */ jal play_sfx_a1 +/* 06061C 7F02BAEC 84A50038 */ lh $a1, 0x38($a1) +/* 060620 7F02BAF0 8E050018 */ lw $a1, 0x18($s0) +/* 060624 7F02BAF4 00402025 */ move $a0, $v0 +/* 060628 7F02BAF8 0FC14E84 */ jal sub_GAME_7F053A10 +/* 06062C 7F02BAFC 24A50008 */ addiu $a1, $a1, 8 +/* 060630 7F02BB00 3C028003 */ lui $v0, %hi(D_80030A68) +/* 060634 7F02BB04 8C420A68 */ lw $v0, %lo(D_80030A68)($v0) +/* 060638 7F02BB08 3C018003 */ lui $at, %hi(D_80030A68) +/* 06063C 7F02BB0C 24420001 */ addiu $v0, $v0, 1 +/* 060640 7F02BB10 AC220A68 */ sw $v0, %lo(D_80030A68)($at) +/* 060644 7F02BB14 2841000B */ slti $at, $v0, 0xb +/* 060648 7F02BB18 14200002 */ bnez $at, .L7F02BB24 +/* 06064C 7F02BB1C 3C018003 */ lui $at, %hi(D_80030A68) +/* 060650 7F02BB20 AC200A68 */ sw $zero, %lo(D_80030A68)($at) +.L7F02BB24: +/* 060654 7F02BB24 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 060658 7F02BB28 44813000 */ mtc1 $at, $f6 +/* 06065C 7F02BB2C 00000000 */ nop +/* 060660 7F02BB30 E6060034 */ swc1 $f6, 0x34($s0) +.L7F02BB34: +/* 060664 7F02BB34 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060668 7F02BB38 02202025 */ move $a0, $s1 +/* 06066C 7F02BB3C E7A00034 */ swc1 $f0, 0x34($sp) +/* 060670 7F02BB40 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 060674 7F02BB44 02202025 */ move $a0, $s1 +/* 060678 7F02BB48 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 06067C 7F02BB4C 4608003E */ c.le.s $f0, $f8 +/* 060680 7F02BB50 00000000 */ nop +/* 060684 7F02BB54 45020043 */ bc1fl .L7F02BC64 +/* 060688 7F02BB58 02002025 */ move $a0, $s0 +/* 06068C 7F02BB5C 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 060690 7F02BB60 02202025 */ move $a0, $s1 +/* 060694 7F02BB64 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 060698 7F02BB68 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 06069C 7F02BB6C 3C0C0000 */ lui $t4, %hi(0x0000540C) # $t4, 0 +/* 0606A0 7F02BB70 258C540C */ addiu $t4, %lo(0x0000540C) # addiu $t4, $t4, 0x540c +/* 0606A4 7F02BB74 016C6821 */ addu $t5, $t3, $t4 +/* 0606A8 7F02BB78 144D0037 */ bne $v0, $t5, .L7F02BC58 +/* 0606AC 7F02BB7C 00000000 */ nop +/* 0606B0 7F02BB80 0FC1BD6D */ jal sub_GAME_7F06F5B4 +/* 0606B4 7F02BB84 02202025 */ move $a0, $s1 +/* 0606B8 7F02BB88 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 0606BC 7F02BB8C 44810000 */ mtc1 $at, $f0 +/* 0606C0 7F02BB90 3C018005 */ lui $at, %hi(D_80051E94) +/* 0606C4 7F02BB94 3C198007 */ lui $t9, %hi(ptr_animation_table) +/* 0606C8 7F02BB98 8F399538 */ lw $t9, %lo(ptr_animation_table)($t9) +/* 0606CC 7F02BB9C C42A1E94 */ lwc1 $f10, %lo(D_80051E94)($at) +/* 0606D0 7F02BBA0 3C100000 */ lui $s0, %hi(0x00005684) # $s0, 0 +/* 0606D4 7F02BBA4 26105684 */ addiu $s0, %lo(0x00005684) # addiu $s0, $s0, 0x5684 +/* 0606D8 7F02BBA8 02192821 */ addu $a1, $s0, $t9 +/* 0606DC 7F02BBAC E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0606E0 7F02BBB0 94B80004 */ lhu $t8, 4($a1) +/* 0606E4 7F02BBB4 44070000 */ mfc1 $a3, $f0 +/* 0606E8 7F02BBB8 02202025 */ move $a0, $s1 +/* 0606EC 7F02BBBC 44988000 */ mtc1 $t8, $f16 +/* 0606F0 7F02BBC0 2C460001 */ sltiu $a2, $v0, 1 +/* 0606F4 7F02BBC4 07010005 */ bgez $t8, .L7F02BBDC +/* 0606F8 7F02BBC8 468084A0 */ cvt.s.w $f18, $f16 +/* 0606FC 7F02BBCC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 060700 7F02BBD0 44812000 */ mtc1 $at, $f4 +/* 060704 7F02BBD4 00000000 */ nop +/* 060708 7F02BBD8 46049480 */ add.s $f18, $f18, $f4 +.L7F02BBDC: +/* 06070C 7F02BBDC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 060710 7F02BBE0 44813000 */ mtc1 $at, $f6 +/* 060714 7F02BBE4 00000000 */ nop +/* 060718 7F02BBE8 46069201 */ sub.s $f8, $f18, $f6 +/* 06071C 7F02BBEC 46004281 */ sub.s $f10, $f8, $f0 +/* 060720 7F02BBF0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 060724 7F02BBF4 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 060728 7F02BBF8 3C0E8007 */ lui $t6, %hi(ptr_animation_table) +/* 06072C 7F02BBFC 8DCE9538 */ lw $t6, %lo(ptr_animation_table)($t6) +/* 060730 7F02BC00 02202025 */ move $a0, $s1 +/* 060734 7F02BC04 3C053F00 */ lui $a1, 0x3f00 +/* 060738 7F02BC08 020E7821 */ addu $t7, $s0, $t6 +/* 06073C 7F02BC0C 95E80004 */ lhu $t0, 4($t7) +/* 060740 7F02BC10 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 060744 7F02BC14 44888000 */ mtc1 $t0, $f16 +/* 060748 7F02BC18 05010004 */ bgez $t0, .L7F02BC2C +/* 06074C 7F02BC1C 46808120 */ cvt.s.w $f4, $f16 +/* 060750 7F02BC20 44819000 */ mtc1 $at, $f18 +/* 060754 7F02BC24 00000000 */ nop +/* 060758 7F02BC28 46122100 */ add.s $f4, $f4, $f18 +.L7F02BC2C: +/* 06075C 7F02BC2C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 060760 7F02BC30 44813000 */ mtc1 $at, $f6 +/* 060764 7F02BC34 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 060768 7F02BC38 44815000 */ mtc1 $at, $f10 +/* 06076C 7F02BC3C 46062201 */ sub.s $f8, $f4, $f6 +/* 060770 7F02BC40 460A4401 */ sub.s $f16, $f8, $f10 +/* 060774 7F02BC44 44068000 */ mfc1 $a2, $f16 +/* 060778 7F02BC48 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 06077C 7F02BC4C 00000000 */ nop +/* 060780 7F02BC50 10000007 */ b .L7F02BC70 +/* 060784 7F02BC54 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02BC58: +/* 060788 7F02BC58 0FC091EE */ jal actor_fade_away +/* 06078C 7F02BC5C 02002025 */ move $a0, $s0 +/* 060790 7F02BC60 02002025 */ move $a0, $s0 +.L7F02BC64: +/* 060794 7F02BC64 0FC0AE00 */ jal sub_GAME_7F02B800 +/* 060798 7F02BC68 24050001 */ li $a1, 1 +/* 06079C 7F02BC6C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02BC70: +/* 0607A0 7F02BC70 8FB0001C */ lw $s0, 0x1c($sp) +/* 0607A4 7F02BC74 8FB10020 */ lw $s1, 0x20($sp) +/* 0607A8 7F02BC78 03E00008 */ jr $ra +/* 0607AC 7F02BC7C 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02BC80(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02BC80 +/* 0607B0 7F02BC80 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0607B4 7F02BC84 AFB00018 */ sw $s0, 0x18($sp) +/* 0607B8 7F02BC88 00808025 */ move $s0, $a0 +/* 0607BC 7F02BC8C AFBF001C */ sw $ra, 0x1c($sp) +/* 0607C0 7F02BC90 8C84001C */ lw $a0, 0x1c($a0) +/* 0607C4 7F02BC94 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 0607C8 7F02BC98 AFA40024 */ sw $a0, 0x24($sp) +/* 0607CC 7F02BC9C E7A00020 */ swc1 $f0, 0x20($sp) +/* 0607D0 7F02BCA0 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 0607D4 7F02BCA4 8FA40024 */ lw $a0, 0x24($sp) +/* 0607D8 7F02BCA8 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0607DC 7F02BCAC 4604003E */ c.le.s $f0, $f4 +/* 0607E0 7F02BCB0 00000000 */ nop +/* 0607E4 7F02BCB4 45020013 */ bc1fl .L7F02BD04 +/* 0607E8 7F02BCB8 02002025 */ move $a0, $s0 +/* 0607EC 7F02BCBC 0FC0A6EC */ jal sub_GAME_7F029BB0 +/* 0607F0 7F02BCC0 02002025 */ move $a0, $s0 +/* 0607F4 7F02BCC4 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 0607F8 7F02BCC8 8FA40024 */ lw $a0, 0x24($sp) +/* 0607FC 7F02BCCC 3C0E8007 */ lui $t6, %hi(ptr_animation_table) +/* 060800 7F02BCD0 8DCE9538 */ lw $t6, %lo(ptr_animation_table)($t6) +/* 060804 7F02BCD4 3C0F0000 */ lui $t7, %hi(0x0000540C) # $t7, 0 +/* 060808 7F02BCD8 25EF540C */ addiu $t7, %lo(0x0000540C) # addiu $t7, $t7, 0x540c +/* 06080C 7F02BCDC 01CFC021 */ addu $t8, $t6, $t7 +/* 060810 7F02BCE0 14580005 */ bne $v0, $t8, .L7F02BCF8 +/* 060814 7F02BCE4 02002025 */ move $a0, $s0 +/* 060818 7F02BCE8 0FC08F85 */ jal sub_GAME_7F023E14 +/* 06081C 7F02BCEC 3C0541D0 */ lui $a1, 0x41d0 +/* 060820 7F02BCF0 10000004 */ b .L7F02BD04 +/* 060824 7F02BCF4 02002025 */ move $a0, $s0 +.L7F02BCF8: +/* 060828 7F02BCF8 0FC08F92 */ jal sub_GAME_7F023E48 +/* 06082C 7F02BCFC 02002025 */ move $a0, $s0 +/* 060830 7F02BD00 02002025 */ move $a0, $s0 +.L7F02BD04: +/* 060834 7F02BD04 0FC0AE00 */ jal sub_GAME_7F02B800 +/* 060838 7F02BD08 00002825 */ move $a1, $zero +/* 06083C 7F02BD0C 8FBF001C */ lw $ra, 0x1c($sp) +/* 060840 7F02BD10 8FB00018 */ lw $s0, 0x18($sp) +/* 060844 7F02BD14 27BD0028 */ addiu $sp, $sp, 0x28 +/* 060848 7F02BD18 03E00008 */ jr $ra +/* 06084C 7F02BD1C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02BD20(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02BD20 +/* 060850 7F02BD20 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 060854 7F02BD24 AFB00020 */ sw $s0, 0x20($sp) +/* 060858 7F02BD28 00808025 */ move $s0, $a0 +/* 06085C 7F02BD2C AFBF0024 */ sw $ra, 0x24($sp) +/* 060860 7F02BD30 8C84001C */ lw $a0, 0x1c($a0) +/* 060864 7F02BD34 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060868 7F02BD38 AFA4003C */ sw $a0, 0x3c($sp) +/* 06086C 7F02BD3C 8FA4003C */ lw $a0, 0x3c($sp) +/* 060870 7F02BD40 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 060874 7F02BD44 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 060878 7F02BD48 C7A4002C */ lwc1 $f4, 0x2c($sp) +/* 06087C 7F02BD4C 4604003E */ c.le.s $f0, $f4 +/* 060880 7F02BD50 00000000 */ nop +/* 060884 7F02BD54 4502000F */ bc1fl .L7F02BD94 +/* 060888 7F02BD58 8FBF0024 */ lw $ra, 0x24($sp) +/* 06088C 7F02BD5C C606002C */ lwc1 $f6, 0x2c($s0) +/* 060890 7F02BD60 02002025 */ move $a0, $s0 +/* 060894 7F02BD64 27A50030 */ addiu $a1, $sp, 0x30 +/* 060898 7F02BD68 E7A60030 */ swc1 $f6, 0x30($sp) +/* 06089C 7F02BD6C C6080030 */ lwc1 $f8, 0x30($s0) +/* 0608A0 7F02BD70 E7A80034 */ swc1 $f8, 0x34($sp) +/* 0608A4 7F02BD74 C60A0034 */ lwc1 $f10, 0x34($s0) +/* 0608A8 7F02BD78 E7AA0038 */ swc1 $f10, 0x38($sp) +/* 0608AC 7F02BD7C 8E0E0040 */ lw $t6, 0x40($s0) +/* 0608B0 7F02BD80 8E07003C */ lw $a3, 0x3c($s0) +/* 0608B4 7F02BD84 8E060038 */ lw $a2, 0x38($s0) +/* 0608B8 7F02BD88 0FC09942 */ jal triggered_on_shot_hit +/* 0608BC 7F02BD8C AFAE0010 */ sw $t6, 0x10($sp) +/* 0608C0 7F02BD90 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02BD94: +/* 0608C4 7F02BD94 8FB00020 */ lw $s0, 0x20($sp) +/* 0608C8 7F02BD98 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0608CC 7F02BD9C 03E00008 */ jr $ra +/* 0608D0 7F02BDA0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02BDA4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02BDA4 +/* 0608D4 7F02BDA4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0608D8 7F02BDA8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0608DC 7F02BDAC AFA40020 */ sw $a0, 0x20($sp) +/* 0608E0 7F02BDB0 8C84001C */ lw $a0, 0x1c($a0) +/* 0608E4 7F02BDB4 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 0608E8 7F02BDB8 AFA4001C */ sw $a0, 0x1c($sp) +/* 0608EC 7F02BDBC 8FA4001C */ lw $a0, 0x1c($sp) +/* 0608F0 7F02BDC0 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 0608F4 7F02BDC4 E7A00018 */ swc1 $f0, 0x18($sp) +/* 0608F8 7F02BDC8 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 0608FC 7F02BDCC 4604003E */ c.le.s $f0, $f4 +/* 060900 7F02BDD0 00000000 */ nop +/* 060904 7F02BDD4 45020007 */ bc1fl .L7F02BDF4 +/* 060908 7F02BDD8 8FBF0014 */ lw $ra, 0x14($sp) +/* 06090C 7F02BDDC 0FC0A6EC */ jal sub_GAME_7F029BB0 +/* 060910 7F02BDE0 8FA40020 */ lw $a0, 0x20($sp) +/* 060914 7F02BDE4 8FA40020 */ lw $a0, 0x20($sp) +/* 060918 7F02BDE8 0FC08F85 */ jal sub_GAME_7F023E14 +/* 06091C 7F02BDEC 3C054120 */ lui $a1, 0x4120 +/* 060920 7F02BDF0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02BDF4: +/* 060924 7F02BDF4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 060928 7F02BDF8 03E00008 */ jr $ra +/* 06092C 7F02BDFC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02BE00(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02BE00 +/* 060930 7F02BE00 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 060934 7F02BE04 AFBF0014 */ sw $ra, 0x14($sp) +/* 060938 7F02BE08 AFA40020 */ sw $a0, 0x20($sp) +/* 06093C 7F02BE0C 8C84001C */ lw $a0, 0x1c($a0) +/* 060940 7F02BE10 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060944 7F02BE14 AFA4001C */ sw $a0, 0x1c($sp) +/* 060948 7F02BE18 8FA4001C */ lw $a0, 0x1c($sp) +/* 06094C 7F02BE1C 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 060950 7F02BE20 E7A00018 */ swc1 $f0, 0x18($sp) +/* 060954 7F02BE24 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 060958 7F02BE28 4604003E */ c.le.s $f0, $f4 +/* 06095C 7F02BE2C 00000000 */ nop +/* 060960 7F02BE30 45020006 */ bc1fl .L7F02BE4C +/* 060964 7F02BE34 8FBF0014 */ lw $ra, 0x14($sp) +/* 060968 7F02BE38 0FC0A6EC */ jal sub_GAME_7F029BB0 +/* 06096C 7F02BE3C 8FA40020 */ lw $a0, 0x20($sp) +/* 060970 7F02BE40 0FC08F92 */ jal sub_GAME_7F023E48 +/* 060974 7F02BE44 8FA40020 */ lw $a0, 0x20($sp) +/* 060978 7F02BE48 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02BE4C: +/* 06097C 7F02BE4C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 060980 7F02BE50 03E00008 */ jr $ra +/* 060984 7F02BE54 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02BE58(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02BE58 +/* 060988 7F02BE58 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 06098C 7F02BE5C AFBF0014 */ sw $ra, 0x14($sp) +/* 060990 7F02BE60 AFA40020 */ sw $a0, 0x20($sp) +/* 060994 7F02BE64 8C84001C */ lw $a0, 0x1c($a0) +/* 060998 7F02BE68 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 06099C 7F02BE6C AFA4001C */ sw $a0, 0x1c($sp) +/* 0609A0 7F02BE70 8FA4001C */ lw $a0, 0x1c($sp) +/* 0609A4 7F02BE74 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 0609A8 7F02BE78 E7A00018 */ swc1 $f0, 0x18($sp) +/* 0609AC 7F02BE7C C7A40018 */ lwc1 $f4, 0x18($sp) +/* 0609B0 7F02BE80 4604003E */ c.le.s $f0, $f4 +/* 0609B4 7F02BE84 00000000 */ nop +/* 0609B8 7F02BE88 45020004 */ bc1fl .L7F02BE9C +/* 0609BC 7F02BE8C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0609C0 7F02BE90 0FC08F2E */ jal sub_GAME_7F023CB8 +/* 0609C4 7F02BE94 8FA40020 */ lw $a0, 0x20($sp) +/* 0609C8 7F02BE98 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02BE9C: +/* 0609CC 7F02BE9C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0609D0 7F02BEA0 03E00008 */ jr $ra +/* 0609D4 7F02BEA4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02BEA8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02BEA8 +/* 0609D8 7F02BEA8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0609DC 7F02BEAC AFBF0014 */ sw $ra, 0x14($sp) +/* 0609E0 7F02BEB0 AFA40020 */ sw $a0, 0x20($sp) +/* 0609E4 7F02BEB4 8C84001C */ lw $a0, 0x1c($a0) +/* 0609E8 7F02BEB8 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 0609EC 7F02BEBC AFA4001C */ sw $a0, 0x1c($sp) +/* 0609F0 7F02BEC0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0609F4 7F02BEC4 44812000 */ mtc1 $at, $f4 +/* 0609F8 7F02BEC8 00000000 */ nop +/* 0609FC 7F02BECC 4600203E */ c.le.s $f4, $f0 +/* 060A00 7F02BED0 00000000 */ nop +/* 060A04 7F02BED4 45000003 */ bc1f .L7F02BEE4 +/* 060A08 7F02BED8 00000000 */ nop +/* 060A0C 7F02BEDC 0FC15772 */ jal start_alarm +/* 060A10 7F02BEE0 00000000 */ nop +.L7F02BEE4: +/* 060A14 7F02BEE4 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060A18 7F02BEE8 8FA4001C */ lw $a0, 0x1c($sp) +/* 060A1C 7F02BEEC E7A00018 */ swc1 $f0, 0x18($sp) +/* 060A20 7F02BEF0 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 060A24 7F02BEF4 8FA4001C */ lw $a0, 0x1c($sp) +/* 060A28 7F02BEF8 C7A60018 */ lwc1 $f6, 0x18($sp) +/* 060A2C 7F02BEFC 4606003E */ c.le.s $f0, $f6 +/* 060A30 7F02BF00 00000000 */ nop +/* 060A34 7F02BF04 45020004 */ bc1fl .L7F02BF18 +/* 060A38 7F02BF08 8FBF0014 */ lw $ra, 0x14($sp) +/* 060A3C 7F02BF0C 0FC08F92 */ jal sub_GAME_7F023E48 +/* 060A40 7F02BF10 8FA40020 */ lw $a0, 0x20($sp) +/* 060A44 7F02BF14 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02BF18: +/* 060A48 7F02BF18 27BD0020 */ addiu $sp, $sp, 0x20 +/* 060A4C 7F02BF1C 03E00008 */ jr $ra +/* 060A50 7F02BF20 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02BF24(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02BF24 +/* 060A54 7F02BF24 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 060A58 7F02BF28 AFBF001C */ sw $ra, 0x1c($sp) +/* 060A5C 7F02BF2C AFB00018 */ sw $s0, 0x18($sp) +/* 060A60 7F02BF30 AFA40028 */ sw $a0, 0x28($sp) +/* 060A64 7F02BF34 8C90001C */ lw $s0, 0x1c($a0) +/* 060A68 7F02BF38 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060A6C 7F02BF3C 02002025 */ move $a0, $s0 +/* 060A70 7F02BF40 E7A00020 */ swc1 $f0, 0x20($sp) +/* 060A74 7F02BF44 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 060A78 7F02BF48 02002025 */ move $a0, $s0 +/* 060A7C 7F02BF4C C7A40020 */ lwc1 $f4, 0x20($sp) +/* 060A80 7F02BF50 4604003E */ c.le.s $f0, $f4 +/* 060A84 7F02BF54 00000000 */ nop +/* 060A88 7F02BF58 4502001E */ bc1fl .L7F02BFD4 +/* 060A8C 7F02BF5C 8FBF001C */ lw $ra, 0x1c($sp) +/* 060A90 7F02BF60 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 060A94 7F02BF64 02002025 */ move $a0, $s0 +/* 060A98 7F02BF68 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 060A9C 7F02BF6C 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 060AA0 7F02BF70 3C180000 */ lui $t8, %hi(0x00004384) # $t8, 0 +/* 060AA4 7F02BF74 27184384 */ addiu $t8, %lo(0x00004384) # addiu $t8, $t8, 0x4384 +/* 060AA8 7F02BF78 01F8C821 */ addu $t9, $t7, $t8 +/* 060AAC 7F02BF7C 14590005 */ bne $v0, $t9, .L7F02BF94 +/* 060AB0 7F02BF80 8FA40028 */ lw $a0, 0x28($sp) +/* 060AB4 7F02BF84 0FC08F85 */ jal sub_GAME_7F023E14 +/* 060AB8 7F02BF88 3C0541D0 */ lui $a1, 0x41d0 +/* 060ABC 7F02BF8C 10000011 */ b .L7F02BFD4 +/* 060AC0 7F02BF90 8FBF001C */ lw $ra, 0x1c($sp) +.L7F02BF94: +/* 060AC4 7F02BF94 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 060AC8 7F02BF98 02002025 */ move $a0, $s0 +/* 060ACC 7F02BF9C 3C088007 */ lui $t0, %hi(ptr_animation_table) +/* 060AD0 7F02BFA0 8D089538 */ lw $t0, %lo(ptr_animation_table)($t0) +/* 060AD4 7F02BFA4 3C090000 */ lui $t1, %hi(0x00005D10) # $t1, 0 +/* 060AD8 7F02BFA8 25295D10 */ addiu $t1, %lo(0x00005D10) # addiu $t1, $t1, 0x5d10 +/* 060ADC 7F02BFAC 01095021 */ addu $t2, $t0, $t1 +/* 060AE0 7F02BFB0 144A0005 */ bne $v0, $t2, .L7F02BFC8 +/* 060AE4 7F02BFB4 8FA40028 */ lw $a0, 0x28($sp) +/* 060AE8 7F02BFB8 0FC08F85 */ jal sub_GAME_7F023E14 +/* 060AEC 7F02BFBC 3C0541D0 */ lui $a1, 0x41d0 +/* 060AF0 7F02BFC0 10000004 */ b .L7F02BFD4 +/* 060AF4 7F02BFC4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F02BFC8: +/* 060AF8 7F02BFC8 0FC08F92 */ jal sub_GAME_7F023E48 +/* 060AFC 7F02BFCC 8FA40028 */ lw $a0, 0x28($sp) +/* 060B00 7F02BFD0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F02BFD4: +/* 060B04 7F02BFD4 8FB00018 */ lw $s0, 0x18($sp) +/* 060B08 7F02BFD8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 060B0C 7F02BFDC 03E00008 */ jr $ra +/* 060B10 7F02BFE0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02BFE4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02BFE4 +/* 060B14 7F02BFE4 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 060B18 7F02BFE8 AFBF001C */ sw $ra, 0x1c($sp) +/* 060B1C 7F02BFEC AFB00018 */ sw $s0, 0x18($sp) +/* 060B20 7F02BFF0 00808025 */ move $s0, $a0 +/* 060B24 7F02BFF4 AFA50044 */ sw $a1, 0x44($sp) +/* 060B28 7F02BFF8 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 060B2C 7F02BFFC AFA60048 */ sw $a2, 0x48($sp) +/* 060B30 7F02C000 8C430004 */ lw $v1, 4($v0) +/* 060B34 7F02C004 80640080 */ lb $a0, 0x80($v1) +/* 060B38 7F02C008 AFA00034 */ sw $zero, 0x34($sp) +/* 060B3C 7F02C00C 0FC177FC */ jal get_sound_trigger_rate +/* 060B40 7F02C010 AFA30038 */ sw $v1, 0x38($sp) +/* 060B44 7F02C014 8FA30038 */ lw $v1, 0x38($sp) +/* 060B48 7F02C018 A3A20033 */ sb $v0, 0x33($sp) +/* 060B4C 7F02C01C 0FC17805 */ jal bondwalkItemGetSound +/* 060B50 7F02C020 80640080 */ lb $a0, 0x80($v1) +/* 060B54 7F02C024 8FAE0048 */ lw $t6, 0x48($sp) +/* 060B58 7F02C028 8FA50034 */ lw $a1, 0x34($sp) +/* 060B5C 7F02C02C A7A20030 */ sh $v0, 0x30($sp) +/* 060B60 7F02C030 11C00012 */ beqz $t6, .L7F02C07C +/* 060B64 7F02C034 93AF0033 */ lbu $t7, 0x33($sp) +/* 060B68 7F02C038 59E00010 */ blezl $t7, .L7F02C07C +/* 060B6C 7F02C03C 24050001 */ li $a1, 1 +/* 060B70 7F02C040 96180012 */ lhu $t8, 0x12($s0) +/* 060B74 7F02C044 8FA80044 */ lw $t0, 0x44($sp) +/* 060B78 7F02C048 3C0C8005 */ lui $t4, %hi(global_timer) +/* 060B7C 7F02C04C 33190080 */ andi $t9, $t8, 0x80 +/* 060B80 7F02C050 1720000A */ bnez $t9, .L7F02C07C +/* 060B84 7F02C054 00084880 */ sll $t1, $t0, 2 +/* 060B88 7F02C058 02095021 */ addu $t2, $s0, $t1 +/* 060B8C 7F02C05C 8D4B0178 */ lw $t3, 0x178($t2) +/* 060B90 7F02C060 8D8C837C */ lw $t4, %lo(global_timer)($t4) +/* 060B94 7F02C064 016C082A */ slt $at, $t3, $t4 +/* 060B98 7F02C068 10200004 */ beqz $at, .L7F02C07C +/* 060B9C 7F02C06C 00000000 */ nop +/* 060BA0 7F02C070 10000002 */ b .L7F02C07C +/* 060BA4 7F02C074 24050001 */ li $a1, 1 +/* 060BA8 7F02C078 24050001 */ li $a1, 1 +.L7F02C07C: +/* 060BAC 7F02C07C 10A0003F */ beqz $a1, .L7F02C17C +/* 060BB0 7F02C080 8FAD0044 */ lw $t5, 0x44($sp) +/* 060BB4 7F02C084 000D70C0 */ sll $t6, $t5, 3 +/* 060BB8 7F02C088 020E1821 */ addu $v1, $s0, $t6 +/* 060BBC 7F02C08C 8C640168 */ lw $a0, 0x168($v1) +/* 060BC0 7F02C090 5080000A */ beql $a0, $zero, .L7F02C0BC +/* 060BC4 7F02C094 8C64016C */ lw $a0, 0x16c($v1) +/* 060BC8 7F02C098 0C00237C */ jal sfxGetArg0Unk3F +/* 060BCC 7F02C09C AFA30028 */ sw $v1, 0x28($sp) +/* 060BD0 7F02C0A0 10400005 */ beqz $v0, .L7F02C0B8 +/* 060BD4 7F02C0A4 8FA30028 */ lw $v1, 0x28($sp) +/* 060BD8 7F02C0A8 8C640168 */ lw $a0, 0x168($v1) +/* 060BDC 7F02C0AC 0C002408 */ jal sfxDeactivate +/* 060BE0 7F02C0B0 AFA30028 */ sw $v1, 0x28($sp) +/* 060BE4 7F02C0B4 8FA30028 */ lw $v1, 0x28($sp) +.L7F02C0B8: +/* 060BE8 7F02C0B8 8C64016C */ lw $a0, 0x16c($v1) +.L7F02C0BC: +/* 060BEC 7F02C0BC 5080000A */ beql $a0, $zero, .L7F02C0E8 +/* 060BF0 7F02C0C0 97AF0030 */ lhu $t7, 0x30($sp) +/* 060BF4 7F02C0C4 0C00237C */ jal sfxGetArg0Unk3F +/* 060BF8 7F02C0C8 AFA30028 */ sw $v1, 0x28($sp) +/* 060BFC 7F02C0CC 10400005 */ beqz $v0, .L7F02C0E4 +/* 060C00 7F02C0D0 8FA30028 */ lw $v1, 0x28($sp) +/* 060C04 7F02C0D4 8C64016C */ lw $a0, 0x16c($v1) +/* 060C08 7F02C0D8 0C002408 */ jal sfxDeactivate +/* 060C0C 7F02C0DC AFA30028 */ sw $v1, 0x28($sp) +/* 060C10 7F02C0E0 8FA30028 */ lw $v1, 0x28($sp) +.L7F02C0E4: +/* 060C14 7F02C0E4 97AF0030 */ lhu $t7, 0x30($sp) +.L7F02C0E8: +/* 060C18 7F02C0E8 51E00025 */ beql $t7, $zero, .L7F02C180 +/* 060C1C 7F02C0EC 8FBF001C */ lw $ra, 0x1c($sp) +/* 060C20 7F02C0F0 8C780168 */ lw $t8, 0x168($v1) +/* 060C24 7F02C0F4 00003025 */ move $a2, $zero +/* 060C28 7F02C0F8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 060C2C 7F02C0FC 17000003 */ bnez $t8, .L7F02C10C +/* 060C30 7F02C100 87A50030 */ lh $a1, 0x30($sp) +/* 060C34 7F02C104 10000005 */ b .L7F02C11C +/* 060C38 7F02C108 24660168 */ addiu $a2, $v1, 0x168 +.L7F02C10C: +/* 060C3C 7F02C10C 8C79016C */ lw $t9, 0x16c($v1) +/* 060C40 7F02C110 17200002 */ bnez $t9, .L7F02C11C +/* 060C44 7F02C114 00000000 */ nop +/* 060C48 7F02C118 2466016C */ addiu $a2, $v1, 0x16c +.L7F02C11C: +/* 060C4C 7F02C11C 10C00017 */ beqz $a2, .L7F02C17C +/* 060C50 7F02C120 93A80033 */ lbu $t0, 0x33($sp) +/* 060C54 7F02C124 8FA90044 */ lw $t1, 0x44($sp) +/* 060C58 7F02C128 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 060C5C 7F02C12C AFA80028 */ sw $t0, 0x28($sp) +/* 060C60 7F02C130 00095080 */ sll $t2, $t1, 2 +/* 060C64 7F02C134 020A5821 */ addu $t3, $s0, $t2 +/* 060C68 7F02C138 AFAB0024 */ sw $t3, 0x24($sp) +/* 060C6C 7F02C13C 0C002382 */ jal play_sfx_a1 +/* 060C70 7F02C140 AFA6002C */ sw $a2, 0x2c($sp) +/* 060C74 7F02C144 8FA6002C */ lw $a2, 0x2c($sp) +/* 060C78 7F02C148 8E050018 */ lw $a1, 0x18($s0) +/* 060C7C 7F02C14C 8CC40000 */ lw $a0, ($a2) +/* 060C80 7F02C150 0FC14E84 */ jal sub_GAME_7F053A10 +/* 060C84 7F02C154 24A50008 */ addiu $a1, $a1, 8 +/* 060C88 7F02C158 3C0C8005 */ lui $t4, %hi(global_timer) +/* 060C8C 7F02C15C 8D8C837C */ lw $t4, %lo(global_timer)($t4) +/* 060C90 7F02C160 8FAD0028 */ lw $t5, 0x28($sp) +/* 060C94 7F02C164 8FAF0024 */ lw $t7, 0x24($sp) +/* 060C98 7F02C168 018D7021 */ addu $t6, $t4, $t5 +/* 060C9C 7F02C16C ADEE0178 */ sw $t6, 0x178($t7) +/* 060CA0 7F02C170 96180012 */ lhu $t8, 0x12($s0) +/* 060CA4 7F02C174 37190080 */ ori $t9, $t8, 0x80 +/* 060CA8 7F02C178 A6190012 */ sh $t9, 0x12($s0) +.L7F02C17C: +/* 060CAC 7F02C17C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F02C180: +/* 060CB0 7F02C180 8FB00018 */ lw $s0, 0x18($sp) +/* 060CB4 7F02C184 27BD0040 */ addiu $sp, $sp, 0x40 +/* 060CB8 7F02C188 03E00008 */ jr $ra +/* 060CBC 7F02C18C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02C190(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E98 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F02C190 +/* 060CC0 7F02C190 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 060CC4 7F02C194 AFBF0014 */ sw $ra, 0x14($sp) +/* 060CC8 7F02C198 00802825 */ move $a1, $a0 +/* 060CCC 7F02C19C 8C84001C */ lw $a0, 0x1c($a0) +/* 060CD0 7F02C1A0 0FC1B320 */ jal getsubroty +/* 060CD4 7F02C1A4 AFA50018 */ sw $a1, 0x18($sp) +/* 060CD8 7F02C1A8 8FA50018 */ lw $a1, 0x18($sp) +/* 060CDC 7F02C1AC 3C018005 */ lui $at, %hi(D_80051E98) +/* 060CE0 7F02C1B0 C42E1E98 */ lwc1 $f14, %lo(D_80051E98)($at) +/* 060CE4 7F02C1B4 C4A4014C */ lwc1 $f4, 0x14c($a1) +/* 060CE8 7F02C1B8 44808000 */ mtc1 $zero, $f16 +/* 060CEC 7F02C1BC 8FBF0014 */ lw $ra, 0x14($sp) +/* 060CF0 7F02C1C0 46040080 */ add.s $f2, $f0, $f4 +/* 060CF4 7F02C1C4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 060CF8 7F02C1C8 46008306 */ mov.s $f12, $f16 +/* 060CFC 7F02C1CC 4602703E */ c.le.s $f14, $f2 +/* 060D00 7F02C1D0 00000000 */ nop +/* 060D04 7F02C1D4 45020004 */ bc1fl .L7F02C1E8 +/* 060D08 7F02C1D8 4610103C */ c.lt.s $f2, $f16 +/* 060D0C 7F02C1DC 10000006 */ b .L7F02C1F8 +/* 060D10 7F02C1E0 460E1081 */ sub.s $f2, $f2, $f14 +/* 060D14 7F02C1E4 4610103C */ c.lt.s $f2, $f16 +.L7F02C1E8: +/* 060D18 7F02C1E8 00000000 */ nop +/* 060D1C 7F02C1EC 45020003 */ bc1fl .L7F02C1FC +/* 060D20 7F02C1F0 80A20007 */ lb $v0, 7($a1) +/* 060D24 7F02C1F4 460E1080 */ add.s $f2, $f2, $f14 +.L7F02C1F8: +/* 060D28 7F02C1F8 80A20007 */ lb $v0, 7($a1) +.L7F02C1FC: +/* 060D2C 7F02C1FC 24010008 */ li $at, 8 +/* 060D30 7F02C200 10410003 */ beq $v0, $at, .L7F02C210 +/* 060D34 7F02C204 2401000A */ li $at, 10 +/* 060D38 7F02C208 54410005 */ bnel $v0, $at, .L7F02C220 +/* 060D3C 7F02C20C 24010019 */ li $at, 25 +.L7F02C210: +/* 060D40 7F02C210 8CAE002C */ lw $t6, 0x2c($a1) +/* 060D44 7F02C214 10000008 */ b .L7F02C238 +/* 060D48 7F02C218 C5CC000C */ lwc1 $f12, 0xc($t6) +/* 060D4C 7F02C21C 24010019 */ li $at, 25 +.L7F02C220: +/* 060D50 7F02C220 54410006 */ bnel $v0, $at, .L7F02C23C +/* 060D54 7F02C224 46106032 */ c.eq.s $f12, $f16 +/* 060D58 7F02C228 8CA2002C */ lw $v0, 0x2c($a1) +/* 060D5C 7F02C22C 50400003 */ beql $v0, $zero, .L7F02C23C +/* 060D60 7F02C230 46106032 */ c.eq.s $f12, $f16 +/* 060D64 7F02C234 C44C000C */ lwc1 $f12, 0xc($v0) +.L7F02C238: +/* 060D68 7F02C238 46106032 */ c.eq.s $f12, $f16 +.L7F02C23C: +/* 060D6C 7F02C23C 00000000 */ nop +/* 060D70 7F02C240 4501000C */ bc1t .L7F02C274 +/* 060D74 7F02C244 00000000 */ nop +/* 060D78 7F02C248 8CAF001C */ lw $t7, 0x1c($a1) +/* 060D7C 7F02C24C 81F80024 */ lb $t8, 0x24($t7) +/* 060D80 7F02C250 53000003 */ beql $t8, $zero, .L7F02C260 +/* 060D84 7F02C254 460C1080 */ add.s $f2, $f2, $f12 +/* 060D88 7F02C258 460C7301 */ sub.s $f12, $f14, $f12 +/* 060D8C 7F02C25C 460C1080 */ add.s $f2, $f2, $f12 +.L7F02C260: +/* 060D90 7F02C260 4602703E */ c.le.s $f14, $f2 +/* 060D94 7F02C264 00000000 */ nop +/* 060D98 7F02C268 45000002 */ bc1f .L7F02C274 +/* 060D9C 7F02C26C 00000000 */ nop +/* 060DA0 7F02C270 460E1081 */ sub.s $f2, $f2, $f14 +.L7F02C274: +/* 060DA4 7F02C274 03E00008 */ jr $ra +/* 060DA8 7F02C278 46001006 */ mov.s $f0, $f2 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02C27C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051E9C +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F02C27C +/* 060DAC 7F02C27C C4840144 */ lwc1 $f4, 0x144($a0) +/* 060DB0 7F02C280 C4860148 */ lwc1 $f6, 0x148($a0) +/* 060DB4 7F02C284 44804000 */ mtc1 $zero, $f8 +/* 060DB8 7F02C288 3C018005 */ lui $at, %hi(D_80051E9C) +/* 060DBC 7F02C28C 46062080 */ add.s $f2, $f4, $f6 +/* 060DC0 7F02C290 4608103C */ c.lt.s $f2, $f8 +/* 060DC4 7F02C294 00000000 */ nop +/* 060DC8 7F02C298 45000003 */ bc1f .L7F02C2A8 +/* 060DCC 7F02C29C 00000000 */ nop +/* 060DD0 7F02C2A0 C42A1E9C */ lwc1 $f10, %lo(D_80051E9C)($at) +/* 060DD4 7F02C2A4 460A1080 */ add.s $f2, $f2, $f10 +.L7F02C2A8: +/* 060DD8 7F02C2A8 03E00008 */ jr $ra +/* 060DDC 7F02C2AC 46001006 */ mov.s $f0, $f2 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02C2B0(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80051EA0 +.word 0x3d80adfd /*0.062831856*/ +glabel D_80051EA4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051EA8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051EAC +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F02C2B0 +/* 060DE0 7F02C2B0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 060DE4 7F02C2B4 AFA7003C */ sw $a3, 0x3c($sp) +/* 060DE8 7F02C2B8 24010002 */ li $at, 2 +/* 060DEC 7F02C2BC 00803825 */ move $a3, $a0 +/* 060DF0 7F02C2C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 060DF4 7F02C2C4 AFA40030 */ sw $a0, 0x30($sp) +/* 060DF8 7F02C2C8 AFA50034 */ sw $a1, 0x34($sp) +/* 060DFC 7F02C2CC 10A10077 */ beq $a1, $at, .L7F02C4AC +/* 060E00 7F02C2D0 AFA60038 */ sw $a2, 0x38($sp) +/* 060E04 7F02C2D4 8C84001C */ lw $a0, 0x1c($a0) +/* 060E08 7F02C2D8 AFA70030 */ sw $a3, 0x30($sp) +/* 060E0C 7F02C2DC 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060E10 7F02C2E0 AFA4002C */ sw $a0, 0x2c($sp) +/* 060E14 7F02C2E4 E7A00028 */ swc1 $f0, 0x28($sp) +/* 060E18 7F02C2E8 0FC1B320 */ jal getsubroty +/* 060E1C 7F02C2EC 8FA4002C */ lw $a0, 0x2c($sp) +/* 060E20 7F02C2F0 3C018005 */ lui $at, %hi(D_80051EA0) +/* 060E24 7F02C2F4 C4241EA0 */ lwc1 $f4, %lo(D_80051EA0)($at) +/* 060E28 7F02C2F8 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 060E2C 7F02C2FC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 060E30 7F02C300 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 060E34 7F02C304 46062202 */ mul.s $f8, $f4, $f6 +/* 060E38 7F02C308 8FAF002C */ lw $t7, 0x2c($sp) +/* 060E3C 7F02C30C 8FA70030 */ lw $a3, 0x30($sp) +/* 060E40 7F02C310 24010008 */ li $at, 8 +/* 060E44 7F02C314 C5E400A4 */ lwc1 $f4, 0xa4($t7) +/* 060E48 7F02C318 80E20007 */ lb $v0, 7($a3) +/* 060E4C 7F02C31C 46000306 */ mov.s $f12, $f0 +/* 060E50 7F02C320 460A4482 */ mul.s $f18, $f8, $f10 +/* 060E54 7F02C324 00E02025 */ move $a0, $a3 +/* 060E58 7F02C328 46049382 */ mul.s $f14, $f18, $f4 +/* 060E5C 7F02C32C 5441000A */ bnel $v0, $at, .L7F02C358 +/* 060E60 7F02C330 24010001 */ li $at, 1 +/* 060E64 7F02C334 8CE5004C */ lw $a1, 0x4c($a3) +/* 060E68 7F02C338 8CE60050 */ lw $a2, 0x50($a3) +/* 060E6C 7F02C33C E7AE0018 */ swc1 $f14, 0x18($sp) +/* 060E70 7F02C340 0FC0942F */ jal sub_GAME_7F0250BC +/* 060E74 7F02C344 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 060E78 7F02C348 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 060E7C 7F02C34C 10000015 */ b .L7F02C3A4 +/* 060E80 7F02C350 C7AE0018 */ lwc1 $f14, 0x18($sp) +/* 060E84 7F02C354 24010001 */ li $at, 1 +.L7F02C358: +/* 060E88 7F02C358 14410009 */ bne $v0, $at, .L7F02C380 +/* 060E8C 7F02C35C 00E02025 */ move $a0, $a3 +/* 060E90 7F02C360 8CE50030 */ lw $a1, 0x30($a3) +/* 060E94 7F02C364 8CE60034 */ lw $a2, 0x34($a3) +/* 060E98 7F02C368 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 060E9C 7F02C36C 0FC0942F */ jal sub_GAME_7F0250BC +/* 060EA0 7F02C370 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 060EA4 7F02C374 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 060EA8 7F02C378 1000000A */ b .L7F02C3A4 +/* 060EAC 7F02C37C C7AE0018 */ lwc1 $f14, 0x18($sp) +.L7F02C380: +/* 060EB0 7F02C380 AFA70030 */ sw $a3, 0x30($sp) +/* 060EB4 7F02C384 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 060EB8 7F02C388 0FC225E6 */ jal get_curplayer_positiondata +/* 060EBC 7F02C38C E7AE0018 */ swc1 $f14, 0x18($sp) +/* 060EC0 7F02C390 8FA40030 */ lw $a0, 0x30($sp) +/* 060EC4 7F02C394 0FC0CAF6 */ jal get_distance_actor_to_position +/* 060EC8 7F02C398 24450008 */ addiu $a1, $v0, 8 +/* 060ECC 7F02C39C C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 060ED0 7F02C3A0 C7AE0018 */ lwc1 $f14, 0x18($sp) +.L7F02C3A4: +/* 060ED4 7F02C3A4 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 060ED8 7F02C3A8 44808000 */ mtc1 $zero, $f16 +/* 060EDC 7F02C3AC 3C018005 */ lui $at, %hi(D_80051EA4) +/* 060EE0 7F02C3B0 46060081 */ sub.s $f2, $f0, $f6 +/* 060EE4 7F02C3B4 4610103C */ c.lt.s $f2, $f16 +/* 060EE8 7F02C3B8 00000000 */ nop +/* 060EEC 7F02C3BC 45020004 */ bc1fl .L7F02C3D0 +/* 060EF0 7F02C3C0 460E103C */ c.lt.s $f2, $f14 +/* 060EF4 7F02C3C4 C4201EA4 */ lwc1 $f0, %lo(D_80051EA4)($at) +/* 060EF8 7F02C3C8 46001080 */ add.s $f2, $f2, $f0 +/* 060EFC 7F02C3CC 460E103C */ c.lt.s $f2, $f14 +.L7F02C3D0: +/* 060F00 7F02C3D0 3C018005 */ lui $at, %hi(D_80051EA8) +/* 060F04 7F02C3D4 C4201EA8 */ lwc1 $f0, %lo(D_80051EA8)($at) +/* 060F08 7F02C3D8 45030008 */ bc1tl .L7F02C3FC +/* 060F0C 7F02C3DC 46026300 */ add.s $f12, $f12, $f2 +/* 060F10 7F02C3E0 460E0201 */ sub.s $f8, $f0, $f14 +/* 060F14 7F02C3E4 3C018005 */ lui $at, %hi(D_80051EAC) +/* 060F18 7F02C3E8 4602403C */ c.lt.s $f8, $f2 +/* 060F1C 7F02C3EC 00000000 */ nop +/* 060F20 7F02C3F0 4500000D */ bc1f .L7F02C428 +/* 060F24 7F02C3F4 00000000 */ nop +/* 060F28 7F02C3F8 46026300 */ add.s $f12, $f12, $f2 +.L7F02C3FC: +/* 060F2C 7F02C3FC 460C003E */ c.le.s $f0, $f12 +/* 060F30 7F02C400 00000000 */ nop +/* 060F34 7F02C404 45020003 */ bc1fl .L7F02C414 +/* 060F38 7F02C408 44056000 */ mfc1 $a1, $f12 +/* 060F3C 7F02C40C 46006301 */ sub.s $f12, $f12, $f0 +/* 060F40 7F02C410 44056000 */ mfc1 $a1, $f12 +.L7F02C414: +/* 060F44 7F02C414 0FC1B34F */ jal setsubroty +/* 060F48 7F02C418 8FA4002C */ lw $a0, 0x2c($sp) +/* 060F4C 7F02C41C 24180003 */ li $t8, 3 +/* 060F50 7F02C420 1000001A */ b .L7F02C48C +/* 060F54 7F02C424 AFB80034 */ sw $t8, 0x34($sp) +.L7F02C428: +/* 060F58 7F02C428 C42A1EAC */ lwc1 $f10, %lo(D_80051EAC)($at) +/* 060F5C 7F02C42C 460A103C */ c.lt.s $f2, $f10 +/* 060F60 7F02C430 00000000 */ nop +/* 060F64 7F02C434 4502000D */ bc1fl .L7F02C46C +/* 060F68 7F02C438 460E6301 */ sub.s $f12, $f12, $f14 +/* 060F6C 7F02C43C 460E6300 */ add.s $f12, $f12, $f14 +/* 060F70 7F02C440 460C003E */ c.le.s $f0, $f12 +/* 060F74 7F02C444 00000000 */ nop +/* 060F78 7F02C448 45020003 */ bc1fl .L7F02C458 +/* 060F7C 7F02C44C 44056000 */ mfc1 $a1, $f12 +/* 060F80 7F02C450 46006301 */ sub.s $f12, $f12, $f0 +/* 060F84 7F02C454 44056000 */ mfc1 $a1, $f12 +.L7F02C458: +/* 060F88 7F02C458 0FC1B34F */ jal setsubroty +/* 060F8C 7F02C45C 8FA4002C */ lw $a0, 0x2c($sp) +/* 060F90 7F02C460 1000000B */ b .L7F02C490 +/* 060F94 7F02C464 C7B20028 */ lwc1 $f18, 0x28($sp) +/* 060F98 7F02C468 460E6301 */ sub.s $f12, $f12, $f14 +.L7F02C46C: +/* 060F9C 7F02C46C 4610603C */ c.lt.s $f12, $f16 +/* 060FA0 7F02C470 00000000 */ nop +/* 060FA4 7F02C474 45020003 */ bc1fl .L7F02C484 +/* 060FA8 7F02C478 44056000 */ mfc1 $a1, $f12 +/* 060FAC 7F02C47C 46006300 */ add.s $f12, $f12, $f0 +/* 060FB0 7F02C480 44056000 */ mfc1 $a1, $f12 +.L7F02C484: +/* 060FB4 7F02C484 0FC1B34F */ jal setsubroty +/* 060FB8 7F02C488 8FA4002C */ lw $a0, 0x2c($sp) +.L7F02C48C: +/* 060FBC 7F02C48C C7B20028 */ lwc1 $f18, 0x28($sp) +.L7F02C490: +/* 060FC0 7F02C490 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 060FC4 7F02C494 24190002 */ li $t9, 2 +/* 060FC8 7F02C498 4612203E */ c.le.s $f4, $f18 +/* 060FCC 7F02C49C 00000000 */ nop +/* 060FD0 7F02C4A0 45020003 */ bc1fl .L7F02C4B0 +/* 060FD4 7F02C4A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 060FD8 7F02C4A8 AFB90034 */ sw $t9, 0x34($sp) +.L7F02C4AC: +/* 060FDC 7F02C4AC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02C4B0: +/* 060FE0 7F02C4B0 8FA20034 */ lw $v0, 0x34($sp) +/* 060FE4 7F02C4B4 27BD0030 */ addiu $sp, $sp, 0x30 +/* 060FE8 7F02C4B8 03E00008 */ jr $ra +/* 060FEC 7F02C4BC 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80051EA0 +.word 0x3d80adfd /*0.062831856*/ +glabel D_80051EA4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051EA8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051EAC +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F02C2B0 +/* 060DE0 7F02C2B0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 060DE4 7F02C2B4 AFA7003C */ sw $a3, 0x3c($sp) +/* 060DE8 7F02C2B8 24010002 */ li $at, 2 +/* 060DEC 7F02C2BC 00803825 */ move $a3, $a0 +/* 060DF0 7F02C2C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 060DF4 7F02C2C4 AFA40030 */ sw $a0, 0x30($sp) +/* 060DF8 7F02C2C8 AFA50034 */ sw $a1, 0x34($sp) +/* 060DFC 7F02C2CC 10A10077 */ beq $a1, $at, .L7F02C4AC +/* 060E00 7F02C2D0 AFA60038 */ sw $a2, 0x38($sp) +/* 060E04 7F02C2D4 8C84001C */ lw $a0, 0x1c($a0) +/* 060E08 7F02C2D8 AFA70030 */ sw $a3, 0x30($sp) +/* 060E0C 7F02C2DC 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060E10 7F02C2E0 AFA4002C */ sw $a0, 0x2c($sp) +/* 060E14 7F02C2E4 E7A00028 */ swc1 $f0, 0x28($sp) +/* 060E18 7F02C2E8 0FC1B320 */ jal getsubroty +/* 060E1C 7F02C2EC 8FA4002C */ lw $a0, 0x2c($sp) +/* 060E20 7F02C2F0 3C018005 */ lui $at, %hi(D_80051EA0) +/* 060E24 7F02C2F4 C4241EA0 */ lwc1 $f4, %lo(D_80051EA0)($at) +/* 060E28 7F02C2F8 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 060E2C 7F02C2FC 3C018005 */ lui $at, %hi(jp_global_timer_delta) +/* 060E30 7F02C300 C42A8378 */ lwc1 $f10, %lo(jp_global_timer_delta)($at) +/* 060E34 7F02C304 46062202 */ mul.s $f8, $f4, $f6 +/* 060E38 7F02C308 8FAF002C */ lw $t7, 0x2c($sp) +/* 060E3C 7F02C30C 8FA70030 */ lw $a3, 0x30($sp) +/* 060E40 7F02C310 24010008 */ li $at, 8 +/* 060E44 7F02C314 C5E400A4 */ lwc1 $f4, 0xa4($t7) +/* 060E48 7F02C318 80E20007 */ lb $v0, 7($a3) +/* 060E4C 7F02C31C 46000306 */ mov.s $f12, $f0 +/* 060E50 7F02C320 460A4482 */ mul.s $f18, $f8, $f10 +/* 060E54 7F02C324 00E02025 */ move $a0, $a3 +/* 060E58 7F02C328 46049382 */ mul.s $f14, $f18, $f4 +/* 060E5C 7F02C32C 5441000A */ bnel $v0, $at, .L7F02C358 +/* 060E60 7F02C330 24010001 */ li $at, 1 +/* 060E64 7F02C334 8CE5004C */ lw $a1, 0x4c($a3) +/* 060E68 7F02C338 8CE60050 */ lw $a2, 0x50($a3) +/* 060E6C 7F02C33C E7AE0018 */ swc1 $f14, 0x18($sp) +/* 060E70 7F02C340 0FC0942F */ jal sub_GAME_7F0250BC +/* 060E74 7F02C344 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 060E78 7F02C348 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 060E7C 7F02C34C 10000015 */ b .L7F02C3A4 +/* 060E80 7F02C350 C7AE0018 */ lwc1 $f14, 0x18($sp) +/* 060E84 7F02C354 24010001 */ li $at, 1 +.L7F02C358: +/* 060E88 7F02C358 14410009 */ bne $v0, $at, .L7F02C380 +/* 060E8C 7F02C35C 00E02025 */ move $a0, $a3 +/* 060E90 7F02C360 8CE50030 */ lw $a1, 0x30($a3) +/* 060E94 7F02C364 8CE60034 */ lw $a2, 0x34($a3) +/* 060E98 7F02C368 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 060E9C 7F02C36C 0FC0942F */ jal sub_GAME_7F0250BC +/* 060EA0 7F02C370 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 060EA4 7F02C374 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 060EA8 7F02C378 1000000A */ b .L7F02C3A4 +/* 060EAC 7F02C37C C7AE0018 */ lwc1 $f14, 0x18($sp) +.L7F02C380: +/* 060EB0 7F02C380 AFA70030 */ sw $a3, 0x30($sp) +/* 060EB4 7F02C384 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 060EB8 7F02C388 0FC225E6 */ jal get_curplayer_positiondata +/* 060EBC 7F02C38C E7AE0018 */ swc1 $f14, 0x18($sp) +/* 060EC0 7F02C390 8FA40030 */ lw $a0, 0x30($sp) +/* 060EC4 7F02C394 0FC0CAF6 */ jal get_distance_actor_to_position +/* 060EC8 7F02C398 24450008 */ addiu $a1, $v0, 8 +/* 060ECC 7F02C39C C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 060ED0 7F02C3A0 C7AE0018 */ lwc1 $f14, 0x18($sp) +.L7F02C3A4: +/* 060ED4 7F02C3A4 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 060ED8 7F02C3A8 44808000 */ mtc1 $zero, $f16 +/* 060EDC 7F02C3AC 3C018005 */ lui $at, %hi(D_80051EA4) +/* 060EE0 7F02C3B0 46060081 */ sub.s $f2, $f0, $f6 +/* 060EE4 7F02C3B4 4610103C */ c.lt.s $f2, $f16 +/* 060EE8 7F02C3B8 00000000 */ nop +/* 060EEC 7F02C3BC 45020004 */ bc1fl .L7F02C3D0 +/* 060EF0 7F02C3C0 460E103C */ c.lt.s $f2, $f14 +/* 060EF4 7F02C3C4 C4201EA4 */ lwc1 $f0, %lo(D_80051EA4)($at) +/* 060EF8 7F02C3C8 46001080 */ add.s $f2, $f2, $f0 +/* 060EFC 7F02C3CC 460E103C */ c.lt.s $f2, $f14 +.L7F02C3D0: +/* 060F00 7F02C3D0 3C018005 */ lui $at, %hi(D_80051EA8) +/* 060F04 7F02C3D4 C4201EA8 */ lwc1 $f0, %lo(D_80051EA8)($at) +/* 060F08 7F02C3D8 45030008 */ bc1tl .L7F02C3FC +/* 060F0C 7F02C3DC 46026300 */ add.s $f12, $f12, $f2 +/* 060F10 7F02C3E0 460E0201 */ sub.s $f8, $f0, $f14 +/* 060F14 7F02C3E4 3C018005 */ lui $at, %hi(D_80051EAC) +/* 060F18 7F02C3E8 4602403C */ c.lt.s $f8, $f2 +/* 060F1C 7F02C3EC 00000000 */ nop +/* 060F20 7F02C3F0 4500000D */ bc1f .L7F02C428 +/* 060F24 7F02C3F4 00000000 */ nop +/* 060F28 7F02C3F8 46026300 */ add.s $f12, $f12, $f2 +.L7F02C3FC: +/* 060F2C 7F02C3FC 460C003E */ c.le.s $f0, $f12 +/* 060F30 7F02C400 00000000 */ nop +/* 060F34 7F02C404 45020003 */ bc1fl .L7F02C414 +/* 060F38 7F02C408 44056000 */ mfc1 $a1, $f12 +/* 060F3C 7F02C40C 46006301 */ sub.s $f12, $f12, $f0 +/* 060F40 7F02C410 44056000 */ mfc1 $a1, $f12 +.L7F02C414: +/* 060F44 7F02C414 0FC1B34F */ jal setsubroty +/* 060F48 7F02C418 8FA4002C */ lw $a0, 0x2c($sp) +/* 060F4C 7F02C41C 24180003 */ li $t8, 3 +/* 060F50 7F02C420 1000001A */ b .L7F02C48C +/* 060F54 7F02C424 AFB80034 */ sw $t8, 0x34($sp) +.L7F02C428: +/* 060F58 7F02C428 C42A1EAC */ lwc1 $f10, %lo(D_80051EAC)($at) +/* 060F5C 7F02C42C 460A103C */ c.lt.s $f2, $f10 +/* 060F60 7F02C430 00000000 */ nop +/* 060F64 7F02C434 4502000D */ bc1fl .L7F02C46C +/* 060F68 7F02C438 460E6301 */ sub.s $f12, $f12, $f14 +/* 060F6C 7F02C43C 460E6300 */ add.s $f12, $f12, $f14 +/* 060F70 7F02C440 460C003E */ c.le.s $f0, $f12 +/* 060F74 7F02C444 00000000 */ nop +/* 060F78 7F02C448 45020003 */ bc1fl .L7F02C458 +/* 060F7C 7F02C44C 44056000 */ mfc1 $a1, $f12 +/* 060F80 7F02C450 46006301 */ sub.s $f12, $f12, $f0 +/* 060F84 7F02C454 44056000 */ mfc1 $a1, $f12 +.L7F02C458: +/* 060F88 7F02C458 0FC1B34F */ jal setsubroty +/* 060F8C 7F02C45C 8FA4002C */ lw $a0, 0x2c($sp) +/* 060F90 7F02C460 1000000B */ b .L7F02C490 +/* 060F94 7F02C464 C7B20028 */ lwc1 $f18, 0x28($sp) +/* 060F98 7F02C468 460E6301 */ sub.s $f12, $f12, $f14 +.L7F02C46C: +/* 060F9C 7F02C46C 4610603C */ c.lt.s $f12, $f16 +/* 060FA0 7F02C470 00000000 */ nop +/* 060FA4 7F02C474 45020003 */ bc1fl .L7F02C484 +/* 060FA8 7F02C478 44056000 */ mfc1 $a1, $f12 +/* 060FAC 7F02C47C 46006300 */ add.s $f12, $f12, $f0 +/* 060FB0 7F02C480 44056000 */ mfc1 $a1, $f12 +.L7F02C484: +/* 060FB4 7F02C484 0FC1B34F */ jal setsubroty +/* 060FB8 7F02C488 8FA4002C */ lw $a0, 0x2c($sp) +.L7F02C48C: +/* 060FBC 7F02C48C C7B20028 */ lwc1 $f18, 0x28($sp) +.L7F02C490: +/* 060FC0 7F02C490 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 060FC4 7F02C494 24190002 */ li $t9, 2 +/* 060FC8 7F02C498 4612203E */ c.le.s $f4, $f18 +/* 060FCC 7F02C49C 00000000 */ nop +/* 060FD0 7F02C4A0 45020003 */ bc1fl .L7F02C4B0 +/* 060FD4 7F02C4A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 060FD8 7F02C4A8 AFB90034 */ sw $t9, 0x34($sp) +.L7F02C4AC: +/* 060FDC 7F02C4AC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02C4B0: +/* 060FE0 7F02C4B0 8FA20034 */ lw $v0, 0x34($sp) +/* 060FE4 7F02C4B4 27BD0030 */ addiu $sp, $sp, 0x30 +/* 060FE8 7F02C4B8 03E00008 */ jr $ra +/* 060FEC 7F02C4BC 00000000 */ nop +) +#endif +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F02C4C0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051EB0 +.word 0x481c4000 /*160000.0*/ +glabel D_80051EB4 +.word 0x3dcccccd /*0.1*/ +glabel D_80051EB8 +.word 0x3f0ccccd /*0.55000001*/ +glabel D_80051EBC +.word 0x3dcccccd /*0.1*/ +glabel D_80051EC0 +.word 0x3e19999a /*0.15000001*/ +glabel D_80051EC4 +.word 0x3dcccccd /*0.1*/ +glabel D_80051EC8 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_80051ECC +.word 0x3ccccccd /*0.025*/ +glabel D_80051ED0 +.word 0x49742400 /*1000000.0*/ +glabel D_80051ED4 +.word 0x3dcccccd /*0.1*/ +glabel D_80051ED8 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_80051EDC +.word 0x3f0ccccd /*0.55000001*/ +glabel D_80051EE0 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_80051EE4 +.word 0x3dcccccd /*0.1*/ +glabel D_80051EE8 +.word 0x3f0ccccd /*0.55000001*/ +glabel D_80051EEC +.word 0x3dcccccd /*0.1*/ +glabel D_80051EF0 +.word 0x3e19999a /*0.15000001*/ +glabel D_80051EF4 +.word 0x3dcccccd /*0.1*/ +glabel D_80051EF8 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_80051EFC +.word 0x40490fdb /*3.1415927*/ +glabel D_80051F00 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F04 +.word 0x49742400 /*1000000.0*/ +glabel D_80051F08 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F0C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F10 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F14 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F18 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F1C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F20 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F24 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F28 +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F02C4C0 +/* 060FF0 7F02C4C0 27BDFE98 */ addiu $sp, $sp, -0x168 +/* 060FF4 7F02C4C4 44808000 */ mtc1 $zero, $f16 +/* 060FF8 7F02C4C8 240E0001 */ li $t6, 1 +/* 060FFC 7F02C4CC AFBF001C */ sw $ra, 0x1c($sp) +/* 061000 7F02C4D0 AFA5016C */ sw $a1, 0x16c($sp) +/* 061004 7F02C4D4 AFA60170 */ sw $a2, 0x170($sp) +/* 061008 7F02C4D8 AFA70174 */ sw $a3, 0x174($sp) +/* 06100C 7F02C4DC AFAE0154 */ sw $t6, 0x154($sp) +/* 061010 7F02C4E0 E7B00164 */ swc1 $f16, 0x164($sp) +/* 061014 7F02C4E4 80820007 */ lb $v0, 7($a0) +/* 061018 7F02C4E8 24010008 */ li $at, 8 +/* 06101C 7F02C4EC 24080001 */ li $t0, 1 +/* 061020 7F02C4F0 14410004 */ bne $v0, $at, .L7F02C504 +/* 061024 7F02C4F4 00001825 */ move $v1, $zero +/* 061028 7F02C4F8 8C88004C */ lw $t0, 0x4c($a0) +/* 06102C 7F02C4FC 10000006 */ b .L7F02C518 +/* 061030 7F02C500 8C830050 */ lw $v1, 0x50($a0) +.L7F02C504: +/* 061034 7F02C504 24010001 */ li $at, 1 +/* 061038 7F02C508 54410004 */ bnel $v0, $at, .L7F02C51C +/* 06103C 7F02C50C 310F0002 */ andi $t7, $t0, 2 +/* 061040 7F02C510 8C880030 */ lw $t0, 0x30($a0) +/* 061044 7F02C514 8C830034 */ lw $v1, 0x34($a0) +.L7F02C518: +/* 061048 7F02C518 310F0002 */ andi $t7, $t0, 2 +.L7F02C51C: +/* 06104C 7F02C51C 15E002B8 */ bnez $t7, .L7F02D000 +/* 061050 7F02C520 AFA40168 */ sw $a0, 0x168($sp) +/* 061054 7F02C524 AFA30158 */ sw $v1, 0x158($sp) +/* 061058 7F02C528 AFA40168 */ sw $a0, 0x168($sp) +/* 06105C 7F02C52C AFA8015C */ sw $t0, 0x15c($sp) +/* 061060 7F02C530 0FC225E6 */ jal get_curplayer_positiondata +/* 061064 7F02C534 E7B00160 */ swc1 $f16, 0x160($sp) +/* 061068 7F02C538 8FA60168 */ lw $a2, 0x168($sp) +/* 06106C 7F02C53C 24590008 */ addiu $t9, $v0, 8 +/* 061070 7F02C540 8FAA015C */ lw $t2, 0x15c($sp) +/* 061074 7F02C544 8CD80018 */ lw $t8, 0x18($a2) +/* 061078 7F02C548 AFB90134 */ sw $t9, 0x134($sp) +/* 06107C 7F02C54C 314B0001 */ andi $t3, $t2, 1 +/* 061080 7F02C550 AFB8013C */ sw $t8, 0x13c($sp) +/* 061084 7F02C554 C4440008 */ lwc1 $f4, 8($v0) +/* 061088 7F02C558 C7060008 */ lwc1 $f6, 8($t8) +/* 06108C 7F02C55C C7B00160 */ lwc1 $f16, 0x160($sp) +/* 061090 7F02C560 240E0001 */ li $t6, 1 +/* 061094 7F02C564 46062201 */ sub.s $f8, $f4, $f6 +/* 061098 7F02C568 314C0040 */ andi $t4, $t2, 0x40 +/* 06109C 7F02C56C E7A80150 */ swc1 $f8, 0x150($sp) +/* 0610A0 7F02C570 C44A000C */ lwc1 $f10, 0xc($v0) +/* 0610A4 7F02C574 C712000C */ lwc1 $f18, 0xc($t8) +/* 0610A8 7F02C578 46125101 */ sub.s $f4, $f10, $f18 +/* 0610AC 7F02C57C C7B20150 */ lwc1 $f18, 0x150($sp) +/* 0610B0 7F02C580 E7A4014C */ swc1 $f4, 0x14c($sp) +/* 0610B4 7F02C584 C4460010 */ lwc1 $f6, 0x10($v0) +/* 0610B8 7F02C588 C7080010 */ lwc1 $f8, 0x10($t8) +/* 0610BC 7F02C58C 46129102 */ mul.s $f4, $f18, $f18 +/* 0610C0 7F02C590 AFAB0028 */ sw $t3, 0x28($sp) +/* 0610C4 7F02C594 46083281 */ sub.s $f10, $f6, $f8 +/* 0610C8 7F02C598 C7A6014C */ lwc1 $f6, 0x14c($sp) +/* 0610CC 7F02C59C 46063202 */ mul.s $f8, $f6, $f6 +/* 0610D0 7F02C5A0 E7AA0148 */ swc1 $f10, 0x148($sp) +/* 0610D4 7F02C5A4 C7B20148 */ lwc1 $f18, 0x148($sp) +/* 0610D8 7F02C5A8 46129182 */ mul.s $f6, $f18, $f18 +/* 0610DC 7F02C5AC 46082280 */ add.s $f10, $f4, $f8 +/* 0610E0 7F02C5B0 46065080 */ add.s $f2, $f10, $f6 +/* 0610E4 7F02C5B4 1160000E */ beqz $t3, .L7F02C5F0 +/* 0610E8 7F02C5B8 E7A20144 */ swc1 $f2, 0x144($sp) +/* 0610EC 7F02C5BC 11800004 */ beqz $t4, .L7F02C5D0 +/* 0610F0 7F02C5C0 00C02025 */ move $a0, $a2 +/* 0610F4 7F02C5C4 240D0001 */ li $t5, 1 +/* 0610F8 7F02C5C8 1000000A */ b .L7F02C5F4 +/* 0610FC 7F02C5CC AFAD0138 */ sw $t5, 0x138($sp) +.L7F02C5D0: +/* 061100 7F02C5D0 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 061104 7F02C5D4 0FC0A52F */ jal sub_GAME_7F0294BC +/* 061108 7F02C5D8 E7B00160 */ swc1 $f16, 0x160($sp) +/* 06110C 7F02C5DC C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 061110 7F02C5E0 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 061114 7F02C5E4 AFA20138 */ sw $v0, 0x138($sp) +/* 061118 7F02C5E8 10000002 */ b .L7F02C5F4 +/* 06111C 7F02C5EC 8FA60168 */ lw $a2, 0x168($sp) +.L7F02C5F0: +/* 061120 7F02C5F0 AFAE0138 */ sw $t6, 0x138($sp) +.L7F02C5F4: +/* 061124 7F02C5F4 8FAF0028 */ lw $t7, 0x28($sp) +/* 061128 7F02C5F8 3C048008 */ lui $a0, %hi(pPlayer) +/* 06112C 7F02C5FC 27A50120 */ addiu $a1, $sp, 0x120 +/* 061130 7F02C600 51E00137 */ beql $t7, $zero, .L7F02CAE0 +/* 061134 7F02C604 8CC4001C */ lw $a0, 0x1c($a2) +/* 061138 7F02C608 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 06113C 7F02C60C E7A2002C */ swc1 $f2, 0x2c($sp) +/* 061140 7F02C610 0FC225E0 */ jal sub_GAME_7F089780 +/* 061144 7F02C614 E7B00160 */ swc1 $f16, 0x160($sp) +/* 061148 7F02C618 8FB80168 */ lw $t8, 0x168($sp) +/* 06114C 7F02C61C E7A00130 */ swc1 $f0, 0x130($sp) +/* 061150 7F02C620 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 061154 7F02C624 8F190014 */ lw $t9, 0x14($t8) +/* 061158 7F02C628 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 06115C 7F02C62C 3C018005 */ lui $at, %hi(D_80051EB0) +/* 061160 7F02C630 33290020 */ andi $t1, $t9, 0x20 +/* 061164 7F02C634 11200085 */ beqz $t1, .L7F02C84C +/* 061168 7F02C638 00000000 */ nop +/* 06116C 7F02C63C 3C018005 */ lui $at, %hi(D_80051EB0) +/* 061170 7F02C640 C4241EB0 */ lwc1 $f4, %lo(D_80051EB0)($at) +/* 061174 7F02C644 8FAA0134 */ lw $t2, 0x134($sp) +/* 061178 7F02C648 4604103C */ c.lt.s $f2, $f4 +/* 06117C 7F02C64C 00000000 */ nop +/* 061180 7F02C650 45000063 */ bc1f .L7F02C7E0 +/* 061184 7F02C654 00000000 */ nop +/* 061188 7F02C658 46000200 */ add.s $f8, $f0, $f0 +/* 06118C 7F02C65C C54C0004 */ lwc1 $f12, 4($t2) +/* 061190 7F02C660 8FAB013C */ lw $t3, 0x13c($sp) +/* 061194 7F02C664 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 061198 7F02C668 46086481 */ sub.s $f18, $f12, $f8 +/* 06119C 7F02C66C C562000C */ lwc1 $f2, 0xc($t3) +/* 0611A0 7F02C670 4612103C */ c.lt.s $f2, $f18 +/* 0611A4 7F02C674 00000000 */ nop +/* 0611A8 7F02C678 4502001D */ bc1fl .L7F02C6F0 +/* 0611AC 7F02C67C 44812000 */ mtc1 $at, $f4 +/* 0611B0 7F02C680 0C002914 */ jal get_random_value +/* 0611B4 7F02C684 E7B00160 */ swc1 $f16, 0x160($sp) +/* 0611B8 7F02C688 44825000 */ mtc1 $v0, $f10 +/* 0611BC 7F02C68C C7B00160 */ lwc1 $f16, 0x160($sp) +/* 0611C0 7F02C690 04410005 */ bgez $v0, .L7F02C6A8 +/* 0611C4 7F02C694 468051A0 */ cvt.s.w $f6, $f10 +/* 0611C8 7F02C698 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0611CC 7F02C69C 44812000 */ mtc1 $at, $f4 +/* 0611D0 7F02C6A0 00000000 */ nop +/* 0611D4 7F02C6A4 46043180 */ add.s $f6, $f6, $f4 +.L7F02C6A8: +/* 0611D8 7F02C6A8 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0611DC 7F02C6AC 44814000 */ mtc1 $at, $f8 +/* 0611E0 7F02C6B0 3C018005 */ lui $at, %hi(D_80051EB4) +/* 0611E4 7F02C6B4 C42A1EB4 */ lwc1 $f10, %lo(D_80051EB4)($at) +/* 0611E8 7F02C6B8 46083482 */ mul.s $f18, $f6, $f8 +/* 0611EC 7F02C6BC C7A60178 */ lwc1 $f6, 0x178($sp) +/* 0611F0 7F02C6C0 3C018005 */ lui $at, %hi(D_80051EB8) +/* 0611F4 7F02C6C4 46125102 */ mul.s $f4, $f10, $f18 +/* 0611F8 7F02C6C8 C42A1EB8 */ lwc1 $f10, %lo(D_80051EB8)($at) +/* 0611FC 7F02C6CC 46062202 */ mul.s $f8, $f4, $f6 +/* 061200 7F02C6D0 C7A40130 */ lwc1 $f4, 0x130($sp) +/* 061204 7F02C6D4 46085480 */ add.s $f18, $f10, $f8 +/* 061208 7F02C6D8 C7AA014C */ lwc1 $f10, 0x14c($sp) +/* 06120C 7F02C6DC 46122182 */ mul.s $f6, $f4, $f18 +/* 061210 7F02C6E0 46065201 */ sub.s $f8, $f10, $f6 +/* 061214 7F02C6E4 10000113 */ b .L7F02CB34 +/* 061218 7F02C6E8 E7A8014C */ swc1 $f8, 0x14c($sp) +/* 06121C 7F02C6EC 44812000 */ mtc1 $at, $f4 +.L7F02C6F0: +/* 061220 7F02C6F0 00000000 */ nop +/* 061224 7F02C6F4 46040482 */ mul.s $f18, $f0, $f4 +/* 061228 7F02C6F8 46126281 */ sub.s $f10, $f12, $f18 +/* 06122C 7F02C6FC 4602503C */ c.lt.s $f10, $f2 +/* 061230 7F02C700 00000000 */ nop +/* 061234 7F02C704 4500001C */ bc1f .L7F02C778 +/* 061238 7F02C708 00000000 */ nop +/* 06123C 7F02C70C 0C002914 */ jal get_random_value +/* 061240 7F02C710 E7B00160 */ swc1 $f16, 0x160($sp) +/* 061244 7F02C714 44823000 */ mtc1 $v0, $f6 +/* 061248 7F02C718 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 06124C 7F02C71C 04410005 */ bgez $v0, .L7F02C734 +/* 061250 7F02C720 46803220 */ cvt.s.w $f8, $f6 +/* 061254 7F02C724 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 061258 7F02C728 44812000 */ mtc1 $at, $f4 +/* 06125C 7F02C72C 00000000 */ nop +/* 061260 7F02C730 46044200 */ add.s $f8, $f8, $f4 +.L7F02C734: +/* 061264 7F02C734 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 061268 7F02C738 44819000 */ mtc1 $at, $f18 +/* 06126C 7F02C73C 3C018005 */ lui $at, %hi(D_80051EBC) +/* 061270 7F02C740 C4261EBC */ lwc1 $f6, %lo(D_80051EBC)($at) +/* 061274 7F02C744 46124282 */ mul.s $f10, $f8, $f18 +/* 061278 7F02C748 C7A80178 */ lwc1 $f8, 0x178($sp) +/* 06127C 7F02C74C 3C018005 */ lui $at, %hi(D_80051EC0) +/* 061280 7F02C750 460A3102 */ mul.s $f4, $f6, $f10 +/* 061284 7F02C754 C4261EC0 */ lwc1 $f6, %lo(D_80051EC0)($at) +/* 061288 7F02C758 46082482 */ mul.s $f18, $f4, $f8 +/* 06128C 7F02C75C C7A40130 */ lwc1 $f4, 0x130($sp) +/* 061290 7F02C760 46123280 */ add.s $f10, $f6, $f18 +/* 061294 7F02C764 C7A6014C */ lwc1 $f6, 0x14c($sp) +/* 061298 7F02C768 460A2202 */ mul.s $f8, $f4, $f10 +/* 06129C 7F02C76C 46083481 */ sub.s $f18, $f6, $f8 +/* 0612A0 7F02C770 100000F0 */ b .L7F02CB34 +/* 0612A4 7F02C774 E7B2014C */ swc1 $f18, 0x14c($sp) +.L7F02C778: +/* 0612A8 7F02C778 0C002914 */ jal get_random_value +/* 0612AC 7F02C77C E7B00160 */ swc1 $f16, 0x160($sp) +/* 0612B0 7F02C780 44822000 */ mtc1 $v0, $f4 +/* 0612B4 7F02C784 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 0612B8 7F02C788 04410005 */ bgez $v0, .L7F02C7A0 +/* 0612BC 7F02C78C 468022A0 */ cvt.s.w $f10, $f4 +/* 0612C0 7F02C790 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0612C4 7F02C794 44813000 */ mtc1 $at, $f6 +/* 0612C8 7F02C798 00000000 */ nop +/* 0612CC 7F02C79C 46065280 */ add.s $f10, $f10, $f6 +.L7F02C7A0: +/* 0612D0 7F02C7A0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0612D4 7F02C7A4 44814000 */ mtc1 $at, $f8 +/* 0612D8 7F02C7A8 3C018005 */ lui $at, %hi(D_80051EC4) +/* 0612DC 7F02C7AC C4241EC4 */ lwc1 $f4, %lo(D_80051EC4)($at) +/* 0612E0 7F02C7B0 46085482 */ mul.s $f18, $f10, $f8 +/* 0612E4 7F02C7B4 C7AA0178 */ lwc1 $f10, 0x178($sp) +/* 0612E8 7F02C7B8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0612EC 7F02C7BC 46049182 */ mul.s $f6, $f18, $f4 +/* 0612F0 7F02C7C0 44819000 */ mtc1 $at, $f18 +/* 0612F4 7F02C7C4 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0612F8 7F02C7C8 460A3202 */ mul.s $f8, $f6, $f10 +/* 0612FC 7F02C7CC 44813000 */ mtc1 $at, $f6 +/* 061300 7F02C7D0 46124100 */ add.s $f4, $f8, $f18 +/* 061304 7F02C7D4 46062282 */ mul.s $f10, $f4, $f6 +/* 061308 7F02C7D8 100000D6 */ b .L7F02CB34 +/* 06130C 7F02C7DC E7AA014C */ swc1 $f10, 0x14c($sp) +.L7F02C7E0: +/* 061310 7F02C7E0 0C002914 */ jal get_random_value +/* 061314 7F02C7E4 E7B00160 */ swc1 $f16, 0x160($sp) +/* 061318 7F02C7E8 44824000 */ mtc1 $v0, $f8 +/* 06131C 7F02C7EC C7B00160 */ lwc1 $f16, 0x160($sp) +/* 061320 7F02C7F0 04410005 */ bgez $v0, .L7F02C808 +/* 061324 7F02C7F4 468044A0 */ cvt.s.w $f18, $f8 +/* 061328 7F02C7F8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06132C 7F02C7FC 44812000 */ mtc1 $at, $f4 +/* 061330 7F02C800 00000000 */ nop +/* 061334 7F02C804 46049480 */ add.s $f18, $f18, $f4 +.L7F02C808: +/* 061338 7F02C808 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 06133C 7F02C80C 44813000 */ mtc1 $at, $f6 +/* 061340 7F02C810 3C018005 */ lui $at, %hi(D_80051EC8) +/* 061344 7F02C814 C4281EC8 */ lwc1 $f8, %lo(D_80051EC8)($at) +/* 061348 7F02C818 46069282 */ mul.s $f10, $f18, $f6 +/* 06134C 7F02C81C C7B20178 */ lwc1 $f18, 0x178($sp) +/* 061350 7F02C820 3C018005 */ lui $at, %hi(D_80051ED0) +/* 061354 7F02C824 460A4102 */ mul.s $f4, $f8, $f10 +/* 061358 7F02C828 C4281ECC */ lwc1 $f8, %lo(D_80051ECC)($at) +/* 06135C 7F02C82C 46122182 */ mul.s $f6, $f4, $f18 +/* 061360 7F02C830 C7A40130 */ lwc1 $f4, 0x130($sp) +/* 061364 7F02C834 46064281 */ sub.s $f10, $f8, $f6 +/* 061368 7F02C838 C7A8014C */ lwc1 $f8, 0x14c($sp) +/* 06136C 7F02C83C 460A2482 */ mul.s $f18, $f4, $f10 +/* 061370 7F02C840 46124180 */ add.s $f6, $f8, $f18 +/* 061374 7F02C844 100000BB */ b .L7F02CB34 +/* 061378 7F02C848 E7A6014C */ swc1 $f6, 0x14c($sp) +.L7F02C84C: +/* 06137C 7F02C84C C4241ED0 */ lwc1 $f4, %lo(D_80051ED0)($at) +/* 061380 7F02C850 8FAE0134 */ lw $t6, 0x134($sp) +/* 061384 7F02C854 4602203C */ c.lt.s $f4, $f2 +/* 061388 7F02C858 00000000 */ nop +/* 06138C 7F02C85C 45020040 */ bc1fl .L7F02C960 +/* 061390 7F02C860 C5CC0004 */ lwc1 $f12, 4($t6) +/* 061394 7F02C864 0C002914 */ jal get_random_value +/* 061398 7F02C868 E7B00160 */ swc1 $f16, 0x160($sp) +/* 06139C 7F02C86C 24010003 */ li $at, 3 +/* 0613A0 7F02C870 0041001B */ divu $zero, $v0, $at +/* 0613A4 7F02C874 00006010 */ mfhi $t4 +/* 0613A8 7F02C878 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 0613AC 7F02C87C 1580001C */ bnez $t4, .L7F02C8F0 +/* 0613B0 7F02C880 00000000 */ nop +/* 0613B4 7F02C884 0C002914 */ jal get_random_value +/* 0613B8 7F02C888 E7B00160 */ swc1 $f16, 0x160($sp) +/* 0613BC 7F02C88C 44825000 */ mtc1 $v0, $f10 +/* 0613C0 7F02C890 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 0613C4 7F02C894 04410005 */ bgez $v0, .L7F02C8AC +/* 0613C8 7F02C898 46805220 */ cvt.s.w $f8, $f10 +/* 0613CC 7F02C89C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0613D0 7F02C8A0 44819000 */ mtc1 $at, $f18 +/* 0613D4 7F02C8A4 00000000 */ nop +/* 0613D8 7F02C8A8 46124200 */ add.s $f8, $f8, $f18 +.L7F02C8AC: +/* 0613DC 7F02C8AC 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0613E0 7F02C8B0 44813000 */ mtc1 $at, $f6 +/* 0613E4 7F02C8B4 3C018005 */ lui $at, %hi(D_80051ED4) +/* 0613E8 7F02C8B8 C42A1ED4 */ lwc1 $f10, %lo(D_80051ED4)($at) +/* 0613EC 7F02C8BC 46064102 */ mul.s $f4, $f8, $f6 +/* 0613F0 7F02C8C0 C7A80178 */ lwc1 $f8, 0x178($sp) +/* 0613F4 7F02C8C4 3C018005 */ lui $at, %hi(D_80051ED8) +/* 0613F8 7F02C8C8 46045482 */ mul.s $f18, $f10, $f4 +/* 0613FC 7F02C8CC C42A1ED8 */ lwc1 $f10, %lo(D_80051ED8)($at) +/* 061400 7F02C8D0 46089182 */ mul.s $f6, $f18, $f8 +/* 061404 7F02C8D4 C7B20130 */ lwc1 $f18, 0x130($sp) +/* 061408 7F02C8D8 46065100 */ add.s $f4, $f10, $f6 +/* 06140C 7F02C8DC C7AA014C */ lwc1 $f10, 0x14c($sp) +/* 061410 7F02C8E0 46049202 */ mul.s $f8, $f18, $f4 +/* 061414 7F02C8E4 46085180 */ add.s $f6, $f10, $f8 +/* 061418 7F02C8E8 10000092 */ b .L7F02CB34 +/* 06141C 7F02C8EC E7A6014C */ swc1 $f6, 0x14c($sp) +.L7F02C8F0: +/* 061420 7F02C8F0 0C002914 */ jal get_random_value +/* 061424 7F02C8F4 E7B00160 */ swc1 $f16, 0x160($sp) +/* 061428 7F02C8F8 44829000 */ mtc1 $v0, $f18 +/* 06142C 7F02C8FC C7B00160 */ lwc1 $f16, 0x160($sp) +/* 061430 7F02C900 04410005 */ bgez $v0, .L7F02C918 +/* 061434 7F02C904 46809120 */ cvt.s.w $f4, $f18 +/* 061438 7F02C908 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06143C 7F02C90C 44815000 */ mtc1 $at, $f10 +/* 061440 7F02C910 00000000 */ nop +/* 061444 7F02C914 460A2100 */ add.s $f4, $f4, $f10 +.L7F02C918: +/* 061448 7F02C918 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 06144C 7F02C91C 44814000 */ mtc1 $at, $f8 +/* 061450 7F02C920 3C018005 */ lui $at, %hi(D_80051EDC) +/* 061454 7F02C924 C4321EDC */ lwc1 $f18, %lo(D_80051EDC)($at) +/* 061458 7F02C928 46082182 */ mul.s $f6, $f4, $f8 +/* 06145C 7F02C92C C7A40178 */ lwc1 $f4, 0x178($sp) +/* 061460 7F02C930 3C018005 */ lui $at, %hi(D_80051EE0) +/* 061464 7F02C934 46069282 */ mul.s $f10, $f18, $f6 +/* 061468 7F02C938 C4321EE0 */ lwc1 $f18, %lo(D_80051EE0)($at) +/* 06146C 7F02C93C 46045202 */ mul.s $f8, $f10, $f4 +/* 061470 7F02C940 C7AA0130 */ lwc1 $f10, 0x130($sp) +/* 061474 7F02C944 46089180 */ add.s $f6, $f18, $f8 +/* 061478 7F02C948 C7B2014C */ lwc1 $f18, 0x14c($sp) +/* 06147C 7F02C94C 46065102 */ mul.s $f4, $f10, $f6 +/* 061480 7F02C950 46049201 */ sub.s $f8, $f18, $f4 +/* 061484 7F02C954 10000077 */ b .L7F02CB34 +/* 061488 7F02C958 E7A8014C */ swc1 $f8, 0x14c($sp) +/* 06148C 7F02C95C C5CC0004 */ lwc1 $f12, 4($t6) +.L7F02C960: +/* 061490 7F02C960 8FAD013C */ lw $t5, 0x13c($sp) +/* 061494 7F02C964 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 061498 7F02C968 46006281 */ sub.s $f10, $f12, $f0 +/* 06149C 7F02C96C C5A2000C */ lwc1 $f2, 0xc($t5) +/* 0614A0 7F02C970 460A103C */ c.lt.s $f2, $f10 +/* 0614A4 7F02C974 00000000 */ nop +/* 0614A8 7F02C978 4502001D */ bc1fl .L7F02C9F0 +/* 0614AC 7F02C97C 44812000 */ mtc1 $at, $f4 +/* 0614B0 7F02C980 0C002914 */ jal get_random_value +/* 0614B4 7F02C984 E7B00160 */ swc1 $f16, 0x160($sp) +/* 0614B8 7F02C988 44823000 */ mtc1 $v0, $f6 +/* 0614BC 7F02C98C C7B00160 */ lwc1 $f16, 0x160($sp) +/* 0614C0 7F02C990 04410005 */ bgez $v0, .L7F02C9A8 +/* 0614C4 7F02C994 468034A0 */ cvt.s.w $f18, $f6 +/* 0614C8 7F02C998 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0614CC 7F02C99C 44812000 */ mtc1 $at, $f4 +/* 0614D0 7F02C9A0 00000000 */ nop +/* 0614D4 7F02C9A4 46049480 */ add.s $f18, $f18, $f4 +.L7F02C9A8: +/* 0614D8 7F02C9A8 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0614DC 7F02C9AC 44814000 */ mtc1 $at, $f8 +/* 0614E0 7F02C9B0 3C018005 */ lui $at, %hi(D_80051EE4) +/* 0614E4 7F02C9B4 C4261EE4 */ lwc1 $f6, %lo(D_80051EE4)($at) +/* 0614E8 7F02C9B8 46089282 */ mul.s $f10, $f18, $f8 +/* 0614EC 7F02C9BC C7B20178 */ lwc1 $f18, 0x178($sp) +/* 0614F0 7F02C9C0 3C018005 */ lui $at, %hi(D_80051EE8) +/* 0614F4 7F02C9C4 460A3102 */ mul.s $f4, $f6, $f10 +/* 0614F8 7F02C9C8 C4261EE8 */ lwc1 $f6, %lo(D_80051EE8)($at) +/* 0614FC 7F02C9CC 46122202 */ mul.s $f8, $f4, $f18 +/* 061500 7F02C9D0 C7A40130 */ lwc1 $f4, 0x130($sp) +/* 061504 7F02C9D4 46083280 */ add.s $f10, $f6, $f8 +/* 061508 7F02C9D8 C7A6014C */ lwc1 $f6, 0x14c($sp) +/* 06150C 7F02C9DC 460A2482 */ mul.s $f18, $f4, $f10 +/* 061510 7F02C9E0 46123201 */ sub.s $f8, $f6, $f18 +/* 061514 7F02C9E4 10000053 */ b .L7F02CB34 +/* 061518 7F02C9E8 E7A8014C */ swc1 $f8, 0x14c($sp) +/* 06151C 7F02C9EC 44812000 */ mtc1 $at, $f4 +.L7F02C9F0: +/* 061520 7F02C9F0 00000000 */ nop +/* 061524 7F02C9F4 46040282 */ mul.s $f10, $f0, $f4 +/* 061528 7F02C9F8 460A6181 */ sub.s $f6, $f12, $f10 +/* 06152C 7F02C9FC 4602303C */ c.lt.s $f6, $f2 +/* 061530 7F02CA00 00000000 */ nop +/* 061534 7F02CA04 4500001C */ bc1f .L7F02CA78 +/* 061538 7F02CA08 00000000 */ nop +/* 06153C 7F02CA0C 0C002914 */ jal get_random_value +/* 061540 7F02CA10 E7B00160 */ swc1 $f16, 0x160($sp) +/* 061544 7F02CA14 44829000 */ mtc1 $v0, $f18 +/* 061548 7F02CA18 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 06154C 7F02CA1C 04410005 */ bgez $v0, .L7F02CA34 +/* 061550 7F02CA20 46809220 */ cvt.s.w $f8, $f18 +/* 061554 7F02CA24 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 061558 7F02CA28 44812000 */ mtc1 $at, $f4 +/* 06155C 7F02CA2C 00000000 */ nop +/* 061560 7F02CA30 46044200 */ add.s $f8, $f8, $f4 +.L7F02CA34: +/* 061564 7F02CA34 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 061568 7F02CA38 44815000 */ mtc1 $at, $f10 +/* 06156C 7F02CA3C 3C018005 */ lui $at, %hi(D_80051EEC) +/* 061570 7F02CA40 C4321EEC */ lwc1 $f18, %lo(D_80051EEC)($at) +/* 061574 7F02CA44 460A4182 */ mul.s $f6, $f8, $f10 +/* 061578 7F02CA48 C7A80178 */ lwc1 $f8, 0x178($sp) +/* 06157C 7F02CA4C 3C018005 */ lui $at, %hi(D_80051EF0) +/* 061580 7F02CA50 46069102 */ mul.s $f4, $f18, $f6 +/* 061584 7F02CA54 C4321EF0 */ lwc1 $f18, %lo(D_80051EF0)($at) +/* 061588 7F02CA58 46082282 */ mul.s $f10, $f4, $f8 +/* 06158C 7F02CA5C C7A40130 */ lwc1 $f4, 0x130($sp) +/* 061590 7F02CA60 460A9180 */ add.s $f6, $f18, $f10 +/* 061594 7F02CA64 C7B2014C */ lwc1 $f18, 0x14c($sp) +/* 061598 7F02CA68 46062202 */ mul.s $f8, $f4, $f6 +/* 06159C 7F02CA6C 46089281 */ sub.s $f10, $f18, $f8 +/* 0615A0 7F02CA70 10000030 */ b .L7F02CB34 +/* 0615A4 7F02CA74 E7AA014C */ swc1 $f10, 0x14c($sp) +.L7F02CA78: +/* 0615A8 7F02CA78 0C002914 */ jal get_random_value +/* 0615AC 7F02CA7C E7B00160 */ swc1 $f16, 0x160($sp) +/* 0615B0 7F02CA80 44822000 */ mtc1 $v0, $f4 +/* 0615B4 7F02CA84 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 0615B8 7F02CA88 04410005 */ bgez $v0, .L7F02CAA0 +/* 0615BC 7F02CA8C 468021A0 */ cvt.s.w $f6, $f4 +/* 0615C0 7F02CA90 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0615C4 7F02CA94 44819000 */ mtc1 $at, $f18 +/* 0615C8 7F02CA98 00000000 */ nop +/* 0615CC 7F02CA9C 46123180 */ add.s $f6, $f6, $f18 +.L7F02CAA0: +/* 0615D0 7F02CAA0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0615D4 7F02CAA4 44814000 */ mtc1 $at, $f8 +/* 0615D8 7F02CAA8 3C018005 */ lui $at, %hi(D_80051EF4) +/* 0615DC 7F02CAAC C4241EF4 */ lwc1 $f4, %lo(D_80051EF4)($at) +/* 0615E0 7F02CAB0 46083282 */ mul.s $f10, $f6, $f8 +/* 0615E4 7F02CAB4 C7A60178 */ lwc1 $f6, 0x178($sp) +/* 0615E8 7F02CAB8 3C018005 */ lui $at, %hi(D_80051EF8) +/* 0615EC 7F02CABC 46045482 */ mul.s $f18, $f10, $f4 +/* 0615F0 7F02CAC0 C42A1EF8 */ lwc1 $f10, %lo(D_80051EF8)($at) +/* 0615F4 7F02CAC4 46069202 */ mul.s $f8, $f18, $f6 +/* 0615F8 7F02CAC8 C7B20130 */ lwc1 $f18, 0x130($sp) +/* 0615FC 7F02CACC 460A4101 */ sub.s $f4, $f8, $f10 +/* 061600 7F02CAD0 46122182 */ mul.s $f6, $f4, $f18 +/* 061604 7F02CAD4 10000017 */ b .L7F02CB34 +/* 061608 7F02CAD8 E7A6014C */ swc1 $f6, 0x14c($sp) +/* 06160C 7F02CADC 8CC4001C */ lw $a0, 0x1c($a2) +.L7F02CAE0: +/* 061610 7F02CAE0 0FC1B2E6 */ jal getsuboffset +/* 061614 7F02CAE4 E7B00160 */ swc1 $f16, 0x160($sp) +/* 061618 7F02CAE8 8FA40168 */ lw $a0, 0x168($sp) +/* 06161C 7F02CAEC 8FA5015C */ lw $a1, 0x15c($sp) +/* 061620 7F02CAF0 8FA60158 */ lw $a2, 0x158($sp) +/* 061624 7F02CAF4 0FC0CB1E */ jal sub_GAME_7F032C78 +/* 061628 7F02CAF8 27A7012C */ addiu $a3, $sp, 0x12c +/* 06162C 7F02CAFC AFA20134 */ sw $v0, 0x134($sp) +/* 061630 7F02CB00 C4480000 */ lwc1 $f8, ($v0) +/* 061634 7F02CB04 C7AA0120 */ lwc1 $f10, 0x120($sp) +/* 061638 7F02CB08 C7A60124 */ lwc1 $f6, 0x124($sp) +/* 06163C 7F02CB0C C7B00160 */ lwc1 $f16, 0x160($sp) +/* 061640 7F02CB10 460A4101 */ sub.s $f4, $f8, $f10 +/* 061644 7F02CB14 E7A40150 */ swc1 $f4, 0x150($sp) +/* 061648 7F02CB18 C4520004 */ lwc1 $f18, 4($v0) +/* 06164C 7F02CB1C C7A40128 */ lwc1 $f4, 0x128($sp) +/* 061650 7F02CB20 46069201 */ sub.s $f8, $f18, $f6 +/* 061654 7F02CB24 E7A8014C */ swc1 $f8, 0x14c($sp) +/* 061658 7F02CB28 C44A0008 */ lwc1 $f10, 8($v0) +/* 06165C 7F02CB2C 46045481 */ sub.s $f18, $f10, $f4 +/* 061660 7F02CB30 E7B20148 */ swc1 $f18, 0x148($sp) +.L7F02CB34: +/* 061664 7F02CB34 8FAF015C */ lw $t7, 0x15c($sp) +/* 061668 7F02CB38 C7A60150 */ lwc1 $f6, 0x150($sp) +/* 06166C 7F02CB3C C7AA0148 */ lwc1 $f10, 0x148($sp) +/* 061670 7F02CB40 31F80100 */ andi $t8, $t7, 0x100 +/* 061674 7F02CB44 57000015 */ bnezl $t8, .L7F02CB9C +/* 061678 7F02CB48 8FB90138 */ lw $t9, 0x138($sp) +/* 06167C 7F02CB4C 46063202 */ mul.s $f8, $f6, $f6 +/* 061680 7F02CB50 E7B00160 */ swc1 $f16, 0x160($sp) +/* 061684 7F02CB54 460A5102 */ mul.s $f4, $f10, $f10 +/* 061688 7F02CB58 0C007DF8 */ jal sqrtf +/* 06168C 7F02CB5C 46044300 */ add.s $f12, $f8, $f4 +/* 061690 7F02CB60 C7AC014C */ lwc1 $f12, 0x14c($sp) +/* 061694 7F02CB64 0FC16A8C */ jal atan2f +/* 061698 7F02CB68 46000386 */ mov.s $f14, $f0 +/* 06169C 7F02CB6C 3C018005 */ lui $at, %hi(D_80051EFC) +/* 0616A0 7F02CB70 C4321EFC */ lwc1 $f18, %lo(D_80051EFC)($at) +/* 0616A4 7F02CB74 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 0616A8 7F02CB78 E7A00164 */ swc1 $f0, 0x164($sp) +/* 0616AC 7F02CB7C 4600903E */ c.le.s $f18, $f0 +/* 0616B0 7F02CB80 3C018005 */ lui $at, %hi(D_80051F00) +/* 0616B4 7F02CB84 45020005 */ bc1fl .L7F02CB9C +/* 0616B8 7F02CB88 8FB90138 */ lw $t9, 0x138($sp) +/* 0616BC 7F02CB8C C4261F00 */ lwc1 $f6, %lo(D_80051F00)($at) +/* 0616C0 7F02CB90 46060281 */ sub.s $f10, $f0, $f6 +/* 0616C4 7F02CB94 E7AA0164 */ swc1 $f10, 0x164($sp) +/* 0616C8 7F02CB98 8FB90138 */ lw $t9, 0x138($sp) +.L7F02CB9C: +/* 0616CC 7F02CB9C 53200119 */ beql $t9, $zero, .L7F02D004 +/* 0616D0 7F02CBA0 C7A60164 */ lwc1 $f6, 0x164($sp) +/* 0616D4 7F02CBA4 0FC0B064 */ jal sub_GAME_7F02C190 +/* 0616D8 7F02CBA8 8FA40168 */ lw $a0, 0x168($sp) +/* 0616DC 7F02CBAC 8FA90174 */ lw $t1, 0x174($sp) +/* 0616E0 7F02CBB0 E7A00118 */ swc1 $f0, 0x118($sp) +/* 0616E4 7F02CBB4 00002825 */ move $a1, $zero +/* 0616E8 7F02CBB8 11200005 */ beqz $t1, .L7F02CBD0 +/* 0616EC 7F02CBBC 8FA40168 */ lw $a0, 0x168($sp) +/* 0616F0 7F02CBC0 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0616F4 7F02CBC4 8FA40168 */ lw $a0, 0x168($sp) +/* 0616F8 7F02CBC8 10000003 */ b .L7F02CBD8 +/* 0616FC 7F02CBCC 00000000 */ nop +.L7F02CBD0: +/* 061700 7F02CBD0 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 061704 7F02CBD4 24050001 */ li $a1, 1 +.L7F02CBD8: +/* 061708 7F02CBD8 50400075 */ beql $v0, $zero, .L7F02CDB0 +/* 06170C 7F02CBDC C7AC0150 */ lwc1 $f12, 0x150($sp) +/* 061710 7F02CBE0 904B0001 */ lbu $t3, 1($v0) +/* 061714 7F02CBE4 C7A80144 */ lwc1 $f8, 0x144($sp) +/* 061718 7F02CBE8 3C018005 */ lui $at, %hi(D_80051F04) +/* 06171C 7F02CBEC 316A0002 */ andi $t2, $t3, 2 +/* 061720 7F02CBF0 5140006F */ beql $t2, $zero, .L7F02CDB0 +/* 061724 7F02CBF4 C7AC0150 */ lwc1 $f12, 0x150($sp) +/* 061728 7F02CBF8 C4241F04 */ lwc1 $f4, %lo(D_80051F04)($at) +/* 06172C 7F02CBFC 4604403C */ c.lt.s $f8, $f4 +/* 061730 7F02CC00 00000000 */ nop +/* 061734 7F02CC04 4502006A */ bc1fl .L7F02CDB0 +/* 061738 7F02CC08 C7AC0150 */ lwc1 $f12, 0x150($sp) +/* 06173C 7F02CC0C 8C430004 */ lw $v1, 4($v0) +/* 061740 7F02CC10 00002025 */ move $a0, $zero +/* 061744 7F02CC14 00003025 */ move $a2, $zero +/* 061748 7F02CC18 8C670014 */ lw $a3, 0x14($v1) +/* 06174C 7F02CC1C 8CEC0008 */ lw $t4, 8($a3) +/* 061750 7F02CC20 8D850008 */ lw $a1, 8($t4) +/* 061754 7F02CC24 8CAD0000 */ lw $t5, ($a1) +/* 061758 7F02CC28 11A00025 */ beqz $t5, .L7F02CCC0 +/* 06175C 7F02CC2C AFAD0024 */ sw $t5, 0x24($sp) +/* 061760 7F02CC30 00E02025 */ move $a0, $a3 +/* 061764 7F02CC34 01A02825 */ move $a1, $t5 +/* 061768 7F02CC38 0FC1B198 */ jal sub_GAME_7F06C660 +/* 06176C 7F02CC3C AFA70110 */ sw $a3, 0x110($sp) +/* 061770 7F02CC40 8FA70110 */ lw $a3, 0x110($sp) +/* 061774 7F02CC44 00402025 */ move $a0, $v0 +/* 061778 7F02CC48 27A500BC */ addiu $a1, $sp, 0xbc +/* 06177C 7F02CC4C 8CEF0008 */ lw $t7, 8($a3) +/* 061780 7F02CC50 8DF80008 */ lw $t8, 8($t7) +/* 061784 7F02CC54 8F190000 */ lw $t9, ($t8) +/* 061788 7F02CC58 8F290004 */ lw $t1, 4($t9) +/* 06178C 7F02CC5C 0FC1639E */ jal sub_GAME_7F058E78 +/* 061790 7F02CC60 AFA900B8 */ sw $t1, 0xb8($sp) +/* 061794 7F02CC64 0FC1E115 */ jal sub_GAME_7F078454 +/* 061798 7F02CC68 00000000 */ nop +/* 06179C 7F02CC6C 00402025 */ move $a0, $v0 +/* 0617A0 7F02CC70 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0617A4 7F02CC74 27A500BC */ addiu $a1, $sp, 0xbc +/* 0617A8 7F02CC78 8FA200B8 */ lw $v0, 0xb8($sp) +/* 0617AC 7F02CC7C 27A400BC */ addiu $a0, $sp, 0xbc +/* 0617B0 7F02CC80 27A500AC */ addiu $a1, $sp, 0xac +/* 0617B4 7F02CC84 C4520000 */ lwc1 $f18, ($v0) +/* 0617B8 7F02CC88 E7B200AC */ swc1 $f18, 0xac($sp) +/* 0617BC 7F02CC8C C4460004 */ lwc1 $f6, 4($v0) +/* 0617C0 7F02CC90 E7A600B0 */ swc1 $f6, 0xb0($sp) +/* 0617C4 7F02CC94 C44A0008 */ lwc1 $f10, 8($v0) +/* 0617C8 7F02CC98 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 0617CC 7F02CC9C E7AA00B4 */ swc1 $f10, 0xb4($sp) +/* 0617D0 7F02CCA0 C7A800AC */ lwc1 $f8, 0xac($sp) +/* 0617D4 7F02CCA4 C7A400B0 */ lwc1 $f4, 0xb0($sp) +/* 0617D8 7F02CCA8 C7B200B4 */ lwc1 $f18, 0xb4($sp) +/* 0617DC 7F02CCAC 24040001 */ li $a0, 1 +/* 0617E0 7F02CCB0 E7A80104 */ swc1 $f8, 0x104($sp) +/* 0617E4 7F02CCB4 E7A40108 */ swc1 $f4, 0x108($sp) +/* 0617E8 7F02CCB8 10000017 */ b .L7F02CD18 +/* 0617EC 7F02CCBC E7B2010C */ swc1 $f18, 0x10c($sp) +.L7F02CCC0: +/* 0617F0 7F02CCC0 8CAB0004 */ lw $t3, 4($a1) +/* 0617F4 7F02CCC4 00003025 */ move $a2, $zero +/* 0617F8 7F02CCC8 11600013 */ beqz $t3, .L7F02CD18 +/* 0617FC 7F02CCCC AFAB0024 */ sw $t3, 0x24($sp) +/* 061800 7F02CCD0 00E02025 */ move $a0, $a3 +/* 061804 7F02CCD4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 061808 7F02CCD8 01602825 */ move $a1, $t3 +/* 06180C 7F02CCDC 00402025 */ move $a0, $v0 +/* 061810 7F02CCE0 0FC1639E */ jal sub_GAME_7F058E78 +/* 061814 7F02CCE4 27A50068 */ addiu $a1, $sp, 0x68 +/* 061818 7F02CCE8 0FC1E115 */ jal sub_GAME_7F078454 +/* 06181C 7F02CCEC 00000000 */ nop +/* 061820 7F02CCF0 00402025 */ move $a0, $v0 +/* 061824 7F02CCF4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 061828 7F02CCF8 27A50068 */ addiu $a1, $sp, 0x68 +/* 06182C 7F02CCFC C7A60098 */ lwc1 $f6, 0x98($sp) +/* 061830 7F02CD00 C7AA009C */ lwc1 $f10, 0x9c($sp) +/* 061834 7F02CD04 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 061838 7F02CD08 24040001 */ li $a0, 1 +/* 06183C 7F02CD0C E7A60104 */ swc1 $f6, 0x104($sp) +/* 061840 7F02CD10 E7AA0108 */ swc1 $f10, 0x108($sp) +/* 061844 7F02CD14 E7A8010C */ swc1 $f8, 0x10c($sp) +.L7F02CD18: +/* 061848 7F02CD18 50800025 */ beql $a0, $zero, .L7F02CDB0 +/* 06184C 7F02CD1C C7AC0150 */ lwc1 $f12, 0x150($sp) +/* 061850 7F02CD20 0FC15FAB */ jal sinf +/* 061854 7F02CD24 C7AC0118 */ lwc1 $f12, 0x118($sp) +/* 061858 7F02CD28 44802000 */ mtc1 $zero, $f4 +/* 06185C 7F02CD2C E7A00050 */ swc1 $f0, 0x50($sp) +/* 061860 7F02CD30 C7AC0118 */ lwc1 $f12, 0x118($sp) +/* 061864 7F02CD34 0FC15FA8 */ jal cosf +/* 061868 7F02CD38 E7A40054 */ swc1 $f4, 0x54($sp) +/* 06186C 7F02CD3C 8FAC013C */ lw $t4, 0x13c($sp) +/* 061870 7F02CD40 E7A00058 */ swc1 $f0, 0x58($sp) +/* 061874 7F02CD44 C7A60148 */ lwc1 $f6, 0x148($sp) +/* 061878 7F02CD48 C5920008 */ lwc1 $f18, 8($t4) +/* 06187C 7F02CD4C 27AD005C */ addiu $t5, $sp, 0x5c +/* 061880 7F02CD50 27A50044 */ addiu $a1, $sp, 0x44 +/* 061884 7F02CD54 46069281 */ sub.s $f10, $f18, $f6 +/* 061888 7F02CD58 C7B20150 */ lwc1 $f18, 0x150($sp) +/* 06188C 7F02CD5C 27A60104 */ addiu $a2, $sp, 0x104 +/* 061890 7F02CD60 27A70050 */ addiu $a3, $sp, 0x50 +/* 061894 7F02CD64 E7AA0044 */ swc1 $f10, 0x44($sp) +/* 061898 7F02CD68 C588000C */ lwc1 $f8, 0xc($t4) +/* 06189C 7F02CD6C 25840008 */ addiu $a0, $t4, 8 +/* 0618A0 7F02CD70 E7A80048 */ swc1 $f8, 0x48($sp) +/* 0618A4 7F02CD74 C5840010 */ lwc1 $f4, 0x10($t4) +/* 0618A8 7F02CD78 AFAD0010 */ sw $t5, 0x10($sp) +/* 0618AC 7F02CD7C 46122180 */ add.s $f6, $f4, $f18 +/* 0618B0 7F02CD80 0FC0984C */ jal sub_GAME_7F026130 +/* 0618B4 7F02CD84 E7A6004C */ swc1 $f6, 0x4c($sp) +/* 0618B8 7F02CD88 8FAE0134 */ lw $t6, 0x134($sp) +/* 0618BC 7F02CD8C C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 0618C0 7F02CD90 C7A60064 */ lwc1 $f6, 0x64($sp) +/* 0618C4 7F02CD94 C5CA0000 */ lwc1 $f10, ($t6) +/* 0618C8 7F02CD98 46085101 */ sub.s $f4, $f10, $f8 +/* 0618CC 7F02CD9C E7A40150 */ swc1 $f4, 0x150($sp) +/* 0618D0 7F02CDA0 C5D20008 */ lwc1 $f18, 8($t6) +/* 0618D4 7F02CDA4 46069281 */ sub.s $f10, $f18, $f6 +/* 0618D8 7F02CDA8 E7AA0148 */ swc1 $f10, 0x148($sp) +/* 0618DC 7F02CDAC C7AC0150 */ lwc1 $f12, 0x150($sp) +.L7F02CDB0: +/* 0618E0 7F02CDB0 0FC16A8C */ jal atan2f +/* 0618E4 7F02CDB4 C7AE0148 */ lwc1 $f14, 0x148($sp) +/* 0618E8 7F02CDB8 C7A80118 */ lwc1 $f8, 0x118($sp) +/* 0618EC 7F02CDBC 3C018005 */ lui $at, %hi(D_80051F08) +/* 0618F0 7F02CDC0 8FAF0168 */ lw $t7, 0x168($sp) +/* 0618F4 7F02CDC4 4608003C */ c.lt.s $f0, $f8 +/* 0618F8 7F02CDC8 46080081 */ sub.s $f2, $f0, $f8 +/* 0618FC 7F02CDCC 45000003 */ bc1f .L7F02CDDC +/* 061900 7F02CDD0 46001406 */ mov.s $f16, $f2 +/* 061904 7F02CDD4 C4241F08 */ lwc1 $f4, %lo(D_80051F08)($at) +/* 061908 7F02CDD8 46041400 */ add.s $f16, $f2, $f4 +.L7F02CDDC: +/* 06190C 7F02CDDC 8DE4001C */ lw $a0, 0x1c($t7) +/* 061910 7F02CDE0 8C980008 */ lw $t8, 8($a0) +/* 061914 7F02CDE4 8F050000 */ lw $a1, ($t8) +/* 061918 7F02CDE8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 06191C 7F02CDEC E7B00160 */ swc1 $f16, 0x160($sp) +/* 061920 7F02CDF0 44801000 */ mtc1 $zero, $f2 +/* 061924 7F02CDF4 C440005C */ lwc1 $f0, 0x5c($v0) +/* 061928 7F02CDF8 8FA9015C */ lw $t1, 0x15c($sp) +/* 06192C 7F02CDFC C7B00160 */ lwc1 $f16, 0x160($sp) +/* 061930 7F02CE00 4600103C */ c.lt.s $f2, $f0 +/* 061934 7F02CE04 8FB90028 */ lw $t9, 0x28($sp) +/* 061938 7F02CE08 312B0060 */ andi $t3, $t1, 0x60 +/* 06193C 7F02CE0C 45000012 */ bc1f .L7F02CE58 +/* 061940 7F02CE10 00000000 */ nop +/* 061944 7F02CE14 C4520058 */ lwc1 $f18, 0x58($v0) +/* 061948 7F02CE18 3C018005 */ lui $at, %hi(D_80051F0C) +/* 06194C 7F02CE1C 46120182 */ mul.s $f6, $f0, $f18 +/* 061950 7F02CE20 46068401 */ sub.s $f16, $f16, $f6 +/* 061954 7F02CE24 4602803C */ c.lt.s $f16, $f2 +/* 061958 7F02CE28 00000000 */ nop +/* 06195C 7F02CE2C 45000003 */ bc1f .L7F02CE3C +/* 061960 7F02CE30 00000000 */ nop +/* 061964 7F02CE34 C4201F0C */ lwc1 $f0, %lo(D_80051F0C)($at) +/* 061968 7F02CE38 46008400 */ add.s $f16, $f16, $f0 +.L7F02CE3C: +/* 06196C 7F02CE3C 3C018005 */ lui $at, %hi(D_80051F10) +/* 061970 7F02CE40 C4201F10 */ lwc1 $f0, %lo(D_80051F10)($at) +/* 061974 7F02CE44 4610003E */ c.le.s $f0, $f16 +/* 061978 7F02CE48 00000000 */ nop +/* 06197C 7F02CE4C 45000002 */ bc1f .L7F02CE58 +/* 061980 7F02CE50 00000000 */ nop +/* 061984 7F02CE54 46008401 */ sub.s $f16, $f16, $f0 +.L7F02CE58: +/* 061988 7F02CE58 3C018005 */ lui $at, %hi(D_80051F14) +/* 06198C 7F02CE5C 13200035 */ beqz $t9, .L7F02CF34 +/* 061990 7F02CE60 C4201F14 */ lwc1 $f0, %lo(D_80051F14)($at) +/* 061994 7F02CE64 15600033 */ bnez $t3, .L7F02CF34 +/* 061998 7F02CE68 3C0A8005 */ lui $t2, %hi(global_timer) +/* 06199C 7F02CE6C 8D4A837C */ lw $t2, %lo(global_timer)($t2) +/* 0619A0 7F02CE70 8FAC0168 */ lw $t4, 0x168($sp) +/* 0619A4 7F02CE74 2401003C */ li $at, 60 +/* 0619A8 7F02CE78 448A5000 */ mtc1 $t2, $f10 +/* 0619AC 7F02CE7C 8D8D001C */ lw $t5, 0x1c($t4) +/* 0619B0 7F02CE80 85980000 */ lh $t8, ($t4) +/* 0619B4 7F02CE84 46805220 */ cvt.s.w $f8, $f10 +/* 0619B8 7F02CE88 C5A400A4 */ lwc1 $f4, 0xa4($t5) +/* 0619BC 7F02CE8C E7B00160 */ swc1 $f16, 0x160($sp) +/* 0619C0 7F02CE90 46044482 */ mul.s $f18, $f8, $f4 +/* 0619C4 7F02CE94 4600918D */ trunc.w.s $f6, $f18 +/* 0619C8 7F02CE98 440F3000 */ mfc1 $t7, $f6 +/* 0619CC 7F02CE9C 00000000 */ nop +/* 0619D0 7F02CEA0 01F8C821 */ addu $t9, $t7, $t8 +/* 0619D4 7F02CEA4 0321001A */ div $zero, $t9, $at +/* 0619D8 7F02CEA8 00004810 */ mfhi $t1 +/* 0619DC 7F02CEAC 44895000 */ mtc1 $t1, $f10 +/* 0619E0 7F02CEB0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0619E4 7F02CEB4 44819000 */ mtc1 $at, $f18 +/* 0619E8 7F02CEB8 46805220 */ cvt.s.w $f8, $f10 +/* 0619EC 7F02CEBC 46004102 */ mul.s $f4, $f8, $f0 +/* 0619F0 7F02CEC0 0FC15FAB */ jal sinf +/* 0619F4 7F02CEC4 46122303 */ div.s $f12, $f4, $f18 +/* 0619F8 7F02CEC8 E7A00030 */ swc1 $f0, 0x30($sp) +/* 0619FC 7F02CECC 0FC0B491 */ jal sub_GAME_7F02D244 +/* 061A00 7F02CED0 C7AC0144 */ lwc1 $f12, 0x144($sp) +/* 061A04 7F02CED4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 061A08 7F02CED8 44813000 */ mtc1 $at, $f6 +/* 061A0C 7F02CEDC C7A80030 */ lwc1 $f8, 0x30($sp) +/* 061A10 7F02CEE0 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 061A14 7F02CEE4 46060282 */ mul.s $f10, $f0, $f6 +/* 061A18 7F02CEE8 44809000 */ mtc1 $zero, $f18 +/* 061A1C 7F02CEEC 3C018005 */ lui $at, %hi(D_80051F18) +/* 061A20 7F02CEF0 46085102 */ mul.s $f4, $f10, $f8 +/* 061A24 7F02CEF4 46048400 */ add.s $f16, $f16, $f4 +/* 061A28 7F02CEF8 4612803C */ c.lt.s $f16, $f18 +/* 061A2C 7F02CEFC 00000000 */ nop +/* 061A30 7F02CF00 45000003 */ bc1f .L7F02CF10 +/* 061A34 7F02CF04 00000000 */ nop +/* 061A38 7F02CF08 C4261F18 */ lwc1 $f6, %lo(D_80051F18)($at) +/* 061A3C 7F02CF0C 46068400 */ add.s $f16, $f16, $f6 +.L7F02CF10: +/* 061A40 7F02CF10 3C018005 */ lui $at, %hi(D_80051F1C) +/* 061A44 7F02CF14 C42A1F1C */ lwc1 $f10, %lo(D_80051F1C)($at) +/* 061A48 7F02CF18 3C018005 */ lui $at, %hi(D_80051F20) +/* 061A4C 7F02CF1C 4610503E */ c.le.s $f10, $f16 +/* 061A50 7F02CF20 00000000 */ nop +/* 061A54 7F02CF24 45000003 */ bc1f .L7F02CF34 +/* 061A58 7F02CF28 00000000 */ nop +/* 061A5C 7F02CF2C C4281F20 */ lwc1 $f8, %lo(D_80051F20)($at) +/* 061A60 7F02CF30 46088401 */ sub.s $f16, $f16, $f8 +.L7F02CF34: +/* 061A64 7F02CF34 3C018005 */ lui $at, %hi(D_80051F24) +/* 061A68 7F02CF38 C4201F24 */ lwc1 $f0, %lo(D_80051F24)($at) +/* 061A6C 7F02CF3C 3C018005 */ lui $at, %hi(D_80051F28) +/* 061A70 7F02CF40 C4241F28 */ lwc1 $f4, %lo(D_80051F28)($at) +/* 061A74 7F02CF44 8FAB0168 */ lw $t3, 0x168($sp) +/* 061A78 7F02CF48 8FA2016C */ lw $v0, 0x16c($sp) +/* 061A7C 7F02CF4C 4610203E */ c.le.s $f4, $f16 +/* 061A80 7F02CF50 00000000 */ nop +/* 061A84 7F02CF54 45020003 */ bc1fl .L7F02CF64 +/* 061A88 7F02CF58 8D6A001C */ lw $t2, 0x1c($t3) +/* 061A8C 7F02CF5C 46008401 */ sub.s $f16, $f16, $f0 +/* 061A90 7F02CF60 8D6A001C */ lw $t2, 0x1c($t3) +.L7F02CF64: +/* 061A94 7F02CF64 C572014C */ lwc1 $f18, 0x14c($t3) +/* 061A98 7F02CF68 814D0024 */ lb $t5, 0x24($t2) +/* 061A9C 7F02CF6C 46128400 */ add.s $f16, $f16, $f18 +/* 061AA0 7F02CF70 51A00015 */ beql $t5, $zero, .L7F02CFC8 +/* 061AA4 7F02CF74 C4400038 */ lwc1 $f0, 0x38($v0) +/* 061AA8 7F02CF78 8FA2016C */ lw $v0, 0x16c($sp) +/* 061AAC 7F02CF7C C4400038 */ lwc1 $f0, 0x38($v0) +/* 061AB0 7F02CF80 46000007 */ neg.s $f0, $f0 +/* 061AB4 7F02CF84 4600803C */ c.lt.s $f16, $f0 +/* 061AB8 7F02CF88 00000000 */ nop +/* 061ABC 7F02CF8C 45020005 */ bc1fl .L7F02CFA4 +/* 061AC0 7F02CF90 C440003C */ lwc1 $f0, 0x3c($v0) +/* 061AC4 7F02CF94 46000406 */ mov.s $f16, $f0 +/* 061AC8 7F02CF98 10000019 */ b .L7F02D000 +/* 061ACC 7F02CF9C AFA00154 */ sw $zero, 0x154($sp) +/* 061AD0 7F02CFA0 C440003C */ lwc1 $f0, 0x3c($v0) +.L7F02CFA4: +/* 061AD4 7F02CFA4 46000007 */ neg.s $f0, $f0 +/* 061AD8 7F02CFA8 4610003C */ c.lt.s $f0, $f16 +/* 061ADC 7F02CFAC 00000000 */ nop +/* 061AE0 7F02CFB0 45020014 */ bc1fl .L7F02D004 +/* 061AE4 7F02CFB4 C7A60164 */ lwc1 $f6, 0x164($sp) +/* 061AE8 7F02CFB8 46000406 */ mov.s $f16, $f0 +/* 061AEC 7F02CFBC 10000010 */ b .L7F02D000 +/* 061AF0 7F02CFC0 AFA00154 */ sw $zero, 0x154($sp) +/* 061AF4 7F02CFC4 C4400038 */ lwc1 $f0, 0x38($v0) +.L7F02CFC8: +/* 061AF8 7F02CFC8 4610003C */ c.lt.s $f0, $f16 +/* 061AFC 7F02CFCC 00000000 */ nop +/* 061B00 7F02CFD0 45020005 */ bc1fl .L7F02CFE8 +/* 061B04 7F02CFD4 C440003C */ lwc1 $f0, 0x3c($v0) +/* 061B08 7F02CFD8 46000406 */ mov.s $f16, $f0 +/* 061B0C 7F02CFDC 10000008 */ b .L7F02D000 +/* 061B10 7F02CFE0 AFA00154 */ sw $zero, 0x154($sp) +/* 061B14 7F02CFE4 C440003C */ lwc1 $f0, 0x3c($v0) +.L7F02CFE8: +/* 061B18 7F02CFE8 4600803C */ c.lt.s $f16, $f0 +/* 061B1C 7F02CFEC 00000000 */ nop +/* 061B20 7F02CFF0 45020004 */ bc1fl .L7F02D004 +/* 061B24 7F02CFF4 C7A60164 */ lwc1 $f6, 0x164($sp) +/* 061B28 7F02CFF8 46000406 */ mov.s $f16, $f0 +/* 061B2C 7F02CFFC AFA00154 */ sw $zero, 0x154($sp) +.L7F02D000: +/* 061B30 7F02D000 C7A60164 */ lwc1 $f6, 0x164($sp) +.L7F02D004: +/* 061B34 7F02D004 8FA40168 */ lw $a0, 0x168($sp) +/* 061B38 7F02D008 8FA5016C */ lw $a1, 0x16c($sp) +/* 061B3C 7F02D00C 8FA60170 */ lw $a2, 0x170($sp) +/* 061B40 7F02D010 8FA70174 */ lw $a3, 0x174($sp) +/* 061B44 7F02D014 E7B00160 */ swc1 $f16, 0x160($sp) +/* 061B48 7F02D018 0FC0B412 */ jal sub_GAME_7F02D048 +/* 061B4C 7F02D01C E7A60010 */ swc1 $f6, 0x10($sp) +/* 061B50 7F02D020 8FAE0168 */ lw $t6, 0x168($sp) +/* 061B54 7F02D024 C7B00160 */ lwc1 $f16, 0x160($sp) +/* 061B58 7F02D028 240C000A */ li $t4, 10 +/* 061B5C 7F02D02C A1CC000E */ sb $t4, 0xe($t6) +/* 061B60 7F02D030 E5D0015C */ swc1 $f16, 0x15c($t6) +/* 061B64 7F02D034 8FBF001C */ lw $ra, 0x1c($sp) +/* 061B68 7F02D038 8FA20154 */ lw $v0, 0x154($sp) +/* 061B6C 7F02D03C 27BD0168 */ addiu $sp, $sp, 0x168 +/* 061B70 7F02D040 03E00008 */ jr $ra +/* 061B74 7F02D044 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02D048(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02D048 +/* 061B78 7F02D048 44808000 */ mtc1 $zero, $f16 +/* 061B7C 7F02D04C C7AE0010 */ lwc1 $f14, 0x10($sp) +/* 061B80 7F02D050 46008006 */ mov.s $f0, $f16 +/* 061B84 7F02D054 46008086 */ mov.s $f2, $f16 +/* 061B88 7F02D058 10A0001B */ beqz $a1, .L7F02D0C8 +/* 061B8C 7F02D05C 46007306 */ mov.s $f12, $f14 +/* 061B90 7F02D060 C4A00030 */ lwc1 $f0, 0x30($a1) +/* 061B94 7F02D064 460E003C */ c.lt.s $f0, $f14 +/* 061B98 7F02D068 00000000 */ nop +/* 061B9C 7F02D06C 45020005 */ bc1fl .L7F02D084 +/* 061BA0 7F02D070 C4A00034 */ lwc1 $f0, 0x34($a1) +/* 061BA4 7F02D074 46007081 */ sub.s $f2, $f14, $f0 +/* 061BA8 7F02D078 10000008 */ b .L7F02D09C +/* 061BAC 7F02D07C 46000306 */ mov.s $f12, $f0 +/* 061BB0 7F02D080 C4A00034 */ lwc1 $f0, 0x34($a1) +.L7F02D084: +/* 061BB4 7F02D084 4600703C */ c.lt.s $f14, $f0 +/* 061BB8 7F02D088 00000000 */ nop +/* 061BBC 7F02D08C 45020004 */ bc1fl .L7F02D0A0 +/* 061BC0 7F02D090 460C803C */ c.lt.s $f16, $f12 +/* 061BC4 7F02D094 46007081 */ sub.s $f2, $f14, $f0 +/* 061BC8 7F02D098 46000306 */ mov.s $f12, $f0 +.L7F02D09C: +/* 061BCC 7F02D09C 460C803C */ c.lt.s $f16, $f12 +.L7F02D0A0: +/* 061BD0 7F02D0A0 00000000 */ nop +/* 061BD4 7F02D0A4 45020006 */ bc1fl .L7F02D0C0 +/* 061BD8 7F02D0A8 C4A60044 */ lwc1 $f6, 0x44($a1) +/* 061BDC 7F02D0AC C4A40040 */ lwc1 $f4, 0x40($a1) +/* 061BE0 7F02D0B0 460C2002 */ mul.s $f0, $f4, $f12 +/* 061BE4 7F02D0B4 10000004 */ b .L7F02D0C8 +/* 061BE8 7F02D0B8 00000000 */ nop +/* 061BEC 7F02D0BC C4A60044 */ lwc1 $f6, 0x44($a1) +.L7F02D0C0: +/* 061BF0 7F02D0C0 460C3002 */ mul.s $f0, $f6, $f12 +/* 061BF4 7F02D0C4 00000000 */ nop +.L7F02D0C8: +/* 061BF8 7F02D0C8 50E00008 */ beql $a3, $zero, .L7F02D0EC +/* 061BFC 7F02D0CC E4800154 */ swc1 $f0, 0x154($a0) +/* 061C00 7F02D0D0 10C00003 */ beqz $a2, .L7F02D0E0 +/* 061C04 7F02D0D4 E48C0154 */ swc1 $f12, 0x154($a0) +/* 061C08 7F02D0D8 10000005 */ b .L7F02D0F0 +/* 061C0C 7F02D0DC E48C0150 */ swc1 $f12, 0x150($a0) +.L7F02D0E0: +/* 061C10 7F02D0E0 10000003 */ b .L7F02D0F0 +/* 061C14 7F02D0E4 E4800150 */ swc1 $f0, 0x150($a0) +/* 061C18 7F02D0E8 E4800154 */ swc1 $f0, 0x154($a0) +.L7F02D0EC: +/* 061C1C 7F02D0EC E48C0150 */ swc1 $f12, 0x150($a0) +.L7F02D0F0: +/* 061C20 7F02D0F0 03E00008 */ jr $ra +/* 061C24 7F02D0F4 E4820158 */ swc1 $f2, 0x158($a0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02D0F8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02D0F8 +/* 061C28 7F02D0F8 44800000 */ mtc1 $zero, $f0 +/* 061C2C 7F02D0FC 240E000A */ li $t6, 10 +/* 061C30 7F02D100 A08E000E */ sb $t6, 0xe($a0) +/* 061C34 7F02D104 E4800154 */ swc1 $f0, 0x154($a0) +/* 061C38 7F02D108 E4800150 */ swc1 $f0, 0x150($a0) +/* 061C3C 7F02D10C E4800158 */ swc1 $f0, 0x158($a0) +/* 061C40 7F02D110 03E00008 */ jr $ra +/* 061C44 7F02D114 E480015C */ swc1 $f0, 0x15c($a0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02D118(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02D118 +/* 061C48 7F02D118 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 061C4C 7F02D11C AFBF0014 */ sw $ra, 0x14($sp) +/* 061C50 7F02D120 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 061C54 7F02D124 AFA60020 */ sw $a2, 0x20($sp) +/* 061C58 7F02D128 10400003 */ beqz $v0, .L7F02D138 +/* 061C5C 7F02D12C 00402025 */ move $a0, $v0 +/* 061C60 7F02D130 0FC1495D */ jal sub_GAME_7F052574 +/* 061C64 7F02D134 8FA50020 */ lw $a1, 0x20($sp) +.L7F02D138: +/* 061C68 7F02D138 8FBF0014 */ lw $ra, 0x14($sp) +/* 061C6C 7F02D13C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 061C70 7F02D140 03E00008 */ jr $ra +/* 061C74 7F02D144 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02D148(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02D148 +/* 061C78 7F02D148 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 061C7C 7F02D14C AFBF0014 */ sw $ra, 0x14($sp) +/* 061C80 7F02D150 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 061C84 7F02D154 00000000 */ nop +/* 061C88 7F02D158 10400005 */ beqz $v0, .L7F02D170 +/* 061C8C 7F02D15C 00402025 */ move $a0, $v0 +/* 061C90 7F02D160 0FC14981 */ jal sub_GAME_7F052604 +/* 061C94 7F02D164 00000000 */ nop +/* 061C98 7F02D168 10000003 */ b .L7F02D178 +/* 061C9C 7F02D16C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02D170: +/* 061CA0 7F02D170 00001025 */ move $v0, $zero +/* 061CA4 7F02D174 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02D178: +/* 061CA8 7F02D178 27BD0018 */ addiu $sp, $sp, 0x18 +/* 061CAC 7F02D17C 03E00008 */ jr $ra +/* 061CB0 7F02D180 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02D184(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02D184 +/* 061CB4 7F02D184 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 061CB8 7F02D188 AFBF0014 */ sw $ra, 0x14($sp) +/* 061CBC 7F02D18C AFA40018 */ sw $a0, 0x18($sp) +/* 061CC0 7F02D190 00002825 */ move $a1, $zero +/* 061CC4 7F02D194 0FC0B446 */ jal sub_GAME_7F02D118 +/* 061CC8 7F02D198 00003025 */ move $a2, $zero +/* 061CCC 7F02D19C 8FA40018 */ lw $a0, 0x18($sp) +/* 061CD0 7F02D1A0 24050001 */ li $a1, 1 +/* 061CD4 7F02D1A4 0FC0B446 */ jal sub_GAME_7F02D118 +/* 061CD8 7F02D1A8 00003025 */ move $a2, $zero +/* 061CDC 7F02D1AC 0FC0B43E */ jal sub_GAME_7F02D0F8 +/* 061CE0 7F02D1B0 8FA40018 */ lw $a0, 0x18($sp) +/* 061CE4 7F02D1B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 061CE8 7F02D1B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 061CEC 7F02D1BC 03E00008 */ jr $ra +/* 061CF0 7F02D1C0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02D1C4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02D1C4 +/* 061CF4 7F02D1C4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 061CF8 7F02D1C8 10C0000C */ beqz $a2, .L7F02D1FC +/* 061CFC 7F02D1CC AFBF0014 */ sw $ra, 0x14($sp) +/* 061D00 7F02D1D0 24010001 */ li $at, 1 +/* 061D04 7F02D1D4 54A10006 */ bnel $a1, $at, .L7F02D1F0 +/* 061D08 7F02D1D8 94980012 */ lhu $t8, 0x12($a0) +/* 061D0C 7F02D1DC 948E0012 */ lhu $t6, 0x12($a0) +/* 061D10 7F02D1E0 35CF0004 */ ori $t7, $t6, 4 +/* 061D14 7F02D1E4 1000000F */ b .L7F02D224 +/* 061D18 7F02D1E8 A48F0012 */ sh $t7, 0x12($a0) +/* 061D1C 7F02D1EC 94980012 */ lhu $t8, 0x12($a0) +.L7F02D1F0: +/* 061D20 7F02D1F0 37190008 */ ori $t9, $t8, 8 +/* 061D24 7F02D1F4 1000000B */ b .L7F02D224 +/* 061D28 7F02D1F8 A4990012 */ sh $t9, 0x12($a0) +.L7F02D1FC: +/* 061D2C 7F02D1FC 24010001 */ li $at, 1 +/* 061D30 7F02D200 54A10006 */ bnel $a1, $at, .L7F02D21C +/* 061D34 7F02D204 948A0012 */ lhu $t2, 0x12($a0) +/* 061D38 7F02D208 94880012 */ lhu $t0, 0x12($a0) +/* 061D3C 7F02D20C 3109FFFB */ andi $t1, $t0, 0xfffb +/* 061D40 7F02D210 10000004 */ b .L7F02D224 +/* 061D44 7F02D214 A4890012 */ sh $t1, 0x12($a0) +/* 061D48 7F02D218 948A0012 */ lhu $t2, 0x12($a0) +.L7F02D21C: +/* 061D4C 7F02D21C 314BFFF7 */ andi $t3, $t2, 0xfff7 +/* 061D50 7F02D220 A48B0012 */ sh $t3, 0x12($a0) +.L7F02D224: +/* 061D54 7F02D224 54C00004 */ bnezl $a2, .L7F02D238 +/* 061D58 7F02D228 8FBF0014 */ lw $ra, 0x14($sp) +/* 061D5C 7F02D22C 0FC0B446 */ jal sub_GAME_7F02D118 +/* 061D60 7F02D230 00003025 */ move $a2, $zero +/* 061D64 7F02D234 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02D238: +/* 061D68 7F02D238 27BD0018 */ addiu $sp, $sp, 0x18 +/* 061D6C 7F02D23C 03E00008 */ jr $ra +/* 061D70 7F02D240 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02D244(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051F2C +.word 0x4a1c4000 /*2560000.0*/ +glabel D_80051F30 +.word 0x3c99a5b7 /*0.018755777*/ +glabel D_80051F34 +.word 0x491c4000 /*640000.0*/ +glabel D_80051F38 +.word 0x3d1a1b7b /*0.037623864*/ +glabel D_80051F3C +.word 0x481c4000 /*160000.0*/ +glabel D_80051F40 +.word 0x3d9930a7 /*0.074799828*/ +glabel D_80051F44 +.word 0x471c4000 /*40000.0*/ +glabel D_80051F48 +.word 0x3e1930a7 /*0.14959966*/ +glabel D_80051F4C +.word 0x3e80adfd /*0.25132743*/ +.text +glabel sub_GAME_7F02D244 +/* 061D74 7F02D244 3C018005 */ lui $at, %hi(D_80051F2C) +/* 061D78 7F02D248 C4241F2C */ lwc1 $f4, %lo(D_80051F2C)($at) +/* 061D7C 7F02D24C 3C018005 */ lui $at, %hi(D_80051F34) +/* 061D80 7F02D250 460C203C */ c.lt.s $f4, $f12 +/* 061D84 7F02D254 00000000 */ nop +/* 061D88 7F02D258 45000004 */ bc1f .L7F02D26C +/* 061D8C 7F02D25C 00000000 */ nop +/* 061D90 7F02D260 3C018005 */ lui $at, %hi(D_80051F30) +/* 061D94 7F02D264 03E00008 */ jr $ra +/* 061D98 7F02D268 C4201F30 */ lwc1 $f0, %lo(D_80051F30)($at) + +.L7F02D26C: +/* 061D9C 7F02D26C C4261F34 */ lwc1 $f6, %lo(D_80051F34)($at) +/* 061DA0 7F02D270 3C018005 */ lui $at, %hi(D_80051F3C) +/* 061DA4 7F02D274 460C303C */ c.lt.s $f6, $f12 +/* 061DA8 7F02D278 00000000 */ nop +/* 061DAC 7F02D27C 45000004 */ bc1f .L7F02D290 +/* 061DB0 7F02D280 00000000 */ nop +/* 061DB4 7F02D284 3C018005 */ lui $at, %hi(D_80051F38) +/* 061DB8 7F02D288 03E00008 */ jr $ra +/* 061DBC 7F02D28C C4201F38 */ lwc1 $f0, %lo(D_80051F38)($at) + +.L7F02D290: +/* 061DC0 7F02D290 C4281F3C */ lwc1 $f8, %lo(D_80051F3C)($at) +/* 061DC4 7F02D294 3C018005 */ lui $at, %hi(D_80051F44) +/* 061DC8 7F02D298 460C403C */ c.lt.s $f8, $f12 +/* 061DCC 7F02D29C 00000000 */ nop +/* 061DD0 7F02D2A0 45000004 */ bc1f .L7F02D2B4 +/* 061DD4 7F02D2A4 00000000 */ nop +/* 061DD8 7F02D2A8 3C018005 */ lui $at, %hi(D_80051F40) +/* 061DDC 7F02D2AC 03E00008 */ jr $ra +/* 061DE0 7F02D2B0 C4201F40 */ lwc1 $f0, %lo(D_80051F40)($at) + +.L7F02D2B4: +/* 061DE4 7F02D2B4 C42A1F44 */ lwc1 $f10, %lo(D_80051F44)($at) +/* 061DE8 7F02D2B8 3C018005 */ lui $at, %hi(D_80051F4C) +/* 061DEC 7F02D2BC 460C503C */ c.lt.s $f10, $f12 +/* 061DF0 7F02D2C0 00000000 */ nop +/* 061DF4 7F02D2C4 45000004 */ bc1f .L7F02D2D8 +/* 061DF8 7F02D2C8 00000000 */ nop +/* 061DFC 7F02D2CC 3C018005 */ lui $at, %hi(D_80051F48) +/* 061E00 7F02D2D0 03E00008 */ jr $ra +/* 061E04 7F02D2D4 C4201F48 */ lwc1 $f0, %lo(D_80051F48)($at) + +.L7F02D2D8: +/* 061E08 7F02D2D8 C4201F4C */ lwc1 $f0, %lo(D_80051F4C)($at) +/* 061E0C 7F02D2DC 03E00008 */ jr $ra +/* 061E10 7F02D2E0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02D2E4(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80051F50 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F54 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F58 +.word 0x3e23d70a /*0.16*/ +glabel D_80051F5C +.word 0x41200419 /*10.001*/ +.text +glabel sub_GAME_7F02D2E4 +/* 061E14 7F02D2E4 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 061E18 7F02D2E8 AFBF0014 */ sw $ra, 0x14($sp) +/* 061E1C 7F02D2EC AFA40060 */ sw $a0, 0x60($sp) +/* 061E20 7F02D2F0 AFA50064 */ sw $a1, 0x64($sp) +/* 061E24 7F02D2F4 AFA60068 */ sw $a2, 0x68($sp) +/* 061E28 7F02D2F8 0FC225E6 */ jal get_curplayer_positiondata +/* 061E2C 7F02D2FC AFA7006C */ sw $a3, 0x6c($sp) +/* 061E30 7F02D300 8FAE0060 */ lw $t6, 0x60($sp) +/* 061E34 7F02D304 C4440008 */ lwc1 $f4, 8($v0) +/* 061E38 7F02D308 C448000C */ lwc1 $f8, 0xc($v0) +/* 061E3C 7F02D30C 8DC30018 */ lw $v1, 0x18($t6) +/* 061E40 7F02D310 C4660008 */ lwc1 $f6, 8($v1) +/* 061E44 7F02D314 C46A000C */ lwc1 $f10, 0xc($v1) +/* 061E48 7F02D318 46062301 */ sub.s $f12, $f4, $f6 +/* 061E4C 7F02D31C 460A4101 */ sub.s $f4, $f8, $f10 +/* 061E50 7F02D320 E7A40050 */ swc1 $f4, 0x50($sp) +/* 061E54 7F02D324 C4460010 */ lwc1 $f6, 0x10($v0) +/* 061E58 7F02D328 C4680010 */ lwc1 $f8, 0x10($v1) +/* 061E5C 7F02D32C E7AC0054 */ swc1 $f12, 0x54($sp) +/* 061E60 7F02D330 46083381 */ sub.s $f14, $f6, $f8 +/* 061E64 7F02D334 0FC16A8C */ jal atan2f +/* 061E68 7F02D338 E7AE004C */ swc1 $f14, 0x4c($sp) +/* 061E6C 7F02D33C E7A00048 */ swc1 $f0, 0x48($sp) +/* 061E70 7F02D340 0FC0B064 */ jal sub_GAME_7F02C190 +/* 061E74 7F02D344 8FA40060 */ lw $a0, 0x60($sp) +/* 061E78 7F02D348 C7B00054 */ lwc1 $f16, 0x54($sp) +/* 061E7C 7F02D34C C7B20050 */ lwc1 $f18, 0x50($sp) +/* 061E80 7F02D350 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 061E84 7F02D354 46108102 */ mul.s $f4, $f16, $f16 +/* 061E88 7F02D358 C7AE004C */ lwc1 $f14, 0x4c($sp) +/* 061E8C 7F02D35C 46005081 */ sub.s $f2, $f10, $f0 +/* 061E90 7F02D360 46129182 */ mul.s $f6, $f18, $f18 +/* 061E94 7F02D364 E7A00044 */ swc1 $f0, 0x44($sp) +/* 061E98 7F02D368 460E7282 */ mul.s $f10, $f14, $f14 +/* 061E9C 7F02D36C E7A20040 */ swc1 $f2, 0x40($sp) +/* 061EA0 7F02D370 46062200 */ add.s $f8, $f4, $f6 +/* 061EA4 7F02D374 460A4300 */ add.s $f12, $f8, $f10 +/* 061EA8 7F02D378 0FC0B491 */ jal sub_GAME_7F02D244 +/* 061EAC 7F02D37C E7AC001C */ swc1 $f12, 0x1c($sp) +/* 061EB0 7F02D380 C7A20040 */ lwc1 $f2, 0x40($sp) +/* 061EB4 7F02D384 44802000 */ mtc1 $zero, $f4 +/* 061EB8 7F02D388 3C018005 */ lui $at, %hi(D_80051F50) +/* 061EBC 7F02D38C 8FAF0064 */ lw $t7, 0x64($sp) +/* 061EC0 7F02D390 4604103C */ c.lt.s $f2, $f4 +/* 061EC4 7F02D394 00000000 */ nop +/* 061EC8 7F02D398 45020004 */ bc1fl .L7F02D3AC +/* 061ECC 7F02D39C 4600103C */ c.lt.s $f2, $f0 +/* 061ED0 7F02D3A0 C4261F50 */ lwc1 $f6, %lo(D_80051F50)($at) +/* 061ED4 7F02D3A4 46061080 */ add.s $f2, $f2, $f6 +/* 061ED8 7F02D3A8 4600103C */ c.lt.s $f2, $f0 +.L7F02D3AC: +/* 061EDC 7F02D3AC 00001025 */ move $v0, $zero +/* 061EE0 7F02D3B0 3C018005 */ lui $at, %hi(D_80051F54) +/* 061EE4 7F02D3B4 45000002 */ bc1f .L7F02D3C0 +/* 061EE8 7F02D3B8 00000000 */ nop +/* 061EEC 7F02D3BC 24020001 */ li $v0, 1 +.L7F02D3C0: +/* 061EF0 7F02D3C0 14400009 */ bnez $v0, .L7F02D3E8 +/* 061EF4 7F02D3C4 00401825 */ move $v1, $v0 +/* 061EF8 7F02D3C8 C4281F54 */ lwc1 $f8, %lo(D_80051F54)($at) +/* 061EFC 7F02D3CC 00001825 */ move $v1, $zero +/* 061F00 7F02D3D0 46004281 */ sub.s $f10, $f8, $f0 +/* 061F04 7F02D3D4 4602503C */ c.lt.s $f10, $f2 +/* 061F08 7F02D3D8 00000000 */ nop +/* 061F0C 7F02D3DC 45020003 */ bc1fl .L7F02D3EC +/* 061F10 7F02D3E0 ADE30000 */ sw $v1, ($t7) +/* 061F14 7F02D3E4 24030001 */ li $v1, 1 +.L7F02D3E8: +/* 061F18 7F02D3E8 ADE30000 */ sw $v1, ($t7) +.L7F02D3EC: +/* 061F1C 7F02D3EC 8FB80068 */ lw $t8, 0x68($sp) +/* 061F20 7F02D3F0 AF000000 */ sw $zero, ($t8) +/* 061F24 7F02D3F4 0FC227A9 */ jal check_if_bond_is_invincible +/* 061F28 7F02D3F8 AFA30024 */ sw $v1, 0x24($sp) +/* 061F2C 7F02D3FC 14400088 */ bnez $v0, .L7F02D620 +/* 061F30 7F02D400 8FA30024 */ lw $v1, 0x24($sp) +/* 061F34 7F02D404 50600087 */ beql $v1, $zero, .L7F02D624 +/* 061F38 7F02D408 8FBF0014 */ lw $ra, 0x14($sp) +/* 061F3C 7F02D40C 0C007DF8 */ jal sqrtf +/* 061F40 7F02D410 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 061F44 7F02D414 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 061F48 7F02D418 44816000 */ mtc1 $at, $f12 +/* 061F4C 7F02D41C 3C018005 */ lui $at, %hi(D_80051F58) +/* 061F50 7F02D420 C4241F58 */ lwc1 $f4, %lo(D_80051F58)($at) +/* 061F54 7F02D424 3C018005 */ lui $at, %hi(global_timer_delta) +/* 061F58 7F02D428 4600603C */ c.lt.s $f12, $f0 +/* 061F5C 7F02D42C C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 061F60 7F02D430 8FB90060 */ lw $t9, 0x60($sp) +/* 061F64 7F02D434 46062082 */ mul.s $f2, $f4, $f6 +/* 061F68 7F02D438 45020005 */ bc1fl .L7F02D450 +/* 061F6C 7F02D43C 83220002 */ lb $v0, 2($t9) +/* 061F70 7F02D440 46006203 */ div.s $f8, $f12, $f0 +/* 061F74 7F02D444 46081082 */ mul.s $f2, $f2, $f8 +/* 061F78 7F02D448 00000000 */ nop +/* 061F7C 7F02D44C 83220002 */ lb $v0, 2($t9) +.L7F02D450: +/* 061F80 7F02D450 1840000C */ blez $v0, .L7F02D484 +/* 061F84 7F02D454 00000000 */ nop +/* 061F88 7F02D458 44825000 */ mtc1 $v0, $f10 +/* 061F8C 7F02D45C 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 061F90 7F02D460 44813000 */ mtc1 $at, $f6 +/* 061F94 7F02D464 46805120 */ cvt.s.w $f4, $f10 +/* 061F98 7F02D468 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 061F9C 7F02D46C 44815000 */ mtc1 $at, $f10 +/* 061FA0 7F02D470 46062203 */ div.s $f8, $f4, $f6 +/* 061FA4 7F02D474 46085100 */ add.s $f4, $f10, $f8 +/* 061FA8 7F02D478 46041082 */ mul.s $f2, $f2, $f4 +/* 061FAC 7F02D47C 1000000F */ b .L7F02D4BC +/* 061FB0 7F02D480 00000000 */ nop +.L7F02D484: +/* 061FB4 7F02D484 0441000D */ bgez $v0, .L7F02D4BC +/* 061FB8 7F02D488 2841FF9D */ slti $at, $v0, -0x63 +/* 061FBC 7F02D48C 10200004 */ beqz $at, .L7F02D4A0 +/* 061FC0 7F02D490 24480064 */ addiu $t0, $v0, 0x64 +/* 061FC4 7F02D494 44801000 */ mtc1 $zero, $f2 +/* 061FC8 7F02D498 10000008 */ b .L7F02D4BC +/* 061FCC 7F02D49C 00000000 */ nop +.L7F02D4A0: +/* 061FD0 7F02D4A0 44883000 */ mtc1 $t0, $f6 +/* 061FD4 7F02D4A4 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 061FD8 7F02D4A8 44814000 */ mtc1 $at, $f8 +/* 061FDC 7F02D4AC 468032A0 */ cvt.s.w $f10, $f6 +/* 061FE0 7F02D4B0 46085103 */ div.s $f4, $f10, $f8 +/* 061FE4 7F02D4B4 46041082 */ mul.s $f2, $f2, $f4 +/* 061FE8 7F02D4B8 00000000 */ nop +.L7F02D4BC: +/* 061FEC 7F02D4BC 0FC074D8 */ jal get_007_accuracy_mod +/* 061FF0 7F02D4C0 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 061FF4 7F02D4C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 061FF8 7F02D4C8 44813000 */ mtc1 $at, $f6 +/* 061FFC 7F02D4CC C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 062000 7F02D4D0 4606003E */ c.le.s $f0, $f6 +/* 062004 7F02D4D4 00000000 */ nop +/* 062008 7F02D4D8 45000007 */ bc1f .L7F02D4F8 +/* 06200C 7F02D4DC 00000000 */ nop +/* 062010 7F02D4E0 0FC074D8 */ jal get_007_accuracy_mod +/* 062014 7F02D4E4 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 062018 7F02D4E8 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 06201C 7F02D4EC 46001082 */ mul.s $f2, $f2, $f0 +/* 062020 7F02D4F0 1000000C */ b .L7F02D524 +/* 062024 7F02D4F4 00000000 */ nop +.L7F02D4F8: +/* 062028 7F02D4F8 0FC074D8 */ jal get_007_accuracy_mod +/* 06202C 7F02D4FC E7A2002C */ swc1 $f2, 0x2c($sp) +/* 062030 7F02D500 3C014110 */ li $at, 0x41100000 # 9.000000 +/* 062034 7F02D504 44815000 */ mtc1 $at, $f10 +/* 062038 7F02D508 3C018005 */ lui $at, %hi(D_80051F5C) +/* 06203C 7F02D50C C4281F5C */ lwc1 $f8, %lo(D_80051F5C)($at) +/* 062040 7F02D510 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 062044 7F02D514 46004101 */ sub.s $f4, $f8, $f0 +/* 062048 7F02D518 46045183 */ div.s $f6, $f10, $f4 +/* 06204C 7F02D51C 46061082 */ mul.s $f2, $f2, $f6 +/* 062050 7F02D520 00000000 */ nop +.L7F02D524: +/* 062054 7F02D524 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 062058 7F02D528 C428CE40 */ lwc1 $f8, %lo(ai_accuracy_modifier)($at) +/* 06205C 7F02D52C 8FA4006C */ lw $a0, 0x6c($sp) +/* 062060 7F02D530 46081082 */ mul.s $f2, $f2, $f8 +/* 062064 7F02D534 0FC177F3 */ jal get_automatic_firing_rate +/* 062068 7F02D538 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 06206C 7F02D53C 1C400002 */ bgtz $v0, .L7F02D548 +/* 062070 7F02D540 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 062074 7F02D544 46021080 */ add.s $f2, $f2, $f2 +.L7F02D548: +/* 062078 7F02D548 8FA4006C */ lw $a0, 0x6c($sp) +/* 06207C 7F02D54C 2401000F */ li $at, 15 +/* 062080 7F02D550 8FA20060 */ lw $v0, 0x60($sp) +/* 062084 7F02D554 10810003 */ beq $a0, $at, .L7F02D564 +/* 062088 7F02D558 24010010 */ li $at, 16 +/* 06208C 7F02D55C 54810003 */ bnel $a0, $at, .L7F02D56C +/* 062090 7F02D560 C44A013C */ lwc1 $f10, 0x13c($v0) +.L7F02D564: +/* 062094 7F02D564 46021080 */ add.s $f2, $f2, $f2 +/* 062098 7F02D568 C44A013C */ lwc1 $f10, 0x13c($v0) +.L7F02D56C: +/* 06209C 7F02D56C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0620A0 7F02D570 44814000 */ mtc1 $at, $f8 +/* 0620A4 7F02D574 46025100 */ add.s $f4, $f10, $f2 +/* 0620A8 7F02D578 E444013C */ swc1 $f4, 0x13c($v0) +/* 0620AC 7F02D57C C446013C */ lwc1 $f6, 0x13c($v0) +/* 0620B0 7F02D580 4606403E */ c.le.s $f8, $f6 +/* 0620B4 7F02D584 00000000 */ nop +/* 0620B8 7F02D588 45020026 */ bc1fl .L7F02D624 +/* 0620BC 7F02D58C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0620C0 7F02D590 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 0620C4 7F02D594 00000000 */ nop +/* 0620C8 7F02D598 0FC074C9 */ jal get_007_damage_mod +/* 0620CC 7F02D59C E7A00020 */ swc1 $f0, 0x20($sp) +/* 0620D0 7F02D5A0 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 0620D4 7F02D5A4 44815000 */ mtc1 $at, $f10 +/* 0620D8 7F02D5A8 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0620DC 7F02D5AC 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 0620E0 7F02D5B0 C428CE44 */ lwc1 $f8, %lo(ai_damage_modifier)($at) +/* 0620E4 7F02D5B4 46045182 */ mul.s $f6, $f10, $f4 +/* 0620E8 7F02D5B8 8FA9006C */ lw $t1, 0x6c($sp) +/* 0620EC 7F02D5BC 2401000F */ li $at, 15 +/* 0620F0 7F02D5C0 C7AE0044 */ lwc1 $f14, 0x44($sp) +/* 0620F4 7F02D5C4 2406FFFF */ li $a2, -1 +/* 0620F8 7F02D5C8 46083282 */ mul.s $f10, $f6, $f8 +/* 0620FC 7F02D5CC 00000000 */ nop +/* 062100 7F02D5D0 460A0302 */ mul.s $f12, $f0, $f10 +/* 062104 7F02D5D4 11210003 */ beq $t1, $at, .L7F02D5E4 +/* 062108 7F02D5D8 00000000 */ nop +/* 06210C 7F02D5DC 24010010 */ li $at, 16 +/* 062110 7F02D5E0 15210005 */ bne $t1, $at, .L7F02D5F8 +.L7F02D5E4: +/* 062114 7F02D5E4 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 062118 7F02D5E8 44812000 */ mtc1 $at, $f4 +/* 06211C 7F02D5EC 00000000 */ nop +/* 062120 7F02D5F0 46046302 */ mul.s $f12, $f12, $f4 +/* 062124 7F02D5F4 00000000 */ nop +.L7F02D5F8: +/* 062128 7F02D5F8 0FC22793 */ jal sub_GAME_7F089E4C +/* 06212C 7F02D5FC 24070001 */ li $a3, 1 +/* 062130 7F02D600 44803000 */ mtc1 $zero, $f6 +/* 062134 7F02D604 8FAA0060 */ lw $t2, 0x60($sp) +/* 062138 7F02D608 0FC227A9 */ jal check_if_bond_is_invincible +/* 06213C 7F02D60C E546013C */ swc1 $f6, 0x13c($t2) +/* 062140 7F02D610 10400003 */ beqz $v0, .L7F02D620 +/* 062144 7F02D614 8FAC0068 */ lw $t4, 0x68($sp) +/* 062148 7F02D618 240B0001 */ li $t3, 1 +/* 06214C 7F02D61C AD8B0000 */ sw $t3, ($t4) +.L7F02D620: +/* 062150 7F02D620 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02D624: +/* 062154 7F02D624 27BD0060 */ addiu $sp, $sp, 0x60 +/* 062158 7F02D628 03E00008 */ jr $ra +/* 06215C 7F02D62C 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80051F50 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F54 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F58 +.word 0x3e23d70a /*0.16*/ +glabel D_80051F5C +.word 0x41200419 /*10.001*/ +.text +glabel sub_GAME_7F02D2E4 +/* 061E14 7F02D2E4 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 061E18 7F02D2E8 AFBF0014 */ sw $ra, 0x14($sp) +/* 061E1C 7F02D2EC AFA40060 */ sw $a0, 0x60($sp) +/* 061E20 7F02D2F0 AFA50064 */ sw $a1, 0x64($sp) +/* 061E24 7F02D2F4 AFA60068 */ sw $a2, 0x68($sp) +/* 061E28 7F02D2F8 0FC225E6 */ jal get_curplayer_positiondata +/* 061E2C 7F02D2FC AFA7006C */ sw $a3, 0x6c($sp) +/* 061E30 7F02D300 8FAE0060 */ lw $t6, 0x60($sp) +/* 061E34 7F02D304 C4440008 */ lwc1 $f4, 8($v0) +/* 061E38 7F02D308 C448000C */ lwc1 $f8, 0xc($v0) +/* 061E3C 7F02D30C 8DC30018 */ lw $v1, 0x18($t6) +/* 061E40 7F02D310 C4660008 */ lwc1 $f6, 8($v1) +/* 061E44 7F02D314 C46A000C */ lwc1 $f10, 0xc($v1) +/* 061E48 7F02D318 46062301 */ sub.s $f12, $f4, $f6 +/* 061E4C 7F02D31C 460A4101 */ sub.s $f4, $f8, $f10 +/* 061E50 7F02D320 E7A40050 */ swc1 $f4, 0x50($sp) +/* 061E54 7F02D324 C4460010 */ lwc1 $f6, 0x10($v0) +/* 061E58 7F02D328 C4680010 */ lwc1 $f8, 0x10($v1) +/* 061E5C 7F02D32C E7AC0054 */ swc1 $f12, 0x54($sp) +/* 061E60 7F02D330 46083381 */ sub.s $f14, $f6, $f8 +/* 061E64 7F02D334 0FC16A8C */ jal atan2f +/* 061E68 7F02D338 E7AE004C */ swc1 $f14, 0x4c($sp) +/* 061E6C 7F02D33C E7A00048 */ swc1 $f0, 0x48($sp) +/* 061E70 7F02D340 0FC0B064 */ jal sub_GAME_7F02C190 +/* 061E74 7F02D344 8FA40060 */ lw $a0, 0x60($sp) +/* 061E78 7F02D348 C7B00054 */ lwc1 $f16, 0x54($sp) +/* 061E7C 7F02D34C C7B20050 */ lwc1 $f18, 0x50($sp) +/* 061E80 7F02D350 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 061E84 7F02D354 46108102 */ mul.s $f4, $f16, $f16 +/* 061E88 7F02D358 C7AE004C */ lwc1 $f14, 0x4c($sp) +/* 061E8C 7F02D35C 46005081 */ sub.s $f2, $f10, $f0 +/* 061E90 7F02D360 46129182 */ mul.s $f6, $f18, $f18 +/* 061E94 7F02D364 E7A00044 */ swc1 $f0, 0x44($sp) +/* 061E98 7F02D368 460E7282 */ mul.s $f10, $f14, $f14 +/* 061E9C 7F02D36C E7A20040 */ swc1 $f2, 0x40($sp) +/* 061EA0 7F02D370 46062200 */ add.s $f8, $f4, $f6 +/* 061EA4 7F02D374 460A4300 */ add.s $f12, $f8, $f10 +/* 061EA8 7F02D378 0FC0B491 */ jal sub_GAME_7F02D244 +/* 061EAC 7F02D37C E7AC001C */ swc1 $f12, 0x1c($sp) +/* 061EB0 7F02D380 C7A20040 */ lwc1 $f2, 0x40($sp) +/* 061EB4 7F02D384 44802000 */ mtc1 $zero, $f4 +/* 061EB8 7F02D388 3C018005 */ lui $at, %hi(D_80051F50) +/* 061EBC 7F02D38C 8FAF0064 */ lw $t7, 0x64($sp) +/* 061EC0 7F02D390 4604103C */ c.lt.s $f2, $f4 +/* 061EC4 7F02D394 00000000 */ nop +/* 061EC8 7F02D398 45020004 */ bc1fl .L7F02D3AC +/* 061ECC 7F02D39C 4600103C */ c.lt.s $f2, $f0 +/* 061ED0 7F02D3A0 C4261F50 */ lwc1 $f6, %lo(D_80051F50)($at) +/* 061ED4 7F02D3A4 46061080 */ add.s $f2, $f2, $f6 +/* 061ED8 7F02D3A8 4600103C */ c.lt.s $f2, $f0 +.L7F02D3AC: +/* 061EDC 7F02D3AC 00001025 */ move $v0, $zero +/* 061EE0 7F02D3B0 3C018005 */ lui $at, %hi(D_80051F54) +/* 061EE4 7F02D3B4 45000002 */ bc1f .L7F02D3C0 +/* 061EE8 7F02D3B8 00000000 */ nop +/* 061EEC 7F02D3BC 24020001 */ li $v0, 1 +.L7F02D3C0: +/* 061EF0 7F02D3C0 14400009 */ bnez $v0, .L7F02D3E8 +/* 061EF4 7F02D3C4 00401825 */ move $v1, $v0 +/* 061EF8 7F02D3C8 C4281F54 */ lwc1 $f8, %lo(D_80051F54)($at) +/* 061EFC 7F02D3CC 00001825 */ move $v1, $zero +/* 061F00 7F02D3D0 46004281 */ sub.s $f10, $f8, $f0 +/* 061F04 7F02D3D4 4602503C */ c.lt.s $f10, $f2 +/* 061F08 7F02D3D8 00000000 */ nop +/* 061F0C 7F02D3DC 45020003 */ bc1fl .L7F02D3EC +/* 061F10 7F02D3E0 ADE30000 */ sw $v1, ($t7) +/* 061F14 7F02D3E4 24030001 */ li $v1, 1 +.L7F02D3E8: +/* 061F18 7F02D3E8 ADE30000 */ sw $v1, ($t7) +.L7F02D3EC: +/* 061F1C 7F02D3EC 8FB80068 */ lw $t8, 0x68($sp) +/* 061F20 7F02D3F0 AF000000 */ sw $zero, ($t8) +/* 061F24 7F02D3F4 0FC227A9 */ jal check_if_bond_is_invincible +/* 061F28 7F02D3F8 AFA30024 */ sw $v1, 0x24($sp) +/* 061F2C 7F02D3FC 14400088 */ bnez $v0, .L7F02D620 +/* 061F30 7F02D400 8FA30024 */ lw $v1, 0x24($sp) +/* 061F34 7F02D404 50600087 */ beql $v1, $zero, .L7F02D624 +/* 061F38 7F02D408 8FBF0014 */ lw $ra, 0x14($sp) +/* 061F3C 7F02D40C 0C007DF8 */ jal sqrtf +/* 061F40 7F02D410 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 061F44 7F02D414 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 061F48 7F02D418 44816000 */ mtc1 $at, $f12 +/* 061F4C 7F02D41C 3C018005 */ lui $at, %hi(D_80051F58) +/* 061F50 7F02D420 C4241F58 */ lwc1 $f4, %lo(D_80051F58)($at) +/* 061F54 7F02D424 3C018005 */ lui $at, %hi(jp_global_timer_delta) +/* 061F58 7F02D428 4600603C */ c.lt.s $f12, $f0 +/* 061F5C 7F02D42C C4268378 */ lwc1 $f6, %lo(jp_global_timer_delta)($at) +/* 061F60 7F02D430 8FB90060 */ lw $t9, 0x60($sp) +/* 061F64 7F02D434 46062082 */ mul.s $f2, $f4, $f6 +/* 061F68 7F02D438 45020005 */ bc1fl .L7F02D450 +/* 061F6C 7F02D43C 83220002 */ lb $v0, 2($t9) +/* 061F70 7F02D440 46006203 */ div.s $f8, $f12, $f0 +/* 061F74 7F02D444 46081082 */ mul.s $f2, $f2, $f8 +/* 061F78 7F02D448 00000000 */ nop +/* 061F7C 7F02D44C 83220002 */ lb $v0, 2($t9) +.L7F02D450: +/* 061F80 7F02D450 1840000C */ blez $v0, .L7F02D484 +/* 061F84 7F02D454 00000000 */ nop +/* 061F88 7F02D458 44825000 */ mtc1 $v0, $f10 +/* 061F8C 7F02D45C 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 061F90 7F02D460 44813000 */ mtc1 $at, $f6 +/* 061F94 7F02D464 46805120 */ cvt.s.w $f4, $f10 +/* 061F98 7F02D468 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 061F9C 7F02D46C 44815000 */ mtc1 $at, $f10 +/* 061FA0 7F02D470 46062203 */ div.s $f8, $f4, $f6 +/* 061FA4 7F02D474 46085100 */ add.s $f4, $f10, $f8 +/* 061FA8 7F02D478 46041082 */ mul.s $f2, $f2, $f4 +/* 061FAC 7F02D47C 1000000F */ b .L7F02D4BC +/* 061FB0 7F02D480 00000000 */ nop +.L7F02D484: +/* 061FB4 7F02D484 0441000D */ bgez $v0, .L7F02D4BC +/* 061FB8 7F02D488 2841FF9D */ slti $at, $v0, -0x63 +/* 061FBC 7F02D48C 10200004 */ beqz $at, .L7F02D4A0 +/* 061FC0 7F02D490 24480064 */ addiu $t0, $v0, 0x64 +/* 061FC4 7F02D494 44801000 */ mtc1 $zero, $f2 +/* 061FC8 7F02D498 10000008 */ b .L7F02D4BC +/* 061FCC 7F02D49C 00000000 */ nop +.L7F02D4A0: +/* 061FD0 7F02D4A0 44883000 */ mtc1 $t0, $f6 +/* 061FD4 7F02D4A4 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 061FD8 7F02D4A8 44814000 */ mtc1 $at, $f8 +/* 061FDC 7F02D4AC 468032A0 */ cvt.s.w $f10, $f6 +/* 061FE0 7F02D4B0 46085103 */ div.s $f4, $f10, $f8 +/* 061FE4 7F02D4B4 46041082 */ mul.s $f2, $f2, $f4 +/* 061FE8 7F02D4B8 00000000 */ nop +.L7F02D4BC: +/* 061FEC 7F02D4BC 0FC074D8 */ jal get_007_accuracy_mod +/* 061FF0 7F02D4C0 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 061FF4 7F02D4C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 061FF8 7F02D4C8 44813000 */ mtc1 $at, $f6 +/* 061FFC 7F02D4CC C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 062000 7F02D4D0 4606003E */ c.le.s $f0, $f6 +/* 062004 7F02D4D4 00000000 */ nop +/* 062008 7F02D4D8 45000007 */ bc1f .L7F02D4F8 +/* 06200C 7F02D4DC 00000000 */ nop +/* 062010 7F02D4E0 0FC074D8 */ jal get_007_accuracy_mod +/* 062014 7F02D4E4 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 062018 7F02D4E8 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 06201C 7F02D4EC 46001082 */ mul.s $f2, $f2, $f0 +/* 062020 7F02D4F0 1000000C */ b .L7F02D524 +/* 062024 7F02D4F4 00000000 */ nop +.L7F02D4F8: +/* 062028 7F02D4F8 0FC074D8 */ jal get_007_accuracy_mod +/* 06202C 7F02D4FC E7A2002C */ swc1 $f2, 0x2c($sp) +/* 062030 7F02D500 3C014110 */ li $at, 0x41100000 # 9.000000 +/* 062034 7F02D504 44815000 */ mtc1 $at, $f10 +/* 062038 7F02D508 3C018005 */ lui $at, %hi(D_80051F5C) +/* 06203C 7F02D50C C4281F5C */ lwc1 $f8, %lo(D_80051F5C)($at) +/* 062040 7F02D510 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 062044 7F02D514 46004101 */ sub.s $f4, $f8, $f0 +/* 062048 7F02D518 46045183 */ div.s $f6, $f10, $f4 +/* 06204C 7F02D51C 46061082 */ mul.s $f2, $f2, $f6 +/* 062050 7F02D520 00000000 */ nop +.L7F02D524: +/* 062054 7F02D524 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 062058 7F02D528 C428CE40 */ lwc1 $f8, %lo(ai_accuracy_modifier)($at) +/* 06205C 7F02D52C 8FA4006C */ lw $a0, 0x6c($sp) +/* 062060 7F02D530 46081082 */ mul.s $f2, $f2, $f8 +/* 062064 7F02D534 0FC177F3 */ jal get_automatic_firing_rate +/* 062068 7F02D538 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 06206C 7F02D53C 1C400002 */ bgtz $v0, .L7F02D548 +/* 062070 7F02D540 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 062074 7F02D544 46021080 */ add.s $f2, $f2, $f2 +.L7F02D548: +/* 062078 7F02D548 8FA4006C */ lw $a0, 0x6c($sp) +/* 06207C 7F02D54C 2401000F */ li $at, 15 +/* 062080 7F02D550 8FA20060 */ lw $v0, 0x60($sp) +/* 062084 7F02D554 10810003 */ beq $a0, $at, .L7F02D564 +/* 062088 7F02D558 24010010 */ li $at, 16 +/* 06208C 7F02D55C 54810003 */ bnel $a0, $at, .L7F02D56C +/* 062090 7F02D560 C44A013C */ lwc1 $f10, 0x13c($v0) +.L7F02D564: +/* 062094 7F02D564 46021080 */ add.s $f2, $f2, $f2 +/* 062098 7F02D568 C44A013C */ lwc1 $f10, 0x13c($v0) +.L7F02D56C: +/* 06209C 7F02D56C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0620A0 7F02D570 44814000 */ mtc1 $at, $f8 +/* 0620A4 7F02D574 46025100 */ add.s $f4, $f10, $f2 +/* 0620A8 7F02D578 E444013C */ swc1 $f4, 0x13c($v0) +/* 0620AC 7F02D57C C446013C */ lwc1 $f6, 0x13c($v0) +/* 0620B0 7F02D580 4606403E */ c.le.s $f8, $f6 +/* 0620B4 7F02D584 00000000 */ nop +/* 0620B8 7F02D588 45020026 */ bc1fl .L7F02D624 +/* 0620BC 7F02D58C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0620C0 7F02D590 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 0620C4 7F02D594 00000000 */ nop +/* 0620C8 7F02D598 0FC074C9 */ jal get_007_damage_mod +/* 0620CC 7F02D59C E7A00020 */ swc1 $f0, 0x20($sp) +/* 0620D0 7F02D5A0 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 0620D4 7F02D5A4 44815000 */ mtc1 $at, $f10 +/* 0620D8 7F02D5A8 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0620DC 7F02D5AC 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 0620E0 7F02D5B0 C428CE44 */ lwc1 $f8, %lo(ai_damage_modifier)($at) +/* 0620E4 7F02D5B4 46045182 */ mul.s $f6, $f10, $f4 +/* 0620E8 7F02D5B8 8FA9006C */ lw $t1, 0x6c($sp) +/* 0620EC 7F02D5BC 2401000F */ li $at, 15 +/* 0620F0 7F02D5C0 C7AE0044 */ lwc1 $f14, 0x44($sp) +/* 0620F4 7F02D5C4 2406FFFF */ li $a2, -1 +/* 0620F8 7F02D5C8 46083282 */ mul.s $f10, $f6, $f8 +/* 0620FC 7F02D5CC 00000000 */ nop +/* 062100 7F02D5D0 460A0302 */ mul.s $f12, $f0, $f10 +/* 062104 7F02D5D4 11210003 */ beq $t1, $at, .L7F02D5E4 +/* 062108 7F02D5D8 00000000 */ nop +/* 06210C 7F02D5DC 24010010 */ li $at, 16 +/* 062110 7F02D5E0 15210005 */ bne $t1, $at, .L7F02D5F8 +.L7F02D5E4: +/* 062114 7F02D5E4 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 062118 7F02D5E8 44812000 */ mtc1 $at, $f4 +/* 06211C 7F02D5EC 00000000 */ nop +/* 062120 7F02D5F0 46046302 */ mul.s $f12, $f12, $f4 +/* 062124 7F02D5F4 00000000 */ nop +.L7F02D5F8: +/* 062128 7F02D5F8 0FC22793 */ jal sub_GAME_7F089E4C +/* 06212C 7F02D5FC 24070001 */ li $a3, 1 +/* 062130 7F02D600 44803000 */ mtc1 $zero, $f6 +/* 062134 7F02D604 8FAA0060 */ lw $t2, 0x60($sp) +/* 062138 7F02D608 0FC227A9 */ jal check_if_bond_is_invincible +/* 06213C 7F02D60C E546013C */ swc1 $f6, 0x13c($t2) +/* 062140 7F02D610 10400003 */ beqz $v0, .L7F02D620 +/* 062144 7F02D614 8FAC0068 */ lw $t4, 0x68($sp) +/* 062148 7F02D618 240B0001 */ li $t3, 1 +/* 06214C 7F02D61C AD8B0000 */ sw $t3, ($t4) +.L7F02D620: +/* 062150 7F02D620 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02D624: +/* 062154 7F02D624 27BD0060 */ addiu $sp, $sp, 0x60 +/* 062158 7F02D628 03E00008 */ jr $ra +/* 06215C 7F02D62C 00000000 */ nop +) +#endif +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F02D630(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02D630 +/* 062160 7F02D630 27BDFF38 */ addiu $sp, $sp, -0xc8 +/* 062164 7F02D634 AFBF001C */ sw $ra, 0x1c($sp) +/* 062168 7F02D638 AFB00018 */ sw $s0, 0x18($sp) +/* 06216C 7F02D63C 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 062170 7F02D640 00C08025 */ move $s0, $a2 +/* 062174 7F02D644 10400036 */ beqz $v0, .L7F02D720 +/* 062178 7F02D648 00003025 */ move $a2, $zero +/* 06217C 7F02D64C 904E0001 */ lbu $t6, 1($v0) +/* 062180 7F02D650 8C430004 */ lw $v1, 4($v0) +/* 062184 7F02D654 31CF0002 */ andi $t7, $t6, 2 +/* 062188 7F02D658 11E00031 */ beqz $t7, .L7F02D720 +/* 06218C 7F02D65C 8C640014 */ lw $a0, 0x14($v1) +/* 062190 7F02D660 8C980008 */ lw $t8, 8($a0) +/* 062194 7F02D664 8F020008 */ lw $v0, 8($t8) +/* 062198 7F02D668 8C450000 */ lw $a1, ($v0) +/* 06219C 7F02D66C 50A0001B */ beql $a1, $zero, .L7F02D6DC +/* 0621A0 7F02D670 8C450004 */ lw $a1, 4($v0) +/* 0621A4 7F02D674 00003025 */ move $a2, $zero +/* 0621A8 7F02D678 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0621AC 7F02D67C AFA400BC */ sw $a0, 0xbc($sp) +/* 0621B0 7F02D680 8FA400BC */ lw $a0, 0xbc($sp) +/* 0621B4 7F02D684 AFA200B4 */ sw $v0, 0xb4($sp) +/* 0621B8 7F02D688 8C990008 */ lw $t9, 8($a0) +/* 0621BC 7F02D68C 8F280008 */ lw $t0, 8($t9) +/* 0621C0 7F02D690 8D090000 */ lw $t1, ($t0) +/* 0621C4 7F02D694 8D230004 */ lw $v1, 4($t1) +/* 0621C8 7F02D698 C4640000 */ lwc1 $f4, ($v1) +/* 0621CC 7F02D69C E6040000 */ swc1 $f4, ($s0) +/* 0621D0 7F02D6A0 C4660004 */ lwc1 $f6, 4($v1) +/* 0621D4 7F02D6A4 E6060004 */ swc1 $f6, 4($s0) +/* 0621D8 7F02D6A8 C4680008 */ lwc1 $f8, 8($v1) +/* 0621DC 7F02D6AC 0FC1E111 */ jal sub_GAME_7F078444 +/* 0621E0 7F02D6B0 E6080008 */ swc1 $f8, 8($s0) +/* 0621E4 7F02D6B4 00402025 */ move $a0, $v0 +/* 0621E8 7F02D6B8 8FA500B4 */ lw $a1, 0xb4($sp) +/* 0621EC 7F02D6BC 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0621F0 7F02D6C0 27A60074 */ addiu $a2, $sp, 0x74 +/* 0621F4 7F02D6C4 27A40074 */ addiu $a0, $sp, 0x74 +/* 0621F8 7F02D6C8 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 0621FC 7F02D6CC 02002825 */ move $a1, $s0 +/* 062200 7F02D6D0 10000013 */ b .L7F02D720 +/* 062204 7F02D6D4 24060001 */ li $a2, 1 +/* 062208 7F02D6D8 8C450004 */ lw $a1, 4($v0) +.L7F02D6DC: +/* 06220C 7F02D6DC 50A00011 */ beql $a1, $zero, .L7F02D724 +/* 062210 7F02D6E0 8FBF001C */ lw $ra, 0x1c($sp) +/* 062214 7F02D6E4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 062218 7F02D6E8 00003025 */ move $a2, $zero +/* 06221C 7F02D6EC 0FC1E111 */ jal sub_GAME_7F078444 +/* 062220 7F02D6F0 AFA2006C */ sw $v0, 0x6c($sp) +/* 062224 7F02D6F4 00402025 */ move $a0, $v0 +/* 062228 7F02D6F8 8FA5006C */ lw $a1, 0x6c($sp) +/* 06222C 7F02D6FC 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 062230 7F02D700 27A6002C */ addiu $a2, $sp, 0x2c +/* 062234 7F02D704 C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 062238 7F02D708 24060001 */ li $a2, 1 +/* 06223C 7F02D70C E60A0000 */ swc1 $f10, ($s0) +/* 062240 7F02D710 C7B00060 */ lwc1 $f16, 0x60($sp) +/* 062244 7F02D714 E6100004 */ swc1 $f16, 4($s0) +/* 062248 7F02D718 C7B20064 */ lwc1 $f18, 0x64($sp) +/* 06224C 7F02D71C E6120008 */ swc1 $f18, 8($s0) +.L7F02D720: +/* 062250 7F02D720 8FBF001C */ lw $ra, 0x1c($sp) +.L7F02D724: +/* 062254 7F02D724 8FB00018 */ lw $s0, 0x18($sp) +/* 062258 7F02D728 27BD00C8 */ addiu $sp, $sp, 0xc8 +/* 06225C 7F02D72C 03E00008 */ jr $ra +/* 062260 7F02D730 00C01025 */ move $v0, $a2 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02D734(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051F60 +.word 0x481c4000 /*160000.0*/ +glabel D_80051F64 +.word 0x3f8e38e3 /*1.111111*/ +glabel D_80051F68 +.word 0x481c4000 /*160000.0*/ +glabel D_80051F6C +.word 0x42055555 /*33.333332*/ +glabel D_80051F70 +.word 0x3e99999a /*0.30000001*/ +glabel D_80051F74 +.word 0x3e088888 /*0.13333333*/ +glabel D_80051F78 +.word 0x461c4000 /*10000.0*/ +glabel jpt_80051F7C + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_no_projectile + .word weapon_guard_fires_bullet_no_projectile + .word weapon_guard_fires_bullet_no_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile + .word weapon_guard_fires_bullet_projectile +.text +glabel sub_GAME_7F02D734 +/* 062264 7F02D734 27BDFD78 */ addiu $sp, $sp, -0x288 +/* 062268 7F02D738 AFBF002C */ sw $ra, 0x2c($sp) +/* 06226C 7F02D73C AFA5028C */ sw $a1, 0x28c($sp) +/* 062270 7F02D740 8C8E0018 */ lw $t6, 0x18($a0) +/* 062274 7F02D744 AFA40288 */ sw $a0, 0x288($sp) +/* 062278 7F02D748 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 06227C 7F02D74C AFAE0284 */ sw $t6, 0x284($sp) +/* 062280 7F02D750 504002C3 */ beql $v0, $zero, .L7F02E260 +/* 062284 7F02D754 8FBF002C */ lw $ra, 0x2c($sp) +/* 062288 7F02D758 AFA0027C */ sw $zero, 0x27c($sp) +/* 06228C 7F02D75C AFA00278 */ sw $zero, 0x278($sp) +/* 062290 7F02D760 8C4F0004 */ lw $t7, 4($v0) +/* 062294 7F02D764 0FC225E6 */ jal get_curplayer_positiondata +/* 062298 7F02D768 AFAF0274 */ sw $t7, 0x274($sp) +/* 06229C 7F02D76C 8FA50288 */ lw $a1, 0x288($sp) +/* 0622A0 7F02D770 AFA20270 */ sw $v0, 0x270($sp) +/* 0622A4 7F02D774 24010008 */ li $at, 8 +/* 0622A8 7F02D778 80B80007 */ lb $t8, 7($a1) +/* 0622AC 7F02D77C 24030001 */ li $v1, 1 +/* 0622B0 7F02D780 3C0A8005 */ lui $t2, %hi(global_timer) +/* 0622B4 7F02D784 57010003 */ bnel $t8, $at, .L7F02D794 +/* 0622B8 7F02D788 30790001 */ andi $t9, $v1, 1 +/* 0622BC 7F02D78C 8CA3004C */ lw $v1, 0x4c($a1) +/* 0622C0 7F02D790 30790001 */ andi $t9, $v1, 1 +.L7F02D794: +/* 0622C4 7F02D794 1320000C */ beqz $t9, .L7F02D7C8 +/* 0622C8 7F02D798 AFB90044 */ sw $t9, 0x44($sp) +/* 0622CC 7F02D79C 8D4A837C */ lw $t2, %lo(global_timer)($t2) +/* 0622D0 7F02D7A0 8CA900E8 */ lw $t1, 0xe8($a1) +/* 0622D4 7F02D7A4 8FAC0274 */ lw $t4, 0x274($sp) +/* 0622D8 7F02D7A8 254BFF88 */ addiu $t3, $t2, -0x78 +/* 0622DC 7F02D7AC 012B082A */ slt $at, $t1, $t3 +/* 0622E0 7F02D7B0 50200006 */ beql $at, $zero, .L7F02D7CC +/* 0622E4 7F02D7B4 8FAD028C */ lw $t5, 0x28c($sp) +/* 0622E8 7F02D7B8 0FC177F3 */ jal get_automatic_firing_rate +/* 0622EC 7F02D7BC 81840080 */ lb $a0, 0x80($t4) +/* 0622F0 7F02D7C0 044102A2 */ bgez $v0, .L7F02E24C +/* 0622F4 7F02D7C4 8FA50288 */ lw $a1, 0x288($sp) +.L7F02D7C8: +/* 0622F8 7F02D7C8 8FAD028C */ lw $t5, 0x28c($sp) +.L7F02D7CC: +/* 0622FC 7F02D7CC AFA00268 */ sw $zero, 0x268($sp) +/* 062300 7F02D7D0 AFA00264 */ sw $zero, 0x264($sp) +/* 062304 7F02D7D4 00AD1021 */ addu $v0, $a1, $t5 +/* 062308 7F02D7D8 904E0004 */ lbu $t6, 4($v0) +/* 06230C 7F02D7DC 25CF0001 */ addiu $t7, $t6, 1 +/* 062310 7F02D7E0 A04F0004 */ sb $t7, 4($v0) +/* 062314 7F02D7E4 8FB80274 */ lw $t8, 0x274($sp) +/* 062318 7F02D7E8 83040080 */ lb $a0, 0x80($t8) +/* 06231C 7F02D7EC 0FC177F3 */ jal get_automatic_firing_rate +/* 062320 7F02D7F0 AFA20040 */ sw $v0, 0x40($sp) +/* 062324 7F02D7F4 04410006 */ bgez $v0, .L7F02D810 +/* 062328 7F02D7F8 8FAA0274 */ lw $t2, 0x274($sp) +/* 06232C 7F02D7FC 24190001 */ li $t9, 1 +/* 062330 7F02D800 24080001 */ li $t0, 1 +/* 062334 7F02D804 AFB90268 */ sw $t9, 0x268($sp) +/* 062338 7F02D808 10000031 */ b .L7F02D8D0 +/* 06233C 7F02D80C AFA80264 */ sw $t0, 0x264($sp) +.L7F02D810: +/* 062340 7F02D810 0FC177F3 */ jal get_automatic_firing_rate +/* 062344 7F02D814 81440080 */ lb $a0, 0x80($t2) +/* 062348 7F02D818 8FA90040 */ lw $t1, 0x40($sp) +/* 06234C 7F02D81C 240D0001 */ li $t5, 1 +/* 062350 7F02D820 912B0004 */ lbu $t3, 4($t1) +/* 062354 7F02D824 0162001A */ div $zero, $t3, $v0 +/* 062358 7F02D828 00006010 */ mfhi $t4 +/* 06235C 7F02D82C 14400002 */ bnez $v0, .L7F02D838 +/* 062360 7F02D830 00000000 */ nop +/* 062364 7F02D834 0007000D */ break 7 +.L7F02D838: +/* 062368 7F02D838 2401FFFF */ li $at, -1 +/* 06236C 7F02D83C 14410004 */ bne $v0, $at, .L7F02D850 +/* 062370 7F02D840 3C018000 */ lui $at, 0x8000 +/* 062374 7F02D844 15610002 */ bne $t3, $at, .L7F02D850 +/* 062378 7F02D848 00000000 */ nop +/* 06237C 7F02D84C 0006000D */ break 6 +.L7F02D850: +/* 062380 7F02D850 5580001E */ bnezl $t4, .L7F02D8CC +/* 062384 7F02D854 240C0001 */ li $t4, 1 +/* 062388 7F02D858 8FAE0274 */ lw $t6, 0x274($sp) +/* 06238C 7F02D85C AFAD0268 */ sw $t5, 0x268($sp) +/* 062390 7F02D860 0FC177F3 */ jal get_automatic_firing_rate +/* 062394 7F02D864 81C40080 */ lb $a0, 0x80($t6) +/* 062398 7F02D868 8FAF0040 */ lw $t7, 0x40($sp) +/* 06239C 7F02D86C 0002C840 */ sll $t9, $v0, 1 +/* 0623A0 7F02D870 8FAA0274 */ lw $t2, 0x274($sp) +/* 0623A4 7F02D874 91F80004 */ lbu $t8, 4($t7) +/* 0623A8 7F02D878 240B0001 */ li $t3, 1 +/* 0623AC 7F02D87C 0319001A */ div $zero, $t8, $t9 +/* 0623B0 7F02D880 17200002 */ bnez $t9, .L7F02D88C +/* 0623B4 7F02D884 00000000 */ nop +/* 0623B8 7F02D888 0007000D */ break 7 +.L7F02D88C: +/* 0623BC 7F02D88C 2401FFFF */ li $at, -1 +/* 0623C0 7F02D890 17210004 */ bne $t9, $at, .L7F02D8A4 +/* 0623C4 7F02D894 3C018000 */ lui $at, 0x8000 +/* 0623C8 7F02D898 17010002 */ bne $t8, $at, .L7F02D8A4 +/* 0623CC 7F02D89C 00000000 */ nop +/* 0623D0 7F02D8A0 0006000D */ break 6 +.L7F02D8A4: +/* 0623D4 7F02D8A4 00004010 */ mfhi $t0 +/* 0623D8 7F02D8A8 24010016 */ li $at, 22 +/* 0623DC 7F02D8AC 11000004 */ beqz $t0, .L7F02D8C0 +/* 0623E0 7F02D8B0 00000000 */ nop +/* 0623E4 7F02D8B4 81490080 */ lb $t1, 0x80($t2) +/* 0623E8 7F02D8B8 55210006 */ bnel $t1, $at, .L7F02D8D4 +/* 0623EC 7F02D8BC 8FAD0268 */ lw $t5, 0x268($sp) +.L7F02D8C0: +/* 0623F0 7F02D8C0 10000003 */ b .L7F02D8D0 +/* 0623F4 7F02D8C4 AFAB0264 */ sw $t3, 0x264($sp) +/* 0623F8 7F02D8C8 240C0001 */ li $t4, 1 +.L7F02D8CC: +/* 0623FC 7F02D8CC AFAC0278 */ sw $t4, 0x278($sp) +.L7F02D8D0: +/* 062400 7F02D8D0 8FAD0268 */ lw $t5, 0x268($sp) +.L7F02D8D4: +/* 062404 7F02D8D4 51A00254 */ beql $t5, $zero, .L7F02E228 +/* 062408 7F02D8D8 8FA2027C */ lw $v0, 0x27c($sp) +/* 06240C 7F02D8DC AFA00254 */ sw $zero, 0x254($sp) +/* 062410 7F02D8E0 0FC0B064 */ jal sub_GAME_7F02C190 +/* 062414 7F02D8E4 8FA40288 */ lw $a0, 0x288($sp) +/* 062418 7F02D8E8 E7A00250 */ swc1 $f0, 0x250($sp) +/* 06241C 7F02D8EC 0FC0B09F */ jal sub_GAME_7F02C27C +/* 062420 7F02D8F0 8FA40288 */ lw $a0, 0x288($sp) +/* 062424 7F02D8F4 8FAE0284 */ lw $t6, 0x284($sp) +/* 062428 7F02D8F8 E7A0024C */ swc1 $f0, 0x24c($sp) +/* 06242C 7F02D8FC 24180001 */ li $t8, 1 +/* 062430 7F02D900 8DCF0014 */ lw $t7, 0x14($t6) +/* 062434 7F02D904 AFB8027C */ sw $t8, 0x27c($sp) +/* 062438 7F02D908 8FA40288 */ lw $a0, 0x288($sp) +/* 06243C 7F02D90C 8FA5028C */ lw $a1, 0x28c($sp) +/* 062440 7F02D910 27A60240 */ addiu $a2, $sp, 0x240 +/* 062444 7F02D914 0FC0B58C */ jal sub_GAME_7F02D630 +/* 062448 7F02D918 AFAF023C */ sw $t7, 0x23c($sp) +/* 06244C 7F02D91C 54400032 */ bnezl $v0, .L7F02D9E8 +/* 062450 7F02D920 8FA80284 */ lw $t0, 0x284($sp) +/* 062454 7F02D924 8FA20284 */ lw $v0, 0x284($sp) +/* 062458 7F02D928 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 06245C 7F02D92C 44814000 */ mtc1 $at, $f8 +/* 062460 7F02D930 C4440008 */ lwc1 $f4, 8($v0) +/* 062464 7F02D934 8FB9028C */ lw $t9, 0x28c($sp) +/* 062468 7F02D938 24010001 */ li $at, 1 +/* 06246C 7F02D93C E7A40240 */ swc1 $f4, 0x240($sp) +/* 062470 7F02D940 C446000C */ lwc1 $f6, 0xc($v0) +/* 062474 7F02D944 46083280 */ add.s $f10, $f6, $f8 +/* 062478 7F02D948 E7AA0244 */ swc1 $f10, 0x244($sp) +/* 06247C 7F02D94C C4440010 */ lwc1 $f4, 0x10($v0) +/* 062480 7F02D950 17210013 */ bne $t9, $at, .L7F02D9A0 +/* 062484 7F02D954 E7A40248 */ swc1 $f4, 0x248($sp) +/* 062488 7F02D958 0FC15FA8 */ jal cosf +/* 06248C 7F02D95C C7AC0250 */ lwc1 $f12, 0x250($sp) +/* 062490 7F02D960 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 062494 7F02D964 44814000 */ mtc1 $at, $f8 +/* 062498 7F02D968 C7A60240 */ lwc1 $f6, 0x240($sp) +/* 06249C 7F02D96C C7AC0250 */ lwc1 $f12, 0x250($sp) +/* 0624A0 7F02D970 46080282 */ mul.s $f10, $f0, $f8 +/* 0624A4 7F02D974 460A3100 */ add.s $f4, $f6, $f10 +/* 0624A8 7F02D978 0FC15FAB */ jal sinf +/* 0624AC 7F02D97C E7A40240 */ swc1 $f4, 0x240($sp) +/* 0624B0 7F02D980 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0624B4 7F02D984 44813000 */ mtc1 $at, $f6 +/* 0624B8 7F02D988 46000207 */ neg.s $f8, $f0 +/* 0624BC 7F02D98C C7A40248 */ lwc1 $f4, 0x248($sp) +/* 0624C0 7F02D990 46064282 */ mul.s $f10, $f8, $f6 +/* 0624C4 7F02D994 460A2200 */ add.s $f8, $f4, $f10 +/* 0624C8 7F02D998 10000012 */ b .L7F02D9E4 +/* 0624CC 7F02D99C E7A80248 */ swc1 $f8, 0x248($sp) +.L7F02D9A0: +/* 0624D0 7F02D9A0 0FC15FA8 */ jal cosf +/* 0624D4 7F02D9A4 C7AC0250 */ lwc1 $f12, 0x250($sp) +/* 0624D8 7F02D9A8 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0624DC 7F02D9AC 44812000 */ mtc1 $at, $f4 +/* 0624E0 7F02D9B0 46000187 */ neg.s $f6, $f0 +/* 0624E4 7F02D9B4 C7A80240 */ lwc1 $f8, 0x240($sp) +/* 0624E8 7F02D9B8 46043282 */ mul.s $f10, $f6, $f4 +/* 0624EC 7F02D9BC C7AC0250 */ lwc1 $f12, 0x250($sp) +/* 0624F0 7F02D9C0 460A4180 */ add.s $f6, $f8, $f10 +/* 0624F4 7F02D9C4 0FC15FAB */ jal sinf +/* 0624F8 7F02D9C8 E7A60240 */ swc1 $f6, 0x240($sp) +/* 0624FC 7F02D9CC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 062500 7F02D9D0 44814000 */ mtc1 $at, $f8 +/* 062504 7F02D9D4 C7A40248 */ lwc1 $f4, 0x248($sp) +/* 062508 7F02D9D8 46080282 */ mul.s $f10, $f0, $f8 +/* 06250C 7F02D9DC 460A2180 */ add.s $f6, $f4, $f10 +/* 062510 7F02D9E0 E7A60248 */ swc1 $f6, 0x248($sp) +.L7F02D9E4: +/* 062514 7F02D9E4 8FA80284 */ lw $t0, 0x284($sp) +.L7F02D9E8: +/* 062518 7F02D9E8 C7A80248 */ lwc1 $f8, 0x248($sp) +/* 06251C 7F02D9EC 8FA90288 */ lw $t1, 0x288($sp) +/* 062520 7F02D9F0 8D050008 */ lw $a1, 8($t0) +/* 062524 7F02D9F4 8D060010 */ lw $a2, 0x10($t0) +/* 062528 7F02D9F8 240A0002 */ li $t2, 2 +/* 06252C 7F02D9FC AFAA0014 */ sw $t2, 0x14($sp) +/* 062530 7F02DA00 E7A80010 */ swc1 $f8, 0x10($sp) +/* 062534 7F02DA04 C7A40244 */ lwc1 $f4, 0x244($sp) +/* 062538 7F02DA08 C52A00AC */ lwc1 $f10, 0xac($t1) +/* 06253C 7F02DA0C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 062540 7F02DA10 44814000 */ mtc1 $at, $f8 +/* 062544 7F02DA14 460A2001 */ sub.s $f0, $f4, $f10 +/* 062548 7F02DA18 44803000 */ mtc1 $zero, $f6 +/* 06254C 7F02DA1C 27A4023C */ addiu $a0, $sp, 0x23c +/* 062550 7F02DA20 8FA70240 */ lw $a3, 0x240($sp) +/* 062554 7F02DA24 E7A00018 */ swc1 $f0, 0x18($sp) +/* 062558 7F02DA28 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 06255C 7F02DA2C E7A80024 */ swc1 $f8, 0x24($sp) +/* 062560 7F02DA30 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 062564 7F02DA34 E7A60020 */ swc1 $f6, 0x20($sp) +/* 062568 7F02DA38 10400003 */ beqz $v0, .L7F02DA48 +/* 06256C 7F02DA3C 8FAB023C */ lw $t3, 0x23c($sp) +/* 062570 7F02DA40 10000006 */ b .L7F02DA5C +/* 062574 7F02DA44 AFAB0238 */ sw $t3, 0x238($sp) +.L7F02DA48: +/* 062578 7F02DA48 8FA20040 */ lw $v0, 0x40($sp) +/* 06257C 7F02DA4C 904C0004 */ lbu $t4, 4($v0) +/* 062580 7F02DA50 258DFFFF */ addiu $t5, $t4, -1 +/* 062584 7F02DA54 A04D0004 */ sb $t5, 4($v0) +/* 062588 7F02DA58 AFA0027C */ sw $zero, 0x27c($sp) +.L7F02DA5C: +/* 06258C 7F02DA5C 8FAE027C */ lw $t6, 0x27c($sp) +/* 062590 7F02DA60 240F0001 */ li $t7, 1 +/* 062594 7F02DA64 27A50240 */ addiu $a1, $sp, 0x240 +/* 062598 7F02DA68 51C001EF */ beql $t6, $zero, .L7F02E228 +/* 06259C 7F02DA6C 8FA2027C */ lw $v0, 0x27c($sp) +/* 0625A0 7F02DA70 AFA00234 */ sw $zero, 0x234($sp) +/* 0625A4 7F02DA74 AFA00230 */ sw $zero, 0x230($sp) +/* 0625A8 7F02DA78 AFAF022C */ sw $t7, 0x22c($sp) +/* 0625AC 7F02DA7C 8FA40288 */ lw $a0, 0x288($sp) +/* 0625B0 7F02DA80 0FC0A4AA */ jal sub_GAME_7F0292A8 +/* 0625B4 7F02DA84 8FA60238 */ lw $a2, 0x238($sp) +/* 0625B8 7F02DA88 AFA2021C */ sw $v0, 0x21c($sp) +/* 0625BC 7F02DA8C 0FC15FA8 */ jal cosf +/* 0625C0 7F02DA90 C7AC024C */ lwc1 $f12, 0x24c($sp) +/* 0625C4 7F02DA94 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 0625C8 7F02DA98 0FC15FAB */ jal sinf +/* 0625CC 7F02DA9C C7AC0250 */ lwc1 $f12, 0x250($sp) +/* 0625D0 7F02DAA0 C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 0625D4 7F02DAA4 C7AC024C */ lwc1 $f12, 0x24c($sp) +/* 0625D8 7F02DAA8 46040282 */ mul.s $f10, $f0, $f4 +/* 0625DC 7F02DAAC 0FC15FAB */ jal sinf +/* 0625E0 7F02DAB0 E7AA0220 */ swc1 $f10, 0x220($sp) +/* 0625E4 7F02DAB4 E7A00224 */ swc1 $f0, 0x224($sp) +/* 0625E8 7F02DAB8 0FC15FA8 */ jal cosf +/* 0625EC 7F02DABC C7AC024C */ lwc1 $f12, 0x24c($sp) +/* 0625F0 7F02DAC0 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 0625F4 7F02DAC4 0FC15FA8 */ jal cosf +/* 0625F8 7F02DAC8 C7AC0250 */ lwc1 $f12, 0x250($sp) +/* 0625FC 7F02DACC C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 062600 7F02DAD0 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 062604 7F02DAD4 44811000 */ mtc1 $at, $f2 +/* 062608 7F02DAD8 46060482 */ mul.s $f18, $f0, $f6 +/* 06260C 7F02DADC C7A80220 */ lwc1 $f8, 0x220($sp) +/* 062610 7F02DAE0 C7AA0240 */ lwc1 $f10, 0x240($sp) +/* 062614 7F02DAE4 C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 062618 7F02DAE8 46024102 */ mul.s $f4, $f8, $f2 +/* 06261C 7F02DAEC C7A80224 */ lwc1 $f8, 0x224($sp) +/* 062620 7F02DAF0 8FA40288 */ lw $a0, 0x288($sp) +/* 062624 7F02DAF4 E7B20228 */ swc1 $f18, 0x228($sp) +/* 062628 7F02DAF8 00002825 */ move $a1, $zero +/* 06262C 7F02DAFC 460A2180 */ add.s $f6, $f4, $f10 +/* 062630 7F02DB00 46024102 */ mul.s $f4, $f8, $f2 +/* 062634 7F02DB04 00000000 */ nop +/* 062638 7F02DB08 46029282 */ mul.s $f10, $f18, $f2 +/* 06263C 7F02DB0C E7A60258 */ swc1 $f6, 0x258($sp) +/* 062640 7F02DB10 C7A60248 */ lwc1 $f6, 0x248($sp) +/* 062644 7F02DB14 460C2380 */ add.s $f14, $f4, $f12 +/* 062648 7F02DB18 46065200 */ add.s $f8, $f10, $f6 +/* 06264C 7F02DB1C E7AE025C */ swc1 $f14, 0x25c($sp) +/* 062650 7F02DB20 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 062654 7F02DB24 E7A80260 */ swc1 $f8, 0x260($sp) +/* 062658 7F02DB28 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 06265C 7F02DB2C 00000000 */ nop +/* 062660 7F02DB30 C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 062664 7F02DB34 C7AE025C */ lwc1 $f14, 0x25c($sp) +/* 062668 7F02DB38 8FB80238 */ lw $t8, 0x238($sp) +/* 06266C 7F02DB3C C7A40260 */ lwc1 $f4, 0x260($sp) +/* 062670 7F02DB40 2419001B */ li $t9, 27 +/* 062674 7F02DB44 AFB90014 */ sw $t9, 0x14($sp) +/* 062678 7F02DB48 27A4023C */ addiu $a0, $sp, 0x23c +/* 06267C 7F02DB4C 8FA50240 */ lw $a1, 0x240($sp) +/* 062680 7F02DB50 8FA60248 */ lw $a2, 0x248($sp) +/* 062684 7F02DB54 8FA70258 */ lw $a3, 0x258($sp) +/* 062688 7F02DB58 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 06268C 7F02DB5C E7AC001C */ swc1 $f12, 0x1c($sp) +/* 062690 7F02DB60 E7AE0020 */ swc1 $f14, 0x20($sp) +/* 062694 7F02DB64 E7AE0024 */ swc1 $f14, 0x24($sp) +/* 062698 7F02DB68 AFB8023C */ sw $t8, 0x23c($sp) +/* 06269C 7F02DB6C 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0626A0 7F02DB70 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0626A4 7F02DB74 14400017 */ bnez $v0, .L7F02DBD4 +/* 0626A8 7F02DB78 27A40240 */ addiu $a0, $sp, 0x240 +/* 0626AC 7F02DB7C 27A50220 */ addiu $a1, $sp, 0x220 +/* 0626B0 7F02DB80 0FC09893 */ jal sub_GAME_7F02624C +/* 0626B4 7F02DB84 27A60258 */ addiu $a2, $sp, 0x258 +/* 0626B8 7F02DB88 3C0141D0 */ li $at, 0x41D00000 # 26.000000 +/* 0626BC 7F02DB8C 44810000 */ mtc1 $at, $f0 +/* 0626C0 7F02DB90 C7A60220 */ lwc1 $f6, 0x220($sp) +/* 0626C4 7F02DB94 C7AA0258 */ lwc1 $f10, 0x258($sp) +/* 0626C8 7F02DB98 C7B20228 */ lwc1 $f18, 0x228($sp) +/* 0626CC 7F02DB9C 46060202 */ mul.s $f8, $f0, $f6 +/* 0626D0 7F02DBA0 C7A60224 */ lwc1 $f6, 0x224($sp) +/* 0626D4 7F02DBA4 C7AE025C */ lwc1 $f14, 0x25c($sp) +/* 0626D8 7F02DBA8 8FA8023C */ lw $t0, 0x23c($sp) +/* 0626DC 7F02DBAC AFA80254 */ sw $t0, 0x254($sp) +/* 0626E0 7F02DBB0 46085101 */ sub.s $f4, $f10, $f8 +/* 0626E4 7F02DBB4 46060282 */ mul.s $f10, $f0, $f6 +/* 0626E8 7F02DBB8 C7A80260 */ lwc1 $f8, 0x260($sp) +/* 0626EC 7F02DBBC E7A40258 */ swc1 $f4, 0x258($sp) +/* 0626F0 7F02DBC0 46120102 */ mul.s $f4, $f0, $f18 +/* 0626F4 7F02DBC4 460A7381 */ sub.s $f14, $f14, $f10 +/* 0626F8 7F02DBC8 46044181 */ sub.s $f6, $f8, $f4 +/* 0626FC 7F02DBCC E7AE025C */ swc1 $f14, 0x25c($sp) +/* 062700 7F02DBD0 E7A60260 */ swc1 $f6, 0x260($sp) +.L7F02DBD4: +/* 062704 7F02DBD4 8FA40288 */ lw $a0, 0x288($sp) +/* 062708 7F02DBD8 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 06270C 7F02DBDC 24050001 */ li $a1, 1 +/* 062710 7F02DBE0 C7AA0258 */ lwc1 $f10, 0x258($sp) +/* 062714 7F02DBE4 C7A80240 */ lwc1 $f8, 0x240($sp) +/* 062718 7F02DBE8 C7A4025C */ lwc1 $f4, 0x25c($sp) +/* 06271C 7F02DBEC C7A60244 */ lwc1 $f6, 0x244($sp) +/* 062720 7F02DBF0 46085081 */ sub.s $f2, $f10, $f8 +/* 062724 7F02DBF4 C7A80248 */ lwc1 $f8, 0x248($sp) +/* 062728 7F02DBF8 C7AA0260 */ lwc1 $f10, 0x260($sp) +/* 06272C 7F02DBFC 46062381 */ sub.s $f14, $f4, $f6 +/* 062730 7F02DC00 46021102 */ mul.s $f4, $f2, $f2 +/* 062734 7F02DC04 8FAA0274 */ lw $t2, 0x274($sp) +/* 062738 7F02DC08 46085481 */ sub.s $f18, $f10, $f8 +/* 06273C 7F02DC0C 460E7182 */ mul.s $f6, $f14, $f14 +/* 062740 7F02DC10 24010019 */ li $at, 25 +/* 062744 7F02DC14 46129202 */ mul.s $f8, $f18, $f18 +/* 062748 7F02DC18 46062280 */ add.s $f10, $f4, $f6 +/* 06274C 7F02DC1C 46085100 */ add.s $f4, $f10, $f8 +/* 062750 7F02DC20 E7A4020C */ swc1 $f4, 0x20c($sp) +/* 062754 7F02DC24 81470080 */ lb $a3, 0x80($t2) +/* 062758 7F02DC28 54E1006F */ bnel $a3, $at, .L7F02DDE8 +/* 06275C 7F02DC2C 24010018 */ li $at, 24 +/* 062760 7F02DC30 46021282 */ mul.s $f10, $f2, $f2 +/* 062764 7F02DC34 3C018005 */ lui $at, %hi(D_80051F60) +/* 062768 7F02DC38 C4261F60 */ lwc1 $f6, %lo(D_80051F60)($at) +/* 06276C 7F02DC3C 460E7202 */ mul.s $f8, $f14, $f14 +/* 062770 7F02DC40 240400CA */ li $a0, 202 +/* 062774 7F02DC44 46085100 */ add.s $f4, $f10, $f8 +/* 062778 7F02DC48 46129282 */ mul.s $f10, $f18, $f18 +/* 06277C 7F02DC4C 460A2200 */ add.s $f8, $f4, $f10 +/* 062780 7F02DC50 4608303C */ c.lt.s $f6, $f8 +/* 062784 7F02DC54 00000000 */ nop +/* 062788 7F02DC58 45000060 */ bc1f .L7F02DDDC +/* 06278C 7F02DC5C 00000000 */ nop +/* 062790 7F02DC60 0FC1481B */ jal create_new_item_instance_of_model +/* 062794 7F02DC64 24050056 */ li $a1, 86 +/* 062798 7F02DC68 1040016E */ beqz $v0, .L7F02E224 +/* 06279C 7F02DC6C AFA20208 */ sw $v0, 0x208($sp) +/* 0627A0 7F02DC70 0FC15FF4 */ jal matrix_4x4_set_identity +/* 0627A4 7F02DC74 27A401C8 */ addiu $a0, $sp, 0x1c8 +/* 0627A8 7F02DC78 C7AC024C */ lwc1 $f12, 0x24c($sp) +/* 0627AC 7F02DC7C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0627B0 7F02DC80 27A5016C */ addiu $a1, $sp, 0x16c +/* 0627B4 7F02DC84 C7AC0250 */ lwc1 $f12, 0x250($sp) +/* 0627B8 7F02DC88 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0627BC 7F02DC8C 27A5012C */ addiu $a1, $sp, 0x12c +/* 0627C0 7F02DC90 27A4012C */ addiu $a0, $sp, 0x12c +/* 0627C4 7F02DC94 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0627C8 7F02DC98 27A5016C */ addiu $a1, $sp, 0x16c +/* 0627CC 7F02DC9C 3C018005 */ lui $at, %hi(D_80051F64) +/* 0627D0 7F02DCA0 C4221F64 */ lwc1 $f2, %lo(D_80051F64)($at) +/* 0627D4 7F02DCA4 C7A40220 */ lwc1 $f4, 0x220($sp) +/* 0627D8 7F02DCA8 C7AA0224 */ lwc1 $f10, 0x224($sp) +/* 0627DC 7F02DCAC C7B20228 */ lwc1 $f18, 0x228($sp) +/* 0627E0 7F02DCB0 46022302 */ mul.s $f12, $f4, $f2 +/* 0627E4 7F02DCB4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0627E8 7F02DCB8 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 0627EC 7F02DCBC 46025382 */ mul.s $f14, $f10, $f2 +/* 0627F0 7F02DCC0 8FAC0284 */ lw $t4, 0x284($sp) +/* 0627F4 7F02DCC4 27A901BC */ addiu $t1, $sp, 0x1bc +/* 0627F8 7F02DCC8 46029402 */ mul.s $f16, $f18, $f2 +/* 0627FC 7F02DCCC 27AB01C8 */ addiu $t3, $sp, 0x1c8 +/* 062800 7F02DCD0 AFAB0014 */ sw $t3, 0x14($sp) +/* 062804 7F02DCD4 46006182 */ mul.s $f6, $f12, $f0 +/* 062808 7F02DCD8 AFA90010 */ sw $t1, 0x10($sp) +/* 06280C 7F02DCDC E7AE01B0 */ swc1 $f14, 0x1b0($sp) +/* 062810 7F02DCE0 46007202 */ mul.s $f8, $f14, $f0 +/* 062814 7F02DCE4 E7B001B4 */ swc1 $f16, 0x1b4($sp) +/* 062818 7F02DCE8 E7AC01AC */ swc1 $f12, 0x1ac($sp) +/* 06281C 7F02DCEC 46008102 */ mul.s $f4, $f16, $f0 +/* 062820 7F02DCF0 E7A601BC */ swc1 $f6, 0x1bc($sp) +/* 062824 7F02DCF4 8FA40208 */ lw $a0, 0x208($sp) +/* 062828 7F02DCF8 27A50240 */ addiu $a1, $sp, 0x240 +/* 06282C 7F02DCFC E7A801C0 */ swc1 $f8, 0x1c0($sp) +/* 062830 7F02DD00 8FA60238 */ lw $a2, 0x238($sp) +/* 062834 7F02DD04 27A7016C */ addiu $a3, $sp, 0x16c +/* 062838 7F02DD08 E7A401C4 */ swc1 $f4, 0x1c4($sp) +/* 06283C 7F02DD0C 0FC17AC3 */ jal sub_GAME_7F05EB0C +/* 062840 7F02DD10 AFAC0018 */ sw $t4, 0x18($sp) +/* 062844 7F02DD14 8FA30208 */ lw $v1, 0x208($sp) +/* 062848 7F02DD18 8C6D0064 */ lw $t5, 0x64($v1) +/* 06284C 7F02DD1C 31AE0080 */ andi $t6, $t5, 0x80 +/* 062850 7F02DD20 51C00141 */ beql $t6, $zero, .L7F02E228 +/* 062854 7F02DD24 8FA2027C */ lw $v0, 0x27c($sp) +/* 062858 7F02DD28 8C62006C */ lw $v0, 0x6c($v1) +/* 06285C 7F02DD2C 2419FFFF */ li $t9, -1 +/* 062860 7F02DD30 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 062864 7F02DD34 8C4F0000 */ lw $t7, ($v0) +/* 062868 7F02DD38 24050001 */ li $a1, 1 +/* 06286C 7F02DD3C 35F80080 */ ori $t8, $t7, 0x80 +/* 062870 7F02DD40 AC580000 */ sw $t8, ($v0) +/* 062874 7F02DD44 8C62006C */ lw $v0, 0x6c($v1) +/* 062878 7F02DD48 A4790082 */ sh $t9, 0x82($v1) +/* 06287C 7F02DD4C 8C480000 */ lw $t0, ($v0) +/* 062880 7F02DD50 350A0020 */ ori $t2, $t0, 0x20 +/* 062884 7F02DD54 AC4A0000 */ sw $t2, ($v0) +/* 062888 7F02DD58 8C69006C */ lw $t1, 0x6c($v1) +/* 06288C 7F02DD5C C46A005C */ lwc1 $f10, 0x5c($v1) +/* 062890 7F02DD60 E52A00B0 */ swc1 $f10, 0xb0($t1) +/* 062894 7F02DD64 8C62006C */ lw $v0, 0x6c($v1) +/* 062898 7F02DD68 C4460008 */ lwc1 $f6, 8($v0) +/* 06289C 7F02DD6C E44600B4 */ swc1 $f6, 0xb4($v0) +/* 0628A0 7F02DD70 8C6B006C */ lw $t3, 0x6c($v1) +/* 0628A4 7F02DD74 C7A801AC */ lwc1 $f8, 0x1ac($sp) +/* 0628A8 7F02DD78 E5680010 */ swc1 $f8, 0x10($t3) +/* 0628AC 7F02DD7C 8C6C006C */ lw $t4, 0x6c($v1) +/* 0628B0 7F02DD80 C7A401B0 */ lwc1 $f4, 0x1b0($sp) +/* 0628B4 7F02DD84 E5840014 */ swc1 $f4, 0x14($t4) +/* 0628B8 7F02DD88 8C6D006C */ lw $t5, 0x6c($v1) +/* 0628BC 7F02DD8C C7AA01B4 */ lwc1 $f10, 0x1b4($sp) +/* 0628C0 7F02DD90 E5AA0018 */ swc1 $f10, 0x18($t5) +/* 0628C4 7F02DD94 8C62006C */ lw $v0, 0x6c($v1) +/* 0628C8 7F02DD98 8C4E0098 */ lw $t6, 0x98($v0) +/* 0628CC 7F02DD9C 24460098 */ addiu $a2, $v0, 0x98 +/* 0628D0 7F02DDA0 55C00006 */ bnezl $t6, .L7F02DDBC +/* 0628D4 7F02DDA4 8C4F009C */ lw $t7, 0x9c($v0) +/* 0628D8 7F02DDA8 0C002382 */ jal play_sfx_a1 +/* 0628DC 7F02DDAC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0628E0 7F02DDB0 1000011D */ b .L7F02E228 +/* 0628E4 7F02DDB4 8FA2027C */ lw $v0, 0x27c($sp) +/* 0628E8 7F02DDB8 8C4F009C */ lw $t7, 0x9c($v0) +.L7F02DDBC: +/* 0628EC 7F02DDBC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0628F0 7F02DDC0 24050001 */ li $a1, 1 +/* 0628F4 7F02DDC4 15E00117 */ bnez $t7, .L7F02E224 +/* 0628F8 7F02DDC8 2446009C */ addiu $a2, $v0, 0x9c +/* 0628FC 7F02DDCC 0C002382 */ jal play_sfx_a1 +/* 062900 7F02DDD0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 062904 7F02DDD4 10000114 */ b .L7F02E228 +/* 062908 7F02DDD8 8FA2027C */ lw $v0, 0x27c($sp) +.L7F02DDDC: +/* 06290C 7F02DDDC 10000111 */ b .L7F02E224 +/* 062910 7F02DDE0 AFA0027C */ sw $zero, 0x27c($sp) +/* 062914 7F02DDE4 24010018 */ li $at, 24 +.L7F02DDE8: +/* 062918 7F02DDE8 14E10048 */ bne $a3, $at, .L7F02DF0C +/* 06291C 7F02DDEC 8FB80044 */ lw $t8, 0x44($sp) +/* 062920 7F02DDF0 46021202 */ mul.s $f8, $f2, $f2 +/* 062924 7F02DDF4 3C018005 */ lui $at, %hi(D_80051F68) +/* 062928 7F02DDF8 C4261F68 */ lwc1 $f6, %lo(D_80051F68)($at) +/* 06292C 7F02DDFC 460E7102 */ mul.s $f4, $f14, $f14 +/* 062930 7F02DE00 240400CB */ li $a0, 203 +/* 062934 7F02DE04 46044280 */ add.s $f10, $f8, $f4 +/* 062938 7F02DE08 46129202 */ mul.s $f8, $f18, $f18 +/* 06293C 7F02DE0C 46085100 */ add.s $f4, $f10, $f8 +/* 062940 7F02DE10 4604303C */ c.lt.s $f6, $f4 +/* 062944 7F02DE14 00000000 */ nop +/* 062948 7F02DE18 4500003A */ bc1f .L7F02DF04 +/* 06294C 7F02DE1C 00000000 */ nop +/* 062950 7F02DE20 0FC1481B */ jal create_new_item_instance_of_model +/* 062954 7F02DE24 24050057 */ li $a1, 87 +/* 062958 7F02DE28 104000FE */ beqz $v0, .L7F02E224 +/* 06295C 7F02DE2C AFA20128 */ sw $v0, 0x128($sp) +/* 062960 7F02DE30 0FC15FF4 */ jal matrix_4x4_set_identity +/* 062964 7F02DE34 27A400E8 */ addiu $a0, $sp, 0xe8 +/* 062968 7F02DE38 3C018005 */ lui $at, %hi(D_80051F6C) +/* 06296C 7F02DE3C C4201F6C */ lwc1 $f0, %lo(D_80051F6C)($at) +/* 062970 7F02DE40 C7AA0220 */ lwc1 $f10, 0x220($sp) +/* 062974 7F02DE44 C7A60224 */ lwc1 $f6, 0x224($sp) +/* 062978 7F02DE48 C7B20228 */ lwc1 $f18, 0x228($sp) +/* 06297C 7F02DE4C 46005202 */ mul.s $f8, $f10, $f0 +/* 062980 7F02DE50 C7AC024C */ lwc1 $f12, 0x24c($sp) +/* 062984 7F02DE54 27A5009C */ addiu $a1, $sp, 0x9c +/* 062988 7F02DE58 46003102 */ mul.s $f4, $f6, $f0 +/* 06298C 7F02DE5C 00000000 */ nop +/* 062990 7F02DE60 46009282 */ mul.s $f10, $f18, $f0 +/* 062994 7F02DE64 E7A800DC */ swc1 $f8, 0xdc($sp) +/* 062998 7F02DE68 E7A400E0 */ swc1 $f4, 0xe0($sp) +/* 06299C 7F02DE6C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0629A0 7F02DE70 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 0629A4 7F02DE74 C7AC0250 */ lwc1 $f12, 0x250($sp) +/* 0629A8 7F02DE78 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0629AC 7F02DE7C 27A5005C */ addiu $a1, $sp, 0x5c +/* 0629B0 7F02DE80 27A4005C */ addiu $a0, $sp, 0x5c +/* 0629B4 7F02DE84 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0629B8 7F02DE88 27A5009C */ addiu $a1, $sp, 0x9c +/* 0629BC 7F02DE8C 8FA40128 */ lw $a0, 0x128($sp) +/* 0629C0 7F02DE90 241800B4 */ li $t8, 180 +/* 0629C4 7F02DE94 27B900DC */ addiu $t9, $sp, 0xdc +/* 0629C8 7F02DE98 A4980082 */ sh $t8, 0x82($a0) +/* 0629CC 7F02DE9C 8FAA0284 */ lw $t2, 0x284($sp) +/* 0629D0 7F02DEA0 27A800E8 */ addiu $t0, $sp, 0xe8 +/* 0629D4 7F02DEA4 AFA80014 */ sw $t0, 0x14($sp) +/* 0629D8 7F02DEA8 AFB90010 */ sw $t9, 0x10($sp) +/* 0629DC 7F02DEAC 8FA60238 */ lw $a2, 0x238($sp) +/* 0629E0 7F02DEB0 27A50240 */ addiu $a1, $sp, 0x240 +/* 0629E4 7F02DEB4 27A7009C */ addiu $a3, $sp, 0x9c +/* 0629E8 7F02DEB8 0FC17AC3 */ jal sub_GAME_7F05EB0C +/* 0629EC 7F02DEBC AFAA0018 */ sw $t2, 0x18($sp) +/* 0629F0 7F02DEC0 8FA20128 */ lw $v0, 0x128($sp) +/* 0629F4 7F02DEC4 3C018005 */ lui $at, %hi(D_80051F70) +/* 0629F8 7F02DEC8 8C490064 */ lw $t1, 0x64($v0) +/* 0629FC 7F02DECC 312B0080 */ andi $t3, $t1, 0x80 +/* 062A00 7F02DED0 516000D5 */ beql $t3, $zero, .L7F02E228 +/* 062A04 7F02DED4 8FA2027C */ lw $v0, 0x27c($sp) +/* 062A08 7F02DED8 C4281F70 */ lwc1 $f8, %lo(D_80051F70)($at) +/* 062A0C 7F02DEDC 8C4C006C */ lw $t4, 0x6c($v0) +/* 062A10 7F02DEE0 3C018005 */ lui $at, %hi(D_80051F74) +/* 062A14 7F02DEE4 240E003C */ li $t6, 60 +/* 062A18 7F02DEE8 E588008C */ swc1 $f8, 0x8c($t4) +/* 062A1C 7F02DEEC 8C4D006C */ lw $t5, 0x6c($v0) +/* 062A20 7F02DEF0 C4261F74 */ lwc1 $f6, %lo(D_80051F74)($at) +/* 062A24 7F02DEF4 E5A60094 */ swc1 $f6, 0x94($t5) +/* 062A28 7F02DEF8 8C4F006C */ lw $t7, 0x6c($v0) +/* 062A2C 7F02DEFC 100000C9 */ b .L7F02E224 +/* 062A30 7F02DF00 ADEE00BC */ sw $t6, 0xbc($t7) +.L7F02DF04: +/* 062A34 7F02DF04 100000C7 */ b .L7F02E224 +/* 062A38 7F02DF08 AFA0027C */ sw $zero, 0x27c($sp) +.L7F02DF0C: +/* 062A3C 7F02DF0C 13000036 */ beqz $t8, .L7F02DFE8 +/* 062A40 7F02DF10 8FB9021C */ lw $t9, 0x21c($sp) +/* 062A44 7F02DF14 13200034 */ beqz $t9, .L7F02DFE8 +/* 062A48 7F02DF18 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 062A4C 7F02DF1C 8FA80270 */ lw $t0, 0x270($sp) +/* 062A50 7F02DF20 C7AA0240 */ lwc1 $f10, 0x240($sp) +/* 062A54 7F02DF24 44811000 */ mtc1 $at, $f2 +/* 062A58 7F02DF28 C5040008 */ lwc1 $f4, 8($t0) +/* 062A5C 7F02DF2C C7A60220 */ lwc1 $f6, 0x220($sp) +/* 062A60 7F02DF30 8FA40288 */ lw $a0, 0x288($sp) +/* 062A64 7F02DF34 460A2201 */ sub.s $f8, $f4, $f10 +/* 062A68 7F02DF38 46023102 */ mul.s $f4, $f6, $f2 +/* 062A6C 7F02DF3C C7A60244 */ lwc1 $f6, 0x244($sp) +/* 062A70 7F02DF40 C50A000C */ lwc1 $f10, 0xc($t0) +/* 062A74 7F02DF44 27A50234 */ addiu $a1, $sp, 0x234 +/* 062A78 7F02DF48 46044001 */ sub.s $f0, $f8, $f4 +/* 062A7C 7F02DF4C C7A40224 */ lwc1 $f4, 0x224($sp) +/* 062A80 7F02DF50 46065201 */ sub.s $f8, $f10, $f6 +/* 062A84 7F02DF54 46022282 */ mul.s $f10, $f4, $f2 +/* 062A88 7F02DF58 C7A40248 */ lwc1 $f4, 0x248($sp) +/* 062A8C 7F02DF5C C5060010 */ lwc1 $f6, 0x10($t0) +/* 062A90 7F02DF60 460A4301 */ sub.s $f12, $f8, $f10 +/* 062A94 7F02DF64 C7AA0228 */ lwc1 $f10, 0x228($sp) +/* 062A98 7F02DF68 46043201 */ sub.s $f8, $f6, $f4 +/* 062A9C 7F02DF6C 46025182 */ mul.s $f6, $f10, $f2 +/* 062AA0 7F02DF70 C7A4020C */ lwc1 $f4, 0x20c($sp) +/* 062AA4 7F02DF74 46000282 */ mul.s $f10, $f0, $f0 +/* 062AA8 7F02DF78 46064401 */ sub.s $f16, $f8, $f6 +/* 062AAC 7F02DF7C 460C6202 */ mul.s $f8, $f12, $f12 +/* 062AB0 7F02DF80 46085180 */ add.s $f6, $f10, $f8 +/* 062AB4 7F02DF84 46108282 */ mul.s $f10, $f16, $f16 +/* 062AB8 7F02DF88 460A3200 */ add.s $f8, $f6, $f10 +/* 062ABC 7F02DF8C 4604403E */ c.le.s $f8, $f4 +/* 062AC0 7F02DF90 00000000 */ nop +/* 062AC4 7F02DF94 45020020 */ bc1fl .L7F02E018 +/* 062AC8 7F02DF98 8FA80230 */ lw $t0, 0x230($sp) +/* 062ACC 7F02DF9C 0FC0B4B9 */ jal sub_GAME_7F02D2E4 +/* 062AD0 7F02DFA0 27A60230 */ addiu $a2, $sp, 0x230 +/* 062AD4 7F02DFA4 8FAA0230 */ lw $t2, 0x230($sp) +/* 062AD8 7F02DFA8 8FAB0234 */ lw $t3, 0x234($sp) +/* 062ADC 7F02DFAC 8FAC0288 */ lw $t4, 0x288($sp) +/* 062AE0 7F02DFB0 2D490001 */ sltiu $t1, $t2, 1 +/* 062AE4 7F02DFB4 11600017 */ beqz $t3, .L7F02E014 +/* 062AE8 7F02DFB8 AFA9022C */ sw $t1, 0x22c($sp) +/* 062AEC 7F02DFBC 81820007 */ lb $v0, 7($t4) +/* 062AF0 7F02DFC0 24010008 */ li $at, 8 +/* 062AF4 7F02DFC4 3C0D8005 */ lui $t5, %hi(global_timer) +/* 062AF8 7F02DFC8 10410004 */ beq $v0, $at, .L7F02DFDC +/* 062AFC 7F02DFCC 8FAE0288 */ lw $t6, 0x288($sp) +/* 062B00 7F02DFD0 2401000A */ li $at, 10 +/* 062B04 7F02DFD4 54410010 */ bnel $v0, $at, .L7F02E018 +/* 062B08 7F02DFD8 8FA80230 */ lw $t0, 0x230($sp) +.L7F02DFDC: +/* 062B0C 7F02DFDC 8DAD837C */ lw $t5, %lo(global_timer)($t5) +/* 062B10 7F02DFE0 1000000C */ b .L7F02E014 +/* 062B14 7F02DFE4 ADCD0048 */ sw $t5, 0x48($t6) +.L7F02DFE8: +/* 062B18 7F02DFE8 8FAF0288 */ lw $t7, 0x288($sp) +/* 062B1C 7F02DFEC 24010008 */ li $at, 8 +/* 062B20 7F02DFF0 3C188005 */ lui $t8, %hi(global_timer) +/* 062B24 7F02DFF4 81E20007 */ lb $v0, 7($t7) +/* 062B28 7F02DFF8 8FB90288 */ lw $t9, 0x288($sp) +/* 062B2C 7F02DFFC 10410003 */ beq $v0, $at, .L7F02E00C +/* 062B30 7F02E000 2401000A */ li $at, 10 +/* 062B34 7F02E004 54410004 */ bnel $v0, $at, .L7F02E018 +/* 062B38 7F02E008 8FA80230 */ lw $t0, 0x230($sp) +.L7F02E00C: +/* 062B3C 7F02E00C 8F18837C */ lw $t8, %lo(global_timer)($t8) +/* 062B40 7F02E010 AF380048 */ sw $t8, 0x48($t9) +.L7F02E014: +/* 062B44 7F02E014 8FA80230 */ lw $t0, 0x230($sp) +.L7F02E018: +/* 062B48 7F02E018 8FA50270 */ lw $a1, 0x270($sp) +/* 062B4C 7F02E01C 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007BA04) +/* 062B50 7F02E020 1100000F */ beqz $t0, .L7F02E060 +/* 062B54 7F02E024 00000000 */ nop +/* 062B58 7F02E028 C4A60008 */ lwc1 $f6, 8($a1) +/* 062B5C 7F02E02C 8FAB0274 */ lw $t3, 0x274($sp) +/* 062B60 7F02E030 2406FFFF */ li $a2, -1 +/* 062B64 7F02E034 E7A60258 */ swc1 $f6, 0x258($sp) +/* 062B68 7F02E038 C4AA000C */ lwc1 $f10, 0xc($a1) +/* 062B6C 7F02E03C E7AA025C */ swc1 $f10, 0x25c($sp) +/* 062B70 7F02E040 C4A40010 */ lwc1 $f4, 0x10($a1) +/* 062B74 7F02E044 E7A40260 */ swc1 $f4, 0x260($sp) +/* 062B78 7F02E048 8CA90014 */ lw $t1, 0x14($a1) +/* 062B7C 7F02E04C AFA90254 */ sw $t1, 0x254($sp) +/* 062B80 7F02E050 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 062B84 7F02E054 81640080 */ lb $a0, 0x80($t3) +/* 062B88 7F02E058 10000012 */ b .L7F02E0A4 +/* 062B8C 7F02E05C 8FAC022C */ lw $t4, 0x22c($sp) +.L7F02E060: +/* 062B90 7F02E060 8C63BA04 */ lw $v1, %lo(dword_CODE_bss_8007BA04)($v1) +/* 062B94 7F02E064 C7A8020C */ lwc1 $f8, 0x20c($sp) +/* 062B98 7F02E068 10600006 */ beqz $v1, .L7F02E084 +/* 062B9C 7F02E06C 00000000 */ nop +/* 062BA0 7F02E070 90620000 */ lbu $v0, ($v1) +/* 062BA4 7F02E074 24010003 */ li $at, 3 +/* 062BA8 7F02E078 10410009 */ beq $v0, $at, .L7F02E0A0 +/* 062BAC 7F02E07C 24010006 */ li $at, 6 +/* 062BB0 7F02E080 10410007 */ beq $v0, $at, .L7F02E0A0 +.L7F02E084: +/* 062BB4 7F02E084 3C018005 */ lui $at, %hi(D_80051F78) +/* 062BB8 7F02E088 C4261F78 */ lwc1 $f6, %lo(D_80051F78)($at) +/* 062BBC 7F02E08C 4606403C */ c.lt.s $f8, $f6 +/* 062BC0 7F02E090 00000000 */ nop +/* 062BC4 7F02E094 45020003 */ bc1fl .L7F02E0A4 +/* 062BC8 7F02E098 8FAC022C */ lw $t4, 0x22c($sp) +/* 062BCC 7F02E09C AFA0022C */ sw $zero, 0x22c($sp) +.L7F02E0A0: +/* 062BD0 7F02E0A0 8FAC022C */ lw $t4, 0x22c($sp) +.L7F02E0A4: +/* 062BD4 7F02E0A4 8FAD0254 */ lw $t5, 0x254($sp) +/* 062BD8 7F02E0A8 5180003D */ beql $t4, $zero, .L7F02E1A0 +/* 062BDC 7F02E0AC 8FAC0264 */ lw $t4, 0x264($sp) +/* 062BE0 7F02E0B0 11A00005 */ beqz $t5, .L7F02E0C8 +/* 062BE4 7F02E0B4 27A40258 */ addiu $a0, $sp, 0x258 +/* 062BE8 7F02E0B8 24050001 */ li $a1, 1 +/* 062BEC 7F02E0BC 3C0641D0 */ lui $a2, 0x41d0 +/* 062BF0 7F02E0C0 0FC28F87 */ jal sub_GAME_7F0A3E1C +/* 062BF4 7F02E0C4 91A70003 */ lbu $a3, 3($t5) +.L7F02E0C8: +/* 062BF8 7F02E0C8 3C058008 */ lui $a1, %hi(dword_CODE_bss_8007BA04) +/* 062BFC 7F02E0CC 8CA5BA04 */ lw $a1, %lo(dword_CODE_bss_8007BA04)($a1) +/* 062C00 7F02E0D0 8FAE0274 */ lw $t6, 0x274($sp) +/* 062C04 7F02E0D4 2406FFFF */ li $a2, -1 +/* 062C08 7F02E0D8 10A0002D */ beqz $a1, .L7F02E190 +/* 062C0C 7F02E0DC 81C70080 */ lb $a3, 0x80($t6) +/* 062C10 7F02E0E0 00E02025 */ move $a0, $a3 +/* 062C14 7F02E0E4 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 062C18 7F02E0E8 2406FFFF */ li $a2, -1 +/* 062C1C 7F02E0EC 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007BA04) +/* 062C20 7F02E0F0 8C63BA04 */ lw $v1, %lo(dword_CODE_bss_8007BA04)($v1) +/* 062C24 7F02E0F4 24010003 */ li $at, 3 +/* 062C28 7F02E0F8 8FAF0288 */ lw $t7, 0x288($sp) +/* 062C2C 7F02E0FC 90620000 */ lbu $v0, ($v1) +/* 062C30 7F02E100 5441000F */ bnel $v0, $at, .L7F02E140 +/* 062C34 7F02E104 24010001 */ li $at, 1 +/* 062C38 7F02E108 8DF80014 */ lw $t8, 0x14($t7) +/* 062C3C 7F02E10C 2405000F */ li $a1, 15 +/* 062C40 7F02E110 8FA80274 */ lw $t0, 0x274($sp) +/* 062C44 7F02E114 33190040 */ andi $t9, $t8, 0x40 +/* 062C48 7F02E118 53200021 */ beql $t9, $zero, .L7F02E1A0 +/* 062C4C 7F02E11C 8FAC0264 */ lw $t4, 0x264($sp) +/* 062C50 7F02E120 8C640004 */ lw $a0, 4($v1) +/* 062C54 7F02E124 81070080 */ lb $a3, 0x80($t0) +/* 062C58 7F02E128 AFA00010 */ sw $zero, 0x10($sp) +/* 062C5C 7F02E12C 0FC09C9F */ jal handles_shot_actors +/* 062C60 7F02E130 27A60220 */ addiu $a2, $sp, 0x220 +/* 062C64 7F02E134 1000001A */ b .L7F02E1A0 +/* 062C68 7F02E138 8FAC0264 */ lw $t4, 0x264($sp) +/* 062C6C 7F02E13C 24010001 */ li $at, 1 +.L7F02E140: +/* 062C70 7F02E140 10410004 */ beq $v0, $at, .L7F02E154 +/* 062C74 7F02E144 8FA90274 */ lw $t1, 0x274($sp) +/* 062C78 7F02E148 24010004 */ li $at, 4 +/* 062C7C 7F02E14C 54410014 */ bnel $v0, $at, .L7F02E1A0 +/* 062C80 7F02E150 8FAC0264 */ lw $t4, 0x264($sp) +.L7F02E154: +/* 062C84 7F02E154 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 062C88 7F02E158 81240080 */ lb $a0, 0x80($t1) +/* 062C8C 7F02E15C 0FC26C54 */ jal get_cur_playernum +/* 062C90 7F02E160 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 062C94 7F02E164 3C0B8008 */ lui $t3, %hi(dword_CODE_bss_8007BA04) +/* 062C98 7F02E168 8D6BBA04 */ lw $t3, %lo(dword_CODE_bss_8007BA04)($t3) +/* 062C9C 7F02E16C 8FAA0274 */ lw $t2, 0x274($sp) +/* 062CA0 7F02E170 8FA5004C */ lw $a1, 0x4c($sp) +/* 062CA4 7F02E174 8D640004 */ lw $a0, 4($t3) +/* 062CA8 7F02E178 81470080 */ lb $a3, 0x80($t2) +/* 062CAC 7F02E17C AFA20010 */ sw $v0, 0x10($sp) +/* 062CB0 7F02E180 0FC13833 */ jal sub_GAME_7F04E0CC +/* 062CB4 7F02E184 27A60258 */ addiu $a2, $sp, 0x258 +/* 062CB8 7F02E188 10000005 */ b .L7F02E1A0 +/* 062CBC 7F02E18C 8FAC0264 */ lw $t4, 0x264($sp) +.L7F02E190: +/* 062CC0 7F02E190 00E02025 */ move $a0, $a3 +/* 062CC4 7F02E194 0FC191DD */ jal recall_joy2_hits_edit_flag +/* 062CC8 7F02E198 27A50258 */ addiu $a1, $sp, 0x258 +/* 062CCC 7F02E19C 8FAC0264 */ lw $t4, 0x264($sp) +.L7F02E1A0: +/* 062CD0 7F02E1A0 8FAD0274 */ lw $t5, 0x274($sp) +/* 062CD4 7F02E1A4 51800010 */ beql $t4, $zero, .L7F02E1E8 +/* 062CD8 7F02E1A8 8FB90264 */ lw $t9, 0x264($sp) +/* 062CDC 7F02E1AC 81AE0080 */ lb $t6, 0x80($t5) +/* 062CE0 7F02E1B0 25CFFFFC */ addiu $t7, $t6, -4 +/* 062CE4 7F02E1B4 2DE10013 */ sltiu $at, $t7, 0x13 +/* 062CE8 7F02E1B8 10200009 */ beqz $at, .L7F02E1E0 +/* 062CEC 7F02E1BC 000F7880 */ sll $t7, $t7, 2 +/* 062CF0 7F02E1C0 3C018005 */ lui $at, %hi(jpt_80051F7C) +/* 062CF4 7F02E1C4 002F0821 */ addu $at, $at, $t7 +/* 062CF8 7F02E1C8 8C2F1F7C */ lw $t7, %lo(jpt_80051F7C)($at) +/* 062CFC 7F02E1CC 01E00008 */ jr $t7 +/* 062D00 7F02E1D0 00000000 */ nop +weapon_guard_fires_bullet_projectile: +/* 062D04 7F02E1D4 24180001 */ li $t8, 1 +/* 062D08 7F02E1D8 10000002 */ b .L7F02E1E4 +/* 062D0C 7F02E1DC AFB80264 */ sw $t8, 0x264($sp) +weapon_guard_fires_bullet_no_projectile: +.L7F02E1E0: +/* 062D10 7F02E1E0 AFA00264 */ sw $zero, 0x264($sp) +.L7F02E1E4: +/* 062D14 7F02E1E4 8FB90264 */ lw $t9, 0x264($sp) +.L7F02E1E8: +/* 062D18 7F02E1E8 8FA9028C */ lw $t1, 0x28c($sp) +/* 062D1C 7F02E1EC 8FA80288 */ lw $t0, 0x288($sp) +/* 062D20 7F02E1F0 1320000C */ beqz $t9, .L7F02E224 +/* 062D24 7F02E1F4 00095880 */ sll $t3, $t1, 2 +/* 062D28 7F02E1F8 01695823 */ subu $t3, $t3, $t1 +/* 062D2C 7F02E1FC 000B5880 */ sll $t3, $t3, 2 +/* 062D30 7F02E200 01695823 */ subu $t3, $t3, $t1 +/* 062D34 7F02E204 8FAA0274 */ lw $t2, 0x274($sp) +/* 062D38 7F02E208 000B5880 */ sll $t3, $t3, 2 +/* 062D3C 7F02E20C 010B2021 */ addu $a0, $t0, $t3 +/* 062D40 7F02E210 24840180 */ addiu $a0, $a0, 0x180 +/* 062D44 7F02E214 27A60240 */ addiu $a2, $sp, 0x240 +/* 062D48 7F02E218 27A70258 */ addiu $a3, $sp, 0x258 +/* 062D4C 7F02E21C 0FC18652 */ jal sub_GAME_7F061948 +/* 062D50 7F02E220 81450080 */ lb $a1, 0x80($t2) +.L7F02E224: +/* 062D54 7F02E224 8FA2027C */ lw $v0, 0x27c($sp) +.L7F02E228: +/* 062D58 7F02E228 8FA40288 */ lw $a0, 0x288($sp) +/* 062D5C 7F02E22C 0002302B */ sltu $a2, $zero, $v0 +/* 062D60 7F02E230 14C00004 */ bnez $a2, .L7F02E244 +/* 062D64 7F02E234 00000000 */ nop +/* 062D68 7F02E238 8FA60278 */ lw $a2, 0x278($sp) +/* 062D6C 7F02E23C 0006682B */ sltu $t5, $zero, $a2 +/* 062D70 7F02E240 01A03025 */ move $a2, $t5 +.L7F02E244: +/* 062D74 7F02E244 0FC0AFF9 */ jal sub_GAME_7F02BFE4 +/* 062D78 7F02E248 8FA5028C */ lw $a1, 0x28c($sp) +.L7F02E24C: +/* 062D7C 7F02E24C 8FA40288 */ lw $a0, 0x288($sp) +/* 062D80 7F02E250 8FA5028C */ lw $a1, 0x28c($sp) +/* 062D84 7F02E254 0FC0B446 */ jal sub_GAME_7F02D118 +/* 062D88 7F02E258 8FA6027C */ lw $a2, 0x27c($sp) +/* 062D8C 7F02E25C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F02E260: +/* 062D90 7F02E260 27BD0288 */ addiu $sp, $sp, 0x288 +/* 062D94 7F02E264 03E00008 */ jr $ra +/* 062D98 7F02E268 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02E26C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02E26C +/* 062D9C 7F02E26C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 062DA0 7F02E270 AFBF0014 */ sw $ra, 0x14($sp) +/* 062DA4 7F02E274 948E0012 */ lhu $t6, 0x12($a0) +/* 062DA8 7F02E278 00002825 */ move $a1, $zero +/* 062DAC 7F02E27C 31CFFF7F */ andi $t7, $t6, 0xff7f +/* 062DB0 7F02E280 31E2FFFF */ andi $v0, $t7, 0xffff +/* 062DB4 7F02E284 30580008 */ andi $t8, $v0, 8 +/* 062DB8 7F02E288 13000008 */ beqz $t8, .L7F02E2AC +/* 062DBC 7F02E28C A48F0012 */ sh $t7, 0x12($a0) +/* 062DC0 7F02E290 0FC0B5CD */ jal sub_GAME_7F02D734 +/* 062DC4 7F02E294 AFA40018 */ sw $a0, 0x18($sp) +/* 062DC8 7F02E298 8FA40018 */ lw $a0, 0x18($sp) +/* 062DCC 7F02E29C 94990012 */ lhu $t9, 0x12($a0) +/* 062DD0 7F02E2A0 3328FFF7 */ andi $t0, $t9, 0xfff7 +/* 062DD4 7F02E2A4 3102FFFF */ andi $v0, $t0, 0xffff +/* 062DD8 7F02E2A8 A4880012 */ sh $t0, 0x12($a0) +.L7F02E2AC: +/* 062DDC 7F02E2AC 30490004 */ andi $t1, $v0, 4 +/* 062DE0 7F02E2B0 11200007 */ beqz $t1, .L7F02E2D0 +/* 062DE4 7F02E2B4 24050001 */ li $a1, 1 +/* 062DE8 7F02E2B8 0FC0B5CD */ jal sub_GAME_7F02D734 +/* 062DEC 7F02E2BC AFA40018 */ sw $a0, 0x18($sp) +/* 062DF0 7F02E2C0 8FA40018 */ lw $a0, 0x18($sp) +/* 062DF4 7F02E2C4 948A0012 */ lhu $t2, 0x12($a0) +/* 062DF8 7F02E2C8 314BFFFB */ andi $t3, $t2, 0xfffb +/* 062DFC 7F02E2CC A48B0012 */ sh $t3, 0x12($a0) +.L7F02E2D0: +/* 062E00 7F02E2D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 062E04 7F02E2D4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 062E08 7F02E2D8 03E00008 */ jr $ra +/* 062E0C 7F02E2DC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02E2E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02E2E0 +/* 062E10 7F02E2E0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 062E14 7F02E2E4 AFBF001C */ sw $ra, 0x1c($sp) +/* 062E18 7F02E2E8 8C82002C */ lw $v0, 0x2c($a0) +/* 062E1C 7F02E2EC 3C0E8003 */ lui $t6, %hi(D_80030108) +/* 062E20 7F02E2F0 25CE0108 */ addiu $t6, %lo(D_80030108) # addiu $t6, $t6, 0x108 +/* 062E24 7F02E2F4 11C20004 */ beq $t6, $v0, .L7F02E308 +/* 062E28 7F02E2F8 3C0F8003 */ lui $t7, %hi(D_80030150) +/* 062E2C 7F02E2FC 25EF0150 */ addiu $t7, %lo(D_80030150) # addiu $t7, $t7, 0x150 +/* 062E30 7F02E300 55E20029 */ bnel $t7, $v0, .L7F02E3A8 +/* 062E34 7F02E304 00001025 */ move $v0, $zero +.L7F02E308: +/* 062E38 7F02E308 8C82001C */ lw $v0, 0x1c($a0) +/* 062E3C 7F02E30C 3C088003 */ lui $t0, %hi(D_800300C0) +/* 062E40 7F02E310 24190002 */ li $t9, 2 +/* 062E44 7F02E314 80580024 */ lb $t8, 0x24($v0) +/* 062E48 7F02E318 250800C0 */ addiu $t0, %lo(D_800300C0) # addiu $t0, $t0, 0xc0 +/* 062E4C 7F02E31C 3C053F33 */ lui $a1, (0x3F333333 >> 16) # lui $a1, 0x3f33 +/* 062E50 7F02E320 AFB80024 */ sw $t8, 0x24($sp) +/* 062E54 7F02E324 A0990030 */ sb $t9, 0x30($a0) +/* 062E58 7F02E328 AC88002C */ sw $t0, 0x2c($a0) +/* 062E5C 7F02E32C A0800008 */ sb $zero, 8($a0) +/* 062E60 7F02E330 3C063F8F */ lui $a2, (0x3F8F5C29 >> 16) # lui $a2, 0x3f8f +/* 062E64 7F02E334 34C65C29 */ ori $a2, (0x3F8F5C29 & 0xFFFF) # ori $a2, $a2, 0x5c29 +/* 062E68 7F02E338 34A53333 */ ori $a1, (0x3F333333 & 0xFFFF) # ori $a1, $a1, 0x3333 +/* 062E6C 7F02E33C 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 062E70 7F02E340 AFA2002C */ sw $v0, 0x2c($sp) +/* 062E74 7F02E344 3C0141B0 */ li $at, 0x41B00000 # 22.000000 +/* 062E78 7F02E348 44812000 */ mtc1 $at, $f4 +/* 062E7C 7F02E34C 3C058003 */ lui $a1, %hi(D_800300C0) +/* 062E80 7F02E350 3C078003 */ lui $a3, %hi(D_800300C0+0x1C) +/* 062E84 7F02E354 8CE700DC */ lw $a3, %lo(D_800300C0+0x1C)($a3) +/* 062E88 7F02E358 8CA500C0 */ lw $a1, %lo(D_800300C0)($a1) +/* 062E8C 7F02E35C 8FA4002C */ lw $a0, 0x2c($sp) +/* 062E90 7F02E360 8FA60024 */ lw $a2, 0x24($sp) +/* 062E94 7F02E364 E7A00010 */ swc1 $f0, 0x10($sp) +/* 062E98 7F02E368 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 062E9C 7F02E36C E7A40014 */ swc1 $f4, 0x14($sp) +/* 062EA0 7F02E370 3C018003 */ lui $at, %hi(D_800300C0+0x14) +/* 062EA4 7F02E374 C42000D4 */ lwc1 $f0, %lo(D_800300C0+0x14)($at) +/* 062EA8 7F02E378 44803000 */ mtc1 $zero, $f6 +/* 062EAC 7F02E37C 00000000 */ nop +/* 062EB0 7F02E380 4600303E */ c.le.s $f6, $f0 +/* 062EB4 7F02E384 00000000 */ nop +/* 062EB8 7F02E388 45000004 */ bc1f .L7F02E39C +/* 062EBC 7F02E38C 00000000 */ nop +/* 062EC0 7F02E390 44050000 */ mfc1 $a1, $f0 +/* 062EC4 7F02E394 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 062EC8 7F02E398 8FA4002C */ lw $a0, 0x2c($sp) +.L7F02E39C: +/* 062ECC 7F02E39C 10000002 */ b .L7F02E3A8 +/* 062ED0 7F02E3A0 24020001 */ li $v0, 1 +/* 062ED4 7F02E3A4 00001025 */ move $v0, $zero +.L7F02E3A8: +/* 062ED8 7F02E3A8 8FBF001C */ lw $ra, 0x1c($sp) +/* 062EDC 7F02E3AC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 062EE0 7F02E3B0 03E00008 */ jr $ra +/* 062EE4 7F02E3B4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02E3B8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02E3B8 +/* 062EE8 7F02E3B8 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 062EEC 7F02E3BC AFBF0024 */ sw $ra, 0x24($sp) +/* 062EF0 7F02E3C0 AFB10020 */ sw $s1, 0x20($sp) +/* 062EF4 7F02E3C4 AFB0001C */ sw $s0, 0x1c($sp) +/* 062EF8 7F02E3C8 8C8E002C */ lw $t6, 0x2c($a0) +/* 062EFC 7F02E3CC 44802000 */ mtc1 $zero, $f4 +/* 062F00 7F02E3D0 00808825 */ move $s1, $a0 +/* 062F04 7F02E3D4 C5C60024 */ lwc1 $f6, 0x24($t6) +/* 062F08 7F02E3D8 8C90001C */ lw $s0, 0x1c($a0) +/* 062F0C 7F02E3DC 4606203C */ c.lt.s $f4, $f6 +/* 062F10 7F02E3E0 00000000 */ nop +/* 062F14 7F02E3E4 45000015 */ bc1f .L7F02E43C +/* 062F18 7F02E3E8 00000000 */ nop +/* 062F1C 7F02E3EC 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 062F20 7F02E3F0 02002025 */ move $a0, $s0 +/* 062F24 7F02E3F4 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 062F28 7F02E3F8 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 062F2C 7F02E3FC AFA2002C */ sw $v0, 0x2c($sp) +/* 062F30 7F02E400 02202025 */ move $a0, $s1 +/* 062F34 7F02E404 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 062F38 7F02E408 3C053F00 */ lui $a1, 0x3f00 +/* 062F3C 7F02E40C 8E2F002C */ lw $t7, 0x2c($s1) +/* 062F40 7F02E410 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 062F44 7F02E414 44814000 */ mtc1 $at, $f8 +/* 062F48 7F02E418 82060024 */ lb $a2, 0x24($s0) +/* 062F4C 7F02E41C 8DE70024 */ lw $a3, 0x24($t7) +/* 062F50 7F02E420 E7A00010 */ swc1 $f0, 0x10($sp) +/* 062F54 7F02E424 02002025 */ move $a0, $s0 +/* 062F58 7F02E428 8FA5002C */ lw $a1, 0x2c($sp) +/* 062F5C 7F02E42C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 062F60 7F02E430 E7A80014 */ swc1 $f8, 0x14($sp) +/* 062F64 7F02E434 10000014 */ b .L7F02E488 +/* 062F68 7F02E438 8E39002C */ lw $t9, 0x2c($s1) +.L7F02E43C: +/* 062F6C 7F02E43C 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 062F70 7F02E440 02002025 */ move $a0, $s0 +/* 062F74 7F02E444 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 062F78 7F02E448 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 062F7C 7F02E44C AFA2002C */ sw $v0, 0x2c($sp) +/* 062F80 7F02E450 02202025 */ move $a0, $s1 +/* 062F84 7F02E454 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 062F88 7F02E458 3C053F00 */ lui $a1, 0x3f00 +/* 062F8C 7F02E45C 8E38002C */ lw $t8, 0x2c($s1) +/* 062F90 7F02E460 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 062F94 7F02E464 44815000 */ mtc1 $at, $f10 +/* 062F98 7F02E468 82060024 */ lb $a2, 0x24($s0) +/* 062F9C 7F02E46C 8F07001C */ lw $a3, 0x1c($t8) +/* 062FA0 7F02E470 E7A00010 */ swc1 $f0, 0x10($sp) +/* 062FA4 7F02E474 02002025 */ move $a0, $s0 +/* 062FA8 7F02E478 8FA5002C */ lw $a1, 0x2c($sp) +/* 062FAC 7F02E47C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 062FB0 7F02E480 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 062FB4 7F02E484 8E39002C */ lw $t9, 0x2c($s1) +.L7F02E488: +/* 062FB8 7F02E488 44808000 */ mtc1 $zero, $f16 +/* 062FBC 7F02E48C C7200014 */ lwc1 $f0, 0x14($t9) +/* 062FC0 7F02E490 4600803E */ c.le.s $f16, $f0 +/* 062FC4 7F02E494 00000000 */ nop +/* 062FC8 7F02E498 45020005 */ bc1fl .L7F02E4B0 +/* 062FCC 7F02E49C 8FBF0024 */ lw $ra, 0x24($sp) +/* 062FD0 7F02E4A0 44050000 */ mfc1 $a1, $f0 +/* 062FD4 7F02E4A4 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 062FD8 7F02E4A8 02002025 */ move $a0, $s0 +/* 062FDC 7F02E4AC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02E4B0: +/* 062FE0 7F02E4B0 8FB0001C */ lw $s0, 0x1c($sp) +/* 062FE4 7F02E4B4 8FB10020 */ lw $s1, 0x20($sp) +/* 062FE8 7F02E4B8 03E00008 */ jr $ra +/* 062FEC 7F02E4BC 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02E4C0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051FC8 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F02E4C0 +/* 062FF0 7F02E4C0 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 062FF4 7F02E4C4 AFBF0044 */ sw $ra, 0x44($sp) +/* 062FF8 7F02E4C8 AFB30040 */ sw $s3, 0x40($sp) +/* 062FFC 7F02E4CC AFB2003C */ sw $s2, 0x3c($sp) +/* 063000 7F02E4D0 AFB10038 */ sw $s1, 0x38($sp) +/* 063004 7F02E4D4 AFB00034 */ sw $s0, 0x34($sp) +/* 063008 7F02E4D8 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 06300C 7F02E4DC F7B60020 */ sdc1 $f22, 0x20($sp) +/* 063010 7F02E4E0 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 063014 7F02E4E4 8C93001C */ lw $s3, 0x1c($a0) +/* 063018 7F02E4E8 00808025 */ move $s0, $a0 +/* 06301C 7F02E4EC 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 063020 7F02E4F0 02602025 */ move $a0, $s3 +/* 063024 7F02E4F4 8E0F0044 */ lw $t7, 0x44($s0) +/* 063028 7F02E4F8 8E0E0048 */ lw $t6, 0x48($s0) +/* 06302C 7F02E4FC 46000506 */ mov.s $f20, $f0 +/* 063030 7F02E500 25F8FFE2 */ addiu $t8, $t7, -0x1e +/* 063034 7F02E504 01D8082A */ slt $at, $t6, $t8 +/* 063038 7F02E508 5020004B */ beql $at, $zero, .L7F02E638 +/* 06303C 7F02E50C 3C013F00 */ lui $at, 0x3f00 +/* 063040 7F02E510 8E790054 */ lw $t9, 0x54($s3) +/* 063044 7F02E514 57200048 */ bnezl $t9, .L7F02E638 +/* 063048 7F02E518 3C013F00 */ lui $at, 0x3f00 +/* 06304C 7F02E51C 8E05002C */ lw $a1, 0x2c($s0) +/* 063050 7F02E520 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 063054 7F02E524 44813000 */ mtc1 $at, $f6 +/* 063058 7F02E528 C4A40018 */ lwc1 $f4, 0x18($a1) +/* 06305C 7F02E52C 46062200 */ add.s $f8, $f4, $f6 +/* 063060 7F02E530 4600403C */ c.lt.s $f8, $f0 +/* 063064 7F02E534 00000000 */ nop +/* 063068 7F02E538 4502003F */ bc1fl .L7F02E638 +/* 06306C 7F02E53C 3C013F00 */ lui $at, 0x3f00 +/* 063070 7F02E540 C4AA001C */ lwc1 $f10, 0x1c($a1) +/* 063074 7F02E544 460A003C */ c.lt.s $f0, $f10 +/* 063078 7F02E548 00000000 */ nop +/* 06307C 7F02E54C 4502003A */ bc1fl .L7F02E638 +/* 063080 7F02E550 3C013F00 */ lui $at, 0x3f00 +/* 063084 7F02E554 4480B000 */ mtc1 $zero, $f22 +/* 063088 7F02E558 C4A20024 */ lwc1 $f2, 0x24($a1) +/* 06308C 7F02E55C 4616103C */ c.lt.s $f2, $f22 +/* 063090 7F02E560 00000000 */ nop +/* 063094 7F02E564 45030006 */ bc1tl .L7F02E580 +/* 063098 7F02E568 82080036 */ lb $t0, 0x36($s0) +/* 06309C 7F02E56C 4602003C */ c.lt.s $f0, $f2 +/* 0630A0 7F02E570 00000000 */ nop +/* 0630A4 7F02E574 45020030 */ bc1fl .L7F02E638 +/* 0630A8 7F02E578 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0630AC 7F02E57C 82080036 */ lb $t0, 0x36($s0) +.L7F02E580: +/* 0630B0 7F02E580 15000024 */ bnez $t0, .L7F02E614 +/* 0630B4 7F02E584 00000000 */ nop +/* 0630B8 7F02E588 0FC0B8B8 */ jal sub_GAME_7F02E2E0 +/* 0630BC 7F02E58C 02002025 */ move $a0, $s0 +/* 0630C0 7F02E590 1440001E */ bnez $v0, .L7F02E60C +/* 0630C4 7F02E594 00000000 */ nop +/* 0630C8 7F02E598 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 0630CC 7F02E59C 02602025 */ move $a0, $s3 +/* 0630D0 7F02E5A0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0630D4 7F02E5A4 4481C000 */ mtc1 $at, $f24 +/* 0630D8 7F02E5A8 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 0630DC 7F02E5AC 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0630E0 7F02E5B0 4405C000 */ mfc1 $a1, $f24 +/* 0630E4 7F02E5B4 00408825 */ move $s1, $v0 +/* 0630E8 7F02E5B8 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0630EC 7F02E5BC 02002025 */ move $a0, $s0 +/* 0630F0 7F02E5C0 8E09002C */ lw $t1, 0x2c($s0) +/* 0630F4 7F02E5C4 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 0630F8 7F02E5C8 44818000 */ mtc1 $at, $f16 +/* 0630FC 7F02E5CC 82660024 */ lb $a2, 0x24($s3) +/* 063100 7F02E5D0 8D27001C */ lw $a3, 0x1c($t1) +/* 063104 7F02E5D4 E7A00010 */ swc1 $f0, 0x10($sp) +/* 063108 7F02E5D8 02602025 */ move $a0, $s3 +/* 06310C 7F02E5DC 02202825 */ move $a1, $s1 +/* 063110 7F02E5E0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 063114 7F02E5E4 E7B00014 */ swc1 $f16, 0x14($sp) +/* 063118 7F02E5E8 8E0A002C */ lw $t2, 0x2c($s0) +/* 06311C 7F02E5EC C5400014 */ lwc1 $f0, 0x14($t2) +/* 063120 7F02E5F0 4600B03E */ c.le.s $f22, $f0 +/* 063124 7F02E5F4 00000000 */ nop +/* 063128 7F02E5F8 45000004 */ bc1f .L7F02E60C +/* 06312C 7F02E5FC 00000000 */ nop +/* 063130 7F02E600 44050000 */ mfc1 $a1, $f0 +/* 063134 7F02E604 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 063138 7F02E608 02602025 */ move $a0, $s3 +.L7F02E60C: +/* 06313C 7F02E60C 10000004 */ b .L7F02E620 +/* 063140 7F02E610 820B0034 */ lb $t3, 0x34($s0) +.L7F02E614: +/* 063144 7F02E614 0FC0B8EE */ jal sub_GAME_7F02E3B8 +/* 063148 7F02E618 02002025 */ move $a0, $s0 +/* 06314C 7F02E61C 820B0034 */ lb $t3, 0x34($s0) +.L7F02E620: +/* 063150 7F02E620 02602025 */ move $a0, $s3 +/* 063154 7F02E624 256C0001 */ addiu $t4, $t3, 1 +/* 063158 7F02E628 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 06315C 7F02E62C A20C0033 */ sb $t4, 0x33($s0) +/* 063160 7F02E630 46000506 */ mov.s $f20, $f0 +/* 063164 7F02E634 3C013F00 */ li $at, 0x3F000000 # 0.500000 +.L7F02E638: +/* 063168 7F02E638 4481C000 */ mtc1 $at, $f24 +/* 06316C 7F02E63C 4480B000 */ mtc1 $zero, $f22 +/* 063170 7F02E640 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 063174 7F02E644 02602025 */ move $a0, $s3 +/* 063178 7F02E648 4614003E */ c.le.s $f0, $f20 +/* 06317C 7F02E64C 00000000 */ nop +/* 063180 7F02E650 45020076 */ bc1fl .L7F02E82C +/* 063184 7F02E654 8E02004C */ lw $v0, 0x4c($s0) +/* 063188 7F02E658 820D0037 */ lb $t5, 0x37($s0) +/* 06318C 7F02E65C 15A00006 */ bnez $t5, .L7F02E678 +/* 063190 7F02E660 00000000 */ nop +/* 063194 7F02E664 82030034 */ lb $v1, 0x34($s0) +/* 063198 7F02E668 82020033 */ lb $v0, 0x33($s0) +/* 06319C 7F02E66C 0062082A */ slt $at, $v1, $v0 +/* 0631A0 7F02E670 1020000F */ beqz $at, .L7F02E6B0 +/* 0631A4 7F02E674 00000000 */ nop +.L7F02E678: +/* 0631A8 7F02E678 0FC0B8B8 */ jal sub_GAME_7F02E2E0 +/* 0631AC 7F02E67C 02002025 */ move $a0, $s0 +/* 0631B0 7F02E680 14400066 */ bnez $v0, .L7F02E81C +/* 0631B4 7F02E684 00000000 */ nop +/* 0631B8 7F02E688 8E0F004C */ lw $t7, 0x4c($s0) +/* 0631BC 7F02E68C 31EE0001 */ andi $t6, $t7, 1 +/* 0631C0 7F02E690 11C00003 */ beqz $t6, .L7F02E6A0 +/* 0631C4 7F02E694 00000000 */ nop +/* 0631C8 7F02E698 0FC0A6EC */ jal sub_GAME_7F029BB0 +/* 0631CC 7F02E69C 02002025 */ move $a0, $s0 +.L7F02E6A0: +/* 0631D0 7F02E6A0 0FC08F92 */ jal sub_GAME_7F023E48 +/* 0631D4 7F02E6A4 02002025 */ move $a0, $s0 +/* 0631D8 7F02E6A8 1000014B */ b .L7F02EBD8 +/* 0631DC 7F02E6AC 8FBF0044 */ lw $ra, 0x44($sp) +.L7F02E6B0: +/* 0631E0 7F02E6B0 14620006 */ bne $v1, $v0, .L7F02E6CC +/* 0631E4 7F02E6B4 24580001 */ addiu $t8, $v0, 1 +/* 0631E8 7F02E6B8 A2180033 */ sb $t8, 0x33($s0) +/* 0631EC 7F02E6BC 0FC0B8EE */ jal sub_GAME_7F02E3B8 +/* 0631F0 7F02E6C0 02002025 */ move $a0, $s0 +/* 0631F4 7F02E6C4 10000055 */ b .L7F02E81C +/* 0631F8 7F02E6C8 00000000 */ nop +.L7F02E6CC: +/* 0631FC 7F02E6CC 82190031 */ lb $t9, 0x31($s0) +/* 063200 7F02E6D0 3C014140 */ li $at, 0x41400000 # 12.000000 +/* 063204 7F02E6D4 02602025 */ move $a0, $s3 +/* 063208 7F02E6D8 13200050 */ beqz $t9, .L7F02E81C +/* 06320C 7F02E6DC 00000000 */ nop +/* 063210 7F02E6E0 82080036 */ lb $t0, 0x36($s0) +/* 063214 7F02E6E4 4600C306 */ mov.s $f12, $f24 +/* 063218 7F02E6E8 51000014 */ beql $t0, $zero, .L7F02E73C +/* 06321C 7F02E6EC 8E05002C */ lw $a1, 0x2c($s0) +/* 063220 7F02E6F0 8E05002C */ lw $a1, 0x2c($s0) +/* 063224 7F02E6F4 C4A00020 */ lwc1 $f0, 0x20($a1) +/* 063228 7F02E6F8 4600B03C */ c.lt.s $f22, $f0 +/* 06322C 7F02E6FC 00000000 */ nop +/* 063230 7F02E700 45020004 */ bc1fl .L7F02E714 +/* 063234 7F02E704 C4AE0018 */ lwc1 $f14, 0x18($a1) +/* 063238 7F02E708 10000002 */ b .L7F02E714 +/* 06323C 7F02E70C 46000386 */ mov.s $f14, $f0 +/* 063240 7F02E710 C4AE0018 */ lwc1 $f14, 0x18($a1) +.L7F02E714: +/* 063244 7F02E714 C4A20024 */ lwc1 $f2, 0x24($a1) +/* 063248 7F02E718 4602B03C */ c.lt.s $f22, $f2 +/* 06324C 7F02E71C 00000000 */ nop +/* 063250 7F02E720 45000003 */ bc1f .L7F02E730 +/* 063254 7F02E724 00000000 */ nop +/* 063258 7F02E728 1000000D */ b .L7F02E760 +/* 06325C 7F02E72C 46001506 */ mov.s $f20, $f2 +.L7F02E730: +/* 063260 7F02E730 1000000B */ b .L7F02E760 +/* 063264 7F02E734 C4B4001C */ lwc1 $f20, 0x1c($a1) +/* 063268 7F02E738 8E05002C */ lw $a1, 0x2c($s0) +.L7F02E73C: +/* 06326C 7F02E73C C4A00020 */ lwc1 $f0, 0x20($a1) +/* 063270 7F02E740 C4AE0018 */ lwc1 $f14, 0x18($a1) +/* 063274 7F02E744 4600B03C */ c.lt.s $f22, $f0 +/* 063278 7F02E748 00000000 */ nop +/* 06327C 7F02E74C 45020004 */ bc1fl .L7F02E760 +/* 063280 7F02E750 C4B4001C */ lwc1 $f20, 0x1c($a1) +/* 063284 7F02E754 10000002 */ b .L7F02E760 +/* 063288 7F02E758 46000506 */ mov.s $f20, $f0 +/* 06328C 7F02E75C C4B4001C */ lwc1 $f20, 0x1c($a1) +.L7F02E760: +/* 063290 7F02E760 460EA001 */ sub.s $f0, $f20, $f14 +/* 063294 7F02E764 44811000 */ mtc1 $at, $f2 +/* 063298 7F02E768 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 06329C 7F02E76C 4602003C */ c.lt.s $f0, $f2 +/* 0632A0 7F02E770 00000000 */ nop +/* 0632A4 7F02E774 45020005 */ bc1fl .L7F02E78C +/* 0632A8 7F02E778 44812000 */ mtc1 $at, $f4 +/* 0632AC 7F02E77C 46180482 */ mul.s $f18, $f0, $f24 +/* 0632B0 7F02E780 1000000D */ b .L7F02E7B8 +/* 0632B4 7F02E784 46029303 */ div.s $f12, $f18, $f2 +/* 0632B8 7F02E788 44812000 */ mtc1 $at, $f4 +.L7F02E78C: +/* 0632BC 7F02E78C 00000000 */ nop +/* 0632C0 7F02E790 4600203C */ c.lt.s $f4, $f0 +/* 0632C4 7F02E794 00000000 */ nop +/* 0632C8 7F02E798 45020008 */ bc1fl .L7F02E7BC +/* 0632CC 7F02E79C 8209003A */ lb $t1, 0x3a($s0) +/* 0632D0 7F02E7A0 46180182 */ mul.s $f6, $f0, $f24 +/* 0632D4 7F02E7A4 3C013D80 */ li $at, 0x3D800000 # 0.062500 +/* 0632D8 7F02E7A8 44814000 */ mtc1 $at, $f8 +/* 0632DC 7F02E7AC 00000000 */ nop +/* 0632E0 7F02E7B0 46083302 */ mul.s $f12, $f6, $f8 +/* 0632E4 7F02E7B4 00000000 */ nop +.L7F02E7B8: +/* 0632E8 7F02E7B8 8209003A */ lb $t1, 0x3a($s0) +.L7F02E7BC: +/* 0632EC 7F02E7BC 51200006 */ beql $t1, $zero, .L7F02E7D8 +/* 0632F0 7F02E7C0 A2000031 */ sb $zero, 0x31($s0) +/* 0632F4 7F02E7C4 820A003B */ lb $t2, 0x3b($s0) +/* 0632F8 7F02E7C8 51400003 */ beql $t2, $zero, .L7F02E7D8 +/* 0632FC 7F02E7CC A2000031 */ sb $zero, 0x31($s0) +/* 063300 7F02E7D0 460C6300 */ add.s $f12, $f12, $f12 +/* 063304 7F02E7D4 A2000031 */ sb $zero, 0x31($s0) +.L7F02E7D8: +/* 063308 7F02E7D8 E7AE005C */ swc1 $f14, 0x5c($sp) +/* 06330C 7F02E7DC 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 063310 7F02E7E0 E7AC0060 */ swc1 $f12, 0x60($sp) +/* 063314 7F02E7E4 C7AE005C */ lwc1 $f14, 0x5c($sp) +/* 063318 7F02E7E8 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 06331C 7F02E7EC 44815000 */ mtc1 $at, $f10 +/* 063320 7F02E7F0 C7AC0060 */ lwc1 $f12, 0x60($sp) +/* 063324 7F02E7F4 82660024 */ lb $a2, 0x24($s3) +/* 063328 7F02E7F8 44077000 */ mfc1 $a3, $f14 +/* 06332C 7F02E7FC 02602025 */ move $a0, $s3 +/* 063330 7F02E800 00402825 */ move $a1, $v0 +/* 063334 7F02E804 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 063338 7F02E808 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 06333C 7F02E80C E7AC0010 */ swc1 $f12, 0x10($sp) +/* 063340 7F02E810 4405A000 */ mfc1 $a1, $f20 +/* 063344 7F02E814 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 063348 7F02E818 02602025 */ move $a0, $s3 +.L7F02E81C: +/* 06334C 7F02E81C 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 063350 7F02E820 02602025 */ move $a0, $s3 +/* 063354 7F02E824 46000506 */ mov.s $f20, $f0 +/* 063358 7F02E828 8E02004C */ lw $v0, 0x4c($s0) +.L7F02E82C: +/* 06335C 7F02E82C 304B0040 */ andi $t3, $v0, 0x40 +/* 063360 7F02E830 5560002B */ bnezl $t3, .L7F02E8E0 +/* 063364 7F02E834 8E05002C */ lw $a1, 0x2c($s0) +/* 063368 7F02E838 8E05002C */ lw $a1, 0x2c($s0) +/* 06336C 7F02E83C 304C0020 */ andi $t4, $v0, 0x20 +/* 063370 7F02E840 02602025 */ move $a0, $s3 +/* 063374 7F02E844 C4A2000C */ lwc1 $f2, 0xc($a1) +/* 063378 7F02E848 1180000F */ beqz $t4, .L7F02E888 +/* 06337C 7F02E84C C4AC0004 */ lwc1 $f12, 4($a1) +/* 063380 7F02E850 E7A20050 */ swc1 $f2, 0x50($sp) +/* 063384 7F02E854 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 063388 7F02E858 E7AC004C */ swc1 $f12, 0x4c($sp) +/* 06338C 7F02E85C C7AC004C */ lwc1 $f12, 0x4c($sp) +/* 063390 7F02E860 C7A20050 */ lwc1 $f2, 0x50($sp) +/* 063394 7F02E864 02602025 */ move $a0, $s3 +/* 063398 7F02E868 460C003C */ c.lt.s $f0, $f12 +/* 06339C 7F02E86C 00000000 */ nop +/* 0633A0 7F02E870 45020006 */ bc1fl .L7F02E88C +/* 0633A4 7F02E874 826D0024 */ lb $t5, 0x24($s3) +/* 0633A8 7F02E878 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 0633AC 7F02E87C E7A20050 */ swc1 $f2, 0x50($sp) +/* 0633B0 7F02E880 C7A20050 */ lwc1 $f2, 0x50($sp) +/* 0633B4 7F02E884 46000306 */ mov.s $f12, $f0 +.L7F02E888: +/* 0633B8 7F02E888 826D0024 */ lb $t5, 0x24($s3) +.L7F02E88C: +/* 0633BC 7F02E88C 02002025 */ move $a0, $s0 +/* 0633C0 7F02E890 3C053F80 */ lui $a1, 0x3f80 +/* 0633C4 7F02E894 11A00004 */ beqz $t5, .L7F02E8A8 +/* 0633C8 7F02E898 3C063FCC */ lui $a2, (0x3FCCCCCD >> 16) # lui $a2, 0x3fcc +/* 0633CC 7F02E89C 3C018005 */ lui $at, %hi(D_80051FC8) +/* 0633D0 7F02E8A0 C4301FC8 */ lwc1 $f16, %lo(D_80051FC8)($at) +/* 0633D4 7F02E8A4 46028081 */ sub.s $f2, $f16, $f2 +.L7F02E8A8: +/* 0633D8 7F02E8A8 34C6CCCD */ ori $a2, (0x3FCCCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0633DC 7F02E8AC E7A20050 */ swc1 $f2, 0x50($sp) +/* 0633E0 7F02E8B0 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0633E4 7F02E8B4 E7AC004C */ swc1 $f12, 0x4c($sp) +/* 0633E8 7F02E8B8 C7AC004C */ lwc1 $f12, 0x4c($sp) +/* 0633EC 7F02E8BC C7A20050 */ lwc1 $f2, 0x50($sp) +/* 0633F0 7F02E8C0 82050030 */ lb $a1, 0x30($s0) +/* 0633F4 7F02E8C4 44070000 */ mfc1 $a3, $f0 +/* 0633F8 7F02E8C8 44066000 */ mfc1 $a2, $f12 +/* 0633FC 7F02E8CC 02002025 */ move $a0, $s0 +/* 063400 7F02E8D0 0FC0B0AC */ jal sub_GAME_7F02C2B0 +/* 063404 7F02E8D4 E7A20010 */ swc1 $f2, 0x10($sp) +/* 063408 7F02E8D8 A2020030 */ sb $v0, 0x30($s0) +/* 06340C 7F02E8DC 8E05002C */ lw $a1, 0x2c($s0) +.L7F02E8E0: +/* 063410 7F02E8E0 C4B20028 */ lwc1 $f18, 0x28($a1) +/* 063414 7F02E8E4 4614903C */ c.lt.s $f18, $f20 +/* 063418 7F02E8E8 00000000 */ nop +/* 06341C 7F02E8EC 4500000F */ bc1f .L7F02E92C +/* 063420 7F02E8F0 00000000 */ nop +/* 063424 7F02E8F4 C4A4002C */ lwc1 $f4, 0x2c($a1) +/* 063428 7F02E8F8 02002025 */ move $a0, $s0 +/* 06342C 7F02E8FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 063430 7F02E900 4604A03C */ c.lt.s $f20, $f4 +/* 063434 7F02E904 00000000 */ nop +/* 063438 7F02E908 45000008 */ bc1f .L7F02E92C +/* 06343C 7F02E90C 00000000 */ nop +/* 063440 7F02E910 44813000 */ mtc1 $at, $f6 +/* 063444 7F02E914 82060039 */ lb $a2, 0x39($s0) +/* 063448 7F02E918 82070038 */ lb $a3, 0x38($s0) +/* 06344C 7F02E91C 0FC0B130 */ jal sub_GAME_7F02C4C0 +/* 063450 7F02E920 E7A60010 */ swc1 $f6, 0x10($sp) +/* 063454 7F02E924 10000004 */ b .L7F02E938 +/* 063458 7F02E928 00008825 */ move $s1, $zero +.L7F02E92C: +/* 06345C 7F02E92C 0FC0B43E */ jal sub_GAME_7F02D0F8 +/* 063460 7F02E930 02002025 */ move $a0, $s0 +/* 063464 7F02E934 00008825 */ move $s1, $zero +.L7F02E938: +/* 063468 7F02E938 02009025 */ move $s2, $s0 +.L7F02E93C: +/* 06346C 7F02E93C 824F0038 */ lb $t7, 0x38($s2) +/* 063470 7F02E940 02002025 */ move $a0, $s0 +/* 063474 7F02E944 02202825 */ move $a1, $s1 +/* 063478 7F02E948 11E0009C */ beqz $t7, .L7F02EBBC +/* 06347C 7F02E94C 00000000 */ nop +/* 063480 7F02E950 824E003A */ lb $t6, 0x3a($s2) +/* 063484 7F02E954 55C00064 */ bnezl $t6, .L7F02EAE8 +/* 063488 7F02E958 82090031 */ lb $t1, 0x31($s0) +/* 06348C 7F02E95C 8E05002C */ lw $a1, 0x2c($s0) +/* 063490 7F02E960 02002025 */ move $a0, $s0 +/* 063494 7F02E964 00003025 */ move $a2, $zero +/* 063498 7F02E968 C4A80018 */ lwc1 $f8, 0x18($a1) +/* 06349C 7F02E96C 4614403E */ c.le.s $f8, $f20 +/* 0634A0 7F02E970 00000000 */ nop +/* 0634A4 7F02E974 45000040 */ bc1f .L7F02EA78 +/* 0634A8 7F02E978 00000000 */ nop +/* 0634AC 7F02E97C C4AA001C */ lwc1 $f10, 0x1c($a1) +/* 0634B0 7F02E980 02202825 */ move $a1, $s1 +/* 0634B4 7F02E984 460AA03C */ c.lt.s $f20, $f10 +/* 0634B8 7F02E988 00000000 */ nop +/* 0634BC 7F02E98C 4500003A */ bc1f .L7F02EA78 +/* 0634C0 7F02E990 00000000 */ nop +/* 0634C4 7F02E994 02002025 */ move $a0, $s0 +/* 0634C8 7F02E998 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 0634CC 7F02E99C 24060001 */ li $a2, 1 +/* 0634D0 7F02E9A0 82190007 */ lb $t9, 7($s0) +/* 0634D4 7F02E9A4 3C188005 */ lui $t8, %hi(global_timer) +/* 0634D8 7F02E9A8 8F18837C */ lw $t8, %lo(global_timer)($t8) +/* 0634DC 7F02E9AC 2401000A */ li $at, 10 +/* 0634E0 7F02E9B0 1721002B */ bne $t9, $at, .L7F02EA60 +/* 0634E4 7F02E9B4 AE180044 */ sw $t8, 0x44($s0) +/* 0634E8 7F02E9B8 8E05002C */ lw $a1, 0x2c($s0) +/* 0634EC 7F02E9BC 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0634F0 7F02E9C0 44812000 */ mtc1 $at, $f4 +/* 0634F4 7F02E9C4 C4B0001C */ lwc1 $f16, 0x1c($a1) +/* 0634F8 7F02E9C8 C4B20018 */ lwc1 $f18, 0x18($a1) +/* 0634FC 7F02E9CC 46128001 */ sub.s $f0, $f16, $f18 +/* 063500 7F02E9D0 4604003C */ c.lt.s $f0, $f4 +/* 063504 7F02E9D4 00000000 */ nop +/* 063508 7F02E9D8 4502001C */ bc1fl .L7F02EA4C +/* 06350C 7F02E9DC 4405C000 */ mfc1 $a1, $f24 +/* 063510 7F02E9E0 4600018D */ trunc.w.s $f6, $f0 +/* 063514 7F02E9E4 8E080040 */ lw $t0, 0x40($s0) +/* 063518 7F02E9E8 240C003C */ li $t4, 60 +/* 06351C 7F02E9EC 02602025 */ move $a0, $s3 +/* 063520 7F02E9F0 440A3000 */ mfc1 $t2, $f6 +/* 063524 7F02E9F4 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 063528 7F02E9F8 000A5840 */ sll $t3, $t2, 1 +/* 06352C 7F02E9FC 018B6823 */ subu $t5, $t4, $t3 +/* 063530 7F02EA00 010D082A */ slt $at, $t0, $t5 +/* 063534 7F02EA04 54200008 */ bnezl $at, .L7F02EA28 +/* 063538 7F02EA08 4406B000 */ mfc1 $a2, $f22 +/* 06353C 7F02EA0C 4405C000 */ mfc1 $a1, $f24 +/* 063540 7F02EA10 4406B000 */ mfc1 $a2, $f22 +/* 063544 7F02EA14 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 063548 7F02EA18 02602025 */ move $a0, $s3 +/* 06354C 7F02EA1C 1000006A */ b .L7F02EBC8 +/* 063550 7F02EA20 26310001 */ addiu $s1, $s1, 1 +/* 063554 7F02EA24 4406B000 */ mfc1 $a2, $f22 +.L7F02EA28: +/* 063558 7F02EA28 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 06355C 7F02EA2C 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 063560 7F02EA30 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 063564 7F02EA34 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 063568 7F02EA38 8E0F0040 */ lw $t7, 0x40($s0) +/* 06356C 7F02EA3C 01EEC021 */ addu $t8, $t7, $t6 +/* 063570 7F02EA40 10000060 */ b .L7F02EBC4 +/* 063574 7F02EA44 AE180040 */ sw $t8, 0x40($s0) +/* 063578 7F02EA48 4405C000 */ mfc1 $a1, $f24 +.L7F02EA4C: +/* 06357C 7F02EA4C 4406B000 */ mfc1 $a2, $f22 +/* 063580 7F02EA50 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 063584 7F02EA54 02602025 */ move $a0, $s3 +/* 063588 7F02EA58 1000005B */ b .L7F02EBC8 +/* 06358C 7F02EA5C 26310001 */ addiu $s1, $s1, 1 +.L7F02EA60: +/* 063590 7F02EA60 4405C000 */ mfc1 $a1, $f24 +/* 063594 7F02EA64 4406B000 */ mfc1 $a2, $f22 +/* 063598 7F02EA68 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 06359C 7F02EA6C 02602025 */ move $a0, $s3 +/* 0635A0 7F02EA70 10000055 */ b .L7F02EBC8 +/* 0635A4 7F02EA74 26310001 */ addiu $s1, $s1, 1 +.L7F02EA78: +/* 0635A8 7F02EA78 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 0635AC 7F02EA7C 02202825 */ move $a1, $s1 +/* 0635B0 7F02EA80 82190007 */ lb $t9, 7($s0) +/* 0635B4 7F02EA84 2401000A */ li $at, 10 +/* 0635B8 7F02EA88 02002025 */ move $a0, $s0 +/* 0635BC 7F02EA8C 1721000C */ bne $t9, $at, .L7F02EAC0 +/* 0635C0 7F02EA90 3C063F4C */ lui $a2, 0x3f4c +/* 0635C4 7F02EA94 4405C000 */ mfc1 $a1, $f24 +/* 0635C8 7F02EA98 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 0635CC 7F02EA9C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0635D0 7F02EAA0 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0635D4 7F02EAA4 02002025 */ move $a0, $s0 +/* 0635D8 7F02EAA8 44050000 */ mfc1 $a1, $f0 +/* 0635DC 7F02EAAC 4406B000 */ mfc1 $a2, $f22 +/* 0635E0 7F02EAB0 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 0635E4 7F02EAB4 02602025 */ move $a0, $s3 +/* 0635E8 7F02EAB8 10000043 */ b .L7F02EBC8 +/* 0635EC 7F02EABC 26310001 */ addiu $s1, $s1, 1 +.L7F02EAC0: +/* 0635F0 7F02EAC0 4405C000 */ mfc1 $a1, $f24 +/* 0635F4 7F02EAC4 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0635F8 7F02EAC8 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0635FC 7F02EACC 44050000 */ mfc1 $a1, $f0 +/* 063600 7F02EAD0 4406B000 */ mfc1 $a2, $f22 +/* 063604 7F02EAD4 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 063608 7F02EAD8 02602025 */ move $a0, $s3 +/* 06360C 7F02EADC 1000003A */ b .L7F02EBC8 +/* 063610 7F02EAE0 26310001 */ addiu $s1, $s1, 1 +/* 063614 7F02EAE4 82090031 */ lb $t1, 0x31($s0) +.L7F02EAE8: +/* 063618 7F02EAE8 02002025 */ move $a0, $s0 +/* 06361C 7F02EAEC 00003025 */ move $a2, $zero +/* 063620 7F02EAF0 1520002E */ bnez $t1, .L7F02EBAC +/* 063624 7F02EAF4 00000000 */ nop +/* 063628 7F02EAF8 82020032 */ lb $v0, 0x32($s0) +/* 06362C 7F02EAFC 12220004 */ beq $s1, $v0, .L7F02EB10 +/* 063630 7F02EB00 02025021 */ addu $t2, $s0, $v0 +/* 063634 7F02EB04 814C003A */ lb $t4, 0x3a($t2) +/* 063638 7F02EB08 15800028 */ bnez $t4, .L7F02EBAC +/* 06363C 7F02EB0C 00000000 */ nop +.L7F02EB10: +/* 063640 7F02EB10 8E05002C */ lw $a1, 0x2c($s0) +/* 063644 7F02EB14 C4A00020 */ lwc1 $f0, 0x20($a1) +/* 063648 7F02EB18 4600B03E */ c.le.s $f22, $f0 +/* 06364C 7F02EB1C 00000000 */ nop +/* 063650 7F02EB20 4502000B */ bc1fl .L7F02EB50 +/* 063654 7F02EB24 4616003C */ c.lt.s $f0, $f22 +/* 063658 7F02EB28 4614003E */ c.le.s $f0, $f20 +/* 06365C 7F02EB2C 00000000 */ nop +/* 063660 7F02EB30 45020007 */ bc1fl .L7F02EB50 +/* 063664 7F02EB34 4616003C */ c.lt.s $f0, $f22 +/* 063668 7F02EB38 C4A80024 */ lwc1 $f8, 0x24($a1) +/* 06366C 7F02EB3C 4608A03E */ c.le.s $f20, $f8 +/* 063670 7F02EB40 00000000 */ nop +/* 063674 7F02EB44 4503000B */ bc1tl .L7F02EB74 +/* 063678 7F02EB48 82080033 */ lb $t0, 0x33($s0) +/* 06367C 7F02EB4C 4616003C */ c.lt.s $f0, $f22 +.L7F02EB50: +/* 063680 7F02EB50 00000000 */ nop +/* 063684 7F02EB54 45000015 */ bc1f .L7F02EBAC +/* 063688 7F02EB58 00000000 */ nop +/* 06368C 7F02EB5C C4AA0018 */ lwc1 $f10, 0x18($a1) +/* 063690 7F02EB60 4614503E */ c.le.s $f10, $f20 +/* 063694 7F02EB64 00000000 */ nop +/* 063698 7F02EB68 45000010 */ bc1f .L7F02EBAC +/* 06369C 7F02EB6C 00000000 */ nop +/* 0636A0 7F02EB70 82080033 */ lb $t0, 0x33($s0) +.L7F02EB74: +/* 0636A4 7F02EB74 24060001 */ li $a2, 1 +/* 0636A8 7F02EB78 00C25823 */ subu $t3, $a2, $v0 +/* 0636AC 7F02EB7C 250D0001 */ addiu $t5, $t0, 1 +/* 0636B0 7F02EB80 A2060031 */ sb $a2, 0x31($s0) +/* 0636B4 7F02EB84 A20B0032 */ sb $t3, 0x32($s0) +/* 0636B8 7F02EB88 A20D0033 */ sb $t5, 0x33($s0) +/* 0636BC 7F02EB8C 3C0F8005 */ lui $t7, %hi(global_timer) +/* 0636C0 7F02EB90 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 0636C4 7F02EB94 02002025 */ move $a0, $s0 +/* 0636C8 7F02EB98 02202825 */ move $a1, $s1 +/* 0636CC 7F02EB9C 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 0636D0 7F02EBA0 AE0F0044 */ sw $t7, 0x44($s0) +/* 0636D4 7F02EBA4 10000008 */ b .L7F02EBC8 +/* 0636D8 7F02EBA8 26310001 */ addiu $s1, $s1, 1 +.L7F02EBAC: +/* 0636DC 7F02EBAC 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 0636E0 7F02EBB0 02202825 */ move $a1, $s1 +/* 0636E4 7F02EBB4 10000004 */ b .L7F02EBC8 +/* 0636E8 7F02EBB8 26310001 */ addiu $s1, $s1, 1 +.L7F02EBBC: +/* 0636EC 7F02EBBC 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 0636F0 7F02EBC0 00003025 */ move $a2, $zero +.L7F02EBC4: +/* 0636F4 7F02EBC4 26310001 */ addiu $s1, $s1, 1 +.L7F02EBC8: +/* 0636F8 7F02EBC8 24010002 */ li $at, 2 +/* 0636FC 7F02EBCC 1621FF5B */ bne $s1, $at, .L7F02E93C +/* 063700 7F02EBD0 26520001 */ addiu $s2, $s2, 1 +/* 063704 7F02EBD4 8FBF0044 */ lw $ra, 0x44($sp) +.L7F02EBD8: +/* 063708 7F02EBD8 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 06370C 7F02EBDC D7B60020 */ ldc1 $f22, 0x20($sp) +/* 063710 7F02EBE0 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 063714 7F02EBE4 8FB00034 */ lw $s0, 0x34($sp) +/* 063718 7F02EBE8 8FB10038 */ lw $s1, 0x38($sp) +/* 06371C 7F02EBEC 8FB2003C */ lw $s2, 0x3c($sp) +/* 063720 7F02EBF0 8FB30040 */ lw $s3, 0x40($sp) +/* 063724 7F02EBF4 03E00008 */ jr $ra +/* 063728 7F02EBF8 27BD0070 */ addiu $sp, $sp, 0x70 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02EBFC(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80051FCC +.word 0x3e4ccccd /*0.2*/ +.text +glabel sub_GAME_7F02EBFC +/* 06372C 7F02EBFC 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 063730 7F02EC00 AFBF0024 */ sw $ra, 0x24($sp) +/* 063734 7F02EC04 AFB10020 */ sw $s1, 0x20($sp) +/* 063738 7F02EC08 AFB0001C */ sw $s0, 0x1c($sp) +/* 06373C 7F02EC0C 8C91001C */ lw $s1, 0x1c($a0) +/* 063740 7F02EC10 00808025 */ move $s0, $a0 +/* 063744 7F02EC14 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 063748 7F02EC18 02202025 */ move $a0, $s1 +/* 06374C 7F02EC1C 8E020058 */ lw $v0, 0x58($s0) +/* 063750 7F02EC20 46000086 */ mov.s $f2, $f0 +/* 063754 7F02EC24 24010001 */ li $at, 1 +/* 063758 7F02EC28 5040004E */ beql $v0, $zero, .L7F02ED64 +/* 06375C 7F02EC2C 8E02004C */ lw $v0, 0x4c($s0) +/* 063760 7F02EC30 1441002D */ bne $v0, $at, .L7F02ECE8 +/* 063764 7F02EC34 02202025 */ move $a0, $s1 +/* 063768 7F02EC38 8E02002C */ lw $v0, 0x2c($s0) +/* 06376C 7F02EC3C 44802000 */ mtc1 $zero, $f4 +/* 063770 7F02EC40 C4400024 */ lwc1 $f0, 0x24($v0) +/* 063774 7F02EC44 4600203E */ c.le.s $f4, $f0 +/* 063778 7F02EC48 00000000 */ nop +/* 06377C 7F02EC4C 45020004 */ bc1fl .L7F02EC60 +/* 063780 7F02EC50 C442001C */ lwc1 $f2, 0x1c($v0) +/* 063784 7F02EC54 10000002 */ b .L7F02EC60 +/* 063788 7F02EC58 46000086 */ mov.s $f2, $f0 +/* 06378C 7F02EC5C C442001C */ lwc1 $f2, 0x1c($v0) +.L7F02EC60: +/* 063790 7F02EC60 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 063794 7F02EC64 E7A20034 */ swc1 $f2, 0x34($sp) +/* 063798 7F02EC68 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 06379C 7F02EC6C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0637A0 7F02EC70 AFA2002C */ sw $v0, 0x2c($sp) +/* 0637A4 7F02EC74 02002025 */ move $a0, $s0 +/* 0637A8 7F02EC78 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0637AC 7F02EC7C 3C053F00 */ lui $a1, 0x3f00 +/* 0637B0 7F02EC80 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 0637B4 7F02EC84 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0637B8 7F02EC88 44813000 */ mtc1 $at, $f6 +/* 0637BC 7F02EC8C 82260024 */ lb $a2, 0x24($s1) +/* 0637C0 7F02EC90 44071000 */ mfc1 $a3, $f2 +/* 0637C4 7F02EC94 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0637C8 7F02EC98 02202025 */ move $a0, $s1 +/* 0637CC 7F02EC9C 8FA5002C */ lw $a1, 0x2c($sp) +/* 0637D0 7F02ECA0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0637D4 7F02ECA4 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0637D8 7F02ECA8 8E0E002C */ lw $t6, 0x2c($s0) +/* 0637DC 7F02ECAC 44804000 */ mtc1 $zero, $f8 +/* 0637E0 7F02ECB0 C5C00014 */ lwc1 $f0, 0x14($t6) +/* 0637E4 7F02ECB4 4600403E */ c.le.s $f8, $f0 +/* 0637E8 7F02ECB8 00000000 */ nop +/* 0637EC 7F02ECBC 45020005 */ bc1fl .L7F02ECD4 +/* 0637F0 7F02ECC0 240F0002 */ li $t7, 2 +/* 0637F4 7F02ECC4 44050000 */ mfc1 $a1, $f0 +/* 0637F8 7F02ECC8 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0637FC 7F02ECCC 02202025 */ move $a0, $s1 +/* 063800 7F02ECD0 240F0002 */ li $t7, 2 +.L7F02ECD4: +/* 063804 7F02ECD4 AE0F0058 */ sw $t7, 0x58($s0) +/* 063808 7F02ECD8 0FC0B43E */ jal sub_GAME_7F02D0F8 +/* 06380C 7F02ECDC 02002025 */ move $a0, $s0 +/* 063810 7F02ECE0 1000007B */ b .L7F02EED0 +/* 063814 7F02ECE4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02ECE8: +/* 063818 7F02ECE8 24010002 */ li $at, 2 +/* 06381C 7F02ECEC 1441001C */ bne $v0, $at, .L7F02ED60 +/* 063820 7F02ECF0 02202025 */ move $a0, $s1 +/* 063824 7F02ECF4 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 063828 7F02ECF8 E7A20038 */ swc1 $f2, 0x38($sp) +/* 06382C 7F02ECFC C7A20038 */ lwc1 $f2, 0x38($sp) +/* 063830 7F02ED00 4602003E */ c.le.s $f0, $f2 +/* 063834 7F02ED04 00000000 */ nop +/* 063838 7F02ED08 45020071 */ bc1fl .L7F02EED0 +/* 06383C 7F02ED0C 8FBF0024 */ lw $ra, 0x24($sp) +/* 063840 7F02ED10 8E18004C */ lw $t8, 0x4c($s0) +/* 063844 7F02ED14 8E0A0054 */ lw $t2, 0x54($s0) +/* 063848 7F02ED18 2401FFBF */ li $at, -65 +/* 06384C 7F02ED1C 37190020 */ ori $t9, $t8, 0x20 +/* 063850 7F02ED20 AE19004C */ sw $t9, 0x4c($s0) +/* 063854 7F02ED24 03214824 */ and $t1, $t9, $at +/* 063858 7F02ED28 11400007 */ beqz $t2, .L7F02ED48 +/* 06385C 7F02ED2C AE09004C */ sw $t1, 0x4c($s0) +/* 063860 7F02ED30 02002025 */ move $a0, $s0 +/* 063864 7F02ED34 01202825 */ move $a1, $t1 +/* 063868 7F02ED38 0FC09558 */ jal sub_GAME_7F025560 +/* 06386C 7F02ED3C 8E060050 */ lw $a2, 0x50($s0) +/* 063870 7F02ED40 10000063 */ b .L7F02EED0 +/* 063874 7F02ED44 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02ED48: +/* 063878 7F02ED48 02002025 */ move $a0, $s0 +/* 06387C 7F02ED4C 8E05004C */ lw $a1, 0x4c($s0) +/* 063880 7F02ED50 0FC095BC */ jal sub_GAME_7F0256F0 +/* 063884 7F02ED54 8E060050 */ lw $a2, 0x50($s0) +/* 063888 7F02ED58 1000005D */ b .L7F02EED0 +/* 06388C 7F02ED5C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02ED60: +/* 063890 7F02ED60 8E02004C */ lw $v0, 0x4c($s0) +.L7F02ED64: +/* 063894 7F02ED64 304B0020 */ andi $t3, $v0, 0x20 +/* 063898 7F02ED68 1160001C */ beqz $t3, .L7F02EDDC +/* 06389C 7F02ED6C 304C0040 */ andi $t4, $v0, 0x40 +/* 0638A0 7F02ED70 1180000D */ beqz $t4, .L7F02EDA8 +/* 0638A4 7F02ED74 02202025 */ move $a0, $s1 +/* 0638A8 7F02ED78 3C018005 */ lui $at, %hi(D_80051FCC) +/* 0638AC 7F02ED7C C42A1FCC */ lwc1 $f10, %lo(D_80051FCC)($at) +/* 0638B0 7F02ED80 8E05002C */ lw $a1, 0x2c($s0) +/* 0638B4 7F02ED84 82060039 */ lb $a2, 0x39($s0) +/* 0638B8 7F02ED88 82070038 */ lb $a3, 0x38($s0) +/* 0638BC 7F02ED8C 02002025 */ move $a0, $s0 +/* 0638C0 7F02ED90 0FC0B130 */ jal sub_GAME_7F02C4C0 +/* 0638C4 7F02ED94 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0638C8 7F02ED98 1440004C */ bnez $v0, .L7F02EECC +/* 0638CC 7F02ED9C 240D0001 */ li $t5, 1 +/* 0638D0 7F02EDA0 1000004A */ b .L7F02EECC +/* 0638D4 7F02EDA4 AE0D0058 */ sw $t5, 0x58($s0) +.L7F02EDA8: +/* 0638D8 7F02EDA8 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 0638DC 7F02EDAC E7A20038 */ swc1 $f2, 0x38($sp) +/* 0638E0 7F02EDB0 C7A20038 */ lwc1 $f2, 0x38($sp) +/* 0638E4 7F02EDB4 4602003E */ c.le.s $f0, $f2 +/* 0638E8 7F02EDB8 00000000 */ nop +/* 0638EC 7F02EDBC 45020008 */ bc1fl .L7F02EDE0 +/* 0638F0 7F02EDC0 82190036 */ lb $t9, 0x36($s0) +/* 0638F4 7F02EDC4 8E0E004C */ lw $t6, 0x4c($s0) +/* 0638F8 7F02EDC8 24180002 */ li $t8, 2 +/* 0638FC 7F02EDCC A2180030 */ sb $t8, 0x30($s0) +/* 063900 7F02EDD0 35CF0040 */ ori $t7, $t6, 0x40 +/* 063904 7F02EDD4 1000003D */ b .L7F02EECC +/* 063908 7F02EDD8 AE0F004C */ sw $t7, 0x4c($s0) +.L7F02EDDC: +/* 06390C 7F02EDDC 82190036 */ lb $t9, 0x36($s0) +.L7F02EDE0: +/* 063910 7F02EDE0 17200038 */ bnez $t9, .L7F02EEC4 +/* 063914 7F02EDE4 00000000 */ nop +/* 063918 7F02EDE8 8E08002C */ lw $t0, 0x2c($s0) +/* 06391C 7F02EDEC 44808000 */ mtc1 $zero, $f16 +/* 063920 7F02EDF0 C5000024 */ lwc1 $f0, 0x24($t0) +/* 063924 7F02EDF4 4600803C */ c.lt.s $f16, $f0 +/* 063928 7F02EDF8 00000000 */ nop +/* 06392C 7F02EDFC 45000031 */ bc1f .L7F02EEC4 +/* 063930 7F02EE00 00000000 */ nop +/* 063934 7F02EE04 4600103E */ c.le.s $f2, $f0 +/* 063938 7F02EE08 02202025 */ move $a0, $s1 +/* 06393C 7F02EE0C 4500002D */ bc1f .L7F02EEC4 +/* 063940 7F02EE10 00000000 */ nop +/* 063944 7F02EE14 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 063948 7F02EE18 E7A20038 */ swc1 $f2, 0x38($sp) +/* 06394C 7F02EE1C C7A20038 */ lwc1 $f2, 0x38($sp) +/* 063950 7F02EE20 4602003E */ c.le.s $f0, $f2 +/* 063954 7F02EE24 00000000 */ nop +/* 063958 7F02EE28 45000026 */ bc1f .L7F02EEC4 +/* 06395C 7F02EE2C 00000000 */ nop +/* 063960 7F02EE30 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 063964 7F02EE34 02202025 */ move $a0, $s1 +/* 063968 7F02EE38 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 06396C 7F02EE3C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 063970 7F02EE40 AFA2002C */ sw $v0, 0x2c($sp) +/* 063974 7F02EE44 02002025 */ move $a0, $s0 +/* 063978 7F02EE48 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 06397C 7F02EE4C 3C053F00 */ lui $a1, 0x3f00 +/* 063980 7F02EE50 8E09002C */ lw $t1, 0x2c($s0) +/* 063984 7F02EE54 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 063988 7F02EE58 44819000 */ mtc1 $at, $f18 +/* 06398C 7F02EE5C 82260024 */ lb $a2, 0x24($s1) +/* 063990 7F02EE60 8D270024 */ lw $a3, 0x24($t1) +/* 063994 7F02EE64 E7A00010 */ swc1 $f0, 0x10($sp) +/* 063998 7F02EE68 02202025 */ move $a0, $s1 +/* 06399C 7F02EE6C 8FA5002C */ lw $a1, 0x2c($sp) +/* 0639A0 7F02EE70 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0639A4 7F02EE74 E7B20014 */ swc1 $f18, 0x14($sp) +/* 0639A8 7F02EE78 820A0037 */ lb $t2, 0x37($s0) +/* 0639AC 7F02EE7C 5140000E */ beql $t2, $zero, .L7F02EEB8 +/* 0639B0 7F02EE80 8E0C002C */ lw $t4, 0x2c($s0) +/* 0639B4 7F02EE84 8E0B002C */ lw $t3, 0x2c($s0) +/* 0639B8 7F02EE88 44802000 */ mtc1 $zero, $f4 +/* 0639BC 7F02EE8C C5600014 */ lwc1 $f0, 0x14($t3) +/* 0639C0 7F02EE90 4600203E */ c.le.s $f4, $f0 +/* 0639C4 7F02EE94 00000000 */ nop +/* 0639C8 7F02EE98 4500000A */ bc1f .L7F02EEC4 +/* 0639CC 7F02EE9C 00000000 */ nop +/* 0639D0 7F02EEA0 44050000 */ mfc1 $a1, $f0 +/* 0639D4 7F02EEA4 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0639D8 7F02EEA8 02202025 */ move $a0, $s1 +/* 0639DC 7F02EEAC 10000005 */ b .L7F02EEC4 +/* 0639E0 7F02EEB0 00000000 */ nop +/* 0639E4 7F02EEB4 8E0C002C */ lw $t4, 0x2c($s0) +.L7F02EEB8: +/* 0639E8 7F02EEB8 02202025 */ move $a0, $s1 +/* 0639EC 7F02EEBC 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0639F0 7F02EEC0 8D85001C */ lw $a1, 0x1c($t4) +.L7F02EEC4: +/* 0639F4 7F02EEC4 0FC0B930 */ jal sub_GAME_7F02E4C0 +/* 0639F8 7F02EEC8 02002025 */ move $a0, $s0 +.L7F02EECC: +/* 0639FC 7F02EECC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02EED0: +/* 063A00 7F02EED0 8FB0001C */ lw $s0, 0x1c($sp) +/* 063A04 7F02EED4 8FB10020 */ lw $s1, 0x20($sp) +/* 063A08 7F02EED8 03E00008 */ jr $ra +/* 063A0C 7F02EEDC 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80051FCC +.word 0x3e4ccccd /*0.2*/ + +.text +glabel sub_GAME_7F02EBFC +/* 063A74 7F02EF04 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 063A78 7F02EF08 AFBF0024 */ sw $ra, 0x24($sp) +/* 063A7C 7F02EF0C AFB10020 */ sw $s1, 0x20($sp) +/* 063A80 7F02EF10 AFB0001C */ sw $s0, 0x1c($sp) +/* 063A84 7F02EF14 8C91001C */ lw $s1, 0x1c($a0) +/* 063A88 7F02EF18 00808025 */ move $s0, $a0 +/* 063A8C 7F02EF1C 0FC1BEEB */ jal sub_GAME_7F06F5BC +/* 063A90 7F02EF20 02202025 */ move $a0, $s1 +/* 063A94 7F02EF24 8E020058 */ lw $v0, 0x58($s0) +/* 063A98 7F02EF28 46000086 */ mov.s $f2, $f0 +/* 063A9C 7F02EF2C 24010001 */ li $at, 1 +/* 063AA0 7F02EF30 5040004C */ beql $v0, $zero, .Ljp7F02F064 +/* 063AA4 7F02EF34 8E02004C */ lw $v0, 0x4c($s0) +/* 063AA8 7F02EF38 1441002D */ bne $v0, $at, .Ljp7F02EFF0 +/* 063AAC 7F02EF3C 02202025 */ move $a0, $s1 +/* 063AB0 7F02EF40 8E02002C */ lw $v0, 0x2c($s0) +/* 063AB4 7F02EF44 44802000 */ mtc1 $zero, $f4 +/* 063AB8 7F02EF48 C4400024 */ lwc1 $f0, 0x24($v0) +/* 063ABC 7F02EF4C 4600203E */ c.le.s $f4, $f0 +/* 063AC0 7F02EF50 00000000 */ nop +/* 063AC4 7F02EF54 45020004 */ bc1fl .Ljp7F02EF68 +/* 063AC8 7F02EF58 C442001C */ lwc1 $f2, 0x1c($v0) +/* 063ACC 7F02EF5C 10000002 */ b .Ljp7F02EF68 +/* 063AD0 7F02EF60 46000086 */ mov.s $f2, $f0 +/* 063AD4 7F02EF64 C442001C */ lwc1 $f2, 0x1c($v0) +.Ljp7F02EF68: +/* 063AD8 7F02EF68 0FC1BEE7 */ jal sub_GAME_7F06F5AC +/* 063ADC 7F02EF6C E7A20034 */ swc1 $f2, 0x34($sp) +/* 063AE0 7F02EF70 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 063AE4 7F02EF74 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 063AE8 7F02EF78 AFA2002C */ sw $v0, 0x2c($sp) +/* 063AEC 7F02EF7C 02002025 */ move $a0, $s0 +/* 063AF0 7F02EF80 0FC08F99 */ jal sub_GAME_7F023B5C +/* 063AF4 7F02EF84 3C053F00 */ lui $a1, 0x3f00 +/* 063AF8 7F02EF88 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 063AFC 7F02EF8C 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 063B00 7F02EF90 44813000 */ mtc1 $at, $f6 +/* 063B04 7F02EF94 82260024 */ lb $a2, 0x24($s1) +/* 063B08 7F02EF98 44071000 */ mfc1 $a3, $f2 +/* 063B0C 7F02EF9C E7A00010 */ swc1 $f0, 0x10($sp) +/* 063B10 7F02EFA0 02202025 */ move $a0, $s1 +/* 063B14 7F02EFA4 8FA5002C */ lw $a1, 0x2c($sp) +/* 063B18 7F02EFA8 0FC1C0A6 */ jal sub_GAME_7F06FCA8 +/* 063B1C 7F02EFAC E7A60014 */ swc1 $f6, 0x14($sp) +/* 063B20 7F02EFB0 8E0E002C */ lw $t6, 0x2c($s0) +/* 063B24 7F02EFB4 44804000 */ mtc1 $zero, $f8 +/* 063B28 7F02EFB8 C5C00014 */ lwc1 $f0, 0x14($t6) +/* 063B2C 7F02EFBC 4600403E */ c.le.s $f8, $f0 +/* 063B30 7F02EFC0 00000000 */ nop +/* 063B34 7F02EFC4 45020005 */ bc1fl .Ljp7F02EFDC +/* 063B38 7F02EFC8 240F0002 */ li $t7, 2 +/* 063B3C 7F02EFCC 44050000 */ mfc1 $a1, $f0 +/* 063B40 7F02EFD0 0FC1C0F6 */ jal sub_GAME_7F06FDE8 +/* 063B44 7F02EFD4 02202025 */ move $a0, $s1 +/* 063B48 7F02EFD8 240F0002 */ li $t7, 2 +.Ljp7F02EFDC: +/* 063B4C 7F02EFDC AE0F0058 */ sw $t7, 0x58($s0) +/* 063B50 7F02EFE0 0FC0B500 */ jal sub_GAME_7F02D0F8 +/* 063B54 7F02EFE4 02002025 */ move $a0, $s0 +/* 063B58 7F02EFE8 10000079 */ b .Ljp7F02F1D0 +/* 063B5C 7F02EFEC 8FBF0024 */ lw $ra, 0x24($sp) +.Ljp7F02EFF0: +/* 063B60 7F02EFF0 24010002 */ li $at, 2 +/* 063B64 7F02EFF4 1441001A */ bne $v0, $at, .Ljp7F02F060 +/* 063B68 7F02EFF8 02202025 */ move $a0, $s1 +/* 063B6C 7F02EFFC 0FC1BEED */ jal sub_GAME_7F06F5C4 +/* 063B70 7F02F000 E7A20038 */ swc1 $f2, 0x38($sp) +/* 063B74 7F02F004 C7A20038 */ lwc1 $f2, 0x38($sp) +/* 063B78 7F02F008 4602003E */ c.le.s $f0, $f2 +/* 063B7C 7F02F00C 00000000 */ nop +/* 063B80 7F02F010 4502006F */ bc1fl .Ljp7F02F1D0 +/* 063B84 7F02F014 8FBF0024 */ lw $ra, 0x24($sp) +/* 063B88 7F02F018 8E18004C */ lw $t8, 0x4c($s0) +/* 063B8C 7F02F01C 8E080054 */ lw $t0, 0x54($s0) +/* 063B90 7F02F020 2401FFBF */ li $at, -65 +/* 063B94 7F02F024 0301C824 */ and $t9, $t8, $at +/* 063B98 7F02F028 11000007 */ beqz $t0, .Ljp7F02F048 +/* 063B9C 7F02F02C AE19004C */ sw $t9, 0x4c($s0) +/* 063BA0 7F02F030 02002025 */ move $a0, $s0 +/* 063BA4 7F02F034 03202825 */ move $a1, $t9 +/* 063BA8 7F02F038 0FC0961A */ jal sub_GAME_7F025560 +/* 063BAC 7F02F03C 8E060050 */ lw $a2, 0x50($s0) +/* 063BB0 7F02F040 10000063 */ b .Ljp7F02F1D0 +/* 063BB4 7F02F044 8FBF0024 */ lw $ra, 0x24($sp) +.Ljp7F02F048: +/* 063BB8 7F02F048 02002025 */ move $a0, $s0 +/* 063BBC 7F02F04C 8E05004C */ lw $a1, 0x4c($s0) +/* 063BC0 7F02F050 0FC0967E */ jal sub_GAME_7F0256F0 +/* 063BC4 7F02F054 8E060050 */ lw $a2, 0x50($s0) +/* 063BC8 7F02F058 1000005D */ b .Ljp7F02F1D0 +/* 063BCC 7F02F05C 8FBF0024 */ lw $ra, 0x24($sp) +.Ljp7F02F060: +/* 063BD0 7F02F060 8E02004C */ lw $v0, 0x4c($s0) +.Ljp7F02F064: +/* 063BD4 7F02F064 30490020 */ andi $t1, $v0, 0x20 +/* 063BD8 7F02F068 1120001C */ beqz $t1, .Ljp7F02F0DC +/* 063BDC 7F02F06C 304A0040 */ andi $t2, $v0, 0x40 +/* 063BE0 7F02F070 1140000D */ beqz $t2, .Ljp7F02F0A8 +/* 063BE4 7F02F074 02202025 */ move $a0, $s1 +/* 063BE8 7F02F078 3C018005 */ lui $at, %hi(D_80051FCC) # $at, 0x8005 +/* 063BEC 7F02F07C C42A1FFC */ lwc1 $f10, %lo(D_80051FCC)($at) +/* 063BF0 7F02F080 8E05002C */ lw $a1, 0x2c($s0) +/* 063BF4 7F02F084 82060039 */ lb $a2, 0x39($s0) +/* 063BF8 7F02F088 82070038 */ lb $a3, 0x38($s0) +/* 063BFC 7F02F08C 02002025 */ move $a0, $s0 +/* 063C00 7F02F090 0FC0B1F2 */ jal sub_GAME_7F02C4C0 +/* 063C04 7F02F094 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 063C08 7F02F098 1440004C */ bnez $v0, .Ljp7F02F1CC +/* 063C0C 7F02F09C 240B0001 */ li $t3, 1 +/* 063C10 7F02F0A0 1000004A */ b .Ljp7F02F1CC +/* 063C14 7F02F0A4 AE0B0058 */ sw $t3, 0x58($s0) +.Ljp7F02F0A8: +/* 063C18 7F02F0A8 0FC1BEED */ jal sub_GAME_7F06F5C4 +/* 063C1C 7F02F0AC E7A20038 */ swc1 $f2, 0x38($sp) +/* 063C20 7F02F0B0 C7A20038 */ lwc1 $f2, 0x38($sp) +/* 063C24 7F02F0B4 4602003E */ c.le.s $f0, $f2 +/* 063C28 7F02F0B8 00000000 */ nop +/* 063C2C 7F02F0BC 45020008 */ bc1fl .Ljp7F02F0E0 +/* 063C30 7F02F0C0 820F0036 */ lb $t7, 0x36($s0) +/* 063C34 7F02F0C4 8E0C004C */ lw $t4, 0x4c($s0) +/* 063C38 7F02F0C8 240E0002 */ li $t6, 2 +/* 063C3C 7F02F0CC A20E0030 */ sb $t6, 0x30($s0) +/* 063C40 7F02F0D0 358D0040 */ ori $t5, $t4, 0x40 +/* 063C44 7F02F0D4 1000003D */ b .Ljp7F02F1CC +/* 063C48 7F02F0D8 AE0D004C */ sw $t5, 0x4c($s0) +.Ljp7F02F0DC: +/* 063C4C 7F02F0DC 820F0036 */ lb $t7, 0x36($s0) +.Ljp7F02F0E0: +/* 063C50 7F02F0E0 15E00038 */ bnez $t7, .Ljp7F02F1C4 +/* 063C54 7F02F0E4 00000000 */ nop +/* 063C58 7F02F0E8 8E18002C */ lw $t8, 0x2c($s0) +/* 063C5C 7F02F0EC 44808000 */ mtc1 $zero, $f16 +/* 063C60 7F02F0F0 C7000024 */ lwc1 $f0, 0x24($t8) +/* 063C64 7F02F0F4 4600803C */ c.lt.s $f16, $f0 +/* 063C68 7F02F0F8 00000000 */ nop +/* 063C6C 7F02F0FC 45000031 */ bc1f .Ljp7F02F1C4 +/* 063C70 7F02F100 00000000 */ nop +/* 063C74 7F02F104 4600103E */ c.le.s $f2, $f0 +/* 063C78 7F02F108 02202025 */ move $a0, $s1 +/* 063C7C 7F02F10C 4500002D */ bc1f .Ljp7F02F1C4 +/* 063C80 7F02F110 00000000 */ nop +/* 063C84 7F02F114 0FC1BEED */ jal sub_GAME_7F06F5C4 +/* 063C88 7F02F118 E7A20038 */ swc1 $f2, 0x38($sp) +/* 063C8C 7F02F11C C7A20038 */ lwc1 $f2, 0x38($sp) +/* 063C90 7F02F120 4602003E */ c.le.s $f0, $f2 +/* 063C94 7F02F124 00000000 */ nop +/* 063C98 7F02F128 45000026 */ bc1f .Ljp7F02F1C4 +/* 063C9C 7F02F12C 00000000 */ nop +/* 063CA0 7F02F130 0FC1BEE7 */ jal sub_GAME_7F06F5AC +/* 063CA4 7F02F134 02202025 */ move $a0, $s1 +/* 063CA8 7F02F138 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 063CAC 7F02F13C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 063CB0 7F02F140 AFA2002C */ sw $v0, 0x2c($sp) +/* 063CB4 7F02F144 02002025 */ move $a0, $s0 +/* 063CB8 7F02F148 0FC08F99 */ jal sub_GAME_7F023B5C +/* 063CBC 7F02F14C 3C053F00 */ lui $a1, 0x3f00 +/* 063CC0 7F02F150 8E19002C */ lw $t9, 0x2c($s0) +/* 063CC4 7F02F154 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 063CC8 7F02F158 44819000 */ mtc1 $at, $f18 +/* 063CCC 7F02F15C 82260024 */ lb $a2, 0x24($s1) +/* 063CD0 7F02F160 8F270024 */ lw $a3, 0x24($t9) +/* 063CD4 7F02F164 E7A00010 */ swc1 $f0, 0x10($sp) +/* 063CD8 7F02F168 02202025 */ move $a0, $s1 +/* 063CDC 7F02F16C 8FA5002C */ lw $a1, 0x2c($sp) +/* 063CE0 7F02F170 0FC1C0A6 */ jal sub_GAME_7F06FCA8 +/* 063CE4 7F02F174 E7B20014 */ swc1 $f18, 0x14($sp) +/* 063CE8 7F02F178 82080037 */ lb $t0, 0x37($s0) +/* 063CEC 7F02F17C 5100000E */ beql $t0, $zero, .Ljp7F02F1B8 +/* 063CF0 7F02F180 8E0A002C */ lw $t2, 0x2c($s0) +/* 063CF4 7F02F184 8E09002C */ lw $t1, 0x2c($s0) +/* 063CF8 7F02F188 44802000 */ mtc1 $zero, $f4 +/* 063CFC 7F02F18C C5200014 */ lwc1 $f0, 0x14($t1) +/* 063D00 7F02F190 4600203E */ c.le.s $f4, $f0 +/* 063D04 7F02F194 00000000 */ nop +/* 063D08 7F02F198 4500000A */ bc1f .Ljp7F02F1C4 +/* 063D0C 7F02F19C 00000000 */ nop +/* 063D10 7F02F1A0 44050000 */ mfc1 $a1, $f0 +/* 063D14 7F02F1A4 0FC1C0F6 */ jal sub_GAME_7F06FDE8 +/* 063D18 7F02F1A8 02202025 */ move $a0, $s1 +/* 063D1C 7F02F1AC 10000005 */ b .Ljp7F02F1C4 +/* 063D20 7F02F1B0 00000000 */ nop +/* 063D24 7F02F1B4 8E0A002C */ lw $t2, 0x2c($s0) +.Ljp7F02F1B8: +/* 063D28 7F02F1B8 02202025 */ move $a0, $s1 +/* 063D2C 7F02F1BC 0FC1C0F6 */ jal sub_GAME_7F06FDE8 +/* 063D30 7F02F1C0 8D45001C */ lw $a1, 0x1c($t2) +.Ljp7F02F1C4: +/* 063D34 7F02F1C4 0FC0B9F2 */ jal sub_GAME_7F02E4C0 +/* 063D38 7F02F1C8 02002025 */ move $a0, $s0 +.Ljp7F02F1CC: +/* 063D3C 7F02F1CC 8FBF0024 */ lw $ra, 0x24($sp) +.Ljp7F02F1D0: +/* 063D40 7F02F1D0 8FB0001C */ lw $s0, 0x1c($sp) +/* 063D44 7F02F1D4 8FB10020 */ lw $s1, 0x20($sp) +/* 063D48 7F02F1D8 03E00008 */ jr $ra +/* 063D4C 7F02F1DC 27BD0040 */ addiu $sp, $sp, 0x40 + +) +#endif + +#endif + +#ifdef NONMATCHING +void sub_GAME_7F02EEE0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02EEE0 +/* 063A10 7F02EEE0 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 063A14 7F02EEE4 AFBF001C */ sw $ra, 0x1c($sp) +/* 063A18 7F02EEE8 AFA40048 */ sw $a0, 0x48($sp) +/* 063A1C 7F02EEEC 808F0035 */ lb $t7, 0x35($a0) +/* 063A20 7F02EEF0 11E0013B */ beqz $t7, .L7F02F3E0 +/* 063A24 7F02EEF4 00000000 */ nop +/* 063A28 7F02EEF8 8C84001C */ lw $a0, 0x1c($a0) +/* 063A2C 7F02EEFC 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 063A30 7F02EF00 AFA40044 */ sw $a0, 0x44($sp) +/* 063A34 7F02EF04 8FA70048 */ lw $a3, 0x48($sp) +/* 063A38 7F02EF08 3C188003 */ lui $t8, %hi(D_80030198) +/* 063A3C 7F02EF0C 27180198 */ addiu $t8, %lo(D_80030198) # addiu $t8, $t8, 0x198 +/* 063A40 7F02EF10 8CE2002C */ lw $v0, 0x2c($a3) +/* 063A44 7F02EF14 3C198003 */ lui $t9, %hi(D_800301E0) +/* 063A48 7F02EF18 46000306 */ mov.s $f12, $f0 +/* 063A4C 7F02EF1C 13020009 */ beq $t8, $v0, .L7F02EF44 +/* 063A50 7F02EF20 273901E0 */ addiu $t9, %lo(D_800301E0) # addiu $t9, $t9, 0x1e0 +/* 063A54 7F02EF24 13220007 */ beq $t9, $v0, .L7F02EF44 +/* 063A58 7F02EF28 3C088003 */ lui $t0, %hi(D_80030228) +/* 063A5C 7F02EF2C 25080228 */ addiu $t0, %lo(D_80030228) # addiu $t0, $t0, 0x228 +/* 063A60 7F02EF30 11020004 */ beq $t0, $v0, .L7F02EF44 +/* 063A64 7F02EF34 3C098003 */ lui $t1, %hi(D_80030270) +/* 063A68 7F02EF38 25290270 */ addiu $t1, %lo(D_80030270) # addiu $t1, $t1, 0x270 +/* 063A6C 7F02EF3C 152200C7 */ bne $t1, $v0, .L7F02F25C +/* 063A70 7F02EF40 3C188003 */ lui $t8, %hi(D_800302B8) +.L7F02EF44: +/* 063A74 7F02EF44 C4440014 */ lwc1 $f4, 0x14($v0) +/* 063A78 7F02EF48 8FAA0044 */ lw $t2, 0x44($sp) +/* 063A7C 7F02EF4C 4600203E */ c.le.s $f4, $f0 +/* 063A80 7F02EF50 00000000 */ nop +/* 063A84 7F02EF54 450000BF */ bc1f .L7F02F254 +/* 063A88 7F02EF58 00000000 */ nop +/* 063A8C 7F02EF5C 814B0024 */ lb $t3, 0x24($t2) +/* 063A90 7F02EF60 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 063A94 7F02EF64 44811000 */ mtc1 $at, $f2 +/* 063A98 7F02EF68 AFAB0038 */ sw $t3, 0x38($sp) +/* 063A9C 7F02EF6C 80EC0039 */ lb $t4, 0x39($a3) +/* 063AA0 7F02EF70 24430120 */ addiu $v1, $v0, 0x120 +/* 063AA4 7F02EF74 11800010 */ beqz $t4, .L7F02EFB8 +/* 063AA8 7F02EF78 00000000 */ nop +/* 063AAC 7F02EF7C 80ED0038 */ lb $t5, 0x38($a3) +/* 063AB0 7F02EF80 11A0000D */ beqz $t5, .L7F02EFB8 +/* 063AB4 7F02EF84 00000000 */ nop +/* 063AB8 7F02EF88 AFA3003C */ sw $v1, 0x3c($sp) +/* 063ABC 7F02EF8C 0C002914 */ jal get_random_value +/* 063AC0 7F02EF90 E7A20034 */ swc1 $f2, 0x34($sp) +/* 063AC4 7F02EF94 304F0001 */ andi $t7, $v0, 1 +/* 063AC8 7F02EF98 8FA3003C */ lw $v1, 0x3c($sp) +/* 063ACC 7F02EF9C 15E00004 */ bnez $t7, .L7F02EFB0 +/* 063AD0 7F02EFA0 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 063AD4 7F02EFA4 24630120 */ addiu $v1, $v1, 0x120 +/* 063AD8 7F02EFA8 10000003 */ b .L7F02EFB8 +/* 063ADC 7F02EFAC 8FA70048 */ lw $a3, 0x48($sp) +.L7F02EFB0: +/* 063AE0 7F02EFB0 24630240 */ addiu $v1, $v1, 0x240 +/* 063AE4 7F02EFB4 8FA70048 */ lw $a3, 0x48($sp) +.L7F02EFB8: +/* 063AE8 7F02EFB8 3C028003 */ lui $v0, %hi(D_80030078) +/* 063AEC 7F02EFBC 24420078 */ addiu $v0, %lo(D_80030078) # addiu $v0, $v0, 0x78 +/* 063AF0 7F02EFC0 244E0240 */ addiu $t6, $v0, 0x240 +/* 063AF4 7F02EFC4 146E0005 */ bne $v1, $t6, .L7F02EFDC +/* 063AF8 7F02EFC8 00E02025 */ move $a0, $a3 +/* 063AFC 7F02EFCC 3C0141C0 */ li $at, 0x41C00000 # 24.000000 +/* 063B00 7F02EFD0 44811000 */ mtc1 $at, $f2 +/* 063B04 7F02EFD4 10000043 */ b .L7F02F0E4 +/* 063B08 7F02EFD8 24190002 */ li $t9, 2 +.L7F02EFDC: +/* 063B0C 7F02EFDC 24580288 */ addiu $t8, $v0, 0x288 +/* 063B10 7F02EFE0 14780005 */ bne $v1, $t8, .L7F02EFF8 +/* 063B14 7F02EFE4 245902D0 */ addiu $t9, $v0, 0x2d0 +/* 063B18 7F02EFE8 3C0141C0 */ li $at, 0x41C00000 # 24.000000 +/* 063B1C 7F02EFEC 44811000 */ mtc1 $at, $f2 +/* 063B20 7F02EFF0 1000003C */ b .L7F02F0E4 +/* 063B24 7F02EFF4 24190002 */ li $t9, 2 +.L7F02EFF8: +/* 063B28 7F02EFF8 14790005 */ bne $v1, $t9, .L7F02F010 +/* 063B2C 7F02EFFC 24480318 */ addiu $t0, $v0, 0x318 +/* 063B30 7F02F000 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 063B34 7F02F004 44811000 */ mtc1 $at, $f2 +/* 063B38 7F02F008 10000036 */ b .L7F02F0E4 +/* 063B3C 7F02F00C 24190002 */ li $t9, 2 +.L7F02F010: +/* 063B40 7F02F010 14680005 */ bne $v1, $t0, .L7F02F028 +/* 063B44 7F02F014 24490360 */ addiu $t1, $v0, 0x360 +/* 063B48 7F02F018 3C014230 */ li $at, 0x42300000 # 44.000000 +/* 063B4C 7F02F01C 44811000 */ mtc1 $at, $f2 +/* 063B50 7F02F020 10000030 */ b .L7F02F0E4 +/* 063B54 7F02F024 24190002 */ li $t9, 2 +.L7F02F028: +/* 063B58 7F02F028 14690005 */ bne $v1, $t1, .L7F02F040 +/* 063B5C 7F02F02C 244A03A8 */ addiu $t2, $v0, 0x3a8 +/* 063B60 7F02F030 3C0141C0 */ li $at, 0x41C00000 # 24.000000 +/* 063B64 7F02F034 44811000 */ mtc1 $at, $f2 +/* 063B68 7F02F038 1000002A */ b .L7F02F0E4 +/* 063B6C 7F02F03C 24190002 */ li $t9, 2 +.L7F02F040: +/* 063B70 7F02F040 146A0005 */ bne $v1, $t2, .L7F02F058 +/* 063B74 7F02F044 244B03F0 */ addiu $t3, $v0, 0x3f0 +/* 063B78 7F02F048 3C014208 */ li $at, 0x42080000 # 34.000000 +/* 063B7C 7F02F04C 44811000 */ mtc1 $at, $f2 +/* 063B80 7F02F050 10000024 */ b .L7F02F0E4 +/* 063B84 7F02F054 24190002 */ li $t9, 2 +.L7F02F058: +/* 063B88 7F02F058 146B0005 */ bne $v1, $t3, .L7F02F070 +/* 063B8C 7F02F05C 244C0438 */ addiu $t4, $v0, 0x438 +/* 063B90 7F02F060 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 063B94 7F02F064 44811000 */ mtc1 $at, $f2 +/* 063B98 7F02F068 1000001E */ b .L7F02F0E4 +/* 063B9C 7F02F06C 24190002 */ li $t9, 2 +.L7F02F070: +/* 063BA0 7F02F070 146C0005 */ bne $v1, $t4, .L7F02F088 +/* 063BA4 7F02F074 244D0480 */ addiu $t5, $v0, 0x480 +/* 063BA8 7F02F078 3C014230 */ li $at, 0x42300000 # 44.000000 +/* 063BAC 7F02F07C 44811000 */ mtc1 $at, $f2 +/* 063BB0 7F02F080 10000018 */ b .L7F02F0E4 +/* 063BB4 7F02F084 24190002 */ li $t9, 2 +.L7F02F088: +/* 063BB8 7F02F088 146D0005 */ bne $v1, $t5, .L7F02F0A0 +/* 063BBC 7F02F08C 244F04C8 */ addiu $t7, $v0, 0x4c8 +/* 063BC0 7F02F090 3C0141C0 */ li $at, 0x41C00000 # 24.000000 +/* 063BC4 7F02F094 44811000 */ mtc1 $at, $f2 +/* 063BC8 7F02F098 10000012 */ b .L7F02F0E4 +/* 063BCC 7F02F09C 24190002 */ li $t9, 2 +.L7F02F0A0: +/* 063BD0 7F02F0A0 146F0005 */ bne $v1, $t7, .L7F02F0B8 +/* 063BD4 7F02F0A4 244E0510 */ addiu $t6, $v0, 0x510 +/* 063BD8 7F02F0A8 3C014208 */ li $at, 0x42080000 # 34.000000 +/* 063BDC 7F02F0AC 44811000 */ mtc1 $at, $f2 +/* 063BE0 7F02F0B0 1000000C */ b .L7F02F0E4 +/* 063BE4 7F02F0B4 24190002 */ li $t9, 2 +.L7F02F0B8: +/* 063BE8 7F02F0B8 146E0005 */ bne $v1, $t6, .L7F02F0D0 +/* 063BEC 7F02F0BC 24580558 */ addiu $t8, $v0, 0x558 +/* 063BF0 7F02F0C0 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 063BF4 7F02F0C4 44811000 */ mtc1 $at, $f2 +/* 063BF8 7F02F0C8 10000006 */ b .L7F02F0E4 +/* 063BFC 7F02F0CC 24190002 */ li $t9, 2 +.L7F02F0D0: +/* 063C00 7F02F0D0 14780003 */ bne $v1, $t8, .L7F02F0E0 +/* 063C04 7F02F0D4 3C014230 */ li $at, 0x42300000 # 44.000000 +/* 063C08 7F02F0D8 44811000 */ mtc1 $at, $f2 +/* 063C0C 7F02F0DC 00000000 */ nop +.L7F02F0E0: +/* 063C10 7F02F0E0 24190002 */ li $t9, 2 +.L7F02F0E4: +/* 063C14 7F02F0E4 A0F90030 */ sb $t9, 0x30($a3) +/* 063C18 7F02F0E8 ACE3002C */ sw $v1, 0x2c($a3) +/* 063C1C 7F02F0EC A0E00008 */ sb $zero, 8($a3) +/* 063C20 7F02F0F0 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 063C24 7F02F0F4 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 063C28 7F02F0F8 E7A20034 */ swc1 $f2, 0x34($sp) +/* 063C2C 7F02F0FC AFA3003C */ sw $v1, 0x3c($sp) +/* 063C30 7F02F100 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 063C34 7F02F104 3C053F00 */ lui $a1, 0x3f00 +/* 063C38 7F02F108 8FA3003C */ lw $v1, 0x3c($sp) +/* 063C3C 7F02F10C C7A20034 */ lwc1 $f2, 0x34($sp) +/* 063C40 7F02F110 8FA40044 */ lw $a0, 0x44($sp) +/* 063C44 7F02F114 8C650000 */ lw $a1, ($v1) +/* 063C48 7F02F118 8C670010 */ lw $a3, 0x10($v1) +/* 063C4C 7F02F11C E7A00010 */ swc1 $f0, 0x10($sp) +/* 063C50 7F02F120 8FA60038 */ lw $a2, 0x38($sp) +/* 063C54 7F02F124 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 063C58 7F02F128 E7A20014 */ swc1 $f2, 0x14($sp) +/* 063C5C 7F02F12C 8FA80048 */ lw $t0, 0x48($sp) +/* 063C60 7F02F130 8FA3003C */ lw $v1, 0x3c($sp) +/* 063C64 7F02F134 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 063C68 7F02F138 81090036 */ lb $t1, 0x36($t0) +/* 063C6C 7F02F13C 51200014 */ beql $t1, $zero, .L7F02F190 +/* 063C70 7F02F140 C4600020 */ lwc1 $f0, 0x20($v1) +/* 063C74 7F02F144 C4600024 */ lwc1 $f0, 0x24($v1) +/* 063C78 7F02F148 44803000 */ mtc1 $zero, $f6 +/* 063C7C 7F02F14C 8FA40044 */ lw $a0, 0x44($sp) +/* 063C80 7F02F150 4600303E */ c.le.s $f6, $f0 +/* 063C84 7F02F154 00000000 */ nop +/* 063C88 7F02F158 45020008 */ bc1fl .L7F02F17C +/* 063C8C 7F02F15C 8C65001C */ lw $a1, 0x1c($v1) +/* 063C90 7F02F160 44050000 */ mfc1 $a1, $f0 +/* 063C94 7F02F164 8FA40044 */ lw $a0, 0x44($sp) +/* 063C98 7F02F168 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 063C9C 7F02F16C E7A20034 */ swc1 $f2, 0x34($sp) +/* 063CA0 7F02F170 1000001D */ b .L7F02F1E8 +/* 063CA4 7F02F174 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 063CA8 7F02F178 8C65001C */ lw $a1, 0x1c($v1) +.L7F02F17C: +/* 063CAC 7F02F17C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 063CB0 7F02F180 E7A20034 */ swc1 $f2, 0x34($sp) +/* 063CB4 7F02F184 10000018 */ b .L7F02F1E8 +/* 063CB8 7F02F188 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 063CBC 7F02F18C C4600020 */ lwc1 $f0, 0x20($v1) +.L7F02F190: +/* 063CC0 7F02F190 44804000 */ mtc1 $zero, $f8 +/* 063CC4 7F02F194 8FA40044 */ lw $a0, 0x44($sp) +/* 063CC8 7F02F198 4600403E */ c.le.s $f8, $f0 +/* 063CCC 7F02F19C 00000000 */ nop +/* 063CD0 7F02F1A0 45020007 */ bc1fl .L7F02F1C0 +/* 063CD4 7F02F1A4 C4600014 */ lwc1 $f0, 0x14($v1) +/* 063CD8 7F02F1A8 44050000 */ mfc1 $a1, $f0 +/* 063CDC 7F02F1AC 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 063CE0 7F02F1B0 E7A20034 */ swc1 $f2, 0x34($sp) +/* 063CE4 7F02F1B4 1000000C */ b .L7F02F1E8 +/* 063CE8 7F02F1B8 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 063CEC 7F02F1BC C4600014 */ lwc1 $f0, 0x14($v1) +.L7F02F1C0: +/* 063CF0 7F02F1C0 44805000 */ mtc1 $zero, $f10 +/* 063CF4 7F02F1C4 8FA40044 */ lw $a0, 0x44($sp) +/* 063CF8 7F02F1C8 4600503E */ c.le.s $f10, $f0 +/* 063CFC 7F02F1CC 00000000 */ nop +/* 063D00 7F02F1D0 45020006 */ bc1fl .L7F02F1EC +/* 063D04 7F02F1D4 8FAA0048 */ lw $t2, 0x48($sp) +/* 063D08 7F02F1D8 44050000 */ mfc1 $a1, $f0 +/* 063D0C 7F02F1DC 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 063D10 7F02F1E0 E7A20034 */ swc1 $f2, 0x34($sp) +/* 063D14 7F02F1E4 C7A20034 */ lwc1 $f2, 0x34($sp) +.L7F02F1E8: +/* 063D18 7F02F1E8 8FAA0048 */ lw $t2, 0x48($sp) +.L7F02F1EC: +/* 063D1C 7F02F1EC 44808000 */ mtc1 $zero, $f16 +/* 063D20 7F02F1F0 8FA40044 */ lw $a0, 0x44($sp) +/* 063D24 7F02F1F4 8D4B002C */ lw $t3, 0x2c($t2) +/* 063D28 7F02F1F8 C572000C */ lwc1 $f18, 0xc($t3) +/* 063D2C 7F02F1FC 46128032 */ c.eq.s $f16, $f18 +/* 063D30 7F02F200 00000000 */ nop +/* 063D34 7F02F204 45010013 */ bc1t .L7F02F254 +/* 063D38 7F02F208 00000000 */ nop +/* 063D3C 7F02F20C 8C8C0008 */ lw $t4, 8($a0) +/* 063D40 7F02F210 8D850000 */ lw $a1, ($t4) +/* 063D44 7F02F214 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 063D48 7F02F218 E7A20034 */ swc1 $f2, 0x34($sp) +/* 063D4C 7F02F21C C7A20034 */ lwc1 $f2, 0x34($sp) +/* 063D50 7F02F220 E442005C */ swc1 $f2, 0x5c($v0) +/* 063D54 7F02F224 8FAD0048 */ lw $t5, 0x48($sp) +/* 063D58 7F02F228 8DAF002C */ lw $t7, 0x2c($t5) +/* 063D5C 7F02F22C C5E4000C */ lwc1 $f4, 0xc($t7) +/* 063D60 7F02F230 46002187 */ neg.s $f6, $f4 +/* 063D64 7F02F234 46023203 */ div.s $f8, $f6, $f2 +/* 063D68 7F02F238 E4480058 */ swc1 $f8, 0x58($v0) +/* 063D6C 7F02F23C 8FAE0038 */ lw $t6, 0x38($sp) +/* 063D70 7F02F240 11C00004 */ beqz $t6, .L7F02F254 +/* 063D74 7F02F244 00000000 */ nop +/* 063D78 7F02F248 C44A0058 */ lwc1 $f10, 0x58($v0) +/* 063D7C 7F02F24C 46005407 */ neg.s $f16, $f10 +/* 063D80 7F02F250 E4500058 */ swc1 $f16, 0x58($v0) +.L7F02F254: +/* 063D84 7F02F254 10000062 */ b .L7F02F3E0 +/* 063D88 7F02F258 00000000 */ nop +.L7F02F25C: +/* 063D8C 7F02F25C 271802B8 */ addiu $t8, $t8, %lo(D_800302B8) +/* 063D90 7F02F260 13020022 */ beq $t8, $v0, .L7F02F2EC +/* 063D94 7F02F264 3C198003 */ lui $t9, %hi(D_80030300) +/* 063D98 7F02F268 27390300 */ addiu $t9, %lo(D_80030300) # addiu $t9, $t9, 0x300 +/* 063D9C 7F02F26C 1322001F */ beq $t9, $v0, .L7F02F2EC +/* 063DA0 7F02F270 3C088003 */ lui $t0, %hi(D_80030348) +/* 063DA4 7F02F274 25080348 */ addiu $t0, %lo(D_80030348) # addiu $t0, $t0, 0x348 +/* 063DA8 7F02F278 1102001C */ beq $t0, $v0, .L7F02F2EC +/* 063DAC 7F02F27C 3C098003 */ lui $t1, %hi(D_80030390) +/* 063DB0 7F02F280 25290390 */ addiu $t1, %lo(D_80030390) # addiu $t1, $t1, 0x390 +/* 063DB4 7F02F284 11220019 */ beq $t1, $v0, .L7F02F2EC +/* 063DB8 7F02F288 3C0A8003 */ lui $t2, %hi(D_800303D8) +/* 063DBC 7F02F28C 254A03D8 */ addiu $t2, %lo(D_800303D8) # addiu $t2, $t2, 0x3d8 +/* 063DC0 7F02F290 11420016 */ beq $t2, $v0, .L7F02F2EC +/* 063DC4 7F02F294 3C0B8003 */ lui $t3, %hi(D_80030420) +/* 063DC8 7F02F298 256B0420 */ addiu $t3, %lo(D_80030420) # addiu $t3, $t3, 0x420 +/* 063DCC 7F02F29C 11620013 */ beq $t3, $v0, .L7F02F2EC +/* 063DD0 7F02F2A0 3C0C8003 */ lui $t4, %hi(D_80030468) +/* 063DD4 7F02F2A4 258C0468 */ addiu $t4, %lo(D_80030468) # addiu $t4, $t4, 0x468 +/* 063DD8 7F02F2A8 11820010 */ beq $t4, $v0, .L7F02F2EC +/* 063DDC 7F02F2AC 3C0D8003 */ lui $t5, %hi(D_800304B0) +/* 063DE0 7F02F2B0 25AD04B0 */ addiu $t5, %lo(D_800304B0) # addiu $t5, $t5, 0x4b0 +/* 063DE4 7F02F2B4 11A2000D */ beq $t5, $v0, .L7F02F2EC +/* 063DE8 7F02F2B8 3C0F8003 */ lui $t7, %hi(D_800304F8) +/* 063DEC 7F02F2BC 25EF04F8 */ addiu $t7, %lo(D_800304F8) # addiu $t7, $t7, 0x4f8 +/* 063DF0 7F02F2C0 11E2000A */ beq $t7, $v0, .L7F02F2EC +/* 063DF4 7F02F2C4 3C0E8003 */ lui $t6, %hi(D_80030540) +/* 063DF8 7F02F2C8 25CE0540 */ addiu $t6, %lo(D_80030540) # addiu $t6, $t6, 0x540 +/* 063DFC 7F02F2CC 11C20007 */ beq $t6, $v0, .L7F02F2EC +/* 063E00 7F02F2D0 3C188003 */ lui $t8, %hi(D_80030588) +/* 063E04 7F02F2D4 27180588 */ addiu $t8, %lo(D_80030588) # addiu $t8, $t8, 0x588 +/* 063E08 7F02F2D8 13020004 */ beq $t8, $v0, .L7F02F2EC +/* 063E0C 7F02F2DC 3C198003 */ lui $t9, %hi(D_800305D0) +/* 063E10 7F02F2E0 273905D0 */ addiu $t9, %lo(D_800305D0) # addiu $t9, $t9, 0x5d0 +/* 063E14 7F02F2E4 1722003E */ bne $t9, $v0, .L7F02F3E0 +/* 063E18 7F02F2E8 00000000 */ nop +.L7F02F2EC: +/* 063E1C 7F02F2EC 80E80036 */ lb $t0, 0x36($a3) +/* 063E20 7F02F2F0 1500003B */ bnez $t0, .L7F02F3E0 +/* 063E24 7F02F2F4 00000000 */ nop +/* 063E28 7F02F2F8 C4420024 */ lwc1 $f2, 0x24($v0) +/* 063E2C 7F02F2FC 44809000 */ mtc1 $zero, $f18 +/* 063E30 7F02F300 00000000 */ nop +/* 063E34 7F02F304 4602903C */ c.lt.s $f18, $f2 +/* 063E38 7F02F308 00000000 */ nop +/* 063E3C 7F02F30C 45000034 */ bc1f .L7F02F3E0 +/* 063E40 7F02F310 00000000 */ nop +/* 063E44 7F02F314 4602003E */ c.le.s $f0, $f2 +/* 063E48 7F02F318 8FA40044 */ lw $a0, 0x44($sp) +/* 063E4C 7F02F31C 45000030 */ bc1f .L7F02F3E0 +/* 063E50 7F02F320 00000000 */ nop +/* 063E54 7F02F324 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 063E58 7F02F328 E7AC0040 */ swc1 $f12, 0x40($sp) +/* 063E5C 7F02F32C C7AC0040 */ lwc1 $f12, 0x40($sp) +/* 063E60 7F02F330 460C003E */ c.le.s $f0, $f12 +/* 063E64 7F02F334 00000000 */ nop +/* 063E68 7F02F338 45000029 */ bc1f .L7F02F3E0 +/* 063E6C 7F02F33C 00000000 */ nop +/* 063E70 7F02F340 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 063E74 7F02F344 8FA40044 */ lw $a0, 0x44($sp) +/* 063E78 7F02F348 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 063E7C 7F02F34C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 063E80 7F02F350 AFA20024 */ sw $v0, 0x24($sp) +/* 063E84 7F02F354 8FA40048 */ lw $a0, 0x48($sp) +/* 063E88 7F02F358 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 063E8C 7F02F35C 3C053F00 */ lui $a1, 0x3f00 +/* 063E90 7F02F360 8FAA0048 */ lw $t2, 0x48($sp) +/* 063E94 7F02F364 8FA40044 */ lw $a0, 0x44($sp) +/* 063E98 7F02F368 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 063E9C 7F02F36C 8D4B002C */ lw $t3, 0x2c($t2) +/* 063EA0 7F02F370 44812000 */ mtc1 $at, $f4 +/* 063EA4 7F02F374 80860024 */ lb $a2, 0x24($a0) +/* 063EA8 7F02F378 8D670024 */ lw $a3, 0x24($t3) +/* 063EAC 7F02F37C E7A00010 */ swc1 $f0, 0x10($sp) +/* 063EB0 7F02F380 8FA50024 */ lw $a1, 0x24($sp) +/* 063EB4 7F02F384 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 063EB8 7F02F388 E7A40014 */ swc1 $f4, 0x14($sp) +/* 063EBC 7F02F38C 8FAC0048 */ lw $t4, 0x48($sp) +/* 063EC0 7F02F390 8FAE0048 */ lw $t6, 0x48($sp) +/* 063EC4 7F02F394 818D0037 */ lb $t5, 0x37($t4) +/* 063EC8 7F02F398 51A0000E */ beql $t5, $zero, .L7F02F3D4 +/* 063ECC 7F02F39C 8DD8002C */ lw $t8, 0x2c($t6) +/* 063ED0 7F02F3A0 8D8F002C */ lw $t7, 0x2c($t4) +/* 063ED4 7F02F3A4 44803000 */ mtc1 $zero, $f6 +/* 063ED8 7F02F3A8 C5E00014 */ lwc1 $f0, 0x14($t7) +/* 063EDC 7F02F3AC 4600303E */ c.le.s $f6, $f0 +/* 063EE0 7F02F3B0 00000000 */ nop +/* 063EE4 7F02F3B4 4500000A */ bc1f .L7F02F3E0 +/* 063EE8 7F02F3B8 00000000 */ nop +/* 063EEC 7F02F3BC 44050000 */ mfc1 $a1, $f0 +/* 063EF0 7F02F3C0 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 063EF4 7F02F3C4 8FA40044 */ lw $a0, 0x44($sp) +/* 063EF8 7F02F3C8 10000005 */ b .L7F02F3E0 +/* 063EFC 7F02F3CC 00000000 */ nop +/* 063F00 7F02F3D0 8DD8002C */ lw $t8, 0x2c($t6) +.L7F02F3D4: +/* 063F04 7F02F3D4 8FA40044 */ lw $a0, 0x44($sp) +/* 063F08 7F02F3D8 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 063F0C 7F02F3DC 8F05001C */ lw $a1, 0x1c($t8) +.L7F02F3E0: +/* 063F10 7F02F3E0 0FC0B930 */ jal sub_GAME_7F02E4C0 +/* 063F14 7F02F3E4 8FA40048 */ lw $a0, 0x48($sp) +/* 063F18 7F02F3E8 8FBF001C */ lw $ra, 0x1c($sp) +/* 063F1C 7F02F3EC 27BD0048 */ addiu $sp, $sp, 0x48 +/* 063F20 7F02F3F0 03E00008 */ jr $ra +/* 063F24 7F02F3F4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02F3F8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02F3F8 +/* 063F28 7F02F3F8 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 063F2C 7F02F3FC AFB00020 */ sw $s0, 0x20($sp) +/* 063F30 7F02F400 00808025 */ move $s0, $a0 +/* 063F34 7F02F404 AFBF0024 */ sw $ra, 0x24($sp) +/* 063F38 7F02F408 8C84001C */ lw $a0, 0x1c($a0) +/* 063F3C 7F02F40C 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 063F40 7F02F410 AFA40044 */ sw $a0, 0x44($sp) +/* 063F44 7F02F414 8FAE0044 */ lw $t6, 0x44($sp) +/* 063F48 7F02F418 46000086 */ mov.s $f2, $f0 +/* 063F4C 7F02F41C 00003025 */ move $a2, $zero +/* 063F50 7F02F420 81CF0024 */ lb $t7, 0x24($t6) +/* 063F54 7F02F424 02002025 */ move $a0, $s0 +/* 063F58 7F02F428 11E00003 */ beqz $t7, .L7F02F438 +/* 063F5C 7F02F42C 00000000 */ nop +/* 063F60 7F02F430 10000001 */ b .L7F02F438 +/* 063F64 7F02F434 24060001 */ li $a2, 1 +.L7F02F438: +/* 063F68 7F02F438 00C02825 */ move $a1, $a2 +/* 063F6C 7F02F43C AFA6003C */ sw $a2, 0x3c($sp) +/* 063F70 7F02F440 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 063F74 7F02F444 E7A20040 */ swc1 $f2, 0x40($sp) +/* 063F78 7F02F448 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 063F7C 7F02F44C C7A20040 */ lwc1 $f2, 0x40($sp) +/* 063F80 7F02F450 44812000 */ mtc1 $at, $f4 +/* 063F84 7F02F454 8FA6003C */ lw $a2, 0x3c($sp) +/* 063F88 7F02F458 4602203E */ c.le.s $f4, $f2 +/* 063F8C 7F02F45C 00000000 */ nop +/* 063F90 7F02F460 45020009 */ bc1fl .L7F02F488 +/* 063F94 7F02F464 3C014274 */ lui $at, 0x4274 +/* 063F98 7F02F468 50400007 */ beql $v0, $zero, .L7F02F488 +/* 063F9C 7F02F46C 3C014274 */ li $at, 0x42740000 # 61.000000 +/* 063FA0 7F02F470 8C430004 */ lw $v1, 4($v0) +/* 063FA4 7F02F474 2401F7FF */ li $at, -2049 +/* 063FA8 7F02F478 8C780064 */ lw $t8, 0x64($v1) +/* 063FAC 7F02F47C 0301C824 */ and $t9, $t8, $at +/* 063FB0 7F02F480 AC790064 */ sw $t9, 0x64($v1) +/* 063FB4 7F02F484 3C014274 */ li $at, 0x42740000 # 61.000000 +.L7F02F488: +/* 063FB8 7F02F488 44813000 */ mtc1 $at, $f6 +/* 063FBC 7F02F48C 3C0142EE */ li $at, 0x42EE0000 # 119.000000 +/* 063FC0 7F02F490 44814000 */ mtc1 $at, $f8 +/* 063FC4 7F02F494 4602303E */ c.le.s $f6, $f2 +/* 063FC8 7F02F498 00000000 */ nop +/* 063FCC 7F02F49C 45020007 */ bc1fl .L7F02F4BC +/* 063FD0 7F02F4A0 4602403E */ c.le.s $f8, $f2 +/* 063FD4 7F02F4A4 50400005 */ beql $v0, $zero, .L7F02F4BC +/* 063FD8 7F02F4A8 4602403E */ c.le.s $f8, $f2 +/* 063FDC 7F02F4AC 8C430004 */ lw $v1, 4($v0) +/* 063FE0 7F02F4B0 240800B4 */ li $t0, 180 +/* 063FE4 7F02F4B4 A4680082 */ sh $t0, 0x82($v1) +/* 063FE8 7F02F4B8 4602403E */ c.le.s $f8, $f2 +.L7F02F4BC: +/* 063FEC 7F02F4BC 00000000 */ nop +/* 063FF0 7F02F4C0 4502000D */ bc1fl .L7F02F4F8 +/* 063FF4 7F02F4C4 8FA40044 */ lw $a0, 0x44($sp) +/* 063FF8 7F02F4C8 1040000A */ beqz $v0, .L7F02F4F4 +/* 063FFC 7F02F4CC 00064880 */ sll $t1, $a2, 2 +/* 064000 7F02F4D0 02095021 */ addu $t2, $s0, $t1 +/* 064004 7F02F4D4 8D440160 */ lw $a0, 0x160($t2) +/* 064008 7F02F4D8 E7A20040 */ swc1 $f2, 0x40($sp) +/* 06400C 7F02F4DC 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 064010 7F02F4E0 24050003 */ li $a1, 3 +/* 064014 7F02F4E4 960B0012 */ lhu $t3, 0x12($s0) +/* 064018 7F02F4E8 C7A20040 */ lwc1 $f2, 0x40($sp) +/* 06401C 7F02F4EC 356C0001 */ ori $t4, $t3, 1 +/* 064020 7F02F4F0 A60C0012 */ sh $t4, 0x12($s0) +.L7F02F4F4: +/* 064024 7F02F4F4 8FA40044 */ lw $a0, 0x44($sp) +.L7F02F4F8: +/* 064028 7F02F4F8 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 06402C 7F02F4FC E7A20040 */ swc1 $f2, 0x40($sp) +/* 064030 7F02F500 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 064034 7F02F504 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 064038 7F02F508 8FA40044 */ lw $a0, 0x44($sp) +/* 06403C 7F02F50C C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 064040 7F02F510 C7A20040 */ lwc1 $f2, 0x40($sp) +/* 064044 7F02F514 3C0142AE */ li $at, 0x42AE0000 # 87.000000 +/* 064048 7F02F518 460A003E */ c.le.s $f0, $f10 +/* 06404C 7F02F51C 00000000 */ nop +/* 064050 7F02F520 45020006 */ bc1fl .L7F02F53C +/* 064054 7F02F524 44818000 */ mtc1 $at, $f16 +/* 064058 7F02F528 0FC08F92 */ jal sub_GAME_7F023E48 +/* 06405C 7F02F52C 02002025 */ move $a0, $s0 +/* 064060 7F02F530 10000018 */ b .L7F02F594 +/* 064064 7F02F534 8FBF0024 */ lw $ra, 0x24($sp) +/* 064068 7F02F538 44818000 */ mtc1 $at, $f16 +.L7F02F53C: +/* 06406C 7F02F53C 3C0142DC */ li $at, 0x42DC0000 # 110.000000 +/* 064070 7F02F540 4602803E */ c.le.s $f16, $f2 +/* 064074 7F02F544 00000000 */ nop +/* 064078 7F02F548 45020012 */ bc1fl .L7F02F594 +/* 06407C 7F02F54C 8FBF0024 */ lw $ra, 0x24($sp) +/* 064080 7F02F550 44819000 */ mtc1 $at, $f18 +/* 064084 7F02F554 02002025 */ move $a0, $s0 +/* 064088 7F02F558 3C053F80 */ lui $a1, 0x3f80 +/* 06408C 7F02F55C 4612103E */ c.le.s $f2, $f18 +/* 064090 7F02F560 3C063FCC */ lui $a2, (0x3FCCCCCD >> 16) # lui $a2, 0x3fcc +/* 064094 7F02F564 4502000B */ bc1fl .L7F02F594 +/* 064098 7F02F568 8FBF0024 */ lw $ra, 0x24($sp) +/* 06409C 7F02F56C 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0640A0 7F02F570 34C6CCCD */ ori $a2, (0x3FCCCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0640A4 7F02F574 44802000 */ mtc1 $zero, $f4 +/* 0640A8 7F02F578 44070000 */ mfc1 $a3, $f0 +/* 0640AC 7F02F57C 02002025 */ move $a0, $s0 +/* 0640B0 7F02F580 24050001 */ li $a1, 1 +/* 0640B4 7F02F584 3C0642DC */ lui $a2, 0x42dc +/* 0640B8 7F02F588 0FC0B0AC */ jal sub_GAME_7F02C2B0 +/* 0640BC 7F02F58C E7A40010 */ swc1 $f4, 0x10($sp) +/* 0640C0 7F02F590 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02F594: +/* 0640C4 7F02F594 8FB00020 */ lw $s0, 0x20($sp) +/* 0640C8 7F02F598 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0640CC 7F02F59C 03E00008 */ jr $ra +/* 0640D0 7F02F5A0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02F5A4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02F5A4 +/* 0640D4 7F02F5A4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0640D8 7F02F5A8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0640DC 7F02F5AC AFB00020 */ sw $s0, 0x20($sp) +/* 0640E0 7F02F5B0 AFA40030 */ sw $a0, 0x30($sp) +/* 0640E4 7F02F5B4 8C90001C */ lw $s0, 0x1c($a0) +/* 0640E8 7F02F5B8 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 0640EC 7F02F5BC 02002025 */ move $a0, $s0 +/* 0640F0 7F02F5C0 3C0142AC */ li $at, 0x42AC0000 # 86.000000 +/* 0640F4 7F02F5C4 44812000 */ mtc1 $at, $f4 +/* 0640F8 7F02F5C8 46000086 */ mov.s $f2, $f0 +/* 0640FC 7F02F5CC 02002025 */ move $a0, $s0 +/* 064100 7F02F5D0 4604003C */ c.lt.s $f0, $f4 +/* 064104 7F02F5D4 00000000 */ nop +/* 064108 7F02F5D8 4502001D */ bc1fl .L7F02F650 +/* 06410C 7F02F5DC 02002025 */ move $a0, $s0 +/* 064110 7F02F5E0 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 064114 7F02F5E4 E7A20028 */ swc1 $f2, 0x28($sp) +/* 064118 7F02F5E8 C7A20028 */ lwc1 $f2, 0x28($sp) +/* 06411C 7F02F5EC 4602003E */ c.le.s $f0, $f2 +/* 064120 7F02F5F0 00000000 */ nop +/* 064124 7F02F5F4 45020016 */ bc1fl .L7F02F650 +/* 064128 7F02F5F8 02002025 */ move $a0, $s0 +/* 06412C 7F02F5FC 0FC1BD84 */ jal sub_GAME_7F06F610 +/* 064130 7F02F600 02002025 */ move $a0, $s0 +/* 064134 7F02F604 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 064138 7F02F608 3C0141C0 */ li $at, 0x41C00000 # 24.000000 +/* 06413C 7F02F60C 44813000 */ mtc1 $at, $f6 +/* 064140 7F02F610 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 064144 7F02F614 3C180000 */ lui $t8, %hi(0x00006254) # $t8, 0 +/* 064148 7F02F618 27186254 */ addiu $t8, %lo(0x00006254) # addiu $t8, $t8, 0x6254 +/* 06414C 7F02F61C 02002025 */ move $a0, $s0 +/* 064150 7F02F620 00003025 */ move $a2, $zero +/* 064154 7F02F624 3C0742AC */ lui $a3, 0x42ac +/* 064158 7F02F628 E7A00010 */ swc1 $f0, 0x10($sp) +/* 06415C 7F02F62C 01F82821 */ addu $a1, $t7, $t8 +/* 064160 7F02F630 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 064164 7F02F634 E7A60014 */ swc1 $f6, 0x14($sp) +/* 064168 7F02F638 02002025 */ move $a0, $s0 +/* 06416C 7F02F63C 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 064170 7F02F640 3C054303 */ lui $a1, 0x4303 +/* 064174 7F02F644 1000000C */ b .L7F02F678 +/* 064178 7F02F648 8FBF0024 */ lw $ra, 0x24($sp) +/* 06417C 7F02F64C 02002025 */ move $a0, $s0 +.L7F02F650: +/* 064180 7F02F650 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 064184 7F02F654 E7A20028 */ swc1 $f2, 0x28($sp) +/* 064188 7F02F658 C7A20028 */ lwc1 $f2, 0x28($sp) +/* 06418C 7F02F65C 4602003E */ c.le.s $f0, $f2 +/* 064190 7F02F660 00000000 */ nop +/* 064194 7F02F664 45020004 */ bc1fl .L7F02F678 +/* 064198 7F02F668 8FBF0024 */ lw $ra, 0x24($sp) +/* 06419C 7F02F66C 0FC08F2E */ jal sub_GAME_7F023CB8 +/* 0641A0 7F02F670 8FA40030 */ lw $a0, 0x30($sp) +/* 0641A4 7F02F674 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02F678: +/* 0641A8 7F02F678 8FB00020 */ lw $s0, 0x20($sp) +/* 0641AC 7F02F67C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0641B0 7F02F680 03E00008 */ jr $ra +/* 0641B4 7F02F684 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02F688(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02F688 +/* 0641B8 7F02F688 03E00008 */ jr $ra +/* 0641BC 7F02F68C AFA40000 */ sw $a0, ($sp) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02F690(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051FD0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051FD4 +.word 0x40490fdb /*3.1415927*/ +glabel D_80051FD8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051FDC +.word 0x3e9930a7 /*0.29919931*/ +glabel D_80051FE0 +.word 0x3c751aa5 /*0.014959966*/ +glabel D_80051FE4 +.word 0x3ec90fdb /*0.39269909*/ +glabel D_80051FE8 +.word 0x3ca0d97c /*0.019634955*/ +glabel D_80051FEC +.word 0x3fa0d97c /*1.2566371*/ +glabel D_80051FF0 +.word 0x3dc90fdb /*0.098174773*/ +glabel D_80051FF4 +.word 0x3e490fdb /*0.19634955*/ +glabel D_80051FF8 +.word 0x3c751aa5 /*0.014959966*/ +glabel D_80051FFC +.word 0x3ec90fdb /*0.39269909*/ +glabel D_80052000 +.word 0x3c20d97c /*0.0098174773*/ +glabel D_80052004 +.word 0x3fa0d97c /*1.2566371*/ +glabel D_80052008 +.word 0x3d490fdb /*0.049087387*/ +glabel D_8005200C +.word 0x3e00adfd /*0.12566371*/ +glabel D_80052010 +.word 0x3c20d97c /*0.0098174773*/ +.text +glabel sub_GAME_7F02F690 +/* 0641C0 7F02F690 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0641C4 7F02F694 AFBF001C */ sw $ra, 0x1c($sp) +/* 0641C8 7F02F698 AFA60058 */ sw $a2, 0x58($sp) +/* 0641CC 7F02F69C AFA7005C */ sw $a3, 0x5c($sp) +/* 0641D0 7F02F6A0 8C8E001C */ lw $t6, 0x1c($a0) +/* 0641D4 7F02F6A4 8C820018 */ lw $v0, 0x18($a0) +/* 0641D8 7F02F6A8 AFAE0048 */ sw $t6, 0x48($sp) +/* 0641DC 7F02F6AC C4A40000 */ lwc1 $f4, ($a1) +/* 0641E0 7F02F6B0 C4A80008 */ lwc1 $f8, 8($a1) +/* 0641E4 7F02F6B4 C4460008 */ lwc1 $f6, 8($v0) +/* 0641E8 7F02F6B8 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 0641EC 7F02F6BC 46062301 */ sub.s $f12, $f4, $f6 +/* 0641F0 7F02F6C0 0FC16A8C */ jal atan2f +/* 0641F4 7F02F6C4 460A4381 */ sub.s $f14, $f8, $f10 +/* 0641F8 7F02F6C8 8FA40048 */ lw $a0, 0x48($sp) +/* 0641FC 7F02F6CC 0FC1B320 */ jal getsubroty +/* 064200 7F02F6D0 E7A0003C */ swc1 $f0, 0x3c($sp) +/* 064204 7F02F6D4 C7AE003C */ lwc1 $f14, 0x3c($sp) +/* 064208 7F02F6D8 E7A00038 */ swc1 $f0, 0x38($sp) +/* 06420C 7F02F6DC 00001825 */ move $v1, $zero +/* 064210 7F02F6E0 4600703C */ c.lt.s $f14, $f0 +/* 064214 7F02F6E4 3C018005 */ lui $at, %hi(D_80051FD0) +/* 064218 7F02F6E8 46007301 */ sub.s $f12, $f14, $f0 +/* 06421C 7F02F6EC 8FA20058 */ lw $v0, 0x58($sp) +/* 064220 7F02F6F0 8FAF0048 */ lw $t7, 0x48($sp) +/* 064224 7F02F6F4 45000003 */ bc1f .L7F02F704 +/* 064228 7F02F6F8 46006086 */ mov.s $f2, $f12 +/* 06422C 7F02F6FC C4301FD0 */ lwc1 $f16, %lo(D_80051FD0)($at) +/* 064230 7F02F700 46106080 */ add.s $f2, $f12, $f16 +.L7F02F704: +/* 064234 7F02F704 3C018005 */ lui $at, %hi(D_80051FD4) +/* 064238 7F02F708 C4321FD4 */ lwc1 $f18, %lo(D_80051FD4)($at) +/* 06423C 7F02F70C 46001006 */ mov.s $f0, $f2 +/* 064240 7F02F710 3C018005 */ lui $at, %hi(D_80051FD8) +/* 064244 7F02F714 4602903C */ c.lt.s $f18, $f2 +/* 064248 7F02F718 00000000 */ nop +/* 06424C 7F02F71C 45020004 */ bc1fl .L7F02F730 +/* 064250 7F02F720 24010002 */ li $at, 2 +/* 064254 7F02F724 C4241FD8 */ lwc1 $f4, %lo(D_80051FD8)($at) +/* 064258 7F02F728 46022001 */ sub.s $f0, $f4, $f2 +/* 06425C 7F02F72C 24010002 */ li $at, 2 +.L7F02F730: +/* 064260 7F02F730 14410005 */ bne $v0, $at, .L7F02F748 +/* 064264 7F02F734 3C018005 */ lui $at, %hi(D_80051FDC) +/* 064268 7F02F738 C42C1FDC */ lwc1 $f12, %lo(D_80051FDC)($at) +/* 06426C 7F02F73C 3C018005 */ lui $at, %hi(D_80051FE0) +/* 064270 7F02F740 10000030 */ b .L7F02F804 +/* 064274 7F02F744 C4201FE0 */ lwc1 $f0, %lo(D_80051FE0)($at) +.L7F02F748: +/* 064278 7F02F748 24010001 */ li $at, 1 +/* 06427C 7F02F74C 14410017 */ bne $v0, $at, .L7F02F7AC +/* 064280 7F02F750 3C018005 */ lui $at, %hi(D_80051FE4) +/* 064284 7F02F754 C4261FE4 */ lwc1 $f6, %lo(D_80051FE4)($at) +/* 064288 7F02F758 3C018005 */ lui $at, %hi(D_80051FEC) +/* 06428C 7F02F75C 4606003C */ c.lt.s $f0, $f6 +/* 064290 7F02F760 00000000 */ nop +/* 064294 7F02F764 45000004 */ bc1f .L7F02F778 +/* 064298 7F02F768 00000000 */ nop +/* 06429C 7F02F76C 3C018005 */ lui $at, %hi(D_80051FE8) +/* 0642A0 7F02F770 1000000B */ b .L7F02F7A0 +/* 0642A4 7F02F774 C42C1FE8 */ lwc1 $f12, %lo(D_80051FE8)($at) +.L7F02F778: +/* 0642A8 7F02F778 C4281FEC */ lwc1 $f8, %lo(D_80051FEC)($at) +/* 0642AC 7F02F77C 3C018005 */ lui $at, %hi(D_80051FF4) +/* 0642B0 7F02F780 4608003C */ c.lt.s $f0, $f8 +/* 0642B4 7F02F784 00000000 */ nop +/* 0642B8 7F02F788 45000004 */ bc1f .L7F02F79C +/* 0642BC 7F02F78C 00000000 */ nop +/* 0642C0 7F02F790 3C018005 */ lui $at, %hi(D_80051FF0) +/* 0642C4 7F02F794 10000002 */ b .L7F02F7A0 +/* 0642C8 7F02F798 C42C1FF0 */ lwc1 $f12, %lo(D_80051FF0)($at) +.L7F02F79C: +/* 0642CC 7F02F79C C42C1FF4 */ lwc1 $f12, %lo(D_80051FF4)($at) +.L7F02F7A0: +/* 0642D0 7F02F7A0 3C018005 */ lui $at, %hi(D_80051FF8) +/* 0642D4 7F02F7A4 10000017 */ b .L7F02F804 +/* 0642D8 7F02F7A8 C4201FF8 */ lwc1 $f0, %lo(D_80051FF8)($at) +.L7F02F7AC: +/* 0642DC 7F02F7AC 3C018005 */ lui $at, %hi(D_80051FFC) +/* 0642E0 7F02F7B0 C42A1FFC */ lwc1 $f10, %lo(D_80051FFC)($at) +/* 0642E4 7F02F7B4 3C018005 */ lui $at, %hi(D_80052004) +/* 0642E8 7F02F7B8 460A003C */ c.lt.s $f0, $f10 +/* 0642EC 7F02F7BC 00000000 */ nop +/* 0642F0 7F02F7C0 45000004 */ bc1f .L7F02F7D4 +/* 0642F4 7F02F7C4 00000000 */ nop +/* 0642F8 7F02F7C8 3C018005 */ lui $at, %hi(D_80052000) +/* 0642FC 7F02F7CC 1000000B */ b .L7F02F7FC +/* 064300 7F02F7D0 C42C2000 */ lwc1 $f12, %lo(D_80052000)($at) +.L7F02F7D4: +/* 064304 7F02F7D4 C4302004 */ lwc1 $f16, %lo(D_80052004)($at) +/* 064308 7F02F7D8 3C018005 */ lui $at, %hi(D_8005200C) +/* 06430C 7F02F7DC 4610003C */ c.lt.s $f0, $f16 +/* 064310 7F02F7E0 00000000 */ nop +/* 064314 7F02F7E4 45000004 */ bc1f .L7F02F7F8 +/* 064318 7F02F7E8 00000000 */ nop +/* 06431C 7F02F7EC 3C018005 */ lui $at, %hi(D_80052008) +/* 064320 7F02F7F0 10000002 */ b .L7F02F7FC +/* 064324 7F02F7F4 C42C2008 */ lwc1 $f12, %lo(D_80052008)($at) +.L7F02F7F8: +/* 064328 7F02F7F8 C42C200C */ lwc1 $f12, %lo(D_8005200C)($at) +.L7F02F7FC: +/* 06432C 7F02F7FC 3C018005 */ lui $at, %hi(D_80052010) +/* 064330 7F02F800 C4202010 */ lwc1 $f0, %lo(D_80052010)($at) +.L7F02F804: +/* 064334 7F02F804 C5E200A4 */ lwc1 $f2, 0xa4($t7) +/* 064338 7F02F808 44057000 */ mfc1 $a1, $f14 +/* 06433C 7F02F80C E7AE003C */ swc1 $f14, 0x3c($sp) +/* 064340 7F02F810 46026302 */ mul.s $f12, $f12, $f2 +/* 064344 7F02F814 AFA30024 */ sw $v1, 0x24($sp) +/* 064348 7F02F818 27A40038 */ addiu $a0, $sp, 0x38 +/* 06434C 7F02F81C 46020002 */ mul.s $f0, $f0, $f2 +/* 064350 7F02F820 8FA6005C */ lw $a2, 0x5c($sp) +/* 064354 7F02F824 E7AC0014 */ swc1 $f12, 0x14($sp) +/* 064358 7F02F828 46000480 */ add.s $f18, $f0, $f0 +/* 06435C 7F02F82C 44070000 */ mfc1 $a3, $f0 +/* 064360 7F02F830 0FC10C43 */ jal sub_GAME_7F04310C +/* 064364 7F02F834 E7B20010 */ swc1 $f18, 0x10($sp) +/* 064368 7F02F838 C7AE003C */ lwc1 $f14, 0x3c($sp) +/* 06436C 7F02F83C C7A40038 */ lwc1 $f4, 0x38($sp) +/* 064370 7F02F840 8FA30024 */ lw $v1, 0x24($sp) +/* 064374 7F02F844 8FB8005C */ lw $t8, 0x5c($sp) +/* 064378 7F02F848 460E2032 */ c.eq.s $f4, $f14 +/* 06437C 7F02F84C 00000000 */ nop +/* 064380 7F02F850 45020005 */ bc1fl .L7F02F868 +/* 064384 7F02F854 8FA40048 */ lw $a0, 0x48($sp) +/* 064388 7F02F858 44803000 */ mtc1 $zero, $f6 +/* 06438C 7F02F85C 24030001 */ li $v1, 1 +/* 064390 7F02F860 E7060000 */ swc1 $f6, ($t8) +/* 064394 7F02F864 8FA40048 */ lw $a0, 0x48($sp) +.L7F02F868: +/* 064398 7F02F868 8FA50038 */ lw $a1, 0x38($sp) +/* 06439C 7F02F86C 0FC1B34F */ jal setsubroty +/* 0643A0 7F02F870 AFA30024 */ sw $v1, 0x24($sp) +/* 0643A4 7F02F874 8FBF001C */ lw $ra, 0x1c($sp) +/* 0643A8 7F02F878 8FA20024 */ lw $v0, 0x24($sp) +/* 0643AC 7F02F87C 27BD0050 */ addiu $sp, $sp, 0x50 +/* 0643B0 7F02F880 03E00008 */ jr $ra +/* 0643B4 7F02F884 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02F888(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02F888 +/* 0643B8 7F02F888 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0643BC 7F02F88C AFBF002C */ sw $ra, 0x2c($sp) +/* 0643C0 7F02F890 AFB00020 */ sw $s0, 0x20($sp) +/* 0643C4 7F02F894 AFB20028 */ sw $s2, 0x28($sp) +/* 0643C8 7F02F898 AFB10024 */ sw $s1, 0x24($sp) +/* 0643CC 7F02F89C 00808025 */ move $s0, $a0 +/* 0643D0 7F02F8A0 8C91001C */ lw $s1, 0x1c($a0) +/* 0643D4 7F02F8A4 0FC225E6 */ jal get_curplayer_positiondata +/* 0643D8 7F02F8A8 8C920018 */ lw $s2, 0x18($a0) +/* 0643DC 7F02F8AC 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 0643E0 7F02F8B0 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 0643E4 7F02F8B4 8E0E0030 */ lw $t6, 0x30($s0) +/* 0643E8 7F02F8B8 3C048005 */ lui $a0, %hi(global_timer) +/* 0643EC 7F02F8BC 82080009 */ lb $t0, 9($s0) +/* 0643F0 7F02F8C0 01CFC021 */ addu $t8, $t6, $t7 +/* 0643F4 7F02F8C4 2484837C */ addiu $a0, %lo(global_timer) # addiu $a0, $a0, -0x7c84 +/* 0643F8 7F02F8C8 AE180030 */ sw $t8, 0x30($s0) +/* 0643FC 7F02F8CC 8C990000 */ lw $t9, ($a0) +/* 064400 7F02F8D0 24010001 */ li $at, 1 +/* 064404 7F02F8D4 00401825 */ move $v1, $v0 +/* 064408 7F02F8D8 1101000B */ beq $t0, $at, .L7F02F908 +/* 06440C 7F02F8DC AE1900C8 */ sw $t9, 0xc8($s0) +/* 064410 7F02F8E0 8C8A0000 */ lw $t2, ($a0) +/* 064414 7F02F8E4 8E0900CC */ lw $t1, 0xcc($s0) +/* 064418 7F02F8E8 254BFFC4 */ addiu $t3, $t2, -0x3c +/* 06441C 7F02F8EC 012B082A */ slt $at, $t1, $t3 +/* 064420 7F02F8F0 14200005 */ bnez $at, .L7F02F908 +/* 064424 7F02F8F4 00000000 */ nop +/* 064428 7F02F8F8 8E0C0034 */ lw $t4, 0x34($s0) +/* 06442C 7F02F8FC 0198082A */ slt $at, $t4, $t8 +/* 064430 7F02F900 50200035 */ beql $at, $zero, .L7F02F9D8 +/* 064434 7F02F904 C4520008 */ lwc1 $f18, 8($v0) +.L7F02F908: +/* 064438 7F02F908 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 06443C 7F02F90C 02202025 */ move $a0, $s1 +/* 064440 7F02F910 E7A00034 */ swc1 $f0, 0x34($sp) +/* 064444 7F02F914 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 064448 7F02F918 02202025 */ move $a0, $s1 +/* 06444C 7F02F91C 944E0004 */ lhu $t6, 4($v0) +/* 064450 7F02F920 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 064454 7F02F924 02202025 */ move $a0, $s1 +/* 064458 7F02F928 448E2000 */ mtc1 $t6, $f4 +/* 06445C 7F02F92C 24050000 */ li $a1, 0 +/* 064460 7F02F930 05C10004 */ bgez $t6, .L7F02F944 +/* 064464 7F02F934 468021A0 */ cvt.s.w $f6, $f4 +/* 064468 7F02F938 44814000 */ mtc1 $at, $f8 +/* 06446C 7F02F93C 00000000 */ nop +/* 064470 7F02F940 46083180 */ add.s $f6, $f6, $f8 +.L7F02F944: +/* 064474 7F02F944 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 064478 7F02F948 44815000 */ mtc1 $at, $f10 +/* 06447C 7F02F94C C7B20034 */ lwc1 $f18, 0x34($sp) +/* 064480 7F02F950 460A3402 */ mul.s $f16, $f6, $f10 +/* 064484 7F02F954 4612803C */ c.lt.s $f16, $f18 +/* 064488 7F02F958 00000000 */ nop +/* 06448C 7F02F95C 45000005 */ bc1f .L7F02F974 +/* 064490 7F02F960 00000000 */ nop +/* 064494 7F02F964 0FC1BFA4 */ jal sub_GAME_7F06FE90 +/* 064498 7F02F968 3C064180 */ lui $a2, 0x4180 +/* 06449C 7F02F96C 10000013 */ b .L7F02F9BC +/* 0644A0 7F02F970 00000000 */ nop +.L7F02F974: +/* 0644A4 7F02F974 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 0644A8 7F02F978 02202025 */ move $a0, $s1 +/* 0644AC 7F02F97C 944F0004 */ lhu $t7, 4($v0) +/* 0644B0 7F02F980 02202025 */ move $a0, $s1 +/* 0644B4 7F02F984 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0644B8 7F02F988 448F2000 */ mtc1 $t7, $f4 +/* 0644BC 7F02F98C 05E10004 */ bgez $t7, .L7F02F9A0 +/* 0644C0 7F02F990 46802220 */ cvt.s.w $f8, $f4 +/* 0644C4 7F02F994 44813000 */ mtc1 $at, $f6 +/* 0644C8 7F02F998 00000000 */ nop +/* 0644CC 7F02F99C 46064200 */ add.s $f8, $f8, $f6 +.L7F02F9A0: +/* 0644D0 7F02F9A0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0644D4 7F02F9A4 44815000 */ mtc1 $at, $f10 +/* 0644D8 7F02F9A8 3C064180 */ lui $a2, 0x4180 +/* 0644DC 7F02F9AC 460A4402 */ mul.s $f16, $f8, $f10 +/* 0644E0 7F02F9B0 44058000 */ mfc1 $a1, $f16 +/* 0644E4 7F02F9B4 0FC1BFA4 */ jal sub_GAME_7F06FE90 +/* 0644E8 7F02F9B8 00000000 */ nop +.L7F02F9BC: +/* 0644EC 7F02F9BC 0FC0A6EC */ jal sub_GAME_7F029BB0 +/* 0644F0 7F02F9C0 02002025 */ move $a0, $s0 +/* 0644F4 7F02F9C4 0FC08F92 */ jal sub_GAME_7F023E48 +/* 0644F8 7F02F9C8 02002025 */ move $a0, $s0 +/* 0644FC 7F02F9CC 10000094 */ b .L7F02FC20 +/* 064500 7F02F9D0 8FBF002C */ lw $ra, 0x2c($sp) +/* 064504 7F02F9D4 C4520008 */ lwc1 $f18, 8($v0) +.L7F02F9D8: +/* 064508 7F02F9D8 C6440008 */ lwc1 $f4, 8($s2) +/* 06450C 7F02F9DC 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 064510 7F02F9E0 44816000 */ mtc1 $at, $f12 +/* 064514 7F02F9E4 46049001 */ sub.s $f0, $f18, $f4 +/* 064518 7F02F9E8 C4460010 */ lwc1 $f6, 0x10($v0) +/* 06451C 7F02F9EC C6480010 */ lwc1 $f8, 0x10($s2) +/* 064520 7F02F9F0 3C01C396 */ li $at, 0xC3960000 # -300.000000 +/* 064524 7F02F9F4 460C003C */ c.lt.s $f0, $f12 +/* 064528 7F02F9F8 02002025 */ move $a0, $s0 +/* 06452C 7F02F9FC 24650008 */ addiu $a1, $v1, 8 +/* 064530 7F02FA00 00003025 */ move $a2, $zero +/* 064534 7F02FA04 45000015 */ bc1f .L7F02FA5C +/* 064538 7F02FA08 46083081 */ sub.s $f2, $f6, $f8 +/* 06453C 7F02FA0C 44817000 */ mtc1 $at, $f14 +/* 064540 7F02FA10 00000000 */ nop +/* 064544 7F02FA14 4600703C */ c.lt.s $f14, $f0 +/* 064548 7F02FA18 00000000 */ nop +/* 06454C 7F02FA1C 4500000F */ bc1f .L7F02FA5C +/* 064550 7F02FA20 00000000 */ nop +/* 064554 7F02FA24 460C103C */ c.lt.s $f2, $f12 +/* 064558 7F02FA28 00000000 */ nop +/* 06455C 7F02FA2C 4500000B */ bc1f .L7F02FA5C +/* 064560 7F02FA30 00000000 */ nop +/* 064564 7F02FA34 4602703C */ c.lt.s $f14, $f2 +/* 064568 7F02FA38 00000000 */ nop +/* 06456C 7F02FA3C 45000007 */ bc1f .L7F02FA5C +/* 064570 7F02FA40 00000000 */ nop +/* 064574 7F02FA44 0FC0A6EC */ jal sub_GAME_7F029BB0 +/* 064578 7F02FA48 02002025 */ move $a0, $s0 +/* 06457C 7F02FA4C 0FC08F92 */ jal sub_GAME_7F023E48 +/* 064580 7F02FA50 02002025 */ move $a0, $s0 +/* 064584 7F02FA54 10000072 */ b .L7F02FC20 +/* 064588 7F02FA58 8FBF002C */ lw $ra, 0x2c($sp) +.L7F02FA5C: +/* 06458C 7F02FA5C 0FC0BDA4 */ jal sub_GAME_7F02F690 +/* 064590 7F02FA60 26070054 */ addiu $a3, $s0, 0x54 +/* 064594 7F02FA64 10400002 */ beqz $v0, .L7F02FA70 +/* 064598 7F02FA68 24180001 */ li $t8, 1 +/* 06459C 7F02FA6C AE180038 */ sw $t8, 0x38($s0) +.L7F02FA70: +/* 0645A0 7F02FA70 8E190030 */ lw $t9, 0x30($s0) +/* 0645A4 7F02FA74 02002025 */ move $a0, $s0 +/* 0645A8 7F02FA78 2B210015 */ slti $at, $t9, 0x15 +/* 0645AC 7F02FA7C 14200009 */ bnez $at, .L7F02FAA4 +/* 0645B0 7F02FA80 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0645B4 7F02FA84 44815000 */ mtc1 $at, $f10 +/* 0645B8 7F02FA88 8E05003C */ lw $a1, 0x3c($s0) +/* 0645BC 7F02FA8C 82060049 */ lb $a2, 0x49($s0) +/* 0645C0 7F02FA90 82070048 */ lb $a3, 0x48($s0) +/* 0645C4 7F02FA94 0FC0B130 */ jal sub_GAME_7F02C4C0 +/* 0645C8 7F02FA98 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0645CC 7F02FA9C 10000004 */ b .L7F02FAB0 +/* 0645D0 7F02FAA0 8E080038 */ lw $t0, 0x38($s0) +.L7F02FAA4: +/* 0645D4 7F02FAA4 0FC0B43E */ jal sub_GAME_7F02D0F8 +/* 0645D8 7F02FAA8 02002025 */ move $a0, $s0 +/* 0645DC 7F02FAAC 8E080038 */ lw $t0, 0x38($s0) +.L7F02FAB0: +/* 0645E0 7F02FAB0 02002025 */ move $a0, $s0 +/* 0645E4 7F02FAB4 24050001 */ li $a1, 1 +/* 0645E8 7F02FAB8 11000052 */ beqz $t0, .L7F02FC04 +/* 0645EC 7F02FABC 00000000 */ nop +/* 0645F0 7F02FAC0 8E0A0030 */ lw $t2, 0x30($s0) +/* 0645F4 7F02FAC4 00008825 */ move $s1, $zero +/* 0645F8 7F02FAC8 02009025 */ move $s2, $s0 +/* 0645FC 7F02FACC 2941001F */ slti $at, $t2, 0x1f +/* 064600 7F02FAD0 1420004C */ bnez $at, .L7F02FC04 +/* 064604 7F02FAD4 00000000 */ nop +.L7F02FAD8: +/* 064608 7F02FAD8 82490048 */ lb $t1, 0x48($s2) +/* 06460C 7F02FADC 02002025 */ move $a0, $s0 +/* 064610 7F02FAE0 02202825 */ move $a1, $s1 +/* 064614 7F02FAE4 1120003F */ beqz $t1, .L7F02FBE4 +/* 064618 7F02FAE8 00000000 */ nop +/* 06461C 7F02FAEC 824B004A */ lb $t3, 0x4a($s2) +/* 064620 7F02FAF0 02002025 */ move $a0, $s0 +/* 064624 7F02FAF4 02202825 */ move $a1, $s1 +/* 064628 7F02FAF8 55600006 */ bnezl $t3, .L7F02FB14 +/* 06462C 7F02FAFC 8E020030 */ lw $v0, 0x30($s0) +/* 064630 7F02FB00 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 064634 7F02FB04 24060001 */ li $a2, 1 +/* 064638 7F02FB08 10000039 */ b .L7F02FBF0 +/* 06463C 7F02FB0C 26310001 */ addiu $s1, $s1, 1 +/* 064640 7F02FB10 8E020030 */ lw $v0, 0x30($s0) +.L7F02FB14: +/* 064644 7F02FB14 8E0C0040 */ lw $t4, 0x40($s0) +/* 064648 7F02FB18 02002025 */ move $a0, $s0 +/* 06464C 7F02FB1C 02202825 */ move $a1, $s1 +/* 064650 7F02FB20 0182082A */ slt $at, $t4, $v0 +/* 064654 7F02FB24 1020002B */ beqz $at, .L7F02FBD4 +/* 064658 7F02FB28 00000000 */ nop +/* 06465C 7F02FB2C 8E030044 */ lw $v1, 0x44($s0) +/* 064660 7F02FB30 00117823 */ negu $t7, $s1 +/* 064664 7F02FB34 020FC021 */ addu $t8, $s0, $t7 +/* 064668 7F02FB38 12230004 */ beq $s1, $v1, .L7F02FB4C +/* 06466C 7F02FB3C 02036821 */ addu $t5, $s0, $v1 +/* 064670 7F02FB40 81AE004A */ lb $t6, 0x4a($t5) +/* 064674 7F02FB44 15C00023 */ bnez $t6, .L7F02FBD4 +/* 064678 7F02FB48 00000000 */ nop +.L7F02FB4C: +/* 06467C 7F02FB4C AE020040 */ sw $v0, 0x40($s0) +/* 064680 7F02FB50 8319004B */ lb $t9, 0x4b($t8) +/* 064684 7F02FB54 240A0001 */ li $t2, 1 +/* 064688 7F02FB58 02002025 */ move $a0, $s0 +/* 06468C 7F02FB5C 5320000C */ beql $t9, $zero, .L7F02FB90 +/* 064690 7F02FB60 824D004C */ lb $t5, 0x4c($s2) +/* 064694 7F02FB64 8248004C */ lb $t0, 0x4c($s2) +/* 064698 7F02FB68 2449005A */ addiu $t1, $v0, 0x5a +/* 06469C 7F02FB6C 51000004 */ beql $t0, $zero, .L7F02FB80 +/* 0646A0 7F02FB70 8E0B0040 */ lw $t3, 0x40($s0) +/* 0646A4 7F02FB74 1000000F */ b .L7F02FBB4 +/* 0646A8 7F02FB78 AE090040 */ sw $t1, 0x40($s0) +/* 0646AC 7F02FB7C 8E0B0040 */ lw $t3, 0x40($s0) +.L7F02FB80: +/* 0646B0 7F02FB80 256C0014 */ addiu $t4, $t3, 0x14 +/* 0646B4 7F02FB84 1000000B */ b .L7F02FBB4 +/* 0646B8 7F02FB88 AE0C0040 */ sw $t4, 0x40($s0) +/* 0646BC 7F02FB8C 824D004C */ lb $t5, 0x4c($s2) +.L7F02FB90: +/* 0646C0 7F02FB90 51A00006 */ beql $t5, $zero, .L7F02FBAC +/* 0646C4 7F02FB94 8E180040 */ lw $t8, 0x40($s0) +/* 0646C8 7F02FB98 8E0E0040 */ lw $t6, 0x40($s0) +/* 0646CC 7F02FB9C 25CF00B4 */ addiu $t7, $t6, 0xb4 +/* 0646D0 7F02FBA0 10000004 */ b .L7F02FBB4 +/* 0646D4 7F02FBA4 AE0F0040 */ sw $t7, 0x40($s0) +/* 0646D8 7F02FBA8 8E180040 */ lw $t8, 0x40($s0) +.L7F02FBAC: +/* 0646DC 7F02FBAC 27190028 */ addiu $t9, $t8, 0x28 +/* 0646E0 7F02FBB0 AE190040 */ sw $t9, 0x40($s0) +.L7F02FBB4: +/* 0646E4 7F02FBB4 8E080044 */ lw $t0, 0x44($s0) +/* 0646E8 7F02FBB8 02202825 */ move $a1, $s1 +/* 0646EC 7F02FBBC 24060001 */ li $a2, 1 +/* 0646F0 7F02FBC0 01484823 */ subu $t1, $t2, $t0 +/* 0646F4 7F02FBC4 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 0646F8 7F02FBC8 AE090044 */ sw $t1, 0x44($s0) +/* 0646FC 7F02FBCC 10000008 */ b .L7F02FBF0 +/* 064700 7F02FBD0 26310001 */ addiu $s1, $s1, 1 +.L7F02FBD4: +/* 064704 7F02FBD4 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 064708 7F02FBD8 00003025 */ move $a2, $zero +/* 06470C 7F02FBDC 10000004 */ b .L7F02FBF0 +/* 064710 7F02FBE0 26310001 */ addiu $s1, $s1, 1 +.L7F02FBE4: +/* 064714 7F02FBE4 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 064718 7F02FBE8 00003025 */ move $a2, $zero +/* 06471C 7F02FBEC 26310001 */ addiu $s1, $s1, 1 +.L7F02FBF0: +/* 064720 7F02FBF0 24010002 */ li $at, 2 +/* 064724 7F02FBF4 1621FFB8 */ bne $s1, $at, .L7F02FAD8 +/* 064728 7F02FBF8 26520001 */ addiu $s2, $s2, 1 +/* 06472C 7F02FBFC 10000008 */ b .L7F02FC20 +/* 064730 7F02FC00 8FBF002C */ lw $ra, 0x2c($sp) +.L7F02FC04: +/* 064734 7F02FC04 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 064738 7F02FC08 00003025 */ move $a2, $zero +/* 06473C 7F02FC0C 02002025 */ move $a0, $s0 +/* 064740 7F02FC10 00002825 */ move $a1, $zero +/* 064744 7F02FC14 0FC0B471 */ jal sub_GAME_7F02D1C4 +/* 064748 7F02FC18 00003025 */ move $a2, $zero +/* 06474C 7F02FC1C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F02FC20: +/* 064750 7F02FC20 8FB00020 */ lw $s0, 0x20($sp) +/* 064754 7F02FC24 8FB10024 */ lw $s1, 0x24($sp) +/* 064758 7F02FC28 8FB20028 */ lw $s2, 0x28($sp) +/* 06475C 7F02FC2C 03E00008 */ jr $ra +/* 064760 7F02FC30 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02FC34(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02FC34 +/* 064764 7F02FC34 C4C40000 */ lwc1 $f4, ($a2) +/* 064768 7F02FC38 C4860000 */ lwc1 $f6, ($a0) +/* 06476C 7F02FC3C 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 064770 7F02FC40 44808000 */ mtc1 $zero, $f16 +/* 064774 7F02FC44 46062201 */ sub.s $f8, $f4, $f6 +/* 064778 7F02FC48 44876000 */ mtc1 $a3, $f12 +/* 06477C 7F02FC4C E7A80004 */ swc1 $f8, 4($sp) +/* 064780 7F02FC50 C4840008 */ lwc1 $f4, 8($a0) +/* 064784 7F02FC54 C4CA0008 */ lwc1 $f10, 8($a2) +/* 064788 7F02FC58 46045181 */ sub.s $f6, $f10, $f4 +/* 06478C 7F02FC5C E7A6000C */ swc1 $f6, 0xc($sp) +/* 064790 7F02FC60 C4A00000 */ lwc1 $f0, ($a1) +/* 064794 7F02FC64 C7AA000C */ lwc1 $f10, 0xc($sp) +/* 064798 7F02FC68 46008032 */ c.eq.s $f16, $f0 +/* 06479C 7F02FC6C 00000000 */ nop +/* 0647A0 7F02FC70 45020015 */ bc1fl .L7F02FCC8 +/* 0647A4 7F02FC74 C4A20008 */ lwc1 $f2, 8($a1) +/* 0647A8 7F02FC78 C4A80008 */ lwc1 $f8, 8($a1) +/* 0647AC 7F02FC7C C7A2000C */ lwc1 $f2, 0xc($sp) +/* 0647B0 7F02FC80 46088032 */ c.eq.s $f16, $f8 +/* 0647B4 7F02FC84 00000000 */ nop +/* 0647B8 7F02FC88 4502000F */ bc1fl .L7F02FCC8 +/* 0647BC 7F02FC8C C4A20008 */ lwc1 $f2, 8($a1) +/* 0647C0 7F02FC90 46021282 */ mul.s $f10, $f2, $f2 +/* 0647C4 7F02FC94 C7A00004 */ lwc1 $f0, 4($sp) +/* 0647C8 7F02FC98 00001025 */ move $v0, $zero +/* 0647CC 7F02FC9C 46000102 */ mul.s $f4, $f0, $f0 +/* 0647D0 7F02FCA0 46045180 */ add.s $f6, $f10, $f4 +/* 0647D4 7F02FCA4 460C6202 */ mul.s $f8, $f12, $f12 +/* 0647D8 7F02FCA8 4608303E */ c.le.s $f6, $f8 +/* 0647DC 7F02FCAC 00000000 */ nop +/* 0647E0 7F02FCB0 45000025 */ bc1f .L7F02FD48 +/* 0647E4 7F02FCB4 00000000 */ nop +/* 0647E8 7F02FCB8 24020001 */ li $v0, 1 +/* 0647EC 7F02FCBC 10000022 */ b .L7F02FD48 +/* 0647F0 7F02FCC0 00000000 */ nop +/* 0647F4 7F02FCC4 C4A20008 */ lwc1 $f2, 8($a1) +.L7F02FCC8: +/* 0647F8 7F02FCC8 C7A80004 */ lwc1 $f8, 4($sp) +/* 0647FC 7F02FCCC 00001025 */ move $v0, $zero +/* 064800 7F02FCD0 46025102 */ mul.s $f4, $f10, $f2 +/* 064804 7F02FCD4 00000000 */ nop +/* 064808 7F02FCD8 46080182 */ mul.s $f6, $f0, $f8 +/* 06480C 7F02FCDC 46062380 */ add.s $f14, $f4, $f6 +/* 064810 7F02FCE0 460E803C */ c.lt.s $f16, $f14 +/* 064814 7F02FCE4 00000000 */ nop +/* 064818 7F02FCE8 45000017 */ bc1f .L7F02FD48 +/* 06481C 7F02FCEC 00000000 */ nop +/* 064820 7F02FCF0 46021102 */ mul.s $f4, $f2, $f2 +/* 064824 7F02FCF4 00000000 */ nop +/* 064828 7F02FCF8 46000182 */ mul.s $f6, $f0, $f0 +/* 06482C 7F02FCFC 46062400 */ add.s $f16, $f4, $f6 +/* 064830 7F02FD00 460A5102 */ mul.s $f4, $f10, $f10 +/* 064834 7F02FD04 00000000 */ nop +/* 064838 7F02FD08 46084182 */ mul.s $f6, $f8, $f8 +/* 06483C 7F02FD0C 00000000 */ nop +/* 064840 7F02FD10 460E7282 */ mul.s $f10, $f14, $f14 +/* 064844 7F02FD14 00000000 */ nop +/* 064848 7F02FD18 460C6202 */ mul.s $f8, $f12, $f12 +/* 06484C 7F02FD1C 46062480 */ add.s $f18, $f4, $f6 +/* 064850 7F02FD20 46089101 */ sub.s $f4, $f18, $f8 +/* 064854 7F02FD24 46102182 */ mul.s $f6, $f4, $f16 +/* 064858 7F02FD28 460A303E */ c.le.s $f6, $f10 +/* 06485C 7F02FD2C 00000000 */ nop +/* 064860 7F02FD30 45000003 */ bc1f .L7F02FD40 +/* 064864 7F02FD34 00000000 */ nop +/* 064868 7F02FD38 10000003 */ b .L7F02FD48 +/* 06486C 7F02FD3C 24020001 */ li $v0, 1 +.L7F02FD40: +/* 064870 7F02FD40 10000001 */ b .L7F02FD48 +/* 064874 7F02FD44 00001025 */ move $v0, $zero +.L7F02FD48: +/* 064878 7F02FD48 03E00008 */ jr $ra +/* 06487C 7F02FD4C 27BD0010 */ addiu $sp, $sp, 0x10 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02FD50(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02FD50 +/* 064880 7F02FD50 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 064884 7F02FD54 AFBF001C */ sw $ra, 0x1c($sp) +/* 064888 7F02FD58 AFB00018 */ sw $s0, 0x18($sp) +/* 06488C 7F02FD5C 44876000 */ mtc1 $a3, $f12 +/* 064890 7F02FD60 C4C00000 */ lwc1 $f0, ($a2) +/* 064894 7F02FD64 C4900000 */ lwc1 $f16, ($a0) +/* 064898 7F02FD68 00A08025 */ move $s0, $a1 +/* 06489C 7F02FD6C 460C0081 */ sub.s $f2, $f0, $f12 +/* 0648A0 7F02FD70 4602803E */ c.le.s $f16, $f2 +/* 0648A4 7F02FD74 00000000 */ nop +/* 0648A8 7F02FD78 45020009 */ bc1fl .L7F02FDA0 +/* 0648AC 7F02FD7C 460C0080 */ add.s $f2, $f0, $f12 +/* 0648B0 7F02FD80 C4A40000 */ lwc1 $f4, ($a1) +/* 0648B4 7F02FD84 4602203E */ c.le.s $f4, $f2 +/* 0648B8 7F02FD88 00000000 */ nop +/* 0648BC 7F02FD8C 45020004 */ bc1fl .L7F02FDA0 +/* 0648C0 7F02FD90 460C0080 */ add.s $f2, $f0, $f12 +/* 0648C4 7F02FD94 10000033 */ b .L7F02FE64 +/* 0648C8 7F02FD98 00001025 */ move $v0, $zero +/* 0648CC 7F02FD9C 460C0080 */ add.s $f2, $f0, $f12 +.L7F02FDA0: +/* 0648D0 7F02FDA0 4610103E */ c.le.s $f2, $f16 +/* 0648D4 7F02FDA4 00000000 */ nop +/* 0648D8 7F02FDA8 45020009 */ bc1fl .L7F02FDD0 +/* 0648DC 7F02FDAC C4C00008 */ lwc1 $f0, 8($a2) +/* 0648E0 7F02FDB0 C6060000 */ lwc1 $f6, ($s0) +/* 0648E4 7F02FDB4 4606103E */ c.le.s $f2, $f6 +/* 0648E8 7F02FDB8 00000000 */ nop +/* 0648EC 7F02FDBC 45020004 */ bc1fl .L7F02FDD0 +/* 0648F0 7F02FDC0 C4C00008 */ lwc1 $f0, 8($a2) +/* 0648F4 7F02FDC4 10000027 */ b .L7F02FE64 +/* 0648F8 7F02FDC8 00001025 */ move $v0, $zero +/* 0648FC 7F02FDCC C4C00008 */ lwc1 $f0, 8($a2) +.L7F02FDD0: +/* 064900 7F02FDD0 C48E0008 */ lwc1 $f14, 8($a0) +/* 064904 7F02FDD4 460C0081 */ sub.s $f2, $f0, $f12 +/* 064908 7F02FDD8 4602703E */ c.le.s $f14, $f2 +/* 06490C 7F02FDDC 00000000 */ nop +/* 064910 7F02FDE0 45020009 */ bc1fl .L7F02FE08 +/* 064914 7F02FDE4 460C0080 */ add.s $f2, $f0, $f12 +/* 064918 7F02FDE8 C6080008 */ lwc1 $f8, 8($s0) +/* 06491C 7F02FDEC 4602403E */ c.le.s $f8, $f2 +/* 064920 7F02FDF0 00000000 */ nop +/* 064924 7F02FDF4 45020004 */ bc1fl .L7F02FE08 +/* 064928 7F02FDF8 460C0080 */ add.s $f2, $f0, $f12 +/* 06492C 7F02FDFC 10000019 */ b .L7F02FE64 +/* 064930 7F02FE00 00001025 */ move $v0, $zero +/* 064934 7F02FE04 460C0080 */ add.s $f2, $f0, $f12 +.L7F02FE08: +/* 064938 7F02FE08 460E103E */ c.le.s $f2, $f14 +/* 06493C 7F02FE0C 00000000 */ nop +/* 064940 7F02FE10 45020009 */ bc1fl .L7F02FE38 +/* 064944 7F02FE14 C6120000 */ lwc1 $f18, ($s0) +/* 064948 7F02FE18 C60A0008 */ lwc1 $f10, 8($s0) +/* 06494C 7F02FE1C 460A103E */ c.le.s $f2, $f10 +/* 064950 7F02FE20 00000000 */ nop +/* 064954 7F02FE24 45020004 */ bc1fl .L7F02FE38 +/* 064958 7F02FE28 C6120000 */ lwc1 $f18, ($s0) +/* 06495C 7F02FE2C 1000000D */ b .L7F02FE64 +/* 064960 7F02FE30 00001025 */ move $v0, $zero +/* 064964 7F02FE34 C6120000 */ lwc1 $f18, ($s0) +.L7F02FE38: +/* 064968 7F02FE38 44803000 */ mtc1 $zero, $f6 +/* 06496C 7F02FE3C 44076000 */ mfc1 $a3, $f12 +/* 064970 7F02FE40 46109101 */ sub.s $f4, $f18, $f16 +/* 064974 7F02FE44 E7A60038 */ swc1 $f6, 0x38($sp) +/* 064978 7F02FE48 27A50034 */ addiu $a1, $sp, 0x34 +/* 06497C 7F02FE4C E7A40034 */ swc1 $f4, 0x34($sp) +/* 064980 7F02FE50 C48A0008 */ lwc1 $f10, 8($a0) +/* 064984 7F02FE54 C6080008 */ lwc1 $f8, 8($s0) +/* 064988 7F02FE58 460A4481 */ sub.s $f18, $f8, $f10 +/* 06498C 7F02FE5C 0FC0BF0D */ jal sub_GAME_7F02FC34 +/* 064990 7F02FE60 E7B2003C */ swc1 $f18, 0x3c($sp) +.L7F02FE64: +/* 064994 7F02FE64 8FBF001C */ lw $ra, 0x1c($sp) +/* 064998 7F02FE68 8FB00018 */ lw $s0, 0x18($sp) +/* 06499C 7F02FE6C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0649A0 7F02FE70 03E00008 */ jr $ra +/* 0649A4 7F02FE74 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F02FE78(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F02FE78 +/* 0649A8 7F02FE78 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0649AC 7F02FE7C AFBF001C */ sw $ra, 0x1c($sp) +/* 0649B0 7F02FE80 AFB10018 */ sw $s1, 0x18($sp) +/* 0649B4 7F02FE84 AFB00014 */ sw $s0, 0x14($sp) +/* 0649B8 7F02FE88 3C038005 */ lui $v1, %hi(global_timer) +/* 0649BC 7F02FE8C 808F0009 */ lb $t7, 9($a0) +/* 0649C0 7F02FE90 2463837C */ addiu $v1, %lo(global_timer) # addiu $v1, $v1, -0x7c84 +/* 0649C4 7F02FE94 8C6E0000 */ lw $t6, ($v1) +/* 0649C8 7F02FE98 24010001 */ li $at, 1 +/* 0649CC 7F02FE9C 00808025 */ move $s0, $a0 +/* 0649D0 7F02FEA0 8C820018 */ lw $v0, 0x18($a0) +/* 0649D4 7F02FEA4 8C91001C */ lw $s1, 0x1c($a0) +/* 0649D8 7F02FEA8 11E1000E */ beq $t7, $at, .L7F02FEE4 +/* 0649DC 7F02FEAC AC8E00C8 */ sw $t6, 0xc8($a0) +/* 0649E0 7F02FEB0 8C790000 */ lw $t9, ($v1) +/* 0649E4 7F02FEB4 8C9800CC */ lw $t8, 0xcc($a0) +/* 0649E8 7F02FEB8 248400BC */ addiu $a0, $a0, 0xbc +/* 0649EC 7F02FEBC 2728FFC4 */ addiu $t0, $t9, -0x3c +/* 0649F0 7F02FEC0 0308082A */ slt $at, $t8, $t0 +/* 0649F4 7F02FEC4 14200007 */ bnez $at, .L7F02FEE4 +/* 0649F8 7F02FEC8 24450008 */ addiu $a1, $v0, 8 +/* 0649FC 7F02FECC 2606002C */ addiu $a2, $s0, 0x2c +/* 064A00 7F02FED0 8E070038 */ lw $a3, 0x38($s0) +/* 064A04 7F02FED4 0FC0BF54 */ jal sub_GAME_7F02FD50 +/* 064A08 7F02FED8 AFA60020 */ sw $a2, 0x20($sp) +/* 064A0C 7F02FEDC 10400068 */ beqz $v0, .L7F030080 +/* 064A10 7F02FEE0 02002025 */ move $a0, $s0 +.L7F02FEE4: +/* 064A14 7F02FEE4 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 064A18 7F02FEE8 02202025 */ move $a0, $s1 +/* 064A1C 7F02FEEC 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 064A20 7F02FEF0 02202025 */ move $a0, $s1 +/* 064A24 7F02FEF4 44803000 */ mtc1 $zero, $f6 +/* 064A28 7F02FEF8 44802000 */ mtc1 $zero, $f4 +/* 064A2C 7F02FEFC 02202025 */ move $a0, $s1 +/* 064A30 7F02FF00 4606003C */ c.lt.s $f0, $f6 +/* 064A34 7F02FF04 46040081 */ sub.s $f2, $f0, $f4 +/* 064A38 7F02FF08 4502000E */ bc1fl .L7F02FF44 +/* 064A3C 7F02FF0C 02202025 */ move $a0, $s1 +/* 064A40 7F02FF10 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 064A44 7F02FF14 E7A20034 */ swc1 $f2, 0x34($sp) +/* 064A48 7F02FF18 94490004 */ lhu $t1, 4($v0) +/* 064A4C 7F02FF1C C7A20034 */ lwc1 $f2, 0x34($sp) +/* 064A50 7F02FF20 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 064A54 7F02FF24 44894000 */ mtc1 $t1, $f8 +/* 064A58 7F02FF28 05210004 */ bgez $t1, .L7F02FF3C +/* 064A5C 7F02FF2C 468042A0 */ cvt.s.w $f10, $f8 +/* 064A60 7F02FF30 44818000 */ mtc1 $at, $f16 +/* 064A64 7F02FF34 00000000 */ nop +/* 064A68 7F02FF38 46105280 */ add.s $f10, $f10, $f16 +.L7F02FF3C: +/* 064A6C 7F02FF3C 460A1080 */ add.s $f2, $f2, $f10 +/* 064A70 7F02FF40 02202025 */ move $a0, $s1 +.L7F02FF44: +/* 064A74 7F02FF44 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 064A78 7F02FF48 E7A20034 */ swc1 $f2, 0x34($sp) +/* 064A7C 7F02FF4C 944A0004 */ lhu $t2, 4($v0) +/* 064A80 7F02FF50 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 064A84 7F02FF54 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 064A88 7F02FF58 448A9000 */ mtc1 $t2, $f18 +/* 064A8C 7F02FF5C 05410004 */ bgez $t2, .L7F02FF70 +/* 064A90 7F02FF60 46809120 */ cvt.s.w $f4, $f18 +/* 064A94 7F02FF64 44813000 */ mtc1 $at, $f6 +/* 064A98 7F02FF68 00000000 */ nop +/* 064A9C 7F02FF6C 46062100 */ add.s $f4, $f4, $f6 +.L7F02FF70: +/* 064AA0 7F02FF70 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 064AA4 7F02FF74 44814000 */ mtc1 $at, $f8 +/* 064AA8 7F02FF78 00000000 */ nop +/* 064AAC 7F02FF7C 46082402 */ mul.s $f16, $f4, $f8 +/* 064AB0 7F02FF80 4602803C */ c.lt.s $f16, $f2 +/* 064AB4 7F02FF84 00000000 */ nop +/* 064AB8 7F02FF88 45000014 */ bc1f .L7F02FFDC +/* 064ABC 7F02FF8C 00000000 */ nop +/* 064AC0 7F02FF90 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 064AC4 7F02FF94 02202025 */ move $a0, $s1 +/* 064AC8 7F02FF98 944B0004 */ lhu $t3, 4($v0) +/* 064ACC 7F02FF9C 44802000 */ mtc1 $zero, $f4 +/* 064AD0 7F02FFA0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 064AD4 7F02FFA4 448B5000 */ mtc1 $t3, $f10 +/* 064AD8 7F02FFA8 05610004 */ bgez $t3, .L7F02FFBC +/* 064ADC 7F02FFAC 468054A0 */ cvt.s.w $f18, $f10 +/* 064AE0 7F02FFB0 44813000 */ mtc1 $at, $f6 +/* 064AE4 7F02FFB4 00000000 */ nop +/* 064AE8 7F02FFB8 46069480 */ add.s $f18, $f18, $f6 +.L7F02FFBC: +/* 064AEC 7F02FFBC 46049081 */ sub.s $f2, $f18, $f4 +/* 064AF0 7F02FFC0 02202025 */ move $a0, $s1 +/* 064AF4 7F02FFC4 3C064180 */ lui $a2, 0x4180 +/* 064AF8 7F02FFC8 44051000 */ mfc1 $a1, $f2 +/* 064AFC 7F02FFCC 0FC1BFA4 */ jal sub_GAME_7F06FE90 +/* 064B00 7F02FFD0 00000000 */ nop +/* 064B04 7F02FFD4 10000026 */ b .L7F030070 +/* 064B08 7F02FFD8 00000000 */ nop +.L7F02FFDC: +/* 064B0C 7F02FFDC 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 064B10 7F02FFE0 02202025 */ move $a0, $s1 +/* 064B14 7F02FFE4 944C0004 */ lhu $t4, 4($v0) +/* 064B18 7F02FFE8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 064B1C 7F02FFEC 02202025 */ move $a0, $s1 +/* 064B20 7F02FFF0 448C4000 */ mtc1 $t4, $f8 +/* 064B24 7F02FFF4 05810004 */ bgez $t4, .L7F030008 +/* 064B28 7F02FFF8 46804420 */ cvt.s.w $f16, $f8 +/* 064B2C 7F02FFFC 44815000 */ mtc1 $at, $f10 +/* 064B30 7F030000 00000000 */ nop +/* 064B34 7F030004 460A8400 */ add.s $f16, $f16, $f10 +.L7F030008: +/* 064B38 7F030008 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 064B3C 7F03000C 44813000 */ mtc1 $at, $f6 +/* 064B40 7F030010 44802000 */ mtc1 $zero, $f4 +/* 064B44 7F030014 44804000 */ mtc1 $zero, $f8 +/* 064B48 7F030018 46068482 */ mul.s $f18, $f16, $f6 +/* 064B4C 7F03001C 46049081 */ sub.s $f2, $f18, $f4 +/* 064B50 7F030020 4608103C */ c.lt.s $f2, $f8 +/* 064B54 7F030024 00000000 */ nop +/* 064B58 7F030028 4502000E */ bc1fl .L7F030064 +/* 064B5C 7F03002C 44051000 */ mfc1 $a1, $f2 +/* 064B60 7F030030 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 064B64 7F030034 E7A20034 */ swc1 $f2, 0x34($sp) +/* 064B68 7F030038 944D0004 */ lhu $t5, 4($v0) +/* 064B6C 7F03003C C7A20034 */ lwc1 $f2, 0x34($sp) +/* 064B70 7F030040 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 064B74 7F030044 448D5000 */ mtc1 $t5, $f10 +/* 064B78 7F030048 05A10004 */ bgez $t5, .L7F03005C +/* 064B7C 7F03004C 46805420 */ cvt.s.w $f16, $f10 +/* 064B80 7F030050 44813000 */ mtc1 $at, $f6 +/* 064B84 7F030054 00000000 */ nop +/* 064B88 7F030058 46068400 */ add.s $f16, $f16, $f6 +.L7F03005C: +/* 064B8C 7F03005C 46101080 */ add.s $f2, $f2, $f16 +/* 064B90 7F030060 44051000 */ mfc1 $a1, $f2 +.L7F030064: +/* 064B94 7F030064 02202025 */ move $a0, $s1 +/* 064B98 7F030068 0FC1BFA4 */ jal sub_GAME_7F06FE90 +/* 064B9C 7F03006C 3C064180 */ lui $a2, 0x4180 +.L7F030070: +/* 064BA0 7F030070 0FC08F92 */ jal sub_GAME_7F023E48 +/* 064BA4 7F030074 02002025 */ move $a0, $s0 +/* 064BA8 7F030078 10000027 */ b .L7F030118 +/* 064BAC 7F03007C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F030080: +/* 064BB0 7F030080 8FA50020 */ lw $a1, 0x20($sp) +/* 064BB4 7F030084 24060001 */ li $a2, 1 +/* 064BB8 7F030088 0FC0BDA4 */ jal sub_GAME_7F02F690 +/* 064BBC 7F03008C 26070040 */ addiu $a3, $s0, 0x40 +/* 064BC0 7F030090 8E03003C */ lw $v1, 0x3c($s0) +/* 064BC4 7F030094 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 064BC8 7F030098 3C018003 */ lui $at, %hi(D_80030988) +/* 064BCC 7F03009C 18600005 */ blez $v1, .L7F0300B4 +/* 064BD0 7F0300A0 00000000 */ nop +/* 064BD4 7F0300A4 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 064BD8 7F0300A8 006E7823 */ subu $t7, $v1, $t6 +/* 064BDC 7F0300AC 10000019 */ b .L7F030114 +/* 064BE0 7F0300B0 AE0F003C */ sw $t7, 0x3c($s0) +.L7F0300B4: +/* 064BE4 7F0300B4 C4320988 */ lwc1 $f18, %lo(D_80030988)($at) +/* 064BE8 7F0300B8 02202025 */ move $a0, $s1 +/* 064BEC 7F0300BC 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 064BF0 7F0300C0 E7B2002C */ swc1 $f18, 0x2c($sp) +/* 064BF4 7F0300C4 3C198007 */ lui $t9, %hi(ptr_animation_table) +/* 064BF8 7F0300C8 8F399538 */ lw $t9, %lo(ptr_animation_table)($t9) +/* 064BFC 7F0300CC 3C180000 */ lui $t8, %hi(0x0000777C) # $t8, 0 +/* 064C00 7F0300D0 2718777C */ addiu $t8, %lo(0x0000777C) # addiu $t8, $t8, 0x777c +/* 064C04 7F0300D4 03384021 */ addu $t0, $t9, $t8 +/* 064C08 7F0300D8 14480003 */ bne $v0, $t0, .L7F0300E8 +/* 064C0C 7F0300DC 3C018003 */ lui $at, %hi(D_80030994) +/* 064C10 7F0300E0 C4240994 */ lwc1 $f4, %lo(D_80030994)($at) +/* 064C14 7F0300E4 E7A4002C */ swc1 $f4, 0x2c($sp) +.L7F0300E8: +/* 064C18 7F0300E8 0FC1BD86 */ jal sub_GAME_7F06F618 +/* 064C1C 7F0300EC 02202025 */ move $a0, $s1 +/* 064C20 7F0300F0 3C018005 */ lui $at, %hi(global_timer_delta) +/* 064C24 7F0300F4 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 064C28 7F0300F8 C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 064C2C 7F0300FC C6120038 */ lwc1 $f18, 0x38($s0) +/* 064C30 7F030100 460A4182 */ mul.s $f6, $f8, $f10 +/* 064C34 7F030104 00000000 */ nop +/* 064C38 7F030108 46003402 */ mul.s $f16, $f6, $f0 +/* 064C3C 7F03010C 46109100 */ add.s $f4, $f18, $f16 +/* 064C40 7F030110 E6040038 */ swc1 $f4, 0x38($s0) +.L7F030114: +/* 064C44 7F030114 8FBF001C */ lw $ra, 0x1c($sp) +.L7F030118: +/* 064C48 7F030118 8FB00014 */ lw $s0, 0x14($sp) +/* 064C4C 7F03011C 8FB10018 */ lw $s1, 0x18($sp) +/* 064C50 7F030120 03E00008 */ jr $ra +/* 064C54 7F030124 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F030128(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F030128 +/* 064C58 7F030128 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 064C5C 7F03012C AFBF002C */ sw $ra, 0x2c($sp) +/* 064C60 7F030130 AFA40048 */ sw $a0, 0x48($sp) +/* 064C64 7F030134 AFA5004C */ sw $a1, 0x4c($sp) +/* 064C68 7F030138 AFA60050 */ sw $a2, 0x50($sp) +/* 064C6C 7F03013C AFA70054 */ sw $a3, 0x54($sp) +/* 064C70 7F030140 AFA60044 */ sw $a2, 0x44($sp) +/* 064C74 7F030144 AFA00040 */ sw $zero, 0x40($sp) +/* 064C78 7F030148 8C840018 */ lw $a0, 0x18($a0) +/* 064C7C 7F03014C 27A6003C */ addiu $a2, $sp, 0x3c +/* 064C80 7F030150 27A70038 */ addiu $a3, $sp, 0x38 +/* 064C84 7F030154 0FC08C58 */ jal sub_GAME_7F023160 +/* 064C88 7F030158 27A50034 */ addiu $a1, $sp, 0x34 +/* 064C8C 7F03015C 8FA40048 */ lw $a0, 0x48($sp) +/* 064C90 7F030160 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 064C94 7F030164 00002825 */ move $a1, $zero +/* 064C98 7F030168 8FA2004C */ lw $v0, 0x4c($sp) +/* 064C9C 7F03016C 8FA30054 */ lw $v1, 0x54($sp) +/* 064CA0 7F030170 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 064CA4 7F030174 8C450000 */ lw $a1, ($v0) +/* 064CA8 7F030178 C4640008 */ lwc1 $f4, 8($v1) +/* 064CAC 7F03017C 8C460008 */ lw $a2, 8($v0) +/* 064CB0 7F030180 8C670000 */ lw $a3, ($v1) +/* 064CB4 7F030184 44818000 */ mtc1 $at, $f16 +/* 064CB8 7F030188 8FB8005C */ lw $t8, 0x5c($sp) +/* 064CBC 7F03018C C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 064CC0 7F030190 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 064CC4 7F030194 44805000 */ mtc1 $zero, $f10 +/* 064CC8 7F030198 27A40044 */ addiu $a0, $sp, 0x44 +/* 064CCC 7F03019C E7A40010 */ swc1 $f4, 0x10($sp) +/* 064CD0 7F0301A0 AFB80014 */ sw $t8, 0x14($sp) +/* 064CD4 7F0301A4 E7B00024 */ swc1 $f16, 0x24($sp) +/* 064CD8 7F0301A8 E7A60018 */ swc1 $f6, 0x18($sp) +/* 064CDC 7F0301AC E7A8001C */ swc1 $f8, 0x1c($sp) +/* 064CE0 7F0301B0 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 064CE4 7F0301B4 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 064CE8 7F0301B8 10400009 */ beqz $v0, .L7F0301E0 +/* 064CEC 7F0301BC 24050001 */ li $a1, 1 +/* 064CF0 7F0301C0 8FA20058 */ lw $v0, 0x58($sp) +/* 064CF4 7F0301C4 8FB90044 */ lw $t9, 0x44($sp) +/* 064CF8 7F0301C8 24080001 */ li $t0, 1 +/* 064CFC 7F0301CC 50400004 */ beql $v0, $zero, .L7F0301E0 +/* 064D00 7F0301D0 AFA80040 */ sw $t0, 0x40($sp) +/* 064D04 7F0301D4 17220002 */ bne $t9, $v0, .L7F0301E0 +/* 064D08 7F0301D8 00000000 */ nop +/* 064D0C 7F0301DC AFA80040 */ sw $t0, 0x40($sp) +.L7F0301E0: +/* 064D10 7F0301E0 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 064D14 7F0301E4 8FA40048 */ lw $a0, 0x48($sp) +/* 064D18 7F0301E8 8FBF002C */ lw $ra, 0x2c($sp) +/* 064D1C 7F0301EC 8FA20040 */ lw $v0, 0x40($sp) +/* 064D20 7F0301F0 27BD0048 */ addiu $sp, $sp, 0x48 +/* 064D24 7F0301F4 03E00008 */ jr $ra +/* 064D28 7F0301F8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0301FC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0301FC +/* 064D2C 7F0301FC 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 064D30 7F030200 AFB10048 */ sw $s1, 0x48($sp) +/* 064D34 7F030204 AFB00044 */ sw $s0, 0x44($sp) +/* 064D38 7F030208 00A08025 */ move $s0, $a1 +/* 064D3C 7F03020C 00E08825 */ move $s1, $a3 +/* 064D40 7F030210 AFBF004C */ sw $ra, 0x4c($sp) +/* 064D44 7F030214 F7B80038 */ sdc1 $f24, 0x38($sp) +/* 064D48 7F030218 F7B60030 */ sdc1 $f22, 0x30($sp) +/* 064D4C 7F03021C F7B40028 */ sdc1 $f20, 0x28($sp) +/* 064D50 7F030220 AFA40088 */ sw $a0, 0x88($sp) +/* 064D54 7F030224 AFA60090 */ sw $a2, 0x90($sp) +/* 064D58 7F030228 AFA00068 */ sw $zero, 0x68($sp) +/* 064D5C 7F03022C 8C840018 */ lw $a0, 0x18($a0) +/* 064D60 7F030230 27A60064 */ addiu $a2, $sp, 0x64 +/* 064D64 7F030234 27A70060 */ addiu $a3, $sp, 0x60 +/* 064D68 7F030238 0FC08C58 */ jal sub_GAME_7F023160 +/* 064D6C 7F03023C 27A5005C */ addiu $a1, $sp, 0x5c +/* 064D70 7F030240 C6240000 */ lwc1 $f4, ($s1) +/* 064D74 7F030244 C6060000 */ lwc1 $f6, ($s0) +/* 064D78 7F030248 4480C000 */ mtc1 $zero, $f24 +/* 064D7C 7F03024C 46062201 */ sub.s $f8, $f4, $f6 +/* 064D80 7F030250 E7B8007C */ swc1 $f24, 0x7c($sp) +/* 064D84 7F030254 E7A80078 */ swc1 $f8, 0x78($sp) +/* 064D88 7F030258 C7A60078 */ lwc1 $f6, 0x78($sp) +/* 064D8C 7F03025C C6120008 */ lwc1 $f18, 8($s0) +/* 064D90 7F030260 C62A0008 */ lwc1 $f10, 8($s1) +/* 064D94 7F030264 4606C032 */ c.eq.s $f24, $f6 +/* 064D98 7F030268 46125101 */ sub.s $f4, $f10, $f18 +/* 064D9C 7F03026C 45000009 */ bc1f .L7F030294 +/* 064DA0 7F030270 E7A40080 */ swc1 $f4, 0x80($sp) +/* 064DA4 7F030274 C7B00080 */ lwc1 $f16, 0x80($sp) +/* 064DA8 7F030278 240F0001 */ li $t7, 1 +/* 064DAC 7F03027C 4610C032 */ c.eq.s $f24, $f16 +/* 064DB0 7F030280 00000000 */ nop +/* 064DB4 7F030284 45020004 */ bc1fl .L7F030298 +/* 064DB8 7F030288 C7B00080 */ lwc1 $f16, 0x80($sp) +/* 064DBC 7F03028C 1000007E */ b .L7F030488 +/* 064DC0 7F030290 AFAF0068 */ sw $t7, 0x68($sp) +.L7F030294: +/* 064DC4 7F030294 C7B00080 */ lwc1 $f16, 0x80($sp) +.L7F030298: +/* 064DC8 7F030298 C7AE0078 */ lwc1 $f14, 0x78($sp) +/* 064DCC 7F03029C 46108202 */ mul.s $f8, $f16, $f16 +/* 064DD0 7F0302A0 00000000 */ nop +/* 064DD4 7F0302A4 460E7282 */ mul.s $f10, $f14, $f14 +/* 064DD8 7F0302A8 0C007DF8 */ jal sqrtf +/* 064DDC 7F0302AC 460A4300 */ add.s $f12, $f8, $f10 +/* 064DE0 7F0302B0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 064DE4 7F0302B4 44819000 */ mtc1 $at, $f18 +/* 064DE8 7F0302B8 C7AE0078 */ lwc1 $f14, 0x78($sp) +/* 064DEC 7F0302BC C7B00080 */ lwc1 $f16, 0x80($sp) +/* 064DF0 7F0302C0 46009083 */ div.s $f2, $f18, $f0 +/* 064DF4 7F0302C4 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 064DF8 7F0302C8 8FA40088 */ lw $a0, 0x88($sp) +/* 064DFC 7F0302CC 00002825 */ move $a1, $zero +/* 064E00 7F0302D0 46027382 */ mul.s $f14, $f14, $f2 +/* 064E04 7F0302D4 00000000 */ nop +/* 064E08 7F0302D8 46028402 */ mul.s $f16, $f16, $f2 +/* 064E0C 7F0302DC 00000000 */ nop +/* 064E10 7F0302E0 460C7502 */ mul.s $f20, $f14, $f12 +/* 064E14 7F0302E4 E7AE0078 */ swc1 $f14, 0x78($sp) +/* 064E18 7F0302E8 460C8582 */ mul.s $f22, $f16, $f12 +/* 064E1C 7F0302EC 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 064E20 7F0302F0 E7B00080 */ swc1 $f16, 0x80($sp) +/* 064E24 7F0302F4 8FB80090 */ lw $t8, 0x90($sp) +/* 064E28 7F0302F8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 064E2C 7F0302FC 44819000 */ mtc1 $at, $f18 +/* 064E30 7F030300 AFB80084 */ sw $t8, 0x84($sp) +/* 064E34 7F030304 C6000000 */ lwc1 $f0, ($s0) +/* 064E38 7F030308 C6020008 */ lwc1 $f2, 8($s0) +/* 064E3C 7F03030C 8FB9009C */ lw $t9, 0x9c($sp) +/* 064E40 7F030310 46160100 */ add.s $f4, $f0, $f22 +/* 064E44 7F030314 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 064E48 7F030318 C7AA0060 */ lwc1 $f10, 0x60($sp) +/* 064E4C 7F03031C 46141181 */ sub.s $f6, $f2, $f20 +/* 064E50 7F030320 44072000 */ mfc1 $a3, $f4 +/* 064E54 7F030324 44050000 */ mfc1 $a1, $f0 +/* 064E58 7F030328 44061000 */ mfc1 $a2, $f2 +/* 064E5C 7F03032C E7A60010 */ swc1 $f6, 0x10($sp) +/* 064E60 7F030330 E7B80020 */ swc1 $f24, 0x20($sp) +/* 064E64 7F030334 27A40084 */ addiu $a0, $sp, 0x84 +/* 064E68 7F030338 E7B20024 */ swc1 $f18, 0x24($sp) +/* 064E6C 7F03033C AFB90014 */ sw $t9, 0x14($sp) +/* 064E70 7F030340 E7A80018 */ swc1 $f8, 0x18($sp) +/* 064E74 7F030344 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 064E78 7F030348 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 064E7C 7F03034C 1040004B */ beqz $v0, .L7F03047C +/* 064E80 7F030350 27A40084 */ addiu $a0, $sp, 0x84 +/* 064E84 7F030354 C6040000 */ lwc1 $f4, ($s0) +/* 064E88 7F030358 C6080008 */ lwc1 $f8, 8($s0) +/* 064E8C 7F03035C C6320000 */ lwc1 $f18, ($s1) +/* 064E90 7F030360 46162180 */ add.s $f6, $f4, $f22 +/* 064E94 7F030364 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 064E98 7F030368 8FA8009C */ lw $t0, 0x9c($sp) +/* 064E9C 7F03036C 46144281 */ sub.s $f10, $f8, $f20 +/* 064EA0 7F030370 44053000 */ mfc1 $a1, $f6 +/* 064EA4 7F030374 C6260008 */ lwc1 $f6, 8($s1) +/* 064EA8 7F030378 46169100 */ add.s $f4, $f18, $f22 +/* 064EAC 7F03037C 44065000 */ mfc1 $a2, $f10 +/* 064EB0 7F030380 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 064EB4 7F030384 46143201 */ sub.s $f8, $f6, $f20 +/* 064EB8 7F030388 44072000 */ mfc1 $a3, $f4 +/* 064EBC 7F03038C 44812000 */ mtc1 $at, $f4 +/* 064EC0 7F030390 C7B20060 */ lwc1 $f18, 0x60($sp) +/* 064EC4 7F030394 E7A80010 */ swc1 $f8, 0x10($sp) +/* 064EC8 7F030398 E7B80020 */ swc1 $f24, 0x20($sp) +/* 064ECC 7F03039C AFA80014 */ sw $t0, 0x14($sp) +/* 064ED0 7F0303A0 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 064ED4 7F0303A4 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 064ED8 7F0303A8 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 064EDC 7F0303AC E7A40024 */ swc1 $f4, 0x24($sp) +/* 064EE0 7F0303B0 10400032 */ beqz $v0, .L7F03047C +/* 064EE4 7F0303B4 8FA90090 */ lw $t1, 0x90($sp) +/* 064EE8 7F0303B8 AFA90084 */ sw $t1, 0x84($sp) +/* 064EEC 7F0303BC C6000000 */ lwc1 $f0, ($s0) +/* 064EF0 7F0303C0 C6020008 */ lwc1 $f2, 8($s0) +/* 064EF4 7F0303C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 064EF8 7F0303C8 46160181 */ sub.s $f6, $f0, $f22 +/* 064EFC 7F0303CC 44812000 */ mtc1 $at, $f4 +/* 064F00 7F0303D0 8FAA009C */ lw $t2, 0x9c($sp) +/* 064F04 7F0303D4 46141200 */ add.s $f8, $f2, $f20 +/* 064F08 7F0303D8 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 064F0C 7F0303DC C7B20060 */ lwc1 $f18, 0x60($sp) +/* 064F10 7F0303E0 44073000 */ mfc1 $a3, $f6 +/* 064F14 7F0303E4 44050000 */ mfc1 $a1, $f0 +/* 064F18 7F0303E8 44061000 */ mfc1 $a2, $f2 +/* 064F1C 7F0303EC E7A80010 */ swc1 $f8, 0x10($sp) +/* 064F20 7F0303F0 E7B80020 */ swc1 $f24, 0x20($sp) +/* 064F24 7F0303F4 27A40084 */ addiu $a0, $sp, 0x84 +/* 064F28 7F0303F8 AFAA0014 */ sw $t2, 0x14($sp) +/* 064F2C 7F0303FC E7A40024 */ swc1 $f4, 0x24($sp) +/* 064F30 7F030400 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 064F34 7F030404 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 064F38 7F030408 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 064F3C 7F03040C 1040001B */ beqz $v0, .L7F03047C +/* 064F40 7F030410 27A40084 */ addiu $a0, $sp, 0x84 +/* 064F44 7F030414 C6060000 */ lwc1 $f6, ($s0) +/* 064F48 7F030418 C60A0008 */ lwc1 $f10, 8($s0) +/* 064F4C 7F03041C C6240000 */ lwc1 $f4, ($s1) +/* 064F50 7F030420 46163201 */ sub.s $f8, $f6, $f22 +/* 064F54 7F030424 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 064F58 7F030428 8FAB009C */ lw $t3, 0x9c($sp) +/* 064F5C 7F03042C 46145480 */ add.s $f18, $f10, $f20 +/* 064F60 7F030430 44054000 */ mfc1 $a1, $f8 +/* 064F64 7F030434 C6280008 */ lwc1 $f8, 8($s1) +/* 064F68 7F030438 46162181 */ sub.s $f6, $f4, $f22 +/* 064F6C 7F03043C 44069000 */ mfc1 $a2, $f18 +/* 064F70 7F030440 C7B20064 */ lwc1 $f18, 0x64($sp) +/* 064F74 7F030444 46144280 */ add.s $f10, $f8, $f20 +/* 064F78 7F030448 44073000 */ mfc1 $a3, $f6 +/* 064F7C 7F03044C 44813000 */ mtc1 $at, $f6 +/* 064F80 7F030450 C7A40060 */ lwc1 $f4, 0x60($sp) +/* 064F84 7F030454 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 064F88 7F030458 E7B80020 */ swc1 $f24, 0x20($sp) +/* 064F8C 7F03045C AFAB0014 */ sw $t3, 0x14($sp) +/* 064F90 7F030460 E7B20018 */ swc1 $f18, 0x18($sp) +/* 064F94 7F030464 E7A4001C */ swc1 $f4, 0x1c($sp) +/* 064F98 7F030468 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 064F9C 7F03046C E7A60024 */ swc1 $f6, 0x24($sp) +/* 064FA0 7F030470 10400002 */ beqz $v0, .L7F03047C +/* 064FA4 7F030474 240C0001 */ li $t4, 1 +/* 064FA8 7F030478 AFAC0068 */ sw $t4, 0x68($sp) +.L7F03047C: +/* 064FAC 7F03047C 8FA40088 */ lw $a0, 0x88($sp) +/* 064FB0 7F030480 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 064FB4 7F030484 24050001 */ li $a1, 1 +.L7F030488: +/* 064FB8 7F030488 8FBF004C */ lw $ra, 0x4c($sp) +/* 064FBC 7F03048C 8FA20068 */ lw $v0, 0x68($sp) +/* 064FC0 7F030490 D7B40028 */ ldc1 $f20, 0x28($sp) +/* 064FC4 7F030494 D7B60030 */ ldc1 $f22, 0x30($sp) +/* 064FC8 7F030498 D7B80038 */ ldc1 $f24, 0x38($sp) +/* 064FCC 7F03049C 8FB00044 */ lw $s0, 0x44($sp) +/* 064FD0 7F0304A0 8FB10048 */ lw $s1, 0x48($sp) +/* 064FD4 7F0304A4 03E00008 */ jr $ra +/* 064FD8 7F0304A8 27BD0088 */ addiu $sp, $sp, 0x88 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0304AC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0304AC +/* 064FDC 7F0304AC 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 064FE0 7F0304B0 AFBF002C */ sw $ra, 0x2c($sp) +/* 064FE4 7F0304B4 AFA40048 */ sw $a0, 0x48($sp) +/* 064FE8 7F0304B8 AFA5004C */ sw $a1, 0x4c($sp) +/* 064FEC 7F0304BC AFA60050 */ sw $a2, 0x50($sp) +/* 064FF0 7F0304C0 AFA70054 */ sw $a3, 0x54($sp) +/* 064FF4 7F0304C4 AFA60044 */ sw $a2, 0x44($sp) +/* 064FF8 7F0304C8 AFA00040 */ sw $zero, 0x40($sp) +/* 064FFC 7F0304CC 8C840018 */ lw $a0, 0x18($a0) +/* 065000 7F0304D0 27A6003C */ addiu $a2, $sp, 0x3c +/* 065004 7F0304D4 27A70038 */ addiu $a3, $sp, 0x38 +/* 065008 7F0304D8 0FC08C58 */ jal sub_GAME_7F023160 +/* 06500C 7F0304DC 27A50034 */ addiu $a1, $sp, 0x34 +/* 065010 7F0304E0 8FA40048 */ lw $a0, 0x48($sp) +/* 065014 7F0304E4 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 065018 7F0304E8 00002825 */ move $a1, $zero +/* 06501C 7F0304EC 8FA20054 */ lw $v0, 0x54($sp) +/* 065020 7F0304F0 8FA3004C */ lw $v1, 0x4c($sp) +/* 065024 7F0304F4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065028 7F0304F8 C4440008 */ lwc1 $f4, 8($v0) +/* 06502C 7F0304FC 8C470000 */ lw $a3, ($v0) +/* 065030 7F030500 8C650000 */ lw $a1, ($v1) +/* 065034 7F030504 8C660008 */ lw $a2, 8($v1) +/* 065038 7F030508 44818000 */ mtc1 $at, $f16 +/* 06503C 7F03050C 8FB80060 */ lw $t8, 0x60($sp) +/* 065040 7F030510 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 065044 7F030514 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 065048 7F030518 44805000 */ mtc1 $zero, $f10 +/* 06504C 7F03051C 27A40044 */ addiu $a0, $sp, 0x44 +/* 065050 7F030520 E7A40010 */ swc1 $f4, 0x10($sp) +/* 065054 7F030524 AFB80014 */ sw $t8, 0x14($sp) +/* 065058 7F030528 E7B00024 */ swc1 $f16, 0x24($sp) +/* 06505C 7F03052C E7A60018 */ swc1 $f6, 0x18($sp) +/* 065060 7F030530 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 065064 7F030534 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 065068 7F030538 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 06506C 7F03053C 10400020 */ beqz $v0, .L7F0305C0 +/* 065070 7F030540 8FB90044 */ lw $t9, 0x44($sp) +/* 065074 7F030544 8FA20058 */ lw $v0, 0x58($sp) +/* 065078 7F030548 8FA80054 */ lw $t0, 0x54($sp) +/* 06507C 7F03054C AFB90030 */ sw $t9, 0x30($sp) +/* 065080 7F030550 C4520008 */ lwc1 $f18, 8($v0) +/* 065084 7F030554 8C470000 */ lw $a3, ($v0) +/* 065088 7F030558 8D060008 */ lw $a2, 8($t0) +/* 06508C 7F03055C 8D050000 */ lw $a1, ($t0) +/* 065090 7F030560 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065094 7F030564 44815000 */ mtc1 $at, $f10 +/* 065098 7F030568 8FA90060 */ lw $t1, 0x60($sp) +/* 06509C 7F03056C C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0650A0 7F030570 C7A60038 */ lwc1 $f6, 0x38($sp) +/* 0650A4 7F030574 44804000 */ mtc1 $zero, $f8 +/* 0650A8 7F030578 27A40030 */ addiu $a0, $sp, 0x30 +/* 0650AC 7F03057C E7B20010 */ swc1 $f18, 0x10($sp) +/* 0650B0 7F030580 AFA90014 */ sw $t1, 0x14($sp) +/* 0650B4 7F030584 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 0650B8 7F030588 E7A40018 */ swc1 $f4, 0x18($sp) +/* 0650BC 7F03058C E7A6001C */ swc1 $f6, 0x1c($sp) +/* 0650C0 7F030590 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0650C4 7F030594 E7A80020 */ swc1 $f8, 0x20($sp) +/* 0650C8 7F030598 5040000A */ beql $v0, $zero, .L7F0305C4 +/* 0650CC 7F03059C 8FA40048 */ lw $a0, 0x48($sp) +/* 0650D0 7F0305A0 8FA2005C */ lw $v0, 0x5c($sp) +/* 0650D4 7F0305A4 8FAA0030 */ lw $t2, 0x30($sp) +/* 0650D8 7F0305A8 240B0001 */ li $t3, 1 +/* 0650DC 7F0305AC 50400004 */ beql $v0, $zero, .L7F0305C0 +/* 0650E0 7F0305B0 AFAB0040 */ sw $t3, 0x40($sp) +/* 0650E4 7F0305B4 55420003 */ bnel $t2, $v0, .L7F0305C4 +/* 0650E8 7F0305B8 8FA40048 */ lw $a0, 0x48($sp) +/* 0650EC 7F0305BC AFAB0040 */ sw $t3, 0x40($sp) +.L7F0305C0: +/* 0650F0 7F0305C0 8FA40048 */ lw $a0, 0x48($sp) +.L7F0305C4: +/* 0650F4 7F0305C4 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 0650F8 7F0305C8 24050001 */ li $a1, 1 +/* 0650FC 7F0305CC 8FBF002C */ lw $ra, 0x2c($sp) +/* 065100 7F0305D0 8FA20040 */ lw $v0, 0x40($sp) +/* 065104 7F0305D4 27BD0048 */ addiu $sp, $sp, 0x48 +/* 065108 7F0305D8 03E00008 */ jr $ra +/* 06510C 7F0305DC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0305E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0305E0 +/* 065110 7F0305E0 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 065114 7F0305E4 AFB10030 */ sw $s1, 0x30($sp) +/* 065118 7F0305E8 AFB0002C */ sw $s0, 0x2c($sp) +/* 06511C 7F0305EC 00E08025 */ move $s0, $a3 +/* 065120 7F0305F0 00808825 */ move $s1, $a0 +/* 065124 7F0305F4 AFBF0034 */ sw $ra, 0x34($sp) +/* 065128 7F0305F8 AFA50054 */ sw $a1, 0x54($sp) +/* 06512C 7F0305FC AFA60058 */ sw $a2, 0x58($sp) +/* 065130 7F030600 AFA6004C */ sw $a2, 0x4c($sp) +/* 065134 7F030604 AFA00048 */ sw $zero, 0x48($sp) +/* 065138 7F030608 8C840018 */ lw $a0, 0x18($a0) +/* 06513C 7F03060C 27A60044 */ addiu $a2, $sp, 0x44 +/* 065140 7F030610 27A5003C */ addiu $a1, $sp, 0x3c +/* 065144 7F030614 0FC08C58 */ jal sub_GAME_7F023160 +/* 065148 7F030618 27A70040 */ addiu $a3, $sp, 0x40 +/* 06514C 7F03061C 02202025 */ move $a0, $s1 +/* 065150 7F030620 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 065154 7F030624 00002825 */ move $a1, $zero +/* 065158 7F030628 8FA20054 */ lw $v0, 0x54($sp) +/* 06515C 7F03062C C6040008 */ lwc1 $f4, 8($s0) +/* 065160 7F030630 8E070000 */ lw $a3, ($s0) +/* 065164 7F030634 8C450000 */ lw $a1, ($v0) +/* 065168 7F030638 8C460008 */ lw $a2, 8($v0) +/* 06516C 7F03063C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065170 7F030640 44818000 */ mtc1 $at, $f16 +/* 065174 7F030644 8FAF0068 */ lw $t7, 0x68($sp) +/* 065178 7F030648 C7A60044 */ lwc1 $f6, 0x44($sp) +/* 06517C 7F03064C C7A80040 */ lwc1 $f8, 0x40($sp) +/* 065180 7F030650 44805000 */ mtc1 $zero, $f10 +/* 065184 7F030654 27A4004C */ addiu $a0, $sp, 0x4c +/* 065188 7F030658 E7A40010 */ swc1 $f4, 0x10($sp) +/* 06518C 7F03065C AFAF0014 */ sw $t7, 0x14($sp) +/* 065190 7F030660 E7B00024 */ swc1 $f16, 0x24($sp) +/* 065194 7F030664 E7A60018 */ swc1 $f6, 0x18($sp) +/* 065198 7F030668 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 06519C 7F03066C 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0651A0 7F030670 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 0651A4 7F030674 1040002C */ beqz $v0, .L7F030728 +/* 0651A8 7F030678 8FB8004C */ lw $t8, 0x4c($sp) +/* 0651AC 7F03067C 8FA20060 */ lw $v0, 0x60($sp) +/* 0651B0 7F030680 AFB80038 */ sw $t8, 0x38($sp) +/* 0651B4 7F030684 8E060008 */ lw $a2, 8($s0) +/* 0651B8 7F030688 C4520008 */ lwc1 $f18, 8($v0) +/* 0651BC 7F03068C 8E050000 */ lw $a1, ($s0) +/* 0651C0 7F030690 8C470000 */ lw $a3, ($v0) +/* 0651C4 7F030694 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0651C8 7F030698 44815000 */ mtc1 $at, $f10 +/* 0651CC 7F03069C 8FB90068 */ lw $t9, 0x68($sp) +/* 0651D0 7F0306A0 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0651D4 7F0306A4 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 0651D8 7F0306A8 44804000 */ mtc1 $zero, $f8 +/* 0651DC 7F0306AC 27A40038 */ addiu $a0, $sp, 0x38 +/* 0651E0 7F0306B0 E7B20010 */ swc1 $f18, 0x10($sp) +/* 0651E4 7F0306B4 AFB90014 */ sw $t9, 0x14($sp) +/* 0651E8 7F0306B8 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 0651EC 7F0306BC E7A40018 */ swc1 $f4, 0x18($sp) +/* 0651F0 7F0306C0 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 0651F4 7F0306C4 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0651F8 7F0306C8 E7A80020 */ swc1 $f8, 0x20($sp) +/* 0651FC 7F0306CC 10400016 */ beqz $v0, .L7F030728 +/* 065200 7F0306D0 02202025 */ move $a0, $s1 +/* 065204 7F0306D4 C7B00064 */ lwc1 $f16, 0x64($sp) +/* 065208 7F0306D8 8FA80068 */ lw $t0, 0x68($sp) +/* 06520C 7F0306DC 8FA50054 */ lw $a1, 0x54($sp) +/* 065210 7F0306E0 8FA60058 */ lw $a2, 0x58($sp) +/* 065214 7F0306E4 02003825 */ move $a3, $s0 +/* 065218 7F0306E8 E7B00010 */ swc1 $f16, 0x10($sp) +/* 06521C 7F0306EC 0FC0C07F */ jal sub_GAME_7F0301FC +/* 065220 7F0306F0 AFA80014 */ sw $t0, 0x14($sp) +/* 065224 7F0306F4 1040000C */ beqz $v0, .L7F030728 +/* 065228 7F0306F8 02202025 */ move $a0, $s1 +/* 06522C 7F0306FC C7B20064 */ lwc1 $f18, 0x64($sp) +/* 065230 7F030700 8FA90068 */ lw $t1, 0x68($sp) +/* 065234 7F030704 02002825 */ move $a1, $s0 +/* 065238 7F030708 8FA6004C */ lw $a2, 0x4c($sp) +/* 06523C 7F03070C 8FA70060 */ lw $a3, 0x60($sp) +/* 065240 7F030710 E7B20010 */ swc1 $f18, 0x10($sp) +/* 065244 7F030714 0FC0C07F */ jal sub_GAME_7F0301FC +/* 065248 7F030718 AFA90014 */ sw $t1, 0x14($sp) +/* 06524C 7F03071C 10400002 */ beqz $v0, .L7F030728 +/* 065250 7F030720 240A0001 */ li $t2, 1 +/* 065254 7F030724 AFAA0048 */ sw $t2, 0x48($sp) +.L7F030728: +/* 065258 7F030728 02202025 */ move $a0, $s1 +/* 06525C 7F03072C 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 065260 7F030730 24050001 */ li $a1, 1 +/* 065264 7F030734 8FBF0034 */ lw $ra, 0x34($sp) +/* 065268 7F030738 8FA20048 */ lw $v0, 0x48($sp) +/* 06526C 7F03073C 8FB0002C */ lw $s0, 0x2c($sp) +/* 065270 7F030740 8FB10030 */ lw $s1, 0x30($sp) +/* 065274 7F030744 03E00008 */ jr $ra +/* 065278 7F030748 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F03074C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03074C +/* 06527C 7F03074C C4A40000 */ lwc1 $f4, ($a1) +/* 065280 7F030750 C4860000 */ lwc1 $f6, ($a0) +/* 065284 7F030754 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 065288 7F030758 44800000 */ mtc1 $zero, $f0 +/* 06528C 7F03075C 46062201 */ sub.s $f8, $f4, $f6 +/* 065290 7F030760 E7A8000C */ swc1 $f8, 0xc($sp) +/* 065294 7F030764 C4900004 */ lwc1 $f16, 4($a0) +/* 065298 7F030768 C4AA0004 */ lwc1 $f10, 4($a1) +/* 06529C 7F03076C 46105481 */ sub.s $f18, $f10, $f16 +/* 0652A0 7F030770 E7B20010 */ swc1 $f18, 0x10($sp) +/* 0652A4 7F030774 C4860008 */ lwc1 $f6, 8($a0) +/* 0652A8 7F030778 C4A40008 */ lwc1 $f4, 8($a1) +/* 0652AC 7F03077C 46062201 */ sub.s $f8, $f4, $f6 +/* 0652B0 7F030780 E7A80014 */ swc1 $f8, 0x14($sp) +/* 0652B4 7F030784 C4CA0008 */ lwc1 $f10, 8($a2) +/* 0652B8 7F030788 E7A00004 */ swc1 $f0, 4($sp) +/* 0652BC 7F03078C C7A40014 */ lwc1 $f4, 0x14($sp) +/* 0652C0 7F030790 46005407 */ neg.s $f16, $f10 +/* 0652C4 7F030794 E7B00000 */ swc1 $f16, ($sp) +/* 0652C8 7F030798 C4D20000 */ lwc1 $f18, ($a2) +/* 0652CC 7F03079C C7AA0000 */ lwc1 $f10, ($sp) +/* 0652D0 7F0307A0 C7B0000C */ lwc1 $f16, 0xc($sp) +/* 0652D4 7F0307A4 E7B20008 */ swc1 $f18, 8($sp) +/* 0652D8 7F0307A8 C7A60008 */ lwc1 $f6, 8($sp) +/* 0652DC 7F0307AC 46062202 */ mul.s $f8, $f4, $f6 +/* 0652E0 7F0307B0 00000000 */ nop +/* 0652E4 7F0307B4 46105482 */ mul.s $f18, $f10, $f16 +/* 0652E8 7F0307B8 46124100 */ add.s $f4, $f8, $f18 +/* 0652EC 7F0307BC 4604003C */ c.lt.s $f0, $f4 +/* 0652F0 7F0307C0 00000000 */ nop +/* 0652F4 7F0307C4 45010013 */ bc1t .L7F030814 +/* 0652F8 7F0307C8 00000000 */ nop +/* 0652FC 7F0307CC C4860000 */ lwc1 $f6, ($a0) +/* 065300 7F0307D0 E7A6000C */ swc1 $f6, 0xc($sp) +/* 065304 7F0307D4 C48A0004 */ lwc1 $f10, 4($a0) +/* 065308 7F0307D8 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 06530C 7F0307DC C4900008 */ lwc1 $f16, 8($a0) +/* 065310 7F0307E0 E7B00014 */ swc1 $f16, 0x14($sp) +/* 065314 7F0307E4 C4A80000 */ lwc1 $f8, ($a1) +/* 065318 7F0307E8 E4880000 */ swc1 $f8, ($a0) +/* 06531C 7F0307EC C4B20004 */ lwc1 $f18, 4($a1) +/* 065320 7F0307F0 E4920004 */ swc1 $f18, 4($a0) +/* 065324 7F0307F4 C4A40008 */ lwc1 $f4, 8($a1) +/* 065328 7F0307F8 E4840008 */ swc1 $f4, 8($a0) +/* 06532C 7F0307FC C7A6000C */ lwc1 $f6, 0xc($sp) +/* 065330 7F030800 E4A60000 */ swc1 $f6, ($a1) +/* 065334 7F030804 C7AA0010 */ lwc1 $f10, 0x10($sp) +/* 065338 7F030808 E4AA0004 */ swc1 $f10, 4($a1) +/* 06533C 7F03080C C7B00014 */ lwc1 $f16, 0x14($sp) +/* 065340 7F030810 E4B00008 */ swc1 $f16, 8($a1) +.L7F030814: +/* 065344 7F030814 03E00008 */ jr $ra +/* 065348 7F030818 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F03081C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052014 +.word 0x3f733333 /*0.94999999*/ +glabel D_80052018 +.word 0x3f733333 /*0.94999999*/ +glabel D_8005201C +.word 0x3f99999a /*1.2*/ +glabel D_80052020 +.word 0x3f99999a /*1.2*/ +.text +glabel sub_GAME_7F03081C +/* 06534C 7F03081C 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 065350 7F030820 AFB00030 */ sw $s0, 0x30($sp) +/* 065354 7F030824 00A08025 */ move $s0, $a1 +/* 065358 7F030828 AFBF0034 */ sw $ra, 0x34($sp) +/* 06535C 7F03082C AFA400B0 */ sw $a0, 0xb0($sp) +/* 065360 7F030830 AFA600B8 */ sw $a2, 0xb8($sp) +/* 065364 7F030834 AFA700BC */ sw $a3, 0xbc($sp) +/* 065368 7F030838 AFA00088 */ sw $zero, 0x88($sp) +/* 06536C 7F03083C AFA00084 */ sw $zero, 0x84($sp) +/* 065370 7F030840 AFA00050 */ sw $zero, 0x50($sp) +/* 065374 7F030844 8C840018 */ lw $a0, 0x18($a0) +/* 065378 7F030848 27A70048 */ addiu $a3, $sp, 0x48 +/* 06537C 7F03084C 27A6004C */ addiu $a2, $sp, 0x4c +/* 065380 7F030850 0FC08C58 */ jal sub_GAME_7F023160 +/* 065384 7F030854 27A50044 */ addiu $a1, $sp, 0x44 +/* 065388 7F030858 8FA200BC */ lw $v0, 0xbc($sp) +/* 06538C 7F03085C C6060000 */ lwc1 $f6, ($s0) +/* 065390 7F030860 44800000 */ mtc1 $zero, $f0 +/* 065394 7F030864 C4440000 */ lwc1 $f4, ($v0) +/* 065398 7F030868 E7A000A4 */ swc1 $f0, 0xa4($sp) +/* 06539C 7F03086C 46062201 */ sub.s $f8, $f4, $f6 +/* 0653A0 7F030870 E7A800A0 */ swc1 $f8, 0xa0($sp) +/* 0653A4 7F030874 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 0653A8 7F030878 C6040008 */ lwc1 $f4, 8($s0) +/* 0653AC 7F03087C C44A0008 */ lwc1 $f10, 8($v0) +/* 0653B0 7F030880 46080032 */ c.eq.s $f0, $f8 +/* 0653B4 7F030884 46045181 */ sub.s $f6, $f10, $f4 +/* 0653B8 7F030888 45000008 */ bc1f .L7F0308AC +/* 0653BC 7F03088C E7A600A8 */ swc1 $f6, 0xa8($sp) +/* 0653C0 7F030890 C7B200A8 */ lwc1 $f18, 0xa8($sp) +/* 0653C4 7F030894 46120032 */ c.eq.s $f0, $f18 +/* 0653C8 7F030898 00000000 */ nop +/* 0653CC 7F03089C 45020004 */ bc1fl .L7F0308B0 +/* 0653D0 7F0308A0 C7B200A8 */ lwc1 $f18, 0xa8($sp) +/* 0653D4 7F0308A4 1000012D */ b .L7F030D5C +/* 0653D8 7F0308A8 24020001 */ li $v0, 1 +.L7F0308AC: +/* 0653DC 7F0308AC C7B200A8 */ lwc1 $f18, 0xa8($sp) +.L7F0308B0: +/* 0653E0 7F0308B0 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 0653E4 7F0308B4 46129282 */ mul.s $f10, $f18, $f18 +/* 0653E8 7F0308B8 00000000 */ nop +/* 0653EC 7F0308BC 46108102 */ mul.s $f4, $f16, $f16 +/* 0653F0 7F0308C0 0C007DF8 */ jal sqrtf +/* 0653F4 7F0308C4 46045300 */ add.s $f12, $f10, $f4 +/* 0653F8 7F0308C8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0653FC 7F0308CC 44813000 */ mtc1 $at, $f6 +/* 065400 7F0308D0 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 065404 7F0308D4 C7B200A8 */ lwc1 $f18, 0xa8($sp) +/* 065408 7F0308D8 46003083 */ div.s $f2, $f6, $f0 +/* 06540C 7F0308DC C7A800CC */ lwc1 $f8, 0xcc($sp) +/* 065410 7F0308E0 3C018005 */ lui $at, %hi(D_80052014) +/* 065414 7F0308E4 C42A2014 */ lwc1 $f10, %lo(D_80052014)($at) +/* 065418 7F0308E8 3C018005 */ lui $at, %hi(D_80052018) +/* 06541C 7F0308EC C4262018 */ lwc1 $f6, %lo(D_80052018)($at) +/* 065420 7F0308F0 3C018005 */ lui $at, %hi(D_8005201C) +/* 065424 7F0308F4 8FA400B0 */ lw $a0, 0xb0($sp) +/* 065428 7F0308F8 00002825 */ move $a1, $zero +/* 06542C 7F0308FC 46028402 */ mul.s $f16, $f16, $f2 +/* 065430 7F030900 00000000 */ nop +/* 065434 7F030904 46029482 */ mul.s $f18, $f18, $f2 +/* 065438 7F030908 00000000 */ nop +/* 06543C 7F03090C 46088302 */ mul.s $f12, $f16, $f8 +/* 065440 7F030910 E7B000A0 */ swc1 $f16, 0xa0($sp) +/* 065444 7F030914 E7B200A8 */ swc1 $f18, 0xa8($sp) +/* 065448 7F030918 460A6102 */ mul.s $f4, $f12, $f10 +/* 06544C 7F03091C 00000000 */ nop +/* 065450 7F030920 46089382 */ mul.s $f14, $f18, $f8 +/* 065454 7F030924 E7A4009C */ swc1 $f4, 0x9c($sp) +/* 065458 7F030928 C424201C */ lwc1 $f4, %lo(D_8005201C)($at) +/* 06545C 7F03092C 3C018005 */ lui $at, %hi(D_80052020) +/* 065460 7F030930 46067282 */ mul.s $f10, $f14, $f6 +/* 065464 7F030934 C4262020 */ lwc1 $f6, %lo(D_80052020)($at) +/* 065468 7F030938 46046202 */ mul.s $f8, $f12, $f4 +/* 06546C 7F03093C E7AA0098 */ swc1 $f10, 0x98($sp) +/* 065470 7F030940 46067282 */ mul.s $f10, $f14, $f6 +/* 065474 7F030944 E7A80094 */ swc1 $f8, 0x94($sp) +/* 065478 7F030948 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 06547C 7F03094C E7AA0090 */ swc1 $f10, 0x90($sp) +/* 065480 7F030950 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 065484 7F030954 00000000 */ nop +/* 065488 7F030958 8FAF00B8 */ lw $t7, 0xb8($sp) +/* 06548C 7F03095C C7A40098 */ lwc1 $f4, 0x98($sp) +/* 065490 7F030960 C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 065494 7F030964 AFAF00AC */ sw $t7, 0xac($sp) +/* 065498 7F030968 C6020008 */ lwc1 $f2, 8($s0) +/* 06549C 7F03096C C6000000 */ lwc1 $f0, ($s0) +/* 0654A0 7F030970 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0654A4 7F030974 46061281 */ sub.s $f10, $f2, $f6 +/* 0654A8 7F030978 44803000 */ mtc1 $zero, $f6 +/* 0654AC 7F03097C 8FB800D0 */ lw $t8, 0xd0($sp) +/* 0654B0 7F030980 46040200 */ add.s $f8, $f0, $f4 +/* 0654B4 7F030984 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0654B8 7F030988 44815000 */ mtc1 $at, $f10 +/* 0654BC 7F03098C C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 0654C0 7F030990 44074000 */ mfc1 $a3, $f8 +/* 0654C4 7F030994 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0654C8 7F030998 44061000 */ mfc1 $a2, $f2 +/* 0654CC 7F03099C 44050000 */ mfc1 $a1, $f0 +/* 0654D0 7F0309A0 27A400AC */ addiu $a0, $sp, 0xac +/* 0654D4 7F0309A4 AFB80014 */ sw $t8, 0x14($sp) +/* 0654D8 7F0309A8 E7A60020 */ swc1 $f6, 0x20($sp) +/* 0654DC 7F0309AC E7A40018 */ swc1 $f4, 0x18($sp) +/* 0654E0 7F0309B0 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 0654E4 7F0309B4 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0654E8 7F0309B8 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 0654EC 7F0309BC 10400026 */ beqz $v0, .L7F030A58 +/* 0654F0 7F0309C0 27A400AC */ addiu $a0, $sp, 0xac +/* 0654F4 7F0309C4 8FA200BC */ lw $v0, 0xbc($sp) +/* 0654F8 7F0309C8 C7B200C8 */ lwc1 $f18, 0xc8($sp) +/* 0654FC 7F0309CC C6100000 */ lwc1 $f16, ($s0) +/* 065500 7F0309D0 C7AE0098 */ lwc1 $f14, 0x98($sp) +/* 065504 7F0309D4 C60C0008 */ lwc1 $f12, 8($s0) +/* 065508 7F0309D8 C7AA009C */ lwc1 $f10, 0x9c($sp) +/* 06550C 7F0309DC 460E8380 */ add.s $f14, $f16, $f14 +/* 065510 7F0309E0 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 065514 7F0309E4 C4480000 */ lwc1 $f8, ($v0) +/* 065518 7F0309E8 460A6281 */ sub.s $f10, $f12, $f10 +/* 06551C 7F0309EC 46128402 */ mul.s $f16, $f16, $f18 +/* 065520 7F0309F0 C7AC0090 */ lwc1 $f12, 0x90($sp) +/* 065524 7F0309F4 C7A600A8 */ lwc1 $f6, 0xa8($sp) +/* 065528 7F0309F8 C4440008 */ lwc1 $f4, 8($v0) +/* 06552C 7F0309FC C7A20094 */ lwc1 $f2, 0x94($sp) +/* 065530 7F030A00 46123482 */ mul.s $f18, $f6, $f18 +/* 065534 7F030A04 460C4300 */ add.s $f12, $f8, $f12 +/* 065538 7F030A08 44057000 */ mfc1 $a1, $f14 +/* 06553C 7F030A0C 44065000 */ mfc1 $a2, $f10 +/* 065540 7F030A10 8FB900D0 */ lw $t9, 0xd0($sp) +/* 065544 7F030A14 46022081 */ sub.s $f2, $f4, $f2 +/* 065548 7F030A18 C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 06554C 7F030A1C C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 065550 7F030A20 460C8300 */ add.s $f12, $f16, $f12 +/* 065554 7F030A24 44808000 */ mtc1 $zero, $f16 +/* 065558 7F030A28 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 06555C 7F030A2C 46029080 */ add.s $f2, $f18, $f2 +/* 065560 7F030A30 44076000 */ mfc1 $a3, $f12 +/* 065564 7F030A34 44816000 */ mtc1 $at, $f12 +/* 065568 7F030A38 E7A40018 */ swc1 $f4, 0x18($sp) +/* 06556C 7F030A3C E7A20010 */ swc1 $f2, 0x10($sp) +/* 065570 7F030A40 AFB90014 */ sw $t9, 0x14($sp) +/* 065574 7F030A44 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 065578 7F030A48 E7B00020 */ swc1 $f16, 0x20($sp) +/* 06557C 7F030A4C 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 065580 7F030A50 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 065584 7F030A54 14400009 */ bnez $v0, .L7F030A7C +.L7F030A58: +/* 065588 7F030A58 24080001 */ li $t0, 1 +/* 06558C 7F030A5C AFA80088 */ sw $t0, 0x88($sp) +/* 065590 7F030A60 27A40078 */ addiu $a0, $sp, 0x78 +/* 065594 7F030A64 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 065598 7F030A68 27A5006C */ addiu $a1, $sp, 0x6c +/* 06559C 7F030A6C 27A40078 */ addiu $a0, $sp, 0x78 +/* 0655A0 7F030A70 27A5006C */ addiu $a1, $sp, 0x6c +/* 0655A4 7F030A74 0FC0C1D3 */ jal sub_GAME_7F03074C +/* 0655A8 7F030A78 27A600A0 */ addiu $a2, $sp, 0xa0 +.L7F030A7C: +/* 0655AC 7F030A7C 8FA900B8 */ lw $t1, 0xb8($sp) +/* 0655B0 7F030A80 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0655B4 7F030A84 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0655B8 7F030A88 AFA900AC */ sw $t1, 0xac($sp) +/* 0655BC 7F030A8C C6020008 */ lwc1 $f2, 8($s0) +/* 0655C0 7F030A90 C6000000 */ lwc1 $f0, ($s0) +/* 0655C4 7F030A94 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0655C8 7F030A98 46041180 */ add.s $f6, $f2, $f4 +/* 0655CC 7F030A9C 44802000 */ mtc1 $zero, $f4 +/* 0655D0 7F030AA0 8FAA00D0 */ lw $t2, 0xd0($sp) +/* 0655D4 7F030AA4 460A0201 */ sub.s $f8, $f0, $f10 +/* 0655D8 7F030AA8 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0655DC 7F030AAC 44813000 */ mtc1 $at, $f6 +/* 0655E0 7F030AB0 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0655E4 7F030AB4 44074000 */ mfc1 $a3, $f8 +/* 0655E8 7F030AB8 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0655EC 7F030ABC 44061000 */ mfc1 $a2, $f2 +/* 0655F0 7F030AC0 44050000 */ mfc1 $a1, $f0 +/* 0655F4 7F030AC4 27A400AC */ addiu $a0, $sp, 0xac +/* 0655F8 7F030AC8 AFAA0014 */ sw $t2, 0x14($sp) +/* 0655FC 7F030ACC E7A40020 */ swc1 $f4, 0x20($sp) +/* 065600 7F030AD0 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 065604 7F030AD4 E7A60024 */ swc1 $f6, 0x24($sp) +/* 065608 7F030AD8 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 06560C 7F030ADC E7A8001C */ swc1 $f8, 0x1c($sp) +/* 065610 7F030AE0 10400026 */ beqz $v0, .L7F030B7C +/* 065614 7F030AE4 27A400AC */ addiu $a0, $sp, 0xac +/* 065618 7F030AE8 8FA200BC */ lw $v0, 0xbc($sp) +/* 06561C 7F030AEC C6120008 */ lwc1 $f18, 8($s0) +/* 065620 7F030AF0 C7B0009C */ lwc1 $f16, 0x9c($sp) +/* 065624 7F030AF4 C7AE00A0 */ lwc1 $f14, 0xa0($sp) +/* 065628 7F030AF8 C7AC00C8 */ lwc1 $f12, 0xc8($sp) +/* 06562C 7F030AFC 46109400 */ add.s $f16, $f18, $f16 +/* 065630 7F030B00 C4520000 */ lwc1 $f18, ($v0) +/* 065634 7F030B04 460C7382 */ mul.s $f14, $f14, $f12 +/* 065638 7F030B08 C60A0000 */ lwc1 $f10, ($s0) +/* 06563C 7F030B0C C7A80098 */ lwc1 $f8, 0x98($sp) +/* 065640 7F030B10 C7A60090 */ lwc1 $f6, 0x90($sp) +/* 065644 7F030B14 C7A400A8 */ lwc1 $f4, 0xa8($sp) +/* 065648 7F030B18 46085201 */ sub.s $f8, $f10, $f8 +/* 06564C 7F030B1C C44A0008 */ lwc1 $f10, 8($v0) +/* 065650 7F030B20 C7A20094 */ lwc1 $f2, 0x94($sp) +/* 065654 7F030B24 46069181 */ sub.s $f6, $f18, $f6 +/* 065658 7F030B28 460C2302 */ mul.s $f12, $f4, $f12 +/* 06565C 7F030B2C 44054000 */ mfc1 $a1, $f8 +/* 065660 7F030B30 46025080 */ add.s $f2, $f10, $f2 +/* 065664 7F030B34 44068000 */ mfc1 $a2, $f16 +/* 065668 7F030B38 8FAB00D0 */ lw $t3, 0xd0($sp) +/* 06566C 7F030B3C 46067180 */ add.s $f6, $f14, $f6 +/* 065670 7F030B40 C7AE004C */ lwc1 $f14, 0x4c($sp) +/* 065674 7F030B44 C7B00048 */ lwc1 $f16, 0x48($sp) +/* 065678 7F030B48 46026080 */ add.s $f2, $f12, $f2 +/* 06567C 7F030B4C 44073000 */ mfc1 $a3, $f6 +/* 065680 7F030B50 44803000 */ mtc1 $zero, $f6 +/* 065684 7F030B54 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065688 7F030B58 44816000 */ mtc1 $at, $f12 +/* 06568C 7F030B5C E7A20010 */ swc1 $f2, 0x10($sp) +/* 065690 7F030B60 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 065694 7F030B64 AFAB0014 */ sw $t3, 0x14($sp) +/* 065698 7F030B68 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 06569C 7F030B6C E7A60020 */ swc1 $f6, 0x20($sp) +/* 0656A0 7F030B70 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0656A4 7F030B74 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 0656A8 7F030B78 14400009 */ bnez $v0, .L7F030BA0 +.L7F030B7C: +/* 0656AC 7F030B7C 240C0001 */ li $t4, 1 +/* 0656B0 7F030B80 AFAC0084 */ sw $t4, 0x84($sp) +/* 0656B4 7F030B84 27A40060 */ addiu $a0, $sp, 0x60 +/* 0656B8 7F030B88 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 0656BC 7F030B8C 27A50054 */ addiu $a1, $sp, 0x54 +/* 0656C0 7F030B90 27A40060 */ addiu $a0, $sp, 0x60 +/* 0656C4 7F030B94 27A50054 */ addiu $a1, $sp, 0x54 +/* 0656C8 7F030B98 0FC0C1D3 */ jal sub_GAME_7F03074C +/* 0656CC 7F030B9C 27A600A0 */ addiu $a2, $sp, 0xa0 +.L7F030BA0: +/* 0656D0 7F030BA0 8FAD0088 */ lw $t5, 0x88($sp) +/* 0656D4 7F030BA4 8FAE0084 */ lw $t6, 0x84($sp) +/* 0656D8 7F030BA8 8FAF0088 */ lw $t7, 0x88($sp) +/* 0656DC 7F030BAC 11A00019 */ beqz $t5, .L7F030C14 +/* 0656E0 7F030BB0 00000000 */ nop +/* 0656E4 7F030BB4 11C00017 */ beqz $t6, .L7F030C14 +/* 0656E8 7F030BB8 27A40078 */ addiu $a0, $sp, 0x78 +/* 0656EC 7F030BBC 27A50060 */ addiu $a1, $sp, 0x60 +/* 0656F0 7F030BC0 0FC0C1D3 */ jal sub_GAME_7F03074C +/* 0656F4 7F030BC4 27A600A0 */ addiu $a2, $sp, 0xa0 +/* 0656F8 7F030BC8 27A4006C */ addiu $a0, $sp, 0x6c +/* 0656FC 7F030BCC 27A50054 */ addiu $a1, $sp, 0x54 +/* 065700 7F030BD0 0FC0C1D3 */ jal sub_GAME_7F03074C +/* 065704 7F030BD4 27A600A0 */ addiu $a2, $sp, 0xa0 +/* 065708 7F030BD8 8FA400C0 */ lw $a0, 0xc0($sp) +/* 06570C 7F030BDC C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 065710 7F030BE0 8FA500C4 */ lw $a1, 0xc4($sp) +/* 065714 7F030BE4 E48A0000 */ swc1 $f10, ($a0) +/* 065718 7F030BE8 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 06571C 7F030BEC E4880004 */ swc1 $f8, 4($a0) +/* 065720 7F030BF0 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 065724 7F030BF4 E4860008 */ swc1 $f6, 8($a0) +/* 065728 7F030BF8 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 06572C 7F030BFC E4A40000 */ swc1 $f4, ($a1) +/* 065730 7F030C00 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 065734 7F030C04 E4AA0004 */ swc1 $f10, 4($a1) +/* 065738 7F030C08 C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 06573C 7F030C0C 1000004F */ b .L7F030D4C +/* 065740 7F030C10 E4A80008 */ swc1 $f8, 8($a1) +.L7F030C14: +/* 065744 7F030C14 11E00010 */ beqz $t7, .L7F030C58 +/* 065748 7F030C18 8FB80084 */ lw $t8, 0x84($sp) +/* 06574C 7F030C1C 8FA400C0 */ lw $a0, 0xc0($sp) +/* 065750 7F030C20 C7A60078 */ lwc1 $f6, 0x78($sp) +/* 065754 7F030C24 8FA500C4 */ lw $a1, 0xc4($sp) +/* 065758 7F030C28 E4860000 */ swc1 $f6, ($a0) +/* 06575C 7F030C2C C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 065760 7F030C30 E4840004 */ swc1 $f4, 4($a0) +/* 065764 7F030C34 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 065768 7F030C38 E48A0008 */ swc1 $f10, 8($a0) +/* 06576C 7F030C3C C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 065770 7F030C40 E4A80000 */ swc1 $f8, ($a1) +/* 065774 7F030C44 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 065778 7F030C48 E4A60004 */ swc1 $f6, 4($a1) +/* 06577C 7F030C4C C7A40074 */ lwc1 $f4, 0x74($sp) +/* 065780 7F030C50 1000003E */ b .L7F030D4C +/* 065784 7F030C54 E4A40008 */ swc1 $f4, 8($a1) +.L7F030C58: +/* 065788 7F030C58 13000010 */ beqz $t8, .L7F030C9C +/* 06578C 7F030C5C 8FA200BC */ lw $v0, 0xbc($sp) +/* 065790 7F030C60 8FA400C0 */ lw $a0, 0xc0($sp) +/* 065794 7F030C64 C7AA0060 */ lwc1 $f10, 0x60($sp) +/* 065798 7F030C68 8FA500C4 */ lw $a1, 0xc4($sp) +/* 06579C 7F030C6C E48A0000 */ swc1 $f10, ($a0) +/* 0657A0 7F030C70 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 0657A4 7F030C74 E4880004 */ swc1 $f8, 4($a0) +/* 0657A8 7F030C78 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 0657AC 7F030C7C E4860008 */ swc1 $f6, 8($a0) +/* 0657B0 7F030C80 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 0657B4 7F030C84 E4A40000 */ swc1 $f4, ($a1) +/* 0657B8 7F030C88 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 0657BC 7F030C8C E4AA0004 */ swc1 $f10, 4($a1) +/* 0657C0 7F030C90 C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 0657C4 7F030C94 1000002D */ b .L7F030D4C +/* 0657C8 7F030C98 E4A80008 */ swc1 $f8, 8($a1) +.L7F030C9C: +/* 0657CC 7F030C9C 8FB900B8 */ lw $t9, 0xb8($sp) +/* 0657D0 7F030CA0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0657D4 7F030CA4 8FA800D0 */ lw $t0, 0xd0($sp) +/* 0657D8 7F030CA8 AFB900AC */ sw $t9, 0xac($sp) +/* 0657DC 7F030CAC C4460008 */ lwc1 $f6, 8($v0) +/* 0657E0 7F030CB0 8C470000 */ lw $a3, ($v0) +/* 0657E4 7F030CB4 8E060008 */ lw $a2, 8($s0) +/* 0657E8 7F030CB8 8E050000 */ lw $a1, ($s0) +/* 0657EC 7F030CBC E7A60010 */ swc1 $f6, 0x10($sp) +/* 0657F0 7F030CC0 44813000 */ mtc1 $at, $f6 +/* 0657F4 7F030CC4 C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 0657F8 7F030CC8 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 0657FC 7F030CCC 44804000 */ mtc1 $zero, $f8 +/* 065800 7F030CD0 27A400AC */ addiu $a0, $sp, 0xac +/* 065804 7F030CD4 AFA80014 */ sw $t0, 0x14($sp) +/* 065808 7F030CD8 E7A40018 */ swc1 $f4, 0x18($sp) +/* 06580C 7F030CDC E7A60024 */ swc1 $f6, 0x24($sp) +/* 065810 7F030CE0 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 065814 7F030CE4 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 065818 7F030CE8 E7A80020 */ swc1 $f8, 0x20($sp) +/* 06581C 7F030CEC 10400010 */ beqz $v0, .L7F030D30 +/* 065820 7F030CF0 27A400AC */ addiu $a0, $sp, 0xac +/* 065824 7F030CF4 8FA900BC */ lw $t1, 0xbc($sp) +/* 065828 7F030CF8 8FAA00D0 */ lw $t2, 0xd0($sp) +/* 06582C 7F030CFC C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 065830 7F030D00 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 065834 7F030D04 8D250000 */ lw $a1, ($t1) +/* 065838 7F030D08 8D260008 */ lw $a2, 8($t1) +/* 06583C 7F030D0C 8FA700CC */ lw $a3, 0xcc($sp) +/* 065840 7F030D10 AFAA0010 */ sw $t2, 0x10($sp) +/* 065844 7F030D14 E7A40014 */ swc1 $f4, 0x14($sp) +/* 065848 7F030D18 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 06584C 7F030D1C E7AA0018 */ swc1 $f10, 0x18($sp) +/* 065850 7F030D20 04410003 */ bgez $v0, .L7F030D30 +/* 065854 7F030D24 240B0001 */ li $t3, 1 +/* 065858 7F030D28 10000008 */ b .L7F030D4C +/* 06585C 7F030D2C AFAB0050 */ sw $t3, 0x50($sp) +.L7F030D30: +/* 065860 7F030D30 8FA400C0 */ lw $a0, 0xc0($sp) +/* 065864 7F030D34 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 065868 7F030D38 8FA500C4 */ lw $a1, 0xc4($sp) +/* 06586C 7F030D3C 8FA400C0 */ lw $a0, 0xc0($sp) +/* 065870 7F030D40 8FA500C4 */ lw $a1, 0xc4($sp) +/* 065874 7F030D44 0FC0C1D3 */ jal sub_GAME_7F03074C +/* 065878 7F030D48 27A600A0 */ addiu $a2, $sp, 0xa0 +.L7F030D4C: +/* 06587C 7F030D4C 8FA400B0 */ lw $a0, 0xb0($sp) +/* 065880 7F030D50 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 065884 7F030D54 24050001 */ li $a1, 1 +/* 065888 7F030D58 8FA20050 */ lw $v0, 0x50($sp) +.L7F030D5C: +/* 06588C 7F030D5C 8FBF0034 */ lw $ra, 0x34($sp) +/* 065890 7F030D60 8FB00030 */ lw $s0, 0x30($sp) +/* 065894 7F030D64 27BD00B0 */ addiu $sp, $sp, 0xb0 +/* 065898 7F030D68 03E00008 */ jr $ra +/* 06589C 7F030D6C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F030D70(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052024 +.word 0x3f733333 /*0.94999999*/ +glabel D_80052028 +.word 0x3f733333 /*0.94999999*/ +glabel D_8005202C +.word 0x3f99999a /*1.2*/ +glabel D_80052030 +.word 0x3f99999a /*1.2*/ +.text +glabel sub_GAME_7F030D70 +/* 0658A0 7F030D70 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0658A4 7F030D74 AFB00030 */ sw $s0, 0x30($sp) +/* 0658A8 7F030D78 00A08025 */ move $s0, $a1 +/* 0658AC 7F030D7C AFBF0034 */ sw $ra, 0x34($sp) +/* 0658B0 7F030D80 AFA400B8 */ sw $a0, 0xb8($sp) +/* 0658B4 7F030D84 AFA600C0 */ sw $a2, 0xc0($sp) +/* 0658B8 7F030D88 AFA700C4 */ sw $a3, 0xc4($sp) +/* 0658BC 7F030D8C AFA00090 */ sw $zero, 0x90($sp) +/* 0658C0 7F030D90 AFA0008C */ sw $zero, 0x8c($sp) +/* 0658C4 7F030D94 AFA00058 */ sw $zero, 0x58($sp) +/* 0658C8 7F030D98 8C840018 */ lw $a0, 0x18($a0) +/* 0658CC 7F030D9C 27A70048 */ addiu $a3, $sp, 0x48 +/* 0658D0 7F030DA0 27A6004C */ addiu $a2, $sp, 0x4c +/* 0658D4 7F030DA4 0FC08C58 */ jal sub_GAME_7F023160 +/* 0658D8 7F030DA8 27A50044 */ addiu $a1, $sp, 0x44 +/* 0658DC 7F030DAC 8FA200C4 */ lw $v0, 0xc4($sp) +/* 0658E0 7F030DB0 C6060000 */ lwc1 $f6, ($s0) +/* 0658E4 7F030DB4 44800000 */ mtc1 $zero, $f0 +/* 0658E8 7F030DB8 C4440000 */ lwc1 $f4, ($v0) +/* 0658EC 7F030DBC E7A000AC */ swc1 $f0, 0xac($sp) +/* 0658F0 7F030DC0 46062201 */ sub.s $f8, $f4, $f6 +/* 0658F4 7F030DC4 E7A800A8 */ swc1 $f8, 0xa8($sp) +/* 0658F8 7F030DC8 C7A800A8 */ lwc1 $f8, 0xa8($sp) +/* 0658FC 7F030DCC C6040008 */ lwc1 $f4, 8($s0) +/* 065900 7F030DD0 C44A0008 */ lwc1 $f10, 8($v0) +/* 065904 7F030DD4 46080032 */ c.eq.s $f0, $f8 +/* 065908 7F030DD8 46045181 */ sub.s $f6, $f10, $f4 +/* 06590C 7F030DDC 45000008 */ bc1f .L7F030E00 +/* 065910 7F030DE0 E7A600B0 */ swc1 $f6, 0xb0($sp) +/* 065914 7F030DE4 C7B200B0 */ lwc1 $f18, 0xb0($sp) +/* 065918 7F030DE8 46120032 */ c.eq.s $f0, $f18 +/* 06591C 7F030DEC 00000000 */ nop +/* 065920 7F030DF0 45020004 */ bc1fl .L7F030E04 +/* 065924 7F030DF4 C7B200B0 */ lwc1 $f18, 0xb0($sp) +/* 065928 7F030DF8 1000013F */ b .L7F0312F8 +/* 06592C 7F030DFC 24020001 */ li $v0, 1 +.L7F030E00: +/* 065930 7F030E00 C7B200B0 */ lwc1 $f18, 0xb0($sp) +.L7F030E04: +/* 065934 7F030E04 C7B000A8 */ lwc1 $f16, 0xa8($sp) +/* 065938 7F030E08 46129282 */ mul.s $f10, $f18, $f18 +/* 06593C 7F030E0C 00000000 */ nop +/* 065940 7F030E10 46108102 */ mul.s $f4, $f16, $f16 +/* 065944 7F030E14 0C007DF8 */ jal sqrtf +/* 065948 7F030E18 46045300 */ add.s $f12, $f10, $f4 +/* 06594C 7F030E1C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065950 7F030E20 44813000 */ mtc1 $at, $f6 +/* 065954 7F030E24 C7B000A8 */ lwc1 $f16, 0xa8($sp) +/* 065958 7F030E28 C7B200B0 */ lwc1 $f18, 0xb0($sp) +/* 06595C 7F030E2C 46003083 */ div.s $f2, $f6, $f0 +/* 065960 7F030E30 C7A800D4 */ lwc1 $f8, 0xd4($sp) +/* 065964 7F030E34 3C018005 */ lui $at, %hi(D_80052024) +/* 065968 7F030E38 C42A2024 */ lwc1 $f10, %lo(D_80052024)($at) +/* 06596C 7F030E3C 3C018005 */ lui $at, %hi(D_80052028) +/* 065970 7F030E40 C4262028 */ lwc1 $f6, %lo(D_80052028)($at) +/* 065974 7F030E44 3C018005 */ lui $at, %hi(D_8005202C) +/* 065978 7F030E48 8FA400B8 */ lw $a0, 0xb8($sp) +/* 06597C 7F030E4C 00002825 */ move $a1, $zero +/* 065980 7F030E50 46028402 */ mul.s $f16, $f16, $f2 +/* 065984 7F030E54 00000000 */ nop +/* 065988 7F030E58 46029482 */ mul.s $f18, $f18, $f2 +/* 06598C 7F030E5C 00000000 */ nop +/* 065990 7F030E60 46088302 */ mul.s $f12, $f16, $f8 +/* 065994 7F030E64 E7B000A8 */ swc1 $f16, 0xa8($sp) +/* 065998 7F030E68 E7B200B0 */ swc1 $f18, 0xb0($sp) +/* 06599C 7F030E6C 460A6102 */ mul.s $f4, $f12, $f10 +/* 0659A0 7F030E70 00000000 */ nop +/* 0659A4 7F030E74 46089382 */ mul.s $f14, $f18, $f8 +/* 0659A8 7F030E78 E7A400A4 */ swc1 $f4, 0xa4($sp) +/* 0659AC 7F030E7C C424202C */ lwc1 $f4, %lo(D_8005202C)($at) +/* 0659B0 7F030E80 3C018005 */ lui $at, %hi(D_80052030) +/* 0659B4 7F030E84 46067282 */ mul.s $f10, $f14, $f6 +/* 0659B8 7F030E88 C4262030 */ lwc1 $f6, %lo(D_80052030)($at) +/* 0659BC 7F030E8C 46046202 */ mul.s $f8, $f12, $f4 +/* 0659C0 7F030E90 E7AA00A0 */ swc1 $f10, 0xa0($sp) +/* 0659C4 7F030E94 46067282 */ mul.s $f10, $f14, $f6 +/* 0659C8 7F030E98 E7A8009C */ swc1 $f8, 0x9c($sp) +/* 0659CC 7F030E9C 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 0659D0 7F030EA0 E7AA0098 */ swc1 $f10, 0x98($sp) +/* 0659D4 7F030EA4 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 0659D8 7F030EA8 00000000 */ nop +/* 0659DC 7F030EAC 8FAF00C0 */ lw $t7, 0xc0($sp) +/* 0659E0 7F030EB0 C7A400A0 */ lwc1 $f4, 0xa0($sp) +/* 0659E4 7F030EB4 C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 0659E8 7F030EB8 AFAF00B4 */ sw $t7, 0xb4($sp) +/* 0659EC 7F030EBC C6020008 */ lwc1 $f2, 8($s0) +/* 0659F0 7F030EC0 C6000000 */ lwc1 $f0, ($s0) +/* 0659F4 7F030EC4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0659F8 7F030EC8 46061281 */ sub.s $f10, $f2, $f6 +/* 0659FC 7F030ECC 44803000 */ mtc1 $zero, $f6 +/* 065A00 7F030ED0 8FB800D8 */ lw $t8, 0xd8($sp) +/* 065A04 7F030ED4 46040200 */ add.s $f8, $f0, $f4 +/* 065A08 7F030ED8 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 065A0C 7F030EDC 44815000 */ mtc1 $at, $f10 +/* 065A10 7F030EE0 C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 065A14 7F030EE4 44074000 */ mfc1 $a3, $f8 +/* 065A18 7F030EE8 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 065A1C 7F030EEC 44061000 */ mfc1 $a2, $f2 +/* 065A20 7F030EF0 44050000 */ mfc1 $a1, $f0 +/* 065A24 7F030EF4 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 065A28 7F030EF8 AFB80014 */ sw $t8, 0x14($sp) +/* 065A2C 7F030EFC E7A60020 */ swc1 $f6, 0x20($sp) +/* 065A30 7F030F00 E7A40018 */ swc1 $f4, 0x18($sp) +/* 065A34 7F030F04 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 065A38 7F030F08 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 065A3C 7F030F0C E7A8001C */ swc1 $f8, 0x1c($sp) +/* 065A40 7F030F10 10400026 */ beqz $v0, .L7F030FAC +/* 065A44 7F030F14 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 065A48 7F030F18 8FA200C4 */ lw $v0, 0xc4($sp) +/* 065A4C 7F030F1C C7B200D0 */ lwc1 $f18, 0xd0($sp) +/* 065A50 7F030F20 C6100000 */ lwc1 $f16, ($s0) +/* 065A54 7F030F24 C7AE00A0 */ lwc1 $f14, 0xa0($sp) +/* 065A58 7F030F28 C60C0008 */ lwc1 $f12, 8($s0) +/* 065A5C 7F030F2C C7AA00A4 */ lwc1 $f10, 0xa4($sp) +/* 065A60 7F030F30 460E8380 */ add.s $f14, $f16, $f14 +/* 065A64 7F030F34 C7B000A8 */ lwc1 $f16, 0xa8($sp) +/* 065A68 7F030F38 C4480000 */ lwc1 $f8, ($v0) +/* 065A6C 7F030F3C 460A6281 */ sub.s $f10, $f12, $f10 +/* 065A70 7F030F40 46128402 */ mul.s $f16, $f16, $f18 +/* 065A74 7F030F44 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 065A78 7F030F48 C7A600B0 */ lwc1 $f6, 0xb0($sp) +/* 065A7C 7F030F4C C4440008 */ lwc1 $f4, 8($v0) +/* 065A80 7F030F50 C7A2009C */ lwc1 $f2, 0x9c($sp) +/* 065A84 7F030F54 46123482 */ mul.s $f18, $f6, $f18 +/* 065A88 7F030F58 460C4300 */ add.s $f12, $f8, $f12 +/* 065A8C 7F030F5C 44057000 */ mfc1 $a1, $f14 +/* 065A90 7F030F60 44065000 */ mfc1 $a2, $f10 +/* 065A94 7F030F64 8FB900D8 */ lw $t9, 0xd8($sp) +/* 065A98 7F030F68 46022081 */ sub.s $f2, $f4, $f2 +/* 065A9C 7F030F6C C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 065AA0 7F030F70 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 065AA4 7F030F74 460C8300 */ add.s $f12, $f16, $f12 +/* 065AA8 7F030F78 44808000 */ mtc1 $zero, $f16 +/* 065AAC 7F030F7C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065AB0 7F030F80 46029080 */ add.s $f2, $f18, $f2 +/* 065AB4 7F030F84 44076000 */ mfc1 $a3, $f12 +/* 065AB8 7F030F88 44816000 */ mtc1 $at, $f12 +/* 065ABC 7F030F8C E7A40018 */ swc1 $f4, 0x18($sp) +/* 065AC0 7F030F90 E7A20010 */ swc1 $f2, 0x10($sp) +/* 065AC4 7F030F94 AFB90014 */ sw $t9, 0x14($sp) +/* 065AC8 7F030F98 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 065ACC 7F030F9C E7B00020 */ swc1 $f16, 0x20($sp) +/* 065AD0 7F030FA0 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 065AD4 7F030FA4 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 065AD8 7F030FA8 1440000C */ bnez $v0, .L7F030FDC +.L7F030FAC: +/* 065ADC 7F030FAC 24080001 */ li $t0, 1 +/* 065AE0 7F030FB0 AFA80090 */ sw $t0, 0x90($sp) +/* 065AE4 7F030FB4 27A40080 */ addiu $a0, $sp, 0x80 +/* 065AE8 7F030FB8 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 065AEC 7F030FBC 27A50074 */ addiu $a1, $sp, 0x74 +/* 065AF0 7F030FC0 27A40080 */ addiu $a0, $sp, 0x80 +/* 065AF4 7F030FC4 27A50074 */ addiu $a1, $sp, 0x74 +/* 065AF8 7F030FC8 0FC0C1D3 */ jal sub_GAME_7F03074C +/* 065AFC 7F030FCC 27A600A8 */ addiu $a2, $sp, 0xa8 +/* 065B00 7F030FD0 3C018008 */ lui $at, %hi(flt_CODE_bss_8007BA00) +/* 065B04 7F030FD4 C42ABA00 */ lwc1 $f10, %lo(flt_CODE_bss_8007BA00)($at) +/* 065B08 7F030FD8 E7AA0054 */ swc1 $f10, 0x54($sp) +.L7F030FDC: +/* 065B0C 7F030FDC 8FA900C0 */ lw $t1, 0xc0($sp) +/* 065B10 7F030FE0 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 065B14 7F030FE4 C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 065B18 7F030FE8 AFA900B4 */ sw $t1, 0xb4($sp) +/* 065B1C 7F030FEC C6020008 */ lwc1 $f2, 8($s0) +/* 065B20 7F030FF0 C6000000 */ lwc1 $f0, ($s0) +/* 065B24 7F030FF4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065B28 7F030FF8 46061280 */ add.s $f10, $f2, $f6 +/* 065B2C 7F030FFC 44803000 */ mtc1 $zero, $f6 +/* 065B30 7F031000 8FAA00D8 */ lw $t2, 0xd8($sp) +/* 065B34 7F031004 46080101 */ sub.s $f4, $f0, $f8 +/* 065B38 7F031008 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 065B3C 7F03100C 44815000 */ mtc1 $at, $f10 +/* 065B40 7F031010 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 065B44 7F031014 44072000 */ mfc1 $a3, $f4 +/* 065B48 7F031018 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 065B4C 7F03101C 44061000 */ mfc1 $a2, $f2 +/* 065B50 7F031020 44050000 */ mfc1 $a1, $f0 +/* 065B54 7F031024 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 065B58 7F031028 AFAA0014 */ sw $t2, 0x14($sp) +/* 065B5C 7F03102C E7A60020 */ swc1 $f6, 0x20($sp) +/* 065B60 7F031030 E7A80018 */ swc1 $f8, 0x18($sp) +/* 065B64 7F031034 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 065B68 7F031038 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 065B6C 7F03103C E7A4001C */ swc1 $f4, 0x1c($sp) +/* 065B70 7F031040 10400026 */ beqz $v0, .L7F0310DC +/* 065B74 7F031044 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 065B78 7F031048 8FA200C4 */ lw $v0, 0xc4($sp) +/* 065B7C 7F03104C C6120008 */ lwc1 $f18, 8($s0) +/* 065B80 7F031050 C7B000A4 */ lwc1 $f16, 0xa4($sp) +/* 065B84 7F031054 C7AE00A8 */ lwc1 $f14, 0xa8($sp) +/* 065B88 7F031058 C7AC00D0 */ lwc1 $f12, 0xd0($sp) +/* 065B8C 7F03105C 46109400 */ add.s $f16, $f18, $f16 +/* 065B90 7F031060 C4520000 */ lwc1 $f18, ($v0) +/* 065B94 7F031064 460C7382 */ mul.s $f14, $f14, $f12 +/* 065B98 7F031068 C60A0000 */ lwc1 $f10, ($s0) +/* 065B9C 7F03106C C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 065BA0 7F031070 C7A60098 */ lwc1 $f6, 0x98($sp) +/* 065BA4 7F031074 C7A400B0 */ lwc1 $f4, 0xb0($sp) +/* 065BA8 7F031078 46085201 */ sub.s $f8, $f10, $f8 +/* 065BAC 7F03107C C44A0008 */ lwc1 $f10, 8($v0) +/* 065BB0 7F031080 C7A2009C */ lwc1 $f2, 0x9c($sp) +/* 065BB4 7F031084 46069181 */ sub.s $f6, $f18, $f6 +/* 065BB8 7F031088 460C2302 */ mul.s $f12, $f4, $f12 +/* 065BBC 7F03108C 44054000 */ mfc1 $a1, $f8 +/* 065BC0 7F031090 46025080 */ add.s $f2, $f10, $f2 +/* 065BC4 7F031094 44068000 */ mfc1 $a2, $f16 +/* 065BC8 7F031098 8FAB00D8 */ lw $t3, 0xd8($sp) +/* 065BCC 7F03109C 46067180 */ add.s $f6, $f14, $f6 +/* 065BD0 7F0310A0 C7AE004C */ lwc1 $f14, 0x4c($sp) +/* 065BD4 7F0310A4 C7B00048 */ lwc1 $f16, 0x48($sp) +/* 065BD8 7F0310A8 46026080 */ add.s $f2, $f12, $f2 +/* 065BDC 7F0310AC 44073000 */ mfc1 $a3, $f6 +/* 065BE0 7F0310B0 44803000 */ mtc1 $zero, $f6 +/* 065BE4 7F0310B4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065BE8 7F0310B8 44816000 */ mtc1 $at, $f12 +/* 065BEC 7F0310BC E7A20010 */ swc1 $f2, 0x10($sp) +/* 065BF0 7F0310C0 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 065BF4 7F0310C4 AFAB0014 */ sw $t3, 0x14($sp) +/* 065BF8 7F0310C8 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 065BFC 7F0310CC E7A60020 */ swc1 $f6, 0x20($sp) +/* 065C00 7F0310D0 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 065C04 7F0310D4 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 065C08 7F0310D8 1440000C */ bnez $v0, .L7F03110C +.L7F0310DC: +/* 065C0C 7F0310DC 240C0001 */ li $t4, 1 +/* 065C10 7F0310E0 AFAC008C */ sw $t4, 0x8c($sp) +/* 065C14 7F0310E4 27A40068 */ addiu $a0, $sp, 0x68 +/* 065C18 7F0310E8 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 065C1C 7F0310EC 27A5005C */ addiu $a1, $sp, 0x5c +/* 065C20 7F0310F0 27A40068 */ addiu $a0, $sp, 0x68 +/* 065C24 7F0310F4 27A5005C */ addiu $a1, $sp, 0x5c +/* 065C28 7F0310F8 0FC0C1D3 */ jal sub_GAME_7F03074C +/* 065C2C 7F0310FC 27A600A8 */ addiu $a2, $sp, 0xa8 +/* 065C30 7F031100 3C018008 */ lui $at, %hi(flt_CODE_bss_8007BA00) +/* 065C34 7F031104 C428BA00 */ lwc1 $f8, %lo(flt_CODE_bss_8007BA00)($at) +/* 065C38 7F031108 E7A80050 */ swc1 $f8, 0x50($sp) +.L7F03110C: +/* 065C3C 7F03110C 8FAD0090 */ lw $t5, 0x90($sp) +/* 065C40 7F031110 8FAE008C */ lw $t6, 0x8c($sp) +/* 065C44 7F031114 8FAF0090 */ lw $t7, 0x90($sp) +/* 065C48 7F031118 11A00025 */ beqz $t5, .L7F0311B0 +/* 065C4C 7F03111C 00000000 */ nop +/* 065C50 7F031120 11C00023 */ beqz $t6, .L7F0311B0 +/* 065C54 7F031124 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 065C58 7F031128 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 065C5C 7F03112C C7A60080 */ lwc1 $f6, 0x80($sp) +/* 065C60 7F031130 8FA400C8 */ lw $a0, 0xc8($sp) +/* 065C64 7F031134 460A203C */ c.lt.s $f4, $f10 +/* 065C68 7F031138 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 065C6C 7F03113C 45020010 */ bc1fl .L7F031180 +/* 065C70 7F031140 8FA500CC */ lw $a1, 0xcc($sp) +/* 065C74 7F031144 8FA400C8 */ lw $a0, 0xc8($sp) +/* 065C78 7F031148 8FA500CC */ lw $a1, 0xcc($sp) +/* 065C7C 7F03114C E4860000 */ swc1 $f6, ($a0) +/* 065C80 7F031150 C7A80084 */ lwc1 $f8, 0x84($sp) +/* 065C84 7F031154 E4880004 */ swc1 $f8, 4($a0) +/* 065C88 7F031158 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 065C8C 7F03115C E4840008 */ swc1 $f4, 8($a0) +/* 065C90 7F031160 C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 065C94 7F031164 E4AA0000 */ swc1 $f10, ($a1) +/* 065C98 7F031168 C7A60078 */ lwc1 $f6, 0x78($sp) +/* 065C9C 7F03116C E4A60004 */ swc1 $f6, 4($a1) +/* 065CA0 7F031170 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 065CA4 7F031174 1000005C */ b .L7F0312E8 +/* 065CA8 7F031178 E4A80008 */ swc1 $f8, 8($a1) +/* 065CAC 7F03117C 8FA500CC */ lw $a1, 0xcc($sp) +.L7F031180: +/* 065CB0 7F031180 E4840000 */ swc1 $f4, ($a0) +/* 065CB4 7F031184 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 065CB8 7F031188 E48A0004 */ swc1 $f10, 4($a0) +/* 065CBC 7F03118C C7A60070 */ lwc1 $f6, 0x70($sp) +/* 065CC0 7F031190 E4860008 */ swc1 $f6, 8($a0) +/* 065CC4 7F031194 C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 065CC8 7F031198 E4A80000 */ swc1 $f8, ($a1) +/* 065CCC 7F03119C C7A40060 */ lwc1 $f4, 0x60($sp) +/* 065CD0 7F0311A0 E4A40004 */ swc1 $f4, 4($a1) +/* 065CD4 7F0311A4 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 065CD8 7F0311A8 1000004F */ b .L7F0312E8 +/* 065CDC 7F0311AC E4AA0008 */ swc1 $f10, 8($a1) +.L7F0311B0: +/* 065CE0 7F0311B0 11E00010 */ beqz $t7, .L7F0311F4 +/* 065CE4 7F0311B4 8FB8008C */ lw $t8, 0x8c($sp) +/* 065CE8 7F0311B8 8FA400C8 */ lw $a0, 0xc8($sp) +/* 065CEC 7F0311BC C7A60080 */ lwc1 $f6, 0x80($sp) +/* 065CF0 7F0311C0 8FA500CC */ lw $a1, 0xcc($sp) +/* 065CF4 7F0311C4 E4860000 */ swc1 $f6, ($a0) +/* 065CF8 7F0311C8 C7A80084 */ lwc1 $f8, 0x84($sp) +/* 065CFC 7F0311CC E4880004 */ swc1 $f8, 4($a0) +/* 065D00 7F0311D0 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 065D04 7F0311D4 E4840008 */ swc1 $f4, 8($a0) +/* 065D08 7F0311D8 C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 065D0C 7F0311DC E4AA0000 */ swc1 $f10, ($a1) +/* 065D10 7F0311E0 C7A60078 */ lwc1 $f6, 0x78($sp) +/* 065D14 7F0311E4 E4A60004 */ swc1 $f6, 4($a1) +/* 065D18 7F0311E8 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 065D1C 7F0311EC 1000003E */ b .L7F0312E8 +/* 065D20 7F0311F0 E4A80008 */ swc1 $f8, 8($a1) +.L7F0311F4: +/* 065D24 7F0311F4 13000010 */ beqz $t8, .L7F031238 +/* 065D28 7F0311F8 8FA200C4 */ lw $v0, 0xc4($sp) +/* 065D2C 7F0311FC 8FA400C8 */ lw $a0, 0xc8($sp) +/* 065D30 7F031200 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 065D34 7F031204 8FA500CC */ lw $a1, 0xcc($sp) +/* 065D38 7F031208 E4840000 */ swc1 $f4, ($a0) +/* 065D3C 7F03120C C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 065D40 7F031210 E48A0004 */ swc1 $f10, 4($a0) +/* 065D44 7F031214 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 065D48 7F031218 E4860008 */ swc1 $f6, 8($a0) +/* 065D4C 7F03121C C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 065D50 7F031220 E4A80000 */ swc1 $f8, ($a1) +/* 065D54 7F031224 C7A40060 */ lwc1 $f4, 0x60($sp) +/* 065D58 7F031228 E4A40004 */ swc1 $f4, 4($a1) +/* 065D5C 7F03122C C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 065D60 7F031230 1000002D */ b .L7F0312E8 +/* 065D64 7F031234 E4AA0008 */ swc1 $f10, 8($a1) +.L7F031238: +/* 065D68 7F031238 8FB900C0 */ lw $t9, 0xc0($sp) +/* 065D6C 7F03123C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065D70 7F031240 8FA800D8 */ lw $t0, 0xd8($sp) +/* 065D74 7F031244 AFB900B4 */ sw $t9, 0xb4($sp) +/* 065D78 7F031248 C4460008 */ lwc1 $f6, 8($v0) +/* 065D7C 7F03124C 8C470000 */ lw $a3, ($v0) +/* 065D80 7F031250 8E060008 */ lw $a2, 8($s0) +/* 065D84 7F031254 8E050000 */ lw $a1, ($s0) +/* 065D88 7F031258 E7A60010 */ swc1 $f6, 0x10($sp) +/* 065D8C 7F03125C 44813000 */ mtc1 $at, $f6 +/* 065D90 7F031260 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 065D94 7F031264 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 065D98 7F031268 44805000 */ mtc1 $zero, $f10 +/* 065D9C 7F03126C 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 065DA0 7F031270 AFA80014 */ sw $t0, 0x14($sp) +/* 065DA4 7F031274 E7A80018 */ swc1 $f8, 0x18($sp) +/* 065DA8 7F031278 E7A60024 */ swc1 $f6, 0x24($sp) +/* 065DAC 7F03127C E7A4001C */ swc1 $f4, 0x1c($sp) +/* 065DB0 7F031280 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 065DB4 7F031284 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 065DB8 7F031288 10400010 */ beqz $v0, .L7F0312CC +/* 065DBC 7F03128C 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 065DC0 7F031290 8FA900C4 */ lw $t1, 0xc4($sp) +/* 065DC4 7F031294 8FAA00D8 */ lw $t2, 0xd8($sp) +/* 065DC8 7F031298 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 065DCC 7F03129C C7A40048 */ lwc1 $f4, 0x48($sp) +/* 065DD0 7F0312A0 8D250000 */ lw $a1, ($t1) +/* 065DD4 7F0312A4 8D260008 */ lw $a2, 8($t1) +/* 065DD8 7F0312A8 8FA700D4 */ lw $a3, 0xd4($sp) +/* 065DDC 7F0312AC AFAA0010 */ sw $t2, 0x10($sp) +/* 065DE0 7F0312B0 E7A80014 */ swc1 $f8, 0x14($sp) +/* 065DE4 7F0312B4 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 065DE8 7F0312B8 E7A40018 */ swc1 $f4, 0x18($sp) +/* 065DEC 7F0312BC 04410003 */ bgez $v0, .L7F0312CC +/* 065DF0 7F0312C0 240B0001 */ li $t3, 1 +/* 065DF4 7F0312C4 10000008 */ b .L7F0312E8 +/* 065DF8 7F0312C8 AFAB0058 */ sw $t3, 0x58($sp) +.L7F0312CC: +/* 065DFC 7F0312CC 8FA400C8 */ lw $a0, 0xc8($sp) +/* 065E00 7F0312D0 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 065E04 7F0312D4 8FA500CC */ lw $a1, 0xcc($sp) +/* 065E08 7F0312D8 8FA400C8 */ lw $a0, 0xc8($sp) +/* 065E0C 7F0312DC 8FA500CC */ lw $a1, 0xcc($sp) +/* 065E10 7F0312E0 0FC0C1D3 */ jal sub_GAME_7F03074C +/* 065E14 7F0312E4 27A600A8 */ addiu $a2, $sp, 0xa8 +.L7F0312E8: +/* 065E18 7F0312E8 8FA400B8 */ lw $a0, 0xb8($sp) +/* 065E1C 7F0312EC 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 065E20 7F0312F0 24050001 */ li $a1, 1 +/* 065E24 7F0312F4 8FA20058 */ lw $v0, 0x58($sp) +.L7F0312F8: +/* 065E28 7F0312F8 8FBF0034 */ lw $ra, 0x34($sp) +/* 065E2C 7F0312FC 8FB00030 */ lw $s0, 0x30($sp) +/* 065E30 7F031300 27BD00B8 */ addiu $sp, $sp, 0xb8 +/* 065E34 7F031304 03E00008 */ jr $ra +/* 065E38 7F031308 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F03130C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052034 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80052038 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F03130C +/* 065E3C 7F03130C 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 065E40 7F031310 AFBF0034 */ sw $ra, 0x34($sp) +/* 065E44 7F031314 AFB00030 */ sw $s0, 0x30($sp) +/* 065E48 7F031318 AFA40080 */ sw $a0, 0x80($sp) +/* 065E4C 7F03131C AFA60088 */ sw $a2, 0x88($sp) +/* 065E50 7F031320 00A08025 */ move $s0, $a1 +/* 065E54 7F031324 10C00004 */ beqz $a2, .L7F031338 +/* 065E58 7F031328 8C820018 */ lw $v0, 0x18($a0) +/* 065E5C 7F03132C AFA5004C */ sw $a1, 0x4c($sp) +/* 065E60 7F031330 10000003 */ b .L7F031340 +/* 065E64 7F031334 AFA70048 */ sw $a3, 0x48($sp) +.L7F031338: +/* 065E68 7F031338 AFA7004C */ sw $a3, 0x4c($sp) +/* 065E6C 7F03133C AFB00048 */ sw $s0, 0x48($sp) +.L7F031340: +/* 065E70 7F031340 C6040000 */ lwc1 $f4, ($s0) +/* 065E74 7F031344 C4460008 */ lwc1 $f6, 8($v0) +/* 065E78 7F031348 44805000 */ mtc1 $zero, $f10 +/* 065E7C 7F03134C 46062201 */ sub.s $f8, $f4, $f6 +/* 065E80 7F031350 E7AA0074 */ swc1 $f10, 0x74($sp) +/* 065E84 7F031354 E7A80070 */ swc1 $f8, 0x70($sp) +/* 065E88 7F031358 C4460010 */ lwc1 $f6, 0x10($v0) +/* 065E8C 7F03135C C6040008 */ lwc1 $f4, 8($s0) +/* 065E90 7F031360 AFA2007C */ sw $v0, 0x7c($sp) +/* 065E94 7F031364 46062201 */ sub.s $f8, $f4, $f6 +/* 065E98 7F031368 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 065E9C 7F03136C E7A80078 */ swc1 $f8, 0x78($sp) +/* 065EA0 7F031370 C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 065EA4 7F031374 460A5102 */ mul.s $f4, $f10, $f10 +/* 065EA8 7F031378 00000000 */ nop +/* 065EAC 7F03137C 46063202 */ mul.s $f8, $f6, $f6 +/* 065EB0 7F031380 0C007DF8 */ jal sqrtf +/* 065EB4 7F031384 46082300 */ add.s $f12, $f4, $f8 +/* 065EB8 7F031388 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 065EBC 7F03138C 44818000 */ mtc1 $at, $f16 +/* 065EC0 7F031390 C7B20090 */ lwc1 $f18, 0x90($sp) +/* 065EC4 7F031394 C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 065EC8 7F031398 46008383 */ div.s $f14, $f16, $f0 +/* 065ECC 7F03139C C7A40078 */ lwc1 $f4, 0x78($sp) +/* 065ED0 7F0313A0 3C018005 */ lui $at, %hi(D_80052034) +/* 065ED4 7F0313A4 460E9082 */ mul.s $f2, $f18, $f14 +/* 065ED8 7F0313A8 00000000 */ nop +/* 065EDC 7F0313AC 46025182 */ mul.s $f6, $f10, $f2 +/* 065EE0 7F0313B0 4602803C */ c.lt.s $f16, $f2 +/* 065EE4 7F0313B4 46022202 */ mul.s $f8, $f4, $f2 +/* 065EE8 7F0313B8 E7A60070 */ swc1 $f6, 0x70($sp) +/* 065EEC 7F0313BC 45000003 */ bc1f .L7F0313CC +/* 065EF0 7F0313C0 E7A80078 */ swc1 $f8, 0x78($sp) +/* 065EF4 7F0313C4 10000005 */ b .L7F0313DC +/* 065EF8 7F0313C8 C42C2034 */ lwc1 $f12, %lo(D_80052034)($at) +.L7F0313CC: +/* 065EFC 7F0313CC 460E9302 */ mul.s $f12, $f18, $f14 +/* 065F00 7F0313D0 0FC16B2C */ jal acosf +/* 065F04 7F0313D4 00000000 */ nop +/* 065F08 7F0313D8 46000306 */ mov.s $f12, $f0 +.L7F0313DC: +/* 065F0C 7F0313DC 8FB80088 */ lw $t8, 0x88($sp) +/* 065F10 7F0313E0 17000009 */ bnez $t8, .L7F031408 +/* 065F14 7F0313E4 00000000 */ nop +/* 065F18 7F0313E8 44805000 */ mtc1 $zero, $f10 +/* 065F1C 7F0313EC 3C018005 */ lui $at, %hi(D_80052038) +/* 065F20 7F0313F0 460A6032 */ c.eq.s $f12, $f10 +/* 065F24 7F0313F4 00000000 */ nop +/* 065F28 7F0313F8 45010003 */ bc1t .L7F031408 +/* 065F2C 7F0313FC 00000000 */ nop +/* 065F30 7F031400 C4262038 */ lwc1 $f6, %lo(D_80052038)($at) +/* 065F34 7F031404 460C3301 */ sub.s $f12, $f6, $f12 +.L7F031408: +/* 065F38 7F031408 0FC15FA8 */ jal cosf +/* 065F3C 7F03140C E7AC005C */ swc1 $f12, 0x5c($sp) +/* 065F40 7F031410 C7AC005C */ lwc1 $f12, 0x5c($sp) +/* 065F44 7F031414 0FC15FAB */ jal sinf +/* 065F48 7F031418 E7A00040 */ swc1 $f0, 0x40($sp) +/* 065F4C 7F03141C C7A40040 */ lwc1 $f4, 0x40($sp) +/* 065F50 7F031420 C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 065F54 7F031424 C7AC005C */ lwc1 $f12, 0x5c($sp) +/* 065F58 7F031428 46002207 */ neg.s $f8, $f4 +/* 065F5C 7F03142C C7A40078 */ lwc1 $f4, 0x78($sp) +/* 065F60 7F031430 460A4182 */ mul.s $f6, $f8, $f10 +/* 065F64 7F031434 00000000 */ nop +/* 065F68 7F031438 46002202 */ mul.s $f8, $f4, $f0 +/* 065F6C 7F03143C 44802000 */ mtc1 $zero, $f4 +/* 065F70 7F031440 00000000 */ nop +/* 065F74 7F031444 E7A40054 */ swc1 $f4, 0x54($sp) +/* 065F78 7F031448 46064280 */ add.s $f10, $f8, $f6 +/* 065F7C 7F03144C 0FC15FAB */ jal sinf +/* 065F80 7F031450 E7AA0050 */ swc1 $f10, 0x50($sp) +/* 065F84 7F031454 C7AC005C */ lwc1 $f12, 0x5c($sp) +/* 065F88 7F031458 0FC15FA8 */ jal cosf +/* 065F8C 7F03145C E7A00040 */ swc1 $f0, 0x40($sp) +/* 065F90 7F031460 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 065F94 7F031464 C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 065F98 7F031468 8FA2007C */ lw $v0, 0x7c($sp) +/* 065F9C 7F03146C 46004187 */ neg.s $f6, $f8 +/* 065FA0 7F031470 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 065FA4 7F031474 460A3102 */ mul.s $f4, $f6, $f10 +/* 065FA8 7F031478 8FB9004C */ lw $t9, 0x4c($sp) +/* 065FAC 7F03147C 8FA80048 */ lw $t0, 0x48($sp) +/* 065FB0 7F031480 46004182 */ mul.s $f6, $f8, $f0 +/* 065FB4 7F031484 C7A80050 */ lwc1 $f8, 0x50($sp) +/* 065FB8 7F031488 8FA40080 */ lw $a0, 0x80($sp) +/* 065FBC 7F03148C 8FA900A4 */ lw $t1, 0xa4($sp) +/* 065FC0 7F031490 24450008 */ addiu $a1, $v0, 8 +/* 065FC4 7F031494 27A70064 */ addiu $a3, $sp, 0x64 +/* 065FC8 7F031498 46062281 */ sub.s $f10, $f4, $f6 +/* 065FCC 7F03149C E7AA0058 */ swc1 $f10, 0x58($sp) +/* 065FD0 7F0314A0 C6040000 */ lwc1 $f4, ($s0) +/* 065FD4 7F0314A4 46044180 */ add.s $f6, $f8, $f4 +/* 065FD8 7F0314A8 E7A60064 */ swc1 $f6, 0x64($sp) +/* 065FDC 7F0314AC C6080004 */ lwc1 $f8, 4($s0) +/* 065FE0 7F0314B0 E7A80068 */ swc1 $f8, 0x68($sp) +/* 065FE4 7F0314B4 C6040008 */ lwc1 $f4, 8($s0) +/* 065FE8 7F0314B8 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 065FEC 7F0314BC 46045180 */ add.s $f6, $f10, $f4 +/* 065FF0 7F0314C0 E7A6006C */ swc1 $f6, 0x6c($sp) +/* 065FF4 7F0314C4 8C460014 */ lw $a2, 0x14($v0) +/* 065FF8 7F0314C8 AFB90010 */ sw $t9, 0x10($sp) +/* 065FFC 7F0314CC AFA80014 */ sw $t0, 0x14($sp) +/* 066000 7F0314D0 E7A80018 */ swc1 $f8, 0x18($sp) +/* 066004 7F0314D4 C48A0024 */ lwc1 $f10, 0x24($a0) +/* 066008 7F0314D8 AFA5003C */ sw $a1, 0x3c($sp) +/* 06600C 7F0314DC AFA90020 */ sw $t1, 0x20($sp) +/* 066010 7F0314E0 0FC0C207 */ jal sub_GAME_7F03081C +/* 066014 7F0314E4 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 066018 7F0314E8 10400028 */ beqz $v0, .L7F03158C +/* 06601C 7F0314EC 8FA5003C */ lw $a1, 0x3c($sp) +/* 066020 7F0314F0 8FAA0094 */ lw $t2, 0x94($sp) +/* 066024 7F0314F4 8FA40080 */ lw $a0, 0x80($sp) +/* 066028 7F0314F8 8FAB007C */ lw $t3, 0x7c($sp) +/* 06602C 7F0314FC 1140000A */ beqz $t2, .L7F031528 +/* 066030 7F031500 27A70064 */ addiu $a3, $sp, 0x64 +/* 066034 7F031504 8FAC0098 */ lw $t4, 0x98($sp) +/* 066038 7F031508 8FAD00A4 */ lw $t5, 0xa4($sp) +/* 06603C 7F03150C 8D660014 */ lw $a2, 0x14($t3) +/* 066040 7F031510 AFA00014 */ sw $zero, 0x14($sp) +/* 066044 7F031514 AFAC0010 */ sw $t4, 0x10($sp) +/* 066048 7F031518 0FC0C12B */ jal sub_GAME_7F0304AC +/* 06604C 7F03151C AFAD0018 */ sw $t5, 0x18($sp) +/* 066050 7F031520 5040001B */ beql $v0, $zero, .L7F031590 +/* 066054 7F031524 00001025 */ move $v0, $zero +.L7F031528: +/* 066058 7F031528 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 06605C 7F03152C 8FA2009C */ lw $v0, 0x9c($sp) +/* 066060 7F031530 24180001 */ li $t8, 1 +/* 066064 7F031534 51C0000D */ beql $t6, $zero, .L7F03156C +/* 066068 7F031538 A0580002 */ sb $t8, 2($v0) +/* 06606C 7F03153C 8FA2009C */ lw $v0, 0x9c($sp) +/* 066070 7F031540 240F0001 */ li $t7, 1 +/* 066074 7F031544 A04F0003 */ sb $t7, 3($v0) +/* 066078 7F031548 C7A40064 */ lwc1 $f4, 0x64($sp) +/* 06607C 7F03154C E444002C */ swc1 $f4, 0x2c($v0) +/* 066080 7F031550 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 066084 7F031554 E4460030 */ swc1 $f6, 0x30($v0) +/* 066088 7F031558 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 06608C 7F03155C E4480034 */ swc1 $f8, 0x34($v0) +/* 066090 7F031560 1000000B */ b .L7F031590 +/* 066094 7F031564 24020001 */ li $v0, 1 +/* 066098 7F031568 A0580002 */ sb $t8, 2($v0) +.L7F03156C: +/* 06609C 7F03156C C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 0660A0 7F031570 E44A0004 */ swc1 $f10, 4($v0) +/* 0660A4 7F031574 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 0660A8 7F031578 E4440008 */ swc1 $f4, 8($v0) +/* 0660AC 7F03157C C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 0660B0 7F031580 E446000C */ swc1 $f6, 0xc($v0) +/* 0660B4 7F031584 10000002 */ b .L7F031590 +/* 0660B8 7F031588 24020001 */ li $v0, 1 +.L7F03158C: +/* 0660BC 7F03158C 00001025 */ move $v0, $zero +.L7F031590: +/* 0660C0 7F031590 8FBF0034 */ lw $ra, 0x34($sp) +/* 0660C4 7F031594 8FB00030 */ lw $s0, 0x30($sp) +/* 0660C8 7F031598 27BD0080 */ addiu $sp, $sp, 0x80 +/* 0660CC 7F03159C 03E00008 */ jr $ra +/* 0660D0 7F0315A0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0315A4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005203C +.word 0x40490fdb /*3.1415927*/ +glabel D_80052040 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052044 +.word 0x3f99999a /*1.2*/ +glabel D_80052048 +.word 0x3f866666 /*1.05*/ +glabel D_8005204C +.word 0x3f99999a /*1.2*/ +glabel D_80052050 +.word 0x3f866666 /*1.05*/ +glabel D_80052054 +.word 0x3f99999a /*1.2*/ +glabel D_80052058 +.word 0x3f866666 /*1.05*/ +glabel D_8005205C +.word 0x3f8ccccd /*1.1*/ +glabel D_80052060 +.word 0x3f8ccccd /*1.1*/ +glabel D_80052064 +.word 0x471c4000 /*40000.0*/ +.text +glabel sub_GAME_7F0315A4 +/* 0660D4 7F0315A4 27BDFEF0 */ addiu $sp, $sp, -0x110 +/* 0660D8 7F0315A8 AFBF0084 */ sw $ra, 0x84($sp) +/* 0660DC 7F0315AC AFB70080 */ sw $s7, 0x80($sp) +/* 0660E0 7F0315B0 AFB6007C */ sw $s6, 0x7c($sp) +/* 0660E4 7F0315B4 AFB50078 */ sw $s5, 0x78($sp) +/* 0660E8 7F0315B8 AFB40074 */ sw $s4, 0x74($sp) +/* 0660EC 7F0315BC AFB30070 */ sw $s3, 0x70($sp) +/* 0660F0 7F0315C0 AFB2006C */ sw $s2, 0x6c($sp) +/* 0660F4 7F0315C4 AFB10068 */ sw $s1, 0x68($sp) +/* 0660F8 7F0315C8 AFB00064 */ sw $s0, 0x64($sp) +/* 0660FC 7F0315CC F7BE0058 */ sdc1 $f30, 0x58($sp) +/* 066100 7F0315D0 F7BC0050 */ sdc1 $f28, 0x50($sp) +/* 066104 7F0315D4 F7BA0048 */ sdc1 $f26, 0x48($sp) +/* 066108 7F0315D8 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 06610C 7F0315DC F7B60038 */ sdc1 $f22, 0x38($sp) +/* 066110 7F0315E0 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 066114 7F0315E4 AFA60118 */ sw $a2, 0x118($sp) +/* 066118 7F0315E8 948E0012 */ lhu $t6, 0x12($a0) +/* 06611C 7F0315EC 00E08025 */ move $s0, $a3 +/* 066120 7F0315F0 00809025 */ move $s2, $a0 +/* 066124 7F0315F4 31CF0010 */ andi $t7, $t6, 0x10 +/* 066128 7F0315F8 00A0A025 */ move $s4, $a1 +/* 06612C 7F0315FC 8C910018 */ lw $s1, 0x18($a0) +/* 066130 7F031600 11E00002 */ beqz $t7, .L7F03160C +/* 066134 7F031604 3416801D */ li $s6, 32797 +/* 066138 7F031608 2416001F */ li $s6, 31 +.L7F03160C: +/* 06613C 7F03160C 3C018005 */ lui $at, %hi(D_8005203C) +/* 066140 7F031610 C43E203C */ lwc1 $f30, %lo(D_8005203C)($at) +/* 066144 7F031614 3C018005 */ lui $at, %hi(D_80052040) +/* 066148 7F031618 4480E000 */ mtc1 $zero, $f28 +/* 06614C 7F03161C C43A2040 */ lwc1 $f26, %lo(D_80052040)($at) +/* 066150 7F031620 AFA000F0 */ sw $zero, 0xf0($sp) +/* 066154 7F031624 24170001 */ li $s7, 1 +/* 066158 7F031628 24150004 */ li $s5, 4 +/* 06615C 7F03162C 27B300F4 */ addiu $s3, $sp, 0xf4 +.L7F031630: +/* 066160 7F031630 82020000 */ lb $v0, ($s0) +/* 066164 7F031634 24010002 */ li $at, 2 +/* 066168 7F031638 50400004 */ beql $v0, $zero, .L7F03164C +/* 06616C 7F03163C C6840000 */ lwc1 $f4, ($s4) +/* 066170 7F031640 1441002D */ bne $v0, $at, .L7F0316F8 +/* 066174 7F031644 00000000 */ nop +/* 066178 7F031648 C6840000 */ lwc1 $f4, ($s4) +.L7F03164C: +/* 06617C 7F03164C 26180010 */ addiu $t8, $s0, 0x10 +/* 066180 7F031650 2619001C */ addiu $t9, $s0, 0x1c +/* 066184 7F031654 E7A40100 */ swc1 $f4, 0x100($sp) +/* 066188 7F031658 C6860004 */ lwc1 $f6, 4($s4) +/* 06618C 7F03165C 24080010 */ li $t0, 16 +/* 066190 7F031660 02402025 */ move $a0, $s2 +/* 066194 7F031664 E7A60104 */ swc1 $f6, 0x104($sp) +/* 066198 7F031668 C6880008 */ lwc1 $f8, 8($s4) +/* 06619C 7F03166C 26250008 */ addiu $a1, $s1, 8 +/* 0661A0 7F031670 27A70100 */ addiu $a3, $sp, 0x100 +/* 0661A4 7F031674 E7A80108 */ swc1 $f8, 0x108($sp) +/* 0661A8 7F031678 8E260014 */ lw $a2, 0x14($s1) +/* 0661AC 7F03167C AFB90014 */ sw $t9, 0x14($sp) +/* 0661B0 7F031680 AFB80010 */ sw $t8, 0x10($sp) +/* 0661B4 7F031684 C6400024 */ lwc1 $f0, 0x24($s2) +/* 0661B8 7F031688 AFA80020 */ sw $t0, 0x20($sp) +/* 0661BC 7F03168C 46000287 */ neg.s $f10, $f0 +/* 0661C0 7F031690 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0661C4 7F031694 0FC0C207 */ jal sub_GAME_7F03081C +/* 0661C8 7F031698 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 0661CC 7F03169C 5040000B */ beql $v0, $zero, .L7F0316CC +/* 0661D0 7F0316A0 82020000 */ lb $v0, ($s0) +/* 0661D4 7F0316A4 A2170002 */ sb $s7, 2($s0) +/* 0661D8 7F0316A8 C7B20100 */ lwc1 $f18, 0x100($sp) +/* 0661DC 7F0316AC E6120004 */ swc1 $f18, 4($s0) +/* 0661E0 7F0316B0 C7A40104 */ lwc1 $f4, 0x104($sp) +/* 0661E4 7F0316B4 E6040008 */ swc1 $f4, 8($s0) +/* 0661E8 7F0316B8 C7A60108 */ lwc1 $f6, 0x108($sp) +/* 0661EC 7F0316BC A2150000 */ sb $s5, ($s0) +/* 0661F0 7F0316C0 1000019B */ b .L7F031D30 +/* 0661F4 7F0316C4 E606000C */ swc1 $f6, 0xc($s0) +/* 0661F8 7F0316C8 82020000 */ lb $v0, ($s0) +.L7F0316CC: +/* 0661FC 7F0316CC 24010002 */ li $at, 2 +/* 066200 7F0316D0 14400004 */ bnez $v0, .L7F0316E4 +/* 066204 7F0316D4 00000000 */ nop +/* 066208 7F0316D8 A2170000 */ sb $s7, ($s0) +/* 06620C 7F0316DC 10000194 */ b .L7F031D30 +/* 066210 7F0316E0 A2000001 */ sb $zero, 1($s0) +.L7F0316E4: +/* 066214 7F0316E4 14410192 */ bne $v0, $at, .L7F031D30 +/* 066218 7F0316E8 24090003 */ li $t1, 3 +/* 06621C 7F0316EC A2090000 */ sb $t1, ($s0) +/* 066220 7F0316F0 1000018F */ b .L7F031D30 +/* 066224 7F0316F4 A2000001 */ sb $zero, 1($s0) +.L7F0316F8: +/* 066228 7F0316F8 16E20035 */ bne $s7, $v0, .L7F0317D0 +/* 06622C 7F0316FC 24010003 */ li $at, 3 +/* 066230 7F031700 3C018005 */ lui $at, %hi(D_80052044) +/* 066234 7F031704 C42A2044 */ lwc1 $f10, %lo(D_80052044)($at) +/* 066238 7F031708 C6480024 */ lwc1 $f8, 0x24($s2) +/* 06623C 7F03170C 3C018005 */ lui $at, %hi(D_80052048) +/* 066240 7F031710 C4242048 */ lwc1 $f4, %lo(D_80052048)($at) +/* 066244 7F031714 460A4482 */ mul.s $f18, $f8, $f10 +/* 066248 7F031718 240A0010 */ li $t2, 16 +/* 06624C 7F03171C AFAA0024 */ sw $t2, 0x24($sp) +/* 066250 7F031720 AFA00028 */ sw $zero, 0x28($sp) +/* 066254 7F031724 E7BC0020 */ swc1 $f28, 0x20($sp) +/* 066258 7F031728 AFB0001C */ sw $s0, 0x1c($sp) +/* 06625C 7F03172C AFB40018 */ sw $s4, 0x18($sp) +/* 066260 7F031730 46049002 */ mul.s $f0, $f18, $f4 +/* 066264 7F031734 AFB70014 */ sw $s7, 0x14($sp) +/* 066268 7F031738 02402025 */ move $a0, $s2 +/* 06626C 7F03173C 26050010 */ addiu $a1, $s0, 0x10 +/* 066270 7F031740 02E03025 */ move $a2, $s7 +/* 066274 7F031744 02603825 */ move $a3, $s3 +/* 066278 7F031748 E7A00010 */ swc1 $f0, 0x10($sp) +/* 06627C 7F03174C 0FC0C4C3 */ jal sub_GAME_7F03130C +/* 066280 7F031750 E7A000E8 */ swc1 $f0, 0xe8($sp) +/* 066284 7F031754 10400003 */ beqz $v0, .L7F031764 +/* 066288 7F031758 C7A000E8 */ lwc1 $f0, 0xe8($sp) +/* 06628C 7F03175C 10000174 */ b .L7F031D30 +/* 066290 7F031760 A2150000 */ sb $s5, ($s0) +.L7F031764: +/* 066294 7F031764 240B0010 */ li $t3, 16 +/* 066298 7F031768 AFAB0024 */ sw $t3, 0x24($sp) +/* 06629C 7F03176C 02402025 */ move $a0, $s2 +/* 0662A0 7F031770 2605001C */ addiu $a1, $s0, 0x1c +/* 0662A4 7F031774 00003025 */ move $a2, $zero +/* 0662A8 7F031778 02603825 */ move $a3, $s3 +/* 0662AC 7F03177C E7A00010 */ swc1 $f0, 0x10($sp) +/* 0662B0 7F031780 AFB70014 */ sw $s7, 0x14($sp) +/* 0662B4 7F031784 AFB40018 */ sw $s4, 0x18($sp) +/* 0662B8 7F031788 AFB0001C */ sw $s0, 0x1c($sp) +/* 0662BC 7F03178C E7BC0020 */ swc1 $f28, 0x20($sp) +/* 0662C0 7F031790 0FC0C4C3 */ jal sub_GAME_7F03130C +/* 0662C4 7F031794 AFA00028 */ sw $zero, 0x28($sp) +/* 0662C8 7F031798 50400004 */ beql $v0, $zero, .L7F0317AC +/* 0662CC 7F03179C 820C0001 */ lb $t4, 1($s0) +/* 0662D0 7F0317A0 10000163 */ b .L7F031D30 +/* 0662D4 7F0317A4 A2150000 */ sb $s5, ($s0) +/* 0662D8 7F0317A8 820C0001 */ lb $t4, 1($s0) +.L7F0317AC: +/* 0662DC 7F0317AC 240F0002 */ li $t7, 2 +/* 0662E0 7F0317B0 258D0001 */ addiu $t5, $t4, 1 +/* 0662E4 7F0317B4 A20D0001 */ sb $t5, 1($s0) +/* 0662E8 7F0317B8 820E0001 */ lb $t6, 1($s0) +/* 0662EC 7F0317BC 29C10006 */ slti $at, $t6, 6 +/* 0662F0 7F0317C0 5420015C */ bnezl $at, .L7F031D34 +/* 0662F4 7F0317C4 8FA800F0 */ lw $t0, 0xf0($sp) +/* 0662F8 7F0317C8 10000159 */ b .L7F031D30 +/* 0662FC 7F0317CC A20F0000 */ sb $t7, ($s0) +.L7F0317D0: +/* 066300 7F0317D0 1441003F */ bne $v0, $at, .L7F0318D0 +/* 066304 7F0317D4 3C018005 */ lui $at, %hi(D_8005204C) +/* 066308 7F0317D8 C428204C */ lwc1 $f8, %lo(D_8005204C)($at) +/* 06630C 7F0317DC C6460024 */ lwc1 $f6, 0x24($s2) +/* 066310 7F0317E0 3C018005 */ lui $at, %hi(D_80052050) +/* 066314 7F0317E4 C4322050 */ lwc1 $f18, %lo(D_80052050)($at) +/* 066318 7F0317E8 46083282 */ mul.s $f10, $f6, $f8 +/* 06631C 7F0317EC 24180010 */ li $t8, 16 +/* 066320 7F0317F0 AFB80024 */ sw $t8, 0x24($sp) +/* 066324 7F0317F4 AFA00028 */ sw $zero, 0x28($sp) +/* 066328 7F0317F8 E7BC0020 */ swc1 $f28, 0x20($sp) +/* 06632C 7F0317FC AFB0001C */ sw $s0, 0x1c($sp) +/* 066330 7F031800 AFA00018 */ sw $zero, 0x18($sp) +/* 066334 7F031804 46125002 */ mul.s $f0, $f10, $f18 +/* 066338 7F031808 AFA00014 */ sw $zero, 0x14($sp) +/* 06633C 7F03180C 02402025 */ move $a0, $s2 +/* 066340 7F031810 26050010 */ addiu $a1, $s0, 0x10 +/* 066344 7F031814 02E03025 */ move $a2, $s7 +/* 066348 7F031818 02603825 */ move $a3, $s3 +/* 06634C 7F03181C E7A00010 */ swc1 $f0, 0x10($sp) +/* 066350 7F031820 0FC0C4C3 */ jal sub_GAME_7F03130C +/* 066354 7F031824 E7A000E4 */ swc1 $f0, 0xe4($sp) +/* 066358 7F031828 10400003 */ beqz $v0, .L7F031838 +/* 06635C 7F03182C C7A000E4 */ lwc1 $f0, 0xe4($sp) +/* 066360 7F031830 1000013F */ b .L7F031D30 +/* 066364 7F031834 A2150000 */ sb $s5, ($s0) +.L7F031838: +/* 066368 7F031838 24190010 */ li $t9, 16 +/* 06636C 7F03183C AFB90024 */ sw $t9, 0x24($sp) +/* 066370 7F031840 02402025 */ move $a0, $s2 +/* 066374 7F031844 2605001C */ addiu $a1, $s0, 0x1c +/* 066378 7F031848 00003025 */ move $a2, $zero +/* 06637C 7F03184C 02603825 */ move $a3, $s3 +/* 066380 7F031850 E7A00010 */ swc1 $f0, 0x10($sp) +/* 066384 7F031854 AFA00014 */ sw $zero, 0x14($sp) +/* 066388 7F031858 AFA00018 */ sw $zero, 0x18($sp) +/* 06638C 7F03185C AFB0001C */ sw $s0, 0x1c($sp) +/* 066390 7F031860 E7BC0020 */ swc1 $f28, 0x20($sp) +/* 066394 7F031864 0FC0C4C3 */ jal sub_GAME_7F03130C +/* 066398 7F031868 AFA00028 */ sw $zero, 0x28($sp) +/* 06639C 7F03186C 50400004 */ beql $v0, $zero, .L7F031880 +/* 0663A0 7F031870 82080001 */ lb $t0, 1($s0) +/* 0663A4 7F031874 1000012E */ b .L7F031D30 +/* 0663A8 7F031878 A2150000 */ sb $s5, ($s0) +/* 0663AC 7F03187C 82080001 */ lb $t0, 1($s0) +.L7F031880: +/* 0663B0 7F031880 25090001 */ addiu $t1, $t0, 1 +/* 0663B4 7F031884 A2090001 */ sb $t1, 1($s0) +/* 0663B8 7F031888 820A0001 */ lb $t2, 1($s0) +/* 0663BC 7F03188C 29410006 */ slti $at, $t2, 6 +/* 0663C0 7F031890 54200128 */ bnezl $at, .L7F031D34 +/* 0663C4 7F031894 8FA800F0 */ lw $t0, 0xf0($sp) +/* 0663C8 7F031898 A2000002 */ sb $zero, 2($s0) +/* 0663CC 7F03189C 820B0002 */ lb $t3, 2($s0) +/* 0663D0 7F0318A0 A20B0003 */ sb $t3, 3($s0) +/* 0663D4 7F0318A4 C6800000 */ lwc1 $f0, ($s4) +/* 0663D8 7F0318A8 E6000004 */ swc1 $f0, 4($s0) +/* 0663DC 7F0318AC E600002C */ swc1 $f0, 0x2c($s0) +/* 0663E0 7F0318B0 C6800004 */ lwc1 $f0, 4($s4) +/* 0663E4 7F0318B4 E6000008 */ swc1 $f0, 8($s0) +/* 0663E8 7F0318B8 E6000030 */ swc1 $f0, 0x30($s0) +/* 0663EC 7F0318BC C6800008 */ lwc1 $f0, 8($s4) +/* 0663F0 7F0318C0 A2000000 */ sb $zero, ($s0) +/* 0663F4 7F0318C4 E600000C */ swc1 $f0, 0xc($s0) +/* 0663F8 7F0318C8 10000119 */ b .L7F031D30 +/* 0663FC 7F0318CC E6000034 */ swc1 $f0, 0x34($s0) +.L7F0318D0: +/* 066400 7F0318D0 16A2001D */ bne $s5, $v0, .L7F031948 +/* 066404 7F0318D4 24010005 */ li $at, 5 +/* 066408 7F0318D8 8E260014 */ lw $a2, 0x14($s1) +/* 06640C 7F0318DC 260C0010 */ addiu $t4, $s0, 0x10 +/* 066410 7F0318E0 260D001C */ addiu $t5, $s0, 0x1c +/* 066414 7F0318E4 AFAD0014 */ sw $t5, 0x14($sp) +/* 066418 7F0318E8 AFAC0010 */ sw $t4, 0x10($sp) +/* 06641C 7F0318EC C6400024 */ lwc1 $f0, 0x24($s2) +/* 066420 7F0318F0 AFB60020 */ sw $s6, 0x20($sp) +/* 066424 7F0318F4 02402025 */ move $a0, $s2 +/* 066428 7F0318F8 46000107 */ neg.s $f4, $f0 +/* 06642C 7F0318FC 26250008 */ addiu $a1, $s1, 8 +/* 066430 7F031900 E7A40018 */ swc1 $f4, 0x18($sp) +/* 066434 7F031904 26070004 */ addiu $a3, $s0, 4 +/* 066438 7F031908 0FC0C35C */ jal sub_GAME_7F030D70 +/* 06643C 7F03190C E7A0001C */ swc1 $f0, 0x1c($sp) +/* 066440 7F031910 1040000A */ beqz $v0, .L7F03193C +/* 066444 7F031914 240E0005 */ li $t6, 5 +/* 066448 7F031918 C6060004 */ lwc1 $f6, 4($s0) +/* 06644C 7F03191C C6080008 */ lwc1 $f8, 8($s0) +/* 066450 7F031920 C60A000C */ lwc1 $f10, 0xc($s0) +/* 066454 7F031924 A2170003 */ sb $s7, 3($s0) +/* 066458 7F031928 A2000000 */ sb $zero, ($s0) +/* 06645C 7F03192C E606002C */ swc1 $f6, 0x2c($s0) +/* 066460 7F031930 E6080030 */ swc1 $f8, 0x30($s0) +/* 066464 7F031934 100000FE */ b .L7F031D30 +/* 066468 7F031938 E60A0034 */ swc1 $f10, 0x34($s0) +.L7F03193C: +/* 06646C 7F03193C A20E0000 */ sb $t6, ($s0) +/* 066470 7F031940 100000FB */ b .L7F031D30 +/* 066474 7F031944 A2000001 */ sb $zero, 1($s0) +.L7F031948: +/* 066478 7F031948 144100F9 */ bne $v0, $at, .L7F031D30 +/* 06647C 7F03194C 3C018005 */ lui $at, %hi(D_80052054) +/* 066480 7F031950 C4242054 */ lwc1 $f4, %lo(D_80052054)($at) +/* 066484 7F031954 C6520024 */ lwc1 $f18, 0x24($s2) +/* 066488 7F031958 3C018005 */ lui $at, %hi(D_80052058) +/* 06648C 7F03195C C4282058 */ lwc1 $f8, %lo(D_80052058)($at) +/* 066490 7F031960 46049182 */ mul.s $f6, $f18, $f4 +/* 066494 7F031964 C604000C */ lwc1 $f4, 0xc($s0) +/* 066498 7F031968 C6320008 */ lwc1 $f18, 8($s1) +/* 06649C 7F03196C C60A0004 */ lwc1 $f10, 4($s0) +/* 0664A0 7F031970 46125301 */ sub.s $f12, $f10, $f18 +/* 0664A4 7F031974 46083602 */ mul.s $f24, $f6, $f8 +/* 0664A8 7F031978 C6260010 */ lwc1 $f6, 0x10($s1) +/* 0664AC 7F03197C 0FC16A8C */ jal atan2f +/* 0664B0 7F031980 46062381 */ sub.s $f14, $f4, $f6 +/* 0664B4 7F031984 C6160010 */ lwc1 $f22, 0x10($s0) +/* 0664B8 7F031988 C6320008 */ lwc1 $f18, 8($s1) +/* 0664BC 7F03198C C6100018 */ lwc1 $f16, 0x18($s0) +/* 0664C0 7F031990 C62A0010 */ lwc1 $f10, 0x10($s1) +/* 0664C4 7F031994 4612B301 */ sub.s $f12, $f22, $f18 +/* 0664C8 7F031998 46000506 */ mov.s $f20, $f0 +/* 0664CC 7F03199C 0FC16A8C */ jal atan2f +/* 0664D0 7F0319A0 460A8381 */ sub.s $f14, $f16, $f10 +/* 0664D4 7F0319A4 4600A581 */ sub.s $f22, $f20, $f0 +/* 0664D8 7F0319A8 C612001C */ lwc1 $f18, 0x1c($s0) +/* 0664DC 7F0319AC C6300008 */ lwc1 $f16, 8($s1) +/* 0664E0 7F0319B0 C60A0024 */ lwc1 $f10, 0x24($s0) +/* 0664E4 7F0319B4 C6280010 */ lwc1 $f8, 0x10($s1) +/* 0664E8 7F0319B8 46109301 */ sub.s $f12, $f18, $f16 +/* 0664EC 7F0319BC E7B600D4 */ swc1 $f22, 0xd4($sp) +/* 0664F0 7F0319C0 0FC16A8C */ jal atan2f +/* 0664F4 7F0319C4 46085381 */ sub.s $f14, $f10, $f8 +/* 0664F8 7F0319C8 C7B000D4 */ lwc1 $f16, 0xd4($sp) +/* 0664FC 7F0319CC 4600A301 */ sub.s $f12, $f20, $f0 +/* 066500 7F0319D0 02603825 */ move $a3, $s3 +/* 066504 7F0319D4 02402025 */ move $a0, $s2 +/* 066508 7F0319D8 461C803C */ c.lt.s $f16, $f28 +/* 06650C 7F0319DC 46006086 */ mov.s $f2, $f12 +/* 066510 7F0319E0 2605001C */ addiu $a1, $s0, 0x1c +/* 066514 7F0319E4 00003025 */ move $a2, $zero +/* 066518 7F0319E8 45000002 */ bc1f .L7F0319F4 +/* 06651C 7F0319EC 3C018005 */ lui $at, %hi(D_80052060) +/* 066520 7F0319F0 461A8400 */ add.s $f16, $f16, $f26 +.L7F0319F4: +/* 066524 7F0319F4 4610F03E */ c.le.s $f30, $f16 +/* 066528 7F0319F8 00000000 */ nop +/* 06652C 7F0319FC 45020003 */ bc1fl .L7F031A0C +/* 066530 7F031A00 461C803C */ c.lt.s $f16, $f28 +/* 066534 7F031A04 461A8401 */ sub.s $f16, $f16, $f26 +/* 066538 7F031A08 461C803C */ c.lt.s $f16, $f28 +.L7F031A0C: +/* 06653C 7F031A0C 00000000 */ nop +/* 066540 7F031A10 45020003 */ bc1fl .L7F031A20 +/* 066544 7F031A14 461C603C */ c.lt.s $f12, $f28 +/* 066548 7F031A18 46008407 */ neg.s $f16, $f16 +/* 06654C 7F031A1C 461C603C */ c.lt.s $f12, $f28 +.L7F031A20: +/* 066550 7F031A20 00000000 */ nop +/* 066554 7F031A24 45020003 */ bc1fl .L7F031A34 +/* 066558 7F031A28 4602F03E */ c.le.s $f30, $f2 +/* 06655C 7F031A2C 461A6080 */ add.s $f2, $f12, $f26 +/* 066560 7F031A30 4602F03E */ c.le.s $f30, $f2 +.L7F031A34: +/* 066564 7F031A34 00000000 */ nop +/* 066568 7F031A38 45020003 */ bc1fl .L7F031A48 +/* 06656C 7F031A3C 461C103C */ c.lt.s $f2, $f28 +/* 066570 7F031A40 461A1081 */ sub.s $f2, $f2, $f26 +/* 066574 7F031A44 461C103C */ c.lt.s $f2, $f28 +.L7F031A48: +/* 066578 7F031A48 00000000 */ nop +/* 06657C 7F031A4C 45020003 */ bc1fl .L7F031A5C +/* 066580 7F031A50 4602803C */ c.lt.s $f16, $f2 +/* 066584 7F031A54 46001087 */ neg.s $f2, $f2 +/* 066588 7F031A58 4602803C */ c.lt.s $f16, $f2 +.L7F031A5C: +/* 06658C 7F031A5C 00000000 */ nop +/* 066590 7F031A60 45000057 */ bc1f .L7F031BC0 +/* 066594 7F031A64 00000000 */ nop +/* 066598 7F031A68 3C018005 */ lui $at, %hi(D_80052060) +/* 06659C 7F031A6C C424205C */ lwc1 $f4, %lo(D_8005205C)($at) +/* 0665A0 7F031A70 02402025 */ move $a0, $s2 +/* 0665A4 7F031A74 26050010 */ addiu $a1, $s0, 0x10 +/* 0665A8 7F031A78 4604C582 */ mul.s $f22, $f24, $f4 +/* 0665AC 7F031A7C 02E03025 */ move $a2, $s7 +/* 0665B0 7F031A80 E7B80010 */ swc1 $f24, 0x10($sp) +/* 0665B4 7F031A84 AFA00014 */ sw $zero, 0x14($sp) +/* 0665B8 7F031A88 AFA00018 */ sw $zero, 0x18($sp) +/* 0665BC 7F031A8C AFB0001C */ sw $s0, 0x1c($sp) +/* 0665C0 7F031A90 AFB60024 */ sw $s6, 0x24($sp) +/* 0665C4 7F031A94 E7B60020 */ swc1 $f22, 0x20($sp) +/* 0665C8 7F031A98 0FC0C4C3 */ jal sub_GAME_7F03130C +/* 0665CC 7F031A9C AFB70028 */ sw $s7, 0x28($sp) +/* 0665D0 7F031AA0 50400004 */ beql $v0, $zero, .L7F031AB4 +/* 0665D4 7F031AA4 C6060010 */ lwc1 $f6, 0x10($s0) +/* 0665D8 7F031AA8 100000A5 */ b .L7F031D40 +/* 0665DC 7F031AAC A2000000 */ sb $zero, ($s0) +/* 0665E0 7F031AB0 C6060010 */ lwc1 $f6, 0x10($s0) +.L7F031AB4: +/* 0665E4 7F031AB4 C6280008 */ lwc1 $f8, 8($s1) +/* 0665E8 7F031AB8 C60A0018 */ lwc1 $f10, 0x18($s0) +/* 0665EC 7F031ABC C6320010 */ lwc1 $f18, 0x10($s1) +/* 0665F0 7F031AC0 46083301 */ sub.s $f12, $f6, $f8 +/* 0665F4 7F031AC4 0FC16A8C */ jal atan2f +/* 0665F8 7F031AC8 46125381 */ sub.s $f14, $f10, $f18 +/* 0665FC 7F031ACC 4600A481 */ sub.s $f18, $f20, $f0 +/* 066600 7F031AD0 C7B000F4 */ lwc1 $f16, 0xf4($sp) +/* 066604 7F031AD4 C62A0008 */ lwc1 $f10, 8($s1) +/* 066608 7F031AD8 C7A800FC */ lwc1 $f8, 0xfc($sp) +/* 06660C 7F031ADC C6260010 */ lwc1 $f6, 0x10($s1) +/* 066610 7F031AE0 460A8301 */ sub.s $f12, $f16, $f10 +/* 066614 7F031AE4 E7B200C4 */ swc1 $f18, 0xc4($sp) +/* 066618 7F031AE8 0FC16A8C */ jal atan2f +/* 06661C 7F031AEC 46064381 */ sub.s $f14, $f8, $f6 +/* 066620 7F031AF0 C7B000C4 */ lwc1 $f16, 0xc4($sp) +/* 066624 7F031AF4 4600A301 */ sub.s $f12, $f20, $f0 +/* 066628 7F031AF8 02402025 */ move $a0, $s2 +/* 06662C 7F031AFC 02602825 */ move $a1, $s3 +/* 066630 7F031B00 461C803C */ c.lt.s $f16, $f28 +/* 066634 7F031B04 46006086 */ mov.s $f2, $f12 +/* 066638 7F031B08 00003025 */ move $a2, $zero +/* 06663C 7F031B0C 02603825 */ move $a3, $s3 +/* 066640 7F031B10 45020003 */ bc1fl .L7F031B20 +/* 066644 7F031B14 4610F03E */ c.le.s $f30, $f16 +/* 066648 7F031B18 461A8400 */ add.s $f16, $f16, $f26 +/* 06664C 7F031B1C 4610F03E */ c.le.s $f30, $f16 +.L7F031B20: +/* 066650 7F031B20 00000000 */ nop +/* 066654 7F031B24 45020003 */ bc1fl .L7F031B34 +/* 066658 7F031B28 461C803C */ c.lt.s $f16, $f28 +/* 06665C 7F031B2C 461A8401 */ sub.s $f16, $f16, $f26 +/* 066660 7F031B30 461C803C */ c.lt.s $f16, $f28 +.L7F031B34: +/* 066664 7F031B34 00000000 */ nop +/* 066668 7F031B38 45020003 */ bc1fl .L7F031B48 +/* 06666C 7F031B3C 461C603C */ c.lt.s $f12, $f28 +/* 066670 7F031B40 46008407 */ neg.s $f16, $f16 +/* 066674 7F031B44 461C603C */ c.lt.s $f12, $f28 +.L7F031B48: +/* 066678 7F031B48 00000000 */ nop +/* 06667C 7F031B4C 45020003 */ bc1fl .L7F031B5C +/* 066680 7F031B50 4602F03E */ c.le.s $f30, $f2 +/* 066684 7F031B54 461A6080 */ add.s $f2, $f12, $f26 +/* 066688 7F031B58 4602F03E */ c.le.s $f30, $f2 +.L7F031B5C: +/* 06668C 7F031B5C 00000000 */ nop +/* 066690 7F031B60 45020003 */ bc1fl .L7F031B70 +/* 066694 7F031B64 461C103C */ c.lt.s $f2, $f28 +/* 066698 7F031B68 461A1081 */ sub.s $f2, $f2, $f26 +/* 06669C 7F031B6C 461C103C */ c.lt.s $f2, $f28 +.L7F031B70: +/* 0666A0 7F031B70 00000000 */ nop +/* 0666A4 7F031B74 45020003 */ bc1fl .L7F031B84 +/* 0666A8 7F031B78 4610103C */ c.lt.s $f2, $f16 +/* 0666AC 7F031B7C 46001087 */ neg.s $f2, $f2 +/* 0666B0 7F031B80 4610103C */ c.lt.s $f2, $f16 +.L7F031B84: +/* 0666B4 7F031B84 00000000 */ nop +/* 0666B8 7F031B88 45020061 */ bc1fl .L7F031D10 +/* 0666BC 7F031B8C 820F0001 */ lb $t7, 1($s0) +/* 0666C0 7F031B90 E7B80010 */ swc1 $f24, 0x10($sp) +/* 0666C4 7F031B94 AFA00014 */ sw $zero, 0x14($sp) +/* 0666C8 7F031B98 AFA00018 */ sw $zero, 0x18($sp) +/* 0666CC 7F031B9C AFB0001C */ sw $s0, 0x1c($sp) +/* 0666D0 7F031BA0 E7B60020 */ swc1 $f22, 0x20($sp) +/* 0666D4 7F031BA4 AFB60024 */ sw $s6, 0x24($sp) +/* 0666D8 7F031BA8 0FC0C4C3 */ jal sub_GAME_7F03130C +/* 0666DC 7F031BAC AFB70028 */ sw $s7, 0x28($sp) +/* 0666E0 7F031BB0 50400057 */ beql $v0, $zero, .L7F031D10 +/* 0666E4 7F031BB4 820F0001 */ lb $t7, 1($s0) +/* 0666E8 7F031BB8 10000061 */ b .L7F031D40 +/* 0666EC 7F031BBC A2000000 */ sb $zero, ($s0) +.L7F031BC0: +/* 0666F0 7F031BC0 C4322060 */ lwc1 $f18, %lo(D_80052060)($at) +/* 0666F4 7F031BC4 02603825 */ move $a3, $s3 +/* 0666F8 7F031BC8 E7B80010 */ swc1 $f24, 0x10($sp) +/* 0666FC 7F031BCC 4612C582 */ mul.s $f22, $f24, $f18 +/* 066700 7F031BD0 AFA00014 */ sw $zero, 0x14($sp) +/* 066704 7F031BD4 AFA00018 */ sw $zero, 0x18($sp) +/* 066708 7F031BD8 AFB0001C */ sw $s0, 0x1c($sp) +/* 06670C 7F031BDC AFB60024 */ sw $s6, 0x24($sp) +/* 066710 7F031BE0 AFB70028 */ sw $s7, 0x28($sp) +/* 066714 7F031BE4 0FC0C4C3 */ jal sub_GAME_7F03130C +/* 066718 7F031BE8 E7B60020 */ swc1 $f22, 0x20($sp) +/* 06671C 7F031BEC 50400004 */ beql $v0, $zero, .L7F031C00 +/* 066720 7F031BF0 C604001C */ lwc1 $f4, 0x1c($s0) +/* 066724 7F031BF4 10000052 */ b .L7F031D40 +/* 066728 7F031BF8 A2000000 */ sb $zero, ($s0) +/* 06672C 7F031BFC C604001C */ lwc1 $f4, 0x1c($s0) +.L7F031C00: +/* 066730 7F031C00 C6260008 */ lwc1 $f6, 8($s1) +/* 066734 7F031C04 C6080024 */ lwc1 $f8, 0x24($s0) +/* 066738 7F031C08 C62A0010 */ lwc1 $f10, 0x10($s1) +/* 06673C 7F031C0C 46062301 */ sub.s $f12, $f4, $f6 +/* 066740 7F031C10 0FC16A8C */ jal atan2f +/* 066744 7F031C14 460A4381 */ sub.s $f14, $f8, $f10 +/* 066748 7F031C18 4600A481 */ sub.s $f18, $f20, $f0 +/* 06674C 7F031C1C C7B000F4 */ lwc1 $f16, 0xf4($sp) +/* 066750 7F031C20 C62A0008 */ lwc1 $f10, 8($s1) +/* 066754 7F031C24 C7A800FC */ lwc1 $f8, 0xfc($sp) +/* 066758 7F031C28 C6260010 */ lwc1 $f6, 0x10($s1) +/* 06675C 7F031C2C 460A8301 */ sub.s $f12, $f16, $f10 +/* 066760 7F031C30 E7B200B4 */ swc1 $f18, 0xb4($sp) +/* 066764 7F031C34 0FC16A8C */ jal atan2f +/* 066768 7F031C38 46064381 */ sub.s $f14, $f8, $f6 +/* 06676C 7F031C3C C7B000B4 */ lwc1 $f16, 0xb4($sp) +/* 066770 7F031C40 4600A301 */ sub.s $f12, $f20, $f0 +/* 066774 7F031C44 02402025 */ move $a0, $s2 +/* 066778 7F031C48 02602825 */ move $a1, $s3 +/* 06677C 7F031C4C 461C803C */ c.lt.s $f16, $f28 +/* 066780 7F031C50 46006086 */ mov.s $f2, $f12 +/* 066784 7F031C54 02E03025 */ move $a2, $s7 +/* 066788 7F031C58 02603825 */ move $a3, $s3 +/* 06678C 7F031C5C 45020003 */ bc1fl .L7F031C6C +/* 066790 7F031C60 4610F03E */ c.le.s $f30, $f16 +/* 066794 7F031C64 461A8400 */ add.s $f16, $f16, $f26 +/* 066798 7F031C68 4610F03E */ c.le.s $f30, $f16 +.L7F031C6C: +/* 06679C 7F031C6C 00000000 */ nop +/* 0667A0 7F031C70 45020003 */ bc1fl .L7F031C80 +/* 0667A4 7F031C74 461C803C */ c.lt.s $f16, $f28 +/* 0667A8 7F031C78 461A8401 */ sub.s $f16, $f16, $f26 +/* 0667AC 7F031C7C 461C803C */ c.lt.s $f16, $f28 +.L7F031C80: +/* 0667B0 7F031C80 00000000 */ nop +/* 0667B4 7F031C84 45020003 */ bc1fl .L7F031C94 +/* 0667B8 7F031C88 461C603C */ c.lt.s $f12, $f28 +/* 0667BC 7F031C8C 46008407 */ neg.s $f16, $f16 +/* 0667C0 7F031C90 461C603C */ c.lt.s $f12, $f28 +.L7F031C94: +/* 0667C4 7F031C94 00000000 */ nop +/* 0667C8 7F031C98 45020003 */ bc1fl .L7F031CA8 +/* 0667CC 7F031C9C 4602F03E */ c.le.s $f30, $f2 +/* 0667D0 7F031CA0 461A6080 */ add.s $f2, $f12, $f26 +/* 0667D4 7F031CA4 4602F03E */ c.le.s $f30, $f2 +.L7F031CA8: +/* 0667D8 7F031CA8 00000000 */ nop +/* 0667DC 7F031CAC 45020003 */ bc1fl .L7F031CBC +/* 0667E0 7F031CB0 461C103C */ c.lt.s $f2, $f28 +/* 0667E4 7F031CB4 461A1081 */ sub.s $f2, $f2, $f26 +/* 0667E8 7F031CB8 461C103C */ c.lt.s $f2, $f28 +.L7F031CBC: +/* 0667EC 7F031CBC 00000000 */ nop +/* 0667F0 7F031CC0 45020003 */ bc1fl .L7F031CD0 +/* 0667F4 7F031CC4 4610103C */ c.lt.s $f2, $f16 +/* 0667F8 7F031CC8 46001087 */ neg.s $f2, $f2 +/* 0667FC 7F031CCC 4610103C */ c.lt.s $f2, $f16 +.L7F031CD0: +/* 066800 7F031CD0 00000000 */ nop +/* 066804 7F031CD4 4502000E */ bc1fl .L7F031D10 +/* 066808 7F031CD8 820F0001 */ lb $t7, 1($s0) +/* 06680C 7F031CDC E7B80010 */ swc1 $f24, 0x10($sp) +/* 066810 7F031CE0 AFA00014 */ sw $zero, 0x14($sp) +/* 066814 7F031CE4 AFA00018 */ sw $zero, 0x18($sp) +/* 066818 7F031CE8 AFB0001C */ sw $s0, 0x1c($sp) +/* 06681C 7F031CEC E7B60020 */ swc1 $f22, 0x20($sp) +/* 066820 7F031CF0 AFB60024 */ sw $s6, 0x24($sp) +/* 066824 7F031CF4 0FC0C4C3 */ jal sub_GAME_7F03130C +/* 066828 7F031CF8 AFB70028 */ sw $s7, 0x28($sp) +/* 06682C 7F031CFC 50400004 */ beql $v0, $zero, .L7F031D10 +/* 066830 7F031D00 820F0001 */ lb $t7, 1($s0) +/* 066834 7F031D04 1000000E */ b .L7F031D40 +/* 066838 7F031D08 A2000000 */ sb $zero, ($s0) +/* 06683C 7F031D0C 820F0001 */ lb $t7, 1($s0) +.L7F031D10: +/* 066840 7F031D10 25F80001 */ addiu $t8, $t7, 1 +/* 066844 7F031D14 A2180001 */ sb $t8, 1($s0) +/* 066848 7F031D18 82190001 */ lb $t9, 1($s0) +/* 06684C 7F031D1C 2B210006 */ slti $at, $t9, 6 +/* 066850 7F031D20 54200004 */ bnezl $at, .L7F031D34 +/* 066854 7F031D24 8FA800F0 */ lw $t0, 0xf0($sp) +/* 066858 7F031D28 A2000003 */ sb $zero, 3($s0) +/* 06685C 7F031D2C A2000000 */ sb $zero, ($s0) +.L7F031D30: +/* 066860 7F031D30 8FA800F0 */ lw $t0, 0xf0($sp) +.L7F031D34: +/* 066864 7F031D34 25090001 */ addiu $t1, $t0, 1 +/* 066868 7F031D38 1537FE3D */ bne $t1, $s7, .L7F031630 +/* 06686C 7F031D3C AFA900F0 */ sw $t1, 0xf0($sp) +.L7F031D40: +/* 066870 7F031D40 820A0003 */ lb $t2, 3($s0) +/* 066874 7F031D44 240D5000 */ li $t5, 20480 +/* 066878 7F031D48 55400008 */ bnezl $t2, .L7F031D6C +/* 06687C 7F031D4C 8E0B0028 */ lw $t3, 0x28($s0) +/* 066880 7F031D50 C60A0004 */ lwc1 $f10, 4($s0) +/* 066884 7F031D54 C6120008 */ lwc1 $f18, 8($s0) +/* 066888 7F031D58 C604000C */ lwc1 $f4, 0xc($s0) +/* 06688C 7F031D5C E60A002C */ swc1 $f10, 0x2c($s0) +/* 066890 7F031D60 E6120030 */ swc1 $f18, 0x30($s0) +/* 066894 7F031D64 E6040034 */ swc1 $f4, 0x34($s0) +/* 066898 7F031D68 8E0B0028 */ lw $t3, 0x28($s0) +.L7F031D6C: +/* 06689C 7F031D6C 2401000A */ li $at, 10 +/* 0668A0 7F031D70 0161001A */ div $zero, $t3, $at +/* 0668A4 7F031D74 00006010 */ mfhi $t4 +/* 0668A8 7F031D78 55800072 */ bnezl $t4, .L7F031F44 +/* 0668AC 7F031D7C 824E0007 */ lb $t6, 7($s2) +/* 0668B0 7F031D80 C6060034 */ lwc1 $f6, 0x34($s0) +/* 0668B4 7F031D84 8E240014 */ lw $a0, 0x14($s1) +/* 0668B8 7F031D88 8E250008 */ lw $a1, 8($s1) +/* 0668BC 7F031D8C 8E260010 */ lw $a2, 0x10($s1) +/* 0668C0 7F031D90 8E07002C */ lw $a3, 0x2c($s0) +/* 0668C4 7F031D94 AFAD0014 */ sw $t5, 0x14($sp) +/* 0668C8 7F031D98 0FC2C504 */ jal sub_GAME_7F0B1410 +/* 0668CC 7F031D9C E7A60010 */ swc1 $f6, 0x10($sp) +/* 0668D0 7F031DA0 10400042 */ beqz $v0, .L7F031EAC +/* 0668D4 7F031DA4 00409825 */ move $s3, $v0 +/* 0668D8 7F031DA8 8C430004 */ lw $v1, 4($v0) +/* 0668DC 7F031DAC 8C6E000C */ lw $t6, 0xc($v1) +/* 0668E0 7F031DB0 000E7880 */ sll $t7, $t6, 2 +/* 0668E4 7F031DB4 05E2003D */ bltzl $t7, .L7F031EAC +/* 0668E8 7F031DB8 00009825 */ move $s3, $zero +/* 0668EC 7F031DBC C4480008 */ lwc1 $f8, 8($v0) +/* 0668F0 7F031DC0 C62A0008 */ lwc1 $f10, 8($s1) +/* 0668F4 7F031DC4 C452000C */ lwc1 $f18, 0xc($v0) +/* 0668F8 7F031DC8 C624000C */ lwc1 $f4, 0xc($s1) +/* 0668FC 7F031DCC 460A4001 */ sub.s $f0, $f8, $f10 +/* 066900 7F031DD0 C6280010 */ lwc1 $f8, 0x10($s1) +/* 066904 7F031DD4 C4460010 */ lwc1 $f6, 0x10($v0) +/* 066908 7F031DD8 46049081 */ sub.s $f2, $f18, $f4 +/* 06690C 7F031DDC 46000282 */ mul.s $f10, $f0, $f0 +/* 066910 7F031DE0 3C018005 */ lui $at, %hi(D_80052064) +/* 066914 7F031DE4 46083301 */ sub.s $f12, $f6, $f8 +/* 066918 7F031DE8 46021482 */ mul.s $f18, $f2, $f2 +/* 06691C 7F031DEC 02402025 */ move $a0, $s2 +/* 066920 7F031DF0 460C6182 */ mul.s $f6, $f12, $f12 +/* 066924 7F031DF4 46125100 */ add.s $f4, $f10, $f18 +/* 066928 7F031DF8 C42A2064 */ lwc1 $f10, %lo(D_80052064)($at) +/* 06692C 7F031DFC 46062200 */ add.s $f8, $f4, $f6 +/* 066930 7F031E00 460A403C */ c.lt.s $f8, $f10 +/* 066934 7F031E04 00000000 */ nop +/* 066938 7F031E08 45000025 */ bc1f .L7F031EA0 +/* 06693C 7F031E0C 00000000 */ nop +/* 066940 7F031E10 0FC0A07D */ jal sub_GAME_7F0281F4 +/* 066944 7F031E14 00000000 */ nop +/* 066948 7F031E18 02202025 */ move $a0, $s1 +/* 06694C 7F031E1C 0FC156DE */ jal sub_GAME_7F055B78 +/* 066950 7F031E20 8E650004 */ lw $a1, 4($s3) +/* 066954 7F031E24 8E640004 */ lw $a0, 4($s3) +/* 066958 7F031E28 0FC15262 */ jal set_door_state +/* 06695C 7F031E2C 02E02825 */ move $a1, $s7 +/* 066960 7F031E30 96580012 */ lhu $t8, 0x12($s2) +/* 066964 7F031E34 33190010 */ andi $t9, $t8, 0x10 +/* 066968 7F031E38 1720001C */ bnez $t9, .L7F031EAC +/* 06696C 7F031E3C 00000000 */ nop +/* 066970 7F031E40 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 066974 7F031E44 8E44001C */ lw $a0, 0x1c($s2) +/* 066978 7F031E48 3C088007 */ lui $t0, %hi(ptr_animation_table) +/* 06697C 7F031E4C 8D089538 */ lw $t0, %lo(ptr_animation_table)($t0) +/* 066980 7F031E50 3C090001 */ lui $t1, %hi(0x00008194) # $t1, 1 +/* 066984 7F031E54 25298194 */ addiu $t1, %lo(0x00008194) # addiu $t1, $t1, -0x7e6c +/* 066988 7F031E58 01095021 */ addu $t2, $t0, $t1 +/* 06698C 7F031E5C 104A0013 */ beq $v0, $t2, .L7F031EAC +/* 066990 7F031E60 00000000 */ nop +/* 066994 7F031E64 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 066998 7F031E68 8E44001C */ lw $a0, 0x1c($s2) +/* 06699C 7F031E6C 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 0669A0 7F031E70 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 0669A4 7F031E74 3C0C0000 */ lui $t4, %hi(0x0000001C) # $t4, 0 +/* 0669A8 7F031E78 258C001C */ addiu $t4, %lo(0x0000001C) # addiu $t4, $t4, 0x1c +/* 0669AC 7F031E7C 016C6821 */ addu $t5, $t3, $t4 +/* 0669B0 7F031E80 104D000A */ beq $v0, $t5, .L7F031EAC +/* 0669B4 7F031E84 02402025 */ move $a0, $s2 +/* 0669B8 7F031E88 0FC08E52 */ jal sub_GAME_7F023948 +/* 0669BC 7F031E8C 3C054180 */ lui $a1, 0x4180 +/* 0669C0 7F031E90 3C0E8005 */ lui $t6, %hi(global_timer) +/* 0669C4 7F031E94 8DCE837C */ lw $t6, %lo(global_timer)($t6) +/* 0669C8 7F031E98 10000004 */ b .L7F031EAC +/* 0669CC 7F031E9C AE4E00CC */ sw $t6, 0xcc($s2) +.L7F031EA0: +/* 0669D0 7F031EA0 10000002 */ b .L7F031EAC +/* 0669D4 7F031EA4 00009825 */ move $s3, $zero +/* 0669D8 7F031EA8 00009825 */ move $s3, $zero +.L7F031EAC: +/* 0669DC 7F031EAC 12600005 */ beqz $s3, .L7F031EC4 +/* 0669E0 7F031EB0 3C110001 */ lui $s1, %hi(0x00008194) # $s1, 1 +/* 0669E4 7F031EB4 964F0012 */ lhu $t7, 0x12($s2) +/* 0669E8 7F031EB8 31F80010 */ andi $t8, $t7, 0x10 +/* 0669EC 7F031EBC 53000021 */ beql $t8, $zero, .L7F031F44 +/* 0669F0 7F031EC0 824E0007 */ lb $t6, 7($s2) +.L7F031EC4: +/* 0669F4 7F031EC4 8E44001C */ lw $a0, 0x1c($s2) +/* 0669F8 7F031EC8 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 0669FC 7F031ECC 26318194 */ addiu $s1, %lo(0x00008194) # addiu $s1, $s1, -0x7e6c +/* 066A00 7F031ED0 3C198007 */ lui $t9, %hi(ptr_animation_table) +/* 066A04 7F031ED4 8F399538 */ lw $t9, %lo(ptr_animation_table)($t9) +/* 066A08 7F031ED8 02394021 */ addu $t0, $s1, $t9 +/* 066A0C 7F031EDC 10480009 */ beq $v0, $t0, .L7F031F04 +/* 066A10 7F031EE0 3C110000 */ lui $s1, %hi(0x0000001C) # $s1, 0 +/* 066A14 7F031EE4 8E44001C */ lw $a0, 0x1c($s2) +/* 066A18 7F031EE8 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 066A1C 7F031EEC 2631001C */ addiu $s1, %lo(0x0000001C) # addiu $s1, $s1, 0x1c +/* 066A20 7F031EF0 3C098007 */ lui $t1, %hi(ptr_animation_table) +/* 066A24 7F031EF4 8D299538 */ lw $t1, %lo(ptr_animation_table)($t1) +/* 066A28 7F031EF8 02295021 */ addu $t2, $s1, $t1 +/* 066A2C 7F031EFC 144A000B */ bne $v0, $t2, .L7F031F2C +/* 066A30 7F031F00 00000000 */ nop +.L7F031F04: +/* 066A34 7F031F04 824B0007 */ lb $t3, 7($s2) +/* 066A38 7F031F08 2401000E */ li $at, 14 +/* 066A3C 7F031F0C 15610005 */ bne $t3, $at, .L7F031F24 +/* 066A40 7F031F10 00000000 */ nop +/* 066A44 7F031F14 0FC0A3EB */ jal sub_GAME_7F028FAC +/* 066A48 7F031F18 02402025 */ move $a0, $s2 +/* 066A4C 7F031F1C 10000003 */ b .L7F031F2C +/* 066A50 7F031F20 00000000 */ nop +.L7F031F24: +/* 066A54 7F031F24 0FC0A368 */ jal play_hit_soundeffect_and_proper_volume +/* 066A58 7F031F28 02402025 */ move $a0, $s2 +.L7F031F2C: +/* 066A5C 7F031F2C 56600005 */ bnezl $s3, .L7F031F44 +/* 066A60 7F031F30 824E0007 */ lb $t6, 7($s2) +/* 066A64 7F031F34 964C0012 */ lhu $t4, 0x12($s2) +/* 066A68 7F031F38 318DFFEF */ andi $t5, $t4, 0xffef +/* 066A6C 7F031F3C A64D0012 */ sh $t5, 0x12($s2) +/* 066A70 7F031F40 824E0007 */ lb $t6, 7($s2) +.L7F031F44: +/* 066A74 7F031F44 2401000E */ li $at, 14 +/* 066A78 7F031F48 02402025 */ move $a0, $s2 +/* 066A7C 7F031F4C 15C10008 */ bne $t6, $at, .L7F031F70 +/* 066A80 7F031F50 2605002C */ addiu $a1, $s0, 0x2c +/* 066A84 7F031F54 02402025 */ move $a0, $s2 +/* 066A88 7F031F58 2605002C */ addiu $a1, $s0, 0x2c +/* 066A8C 7F031F5C 00003025 */ move $a2, $zero +/* 066A90 7F031F60 0FC0BDA4 */ jal sub_GAME_7F02F690 +/* 066A94 7F031F64 2647007C */ addiu $a3, $s2, 0x7c +/* 066A98 7F031F68 10000037 */ b .L7F032048 +/* 066A9C 7F031F6C 8FBF0084 */ lw $ra, 0x84($sp) +.L7F031F70: +/* 066AA0 7F031F70 92460059 */ lbu $a2, 0x59($s2) +/* 066AA4 7F031F74 0FC0BDA4 */ jal sub_GAME_7F02F690 +/* 066AA8 7F031F78 264700A0 */ addiu $a3, $s2, 0xa0 +/* 066AAC 7F031F7C 92430059 */ lbu $v1, 0x59($s2) +/* 066AB0 7F031F80 24010002 */ li $at, 2 +/* 066AB4 7F031F84 1461001D */ bne $v1, $at, .L7F031FFC +/* 066AB8 7F031F88 00000000 */ nop +/* 066ABC 7F031F8C C65200A0 */ lwc1 $f18, 0xa0($s2) +/* 066AC0 7F031F90 3C053E80 */ lui $a1, 0x3e80 +/* 066AC4 7F031F94 4612E032 */ c.eq.s $f28, $f18 +/* 066AC8 7F031F98 00000000 */ nop +/* 066ACC 7F031F9C 45030007 */ bc1tl .L7F031FBC +/* 066AD0 7F031FA0 8E4F0014 */ lw $t7, 0x14($s2) +/* 066AD4 7F031FA4 4406E000 */ mfc1 $a2, $f28 +/* 066AD8 7F031FA8 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 066ADC 7F031FAC 8E44001C */ lw $a0, 0x1c($s2) +/* 066AE0 7F031FB0 10000025 */ b .L7F032048 +/* 066AE4 7F031FB4 8FBF0084 */ lw $ra, 0x84($sp) +/* 066AE8 7F031FB8 8E4F0014 */ lw $t7, 0x14($s2) +.L7F031FBC: +/* 066AEC 7F031FBC 3C053F00 */ lui $a1, 0x3f00 +/* 066AF0 7F031FC0 000FC300 */ sll $t8, $t7, 0xc +/* 066AF4 7F031FC4 07030009 */ bgezl $t8, .L7F031FEC +/* 066AF8 7F031FC8 4406E000 */ mfc1 $a2, $f28 +/* 066AFC 7F031FCC 3C053F26 */ lui $a1, (0x3F266666 >> 16) # lui $a1, 0x3f26 +/* 066B00 7F031FD0 4406E000 */ mfc1 $a2, $f28 +/* 066B04 7F031FD4 34A56666 */ ori $a1, (0x3F266666 & 0xFFFF) # ori $a1, $a1, 0x6666 +/* 066B08 7F031FD8 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 066B0C 7F031FDC 8E44001C */ lw $a0, 0x1c($s2) +/* 066B10 7F031FE0 10000019 */ b .L7F032048 +/* 066B14 7F031FE4 8FBF0084 */ lw $ra, 0x84($sp) +/* 066B18 7F031FE8 4406E000 */ mfc1 $a2, $f28 +.L7F031FEC: +/* 066B1C 7F031FEC 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 066B20 7F031FF0 8E44001C */ lw $a0, 0x1c($s2) +/* 066B24 7F031FF4 10000014 */ b .L7F032048 +/* 066B28 7F031FF8 8FBF0084 */ lw $ra, 0x84($sp) +.L7F031FFC: +/* 066B2C 7F031FFC 56E30012 */ bnel $s7, $v1, .L7F032048 +/* 066B30 7F032000 8FBF0084 */ lw $ra, 0x84($sp) +/* 066B34 7F032004 C64400A0 */ lwc1 $f4, 0xa0($s2) +/* 066B38 7F032008 3C053F00 */ lui $a1, 0x3f00 +/* 066B3C 7F03200C 4604E032 */ c.eq.s $f28, $f4 +/* 066B40 7F032010 00000000 */ nop +/* 066B44 7F032014 45030009 */ bc1tl .L7F03203C +/* 066B48 7F032018 4406E000 */ mfc1 $a2, $f28 +/* 066B4C 7F03201C 3C053ECC */ lui $a1, (0x3ECCCCCD >> 16) # lui $a1, 0x3ecc +/* 066B50 7F032020 4406E000 */ mfc1 $a2, $f28 +/* 066B54 7F032024 34A5CCCD */ ori $a1, (0x3ECCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 066B58 7F032028 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 066B5C 7F03202C 8E44001C */ lw $a0, 0x1c($s2) +/* 066B60 7F032030 10000005 */ b .L7F032048 +/* 066B64 7F032034 8FBF0084 */ lw $ra, 0x84($sp) +/* 066B68 7F032038 4406E000 */ mfc1 $a2, $f28 +.L7F03203C: +/* 066B6C 7F03203C 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 066B70 7F032040 8E44001C */ lw $a0, 0x1c($s2) +/* 066B74 7F032044 8FBF0084 */ lw $ra, 0x84($sp) +.L7F032048: +/* 066B78 7F032048 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 066B7C 7F03204C D7B60038 */ ldc1 $f22, 0x38($sp) +/* 066B80 7F032050 D7B80040 */ ldc1 $f24, 0x40($sp) +/* 066B84 7F032054 D7BA0048 */ ldc1 $f26, 0x48($sp) +/* 066B88 7F032058 D7BC0050 */ ldc1 $f28, 0x50($sp) +/* 066B8C 7F03205C D7BE0058 */ ldc1 $f30, 0x58($sp) +/* 066B90 7F032060 8FB00064 */ lw $s0, 0x64($sp) +/* 066B94 7F032064 8FB10068 */ lw $s1, 0x68($sp) +/* 066B98 7F032068 8FB2006C */ lw $s2, 0x6c($sp) +/* 066B9C 7F03206C 8FB30070 */ lw $s3, 0x70($sp) +/* 066BA0 7F032070 8FB40074 */ lw $s4, 0x74($sp) +/* 066BA4 7F032074 8FB50078 */ lw $s5, 0x78($sp) +/* 066BA8 7F032078 8FB6007C */ lw $s6, 0x7c($sp) +/* 066BAC 7F03207C 8FB70080 */ lw $s7, 0x80($sp) +/* 066BB0 7F032080 03E00008 */ jr $ra +/* 066BB4 7F032084 27BD0110 */ addiu $sp, $sp, 0x110 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032088(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052068 +.word 0x3f99999a /*1.2*/ +glabel D_8005206C +.word 0x3f99999a /*1.2*/ +.text +glabel sub_GAME_7F032088 +/* 066BB8 7F032088 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 066BBC 7F03208C AFBF0024 */ sw $ra, 0x24($sp) +/* 066BC0 7F032090 AFB00020 */ sw $s0, 0x20($sp) +/* 066BC4 7F032094 8C8E0018 */ lw $t6, 0x18($a0) +/* 066BC8 7F032098 AFA00074 */ sw $zero, 0x74($sp) +/* 066BCC 7F03209C 3C198005 */ lui $t9, %hi(global_timer) +/* 066BD0 7F0320A0 AFAE0078 */ sw $t6, 0x78($sp) +/* 066BD4 7F0320A4 8C8F0084 */ lw $t7, 0x84($a0) +/* 066BD8 7F0320A8 3C098005 */ lui $t1, %hi(global_timer) +/* 066BDC 7F0320AC 8C8800CC */ lw $t0, 0xcc($a0) +/* 066BE0 7F0320B0 25F80001 */ addiu $t8, $t7, 1 +/* 066BE4 7F0320B4 AC980084 */ sw $t8, 0x84($a0) +/* 066BE8 7F0320B8 8F39837C */ lw $t9, %lo(global_timer)($t9) +/* 066BEC 7F0320BC 00808025 */ move $s0, $a0 +/* 066BF0 7F0320C0 2605002C */ addiu $a1, $s0, 0x2c +/* 066BF4 7F0320C4 AC9900C8 */ sw $t9, 0xc8($a0) +/* 066BF8 7F0320C8 8D29837C */ lw $t1, %lo(global_timer)($t1) +/* 066BFC 7F0320CC 252AFFC4 */ addiu $t2, $t1, -0x3c +/* 066C00 7F0320D0 010A082A */ slt $at, $t0, $t2 +/* 066C04 7F0320D4 10200004 */ beqz $at, .L7F0320E8 +/* 066C08 7F0320D8 00000000 */ nop +/* 066C0C 7F0320DC 8E060038 */ lw $a2, 0x38($s0) +/* 066C10 7F0320E0 0FC0A377 */ jal plot_course_for_actor +/* 066C14 7F0320E4 92070059 */ lbu $a3, 0x59($s0) +.L7F0320E8: +/* 066C18 7F0320E8 0FC0A07F */ jal sub_GAME_7F0281FC +/* 066C1C 7F0320EC 02002025 */ move $a0, $s0 +/* 066C20 7F0320F0 820B005C */ lb $t3, 0x5c($s0) +/* 066C24 7F0320F4 24010006 */ li $at, 6 +/* 066C28 7F0320F8 3C0C8005 */ lui $t4, %hi(global_timer) +/* 066C2C 7F0320FC 11610015 */ beq $t3, $at, .L7F032154 +/* 066C30 7F032100 00000000 */ nop +/* 066C34 7F032104 8E0D009C */ lw $t5, 0x9c($s0) +/* 066C38 7F032108 8D8C837C */ lw $t4, %lo(global_timer)($t4) +/* 066C3C 7F03210C 02002025 */ move $a0, $s0 +/* 066C40 7F032110 25AE00B4 */ addiu $t6, $t5, 0xb4 +/* 066C44 7F032114 01CC082A */ slt $at, $t6, $t4 +/* 066C48 7F032118 1020000E */ beqz $at, .L7F032154 +/* 066C4C 7F03211C 27A50068 */ addiu $a1, $sp, 0x68 +/* 066C50 7F032120 0FC09FC8 */ jal sub_GAME_7F027F20 +/* 066C54 7F032124 27A60064 */ addiu $a2, $sp, 0x64 +/* 066C58 7F032128 02002025 */ move $a0, $s0 +/* 066C5C 7F03212C 27A50068 */ addiu $a1, $sp, 0x68 +/* 066C60 7F032130 0FC09F6C */ jal sub_GAME_7F027DB0 +/* 066C64 7F032134 8FA60064 */ lw $a2, 0x64($sp) +/* 066C68 7F032138 10400006 */ beqz $v0, .L7F032154 +/* 066C6C 7F03213C 240F0001 */ li $t7, 1 +/* 066C70 7F032140 AFAF0074 */ sw $t7, 0x74($sp) +/* 066C74 7F032144 02002025 */ move $a0, $s0 +/* 066C78 7F032148 2605005C */ addiu $a1, $s0, 0x5c +/* 066C7C 7F03214C 0FC09FA4 */ jal sub_GAME_7F027E90 +/* 066C80 7F032150 27A60068 */ addiu $a2, $sp, 0x68 +.L7F032154: +/* 066C84 7F032154 3C188003 */ lui $t8, %hi(setting_007_5) +/* 066C88 7F032158 8F18CE50 */ lw $t8, %lo(setting_007_5)($t8) +/* 066C8C 7F03215C 2B01000A */ slti $at, $t8, 0xa +/* 066C90 7F032160 54200006 */ bnezl $at, .L7F03217C +/* 066C94 7F032164 8219005C */ lb $t9, 0x5c($s0) +/* 066C98 7F032168 0FC08F92 */ jal sub_GAME_7F023E48 +/* 066C9C 7F03216C 02002025 */ move $a0, $s0 +/* 066CA0 7F032170 100000F1 */ b .L7F032538 +/* 066CA4 7F032174 8FBF0024 */ lw $ra, 0x24($sp) +/* 066CA8 7F032178 8219005C */ lb $t9, 0x5c($s0) +.L7F03217C: +/* 066CAC 7F03217C 24010006 */ li $at, 6 +/* 066CB0 7F032180 02002025 */ move $a0, $s0 +/* 066CB4 7F032184 17210024 */ bne $t9, $at, .L7F032218 +/* 066CB8 7F032188 27A50058 */ addiu $a1, $sp, 0x58 +/* 066CBC 7F03218C 0FC09FC8 */ jal sub_GAME_7F027F20 +/* 066CC0 7F032190 27A60054 */ addiu $a2, $sp, 0x54 +/* 066CC4 7F032194 8FA90074 */ lw $t1, 0x74($sp) +/* 066CC8 7F032198 8FA80078 */ lw $t0, 0x78($sp) +/* 066CCC 7F03219C 55200012 */ bnezl $t1, .L7F0321E8 +/* 066CD0 7F0321A0 260C005C */ addiu $t4, $s0, 0x5c +/* 066CD4 7F0321A4 910A0001 */ lbu $t2, 1($t0) +/* 066CD8 7F0321A8 02002025 */ move $a0, $s0 +/* 066CDC 7F0321AC 27A50058 */ addiu $a1, $sp, 0x58 +/* 066CE0 7F0321B0 314B0002 */ andi $t3, $t2, 2 +/* 066CE4 7F0321B4 15600005 */ bnez $t3, .L7F0321CC +/* 066CE8 7F0321B8 00000000 */ nop +/* 066CEC 7F0321BC 0FC09F6C */ jal sub_GAME_7F027DB0 +/* 066CF0 7F0321C0 8FA60054 */ lw $a2, 0x54($sp) +/* 066CF4 7F0321C4 54400008 */ bnezl $v0, .L7F0321E8 +/* 066CF8 7F0321C8 260C005C */ addiu $t4, $s0, 0x5c +.L7F0321CC: +/* 066CFC 7F0321CC 0FC0A0A3 */ jal sub_GAME_7F02828C +/* 066D00 7F0321D0 02002025 */ move $a0, $s0 +/* 066D04 7F0321D4 3C0D8005 */ lui $t5, %hi(global_timer) +/* 066D08 7F0321D8 8DAD837C */ lw $t5, %lo(global_timer)($t5) +/* 066D0C 7F0321DC 100000D5 */ b .L7F032534 +/* 066D10 7F0321E0 AE0D009C */ sw $t5, 0x9c($s0) +/* 066D14 7F0321E4 260C005C */ addiu $t4, $s0, 0x5c +.L7F0321E8: +/* 066D18 7F0321E8 AFAC0034 */ sw $t4, 0x34($sp) +/* 066D1C 7F0321EC 0FC09FEA */ jal sub_GAME_7F027FA8 +/* 066D20 7F0321F0 02002025 */ move $a0, $s0 +/* 066D24 7F0321F4 8FAE0054 */ lw $t6, 0x54($sp) +/* 066D28 7F0321F8 44060000 */ mfc1 $a2, $f0 +/* 066D2C 7F0321FC 02002025 */ move $a0, $s0 +/* 066D30 7F032200 8FA50034 */ lw $a1, 0x34($sp) +/* 066D34 7F032204 27A70058 */ addiu $a3, $sp, 0x58 +/* 066D38 7F032208 0FC0A180 */ jal sub_GAME_7F028600 +/* 066D3C 7F03220C AFAE0010 */ sw $t6, 0x10($sp) +/* 066D40 7F032210 100000C9 */ b .L7F032538 +/* 066D44 7F032214 8FBF0024 */ lw $ra, 0x24($sp) +.L7F032218: +/* 066D48 7F032218 920F0058 */ lbu $t7, 0x58($s0) +/* 066D4C 7F03221C 8FA50078 */ lw $a1, 0x78($sp) +/* 066D50 7F032220 00001825 */ move $v1, $zero +/* 066D54 7F032224 000FC080 */ sll $t8, $t7, 2 +/* 066D58 7F032228 0218C821 */ addu $t9, $s0, $t8 +/* 066D5C 7F03222C 8F220040 */ lw $v0, 0x40($t9) +/* 066D60 7F032230 260400BC */ addiu $a0, $s0, 0xbc +/* 066D64 7F032234 2606002C */ addiu $a2, $s0, 0x2c +/* 066D68 7F032238 10400015 */ beqz $v0, .L7F032290 +/* 066D6C 7F03223C 24A50008 */ addiu $a1, $a1, 8 +/* 066D70 7F032240 8C490000 */ lw $t1, ($v0) +/* 066D74 7F032244 8FA50078 */ lw $a1, 0x78($sp) +/* 066D78 7F032248 3C0A8007 */ lui $t2, %hi(ptr_0xxxpresets) +/* 066D7C 7F03224C 00094080 */ sll $t0, $t1, 2 +/* 066D80 7F032250 01094023 */ subu $t0, $t0, $t1 +/* 066D84 7F032254 00084080 */ sll $t0, $t0, 2 +/* 066D88 7F032258 8D4A5D18 */ lw $t2, %lo(ptr_0xxxpresets)($t2) +/* 066D8C 7F03225C 01094023 */ subu $t0, $t0, $t1 +/* 066D90 7F032260 00084080 */ sll $t0, $t0, 2 +/* 066D94 7F032264 24A50008 */ addiu $a1, $a1, 8 +/* 066D98 7F032268 AFA5002C */ sw $a1, 0x2c($sp) +/* 066D9C 7F03226C AFA0004C */ sw $zero, 0x4c($sp) +/* 066DA0 7F032270 260400BC */ addiu $a0, $s0, 0xbc +/* 066DA4 7F032274 3C0741F0 */ lui $a3, 0x41f0 +/* 066DA8 7F032278 0FC0BF54 */ jal sub_GAME_7F02FD50 +/* 066DAC 7F03227C 010A3021 */ addu $a2, $t0, $t2 +/* 066DB0 7F032280 1040000D */ beqz $v0, .L7F0322B8 +/* 066DB4 7F032284 8FA3004C */ lw $v1, 0x4c($sp) +/* 066DB8 7F032288 1000000B */ b .L7F0322B8 +/* 066DBC 7F03228C 24030001 */ li $v1, 1 +.L7F032290: +/* 066DC0 7F032290 3C0741F0 */ lui $a3, 0x41f0 +/* 066DC4 7F032294 AFA3004C */ sw $v1, 0x4c($sp) +/* 066DC8 7F032298 0FC0BF54 */ jal sub_GAME_7F02FD50 +/* 066DCC 7F03229C AFA5002C */ sw $a1, 0x2c($sp) +/* 066DD0 7F0322A0 10400005 */ beqz $v0, .L7F0322B8 +/* 066DD4 7F0322A4 8FA3004C */ lw $v1, 0x4c($sp) +/* 066DD8 7F0322A8 0FC08F92 */ jal sub_GAME_7F023E48 +/* 066DDC 7F0322AC 02002025 */ move $a0, $s0 +/* 066DE0 7F0322B0 100000A1 */ b .L7F032538 +/* 066DE4 7F0322B4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0322B8: +/* 066DE8 7F0322B8 260B005C */ addiu $t3, $s0, 0x5c +/* 066DEC 7F0322BC 10600003 */ beqz $v1, .L7F0322CC +/* 066DF0 7F0322C0 AFAB0034 */ sw $t3, 0x34($sp) +/* 066DF4 7F0322C4 0FC0A0B8 */ jal sub_GAME_7F0282E0 +/* 066DF8 7F0322C8 02002025 */ move $a0, $s0 +.L7F0322CC: +/* 066DFC 7F0322CC 8E0D0084 */ lw $t5, 0x84($s0) +/* 066E00 7F0322D0 2401000A */ li $at, 10 +/* 066E04 7F0322D4 01A1001A */ div $zero, $t5, $at +/* 066E08 7F0322D8 00006010 */ mfhi $t4 +/* 066E0C 7F0322DC 24010005 */ li $at, 5 +/* 066E10 7F0322E0 5581003F */ bnel $t4, $at, .L7F0323E0 +/* 066E14 7F0322E4 8E190084 */ lw $t9, 0x84($s0) +/* 066E18 7F0322E8 92030058 */ lbu $v1, 0x58($s0) +/* 066E1C 7F0322EC 00037080 */ sll $t6, $v1, 2 +/* 066E20 7F0322F0 020E7821 */ addu $t7, $s0, $t6 +/* 066E24 7F0322F4 8DE20040 */ lw $v0, 0x40($t7) +/* 066E28 7F0322F8 0003C080 */ sll $t8, $v1, 2 +/* 066E2C 7F0322FC 02182021 */ addu $a0, $s0, $t8 +/* 066E30 7F032300 50400037 */ beql $v0, $zero, .L7F0323E0 +/* 066E34 7F032304 8E190084 */ lw $t9, 0x84($s0) +/* 066E38 7F032308 8C820044 */ lw $v0, 0x44($a0) +/* 066E3C 7F03230C 240E0010 */ li $t6, 16 +/* 066E40 7F032310 50400033 */ beql $v0, $zero, .L7F0323E0 +/* 066E44 7F032314 8E190084 */ lw $t9, 0x84($s0) +/* 066E48 7F032318 8C820048 */ lw $v0, 0x48($a0) +/* 066E4C 7F03231C 260B002C */ addiu $t3, $s0, 0x2c +/* 066E50 7F032320 02002025 */ move $a0, $s0 +/* 066E54 7F032324 5040000F */ beql $v0, $zero, .L7F032364 +/* 066E58 7F032328 AFAB0080 */ sw $t3, 0x80($sp) +/* 066E5C 7F03232C 8C590000 */ lw $t9, ($v0) +/* 066E60 7F032330 3C088007 */ lui $t0, %hi(ptr_0xxxpresets) +/* 066E64 7F032334 8D085D18 */ lw $t0, %lo(ptr_0xxxpresets)($t0) +/* 066E68 7F032338 00194880 */ sll $t1, $t9, 2 +/* 066E6C 7F03233C 01394823 */ subu $t1, $t1, $t9 +/* 066E70 7F032340 00094880 */ sll $t1, $t1, 2 +/* 066E74 7F032344 01394823 */ subu $t1, $t1, $t9 +/* 066E78 7F032348 00094880 */ sll $t1, $t1, 2 +/* 066E7C 7F03234C 01281821 */ addu $v1, $t1, $t0 +/* 066E80 7F032350 AFA30080 */ sw $v1, 0x80($sp) +/* 066E84 7F032354 8C6A0028 */ lw $t2, 0x28($v1) +/* 066E88 7F032358 10000004 */ b .L7F03236C +/* 066E8C 7F03235C AFAA007C */ sw $t2, 0x7c($sp) +/* 066E90 7F032360 AFAB0080 */ sw $t3, 0x80($sp) +.L7F032364: +/* 066E94 7F032364 8E060038 */ lw $a2, 0x38($s0) +/* 066E98 7F032368 AFA6007C */ sw $a2, 0x7c($sp) +.L7F03236C: +/* 066E9C 7F03236C 8FAD0078 */ lw $t5, 0x78($sp) +/* 066EA0 7F032370 8FAC007C */ lw $t4, 0x7c($sp) +/* 066EA4 7F032374 8FA5002C */ lw $a1, 0x2c($sp) +/* 066EA8 7F032378 8DA60014 */ lw $a2, 0x14($t5) +/* 066EAC 7F03237C AFAE0014 */ sw $t6, 0x14($sp) +/* 066EB0 7F032380 8FA70080 */ lw $a3, 0x80($sp) +/* 066EB4 7F032384 0FC0C04A */ jal sub_GAME_7F030128 +/* 066EB8 7F032388 AFAC0010 */ sw $t4, 0x10($sp) +/* 066EBC 7F03238C 10400013 */ beqz $v0, .L7F0323DC +/* 066EC0 7F032390 3C018005 */ lui $at, %hi(D_80052068) +/* 066EC4 7F032394 C6040024 */ lwc1 $f4, 0x24($s0) +/* 066EC8 7F032398 C4262068 */ lwc1 $f6, %lo(D_80052068)($at) +/* 066ECC 7F03239C 8FAF0078 */ lw $t7, 0x78($sp) +/* 066ED0 7F0323A0 24180010 */ li $t8, 16 +/* 066ED4 7F0323A4 46062202 */ mul.s $f8, $f4, $f6 +/* 066ED8 7F0323A8 8DE60014 */ lw $a2, 0x14($t7) +/* 066EDC 7F0323AC AFB80014 */ sw $t8, 0x14($sp) +/* 066EE0 7F0323B0 02002025 */ move $a0, $s0 +/* 066EE4 7F0323B4 8FA5002C */ lw $a1, 0x2c($sp) +/* 066EE8 7F0323B8 8FA70080 */ lw $a3, 0x80($sp) +/* 066EEC 7F0323BC 0FC0C07F */ jal sub_GAME_7F0301FC +/* 066EF0 7F0323C0 E7A80010 */ swc1 $f8, 0x10($sp) +/* 066EF4 7F0323C4 50400006 */ beql $v0, $zero, .L7F0323E0 +/* 066EF8 7F0323C8 8E190084 */ lw $t9, 0x84($s0) +/* 066EFC 7F0323CC 0FC0A0B8 */ jal sub_GAME_7F0282E0 +/* 066F00 7F0323D0 02002025 */ move $a0, $s0 +/* 066F04 7F0323D4 0FC0A0B8 */ jal sub_GAME_7F0282E0 +/* 066F08 7F0323D8 02002025 */ move $a0, $s0 +.L7F0323DC: +/* 066F0C 7F0323DC 8E190084 */ lw $t9, 0x84($s0) +.L7F0323E0: +/* 066F10 7F0323E0 2401000A */ li $at, 10 +/* 066F14 7F0323E4 0321001A */ div $zero, $t9, $at +/* 066F18 7F0323E8 00004810 */ mfhi $t1 +/* 066F1C 7F0323EC 55200039 */ bnezl $t1, .L7F0324D4 +/* 066F20 7F0323F0 920C0058 */ lbu $t4, 0x58($s0) +/* 066F24 7F0323F4 92030058 */ lbu $v1, 0x58($s0) +/* 066F28 7F0323F8 02002025 */ move $a0, $s0 +/* 066F2C 7F0323FC 00034080 */ sll $t0, $v1, 2 +/* 066F30 7F032400 02085021 */ addu $t2, $s0, $t0 +/* 066F34 7F032404 8D420040 */ lw $v0, 0x40($t2) +/* 066F38 7F032408 00035880 */ sll $t3, $v1, 2 +/* 066F3C 7F03240C 020B6821 */ addu $t5, $s0, $t3 +/* 066F40 7F032410 1040002F */ beqz $v0, .L7F0324D0 +/* 066F44 7F032414 240A0010 */ li $t2, 16 +/* 066F48 7F032418 8DA20044 */ lw $v0, 0x44($t5) +/* 066F4C 7F03241C 2619002C */ addiu $t9, $s0, 0x2c +/* 066F50 7F032420 5040000F */ beql $v0, $zero, .L7F032460 +/* 066F54 7F032424 AFB90080 */ sw $t9, 0x80($sp) +/* 066F58 7F032428 8C4C0000 */ lw $t4, ($v0) +/* 066F5C 7F03242C 3C0F8007 */ lui $t7, %hi(ptr_0xxxpresets) +/* 066F60 7F032430 8DEF5D18 */ lw $t7, %lo(ptr_0xxxpresets)($t7) +/* 066F64 7F032434 000C7080 */ sll $t6, $t4, 2 +/* 066F68 7F032438 01CC7023 */ subu $t6, $t6, $t4 +/* 066F6C 7F03243C 000E7080 */ sll $t6, $t6, 2 +/* 066F70 7F032440 01CC7023 */ subu $t6, $t6, $t4 +/* 066F74 7F032444 000E7080 */ sll $t6, $t6, 2 +/* 066F78 7F032448 01CF1821 */ addu $v1, $t6, $t7 +/* 066F7C 7F03244C AFA30080 */ sw $v1, 0x80($sp) +/* 066F80 7F032450 8C780028 */ lw $t8, 0x28($v1) +/* 066F84 7F032454 10000004 */ b .L7F032468 +/* 066F88 7F032458 AFB8007C */ sw $t8, 0x7c($sp) +/* 066F8C 7F03245C AFB90080 */ sw $t9, 0x80($sp) +.L7F032460: +/* 066F90 7F032460 8E060038 */ lw $a2, 0x38($s0) +/* 066F94 7F032464 AFA6007C */ sw $a2, 0x7c($sp) +.L7F032468: +/* 066F98 7F032468 8FA90078 */ lw $t1, 0x78($sp) +/* 066F9C 7F03246C 8FA8007C */ lw $t0, 0x7c($sp) +/* 066FA0 7F032470 8FA5002C */ lw $a1, 0x2c($sp) +/* 066FA4 7F032474 8D260014 */ lw $a2, 0x14($t1) +/* 066FA8 7F032478 AFAA0014 */ sw $t2, 0x14($sp) +/* 066FAC 7F03247C 8FA70080 */ lw $a3, 0x80($sp) +/* 066FB0 7F032480 0FC0C04A */ jal sub_GAME_7F030128 +/* 066FB4 7F032484 AFA80010 */ sw $t0, 0x10($sp) +/* 066FB8 7F032488 10400011 */ beqz $v0, .L7F0324D0 +/* 066FBC 7F03248C 3C018005 */ lui $at, %hi(D_8005206C) +/* 066FC0 7F032490 C60A0024 */ lwc1 $f10, 0x24($s0) +/* 066FC4 7F032494 C430206C */ lwc1 $f16, %lo(D_8005206C)($at) +/* 066FC8 7F032498 8FAB0078 */ lw $t3, 0x78($sp) +/* 066FCC 7F03249C 240D0010 */ li $t5, 16 +/* 066FD0 7F0324A0 46105482 */ mul.s $f18, $f10, $f16 +/* 066FD4 7F0324A4 8D660014 */ lw $a2, 0x14($t3) +/* 066FD8 7F0324A8 AFAD0014 */ sw $t5, 0x14($sp) +/* 066FDC 7F0324AC 02002025 */ move $a0, $s0 +/* 066FE0 7F0324B0 8FA5002C */ lw $a1, 0x2c($sp) +/* 066FE4 7F0324B4 8FA70080 */ lw $a3, 0x80($sp) +/* 066FE8 7F0324B8 0FC0C07F */ jal sub_GAME_7F0301FC +/* 066FEC 7F0324BC E7B20010 */ swc1 $f18, 0x10($sp) +/* 066FF0 7F0324C0 50400004 */ beql $v0, $zero, .L7F0324D4 +/* 066FF4 7F0324C4 920C0058 */ lbu $t4, 0x58($s0) +/* 066FF8 7F0324C8 0FC0A0B8 */ jal sub_GAME_7F0282E0 +/* 066FFC 7F0324CC 02002025 */ move $a0, $s0 +.L7F0324D0: +/* 067000 7F0324D0 920C0058 */ lbu $t4, 0x58($s0) +.L7F0324D4: +/* 067004 7F0324D4 2608002C */ addiu $t0, $s0, 0x2c +/* 067008 7F0324D8 02002025 */ move $a0, $s0 +/* 06700C 7F0324DC 000C7080 */ sll $t6, $t4, 2 +/* 067010 7F0324E0 020E7821 */ addu $t7, $s0, $t6 +/* 067014 7F0324E4 8DE20040 */ lw $v0, 0x40($t7) +/* 067018 7F0324E8 5040000E */ beql $v0, $zero, .L7F032524 +/* 06701C 7F0324EC AFA80080 */ sw $t0, 0x80($sp) +/* 067020 7F0324F0 8C580000 */ lw $t8, ($v0) +/* 067024 7F0324F4 3C098007 */ lui $t1, %hi(ptr_0xxxpresets) +/* 067028 7F0324F8 8D295D18 */ lw $t1, %lo(ptr_0xxxpresets)($t1) +/* 06702C 7F0324FC 0018C880 */ sll $t9, $t8, 2 +/* 067030 7F032500 0338C823 */ subu $t9, $t9, $t8 +/* 067034 7F032504 0019C880 */ sll $t9, $t9, 2 +/* 067038 7F032508 0338C823 */ subu $t9, $t9, $t8 +/* 06703C 7F03250C 0019C880 */ sll $t9, $t9, 2 +/* 067040 7F032510 03291821 */ addu $v1, $t9, $t1 +/* 067044 7F032514 AFA30080 */ sw $v1, 0x80($sp) +/* 067048 7F032518 10000003 */ b .L7F032528 +/* 06704C 7F03251C 8C660028 */ lw $a2, 0x28($v1) +/* 067050 7F032520 AFA80080 */ sw $t0, 0x80($sp) +.L7F032524: +/* 067054 7F032524 8E060038 */ lw $a2, 0x38($s0) +.L7F032528: +/* 067058 7F032528 8FA50080 */ lw $a1, 0x80($sp) +/* 06705C 7F03252C 0FC0C569 */ jal sub_GAME_7F0315A4 +/* 067060 7F032530 8FA70034 */ lw $a3, 0x34($sp) +.L7F032534: +/* 067064 7F032534 8FBF0024 */ lw $ra, 0x24($sp) +.L7F032538: +/* 067068 7F032538 8FB00020 */ lw $s0, 0x20($sp) +/* 06706C 7F03253C 27BD0088 */ addiu $sp, $sp, 0x88 +/* 067070 7F032540 03E00008 */ jr $ra +/* 067074 7F032544 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032548(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F032548 +/* 067078 7F032548 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 06707C 7F03254C AFBF0024 */ sw $ra, 0x24($sp) +/* 067080 7F032550 AFB10020 */ sw $s1, 0x20($sp) +/* 067084 7F032554 AFB0001C */ sw $s0, 0x1c($sp) +/* 067088 7F032558 8C8E0018 */ lw $t6, 0x18($a0) +/* 06708C 7F03255C 00808025 */ move $s0, $a0 +/* 067090 7F032560 0FC0A11D */ jal sub_GAME_7F028474 +/* 067094 7F032564 AFAE003C */ sw $t6, 0x3c($sp) +/* 067098 7F032568 AFA00034 */ sw $zero, 0x34($sp) +/* 06709C 7F03256C 8E0F0060 */ lw $t7, 0x60($s0) +/* 0670A0 7F032570 82080038 */ lb $t0, 0x38($s0) +/* 0670A4 7F032574 3C198005 */ lui $t9, %hi(global_timer) +/* 0670A8 7F032578 25F80001 */ addiu $t8, $t7, 1 +/* 0670AC 7F03257C AE180060 */ sw $t8, 0x60($s0) +/* 0670B0 7F032580 8F39837C */ lw $t9, %lo(global_timer)($t9) +/* 0670B4 7F032584 24010006 */ li $at, 6 +/* 0670B8 7F032588 00408825 */ move $s1, $v0 +/* 0670BC 7F03258C 11010012 */ beq $t0, $at, .L7F0325D8 +/* 0670C0 7F032590 AE1900C8 */ sw $t9, 0xc8($s0) +/* 0670C4 7F032594 8E0A0078 */ lw $t2, 0x78($s0) +/* 0670C8 7F032598 3C098005 */ lui $t1, %hi(global_timer) +/* 0670CC 7F03259C 8D29837C */ lw $t1, %lo(global_timer)($t1) +/* 0670D0 7F0325A0 254B00B4 */ addiu $t3, $t2, 0xb4 +/* 0670D4 7F0325A4 02002025 */ move $a0, $s0 +/* 0670D8 7F0325A8 0169082A */ slt $at, $t3, $t1 +/* 0670DC 7F0325AC 5020000B */ beql $at, $zero, .L7F0325DC +/* 0670E0 7F0325B0 820D0038 */ lb $t5, 0x38($s0) +/* 0670E4 7F0325B4 0FC09F9C */ jal sub_GAME_7F027E70 +/* 0670E8 7F0325B8 00402825 */ move $a1, $v0 +/* 0670EC 7F0325BC 10400006 */ beqz $v0, .L7F0325D8 +/* 0670F0 7F0325C0 240C0001 */ li $t4, 1 +/* 0670F4 7F0325C4 AFAC0034 */ sw $t4, 0x34($sp) +/* 0670F8 7F0325C8 02002025 */ move $a0, $s0 +/* 0670FC 7F0325CC 26050038 */ addiu $a1, $s0, 0x38 +/* 067100 7F0325D0 0FC09FA4 */ jal sub_GAME_7F027E90 +/* 067104 7F0325D4 02203025 */ move $a2, $s1 +.L7F0325D8: +/* 067108 7F0325D8 820D0038 */ lb $t5, 0x38($s0) +.L7F0325DC: +/* 06710C 7F0325DC 24010006 */ li $at, 6 +/* 067110 7F0325E0 26090038 */ addiu $t1, $s0, 0x38 +/* 067114 7F0325E4 15A1001E */ bne $t5, $at, .L7F032660 +/* 067118 7F0325E8 260400BC */ addiu $a0, $s0, 0xbc +/* 06711C 7F0325EC 8FAE0034 */ lw $t6, 0x34($sp) +/* 067120 7F0325F0 8FAF003C */ lw $t7, 0x3c($sp) +/* 067124 7F0325F4 55C00011 */ bnezl $t6, .L7F03263C +/* 067128 7F0325F8 8E2A0028 */ lw $t2, 0x28($s1) +/* 06712C 7F0325FC 91F80001 */ lbu $t8, 1($t7) +/* 067130 7F032600 02002025 */ move $a0, $s0 +/* 067134 7F032604 33190002 */ andi $t9, $t8, 2 +/* 067138 7F032608 17200004 */ bnez $t9, .L7F03261C +/* 06713C 7F03260C 00000000 */ nop +/* 067140 7F032610 0FC09F9C */ jal sub_GAME_7F027E70 +/* 067144 7F032614 02202825 */ move $a1, $s1 +/* 067148 7F032618 14400007 */ bnez $v0, .L7F032638 +.L7F03261C: +/* 06714C 7F03261C 3C088005 */ lui $t0, %hi(global_timer) +/* 067150 7F032620 8D08837C */ lw $t0, %lo(global_timer)($t0) +/* 067154 7F032624 02002025 */ move $a0, $s0 +/* 067158 7F032628 0FC0A125 */ jal sub_GAME_7F028494 +/* 06715C 7F03262C AE080078 */ sw $t0, 0x78($s0) +/* 067160 7F032630 1000001E */ b .L7F0326AC +/* 067164 7F032634 8FBF0024 */ lw $ra, 0x24($sp) +.L7F032638: +/* 067168 7F032638 8E2A0028 */ lw $t2, 0x28($s1) +.L7F03263C: +/* 06716C 7F03263C 3C068003 */ lui $a2, %hi(D_80030984) +/* 067170 7F032640 8CC60984 */ lw $a2, %lo(D_80030984)($a2) +/* 067174 7F032644 02002025 */ move $a0, $s0 +/* 067178 7F032648 26050038 */ addiu $a1, $s0, 0x38 +/* 06717C 7F03264C 02203825 */ move $a3, $s1 +/* 067180 7F032650 0FC0A180 */ jal sub_GAME_7F028600 +/* 067184 7F032654 AFAA0010 */ sw $t2, 0x10($sp) +/* 067188 7F032658 10000014 */ b .L7F0326AC +/* 06718C 7F03265C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F032660: +/* 067190 7F032660 8FA5003C */ lw $a1, 0x3c($sp) +/* 067194 7F032664 AFA9002C */ sw $t1, 0x2c($sp) +/* 067198 7F032668 02203025 */ move $a2, $s1 +/* 06719C 7F03266C 3C0741F0 */ lui $a3, 0x41f0 +/* 0671A0 7F032670 0FC0BF54 */ jal sub_GAME_7F02FD50 +/* 0671A4 7F032674 24A50008 */ addiu $a1, $a1, 8 +/* 0671A8 7F032678 50400007 */ beql $v0, $zero, .L7F032698 +/* 0671AC 7F03267C 02002025 */ move $a0, $s0 +/* 0671B0 7F032680 0FC0A137 */ jal sub_GAME_7F0284DC +/* 0671B4 7F032684 02002025 */ move $a0, $s0 +/* 0671B8 7F032688 0FC0A11D */ jal sub_GAME_7F028474 +/* 0671BC 7F03268C 02002025 */ move $a0, $s0 +/* 0671C0 7F032690 00408825 */ move $s1, $v0 +/* 0671C4 7F032694 02002025 */ move $a0, $s0 +.L7F032698: +/* 0671C8 7F032698 02202825 */ move $a1, $s1 +/* 0671CC 7F03269C 8E260028 */ lw $a2, 0x28($s1) +/* 0671D0 7F0326A0 0FC0C569 */ jal sub_GAME_7F0315A4 +/* 0671D4 7F0326A4 8FA7002C */ lw $a3, 0x2c($sp) +/* 0671D8 7F0326A8 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0326AC: +/* 0671DC 7F0326AC 8FB0001C */ lw $s0, 0x1c($sp) +/* 0671E0 7F0326B0 8FB10020 */ lw $s1, 0x20($sp) +/* 0671E4 7F0326B4 03E00008 */ jr $ra +/* 0671E8 7F0326B8 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + +#ifdef NONMATCHING +void manage_actions(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel jpt_80052070 + .word .L7F032788 + .word .L7F032798 + .word .L7F0327A8 + .word .L7F0327B8 + .word .L7F032808 + .word .L7F0327C8 + .word .L7F0327D8 + .word .L7F032818 + .word .L7F032828 + .word .L7F032838 + .word .L7F0327E8 + .word .L7F0327F8 + .word .L7F032848 + .word .L7F032858 + .word .L7F032868 + .word .L7F032878 + .word def_7F032780 + .word .L7F032898 + .word .L7F0328A8 + .word .L7F0328B8 + .word def_7F032780 + .word .L7F032888 + .word .L7F0328C8 + .word .L7F0328D8 +.text +glabel manage_actions +/* 0671EC 7F0326BC 3C028005 */ lui $v0, %hi(clock_timer) +/* 0671F0 7F0326C0 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0671F4 7F0326C4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0671F8 7F0326C8 AFB00018 */ sw $s0, 0x18($sp) +/* 0671FC 7F0326CC 00808025 */ move $s0, $a0 +/* 067200 7F0326D0 1840008D */ blez $v0, .L7F032908 +/* 067204 7F0326D4 AFBF001C */ sw $ra, 0x1c($sp) +/* 067208 7F0326D8 808E0007 */ lb $t6, 7($a0) +/* 06720C 7F0326DC 55C0000A */ bnezl $t6, .L7F032708 +/* 067210 7F0326E0 96190012 */ lhu $t9, 0x12($s0) +/* 067214 7F0326E4 8C8F0014 */ lw $t7, 0x14($a0) +/* 067218 7F0326E8 24050000 */ li $a1, 0 +/* 06721C 7F0326EC 35F80001 */ ori $t8, $t7, 1 +/* 067220 7F0326F0 0FC08EA5 */ jal sub_GAME_7F023A94 +/* 067224 7F0326F4 AC980014 */ sw $t8, 0x14($a0) +/* 067228 7F0326F8 A2000008 */ sb $zero, 8($s0) +/* 06722C 7F0326FC 3C028005 */ lui $v0, %hi(clock_timer) +/* 067230 7F032700 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 067234 7F032704 96190012 */ lhu $t9, 0x12($s0) +.L7F032708: +/* 067238 7F032708 02002025 */ move $a0, $s0 +/* 06723C 7F03270C 24050003 */ li $a1, 3 +/* 067240 7F032710 33280040 */ andi $t0, $t9, 0x40 +/* 067244 7F032714 51000007 */ beql $t0, $zero, .L7F032734 +/* 067248 7F032718 820B0008 */ lb $t3, 8($s0) +/* 06724C 7F03271C 8E090110 */ lw $t1, 0x110($s0) +/* 067250 7F032720 01225021 */ addu $t2, $t1, $v0 +/* 067254 7F032724 AE0A0110 */ sw $t2, 0x110($s0) +/* 067258 7F032728 3C028005 */ lui $v0, %hi(clock_timer) +/* 06725C 7F03272C 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 067260 7F032730 820B0008 */ lb $t3, 8($s0) +.L7F032734: +/* 067264 7F032734 01626023 */ subu $t4, $t3, $v0 +/* 067268 7F032738 A20C0008 */ sb $t4, 8($s0) +/* 06726C 7F03273C 820D0008 */ lb $t5, 8($s0) +/* 067270 7F032740 05A00005 */ bltz $t5, .L7F032758 +/* 067274 7F032744 00000000 */ nop +/* 067278 7F032748 8E0E0014 */ lw $t6, 0x14($s0) +/* 06727C 7F03274C 000E7B40 */ sll $t7, $t6, 0xd +/* 067280 7F032750 05E3006E */ bgezl $t7, .L7F03290C +/* 067284 7F032754 8FBF001C */ lw $ra, 0x1c($sp) +.L7F032758: +/* 067288 7F032758 0FC0D521 */ jal parse_handle_actionblocks +/* 06728C 7F03275C A2000008 */ sb $zero, 8($s0) +/* 067290 7F032760 82180007 */ lb $t8, 7($s0) +/* 067294 7F032764 2719FFFF */ addiu $t9, $t8, -1 +/* 067298 7F032768 2F210018 */ sltiu $at, $t9, 0x18 +/* 06729C 7F03276C 1020005C */ beqz $at, .L7F0328E0 +/* 0672A0 7F032770 0019C880 */ sll $t9, $t9, 2 +/* 0672A4 7F032774 3C018005 */ lui $at, %hi(jpt_80052070) +/* 0672A8 7F032778 00390821 */ addu $at, $at, $t9 +/* 0672AC 7F03277C 8C392070 */ lw $t9, %lo(jpt_80052070)($at) +/* 0672B0 7F032780 03200008 */ jr $t9 +/* 0672B4 7F032784 00000000 */ nop +.L7F032788: +/* 0672B8 7F032788 0FC0AB66 */ jal sub_GAME_7F02AD98 +/* 0672BC 7F03278C 02002025 */ move $a0, $s0 +/* 0672C0 7F032790 10000054 */ b .L7F0328E4 +/* 0672C4 7F032794 8E080014 */ lw $t0, 0x14($s0) +.L7F032798: +/* 0672C8 7F032798 0FC0AD38 */ jal actor_reset_sleep +/* 0672CC 7F03279C 02002025 */ move $a0, $s0 +/* 0672D0 7F0327A0 10000050 */ b .L7F0328E4 +/* 0672D4 7F0327A4 8E080014 */ lw $t0, 0x14($s0) +.L7F0327A8: +/* 0672D8 7F0327A8 0FC0AD3A */ jal sub_GAME_7F02B4E8 +/* 0672DC 7F0327AC 02002025 */ move $a0, $s0 +/* 0672E0 7F0327B0 1000004C */ b .L7F0328E4 +/* 0672E4 7F0327B4 8E080014 */ lw $t0, 0x14($s0) +.L7F0327B8: +/* 0672E8 7F0327B8 0FC0AE69 */ jal guard_body_hit_sfx +/* 0672EC 7F0327BC 02002025 */ move $a0, $s0 +/* 0672F0 7F0327C0 10000048 */ b .L7F0328E4 +/* 0672F4 7F0327C4 8E080014 */ lw $t0, 0x14($s0) +.L7F0327C8: +/* 0672F8 7F0327C8 0FC0AF20 */ jal sub_GAME_7F02BC80 +/* 0672FC 7F0327CC 02002025 */ move $a0, $s0 +/* 067300 7F0327D0 10000044 */ b .L7F0328E4 +/* 067304 7F0327D4 8E080014 */ lw $t0, 0x14($s0) +.L7F0327D8: +/* 067308 7F0327D8 0FC0AF48 */ jal sub_GAME_7F02BD20 +/* 06730C 7F0327DC 02002025 */ move $a0, $s0 +/* 067310 7F0327E0 10000040 */ b .L7F0328E4 +/* 067314 7F0327E4 8E080014 */ lw $t0, 0x14($s0) +.L7F0327E8: +/* 067318 7F0327E8 0FC0AF69 */ jal sub_GAME_7F02BDA4 +/* 06731C 7F0327EC 02002025 */ move $a0, $s0 +/* 067320 7F0327F0 1000003C */ b .L7F0328E4 +/* 067324 7F0327F4 8E080014 */ lw $t0, 0x14($s0) +.L7F0327F8: +/* 067328 7F0327F8 0FC0AF80 */ jal sub_GAME_7F02BE00 +/* 06732C 7F0327FC 02002025 */ move $a0, $s0 +/* 067330 7F032800 10000038 */ b .L7F0328E4 +/* 067334 7F032804 8E080014 */ lw $t0, 0x14($s0) +.L7F032808: +/* 067338 7F032808 0FC0ADDD */ jal manage_guard_fade +/* 06733C 7F03280C 02002025 */ move $a0, $s0 +/* 067340 7F032810 10000034 */ b .L7F0328E4 +/* 067344 7F032814 8E080014 */ lw $t0, 0x14($s0) +.L7F032818: +/* 067348 7F032818 0FC0BAFF */ jal sub_GAME_7F02EBFC +/* 06734C 7F03281C 02002025 */ move $a0, $s0 +/* 067350 7F032820 10000030 */ b .L7F0328E4 +/* 067354 7F032824 8E080014 */ lw $t0, 0x14($s0) +.L7F032828: +/* 067358 7F032828 0FC0BE22 */ jal sub_GAME_7F02F888 +/* 06735C 7F03282C 02002025 */ move $a0, $s0 +/* 067360 7F032830 1000002C */ b .L7F0328E4 +/* 067364 7F032834 8E080014 */ lw $t0, 0x14($s0) +.L7F032838: +/* 067368 7F032838 0FC0BBB8 */ jal sub_GAME_7F02EEE0 +/* 06736C 7F03283C 02002025 */ move $a0, $s0 +/* 067370 7F032840 10000028 */ b .L7F0328E4 +/* 067374 7F032844 8E080014 */ lw $t0, 0x14($s0) +.L7F032848: +/* 067378 7F032848 0FC0BF9E */ jal sub_GAME_7F02FE78 +/* 06737C 7F03284C 02002025 */ move $a0, $s0 +/* 067380 7F032850 10000024 */ b .L7F0328E4 +/* 067384 7F032854 8E080014 */ lw $t0, 0x14($s0) +.L7F032858: +/* 067388 7F032858 0FC0C952 */ jal sub_GAME_7F032548 +/* 06738C 7F03285C 02002025 */ move $a0, $s0 +/* 067390 7F032860 10000020 */ b .L7F0328E4 +/* 067394 7F032864 8E080014 */ lw $t0, 0x14($s0) +.L7F032868: +/* 067398 7F032868 0FC0C822 */ jal sub_GAME_7F032088 +/* 06739C 7F03286C 02002025 */ move $a0, $s0 +/* 0673A0 7F032870 1000001C */ b .L7F0328E4 +/* 0673A4 7F032874 8E080014 */ lw $t0, 0x14($s0) +.L7F032878: +/* 0673A8 7F032878 0FC0AD8E */ jal sub_GAME_7F02B638 +/* 0673AC 7F03287C 02002025 */ move $a0, $s0 +/* 0673B0 7F032880 10000018 */ b .L7F0328E4 +/* 0673B4 7F032884 8E080014 */ lw $t0, 0x14($s0) +.L7F032888: +/* 0673B8 7F032888 0FC0AF96 */ jal sub_GAME_7F02BE58 +/* 0673BC 7F03288C 02002025 */ move $a0, $s0 +/* 0673C0 7F032890 10000014 */ b .L7F0328E4 +/* 0673C4 7F032894 8E080014 */ lw $t0, 0x14($s0) +.L7F032898: +/* 0673C8 7F032898 0FC0AFC9 */ jal sub_GAME_7F02BF24 +/* 0673CC 7F03289C 02002025 */ move $a0, $s0 +/* 0673D0 7F0328A0 10000010 */ b .L7F0328E4 +/* 0673D4 7F0328A4 8E080014 */ lw $t0, 0x14($s0) +.L7F0328A8: +/* 0673D8 7F0328A8 0FC0AFAA */ jal sub_GAME_7F02BEA8 +/* 0673DC 7F0328AC 02002025 */ move $a0, $s0 +/* 0673E0 7F0328B0 1000000C */ b .L7F0328E4 +/* 0673E4 7F0328B4 8E080014 */ lw $t0, 0x14($s0) +.L7F0328B8: +/* 0673E8 7F0328B8 0FC0BCFE */ jal sub_GAME_7F02F3F8 +/* 0673EC 7F0328BC 02002025 */ move $a0, $s0 +/* 0673F0 7F0328C0 10000008 */ b .L7F0328E4 +/* 0673F4 7F0328C4 8E080014 */ lw $t0, 0x14($s0) +.L7F0328C8: +/* 0673F8 7F0328C8 0FC0BD69 */ jal sub_GAME_7F02F5A4 +/* 0673FC 7F0328CC 02002025 */ move $a0, $s0 +/* 067400 7F0328D0 10000004 */ b .L7F0328E4 +/* 067404 7F0328D4 8E080014 */ lw $t0, 0x14($s0) +.L7F0328D8: +/* 067408 7F0328D8 0FC0BDA2 */ jal sub_GAME_7F02F688 +/* 06740C 7F0328DC 02002025 */ move $a0, $s0 +def_7F032780: +.L7F0328E0: +/* 067410 7F0328E0 8E080014 */ lw $t0, 0x14($s0) +.L7F0328E4: +/* 067414 7F0328E4 960A0012 */ lhu $t2, 0x12($s0) +/* 067418 7F0328E8 2402FFFF */ li $v0, -1 +/* 06741C 7F0328EC 2401FFFB */ li $at, -5 +/* 067420 7F0328F0 01014824 */ and $t1, $t0, $at +/* 067424 7F0328F4 314BFDFD */ andi $t3, $t2, 0xfdfd +/* 067428 7F0328F8 AE090014 */ sw $t1, 0x14($s0) +/* 06742C 7F0328FC A60B0012 */ sh $t3, 0x12($s0) +/* 067430 7F032900 A6020118 */ sh $v0, 0x118($s0) +/* 067434 7F032904 A602011A */ sh $v0, 0x11a($s0) +.L7F032908: +/* 067438 7F032908 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03290C: +/* 06743C 7F03290C 8FB00018 */ lw $s0, 0x18($sp) +/* 067440 7F032910 27BD0020 */ addiu $sp, $sp, 0x20 +/* 067444 7F032914 03E00008 */ jr $ra +/* 067448 7F032918 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F03291C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03291C +/* 06744C 7F03291C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 067450 7F032920 AFBF001C */ sw $ra, 0x1c($sp) +/* 067454 7F032924 0FC07D4C */ jal get_numguards +/* 067458 7F032928 AFB00018 */ sw $s0, 0x18($sp) +/* 06745C 7F03292C 3C0E8003 */ lui $t6, %hi(objectiveregisters3) +/* 067460 7F032930 8DCE0980 */ lw $t6, %lo(objectiveregisters3)($t6) +/* 067464 7F032934 00405825 */ move $t3, $v0 +/* 067468 7F032938 00001825 */ move $v1, $zero +/* 06746C 7F03293C 19C00010 */ blez $t6, .L7F032980 +/* 067470 7F032940 00008025 */ move $s0, $zero +.L7F032944: +/* 067474 7F032944 3C0F8003 */ lui $t7, %hi(objectiveregisters2) +/* 067478 7F032948 8DEF097C */ lw $t7, %lo(objectiveregisters2)($t7) +/* 06747C 7F03294C AFA30024 */ sw $v1, 0x24($sp) +/* 067480 7F032950 AFAB0020 */ sw $t3, 0x20($sp) +/* 067484 7F032954 0FC0C9AF */ jal manage_actions +/* 067488 7F032958 020F2021 */ addu $a0, $s0, $t7 +/* 06748C 7F03295C 8FA30024 */ lw $v1, 0x24($sp) +/* 067490 7F032960 3C188003 */ lui $t8, %hi(objectiveregisters3) +/* 067494 7F032964 8F180980 */ lw $t8, %lo(objectiveregisters3)($t8) +/* 067498 7F032968 24630001 */ addiu $v1, $v1, 1 +/* 06749C 7F03296C 261001DC */ addiu $s0, $s0, 0x1dc +/* 0674A0 7F032970 0078082A */ slt $at, $v1, $t8 +/* 0674A4 7F032974 1420FFF3 */ bnez $at, .L7F032944 +/* 0674A8 7F032978 8FAB0020 */ lw $t3, 0x20($sp) +/* 0674AC 7F03297C 00001825 */ move $v1, $zero +.L7F032980: +/* 0674B0 7F032980 3C048003 */ lui $a0, %hi(setting_007_5) +/* 0674B4 7F032984 2484CE50 */ addiu $a0, %lo(setting_007_5) # addiu $a0, $a0, -0x31b0 +/* 0674B8 7F032988 19600072 */ blez $t3, .L7F032B54 +/* 0674BC 7F03298C AC800000 */ sw $zero, ($a0) +/* 0674C0 7F032990 31620003 */ andi $v0, $t3, 3 +/* 0674C4 7F032994 1040001D */ beqz $v0, .L7F032A0C +/* 0674C8 7F032998 00403825 */ move $a3, $v0 +/* 0674CC 7F03299C 0003C900 */ sll $t9, $v1, 4 +/* 0674D0 7F0329A0 0323C823 */ subu $t9, $t9, $v1 +/* 0674D4 7F0329A4 3C0C8003 */ lui $t4, %hi(ptr_guard_data) +/* 0674D8 7F0329A8 8D8CCC64 */ lw $t4, %lo(ptr_guard_data)($t4) +/* 0674DC 7F0329AC 0019C8C0 */ sll $t9, $t9, 3 +/* 0674E0 7F0329B0 0323C823 */ subu $t9, $t9, $v1 +/* 0674E4 7F0329B4 0019C880 */ sll $t9, $t9, 2 +/* 0674E8 7F0329B8 3C068005 */ lui $a2, %hi(global_timer) +/* 0674EC 7F0329BC 24C6837C */ addiu $a2, %lo(global_timer) # addiu $a2, $a2, -0x7c84 +/* 0674F0 7F0329C0 032C2821 */ addu $a1, $t9, $t4 +.L7F0329C4: +/* 0674F4 7F0329C4 8CAD001C */ lw $t5, 0x1c($a1) +/* 0674F8 7F0329C8 24630001 */ addiu $v1, $v1, 1 +/* 0674FC 7F0329CC 11A0000C */ beqz $t5, .L7F032A00 +/* 067500 7F0329D0 00000000 */ nop +/* 067504 7F0329D4 8CA200D4 */ lw $v0, 0xd4($a1) +/* 067508 7F0329D8 18400009 */ blez $v0, .L7F032A00 +/* 06750C 7F0329DC 00000000 */ nop +/* 067510 7F0329E0 8CCE0000 */ lw $t6, ($a2) +/* 067514 7F0329E4 01C27823 */ subu $t7, $t6, $v0 +/* 067518 7F0329E8 29E10078 */ slti $at, $t7, 0x78 +/* 06751C 7F0329EC 10200004 */ beqz $at, .L7F032A00 +/* 067520 7F0329F0 00000000 */ nop +/* 067524 7F0329F4 8C980000 */ lw $t8, ($a0) +/* 067528 7F0329F8 27190001 */ addiu $t9, $t8, 1 +/* 06752C 7F0329FC AC990000 */ sw $t9, ($a0) +.L7F032A00: +/* 067530 7F032A00 14E3FFF0 */ bne $a3, $v1, .L7F0329C4 +/* 067534 7F032A04 24A501DC */ addiu $a1, $a1, 0x1dc +/* 067538 7F032A08 106B0052 */ beq $v1, $t3, .L7F032B54 +.L7F032A0C: +/* 06753C 7F032A0C 00038100 */ sll $s0, $v1, 4 +/* 067540 7F032A10 02038023 */ subu $s0, $s0, $v1 +/* 067544 7F032A14 3C0C8003 */ lui $t4, %hi(ptr_guard_data) +/* 067548 7F032A18 8D8CCC64 */ lw $t4, %lo(ptr_guard_data)($t4) +/* 06754C 7F032A1C 001080C0 */ sll $s0, $s0, 3 +/* 067550 7F032A20 02038023 */ subu $s0, $s0, $v1 +/* 067554 7F032A24 00108080 */ sll $s0, $s0, 2 +/* 067558 7F032A28 000B5100 */ sll $t2, $t3, 4 +/* 06755C 7F032A2C 014B5023 */ subu $t2, $t2, $t3 +/* 067560 7F032A30 020C2821 */ addu $a1, $s0, $t4 +/* 067564 7F032A34 000A50C0 */ sll $t2, $t2, 3 +/* 067568 7F032A38 014B5023 */ subu $t2, $t2, $t3 +/* 06756C 7F032A3C 3C068005 */ lui $a2, %hi(global_timer) +/* 067570 7F032A40 24C6837C */ addiu $a2, %lo(global_timer) # addiu $a2, $a2, -0x7c84 +/* 067574 7F032A44 000A5080 */ sll $t2, $t2, 2 +/* 067578 7F032A48 24A701DC */ addiu $a3, $a1, 0x1dc +/* 06757C 7F032A4C 24A803B8 */ addiu $t0, $a1, 0x3b8 +/* 067580 7F032A50 24A90594 */ addiu $t1, $a1, 0x594 +.L7F032A54: +/* 067584 7F032A54 8CAD001C */ lw $t5, 0x1c($a1) +/* 067588 7F032A58 26100770 */ addiu $s0, $s0, 0x770 +/* 06758C 7F032A5C 51A0000D */ beql $t5, $zero, .L7F032A94 +/* 067590 7F032A60 8CEC001C */ lw $t4, 0x1c($a3) +/* 067594 7F032A64 8CA200D4 */ lw $v0, 0xd4($a1) +/* 067598 7F032A68 5840000A */ blezl $v0, .L7F032A94 +/* 06759C 7F032A6C 8CEC001C */ lw $t4, 0x1c($a3) +/* 0675A0 7F032A70 8CCE0000 */ lw $t6, ($a2) +/* 0675A4 7F032A74 01C27823 */ subu $t7, $t6, $v0 +/* 0675A8 7F032A78 29E10078 */ slti $at, $t7, 0x78 +/* 0675AC 7F032A7C 50200005 */ beql $at, $zero, .L7F032A94 +/* 0675B0 7F032A80 8CEC001C */ lw $t4, 0x1c($a3) +/* 0675B4 7F032A84 8C980000 */ lw $t8, ($a0) +/* 0675B8 7F032A88 27190001 */ addiu $t9, $t8, 1 +/* 0675BC 7F032A8C AC990000 */ sw $t9, ($a0) +/* 0675C0 7F032A90 8CEC001C */ lw $t4, 0x1c($a3) +.L7F032A94: +/* 0675C4 7F032A94 00E01025 */ move $v0, $a3 +/* 0675C8 7F032A98 24E70770 */ addiu $a3, $a3, 0x770 +/* 0675CC 7F032A9C 1180000C */ beqz $t4, .L7F032AD0 +/* 0675D0 7F032AA0 24A50770 */ addiu $a1, $a1, 0x770 +/* 0675D4 7F032AA4 8C4300D4 */ lw $v1, 0xd4($v0) +/* 0675D8 7F032AA8 5860000A */ blezl $v1, .L7F032AD4 +/* 0675DC 7F032AAC 8D19001C */ lw $t9, 0x1c($t0) +/* 0675E0 7F032AB0 8CCD0000 */ lw $t5, ($a2) +/* 0675E4 7F032AB4 01A37023 */ subu $t6, $t5, $v1 +/* 0675E8 7F032AB8 29C10078 */ slti $at, $t6, 0x78 +/* 0675EC 7F032ABC 50200005 */ beql $at, $zero, .L7F032AD4 +/* 0675F0 7F032AC0 8D19001C */ lw $t9, 0x1c($t0) +/* 0675F4 7F032AC4 8C8F0000 */ lw $t7, ($a0) +/* 0675F8 7F032AC8 25F80001 */ addiu $t8, $t7, 1 +/* 0675FC 7F032ACC AC980000 */ sw $t8, ($a0) +.L7F032AD0: +/* 067600 7F032AD0 8D19001C */ lw $t9, 0x1c($t0) +.L7F032AD4: +/* 067604 7F032AD4 01001025 */ move $v0, $t0 +/* 067608 7F032AD8 25080770 */ addiu $t0, $t0, 0x770 +/* 06760C 7F032ADC 5320000D */ beql $t9, $zero, .L7F032B14 +/* 067610 7F032AE0 8D38001C */ lw $t8, 0x1c($t1) +/* 067614 7F032AE4 8C4300D4 */ lw $v1, 0xd4($v0) +/* 067618 7F032AE8 5860000A */ blezl $v1, .L7F032B14 +/* 06761C 7F032AEC 8D38001C */ lw $t8, 0x1c($t1) +/* 067620 7F032AF0 8CCC0000 */ lw $t4, ($a2) +/* 067624 7F032AF4 01836823 */ subu $t5, $t4, $v1 +/* 067628 7F032AF8 29A10078 */ slti $at, $t5, 0x78 +/* 06762C 7F032AFC 50200005 */ beql $at, $zero, .L7F032B14 +/* 067630 7F032B00 8D38001C */ lw $t8, 0x1c($t1) +/* 067634 7F032B04 8C8E0000 */ lw $t6, ($a0) +/* 067638 7F032B08 25CF0001 */ addiu $t7, $t6, 1 +/* 06763C 7F032B0C AC8F0000 */ sw $t7, ($a0) +/* 067640 7F032B10 8D38001C */ lw $t8, 0x1c($t1) +.L7F032B14: +/* 067644 7F032B14 01201025 */ move $v0, $t1 +/* 067648 7F032B18 1300000C */ beqz $t8, .L7F032B4C +/* 06764C 7F032B1C 00000000 */ nop +/* 067650 7F032B20 8C4300D4 */ lw $v1, 0xd4($v0) +/* 067654 7F032B24 18600009 */ blez $v1, .L7F032B4C +/* 067658 7F032B28 00000000 */ nop +/* 06765C 7F032B2C 8CD90000 */ lw $t9, ($a2) +/* 067660 7F032B30 03236023 */ subu $t4, $t9, $v1 +/* 067664 7F032B34 29810078 */ slti $at, $t4, 0x78 +/* 067668 7F032B38 10200004 */ beqz $at, .L7F032B4C +/* 06766C 7F032B3C 00000000 */ nop +/* 067670 7F032B40 8C8D0000 */ lw $t5, ($a0) +/* 067674 7F032B44 25AE0001 */ addiu $t6, $t5, 1 +/* 067678 7F032B48 AC8E0000 */ sw $t6, ($a0) +.L7F032B4C: +/* 06767C 7F032B4C 160AFFC1 */ bne $s0, $t2, .L7F032A54 +/* 067680 7F032B50 25290770 */ addiu $t1, $t1, 0x770 +.L7F032B54: +/* 067684 7F032B54 8FBF001C */ lw $ra, 0x1c($sp) +/* 067688 7F032B58 8FB00018 */ lw $s0, 0x18($sp) +/* 06768C 7F032B5C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 067690 7F032B60 03E00008 */ jr $ra +/* 067694 7F032B64 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032B68(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F032B68 +/* 067698 7F032B68 8C8200D4 */ lw $v0, 0xd4($a0) +/* 06769C 7F032B6C 3C0E8005 */ lui $t6, %hi(global_timer) +/* 0676A0 7F032B70 58400009 */ blezl $v0, .L7F032B98 +/* 0676A4 7F032B74 00001025 */ move $v0, $zero +/* 0676A8 7F032B78 8DCE837C */ lw $t6, %lo(global_timer)($t6) +/* 0676AC 7F032B7C 01C27823 */ subu $t7, $t6, $v0 +/* 0676B0 7F032B80 29E10258 */ slti $at, $t7, 0x258 +/* 0676B4 7F032B84 50200004 */ beql $at, $zero, .L7F032B98 +/* 0676B8 7F032B88 00001025 */ move $v0, $zero +/* 0676BC 7F032B8C 03E00008 */ jr $ra +/* 0676C0 7F032B90 24020001 */ li $v0, 1 + +/* 0676C4 7F032B94 00001025 */ move $v0, $zero +.L7F032B98: +/* 0676C8 7F032B98 03E00008 */ jr $ra +/* 0676CC 7F032B9C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032BA0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F032BA0 +/* 0676D0 7F032BA0 8C8200F0 */ lw $v0, 0xf0($a0) +/* 0676D4 7F032BA4 3C0E8005 */ lui $t6, %hi(global_timer) +/* 0676D8 7F032BA8 58400009 */ blezl $v0, .L7F032BD0 +/* 0676DC 7F032BAC 00001025 */ move $v0, $zero +/* 0676E0 7F032BB0 8DCE837C */ lw $t6, %lo(global_timer)($t6) +/* 0676E4 7F032BB4 01C27823 */ subu $t7, $t6, $v0 +/* 0676E8 7F032BB8 29E10258 */ slti $at, $t7, 0x258 +/* 0676EC 7F032BBC 50200004 */ beql $at, $zero, .L7F032BD0 +/* 0676F0 7F032BC0 00001025 */ move $v0, $zero +/* 0676F4 7F032BC4 03E00008 */ jr $ra +/* 0676F8 7F032BC8 24020001 */ li $v0, 1 + +/* 0676FC 7F032BCC 00001025 */ move $v0, $zero +.L7F032BD0: +/* 067700 7F032BD0 03E00008 */ jr $ra +/* 067704 7F032BD4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_distance_actor_to_position(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800520D0 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel get_distance_actor_to_position +/* 067708 7F032BD8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 06770C 7F032BDC AFBF0014 */ sw $ra, 0x14($sp) +/* 067710 7F032BE0 AFA40020 */ sw $a0, 0x20($sp) +/* 067714 7F032BE4 AFA50024 */ sw $a1, 0x24($sp) +/* 067718 7F032BE8 0FC1B320 */ jal getsubroty +/* 06771C 7F032BEC 8C84001C */ lw $a0, 0x1c($a0) +/* 067720 7F032BF0 8FAF0020 */ lw $t7, 0x20($sp) +/* 067724 7F032BF4 8FA30024 */ lw $v1, 0x24($sp) +/* 067728 7F032BF8 8DE20018 */ lw $v0, 0x18($t7) +/* 06772C 7F032BFC C4640000 */ lwc1 $f4, ($v1) +/* 067730 7F032C00 C4680008 */ lwc1 $f8, 8($v1) +/* 067734 7F032C04 C4460008 */ lwc1 $f6, 8($v0) +/* 067738 7F032C08 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 06773C 7F032C0C E7A00018 */ swc1 $f0, 0x18($sp) +/* 067740 7F032C10 46062301 */ sub.s $f12, $f4, $f6 +/* 067744 7F032C14 0FC16A8C */ jal atan2f +/* 067748 7F032C18 460A4381 */ sub.s $f14, $f8, $f10 +/* 06774C 7F032C1C C7A20018 */ lwc1 $f2, 0x18($sp) +/* 067750 7F032C20 8FBF0014 */ lw $ra, 0x14($sp) +/* 067754 7F032C24 3C018005 */ lui $at, %hi(D_800520D0) +/* 067758 7F032C28 4602003C */ c.lt.s $f0, $f2 +/* 06775C 7F032C2C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 067760 7F032C30 46020381 */ sub.s $f14, $f0, $f2 +/* 067764 7F032C34 45000003 */ bc1f .L7F032C44 +/* 067768 7F032C38 46007306 */ mov.s $f12, $f14 +/* 06776C 7F032C3C C43020D0 */ lwc1 $f16, %lo(D_800520D0)($at) +/* 067770 7F032C40 46107300 */ add.s $f12, $f14, $f16 +.L7F032C44: +/* 067774 7F032C44 03E00008 */ jr $ra +/* 067778 7F032C48 46006006 */ mov.s $f0, $f12 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032C4C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F032C4C +/* 06777C 7F032C4C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 067780 7F032C50 AFBF0014 */ sw $ra, 0x14($sp) +/* 067784 7F032C54 0FC225E6 */ jal get_curplayer_positiondata +/* 067788 7F032C58 AFA40018 */ sw $a0, 0x18($sp) +/* 06778C 7F032C5C 8FA40018 */ lw $a0, 0x18($sp) +/* 067790 7F032C60 0FC0CAF6 */ jal get_distance_actor_to_position +/* 067794 7F032C64 24450008 */ addiu $a1, $v0, 8 +/* 067798 7F032C68 8FBF0014 */ lw $ra, 0x14($sp) +/* 06779C 7F032C6C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0677A0 7F032C70 03E00008 */ jr $ra +/* 0677A4 7F032C74 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032C78(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F032C78 +/* 0677A8 7F032C78 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0677AC 7F032C7C 30AE0004 */ andi $t6, $a1, 4 +/* 0677B0 7F032C80 AFBF0014 */ sw $ra, 0x14($sp) +/* 0677B4 7F032C84 11C00012 */ beqz $t6, .L7F032CD0 +/* 0677B8 7F032C88 AFA70024 */ sw $a3, 0x24($sp) +/* 0677BC 7F032C8C 00C02825 */ move $a1, $a2 +/* 0677C0 7F032C90 0FC0CC10 */ jal get_handle_for_guard_id +/* 0677C4 7F032C94 AFA40018 */ sw $a0, 0x18($sp) +/* 0677C8 7F032C98 8FA40018 */ lw $a0, 0x18($sp) +/* 0677CC 7F032C9C 10400004 */ beqz $v0, .L7F032CB0 +/* 0677D0 7F032CA0 00401825 */ move $v1, $v0 +/* 0677D4 7F032CA4 8C4F0018 */ lw $t7, 0x18($v0) +/* 0677D8 7F032CA8 55E00003 */ bnezl $t7, .L7F032CB8 +/* 0677DC 7F032CAC 8C980018 */ lw $t8, 0x18($a0) +.L7F032CB0: +/* 0677E0 7F032CB0 00801825 */ move $v1, $a0 +/* 0677E4 7F032CB4 8C980018 */ lw $t8, 0x18($a0) +.L7F032CB8: +/* 0677E8 7F032CB8 8FA80024 */ lw $t0, 0x24($sp) +/* 0677EC 7F032CBC 8F190014 */ lw $t9, 0x14($t8) +/* 0677F0 7F032CC0 AD190000 */ sw $t9, ($t0) +/* 0677F4 7F032CC4 8C620018 */ lw $v0, 0x18($v1) +/* 0677F8 7F032CC8 10000025 */ b .L7F032D60 +/* 0677FC 7F032CCC 24420008 */ addiu $v0, $v0, 8 +.L7F032CD0: +/* 067800 7F032CD0 30A90008 */ andi $t1, $a1, 8 +/* 067804 7F032CD4 1120001C */ beqz $t1, .L7F032D48 +/* 067808 7F032CD8 00000000 */ nop +/* 06780C 7F032CDC 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 067810 7F032CE0 00C02825 */ move $a1, $a2 +/* 067814 7F032CE4 28412710 */ slti $at, $v0, 0x2710 +/* 067818 7F032CE8 1020000A */ beqz $at, .L7F032D14 +/* 06781C 7F032CEC 8FAF0024 */ lw $t7, 0x24($sp) +/* 067820 7F032CF0 00025080 */ sll $t2, $v0, 2 +/* 067824 7F032CF4 01425023 */ subu $t2, $t2, $v0 +/* 067828 7F032CF8 000A5080 */ sll $t2, $t2, 2 +/* 06782C 7F032CFC 3C0B8007 */ lui $t3, %hi(ptr_0xxxpresets) +/* 067830 7F032D00 8D6B5D18 */ lw $t3, %lo(ptr_0xxxpresets)($t3) +/* 067834 7F032D04 01425023 */ subu $t2, $t2, $v0 +/* 067838 7F032D08 000A5080 */ sll $t2, $t2, 2 +/* 06783C 7F032D0C 1000000A */ b .L7F032D38 +/* 067840 7F032D10 014B1821 */ addu $v1, $t2, $t3 +.L7F032D14: +/* 067844 7F032D14 3C0D8007 */ lui $t5, %hi(ptr_2xxxpresets) +/* 067848 7F032D18 8DAD5D1C */ lw $t5, %lo(ptr_2xxxpresets)($t5) +/* 06784C 7F032D1C 00026100 */ sll $t4, $v0, 4 +/* 067850 7F032D20 01826021 */ addu $t4, $t4, $v0 +/* 067854 7F032D24 000C6080 */ sll $t4, $t4, 2 +/* 067858 7F032D28 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06785C 7F032D2C 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 067860 7F032D30 018D1821 */ addu $v1, $t4, $t5 +/* 067864 7F032D34 00611821 */ addu $v1, $v1, $at +.L7F032D38: +/* 067868 7F032D38 8C6E0028 */ lw $t6, 0x28($v1) +/* 06786C 7F032D3C 00601025 */ move $v0, $v1 +/* 067870 7F032D40 10000007 */ b .L7F032D60 +/* 067874 7F032D44 ADEE0000 */ sw $t6, ($t7) +.L7F032D48: +/* 067878 7F032D48 0FC225E6 */ jal get_curplayer_positiondata +/* 06787C 7F032D4C 00000000 */ nop +/* 067880 7F032D50 8C580014 */ lw $t8, 0x14($v0) +/* 067884 7F032D54 8FB90024 */ lw $t9, 0x24($sp) +/* 067888 7F032D58 24420008 */ addiu $v0, $v0, 8 +/* 06788C 7F032D5C AF380000 */ sw $t8, ($t9) +.L7F032D60: +/* 067890 7F032D60 8FBF0014 */ lw $ra, 0x14($sp) +/* 067894 7F032D64 27BD0018 */ addiu $sp, $sp, 0x18 +/* 067898 7F032D68 03E00008 */ jr $ra +/* 06789C 7F032D6C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_angle_between_actor_cur_player(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800520D4 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel get_angle_between_actor_cur_player +/* 0678A0 7F032D70 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0678A4 7F032D74 AFBF0014 */ sw $ra, 0x14($sp) +/* 0678A8 7F032D78 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 0678AC 7F032D7C AFA40020 */ sw $a0, 0x20($sp) +/* 0678B0 7F032D80 8FAE0020 */ lw $t6, 0x20($sp) +/* 0678B4 7F032D84 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0678B8 7F032D88 8DC30018 */ lw $v1, 0x18($t6) +/* 0678BC 7F032D8C 0FC225E6 */ jal get_curplayer_positiondata +/* 0678C0 7F032D90 AFA30018 */ sw $v1, 0x18($sp) +/* 0678C4 7F032D94 8FA30018 */ lw $v1, 0x18($sp) +/* 0678C8 7F032D98 C4460008 */ lwc1 $f6, 8($v0) +/* 0678CC 7F032D9C C44A0010 */ lwc1 $f10, 0x10($v0) +/* 0678D0 7F032DA0 C4640008 */ lwc1 $f4, 8($v1) +/* 0678D4 7F032DA4 C4680010 */ lwc1 $f8, 0x10($v1) +/* 0678D8 7F032DA8 46062301 */ sub.s $f12, $f4, $f6 +/* 0678DC 7F032DAC 0FC16A8C */ jal atan2f +/* 0678E0 7F032DB0 460A4381 */ sub.s $f14, $f8, $f10 +/* 0678E4 7F032DB4 C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 0678E8 7F032DB8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0678EC 7F032DBC 3C018005 */ lui $at, %hi(D_800520D4) +/* 0678F0 7F032DC0 460E003C */ c.lt.s $f0, $f14 +/* 0678F4 7F032DC4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0678F8 7F032DC8 460E0301 */ sub.s $f12, $f0, $f14 +/* 0678FC 7F032DCC 45000003 */ bc1f .L7F032DDC +/* 067900 7F032DD0 46006086 */ mov.s $f2, $f12 +/* 067904 7F032DD4 C43020D4 */ lwc1 $f16, %lo(D_800520D4)($at) +/* 067908 7F032DD8 46106080 */ add.s $f2, $f12, $f16 +.L7F032DDC: +/* 06790C 7F032DDC 03E00008 */ jr $ra +/* 067910 7F032DE0 46001006 */ mov.s $f0, $f2 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032DE4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F032DE4 +/* 067914 7F032DE4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 067918 7F032DE8 AFBF0014 */ sw $ra, 0x14($sp) +/* 06791C 7F032DEC 8C830018 */ lw $v1, 0x18($a0) +/* 067920 7F032DF0 0FC225E6 */ jal get_curplayer_positiondata +/* 067924 7F032DF4 AFA3001C */ sw $v1, 0x1c($sp) +/* 067928 7F032DF8 8FA3001C */ lw $v1, 0x1c($sp) +/* 06792C 7F032DFC C4440008 */ lwc1 $f4, 8($v0) +/* 067930 7F032E00 C448000C */ lwc1 $f8, 0xc($v0) +/* 067934 7F032E04 C4660008 */ lwc1 $f6, 8($v1) +/* 067938 7F032E08 C46A000C */ lwc1 $f10, 0xc($v1) +/* 06793C 7F032E0C C4500010 */ lwc1 $f16, 0x10($v0) +/* 067940 7F032E10 46062001 */ sub.s $f0, $f4, $f6 +/* 067944 7F032E14 C4720010 */ lwc1 $f18, 0x10($v1) +/* 067948 7F032E18 460A4081 */ sub.s $f2, $f8, $f10 +/* 06794C 7F032E1C 46000102 */ mul.s $f4, $f0, $f0 +/* 067950 7F032E20 46128381 */ sub.s $f14, $f16, $f18 +/* 067954 7F032E24 46021182 */ mul.s $f6, $f2, $f2 +/* 067958 7F032E28 46062200 */ add.s $f8, $f4, $f6 +/* 06795C 7F032E2C 460E7282 */ mul.s $f10, $f14, $f14 +/* 067960 7F032E30 0C007DF8 */ jal sqrtf +/* 067964 7F032E34 460A4300 */ add.s $f12, $f8, $f10 +/* 067968 7F032E38 8FBF0014 */ lw $ra, 0x14($sp) +/* 06796C 7F032E3C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 067970 7F032E40 03E00008 */ jr $ra +/* 067974 7F032E44 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032E48(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F032E48 +/* 067978 7F032E48 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 06797C 7F032E4C AFBF0014 */ sw $ra, 0x14($sp) +/* 067980 7F032E50 8C860018 */ lw $a2, 0x18($a0) +/* 067984 7F032E54 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 067988 7F032E58 AFA6001C */ sw $a2, 0x1c($sp) +/* 06798C 7F032E5C 28412710 */ slti $at, $v0, 0x2710 +/* 067990 7F032E60 1020000A */ beqz $at, .L7F032E8C +/* 067994 7F032E64 8FA6001C */ lw $a2, 0x1c($sp) +/* 067998 7F032E68 00027080 */ sll $t6, $v0, 2 +/* 06799C 7F032E6C 01C27023 */ subu $t6, $t6, $v0 +/* 0679A0 7F032E70 000E7080 */ sll $t6, $t6, 2 +/* 0679A4 7F032E74 3C0F8007 */ lui $t7, %hi(ptr_0xxxpresets) +/* 0679A8 7F032E78 8DEF5D18 */ lw $t7, %lo(ptr_0xxxpresets)($t7) +/* 0679AC 7F032E7C 01C27023 */ subu $t6, $t6, $v0 +/* 0679B0 7F032E80 000E7080 */ sll $t6, $t6, 2 +/* 0679B4 7F032E84 1000000A */ b .L7F032EB0 +/* 0679B8 7F032E88 01CF1821 */ addu $v1, $t6, $t7 +.L7F032E8C: +/* 0679BC 7F032E8C 3C198007 */ lui $t9, %hi(ptr_2xxxpresets) +/* 0679C0 7F032E90 8F395D1C */ lw $t9, %lo(ptr_2xxxpresets)($t9) +/* 0679C4 7F032E94 0002C100 */ sll $t8, $v0, 4 +/* 0679C8 7F032E98 0302C021 */ addu $t8, $t8, $v0 +/* 0679CC 7F032E9C 0018C080 */ sll $t8, $t8, 2 +/* 0679D0 7F032EA0 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 0679D4 7F032EA4 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 0679D8 7F032EA8 03191821 */ addu $v1, $t8, $t9 +/* 0679DC 7F032EAC 00611821 */ addu $v1, $v1, $at +.L7F032EB0: +/* 0679E0 7F032EB0 C4640000 */ lwc1 $f4, ($v1) +/* 0679E4 7F032EB4 C4C60008 */ lwc1 $f6, 8($a2) +/* 0679E8 7F032EB8 C4680004 */ lwc1 $f8, 4($v1) +/* 0679EC 7F032EBC C4CA000C */ lwc1 $f10, 0xc($a2) +/* 0679F0 7F032EC0 46062001 */ sub.s $f0, $f4, $f6 +/* 0679F4 7F032EC4 C4700008 */ lwc1 $f16, 8($v1) +/* 0679F8 7F032EC8 C4D20010 */ lwc1 $f18, 0x10($a2) +/* 0679FC 7F032ECC 460A4081 */ sub.s $f2, $f8, $f10 +/* 067A00 7F032ED0 46000102 */ mul.s $f4, $f0, $f0 +/* 067A04 7F032ED4 46128381 */ sub.s $f14, $f16, $f18 +/* 067A08 7F032ED8 46021182 */ mul.s $f6, $f2, $f2 +/* 067A0C 7F032EDC 46062200 */ add.s $f8, $f4, $f6 +/* 067A10 7F032EE0 460E7282 */ mul.s $f10, $f14, $f14 +/* 067A14 7F032EE4 0C007DF8 */ jal sqrtf +/* 067A18 7F032EE8 460A4300 */ add.s $f12, $f8, $f10 +/* 067A1C 7F032EEC 8FBF0014 */ lw $ra, 0x14($sp) +/* 067A20 7F032EF0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 067A24 7F032EF4 03E00008 */ jr $ra +/* 067A28 7F032EF8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_room_for_preset_loaded(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_room_for_preset_loaded +/* 067A2C 7F032EFC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 067A30 7F032F00 AFBF0014 */ sw $ra, 0x14($sp) +/* 067A34 7F032F04 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 067A38 7F032F08 00000000 */ nop +/* 067A3C 7F032F0C 28412710 */ slti $at, $v0, 0x2710 +/* 067A40 7F032F10 1020000A */ beqz $at, .L7F032F3C +/* 067A44 7F032F14 0002C100 */ sll $t8, $v0, 4 +/* 067A48 7F032F18 00027080 */ sll $t6, $v0, 2 +/* 067A4C 7F032F1C 01C27023 */ subu $t6, $t6, $v0 +/* 067A50 7F032F20 000E7080 */ sll $t6, $t6, 2 +/* 067A54 7F032F24 3C0F8007 */ lui $t7, %hi(ptr_0xxxpresets) +/* 067A58 7F032F28 8DEF5D18 */ lw $t7, %lo(ptr_0xxxpresets)($t7) +/* 067A5C 7F032F2C 01C27023 */ subu $t6, $t6, $v0 +/* 067A60 7F032F30 000E7080 */ sll $t6, $t6, 2 +/* 067A64 7F032F34 10000009 */ b .L7F032F5C +/* 067A68 7F032F38 01CF1821 */ addu $v1, $t6, $t7 +.L7F032F3C: +/* 067A6C 7F032F3C 3C198007 */ lui $t9, %hi(ptr_2xxxpresets) +/* 067A70 7F032F40 8F395D1C */ lw $t9, %lo(ptr_2xxxpresets)($t9) +/* 067A74 7F032F44 0302C021 */ addu $t8, $t8, $v0 +/* 067A78 7F032F48 0018C080 */ sll $t8, $t8, 2 +/* 067A7C 7F032F4C 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 067A80 7F032F50 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 067A84 7F032F54 03191821 */ addu $v1, $t8, $t9 +/* 067A88 7F032F58 00611821 */ addu $v1, $v1, $at +.L7F032F5C: +/* 067A8C 7F032F5C 8C640028 */ lw $a0, 0x28($v1) +/* 067A90 7F032F60 00001025 */ move $v0, $zero +/* 067A94 7F032F64 10800007 */ beqz $a0, .L7F032F84 +/* 067A98 7F032F68 00000000 */ nop +/* 067A9C 7F032F6C 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 067AA0 7F032F70 00000000 */ nop +/* 067AA4 7F032F74 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 067AA8 7F032F78 00402025 */ move $a0, $v0 +/* 067AAC 7F032F7C 10000002 */ b .L7F032F88 +/* 067AB0 7F032F80 8FBF0014 */ lw $ra, 0x14($sp) +.L7F032F84: +/* 067AB4 7F032F84 8FBF0014 */ lw $ra, 0x14($sp) +.L7F032F88: +/* 067AB8 7F032F88 27BD0018 */ addiu $sp, $sp, 0x18 +/* 067ABC 7F032F8C 03E00008 */ jr $ra +/* 067AC0 7F032F90 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032F94(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F032F94 +/* 067AC4 7F032F94 24012328 */ li $at, 9000 +/* 067AC8 7F032F98 14A10002 */ bne $a1, $at, .L7F032FA4 +/* 067ACC 7F032F9C 00000000 */ nop +/* 067AD0 7F032FA0 84850114 */ lh $a1, 0x114($a0) +.L7F032FA4: +/* 067AD4 7F032FA4 03E00008 */ jr $ra +/* 067AD8 7F032FA8 00A01025 */ move $v0, $a1 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F032FAC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F032FAC +/* 067ADC 7F032FAC 240100FA */ li $at, 250 +/* 067AE0 7F032FB0 54A10004 */ bnel $a1, $at, .L7F032FC4 +/* 067AE4 7F032FB4 240100FB */ li $at, 251 +/* 067AE8 7F032FB8 03E00008 */ jr $ra +/* 067AEC 7F032FBC 84820118 */ lh $v0, 0x118($a0) + +/* 067AF0 7F032FC0 240100FB */ li $at, 251 +.L7F032FC4: +/* 067AF4 7F032FC4 54A10004 */ bnel $a1, $at, .L7F032FD8 +/* 067AF8 7F032FC8 240100FC */ li $at, 252 +/* 067AFC 7F032FCC 03E00008 */ jr $ra +/* 067B00 7F032FD0 8482011A */ lh $v0, 0x11a($a0) + +/* 067B04 7F032FD4 240100FC */ li $at, 252 +.L7F032FD8: +/* 067B08 7F032FD8 54A10004 */ bnel $a1, $at, .L7F032FEC +/* 067B0C 7F032FDC 240100FD */ li $at, 253 +/* 067B10 7F032FE0 03E00008 */ jr $ra +/* 067B14 7F032FE4 84820116 */ lh $v0, 0x116($a0) + +/* 067B18 7F032FE8 240100FD */ li $at, 253 +.L7F032FEC: +/* 067B1C 7F032FEC 54A10004 */ bnel $a1, $at, .L7F033000 +/* 067B20 7F032FF0 240100F9 */ li $at, 249 +/* 067B24 7F032FF4 03E00008 */ jr $ra +/* 067B28 7F032FF8 84820000 */ lh $v0, ($a0) + +/* 067B2C 7F032FFC 240100F9 */ li $at, 249 +.L7F033000: +/* 067B30 7F033000 54A10005 */ bnel $a1, $at, .L7F033018 +/* 067B34 7F033004 240100F8 */ li $at, 248 +/* 067B38 7F033008 84850000 */ lh $a1, ($a0) +/* 067B3C 7F03300C 03E00008 */ jr $ra +/* 067B40 7F033010 24A22710 */ addiu $v0, $a1, 0x2710 + +/* 067B44 7F033014 240100F8 */ li $at, 248 +.L7F033018: +/* 067B48 7F033018 14A10007 */ bne $a1, $at, .L7F033038 +/* 067B4C 7F03301C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 067B50 7F033020 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 067B54 7F033024 8DCF00A8 */ lw $t7, 0xa8($t6) +/* 067B58 7F033028 8DE20004 */ lw $v0, 4($t7) +/* 067B5C 7F03302C 10400002 */ beqz $v0, .L7F033038 +/* 067B60 7F033030 00000000 */ nop +/* 067B64 7F033034 84450000 */ lh $a1, ($v0) +.L7F033038: +/* 067B68 7F033038 03E00008 */ jr $ra +/* 067B6C 7F03303C 00A01025 */ move $v0, $a1 +) +#endif + + + +#ifdef NONMATCHING +void get_handle_for_guard_id(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_handle_for_guard_id +/* 067B70 7F033040 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 067B74 7F033044 AFBF0014 */ sw $ra, 0x14($sp) +/* 067B78 7F033048 0FC0CBEB */ jal sub_GAME_7F032FAC +/* 067B7C 7F03304C 00000000 */ nop +/* 067B80 7F033050 00402025 */ move $a0, $v0 +/* 067B84 7F033054 0FC08BF2 */ jal check_if_guardnum_loaded_get_ptr_GUARDdata +/* 067B88 7F033058 AFA2001C */ sw $v0, 0x1c($sp) +/* 067B8C 7F03305C 8FA6001C */ lw $a2, 0x1c($sp) +/* 067B90 7F033060 14400013 */ bnez $v0, .L7F0330B0 +/* 067B94 7F033064 00404025 */ move $t0, $v0 +/* 067B98 7F033068 3C058003 */ lui $a1, %hi(objectiveregisters3) +/* 067B9C 7F03306C 8CA50980 */ lw $a1, %lo(objectiveregisters3)($a1) +/* 067BA0 7F033070 00001025 */ move $v0, $zero +/* 067BA4 7F033074 3C078003 */ lui $a3, %hi(objectiveregisters2) +/* 067BA8 7F033078 58A0000E */ blezl $a1, .L7F0330B4 +/* 067BAC 7F03307C 8FBF0014 */ lw $ra, 0x14($sp) +/* 067BB0 7F033080 8CE7097C */ lw $a3, %lo(objectiveregisters2)($a3) +/* 067BB4 7F033084 00002025 */ move $a0, $zero +/* 067BB8 7F033088 00E01825 */ move $v1, $a3 +.L7F03308C: +/* 067BBC 7F03308C 846E0000 */ lh $t6, ($v1) +/* 067BC0 7F033090 24420001 */ addiu $v0, $v0, 1 +/* 067BC4 7F033094 0045082A */ slt $at, $v0, $a1 +/* 067BC8 7F033098 14CE0003 */ bne $a2, $t6, .L7F0330A8 +/* 067BCC 7F03309C 246301DC */ addiu $v1, $v1, 0x1dc +/* 067BD0 7F0330A0 10000003 */ b .L7F0330B0 +/* 067BD4 7F0330A4 00874021 */ addu $t0, $a0, $a3 +.L7F0330A8: +/* 067BD8 7F0330A8 1420FFF8 */ bnez $at, .L7F03308C +/* 067BDC 7F0330AC 248401DC */ addiu $a0, $a0, 0x1dc +.L7F0330B0: +/* 067BE0 7F0330B0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0330B4: +/* 067BE4 7F0330B4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 067BE8 7F0330B8 01001025 */ move $v0, $t0 +/* 067BEC 7F0330BC 03E00008 */ jr $ra +/* 067BF0 7F0330C0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_distance_between_actor_and_actorID(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_distance_between_actor_and_actorID +/* 067BF4 7F0330C4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 067BF8 7F0330C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 067BFC 7F0330CC 8C830018 */ lw $v1, 0x18($a0) +/* 067C00 7F0330D0 0FC0CC10 */ jal get_handle_for_guard_id +/* 067C04 7F0330D4 AFA3001C */ sw $v1, 0x1c($sp) +/* 067C08 7F0330D8 44801000 */ mtc1 $zero, $f2 +/* 067C0C 7F0330DC 10400018 */ beqz $v0, .L7F033140 +/* 067C10 7F0330E0 8FA3001C */ lw $v1, 0x1c($sp) +/* 067C14 7F0330E4 8C4E001C */ lw $t6, 0x1c($v0) +/* 067C18 7F0330E8 51C00016 */ beql $t6, $zero, .L7F033144 +/* 067C1C 7F0330EC 8FBF0014 */ lw $ra, 0x14($sp) +/* 067C20 7F0330F0 8C4F0018 */ lw $t7, 0x18($v0) +/* 067C24 7F0330F4 51E00013 */ beql $t7, $zero, .L7F033144 +/* 067C28 7F0330F8 8FBF0014 */ lw $ra, 0x14($sp) +/* 067C2C 7F0330FC 8C420018 */ lw $v0, 0x18($v0) +/* 067C30 7F033100 C4660008 */ lwc1 $f6, 8($v1) +/* 067C34 7F033104 C46A000C */ lwc1 $f10, 0xc($v1) +/* 067C38 7F033108 C4440008 */ lwc1 $f4, 8($v0) +/* 067C3C 7F03310C C448000C */ lwc1 $f8, 0xc($v0) +/* 067C40 7F033110 C4720010 */ lwc1 $f18, 0x10($v1) +/* 067C44 7F033114 46062001 */ sub.s $f0, $f4, $f6 +/* 067C48 7F033118 C4500010 */ lwc1 $f16, 0x10($v0) +/* 067C4C 7F03311C 460A4081 */ sub.s $f2, $f8, $f10 +/* 067C50 7F033120 46000102 */ mul.s $f4, $f0, $f0 +/* 067C54 7F033124 46128381 */ sub.s $f14, $f16, $f18 +/* 067C58 7F033128 46021182 */ mul.s $f6, $f2, $f2 +/* 067C5C 7F03312C 46062200 */ add.s $f8, $f4, $f6 +/* 067C60 7F033130 460E7282 */ mul.s $f10, $f14, $f14 +/* 067C64 7F033134 0C007DF8 */ jal sqrtf +/* 067C68 7F033138 460A4300 */ add.s $f12, $f8, $f10 +/* 067C6C 7F03313C 46000086 */ mov.s $f2, $f0 +.L7F033140: +/* 067C70 7F033140 8FBF0014 */ lw $ra, 0x14($sp) +.L7F033144: +/* 067C74 7F033144 27BD0020 */ addiu $sp, $sp, 0x20 +/* 067C78 7F033148 46001006 */ mov.s $f0, $f2 +/* 067C7C 7F03314C 03E00008 */ jr $ra +/* 067C80 7F033150 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_distance_between_actor_and_preset(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_distance_between_actor_and_preset +/* 067C84 7F033154 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 067C88 7F033158 AFBF0014 */ sw $ra, 0x14($sp) +/* 067C8C 7F03315C AFA40020 */ sw $a0, 0x20($sp) +/* 067C90 7F033160 0FC225E6 */ jal get_curplayer_positiondata +/* 067C94 7F033164 AFA50024 */ sw $a1, 0x24($sp) +/* 067C98 7F033168 8FA40020 */ lw $a0, 0x20($sp) +/* 067C9C 7F03316C 8FA50024 */ lw $a1, 0x24($sp) +/* 067CA0 7F033170 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 067CA4 7F033174 AFA2001C */ sw $v0, 0x1c($sp) +/* 067CA8 7F033178 28412710 */ slti $at, $v0, 0x2710 +/* 067CAC 7F03317C 1020000A */ beqz $at, .L7F0331A8 +/* 067CB0 7F033180 8FA6001C */ lw $a2, 0x1c($sp) +/* 067CB4 7F033184 00027080 */ sll $t6, $v0, 2 +/* 067CB8 7F033188 01C27023 */ subu $t6, $t6, $v0 +/* 067CBC 7F03318C 000E7080 */ sll $t6, $t6, 2 +/* 067CC0 7F033190 3C0F8007 */ lui $t7, %hi(ptr_0xxxpresets) +/* 067CC4 7F033194 8DEF5D18 */ lw $t7, %lo(ptr_0xxxpresets)($t7) +/* 067CC8 7F033198 01C27023 */ subu $t6, $t6, $v0 +/* 067CCC 7F03319C 000E7080 */ sll $t6, $t6, 2 +/* 067CD0 7F0331A0 1000000A */ b .L7F0331CC +/* 067CD4 7F0331A4 01CF1821 */ addu $v1, $t6, $t7 +.L7F0331A8: +/* 067CD8 7F0331A8 3C198007 */ lui $t9, %hi(ptr_2xxxpresets) +/* 067CDC 7F0331AC 8F395D1C */ lw $t9, %lo(ptr_2xxxpresets)($t9) +/* 067CE0 7F0331B0 0002C100 */ sll $t8, $v0, 4 +/* 067CE4 7F0331B4 0302C021 */ addu $t8, $t8, $v0 +/* 067CE8 7F0331B8 0018C080 */ sll $t8, $t8, 2 +/* 067CEC 7F0331BC 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 067CF0 7F0331C0 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 067CF4 7F0331C4 03191821 */ addu $v1, $t8, $t9 +/* 067CF8 7F0331C8 00611821 */ addu $v1, $v1, $at +.L7F0331CC: +/* 067CFC 7F0331CC C4640000 */ lwc1 $f4, ($v1) +/* 067D00 7F0331D0 C4C60008 */ lwc1 $f6, 8($a2) +/* 067D04 7F0331D4 C4680004 */ lwc1 $f8, 4($v1) +/* 067D08 7F0331D8 C4CA000C */ lwc1 $f10, 0xc($a2) +/* 067D0C 7F0331DC 46062001 */ sub.s $f0, $f4, $f6 +/* 067D10 7F0331E0 C4700008 */ lwc1 $f16, 8($v1) +/* 067D14 7F0331E4 C4D20010 */ lwc1 $f18, 0x10($a2) +/* 067D18 7F0331E8 460A4081 */ sub.s $f2, $f8, $f10 +/* 067D1C 7F0331EC 46000102 */ mul.s $f4, $f0, $f0 +/* 067D20 7F0331F0 46128381 */ sub.s $f14, $f16, $f18 +/* 067D24 7F0331F4 46021182 */ mul.s $f6, $f2, $f2 +/* 067D28 7F0331F8 46062200 */ add.s $f8, $f4, $f6 +/* 067D2C 7F0331FC 460E7282 */ mul.s $f10, $f14, $f14 +/* 067D30 7F033200 0C007DF8 */ jal sqrtf +/* 067D34 7F033204 460A4300 */ add.s $f12, $f8, $f10 +/* 067D38 7F033208 8FBF0014 */ lw $ra, 0x14($sp) +/* 067D3C 7F03320C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 067D40 7F033210 03E00008 */ jr $ra +/* 067D44 7F033214 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033218(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033218 +/* 067D48 7F033218 AFA50004 */ sw $a1, 4($sp) +/* 067D4C 7F03321C 908F010E */ lbu $t7, 0x10e($a0) +/* 067D50 7F033220 01E5C025 */ or $t8, $t7, $a1 +/* 067D54 7F033224 03E00008 */ jr $ra +/* 067D58 7F033228 A098010E */ sb $t8, 0x10e($a0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F03322C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03322C +/* 067D5C 7F03322C AFA50004 */ sw $a1, 4($sp) +/* 067D60 7F033230 908F010E */ lbu $t7, 0x10e($a0) +/* 067D64 7F033234 00A0C027 */ not $t8, $a1 +/* 067D68 7F033238 01F8C824 */ and $t9, $t7, $t8 +/* 067D6C 7F03323C 03E00008 */ jr $ra +/* 067D70 7F033240 A099010E */ sb $t9, 0x10e($a0) +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033244(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033244 +/* 067D74 7F033244 AFA50004 */ sw $a1, 4($sp) +/* 067D78 7F033248 908F010E */ lbu $t7, 0x10e($a0) +/* 067D7C 7F03324C 30AE00FF */ andi $t6, $a1, 0xff +/* 067D80 7F033250 01EE1024 */ and $v0, $t7, $t6 +/* 067D84 7F033254 0002C02B */ sltu $t8, $zero, $v0 +/* 067D88 7F033258 03E00008 */ jr $ra +/* 067D8C 7F03325C 03001025 */ move $v0, $t8 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033260(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033260 +/* 067D90 7F033260 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 067D94 7F033264 AFBF0014 */ sw $ra, 0x14($sp) +/* 067D98 7F033268 0FC0CC10 */ jal get_handle_for_guard_id +/* 067D9C 7F03326C AFA60020 */ sw $a2, 0x20($sp) +/* 067DA0 7F033270 10400003 */ beqz $v0, .L7F033280 +/* 067DA4 7F033274 00402025 */ move $a0, $v0 +/* 067DA8 7F033278 0FC0CC86 */ jal sub_GAME_7F033218 +/* 067DAC 7F03327C 93A50023 */ lbu $a1, 0x23($sp) +.L7F033280: +/* 067DB0 7F033280 8FBF0014 */ lw $ra, 0x14($sp) +/* 067DB4 7F033284 27BD0018 */ addiu $sp, $sp, 0x18 +/* 067DB8 7F033288 03E00008 */ jr $ra +/* 067DBC 7F03328C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033290(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033290 +/* 067DC0 7F033290 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 067DC4 7F033294 AFBF0014 */ sw $ra, 0x14($sp) +/* 067DC8 7F033298 0FC0CC10 */ jal get_handle_for_guard_id +/* 067DCC 7F03329C AFA60020 */ sw $a2, 0x20($sp) +/* 067DD0 7F0332A0 10400003 */ beqz $v0, .L7F0332B0 +/* 067DD4 7F0332A4 00402025 */ move $a0, $v0 +/* 067DD8 7F0332A8 0FC0CC8B */ jal sub_GAME_7F03322C +/* 067DDC 7F0332AC 93A50023 */ lbu $a1, 0x23($sp) +.L7F0332B0: +/* 067DE0 7F0332B0 8FBF0014 */ lw $ra, 0x14($sp) +/* 067DE4 7F0332B4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 067DE8 7F0332B8 03E00008 */ jr $ra +/* 067DEC 7F0332BC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0332C0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0332C0 +/* 067DF0 7F0332C0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 067DF4 7F0332C4 AFBF0014 */ sw $ra, 0x14($sp) +/* 067DF8 7F0332C8 0FC0CC10 */ jal get_handle_for_guard_id +/* 067DFC 7F0332CC AFA60020 */ sw $a2, 0x20($sp) +/* 067E00 7F0332D0 10400005 */ beqz $v0, .L7F0332E8 +/* 067E04 7F0332D4 00402025 */ move $a0, $v0 +/* 067E08 7F0332D8 0FC0CC91 */ jal sub_GAME_7F033244 +/* 067E0C 7F0332DC 93A50023 */ lbu $a1, 0x23($sp) +/* 067E10 7F0332E0 10000003 */ b .L7F0332F0 +/* 067E14 7F0332E4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0332E8: +/* 067E18 7F0332E8 00001025 */ move $v0, $zero +/* 067E1C 7F0332EC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0332F0: +/* 067E20 7F0332F0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 067E24 7F0332F4 03E00008 */ jr $ra +/* 067E28 7F0332F8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void toggle_objective_bitflags(void) { + +} +#else +GLOBAL_ASM( +.text +glabel toggle_objective_bitflags +/* 067E2C 7F0332FC 3C028003 */ lui $v0, %hi(objectiveregisters1) +/* 067E30 7F033300 24420978 */ addiu $v0, %lo(objectiveregisters1) # addiu $v0, $v0, 0x978 +/* 067E34 7F033304 8C4E0000 */ lw $t6, ($v0) +/* 067E38 7F033308 AFA40000 */ sw $a0, ($sp) +/* 067E3C 7F03330C 01C57825 */ or $t7, $t6, $a1 +/* 067E40 7F033310 03E00008 */ jr $ra +/* 067E44 7F033314 AC4F0000 */ sw $t7, ($v0) +) +#endif + + + +#ifdef NONMATCHING +void untoggle_objective_bitflags(void) { + +} +#else +GLOBAL_ASM( +.text +glabel untoggle_objective_bitflags +/* 067E48 7F033318 3C028003 */ lui $v0, %hi(objectiveregisters1) +/* 067E4C 7F03331C 24420978 */ addiu $v0, %lo(objectiveregisters1) # addiu $v0, $v0, 0x978 +/* 067E50 7F033320 8C4F0000 */ lw $t7, ($v0) +/* 067E54 7F033324 00A07027 */ not $t6, $a1 +/* 067E58 7F033328 AFA40000 */ sw $a0, ($sp) +/* 067E5C 7F03332C 01CFC024 */ and $t8, $t6, $t7 +/* 067E60 7F033330 03E00008 */ jr $ra +/* 067E64 7F033334 AC580000 */ sw $t8, ($v0) +) +#endif + + + +#ifdef NONMATCHING +void check_if_objective_bitflags_set(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_objective_bitflags_set +/* 067E68 7F033338 3C0E8003 */ lui $t6, %hi(objectiveregisters1) +/* 067E6C 7F03333C 8DCE0978 */ lw $t6, %lo(objectiveregisters1)($t6) +/* 067E70 7F033340 AFA40000 */ sw $a0, ($sp) +/* 067E74 7F033344 01C51024 */ and $v0, $t6, $a1 +/* 067E78 7F033348 0002782B */ sltu $t7, $zero, $v0 +/* 067E7C 7F03334C 03E00008 */ jr $ra +/* 067E80 7F033350 01E01025 */ move $v0, $t7 +) +#endif + + + +#ifdef NONMATCHING +void check_if_actor_02_flag_set(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_actor_02_flag_set +/* 067E84 7F033354 94820012 */ lhu $v0, 0x12($a0) +/* 067E88 7F033358 304E0002 */ andi $t6, $v0, 2 +/* 067E8C 7F03335C 03E00008 */ jr $ra +/* 067E90 7F033360 000E102B */ sltu $v0, $zero, $t6 +) +#endif + + + +#ifdef NONMATCHING +void check_if_able_to_then_surrender(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_able_to_then_surrender +/* 067E94 7F033364 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 067E98 7F033368 AFBF0014 */ sw $ra, 0x14($sp) +/* 067E9C 7F03336C 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 067EA0 7F033370 AFA40018 */ sw $a0, 0x18($sp) +/* 067EA4 7F033374 50400006 */ beql $v0, $zero, .L7F033390 +/* 067EA8 7F033378 00001025 */ move $v0, $zero +/* 067EAC 7F03337C 0FC09192 */ jal actor_throw_weapon_surrender +/* 067EB0 7F033380 8FA40018 */ lw $a0, 0x18($sp) +/* 067EB4 7F033384 10000002 */ b .L7F033390 +/* 067EB8 7F033388 24020001 */ li $v0, 1 +/* 067EBC 7F03338C 00001025 */ move $v0, $zero +.L7F033390: +/* 067EC0 7F033390 8FBF0014 */ lw $ra, 0x14($sp) +/* 067EC4 7F033394 27BD0018 */ addiu $sp, $sp, 0x18 +/* 067EC8 7F033398 03E00008 */ jr $ra +/* 067ECC 7F03339C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0333A0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0333A0 +/* 067ED0 7F0333A0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 067ED4 7F0333A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 067ED8 7F0333A8 0FC091EE */ jal actor_fade_away +/* 067EDC 7F0333AC 00000000 */ nop +/* 067EE0 7F0333B0 8FBF0014 */ lw $ra, 0x14($sp) +/* 067EE4 7F0333B4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 067EE8 7F0333B8 24020001 */ li $v0, 1 +/* 067EEC 7F0333BC 03E00008 */ jr $ra +/* 067EF0 7F0333C0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void reset_and_start_loop_counter(void) { + +} +#else +GLOBAL_ASM( +.text +glabel reset_and_start_loop_counter +/* 067EF4 7F0333C4 948E0012 */ lhu $t6, 0x12($a0) +/* 067EF8 7F0333C8 AC800110 */ sw $zero, 0x110($a0) +/* 067EFC 7F0333CC 35CF0040 */ ori $t7, $t6, 0x40 +/* 067F00 7F0333D0 03E00008 */ jr $ra +/* 067F04 7F0333D4 A48F0012 */ sh $t7, 0x12($a0) +) +#endif + + + +#ifdef NONMATCHING +void get_loop_counter_time_in_seconds(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_loop_counter_time_in_seconds +/* 067F08 7F0333D8 8C8E0110 */ lw $t6, 0x110($a0) +/* 067F0C 7F0333DC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 067F10 7F0333E0 44814000 */ mtc1 $at, $f8 +/* 067F14 7F0333E4 448E2000 */ mtc1 $t6, $f4 +/* 067F18 7F0333E8 00000000 */ nop +/* 067F1C 7F0333EC 468021A0 */ cvt.s.w $f6, $f4 +/* 067F20 7F0333F0 03E00008 */ jr $ra +/* 067F24 7F0333F4 46083003 */ div.s $f0, $f6, $f8 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0333F8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800520D8 +.word 0x3f4ccccd /*0.80000001*/ +.text +glabel sub_GAME_7F0333F8 +/* 067F28 7F0333F8 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 067F2C 7F0333FC AFBF0014 */ sw $ra, 0x14($sp) +/* 067F30 7F033400 0FC0A5D8 */ jal sub_GAME_7F029760 +/* 067F34 7F033404 AFA40048 */ sw $a0, 0x48($sp) +/* 067F38 7F033408 1040001C */ beqz $v0, .L7F03347C +/* 067F3C 7F03340C 8FAE0048 */ lw $t6, 0x48($sp) +/* 067F40 7F033410 8DC4001C */ lw $a0, 0x1c($t6) +/* 067F44 7F033414 0FC1B403 */ jal getinstsize +/* 067F48 7F033418 AFA40044 */ sw $a0, 0x44($sp) +/* 067F4C 7F03341C 3C018005 */ lui $at, %hi(D_800520D8) +/* 067F50 7F033420 C42420D8 */ lwc1 $f4, %lo(D_800520D8)($at) +/* 067F54 7F033424 27A40038 */ addiu $a0, $sp, 0x38 +/* 067F58 7F033428 27A5002C */ addiu $a1, $sp, 0x2c +/* 067F5C 7F03342C 46040182 */ mul.s $f6, $f0, $f4 +/* 067F60 7F033430 0FC1A064 */ jal sub_GAME_7F068190 +/* 067F64 7F033434 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 067F68 7F033438 8FA40044 */ lw $a0, 0x44($sp) +/* 067F6C 7F03343C 0FC1B2E6 */ jal getsuboffset +/* 067F70 7F033440 27A50020 */ addiu $a1, $sp, 0x20 +/* 067F74 7F033444 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 067F78 7F033448 00000000 */ nop +/* 067F7C 7F03344C 00402025 */ move $a0, $v0 +/* 067F80 7F033450 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 067F84 7F033454 27A50020 */ addiu $a1, $sp, 0x20 +/* 067F88 7F033458 27A40038 */ addiu $a0, $sp, 0x38 +/* 067F8C 7F03345C 27A5002C */ addiu $a1, $sp, 0x2c +/* 067F90 7F033460 27A60020 */ addiu $a2, $sp, 0x20 +/* 067F94 7F033464 0FC1041D */ jal sub_GAME_7F041074 +/* 067F98 7F033468 8FA7001C */ lw $a3, 0x1c($sp) +/* 067F9C 7F03346C 50400004 */ beql $v0, $zero, .L7F033480 +/* 067FA0 7F033470 00001025 */ move $v0, $zero +/* 067FA4 7F033474 10000002 */ b .L7F033480 +/* 067FA8 7F033478 24020001 */ li $v0, 1 +.L7F03347C: +/* 067FAC 7F03347C 00001025 */ move $v0, $zero +.L7F033480: +/* 067FB0 7F033480 8FBF0014 */ lw $ra, 0x14($sp) +/* 067FB4 7F033484 27BD0048 */ addiu $sp, $sp, 0x48 +/* 067FB8 7F033488 03E00008 */ jr $ra +/* 067FBC 7F03348C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_actor_invisible(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_actor_invisible +/* 067FC0 7F033490 8C820014 */ lw $v0, 0x14($a0) +/* 067FC4 7F033494 304E0004 */ andi $t6, $v0, 4 +/* 067FC8 7F033498 03E00008 */ jr $ra +/* 067FCC 7F03349C 000E102B */ sltu $v0, $zero, $t6 +) +#endif + + + +#ifdef NONMATCHING +void actor_move_to_curplayer_at_speed(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_move_to_curplayer_at_speed +/* 067FD0 7F0334A0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 067FD4 7F0334A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 067FD8 7F0334A8 AFA40018 */ sw $a0, 0x18($sp) +/* 067FDC 7F0334AC 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 067FE0 7F0334B0 AFA5001C */ sw $a1, 0x1c($sp) +/* 067FE4 7F0334B4 10400010 */ beqz $v0, .L7F0334F8 +/* 067FE8 7F0334B8 3C0E8003 */ lui $t6, %hi(setting_007_5) +/* 067FEC 7F0334BC 8DCECE50 */ lw $t6, %lo(setting_007_5)($t6) +/* 067FF0 7F0334C0 29C1000A */ slti $at, $t6, 0xa +/* 067FF4 7F0334C4 5020000D */ beql $at, $zero, .L7F0334FC +/* 067FF8 7F0334C8 00001025 */ move $v0, $zero +/* 067FFC 7F0334CC 0FC225E6 */ jal get_curplayer_positiondata +/* 068000 7F0334D0 00000000 */ nop +/* 068004 7F0334D4 8FA40018 */ lw $a0, 0x18($sp) +/* 068008 7F0334D8 24450008 */ addiu $a1, $v0, 8 +/* 06800C 7F0334DC 8C460014 */ lw $a2, 0x14($v0) +/* 068010 7F0334E0 0FC0A377 */ jal plot_course_for_actor +/* 068014 7F0334E4 8FA7001C */ lw $a3, 0x1c($sp) +/* 068018 7F0334E8 50400004 */ beql $v0, $zero, .L7F0334FC +/* 06801C 7F0334EC 00001025 */ move $v0, $zero +/* 068020 7F0334F0 10000002 */ b .L7F0334FC +/* 068024 7F0334F4 24020001 */ li $v0, 1 +.L7F0334F8: +/* 068028 7F0334F8 00001025 */ move $v0, $zero +.L7F0334FC: +/* 06802C 7F0334FC 8FBF0014 */ lw $ra, 0x14($sp) +/* 068030 7F033500 27BD0018 */ addiu $sp, $sp, 0x18 +/* 068034 7F033504 03E00008 */ jr $ra +/* 068038 7F033508 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void actor_move_to_actorID_at_speed(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_move_to_actorID_at_speed +/* 06803C 7F03350C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 068040 7F033510 AFBF0014 */ sw $ra, 0x14($sp) +/* 068044 7F033514 AFA40018 */ sw $a0, 0x18($sp) +/* 068048 7F033518 AFA5001C */ sw $a1, 0x1c($sp) +/* 06804C 7F03351C 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 068050 7F033520 AFA60020 */ sw $a2, 0x20($sp) +/* 068054 7F033524 1040001A */ beqz $v0, .L7F033590 +/* 068058 7F033528 3C0E8003 */ lui $t6, %hi(setting_007_5) +/* 06805C 7F03352C 8DCECE50 */ lw $t6, %lo(setting_007_5)($t6) +/* 068060 7F033530 8FA40018 */ lw $a0, 0x18($sp) +/* 068064 7F033534 29C1000A */ slti $at, $t6, 0xa +/* 068068 7F033538 50200016 */ beql $at, $zero, .L7F033594 +/* 06806C 7F03353C 00001025 */ move $v0, $zero +/* 068070 7F033540 0FC0CC10 */ jal get_handle_for_guard_id +/* 068074 7F033544 8FA5001C */ lw $a1, 0x1c($sp) +/* 068078 7F033548 50400012 */ beql $v0, $zero, .L7F033594 +/* 06807C 7F03354C 00001025 */ move $v0, $zero +/* 068080 7F033550 8C4F001C */ lw $t7, 0x1c($v0) +/* 068084 7F033554 51E0000F */ beql $t7, $zero, .L7F033594 +/* 068088 7F033558 00001025 */ move $v0, $zero +/* 06808C 7F03355C 8C580018 */ lw $t8, 0x18($v0) +/* 068090 7F033560 5300000C */ beql $t8, $zero, .L7F033594 +/* 068094 7F033564 00001025 */ move $v0, $zero +/* 068098 7F033568 8C420018 */ lw $v0, 0x18($v0) +/* 06809C 7F03356C 8FA40018 */ lw $a0, 0x18($sp) +/* 0680A0 7F033570 8FA70020 */ lw $a3, 0x20($sp) +/* 0680A4 7F033574 24450008 */ addiu $a1, $v0, 8 +/* 0680A8 7F033578 0FC0A377 */ jal plot_course_for_actor +/* 0680AC 7F03357C 8C460014 */ lw $a2, 0x14($v0) +/* 0680B0 7F033580 50400004 */ beql $v0, $zero, .L7F033594 +/* 0680B4 7F033584 00001025 */ move $v0, $zero +/* 0680B8 7F033588 10000002 */ b .L7F033594 +/* 0680BC 7F03358C 24020001 */ li $v0, 1 +.L7F033590: +/* 0680C0 7F033590 00001025 */ move $v0, $zero +.L7F033594: +/* 0680C4 7F033594 8FBF0014 */ lw $ra, 0x14($sp) +/* 0680C8 7F033598 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0680CC 7F03359C 03E00008 */ jr $ra +/* 0680D0 7F0335A0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_times_actor_shot(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_times_actor_shot +/* 0680D4 7F0335A4 03E00008 */ jr $ra +/* 0680D8 7F0335A8 8082000B */ lb $v0, 0xb($a0) +) +#endif + + + +#ifdef NONMATCHING +void get_num_shots_near_actor(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_num_shots_near_actor +/* 0680DC 7F0335AC 03E00008 */ jr $ra +/* 0680E0 7F0335B0 8082000A */ lb $v0, 0xa($a0) +) +#endif + + + +#ifdef NONMATCHING +void check_if_actor_FA_target_set(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_actor_FA_target_set +/* 0680E4 7F0335B4 84820118 */ lh $v0, 0x118($a0) +/* 0680E8 7F0335B8 284E0000 */ slti $t6, $v0, 0 +/* 0680EC 7F0335BC 03E00008 */ jr $ra +/* 0680F0 7F0335C0 39C20001 */ xori $v0, $t6, 1 +) +#endif + + + +#ifdef NONMATCHING +void check_if_actor_FB_target_set(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_actor_FB_target_set +/* 0680F4 7F0335C4 8482011A */ lh $v0, 0x11a($a0) +/* 0680F8 7F0335C8 284E0000 */ slti $t6, $v0, 0 +/* 0680FC 7F0335CC 03E00008 */ jr $ra +/* 068100 7F0335D0 39C20001 */ xori $v0, $t6, 1 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0335D4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0335D4 +/* 068104 7F0335D4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 068108 7F0335D8 AFBF0014 */ sw $ra, 0x14($sp) +/* 06810C 7F0335DC 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 068110 7F0335E0 AFA40018 */ sw $a0, 0x18($sp) +/* 068114 7F0335E4 50400006 */ beql $v0, $zero, .L7F033600 +/* 068118 7F0335E8 00001025 */ move $v0, $zero +/* 06811C 7F0335EC 0FC08F92 */ jal sub_GAME_7F023E48 +/* 068120 7F0335F0 8FA40018 */ lw $a0, 0x18($sp) +/* 068124 7F0335F4 10000002 */ b .L7F033600 +/* 068128 7F0335F8 24020001 */ li $v0, 1 +/* 06812C 7F0335FC 00001025 */ move $v0, $zero +.L7F033600: +/* 068130 7F033600 8FBF0014 */ lw $ra, 0x14($sp) +/* 068134 7F033604 27BD0018 */ addiu $sp, $sp, 0x18 +/* 068138 7F033608 03E00008 */ jr $ra +/* 06813C 7F03360C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_able_to_then_shuffle_feet(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_able_to_then_shuffle_feet +/* 068140 7F033610 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 068144 7F033614 AFBF0014 */ sw $ra, 0x14($sp) +/* 068148 7F033618 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 06814C 7F03361C AFA40018 */ sw $a0, 0x18($sp) +/* 068150 7F033620 50400006 */ beql $v0, $zero, .L7F03363C +/* 068154 7F033624 00001025 */ move $v0, $zero +/* 068158 7F033628 0FC09106 */ jal actor_shuffle_feet +/* 06815C 7F03362C 8FA40018 */ lw $a0, 0x18($sp) +/* 068160 7F033630 10000002 */ b .L7F03363C +/* 068164 7F033634 24020001 */ li $v0, 1 +/* 068168 7F033638 00001025 */ move $v0, $zero +.L7F03363C: +/* 06816C 7F03363C 8FBF0014 */ lw $ra, 0x14($sp) +/* 068170 7F033640 27BD0018 */ addiu $sp, $sp, 0x18 +/* 068174 7F033644 03E00008 */ jr $ra +/* 068178 7F033648 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_able_to_then_fawn_on_shoulder(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_able_to_then_fawn_on_shoulder +/* 06817C 7F03364C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 068180 7F033650 AFBF0014 */ sw $ra, 0x14($sp) +/* 068184 7F033654 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 068188 7F033658 AFA40018 */ sw $a0, 0x18($sp) +/* 06818C 7F03365C 50400006 */ beql $v0, $zero, .L7F033678 +/* 068190 7F033660 00001025 */ move $v0, $zero +/* 068194 7F033664 0FC0912B */ jal actor_fawn_on_shoulder +/* 068198 7F033668 8FA40018 */ lw $a0, 0x18($sp) +/* 06819C 7F03366C 10000002 */ b .L7F033678 +/* 0681A0 7F033670 24020001 */ li $v0, 1 +/* 0681A4 7F033674 00001025 */ move $v0, $zero +.L7F033678: +/* 0681A8 7F033678 8FBF0014 */ lw $ra, 0x14($sp) +/* 0681AC 7F03367C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0681B0 7F033680 03E00008 */ jr $ra +/* 0681B4 7F033684 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_able_to_then_look_flustered(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_able_to_then_look_flustered +/* 0681B8 7F033688 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0681BC 7F03368C AFBF0014 */ sw $ra, 0x14($sp) +/* 0681C0 7F033690 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 0681C4 7F033694 AFA40018 */ sw $a0, 0x18($sp) +/* 0681C8 7F033698 50400006 */ beql $v0, $zero, .L7F0336B4 +/* 0681CC 7F03369C 00001025 */ move $v0, $zero +/* 0681D0 7F0336A0 0FC09152 */ jal actor_look_flustered +/* 0681D4 7F0336A4 8FA40018 */ lw $a0, 0x18($sp) +/* 0681D8 7F0336A8 10000002 */ b .L7F0336B4 +/* 0681DC 7F0336AC 24020001 */ li $v0, 1 +/* 0681E0 7F0336B0 00001025 */ move $v0, $zero +.L7F0336B4: +/* 0681E4 7F0336B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0681E8 7F0336B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0681EC 7F0336BC 03E00008 */ jr $ra +/* 0681F0 7F0336C0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_able_to_then_kneel(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_able_to_then_kneel +/* 0681F4 7F0336C4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0681F8 7F0336C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0681FC 7F0336CC 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 068200 7F0336D0 AFA40018 */ sw $a0, 0x18($sp) +/* 068204 7F0336D4 50400006 */ beql $v0, $zero, .L7F0336F0 +/* 068208 7F0336D8 00001025 */ move $v0, $zero +/* 06820C 7F0336DC 0FC08F9D */ jal actor_kneel +/* 068210 7F0336E0 8FA40018 */ lw $a0, 0x18($sp) +/* 068214 7F0336E4 10000002 */ b .L7F0336F0 +/* 068218 7F0336E8 24020001 */ li $v0, 1 +/* 06821C 7F0336EC 00001025 */ move $v0, $zero +.L7F0336F0: +/* 068220 7F0336F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 068224 7F0336F4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 068228 7F0336F8 03E00008 */ jr $ra +/* 06822C 7F0336FC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_able_to_then_perform_animation(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_able_to_then_perform_animation +/* 068230 7F033700 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 068234 7F033704 AFBF001C */ sw $ra, 0x1c($sp) +/* 068238 7F033708 AFA40020 */ sw $a0, 0x20($sp) +/* 06823C 7F03370C AFA50024 */ sw $a1, 0x24($sp) +/* 068240 7F033710 AFA60028 */ sw $a2, 0x28($sp) +/* 068244 7F033714 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 068248 7F033718 AFA7002C */ sw $a3, 0x2c($sp) +/* 06824C 7F03371C 1040000B */ beqz $v0, .L7F03374C +/* 068250 7F033720 8FA40020 */ lw $a0, 0x20($sp) +/* 068254 7F033724 93AE0033 */ lbu $t6, 0x33($sp) +/* 068258 7F033728 8FAF0034 */ lw $t7, 0x34($sp) +/* 06825C 7F03372C 8FA50024 */ lw $a1, 0x24($sp) +/* 068260 7F033730 8FA60028 */ lw $a2, 0x28($sp) +/* 068264 7F033734 8FA7002C */ lw $a3, 0x2c($sp) +/* 068268 7F033738 AFAE0010 */ sw $t6, 0x10($sp) +/* 06826C 7F03373C 0FC08FF9 */ jal perform_animation_for_actor +/* 068270 7F033740 AFAF0014 */ sw $t7, 0x14($sp) +/* 068274 7F033744 10000002 */ b .L7F033750 +/* 068278 7F033748 24020001 */ li $v0, 1 +.L7F03374C: +/* 06827C 7F03374C 00001025 */ move $v0, $zero +.L7F033750: +/* 068280 7F033750 8FBF001C */ lw $ra, 0x1c($sp) +/* 068284 7F033754 27BD0020 */ addiu $sp, $sp, 0x20 +/* 068288 7F033758 03E00008 */ jr $ra +/* 06828C 7F03375C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void alarm_timer_related(void) { + +} +#else +GLOBAL_ASM( +.text +glabel alarm_timer_related +/* 068290 7F033760 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 068294 7F033764 AFBF0014 */ sw $ra, 0x14($sp) +/* 068298 7F033768 0FC15794 */ jal is_alarm_on +/* 06829C 7F03376C AFA40018 */ sw $a0, 0x18($sp) +/* 0682A0 7F033770 8FBF0014 */ lw $ra, 0x14($sp) +/* 0682A4 7F033774 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0682A8 7F033778 03E00008 */ jr $ra +/* 0682AC 7F03377C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033780(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800520DC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800520E0 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_800520E4 +.word 0x4096cbe4 /*4.712389*/ +.text +glabel sub_GAME_7F033780 +/* 0682B0 7F033780 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0682B4 7F033784 AFBF0014 */ sw $ra, 0x14($sp) +/* 0682B8 7F033788 AFA60020 */ sw $a2, 0x20($sp) +/* 0682BC 7F03378C 8C8E0000 */ lw $t6, ($a0) +/* 0682C0 7F033790 3C188007 */ lui $t8, %hi(ptr_0xxxpresets) +/* 0682C4 7F033794 8F185D18 */ lw $t8, %lo(ptr_0xxxpresets)($t8) +/* 0682C8 7F033798 000E7880 */ sll $t7, $t6, 2 +/* 0682CC 7F03379C 01EE7823 */ subu $t7, $t7, $t6 +/* 0682D0 7F0337A0 000F7880 */ sll $t7, $t7, 2 +/* 0682D4 7F0337A4 01EE7823 */ subu $t7, $t7, $t6 +/* 0682D8 7F0337A8 000F7880 */ sll $t7, $t7, 2 +/* 0682DC 7F0337AC 01F81021 */ addu $v0, $t7, $t8 +/* 0682E0 7F0337B0 C4440000 */ lwc1 $f4, ($v0) +/* 0682E4 7F0337B4 C4A60000 */ lwc1 $f6, ($a1) +/* 0682E8 7F0337B8 C4480008 */ lwc1 $f8, 8($v0) +/* 0682EC 7F0337BC C4AA0008 */ lwc1 $f10, 8($a1) +/* 0682F0 7F0337C0 46062301 */ sub.s $f12, $f4, $f6 +/* 0682F4 7F0337C4 0FC16A8C */ jal atan2f +/* 0682F8 7F0337C8 460A4381 */ sub.s $f14, $f8, $f10 +/* 0682FC 7F0337CC C7AE0020 */ lwc1 $f14, 0x20($sp) +/* 068300 7F0337D0 3C018005 */ lui $at, %hi(D_800520DC) +/* 068304 7F0337D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 068308 7F0337D8 4600703C */ c.lt.s $f14, $f0 +/* 06830C 7F0337DC 46007301 */ sub.s $f12, $f14, $f0 +/* 068310 7F0337E0 45000003 */ bc1f .L7F0337F0 +/* 068314 7F0337E4 46006086 */ mov.s $f2, $f12 +/* 068318 7F0337E8 C43020DC */ lwc1 $f16, %lo(D_800520DC)($at) +/* 06831C 7F0337EC 46106080 */ add.s $f2, $f12, $f16 +.L7F0337F0: +/* 068320 7F0337F0 3C018005 */ lui $at, %hi(D_800520E0) +/* 068324 7F0337F4 C43220E0 */ lwc1 $f18, %lo(D_800520E0)($at) +/* 068328 7F0337F8 3C018005 */ lui $at, %hi(D_800520E4) +/* 06832C 7F0337FC 4612103C */ c.lt.s $f2, $f18 +/* 068330 7F033800 00000000 */ nop +/* 068334 7F033804 45010007 */ bc1t .L7F033824 +/* 068338 7F033808 00000000 */ nop +/* 06833C 7F03380C C42420E4 */ lwc1 $f4, %lo(D_800520E4)($at) +/* 068340 7F033810 00001025 */ move $v0, $zero +/* 068344 7F033814 4602203C */ c.lt.s $f4, $f2 +/* 068348 7F033818 00000000 */ nop +/* 06834C 7F03381C 45000003 */ bc1f .L7F03382C +/* 068350 7F033820 00000000 */ nop +.L7F033824: +/* 068354 7F033824 10000001 */ b .L7F03382C +/* 068358 7F033828 24020001 */ li $v0, 1 +.L7F03382C: +/* 06835C 7F03382C 03E00008 */ jr $ra +/* 068360 7F033830 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033834(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800520E8 +.word 0x40490fdb /*3.1415927*/ +glabel D_800520EC +.word 0x3fc90fdb /*1.5707964*/ +glabel D_800520F0 +.word 0x4096cbe4 /*4.712389*/ +glabel D_800520F4 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F033834 +/* 068364 7F033834 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 068368 7F033838 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 06836C 7F03383C 4486A000 */ mtc1 $a2, $f20 +/* 068370 7F033840 AFBF0034 */ sw $ra, 0x34($sp) +/* 068374 7F033844 AFB40030 */ sw $s4, 0x30($sp) +/* 068378 7F033848 AFB00020 */ sw $s0, 0x20($sp) +/* 06837C 7F03384C 30F000FF */ andi $s0, $a3, 0xff +/* 068380 7F033850 0080A025 */ move $s4, $a0 +/* 068384 7F033854 AFB3002C */ sw $s3, 0x2c($sp) +/* 068388 7F033858 AFB20028 */ sw $s2, 0x28($sp) +/* 06838C 7F03385C AFB10024 */ sw $s1, 0x24($sp) +/* 068390 7F033860 0FC09F35 */ jal sub_GAME_7F027CD4 +/* 068394 7F033864 AFA70044 */ sw $a3, 0x44($sp) +/* 068398 7F033868 10400041 */ beqz $v0, .L7F033970 +/* 06839C 7F03386C 00409825 */ move $s3, $v0 +/* 0683A0 7F033870 24010001 */ li $at, 1 +/* 0683A4 7F033874 1201000A */ beq $s0, $at, .L7F0338A0 +/* 0683A8 7F033878 02602025 */ move $a0, $s3 +/* 0683AC 7F03387C 24010002 */ li $at, 2 +/* 0683B0 7F033880 1201000B */ beq $s0, $at, .L7F0338B0 +/* 0683B4 7F033884 24010004 */ li $at, 4 +/* 0683B8 7F033888 1201000D */ beq $s0, $at, .L7F0338C0 +/* 0683BC 7F03388C 24010008 */ li $at, 8 +/* 0683C0 7F033890 1201000E */ beq $s0, $at, .L7F0338CC +/* 0683C4 7F033894 00000000 */ nop +/* 0683C8 7F033898 1000000C */ b .L7F0338CC +/* 0683CC 7F03389C 00000000 */ nop +.L7F0338A0: +/* 0683D0 7F0338A0 3C018005 */ lui $at, %hi(D_800520E8) +/* 0683D4 7F0338A4 C42420E8 */ lwc1 $f4, %lo(D_800520E8)($at) +/* 0683D8 7F0338A8 10000008 */ b .L7F0338CC +/* 0683DC 7F0338AC 4604A500 */ add.s $f20, $f20, $f4 +.L7F0338B0: +/* 0683E0 7F0338B0 3C018005 */ lui $at, %hi(D_800520EC) +/* 0683E4 7F0338B4 C42620EC */ lwc1 $f6, %lo(D_800520EC)($at) +/* 0683E8 7F0338B8 10000004 */ b .L7F0338CC +/* 0683EC 7F0338BC 4606A500 */ add.s $f20, $f20, $f6 +.L7F0338C0: +/* 0683F0 7F0338C0 3C018005 */ lui $at, %hi(D_800520F0) +/* 0683F4 7F0338C4 C42820F0 */ lwc1 $f8, %lo(D_800520F0)($at) +/* 0683F8 7F0338C8 4608A500 */ add.s $f20, $f20, $f8 +.L7F0338CC: +/* 0683FC 7F0338CC 3C018005 */ lui $at, %hi(D_800520F4) +/* 068400 7F0338D0 C42020F4 */ lwc1 $f0, %lo(D_800520F4)($at) +/* 068404 7F0338D4 4614003E */ c.le.s $f0, $f20 +/* 068408 7F0338D8 00000000 */ nop +/* 06840C 7F0338DC 45020003 */ bc1fl .L7F0338EC +/* 068410 7F0338E0 4406A000 */ mfc1 $a2, $f20 +/* 068414 7F0338E4 4600A501 */ sub.s $f20, $f20, $f0 +/* 068418 7F0338E8 4406A000 */ mfc1 $a2, $f20 +.L7F0338EC: +/* 06841C 7F0338EC 0FC0CDE0 */ jal sub_GAME_7F033780 +/* 068420 7F0338F0 02802825 */ move $a1, $s4 +/* 068424 7F0338F4 50400004 */ beql $v0, $zero, .L7F033908 +/* 068428 7F0338F8 8E6E0004 */ lw $t6, 4($s3) +/* 06842C 7F0338FC 1000001D */ b .L7F033974 +/* 068430 7F033900 8E620000 */ lw $v0, ($s3) +/* 068434 7F033904 8E6E0004 */ lw $t6, 4($s3) +.L7F033908: +/* 068438 7F033908 3C128007 */ lui $s2, %hi(ptr_setup_path_tbl) +/* 06843C 7F03390C 26525D00 */ addiu $s2, %lo(ptr_setup_path_tbl) # addiu $s2, $s2, 0x5d00 +/* 068440 7F033910 8DD10000 */ lw $s1, ($t6) +/* 068444 7F033914 00008025 */ move $s0, $zero +/* 068448 7F033918 06220016 */ bltzl $s1, .L7F033974 +/* 06844C 7F03391C 2402FFFF */ li $v0, -1 +/* 068450 7F033920 8E580000 */ lw $t8, ($s2) +.L7F033924: +/* 068454 7F033924 00117900 */ sll $t7, $s1, 4 +/* 068458 7F033928 4406A000 */ mfc1 $a2, $f20 +/* 06845C 7F03392C 02802825 */ move $a1, $s4 +/* 068460 7F033930 0FC0CDE0 */ jal sub_GAME_7F033780 +/* 068464 7F033934 01F82021 */ addu $a0, $t7, $t8 +/* 068468 7F033938 50400007 */ beql $v0, $zero, .L7F033958 +/* 06846C 7F03393C 8E6A0004 */ lw $t2, 4($s3) +/* 068470 7F033940 8E590000 */ lw $t9, ($s2) +/* 068474 7F033944 00114100 */ sll $t0, $s1, 4 +/* 068478 7F033948 03284821 */ addu $t1, $t9, $t0 +/* 06847C 7F03394C 10000009 */ b .L7F033974 +/* 068480 7F033950 8D220000 */ lw $v0, ($t1) +/* 068484 7F033954 8E6A0004 */ lw $t2, 4($s3) +.L7F033958: +/* 068488 7F033958 26100001 */ addiu $s0, $s0, 1 +/* 06848C 7F03395C 00105880 */ sll $t3, $s0, 2 +/* 068490 7F033960 014B6021 */ addu $t4, $t2, $t3 +/* 068494 7F033964 8D910000 */ lw $s1, ($t4) +/* 068498 7F033968 0623FFEE */ bgezl $s1, .L7F033924 +/* 06849C 7F03396C 8E580000 */ lw $t8, ($s2) +.L7F033970: +/* 0684A0 7F033970 2402FFFF */ li $v0, -1 +.L7F033974: +/* 0684A4 7F033974 8FBF0034 */ lw $ra, 0x34($sp) +/* 0684A8 7F033978 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0684AC 7F03397C 8FB00020 */ lw $s0, 0x20($sp) +/* 0684B0 7F033980 8FB10024 */ lw $s1, 0x24($sp) +/* 0684B4 7F033984 8FB20028 */ lw $s2, 0x28($sp) +/* 0684B8 7F033988 8FB3002C */ lw $s3, 0x2c($sp) +/* 0684BC 7F03398C 8FB40030 */ lw $s4, 0x30($sp) +/* 0684C0 7F033990 03E00008 */ jr $ra +/* 0684C4 7F033994 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + +#ifdef NONMATCHING +void check_2328_preset_set_with_method(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_2328_preset_set_with_method +/* 0684C8 7F033998 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0684CC 7F03399C AFB00014 */ sw $s0, 0x14($sp) +/* 0684D0 7F0339A0 30B000FF */ andi $s0, $a1, 0xff +/* 0684D4 7F0339A4 AFB10018 */ sw $s1, 0x18($sp) +/* 0684D8 7F0339A8 24010010 */ li $at, 16 +/* 0684DC 7F0339AC 00808825 */ move $s1, $a0 +/* 0684E0 7F0339B0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0684E4 7F0339B4 AFA5004C */ sw $a1, 0x4c($sp) +/* 0684E8 7F0339B8 12010004 */ beq $s0, $at, .L7F0339CC +/* 0684EC 7F0339BC 02003025 */ move $a2, $s0 +/* 0684F0 7F0339C0 24010020 */ li $at, 32 +/* 0684F4 7F0339C4 16010026 */ bne $s0, $at, .L7F033A60 +/* 0684F8 7F0339C8 00000000 */ nop +.L7F0339CC: +/* 0684FC 7F0339CC 8E300018 */ lw $s0, 0x18($s1) +/* 068500 7F0339D0 0FC225E6 */ jal get_curplayer_positiondata +/* 068504 7F0339D4 AFA60020 */ sw $a2, 0x20($sp) +/* 068508 7F0339D8 8E050014 */ lw $a1, 0x14($s0) +/* 06850C 7F0339DC AFA20040 */ sw $v0, 0x40($sp) +/* 068510 7F0339E0 0FC09F35 */ jal sub_GAME_7F027CD4 +/* 068514 7F0339E4 26040008 */ addiu $a0, $s0, 8 +/* 068518 7F0339E8 8FA30040 */ lw $v1, 0x40($sp) +/* 06851C 7F0339EC 00408025 */ move $s0, $v0 +/* 068520 7F0339F0 24640008 */ addiu $a0, $v1, 8 +/* 068524 7F0339F4 0FC09F35 */ jal sub_GAME_7F027CD4 +/* 068528 7F0339F8 8C650014 */ lw $a1, 0x14($v1) +/* 06852C 7F0339FC 8FA60020 */ lw $a2, 0x20($sp) +/* 068530 7F033A00 12000024 */ beqz $s0, .L7F033A94 +/* 068534 7F033A04 00402825 */ move $a1, $v0 +/* 068538 7F033A08 10400022 */ beqz $v0, .L7F033A94 +/* 06853C 7F033A0C 24010010 */ li $at, 16 +/* 068540 7F033A10 14C1000B */ bne $a2, $at, .L7F033A40 +/* 068544 7F033A14 02002025 */ move $a0, $s0 +/* 068548 7F033A18 27A6002C */ addiu $a2, $sp, 0x2c +/* 06854C 7F033A1C 0FC23D3C */ jal sub_GAME_7F08F4F0 +/* 068550 7F033A20 24070003 */ li $a3, 3 +/* 068554 7F033A24 28410003 */ slti $at, $v0, 3 +/* 068558 7F033A28 1420001A */ bnez $at, .L7F033A94 +/* 06855C 7F033A2C 8FAE0030 */ lw $t6, 0x30($sp) +/* 068560 7F033A30 8DCF0000 */ lw $t7, ($t6) +/* 068564 7F033A34 24020001 */ li $v0, 1 +/* 068568 7F033A38 10000017 */ b .L7F033A98 +/* 06856C 7F033A3C A62F0114 */ sh $t7, 0x114($s1) +.L7F033A40: +/* 068570 7F033A40 0FC23EE4 */ jal sub_GAME_7F08FB90 +/* 068574 7F033A44 02002025 */ move $a0, $s0 +/* 068578 7F033A48 50400013 */ beql $v0, $zero, .L7F033A98 +/* 06857C 7F033A4C 00001025 */ move $v0, $zero +/* 068580 7F033A50 8C580000 */ lw $t8, ($v0) +/* 068584 7F033A54 24020001 */ li $v0, 1 +/* 068588 7F033A58 1000000F */ b .L7F033A98 +/* 06858C 7F033A5C A6380114 */ sh $t8, 0x114($s1) +.L7F033A60: +/* 068590 7F033A60 0FC1B320 */ jal getsubroty +/* 068594 7F033A64 8E24001C */ lw $a0, 0x1c($s1) +/* 068598 7F033A68 8E220018 */ lw $v0, 0x18($s1) +/* 06859C 7F033A6C 44060000 */ mfc1 $a2, $f0 +/* 0685A0 7F033A70 320700FF */ andi $a3, $s0, 0xff +/* 0685A4 7F033A74 24440008 */ addiu $a0, $v0, 8 +/* 0685A8 7F033A78 0FC0CE0D */ jal sub_GAME_7F033834 +/* 0685AC 7F033A7C 8C450014 */ lw $a1, 0x14($v0) +/* 0685B0 7F033A80 04420005 */ bltzl $v0, .L7F033A98 +/* 0685B4 7F033A84 00001025 */ move $v0, $zero +/* 0685B8 7F033A88 A6220114 */ sh $v0, 0x114($s1) +/* 0685BC 7F033A8C 10000002 */ b .L7F033A98 +/* 0685C0 7F033A90 24020001 */ li $v0, 1 +.L7F033A94: +/* 0685C4 7F033A94 00001025 */ move $v0, $zero +.L7F033A98: +/* 0685C8 7F033A98 8FBF001C */ lw $ra, 0x1c($sp) +/* 0685CC 7F033A9C 8FB00014 */ lw $s0, 0x14($sp) +/* 0685D0 7F033AA0 8FB10018 */ lw $s1, 0x18($sp) +/* 0685D4 7F033AA4 03E00008 */ jr $ra +/* 0685D8 7F033AA8 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033AAC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033AAC +/* 0685DC 7F033AAC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0685E0 7F033AB0 30A700FF */ andi $a3, $a1, 0xff +/* 0685E4 7F033AB4 24010010 */ li $at, 16 +/* 0685E8 7F033AB8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0685EC 7F033ABC AFA40020 */ sw $a0, 0x20($sp) +/* 0685F0 7F033AC0 AFA50024 */ sw $a1, 0x24($sp) +/* 0685F4 7F033AC4 10E10004 */ beq $a3, $at, .L7F033AD8 +/* 0685F8 7F033AC8 00E01025 */ move $v0, $a3 +/* 0685FC 7F033ACC 24010020 */ li $at, 32 +/* 068600 7F033AD0 14410006 */ bne $v0, $at, .L7F033AEC +/* 068604 7F033AD4 00000000 */ nop +.L7F033AD8: +/* 068608 7F033AD8 8FA40020 */ lw $a0, 0x20($sp) +/* 06860C 7F033ADC 0FC0CE66 */ jal check_2328_preset_set_with_method +/* 068610 7F033AE0 30E500FF */ andi $a1, $a3, 0xff +/* 068614 7F033AE4 10000011 */ b .L7F033B2C +/* 068618 7F033AE8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F033AEC: +/* 06861C 7F033AEC 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 068620 7F033AF0 A3A70027 */ sb $a3, 0x27($sp) +/* 068624 7F033AF4 0FC225E6 */ jal get_curplayer_positiondata +/* 068628 7F033AF8 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 06862C 7F033AFC 93A70027 */ lbu $a3, 0x27($sp) +/* 068630 7F033B00 24440008 */ addiu $a0, $v0, 8 +/* 068634 7F033B04 8C450014 */ lw $a1, 0x14($v0) +/* 068638 7F033B08 0FC0CE0D */ jal sub_GAME_7F033834 +/* 06863C 7F033B0C 8FA6001C */ lw $a2, 0x1c($sp) +/* 068640 7F033B10 04400004 */ bltz $v0, .L7F033B24 +/* 068644 7F033B14 8FAE0020 */ lw $t6, 0x20($sp) +/* 068648 7F033B18 A5C20114 */ sh $v0, 0x114($t6) +/* 06864C 7F033B1C 10000002 */ b .L7F033B28 +/* 068650 7F033B20 24020001 */ li $v0, 1 +.L7F033B24: +/* 068654 7F033B24 00001025 */ move $v0, $zero +.L7F033B28: +/* 068658 7F033B28 8FBF0014 */ lw $ra, 0x14($sp) +.L7F033B2C: +/* 06865C 7F033B2C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 068660 7F033B30 03E00008 */ jr $ra +/* 068664 7F033B34 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033B38(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033B38 +/* 068668 7F033B38 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 06866C 7F033B3C 44856000 */ mtc1 $a1, $f12 +/* 068670 7F033B40 AFBF0064 */ sw $ra, 0x64($sp) +/* 068674 7F033B44 AFB5005C */ sw $s5, 0x5c($sp) +/* 068678 7F033B48 0080A825 */ move $s5, $a0 +/* 06867C 7F033B4C AFB60060 */ sw $s6, 0x60($sp) +/* 068680 7F033B50 AFB40058 */ sw $s4, 0x58($sp) +/* 068684 7F033B54 AFB30054 */ sw $s3, 0x54($sp) +/* 068688 7F033B58 AFB20050 */ sw $s2, 0x50($sp) +/* 06868C 7F033B5C AFB1004C */ sw $s1, 0x4c($sp) +/* 068690 7F033B60 AFB00048 */ sw $s0, 0x48($sp) +/* 068694 7F033B64 F7BE0040 */ sdc1 $f30, 0x40($sp) +/* 068698 7F033B68 F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 06869C 7F033B6C F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0686A0 7F033B70 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0686A4 7F033B74 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0686A8 7F033B78 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0686AC 7F033B7C 0FC07D4C */ jal get_numguards +/* 0686B0 7F033B80 E7AC006C */ swc1 $f12, 0x6c($sp) +/* 0686B4 7F033B84 8EA30018 */ lw $v1, 0x18($s5) +/* 0686B8 7F033B88 C7AC006C */ lwc1 $f12, 0x6c($sp) +/* 0686BC 7F033B8C 0040A025 */ move $s4, $v0 +/* 0686C0 7F033B90 C4600008 */ lwc1 $f0, 8($v1) +/* 0686C4 7F033B94 C462000C */ lwc1 $f2, 0xc($v1) +/* 0686C8 7F033B98 C46E0010 */ lwc1 $f14, 0x10($v1) +/* 0686CC 7F033B9C 8C6E0014 */ lw $t6, 0x14($v1) +/* 0686D0 7F033BA0 00008825 */ move $s1, $zero +/* 0686D4 7F033BA4 460C0501 */ sub.s $f20, $f0, $f12 +/* 0686D8 7F033BA8 91D30003 */ lbu $s3, 3($t6) +/* 0686DC 7F033BAC 460C0580 */ add.s $f22, $f0, $f12 +/* 0686E0 7F033BB0 460C1601 */ sub.s $f24, $f2, $f12 +/* 0686E4 7F033BB4 460C1680 */ add.s $f26, $f2, $f12 +/* 0686E8 7F033BB8 460C7701 */ sub.s $f28, $f14, $f12 +/* 0686EC 7F033BBC 1840003C */ blez $v0, .L7F033CB0 +/* 0686F0 7F033BC0 460C7780 */ add.s $f30, $f14, $f12 +/* 0686F4 7F033BC4 3C168003 */ lui $s6, %hi(ptr_guard_data) +/* 0686F8 7F033BC8 26D6CC64 */ addiu $s6, %lo(ptr_guard_data) # addiu $s6, $s6, -0x339c +/* 0686FC 7F033BCC 00009025 */ move $s2, $zero +.L7F033BD0: +/* 068700 7F033BD0 8ECF0000 */ lw $t7, ($s6) +/* 068704 7F033BD4 024F8021 */ addu $s0, $s2, $t7 +/* 068708 7F033BD8 52150032 */ beql $s0, $s5, .L7F033CA4 +/* 06870C 7F033BDC 26310001 */ addiu $s1, $s1, 1 +/* 068710 7F033BE0 8E18001C */ lw $t8, 0x1c($s0) +/* 068714 7F033BE4 5300002F */ beql $t8, $zero, .L7F033CA4 +/* 068718 7F033BE8 26310001 */ addiu $s1, $s1, 1 +/* 06871C 7F033BEC 0FC0A8A9 */ jal true_if_actor_dying_fading +/* 068720 7F033BF0 02002025 */ move $a0, $s0 +/* 068724 7F033BF4 5440002B */ bnezl $v0, .L7F033CA4 +/* 068728 7F033BF8 26310001 */ addiu $s1, $s1, 1 +/* 06872C 7F033BFC 8E030018 */ lw $v1, 0x18($s0) +/* 068730 7F033C00 24620008 */ addiu $v0, $v1, 8 +/* 068734 7F033C04 C4400000 */ lwc1 $f0, ($v0) +/* 068738 7F033C08 4600A03E */ c.le.s $f20, $f0 +/* 06873C 7F033C0C 00000000 */ nop +/* 068740 7F033C10 45020024 */ bc1fl .L7F033CA4 +/* 068744 7F033C14 26310001 */ addiu $s1, $s1, 1 +/* 068748 7F033C18 4616003E */ c.le.s $f0, $f22 +/* 06874C 7F033C1C 00000000 */ nop +/* 068750 7F033C20 45020020 */ bc1fl .L7F033CA4 +/* 068754 7F033C24 26310001 */ addiu $s1, $s1, 1 +/* 068758 7F033C28 C4400004 */ lwc1 $f0, 4($v0) +/* 06875C 7F033C2C 4600C03E */ c.le.s $f24, $f0 +/* 068760 7F033C30 00000000 */ nop +/* 068764 7F033C34 4502001B */ bc1fl .L7F033CA4 +/* 068768 7F033C38 26310001 */ addiu $s1, $s1, 1 +/* 06876C 7F033C3C 461A003E */ c.le.s $f0, $f26 +/* 068770 7F033C40 00000000 */ nop +/* 068774 7F033C44 45020017 */ bc1fl .L7F033CA4 +/* 068778 7F033C48 26310001 */ addiu $s1, $s1, 1 +/* 06877C 7F033C4C C4400008 */ lwc1 $f0, 8($v0) +/* 068780 7F033C50 4600E03E */ c.le.s $f28, $f0 +/* 068784 7F033C54 00000000 */ nop +/* 068788 7F033C58 45020012 */ bc1fl .L7F033CA4 +/* 06878C 7F033C5C 26310001 */ addiu $s1, $s1, 1 +/* 068790 7F033C60 461E003E */ c.le.s $f0, $f30 +/* 068794 7F033C64 00000000 */ nop +/* 068798 7F033C68 4502000E */ bc1fl .L7F033CA4 +/* 06879C 7F033C6C 26310001 */ addiu $s1, $s1, 1 +/* 0687A0 7F033C70 8C790014 */ lw $t9, 0x14($v1) +/* 0687A4 7F033C74 93250003 */ lbu $a1, 3($t9) +/* 0687A8 7F033C78 52650006 */ beql $s3, $a1, .L7F033C94 +/* 0687AC 7F033C7C 86080000 */ lh $t0, ($s0) +/* 0687B0 7F033C80 0FC2E3F4 */ jal sub_GAME_7F0B8FD0 +/* 0687B4 7F033C84 02602025 */ move $a0, $s3 +/* 0687B8 7F033C88 50400006 */ beql $v0, $zero, .L7F033CA4 +/* 0687BC 7F033C8C 26310001 */ addiu $s1, $s1, 1 +/* 0687C0 7F033C90 86080000 */ lh $t0, ($s0) +.L7F033C94: +/* 0687C4 7F033C94 24020001 */ li $v0, 1 +/* 0687C8 7F033C98 10000006 */ b .L7F033CB4 +/* 0687CC 7F033C9C A6A80116 */ sh $t0, 0x116($s5) +/* 0687D0 7F033CA0 26310001 */ addiu $s1, $s1, 1 +.L7F033CA4: +/* 0687D4 7F033CA4 0234082A */ slt $at, $s1, $s4 +/* 0687D8 7F033CA8 1420FFC9 */ bnez $at, .L7F033BD0 +/* 0687DC 7F033CAC 265201DC */ addiu $s2, $s2, 0x1dc +.L7F033CB0: +/* 0687E0 7F033CB0 00001025 */ move $v0, $zero +.L7F033CB4: +/* 0687E4 7F033CB4 8FBF0064 */ lw $ra, 0x64($sp) +/* 0687E8 7F033CB8 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0687EC 7F033CBC D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0687F0 7F033CC0 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0687F4 7F033CC4 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0687F8 7F033CC8 D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 0687FC 7F033CCC D7BE0040 */ ldc1 $f30, 0x40($sp) +/* 068800 7F033CD0 8FB00048 */ lw $s0, 0x48($sp) +/* 068804 7F033CD4 8FB1004C */ lw $s1, 0x4c($sp) +/* 068808 7F033CD8 8FB20050 */ lw $s2, 0x50($sp) +/* 06880C 7F033CDC 8FB30054 */ lw $s3, 0x54($sp) +/* 068810 7F033CE0 8FB40058 */ lw $s4, 0x58($sp) +/* 068814 7F033CE4 8FB5005C */ lw $s5, 0x5c($sp) +/* 068818 7F033CE8 8FB60060 */ lw $s6, 0x60($sp) +/* 06881C 7F033CEC 03E00008 */ jr $ra +/* 068820 7F033CF0 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033CF4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033CF4 +/* 068824 7F033CF4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 068828 7F033CF8 AFBF0014 */ sw $ra, 0x14($sp) +/* 06882C 7F033CFC 0FC0CBEB */ jal sub_GAME_7F032FAC +/* 068830 7F033D00 AFA40018 */ sw $a0, 0x18($sp) +/* 068834 7F033D04 8FAE0018 */ lw $t6, 0x18($sp) +/* 068838 7F033D08 A5C20116 */ sh $v0, 0x116($t6) +/* 06883C 7F033D0C 8FBF0014 */ lw $ra, 0x14($sp) +/* 068840 7F033D10 27BD0018 */ addiu $sp, $sp, 0x18 +/* 068844 7F033D14 03E00008 */ jr $ra +/* 068848 7F033D18 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033D1C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033D1C +/* 06884C 7F033D1C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 068850 7F033D20 AFBF0014 */ sw $ra, 0x14($sp) +/* 068854 7F033D24 AFA40020 */ sw $a0, 0x20($sp) +/* 068858 7F033D28 0FC0CC10 */ jal get_handle_for_guard_id +/* 06885C 7F033D2C AFA60028 */ sw $a2, 0x28($sp) +/* 068860 7F033D30 10400006 */ beqz $v0, .L7F033D4C +/* 068864 7F033D34 8FA40020 */ lw $a0, 0x20($sp) +/* 068868 7F033D38 8FA50028 */ lw $a1, 0x28($sp) +/* 06886C 7F033D3C 0FC0CBEB */ jal sub_GAME_7F032FAC +/* 068870 7F033D40 AFA2001C */ sw $v0, 0x1c($sp) +/* 068874 7F033D44 8FA3001C */ lw $v1, 0x1c($sp) +/* 068878 7F033D48 A4620116 */ sh $v0, 0x116($v1) +.L7F033D4C: +/* 06887C 7F033D4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 068880 7F033D50 27BD0020 */ addiu $sp, $sp, 0x20 +/* 068884 7F033D54 03E00008 */ jr $ra +/* 068888 7F033D58 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033D5C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033D5C +/* 06888C 7F033D5C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 068890 7F033D60 AFBF0014 */ sw $ra, 0x14($sp) +/* 068894 7F033D64 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 068898 7F033D68 AFA40018 */ sw $a0, 0x18($sp) +/* 06889C 7F033D6C 8FAE0018 */ lw $t6, 0x18($sp) +/* 0688A0 7F033D70 A5C20114 */ sh $v0, 0x114($t6) +/* 0688A4 7F033D74 8FBF0014 */ lw $ra, 0x14($sp) +/* 0688A8 7F033D78 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0688AC 7F033D7C 03E00008 */ jr $ra +/* 0688B0 7F033D80 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033D84(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033D84 +/* 0688B4 7F033D84 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0688B8 7F033D88 AFBF0014 */ sw $ra, 0x14($sp) +/* 0688BC 7F033D8C AFA40020 */ sw $a0, 0x20($sp) +/* 0688C0 7F033D90 0FC0CC10 */ jal get_handle_for_guard_id +/* 0688C4 7F033D94 AFA60028 */ sw $a2, 0x28($sp) +/* 0688C8 7F033D98 10400006 */ beqz $v0, .L7F033DB4 +/* 0688CC 7F033D9C 8FA40020 */ lw $a0, 0x20($sp) +/* 0688D0 7F033DA0 8FA50028 */ lw $a1, 0x28($sp) +/* 0688D4 7F033DA4 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 0688D8 7F033DA8 AFA2001C */ sw $v0, 0x1c($sp) +/* 0688DC 7F033DAC 8FA3001C */ lw $v1, 0x1c($sp) +/* 0688E0 7F033DB0 A4620114 */ sh $v0, 0x114($v1) +.L7F033DB4: +/* 0688E4 7F033DB4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0688E8 7F033DB8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0688EC 7F033DBC 03E00008 */ jr $ra +/* 0688F0 7F033DC0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033DC4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033DC4 +/* 0688F4 7F033DC4 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0688F8 7F033DC8 AFBF002C */ sw $ra, 0x2c($sp) +/* 0688FC 7F033DCC AFB10028 */ sw $s1, 0x28($sp) +/* 068900 7F033DD0 AFB00024 */ sw $s0, 0x24($sp) +/* 068904 7F033DD4 0FC225E6 */ jal get_curplayer_positiondata +/* 068908 7F033DD8 AFA40060 */ sw $a0, 0x60($sp) +/* 06890C 7F033DDC 8FAE0060 */ lw $t6, 0x60($sp) +/* 068910 7F033DE0 00408825 */ move $s1, $v0 +/* 068914 7F033DE4 8DD00018 */ lw $s0, 0x18($t6) +/* 068918 7F033DE8 8E0F0014 */ lw $t7, 0x14($s0) +/* 06891C 7F033DEC 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 068920 7F033DF0 AFAF0054 */ sw $t7, 0x54($sp) +/* 068924 7F033DF4 C6240010 */ lwc1 $f4, 0x10($s1) +/* 068928 7F033DF8 8E050008 */ lw $a1, 8($s0) +/* 06892C 7F033DFC 8E060010 */ lw $a2, 0x10($s0) +/* 068930 7F033E00 8E270008 */ lw $a3, 8($s1) +/* 068934 7F033E04 27A40054 */ addiu $a0, $sp, 0x54 +/* 068938 7F033E08 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 06893C 7F033E0C E7A40010 */ swc1 $f4, 0x10($sp) +/* 068940 7F033E10 10400003 */ beqz $v0, .L7F033E20 +/* 068944 7F033E14 27A40048 */ addiu $a0, $sp, 0x48 +/* 068948 7F033E18 1000001F */ b .L7F033E98 +/* 06894C 7F033E1C 00001025 */ move $v0, $zero +.L7F033E20: +/* 068950 7F033E20 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 068954 7F033E24 27A5003C */ addiu $a1, $sp, 0x3c +/* 068958 7F033E28 8E060014 */ lw $a2, 0x14($s0) +/* 06895C 7F033E2C 26230008 */ addiu $v1, $s1, 8 +/* 068960 7F033E30 AFA30010 */ sw $v1, 0x10($sp) +/* 068964 7F033E34 8E380014 */ lw $t8, 0x14($s1) +/* 068968 7F033E38 26050008 */ addiu $a1, $s0, 8 +/* 06896C 7F033E3C AFA50038 */ sw $a1, 0x38($sp) +/* 068970 7F033E40 AFA30034 */ sw $v1, 0x34($sp) +/* 068974 7F033E44 AFA00018 */ sw $zero, 0x18($sp) +/* 068978 7F033E48 8FA40060 */ lw $a0, 0x60($sp) +/* 06897C 7F033E4C 27A70048 */ addiu $a3, $sp, 0x48 +/* 068980 7F033E50 0FC0C12B */ jal sub_GAME_7F0304AC +/* 068984 7F033E54 AFB80014 */ sw $t8, 0x14($sp) +/* 068988 7F033E58 8FA30034 */ lw $v1, 0x34($sp) +/* 06898C 7F033E5C 1440000B */ bnez $v0, .L7F033E8C +/* 068990 7F033E60 8FA50038 */ lw $a1, 0x38($sp) +/* 068994 7F033E64 8E060014 */ lw $a2, 0x14($s0) +/* 068998 7F033E68 AFA30010 */ sw $v1, 0x10($sp) +/* 06899C 7F033E6C 8E390014 */ lw $t9, 0x14($s1) +/* 0689A0 7F033E70 AFA00018 */ sw $zero, 0x18($sp) +/* 0689A4 7F033E74 8FA40060 */ lw $a0, 0x60($sp) +/* 0689A8 7F033E78 27A7003C */ addiu $a3, $sp, 0x3c +/* 0689AC 7F033E7C 0FC0C12B */ jal sub_GAME_7F0304AC +/* 0689B0 7F033E80 AFB90014 */ sw $t9, 0x14($sp) +/* 0689B4 7F033E84 50400004 */ beql $v0, $zero, .L7F033E98 +/* 0689B8 7F033E88 00001025 */ move $v0, $zero +.L7F033E8C: +/* 0689BC 7F033E8C 10000002 */ b .L7F033E98 +/* 0689C0 7F033E90 24020001 */ li $v0, 1 +/* 0689C4 7F033E94 00001025 */ move $v0, $zero +.L7F033E98: +/* 0689C8 7F033E98 8FBF002C */ lw $ra, 0x2c($sp) +/* 0689CC 7F033E9C 8FB00024 */ lw $s0, 0x24($sp) +/* 0689D0 7F033EA0 8FB10028 */ lw $s1, 0x28($sp) +/* 0689D4 7F033EA4 03E00008 */ jr $ra +/* 0689D8 7F033EA8 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033EAC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F033EAC +/* 0689DC 7F033EAC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0689E0 7F033EB0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0689E4 7F033EB4 AFA40030 */ sw $a0, 0x30($sp) +/* 0689E8 7F033EB8 240E0001 */ li $t6, 1 +/* 0689EC 7F033EBC AFA50034 */ sw $a1, 0x34($sp) +/* 0689F0 7F033EC0 AFAE002C */ sw $t6, 0x2c($sp) +/* 0689F4 7F033EC4 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 0689F8 7F033EC8 00A02025 */ move $a0, $a1 +/* 0689FC 7F033ECC 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 068A00 7F033ED0 00402025 */ move $a0, $v0 +/* 068A04 7F033ED4 10400017 */ beqz $v0, .L7F033F34 +/* 068A08 7F033ED8 8FA40030 */ lw $a0, 0x30($sp) +/* 068A0C 7F033EDC 0FC2ECB2 */ jal sub_GAME_7F0BB2C8 +/* 068A10 7F033EE0 24050000 */ li $a1, 0 +/* 068A14 7F033EE4 50400014 */ beql $v0, $zero, .L7F033F38 +/* 068A18 7F033EE8 8FBF0014 */ lw $ra, 0x14($sp) +/* 068A1C 7F033EEC 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 068A20 7F033EF0 8FA40034 */ lw $a0, 0x34($sp) +/* 068A24 7F033EF4 00402025 */ move $a0, $v0 +/* 068A28 7F033EF8 0FC2CF03 */ jal sub_GAME_7F0B3C0C +/* 068A2C 7F033EFC 27A5001C */ addiu $a1, $sp, 0x1c +/* 068A30 7F033F00 10400008 */ beqz $v0, .L7F033F24 +/* 068A34 7F033F04 8FA40030 */ lw $a0, 0x30($sp) +/* 068A38 7F033F08 8FA40030 */ lw $a0, 0x30($sp) +/* 068A3C 7F033F0C 3C054348 */ lui $a1, 0x4348 +/* 068A40 7F033F10 0FC1E2FD */ jal sub_GAME_7F078BF4 +/* 068A44 7F033F14 27A6001C */ addiu $a2, $sp, 0x1c +/* 068A48 7F033F18 2C4F0001 */ sltiu $t7, $v0, 1 +/* 068A4C 7F033F1C 10000005 */ b .L7F033F34 +/* 068A50 7F033F20 AFAF002C */ sw $t7, 0x2c($sp) +.L7F033F24: +/* 068A54 7F033F24 0FC1E296 */ jal sub_GAME_7F078A58 +/* 068A58 7F033F28 3C054348 */ lui $a1, 0x4348 +/* 068A5C 7F033F2C 2C580001 */ sltiu $t8, $v0, 1 +/* 068A60 7F033F30 AFB8002C */ sw $t8, 0x2c($sp) +.L7F033F34: +/* 068A64 7F033F34 8FBF0014 */ lw $ra, 0x14($sp) +.L7F033F38: +/* 068A68 7F033F38 8FA2002C */ lw $v0, 0x2c($sp) +/* 068A6C 7F033F3C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 068A70 7F033F40 03E00008 */ jr $ra +/* 068A74 7F033F44 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F033F48(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800520F8 +.word 0x3f490fdb /*0.78539819*/ +glabel D_800520FC +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F033F48 +/* 068A78 7F033F48 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 068A7C 7F033F4C AFBF007C */ sw $ra, 0x7c($sp) +/* 068A80 7F033F50 AFB60078 */ sw $s6, 0x78($sp) +/* 068A84 7F033F54 AFB50074 */ sw $s5, 0x74($sp) +/* 068A88 7F033F58 AFB40070 */ sw $s4, 0x70($sp) +/* 068A8C 7F033F5C AFB3006C */ sw $s3, 0x6c($sp) +/* 068A90 7F033F60 AFB20068 */ sw $s2, 0x68($sp) +/* 068A94 7F033F64 AFB10064 */ sw $s1, 0x64($sp) +/* 068A98 7F033F68 AFB00060 */ sw $s0, 0x60($sp) +/* 068A9C 7F033F6C F7BE0058 */ sdc1 $f30, 0x58($sp) +/* 068AA0 7F033F70 F7BC0050 */ sdc1 $f28, 0x50($sp) +/* 068AA4 7F033F74 F7BA0048 */ sdc1 $f26, 0x48($sp) +/* 068AA8 7F033F78 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 068AAC 7F033F7C F7B60038 */ sdc1 $f22, 0x38($sp) +/* 068AB0 7F033F80 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 068AB4 7F033F84 8CAE0000 */ lw $t6, ($a1) +/* 068AB8 7F033F88 00808025 */ move $s0, $a0 +/* 068ABC 7F033F8C 4486A000 */ mtc1 $a2, $f20 +/* 068AC0 7F033F90 AFAE0088 */ sw $t6, 0x88($sp) +/* 068AC4 7F033F94 00A0A825 */ move $s5, $a1 +/* 068AC8 7F033F98 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 068ACC 7F033F9C 4481C000 */ mtc1 $at, $f24 +/* 068AD0 7F033FA0 4480B000 */ mtc1 $zero, $f22 +/* 068AD4 7F033FA4 8E050000 */ lw $a1, ($s0) +/* 068AD8 7F033FA8 8E060008 */ lw $a2, 8($s0) +/* 068ADC 7F033FAC 27B20088 */ addiu $s2, $sp, 0x88 +/* 068AE0 7F033FB0 00E0B025 */ move $s6, $a3 +/* 068AE4 7F033FB4 240F001F */ li $t7, 31 +/* 068AE8 7F033FB8 AFAF0010 */ sw $t7, 0x10($sp) +/* 068AEC 7F033FBC 3C0741A0 */ lui $a3, 0x41a0 +/* 068AF0 7F033FC0 02402025 */ move $a0, $s2 +/* 068AF4 7F033FC4 E7B80018 */ swc1 $f24, 0x18($sp) +/* 068AF8 7F033FC8 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 068AFC 7F033FCC E7B60014 */ swc1 $f22, 0x14($sp) +/* 068B00 7F033FD0 04410009 */ bgez $v0, .L7F033FF8 +/* 068B04 7F033FD4 00000000 */ nop +/* 068B08 7F033FD8 16C00005 */ bnez $s6, .L7F033FF0 +/* 068B0C 7F033FDC 02002025 */ move $a0, $s0 +/* 068B10 7F033FE0 0FC0CFAB */ jal sub_GAME_7F033EAC +/* 068B14 7F033FE4 8EA50000 */ lw $a1, ($s5) +/* 068B18 7F033FE8 10400003 */ beqz $v0, .L7F033FF8 +/* 068B1C 7F033FEC 00000000 */ nop +.L7F033FF0: +/* 068B20 7F033FF0 1000004A */ b .L7F03411C +/* 068B24 7F033FF4 24020001 */ li $v0, 1 +.L7F033FF8: +/* 068B28 7F033FF8 3C018005 */ lui $at, %hi(D_800520F8) +/* 068B2C 7F033FFC C43E20F8 */ lwc1 $f30, %lo(D_800520F8)($at) +/* 068B30 7F034000 3C018005 */ lui $at, %hi(D_800520FC) +/* 068B34 7F034004 C43C20FC */ lwc1 $f28, %lo(D_800520FC)($at) +/* 068B38 7F034008 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 068B3C 7F03400C 4481D000 */ mtc1 $at, $f26 +/* 068B40 7F034010 00008825 */ move $s1, $zero +/* 068B44 7F034014 24140008 */ li $s4, 8 +/* 068B48 7F034018 27B3008C */ addiu $s3, $sp, 0x8c +.L7F03401C: +/* 068B4C 7F03401C 0FC15FAB */ jal sinf +/* 068B50 7F034020 4600A306 */ mov.s $f12, $f20 +/* 068B54 7F034024 461A0102 */ mul.s $f4, $f0, $f26 +/* 068B58 7F034028 C6060000 */ lwc1 $f6, ($s0) +/* 068B5C 7F03402C 4600A306 */ mov.s $f12, $f20 +/* 068B60 7F034030 46062200 */ add.s $f8, $f4, $f6 +/* 068B64 7F034034 E7A8008C */ swc1 $f8, 0x8c($sp) +/* 068B68 7F034038 C60A0004 */ lwc1 $f10, 4($s0) +/* 068B6C 7F03403C 0FC15FA8 */ jal cosf +/* 068B70 7F034040 E7AA0090 */ swc1 $f10, 0x90($sp) +/* 068B74 7F034044 461A0402 */ mul.s $f16, $f0, $f26 +/* 068B78 7F034048 C6120008 */ lwc1 $f18, 8($s0) +/* 068B7C 7F03404C 24190013 */ li $t9, 19 +/* 068B80 7F034050 02402025 */ move $a0, $s2 +/* 068B84 7F034054 8FA7008C */ lw $a3, 0x8c($sp) +/* 068B88 7F034058 46128100 */ add.s $f4, $f16, $f18 +/* 068B8C 7F03405C E7A40094 */ swc1 $f4, 0x94($sp) +/* 068B90 7F034060 8EB80000 */ lw $t8, ($s5) +/* 068B94 7F034064 AFB80088 */ sw $t8, 0x88($sp) +/* 068B98 7F034068 8E060008 */ lw $a2, 8($s0) +/* 068B9C 7F03406C 8E050000 */ lw $a1, ($s0) +/* 068BA0 7F034070 E7B80024 */ swc1 $f24, 0x24($sp) +/* 068BA4 7F034074 E7B60020 */ swc1 $f22, 0x20($sp) +/* 068BA8 7F034078 E7B8001C */ swc1 $f24, 0x1c($sp) +/* 068BAC 7F03407C E7B60018 */ swc1 $f22, 0x18($sp) +/* 068BB0 7F034080 AFB90014 */ sw $t9, 0x14($sp) +/* 068BB4 7F034084 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 068BB8 7F034088 E7A40010 */ swc1 $f4, 0x10($sp) +/* 068BBC 7F03408C 10400019 */ beqz $v0, .L7F0340F4 +/* 068BC0 7F034090 02402025 */ move $a0, $s2 +/* 068BC4 7F034094 2408001F */ li $t0, 31 +/* 068BC8 7F034098 AFA80010 */ sw $t0, 0x10($sp) +/* 068BCC 7F03409C 8FA5008C */ lw $a1, 0x8c($sp) +/* 068BD0 7F0340A0 8FA60094 */ lw $a2, 0x94($sp) +/* 068BD4 7F0340A4 3C0741A0 */ lui $a3, 0x41a0 +/* 068BD8 7F0340A8 E7B60014 */ swc1 $f22, 0x14($sp) +/* 068BDC 7F0340AC 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 068BE0 7F0340B0 E7B80018 */ swc1 $f24, 0x18($sp) +/* 068BE4 7F0340B4 0441000F */ bgez $v0, .L7F0340F4 +/* 068BE8 7F0340B8 02602025 */ move $a0, $s3 +/* 068BEC 7F0340BC 56C00006 */ bnezl $s6, .L7F0340D8 +/* 068BF0 7F0340C0 8FA90088 */ lw $t1, 0x88($sp) +/* 068BF4 7F0340C4 0FC0CFAB */ jal sub_GAME_7F033EAC +/* 068BF8 7F0340C8 8FA50088 */ lw $a1, 0x88($sp) +/* 068BFC 7F0340CC 5040000A */ beql $v0, $zero, .L7F0340F8 +/* 068C00 7F0340D0 461EA500 */ add.s $f20, $f20, $f30 +/* 068C04 7F0340D4 8FA90088 */ lw $t1, 0x88($sp) +.L7F0340D8: +/* 068C08 7F0340D8 24020001 */ li $v0, 1 +/* 068C0C 7F0340DC AEA90000 */ sw $t1, ($s5) +/* 068C10 7F0340E0 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 068C14 7F0340E4 E6060000 */ swc1 $f6, ($s0) +/* 068C18 7F0340E8 C7A80094 */ lwc1 $f8, 0x94($sp) +/* 068C1C 7F0340EC 1000000B */ b .L7F03411C +/* 068C20 7F0340F0 E6080008 */ swc1 $f8, 8($s0) +.L7F0340F4: +/* 068C24 7F0340F4 461EA500 */ add.s $f20, $f20, $f30 +.L7F0340F8: +/* 068C28 7F0340F8 26310001 */ addiu $s1, $s1, 1 +/* 068C2C 7F0340FC 4614E03E */ c.le.s $f28, $f20 +/* 068C30 7F034100 00000000 */ nop +/* 068C34 7F034104 45000002 */ bc1f .L7F034110 +/* 068C38 7F034108 00000000 */ nop +/* 068C3C 7F03410C 461CA501 */ sub.s $f20, $f20, $f28 +.L7F034110: +/* 068C40 7F034110 1634FFC2 */ bne $s1, $s4, .L7F03401C +/* 068C44 7F034114 00000000 */ nop +/* 068C48 7F034118 00001025 */ move $v0, $zero +.L7F03411C: +/* 068C4C 7F03411C 8FBF007C */ lw $ra, 0x7c($sp) +/* 068C50 7F034120 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 068C54 7F034124 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 068C58 7F034128 D7B80040 */ ldc1 $f24, 0x40($sp) +/* 068C5C 7F03412C D7BA0048 */ ldc1 $f26, 0x48($sp) +/* 068C60 7F034130 D7BC0050 */ ldc1 $f28, 0x50($sp) +/* 068C64 7F034134 D7BE0058 */ ldc1 $f30, 0x58($sp) +/* 068C68 7F034138 8FB00060 */ lw $s0, 0x60($sp) +/* 068C6C 7F03413C 8FB10064 */ lw $s1, 0x64($sp) +/* 068C70 7F034140 8FB20068 */ lw $s2, 0x68($sp) +/* 068C74 7F034144 8FB3006C */ lw $s3, 0x6c($sp) +/* 068C78 7F034148 8FB40070 */ lw $s4, 0x70($sp) +/* 068C7C 7F03414C 8FB50074 */ lw $s5, 0x74($sp) +/* 068C80 7F034150 8FB60078 */ lw $s6, 0x78($sp) +/* 068C84 7F034154 03E00008 */ jr $ra +/* 068C88 7F034158 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + +#ifdef NONMATCHING +void actionblock_guard_constructor_BDBE(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actionblock_guard_constructor_BDBE +/* 068C8C 7F03415C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 068C90 7F034160 AFBF001C */ sw $ra, 0x1c($sp) +/* 068C94 7F034164 AFA40040 */ sw $a0, 0x40($sp) +/* 068C98 7F034168 AFA50044 */ sw $a1, 0x44($sp) +/* 068C9C 7F03416C AFA60048 */ sw $a2, 0x48($sp) +/* 068CA0 7F034170 0FC07FF0 */ jal get_next_available_guardID +/* 068CA4 7F034174 AFA7004C */ sw $a3, 0x4c($sp) +/* 068CA8 7F034178 28410003 */ slti $at, $v0, 3 +/* 068CAC 7F03417C 14200031 */ bnez $at, .L7F034244 +/* 068CB0 7F034180 8FA30048 */ lw $v1, 0x48($sp) +/* 068CB4 7F034184 8FAE0044 */ lw $t6, 0x44($sp) +/* 068CB8 7F034188 05C30006 */ bgezl $t6, .L7F0341A4 +/* 068CBC 7F03418C C4640000 */ lwc1 $f4, ($v1) +/* 068CC0 7F034190 0FC08D6B */ jal select_psuedorandom_heads +/* 068CC4 7F034194 8FA40040 */ lw $a0, 0x40($sp) +/* 068CC8 7F034198 8FA30048 */ lw $v1, 0x48($sp) +/* 068CCC 7F03419C AFA20044 */ sw $v0, 0x44($sp) +/* 068CD0 7F0341A0 C4640000 */ lwc1 $f4, ($v1) +.L7F0341A4: +/* 068CD4 7F0341A4 8FA70058 */ lw $a3, 0x58($sp) +/* 068CD8 7F0341A8 8FAF004C */ lw $t7, 0x4c($sp) +/* 068CDC 7F0341AC E7A40030 */ swc1 $f4, 0x30($sp) +/* 068CE0 7F0341B0 C4660004 */ lwc1 $f6, 4($v1) +/* 068CE4 7F0341B4 30F80010 */ andi $t8, $a3, 0x10 +/* 068CE8 7F0341B8 0018382B */ sltu $a3, $zero, $t8 +/* 068CEC 7F0341BC E7A60034 */ swc1 $f6, 0x34($sp) +/* 068CF0 7F0341C0 C4680008 */ lwc1 $f8, 8($v1) +/* 068CF4 7F0341C4 27A40030 */ addiu $a0, $sp, 0x30 +/* 068CF8 7F0341C8 27A50028 */ addiu $a1, $sp, 0x28 +/* 068CFC 7F0341CC 8FA60050 */ lw $a2, 0x50($sp) +/* 068D00 7F0341D0 AFAF0028 */ sw $t7, 0x28($sp) +/* 068D04 7F0341D4 0FC0CFD2 */ jal sub_GAME_7F033F48 +/* 068D08 7F0341D8 E7A80038 */ swc1 $f8, 0x38($sp) +/* 068D0C 7F0341DC 10400019 */ beqz $v0, .L7F034244 +/* 068D10 7F0341E0 8FA40040 */ lw $a0, 0x40($sp) +/* 068D14 7F0341E4 8FA50044 */ lw $a1, 0x44($sp) +/* 068D18 7F0341E8 0FC08D34 */ jal retrieve_header_for_body_and_head +/* 068D1C 7F0341EC 8FA60058 */ lw $a2, 0x58($sp) +/* 068D20 7F0341F0 10400014 */ beqz $v0, .L7F034244 +/* 068D24 7F0341F4 00402025 */ move $a0, $v0 +/* 068D28 7F0341F8 8FA80054 */ lw $t0, 0x54($sp) +/* 068D2C 7F0341FC 27A50030 */ addiu $a1, $sp, 0x30 +/* 068D30 7F034200 8FA60050 */ lw $a2, 0x50($sp) +/* 068D34 7F034204 8FA70028 */ lw $a3, 0x28($sp) +/* 068D38 7F034208 0FC080EE */ jal replace_GUARDdata_with_actual_values +/* 068D3C 7F03420C AFA80010 */ sw $t0, 0x10($sp) +/* 068D40 7F034210 1040000C */ beqz $v0, .L7F034244 +/* 068D44 7F034214 00402025 */ move $a0, $v0 +/* 068D48 7F034218 0FC0E93C */ jal sub_GAME_7F03A4F0 +/* 068D4C 7F03421C AFA2003C */ sw $v0, 0x3c($sp) +/* 068D50 7F034220 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 068D54 7F034224 8FA4003C */ lw $a0, 0x3c($sp) +/* 068D58 7F034228 8FA2003C */ lw $v0, 0x3c($sp) +/* 068D5C 7F03422C 8FA90044 */ lw $t1, 0x44($sp) +/* 068D60 7F034230 8C430004 */ lw $v1, 4($v0) +/* 068D64 7F034234 A0690006 */ sb $t1, 6($v1) +/* 068D68 7F034238 8FAA0040 */ lw $t2, 0x40($sp) +/* 068D6C 7F03423C 10000002 */ b .L7F034248 +/* 068D70 7F034240 A06A000F */ sb $t2, 0xf($v1) +.L7F034244: +/* 068D74 7F034244 00001025 */ move $v0, $zero +.L7F034248: +/* 068D78 7F034248 8FBF001C */ lw $ra, 0x1c($sp) +/* 068D7C 7F03424C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 068D80 7F034250 03E00008 */ jr $ra +/* 068D84 7F034254 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void guard_constructor_BD(void) { + +} +#else +GLOBAL_ASM( +.text +glabel guard_constructor_BD +/* 068D88 7F034258 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 068D8C 7F03425C AFBF0024 */ sw $ra, 0x24($sp) +/* 068D90 7F034260 AFA50034 */ sw $a1, 0x34($sp) +/* 068D94 7F034264 AFA60038 */ sw $a2, 0x38($sp) +/* 068D98 7F034268 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 068D9C 7F03426C 00E02825 */ move $a1, $a3 +/* 068DA0 7F034270 28412710 */ slti $at, $v0, 0x2710 +/* 068DA4 7F034274 1020000A */ beqz $at, .L7F0342A0 +/* 068DA8 7F034278 0002C100 */ sll $t8, $v0, 4 +/* 068DAC 7F03427C 00027080 */ sll $t6, $v0, 2 +/* 068DB0 7F034280 01C27023 */ subu $t6, $t6, $v0 +/* 068DB4 7F034284 000E7080 */ sll $t6, $t6, 2 +/* 068DB8 7F034288 3C0F8007 */ lui $t7, %hi(ptr_0xxxpresets) +/* 068DBC 7F03428C 8DEF5D18 */ lw $t7, %lo(ptr_0xxxpresets)($t7) +/* 068DC0 7F034290 01C27023 */ subu $t6, $t6, $v0 +/* 068DC4 7F034294 000E7080 */ sll $t6, $t6, 2 +/* 068DC8 7F034298 10000009 */ b .L7F0342C0 +/* 068DCC 7F03429C 01CF3021 */ addu $a2, $t6, $t7 +.L7F0342A0: +/* 068DD0 7F0342A0 3C198007 */ lui $t9, %hi(ptr_2xxxpresets) +/* 068DD4 7F0342A4 8F395D1C */ lw $t9, %lo(ptr_2xxxpresets)($t9) +/* 068DD8 7F0342A8 0302C021 */ addu $t8, $t8, $v0 +/* 068DDC 7F0342AC 0018C080 */ sll $t8, $t8, 2 +/* 068DE0 7F0342B0 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 068DE4 7F0342B4 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 068DE8 7F0342B8 03193021 */ addu $a2, $t8, $t9 +/* 068DEC 7F0342BC 00C13021 */ addu $a2, $a2, $at +.L7F0342C0: +/* 068DF0 7F0342C0 C4CC0018 */ lwc1 $f12, 0x18($a2) +/* 068DF4 7F0342C4 C4CE0020 */ lwc1 $f14, 0x20($a2) +/* 068DF8 7F0342C8 0FC16A8C */ jal atan2f +/* 068DFC 7F0342CC AFA6002C */ sw $a2, 0x2c($sp) +/* 068E00 7F0342D0 8FA6002C */ lw $a2, 0x2c($sp) +/* 068E04 7F0342D4 8FA80040 */ lw $t0, 0x40($sp) +/* 068E08 7F0342D8 8FA90044 */ lw $t1, 0x44($sp) +/* 068E0C 7F0342DC 8CC70028 */ lw $a3, 0x28($a2) +/* 068E10 7F0342E0 E7A00010 */ swc1 $f0, 0x10($sp) +/* 068E14 7F0342E4 8FA40034 */ lw $a0, 0x34($sp) +/* 068E18 7F0342E8 8FA50038 */ lw $a1, 0x38($sp) +/* 068E1C 7F0342EC AFA80014 */ sw $t0, 0x14($sp) +/* 068E20 7F0342F0 0FC0D057 */ jal actionblock_guard_constructor_BDBE +/* 068E24 7F0342F4 AFA90018 */ sw $t1, 0x18($sp) +/* 068E28 7F0342F8 8FBF0024 */ lw $ra, 0x24($sp) +/* 068E2C 7F0342FC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 068E30 7F034300 03E00008 */ jr $ra +/* 068E34 7F034304 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void guard_constructor_BE(void) { + +} +#else +GLOBAL_ASM( +.text +glabel guard_constructor_BE +/* 068E38 7F034308 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 068E3C 7F03430C AFBF0024 */ sw $ra, 0x24($sp) +/* 068E40 7F034310 AFA50034 */ sw $a1, 0x34($sp) +/* 068E44 7F034314 AFA60038 */ sw $a2, 0x38($sp) +/* 068E48 7F034318 0FC0CC10 */ jal get_handle_for_guard_id +/* 068E4C 7F03431C 00E02825 */ move $a1, $a3 +/* 068E50 7F034320 8C4E0014 */ lw $t6, 0x14($v0) +/* 068E54 7F034324 31CF0008 */ andi $t7, $t6, 8 +/* 068E58 7F034328 55E00013 */ bnezl $t7, .L7F034378 +/* 068E5C 7F03432C 00001025 */ move $v0, $zero +/* 068E60 7F034330 8C44001C */ lw $a0, 0x1c($v0) +/* 068E64 7F034334 0FC1B320 */ jal getsubroty +/* 068E68 7F034338 AFA2002C */ sw $v0, 0x2c($sp) +/* 068E6C 7F03433C 8FA3002C */ lw $v1, 0x2c($sp) +/* 068E70 7F034340 8FB80040 */ lw $t8, 0x40($sp) +/* 068E74 7F034344 8FB90044 */ lw $t9, 0x44($sp) +/* 068E78 7F034348 8C620018 */ lw $v0, 0x18($v1) +/* 068E7C 7F03434C 8FA40034 */ lw $a0, 0x34($sp) +/* 068E80 7F034350 8FA50038 */ lw $a1, 0x38($sp) +/* 068E84 7F034354 8C470014 */ lw $a3, 0x14($v0) +/* 068E88 7F034358 E7A00010 */ swc1 $f0, 0x10($sp) +/* 068E8C 7F03435C AFB80014 */ sw $t8, 0x14($sp) +/* 068E90 7F034360 AFB90018 */ sw $t9, 0x18($sp) +/* 068E94 7F034364 0FC0D057 */ jal actionblock_guard_constructor_BDBE +/* 068E98 7F034368 24460008 */ addiu $a2, $v0, 8 +/* 068E9C 7F03436C 10000003 */ b .L7F03437C +/* 068EA0 7F034370 8FBF0024 */ lw $ra, 0x24($sp) +/* 068EA4 7F034374 00001025 */ move $v0, $zero +.L7F034378: +/* 068EA8 7F034378 8FBF0024 */ lw $ra, 0x24($sp) +.L7F03437C: +/* 068EAC 7F03437C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 068EB0 7F034380 03E00008 */ jr $ra +/* 068EB4 7F034384 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_actorID_is_at_preset(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_actorID_is_at_preset +/* 068EB8 7F034388 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 068EBC 7F03438C AFBF0014 */ sw $ra, 0x14($sp) +/* 068EC0 7F034390 AFA40020 */ sw $a0, 0x20($sp) +/* 068EC4 7F034394 0FC0CC10 */ jal get_handle_for_guard_id +/* 068EC8 7F034398 AFA60028 */ sw $a2, 0x28($sp) +/* 068ECC 7F03439C 8FA40020 */ lw $a0, 0x20($sp) +/* 068ED0 7F0343A0 8FA50028 */ lw $a1, 0x28($sp) +/* 068ED4 7F0343A4 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 068ED8 7F0343A8 AFA20018 */ sw $v0, 0x18($sp) +/* 068EDC 7F0343AC 28412710 */ slti $at, $v0, 0x2710 +/* 068EE0 7F0343B0 1020000A */ beqz $at, .L7F0343DC +/* 068EE4 7F0343B4 8FA60018 */ lw $a2, 0x18($sp) +/* 068EE8 7F0343B8 00027080 */ sll $t6, $v0, 2 +/* 068EEC 7F0343BC 01C27023 */ subu $t6, $t6, $v0 +/* 068EF0 7F0343C0 000E7080 */ sll $t6, $t6, 2 +/* 068EF4 7F0343C4 3C0F8007 */ lui $t7, %hi(ptr_0xxxpresets) +/* 068EF8 7F0343C8 8DEF5D18 */ lw $t7, %lo(ptr_0xxxpresets)($t7) +/* 068EFC 7F0343CC 01C27023 */ subu $t6, $t6, $v0 +/* 068F00 7F0343D0 000E7080 */ sll $t6, $t6, 2 +/* 068F04 7F0343D4 1000000A */ b .L7F034400 +/* 068F08 7F0343D8 01CF1821 */ addu $v1, $t6, $t7 +.L7F0343DC: +/* 068F0C 7F0343DC 3C198007 */ lui $t9, %hi(ptr_2xxxpresets) +/* 068F10 7F0343E0 8F395D1C */ lw $t9, %lo(ptr_2xxxpresets)($t9) +/* 068F14 7F0343E4 0002C100 */ sll $t8, $v0, 4 +/* 068F18 7F0343E8 0302C021 */ addu $t8, $t8, $v0 +/* 068F1C 7F0343EC 0018C080 */ sll $t8, $t8, 2 +/* 068F20 7F0343F0 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 068F24 7F0343F4 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 068F28 7F0343F8 03191821 */ addu $v1, $t8, $t9 +/* 068F2C 7F0343FC 00611821 */ addu $v1, $v1, $at +.L7F034400: +/* 068F30 7F034400 8C620028 */ lw $v0, 0x28($v1) +/* 068F34 7F034404 8FBF0014 */ lw $ra, 0x14($sp) +/* 068F38 7F034408 5040000E */ beql $v0, $zero, .L7F034444 +/* 068F3C 7F03440C 00001025 */ move $v0, $zero +/* 068F40 7F034410 50C0000C */ beql $a2, $zero, .L7F034444 +/* 068F44 7F034414 00001025 */ move $v0, $zero +/* 068F48 7F034418 8CC30018 */ lw $v1, 0x18($a2) +/* 068F4C 7F03441C 50600009 */ beql $v1, $zero, .L7F034444 +/* 068F50 7F034420 00001025 */ move $v0, $zero +/* 068F54 7F034424 8C680014 */ lw $t0, 0x14($v1) +/* 068F58 7F034428 904A0003 */ lbu $t2, 3($v0) +/* 068F5C 7F03442C 91090003 */ lbu $t1, 3($t0) +/* 068F60 7F034430 552A0004 */ bnel $t1, $t2, .L7F034444 +/* 068F64 7F034434 00001025 */ move $v0, $zero +/* 068F68 7F034438 10000002 */ b .L7F034444 +/* 068F6C 7F03443C 24020001 */ li $v0, 1 +/* 068F70 7F034440 00001025 */ move $v0, $zero +.L7F034444: +/* 068F74 7F034444 03E00008 */ jr $ra +/* 068F78 7F034448 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +void check_if_actor_is_at_preset(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_actor_is_at_preset +/* 068F7C 7F03444C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 068F80 7F034450 AFBF0014 */ sw $ra, 0x14($sp) +/* 068F84 7F034454 AFA40020 */ sw $a0, 0x20($sp) +/* 068F88 7F034458 0FC225E6 */ jal get_curplayer_positiondata +/* 068F8C 7F03445C AFA50024 */ sw $a1, 0x24($sp) +/* 068F90 7F034460 AFA2001C */ sw $v0, 0x1c($sp) +/* 068F94 7F034464 8FA40020 */ lw $a0, 0x20($sp) +/* 068F98 7F034468 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 068F9C 7F03446C 8FA50024 */ lw $a1, 0x24($sp) +/* 068FA0 7F034470 28412710 */ slti $at, $v0, 0x2710 +/* 068FA4 7F034474 1020000A */ beqz $at, .L7F0344A0 +/* 068FA8 7F034478 8FBF0014 */ lw $ra, 0x14($sp) +/* 068FAC 7F03447C 00027080 */ sll $t6, $v0, 2 +/* 068FB0 7F034480 01C27023 */ subu $t6, $t6, $v0 +/* 068FB4 7F034484 000E7080 */ sll $t6, $t6, 2 +/* 068FB8 7F034488 3C0F8007 */ lui $t7, %hi(ptr_0xxxpresets) +/* 068FBC 7F03448C 8DEF5D18 */ lw $t7, %lo(ptr_0xxxpresets)($t7) +/* 068FC0 7F034490 01C27023 */ subu $t6, $t6, $v0 +/* 068FC4 7F034494 000E7080 */ sll $t6, $t6, 2 +/* 068FC8 7F034498 1000000A */ b .L7F0344C4 +/* 068FCC 7F03449C 01CF1821 */ addu $v1, $t6, $t7 +.L7F0344A0: +/* 068FD0 7F0344A0 3C198007 */ lui $t9, %hi(ptr_2xxxpresets) +/* 068FD4 7F0344A4 8F395D1C */ lw $t9, %lo(ptr_2xxxpresets)($t9) +/* 068FD8 7F0344A8 0002C100 */ sll $t8, $v0, 4 +/* 068FDC 7F0344AC 0302C021 */ addu $t8, $t8, $v0 +/* 068FE0 7F0344B0 0018C080 */ sll $t8, $t8, 2 +/* 068FE4 7F0344B4 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 068FE8 7F0344B8 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 068FEC 7F0344BC 03191821 */ addu $v1, $t8, $t9 +/* 068FF0 7F0344C0 00611821 */ addu $v1, $v1, $at +.L7F0344C4: +/* 068FF4 7F0344C4 8C620028 */ lw $v0, 0x28($v1) +/* 068FF8 7F0344C8 8FA8001C */ lw $t0, 0x1c($sp) +/* 068FFC 7F0344CC 50400009 */ beql $v0, $zero, .L7F0344F4 +/* 069000 7F0344D0 00001025 */ move $v0, $zero +/* 069004 7F0344D4 8D090014 */ lw $t1, 0x14($t0) +/* 069008 7F0344D8 904B0003 */ lbu $t3, 3($v0) +/* 06900C 7F0344DC 912A0003 */ lbu $t2, 3($t1) +/* 069010 7F0344E0 554B0004 */ bnel $t2, $t3, .L7F0344F4 +/* 069014 7F0344E4 00001025 */ move $v0, $zero +/* 069018 7F0344E8 10000002 */ b .L7F0344F4 +/* 06901C 7F0344EC 24020001 */ li $v0, 1 +/* 069020 7F0344F0 00001025 */ move $v0, $zero +.L7F0344F4: +/* 069024 7F0344F4 03E00008 */ jr $ra +/* 069028 7F0344F8 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +void removed_animation_routine_27(void) { + +} +#else +GLOBAL_ASM( +.text +glabel removed_animation_routine_27 +/* 06902C 7F0344FC AFA40000 */ sw $a0, ($sp) +/* 069030 7F034500 03E00008 */ jr $ra +/* 069034 7F034504 00001025 */ move $v0, $zero +) +#endif + + + +#ifdef NONMATCHING +void removed_animation_routine_2B(void) { + +} +#else +GLOBAL_ASM( +.text +glabel removed_animation_routine_2B +/* 069038 7F034508 AFA40000 */ sw $a0, ($sp) +/* 06903C 7F03450C 03E00008 */ jr $ra +/* 069040 7F034510 00001025 */ move $v0, $zero +) +#endif + + + +#ifdef NONMATCHING +? sub_GAME_7F034514(s32 arg0, s32 arg1) +{ + s32 temp_ret; + + arg1 = sub_GAME_7F032F94(); + if (true_if_actor_dying_fading_limping_shot(arg0) != 0) + { + temp_ret = scan_position_data_table_for_normal_object_at_preset(arg1); + if (temp_ret != 0) + { + if (check_if_object_has_not_been_destroyed(temp_ret) != 0) + { + sub_GAME_7F024150(arg0); + return 1; + } + } + } + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F034514 +/* 069044 7F034514 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 069048 7F034518 AFBF0014 */ sw $ra, 0x14($sp) +/* 06904C 7F03451C 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 069050 7F034520 AFA40018 */ sw $a0, 0x18($sp) +/* 069054 7F034524 AFA2001C */ sw $v0, 0x1c($sp) +/* 069058 7F034528 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 06905C 7F03452C 8FA40018 */ lw $a0, 0x18($sp) +/* 069060 7F034530 5040000E */ beql $v0, $zero, .L7F03456C +/* 069064 7F034534 00001025 */ move $v0, $zero +/* 069068 7F034538 0FC0FE91 */ jal scan_position_data_table_for_normal_object_at_preset +/* 06906C 7F03453C 8FA4001C */ lw $a0, 0x1c($sp) +/* 069070 7F034540 10400009 */ beqz $v0, .L7F034568 +/* 069074 7F034544 00402025 */ move $a0, $v0 +/* 069078 7F034548 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 06907C 7F03454C 00000000 */ nop +/* 069080 7F034550 50400006 */ beql $v0, $zero, .L7F03456C +/* 069084 7F034554 00001025 */ move $v0, $zero +/* 069088 7F034558 0FC09054 */ jal sub_GAME_7F024150 +/* 06908C 7F03455C 8FA40018 */ lw $a0, 0x18($sp) +/* 069090 7F034560 10000002 */ b .L7F03456C +/* 069094 7F034564 24020001 */ li $v0, 1 +.L7F034568: +/* 069098 7F034568 00001025 */ move $v0, $zero +.L7F03456C: +/* 06909C 7F03456C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0690A0 7F034570 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0690A4 7F034574 03E00008 */ jr $ra +/* 0690A8 7F034578 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +? actor_draws_throws_grenade_at_player_if_possible(void *arg0) +{ + s32 sp24; + s32 sp20; + s32 temp_ret; + s32 temp_ret_2; + void *temp_v1; + ? phi_a3; + ? phi_a2; + + if ((u32) (get_random_value() % 0xffU) >= (u32) arg0->unk10) + { + return 0; + } + if (sub_GAME_7F032DE4(arg0) < 10.0f) + { + return 0; + } + if (true_if_actor_dying_fading_limping_shot(arg0) != 0) + { + sp24 = something_with_weaponpos_of_guarddata_hand(arg0, 1); + temp_ret = something_with_weaponpos_of_guarddata_hand(arg0, 0); + sp20 = temp_ret; + if (temp_ret != 0) + { + if (temp_ret->unk4->unk80 == 0x1a) + { + throw_weapon_in_guard_hand(arg0, temp_ret, 0, 0); + return 1; + } + } + if (sp24 != 0) + { + if (sp24->unk4->unk80 == 0x1a) + { + throw_weapon_in_guard_hand(arg0, sp24, 1, 0); + return 1; + } + } + if ((sp24 == 0) || (temp_ret == 0)) + { + phi_a3 = 0; + if (temp_ret != 0) + { + phi_a3 = 0x10000000; + } + temp_ret_2 = actor_draws_weapon_with_model(arg0, 0xc4, 0x1a, phi_a3); + if (temp_ret_2 != 0) + { + temp_v1 = temp_ret_2->unk4; + temp_v1->unk64 = (s32) (temp_v1->unk64 | 0x800); + phi_a2 = 1; + if (sp20 == 0) + { + phi_a2 = 0; + } + throw_weapon_in_guard_hand(arg0, temp_ret_2, phi_a2, 1); + return 1; + } + } + else + { + + } + } + return 0; +} +#else +GLOBAL_ASM( +.text +glabel actor_draws_throws_grenade_at_player_if_possible +/* 0690AC 7F03457C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0690B0 7F034580 AFBF001C */ sw $ra, 0x1c($sp) +/* 0690B4 7F034584 AFB00018 */ sw $s0, 0x18($sp) +/* 0690B8 7F034588 0C002914 */ jal get_random_value +/* 0690BC 7F03458C 00808025 */ move $s0, $a0 +/* 0690C0 7F034590 240100FF */ li $at, 255 +/* 0690C4 7F034594 0041001B */ divu $zero, $v0, $at +/* 0690C8 7F034598 920F0010 */ lbu $t7, 0x10($s0) +/* 0690CC 7F03459C 00007010 */ mfhi $t6 +/* 0690D0 7F0345A0 01CF082B */ sltu $at, $t6, $t7 +/* 0690D4 7F0345A4 14200003 */ bnez $at, .L7F0345B4 +/* 0690D8 7F0345A8 00000000 */ nop +/* 0690DC 7F0345AC 1000004E */ b .L7F0346E8 +/* 0690E0 7F0345B0 00001025 */ move $v0, $zero +.L7F0345B4: +/* 0690E4 7F0345B4 0FC0CB79 */ jal sub_GAME_7F032DE4 +/* 0690E8 7F0345B8 02002025 */ move $a0, $s0 +/* 0690EC 7F0345BC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0690F0 7F0345C0 44812000 */ mtc1 $at, $f4 +/* 0690F4 7F0345C4 00000000 */ nop +/* 0690F8 7F0345C8 4604003C */ c.lt.s $f0, $f4 +/* 0690FC 7F0345CC 00000000 */ nop +/* 069100 7F0345D0 45000003 */ bc1f .L7F0345E0 +/* 069104 7F0345D4 00000000 */ nop +/* 069108 7F0345D8 10000043 */ b .L7F0346E8 +/* 06910C 7F0345DC 00001025 */ move $v0, $zero +.L7F0345E0: +/* 069110 7F0345E0 0FC0A896 */ jal true_if_actor_dying_fading_limping_shot +/* 069114 7F0345E4 02002025 */ move $a0, $s0 +/* 069118 7F0345E8 1040003E */ beqz $v0, .L7F0346E4 +/* 06911C 7F0345EC 02002025 */ move $a0, $s0 +/* 069120 7F0345F0 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 069124 7F0345F4 24050001 */ li $a1, 1 +/* 069128 7F0345F8 AFA20024 */ sw $v0, 0x24($sp) +/* 06912C 7F0345FC 02002025 */ move $a0, $s0 +/* 069130 7F034600 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 069134 7F034604 00002825 */ move $a1, $zero +/* 069138 7F034608 8FA50024 */ lw $a1, 0x24($sp) +/* 06913C 7F03460C 1040000D */ beqz $v0, .L7F034644 +/* 069140 7F034610 AFA20020 */ sw $v0, 0x20($sp) +/* 069144 7F034614 8C430004 */ lw $v1, 4($v0) +/* 069148 7F034618 2401001A */ li $at, 26 +/* 06914C 7F03461C 02002025 */ move $a0, $s0 +/* 069150 7F034620 80780080 */ lb $t8, 0x80($v1) +/* 069154 7F034624 00003025 */ move $a2, $zero +/* 069158 7F034628 00003825 */ move $a3, $zero +/* 06915C 7F03462C 17010005 */ bne $t8, $at, .L7F034644 +/* 069160 7F034630 00000000 */ nop +/* 069164 7F034634 0FC0908E */ jal throw_weapon_in_guard_hand +/* 069168 7F034638 00402825 */ move $a1, $v0 +/* 06916C 7F03463C 1000002A */ b .L7F0346E8 +/* 069170 7F034640 24020001 */ li $v0, 1 +.L7F034644: +/* 069174 7F034644 10A0000C */ beqz $a1, .L7F034678 +/* 069178 7F034648 00000000 */ nop +/* 06917C 7F03464C 8CA30004 */ lw $v1, 4($a1) +/* 069180 7F034650 2401001A */ li $at, 26 +/* 069184 7F034654 02002025 */ move $a0, $s0 +/* 069188 7F034658 80790080 */ lb $t9, 0x80($v1) +/* 06918C 7F03465C 24060001 */ li $a2, 1 +/* 069190 7F034660 17210005 */ bne $t9, $at, .L7F034678 +/* 069194 7F034664 00000000 */ nop +/* 069198 7F034668 0FC0908E */ jal throw_weapon_in_guard_hand +/* 06919C 7F03466C 00003825 */ move $a3, $zero +/* 0691A0 7F034670 1000001D */ b .L7F0346E8 +/* 0691A4 7F034674 24020001 */ li $v0, 1 +.L7F034678: +/* 0691A8 7F034678 10A00003 */ beqz $a1, .L7F034688 +/* 0691AC 7F03467C 02002025 */ move $a0, $s0 +/* 0691B0 7F034680 54400019 */ bnezl $v0, .L7F0346E8 +/* 0691B4 7F034684 00001025 */ move $v0, $zero +.L7F034688: +/* 0691B8 7F034688 10400002 */ beqz $v0, .L7F034694 +/* 0691BC 7F03468C 00003825 */ move $a3, $zero +/* 0691C0 7F034690 3C071000 */ lui $a3, 0x1000 +.L7F034694: +/* 0691C4 7F034694 240500C4 */ li $a1, 196 +/* 0691C8 7F034698 0FC148F5 */ jal actor_draws_weapon_with_model +/* 0691CC 7F03469C 2406001A */ li $a2, 26 +/* 0691D0 7F0346A0 10400010 */ beqz $v0, .L7F0346E4 +/* 0691D4 7F0346A4 00402825 */ move $a1, $v0 +/* 0691D8 7F0346A8 8C430004 */ lw $v1, 4($v0) +/* 0691DC 7F0346AC 02002025 */ move $a0, $s0 +/* 0691E0 7F0346B0 24060001 */ li $a2, 1 +/* 0691E4 7F0346B4 8C680064 */ lw $t0, 0x64($v1) +/* 0691E8 7F0346B8 35090800 */ ori $t1, $t0, 0x800 +/* 0691EC 7F0346BC AC690064 */ sw $t1, 0x64($v1) +/* 0691F0 7F0346C0 8FAA0020 */ lw $t2, 0x20($sp) +/* 0691F4 7F0346C4 15400003 */ bnez $t2, .L7F0346D4 +/* 0691F8 7F0346C8 00000000 */ nop +/* 0691FC 7F0346CC 10000001 */ b .L7F0346D4 +/* 069200 7F0346D0 00003025 */ move $a2, $zero +.L7F0346D4: +/* 069204 7F0346D4 0FC0908E */ jal throw_weapon_in_guard_hand +/* 069208 7F0346D8 24070001 */ li $a3, 1 +/* 06920C 7F0346DC 10000002 */ b .L7F0346E8 +/* 069210 7F0346E0 24020001 */ li $v0, 1 +.L7F0346E4: +/* 069214 7F0346E4 00001025 */ move $v0, $zero +.L7F0346E8: +/* 069218 7F0346E8 8FBF001C */ lw $ra, 0x1c($sp) +/* 06921C 7F0346EC 8FB00018 */ lw $s0, 0x18($sp) +/* 069220 7F0346F0 27BD0028 */ addiu $sp, $sp, 0x28 +/* 069224 7F0346F4 03E00008 */ jr $ra +/* 069228 7F0346F8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +? actor_drops_itemtype_setting_timer(void *arg0, s32 arg1, s32 arg2) +{ + s32 sp1C; + s32 temp_ret; + void *temp_a0; + + temp_ret = create_new_item_instance_of_model(arg1, arg2 & 0xff); + if (temp_ret != 0) + { + if (temp_ret->unk10 != 0) + { + temp_a0 = temp_ret->unk14; + sp1C = temp_ret; + set_obj_instance_controller_scale(temp_a0, temp_a0->unk14); + sub_GAME_7F03A5A4(sp1C->unk10, arg0->unk18); + sp1C->unk82 = (u16)0xb4; + sub_GAME_7F04BFD0(sp1C->unk10, 1); + arg0->unk12 = (s16) (arg0->unk12 | 1); + return 1; + } + } + return 0; +} +#else +GLOBAL_ASM( +.text +glabel actor_drops_itemtype_setting_timer +/* 06922C 7F0346FC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 069230 7F034700 AFA40020 */ sw $a0, 0x20($sp) +/* 069234 7F034704 AFBF0014 */ sw $ra, 0x14($sp) +/* 069238 7F034708 30CE00FF */ andi $t6, $a2, 0xff +/* 06923C 7F03470C 00A02025 */ move $a0, $a1 +/* 069240 7F034710 AFA60028 */ sw $a2, 0x28($sp) +/* 069244 7F034714 0FC1481B */ jal create_new_item_instance_of_model +/* 069248 7F034718 01C02825 */ move $a1, $t6 +/* 06924C 7F03471C 5040001A */ beql $v0, $zero, .L7F034788 +/* 069250 7F034720 00001025 */ move $v0, $zero +/* 069254 7F034724 8C4F0010 */ lw $t7, 0x10($v0) +/* 069258 7F034728 51E00017 */ beql $t7, $zero, .L7F034788 +/* 06925C 7F03472C 00001025 */ move $v0, $zero +/* 069260 7F034730 8C440014 */ lw $a0, 0x14($v0) +/* 069264 7F034734 8C850014 */ lw $a1, 0x14($a0) +/* 069268 7F034738 0FC1B39E */ jal set_obj_instance_controller_scale +/* 06926C 7F03473C AFA2001C */ sw $v0, 0x1c($sp) +/* 069270 7F034740 8FA3001C */ lw $v1, 0x1c($sp) +/* 069274 7F034744 8FB80020 */ lw $t8, 0x20($sp) +/* 069278 7F034748 8C640010 */ lw $a0, 0x10($v1) +/* 06927C 7F03474C 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 069280 7F034750 8F050018 */ lw $a1, 0x18($t8) +/* 069284 7F034754 8FA3001C */ lw $v1, 0x1c($sp) +/* 069288 7F034758 241900B4 */ li $t9, 180 +/* 06928C 7F03475C 24050001 */ li $a1, 1 +/* 069290 7F034760 A4790082 */ sh $t9, 0x82($v1) +/* 069294 7F034764 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 069298 7F034768 8C640010 */ lw $a0, 0x10($v1) +/* 06929C 7F03476C 8FA80020 */ lw $t0, 0x20($sp) +/* 0692A0 7F034770 24020001 */ li $v0, 1 +/* 0692A4 7F034774 95090012 */ lhu $t1, 0x12($t0) +/* 0692A8 7F034778 352A0001 */ ori $t2, $t1, 1 +/* 0692AC 7F03477C 10000002 */ b .L7F034788 +/* 0692B0 7F034780 A50A0012 */ sh $t2, 0x12($t0) +/* 0692B4 7F034784 00001025 */ move $v0, $zero +.L7F034788: +/* 0692B8 7F034788 8FBF0014 */ lw $ra, 0x14($sp) +/* 0692BC 7F03478C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0692C0 7F034790 03E00008 */ jr $ra +/* 0692C4 7F034794 00000000 */ nop +) +#endif + + diff --git a/src/game/chrai.c b/src/game/chrai.c new file mode 100644 index 0000000..7f4662a --- /dev/null +++ b/src/game/chrai.c @@ -0,0 +1,21577 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "game/chr.h" +#include "game/chrai.h" +#include "snd.h" +#include "music.h" +#include "game/lvl_text.h" +// bss +//CODE.bss:80069B70 +struct sfx_register_struct sfx_related[8]; +//CODE.bss:80069C30 +void * ptr_list_object_lookup_indices; +//CODE.bss:80069C34 +u32 num_obj_position_data_entries; + +//CODE.bss:80069C38 +u8 pos_data_entry[0x24]; +//CODE.bss:80069C5C +u8 dword_CODE_bss_80069C5C; +u8 dword_CODE_bss_80069C5D; +u8 dword_CODE_bss_80069C5E; +u8 dword_CODE_bss_80069C5F; +u8 dword_CODE_bss_80069C60; +u8 dword_CODE_bss_80069C61; +u8 dword_CODE_bss_80069C62; +u8 dword_CODE_bss_80069C63; +u8 dword_CODE_bss_80069C64; +u8 dword_CODE_bss_80069C65; +u8 dword_CODE_bss_80069C66; +u8 dword_CODE_bss_80069C67; +u8 dword_CODE_bss_80069C68; +u8 dword_CODE_bss_80069C69; +u8 dword_CODE_bss_80069C6A; +u8 dword_CODE_bss_80069C6B; +//CODE.bss:80069C6C +u8 dword_CODE_bss_80069C6C; +u8 dword_CODE_bss_80069C6D; +u8 dword_CODE_bss_80069C6E; +u8 dword_CODE_bss_80069C6F; +u8 dword_CODE_bss_80069C70[0x20]; +//CODE.bss:80069C90 +u8 dword_CODE_bss_80069C90[0xC]; +//CODE.bss:80069C94 +//u8 dword_CODE_bss_80069C94[8]; +//CODE.bss:80069CA0 +u8 dword_CODE_bss_80069CA0[0x24]; +//CODE.bss:80069CC4 +u32 dword_CODE_bss_80069CC4; +u32 dword_CODE_bss_80069CC8; +u32 dword_CODE_bss_80069CCC; +u32 dword_CODE_bss_80069CD0; +//CODE.bss:80069CD4 +u32 dword_CODE_bss_80069CD4; +u32 dword_CODE_bss_80069CD8; +u32 dword_CODE_bss_80069CDC; +u8 dword_CODE_bss_80069CE0[0x28]; +//CODE.bss:80069D08 +u8 dword_CODE_bss_80069D08[0x34]; +//CODE.bss:80069D3C +u8 dword_CODE_bss_80069D3C; +u8 dword_CODE_bss_80069D3D; +u8 dword_CODE_bss_80069D3E; +u8 dword_CODE_bss_80069D3F; +u8 dword_CODE_bss_80069D40[0x30]; +//CODE.bss:80069D70 +u8 dword_CODE_bss_80069D70[0x34]; +//CODE.bss:80069DA4 +u8 dword_CODE_bss_80069DA4; +u8 dword_CODE_bss_80069DA5; +u8 dword_CODE_bss_80069DA6; +u8 dword_CODE_bss_80069DA7; +u8 dword_CODE_bss_80069DA8[0x7870]; +//CODE.bss:80071618 +void *ptr_room_lookup_buffer_maybe; +//CODE.bss:8007161C +u32 dword_CODE_bss_8007161C; + +//CODE.bss:80071620 +char dword_CODE_bss_80071620[0x94]; +//CODE.bss:800716B4 +char dword_CODE_bss_800716B4; +char dword_CODE_bss_800716B5; +char dword_CODE_bss_800716B6; +char dword_CODE_bss_800716B7; +char dword_CODE_bss_800716B8[0x738]; +//CODE.bss:80071DF0 +u32 dword_CODE_bss_80071DF0; +//CODE.bss:80071DF4 +u32 dword_CODE_bss_80071DF4; +//CODE.bss:80071DF8 +u32 dword_CODE_bss_80071DF8; +//CODE.bss:80071DFC +u32 dword_CODE_bss_80071DFC; +//CODE.bss:80071E00 +char temp_mine_table[0x78]; + +//CODE.bss:80071E78 +f32 gas_damage_flag; +//CODE.bss:80071E7C +u32 gas_cutoff_flag; +//CODE.bss:80071E80 +char ProjectileData_start_address[0xFF0]; +//CODE.bss:80072E70 +char dword_CODE_bss_80072E70[0x500]; +//CODE.bss:80073370 +char dword_CODE_bss_80073370[0xA50]; +//CODE.bss:80073DC0 +char dword_CODE_bss_80073DC0[0x1270]; +//CODE.bss:80075030 +char dword_CODE_bss_80075030[0xB40]; +//CODE.bss:80075B70 +u32 objinst; +//CODE.bss:80075B74 +u32 dword_CODE_bss_80075B74; +//CODE.bss:80075B78 +f32 flt_CODE_bss_80075B78; +//CODE.bss:80075B7C +f32 flt_CODE_bss_80075B7C; +//CODE.bss:80075B80 +f32 flt_CODE_bss_80075B80; +//CODE.bss:80075B84 +f32 flt_CODE_bss_80075B84; +//CODE.bss:80075B88 +f32 flt_CODE_bss_80075B88; +//CODE.bss:80075B8C +f32 flt_CODE_bss_80075B8C; +//CODE.bss:80075B90 +f32 flt_CODE_bss_80075B90; +//CODE.bss:80075B94 +f32 flt_CODE_bss_80075B94; +//CODE.bss:80075B98 +char dword_CODE_bss_80075B98[0x6C]; +//CODE.bss:80075C04 +u32 dword_CODE_bss_80075C04; +u32 dword_CODE_bss_80075C08; +u32 dword_CODE_bss_80075C0C; +//CODE.bss:80075C10 +char dword_CODE_bss_80075C10[0x78]; +//CODE.bss:80075C88 +char dword_CODE_bss_80075C88[0x78]; + +//CODE.bss:80075D00 +void * ptr_setup_path_tbl; +//CODE.bss:80075D04 +void * ptr_setup_path_link; +//CODE.bss:80075D08 +void * ptr_setup_intro; +//CODE.bss:80075D0C +struct object_standard * ptr_setup_objects; +//CODE.bss:80075D10 +void * ptr_setup_path_sets; +//CODE.bss:80075D14 +void * ptr_setup_actions; +//CODE.bss:80075D18 +void * ptr_0xxxpresets; +//CODE.bss:80075D1C +void * ptr_2xxxpresets; +//CODE.bss:80075D20 +u32 dword_CODE_bss_80075D20; +//CODE.bss:80075D24 +u32 dword_CODE_bss_80075D24; +//CODE.bss:80075D28 +u32 dword_CODE_bss_80075D28; + + +//data +s32 D_80030A70 = 0; +s32 D_80030A74 = 0; +s32 D_80030A78 = 0; +s32 D_80030A7C = 0; +s32 D_80030A80 = 0; +s32 D_80030A84 = 0; +s32 D_80030A88 = 0; +s32 D_80030A8C = 0; +s32 D_80030A90 = 0; +s32 D_80030A94 = 0; +s32 D_80030A98 = 0; +s32 D_80030A9C = 0; +s32 *ptr_obj_pos_list_current_entry = 0; +s32 *ptr_obj_pos_list_first_entry = 0; +s32 *ptr_obj_pos_list_final_entry = 0; +f32 difficulty = 1.0; +s32 D_80030AB0 = 0; +s32 D_80030AB4 = 0; +s32 D_80030AB8 = 0; +s32 D_80030ABC = 0; + + + + + + +#ifdef NONMATCHING +void set_sound_effect_source_to_location(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_sound_effect_source_to_location +/* 0692D0 7F0347A0 00047080 */ sll $t6, $a0, 2 +/* 0692D4 7F0347A4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0692D8 7F0347A8 01C47023 */ subu $t6, $t6, $a0 +/* 0692DC 7F0347AC 3C0F8007 */ lui $t7, %hi(sfx_related) +/* 0692E0 7F0347B0 AFB00018 */ sw $s0, 0x18($sp) +/* 0692E4 7F0347B4 25EF9B70 */ addiu $t7, %lo(sfx_related) # addiu $t7, $t7, -0x6490 +/* 0692E8 7F0347B8 000E70C0 */ sll $t6, $t6, 3 +/* 0692EC 7F0347BC 01CF8021 */ addu $s0, $t6, $t7 +/* 0692F0 7F0347C0 8E050000 */ lw $a1, ($s0) +/* 0692F4 7F0347C4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0692F8 7F0347C8 50A00041 */ beql $a1, $zero, .L7F0348D0 +/* 0692FC 7F0347CC AE000004 */ sw $zero, 4($s0) +/* 069300 7F0347D0 0C00237C */ jal sfxGetArg0Unk3F +/* 069304 7F0347D4 00A02025 */ move $a0, $a1 +/* 069308 7F0347D8 5040003D */ beql $v0, $zero, .L7F0348D0 +/* 06930C 7F0347DC AE000004 */ sw $zero, 4($s0) +/* 069310 7F0347E0 8E040010 */ lw $a0, 0x10($s0) +/* 069314 7F0347E4 50800006 */ beql $a0, $zero, .L7F034800 +/* 069318 7F0347E8 8E020014 */ lw $v0, 0x14($s0) +/* 06931C 7F0347EC 0FC14E79 */ jal sub_GAME_7F0539E4 +/* 069320 7F0347F0 00000000 */ nop +/* 069324 7F0347F4 1000000A */ b .L7F034820 +/* 069328 7F0347F8 AE02000C */ sw $v0, 0xc($s0) +/* 06932C 7F0347FC 8E020014 */ lw $v0, 0x14($s0) +.L7F034800: +/* 069330 7F034800 50400008 */ beql $v0, $zero, .L7F034824 +/* 069334 7F034804 8E030008 */ lw $v1, 8($s0) +/* 069338 7F034808 8C580010 */ lw $t8, 0x10($v0) +/* 06933C 7F03480C 53000005 */ beql $t8, $zero, .L7F034824 +/* 069340 7F034810 8E030008 */ lw $v1, 8($s0) +/* 069344 7F034814 0FC14E79 */ jal sub_GAME_7F0539E4 +/* 069348 7F034818 24440058 */ addiu $a0, $v0, 0x58 +/* 06934C 7F03481C AE02000C */ sw $v0, 0xc($s0) +.L7F034820: +/* 069350 7F034820 8E030008 */ lw $v1, 8($s0) +.L7F034824: +/* 069354 7F034824 8E05000C */ lw $a1, 0xc($s0) +/* 069358 7F034828 3C048005 */ lui $a0, %hi(clock_timer) +/* 06935C 7F03482C 04600018 */ bltz $v1, .L7F034890 +/* 069360 7F034830 00A03025 */ move $a2, $a1 +/* 069364 7F034834 8C848374 */ lw $a0, %lo(clock_timer)($a0) +/* 069368 7F034838 0083082A */ slt $at, $a0, $v1 +/* 06936C 7F03483C 10200013 */ beqz $at, .L7F03488C +/* 069370 7F034840 00645023 */ subu $t2, $v1, $a0 +/* 069374 7F034844 8E020004 */ lw $v0, 4($s0) +/* 069378 7F034848 00A2C823 */ subu $t9, $a1, $v0 +/* 06937C 7F03484C 03240019 */ multu $t9, $a0 +/* 069380 7F034850 00004012 */ mflo $t0 +/* 069384 7F034854 00000000 */ nop +/* 069388 7F034858 00000000 */ nop +/* 06938C 7F03485C 0103001A */ div $zero, $t0, $v1 +/* 069390 7F034860 00004812 */ mflo $t1 +/* 069394 7F034864 01223021 */ addu $a2, $t1, $v0 +/* 069398 7F034868 14600002 */ bnez $v1, .L7F034874 +/* 06939C 7F03486C 00000000 */ nop +/* 0693A0 7F034870 0007000D */ break 7 +.L7F034874: +/* 0693A4 7F034874 2401FFFF */ li $at, -1 +/* 0693A8 7F034878 14610004 */ bne $v1, $at, .L7F03488C +/* 0693AC 7F03487C 3C018000 */ lui $at, 0x8000 +/* 0693B0 7F034880 15010002 */ bne $t0, $at, .L7F03488C +/* 0693B4 7F034884 00000000 */ nop +/* 0693B8 7F034888 0006000D */ break 6 +.L7F03488C: +/* 0693BC 7F03488C AE0A0008 */ sw $t2, 8($s0) +.L7F034890: +/* 0693C0 7F034890 0FC2FF01 */ jal get_controls_locked_flag +/* 0693C4 7F034894 AFA60024 */ sw $a2, 0x24($sp) +/* 0693C8 7F034898 10400002 */ beqz $v0, .L7F0348A4 +/* 0693CC 7F03489C 8FA60024 */ lw $a2, 0x24($sp) +/* 0693D0 7F0348A0 00003025 */ move $a2, $zero +.L7F0348A4: +/* 0693D4 7F0348A4 8E0B0004 */ lw $t3, 4($s0) +/* 0693D8 7F0348A8 24050008 */ li $a1, 8 +/* 0693DC 7F0348AC 50CB0009 */ beql $a2, $t3, .L7F0348D4 +/* 0693E0 7F0348B0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0693E4 7F0348B4 8E040000 */ lw $a0, ($s0) +/* 0693E8 7F0348B8 0C002461 */ jal sfx_c_70009184 +/* 0693EC 7F0348BC AFA60024 */ sw $a2, 0x24($sp) +/* 0693F0 7F0348C0 8FA60024 */ lw $a2, 0x24($sp) +/* 0693F4 7F0348C4 10000002 */ b .L7F0348D0 +/* 0693F8 7F0348C8 AE060004 */ sw $a2, 4($s0) +/* 0693FC 7F0348CC AE000004 */ sw $zero, 4($s0) +.L7F0348D0: +/* 069400 7F0348D0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0348D4: +/* 069404 7F0348D4 8FB00018 */ lw $s0, 0x18($sp) +/* 069408 7F0348D8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 06940C 7F0348DC 03E00008 */ jr $ra +/* 069410 7F0348E0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void loop_set_sound_effect_all_slots(void) { + +} +#else +GLOBAL_ASM( +.text +glabel loop_set_sound_effect_all_slots +/* 069414 7F0348E4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 069418 7F0348E8 AFB10018 */ sw $s1, 0x18($sp) +/* 06941C 7F0348EC AFB00014 */ sw $s0, 0x14($sp) +/* 069420 7F0348F0 AFBF001C */ sw $ra, 0x1c($sp) +/* 069424 7F0348F4 00008025 */ move $s0, $zero +/* 069428 7F0348F8 24110008 */ li $s1, 8 +.L7F0348FC: +/* 06942C 7F0348FC 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 069430 7F034900 02002025 */ move $a0, $s0 +/* 069434 7F034904 26100001 */ addiu $s0, $s0, 1 +/* 069438 7F034908 1611FFFC */ bne $s0, $s1, .L7F0348FC +/* 06943C 7F03490C 00000000 */ nop +/* 069440 7F034910 8FBF001C */ lw $ra, 0x1c($sp) +/* 069444 7F034914 8FB00014 */ lw $s0, 0x14($sp) +/* 069448 7F034918 8FB10018 */ lw $s1, 0x18($sp) +/* 06944C 7F03491C 03E00008 */ jr $ra +/* 069450 7F034920 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void set_sound_effect_to_slot(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_sound_effect_to_slot +/* 069454 7F034924 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 069458 7F034928 AFBF0014 */ sw $ra, 0x14($sp) +/* 06945C 7F03492C AFA50024 */ sw $a1, 0x24($sp) +/* 069460 7F034930 0480001A */ bltz $a0, .L7F03499C +/* 069464 7F034934 00003025 */ move $a2, $zero +/* 069468 7F034938 28810008 */ slti $at, $a0, 8 +/* 06946C 7F03493C 10200017 */ beqz $at, .L7F03499C +/* 069470 7F034940 00047080 */ sll $t6, $a0, 2 +/* 069474 7F034944 01C47023 */ subu $t6, $t6, $a0 +/* 069478 7F034948 3C0F8007 */ lui $t7, %hi(sfx_related) +/* 06947C 7F03494C 25EF9B70 */ addiu $t7, %lo(sfx_related) # addiu $t7, $t7, -0x6490 +/* 069480 7F034950 000E70C0 */ sll $t6, $t6, 3 +/* 069484 7F034954 01CF1821 */ addu $v1, $t6, $t7 +/* 069488 7F034958 8C650000 */ lw $a1, ($v1) +/* 06948C 7F03495C 10A00007 */ beqz $a1, .L7F03497C +/* 069490 7F034960 00A02025 */ move $a0, $a1 +/* 069494 7F034964 AFA30018 */ sw $v1, 0x18($sp) +/* 069498 7F034968 0C00237C */ jal sfxGetArg0Unk3F +/* 06949C 7F03496C AFA0001C */ sw $zero, 0x1c($sp) +/* 0694A0 7F034970 8FA30018 */ lw $v1, 0x18($sp) +/* 0694A4 7F034974 14400009 */ bnez $v0, .L7F03499C +/* 0694A8 7F034978 8FA6001C */ lw $a2, 0x1c($sp) +.L7F03497C: +/* 0694AC 7F03497C 24027FFF */ li $v0, 32767 +/* 0694B0 7F034980 2418FFFF */ li $t8, -1 +/* 0694B4 7F034984 00603025 */ move $a2, $v1 +/* 0694B8 7F034988 AC62000C */ sw $v0, 0xc($v1) +/* 0694BC 7F03498C AC620004 */ sw $v0, 4($v1) +/* 0694C0 7F034990 AC780008 */ sw $t8, 8($v1) +/* 0694C4 7F034994 AC600010 */ sw $zero, 0x10($v1) +/* 0694C8 7F034998 AC600014 */ sw $zero, 0x14($v1) +.L7F03499C: +/* 0694CC 7F03499C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0694D0 7F0349A0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0694D4 7F0349A4 0C002382 */ jal play_sfx_a1 +/* 0694D8 7F0349A8 87A50026 */ lh $a1, 0x26($sp) +/* 0694DC 7F0349AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0694E0 7F0349B0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0694E4 7F0349B4 03E00008 */ jr $ra +/* 0694E8 7F0349B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0349BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0349BC +/* 0694EC 7F0349BC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0694F0 7F0349C0 0480000A */ bltz $a0, .L7F0349EC +/* 0694F4 7F0349C4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0694F8 7F0349C8 28810008 */ slti $at, $a0, 8 +/* 0694FC 7F0349CC 10200007 */ beqz $at, .L7F0349EC +/* 069500 7F0349D0 00047080 */ sll $t6, $a0, 2 +/* 069504 7F0349D4 01C47023 */ subu $t6, $t6, $a0 +/* 069508 7F0349D8 000E70C0 */ sll $t6, $t6, 3 +/* 06950C 7F0349DC 3C048007 */ lui $a0, %hi(sfx_related) +/* 069510 7F0349E0 008E2021 */ addu $a0, $a0, $t6 +/* 069514 7F0349E4 0C002408 */ jal sfxDeactivate +/* 069518 7F0349E8 8C849B70 */ lw $a0, %lo(sfx_related)($a0) +.L7F0349EC: +/* 06951C 7F0349EC 8FBF0014 */ lw $ra, 0x14($sp) +/* 069520 7F0349F0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 069524 7F0349F4 03E00008 */ jr $ra +/* 069528 7F0349F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +/* + +* Trev's Original Assumption + + +enum ActionCommands +{ + GotoLabel, + GotoLabelFromTop, + Label, + Yield, + End, + JAL, + +}; +u8 get_length_of_action_block(CurrentActionByte) { + enum ActionCommands Action = byte(CurrentActionByte) + switch(Action) + { + case GotoLabel: + return 2; + case GotoLabelFromTop: + return 2; + ... + case 252: + return 1; + default: + return 1; + } +} +*/ + +/* +* With New macro commands +- SUGESTION: Prefix all AI commands with AI +*/ +u8 get_length_of_action_block(u8 *CurrentActionByte) +{ + switch (CurrentActionByte) + { + case goto_next_ID: + return goto_next_LENGTH; + case goto_first_ID: + return goto_first_LENGTH; + case label_ID: + return label_LENGTH; + case ai_sleep_ID: + return ai_sleep_LENGTH; + case ai_list_end_ID: + return ai_list_end_LENGTH; + case jump_to_ai_list_ID: + return jump_to_ai_list_LENGTH; + case set_return_ai_list_ID: + return set_return_ai_list_LENGTH; + case jump_to_return_ai_list_ID: + return jump_to_return_ai_list_LENGTH; + case guard_animation_stop_ID: + return guard_animation_stop_LENGTH; + case guard_kneel_ID: + return guard_kneel_LENGTH; + case guard_play_animation_ID: + return guard_play_animation_LENGTH; + case if_guard_playing_animation_ID: + return if_guard_playing_animation_LENGTH; + case guard_points_at_bond_ID: + return guard_points_at_bond_LENGTH; + case guard_looks_around_self_ID: + return guard_looks_around_self_LENGTH; + case guard_try_sidestepping_ID: + return guard_try_sidestepping_LENGTH; + case guard_try_hopping_sideways_ID: + return guard_try_hopping_sideways_LENGTH; + case guard_try_running_to_side_ID: + return guard_try_running_to_side_LENGTH; + case guard_try_firing_walk_ID: + return guard_try_firing_walk_LENGTH; + case guard_try_firing_run_ID: + return guard_try_firing_run_LENGTH; + case guard_try_firing_roll_ID: + return guard_try_firing_roll_LENGTH; + case guard_try_fire_or_aim_at_target_ID: + return guard_try_fire_or_aim_at_target_LENGTH; + case guard_try_fire_or_aim_at_target_kneel_ID: + return guard_try_fire_or_aim_at_target_kneel_LENGTH; + case guard_try_fire_or_aim_at_target_update_ID: + return guard_try_fire_or_aim_at_target_update_LENGTH; + case guard_try_facing_target_ID: + return guard_try_facing_target_LENGTH; + case chr_hit_body_part_with_item_damage_ID: + return chr_hit_body_part_with_item_damage_LENGTH; + case chr_hit_chr_body_part_with_held_item_ID: + return chr_hit_chr_body_part_with_held_item_LENGTH; + case guard_try_throwing_grenade_ID: + return guard_try_throwing_grenade_LENGTH; + case guard_try_dropping_item_ID: + return guard_try_dropping_item_LENGTH; + case guard_runs_to_pad_ID: + return guard_runs_to_pad_LENGTH; + case guard_runs_to_padpreset_ID: + return guard_runs_to_padpreset_LENGTH; + case guard_walks_to_pad_ID: + return guard_walks_to_pad_LENGTH; + case guard_sprints_to_pad_ID: + return guard_sprints_to_pad_LENGTH; + case guard_start_patrol_ID: + return guard_start_patrol_LENGTH; + case guard_surrenders_ID: + return guard_surrenders_LENGTH; + case guard_remove_fade_ID: + return guard_remove_fade_LENGTH; + case chr_remove_instant_ID: + return chr_remove_instant_LENGTH; + case guard_try_triggering_alarm_at_pad_ID: + return guard_try_triggering_alarm_at_pad_LENGTH; + case alarm_on_ID: + return alarm_on_LENGTH; + case alarm_off_ID: + return alarm_off_LENGTH; + case removed_command27_ID: + return removed_command27_LENGTH; + case guard_try_running_to_bond_position_ID: + return guard_try_running_to_bond_position_LENGTH; + case guard_try_walking_to_bond_position_ID: + return guard_try_walking_to_bond_position_LENGTH; + case guard_try_sprinting_to_bond_position_ID: + return guard_try_sprinting_to_bond_position_LENGTH; + case removed_command2B_ID: + return removed_command2B_LENGTH; + case guard_try_running_to_chr_position_ID: + return guard_try_running_to_chr_position_LENGTH; + case guard_try_walking_to_chr_position_ID: + return guard_try_walking_to_chr_position_LENGTH; + case guard_try_sprinting_to_chr_position_ID: + return guard_try_sprinting_to_chr_position_LENGTH; + case if_guard_has_stopped_moving_ID: + return if_guard_has_stopped_moving_LENGTH; + case if_chr_dying_or_dead_ID: + return if_chr_dying_or_dead_LENGTH; + case if_chr_does_not_exist_ID: + return if_chr_does_not_exist_LENGTH; + case if_guard_sees_bond_ID: + return if_guard_sees_bond_LENGTH; + case random_generate_ID: + return random_generate_LENGTH; + case if_random_seed_less_than_ID: + return if_random_seed_less_than_LENGTH; + case if_random_seed_greater_than_ID: + return if_random_seed_greater_than_LENGTH; + case if_alarm_is_on_unused_ID: + return if_alarm_is_on_unused_LENGTH; + case if_alarm_is_on_ID: + return if_alarm_is_on_LENGTH; + case if_gas_is_leaking_ID: + return if_gas_is_leaking_LENGTH; + case if_guard_heard_bond_ID: + return if_guard_heard_bond_LENGTH; + case if_guard_see_another_guard_shot_ID: + return if_guard_see_another_guard_shot_LENGTH; + case if_guard_see_another_guard_die_ID: + return if_guard_see_another_guard_die_LENGTH; + case if_guard_and_bond_within_line_of_sight_ID: + return if_guard_and_bond_within_line_of_sight_LENGTH; + case if_guard_and_bond_within_partial_line_of_sight_ID: + return if_guard_and_bond_within_partial_line_of_sight_LENGTH; + case if_guard_was_shot_within_last_10_secs_ID: + return if_guard_was_shot_within_last_10_secs_LENGTH; + case if_guard_heard_bond_within_last_10_secs_ID: + return if_guard_heard_bond_within_last_10_secs_LENGTH; + case if_guard_in_room_with_chr_ID: + return if_guard_in_room_with_chr_LENGTH; + case if_guard_is_on_screen_ID: + return if_guard_is_on_screen_LENGTH; + case if_guard_has_not_been_seen_ID: + return if_guard_has_not_been_seen_LENGTH; + case if_guard_room_containing_self_is_on_screen_ID: + return if_guard_room_containing_self_is_on_screen_LENGTH; + case if_room_containing_pad_is_on_screen_ID: + return if_room_containing_pad_is_on_screen_LENGTH; + case if_guard_is_targeted_by_bond_ID: + return if_guard_is_targeted_by_bond_LENGTH; + case if_guard_shot_from_bond_missed_ID: + return if_guard_shot_from_bond_missed_LENGTH; + case if_guard_counter_clockwise_direction_to_bond_less_than_ID: + return if_guard_counter_clockwise_direction_to_bond_less_than_LENGTH; + case if_guard_counter_clockwise_direction_to_bond_greater_than_ID: + return if_guard_counter_clockwise_direction_to_bond_greater_than_LENGTH; + case if_guard_counter_clockwise_direction_from_bond_less_than_ID: + return if_guard_counter_clockwise_direction_from_bond_less_than_LENGTH; + case if_guard_counter_clockwise_direction_from_bond_greater_than_ID: + return if_guard_counter_clockwise_direction_from_bond_greater_than_LENGTH; + case if_guard_distance_to_bond_less_than_ID: + return if_guard_distance_to_bond_less_than_LENGTH; + case if_guard_distance_to_bond_greater_than_ID: + return if_guard_distance_to_bond_greater_than_LENGTH; + case if_chr_distance_to_pad_less_than_ID: + return if_chr_distance_to_pad_less_than_LENGTH; + case if_chr_distance_to_pad_greater_than_ID: + return if_chr_distance_to_pad_greater_than_LENGTH; + case if_guard_distance_to_chr_less_than_ID: + return if_guard_distance_to_chr_less_than_LENGTH; + case if_guard_distance_to_chr_greater_than_ID: + return if_guard_distance_to_chr_greater_than_LENGTH; + case guard_try_setting_chr_preset_to_guard_within_distance_ID: + return guard_try_setting_chr_preset_to_guard_within_distance_LENGTH; + case if_bond_distance_to_pad_less_than_ID: + return if_bond_distance_to_pad_less_than_LENGTH; + case if_bond_distance_to_pad_greater_than_ID: + return if_bond_distance_to_pad_greater_than_LENGTH; + case if_chr_in_room_with_pad_ID: + return if_chr_in_room_with_pad_LENGTH; + case if_bond_in_room_with_pad_ID: + return if_bond_in_room_with_pad_LENGTH; + case if_bond_collected_object_ID: + return if_bond_collected_object_LENGTH; + case if_item_is_stationary_within_level_ID: + return if_item_is_stationary_within_level_LENGTH; + case if_item_is_attached_to_object_ID: + return if_item_is_attached_to_object_LENGTH; + case if_bond_has_item_equipped_ID: + return if_bond_has_item_equipped_LENGTH; + case if_object_exists_ID: + return if_object_exists_LENGTH; + case if_object_not_destroyed_ID: + return if_object_not_destroyed_LENGTH; + case if_object_was_activated_ID: + return if_object_was_activated_LENGTH; + case if_bond_used_gadget_on_object_ID: + return if_bond_used_gadget_on_object_LENGTH; + case object_activate_ID: + return object_activate_LENGTH; + case object_destroy_ID: + return object_destroy_LENGTH; + case object_detach_from_chr_ID: + return object_detach_from_chr_LENGTH; + case chr_drop_all_concealed_items_ID: + return chr_drop_all_concealed_items_LENGTH; + case chr_drop_all_held_items_ID: + return chr_drop_all_held_items_LENGTH; + case bond_collect_object_ID: + return bond_collect_object_LENGTH; + case chr_equip_object_ID: + return chr_equip_object_LENGTH; + case object_move_to_pad_ID: + return object_move_to_pad_LENGTH; + case door_open_ID: + return door_open_LENGTH; + case door_close_ID: + return door_close_LENGTH; + case if_door_state_equal_ID: + return if_door_state_equal_LENGTH; + case if_door_has_been_opened_before_ID: + return if_door_has_been_opened_before_LENGTH; + case door_set_lock_ID: + return door_set_lock_LENGTH; + case door_unset_lock_ID: + return door_unset_lock_LENGTH; + case if_door_lock_equal_ID: + return if_door_lock_equal_LENGTH; + case if_objective_num_complete_ID: + return if_objective_num_complete_LENGTH; + case if_game_difficulty_less_than_ID: + return if_game_difficulty_less_than_LENGTH; + case if_game_difficulty_greater_than_ID: + return if_game_difficulty_greater_than_LENGTH; + case if_mission_time_less_than_ID: + return if_mission_time_less_than_LENGTH; + case if_mission_time_greater_than_ID: + return if_mission_time_greater_than_LENGTH; + case if_system_power_time_less_than_ID: + return if_system_power_time_less_than_LENGTH; + case if_system_power_time_greater_than_ID: + return if_system_power_time_greater_than_LENGTH; + case if_level_id_less_than_ID: + return if_level_id_less_than_LENGTH; + case if_level_id_greater_than_ID: + return if_level_id_greater_than_LENGTH; + case if_guard_hits_less_than_ID: + return if_guard_hits_less_than_LENGTH; + case if_guard_hits_greater_than_ID: + return if_guard_hits_greater_than_LENGTH; + case if_guard_hits_missed_less_than_ID: + return if_guard_hits_missed_less_than_LENGTH; + case if_guard_hits_missed_greater_than_ID: + return if_guard_hits_missed_greater_than_LENGTH; + case if_chr_health_less_than_ID: + return if_chr_health_less_than_LENGTH; + case if_chr_health_greater_than_ID: + return if_chr_health_greater_than_LENGTH; + case if_chr_was_damaged_since_last_check_ID: + return if_chr_was_damaged_since_last_check_LENGTH; + case if_bond_health_less_than_ID: + return if_bond_health_less_than_LENGTH; + case if_bond_health_greater_than_ID: + return if_bond_health_greater_than_LENGTH; + case local_byte_1_set_ID: + return local_byte_1_set_LENGTH; + case local_byte_1_add_ID: + return local_byte_1_add_LENGTH; + case local_byte_1_subtract_ID: + return local_byte_1_subtract_LENGTH; + case if_local_byte_1_less_than_ID: + return if_local_byte_1_less_than_LENGTH; + case if_local_byte_1_less_than_random_seed_ID: + return if_local_byte_1_less_than_random_seed_LENGTH; + case local_byte_2_set_ID: + return local_byte_2_set_LENGTH; + case local_byte_2_add_ID: + return local_byte_2_add_LENGTH; + case local_byte_2_subtract_ID: + return local_byte_2_subtract_LENGTH; + case if_local_byte_2_less_than_ID: + return if_local_byte_2_less_than_LENGTH; + case if_local_byte_2_less_than_random_seed_ID: + return if_local_byte_2_less_than_random_seed_LENGTH; + case guard_set_hearing_scale_ID: + return guard_set_hearing_scale_LENGTH; + case guard_set_vision_range_ID: + return guard_set_vision_range_LENGTH; + case guard_set_grenade_probability_ID: + return guard_set_grenade_probability_LENGTH; + case guard_set_chr_num_ID: + return guard_set_chr_num_LENGTH; + case guard_set_health_total_ID: + return guard_set_health_total_LENGTH; + case guard_set_armour_ID: + return guard_set_armour_LENGTH; + case guard_set_speed_rating_ID: + return guard_set_speed_rating_LENGTH; + case guard_set_argh_rating_ID: + return guard_set_argh_rating_LENGTH; + case guard_set_accuracy_rating_ID: + return guard_set_accuracy_rating_LENGTH; + case guard_bitfield_set_on_ID: + return guard_bitfield_set_on_LENGTH; + case guard_bitfield_set_off_ID: + return guard_bitfield_set_off_LENGTH; + case if_guard_bitfield_is_set_on_ID: + return if_guard_bitfield_is_set_on_LENGTH; + case chr_bitfield_set_on_ID: + return chr_bitfield_set_on_LENGTH; + case chr_bitfield_set_off_ID: + return chr_bitfield_set_off_LENGTH; + case if_chr_bitfield_is_set_on_ID: + return if_chr_bitfield_is_set_on_LENGTH; + case guard_flags_set_on_ID: + return guard_flags_set_on_LENGTH; + case guard_flags_set_off_ID: + return guard_flags_set_off_LENGTH; + case if_guard_flags_is_set_on_ID: + return if_guard_flags_is_set_on_LENGTH; + case chr_flags_set_on_ID: + return chr_flags_set_on_LENGTH; + case chr_flags_set_off_ID: + return chr_flags_set_off_LENGTH; + case if_chr_flags_is_set_on_ID: + return if_chr_flags_is_set_on_LENGTH; + case object_flags_1_set_on_ID: + return object_flags_1_set_on_LENGTH; + case object_flags_1_set_off_ID: + return object_flags_1_set_off_LENGTH; + case if_object_flags_1_is_set_on_ID: + return if_object_flags_1_is_set_on_LENGTH; + case object_flags_2_set_on_ID: + return object_flags_2_set_on_LENGTH; + case object_flags_2_set_off_ID: + return object_flags_2_set_off_LENGTH; + case if_object_flags_2_is_set_on_ID: + return if_object_flags_2_is_set_on_LENGTH; + case guard_set_chr_preset_ID: + return guard_set_chr_preset_LENGTH; + case chr_set_chr_preset_ID: + return chr_set_chr_preset_LENGTH; + case guard_set_pad_preset_ID: + return guard_set_pad_preset_LENGTH; + case chr_set_pad_preset_ID: + return chr_set_pad_preset_LENGTH; + case debug_log_ID: + for (int i = 0; currentaction[i] < debug_log_LENGTH; i++) + { + if (currentaction[i] == debug_log_end) + return i; + } + return debug_log_LENGTH; + case local_timer_reset_start_ID: + return local_timer_reset_start_LENGTH; + case local_timer_reset_ID: + return local_timer_reset_LENGTH; + case local_timer_stop_ID: + return local_timer_stop_LENGTH; + case local_timer_start_ID: + return local_timer_start_LENGTH; + case if_local_timer_has_stopped_ID: + return if_local_timer_has_stopped_LENGTH; + case if_local_timer_less_than_ID: + return if_local_timer_less_than_LENGTH; + case if_local_timer_greater_than_ID: + return if_local_timer_greater_than_LENGTH; + case hud_countdown_show_ID: + return hud_countdown_show_LENGTH; + case hud_countdown_hide_ID: + return hud_countdown_hide_LENGTH; + case hud_countdown_set_ID: + return hud_countdown_set_LENGTH; + case hud_countdown_stop_ID: + return hud_countdown_stop_LENGTH; + case hud_countdown_start_ID: + return hud_countdown_start_LENGTH; + case if_hud_countdown_has_stopped_ID: + return if_hud_countdown_has_stopped_LENGTH; + case if_hud_countdown_less_than_ID: + return if_hud_countdown_less_than_LENGTH; + case if_hud_countdown_greater_than_ID: + return if_hud_countdown_greater_than_LENGTH; + case chr_try_spawning_at_pad_ID: + return chr_try_spawning_at_pad_LENGTH; + case chr_try_spawning_next_to_unseen_chr_ID: + return chr_try_spawning_next_to_unseen_chr_LENGTH; + case guard_try_spawning_item_ID: + return guard_try_spawning_item_LENGTH; + case guard_try_spawning_hat_ID: + return guard_try_spawning_hat_LENGTH; + case chr_try_spawning_clone_ID: + return chr_try_spawning_clone_LENGTH; + case text_print_bottom_ID: + return text_print_bottom_LENGTH; + case text_print_top_ID: + return text_print_top_LENGTH; + case sfx_play_ID: + return sfx_play_LENGTH; + case sfx_emit_from_object_ID: + return sfx_emit_from_object_LENGTH; + case sfx_emit_from_pad_ID: + return sfx_emit_from_pad_LENGTH; + case sfx_set_channel_volume_ID: + return sfx_set_channel_volume_LENGTH; + case sfx_fade_channel_volume_ID: + return sfx_fade_channel_volume_LENGTH; + case sfx_stop_channel_ID: + return sfx_stop_channel_LENGTH; + case if_sfx_channel_volume_less_than_ID: + return if_sfx_channel_volume_less_than_LENGTH; + case vehicle_start_path_ID: + return vehicle_start_path_LENGTH; + case vehicle_speed_ID: + return vehicle_speed_LENGTH; + case aircraft_rotor_speed_ID: + return aircraft_rotor_speed_LENGTH; + case if_camera_is_in_intro_ID: + return if_camera_is_in_intro_LENGTH; + case if_camera_is_in_bond_swirl_ID: + return if_camera_is_in_bond_swirl_LENGTH; + case tv_change_screen_bank_ID: + return tv_change_screen_bank_LENGTH; + case if_bond_in_tank_ID: + return if_bond_in_tank_LENGTH; + case exit_level_ID: + return exit_level_LENGTH; + case camera_return_to_bond_ID: + return camera_return_to_bond_LENGTH; + case camera_look_at_bond_from_pad_ID: + return camera_look_at_bond_from_pad_LENGTH; + case camera_switch_ID: + return camera_switch_LENGTH; + case if_bond_y_pos_less_than_ID: + return if_bond_y_pos_less_than_LENGTH; + case hud_hide_and_lock_controls_ID: + return hud_hide_and_lock_controls_LENGTH; + case hud_show_all_ID: + return hud_show_all_LENGTH; + case chr_try_teleporting_to_pad_ID: + return chr_try_teleporting_to_pad_LENGTH; + case screen_fade_to_black_ID: + return screen_fade_to_black_LENGTH; + case screen_fade_from_black_ID: + return screen_fade_from_black_LENGTH; + case if_screen_fade_completed_ID: + return if_screen_fade_completed_LENGTH; + case chr_hide_all_ID: + return chr_hide_all_LENGTH; + case chr_show_all_ID: + return chr_show_all_LENGTH; + case door_open_instant_ID: + return door_open_instant_LENGTH; + case chr_remove_item_in_hand_ID: + return chr_remove_item_in_hand_LENGTH; + case if_number_of_active_players_less_than_ID: + return if_number_of_active_players_less_than_LENGTH; + case if_bond_item_total_ammo_less_than_ID: + return if_bond_item_total_ammo_less_than_LENGTH; + case bond_equip_item_ID: + return bond_equip_item_LENGTH; + case bond_equip_item_cinema_ID: + return bond_equip_item_cinema_LENGTH; + case bond_set_locked_velocity_ID: + return bond_set_locked_velocity_LENGTH; + case if_object_in_room_with_pad_ID: + return if_object_in_room_with_pad_LENGTH; + case if_guard_is_firing_and_unknown_flag_ID: + return if_guard_is_firing_and_unknown_flag_LENGTH; + case if_guard_is_firing_ID: + return if_guard_is_firing_LENGTH; + case gas_leak_and_switch_fog_ID: + return gas_leak_and_switch_fog_LENGTH; + case mission_time_stop_and_exit_level_on_button_input_ID: + return mission_time_stop_and_exit_level_on_button_input_LENGTH; + case if_bond_is_dead_ID: + return if_bond_is_dead_LENGTH; + case bond_disable_damage_and_pickups_ID: + return bond_disable_damage_and_pickups_LENGTH; + case bond_hide_weapons_ID: + return bond_hide_weapons_LENGTH; + case camera_orbit_pad_ID: + return camera_orbit_pad_LENGTH; + case credits_roll_ID: + return credits_roll_LENGTH; + case if_credits_has_completed_ID: + return if_credits_has_completed_LENGTH; + case if_objective_all_completed_ID: + return if_objective_all_completed_LENGTH; + case if_folder_actor_is_equal_ID: + return if_folder_actor_is_equal_LENGTH; + case if_bond_damage_and_pickups_disabled_ID: + return if_bond_damage_and_pickups_disabled_LENGTH; + case music_xtrack_play_ID: + return music_xtrack_play_LENGTH; + case music_xtrack_stop_ID: + return music_xtrack_stop_LENGTH; + case trigger_explosions_around_bond_ID: + return trigger_explosions_around_bond_LENGTH; + case if_killed_civilians_greater_than_ID: + return if_killed_civilians_greater_than_LENGTH; + case if_chr_was_shot_since_last_check_ID: + return if_chr_was_shot_since_last_check_LENGTH; + case bond_killed_in_action_ID: + return bond_killed_in_action_LENGTH; + case guard_raises_arms_ID: + return guard_raises_arms_LENGTH; + case gas_leak_and_fade_fog_ID: + return gas_leak_and_fade_fog_LENGTH; + case object_rocket_launch_ID: + return object_rocket_launch_LENGTH; + + default: + return 1; + } +} +#else +GLOBAL_ASM( +.late_rodata +/*80052100*/ +glabel jpt_actionblock_lengths +.word action00_length +.word action01_length +.word locret_CODE_7F034A34 +.word locret_CODE_7F034A3C +.word locret_CODE_7F034A44 +.word locret_CODE_7F034A4C +.word locret_CODE_7F034A54 +.word locret_CODE_7F034A5C +.word locret_CODE_7F034A64 +.word locret_CODE_7F034A6C +.word locret_CODE_7F034A74 +.word locret_CODE_7F034A7C +.word locret_CODE_7F034A84 +.word locret_CODE_7F034A8C +.word locret_CODE_7F034A94 +.word locret_CODE_7F034A9C +.word locret_CODE_7F034AA4 +.word locret_CODE_7F034AAC +.word locret_CODE_7F034AB4 +.word locret_CODE_7F034ABC +.word locret_CODE_7F034AC4 +.word locret_CODE_7F034ACC +.word locret_CODE_7F034AE4 +.word locret_CODE_7F034AEC +.word locret_CODE_7F034AF4 +.word locret_CODE_7F034AFC +.word locret_CODE_7F034B04 +.word locret_CODE_7F034B0C +.word locret_CODE_7F034B14 +.word locret_CODE_7F034B1C +.word locret_CODE_7F034B24 +.word locret_CODE_7F034B2C +.word locret_CODE_7F034B34 +.word locret_CODE_7F034B3C +.word locret_CODE_7F034B44 +.word locret_CODE_7F034B4C +.word locret_CODE_7F034B54 +.word locret_CODE_7F034B5C +.word locret_CODE_7F034B64 +.word locret_CODE_7F034B6C +.word locret_CODE_7F034B74 +.word locret_CODE_7F034B7C +.word locret_CODE_7F034B84 +.word locret_CODE_7F034B8C +.word locret_CODE_7F034B94 +.word locret_CODE_7F034B9C +.word locret_CODE_7F034BA4 +.word locret_CODE_7F034BAC +.word locret_CODE_7F034BB4 +.word locret_CODE_7F034BBC +.word locret_CODE_7F034BC4 +.word locret_CODE_7F034BCC +.word locret_CODE_7F034BD4 +.word locret_CODE_7F034BDC +.word locret_CODE_7F034BE4 +.word locret_CODE_7F034BEC +.word locret_CODE_7F034BF4 +.word locret_CODE_7F034BFC +.word locret_CODE_7F034C04 +.word locret_CODE_7F034C0C +.word locret_CODE_7F034C14 +.word locret_CODE_7F034C1C +.word locret_CODE_7F034C24 +.word locret_CODE_7F034C2C +.word locret_CODE_7F034C34 +.word locret_CODE_7F034C3C +.word locret_CODE_7F034C44 +.word locret_CODE_7F034C4C +.word locret_CODE_7F034C54 +.word locret_CODE_7F034C5C +.word locret_CODE_7F034C64 +.word locret_CODE_7F034C6C +.word locret_CODE_7F034C74 +.word locret_CODE_7F034C7C +.word locret_CODE_7F034C84 +.word locret_CODE_7F034C8C +.word locret_CODE_7F034C94 +.word locret_CODE_7F034C9C +.word locret_CODE_7F034CA4 +.word locret_CODE_7F034CAC +.word locret_CODE_7F034CB4 +.word locret_CODE_7F034CBC +.word locret_CODE_7F034CC4 +.word locret_CODE_7F034CCC +.word locret_CODE_7F034CD4 +.word locret_CODE_7F034CDC +.word locret_CODE_7F034CE4 +.word locret_CODE_7F034CEC +.word locret_CODE_7F034CF4 +.word locret_CODE_7F034CFC +.word locret_CODE_7F034D04 +.word locret_CODE_7F034D0C +.word locret_CODE_7F034D14 +.word locret_CODE_7F034D1C +.word locret_CODE_7F034D24 +.word locret_CODE_7F034D2C +.word locret_CODE_7F034D34 +.word locret_CODE_7F034D3C +.word locret_CODE_7F034D44 +.word locret_CODE_7F034D4C +.word locret_CODE_7F034D54 +.word locret_CODE_7F034D5C +.word locret_CODE_7F034D64 +.word locret_CODE_7F034D6C +.word locret_CODE_7F034D74 +.word locret_CODE_7F034D7C +.word locret_CODE_7F034D84 +.word locret_CODE_7F034D8C +.word locret_CODE_7F034D94 +.word locret_CODE_7F034D9C +.word locret_CODE_7F034DA4 +.word locret_CODE_7F034DAC +.word locret_CODE_7F034DB4 +.word locret_CODE_7F034DBC +.word locret_CODE_7F034DC4 +.word locret_CODE_7F034DCC +.word locret_CODE_7F034DD4 +.word locret_CODE_7F034DDC +.word locret_CODE_7F034DE4 +.word locret_CODE_7F034DEC +.word locret_CODE_7F034DF4 +.word locret_CODE_7F034DFC +.word locret_CODE_7F034E04 +.word locret_CODE_7F034E0C +.word locret_CODE_7F034E14 +.word locret_CODE_7F034E1C +.word locret_CODE_7F034E24 +.word locret_CODE_7F034E2C +.word locret_CODE_7F034E34 +.word locret_CODE_7F034E3C +.word locret_CODE_7F034E44 +.word locret_CODE_7F034E4C +.word locret_CODE_7F034E54 +.word locret_CODE_7F034E5C +.word locret_CODE_7F034E64 +.word locret_CODE_7F034E6C +.word locret_CODE_7F034E74 +.word locret_CODE_7F034E7C +.word locret_CODE_7F034E84 +.word locret_CODE_7F034E8C +.word locret_CODE_7F034E94 +.word locret_CODE_7F034E9C +.word locret_CODE_7F034EA4 +.word locret_CODE_7F034EAC +.word locret_CODE_7F034EB4 +.word locret_CODE_7F034EBC +.word locret_CODE_7F034EC4 +.word locret_CODE_7F034ECC +.word locret_CODE_7F034ED4 +.word locret_CODE_7F034EDC +.word locret_CODE_7F034EE4 +.word locret_CODE_7F034EEC +.word locret_CODE_7F034EF4 +.word locret_CODE_7F034EFC +.word locret_CODE_7F034F04 +.word locret_CODE_7F034F0C +.word locret_CODE_7F034F14 +.word locret_CODE_7F034F1C +.word locret_CODE_7F034F24 +.word locret_CODE_7F034F2C +.word locret_CODE_7F034F34 +.word locret_CODE_7F034F3C +.word locret_CODE_7F034F44 +.word locret_CODE_7F034F4C +.word locret_CODE_7F034F54 +.word locret_CODE_7F034F5C +.word locret_CODE_7F034F64 +.word locret_CODE_7F034F6C +.word locret_CODE_7F034F74 +.word locret_CODE_7F034F7C +.word locret_CODE_7F034F84 +.word locret_CODE_7F034F8C +.word locret_CODE_7F034F94 +.word actionAD_length +/*HACK FIXME */ +/*.word locret_CODE_7F034F9C*/ +/*.word locret_CODE_7F034FA4*/ +/*.word locret_CODE_7F034FAC*/ +/*.word locret_CODE_7F034FB4*/ +/*.word locret_CODE_7F034FBC*/ +/*.word locret_CODE_7F034FC4*/ +/*.word locret_CODE_7F034FCC*/ +/*.word locret_CODE_7F034FD4*/ +/*.word locret_CODE_7F034FDC*/ +/*.word locret_CODE_7F034FE4*/ +/*.word locret_CODE_7F034FEC*/ +/*.word locret_CODE_7F034FF4*/ +/*.word locret_CODE_7F034FFC*/ +/*.word locret_CODE_7F035004*/ +/*.word locret_CODE_7F03500C*/ +/*.word locret_CODE_7F035014*/ +/*.word locret_CODE_7F03501C*/ +/*.word locret_CODE_7F035024*/ +/*.word locret_CODE_7F03502C*/ +/*.word locret_CODE_7F035034*/ +/*.word locret_CODE_7F03503C*/ +/*.word locret_CODE_7F035044*/ +/*.word locret_CODE_7F03504C*/ +/*.word locret_CODE_7F035054*/ +/*.word locret_CODE_7F03505C*/ +/*.word locret_CODE_7F035064*/ +/*.word locret_CODE_7F03506C*/ +/*.word locret_CODE_7F035074*/ +/*.word locret_CODE_7F03507C*/ +/*.word locret_CODE_7F035084*/ +/*.word locret_CODE_7F03508C*/ +/*.word locret_CODE_7F035094*/ +/*.word locret_CODE_7F03509C*/ +/*.word locret_CODE_7F0350A4*/ +/*.word locret_CODE_7F0350AC*/ +/*.word locret_CODE_7F0350B4*/ +/*.word locret_CODE_7F0350BC*/ +/*.word locret_CODE_7F0350C4*/ +/*.word locret_CODE_7F0350CC*/ +/*.word locret_CODE_7F0350D4*/ +/*.word locret_CODE_7F0350DC*/ +/*.word locret_CODE_7F0350E4*/ +/*.word locret_CODE_7F0350EC*/ +/*.word locret_CODE_7F0350F4*/ +/*.word locret_CODE_7F0350FC*/ +/*.word locret_CODE_7F035104*/ +/*.word locret_CODE_7F03510C*/ +/*.word locret_CODE_7F035114*/ +/*.word locret_CODE_7F03511C*/ +/*.word locret_CODE_7F035124*/ +/*.word locret_CODE_7F03512C*/ +/*.word locret_CODE_7F035134*/ +/*.word locret_CODE_7F03513C*/ +/*.word locret_CODE_7F035144*/ +/*.word locret_CODE_7F03514C*/ +/*.word locret_CODE_7F035154*/ +/*.word locret_CODE_7F03515C*/ +/*.word locret_CODE_7F034ADC*/ +/*.word locret_CODE_7F034AD4*/ +/*.word locret_CODE_7F035164*/ +/*.word locret_CODE_7F03516C*/ +/*.word locret_CODE_7F035174*/ +/*.word locret_CODE_7F03517C*/ +/*.word locret_CODE_7F035184*/ +/*.word locret_CODE_7F03518C*/ +/*.word locret_CODE_7F035194*/ +/*.word locret_CODE_7F03519C*/ +/*.word locret_CODE_7F0351A4*/ +/*.word locret_CODE_7F0351AC*/ +/*.word locret_CODE_7F0351B4*/ +/*.word locret_CODE_7F0351BC*/ +/*.word locret_CODE_7F0351C4*/ +/*.word locret_CODE_7F0351CC*/ +/*.word locret_CODE_7F0351D4*/ +/*.word locret_CODE_7F0351DC*/ +/*.word locret_CODE_7F0351E4*/ +/*.word locret_CODE_7F0351EC*/ +/*.word locret_CODE_7F0351F4*/ +/*.word actionFC_length*/ +.text +glabel get_length_of_action_block #(CurrentActionByte) +/* 06952C 7F0349FC 00851021 */ addu $v0, $a0, $a1 #v0 = CurrentActionByte +/* 069530 7F034A00 904E0000 */ lbu $t6, ($v0) #t6= Action = byte(v0) +/* 069534 7F034A04 2DC100FD */ sltiu $at, $t6, 0xfd #if not Action less than AI_CMDS_TOTAL +/* 069538 7F034A08 1020020B */ beqz $at, ActionLengthSwitchElse # Action << 2 +/* 06953C 7F034A0C 000E7080 */ sll $t6, $t6, 2 # return 1 //goto ActionLengthSwitchElse +/* 069540 7F034A10 3C018005 */ lui $at, %hi(jpt_actionblock_lengths) #else +/* 069544 7F034A14 002E0821 */ addu $at, $at, $t6 # at = 8005 + t6 +/* 069548 7F034A18 8C2E2100 */ lw $t6, %lo(jpt_actionblock_lengths)($at) # Switch Action +/* 06954C 7F034A1C 01C00008 */ jr $t6 # jump to address held at 80052100+at = Select Case t6 +/* 069550 7F034A20 00000000 */ nop +action00_length: +/* 069554 7F034A24 03E00008 */ jr $ra +/* 069558 7F034A28 24020002 */ li $v0, 2 #return 2 +action01_length: +/* 06955C 7F034A2C 03E00008 */ jr $ra +/* 069560 7F034A30 24020002 */ li $v0, 2 +locret_CODE_7F034A34: +/* 069564 7F034A34 03E00008 */ jr $ra +/* 069568 7F034A38 24020002 */ li $v0, 2 +locret_CODE_7F034A3C: +/* 06956C 7F034A3C 03E00008 */ jr $ra +/* 069570 7F034A40 24020001 */ li $v0, 1 +locret_CODE_7F034A44: +/* 069574 7F034A44 03E00008 */ jr $ra +/* 069578 7F034A48 24020001 */ li $v0, 1 +locret_CODE_7F034A4C: +/* 06957C 7F034A4C 03E00008 */ jr $ra +/* 069580 7F034A50 24020004 */ li $v0, 4 +locret_CODE_7F034A54: +/* 069584 7F034A54 03E00008 */ jr $ra +/* 069588 7F034A58 24020003 */ li $v0, 3 +locret_CODE_7F034A5C: +/* 06958C 7F034A5C 03E00008 */ jr $ra +/* 069590 7F034A60 24020001 */ li $v0, 1 +locret_CODE_7F034A64: +/* 069594 7F034A64 03E00008 */ jr $ra +/* 069598 7F034A68 24020001 */ li $v0, 1 +locret_CODE_7F034A6C: +/* 06959C 7F034A6C 03E00008 */ jr $ra +/* 0695A0 7F034A70 24020001 */ li $v0, 1 +locret_CODE_7F034A74: +/* 0695A4 7F034A74 03E00008 */ jr $ra +/* 0695A8 7F034A78 24020009 */ li $v0, 9 +locret_CODE_7F034A7C: +/* 0695AC 7F034A7C 03E00008 */ jr $ra +/* 0695B0 7F034A80 24020002 */ li $v0, 2 +locret_CODE_7F034A84: +/* 0695B4 7F034A84 03E00008 */ jr $ra +/* 0695B8 7F034A88 24020001 */ li $v0, 1 +locret_CODE_7F034A8C: +/* 0695BC 7F034A8C 03E00008 */ jr $ra +/* 0695C0 7F034A90 24020001 */ li $v0, 1 +locret_CODE_7F034A94: +/* 0695C4 7F034A94 03E00008 */ jr $ra +/* 0695C8 7F034A98 24020002 */ li $v0, 2 +locret_CODE_7F034A9C: +/* 0695CC 7F034A9C 03E00008 */ jr $ra +/* 0695D0 7F034AA0 24020002 */ li $v0, 2 +locret_CODE_7F034AA4: +/* 0695D4 7F034AA4 03E00008 */ jr $ra +/* 0695D8 7F034AA8 24020002 */ li $v0, 2 +locret_CODE_7F034AAC: +/* 0695DC 7F034AAC 03E00008 */ jr $ra +/* 0695E0 7F034AB0 24020002 */ li $v0, 2 +locret_CODE_7F034AB4: +/* 0695E4 7F034AB4 03E00008 */ jr $ra +/* 0695E8 7F034AB8 24020002 */ li $v0, 2 +locret_CODE_7F034ABC: +/* 0695EC 7F034ABC 03E00008 */ jr $ra +/* 0695F0 7F034AC0 24020002 */ li $v0, 2 +locret_CODE_7F034AC4: +/* 0695F4 7F034AC4 03E00008 */ jr $ra +/* 0695F8 7F034AC8 24020006 */ li $v0, 6 +locret_CODE_7F034ACC: +/* 0695FC 7F034ACC 03E00008 */ jr $ra +/* 069600 7F034AD0 24020006 */ li $v0, 6 +locret_CODE_7F034AD4: +/* 069604 7F034AD4 03E00008 */ jr $ra +/* 069608 7F034AD8 24020002 */ li $v0, 2 +locret_CODE_7F034ADC: +/* 06960C 7F034ADC 03E00008 */ jr $ra +/* 069610 7F034AE0 24020002 */ li $v0, 2 +locret_CODE_7F034AE4: +/* 069614 7F034AE4 03E00008 */ jr $ra +/* 069618 7F034AE8 24020006 */ li $v0, 6 +locret_CODE_7F034AEC: +/* 06961C 7F034AEC 03E00008 */ jr $ra +/* 069620 7F034AF0 24020006 */ li $v0, 6 +locret_CODE_7F034AF4: +/* 069624 7F034AF4 03E00008 */ jr $ra +/* 069628 7F034AF8 24020004 */ li $v0, 4 +locret_CODE_7F034AFC: +/* 06962C 7F034AFC 03E00008 */ jr $ra +/* 069630 7F034B00 24020004 */ li $v0, 4 +locret_CODE_7F034B04: +/* 069634 7F034B04 03E00008 */ jr $ra +/* 069638 7F034B08 24020002 */ li $v0, 2 +locret_CODE_7F034B0C: +/* 06963C 7F034B0C 03E00008 */ jr $ra +/* 069640 7F034B10 24020005 */ li $v0, 5 +locret_CODE_7F034B14: +/* 069644 7F034B14 03E00008 */ jr $ra +/* 069648 7F034B18 24020003 */ li $v0, 3 +locret_CODE_7F034B1C: +/* 06964C 7F034B1C 03E00008 */ jr $ra +/* 069650 7F034B20 24020001 */ li $v0, 1 +locret_CODE_7F034B24: +/* 069654 7F034B24 03E00008 */ jr $ra +/* 069658 7F034B28 24020003 */ li $v0, 3 +locret_CODE_7F034B2C: +/* 06965C 7F034B2C 03E00008 */ jr $ra +/* 069660 7F034B30 24020003 */ li $v0, 3 +locret_CODE_7F034B34: +/* 069664 7F034B34 03E00008 */ jr $ra +/* 069668 7F034B38 24020002 */ li $v0, 2 +locret_CODE_7F034B3C: +/* 06966C 7F034B3C 03E00008 */ jr $ra +/* 069670 7F034B40 24020001 */ li $v0, 1 +locret_CODE_7F034B44: +/* 069674 7F034B44 03E00008 */ jr $ra +/* 069678 7F034B48 24020001 */ li $v0, 1 +locret_CODE_7F034B4C: +/* 06967C 7F034B4C 03E00008 */ jr $ra +/* 069680 7F034B50 24020002 */ li $v0, 2 +locret_CODE_7F034B54: +/* 069684 7F034B54 03E00008 */ jr $ra +/* 069688 7F034B58 24020004 */ li $v0, 4 +locret_CODE_7F034B5C: +/* 06968C 7F034B5C 03E00008 */ jr $ra +/* 069690 7F034B60 24020001 */ li $v0, 1 +locret_CODE_7F034B64: +/* 069694 7F034B64 03E00008 */ jr $ra +/* 069698 7F034B68 24020001 */ li $v0, 1 +locret_CODE_7F034B6C: +/* 06969C 7F034B6C 03E00008 */ jr $ra +/* 0696A0 7F034B70 24020002 */ li $v0, 2 +locret_CODE_7F034B74: +/* 0696A4 7F034B74 03E00008 */ jr $ra +/* 0696A8 7F034B78 24020002 */ li $v0, 2 +locret_CODE_7F034B7C: +/* 0696AC 7F034B7C 03E00008 */ jr $ra +/* 0696B0 7F034B80 24020002 */ li $v0, 2 +locret_CODE_7F034B84: +/* 0696B4 7F034B84 03E00008 */ jr $ra +/* 0696B8 7F034B88 24020002 */ li $v0, 2 +locret_CODE_7F034B8C: +/* 0696BC 7F034B8C 03E00008 */ jr $ra +/* 0696C0 7F034B90 24020002 */ li $v0, 2 +locret_CODE_7F034B94: +/* 0696C4 7F034B94 03E00008 */ jr $ra +/* 0696C8 7F034B98 24020003 */ li $v0, 3 +locret_CODE_7F034B9C: +/* 0696CC 7F034B9C 03E00008 */ jr $ra +/* 0696D0 7F034BA0 24020003 */ li $v0, 3 +locret_CODE_7F034BA4: +/* 0696D4 7F034BA4 03E00008 */ jr $ra +/* 0696D8 7F034BA8 24020003 */ li $v0, 3 +locret_CODE_7F034BAC: +/* 0696DC 7F034BAC 03E00008 */ jr $ra +/* 0696E0 7F034BB0 24020002 */ li $v0, 2 +locret_CODE_7F034BB4: +/* 0696E4 7F034BB4 03E00008 */ jr $ra +/* 0696E8 7F034BB8 24020003 */ li $v0, 3 +locret_CODE_7F034BBC: +/* 0696EC 7F034BBC 03E00008 */ jr $ra +/* 0696F0 7F034BC0 24020003 */ li $v0, 3 +locret_CODE_7F034BC4: +/* 0696F4 7F034BC4 03E00008 */ jr $ra +/* 0696F8 7F034BC8 24020002 */ li $v0, 2 +locret_CODE_7F034BCC: +/* 0696FC 7F034BCC 03E00008 */ jr $ra +/* 069700 7F034BD0 24020001 */ li $v0, 1 +locret_CODE_7F034BD4: +/* 069704 7F034BD4 03E00008 */ jr $ra +/* 069708 7F034BD8 24020003 */ li $v0, 3 +locret_CODE_7F034BDC: +/* 06970C 7F034BDC 03E00008 */ jr $ra +/* 069710 7F034BE0 24020003 */ li $v0, 3 +locret_CODE_7F034BE4: +/* 069714 7F034BE4 03E00008 */ jr $ra +/* 069718 7F034BE8 24020002 */ li $v0, 2 +locret_CODE_7F034BEC: +/* 06971C 7F034BEC 03E00008 */ jr $ra +/* 069720 7F034BF0 24020002 */ li $v0, 2 +locret_CODE_7F034BF4: +/* 069724 7F034BF4 03E00008 */ jr $ra +/* 069728 7F034BF8 24020002 */ li $v0, 2 +locret_CODE_7F034BFC: +/* 06972C 7F034BFC 03E00008 */ jr $ra +/* 069730 7F034C00 24020002 */ li $v0, 2 +locret_CODE_7F034C04: +/* 069734 7F034C04 03E00008 */ jr $ra +/* 069738 7F034C08 24020002 */ li $v0, 2 +locret_CODE_7F034C0C: +/* 06973C 7F034C0C 03E00008 */ jr $ra +/* 069740 7F034C10 24020002 */ li $v0, 2 +locret_CODE_7F034C14: +/* 069744 7F034C14 03E00008 */ jr $ra +/* 069748 7F034C18 24020002 */ li $v0, 2 +locret_CODE_7F034C1C: +/* 06974C 7F034C1C 03E00008 */ jr $ra +/* 069750 7F034C20 24020002 */ li $v0, 2 +locret_CODE_7F034C24: +/* 069754 7F034C24 03E00008 */ jr $ra +/* 069758 7F034C28 24020002 */ li $v0, 2 +locret_CODE_7F034C2C: +/* 06975C 7F034C2C 03E00008 */ jr $ra +/* 069760 7F034C30 24020002 */ li $v0, 2 +locret_CODE_7F034C34: +/* 069764 7F034C34 03E00008 */ jr $ra +/* 069768 7F034C38 24020003 */ li $v0, 3 +locret_CODE_7F034C3C: +/* 06976C 7F034C3C 03E00008 */ jr $ra +/* 069770 7F034C40 24020002 */ li $v0, 2 +locret_CODE_7F034C44: +/* 069774 7F034C44 03E00008 */ jr $ra +/* 069778 7F034C48 24020002 */ li $v0, 2 +locret_CODE_7F034C4C: +/* 06977C 7F034C4C 03E00008 */ jr $ra +/* 069780 7F034C50 24020002 */ li $v0, 2 +locret_CODE_7F034C54: +/* 069784 7F034C54 03E00008 */ jr $ra +/* 069788 7F034C58 24020004 */ li $v0, 4 +locret_CODE_7F034C5C: +/* 06978C 7F034C5C 03E00008 */ jr $ra +/* 069790 7F034C60 24020002 */ li $v0, 2 +locret_CODE_7F034C64: +/* 069794 7F034C64 03E00008 */ jr $ra +/* 069798 7F034C68 24020002 */ li $v0, 2 +locret_CODE_7F034C6C: +/* 06979C 7F034C6C 03E00008 */ jr $ra +/* 0697A0 7F034C70 24020003 */ li $v0, 3 +locret_CODE_7F034C74: +/* 0697A4 7F034C74 03E00008 */ jr $ra +/* 0697A8 7F034C78 24020003 */ li $v0, 3 +locret_CODE_7F034C7C: +/* 0697AC 7F034C7C 03E00008 */ jr $ra +/* 0697B0 7F034C80 24020003 */ li $v0, 3 +locret_CODE_7F034C84: +/* 0697B4 7F034C84 03E00008 */ jr $ra +/* 0697B8 7F034C88 24020003 */ li $v0, 3 +locret_CODE_7F034C8C: +/* 0697BC 7F034C8C 03E00008 */ jr $ra +/* 0697C0 7F034C90 24020004 */ li $v0, 4 +locret_CODE_7F034C94: +/* 0697C4 7F034C94 03E00008 */ jr $ra +/* 0697C8 7F034C98 24020004 */ li $v0, 4 +locret_CODE_7F034C9C: +/* 0697CC 7F034C9C 03E00008 */ jr $ra +/* 0697D0 7F034CA0 24020007 */ li $v0, 7 +locret_CODE_7F034CA4: +/* 0697D4 7F034CA4 03E00008 */ jr $ra +/* 0697D8 7F034CA8 24020007 */ li $v0, 7 +locret_CODE_7F034CAC: +/* 0697DC 7F034CAC 03E00008 */ jr $ra +/* 0697E0 7F034CB0 24020005 */ li $v0, 5 +locret_CODE_7F034CB4: +/* 0697E4 7F034CB4 03E00008 */ jr $ra +/* 0697E8 7F034CB8 24020005 */ li $v0, 5 +locret_CODE_7F034CBC: +/* 0697EC 7F034CBC 03E00008 */ jr $ra +/* 0697F0 7F034CC0 24020004 */ li $v0, 4 +locret_CODE_7F034CC4: +/* 0697F4 7F034CC4 03E00008 */ jr $ra +/* 0697F8 7F034CC8 24020006 */ li $v0, 6 +locret_CODE_7F034CCC: +/* 0697FC 7F034CCC 03E00008 */ jr $ra +/* 069800 7F034CD0 24020006 */ li $v0, 6 +locret_CODE_7F034CD4: +/* 069804 7F034CD4 03E00008 */ jr $ra +/* 069808 7F034CD8 24020005 */ li $v0, 5 +locret_CODE_7F034CDC: +/* 06980C 7F034CDC 03E00008 */ jr $ra +/* 069810 7F034CE0 24020004 */ li $v0, 4 +locret_CODE_7F034CE4: +/* 069814 7F034CE4 03E00008 */ jr $ra +/* 069818 7F034CE8 24020003 */ li $v0, 3 +locret_CODE_7F034CEC: +/* 06981C 7F034CEC 03E00008 */ jr $ra +/* 069820 7F034CF0 24020003 */ li $v0, 3 +locret_CODE_7F034CF4: +/* 069824 7F034CF4 03E00008 */ jr $ra +/* 069828 7F034CF8 24020004 */ li $v0, 4 +locret_CODE_7F034CFC: +/* 06982C 7F034CFC 03E00008 */ jr $ra +/* 069830 7F034D00 24020003 */ li $v0, 3 +locret_CODE_7F034D04: +/* 069834 7F034D04 03E00008 */ jr $ra +/* 069838 7F034D08 24020003 */ li $v0, 3 +locret_CODE_7F034D0C: +/* 06983C 7F034D0C 03E00008 */ jr $ra +/* 069840 7F034D10 24020003 */ li $v0, 3 +locret_CODE_7F034D14: +/* 069844 7F034D14 03E00008 */ jr $ra +/* 069848 7F034D18 24020003 */ li $v0, 3 +locret_CODE_7F034D1C: +/* 06984C 7F034D1C 03E00008 */ jr $ra +/* 069850 7F034D20 24020003 */ li $v0, 3 +locret_CODE_7F034D24: +/* 069854 7F034D24 03E00008 */ jr $ra +/* 069858 7F034D28 24020002 */ li $v0, 2 +locret_CODE_7F034D2C: +/* 06985C 7F034D2C 03E00008 */ jr $ra +/* 069860 7F034D30 24020002 */ li $v0, 2 +locret_CODE_7F034D34: +/* 069864 7F034D34 03E00008 */ jr $ra +/* 069868 7F034D38 24020002 */ li $v0, 2 +locret_CODE_7F034D3C: +/* 06986C 7F034D3C 03E00008 */ jr $ra +/* 069870 7F034D40 24020002 */ li $v0, 2 +locret_CODE_7F034D44: +/* 069874 7F034D44 03E00008 */ jr $ra +/* 069878 7F034D48 24020002 */ li $v0, 2 +locret_CODE_7F034D4C: +/* 06987C 7F034D4C 03E00008 */ jr $ra +/* 069880 7F034D50 24020002 */ li $v0, 2 +locret_CODE_7F034D54: +/* 069884 7F034D54 03E00008 */ jr $ra +/* 069888 7F034D58 24020003 */ li $v0, 3 +locret_CODE_7F034D5C: +/* 06988C 7F034D5C 03E00008 */ jr $ra +/* 069890 7F034D60 24020004 */ li $v0, 4 +locret_CODE_7F034D64: +/* 069894 7F034D64 03E00008 */ jr $ra +/* 069898 7F034D68 24020002 */ li $v0, 2 +locret_CODE_7F034D6C: +/* 06989C 7F034D6C 03E00008 */ jr $ra +/* 0698A0 7F034D70 24020002 */ li $v0, 2 +locret_CODE_7F034D74: +/* 0698A4 7F034D74 03E00008 */ jr $ra +/* 0698A8 7F034D78 24020004 */ li $v0, 4 +locret_CODE_7F034D7C: +/* 0698AC 7F034D7C 03E00008 */ jr $ra +/* 0698B0 7F034D80 24020003 */ li $v0, 3 +locret_CODE_7F034D84: +/* 0698B4 7F034D84 03E00008 */ jr $ra +/* 0698B8 7F034D88 24020003 */ li $v0, 3 +locret_CODE_7F034D8C: +/* 0698BC 7F034D8C 03E00008 */ jr $ra +/* 0698C0 7F034D90 24020003 */ li $v0, 3 +locret_CODE_7F034D94: +/* 0698C4 7F034D94 03E00008 */ jr $ra +/* 0698C8 7F034D98 24020004 */ li $v0, 4 +locret_CODE_7F034D9C: +/* 0698CC 7F034D9C 03E00008 */ jr $ra +/* 0698D0 7F034DA0 24020003 */ li $v0, 3 +locret_CODE_7F034DA4: +/* 0698D4 7F034DA4 03E00008 */ jr $ra +/* 0698D8 7F034DA8 24020003 */ li $v0, 3 +locret_CODE_7F034DAC: +/* 0698DC 7F034DAC 03E00008 */ jr $ra +/* 0698E0 7F034DB0 24020003 */ li $v0, 3 +locret_CODE_7F034DB4: +/* 0698E4 7F034DB4 03E00008 */ jr $ra +/* 0698E8 7F034DB8 24020003 */ li $v0, 3 +locret_CODE_7F034DBC: +/* 0698EC 7F034DBC 03E00008 */ jr $ra +/* 0698F0 7F034DC0 24020003 */ li $v0, 3 +locret_CODE_7F034DC4: +/* 0698F4 7F034DC4 03E00008 */ jr $ra +/* 0698F8 7F034DC8 24020004 */ li $v0, 4 +locret_CODE_7F034DCC: +/* 0698FC 7F034DCC 03E00008 */ jr $ra +/* 069900 7F034DD0 24020004 */ li $v0, 4 +locret_CODE_7F034DD4: +/* 069904 7F034DD4 03E00008 */ jr $ra +/* 069908 7F034DD8 24020004 */ li $v0, 4 +locret_CODE_7F034DDC: +/* 06990C 7F034DDC 03E00008 */ jr $ra +/* 069910 7F034DE0 24020004 */ li $v0, 4 +locret_CODE_7F034DE4: +/* 069914 7F034DE4 03E00008 */ jr $ra +/* 069918 7F034DE8 24020003 */ li $v0, 3 +locret_CODE_7F034DEC: +/* 06991C 7F034DEC 03E00008 */ jr $ra +/* 069920 7F034DF0 24020003 */ li $v0, 3 +locret_CODE_7F034DF4: +/* 069924 7F034DF4 03E00008 */ jr $ra +/* 069928 7F034DF8 24020003 */ li $v0, 3 +locret_CODE_7F034DFC: +/* 06992C 7F034DFC 03E00008 */ jr $ra +/* 069930 7F034E00 24020003 */ li $v0, 3 +locret_CODE_7F034E04: +/* 069934 7F034E04 03E00008 */ jr $ra +/* 069938 7F034E08 24020003 */ li $v0, 3 +locret_CODE_7F034E0C: +/* 06993C 7F034E0C 03E00008 */ jr $ra +/* 069940 7F034E10 24020003 */ li $v0, 3 +locret_CODE_7F034E14: +/* 069944 7F034E14 03E00008 */ jr $ra +/* 069948 7F034E18 24020004 */ li $v0, 4 +locret_CODE_7F034E1C: +/* 06994C 7F034E1C 03E00008 */ jr $ra +/* 069950 7F034E20 24020004 */ li $v0, 4 +locret_CODE_7F034E24: +/* 069954 7F034E24 03E00008 */ jr $ra +/* 069958 7F034E28 24020003 */ li $v0, 3 +locret_CODE_7F034E2C: +/* 06995C 7F034E2C 03E00008 */ jr $ra +/* 069960 7F034E30 24020003 */ li $v0, 3 +locret_CODE_7F034E34: +/* 069964 7F034E34 03E00008 */ jr $ra +/* 069968 7F034E38 24020003 */ li $v0, 3 +locret_CODE_7F034E3C: +/* 06996C 7F034E3C 03E00008 */ jr $ra +/* 069970 7F034E40 24020002 */ li $v0, 2 +locret_CODE_7F034E44: +/* 069974 7F034E44 03E00008 */ jr $ra +/* 069978 7F034E48 24020002 */ li $v0, 2 +locret_CODE_7F034E4C: +/* 06997C 7F034E4C 03E00008 */ jr $ra +/* 069980 7F034E50 24020002 */ li $v0, 2 +locret_CODE_7F034E54: +/* 069984 7F034E54 03E00008 */ jr $ra +/* 069988 7F034E58 24020003 */ li $v0, 3 +locret_CODE_7F034E5C: +/* 06998C 7F034E5C 03E00008 */ jr $ra +/* 069990 7F034E60 24020002 */ li $v0, 2 +locret_CODE_7F034E64: +/* 069994 7F034E64 03E00008 */ jr $ra +/* 069998 7F034E68 24020002 */ li $v0, 2 +locret_CODE_7F034E6C: +/* 06999C 7F034E6C 03E00008 */ jr $ra +/* 0699A0 7F034E70 24020002 */ li $v0, 2 +locret_CODE_7F034E74: +/* 0699A4 7F034E74 03E00008 */ jr $ra +/* 0699A8 7F034E78 24020002 */ li $v0, 2 +locret_CODE_7F034E7C: +/* 0699AC 7F034E7C 03E00008 */ jr $ra +/* 0699B0 7F034E80 24020003 */ li $v0, 3 +locret_CODE_7F034E84: +/* 0699B4 7F034E84 03E00008 */ jr $ra +/* 0699B8 7F034E88 24020002 */ li $v0, 2 +locret_CODE_7F034E8C: +/* 0699BC 7F034E8C 03E00008 */ jr $ra +/* 0699C0 7F034E90 24020003 */ li $v0, 3 +locret_CODE_7F034E94: +/* 0699C4 7F034E94 03E00008 */ jr $ra +/* 0699C8 7F034E98 24020002 */ li $v0, 2 +locret_CODE_7F034E9C: +/* 0699CC 7F034E9C 03E00008 */ jr $ra +/* 0699D0 7F034EA0 24020002 */ li $v0, 2 +locret_CODE_7F034EA4: +/* 0699D4 7F034EA4 03E00008 */ jr $ra +/* 0699D8 7F034EA8 24020002 */ li $v0, 2 +locret_CODE_7F034EAC: +/* 0699DC 7F034EAC 03E00008 */ jr $ra +/* 0699E0 7F034EB0 24020003 */ li $v0, 3 +locret_CODE_7F034EB4: +/* 0699E4 7F034EB4 03E00008 */ jr $ra +/* 0699E8 7F034EB8 24020003 */ li $v0, 3 +locret_CODE_7F034EBC: +/* 0699EC 7F034EBC 03E00008 */ jr $ra +/* 0699F0 7F034EC0 24020002 */ li $v0, 2 +locret_CODE_7F034EC4: +/* 0699F4 7F034EC4 03E00008 */ jr $ra +/* 0699F8 7F034EC8 24020002 */ li $v0, 2 +locret_CODE_7F034ECC: +/* 0699FC 7F034ECC 03E00008 */ jr $ra +/* 069A00 7F034ED0 24020002 */ li $v0, 2 +locret_CODE_7F034ED4: +/* 069A04 7F034ED4 03E00008 */ jr $ra +/* 069A08 7F034ED8 24020002 */ li $v0, 2 +locret_CODE_7F034EDC: +/* 069A0C 7F034EDC 03E00008 */ jr $ra +/* 069A10 7F034EE0 24020002 */ li $v0, 2 +locret_CODE_7F034EE4: +/* 069A14 7F034EE4 03E00008 */ jr $ra +/* 069A18 7F034EE8 24020003 */ li $v0, 3 +locret_CODE_7F034EEC: +/* 069A1C 7F034EEC 03E00008 */ jr $ra +/* 069A20 7F034EF0 24020003 */ li $v0, 3 +locret_CODE_7F034EF4: +/* 069A24 7F034EF4 03E00008 */ jr $ra +/* 069A28 7F034EF8 24020003 */ li $v0, 3 +locret_CODE_7F034EFC: +/* 069A2C 7F034EFC 03E00008 */ jr $ra +/* 069A30 7F034F00 24020004 */ li $v0, 4 +locret_CODE_7F034F04: +/* 069A34 7F034F04 03E00008 */ jr $ra +/* 069A38 7F034F08 24020005 */ li $v0, 5 +locret_CODE_7F034F0C: +/* 069A3C 7F034F0C 03E00008 */ jr $ra +/* 069A40 7F034F10 24020005 */ li $v0, 5 +locret_CODE_7F034F14: +/* 069A44 7F034F14 03E00008 */ jr $ra +/* 069A48 7F034F18 24020006 */ li $v0, 6 +locret_CODE_7F034F1C: +/* 069A4C 7F034F1C 03E00008 */ jr $ra +/* 069A50 7F034F20 24020005 */ li $v0, 5 +locret_CODE_7F034F24: +/* 069A54 7F034F24 03E00008 */ jr $ra +/* 069A58 7F034F28 24020005 */ li $v0, 5 +locret_CODE_7F034F2C: +/* 069A5C 7F034F2C 03E00008 */ jr $ra +/* 069A60 7F034F30 24020006 */ li $v0, 6 +locret_CODE_7F034F34: +/* 069A64 7F034F34 03E00008 */ jr $ra +/* 069A68 7F034F38 24020006 */ li $v0, 6 +locret_CODE_7F034F3C: +/* 069A6C 7F034F3C 03E00008 */ jr $ra +/* 069A70 7F034F40 24020006 */ li $v0, 6 +locret_CODE_7F034F44: +/* 069A74 7F034F44 03E00008 */ jr $ra +/* 069A78 7F034F48 24020007 */ li $v0, 7 +locret_CODE_7F034F4C: +/* 069A7C 7F034F4C 03E00008 */ jr $ra +/* 069A80 7F034F50 24020006 */ li $v0, 6 +locret_CODE_7F034F54: +/* 069A84 7F034F54 03E00008 */ jr $ra +/* 069A88 7F034F58 24020006 */ li $v0, 6 +locret_CODE_7F034F5C: +/* 069A8C 7F034F5C 03E00008 */ jr $ra +/* 069A90 7F034F60 24020007 */ li $v0, 7 +locret_CODE_7F034F64: +/* 069A94 7F034F64 03E00008 */ jr $ra +/* 069A98 7F034F68 24020006 */ li $v0, 6 +locret_CODE_7F034F6C: +/* 069A9C 7F034F6C 03E00008 */ jr $ra +/* 069AA0 7F034F70 24020006 */ li $v0, 6 +locret_CODE_7F034F74: +/* 069AA4 7F034F74 03E00008 */ jr $ra +/* 069AA8 7F034F78 24020007 */ li $v0, 7 +locret_CODE_7F034F7C: +/* 069AAC 7F034F7C 03E00008 */ jr $ra +/* 069AB0 7F034F80 24020002 */ li $v0, 2 +locret_CODE_7F034F84: +/* 069AB4 7F034F84 03E00008 */ jr $ra +/* 069AB8 7F034F88 24020003 */ li $v0, 3 +locret_CODE_7F034F8C: +/* 069ABC 7F034F8C 03E00008 */ jr $ra +/* 069AC0 7F034F90 24020003 */ li $v0, 3 +locret_CODE_7F034F94: +/* 069AC4 7F034F94 03E00008 */ jr $ra +/* 069AC8 7F034F98 24020004 */ li $v0, 4 +locret_CODE_7F034F9C: +/* 069ACC 7F034F9C 03E00008 */ jr $ra +/* 069AD0 7F034FA0 24020001 */ li $v0, 1 +locret_CODE_7F034FA4: +/* 069AD4 7F034FA4 03E00008 */ jr $ra +/* 069AD8 7F034FA8 24020001 */ li $v0, 1 +locret_CODE_7F034FAC: +/* 069ADC 7F034FAC 03E00008 */ jr $ra +/* 069AE0 7F034FB0 24020001 */ li $v0, 1 +locret_CODE_7F034FB4: +/* 069AE4 7F034FB4 03E00008 */ jr $ra +/* 069AE8 7F034FB8 24020001 */ li $v0, 1 +locret_CODE_7F034FBC: +/* 069AEC 7F034FBC 03E00008 */ jr $ra +/* 069AF0 7F034FC0 24020002 */ li $v0, 2 +locret_CODE_7F034FC4: +/* 069AF4 7F034FC4 03E00008 */ jr $ra +/* 069AF8 7F034FC8 24020005 */ li $v0, 5 +locret_CODE_7F034FCC: +/* 069AFC 7F034FCC 03E00008 */ jr $ra +/* 069B00 7F034FD0 24020005 */ li $v0, 5 +locret_CODE_7F034FD4: +/* 069B04 7F034FD4 03E00008 */ jr $ra +/* 069B08 7F034FD8 24020001 */ li $v0, 1 +locret_CODE_7F034FDC: +/* 069B0C 7F034FDC 03E00008 */ jr $ra +/* 069B10 7F034FE0 24020001 */ li $v0, 1 +locret_CODE_7F034FE4: +/* 069B14 7F034FE4 03E00008 */ jr $ra +/* 069B18 7F034FE8 24020003 */ li $v0, 3 +locret_CODE_7F034FEC: +/* 069B1C 7F034FEC 03E00008 */ jr $ra +/* 069B20 7F034FF0 24020001 */ li $v0, 1 +locret_CODE_7F034FF4: +/* 069B24 7F034FF4 03E00008 */ jr $ra +/* 069B28 7F034FF8 24020001 */ li $v0, 1 +locret_CODE_7F034FFC: +/* 069B2C 7F034FFC 03E00008 */ jr $ra +/* 069B30 7F035000 24020002 */ li $v0, 2 +locret_CODE_7F035004: +/* 069B34 7F035004 03E00008 */ jr $ra +/* 069B38 7F035008 24020004 */ li $v0, 4 +locret_CODE_7F03500C: +/* 069B3C 7F03500C 03E00008 */ jr $ra +/* 069B40 7F035010 24020004 */ li $v0, 4 +locret_CODE_7F035014: +/* 069B44 7F035014 03E00008 */ jr $ra +/* 069B48 7F035018 2402000C */ li $v0, 12 +locret_CODE_7F03501C: +/* 069B4C 7F03501C 03E00008 */ jr $ra +/* 069B50 7F035020 2402000B */ li $v0, 11 +locret_CODE_7F035024: +/* 069B54 7F035024 03E00008 */ jr $ra +/* 069B58 7F035028 24020009 */ li $v0, 9 +locret_CODE_7F03502C: +/* 069B5C 7F03502C 03E00008 */ jr $ra +/* 069B60 7F035030 24020008 */ li $v0, 8 +locret_CODE_7F035034: +/* 069B64 7F035034 03E00008 */ jr $ra +/* 069B68 7F035038 24020005 */ li $v0, 5 +locret_CODE_7F03503C: +/* 069B6C 7F03503C 03E00008 */ jr $ra +/* 069B70 7F035040 24020003 */ li $v0, 3 +locret_CODE_7F035044: +/* 069B74 7F035044 03E00008 */ jr $ra +/* 069B78 7F035048 24020003 */ li $v0, 3 +locret_CODE_7F03504C: +/* 069B7C 7F03504C 03E00008 */ jr $ra +/* 069B80 7F035050 24020004 */ li $v0, 4 +locret_CODE_7F035054: +/* 069B84 7F035054 03E00008 */ jr $ra +/* 069B88 7F035058 24020005 */ li $v0, 5 +locret_CODE_7F03505C: +/* 069B8C 7F03505C 03E00008 */ jr $ra +/* 069B90 7F035060 24020006 */ li $v0, 6 +locret_CODE_7F035064: +/* 069B94 7F035064 03E00008 */ jr $ra +/* 069B98 7F035068 24020006 */ li $v0, 6 +locret_CODE_7F03506C: +/* 069B9C 7F03506C 03E00008 */ jr $ra +/* 069BA0 7F035070 24020006 */ li $v0, 6 +locret_CODE_7F035074: +/* 069BA4 7F035074 03E00008 */ jr $ra +/* 069BA8 7F035078 24020002 */ li $v0, 2 +locret_CODE_7F03507C: +/* 069BAC 7F03507C 03E00008 */ jr $ra +/* 069BB0 7F035080 24020005 */ li $v0, 5 +locret_CODE_7F035084: +/* 069BB4 7F035084 03E00008 */ jr $ra +/* 069BB8 7F035088 24020002 */ li $v0, 2 +locret_CODE_7F03508C: +/* 069BBC 7F03508C 03E00008 */ jr $ra +/* 069BC0 7F035090 24020005 */ li $v0, 5 +locret_CODE_7F035094: +/* 069BC4 7F035094 03E00008 */ jr $ra +/* 069BC8 7F035098 24020005 */ li $v0, 5 +locret_CODE_7F03509C: +/* 069BCC 7F03509C 03E00008 */ jr $ra +/* 069BD0 7F0350A0 24020002 */ li $v0, 2 +locret_CODE_7F0350A4: +/* 069BD4 7F0350A4 03E00008 */ jr $ra +/* 069BD8 7F0350A8 24020002 */ li $v0, 2 +locret_CODE_7F0350AC: +/* 069BDC 7F0350AC 03E00008 */ jr $ra +/* 069BE0 7F0350B0 24020004 */ li $v0, 4 +locret_CODE_7F0350B4: +/* 069BE4 7F0350B4 03E00008 */ jr $ra +/* 069BE8 7F0350B8 24020002 */ li $v0, 2 +locret_CODE_7F0350BC: +/* 069BEC 7F0350BC 03E00008 */ jr $ra +/* 069BF0 7F0350C0 24020001 */ li $v0, 1 +locret_CODE_7F0350C4: +/* 069BF4 7F0350C4 03E00008 */ jr $ra +/* 069BF8 7F0350C8 24020001 */ li $v0, 1 +locret_CODE_7F0350CC: +/* 069BFC 7F0350CC 03E00008 */ jr $ra +/* 069C00 7F0350D0 24020003 */ li $v0, 3 +locret_CODE_7F0350D4: +/* 069C04 7F0350D4 03E00008 */ jr $ra +/* 069C08 7F0350D8 24020006 */ li $v0, 6 +locret_CODE_7F0350DC: +/* 069C0C 7F0350DC 03E00008 */ jr $ra +/* 069C10 7F0350E0 24020004 */ li $v0, 4 +locret_CODE_7F0350E4: +/* 069C14 7F0350E4 03E00008 */ jr $ra +/* 069C18 7F0350E8 24020002 */ li $v0, 2 +locret_CODE_7F0350EC: +/* 069C1C 7F0350EC 03E00008 */ jr $ra +/* 069C20 7F0350F0 24020001 */ li $v0, 1 +locret_CODE_7F0350F4: +/* 069C24 7F0350F4 03E00008 */ jr $ra +/* 069C28 7F0350F8 24020005 */ li $v0, 5 +locret_CODE_7F0350FC: +/* 069C2C 7F0350FC 03E00008 */ jr $ra +/* 069C30 7F035100 24020001 */ li $v0, 1 +locret_CODE_7F035104: +/* 069C34 7F035104 03E00008 */ jr $ra +/* 069C38 7F035108 24020001 */ li $v0, 1 +locret_CODE_7F03510C: +/* 069C3C 7F03510C 03E00008 */ jr $ra +/* 069C40 7F035110 24020002 */ li $v0, 2 +locret_CODE_7F035114: +/* 069C44 7F035114 03E00008 */ jr $ra +/* 069C48 7F035118 24020001 */ li $v0, 1 +locret_CODE_7F03511C: +/* 069C4C 7F03511C 03E00008 */ jr $ra +/* 069C50 7F035120 24020001 */ li $v0, 1 +locret_CODE_7F035124: +/* 069C54 7F035124 03E00008 */ jr $ra +/* 069C58 7F035128 24020002 */ li $v0, 2 +locret_CODE_7F03512C: +/* 069C5C 7F03512C 03E00008 */ jr $ra +/* 069C60 7F035130 24020003 */ li $v0, 3 +locret_CODE_7F035134: +/* 069C64 7F035134 03E00008 */ jr $ra +/* 069C68 7F035138 24020003 */ li $v0, 3 +locret_CODE_7F03513C: +/* 069C6C 7F03513C 03E00008 */ jr $ra +/* 069C70 7F035140 24020004 */ li $v0, 4 +locret_CODE_7F035144: +/* 069C74 7F035144 03E00008 */ jr $ra +/* 069C78 7F035148 24020002 */ li $v0, 2 +locret_CODE_7F03514C: +/* 069C7C 7F03514C 03E00008 */ jr $ra +/* 069C80 7F035150 24020002 */ li $v0, 2 +locret_CODE_7F035154: +/* 069C84 7F035154 03E00008 */ jr $ra +/* 069C88 7F035158 24020003 */ li $v0, 3 +locret_CODE_7F03515C: +/* 069C8C 7F03515C 03E00008 */ jr $ra +/* 069C90 7F035160 24020005 */ li $v0, 5 +locret_CODE_7F035164: +/* 069C94 7F035164 03E00008 */ jr $ra +/* 069C98 7F035168 24020001 */ li $v0, 1 +locret_CODE_7F03516C: +/* 069C9C 7F03516C 03E00008 */ jr $ra +/* 069CA0 7F035170 24020001 */ li $v0, 1 +locret_CODE_7F035174: +/* 069CA4 7F035174 03E00008 */ jr $ra +/* 069CA8 7F035178 24020002 */ li $v0, 2 +locret_CODE_7F03517C: +/* 069CAC 7F03517C 03E00008 */ jr $ra +/* 069CB0 7F035180 24020001 */ li $v0, 1 +locret_CODE_7F035184: +/* 069CB4 7F035184 03E00008 */ jr $ra +/* 069CB8 7F035188 24020001 */ li $v0, 1 +locret_CODE_7F03518C: +/* 069CBC 7F03518C 03E00008 */ jr $ra +/* 069CC0 7F035190 2402000D */ li $v0, 13 +locret_CODE_7F035194: +/* 069CC4 7F035194 03E00008 */ jr $ra +/* 069CC8 7F035198 24020001 */ li $v0, 1 +locret_CODE_7F03519C: +/* 069CCC 7F03519C 03E00008 */ jr $ra +/* 069CD0 7F0351A0 24020002 */ li $v0, 2 +locret_CODE_7F0351A4: +/* 069CD4 7F0351A4 03E00008 */ jr $ra +/* 069CD8 7F0351A8 24020002 */ li $v0, 2 +locret_CODE_7F0351AC: +/* 069CDC 7F0351AC 03E00008 */ jr $ra +/* 069CE0 7F0351B0 24020003 */ li $v0, 3 +locret_CODE_7F0351B4: +/* 069CE4 7F0351B4 03E00008 */ jr $ra +/* 069CE8 7F0351B8 24020002 */ li $v0, 2 +locret_CODE_7F0351BC: +/* 069CEC 7F0351BC 03E00008 */ jr $ra +/* 069CF0 7F0351C0 24020004 */ li $v0, 4 +locret_CODE_7F0351C4: +/* 069CF4 7F0351C4 03E00008 */ jr $ra +/* 069CF8 7F0351C8 24020002 */ li $v0, 2 +locret_CODE_7F0351CC: +/* 069CFC 7F0351CC 03E00008 */ jr $ra +/* 069D00 7F0351D0 24020001 */ li $v0, 1 +locret_CODE_7F0351D4: +/* 069D04 7F0351D4 03E00008 */ jr $ra +/* 069D08 7F0351D8 24020003 */ li $v0, 3 +locret_CODE_7F0351DC: +/* 069D0C 7F0351DC 03E00008 */ jr $ra +/* 069D10 7F0351E0 24020003 */ li $v0, 3 +locret_CODE_7F0351E4: +/* 069D14 7F0351E4 03E00008 */ jr $ra +/* 069D18 7F0351E8 24020001 */ li $v0, 1 +locret_CODE_7F0351EC: +/* 069D1C 7F0351EC 03E00008 */ jr $ra +/* 069D20 7F0351F0 24020001 */ li $v0, 1 +locret_CODE_7F0351F4: +/* 069D24 7F0351F4 03E00008 */ jr $ra +/* 069D28 7F0351F8 24020001 */ li $v0, 1 +actionFC_length: +/* 069D2C 7F0351FC 03E00008 */ jr $ra +/* 069D30 7F035200 24020002 */ li $v0, 2 + +actionAD_length: +/* 069D34 7F035204 904F0001 */ lbu $t7, 1($v0) +/* 069D38 7F035208 24A30001 */ addiu $v1, $a1, 1 +/* 069D3C 7F03520C 00831021 */ addu $v0, $a0, $v1 +/* 069D40 7F035210 51E00007 */ beql $t7, $zero, .L7F035230 +/* 069D44 7F035214 00651023 */ subu $v0, $v1, $a1 +/* 069D48 7F035218 90580001 */ lbu $t8, 1($v0) +.L7F03521C: +/* 069D4C 7F03521C 24630001 */ addiu $v1, $v1, 1 +/* 069D50 7F035220 24420001 */ addiu $v0, $v0, 1 +/* 069D54 7F035224 5700FFFD */ bnezl $t8, .L7F03521C +/* 069D58 7F035228 90580001 */ lbu $t8, 1($v0) +/* 069D5C 7F03522C 00651023 */ subu $v0, $v1, $a1 +.L7F035230: +/* 069D60 7F035230 03E00008 */ jr $ra +/* 069D64 7F035234 24420001 */ addiu $v0, $v0, 1 + +invalid_type: +ActionLengthSwitchElse: +/* 069D68 7F035238 24020001 */ li $v0, 1 +/* 069D6C 7F03523C 03E00008 */ jr $ra +/* 069D70 7F035240 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F035244(void) +{ + +} +#else +GLOBAL_ASM( +.late_rodata +/*HACK FIXME */ +.word locret_CODE_7F034F9C +.word locret_CODE_7F034FA4 +.word locret_CODE_7F034FAC +.word locret_CODE_7F034FB4 +.word locret_CODE_7F034FBC +.word locret_CODE_7F034FC4 +.word locret_CODE_7F034FCC +.word locret_CODE_7F034FD4 +.word locret_CODE_7F034FDC +.word locret_CODE_7F034FE4 +.word locret_CODE_7F034FEC +.word locret_CODE_7F034FF4 +.word locret_CODE_7F034FFC +.word locret_CODE_7F035004 + +.text +glabel sub_GAME_7F035244 +/* 069D74 7F035244 3C088007 */ lui $t0, %hi(ptr_setup_path_tbl) +/* 069D78 7F035248 25085D00 */ addiu $t0, %lo(ptr_setup_path_tbl) # addiu $t0, $t0, 0x5d00 +/* 069D7C 7F03524C 8D020014 */ lw $v0, 0x14($t0) #v0 = ptr_setup_actions +/* 069D80 7F035250 00A03825 */ move $a3, $a1 +/* 069D84 7F035254 3C198003 */ lui $t9, %hi(D_8003744C) +/* 069D88 7F035258 10400013 */ beqz $v0, .L7F0352A8 +/* 069D8C 7F03525C 00000000 */ nop +/* 069D90 7F035260 8C4E0000 */ lw $t6, ($v0) +/* 069D94 7F035264 00001825 */ move $v1, $zero +/* 069D98 7F035268 00402825 */ move $a1, $v0 +/* 069D9C 7F03526C 11C0000E */ beqz $t6, .L7F0352A8 +/* 069DA0 7F035270 00000000 */ nop +/* 069DA4 7F035274 8C460000 */ lw $a2, ($v0) +.L7F035278: +/* 069DA8 7F035278 54860007 */ bnel $a0, $a2, .L7F035298 +/* 069DAC 7F03527C 8CA60008 */ lw $a2, 8($a1) +/* 069DB0 7F035280 ACE00000 */ sw $zero, ($a3) +/* 069DB4 7F035284 8D0F0014 */ lw $t7, 0x14($t0) +/* 069DB8 7F035288 01E3C021 */ addu $t8, $t7, $v1 +/* 069DBC 7F03528C 03E00008 */ jr $ra +/* 069DC0 7F035290 8F020004 */ lw $v0, 4($t8) + +/* 069DC4 7F035294 8CA60008 */ lw $a2, 8($a1) +.L7F035298: +/* 069DC8 7F035298 24630008 */ addiu $v1, $v1, 8 +/* 069DCC 7F03529C 24A50008 */ addiu $a1, $a1, 8 +/* 069DD0 7F0352A0 14C0FFF5 */ bnez $a2, .L7F035278 +/* 069DD4 7F0352A4 00000000 */ nop +.L7F0352A8: +/* 069DD8 7F0352A8 8F39744C */ lw $t9, %lo(D_8003744C)($t9) +/* 069DDC 7F0352AC 3C098003 */ lui $t1, %hi(D_8003744C) +/* 069DE0 7F0352B0 2523744C */ addiu $v1, $t1, %lo(D_8003744C) +/* 069DE4 7F0352B4 1320000B */ beqz $t9, .L7F0352E4 +/* 069DE8 7F0352B8 240A0001 */ li $t2, 1 +/* 069DEC 7F0352BC 8C620000 */ lw $v0, ($v1) +.L7F0352C0: +/* 069DF0 7F0352C0 54820005 */ bnel $a0, $v0, .L7F0352D8 +/* 069DF4 7F0352C4 8C620008 */ lw $v0, 8($v1) +/* 069DF8 7F0352C8 ACEA0000 */ sw $t2, ($a3) +/* 069DFC 7F0352CC 03E00008 */ jr $ra +/* 069E00 7F0352D0 8C620004 */ lw $v0, 4($v1) + +/* 069E04 7F0352D4 8C620008 */ lw $v0, 8($v1) +.L7F0352D8: +/* 069E08 7F0352D8 24630008 */ addiu $v1, $v1, 8 +/* 069E0C 7F0352DC 1440FFF8 */ bnez $v0, .L7F0352C0 +/* 069E10 7F0352E0 00000000 */ nop +.L7F0352E4: +/* 069E14 7F0352E4 2402FFFF */ li $v0, -1 +/* 069E18 7F0352E8 03E00008 */ jr $ra +/* 069E1C 7F0352EC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +/* MIPS-2-C + +s32 true_if_sucessfully_performing_action(s32 arg0, s32 arg1, s32 arg2) +{ + ? sp3C; + void *temp_v0; + s32 phi_s0; + + // Node 0 + phi_s0 = arg1; +loop_1: + // Node 1 + temp_v0 = arg0 + phi_s0; + if (2 == temp_v0->unk0) + { + // Node 2 + if ((arg2 & 0xff) == temp_v0->unk1) + { + // Node 3 + return phi_s0; + } +block_6: + // Node 6 + phi_s0 = phi_s0 + get_length_of_action_block(arg0, phi_s0); + goto loop_1; + } + // Node 4 + if (4 != temp_v0->unk0) + { + goto block_6; + } + // Node 5 + sub_GAME_7F035244(arg0, &sp3C); + return 0; +}*/ +bool true_if_sucessfully_performing_action(s32 arg0, s32 arg1, s32 arg2) +{ + /* Closest ASM I could get (though not using right tools since still cant get to work... ill try again this weekend)*/ + u8 *v0; //struct + int s0 = arg1; + int s1 = arg0; + + do + { + v0 = arg0 + s0; + if (v0->unk0 == label_ID) + { + if ((arg2 & 255) == v0->unk1) //strip lower byte? + { + return arg1; //exit loop and return + } + + } + if (v0->unk0 == ai_list_end_ID) + { + break; + } + s0 += get_length_of_action_block(arg0, arg1); + } + while (v0->unk0 != 4); + + sub_GAME_7F035244(s1, &v0 + 0x3c); + return 0; +} +#else +GLOBAL_ASM( +.late_rodata +/*HACK FIXME */ +.word locret_CODE_7F03500C +.word locret_CODE_7F035014 +.word locret_CODE_7F03501C +.word locret_CODE_7F035024 +.word locret_CODE_7F03502C +.word locret_CODE_7F035034 +.word locret_CODE_7F03503C +.word locret_CODE_7F035044 +.word locret_CODE_7F03504C +.word locret_CODE_7F035054 +.word locret_CODE_7F03505C +.word locret_CODE_7F035064 +.word locret_CODE_7F03506C + +.text +glabel true_if_sucessfully_performing_action +/* 069E20 7F0352F0 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 069E24 7F0352F4 AFB40028 */ sw $s4, 0x28($sp) +/* 069E28 7F0352F8 AFB30024 */ sw $s3, 0x24($sp) +/* 069E2C 7F0352FC AFB20020 */ sw $s2, 0x20($sp) +/* 069E30 7F035300 AFB1001C */ sw $s1, 0x1c($sp) +/* 069E34 7F035304 AFB00018 */ sw $s0, 0x18($sp) +/* 069E38 7F035308 00A08025 */ move $s0, $a1 # Args 1,0 to save 0,1 +/* 069E3C 7F03530C 00808825 */ move $s1, $a0 +/* 069E40 7F035310 30D200FF */ andi $s2, $a2, 0xff # save 2 = Arg 2 AND 255 - convert to lower byte? +/* 069E44 7F035314 AFBF002C */ sw $ra, 0x2c($sp) +/* 069E48 7F035318 AFA60050 */ sw $a2, 0x50($sp) # save a bunch of stuff +/* 069E4C 7F03531C 24130002 */ li $s3, 2 +/* 069E50 7F035320 24140004 */ li $s4, 4 +.L7F035324: /* Begining*/ +/* 069E54 7F035324 02301021 */ addu $v0, $s1, $s0 # *v0 = a0 + a1 # command+commandLength? +/* 069E58 7F035328 90430000 */ lbu $v1, ($v0) # v1 = Byte(v0) +/* 069E5C 7F03532C 02202025 */ move $a0, $s1 +/* 069E60 7F035330 16630006 */ bne $s3, $v1, .L7F03534C # goto not2 if not v1 = label_ID +/* 069E64 7F035334 00000000 */ nop +/* 069E68 7F035338 904E0001 */ lbu $t6, 1($v0) # t6 = byte(v0[4]) +/* 069E6C 7F03533C 164E000A */ bne $s2, $t6, .L7F035368 # goto AICMDlength if not s2 = t6 +/* 069E70 7F035340 00000000 */ nop +/* 069E74 7F035344 1000000C */ b .L7F035378 # save 0 = v0 goto return +/* 069E78 7F035348 02001025 */ move $v0, $s0 +.L7F03534C: /* Not2*/ +/* 069E7C 7F03534C 16830006 */ bne $s4, $v1, .L7F035368 # goto AICMDlength if not v1 = ai_list_end_ID +/* 069E80 7F035350 00000000 */ nop +/* 069E84 7F035354 02202025 */ move $a0, $s1 +/* 069E88 7F035358 0FC0D491 */ jal sub_GAME_7F035244 +/* 069E8C 7F03535C 27A5003C */ addiu $a1, $sp, 0x3c +/* 069E90 7F035360 10000005 */ b .L7F035378 # goto return +/* 069E94 7F035364 00001025 */ move $v0, $zero +.L7F035368: /* AICMDlength*/ +/* 069E98 7F035368 0FC0D27F */ jal get_length_of_action_block +/* 069E9C 7F03536C 02002825 */ move $a1, $s0 +/* 069EA0 7F035370 1000FFEC */ b .L7F035324 # goto begining +/* 069EA4 7F035374 02028021 */ addu $s0, $s0, $v0 +.L7F035378: /* return*/ +/* 069EA8 7F035378 8FBF002C */ lw $ra, 0x2c($sp) +/* 069EAC 7F03537C 8FB00018 */ lw $s0, 0x18($sp) +/* 069EB0 7F035380 8FB1001C */ lw $s1, 0x1c($sp) +/* 069EB4 7F035384 8FB20020 */ lw $s2, 0x20($sp) +/* 069EB8 7F035388 8FB30024 */ lw $s3, 0x24($sp) +/* 069EBC 7F03538C 8FB40028 */ lw $s4, 0x28($sp) +/* 069EC0 7F035390 03E00008 */ jr $ra +/* 069EC4 7F035394 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +//LoadNext_PrevActionBlock +void LoadNext_PrevActionBlock(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*HACK FIXME */ +.word locret_CODE_7F035074 +.word locret_CODE_7F03507C +.word locret_CODE_7F035084 +.word locret_CODE_7F03508C +.word locret_CODE_7F035094 +.word locret_CODE_7F03509C +.word locret_CODE_7F0350A4 +.word locret_CODE_7F0350AC +.word locret_CODE_7F0350B4 +.word locret_CODE_7F0350BC +.word locret_CODE_7F0350C4 +.word locret_CODE_7F0350CC + +.text +glabel LoadNext_PrevActionBlock +/* 069EC8 7F035398 28810401 */ slti $at, $a0, 0x401 +/* 069ECC 7F03539C 14200014 */ bnez $at, .L7F0353F0 +/* 069ED0 7F0353A0 3C198003 */ lui $t9, %hi(D_8003744C) +/* 069ED4 7F0353A4 3C028007 */ lui $v0, %hi(ptr_setup_actions) +/* 069ED8 7F0353A8 8C425D14 */ lw $v0, %lo(ptr_setup_actions)($v0) +/* 069EDC 7F0353AC 5040001F */ beql $v0, $zero, .L7F03542C #if <= 0 return +/* 069EE0 7F0353B0 00001025 */ move $v0, $zero +/* 069EE4 7F0353B4 8C4E0000 */ lw $t6, ($v0) +/* 069EE8 7F0353B8 00401825 */ move $v1, $v0 +/* 069EEC 7F0353BC 51C0001B */ beql $t6, $zero, .L7F03542C +/* 069EF0 7F0353C0 00001025 */ move $v0, $zero +/* 069EF4 7F0353C4 8C6F0004 */ lw $t7, 4($v1) +.L7F0353C8: +/* 069EF8 7F0353C8 548F0004 */ bnel $a0, $t7, .L7F0353DC +/* 069EFC 7F0353CC 8C780008 */ lw $t8, 8($v1) +/* 069F00 7F0353D0 03E00008 */ jr $ra +/* 069F04 7F0353D4 8C620000 */ lw $v0, ($v1) + +/* 069F08 7F0353D8 8C780008 */ lw $t8, 8($v1) +.L7F0353DC: +/* 069F0C 7F0353DC 24630008 */ addiu $v1, $v1, 8 +/* 069F10 7F0353E0 5700FFF9 */ bnezl $t8, .L7F0353C8 +/* 069F14 7F0353E4 8C6F0004 */ lw $t7, 4($v1) +/* 069F18 7F0353E8 10000010 */ b .L7F03542C +/* 069F1C 7F0353EC 00001025 */ move $v0, $zero +.L7F0353F0: +/* 069F20 7F0353F0 8F39744C */ lw $t9, %lo(D_8003744C)($t9) +/* 069F24 7F0353F4 3C038003 */ lui $v1, %hi(D_8003744C) +/* 069F28 7F0353F8 2463744C */ addiu $v1, %lo(D_8003744C) # addiu $v1, $v1, 0x744c +/* 069F2C 7F0353FC 5320000B */ beql $t9, $zero, .L7F03542C +/* 069F30 7F035400 00001025 */ move $v0, $zero +/* 069F34 7F035404 8C680004 */ lw $t0, 4($v1) +.L7F035408: +/* 069F38 7F035408 54880004 */ bnel $a0, $t0, .L7F03541C +/* 069F3C 7F03540C 8C690008 */ lw $t1, 8($v1) +/* 069F40 7F035410 03E00008 */ jr $ra +/* 069F44 7F035414 8C620000 */ lw $v0, ($v1) + +/* 069F48 7F035418 8C690008 */ lw $t1, 8($v1) +.L7F03541C: +/* 069F4C 7F03541C 24630008 */ addiu $v1, $v1, 8 +/* 069F50 7F035420 5520FFF9 */ bnezl $t1, .L7F035408 +/* 069F54 7F035424 8C680004 */ lw $t0, 4($v1) +/* 069F58 7F035428 00001025 */ move $v0, $zero +.L7F03542C: +/* 069F5C 7F03542C 03E00008 */ jr $ra +/* 069F60 7F035430 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_ptr_path_for_pathnum(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*HACK FIXME */ +.word locret_CODE_7F0350D4 +.word locret_CODE_7F0350DC +.word locret_CODE_7F0350E4 +.word locret_CODE_7F0350EC +.word locret_CODE_7F0350F4 +.word locret_CODE_7F0350FC + +.text +glabel get_ptr_path_for_pathnum +/* 069F64 7F035434 3C058007 */ lui $a1, %hi(ptr_setup_path_sets) +/* 069F68 7F035438 8CA55D10 */ lw $a1, %lo(ptr_setup_path_sets)($a1) +/* 069F6C 7F03543C 00001825 */ move $v1, $zero +/* 069F70 7F035440 8CAE0000 */ lw $t6, ($a1) +/* 069F74 7F035444 00A01025 */ move $v0, $a1 +/* 069F78 7F035448 51C0000C */ beql $t6, $zero, .L7F03547C +/* 069F7C 7F03544C 00001025 */ move $v0, $zero +/* 069F80 7F035450 904F0004 */ lbu $t7, 4($v0) +.L7F035454: +/* 069F84 7F035454 148F0003 */ bne $a0, $t7, .L7F035464 +/* 069F88 7F035458 0003C0C0 */ sll $t8, $v1, 3 +/* 069F8C 7F03545C 03E00008 */ jr $ra +/* 069F90 7F035460 03051021 */ addu $v0, $t8, $a1 + +.L7F035464: +/* 069F94 7F035464 8C590008 */ lw $t9, 8($v0) +/* 069F98 7F035468 24630001 */ addiu $v1, $v1, 1 +/* 069F9C 7F03546C 24420008 */ addiu $v0, $v0, 8 +/* 069FA0 7F035470 5720FFF8 */ bnezl $t9, .L7F035454 +/* 069FA4 7F035474 904F0004 */ lbu $t7, 4($v0) +/* 069FA8 7F035478 00001025 */ move $v0, $zero +.L7F03547C: +/* 069FAC 7F03547C 03E00008 */ jr $ra +/* 069FB0 7F035480 00000000 */ nop +) +#endif + + + + +#ifdef NONMATCHING +void parse_handle_actionblocks(*s1, 1, 0) // s1 = AIListp, 1 = true? (a1 is always set to 1) a2 set to 0 within block +{ + s7 = 0; + if (a1 != ai_sleep) + { + if (a1 == 1) + { + if (s1[3] > 39) + { + if (s1[3] = 40) + { + returnval1 = s1; + } + } + a2 = s1; + } + } + + if (s7 == 0) + { + if (a2 == 0) + { + if (v1 != 0) + { + s2 = v1[336]; + s6 = v1[320]; + } + } + else + { + s2 = a2[336]; + s6 = a2[320]; + } + } + else + { + s2 = s7[432]; + s6 = s7[416]; + } + + if (s6 != 0) + { + //10 * something + //60 * something + + do + { + if (cmd < AI_CMDS_TOTAL) + { + switch Byte(cmd) + case 0: + NextStatement = +2; + true_if_sucessfully_performing_action(); + break; + //... + } + else + { + //cmd << 2; + cmdpos += get_length_of_action_block(cmd) //GetAICmdLen(Cmd) + } + } + while (action != 4) + } +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +/*HACK FIXME */ +.word locret_CODE_7F035104 +.word locret_CODE_7F03510C +.word locret_CODE_7F035114 +.word locret_CODE_7F03511C +.word locret_CODE_7F035124 +.word locret_CODE_7F03512C +.word locret_CODE_7F035134 +.word locret_CODE_7F03513C +.word locret_CODE_7F035144 +.word locret_CODE_7F03514C +.word locret_CODE_7F035154 +.word locret_CODE_7F03515C +.word locret_CODE_7F034ADC +.word locret_CODE_7F034AD4 +.word locret_CODE_7F035164 +.word locret_CODE_7F03516C +.word locret_CODE_7F035174 +.word locret_CODE_7F03517C +.word locret_CODE_7F035184 +.word locret_CODE_7F03518C +.word locret_CODE_7F035194 +.word locret_CODE_7F03519C +.word locret_CODE_7F0351A4 +.word locret_CODE_7F0351AC +.word locret_CODE_7F0351B4 +.word locret_CODE_7F0351BC +.word locret_CODE_7F0351C4 +.word locret_CODE_7F0351CC +.word locret_CODE_7F0351D4 +.word locret_CODE_7F0351DC +.word locret_CODE_7F0351E4 +.word locret_CODE_7F0351EC +.word locret_CODE_7F0351F4 +.word actionFC_length +.late_rodata +glabel D_800524F4 +.word 0x40c90fdb /*6.2831855*/ +/*D:800524F8*/ +glabel jpt_800524F8 +.word Action00_GoToLabel +.word Action01_GoToLabelFromTop +.word Action02_Label +.word action03_Leave_The_Routine_When_Return_Continue_From_Spot_1 +.word Action04_End_1 +.word action05_Jump_To_Function_4 +.word action06_Set_Return_Subroutine_for_0007_Command_3 +.word action07_Jump_to_Return_Subroutine_1 +.word action08_Reset_Animation_1 +.word action09_Guard_Kneels_1 +.word action0A_Animation_9 +.word action0B_If_Guard_WastingTime_SwatFlies_RVL_2 +.word action0C_Guard_Gestures_1 +.word action0D_Guard_Looks_Around_When_Shot_At_1 +.word action0E_Guard_Steps_Sideways_RVL_2 +.word action0F_Guard_Hops_Sideways_RVL_2 +.word action10_Guard_Runs_Sideways_RVL_2 +.word action11_Guard_Walks_Firing_RVL_2 +.word action12_Guard_Runs_Firing_RVL_2 +.word action13_Guard_Rolls_On_Ground_Then_Fires_Crouched_RVL_2 +.word action14_Guard_Aims_Shoots_at_Bond_Guard_Pad_RVL_6 +.word action15_Guard_Kneels_Aims_Shoots_at_Bond_Guard_Pad_RVL_6 +.word action16_Guard_Shoots_Guards_Without_Animation_Change_RVL_6 +.word action17_Guard_Constantly_Angles_To_Face_RVL_6 +.word action18_Shoot_Guard_ID_In_Style_With_Weapon_Type_num_4 +.word action19_Guard_ID1_Shoots_Guard_ID2_In_Style_4 +.word action1A_Guard_Throws_Grenade_RVL_2 +.word action1B_Drop_Weapon_Inventory_num_RVL_5 +.word action1C_Guard_Jogs_To_Preset_3 +.word action1D_Guard_Jogs_To_Predefined_Preset_2328_1 +.word action1E_Guard_Walks_To_Preset_3 +.word action1F_Guard_Runs__To_Preset_3 +.word action20_Activate_Path_2 +.word action21_Guard_Surrenders_1 +.word action22_Guard_Set_To_Move_Fades_And_Disappear_1 +.word action23_Eliminate_Guard_ID_2 +.word action24_Activate_Object_At_Preset_RVL_If_Successful_4 +.word action25_Sound_Alarm_1 +.word action26_Turn_Off_Alarm_1 +.word action27_Return_False_Invalid_Type_2 +.word action28_Jog_To_Bond_Return_Loop_When_Reached_Bond_2 +.word action29_Walk_To_Bond_Return_Loop_When_Reached_Bond_2 +.word action2A_Run_To_Bond_Return_Loop_When_Reached_Bond_2 +.word action2B_Return_False_Invalid_Type_2 +.word action2C_Jog_To_Character_Position_RVL_On_Arrival_3 +.word action2D_Walk_To_Character_Position_RVL_On_Arrival_3 +.word action2E_Run_To_Character_Position_RVL_On_Arrival_3 +.word action2F_When_Guard_Stops_Moving_RVL_2 +.word action30_Detect_If_Guard_Killed_RVL_If_So_3 +.word action31_If_GuardID_Finish_DeathAnimation_RVL_3 +.word action32_If_Bond_In_Sight_RVL_2 +.word action33_Seed_Random_Byte_1 +.word action34_If_Seeded_Byte_LTV_Go_Into_RVL_3 +.word action35_If_Seeded_Byte_GTV_Go_Into_RVL_3 +.word action36_If_Alarm_Activated_RVL_Plus_Stack_2 +.word action37_If_Alarm_Activated_RVL_2 +.word action38_If_Toxic_Gas_Released_RVL_2 +.word action39_If_Guard_Heard_Gunfire_RVL_2 +.word action3A_If_Bond_Shoots_Another_Guard_RVL_2 +.word action3B_If_Guard_Killed_In_Front_Of_Guard_RVL_2 +.word action3C_If_Guard_In_Firing_Range_RVL_2 +.word action3D___Unused___Unknown___2 +.word action3E_If_Shot_Current_Guard_RVL_2 +.word action3F_If_Heard_Bond_RVL_2 +.word action40_If_Another_Guard_In_Same_Room_As_Guard_ID_RVL_3 +.word action41_If_Guard_Has_Been_On_Screen_RVL_2 +.word action42_If_Current_Guard_On_Screen_In_Loaded_Room_RVL_2 +.word action43_If_Guard_In_A_Room_Currently_Loaded_RVL_2 +.word action44_If_Room_Containing_Preset_Is_Loaded_RVL_4 +.word action45_Go_To_RVL_If_Bond_Has_Guard_At_Gunpoint_2 +.word action46_If_Fired_A_Shot_RVL_2 +.word action47_If_Distance_Between_Bond_And_Guard_LTV_RVL_3 +.word action48_If_Distance_Between_Bond_And_Guard_GTV_RVL_3 +.word action49_Test_if_Actor_and_Player_CCWAngle_LTV_RVL_Unused_3 +.word action4A_Test_if_Actor_and_Player_CCWAngle_GTV_RVL_Unused_3 +.word action4B_RVL_If_In_Proximity_Of_Bond_4 +.word action4C_RVL_If_Not_In_Proximity_Of_Bond_4 +.word action4D_When_Guard_In_Proximity_Of_Preset_RVL_7 +.word action4E_When_Guard_Not_In_Proximity_Of_Preset_RVL_7 +.word action4F_If_Current_Guard_Is_In_Units_Of_Guard_ID_RVL_5 +.word action50_If_Current_Guard_Is_Not_In_Units_Of_Guard_ID_RVL_5 +.word action51_SetClosestGuardUnitsGuardID_Then_RVL_IfSuccess_4 +.word action52_GoIntoRVLIf_In_Units_Of_Preset_6 +.word action53_GoIntoRVLIf_Not_In_Units_Of_Preset_6 +.word action54_GoIntoRVLIf_Guard_Is_At_Preset_5 +.word action55_GoIntoRVLIf_Entered_Room_with_Preset_4 +.word action56_GoIntoRVLIf_16_Object_num_Collected_3 +.word action57_GoIntoRVLIf_Specified_Weapon_Deposited_3 +.word action58_GoIntoRVLIf_SpecifiedWeaponDeposited_On16Object_4 +.word action59_GoIntoRVLIf_Specified_Weapon_Is_Out_3 +.word action5A_GoIntoRVLIf_Type_16_Object_num_Loaded_3 +.word action5B_GoIntoRVLIf_16_Object_num_Not_Destroyed_3 +.word action5C_GoIntoRVLIf_16_Object_num_Activated_3 +.word action5D_GoIntoRVLIf_Gadget_Used_On_16_Object_num_3 +.word action5E_16_Object_Activates_2 +.word action5F_16_Object_Explodes_2 +.word action60_Guard_Drops_16_Object_num_2 +.word action61_Kill_Guard_num_2 +.word action62_Guard_num_Throws_Equipment_2 +.word action63_Guard_Gives_Bond_16_Object_num_2 +.word action64_Type_16_Object_Equipped_On_Guard_3 +.word action65_Object_Moved_To_Preset_4 +.word action66_Open_Door_2 +.word action67_Close_Door_2 +.word action68_Check_Door_Status_RVL_If_Met_4 +.word action69_If_16_Object_Is_Valid_Door_RVL_3 +.word action6A_Set_Bits_To_Lock_On_Type_16_Door_3 +.word action6B_Unset_Bits_To_Lock_On_Type_16_Door_3 +.word action6C_If_Tagged_Locked_Door_16_Objects_Toggled_RVL_4 +.word action6D_If_Objective_num_Complete_RVL_3 +.word action6E_If_Guard_2328_Preset_RVL_3 +.word action6F_If_Guard_2328_Preset_Set_RVL_3 +.word action70_Go_Into_RVL_Difficulty_LTV_3 +.word action71_GoIntoRVLIf_Difficulty_GTV_3 +.word action72_Go_To_RVL_If_Time_LTV_4 +.word action73_Go_To_RVL_If_Time_GTV_4 +.word action74_Go_To_RVL_If_Power_On_Time_LTV_4 +.word action75_Go_To_RVL_If_Power_On_Time_GTV_4 +.word action76_Go_To_RVL_If_Stage_Number_LTV_3 +.word action77_Go_To_RVL_If_Stage_Number_GTV_3 +.word action78_Go_To_RVL_If_Guard_Shot_LTV_3 +.word action79_Go_To_RVL_If_Guard_Shot_GTV_3 +.word action7A_Go_To_RVL_If_Number_Near_Miss_Gunshots_LTV_3 +.word action7B_Go_To_RVL_If_Number_Near_Miss_Gunshots_GTV_3 +.word action7C_If_Guard_Health_Below_Value_RVL_4 +.word action7D_If_Guard_Health_Above_Value_RVL_4 +.word action7E_If_Guard_nums_Bitflag_01000000_Set_RVL_3 +.word action7F_If_Health_Below_Value_RVL_3 +.word action80_If_Health_Above_Value_RVL_3 +.word action81_Set_User_Byte_num1_2 +.word action82_Add_Value_To_User_Byte_num1_Max_To_FF_2 +.word action83_Subtract_Value_To_User_Byte_num1_Min_To_0_2 +.word action84_If_Value_GreaterThan_User_Byte_num1_RVL_3 +.word action85_If_User_Byte_num1_LessThan_Random_Value_RVL_2 +.word action86_Set_User_Byte_num2_2 +.word action87_Add_Value_To_User_Byte_num2_Max_To_FF_2 +.word action88_Subtract_Value_To_User_Byte_num2_Min_To_0_2 +.word action89_If_Value_GreaterThan_User_Byte_num2_RVL_3 +.word action8A_If_User_Byte_num2_LessThan_Random_Value_RVL_2 +.word action8B_Set_Guard_Hearing_Distance_3 +.word action8C_Set_Guard_Visible_Distance_2 +.word action8D_Set_Guard_Grenade_Probability_2 +.word action8E_Set_Guard_ID_2 +.word action8F_Set_Guard_Health_3 +.word action90_Set_Guard_Armor_Amount_3 +.word action91_Set_Character_Reaction_Speed_2 +.word action92_Set_Character_Injury_Recovery_Speed_2 +.word action93_Set_Character_Accuracy_2 +.word action94_Mask_Guard_Type_With_Value_2 +.word action95_Unmask_Guard_Type_With_Value_2 +.word action96_If_Guard_Type_Value_Is_Set_RVL_3 +.word action97_Mask_Guard_Type_Flags_With_Value_3 +.word action98_Unmask_Guard_Type_Flags_With_Value_3 +.word action99_If_Guard_Type_Flags_Set_RVL_4 +.word action9A_Set_Objective_Bits_5 +.word action9B_Unset_Objective_Value_5 +.word action9C_Check_If_Objective_Value_Return_Loop_If_So_6 +.word action9D_Set_Guard_Bit_Tags_5 +.word action9E_Unset_Guard_Bit_Tags_5 +.word action9F_Check_Guard_Bits_If_Same_RVL_6 +.word actionA0_Set_Guard_ID_Bits_6 +.word actionA1_Unset_Guard_ID_Bits_6 +.word actionA2_Check_Guard_Bits_If_Same_RVL_7 +.word actionA3_Set_State_Bits_16_Type_Object_6 +.word actionA4_Unset_State_Bits_16_Type_Object_6 +.word actionA5_Check_State_Bits_16_Type_Object_If_Same_RVL_7 +.word actionA6_Set_16_Object_States_More_6 +.word actionA7_Unset_16_Object_States_More_6 +.word actionA8_Check_16_Object_States_More_If_Same_RVL_7 +.word actionA9_Sets_To_Guard_ID_Fc_Current_Guard_2 +.word actionAA_Sets_FC_Value_For_Guard_ID_To_Guard_ID_3 +.word actionAB_Set_Current_Guards_2328_Value_To_Preset_3 +.word actionAC_Set_Guard_ID_numS_2328_Value_To_Preset_4 +.word actionAD_Debug_Comment_20 +.word actionAE_Reset_Cycle_Counter_And_Enable_It_1 +.word actionAF_Reset_Cycle_Counter_1 +.word actionB0_Disable_Cycle_Counter_1 +.word actionB1_Enable_Cycle_Counter_1 +.word actionB2_Check_Cycle_Counter_Enable_Status_2 +.word actionB3_If_Cycle_Counter_LTV_RVL_5 +.word actionB4_If_Cycle_Counter_GTV_RVL_5 +.word actionB5_Show_Timer_1 +.word actionB6_Hide_Timer_Silent_Countdown_1 +.word actionB7_Set_Timer_X_Seconds__Doesnt_Show_Timer_Yet_3 +.word actionB8_Stop_Timer_1 +.word actionB9_Start_Timer_1 +.word actionBA_Check_Timer_Enabled_Status_RVL_If_Enabled_2 +.word actionBB_Detect_If_Timer_Below_Certain_Point_RVL_If_So_4 +.word actionBC_Detect_If_Timer_Above_Certain_Point_RVL_If_So_4 +.word actionBD_Spawn_Guard_C +.word actionBE_Respawn_Guard_with_ID_B +.word actionBF_Spawn_Weapon_9 +.word actionC0_Spawn_Hat_8 +.word actionC1_GuardIDDoesAV_If_Gunfire_RVL_WhenComplete_5 +.word actionC2_Display_Text_Preset_Bottom_Screen_3 +.word actionC3_Display_Text_Preset_Top_Screen_3 +.word actionC4_Play_Sound_Effect_num_In_Slot_num_0_7_4 +.word actionC5_EmanateSoundSlotnumFrom16ObjectWithAudibleRV_5 +.word actionC6_EmanateSoundSlotnumFromPresetWithAudibleRV_6 +.word actionC7_Sound_In_Slot_num_Crecendos_To_Volume_Over_ms_6 +.word actionC8_Sound_In_Slot_num_Fades_To_Volume_Over_ms_6 +.word actionC9_Shut_Off_Sound_In_Slot_Number_2 +.word actionCA_If_Value_GreaterThan_Volume_7FFF_Max_RVL_5 +.word actionCB_Set_Object_Path_27_Type_Object_2 +.word actionCC_Set_Speed_Moving_Vehicle_27_Type_Object_5 +.word actionCD_Set_Speed_Aircraft_Rotor_5 +.word actionCE_Detect_If_Currently_In_Intro_Camera_RVL_If_So_2 +.word actionCF_Detect_If_Currently_In_Intro_Swirl_RVL_If_So_2 +.word actionD0_Change_Animation_Type_Of_Type_16_Monitor_4 +.word actionD1_If_Bond_In_Tank_RVL_2 +.word actionD2_Exit_Level_1 +.word actionD3_Return_From_Camera_Scene_1 +.word actionD4_Camera_Looks_At_Bond_From_Preset_3 +.word actionD5_Go_To_Camera_Position_6 +.word actionD6_If_Less_Than_Elevation_RVL_4 +.word actionD7_Disable_Text_Variable_2 +.word actionD8_Enable_All_On_Screen_Displays_1 +.word actionD9_GuardIDMovedToPresetReturnLoopIfSuccessful_5 +.word actionDA_Fade_Out_From_Cut_Scene_1 +.word actionDB_Fade_In_From_Black_Reset_DA_1 +.word actionDC_RVL_When_Fade_Complete_2 +.word actionDD_Remove_All_Guards_1 +.word actionDE_Bring_Removed_Guards_Back_1 +.word actionDF_Open_Type_16_Door_Used_Cut_Scenes_2 +.word actionE0_Guard_ID_Draws_Weapon_num_3 +.word actionE1_If_Fewer_than_This_Many_Players_Playing_RVL_3 +.word actionE2_If_Ammo_Value_In_Type_Is_LTV_RVL_4 +.word actionE3_Draw_Weapon_From_Inventory_In_Game_2 +.word actionE4_Draw_Weapon_From_Inventory_Cut_Scene_2 +.word actionE5_Set_Bonds_Speed_3 +.word actionE6_If_16_Object_And_Preset_Are_In_Same_Room_RVL_5 +.word actionE7_If_Guard_Moving_And_Shooting_RVL_2 +.word actionE8_If_Guard_Is_Shooting_RVL_2 +.word actionE9_Instantly_Switch_Sky_To_Sky_2_1 +.word actionEA_Stop_Game_Time_1 +.word actionEB_If_Key_Pressed_RVL_2 +.word actionEC_Disable_Player_Pickups_1 +.word actionED_Hide_First_Person_Display_1 +.word actionEE_Cuba_Circular_Camera_Aim_D +.word actionEF_Trigger_Credits_1 +.word actionF0_RVL_If_Credits_Completed_2 +.word actionF1_If_All_Objectives_Complete_RVL_2 +.word actionF2_Check_Current_Folder_Bond_RVL_3 +.word actionF3_If_Player_Pickups_Disabled_RVL_2 +.word actionF4_PlaysValuenum1ThemeSlot03ForValuenum2Seconds_4 +.word actionF5_Turn_Off_Music_In_Slot_num_0_3_2 +.word actionF6_Trigger_Explosions_Around_Bond_1 +.word actionF7_If_Number_Of_Hostages_Scientists_Killed_RVL_3 +.word actionF8_If_Guard_ID_00200000_Flag_Set_Unset_And_Return_3 +.word actionF9_Set_Killed_In_Action_Automatic_Mission_Failure_1 +.word actionFA_Guard_Fawns_On_Shoulder_1 +.word actionFB_SwitchToSkyValuenumAndActivateGasContainersIfExist_ +.word actionFC_Launch_Shuttle_2 + +glabel D_800528EC +.word 0x3dcccccd /*0.1*/ +glabel D_800528F0 +.word 0x3dcccccd /*0.1*/ +glabel D_800528F4 +.word 0x3dcccccd /*0.1*/ +glabel D_800528F8 +.word 0x3dcccccd /*0.1*/ + +glabel jpt_800528FC +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word .L7F038C24 +.word .L7F038C24 +.word .L7F038C24 +.word .L7F038C24 +.word .L7F038C24 +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C + +glabel D_80052974 +.word 0x3c888888 /*0.016666666*/ +glabel D_80052978 +.word 0x3e955555 /*0.29166666*/ +.word 0 + +.text +glabel parse_handle_actionblocks +/* 069FB4 7F035484 27BDF848 */ addiu $sp, $sp, -0x7b8 +/* 069FB8 7F035488 AFB7006C */ sw $s7, 0x6c($sp) +/* 069FBC 7F03548C AFB60068 */ sw $s6, 0x68($sp) #free s2 for CurrentActionByte ? +/* 069FC0 7F035490 24010003 */ li $at, 3 #ai_sleep +/* 069FC4 7F035494 AFBF0074 */ sw $ra, 0x74($sp) +/* 069FC8 7F035498 AFBE0070 */ sw $fp, 0x70($sp) +/* 069FCC 7F03549C AFB50064 */ sw $s5, 0x64($sp) +/* 069FD0 7F0354A0 AFB40060 */ sw $s4, 0x60($sp) +/* 069FD4 7F0354A4 AFB3005C */ sw $s3, 0x5c($sp) +/* 069FD8 7F0354A8 AFB20058 */ sw $s2, 0x58($sp) #free s2 for CurrentActionByteSize ? +/* 069FDC 7F0354AC AFB10054 */ sw $s1, 0x54($sp) +/* 069FE0 7F0354B0 AFB00050 */ sw $s0, 0x50($sp) +/* 069FE4 7F0354B4 F7BA0048 */ sdc1 $f26, 0x48($sp) +/* 069FE8 7F0354B8 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 069FEC 7F0354BC F7B60038 */ sdc1 $f22, 0x38($sp) +/* 069FF0 7F0354C0 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 069FF4 7F0354C4 0000B825 */ move $s7, $zero +/* 069FF8 7F0354C8 00003025 */ move $a2, $zero +/* 069FFC 7F0354CC 00001825 */ move $v1, $zero +/* 06A000 7F0354D0 14A10003 */ bne $a1, $at, .L7F0354E0 +/* 06A004 7F0354D4 0000B025 */ move $s6, $zero +/* 06A008 7F0354D8 1000000E */ b .L7F035514 +/* 06A00C 7F0354DC 0080B825 */ move $s7, $a0 +.L7F0354E0: +/* 06A010 7F0354E0 24010001 */ li $at, 1 +/* 06A014 7F0354E4 14A1000B */ bne $a1, $at, .L7F035514 +/* 06A018 7F0354E8 00000000 */ nop +/* 06A01C 7F0354EC 90820003 */ lbu $v0, 3($a0) +/* 06A020 7F0354F0 24010027 */ li $at, 39 +/* 06A024 7F0354F4 54410004 */ bnel $v0, $at, .L7F035508 +/* 06A028 7F0354F8 24010028 */ li $at, 40 +/* 06A02C 7F0354FC 10000005 */ b .L7F035514 +/* 06A030 7F035500 00803025 */ move $a2, $a0 +/* 06A034 7F035504 24010028 */ li $at, 40 +.L7F035508: +/* 06A038 7F035508 14410002 */ bne $v0, $at, .L7F035514 +/* 06A03C 7F03550C 00000000 */ nop +/* 06A040 7F035510 00801825 */ move $v1, $a0 +.L7F035514: +/* 06A044 7F035514 12E00005 */ beqz $s7, .L7F03552C +/* 06A048 7F035518 3C018005 */ lui $at, %hi(D_800524F4) +/* 06A04C 7F03551C 96F20108 */ lhu $s2, 0x108($s7) # Load Size of command +/* 06A050 7F035520 8EF60104 */ lw $s6, 0x104($s7) # load command +/* 06A054 7F035524 1000000C */ b .L7F035558 +/* 06A058 7F035528 AFB207A4 */ sw $s2, 0x7a4($sp) # save command size +.L7F03552C: +/* 06A05C 7F03552C 10C00005 */ beqz $a2, .L7F035544 +/* 06A060 7F035530 00000000 */ nop +/* 06A064 7F035534 94D20084 */ lhu $s2, 0x84($a2) +/* 06A068 7F035538 8CD60080 */ lw $s6, 0x80($a2) +/* 06A06C 7F03553C 10000006 */ b .L7F035558 +/* 06A070 7F035540 AFB207A4 */ sw $s2, 0x7a4($sp) +.L7F035544: +/* 06A074 7F035544 10600004 */ beqz $v1, .L7F035558 +/* 06A078 7F035548 00000000 */ nop +/* 06A07C 7F03554C 94720084 */ lhu $s2, 0x84($v1) +/* 06A080 7F035550 8C760080 */ lw $s6, 0x80($v1) +/* 06A084 7F035554 AFB207A4 */ sw $s2, 0x7a4($sp) +.L7F035558: +/* 06A088 7F035558 12C01329 */ beqz $s6, Action04_End_1 +/* 06A08C 7F03555C 8FB207A4 */ lw $s2, 0x7a4($sp) +/* 06A090 7F035560 C43A24F4 */ lwc1 $f26, %lo(D_800524F4)($at) +/* 06A094 7F035564 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 06A098 7F035568 4481C000 */ mtc1 $at, $f24 +/* 06A09C 7F03556C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 06A0A0 7F035570 3C1E8003 */ lui $fp, %hi(ptr_guard_data) +/* 06A0A4 7F035574 4481B000 */ mtc1 $at, $f22 +/* 06A0A8 7F035578 4480A000 */ mtc1 $zero, $f20 +/* 06A0AC 7F03557C 27DECC64 */ addiu $fp, %lo(ptr_guard_data) # addiu $fp, $fp, -0x339c +/* 06A0B0 7F035580 02D28821 */ addu $s1, $s6, $s2 +/* 06A0B4 7F035584 AFA307AC */ sw $v1, 0x7ac($sp) +/* 06A0B8 7F035588 AFA607B0 */ sw $a2, 0x7b0($sp) +GetByteS1_ParseCommandByte_SwitchCase: /*GetCommandByte(cmd)*/ +/* 06A0BC 7F03558C 922E0000 */ lbu $t6, ($s1) #t6 = byte(s1) +ParseCommandByte_SwitchCase: +/* 06A0C0 7F035590 02C02025 */ move $a0, $s6 +/* 06A0C4 7F035594 2DC100FD */ sltiu $at, $t6, 0xfd # if Cmd !< AI_CMDS_TOTAL then +/* 06A0C8 7F035598 10201314 */ beqz $at, GetCmdLength # Cmd<<2 goto GetCmdLength +/* 06A0CC 7F03559C 000E7080 */ sll $t6, $t6, 2 +/* 06A0D0 7F0355A0 3C018005 */ lui $at, %hi(jpt_800524F8) +/* 06A0D4 7F0355A4 002E0821 */ addu $at, $at, $t6 # else //get cmd +/* 06A0D8 7F0355A8 8C2E24F8 */ lw $t6, %lo(jpt_800524F8)($at) # switch t6(look up table for switch 0x800524f8) +/* 06A0DC 7F0355AC 01C00008 */ jr $t6 # return cmd +/* 06A0E0 7F0355B0 00000000 */ nop +Action00_GoToLabel: #case 0 +/* 06A0E4 7F0355B4 02C02025 */ move $a0, $s6 +/* 06A0E8 7F0355B8 02402825 */ move $a1, $s2 +/* 06A0EC 7F0355BC 0FC0D4BC */ jal true_if_sucessfully_performing_action #(command, commandsize, nextcommand[4]) +/* 06A0F0 7F0355C0 92260001 */ lbu $a2, 1($s1) +/* 06A0F4 7F0355C4 00409025 */ move $s2, $v0 +/* 06A0F8 7F0355C8 1000FFF0 */ b GetByteS1_ParseCommandByte_SwitchCase # GetCommandByte(currcmd + currcmdLength); +/* 06A0FC 7F0355CC 02C28821 */ addu $s1, $s6, $v0 +Action01_GoToLabelFromTop: #case 1 +/* 06A100 7F0355D0 02C02025 */ move $a0, $s6 +/* 06A104 7F0355D4 00002825 */ move $a1, $zero +/* 06A108 7F0355D8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A10C 7F0355DC 92260001 */ lbu $a2, 1($s1) +/* 06A110 7F0355E0 00409025 */ move $s2, $v0 +/* 06A114 7F0355E4 1000FFE9 */ b GetByteS1_ParseCommandByte_SwitchCase #break +/* 06A118 7F0355E8 02C28821 */ addu $s1, $s6, $v0 +Action02_Label: #case 2 +/* 06A11C 7F0355EC 26520002 */ addiu $s2, $s2, 2 # s2++ PC ? # CurrentActionByte += 2 +/* 06A120 7F0355F0 1000FFE6 */ b GetByteS1_ParseCommandByte_SwitchCase # s1 +=2; goto 58c +/* 06A124 7F0355F4 26310002 */ addiu $s1, $s1, 2 +action03_Leave_The_Routine_When_Return_Continue_From_Spot_1: +/* 06A128 7F0355F8 12E00004 */ beqz $s7, .L7F03560C # s2++ PC? +/* 06A12C 7F0355FC 26520001 */ addiu $s2, $s2, 1 # if s7 = 0 goto 0c If actionblock not initilised else ? +/* 06A130 7F035600 AEF60104 */ sw $s6, 0x104($s7) # s7.104 = s6 +/* 06A134 7F035604 100012FE */ b Action04_End_1 # s7.108 = u16(s2) +/* 06A138 7F035608 A6F20108 */ sh $s2, 0x108($s7) # goto end1 (load return addr) +.L7F03560C: +/* 06A13C 7F03560C 8FAF07B0 */ lw $t7, 0x7b0($sp) +/* 06A140 7F035610 8FB807AC */ lw $t8, 0x7ac($sp) +/* 06A144 7F035614 11E00004 */ beqz $t7, .L7F035628 # if t7 = 0 goto 28 +/* 06A148 7F035618 00000000 */ nop +/* 06A14C 7F03561C ADF60080 */ sw $s6, 0x80($t7) #else t7.80 = s6 +/* 06A150 7F035620 100012F7 */ b Action04_End_1 # t7.84 = u16(s2) +/* 06A154 7F035624 A5F20084 */ sh $s2, 0x84($t7) # end1 (load return addr) +.L7F035628: +/* 06A158 7F035628 530012F6 */ beql $t8, $zero, Action04_End_2 # load return addr (same as end1 (sp.74)) +/* 06A15C 7F03562C 8FBF0074 */ lw $ra, 0x74($sp) # if t8 = 0 goto end2 (skip return addr) +/* 06A160 7F035630 AF160080 */ sw $s6, 0x80($t8) # else t8.80 = s6 +/* 06A164 7F035634 100012F2 */ b Action04_End_1 # t8.84 = u16(s2) +/* 06A168 7F035638 A7120084 */ sh $s2, 0x84($t8) # end1(load return addr) +action05_Jump_To_Function_4: +/* 06A16C 7F03563C 92390002 */ lbu $t9, 2($s1) +/* 06A170 7F035640 922A0003 */ lbu $t2, 3($s1) +/* 06A174 7F035644 92250001 */ lbu $a1, 1($s1) +/* 06A178 7F035648 00194A00 */ sll $t1, $t9, 8 +/* 06A17C 7F03564C 012A1825 */ or $v1, $t1, $t2 +/* 06A180 7F035650 306BFFFF */ andi $t3, $v1, 0xffff +/* 06A184 7F035654 240100FD */ li $at, 253 +/* 06A188 7F035658 14A10007 */ bne $a1, $at, .L7F035678 +/* 06A18C 7F03565C 01601825 */ move $v1, $t3 +/* 06A190 7F035660 01602025 */ move $a0, $t3 +/* 06A194 7F035664 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A198 7F035668 00009025 */ move $s2, $zero +/* 06A19C 7F03566C 0040B025 */ move $s6, $v0 +/* 06A1A0 7F035670 1000FFC6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A1A4 7F035674 00408825 */ move $s1, $v0 +.L7F035678: +/* 06A1A8 7F035678 02E02025 */ move $a0, $s7 +/* 06A1AC 7F03567C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A1B0 7F035680 A7A30792 */ sh $v1, 0x792($sp) +/* 06A1B4 7F035684 97A30792 */ lhu $v1, 0x792($sp) +/* 06A1B8 7F035688 10400006 */ beqz $v0, .L7F0356A4 +/* 06A1BC 7F03568C 00408025 */ move $s0, $v0 +/* 06A1C0 7F035690 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A1C4 7F035694 00602025 */ move $a0, $v1 +/* 06A1C8 7F035698 AE020104 */ sw $v0, 0x104($s0) +/* 06A1CC 7F03569C A6000108 */ sh $zero, 0x108($s0) +/* 06A1D0 7F0356A0 A2000008 */ sb $zero, 8($s0) +.L7F0356A4: +/* 06A1D4 7F0356A4 26520004 */ addiu $s2, $s2, 4 +/* 06A1D8 7F0356A8 1000FFB8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A1DC 7F0356AC 26310004 */ addiu $s1, $s1, 4 +action06_Set_Return_Subroutine_for_0007_Command_3: +/* 06A1E0 7F0356B0 922C0001 */ lbu $t4, 1($s1) +/* 06A1E4 7F0356B4 922E0002 */ lbu $t6, 2($s1) +/* 06A1E8 7F0356B8 8FB807B0 */ lw $t8, 0x7b0($sp) +/* 06A1EC 7F0356BC 000C6A00 */ sll $t5, $t4, 8 +/* 06A1F0 7F0356C0 01AE1025 */ or $v0, $t5, $t6 +/* 06A1F4 7F0356C4 304FFFFF */ andi $t7, $v0, 0xffff +/* 06A1F8 7F0356C8 12E00005 */ beqz $s7, .L7F0356E0 +/* 06A1FC 7F0356CC 01E01025 */ move $v0, $t7 +/* 06A200 7F0356D0 A6EF010A */ sh $t7, 0x10a($s7) +/* 06A204 7F0356D4 26520003 */ addiu $s2, $s2, 3 +/* 06A208 7F0356D8 1000FFAC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A20C 7F0356DC 26310003 */ addiu $s1, $s1, 3 +.L7F0356E0: +/* 06A210 7F0356E0 13000005 */ beqz $t8, .L7F0356F8 +/* 06A214 7F0356E4 8FB907AC */ lw $t9, 0x7ac($sp) +/* 06A218 7F0356E8 A7020086 */ sh $v0, 0x86($t8) +/* 06A21C 7F0356EC 26520003 */ addiu $s2, $s2, 3 +/* 06A220 7F0356F0 1000FFA6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A224 7F0356F4 26310003 */ addiu $s1, $s1, 3 +.L7F0356F8: +/* 06A228 7F0356F8 13200002 */ beqz $t9, .L7F035704 +/* 06A22C 7F0356FC 26520003 */ addiu $s2, $s2, 3 +/* 06A230 7F035700 A7220086 */ sh $v0, 0x86($t9) +.L7F035704: +/* 06A234 7F035704 1000FFA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A238 7F035708 26310003 */ addiu $s1, $s1, 3 +action07_Jump_to_Return_Subroutine_1: +/* 06A23C 7F03570C 12E00006 */ beqz $s7, .L7F035728 +/* 06A240 7F035710 00009025 */ move $s2, $zero +/* 06A244 7F035714 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A248 7F035718 86E4010A */ lh $a0, 0x10a($s7) +/* 06A24C 7F03571C 0040B025 */ move $s6, $v0 +/* 06A250 7F035720 1000FF9A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A254 7F035724 00408825 */ move $s1, $v0 +.L7F035728: +/* 06A258 7F035728 8FA907B0 */ lw $t1, 0x7b0($sp) +/* 06A25C 7F03572C 8FAA07AC */ lw $t2, 0x7ac($sp) +/* 06A260 7F035730 11200006 */ beqz $t1, .L7F03574C +/* 06A264 7F035734 00000000 */ nop +/* 06A268 7F035738 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A26C 7F03573C 85240086 */ lh $a0, 0x86($t1) +/* 06A270 7F035740 0040B025 */ move $s6, $v0 +/* 06A274 7F035744 1000FF91 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A278 7F035748 00408825 */ move $s1, $v0 +.L7F03574C: +/* 06A27C 7F03574C 11400004 */ beqz $t2, .L7F035760 +/* 06A280 7F035750 00000000 */ nop +/* 06A284 7F035754 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A288 7F035758 85440086 */ lh $a0, 0x86($t2) +/* 06A28C 7F03575C 0040B025 */ move $s6, $v0 +.L7F035760: +/* 06A290 7F035760 1000FF8A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A294 7F035764 02C08825 */ move $s1, $s6 +action08_Reset_Animation_1: +/* 06A298 7F035768 0FC0CD75 */ jal sub_GAME_7F0335D4 +/* 06A29C 7F03576C 02E02025 */ move $a0, $s7 +/* 06A2A0 7F035770 26520001 */ addiu $s2, $s2, 1 +/* 06A2A4 7F035774 1000FF85 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A2A8 7F035778 26310001 */ addiu $s1, $s1, 1 +action09_Guard_Kneels_1: +/* 06A2AC 7F03577C 0FC0CDB1 */ jal check_if_able_to_then_kneel +/* 06A2B0 7F035780 02E02025 */ move $a0, $s7 +/* 06A2B4 7F035784 26520001 */ addiu $s2, $s2, 1 +/* 06A2B8 7F035788 1000FF80 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A2BC 7F03578C 26310001 */ addiu $s1, $s1, 1 +action0A_Animation_9: +/* 06A2C0 7F035790 922B0001 */ lbu $t3, 1($s1) +/* 06A2C4 7F035794 922D0002 */ lbu $t5, 2($s1) +/* 06A2C8 7F035798 3401FFFF */ li $at, 65535 +/* 06A2CC 7F03579C 000B6200 */ sll $t4, $t3, 8 +/* 06A2D0 7F0357A0 018D7025 */ or $t6, $t4, $t5 +/* 06A2D4 7F0357A4 AFAE077C */ sw $t6, 0x77c($sp) +/* 06A2D8 7F0357A8 922F0003 */ lbu $t7, 3($s1) +/* 06A2DC 7F0357AC 92290005 */ lbu $t1, 5($s1) +/* 06A2E0 7F0357B0 92390004 */ lbu $t9, 4($s1) +/* 06A2E4 7F0357B4 922B0006 */ lbu $t3, 6($s1) +/* 06A2E8 7F0357B8 000FC200 */ sll $t8, $t7, 8 +/* 06A2EC 7F0357BC 00095200 */ sll $t2, $t1, 8 +/* 06A2F0 7F0357C0 03198025 */ or $s0, $t8, $t9 +/* 06A2F4 7F0357C4 014B6025 */ or $t4, $t2, $t3 +/* 06A2F8 7F0357C8 16010002 */ bne $s0, $at, .L7F0357D4 +/* 06A2FC 7F0357CC AFAC0774 */ sw $t4, 0x774($sp) +/* 06A300 7F0357D0 00008025 */ move $s0, $zero +.L7F0357D4: +/* 06A304 7F0357D4 8FB30774 */ lw $s3, 0x774($sp) +/* 06A308 7F0357D8 3401FFFF */ li $at, 65535 +/* 06A30C 7F0357DC 02E02025 */ move $a0, $s7 +/* 06A310 7F0357E0 16610002 */ bne $s3, $at, .L7F0357EC +/* 06A314 7F0357E4 8FAF07AC */ lw $t7, 0x7ac($sp) +/* 06A318 7F0357E8 2413FFFF */ li $s3, -1 +.L7F0357EC: +/* 06A31C 7F0357EC 12E0000C */ beqz $s7, .L7F035820 +/* 06A320 7F0357F0 00000000 */ nop +/* 06A324 7F0357F4 922D0007 */ lbu $t5, 7($s1) +/* 06A328 7F0357F8 8FA5077C */ lw $a1, 0x77c($sp) +/* 06A32C 7F0357FC 02003025 */ move $a2, $s0 +/* 06A330 7F035800 AFAD0010 */ sw $t5, 0x10($sp) +/* 06A334 7F035804 922E0008 */ lbu $t6, 8($s1) +/* 06A338 7F035808 02603825 */ move $a3, $s3 +/* 06A33C 7F03580C 0FC0CDC0 */ jal check_if_able_to_then_perform_animation +/* 06A340 7F035810 AFAE0014 */ sw $t6, 0x14($sp) +/* 06A344 7F035814 26520009 */ addiu $s2, $s2, 9 +/* 06A348 7F035818 1000FF5C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A34C 7F03581C 26310009 */ addiu $s1, $s1, 9 +.L7F035820: +/* 06A350 7F035820 11E0001B */ beqz $t7, .L7F035890 +/* 06A354 7F035824 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 06A358 7F035828 44813000 */ mtc1 $at, $f6 +/* 06A35C 7F03582C 8DE40014 */ lw $a0, 0x14($t7) +/* 06A360 7F035830 44902000 */ mtc1 $s0, $f4 +/* 06A364 7F035834 E7A60010 */ swc1 $f6, 0x10($sp) +/* 06A368 7F035838 92290008 */ lbu $t1, 8($s1) +/* 06A36C 7F03583C 46802120 */ cvt.s.w $f4, $f4 +/* 06A370 7F035840 8FB8077C */ lw $t8, 0x77c($sp) +/* 06A374 7F035844 44894000 */ mtc1 $t1, $f8 +/* 06A378 7F035848 3C058003 */ lui $a1, %hi(animation_table_ptrs2) +/* 06A37C 7F03584C 0018C880 */ sll $t9, $t8, 2 +/* 06A380 7F035850 468042A0 */ cvt.s.w $f10, $f8 +/* 06A384 7F035854 00B92821 */ addu $a1, $a1, $t9 +/* 06A388 7F035858 44072000 */ mfc1 $a3, $f4 +/* 06A38C 7F03585C 8CA5A04C */ lw $a1, %lo(animation_table_ptrs2)($a1) +/* 06A390 7F035860 00003025 */ move $a2, $zero +/* 06A394 7F035864 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 06A398 7F035868 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 06A39C 7F03586C 06620009 */ bltzl $s3, .L7F035894 +/* 06A3A0 7F035870 26520009 */ addiu $s2, $s2, 9 +/* 06A3A4 7F035874 44938000 */ mtc1 $s3, $f16 +/* 06A3A8 7F035878 8FAA07AC */ lw $t2, 0x7ac($sp) +/* 06A3AC 7F03587C 46808420 */ cvt.s.w $f16, $f16 +/* 06A3B0 7F035880 8D440014 */ lw $a0, 0x14($t2) +/* 06A3B4 7F035884 44058000 */ mfc1 $a1, $f16 +/* 06A3B8 7F035888 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 06A3BC 7F03588C 00000000 */ nop +.L7F035890: +/* 06A3C0 7F035890 26520009 */ addiu $s2, $s2, 9 +.L7F035894: +/* 06A3C4 7F035894 1000FF3D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A3C8 7F035898 26310009 */ addiu $s1, $s1, 9 +action0B_If_Guard_WastingTime_SwatFlies_RVL_2: +/* 06A3CC 7F03589C 82EB0007 */ lb $t3, 7($s7) +/* 06A3D0 7F0358A0 24010003 */ li $at, 3 +/* 06A3D4 7F0358A4 02C02025 */ move $a0, $s6 +/* 06A3D8 7F0358A8 15610006 */ bne $t3, $at, .L7F0358C4 +/* 06A3DC 7F0358AC 02402825 */ move $a1, $s2 +/* 06A3E0 7F0358B0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A3E4 7F0358B4 92260001 */ lbu $a2, 1($s1) +/* 06A3E8 7F0358B8 00409025 */ move $s2, $v0 +/* 06A3EC 7F0358BC 1000FF33 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A3F0 7F0358C0 02C28821 */ addu $s1, $s6, $v0 +.L7F0358C4: +/* 06A3F4 7F0358C4 26520002 */ addiu $s2, $s2, 2 +/* 06A3F8 7F0358C8 1000FF30 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A3FC 7F0358CC 26310002 */ addiu $s1, $s1, 2 +action0C_Guard_Gestures_1: +/* 06A400 7F0358D0 0FC0CD84 */ jal check_if_able_to_then_shuffle_feet +/* 06A404 7F0358D4 02E02025 */ move $a0, $s7 +/* 06A408 7F0358D8 26520001 */ addiu $s2, $s2, 1 +/* 06A40C 7F0358DC 1000FF2B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A410 7F0358E0 26310001 */ addiu $s1, $s1, 1 +action0D_Guard_Looks_Around_When_Shot_At_1: +/* 06A414 7F0358E4 0FC0CDA2 */ jal check_if_able_to_then_look_flustered +/* 06A418 7F0358E8 02E02025 */ move $a0, $s7 +/* 06A41C 7F0358EC 26520001 */ addiu $s2, $s2, 1 +/* 06A420 7F0358F0 1000FF26 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A424 7F0358F4 26310001 */ addiu $s1, $s1, 1 +action2F_When_Guard_Stops_Moving_RVL_2: +/* 06A428 7F0358F8 0FC0A717 */ jal check_if_actor_stationary +/* 06A42C 7F0358FC 02E02025 */ move $a0, $s7 +/* 06A430 7F035900 10400007 */ beqz $v0, .L7F035920 +/* 06A434 7F035904 02C02025 */ move $a0, $s6 +/* 06A438 7F035908 02402825 */ move $a1, $s2 +/* 06A43C 7F03590C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A440 7F035910 92260001 */ lbu $a2, 1($s1) +/* 06A444 7F035914 00409025 */ move $s2, $v0 +/* 06A448 7F035918 1000FF1C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A44C 7F03591C 02C28821 */ addu $s1, $s6, $v0 +.L7F035920: +/* 06A450 7F035920 26520002 */ addiu $s2, $s2, 2 +/* 06A454 7F035924 1000FF19 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A458 7F035928 26310002 */ addiu $s1, $s1, 2 +action30_Detect_If_Guard_Killed_RVL_If_So_3: +/* 06A45C 7F03592C 02E02025 */ move $a0, $s7 +/* 06A460 7F035930 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A464 7F035934 92250001 */ lbu $a1, 1($s1) +/* 06A468 7F035938 10400004 */ beqz $v0, .L7F03594C +/* 06A46C 7F03593C 00402025 */ move $a0, $v0 +/* 06A470 7F035940 0FC0A8A9 */ jal true_if_actor_dying_fading +/* 06A474 7F035944 00000000 */ nop +/* 06A478 7F035948 10400007 */ beqz $v0, .L7F035968 +.L7F03594C: +/* 06A47C 7F03594C 02C02025 */ move $a0, $s6 +/* 06A480 7F035950 02402825 */ move $a1, $s2 +/* 06A484 7F035954 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A488 7F035958 92260002 */ lbu $a2, 2($s1) +/* 06A48C 7F03595C 00409025 */ move $s2, $v0 +/* 06A490 7F035960 1000FF0A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A494 7F035964 02C28821 */ addu $s1, $s6, $v0 +.L7F035968: +/* 06A498 7F035968 26520003 */ addiu $s2, $s2, 3 +/* 06A49C 7F03596C 1000FF07 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A4A0 7F035970 26310003 */ addiu $s1, $s1, 3 +action31_If_GuardID_Finish_DeathAnimation_RVL_3: +/* 06A4A4 7F035974 02E02025 */ move $a0, $s7 +/* 06A4A8 7F035978 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A4AC 7F03597C 92250001 */ lbu $a1, 1($s1) +/* 06A4B0 7F035980 10400003 */ beqz $v0, .L7F035990 +/* 06A4B4 7F035984 02C02025 */ move $a0, $s6 +/* 06A4B8 7F035988 8C4C001C */ lw $t4, 0x1c($v0) +/* 06A4BC 7F03598C 15800006 */ bnez $t4, .L7F0359A8 +.L7F035990: +/* 06A4C0 7F035990 02402825 */ move $a1, $s2 +/* 06A4C4 7F035994 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A4C8 7F035998 92260002 */ lbu $a2, 2($s1) +/* 06A4CC 7F03599C 00409025 */ move $s2, $v0 +/* 06A4D0 7F0359A0 1000FEFA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A4D4 7F0359A4 02C28821 */ addu $s1, $s6, $v0 +.L7F0359A8: +/* 06A4D8 7F0359A8 26520003 */ addiu $s2, $s2, 3 +/* 06A4DC 7F0359AC 1000FEF7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A4E0 7F0359B0 26310003 */ addiu $s1, $s1, 3 +action32_If_Bond_In_Sight_RVL_2: +/* 06A4E4 7F0359B4 0FC0A75C */ jal sub_GAME_7F029D70 +/* 06A4E8 7F0359B8 02E02025 */ move $a0, $s7 +/* 06A4EC 7F0359BC 10400007 */ beqz $v0, .L7F0359DC +/* 06A4F0 7F0359C0 02C02025 */ move $a0, $s6 +/* 06A4F4 7F0359C4 02402825 */ move $a1, $s2 +/* 06A4F8 7F0359C8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A4FC 7F0359CC 92260001 */ lbu $a2, 1($s1) +/* 06A500 7F0359D0 00409025 */ move $s2, $v0 +/* 06A504 7F0359D4 1000FEED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A508 7F0359D8 02C28821 */ addu $s1, $s6, $v0 +.L7F0359DC: +/* 06A50C 7F0359DC 26520002 */ addiu $s2, $s2, 2 +/* 06A510 7F0359E0 1000FEEA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A514 7F0359E4 26310002 */ addiu $s1, $s1, 2 +action0E_Guard_Steps_Sideways_RVL_2: +/* 06A518 7F0359E8 0FC0A8B2 */ jal actor_steps_sideways +/* 06A51C 7F0359EC 02E02025 */ move $a0, $s7 +/* 06A520 7F0359F0 10400007 */ beqz $v0, .L7F035A10 +/* 06A524 7F0359F4 02C02025 */ move $a0, $s6 +/* 06A528 7F0359F8 02402825 */ move $a1, $s2 +/* 06A52C 7F0359FC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A530 7F035A00 92260001 */ lbu $a2, 1($s1) +/* 06A534 7F035A04 00409025 */ move $s2, $v0 +/* 06A538 7F035A08 1000FEE0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A53C 7F035A0C 02C28821 */ addu $s1, $s6, $v0 +.L7F035A10: +/* 06A540 7F035A10 26520002 */ addiu $s2, $s2, 2 +/* 06A544 7F035A14 1000FEDD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A548 7F035A18 26310002 */ addiu $s1, $s1, 2 +action0F_Guard_Hops_Sideways_RVL_2: +/* 06A54C 7F035A1C 0FC0A90A */ jal actor_hops_sideways +/* 06A550 7F035A20 02E02025 */ move $a0, $s7 +/* 06A554 7F035A24 10400007 */ beqz $v0, .L7F035A44 +/* 06A558 7F035A28 02C02025 */ move $a0, $s6 +/* 06A55C 7F035A2C 02402825 */ move $a1, $s2 +/* 06A560 7F035A30 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A564 7F035A34 92260001 */ lbu $a2, 1($s1) +/* 06A568 7F035A38 00409025 */ move $s2, $v0 +/* 06A56C 7F035A3C 1000FED3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A570 7F035A40 02C28821 */ addu $s1, $s6, $v0 +.L7F035A44: +/* 06A574 7F035A44 26520002 */ addiu $s2, $s2, 2 +/* 06A578 7F035A48 1000FED0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A57C 7F035A4C 26310002 */ addiu $s1, $s1, 2 +action10_Guard_Runs_Sideways_RVL_2: +/* 06A580 7F035A50 0FC0A962 */ jal actor_runs_sideways +/* 06A584 7F035A54 02E02025 */ move $a0, $s7 +/* 06A588 7F035A58 10400007 */ beqz $v0, .L7F035A78 +/* 06A58C 7F035A5C 02C02025 */ move $a0, $s6 +/* 06A590 7F035A60 02402825 */ move $a1, $s2 +/* 06A594 7F035A64 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A598 7F035A68 92260001 */ lbu $a2, 1($s1) +/* 06A59C 7F035A6C 00409025 */ move $s2, $v0 +/* 06A5A0 7F035A70 1000FEC6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5A4 7F035A74 02C28821 */ addu $s1, $s6, $v0 +.L7F035A78: +/* 06A5A8 7F035A78 26520002 */ addiu $s2, $s2, 2 +/* 06A5AC 7F035A7C 1000FEC3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5B0 7F035A80 26310002 */ addiu $s1, $s1, 2 +action11_Guard_Walks_Firing_RVL_2: +/* 06A5B4 7F035A84 0FC0A9C1 */ jal actor_walks_and_fires +/* 06A5B8 7F035A88 02E02025 */ move $a0, $s7 +/* 06A5BC 7F035A8C 10400007 */ beqz $v0, .L7F035AAC +/* 06A5C0 7F035A90 02C02025 */ move $a0, $s6 +/* 06A5C4 7F035A94 02402825 */ move $a1, $s2 +/* 06A5C8 7F035A98 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A5CC 7F035A9C 92260001 */ lbu $a2, 1($s1) +/* 06A5D0 7F035AA0 00409025 */ move $s2, $v0 +/* 06A5D4 7F035AA4 1000FEB9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5D8 7F035AA8 02C28821 */ addu $s1, $s6, $v0 +.L7F035AAC: +/* 06A5DC 7F035AAC 26520002 */ addiu $s2, $s2, 2 +/* 06A5E0 7F035AB0 1000FEB6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5E4 7F035AB4 26310002 */ addiu $s1, $s1, 2 +action12_Guard_Runs_Firing_RVL_2: +/* 06A5E8 7F035AB8 0FC0A9FE */ jal actor_runs_and_fires +/* 06A5EC 7F035ABC 02E02025 */ move $a0, $s7 +/* 06A5F0 7F035AC0 10400007 */ beqz $v0, .L7F035AE0 +/* 06A5F4 7F035AC4 02C02025 */ move $a0, $s6 +/* 06A5F8 7F035AC8 02402825 */ move $a1, $s2 +/* 06A5FC 7F035ACC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A600 7F035AD0 92260001 */ lbu $a2, 1($s1) +/* 06A604 7F035AD4 00409025 */ move $s2, $v0 +/* 06A608 7F035AD8 1000FEAC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A60C 7F035ADC 02C28821 */ addu $s1, $s6, $v0 +.L7F035AE0: +/* 06A610 7F035AE0 26520002 */ addiu $s2, $s2, 2 +/* 06A614 7F035AE4 1000FEA9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A618 7F035AE8 26310002 */ addiu $s1, $s1, 2 +action13_Guard_Rolls_On_Ground_Then_Fires_Crouched_RVL_2: +/* 06A61C 7F035AEC 0FC0AA3B */ jal actor_rolls_fires_crouched +/* 06A620 7F035AF0 02E02025 */ move $a0, $s7 +/* 06A624 7F035AF4 10400007 */ beqz $v0, .L7F035B14 +/* 06A628 7F035AF8 02C02025 */ move $a0, $s6 +/* 06A62C 7F035AFC 02402825 */ move $a1, $s2 +/* 06A630 7F035B00 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A634 7F035B04 92260001 */ lbu $a2, 1($s1) +/* 06A638 7F035B08 00409025 */ move $s2, $v0 +/* 06A63C 7F035B0C 1000FE9F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A640 7F035B10 02C28821 */ addu $s1, $s6, $v0 +.L7F035B14: +/* 06A644 7F035B14 26520002 */ addiu $s2, $s2, 2 +/* 06A648 7F035B18 1000FE9C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A64C 7F035B1C 26310002 */ addiu $s1, $s1, 2 +action14_Guard_Aims_Shoots_at_Bond_Guard_Pad_RVL_6: +/* 06A650 7F035B20 922D0003 */ lbu $t5, 3($s1) +/* 06A654 7F035B24 92380001 */ lbu $t8, 1($s1) +/* 06A658 7F035B28 922F0004 */ lbu $t7, 4($s1) +/* 06A65C 7F035B2C 92290002 */ lbu $t1, 2($s1) +/* 06A660 7F035B30 000D7200 */ sll $t6, $t5, 8 +/* 06A664 7F035B34 0018CA00 */ sll $t9, $t8, 8 +/* 06A668 7F035B38 02E02025 */ move $a0, $s7 +/* 06A66C 7F035B3C 01CF3025 */ or $a2, $t6, $t7 +/* 06A670 7F035B40 0FC0AA87 */ jal actor_aim_at_actor +/* 06A674 7F035B44 03292825 */ or $a1, $t9, $t1 +/* 06A678 7F035B48 10400007 */ beqz $v0, .L7F035B68 +/* 06A67C 7F035B4C 02C02025 */ move $a0, $s6 +/* 06A680 7F035B50 02402825 */ move $a1, $s2 +/* 06A684 7F035B54 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A688 7F035B58 92260005 */ lbu $a2, 5($s1) +/* 06A68C 7F035B5C 00409025 */ move $s2, $v0 +/* 06A690 7F035B60 1000FE8A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A694 7F035B64 02C28821 */ addu $s1, $s6, $v0 +.L7F035B68: +/* 06A698 7F035B68 26520006 */ addiu $s2, $s2, 6 +/* 06A69C 7F035B6C 1000FE87 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A6A0 7F035B70 26310006 */ addiu $s1, $s1, 6 +action15_Guard_Kneels_Aims_Shoots_at_Bond_Guard_Pad_RVL_6: +/* 06A6A4 7F035B74 922A0003 */ lbu $t2, 3($s1) +/* 06A6A8 7F035B78 922D0001 */ lbu $t5, 1($s1) +/* 06A6AC 7F035B7C 922C0004 */ lbu $t4, 4($s1) +/* 06A6B0 7F035B80 922F0002 */ lbu $t7, 2($s1) +/* 06A6B4 7F035B84 000A5A00 */ sll $t3, $t2, 8 +/* 06A6B8 7F035B88 000D7200 */ sll $t6, $t5, 8 +/* 06A6BC 7F035B8C 02E02025 */ move $a0, $s7 +/* 06A6C0 7F035B90 016C3025 */ or $a2, $t3, $t4 +/* 06A6C4 7F035B94 0FC0AAA2 */ jal actor_kneel_aim_at_actor +/* 06A6C8 7F035B98 01CF2825 */ or $a1, $t6, $t7 +/* 06A6CC 7F035B9C 10400007 */ beqz $v0, .L7F035BBC +/* 06A6D0 7F035BA0 02C02025 */ move $a0, $s6 +/* 06A6D4 7F035BA4 02402825 */ move $a1, $s2 +/* 06A6D8 7F035BA8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A6DC 7F035BAC 92260005 */ lbu $a2, 5($s1) +/* 06A6E0 7F035BB0 00409025 */ move $s2, $v0 +/* 06A6E4 7F035BB4 1000FE75 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A6E8 7F035BB8 02C28821 */ addu $s1, $s6, $v0 +.L7F035BBC: +/* 06A6EC 7F035BBC 26520006 */ addiu $s2, $s2, 6 +/* 06A6F0 7F035BC0 1000FE72 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A6F4 7F035BC4 26310006 */ addiu $s1, $s1, 6 +actionE7_If_Guard_Moving_And_Shooting_RVL_2: +/* 06A6F8 7F035BC8 82F80007 */ lb $t8, 7($s7) +/* 06A6FC 7F035BCC 24010008 */ li $at, 8 +/* 06A700 7F035BD0 57010010 */ bnel $t8, $at, .L7F035C14 +/* 06A704 7F035BD4 26520002 */ addiu $s2, $s2, 2 +/* 06A708 7F035BD8 8EF90058 */ lw $t9, 0x58($s7) +/* 06A70C 7F035BDC 5720000D */ bnezl $t9, .L7F035C14 +/* 06A710 7F035BE0 26520002 */ addiu $s2, $s2, 2 +/* 06A714 7F035BE4 8EE9004C */ lw $t1, 0x4c($s7) +/* 06A718 7F035BE8 02C02025 */ move $a0, $s6 +/* 06A71C 7F035BEC 02402825 */ move $a1, $s2 +/* 06A720 7F035BF0 312A0040 */ andi $t2, $t1, 0x40 +/* 06A724 7F035BF4 51400007 */ beql $t2, $zero, .L7F035C14 +/* 06A728 7F035BF8 26520002 */ addiu $s2, $s2, 2 +/* 06A72C 7F035BFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A730 7F035C00 92260001 */ lbu $a2, 1($s1) +/* 06A734 7F035C04 00409025 */ move $s2, $v0 +/* 06A738 7F035C08 1000FE60 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A73C 7F035C0C 02C28821 */ addu $s1, $s6, $v0 +/* 06A740 7F035C10 26520002 */ addiu $s2, $s2, 2 +.L7F035C14: +/* 06A744 7F035C14 1000FE5D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A748 7F035C18 26310002 */ addiu $s1, $s1, 2 +actionE8_If_Guard_Is_Shooting_RVL_2: +/* 06A74C 7F035C1C 82EB0007 */ lb $t3, 7($s7) +/* 06A750 7F035C20 24010008 */ li $at, 8 +/* 06A754 7F035C24 02C02025 */ move $a0, $s6 +/* 06A758 7F035C28 15610006 */ bne $t3, $at, .L7F035C44 +/* 06A75C 7F035C2C 02402825 */ move $a1, $s2 +/* 06A760 7F035C30 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A764 7F035C34 92260001 */ lbu $a2, 1($s1) +/* 06A768 7F035C38 00409025 */ move $s2, $v0 +/* 06A76C 7F035C3C 1000FE53 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A770 7F035C40 02C28821 */ addu $s1, $s6, $v0 +.L7F035C44: +/* 06A774 7F035C44 26520002 */ addiu $s2, $s2, 2 +/* 06A778 7F035C48 1000FE50 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A77C 7F035C4C 26310002 */ addiu $s1, $s1, 2 +action16_Guard_Shoots_Guards_Without_Animation_Change_RVL_6: +/* 06A780 7F035C50 922C0003 */ lbu $t4, 3($s1) +/* 06A784 7F035C54 922F0001 */ lbu $t7, 1($s1) +/* 06A788 7F035C58 922E0004 */ lbu $t6, 4($s1) +/* 06A78C 7F035C5C 92390002 */ lbu $t9, 2($s1) +/* 06A790 7F035C60 000C6A00 */ sll $t5, $t4, 8 +/* 06A794 7F035C64 000FC200 */ sll $t8, $t7, 8 +/* 06A798 7F035C68 02E02025 */ move $a0, $s7 +/* 06A79C 7F035C6C 01AE3025 */ or $a2, $t5, $t6 +/* 06A7A0 7F035C70 0FC0AABD */ jal sub_GAME_7F02AAF4 +/* 06A7A4 7F035C74 03192825 */ or $a1, $t8, $t9 +/* 06A7A8 7F035C78 10400007 */ beqz $v0, .L7F035C98 +/* 06A7AC 7F035C7C 02C02025 */ move $a0, $s6 +/* 06A7B0 7F035C80 02402825 */ move $a1, $s2 +/* 06A7B4 7F035C84 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A7B8 7F035C88 92260005 */ lbu $a2, 5($s1) +/* 06A7BC 7F035C8C 00409025 */ move $s2, $v0 +/* 06A7C0 7F035C90 1000FE3E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A7C4 7F035C94 02C28821 */ addu $s1, $s6, $v0 +.L7F035C98: +/* 06A7C8 7F035C98 26520006 */ addiu $s2, $s2, 6 +/* 06A7CC 7F035C9C 1000FE3B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A7D0 7F035CA0 26310006 */ addiu $s1, $s1, 6 +action17_Guard_Constantly_Angles_To_Face_RVL_6: +/* 06A7D4 7F035CA4 92290003 */ lbu $t1, 3($s1) +/* 06A7D8 7F035CA8 922C0001 */ lbu $t4, 1($s1) +/* 06A7DC 7F035CAC 922B0004 */ lbu $t3, 4($s1) +/* 06A7E0 7F035CB0 922E0002 */ lbu $t6, 2($s1) +/* 06A7E4 7F035CB4 00095200 */ sll $t2, $t1, 8 +/* 06A7E8 7F035CB8 000C6A00 */ sll $t5, $t4, 8 +/* 06A7EC 7F035CBC 02E02025 */ move $a0, $s7 +/* 06A7F0 7F035CC0 014B3025 */ or $a2, $t2, $t3 +/* 06A7F4 7F035CC4 0FC0AAD1 */ jal check_set_actor_standing_still +/* 06A7F8 7F035CC8 01AE2825 */ or $a1, $t5, $t6 +/* 06A7FC 7F035CCC 10400007 */ beqz $v0, .L7F035CEC +/* 06A800 7F035CD0 02C02025 */ move $a0, $s6 +/* 06A804 7F035CD4 02402825 */ move $a1, $s2 +/* 06A808 7F035CD8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A80C 7F035CDC 92260005 */ lbu $a2, 5($s1) +/* 06A810 7F035CE0 00409025 */ move $s2, $v0 +/* 06A814 7F035CE4 1000FE29 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A818 7F035CE8 02C28821 */ addu $s1, $s6, $v0 +.L7F035CEC: +/* 06A81C 7F035CEC 26520006 */ addiu $s2, $s2, 6 +/* 06A820 7F035CF0 1000FE26 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A824 7F035CF4 26310006 */ addiu $s1, $s1, 6 +action18_Shoot_Guard_ID_In_Style_With_Weapon_Type_num_4: +/* 06A828 7F035CF8 02E02025 */ move $a0, $s7 +/* 06A82C 7F035CFC 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A830 7F035D00 92250001 */ lbu $a1, 1($s1) +/* 06A834 7F035D04 3C188003 */ lui $t8, %hi(D_80030A70) +/* 06A838 7F035D08 27180A70 */ addiu $t8, %lo(D_80030A70) # addiu $t8, $t8, 0xa70 +/* 06A83C 7F035D0C 8F010000 */ lw $at, ($t8) +/* 06A840 7F035D10 27AF06F4 */ addiu $t7, $sp, 0x6f4 +/* 06A844 7F035D14 8F090004 */ lw $t1, 4($t8) +/* 06A848 7F035D18 ADE10000 */ sw $at, ($t7) +/* 06A84C 7F035D1C 8F010008 */ lw $at, 8($t8) +/* 06A850 7F035D20 00402025 */ move $a0, $v0 +/* 06A854 7F035D24 ADE90004 */ sw $t1, 4($t7) +/* 06A858 7F035D28 10400009 */ beqz $v0, .L7F035D50 +/* 06A85C 7F035D2C ADE10008 */ sw $at, 8($t7) +/* 06A860 7F035D30 8C4A0018 */ lw $t2, 0x18($v0) +/* 06A864 7F035D34 51400007 */ beql $t2, $zero, .L7F035D54 +/* 06A868 7F035D38 26520004 */ addiu $s2, $s2, 4 +/* 06A86C 7F035D3C 82250002 */ lb $a1, 2($s1) +/* 06A870 7F035D40 92270003 */ lbu $a3, 3($s1) +/* 06A874 7F035D44 AFA00010 */ sw $zero, 0x10($sp) +/* 06A878 7F035D48 0FC09C9F */ jal handles_shot_actors +/* 06A87C 7F035D4C 27A606F4 */ addiu $a2, $sp, 0x6f4 +.L7F035D50: +/* 06A880 7F035D50 26520004 */ addiu $s2, $s2, 4 +.L7F035D54: +/* 06A884 7F035D54 1000FE0D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A888 7F035D58 26310004 */ addiu $s1, $s1, 4 +action19_Guard_ID1_Shoots_Guard_ID2_In_Style_4: +/* 06A88C 7F035D5C 02E02025 */ move $a0, $s7 +/* 06A890 7F035D60 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A894 7F035D64 92250001 */ lbu $a1, 1($s1) +/* 06A898 7F035D68 00408025 */ move $s0, $v0 +/* 06A89C 7F035D6C 02E02025 */ move $a0, $s7 +/* 06A8A0 7F035D70 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A8A4 7F035D74 92250002 */ lbu $a1, 2($s1) +/* 06A8A8 7F035D78 1200003C */ beqz $s0, .L7F035E6C +/* 06A8AC 7F035D7C AFA206E8 */ sw $v0, 0x6e8($sp) +/* 06A8B0 7F035D80 1040003A */ beqz $v0, .L7F035E6C +/* 06A8B4 7F035D84 00409825 */ move $s3, $v0 +/* 06A8B8 7F035D88 8E0B0018 */ lw $t3, 0x18($s0) +/* 06A8BC 7F035D8C 51600038 */ beql $t3, $zero, .L7F035E70 +/* 06A8C0 7F035D90 26520004 */ addiu $s2, $s2, 4 +/* 06A8C4 7F035D94 8C4C0018 */ lw $t4, 0x18($v0) +/* 06A8C8 7F035D98 02002025 */ move $a0, $s0 +/* 06A8CC 7F035D9C 51800034 */ beql $t4, $zero, .L7F035E70 +/* 06A8D0 7F035DA0 26520004 */ addiu $s2, $s2, 4 +/* 06A8D4 7F035DA4 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 06A8D8 7F035DA8 00002825 */ move $a1, $zero +/* 06A8DC 7F035DAC 3C0E8003 */ lui $t6, %hi(D_80030A7C) +/* 06A8E0 7F035DB0 25CE0A7C */ addiu $t6, %lo(D_80030A7C) # addiu $t6, $t6, 0xa7c +/* 06A8E4 7F035DB4 8DC10000 */ lw $at, ($t6) +/* 06A8E8 7F035DB8 27AD06D4 */ addiu $t5, $sp, 0x6d4 +/* 06A8EC 7F035DBC 8DCF0004 */ lw $t7, 4($t6) +/* 06A8F0 7F035DC0 ADA10000 */ sw $at, ($t5) +/* 06A8F4 7F035DC4 8DC10008 */ lw $at, 8($t6) +/* 06A8F8 7F035DC8 00401825 */ move $v1, $v0 +/* 06A8FC 7F035DCC ADAF0004 */ sw $t7, 4($t5) +/* 06A900 7F035DD0 14400005 */ bnez $v0, .L7F035DE8 +/* 06A904 7F035DD4 ADA10008 */ sw $at, 8($t5) +/* 06A908 7F035DD8 02002025 */ move $a0, $s0 +/* 06A90C 7F035DDC 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 06A910 7F035DE0 24050001 */ li $a1, 1 +/* 06A914 7F035DE4 00401825 */ move $v1, $v0 +.L7F035DE8: +/* 06A918 7F035DE8 50400021 */ beql $v0, $zero, .L7F035E70 +/* 06A91C 7F035DEC 26520004 */ addiu $s2, $s2, 4 +/* 06A920 7F035DF0 8E780018 */ lw $t8, 0x18($s3) +/* 06A924 7F035DF4 8E090018 */ lw $t1, 0x18($s0) +/* 06A928 7F035DF8 27A406D4 */ addiu $a0, $sp, 0x6d4 +/* 06A92C 7F035DFC C7120008 */ lwc1 $f18, 8($t8) +/* 06A930 7F035E00 C5240008 */ lwc1 $f4, 8($t1) +/* 06A934 7F035E04 27A506D8 */ addiu $a1, $sp, 0x6d8 +/* 06A938 7F035E08 27A606DC */ addiu $a2, $sp, 0x6dc +/* 06A93C 7F035E0C 46049181 */ sub.s $f6, $f18, $f4 +/* 06A940 7F035E10 E7A606D4 */ swc1 $f6, 0x6d4($sp) +/* 06A944 7F035E14 8E0B0018 */ lw $t3, 0x18($s0) +/* 06A948 7F035E18 8E6A0018 */ lw $t2, 0x18($s3) +/* 06A94C 7F035E1C C56A000C */ lwc1 $f10, 0xc($t3) +/* 06A950 7F035E20 C548000C */ lwc1 $f8, 0xc($t2) +/* 06A954 7F035E24 460A4401 */ sub.s $f16, $f8, $f10 +/* 06A958 7F035E28 E7B006D8 */ swc1 $f16, 0x6d8($sp) +/* 06A95C 7F035E2C 8E190018 */ lw $t9, 0x18($s0) +/* 06A960 7F035E30 8E6C0018 */ lw $t4, 0x18($s3) +/* 06A964 7F035E34 C7240010 */ lwc1 $f4, 0x10($t9) +/* 06A968 7F035E38 C5920010 */ lwc1 $f18, 0x10($t4) +/* 06A96C 7F035E3C AFA306E4 */ sw $v1, 0x6e4($sp) +/* 06A970 7F035E40 46049181 */ sub.s $f6, $f18, $f4 +/* 06A974 7F035E44 0C007DD4 */ jal guNormalize +/* 06A978 7F035E48 E7A606DC */ swc1 $f6, 0x6dc($sp) +/* 06A97C 7F035E4C 8FA306E4 */ lw $v1, 0x6e4($sp) +/* 06A980 7F035E50 82250003 */ lb $a1, 3($s1) +/* 06A984 7F035E54 02602025 */ move $a0, $s3 +/* 06A988 7F035E58 8C620004 */ lw $v0, 4($v1) +/* 06A98C 7F035E5C 27A606D4 */ addiu $a2, $sp, 0x6d4 +/* 06A990 7F035E60 80470080 */ lb $a3, 0x80($v0) +/* 06A994 7F035E64 0FC09C9F */ jal handles_shot_actors +/* 06A998 7F035E68 AFA00010 */ sw $zero, 0x10($sp) +.L7F035E6C: +/* 06A99C 7F035E6C 26520004 */ addiu $s2, $s2, 4 +.L7F035E70: +/* 06A9A0 7F035E70 1000FDC6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A9A4 7F035E74 26310004 */ addiu $s1, $s1, 4 +action1A_Guard_Throws_Grenade_RVL_2: +/* 06A9A8 7F035E78 0FC0D15F */ jal actor_draws_throws_grenade_at_player_if_possible +/* 06A9AC 7F035E7C 02E02025 */ move $a0, $s7 +/* 06A9B0 7F035E80 10400007 */ beqz $v0, .L7F035EA0 +/* 06A9B4 7F035E84 02C02025 */ move $a0, $s6 +/* 06A9B8 7F035E88 02402825 */ move $a1, $s2 +/* 06A9BC 7F035E8C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A9C0 7F035E90 92260001 */ lbu $a2, 1($s1) +/* 06A9C4 7F035E94 00409025 */ move $s2, $v0 +/* 06A9C8 7F035E98 1000FDBC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A9CC 7F035E9C 02C28821 */ addu $s1, $s6, $v0 +.L7F035EA0: +/* 06A9D0 7F035EA0 26520002 */ addiu $s2, $s2, 2 +/* 06A9D4 7F035EA4 1000FDB9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A9D8 7F035EA8 26310002 */ addiu $s1, $s1, 2 +action1B_Drop_Weapon_Inventory_num_RVL_5: +/* 06A9DC 7F035EAC 922D0001 */ lbu $t5, 1($s1) +/* 06A9E0 7F035EB0 922F0002 */ lbu $t7, 2($s1) +/* 06A9E4 7F035EB4 02E02025 */ move $a0, $s7 +/* 06A9E8 7F035EB8 000D7200 */ sll $t6, $t5, 8 +/* 06A9EC 7F035EBC 01CF1025 */ or $v0, $t6, $t7 +/* 06A9F0 7F035EC0 3045FFFF */ andi $a1, $v0, 0xffff +/* 06A9F4 7F035EC4 0FC0D1BF */ jal actor_drops_itemtype_setting_timer +/* 06A9F8 7F035EC8 92260003 */ lbu $a2, 3($s1) +/* 06A9FC 7F035ECC 10400007 */ beqz $v0, .L7F035EEC +/* 06AA00 7F035ED0 02C02025 */ move $a0, $s6 +/* 06AA04 7F035ED4 02402825 */ move $a1, $s2 +/* 06AA08 7F035ED8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AA0C 7F035EDC 92260004 */ lbu $a2, 4($s1) +/* 06AA10 7F035EE0 00409025 */ move $s2, $v0 +/* 06AA14 7F035EE4 1000FDA9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA18 7F035EE8 02C28821 */ addu $s1, $s6, $v0 +.L7F035EEC: +/* 06AA1C 7F035EEC 26520005 */ addiu $s2, $s2, 5 +/* 06AA20 7F035EF0 1000FDA6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA24 7F035EF4 26310005 */ addiu $s1, $s1, 5 +action21_Guard_Surrenders_1: +/* 06AA28 7F035EF8 0FC0CCD9 */ jal check_if_able_to_then_surrender +/* 06AA2C 7F035EFC 02E02025 */ move $a0, $s7 +/* 06AA30 7F035F00 26520001 */ addiu $s2, $s2, 1 +/* 06AA34 7F035F04 1000FDA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA38 7F035F08 26310001 */ addiu $s1, $s1, 1 +action22_Guard_Set_To_Move_Fades_And_Disappear_1: +/* 06AA3C 7F035F0C 0FC0CCE8 */ jal sub_GAME_7F0333A0 +/* 06AA40 7F035F10 02E02025 */ move $a0, $s7 +/* 06AA44 7F035F14 26520001 */ addiu $s2, $s2, 1 +/* 06AA48 7F035F18 1000FD9C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA4C 7F035F1C 26310001 */ addiu $s1, $s1, 1 +action23_Eliminate_Guard_ID_2: +/* 06AA50 7F035F20 02E02025 */ move $a0, $s7 +/* 06AA54 7F035F24 0FC0CC10 */ jal get_handle_for_guard_id +/* 06AA58 7F035F28 92250001 */ lbu $a1, 1($s1) +/* 06AA5C 7F035F2C 10400007 */ beqz $v0, .L7F035F4C +/* 06AA60 7F035F30 26520002 */ addiu $s2, $s2, 2 +/* 06AA64 7F035F34 8C490018 */ lw $t1, 0x18($v0) +/* 06AA68 7F035F38 11200004 */ beqz $t1, .L7F035F4C +/* 06AA6C 7F035F3C 00000000 */ nop +/* 06AA70 7F035F40 944A0012 */ lhu $t2, 0x12($v0) +/* 06AA74 7F035F44 354B0020 */ ori $t3, $t2, 0x20 +/* 06AA78 7F035F48 A44B0012 */ sh $t3, 0x12($v0) +.L7F035F4C: +/* 06AA7C 7F035F4C 1000FD8F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA80 7F035F50 26310002 */ addiu $s1, $s1, 2 +action24_Activate_Object_At_Preset_RVL_If_Successful_4: +/* 06AA84 7F035F54 922C0001 */ lbu $t4, 1($s1) +/* 06AA88 7F035F58 922D0002 */ lbu $t5, 2($s1) +/* 06AA8C 7F035F5C 02E02025 */ move $a0, $s7 +/* 06AA90 7F035F60 000CCA00 */ sll $t9, $t4, 8 +/* 06AA94 7F035F64 032D1025 */ or $v0, $t9, $t5 +/* 06AA98 7F035F68 0FC0D145 */ jal sub_GAME_7F034514 +/* 06AA9C 7F035F6C 3045FFFF */ andi $a1, $v0, 0xffff +/* 06AAA0 7F035F70 10400007 */ beqz $v0, .L7F035F90 +/* 06AAA4 7F035F74 02C02025 */ move $a0, $s6 +/* 06AAA8 7F035F78 02402825 */ move $a1, $s2 +/* 06AAAC 7F035F7C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AAB0 7F035F80 92260003 */ lbu $a2, 3($s1) +/* 06AAB4 7F035F84 00409025 */ move $s2, $v0 +/* 06AAB8 7F035F88 1000FD80 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AABC 7F035F8C 02C28821 */ addu $s1, $s6, $v0 +.L7F035F90: +/* 06AAC0 7F035F90 26520004 */ addiu $s2, $s2, 4 +/* 06AAC4 7F035F94 1000FD7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AAC8 7F035F98 26310004 */ addiu $s1, $s1, 4 +action25_Sound_Alarm_1: +/* 06AACC 7F035F9C 0FC15772 */ jal start_alarm +/* 06AAD0 7F035FA0 00000000 */ nop +/* 06AAD4 7F035FA4 26520001 */ addiu $s2, $s2, 1 +/* 06AAD8 7F035FA8 1000FD78 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AADC 7F035FAC 26310001 */ addiu $s1, $s1, 1 +action26_Turn_Off_Alarm_1: +/* 06AAE0 7F035FB0 0FC1578B */ jal stop_alarm +/* 06AAE4 7F035FB4 00000000 */ nop +/* 06AAE8 7F035FB8 26520001 */ addiu $s2, $s2, 1 +/* 06AAEC 7F035FBC 1000FD73 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AAF0 7F035FC0 26310001 */ addiu $s1, $s1, 1 +action27_Return_False_Invalid_Type_2: +/* 06AAF4 7F035FC4 0FC0D13F */ jal removed_animation_routine_27 +/* 06AAF8 7F035FC8 02E02025 */ move $a0, $s7 +/* 06AAFC 7F035FCC 10400007 */ beqz $v0, .L7F035FEC +/* 06AB00 7F035FD0 02C02025 */ move $a0, $s6 +/* 06AB04 7F035FD4 02402825 */ move $a1, $s2 +/* 06AB08 7F035FD8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AB0C 7F035FDC 92260001 */ lbu $a2, 1($s1) +/* 06AB10 7F035FE0 00409025 */ move $s2, $v0 +/* 06AB14 7F035FE4 1000FD69 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB18 7F035FE8 02C28821 */ addu $s1, $s6, $v0 +.L7F035FEC: +/* 06AB1C 7F035FEC 26520002 */ addiu $s2, $s2, 2 +/* 06AB20 7F035FF0 1000FD66 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB24 7F035FF4 26310002 */ addiu $s1, $s1, 2 +action28_Jog_To_Bond_Return_Loop_When_Reached_Bond_2: +/* 06AB28 7F035FF8 02E02025 */ move $a0, $s7 +/* 06AB2C 7F035FFC 0FC0CD28 */ jal actor_move_to_curplayer_at_speed +/* 06AB30 7F036000 24050001 */ li $a1, 1 +/* 06AB34 7F036004 10400007 */ beqz $v0, .L7F036024 +/* 06AB38 7F036008 02C02025 */ move $a0, $s6 +/* 06AB3C 7F03600C 02402825 */ move $a1, $s2 +/* 06AB40 7F036010 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AB44 7F036014 92260001 */ lbu $a2, 1($s1) +/* 06AB48 7F036018 00409025 */ move $s2, $v0 +/* 06AB4C 7F03601C 1000FD5B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB50 7F036020 02C28821 */ addu $s1, $s6, $v0 +.L7F036024: +/* 06AB54 7F036024 26520002 */ addiu $s2, $s2, 2 +/* 06AB58 7F036028 1000FD58 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB5C 7F03602C 26310002 */ addiu $s1, $s1, 2 +action29_Walk_To_Bond_Return_Loop_When_Reached_Bond_2: +/* 06AB60 7F036030 02E02025 */ move $a0, $s7 +/* 06AB64 7F036034 0FC0CD28 */ jal actor_move_to_curplayer_at_speed +/* 06AB68 7F036038 00002825 */ move $a1, $zero +/* 06AB6C 7F03603C 10400007 */ beqz $v0, .L7F03605C +/* 06AB70 7F036040 02C02025 */ move $a0, $s6 +/* 06AB74 7F036044 02402825 */ move $a1, $s2 +/* 06AB78 7F036048 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AB7C 7F03604C 92260001 */ lbu $a2, 1($s1) +/* 06AB80 7F036050 00409025 */ move $s2, $v0 +/* 06AB84 7F036054 1000FD4D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB88 7F036058 02C28821 */ addu $s1, $s6, $v0 +.L7F03605C: +/* 06AB8C 7F03605C 26520002 */ addiu $s2, $s2, 2 +/* 06AB90 7F036060 1000FD4A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB94 7F036064 26310002 */ addiu $s1, $s1, 2 +action2A_Run_To_Bond_Return_Loop_When_Reached_Bond_2: +/* 06AB98 7F036068 02E02025 */ move $a0, $s7 +/* 06AB9C 7F03606C 0FC0CD28 */ jal actor_move_to_curplayer_at_speed +/* 06ABA0 7F036070 24050002 */ li $a1, 2 +/* 06ABA4 7F036074 10400007 */ beqz $v0, .L7F036094 +/* 06ABA8 7F036078 02C02025 */ move $a0, $s6 +/* 06ABAC 7F03607C 02402825 */ move $a1, $s2 +/* 06ABB0 7F036080 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06ABB4 7F036084 92260001 */ lbu $a2, 1($s1) +/* 06ABB8 7F036088 00409025 */ move $s2, $v0 +/* 06ABBC 7F03608C 1000FD3F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ABC0 7F036090 02C28821 */ addu $s1, $s6, $v0 +.L7F036094: +/* 06ABC4 7F036094 26520002 */ addiu $s2, $s2, 2 +/* 06ABC8 7F036098 1000FD3C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ABCC 7F03609C 26310002 */ addiu $s1, $s1, 2 +action2B_Return_False_Invalid_Type_2: +/* 06ABD0 7F0360A0 0FC0D142 */ jal removed_animation_routine_2B +/* 06ABD4 7F0360A4 02E02025 */ move $a0, $s7 +/* 06ABD8 7F0360A8 10400007 */ beqz $v0, .L7F0360C8 +/* 06ABDC 7F0360AC 02C02025 */ move $a0, $s6 +/* 06ABE0 7F0360B0 02402825 */ move $a1, $s2 +/* 06ABE4 7F0360B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06ABE8 7F0360B8 92260001 */ lbu $a2, 1($s1) +/* 06ABEC 7F0360BC 00409025 */ move $s2, $v0 +/* 06ABF0 7F0360C0 1000FD32 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ABF4 7F0360C4 02C28821 */ addu $s1, $s6, $v0 +.L7F0360C8: +/* 06ABF8 7F0360C8 26520002 */ addiu $s2, $s2, 2 +/* 06ABFC 7F0360CC 1000FD2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC00 7F0360D0 26310002 */ addiu $s1, $s1, 2 +action2C_Jog_To_Character_Position_RVL_On_Arrival_3: +/* 06AC04 7F0360D4 02E02025 */ move $a0, $s7 +/* 06AC08 7F0360D8 92250001 */ lbu $a1, 1($s1) +/* 06AC0C 7F0360DC 0FC0CD43 */ jal actor_move_to_actorID_at_speed +/* 06AC10 7F0360E0 24060001 */ li $a2, 1 +/* 06AC14 7F0360E4 10400007 */ beqz $v0, .L7F036104 +/* 06AC18 7F0360E8 02C02025 */ move $a0, $s6 +/* 06AC1C 7F0360EC 02402825 */ move $a1, $s2 +/* 06AC20 7F0360F0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AC24 7F0360F4 92260002 */ lbu $a2, 2($s1) +/* 06AC28 7F0360F8 00409025 */ move $s2, $v0 +/* 06AC2C 7F0360FC 1000FD23 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC30 7F036100 02C28821 */ addu $s1, $s6, $v0 +.L7F036104: +/* 06AC34 7F036104 26520003 */ addiu $s2, $s2, 3 +/* 06AC38 7F036108 1000FD20 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC3C 7F03610C 26310003 */ addiu $s1, $s1, 3 +action2D_Walk_To_Character_Position_RVL_On_Arrival_3: +/* 06AC40 7F036110 02E02025 */ move $a0, $s7 +/* 06AC44 7F036114 92250001 */ lbu $a1, 1($s1) +/* 06AC48 7F036118 0FC0CD43 */ jal actor_move_to_actorID_at_speed +/* 06AC4C 7F03611C 00003025 */ move $a2, $zero +/* 06AC50 7F036120 10400007 */ beqz $v0, .L7F036140 +/* 06AC54 7F036124 02C02025 */ move $a0, $s6 +/* 06AC58 7F036128 02402825 */ move $a1, $s2 +/* 06AC5C 7F03612C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AC60 7F036130 92260002 */ lbu $a2, 2($s1) +/* 06AC64 7F036134 00409025 */ move $s2, $v0 +/* 06AC68 7F036138 1000FD14 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC6C 7F03613C 02C28821 */ addu $s1, $s6, $v0 +.L7F036140: +/* 06AC70 7F036140 26520003 */ addiu $s2, $s2, 3 +/* 06AC74 7F036144 1000FD11 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC78 7F036148 26310003 */ addiu $s1, $s1, 3 +action2E_Run_To_Character_Position_RVL_On_Arrival_3: +/* 06AC7C 7F03614C 02E02025 */ move $a0, $s7 +/* 06AC80 7F036150 92250001 */ lbu $a1, 1($s1) +/* 06AC84 7F036154 0FC0CD43 */ jal actor_move_to_actorID_at_speed +/* 06AC88 7F036158 24060002 */ li $a2, 2 +/* 06AC8C 7F03615C 10400007 */ beqz $v0, .L7F03617C +/* 06AC90 7F036160 02C02025 */ move $a0, $s6 +/* 06AC94 7F036164 02402825 */ move $a1, $s2 +/* 06AC98 7F036168 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AC9C 7F03616C 92260002 */ lbu $a2, 2($s1) +/* 06ACA0 7F036170 00409025 */ move $s2, $v0 +/* 06ACA4 7F036174 1000FD05 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACA8 7F036178 02C28821 */ addu $s1, $s6, $v0 +.L7F03617C: +/* 06ACAC 7F03617C 26520003 */ addiu $s2, $s2, 3 +/* 06ACB0 7F036180 1000FD02 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACB4 7F036184 26310003 */ addiu $s1, $s1, 3 +action33_Seed_Random_Byte_1: +/* 06ACB8 7F036188 0C002914 */ jal get_random_value +/* 06ACBC 7F03618C 00000000 */ nop +/* 06ACC0 7F036190 A2E2010F */ sb $v0, 0x10f($s7) +/* 06ACC4 7F036194 26520001 */ addiu $s2, $s2, 1 +/* 06ACC8 7F036198 1000FCFC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACCC 7F03619C 26310001 */ addiu $s1, $s1, 1 +action34_If_Seeded_Byte_LTV_Go_Into_RVL_3: +/* 06ACD0 7F0361A0 92F8010F */ lbu $t8, 0x10f($s7) +/* 06ACD4 7F0361A4 92290001 */ lbu $t1, 1($s1) +/* 06ACD8 7F0361A8 02C02025 */ move $a0, $s6 +/* 06ACDC 7F0361AC 02402825 */ move $a1, $s2 +/* 06ACE0 7F0361B0 0309082A */ slt $at, $t8, $t1 +/* 06ACE4 7F0361B4 50200007 */ beql $at, $zero, .L7F0361D4 +/* 06ACE8 7F0361B8 26520003 */ addiu $s2, $s2, 3 +/* 06ACEC 7F0361BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06ACF0 7F0361C0 92260002 */ lbu $a2, 2($s1) +/* 06ACF4 7F0361C4 00409025 */ move $s2, $v0 +/* 06ACF8 7F0361C8 1000FCF0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACFC 7F0361CC 02C28821 */ addu $s1, $s6, $v0 +/* 06AD00 7F0361D0 26520003 */ addiu $s2, $s2, 3 +.L7F0361D4: +/* 06AD04 7F0361D4 1000FCED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD08 7F0361D8 26310003 */ addiu $s1, $s1, 3 +action35_If_Seeded_Byte_GTV_Go_Into_RVL_3: +/* 06AD0C 7F0361DC 922A0001 */ lbu $t2, 1($s1) +/* 06AD10 7F0361E0 92EB010F */ lbu $t3, 0x10f($s7) +/* 06AD14 7F0361E4 02C02025 */ move $a0, $s6 +/* 06AD18 7F0361E8 02402825 */ move $a1, $s2 +/* 06AD1C 7F0361EC 014B082A */ slt $at, $t2, $t3 +/* 06AD20 7F0361F0 50200007 */ beql $at, $zero, .L7F036210 +/* 06AD24 7F0361F4 26520003 */ addiu $s2, $s2, 3 +/* 06AD28 7F0361F8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AD2C 7F0361FC 92260002 */ lbu $a2, 2($s1) +/* 06AD30 7F036200 00409025 */ move $s2, $v0 +/* 06AD34 7F036204 1000FCE1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD38 7F036208 02C28821 */ addu $s1, $s6, $v0 +/* 06AD3C 7F03620C 26520003 */ addiu $s2, $s2, 3 +.L7F036210: +/* 06AD40 7F036210 1000FCDE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD44 7F036214 26310003 */ addiu $s1, $s1, 3 +action1C_Guard_Jogs_To_Preset_3: +/* 06AD48 7F036218 922C0001 */ lbu $t4, 1($s1) +/* 06AD4C 7F03621C 922D0002 */ lbu $t5, 2($s1) +/* 06AD50 7F036220 02E02025 */ move $a0, $s7 +/* 06AD54 7F036224 000CCA00 */ sll $t9, $t4, 8 +/* 06AD58 7F036228 032D1025 */ or $v0, $t9, $t5 +/* 06AD5C 7F03622C 3045FFFF */ andi $a1, $v0, 0xffff +/* 06AD60 7F036230 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06AD64 7F036234 24060001 */ li $a2, 1 +/* 06AD68 7F036238 26520003 */ addiu $s2, $s2, 3 +/* 06AD6C 7F03623C 1000FCD3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD70 7F036240 26310003 */ addiu $s1, $s1, 3 +action1D_Guard_Jogs_To_Predefined_Preset_2328_1: +/* 06AD74 7F036244 02E02025 */ move $a0, $s7 +/* 06AD78 7F036248 86E50114 */ lh $a1, 0x114($s7) +/* 06AD7C 7F03624C 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06AD80 7F036250 24060001 */ li $a2, 1 +/* 06AD84 7F036254 26520001 */ addiu $s2, $s2, 1 +/* 06AD88 7F036258 1000FCCC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD8C 7F03625C 26310001 */ addiu $s1, $s1, 1 +action1E_Guard_Walks_To_Preset_3: +/* 06AD90 7F036260 922F0001 */ lbu $t7, 1($s1) +/* 06AD94 7F036264 92290002 */ lbu $t1, 2($s1) +/* 06AD98 7F036268 02E02025 */ move $a0, $s7 +/* 06AD9C 7F03626C 000FC200 */ sll $t8, $t7, 8 +/* 06ADA0 7F036270 03091025 */ or $v0, $t8, $t1 +/* 06ADA4 7F036274 3045FFFF */ andi $a1, $v0, 0xffff +/* 06ADA8 7F036278 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06ADAC 7F03627C 00003025 */ move $a2, $zero +/* 06ADB0 7F036280 26520003 */ addiu $s2, $s2, 3 +/* 06ADB4 7F036284 1000FCC1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ADB8 7F036288 26310003 */ addiu $s1, $s1, 3 +action1F_Guard_Runs__To_Preset_3: +/* 06ADBC 7F03628C 922B0001 */ lbu $t3, 1($s1) +/* 06ADC0 7F036290 92390002 */ lbu $t9, 2($s1) +/* 06ADC4 7F036294 02E02025 */ move $a0, $s7 +/* 06ADC8 7F036298 000B6200 */ sll $t4, $t3, 8 +/* 06ADCC 7F03629C 01991025 */ or $v0, $t4, $t9 +/* 06ADD0 7F0362A0 3045FFFF */ andi $a1, $v0, 0xffff +/* 06ADD4 7F0362A4 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06ADD8 7F0362A8 24060002 */ li $a2, 2 +/* 06ADDC 7F0362AC 26520003 */ addiu $s2, $s2, 3 +/* 06ADE0 7F0362B0 1000FCB6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ADE4 7F0362B4 26310003 */ addiu $s1, $s1, 3 +action20_Activate_Path_2: +/* 06ADE8 7F0362B8 0FC0D50D */ jal get_ptr_path_for_pathnum +/* 06ADEC 7F0362BC 92240001 */ lbu $a0, 1($s1) +/* 06ADF0 7F0362C0 02E02025 */ move $a0, $s7 +/* 06ADF4 7F0362C4 0FC0AB55 */ jal if_actor_able_set_on_path +/* 06ADF8 7F0362C8 00402825 */ move $a1, $v0 +/* 06ADFC 7F0362CC 26520002 */ addiu $s2, $s2, 2 +/* 06AE00 7F0362D0 1000FCAE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE04 7F0362D4 26310002 */ addiu $s1, $s1, 2 +action36_If_Alarm_Activated_RVL_Plus_Stack_2: +/* 06AE08 7F0362D8 0FC0CDD8 */ jal alarm_timer_related +/* 06AE0C 7F0362DC 02E02025 */ move $a0, $s7 +/* 06AE10 7F0362E0 10400007 */ beqz $v0, .L7F036300 +/* 06AE14 7F0362E4 02C02025 */ move $a0, $s6 +/* 06AE18 7F0362E8 02402825 */ move $a1, $s2 +/* 06AE1C 7F0362EC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AE20 7F0362F0 92260001 */ lbu $a2, 1($s1) +/* 06AE24 7F0362F4 00409025 */ move $s2, $v0 +/* 06AE28 7F0362F8 1000FCA4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE2C 7F0362FC 02C28821 */ addu $s1, $s6, $v0 +.L7F036300: +/* 06AE30 7F036300 26520002 */ addiu $s2, $s2, 2 +/* 06AE34 7F036304 1000FCA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE38 7F036308 26310002 */ addiu $s1, $s1, 2 +action37_If_Alarm_Activated_RVL_2: +/* 06AE3C 7F03630C 0FC15794 */ jal is_alarm_on +/* 06AE40 7F036310 00000000 */ nop +/* 06AE44 7F036314 10400007 */ beqz $v0, .L7F036334 +/* 06AE48 7F036318 02C02025 */ move $a0, $s6 +/* 06AE4C 7F03631C 02402825 */ move $a1, $s2 +/* 06AE50 7F036320 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AE54 7F036324 92260001 */ lbu $a2, 1($s1) +/* 06AE58 7F036328 00409025 */ move $s2, $v0 +/* 06AE5C 7F03632C 1000FC97 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE60 7F036330 02C28821 */ addu $s1, $s6, $v0 +.L7F036334: +/* 06AE64 7F036334 26520002 */ addiu $s2, $s2, 2 +/* 06AE68 7F036338 1000FC94 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE6C 7F03633C 26310002 */ addiu $s1, $s1, 2 +action38_If_Toxic_Gas_Released_RVL_2: +/* 06AE70 7F036340 0FC157CE */ jal check_if_toxic_gas_activated +/* 06AE74 7F036344 00000000 */ nop +/* 06AE78 7F036348 10400007 */ beqz $v0, .L7F036368 +/* 06AE7C 7F03634C 02C02025 */ move $a0, $s6 +/* 06AE80 7F036350 02402825 */ move $a1, $s2 +/* 06AE84 7F036354 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AE88 7F036358 92260001 */ lbu $a2, 1($s1) +/* 06AE8C 7F03635C 00409025 */ move $s2, $v0 +/* 06AE90 7F036360 1000FC8A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE94 7F036364 02C28821 */ addu $s1, $s6, $v0 +.L7F036368: +/* 06AE98 7F036368 26520002 */ addiu $s2, $s2, 2 +/* 06AE9C 7F03636C 1000FC87 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AEA0 7F036370 26310002 */ addiu $s1, $s1, 2 +action39_If_Guard_Heard_Gunfire_RVL_2: +/* 06AEA4 7F036374 0FC0CCD5 */ jal check_if_actor_02_flag_set +/* 06AEA8 7F036378 02E02025 */ move $a0, $s7 +/* 06AEAC 7F03637C 10400007 */ beqz $v0, .L7F03639C +/* 06AEB0 7F036380 02C02025 */ move $a0, $s6 +/* 06AEB4 7F036384 02402825 */ move $a1, $s2 +/* 06AEB8 7F036388 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AEBC 7F03638C 92260001 */ lbu $a2, 1($s1) +/* 06AEC0 7F036390 00409025 */ move $s2, $v0 +/* 06AEC4 7F036394 1000FC7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AEC8 7F036398 02C28821 */ addu $s1, $s6, $v0 +.L7F03639C: +/* 06AECC 7F03639C 26520002 */ addiu $s2, $s2, 2 +/* 06AED0 7F0363A0 1000FC7A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AED4 7F0363A4 26310002 */ addiu $s1, $s1, 2 +action3A_If_Bond_Shoots_Another_Guard_RVL_2: +/* 06AED8 7F0363A8 0FC0CD6D */ jal check_if_actor_FA_target_set +/* 06AEDC 7F0363AC 02E02025 */ move $a0, $s7 +/* 06AEE0 7F0363B0 10400007 */ beqz $v0, .L7F0363D0 +/* 06AEE4 7F0363B4 02C02025 */ move $a0, $s6 +/* 06AEE8 7F0363B8 02402825 */ move $a1, $s2 +/* 06AEEC 7F0363BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AEF0 7F0363C0 92260001 */ lbu $a2, 1($s1) +/* 06AEF4 7F0363C4 00409025 */ move $s2, $v0 +/* 06AEF8 7F0363C8 1000FC70 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AEFC 7F0363CC 02C28821 */ addu $s1, $s6, $v0 +.L7F0363D0: +/* 06AF00 7F0363D0 26520002 */ addiu $s2, $s2, 2 +/* 06AF04 7F0363D4 1000FC6D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF08 7F0363D8 26310002 */ addiu $s1, $s1, 2 +action3B_If_Guard_Killed_In_Front_Of_Guard_RVL_2: +/* 06AF0C 7F0363DC 0FC0CD71 */ jal check_if_actor_FB_target_set +/* 06AF10 7F0363E0 02E02025 */ move $a0, $s7 +/* 06AF14 7F0363E4 10400007 */ beqz $v0, .L7F036404 +/* 06AF18 7F0363E8 02C02025 */ move $a0, $s6 +/* 06AF1C 7F0363EC 02402825 */ move $a1, $s2 +/* 06AF20 7F0363F0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AF24 7F0363F4 92260001 */ lbu $a2, 1($s1) +/* 06AF28 7F0363F8 00409025 */ move $s2, $v0 +/* 06AF2C 7F0363FC 1000FC63 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF30 7F036400 02C28821 */ addu $s1, $s6, $v0 +.L7F036404: +/* 06AF34 7F036404 26520002 */ addiu $s2, $s2, 2 +/* 06AF38 7F036408 1000FC60 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF3C 7F03640C 26310002 */ addiu $s1, $s1, 2 +action3C_If_Guard_In_Firing_Range_RVL_2: +/* 06AF40 7F036410 0FC0A52F */ jal sub_GAME_7F0294BC +/* 06AF44 7F036414 02E02025 */ move $a0, $s7 +/* 06AF48 7F036418 10400007 */ beqz $v0, .L7F036438 +/* 06AF4C 7F03641C 02C02025 */ move $a0, $s6 +/* 06AF50 7F036420 02402825 */ move $a1, $s2 +/* 06AF54 7F036424 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AF58 7F036428 92260001 */ lbu $a2, 1($s1) +/* 06AF5C 7F03642C 00409025 */ move $s2, $v0 +/* 06AF60 7F036430 1000FC56 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF64 7F036434 02C28821 */ addu $s1, $s6, $v0 +.L7F036438: +/* 06AF68 7F036438 26520002 */ addiu $s2, $s2, 2 +/* 06AF6C 7F03643C 1000FC53 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF70 7F036440 26310002 */ addiu $s1, $s1, 2 +action3D___Unused___Unknown___2: +/* 06AF74 7F036444 0FC0CF71 */ jal sub_GAME_7F033DC4 +/* 06AF78 7F036448 02E02025 */ move $a0, $s7 +/* 06AF7C 7F03644C 10400007 */ beqz $v0, .L7F03646C +/* 06AF80 7F036450 02C02025 */ move $a0, $s6 +/* 06AF84 7F036454 02402825 */ move $a1, $s2 +/* 06AF88 7F036458 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AF8C 7F03645C 92260001 */ lbu $a2, 1($s1) +/* 06AF90 7F036460 00409025 */ move $s2, $v0 +/* 06AF94 7F036464 1000FC49 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF98 7F036468 02C28821 */ addu $s1, $s6, $v0 +.L7F03646C: +/* 06AF9C 7F03646C 26520002 */ addiu $s2, $s2, 2 +/* 06AFA0 7F036470 1000FC46 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AFA4 7F036474 26310002 */ addiu $s1, $s1, 2 +action3E_If_Shot_Current_Guard_RVL_2: +/* 06AFA8 7F036478 0FC0CADA */ jal sub_GAME_7F032B68 +/* 06AFAC 7F03647C 02E02025 */ move $a0, $s7 +/* 06AFB0 7F036480 10400007 */ beqz $v0, .L7F0364A0 +/* 06AFB4 7F036484 02C02025 */ move $a0, $s6 +/* 06AFB8 7F036488 02402825 */ move $a1, $s2 +/* 06AFBC 7F03648C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AFC0 7F036490 92260001 */ lbu $a2, 1($s1) +/* 06AFC4 7F036494 00409025 */ move $s2, $v0 +/* 06AFC8 7F036498 1000FC3C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AFCC 7F03649C 02C28821 */ addu $s1, $s6, $v0 +.L7F0364A0: +/* 06AFD0 7F0364A0 26520002 */ addiu $s2, $s2, 2 +/* 06AFD4 7F0364A4 1000FC39 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AFD8 7F0364A8 26310002 */ addiu $s1, $s1, 2 +action3F_If_Heard_Bond_RVL_2: +/* 06AFDC 7F0364AC 0FC0CAE8 */ jal sub_GAME_7F032BA0 +/* 06AFE0 7F0364B0 02E02025 */ move $a0, $s7 +/* 06AFE4 7F0364B4 10400007 */ beqz $v0, .L7F0364D4 +/* 06AFE8 7F0364B8 02C02025 */ move $a0, $s6 +/* 06AFEC 7F0364BC 02402825 */ move $a1, $s2 +/* 06AFF0 7F0364C0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AFF4 7F0364C4 92260001 */ lbu $a2, 1($s1) +/* 06AFF8 7F0364C8 00409025 */ move $s2, $v0 +/* 06AFFC 7F0364CC 1000FC2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B000 7F0364D0 02C28821 */ addu $s1, $s6, $v0 +.L7F0364D4: +/* 06B004 7F0364D4 26520002 */ addiu $s2, $s2, 2 +/* 06B008 7F0364D8 1000FC2C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B00C 7F0364DC 26310002 */ addiu $s1, $s1, 2 +action40_If_Another_Guard_In_Same_Room_As_Guard_ID_RVL_3: +/* 06B010 7F0364E0 02E02025 */ move $a0, $s7 +/* 06B014 7F0364E4 0FC0CC10 */ jal get_handle_for_guard_id +/* 06B018 7F0364E8 92250001 */ lbu $a1, 1($s1) +/* 06B01C 7F0364EC 50400012 */ beql $v0, $zero, .L7F036538 +/* 06B020 7F0364F0 26520003 */ addiu $s2, $s2, 3 +/* 06B024 7F0364F4 8C4E0018 */ lw $t6, 0x18($v0) +/* 06B028 7F0364F8 51C0000F */ beql $t6, $zero, .L7F036538 +/* 06B02C 7F0364FC 26520003 */ addiu $s2, $s2, 3 +/* 06B030 7F036500 8C420018 */ lw $v0, 0x18($v0) +/* 06B034 7F036504 02E02025 */ move $a0, $s7 +/* 06B038 7F036508 24450008 */ addiu $a1, $v0, 8 +/* 06B03C 7F03650C 0FC0A574 */ jal check_if_position_in_same_room +/* 06B040 7F036510 8C460014 */ lw $a2, 0x14($v0) +/* 06B044 7F036514 10400007 */ beqz $v0, .L7F036534 +/* 06B048 7F036518 02C02025 */ move $a0, $s6 +/* 06B04C 7F03651C 02402825 */ move $a1, $s2 +/* 06B050 7F036520 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B054 7F036524 92260002 */ lbu $a2, 2($s1) +/* 06B058 7F036528 00409025 */ move $s2, $v0 +/* 06B05C 7F03652C 1000FC17 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B060 7F036530 02C28821 */ addu $s1, $s6, $v0 +.L7F036534: +/* 06B064 7F036534 26520003 */ addiu $s2, $s2, 3 +.L7F036538: +/* 06B068 7F036538 1000FC14 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B06C 7F03653C 26310003 */ addiu $s1, $s1, 3 +action41_If_Guard_Has_Been_On_Screen_RVL_2: +/* 06B070 7F036540 8EEF0014 */ lw $t7, 0x14($s7) +/* 06B074 7F036544 02C02025 */ move $a0, $s6 +/* 06B078 7F036548 02402825 */ move $a1, $s2 +/* 06B07C 7F03654C 31F80008 */ andi $t8, $t7, 8 +/* 06B080 7F036550 57000007 */ bnezl $t8, .L7F036570 +/* 06B084 7F036554 26520002 */ addiu $s2, $s2, 2 +/* 06B088 7F036558 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B08C 7F03655C 92260001 */ lbu $a2, 1($s1) +/* 06B090 7F036560 00409025 */ move $s2, $v0 +/* 06B094 7F036564 1000FC09 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B098 7F036568 02C28821 */ addu $s1, $s6, $v0 +/* 06B09C 7F03656C 26520002 */ addiu $s2, $s2, 2 +.L7F036570: +/* 06B0A0 7F036570 1000FC06 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B0A4 7F036574 26310002 */ addiu $s1, $s1, 2 +action42_If_Current_Guard_On_Screen_In_Loaded_Room_RVL_2: +/* 06B0A8 7F036578 8EE90018 */ lw $t1, 0x18($s7) +/* 06B0AC 7F03657C 02C02025 */ move $a0, $s6 +/* 06B0B0 7F036580 02402825 */ move $a1, $s2 +/* 06B0B4 7F036584 912A0001 */ lbu $t2, 1($t1) +/* 06B0B8 7F036588 314B0002 */ andi $t3, $t2, 2 +/* 06B0BC 7F03658C 51600007 */ beql $t3, $zero, .L7F0365AC +/* 06B0C0 7F036590 26520002 */ addiu $s2, $s2, 2 +/* 06B0C4 7F036594 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B0C8 7F036598 92260001 */ lbu $a2, 1($s1) +/* 06B0CC 7F03659C 00409025 */ move $s2, $v0 +/* 06B0D0 7F0365A0 1000FBFA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B0D4 7F0365A4 02C28821 */ addu $s1, $s6, $v0 +/* 06B0D8 7F0365A8 26520002 */ addiu $s2, $s2, 2 +.L7F0365AC: +/* 06B0DC 7F0365AC 1000FBF7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B0E0 7F0365B0 26310002 */ addiu $s1, $s1, 2 +action43_If_Guard_In_A_Room_Currently_Loaded_RVL_2: +/* 06B0E4 7F0365B4 8EEC0018 */ lw $t4, 0x18($s7) +/* 06B0E8 7F0365B8 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 06B0EC 7F0365BC 8D840014 */ lw $a0, 0x14($t4) +/* 06B0F0 7F0365C0 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 06B0F4 7F0365C4 00402025 */ move $a0, $v0 +/* 06B0F8 7F0365C8 10400007 */ beqz $v0, .L7F0365E8 +/* 06B0FC 7F0365CC 02C02025 */ move $a0, $s6 +/* 06B100 7F0365D0 02402825 */ move $a1, $s2 +/* 06B104 7F0365D4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B108 7F0365D8 92260001 */ lbu $a2, 1($s1) +/* 06B10C 7F0365DC 00409025 */ move $s2, $v0 +/* 06B110 7F0365E0 1000FBEA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B114 7F0365E4 02C28821 */ addu $s1, $s6, $v0 +.L7F0365E8: +/* 06B118 7F0365E8 26520002 */ addiu $s2, $s2, 2 +/* 06B11C 7F0365EC 1000FBE7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B120 7F0365F0 26310002 */ addiu $s1, $s1, 2 +action44_If_Room_Containing_Preset_Is_Loaded_RVL_4: +/* 06B124 7F0365F4 92390001 */ lbu $t9, 1($s1) +/* 06B128 7F0365F8 922E0002 */ lbu $t6, 2($s1) +/* 06B12C 7F0365FC 02E02025 */ move $a0, $s7 +/* 06B130 7F036600 00196A00 */ sll $t5, $t9, 8 +/* 06B134 7F036604 01AE1025 */ or $v0, $t5, $t6 +/* 06B138 7F036608 0FC0CBBF */ jal check_if_room_for_preset_loaded +/* 06B13C 7F03660C 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B140 7F036610 10400007 */ beqz $v0, .L7F036630 +/* 06B144 7F036614 02C02025 */ move $a0, $s6 +/* 06B148 7F036618 02402825 */ move $a1, $s2 +/* 06B14C 7F03661C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B150 7F036620 92260003 */ lbu $a2, 3($s1) +/* 06B154 7F036624 00409025 */ move $s2, $v0 +/* 06B158 7F036628 1000FBD8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B15C 7F03662C 02C28821 */ addu $s1, $s6, $v0 +.L7F036630: +/* 06B160 7F036630 26520004 */ addiu $s2, $s2, 4 +/* 06B164 7F036634 1000FBD5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B168 7F036638 26310004 */ addiu $s1, $s1, 4 +action45_Go_To_RVL_If_Bond_Has_Guard_At_Gunpoint_2: +/* 06B16C 7F03663C 0FC0CCFE */ jal sub_GAME_7F0333F8 +/* 06B170 7F036640 02E02025 */ move $a0, $s7 +/* 06B174 7F036644 10400007 */ beqz $v0, .L7F036664 +/* 06B178 7F036648 02C02025 */ move $a0, $s6 +/* 06B17C 7F03664C 02402825 */ move $a1, $s2 +/* 06B180 7F036650 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B184 7F036654 92260001 */ lbu $a2, 1($s1) +/* 06B188 7F036658 00409025 */ move $s2, $v0 +/* 06B18C 7F03665C 1000FBCB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B190 7F036660 02C28821 */ addu $s1, $s6, $v0 +.L7F036664: +/* 06B194 7F036664 26520002 */ addiu $s2, $s2, 2 +/* 06B198 7F036668 1000FBC8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B19C 7F03666C 26310002 */ addiu $s1, $s1, 2 +action46_If_Fired_A_Shot_RVL_2: +/* 06B1A0 7F036670 0FC0CD24 */ jal check_if_actor_invisible +/* 06B1A4 7F036674 02E02025 */ move $a0, $s7 +/* 06B1A8 7F036678 10400007 */ beqz $v0, .L7F036698 +/* 06B1AC 7F03667C 02C02025 */ move $a0, $s6 +/* 06B1B0 7F036680 02402825 */ move $a1, $s2 +/* 06B1B4 7F036684 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B1B8 7F036688 92260001 */ lbu $a2, 1($s1) +/* 06B1BC 7F03668C 00409025 */ move $s2, $v0 +/* 06B1C0 7F036690 1000FBBE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B1C4 7F036694 02C28821 */ addu $s1, $s6, $v0 +.L7F036698: +/* 06B1C8 7F036698 26520002 */ addiu $s2, $s2, 2 +/* 06B1CC 7F03669C 1000FBBB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B1D0 7F0366A0 26310002 */ addiu $s1, $s1, 2 +action47_If_Distance_Between_Bond_And_Guard_LTV_RVL_3: +/* 06B1D4 7F0366A4 0FC0CB13 */ jal sub_GAME_7F032C4C +/* 06B1D8 7F0366A8 02E02025 */ move $a0, $s7 +/* 06B1DC 7F0366AC 92380001 */ lbu $t8, 1($s1) +/* 06B1E0 7F0366B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B1E4 7F0366B4 02C02025 */ move $a0, $s6 +/* 06B1E8 7F0366B8 44984000 */ mtc1 $t8, $f8 +/* 06B1EC 7F0366BC 02402825 */ move $a1, $s2 +/* 06B1F0 7F0366C0 07010004 */ bgez $t8, .L7F0366D4 +/* 06B1F4 7F0366C4 468042A0 */ cvt.s.w $f10, $f8 +/* 06B1F8 7F0366C8 44818000 */ mtc1 $at, $f16 +/* 06B1FC 7F0366CC 00000000 */ nop +/* 06B200 7F0366D0 46105280 */ add.s $f10, $f10, $f16 +.L7F0366D4: +/* 06B204 7F0366D4 461A5482 */ mul.s $f18, $f10, $f26 +/* 06B208 7F0366D8 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B20C 7F0366DC 44812000 */ mtc1 $at, $f4 +/* 06B210 7F0366E0 00000000 */ nop +/* 06B214 7F0366E4 46049182 */ mul.s $f6, $f18, $f4 +/* 06B218 7F0366E8 4606003C */ c.lt.s $f0, $f6 +/* 06B21C 7F0366EC 00000000 */ nop +/* 06B220 7F0366F0 45020007 */ bc1fl .L7F036710 +/* 06B224 7F0366F4 26520003 */ addiu $s2, $s2, 3 +/* 06B228 7F0366F8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B22C 7F0366FC 92260002 */ lbu $a2, 2($s1) +/* 06B230 7F036700 00409025 */ move $s2, $v0 +/* 06B234 7F036704 1000FBA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B238 7F036708 02C28821 */ addu $s1, $s6, $v0 +/* 06B23C 7F03670C 26520003 */ addiu $s2, $s2, 3 +.L7F036710: +/* 06B240 7F036710 1000FB9E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B244 7F036714 26310003 */ addiu $s1, $s1, 3 +action48_If_Distance_Between_Bond_And_Guard_GTV_RVL_3: +/* 06B248 7F036718 0FC0CB13 */ jal sub_GAME_7F032C4C +/* 06B24C 7F03671C 02E02025 */ move $a0, $s7 +/* 06B250 7F036720 92290001 */ lbu $t1, 1($s1) +/* 06B254 7F036724 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B258 7F036728 02C02025 */ move $a0, $s6 +/* 06B25C 7F03672C 44894000 */ mtc1 $t1, $f8 +/* 06B260 7F036730 02402825 */ move $a1, $s2 +/* 06B264 7F036734 05210004 */ bgez $t1, .L7F036748 +/* 06B268 7F036738 46804420 */ cvt.s.w $f16, $f8 +/* 06B26C 7F03673C 44815000 */ mtc1 $at, $f10 +/* 06B270 7F036740 00000000 */ nop +/* 06B274 7F036744 460A8400 */ add.s $f16, $f16, $f10 +.L7F036748: +/* 06B278 7F036748 461A8482 */ mul.s $f18, $f16, $f26 +/* 06B27C 7F03674C 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B280 7F036750 44812000 */ mtc1 $at, $f4 +/* 06B284 7F036754 00000000 */ nop +/* 06B288 7F036758 46049182 */ mul.s $f6, $f18, $f4 +/* 06B28C 7F03675C 4600303C */ c.lt.s $f6, $f0 +/* 06B290 7F036760 00000000 */ nop +/* 06B294 7F036764 45020007 */ bc1fl .L7F036784 +/* 06B298 7F036768 26520003 */ addiu $s2, $s2, 3 +/* 06B29C 7F03676C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B2A0 7F036770 92260002 */ lbu $a2, 2($s1) +/* 06B2A4 7F036774 00409025 */ move $s2, $v0 +/* 06B2A8 7F036778 1000FB84 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B2AC 7F03677C 02C28821 */ addu $s1, $s6, $v0 +/* 06B2B0 7F036780 26520003 */ addiu $s2, $s2, 3 +.L7F036784: +/* 06B2B4 7F036784 1000FB81 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B2B8 7F036788 26310003 */ addiu $s1, $s1, 3 +action49_Test_if_Actor_and_Player_CCWAngle_LTV_RVL_Unused_3: +/* 06B2BC 7F03678C 0FC0CB5C */ jal get_angle_between_actor_cur_player +/* 06B2C0 7F036790 02E02025 */ move $a0, $s7 +/* 06B2C4 7F036794 922A0001 */ lbu $t2, 1($s1) +/* 06B2C8 7F036798 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B2CC 7F03679C 02C02025 */ move $a0, $s6 +/* 06B2D0 7F0367A0 448A4000 */ mtc1 $t2, $f8 +/* 06B2D4 7F0367A4 02402825 */ move $a1, $s2 +/* 06B2D8 7F0367A8 05410004 */ bgez $t2, .L7F0367BC +/* 06B2DC 7F0367AC 468042A0 */ cvt.s.w $f10, $f8 +/* 06B2E0 7F0367B0 44818000 */ mtc1 $at, $f16 +/* 06B2E4 7F0367B4 00000000 */ nop +/* 06B2E8 7F0367B8 46105280 */ add.s $f10, $f10, $f16 +.L7F0367BC: +/* 06B2EC 7F0367BC 461A5482 */ mul.s $f18, $f10, $f26 +/* 06B2F0 7F0367C0 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B2F4 7F0367C4 44812000 */ mtc1 $at, $f4 +/* 06B2F8 7F0367C8 00000000 */ nop +/* 06B2FC 7F0367CC 46049182 */ mul.s $f6, $f18, $f4 +/* 06B300 7F0367D0 4606003C */ c.lt.s $f0, $f6 +/* 06B304 7F0367D4 00000000 */ nop +/* 06B308 7F0367D8 45020007 */ bc1fl .L7F0367F8 +/* 06B30C 7F0367DC 26520003 */ addiu $s2, $s2, 3 +/* 06B310 7F0367E0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B314 7F0367E4 92260002 */ lbu $a2, 2($s1) +/* 06B318 7F0367E8 00409025 */ move $s2, $v0 +/* 06B31C 7F0367EC 1000FB67 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B320 7F0367F0 02C28821 */ addu $s1, $s6, $v0 +/* 06B324 7F0367F4 26520003 */ addiu $s2, $s2, 3 +.L7F0367F8: +/* 06B328 7F0367F8 1000FB64 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B32C 7F0367FC 26310003 */ addiu $s1, $s1, 3 +action4A_Test_if_Actor_and_Player_CCWAngle_GTV_RVL_Unused_3: +/* 06B330 7F036800 0FC0CB5C */ jal get_angle_between_actor_cur_player +/* 06B334 7F036804 02E02025 */ move $a0, $s7 +/* 06B338 7F036808 922B0001 */ lbu $t3, 1($s1) +/* 06B33C 7F03680C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B340 7F036810 02C02025 */ move $a0, $s6 +/* 06B344 7F036814 448B4000 */ mtc1 $t3, $f8 +/* 06B348 7F036818 02402825 */ move $a1, $s2 +/* 06B34C 7F03681C 05610004 */ bgez $t3, .L7F036830 +/* 06B350 7F036820 46804420 */ cvt.s.w $f16, $f8 +/* 06B354 7F036824 44815000 */ mtc1 $at, $f10 +/* 06B358 7F036828 00000000 */ nop +/* 06B35C 7F03682C 460A8400 */ add.s $f16, $f16, $f10 +.L7F036830: +/* 06B360 7F036830 461A8482 */ mul.s $f18, $f16, $f26 +/* 06B364 7F036834 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B368 7F036838 44812000 */ mtc1 $at, $f4 +/* 06B36C 7F03683C 00000000 */ nop +/* 06B370 7F036840 46049182 */ mul.s $f6, $f18, $f4 +/* 06B374 7F036844 4600303C */ c.lt.s $f6, $f0 +/* 06B378 7F036848 00000000 */ nop +/* 06B37C 7F03684C 45020007 */ bc1fl .L7F03686C +/* 06B380 7F036850 26520003 */ addiu $s2, $s2, 3 +/* 06B384 7F036854 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B388 7F036858 92260002 */ lbu $a2, 2($s1) +/* 06B38C 7F03685C 00409025 */ move $s2, $v0 +/* 06B390 7F036860 1000FB4A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B394 7F036864 02C28821 */ addu $s1, $s6, $v0 +/* 06B398 7F036868 26520003 */ addiu $s2, $s2, 3 +.L7F03686C: +/* 06B39C 7F03686C 1000FB47 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B3A0 7F036870 26310003 */ addiu $s1, $s1, 3 +action4B_RVL_If_In_Proximity_Of_Bond_4: +/* 06B3A4 7F036874 922C0001 */ lbu $t4, 1($s1) +/* 06B3A8 7F036878 922D0002 */ lbu $t5, 2($s1) +/* 06B3AC 7F03687C 02E02025 */ move $a0, $s7 +/* 06B3B0 7F036880 000CCA00 */ sll $t9, $t4, 8 +/* 06B3B4 7F036884 032D7025 */ or $t6, $t9, $t5 +/* 06B3B8 7F036888 448E4000 */ mtc1 $t6, $f8 +/* 06B3BC 7F03688C 00000000 */ nop +/* 06B3C0 7F036890 468042A0 */ cvt.s.w $f10, $f8 +/* 06B3C4 7F036894 46185402 */ mul.s $f16, $f10, $f24 +/* 06B3C8 7F036898 0FC0CB79 */ jal sub_GAME_7F032DE4 +/* 06B3CC 7F03689C E7B005FC */ swc1 $f16, 0x5fc($sp) +/* 06B3D0 7F0368A0 C7B205FC */ lwc1 $f18, 0x5fc($sp) +/* 06B3D4 7F0368A4 02C02025 */ move $a0, $s6 +/* 06B3D8 7F0368A8 02402825 */ move $a1, $s2 +/* 06B3DC 7F0368AC 4612003C */ c.lt.s $f0, $f18 +/* 06B3E0 7F0368B0 00000000 */ nop +/* 06B3E4 7F0368B4 45020007 */ bc1fl .L7F0368D4 +/* 06B3E8 7F0368B8 26520004 */ addiu $s2, $s2, 4 +/* 06B3EC 7F0368BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B3F0 7F0368C0 92260003 */ lbu $a2, 3($s1) +/* 06B3F4 7F0368C4 00409025 */ move $s2, $v0 +/* 06B3F8 7F0368C8 1000FB30 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B3FC 7F0368CC 02C28821 */ addu $s1, $s6, $v0 +/* 06B400 7F0368D0 26520004 */ addiu $s2, $s2, 4 +.L7F0368D4: +/* 06B404 7F0368D4 1000FB2D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B408 7F0368D8 26310004 */ addiu $s1, $s1, 4 +action4C_RVL_If_Not_In_Proximity_Of_Bond_4: +/* 06B40C 7F0368DC 922F0001 */ lbu $t7, 1($s1) +/* 06B410 7F0368E0 92290002 */ lbu $t1, 2($s1) +/* 06B414 7F0368E4 02E02025 */ move $a0, $s7 +/* 06B418 7F0368E8 000FC200 */ sll $t8, $t7, 8 +/* 06B41C 7F0368EC 03095025 */ or $t2, $t8, $t1 +/* 06B420 7F0368F0 448A2000 */ mtc1 $t2, $f4 +/* 06B424 7F0368F4 00000000 */ nop +/* 06B428 7F0368F8 468021A0 */ cvt.s.w $f6, $f4 +/* 06B42C 7F0368FC 46183202 */ mul.s $f8, $f6, $f24 +/* 06B430 7F036900 0FC0CB79 */ jal sub_GAME_7F032DE4 +/* 06B434 7F036904 E7A805F4 */ swc1 $f8, 0x5f4($sp) +/* 06B438 7F036908 C7AA05F4 */ lwc1 $f10, 0x5f4($sp) +/* 06B43C 7F03690C 02C02025 */ move $a0, $s6 +/* 06B440 7F036910 02402825 */ move $a1, $s2 +/* 06B444 7F036914 4600503C */ c.lt.s $f10, $f0 +/* 06B448 7F036918 00000000 */ nop +/* 06B44C 7F03691C 45020007 */ bc1fl .L7F03693C +/* 06B450 7F036920 26520004 */ addiu $s2, $s2, 4 +/* 06B454 7F036924 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B458 7F036928 92260003 */ lbu $a2, 3($s1) +/* 06B45C 7F03692C 00409025 */ move $s2, $v0 +/* 06B460 7F036930 1000FB16 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B464 7F036934 02C28821 */ addu $s1, $s6, $v0 +/* 06B468 7F036938 26520004 */ addiu $s2, $s2, 4 +.L7F03693C: +/* 06B46C 7F03693C 1000FB13 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B470 7F036940 26310004 */ addiu $s1, $s1, 4 +action4D_When_Guard_In_Proximity_Of_Preset_RVL_7: +/* 06B474 7F036944 02E02025 */ move $a0, $s7 +/* 06B478 7F036948 0FC0CC10 */ jal get_handle_for_guard_id +/* 06B47C 7F03694C 92250001 */ lbu $a1, 1($s1) +/* 06B480 7F036950 922E0002 */ lbu $t6, 2($s1) +/* 06B484 7F036954 92380003 */ lbu $t8, 3($s1) +/* 06B488 7F036958 922B0004 */ lbu $t3, 4($s1) +/* 06B48C 7F03695C 000E7A00 */ sll $t7, $t6, 8 +/* 06B490 7F036960 01F84825 */ or $t1, $t7, $t8 +/* 06B494 7F036964 44898000 */ mtc1 $t1, $f16 +/* 06B498 7F036968 92390005 */ lbu $t9, 5($s1) +/* 06B49C 7F03696C 000B6200 */ sll $t4, $t3, 8 +/* 06B4A0 7F036970 468084A0 */ cvt.s.w $f18, $f16 +/* 06B4A4 7F036974 01991825 */ or $v1, $t4, $t9 +/* 06B4A8 7F036978 306DFFFF */ andi $t5, $v1, 0xffff +/* 06B4AC 7F03697C 00402025 */ move $a0, $v0 +/* 06B4B0 7F036980 01A02825 */ move $a1, $t5 +/* 06B4B4 7F036984 46189082 */ mul.s $f2, $f18, $f24 +/* 06B4B8 7F036988 50400010 */ beql $v0, $zero, .L7F0369CC +/* 06B4BC 7F03698C 26520007 */ addiu $s2, $s2, 7 +/* 06B4C0 7F036990 0FC0CB92 */ jal sub_GAME_7F032E48 +/* 06B4C4 7F036994 E7A205E4 */ swc1 $f2, 0x5e4($sp) +/* 06B4C8 7F036998 C7A205E4 */ lwc1 $f2, 0x5e4($sp) +/* 06B4CC 7F03699C 02C02025 */ move $a0, $s6 +/* 06B4D0 7F0369A0 02402825 */ move $a1, $s2 +/* 06B4D4 7F0369A4 4602003C */ c.lt.s $f0, $f2 +/* 06B4D8 7F0369A8 00000000 */ nop +/* 06B4DC 7F0369AC 45020007 */ bc1fl .L7F0369CC +/* 06B4E0 7F0369B0 26520007 */ addiu $s2, $s2, 7 +/* 06B4E4 7F0369B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B4E8 7F0369B8 92260006 */ lbu $a2, 6($s1) +/* 06B4EC 7F0369BC 00409025 */ move $s2, $v0 +/* 06B4F0 7F0369C0 1000FAF2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B4F4 7F0369C4 02C28821 */ addu $s1, $s6, $v0 +/* 06B4F8 7F0369C8 26520007 */ addiu $s2, $s2, 7 +.L7F0369CC: +/* 06B4FC 7F0369CC 1000FAEF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B500 7F0369D0 26310007 */ addiu $s1, $s1, 7 +action4E_When_Guard_Not_In_Proximity_Of_Preset_RVL_7: +/* 06B504 7F0369D4 02E02025 */ move $a0, $s7 +/* 06B508 7F0369D8 0FC0CC10 */ jal get_handle_for_guard_id +/* 06B50C 7F0369DC 92250001 */ lbu $a1, 1($s1) +/* 06B510 7F0369E0 922D0002 */ lbu $t5, 2($s1) +/* 06B514 7F0369E4 922F0003 */ lbu $t7, 3($s1) +/* 06B518 7F0369E8 922A0004 */ lbu $t2, 4($s1) +/* 06B51C 7F0369EC 000D7200 */ sll $t6, $t5, 8 +/* 06B520 7F0369F0 01CFC025 */ or $t8, $t6, $t7 +/* 06B524 7F0369F4 44982000 */ mtc1 $t8, $f4 +/* 06B528 7F0369F8 922C0005 */ lbu $t4, 5($s1) +/* 06B52C 7F0369FC 000A5A00 */ sll $t3, $t2, 8 +/* 06B530 7F036A00 468021A0 */ cvt.s.w $f6, $f4 +/* 06B534 7F036A04 016C1825 */ or $v1, $t3, $t4 +/* 06B538 7F036A08 3079FFFF */ andi $t9, $v1, 0xffff +/* 06B53C 7F036A0C 00402025 */ move $a0, $v0 +/* 06B540 7F036A10 03202825 */ move $a1, $t9 +/* 06B544 7F036A14 46183082 */ mul.s $f2, $f6, $f24 +/* 06B548 7F036A18 50400010 */ beql $v0, $zero, .L7F036A5C +/* 06B54C 7F036A1C 26520007 */ addiu $s2, $s2, 7 +/* 06B550 7F036A20 0FC0CB92 */ jal sub_GAME_7F032E48 +/* 06B554 7F036A24 E7A205D4 */ swc1 $f2, 0x5d4($sp) +/* 06B558 7F036A28 C7A205D4 */ lwc1 $f2, 0x5d4($sp) +/* 06B55C 7F036A2C 02C02025 */ move $a0, $s6 +/* 06B560 7F036A30 02402825 */ move $a1, $s2 +/* 06B564 7F036A34 4600103C */ c.lt.s $f2, $f0 +/* 06B568 7F036A38 00000000 */ nop +/* 06B56C 7F036A3C 45020007 */ bc1fl .L7F036A5C +/* 06B570 7F036A40 26520007 */ addiu $s2, $s2, 7 +/* 06B574 7F036A44 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B578 7F036A48 92260006 */ lbu $a2, 6($s1) +/* 06B57C 7F036A4C 00409025 */ move $s2, $v0 +/* 06B580 7F036A50 1000FACE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B584 7F036A54 02C28821 */ addu $s1, $s6, $v0 +/* 06B588 7F036A58 26520007 */ addiu $s2, $s2, 7 +.L7F036A5C: +/* 06B58C 7F036A5C 1000FACB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B590 7F036A60 26310007 */ addiu $s1, $s1, 7 +action4F_If_Current_Guard_Is_In_Units_Of_Guard_ID_RVL_5: +/* 06B594 7F036A64 92290001 */ lbu $t1, 1($s1) +/* 06B598 7F036A68 922B0002 */ lbu $t3, 2($s1) +/* 06B59C 7F036A6C 02E02025 */ move $a0, $s7 +/* 06B5A0 7F036A70 00095200 */ sll $t2, $t1, 8 +/* 06B5A4 7F036A74 014B6025 */ or $t4, $t2, $t3 +/* 06B5A8 7F036A78 448C4000 */ mtc1 $t4, $f8 +/* 06B5AC 7F036A7C 00000000 */ nop +/* 06B5B0 7F036A80 468042A0 */ cvt.s.w $f10, $f8 +/* 06B5B4 7F036A84 46185402 */ mul.s $f16, $f10, $f24 +/* 06B5B8 7F036A88 E7B005CC */ swc1 $f16, 0x5cc($sp) +/* 06B5BC 7F036A8C 0FC0CC31 */ jal get_distance_between_actor_and_actorID +/* 06B5C0 7F036A90 92250003 */ lbu $a1, 3($s1) +/* 06B5C4 7F036A94 C7B205CC */ lwc1 $f18, 0x5cc($sp) +/* 06B5C8 7F036A98 02C02025 */ move $a0, $s6 +/* 06B5CC 7F036A9C 02402825 */ move $a1, $s2 +/* 06B5D0 7F036AA0 4612003C */ c.lt.s $f0, $f18 +/* 06B5D4 7F036AA4 00000000 */ nop +/* 06B5D8 7F036AA8 45020007 */ bc1fl .L7F036AC8 +/* 06B5DC 7F036AAC 26520005 */ addiu $s2, $s2, 5 +/* 06B5E0 7F036AB0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B5E4 7F036AB4 92260004 */ lbu $a2, 4($s1) +/* 06B5E8 7F036AB8 00409025 */ move $s2, $v0 +/* 06B5EC 7F036ABC 1000FAB3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B5F0 7F036AC0 02C28821 */ addu $s1, $s6, $v0 +/* 06B5F4 7F036AC4 26520005 */ addiu $s2, $s2, 5 +.L7F036AC8: +/* 06B5F8 7F036AC8 1000FAB0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B5FC 7F036ACC 26310005 */ addiu $s1, $s1, 5 +action50_If_Current_Guard_Is_Not_In_Units_Of_Guard_ID_RVL_5: +/* 06B600 7F036AD0 92390001 */ lbu $t9, 1($s1) +/* 06B604 7F036AD4 922E0002 */ lbu $t6, 2($s1) +/* 06B608 7F036AD8 02E02025 */ move $a0, $s7 +/* 06B60C 7F036ADC 00196A00 */ sll $t5, $t9, 8 +/* 06B610 7F036AE0 01AE7825 */ or $t7, $t5, $t6 +/* 06B614 7F036AE4 448F2000 */ mtc1 $t7, $f4 +/* 06B618 7F036AE8 00000000 */ nop +/* 06B61C 7F036AEC 468021A0 */ cvt.s.w $f6, $f4 +/* 06B620 7F036AF0 46183202 */ mul.s $f8, $f6, $f24 +/* 06B624 7F036AF4 E7A805C4 */ swc1 $f8, 0x5c4($sp) +/* 06B628 7F036AF8 0FC0CC31 */ jal get_distance_between_actor_and_actorID +/* 06B62C 7F036AFC 92250003 */ lbu $a1, 3($s1) +/* 06B630 7F036B00 C7AA05C4 */ lwc1 $f10, 0x5c4($sp) +/* 06B634 7F036B04 02C02025 */ move $a0, $s6 +/* 06B638 7F036B08 02402825 */ move $a1, $s2 +/* 06B63C 7F036B0C 4600503C */ c.lt.s $f10, $f0 +/* 06B640 7F036B10 00000000 */ nop +/* 06B644 7F036B14 45020007 */ bc1fl .L7F036B34 +/* 06B648 7F036B18 26520005 */ addiu $s2, $s2, 5 +/* 06B64C 7F036B1C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B650 7F036B20 92260004 */ lbu $a2, 4($s1) +/* 06B654 7F036B24 00409025 */ move $s2, $v0 +/* 06B658 7F036B28 1000FA98 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B65C 7F036B2C 02C28821 */ addu $s1, $s6, $v0 +/* 06B660 7F036B30 26520005 */ addiu $s2, $s2, 5 +.L7F036B34: +/* 06B664 7F036B34 1000FA95 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B668 7F036B38 26310005 */ addiu $s1, $s1, 5 +action51_SetClosestGuardUnitsGuardID_Then_RVL_IfSuccess_4: +/* 06B66C 7F036B3C 92380001 */ lbu $t8, 1($s1) +/* 06B670 7F036B40 922A0002 */ lbu $t2, 2($s1) +/* 06B674 7F036B44 02E02025 */ move $a0, $s7 +/* 06B678 7F036B48 00184A00 */ sll $t1, $t8, 8 +/* 06B67C 7F036B4C 012A5825 */ or $t3, $t1, $t2 +/* 06B680 7F036B50 448B8000 */ mtc1 $t3, $f16 +/* 06B684 7F036B54 00000000 */ nop +/* 06B688 7F036B58 468084A0 */ cvt.s.w $f18, $f16 +/* 06B68C 7F036B5C 46189002 */ mul.s $f0, $f18, $f24 +/* 06B690 7F036B60 44050000 */ mfc1 $a1, $f0 +/* 06B694 7F036B64 0FC0CECE */ jal sub_GAME_7F033B38 +/* 06B698 7F036B68 00000000 */ nop +/* 06B69C 7F036B6C 10400007 */ beqz $v0, .L7F036B8C +/* 06B6A0 7F036B70 02C02025 */ move $a0, $s6 +/* 06B6A4 7F036B74 02402825 */ move $a1, $s2 +/* 06B6A8 7F036B78 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B6AC 7F036B7C 92260003 */ lbu $a2, 3($s1) +/* 06B6B0 7F036B80 00409025 */ move $s2, $v0 +/* 06B6B4 7F036B84 1000FA81 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B6B8 7F036B88 02C28821 */ addu $s1, $s6, $v0 +.L7F036B8C: +/* 06B6BC 7F036B8C 26520004 */ addiu $s2, $s2, 4 +/* 06B6C0 7F036B90 1000FA7E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B6C4 7F036B94 26310004 */ addiu $s1, $s1, 4 +action52_GoIntoRVLIf_In_Units_Of_Preset_6: +/* 06B6C8 7F036B98 922F0001 */ lbu $t7, 1($s1) +/* 06B6CC 7F036B9C 92290002 */ lbu $t1, 2($s1) +/* 06B6D0 7F036BA0 922C0003 */ lbu $t4, 3($s1) +/* 06B6D4 7F036BA4 000FC200 */ sll $t8, $t7, 8 +/* 06B6D8 7F036BA8 03095025 */ or $t2, $t8, $t1 +/* 06B6DC 7F036BAC 448A2000 */ mtc1 $t2, $f4 +/* 06B6E0 7F036BB0 922D0004 */ lbu $t5, 4($s1) +/* 06B6E4 7F036BB4 000CCA00 */ sll $t9, $t4, 8 +/* 06B6E8 7F036BB8 468021A0 */ cvt.s.w $f6, $f4 +/* 06B6EC 7F036BBC 032D1025 */ or $v0, $t9, $t5 +/* 06B6F0 7F036BC0 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B6F4 7F036BC4 02E02025 */ move $a0, $s7 +/* 06B6F8 7F036BC8 46183202 */ mul.s $f8, $f6, $f24 +/* 06B6FC 7F036BCC 0FC0CC55 */ jal get_distance_between_actor_and_preset +/* 06B700 7F036BD0 E7A805B0 */ swc1 $f8, 0x5b0($sp) +/* 06B704 7F036BD4 C7AA05B0 */ lwc1 $f10, 0x5b0($sp) +/* 06B708 7F036BD8 02C02025 */ move $a0, $s6 +/* 06B70C 7F036BDC 02402825 */ move $a1, $s2 +/* 06B710 7F036BE0 460A003C */ c.lt.s $f0, $f10 +/* 06B714 7F036BE4 00000000 */ nop +/* 06B718 7F036BE8 45020007 */ bc1fl .L7F036C08 +/* 06B71C 7F036BEC 26520006 */ addiu $s2, $s2, 6 +/* 06B720 7F036BF0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B724 7F036BF4 92260005 */ lbu $a2, 5($s1) +/* 06B728 7F036BF8 00409025 */ move $s2, $v0 +/* 06B72C 7F036BFC 1000FA63 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B730 7F036C00 02C28821 */ addu $s1, $s6, $v0 +/* 06B734 7F036C04 26520006 */ addiu $s2, $s2, 6 +.L7F036C08: +/* 06B738 7F036C08 1000FA60 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B73C 7F036C0C 26310006 */ addiu $s1, $s1, 6 +action53_GoIntoRVLIf_Not_In_Units_Of_Preset_6: +/* 06B740 7F036C10 922E0001 */ lbu $t6, 1($s1) +/* 06B744 7F036C14 92380002 */ lbu $t8, 2($s1) +/* 06B748 7F036C18 922B0003 */ lbu $t3, 3($s1) +/* 06B74C 7F036C1C 000E7A00 */ sll $t7, $t6, 8 +/* 06B750 7F036C20 01F84825 */ or $t1, $t7, $t8 +/* 06B754 7F036C24 44898000 */ mtc1 $t1, $f16 +/* 06B758 7F036C28 92390004 */ lbu $t9, 4($s1) +/* 06B75C 7F036C2C 000B6200 */ sll $t4, $t3, 8 +/* 06B760 7F036C30 468084A0 */ cvt.s.w $f18, $f16 +/* 06B764 7F036C34 01991025 */ or $v0, $t4, $t9 +/* 06B768 7F036C38 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B76C 7F036C3C 02E02025 */ move $a0, $s7 +/* 06B770 7F036C40 46189102 */ mul.s $f4, $f18, $f24 +/* 06B774 7F036C44 0FC0CC55 */ jal get_distance_between_actor_and_preset +/* 06B778 7F036C48 E7A405A4 */ swc1 $f4, 0x5a4($sp) +/* 06B77C 7F036C4C C7A605A4 */ lwc1 $f6, 0x5a4($sp) +/* 06B780 7F036C50 02C02025 */ move $a0, $s6 +/* 06B784 7F036C54 02402825 */ move $a1, $s2 +/* 06B788 7F036C58 4600303C */ c.lt.s $f6, $f0 +/* 06B78C 7F036C5C 00000000 */ nop +/* 06B790 7F036C60 45020007 */ bc1fl .L7F036C80 +/* 06B794 7F036C64 26520006 */ addiu $s2, $s2, 6 +/* 06B798 7F036C68 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B79C 7F036C6C 92260005 */ lbu $a2, 5($s1) +/* 06B7A0 7F036C70 00409025 */ move $s2, $v0 +/* 06B7A4 7F036C74 1000FA45 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B7A8 7F036C78 02C28821 */ addu $s1, $s6, $v0 +/* 06B7AC 7F036C7C 26520006 */ addiu $s2, $s2, 6 +.L7F036C80: +/* 06B7B0 7F036C80 1000FA42 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B7B4 7F036C84 26310006 */ addiu $s1, $s1, 6 +action54_GoIntoRVLIf_Guard_Is_At_Preset_5: +/* 06B7B8 7F036C88 922A0002 */ lbu $t2, 2($s1) +/* 06B7BC 7F036C8C 922C0003 */ lbu $t4, 3($s1) +/* 06B7C0 7F036C90 02E02025 */ move $a0, $s7 +/* 06B7C4 7F036C94 000A5A00 */ sll $t3, $t2, 8 +/* 06B7C8 7F036C98 016C1025 */ or $v0, $t3, $t4 +/* 06B7CC 7F036C9C 3046FFFF */ andi $a2, $v0, 0xffff +/* 06B7D0 7F036CA0 0FC0D0E2 */ jal check_if_actorID_is_at_preset +/* 06B7D4 7F036CA4 92250001 */ lbu $a1, 1($s1) +/* 06B7D8 7F036CA8 10400007 */ beqz $v0, .L7F036CC8 +/* 06B7DC 7F036CAC 02C02025 */ move $a0, $s6 +/* 06B7E0 7F036CB0 02402825 */ move $a1, $s2 +/* 06B7E4 7F036CB4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B7E8 7F036CB8 92260004 */ lbu $a2, 4($s1) +/* 06B7EC 7F036CBC 00409025 */ move $s2, $v0 +/* 06B7F0 7F036CC0 1000FA32 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B7F4 7F036CC4 02C28821 */ addu $s1, $s6, $v0 +.L7F036CC8: +/* 06B7F8 7F036CC8 26520005 */ addiu $s2, $s2, 5 +/* 06B7FC 7F036CCC 1000FA2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B800 7F036CD0 26310005 */ addiu $s1, $s1, 5 +action55_GoIntoRVLIf_Entered_Room_with_Preset_4: +/* 06B804 7F036CD4 922D0001 */ lbu $t5, 1($s1) +/* 06B808 7F036CD8 922F0002 */ lbu $t7, 2($s1) +/* 06B80C 7F036CDC 02E02025 */ move $a0, $s7 +/* 06B810 7F036CE0 000D7200 */ sll $t6, $t5, 8 +/* 06B814 7F036CE4 01CF1025 */ or $v0, $t6, $t7 +/* 06B818 7F036CE8 0FC0D113 */ jal check_if_actor_is_at_preset +/* 06B81C 7F036CEC 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B820 7F036CF0 10400007 */ beqz $v0, .L7F036D10 +/* 06B824 7F036CF4 02C02025 */ move $a0, $s6 +/* 06B828 7F036CF8 02402825 */ move $a1, $s2 +/* 06B82C 7F036CFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B830 7F036D00 92260003 */ lbu $a2, 3($s1) +/* 06B834 7F036D04 00409025 */ move $s2, $v0 +/* 06B838 7F036D08 1000FA20 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B83C 7F036D0C 02C28821 */ addu $s1, $s6, $v0 +.L7F036D10: +/* 06B840 7F036D10 26520004 */ addiu $s2, $s2, 4 +/* 06B844 7F036D14 1000FA1D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B848 7F036D18 26310004 */ addiu $s1, $s1, 4 +action56_GoIntoRVLIf_16_Object_num_Collected_3: +/* 06B84C 7F036D1C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B850 7F036D20 92240001 */ lbu $a0, 1($s1) +/* 06B854 7F036D24 5040000F */ beql $v0, $zero, .L7F036D64 +/* 06B858 7F036D28 26520003 */ addiu $s2, $s2, 3 +/* 06B85C 7F036D2C 8C490010 */ lw $t1, 0x10($v0) +/* 06B860 7F036D30 5120000C */ beql $t1, $zero, .L7F036D64 +/* 06B864 7F036D34 26520003 */ addiu $s2, $s2, 3 +/* 06B868 7F036D38 0FC233F8 */ jal sub_GAME_7F08CFE0 +/* 06B86C 7F036D3C 8C440010 */ lw $a0, 0x10($v0) +/* 06B870 7F036D40 10400007 */ beqz $v0, .L7F036D60 +/* 06B874 7F036D44 02C02025 */ move $a0, $s6 +/* 06B878 7F036D48 02402825 */ move $a1, $s2 +/* 06B87C 7F036D4C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B880 7F036D50 92260002 */ lbu $a2, 2($s1) +/* 06B884 7F036D54 00409025 */ move $s2, $v0 +/* 06B888 7F036D58 1000FA0C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B88C 7F036D5C 02C28821 */ addu $s1, $s6, $v0 +.L7F036D60: +/* 06B890 7F036D60 26520003 */ addiu $s2, $s2, 3 +.L7F036D64: +/* 06B894 7F036D64 1000FA09 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B898 7F036D68 26310003 */ addiu $s1, $s1, 3 +action57_GoIntoRVLIf_Specified_Weapon_Deposited_3: +/* 06B89C 7F036D6C 0FC146BB */ jal check_if_item_deposited +/* 06B8A0 7F036D70 92240001 */ lbu $a0, 1($s1) +/* 06B8A4 7F036D74 10400007 */ beqz $v0, .L7F036D94 +/* 06B8A8 7F036D78 02C02025 */ move $a0, $s6 +/* 06B8AC 7F036D7C 02402825 */ move $a1, $s2 +/* 06B8B0 7F036D80 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B8B4 7F036D84 92260002 */ lbu $a2, 2($s1) +/* 06B8B8 7F036D88 00409025 */ move $s2, $v0 +/* 06B8BC 7F036D8C 1000F9FF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B8C0 7F036D90 02C28821 */ addu $s1, $s6, $v0 +.L7F036D94: +/* 06B8C4 7F036D94 26520003 */ addiu $s2, $s2, 3 +/* 06B8C8 7F036D98 1000F9FC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B8CC 7F036D9C 26310003 */ addiu $s1, $s1, 3 +action58_GoIntoRVLIf_SpecifiedWeaponDeposited_On16Object_4: +/* 06B8D0 7F036DA0 92240002 */ lbu $a0, 2($s1) +/* 06B8D4 7F036DA4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B8D8 7F036DA8 00008025 */ move $s0, $zero +/* 06B8DC 7F036DAC 10400015 */ beqz $v0, .L7F036E04 +/* 06B8E0 7F036DB0 02402825 */ move $a1, $s2 +/* 06B8E4 7F036DB4 8C440010 */ lw $a0, 0x10($v0) +/* 06B8E8 7F036DB8 10800012 */ beqz $a0, .L7F036E04 +/* 06B8EC 7F036DBC 00000000 */ nop +/* 06B8F0 7F036DC0 8C830020 */ lw $v1, 0x20($a0) +/* 06B8F4 7F036DC4 1060000F */ beqz $v1, .L7F036E04 +/* 06B8F8 7F036DC8 00000000 */ nop +/* 06B8FC 7F036DCC 906A0000 */ lbu $t2, ($v1) +.L7F036DD0: +/* 06B900 7F036DD0 24010004 */ li $at, 4 +/* 06B904 7F036DD4 55410009 */ bnel $t2, $at, .L7F036DFC +/* 06B908 7F036DD8 8C630024 */ lw $v1, 0x24($v1) +/* 06B90C 7F036DDC 8C620004 */ lw $v0, 4($v1) +/* 06B910 7F036DE0 922B0001 */ lbu $t3, 1($s1) +/* 06B914 7F036DE4 804C0080 */ lb $t4, 0x80($v0) +/* 06B918 7F036DE8 556C0004 */ bnel $t3, $t4, .L7F036DFC +/* 06B91C 7F036DEC 8C630024 */ lw $v1, 0x24($v1) +/* 06B920 7F036DF0 10000004 */ b .L7F036E04 +/* 06B924 7F036DF4 24100001 */ li $s0, 1 +/* 06B928 7F036DF8 8C630024 */ lw $v1, 0x24($v1) +.L7F036DFC: +/* 06B92C 7F036DFC 5460FFF4 */ bnezl $v1, .L7F036DD0 +/* 06B930 7F036E00 906A0000 */ lbu $t2, ($v1) +.L7F036E04: +/* 06B934 7F036E04 12000006 */ beqz $s0, .L7F036E20 +/* 06B938 7F036E08 02C02025 */ move $a0, $s6 +/* 06B93C 7F036E0C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B940 7F036E10 92260003 */ lbu $a2, 3($s1) +/* 06B944 7F036E14 00409025 */ move $s2, $v0 +/* 06B948 7F036E18 1000F9DC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B94C 7F036E1C 02C28821 */ addu $s1, $s6, $v0 +.L7F036E20: +/* 06B950 7F036E20 26520004 */ addiu $s2, $s2, 4 +/* 06B954 7F036E24 1000F9D9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B958 7F036E28 26310004 */ addiu $s1, $s1, 4 +action59_GoIntoRVLIf_Specified_Weapon_Is_Out_3: +/* 06B95C 7F036E2C 0FC17674 */ jal get_item_in_hand +/* 06B960 7F036E30 00002025 */ move $a0, $zero +/* 06B964 7F036E34 92390001 */ lbu $t9, 1($s1) +/* 06B968 7F036E38 50590006 */ beql $v0, $t9, .L7F036E54 +/* 06B96C 7F036E3C 02C02025 */ move $a0, $s6 +/* 06B970 7F036E40 0FC17674 */ jal get_item_in_hand +/* 06B974 7F036E44 24040001 */ li $a0, 1 +/* 06B978 7F036E48 922D0001 */ lbu $t5, 1($s1) +/* 06B97C 7F036E4C 144D0007 */ bne $v0, $t5, .L7F036E6C +/* 06B980 7F036E50 02C02025 */ move $a0, $s6 +.L7F036E54: +/* 06B984 7F036E54 02402825 */ move $a1, $s2 +/* 06B988 7F036E58 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B98C 7F036E5C 92260002 */ lbu $a2, 2($s1) +/* 06B990 7F036E60 00409025 */ move $s2, $v0 +/* 06B994 7F036E64 1000F9C9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B998 7F036E68 02C28821 */ addu $s1, $s6, $v0 +.L7F036E6C: +/* 06B99C 7F036E6C 26520003 */ addiu $s2, $s2, 3 +/* 06B9A0 7F036E70 1000F9C6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B9A4 7F036E74 26310003 */ addiu $s1, $s1, 3 +action5A_GoIntoRVLIf_Type_16_Object_num_Loaded_3: +/* 06B9A8 7F036E78 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B9AC 7F036E7C 92240001 */ lbu $a0, 1($s1) +/* 06B9B0 7F036E80 5040000C */ beql $v0, $zero, .L7F036EB4 +/* 06B9B4 7F036E84 26520003 */ addiu $s2, $s2, 3 +/* 06B9B8 7F036E88 8C4E0010 */ lw $t6, 0x10($v0) +/* 06B9BC 7F036E8C 02C02025 */ move $a0, $s6 +/* 06B9C0 7F036E90 02402825 */ move $a1, $s2 +/* 06B9C4 7F036E94 51C00007 */ beql $t6, $zero, .L7F036EB4 +/* 06B9C8 7F036E98 26520003 */ addiu $s2, $s2, 3 +/* 06B9CC 7F036E9C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B9D0 7F036EA0 92260002 */ lbu $a2, 2($s1) +/* 06B9D4 7F036EA4 00409025 */ move $s2, $v0 +/* 06B9D8 7F036EA8 1000F9B8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B9DC 7F036EAC 02C28821 */ addu $s1, $s6, $v0 +/* 06B9E0 7F036EB0 26520003 */ addiu $s2, $s2, 3 +.L7F036EB4: +/* 06B9E4 7F036EB4 1000F9B5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B9E8 7F036EB8 26310003 */ addiu $s1, $s1, 3 +action5B_GoIntoRVLIf_16_Object_num_Not_Destroyed_3: +/* 06B9EC 7F036EBC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B9F0 7F036EC0 92240001 */ lbu $a0, 1($s1) +/* 06B9F4 7F036EC4 1040000E */ beqz $v0, .L7F036F00 +/* 06B9F8 7F036EC8 00402025 */ move $a0, $v0 +/* 06B9FC 7F036ECC 8C4F0010 */ lw $t7, 0x10($v0) +/* 06BA00 7F036ED0 51E0000C */ beql $t7, $zero, .L7F036F04 +/* 06BA04 7F036ED4 26520003 */ addiu $s2, $s2, 3 +/* 06BA08 7F036ED8 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 06BA0C 7F036EDC 00000000 */ nop +/* 06BA10 7F036EE0 10400007 */ beqz $v0, .L7F036F00 +/* 06BA14 7F036EE4 02C02025 */ move $a0, $s6 +/* 06BA18 7F036EE8 02402825 */ move $a1, $s2 +/* 06BA1C 7F036EEC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06BA20 7F036EF0 92260002 */ lbu $a2, 2($s1) +/* 06BA24 7F036EF4 00409025 */ move $s2, $v0 +/* 06BA28 7F036EF8 1000F9A4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA2C 7F036EFC 02C28821 */ addu $s1, $s6, $v0 +.L7F036F00: +/* 06BA30 7F036F00 26520003 */ addiu $s2, $s2, 3 +.L7F036F04: +/* 06BA34 7F036F04 1000F9A1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA38 7F036F08 26310003 */ addiu $s1, $s1, 3 +action5C_GoIntoRVLIf_16_Object_num_Activated_3: +/* 06BA3C 7F036F0C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BA40 7F036F10 92240001 */ lbu $a0, 1($s1) +/* 06BA44 7F036F14 50400014 */ beql $v0, $zero, .L7F036F68 +/* 06BA48 7F036F18 26520003 */ addiu $s2, $s2, 3 +/* 06BA4C 7F036F1C 8C580010 */ lw $t8, 0x10($v0) +/* 06BA50 7F036F20 53000011 */ beql $t8, $zero, .L7F036F68 +/* 06BA54 7F036F24 26520003 */ addiu $s2, $s2, 3 +/* 06BA58 7F036F28 8C490064 */ lw $t1, 0x64($v0) +/* 06BA5C 7F036F2C 2401BFFF */ li $at, -16385 +/* 06BA60 7F036F30 312A4000 */ andi $t2, $t1, 0x4000 +/* 06BA64 7F036F34 5140000C */ beql $t2, $zero, .L7F036F68 +/* 06BA68 7F036F38 26520003 */ addiu $s2, $s2, 3 +/* 06BA6C 7F036F3C 8C4B0064 */ lw $t3, 0x64($v0) +/* 06BA70 7F036F40 02C02025 */ move $a0, $s6 +/* 06BA74 7F036F44 02402825 */ move $a1, $s2 +/* 06BA78 7F036F48 01616024 */ and $t4, $t3, $at +/* 06BA7C 7F036F4C AC4C0064 */ sw $t4, 0x64($v0) +/* 06BA80 7F036F50 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06BA84 7F036F54 92260002 */ lbu $a2, 2($s1) +/* 06BA88 7F036F58 00409025 */ move $s2, $v0 +/* 06BA8C 7F036F5C 1000F98B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA90 7F036F60 02C28821 */ addu $s1, $s6, $v0 +/* 06BA94 7F036F64 26520003 */ addiu $s2, $s2, 3 +.L7F036F68: +/* 06BA98 7F036F68 1000F988 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA9C 7F036F6C 26310003 */ addiu $s1, $s1, 3 +action5D_GoIntoRVLIf_Gadget_Used_On_16_Object_num_3: +/* 06BAA0 7F036F70 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BAA4 7F036F74 92240001 */ lbu $a0, 1($s1) +/* 06BAA8 7F036F78 50400013 */ beql $v0, $zero, .L7F036FC8 +/* 06BAAC 7F036F7C 26520003 */ addiu $s2, $s2, 3 +/* 06BAB0 7F036F80 8C590010 */ lw $t9, 0x10($v0) +/* 06BAB4 7F036F84 53200010 */ beql $t9, $zero, .L7F036FC8 +/* 06BAB8 7F036F88 26520003 */ addiu $s2, $s2, 3 +/* 06BABC 7F036F8C 904D0002 */ lbu $t5, 2($v0) +/* 06BAC0 7F036F90 31AE0040 */ andi $t6, $t5, 0x40 +/* 06BAC4 7F036F94 51C0000C */ beql $t6, $zero, .L7F036FC8 +/* 06BAC8 7F036F98 26520003 */ addiu $s2, $s2, 3 +/* 06BACC 7F036F9C 904F0002 */ lbu $t7, 2($v0) +/* 06BAD0 7F036FA0 02C02025 */ move $a0, $s6 +/* 06BAD4 7F036FA4 02402825 */ move $a1, $s2 +/* 06BAD8 7F036FA8 31F8FFBF */ andi $t8, $t7, 0xffbf +/* 06BADC 7F036FAC A0580002 */ sb $t8, 2($v0) +/* 06BAE0 7F036FB0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06BAE4 7F036FB4 92260002 */ lbu $a2, 2($s1) +/* 06BAE8 7F036FB8 00409025 */ move $s2, $v0 +/* 06BAEC 7F036FBC 1000F973 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BAF0 7F036FC0 02C28821 */ addu $s1, $s6, $v0 +/* 06BAF4 7F036FC4 26520003 */ addiu $s2, $s2, 3 +.L7F036FC8: +/* 06BAF8 7F036FC8 1000F970 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BAFC 7F036FCC 26310003 */ addiu $s1, $s1, 3 +action5E_16_Object_Activates_2: +/* 06BB00 7F036FD0 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BB04 7F036FD4 92240001 */ lbu $a0, 1($s1) +/* 06BB08 7F036FD8 10400014 */ beqz $v0, .L7F03702C +/* 06BB0C 7F036FDC 00402825 */ move $a1, $v0 +/* 06BB10 7F036FE0 8C440010 */ lw $a0, 0x10($v0) +/* 06BB14 7F036FE4 50800012 */ beql $a0, $zero, .L7F037030 +/* 06BB18 7F036FE8 26520002 */ addiu $s2, $s2, 2 +/* 06BB1C 7F036FEC 90830000 */ lbu $v1, ($a0) +/* 06BB20 7F036FF0 24010002 */ li $at, 2 +/* 06BB24 7F036FF4 54610007 */ bnel $v1, $at, .L7F037014 +/* 06BB28 7F036FF8 24010001 */ li $at, 1 +/* 06BB2C 7F036FFC 0FC15667 */ jal sub_GAME_7F05599C +/* 06BB30 7F037000 8C440010 */ lw $a0, 0x10($v0) +/* 06BB34 7F037004 26520002 */ addiu $s2, $s2, 2 +/* 06BB38 7F037008 1000F960 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BB3C 7F03700C 26310002 */ addiu $s1, $s1, 2 +/* 06BB40 7F037010 24010001 */ li $at, 1 +.L7F037014: +/* 06BB44 7F037014 10610003 */ beq $v1, $at, .L7F037024 +/* 06BB48 7F037018 24010004 */ li $at, 4 +/* 06BB4C 7F03701C 54610004 */ bnel $v1, $at, .L7F037030 +/* 06BB50 7F037020 26520002 */ addiu $s2, $s2, 2 +.L7F037024: +/* 06BB54 7F037024 0FC13C5C */ jal sub_GAME_7F04F170 +/* 06BB58 7F037028 8CA40010 */ lw $a0, 0x10($a1) +.L7F03702C: +/* 06BB5C 7F03702C 26520002 */ addiu $s2, $s2, 2 +.L7F037030: +/* 06BB60 7F037030 1000F956 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BB64 7F037034 26310002 */ addiu $s1, $s1, 2 +action5F_16_Object_Explodes_2: +/* 06BB68 7F037038 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BB6C 7F03703C 92240001 */ lbu $a0, 1($s1) +/* 06BB70 7F037040 10400019 */ beqz $v0, .L7F0370A8 +/* 06BB74 7F037044 00408025 */ move $s0, $v0 +/* 06BB78 7F037048 8C490010 */ lw $t1, 0x10($v0) +/* 06BB7C 7F03704C 51200017 */ beql $t1, $zero, .L7F0370AC +/* 06BB80 7F037050 26520002 */ addiu $s2, $s2, 2 +/* 06BB84 7F037054 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 06BB88 7F037058 00402025 */ move $a0, $v0 +/* 06BB8C 7F03705C 54400013 */ bnezl $v0, .L7F0370AC +/* 06BB90 7F037060 26520002 */ addiu $s2, $s2, 2 +/* 06BB94 7F037064 C6080074 */ lwc1 $f8, 0x74($s0) +/* 06BB98 7F037068 C60A0070 */ lwc1 $f10, 0x70($s0) +/* 06BB9C 7F03706C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 06BBA0 7F037070 44819000 */ mtc1 $at, $f18 +/* 06BBA4 7F037074 460A4401 */ sub.s $f16, $f8, $f10 +/* 06BBA8 7F037078 3C01437A */ li $at, 0x437A0000 # 250.000000 +/* 06BBAC 7F03707C 44813000 */ mtc1 $at, $f6 +/* 06BBB0 7F037080 240AFFFF */ li $t2, -1 +/* 06BBB4 7F037084 46128100 */ add.s $f4, $f16, $f18 +/* 06BBB8 7F037088 AFAA0010 */ sw $t2, 0x10($sp) +/* 06BBBC 7F03708C 02002025 */ move $a0, $s0 +/* 06BBC0 7F037090 26060058 */ addiu $a2, $s0, 0x58 +/* 06BBC4 7F037094 46062003 */ div.s $f0, $f4, $f6 +/* 06BBC8 7F037098 2407001D */ li $a3, 29 +/* 06BBCC 7F03709C 44050000 */ mfc1 $a1, $f0 +/* 06BBD0 7F0370A0 0FC13842 */ jal maybe_detonate_object +/* 06BBD4 7F0370A4 00000000 */ nop +.L7F0370A8: +/* 06BBD8 7F0370A8 26520002 */ addiu $s2, $s2, 2 +.L7F0370AC: +/* 06BBDC 7F0370AC 1000F937 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BBE0 7F0370B0 26310002 */ addiu $s1, $s1, 2 +action60_Guard_Drops_16_Object_num_2: +/* 06BBE4 7F0370B4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BBE8 7F0370B8 92240001 */ lbu $a0, 1($s1) +/* 06BBEC 7F0370BC 10400013 */ beqz $v0, .L7F03710C +/* 06BBF0 7F0370C0 00403025 */ move $a2, $v0 +/* 06BBF4 7F0370C4 8C440010 */ lw $a0, 0x10($v0) +/* 06BBF8 7F0370C8 50800011 */ beql $a0, $zero, .L7F037110 +/* 06BBFC 7F0370CC 26520002 */ addiu $s2, $s2, 2 +/* 06BC00 7F0370D0 8C83001C */ lw $v1, 0x1c($a0) +/* 06BC04 7F0370D4 5060000E */ beql $v1, $zero, .L7F037110 +/* 06BC08 7F0370D8 26520002 */ addiu $s2, $s2, 2 +/* 06BC0C 7F0370DC 906B0000 */ lbu $t3, ($v1) +/* 06BC10 7F0370E0 24010003 */ li $at, 3 +/* 06BC14 7F0370E4 5561000A */ bnel $t3, $at, .L7F037110 +/* 06BC18 7F0370E8 26520002 */ addiu $s2, $s2, 2 +/* 06BC1C 7F0370EC 8C440010 */ lw $a0, 0x10($v0) +/* 06BC20 7F0370F0 24050002 */ li $a1, 2 +/* 06BC24 7F0370F4 8C8C001C */ lw $t4, 0x1c($a0) +/* 06BC28 7F0370F8 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 06BC2C 7F0370FC 8D900004 */ lw $s0, 4($t4) +/* 06BC30 7F037100 96190012 */ lhu $t9, 0x12($s0) +/* 06BC34 7F037104 372D0001 */ ori $t5, $t9, 1 +/* 06BC38 7F037108 A60D0012 */ sh $t5, 0x12($s0) +.L7F03710C: +/* 06BC3C 7F03710C 26520002 */ addiu $s2, $s2, 2 +.L7F037110: +/* 06BC40 7F037110 1000F91E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BC44 7F037114 26310002 */ addiu $s1, $s1, 2 +action61_Kill_Guard_num_2: +/* 06BC48 7F037118 02E02025 */ move $a0, $s7 +/* 06BC4C 7F03711C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06BC50 7F037120 92250001 */ lbu $a1, 1($s1) +/* 06BC54 7F037124 10400006 */ beqz $v0, .L7F037140 +/* 06BC58 7F037128 00402025 */ move $a0, $v0 +/* 06BC5C 7F03712C 8C4E0018 */ lw $t6, 0x18($v0) +/* 06BC60 7F037130 51C00004 */ beql $t6, $zero, .L7F037144 +/* 06BC64 7F037134 26520002 */ addiu $s2, $s2, 2 +/* 06BC68 7F037138 0FC086C8 */ jal sub_GAME_7F021B20 +/* 06BC6C 7F03713C 00000000 */ nop +.L7F037140: +/* 06BC70 7F037140 26520002 */ addiu $s2, $s2, 2 +.L7F037144: +/* 06BC74 7F037144 1000F911 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BC78 7F037148 26310002 */ addiu $s1, $s1, 2 +action62_Guard_num_Throws_Equipment_2: +/* 06BC7C 7F03714C 02E02025 */ move $a0, $s7 +/* 06BC80 7F037150 0FC0CC10 */ jal get_handle_for_guard_id +/* 06BC84 7F037154 92250001 */ lbu $a1, 1($s1) +/* 06BC88 7F037158 10400015 */ beqz $v0, .L7F0371B0 +/* 06BC8C 7F03715C 00408025 */ move $s0, $v0 +/* 06BC90 7F037160 8C4F0018 */ lw $t7, 0x18($v0) +/* 06BC94 7F037164 51E00013 */ beql $t7, $zero, .L7F0371B4 +/* 06BC98 7F037168 26520002 */ addiu $s2, $s2, 2 +/* 06BC9C 7F03716C 8C580160 */ lw $t8, 0x160($v0) +/* 06BCA0 7F037170 24050001 */ li $a1, 1 +/* 06BCA4 7F037174 53000007 */ beql $t8, $zero, .L7F037194 +/* 06BCA8 7F037178 8E040164 */ lw $a0, 0x164($s0) +/* 06BCAC 7F03717C 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 06BCB0 7F037180 8C440160 */ lw $a0, 0x160($v0) +/* 06BCB4 7F037184 96090012 */ lhu $t1, 0x12($s0) +/* 06BCB8 7F037188 352A0001 */ ori $t2, $t1, 1 +/* 06BCBC 7F03718C A60A0012 */ sh $t2, 0x12($s0) +/* 06BCC0 7F037190 8E040164 */ lw $a0, 0x164($s0) +.L7F037194: +/* 06BCC4 7F037194 50800007 */ beql $a0, $zero, .L7F0371B4 +/* 06BCC8 7F037198 26520002 */ addiu $s2, $s2, 2 +/* 06BCCC 7F03719C 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 06BCD0 7F0371A0 24050001 */ li $a1, 1 +/* 06BCD4 7F0371A4 960B0012 */ lhu $t3, 0x12($s0) +/* 06BCD8 7F0371A8 356C0001 */ ori $t4, $t3, 1 +/* 06BCDC 7F0371AC A60C0012 */ sh $t4, 0x12($s0) +.L7F0371B0: +/* 06BCE0 7F0371B0 26520002 */ addiu $s2, $s2, 2 +.L7F0371B4: +/* 06BCE4 7F0371B4 1000F8F5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BCE8 7F0371B8 26310002 */ addiu $s1, $s1, 2 +action63_Guard_Gives_Bond_16_Object_num_2: +/* 06BCEC 7F0371BC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BCF0 7F0371C0 92240001 */ lbu $a0, 1($s1) +/* 06BCF4 7F0371C4 1040000A */ beqz $v0, .L7F0371F0 +/* 06BCF8 7F0371C8 00408025 */ move $s0, $v0 +/* 06BCFC 7F0371CC 8C590010 */ lw $t9, 0x10($v0) +/* 06BD00 7F0371D0 00002825 */ move $a1, $zero +/* 06BD04 7F0371D4 53200007 */ beql $t9, $zero, .L7F0371F4 +/* 06BD08 7F0371D8 26520002 */ addiu $s2, $s2, 2 +/* 06BD0C 7F0371DC 0FC14094 */ jal collect_or_interact_object +/* 06BD10 7F0371E0 8C440010 */ lw $a0, 0x10($v0) +/* 06BD14 7F0371E4 8E040010 */ lw $a0, 0x10($s0) +/* 06BD18 7F0371E8 0FC0F0AF */ jal sub_GAME_7F03C2BC +/* 06BD1C 7F0371EC 00402825 */ move $a1, $v0 +.L7F0371F0: +/* 06BD20 7F0371F0 26520002 */ addiu $s2, $s2, 2 +.L7F0371F4: +/* 06BD24 7F0371F4 1000F8E5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BD28 7F0371F8 26310002 */ addiu $s1, $s1, 2 +action64_Type_16_Object_Equipped_On_Guard_3: +/* 06BD2C 7F0371FC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BD30 7F037200 92240001 */ lbu $a0, 1($s1) +/* 06BD34 7F037204 00408025 */ move $s0, $v0 +/* 06BD38 7F037208 02E02025 */ move $a0, $s7 +/* 06BD3C 7F03720C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06BD40 7F037210 92250002 */ lbu $a1, 2($s1) +/* 06BD44 7F037214 1200001F */ beqz $s0, .L7F037294 +/* 06BD48 7F037218 00409825 */ move $s3, $v0 +/* 06BD4C 7F03721C 8E040010 */ lw $a0, 0x10($s0) +/* 06BD50 7F037220 5080001D */ beql $a0, $zero, .L7F037298 +/* 06BD54 7F037224 26520003 */ addiu $s2, $s2, 3 +/* 06BD58 7F037228 5040001B */ beql $v0, $zero, .L7F037298 +/* 06BD5C 7F03722C 26520003 */ addiu $s2, $s2, 3 +/* 06BD60 7F037230 8C8D001C */ lw $t5, 0x1c($a0) +/* 06BD64 7F037234 11A00005 */ beqz $t5, .L7F03724C +/* 06BD68 7F037238 00000000 */ nop +/* 06BD6C 7F03723C 0FC13011 */ jal sub_GAME_7F04C044 +/* 06BD70 7F037240 00000000 */ nop +/* 06BD74 7F037244 10000008 */ b .L7F037268 +/* 06BD78 7F037248 920E0003 */ lbu $t6, 3($s0) +.L7F03724C: +/* 06BD7C 7F03724C 0FC0F863 */ jal sub_GAME_7F03E18C +/* 06BD80 7F037250 00000000 */ nop +/* 06BD84 7F037254 0FC0E94E */ jal sub_GAME_7F03A538 +/* 06BD88 7F037258 8E040010 */ lw $a0, 0x10($s0) +/* 06BD8C 7F03725C 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 06BD90 7F037260 8E040010 */ lw $a0, 0x10($s0) +/* 06BD94 7F037264 920E0003 */ lbu $t6, 3($s0) +.L7F037268: +/* 06BD98 7F037268 24010008 */ li $at, 8 +/* 06BD9C 7F03726C 02002025 */ move $a0, $s0 +/* 06BDA0 7F037270 55C10006 */ bnel $t6, $at, .L7F03728C +/* 06BDA4 7F037274 8E040010 */ lw $a0, 0x10($s0) +/* 06BDA8 7F037278 0FC14787 */ jal sub_GAME_7F051E1C +/* 06BDAC 7F03727C 02602825 */ move $a1, $s3 +/* 06BDB0 7F037280 54400005 */ bnezl $v0, .L7F037298 +/* 06BDB4 7F037284 26520003 */ addiu $s2, $s2, 3 +/* 06BDB8 7F037288 8E040010 */ lw $a0, 0x10($s0) +.L7F03728C: +/* 06BDBC 7F03728C 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 06BDC0 7F037290 8E650018 */ lw $a1, 0x18($s3) +.L7F037294: +/* 06BDC4 7F037294 26520003 */ addiu $s2, $s2, 3 +.L7F037298: +/* 06BDC8 7F037298 1000F8BC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BDCC 7F03729C 26310003 */ addiu $s1, $s1, 3 +action65_Object_Moved_To_Preset_4: +/* 06BDD0 7F0372A0 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BDD4 7F0372A4 92240001 */ lbu $a0, 1($s1) +/* 06BDD8 7F0372A8 AFA20500 */ sw $v0, 0x500($sp) +/* 06BDDC 7F0372AC 922F0002 */ lbu $t7, 2($s1) +/* 06BDE0 7F0372B0 92290003 */ lbu $t1, 3($s1) +/* 06BDE4 7F0372B4 000FC200 */ sll $t8, $t7, 8 +/* 06BDE8 7F0372B8 03091825 */ or $v1, $t8, $t1 +/* 06BDEC 7F0372BC 1040003C */ beqz $v0, .L7F0373B0 +/* 06BDF0 7F0372C0 306AFFFF */ andi $t2, $v1, 0xffff +/* 06BDF4 7F0372C4 8C4B0010 */ lw $t3, 0x10($v0) +/* 06BDF8 7F0372C8 00409825 */ move $s3, $v0 +/* 06BDFC 7F0372CC 29412710 */ slti $at, $t2, 0x2710 +/* 06BE00 7F0372D0 51600038 */ beql $t3, $zero, .L7F0373B4 +/* 06BE04 7F0372D4 26520004 */ addiu $s2, $s2, 4 +/* 06BE08 7F0372D8 1020000A */ beqz $at, .L7F037304 +/* 06BE0C 7F0372DC 01401025 */ move $v0, $t2 +/* 06BE10 7F0372E0 000A6080 */ sll $t4, $t2, 2 +/* 06BE14 7F0372E4 018A6023 */ subu $t4, $t4, $t2 +/* 06BE18 7F0372E8 000C6080 */ sll $t4, $t4, 2 +/* 06BE1C 7F0372EC 3C198007 */ lui $t9, %hi(ptr_0xxxpresets) +/* 06BE20 7F0372F0 8F395D18 */ lw $t9, %lo(ptr_0xxxpresets)($t9) +/* 06BE24 7F0372F4 018A6023 */ subu $t4, $t4, $t2 +/* 06BE28 7F0372F8 000C6080 */ sll $t4, $t4, 2 +/* 06BE2C 7F0372FC 1000000A */ b .L7F037328 +/* 06BE30 7F037300 01998021 */ addu $s0, $t4, $t9 +.L7F037304: +/* 06BE34 7F037304 3C0E8007 */ lui $t6, %hi(ptr_2xxxpresets) +/* 06BE38 7F037308 8DCE5D1C */ lw $t6, %lo(ptr_2xxxpresets)($t6) +/* 06BE3C 7F03730C 00026900 */ sll $t5, $v0, 4 +/* 06BE40 7F037310 01A26821 */ addu $t5, $t5, $v0 +/* 06BE44 7F037314 000D6880 */ sll $t5, $t5, 2 +/* 06BE48 7F037318 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06BE4C 7F03731C 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06BE50 7F037320 01AE8021 */ addu $s0, $t5, $t6 +/* 06BE54 7F037324 02018021 */ addu $s0, $s0, $at +.L7F037328: +/* 06BE58 7F037328 C6080018 */ lwc1 $f8, 0x18($s0) +/* 06BE5C 7F03732C 4405A000 */ mfc1 $a1, $f20 +/* 06BE60 7F037330 4406A000 */ mfc1 $a2, $f20 +/* 06BE64 7F037334 46004287 */ neg.s $f10, $f8 +/* 06BE68 7F037338 4407A000 */ mfc1 $a3, $f20 +/* 06BE6C 7F03733C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 06BE70 7F037340 C610001C */ lwc1 $f16, 0x1c($s0) +/* 06BE74 7F037344 27A404B8 */ addiu $a0, $sp, 0x4b8 +/* 06BE78 7F037348 46008487 */ neg.s $f18, $f16 +/* 06BE7C 7F03734C E7B20014 */ swc1 $f18, 0x14($sp) +/* 06BE80 7F037350 C6040020 */ lwc1 $f4, 0x20($s0) +/* 06BE84 7F037354 46002187 */ neg.s $f6, $f4 +/* 06BE88 7F037358 E7A60018 */ swc1 $f6, 0x18($sp) +/* 06BE8C 7F03735C C608000C */ lwc1 $f8, 0xc($s0) +/* 06BE90 7F037360 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 06BE94 7F037364 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 06BE98 7F037368 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 06BE9C 7F03736C C6100014 */ lwc1 $f16, 0x14($s0) +/* 06BEA0 7F037370 0FC16642 */ jal sub_GAME_7F059908 +/* 06BEA4 7F037374 E7B00024 */ swc1 $f16, 0x24($sp) +/* 06BEA8 7F037378 8E620014 */ lw $v0, 0x14($s3) +/* 06BEAC 7F03737C 27A504B8 */ addiu $a1, $sp, 0x4b8 +/* 06BEB0 7F037380 50400004 */ beql $v0, $zero, .L7F037394 +/* 06BEB4 7F037384 8E070028 */ lw $a3, 0x28($s0) +/* 06BEB8 7F037388 0FC1629F */ jal matrix_scalar_multiply +/* 06BEBC 7F03738C C44C0014 */ lwc1 $f12, 0x14($v0) +/* 06BEC0 7F037390 8E070028 */ lw $a3, 0x28($s0) +.L7F037394: +/* 06BEC4 7F037394 AFB00010 */ sw $s0, 0x10($sp) +/* 06BEC8 7F037398 02602025 */ move $a0, $s3 +/* 06BECC 7F03739C 02002825 */ move $a1, $s0 +/* 06BED0 7F0373A0 0FC10223 */ jal sub_GAME_7F04088C +/* 06BED4 7F0373A4 27A604B8 */ addiu $a2, $sp, 0x4b8 +/* 06BED8 7F0373A8 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 06BEDC 7F0373AC 02602025 */ move $a0, $s3 +.L7F0373B0: +/* 06BEE0 7F0373B0 26520004 */ addiu $s2, $s2, 4 +.L7F0373B4: +/* 06BEE4 7F0373B4 1000F875 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BEE8 7F0373B8 26310004 */ addiu $s1, $s1, 4 +action66_Open_Door_2: +/* 06BEEC 7F0373BC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BEF0 7F0373C0 92240001 */ lbu $a0, 1($s1) +/* 06BEF4 7F0373C4 1040000B */ beqz $v0, .L7F0373F4 +/* 06BEF8 7F0373C8 00403025 */ move $a2, $v0 +/* 06BEFC 7F0373CC 8C440010 */ lw $a0, 0x10($v0) +/* 06BF00 7F0373D0 50800009 */ beql $a0, $zero, .L7F0373F8 +/* 06BF04 7F0373D4 26520002 */ addiu $s2, $s2, 2 +/* 06BF08 7F0373D8 908F0000 */ lbu $t7, ($a0) +/* 06BF0C 7F0373DC 24010002 */ li $at, 2 +/* 06BF10 7F0373E0 00402025 */ move $a0, $v0 +/* 06BF14 7F0373E4 55E10004 */ bnel $t7, $at, .L7F0373F8 +/* 06BF18 7F0373E8 26520002 */ addiu $s2, $s2, 2 +/* 06BF1C 7F0373EC 0FC15262 */ jal set_door_state +/* 06BF20 7F0373F0 24050001 */ li $a1, 1 +.L7F0373F4: +/* 06BF24 7F0373F4 26520002 */ addiu $s2, $s2, 2 +.L7F0373F8: +/* 06BF28 7F0373F8 1000F864 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BF2C 7F0373FC 26310002 */ addiu $s1, $s1, 2 +action67_Close_Door_2: +/* 06BF30 7F037400 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BF34 7F037404 92240001 */ lbu $a0, 1($s1) +/* 06BF38 7F037408 1040000B */ beqz $v0, .L7F037438 +/* 06BF3C 7F03740C 00403025 */ move $a2, $v0 +/* 06BF40 7F037410 8C440010 */ lw $a0, 0x10($v0) +/* 06BF44 7F037414 50800009 */ beql $a0, $zero, .L7F03743C +/* 06BF48 7F037418 26520002 */ addiu $s2, $s2, 2 +/* 06BF4C 7F03741C 90980000 */ lbu $t8, ($a0) +/* 06BF50 7F037420 24010002 */ li $at, 2 +/* 06BF54 7F037424 00402025 */ move $a0, $v0 +/* 06BF58 7F037428 57010004 */ bnel $t8, $at, .L7F03743C +/* 06BF5C 7F03742C 26520002 */ addiu $s2, $s2, 2 +/* 06BF60 7F037430 0FC15262 */ jal set_door_state +/* 06BF64 7F037434 24050002 */ li $a1, 2 +.L7F037438: +/* 06BF68 7F037438 26520002 */ addiu $s2, $s2, 2 +.L7F03743C: +/* 06BF6C 7F03743C 1000F853 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BF70 7F037440 26310002 */ addiu $s1, $s1, 2 +action68_Check_Door_Status_RVL_If_Met_4: +/* 06BF74 7F037444 92240001 */ lbu $a0, 1($s1) +/* 06BF78 7F037448 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BF7C 7F03744C 00008025 */ move $s0, $zero +/* 06BF80 7F037450 10400027 */ beqz $v0, .L7F0374F0 +/* 06BF84 7F037454 02C02025 */ move $a0, $s6 +/* 06BF88 7F037458 8C490010 */ lw $t1, 0x10($v0) +/* 06BF8C 7F03745C 11200024 */ beqz $t1, .L7F0374F0 +/* 06BF90 7F037460 00000000 */ nop +/* 06BF94 7F037464 904A0003 */ lbu $t2, 3($v0) +/* 06BF98 7F037468 24010001 */ li $at, 1 +/* 06BF9C 7F03746C 15410020 */ bne $t2, $at, .L7F0374F0 +/* 06BFA0 7F037470 00000000 */ nop +/* 06BFA4 7F037474 804300BC */ lb $v1, 0xbc($v0) +/* 06BFA8 7F037478 24010001 */ li $at, 1 +/* 06BFAC 7F03747C 1460000E */ bnez $v1, .L7F0374B8 +/* 06BFB0 7F037480 00000000 */ nop +/* 06BFB4 7F037484 C45200B4 */ lwc1 $f18, 0xb4($v0) +/* 06BFB8 7F037488 4614903E */ c.le.s $f18, $f20 +/* 06BFBC 7F03748C 00000000 */ nop +/* 06BFC0 7F037490 45020006 */ bc1fl .L7F0374AC +/* 06BFC4 7F037494 92300002 */ lbu $s0, 2($s1) +/* 06BFC8 7F037498 92300002 */ lbu $s0, 2($s1) +/* 06BFCC 7F03749C 320B0001 */ andi $t3, $s0, 1 +/* 06BFD0 7F0374A0 10000013 */ b .L7F0374F0 +/* 06BFD4 7F0374A4 000B802B */ sltu $s0, $zero, $t3 +/* 06BFD8 7F0374A8 92300002 */ lbu $s0, 2($s1) +.L7F0374AC: +/* 06BFDC 7F0374AC 32190002 */ andi $t9, $s0, 2 +/* 06BFE0 7F0374B0 1000000F */ b .L7F0374F0 +/* 06BFE4 7F0374B4 0019802B */ sltu $s0, $zero, $t9 +.L7F0374B8: +/* 06BFE8 7F0374B8 10610003 */ beq $v1, $at, .L7F0374C8 +/* 06BFEC 7F0374BC 24010003 */ li $at, 3 +/* 06BFF0 7F0374C0 54610006 */ bnel $v1, $at, .L7F0374DC +/* 06BFF4 7F0374C4 24010002 */ li $at, 2 +.L7F0374C8: +/* 06BFF8 7F0374C8 92300002 */ lbu $s0, 2($s1) +/* 06BFFC 7F0374CC 320E0008 */ andi $t6, $s0, 8 +/* 06C000 7F0374D0 10000007 */ b .L7F0374F0 +/* 06C004 7F0374D4 000E802B */ sltu $s0, $zero, $t6 +/* 06C008 7F0374D8 24010002 */ li $at, 2 +.L7F0374DC: +/* 06C00C 7F0374DC 14610004 */ bne $v1, $at, .L7F0374F0 +/* 06C010 7F0374E0 00000000 */ nop +/* 06C014 7F0374E4 92300002 */ lbu $s0, 2($s1) +/* 06C018 7F0374E8 32180004 */ andi $t8, $s0, 4 +/* 06C01C 7F0374EC 0018802B */ sltu $s0, $zero, $t8 +.L7F0374F0: +/* 06C020 7F0374F0 12000006 */ beqz $s0, .L7F03750C +/* 06C024 7F0374F4 02402825 */ move $a1, $s2 +/* 06C028 7F0374F8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C02C 7F0374FC 92260003 */ lbu $a2, 3($s1) +/* 06C030 7F037500 00409025 */ move $s2, $v0 +/* 06C034 7F037504 1000F821 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C038 7F037508 02C28821 */ addu $s1, $s6, $v0 +.L7F03750C: +/* 06C03C 7F03750C 26520004 */ addiu $s2, $s2, 4 +/* 06C040 7F037510 1000F81E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C044 7F037514 26310004 */ addiu $s1, $s1, 4 +action69_If_16_Object_Is_Valid_Door_RVL_3: +/* 06C048 7F037518 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C04C 7F03751C 92240001 */ lbu $a0, 1($s1) +/* 06C050 7F037520 50400014 */ beql $v0, $zero, .L7F037574 +/* 06C054 7F037524 26520003 */ addiu $s2, $s2, 3 +/* 06C058 7F037528 8C4A0010 */ lw $t2, 0x10($v0) +/* 06C05C 7F03752C 51400011 */ beql $t2, $zero, .L7F037574 +/* 06C060 7F037530 26520003 */ addiu $s2, $s2, 3 +/* 06C064 7F037534 904B0003 */ lbu $t3, 3($v0) +/* 06C068 7F037538 24010001 */ li $at, 1 +/* 06C06C 7F03753C 5561000D */ bnel $t3, $at, .L7F037574 +/* 06C070 7F037540 26520003 */ addiu $s2, $s2, 3 +/* 06C074 7F037544 8C4C0064 */ lw $t4, 0x64($v0) +/* 06C078 7F037548 02C02025 */ move $a0, $s6 +/* 06C07C 7F03754C 02402825 */ move $a1, $s2 +/* 06C080 7F037550 31990200 */ andi $t9, $t4, 0x200 +/* 06C084 7F037554 53200007 */ beql $t9, $zero, .L7F037574 +/* 06C088 7F037558 26520003 */ addiu $s2, $s2, 3 +/* 06C08C 7F03755C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C090 7F037560 92260002 */ lbu $a2, 2($s1) +/* 06C094 7F037564 00409025 */ move $s2, $v0 +/* 06C098 7F037568 1000F808 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C09C 7F03756C 02C28821 */ addu $s1, $s6, $v0 +/* 06C0A0 7F037570 26520003 */ addiu $s2, $s2, 3 +.L7F037574: +/* 06C0A4 7F037574 1000F805 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C0A8 7F037578 26310003 */ addiu $s1, $s1, 3 +action6A_Set_Bits_To_Lock_On_Type_16_Door_3: +/* 06C0AC 7F03757C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C0B0 7F037580 92240001 */ lbu $a0, 1($s1) +/* 06C0B4 7F037584 1040000C */ beqz $v0, .L7F0375B8 +/* 06C0B8 7F037588 26520003 */ addiu $s2, $s2, 3 +/* 06C0BC 7F03758C 8C440010 */ lw $a0, 0x10($v0) +/* 06C0C0 7F037590 10800009 */ beqz $a0, .L7F0375B8 +/* 06C0C4 7F037594 00000000 */ nop +/* 06C0C8 7F037598 908D0000 */ lbu $t5, ($a0) +/* 06C0CC 7F03759C 24010002 */ li $at, 2 +/* 06C0D0 7F0375A0 15A10005 */ bne $t5, $at, .L7F0375B8 +/* 06C0D4 7F0375A4 00000000 */ nop +/* 06C0D8 7F0375A8 92230002 */ lbu $v1, 2($s1) +/* 06C0DC 7F0375AC 8C4E009C */ lw $t6, 0x9c($v0) +/* 06C0E0 7F0375B0 01C37825 */ or $t7, $t6, $v1 +/* 06C0E4 7F0375B4 AC4F009C */ sw $t7, 0x9c($v0) +.L7F0375B8: +/* 06C0E8 7F0375B8 1000F7F4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C0EC 7F0375BC 26310003 */ addiu $s1, $s1, 3 +action6B_Unset_Bits_To_Lock_On_Type_16_Door_3: +/* 06C0F0 7F0375C0 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C0F4 7F0375C4 92240001 */ lbu $a0, 1($s1) +/* 06C0F8 7F0375C8 1040000D */ beqz $v0, .L7F037600 +/* 06C0FC 7F0375CC 26520003 */ addiu $s2, $s2, 3 +/* 06C100 7F0375D0 8C440010 */ lw $a0, 0x10($v0) +/* 06C104 7F0375D4 1080000A */ beqz $a0, .L7F037600 +/* 06C108 7F0375D8 00000000 */ nop +/* 06C10C 7F0375DC 90980000 */ lbu $t8, ($a0) +/* 06C110 7F0375E0 24010002 */ li $at, 2 +/* 06C114 7F0375E4 17010006 */ bne $t8, $at, .L7F037600 +/* 06C118 7F0375E8 00000000 */ nop +/* 06C11C 7F0375EC 92230002 */ lbu $v1, 2($s1) +/* 06C120 7F0375F0 8C49009C */ lw $t1, 0x9c($v0) +/* 06C124 7F0375F4 00605027 */ not $t2, $v1 +/* 06C128 7F0375F8 012A5824 */ and $t3, $t1, $t2 +/* 06C12C 7F0375FC AC4B009C */ sw $t3, 0x9c($v0) +.L7F037600: +/* 06C130 7F037600 1000F7E2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C134 7F037604 26310003 */ addiu $s1, $s1, 3 +action6C_If_Tagged_Locked_Door_16_Objects_Toggled_RVL_4: +/* 06C138 7F037608 92240001 */ lbu $a0, 1($s1) +/* 06C13C 7F03760C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C140 7F037610 00008025 */ move $s0, $zero +/* 06C144 7F037614 1040000E */ beqz $v0, .L7F037650 +/* 06C148 7F037618 02402825 */ move $a1, $s2 +/* 06C14C 7F03761C 8C440010 */ lw $a0, 0x10($v0) +/* 06C150 7F037620 1080000B */ beqz $a0, .L7F037650 +/* 06C154 7F037624 00000000 */ nop +/* 06C158 7F037628 908C0000 */ lbu $t4, ($a0) +/* 06C15C 7F03762C 24010002 */ li $at, 2 +/* 06C160 7F037630 15810007 */ bne $t4, $at, .L7F037650 +/* 06C164 7F037634 00000000 */ nop +/* 06C168 7F037638 92230002 */ lbu $v1, 2($s1) +/* 06C16C 7F03763C 8C59009C */ lw $t9, 0x9c($v0) +/* 06C170 7F037640 03236824 */ and $t5, $t9, $v1 +/* 06C174 7F037644 146D0002 */ bne $v1, $t5, .L7F037650 +/* 06C178 7F037648 00000000 */ nop +/* 06C17C 7F03764C 24100001 */ li $s0, 1 +.L7F037650: +/* 06C180 7F037650 12000006 */ beqz $s0, .L7F03766C +/* 06C184 7F037654 02C02025 */ move $a0, $s6 +/* 06C188 7F037658 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C18C 7F03765C 92260003 */ lbu $a2, 3($s1) +/* 06C190 7F037660 00409025 */ move $s2, $v0 +/* 06C194 7F037664 1000F7C9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C198 7F037668 02C28821 */ addu $s1, $s6, $v0 +.L7F03766C: +/* 06C19C 7F03766C 26520004 */ addiu $s2, $s2, 4 +/* 06C1A0 7F037670 1000F7C6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C1A4 7F037674 26310004 */ addiu $s1, $s1, 4 +action6D_If_Objective_num_Complete_RVL_3: +/* 06C1A8 7F037678 0FC15C6A */ jal add_objective +/* 06C1AC 7F03767C 00000000 */ nop +/* 06C1B0 7F037680 92250001 */ lbu $a1, 1($s1) +/* 06C1B4 7F037684 00A2082A */ slt $at, $a1, $v0 +/* 06C1B8 7F037688 5020000D */ beql $at, $zero, .L7F0376C0 +/* 06C1BC 7F03768C 26520003 */ addiu $s2, $s2, 3 +/* 06C1C0 7F037690 0FC15C8E */ jal get_status_of_objective +/* 06C1C4 7F037694 00A02025 */ move $a0, $a1 +/* 06C1C8 7F037698 24010001 */ li $at, 1 +/* 06C1CC 7F03769C 14410007 */ bne $v0, $at, .L7F0376BC +/* 06C1D0 7F0376A0 02C02025 */ move $a0, $s6 +/* 06C1D4 7F0376A4 02402825 */ move $a1, $s2 +/* 06C1D8 7F0376A8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C1DC 7F0376AC 92260002 */ lbu $a2, 2($s1) +/* 06C1E0 7F0376B0 00409025 */ move $s2, $v0 +/* 06C1E4 7F0376B4 1000F7B5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C1E8 7F0376B8 02C28821 */ addu $s1, $s6, $v0 +.L7F0376BC: +/* 06C1EC 7F0376BC 26520003 */ addiu $s2, $s2, 3 +.L7F0376C0: +/* 06C1F0 7F0376C0 1000F7B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C1F4 7F0376C4 26310003 */ addiu $s1, $s1, 3 +action6E_If_Guard_2328_Preset_RVL_3: +/* 06C1F8 7F0376C8 02E02025 */ move $a0, $s7 +/* 06C1FC 7F0376CC 0FC0CE66 */ jal check_2328_preset_set_with_method +/* 06C200 7F0376D0 92250001 */ lbu $a1, 1($s1) +/* 06C204 7F0376D4 10400007 */ beqz $v0, .L7F0376F4 +/* 06C208 7F0376D8 02C02025 */ move $a0, $s6 +/* 06C20C 7F0376DC 02402825 */ move $a1, $s2 +/* 06C210 7F0376E0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C214 7F0376E4 92260002 */ lbu $a2, 2($s1) +/* 06C218 7F0376E8 00409025 */ move $s2, $v0 +/* 06C21C 7F0376EC 1000F7A7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C220 7F0376F0 02C28821 */ addu $s1, $s6, $v0 +.L7F0376F4: +/* 06C224 7F0376F4 26520003 */ addiu $s2, $s2, 3 +/* 06C228 7F0376F8 1000F7A4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C22C 7F0376FC 26310003 */ addiu $s1, $s1, 3 +action6F_If_Guard_2328_Preset_Set_RVL_3: +/* 06C230 7F037700 02E02025 */ move $a0, $s7 +/* 06C234 7F037704 0FC0CEAB */ jal sub_GAME_7F033AAC +/* 06C238 7F037708 92250001 */ lbu $a1, 1($s1) +/* 06C23C 7F03770C 10400007 */ beqz $v0, .L7F03772C +/* 06C240 7F037710 02C02025 */ move $a0, $s6 +/* 06C244 7F037714 02402825 */ move $a1, $s2 +/* 06C248 7F037718 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C24C 7F03771C 92260002 */ lbu $a2, 2($s1) +/* 06C250 7F037720 00409025 */ move $s2, $v0 +/* 06C254 7F037724 1000F799 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C258 7F037728 02C28821 */ addu $s1, $s6, $v0 +.L7F03772C: +/* 06C25C 7F03772C 26520003 */ addiu $s2, $s2, 3 +/* 06C260 7F037730 1000F796 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C264 7F037734 26310003 */ addiu $s1, $s1, 3 +action78_Go_To_RVL_If_Guard_Shot_LTV_3: +/* 06C268 7F037738 0FC0CD69 */ jal get_times_actor_shot +/* 06C26C 7F03773C 02E02025 */ move $a0, $s7 +/* 06C270 7F037740 922E0001 */ lbu $t6, 1($s1) +/* 06C274 7F037744 02C02025 */ move $a0, $s6 +/* 06C278 7F037748 02402825 */ move $a1, $s2 +/* 06C27C 7F03774C 004E082A */ slt $at, $v0, $t6 +/* 06C280 7F037750 50200007 */ beql $at, $zero, .L7F037770 +/* 06C284 7F037754 26520003 */ addiu $s2, $s2, 3 +/* 06C288 7F037758 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C28C 7F03775C 92260002 */ lbu $a2, 2($s1) +/* 06C290 7F037760 00409025 */ move $s2, $v0 +/* 06C294 7F037764 1000F789 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C298 7F037768 02C28821 */ addu $s1, $s6, $v0 +/* 06C29C 7F03776C 26520003 */ addiu $s2, $s2, 3 +.L7F037770: +/* 06C2A0 7F037770 1000F786 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C2A4 7F037774 26310003 */ addiu $s1, $s1, 3 +action79_Go_To_RVL_If_Guard_Shot_GTV_3: +/* 06C2A8 7F037778 0FC0CD69 */ jal get_times_actor_shot +/* 06C2AC 7F03777C 02E02025 */ move $a0, $s7 +/* 06C2B0 7F037780 922F0001 */ lbu $t7, 1($s1) +/* 06C2B4 7F037784 02C02025 */ move $a0, $s6 +/* 06C2B8 7F037788 02402825 */ move $a1, $s2 +/* 06C2BC 7F03778C 01E2082A */ slt $at, $t7, $v0 +/* 06C2C0 7F037790 50200007 */ beql $at, $zero, .L7F0377B0 +/* 06C2C4 7F037794 26520003 */ addiu $s2, $s2, 3 +/* 06C2C8 7F037798 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C2CC 7F03779C 92260002 */ lbu $a2, 2($s1) +/* 06C2D0 7F0377A0 00409025 */ move $s2, $v0 +/* 06C2D4 7F0377A4 1000F779 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C2D8 7F0377A8 02C28821 */ addu $s1, $s6, $v0 +/* 06C2DC 7F0377AC 26520003 */ addiu $s2, $s2, 3 +.L7F0377B0: +/* 06C2E0 7F0377B0 1000F776 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C2E4 7F0377B4 26310003 */ addiu $s1, $s1, 3 +action7A_Go_To_RVL_If_Number_Near_Miss_Gunshots_LTV_3: +/* 06C2E8 7F0377B8 0FC0CD6B */ jal get_num_shots_near_actor +/* 06C2EC 7F0377BC 02E02025 */ move $a0, $s7 +/* 06C2F0 7F0377C0 92380001 */ lbu $t8, 1($s1) +/* 06C2F4 7F0377C4 02C02025 */ move $a0, $s6 +/* 06C2F8 7F0377C8 02402825 */ move $a1, $s2 +/* 06C2FC 7F0377CC 0058082A */ slt $at, $v0, $t8 +/* 06C300 7F0377D0 50200007 */ beql $at, $zero, .L7F0377F0 +/* 06C304 7F0377D4 26520003 */ addiu $s2, $s2, 3 +/* 06C308 7F0377D8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C30C 7F0377DC 92260002 */ lbu $a2, 2($s1) +/* 06C310 7F0377E0 00409025 */ move $s2, $v0 +/* 06C314 7F0377E4 1000F769 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C318 7F0377E8 02C28821 */ addu $s1, $s6, $v0 +/* 06C31C 7F0377EC 26520003 */ addiu $s2, $s2, 3 +.L7F0377F0: +/* 06C320 7F0377F0 1000F766 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C324 7F0377F4 26310003 */ addiu $s1, $s1, 3 +action7B_Go_To_RVL_If_Number_Near_Miss_Gunshots_GTV_3: +/* 06C328 7F0377F8 0FC0CD6B */ jal get_num_shots_near_actor +/* 06C32C 7F0377FC 02E02025 */ move $a0, $s7 +/* 06C330 7F037800 92290001 */ lbu $t1, 1($s1) +/* 06C334 7F037804 02C02025 */ move $a0, $s6 +/* 06C338 7F037808 02402825 */ move $a1, $s2 +/* 06C33C 7F03780C 0122082A */ slt $at, $t1, $v0 +/* 06C340 7F037810 50200007 */ beql $at, $zero, .L7F037830 +/* 06C344 7F037814 26520003 */ addiu $s2, $s2, 3 +/* 06C348 7F037818 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C34C 7F03781C 92260002 */ lbu $a2, 2($s1) +/* 06C350 7F037820 00409025 */ move $s2, $v0 +/* 06C354 7F037824 1000F759 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C358 7F037828 02C28821 */ addu $s1, $s6, $v0 +/* 06C35C 7F03782C 26520003 */ addiu $s2, $s2, 3 +.L7F037830: +/* 06C360 7F037830 1000F756 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C364 7F037834 26310003 */ addiu $s1, $s1, 3 +action7C_If_Guard_Health_Below_Value_RVL_4: +/* 06C368 7F037838 922A0002 */ lbu $t2, 2($s1) +/* 06C36C 7F03783C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C370 7F037840 448A2000 */ mtc1 $t2, $f4 +/* 06C374 7F037844 05410004 */ bgez $t2, .L7F037858 +/* 06C378 7F037848 468021A0 */ cvt.s.w $f6, $f4 +/* 06C37C 7F03784C 44814000 */ mtc1 $at, $f8 +/* 06C380 7F037850 00000000 */ nop +/* 06C384 7F037854 46083180 */ add.s $f6, $f6, $f8 +.L7F037858: +/* 06C388 7F037858 3C018005 */ lui $at, %hi(D_800528EC) +/* 06C38C 7F03785C C42A28EC */ lwc1 $f10, %lo(D_800528EC)($at) +/* 06C390 7F037860 02E02025 */ move $a0, $s7 +/* 06C394 7F037864 460A3402 */ mul.s $f16, $f6, $f10 +/* 06C398 7F037868 E7B00438 */ swc1 $f16, 0x438($sp) +/* 06C39C 7F03786C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06C3A0 7F037870 92250001 */ lbu $a1, 1($s1) +/* 06C3A4 7F037874 50400011 */ beql $v0, $zero, .L7F0378BC +/* 06C3A8 7F037878 26520004 */ addiu $s2, $s2, 4 +/* 06C3AC 7F03787C C4520100 */ lwc1 $f18, 0x100($v0) +/* 06C3B0 7F037880 C44400FC */ lwc1 $f4, 0xfc($v0) +/* 06C3B4 7F037884 C7A60438 */ lwc1 $f6, 0x438($sp) +/* 06C3B8 7F037888 02C02025 */ move $a0, $s6 +/* 06C3BC 7F03788C 46049201 */ sub.s $f8, $f18, $f4 +/* 06C3C0 7F037890 02402825 */ move $a1, $s2 +/* 06C3C4 7F037894 4606403C */ c.lt.s $f8, $f6 +/* 06C3C8 7F037898 00000000 */ nop +/* 06C3CC 7F03789C 45020007 */ bc1fl .L7F0378BC +/* 06C3D0 7F0378A0 26520004 */ addiu $s2, $s2, 4 +/* 06C3D4 7F0378A4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C3D8 7F0378A8 92260003 */ lbu $a2, 3($s1) +/* 06C3DC 7F0378AC 00409025 */ move $s2, $v0 +/* 06C3E0 7F0378B0 1000F736 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C3E4 7F0378B4 02C28821 */ addu $s1, $s6, $v0 +/* 06C3E8 7F0378B8 26520004 */ addiu $s2, $s2, 4 +.L7F0378BC: +/* 06C3EC 7F0378BC 1000F733 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C3F0 7F0378C0 26310004 */ addiu $s1, $s1, 4 +action7D_If_Guard_Health_Above_Value_RVL_4: +/* 06C3F4 7F0378C4 922B0002 */ lbu $t3, 2($s1) +/* 06C3F8 7F0378C8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C3FC 7F0378CC 448B5000 */ mtc1 $t3, $f10 +/* 06C400 7F0378D0 05610004 */ bgez $t3, .L7F0378E4 +/* 06C404 7F0378D4 46805420 */ cvt.s.w $f16, $f10 +/* 06C408 7F0378D8 44819000 */ mtc1 $at, $f18 +/* 06C40C 7F0378DC 00000000 */ nop +/* 06C410 7F0378E0 46128400 */ add.s $f16, $f16, $f18 +.L7F0378E4: +/* 06C414 7F0378E4 3C018005 */ lui $at, %hi(D_800528F0) +/* 06C418 7F0378E8 C42428F0 */ lwc1 $f4, %lo(D_800528F0)($at) +/* 06C41C 7F0378EC 02E02025 */ move $a0, $s7 +/* 06C420 7F0378F0 46048202 */ mul.s $f8, $f16, $f4 +/* 06C424 7F0378F4 E7A8042C */ swc1 $f8, 0x42c($sp) +/* 06C428 7F0378F8 0FC0CC10 */ jal get_handle_for_guard_id +/* 06C42C 7F0378FC 92250001 */ lbu $a1, 1($s1) +/* 06C430 7F037900 50400011 */ beql $v0, $zero, .L7F037948 +/* 06C434 7F037904 26520004 */ addiu $s2, $s2, 4 +/* 06C438 7F037908 C44A0100 */ lwc1 $f10, 0x100($v0) +/* 06C43C 7F03790C C45200FC */ lwc1 $f18, 0xfc($v0) +/* 06C440 7F037910 C7A6042C */ lwc1 $f6, 0x42c($sp) +/* 06C444 7F037914 02C02025 */ move $a0, $s6 +/* 06C448 7F037918 46125401 */ sub.s $f16, $f10, $f18 +/* 06C44C 7F03791C 02402825 */ move $a1, $s2 +/* 06C450 7F037920 4610303C */ c.lt.s $f6, $f16 +/* 06C454 7F037924 00000000 */ nop +/* 06C458 7F037928 45020007 */ bc1fl .L7F037948 +/* 06C45C 7F03792C 26520004 */ addiu $s2, $s2, 4 +/* 06C460 7F037930 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C464 7F037934 92260003 */ lbu $a2, 3($s1) +/* 06C468 7F037938 00409025 */ move $s2, $v0 +/* 06C46C 7F03793C 1000F713 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C470 7F037940 02C28821 */ addu $s1, $s6, $v0 +/* 06C474 7F037944 26520004 */ addiu $s2, $s2, 4 +.L7F037948: +/* 06C478 7F037948 1000F710 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C47C 7F03794C 26310004 */ addiu $s1, $s1, 4 +action7E_If_Guard_nums_Bitflag_01000000_Set_RVL_3: +/* 06C480 7F037950 02E02025 */ move $a0, $s7 +/* 06C484 7F037954 0FC0CC10 */ jal get_handle_for_guard_id +/* 06C488 7F037958 92250001 */ lbu $a1, 1($s1) +/* 06C48C 7F03795C 50400011 */ beql $v0, $zero, .L7F0379A4 +/* 06C490 7F037960 26520003 */ addiu $s2, $s2, 3 +/* 06C494 7F037964 8C4C0014 */ lw $t4, 0x14($v0) +/* 06C498 7F037968 2401FEFF */ li $at, -257 +/* 06C49C 7F03796C 31990100 */ andi $t9, $t4, 0x100 +/* 06C4A0 7F037970 5320000C */ beql $t9, $zero, .L7F0379A4 +/* 06C4A4 7F037974 26520003 */ addiu $s2, $s2, 3 +/* 06C4A8 7F037978 8C4D0014 */ lw $t5, 0x14($v0) +/* 06C4AC 7F03797C 02C02025 */ move $a0, $s6 +/* 06C4B0 7F037980 02402825 */ move $a1, $s2 +/* 06C4B4 7F037984 01A17024 */ and $t6, $t5, $at +/* 06C4B8 7F037988 AC4E0014 */ sw $t6, 0x14($v0) +/* 06C4BC 7F03798C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C4C0 7F037990 92260002 */ lbu $a2, 2($s1) +/* 06C4C4 7F037994 00409025 */ move $s2, $v0 +/* 06C4C8 7F037998 1000F6FC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C4CC 7F03799C 02C28821 */ addu $s1, $s6, $v0 +/* 06C4D0 7F0379A0 26520003 */ addiu $s2, $s2, 3 +.L7F0379A4: +/* 06C4D4 7F0379A4 1000F6F9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C4D8 7F0379A8 26310003 */ addiu $s1, $s1, 3 +action7F_If_Health_Below_Value_RVL_3: +/* 06C4DC 7F0379AC 922F0001 */ lbu $t7, 1($s1) +/* 06C4E0 7F0379B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C4E4 7F0379B4 448F2000 */ mtc1 $t7, $f4 +/* 06C4E8 7F0379B8 05E10004 */ bgez $t7, .L7F0379CC +/* 06C4EC 7F0379BC 46802220 */ cvt.s.w $f8, $f4 +/* 06C4F0 7F0379C0 44815000 */ mtc1 $at, $f10 +/* 06C4F4 7F0379C4 00000000 */ nop +/* 06C4F8 7F0379C8 460A4200 */ add.s $f8, $f8, $f10 +.L7F0379CC: +/* 06C4FC 7F0379CC 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 06C500 7F0379D0 44819000 */ mtc1 $at, $f18 +/* 06C504 7F0379D4 00000000 */ nop +/* 06C508 7F0379D8 46124183 */ div.s $f6, $f8, $f18 +/* 06C50C 7F0379DC 0FC228BB */ jal get_BONDdata_watch_health +/* 06C510 7F0379E0 E7A60418 */ swc1 $f6, 0x418($sp) +/* 06C514 7F0379E4 C7B00418 */ lwc1 $f16, 0x418($sp) +/* 06C518 7F0379E8 02C02025 */ move $a0, $s6 +/* 06C51C 7F0379EC 02402825 */ move $a1, $s2 +/* 06C520 7F0379F0 4610003C */ c.lt.s $f0, $f16 +/* 06C524 7F0379F4 00000000 */ nop +/* 06C528 7F0379F8 45020007 */ bc1fl .L7F037A18 +/* 06C52C 7F0379FC 26520003 */ addiu $s2, $s2, 3 +/* 06C530 7F037A00 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C534 7F037A04 92260002 */ lbu $a2, 2($s1) +/* 06C538 7F037A08 00409025 */ move $s2, $v0 +/* 06C53C 7F037A0C 1000F6DF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C540 7F037A10 02C28821 */ addu $s1, $s6, $v0 +/* 06C544 7F037A14 26520003 */ addiu $s2, $s2, 3 +.L7F037A18: +/* 06C548 7F037A18 1000F6DC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C54C 7F037A1C 26310003 */ addiu $s1, $s1, 3 +action80_If_Health_Above_Value_RVL_3: +/* 06C550 7F037A20 92380001 */ lbu $t8, 1($s1) +/* 06C554 7F037A24 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C558 7F037A28 44982000 */ mtc1 $t8, $f4 +/* 06C55C 7F037A2C 07010004 */ bgez $t8, .L7F037A40 +/* 06C560 7F037A30 468022A0 */ cvt.s.w $f10, $f4 +/* 06C564 7F037A34 44814000 */ mtc1 $at, $f8 +/* 06C568 7F037A38 00000000 */ nop +/* 06C56C 7F037A3C 46085280 */ add.s $f10, $f10, $f8 +.L7F037A40: +/* 06C570 7F037A40 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 06C574 7F037A44 44819000 */ mtc1 $at, $f18 +/* 06C578 7F037A48 00000000 */ nop +/* 06C57C 7F037A4C 46125183 */ div.s $f6, $f10, $f18 +/* 06C580 7F037A50 0FC228BB */ jal get_BONDdata_watch_health +/* 06C584 7F037A54 E7A60410 */ swc1 $f6, 0x410($sp) +/* 06C588 7F037A58 C7B00410 */ lwc1 $f16, 0x410($sp) +/* 06C58C 7F037A5C 02C02025 */ move $a0, $s6 +/* 06C590 7F037A60 02402825 */ move $a1, $s2 +/* 06C594 7F037A64 4600803C */ c.lt.s $f16, $f0 +/* 06C598 7F037A68 00000000 */ nop +/* 06C59C 7F037A6C 45020007 */ bc1fl .L7F037A8C +/* 06C5A0 7F037A70 26520003 */ addiu $s2, $s2, 3 +/* 06C5A4 7F037A74 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C5A8 7F037A78 92260002 */ lbu $a2, 2($s1) +/* 06C5AC 7F037A7C 00409025 */ move $s2, $v0 +/* 06C5B0 7F037A80 1000F6C2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C5B4 7F037A84 02C28821 */ addu $s1, $s6, $v0 +/* 06C5B8 7F037A88 26520003 */ addiu $s2, $s2, 3 +.L7F037A8C: +/* 06C5BC 7F037A8C 1000F6BF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C5C0 7F037A90 26310003 */ addiu $s1, $s1, 3 +action70_Go_Into_RVL_Difficulty_LTV_3: +/* 06C5C4 7F037A94 0FC2FF04 */ jal get_current_difficulty +/* 06C5C8 7F037A98 00000000 */ nop +/* 06C5CC 7F037A9C 92290001 */ lbu $t1, 1($s1) +/* 06C5D0 7F037AA0 02C02025 */ move $a0, $s6 +/* 06C5D4 7F037AA4 02402825 */ move $a1, $s2 +/* 06C5D8 7F037AA8 0049082A */ slt $at, $v0, $t1 +/* 06C5DC 7F037AAC 50200007 */ beql $at, $zero, .L7F037ACC +/* 06C5E0 7F037AB0 26520003 */ addiu $s2, $s2, 3 +/* 06C5E4 7F037AB4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C5E8 7F037AB8 92260002 */ lbu $a2, 2($s1) +/* 06C5EC 7F037ABC 00409025 */ move $s2, $v0 +/* 06C5F0 7F037AC0 1000F6B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C5F4 7F037AC4 02C28821 */ addu $s1, $s6, $v0 +/* 06C5F8 7F037AC8 26520003 */ addiu $s2, $s2, 3 +.L7F037ACC: +/* 06C5FC 7F037ACC 1000F6AF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C600 7F037AD0 26310003 */ addiu $s1, $s1, 3 +action71_GoIntoRVLIf_Difficulty_GTV_3: +/* 06C604 7F037AD4 0FC2FF04 */ jal get_current_difficulty +/* 06C608 7F037AD8 00000000 */ nop +/* 06C60C 7F037ADC 922A0001 */ lbu $t2, 1($s1) +/* 06C610 7F037AE0 02C02025 */ move $a0, $s6 +/* 06C614 7F037AE4 02402825 */ move $a1, $s2 +/* 06C618 7F037AE8 0142082A */ slt $at, $t2, $v0 +/* 06C61C 7F037AEC 50200007 */ beql $at, $zero, .L7F037B0C +/* 06C620 7F037AF0 26520003 */ addiu $s2, $s2, 3 +/* 06C624 7F037AF4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C628 7F037AF8 92260002 */ lbu $a2, 2($s1) +/* 06C62C 7F037AFC 00409025 */ move $s2, $v0 +/* 06C630 7F037B00 1000F6A2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C634 7F037B04 02C28821 */ addu $s1, $s6, $v0 +/* 06C638 7F037B08 26520003 */ addiu $s2, $s2, 3 +.L7F037B0C: +/* 06C63C 7F037B0C 1000F69F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C640 7F037B10 26310003 */ addiu $s1, $s1, 3 +action72_Go_To_RVL_If_Time_LTV_4: +/* 06C644 7F037B14 922B0001 */ lbu $t3, 1($s1) +/* 06C648 7F037B18 92390002 */ lbu $t9, 2($s1) +/* 06C64C 7F037B1C 000B6200 */ sll $t4, $t3, 8 +/* 06C650 7F037B20 01996825 */ or $t5, $t4, $t9 +/* 06C654 7F037B24 448D2000 */ mtc1 $t5, $f4 +/* 06C658 7F037B28 00000000 */ nop +/* 06C65C 7F037B2C 46802220 */ cvt.s.w $f8, $f4 +/* 06C660 7F037B30 0FC2FF10 */ jal get_cur_mp_sec +/* 06C664 7F037B34 E7A80400 */ swc1 $f8, 0x400($sp) +/* 06C668 7F037B38 C7AA0400 */ lwc1 $f10, 0x400($sp) +/* 06C66C 7F037B3C 02C02025 */ move $a0, $s6 +/* 06C670 7F037B40 02402825 */ move $a1, $s2 +/* 06C674 7F037B44 460A003C */ c.lt.s $f0, $f10 +/* 06C678 7F037B48 00000000 */ nop +/* 06C67C 7F037B4C 45020007 */ bc1fl .L7F037B6C +/* 06C680 7F037B50 26520004 */ addiu $s2, $s2, 4 +/* 06C684 7F037B54 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C688 7F037B58 92260003 */ lbu $a2, 3($s1) +/* 06C68C 7F037B5C 00409025 */ move $s2, $v0 +/* 06C690 7F037B60 1000F68A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C694 7F037B64 02C28821 */ addu $s1, $s6, $v0 +/* 06C698 7F037B68 26520004 */ addiu $s2, $s2, 4 +.L7F037B6C: +/* 06C69C 7F037B6C 1000F687 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C6A0 7F037B70 26310004 */ addiu $s1, $s1, 4 +action73_Go_To_RVL_If_Time_GTV_4: +/* 06C6A4 7F037B74 922E0001 */ lbu $t6, 1($s1) +/* 06C6A8 7F037B78 92380002 */ lbu $t8, 2($s1) +/* 06C6AC 7F037B7C 000E7A00 */ sll $t7, $t6, 8 +/* 06C6B0 7F037B80 01F84825 */ or $t1, $t7, $t8 +/* 06C6B4 7F037B84 44899000 */ mtc1 $t1, $f18 +/* 06C6B8 7F037B88 00000000 */ nop +/* 06C6BC 7F037B8C 468091A0 */ cvt.s.w $f6, $f18 +/* 06C6C0 7F037B90 0FC2FF10 */ jal get_cur_mp_sec +/* 06C6C4 7F037B94 E7A603F8 */ swc1 $f6, 0x3f8($sp) +/* 06C6C8 7F037B98 C7B003F8 */ lwc1 $f16, 0x3f8($sp) +/* 06C6CC 7F037B9C 02C02025 */ move $a0, $s6 +/* 06C6D0 7F037BA0 02402825 */ move $a1, $s2 +/* 06C6D4 7F037BA4 4600803C */ c.lt.s $f16, $f0 +/* 06C6D8 7F037BA8 00000000 */ nop +/* 06C6DC 7F037BAC 45020007 */ bc1fl .L7F037BCC +/* 06C6E0 7F037BB0 26520004 */ addiu $s2, $s2, 4 +/* 06C6E4 7F037BB4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C6E8 7F037BB8 92260003 */ lbu $a2, 3($s1) +/* 06C6EC 7F037BBC 00409025 */ move $s2, $v0 +/* 06C6F0 7F037BC0 1000F672 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C6F4 7F037BC4 02C28821 */ addu $s1, $s6, $v0 +/* 06C6F8 7F037BC8 26520004 */ addiu $s2, $s2, 4 +.L7F037BCC: +/* 06C6FC 7F037BCC 1000F66F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C700 7F037BD0 26310004 */ addiu $s1, $s1, 4 +action74_Go_To_RVL_If_Power_On_Time_LTV_4: +/* 06C704 7F037BD4 922A0001 */ lbu $t2, 1($s1) +/* 06C708 7F037BD8 922C0002 */ lbu $t4, 2($s1) +/* 06C70C 7F037BDC 000A5A00 */ sll $t3, $t2, 8 +/* 06C710 7F037BE0 016CC825 */ or $t9, $t3, $t4 +/* 06C714 7F037BE4 44992000 */ mtc1 $t9, $f4 +/* 06C718 7F037BE8 00000000 */ nop +/* 06C71C 7F037BEC 46802220 */ cvt.s.w $f8, $f4 +/* 06C720 7F037BF0 46164282 */ mul.s $f10, $f8, $f22 +/* 06C724 7F037BF4 0FC2FF13 */ jal get_cur_mp_min +/* 06C728 7F037BF8 E7AA03F0 */ swc1 $f10, 0x3f0($sp) +/* 06C72C 7F037BFC C7B203F0 */ lwc1 $f18, 0x3f0($sp) +/* 06C730 7F037C00 02C02025 */ move $a0, $s6 +/* 06C734 7F037C04 02402825 */ move $a1, $s2 +/* 06C738 7F037C08 4612003C */ c.lt.s $f0, $f18 +/* 06C73C 7F037C0C 00000000 */ nop +/* 06C740 7F037C10 45020007 */ bc1fl .L7F037C30 +/* 06C744 7F037C14 26520004 */ addiu $s2, $s2, 4 +/* 06C748 7F037C18 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C74C 7F037C1C 92260003 */ lbu $a2, 3($s1) +/* 06C750 7F037C20 00409025 */ move $s2, $v0 +/* 06C754 7F037C24 1000F659 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C758 7F037C28 02C28821 */ addu $s1, $s6, $v0 +/* 06C75C 7F037C2C 26520004 */ addiu $s2, $s2, 4 +.L7F037C30: +/* 06C760 7F037C30 1000F656 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C764 7F037C34 26310004 */ addiu $s1, $s1, 4 +action75_Go_To_RVL_If_Power_On_Time_GTV_4: +/* 06C768 7F037C38 922D0001 */ lbu $t5, 1($s1) +/* 06C76C 7F037C3C 922F0002 */ lbu $t7, 2($s1) +/* 06C770 7F037C40 000D7200 */ sll $t6, $t5, 8 +/* 06C774 7F037C44 01CFC025 */ or $t8, $t6, $t7 +/* 06C778 7F037C48 44983000 */ mtc1 $t8, $f6 +/* 06C77C 7F037C4C 00000000 */ nop +/* 06C780 7F037C50 46803420 */ cvt.s.w $f16, $f6 +/* 06C784 7F037C54 46168102 */ mul.s $f4, $f16, $f22 +/* 06C788 7F037C58 0FC2FF13 */ jal get_cur_mp_min +/* 06C78C 7F037C5C E7A403E8 */ swc1 $f4, 0x3e8($sp) +/* 06C790 7F037C60 C7A803E8 */ lwc1 $f8, 0x3e8($sp) +/* 06C794 7F037C64 02C02025 */ move $a0, $s6 +/* 06C798 7F037C68 02402825 */ move $a1, $s2 +/* 06C79C 7F037C6C 4600403C */ c.lt.s $f8, $f0 +/* 06C7A0 7F037C70 00000000 */ nop +/* 06C7A4 7F037C74 45020007 */ bc1fl .L7F037C94 +/* 06C7A8 7F037C78 26520004 */ addiu $s2, $s2, 4 +/* 06C7AC 7F037C7C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C7B0 7F037C80 92260003 */ lbu $a2, 3($s1) +/* 06C7B4 7F037C84 00409025 */ move $s2, $v0 +/* 06C7B8 7F037C88 1000F640 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C7BC 7F037C8C 02C28821 */ addu $s1, $s6, $v0 +/* 06C7C0 7F037C90 26520004 */ addiu $s2, $s2, 4 +.L7F037C94: +/* 06C7C4 7F037C94 1000F63D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C7C8 7F037C98 26310004 */ addiu $s1, $s1, 4 +action76_Go_To_RVL_If_Stage_Number_LTV_3: +/* 06C7CC 7F037C9C 0C001A57 */ jal get_stage_num +/* 06C7D0 7F037CA0 00000000 */ nop +/* 06C7D4 7F037CA4 92290001 */ lbu $t1, 1($s1) +/* 06C7D8 7F037CA8 02C02025 */ move $a0, $s6 +/* 06C7DC 7F037CAC 02402825 */ move $a1, $s2 +/* 06C7E0 7F037CB0 0049082A */ slt $at, $v0, $t1 +/* 06C7E4 7F037CB4 50200007 */ beql $at, $zero, .L7F037CD4 +/* 06C7E8 7F037CB8 26520003 */ addiu $s2, $s2, 3 +/* 06C7EC 7F037CBC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C7F0 7F037CC0 92260002 */ lbu $a2, 2($s1) +/* 06C7F4 7F037CC4 00409025 */ move $s2, $v0 +/* 06C7F8 7F037CC8 1000F630 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C7FC 7F037CCC 02C28821 */ addu $s1, $s6, $v0 +/* 06C800 7F037CD0 26520003 */ addiu $s2, $s2, 3 +.L7F037CD4: +/* 06C804 7F037CD4 1000F62D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C808 7F037CD8 26310003 */ addiu $s1, $s1, 3 +action77_Go_To_RVL_If_Stage_Number_GTV_3: +/* 06C80C 7F037CDC 0C001A57 */ jal get_stage_num +/* 06C810 7F037CE0 00000000 */ nop +/* 06C814 7F037CE4 922A0001 */ lbu $t2, 1($s1) +/* 06C818 7F037CE8 02C02025 */ move $a0, $s6 +/* 06C81C 7F037CEC 02402825 */ move $a1, $s2 +/* 06C820 7F037CF0 0142082A */ slt $at, $t2, $v0 +/* 06C824 7F037CF4 50200007 */ beql $at, $zero, .L7F037D14 +/* 06C828 7F037CF8 26520003 */ addiu $s2, $s2, 3 +/* 06C82C 7F037CFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C830 7F037D00 92260002 */ lbu $a2, 2($s1) +/* 06C834 7F037D04 00409025 */ move $s2, $v0 +/* 06C838 7F037D08 1000F620 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C83C 7F037D0C 02C28821 */ addu $s1, $s6, $v0 +/* 06C840 7F037D10 26520003 */ addiu $s2, $s2, 3 +.L7F037D14: +/* 06C844 7F037D14 1000F61D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C848 7F037D18 26310003 */ addiu $s1, $s1, 3 +action81_Set_User_Byte_num1_2: +/* 06C84C 7F037D1C 922B0001 */ lbu $t3, 1($s1) +/* 06C850 7F037D20 26520002 */ addiu $s2, $s2, 2 +/* 06C854 7F037D24 26310002 */ addiu $s1, $s1, 2 +/* 06C858 7F037D28 1000F618 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C85C 7F037D2C A2EB010C */ sb $t3, 0x10c($s7) +action82_Add_Value_To_User_Byte_num1_Max_To_FF_2: +/* 06C860 7F037D30 92250001 */ lbu $a1, 1($s1) +/* 06C864 7F037D34 92E2010C */ lbu $v0, 0x10c($s7) +/* 06C868 7F037D38 240C00FF */ li $t4, 255 +/* 06C86C 7F037D3C 0185C823 */ subu $t9, $t4, $a1 +/* 06C870 7F037D40 0322082A */ slt $at, $t9, $v0 +/* 06C874 7F037D44 10200006 */ beqz $at, .L7F037D60 +/* 06C878 7F037D48 00457021 */ addu $t6, $v0, $a1 +/* 06C87C 7F037D4C 240D00FF */ li $t5, 255 +/* 06C880 7F037D50 A2ED010C */ sb $t5, 0x10c($s7) +/* 06C884 7F037D54 26520002 */ addiu $s2, $s2, 2 +/* 06C888 7F037D58 1000F60C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C88C 7F037D5C 26310002 */ addiu $s1, $s1, 2 +.L7F037D60: +/* 06C890 7F037D60 A2EE010C */ sb $t6, 0x10c($s7) +/* 06C894 7F037D64 26520002 */ addiu $s2, $s2, 2 +/* 06C898 7F037D68 1000F608 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C89C 7F037D6C 26310002 */ addiu $s1, $s1, 2 +action83_Subtract_Value_To_User_Byte_num1_Min_To_0_2: +/* 06C8A0 7F037D70 92E2010C */ lbu $v0, 0x10c($s7) +/* 06C8A4 7F037D74 92250001 */ lbu $a1, 1($s1) +/* 06C8A8 7F037D78 0045082A */ slt $at, $v0, $a1 +/* 06C8AC 7F037D7C 10200005 */ beqz $at, .L7F037D94 +/* 06C8B0 7F037D80 00457823 */ subu $t7, $v0, $a1 +/* 06C8B4 7F037D84 A2E0010C */ sb $zero, 0x10c($s7) +/* 06C8B8 7F037D88 26520002 */ addiu $s2, $s2, 2 +/* 06C8BC 7F037D8C 1000F5FF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C8C0 7F037D90 26310002 */ addiu $s1, $s1, 2 +.L7F037D94: +/* 06C8C4 7F037D94 A2EF010C */ sb $t7, 0x10c($s7) +/* 06C8C8 7F037D98 26520002 */ addiu $s2, $s2, 2 +/* 06C8CC 7F037D9C 1000F5FB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C8D0 7F037DA0 26310002 */ addiu $s1, $s1, 2 +action84_If_Value_GreaterThan_User_Byte_num1_RVL_3: +/* 06C8D4 7F037DA4 92F8010C */ lbu $t8, 0x10c($s7) +/* 06C8D8 7F037DA8 92290001 */ lbu $t1, 1($s1) +/* 06C8DC 7F037DAC 02C02025 */ move $a0, $s6 +/* 06C8E0 7F037DB0 02402825 */ move $a1, $s2 +/* 06C8E4 7F037DB4 0309082A */ slt $at, $t8, $t1 +/* 06C8E8 7F037DB8 50200007 */ beql $at, $zero, .L7F037DD8 +/* 06C8EC 7F037DBC 26520003 */ addiu $s2, $s2, 3 +/* 06C8F0 7F037DC0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C8F4 7F037DC4 92260002 */ lbu $a2, 2($s1) +/* 06C8F8 7F037DC8 00409025 */ move $s2, $v0 +/* 06C8FC 7F037DCC 1000F5EF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C900 7F037DD0 02C28821 */ addu $s1, $s6, $v0 +/* 06C904 7F037DD4 26520003 */ addiu $s2, $s2, 3 +.L7F037DD8: +/* 06C908 7F037DD8 1000F5EC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C90C 7F037DDC 26310003 */ addiu $s1, $s1, 3 +action85_If_User_Byte_num1_LessThan_Random_Value_RVL_2: +/* 06C910 7F037DE0 92EA010C */ lbu $t2, 0x10c($s7) +/* 06C914 7F037DE4 92EB010F */ lbu $t3, 0x10f($s7) +/* 06C918 7F037DE8 02C02025 */ move $a0, $s6 +/* 06C91C 7F037DEC 02402825 */ move $a1, $s2 +/* 06C920 7F037DF0 014B082A */ slt $at, $t2, $t3 +/* 06C924 7F037DF4 50200007 */ beql $at, $zero, .L7F037E14 +/* 06C928 7F037DF8 26520002 */ addiu $s2, $s2, 2 +/* 06C92C 7F037DFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C930 7F037E00 92260001 */ lbu $a2, 1($s1) +/* 06C934 7F037E04 00409025 */ move $s2, $v0 +/* 06C938 7F037E08 1000F5E0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C93C 7F037E0C 02C28821 */ addu $s1, $s6, $v0 +/* 06C940 7F037E10 26520002 */ addiu $s2, $s2, 2 +.L7F037E14: +/* 06C944 7F037E14 1000F5DD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C948 7F037E18 26310002 */ addiu $s1, $s1, 2 +action86_Set_User_Byte_num2_2: +/* 06C94C 7F037E1C 922C0001 */ lbu $t4, 1($s1) +/* 06C950 7F037E20 26520002 */ addiu $s2, $s2, 2 +/* 06C954 7F037E24 26310002 */ addiu $s1, $s1, 2 +/* 06C958 7F037E28 1000F5D8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C95C 7F037E2C A2EC010D */ sb $t4, 0x10d($s7) +action87_Add_Value_To_User_Byte_num2_Max_To_FF_2: +/* 06C960 7F037E30 92250001 */ lbu $a1, 1($s1) +/* 06C964 7F037E34 92E2010D */ lbu $v0, 0x10d($s7) +/* 06C968 7F037E38 241900FF */ li $t9, 255 +/* 06C96C 7F037E3C 03256823 */ subu $t5, $t9, $a1 +/* 06C970 7F037E40 01A2082A */ slt $at, $t5, $v0 +/* 06C974 7F037E44 10200006 */ beqz $at, .L7F037E60 +/* 06C978 7F037E48 00457821 */ addu $t7, $v0, $a1 +/* 06C97C 7F037E4C 240E00FF */ li $t6, 255 +/* 06C980 7F037E50 A2EE010D */ sb $t6, 0x10d($s7) +/* 06C984 7F037E54 26520002 */ addiu $s2, $s2, 2 +/* 06C988 7F037E58 1000F5CC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C98C 7F037E5C 26310002 */ addiu $s1, $s1, 2 +.L7F037E60: +/* 06C990 7F037E60 A2EF010D */ sb $t7, 0x10d($s7) +/* 06C994 7F037E64 26520002 */ addiu $s2, $s2, 2 +/* 06C998 7F037E68 1000F5C8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C99C 7F037E6C 26310002 */ addiu $s1, $s1, 2 +action88_Subtract_Value_To_User_Byte_num2_Min_To_0_2: +/* 06C9A0 7F037E70 92E2010D */ lbu $v0, 0x10d($s7) +/* 06C9A4 7F037E74 92250001 */ lbu $a1, 1($s1) +/* 06C9A8 7F037E78 0045082A */ slt $at, $v0, $a1 +/* 06C9AC 7F037E7C 10200005 */ beqz $at, .L7F037E94 +/* 06C9B0 7F037E80 0045C023 */ subu $t8, $v0, $a1 +/* 06C9B4 7F037E84 A2E0010D */ sb $zero, 0x10d($s7) +/* 06C9B8 7F037E88 26520002 */ addiu $s2, $s2, 2 +/* 06C9BC 7F037E8C 1000F5BF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C9C0 7F037E90 26310002 */ addiu $s1, $s1, 2 +.L7F037E94: +/* 06C9C4 7F037E94 A2F8010D */ sb $t8, 0x10d($s7) +/* 06C9C8 7F037E98 26520002 */ addiu $s2, $s2, 2 +/* 06C9CC 7F037E9C 1000F5BB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C9D0 7F037EA0 26310002 */ addiu $s1, $s1, 2 +action89_If_Value_GreaterThan_User_Byte_num2_RVL_3: +/* 06C9D4 7F037EA4 92E9010D */ lbu $t1, 0x10d($s7) +/* 06C9D8 7F037EA8 922A0001 */ lbu $t2, 1($s1) +/* 06C9DC 7F037EAC 02C02025 */ move $a0, $s6 +/* 06C9E0 7F037EB0 02402825 */ move $a1, $s2 +/* 06C9E4 7F037EB4 012A082A */ slt $at, $t1, $t2 +/* 06C9E8 7F037EB8 50200007 */ beql $at, $zero, .L7F037ED8 +/* 06C9EC 7F037EBC 26520003 */ addiu $s2, $s2, 3 +/* 06C9F0 7F037EC0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C9F4 7F037EC4 92260002 */ lbu $a2, 2($s1) +/* 06C9F8 7F037EC8 00409025 */ move $s2, $v0 +/* 06C9FC 7F037ECC 1000F5AF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA00 7F037ED0 02C28821 */ addu $s1, $s6, $v0 +/* 06CA04 7F037ED4 26520003 */ addiu $s2, $s2, 3 +.L7F037ED8: +/* 06CA08 7F037ED8 1000F5AC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA0C 7F037EDC 26310003 */ addiu $s1, $s1, 3 +action8A_If_User_Byte_num2_LessThan_Random_Value_RVL_2: +/* 06CA10 7F037EE0 92EB010D */ lbu $t3, 0x10d($s7) +/* 06CA14 7F037EE4 92EC010F */ lbu $t4, 0x10f($s7) +/* 06CA18 7F037EE8 02C02025 */ move $a0, $s6 +/* 06CA1C 7F037EEC 02402825 */ move $a1, $s2 +/* 06CA20 7F037EF0 016C082A */ slt $at, $t3, $t4 +/* 06CA24 7F037EF4 50200007 */ beql $at, $zero, .L7F037F14 +/* 06CA28 7F037EF8 26520002 */ addiu $s2, $s2, 2 +/* 06CA2C 7F037EFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CA30 7F037F00 92260001 */ lbu $a2, 1($s1) +/* 06CA34 7F037F04 00409025 */ move $s2, $v0 +/* 06CA38 7F037F08 1000F5A0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA3C 7F037F0C 02C28821 */ addu $s1, $s6, $v0 +/* 06CA40 7F037F10 26520002 */ addiu $s2, $s2, 2 +.L7F037F14: +/* 06CA44 7F037F14 1000F59D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA48 7F037F18 26310002 */ addiu $s1, $s1, 2 +action8B_Set_Guard_Hearing_Distance_3: +/* 06CA4C 7F037F1C 92390001 */ lbu $t9, 1($s1) +/* 06CA50 7F037F20 922E0002 */ lbu $t6, 2($s1) +/* 06CA54 7F037F24 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 06CA58 7F037F28 00196A00 */ sll $t5, $t9, 8 +/* 06CA5C 7F037F2C 01AE7825 */ or $t7, $t5, $t6 +/* 06CA60 7F037F30 448F5000 */ mtc1 $t7, $f10 +/* 06CA64 7F037F34 44813000 */ mtc1 $at, $f6 +/* 06CA68 7F037F38 26520003 */ addiu $s2, $s2, 3 +/* 06CA6C 7F037F3C 468054A0 */ cvt.s.w $f18, $f10 +/* 06CA70 7F037F40 26310003 */ addiu $s1, $s1, 3 +/* 06CA74 7F037F44 46069003 */ div.s $f0, $f18, $f6 +/* 06CA78 7F037F48 1000F590 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA7C 7F037F4C E6E000EC */ swc1 $f0, 0xec($s7) +action8C_Set_Guard_Visible_Distance_2: +/* 06CA80 7F037F50 92380001 */ lbu $t8, 1($s1) +/* 06CA84 7F037F54 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06CA88 7F037F58 26520002 */ addiu $s2, $s2, 2 +/* 06CA8C 7F037F5C 44988000 */ mtc1 $t8, $f16 +/* 06CA90 7F037F60 26310002 */ addiu $s1, $s1, 2 +/* 06CA94 7F037F64 07010004 */ bgez $t8, .L7F037F78 +/* 06CA98 7F037F68 46808120 */ cvt.s.w $f4, $f16 +/* 06CA9C 7F037F6C 44814000 */ mtc1 $at, $f8 +/* 06CAA0 7F037F70 00000000 */ nop +/* 06CAA4 7F037F74 46082100 */ add.s $f4, $f4, $f8 +.L7F037F78: +/* 06CAA8 7F037F78 1000F584 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CAAC 7F037F7C E6E400D0 */ swc1 $f4, 0xd0($s7) +action8D_Set_Guard_Grenade_Probability_2: +/* 06CAB0 7F037F80 92290001 */ lbu $t1, 1($s1) +/* 06CAB4 7F037F84 26520002 */ addiu $s2, $s2, 2 +/* 06CAB8 7F037F88 26310002 */ addiu $s1, $s1, 2 +/* 06CABC 7F037F8C 1000F57F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CAC0 7F037F90 A2E90010 */ sb $t1, 0x10($s7) +action8E_Set_Guard_ID_2: +/* 06CAC4 7F037F94 922A0001 */ lbu $t2, 1($s1) +/* 06CAC8 7F037F98 26520002 */ addiu $s2, $s2, 2 +/* 06CACC 7F037F9C 26310002 */ addiu $s1, $s1, 2 +/* 06CAD0 7F037FA0 1000F57A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CAD4 7F037FA4 A6EA0000 */ sh $t2, ($s7) +action8F_Set_Guard_Health_3: +/* 06CAD8 7F037FA8 922B0001 */ lbu $t3, 1($s1) +/* 06CADC 7F037FAC 92390002 */ lbu $t9, 2($s1) +/* 06CAE0 7F037FB0 3C018005 */ lui $at, %hi(D_800528F4) +/* 06CAE4 7F037FB4 000B6200 */ sll $t4, $t3, 8 +/* 06CAE8 7F037FB8 01996825 */ or $t5, $t4, $t9 +/* 06CAEC 7F037FBC 448D5000 */ mtc1 $t5, $f10 +/* 06CAF0 7F037FC0 C42628F4 */ lwc1 $f6, %lo(D_800528F4)($at) +/* 06CAF4 7F037FC4 02E02025 */ move $a0, $s7 +/* 06CAF8 7F037FC8 468054A0 */ cvt.s.w $f18, $f10 +/* 06CAFC 7F037FCC 46069002 */ mul.s $f0, $f18, $f6 +/* 06CB00 7F037FD0 44050000 */ mfc1 $a1, $f0 +/* 06CB04 7F037FD4 0FC08006 */ jal sub_GAME_7F020018 +/* 06CB08 7F037FD8 00000000 */ nop +/* 06CB0C 7F037FDC 26520003 */ addiu $s2, $s2, 3 +/* 06CB10 7F037FE0 1000F56A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB14 7F037FE4 26310003 */ addiu $s1, $s1, 3 +action90_Set_Guard_Armor_Amount_3: +/* 06CB18 7F037FE8 922E0001 */ lbu $t6, 1($s1) +/* 06CB1C 7F037FEC 92380002 */ lbu $t8, 2($s1) +/* 06CB20 7F037FF0 3C018005 */ lui $at, %hi(D_800528F8) +/* 06CB24 7F037FF4 000E7A00 */ sll $t7, $t6, 8 +/* 06CB28 7F037FF8 01F84825 */ or $t1, $t7, $t8 +/* 06CB2C 7F037FFC 44898000 */ mtc1 $t1, $f16 +/* 06CB30 7F038000 C42428F8 */ lwc1 $f4, %lo(D_800528F8)($at) +/* 06CB34 7F038004 02E02025 */ move $a0, $s7 +/* 06CB38 7F038008 46808220 */ cvt.s.w $f8, $f16 +/* 06CB3C 7F03800C 46044002 */ mul.s $f0, $f8, $f4 +/* 06CB40 7F038010 44050000 */ mfc1 $a1, $f0 +/* 06CB44 7F038014 0FC08015 */ jal sub_GAME_7F020054 +/* 06CB48 7F038018 00000000 */ nop +/* 06CB4C 7F03801C 26520003 */ addiu $s2, $s2, 3 +/* 06CB50 7F038020 1000F55A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB54 7F038024 26310003 */ addiu $s1, $s1, 3 +action91_Set_Character_Reaction_Speed_2: +/* 06CB58 7F038028 822A0001 */ lb $t2, 1($s1) +/* 06CB5C 7F03802C 26520002 */ addiu $s2, $s2, 2 +/* 06CB60 7F038030 26310002 */ addiu $s1, $s1, 2 +/* 06CB64 7F038034 1000F555 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB68 7F038038 A2EA0003 */ sb $t2, 3($s7) +action92_Set_Character_Injury_Recovery_Speed_2: +/* 06CB6C 7F03803C 822B0001 */ lb $t3, 1($s1) +/* 06CB70 7F038040 26520002 */ addiu $s2, $s2, 2 +/* 06CB74 7F038044 26310002 */ addiu $s1, $s1, 2 +/* 06CB78 7F038048 1000F550 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB7C 7F03804C A2EB000D */ sb $t3, 0xd($s7) +action93_Set_Character_Accuracy_2: +/* 06CB80 7F038050 822C0001 */ lb $t4, 1($s1) +/* 06CB84 7F038054 26520002 */ addiu $s2, $s2, 2 +/* 06CB88 7F038058 26310002 */ addiu $s1, $s1, 2 +/* 06CB8C 7F03805C 1000F54B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB90 7F038060 A2EC0002 */ sb $t4, 2($s7) +action94_Mask_Guard_Type_With_Value_2: +/* 06CB94 7F038064 02E02025 */ move $a0, $s7 +/* 06CB98 7F038068 0FC0CC86 */ jal sub_GAME_7F033218 +/* 06CB9C 7F03806C 92250001 */ lbu $a1, 1($s1) +/* 06CBA0 7F038070 26520002 */ addiu $s2, $s2, 2 +/* 06CBA4 7F038074 1000F545 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBA8 7F038078 26310002 */ addiu $s1, $s1, 2 +action95_Unmask_Guard_Type_With_Value_2: +/* 06CBAC 7F03807C 02E02025 */ move $a0, $s7 +/* 06CBB0 7F038080 0FC0CC8B */ jal sub_GAME_7F03322C +/* 06CBB4 7F038084 92250001 */ lbu $a1, 1($s1) +/* 06CBB8 7F038088 26520002 */ addiu $s2, $s2, 2 +/* 06CBBC 7F03808C 1000F53F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBC0 7F038090 26310002 */ addiu $s1, $s1, 2 +action96_If_Guard_Type_Value_Is_Set_RVL_3: +/* 06CBC4 7F038094 02E02025 */ move $a0, $s7 +/* 06CBC8 7F038098 0FC0CC91 */ jal sub_GAME_7F033244 +/* 06CBCC 7F03809C 92250001 */ lbu $a1, 1($s1) +/* 06CBD0 7F0380A0 10400007 */ beqz $v0, .L7F0380C0 +/* 06CBD4 7F0380A4 02C02025 */ move $a0, $s6 +/* 06CBD8 7F0380A8 02402825 */ move $a1, $s2 +/* 06CBDC 7F0380AC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CBE0 7F0380B0 92260002 */ lbu $a2, 2($s1) +/* 06CBE4 7F0380B4 00409025 */ move $s2, $v0 +/* 06CBE8 7F0380B8 1000F534 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBEC 7F0380BC 02C28821 */ addu $s1, $s6, $v0 +.L7F0380C0: +/* 06CBF0 7F0380C0 26520003 */ addiu $s2, $s2, 3 +/* 06CBF4 7F0380C4 1000F531 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBF8 7F0380C8 26310003 */ addiu $s1, $s1, 3 +action97_Mask_Guard_Type_Flags_With_Value_3: +/* 06CBFC 7F0380CC 02E02025 */ move $a0, $s7 +/* 06CC00 7F0380D0 92250001 */ lbu $a1, 1($s1) +/* 06CC04 7F0380D4 0FC0CC98 */ jal sub_GAME_7F033260 +/* 06CC08 7F0380D8 92260002 */ lbu $a2, 2($s1) +/* 06CC0C 7F0380DC 26520003 */ addiu $s2, $s2, 3 +/* 06CC10 7F0380E0 1000F52A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC14 7F0380E4 26310003 */ addiu $s1, $s1, 3 +action98_Unmask_Guard_Type_Flags_With_Value_3: +/* 06CC18 7F0380E8 02E02025 */ move $a0, $s7 +/* 06CC1C 7F0380EC 92250001 */ lbu $a1, 1($s1) +/* 06CC20 7F0380F0 0FC0CCA4 */ jal sub_GAME_7F033290 +/* 06CC24 7F0380F4 92260002 */ lbu $a2, 2($s1) +/* 06CC28 7F0380F8 26520003 */ addiu $s2, $s2, 3 +/* 06CC2C 7F0380FC 1000F523 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC30 7F038100 26310003 */ addiu $s1, $s1, 3 +action99_If_Guard_Type_Flags_Set_RVL_4: +/* 06CC34 7F038104 02E02025 */ move $a0, $s7 +/* 06CC38 7F038108 92250001 */ lbu $a1, 1($s1) +/* 06CC3C 7F03810C 0FC0CCB0 */ jal sub_GAME_7F0332C0 +/* 06CC40 7F038110 92260002 */ lbu $a2, 2($s1) +/* 06CC44 7F038114 10400007 */ beqz $v0, .L7F038134 +/* 06CC48 7F038118 02C02025 */ move $a0, $s6 +/* 06CC4C 7F03811C 02402825 */ move $a1, $s2 +/* 06CC50 7F038120 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CC54 7F038124 92260003 */ lbu $a2, 3($s1) +/* 06CC58 7F038128 00409025 */ move $s2, $v0 +/* 06CC5C 7F03812C 1000F517 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC60 7F038130 02C28821 */ addu $s1, $s6, $v0 +.L7F038134: +/* 06CC64 7F038134 26520004 */ addiu $s2, $s2, 4 +/* 06CC68 7F038138 1000F514 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC6C 7F03813C 26310004 */ addiu $s1, $s1, 4 +action9A_Set_Objective_Bits_5: +/* 06CC70 7F038140 92390001 */ lbu $t9, 1($s1) +/* 06CC74 7F038144 922E0002 */ lbu $t6, 2($s1) +/* 06CC78 7F038148 92290003 */ lbu $t1, 3($s1) +/* 06CC7C 7F03814C 00196E00 */ sll $t5, $t9, 0x18 +/* 06CC80 7F038150 000E7C00 */ sll $t7, $t6, 0x10 +/* 06CC84 7F038154 922C0004 */ lbu $t4, 4($s1) +/* 06CC88 7F038158 01AFC025 */ or $t8, $t5, $t7 +/* 06CC8C 7F03815C 00095200 */ sll $t2, $t1, 8 +/* 06CC90 7F038160 030A5825 */ or $t3, $t8, $t2 +/* 06CC94 7F038164 02E02025 */ move $a0, $s7 +/* 06CC98 7F038168 0FC0CCBF */ jal toggle_objective_bitflags +/* 06CC9C 7F03816C 016C2825 */ or $a1, $t3, $t4 +/* 06CCA0 7F038170 26520005 */ addiu $s2, $s2, 5 +/* 06CCA4 7F038174 1000F505 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CCA8 7F038178 26310005 */ addiu $s1, $s1, 5 +action9B_Unset_Objective_Value_5: +/* 06CCAC 7F03817C 92390001 */ lbu $t9, 1($s1) +/* 06CCB0 7F038180 922D0002 */ lbu $t5, 2($s1) +/* 06CCB4 7F038184 92380003 */ lbu $t8, 3($s1) +/* 06CCB8 7F038188 00197600 */ sll $t6, $t9, 0x18 +/* 06CCBC 7F03818C 000D7C00 */ sll $t7, $t5, 0x10 +/* 06CCC0 7F038190 922C0004 */ lbu $t4, 4($s1) +/* 06CCC4 7F038194 01CF4825 */ or $t1, $t6, $t7 +/* 06CCC8 7F038198 00185200 */ sll $t2, $t8, 8 +/* 06CCCC 7F03819C 012A5825 */ or $t3, $t1, $t2 +/* 06CCD0 7F0381A0 02E02025 */ move $a0, $s7 +/* 06CCD4 7F0381A4 0FC0CCC6 */ jal untoggle_objective_bitflags +/* 06CCD8 7F0381A8 016C2825 */ or $a1, $t3, $t4 +/* 06CCDC 7F0381AC 26520005 */ addiu $s2, $s2, 5 +/* 06CCE0 7F0381B0 1000F4F6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CCE4 7F0381B4 26310005 */ addiu $s1, $s1, 5 +action9C_Check_If_Objective_Value_Return_Loop_If_So_6: +/* 06CCE8 7F0381B8 92390001 */ lbu $t9, 1($s1) +/* 06CCEC 7F0381BC 922E0002 */ lbu $t6, 2($s1) +/* 06CCF0 7F0381C0 92290003 */ lbu $t1, 3($s1) +/* 06CCF4 7F0381C4 00196E00 */ sll $t5, $t9, 0x18 +/* 06CCF8 7F0381C8 000E7C00 */ sll $t7, $t6, 0x10 +/* 06CCFC 7F0381CC 922C0004 */ lbu $t4, 4($s1) +/* 06CD00 7F0381D0 01AFC025 */ or $t8, $t5, $t7 +/* 06CD04 7F0381D4 00095200 */ sll $t2, $t1, 8 +/* 06CD08 7F0381D8 030A5825 */ or $t3, $t8, $t2 +/* 06CD0C 7F0381DC 02E02025 */ move $a0, $s7 +/* 06CD10 7F0381E0 0FC0CCCE */ jal check_if_objective_bitflags_set +/* 06CD14 7F0381E4 016C2825 */ or $a1, $t3, $t4 +/* 06CD18 7F0381E8 10400007 */ beqz $v0, .L7F038208 +/* 06CD1C 7F0381EC 02C02025 */ move $a0, $s6 +/* 06CD20 7F0381F0 02402825 */ move $a1, $s2 +/* 06CD24 7F0381F4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CD28 7F0381F8 92260005 */ lbu $a2, 5($s1) +/* 06CD2C 7F0381FC 00409025 */ move $s2, $v0 +/* 06CD30 7F038200 1000F4E2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CD34 7F038204 02C28821 */ addu $s1, $s6, $v0 +.L7F038208: +/* 06CD38 7F038208 26520006 */ addiu $s2, $s2, 6 +/* 06CD3C 7F03820C 1000F4DF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CD40 7F038210 26310006 */ addiu $s1, $s1, 6 +action9D_Set_Guard_Bit_Tags_5: +/* 06CD44 7F038214 92390001 */ lbu $t9, 1($s1) +/* 06CD48 7F038218 922D0002 */ lbu $t5, 2($s1) +/* 06CD4C 7F03821C 92380003 */ lbu $t8, 3($s1) +/* 06CD50 7F038220 00197600 */ sll $t6, $t9, 0x18 +/* 06CD54 7F038224 922C0004 */ lbu $t4, 4($s1) +/* 06CD58 7F038228 000D7C00 */ sll $t7, $t5, 0x10 +/* 06CD5C 7F03822C 8EF90014 */ lw $t9, 0x14($s7) +/* 06CD60 7F038230 01CF4825 */ or $t1, $t6, $t7 +/* 06CD64 7F038234 00185200 */ sll $t2, $t8, 8 +/* 06CD68 7F038238 012A5825 */ or $t3, $t1, $t2 +/* 06CD6C 7F03823C 016C1025 */ or $v0, $t3, $t4 +/* 06CD70 7F038240 03226825 */ or $t5, $t9, $v0 +/* 06CD74 7F038244 AEED0014 */ sw $t5, 0x14($s7) +/* 06CD78 7F038248 26520005 */ addiu $s2, $s2, 5 +/* 06CD7C 7F03824C 1000F4CF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CD80 7F038250 26310005 */ addiu $s1, $s1, 5 +action9E_Unset_Guard_Bit_Tags_5: +/* 06CD84 7F038254 922E0001 */ lbu $t6, 1($s1) +/* 06CD88 7F038258 92380002 */ lbu $t8, 2($s1) +/* 06CD8C 7F03825C 922B0003 */ lbu $t3, 3($s1) +/* 06CD90 7F038260 922D0004 */ lbu $t5, 4($s1) +/* 06CD94 7F038264 000E7E00 */ sll $t7, $t6, 0x18 +/* 06CD98 7F038268 00184C00 */ sll $t1, $t8, 0x10 +/* 06CD9C 7F03826C 01E95025 */ or $t2, $t7, $t1 +/* 06CDA0 7F038270 000B6200 */ sll $t4, $t3, 8 +/* 06CDA4 7F038274 8EEE0014 */ lw $t6, 0x14($s7) +/* 06CDA8 7F038278 014CC825 */ or $t9, $t2, $t4 +/* 06CDAC 7F03827C 032D1025 */ or $v0, $t9, $t5 +/* 06CDB0 7F038280 0040C027 */ not $t8, $v0 +/* 06CDB4 7F038284 01D87824 */ and $t7, $t6, $t8 +/* 06CDB8 7F038288 AEEF0014 */ sw $t7, 0x14($s7) +/* 06CDBC 7F03828C 26520005 */ addiu $s2, $s2, 5 +/* 06CDC0 7F038290 1000F4BE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CDC4 7F038294 26310005 */ addiu $s1, $s1, 5 +action9F_Check_Guard_Bits_If_Same_RVL_6: +/* 06CDC8 7F038298 92290001 */ lbu $t1, 1($s1) +/* 06CDCC 7F03829C 922A0002 */ lbu $t2, 2($s1) +/* 06CDD0 7F0382A0 922D0003 */ lbu $t5, 3($s1) +/* 06CDD4 7F0382A4 00095E00 */ sll $t3, $t1, 0x18 +/* 06CDD8 7F0382A8 922F0004 */ lbu $t7, 4($s1) +/* 06CDDC 7F0382AC 000A6400 */ sll $t4, $t2, 0x10 +/* 06CDE0 7F0382B0 8EE90014 */ lw $t1, 0x14($s7) +/* 06CDE4 7F0382B4 016CC825 */ or $t9, $t3, $t4 +/* 06CDE8 7F0382B8 000D7200 */ sll $t6, $t5, 8 +/* 06CDEC 7F0382BC 032EC025 */ or $t8, $t9, $t6 +/* 06CDF0 7F0382C0 030F1025 */ or $v0, $t8, $t7 +/* 06CDF4 7F0382C4 01225024 */ and $t2, $t1, $v0 +/* 06CDF8 7F0382C8 144A0007 */ bne $v0, $t2, .L7F0382E8 +/* 06CDFC 7F0382CC 02C02025 */ move $a0, $s6 +/* 06CE00 7F0382D0 02402825 */ move $a1, $s2 +/* 06CE04 7F0382D4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CE08 7F0382D8 92260005 */ lbu $a2, 5($s1) +/* 06CE0C 7F0382DC 00409025 */ move $s2, $v0 +/* 06CE10 7F0382E0 1000F4AA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CE14 7F0382E4 02C28821 */ addu $s1, $s6, $v0 +.L7F0382E8: +/* 06CE18 7F0382E8 26520006 */ addiu $s2, $s2, 6 +/* 06CE1C 7F0382EC 1000F4A7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CE20 7F0382F0 26310006 */ addiu $s1, $s1, 6 +actionA0_Set_Guard_ID_Bits_6: +/* 06CE24 7F0382F4 922B0002 */ lbu $t3, 2($s1) +/* 06CE28 7F0382F8 922D0003 */ lbu $t5, 3($s1) +/* 06CE2C 7F0382FC 92380004 */ lbu $t8, 4($s1) +/* 06CE30 7F038300 000B6600 */ sll $t4, $t3, 0x18 +/* 06CE34 7F038304 000DCC00 */ sll $t9, $t5, 0x10 +/* 06CE38 7F038308 922A0005 */ lbu $t2, 5($s1) +/* 06CE3C 7F03830C 01997025 */ or $t6, $t4, $t9 +/* 06CE40 7F038310 00187A00 */ sll $t7, $t8, 8 +/* 06CE44 7F038314 01CF4825 */ or $t1, $t6, $t7 +/* 06CE48 7F038318 02E02025 */ move $a0, $s7 +/* 06CE4C 7F03831C 92250001 */ lbu $a1, 1($s1) +/* 06CE50 7F038320 0FC0CC10 */ jal get_handle_for_guard_id +/* 06CE54 7F038324 012A8025 */ or $s0, $t1, $t2 +/* 06CE58 7F038328 10400004 */ beqz $v0, .L7F03833C +/* 06CE5C 7F03832C 26520006 */ addiu $s2, $s2, 6 +/* 06CE60 7F038330 8C4B0014 */ lw $t3, 0x14($v0) +/* 06CE64 7F038334 01706825 */ or $t5, $t3, $s0 +/* 06CE68 7F038338 AC4D0014 */ sw $t5, 0x14($v0) +.L7F03833C: +/* 06CE6C 7F03833C 1000F493 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CE70 7F038340 26310006 */ addiu $s1, $s1, 6 +actionA1_Unset_Guard_ID_Bits_6: +/* 06CE74 7F038344 922C0002 */ lbu $t4, 2($s1) +/* 06CE78 7F038348 92380003 */ lbu $t8, 3($s1) +/* 06CE7C 7F03834C 92290004 */ lbu $t1, 4($s1) +/* 06CE80 7F038350 000CCE00 */ sll $t9, $t4, 0x18 +/* 06CE84 7F038354 00187400 */ sll $t6, $t8, 0x10 +/* 06CE88 7F038358 922D0005 */ lbu $t5, 5($s1) +/* 06CE8C 7F03835C 032E7825 */ or $t7, $t9, $t6 +/* 06CE90 7F038360 00095200 */ sll $t2, $t1, 8 +/* 06CE94 7F038364 01EA5825 */ or $t3, $t7, $t2 +/* 06CE98 7F038368 02E02025 */ move $a0, $s7 +/* 06CE9C 7F03836C 92250001 */ lbu $a1, 1($s1) +/* 06CEA0 7F038370 0FC0CC10 */ jal get_handle_for_guard_id +/* 06CEA4 7F038374 016D8025 */ or $s0, $t3, $t5 +/* 06CEA8 7F038378 10400005 */ beqz $v0, .L7F038390 +/* 06CEAC 7F03837C 26520006 */ addiu $s2, $s2, 6 +/* 06CEB0 7F038380 8C4C0014 */ lw $t4, 0x14($v0) +/* 06CEB4 7F038384 0200C027 */ not $t8, $s0 +/* 06CEB8 7F038388 0198C824 */ and $t9, $t4, $t8 +/* 06CEBC 7F03838C AC590014 */ sw $t9, 0x14($v0) +.L7F038390: +/* 06CEC0 7F038390 1000F47E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CEC4 7F038394 26310006 */ addiu $s1, $s1, 6 +actionA2_Check_Guard_Bits_If_Same_RVL_7: +/* 06CEC8 7F038398 922E0002 */ lbu $t6, 2($s1) +/* 06CECC 7F03839C 922F0003 */ lbu $t7, 3($s1) +/* 06CED0 7F0383A0 922D0004 */ lbu $t5, 4($s1) +/* 06CED4 7F0383A4 000E4E00 */ sll $t1, $t6, 0x18 +/* 06CED8 7F0383A8 000F5400 */ sll $t2, $t7, 0x10 +/* 06CEDC 7F0383AC 92390005 */ lbu $t9, 5($s1) +/* 06CEE0 7F0383B0 012A5825 */ or $t3, $t1, $t2 +/* 06CEE4 7F0383B4 000D6200 */ sll $t4, $t5, 8 +/* 06CEE8 7F0383B8 016CC025 */ or $t8, $t3, $t4 +/* 06CEEC 7F0383BC 02E02025 */ move $a0, $s7 +/* 06CEF0 7F0383C0 92250001 */ lbu $a1, 1($s1) +/* 06CEF4 7F0383C4 0FC0CC10 */ jal get_handle_for_guard_id +/* 06CEF8 7F0383C8 03198025 */ or $s0, $t8, $t9 +/* 06CEFC 7F0383CC 5040000D */ beql $v0, $zero, .L7F038404 +/* 06CF00 7F0383D0 26520007 */ addiu $s2, $s2, 7 +/* 06CF04 7F0383D4 8C4E0014 */ lw $t6, 0x14($v0) +/* 06CF08 7F0383D8 02C02025 */ move $a0, $s6 +/* 06CF0C 7F0383DC 02402825 */ move $a1, $s2 +/* 06CF10 7F0383E0 01D07824 */ and $t7, $t6, $s0 +/* 06CF14 7F0383E4 560F0007 */ bnel $s0, $t7, .L7F038404 +/* 06CF18 7F0383E8 26520007 */ addiu $s2, $s2, 7 +/* 06CF1C 7F0383EC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CF20 7F0383F0 92260006 */ lbu $a2, 6($s1) +/* 06CF24 7F0383F4 00409025 */ move $s2, $v0 +/* 06CF28 7F0383F8 1000F464 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CF2C 7F0383FC 02C28821 */ addu $s1, $s6, $v0 +/* 06CF30 7F038400 26520007 */ addiu $s2, $s2, 7 +.L7F038404: +/* 06CF34 7F038404 1000F461 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CF38 7F038408 26310007 */ addiu $s1, $s1, 7 +actionA3_Set_State_Bits_16_Type_Object_6: +/* 06CF3C 7F03840C 92290002 */ lbu $t1, 2($s1) +/* 06CF40 7F038410 922D0003 */ lbu $t5, 3($s1) +/* 06CF44 7F038414 92380004 */ lbu $t8, 4($s1) +/* 06CF48 7F038418 00095600 */ sll $t2, $t1, 0x18 +/* 06CF4C 7F03841C 000D5C00 */ sll $t3, $t5, 0x10 +/* 06CF50 7F038420 922F0005 */ lbu $t7, 5($s1) +/* 06CF54 7F038424 014B6025 */ or $t4, $t2, $t3 +/* 06CF58 7F038428 0018CA00 */ sll $t9, $t8, 8 +/* 06CF5C 7F03842C 01997025 */ or $t6, $t4, $t9 +/* 06CF60 7F038430 92240001 */ lbu $a0, 1($s1) +/* 06CF64 7F038434 0FC15C30 */ jal get_handle_to_tagged_object +/* 06CF68 7F038438 01CF8025 */ or $s0, $t6, $t7 +/* 06CF6C 7F03843C 10400007 */ beqz $v0, .L7F03845C +/* 06CF70 7F038440 26520006 */ addiu $s2, $s2, 6 +/* 06CF74 7F038444 8C490010 */ lw $t1, 0x10($v0) +/* 06CF78 7F038448 11200004 */ beqz $t1, .L7F03845C +/* 06CF7C 7F03844C 00000000 */ nop +/* 06CF80 7F038450 8C4D0008 */ lw $t5, 8($v0) +/* 06CF84 7F038454 01B05025 */ or $t2, $t5, $s0 +/* 06CF88 7F038458 AC4A0008 */ sw $t2, 8($v0) +.L7F03845C: +/* 06CF8C 7F03845C 1000F44B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CF90 7F038460 26310006 */ addiu $s1, $s1, 6 +actionA4_Unset_State_Bits_16_Type_Object_6: +/* 06CF94 7F038464 922B0002 */ lbu $t3, 2($s1) +/* 06CF98 7F038468 922C0003 */ lbu $t4, 3($s1) +/* 06CF9C 7F03846C 922F0004 */ lbu $t7, 4($s1) +/* 06CFA0 7F038470 000BC600 */ sll $t8, $t3, 0x18 +/* 06CFA4 7F038474 000CCC00 */ sll $t9, $t4, 0x10 +/* 06CFA8 7F038478 922A0005 */ lbu $t2, 5($s1) +/* 06CFAC 7F03847C 03197025 */ or $t6, $t8, $t9 +/* 06CFB0 7F038480 000F4A00 */ sll $t1, $t7, 8 +/* 06CFB4 7F038484 01C96825 */ or $t5, $t6, $t1 +/* 06CFB8 7F038488 92240001 */ lbu $a0, 1($s1) +/* 06CFBC 7F03848C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06CFC0 7F038490 01AA8025 */ or $s0, $t5, $t2 +/* 06CFC4 7F038494 10400008 */ beqz $v0, .L7F0384B8 +/* 06CFC8 7F038498 26520006 */ addiu $s2, $s2, 6 +/* 06CFCC 7F03849C 8C4B0010 */ lw $t3, 0x10($v0) +/* 06CFD0 7F0384A0 11600005 */ beqz $t3, .L7F0384B8 +/* 06CFD4 7F0384A4 00000000 */ nop +/* 06CFD8 7F0384A8 8C4C0008 */ lw $t4, 8($v0) +/* 06CFDC 7F0384AC 0200C027 */ not $t8, $s0 +/* 06CFE0 7F0384B0 0198C824 */ and $t9, $t4, $t8 +/* 06CFE4 7F0384B4 AC590008 */ sw $t9, 8($v0) +.L7F0384B8: +/* 06CFE8 7F0384B8 1000F434 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CFEC 7F0384BC 26310006 */ addiu $s1, $s1, 6 +actionA5_Check_State_Bits_16_Type_Object_If_Same_RVL_7: +/* 06CFF0 7F0384C0 922F0002 */ lbu $t7, 2($s1) +/* 06CFF4 7F0384C4 92290003 */ lbu $t1, 3($s1) +/* 06CFF8 7F0384C8 922B0004 */ lbu $t3, 4($s1) +/* 06CFFC 7F0384CC 000F7600 */ sll $t6, $t7, 0x18 +/* 06D000 7F0384D0 00096C00 */ sll $t5, $t1, 0x10 +/* 06D004 7F0384D4 92390005 */ lbu $t9, 5($s1) +/* 06D008 7F0384D8 01CD5025 */ or $t2, $t6, $t5 +/* 06D00C 7F0384DC 000B6200 */ sll $t4, $t3, 8 +/* 06D010 7F0384E0 014CC025 */ or $t8, $t2, $t4 +/* 06D014 7F0384E4 92240001 */ lbu $a0, 1($s1) +/* 06D018 7F0384E8 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D01C 7F0384EC 03198025 */ or $s0, $t8, $t9 +/* 06D020 7F0384F0 50400010 */ beql $v0, $zero, .L7F038534 +/* 06D024 7F0384F4 26520007 */ addiu $s2, $s2, 7 +/* 06D028 7F0384F8 8C4F0010 */ lw $t7, 0x10($v0) +/* 06D02C 7F0384FC 51E0000D */ beql $t7, $zero, .L7F038534 +/* 06D030 7F038500 26520007 */ addiu $s2, $s2, 7 +/* 06D034 7F038504 8C490008 */ lw $t1, 8($v0) +/* 06D038 7F038508 02C02025 */ move $a0, $s6 +/* 06D03C 7F03850C 02402825 */ move $a1, $s2 +/* 06D040 7F038510 01307024 */ and $t6, $t1, $s0 +/* 06D044 7F038514 560E0007 */ bnel $s0, $t6, .L7F038534 +/* 06D048 7F038518 26520007 */ addiu $s2, $s2, 7 +/* 06D04C 7F03851C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D050 7F038520 92260006 */ lbu $a2, 6($s1) +/* 06D054 7F038524 00409025 */ move $s2, $v0 +/* 06D058 7F038528 1000F418 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D05C 7F03852C 02C28821 */ addu $s1, $s6, $v0 +/* 06D060 7F038530 26520007 */ addiu $s2, $s2, 7 +.L7F038534: +/* 06D064 7F038534 1000F415 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D068 7F038538 26310007 */ addiu $s1, $s1, 7 +actionA6_Set_16_Object_States_More_6: +/* 06D06C 7F03853C 922D0002 */ lbu $t5, 2($s1) +/* 06D070 7F038540 922A0003 */ lbu $t2, 3($s1) +/* 06D074 7F038544 92390004 */ lbu $t9, 4($s1) +/* 06D078 7F038548 000D5E00 */ sll $t3, $t5, 0x18 +/* 06D07C 7F03854C 000A6400 */ sll $t4, $t2, 0x10 +/* 06D080 7F038550 922E0005 */ lbu $t6, 5($s1) +/* 06D084 7F038554 016CC025 */ or $t8, $t3, $t4 +/* 06D088 7F038558 00197A00 */ sll $t7, $t9, 8 +/* 06D08C 7F03855C 030F4825 */ or $t1, $t8, $t7 +/* 06D090 7F038560 92240001 */ lbu $a0, 1($s1) +/* 06D094 7F038564 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D098 7F038568 012E8025 */ or $s0, $t1, $t6 +/* 06D09C 7F03856C 10400007 */ beqz $v0, .L7F03858C +/* 06D0A0 7F038570 26520006 */ addiu $s2, $s2, 6 +/* 06D0A4 7F038574 8C4D0010 */ lw $t5, 0x10($v0) +/* 06D0A8 7F038578 11A00004 */ beqz $t5, .L7F03858C +/* 06D0AC 7F03857C 00000000 */ nop +/* 06D0B0 7F038580 8C4A000C */ lw $t2, 0xc($v0) +/* 06D0B4 7F038584 01505825 */ or $t3, $t2, $s0 +/* 06D0B8 7F038588 AC4B000C */ sw $t3, 0xc($v0) +.L7F03858C: +/* 06D0BC 7F03858C 1000F3FF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D0C0 7F038590 26310006 */ addiu $s1, $s1, 6 +actionA7_Unset_16_Object_States_More_6: +/* 06D0C4 7F038594 922C0002 */ lbu $t4, 2($s1) +/* 06D0C8 7F038598 92380003 */ lbu $t8, 3($s1) +/* 06D0CC 7F03859C 922E0004 */ lbu $t6, 4($s1) +/* 06D0D0 7F0385A0 000CCE00 */ sll $t9, $t4, 0x18 +/* 06D0D4 7F0385A4 00187C00 */ sll $t7, $t8, 0x10 +/* 06D0D8 7F0385A8 922B0005 */ lbu $t3, 5($s1) +/* 06D0DC 7F0385AC 032F4825 */ or $t1, $t9, $t7 +/* 06D0E0 7F0385B0 000E6A00 */ sll $t5, $t6, 8 +/* 06D0E4 7F0385B4 012D5025 */ or $t2, $t1, $t5 +/* 06D0E8 7F0385B8 92240001 */ lbu $a0, 1($s1) +/* 06D0EC 7F0385BC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D0F0 7F0385C0 014B8025 */ or $s0, $t2, $t3 +/* 06D0F4 7F0385C4 10400008 */ beqz $v0, .L7F0385E8 +/* 06D0F8 7F0385C8 26520006 */ addiu $s2, $s2, 6 +/* 06D0FC 7F0385CC 8C4C0010 */ lw $t4, 0x10($v0) +/* 06D100 7F0385D0 11800005 */ beqz $t4, .L7F0385E8 +/* 06D104 7F0385D4 00000000 */ nop +/* 06D108 7F0385D8 8C58000C */ lw $t8, 0xc($v0) +/* 06D10C 7F0385DC 0200C827 */ not $t9, $s0 +/* 06D110 7F0385E0 03197824 */ and $t7, $t8, $t9 +/* 06D114 7F0385E4 AC4F000C */ sw $t7, 0xc($v0) +.L7F0385E8: +/* 06D118 7F0385E8 1000F3E8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D11C 7F0385EC 26310006 */ addiu $s1, $s1, 6 +actionA8_Check_16_Object_States_More_If_Same_RVL_7: +/* 06D120 7F0385F0 922E0002 */ lbu $t6, 2($s1) +/* 06D124 7F0385F4 922D0003 */ lbu $t5, 3($s1) +/* 06D128 7F0385F8 922C0004 */ lbu $t4, 4($s1) +/* 06D12C 7F0385FC 000E4E00 */ sll $t1, $t6, 0x18 +/* 06D130 7F038600 000D5400 */ sll $t2, $t5, 0x10 +/* 06D134 7F038604 922F0005 */ lbu $t7, 5($s1) +/* 06D138 7F038608 012A5825 */ or $t3, $t1, $t2 +/* 06D13C 7F03860C 000CC200 */ sll $t8, $t4, 8 +/* 06D140 7F038610 0178C825 */ or $t9, $t3, $t8 +/* 06D144 7F038614 92240001 */ lbu $a0, 1($s1) +/* 06D148 7F038618 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D14C 7F03861C 032F8025 */ or $s0, $t9, $t7 +/* 06D150 7F038620 50400010 */ beql $v0, $zero, .L7F038664 +/* 06D154 7F038624 26520007 */ addiu $s2, $s2, 7 +/* 06D158 7F038628 8C4E0010 */ lw $t6, 0x10($v0) +/* 06D15C 7F03862C 51C0000D */ beql $t6, $zero, .L7F038664 +/* 06D160 7F038630 26520007 */ addiu $s2, $s2, 7 +/* 06D164 7F038634 8C4D000C */ lw $t5, 0xc($v0) +/* 06D168 7F038638 02C02025 */ move $a0, $s6 +/* 06D16C 7F03863C 02402825 */ move $a1, $s2 +/* 06D170 7F038640 01B04824 */ and $t1, $t5, $s0 +/* 06D174 7F038644 56090007 */ bnel $s0, $t1, .L7F038664 +/* 06D178 7F038648 26520007 */ addiu $s2, $s2, 7 +/* 06D17C 7F03864C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D180 7F038650 92260006 */ lbu $a2, 6($s1) +/* 06D184 7F038654 00409025 */ move $s2, $v0 +/* 06D188 7F038658 1000F3CC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D18C 7F03865C 02C28821 */ addu $s1, $s6, $v0 +/* 06D190 7F038660 26520007 */ addiu $s2, $s2, 7 +.L7F038664: +/* 06D194 7F038664 1000F3C9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D198 7F038668 26310007 */ addiu $s1, $s1, 7 +actionA9_Sets_To_Guard_ID_Fc_Current_Guard_2: +/* 06D19C 7F03866C 02E02025 */ move $a0, $s7 +/* 06D1A0 7F038670 0FC0CF3D */ jal sub_GAME_7F033CF4 +/* 06D1A4 7F038674 92250001 */ lbu $a1, 1($s1) +/* 06D1A8 7F038678 26520002 */ addiu $s2, $s2, 2 +/* 06D1AC 7F03867C 1000F3C3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D1B0 7F038680 26310002 */ addiu $s1, $s1, 2 +actionAA_Sets_FC_Value_For_Guard_ID_To_Guard_ID_3: +/* 06D1B4 7F038684 02E02025 */ move $a0, $s7 +/* 06D1B8 7F038688 92250001 */ lbu $a1, 1($s1) +/* 06D1BC 7F03868C 0FC0CF47 */ jal sub_GAME_7F033D1C +/* 06D1C0 7F038690 92260002 */ lbu $a2, 2($s1) +/* 06D1C4 7F038694 26520003 */ addiu $s2, $s2, 3 +/* 06D1C8 7F038698 1000F3BC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D1CC 7F03869C 26310003 */ addiu $s1, $s1, 3 +actionAB_Set_Current_Guards_2328_Value_To_Preset_3: +/* 06D1D0 7F0386A0 922A0001 */ lbu $t2, 1($s1) +/* 06D1D4 7F0386A4 922B0002 */ lbu $t3, 2($s1) +/* 06D1D8 7F0386A8 8FB907AC */ lw $t9, 0x7ac($sp) +/* 06D1DC 7F0386AC 000A6200 */ sll $t4, $t2, 8 +/* 06D1E0 7F0386B0 018B1025 */ or $v0, $t4, $t3 +/* 06D1E4 7F0386B4 3058FFFF */ andi $t8, $v0, 0xffff +/* 06D1E8 7F0386B8 12E00007 */ beqz $s7, .L7F0386D8 +/* 06D1EC 7F0386BC 03001025 */ move $v0, $t8 +/* 06D1F0 7F0386C0 02E02025 */ move $a0, $s7 +/* 06D1F4 7F0386C4 0FC0CF57 */ jal sub_GAME_7F033D5C +/* 06D1F8 7F0386C8 03002825 */ move $a1, $t8 +/* 06D1FC 7F0386CC 26520003 */ addiu $s2, $s2, 3 +/* 06D200 7F0386D0 1000F3AE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D204 7F0386D4 26310003 */ addiu $s1, $s1, 3 +.L7F0386D8: +/* 06D208 7F0386D8 13200002 */ beqz $t9, .L7F0386E4 +/* 06D20C 7F0386DC 26520003 */ addiu $s2, $s2, 3 +/* 06D210 7F0386E0 A7220006 */ sh $v0, 6($t9) +.L7F0386E4: +/* 06D214 7F0386E4 1000F3A9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D218 7F0386E8 26310003 */ addiu $s1, $s1, 3 +actionAC_Set_Guard_ID_numS_2328_Value_To_Preset_4: +/* 06D21C 7F0386EC 922F0002 */ lbu $t7, 2($s1) +/* 06D220 7F0386F0 922D0003 */ lbu $t5, 3($s1) +/* 06D224 7F0386F4 02E02025 */ move $a0, $s7 +/* 06D228 7F0386F8 000F7200 */ sll $t6, $t7, 8 +/* 06D22C 7F0386FC 01CD1025 */ or $v0, $t6, $t5 +/* 06D230 7F038700 3046FFFF */ andi $a2, $v0, 0xffff +/* 06D234 7F038704 0FC0CF61 */ jal sub_GAME_7F033D84 +/* 06D238 7F038708 92250001 */ lbu $a1, 1($s1) +/* 06D23C 7F03870C 26520004 */ addiu $s2, $s2, 4 +/* 06D240 7F038710 1000F39E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D244 7F038714 26310004 */ addiu $s1, $s1, 4 +actionAD_Debug_Comment_20: +/* 06D248 7F038718 02C02025 */ move $a0, $s6 +/* 06D24C 7F03871C 0FC0D27F */ jal get_length_of_action_block +/* 06D250 7F038720 02402825 */ move $a1, $s2 +/* 06D254 7F038724 02429021 */ addu $s2, $s2, $v0 +/* 06D258 7F038728 1000F398 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D25C 7F03872C 02D28821 */ addu $s1, $s6, $s2 +actionAE_Reset_Cycle_Counter_And_Enable_It_1: +/* 06D260 7F038730 0FC0CCF1 */ jal reset_and_start_loop_counter +/* 06D264 7F038734 02E02025 */ move $a0, $s7 +/* 06D268 7F038738 26520001 */ addiu $s2, $s2, 1 +/* 06D26C 7F03873C 1000F393 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D270 7F038740 26310001 */ addiu $s1, $s1, 1 +actionAF_Reset_Cycle_Counter_1: +/* 06D274 7F038744 AEE00110 */ sw $zero, 0x110($s7) +/* 06D278 7F038748 26520001 */ addiu $s2, $s2, 1 +/* 06D27C 7F03874C 1000F38F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D280 7F038750 26310001 */ addiu $s1, $s1, 1 +actionB0_Disable_Cycle_Counter_1: +/* 06D284 7F038754 96EA0012 */ lhu $t2, 0x12($s7) +/* 06D288 7F038758 26520001 */ addiu $s2, $s2, 1 +/* 06D28C 7F03875C 26310001 */ addiu $s1, $s1, 1 +/* 06D290 7F038760 314CFFBF */ andi $t4, $t2, 0xffbf +/* 06D294 7F038764 1000F389 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D298 7F038768 A6EC0012 */ sh $t4, 0x12($s7) +actionB1_Enable_Cycle_Counter_1: +/* 06D29C 7F03876C 96EB0012 */ lhu $t3, 0x12($s7) +/* 06D2A0 7F038770 26520001 */ addiu $s2, $s2, 1 +/* 06D2A4 7F038774 26310001 */ addiu $s1, $s1, 1 +/* 06D2A8 7F038778 35780040 */ ori $t8, $t3, 0x40 +/* 06D2AC 7F03877C 1000F383 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D2B0 7F038780 A6F80012 */ sh $t8, 0x12($s7) +actionB2_Check_Cycle_Counter_Enable_Status_2: +/* 06D2B4 7F038784 96F90012 */ lhu $t9, 0x12($s7) +/* 06D2B8 7F038788 02C02025 */ move $a0, $s6 +/* 06D2BC 7F03878C 02402825 */ move $a1, $s2 +/* 06D2C0 7F038790 332F0040 */ andi $t7, $t9, 0x40 +/* 06D2C4 7F038794 55E00007 */ bnezl $t7, .L7F0387B4 +/* 06D2C8 7F038798 26520002 */ addiu $s2, $s2, 2 +/* 06D2CC 7F03879C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D2D0 7F0387A0 92260001 */ lbu $a2, 1($s1) +/* 06D2D4 7F0387A4 00409025 */ move $s2, $v0 +/* 06D2D8 7F0387A8 1000F378 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D2DC 7F0387AC 02C28821 */ addu $s1, $s6, $v0 +/* 06D2E0 7F0387B0 26520002 */ addiu $s2, $s2, 2 +.L7F0387B4: +/* 06D2E4 7F0387B4 1000F375 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D2E8 7F0387B8 26310002 */ addiu $s1, $s1, 2 +actionB3_If_Cycle_Counter_LTV_RVL_5: +/* 06D2EC 7F0387BC 922E0001 */ lbu $t6, 1($s1) +/* 06D2F0 7F0387C0 92290002 */ lbu $t1, 2($s1) +/* 06D2F4 7F0387C4 922B0003 */ lbu $t3, 3($s1) +/* 06D2F8 7F0387C8 000E6C00 */ sll $t5, $t6, 0x10 +/* 06D2FC 7F0387CC 00095200 */ sll $t2, $t1, 8 +/* 06D300 7F0387D0 01AA6025 */ or $t4, $t5, $t2 +/* 06D304 7F0387D4 018BC025 */ or $t8, $t4, $t3 +/* 06D308 7F0387D8 44985000 */ mtc1 $t8, $f10 +/* 06D30C 7F0387DC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06D310 7F0387E0 07010004 */ bgez $t8, .L7F0387F4 +/* 06D314 7F0387E4 468054A0 */ cvt.s.w $f18, $f10 +/* 06D318 7F0387E8 44813000 */ mtc1 $at, $f6 +/* 06D31C 7F0387EC 00000000 */ nop +/* 06D320 7F0387F0 46069480 */ add.s $f18, $f18, $f6 +.L7F0387F4: +/* 06D324 7F0387F4 46169403 */ div.s $f16, $f18, $f22 +/* 06D328 7F0387F8 02E02025 */ move $a0, $s7 +/* 06D32C 7F0387FC 0FC0CCF6 */ jal get_loop_counter_time_in_seconds +/* 06D330 7F038800 E7B002B0 */ swc1 $f16, 0x2b0($sp) +/* 06D334 7F038804 C7A802B0 */ lwc1 $f8, 0x2b0($sp) +/* 06D338 7F038808 02C02025 */ move $a0, $s6 +/* 06D33C 7F03880C 02402825 */ move $a1, $s2 +/* 06D340 7F038810 4608003C */ c.lt.s $f0, $f8 +/* 06D344 7F038814 00000000 */ nop +/* 06D348 7F038818 45020007 */ bc1fl .L7F038838 +/* 06D34C 7F03881C 26520005 */ addiu $s2, $s2, 5 +/* 06D350 7F038820 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D354 7F038824 92260004 */ lbu $a2, 4($s1) +/* 06D358 7F038828 00409025 */ move $s2, $v0 +/* 06D35C 7F03882C 1000F357 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D360 7F038830 02C28821 */ addu $s1, $s6, $v0 +/* 06D364 7F038834 26520005 */ addiu $s2, $s2, 5 +.L7F038838: +/* 06D368 7F038838 1000F354 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D36C 7F03883C 26310005 */ addiu $s1, $s1, 5 +actionB4_If_Cycle_Counter_GTV_RVL_5: +/* 06D370 7F038840 92390001 */ lbu $t9, 1($s1) +/* 06D374 7F038844 922E0002 */ lbu $t6, 2($s1) +/* 06D378 7F038848 922A0003 */ lbu $t2, 3($s1) +/* 06D37C 7F03884C 00197C00 */ sll $t7, $t9, 0x10 +/* 06D380 7F038850 000E4A00 */ sll $t1, $t6, 8 +/* 06D384 7F038854 01E96825 */ or $t5, $t7, $t1 +/* 06D388 7F038858 01AA6025 */ or $t4, $t5, $t2 +/* 06D38C 7F03885C 448C2000 */ mtc1 $t4, $f4 +/* 06D390 7F038860 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06D394 7F038864 05810004 */ bgez $t4, .L7F038878 +/* 06D398 7F038868 468022A0 */ cvt.s.w $f10, $f4 +/* 06D39C 7F03886C 44813000 */ mtc1 $at, $f6 +/* 06D3A0 7F038870 00000000 */ nop +/* 06D3A4 7F038874 46065280 */ add.s $f10, $f10, $f6 +.L7F038878: +/* 06D3A8 7F038878 46165483 */ div.s $f18, $f10, $f22 +/* 06D3AC 7F03887C 02E02025 */ move $a0, $s7 +/* 06D3B0 7F038880 0FC0CCF6 */ jal get_loop_counter_time_in_seconds +/* 06D3B4 7F038884 E7B202A8 */ swc1 $f18, 0x2a8($sp) +/* 06D3B8 7F038888 C7B002A8 */ lwc1 $f16, 0x2a8($sp) +/* 06D3BC 7F03888C 02C02025 */ move $a0, $s6 +/* 06D3C0 7F038890 02402825 */ move $a1, $s2 +/* 06D3C4 7F038894 4600803C */ c.lt.s $f16, $f0 +/* 06D3C8 7F038898 00000000 */ nop +/* 06D3CC 7F03889C 45020007 */ bc1fl .L7F0388BC +/* 06D3D0 7F0388A0 26520005 */ addiu $s2, $s2, 5 +/* 06D3D4 7F0388A4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D3D8 7F0388A8 92260004 */ lbu $a2, 4($s1) +/* 06D3DC 7F0388AC 00409025 */ move $s2, $v0 +/* 06D3E0 7F0388B0 1000F336 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D3E4 7F0388B4 02C28821 */ addu $s1, $s6, $v0 +/* 06D3E8 7F0388B8 26520005 */ addiu $s2, $s2, 5 +.L7F0388BC: +/* 06D3EC 7F0388BC 1000F333 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D3F0 7F0388C0 26310005 */ addiu $s1, $s1, 5 +actionB5_Show_Timer_1: +/* 06D3F4 7F0388C4 24040001 */ li $a0, 1 +/* 06D3F8 7F0388C8 0FC15858 */ jal set_unset_clock_lock_bits +/* 06D3FC 7F0388CC 24050001 */ li $a1, 1 +/* 06D400 7F0388D0 26520001 */ addiu $s2, $s2, 1 +/* 06D404 7F0388D4 1000F32D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D408 7F0388D8 26310001 */ addiu $s1, $s1, 1 +actionB6_Hide_Timer_Silent_Countdown_1: +/* 06D40C 7F0388DC 24040001 */ li $a0, 1 +/* 06D410 7F0388E0 0FC15858 */ jal set_unset_clock_lock_bits +/* 06D414 7F0388E4 00002825 */ move $a1, $zero +/* 06D418 7F0388E8 26520001 */ addiu $s2, $s2, 1 +/* 06D41C 7F0388EC 1000F327 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D420 7F0388F0 26310001 */ addiu $s1, $s1, 1 +actionB7_Set_Timer_X_Seconds__Doesnt_Show_Timer_Yet_3: +/* 06D424 7F0388F4 922B0001 */ lbu $t3, 1($s1) +/* 06D428 7F0388F8 92390002 */ lbu $t9, 2($s1) +/* 06D42C 7F0388FC 000BC200 */ sll $t8, $t3, 8 +/* 06D430 7F038900 03197025 */ or $t6, $t8, $t9 +/* 06D434 7F038904 448E4000 */ mtc1 $t6, $f8 +/* 06D438 7F038908 00000000 */ nop +/* 06D43C 7F03890C 46804020 */ cvt.s.w $f0, $f8 +/* 06D440 7F038910 46160302 */ mul.s $f12, $f0, $f22 +/* 06D444 7F038914 0FC1586C */ jal set_clock_time +/* 06D448 7F038918 00000000 */ nop +/* 06D44C 7F03891C 26520003 */ addiu $s2, $s2, 3 +/* 06D450 7F038920 1000F31A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D454 7F038924 26310003 */ addiu $s1, $s1, 3 +actionB8_Stop_Timer_1: +/* 06D458 7F038928 0FC15872 */ jal set_clock_enable +/* 06D45C 7F03892C 00002025 */ move $a0, $zero +/* 06D460 7F038930 26520001 */ addiu $s2, $s2, 1 +/* 06D464 7F038934 1000F315 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D468 7F038938 26310001 */ addiu $s1, $s1, 1 +actionB9_Start_Timer_1: +/* 06D46C 7F03893C 0FC15872 */ jal set_clock_enable +/* 06D470 7F038940 24040001 */ li $a0, 1 +/* 06D474 7F038944 26520001 */ addiu $s2, $s2, 1 +/* 06D478 7F038948 1000F310 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D47C 7F03894C 26310001 */ addiu $s1, $s1, 1 +actionBA_Check_Timer_Enabled_Status_RVL_If_Enabled_2: +/* 06D480 7F038950 0FC15875 */ jal get_clock_enable +/* 06D484 7F038954 00000000 */ nop +/* 06D488 7F038958 14400007 */ bnez $v0, .L7F038978 +/* 06D48C 7F03895C 02C02025 */ move $a0, $s6 +/* 06D490 7F038960 02402825 */ move $a1, $s2 +/* 06D494 7F038964 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D498 7F038968 92260001 */ lbu $a2, 1($s1) +/* 06D49C 7F03896C 00409025 */ move $s2, $v0 +/* 06D4A0 7F038970 1000F306 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D4A4 7F038974 02C28821 */ addu $s1, $s6, $v0 +.L7F038978: +/* 06D4A8 7F038978 26520002 */ addiu $s2, $s2, 2 +/* 06D4AC 7F03897C 1000F303 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D4B0 7F038980 26310002 */ addiu $s1, $s1, 2 +actionBB_Detect_If_Timer_Below_Certain_Point_RVL_If_So_4: +/* 06D4B4 7F038984 922F0001 */ lbu $t7, 1($s1) +/* 06D4B8 7F038988 922D0002 */ lbu $t5, 2($s1) +/* 06D4BC 7F03898C 000F4A00 */ sll $t1, $t7, 8 +/* 06D4C0 7F038990 012D5025 */ or $t2, $t1, $t5 +/* 06D4C4 7F038994 448A2000 */ mtc1 $t2, $f4 +/* 06D4C8 7F038998 00000000 */ nop +/* 06D4CC 7F03899C 468021A0 */ cvt.s.w $f6, $f4 +/* 06D4D0 7F0389A0 0FC1586F */ jal get_clock_time +/* 06D4D4 7F0389A4 E7A60294 */ swc1 $f6, 0x294($sp) +/* 06D4D8 7F0389A8 C7AA0294 */ lwc1 $f10, 0x294($sp) +/* 06D4DC 7F0389AC 02C02025 */ move $a0, $s6 +/* 06D4E0 7F0389B0 02402825 */ move $a1, $s2 +/* 06D4E4 7F0389B4 46165482 */ mul.s $f18, $f10, $f22 +/* 06D4E8 7F0389B8 4612003C */ c.lt.s $f0, $f18 +/* 06D4EC 7F0389BC 00000000 */ nop +/* 06D4F0 7F0389C0 45020007 */ bc1fl .L7F0389E0 +/* 06D4F4 7F0389C4 26520004 */ addiu $s2, $s2, 4 +/* 06D4F8 7F0389C8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D4FC 7F0389CC 92260003 */ lbu $a2, 3($s1) +/* 06D500 7F0389D0 00409025 */ move $s2, $v0 +/* 06D504 7F0389D4 1000F2ED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D508 7F0389D8 02C28821 */ addu $s1, $s6, $v0 +/* 06D50C 7F0389DC 26520004 */ addiu $s2, $s2, 4 +.L7F0389E0: +/* 06D510 7F0389E0 1000F2EA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D514 7F0389E4 26310004 */ addiu $s1, $s1, 4 +actionBC_Detect_If_Timer_Above_Certain_Point_RVL_If_So_4: +/* 06D518 7F0389E8 922C0001 */ lbu $t4, 1($s1) +/* 06D51C 7F0389EC 92380002 */ lbu $t8, 2($s1) +/* 06D520 7F0389F0 000C5A00 */ sll $t3, $t4, 8 +/* 06D524 7F0389F4 0178C825 */ or $t9, $t3, $t8 +/* 06D528 7F0389F8 44998000 */ mtc1 $t9, $f16 +/* 06D52C 7F0389FC 00000000 */ nop +/* 06D530 7F038A00 46808220 */ cvt.s.w $f8, $f16 +/* 06D534 7F038A04 0FC1586F */ jal get_clock_time +/* 06D538 7F038A08 E7A8028C */ swc1 $f8, 0x28c($sp) +/* 06D53C 7F038A0C C7A4028C */ lwc1 $f4, 0x28c($sp) +/* 06D540 7F038A10 02C02025 */ move $a0, $s6 +/* 06D544 7F038A14 02402825 */ move $a1, $s2 +/* 06D548 7F038A18 46162182 */ mul.s $f6, $f4, $f22 +/* 06D54C 7F038A1C 4600303C */ c.lt.s $f6, $f0 +/* 06D550 7F038A20 00000000 */ nop +/* 06D554 7F038A24 45020007 */ bc1fl .L7F038A44 +/* 06D558 7F038A28 26520004 */ addiu $s2, $s2, 4 +/* 06D55C 7F038A2C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D560 7F038A30 92260003 */ lbu $a2, 3($s1) +/* 06D564 7F038A34 00409025 */ move $s2, $v0 +/* 06D568 7F038A38 1000F2D4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D56C 7F038A3C 02C28821 */ addu $s1, $s6, $v0 +/* 06D570 7F038A40 26520004 */ addiu $s2, $s2, 4 +.L7F038A44: +/* 06D574 7F038A44 1000F2D1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D578 7F038A48 26310004 */ addiu $s1, $s1, 4 +actionBD_Spawn_Guard_C: +/* 06D57C 7F038A4C 922E0003 */ lbu $t6, 3($s1) +/* 06D580 7F038A50 92290004 */ lbu $t1, 4($s1) +/* 06D584 7F038A54 922A0007 */ lbu $t2, 7($s1) +/* 06D588 7F038A58 000E7A00 */ sll $t7, $t6, 8 +/* 06D58C 7F038A5C 922B0008 */ lbu $t3, 8($s1) +/* 06D590 7F038A60 01E98025 */ or $s0, $t7, $t1 +/* 06D594 7F038A64 922E0009 */ lbu $t6, 9($s1) +/* 06D598 7F038A68 320DFFFF */ andi $t5, $s0, 0xffff +/* 06D59C 7F038A6C 01A08025 */ move $s0, $t5 +/* 06D5A0 7F038A70 922D000A */ lbu $t5, 0xa($s1) +/* 06D5A4 7F038A74 000A6600 */ sll $t4, $t2, 0x18 +/* 06D5A8 7F038A78 000BC400 */ sll $t8, $t3, 0x10 +/* 06D5AC 7F038A7C 0198C825 */ or $t9, $t4, $t8 +/* 06D5B0 7F038A80 000E7A00 */ sll $t7, $t6, 8 +/* 06D5B4 7F038A84 032F4825 */ or $t1, $t9, $t7 +/* 06D5B8 7F038A88 012D5025 */ or $t2, $t1, $t5 +/* 06D5BC 7F038A8C AFAA0280 */ sw $t2, 0x280($sp) +/* 06D5C0 7F038A90 922B0005 */ lbu $t3, 5($s1) +/* 06D5C4 7F038A94 92380006 */ lbu $t8, 6($s1) +/* 06D5C8 7F038A98 000B6200 */ sll $t4, $t3, 8 +/* 06D5CC 7F038A9C 01981025 */ or $v0, $t4, $t8 +/* 06D5D0 7F038AA0 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06D5D4 7F038AA4 3044FFFF */ andi $a0, $v0, 0xffff +/* 06D5D8 7F038AA8 8FB90280 */ lw $t9, 0x280($sp) +/* 06D5DC 7F038AAC 92250001 */ lbu $a1, 1($s1) +/* 06D5E0 7F038AB0 82260002 */ lb $a2, 2($s1) +/* 06D5E4 7F038AB4 AFA20010 */ sw $v0, 0x10($sp) +/* 06D5E8 7F038AB8 02E02025 */ move $a0, $s7 +/* 06D5EC 7F038ABC 02003825 */ move $a3, $s0 +/* 06D5F0 7F038AC0 0FC0D096 */ jal guard_constructor_BD +/* 06D5F4 7F038AC4 AFB90014 */ sw $t9, 0x14($sp) +/* 06D5F8 7F038AC8 10400007 */ beqz $v0, .L7F038AE8 +/* 06D5FC 7F038ACC 02C02025 */ move $a0, $s6 +/* 06D600 7F038AD0 02402825 */ move $a1, $s2 +/* 06D604 7F038AD4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D608 7F038AD8 9226000B */ lbu $a2, 0xb($s1) +/* 06D60C 7F038ADC 00409025 */ move $s2, $v0 +/* 06D610 7F038AE0 1000F2AA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D614 7F038AE4 02C28821 */ addu $s1, $s6, $v0 +.L7F038AE8: +/* 06D618 7F038AE8 2652000C */ addiu $s2, $s2, 0xc +/* 06D61C 7F038AEC 1000F2A7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D620 7F038AF0 2631000C */ addiu $s1, $s1, 0xc +actionBE_Respawn_Guard_with_ID_B: +/* 06D624 7F038AF4 922F0006 */ lbu $t7, 6($s1) +/* 06D628 7F038AF8 922D0007 */ lbu $t5, 7($s1) +/* 06D62C 7F038AFC 922C0008 */ lbu $t4, 8($s1) +/* 06D630 7F038B00 000F4E00 */ sll $t1, $t7, 0x18 +/* 06D634 7F038B04 000D5400 */ sll $t2, $t5, 0x10 +/* 06D638 7F038B08 922F0004 */ lbu $t7, 4($s1) +/* 06D63C 7F038B0C 012A5825 */ or $t3, $t1, $t2 +/* 06D640 7F038B10 92290005 */ lbu $t1, 5($s1) +/* 06D644 7F038B14 92390009 */ lbu $t9, 9($s1) +/* 06D648 7F038B18 000CC200 */ sll $t8, $t4, 8 +/* 06D64C 7F038B1C 000F6A00 */ sll $t5, $t7, 8 +/* 06D650 7F038B20 01787025 */ or $t6, $t3, $t8 +/* 06D654 7F038B24 01A91025 */ or $v0, $t5, $t1 +/* 06D658 7F038B28 3044FFFF */ andi $a0, $v0, 0xffff +/* 06D65C 7F038B2C 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06D660 7F038B30 01D98025 */ or $s0, $t6, $t9 +/* 06D664 7F038B34 92250001 */ lbu $a1, 1($s1) +/* 06D668 7F038B38 82260002 */ lb $a2, 2($s1) +/* 06D66C 7F038B3C 92270003 */ lbu $a3, 3($s1) +/* 06D670 7F038B40 AFB00014 */ sw $s0, 0x14($sp) +/* 06D674 7F038B44 AFA20010 */ sw $v0, 0x10($sp) +/* 06D678 7F038B48 0FC0D0C2 */ jal guard_constructor_BE +/* 06D67C 7F038B4C 02E02025 */ move $a0, $s7 +/* 06D680 7F038B50 10400007 */ beqz $v0, .L7F038B70 +/* 06D684 7F038B54 02C02025 */ move $a0, $s6 +/* 06D688 7F038B58 02402825 */ move $a1, $s2 +/* 06D68C 7F038B5C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D690 7F038B60 9226000A */ lbu $a2, 0xa($s1) +/* 06D694 7F038B64 00409025 */ move $s2, $v0 +/* 06D698 7F038B68 1000F288 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D69C 7F038B6C 02C28821 */ addu $s1, $s6, $v0 +.L7F038B70: +/* 06D6A0 7F038B70 2652000B */ addiu $s2, $s2, 0xb +/* 06D6A4 7F038B74 1000F285 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D6A8 7F038B78 2631000B */ addiu $s1, $s1, 0xb +actionBF_Spawn_Weapon_9: +/* 06D6AC 7F038B7C 922C0004 */ lbu $t4, 4($s1) +/* 06D6B0 7F038B80 92380005 */ lbu $t8, 5($s1) +/* 06D6B4 7F038B84 922F0006 */ lbu $t7, 6($s1) +/* 06D6B8 7F038B88 000C5E00 */ sll $t3, $t4, 0x18 +/* 06D6BC 7F038B8C 922C0001 */ lbu $t4, 1($s1) +/* 06D6C0 7F038B90 00187400 */ sll $t6, $t8, 0x10 +/* 06D6C4 7F038B94 016EC825 */ or $t9, $t3, $t6 +/* 06D6C8 7F038B98 922A0007 */ lbu $t2, 7($s1) +/* 06D6CC 7F038B9C 922B0002 */ lbu $t3, 2($s1) +/* 06D6D0 7F038BA0 000F6A00 */ sll $t5, $t7, 8 +/* 06D6D4 7F038BA4 032D4825 */ or $t1, $t9, $t5 +/* 06D6D8 7F038BA8 000CC200 */ sll $t8, $t4, 8 +/* 06D6DC 7F038BAC 00001825 */ move $v1, $zero +/* 06D6E0 7F038BB0 012A8025 */ or $s0, $t1, $t2 +/* 06D6E4 7F038BB4 12E00027 */ beqz $s7, .L7F038C54 +/* 06D6E8 7F038BB8 030B9825 */ or $s3, $t8, $t3 +/* 06D6EC 7F038BBC 8EEE0018 */ lw $t6, 0x18($s7) +/* 06D6F0 7F038BC0 11C00024 */ beqz $t6, .L7F038C54 +/* 06D6F4 7F038BC4 00000000 */ nop +/* 06D6F8 7F038BC8 8EEF001C */ lw $t7, 0x1c($s7) +/* 06D6FC 7F038BCC 11E00021 */ beqz $t7, .L7F038C54 +/* 06D700 7F038BD0 00000000 */ nop +/* 06D704 7F038BD4 0FC249EF */ jal cheatCheckIfOn +/* 06D708 7F038BD8 2404001C */ li $a0, 28 +/* 06D70C 7F038BDC 50400018 */ beql $v0, $zero, .L7F038C40 +/* 06D710 7F038BE0 02E02025 */ move $a0, $s7 +/* 06D714 7F038BE4 92260003 */ lbu $a2, 3($s1) +/* 06D718 7F038BE8 24D9FFFE */ addiu $t9, $a2, -2 +/* 06D71C 7F038BEC 2F21001E */ sltiu $at, $t9, 0x1e +/* 06D720 7F038BF0 1020000C */ beqz $at, .L7F038C24 +/* 06D724 7F038BF4 0019C880 */ sll $t9, $t9, 2 +/* 06D728 7F038BF8 3C018005 */ lui $at, %hi(jpt_800528FC) +/* 06D72C 7F038BFC 00390821 */ addu $at, $at, $t9 +/* 06D730 7F038C00 8C3928FC */ lw $t9, %lo(jpt_800528FC)($at) +.L7F038C04: +/* 06D734 7F038C04 03200008 */ jr $t9 +/* 06D738 7F038C08 00000000 */ nop +loc_CODE_7F038C0C: +/* 06D73C 7F038C0C 02E02025 */ move $a0, $s7 +/* 06D740 7F038C10 240500D3 */ li $a1, 211 +/* 06D744 7F038C14 24060019 */ li $a2, 25 +/* 06D748 7F038C18 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D74C 7F038C1C 02003825 */ move $a3, $s0 +/* 06D750 7F038C20 92260003 */ lbu $a2, 3($s1) +.L7F038C24: +/* 06D754 7F038C24 02E02025 */ move $a0, $s7 +/* 06D758 7F038C28 02602825 */ move $a1, $s3 +/* 06D75C 7F038C2C 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D760 7F038C30 02003825 */ move $a3, $s0 +/* 06D764 7F038C34 10000007 */ b .L7F038C54 +/* 06D768 7F038C38 00401825 */ move $v1, $v0 +/* 06D76C 7F038C3C 02E02025 */ move $a0, $s7 +.L7F038C40: +/* 06D770 7F038C40 02602825 */ move $a1, $s3 +/* 06D774 7F038C44 92260003 */ lbu $a2, 3($s1) +/* 06D778 7F038C48 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D77C 7F038C4C 02003825 */ move $a3, $s0 +/* 06D780 7F038C50 00401825 */ move $v1, $v0 +.L7F038C54: +/* 06D784 7F038C54 10600007 */ beqz $v1, .L7F038C74 +/* 06D788 7F038C58 02C02025 */ move $a0, $s6 +/* 06D78C 7F038C5C 02402825 */ move $a1, $s2 +/* 06D790 7F038C60 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D794 7F038C64 92260008 */ lbu $a2, 8($s1) +/* 06D798 7F038C68 00409025 */ move $s2, $v0 +/* 06D79C 7F038C6C 1000F247 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D7A0 7F038C70 02C28821 */ addu $s1, $s6, $v0 +.L7F038C74: +/* 06D7A4 7F038C74 26520009 */ addiu $s2, $s2, 9 +/* 06D7A8 7F038C78 1000F244 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D7AC 7F038C7C 26310009 */ addiu $s1, $s1, 9 +actionC0_Spawn_Hat_8: +/* 06D7B0 7F038C80 922D0003 */ lbu $t5, 3($s1) +/* 06D7B4 7F038C84 922A0004 */ lbu $t2, 4($s1) +/* 06D7B8 7F038C88 922B0005 */ lbu $t3, 5($s1) +/* 06D7BC 7F038C8C 000D4E00 */ sll $t1, $t5, 0x18 +/* 06D7C0 7F038C90 922D0001 */ lbu $t5, 1($s1) +/* 06D7C4 7F038C94 000A6400 */ sll $t4, $t2, 0x10 +/* 06D7C8 7F038C98 012CC025 */ or $t8, $t1, $t4 +/* 06D7CC 7F038C9C 92390006 */ lbu $t9, 6($s1) +/* 06D7D0 7F038CA0 92290002 */ lbu $t1, 2($s1) +/* 06D7D4 7F038CA4 000B7200 */ sll $t6, $t3, 8 +/* 06D7D8 7F038CA8 030E7825 */ or $t7, $t8, $t6 +/* 06D7DC 7F038CAC 000D5200 */ sll $t2, $t5, 8 +/* 06D7E0 7F038CB0 00001825 */ move $v1, $zero +/* 06D7E4 7F038CB4 01F93025 */ or $a2, $t7, $t9 +/* 06D7E8 7F038CB8 12E0000A */ beqz $s7, .L7F038CE4 +/* 06D7EC 7F038CBC 01492825 */ or $a1, $t2, $t1 +/* 06D7F0 7F038CC0 8EEC0018 */ lw $t4, 0x18($s7) +/* 06D7F4 7F038CC4 11800007 */ beqz $t4, .L7F038CE4 +/* 06D7F8 7F038CC8 00000000 */ nop +/* 06D7FC 7F038CCC 8EEB001C */ lw $t3, 0x1c($s7) +/* 06D800 7F038CD0 11600004 */ beqz $t3, .L7F038CE4 +/* 06D804 7F038CD4 00000000 */ nop +/* 06D808 7F038CD8 0FC14430 */ jal sub_GAME_7F0510C0 +/* 06D80C 7F038CDC 02E02025 */ move $a0, $s7 +/* 06D810 7F038CE0 00401825 */ move $v1, $v0 +.L7F038CE4: +/* 06D814 7F038CE4 10600007 */ beqz $v1, .L7F038D04 +/* 06D818 7F038CE8 02C02025 */ move $a0, $s6 +/* 06D81C 7F038CEC 02402825 */ move $a1, $s2 +/* 06D820 7F038CF0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D824 7F038CF4 92260007 */ lbu $a2, 7($s1) +/* 06D828 7F038CF8 00409025 */ move $s2, $v0 +/* 06D82C 7F038CFC 1000F223 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D830 7F038D00 02C28821 */ addu $s1, $s6, $v0 +.L7F038D04: +/* 06D834 7F038D04 26520008 */ addiu $s2, $s2, 8 +/* 06D838 7F038D08 1000F220 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D83C 7F038D0C 26310008 */ addiu $s1, $s1, 8 +actionC1_GuardIDDoesAV_If_Gunfire_RVL_WhenComplete_5: +/* 06D840 7F038D10 92380002 */ lbu $t8, 2($s1) +/* 06D844 7F038D14 922F0003 */ lbu $t7, 3($s1) +/* 06D848 7F038D18 AFA0020C */ sw $zero, 0x20c($sp) +/* 06D84C 7F038D1C 00187200 */ sll $t6, $t8, 8 +/* 06D850 7F038D20 01CF1025 */ or $v0, $t6, $t7 +/* 06D854 7F038D24 3044FFFF */ andi $a0, $v0, 0xffff +/* 06D858 7F038D28 AFA00210 */ sw $zero, 0x210($sp) +/* 06D85C 7F038D2C AFA00234 */ sw $zero, 0x234($sp) +/* 06D860 7F038D30 00009825 */ move $s3, $zero +/* 06D864 7F038D34 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06D868 7F038D38 0000A025 */ move $s4, $zero +/* 06D86C 7F038D3C 00408025 */ move $s0, $v0 +/* 06D870 7F038D40 02E02025 */ move $a0, $s7 +/* 06D874 7F038D44 0FC0CC10 */ jal get_handle_for_guard_id +/* 06D878 7F038D48 92250001 */ lbu $a1, 1($s1) +/* 06D87C 7F038D4C 10400051 */ beqz $v0, .L7F038E94 +/* 06D880 7F038D50 0040A825 */ move $s5, $v0 +/* 06D884 7F038D54 8C4D0014 */ lw $t5, 0x14($v0) +/* 06D888 7F038D58 02E02025 */ move $a0, $s7 +/* 06D88C 7F038D5C 31AA0002 */ andi $t2, $t5, 2 +/* 06D890 7F038D60 5140004D */ beql $t2, $zero, .L7F038E98 +/* 06D894 7F038D64 8FA90234 */ lw $t1, 0x234($sp) +/* 06D898 7F038D68 8045000F */ lb $a1, 0xf($v0) +/* 06D89C 7F038D6C 84470000 */ lh $a3, ($v0) +/* 06D8A0 7F038D70 AFA00014 */ sw $zero, 0x14($sp) +/* 06D8A4 7F038D74 AFB00010 */ sw $s0, 0x10($sp) +/* 06D8A8 7F038D78 0FC0D0C2 */ jal guard_constructor_BE +/* 06D8AC 7F038D7C 2406FFFF */ li $a2, -1 +/* 06D8B0 7F038D80 50400045 */ beql $v0, $zero, .L7F038E98 +/* 06D8B4 7F038D84 8FA90234 */ lw $t1, 0x234($sp) +/* 06D8B8 7F038D88 8C490004 */ lw $t1, 4($v0) +/* 06D8BC 7F038D8C 02E02025 */ move $a0, $s7 +/* 06D8C0 7F038D90 AFA90218 */ sw $t1, 0x218($sp) +/* 06D8C4 7F038D94 86B00000 */ lh $s0, ($s5) +/* 06D8C8 7F038D98 26102710 */ addiu $s0, $s0, 0x2710 +/* 06D8CC 7F038D9C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06D8D0 7F038DA0 02002825 */ move $a1, $s0 +/* 06D8D4 7F038DA4 14400003 */ bnez $v0, .L7F038DB4 +/* 06D8D8 7F038DA8 02A02025 */ move $a0, $s5 +/* 06D8DC 7F038DAC 8FAC0218 */ lw $t4, 0x218($sp) +/* 06D8E0 7F038DB0 A5900000 */ sh $s0, ($t4) +.L7F038DB4: +/* 06D8E4 7F038DB4 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 06D8E8 7F038DB8 00002825 */ move $a1, $zero +/* 06D8EC 7F038DBC 5040000C */ beql $v0, $zero, .L7F038DF0 +/* 06D8F0 7F038DC0 02A02025 */ move $a0, $s5 +/* 06D8F4 7F038DC4 8C540004 */ lw $s4, 4($v0) +/* 06D8F8 7F038DC8 8FA40218 */ lw $a0, 0x218($sp) +/* 06D8FC 7F038DCC 00003825 */ move $a3, $zero +/* 06D900 7F038DD0 86850004 */ lh $a1, 4($s4) +/* 06D904 7F038DD4 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D908 7F038DD8 82860080 */ lb $a2, 0x80($s4) +/* 06D90C 7F038DDC 50400004 */ beql $v0, $zero, .L7F038DF0 +/* 06D910 7F038DE0 02A02025 */ move $a0, $s5 +/* 06D914 7F038DE4 8C4B0004 */ lw $t3, 4($v0) +/* 06D918 7F038DE8 AFAB020C */ sw $t3, 0x20c($sp) +/* 06D91C 7F038DEC 02A02025 */ move $a0, $s5 +.L7F038DF0: +/* 06D920 7F038DF0 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 06D924 7F038DF4 24050001 */ li $a1, 1 +/* 06D928 7F038DF8 1040000B */ beqz $v0, .L7F038E28 +/* 06D92C 7F038DFC 00000000 */ nop +/* 06D930 7F038E00 8C530004 */ lw $s3, 4($v0) +/* 06D934 7F038E04 8FA40218 */ lw $a0, 0x218($sp) +/* 06D938 7F038E08 3C071000 */ lui $a3, 0x1000 +/* 06D93C 7F038E0C 86650004 */ lh $a1, 4($s3) +/* 06D940 7F038E10 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D944 7F038E14 82660080 */ lb $a2, 0x80($s3) +/* 06D948 7F038E18 10400003 */ beqz $v0, .L7F038E28 +/* 06D94C 7F038E1C 00000000 */ nop +/* 06D950 7F038E20 8C580004 */ lw $t8, 4($v0) +/* 06D954 7F038E24 AFB80210 */ sw $t8, 0x210($sp) +.L7F038E28: +/* 06D958 7F038E28 52600011 */ beql $s3, $zero, .L7F038E70 +/* 06D95C 7F038E2C 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D960 7F038E30 1280000E */ beqz $s4, .L7F038E6C +/* 06D964 7F038E34 8FAE0210 */ lw $t6, 0x210($sp) +/* 06D968 7F038E38 11C0000C */ beqz $t6, .L7F038E6C +/* 06D96C 7F038E3C 8FAF020C */ lw $t7, 0x20c($sp) +/* 06D970 7F038E40 51E0000B */ beql $t7, $zero, .L7F038E70 +/* 06D974 7F038E44 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D978 7F038E48 8E790084 */ lw $t9, 0x84($s3) +/* 06D97C 7F038E4C 56990008 */ bnel $s4, $t9, .L7F038E70 +/* 06D980 7F038E50 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D984 7F038E54 8E8D0084 */ lw $t5, 0x84($s4) +/* 06D988 7F038E58 01C02025 */ move $a0, $t6 +/* 06D98C 7F038E5C 566D0004 */ bnel $s3, $t5, .L7F038E70 +/* 06D990 7F038E60 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D994 7F038E64 0FC1475D */ jal link_objects +/* 06D998 7F038E68 01E02825 */ move $a1, $t7 +.L7F038E6C: +/* 06D99C 7F038E6C 8EA301D8 */ lw $v1, 0x1d8($s5) +.L7F038E70: +/* 06D9A0 7F038E70 8FA40218 */ lw $a0, 0x218($sp) +/* 06D9A4 7F038E74 50600006 */ beql $v1, $zero, .L7F038E90 +/* 06D9A8 7F038E78 240A0001 */ li $t2, 1 +/* 06D9AC 7F038E7C 8C620004 */ lw $v0, 4($v1) +/* 06D9B0 7F038E80 00003025 */ move $a2, $zero +/* 06D9B4 7F038E84 0FC14430 */ jal sub_GAME_7F0510C0 +/* 06D9B8 7F038E88 84450004 */ lh $a1, 4($v0) +/* 06D9BC 7F038E8C 240A0001 */ li $t2, 1 +.L7F038E90: +/* 06D9C0 7F038E90 AFAA0234 */ sw $t2, 0x234($sp) +.L7F038E94: +/* 06D9C4 7F038E94 8FA90234 */ lw $t1, 0x234($sp) +.L7F038E98: +/* 06D9C8 7F038E98 02C02025 */ move $a0, $s6 +/* 06D9CC 7F038E9C 02402825 */ move $a1, $s2 +/* 06D9D0 7F038EA0 51200007 */ beql $t1, $zero, .L7F038EC0 +/* 06D9D4 7F038EA4 26520005 */ addiu $s2, $s2, 5 +/* 06D9D8 7F038EA8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D9DC 7F038EAC 92260004 */ lbu $a2, 4($s1) +/* 06D9E0 7F038EB0 00409025 */ move $s2, $v0 +/* 06D9E4 7F038EB4 1000F1B5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D9E8 7F038EB8 02C28821 */ addu $s1, $s6, $v0 +/* 06D9EC 7F038EBC 26520005 */ addiu $s2, $s2, 5 +.L7F038EC0: +/* 06D9F0 7F038EC0 1000F1B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D9F4 7F038EC4 26310005 */ addiu $s1, $s1, 5 +actionC2_Display_Text_Preset_Bottom_Screen_3: +/* 06D9F8 7F038EC8 922C0001 */ lbu $t4, 1($s1) +/* 06D9FC 7F038ECC 92380002 */ lbu $t8, 2($s1) +/* 06DA00 7F038ED0 000C5A00 */ sll $t3, $t4, 8 +/* 06DA04 7F038ED4 0FC30776 */ jal get_textptr_for_textID +/* 06DA08 7F038ED8 01782025 */ or $a0, $t3, $t8 +/* 06DA0C 7F038EDC 0FC228F2 */ jal display_string_in_lower_left_corner +/* 06DA10 7F038EE0 00402025 */ move $a0, $v0 +/* 06DA14 7F038EE4 26520003 */ addiu $s2, $s2, 3 +/* 06DA18 7F038EE8 1000F1A8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA1C 7F038EEC 26310003 */ addiu $s1, $s1, 3 +actionC3_Display_Text_Preset_Top_Screen_3: +/* 06DA20 7F038EF0 92390001 */ lbu $t9, 1($s1) +/* 06DA24 7F038EF4 922E0002 */ lbu $t6, 2($s1) +/* 06DA28 7F038EF8 00196A00 */ sll $t5, $t9, 8 +/* 06DA2C 7F038EFC 0FC30776 */ jal get_textptr_for_textID +/* 06DA30 7F038F00 01AE2025 */ or $a0, $t5, $t6 +/* 06DA34 7F038F04 0FC22A57 */ jal display_string_at_top_of_screen +/* 06DA38 7F038F08 00402025 */ move $a0, $v0 +/* 06DA3C 7F038F0C 26520003 */ addiu $s2, $s2, 3 +/* 06DA40 7F038F10 1000F19E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA44 7F038F14 26310003 */ addiu $s1, $s1, 3 +actionC4_Play_Sound_Effect_num_In_Slot_num_0_7_4: +/* 06DA48 7F038F18 922F0001 */ lbu $t7, 1($s1) +/* 06DA4C 7F038F1C 92290002 */ lbu $t1, 2($s1) +/* 06DA50 7F038F20 82240003 */ lb $a0, 3($s1) +/* 06DA54 7F038F24 000F5200 */ sll $t2, $t7, 8 +/* 06DA58 7F038F28 01492825 */ or $a1, $t2, $t1 +/* 06DA5C 7F038F2C 00056400 */ sll $t4, $a1, 0x10 +/* 06DA60 7F038F30 0FC0D249 */ jal set_sound_effect_to_slot +/* 06DA64 7F038F34 000C2C03 */ sra $a1, $t4, 0x10 +/* 06DA68 7F038F38 26520004 */ addiu $s2, $s2, 4 +/* 06DA6C 7F038F3C 1000F193 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA70 7F038F40 26310004 */ addiu $s1, $s1, 4 +actionC9_Shut_Off_Sound_In_Slot_Number_2: +/* 06DA74 7F038F44 0FC0D26F */ jal sub_GAME_7F0349BC +/* 06DA78 7F038F48 82240001 */ lb $a0, 1($s1) +/* 06DA7C 7F038F4C 26520002 */ addiu $s2, $s2, 2 +/* 06DA80 7F038F50 1000F18E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA84 7F038F54 26310002 */ addiu $s1, $s1, 2 +actionC7_Sound_In_Slot_num_Crecendos_To_Volume_Over_ms_6: +/* 06DA88 7F038F58 92380002 */ lbu $t8, 2($s1) +/* 06DA8C 7F038F5C 922D0003 */ lbu $t5, 3($s1) +/* 06DA90 7F038F60 922A0004 */ lbu $t2, 4($s1) +/* 06DA94 7F038F64 922C0005 */ lbu $t4, 5($s1) +/* 06DA98 7F038F68 82230001 */ lb $v1, 1($s1) +/* 06DA9C 7F038F6C 0018CA00 */ sll $t9, $t8, 8 +/* 06DAA0 7F038F70 032D2025 */ or $a0, $t9, $t5 +/* 06DAA4 7F038F74 000A4A00 */ sll $t1, $t2, 8 +/* 06DAA8 7F038F78 00047400 */ sll $t6, $a0, 0x10 +/* 06DAAC 7F038F7C 012C2825 */ or $a1, $t1, $t4 +/* 06DAB0 7F038F80 000E2403 */ sra $a0, $t6, 0x10 +/* 06DAB4 7F038F84 0460001D */ bltz $v1, .L7F038FFC +/* 06DAB8 7F038F88 30ABFFFF */ andi $t3, $a1, 0xffff +/* 06DABC 7F038F8C 28610008 */ slti $at, $v1, 8 +/* 06DAC0 7F038F90 1020001A */ beqz $at, .L7F038FFC +/* 06DAC4 7F038F94 24070018 */ li $a3, 24 +/* 06DAC8 7F038F98 00670019 */ multu $v1, $a3 +/* 06DACC 7F038F9C 3C068007 */ lui $a2, %hi(sfx_related) +/* 06DAD0 7F038FA0 24C69B70 */ addiu $a2, %lo(sfx_related) # addiu $a2, $a2, -0x6490 +/* 06DAD4 7F038FA4 01601025 */ move $v0, $t3 +/* 06DAD8 7F038FA8 0000C012 */ mflo $t8 +/* 06DADC 7F038FAC 00D8C821 */ addu $t9, $a2, $t8 +/* 06DAE0 7F038FB0 AF2B0008 */ sw $t3, 8($t9) +/* 06DAE4 7F038FB4 822D0001 */ lb $t5, 1($s1) +/* 06DAE8 7F038FB8 01A70019 */ multu $t5, $a3 +/* 06DAEC 7F038FBC 00007012 */ mflo $t6 +/* 06DAF0 7F038FC0 00CE7821 */ addu $t7, $a2, $t6 +/* 06DAF4 7F038FC4 ADE4000C */ sw $a0, 0xc($t7) +/* 06DAF8 7F038FC8 822A0001 */ lb $t2, 1($s1) +/* 06DAFC 7F038FCC 01470019 */ multu $t2, $a3 +/* 06DB00 7F038FD0 00004812 */ mflo $t1 +/* 06DB04 7F038FD4 00C96021 */ addu $t4, $a2, $t1 +/* 06DB08 7F038FD8 AD800010 */ sw $zero, 0x10($t4) +/* 06DB0C 7F038FDC 822B0001 */ lb $t3, 1($s1) +/* 06DB10 7F038FE0 01670019 */ multu $t3, $a3 +/* 06DB14 7F038FE4 0000C012 */ mflo $t8 +/* 06DB18 7F038FE8 00D8C821 */ addu $t9, $a2, $t8 +/* 06DB1C 7F038FEC 14400003 */ bnez $v0, .L7F038FFC +/* 06DB20 7F038FF0 AF200014 */ sw $zero, 0x14($t9) +/* 06DB24 7F038FF4 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DB28 7F038FF8 82240001 */ lb $a0, 1($s1) +.L7F038FFC: +/* 06DB2C 7F038FFC 26520006 */ addiu $s2, $s2, 6 +/* 06DB30 7F039000 1000F162 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DB34 7F039004 26310006 */ addiu $s1, $s1, 6 +actionC8_Sound_In_Slot_num_Fades_To_Volume_Over_ms_6: +/* 06DB38 7F039008 922D0002 */ lbu $t5, 2($s1) +/* 06DB3C 7F03900C 922F0003 */ lbu $t7, 3($s1) +/* 06DB40 7F039010 92290004 */ lbu $t1, 4($s1) +/* 06DB44 7F039014 922B0005 */ lbu $t3, 5($s1) +/* 06DB48 7F039018 000D7200 */ sll $t6, $t5, 8 +/* 06DB4C 7F03901C 82230001 */ lb $v1, 1($s1) +/* 06DB50 7F039020 01CF5025 */ or $t2, $t6, $t7 +/* 06DB54 7F039024 448A5000 */ mtc1 $t2, $f10 +/* 06DB58 7F039028 00096200 */ sll $t4, $t1, 8 +/* 06DB5C 7F03902C 018B1025 */ or $v0, $t4, $t3 +/* 06DB60 7F039030 3058FFFF */ andi $t8, $v0, 0xffff +/* 06DB64 7F039034 04600020 */ bltz $v1, .L7F0390B8 +/* 06DB68 7F039038 46805320 */ cvt.s.w $f12, $f10 +/* 06DB6C 7F03903C 28610008 */ slti $at, $v1, 8 +/* 06DB70 7F039040 1020001D */ beqz $at, .L7F0390B8 +/* 06DB74 7F039044 0003C880 */ sll $t9, $v1, 2 +/* 06DB78 7F039048 0323C823 */ subu $t9, $t9, $v1 +/* 06DB7C 7F03904C 0019C8C0 */ sll $t9, $t9, 3 +/* 06DB80 7F039050 3C018007 */ lui $at, %hi(sfx_related+8) +/* 06DB84 7F039054 00390821 */ addu $at, $at, $t9 +/* 06DB88 7F039058 AC389B78 */ sw $t8, %lo(sfx_related+8)($at) +/* 06DB8C 7F03905C 0FC14E6E */ jal sub_GAME_7F0539B8 +/* 06DB90 7F039060 03008025 */ move $s0, $t8 +/* 06DB94 7F039064 822D0001 */ lb $t5, 1($s1) +/* 06DB98 7F039068 24040018 */ li $a0, 24 +/* 06DB9C 7F03906C 3C038007 */ lui $v1, %hi(sfx_related) +/* 06DBA0 7F039070 01A40019 */ multu $t5, $a0 +/* 06DBA4 7F039074 24639B70 */ addiu $v1, %lo(sfx_related) # addiu $v1, $v1, -0x6490 +/* 06DBA8 7F039078 00007012 */ mflo $t6 +/* 06DBAC 7F03907C 006E7821 */ addu $t7, $v1, $t6 +/* 06DBB0 7F039080 ADE2000C */ sw $v0, 0xc($t7) +/* 06DBB4 7F039084 822A0001 */ lb $t2, 1($s1) +/* 06DBB8 7F039088 01440019 */ multu $t2, $a0 +/* 06DBBC 7F03908C 00004812 */ mflo $t1 +/* 06DBC0 7F039090 00696021 */ addu $t4, $v1, $t1 +/* 06DBC4 7F039094 AD800010 */ sw $zero, 0x10($t4) +/* 06DBC8 7F039098 822B0001 */ lb $t3, 1($s1) +/* 06DBCC 7F03909C 01640019 */ multu $t3, $a0 +/* 06DBD0 7F0390A0 0000C012 */ mflo $t8 +/* 06DBD4 7F0390A4 0078C821 */ addu $t9, $v1, $t8 +/* 06DBD8 7F0390A8 16000003 */ bnez $s0, .L7F0390B8 +/* 06DBDC 7F0390AC AF200014 */ sw $zero, 0x14($t9) +/* 06DBE0 7F0390B0 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DBE4 7F0390B4 82240001 */ lb $a0, 1($s1) +.L7F0390B8: +/* 06DBE8 7F0390B8 26520006 */ addiu $s2, $s2, 6 +/* 06DBEC 7F0390BC 1000F133 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DBF0 7F0390C0 26310006 */ addiu $s1, $s1, 6 +actionC5_EmanateSoundSlotnumFrom16ObjectWithAudibleRV_5: +/* 06DBF4 7F0390C4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06DBF8 7F0390C8 92240002 */ lbu $a0, 2($s1) +/* 06DBFC 7F0390CC 922D0003 */ lbu $t5, 3($s1) +/* 06DC00 7F0390D0 922F0004 */ lbu $t7, 4($s1) +/* 06DC04 7F0390D4 82230001 */ lb $v1, 1($s1) +/* 06DC08 7F0390D8 000D7200 */ sll $t6, $t5, 8 +/* 06DC0C 7F0390DC 01CF2825 */ or $a1, $t6, $t7 +/* 06DC10 7F0390E0 0460001C */ bltz $v1, .L7F039154 +/* 06DC14 7F0390E4 30AAFFFF */ andi $t2, $a1, 0xffff +/* 06DC18 7F0390E8 28610008 */ slti $at, $v1, 8 +/* 06DC1C 7F0390EC 5020001A */ beql $at, $zero, .L7F039158 +/* 06DC20 7F0390F0 26520005 */ addiu $s2, $s2, 5 +/* 06DC24 7F0390F4 10400017 */ beqz $v0, .L7F039154 +/* 06DC28 7F0390F8 00034880 */ sll $t1, $v1, 2 +/* 06DC2C 7F0390FC 01234823 */ subu $t1, $t1, $v1 +/* 06DC30 7F039100 000948C0 */ sll $t1, $t1, 3 +/* 06DC34 7F039104 3C018007 */ lui $at, %hi(sfx_related+8) +/* 06DC38 7F039108 00290821 */ addu $at, $at, $t1 +/* 06DC3C 7F03910C AC2A9B78 */ sw $t2, %lo(sfx_related+8)($at) +/* 06DC40 7F039110 822C0001 */ lb $t4, 1($s1) +/* 06DC44 7F039114 3C018007 */ lui $at, %hi(sfx_related+16) +/* 06DC48 7F039118 000C5880 */ sll $t3, $t4, 2 +/* 06DC4C 7F03911C 016C5823 */ subu $t3, $t3, $t4 +/* 06DC50 7F039120 000B58C0 */ sll $t3, $t3, 3 +/* 06DC54 7F039124 002B0821 */ addu $at, $at, $t3 +/* 06DC58 7F039128 AC209B80 */ sw $zero, %lo(sfx_related+16)($at) +/* 06DC5C 7F03912C 82380001 */ lb $t8, 1($s1) +/* 06DC60 7F039130 3C018007 */ lui $at, %hi(sfx_related+20) +/* 06DC64 7F039134 0018C880 */ sll $t9, $t8, 2 +/* 06DC68 7F039138 0338C823 */ subu $t9, $t9, $t8 +/* 06DC6C 7F03913C 0019C8C0 */ sll $t9, $t9, 3 +/* 06DC70 7F039140 00390821 */ addu $at, $at, $t9 +/* 06DC74 7F039144 15400003 */ bnez $t2, .L7F039154 +/* 06DC78 7F039148 AC229B84 */ sw $v0, %lo(sfx_related+20)($at) +/* 06DC7C 7F03914C 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DC80 7F039150 82240001 */ lb $a0, 1($s1) +.L7F039154: +/* 06DC84 7F039154 26520005 */ addiu $s2, $s2, 5 +.L7F039158: +/* 06DC88 7F039158 1000F10C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DC8C 7F03915C 26310005 */ addiu $s1, $s1, 5 +actionC6_EmanateSoundSlotnumFromPresetWithAudibleRV_6: +/* 06DC90 7F039160 922D0002 */ lbu $t5, 2($s1) +/* 06DC94 7F039164 922F0003 */ lbu $t7, 3($s1) +/* 06DC98 7F039168 92290004 */ lbu $t1, 4($s1) +/* 06DC9C 7F03916C 922B0005 */ lbu $t3, 5($s1) +/* 06DCA0 7F039170 000D7200 */ sll $t6, $t5, 8 +/* 06DCA4 7F039174 01CF1025 */ or $v0, $t6, $t7 +/* 06DCA8 7F039178 00096200 */ sll $t4, $t1, 8 +/* 06DCAC 7F03917C 304AFFFF */ andi $t2, $v0, 0xffff +/* 06DCB0 7F039180 018B2825 */ or $a1, $t4, $t3 +/* 06DCB4 7F039184 30B8FFFF */ andi $t8, $a1, 0xffff +/* 06DCB8 7F039188 29412710 */ slti $at, $t2, 0x2710 +/* 06DCBC 7F03918C 03002825 */ move $a1, $t8 +/* 06DCC0 7F039190 1020000A */ beqz $at, .L7F0391BC +/* 06DCC4 7F039194 01401825 */ move $v1, $t2 +/* 06DCC8 7F039198 000AC880 */ sll $t9, $t2, 2 +/* 06DCCC 7F03919C 032AC823 */ subu $t9, $t9, $t2 +/* 06DCD0 7F0391A0 0019C880 */ sll $t9, $t9, 2 +/* 06DCD4 7F0391A4 3C0D8007 */ lui $t5, %hi(ptr_0xxxpresets) +/* 06DCD8 7F0391A8 8DAD5D18 */ lw $t5, %lo(ptr_0xxxpresets)($t5) +/* 06DCDC 7F0391AC 032AC823 */ subu $t9, $t9, $t2 +/* 06DCE0 7F0391B0 0019C880 */ sll $t9, $t9, 2 +/* 06DCE4 7F0391B4 1000000A */ b .L7F0391E0 +/* 06DCE8 7F0391B8 032D2021 */ addu $a0, $t9, $t5 +.L7F0391BC: +/* 06DCEC 7F0391BC 3C0F8007 */ lui $t7, %hi(ptr_2xxxpresets) +/* 06DCF0 7F0391C0 8DEF5D1C */ lw $t7, %lo(ptr_2xxxpresets)($t7) +/* 06DCF4 7F0391C4 00037100 */ sll $t6, $v1, 4 +/* 06DCF8 7F0391C8 01C37021 */ addu $t6, $t6, $v1 +/* 06DCFC 7F0391CC 000E7080 */ sll $t6, $t6, 2 +/* 06DD00 7F0391D0 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06DD04 7F0391D4 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06DD08 7F0391D8 01CF2021 */ addu $a0, $t6, $t7 +/* 06DD0C 7F0391DC 00812021 */ addu $a0, $a0, $at +.L7F0391E0: +/* 06DD10 7F0391E0 82230001 */ lb $v1, 1($s1) +/* 06DD14 7F0391E4 0460001B */ bltz $v1, .L7F039254 +/* 06DD18 7F0391E8 28610008 */ slti $at, $v1, 8 +/* 06DD1C 7F0391EC 5020001A */ beql $at, $zero, .L7F039258 +/* 06DD20 7F0391F0 26520006 */ addiu $s2, $s2, 6 +/* 06DD24 7F0391F4 10800017 */ beqz $a0, .L7F039254 +/* 06DD28 7F0391F8 00035080 */ sll $t2, $v1, 2 +/* 06DD2C 7F0391FC 01435023 */ subu $t2, $t2, $v1 +/* 06DD30 7F039200 000A50C0 */ sll $t2, $t2, 3 +/* 06DD34 7F039204 3C018007 */ lui $at, %hi(sfx_related+8) +/* 06DD38 7F039208 002A0821 */ addu $at, $at, $t2 +/* 06DD3C 7F03920C AC259B78 */ sw $a1, %lo(sfx_related+8)($at) +/* 06DD40 7F039210 82290001 */ lb $t1, 1($s1) +/* 06DD44 7F039214 3C018007 */ lui $at, %hi(sfx_related+16) +/* 06DD48 7F039218 00096080 */ sll $t4, $t1, 2 +/* 06DD4C 7F03921C 01896023 */ subu $t4, $t4, $t1 +/* 06DD50 7F039220 000C60C0 */ sll $t4, $t4, 3 +/* 06DD54 7F039224 002C0821 */ addu $at, $at, $t4 +/* 06DD58 7F039228 AC249B80 */ sw $a0, %lo(sfx_related+16)($at) +/* 06DD5C 7F03922C 822B0001 */ lb $t3, 1($s1) +/* 06DD60 7F039230 3C018007 */ lui $at, %hi(sfx_related+20) +/* 06DD64 7F039234 000BC080 */ sll $t8, $t3, 2 +/* 06DD68 7F039238 030BC023 */ subu $t8, $t8, $t3 +/* 06DD6C 7F03923C 0018C0C0 */ sll $t8, $t8, 3 +/* 06DD70 7F039240 00380821 */ addu $at, $at, $t8 +/* 06DD74 7F039244 14A00003 */ bnez $a1, .L7F039254 +/* 06DD78 7F039248 AC209B84 */ sw $zero, %lo(sfx_related+20)($at) +/* 06DD7C 7F03924C 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DD80 7F039250 82240001 */ lb $a0, 1($s1) +.L7F039254: +/* 06DD84 7F039254 26520006 */ addiu $s2, $s2, 6 +.L7F039258: +/* 06DD88 7F039258 1000F0CC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DD8C 7F03925C 26310006 */ addiu $s1, $s1, 6 +actionCA_If_Value_GreaterThan_Volume_7FFF_Max_RVL_5: +/* 06DD90 7F039260 92390002 */ lbu $t9, 2($s1) +/* 06DD94 7F039264 922E0003 */ lbu $t6, 3($s1) +/* 06DD98 7F039268 82230001 */ lb $v1, 1($s1) +/* 06DD9C 7F03926C 00196A00 */ sll $t5, $t9, 8 +/* 06DDA0 7F039270 01AE1025 */ or $v0, $t5, $t6 +/* 06DDA4 7F039274 00027C00 */ sll $t7, $v0, 0x10 +/* 06DDA8 7F039278 04600013 */ bltz $v1, .L7F0392C8 +/* 06DDAC 7F03927C 000F5403 */ sra $t2, $t7, 0x10 +/* 06DDB0 7F039280 28610008 */ slti $at, $v1, 8 +/* 06DDB4 7F039284 10200010 */ beqz $at, .L7F0392C8 +/* 06DDB8 7F039288 00034880 */ sll $t1, $v1, 2 +/* 06DDBC 7F03928C 01234823 */ subu $t1, $t1, $v1 +/* 06DDC0 7F039290 000948C0 */ sll $t1, $t1, 3 +/* 06DDC4 7F039294 3C0C8007 */ lui $t4, %hi(sfx_related+4) +/* 06DDC8 7F039298 01896021 */ addu $t4, $t4, $t1 +/* 06DDCC 7F03929C 8D8C9B74 */ lw $t4, %lo(sfx_related+4)($t4) +/* 06DDD0 7F0392A0 02C02025 */ move $a0, $s6 +/* 06DDD4 7F0392A4 02402825 */ move $a1, $s2 +/* 06DDD8 7F0392A8 018A082A */ slt $at, $t4, $t2 +/* 06DDDC 7F0392AC 50200007 */ beql $at, $zero, .L7F0392CC +/* 06DDE0 7F0392B0 26520005 */ addiu $s2, $s2, 5 +/* 06DDE4 7F0392B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06DDE8 7F0392B8 92260004 */ lbu $a2, 4($s1) +/* 06DDEC 7F0392BC 00409025 */ move $s2, $v0 +/* 06DDF0 7F0392C0 1000F0B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DDF4 7F0392C4 02C28821 */ addu $s1, $s6, $v0 +.L7F0392C8: +/* 06DDF8 7F0392C8 26520005 */ addiu $s2, $s2, 5 +.L7F0392CC: +/* 06DDFC 7F0392CC 1000F0AF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DE00 7F0392D0 26310005 */ addiu $s1, $s1, 5 +actionCB_Set_Object_Path_27_Type_Object_2: +/* 06DE04 7F0392D4 0FC0D50D */ jal get_ptr_path_for_pathnum +/* 06DE08 7F0392D8 92240001 */ lbu $a0, 1($s1) +/* 06DE0C 7F0392DC 8FAB07B0 */ lw $t3, 0x7b0($sp) +/* 06DE10 7F0392E0 26520002 */ addiu $s2, $s2, 2 +/* 06DE14 7F0392E4 11600003 */ beqz $t3, .L7F0392F4 +/* 06DE18 7F0392E8 00000000 */ nop +/* 06DE1C 7F0392EC AD6200A4 */ sw $v0, 0xa4($t3) +/* 06DE20 7F0392F0 AD6000A8 */ sw $zero, 0xa8($t3) +.L7F0392F4: +/* 06DE24 7F0392F4 1000F0A5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DE28 7F0392F8 26310002 */ addiu $s1, $s1, 2 +actionCC_Set_Speed_Moving_Vehicle_27_Type_Object_5: +/* 06DE2C 7F0392FC 922F0001 */ lbu $t7, 1($s1) +/* 06DE30 7F039300 92290002 */ lbu $t1, 2($s1) +/* 06DE34 7F039304 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 06DE38 7F039308 000F5200 */ sll $t2, $t7, 8 +/* 06DE3C 7F03930C 01496025 */ or $t4, $t2, $t1 +/* 06DE40 7F039310 448C8000 */ mtc1 $t4, $f16 +/* 06DE44 7F039314 44812000 */ mtc1 $at, $f4 +/* 06DE48 7F039318 92380003 */ lbu $t8, 3($s1) +/* 06DE4C 7F03931C 46808220 */ cvt.s.w $f8, $f16 +/* 06DE50 7F039320 922D0004 */ lbu $t5, 4($s1) +/* 06DE54 7F039324 0018CA00 */ sll $t9, $t8, 8 +/* 06DE58 7F039328 8FAB07B0 */ lw $t3, 0x7b0($sp) +/* 06DE5C 7F03932C 3C014670 */ li $at, 0x46700000 # 15360.000000 +/* 06DE60 7F039330 032D7025 */ or $t6, $t9, $t5 +/* 06DE64 7F039334 46044182 */ mul.s $f6, $f8, $f4 +/* 06DE68 7F039338 448E9000 */ mtc1 $t6, $f18 +/* 06DE6C 7F03933C 44815000 */ mtc1 $at, $f10 +/* 06DE70 7F039340 26520005 */ addiu $s2, $s2, 5 +/* 06DE74 7F039344 46809020 */ cvt.s.w $f0, $f18 +/* 06DE78 7F039348 11600003 */ beqz $t3, .L7F039358 +/* 06DE7C 7F03934C 460A3083 */ div.s $f2, $f6, $f10 +/* 06DE80 7F039350 E5620094 */ swc1 $f2, 0x94($t3) +/* 06DE84 7F039354 E5600098 */ swc1 $f0, 0x98($t3) +.L7F039358: +/* 06DE88 7F039358 1000F08C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DE8C 7F03935C 26310005 */ addiu $s1, $s1, 5 +actionCD_Set_Speed_Aircraft_Rotor_5: +/* 06DE90 7F039360 922F0001 */ lbu $t7, 1($s1) +/* 06DE94 7F039364 92290002 */ lbu $t1, 2($s1) +/* 06DE98 7F039368 92380003 */ lbu $t8, 3($s1) +/* 06DE9C 7F03936C 000F5200 */ sll $t2, $t7, 8 +/* 06DEA0 7F039370 01496025 */ or $t4, $t2, $t1 +/* 06DEA4 7F039374 448C8000 */ mtc1 $t4, $f16 +/* 06DEA8 7F039378 922D0004 */ lbu $t5, 4($s1) +/* 06DEAC 7F03937C 0018CA00 */ sll $t9, $t8, 8 +/* 06DEB0 7F039380 46808220 */ cvt.s.w $f8, $f16 +/* 06DEB4 7F039384 8FAB07AC */ lw $t3, 0x7ac($sp) +/* 06DEB8 7F039388 3C014561 */ li $at, 0x45610000 # 3600.000000 +/* 06DEBC 7F03938C 032D7025 */ or $t6, $t9, $t5 +/* 06DEC0 7F039390 448E9000 */ mtc1 $t6, $f18 +/* 06DEC4 7F039394 44813000 */ mtc1 $at, $f6 +/* 06DEC8 7F039398 461A4102 */ mul.s $f4, $f8, $f26 +/* 06DECC 7F03939C 26520005 */ addiu $s2, $s2, 5 +/* 06DED0 7F0393A0 46809020 */ cvt.s.w $f0, $f18 +/* 06DED4 7F0393A4 11600003 */ beqz $t3, .L7F0393B4 +/* 06DED8 7F0393A8 46062083 */ div.s $f2, $f4, $f6 +/* 06DEDC 7F0393AC E5620090 */ swc1 $f2, 0x90($t3) +/* 06DEE0 7F0393B0 E5600094 */ swc1 $f0, 0x94($t3) +.L7F0393B4: +/* 06DEE4 7F0393B4 1000F075 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DEE8 7F0393B8 26310005 */ addiu $s1, $s1, 5 +actionCE_Detect_If_Currently_In_Intro_Camera_RVL_If_So_2: +/* 06DEEC 7F0393BC 0FC1E94A */ jal get_camera_mode +/* 06DEF0 7F0393C0 00000000 */ nop +/* 06DEF4 7F0393C4 24010001 */ li $at, 1 +/* 06DEF8 7F0393C8 50410006 */ beql $v0, $at, .L7F0393E4 +/* 06DEFC 7F0393CC 02C02025 */ move $a0, $s6 +/* 06DF00 7F0393D0 0FC1E94A */ jal get_camera_mode +/* 06DF04 7F0393D4 00000000 */ nop +/* 06DF08 7F0393D8 24010002 */ li $at, 2 +/* 06DF0C 7F0393DC 14410007 */ bne $v0, $at, .L7F0393FC +/* 06DF10 7F0393E0 02C02025 */ move $a0, $s6 +.L7F0393E4: +/* 06DF14 7F0393E4 02402825 */ move $a1, $s2 +/* 06DF18 7F0393E8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06DF1C 7F0393EC 92260001 */ lbu $a2, 1($s1) +/* 06DF20 7F0393F0 00409025 */ move $s2, $v0 +/* 06DF24 7F0393F4 1000F065 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF28 7F0393F8 02C28821 */ addu $s1, $s6, $v0 +.L7F0393FC: +/* 06DF2C 7F0393FC 26520002 */ addiu $s2, $s2, 2 +/* 06DF30 7F039400 1000F062 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF34 7F039404 26310002 */ addiu $s1, $s1, 2 +actionCF_Detect_If_Currently_In_Intro_Swirl_RVL_If_So_2: +/* 06DF38 7F039408 0FC1E94A */ jal get_camera_mode +/* 06DF3C 7F03940C 00000000 */ nop +/* 06DF40 7F039410 24010003 */ li $at, 3 +/* 06DF44 7F039414 14410007 */ bne $v0, $at, .L7F039434 +/* 06DF48 7F039418 02C02025 */ move $a0, $s6 +/* 06DF4C 7F03941C 02402825 */ move $a1, $s2 +/* 06DF50 7F039420 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06DF54 7F039424 92260001 */ lbu $a2, 1($s1) +/* 06DF58 7F039428 00409025 */ move $s2, $v0 +/* 06DF5C 7F03942C 1000F057 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF60 7F039430 02C28821 */ addu $s1, $s6, $v0 +.L7F039434: +/* 06DF64 7F039434 26520002 */ addiu $s2, $s2, 2 +/* 06DF68 7F039438 1000F054 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF6C 7F03943C 26310002 */ addiu $s1, $s1, 2 +actionD0_Change_Animation_Type_Of_Type_16_Monitor_4: +/* 06DF70 7F039440 0FC15C30 */ jal get_handle_to_tagged_object +/* 06DF74 7F039444 92240001 */ lbu $a0, 1($s1) +/* 06DF78 7F039448 1040001D */ beqz $v0, .L7F0394C0 +/* 06DF7C 7F03944C 00403025 */ move $a2, $v0 +/* 06DF80 7F039450 8C580010 */ lw $t8, 0x10($v0) +/* 06DF84 7F039454 5300001B */ beql $t8, $zero, .L7F0394C4 +/* 06DF88 7F039458 26520004 */ addiu $s2, $s2, 4 +/* 06DF8C 7F03945C 90430003 */ lbu $v1, 3($v0) +/* 06DF90 7F039460 2401000A */ li $at, 10 +/* 06DF94 7F039464 24440080 */ addiu $a0, $v0, 0x80 +/* 06DF98 7F039468 54610007 */ bnel $v1, $at, .L7F039488 +/* 06DF9C 7F03946C 2401000B */ li $at, 11 +/* 06DFA0 7F039470 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 06DFA4 7F039474 92250003 */ lbu $a1, 3($s1) +/* 06DFA8 7F039478 26520004 */ addiu $s2, $s2, 4 +/* 06DFAC 7F03947C 1000F043 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DFB0 7F039480 26310004 */ addiu $s1, $s1, 4 +/* 06DFB4 7F039484 2401000B */ li $at, 11 +.L7F039488: +/* 06DFB8 7F039488 5461000E */ bnel $v1, $at, .L7F0394C4 +/* 06DFBC 7F03948C 26520004 */ addiu $s2, $s2, 4 +/* 06DFC0 7F039490 92220002 */ lbu $v0, 2($s1) +/* 06DFC4 7F039494 28410004 */ slti $at, $v0, 4 +/* 06DFC8 7F039498 10200009 */ beqz $at, .L7F0394C0 +/* 06DFCC 7F03949C 0002C8C0 */ sll $t9, $v0, 3 +/* 06DFD0 7F0394A0 0322C823 */ subu $t9, $t9, $v0 +/* 06DFD4 7F0394A4 0019C880 */ sll $t9, $t9, 2 +/* 06DFD8 7F0394A8 0322C821 */ addu $t9, $t9, $v0 +/* 06DFDC 7F0394AC 0019C880 */ sll $t9, $t9, 2 +/* 06DFE0 7F0394B0 00D92021 */ addu $a0, $a2, $t9 +/* 06DFE4 7F0394B4 24840080 */ addiu $a0, $a0, 0x80 +/* 06DFE8 7F0394B8 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 06DFEC 7F0394BC 92250003 */ lbu $a1, 3($s1) +.L7F0394C0: +/* 06DFF0 7F0394C0 26520004 */ addiu $s2, $s2, 4 +.L7F0394C4: +/* 06DFF4 7F0394C4 1000F031 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DFF8 7F0394C8 26310004 */ addiu $s1, $s1, 4 +actionD1_If_Bond_In_Tank_RVL_2: +/* 06DFFC 7F0394CC 0FC1F39E */ jal get_intank_flag +/* 06E000 7F0394D0 00000000 */ nop +/* 06E004 7F0394D4 24010001 */ li $at, 1 +/* 06E008 7F0394D8 14410007 */ bne $v0, $at, .L7F0394F8 +/* 06E00C 7F0394DC 02C02025 */ move $a0, $s6 +/* 06E010 7F0394E0 02402825 */ move $a1, $s2 +/* 06E014 7F0394E4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E018 7F0394E8 92260001 */ lbu $a2, 1($s1) +/* 06E01C 7F0394EC 00409025 */ move $s2, $v0 +/* 06E020 7F0394F0 1000F026 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E024 7F0394F4 02C28821 */ addu $s1, $s6, $v0 +.L7F0394F8: +/* 06E028 7F0394F8 26520002 */ addiu $s2, $s2, 2 +/* 06E02C 7F0394FC 1000F023 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E030 7F039500 26310002 */ addiu $s1, $s1, 2 +actionD2_Exit_Level_1: +/* 06E034 7F039504 3C0D8003 */ lui $t5, %hi(camera_8003642C) +/* 06E038 7F039508 8DAD642C */ lw $t5, %lo(camera_8003642C)($t5) +/* 06E03C 7F03950C 3C0E8003 */ lui $t6, %hi(camera_80036434) +/* 06E040 7F039510 11A0000A */ beqz $t5, .L7F03953C +/* 06E044 7F039514 00000000 */ nop +/* 06E048 7F039518 8DCE6434 */ lw $t6, %lo(camera_80036434)($t6) +/* 06E04C 7F03951C 240F0001 */ li $t7, 1 +/* 06E050 7F039520 3C018003 */ lui $at, %hi(camera_80036434) +/* 06E054 7F039524 55C00008 */ bnezl $t6, .L7F039548 +/* 06E058 7F039528 26520001 */ addiu $s2, $s2, 1 +/* 06E05C 7F03952C AC2F6434 */ sw $t7, %lo(camera_80036434)($at) +/* 06E060 7F039530 26520001 */ addiu $s2, $s2, 1 +/* 06E064 7F039534 1000F015 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E068 7F039538 26310001 */ addiu $s1, $s1, 1 +.L7F03953C: +/* 06E06C 7F03953C 0C001A5A */ jal return_to_title_from_level_end +/* 06E070 7F039540 00000000 */ nop +/* 06E074 7F039544 26520001 */ addiu $s2, $s2, 1 +.L7F039548: +/* 06E078 7F039548 1000F010 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E07C 7F03954C 26310001 */ addiu $s1, $s1, 1 +actionD3_Return_From_Camera_Scene_1: +/* 06E080 7F039550 0FC1EA6E */ jal set_camera_mode +/* 06E084 7F039554 24040008 */ li $a0, 8 +/* 06E088 7F039558 26520001 */ addiu $s2, $s2, 1 +/* 06E08C 7F03955C 1000F00B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E090 7F039560 26310001 */ addiu $s1, $s1, 1 +actionD4_Camera_Looks_At_Bond_From_Preset_3: +/* 06E094 7F039564 922A0001 */ lbu $t2, 1($s1) +/* 06E098 7F039568 922C0002 */ lbu $t4, 2($s1) +/* 06E09C 7F03956C 3C0F8007 */ lui $t7, %hi(ptr_2xxxpresets) +/* 06E0A0 7F039570 000A4A00 */ sll $t1, $t2, 8 +/* 06E0A4 7F039574 012C1025 */ or $v0, $t1, $t4 +/* 06E0A8 7F039578 304BFFFF */ andi $t3, $v0, 0xffff +/* 06E0AC 7F03957C 29612710 */ slti $at, $t3, 0x2710 +/* 06E0B0 7F039580 1020000C */ beqz $at, .L7F0395B4 +/* 06E0B4 7F039584 01601825 */ move $v1, $t3 +/* 06E0B8 7F039588 000BC080 */ sll $t8, $t3, 2 +/* 06E0BC 7F03958C 030BC023 */ subu $t8, $t8, $t3 +/* 06E0C0 7F039590 3C198007 */ lui $t9, %hi(ptr_0xxxpresets) +/* 06E0C4 7F039594 8F395D18 */ lw $t9, %lo(ptr_0xxxpresets)($t9) +/* 06E0C8 7F039598 0018C080 */ sll $t8, $t8, 2 +/* 06E0CC 7F03959C 030BC023 */ subu $t8, $t8, $t3 +/* 06E0D0 7F0395A0 0018C080 */ sll $t8, $t8, 2 +/* 06E0D4 7F0395A4 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E0D8 7F0395A8 03196821 */ addu $t5, $t8, $t9 +/* 06E0DC 7F0395AC 1000000B */ b .L7F0395DC +/* 06E0E0 7F0395B0 AC2D99F8 */ sw $t5, %lo(dword_CODE_bss_800799F8)($at) +.L7F0395B4: +/* 06E0E4 7F0395B4 8DEF5D1C */ lw $t7, %lo(ptr_2xxxpresets)($t7) +/* 06E0E8 7F0395B8 00037100 */ sll $t6, $v1, 4 +/* 06E0EC 7F0395BC 01C37021 */ addu $t6, $t6, $v1 +/* 06E0F0 7F0395C0 000E7080 */ sll $t6, $t6, 2 +/* 06E0F4 7F0395C4 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06E0F8 7F0395C8 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06E0FC 7F0395CC 01CF5021 */ addu $t2, $t6, $t7 +/* 06E100 7F0395D0 01414821 */ addu $t1, $t2, $at +/* 06E104 7F0395D4 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E108 7F0395D8 AC2999F8 */ sw $t1, %lo(dword_CODE_bss_800799F8)($at) +.L7F0395DC: +/* 06E10C 7F0395DC 0FC1EA6E */ jal set_camera_mode +/* 06E110 7F0395E0 24040007 */ li $a0, 7 +/* 06E114 7F0395E4 26520003 */ addiu $s2, $s2, 3 +/* 06E118 7F0395E8 1000EFE8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E11C 7F0395EC 26310003 */ addiu $s1, $s1, 3 +actionD5_Go_To_Camera_Position_6: +/* 06E120 7F0395F0 0FC15C20 */ jal sub_GAME_7F057080 +/* 06E124 7F0395F4 92240001 */ lbu $a0, 1($s1) +/* 06E128 7F0395F8 1040001A */ beqz $v0, .L7F039664 +/* 06E12C 7F0395FC 00408025 */ move $s0, $v0 +/* 06E130 7F039600 0FC15AC7 */ jal check_if_object_type_has_been_loaded +/* 06E134 7F039604 00402025 */ move $a0, $v0 +/* 06E138 7F039608 04420017 */ bltzl $v0, .L7F039668 +/* 06E13C 7F03960C 26520006 */ addiu $s2, $s2, 6 +/* 06E140 7F039610 860C0006 */ lh $t4, 6($s0) +/* 06E144 7F039614 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 06E148 7F039618 01822021 */ addu $a0, $t4, $v0 +/* 06E14C 7F03961C 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E150 7F039620 AC2099F8 */ sw $zero, %lo(dword_CODE_bss_800799F8)($at) +/* 06E154 7F039624 3C018008 */ lui $at, %hi(dword_CODE_bss_800799FC) +/* 06E158 7F039628 AC2299FC */ sw $v0, %lo(dword_CODE_bss_800799FC)($at) +/* 06E15C 7F03962C 922B0002 */ lbu $t3, 2($s1) +/* 06E160 7F039630 92390003 */ lbu $t9, 3($s1) +/* 06E164 7F039634 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A18) +/* 06E168 7F039638 000BC200 */ sll $t8, $t3, 8 +/* 06E16C 7F03963C 03196825 */ or $t5, $t8, $t9 +/* 06E170 7F039640 AC2D9A18 */ sw $t5, %lo(dword_CODE_bss_80079A18)($at) +/* 06E174 7F039644 922E0004 */ lbu $t6, 4($s1) +/* 06E178 7F039648 922A0005 */ lbu $t2, 5($s1) +/* 06E17C 7F03964C 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A1C) +/* 06E180 7F039650 000E7A00 */ sll $t7, $t6, 8 +/* 06E184 7F039654 01EA4825 */ or $t1, $t7, $t2 +/* 06E188 7F039658 AC299A1C */ sw $t1, %lo(dword_CODE_bss_80079A1C)($at) +/* 06E18C 7F03965C 0FC1EA6E */ jal set_camera_mode +/* 06E190 7F039660 24040007 */ li $a0, 7 +.L7F039664: +/* 06E194 7F039664 26520006 */ addiu $s2, $s2, 6 +.L7F039668: +/* 06E198 7F039668 1000EFC8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E19C 7F03966C 26310006 */ addiu $s1, $s1, 6 +actionD6_If_Less_Than_Elevation_RVL_4: +/* 06E1A0 7F039670 922C0001 */ lbu $t4, 1($s1) +/* 06E1A4 7F039674 92380002 */ lbu $t8, 2($s1) +/* 06E1A8 7F039678 000C5A00 */ sll $t3, $t4, 8 +/* 06E1AC 7F03967C 0178C825 */ or $t9, $t3, $t8 +/* 06E1B0 7F039680 00196C00 */ sll $t5, $t9, 0x10 +/* 06E1B4 7F039684 000D7403 */ sra $t6, $t5, 0x10 +/* 06E1B8 7F039688 448E5000 */ mtc1 $t6, $f10 +/* 06E1BC 7F03968C 00000000 */ nop +/* 06E1C0 7F039690 468054A0 */ cvt.s.w $f18, $f10 +/* 06E1C4 7F039694 0FC225E6 */ jal get_curplayer_positiondata +/* 06E1C8 7F039698 E7B2014C */ swc1 $f18, 0x14c($sp) +/* 06E1CC 7F03969C C450000C */ lwc1 $f16, 0xc($v0) +/* 06E1D0 7F0396A0 C7A8014C */ lwc1 $f8, 0x14c($sp) +/* 06E1D4 7F0396A4 02C02025 */ move $a0, $s6 +/* 06E1D8 7F0396A8 02402825 */ move $a1, $s2 +/* 06E1DC 7F0396AC 4608803C */ c.lt.s $f16, $f8 +/* 06E1E0 7F0396B0 00000000 */ nop +/* 06E1E4 7F0396B4 45020007 */ bc1fl .L7F0396D4 +/* 06E1E8 7F0396B8 26520004 */ addiu $s2, $s2, 4 +/* 06E1EC 7F0396BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E1F0 7F0396C0 92260003 */ lbu $a2, 3($s1) +/* 06E1F4 7F0396C4 00409025 */ move $s2, $v0 +/* 06E1F8 7F0396C8 1000EFB0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E1FC 7F0396CC 02C28821 */ addu $s1, $s6, $v0 +/* 06E200 7F0396D0 26520004 */ addiu $s2, $s2, 4 +.L7F0396D4: +/* 06E204 7F0396D4 1000EFAD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E208 7F0396D8 26310004 */ addiu $s1, $s1, 4 +actionD7_Disable_Text_Variable_2: +/* 06E20C 7F0396DC 24040004 */ li $a0, 4 +/* 06E210 7F0396E0 0FC1A96A */ jal set_unset_bitflags +/* 06E214 7F0396E4 00002825 */ move $a1, $zero +/* 06E218 7F0396E8 24040002 */ li $a0, 2 +/* 06E21C 7F0396EC 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 06E220 7F0396F0 00002825 */ move $a1, $zero +/* 06E224 7F0396F4 92250001 */ lbu $a1, 1($s1) +/* 06E228 7F0396F8 30AF0002 */ andi $t7, $a1, 2 +/* 06E22C 7F0396FC 55E00005 */ bnezl $t7, .L7F039714 +/* 06E230 7F039700 30AA0001 */ andi $t2, $a1, 1 +/* 06E234 7F039704 0FC228E7 */ jal set_flags_in_BONDdata_stationary_intro_cam +/* 06E238 7F039708 24040002 */ li $a0, 2 +/* 06E23C 7F03970C 92250001 */ lbu $a1, 1($s1) +/* 06E240 7F039710 30AA0001 */ andi $t2, $a1, 1 +.L7F039714: +/* 06E244 7F039714 55400005 */ bnezl $t2, .L7F03972C +/* 06E248 7F039718 30A90004 */ andi $t1, $a1, 4 +/* 06E24C 7F03971C 0FC22A51 */ jal sub_GAME_7F08A944 +/* 06E250 7F039720 24040002 */ li $a0, 2 +/* 06E254 7F039724 92250001 */ lbu $a1, 1($s1) +/* 06E258 7F039728 30A90004 */ andi $t1, $a1, 4 +.L7F03972C: +/* 06E25C 7F03972C 15200003 */ bnez $t1, .L7F03973C +/* 06E260 7F039730 24040010 */ li $a0, 16 +/* 06E264 7F039734 0FC15858 */ jal set_unset_clock_lock_bits +/* 06E268 7F039738 00002825 */ move $a1, $zero +.L7F03973C: +/* 06E26C 7F03973C 3C018003 */ lui $at, %hi(D_800364B0) +/* 06E270 7F039740 AC2064B0 */ sw $zero, %lo(D_800364B0)($at) +/* 06E274 7F039744 26520002 */ addiu $s2, $s2, 2 +/* 06E278 7F039748 1000EF90 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E27C 7F03974C 26310002 */ addiu $s1, $s1, 2 +actionD8_Enable_All_On_Screen_Displays_1: +/* 06E280 7F039750 24040004 */ li $a0, 4 +/* 06E284 7F039754 0FC1A96A */ jal set_unset_bitflags +/* 06E288 7F039758 24050001 */ li $a1, 1 +/* 06E28C 7F03975C 24040002 */ li $a0, 2 +/* 06E290 7F039760 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 06E294 7F039764 24050001 */ li $a1, 1 +/* 06E298 7F039768 0FC228E0 */ jal unset_flags_in_BONDdata_stationary_intro_cam +/* 06E29C 7F03976C 24040002 */ li $a0, 2 +/* 06E2A0 7F039770 0FC22A4A */ jal sub_GAME_7F08A928 +/* 06E2A4 7F039774 24040002 */ li $a0, 2 +/* 06E2A8 7F039778 24040010 */ li $a0, 16 +/* 06E2AC 7F03977C 0FC15858 */ jal set_unset_clock_lock_bits +/* 06E2B0 7F039780 24050001 */ li $a1, 1 +/* 06E2B4 7F039784 240C0001 */ li $t4, 1 +/* 06E2B8 7F039788 3C018003 */ lui $at, %hi(D_800364B0) +/* 06E2BC 7F03978C AC2C64B0 */ sw $t4, %lo(D_800364B0)($at) +/* 06E2C0 7F039790 26520001 */ addiu $s2, $s2, 1 +/* 06E2C4 7F039794 1000EF7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E2C8 7F039798 26310001 */ addiu $s1, $s1, 1 +actionD9_GuardIDMovedToPresetReturnLoopIfSuccessful_5: +/* 06E2CC 7F03979C 922B0002 */ lbu $t3, 2($s1) +/* 06E2D0 7F0397A0 92390003 */ lbu $t9, 3($s1) +/* 06E2D4 7F0397A4 02E02025 */ move $a0, $s7 +/* 06E2D8 7F0397A8 000BC200 */ sll $t8, $t3, 8 +/* 06E2DC 7F0397AC 92250001 */ lbu $a1, 1($s1) +/* 06E2E0 7F0397B0 0000A025 */ move $s4, $zero +/* 06E2E4 7F0397B4 0FC0CC10 */ jal get_handle_for_guard_id +/* 06E2E8 7F0397B8 03199825 */ or $s3, $t8, $t9 +/* 06E2EC 7F0397BC 1040005E */ beqz $v0, .L7F039938 +/* 06E2F0 7F0397C0 00408025 */ move $s0, $v0 +/* 06E2F4 7F0397C4 02E02025 */ move $a0, $s7 +/* 06E2F8 7F0397C8 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 06E2FC 7F0397CC 02602825 */ move $a1, $s3 +/* 06E300 7F0397D0 28412710 */ slti $at, $v0, 0x2710 +/* 06E304 7F0397D4 1020000A */ beqz $at, .L7F039800 +/* 06E308 7F0397D8 00027900 */ sll $t7, $v0, 4 +/* 06E30C 7F0397DC 00026880 */ sll $t5, $v0, 2 +/* 06E310 7F0397E0 01A26823 */ subu $t5, $t5, $v0 +/* 06E314 7F0397E4 000D6880 */ sll $t5, $t5, 2 +/* 06E318 7F0397E8 3C0E8007 */ lui $t6, %hi(ptr_0xxxpresets) +/* 06E31C 7F0397EC 8DCE5D18 */ lw $t6, %lo(ptr_0xxxpresets)($t6) +/* 06E320 7F0397F0 01A26823 */ subu $t5, $t5, $v0 +/* 06E324 7F0397F4 000D6880 */ sll $t5, $t5, 2 +/* 06E328 7F0397F8 10000009 */ b .L7F039820 +/* 06E32C 7F0397FC 01AE1821 */ addu $v1, $t5, $t6 +.L7F039800: +/* 06E330 7F039800 3C0A8007 */ lui $t2, %hi(ptr_2xxxpresets) +/* 06E334 7F039804 8D4A5D1C */ lw $t2, %lo(ptr_2xxxpresets)($t2) +/* 06E338 7F039808 01E27821 */ addu $t7, $t7, $v0 +/* 06E33C 7F03980C 000F7880 */ sll $t7, $t7, 2 +/* 06E340 7F039810 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06E344 7F039814 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06E348 7F039818 01EA1821 */ addu $v1, $t7, $t2 +/* 06E34C 7F03981C 00611821 */ addu $v1, $v1, $at +.L7F039820: +/* 06E350 7F039820 C46C0018 */ lwc1 $f12, 0x18($v1) +/* 06E354 7F039824 C46E0020 */ lwc1 $f14, 0x20($v1) +/* 06E358 7F039828 0FC16A8C */ jal atan2f +/* 06E35C 7F03982C AFA30134 */ sw $v1, 0x134($sp) +/* 06E360 7F039830 8FA30134 */ lw $v1, 0x134($sp) +/* 06E364 7F039834 E7A00130 */ swc1 $f0, 0x130($sp) +/* 06E368 7F039838 00002825 */ move $a1, $zero +/* 06E36C 7F03983C C4640000 */ lwc1 $f4, ($v1) +/* 06E370 7F039840 E7A40124 */ swc1 $f4, 0x124($sp) +/* 06E374 7F039844 C4660004 */ lwc1 $f6, 4($v1) +/* 06E378 7F039848 E7A60128 */ swc1 $f6, 0x128($sp) +/* 06E37C 7F03984C C46A0008 */ lwc1 $f10, 8($v1) +/* 06E380 7F039850 E7AA012C */ swc1 $f10, 0x12c($sp) +/* 06E384 7F039854 8C690028 */ lw $t1, 0x28($v1) +/* 06E388 7F039858 AFA90120 */ sw $t1, 0x120($sp) +/* 06E38C 7F03985C 0FC0F416 */ jal sub_GAME_7F03D058 +/* 06E390 7F039860 8E040018 */ lw $a0, 0x18($s0) +/* 06E394 7F039864 27A40124 */ addiu $a0, $sp, 0x124 +/* 06E398 7F039868 27A50120 */ addiu $a1, $sp, 0x120 +/* 06E39C 7F03986C 8FA60130 */ lw $a2, 0x130($sp) +/* 06E3A0 7F039870 0FC0CFD2 */ jal sub_GAME_7F033F48 +/* 06E3A4 7F039874 24070001 */ li $a3, 1 +/* 06E3A8 7F039878 1040002C */ beqz $v0, .L7F03992C +/* 06E3AC 7F03987C C7B20124 */ lwc1 $f18, 0x124($sp) +/* 06E3B0 7F039880 8E0C0018 */ lw $t4, 0x18($s0) +/* 06E3B4 7F039884 E5920008 */ swc1 $f18, 8($t4) +/* 06E3B8 7F039888 8E0B0018 */ lw $t3, 0x18($s0) +/* 06E3BC 7F03988C C7B00128 */ lwc1 $f16, 0x128($sp) +/* 06E3C0 7F039890 E570000C */ swc1 $f16, 0xc($t3) +/* 06E3C4 7F039894 8E180018 */ lw $t8, 0x18($s0) +/* 06E3C8 7F039898 C7A8012C */ lwc1 $f8, 0x12c($sp) +/* 06E3CC 7F03989C E7080010 */ swc1 $f8, 0x10($t8) +/* 06E3D0 7F0398A0 8E0D0018 */ lw $t5, 0x18($s0) +/* 06E3D4 7F0398A4 8FB90120 */ lw $t9, 0x120($sp) +/* 06E3D8 7F0398A8 ADB90014 */ sw $t9, 0x14($t5) +/* 06E3DC 7F0398AC 8E0E0014 */ lw $t6, 0x14($s0) +/* 06E3E0 7F0398B0 8E04001C */ lw $a0, 0x1c($s0) +/* 06E3E4 7F0398B4 35CF0001 */ ori $t7, $t6, 1 +/* 06E3E8 7F0398B8 AE0F0014 */ sw $t7, 0x14($s0) +/* 06E3EC 7F0398BC 0FC1B34F */ jal setsubroty +/* 06E3F0 7F0398C0 8FA50130 */ lw $a1, 0x130($sp) +/* 06E3F4 7F0398C4 8E04001C */ lw $a0, 0x1c($s0) +/* 06E3F8 7F0398C8 0FC1B303 */ jal setsuboffset +/* 06E3FC 7F0398CC 27A50124 */ addiu $a1, $sp, 0x124 +/* 06E400 7F0398D0 0FC08365 */ jal sub_GAME_7F020D94 +/* 06E404 7F0398D4 02002025 */ move $a0, $s0 +/* 06E408 7F0398D8 3C028008 */ lui $v0, %hi(pPlayer) +/* 06E40C 7F0398DC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 06E410 7F0398E0 8E090018 */ lw $t1, 0x18($s0) +/* 06E414 7F0398E4 C7A40124 */ lwc1 $f4, 0x124($sp) +/* 06E418 7F0398E8 8C4A00A8 */ lw $t2, 0xa8($v0) +/* 06E41C 7F0398EC 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 06E420 7F0398F0 24140001 */ li $s4, 1 +/* 06E424 7F0398F4 1549000D */ bne $t2, $t1, .L7F03992C +/* 06E428 7F0398F8 00000000 */ nop +/* 06E42C 7F0398FC E444048C */ swc1 $f4, 0x48c($v0) +/* 06E430 7F039900 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 06E434 7F039904 C7A60128 */ lwc1 $f6, 0x128($sp) +/* 06E438 7F039908 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 06E43C 7F03990C 3C198008 */ lui $t9, %hi(pPlayer) +/* 06E440 7F039910 E5860490 */ swc1 $f6, 0x490($t4) +/* 06E444 7F039914 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 06E448 7F039918 C7AA012C */ lwc1 $f10, 0x12c($sp) +/* 06E44C 7F03991C E56A0494 */ swc1 $f10, 0x494($t3) +/* 06E450 7F039920 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 06E454 7F039924 8FB80120 */ lw $t8, 0x120($sp) +/* 06E458 7F039928 AF380488 */ sw $t8, 0x488($t9) +.L7F03992C: +/* 06E45C 7F03992C 8E040018 */ lw $a0, 0x18($s0) +/* 06E460 7F039930 0FC0F416 */ jal sub_GAME_7F03D058 +/* 06E464 7F039934 24050001 */ li $a1, 1 +.L7F039938: +/* 06E468 7F039938 12800007 */ beqz $s4, .L7F039958 +/* 06E46C 7F03993C 02C02025 */ move $a0, $s6 +/* 06E470 7F039940 02402825 */ move $a1, $s2 +/* 06E474 7F039944 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E478 7F039948 92260004 */ lbu $a2, 4($s1) +/* 06E47C 7F03994C 00409025 */ move $s2, $v0 +/* 06E480 7F039950 1000EF0E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E484 7F039954 02C28821 */ addu $s1, $s6, $v0 +.L7F039958: +/* 06E488 7F039958 26520005 */ addiu $s2, $s2, 5 +/* 06E48C 7F03995C 1000EF0B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E490 7F039960 26310005 */ addiu $s1, $s1, 5 +actionDA_Fade_Out_From_Cut_Scene_1: +/* 06E494 7F039964 3C0D8003 */ lui $t5, %hi(stop_time_flag) +/* 06E498 7F039968 8DAD64A0 */ lw $t5, %lo(stop_time_flag)($t5) +/* 06E49C 7F03996C 24010002 */ li $at, 2 +/* 06E4A0 7F039970 00002025 */ move $a0, $zero +/* 06E4A4 7F039974 11A10008 */ beq $t5, $at, .L7F039998 +/* 06E4A8 7F039978 00002825 */ move $a1, $zero +/* 06E4AC 7F03997C 4407A000 */ mfc1 $a3, $f20 +/* 06E4B0 7F039980 0FC201EC */ jal set_rgba_tint +/* 06E4B4 7F039984 00003025 */ move $a2, $zero +/* 06E4B8 7F039988 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 06E4BC 7F03998C 44817000 */ mtc1 $at, $f14 +/* 06E4C0 7F039990 0FC20216 */ jal fade_to_over_seconds +/* 06E4C4 7F039994 4600B306 */ mov.s $f12, $f22 +.L7F039998: +/* 06E4C8 7F039998 26520001 */ addiu $s2, $s2, 1 +/* 06E4CC 7F03999C 1000EEFB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E4D0 7F0399A0 26310001 */ addiu $s1, $s1, 1 +actionDB_Fade_In_From_Black_Reset_DA_1: +/* 06E4D4 7F0399A4 3C0E8003 */ lui $t6, %hi(stop_time_flag) +/* 06E4D8 7F0399A8 8DCE64A0 */ lw $t6, %lo(stop_time_flag)($t6) +/* 06E4DC 7F0399AC 24010002 */ li $at, 2 +/* 06E4E0 7F0399B0 00002025 */ move $a0, $zero +/* 06E4E4 7F0399B4 11C10007 */ beq $t6, $at, .L7F0399D4 +/* 06E4E8 7F0399B8 00002825 */ move $a1, $zero +/* 06E4EC 7F0399BC 00003025 */ move $a2, $zero +/* 06E4F0 7F0399C0 0FC201EC */ jal set_rgba_tint +/* 06E4F4 7F0399C4 3C073F80 */ li $a3, 0x3F800000 # 1.000000 +/* 06E4F8 7F0399C8 4600B306 */ mov.s $f12, $f22 +/* 06E4FC 7F0399CC 0FC20216 */ jal fade_to_over_seconds +/* 06E500 7F0399D0 4600A386 */ mov.s $f14, $f20 +.L7F0399D4: +/* 06E504 7F0399D4 26520001 */ addiu $s2, $s2, 1 +/* 06E508 7F0399D8 1000EEEC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E50C 7F0399DC 26310001 */ addiu $s1, $s1, 1 +actionDC_RVL_When_Fade_Complete_2: +/* 06E510 7F0399E0 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 06E514 7F0399E4 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 06E518 7F0399E8 02C02025 */ move $a0, $s6 +/* 06E51C 7F0399EC 02402825 */ move $a1, $s2 +/* 06E520 7F0399F0 C5F203E4 */ lwc1 $f18, 0x3e4($t7) +/* 06E524 7F0399F4 4614903C */ c.lt.s $f18, $f20 +/* 06E528 7F0399F8 00000000 */ nop +/* 06E52C 7F0399FC 45020007 */ bc1fl .L7F039A1C +/* 06E530 7F039A00 26520002 */ addiu $s2, $s2, 2 +/* 06E534 7F039A04 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E538 7F039A08 92260001 */ lbu $a2, 1($s1) +/* 06E53C 7F039A0C 00409025 */ move $s2, $v0 +/* 06E540 7F039A10 1000EEDE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E544 7F039A14 02C28821 */ addu $s1, $s6, $v0 +/* 06E548 7F039A18 26520002 */ addiu $s2, $s2, 2 +.L7F039A1C: +/* 06E54C 7F039A1C 1000EEDB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E550 7F039A20 26310002 */ addiu $s1, $s1, 2 +actionDD_Remove_All_Guards_1: +/* 06E554 7F039A24 0FC07D4C */ jal get_numguards +/* 06E558 7F039A28 00000000 */ nop +/* 06E55C 7F039A2C 2443FFFF */ addiu $v1, $v0, -1 +/* 06E560 7F039A30 04600011 */ bltz $v1, .L7F039A78 +/* 06E564 7F039A34 26520001 */ addiu $s2, $s2, 1 +/* 06E568 7F039A38 00031100 */ sll $v0, $v1, 4 +/* 06E56C 7F039A3C 00431023 */ subu $v0, $v0, $v1 +/* 06E570 7F039A40 000210C0 */ sll $v0, $v0, 3 +/* 06E574 7F039A44 00431023 */ subu $v0, $v0, $v1 +/* 06E578 7F039A48 00021080 */ sll $v0, $v0, 2 +/* 06E57C 7F039A4C 8FCA0000 */ lw $t2, ($fp) +.L7F039A50: +/* 06E580 7F039A50 01421821 */ addu $v1, $t2, $v0 +/* 06E584 7F039A54 8C69001C */ lw $t1, 0x1c($v1) +/* 06E588 7F039A58 2442FE24 */ addiu $v0, $v0, -0x1dc +/* 06E58C 7F039A5C 11200004 */ beqz $t1, .L7F039A70 +/* 06E590 7F039A60 00000000 */ nop +/* 06E594 7F039A64 8C6C0014 */ lw $t4, 0x14($v1) +/* 06E598 7F039A68 358B0400 */ ori $t3, $t4, 0x400 +/* 06E59C 7F039A6C AC6B0014 */ sw $t3, 0x14($v1) +.L7F039A70: +/* 06E5A0 7F039A70 0443FFF7 */ bgezl $v0, .L7F039A50 +/* 06E5A4 7F039A74 8FCA0000 */ lw $t2, ($fp) +.L7F039A78: +/* 06E5A8 7F039A78 1000EEC4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E5AC 7F039A7C 26310001 */ addiu $s1, $s1, 1 +actionDE_Bring_Removed_Guards_Back_1: +/* 06E5B0 7F039A80 0FC07D4C */ jal get_numguards +/* 06E5B4 7F039A84 00000000 */ nop +/* 06E5B8 7F039A88 2443FFFF */ addiu $v1, $v0, -1 +/* 06E5BC 7F039A8C 0460000E */ bltz $v1, .L7F039AC8 +/* 06E5C0 7F039A90 00602025 */ move $a0, $v1 +/* 06E5C4 7F039A94 00031900 */ sll $v1, $v1, 4 +/* 06E5C8 7F039A98 00641823 */ subu $v1, $v1, $a0 +/* 06E5CC 7F039A9C 000318C0 */ sll $v1, $v1, 3 +/* 06E5D0 7F039AA0 00641823 */ subu $v1, $v1, $a0 +/* 06E5D4 7F039AA4 00031880 */ sll $v1, $v1, 2 +/* 06E5D8 7F039AA8 2404FBFF */ li $a0, -1025 +.L7F039AAC: +/* 06E5DC 7F039AAC 8FD80000 */ lw $t8, ($fp) +/* 06E5E0 7F039AB0 03031021 */ addu $v0, $t8, $v1 +/* 06E5E4 7F039AB4 8C590014 */ lw $t9, 0x14($v0) +/* 06E5E8 7F039AB8 2463FE24 */ addiu $v1, $v1, -0x1dc +/* 06E5EC 7F039ABC 03246824 */ and $t5, $t9, $a0 +/* 06E5F0 7F039AC0 0461FFFA */ bgez $v1, .L7F039AAC +/* 06E5F4 7F039AC4 AC4D0014 */ sw $t5, 0x14($v0) +.L7F039AC8: +/* 06E5F8 7F039AC8 26520001 */ addiu $s2, $s2, 1 +/* 06E5FC 7F039ACC 1000EEAF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E600 7F039AD0 26310001 */ addiu $s1, $s1, 1 +actionDF_Open_Type_16_Door_Used_Cut_Scenes_2: +/* 06E604 7F039AD4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06E608 7F039AD8 92240001 */ lbu $a0, 1($s1) +/* 06E60C 7F039ADC 10400011 */ beqz $v0, .L7F039B24 +/* 06E610 7F039AE0 00402025 */ move $a0, $v0 +/* 06E614 7F039AE4 8C4E0010 */ lw $t6, 0x10($v0) +/* 06E618 7F039AE8 51C0000F */ beql $t6, $zero, .L7F039B28 +/* 06E61C 7F039AEC 26520002 */ addiu $s2, $s2, 2 +/* 06E620 7F039AF0 C4500084 */ lwc1 $f16, 0x84($v0) +/* 06E624 7F039AF4 E45400B8 */ swc1 $f20, 0xb8($v0) +/* 06E628 7F039AF8 3C0F8005 */ lui $t7, %hi(global_timer) +/* 06E62C 7F039AFC E45000B4 */ swc1 $f16, 0xb4($v0) +/* 06E630 7F039B00 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 06E634 7F039B04 A04000BC */ sb $zero, 0xbc($v0) +/* 06E638 7F039B08 AC4F00EC */ sw $t7, 0xec($v0) +/* 06E63C 7F039B0C 0FC14AC0 */ jal sub_GAME_7F052B00 +/* 06E640 7F039B10 AFA2010C */ sw $v0, 0x10c($sp) +/* 06E644 7F039B14 0FC14D66 */ jal sub_GAME_7F053598 +/* 06E648 7F039B18 8FA4010C */ lw $a0, 0x10c($sp) +/* 06E64C 7F039B1C 0FC14EC4 */ jal sub_GAME_7F053B10 +/* 06E650 7F039B20 8FA4010C */ lw $a0, 0x10c($sp) +.L7F039B24: +/* 06E654 7F039B24 26520002 */ addiu $s2, $s2, 2 +.L7F039B28: +/* 06E658 7F039B28 1000EE98 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E65C 7F039B2C 26310002 */ addiu $s1, $s1, 2 +actionE0_Guard_ID_Draws_Weapon_num_3: +/* 06E660 7F039B30 02E02025 */ move $a0, $s7 +/* 06E664 7F039B34 0FC0CC10 */ jal get_handle_for_guard_id +/* 06E668 7F039B38 92250001 */ lbu $a1, 1($s1) +/* 06E66C 7F039B3C 10400003 */ beqz $v0, .L7F039B4C +/* 06E670 7F039B40 00402025 */ move $a0, $v0 +/* 06E674 7F039B44 0FC1487A */ jal set_0x4_in_runtime_flags_for_item_in_guards_hand +/* 06E678 7F039B48 92250002 */ lbu $a1, 2($s1) +.L7F039B4C: +/* 06E67C 7F039B4C 26520003 */ addiu $s2, $s2, 3 +/* 06E680 7F039B50 1000EE8E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E684 7F039B54 26310003 */ addiu $s1, $s1, 3 +actionE1_If_Fewer_than_This_Many_Players_Playing_RVL_3: +/* 06E688 7F039B58 0FC26919 */ jal get_num_players +/* 06E68C 7F039B5C 00000000 */ nop +/* 06E690 7F039B60 822A0001 */ lb $t2, 1($s1) +/* 06E694 7F039B64 02C02025 */ move $a0, $s6 +/* 06E698 7F039B68 02402825 */ move $a1, $s2 +/* 06E69C 7F039B6C 004A082A */ slt $at, $v0, $t2 +/* 06E6A0 7F039B70 50200007 */ beql $at, $zero, .L7F039B90 +/* 06E6A4 7F039B74 26520003 */ addiu $s2, $s2, 3 +/* 06E6A8 7F039B78 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E6AC 7F039B7C 92260002 */ lbu $a2, 2($s1) +/* 06E6B0 7F039B80 00409025 */ move $s2, $v0 +/* 06E6B4 7F039B84 1000EE81 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E6B8 7F039B88 02C28821 */ addu $s1, $s6, $v0 +/* 06E6BC 7F039B8C 26520003 */ addiu $s2, $s2, 3 +.L7F039B90: +/* 06E6C0 7F039B90 1000EE7E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E6C4 7F039B94 26310003 */ addiu $s1, $s1, 3 +actionE2_If_Ammo_Value_In_Type_Is_LTV_RVL_4: +/* 06E6C8 7F039B98 0FC1A496 */ jal check_cur_player_ammo_amount_total +/* 06E6CC 7F039B9C 82240001 */ lb $a0, 1($s1) +/* 06E6D0 7F039BA0 82290002 */ lb $t1, 2($s1) +/* 06E6D4 7F039BA4 02C02025 */ move $a0, $s6 +/* 06E6D8 7F039BA8 02402825 */ move $a1, $s2 +/* 06E6DC 7F039BAC 0049082A */ slt $at, $v0, $t1 +/* 06E6E0 7F039BB0 50200007 */ beql $at, $zero, .L7F039BD0 +/* 06E6E4 7F039BB4 26520004 */ addiu $s2, $s2, 4 +/* 06E6E8 7F039BB8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E6EC 7F039BBC 92260003 */ lbu $a2, 3($s1) +/* 06E6F0 7F039BC0 00409025 */ move $s2, $v0 +/* 06E6F4 7F039BC4 1000EE71 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E6F8 7F039BC8 02C28821 */ addu $s1, $s6, $v0 +/* 06E6FC 7F039BCC 26520004 */ addiu $s2, $s2, 4 +.L7F039BD0: +/* 06E700 7F039BD0 1000EE6E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E704 7F039BD4 26310004 */ addiu $s1, $s1, 4 +actionE3_Draw_Weapon_From_Inventory_In_Game_2: +/* 06E708 7F039BD8 00002025 */ move $a0, $zero +/* 06E70C 7F039BDC 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 06E710 7F039BE0 82250001 */ lb $a1, 1($s1) +/* 06E714 7F039BE4 24040001 */ li $a0, 1 +/* 06E718 7F039BE8 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 06E71C 7F039BEC 00002825 */ move $a1, $zero +/* 06E720 7F039BF0 26520002 */ addiu $s2, $s2, 2 +/* 06E724 7F039BF4 1000EE65 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E728 7F039BF8 26310002 */ addiu $s1, $s1, 2 +actionE4_Draw_Weapon_From_Inventory_Cut_Scene_2: +/* 06E72C 7F039BFC 00002025 */ move $a0, $zero +/* 06E730 7F039C00 0FC176D5 */ jal remove_hands_item +/* 06E734 7F039C04 82250001 */ lb $a1, 1($s1) +/* 06E738 7F039C08 24040001 */ li $a0, 1 +/* 06E73C 7F039C0C 0FC176D5 */ jal remove_hands_item +/* 06E740 7F039C10 00002825 */ move $a1, $zero +/* 06E744 7F039C14 26520002 */ addiu $s2, $s2, 2 +/* 06E748 7F039C18 1000EE5C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E74C 7F039C1C 26310002 */ addiu $s1, $s1, 2 +actionE5_Set_Bonds_Speed_3: +/* 06E750 7F039C20 822C0001 */ lb $t4, 1($s1) +/* 06E754 7F039C24 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079990) +/* 06E758 7F039C28 24429990 */ addiu $v0, %lo(flt_CODE_bss_80079990) # addiu $v0, $v0, -0x6670 +/* 06E75C 7F039C2C 448C4000 */ mtc1 $t4, $f8 +/* 06E760 7F039C30 E4540004 */ swc1 $f20, 4($v0) +/* 06E764 7F039C34 26520003 */ addiu $s2, $s2, 3 +/* 06E768 7F039C38 46804120 */ cvt.s.w $f4, $f8 +/* 06E76C 7F039C3C 26310003 */ addiu $s1, $s1, 3 +/* 06E770 7F039C40 E4440000 */ swc1 $f4, ($v0) +/* 06E774 7F039C44 822BFFFF */ lb $t3, -1($s1) +/* 06E778 7F039C48 448B3000 */ mtc1 $t3, $f6 +/* 06E77C 7F039C4C 00000000 */ nop +/* 06E780 7F039C50 468032A0 */ cvt.s.w $f10, $f6 +/* 06E784 7F039C54 1000EE4D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E788 7F039C58 E44A0008 */ swc1 $f10, 8($v0) +actionE6_If_16_Object_And_Preset_Are_In_Same_Room_RVL_5: +/* 06E78C 7F039C5C 92380002 */ lbu $t8, 2($s1) +/* 06E790 7F039C60 922D0003 */ lbu $t5, 3($s1) +/* 06E794 7F039C64 92240001 */ lbu $a0, 1($s1) +/* 06E798 7F039C68 0018CA00 */ sll $t9, $t8, 8 +/* 06E79C 7F039C6C 032D8025 */ or $s0, $t9, $t5 +/* 06E7A0 7F039C70 320EFFFF */ andi $t6, $s0, 0xffff +/* 06E7A4 7F039C74 0FC15C30 */ jal get_handle_to_tagged_object +/* 06E7A8 7F039C78 01C08025 */ move $s0, $t6 +/* 06E7AC 7F039C7C 2A012710 */ slti $at, $s0, 0x2710 +/* 06E7B0 7F039C80 1020000A */ beqz $at, .L7F039CAC +/* 06E7B4 7F039C84 02001825 */ move $v1, $s0 +/* 06E7B8 7F039C88 00037880 */ sll $t7, $v1, 2 +/* 06E7BC 7F039C8C 01E37823 */ subu $t7, $t7, $v1 +/* 06E7C0 7F039C90 000F7880 */ sll $t7, $t7, 2 +/* 06E7C4 7F039C94 3C0A8007 */ lui $t2, %hi(ptr_0xxxpresets) +/* 06E7C8 7F039C98 8D4A5D18 */ lw $t2, %lo(ptr_0xxxpresets)($t2) +/* 06E7CC 7F039C9C 01E37823 */ subu $t7, $t7, $v1 +/* 06E7D0 7F039CA0 000F7880 */ sll $t7, $t7, 2 +/* 06E7D4 7F039CA4 1000000A */ b .L7F039CD0 +/* 06E7D8 7F039CA8 01EA2021 */ addu $a0, $t7, $t2 +.L7F039CAC: +/* 06E7DC 7F039CAC 3C0C8007 */ lui $t4, %hi(ptr_2xxxpresets) +/* 06E7E0 7F039CB0 8D8C5D1C */ lw $t4, %lo(ptr_2xxxpresets)($t4) +/* 06E7E4 7F039CB4 00034900 */ sll $t1, $v1, 4 +/* 06E7E8 7F039CB8 01234821 */ addu $t1, $t1, $v1 +/* 06E7EC 7F039CBC 00094880 */ sll $t1, $t1, 2 +/* 06E7F0 7F039CC0 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06E7F4 7F039CC4 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06E7F8 7F039CC8 012C2021 */ addu $a0, $t1, $t4 +/* 06E7FC 7F039CCC 00812021 */ addu $a0, $a0, $at +.L7F039CD0: +/* 06E800 7F039CD0 8C830028 */ lw $v1, 0x28($a0) +/* 06E804 7F039CD4 50600013 */ beql $v1, $zero, .L7F039D24 +/* 06E808 7F039CD8 26520005 */ addiu $s2, $s2, 5 +/* 06E80C 7F039CDC 50400011 */ beql $v0, $zero, .L7F039D24 +/* 06E810 7F039CE0 26520005 */ addiu $s2, $s2, 5 +/* 06E814 7F039CE4 8C440010 */ lw $a0, 0x10($v0) +/* 06E818 7F039CE8 5080000E */ beql $a0, $zero, .L7F039D24 +/* 06E81C 7F039CEC 26520005 */ addiu $s2, $s2, 5 +/* 06E820 7F039CF0 8C8B0014 */ lw $t3, 0x14($a0) +/* 06E824 7F039CF4 90790003 */ lbu $t9, 3($v1) +/* 06E828 7F039CF8 02C02025 */ move $a0, $s6 +/* 06E82C 7F039CFC 91780003 */ lbu $t8, 3($t3) +/* 06E830 7F039D00 02402825 */ move $a1, $s2 +/* 06E834 7F039D04 57190007 */ bnel $t8, $t9, .L7F039D24 +/* 06E838 7F039D08 26520005 */ addiu $s2, $s2, 5 +/* 06E83C 7F039D0C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E840 7F039D10 92260004 */ lbu $a2, 4($s1) +/* 06E844 7F039D14 00409025 */ move $s2, $v0 +/* 06E848 7F039D18 1000EE1C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E84C 7F039D1C 02C28821 */ addu $s1, $s6, $v0 +/* 06E850 7F039D20 26520005 */ addiu $s2, $s2, 5 +.L7F039D24: +/* 06E854 7F039D24 1000EE19 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E858 7F039D28 26310005 */ addiu $s1, $s1, 5 +actionE9_Instantly_Switch_Sky_To_Sky_2_1: +/* 06E85C 7F039D2C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 06E860 7F039D30 44816000 */ mtc1 $at, $f12 +/* 06E864 7F039D34 0FC2EB2A */ jal switch_to_solosky2 +/* 06E868 7F039D38 00000000 */ nop +/* 06E86C 7F039D3C 26520001 */ addiu $s2, $s2, 1 +/* 06E870 7F039D40 1000EE12 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E874 7F039D44 26310001 */ addiu $s1, $s1, 1 +actionEA_Stop_Game_Time_1: +/* 06E878 7F039D48 3C0D8003 */ lui $t5, %hi(stop_time_flag) +/* 06E87C 7F039D4C 8DAD64A0 */ lw $t5, %lo(stop_time_flag)($t5) +/* 06E880 7F039D50 240E0001 */ li $t6, 1 +/* 06E884 7F039D54 3C018003 */ lui $at, %hi(stop_time_flag) +/* 06E888 7F039D58 15A00002 */ bnez $t5, .L7F039D64 +/* 06E88C 7F039D5C 26520001 */ addiu $s2, $s2, 1 +/* 06E890 7F039D60 AC2E64A0 */ sw $t6, %lo(stop_time_flag)($at) +.L7F039D64: +/* 06E894 7F039D64 1000EE09 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E898 7F039D68 26310001 */ addiu $s1, $s1, 1 +actionEB_If_Key_Pressed_RVL_2: +/* 06E89C 7F039D6C 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 06E8A0 7F039D70 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 06E8A4 7F039D74 02C02025 */ move $a0, $s6 +/* 06E8A8 7F039D78 02402825 */ move $a1, $s2 +/* 06E8AC 7F039D7C 8DEA00D8 */ lw $t2, 0xd8($t7) +/* 06E8B0 7F039D80 51400007 */ beql $t2, $zero, .L7F039DA0 +/* 06E8B4 7F039D84 26520002 */ addiu $s2, $s2, 2 +/* 06E8B8 7F039D88 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E8BC 7F039D8C 92260001 */ lbu $a2, 1($s1) +/* 06E8C0 7F039D90 00409025 */ move $s2, $v0 +/* 06E8C4 7F039D94 1000EDFD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E8C8 7F039D98 02C28821 */ addu $s1, $s6, $v0 +/* 06E8CC 7F039D9C 26520002 */ addiu $s2, $s2, 2 +.L7F039DA0: +/* 06E8D0 7F039DA0 1000EDFA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E8D4 7F039DA4 26310002 */ addiu $s1, $s1, 2 +actionEC_Disable_Player_Pickups_1: +/* 06E8D8 7F039DA8 24090001 */ li $t1, 1 +/* 06E8DC 7F039DAC 3C018003 */ lui $at, %hi(disable_player_pickups_flag) +/* 06E8E0 7F039DB0 AC2964B4 */ sw $t1, %lo(disable_player_pickups_flag)($at) +/* 06E8E4 7F039DB4 26520001 */ addiu $s2, $s2, 1 +/* 06E8E8 7F039DB8 1000EDF4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E8EC 7F039DBC 26310001 */ addiu $s1, $s1, 1 +actionED_Hide_First_Person_Display_1: +/* 06E8F0 7F039DC0 0FC173D7 */ jal remove_item_in_hand +/* 06E8F4 7F039DC4 00002025 */ move $a0, $zero +/* 06E8F8 7F039DC8 0FC173D7 */ jal remove_item_in_hand +/* 06E8FC 7F039DCC 24040001 */ li $a0, 1 +/* 06E900 7F039DD0 26520001 */ addiu $s2, $s2, 1 +/* 06E904 7F039DD4 1000EDED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E908 7F039DD8 26310001 */ addiu $s1, $s1, 1 +actionEE_Cuba_Circular_Camera_Aim_D: +/* 06E90C 7F039DDC 92390003 */ lbu $t9, 3($s1) +/* 06E910 7F039DE0 922E0004 */ lbu $t6, 4($s1) +/* 06E914 7F039DE4 922C0001 */ lbu $t4, 1($s1) +/* 06E918 7F039DE8 00196A00 */ sll $t5, $t9, 8 +/* 06E91C 7F039DEC 01AE1825 */ or $v1, $t5, $t6 +/* 06E920 7F039DF0 00037C00 */ sll $t7, $v1, 0x10 +/* 06E924 7F039DF4 922D0007 */ lbu $t5, 7($s1) +/* 06E928 7F039DF8 000F1C03 */ sra $v1, $t7, 0x10 +/* 06E92C 7F039DFC 922F0008 */ lbu $t7, 8($s1) +/* 06E930 7F039E00 92380002 */ lbu $t8, 2($s1) +/* 06E934 7F039E04 000D7200 */ sll $t6, $t5, 8 +/* 06E938 7F039E08 9239000B */ lbu $t9, 0xb($s1) +/* 06E93C 7F039E0C 01CF3025 */ or $a2, $t6, $t7 +/* 06E940 7F039E10 922E000C */ lbu $t6, 0xc($s1) +/* 06E944 7F039E14 000C5A00 */ sll $t3, $t4, 8 +/* 06E948 7F039E18 92290005 */ lbu $t1, 5($s1) +/* 06E94C 7F039E1C 01781025 */ or $v0, $t3, $t8 +/* 06E950 7F039E20 922B0006 */ lbu $t3, 6($s1) +/* 06E954 7F039E24 00196A00 */ sll $t5, $t9, 8 +/* 06E958 7F039E28 01AE4025 */ or $t0, $t5, $t6 +/* 06E95C 7F039E2C 44889000 */ mtc1 $t0, $f18 +/* 06E960 7F039E30 00096200 */ sll $t4, $t1, 8 +/* 06E964 7F039E34 018B2825 */ or $a1, $t4, $t3 +/* 06E968 7F039E38 0005C400 */ sll $t8, $a1, 0x10 +/* 06E96C 7F039E3C 46809420 */ cvt.s.w $f16, $f18 +/* 06E970 7F039E40 00182C03 */ sra $a1, $t8, 0x10 +/* 06E974 7F039E44 44853000 */ mtc1 $a1, $f6 +/* 06E978 7F039E48 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 06E97C 7F039E4C 44810000 */ mtc1 $at, $f0 +/* 06E980 7F039E50 468032A0 */ cvt.s.w $f10, $f6 +/* 06E984 7F039E54 461A8202 */ mul.s $f8, $f16, $f26 +/* 06E988 7F039E58 922A0009 */ lbu $t2, 9($s1) +/* 06E98C 7F039E5C 922C000A */ lbu $t4, 0xa($s1) +/* 06E990 7F039E60 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E994 7F039E64 AC2099F8 */ sw $zero, %lo(dword_CODE_bss_800799F8)($at) +/* 06E998 7F039E68 461A5482 */ mul.s $f18, $f10, $f26 +/* 06E99C 7F039E6C 3C018008 */ lui $at, %hi(dword_CODE_bss_800799FC) +/* 06E9A0 7F039E70 AC2099FC */ sw $zero, %lo(dword_CODE_bss_800799FC)($at) +/* 06E9A4 7F039E74 000A4A00 */ sll $t1, $t2, 8 +/* 06E9A8 7F039E78 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A00) +/* 06E9AC 7F039E7C 012C3825 */ or $a3, $t1, $t4 +/* 06E9B0 7F039E80 46004103 */ div.s $f4, $f8, $f0 +/* 06E9B4 7F039E84 44824000 */ mtc1 $v0, $f8 +/* 06E9B8 7F039E88 44833000 */ mtc1 $v1, $f6 +/* 06E9BC 7F039E8C 00075C00 */ sll $t3, $a3, 0x10 +/* 06E9C0 7F039E90 000B3C03 */ sra $a3, $t3, 0x10 +/* 06E9C4 7F039E94 468032A0 */ cvt.s.w $f10, $f6 +/* 06E9C8 7F039E98 24040007 */ li $a0, 7 +/* 06E9CC 7F039E9C 46009403 */ div.s $f16, $f18, $f0 +/* 06E9D0 7F039EA0 E4249A00 */ swc1 $f4, %lo(flt_CODE_bss_80079A00)($at) +/* 06E9D4 7F039EA4 44879000 */ mtc1 $a3, $f18 +/* 06E9D8 7F039EA8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A04) +/* 06E9DC 7F039EAC 46804120 */ cvt.s.w $f4, $f8 +/* 06E9E0 7F039EB0 E4309A04 */ swc1 $f16, %lo(flt_CODE_bss_80079A04)($at) +/* 06E9E4 7F039EB4 46809420 */ cvt.s.w $f16, $f18 +/* 06E9E8 7F039EB8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A08) +/* 06E9EC 7F039EBC E4249A08 */ swc1 $f4, %lo(flt_CODE_bss_80079A08)($at) +/* 06E9F0 7F039EC0 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A0C) +/* 06E9F4 7F039EC4 E42A9A0C */ swc1 $f10, %lo(flt_CODE_bss_80079A0C)($at) +/* 06E9F8 7F039EC8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A10) +/* 06E9FC 7F039ECC E4309A10 */ swc1 $f16, %lo(flt_CODE_bss_80079A10)($at) +/* 06EA00 7F039ED0 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A14) +/* 06EA04 7F039ED4 0FC1EA6E */ jal set_camera_mode +/* 06EA08 7F039ED8 AC269A14 */ sw $a2, %lo(dword_CODE_bss_80079A14)($at) +/* 06EA0C 7F039EDC 2652000D */ addiu $s2, $s2, 0xd +/* 06EA10 7F039EE0 1000EDAA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA14 7F039EE4 2631000D */ addiu $s1, $s1, 0xd +actionEF_Trigger_Credits_1: +/* 06EA18 7F039EE8 240F0001 */ li $t7, 1 +/* 06EA1C 7F039EEC 3C018003 */ lui $at, %hi(D_8003643C) +/* 06EA20 7F039EF0 AC2F643C */ sw $t7, %lo(D_8003643C)($at) +/* 06EA24 7F039EF4 26520001 */ addiu $s2, $s2, 1 +/* 06EA28 7F039EF8 1000EDA4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA2C 7F039EFC 26310001 */ addiu $s1, $s1, 1 +actionF0_RVL_If_Credits_Completed_2: +/* 06EA30 7F039F00 3C0A8003 */ lui $t2, %hi(D_8003643C) +/* 06EA34 7F039F04 8D4A643C */ lw $t2, %lo(D_8003643C)($t2) +/* 06EA38 7F039F08 24010002 */ li $at, 2 +/* 06EA3C 7F039F0C 02C02025 */ move $a0, $s6 +/* 06EA40 7F039F10 15410006 */ bne $t2, $at, .L7F039F2C +/* 06EA44 7F039F14 02402825 */ move $a1, $s2 +/* 06EA48 7F039F18 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EA4C 7F039F1C 92260001 */ lbu $a2, 1($s1) +/* 06EA50 7F039F20 00409025 */ move $s2, $v0 +/* 06EA54 7F039F24 1000ED99 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA58 7F039F28 02C28821 */ addu $s1, $s6, $v0 +.L7F039F2C: +/* 06EA5C 7F039F2C 26520002 */ addiu $s2, $s2, 2 +/* 06EA60 7F039F30 1000ED96 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA64 7F039F34 26310002 */ addiu $s1, $s1, 2 +actionF1_If_All_Objectives_Complete_RVL_2: +/* 06EA68 7F039F38 0FC15D2E */ jal check_objectives_complete +/* 06EA6C 7F039F3C 00000000 */ nop +/* 06EA70 7F039F40 10400007 */ beqz $v0, .L7F039F60 +/* 06EA74 7F039F44 02C02025 */ move $a0, $s6 +/* 06EA78 7F039F48 02402825 */ move $a1, $s2 +/* 06EA7C 7F039F4C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EA80 7F039F50 92260001 */ lbu $a2, 1($s1) +/* 06EA84 7F039F54 00409025 */ move $s2, $v0 +/* 06EA88 7F039F58 1000ED8C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA8C 7F039F5C 02C28821 */ addu $s1, $s6, $v0 +.L7F039F60: +/* 06EA90 7F039F60 26520002 */ addiu $s2, $s2, 2 +/* 06EA94 7F039F64 1000ED89 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA98 7F039F68 26310002 */ addiu $s1, $s1, 2 +actionF2_Check_Current_Folder_Bond_RVL_3: +/* 06EA9C 7F039F6C 0FC0755B */ jal getSelectedFolderBond +/* 06EAA0 7F039F70 00000000 */ nop +/* 06EAA4 7F039F74 82290001 */ lb $t1, 1($s1) +/* 06EAA8 7F039F78 02C02025 */ move $a0, $s6 +/* 06EAAC 7F039F7C 02402825 */ move $a1, $s2 +/* 06EAB0 7F039F80 54490007 */ bnel $v0, $t1, .L7F039FA0 +/* 06EAB4 7F039F84 26520003 */ addiu $s2, $s2, 3 +/* 06EAB8 7F039F88 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EABC 7F039F8C 92260002 */ lbu $a2, 2($s1) +/* 06EAC0 7F039F90 00409025 */ move $s2, $v0 +/* 06EAC4 7F039F94 1000ED7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EAC8 7F039F98 02C28821 */ addu $s1, $s6, $v0 +/* 06EACC 7F039F9C 26520003 */ addiu $s2, $s2, 3 +.L7F039FA0: +/* 06EAD0 7F039FA0 1000ED7A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EAD4 7F039FA4 26310003 */ addiu $s1, $s1, 3 +actionF3_If_Player_Pickups_Disabled_RVL_2: +/* 06EAD8 7F039FA8 3C0C8003 */ lui $t4, %hi(disable_player_pickups_flag) +/* 06EADC 7F039FAC 8D8C64B4 */ lw $t4, %lo(disable_player_pickups_flag)($t4) +/* 06EAE0 7F039FB0 02C02025 */ move $a0, $s6 +/* 06EAE4 7F039FB4 02402825 */ move $a1, $s2 +/* 06EAE8 7F039FB8 51800007 */ beql $t4, $zero, .L7F039FD8 +/* 06EAEC 7F039FBC 26520002 */ addiu $s2, $s2, 2 +/* 06EAF0 7F039FC0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EAF4 7F039FC4 92260001 */ lbu $a2, 1($s1) +/* 06EAF8 7F039FC8 00409025 */ move $s2, $v0 +/* 06EAFC 7F039FCC 1000ED6F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB00 7F039FD0 02C28821 */ addu $s1, $s6, $v0 +/* 06EB04 7F039FD4 26520002 */ addiu $s2, $s2, 2 +.L7F039FD8: +/* 06EB08 7F039FD8 1000ED6C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB0C 7F039FDC 26310002 */ addiu $s1, $s1, 2 +actionF4_PlaysValuenum1ThemeSlot03ForValuenum2Seconds_4: +/* 06EB10 7F039FE0 02201025 */ move $v0, $s1 +/* 06EB14 7F039FE4 26310004 */ addiu $s1, $s1, 4 +/* 06EB18 7F039FE8 26520004 */ addiu $s2, $s2, 4 +/* 06EB1C 7F039FEC 80440001 */ lb $a0, 1($v0) +/* 06EB20 7F039FF0 90450002 */ lbu $a1, 2($v0) +/* 06EB24 7F039FF4 0FC3053F */ jal set_musicslot_time +/* 06EB28 7F039FF8 90460003 */ lbu $a2, 3($v0) +/* 06EB2C 7F039FFC 1000ED64 */ b ParseCommandByte_SwitchCase +/* 06EB30 7F03A000 922E0000 */ lbu $t6, ($s1) +actionF5_Turn_Off_Music_In_Slot_num_0_3_2: +/* 06EB34 7F03A004 02201025 */ move $v0, $s1 +/* 06EB38 7F03A008 26310002 */ addiu $s1, $s1, 2 +/* 06EB3C 7F03A00C 26520002 */ addiu $s2, $s2, 2 +/* 06EB40 7F03A010 0FC30556 */ jal reset_music_in_slot +/* 06EB44 7F03A014 80440001 */ lb $a0, 1($v0) +/* 06EB48 7F03A018 1000ED5D */ b ParseCommandByte_SwitchCase +/* 06EB4C 7F03A01C 922E0000 */ lbu $t6, ($s1) +actionF6_Trigger_Explosions_Around_Bond_1: +/* 06EB50 7F03A020 0FC22FF1 */ jal trigger_explosions_around_player +/* 06EB54 7F03A024 00002025 */ move $a0, $zero +/* 06EB58 7F03A028 26520001 */ addiu $s2, $s2, 1 +/* 06EB5C 7F03A02C 1000ED57 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB60 7F03A030 26310001 */ addiu $s1, $s1, 1 +actionF7_If_Number_Of_Hostages_Scientists_Killed_RVL_3: +/* 06EB64 7F03A034 0FC1A9DC */ jal get_civilian_casualties +/* 06EB68 7F03A038 00000000 */ nop +/* 06EB6C 7F03A03C 922B0001 */ lbu $t3, 1($s1) +/* 06EB70 7F03A040 02C02025 */ move $a0, $s6 +/* 06EB74 7F03A044 02402825 */ move $a1, $s2 +/* 06EB78 7F03A048 0162082A */ slt $at, $t3, $v0 +/* 06EB7C 7F03A04C 50200007 */ beql $at, $zero, .L7F03A06C +/* 06EB80 7F03A050 26520003 */ addiu $s2, $s2, 3 +/* 06EB84 7F03A054 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EB88 7F03A058 92260002 */ lbu $a2, 2($s1) +/* 06EB8C 7F03A05C 00409025 */ move $s2, $v0 +/* 06EB90 7F03A060 1000ED4A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB94 7F03A064 02C28821 */ addu $s1, $s6, $v0 +/* 06EB98 7F03A068 26520003 */ addiu $s2, $s2, 3 +.L7F03A06C: +/* 06EB9C 7F03A06C 1000ED47 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EBA0 7F03A070 26310003 */ addiu $s1, $s1, 3 +actionF8_If_Guard_ID_00200000_Flag_Set_Unset_And_Return_3: +/* 06EBA4 7F03A074 02E02025 */ move $a0, $s7 +/* 06EBA8 7F03A078 0FC0CC10 */ jal get_handle_for_guard_id +/* 06EBAC 7F03A07C 92250001 */ lbu $a1, 1($s1) +/* 06EBB0 7F03A080 50400012 */ beql $v0, $zero, .L7F03A0CC +/* 06EBB4 7F03A084 26520003 */ addiu $s2, $s2, 3 +/* 06EBB8 7F03A088 8C580014 */ lw $t8, 0x14($v0) +/* 06EBBC 7F03A08C 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf +/* 06EBC0 7F03A090 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 06EBC4 7F03A094 0018CA80 */ sll $t9, $t8, 0xa +/* 06EBC8 7F03A098 0723000C */ bgezl $t9, .L7F03A0CC +/* 06EBCC 7F03A09C 26520003 */ addiu $s2, $s2, 3 +/* 06EBD0 7F03A0A0 8C4D0014 */ lw $t5, 0x14($v0) +/* 06EBD4 7F03A0A4 02C02025 */ move $a0, $s6 +/* 06EBD8 7F03A0A8 02402825 */ move $a1, $s2 +/* 06EBDC 7F03A0AC 01A17024 */ and $t6, $t5, $at +/* 06EBE0 7F03A0B0 AC4E0014 */ sw $t6, 0x14($v0) +/* 06EBE4 7F03A0B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EBE8 7F03A0B8 92260002 */ lbu $a2, 2($s1) +/* 06EBEC 7F03A0BC 00409025 */ move $s2, $v0 +/* 06EBF0 7F03A0C0 1000ED32 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EBF4 7F03A0C4 02C28821 */ addu $s1, $s6, $v0 +/* 06EBF8 7F03A0C8 26520003 */ addiu $s2, $s2, 3 +.L7F03A0CC: +/* 06EBFC 7F03A0CC 1000ED2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC00 7F03A0D0 26310003 */ addiu $s1, $s1, 3 +actionF9_Set_Killed_In_Action_Automatic_Mission_Failure_1: +/* 06EC04 7F03A0D4 240F0001 */ li $t7, 1 +/* 06EC08 7F03A0D8 3C018003 */ lui $at, %hi(mission_kia_flag) +/* 06EC0C 7F03A0DC AC2FA928 */ sw $t7, %lo(mission_kia_flag)($at) +/* 06EC10 7F03A0E0 26520001 */ addiu $s2, $s2, 1 +/* 06EC14 7F03A0E4 1000ED29 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC18 7F03A0E8 26310001 */ addiu $s1, $s1, 1 +actionFA_Guard_Fawns_On_Shoulder_1: +/* 06EC1C 7F03A0EC 0FC0CD93 */ jal check_if_able_to_then_fawn_on_shoulder +/* 06EC20 7F03A0F0 02E02025 */ move $a0, $s7 +/* 06EC24 7F03A0F4 26520001 */ addiu $s2, $s2, 1 +/* 06EC28 7F03A0F8 1000ED24 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC2C 7F03A0FC 26310001 */ addiu $s1, $s1, 1 +actionFB_SwitchToSkyValuenumAndActivateGasContainersIfExist_: +/* 06EC30 7F03A100 3C0A8003 */ lui $t2, %hi(D_80030A88) +/* 06EC34 7F03A104 254A0A88 */ addiu $t2, %lo(D_80030A88) # addiu $t2, $t2, 0xa88 +/* 06EC38 7F03A108 8D410000 */ lw $at, ($t2) +/* 06EC3C 7F03A10C 27A40090 */ addiu $a0, $sp, 0x90 +/* 06EC40 7F03A110 AC810000 */ sw $at, ($a0) +/* 06EC44 7F03A114 8D4B0004 */ lw $t3, 4($t2) +/* 06EC48 7F03A118 AC8B0004 */ sw $t3, 4($a0) +/* 06EC4C 7F03A11C 8D410008 */ lw $at, 8($t2) +/* 06EC50 7F03A120 0FC15799 */ jal init_trigger_toxic_gas_effect +/* 06EC54 7F03A124 AC810008 */ sw $at, 8($a0) +/* 06EC58 7F03A128 26520001 */ addiu $s2, $s2, 1 +/* 06EC5C 7F03A12C 1000ED17 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC60 7F03A130 26310001 */ addiu $s1, $s1, 1 +actionFC_Launch_Shuttle_2: +/* 06EC64 7F03A134 0FC15C30 */ jal get_handle_to_tagged_object +/* 06EC68 7F03A138 92240001 */ lbu $a0, 1($s1) +/* 06EC6C 7F03A13C 50400029 */ beql $v0, $zero, .L7F03A1E4 +/* 06EC70 7F03A140 26520002 */ addiu $s2, $s2, 2 +/* 06EC74 7F03A144 8C580010 */ lw $t8, 0x10($v0) +/* 06EC78 7F03A148 53000026 */ beql $t8, $zero, .L7F03A1E4 +/* 06EC7C 7F03A14C 26520002 */ addiu $s2, $s2, 2 +/* 06EC80 7F03A150 8C440010 */ lw $a0, 0x10($v0) +/* 06EC84 7F03A154 0FC0FF6A */ jal sub_GAME_7F03FDA8 +/* 06EC88 7F03A158 AFA20088 */ sw $v0, 0x88($sp) +/* 06EC8C 7F03A15C 8FA30088 */ lw $v1, 0x88($sp) +/* 06EC90 7F03A160 8C790064 */ lw $t9, 0x64($v1) +/* 06EC94 7F03A164 332D0080 */ andi $t5, $t9, 0x80 +/* 06EC98 7F03A168 51A0001E */ beql $t5, $zero, .L7F03A1E4 +/* 06EC9C 7F03A16C 26520002 */ addiu $s2, $s2, 2 +/* 06ECA0 7F03A170 8C62006C */ lw $v0, 0x6c($v1) +/* 06ECA4 7F03A174 8C4E0000 */ lw $t6, ($v0) +/* 06ECA8 7F03A178 35CF0601 */ ori $t7, $t6, 0x601 +/* 06ECAC 7F03A17C AC4F0000 */ sw $t7, ($v0) +/* 06ECB0 7F03A180 8C640010 */ lw $a0, 0x10($v1) +/* 06ECB4 7F03A184 0FC0FF85 */ jal sub_GAME_7F03FE14 +/* 06ECB8 7F03A188 AFA30088 */ sw $v1, 0x88($sp) +/* 06ECBC 7F03A18C 8FA30088 */ lw $v1, 0x88($sp) +/* 06ECC0 7F03A190 8C64006C */ lw $a0, 0x6c($v1) +/* 06ECC4 7F03A194 0FC15FF4 */ jal matrix_4x4_set_identity +/* 06ECC8 7F03A198 24840020 */ addiu $a0, $a0, 0x20 +/* 06ECCC 7F03A19C 8FA30088 */ lw $v1, 0x88($sp) +/* 06ECD0 7F03A1A0 3C018005 */ lui $at, %hi(D_80052974) +/* 06ECD4 7F03A1A4 8C6C006C */ lw $t4, 0x6c($v1) +/* 06ECD8 7F03A1A8 E5940004 */ swc1 $f20, 4($t4) +/* 06ECDC 7F03A1AC C4282974 */ lwc1 $f8, %lo(D_80052974)($at) +/* 06ECE0 7F03A1B0 8C69006C */ lw $t1, 0x6c($v1) +/* 06ECE4 7F03A1B4 3C018005 */ lui $at, %hi(D_80052978) +/* 06ECE8 7F03A1B8 E5280008 */ swc1 $f8, 8($t1) +/* 06ECEC 7F03A1BC 8C6A006C */ lw $t2, 0x6c($v1) +/* 06ECF0 7F03A1C0 E554000C */ swc1 $f20, 0xc($t2) +/* 06ECF4 7F03A1C4 8C6B006C */ lw $t3, 0x6c($v1) +/* 06ECF8 7F03A1C8 E5740010 */ swc1 $f20, 0x10($t3) +/* 06ECFC 7F03A1CC C4242978 */ lwc1 $f4, %lo(D_80052978)($at) +/* 06ED00 7F03A1D0 8C78006C */ lw $t8, 0x6c($v1) +/* 06ED04 7F03A1D4 E7040014 */ swc1 $f4, 0x14($t8) +/* 06ED08 7F03A1D8 8C79006C */ lw $t9, 0x6c($v1) +/* 06ED0C 7F03A1DC E7340018 */ swc1 $f20, 0x18($t9) +/* 06ED10 7F03A1E0 26520002 */ addiu $s2, $s2, 2 +.L7F03A1E4: +/* 06ED14 7F03A1E4 1000ECE9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ED18 7F03A1E8 26310002 */ addiu $s1, $s1, 2 +GetCmdLength: +/* 06ED1C 7F03A1EC 0FC0D27F */ jal get_length_of_action_block +/* 06ED20 7F03A1F0 02402825 */ move $a1, $s2 # +/* 06ED24 7F03A1F4 02429021 */ addu $s2, $s2, $v0 # CurrentActionByte += get_length_of_action_block(CurrentActionByte) +/* 06ED28 7F03A1F8 1000ECE4 */ b GetByteS1_ParseCommandByte_SwitchCase # s1 = CurrentActionByte + s6 +/* 06ED2C 7F03A1FC 02D28821 */ addu $s1, $s6, $s2 # goto 58c + +Action04_End_1: +/* 06ED30 7F03A200 8FBF0074 */ lw $ra, 0x74($sp) +Action04_End_2: +/* 06ED34 7F03A204 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 06ED38 7F03A208 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 06ED3C 7F03A20C D7B80040 */ ldc1 $f24, 0x40($sp) +/* 06ED40 7F03A210 D7BA0048 */ ldc1 $f26, 0x48($sp) +/* 06ED44 7F03A214 8FB00050 */ lw $s0, 0x50($sp) +/* 06ED48 7F03A218 8FB10054 */ lw $s1, 0x54($sp) +/* 06ED4C 7F03A21C 8FB20058 */ lw $s2, 0x58($sp) #load s2 with value before entering actionblock +/* 06ED50 7F03A220 8FB3005C */ lw $s3, 0x5c($sp) +/* 06ED54 7F03A224 8FB40060 */ lw $s4, 0x60($sp) +/* 06ED58 7F03A228 8FB50064 */ lw $s5, 0x64($sp) +/* 06ED5C 7F03A22C 8FB60068 */ lw $s6, 0x68($sp) +/* 06ED60 7F03A230 8FB7006C */ lw $s7, 0x6c($sp) +/* 06ED64 7F03A234 8FBE0070 */ lw $fp, 0x70($sp) +/* 06ED68 7F03A238 03E00008 */ jr $ra +/* 06ED6C 7F03A23C 27BD07B8 */ addiu $sp, $sp, 0x7b8 +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +/*HACK FIXME */ +.word locret_CODE_7F035104 +.word locret_CODE_7F03510C +.word locret_CODE_7F035114 +.word locret_CODE_7F03511C +.word locret_CODE_7F035124 +.word locret_CODE_7F03512C +.word locret_CODE_7F035134 +.word locret_CODE_7F03513C +.word locret_CODE_7F035144 +.word locret_CODE_7F03514C +.word locret_CODE_7F035154 +.word locret_CODE_7F03515C +.word locret_CODE_7F034ADC +.word locret_CODE_7F034AD4 +.word locret_CODE_7F035164 +.word locret_CODE_7F03516C +.word locret_CODE_7F035174 +.word locret_CODE_7F03517C +.word locret_CODE_7F035184 +.word locret_CODE_7F03518C +.word locret_CODE_7F035194 +.word locret_CODE_7F03519C +.word locret_CODE_7F0351A4 +.word locret_CODE_7F0351AC +.word locret_CODE_7F0351B4 +.word locret_CODE_7F0351BC +.word locret_CODE_7F0351C4 +.word locret_CODE_7F0351CC +.word locret_CODE_7F0351D4 +.word locret_CODE_7F0351DC +.word locret_CODE_7F0351E4 +.word locret_CODE_7F0351EC +.word locret_CODE_7F0351F4 +.word actionFC_length +.late_rodata +glabel D_800524F4 +.word 0x40c90fdb /*6.2831855*/ +/*D:800524F8*/ +glabel jpt_800524F8 +.word Action00_GoToLabel +.word Action01_GoToLabelFromTop +.word Action02_Label +.word action03_Leave_The_Routine_When_Return_Continue_From_Spot_1 +.word Action04_End_1 +.word action05_Jump_To_Function_4 +.word action06_Set_Return_Subroutine_for_0007_Command_3 +.word action07_Jump_to_Return_Subroutine_1 +.word action08_Reset_Animation_1 +.word action09_Guard_Kneels_1 +.word action0A_Animation_9 +.word action0B_If_Guard_WastingTime_SwatFlies_RVL_2 +.word action0C_Guard_Gestures_1 +.word action0D_Guard_Looks_Around_When_Shot_At_1 +.word action0E_Guard_Steps_Sideways_RVL_2 +.word action0F_Guard_Hops_Sideways_RVL_2 +.word action10_Guard_Runs_Sideways_RVL_2 +.word action11_Guard_Walks_Firing_RVL_2 +.word action12_Guard_Runs_Firing_RVL_2 +.word action13_Guard_Rolls_On_Ground_Then_Fires_Crouched_RVL_2 +.word action14_Guard_Aims_Shoots_at_Bond_Guard_Pad_RVL_6 +.word action15_Guard_Kneels_Aims_Shoots_at_Bond_Guard_Pad_RVL_6 +.word action16_Guard_Shoots_Guards_Without_Animation_Change_RVL_6 +.word action17_Guard_Constantly_Angles_To_Face_RVL_6 +.word action18_Shoot_Guard_ID_In_Style_With_Weapon_Type_num_4 +.word action19_Guard_ID1_Shoots_Guard_ID2_In_Style_4 +.word action1A_Guard_Throws_Grenade_RVL_2 +.word action1B_Drop_Weapon_Inventory_num_RVL_5 +.word action1C_Guard_Jogs_To_Preset_3 +.word action1D_Guard_Jogs_To_Predefined_Preset_2328_1 +.word action1E_Guard_Walks_To_Preset_3 +.word action1F_Guard_Runs__To_Preset_3 +.word action20_Activate_Path_2 +.word action21_Guard_Surrenders_1 +.word action22_Guard_Set_To_Move_Fades_And_Disappear_1 +.word action23_Eliminate_Guard_ID_2 +.word action24_Activate_Object_At_Preset_RVL_If_Successful_4 +.word action25_Sound_Alarm_1 +.word action26_Turn_Off_Alarm_1 +.word action27_Return_False_Invalid_Type_2 +.word action28_Jog_To_Bond_Return_Loop_When_Reached_Bond_2 +.word action29_Walk_To_Bond_Return_Loop_When_Reached_Bond_2 +.word action2A_Run_To_Bond_Return_Loop_When_Reached_Bond_2 +.word action2B_Return_False_Invalid_Type_2 +.word action2C_Jog_To_Character_Position_RVL_On_Arrival_3 +.word action2D_Walk_To_Character_Position_RVL_On_Arrival_3 +.word action2E_Run_To_Character_Position_RVL_On_Arrival_3 +.word action2F_When_Guard_Stops_Moving_RVL_2 +.word action30_Detect_If_Guard_Killed_RVL_If_So_3 +.word action31_If_GuardID_Finish_DeathAnimation_RVL_3 +.word action32_If_Bond_In_Sight_RVL_2 +.word action33_Seed_Random_Byte_1 +.word action34_If_Seeded_Byte_LTV_Go_Into_RVL_3 +.word action35_If_Seeded_Byte_GTV_Go_Into_RVL_3 +.word action36_If_Alarm_Activated_RVL_Plus_Stack_2 +.word action37_If_Alarm_Activated_RVL_2 +.word action38_If_Toxic_Gas_Released_RVL_2 +.word action39_If_Guard_Heard_Gunfire_RVL_2 +.word action3A_If_Bond_Shoots_Another_Guard_RVL_2 +.word action3B_If_Guard_Killed_In_Front_Of_Guard_RVL_2 +.word action3C_If_Guard_In_Firing_Range_RVL_2 +.word action3D___Unused___Unknown___2 +.word action3E_If_Shot_Current_Guard_RVL_2 +.word action3F_If_Heard_Bond_RVL_2 +.word action40_If_Another_Guard_In_Same_Room_As_Guard_ID_RVL_3 +.word action41_If_Guard_Has_Been_On_Screen_RVL_2 +.word action42_If_Current_Guard_On_Screen_In_Loaded_Room_RVL_2 +.word action43_If_Guard_In_A_Room_Currently_Loaded_RVL_2 +.word action44_If_Room_Containing_Preset_Is_Loaded_RVL_4 +.word action45_Go_To_RVL_If_Bond_Has_Guard_At_Gunpoint_2 +.word action46_If_Fired_A_Shot_RVL_2 +.word action47_If_Distance_Between_Bond_And_Guard_LTV_RVL_3 +.word action48_If_Distance_Between_Bond_And_Guard_GTV_RVL_3 +.word action49_Test_if_Actor_and_Player_CCWAngle_LTV_RVL_Unused_3 +.word action4A_Test_if_Actor_and_Player_CCWAngle_GTV_RVL_Unused_3 +.word action4B_RVL_If_In_Proximity_Of_Bond_4 +.word action4C_RVL_If_Not_In_Proximity_Of_Bond_4 +.word action4D_When_Guard_In_Proximity_Of_Preset_RVL_7 +.word action4E_When_Guard_Not_In_Proximity_Of_Preset_RVL_7 +.word action4F_If_Current_Guard_Is_In_Units_Of_Guard_ID_RVL_5 +.word action50_If_Current_Guard_Is_Not_In_Units_Of_Guard_ID_RVL_5 +.word action51_SetClosestGuardUnitsGuardID_Then_RVL_IfSuccess_4 +.word action52_GoIntoRVLIf_In_Units_Of_Preset_6 +.word action53_GoIntoRVLIf_Not_In_Units_Of_Preset_6 +.word action54_GoIntoRVLIf_Guard_Is_At_Preset_5 +.word action55_GoIntoRVLIf_Entered_Room_with_Preset_4 +.word action56_GoIntoRVLIf_16_Object_num_Collected_3 +.word action57_GoIntoRVLIf_Specified_Weapon_Deposited_3 +.word action58_GoIntoRVLIf_SpecifiedWeaponDeposited_On16Object_4 +.word action59_GoIntoRVLIf_Specified_Weapon_Is_Out_3 +.word action5A_GoIntoRVLIf_Type_16_Object_num_Loaded_3 +.word action5B_GoIntoRVLIf_16_Object_num_Not_Destroyed_3 +.word action5C_GoIntoRVLIf_16_Object_num_Activated_3 +.word action5D_GoIntoRVLIf_Gadget_Used_On_16_Object_num_3 +.word action5E_16_Object_Activates_2 +.word action5F_16_Object_Explodes_2 +.word action60_Guard_Drops_16_Object_num_2 +.word action61_Kill_Guard_num_2 +.word action62_Guard_num_Throws_Equipment_2 +.word action63_Guard_Gives_Bond_16_Object_num_2 +.word action64_Type_16_Object_Equipped_On_Guard_3 +.word action65_Object_Moved_To_Preset_4 +.word action66_Open_Door_2 +.word action67_Close_Door_2 +.word action68_Check_Door_Status_RVL_If_Met_4 +.word action69_If_16_Object_Is_Valid_Door_RVL_3 +.word action6A_Set_Bits_To_Lock_On_Type_16_Door_3 +.word action6B_Unset_Bits_To_Lock_On_Type_16_Door_3 +.word action6C_If_Tagged_Locked_Door_16_Objects_Toggled_RVL_4 +.word action6D_If_Objective_num_Complete_RVL_3 +.word action6E_If_Guard_2328_Preset_RVL_3 +.word action6F_If_Guard_2328_Preset_Set_RVL_3 +.word action70_Go_Into_RVL_Difficulty_LTV_3 +.word action71_GoIntoRVLIf_Difficulty_GTV_3 +.word action72_Go_To_RVL_If_Time_LTV_4 +.word action73_Go_To_RVL_If_Time_GTV_4 +.word action74_Go_To_RVL_If_Power_On_Time_LTV_4 +.word action75_Go_To_RVL_If_Power_On_Time_GTV_4 +.word action76_Go_To_RVL_If_Stage_Number_LTV_3 +.word action77_Go_To_RVL_If_Stage_Number_GTV_3 +.word action78_Go_To_RVL_If_Guard_Shot_LTV_3 +.word action79_Go_To_RVL_If_Guard_Shot_GTV_3 +.word action7A_Go_To_RVL_If_Number_Near_Miss_Gunshots_LTV_3 +.word action7B_Go_To_RVL_If_Number_Near_Miss_Gunshots_GTV_3 +.word action7C_If_Guard_Health_Below_Value_RVL_4 +.word action7D_If_Guard_Health_Above_Value_RVL_4 +.word action7E_If_Guard_nums_Bitflag_01000000_Set_RVL_3 +.word action7F_If_Health_Below_Value_RVL_3 +.word action80_If_Health_Above_Value_RVL_3 +.word action81_Set_User_Byte_num1_2 +.word action82_Add_Value_To_User_Byte_num1_Max_To_FF_2 +.word action83_Subtract_Value_To_User_Byte_num1_Min_To_0_2 +.word action84_If_Value_GreaterThan_User_Byte_num1_RVL_3 +.word action85_If_User_Byte_num1_LessThan_Random_Value_RVL_2 +.word action86_Set_User_Byte_num2_2 +.word action87_Add_Value_To_User_Byte_num2_Max_To_FF_2 +.word action88_Subtract_Value_To_User_Byte_num2_Min_To_0_2 +.word action89_If_Value_GreaterThan_User_Byte_num2_RVL_3 +.word action8A_If_User_Byte_num2_LessThan_Random_Value_RVL_2 +.word action8B_Set_Guard_Hearing_Distance_3 +.word action8C_Set_Guard_Visible_Distance_2 +.word action8D_Set_Guard_Grenade_Probability_2 +.word action8E_Set_Guard_ID_2 +.word action8F_Set_Guard_Health_3 +.word action90_Set_Guard_Armor_Amount_3 +.word action91_Set_Character_Reaction_Speed_2 +.word action92_Set_Character_Injury_Recovery_Speed_2 +.word action93_Set_Character_Accuracy_2 +.word action94_Mask_Guard_Type_With_Value_2 +.word action95_Unmask_Guard_Type_With_Value_2 +.word action96_If_Guard_Type_Value_Is_Set_RVL_3 +.word action97_Mask_Guard_Type_Flags_With_Value_3 +.word action98_Unmask_Guard_Type_Flags_With_Value_3 +.word action99_If_Guard_Type_Flags_Set_RVL_4 +.word action9A_Set_Objective_Bits_5 +.word action9B_Unset_Objective_Value_5 +.word action9C_Check_If_Objective_Value_Return_Loop_If_So_6 +.word action9D_Set_Guard_Bit_Tags_5 +.word action9E_Unset_Guard_Bit_Tags_5 +.word action9F_Check_Guard_Bits_If_Same_RVL_6 +.word actionA0_Set_Guard_ID_Bits_6 +.word actionA1_Unset_Guard_ID_Bits_6 +.word actionA2_Check_Guard_Bits_If_Same_RVL_7 +.word actionA3_Set_State_Bits_16_Type_Object_6 +.word actionA4_Unset_State_Bits_16_Type_Object_6 +.word actionA5_Check_State_Bits_16_Type_Object_If_Same_RVL_7 +.word actionA6_Set_16_Object_States_More_6 +.word actionA7_Unset_16_Object_States_More_6 +.word actionA8_Check_16_Object_States_More_If_Same_RVL_7 +.word actionA9_Sets_To_Guard_ID_Fc_Current_Guard_2 +.word actionAA_Sets_FC_Value_For_Guard_ID_To_Guard_ID_3 +.word actionAB_Set_Current_Guards_2328_Value_To_Preset_3 +.word actionAC_Set_Guard_ID_numS_2328_Value_To_Preset_4 +.word actionAD_Debug_Comment_20 +.word actionAE_Reset_Cycle_Counter_And_Enable_It_1 +.word actionAF_Reset_Cycle_Counter_1 +.word actionB0_Disable_Cycle_Counter_1 +.word actionB1_Enable_Cycle_Counter_1 +.word actionB2_Check_Cycle_Counter_Enable_Status_2 +.word actionB3_If_Cycle_Counter_LTV_RVL_5 +.word actionB4_If_Cycle_Counter_GTV_RVL_5 +.word actionB5_Show_Timer_1 +.word actionB6_Hide_Timer_Silent_Countdown_1 +.word actionB7_Set_Timer_X_Seconds__Doesnt_Show_Timer_Yet_3 +.word actionB8_Stop_Timer_1 +.word actionB9_Start_Timer_1 +.word actionBA_Check_Timer_Enabled_Status_RVL_If_Enabled_2 +.word actionBB_Detect_If_Timer_Below_Certain_Point_RVL_If_So_4 +.word actionBC_Detect_If_Timer_Above_Certain_Point_RVL_If_So_4 +.word actionBD_Spawn_Guard_C +.word actionBE_Respawn_Guard_with_ID_B +.word actionBF_Spawn_Weapon_9 +.word actionC0_Spawn_Hat_8 +.word actionC1_GuardIDDoesAV_If_Gunfire_RVL_WhenComplete_5 +.word actionC2_Display_Text_Preset_Bottom_Screen_3 +.word actionC3_Display_Text_Preset_Top_Screen_3 +.word actionC4_Play_Sound_Effect_num_In_Slot_num_0_7_4 +.word actionC5_EmanateSoundSlotnumFrom16ObjectWithAudibleRV_5 +.word actionC6_EmanateSoundSlotnumFromPresetWithAudibleRV_6 +.word actionC7_Sound_In_Slot_num_Crecendos_To_Volume_Over_ms_6 +.word actionC8_Sound_In_Slot_num_Fades_To_Volume_Over_ms_6 +.word actionC9_Shut_Off_Sound_In_Slot_Number_2 +.word actionCA_If_Value_GreaterThan_Volume_7FFF_Max_RVL_5 +.word actionCB_Set_Object_Path_27_Type_Object_2 +.word actionCC_Set_Speed_Moving_Vehicle_27_Type_Object_5 +.word actionCD_Set_Speed_Aircraft_Rotor_5 +.word actionCE_Detect_If_Currently_In_Intro_Camera_RVL_If_So_2 +.word actionCF_Detect_If_Currently_In_Intro_Swirl_RVL_If_So_2 +.word actionD0_Change_Animation_Type_Of_Type_16_Monitor_4 +.word actionD1_If_Bond_In_Tank_RVL_2 +.word actionD2_Exit_Level_1 +.word actionD3_Return_From_Camera_Scene_1 +.word actionD4_Camera_Looks_At_Bond_From_Preset_3 +.word actionD5_Go_To_Camera_Position_6 +.word actionD6_If_Less_Than_Elevation_RVL_4 +.word actionD7_Disable_Text_Variable_2 +.word actionD8_Enable_All_On_Screen_Displays_1 +.word actionD9_GuardIDMovedToPresetReturnLoopIfSuccessful_5 +.word actionDA_Fade_Out_From_Cut_Scene_1 +.word actionDB_Fade_In_From_Black_Reset_DA_1 +.word actionDC_RVL_When_Fade_Complete_2 +.word actionDD_Remove_All_Guards_1 +.word actionDE_Bring_Removed_Guards_Back_1 +.word actionDF_Open_Type_16_Door_Used_Cut_Scenes_2 +.word actionE0_Guard_ID_Draws_Weapon_num_3 +.word actionE1_If_Fewer_than_This_Many_Players_Playing_RVL_3 +.word actionE2_If_Ammo_Value_In_Type_Is_LTV_RVL_4 +.word actionE3_Draw_Weapon_From_Inventory_In_Game_2 +.word actionE4_Draw_Weapon_From_Inventory_Cut_Scene_2 +.word actionE5_Set_Bonds_Speed_3 +.word actionE6_If_16_Object_And_Preset_Are_In_Same_Room_RVL_5 +.word actionE7_If_Guard_Moving_And_Shooting_RVL_2 +.word actionE8_If_Guard_Is_Shooting_RVL_2 +.word actionE9_Instantly_Switch_Sky_To_Sky_2_1 +.word actionEA_Stop_Game_Time_1 +.word actionEB_If_Key_Pressed_RVL_2 +.word actionEC_Disable_Player_Pickups_1 +.word actionED_Hide_First_Person_Display_1 +.word actionEE_Cuba_Circular_Camera_Aim_D +.word actionEF_Trigger_Credits_1 +.word actionF0_RVL_If_Credits_Completed_2 +.word actionF1_If_All_Objectives_Complete_RVL_2 +.word actionF2_Check_Current_Folder_Bond_RVL_3 +.word actionF3_If_Player_Pickups_Disabled_RVL_2 +.word actionF4_PlaysValuenum1ThemeSlot03ForValuenum2Seconds_4 +.word actionF5_Turn_Off_Music_In_Slot_num_0_3_2 +.word actionF6_Trigger_Explosions_Around_Bond_1 +.word actionF7_If_Number_Of_Hostages_Scientists_Killed_RVL_3 +.word actionF8_If_Guard_ID_00200000_Flag_Set_Unset_And_Return_3 +.word actionF9_Set_Killed_In_Action_Automatic_Mission_Failure_1 +.word actionFA_Guard_Fawns_On_Shoulder_1 +.word actionFB_SwitchToSkyValuenumAndActivateGasContainersIfExist_ +.word actionFC_Launch_Shuttle_2 + +glabel D_800528EC +.word 0x3dcccccd /*0.1*/ +glabel D_800528F0 +.word 0x3dcccccd /*0.1*/ +glabel D_800528F4 +.word 0x3dcccccd /*0.1*/ +glabel D_800528F8 +.word 0x3dcccccd /*0.1*/ + +glabel jpt_800528FC +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word .L7F038C24 +.word .L7F038C24 +.word .L7F038C24 +.word .L7F038C24 +.word .L7F038C24 +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C + +glabel D_80052974 +.word 0x3c888888 /*0.016666666*/ +glabel D_80052978 +.word 0x3e955555 /*0.29166666*/ +.word 0 + +.text +glabel parse_handle_actionblocks +/* 069FB4 7F035484 27BDF848 */ addiu $sp, $sp, -0x7b8 +/* 069FB8 7F035488 AFB7006C */ sw $s7, 0x6c($sp) +/* 069FBC 7F03548C AFB60068 */ sw $s6, 0x68($sp) #free s2 for CurrentActionByte ? +/* 069FC0 7F035490 24010003 */ li $at, 3 #ai_sleep +/* 069FC4 7F035494 AFBF0074 */ sw $ra, 0x74($sp) +/* 069FC8 7F035498 AFBE0070 */ sw $fp, 0x70($sp) +/* 069FCC 7F03549C AFB50064 */ sw $s5, 0x64($sp) +/* 069FD0 7F0354A0 AFB40060 */ sw $s4, 0x60($sp) +/* 069FD4 7F0354A4 AFB3005C */ sw $s3, 0x5c($sp) +/* 069FD8 7F0354A8 AFB20058 */ sw $s2, 0x58($sp) #free s2 for CurrentActionByteSize ? +/* 069FDC 7F0354AC AFB10054 */ sw $s1, 0x54($sp) +/* 069FE0 7F0354B0 AFB00050 */ sw $s0, 0x50($sp) +/* 069FE4 7F0354B4 F7BA0048 */ sdc1 $f26, 0x48($sp) +/* 069FE8 7F0354B8 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 069FEC 7F0354BC F7B60038 */ sdc1 $f22, 0x38($sp) +/* 069FF0 7F0354C0 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 069FF4 7F0354C4 0000B825 */ move $s7, $zero +/* 069FF8 7F0354C8 00003025 */ move $a2, $zero +/* 069FFC 7F0354CC 00001825 */ move $v1, $zero +/* 06A000 7F0354D0 14A10003 */ bne $a1, $at, .L7F0354E0 +/* 06A004 7F0354D4 0000B025 */ move $s6, $zero +/* 06A008 7F0354D8 1000000E */ b .L7F035514 +/* 06A00C 7F0354DC 0080B825 */ move $s7, $a0 +.L7F0354E0: +/* 06A010 7F0354E0 24010001 */ li $at, 1 +/* 06A014 7F0354E4 14A1000B */ bne $a1, $at, .L7F035514 +/* 06A018 7F0354E8 00000000 */ nop +/* 06A01C 7F0354EC 90820003 */ lbu $v0, 3($a0) +/* 06A020 7F0354F0 24010027 */ li $at, 39 +/* 06A024 7F0354F4 54410004 */ bnel $v0, $at, .L7F035508 +/* 06A028 7F0354F8 24010028 */ li $at, 40 +/* 06A02C 7F0354FC 10000005 */ b .L7F035514 +/* 06A030 7F035500 00803025 */ move $a2, $a0 +/* 06A034 7F035504 24010028 */ li $at, 40 +.L7F035508: +/* 06A038 7F035508 14410002 */ bne $v0, $at, .L7F035514 +/* 06A03C 7F03550C 00000000 */ nop +/* 06A040 7F035510 00801825 */ move $v1, $a0 +.L7F035514: +/* 06A044 7F035514 12E00005 */ beqz $s7, .L7F03552C +/* 06A048 7F035518 3C018005 */ lui $at, %hi(D_800524F4) +/* 06A04C 7F03551C 96F20108 */ lhu $s2, 0x108($s7) # Load Size of command +/* 06A050 7F035520 8EF60104 */ lw $s6, 0x104($s7) # load command +/* 06A054 7F035524 1000000C */ b .L7F035558 +/* 06A058 7F035528 AFB207A4 */ sw $s2, 0x7a4($sp) # save command size +.L7F03552C: +/* 06A05C 7F03552C 10C00005 */ beqz $a2, .L7F035544 +/* 06A060 7F035530 00000000 */ nop +/* 06A064 7F035534 94D20084 */ lhu $s2, 0x84($a2) +/* 06A068 7F035538 8CD60080 */ lw $s6, 0x80($a2) +/* 06A06C 7F03553C 10000006 */ b .L7F035558 +/* 06A070 7F035540 AFB207A4 */ sw $s2, 0x7a4($sp) +.L7F035544: +/* 06A074 7F035544 10600004 */ beqz $v1, .L7F035558 +/* 06A078 7F035548 00000000 */ nop +/* 06A07C 7F03554C 94720084 */ lhu $s2, 0x84($v1) +/* 06A080 7F035550 8C760080 */ lw $s6, 0x80($v1) +/* 06A084 7F035554 AFB207A4 */ sw $s2, 0x7a4($sp) +.L7F035558: +/* 06A088 7F035558 12C01329 */ beqz $s6, Action04_End_1 +/* 06A08C 7F03555C 8FB207A4 */ lw $s2, 0x7a4($sp) +/* 06A090 7F035560 C43A24F4 */ lwc1 $f26, %lo(D_800524F4)($at) +/* 06A094 7F035564 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 06A098 7F035568 4481C000 */ mtc1 $at, $f24 +/* 06A09C 7F03556C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 06A0A0 7F035570 3C1E8003 */ lui $fp, %hi(ptr_guard_data) +/* 06A0A4 7F035574 4481B000 */ mtc1 $at, $f22 +/* 06A0A8 7F035578 4480A000 */ mtc1 $zero, $f20 +/* 06A0AC 7F03557C 27DECC64 */ addiu $fp, %lo(ptr_guard_data) # addiu $fp, $fp, -0x339c +/* 06A0B0 7F035580 02D28821 */ addu $s1, $s6, $s2 +/* 06A0B4 7F035584 AFA307AC */ sw $v1, 0x7ac($sp) +/* 06A0B8 7F035588 AFA607B0 */ sw $a2, 0x7b0($sp) +GetByteS1_ParseCommandByte_SwitchCase: /*GetCommandByte(cmd)*/ +/* 06A0BC 7F03558C 922E0000 */ lbu $t6, ($s1) #t6 = byte(s1) +ParseCommandByte_SwitchCase: +/* 06A0C0 7F035590 02C02025 */ move $a0, $s6 +/* 06A0C4 7F035594 2DC100FD */ sltiu $at, $t6, 0xfd # if Cmd !< AI_CMDS_TOTAL then +/* 06A0C8 7F035598 10201314 */ beqz $at, GetCmdLength # Cmd<<2 goto GetCmdLength +/* 06A0CC 7F03559C 000E7080 */ sll $t6, $t6, 2 +/* 06A0D0 7F0355A0 3C018005 */ lui $at, %hi(jpt_800524F8) +/* 06A0D4 7F0355A4 002E0821 */ addu $at, $at, $t6 # else //get cmd +/* 06A0D8 7F0355A8 8C2E24F8 */ lw $t6, %lo(jpt_800524F8)($at) # switch t6(look up table for switch 0x800524f8) +/* 06A0DC 7F0355AC 01C00008 */ jr $t6 # return cmd +/* 06A0E0 7F0355B0 00000000 */ nop +Action00_GoToLabel: #case 0 +/* 06A0E4 7F0355B4 02C02025 */ move $a0, $s6 +/* 06A0E8 7F0355B8 02402825 */ move $a1, $s2 +/* 06A0EC 7F0355BC 0FC0D4BC */ jal true_if_sucessfully_performing_action #(command, commandsize, nextcommand[4]) +/* 06A0F0 7F0355C0 92260001 */ lbu $a2, 1($s1) +/* 06A0F4 7F0355C4 00409025 */ move $s2, $v0 +/* 06A0F8 7F0355C8 1000FFF0 */ b GetByteS1_ParseCommandByte_SwitchCase # GetCommandByte(currcmd + currcmdLength); +/* 06A0FC 7F0355CC 02C28821 */ addu $s1, $s6, $v0 +Action01_GoToLabelFromTop: #case 1 +/* 06A100 7F0355D0 02C02025 */ move $a0, $s6 +/* 06A104 7F0355D4 00002825 */ move $a1, $zero +/* 06A108 7F0355D8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A10C 7F0355DC 92260001 */ lbu $a2, 1($s1) +/* 06A110 7F0355E0 00409025 */ move $s2, $v0 +/* 06A114 7F0355E4 1000FFE9 */ b GetByteS1_ParseCommandByte_SwitchCase #break +/* 06A118 7F0355E8 02C28821 */ addu $s1, $s6, $v0 +Action02_Label: #case 2 +/* 06A11C 7F0355EC 26520002 */ addiu $s2, $s2, 2 # s2++ PC ? # CurrentActionByte += 2 +/* 06A120 7F0355F0 1000FFE6 */ b GetByteS1_ParseCommandByte_SwitchCase # s1 +=2; goto 58c +/* 06A124 7F0355F4 26310002 */ addiu $s1, $s1, 2 +action03_Leave_The_Routine_When_Return_Continue_From_Spot_1: +/* 06A128 7F0355F8 12E00004 */ beqz $s7, .L7F03560C # s2++ PC? +/* 06A12C 7F0355FC 26520001 */ addiu $s2, $s2, 1 # if s7 = 0 goto 0c If actionblock not initilised else ? +/* 06A130 7F035600 AEF60104 */ sw $s6, 0x104($s7) # s7.104 = s6 +/* 06A134 7F035604 100012FE */ b Action04_End_1 # s7.108 = u16(s2) +/* 06A138 7F035608 A6F20108 */ sh $s2, 0x108($s7) # goto end1 (load return addr) +.L7F03560C: +/* 06A13C 7F03560C 8FAF07B0 */ lw $t7, 0x7b0($sp) +/* 06A140 7F035610 8FB807AC */ lw $t8, 0x7ac($sp) +/* 06A144 7F035614 11E00004 */ beqz $t7, .L7F035628 # if t7 = 0 goto 28 +/* 06A148 7F035618 00000000 */ nop +/* 06A14C 7F03561C ADF60080 */ sw $s6, 0x80($t7) #else t7.80 = s6 +/* 06A150 7F035620 100012F7 */ b Action04_End_1 # t7.84 = u16(s2) +/* 06A154 7F035624 A5F20084 */ sh $s2, 0x84($t7) # end1 (load return addr) +.L7F035628: +/* 06A158 7F035628 530012F6 */ beql $t8, $zero, Action04_End_2 # load return addr (same as end1 (sp.74)) +/* 06A15C 7F03562C 8FBF0074 */ lw $ra, 0x74($sp) # if t8 = 0 goto end2 (skip return addr) +/* 06A160 7F035630 AF160080 */ sw $s6, 0x80($t8) # else t8.80 = s6 +/* 06A164 7F035634 100012F2 */ b Action04_End_1 # t8.84 = u16(s2) +/* 06A168 7F035638 A7120084 */ sh $s2, 0x84($t8) # end1(load return addr) +action05_Jump_To_Function_4: +/* 06A16C 7F03563C 92390002 */ lbu $t9, 2($s1) +/* 06A170 7F035640 922A0003 */ lbu $t2, 3($s1) +/* 06A174 7F035644 92250001 */ lbu $a1, 1($s1) +/* 06A178 7F035648 00194A00 */ sll $t1, $t9, 8 +/* 06A17C 7F03564C 012A1825 */ or $v1, $t1, $t2 +/* 06A180 7F035650 306BFFFF */ andi $t3, $v1, 0xffff +/* 06A184 7F035654 240100FD */ li $at, 253 +/* 06A188 7F035658 14A10007 */ bne $a1, $at, .L7F035678 +/* 06A18C 7F03565C 01601825 */ move $v1, $t3 +/* 06A190 7F035660 01602025 */ move $a0, $t3 +/* 06A194 7F035664 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A198 7F035668 00009025 */ move $s2, $zero +/* 06A19C 7F03566C 0040B025 */ move $s6, $v0 +/* 06A1A0 7F035670 1000FFC6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A1A4 7F035674 00408825 */ move $s1, $v0 +.L7F035678: +/* 06A1A8 7F035678 02E02025 */ move $a0, $s7 +/* 06A1AC 7F03567C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A1B0 7F035680 A7A30792 */ sh $v1, 0x792($sp) +/* 06A1B4 7F035684 97A30792 */ lhu $v1, 0x792($sp) +/* 06A1B8 7F035688 10400006 */ beqz $v0, .L7F0356A4 +/* 06A1BC 7F03568C 00408025 */ move $s0, $v0 +/* 06A1C0 7F035690 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A1C4 7F035694 00602025 */ move $a0, $v1 +/* 06A1C8 7F035698 AE020104 */ sw $v0, 0x104($s0) +/* 06A1CC 7F03569C A6000108 */ sh $zero, 0x108($s0) +/* 06A1D0 7F0356A0 A2000008 */ sb $zero, 8($s0) +.L7F0356A4: +/* 06A1D4 7F0356A4 26520004 */ addiu $s2, $s2, 4 +/* 06A1D8 7F0356A8 1000FFB8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A1DC 7F0356AC 26310004 */ addiu $s1, $s1, 4 +action06_Set_Return_Subroutine_for_0007_Command_3: +/* 06A1E0 7F0356B0 922C0001 */ lbu $t4, 1($s1) +/* 06A1E4 7F0356B4 922E0002 */ lbu $t6, 2($s1) +/* 06A1E8 7F0356B8 8FB807B0 */ lw $t8, 0x7b0($sp) +/* 06A1EC 7F0356BC 000C6A00 */ sll $t5, $t4, 8 +/* 06A1F0 7F0356C0 01AE1025 */ or $v0, $t5, $t6 +/* 06A1F4 7F0356C4 304FFFFF */ andi $t7, $v0, 0xffff +/* 06A1F8 7F0356C8 12E00005 */ beqz $s7, .L7F0356E0 +/* 06A1FC 7F0356CC 01E01025 */ move $v0, $t7 +/* 06A200 7F0356D0 A6EF010A */ sh $t7, 0x10a($s7) +/* 06A204 7F0356D4 26520003 */ addiu $s2, $s2, 3 +/* 06A208 7F0356D8 1000FFAC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A20C 7F0356DC 26310003 */ addiu $s1, $s1, 3 +.L7F0356E0: +/* 06A210 7F0356E0 13000005 */ beqz $t8, .L7F0356F8 +/* 06A214 7F0356E4 8FB907AC */ lw $t9, 0x7ac($sp) +/* 06A218 7F0356E8 A7020086 */ sh $v0, 0x86($t8) +/* 06A21C 7F0356EC 26520003 */ addiu $s2, $s2, 3 +/* 06A220 7F0356F0 1000FFA6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A224 7F0356F4 26310003 */ addiu $s1, $s1, 3 +.L7F0356F8: +/* 06A228 7F0356F8 13200002 */ beqz $t9, .L7F035704 +/* 06A22C 7F0356FC 26520003 */ addiu $s2, $s2, 3 +/* 06A230 7F035700 A7220086 */ sh $v0, 0x86($t9) +.L7F035704: +/* 06A234 7F035704 1000FFA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A238 7F035708 26310003 */ addiu $s1, $s1, 3 +action07_Jump_to_Return_Subroutine_1: +/* 06A23C 7F03570C 12E00006 */ beqz $s7, .L7F035728 +/* 06A240 7F035710 00009025 */ move $s2, $zero +/* 06A244 7F035714 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A248 7F035718 86E4010A */ lh $a0, 0x10a($s7) +/* 06A24C 7F03571C 0040B025 */ move $s6, $v0 +/* 06A250 7F035720 1000FF9A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A254 7F035724 00408825 */ move $s1, $v0 +.L7F035728: +/* 06A258 7F035728 8FA907B0 */ lw $t1, 0x7b0($sp) +/* 06A25C 7F03572C 8FAA07AC */ lw $t2, 0x7ac($sp) +/* 06A260 7F035730 11200006 */ beqz $t1, .L7F03574C +/* 06A264 7F035734 00000000 */ nop +/* 06A268 7F035738 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A26C 7F03573C 85240086 */ lh $a0, 0x86($t1) +/* 06A270 7F035740 0040B025 */ move $s6, $v0 +/* 06A274 7F035744 1000FF91 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A278 7F035748 00408825 */ move $s1, $v0 +.L7F03574C: +/* 06A27C 7F03574C 11400004 */ beqz $t2, .L7F035760 +/* 06A280 7F035750 00000000 */ nop +/* 06A284 7F035754 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A288 7F035758 85440086 */ lh $a0, 0x86($t2) +/* 06A28C 7F03575C 0040B025 */ move $s6, $v0 +.L7F035760: +/* 06A290 7F035760 1000FF8A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A294 7F035764 02C08825 */ move $s1, $s6 +action08_Reset_Animation_1: +/* 06A298 7F035768 0FC0CD75 */ jal sub_GAME_7F0335D4 +/* 06A29C 7F03576C 02E02025 */ move $a0, $s7 +/* 06A2A0 7F035770 26520001 */ addiu $s2, $s2, 1 +/* 06A2A4 7F035774 1000FF85 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A2A8 7F035778 26310001 */ addiu $s1, $s1, 1 +action09_Guard_Kneels_1: +/* 06A2AC 7F03577C 0FC0CDB1 */ jal check_if_able_to_then_kneel +/* 06A2B0 7F035780 02E02025 */ move $a0, $s7 +/* 06A2B4 7F035784 26520001 */ addiu $s2, $s2, 1 +/* 06A2B8 7F035788 1000FF80 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A2BC 7F03578C 26310001 */ addiu $s1, $s1, 1 +action0A_Animation_9: +/* 06A2C0 7F035790 922B0001 */ lbu $t3, 1($s1) +/* 06A2C4 7F035794 922D0002 */ lbu $t5, 2($s1) +/* 06A2C8 7F035798 3401FFFF */ li $at, 65535 +/* 06A2CC 7F03579C 000B6200 */ sll $t4, $t3, 8 +/* 06A2D0 7F0357A0 018D7025 */ or $t6, $t4, $t5 +/* 06A2D4 7F0357A4 AFAE077C */ sw $t6, 0x77c($sp) +/* 06A2D8 7F0357A8 922F0003 */ lbu $t7, 3($s1) +/* 06A2DC 7F0357AC 92290005 */ lbu $t1, 5($s1) +/* 06A2E0 7F0357B0 92390004 */ lbu $t9, 4($s1) +/* 06A2E4 7F0357B4 922B0006 */ lbu $t3, 6($s1) +/* 06A2E8 7F0357B8 000FC200 */ sll $t8, $t7, 8 +/* 06A2EC 7F0357BC 00095200 */ sll $t2, $t1, 8 +/* 06A2F0 7F0357C0 03198025 */ or $s0, $t8, $t9 +/* 06A2F4 7F0357C4 014B6025 */ or $t4, $t2, $t3 +/* 06A2F8 7F0357C8 16010002 */ bne $s0, $at, .L7F0357D4 +/* 06A2FC 7F0357CC AFAC0774 */ sw $t4, 0x774($sp) +/* 06A300 7F0357D0 00008025 */ move $s0, $zero +.L7F0357D4: +/* 06A304 7F0357D4 8FB30774 */ lw $s3, 0x774($sp) +/* 06A308 7F0357D8 3401FFFF */ li $at, 65535 +/* 06A30C 7F0357DC 02E02025 */ move $a0, $s7 +/* 06A310 7F0357E0 16610002 */ bne $s3, $at, .L7F0357EC +/* 06A314 7F0357E4 8FAF07AC */ lw $t7, 0x7ac($sp) +/* 06A318 7F0357E8 2413FFFF */ li $s3, -1 +.L7F0357EC: +/* 06A31C 7F0357EC 12E0000C */ beqz $s7, .L7F035820 +/* 06A320 7F0357F0 00000000 */ nop +/* 06A324 7F0357F4 922D0007 */ lbu $t5, 7($s1) +/* 06A328 7F0357F8 8FA5077C */ lw $a1, 0x77c($sp) +/* 06A32C 7F0357FC 02003025 */ move $a2, $s0 +/* 06A330 7F035800 AFAD0010 */ sw $t5, 0x10($sp) +/* 06A334 7F035804 922E0008 */ lbu $t6, 8($s1) +/* 06A338 7F035808 02603825 */ move $a3, $s3 +/* 06A33C 7F03580C 0FC0CDC0 */ jal check_if_able_to_then_perform_animation +/* 06A340 7F035810 AFAE0014 */ sw $t6, 0x14($sp) +/* 06A344 7F035814 26520009 */ addiu $s2, $s2, 9 +/* 06A348 7F035818 1000FF5C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A34C 7F03581C 26310009 */ addiu $s1, $s1, 9 +.L7F035820: +/* 06A350 7F035820 11E0001B */ beqz $t7, .L7F035890 +/* 06A354 7F035824 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 06A358 7F035828 44813000 */ mtc1 $at, $f6 +/* 06A35C 7F03582C 8DE40014 */ lw $a0, 0x14($t7) +/* 06A360 7F035830 44902000 */ mtc1 $s0, $f4 +/* 06A364 7F035834 E7A60010 */ swc1 $f6, 0x10($sp) +/* 06A368 7F035838 92290008 */ lbu $t1, 8($s1) +/* 06A36C 7F03583C 46802120 */ cvt.s.w $f4, $f4 +/* 06A370 7F035840 8FB8077C */ lw $t8, 0x77c($sp) +/* 06A374 7F035844 44894000 */ mtc1 $t1, $f8 +/* 06A378 7F035848 3C058003 */ lui $a1, %hi(animation_table_ptrs2) +/* 06A37C 7F03584C 0018C880 */ sll $t9, $t8, 2 +/* 06A380 7F035850 468042A0 */ cvt.s.w $f10, $f8 +/* 06A384 7F035854 00B92821 */ addu $a1, $a1, $t9 +/* 06A388 7F035858 44072000 */ mfc1 $a3, $f4 +/* 06A38C 7F03585C 8CA5A04C */ lw $a1, %lo(animation_table_ptrs2)($a1) +/* 06A390 7F035860 00003025 */ move $a2, $zero +/* 06A394 7F035864 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 06A398 7F035868 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 06A39C 7F03586C 06620009 */ bltzl $s3, .L7F035894 +/* 06A3A0 7F035870 26520009 */ addiu $s2, $s2, 9 +/* 06A3A4 7F035874 44938000 */ mtc1 $s3, $f16 +/* 06A3A8 7F035878 8FAA07AC */ lw $t2, 0x7ac($sp) +/* 06A3AC 7F03587C 46808420 */ cvt.s.w $f16, $f16 +/* 06A3B0 7F035880 8D440014 */ lw $a0, 0x14($t2) +/* 06A3B4 7F035884 44058000 */ mfc1 $a1, $f16 +/* 06A3B8 7F035888 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 06A3BC 7F03588C 00000000 */ nop +.L7F035890: +/* 06A3C0 7F035890 26520009 */ addiu $s2, $s2, 9 +.L7F035894: +/* 06A3C4 7F035894 1000FF3D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A3C8 7F035898 26310009 */ addiu $s1, $s1, 9 +action0B_If_Guard_WastingTime_SwatFlies_RVL_2: +/* 06A3CC 7F03589C 82EB0007 */ lb $t3, 7($s7) +/* 06A3D0 7F0358A0 24010003 */ li $at, 3 +/* 06A3D4 7F0358A4 02C02025 */ move $a0, $s6 +/* 06A3D8 7F0358A8 15610006 */ bne $t3, $at, .L7F0358C4 +/* 06A3DC 7F0358AC 02402825 */ move $a1, $s2 +/* 06A3E0 7F0358B0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A3E4 7F0358B4 92260001 */ lbu $a2, 1($s1) +/* 06A3E8 7F0358B8 00409025 */ move $s2, $v0 +/* 06A3EC 7F0358BC 1000FF33 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A3F0 7F0358C0 02C28821 */ addu $s1, $s6, $v0 +.L7F0358C4: +/* 06A3F4 7F0358C4 26520002 */ addiu $s2, $s2, 2 +/* 06A3F8 7F0358C8 1000FF30 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A3FC 7F0358CC 26310002 */ addiu $s1, $s1, 2 +action0C_Guard_Gestures_1: +/* 06A400 7F0358D0 0FC0CD84 */ jal check_if_able_to_then_shuffle_feet +/* 06A404 7F0358D4 02E02025 */ move $a0, $s7 +/* 06A408 7F0358D8 26520001 */ addiu $s2, $s2, 1 +/* 06A40C 7F0358DC 1000FF2B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A410 7F0358E0 26310001 */ addiu $s1, $s1, 1 +action0D_Guard_Looks_Around_When_Shot_At_1: +/* 06A414 7F0358E4 0FC0CDA2 */ jal check_if_able_to_then_look_flustered +/* 06A418 7F0358E8 02E02025 */ move $a0, $s7 +/* 06A41C 7F0358EC 26520001 */ addiu $s2, $s2, 1 +/* 06A420 7F0358F0 1000FF26 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A424 7F0358F4 26310001 */ addiu $s1, $s1, 1 +action2F_When_Guard_Stops_Moving_RVL_2: +/* 06A428 7F0358F8 0FC0A717 */ jal check_if_actor_stationary +/* 06A42C 7F0358FC 02E02025 */ move $a0, $s7 +/* 06A430 7F035900 10400007 */ beqz $v0, .L7F035920 +/* 06A434 7F035904 02C02025 */ move $a0, $s6 +/* 06A438 7F035908 02402825 */ move $a1, $s2 +/* 06A43C 7F03590C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A440 7F035910 92260001 */ lbu $a2, 1($s1) +/* 06A444 7F035914 00409025 */ move $s2, $v0 +/* 06A448 7F035918 1000FF1C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A44C 7F03591C 02C28821 */ addu $s1, $s6, $v0 +.L7F035920: +/* 06A450 7F035920 26520002 */ addiu $s2, $s2, 2 +/* 06A454 7F035924 1000FF19 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A458 7F035928 26310002 */ addiu $s1, $s1, 2 +action30_Detect_If_Guard_Killed_RVL_If_So_3: +/* 06A45C 7F03592C 02E02025 */ move $a0, $s7 +/* 06A460 7F035930 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A464 7F035934 92250001 */ lbu $a1, 1($s1) +/* 06A468 7F035938 10400004 */ beqz $v0, .L7F03594C +/* 06A46C 7F03593C 00402025 */ move $a0, $v0 +/* 06A470 7F035940 0FC0A8A9 */ jal true_if_actor_dying_fading +/* 06A474 7F035944 00000000 */ nop +/* 06A478 7F035948 10400007 */ beqz $v0, .L7F035968 +.L7F03594C: +/* 06A47C 7F03594C 02C02025 */ move $a0, $s6 +/* 06A480 7F035950 02402825 */ move $a1, $s2 +/* 06A484 7F035954 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A488 7F035958 92260002 */ lbu $a2, 2($s1) +/* 06A48C 7F03595C 00409025 */ move $s2, $v0 +/* 06A490 7F035960 1000FF0A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A494 7F035964 02C28821 */ addu $s1, $s6, $v0 +.L7F035968: +/* 06A498 7F035968 26520003 */ addiu $s2, $s2, 3 +/* 06A49C 7F03596C 1000FF07 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A4A0 7F035970 26310003 */ addiu $s1, $s1, 3 +action31_If_GuardID_Finish_DeathAnimation_RVL_3: +/* 06A4A4 7F035974 02E02025 */ move $a0, $s7 +/* 06A4A8 7F035978 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A4AC 7F03597C 92250001 */ lbu $a1, 1($s1) +/* 06A4B0 7F035980 10400003 */ beqz $v0, .L7F035990 +/* 06A4B4 7F035984 02C02025 */ move $a0, $s6 +/* 06A4B8 7F035988 8C4C001C */ lw $t4, 0x1c($v0) +/* 06A4BC 7F03598C 15800006 */ bnez $t4, .L7F0359A8 +.L7F035990: +/* 06A4C0 7F035990 02402825 */ move $a1, $s2 +/* 06A4C4 7F035994 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A4C8 7F035998 92260002 */ lbu $a2, 2($s1) +/* 06A4CC 7F03599C 00409025 */ move $s2, $v0 +/* 06A4D0 7F0359A0 1000FEFA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A4D4 7F0359A4 02C28821 */ addu $s1, $s6, $v0 +.L7F0359A8: +/* 06A4D8 7F0359A8 26520003 */ addiu $s2, $s2, 3 +/* 06A4DC 7F0359AC 1000FEF7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A4E0 7F0359B0 26310003 */ addiu $s1, $s1, 3 +action32_If_Bond_In_Sight_RVL_2: +/* 06A4E4 7F0359B4 0FC0A75C */ jal sub_GAME_7F029D70 +/* 06A4E8 7F0359B8 02E02025 */ move $a0, $s7 +/* 06A4EC 7F0359BC 10400007 */ beqz $v0, .L7F0359DC +/* 06A4F0 7F0359C0 02C02025 */ move $a0, $s6 +/* 06A4F4 7F0359C4 02402825 */ move $a1, $s2 +/* 06A4F8 7F0359C8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A4FC 7F0359CC 92260001 */ lbu $a2, 1($s1) +/* 06A500 7F0359D0 00409025 */ move $s2, $v0 +/* 06A504 7F0359D4 1000FEED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A508 7F0359D8 02C28821 */ addu $s1, $s6, $v0 +.L7F0359DC: +/* 06A50C 7F0359DC 26520002 */ addiu $s2, $s2, 2 +/* 06A510 7F0359E0 1000FEEA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A514 7F0359E4 26310002 */ addiu $s1, $s1, 2 +action0E_Guard_Steps_Sideways_RVL_2: +/* 06A518 7F0359E8 0FC0A8B2 */ jal actor_steps_sideways +/* 06A51C 7F0359EC 02E02025 */ move $a0, $s7 +/* 06A520 7F0359F0 10400007 */ beqz $v0, .L7F035A10 +/* 06A524 7F0359F4 02C02025 */ move $a0, $s6 +/* 06A528 7F0359F8 02402825 */ move $a1, $s2 +/* 06A52C 7F0359FC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A530 7F035A00 92260001 */ lbu $a2, 1($s1) +/* 06A534 7F035A04 00409025 */ move $s2, $v0 +/* 06A538 7F035A08 1000FEE0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A53C 7F035A0C 02C28821 */ addu $s1, $s6, $v0 +.L7F035A10: +/* 06A540 7F035A10 26520002 */ addiu $s2, $s2, 2 +/* 06A544 7F035A14 1000FEDD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A548 7F035A18 26310002 */ addiu $s1, $s1, 2 +action0F_Guard_Hops_Sideways_RVL_2: +/* 06A54C 7F035A1C 0FC0A90A */ jal actor_hops_sideways +/* 06A550 7F035A20 02E02025 */ move $a0, $s7 +/* 06A554 7F035A24 10400007 */ beqz $v0, .L7F035A44 +/* 06A558 7F035A28 02C02025 */ move $a0, $s6 +/* 06A55C 7F035A2C 02402825 */ move $a1, $s2 +/* 06A560 7F035A30 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A564 7F035A34 92260001 */ lbu $a2, 1($s1) +/* 06A568 7F035A38 00409025 */ move $s2, $v0 +/* 06A56C 7F035A3C 1000FED3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A570 7F035A40 02C28821 */ addu $s1, $s6, $v0 +.L7F035A44: +/* 06A574 7F035A44 26520002 */ addiu $s2, $s2, 2 +/* 06A578 7F035A48 1000FED0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A57C 7F035A4C 26310002 */ addiu $s1, $s1, 2 +action10_Guard_Runs_Sideways_RVL_2: +/* 06A580 7F035A50 0FC0A962 */ jal actor_runs_sideways +/* 06A584 7F035A54 02E02025 */ move $a0, $s7 +/* 06A588 7F035A58 10400007 */ beqz $v0, .L7F035A78 +/* 06A58C 7F035A5C 02C02025 */ move $a0, $s6 +/* 06A590 7F035A60 02402825 */ move $a1, $s2 +/* 06A594 7F035A64 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A598 7F035A68 92260001 */ lbu $a2, 1($s1) +/* 06A59C 7F035A6C 00409025 */ move $s2, $v0 +/* 06A5A0 7F035A70 1000FEC6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5A4 7F035A74 02C28821 */ addu $s1, $s6, $v0 +.L7F035A78: +/* 06A5A8 7F035A78 26520002 */ addiu $s2, $s2, 2 +/* 06A5AC 7F035A7C 1000FEC3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5B0 7F035A80 26310002 */ addiu $s1, $s1, 2 +action11_Guard_Walks_Firing_RVL_2: +/* 06A5B4 7F035A84 0FC0A9C1 */ jal actor_walks_and_fires +/* 06A5B8 7F035A88 02E02025 */ move $a0, $s7 +/* 06A5BC 7F035A8C 10400007 */ beqz $v0, .L7F035AAC +/* 06A5C0 7F035A90 02C02025 */ move $a0, $s6 +/* 06A5C4 7F035A94 02402825 */ move $a1, $s2 +/* 06A5C8 7F035A98 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A5CC 7F035A9C 92260001 */ lbu $a2, 1($s1) +/* 06A5D0 7F035AA0 00409025 */ move $s2, $v0 +/* 06A5D4 7F035AA4 1000FEB9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5D8 7F035AA8 02C28821 */ addu $s1, $s6, $v0 +.L7F035AAC: +/* 06A5DC 7F035AAC 26520002 */ addiu $s2, $s2, 2 +/* 06A5E0 7F035AB0 1000FEB6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5E4 7F035AB4 26310002 */ addiu $s1, $s1, 2 +action12_Guard_Runs_Firing_RVL_2: +/* 06A5E8 7F035AB8 0FC0A9FE */ jal actor_runs_and_fires +/* 06A5EC 7F035ABC 02E02025 */ move $a0, $s7 +/* 06A5F0 7F035AC0 10400007 */ beqz $v0, .L7F035AE0 +/* 06A5F4 7F035AC4 02C02025 */ move $a0, $s6 +/* 06A5F8 7F035AC8 02402825 */ move $a1, $s2 +/* 06A5FC 7F035ACC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A600 7F035AD0 92260001 */ lbu $a2, 1($s1) +/* 06A604 7F035AD4 00409025 */ move $s2, $v0 +/* 06A608 7F035AD8 1000FEAC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A60C 7F035ADC 02C28821 */ addu $s1, $s6, $v0 +.L7F035AE0: +/* 06A610 7F035AE0 26520002 */ addiu $s2, $s2, 2 +/* 06A614 7F035AE4 1000FEA9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A618 7F035AE8 26310002 */ addiu $s1, $s1, 2 +action13_Guard_Rolls_On_Ground_Then_Fires_Crouched_RVL_2: +/* 06A61C 7F035AEC 0FC0AA3B */ jal actor_rolls_fires_crouched +/* 06A620 7F035AF0 02E02025 */ move $a0, $s7 +/* 06A624 7F035AF4 10400007 */ beqz $v0, .L7F035B14 +/* 06A628 7F035AF8 02C02025 */ move $a0, $s6 +/* 06A62C 7F035AFC 02402825 */ move $a1, $s2 +/* 06A630 7F035B00 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A634 7F035B04 92260001 */ lbu $a2, 1($s1) +/* 06A638 7F035B08 00409025 */ move $s2, $v0 +/* 06A63C 7F035B0C 1000FE9F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A640 7F035B10 02C28821 */ addu $s1, $s6, $v0 +.L7F035B14: +/* 06A644 7F035B14 26520002 */ addiu $s2, $s2, 2 +/* 06A648 7F035B18 1000FE9C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A64C 7F035B1C 26310002 */ addiu $s1, $s1, 2 +action14_Guard_Aims_Shoots_at_Bond_Guard_Pad_RVL_6: +/* 06A650 7F035B20 922D0003 */ lbu $t5, 3($s1) +/* 06A654 7F035B24 92380001 */ lbu $t8, 1($s1) +/* 06A658 7F035B28 922F0004 */ lbu $t7, 4($s1) +/* 06A65C 7F035B2C 92290002 */ lbu $t1, 2($s1) +/* 06A660 7F035B30 000D7200 */ sll $t6, $t5, 8 +/* 06A664 7F035B34 0018CA00 */ sll $t9, $t8, 8 +/* 06A668 7F035B38 02E02025 */ move $a0, $s7 +/* 06A66C 7F035B3C 01CF3025 */ or $a2, $t6, $t7 +/* 06A670 7F035B40 0FC0AA87 */ jal actor_aim_at_actor +/* 06A674 7F035B44 03292825 */ or $a1, $t9, $t1 +/* 06A678 7F035B48 10400007 */ beqz $v0, .L7F035B68 +/* 06A67C 7F035B4C 02C02025 */ move $a0, $s6 +/* 06A680 7F035B50 02402825 */ move $a1, $s2 +/* 06A684 7F035B54 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A688 7F035B58 92260005 */ lbu $a2, 5($s1) +/* 06A68C 7F035B5C 00409025 */ move $s2, $v0 +/* 06A690 7F035B60 1000FE8A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A694 7F035B64 02C28821 */ addu $s1, $s6, $v0 +.L7F035B68: +/* 06A698 7F035B68 26520006 */ addiu $s2, $s2, 6 +/* 06A69C 7F035B6C 1000FE87 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A6A0 7F035B70 26310006 */ addiu $s1, $s1, 6 +action15_Guard_Kneels_Aims_Shoots_at_Bond_Guard_Pad_RVL_6: +/* 06A6A4 7F035B74 922A0003 */ lbu $t2, 3($s1) +/* 06A6A8 7F035B78 922D0001 */ lbu $t5, 1($s1) +/* 06A6AC 7F035B7C 922C0004 */ lbu $t4, 4($s1) +/* 06A6B0 7F035B80 922F0002 */ lbu $t7, 2($s1) +/* 06A6B4 7F035B84 000A5A00 */ sll $t3, $t2, 8 +/* 06A6B8 7F035B88 000D7200 */ sll $t6, $t5, 8 +/* 06A6BC 7F035B8C 02E02025 */ move $a0, $s7 +/* 06A6C0 7F035B90 016C3025 */ or $a2, $t3, $t4 +/* 06A6C4 7F035B94 0FC0AAA2 */ jal actor_kneel_aim_at_actor +/* 06A6C8 7F035B98 01CF2825 */ or $a1, $t6, $t7 +/* 06A6CC 7F035B9C 10400007 */ beqz $v0, .L7F035BBC +/* 06A6D0 7F035BA0 02C02025 */ move $a0, $s6 +/* 06A6D4 7F035BA4 02402825 */ move $a1, $s2 +/* 06A6D8 7F035BA8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A6DC 7F035BAC 92260005 */ lbu $a2, 5($s1) +/* 06A6E0 7F035BB0 00409025 */ move $s2, $v0 +/* 06A6E4 7F035BB4 1000FE75 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A6E8 7F035BB8 02C28821 */ addu $s1, $s6, $v0 +.L7F035BBC: +/* 06A6EC 7F035BBC 26520006 */ addiu $s2, $s2, 6 +/* 06A6F0 7F035BC0 1000FE72 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A6F4 7F035BC4 26310006 */ addiu $s1, $s1, 6 +actionE7_If_Guard_Moving_And_Shooting_RVL_2: +/* 06A6F8 7F035BC8 82F80007 */ lb $t8, 7($s7) +/* 06A6FC 7F035BCC 24010008 */ li $at, 8 +/* 06A700 7F035BD0 57010010 */ bnel $t8, $at, .L7F035C14 +/* 06A704 7F035BD4 26520002 */ addiu $s2, $s2, 2 +/* 06A708 7F035BD8 8EF90058 */ lw $t9, 0x58($s7) +/* 06A70C 7F035BDC 5720000D */ bnezl $t9, .L7F035C14 +/* 06A710 7F035BE0 26520002 */ addiu $s2, $s2, 2 +/* 06A714 7F035BE4 8EE9004C */ lw $t1, 0x4c($s7) +/* 06A718 7F035BE8 02C02025 */ move $a0, $s6 +/* 06A71C 7F035BEC 02402825 */ move $a1, $s2 +/* 06A720 7F035BF0 312A0040 */ andi $t2, $t1, 0x40 +/* 06A724 7F035BF4 51400007 */ beql $t2, $zero, .L7F035C14 +/* 06A728 7F035BF8 26520002 */ addiu $s2, $s2, 2 +/* 06A72C 7F035BFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A730 7F035C00 92260001 */ lbu $a2, 1($s1) +/* 06A734 7F035C04 00409025 */ move $s2, $v0 +/* 06A738 7F035C08 1000FE60 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A73C 7F035C0C 02C28821 */ addu $s1, $s6, $v0 +/* 06A740 7F035C10 26520002 */ addiu $s2, $s2, 2 +.L7F035C14: +/* 06A744 7F035C14 1000FE5D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A748 7F035C18 26310002 */ addiu $s1, $s1, 2 +actionE8_If_Guard_Is_Shooting_RVL_2: +/* 06A74C 7F035C1C 82EB0007 */ lb $t3, 7($s7) +/* 06A750 7F035C20 24010008 */ li $at, 8 +/* 06A754 7F035C24 02C02025 */ move $a0, $s6 +/* 06A758 7F035C28 15610006 */ bne $t3, $at, .L7F035C44 +/* 06A75C 7F035C2C 02402825 */ move $a1, $s2 +/* 06A760 7F035C30 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A764 7F035C34 92260001 */ lbu $a2, 1($s1) +/* 06A768 7F035C38 00409025 */ move $s2, $v0 +/* 06A76C 7F035C3C 1000FE53 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A770 7F035C40 02C28821 */ addu $s1, $s6, $v0 +.L7F035C44: +/* 06A774 7F035C44 26520002 */ addiu $s2, $s2, 2 +/* 06A778 7F035C48 1000FE50 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A77C 7F035C4C 26310002 */ addiu $s1, $s1, 2 +action16_Guard_Shoots_Guards_Without_Animation_Change_RVL_6: +/* 06A780 7F035C50 922C0003 */ lbu $t4, 3($s1) +/* 06A784 7F035C54 922F0001 */ lbu $t7, 1($s1) +/* 06A788 7F035C58 922E0004 */ lbu $t6, 4($s1) +/* 06A78C 7F035C5C 92390002 */ lbu $t9, 2($s1) +/* 06A790 7F035C60 000C6A00 */ sll $t5, $t4, 8 +/* 06A794 7F035C64 000FC200 */ sll $t8, $t7, 8 +/* 06A798 7F035C68 02E02025 */ move $a0, $s7 +/* 06A79C 7F035C6C 01AE3025 */ or $a2, $t5, $t6 +/* 06A7A0 7F035C70 0FC0AABD */ jal sub_GAME_7F02AAF4 +/* 06A7A4 7F035C74 03192825 */ or $a1, $t8, $t9 +/* 06A7A8 7F035C78 10400007 */ beqz $v0, .L7F035C98 +/* 06A7AC 7F035C7C 02C02025 */ move $a0, $s6 +/* 06A7B0 7F035C80 02402825 */ move $a1, $s2 +/* 06A7B4 7F035C84 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A7B8 7F035C88 92260005 */ lbu $a2, 5($s1) +/* 06A7BC 7F035C8C 00409025 */ move $s2, $v0 +/* 06A7C0 7F035C90 1000FE3E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A7C4 7F035C94 02C28821 */ addu $s1, $s6, $v0 +.L7F035C98: +/* 06A7C8 7F035C98 26520006 */ addiu $s2, $s2, 6 +/* 06A7CC 7F035C9C 1000FE3B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A7D0 7F035CA0 26310006 */ addiu $s1, $s1, 6 +action17_Guard_Constantly_Angles_To_Face_RVL_6: +/* 06A7D4 7F035CA4 92290003 */ lbu $t1, 3($s1) +/* 06A7D8 7F035CA8 922C0001 */ lbu $t4, 1($s1) +/* 06A7DC 7F035CAC 922B0004 */ lbu $t3, 4($s1) +/* 06A7E0 7F035CB0 922E0002 */ lbu $t6, 2($s1) +/* 06A7E4 7F035CB4 00095200 */ sll $t2, $t1, 8 +/* 06A7E8 7F035CB8 000C6A00 */ sll $t5, $t4, 8 +/* 06A7EC 7F035CBC 02E02025 */ move $a0, $s7 +/* 06A7F0 7F035CC0 014B3025 */ or $a2, $t2, $t3 +/* 06A7F4 7F035CC4 0FC0AAD1 */ jal check_set_actor_standing_still +/* 06A7F8 7F035CC8 01AE2825 */ or $a1, $t5, $t6 +/* 06A7FC 7F035CCC 10400007 */ beqz $v0, .L7F035CEC +/* 06A800 7F035CD0 02C02025 */ move $a0, $s6 +/* 06A804 7F035CD4 02402825 */ move $a1, $s2 +/* 06A808 7F035CD8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A80C 7F035CDC 92260005 */ lbu $a2, 5($s1) +/* 06A810 7F035CE0 00409025 */ move $s2, $v0 +/* 06A814 7F035CE4 1000FE29 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A818 7F035CE8 02C28821 */ addu $s1, $s6, $v0 +.L7F035CEC: +/* 06A81C 7F035CEC 26520006 */ addiu $s2, $s2, 6 +/* 06A820 7F035CF0 1000FE26 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A824 7F035CF4 26310006 */ addiu $s1, $s1, 6 +action18_Shoot_Guard_ID_In_Style_With_Weapon_Type_num_4: +/* 06A828 7F035CF8 02E02025 */ move $a0, $s7 +/* 06A82C 7F035CFC 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A830 7F035D00 92250001 */ lbu $a1, 1($s1) +/* 06A834 7F035D04 3C188003 */ lui $t8, %hi(D_80030A70) +/* 06A838 7F035D08 27180A70 */ addiu $t8, %lo(D_80030A70) # addiu $t8, $t8, 0xa70 +/* 06A83C 7F035D0C 8F010000 */ lw $at, ($t8) +/* 06A840 7F035D10 27AF06F4 */ addiu $t7, $sp, 0x6f4 +/* 06A844 7F035D14 8F090004 */ lw $t1, 4($t8) +/* 06A848 7F035D18 ADE10000 */ sw $at, ($t7) +/* 06A84C 7F035D1C 8F010008 */ lw $at, 8($t8) +/* 06A850 7F035D20 00402025 */ move $a0, $v0 +/* 06A854 7F035D24 ADE90004 */ sw $t1, 4($t7) +/* 06A858 7F035D28 10400009 */ beqz $v0, .L7F035D50 +/* 06A85C 7F035D2C ADE10008 */ sw $at, 8($t7) +/* 06A860 7F035D30 8C4A0018 */ lw $t2, 0x18($v0) +/* 06A864 7F035D34 51400007 */ beql $t2, $zero, .L7F035D54 +/* 06A868 7F035D38 26520004 */ addiu $s2, $s2, 4 +/* 06A86C 7F035D3C 82250002 */ lb $a1, 2($s1) +/* 06A870 7F035D40 92270003 */ lbu $a3, 3($s1) +/* 06A874 7F035D44 AFA00010 */ sw $zero, 0x10($sp) +/* 06A878 7F035D48 0FC09C9F */ jal handles_shot_actors +/* 06A87C 7F035D4C 27A606F4 */ addiu $a2, $sp, 0x6f4 +.L7F035D50: +/* 06A880 7F035D50 26520004 */ addiu $s2, $s2, 4 +.L7F035D54: +/* 06A884 7F035D54 1000FE0D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A888 7F035D58 26310004 */ addiu $s1, $s1, 4 +action19_Guard_ID1_Shoots_Guard_ID2_In_Style_4: +/* 06A88C 7F035D5C 02E02025 */ move $a0, $s7 +/* 06A890 7F035D60 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A894 7F035D64 92250001 */ lbu $a1, 1($s1) +/* 06A898 7F035D68 00408025 */ move $s0, $v0 +/* 06A89C 7F035D6C 02E02025 */ move $a0, $s7 +/* 06A8A0 7F035D70 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A8A4 7F035D74 92250002 */ lbu $a1, 2($s1) +/* 06A8A8 7F035D78 1200003C */ beqz $s0, .L7F035E6C +/* 06A8AC 7F035D7C AFA206E8 */ sw $v0, 0x6e8($sp) +/* 06A8B0 7F035D80 1040003A */ beqz $v0, .L7F035E6C +/* 06A8B4 7F035D84 00409825 */ move $s3, $v0 +/* 06A8B8 7F035D88 8E0B0018 */ lw $t3, 0x18($s0) +/* 06A8BC 7F035D8C 51600038 */ beql $t3, $zero, .L7F035E70 +/* 06A8C0 7F035D90 26520004 */ addiu $s2, $s2, 4 +/* 06A8C4 7F035D94 8C4C0018 */ lw $t4, 0x18($v0) +/* 06A8C8 7F035D98 02002025 */ move $a0, $s0 +/* 06A8CC 7F035D9C 51800034 */ beql $t4, $zero, .L7F035E70 +/* 06A8D0 7F035DA0 26520004 */ addiu $s2, $s2, 4 +/* 06A8D4 7F035DA4 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 06A8D8 7F035DA8 00002825 */ move $a1, $zero +/* 06A8DC 7F035DAC 3C0E8003 */ lui $t6, %hi(D_80030A7C) +/* 06A8E0 7F035DB0 25CE0A7C */ addiu $t6, %lo(D_80030A7C) # addiu $t6, $t6, 0xa7c +/* 06A8E4 7F035DB4 8DC10000 */ lw $at, ($t6) +/* 06A8E8 7F035DB8 27AD06D4 */ addiu $t5, $sp, 0x6d4 +/* 06A8EC 7F035DBC 8DCF0004 */ lw $t7, 4($t6) +/* 06A8F0 7F035DC0 ADA10000 */ sw $at, ($t5) +/* 06A8F4 7F035DC4 8DC10008 */ lw $at, 8($t6) +/* 06A8F8 7F035DC8 00401825 */ move $v1, $v0 +/* 06A8FC 7F035DCC ADAF0004 */ sw $t7, 4($t5) +/* 06A900 7F035DD0 14400005 */ bnez $v0, .L7F035DE8 +/* 06A904 7F035DD4 ADA10008 */ sw $at, 8($t5) +/* 06A908 7F035DD8 02002025 */ move $a0, $s0 +/* 06A90C 7F035DDC 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 06A910 7F035DE0 24050001 */ li $a1, 1 +/* 06A914 7F035DE4 00401825 */ move $v1, $v0 +.L7F035DE8: +/* 06A918 7F035DE8 50400021 */ beql $v0, $zero, .L7F035E70 +/* 06A91C 7F035DEC 26520004 */ addiu $s2, $s2, 4 +/* 06A920 7F035DF0 8E780018 */ lw $t8, 0x18($s3) +/* 06A924 7F035DF4 8E090018 */ lw $t1, 0x18($s0) +/* 06A928 7F035DF8 27A406D4 */ addiu $a0, $sp, 0x6d4 +/* 06A92C 7F035DFC C7120008 */ lwc1 $f18, 8($t8) +/* 06A930 7F035E00 C5240008 */ lwc1 $f4, 8($t1) +/* 06A934 7F035E04 27A506D8 */ addiu $a1, $sp, 0x6d8 +/* 06A938 7F035E08 27A606DC */ addiu $a2, $sp, 0x6dc +/* 06A93C 7F035E0C 46049181 */ sub.s $f6, $f18, $f4 +/* 06A940 7F035E10 E7A606D4 */ swc1 $f6, 0x6d4($sp) +/* 06A944 7F035E14 8E0B0018 */ lw $t3, 0x18($s0) +/* 06A948 7F035E18 8E6A0018 */ lw $t2, 0x18($s3) +/* 06A94C 7F035E1C C56A000C */ lwc1 $f10, 0xc($t3) +/* 06A950 7F035E20 C548000C */ lwc1 $f8, 0xc($t2) +/* 06A954 7F035E24 460A4401 */ sub.s $f16, $f8, $f10 +/* 06A958 7F035E28 E7B006D8 */ swc1 $f16, 0x6d8($sp) +/* 06A95C 7F035E2C 8E190018 */ lw $t9, 0x18($s0) +/* 06A960 7F035E30 8E6C0018 */ lw $t4, 0x18($s3) +/* 06A964 7F035E34 C7240010 */ lwc1 $f4, 0x10($t9) +/* 06A968 7F035E38 C5920010 */ lwc1 $f18, 0x10($t4) +/* 06A96C 7F035E3C AFA306E4 */ sw $v1, 0x6e4($sp) +/* 06A970 7F035E40 46049181 */ sub.s $f6, $f18, $f4 +/* 06A974 7F035E44 0C007DD4 */ jal guNormalize +/* 06A978 7F035E48 E7A606DC */ swc1 $f6, 0x6dc($sp) +/* 06A97C 7F035E4C 8FA306E4 */ lw $v1, 0x6e4($sp) +/* 06A980 7F035E50 82250003 */ lb $a1, 3($s1) +/* 06A984 7F035E54 02602025 */ move $a0, $s3 +/* 06A988 7F035E58 8C620004 */ lw $v0, 4($v1) +/* 06A98C 7F035E5C 27A606D4 */ addiu $a2, $sp, 0x6d4 +/* 06A990 7F035E60 80470080 */ lb $a3, 0x80($v0) +/* 06A994 7F035E64 0FC09C9F */ jal handles_shot_actors +/* 06A998 7F035E68 AFA00010 */ sw $zero, 0x10($sp) +.L7F035E6C: +/* 06A99C 7F035E6C 26520004 */ addiu $s2, $s2, 4 +.L7F035E70: +/* 06A9A0 7F035E70 1000FDC6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A9A4 7F035E74 26310004 */ addiu $s1, $s1, 4 +action1A_Guard_Throws_Grenade_RVL_2: +/* 06A9A8 7F035E78 0FC0D15F */ jal actor_draws_throws_grenade_at_player_if_possible +/* 06A9AC 7F035E7C 02E02025 */ move $a0, $s7 +/* 06A9B0 7F035E80 10400007 */ beqz $v0, .L7F035EA0 +/* 06A9B4 7F035E84 02C02025 */ move $a0, $s6 +/* 06A9B8 7F035E88 02402825 */ move $a1, $s2 +/* 06A9BC 7F035E8C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A9C0 7F035E90 92260001 */ lbu $a2, 1($s1) +/* 06A9C4 7F035E94 00409025 */ move $s2, $v0 +/* 06A9C8 7F035E98 1000FDBC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A9CC 7F035E9C 02C28821 */ addu $s1, $s6, $v0 +.L7F035EA0: +/* 06A9D0 7F035EA0 26520002 */ addiu $s2, $s2, 2 +/* 06A9D4 7F035EA4 1000FDB9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A9D8 7F035EA8 26310002 */ addiu $s1, $s1, 2 +action1B_Drop_Weapon_Inventory_num_RVL_5: +/* 06A9DC 7F035EAC 922D0001 */ lbu $t5, 1($s1) +/* 06A9E0 7F035EB0 922F0002 */ lbu $t7, 2($s1) +/* 06A9E4 7F035EB4 02E02025 */ move $a0, $s7 +/* 06A9E8 7F035EB8 000D7200 */ sll $t6, $t5, 8 +/* 06A9EC 7F035EBC 01CF1025 */ or $v0, $t6, $t7 +/* 06A9F0 7F035EC0 3045FFFF */ andi $a1, $v0, 0xffff +/* 06A9F4 7F035EC4 0FC0D1BF */ jal actor_drops_itemtype_setting_timer +/* 06A9F8 7F035EC8 92260003 */ lbu $a2, 3($s1) +/* 06A9FC 7F035ECC 10400007 */ beqz $v0, .L7F035EEC +/* 06AA00 7F035ED0 02C02025 */ move $a0, $s6 +/* 06AA04 7F035ED4 02402825 */ move $a1, $s2 +/* 06AA08 7F035ED8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AA0C 7F035EDC 92260004 */ lbu $a2, 4($s1) +/* 06AA10 7F035EE0 00409025 */ move $s2, $v0 +/* 06AA14 7F035EE4 1000FDA9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA18 7F035EE8 02C28821 */ addu $s1, $s6, $v0 +.L7F035EEC: +/* 06AA1C 7F035EEC 26520005 */ addiu $s2, $s2, 5 +/* 06AA20 7F035EF0 1000FDA6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA24 7F035EF4 26310005 */ addiu $s1, $s1, 5 +action21_Guard_Surrenders_1: +/* 06AA28 7F035EF8 0FC0CCD9 */ jal check_if_able_to_then_surrender +/* 06AA2C 7F035EFC 02E02025 */ move $a0, $s7 +/* 06AA30 7F035F00 26520001 */ addiu $s2, $s2, 1 +/* 06AA34 7F035F04 1000FDA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA38 7F035F08 26310001 */ addiu $s1, $s1, 1 +action22_Guard_Set_To_Move_Fades_And_Disappear_1: +/* 06AA3C 7F035F0C 0FC0CCE8 */ jal sub_GAME_7F0333A0 +/* 06AA40 7F035F10 02E02025 */ move $a0, $s7 +/* 06AA44 7F035F14 26520001 */ addiu $s2, $s2, 1 +/* 06AA48 7F035F18 1000FD9C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA4C 7F035F1C 26310001 */ addiu $s1, $s1, 1 +action23_Eliminate_Guard_ID_2: +/* 06AA50 7F035F20 02E02025 */ move $a0, $s7 +/* 06AA54 7F035F24 0FC0CC10 */ jal get_handle_for_guard_id +/* 06AA58 7F035F28 92250001 */ lbu $a1, 1($s1) +/* 06AA5C 7F035F2C 10400007 */ beqz $v0, .L7F035F4C +/* 06AA60 7F035F30 26520002 */ addiu $s2, $s2, 2 +/* 06AA64 7F035F34 8C490018 */ lw $t1, 0x18($v0) +/* 06AA68 7F035F38 11200004 */ beqz $t1, .L7F035F4C +/* 06AA6C 7F035F3C 00000000 */ nop +/* 06AA70 7F035F40 944A0012 */ lhu $t2, 0x12($v0) +/* 06AA74 7F035F44 354B0020 */ ori $t3, $t2, 0x20 +/* 06AA78 7F035F48 A44B0012 */ sh $t3, 0x12($v0) +.L7F035F4C: +/* 06AA7C 7F035F4C 1000FD8F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA80 7F035F50 26310002 */ addiu $s1, $s1, 2 +action24_Activate_Object_At_Preset_RVL_If_Successful_4: +/* 06AA84 7F035F54 922C0001 */ lbu $t4, 1($s1) +/* 06AA88 7F035F58 922D0002 */ lbu $t5, 2($s1) +/* 06AA8C 7F035F5C 02E02025 */ move $a0, $s7 +/* 06AA90 7F035F60 000CCA00 */ sll $t9, $t4, 8 +/* 06AA94 7F035F64 032D1025 */ or $v0, $t9, $t5 +/* 06AA98 7F035F68 0FC0D145 */ jal sub_GAME_7F034514 +/* 06AA9C 7F035F6C 3045FFFF */ andi $a1, $v0, 0xffff +/* 06AAA0 7F035F70 10400007 */ beqz $v0, .L7F035F90 +/* 06AAA4 7F035F74 02C02025 */ move $a0, $s6 +/* 06AAA8 7F035F78 02402825 */ move $a1, $s2 +/* 06AAAC 7F035F7C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AAB0 7F035F80 92260003 */ lbu $a2, 3($s1) +/* 06AAB4 7F035F84 00409025 */ move $s2, $v0 +/* 06AAB8 7F035F88 1000FD80 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AABC 7F035F8C 02C28821 */ addu $s1, $s6, $v0 +.L7F035F90: +/* 06AAC0 7F035F90 26520004 */ addiu $s2, $s2, 4 +/* 06AAC4 7F035F94 1000FD7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AAC8 7F035F98 26310004 */ addiu $s1, $s1, 4 +action25_Sound_Alarm_1: +/* 06AACC 7F035F9C 0FC15772 */ jal start_alarm +/* 06AAD0 7F035FA0 00000000 */ nop +/* 06AAD4 7F035FA4 26520001 */ addiu $s2, $s2, 1 +/* 06AAD8 7F035FA8 1000FD78 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AADC 7F035FAC 26310001 */ addiu $s1, $s1, 1 +action26_Turn_Off_Alarm_1: +/* 06AAE0 7F035FB0 0FC1578B */ jal stop_alarm +/* 06AAE4 7F035FB4 00000000 */ nop +/* 06AAE8 7F035FB8 26520001 */ addiu $s2, $s2, 1 +/* 06AAEC 7F035FBC 1000FD73 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AAF0 7F035FC0 26310001 */ addiu $s1, $s1, 1 +action27_Return_False_Invalid_Type_2: +/* 06AAF4 7F035FC4 0FC0D13F */ jal removed_animation_routine_27 +/* 06AAF8 7F035FC8 02E02025 */ move $a0, $s7 +/* 06AAFC 7F035FCC 10400007 */ beqz $v0, .L7F035FEC +/* 06AB00 7F035FD0 02C02025 */ move $a0, $s6 +/* 06AB04 7F035FD4 02402825 */ move $a1, $s2 +/* 06AB08 7F035FD8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AB0C 7F035FDC 92260001 */ lbu $a2, 1($s1) +/* 06AB10 7F035FE0 00409025 */ move $s2, $v0 +/* 06AB14 7F035FE4 1000FD69 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB18 7F035FE8 02C28821 */ addu $s1, $s6, $v0 +.L7F035FEC: +/* 06AB1C 7F035FEC 26520002 */ addiu $s2, $s2, 2 +/* 06AB20 7F035FF0 1000FD66 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB24 7F035FF4 26310002 */ addiu $s1, $s1, 2 +action28_Jog_To_Bond_Return_Loop_When_Reached_Bond_2: +/* 06AB28 7F035FF8 02E02025 */ move $a0, $s7 +/* 06AB2C 7F035FFC 0FC0CD28 */ jal actor_move_to_curplayer_at_speed +/* 06AB30 7F036000 24050001 */ li $a1, 1 +/* 06AB34 7F036004 10400007 */ beqz $v0, .L7F036024 +/* 06AB38 7F036008 02C02025 */ move $a0, $s6 +/* 06AB3C 7F03600C 02402825 */ move $a1, $s2 +/* 06AB40 7F036010 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AB44 7F036014 92260001 */ lbu $a2, 1($s1) +/* 06AB48 7F036018 00409025 */ move $s2, $v0 +/* 06AB4C 7F03601C 1000FD5B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB50 7F036020 02C28821 */ addu $s1, $s6, $v0 +.L7F036024: +/* 06AB54 7F036024 26520002 */ addiu $s2, $s2, 2 +/* 06AB58 7F036028 1000FD58 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB5C 7F03602C 26310002 */ addiu $s1, $s1, 2 +action29_Walk_To_Bond_Return_Loop_When_Reached_Bond_2: +/* 06AB60 7F036030 02E02025 */ move $a0, $s7 +/* 06AB64 7F036034 0FC0CD28 */ jal actor_move_to_curplayer_at_speed +/* 06AB68 7F036038 00002825 */ move $a1, $zero +/* 06AB6C 7F03603C 10400007 */ beqz $v0, .L7F03605C +/* 06AB70 7F036040 02C02025 */ move $a0, $s6 +/* 06AB74 7F036044 02402825 */ move $a1, $s2 +/* 06AB78 7F036048 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AB7C 7F03604C 92260001 */ lbu $a2, 1($s1) +/* 06AB80 7F036050 00409025 */ move $s2, $v0 +/* 06AB84 7F036054 1000FD4D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB88 7F036058 02C28821 */ addu $s1, $s6, $v0 +.L7F03605C: +/* 06AB8C 7F03605C 26520002 */ addiu $s2, $s2, 2 +/* 06AB90 7F036060 1000FD4A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB94 7F036064 26310002 */ addiu $s1, $s1, 2 +action2A_Run_To_Bond_Return_Loop_When_Reached_Bond_2: +/* 06AB98 7F036068 02E02025 */ move $a0, $s7 +/* 06AB9C 7F03606C 0FC0CD28 */ jal actor_move_to_curplayer_at_speed +/* 06ABA0 7F036070 24050002 */ li $a1, 2 +/* 06ABA4 7F036074 10400007 */ beqz $v0, .L7F036094 +/* 06ABA8 7F036078 02C02025 */ move $a0, $s6 +/* 06ABAC 7F03607C 02402825 */ move $a1, $s2 +/* 06ABB0 7F036080 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06ABB4 7F036084 92260001 */ lbu $a2, 1($s1) +/* 06ABB8 7F036088 00409025 */ move $s2, $v0 +/* 06ABBC 7F03608C 1000FD3F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ABC0 7F036090 02C28821 */ addu $s1, $s6, $v0 +.L7F036094: +/* 06ABC4 7F036094 26520002 */ addiu $s2, $s2, 2 +/* 06ABC8 7F036098 1000FD3C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ABCC 7F03609C 26310002 */ addiu $s1, $s1, 2 +action2B_Return_False_Invalid_Type_2: +/* 06ABD0 7F0360A0 0FC0D142 */ jal removed_animation_routine_2B +/* 06ABD4 7F0360A4 02E02025 */ move $a0, $s7 +/* 06ABD8 7F0360A8 10400007 */ beqz $v0, .L7F0360C8 +/* 06ABDC 7F0360AC 02C02025 */ move $a0, $s6 +/* 06ABE0 7F0360B0 02402825 */ move $a1, $s2 +/* 06ABE4 7F0360B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06ABE8 7F0360B8 92260001 */ lbu $a2, 1($s1) +/* 06ABEC 7F0360BC 00409025 */ move $s2, $v0 +/* 06ABF0 7F0360C0 1000FD32 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ABF4 7F0360C4 02C28821 */ addu $s1, $s6, $v0 +.L7F0360C8: +/* 06ABF8 7F0360C8 26520002 */ addiu $s2, $s2, 2 +/* 06ABFC 7F0360CC 1000FD2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC00 7F0360D0 26310002 */ addiu $s1, $s1, 2 +action2C_Jog_To_Character_Position_RVL_On_Arrival_3: +/* 06AC04 7F0360D4 02E02025 */ move $a0, $s7 +/* 06AC08 7F0360D8 92250001 */ lbu $a1, 1($s1) +/* 06AC0C 7F0360DC 0FC0CD43 */ jal actor_move_to_actorID_at_speed +/* 06AC10 7F0360E0 24060001 */ li $a2, 1 +/* 06AC14 7F0360E4 10400007 */ beqz $v0, .L7F036104 +/* 06AC18 7F0360E8 02C02025 */ move $a0, $s6 +/* 06AC1C 7F0360EC 02402825 */ move $a1, $s2 +/* 06AC20 7F0360F0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AC24 7F0360F4 92260002 */ lbu $a2, 2($s1) +/* 06AC28 7F0360F8 00409025 */ move $s2, $v0 +/* 06AC2C 7F0360FC 1000FD23 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC30 7F036100 02C28821 */ addu $s1, $s6, $v0 +.L7F036104: +/* 06AC34 7F036104 26520003 */ addiu $s2, $s2, 3 +/* 06AC38 7F036108 1000FD20 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC3C 7F03610C 26310003 */ addiu $s1, $s1, 3 +action2D_Walk_To_Character_Position_RVL_On_Arrival_3: +/* 06AC40 7F036110 02E02025 */ move $a0, $s7 +/* 06AC44 7F036114 92250001 */ lbu $a1, 1($s1) +/* 06AC48 7F036118 0FC0CD43 */ jal actor_move_to_actorID_at_speed +/* 06AC4C 7F03611C 00003025 */ move $a2, $zero +/* 06AC50 7F036120 10400007 */ beqz $v0, .L7F036140 +/* 06AC54 7F036124 02C02025 */ move $a0, $s6 +/* 06AC58 7F036128 02402825 */ move $a1, $s2 +/* 06AC5C 7F03612C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AC60 7F036130 92260002 */ lbu $a2, 2($s1) +/* 06AC64 7F036134 00409025 */ move $s2, $v0 +/* 06AC68 7F036138 1000FD14 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC6C 7F03613C 02C28821 */ addu $s1, $s6, $v0 +.L7F036140: +/* 06AC70 7F036140 26520003 */ addiu $s2, $s2, 3 +/* 06AC74 7F036144 1000FD11 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC78 7F036148 26310003 */ addiu $s1, $s1, 3 +action2E_Run_To_Character_Position_RVL_On_Arrival_3: +/* 06AC7C 7F03614C 02E02025 */ move $a0, $s7 +/* 06AC80 7F036150 92250001 */ lbu $a1, 1($s1) +/* 06AC84 7F036154 0FC0CD43 */ jal actor_move_to_actorID_at_speed +/* 06AC88 7F036158 24060002 */ li $a2, 2 +/* 06AC8C 7F03615C 10400007 */ beqz $v0, .L7F03617C +/* 06AC90 7F036160 02C02025 */ move $a0, $s6 +/* 06AC94 7F036164 02402825 */ move $a1, $s2 +/* 06AC98 7F036168 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AC9C 7F03616C 92260002 */ lbu $a2, 2($s1) +/* 06ACA0 7F036170 00409025 */ move $s2, $v0 +/* 06ACA4 7F036174 1000FD05 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACA8 7F036178 02C28821 */ addu $s1, $s6, $v0 +.L7F03617C: +/* 06ACAC 7F03617C 26520003 */ addiu $s2, $s2, 3 +/* 06ACB0 7F036180 1000FD02 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACB4 7F036184 26310003 */ addiu $s1, $s1, 3 +action33_Seed_Random_Byte_1: +/* 06ACB8 7F036188 0C002914 */ jal get_random_value +/* 06ACBC 7F03618C 00000000 */ nop +/* 06ACC0 7F036190 A2E2010F */ sb $v0, 0x10f($s7) +/* 06ACC4 7F036194 26520001 */ addiu $s2, $s2, 1 +/* 06ACC8 7F036198 1000FCFC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACCC 7F03619C 26310001 */ addiu $s1, $s1, 1 +action34_If_Seeded_Byte_LTV_Go_Into_RVL_3: +/* 06ACD0 7F0361A0 92F8010F */ lbu $t8, 0x10f($s7) +/* 06ACD4 7F0361A4 92290001 */ lbu $t1, 1($s1) +/* 06ACD8 7F0361A8 02C02025 */ move $a0, $s6 +/* 06ACDC 7F0361AC 02402825 */ move $a1, $s2 +/* 06ACE0 7F0361B0 0309082A */ slt $at, $t8, $t1 +/* 06ACE4 7F0361B4 50200007 */ beql $at, $zero, .L7F0361D4 +/* 06ACE8 7F0361B8 26520003 */ addiu $s2, $s2, 3 +/* 06ACEC 7F0361BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06ACF0 7F0361C0 92260002 */ lbu $a2, 2($s1) +/* 06ACF4 7F0361C4 00409025 */ move $s2, $v0 +/* 06ACF8 7F0361C8 1000FCF0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACFC 7F0361CC 02C28821 */ addu $s1, $s6, $v0 +/* 06AD00 7F0361D0 26520003 */ addiu $s2, $s2, 3 +.L7F0361D4: +/* 06AD04 7F0361D4 1000FCED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD08 7F0361D8 26310003 */ addiu $s1, $s1, 3 +action35_If_Seeded_Byte_GTV_Go_Into_RVL_3: +/* 06AD0C 7F0361DC 922A0001 */ lbu $t2, 1($s1) +/* 06AD10 7F0361E0 92EB010F */ lbu $t3, 0x10f($s7) +/* 06AD14 7F0361E4 02C02025 */ move $a0, $s6 +/* 06AD18 7F0361E8 02402825 */ move $a1, $s2 +/* 06AD1C 7F0361EC 014B082A */ slt $at, $t2, $t3 +/* 06AD20 7F0361F0 50200007 */ beql $at, $zero, .L7F036210 +/* 06AD24 7F0361F4 26520003 */ addiu $s2, $s2, 3 +/* 06AD28 7F0361F8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AD2C 7F0361FC 92260002 */ lbu $a2, 2($s1) +/* 06AD30 7F036200 00409025 */ move $s2, $v0 +/* 06AD34 7F036204 1000FCE1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD38 7F036208 02C28821 */ addu $s1, $s6, $v0 +/* 06AD3C 7F03620C 26520003 */ addiu $s2, $s2, 3 +.L7F036210: +/* 06AD40 7F036210 1000FCDE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD44 7F036214 26310003 */ addiu $s1, $s1, 3 +action1C_Guard_Jogs_To_Preset_3: +/* 06AD48 7F036218 922C0001 */ lbu $t4, 1($s1) +/* 06AD4C 7F03621C 922D0002 */ lbu $t5, 2($s1) +/* 06AD50 7F036220 02E02025 */ move $a0, $s7 +/* 06AD54 7F036224 000CCA00 */ sll $t9, $t4, 8 +/* 06AD58 7F036228 032D1025 */ or $v0, $t9, $t5 +/* 06AD5C 7F03622C 3045FFFF */ andi $a1, $v0, 0xffff +/* 06AD60 7F036230 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06AD64 7F036234 24060001 */ li $a2, 1 +/* 06AD68 7F036238 26520003 */ addiu $s2, $s2, 3 +/* 06AD6C 7F03623C 1000FCD3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD70 7F036240 26310003 */ addiu $s1, $s1, 3 +action1D_Guard_Jogs_To_Predefined_Preset_2328_1: +/* 06AD74 7F036244 02E02025 */ move $a0, $s7 +/* 06AD78 7F036248 86E50114 */ lh $a1, 0x114($s7) +/* 06AD7C 7F03624C 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06AD80 7F036250 24060001 */ li $a2, 1 +/* 06AD84 7F036254 26520001 */ addiu $s2, $s2, 1 +/* 06AD88 7F036258 1000FCCC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD8C 7F03625C 26310001 */ addiu $s1, $s1, 1 +action1E_Guard_Walks_To_Preset_3: +/* 06AD90 7F036260 922F0001 */ lbu $t7, 1($s1) +/* 06AD94 7F036264 92290002 */ lbu $t1, 2($s1) +/* 06AD98 7F036268 02E02025 */ move $a0, $s7 +/* 06AD9C 7F03626C 000FC200 */ sll $t8, $t7, 8 +/* 06ADA0 7F036270 03091025 */ or $v0, $t8, $t1 +/* 06ADA4 7F036274 3045FFFF */ andi $a1, $v0, 0xffff +/* 06ADA8 7F036278 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06ADAC 7F03627C 00003025 */ move $a2, $zero +/* 06ADB0 7F036280 26520003 */ addiu $s2, $s2, 3 +/* 06ADB4 7F036284 1000FCC1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ADB8 7F036288 26310003 */ addiu $s1, $s1, 3 +action1F_Guard_Runs__To_Preset_3: +/* 06ADBC 7F03628C 922B0001 */ lbu $t3, 1($s1) +/* 06ADC0 7F036290 92390002 */ lbu $t9, 2($s1) +/* 06ADC4 7F036294 02E02025 */ move $a0, $s7 +/* 06ADC8 7F036298 000B6200 */ sll $t4, $t3, 8 +/* 06ADCC 7F03629C 01991025 */ or $v0, $t4, $t9 +/* 06ADD0 7F0362A0 3045FFFF */ andi $a1, $v0, 0xffff +/* 06ADD4 7F0362A4 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06ADD8 7F0362A8 24060002 */ li $a2, 2 +/* 06ADDC 7F0362AC 26520003 */ addiu $s2, $s2, 3 +/* 06ADE0 7F0362B0 1000FCB6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ADE4 7F0362B4 26310003 */ addiu $s1, $s1, 3 +action20_Activate_Path_2: +/* 06ADE8 7F0362B8 0FC0D50D */ jal get_ptr_path_for_pathnum +/* 06ADEC 7F0362BC 92240001 */ lbu $a0, 1($s1) +/* 06ADF0 7F0362C0 02E02025 */ move $a0, $s7 +/* 06ADF4 7F0362C4 0FC0AB55 */ jal if_actor_able_set_on_path +/* 06ADF8 7F0362C8 00402825 */ move $a1, $v0 +/* 06ADFC 7F0362CC 26520002 */ addiu $s2, $s2, 2 +/* 06AE00 7F0362D0 1000FCAE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE04 7F0362D4 26310002 */ addiu $s1, $s1, 2 +action36_If_Alarm_Activated_RVL_Plus_Stack_2: +/* 06AE08 7F0362D8 0FC0CDD8 */ jal alarm_timer_related +/* 06AE0C 7F0362DC 02E02025 */ move $a0, $s7 +/* 06AE10 7F0362E0 10400007 */ beqz $v0, .L7F036300 +/* 06AE14 7F0362E4 02C02025 */ move $a0, $s6 +/* 06AE18 7F0362E8 02402825 */ move $a1, $s2 +/* 06AE1C 7F0362EC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AE20 7F0362F0 92260001 */ lbu $a2, 1($s1) +/* 06AE24 7F0362F4 00409025 */ move $s2, $v0 +/* 06AE28 7F0362F8 1000FCA4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE2C 7F0362FC 02C28821 */ addu $s1, $s6, $v0 +.L7F036300: +/* 06AE30 7F036300 26520002 */ addiu $s2, $s2, 2 +/* 06AE34 7F036304 1000FCA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE38 7F036308 26310002 */ addiu $s1, $s1, 2 +action37_If_Alarm_Activated_RVL_2: +/* 06AE3C 7F03630C 0FC15794 */ jal is_alarm_on +/* 06AE40 7F036310 00000000 */ nop +/* 06AE44 7F036314 10400007 */ beqz $v0, .L7F036334 +/* 06AE48 7F036318 02C02025 */ move $a0, $s6 +/* 06AE4C 7F03631C 02402825 */ move $a1, $s2 +/* 06AE50 7F036320 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AE54 7F036324 92260001 */ lbu $a2, 1($s1) +/* 06AE58 7F036328 00409025 */ move $s2, $v0 +/* 06AE5C 7F03632C 1000FC97 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE60 7F036330 02C28821 */ addu $s1, $s6, $v0 +.L7F036334: +/* 06AE64 7F036334 26520002 */ addiu $s2, $s2, 2 +/* 06AE68 7F036338 1000FC94 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE6C 7F03633C 26310002 */ addiu $s1, $s1, 2 +action38_If_Toxic_Gas_Released_RVL_2: +/* 06AE70 7F036340 0FC157CE */ jal check_if_toxic_gas_activated +/* 06AE74 7F036344 00000000 */ nop +/* 06AE78 7F036348 10400007 */ beqz $v0, .L7F036368 +/* 06AE7C 7F03634C 02C02025 */ move $a0, $s6 +/* 06AE80 7F036350 02402825 */ move $a1, $s2 +/* 06AE84 7F036354 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AE88 7F036358 92260001 */ lbu $a2, 1($s1) +/* 06AE8C 7F03635C 00409025 */ move $s2, $v0 +/* 06AE90 7F036360 1000FC8A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE94 7F036364 02C28821 */ addu $s1, $s6, $v0 +.L7F036368: +/* 06AE98 7F036368 26520002 */ addiu $s2, $s2, 2 +/* 06AE9C 7F03636C 1000FC87 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AEA0 7F036370 26310002 */ addiu $s1, $s1, 2 +action39_If_Guard_Heard_Gunfire_RVL_2: +/* 06AEA4 7F036374 0FC0CCD5 */ jal check_if_actor_02_flag_set +/* 06AEA8 7F036378 02E02025 */ move $a0, $s7 +/* 06AEAC 7F03637C 10400007 */ beqz $v0, .L7F03639C +/* 06AEB0 7F036380 02C02025 */ move $a0, $s6 +/* 06AEB4 7F036384 02402825 */ move $a1, $s2 +/* 06AEB8 7F036388 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AEBC 7F03638C 92260001 */ lbu $a2, 1($s1) +/* 06AEC0 7F036390 00409025 */ move $s2, $v0 +/* 06AEC4 7F036394 1000FC7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AEC8 7F036398 02C28821 */ addu $s1, $s6, $v0 +.L7F03639C: +/* 06AECC 7F03639C 26520002 */ addiu $s2, $s2, 2 +/* 06AED0 7F0363A0 1000FC7A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AED4 7F0363A4 26310002 */ addiu $s1, $s1, 2 +action3A_If_Bond_Shoots_Another_Guard_RVL_2: +/* 06AED8 7F0363A8 0FC0CD6D */ jal check_if_actor_FA_target_set +/* 06AEDC 7F0363AC 02E02025 */ move $a0, $s7 +/* 06AEE0 7F0363B0 10400007 */ beqz $v0, .L7F0363D0 +/* 06AEE4 7F0363B4 02C02025 */ move $a0, $s6 +/* 06AEE8 7F0363B8 02402825 */ move $a1, $s2 +/* 06AEEC 7F0363BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AEF0 7F0363C0 92260001 */ lbu $a2, 1($s1) +/* 06AEF4 7F0363C4 00409025 */ move $s2, $v0 +/* 06AEF8 7F0363C8 1000FC70 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AEFC 7F0363CC 02C28821 */ addu $s1, $s6, $v0 +.L7F0363D0: +/* 06AF00 7F0363D0 26520002 */ addiu $s2, $s2, 2 +/* 06AF04 7F0363D4 1000FC6D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF08 7F0363D8 26310002 */ addiu $s1, $s1, 2 +action3B_If_Guard_Killed_In_Front_Of_Guard_RVL_2: +/* 06AF0C 7F0363DC 0FC0CD71 */ jal check_if_actor_FB_target_set +/* 06AF10 7F0363E0 02E02025 */ move $a0, $s7 +/* 06AF14 7F0363E4 10400007 */ beqz $v0, .L7F036404 +/* 06AF18 7F0363E8 02C02025 */ move $a0, $s6 +/* 06AF1C 7F0363EC 02402825 */ move $a1, $s2 +/* 06AF20 7F0363F0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AF24 7F0363F4 92260001 */ lbu $a2, 1($s1) +/* 06AF28 7F0363F8 00409025 */ move $s2, $v0 +/* 06AF2C 7F0363FC 1000FC63 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF30 7F036400 02C28821 */ addu $s1, $s6, $v0 +.L7F036404: +/* 06AF34 7F036404 26520002 */ addiu $s2, $s2, 2 +/* 06AF38 7F036408 1000FC60 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF3C 7F03640C 26310002 */ addiu $s1, $s1, 2 +action3C_If_Guard_In_Firing_Range_RVL_2: +/* 06AF40 7F036410 0FC0A52F */ jal sub_GAME_7F0294BC +/* 06AF44 7F036414 02E02025 */ move $a0, $s7 +/* 06AF48 7F036418 10400007 */ beqz $v0, .L7F036438 +/* 06AF4C 7F03641C 02C02025 */ move $a0, $s6 +/* 06AF50 7F036420 02402825 */ move $a1, $s2 +/* 06AF54 7F036424 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AF58 7F036428 92260001 */ lbu $a2, 1($s1) +/* 06AF5C 7F03642C 00409025 */ move $s2, $v0 +/* 06AF60 7F036430 1000FC56 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF64 7F036434 02C28821 */ addu $s1, $s6, $v0 +.L7F036438: +/* 06AF68 7F036438 26520002 */ addiu $s2, $s2, 2 +/* 06AF6C 7F03643C 1000FC53 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF70 7F036440 26310002 */ addiu $s1, $s1, 2 +action3D___Unused___Unknown___2: +/* 06AF74 7F036444 0FC0CF71 */ jal sub_GAME_7F033DC4 +/* 06AF78 7F036448 02E02025 */ move $a0, $s7 +/* 06AF7C 7F03644C 10400007 */ beqz $v0, .L7F03646C +/* 06AF80 7F036450 02C02025 */ move $a0, $s6 +/* 06AF84 7F036454 02402825 */ move $a1, $s2 +/* 06AF88 7F036458 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AF8C 7F03645C 92260001 */ lbu $a2, 1($s1) +/* 06AF90 7F036460 00409025 */ move $s2, $v0 +/* 06AF94 7F036464 1000FC49 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF98 7F036468 02C28821 */ addu $s1, $s6, $v0 +.L7F03646C: +/* 06AF9C 7F03646C 26520002 */ addiu $s2, $s2, 2 +/* 06AFA0 7F036470 1000FC46 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AFA4 7F036474 26310002 */ addiu $s1, $s1, 2 +action3E_If_Shot_Current_Guard_RVL_2: +/* 06AFA8 7F036478 0FC0CADA */ jal sub_GAME_7F032B68 +/* 06AFAC 7F03647C 02E02025 */ move $a0, $s7 +/* 06AFB0 7F036480 10400007 */ beqz $v0, .L7F0364A0 +/* 06AFB4 7F036484 02C02025 */ move $a0, $s6 +/* 06AFB8 7F036488 02402825 */ move $a1, $s2 +/* 06AFBC 7F03648C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AFC0 7F036490 92260001 */ lbu $a2, 1($s1) +/* 06AFC4 7F036494 00409025 */ move $s2, $v0 +/* 06AFC8 7F036498 1000FC3C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AFCC 7F03649C 02C28821 */ addu $s1, $s6, $v0 +.L7F0364A0: +/* 06AFD0 7F0364A0 26520002 */ addiu $s2, $s2, 2 +/* 06AFD4 7F0364A4 1000FC39 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AFD8 7F0364A8 26310002 */ addiu $s1, $s1, 2 +action3F_If_Heard_Bond_RVL_2: +/* 06AFDC 7F0364AC 0FC0CAE8 */ jal sub_GAME_7F032BA0 +/* 06AFE0 7F0364B0 02E02025 */ move $a0, $s7 +/* 06AFE4 7F0364B4 10400007 */ beqz $v0, .L7F0364D4 +/* 06AFE8 7F0364B8 02C02025 */ move $a0, $s6 +/* 06AFEC 7F0364BC 02402825 */ move $a1, $s2 +/* 06AFF0 7F0364C0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AFF4 7F0364C4 92260001 */ lbu $a2, 1($s1) +/* 06AFF8 7F0364C8 00409025 */ move $s2, $v0 +/* 06AFFC 7F0364CC 1000FC2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B000 7F0364D0 02C28821 */ addu $s1, $s6, $v0 +.L7F0364D4: +/* 06B004 7F0364D4 26520002 */ addiu $s2, $s2, 2 +/* 06B008 7F0364D8 1000FC2C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B00C 7F0364DC 26310002 */ addiu $s1, $s1, 2 +action40_If_Another_Guard_In_Same_Room_As_Guard_ID_RVL_3: +/* 06B010 7F0364E0 02E02025 */ move $a0, $s7 +/* 06B014 7F0364E4 0FC0CC10 */ jal get_handle_for_guard_id +/* 06B018 7F0364E8 92250001 */ lbu $a1, 1($s1) +/* 06B01C 7F0364EC 50400012 */ beql $v0, $zero, .L7F036538 +/* 06B020 7F0364F0 26520003 */ addiu $s2, $s2, 3 +/* 06B024 7F0364F4 8C4E0018 */ lw $t6, 0x18($v0) +/* 06B028 7F0364F8 51C0000F */ beql $t6, $zero, .L7F036538 +/* 06B02C 7F0364FC 26520003 */ addiu $s2, $s2, 3 +/* 06B030 7F036500 8C420018 */ lw $v0, 0x18($v0) +/* 06B034 7F036504 02E02025 */ move $a0, $s7 +/* 06B038 7F036508 24450008 */ addiu $a1, $v0, 8 +/* 06B03C 7F03650C 0FC0A574 */ jal check_if_position_in_same_room +/* 06B040 7F036510 8C460014 */ lw $a2, 0x14($v0) +/* 06B044 7F036514 10400007 */ beqz $v0, .L7F036534 +/* 06B048 7F036518 02C02025 */ move $a0, $s6 +/* 06B04C 7F03651C 02402825 */ move $a1, $s2 +/* 06B050 7F036520 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B054 7F036524 92260002 */ lbu $a2, 2($s1) +/* 06B058 7F036528 00409025 */ move $s2, $v0 +/* 06B05C 7F03652C 1000FC17 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B060 7F036530 02C28821 */ addu $s1, $s6, $v0 +.L7F036534: +/* 06B064 7F036534 26520003 */ addiu $s2, $s2, 3 +.L7F036538: +/* 06B068 7F036538 1000FC14 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B06C 7F03653C 26310003 */ addiu $s1, $s1, 3 +action41_If_Guard_Has_Been_On_Screen_RVL_2: +/* 06B070 7F036540 8EEF0014 */ lw $t7, 0x14($s7) +/* 06B074 7F036544 02C02025 */ move $a0, $s6 +/* 06B078 7F036548 02402825 */ move $a1, $s2 +/* 06B07C 7F03654C 31F80008 */ andi $t8, $t7, 8 +/* 06B080 7F036550 57000007 */ bnezl $t8, .L7F036570 +/* 06B084 7F036554 26520002 */ addiu $s2, $s2, 2 +/* 06B088 7F036558 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B08C 7F03655C 92260001 */ lbu $a2, 1($s1) +/* 06B090 7F036560 00409025 */ move $s2, $v0 +/* 06B094 7F036564 1000FC09 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B098 7F036568 02C28821 */ addu $s1, $s6, $v0 +/* 06B09C 7F03656C 26520002 */ addiu $s2, $s2, 2 +.L7F036570: +/* 06B0A0 7F036570 1000FC06 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B0A4 7F036574 26310002 */ addiu $s1, $s1, 2 +action42_If_Current_Guard_On_Screen_In_Loaded_Room_RVL_2: +/* 06B0A8 7F036578 8EE90018 */ lw $t1, 0x18($s7) +/* 06B0AC 7F03657C 02C02025 */ move $a0, $s6 +/* 06B0B0 7F036580 02402825 */ move $a1, $s2 +/* 06B0B4 7F036584 912A0001 */ lbu $t2, 1($t1) +/* 06B0B8 7F036588 314B0002 */ andi $t3, $t2, 2 +/* 06B0BC 7F03658C 51600007 */ beql $t3, $zero, .L7F0365AC +/* 06B0C0 7F036590 26520002 */ addiu $s2, $s2, 2 +/* 06B0C4 7F036594 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B0C8 7F036598 92260001 */ lbu $a2, 1($s1) +/* 06B0CC 7F03659C 00409025 */ move $s2, $v0 +/* 06B0D0 7F0365A0 1000FBFA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B0D4 7F0365A4 02C28821 */ addu $s1, $s6, $v0 +/* 06B0D8 7F0365A8 26520002 */ addiu $s2, $s2, 2 +.L7F0365AC: +/* 06B0DC 7F0365AC 1000FBF7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B0E0 7F0365B0 26310002 */ addiu $s1, $s1, 2 +action43_If_Guard_In_A_Room_Currently_Loaded_RVL_2: +/* 06B0E4 7F0365B4 8EEC0018 */ lw $t4, 0x18($s7) +/* 06B0E8 7F0365B8 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 06B0EC 7F0365BC 8D840014 */ lw $a0, 0x14($t4) +/* 06B0F0 7F0365C0 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 06B0F4 7F0365C4 00402025 */ move $a0, $v0 +/* 06B0F8 7F0365C8 10400007 */ beqz $v0, .L7F0365E8 +/* 06B0FC 7F0365CC 02C02025 */ move $a0, $s6 +/* 06B100 7F0365D0 02402825 */ move $a1, $s2 +/* 06B104 7F0365D4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B108 7F0365D8 92260001 */ lbu $a2, 1($s1) +/* 06B10C 7F0365DC 00409025 */ move $s2, $v0 +/* 06B110 7F0365E0 1000FBEA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B114 7F0365E4 02C28821 */ addu $s1, $s6, $v0 +.L7F0365E8: +/* 06B118 7F0365E8 26520002 */ addiu $s2, $s2, 2 +/* 06B11C 7F0365EC 1000FBE7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B120 7F0365F0 26310002 */ addiu $s1, $s1, 2 +action44_If_Room_Containing_Preset_Is_Loaded_RVL_4: +/* 06B124 7F0365F4 92390001 */ lbu $t9, 1($s1) +/* 06B128 7F0365F8 922E0002 */ lbu $t6, 2($s1) +/* 06B12C 7F0365FC 02E02025 */ move $a0, $s7 +/* 06B130 7F036600 00196A00 */ sll $t5, $t9, 8 +/* 06B134 7F036604 01AE1025 */ or $v0, $t5, $t6 +/* 06B138 7F036608 0FC0CBBF */ jal check_if_room_for_preset_loaded +/* 06B13C 7F03660C 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B140 7F036610 10400007 */ beqz $v0, .L7F036630 +/* 06B144 7F036614 02C02025 */ move $a0, $s6 +/* 06B148 7F036618 02402825 */ move $a1, $s2 +/* 06B14C 7F03661C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B150 7F036620 92260003 */ lbu $a2, 3($s1) +/* 06B154 7F036624 00409025 */ move $s2, $v0 +/* 06B158 7F036628 1000FBD8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B15C 7F03662C 02C28821 */ addu $s1, $s6, $v0 +.L7F036630: +/* 06B160 7F036630 26520004 */ addiu $s2, $s2, 4 +/* 06B164 7F036634 1000FBD5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B168 7F036638 26310004 */ addiu $s1, $s1, 4 +action45_Go_To_RVL_If_Bond_Has_Guard_At_Gunpoint_2: +/* 06B16C 7F03663C 0FC0CCFE */ jal sub_GAME_7F0333F8 +/* 06B170 7F036640 02E02025 */ move $a0, $s7 +/* 06B174 7F036644 10400007 */ beqz $v0, .L7F036664 +/* 06B178 7F036648 02C02025 */ move $a0, $s6 +/* 06B17C 7F03664C 02402825 */ move $a1, $s2 +/* 06B180 7F036650 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B184 7F036654 92260001 */ lbu $a2, 1($s1) +/* 06B188 7F036658 00409025 */ move $s2, $v0 +/* 06B18C 7F03665C 1000FBCB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B190 7F036660 02C28821 */ addu $s1, $s6, $v0 +.L7F036664: +/* 06B194 7F036664 26520002 */ addiu $s2, $s2, 2 +/* 06B198 7F036668 1000FBC8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B19C 7F03666C 26310002 */ addiu $s1, $s1, 2 +action46_If_Fired_A_Shot_RVL_2: +/* 06B1A0 7F036670 0FC0CD24 */ jal check_if_actor_invisible +/* 06B1A4 7F036674 02E02025 */ move $a0, $s7 +/* 06B1A8 7F036678 10400007 */ beqz $v0, .L7F036698 +/* 06B1AC 7F03667C 02C02025 */ move $a0, $s6 +/* 06B1B0 7F036680 02402825 */ move $a1, $s2 +/* 06B1B4 7F036684 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B1B8 7F036688 92260001 */ lbu $a2, 1($s1) +/* 06B1BC 7F03668C 00409025 */ move $s2, $v0 +/* 06B1C0 7F036690 1000FBBE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B1C4 7F036694 02C28821 */ addu $s1, $s6, $v0 +.L7F036698: +/* 06B1C8 7F036698 26520002 */ addiu $s2, $s2, 2 +/* 06B1CC 7F03669C 1000FBBB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B1D0 7F0366A0 26310002 */ addiu $s1, $s1, 2 +action47_If_Distance_Between_Bond_And_Guard_LTV_RVL_3: +/* 06B1D4 7F0366A4 0FC0CB13 */ jal sub_GAME_7F032C4C +/* 06B1D8 7F0366A8 02E02025 */ move $a0, $s7 +/* 06B1DC 7F0366AC 92380001 */ lbu $t8, 1($s1) +/* 06B1E0 7F0366B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B1E4 7F0366B4 02C02025 */ move $a0, $s6 +/* 06B1E8 7F0366B8 44984000 */ mtc1 $t8, $f8 +/* 06B1EC 7F0366BC 02402825 */ move $a1, $s2 +/* 06B1F0 7F0366C0 07010004 */ bgez $t8, .L7F0366D4 +/* 06B1F4 7F0366C4 468042A0 */ cvt.s.w $f10, $f8 +/* 06B1F8 7F0366C8 44818000 */ mtc1 $at, $f16 +/* 06B1FC 7F0366CC 00000000 */ nop +/* 06B200 7F0366D0 46105280 */ add.s $f10, $f10, $f16 +.L7F0366D4: +/* 06B204 7F0366D4 461A5482 */ mul.s $f18, $f10, $f26 +/* 06B208 7F0366D8 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B20C 7F0366DC 44812000 */ mtc1 $at, $f4 +/* 06B210 7F0366E0 00000000 */ nop +/* 06B214 7F0366E4 46049182 */ mul.s $f6, $f18, $f4 +/* 06B218 7F0366E8 4606003C */ c.lt.s $f0, $f6 +/* 06B21C 7F0366EC 00000000 */ nop +/* 06B220 7F0366F0 45020007 */ bc1fl .L7F036710 +/* 06B224 7F0366F4 26520003 */ addiu $s2, $s2, 3 +/* 06B228 7F0366F8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B22C 7F0366FC 92260002 */ lbu $a2, 2($s1) +/* 06B230 7F036700 00409025 */ move $s2, $v0 +/* 06B234 7F036704 1000FBA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B238 7F036708 02C28821 */ addu $s1, $s6, $v0 +/* 06B23C 7F03670C 26520003 */ addiu $s2, $s2, 3 +.L7F036710: +/* 06B240 7F036710 1000FB9E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B244 7F036714 26310003 */ addiu $s1, $s1, 3 +action48_If_Distance_Between_Bond_And_Guard_GTV_RVL_3: +/* 06B248 7F036718 0FC0CB13 */ jal sub_GAME_7F032C4C +/* 06B24C 7F03671C 02E02025 */ move $a0, $s7 +/* 06B250 7F036720 92290001 */ lbu $t1, 1($s1) +/* 06B254 7F036724 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B258 7F036728 02C02025 */ move $a0, $s6 +/* 06B25C 7F03672C 44894000 */ mtc1 $t1, $f8 +/* 06B260 7F036730 02402825 */ move $a1, $s2 +/* 06B264 7F036734 05210004 */ bgez $t1, .L7F036748 +/* 06B268 7F036738 46804420 */ cvt.s.w $f16, $f8 +/* 06B26C 7F03673C 44815000 */ mtc1 $at, $f10 +/* 06B270 7F036740 00000000 */ nop +/* 06B274 7F036744 460A8400 */ add.s $f16, $f16, $f10 +.L7F036748: +/* 06B278 7F036748 461A8482 */ mul.s $f18, $f16, $f26 +/* 06B27C 7F03674C 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B280 7F036750 44812000 */ mtc1 $at, $f4 +/* 06B284 7F036754 00000000 */ nop +/* 06B288 7F036758 46049182 */ mul.s $f6, $f18, $f4 +/* 06B28C 7F03675C 4600303C */ c.lt.s $f6, $f0 +/* 06B290 7F036760 00000000 */ nop +/* 06B294 7F036764 45020007 */ bc1fl .L7F036784 +/* 06B298 7F036768 26520003 */ addiu $s2, $s2, 3 +/* 06B29C 7F03676C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B2A0 7F036770 92260002 */ lbu $a2, 2($s1) +/* 06B2A4 7F036774 00409025 */ move $s2, $v0 +/* 06B2A8 7F036778 1000FB84 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B2AC 7F03677C 02C28821 */ addu $s1, $s6, $v0 +/* 06B2B0 7F036780 26520003 */ addiu $s2, $s2, 3 +.L7F036784: +/* 06B2B4 7F036784 1000FB81 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B2B8 7F036788 26310003 */ addiu $s1, $s1, 3 +action49_Test_if_Actor_and_Player_CCWAngle_LTV_RVL_Unused_3: +/* 06B2BC 7F03678C 0FC0CB5C */ jal get_angle_between_actor_cur_player +/* 06B2C0 7F036790 02E02025 */ move $a0, $s7 +/* 06B2C4 7F036794 922A0001 */ lbu $t2, 1($s1) +/* 06B2C8 7F036798 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B2CC 7F03679C 02C02025 */ move $a0, $s6 +/* 06B2D0 7F0367A0 448A4000 */ mtc1 $t2, $f8 +/* 06B2D4 7F0367A4 02402825 */ move $a1, $s2 +/* 06B2D8 7F0367A8 05410004 */ bgez $t2, .L7F0367BC +/* 06B2DC 7F0367AC 468042A0 */ cvt.s.w $f10, $f8 +/* 06B2E0 7F0367B0 44818000 */ mtc1 $at, $f16 +/* 06B2E4 7F0367B4 00000000 */ nop +/* 06B2E8 7F0367B8 46105280 */ add.s $f10, $f10, $f16 +.L7F0367BC: +/* 06B2EC 7F0367BC 461A5482 */ mul.s $f18, $f10, $f26 +/* 06B2F0 7F0367C0 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B2F4 7F0367C4 44812000 */ mtc1 $at, $f4 +/* 06B2F8 7F0367C8 00000000 */ nop +/* 06B2FC 7F0367CC 46049182 */ mul.s $f6, $f18, $f4 +/* 06B300 7F0367D0 4606003C */ c.lt.s $f0, $f6 +/* 06B304 7F0367D4 00000000 */ nop +/* 06B308 7F0367D8 45020007 */ bc1fl .L7F0367F8 +/* 06B30C 7F0367DC 26520003 */ addiu $s2, $s2, 3 +/* 06B310 7F0367E0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B314 7F0367E4 92260002 */ lbu $a2, 2($s1) +/* 06B318 7F0367E8 00409025 */ move $s2, $v0 +/* 06B31C 7F0367EC 1000FB67 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B320 7F0367F0 02C28821 */ addu $s1, $s6, $v0 +/* 06B324 7F0367F4 26520003 */ addiu $s2, $s2, 3 +.L7F0367F8: +/* 06B328 7F0367F8 1000FB64 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B32C 7F0367FC 26310003 */ addiu $s1, $s1, 3 +action4A_Test_if_Actor_and_Player_CCWAngle_GTV_RVL_Unused_3: +/* 06B330 7F036800 0FC0CB5C */ jal get_angle_between_actor_cur_player +/* 06B334 7F036804 02E02025 */ move $a0, $s7 +/* 06B338 7F036808 922B0001 */ lbu $t3, 1($s1) +/* 06B33C 7F03680C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B340 7F036810 02C02025 */ move $a0, $s6 +/* 06B344 7F036814 448B4000 */ mtc1 $t3, $f8 +/* 06B348 7F036818 02402825 */ move $a1, $s2 +/* 06B34C 7F03681C 05610004 */ bgez $t3, .L7F036830 +/* 06B350 7F036820 46804420 */ cvt.s.w $f16, $f8 +/* 06B354 7F036824 44815000 */ mtc1 $at, $f10 +/* 06B358 7F036828 00000000 */ nop +/* 06B35C 7F03682C 460A8400 */ add.s $f16, $f16, $f10 +.L7F036830: +/* 06B360 7F036830 461A8482 */ mul.s $f18, $f16, $f26 +/* 06B364 7F036834 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B368 7F036838 44812000 */ mtc1 $at, $f4 +/* 06B36C 7F03683C 00000000 */ nop +/* 06B370 7F036840 46049182 */ mul.s $f6, $f18, $f4 +/* 06B374 7F036844 4600303C */ c.lt.s $f6, $f0 +/* 06B378 7F036848 00000000 */ nop +/* 06B37C 7F03684C 45020007 */ bc1fl .L7F03686C +/* 06B380 7F036850 26520003 */ addiu $s2, $s2, 3 +/* 06B384 7F036854 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B388 7F036858 92260002 */ lbu $a2, 2($s1) +/* 06B38C 7F03685C 00409025 */ move $s2, $v0 +/* 06B390 7F036860 1000FB4A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B394 7F036864 02C28821 */ addu $s1, $s6, $v0 +/* 06B398 7F036868 26520003 */ addiu $s2, $s2, 3 +.L7F03686C: +/* 06B39C 7F03686C 1000FB47 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B3A0 7F036870 26310003 */ addiu $s1, $s1, 3 +action4B_RVL_If_In_Proximity_Of_Bond_4: +/* 06B3A4 7F036874 922C0001 */ lbu $t4, 1($s1) +/* 06B3A8 7F036878 922D0002 */ lbu $t5, 2($s1) +/* 06B3AC 7F03687C 02E02025 */ move $a0, $s7 +/* 06B3B0 7F036880 000CCA00 */ sll $t9, $t4, 8 +/* 06B3B4 7F036884 032D7025 */ or $t6, $t9, $t5 +/* 06B3B8 7F036888 448E4000 */ mtc1 $t6, $f8 +/* 06B3BC 7F03688C 00000000 */ nop +/* 06B3C0 7F036890 468042A0 */ cvt.s.w $f10, $f8 +/* 06B3C4 7F036894 46185402 */ mul.s $f16, $f10, $f24 +/* 06B3C8 7F036898 0FC0CB79 */ jal sub_GAME_7F032DE4 +/* 06B3CC 7F03689C E7B005FC */ swc1 $f16, 0x5fc($sp) +/* 06B3D0 7F0368A0 C7B205FC */ lwc1 $f18, 0x5fc($sp) +/* 06B3D4 7F0368A4 02C02025 */ move $a0, $s6 +/* 06B3D8 7F0368A8 02402825 */ move $a1, $s2 +/* 06B3DC 7F0368AC 4612003C */ c.lt.s $f0, $f18 +/* 06B3E0 7F0368B0 00000000 */ nop +/* 06B3E4 7F0368B4 45020007 */ bc1fl .L7F0368D4 +/* 06B3E8 7F0368B8 26520004 */ addiu $s2, $s2, 4 +/* 06B3EC 7F0368BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B3F0 7F0368C0 92260003 */ lbu $a2, 3($s1) +/* 06B3F4 7F0368C4 00409025 */ move $s2, $v0 +/* 06B3F8 7F0368C8 1000FB30 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B3FC 7F0368CC 02C28821 */ addu $s1, $s6, $v0 +/* 06B400 7F0368D0 26520004 */ addiu $s2, $s2, 4 +.L7F0368D4: +/* 06B404 7F0368D4 1000FB2D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B408 7F0368D8 26310004 */ addiu $s1, $s1, 4 +action4C_RVL_If_Not_In_Proximity_Of_Bond_4: +/* 06B40C 7F0368DC 922F0001 */ lbu $t7, 1($s1) +/* 06B410 7F0368E0 92290002 */ lbu $t1, 2($s1) +/* 06B414 7F0368E4 02E02025 */ move $a0, $s7 +/* 06B418 7F0368E8 000FC200 */ sll $t8, $t7, 8 +/* 06B41C 7F0368EC 03095025 */ or $t2, $t8, $t1 +/* 06B420 7F0368F0 448A2000 */ mtc1 $t2, $f4 +/* 06B424 7F0368F4 00000000 */ nop +/* 06B428 7F0368F8 468021A0 */ cvt.s.w $f6, $f4 +/* 06B42C 7F0368FC 46183202 */ mul.s $f8, $f6, $f24 +/* 06B430 7F036900 0FC0CB79 */ jal sub_GAME_7F032DE4 +/* 06B434 7F036904 E7A805F4 */ swc1 $f8, 0x5f4($sp) +/* 06B438 7F036908 C7AA05F4 */ lwc1 $f10, 0x5f4($sp) +/* 06B43C 7F03690C 02C02025 */ move $a0, $s6 +/* 06B440 7F036910 02402825 */ move $a1, $s2 +/* 06B444 7F036914 4600503C */ c.lt.s $f10, $f0 +/* 06B448 7F036918 00000000 */ nop +/* 06B44C 7F03691C 45020007 */ bc1fl .L7F03693C +/* 06B450 7F036920 26520004 */ addiu $s2, $s2, 4 +/* 06B454 7F036924 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B458 7F036928 92260003 */ lbu $a2, 3($s1) +/* 06B45C 7F03692C 00409025 */ move $s2, $v0 +/* 06B460 7F036930 1000FB16 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B464 7F036934 02C28821 */ addu $s1, $s6, $v0 +/* 06B468 7F036938 26520004 */ addiu $s2, $s2, 4 +.L7F03693C: +/* 06B46C 7F03693C 1000FB13 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B470 7F036940 26310004 */ addiu $s1, $s1, 4 +action4D_When_Guard_In_Proximity_Of_Preset_RVL_7: +/* 06B474 7F036944 02E02025 */ move $a0, $s7 +/* 06B478 7F036948 0FC0CC10 */ jal get_handle_for_guard_id +/* 06B47C 7F03694C 92250001 */ lbu $a1, 1($s1) +/* 06B480 7F036950 922E0002 */ lbu $t6, 2($s1) +/* 06B484 7F036954 92380003 */ lbu $t8, 3($s1) +/* 06B488 7F036958 922B0004 */ lbu $t3, 4($s1) +/* 06B48C 7F03695C 000E7A00 */ sll $t7, $t6, 8 +/* 06B490 7F036960 01F84825 */ or $t1, $t7, $t8 +/* 06B494 7F036964 44898000 */ mtc1 $t1, $f16 +/* 06B498 7F036968 92390005 */ lbu $t9, 5($s1) +/* 06B49C 7F03696C 000B6200 */ sll $t4, $t3, 8 +/* 06B4A0 7F036970 468084A0 */ cvt.s.w $f18, $f16 +/* 06B4A4 7F036974 01991825 */ or $v1, $t4, $t9 +/* 06B4A8 7F036978 306DFFFF */ andi $t5, $v1, 0xffff +/* 06B4AC 7F03697C 00402025 */ move $a0, $v0 +/* 06B4B0 7F036980 01A02825 */ move $a1, $t5 +/* 06B4B4 7F036984 46189082 */ mul.s $f2, $f18, $f24 +/* 06B4B8 7F036988 50400010 */ beql $v0, $zero, .L7F0369CC +/* 06B4BC 7F03698C 26520007 */ addiu $s2, $s2, 7 +/* 06B4C0 7F036990 0FC0CB92 */ jal sub_GAME_7F032E48 +/* 06B4C4 7F036994 E7A205E4 */ swc1 $f2, 0x5e4($sp) +/* 06B4C8 7F036998 C7A205E4 */ lwc1 $f2, 0x5e4($sp) +/* 06B4CC 7F03699C 02C02025 */ move $a0, $s6 +/* 06B4D0 7F0369A0 02402825 */ move $a1, $s2 +/* 06B4D4 7F0369A4 4602003C */ c.lt.s $f0, $f2 +/* 06B4D8 7F0369A8 00000000 */ nop +/* 06B4DC 7F0369AC 45020007 */ bc1fl .L7F0369CC +/* 06B4E0 7F0369B0 26520007 */ addiu $s2, $s2, 7 +/* 06B4E4 7F0369B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B4E8 7F0369B8 92260006 */ lbu $a2, 6($s1) +/* 06B4EC 7F0369BC 00409025 */ move $s2, $v0 +/* 06B4F0 7F0369C0 1000FAF2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B4F4 7F0369C4 02C28821 */ addu $s1, $s6, $v0 +/* 06B4F8 7F0369C8 26520007 */ addiu $s2, $s2, 7 +.L7F0369CC: +/* 06B4FC 7F0369CC 1000FAEF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B500 7F0369D0 26310007 */ addiu $s1, $s1, 7 +action4E_When_Guard_Not_In_Proximity_Of_Preset_RVL_7: +/* 06B504 7F0369D4 02E02025 */ move $a0, $s7 +/* 06B508 7F0369D8 0FC0CC10 */ jal get_handle_for_guard_id +/* 06B50C 7F0369DC 92250001 */ lbu $a1, 1($s1) +/* 06B510 7F0369E0 922D0002 */ lbu $t5, 2($s1) +/* 06B514 7F0369E4 922F0003 */ lbu $t7, 3($s1) +/* 06B518 7F0369E8 922A0004 */ lbu $t2, 4($s1) +/* 06B51C 7F0369EC 000D7200 */ sll $t6, $t5, 8 +/* 06B520 7F0369F0 01CFC025 */ or $t8, $t6, $t7 +/* 06B524 7F0369F4 44982000 */ mtc1 $t8, $f4 +/* 06B528 7F0369F8 922C0005 */ lbu $t4, 5($s1) +/* 06B52C 7F0369FC 000A5A00 */ sll $t3, $t2, 8 +/* 06B530 7F036A00 468021A0 */ cvt.s.w $f6, $f4 +/* 06B534 7F036A04 016C1825 */ or $v1, $t3, $t4 +/* 06B538 7F036A08 3079FFFF */ andi $t9, $v1, 0xffff +/* 06B53C 7F036A0C 00402025 */ move $a0, $v0 +/* 06B540 7F036A10 03202825 */ move $a1, $t9 +/* 06B544 7F036A14 46183082 */ mul.s $f2, $f6, $f24 +/* 06B548 7F036A18 50400010 */ beql $v0, $zero, .L7F036A5C +/* 06B54C 7F036A1C 26520007 */ addiu $s2, $s2, 7 +/* 06B550 7F036A20 0FC0CB92 */ jal sub_GAME_7F032E48 +/* 06B554 7F036A24 E7A205D4 */ swc1 $f2, 0x5d4($sp) +/* 06B558 7F036A28 C7A205D4 */ lwc1 $f2, 0x5d4($sp) +/* 06B55C 7F036A2C 02C02025 */ move $a0, $s6 +/* 06B560 7F036A30 02402825 */ move $a1, $s2 +/* 06B564 7F036A34 4600103C */ c.lt.s $f2, $f0 +/* 06B568 7F036A38 00000000 */ nop +/* 06B56C 7F036A3C 45020007 */ bc1fl .L7F036A5C +/* 06B570 7F036A40 26520007 */ addiu $s2, $s2, 7 +/* 06B574 7F036A44 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B578 7F036A48 92260006 */ lbu $a2, 6($s1) +/* 06B57C 7F036A4C 00409025 */ move $s2, $v0 +/* 06B580 7F036A50 1000FACE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B584 7F036A54 02C28821 */ addu $s1, $s6, $v0 +/* 06B588 7F036A58 26520007 */ addiu $s2, $s2, 7 +.L7F036A5C: +/* 06B58C 7F036A5C 1000FACB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B590 7F036A60 26310007 */ addiu $s1, $s1, 7 +action4F_If_Current_Guard_Is_In_Units_Of_Guard_ID_RVL_5: +/* 06B594 7F036A64 92290001 */ lbu $t1, 1($s1) +/* 06B598 7F036A68 922B0002 */ lbu $t3, 2($s1) +/* 06B59C 7F036A6C 02E02025 */ move $a0, $s7 +/* 06B5A0 7F036A70 00095200 */ sll $t2, $t1, 8 +/* 06B5A4 7F036A74 014B6025 */ or $t4, $t2, $t3 +/* 06B5A8 7F036A78 448C4000 */ mtc1 $t4, $f8 +/* 06B5AC 7F036A7C 00000000 */ nop +/* 06B5B0 7F036A80 468042A0 */ cvt.s.w $f10, $f8 +/* 06B5B4 7F036A84 46185402 */ mul.s $f16, $f10, $f24 +/* 06B5B8 7F036A88 E7B005CC */ swc1 $f16, 0x5cc($sp) +/* 06B5BC 7F036A8C 0FC0CC31 */ jal get_distance_between_actor_and_actorID +/* 06B5C0 7F036A90 92250003 */ lbu $a1, 3($s1) +/* 06B5C4 7F036A94 C7B205CC */ lwc1 $f18, 0x5cc($sp) +/* 06B5C8 7F036A98 02C02025 */ move $a0, $s6 +/* 06B5CC 7F036A9C 02402825 */ move $a1, $s2 +/* 06B5D0 7F036AA0 4612003C */ c.lt.s $f0, $f18 +/* 06B5D4 7F036AA4 00000000 */ nop +/* 06B5D8 7F036AA8 45020007 */ bc1fl .L7F036AC8 +/* 06B5DC 7F036AAC 26520005 */ addiu $s2, $s2, 5 +/* 06B5E0 7F036AB0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B5E4 7F036AB4 92260004 */ lbu $a2, 4($s1) +/* 06B5E8 7F036AB8 00409025 */ move $s2, $v0 +/* 06B5EC 7F036ABC 1000FAB3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B5F0 7F036AC0 02C28821 */ addu $s1, $s6, $v0 +/* 06B5F4 7F036AC4 26520005 */ addiu $s2, $s2, 5 +.L7F036AC8: +/* 06B5F8 7F036AC8 1000FAB0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B5FC 7F036ACC 26310005 */ addiu $s1, $s1, 5 +action50_If_Current_Guard_Is_Not_In_Units_Of_Guard_ID_RVL_5: +/* 06B600 7F036AD0 92390001 */ lbu $t9, 1($s1) +/* 06B604 7F036AD4 922E0002 */ lbu $t6, 2($s1) +/* 06B608 7F036AD8 02E02025 */ move $a0, $s7 +/* 06B60C 7F036ADC 00196A00 */ sll $t5, $t9, 8 +/* 06B610 7F036AE0 01AE7825 */ or $t7, $t5, $t6 +/* 06B614 7F036AE4 448F2000 */ mtc1 $t7, $f4 +/* 06B618 7F036AE8 00000000 */ nop +/* 06B61C 7F036AEC 468021A0 */ cvt.s.w $f6, $f4 +/* 06B620 7F036AF0 46183202 */ mul.s $f8, $f6, $f24 +/* 06B624 7F036AF4 E7A805C4 */ swc1 $f8, 0x5c4($sp) +/* 06B628 7F036AF8 0FC0CC31 */ jal get_distance_between_actor_and_actorID +/* 06B62C 7F036AFC 92250003 */ lbu $a1, 3($s1) +/* 06B630 7F036B00 C7AA05C4 */ lwc1 $f10, 0x5c4($sp) +/* 06B634 7F036B04 02C02025 */ move $a0, $s6 +/* 06B638 7F036B08 02402825 */ move $a1, $s2 +/* 06B63C 7F036B0C 4600503C */ c.lt.s $f10, $f0 +/* 06B640 7F036B10 00000000 */ nop +/* 06B644 7F036B14 45020007 */ bc1fl .L7F036B34 +/* 06B648 7F036B18 26520005 */ addiu $s2, $s2, 5 +/* 06B64C 7F036B1C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B650 7F036B20 92260004 */ lbu $a2, 4($s1) +/* 06B654 7F036B24 00409025 */ move $s2, $v0 +/* 06B658 7F036B28 1000FA98 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B65C 7F036B2C 02C28821 */ addu $s1, $s6, $v0 +/* 06B660 7F036B30 26520005 */ addiu $s2, $s2, 5 +.L7F036B34: +/* 06B664 7F036B34 1000FA95 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B668 7F036B38 26310005 */ addiu $s1, $s1, 5 +action51_SetClosestGuardUnitsGuardID_Then_RVL_IfSuccess_4: +/* 06B66C 7F036B3C 92380001 */ lbu $t8, 1($s1) +/* 06B670 7F036B40 922A0002 */ lbu $t2, 2($s1) +/* 06B674 7F036B44 02E02025 */ move $a0, $s7 +/* 06B678 7F036B48 00184A00 */ sll $t1, $t8, 8 +/* 06B67C 7F036B4C 012A5825 */ or $t3, $t1, $t2 +/* 06B680 7F036B50 448B8000 */ mtc1 $t3, $f16 +/* 06B684 7F036B54 00000000 */ nop +/* 06B688 7F036B58 468084A0 */ cvt.s.w $f18, $f16 +/* 06B68C 7F036B5C 46189002 */ mul.s $f0, $f18, $f24 +/* 06B690 7F036B60 44050000 */ mfc1 $a1, $f0 +/* 06B694 7F036B64 0FC0CECE */ jal sub_GAME_7F033B38 +/* 06B698 7F036B68 00000000 */ nop +/* 06B69C 7F036B6C 10400007 */ beqz $v0, .L7F036B8C +/* 06B6A0 7F036B70 02C02025 */ move $a0, $s6 +/* 06B6A4 7F036B74 02402825 */ move $a1, $s2 +/* 06B6A8 7F036B78 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B6AC 7F036B7C 92260003 */ lbu $a2, 3($s1) +/* 06B6B0 7F036B80 00409025 */ move $s2, $v0 +/* 06B6B4 7F036B84 1000FA81 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B6B8 7F036B88 02C28821 */ addu $s1, $s6, $v0 +.L7F036B8C: +/* 06B6BC 7F036B8C 26520004 */ addiu $s2, $s2, 4 +/* 06B6C0 7F036B90 1000FA7E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B6C4 7F036B94 26310004 */ addiu $s1, $s1, 4 +action52_GoIntoRVLIf_In_Units_Of_Preset_6: +/* 06B6C8 7F036B98 922F0001 */ lbu $t7, 1($s1) +/* 06B6CC 7F036B9C 92290002 */ lbu $t1, 2($s1) +/* 06B6D0 7F036BA0 922C0003 */ lbu $t4, 3($s1) +/* 06B6D4 7F036BA4 000FC200 */ sll $t8, $t7, 8 +/* 06B6D8 7F036BA8 03095025 */ or $t2, $t8, $t1 +/* 06B6DC 7F036BAC 448A2000 */ mtc1 $t2, $f4 +/* 06B6E0 7F036BB0 922D0004 */ lbu $t5, 4($s1) +/* 06B6E4 7F036BB4 000CCA00 */ sll $t9, $t4, 8 +/* 06B6E8 7F036BB8 468021A0 */ cvt.s.w $f6, $f4 +/* 06B6EC 7F036BBC 032D1025 */ or $v0, $t9, $t5 +/* 06B6F0 7F036BC0 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B6F4 7F036BC4 02E02025 */ move $a0, $s7 +/* 06B6F8 7F036BC8 46183202 */ mul.s $f8, $f6, $f24 +/* 06B6FC 7F036BCC 0FC0CC55 */ jal get_distance_between_actor_and_preset +/* 06B700 7F036BD0 E7A805B0 */ swc1 $f8, 0x5b0($sp) +/* 06B704 7F036BD4 C7AA05B0 */ lwc1 $f10, 0x5b0($sp) +/* 06B708 7F036BD8 02C02025 */ move $a0, $s6 +/* 06B70C 7F036BDC 02402825 */ move $a1, $s2 +/* 06B710 7F036BE0 460A003C */ c.lt.s $f0, $f10 +/* 06B714 7F036BE4 00000000 */ nop +/* 06B718 7F036BE8 45020007 */ bc1fl .L7F036C08 +/* 06B71C 7F036BEC 26520006 */ addiu $s2, $s2, 6 +/* 06B720 7F036BF0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B724 7F036BF4 92260005 */ lbu $a2, 5($s1) +/* 06B728 7F036BF8 00409025 */ move $s2, $v0 +/* 06B72C 7F036BFC 1000FA63 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B730 7F036C00 02C28821 */ addu $s1, $s6, $v0 +/* 06B734 7F036C04 26520006 */ addiu $s2, $s2, 6 +.L7F036C08: +/* 06B738 7F036C08 1000FA60 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B73C 7F036C0C 26310006 */ addiu $s1, $s1, 6 +action53_GoIntoRVLIf_Not_In_Units_Of_Preset_6: +/* 06B740 7F036C10 922E0001 */ lbu $t6, 1($s1) +/* 06B744 7F036C14 92380002 */ lbu $t8, 2($s1) +/* 06B748 7F036C18 922B0003 */ lbu $t3, 3($s1) +/* 06B74C 7F036C1C 000E7A00 */ sll $t7, $t6, 8 +/* 06B750 7F036C20 01F84825 */ or $t1, $t7, $t8 +/* 06B754 7F036C24 44898000 */ mtc1 $t1, $f16 +/* 06B758 7F036C28 92390004 */ lbu $t9, 4($s1) +/* 06B75C 7F036C2C 000B6200 */ sll $t4, $t3, 8 +/* 06B760 7F036C30 468084A0 */ cvt.s.w $f18, $f16 +/* 06B764 7F036C34 01991025 */ or $v0, $t4, $t9 +/* 06B768 7F036C38 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B76C 7F036C3C 02E02025 */ move $a0, $s7 +/* 06B770 7F036C40 46189102 */ mul.s $f4, $f18, $f24 +/* 06B774 7F036C44 0FC0CC55 */ jal get_distance_between_actor_and_preset +/* 06B778 7F036C48 E7A405A4 */ swc1 $f4, 0x5a4($sp) +/* 06B77C 7F036C4C C7A605A4 */ lwc1 $f6, 0x5a4($sp) +/* 06B780 7F036C50 02C02025 */ move $a0, $s6 +/* 06B784 7F036C54 02402825 */ move $a1, $s2 +/* 06B788 7F036C58 4600303C */ c.lt.s $f6, $f0 +/* 06B78C 7F036C5C 00000000 */ nop +/* 06B790 7F036C60 45020007 */ bc1fl .L7F036C80 +/* 06B794 7F036C64 26520006 */ addiu $s2, $s2, 6 +/* 06B798 7F036C68 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B79C 7F036C6C 92260005 */ lbu $a2, 5($s1) +/* 06B7A0 7F036C70 00409025 */ move $s2, $v0 +/* 06B7A4 7F036C74 1000FA45 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B7A8 7F036C78 02C28821 */ addu $s1, $s6, $v0 +/* 06B7AC 7F036C7C 26520006 */ addiu $s2, $s2, 6 +.L7F036C80: +/* 06B7B0 7F036C80 1000FA42 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B7B4 7F036C84 26310006 */ addiu $s1, $s1, 6 +action54_GoIntoRVLIf_Guard_Is_At_Preset_5: +/* 06B7B8 7F036C88 922A0002 */ lbu $t2, 2($s1) +/* 06B7BC 7F036C8C 922C0003 */ lbu $t4, 3($s1) +/* 06B7C0 7F036C90 02E02025 */ move $a0, $s7 +/* 06B7C4 7F036C94 000A5A00 */ sll $t3, $t2, 8 +/* 06B7C8 7F036C98 016C1025 */ or $v0, $t3, $t4 +/* 06B7CC 7F036C9C 3046FFFF */ andi $a2, $v0, 0xffff +/* 06B7D0 7F036CA0 0FC0D0E2 */ jal check_if_actorID_is_at_preset +/* 06B7D4 7F036CA4 92250001 */ lbu $a1, 1($s1) +/* 06B7D8 7F036CA8 10400007 */ beqz $v0, .L7F036CC8 +/* 06B7DC 7F036CAC 02C02025 */ move $a0, $s6 +/* 06B7E0 7F036CB0 02402825 */ move $a1, $s2 +/* 06B7E4 7F036CB4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B7E8 7F036CB8 92260004 */ lbu $a2, 4($s1) +/* 06B7EC 7F036CBC 00409025 */ move $s2, $v0 +/* 06B7F0 7F036CC0 1000FA32 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B7F4 7F036CC4 02C28821 */ addu $s1, $s6, $v0 +.L7F036CC8: +/* 06B7F8 7F036CC8 26520005 */ addiu $s2, $s2, 5 +/* 06B7FC 7F036CCC 1000FA2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B800 7F036CD0 26310005 */ addiu $s1, $s1, 5 +action55_GoIntoRVLIf_Entered_Room_with_Preset_4: +/* 06B804 7F036CD4 922D0001 */ lbu $t5, 1($s1) +/* 06B808 7F036CD8 922F0002 */ lbu $t7, 2($s1) +/* 06B80C 7F036CDC 02E02025 */ move $a0, $s7 +/* 06B810 7F036CE0 000D7200 */ sll $t6, $t5, 8 +/* 06B814 7F036CE4 01CF1025 */ or $v0, $t6, $t7 +/* 06B818 7F036CE8 0FC0D113 */ jal check_if_actor_is_at_preset +/* 06B81C 7F036CEC 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B820 7F036CF0 10400007 */ beqz $v0, .L7F036D10 +/* 06B824 7F036CF4 02C02025 */ move $a0, $s6 +/* 06B828 7F036CF8 02402825 */ move $a1, $s2 +/* 06B82C 7F036CFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B830 7F036D00 92260003 */ lbu $a2, 3($s1) +/* 06B834 7F036D04 00409025 */ move $s2, $v0 +/* 06B838 7F036D08 1000FA20 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B83C 7F036D0C 02C28821 */ addu $s1, $s6, $v0 +.L7F036D10: +/* 06B840 7F036D10 26520004 */ addiu $s2, $s2, 4 +/* 06B844 7F036D14 1000FA1D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B848 7F036D18 26310004 */ addiu $s1, $s1, 4 +action56_GoIntoRVLIf_16_Object_num_Collected_3: +/* 06B84C 7F036D1C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B850 7F036D20 92240001 */ lbu $a0, 1($s1) +/* 06B854 7F036D24 5040000F */ beql $v0, $zero, .L7F036D64 +/* 06B858 7F036D28 26520003 */ addiu $s2, $s2, 3 +/* 06B85C 7F036D2C 8C490010 */ lw $t1, 0x10($v0) +/* 06B860 7F036D30 5120000C */ beql $t1, $zero, .L7F036D64 +/* 06B864 7F036D34 26520003 */ addiu $s2, $s2, 3 +/* 06B868 7F036D38 0FC233F8 */ jal sub_GAME_7F08CFE0 +/* 06B86C 7F036D3C 8C440010 */ lw $a0, 0x10($v0) +/* 06B870 7F036D40 10400007 */ beqz $v0, .L7F036D60 +/* 06B874 7F036D44 02C02025 */ move $a0, $s6 +/* 06B878 7F036D48 02402825 */ move $a1, $s2 +/* 06B87C 7F036D4C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B880 7F036D50 92260002 */ lbu $a2, 2($s1) +/* 06B884 7F036D54 00409025 */ move $s2, $v0 +/* 06B888 7F036D58 1000FA0C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B88C 7F036D5C 02C28821 */ addu $s1, $s6, $v0 +.L7F036D60: +/* 06B890 7F036D60 26520003 */ addiu $s2, $s2, 3 +.L7F036D64: +/* 06B894 7F036D64 1000FA09 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B898 7F036D68 26310003 */ addiu $s1, $s1, 3 +action57_GoIntoRVLIf_Specified_Weapon_Deposited_3: +/* 06B89C 7F036D6C 0FC146BB */ jal check_if_item_deposited +/* 06B8A0 7F036D70 92240001 */ lbu $a0, 1($s1) +/* 06B8A4 7F036D74 10400007 */ beqz $v0, .L7F036D94 +/* 06B8A8 7F036D78 02C02025 */ move $a0, $s6 +/* 06B8AC 7F036D7C 02402825 */ move $a1, $s2 +/* 06B8B0 7F036D80 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B8B4 7F036D84 92260002 */ lbu $a2, 2($s1) +/* 06B8B8 7F036D88 00409025 */ move $s2, $v0 +/* 06B8BC 7F036D8C 1000F9FF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B8C0 7F036D90 02C28821 */ addu $s1, $s6, $v0 +.L7F036D94: +/* 06B8C4 7F036D94 26520003 */ addiu $s2, $s2, 3 +/* 06B8C8 7F036D98 1000F9FC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B8CC 7F036D9C 26310003 */ addiu $s1, $s1, 3 +action58_GoIntoRVLIf_SpecifiedWeaponDeposited_On16Object_4: +/* 06B8D0 7F036DA0 92240002 */ lbu $a0, 2($s1) +/* 06B8D4 7F036DA4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B8D8 7F036DA8 00008025 */ move $s0, $zero +/* 06B8DC 7F036DAC 10400015 */ beqz $v0, .L7F036E04 +/* 06B8E0 7F036DB0 02402825 */ move $a1, $s2 +/* 06B8E4 7F036DB4 8C440010 */ lw $a0, 0x10($v0) +/* 06B8E8 7F036DB8 10800012 */ beqz $a0, .L7F036E04 +/* 06B8EC 7F036DBC 00000000 */ nop +/* 06B8F0 7F036DC0 8C830020 */ lw $v1, 0x20($a0) +/* 06B8F4 7F036DC4 1060000F */ beqz $v1, .L7F036E04 +/* 06B8F8 7F036DC8 00000000 */ nop +/* 06B8FC 7F036DCC 906A0000 */ lbu $t2, ($v1) +.L7F036DD0: +/* 06B900 7F036DD0 24010004 */ li $at, 4 +/* 06B904 7F036DD4 55410009 */ bnel $t2, $at, .L7F036DFC +/* 06B908 7F036DD8 8C630024 */ lw $v1, 0x24($v1) +/* 06B90C 7F036DDC 8C620004 */ lw $v0, 4($v1) +/* 06B910 7F036DE0 922B0001 */ lbu $t3, 1($s1) +/* 06B914 7F036DE4 804C0080 */ lb $t4, 0x80($v0) +/* 06B918 7F036DE8 556C0004 */ bnel $t3, $t4, .L7F036DFC +/* 06B91C 7F036DEC 8C630024 */ lw $v1, 0x24($v1) +/* 06B920 7F036DF0 10000004 */ b .L7F036E04 +/* 06B924 7F036DF4 24100001 */ li $s0, 1 +/* 06B928 7F036DF8 8C630024 */ lw $v1, 0x24($v1) +.L7F036DFC: +/* 06B92C 7F036DFC 5460FFF4 */ bnezl $v1, .L7F036DD0 +/* 06B930 7F036E00 906A0000 */ lbu $t2, ($v1) +.L7F036E04: +/* 06B934 7F036E04 12000006 */ beqz $s0, .L7F036E20 +/* 06B938 7F036E08 02C02025 */ move $a0, $s6 +/* 06B93C 7F036E0C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B940 7F036E10 92260003 */ lbu $a2, 3($s1) +/* 06B944 7F036E14 00409025 */ move $s2, $v0 +/* 06B948 7F036E18 1000F9DC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B94C 7F036E1C 02C28821 */ addu $s1, $s6, $v0 +.L7F036E20: +/* 06B950 7F036E20 26520004 */ addiu $s2, $s2, 4 +/* 06B954 7F036E24 1000F9D9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B958 7F036E28 26310004 */ addiu $s1, $s1, 4 +action59_GoIntoRVLIf_Specified_Weapon_Is_Out_3: +/* 06B95C 7F036E2C 0FC17674 */ jal get_item_in_hand +/* 06B960 7F036E30 00002025 */ move $a0, $zero +/* 06B964 7F036E34 92390001 */ lbu $t9, 1($s1) +/* 06B968 7F036E38 50590006 */ beql $v0, $t9, .L7F036E54 +/* 06B96C 7F036E3C 02C02025 */ move $a0, $s6 +/* 06B970 7F036E40 0FC17674 */ jal get_item_in_hand +/* 06B974 7F036E44 24040001 */ li $a0, 1 +/* 06B978 7F036E48 922D0001 */ lbu $t5, 1($s1) +/* 06B97C 7F036E4C 144D0007 */ bne $v0, $t5, .L7F036E6C +/* 06B980 7F036E50 02C02025 */ move $a0, $s6 +.L7F036E54: +/* 06B984 7F036E54 02402825 */ move $a1, $s2 +/* 06B988 7F036E58 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B98C 7F036E5C 92260002 */ lbu $a2, 2($s1) +/* 06B990 7F036E60 00409025 */ move $s2, $v0 +/* 06B994 7F036E64 1000F9C9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B998 7F036E68 02C28821 */ addu $s1, $s6, $v0 +.L7F036E6C: +/* 06B99C 7F036E6C 26520003 */ addiu $s2, $s2, 3 +/* 06B9A0 7F036E70 1000F9C6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B9A4 7F036E74 26310003 */ addiu $s1, $s1, 3 +action5A_GoIntoRVLIf_Type_16_Object_num_Loaded_3: +/* 06B9A8 7F036E78 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B9AC 7F036E7C 92240001 */ lbu $a0, 1($s1) +/* 06B9B0 7F036E80 5040000C */ beql $v0, $zero, .L7F036EB4 +/* 06B9B4 7F036E84 26520003 */ addiu $s2, $s2, 3 +/* 06B9B8 7F036E88 8C4E0010 */ lw $t6, 0x10($v0) +/* 06B9BC 7F036E8C 02C02025 */ move $a0, $s6 +/* 06B9C0 7F036E90 02402825 */ move $a1, $s2 +/* 06B9C4 7F036E94 51C00007 */ beql $t6, $zero, .L7F036EB4 +/* 06B9C8 7F036E98 26520003 */ addiu $s2, $s2, 3 +/* 06B9CC 7F036E9C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B9D0 7F036EA0 92260002 */ lbu $a2, 2($s1) +/* 06B9D4 7F036EA4 00409025 */ move $s2, $v0 +/* 06B9D8 7F036EA8 1000F9B8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B9DC 7F036EAC 02C28821 */ addu $s1, $s6, $v0 +/* 06B9E0 7F036EB0 26520003 */ addiu $s2, $s2, 3 +.L7F036EB4: +/* 06B9E4 7F036EB4 1000F9B5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B9E8 7F036EB8 26310003 */ addiu $s1, $s1, 3 +action5B_GoIntoRVLIf_16_Object_num_Not_Destroyed_3: +/* 06B9EC 7F036EBC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B9F0 7F036EC0 92240001 */ lbu $a0, 1($s1) +/* 06B9F4 7F036EC4 1040000E */ beqz $v0, .L7F036F00 +/* 06B9F8 7F036EC8 00402025 */ move $a0, $v0 +/* 06B9FC 7F036ECC 8C4F0010 */ lw $t7, 0x10($v0) +/* 06BA00 7F036ED0 51E0000C */ beql $t7, $zero, .L7F036F04 +/* 06BA04 7F036ED4 26520003 */ addiu $s2, $s2, 3 +/* 06BA08 7F036ED8 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 06BA0C 7F036EDC 00000000 */ nop +/* 06BA10 7F036EE0 10400007 */ beqz $v0, .L7F036F00 +/* 06BA14 7F036EE4 02C02025 */ move $a0, $s6 +/* 06BA18 7F036EE8 02402825 */ move $a1, $s2 +/* 06BA1C 7F036EEC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06BA20 7F036EF0 92260002 */ lbu $a2, 2($s1) +/* 06BA24 7F036EF4 00409025 */ move $s2, $v0 +/* 06BA28 7F036EF8 1000F9A4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA2C 7F036EFC 02C28821 */ addu $s1, $s6, $v0 +.L7F036F00: +/* 06BA30 7F036F00 26520003 */ addiu $s2, $s2, 3 +.L7F036F04: +/* 06BA34 7F036F04 1000F9A1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA38 7F036F08 26310003 */ addiu $s1, $s1, 3 +action5C_GoIntoRVLIf_16_Object_num_Activated_3: +/* 06BA3C 7F036F0C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BA40 7F036F10 92240001 */ lbu $a0, 1($s1) +/* 06BA44 7F036F14 50400014 */ beql $v0, $zero, .L7F036F68 +/* 06BA48 7F036F18 26520003 */ addiu $s2, $s2, 3 +/* 06BA4C 7F036F1C 8C580010 */ lw $t8, 0x10($v0) +/* 06BA50 7F036F20 53000011 */ beql $t8, $zero, .L7F036F68 +/* 06BA54 7F036F24 26520003 */ addiu $s2, $s2, 3 +/* 06BA58 7F036F28 8C490064 */ lw $t1, 0x64($v0) +/* 06BA5C 7F036F2C 2401BFFF */ li $at, -16385 +/* 06BA60 7F036F30 312A4000 */ andi $t2, $t1, 0x4000 +/* 06BA64 7F036F34 5140000C */ beql $t2, $zero, .L7F036F68 +/* 06BA68 7F036F38 26520003 */ addiu $s2, $s2, 3 +/* 06BA6C 7F036F3C 8C4B0064 */ lw $t3, 0x64($v0) +/* 06BA70 7F036F40 02C02025 */ move $a0, $s6 +/* 06BA74 7F036F44 02402825 */ move $a1, $s2 +/* 06BA78 7F036F48 01616024 */ and $t4, $t3, $at +/* 06BA7C 7F036F4C AC4C0064 */ sw $t4, 0x64($v0) +/* 06BA80 7F036F50 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06BA84 7F036F54 92260002 */ lbu $a2, 2($s1) +/* 06BA88 7F036F58 00409025 */ move $s2, $v0 +/* 06BA8C 7F036F5C 1000F98B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA90 7F036F60 02C28821 */ addu $s1, $s6, $v0 +/* 06BA94 7F036F64 26520003 */ addiu $s2, $s2, 3 +.L7F036F68: +/* 06BA98 7F036F68 1000F988 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA9C 7F036F6C 26310003 */ addiu $s1, $s1, 3 +action5D_GoIntoRVLIf_Gadget_Used_On_16_Object_num_3: +/* 06BAA0 7F036F70 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BAA4 7F036F74 92240001 */ lbu $a0, 1($s1) +/* 06BAA8 7F036F78 50400013 */ beql $v0, $zero, .L7F036FC8 +/* 06BAAC 7F036F7C 26520003 */ addiu $s2, $s2, 3 +/* 06BAB0 7F036F80 8C590010 */ lw $t9, 0x10($v0) +/* 06BAB4 7F036F84 53200010 */ beql $t9, $zero, .L7F036FC8 +/* 06BAB8 7F036F88 26520003 */ addiu $s2, $s2, 3 +/* 06BABC 7F036F8C 904D0002 */ lbu $t5, 2($v0) +/* 06BAC0 7F036F90 31AE0040 */ andi $t6, $t5, 0x40 +/* 06BAC4 7F036F94 51C0000C */ beql $t6, $zero, .L7F036FC8 +/* 06BAC8 7F036F98 26520003 */ addiu $s2, $s2, 3 +/* 06BACC 7F036F9C 904F0002 */ lbu $t7, 2($v0) +/* 06BAD0 7F036FA0 02C02025 */ move $a0, $s6 +/* 06BAD4 7F036FA4 02402825 */ move $a1, $s2 +/* 06BAD8 7F036FA8 31F8FFBF */ andi $t8, $t7, 0xffbf +/* 06BADC 7F036FAC A0580002 */ sb $t8, 2($v0) +/* 06BAE0 7F036FB0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06BAE4 7F036FB4 92260002 */ lbu $a2, 2($s1) +/* 06BAE8 7F036FB8 00409025 */ move $s2, $v0 +/* 06BAEC 7F036FBC 1000F973 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BAF0 7F036FC0 02C28821 */ addu $s1, $s6, $v0 +/* 06BAF4 7F036FC4 26520003 */ addiu $s2, $s2, 3 +.L7F036FC8: +/* 06BAF8 7F036FC8 1000F970 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BAFC 7F036FCC 26310003 */ addiu $s1, $s1, 3 +action5E_16_Object_Activates_2: +/* 06BB00 7F036FD0 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BB04 7F036FD4 92240001 */ lbu $a0, 1($s1) +/* 06BB08 7F036FD8 10400014 */ beqz $v0, .L7F03702C +/* 06BB0C 7F036FDC 00402825 */ move $a1, $v0 +/* 06BB10 7F036FE0 8C440010 */ lw $a0, 0x10($v0) +/* 06BB14 7F036FE4 50800012 */ beql $a0, $zero, .L7F037030 +/* 06BB18 7F036FE8 26520002 */ addiu $s2, $s2, 2 +/* 06BB1C 7F036FEC 90830000 */ lbu $v1, ($a0) +/* 06BB20 7F036FF0 24010002 */ li $at, 2 +/* 06BB24 7F036FF4 54610007 */ bnel $v1, $at, .L7F037014 +/* 06BB28 7F036FF8 24010001 */ li $at, 1 +/* 06BB2C 7F036FFC 0FC15667 */ jal sub_GAME_7F05599C +/* 06BB30 7F037000 8C440010 */ lw $a0, 0x10($v0) +/* 06BB34 7F037004 26520002 */ addiu $s2, $s2, 2 +/* 06BB38 7F037008 1000F960 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BB3C 7F03700C 26310002 */ addiu $s1, $s1, 2 +/* 06BB40 7F037010 24010001 */ li $at, 1 +.L7F037014: +/* 06BB44 7F037014 10610003 */ beq $v1, $at, .L7F037024 +/* 06BB48 7F037018 24010004 */ li $at, 4 +/* 06BB4C 7F03701C 54610004 */ bnel $v1, $at, .L7F037030 +/* 06BB50 7F037020 26520002 */ addiu $s2, $s2, 2 +.L7F037024: +/* 06BB54 7F037024 0FC13C5C */ jal sub_GAME_7F04F170 +/* 06BB58 7F037028 8CA40010 */ lw $a0, 0x10($a1) +.L7F03702C: +/* 06BB5C 7F03702C 26520002 */ addiu $s2, $s2, 2 +.L7F037030: +/* 06BB60 7F037030 1000F956 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BB64 7F037034 26310002 */ addiu $s1, $s1, 2 +action5F_16_Object_Explodes_2: +/* 06BB68 7F037038 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BB6C 7F03703C 92240001 */ lbu $a0, 1($s1) +/* 06BB70 7F037040 10400019 */ beqz $v0, .L7F0370A8 +/* 06BB74 7F037044 00408025 */ move $s0, $v0 +/* 06BB78 7F037048 8C490010 */ lw $t1, 0x10($v0) +/* 06BB7C 7F03704C 51200017 */ beql $t1, $zero, .L7F0370AC +/* 06BB80 7F037050 26520002 */ addiu $s2, $s2, 2 +/* 06BB84 7F037054 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 06BB88 7F037058 00402025 */ move $a0, $v0 +/* 06BB8C 7F03705C 54400013 */ bnezl $v0, .L7F0370AC +/* 06BB90 7F037060 26520002 */ addiu $s2, $s2, 2 +/* 06BB94 7F037064 C6080074 */ lwc1 $f8, 0x74($s0) +/* 06BB98 7F037068 C60A0070 */ lwc1 $f10, 0x70($s0) +/* 06BB9C 7F03706C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 06BBA0 7F037070 44819000 */ mtc1 $at, $f18 +/* 06BBA4 7F037074 460A4401 */ sub.s $f16, $f8, $f10 +/* 06BBA8 7F037078 3C01437A */ li $at, 0x437A0000 # 250.000000 +/* 06BBAC 7F03707C 44813000 */ mtc1 $at, $f6 +/* 06BBB0 7F037080 240AFFFF */ li $t2, -1 +/* 06BBB4 7F037084 46128100 */ add.s $f4, $f16, $f18 +/* 06BBB8 7F037088 AFAA0010 */ sw $t2, 0x10($sp) +/* 06BBBC 7F03708C 02002025 */ move $a0, $s0 +/* 06BBC0 7F037090 26060058 */ addiu $a2, $s0, 0x58 +/* 06BBC4 7F037094 46062003 */ div.s $f0, $f4, $f6 +/* 06BBC8 7F037098 2407001D */ li $a3, 29 +/* 06BBCC 7F03709C 44050000 */ mfc1 $a1, $f0 +/* 06BBD0 7F0370A0 0FC13842 */ jal maybe_detonate_object +/* 06BBD4 7F0370A4 00000000 */ nop +.L7F0370A8: +/* 06BBD8 7F0370A8 26520002 */ addiu $s2, $s2, 2 +.L7F0370AC: +/* 06BBDC 7F0370AC 1000F937 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BBE0 7F0370B0 26310002 */ addiu $s1, $s1, 2 +action60_Guard_Drops_16_Object_num_2: +/* 06BBE4 7F0370B4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BBE8 7F0370B8 92240001 */ lbu $a0, 1($s1) +/* 06BBEC 7F0370BC 10400013 */ beqz $v0, .L7F03710C +/* 06BBF0 7F0370C0 00403025 */ move $a2, $v0 +/* 06BBF4 7F0370C4 8C440010 */ lw $a0, 0x10($v0) +/* 06BBF8 7F0370C8 50800011 */ beql $a0, $zero, .L7F037110 +/* 06BBFC 7F0370CC 26520002 */ addiu $s2, $s2, 2 +/* 06BC00 7F0370D0 8C83001C */ lw $v1, 0x1c($a0) +/* 06BC04 7F0370D4 5060000E */ beql $v1, $zero, .L7F037110 +/* 06BC08 7F0370D8 26520002 */ addiu $s2, $s2, 2 +/* 06BC0C 7F0370DC 906B0000 */ lbu $t3, ($v1) +/* 06BC10 7F0370E0 24010003 */ li $at, 3 +/* 06BC14 7F0370E4 5561000A */ bnel $t3, $at, .L7F037110 +/* 06BC18 7F0370E8 26520002 */ addiu $s2, $s2, 2 +/* 06BC1C 7F0370EC 8C440010 */ lw $a0, 0x10($v0) +/* 06BC20 7F0370F0 24050002 */ li $a1, 2 +/* 06BC24 7F0370F4 8C8C001C */ lw $t4, 0x1c($a0) +/* 06BC28 7F0370F8 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 06BC2C 7F0370FC 8D900004 */ lw $s0, 4($t4) +/* 06BC30 7F037100 96190012 */ lhu $t9, 0x12($s0) +/* 06BC34 7F037104 372D0001 */ ori $t5, $t9, 1 +/* 06BC38 7F037108 A60D0012 */ sh $t5, 0x12($s0) +.L7F03710C: +/* 06BC3C 7F03710C 26520002 */ addiu $s2, $s2, 2 +.L7F037110: +/* 06BC40 7F037110 1000F91E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BC44 7F037114 26310002 */ addiu $s1, $s1, 2 +action61_Kill_Guard_num_2: +/* 06BC48 7F037118 02E02025 */ move $a0, $s7 +/* 06BC4C 7F03711C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06BC50 7F037120 92250001 */ lbu $a1, 1($s1) +/* 06BC54 7F037124 10400006 */ beqz $v0, .L7F037140 +/* 06BC58 7F037128 00402025 */ move $a0, $v0 +/* 06BC5C 7F03712C 8C4E0018 */ lw $t6, 0x18($v0) +/* 06BC60 7F037130 51C00004 */ beql $t6, $zero, .L7F037144 +/* 06BC64 7F037134 26520002 */ addiu $s2, $s2, 2 +/* 06BC68 7F037138 0FC086C8 */ jal sub_GAME_7F021B20 +/* 06BC6C 7F03713C 00000000 */ nop +.L7F037140: +/* 06BC70 7F037140 26520002 */ addiu $s2, $s2, 2 +.L7F037144: +/* 06BC74 7F037144 1000F911 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BC78 7F037148 26310002 */ addiu $s1, $s1, 2 +action62_Guard_num_Throws_Equipment_2: +/* 06BC7C 7F03714C 02E02025 */ move $a0, $s7 +/* 06BC80 7F037150 0FC0CC10 */ jal get_handle_for_guard_id +/* 06BC84 7F037154 92250001 */ lbu $a1, 1($s1) +/* 06BC88 7F037158 10400015 */ beqz $v0, .L7F0371B0 +/* 06BC8C 7F03715C 00408025 */ move $s0, $v0 +/* 06BC90 7F037160 8C4F0018 */ lw $t7, 0x18($v0) +/* 06BC94 7F037164 51E00013 */ beql $t7, $zero, .L7F0371B4 +/* 06BC98 7F037168 26520002 */ addiu $s2, $s2, 2 +/* 06BC9C 7F03716C 8C580160 */ lw $t8, 0x160($v0) +/* 06BCA0 7F037170 24050001 */ li $a1, 1 +/* 06BCA4 7F037174 53000007 */ beql $t8, $zero, .L7F037194 +/* 06BCA8 7F037178 8E040164 */ lw $a0, 0x164($s0) +/* 06BCAC 7F03717C 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 06BCB0 7F037180 8C440160 */ lw $a0, 0x160($v0) +/* 06BCB4 7F037184 96090012 */ lhu $t1, 0x12($s0) +/* 06BCB8 7F037188 352A0001 */ ori $t2, $t1, 1 +/* 06BCBC 7F03718C A60A0012 */ sh $t2, 0x12($s0) +/* 06BCC0 7F037190 8E040164 */ lw $a0, 0x164($s0) +.L7F037194: +/* 06BCC4 7F037194 50800007 */ beql $a0, $zero, .L7F0371B4 +/* 06BCC8 7F037198 26520002 */ addiu $s2, $s2, 2 +/* 06BCCC 7F03719C 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 06BCD0 7F0371A0 24050001 */ li $a1, 1 +/* 06BCD4 7F0371A4 960B0012 */ lhu $t3, 0x12($s0) +/* 06BCD8 7F0371A8 356C0001 */ ori $t4, $t3, 1 +/* 06BCDC 7F0371AC A60C0012 */ sh $t4, 0x12($s0) +.L7F0371B0: +/* 06BCE0 7F0371B0 26520002 */ addiu $s2, $s2, 2 +.L7F0371B4: +/* 06BCE4 7F0371B4 1000F8F5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BCE8 7F0371B8 26310002 */ addiu $s1, $s1, 2 +action63_Guard_Gives_Bond_16_Object_num_2: +/* 06BCEC 7F0371BC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BCF0 7F0371C0 92240001 */ lbu $a0, 1($s1) +/* 06BCF4 7F0371C4 1040000A */ beqz $v0, .L7F0371F0 +/* 06BCF8 7F0371C8 00408025 */ move $s0, $v0 +/* 06BCFC 7F0371CC 8C590010 */ lw $t9, 0x10($v0) +/* 06BD00 7F0371D0 00002825 */ move $a1, $zero +/* 06BD04 7F0371D4 53200007 */ beql $t9, $zero, .L7F0371F4 +/* 06BD08 7F0371D8 26520002 */ addiu $s2, $s2, 2 +/* 06BD0C 7F0371DC 0FC14094 */ jal collect_or_interact_object +/* 06BD10 7F0371E0 8C440010 */ lw $a0, 0x10($v0) +/* 06BD14 7F0371E4 8E040010 */ lw $a0, 0x10($s0) +/* 06BD18 7F0371E8 0FC0F0AF */ jal sub_GAME_7F03C2BC +/* 06BD1C 7F0371EC 00402825 */ move $a1, $v0 +.L7F0371F0: +/* 06BD20 7F0371F0 26520002 */ addiu $s2, $s2, 2 +.L7F0371F4: +/* 06BD24 7F0371F4 1000F8E5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BD28 7F0371F8 26310002 */ addiu $s1, $s1, 2 +action64_Type_16_Object_Equipped_On_Guard_3: +/* 06BD2C 7F0371FC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BD30 7F037200 92240001 */ lbu $a0, 1($s1) +/* 06BD34 7F037204 00408025 */ move $s0, $v0 +/* 06BD38 7F037208 02E02025 */ move $a0, $s7 +/* 06BD3C 7F03720C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06BD40 7F037210 92250002 */ lbu $a1, 2($s1) +/* 06BD44 7F037214 1200001F */ beqz $s0, .L7F037294 +/* 06BD48 7F037218 00409825 */ move $s3, $v0 +/* 06BD4C 7F03721C 8E040010 */ lw $a0, 0x10($s0) +/* 06BD50 7F037220 5080001D */ beql $a0, $zero, .L7F037298 +/* 06BD54 7F037224 26520003 */ addiu $s2, $s2, 3 +/* 06BD58 7F037228 5040001B */ beql $v0, $zero, .L7F037298 +/* 06BD5C 7F03722C 26520003 */ addiu $s2, $s2, 3 +/* 06BD60 7F037230 8C8D001C */ lw $t5, 0x1c($a0) +/* 06BD64 7F037234 11A00005 */ beqz $t5, .L7F03724C +/* 06BD68 7F037238 00000000 */ nop +/* 06BD6C 7F03723C 0FC13011 */ jal sub_GAME_7F04C044 +/* 06BD70 7F037240 00000000 */ nop +/* 06BD74 7F037244 10000008 */ b .L7F037268 +/* 06BD78 7F037248 920E0003 */ lbu $t6, 3($s0) +.L7F03724C: +/* 06BD7C 7F03724C 0FC0F863 */ jal sub_GAME_7F03E18C +/* 06BD80 7F037250 00000000 */ nop +/* 06BD84 7F037254 0FC0E94E */ jal sub_GAME_7F03A538 +/* 06BD88 7F037258 8E040010 */ lw $a0, 0x10($s0) +/* 06BD8C 7F03725C 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 06BD90 7F037260 8E040010 */ lw $a0, 0x10($s0) +/* 06BD94 7F037264 920E0003 */ lbu $t6, 3($s0) +.L7F037268: +/* 06BD98 7F037268 24010008 */ li $at, 8 +/* 06BD9C 7F03726C 02002025 */ move $a0, $s0 +/* 06BDA0 7F037270 55C10006 */ bnel $t6, $at, .L7F03728C +/* 06BDA4 7F037274 8E040010 */ lw $a0, 0x10($s0) +/* 06BDA8 7F037278 0FC14787 */ jal sub_GAME_7F051E1C +/* 06BDAC 7F03727C 02602825 */ move $a1, $s3 +/* 06BDB0 7F037280 54400005 */ bnezl $v0, .L7F037298 +/* 06BDB4 7F037284 26520003 */ addiu $s2, $s2, 3 +/* 06BDB8 7F037288 8E040010 */ lw $a0, 0x10($s0) +.L7F03728C: +/* 06BDBC 7F03728C 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 06BDC0 7F037290 8E650018 */ lw $a1, 0x18($s3) +.L7F037294: +/* 06BDC4 7F037294 26520003 */ addiu $s2, $s2, 3 +.L7F037298: +/* 06BDC8 7F037298 1000F8BC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BDCC 7F03729C 26310003 */ addiu $s1, $s1, 3 +action65_Object_Moved_To_Preset_4: +/* 06BDD0 7F0372A0 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BDD4 7F0372A4 92240001 */ lbu $a0, 1($s1) +/* 06BDD8 7F0372A8 AFA20500 */ sw $v0, 0x500($sp) +/* 06BDDC 7F0372AC 922F0002 */ lbu $t7, 2($s1) +/* 06BDE0 7F0372B0 92290003 */ lbu $t1, 3($s1) +/* 06BDE4 7F0372B4 000FC200 */ sll $t8, $t7, 8 +/* 06BDE8 7F0372B8 03091825 */ or $v1, $t8, $t1 +/* 06BDEC 7F0372BC 1040003C */ beqz $v0, .L7F0373B0 +/* 06BDF0 7F0372C0 306AFFFF */ andi $t2, $v1, 0xffff +/* 06BDF4 7F0372C4 8C4B0010 */ lw $t3, 0x10($v0) +/* 06BDF8 7F0372C8 00409825 */ move $s3, $v0 +/* 06BDFC 7F0372CC 29412710 */ slti $at, $t2, 0x2710 +/* 06BE00 7F0372D0 51600038 */ beql $t3, $zero, .L7F0373B4 +/* 06BE04 7F0372D4 26520004 */ addiu $s2, $s2, 4 +/* 06BE08 7F0372D8 1020000A */ beqz $at, .L7F037304 +/* 06BE0C 7F0372DC 01401025 */ move $v0, $t2 +/* 06BE10 7F0372E0 000A6080 */ sll $t4, $t2, 2 +/* 06BE14 7F0372E4 018A6023 */ subu $t4, $t4, $t2 +/* 06BE18 7F0372E8 000C6080 */ sll $t4, $t4, 2 +/* 06BE1C 7F0372EC 3C198007 */ lui $t9, %hi(ptr_0xxxpresets) +/* 06BE20 7F0372F0 8F395D18 */ lw $t9, %lo(ptr_0xxxpresets)($t9) +/* 06BE24 7F0372F4 018A6023 */ subu $t4, $t4, $t2 +/* 06BE28 7F0372F8 000C6080 */ sll $t4, $t4, 2 +/* 06BE2C 7F0372FC 1000000A */ b .L7F037328 +/* 06BE30 7F037300 01998021 */ addu $s0, $t4, $t9 +.L7F037304: +/* 06BE34 7F037304 3C0E8007 */ lui $t6, %hi(ptr_2xxxpresets) +/* 06BE38 7F037308 8DCE5D1C */ lw $t6, %lo(ptr_2xxxpresets)($t6) +/* 06BE3C 7F03730C 00026900 */ sll $t5, $v0, 4 +/* 06BE40 7F037310 01A26821 */ addu $t5, $t5, $v0 +/* 06BE44 7F037314 000D6880 */ sll $t5, $t5, 2 +/* 06BE48 7F037318 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06BE4C 7F03731C 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06BE50 7F037320 01AE8021 */ addu $s0, $t5, $t6 +/* 06BE54 7F037324 02018021 */ addu $s0, $s0, $at +.L7F037328: +/* 06BE58 7F037328 C6080018 */ lwc1 $f8, 0x18($s0) +/* 06BE5C 7F03732C 4405A000 */ mfc1 $a1, $f20 +/* 06BE60 7F037330 4406A000 */ mfc1 $a2, $f20 +/* 06BE64 7F037334 46004287 */ neg.s $f10, $f8 +/* 06BE68 7F037338 4407A000 */ mfc1 $a3, $f20 +/* 06BE6C 7F03733C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 06BE70 7F037340 C610001C */ lwc1 $f16, 0x1c($s0) +/* 06BE74 7F037344 27A404B8 */ addiu $a0, $sp, 0x4b8 +/* 06BE78 7F037348 46008487 */ neg.s $f18, $f16 +/* 06BE7C 7F03734C E7B20014 */ swc1 $f18, 0x14($sp) +/* 06BE80 7F037350 C6040020 */ lwc1 $f4, 0x20($s0) +/* 06BE84 7F037354 46002187 */ neg.s $f6, $f4 +/* 06BE88 7F037358 E7A60018 */ swc1 $f6, 0x18($sp) +/* 06BE8C 7F03735C C608000C */ lwc1 $f8, 0xc($s0) +/* 06BE90 7F037360 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 06BE94 7F037364 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 06BE98 7F037368 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 06BE9C 7F03736C C6100014 */ lwc1 $f16, 0x14($s0) +/* 06BEA0 7F037370 0FC16642 */ jal sub_GAME_7F059908 +/* 06BEA4 7F037374 E7B00024 */ swc1 $f16, 0x24($sp) +/* 06BEA8 7F037378 8E620014 */ lw $v0, 0x14($s3) +/* 06BEAC 7F03737C 27A504B8 */ addiu $a1, $sp, 0x4b8 +/* 06BEB0 7F037380 50400004 */ beql $v0, $zero, .L7F037394 +/* 06BEB4 7F037384 8E070028 */ lw $a3, 0x28($s0) +/* 06BEB8 7F037388 0FC1629F */ jal matrix_scalar_multiply +/* 06BEBC 7F03738C C44C0014 */ lwc1 $f12, 0x14($v0) +/* 06BEC0 7F037390 8E070028 */ lw $a3, 0x28($s0) +.L7F037394: +/* 06BEC4 7F037394 AFB00010 */ sw $s0, 0x10($sp) +/* 06BEC8 7F037398 02602025 */ move $a0, $s3 +/* 06BECC 7F03739C 02002825 */ move $a1, $s0 +/* 06BED0 7F0373A0 0FC10223 */ jal sub_GAME_7F04088C +/* 06BED4 7F0373A4 27A604B8 */ addiu $a2, $sp, 0x4b8 +/* 06BED8 7F0373A8 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 06BEDC 7F0373AC 02602025 */ move $a0, $s3 +.L7F0373B0: +/* 06BEE0 7F0373B0 26520004 */ addiu $s2, $s2, 4 +.L7F0373B4: +/* 06BEE4 7F0373B4 1000F875 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BEE8 7F0373B8 26310004 */ addiu $s1, $s1, 4 +action66_Open_Door_2: +/* 06BEEC 7F0373BC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BEF0 7F0373C0 92240001 */ lbu $a0, 1($s1) +/* 06BEF4 7F0373C4 1040000B */ beqz $v0, .L7F0373F4 +/* 06BEF8 7F0373C8 00403025 */ move $a2, $v0 +/* 06BEFC 7F0373CC 8C440010 */ lw $a0, 0x10($v0) +/* 06BF00 7F0373D0 50800009 */ beql $a0, $zero, .L7F0373F8 +/* 06BF04 7F0373D4 26520002 */ addiu $s2, $s2, 2 +/* 06BF08 7F0373D8 908F0000 */ lbu $t7, ($a0) +/* 06BF0C 7F0373DC 24010002 */ li $at, 2 +/* 06BF10 7F0373E0 00402025 */ move $a0, $v0 +/* 06BF14 7F0373E4 55E10004 */ bnel $t7, $at, .L7F0373F8 +/* 06BF18 7F0373E8 26520002 */ addiu $s2, $s2, 2 +/* 06BF1C 7F0373EC 0FC15262 */ jal set_door_state +/* 06BF20 7F0373F0 24050001 */ li $a1, 1 +.L7F0373F4: +/* 06BF24 7F0373F4 26520002 */ addiu $s2, $s2, 2 +.L7F0373F8: +/* 06BF28 7F0373F8 1000F864 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BF2C 7F0373FC 26310002 */ addiu $s1, $s1, 2 +action67_Close_Door_2: +/* 06BF30 7F037400 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BF34 7F037404 92240001 */ lbu $a0, 1($s1) +/* 06BF38 7F037408 1040000B */ beqz $v0, .L7F037438 +/* 06BF3C 7F03740C 00403025 */ move $a2, $v0 +/* 06BF40 7F037410 8C440010 */ lw $a0, 0x10($v0) +/* 06BF44 7F037414 50800009 */ beql $a0, $zero, .L7F03743C +/* 06BF48 7F037418 26520002 */ addiu $s2, $s2, 2 +/* 06BF4C 7F03741C 90980000 */ lbu $t8, ($a0) +/* 06BF50 7F037420 24010002 */ li $at, 2 +/* 06BF54 7F037424 00402025 */ move $a0, $v0 +/* 06BF58 7F037428 57010004 */ bnel $t8, $at, .L7F03743C +/* 06BF5C 7F03742C 26520002 */ addiu $s2, $s2, 2 +/* 06BF60 7F037430 0FC15262 */ jal set_door_state +/* 06BF64 7F037434 24050002 */ li $a1, 2 +.L7F037438: +/* 06BF68 7F037438 26520002 */ addiu $s2, $s2, 2 +.L7F03743C: +/* 06BF6C 7F03743C 1000F853 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BF70 7F037440 26310002 */ addiu $s1, $s1, 2 +action68_Check_Door_Status_RVL_If_Met_4: +/* 06BF74 7F037444 92240001 */ lbu $a0, 1($s1) +/* 06BF78 7F037448 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BF7C 7F03744C 00008025 */ move $s0, $zero +/* 06BF80 7F037450 10400027 */ beqz $v0, .L7F0374F0 +/* 06BF84 7F037454 02C02025 */ move $a0, $s6 +/* 06BF88 7F037458 8C490010 */ lw $t1, 0x10($v0) +/* 06BF8C 7F03745C 11200024 */ beqz $t1, .L7F0374F0 +/* 06BF90 7F037460 00000000 */ nop +/* 06BF94 7F037464 904A0003 */ lbu $t2, 3($v0) +/* 06BF98 7F037468 24010001 */ li $at, 1 +/* 06BF9C 7F03746C 15410020 */ bne $t2, $at, .L7F0374F0 +/* 06BFA0 7F037470 00000000 */ nop +/* 06BFA4 7F037474 804300BC */ lb $v1, 0xbc($v0) +/* 06BFA8 7F037478 24010001 */ li $at, 1 +/* 06BFAC 7F03747C 1460000E */ bnez $v1, .L7F0374B8 +/* 06BFB0 7F037480 00000000 */ nop +/* 06BFB4 7F037484 C45200B4 */ lwc1 $f18, 0xb4($v0) +/* 06BFB8 7F037488 4614903E */ c.le.s $f18, $f20 +/* 06BFBC 7F03748C 00000000 */ nop +/* 06BFC0 7F037490 45020006 */ bc1fl .L7F0374AC +/* 06BFC4 7F037494 92300002 */ lbu $s0, 2($s1) +/* 06BFC8 7F037498 92300002 */ lbu $s0, 2($s1) +/* 06BFCC 7F03749C 320B0001 */ andi $t3, $s0, 1 +/* 06BFD0 7F0374A0 10000013 */ b .L7F0374F0 +/* 06BFD4 7F0374A4 000B802B */ sltu $s0, $zero, $t3 +/* 06BFD8 7F0374A8 92300002 */ lbu $s0, 2($s1) +.L7F0374AC: +/* 06BFDC 7F0374AC 32190002 */ andi $t9, $s0, 2 +/* 06BFE0 7F0374B0 1000000F */ b .L7F0374F0 +/* 06BFE4 7F0374B4 0019802B */ sltu $s0, $zero, $t9 +.L7F0374B8: +/* 06BFE8 7F0374B8 10610003 */ beq $v1, $at, .L7F0374C8 +/* 06BFEC 7F0374BC 24010003 */ li $at, 3 +/* 06BFF0 7F0374C0 54610006 */ bnel $v1, $at, .L7F0374DC +/* 06BFF4 7F0374C4 24010002 */ li $at, 2 +.L7F0374C8: +/* 06BFF8 7F0374C8 92300002 */ lbu $s0, 2($s1) +/* 06BFFC 7F0374CC 320E0008 */ andi $t6, $s0, 8 +/* 06C000 7F0374D0 10000007 */ b .L7F0374F0 +/* 06C004 7F0374D4 000E802B */ sltu $s0, $zero, $t6 +/* 06C008 7F0374D8 24010002 */ li $at, 2 +.L7F0374DC: +/* 06C00C 7F0374DC 14610004 */ bne $v1, $at, .L7F0374F0 +/* 06C010 7F0374E0 00000000 */ nop +/* 06C014 7F0374E4 92300002 */ lbu $s0, 2($s1) +/* 06C018 7F0374E8 32180004 */ andi $t8, $s0, 4 +/* 06C01C 7F0374EC 0018802B */ sltu $s0, $zero, $t8 +.L7F0374F0: +/* 06C020 7F0374F0 12000006 */ beqz $s0, .L7F03750C +/* 06C024 7F0374F4 02402825 */ move $a1, $s2 +/* 06C028 7F0374F8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C02C 7F0374FC 92260003 */ lbu $a2, 3($s1) +/* 06C030 7F037500 00409025 */ move $s2, $v0 +/* 06C034 7F037504 1000F821 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C038 7F037508 02C28821 */ addu $s1, $s6, $v0 +.L7F03750C: +/* 06C03C 7F03750C 26520004 */ addiu $s2, $s2, 4 +/* 06C040 7F037510 1000F81E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C044 7F037514 26310004 */ addiu $s1, $s1, 4 +action69_If_16_Object_Is_Valid_Door_RVL_3: +/* 06C048 7F037518 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C04C 7F03751C 92240001 */ lbu $a0, 1($s1) +/* 06C050 7F037520 50400014 */ beql $v0, $zero, .L7F037574 +/* 06C054 7F037524 26520003 */ addiu $s2, $s2, 3 +/* 06C058 7F037528 8C4A0010 */ lw $t2, 0x10($v0) +/* 06C05C 7F03752C 51400011 */ beql $t2, $zero, .L7F037574 +/* 06C060 7F037530 26520003 */ addiu $s2, $s2, 3 +/* 06C064 7F037534 904B0003 */ lbu $t3, 3($v0) +/* 06C068 7F037538 24010001 */ li $at, 1 +/* 06C06C 7F03753C 5561000D */ bnel $t3, $at, .L7F037574 +/* 06C070 7F037540 26520003 */ addiu $s2, $s2, 3 +/* 06C074 7F037544 8C4C0064 */ lw $t4, 0x64($v0) +/* 06C078 7F037548 02C02025 */ move $a0, $s6 +/* 06C07C 7F03754C 02402825 */ move $a1, $s2 +/* 06C080 7F037550 31990200 */ andi $t9, $t4, 0x200 +/* 06C084 7F037554 53200007 */ beql $t9, $zero, .L7F037574 +/* 06C088 7F037558 26520003 */ addiu $s2, $s2, 3 +/* 06C08C 7F03755C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C090 7F037560 92260002 */ lbu $a2, 2($s1) +/* 06C094 7F037564 00409025 */ move $s2, $v0 +/* 06C098 7F037568 1000F808 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C09C 7F03756C 02C28821 */ addu $s1, $s6, $v0 +/* 06C0A0 7F037570 26520003 */ addiu $s2, $s2, 3 +.L7F037574: +/* 06C0A4 7F037574 1000F805 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C0A8 7F037578 26310003 */ addiu $s1, $s1, 3 +action6A_Set_Bits_To_Lock_On_Type_16_Door_3: +/* 06C0AC 7F03757C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C0B0 7F037580 92240001 */ lbu $a0, 1($s1) +/* 06C0B4 7F037584 1040000C */ beqz $v0, .L7F0375B8 +/* 06C0B8 7F037588 26520003 */ addiu $s2, $s2, 3 +/* 06C0BC 7F03758C 8C440010 */ lw $a0, 0x10($v0) +/* 06C0C0 7F037590 10800009 */ beqz $a0, .L7F0375B8 +/* 06C0C4 7F037594 00000000 */ nop +/* 06C0C8 7F037598 908D0000 */ lbu $t5, ($a0) +/* 06C0CC 7F03759C 24010002 */ li $at, 2 +/* 06C0D0 7F0375A0 15A10005 */ bne $t5, $at, .L7F0375B8 +/* 06C0D4 7F0375A4 00000000 */ nop +/* 06C0D8 7F0375A8 92230002 */ lbu $v1, 2($s1) +/* 06C0DC 7F0375AC 8C4E009C */ lw $t6, 0x9c($v0) +/* 06C0E0 7F0375B0 01C37825 */ or $t7, $t6, $v1 +/* 06C0E4 7F0375B4 AC4F009C */ sw $t7, 0x9c($v0) +.L7F0375B8: +/* 06C0E8 7F0375B8 1000F7F4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C0EC 7F0375BC 26310003 */ addiu $s1, $s1, 3 +action6B_Unset_Bits_To_Lock_On_Type_16_Door_3: +/* 06C0F0 7F0375C0 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C0F4 7F0375C4 92240001 */ lbu $a0, 1($s1) +/* 06C0F8 7F0375C8 1040000D */ beqz $v0, .L7F037600 +/* 06C0FC 7F0375CC 26520003 */ addiu $s2, $s2, 3 +/* 06C100 7F0375D0 8C440010 */ lw $a0, 0x10($v0) +/* 06C104 7F0375D4 1080000A */ beqz $a0, .L7F037600 +/* 06C108 7F0375D8 00000000 */ nop +/* 06C10C 7F0375DC 90980000 */ lbu $t8, ($a0) +/* 06C110 7F0375E0 24010002 */ li $at, 2 +/* 06C114 7F0375E4 17010006 */ bne $t8, $at, .L7F037600 +/* 06C118 7F0375E8 00000000 */ nop +/* 06C11C 7F0375EC 92230002 */ lbu $v1, 2($s1) +/* 06C120 7F0375F0 8C49009C */ lw $t1, 0x9c($v0) +/* 06C124 7F0375F4 00605027 */ not $t2, $v1 +/* 06C128 7F0375F8 012A5824 */ and $t3, $t1, $t2 +/* 06C12C 7F0375FC AC4B009C */ sw $t3, 0x9c($v0) +.L7F037600: +/* 06C130 7F037600 1000F7E2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C134 7F037604 26310003 */ addiu $s1, $s1, 3 +action6C_If_Tagged_Locked_Door_16_Objects_Toggled_RVL_4: +/* 06C138 7F037608 92240001 */ lbu $a0, 1($s1) +/* 06C13C 7F03760C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C140 7F037610 00008025 */ move $s0, $zero +/* 06C144 7F037614 1040000E */ beqz $v0, .L7F037650 +/* 06C148 7F037618 02402825 */ move $a1, $s2 +/* 06C14C 7F03761C 8C440010 */ lw $a0, 0x10($v0) +/* 06C150 7F037620 1080000B */ beqz $a0, .L7F037650 +/* 06C154 7F037624 00000000 */ nop +/* 06C158 7F037628 908C0000 */ lbu $t4, ($a0) +/* 06C15C 7F03762C 24010002 */ li $at, 2 +/* 06C160 7F037630 15810007 */ bne $t4, $at, .L7F037650 +/* 06C164 7F037634 00000000 */ nop +/* 06C168 7F037638 92230002 */ lbu $v1, 2($s1) +/* 06C16C 7F03763C 8C59009C */ lw $t9, 0x9c($v0) +/* 06C170 7F037640 03236824 */ and $t5, $t9, $v1 +/* 06C174 7F037644 146D0002 */ bne $v1, $t5, .L7F037650 +/* 06C178 7F037648 00000000 */ nop +/* 06C17C 7F03764C 24100001 */ li $s0, 1 +.L7F037650: +/* 06C180 7F037650 12000006 */ beqz $s0, .L7F03766C +/* 06C184 7F037654 02C02025 */ move $a0, $s6 +/* 06C188 7F037658 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C18C 7F03765C 92260003 */ lbu $a2, 3($s1) +/* 06C190 7F037660 00409025 */ move $s2, $v0 +/* 06C194 7F037664 1000F7C9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C198 7F037668 02C28821 */ addu $s1, $s6, $v0 +.L7F03766C: +/* 06C19C 7F03766C 26520004 */ addiu $s2, $s2, 4 +/* 06C1A0 7F037670 1000F7C6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C1A4 7F037674 26310004 */ addiu $s1, $s1, 4 +action6D_If_Objective_num_Complete_RVL_3: +/* 06C1A8 7F037678 0FC15C6A */ jal add_objective +/* 06C1AC 7F03767C 00000000 */ nop +/* 06C1B0 7F037680 92250001 */ lbu $a1, 1($s1) +/* 06C1B4 7F037684 00A2082A */ slt $at, $a1, $v0 +/* 06C1B8 7F037688 5020000D */ beql $at, $zero, .L7F0376C0 +/* 06C1BC 7F03768C 26520003 */ addiu $s2, $s2, 3 +/* 06C1C0 7F037690 0FC15C8E */ jal get_status_of_objective +/* 06C1C4 7F037694 00A02025 */ move $a0, $a1 +/* 06C1C8 7F037698 24010001 */ li $at, 1 +/* 06C1CC 7F03769C 14410007 */ bne $v0, $at, .L7F0376BC +/* 06C1D0 7F0376A0 02C02025 */ move $a0, $s6 +/* 06C1D4 7F0376A4 02402825 */ move $a1, $s2 +/* 06C1D8 7F0376A8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C1DC 7F0376AC 92260002 */ lbu $a2, 2($s1) +/* 06C1E0 7F0376B0 00409025 */ move $s2, $v0 +/* 06C1E4 7F0376B4 1000F7B5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C1E8 7F0376B8 02C28821 */ addu $s1, $s6, $v0 +.L7F0376BC: +/* 06C1EC 7F0376BC 26520003 */ addiu $s2, $s2, 3 +.L7F0376C0: +/* 06C1F0 7F0376C0 1000F7B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C1F4 7F0376C4 26310003 */ addiu $s1, $s1, 3 +action6E_If_Guard_2328_Preset_RVL_3: +/* 06C1F8 7F0376C8 02E02025 */ move $a0, $s7 +/* 06C1FC 7F0376CC 0FC0CE66 */ jal check_2328_preset_set_with_method +/* 06C200 7F0376D0 92250001 */ lbu $a1, 1($s1) +/* 06C204 7F0376D4 10400007 */ beqz $v0, .L7F0376F4 +/* 06C208 7F0376D8 02C02025 */ move $a0, $s6 +/* 06C20C 7F0376DC 02402825 */ move $a1, $s2 +/* 06C210 7F0376E0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C214 7F0376E4 92260002 */ lbu $a2, 2($s1) +/* 06C218 7F0376E8 00409025 */ move $s2, $v0 +/* 06C21C 7F0376EC 1000F7A7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C220 7F0376F0 02C28821 */ addu $s1, $s6, $v0 +.L7F0376F4: +/* 06C224 7F0376F4 26520003 */ addiu $s2, $s2, 3 +/* 06C228 7F0376F8 1000F7A4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C22C 7F0376FC 26310003 */ addiu $s1, $s1, 3 +action6F_If_Guard_2328_Preset_Set_RVL_3: +/* 06C230 7F037700 02E02025 */ move $a0, $s7 +/* 06C234 7F037704 0FC0CEAB */ jal sub_GAME_7F033AAC +/* 06C238 7F037708 92250001 */ lbu $a1, 1($s1) +/* 06C23C 7F03770C 10400007 */ beqz $v0, .L7F03772C +/* 06C240 7F037710 02C02025 */ move $a0, $s6 +/* 06C244 7F037714 02402825 */ move $a1, $s2 +/* 06C248 7F037718 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C24C 7F03771C 92260002 */ lbu $a2, 2($s1) +/* 06C250 7F037720 00409025 */ move $s2, $v0 +/* 06C254 7F037724 1000F799 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C258 7F037728 02C28821 */ addu $s1, $s6, $v0 +.L7F03772C: +/* 06C25C 7F03772C 26520003 */ addiu $s2, $s2, 3 +/* 06C260 7F037730 1000F796 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C264 7F037734 26310003 */ addiu $s1, $s1, 3 +action78_Go_To_RVL_If_Guard_Shot_LTV_3: +/* 06C268 7F037738 0FC0CD69 */ jal get_times_actor_shot +/* 06C26C 7F03773C 02E02025 */ move $a0, $s7 +/* 06C270 7F037740 922E0001 */ lbu $t6, 1($s1) +/* 06C274 7F037744 02C02025 */ move $a0, $s6 +/* 06C278 7F037748 02402825 */ move $a1, $s2 +/* 06C27C 7F03774C 004E082A */ slt $at, $v0, $t6 +/* 06C280 7F037750 50200007 */ beql $at, $zero, .L7F037770 +/* 06C284 7F037754 26520003 */ addiu $s2, $s2, 3 +/* 06C288 7F037758 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C28C 7F03775C 92260002 */ lbu $a2, 2($s1) +/* 06C290 7F037760 00409025 */ move $s2, $v0 +/* 06C294 7F037764 1000F789 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C298 7F037768 02C28821 */ addu $s1, $s6, $v0 +/* 06C29C 7F03776C 26520003 */ addiu $s2, $s2, 3 +.L7F037770: +/* 06C2A0 7F037770 1000F786 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C2A4 7F037774 26310003 */ addiu $s1, $s1, 3 +action79_Go_To_RVL_If_Guard_Shot_GTV_3: +/* 06C2A8 7F037778 0FC0CD69 */ jal get_times_actor_shot +/* 06C2AC 7F03777C 02E02025 */ move $a0, $s7 +/* 06C2B0 7F037780 922F0001 */ lbu $t7, 1($s1) +/* 06C2B4 7F037784 02C02025 */ move $a0, $s6 +/* 06C2B8 7F037788 02402825 */ move $a1, $s2 +/* 06C2BC 7F03778C 01E2082A */ slt $at, $t7, $v0 +/* 06C2C0 7F037790 50200007 */ beql $at, $zero, .L7F0377B0 +/* 06C2C4 7F037794 26520003 */ addiu $s2, $s2, 3 +/* 06C2C8 7F037798 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C2CC 7F03779C 92260002 */ lbu $a2, 2($s1) +/* 06C2D0 7F0377A0 00409025 */ move $s2, $v0 +/* 06C2D4 7F0377A4 1000F779 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C2D8 7F0377A8 02C28821 */ addu $s1, $s6, $v0 +/* 06C2DC 7F0377AC 26520003 */ addiu $s2, $s2, 3 +.L7F0377B0: +/* 06C2E0 7F0377B0 1000F776 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C2E4 7F0377B4 26310003 */ addiu $s1, $s1, 3 +action7A_Go_To_RVL_If_Number_Near_Miss_Gunshots_LTV_3: +/* 06C2E8 7F0377B8 0FC0CD6B */ jal get_num_shots_near_actor +/* 06C2EC 7F0377BC 02E02025 */ move $a0, $s7 +/* 06C2F0 7F0377C0 92380001 */ lbu $t8, 1($s1) +/* 06C2F4 7F0377C4 02C02025 */ move $a0, $s6 +/* 06C2F8 7F0377C8 02402825 */ move $a1, $s2 +/* 06C2FC 7F0377CC 0058082A */ slt $at, $v0, $t8 +/* 06C300 7F0377D0 50200007 */ beql $at, $zero, .L7F0377F0 +/* 06C304 7F0377D4 26520003 */ addiu $s2, $s2, 3 +/* 06C308 7F0377D8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C30C 7F0377DC 92260002 */ lbu $a2, 2($s1) +/* 06C310 7F0377E0 00409025 */ move $s2, $v0 +/* 06C314 7F0377E4 1000F769 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C318 7F0377E8 02C28821 */ addu $s1, $s6, $v0 +/* 06C31C 7F0377EC 26520003 */ addiu $s2, $s2, 3 +.L7F0377F0: +/* 06C320 7F0377F0 1000F766 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C324 7F0377F4 26310003 */ addiu $s1, $s1, 3 +action7B_Go_To_RVL_If_Number_Near_Miss_Gunshots_GTV_3: +/* 06C328 7F0377F8 0FC0CD6B */ jal get_num_shots_near_actor +/* 06C32C 7F0377FC 02E02025 */ move $a0, $s7 +/* 06C330 7F037800 92290001 */ lbu $t1, 1($s1) +/* 06C334 7F037804 02C02025 */ move $a0, $s6 +/* 06C338 7F037808 02402825 */ move $a1, $s2 +/* 06C33C 7F03780C 0122082A */ slt $at, $t1, $v0 +/* 06C340 7F037810 50200007 */ beql $at, $zero, .L7F037830 +/* 06C344 7F037814 26520003 */ addiu $s2, $s2, 3 +/* 06C348 7F037818 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C34C 7F03781C 92260002 */ lbu $a2, 2($s1) +/* 06C350 7F037820 00409025 */ move $s2, $v0 +/* 06C354 7F037824 1000F759 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C358 7F037828 02C28821 */ addu $s1, $s6, $v0 +/* 06C35C 7F03782C 26520003 */ addiu $s2, $s2, 3 +.L7F037830: +/* 06C360 7F037830 1000F756 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C364 7F037834 26310003 */ addiu $s1, $s1, 3 +action7C_If_Guard_Health_Below_Value_RVL_4: +/* 06C368 7F037838 922A0002 */ lbu $t2, 2($s1) +/* 06C36C 7F03783C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C370 7F037840 448A2000 */ mtc1 $t2, $f4 +/* 06C374 7F037844 05410004 */ bgez $t2, .L7F037858 +/* 06C378 7F037848 468021A0 */ cvt.s.w $f6, $f4 +/* 06C37C 7F03784C 44814000 */ mtc1 $at, $f8 +/* 06C380 7F037850 00000000 */ nop +/* 06C384 7F037854 46083180 */ add.s $f6, $f6, $f8 +.L7F037858: +/* 06C388 7F037858 3C018005 */ lui $at, %hi(D_800528EC) +/* 06C38C 7F03785C C42A28EC */ lwc1 $f10, %lo(D_800528EC)($at) +/* 06C390 7F037860 02E02025 */ move $a0, $s7 +/* 06C394 7F037864 460A3402 */ mul.s $f16, $f6, $f10 +/* 06C398 7F037868 E7B00438 */ swc1 $f16, 0x438($sp) +/* 06C39C 7F03786C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06C3A0 7F037870 92250001 */ lbu $a1, 1($s1) +/* 06C3A4 7F037874 50400011 */ beql $v0, $zero, .L7F0378BC +/* 06C3A8 7F037878 26520004 */ addiu $s2, $s2, 4 +/* 06C3AC 7F03787C C4520100 */ lwc1 $f18, 0x100($v0) +/* 06C3B0 7F037880 C44400FC */ lwc1 $f4, 0xfc($v0) +/* 06C3B4 7F037884 C7A60438 */ lwc1 $f6, 0x438($sp) +/* 06C3B8 7F037888 02C02025 */ move $a0, $s6 +/* 06C3BC 7F03788C 46049201 */ sub.s $f8, $f18, $f4 +/* 06C3C0 7F037890 02402825 */ move $a1, $s2 +/* 06C3C4 7F037894 4606403C */ c.lt.s $f8, $f6 +/* 06C3C8 7F037898 00000000 */ nop +/* 06C3CC 7F03789C 45020007 */ bc1fl .L7F0378BC +/* 06C3D0 7F0378A0 26520004 */ addiu $s2, $s2, 4 +/* 06C3D4 7F0378A4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C3D8 7F0378A8 92260003 */ lbu $a2, 3($s1) +/* 06C3DC 7F0378AC 00409025 */ move $s2, $v0 +/* 06C3E0 7F0378B0 1000F736 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C3E4 7F0378B4 02C28821 */ addu $s1, $s6, $v0 +/* 06C3E8 7F0378B8 26520004 */ addiu $s2, $s2, 4 +.L7F0378BC: +/* 06C3EC 7F0378BC 1000F733 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C3F0 7F0378C0 26310004 */ addiu $s1, $s1, 4 +action7D_If_Guard_Health_Above_Value_RVL_4: +/* 06C3F4 7F0378C4 922B0002 */ lbu $t3, 2($s1) +/* 06C3F8 7F0378C8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C3FC 7F0378CC 448B5000 */ mtc1 $t3, $f10 +/* 06C400 7F0378D0 05610004 */ bgez $t3, .L7F0378E4 +/* 06C404 7F0378D4 46805420 */ cvt.s.w $f16, $f10 +/* 06C408 7F0378D8 44819000 */ mtc1 $at, $f18 +/* 06C40C 7F0378DC 00000000 */ nop +/* 06C410 7F0378E0 46128400 */ add.s $f16, $f16, $f18 +.L7F0378E4: +/* 06C414 7F0378E4 3C018005 */ lui $at, %hi(D_800528F0) +/* 06C418 7F0378E8 C42428F0 */ lwc1 $f4, %lo(D_800528F0)($at) +/* 06C41C 7F0378EC 02E02025 */ move $a0, $s7 +/* 06C420 7F0378F0 46048202 */ mul.s $f8, $f16, $f4 +/* 06C424 7F0378F4 E7A8042C */ swc1 $f8, 0x42c($sp) +/* 06C428 7F0378F8 0FC0CC10 */ jal get_handle_for_guard_id +/* 06C42C 7F0378FC 92250001 */ lbu $a1, 1($s1) +/* 06C430 7F037900 50400011 */ beql $v0, $zero, .L7F037948 +/* 06C434 7F037904 26520004 */ addiu $s2, $s2, 4 +/* 06C438 7F037908 C44A0100 */ lwc1 $f10, 0x100($v0) +/* 06C43C 7F03790C C45200FC */ lwc1 $f18, 0xfc($v0) +/* 06C440 7F037910 C7A6042C */ lwc1 $f6, 0x42c($sp) +/* 06C444 7F037914 02C02025 */ move $a0, $s6 +/* 06C448 7F037918 46125401 */ sub.s $f16, $f10, $f18 +/* 06C44C 7F03791C 02402825 */ move $a1, $s2 +/* 06C450 7F037920 4610303C */ c.lt.s $f6, $f16 +/* 06C454 7F037924 00000000 */ nop +/* 06C458 7F037928 45020007 */ bc1fl .L7F037948 +/* 06C45C 7F03792C 26520004 */ addiu $s2, $s2, 4 +/* 06C460 7F037930 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C464 7F037934 92260003 */ lbu $a2, 3($s1) +/* 06C468 7F037938 00409025 */ move $s2, $v0 +/* 06C46C 7F03793C 1000F713 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C470 7F037940 02C28821 */ addu $s1, $s6, $v0 +/* 06C474 7F037944 26520004 */ addiu $s2, $s2, 4 +.L7F037948: +/* 06C478 7F037948 1000F710 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C47C 7F03794C 26310004 */ addiu $s1, $s1, 4 +action7E_If_Guard_nums_Bitflag_01000000_Set_RVL_3: +/* 06C480 7F037950 02E02025 */ move $a0, $s7 +/* 06C484 7F037954 0FC0CC10 */ jal get_handle_for_guard_id +/* 06C488 7F037958 92250001 */ lbu $a1, 1($s1) +/* 06C48C 7F03795C 50400011 */ beql $v0, $zero, .L7F0379A4 +/* 06C490 7F037960 26520003 */ addiu $s2, $s2, 3 +/* 06C494 7F037964 8C4C0014 */ lw $t4, 0x14($v0) +/* 06C498 7F037968 2401FEFF */ li $at, -257 +/* 06C49C 7F03796C 31990100 */ andi $t9, $t4, 0x100 +/* 06C4A0 7F037970 5320000C */ beql $t9, $zero, .L7F0379A4 +/* 06C4A4 7F037974 26520003 */ addiu $s2, $s2, 3 +/* 06C4A8 7F037978 8C4D0014 */ lw $t5, 0x14($v0) +/* 06C4AC 7F03797C 02C02025 */ move $a0, $s6 +/* 06C4B0 7F037980 02402825 */ move $a1, $s2 +/* 06C4B4 7F037984 01A17024 */ and $t6, $t5, $at +/* 06C4B8 7F037988 AC4E0014 */ sw $t6, 0x14($v0) +/* 06C4BC 7F03798C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C4C0 7F037990 92260002 */ lbu $a2, 2($s1) +/* 06C4C4 7F037994 00409025 */ move $s2, $v0 +/* 06C4C8 7F037998 1000F6FC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C4CC 7F03799C 02C28821 */ addu $s1, $s6, $v0 +/* 06C4D0 7F0379A0 26520003 */ addiu $s2, $s2, 3 +.L7F0379A4: +/* 06C4D4 7F0379A4 1000F6F9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C4D8 7F0379A8 26310003 */ addiu $s1, $s1, 3 +action7F_If_Health_Below_Value_RVL_3: +/* 06C4DC 7F0379AC 922F0001 */ lbu $t7, 1($s1) +/* 06C4E0 7F0379B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C4E4 7F0379B4 448F2000 */ mtc1 $t7, $f4 +/* 06C4E8 7F0379B8 05E10004 */ bgez $t7, .L7F0379CC +/* 06C4EC 7F0379BC 46802220 */ cvt.s.w $f8, $f4 +/* 06C4F0 7F0379C0 44815000 */ mtc1 $at, $f10 +/* 06C4F4 7F0379C4 00000000 */ nop +/* 06C4F8 7F0379C8 460A4200 */ add.s $f8, $f8, $f10 +.L7F0379CC: +/* 06C4FC 7F0379CC 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 06C500 7F0379D0 44819000 */ mtc1 $at, $f18 +/* 06C504 7F0379D4 00000000 */ nop +/* 06C508 7F0379D8 46124183 */ div.s $f6, $f8, $f18 +/* 06C50C 7F0379DC 0FC228BB */ jal get_BONDdata_watch_health +/* 06C510 7F0379E0 E7A60418 */ swc1 $f6, 0x418($sp) +/* 06C514 7F0379E4 C7B00418 */ lwc1 $f16, 0x418($sp) +/* 06C518 7F0379E8 02C02025 */ move $a0, $s6 +/* 06C51C 7F0379EC 02402825 */ move $a1, $s2 +/* 06C520 7F0379F0 4610003C */ c.lt.s $f0, $f16 +/* 06C524 7F0379F4 00000000 */ nop +/* 06C528 7F0379F8 45020007 */ bc1fl .L7F037A18 +/* 06C52C 7F0379FC 26520003 */ addiu $s2, $s2, 3 +/* 06C530 7F037A00 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C534 7F037A04 92260002 */ lbu $a2, 2($s1) +/* 06C538 7F037A08 00409025 */ move $s2, $v0 +/* 06C53C 7F037A0C 1000F6DF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C540 7F037A10 02C28821 */ addu $s1, $s6, $v0 +/* 06C544 7F037A14 26520003 */ addiu $s2, $s2, 3 +.L7F037A18: +/* 06C548 7F037A18 1000F6DC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C54C 7F037A1C 26310003 */ addiu $s1, $s1, 3 +action80_If_Health_Above_Value_RVL_3: +/* 06C550 7F037A20 92380001 */ lbu $t8, 1($s1) +/* 06C554 7F037A24 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C558 7F037A28 44982000 */ mtc1 $t8, $f4 +/* 06C55C 7F037A2C 07010004 */ bgez $t8, .L7F037A40 +/* 06C560 7F037A30 468022A0 */ cvt.s.w $f10, $f4 +/* 06C564 7F037A34 44814000 */ mtc1 $at, $f8 +/* 06C568 7F037A38 00000000 */ nop +/* 06C56C 7F037A3C 46085280 */ add.s $f10, $f10, $f8 +.L7F037A40: +/* 06C570 7F037A40 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 06C574 7F037A44 44819000 */ mtc1 $at, $f18 +/* 06C578 7F037A48 00000000 */ nop +/* 06C57C 7F037A4C 46125183 */ div.s $f6, $f10, $f18 +/* 06C580 7F037A50 0FC228BB */ jal get_BONDdata_watch_health +/* 06C584 7F037A54 E7A60410 */ swc1 $f6, 0x410($sp) +/* 06C588 7F037A58 C7B00410 */ lwc1 $f16, 0x410($sp) +/* 06C58C 7F037A5C 02C02025 */ move $a0, $s6 +/* 06C590 7F037A60 02402825 */ move $a1, $s2 +/* 06C594 7F037A64 4600803C */ c.lt.s $f16, $f0 +/* 06C598 7F037A68 00000000 */ nop +/* 06C59C 7F037A6C 45020007 */ bc1fl .L7F037A8C +/* 06C5A0 7F037A70 26520003 */ addiu $s2, $s2, 3 +/* 06C5A4 7F037A74 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C5A8 7F037A78 92260002 */ lbu $a2, 2($s1) +/* 06C5AC 7F037A7C 00409025 */ move $s2, $v0 +/* 06C5B0 7F037A80 1000F6C2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C5B4 7F037A84 02C28821 */ addu $s1, $s6, $v0 +/* 06C5B8 7F037A88 26520003 */ addiu $s2, $s2, 3 +.L7F037A8C: +/* 06C5BC 7F037A8C 1000F6BF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C5C0 7F037A90 26310003 */ addiu $s1, $s1, 3 +action70_Go_Into_RVL_Difficulty_LTV_3: +/* 06C5C4 7F037A94 0FC2FF04 */ jal get_current_difficulty +/* 06C5C8 7F037A98 00000000 */ nop +/* 06C5CC 7F037A9C 92290001 */ lbu $t1, 1($s1) +/* 06C5D0 7F037AA0 02C02025 */ move $a0, $s6 +/* 06C5D4 7F037AA4 02402825 */ move $a1, $s2 +/* 06C5D8 7F037AA8 0049082A */ slt $at, $v0, $t1 +/* 06C5DC 7F037AAC 50200007 */ beql $at, $zero, .L7F037ACC +/* 06C5E0 7F037AB0 26520003 */ addiu $s2, $s2, 3 +/* 06C5E4 7F037AB4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C5E8 7F037AB8 92260002 */ lbu $a2, 2($s1) +/* 06C5EC 7F037ABC 00409025 */ move $s2, $v0 +/* 06C5F0 7F037AC0 1000F6B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C5F4 7F037AC4 02C28821 */ addu $s1, $s6, $v0 +/* 06C5F8 7F037AC8 26520003 */ addiu $s2, $s2, 3 +.L7F037ACC: +/* 06C5FC 7F037ACC 1000F6AF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C600 7F037AD0 26310003 */ addiu $s1, $s1, 3 +action71_GoIntoRVLIf_Difficulty_GTV_3: +/* 06C604 7F037AD4 0FC2FF04 */ jal get_current_difficulty +/* 06C608 7F037AD8 00000000 */ nop +/* 06C60C 7F037ADC 922A0001 */ lbu $t2, 1($s1) +/* 06C610 7F037AE0 02C02025 */ move $a0, $s6 +/* 06C614 7F037AE4 02402825 */ move $a1, $s2 +/* 06C618 7F037AE8 0142082A */ slt $at, $t2, $v0 +/* 06C61C 7F037AEC 50200007 */ beql $at, $zero, .L7F037B0C +/* 06C620 7F037AF0 26520003 */ addiu $s2, $s2, 3 +/* 06C624 7F037AF4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C628 7F037AF8 92260002 */ lbu $a2, 2($s1) +/* 06C62C 7F037AFC 00409025 */ move $s2, $v0 +/* 06C630 7F037B00 1000F6A2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C634 7F037B04 02C28821 */ addu $s1, $s6, $v0 +/* 06C638 7F037B08 26520003 */ addiu $s2, $s2, 3 +.L7F037B0C: +/* 06C63C 7F037B0C 1000F69F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C640 7F037B10 26310003 */ addiu $s1, $s1, 3 +action72_Go_To_RVL_If_Time_LTV_4: +/* 06C644 7F037B14 922B0001 */ lbu $t3, 1($s1) +/* 06C648 7F037B18 92390002 */ lbu $t9, 2($s1) +/* 06C64C 7F037B1C 000B6200 */ sll $t4, $t3, 8 +/* 06C650 7F037B20 01996825 */ or $t5, $t4, $t9 +/* 06C654 7F037B24 448D2000 */ mtc1 $t5, $f4 +/* 06C658 7F037B28 00000000 */ nop +/* 06C65C 7F037B2C 46802220 */ cvt.s.w $f8, $f4 +/* 06C660 7F037B30 0FC2FF10 */ jal get_cur_mp_sec +/* 06C664 7F037B34 E7A80400 */ swc1 $f8, 0x400($sp) +/* 06C668 7F037B38 C7AA0400 */ lwc1 $f10, 0x400($sp) +/* 06C66C 7F037B3C 02C02025 */ move $a0, $s6 +/* 06C670 7F037B40 02402825 */ move $a1, $s2 +/* 06C674 7F037B44 460A003C */ c.lt.s $f0, $f10 +/* 06C678 7F037B48 00000000 */ nop +/* 06C67C 7F037B4C 45020007 */ bc1fl .L7F037B6C +/* 06C680 7F037B50 26520004 */ addiu $s2, $s2, 4 +/* 06C684 7F037B54 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C688 7F037B58 92260003 */ lbu $a2, 3($s1) +/* 06C68C 7F037B5C 00409025 */ move $s2, $v0 +/* 06C690 7F037B60 1000F68A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C694 7F037B64 02C28821 */ addu $s1, $s6, $v0 +/* 06C698 7F037B68 26520004 */ addiu $s2, $s2, 4 +.L7F037B6C: +/* 06C69C 7F037B6C 1000F687 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C6A0 7F037B70 26310004 */ addiu $s1, $s1, 4 +action73_Go_To_RVL_If_Time_GTV_4: +/* 06C6A4 7F037B74 922E0001 */ lbu $t6, 1($s1) +/* 06C6A8 7F037B78 92380002 */ lbu $t8, 2($s1) +/* 06C6AC 7F037B7C 000E7A00 */ sll $t7, $t6, 8 +/* 06C6B0 7F037B80 01F84825 */ or $t1, $t7, $t8 +/* 06C6B4 7F037B84 44899000 */ mtc1 $t1, $f18 +/* 06C6B8 7F037B88 00000000 */ nop +/* 06C6BC 7F037B8C 468091A0 */ cvt.s.w $f6, $f18 +/* 06C6C0 7F037B90 0FC2FF10 */ jal get_cur_mp_sec +/* 06C6C4 7F037B94 E7A603F8 */ swc1 $f6, 0x3f8($sp) +/* 06C6C8 7F037B98 C7B003F8 */ lwc1 $f16, 0x3f8($sp) +/* 06C6CC 7F037B9C 02C02025 */ move $a0, $s6 +/* 06C6D0 7F037BA0 02402825 */ move $a1, $s2 +/* 06C6D4 7F037BA4 4600803C */ c.lt.s $f16, $f0 +/* 06C6D8 7F037BA8 00000000 */ nop +/* 06C6DC 7F037BAC 45020007 */ bc1fl .L7F037BCC +/* 06C6E0 7F037BB0 26520004 */ addiu $s2, $s2, 4 +/* 06C6E4 7F037BB4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C6E8 7F037BB8 92260003 */ lbu $a2, 3($s1) +/* 06C6EC 7F037BBC 00409025 */ move $s2, $v0 +/* 06C6F0 7F037BC0 1000F672 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C6F4 7F037BC4 02C28821 */ addu $s1, $s6, $v0 +/* 06C6F8 7F037BC8 26520004 */ addiu $s2, $s2, 4 +.L7F037BCC: +/* 06C6FC 7F037BCC 1000F66F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C700 7F037BD0 26310004 */ addiu $s1, $s1, 4 +action74_Go_To_RVL_If_Power_On_Time_LTV_4: +/* 06C704 7F037BD4 922A0001 */ lbu $t2, 1($s1) +/* 06C708 7F037BD8 922C0002 */ lbu $t4, 2($s1) +/* 06C70C 7F037BDC 000A5A00 */ sll $t3, $t2, 8 +/* 06C710 7F037BE0 016CC825 */ or $t9, $t3, $t4 +/* 06C714 7F037BE4 44992000 */ mtc1 $t9, $f4 +/* 06C718 7F037BE8 00000000 */ nop +/* 06C71C 7F037BEC 46802220 */ cvt.s.w $f8, $f4 +/* 06C720 7F037BF0 46164282 */ mul.s $f10, $f8, $f22 +/* 06C724 7F037BF4 0FC2FF13 */ jal get_cur_mp_min +/* 06C728 7F037BF8 E7AA03F0 */ swc1 $f10, 0x3f0($sp) +/* 06C72C 7F037BFC C7B203F0 */ lwc1 $f18, 0x3f0($sp) +/* 06C730 7F037C00 02C02025 */ move $a0, $s6 +/* 06C734 7F037C04 02402825 */ move $a1, $s2 +/* 06C738 7F037C08 4612003C */ c.lt.s $f0, $f18 +/* 06C73C 7F037C0C 00000000 */ nop +/* 06C740 7F037C10 45020007 */ bc1fl .L7F037C30 +/* 06C744 7F037C14 26520004 */ addiu $s2, $s2, 4 +/* 06C748 7F037C18 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C74C 7F037C1C 92260003 */ lbu $a2, 3($s1) +/* 06C750 7F037C20 00409025 */ move $s2, $v0 +/* 06C754 7F037C24 1000F659 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C758 7F037C28 02C28821 */ addu $s1, $s6, $v0 +/* 06C75C 7F037C2C 26520004 */ addiu $s2, $s2, 4 +.L7F037C30: +/* 06C760 7F037C30 1000F656 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C764 7F037C34 26310004 */ addiu $s1, $s1, 4 +action75_Go_To_RVL_If_Power_On_Time_GTV_4: +/* 06C768 7F037C38 922D0001 */ lbu $t5, 1($s1) +/* 06C76C 7F037C3C 922F0002 */ lbu $t7, 2($s1) +/* 06C770 7F037C40 000D7200 */ sll $t6, $t5, 8 +/* 06C774 7F037C44 01CFC025 */ or $t8, $t6, $t7 +/* 06C778 7F037C48 44983000 */ mtc1 $t8, $f6 +/* 06C77C 7F037C4C 00000000 */ nop +/* 06C780 7F037C50 46803420 */ cvt.s.w $f16, $f6 +/* 06C784 7F037C54 46168102 */ mul.s $f4, $f16, $f22 +/* 06C788 7F037C58 0FC2FF13 */ jal get_cur_mp_min +/* 06C78C 7F037C5C E7A403E8 */ swc1 $f4, 0x3e8($sp) +/* 06C790 7F037C60 C7A803E8 */ lwc1 $f8, 0x3e8($sp) +/* 06C794 7F037C64 02C02025 */ move $a0, $s6 +/* 06C798 7F037C68 02402825 */ move $a1, $s2 +/* 06C79C 7F037C6C 4600403C */ c.lt.s $f8, $f0 +/* 06C7A0 7F037C70 00000000 */ nop +/* 06C7A4 7F037C74 45020007 */ bc1fl .L7F037C94 +/* 06C7A8 7F037C78 26520004 */ addiu $s2, $s2, 4 +/* 06C7AC 7F037C7C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C7B0 7F037C80 92260003 */ lbu $a2, 3($s1) +/* 06C7B4 7F037C84 00409025 */ move $s2, $v0 +/* 06C7B8 7F037C88 1000F640 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C7BC 7F037C8C 02C28821 */ addu $s1, $s6, $v0 +/* 06C7C0 7F037C90 26520004 */ addiu $s2, $s2, 4 +.L7F037C94: +/* 06C7C4 7F037C94 1000F63D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C7C8 7F037C98 26310004 */ addiu $s1, $s1, 4 +action76_Go_To_RVL_If_Stage_Number_LTV_3: +/* 06C7CC 7F037C9C 0C001A57 */ jal get_stage_num +/* 06C7D0 7F037CA0 00000000 */ nop +/* 06C7D4 7F037CA4 92290001 */ lbu $t1, 1($s1) +/* 06C7D8 7F037CA8 02C02025 */ move $a0, $s6 +/* 06C7DC 7F037CAC 02402825 */ move $a1, $s2 +/* 06C7E0 7F037CB0 0049082A */ slt $at, $v0, $t1 +/* 06C7E4 7F037CB4 50200007 */ beql $at, $zero, .L7F037CD4 +/* 06C7E8 7F037CB8 26520003 */ addiu $s2, $s2, 3 +/* 06C7EC 7F037CBC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C7F0 7F037CC0 92260002 */ lbu $a2, 2($s1) +/* 06C7F4 7F037CC4 00409025 */ move $s2, $v0 +/* 06C7F8 7F037CC8 1000F630 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C7FC 7F037CCC 02C28821 */ addu $s1, $s6, $v0 +/* 06C800 7F037CD0 26520003 */ addiu $s2, $s2, 3 +.L7F037CD4: +/* 06C804 7F037CD4 1000F62D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C808 7F037CD8 26310003 */ addiu $s1, $s1, 3 +action77_Go_To_RVL_If_Stage_Number_GTV_3: +/* 06C80C 7F037CDC 0C001A57 */ jal get_stage_num +/* 06C810 7F037CE0 00000000 */ nop +/* 06C814 7F037CE4 922A0001 */ lbu $t2, 1($s1) +/* 06C818 7F037CE8 02C02025 */ move $a0, $s6 +/* 06C81C 7F037CEC 02402825 */ move $a1, $s2 +/* 06C820 7F037CF0 0142082A */ slt $at, $t2, $v0 +/* 06C824 7F037CF4 50200007 */ beql $at, $zero, .L7F037D14 +/* 06C828 7F037CF8 26520003 */ addiu $s2, $s2, 3 +/* 06C82C 7F037CFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C830 7F037D00 92260002 */ lbu $a2, 2($s1) +/* 06C834 7F037D04 00409025 */ move $s2, $v0 +/* 06C838 7F037D08 1000F620 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C83C 7F037D0C 02C28821 */ addu $s1, $s6, $v0 +/* 06C840 7F037D10 26520003 */ addiu $s2, $s2, 3 +.L7F037D14: +/* 06C844 7F037D14 1000F61D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C848 7F037D18 26310003 */ addiu $s1, $s1, 3 +action81_Set_User_Byte_num1_2: +/* 06C84C 7F037D1C 922B0001 */ lbu $t3, 1($s1) +/* 06C850 7F037D20 26520002 */ addiu $s2, $s2, 2 +/* 06C854 7F037D24 26310002 */ addiu $s1, $s1, 2 +/* 06C858 7F037D28 1000F618 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C85C 7F037D2C A2EB010C */ sb $t3, 0x10c($s7) +action82_Add_Value_To_User_Byte_num1_Max_To_FF_2: +/* 06C860 7F037D30 92250001 */ lbu $a1, 1($s1) +/* 06C864 7F037D34 92E2010C */ lbu $v0, 0x10c($s7) +/* 06C868 7F037D38 240C00FF */ li $t4, 255 +/* 06C86C 7F037D3C 0185C823 */ subu $t9, $t4, $a1 +/* 06C870 7F037D40 0322082A */ slt $at, $t9, $v0 +/* 06C874 7F037D44 10200006 */ beqz $at, .L7F037D60 +/* 06C878 7F037D48 00457021 */ addu $t6, $v0, $a1 +/* 06C87C 7F037D4C 240D00FF */ li $t5, 255 +/* 06C880 7F037D50 A2ED010C */ sb $t5, 0x10c($s7) +/* 06C884 7F037D54 26520002 */ addiu $s2, $s2, 2 +/* 06C888 7F037D58 1000F60C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C88C 7F037D5C 26310002 */ addiu $s1, $s1, 2 +.L7F037D60: +/* 06C890 7F037D60 A2EE010C */ sb $t6, 0x10c($s7) +/* 06C894 7F037D64 26520002 */ addiu $s2, $s2, 2 +/* 06C898 7F037D68 1000F608 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C89C 7F037D6C 26310002 */ addiu $s1, $s1, 2 +action83_Subtract_Value_To_User_Byte_num1_Min_To_0_2: +/* 06C8A0 7F037D70 92E2010C */ lbu $v0, 0x10c($s7) +/* 06C8A4 7F037D74 92250001 */ lbu $a1, 1($s1) +/* 06C8A8 7F037D78 0045082A */ slt $at, $v0, $a1 +/* 06C8AC 7F037D7C 10200005 */ beqz $at, .L7F037D94 +/* 06C8B0 7F037D80 00457823 */ subu $t7, $v0, $a1 +/* 06C8B4 7F037D84 A2E0010C */ sb $zero, 0x10c($s7) +/* 06C8B8 7F037D88 26520002 */ addiu $s2, $s2, 2 +/* 06C8BC 7F037D8C 1000F5FF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C8C0 7F037D90 26310002 */ addiu $s1, $s1, 2 +.L7F037D94: +/* 06C8C4 7F037D94 A2EF010C */ sb $t7, 0x10c($s7) +/* 06C8C8 7F037D98 26520002 */ addiu $s2, $s2, 2 +/* 06C8CC 7F037D9C 1000F5FB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C8D0 7F037DA0 26310002 */ addiu $s1, $s1, 2 +action84_If_Value_GreaterThan_User_Byte_num1_RVL_3: +/* 06C8D4 7F037DA4 92F8010C */ lbu $t8, 0x10c($s7) +/* 06C8D8 7F037DA8 92290001 */ lbu $t1, 1($s1) +/* 06C8DC 7F037DAC 02C02025 */ move $a0, $s6 +/* 06C8E0 7F037DB0 02402825 */ move $a1, $s2 +/* 06C8E4 7F037DB4 0309082A */ slt $at, $t8, $t1 +/* 06C8E8 7F037DB8 50200007 */ beql $at, $zero, .L7F037DD8 +/* 06C8EC 7F037DBC 26520003 */ addiu $s2, $s2, 3 +/* 06C8F0 7F037DC0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C8F4 7F037DC4 92260002 */ lbu $a2, 2($s1) +/* 06C8F8 7F037DC8 00409025 */ move $s2, $v0 +/* 06C8FC 7F037DCC 1000F5EF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C900 7F037DD0 02C28821 */ addu $s1, $s6, $v0 +/* 06C904 7F037DD4 26520003 */ addiu $s2, $s2, 3 +.L7F037DD8: +/* 06C908 7F037DD8 1000F5EC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C90C 7F037DDC 26310003 */ addiu $s1, $s1, 3 +action85_If_User_Byte_num1_LessThan_Random_Value_RVL_2: +/* 06C910 7F037DE0 92EA010C */ lbu $t2, 0x10c($s7) +/* 06C914 7F037DE4 92EB010F */ lbu $t3, 0x10f($s7) +/* 06C918 7F037DE8 02C02025 */ move $a0, $s6 +/* 06C91C 7F037DEC 02402825 */ move $a1, $s2 +/* 06C920 7F037DF0 014B082A */ slt $at, $t2, $t3 +/* 06C924 7F037DF4 50200007 */ beql $at, $zero, .L7F037E14 +/* 06C928 7F037DF8 26520002 */ addiu $s2, $s2, 2 +/* 06C92C 7F037DFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C930 7F037E00 92260001 */ lbu $a2, 1($s1) +/* 06C934 7F037E04 00409025 */ move $s2, $v0 +/* 06C938 7F037E08 1000F5E0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C93C 7F037E0C 02C28821 */ addu $s1, $s6, $v0 +/* 06C940 7F037E10 26520002 */ addiu $s2, $s2, 2 +.L7F037E14: +/* 06C944 7F037E14 1000F5DD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C948 7F037E18 26310002 */ addiu $s1, $s1, 2 +action86_Set_User_Byte_num2_2: +/* 06C94C 7F037E1C 922C0001 */ lbu $t4, 1($s1) +/* 06C950 7F037E20 26520002 */ addiu $s2, $s2, 2 +/* 06C954 7F037E24 26310002 */ addiu $s1, $s1, 2 +/* 06C958 7F037E28 1000F5D8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C95C 7F037E2C A2EC010D */ sb $t4, 0x10d($s7) +action87_Add_Value_To_User_Byte_num2_Max_To_FF_2: +/* 06C960 7F037E30 92250001 */ lbu $a1, 1($s1) +/* 06C964 7F037E34 92E2010D */ lbu $v0, 0x10d($s7) +/* 06C968 7F037E38 241900FF */ li $t9, 255 +/* 06C96C 7F037E3C 03256823 */ subu $t5, $t9, $a1 +/* 06C970 7F037E40 01A2082A */ slt $at, $t5, $v0 +/* 06C974 7F037E44 10200006 */ beqz $at, .L7F037E60 +/* 06C978 7F037E48 00457821 */ addu $t7, $v0, $a1 +/* 06C97C 7F037E4C 240E00FF */ li $t6, 255 +/* 06C980 7F037E50 A2EE010D */ sb $t6, 0x10d($s7) +/* 06C984 7F037E54 26520002 */ addiu $s2, $s2, 2 +/* 06C988 7F037E58 1000F5CC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C98C 7F037E5C 26310002 */ addiu $s1, $s1, 2 +.L7F037E60: +/* 06C990 7F037E60 A2EF010D */ sb $t7, 0x10d($s7) +/* 06C994 7F037E64 26520002 */ addiu $s2, $s2, 2 +/* 06C998 7F037E68 1000F5C8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C99C 7F037E6C 26310002 */ addiu $s1, $s1, 2 +action88_Subtract_Value_To_User_Byte_num2_Min_To_0_2: +/* 06C9A0 7F037E70 92E2010D */ lbu $v0, 0x10d($s7) +/* 06C9A4 7F037E74 92250001 */ lbu $a1, 1($s1) +/* 06C9A8 7F037E78 0045082A */ slt $at, $v0, $a1 +/* 06C9AC 7F037E7C 10200005 */ beqz $at, .L7F037E94 +/* 06C9B0 7F037E80 0045C023 */ subu $t8, $v0, $a1 +/* 06C9B4 7F037E84 A2E0010D */ sb $zero, 0x10d($s7) +/* 06C9B8 7F037E88 26520002 */ addiu $s2, $s2, 2 +/* 06C9BC 7F037E8C 1000F5BF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C9C0 7F037E90 26310002 */ addiu $s1, $s1, 2 +.L7F037E94: +/* 06C9C4 7F037E94 A2F8010D */ sb $t8, 0x10d($s7) +/* 06C9C8 7F037E98 26520002 */ addiu $s2, $s2, 2 +/* 06C9CC 7F037E9C 1000F5BB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C9D0 7F037EA0 26310002 */ addiu $s1, $s1, 2 +action89_If_Value_GreaterThan_User_Byte_num2_RVL_3: +/* 06C9D4 7F037EA4 92E9010D */ lbu $t1, 0x10d($s7) +/* 06C9D8 7F037EA8 922A0001 */ lbu $t2, 1($s1) +/* 06C9DC 7F037EAC 02C02025 */ move $a0, $s6 +/* 06C9E0 7F037EB0 02402825 */ move $a1, $s2 +/* 06C9E4 7F037EB4 012A082A */ slt $at, $t1, $t2 +/* 06C9E8 7F037EB8 50200007 */ beql $at, $zero, .L7F037ED8 +/* 06C9EC 7F037EBC 26520003 */ addiu $s2, $s2, 3 +/* 06C9F0 7F037EC0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C9F4 7F037EC4 92260002 */ lbu $a2, 2($s1) +/* 06C9F8 7F037EC8 00409025 */ move $s2, $v0 +/* 06C9FC 7F037ECC 1000F5AF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA00 7F037ED0 02C28821 */ addu $s1, $s6, $v0 +/* 06CA04 7F037ED4 26520003 */ addiu $s2, $s2, 3 +.L7F037ED8: +/* 06CA08 7F037ED8 1000F5AC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA0C 7F037EDC 26310003 */ addiu $s1, $s1, 3 +action8A_If_User_Byte_num2_LessThan_Random_Value_RVL_2: +/* 06CA10 7F037EE0 92EB010D */ lbu $t3, 0x10d($s7) +/* 06CA14 7F037EE4 92EC010F */ lbu $t4, 0x10f($s7) +/* 06CA18 7F037EE8 02C02025 */ move $a0, $s6 +/* 06CA1C 7F037EEC 02402825 */ move $a1, $s2 +/* 06CA20 7F037EF0 016C082A */ slt $at, $t3, $t4 +/* 06CA24 7F037EF4 50200007 */ beql $at, $zero, .L7F037F14 +/* 06CA28 7F037EF8 26520002 */ addiu $s2, $s2, 2 +/* 06CA2C 7F037EFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CA30 7F037F00 92260001 */ lbu $a2, 1($s1) +/* 06CA34 7F037F04 00409025 */ move $s2, $v0 +/* 06CA38 7F037F08 1000F5A0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA3C 7F037F0C 02C28821 */ addu $s1, $s6, $v0 +/* 06CA40 7F037F10 26520002 */ addiu $s2, $s2, 2 +.L7F037F14: +/* 06CA44 7F037F14 1000F59D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA48 7F037F18 26310002 */ addiu $s1, $s1, 2 +action8B_Set_Guard_Hearing_Distance_3: +/* 06CA4C 7F037F1C 92390001 */ lbu $t9, 1($s1) +/* 06CA50 7F037F20 922E0002 */ lbu $t6, 2($s1) +/* 06CA54 7F037F24 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 06CA58 7F037F28 00196A00 */ sll $t5, $t9, 8 +/* 06CA5C 7F037F2C 01AE7825 */ or $t7, $t5, $t6 +/* 06CA60 7F037F30 448F5000 */ mtc1 $t7, $f10 +/* 06CA64 7F037F34 44813000 */ mtc1 $at, $f6 +/* 06CA68 7F037F38 26520003 */ addiu $s2, $s2, 3 +/* 06CA6C 7F037F3C 468054A0 */ cvt.s.w $f18, $f10 +/* 06CA70 7F037F40 26310003 */ addiu $s1, $s1, 3 +/* 06CA74 7F037F44 46069003 */ div.s $f0, $f18, $f6 +/* 06CA78 7F037F48 1000F590 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA7C 7F037F4C E6E000EC */ swc1 $f0, 0xec($s7) +action8C_Set_Guard_Visible_Distance_2: +/* 06CA80 7F037F50 92380001 */ lbu $t8, 1($s1) +/* 06CA84 7F037F54 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06CA88 7F037F58 26520002 */ addiu $s2, $s2, 2 +/* 06CA8C 7F037F5C 44988000 */ mtc1 $t8, $f16 +/* 06CA90 7F037F60 26310002 */ addiu $s1, $s1, 2 +/* 06CA94 7F037F64 07010004 */ bgez $t8, .L7F037F78 +/* 06CA98 7F037F68 46808120 */ cvt.s.w $f4, $f16 +/* 06CA9C 7F037F6C 44814000 */ mtc1 $at, $f8 +/* 06CAA0 7F037F70 00000000 */ nop +/* 06CAA4 7F037F74 46082100 */ add.s $f4, $f4, $f8 +.L7F037F78: +/* 06CAA8 7F037F78 1000F584 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CAAC 7F037F7C E6E400D0 */ swc1 $f4, 0xd0($s7) +action8D_Set_Guard_Grenade_Probability_2: +/* 06CAB0 7F037F80 92290001 */ lbu $t1, 1($s1) +/* 06CAB4 7F037F84 26520002 */ addiu $s2, $s2, 2 +/* 06CAB8 7F037F88 26310002 */ addiu $s1, $s1, 2 +/* 06CABC 7F037F8C 1000F57F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CAC0 7F037F90 A2E90010 */ sb $t1, 0x10($s7) +action8E_Set_Guard_ID_2: +/* 06CAC4 7F037F94 922A0001 */ lbu $t2, 1($s1) +/* 06CAC8 7F037F98 26520002 */ addiu $s2, $s2, 2 +/* 06CACC 7F037F9C 26310002 */ addiu $s1, $s1, 2 +/* 06CAD0 7F037FA0 1000F57A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CAD4 7F037FA4 A6EA0000 */ sh $t2, ($s7) +action8F_Set_Guard_Health_3: +/* 06CAD8 7F037FA8 922B0001 */ lbu $t3, 1($s1) +/* 06CADC 7F037FAC 92390002 */ lbu $t9, 2($s1) +/* 06CAE0 7F037FB0 3C018005 */ lui $at, %hi(D_800528F4) +/* 06CAE4 7F037FB4 000B6200 */ sll $t4, $t3, 8 +/* 06CAE8 7F037FB8 01996825 */ or $t5, $t4, $t9 +/* 06CAEC 7F037FBC 448D5000 */ mtc1 $t5, $f10 +/* 06CAF0 7F037FC0 C42628F4 */ lwc1 $f6, %lo(D_800528F4)($at) +/* 06CAF4 7F037FC4 02E02025 */ move $a0, $s7 +/* 06CAF8 7F037FC8 468054A0 */ cvt.s.w $f18, $f10 +/* 06CAFC 7F037FCC 46069002 */ mul.s $f0, $f18, $f6 +/* 06CB00 7F037FD0 44050000 */ mfc1 $a1, $f0 +/* 06CB04 7F037FD4 0FC08006 */ jal sub_GAME_7F020018 +/* 06CB08 7F037FD8 00000000 */ nop +/* 06CB0C 7F037FDC 26520003 */ addiu $s2, $s2, 3 +/* 06CB10 7F037FE0 1000F56A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB14 7F037FE4 26310003 */ addiu $s1, $s1, 3 +action90_Set_Guard_Armor_Amount_3: +/* 06CB18 7F037FE8 922E0001 */ lbu $t6, 1($s1) +/* 06CB1C 7F037FEC 92380002 */ lbu $t8, 2($s1) +/* 06CB20 7F037FF0 3C018005 */ lui $at, %hi(D_800528F8) +/* 06CB24 7F037FF4 000E7A00 */ sll $t7, $t6, 8 +/* 06CB28 7F037FF8 01F84825 */ or $t1, $t7, $t8 +/* 06CB2C 7F037FFC 44898000 */ mtc1 $t1, $f16 +/* 06CB30 7F038000 C42428F8 */ lwc1 $f4, %lo(D_800528F8)($at) +/* 06CB34 7F038004 02E02025 */ move $a0, $s7 +/* 06CB38 7F038008 46808220 */ cvt.s.w $f8, $f16 +/* 06CB3C 7F03800C 46044002 */ mul.s $f0, $f8, $f4 +/* 06CB40 7F038010 44050000 */ mfc1 $a1, $f0 +/* 06CB44 7F038014 0FC08015 */ jal sub_GAME_7F020054 +/* 06CB48 7F038018 00000000 */ nop +/* 06CB4C 7F03801C 26520003 */ addiu $s2, $s2, 3 +/* 06CB50 7F038020 1000F55A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB54 7F038024 26310003 */ addiu $s1, $s1, 3 +action91_Set_Character_Reaction_Speed_2: +/* 06CB58 7F038028 822A0001 */ lb $t2, 1($s1) +/* 06CB5C 7F03802C 26520002 */ addiu $s2, $s2, 2 +/* 06CB60 7F038030 26310002 */ addiu $s1, $s1, 2 +/* 06CB64 7F038034 1000F555 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB68 7F038038 A2EA0003 */ sb $t2, 3($s7) +action92_Set_Character_Injury_Recovery_Speed_2: +/* 06CB6C 7F03803C 822B0001 */ lb $t3, 1($s1) +/* 06CB70 7F038040 26520002 */ addiu $s2, $s2, 2 +/* 06CB74 7F038044 26310002 */ addiu $s1, $s1, 2 +/* 06CB78 7F038048 1000F550 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB7C 7F03804C A2EB000D */ sb $t3, 0xd($s7) +action93_Set_Character_Accuracy_2: +/* 06CB80 7F038050 822C0001 */ lb $t4, 1($s1) +/* 06CB84 7F038054 26520002 */ addiu $s2, $s2, 2 +/* 06CB88 7F038058 26310002 */ addiu $s1, $s1, 2 +/* 06CB8C 7F03805C 1000F54B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB90 7F038060 A2EC0002 */ sb $t4, 2($s7) +action94_Mask_Guard_Type_With_Value_2: +/* 06CB94 7F038064 02E02025 */ move $a0, $s7 +/* 06CB98 7F038068 0FC0CC86 */ jal sub_GAME_7F033218 +/* 06CB9C 7F03806C 92250001 */ lbu $a1, 1($s1) +/* 06CBA0 7F038070 26520002 */ addiu $s2, $s2, 2 +/* 06CBA4 7F038074 1000F545 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBA8 7F038078 26310002 */ addiu $s1, $s1, 2 +action95_Unmask_Guard_Type_With_Value_2: +/* 06CBAC 7F03807C 02E02025 */ move $a0, $s7 +/* 06CBB0 7F038080 0FC0CC8B */ jal sub_GAME_7F03322C +/* 06CBB4 7F038084 92250001 */ lbu $a1, 1($s1) +/* 06CBB8 7F038088 26520002 */ addiu $s2, $s2, 2 +/* 06CBBC 7F03808C 1000F53F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBC0 7F038090 26310002 */ addiu $s1, $s1, 2 +action96_If_Guard_Type_Value_Is_Set_RVL_3: +/* 06CBC4 7F038094 02E02025 */ move $a0, $s7 +/* 06CBC8 7F038098 0FC0CC91 */ jal sub_GAME_7F033244 +/* 06CBCC 7F03809C 92250001 */ lbu $a1, 1($s1) +/* 06CBD0 7F0380A0 10400007 */ beqz $v0, .L7F0380C0 +/* 06CBD4 7F0380A4 02C02025 */ move $a0, $s6 +/* 06CBD8 7F0380A8 02402825 */ move $a1, $s2 +/* 06CBDC 7F0380AC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CBE0 7F0380B0 92260002 */ lbu $a2, 2($s1) +/* 06CBE4 7F0380B4 00409025 */ move $s2, $v0 +/* 06CBE8 7F0380B8 1000F534 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBEC 7F0380BC 02C28821 */ addu $s1, $s6, $v0 +.L7F0380C0: +/* 06CBF0 7F0380C0 26520003 */ addiu $s2, $s2, 3 +/* 06CBF4 7F0380C4 1000F531 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBF8 7F0380C8 26310003 */ addiu $s1, $s1, 3 +action97_Mask_Guard_Type_Flags_With_Value_3: +/* 06CBFC 7F0380CC 02E02025 */ move $a0, $s7 +/* 06CC00 7F0380D0 92250001 */ lbu $a1, 1($s1) +/* 06CC04 7F0380D4 0FC0CC98 */ jal sub_GAME_7F033260 +/* 06CC08 7F0380D8 92260002 */ lbu $a2, 2($s1) +/* 06CC0C 7F0380DC 26520003 */ addiu $s2, $s2, 3 +/* 06CC10 7F0380E0 1000F52A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC14 7F0380E4 26310003 */ addiu $s1, $s1, 3 +action98_Unmask_Guard_Type_Flags_With_Value_3: +/* 06CC18 7F0380E8 02E02025 */ move $a0, $s7 +/* 06CC1C 7F0380EC 92250001 */ lbu $a1, 1($s1) +/* 06CC20 7F0380F0 0FC0CCA4 */ jal sub_GAME_7F033290 +/* 06CC24 7F0380F4 92260002 */ lbu $a2, 2($s1) +/* 06CC28 7F0380F8 26520003 */ addiu $s2, $s2, 3 +/* 06CC2C 7F0380FC 1000F523 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC30 7F038100 26310003 */ addiu $s1, $s1, 3 +action99_If_Guard_Type_Flags_Set_RVL_4: +/* 06CC34 7F038104 02E02025 */ move $a0, $s7 +/* 06CC38 7F038108 92250001 */ lbu $a1, 1($s1) +/* 06CC3C 7F03810C 0FC0CCB0 */ jal sub_GAME_7F0332C0 +/* 06CC40 7F038110 92260002 */ lbu $a2, 2($s1) +/* 06CC44 7F038114 10400007 */ beqz $v0, .L7F038134 +/* 06CC48 7F038118 02C02025 */ move $a0, $s6 +/* 06CC4C 7F03811C 02402825 */ move $a1, $s2 +/* 06CC50 7F038120 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CC54 7F038124 92260003 */ lbu $a2, 3($s1) +/* 06CC58 7F038128 00409025 */ move $s2, $v0 +/* 06CC5C 7F03812C 1000F517 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC60 7F038130 02C28821 */ addu $s1, $s6, $v0 +.L7F038134: +/* 06CC64 7F038134 26520004 */ addiu $s2, $s2, 4 +/* 06CC68 7F038138 1000F514 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC6C 7F03813C 26310004 */ addiu $s1, $s1, 4 +action9A_Set_Objective_Bits_5: +/* 06CC70 7F038140 92390001 */ lbu $t9, 1($s1) +/* 06CC74 7F038144 922E0002 */ lbu $t6, 2($s1) +/* 06CC78 7F038148 92290003 */ lbu $t1, 3($s1) +/* 06CC7C 7F03814C 00196E00 */ sll $t5, $t9, 0x18 +/* 06CC80 7F038150 000E7C00 */ sll $t7, $t6, 0x10 +/* 06CC84 7F038154 922C0004 */ lbu $t4, 4($s1) +/* 06CC88 7F038158 01AFC025 */ or $t8, $t5, $t7 +/* 06CC8C 7F03815C 00095200 */ sll $t2, $t1, 8 +/* 06CC90 7F038160 030A5825 */ or $t3, $t8, $t2 +/* 06CC94 7F038164 02E02025 */ move $a0, $s7 +/* 06CC98 7F038168 0FC0CCBF */ jal toggle_objective_bitflags +/* 06CC9C 7F03816C 016C2825 */ or $a1, $t3, $t4 +/* 06CCA0 7F038170 26520005 */ addiu $s2, $s2, 5 +/* 06CCA4 7F038174 1000F505 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CCA8 7F038178 26310005 */ addiu $s1, $s1, 5 +action9B_Unset_Objective_Value_5: +/* 06CCAC 7F03817C 92390001 */ lbu $t9, 1($s1) +/* 06CCB0 7F038180 922D0002 */ lbu $t5, 2($s1) +/* 06CCB4 7F038184 92380003 */ lbu $t8, 3($s1) +/* 06CCB8 7F038188 00197600 */ sll $t6, $t9, 0x18 +/* 06CCBC 7F03818C 000D7C00 */ sll $t7, $t5, 0x10 +/* 06CCC0 7F038190 922C0004 */ lbu $t4, 4($s1) +/* 06CCC4 7F038194 01CF4825 */ or $t1, $t6, $t7 +/* 06CCC8 7F038198 00185200 */ sll $t2, $t8, 8 +/* 06CCCC 7F03819C 012A5825 */ or $t3, $t1, $t2 +/* 06CCD0 7F0381A0 02E02025 */ move $a0, $s7 +/* 06CCD4 7F0381A4 0FC0CCC6 */ jal untoggle_objective_bitflags +/* 06CCD8 7F0381A8 016C2825 */ or $a1, $t3, $t4 +/* 06CCDC 7F0381AC 26520005 */ addiu $s2, $s2, 5 +/* 06CCE0 7F0381B0 1000F4F6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CCE4 7F0381B4 26310005 */ addiu $s1, $s1, 5 +action9C_Check_If_Objective_Value_Return_Loop_If_So_6: +/* 06CCE8 7F0381B8 92390001 */ lbu $t9, 1($s1) +/* 06CCEC 7F0381BC 922E0002 */ lbu $t6, 2($s1) +/* 06CCF0 7F0381C0 92290003 */ lbu $t1, 3($s1) +/* 06CCF4 7F0381C4 00196E00 */ sll $t5, $t9, 0x18 +/* 06CCF8 7F0381C8 000E7C00 */ sll $t7, $t6, 0x10 +/* 06CCFC 7F0381CC 922C0004 */ lbu $t4, 4($s1) +/* 06CD00 7F0381D0 01AFC025 */ or $t8, $t5, $t7 +/* 06CD04 7F0381D4 00095200 */ sll $t2, $t1, 8 +/* 06CD08 7F0381D8 030A5825 */ or $t3, $t8, $t2 +/* 06CD0C 7F0381DC 02E02025 */ move $a0, $s7 +/* 06CD10 7F0381E0 0FC0CCCE */ jal check_if_objective_bitflags_set +/* 06CD14 7F0381E4 016C2825 */ or $a1, $t3, $t4 +/* 06CD18 7F0381E8 10400007 */ beqz $v0, .L7F038208 +/* 06CD1C 7F0381EC 02C02025 */ move $a0, $s6 +/* 06CD20 7F0381F0 02402825 */ move $a1, $s2 +/* 06CD24 7F0381F4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CD28 7F0381F8 92260005 */ lbu $a2, 5($s1) +/* 06CD2C 7F0381FC 00409025 */ move $s2, $v0 +/* 06CD30 7F038200 1000F4E2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CD34 7F038204 02C28821 */ addu $s1, $s6, $v0 +.L7F038208: +/* 06CD38 7F038208 26520006 */ addiu $s2, $s2, 6 +/* 06CD3C 7F03820C 1000F4DF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CD40 7F038210 26310006 */ addiu $s1, $s1, 6 +action9D_Set_Guard_Bit_Tags_5: +/* 06CD44 7F038214 92390001 */ lbu $t9, 1($s1) +/* 06CD48 7F038218 922D0002 */ lbu $t5, 2($s1) +/* 06CD4C 7F03821C 92380003 */ lbu $t8, 3($s1) +/* 06CD50 7F038220 00197600 */ sll $t6, $t9, 0x18 +/* 06CD54 7F038224 922C0004 */ lbu $t4, 4($s1) +/* 06CD58 7F038228 000D7C00 */ sll $t7, $t5, 0x10 +/* 06CD5C 7F03822C 8EF90014 */ lw $t9, 0x14($s7) +/* 06CD60 7F038230 01CF4825 */ or $t1, $t6, $t7 +/* 06CD64 7F038234 00185200 */ sll $t2, $t8, 8 +/* 06CD68 7F038238 012A5825 */ or $t3, $t1, $t2 +/* 06CD6C 7F03823C 016C1025 */ or $v0, $t3, $t4 +/* 06CD70 7F038240 03226825 */ or $t5, $t9, $v0 +/* 06CD74 7F038244 AEED0014 */ sw $t5, 0x14($s7) +/* 06CD78 7F038248 26520005 */ addiu $s2, $s2, 5 +/* 06CD7C 7F03824C 1000F4CF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CD80 7F038250 26310005 */ addiu $s1, $s1, 5 +action9E_Unset_Guard_Bit_Tags_5: +/* 06CD84 7F038254 922E0001 */ lbu $t6, 1($s1) +/* 06CD88 7F038258 92380002 */ lbu $t8, 2($s1) +/* 06CD8C 7F03825C 922B0003 */ lbu $t3, 3($s1) +/* 06CD90 7F038260 922D0004 */ lbu $t5, 4($s1) +/* 06CD94 7F038264 000E7E00 */ sll $t7, $t6, 0x18 +/* 06CD98 7F038268 00184C00 */ sll $t1, $t8, 0x10 +/* 06CD9C 7F03826C 01E95025 */ or $t2, $t7, $t1 +/* 06CDA0 7F038270 000B6200 */ sll $t4, $t3, 8 +/* 06CDA4 7F038274 8EEE0014 */ lw $t6, 0x14($s7) +/* 06CDA8 7F038278 014CC825 */ or $t9, $t2, $t4 +/* 06CDAC 7F03827C 032D1025 */ or $v0, $t9, $t5 +/* 06CDB0 7F038280 0040C027 */ not $t8, $v0 +/* 06CDB4 7F038284 01D87824 */ and $t7, $t6, $t8 +/* 06CDB8 7F038288 AEEF0014 */ sw $t7, 0x14($s7) +/* 06CDBC 7F03828C 26520005 */ addiu $s2, $s2, 5 +/* 06CDC0 7F038290 1000F4BE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CDC4 7F038294 26310005 */ addiu $s1, $s1, 5 +action9F_Check_Guard_Bits_If_Same_RVL_6: +/* 06CDC8 7F038298 92290001 */ lbu $t1, 1($s1) +/* 06CDCC 7F03829C 922A0002 */ lbu $t2, 2($s1) +/* 06CDD0 7F0382A0 922D0003 */ lbu $t5, 3($s1) +/* 06CDD4 7F0382A4 00095E00 */ sll $t3, $t1, 0x18 +/* 06CDD8 7F0382A8 922F0004 */ lbu $t7, 4($s1) +/* 06CDDC 7F0382AC 000A6400 */ sll $t4, $t2, 0x10 +/* 06CDE0 7F0382B0 8EE90014 */ lw $t1, 0x14($s7) +/* 06CDE4 7F0382B4 016CC825 */ or $t9, $t3, $t4 +/* 06CDE8 7F0382B8 000D7200 */ sll $t6, $t5, 8 +/* 06CDEC 7F0382BC 032EC025 */ or $t8, $t9, $t6 +/* 06CDF0 7F0382C0 030F1025 */ or $v0, $t8, $t7 +/* 06CDF4 7F0382C4 01225024 */ and $t2, $t1, $v0 +/* 06CDF8 7F0382C8 144A0007 */ bne $v0, $t2, .L7F0382E8 +/* 06CDFC 7F0382CC 02C02025 */ move $a0, $s6 +/* 06CE00 7F0382D0 02402825 */ move $a1, $s2 +/* 06CE04 7F0382D4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CE08 7F0382D8 92260005 */ lbu $a2, 5($s1) +/* 06CE0C 7F0382DC 00409025 */ move $s2, $v0 +/* 06CE10 7F0382E0 1000F4AA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CE14 7F0382E4 02C28821 */ addu $s1, $s6, $v0 +.L7F0382E8: +/* 06CE18 7F0382E8 26520006 */ addiu $s2, $s2, 6 +/* 06CE1C 7F0382EC 1000F4A7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CE20 7F0382F0 26310006 */ addiu $s1, $s1, 6 +actionA0_Set_Guard_ID_Bits_6: +/* 06CE24 7F0382F4 922B0002 */ lbu $t3, 2($s1) +/* 06CE28 7F0382F8 922D0003 */ lbu $t5, 3($s1) +/* 06CE2C 7F0382FC 92380004 */ lbu $t8, 4($s1) +/* 06CE30 7F038300 000B6600 */ sll $t4, $t3, 0x18 +/* 06CE34 7F038304 000DCC00 */ sll $t9, $t5, 0x10 +/* 06CE38 7F038308 922A0005 */ lbu $t2, 5($s1) +/* 06CE3C 7F03830C 01997025 */ or $t6, $t4, $t9 +/* 06CE40 7F038310 00187A00 */ sll $t7, $t8, 8 +/* 06CE44 7F038314 01CF4825 */ or $t1, $t6, $t7 +/* 06CE48 7F038318 02E02025 */ move $a0, $s7 +/* 06CE4C 7F03831C 92250001 */ lbu $a1, 1($s1) +/* 06CE50 7F038320 0FC0CC10 */ jal get_handle_for_guard_id +/* 06CE54 7F038324 012A8025 */ or $s0, $t1, $t2 +/* 06CE58 7F038328 10400004 */ beqz $v0, .L7F03833C +/* 06CE5C 7F03832C 26520006 */ addiu $s2, $s2, 6 +/* 06CE60 7F038330 8C4B0014 */ lw $t3, 0x14($v0) +/* 06CE64 7F038334 01706825 */ or $t5, $t3, $s0 +/* 06CE68 7F038338 AC4D0014 */ sw $t5, 0x14($v0) +.L7F03833C: +/* 06CE6C 7F03833C 1000F493 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CE70 7F038340 26310006 */ addiu $s1, $s1, 6 +actionA1_Unset_Guard_ID_Bits_6: +/* 06CE74 7F038344 922C0002 */ lbu $t4, 2($s1) +/* 06CE78 7F038348 92380003 */ lbu $t8, 3($s1) +/* 06CE7C 7F03834C 92290004 */ lbu $t1, 4($s1) +/* 06CE80 7F038350 000CCE00 */ sll $t9, $t4, 0x18 +/* 06CE84 7F038354 00187400 */ sll $t6, $t8, 0x10 +/* 06CE88 7F038358 922D0005 */ lbu $t5, 5($s1) +/* 06CE8C 7F03835C 032E7825 */ or $t7, $t9, $t6 +/* 06CE90 7F038360 00095200 */ sll $t2, $t1, 8 +/* 06CE94 7F038364 01EA5825 */ or $t3, $t7, $t2 +/* 06CE98 7F038368 02E02025 */ move $a0, $s7 +/* 06CE9C 7F03836C 92250001 */ lbu $a1, 1($s1) +/* 06CEA0 7F038370 0FC0CC10 */ jal get_handle_for_guard_id +/* 06CEA4 7F038374 016D8025 */ or $s0, $t3, $t5 +/* 06CEA8 7F038378 10400005 */ beqz $v0, .L7F038390 +/* 06CEAC 7F03837C 26520006 */ addiu $s2, $s2, 6 +/* 06CEB0 7F038380 8C4C0014 */ lw $t4, 0x14($v0) +/* 06CEB4 7F038384 0200C027 */ not $t8, $s0 +/* 06CEB8 7F038388 0198C824 */ and $t9, $t4, $t8 +/* 06CEBC 7F03838C AC590014 */ sw $t9, 0x14($v0) +.L7F038390: +/* 06CEC0 7F038390 1000F47E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CEC4 7F038394 26310006 */ addiu $s1, $s1, 6 +actionA2_Check_Guard_Bits_If_Same_RVL_7: +/* 06CEC8 7F038398 922E0002 */ lbu $t6, 2($s1) +/* 06CECC 7F03839C 922F0003 */ lbu $t7, 3($s1) +/* 06CED0 7F0383A0 922D0004 */ lbu $t5, 4($s1) +/* 06CED4 7F0383A4 000E4E00 */ sll $t1, $t6, 0x18 +/* 06CED8 7F0383A8 000F5400 */ sll $t2, $t7, 0x10 +/* 06CEDC 7F0383AC 92390005 */ lbu $t9, 5($s1) +/* 06CEE0 7F0383B0 012A5825 */ or $t3, $t1, $t2 +/* 06CEE4 7F0383B4 000D6200 */ sll $t4, $t5, 8 +/* 06CEE8 7F0383B8 016CC025 */ or $t8, $t3, $t4 +/* 06CEEC 7F0383BC 02E02025 */ move $a0, $s7 +/* 06CEF0 7F0383C0 92250001 */ lbu $a1, 1($s1) +/* 06CEF4 7F0383C4 0FC0CC10 */ jal get_handle_for_guard_id +/* 06CEF8 7F0383C8 03198025 */ or $s0, $t8, $t9 +/* 06CEFC 7F0383CC 5040000D */ beql $v0, $zero, .L7F038404 +/* 06CF00 7F0383D0 26520007 */ addiu $s2, $s2, 7 +/* 06CF04 7F0383D4 8C4E0014 */ lw $t6, 0x14($v0) +/* 06CF08 7F0383D8 02C02025 */ move $a0, $s6 +/* 06CF0C 7F0383DC 02402825 */ move $a1, $s2 +/* 06CF10 7F0383E0 01D07824 */ and $t7, $t6, $s0 +/* 06CF14 7F0383E4 560F0007 */ bnel $s0, $t7, .L7F038404 +/* 06CF18 7F0383E8 26520007 */ addiu $s2, $s2, 7 +/* 06CF1C 7F0383EC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CF20 7F0383F0 92260006 */ lbu $a2, 6($s1) +/* 06CF24 7F0383F4 00409025 */ move $s2, $v0 +/* 06CF28 7F0383F8 1000F464 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CF2C 7F0383FC 02C28821 */ addu $s1, $s6, $v0 +/* 06CF30 7F038400 26520007 */ addiu $s2, $s2, 7 +.L7F038404: +/* 06CF34 7F038404 1000F461 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CF38 7F038408 26310007 */ addiu $s1, $s1, 7 +actionA3_Set_State_Bits_16_Type_Object_6: +/* 06CF3C 7F03840C 92290002 */ lbu $t1, 2($s1) +/* 06CF40 7F038410 922D0003 */ lbu $t5, 3($s1) +/* 06CF44 7F038414 92380004 */ lbu $t8, 4($s1) +/* 06CF48 7F038418 00095600 */ sll $t2, $t1, 0x18 +/* 06CF4C 7F03841C 000D5C00 */ sll $t3, $t5, 0x10 +/* 06CF50 7F038420 922F0005 */ lbu $t7, 5($s1) +/* 06CF54 7F038424 014B6025 */ or $t4, $t2, $t3 +/* 06CF58 7F038428 0018CA00 */ sll $t9, $t8, 8 +/* 06CF5C 7F03842C 01997025 */ or $t6, $t4, $t9 +/* 06CF60 7F038430 92240001 */ lbu $a0, 1($s1) +/* 06CF64 7F038434 0FC15C30 */ jal get_handle_to_tagged_object +/* 06CF68 7F038438 01CF8025 */ or $s0, $t6, $t7 +/* 06CF6C 7F03843C 10400007 */ beqz $v0, .L7F03845C +/* 06CF70 7F038440 26520006 */ addiu $s2, $s2, 6 +/* 06CF74 7F038444 8C490010 */ lw $t1, 0x10($v0) +/* 06CF78 7F038448 11200004 */ beqz $t1, .L7F03845C +/* 06CF7C 7F03844C 00000000 */ nop +/* 06CF80 7F038450 8C4D0008 */ lw $t5, 8($v0) +/* 06CF84 7F038454 01B05025 */ or $t2, $t5, $s0 +/* 06CF88 7F038458 AC4A0008 */ sw $t2, 8($v0) +.L7F03845C: +/* 06CF8C 7F03845C 1000F44B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CF90 7F038460 26310006 */ addiu $s1, $s1, 6 +actionA4_Unset_State_Bits_16_Type_Object_6: +/* 06CF94 7F038464 922B0002 */ lbu $t3, 2($s1) +/* 06CF98 7F038468 922C0003 */ lbu $t4, 3($s1) +/* 06CF9C 7F03846C 922F0004 */ lbu $t7, 4($s1) +/* 06CFA0 7F038470 000BC600 */ sll $t8, $t3, 0x18 +/* 06CFA4 7F038474 000CCC00 */ sll $t9, $t4, 0x10 +/* 06CFA8 7F038478 922A0005 */ lbu $t2, 5($s1) +/* 06CFAC 7F03847C 03197025 */ or $t6, $t8, $t9 +/* 06CFB0 7F038480 000F4A00 */ sll $t1, $t7, 8 +/* 06CFB4 7F038484 01C96825 */ or $t5, $t6, $t1 +/* 06CFB8 7F038488 92240001 */ lbu $a0, 1($s1) +/* 06CFBC 7F03848C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06CFC0 7F038490 01AA8025 */ or $s0, $t5, $t2 +/* 06CFC4 7F038494 10400008 */ beqz $v0, .L7F0384B8 +/* 06CFC8 7F038498 26520006 */ addiu $s2, $s2, 6 +/* 06CFCC 7F03849C 8C4B0010 */ lw $t3, 0x10($v0) +/* 06CFD0 7F0384A0 11600005 */ beqz $t3, .L7F0384B8 +/* 06CFD4 7F0384A4 00000000 */ nop +/* 06CFD8 7F0384A8 8C4C0008 */ lw $t4, 8($v0) +/* 06CFDC 7F0384AC 0200C027 */ not $t8, $s0 +/* 06CFE0 7F0384B0 0198C824 */ and $t9, $t4, $t8 +/* 06CFE4 7F0384B4 AC590008 */ sw $t9, 8($v0) +.L7F0384B8: +/* 06CFE8 7F0384B8 1000F434 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CFEC 7F0384BC 26310006 */ addiu $s1, $s1, 6 +actionA5_Check_State_Bits_16_Type_Object_If_Same_RVL_7: +/* 06CFF0 7F0384C0 922F0002 */ lbu $t7, 2($s1) +/* 06CFF4 7F0384C4 92290003 */ lbu $t1, 3($s1) +/* 06CFF8 7F0384C8 922B0004 */ lbu $t3, 4($s1) +/* 06CFFC 7F0384CC 000F7600 */ sll $t6, $t7, 0x18 +/* 06D000 7F0384D0 00096C00 */ sll $t5, $t1, 0x10 +/* 06D004 7F0384D4 92390005 */ lbu $t9, 5($s1) +/* 06D008 7F0384D8 01CD5025 */ or $t2, $t6, $t5 +/* 06D00C 7F0384DC 000B6200 */ sll $t4, $t3, 8 +/* 06D010 7F0384E0 014CC025 */ or $t8, $t2, $t4 +/* 06D014 7F0384E4 92240001 */ lbu $a0, 1($s1) +/* 06D018 7F0384E8 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D01C 7F0384EC 03198025 */ or $s0, $t8, $t9 +/* 06D020 7F0384F0 50400010 */ beql $v0, $zero, .L7F038534 +/* 06D024 7F0384F4 26520007 */ addiu $s2, $s2, 7 +/* 06D028 7F0384F8 8C4F0010 */ lw $t7, 0x10($v0) +/* 06D02C 7F0384FC 51E0000D */ beql $t7, $zero, .L7F038534 +/* 06D030 7F038500 26520007 */ addiu $s2, $s2, 7 +/* 06D034 7F038504 8C490008 */ lw $t1, 8($v0) +/* 06D038 7F038508 02C02025 */ move $a0, $s6 +/* 06D03C 7F03850C 02402825 */ move $a1, $s2 +/* 06D040 7F038510 01307024 */ and $t6, $t1, $s0 +/* 06D044 7F038514 560E0007 */ bnel $s0, $t6, .L7F038534 +/* 06D048 7F038518 26520007 */ addiu $s2, $s2, 7 +/* 06D04C 7F03851C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D050 7F038520 92260006 */ lbu $a2, 6($s1) +/* 06D054 7F038524 00409025 */ move $s2, $v0 +/* 06D058 7F038528 1000F418 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D05C 7F03852C 02C28821 */ addu $s1, $s6, $v0 +/* 06D060 7F038530 26520007 */ addiu $s2, $s2, 7 +.L7F038534: +/* 06D064 7F038534 1000F415 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D068 7F038538 26310007 */ addiu $s1, $s1, 7 +actionA6_Set_16_Object_States_More_6: +/* 06D06C 7F03853C 922D0002 */ lbu $t5, 2($s1) +/* 06D070 7F038540 922A0003 */ lbu $t2, 3($s1) +/* 06D074 7F038544 92390004 */ lbu $t9, 4($s1) +/* 06D078 7F038548 000D5E00 */ sll $t3, $t5, 0x18 +/* 06D07C 7F03854C 000A6400 */ sll $t4, $t2, 0x10 +/* 06D080 7F038550 922E0005 */ lbu $t6, 5($s1) +/* 06D084 7F038554 016CC025 */ or $t8, $t3, $t4 +/* 06D088 7F038558 00197A00 */ sll $t7, $t9, 8 +/* 06D08C 7F03855C 030F4825 */ or $t1, $t8, $t7 +/* 06D090 7F038560 92240001 */ lbu $a0, 1($s1) +/* 06D094 7F038564 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D098 7F038568 012E8025 */ or $s0, $t1, $t6 +/* 06D09C 7F03856C 10400007 */ beqz $v0, .L7F03858C +/* 06D0A0 7F038570 26520006 */ addiu $s2, $s2, 6 +/* 06D0A4 7F038574 8C4D0010 */ lw $t5, 0x10($v0) +/* 06D0A8 7F038578 11A00004 */ beqz $t5, .L7F03858C +/* 06D0AC 7F03857C 00000000 */ nop +/* 06D0B0 7F038580 8C4A000C */ lw $t2, 0xc($v0) +/* 06D0B4 7F038584 01505825 */ or $t3, $t2, $s0 +/* 06D0B8 7F038588 AC4B000C */ sw $t3, 0xc($v0) +.L7F03858C: +/* 06D0BC 7F03858C 1000F3FF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D0C0 7F038590 26310006 */ addiu $s1, $s1, 6 +actionA7_Unset_16_Object_States_More_6: +/* 06D0C4 7F038594 922C0002 */ lbu $t4, 2($s1) +/* 06D0C8 7F038598 92380003 */ lbu $t8, 3($s1) +/* 06D0CC 7F03859C 922E0004 */ lbu $t6, 4($s1) +/* 06D0D0 7F0385A0 000CCE00 */ sll $t9, $t4, 0x18 +/* 06D0D4 7F0385A4 00187C00 */ sll $t7, $t8, 0x10 +/* 06D0D8 7F0385A8 922B0005 */ lbu $t3, 5($s1) +/* 06D0DC 7F0385AC 032F4825 */ or $t1, $t9, $t7 +/* 06D0E0 7F0385B0 000E6A00 */ sll $t5, $t6, 8 +/* 06D0E4 7F0385B4 012D5025 */ or $t2, $t1, $t5 +/* 06D0E8 7F0385B8 92240001 */ lbu $a0, 1($s1) +/* 06D0EC 7F0385BC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D0F0 7F0385C0 014B8025 */ or $s0, $t2, $t3 +/* 06D0F4 7F0385C4 10400008 */ beqz $v0, .L7F0385E8 +/* 06D0F8 7F0385C8 26520006 */ addiu $s2, $s2, 6 +/* 06D0FC 7F0385CC 8C4C0010 */ lw $t4, 0x10($v0) +/* 06D100 7F0385D0 11800005 */ beqz $t4, .L7F0385E8 +/* 06D104 7F0385D4 00000000 */ nop +/* 06D108 7F0385D8 8C58000C */ lw $t8, 0xc($v0) +/* 06D10C 7F0385DC 0200C827 */ not $t9, $s0 +/* 06D110 7F0385E0 03197824 */ and $t7, $t8, $t9 +/* 06D114 7F0385E4 AC4F000C */ sw $t7, 0xc($v0) +.L7F0385E8: +/* 06D118 7F0385E8 1000F3E8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D11C 7F0385EC 26310006 */ addiu $s1, $s1, 6 +actionA8_Check_16_Object_States_More_If_Same_RVL_7: +/* 06D120 7F0385F0 922E0002 */ lbu $t6, 2($s1) +/* 06D124 7F0385F4 922D0003 */ lbu $t5, 3($s1) +/* 06D128 7F0385F8 922C0004 */ lbu $t4, 4($s1) +/* 06D12C 7F0385FC 000E4E00 */ sll $t1, $t6, 0x18 +/* 06D130 7F038600 000D5400 */ sll $t2, $t5, 0x10 +/* 06D134 7F038604 922F0005 */ lbu $t7, 5($s1) +/* 06D138 7F038608 012A5825 */ or $t3, $t1, $t2 +/* 06D13C 7F03860C 000CC200 */ sll $t8, $t4, 8 +/* 06D140 7F038610 0178C825 */ or $t9, $t3, $t8 +/* 06D144 7F038614 92240001 */ lbu $a0, 1($s1) +/* 06D148 7F038618 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D14C 7F03861C 032F8025 */ or $s0, $t9, $t7 +/* 06D150 7F038620 50400010 */ beql $v0, $zero, .L7F038664 +/* 06D154 7F038624 26520007 */ addiu $s2, $s2, 7 +/* 06D158 7F038628 8C4E0010 */ lw $t6, 0x10($v0) +/* 06D15C 7F03862C 51C0000D */ beql $t6, $zero, .L7F038664 +/* 06D160 7F038630 26520007 */ addiu $s2, $s2, 7 +/* 06D164 7F038634 8C4D000C */ lw $t5, 0xc($v0) +/* 06D168 7F038638 02C02025 */ move $a0, $s6 +/* 06D16C 7F03863C 02402825 */ move $a1, $s2 +/* 06D170 7F038640 01B04824 */ and $t1, $t5, $s0 +/* 06D174 7F038644 56090007 */ bnel $s0, $t1, .L7F038664 +/* 06D178 7F038648 26520007 */ addiu $s2, $s2, 7 +/* 06D17C 7F03864C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D180 7F038650 92260006 */ lbu $a2, 6($s1) +/* 06D184 7F038654 00409025 */ move $s2, $v0 +/* 06D188 7F038658 1000F3CC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D18C 7F03865C 02C28821 */ addu $s1, $s6, $v0 +/* 06D190 7F038660 26520007 */ addiu $s2, $s2, 7 +.L7F038664: +/* 06D194 7F038664 1000F3C9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D198 7F038668 26310007 */ addiu $s1, $s1, 7 +actionA9_Sets_To_Guard_ID_Fc_Current_Guard_2: +/* 06D19C 7F03866C 02E02025 */ move $a0, $s7 +/* 06D1A0 7F038670 0FC0CF3D */ jal sub_GAME_7F033CF4 +/* 06D1A4 7F038674 92250001 */ lbu $a1, 1($s1) +/* 06D1A8 7F038678 26520002 */ addiu $s2, $s2, 2 +/* 06D1AC 7F03867C 1000F3C3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D1B0 7F038680 26310002 */ addiu $s1, $s1, 2 +actionAA_Sets_FC_Value_For_Guard_ID_To_Guard_ID_3: +/* 06D1B4 7F038684 02E02025 */ move $a0, $s7 +/* 06D1B8 7F038688 92250001 */ lbu $a1, 1($s1) +/* 06D1BC 7F03868C 0FC0CF47 */ jal sub_GAME_7F033D1C +/* 06D1C0 7F038690 92260002 */ lbu $a2, 2($s1) +/* 06D1C4 7F038694 26520003 */ addiu $s2, $s2, 3 +/* 06D1C8 7F038698 1000F3BC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D1CC 7F03869C 26310003 */ addiu $s1, $s1, 3 +actionAB_Set_Current_Guards_2328_Value_To_Preset_3: +/* 06D1D0 7F0386A0 922A0001 */ lbu $t2, 1($s1) +/* 06D1D4 7F0386A4 922B0002 */ lbu $t3, 2($s1) +/* 06D1D8 7F0386A8 8FB907AC */ lw $t9, 0x7ac($sp) +/* 06D1DC 7F0386AC 000A6200 */ sll $t4, $t2, 8 +/* 06D1E0 7F0386B0 018B1025 */ or $v0, $t4, $t3 +/* 06D1E4 7F0386B4 3058FFFF */ andi $t8, $v0, 0xffff +/* 06D1E8 7F0386B8 12E00007 */ beqz $s7, .L7F0386D8 +/* 06D1EC 7F0386BC 03001025 */ move $v0, $t8 +/* 06D1F0 7F0386C0 02E02025 */ move $a0, $s7 +/* 06D1F4 7F0386C4 0FC0CF57 */ jal sub_GAME_7F033D5C +/* 06D1F8 7F0386C8 03002825 */ move $a1, $t8 +/* 06D1FC 7F0386CC 26520003 */ addiu $s2, $s2, 3 +/* 06D200 7F0386D0 1000F3AE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D204 7F0386D4 26310003 */ addiu $s1, $s1, 3 +.L7F0386D8: +/* 06D208 7F0386D8 13200002 */ beqz $t9, .L7F0386E4 +/* 06D20C 7F0386DC 26520003 */ addiu $s2, $s2, 3 +/* 06D210 7F0386E0 A7220006 */ sh $v0, 6($t9) +.L7F0386E4: +/* 06D214 7F0386E4 1000F3A9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D218 7F0386E8 26310003 */ addiu $s1, $s1, 3 +actionAC_Set_Guard_ID_numS_2328_Value_To_Preset_4: +/* 06D21C 7F0386EC 922F0002 */ lbu $t7, 2($s1) +/* 06D220 7F0386F0 922D0003 */ lbu $t5, 3($s1) +/* 06D224 7F0386F4 02E02025 */ move $a0, $s7 +/* 06D228 7F0386F8 000F7200 */ sll $t6, $t7, 8 +/* 06D22C 7F0386FC 01CD1025 */ or $v0, $t6, $t5 +/* 06D230 7F038700 3046FFFF */ andi $a2, $v0, 0xffff +/* 06D234 7F038704 0FC0CF61 */ jal sub_GAME_7F033D84 +/* 06D238 7F038708 92250001 */ lbu $a1, 1($s1) +/* 06D23C 7F03870C 26520004 */ addiu $s2, $s2, 4 +/* 06D240 7F038710 1000F39E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D244 7F038714 26310004 */ addiu $s1, $s1, 4 +actionAD_Debug_Comment_20: +/* 06D248 7F038718 02C02025 */ move $a0, $s6 +/* 06D24C 7F03871C 0FC0D27F */ jal get_length_of_action_block +/* 06D250 7F038720 02402825 */ move $a1, $s2 +/* 06D254 7F038724 02429021 */ addu $s2, $s2, $v0 +/* 06D258 7F038728 1000F398 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D25C 7F03872C 02D28821 */ addu $s1, $s6, $s2 +actionAE_Reset_Cycle_Counter_And_Enable_It_1: +/* 06D260 7F038730 0FC0CCF1 */ jal reset_and_start_loop_counter +/* 06D264 7F038734 02E02025 */ move $a0, $s7 +/* 06D268 7F038738 26520001 */ addiu $s2, $s2, 1 +/* 06D26C 7F03873C 1000F393 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D270 7F038740 26310001 */ addiu $s1, $s1, 1 +actionAF_Reset_Cycle_Counter_1: +/* 06D274 7F038744 AEE00110 */ sw $zero, 0x110($s7) +/* 06D278 7F038748 26520001 */ addiu $s2, $s2, 1 +/* 06D27C 7F03874C 1000F38F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D280 7F038750 26310001 */ addiu $s1, $s1, 1 +actionB0_Disable_Cycle_Counter_1: +/* 06D284 7F038754 96EA0012 */ lhu $t2, 0x12($s7) +/* 06D288 7F038758 26520001 */ addiu $s2, $s2, 1 +/* 06D28C 7F03875C 26310001 */ addiu $s1, $s1, 1 +/* 06D290 7F038760 314CFFBF */ andi $t4, $t2, 0xffbf +/* 06D294 7F038764 1000F389 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D298 7F038768 A6EC0012 */ sh $t4, 0x12($s7) +actionB1_Enable_Cycle_Counter_1: +/* 06D29C 7F03876C 96EB0012 */ lhu $t3, 0x12($s7) +/* 06D2A0 7F038770 26520001 */ addiu $s2, $s2, 1 +/* 06D2A4 7F038774 26310001 */ addiu $s1, $s1, 1 +/* 06D2A8 7F038778 35780040 */ ori $t8, $t3, 0x40 +/* 06D2AC 7F03877C 1000F383 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D2B0 7F038780 A6F80012 */ sh $t8, 0x12($s7) +actionB2_Check_Cycle_Counter_Enable_Status_2: +/* 06D2B4 7F038784 96F90012 */ lhu $t9, 0x12($s7) +/* 06D2B8 7F038788 02C02025 */ move $a0, $s6 +/* 06D2BC 7F03878C 02402825 */ move $a1, $s2 +/* 06D2C0 7F038790 332F0040 */ andi $t7, $t9, 0x40 +/* 06D2C4 7F038794 55E00007 */ bnezl $t7, .L7F0387B4 +/* 06D2C8 7F038798 26520002 */ addiu $s2, $s2, 2 +/* 06D2CC 7F03879C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D2D0 7F0387A0 92260001 */ lbu $a2, 1($s1) +/* 06D2D4 7F0387A4 00409025 */ move $s2, $v0 +/* 06D2D8 7F0387A8 1000F378 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D2DC 7F0387AC 02C28821 */ addu $s1, $s6, $v0 +/* 06D2E0 7F0387B0 26520002 */ addiu $s2, $s2, 2 +.L7F0387B4: +/* 06D2E4 7F0387B4 1000F375 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D2E8 7F0387B8 26310002 */ addiu $s1, $s1, 2 +actionB3_If_Cycle_Counter_LTV_RVL_5: +/* 06D2EC 7F0387BC 922E0001 */ lbu $t6, 1($s1) +/* 06D2F0 7F0387C0 92290002 */ lbu $t1, 2($s1) +/* 06D2F4 7F0387C4 922B0003 */ lbu $t3, 3($s1) +/* 06D2F8 7F0387C8 000E6C00 */ sll $t5, $t6, 0x10 +/* 06D2FC 7F0387CC 00095200 */ sll $t2, $t1, 8 +/* 06D300 7F0387D0 01AA6025 */ or $t4, $t5, $t2 +/* 06D304 7F0387D4 018BC025 */ or $t8, $t4, $t3 +/* 06D308 7F0387D8 44985000 */ mtc1 $t8, $f10 +/* 06D30C 7F0387DC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06D310 7F0387E0 07010004 */ bgez $t8, .L7F0387F4 +/* 06D314 7F0387E4 468054A0 */ cvt.s.w $f18, $f10 +/* 06D318 7F0387E8 44813000 */ mtc1 $at, $f6 +/* 06D31C 7F0387EC 00000000 */ nop +/* 06D320 7F0387F0 46069480 */ add.s $f18, $f18, $f6 +.L7F0387F4: +/* 06D324 7F0387F4 46169403 */ div.s $f16, $f18, $f22 +/* 06D328 7F0387F8 02E02025 */ move $a0, $s7 +/* 06D32C 7F0387FC 0FC0CCF6 */ jal get_loop_counter_time_in_seconds +/* 06D330 7F038800 E7B002B0 */ swc1 $f16, 0x2b0($sp) +/* 06D334 7F038804 C7A802B0 */ lwc1 $f8, 0x2b0($sp) +/* 06D338 7F038808 02C02025 */ move $a0, $s6 +/* 06D33C 7F03880C 02402825 */ move $a1, $s2 +/* 06D340 7F038810 4608003C */ c.lt.s $f0, $f8 +/* 06D344 7F038814 00000000 */ nop +/* 06D348 7F038818 45020007 */ bc1fl .L7F038838 +/* 06D34C 7F03881C 26520005 */ addiu $s2, $s2, 5 +/* 06D350 7F038820 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D354 7F038824 92260004 */ lbu $a2, 4($s1) +/* 06D358 7F038828 00409025 */ move $s2, $v0 +/* 06D35C 7F03882C 1000F357 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D360 7F038830 02C28821 */ addu $s1, $s6, $v0 +/* 06D364 7F038834 26520005 */ addiu $s2, $s2, 5 +.L7F038838: +/* 06D368 7F038838 1000F354 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D36C 7F03883C 26310005 */ addiu $s1, $s1, 5 +actionB4_If_Cycle_Counter_GTV_RVL_5: +/* 06D370 7F038840 92390001 */ lbu $t9, 1($s1) +/* 06D374 7F038844 922E0002 */ lbu $t6, 2($s1) +/* 06D378 7F038848 922A0003 */ lbu $t2, 3($s1) +/* 06D37C 7F03884C 00197C00 */ sll $t7, $t9, 0x10 +/* 06D380 7F038850 000E4A00 */ sll $t1, $t6, 8 +/* 06D384 7F038854 01E96825 */ or $t5, $t7, $t1 +/* 06D388 7F038858 01AA6025 */ or $t4, $t5, $t2 +/* 06D38C 7F03885C 448C2000 */ mtc1 $t4, $f4 +/* 06D390 7F038860 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06D394 7F038864 05810004 */ bgez $t4, .L7F038878 +/* 06D398 7F038868 468022A0 */ cvt.s.w $f10, $f4 +/* 06D39C 7F03886C 44813000 */ mtc1 $at, $f6 +/* 06D3A0 7F038870 00000000 */ nop +/* 06D3A4 7F038874 46065280 */ add.s $f10, $f10, $f6 +.L7F038878: +/* 06D3A8 7F038878 46165483 */ div.s $f18, $f10, $f22 +/* 06D3AC 7F03887C 02E02025 */ move $a0, $s7 +/* 06D3B0 7F038880 0FC0CCF6 */ jal get_loop_counter_time_in_seconds +/* 06D3B4 7F038884 E7B202A8 */ swc1 $f18, 0x2a8($sp) +/* 06D3B8 7F038888 C7B002A8 */ lwc1 $f16, 0x2a8($sp) +/* 06D3BC 7F03888C 02C02025 */ move $a0, $s6 +/* 06D3C0 7F038890 02402825 */ move $a1, $s2 +/* 06D3C4 7F038894 4600803C */ c.lt.s $f16, $f0 +/* 06D3C8 7F038898 00000000 */ nop +/* 06D3CC 7F03889C 45020007 */ bc1fl .L7F0388BC +/* 06D3D0 7F0388A0 26520005 */ addiu $s2, $s2, 5 +/* 06D3D4 7F0388A4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D3D8 7F0388A8 92260004 */ lbu $a2, 4($s1) +/* 06D3DC 7F0388AC 00409025 */ move $s2, $v0 +/* 06D3E0 7F0388B0 1000F336 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D3E4 7F0388B4 02C28821 */ addu $s1, $s6, $v0 +/* 06D3E8 7F0388B8 26520005 */ addiu $s2, $s2, 5 +.L7F0388BC: +/* 06D3EC 7F0388BC 1000F333 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D3F0 7F0388C0 26310005 */ addiu $s1, $s1, 5 +actionB5_Show_Timer_1: +/* 06D3F4 7F0388C4 24040001 */ li $a0, 1 +/* 06D3F8 7F0388C8 0FC15858 */ jal set_unset_clock_lock_bits +/* 06D3FC 7F0388CC 24050001 */ li $a1, 1 +/* 06D400 7F0388D0 26520001 */ addiu $s2, $s2, 1 +/* 06D404 7F0388D4 1000F32D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D408 7F0388D8 26310001 */ addiu $s1, $s1, 1 +actionB6_Hide_Timer_Silent_Countdown_1: +/* 06D40C 7F0388DC 24040001 */ li $a0, 1 +/* 06D410 7F0388E0 0FC15858 */ jal set_unset_clock_lock_bits +/* 06D414 7F0388E4 00002825 */ move $a1, $zero +/* 06D418 7F0388E8 26520001 */ addiu $s2, $s2, 1 +/* 06D41C 7F0388EC 1000F327 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D420 7F0388F0 26310001 */ addiu $s1, $s1, 1 +actionB7_Set_Timer_X_Seconds__Doesnt_Show_Timer_Yet_3: +/* 06D424 7F0388F4 922B0001 */ lbu $t3, 1($s1) +/* 06D428 7F0388F8 92390002 */ lbu $t9, 2($s1) +/* 06D42C 7F0388FC 000BC200 */ sll $t8, $t3, 8 +/* 06D430 7F038900 03197025 */ or $t6, $t8, $t9 +/* 06D434 7F038904 448E4000 */ mtc1 $t6, $f8 +/* 06D438 7F038908 00000000 */ nop +/* 06D43C 7F03890C 46804020 */ cvt.s.w $f0, $f8 +/* 06D440 7F038910 46160302 */ mul.s $f12, $f0, $f22 +/* 06D444 7F038914 0FC1586C */ jal set_clock_time +/* 06D448 7F038918 00000000 */ nop +/* 06D44C 7F03891C 26520003 */ addiu $s2, $s2, 3 +/* 06D450 7F038920 1000F31A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D454 7F038924 26310003 */ addiu $s1, $s1, 3 +actionB8_Stop_Timer_1: +/* 06D458 7F038928 0FC15872 */ jal set_clock_enable +/* 06D45C 7F03892C 00002025 */ move $a0, $zero +/* 06D460 7F038930 26520001 */ addiu $s2, $s2, 1 +/* 06D464 7F038934 1000F315 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D468 7F038938 26310001 */ addiu $s1, $s1, 1 +actionB9_Start_Timer_1: +/* 06D46C 7F03893C 0FC15872 */ jal set_clock_enable +/* 06D470 7F038940 24040001 */ li $a0, 1 +/* 06D474 7F038944 26520001 */ addiu $s2, $s2, 1 +/* 06D478 7F038948 1000F310 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D47C 7F03894C 26310001 */ addiu $s1, $s1, 1 +actionBA_Check_Timer_Enabled_Status_RVL_If_Enabled_2: +/* 06D480 7F038950 0FC15875 */ jal get_clock_enable +/* 06D484 7F038954 00000000 */ nop +/* 06D488 7F038958 14400007 */ bnez $v0, .L7F038978 +/* 06D48C 7F03895C 02C02025 */ move $a0, $s6 +/* 06D490 7F038960 02402825 */ move $a1, $s2 +/* 06D494 7F038964 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D498 7F038968 92260001 */ lbu $a2, 1($s1) +/* 06D49C 7F03896C 00409025 */ move $s2, $v0 +/* 06D4A0 7F038970 1000F306 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D4A4 7F038974 02C28821 */ addu $s1, $s6, $v0 +.L7F038978: +/* 06D4A8 7F038978 26520002 */ addiu $s2, $s2, 2 +/* 06D4AC 7F03897C 1000F303 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D4B0 7F038980 26310002 */ addiu $s1, $s1, 2 +actionBB_Detect_If_Timer_Below_Certain_Point_RVL_If_So_4: +/* 06D4B4 7F038984 922F0001 */ lbu $t7, 1($s1) +/* 06D4B8 7F038988 922D0002 */ lbu $t5, 2($s1) +/* 06D4BC 7F03898C 000F4A00 */ sll $t1, $t7, 8 +/* 06D4C0 7F038990 012D5025 */ or $t2, $t1, $t5 +/* 06D4C4 7F038994 448A2000 */ mtc1 $t2, $f4 +/* 06D4C8 7F038998 00000000 */ nop +/* 06D4CC 7F03899C 468021A0 */ cvt.s.w $f6, $f4 +/* 06D4D0 7F0389A0 0FC1586F */ jal get_clock_time +/* 06D4D4 7F0389A4 E7A60294 */ swc1 $f6, 0x294($sp) +/* 06D4D8 7F0389A8 C7AA0294 */ lwc1 $f10, 0x294($sp) +/* 06D4DC 7F0389AC 02C02025 */ move $a0, $s6 +/* 06D4E0 7F0389B0 02402825 */ move $a1, $s2 +/* 06D4E4 7F0389B4 46165482 */ mul.s $f18, $f10, $f22 +/* 06D4E8 7F0389B8 4612003C */ c.lt.s $f0, $f18 +/* 06D4EC 7F0389BC 00000000 */ nop +/* 06D4F0 7F0389C0 45020007 */ bc1fl .L7F0389E0 +/* 06D4F4 7F0389C4 26520004 */ addiu $s2, $s2, 4 +/* 06D4F8 7F0389C8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D4FC 7F0389CC 92260003 */ lbu $a2, 3($s1) +/* 06D500 7F0389D0 00409025 */ move $s2, $v0 +/* 06D504 7F0389D4 1000F2ED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D508 7F0389D8 02C28821 */ addu $s1, $s6, $v0 +/* 06D50C 7F0389DC 26520004 */ addiu $s2, $s2, 4 +.L7F0389E0: +/* 06D510 7F0389E0 1000F2EA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D514 7F0389E4 26310004 */ addiu $s1, $s1, 4 +actionBC_Detect_If_Timer_Above_Certain_Point_RVL_If_So_4: +/* 06D518 7F0389E8 922C0001 */ lbu $t4, 1($s1) +/* 06D51C 7F0389EC 92380002 */ lbu $t8, 2($s1) +/* 06D520 7F0389F0 000C5A00 */ sll $t3, $t4, 8 +/* 06D524 7F0389F4 0178C825 */ or $t9, $t3, $t8 +/* 06D528 7F0389F8 44998000 */ mtc1 $t9, $f16 +/* 06D52C 7F0389FC 00000000 */ nop +/* 06D530 7F038A00 46808220 */ cvt.s.w $f8, $f16 +/* 06D534 7F038A04 0FC1586F */ jal get_clock_time +/* 06D538 7F038A08 E7A8028C */ swc1 $f8, 0x28c($sp) +/* 06D53C 7F038A0C C7A4028C */ lwc1 $f4, 0x28c($sp) +/* 06D540 7F038A10 02C02025 */ move $a0, $s6 +/* 06D544 7F038A14 02402825 */ move $a1, $s2 +/* 06D548 7F038A18 46162182 */ mul.s $f6, $f4, $f22 +/* 06D54C 7F038A1C 4600303C */ c.lt.s $f6, $f0 +/* 06D550 7F038A20 00000000 */ nop +/* 06D554 7F038A24 45020007 */ bc1fl .L7F038A44 +/* 06D558 7F038A28 26520004 */ addiu $s2, $s2, 4 +/* 06D55C 7F038A2C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D560 7F038A30 92260003 */ lbu $a2, 3($s1) +/* 06D564 7F038A34 00409025 */ move $s2, $v0 +/* 06D568 7F038A38 1000F2D4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D56C 7F038A3C 02C28821 */ addu $s1, $s6, $v0 +/* 06D570 7F038A40 26520004 */ addiu $s2, $s2, 4 +.L7F038A44: +/* 06D574 7F038A44 1000F2D1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D578 7F038A48 26310004 */ addiu $s1, $s1, 4 +actionBD_Spawn_Guard_C: +/* 06D57C 7F038A4C 922E0003 */ lbu $t6, 3($s1) +/* 06D580 7F038A50 92290004 */ lbu $t1, 4($s1) +/* 06D584 7F038A54 922A0007 */ lbu $t2, 7($s1) +/* 06D588 7F038A58 000E7A00 */ sll $t7, $t6, 8 +/* 06D58C 7F038A5C 922B0008 */ lbu $t3, 8($s1) +/* 06D590 7F038A60 01E98025 */ or $s0, $t7, $t1 +/* 06D594 7F038A64 922E0009 */ lbu $t6, 9($s1) +/* 06D598 7F038A68 320DFFFF */ andi $t5, $s0, 0xffff +/* 06D59C 7F038A6C 01A08025 */ move $s0, $t5 +/* 06D5A0 7F038A70 922D000A */ lbu $t5, 0xa($s1) +/* 06D5A4 7F038A74 000A6600 */ sll $t4, $t2, 0x18 +/* 06D5A8 7F038A78 000BC400 */ sll $t8, $t3, 0x10 +/* 06D5AC 7F038A7C 0198C825 */ or $t9, $t4, $t8 +/* 06D5B0 7F038A80 000E7A00 */ sll $t7, $t6, 8 +/* 06D5B4 7F038A84 032F4825 */ or $t1, $t9, $t7 +/* 06D5B8 7F038A88 012D5025 */ or $t2, $t1, $t5 +/* 06D5BC 7F038A8C AFAA0280 */ sw $t2, 0x280($sp) +/* 06D5C0 7F038A90 922B0005 */ lbu $t3, 5($s1) +/* 06D5C4 7F038A94 92380006 */ lbu $t8, 6($s1) +/* 06D5C8 7F038A98 000B6200 */ sll $t4, $t3, 8 +/* 06D5CC 7F038A9C 01981025 */ or $v0, $t4, $t8 +/* 06D5D0 7F038AA0 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06D5D4 7F038AA4 3044FFFF */ andi $a0, $v0, 0xffff +/* 06D5D8 7F038AA8 8FB90280 */ lw $t9, 0x280($sp) +/* 06D5DC 7F038AAC 92250001 */ lbu $a1, 1($s1) +/* 06D5E0 7F038AB0 82260002 */ lb $a2, 2($s1) +/* 06D5E4 7F038AB4 AFA20010 */ sw $v0, 0x10($sp) +/* 06D5E8 7F038AB8 02E02025 */ move $a0, $s7 +/* 06D5EC 7F038ABC 02003825 */ move $a3, $s0 +/* 06D5F0 7F038AC0 0FC0D096 */ jal guard_constructor_BD +/* 06D5F4 7F038AC4 AFB90014 */ sw $t9, 0x14($sp) +/* 06D5F8 7F038AC8 10400007 */ beqz $v0, .L7F038AE8 +/* 06D5FC 7F038ACC 02C02025 */ move $a0, $s6 +/* 06D600 7F038AD0 02402825 */ move $a1, $s2 +/* 06D604 7F038AD4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D608 7F038AD8 9226000B */ lbu $a2, 0xb($s1) +/* 06D60C 7F038ADC 00409025 */ move $s2, $v0 +/* 06D610 7F038AE0 1000F2AA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D614 7F038AE4 02C28821 */ addu $s1, $s6, $v0 +.L7F038AE8: +/* 06D618 7F038AE8 2652000C */ addiu $s2, $s2, 0xc +/* 06D61C 7F038AEC 1000F2A7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D620 7F038AF0 2631000C */ addiu $s1, $s1, 0xc +actionBE_Respawn_Guard_with_ID_B: +/* 06D624 7F038AF4 922F0006 */ lbu $t7, 6($s1) +/* 06D628 7F038AF8 922D0007 */ lbu $t5, 7($s1) +/* 06D62C 7F038AFC 922C0008 */ lbu $t4, 8($s1) +/* 06D630 7F038B00 000F4E00 */ sll $t1, $t7, 0x18 +/* 06D634 7F038B04 000D5400 */ sll $t2, $t5, 0x10 +/* 06D638 7F038B08 922F0004 */ lbu $t7, 4($s1) +/* 06D63C 7F038B0C 012A5825 */ or $t3, $t1, $t2 +/* 06D640 7F038B10 92290005 */ lbu $t1, 5($s1) +/* 06D644 7F038B14 92390009 */ lbu $t9, 9($s1) +/* 06D648 7F038B18 000CC200 */ sll $t8, $t4, 8 +/* 06D64C 7F038B1C 000F6A00 */ sll $t5, $t7, 8 +/* 06D650 7F038B20 01787025 */ or $t6, $t3, $t8 +/* 06D654 7F038B24 01A91025 */ or $v0, $t5, $t1 +/* 06D658 7F038B28 3044FFFF */ andi $a0, $v0, 0xffff +/* 06D65C 7F038B2C 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06D660 7F038B30 01D98025 */ or $s0, $t6, $t9 +/* 06D664 7F038B34 92250001 */ lbu $a1, 1($s1) +/* 06D668 7F038B38 82260002 */ lb $a2, 2($s1) +/* 06D66C 7F038B3C 92270003 */ lbu $a3, 3($s1) +/* 06D670 7F038B40 AFB00014 */ sw $s0, 0x14($sp) +/* 06D674 7F038B44 AFA20010 */ sw $v0, 0x10($sp) +/* 06D678 7F038B48 0FC0D0C2 */ jal guard_constructor_BE +/* 06D67C 7F038B4C 02E02025 */ move $a0, $s7 +/* 06D680 7F038B50 10400007 */ beqz $v0, .L7F038B70 +/* 06D684 7F038B54 02C02025 */ move $a0, $s6 +/* 06D688 7F038B58 02402825 */ move $a1, $s2 +/* 06D68C 7F038B5C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D690 7F038B60 9226000A */ lbu $a2, 0xa($s1) +/* 06D694 7F038B64 00409025 */ move $s2, $v0 +/* 06D698 7F038B68 1000F288 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D69C 7F038B6C 02C28821 */ addu $s1, $s6, $v0 +.L7F038B70: +/* 06D6A0 7F038B70 2652000B */ addiu $s2, $s2, 0xb +/* 06D6A4 7F038B74 1000F285 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D6A8 7F038B78 2631000B */ addiu $s1, $s1, 0xb +actionBF_Spawn_Weapon_9: +/* 06D6AC 7F038B7C 922C0004 */ lbu $t4, 4($s1) +/* 06D6B0 7F038B80 92380005 */ lbu $t8, 5($s1) +/* 06D6B4 7F038B84 922F0006 */ lbu $t7, 6($s1) +/* 06D6B8 7F038B88 000C5E00 */ sll $t3, $t4, 0x18 +/* 06D6BC 7F038B8C 922C0001 */ lbu $t4, 1($s1) +/* 06D6C0 7F038B90 00187400 */ sll $t6, $t8, 0x10 +/* 06D6C4 7F038B94 016EC825 */ or $t9, $t3, $t6 +/* 06D6C8 7F038B98 922A0007 */ lbu $t2, 7($s1) +/* 06D6CC 7F038B9C 922B0002 */ lbu $t3, 2($s1) +/* 06D6D0 7F038BA0 000F6A00 */ sll $t5, $t7, 8 +/* 06D6D4 7F038BA4 032D4825 */ or $t1, $t9, $t5 +/* 06D6D8 7F038BA8 000CC200 */ sll $t8, $t4, 8 +/* 06D6DC 7F038BAC 00001825 */ move $v1, $zero +/* 06D6E0 7F038BB0 012A8025 */ or $s0, $t1, $t2 +/* 06D6E4 7F038BB4 12E00027 */ beqz $s7, .L7F038C54 +/* 06D6E8 7F038BB8 030B9825 */ or $s3, $t8, $t3 +/* 06D6EC 7F038BBC 8EEE0018 */ lw $t6, 0x18($s7) +/* 06D6F0 7F038BC0 11C00024 */ beqz $t6, .L7F038C54 +/* 06D6F4 7F038BC4 00000000 */ nop +/* 06D6F8 7F038BC8 8EEF001C */ lw $t7, 0x1c($s7) +/* 06D6FC 7F038BCC 11E00021 */ beqz $t7, .L7F038C54 +/* 06D700 7F038BD0 00000000 */ nop +/* 06D704 7F038BD4 0FC249EF */ jal cheatCheckIfOn +/* 06D708 7F038BD8 2404001C */ li $a0, 28 +/* 06D70C 7F038BDC 50400018 */ beql $v0, $zero, .L7F038C40 +/* 06D710 7F038BE0 02E02025 */ move $a0, $s7 +/* 06D714 7F038BE4 92260003 */ lbu $a2, 3($s1) +/* 06D718 7F038BE8 24D9FFFE */ addiu $t9, $a2, -2 +/* 06D71C 7F038BEC 2F21001E */ sltiu $at, $t9, 0x1e +/* 06D720 7F038BF0 1020000C */ beqz $at, .L7F038C24 +/* 06D724 7F038BF4 0019C880 */ sll $t9, $t9, 2 +/* 06D728 7F038BF8 3C018005 */ lui $at, %hi(jpt_800528FC) +/* 06D72C 7F038BFC 00390821 */ addu $at, $at, $t9 +/* 06D730 7F038C00 8C3928FC */ lw $t9, %lo(jpt_800528FC)($at) +.L7F038C04: +/* 06D734 7F038C04 03200008 */ jr $t9 +/* 06D738 7F038C08 00000000 */ nop +loc_CODE_7F038C0C: +/* 06D73C 7F038C0C 02E02025 */ move $a0, $s7 +/* 06D740 7F038C10 240500D3 */ li $a1, 211 +/* 06D744 7F038C14 24060019 */ li $a2, 25 +/* 06D748 7F038C18 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D74C 7F038C1C 02003825 */ move $a3, $s0 +/* 06D750 7F038C20 92260003 */ lbu $a2, 3($s1) +.L7F038C24: +/* 06D754 7F038C24 02E02025 */ move $a0, $s7 +/* 06D758 7F038C28 02602825 */ move $a1, $s3 +/* 06D75C 7F038C2C 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D760 7F038C30 02003825 */ move $a3, $s0 +/* 06D764 7F038C34 10000007 */ b .L7F038C54 +/* 06D768 7F038C38 00401825 */ move $v1, $v0 +/* 06D76C 7F038C3C 02E02025 */ move $a0, $s7 +.L7F038C40: +/* 06D770 7F038C40 02602825 */ move $a1, $s3 +/* 06D774 7F038C44 92260003 */ lbu $a2, 3($s1) +/* 06D778 7F038C48 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D77C 7F038C4C 02003825 */ move $a3, $s0 +/* 06D780 7F038C50 00401825 */ move $v1, $v0 +.L7F038C54: +/* 06D784 7F038C54 10600007 */ beqz $v1, .L7F038C74 +/* 06D788 7F038C58 02C02025 */ move $a0, $s6 +/* 06D78C 7F038C5C 02402825 */ move $a1, $s2 +/* 06D790 7F038C60 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D794 7F038C64 92260008 */ lbu $a2, 8($s1) +/* 06D798 7F038C68 00409025 */ move $s2, $v0 +/* 06D79C 7F038C6C 1000F247 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D7A0 7F038C70 02C28821 */ addu $s1, $s6, $v0 +.L7F038C74: +/* 06D7A4 7F038C74 26520009 */ addiu $s2, $s2, 9 +/* 06D7A8 7F038C78 1000F244 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D7AC 7F038C7C 26310009 */ addiu $s1, $s1, 9 +actionC0_Spawn_Hat_8: +/* 06D7B0 7F038C80 922D0003 */ lbu $t5, 3($s1) +/* 06D7B4 7F038C84 922A0004 */ lbu $t2, 4($s1) +/* 06D7B8 7F038C88 922B0005 */ lbu $t3, 5($s1) +/* 06D7BC 7F038C8C 000D4E00 */ sll $t1, $t5, 0x18 +/* 06D7C0 7F038C90 922D0001 */ lbu $t5, 1($s1) +/* 06D7C4 7F038C94 000A6400 */ sll $t4, $t2, 0x10 +/* 06D7C8 7F038C98 012CC025 */ or $t8, $t1, $t4 +/* 06D7CC 7F038C9C 92390006 */ lbu $t9, 6($s1) +/* 06D7D0 7F038CA0 92290002 */ lbu $t1, 2($s1) +/* 06D7D4 7F038CA4 000B7200 */ sll $t6, $t3, 8 +/* 06D7D8 7F038CA8 030E7825 */ or $t7, $t8, $t6 +/* 06D7DC 7F038CAC 000D5200 */ sll $t2, $t5, 8 +/* 06D7E0 7F038CB0 00001825 */ move $v1, $zero +/* 06D7E4 7F038CB4 01F93025 */ or $a2, $t7, $t9 +/* 06D7E8 7F038CB8 12E0000A */ beqz $s7, .L7F038CE4 +/* 06D7EC 7F038CBC 01492825 */ or $a1, $t2, $t1 +/* 06D7F0 7F038CC0 8EEC0018 */ lw $t4, 0x18($s7) +/* 06D7F4 7F038CC4 11800007 */ beqz $t4, .L7F038CE4 +/* 06D7F8 7F038CC8 00000000 */ nop +/* 06D7FC 7F038CCC 8EEB001C */ lw $t3, 0x1c($s7) +/* 06D800 7F038CD0 11600004 */ beqz $t3, .L7F038CE4 +/* 06D804 7F038CD4 00000000 */ nop +/* 06D808 7F038CD8 0FC14430 */ jal sub_GAME_7F0510C0 +/* 06D80C 7F038CDC 02E02025 */ move $a0, $s7 +/* 06D810 7F038CE0 00401825 */ move $v1, $v0 +.L7F038CE4: +/* 06D814 7F038CE4 10600007 */ beqz $v1, .L7F038D04 +/* 06D818 7F038CE8 02C02025 */ move $a0, $s6 +/* 06D81C 7F038CEC 02402825 */ move $a1, $s2 +/* 06D820 7F038CF0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D824 7F038CF4 92260007 */ lbu $a2, 7($s1) +/* 06D828 7F038CF8 00409025 */ move $s2, $v0 +/* 06D82C 7F038CFC 1000F223 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D830 7F038D00 02C28821 */ addu $s1, $s6, $v0 +.L7F038D04: +/* 06D834 7F038D04 26520008 */ addiu $s2, $s2, 8 +/* 06D838 7F038D08 1000F220 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D83C 7F038D0C 26310008 */ addiu $s1, $s1, 8 +actionC1_GuardIDDoesAV_If_Gunfire_RVL_WhenComplete_5: +/* 06D840 7F038D10 92380002 */ lbu $t8, 2($s1) +/* 06D844 7F038D14 922F0003 */ lbu $t7, 3($s1) +/* 06D848 7F038D18 AFA0020C */ sw $zero, 0x20c($sp) +/* 06D84C 7F038D1C 00187200 */ sll $t6, $t8, 8 +/* 06D850 7F038D20 01CF1025 */ or $v0, $t6, $t7 +/* 06D854 7F038D24 3044FFFF */ andi $a0, $v0, 0xffff +/* 06D858 7F038D28 AFA00210 */ sw $zero, 0x210($sp) +/* 06D85C 7F038D2C AFA00234 */ sw $zero, 0x234($sp) +/* 06D860 7F038D30 00009825 */ move $s3, $zero +/* 06D864 7F038D34 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06D868 7F038D38 0000A025 */ move $s4, $zero +/* 06D86C 7F038D3C 00408025 */ move $s0, $v0 +/* 06D870 7F038D40 02E02025 */ move $a0, $s7 +/* 06D874 7F038D44 0FC0CC10 */ jal get_handle_for_guard_id +/* 06D878 7F038D48 92250001 */ lbu $a1, 1($s1) +/* 06D87C 7F038D4C 10400051 */ beqz $v0, .L7F038E94 +/* 06D880 7F038D50 0040A825 */ move $s5, $v0 +/* 06D884 7F038D54 8C4D0014 */ lw $t5, 0x14($v0) +/* 06D888 7F038D58 02E02025 */ move $a0, $s7 +/* 06D88C 7F038D5C 31AA0002 */ andi $t2, $t5, 2 +/* 06D890 7F038D60 5140004D */ beql $t2, $zero, .L7F038E98 +/* 06D894 7F038D64 8FA90234 */ lw $t1, 0x234($sp) +/* 06D898 7F038D68 8045000F */ lb $a1, 0xf($v0) +/* 06D89C 7F038D6C 84470000 */ lh $a3, ($v0) +/* 06D8A0 7F038D70 AFA00014 */ sw $zero, 0x14($sp) +/* 06D8A4 7F038D74 AFB00010 */ sw $s0, 0x10($sp) +/* 06D8A8 7F038D78 0FC0D0C2 */ jal guard_constructor_BE +/* 06D8AC 7F038D7C 2406FFFF */ li $a2, -1 +/* 06D8B0 7F038D80 50400045 */ beql $v0, $zero, .L7F038E98 +/* 06D8B4 7F038D84 8FA90234 */ lw $t1, 0x234($sp) +/* 06D8B8 7F038D88 8C490004 */ lw $t1, 4($v0) +/* 06D8BC 7F038D8C 02E02025 */ move $a0, $s7 +/* 06D8C0 7F038D90 AFA90218 */ sw $t1, 0x218($sp) +/* 06D8C4 7F038D94 86B00000 */ lh $s0, ($s5) +/* 06D8C8 7F038D98 26102710 */ addiu $s0, $s0, 0x2710 +/* 06D8CC 7F038D9C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06D8D0 7F038DA0 02002825 */ move $a1, $s0 +/* 06D8D4 7F038DA4 14400003 */ bnez $v0, .L7F038DB4 +/* 06D8D8 7F038DA8 02A02025 */ move $a0, $s5 +/* 06D8DC 7F038DAC 8FAC0218 */ lw $t4, 0x218($sp) +/* 06D8E0 7F038DB0 A5900000 */ sh $s0, ($t4) +.L7F038DB4: +/* 06D8E4 7F038DB4 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 06D8E8 7F038DB8 00002825 */ move $a1, $zero +/* 06D8EC 7F038DBC 5040000C */ beql $v0, $zero, .L7F038DF0 +/* 06D8F0 7F038DC0 02A02025 */ move $a0, $s5 +/* 06D8F4 7F038DC4 8C540004 */ lw $s4, 4($v0) +/* 06D8F8 7F038DC8 8FA40218 */ lw $a0, 0x218($sp) +/* 06D8FC 7F038DCC 00003825 */ move $a3, $zero +/* 06D900 7F038DD0 86850004 */ lh $a1, 4($s4) +/* 06D904 7F038DD4 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D908 7F038DD8 82860080 */ lb $a2, 0x80($s4) +/* 06D90C 7F038DDC 50400004 */ beql $v0, $zero, .L7F038DF0 +/* 06D910 7F038DE0 02A02025 */ move $a0, $s5 +/* 06D914 7F038DE4 8C4B0004 */ lw $t3, 4($v0) +/* 06D918 7F038DE8 AFAB020C */ sw $t3, 0x20c($sp) +/* 06D91C 7F038DEC 02A02025 */ move $a0, $s5 +.L7F038DF0: +/* 06D920 7F038DF0 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 06D924 7F038DF4 24050001 */ li $a1, 1 +/* 06D928 7F038DF8 1040000B */ beqz $v0, .L7F038E28 +/* 06D92C 7F038DFC 00000000 */ nop +/* 06D930 7F038E00 8C530004 */ lw $s3, 4($v0) +/* 06D934 7F038E04 8FA40218 */ lw $a0, 0x218($sp) +/* 06D938 7F038E08 3C071000 */ lui $a3, 0x1000 +/* 06D93C 7F038E0C 86650004 */ lh $a1, 4($s3) +/* 06D940 7F038E10 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D944 7F038E14 82660080 */ lb $a2, 0x80($s3) +/* 06D948 7F038E18 10400003 */ beqz $v0, .L7F038E28 +/* 06D94C 7F038E1C 00000000 */ nop +/* 06D950 7F038E20 8C580004 */ lw $t8, 4($v0) +/* 06D954 7F038E24 AFB80210 */ sw $t8, 0x210($sp) +.L7F038E28: +/* 06D958 7F038E28 52600011 */ beql $s3, $zero, .L7F038E70 +/* 06D95C 7F038E2C 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D960 7F038E30 1280000E */ beqz $s4, .L7F038E6C +/* 06D964 7F038E34 8FAE0210 */ lw $t6, 0x210($sp) +/* 06D968 7F038E38 11C0000C */ beqz $t6, .L7F038E6C +/* 06D96C 7F038E3C 8FAF020C */ lw $t7, 0x20c($sp) +/* 06D970 7F038E40 51E0000B */ beql $t7, $zero, .L7F038E70 +/* 06D974 7F038E44 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D978 7F038E48 8E790084 */ lw $t9, 0x84($s3) +/* 06D97C 7F038E4C 56990008 */ bnel $s4, $t9, .L7F038E70 +/* 06D980 7F038E50 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D984 7F038E54 8E8D0084 */ lw $t5, 0x84($s4) +/* 06D988 7F038E58 01C02025 */ move $a0, $t6 +/* 06D98C 7F038E5C 566D0004 */ bnel $s3, $t5, .L7F038E70 +/* 06D990 7F038E60 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D994 7F038E64 0FC1475D */ jal link_objects +/* 06D998 7F038E68 01E02825 */ move $a1, $t7 +.L7F038E6C: +/* 06D99C 7F038E6C 8EA301D8 */ lw $v1, 0x1d8($s5) +.L7F038E70: +/* 06D9A0 7F038E70 8FA40218 */ lw $a0, 0x218($sp) +/* 06D9A4 7F038E74 50600006 */ beql $v1, $zero, .L7F038E90 +/* 06D9A8 7F038E78 240A0001 */ li $t2, 1 +/* 06D9AC 7F038E7C 8C620004 */ lw $v0, 4($v1) +/* 06D9B0 7F038E80 00003025 */ move $a2, $zero +/* 06D9B4 7F038E84 0FC14430 */ jal sub_GAME_7F0510C0 +/* 06D9B8 7F038E88 84450004 */ lh $a1, 4($v0) +/* 06D9BC 7F038E8C 240A0001 */ li $t2, 1 +.L7F038E90: +/* 06D9C0 7F038E90 AFAA0234 */ sw $t2, 0x234($sp) +.L7F038E94: +/* 06D9C4 7F038E94 8FA90234 */ lw $t1, 0x234($sp) +.L7F038E98: +/* 06D9C8 7F038E98 02C02025 */ move $a0, $s6 +/* 06D9CC 7F038E9C 02402825 */ move $a1, $s2 +/* 06D9D0 7F038EA0 51200007 */ beql $t1, $zero, .L7F038EC0 +/* 06D9D4 7F038EA4 26520005 */ addiu $s2, $s2, 5 +/* 06D9D8 7F038EA8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D9DC 7F038EAC 92260004 */ lbu $a2, 4($s1) +/* 06D9E0 7F038EB0 00409025 */ move $s2, $v0 +/* 06D9E4 7F038EB4 1000F1B5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D9E8 7F038EB8 02C28821 */ addu $s1, $s6, $v0 +/* 06D9EC 7F038EBC 26520005 */ addiu $s2, $s2, 5 +.L7F038EC0: +/* 06D9F0 7F038EC0 1000F1B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D9F4 7F038EC4 26310005 */ addiu $s1, $s1, 5 +actionC2_Display_Text_Preset_Bottom_Screen_3: +/* 06D9F8 7F038EC8 922C0001 */ lbu $t4, 1($s1) +/* 06D9FC 7F038ECC 92380002 */ lbu $t8, 2($s1) +/* 06DA00 7F038ED0 000C5A00 */ sll $t3, $t4, 8 +/* 06DA04 7F038ED4 0FC30776 */ jal get_textptr_for_textID +/* 06DA08 7F038ED8 01782025 */ or $a0, $t3, $t8 +/* 06DA0C 7F038EDC 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 06DA10 7F038EE0 00402025 */ move $a0, $v0 +/* 06DA14 7F038EE4 26520003 */ addiu $s2, $s2, 3 +/* 06DA18 7F038EE8 1000F1A8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA1C 7F038EEC 26310003 */ addiu $s1, $s1, 3 +actionC3_Display_Text_Preset_Top_Screen_3: +/* 06DA20 7F038EF0 92390001 */ lbu $t9, 1($s1) +/* 06DA24 7F038EF4 922E0002 */ lbu $t6, 2($s1) +/* 06DA28 7F038EF8 00196A00 */ sll $t5, $t9, 8 +/* 06DA2C 7F038EFC 0FC30776 */ jal get_textptr_for_textID +/* 06DA30 7F038F00 01AE2025 */ or $a0, $t5, $t6 +/* 06DA34 7F038F04 0FC22A57 */ jal display_string_at_top_of_screen +/* 06DA38 7F038F08 00402025 */ move $a0, $v0 +/* 06DA3C 7F038F0C 26520003 */ addiu $s2, $s2, 3 +/* 06DA40 7F038F10 1000F19E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA44 7F038F14 26310003 */ addiu $s1, $s1, 3 +actionC4_Play_Sound_Effect_num_In_Slot_num_0_7_4: +/* 06DA48 7F038F18 922F0001 */ lbu $t7, 1($s1) +/* 06DA4C 7F038F1C 92290002 */ lbu $t1, 2($s1) +/* 06DA50 7F038F20 82240003 */ lb $a0, 3($s1) +/* 06DA54 7F038F24 000F5200 */ sll $t2, $t7, 8 +/* 06DA58 7F038F28 01492825 */ or $a1, $t2, $t1 +/* 06DA5C 7F038F2C 00056400 */ sll $t4, $a1, 0x10 +/* 06DA60 7F038F30 0FC0D249 */ jal set_sound_effect_to_slot +/* 06DA64 7F038F34 000C2C03 */ sra $a1, $t4, 0x10 +/* 06DA68 7F038F38 26520004 */ addiu $s2, $s2, 4 +/* 06DA6C 7F038F3C 1000F193 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA70 7F038F40 26310004 */ addiu $s1, $s1, 4 +actionC9_Shut_Off_Sound_In_Slot_Number_2: +/* 06DA74 7F038F44 0FC0D26F */ jal sub_GAME_7F0349BC +/* 06DA78 7F038F48 82240001 */ lb $a0, 1($s1) +/* 06DA7C 7F038F4C 26520002 */ addiu $s2, $s2, 2 +/* 06DA80 7F038F50 1000F18E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA84 7F038F54 26310002 */ addiu $s1, $s1, 2 +actionC7_Sound_In_Slot_num_Crecendos_To_Volume_Over_ms_6: +/* 06DA88 7F038F58 92380002 */ lbu $t8, 2($s1) +/* 06DA8C 7F038F5C 922D0003 */ lbu $t5, 3($s1) +/* 06DA90 7F038F60 922A0004 */ lbu $t2, 4($s1) +/* 06DA94 7F038F64 922C0005 */ lbu $t4, 5($s1) +/* 06DA98 7F038F68 82230001 */ lb $v1, 1($s1) +/* 06DA9C 7F038F6C 0018CA00 */ sll $t9, $t8, 8 +/* 06DAA0 7F038F70 032D2025 */ or $a0, $t9, $t5 +/* 06DAA4 7F038F74 000A4A00 */ sll $t1, $t2, 8 +/* 06DAA8 7F038F78 00047400 */ sll $t6, $a0, 0x10 +/* 06DAAC 7F038F7C 012C2825 */ or $a1, $t1, $t4 +/* 06DAB0 7F038F80 000E2403 */ sra $a0, $t6, 0x10 +/* 06DAB4 7F038F84 0460001D */ bltz $v1, .L7F038FFC +/* 06DAB8 7F038F88 30ABFFFF */ andi $t3, $a1, 0xffff +/* 06DABC 7F038F8C 28610008 */ slti $at, $v1, 8 +/* 06DAC0 7F038F90 1020001A */ beqz $at, .L7F038FFC +/* 06DAC4 7F038F94 24070018 */ li $a3, 24 +/* 06DAC8 7F038F98 00670019 */ multu $v1, $a3 +/* 06DACC 7F038F9C 3C068007 */ lui $a2, %hi(sfx_related) +/* 06DAD0 7F038FA0 24C69B70 */ addiu $a2, %lo(sfx_related) # addiu $a2, $a2, -0x6490 +/* 06DAD4 7F038FA4 01601025 */ move $v0, $t3 +/* 06DAD8 7F038FA8 0000C012 */ mflo $t8 +/* 06DADC 7F038FAC 00D8C821 */ addu $t9, $a2, $t8 +/* 06DAE0 7F038FB0 AF2B0008 */ sw $t3, 8($t9) +/* 06DAE4 7F038FB4 822D0001 */ lb $t5, 1($s1) +/* 06DAE8 7F038FB8 01A70019 */ multu $t5, $a3 +/* 06DAEC 7F038FBC 00007012 */ mflo $t6 +/* 06DAF0 7F038FC0 00CE7821 */ addu $t7, $a2, $t6 +/* 06DAF4 7F038FC4 ADE4000C */ sw $a0, 0xc($t7) +/* 06DAF8 7F038FC8 822A0001 */ lb $t2, 1($s1) +/* 06DAFC 7F038FCC 01470019 */ multu $t2, $a3 +/* 06DB00 7F038FD0 00004812 */ mflo $t1 +/* 06DB04 7F038FD4 00C96021 */ addu $t4, $a2, $t1 +/* 06DB08 7F038FD8 AD800010 */ sw $zero, 0x10($t4) +/* 06DB0C 7F038FDC 822B0001 */ lb $t3, 1($s1) +/* 06DB10 7F038FE0 01670019 */ multu $t3, $a3 +/* 06DB14 7F038FE4 0000C012 */ mflo $t8 +/* 06DB18 7F038FE8 00D8C821 */ addu $t9, $a2, $t8 +/* 06DB1C 7F038FEC 14400003 */ bnez $v0, .L7F038FFC +/* 06DB20 7F038FF0 AF200014 */ sw $zero, 0x14($t9) +/* 06DB24 7F038FF4 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DB28 7F038FF8 82240001 */ lb $a0, 1($s1) +.L7F038FFC: +/* 06DB2C 7F038FFC 26520006 */ addiu $s2, $s2, 6 +/* 06DB30 7F039000 1000F162 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DB34 7F039004 26310006 */ addiu $s1, $s1, 6 +actionC8_Sound_In_Slot_num_Fades_To_Volume_Over_ms_6: +/* 06DB38 7F039008 922D0002 */ lbu $t5, 2($s1) +/* 06DB3C 7F03900C 922F0003 */ lbu $t7, 3($s1) +/* 06DB40 7F039010 92290004 */ lbu $t1, 4($s1) +/* 06DB44 7F039014 922B0005 */ lbu $t3, 5($s1) +/* 06DB48 7F039018 000D7200 */ sll $t6, $t5, 8 +/* 06DB4C 7F03901C 82230001 */ lb $v1, 1($s1) +/* 06DB50 7F039020 01CF5025 */ or $t2, $t6, $t7 +/* 06DB54 7F039024 448A5000 */ mtc1 $t2, $f10 +/* 06DB58 7F039028 00096200 */ sll $t4, $t1, 8 +/* 06DB5C 7F03902C 018B1025 */ or $v0, $t4, $t3 +/* 06DB60 7F039030 3058FFFF */ andi $t8, $v0, 0xffff +/* 06DB64 7F039034 04600020 */ bltz $v1, .L7F0390B8 +/* 06DB68 7F039038 46805320 */ cvt.s.w $f12, $f10 +/* 06DB6C 7F03903C 28610008 */ slti $at, $v1, 8 +/* 06DB70 7F039040 1020001D */ beqz $at, .L7F0390B8 +/* 06DB74 7F039044 0003C880 */ sll $t9, $v1, 2 +/* 06DB78 7F039048 0323C823 */ subu $t9, $t9, $v1 +/* 06DB7C 7F03904C 0019C8C0 */ sll $t9, $t9, 3 +/* 06DB80 7F039050 3C018007 */ lui $at, %hi(sfx_related+8) +/* 06DB84 7F039054 00390821 */ addu $at, $at, $t9 +/* 06DB88 7F039058 AC389B78 */ sw $t8, %lo(sfx_related+8)($at) +/* 06DB8C 7F03905C 0FC14E6E */ jal sub_GAME_7F0539B8 +/* 06DB90 7F039060 03008025 */ move $s0, $t8 +/* 06DB94 7F039064 822D0001 */ lb $t5, 1($s1) +/* 06DB98 7F039068 24040018 */ li $a0, 24 +/* 06DB9C 7F03906C 3C038007 */ lui $v1, %hi(sfx_related) +/* 06DBA0 7F039070 01A40019 */ multu $t5, $a0 +/* 06DBA4 7F039074 24639B70 */ addiu $v1, %lo(sfx_related) # addiu $v1, $v1, -0x6490 +/* 06DBA8 7F039078 00007012 */ mflo $t6 +/* 06DBAC 7F03907C 006E7821 */ addu $t7, $v1, $t6 +/* 06DBB0 7F039080 ADE2000C */ sw $v0, 0xc($t7) +/* 06DBB4 7F039084 822A0001 */ lb $t2, 1($s1) +/* 06DBB8 7F039088 01440019 */ multu $t2, $a0 +/* 06DBBC 7F03908C 00004812 */ mflo $t1 +/* 06DBC0 7F039090 00696021 */ addu $t4, $v1, $t1 +/* 06DBC4 7F039094 AD800010 */ sw $zero, 0x10($t4) +/* 06DBC8 7F039098 822B0001 */ lb $t3, 1($s1) +/* 06DBCC 7F03909C 01640019 */ multu $t3, $a0 +/* 06DBD0 7F0390A0 0000C012 */ mflo $t8 +/* 06DBD4 7F0390A4 0078C821 */ addu $t9, $v1, $t8 +/* 06DBD8 7F0390A8 16000003 */ bnez $s0, .L7F0390B8 +/* 06DBDC 7F0390AC AF200014 */ sw $zero, 0x14($t9) +/* 06DBE0 7F0390B0 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DBE4 7F0390B4 82240001 */ lb $a0, 1($s1) +.L7F0390B8: +/* 06DBE8 7F0390B8 26520006 */ addiu $s2, $s2, 6 +/* 06DBEC 7F0390BC 1000F133 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DBF0 7F0390C0 26310006 */ addiu $s1, $s1, 6 +actionC5_EmanateSoundSlotnumFrom16ObjectWithAudibleRV_5: +/* 06DBF4 7F0390C4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06DBF8 7F0390C8 92240002 */ lbu $a0, 2($s1) +/* 06DBFC 7F0390CC 922D0003 */ lbu $t5, 3($s1) +/* 06DC00 7F0390D0 922F0004 */ lbu $t7, 4($s1) +/* 06DC04 7F0390D4 82230001 */ lb $v1, 1($s1) +/* 06DC08 7F0390D8 000D7200 */ sll $t6, $t5, 8 +/* 06DC0C 7F0390DC 01CF2825 */ or $a1, $t6, $t7 +/* 06DC10 7F0390E0 0460001C */ bltz $v1, .L7F039154 +/* 06DC14 7F0390E4 30AAFFFF */ andi $t2, $a1, 0xffff +/* 06DC18 7F0390E8 28610008 */ slti $at, $v1, 8 +/* 06DC1C 7F0390EC 5020001A */ beql $at, $zero, .L7F039158 +/* 06DC20 7F0390F0 26520005 */ addiu $s2, $s2, 5 +/* 06DC24 7F0390F4 10400017 */ beqz $v0, .L7F039154 +/* 06DC28 7F0390F8 00034880 */ sll $t1, $v1, 2 +/* 06DC2C 7F0390FC 01234823 */ subu $t1, $t1, $v1 +/* 06DC30 7F039100 000948C0 */ sll $t1, $t1, 3 +/* 06DC34 7F039104 3C018007 */ lui $at, %hi(sfx_related+8) +/* 06DC38 7F039108 00290821 */ addu $at, $at, $t1 +/* 06DC3C 7F03910C AC2A9B78 */ sw $t2, %lo(sfx_related+8)($at) +/* 06DC40 7F039110 822C0001 */ lb $t4, 1($s1) +/* 06DC44 7F039114 3C018007 */ lui $at, %hi(sfx_related+16) +/* 06DC48 7F039118 000C5880 */ sll $t3, $t4, 2 +/* 06DC4C 7F03911C 016C5823 */ subu $t3, $t3, $t4 +/* 06DC50 7F039120 000B58C0 */ sll $t3, $t3, 3 +/* 06DC54 7F039124 002B0821 */ addu $at, $at, $t3 +/* 06DC58 7F039128 AC209B80 */ sw $zero, %lo(sfx_related+16)($at) +/* 06DC5C 7F03912C 82380001 */ lb $t8, 1($s1) +/* 06DC60 7F039130 3C018007 */ lui $at, %hi(sfx_related+20) +/* 06DC64 7F039134 0018C880 */ sll $t9, $t8, 2 +/* 06DC68 7F039138 0338C823 */ subu $t9, $t9, $t8 +/* 06DC6C 7F03913C 0019C8C0 */ sll $t9, $t9, 3 +/* 06DC70 7F039140 00390821 */ addu $at, $at, $t9 +/* 06DC74 7F039144 15400003 */ bnez $t2, .L7F039154 +/* 06DC78 7F039148 AC229B84 */ sw $v0, %lo(sfx_related+20)($at) +/* 06DC7C 7F03914C 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DC80 7F039150 82240001 */ lb $a0, 1($s1) +.L7F039154: +/* 06DC84 7F039154 26520005 */ addiu $s2, $s2, 5 +.L7F039158: +/* 06DC88 7F039158 1000F10C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DC8C 7F03915C 26310005 */ addiu $s1, $s1, 5 +actionC6_EmanateSoundSlotnumFromPresetWithAudibleRV_6: +/* 06DC90 7F039160 922D0002 */ lbu $t5, 2($s1) +/* 06DC94 7F039164 922F0003 */ lbu $t7, 3($s1) +/* 06DC98 7F039168 92290004 */ lbu $t1, 4($s1) +/* 06DC9C 7F03916C 922B0005 */ lbu $t3, 5($s1) +/* 06DCA0 7F039170 000D7200 */ sll $t6, $t5, 8 +/* 06DCA4 7F039174 01CF1025 */ or $v0, $t6, $t7 +/* 06DCA8 7F039178 00096200 */ sll $t4, $t1, 8 +/* 06DCAC 7F03917C 304AFFFF */ andi $t2, $v0, 0xffff +/* 06DCB0 7F039180 018B2825 */ or $a1, $t4, $t3 +/* 06DCB4 7F039184 30B8FFFF */ andi $t8, $a1, 0xffff +/* 06DCB8 7F039188 29412710 */ slti $at, $t2, 0x2710 +/* 06DCBC 7F03918C 03002825 */ move $a1, $t8 +/* 06DCC0 7F039190 1020000A */ beqz $at, .L7F0391BC +/* 06DCC4 7F039194 01401825 */ move $v1, $t2 +/* 06DCC8 7F039198 000AC880 */ sll $t9, $t2, 2 +/* 06DCCC 7F03919C 032AC823 */ subu $t9, $t9, $t2 +/* 06DCD0 7F0391A0 0019C880 */ sll $t9, $t9, 2 +/* 06DCD4 7F0391A4 3C0D8007 */ lui $t5, %hi(ptr_0xxxpresets) +/* 06DCD8 7F0391A8 8DAD5D18 */ lw $t5, %lo(ptr_0xxxpresets)($t5) +/* 06DCDC 7F0391AC 032AC823 */ subu $t9, $t9, $t2 +/* 06DCE0 7F0391B0 0019C880 */ sll $t9, $t9, 2 +/* 06DCE4 7F0391B4 1000000A */ b .L7F0391E0 +/* 06DCE8 7F0391B8 032D2021 */ addu $a0, $t9, $t5 +.L7F0391BC: +/* 06DCEC 7F0391BC 3C0F8007 */ lui $t7, %hi(ptr_2xxxpresets) +/* 06DCF0 7F0391C0 8DEF5D1C */ lw $t7, %lo(ptr_2xxxpresets)($t7) +/* 06DCF4 7F0391C4 00037100 */ sll $t6, $v1, 4 +/* 06DCF8 7F0391C8 01C37021 */ addu $t6, $t6, $v1 +/* 06DCFC 7F0391CC 000E7080 */ sll $t6, $t6, 2 +/* 06DD00 7F0391D0 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06DD04 7F0391D4 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06DD08 7F0391D8 01CF2021 */ addu $a0, $t6, $t7 +/* 06DD0C 7F0391DC 00812021 */ addu $a0, $a0, $at +.L7F0391E0: +/* 06DD10 7F0391E0 82230001 */ lb $v1, 1($s1) +/* 06DD14 7F0391E4 0460001B */ bltz $v1, .L7F039254 +/* 06DD18 7F0391E8 28610008 */ slti $at, $v1, 8 +/* 06DD1C 7F0391EC 5020001A */ beql $at, $zero, .L7F039258 +/* 06DD20 7F0391F0 26520006 */ addiu $s2, $s2, 6 +/* 06DD24 7F0391F4 10800017 */ beqz $a0, .L7F039254 +/* 06DD28 7F0391F8 00035080 */ sll $t2, $v1, 2 +/* 06DD2C 7F0391FC 01435023 */ subu $t2, $t2, $v1 +/* 06DD30 7F039200 000A50C0 */ sll $t2, $t2, 3 +/* 06DD34 7F039204 3C018007 */ lui $at, %hi(sfx_related+8) +/* 06DD38 7F039208 002A0821 */ addu $at, $at, $t2 +/* 06DD3C 7F03920C AC259B78 */ sw $a1, %lo(sfx_related+8)($at) +/* 06DD40 7F039210 82290001 */ lb $t1, 1($s1) +/* 06DD44 7F039214 3C018007 */ lui $at, %hi(sfx_related+16) +/* 06DD48 7F039218 00096080 */ sll $t4, $t1, 2 +/* 06DD4C 7F03921C 01896023 */ subu $t4, $t4, $t1 +/* 06DD50 7F039220 000C60C0 */ sll $t4, $t4, 3 +/* 06DD54 7F039224 002C0821 */ addu $at, $at, $t4 +/* 06DD58 7F039228 AC249B80 */ sw $a0, %lo(sfx_related+16)($at) +/* 06DD5C 7F03922C 822B0001 */ lb $t3, 1($s1) +/* 06DD60 7F039230 3C018007 */ lui $at, %hi(sfx_related+20) +/* 06DD64 7F039234 000BC080 */ sll $t8, $t3, 2 +/* 06DD68 7F039238 030BC023 */ subu $t8, $t8, $t3 +/* 06DD6C 7F03923C 0018C0C0 */ sll $t8, $t8, 3 +/* 06DD70 7F039240 00380821 */ addu $at, $at, $t8 +/* 06DD74 7F039244 14A00003 */ bnez $a1, .L7F039254 +/* 06DD78 7F039248 AC209B84 */ sw $zero, %lo(sfx_related+20)($at) +/* 06DD7C 7F03924C 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DD80 7F039250 82240001 */ lb $a0, 1($s1) +.L7F039254: +/* 06DD84 7F039254 26520006 */ addiu $s2, $s2, 6 +.L7F039258: +/* 06DD88 7F039258 1000F0CC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DD8C 7F03925C 26310006 */ addiu $s1, $s1, 6 +actionCA_If_Value_GreaterThan_Volume_7FFF_Max_RVL_5: +/* 06DD90 7F039260 92390002 */ lbu $t9, 2($s1) +/* 06DD94 7F039264 922E0003 */ lbu $t6, 3($s1) +/* 06DD98 7F039268 82230001 */ lb $v1, 1($s1) +/* 06DD9C 7F03926C 00196A00 */ sll $t5, $t9, 8 +/* 06DDA0 7F039270 01AE1025 */ or $v0, $t5, $t6 +/* 06DDA4 7F039274 00027C00 */ sll $t7, $v0, 0x10 +/* 06DDA8 7F039278 04600013 */ bltz $v1, .L7F0392C8 +/* 06DDAC 7F03927C 000F5403 */ sra $t2, $t7, 0x10 +/* 06DDB0 7F039280 28610008 */ slti $at, $v1, 8 +/* 06DDB4 7F039284 10200010 */ beqz $at, .L7F0392C8 +/* 06DDB8 7F039288 00034880 */ sll $t1, $v1, 2 +/* 06DDBC 7F03928C 01234823 */ subu $t1, $t1, $v1 +/* 06DDC0 7F039290 000948C0 */ sll $t1, $t1, 3 +/* 06DDC4 7F039294 3C0C8007 */ lui $t4, %hi(sfx_related+4) +/* 06DDC8 7F039298 01896021 */ addu $t4, $t4, $t1 +/* 06DDCC 7F03929C 8D8C9B74 */ lw $t4, %lo(sfx_related+4)($t4) +/* 06DDD0 7F0392A0 02C02025 */ move $a0, $s6 +/* 06DDD4 7F0392A4 02402825 */ move $a1, $s2 +/* 06DDD8 7F0392A8 018A082A */ slt $at, $t4, $t2 +/* 06DDDC 7F0392AC 50200007 */ beql $at, $zero, .L7F0392CC +/* 06DDE0 7F0392B0 26520005 */ addiu $s2, $s2, 5 +/* 06DDE4 7F0392B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06DDE8 7F0392B8 92260004 */ lbu $a2, 4($s1) +/* 06DDEC 7F0392BC 00409025 */ move $s2, $v0 +/* 06DDF0 7F0392C0 1000F0B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DDF4 7F0392C4 02C28821 */ addu $s1, $s6, $v0 +.L7F0392C8: +/* 06DDF8 7F0392C8 26520005 */ addiu $s2, $s2, 5 +.L7F0392CC: +/* 06DDFC 7F0392CC 1000F0AF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DE00 7F0392D0 26310005 */ addiu $s1, $s1, 5 +actionCB_Set_Object_Path_27_Type_Object_2: +/* 06DE04 7F0392D4 0FC0D50D */ jal get_ptr_path_for_pathnum +/* 06DE08 7F0392D8 92240001 */ lbu $a0, 1($s1) +/* 06DE0C 7F0392DC 8FAB07B0 */ lw $t3, 0x7b0($sp) +/* 06DE10 7F0392E0 26520002 */ addiu $s2, $s2, 2 +/* 06DE14 7F0392E4 11600003 */ beqz $t3, .L7F0392F4 +/* 06DE18 7F0392E8 00000000 */ nop +/* 06DE1C 7F0392EC AD6200A4 */ sw $v0, 0xa4($t3) +/* 06DE20 7F0392F0 AD6000A8 */ sw $zero, 0xa8($t3) +.L7F0392F4: +/* 06DE24 7F0392F4 1000F0A5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DE28 7F0392F8 26310002 */ addiu $s1, $s1, 2 +actionCC_Set_Speed_Moving_Vehicle_27_Type_Object_5: +/* 06DE2C 7F0392FC 922F0001 */ lbu $t7, 1($s1) +/* 06DE30 7F039300 92290002 */ lbu $t1, 2($s1) +/* 06DE34 7F039304 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 06DE38 7F039308 000F5200 */ sll $t2, $t7, 8 +/* 06DE3C 7F03930C 01496025 */ or $t4, $t2, $t1 +/* 06DE40 7F039310 448C8000 */ mtc1 $t4, $f16 +/* 06DE44 7F039314 44812000 */ mtc1 $at, $f4 +/* 06DE48 7F039318 92380003 */ lbu $t8, 3($s1) +/* 06DE4C 7F03931C 46808220 */ cvt.s.w $f8, $f16 +/* 06DE50 7F039320 922D0004 */ lbu $t5, 4($s1) +/* 06DE54 7F039324 0018CA00 */ sll $t9, $t8, 8 +/* 06DE58 7F039328 8FAB07B0 */ lw $t3, 0x7b0($sp) +/* 06DE5C 7F03932C 3C014670 */ li $at, 0x46700000 # 15360.000000 +/* 06DE60 7F039330 032D7025 */ or $t6, $t9, $t5 +/* 06DE64 7F039334 46044182 */ mul.s $f6, $f8, $f4 +/* 06DE68 7F039338 448E9000 */ mtc1 $t6, $f18 +/* 06DE6C 7F03933C 44815000 */ mtc1 $at, $f10 +/* 06DE70 7F039340 26520005 */ addiu $s2, $s2, 5 +/* 06DE74 7F039344 46809020 */ cvt.s.w $f0, $f18 +/* 06DE78 7F039348 11600003 */ beqz $t3, .L7F039358 +/* 06DE7C 7F03934C 460A3083 */ div.s $f2, $f6, $f10 +/* 06DE80 7F039350 E5620094 */ swc1 $f2, 0x94($t3) +/* 06DE84 7F039354 E5600098 */ swc1 $f0, 0x98($t3) +.L7F039358: +/* 06DE88 7F039358 1000F08C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DE8C 7F03935C 26310005 */ addiu $s1, $s1, 5 +actionCD_Set_Speed_Aircraft_Rotor_5: +/* 06DE90 7F039360 922F0001 */ lbu $t7, 1($s1) +/* 06DE94 7F039364 92290002 */ lbu $t1, 2($s1) +/* 06DE98 7F039368 92380003 */ lbu $t8, 3($s1) +/* 06DE9C 7F03936C 000F5200 */ sll $t2, $t7, 8 +/* 06DEA0 7F039370 01496025 */ or $t4, $t2, $t1 +/* 06DEA4 7F039374 448C8000 */ mtc1 $t4, $f16 +/* 06DEA8 7F039378 922D0004 */ lbu $t5, 4($s1) +/* 06DEAC 7F03937C 0018CA00 */ sll $t9, $t8, 8 +/* 06DEB0 7F039380 46808220 */ cvt.s.w $f8, $f16 +/* 06DEB4 7F039384 8FAB07AC */ lw $t3, 0x7ac($sp) +/* 06DEB8 7F039388 3C014561 */ li $at, 0x45610000 # 3600.000000 +/* 06DEBC 7F03938C 032D7025 */ or $t6, $t9, $t5 +/* 06DEC0 7F039390 448E9000 */ mtc1 $t6, $f18 +/* 06DEC4 7F039394 44813000 */ mtc1 $at, $f6 +/* 06DEC8 7F039398 461A4102 */ mul.s $f4, $f8, $f26 +/* 06DECC 7F03939C 26520005 */ addiu $s2, $s2, 5 +/* 06DED0 7F0393A0 46809020 */ cvt.s.w $f0, $f18 +/* 06DED4 7F0393A4 11600003 */ beqz $t3, .L7F0393B4 +/* 06DED8 7F0393A8 46062083 */ div.s $f2, $f4, $f6 +/* 06DEDC 7F0393AC E5620090 */ swc1 $f2, 0x90($t3) +/* 06DEE0 7F0393B0 E5600094 */ swc1 $f0, 0x94($t3) +.L7F0393B4: +/* 06DEE4 7F0393B4 1000F075 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DEE8 7F0393B8 26310005 */ addiu $s1, $s1, 5 +actionCE_Detect_If_Currently_In_Intro_Camera_RVL_If_So_2: +/* 06DEEC 7F0393BC 0FC1E94A */ jal get_camera_mode +/* 06DEF0 7F0393C0 00000000 */ nop +/* 06DEF4 7F0393C4 24010001 */ li $at, 1 +/* 06DEF8 7F0393C8 50410006 */ beql $v0, $at, .L7F0393E4 +/* 06DEFC 7F0393CC 02C02025 */ move $a0, $s6 +/* 06DF00 7F0393D0 0FC1E94A */ jal get_camera_mode +/* 06DF04 7F0393D4 00000000 */ nop +/* 06DF08 7F0393D8 24010002 */ li $at, 2 +/* 06DF0C 7F0393DC 14410007 */ bne $v0, $at, .L7F0393FC +/* 06DF10 7F0393E0 02C02025 */ move $a0, $s6 +.L7F0393E4: +/* 06DF14 7F0393E4 02402825 */ move $a1, $s2 +/* 06DF18 7F0393E8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06DF1C 7F0393EC 92260001 */ lbu $a2, 1($s1) +/* 06DF20 7F0393F0 00409025 */ move $s2, $v0 +/* 06DF24 7F0393F4 1000F065 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF28 7F0393F8 02C28821 */ addu $s1, $s6, $v0 +.L7F0393FC: +/* 06DF2C 7F0393FC 26520002 */ addiu $s2, $s2, 2 +/* 06DF30 7F039400 1000F062 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF34 7F039404 26310002 */ addiu $s1, $s1, 2 +actionCF_Detect_If_Currently_In_Intro_Swirl_RVL_If_So_2: +/* 06DF38 7F039408 0FC1E94A */ jal get_camera_mode +/* 06DF3C 7F03940C 00000000 */ nop +/* 06DF40 7F039410 24010003 */ li $at, 3 +/* 06DF44 7F039414 14410007 */ bne $v0, $at, .L7F039434 +/* 06DF48 7F039418 02C02025 */ move $a0, $s6 +/* 06DF4C 7F03941C 02402825 */ move $a1, $s2 +/* 06DF50 7F039420 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06DF54 7F039424 92260001 */ lbu $a2, 1($s1) +/* 06DF58 7F039428 00409025 */ move $s2, $v0 +/* 06DF5C 7F03942C 1000F057 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF60 7F039430 02C28821 */ addu $s1, $s6, $v0 +.L7F039434: +/* 06DF64 7F039434 26520002 */ addiu $s2, $s2, 2 +/* 06DF68 7F039438 1000F054 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF6C 7F03943C 26310002 */ addiu $s1, $s1, 2 +actionD0_Change_Animation_Type_Of_Type_16_Monitor_4: +/* 06DF70 7F039440 0FC15C30 */ jal get_handle_to_tagged_object +/* 06DF74 7F039444 92240001 */ lbu $a0, 1($s1) +/* 06DF78 7F039448 1040001D */ beqz $v0, .L7F0394C0 +/* 06DF7C 7F03944C 00403025 */ move $a2, $v0 +/* 06DF80 7F039450 8C580010 */ lw $t8, 0x10($v0) +/* 06DF84 7F039454 5300001B */ beql $t8, $zero, .L7F0394C4 +/* 06DF88 7F039458 26520004 */ addiu $s2, $s2, 4 +/* 06DF8C 7F03945C 90430003 */ lbu $v1, 3($v0) +/* 06DF90 7F039460 2401000A */ li $at, 10 +/* 06DF94 7F039464 24440080 */ addiu $a0, $v0, 0x80 +/* 06DF98 7F039468 54610007 */ bnel $v1, $at, .L7F039488 +/* 06DF9C 7F03946C 2401000B */ li $at, 11 +/* 06DFA0 7F039470 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 06DFA4 7F039474 92250003 */ lbu $a1, 3($s1) +/* 06DFA8 7F039478 26520004 */ addiu $s2, $s2, 4 +/* 06DFAC 7F03947C 1000F043 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DFB0 7F039480 26310004 */ addiu $s1, $s1, 4 +/* 06DFB4 7F039484 2401000B */ li $at, 11 +.L7F039488: +/* 06DFB8 7F039488 5461000E */ bnel $v1, $at, .L7F0394C4 +/* 06DFBC 7F03948C 26520004 */ addiu $s2, $s2, 4 +/* 06DFC0 7F039490 92220002 */ lbu $v0, 2($s1) +/* 06DFC4 7F039494 28410004 */ slti $at, $v0, 4 +/* 06DFC8 7F039498 10200009 */ beqz $at, .L7F0394C0 +/* 06DFCC 7F03949C 0002C8C0 */ sll $t9, $v0, 3 +/* 06DFD0 7F0394A0 0322C823 */ subu $t9, $t9, $v0 +/* 06DFD4 7F0394A4 0019C880 */ sll $t9, $t9, 2 +/* 06DFD8 7F0394A8 0322C821 */ addu $t9, $t9, $v0 +/* 06DFDC 7F0394AC 0019C880 */ sll $t9, $t9, 2 +/* 06DFE0 7F0394B0 00D92021 */ addu $a0, $a2, $t9 +/* 06DFE4 7F0394B4 24840080 */ addiu $a0, $a0, 0x80 +/* 06DFE8 7F0394B8 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 06DFEC 7F0394BC 92250003 */ lbu $a1, 3($s1) +.L7F0394C0: +/* 06DFF0 7F0394C0 26520004 */ addiu $s2, $s2, 4 +.L7F0394C4: +/* 06DFF4 7F0394C4 1000F031 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DFF8 7F0394C8 26310004 */ addiu $s1, $s1, 4 +actionD1_If_Bond_In_Tank_RVL_2: +/* 06DFFC 7F0394CC 0FC1F39E */ jal get_intank_flag +/* 06E000 7F0394D0 00000000 */ nop +/* 06E004 7F0394D4 24010001 */ li $at, 1 +/* 06E008 7F0394D8 14410007 */ bne $v0, $at, .L7F0394F8 +/* 06E00C 7F0394DC 02C02025 */ move $a0, $s6 +/* 06E010 7F0394E0 02402825 */ move $a1, $s2 +/* 06E014 7F0394E4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E018 7F0394E8 92260001 */ lbu $a2, 1($s1) +/* 06E01C 7F0394EC 00409025 */ move $s2, $v0 +/* 06E020 7F0394F0 1000F026 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E024 7F0394F4 02C28821 */ addu $s1, $s6, $v0 +.L7F0394F8: +/* 06E028 7F0394F8 26520002 */ addiu $s2, $s2, 2 +/* 06E02C 7F0394FC 1000F023 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E030 7F039500 26310002 */ addiu $s1, $s1, 2 +actionD2_Exit_Level_1: +/* 06E034 7F039504 3C0D8003 */ lui $t5, %hi(camera_8003642C) +/* 06E038 7F039508 8DAD642C */ lw $t5, %lo(camera_8003642C)($t5) +/* 06E03C 7F03950C 3C0E8003 */ lui $t6, %hi(camera_80036434) +/* 06E040 7F039510 11A0000A */ beqz $t5, .L7F03953C +/* 06E044 7F039514 00000000 */ nop +/* 06E048 7F039518 8DCE6434 */ lw $t6, %lo(camera_80036434)($t6) +/* 06E04C 7F03951C 240F0001 */ li $t7, 1 +/* 06E050 7F039520 3C018003 */ lui $at, %hi(camera_80036434) +/* 06E054 7F039524 55C00008 */ bnezl $t6, .L7F039548 +/* 06E058 7F039528 26520001 */ addiu $s2, $s2, 1 +/* 06E05C 7F03952C AC2F6434 */ sw $t7, %lo(camera_80036434)($at) +/* 06E060 7F039530 26520001 */ addiu $s2, $s2, 1 +/* 06E064 7F039534 1000F015 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E068 7F039538 26310001 */ addiu $s1, $s1, 1 +.L7F03953C: +/* 06E06C 7F03953C 0C001A5A */ jal return_to_title_from_level_end +/* 06E070 7F039540 00000000 */ nop +/* 06E074 7F039544 26520001 */ addiu $s2, $s2, 1 +.L7F039548: +/* 06E078 7F039548 1000F010 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E07C 7F03954C 26310001 */ addiu $s1, $s1, 1 +actionD3_Return_From_Camera_Scene_1: +/* 06E080 7F039550 0FC1EA6E */ jal set_camera_mode +/* 06E084 7F039554 24040008 */ li $a0, 8 +/* 06E088 7F039558 26520001 */ addiu $s2, $s2, 1 +/* 06E08C 7F03955C 1000F00B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E090 7F039560 26310001 */ addiu $s1, $s1, 1 +actionD4_Camera_Looks_At_Bond_From_Preset_3: +/* 06E094 7F039564 922A0001 */ lbu $t2, 1($s1) +/* 06E098 7F039568 922C0002 */ lbu $t4, 2($s1) +/* 06E09C 7F03956C 3C0F8007 */ lui $t7, %hi(ptr_2xxxpresets) +/* 06E0A0 7F039570 000A4A00 */ sll $t1, $t2, 8 +/* 06E0A4 7F039574 012C1025 */ or $v0, $t1, $t4 +/* 06E0A8 7F039578 304BFFFF */ andi $t3, $v0, 0xffff +/* 06E0AC 7F03957C 29612710 */ slti $at, $t3, 0x2710 +/* 06E0B0 7F039580 1020000C */ beqz $at, .L7F0395B4 +/* 06E0B4 7F039584 01601825 */ move $v1, $t3 +/* 06E0B8 7F039588 000BC080 */ sll $t8, $t3, 2 +/* 06E0BC 7F03958C 030BC023 */ subu $t8, $t8, $t3 +/* 06E0C0 7F039590 3C198007 */ lui $t9, %hi(ptr_0xxxpresets) +/* 06E0C4 7F039594 8F395D18 */ lw $t9, %lo(ptr_0xxxpresets)($t9) +/* 06E0C8 7F039598 0018C080 */ sll $t8, $t8, 2 +/* 06E0CC 7F03959C 030BC023 */ subu $t8, $t8, $t3 +/* 06E0D0 7F0395A0 0018C080 */ sll $t8, $t8, 2 +/* 06E0D4 7F0395A4 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E0D8 7F0395A8 03196821 */ addu $t5, $t8, $t9 +/* 06E0DC 7F0395AC 1000000B */ b .L7F0395DC +/* 06E0E0 7F0395B0 AC2D99F8 */ sw $t5, %lo(dword_CODE_bss_800799F8)($at) +.L7F0395B4: +/* 06E0E4 7F0395B4 8DEF5D1C */ lw $t7, %lo(ptr_2xxxpresets)($t7) +/* 06E0E8 7F0395B8 00037100 */ sll $t6, $v1, 4 +/* 06E0EC 7F0395BC 01C37021 */ addu $t6, $t6, $v1 +/* 06E0F0 7F0395C0 000E7080 */ sll $t6, $t6, 2 +/* 06E0F4 7F0395C4 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06E0F8 7F0395C8 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06E0FC 7F0395CC 01CF5021 */ addu $t2, $t6, $t7 +/* 06E100 7F0395D0 01414821 */ addu $t1, $t2, $at +/* 06E104 7F0395D4 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E108 7F0395D8 AC2999F8 */ sw $t1, %lo(dword_CODE_bss_800799F8)($at) +.L7F0395DC: +/* 06E10C 7F0395DC 0FC1EA6E */ jal set_camera_mode +/* 06E110 7F0395E0 24040007 */ li $a0, 7 +/* 06E114 7F0395E4 26520003 */ addiu $s2, $s2, 3 +/* 06E118 7F0395E8 1000EFE8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E11C 7F0395EC 26310003 */ addiu $s1, $s1, 3 +actionD5_Go_To_Camera_Position_6: +/* 06E120 7F0395F0 0FC15C20 */ jal sub_GAME_7F057080 +/* 06E124 7F0395F4 92240001 */ lbu $a0, 1($s1) +/* 06E128 7F0395F8 1040001A */ beqz $v0, .L7F039664 +/* 06E12C 7F0395FC 00408025 */ move $s0, $v0 +/* 06E130 7F039600 0FC15AC7 */ jal check_if_object_type_has_been_loaded +/* 06E134 7F039604 00402025 */ move $a0, $v0 +/* 06E138 7F039608 04420017 */ bltzl $v0, .L7F039668 +/* 06E13C 7F03960C 26520006 */ addiu $s2, $s2, 6 +/* 06E140 7F039610 860C0006 */ lh $t4, 6($s0) +/* 06E144 7F039614 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 06E148 7F039618 01822021 */ addu $a0, $t4, $v0 +/* 06E14C 7F03961C 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E150 7F039620 AC2099F8 */ sw $zero, %lo(dword_CODE_bss_800799F8)($at) +/* 06E154 7F039624 3C018008 */ lui $at, %hi(dword_CODE_bss_800799FC) +/* 06E158 7F039628 AC2299FC */ sw $v0, %lo(dword_CODE_bss_800799FC)($at) +/* 06E15C 7F03962C 922B0002 */ lbu $t3, 2($s1) +/* 06E160 7F039630 92390003 */ lbu $t9, 3($s1) +/* 06E164 7F039634 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A18) +/* 06E168 7F039638 000BC200 */ sll $t8, $t3, 8 +/* 06E16C 7F03963C 03196825 */ or $t5, $t8, $t9 +/* 06E170 7F039640 AC2D9A18 */ sw $t5, %lo(dword_CODE_bss_80079A18)($at) +/* 06E174 7F039644 922E0004 */ lbu $t6, 4($s1) +/* 06E178 7F039648 922A0005 */ lbu $t2, 5($s1) +/* 06E17C 7F03964C 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A1C) +/* 06E180 7F039650 000E7A00 */ sll $t7, $t6, 8 +/* 06E184 7F039654 01EA4825 */ or $t1, $t7, $t2 +/* 06E188 7F039658 AC299A1C */ sw $t1, %lo(dword_CODE_bss_80079A1C)($at) +/* 06E18C 7F03965C 0FC1EA6E */ jal set_camera_mode +/* 06E190 7F039660 24040007 */ li $a0, 7 +.L7F039664: +/* 06E194 7F039664 26520006 */ addiu $s2, $s2, 6 +.L7F039668: +/* 06E198 7F039668 1000EFC8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E19C 7F03966C 26310006 */ addiu $s1, $s1, 6 +actionD6_If_Less_Than_Elevation_RVL_4: +/* 06E1A0 7F039670 922C0001 */ lbu $t4, 1($s1) +/* 06E1A4 7F039674 92380002 */ lbu $t8, 2($s1) +/* 06E1A8 7F039678 000C5A00 */ sll $t3, $t4, 8 +/* 06E1AC 7F03967C 0178C825 */ or $t9, $t3, $t8 +/* 06E1B0 7F039680 00196C00 */ sll $t5, $t9, 0x10 +/* 06E1B4 7F039684 000D7403 */ sra $t6, $t5, 0x10 +/* 06E1B8 7F039688 448E5000 */ mtc1 $t6, $f10 +/* 06E1BC 7F03968C 00000000 */ nop +/* 06E1C0 7F039690 468054A0 */ cvt.s.w $f18, $f10 +/* 06E1C4 7F039694 0FC225E6 */ jal get_curplayer_positiondata +/* 06E1C8 7F039698 E7B2014C */ swc1 $f18, 0x14c($sp) +/* 06E1CC 7F03969C C450000C */ lwc1 $f16, 0xc($v0) +/* 06E1D0 7F0396A0 C7A8014C */ lwc1 $f8, 0x14c($sp) +/* 06E1D4 7F0396A4 02C02025 */ move $a0, $s6 +/* 06E1D8 7F0396A8 02402825 */ move $a1, $s2 +/* 06E1DC 7F0396AC 4608803C */ c.lt.s $f16, $f8 +/* 06E1E0 7F0396B0 00000000 */ nop +/* 06E1E4 7F0396B4 45020007 */ bc1fl .L7F0396D4 +/* 06E1E8 7F0396B8 26520004 */ addiu $s2, $s2, 4 +/* 06E1EC 7F0396BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E1F0 7F0396C0 92260003 */ lbu $a2, 3($s1) +/* 06E1F4 7F0396C4 00409025 */ move $s2, $v0 +/* 06E1F8 7F0396C8 1000EFB0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E1FC 7F0396CC 02C28821 */ addu $s1, $s6, $v0 +/* 06E200 7F0396D0 26520004 */ addiu $s2, $s2, 4 +.L7F0396D4: +/* 06E204 7F0396D4 1000EFAD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E208 7F0396D8 26310004 */ addiu $s1, $s1, 4 +actionD7_Disable_Text_Variable_2: +/* 06E20C 7F0396DC 24040004 */ li $a0, 4 +/* 06E210 7F0396E0 0FC1A96A */ jal set_unset_bitflags +/* 06E214 7F0396E4 00002825 */ move $a1, $zero +/* 06E218 7F0396E8 24040002 */ li $a0, 2 +/* 06E21C 7F0396EC 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 06E220 7F0396F0 00002825 */ move $a1, $zero +/* 06E224 7F0396F4 92250001 */ lbu $a1, 1($s1) +/* 06E228 7F0396F8 30AF0002 */ andi $t7, $a1, 2 +/* 06E22C 7F0396FC 55E00005 */ bnezl $t7, .L7F039714 +/* 06E230 7F039700 30AA0001 */ andi $t2, $a1, 1 +/* 06E234 7F039704 0FC228E7 */ jal set_flags_in_BONDdata_stationary_intro_cam +/* 06E238 7F039708 24040002 */ li $a0, 2 +/* 06E23C 7F03970C 92250001 */ lbu $a1, 1($s1) +/* 06E240 7F039710 30AA0001 */ andi $t2, $a1, 1 +.L7F039714: +/* 06E244 7F039714 55400005 */ bnezl $t2, .L7F03972C +/* 06E248 7F039718 30A90004 */ andi $t1, $a1, 4 +/* 06E24C 7F03971C 0FC22A51 */ jal sub_GAME_7F08A944 +/* 06E250 7F039720 24040002 */ li $a0, 2 +/* 06E254 7F039724 92250001 */ lbu $a1, 1($s1) +/* 06E258 7F039728 30A90004 */ andi $t1, $a1, 4 +.L7F03972C: +/* 06E25C 7F03972C 15200003 */ bnez $t1, .L7F03973C +/* 06E260 7F039730 24040010 */ li $a0, 16 +/* 06E264 7F039734 0FC15858 */ jal set_unset_clock_lock_bits +/* 06E268 7F039738 00002825 */ move $a1, $zero +.L7F03973C: +/* 06E26C 7F03973C 3C018003 */ lui $at, %hi(D_800364B0) +/* 06E270 7F039740 AC2064B0 */ sw $zero, %lo(D_800364B0)($at) +/* 06E274 7F039744 26520002 */ addiu $s2, $s2, 2 +/* 06E278 7F039748 1000EF90 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E27C 7F03974C 26310002 */ addiu $s1, $s1, 2 +actionD8_Enable_All_On_Screen_Displays_1: +/* 06E280 7F039750 24040004 */ li $a0, 4 +/* 06E284 7F039754 0FC1A96A */ jal set_unset_bitflags +/* 06E288 7F039758 24050001 */ li $a1, 1 +/* 06E28C 7F03975C 24040002 */ li $a0, 2 +/* 06E290 7F039760 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 06E294 7F039764 24050001 */ li $a1, 1 +/* 06E298 7F039768 0FC228E0 */ jal unset_flags_in_BONDdata_stationary_intro_cam +/* 06E29C 7F03976C 24040002 */ li $a0, 2 +/* 06E2A0 7F039770 0FC22A4A */ jal sub_GAME_7F08A928 +/* 06E2A4 7F039774 24040002 */ li $a0, 2 +/* 06E2A8 7F039778 24040010 */ li $a0, 16 +/* 06E2AC 7F03977C 0FC15858 */ jal set_unset_clock_lock_bits +/* 06E2B0 7F039780 24050001 */ li $a1, 1 +/* 06E2B4 7F039784 240C0001 */ li $t4, 1 +/* 06E2B8 7F039788 3C018003 */ lui $at, %hi(D_800364B0) +/* 06E2BC 7F03978C AC2C64B0 */ sw $t4, %lo(D_800364B0)($at) +/* 06E2C0 7F039790 26520001 */ addiu $s2, $s2, 1 +/* 06E2C4 7F039794 1000EF7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E2C8 7F039798 26310001 */ addiu $s1, $s1, 1 +actionD9_GuardIDMovedToPresetReturnLoopIfSuccessful_5: +/* 06E2CC 7F03979C 922B0002 */ lbu $t3, 2($s1) +/* 06E2D0 7F0397A0 92390003 */ lbu $t9, 3($s1) +/* 06E2D4 7F0397A4 02E02025 */ move $a0, $s7 +/* 06E2D8 7F0397A8 000BC200 */ sll $t8, $t3, 8 +/* 06E2DC 7F0397AC 92250001 */ lbu $a1, 1($s1) +/* 06E2E0 7F0397B0 0000A025 */ move $s4, $zero +/* 06E2E4 7F0397B4 0FC0CC10 */ jal get_handle_for_guard_id +/* 06E2E8 7F0397B8 03199825 */ or $s3, $t8, $t9 +/* 06E2EC 7F0397BC 1040005E */ beqz $v0, .L7F039938 +/* 06E2F0 7F0397C0 00408025 */ move $s0, $v0 +/* 06E2F4 7F0397C4 02E02025 */ move $a0, $s7 +/* 06E2F8 7F0397C8 0FC0CBE5 */ jal sub_GAME_7F032F94 +/* 06E2FC 7F0397CC 02602825 */ move $a1, $s3 +/* 06E300 7F0397D0 28412710 */ slti $at, $v0, 0x2710 +/* 06E304 7F0397D4 1020000A */ beqz $at, .L7F039800 +/* 06E308 7F0397D8 00027900 */ sll $t7, $v0, 4 +/* 06E30C 7F0397DC 00026880 */ sll $t5, $v0, 2 +/* 06E310 7F0397E0 01A26823 */ subu $t5, $t5, $v0 +/* 06E314 7F0397E4 000D6880 */ sll $t5, $t5, 2 +/* 06E318 7F0397E8 3C0E8007 */ lui $t6, %hi(ptr_0xxxpresets) +/* 06E31C 7F0397EC 8DCE5D18 */ lw $t6, %lo(ptr_0xxxpresets)($t6) +/* 06E320 7F0397F0 01A26823 */ subu $t5, $t5, $v0 +/* 06E324 7F0397F4 000D6880 */ sll $t5, $t5, 2 +/* 06E328 7F0397F8 10000009 */ b .L7F039820 +/* 06E32C 7F0397FC 01AE1821 */ addu $v1, $t5, $t6 +.L7F039800: +/* 06E330 7F039800 3C0A8007 */ lui $t2, %hi(ptr_2xxxpresets) +/* 06E334 7F039804 8D4A5D1C */ lw $t2, %lo(ptr_2xxxpresets)($t2) +/* 06E338 7F039808 01E27821 */ addu $t7, $t7, $v0 +/* 06E33C 7F03980C 000F7880 */ sll $t7, $t7, 2 +/* 06E340 7F039810 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06E344 7F039814 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06E348 7F039818 01EA1821 */ addu $v1, $t7, $t2 +/* 06E34C 7F03981C 00611821 */ addu $v1, $v1, $at +.L7F039820: +/* 06E350 7F039820 C46C0018 */ lwc1 $f12, 0x18($v1) +/* 06E354 7F039824 C46E0020 */ lwc1 $f14, 0x20($v1) +/* 06E358 7F039828 0FC16A8C */ jal atan2f +/* 06E35C 7F03982C AFA30134 */ sw $v1, 0x134($sp) +/* 06E360 7F039830 8FA30134 */ lw $v1, 0x134($sp) +/* 06E364 7F039834 E7A00130 */ swc1 $f0, 0x130($sp) +/* 06E368 7F039838 00002825 */ move $a1, $zero +/* 06E36C 7F03983C C4640000 */ lwc1 $f4, ($v1) +/* 06E370 7F039840 E7A40124 */ swc1 $f4, 0x124($sp) +/* 06E374 7F039844 C4660004 */ lwc1 $f6, 4($v1) +/* 06E378 7F039848 E7A60128 */ swc1 $f6, 0x128($sp) +/* 06E37C 7F03984C C46A0008 */ lwc1 $f10, 8($v1) +/* 06E380 7F039850 E7AA012C */ swc1 $f10, 0x12c($sp) +/* 06E384 7F039854 8C690028 */ lw $t1, 0x28($v1) +/* 06E388 7F039858 AFA90120 */ sw $t1, 0x120($sp) +/* 06E38C 7F03985C 0FC0F416 */ jal sub_GAME_7F03D058 +/* 06E390 7F039860 8E040018 */ lw $a0, 0x18($s0) +/* 06E394 7F039864 27A40124 */ addiu $a0, $sp, 0x124 +/* 06E398 7F039868 27A50120 */ addiu $a1, $sp, 0x120 +/* 06E39C 7F03986C 8FA60130 */ lw $a2, 0x130($sp) +/* 06E3A0 7F039870 0FC0CFD2 */ jal sub_GAME_7F033F48 +/* 06E3A4 7F039874 24070001 */ li $a3, 1 +/* 06E3A8 7F039878 1040002C */ beqz $v0, .L7F03992C +/* 06E3AC 7F03987C C7B20124 */ lwc1 $f18, 0x124($sp) +/* 06E3B0 7F039880 8E0C0018 */ lw $t4, 0x18($s0) +/* 06E3B4 7F039884 E5920008 */ swc1 $f18, 8($t4) +/* 06E3B8 7F039888 8E0B0018 */ lw $t3, 0x18($s0) +/* 06E3BC 7F03988C C7B00128 */ lwc1 $f16, 0x128($sp) +/* 06E3C0 7F039890 E570000C */ swc1 $f16, 0xc($t3) +/* 06E3C4 7F039894 8E180018 */ lw $t8, 0x18($s0) +/* 06E3C8 7F039898 C7A8012C */ lwc1 $f8, 0x12c($sp) +/* 06E3CC 7F03989C E7080010 */ swc1 $f8, 0x10($t8) +/* 06E3D0 7F0398A0 8E0D0018 */ lw $t5, 0x18($s0) +/* 06E3D4 7F0398A4 8FB90120 */ lw $t9, 0x120($sp) +/* 06E3D8 7F0398A8 ADB90014 */ sw $t9, 0x14($t5) +/* 06E3DC 7F0398AC 8E0E0014 */ lw $t6, 0x14($s0) +/* 06E3E0 7F0398B0 8E04001C */ lw $a0, 0x1c($s0) +/* 06E3E4 7F0398B4 35CF0001 */ ori $t7, $t6, 1 +/* 06E3E8 7F0398B8 AE0F0014 */ sw $t7, 0x14($s0) +/* 06E3EC 7F0398BC 0FC1B34F */ jal setsubroty +/* 06E3F0 7F0398C0 8FA50130 */ lw $a1, 0x130($sp) +/* 06E3F4 7F0398C4 8E04001C */ lw $a0, 0x1c($s0) +/* 06E3F8 7F0398C8 0FC1B303 */ jal setsuboffset +/* 06E3FC 7F0398CC 27A50124 */ addiu $a1, $sp, 0x124 +/* 06E400 7F0398D0 0FC08365 */ jal sub_GAME_7F020D94 +/* 06E404 7F0398D4 02002025 */ move $a0, $s0 +/* 06E408 7F0398D8 3C028008 */ lui $v0, %hi(pPlayer) +/* 06E40C 7F0398DC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 06E410 7F0398E0 8E090018 */ lw $t1, 0x18($s0) +/* 06E414 7F0398E4 C7A40124 */ lwc1 $f4, 0x124($sp) +/* 06E418 7F0398E8 8C4A00A8 */ lw $t2, 0xa8($v0) +/* 06E41C 7F0398EC 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 06E420 7F0398F0 24140001 */ li $s4, 1 +/* 06E424 7F0398F4 1549000D */ bne $t2, $t1, .L7F03992C +/* 06E428 7F0398F8 00000000 */ nop +/* 06E42C 7F0398FC E444048C */ swc1 $f4, 0x48c($v0) +/* 06E430 7F039900 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 06E434 7F039904 C7A60128 */ lwc1 $f6, 0x128($sp) +/* 06E438 7F039908 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 06E43C 7F03990C 3C198008 */ lui $t9, %hi(pPlayer) +/* 06E440 7F039910 E5860490 */ swc1 $f6, 0x490($t4) +/* 06E444 7F039914 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 06E448 7F039918 C7AA012C */ lwc1 $f10, 0x12c($sp) +/* 06E44C 7F03991C E56A0494 */ swc1 $f10, 0x494($t3) +/* 06E450 7F039920 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 06E454 7F039924 8FB80120 */ lw $t8, 0x120($sp) +/* 06E458 7F039928 AF380488 */ sw $t8, 0x488($t9) +.L7F03992C: +/* 06E45C 7F03992C 8E040018 */ lw $a0, 0x18($s0) +/* 06E460 7F039930 0FC0F416 */ jal sub_GAME_7F03D058 +/* 06E464 7F039934 24050001 */ li $a1, 1 +.L7F039938: +/* 06E468 7F039938 12800007 */ beqz $s4, .L7F039958 +/* 06E46C 7F03993C 02C02025 */ move $a0, $s6 +/* 06E470 7F039940 02402825 */ move $a1, $s2 +/* 06E474 7F039944 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E478 7F039948 92260004 */ lbu $a2, 4($s1) +/* 06E47C 7F03994C 00409025 */ move $s2, $v0 +/* 06E480 7F039950 1000EF0E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E484 7F039954 02C28821 */ addu $s1, $s6, $v0 +.L7F039958: +/* 06E488 7F039958 26520005 */ addiu $s2, $s2, 5 +/* 06E48C 7F03995C 1000EF0B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E490 7F039960 26310005 */ addiu $s1, $s1, 5 +actionDA_Fade_Out_From_Cut_Scene_1: +/* 06E494 7F039964 3C0D8003 */ lui $t5, %hi(stop_time_flag) +/* 06E498 7F039968 8DAD64A0 */ lw $t5, %lo(stop_time_flag)($t5) +/* 06E49C 7F03996C 24010002 */ li $at, 2 +/* 06E4A0 7F039970 00002025 */ move $a0, $zero +/* 06E4A4 7F039974 11A10008 */ beq $t5, $at, .L7F039998 +/* 06E4A8 7F039978 00002825 */ move $a1, $zero +/* 06E4AC 7F03997C 4407A000 */ mfc1 $a3, $f20 +/* 06E4B0 7F039980 0FC201EC */ jal set_rgba_tint +/* 06E4B4 7F039984 00003025 */ move $a2, $zero +/* 06E4B8 7F039988 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 06E4BC 7F03998C 44817000 */ mtc1 $at, $f14 +/* 06E4C0 7F039990 0FC20216 */ jal fade_to_over_seconds +/* 06E4C4 7F039994 4600B306 */ mov.s $f12, $f22 +.L7F039998: +/* 06E4C8 7F039998 26520001 */ addiu $s2, $s2, 1 +/* 06E4CC 7F03999C 1000EEFB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E4D0 7F0399A0 26310001 */ addiu $s1, $s1, 1 +actionDB_Fade_In_From_Black_Reset_DA_1: +/* 06E4D4 7F0399A4 3C0E8003 */ lui $t6, %hi(stop_time_flag) +/* 06E4D8 7F0399A8 8DCE64A0 */ lw $t6, %lo(stop_time_flag)($t6) +/* 06E4DC 7F0399AC 24010002 */ li $at, 2 +/* 06E4E0 7F0399B0 00002025 */ move $a0, $zero +/* 06E4E4 7F0399B4 11C10007 */ beq $t6, $at, .L7F0399D4 +/* 06E4E8 7F0399B8 00002825 */ move $a1, $zero +/* 06E4EC 7F0399BC 00003025 */ move $a2, $zero +/* 06E4F0 7F0399C0 0FC201EC */ jal set_rgba_tint +/* 06E4F4 7F0399C4 3C073F80 */ li $a3, 0x3F800000 # 1.000000 +/* 06E4F8 7F0399C8 4600B306 */ mov.s $f12, $f22 +/* 06E4FC 7F0399CC 0FC20216 */ jal fade_to_over_seconds +/* 06E500 7F0399D0 4600A386 */ mov.s $f14, $f20 +.L7F0399D4: +/* 06E504 7F0399D4 26520001 */ addiu $s2, $s2, 1 +/* 06E508 7F0399D8 1000EEEC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E50C 7F0399DC 26310001 */ addiu $s1, $s1, 1 +actionDC_RVL_When_Fade_Complete_2: +/* 06E510 7F0399E0 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 06E514 7F0399E4 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 06E518 7F0399E8 02C02025 */ move $a0, $s6 +/* 06E51C 7F0399EC 02402825 */ move $a1, $s2 +/* 06E520 7F0399F0 C5F203E4 */ lwc1 $f18, 0x3e4($t7) +/* 06E524 7F0399F4 4614903C */ c.lt.s $f18, $f20 +/* 06E528 7F0399F8 00000000 */ nop +/* 06E52C 7F0399FC 45020007 */ bc1fl .L7F039A1C +/* 06E530 7F039A00 26520002 */ addiu $s2, $s2, 2 +/* 06E534 7F039A04 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E538 7F039A08 92260001 */ lbu $a2, 1($s1) +/* 06E53C 7F039A0C 00409025 */ move $s2, $v0 +/* 06E540 7F039A10 1000EEDE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E544 7F039A14 02C28821 */ addu $s1, $s6, $v0 +/* 06E548 7F039A18 26520002 */ addiu $s2, $s2, 2 +.L7F039A1C: +/* 06E54C 7F039A1C 1000EEDB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E550 7F039A20 26310002 */ addiu $s1, $s1, 2 +actionDD_Remove_All_Guards_1: +/* 06E554 7F039A24 0FC07D4C */ jal get_numguards +/* 06E558 7F039A28 00000000 */ nop +/* 06E55C 7F039A2C 2443FFFF */ addiu $v1, $v0, -1 +/* 06E560 7F039A30 04600011 */ bltz $v1, .L7F039A78 +/* 06E564 7F039A34 26520001 */ addiu $s2, $s2, 1 +/* 06E568 7F039A38 00031100 */ sll $v0, $v1, 4 +/* 06E56C 7F039A3C 00431023 */ subu $v0, $v0, $v1 +/* 06E570 7F039A40 000210C0 */ sll $v0, $v0, 3 +/* 06E574 7F039A44 00431023 */ subu $v0, $v0, $v1 +/* 06E578 7F039A48 00021080 */ sll $v0, $v0, 2 +/* 06E57C 7F039A4C 8FCA0000 */ lw $t2, ($fp) +.L7F039A50: +/* 06E580 7F039A50 01421821 */ addu $v1, $t2, $v0 +/* 06E584 7F039A54 8C69001C */ lw $t1, 0x1c($v1) +/* 06E588 7F039A58 2442FE24 */ addiu $v0, $v0, -0x1dc +/* 06E58C 7F039A5C 11200004 */ beqz $t1, .L7F039A70 +/* 06E590 7F039A60 00000000 */ nop +/* 06E594 7F039A64 8C6C0014 */ lw $t4, 0x14($v1) +/* 06E598 7F039A68 358B0400 */ ori $t3, $t4, 0x400 +/* 06E59C 7F039A6C AC6B0014 */ sw $t3, 0x14($v1) +.L7F039A70: +/* 06E5A0 7F039A70 0443FFF7 */ bgezl $v0, .L7F039A50 +/* 06E5A4 7F039A74 8FCA0000 */ lw $t2, ($fp) +.L7F039A78: +/* 06E5A8 7F039A78 1000EEC4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E5AC 7F039A7C 26310001 */ addiu $s1, $s1, 1 +actionDE_Bring_Removed_Guards_Back_1: +/* 06E5B0 7F039A80 0FC07D4C */ jal get_numguards +/* 06E5B4 7F039A84 00000000 */ nop +/* 06E5B8 7F039A88 2443FFFF */ addiu $v1, $v0, -1 +/* 06E5BC 7F039A8C 0460000E */ bltz $v1, .L7F039AC8 +/* 06E5C0 7F039A90 00602025 */ move $a0, $v1 +/* 06E5C4 7F039A94 00031900 */ sll $v1, $v1, 4 +/* 06E5C8 7F039A98 00641823 */ subu $v1, $v1, $a0 +/* 06E5CC 7F039A9C 000318C0 */ sll $v1, $v1, 3 +/* 06E5D0 7F039AA0 00641823 */ subu $v1, $v1, $a0 +/* 06E5D4 7F039AA4 00031880 */ sll $v1, $v1, 2 +/* 06E5D8 7F039AA8 2404FBFF */ li $a0, -1025 +.L7F039AAC: +/* 06E5DC 7F039AAC 8FD80000 */ lw $t8, ($fp) +/* 06E5E0 7F039AB0 03031021 */ addu $v0, $t8, $v1 +/* 06E5E4 7F039AB4 8C590014 */ lw $t9, 0x14($v0) +/* 06E5E8 7F039AB8 2463FE24 */ addiu $v1, $v1, -0x1dc +/* 06E5EC 7F039ABC 03246824 */ and $t5, $t9, $a0 +/* 06E5F0 7F039AC0 0461FFFA */ bgez $v1, .L7F039AAC +/* 06E5F4 7F039AC4 AC4D0014 */ sw $t5, 0x14($v0) +.L7F039AC8: +/* 06E5F8 7F039AC8 26520001 */ addiu $s2, $s2, 1 +/* 06E5FC 7F039ACC 1000EEAF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E600 7F039AD0 26310001 */ addiu $s1, $s1, 1 +actionDF_Open_Type_16_Door_Used_Cut_Scenes_2: +/* 06E604 7F039AD4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06E608 7F039AD8 92240001 */ lbu $a0, 1($s1) +/* 06E60C 7F039ADC 10400011 */ beqz $v0, .L7F039B24 +/* 06E610 7F039AE0 00402025 */ move $a0, $v0 +/* 06E614 7F039AE4 8C4E0010 */ lw $t6, 0x10($v0) +/* 06E618 7F039AE8 51C0000F */ beql $t6, $zero, .L7F039B28 +/* 06E61C 7F039AEC 26520002 */ addiu $s2, $s2, 2 +/* 06E620 7F039AF0 C4500084 */ lwc1 $f16, 0x84($v0) +/* 06E624 7F039AF4 E45400B8 */ swc1 $f20, 0xb8($v0) +/* 06E628 7F039AF8 3C0F8005 */ lui $t7, %hi(global_timer) +/* 06E62C 7F039AFC E45000B4 */ swc1 $f16, 0xb4($v0) +/* 06E630 7F039B00 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 06E634 7F039B04 A04000BC */ sb $zero, 0xbc($v0) +/* 06E638 7F039B08 AC4F00EC */ sw $t7, 0xec($v0) +/* 06E63C 7F039B0C 0FC14AC0 */ jal sub_GAME_7F052B00 +/* 06E640 7F039B10 AFA2010C */ sw $v0, 0x10c($sp) +/* 06E644 7F039B14 0FC14D66 */ jal sub_GAME_7F053598 +/* 06E648 7F039B18 8FA4010C */ lw $a0, 0x10c($sp) +/* 06E64C 7F039B1C 0FC14EC4 */ jal sub_GAME_7F053B10 +/* 06E650 7F039B20 8FA4010C */ lw $a0, 0x10c($sp) +.L7F039B24: +/* 06E654 7F039B24 26520002 */ addiu $s2, $s2, 2 +.L7F039B28: +/* 06E658 7F039B28 1000EE98 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E65C 7F039B2C 26310002 */ addiu $s1, $s1, 2 +actionE0_Guard_ID_Draws_Weapon_num_3: +/* 06E660 7F039B30 02E02025 */ move $a0, $s7 +/* 06E664 7F039B34 0FC0CC10 */ jal get_handle_for_guard_id +/* 06E668 7F039B38 92250001 */ lbu $a1, 1($s1) +/* 06E66C 7F039B3C 10400003 */ beqz $v0, .L7F039B4C +/* 06E670 7F039B40 00402025 */ move $a0, $v0 +/* 06E674 7F039B44 0FC1487A */ jal set_0x4_in_runtime_flags_for_item_in_guards_hand +/* 06E678 7F039B48 92250002 */ lbu $a1, 2($s1) +.L7F039B4C: +/* 06E67C 7F039B4C 26520003 */ addiu $s2, $s2, 3 +/* 06E680 7F039B50 1000EE8E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E684 7F039B54 26310003 */ addiu $s1, $s1, 3 +actionE1_If_Fewer_than_This_Many_Players_Playing_RVL_3: +/* 06E688 7F039B58 0FC26919 */ jal get_num_players +/* 06E68C 7F039B5C 00000000 */ nop +/* 06E690 7F039B60 822A0001 */ lb $t2, 1($s1) +/* 06E694 7F039B64 02C02025 */ move $a0, $s6 +/* 06E698 7F039B68 02402825 */ move $a1, $s2 +/* 06E69C 7F039B6C 004A082A */ slt $at, $v0, $t2 +/* 06E6A0 7F039B70 50200007 */ beql $at, $zero, .L7F039B90 +/* 06E6A4 7F039B74 26520003 */ addiu $s2, $s2, 3 +/* 06E6A8 7F039B78 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E6AC 7F039B7C 92260002 */ lbu $a2, 2($s1) +/* 06E6B0 7F039B80 00409025 */ move $s2, $v0 +/* 06E6B4 7F039B84 1000EE81 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E6B8 7F039B88 02C28821 */ addu $s1, $s6, $v0 +/* 06E6BC 7F039B8C 26520003 */ addiu $s2, $s2, 3 +.L7F039B90: +/* 06E6C0 7F039B90 1000EE7E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E6C4 7F039B94 26310003 */ addiu $s1, $s1, 3 +actionE2_If_Ammo_Value_In_Type_Is_LTV_RVL_4: +/* 06E6C8 7F039B98 0FC1A496 */ jal check_cur_player_ammo_amount_total +/* 06E6CC 7F039B9C 82240001 */ lb $a0, 1($s1) +/* 06E6D0 7F039BA0 82290002 */ lb $t1, 2($s1) +/* 06E6D4 7F039BA4 02C02025 */ move $a0, $s6 +/* 06E6D8 7F039BA8 02402825 */ move $a1, $s2 +/* 06E6DC 7F039BAC 0049082A */ slt $at, $v0, $t1 +/* 06E6E0 7F039BB0 50200007 */ beql $at, $zero, .L7F039BD0 +/* 06E6E4 7F039BB4 26520004 */ addiu $s2, $s2, 4 +/* 06E6E8 7F039BB8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E6EC 7F039BBC 92260003 */ lbu $a2, 3($s1) +/* 06E6F0 7F039BC0 00409025 */ move $s2, $v0 +/* 06E6F4 7F039BC4 1000EE71 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E6F8 7F039BC8 02C28821 */ addu $s1, $s6, $v0 +/* 06E6FC 7F039BCC 26520004 */ addiu $s2, $s2, 4 +.L7F039BD0: +/* 06E700 7F039BD0 1000EE6E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E704 7F039BD4 26310004 */ addiu $s1, $s1, 4 +actionE3_Draw_Weapon_From_Inventory_In_Game_2: +/* 06E708 7F039BD8 00002025 */ move $a0, $zero +/* 06E70C 7F039BDC 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 06E710 7F039BE0 82250001 */ lb $a1, 1($s1) +/* 06E714 7F039BE4 24040001 */ li $a0, 1 +/* 06E718 7F039BE8 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 06E71C 7F039BEC 00002825 */ move $a1, $zero +/* 06E720 7F039BF0 26520002 */ addiu $s2, $s2, 2 +/* 06E724 7F039BF4 1000EE65 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E728 7F039BF8 26310002 */ addiu $s1, $s1, 2 +actionE4_Draw_Weapon_From_Inventory_Cut_Scene_2: +/* 06E72C 7F039BFC 00002025 */ move $a0, $zero +/* 06E730 7F039C00 0FC176D5 */ jal remove_hands_item +/* 06E734 7F039C04 82250001 */ lb $a1, 1($s1) +/* 06E738 7F039C08 24040001 */ li $a0, 1 +/* 06E73C 7F039C0C 0FC176D5 */ jal remove_hands_item +/* 06E740 7F039C10 00002825 */ move $a1, $zero +/* 06E744 7F039C14 26520002 */ addiu $s2, $s2, 2 +/* 06E748 7F039C18 1000EE5C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E74C 7F039C1C 26310002 */ addiu $s1, $s1, 2 +actionE5_Set_Bonds_Speed_3: +/* 06E750 7F039C20 822C0001 */ lb $t4, 1($s1) +/* 06E754 7F039C24 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079990) +/* 06E758 7F039C28 24429990 */ addiu $v0, %lo(flt_CODE_bss_80079990) # addiu $v0, $v0, -0x6670 +/* 06E75C 7F039C2C 448C4000 */ mtc1 $t4, $f8 +/* 06E760 7F039C30 E4540004 */ swc1 $f20, 4($v0) +/* 06E764 7F039C34 26520003 */ addiu $s2, $s2, 3 +/* 06E768 7F039C38 46804120 */ cvt.s.w $f4, $f8 +/* 06E76C 7F039C3C 26310003 */ addiu $s1, $s1, 3 +/* 06E770 7F039C40 E4440000 */ swc1 $f4, ($v0) +/* 06E774 7F039C44 822BFFFF */ lb $t3, -1($s1) +/* 06E778 7F039C48 448B3000 */ mtc1 $t3, $f6 +/* 06E77C 7F039C4C 00000000 */ nop +/* 06E780 7F039C50 468032A0 */ cvt.s.w $f10, $f6 +/* 06E784 7F039C54 1000EE4D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E788 7F039C58 E44A0008 */ swc1 $f10, 8($v0) +actionE6_If_16_Object_And_Preset_Are_In_Same_Room_RVL_5: +/* 06E78C 7F039C5C 92380002 */ lbu $t8, 2($s1) +/* 06E790 7F039C60 922D0003 */ lbu $t5, 3($s1) +/* 06E794 7F039C64 92240001 */ lbu $a0, 1($s1) +/* 06E798 7F039C68 0018CA00 */ sll $t9, $t8, 8 +/* 06E79C 7F039C6C 032D8025 */ or $s0, $t9, $t5 +/* 06E7A0 7F039C70 320EFFFF */ andi $t6, $s0, 0xffff +/* 06E7A4 7F039C74 0FC15C30 */ jal get_handle_to_tagged_object +/* 06E7A8 7F039C78 01C08025 */ move $s0, $t6 +/* 06E7AC 7F039C7C 2A012710 */ slti $at, $s0, 0x2710 +/* 06E7B0 7F039C80 1020000A */ beqz $at, .L7F039CAC +/* 06E7B4 7F039C84 02001825 */ move $v1, $s0 +/* 06E7B8 7F039C88 00037880 */ sll $t7, $v1, 2 +/* 06E7BC 7F039C8C 01E37823 */ subu $t7, $t7, $v1 +/* 06E7C0 7F039C90 000F7880 */ sll $t7, $t7, 2 +/* 06E7C4 7F039C94 3C0A8007 */ lui $t2, %hi(ptr_0xxxpresets) +/* 06E7C8 7F039C98 8D4A5D18 */ lw $t2, %lo(ptr_0xxxpresets)($t2) +/* 06E7CC 7F039C9C 01E37823 */ subu $t7, $t7, $v1 +/* 06E7D0 7F039CA0 000F7880 */ sll $t7, $t7, 2 +/* 06E7D4 7F039CA4 1000000A */ b .L7F039CD0 +/* 06E7D8 7F039CA8 01EA2021 */ addu $a0, $t7, $t2 +.L7F039CAC: +/* 06E7DC 7F039CAC 3C0C8007 */ lui $t4, %hi(ptr_2xxxpresets) +/* 06E7E0 7F039CB0 8D8C5D1C */ lw $t4, %lo(ptr_2xxxpresets)($t4) +/* 06E7E4 7F039CB4 00034900 */ sll $t1, $v1, 4 +/* 06E7E8 7F039CB8 01234821 */ addu $t1, $t1, $v1 +/* 06E7EC 7F039CBC 00094880 */ sll $t1, $t1, 2 +/* 06E7F0 7F039CC0 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06E7F4 7F039CC4 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06E7F8 7F039CC8 012C2021 */ addu $a0, $t1, $t4 +/* 06E7FC 7F039CCC 00812021 */ addu $a0, $a0, $at +.L7F039CD0: +/* 06E800 7F039CD0 8C830028 */ lw $v1, 0x28($a0) +/* 06E804 7F039CD4 50600013 */ beql $v1, $zero, .L7F039D24 +/* 06E808 7F039CD8 26520005 */ addiu $s2, $s2, 5 +/* 06E80C 7F039CDC 50400011 */ beql $v0, $zero, .L7F039D24 +/* 06E810 7F039CE0 26520005 */ addiu $s2, $s2, 5 +/* 06E814 7F039CE4 8C440010 */ lw $a0, 0x10($v0) +/* 06E818 7F039CE8 5080000E */ beql $a0, $zero, .L7F039D24 +/* 06E81C 7F039CEC 26520005 */ addiu $s2, $s2, 5 +/* 06E820 7F039CF0 8C8B0014 */ lw $t3, 0x14($a0) +/* 06E824 7F039CF4 90790003 */ lbu $t9, 3($v1) +/* 06E828 7F039CF8 02C02025 */ move $a0, $s6 +/* 06E82C 7F039CFC 91780003 */ lbu $t8, 3($t3) +/* 06E830 7F039D00 02402825 */ move $a1, $s2 +/* 06E834 7F039D04 57190007 */ bnel $t8, $t9, .L7F039D24 +/* 06E838 7F039D08 26520005 */ addiu $s2, $s2, 5 +/* 06E83C 7F039D0C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E840 7F039D10 92260004 */ lbu $a2, 4($s1) +/* 06E844 7F039D14 00409025 */ move $s2, $v0 +/* 06E848 7F039D18 1000EE1C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E84C 7F039D1C 02C28821 */ addu $s1, $s6, $v0 +/* 06E850 7F039D20 26520005 */ addiu $s2, $s2, 5 +.L7F039D24: +/* 06E854 7F039D24 1000EE19 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E858 7F039D28 26310005 */ addiu $s1, $s1, 5 +actionE9_Instantly_Switch_Sky_To_Sky_2_1: +/* 06E85C 7F039D2C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 06E860 7F039D30 44816000 */ mtc1 $at, $f12 +/* 06E864 7F039D34 0FC2EB2A */ jal switch_to_solosky2 +/* 06E868 7F039D38 00000000 */ nop +/* 06E86C 7F039D3C 26520001 */ addiu $s2, $s2, 1 +/* 06E870 7F039D40 1000EE12 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E874 7F039D44 26310001 */ addiu $s1, $s1, 1 +actionEA_Stop_Game_Time_1: +/* 06E878 7F039D48 3C0D8003 */ lui $t5, %hi(stop_time_flag) +/* 06E87C 7F039D4C 8DAD64A0 */ lw $t5, %lo(stop_time_flag)($t5) +/* 06E880 7F039D50 240E0001 */ li $t6, 1 +/* 06E884 7F039D54 3C018003 */ lui $at, %hi(stop_time_flag) +/* 06E888 7F039D58 15A00002 */ bnez $t5, .L7F039D64 +/* 06E88C 7F039D5C 26520001 */ addiu $s2, $s2, 1 +/* 06E890 7F039D60 AC2E64A0 */ sw $t6, %lo(stop_time_flag)($at) +.L7F039D64: +/* 06E894 7F039D64 1000EE09 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E898 7F039D68 26310001 */ addiu $s1, $s1, 1 +actionEB_If_Key_Pressed_RVL_2: +/* 06E89C 7F039D6C 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 06E8A0 7F039D70 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 06E8A4 7F039D74 02C02025 */ move $a0, $s6 +/* 06E8A8 7F039D78 02402825 */ move $a1, $s2 +/* 06E8AC 7F039D7C 8DEA00D8 */ lw $t2, 0xd8($t7) +/* 06E8B0 7F039D80 51400007 */ beql $t2, $zero, .L7F039DA0 +/* 06E8B4 7F039D84 26520002 */ addiu $s2, $s2, 2 +/* 06E8B8 7F039D88 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E8BC 7F039D8C 92260001 */ lbu $a2, 1($s1) +/* 06E8C0 7F039D90 00409025 */ move $s2, $v0 +/* 06E8C4 7F039D94 1000EDFD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E8C8 7F039D98 02C28821 */ addu $s1, $s6, $v0 +/* 06E8CC 7F039D9C 26520002 */ addiu $s2, $s2, 2 +.L7F039DA0: +/* 06E8D0 7F039DA0 1000EDFA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E8D4 7F039DA4 26310002 */ addiu $s1, $s1, 2 +actionEC_Disable_Player_Pickups_1: +/* 06E8D8 7F039DA8 24090001 */ li $t1, 1 +/* 06E8DC 7F039DAC 3C018003 */ lui $at, %hi(disable_player_pickups_flag) +/* 06E8E0 7F039DB0 AC2964B4 */ sw $t1, %lo(disable_player_pickups_flag)($at) +/* 06E8E4 7F039DB4 26520001 */ addiu $s2, $s2, 1 +/* 06E8E8 7F039DB8 1000EDF4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E8EC 7F039DBC 26310001 */ addiu $s1, $s1, 1 +actionED_Hide_First_Person_Display_1: +/* 06E8F0 7F039DC0 0FC173D7 */ jal remove_item_in_hand +/* 06E8F4 7F039DC4 00002025 */ move $a0, $zero +/* 06E8F8 7F039DC8 0FC173D7 */ jal remove_item_in_hand +/* 06E8FC 7F039DCC 24040001 */ li $a0, 1 +/* 06E900 7F039DD0 26520001 */ addiu $s2, $s2, 1 +/* 06E904 7F039DD4 1000EDED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E908 7F039DD8 26310001 */ addiu $s1, $s1, 1 +actionEE_Cuba_Circular_Camera_Aim_D: +/* 06E90C 7F039DDC 92390003 */ lbu $t9, 3($s1) +/* 06E910 7F039DE0 922E0004 */ lbu $t6, 4($s1) +/* 06E914 7F039DE4 922C0001 */ lbu $t4, 1($s1) +/* 06E918 7F039DE8 00196A00 */ sll $t5, $t9, 8 +/* 06E91C 7F039DEC 01AE1825 */ or $v1, $t5, $t6 +/* 06E920 7F039DF0 00037C00 */ sll $t7, $v1, 0x10 +/* 06E924 7F039DF4 922D0007 */ lbu $t5, 7($s1) +/* 06E928 7F039DF8 000F1C03 */ sra $v1, $t7, 0x10 +/* 06E92C 7F039DFC 922F0008 */ lbu $t7, 8($s1) +/* 06E930 7F039E00 92380002 */ lbu $t8, 2($s1) +/* 06E934 7F039E04 000D7200 */ sll $t6, $t5, 8 +/* 06E938 7F039E08 9239000B */ lbu $t9, 0xb($s1) +/* 06E93C 7F039E0C 01CF3025 */ or $a2, $t6, $t7 +/* 06E940 7F039E10 922E000C */ lbu $t6, 0xc($s1) +/* 06E944 7F039E14 000C5A00 */ sll $t3, $t4, 8 +/* 06E948 7F039E18 92290005 */ lbu $t1, 5($s1) +/* 06E94C 7F039E1C 01781025 */ or $v0, $t3, $t8 +/* 06E950 7F039E20 922B0006 */ lbu $t3, 6($s1) +/* 06E954 7F039E24 00196A00 */ sll $t5, $t9, 8 +/* 06E958 7F039E28 01AE4025 */ or $t0, $t5, $t6 +/* 06E95C 7F039E2C 44889000 */ mtc1 $t0, $f18 +/* 06E960 7F039E30 00096200 */ sll $t4, $t1, 8 +/* 06E964 7F039E34 018B2825 */ or $a1, $t4, $t3 +/* 06E968 7F039E38 0005C400 */ sll $t8, $a1, 0x10 +/* 06E96C 7F039E3C 46809420 */ cvt.s.w $f16, $f18 +/* 06E970 7F039E40 00182C03 */ sra $a1, $t8, 0x10 +/* 06E974 7F039E44 44853000 */ mtc1 $a1, $f6 +/* 06E978 7F039E48 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 06E97C 7F039E4C 44810000 */ mtc1 $at, $f0 +/* 06E980 7F039E50 468032A0 */ cvt.s.w $f10, $f6 +/* 06E984 7F039E54 461A8202 */ mul.s $f8, $f16, $f26 +/* 06E988 7F039E58 922A0009 */ lbu $t2, 9($s1) +/* 06E98C 7F039E5C 922C000A */ lbu $t4, 0xa($s1) +/* 06E990 7F039E60 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E994 7F039E64 AC2099F8 */ sw $zero, %lo(dword_CODE_bss_800799F8)($at) +/* 06E998 7F039E68 461A5482 */ mul.s $f18, $f10, $f26 +/* 06E99C 7F039E6C 3C018008 */ lui $at, %hi(dword_CODE_bss_800799FC) +/* 06E9A0 7F039E70 AC2099FC */ sw $zero, %lo(dword_CODE_bss_800799FC)($at) +/* 06E9A4 7F039E74 000A4A00 */ sll $t1, $t2, 8 +/* 06E9A8 7F039E78 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A00) +/* 06E9AC 7F039E7C 012C3825 */ or $a3, $t1, $t4 +/* 06E9B0 7F039E80 46004103 */ div.s $f4, $f8, $f0 +/* 06E9B4 7F039E84 44824000 */ mtc1 $v0, $f8 +/* 06E9B8 7F039E88 44833000 */ mtc1 $v1, $f6 +/* 06E9BC 7F039E8C 00075C00 */ sll $t3, $a3, 0x10 +/* 06E9C0 7F039E90 000B3C03 */ sra $a3, $t3, 0x10 +/* 06E9C4 7F039E94 468032A0 */ cvt.s.w $f10, $f6 +/* 06E9C8 7F039E98 24040007 */ li $a0, 7 +/* 06E9CC 7F039E9C 46009403 */ div.s $f16, $f18, $f0 +/* 06E9D0 7F039EA0 E4249A00 */ swc1 $f4, %lo(flt_CODE_bss_80079A00)($at) +/* 06E9D4 7F039EA4 44879000 */ mtc1 $a3, $f18 +/* 06E9D8 7F039EA8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A04) +/* 06E9DC 7F039EAC 46804120 */ cvt.s.w $f4, $f8 +/* 06E9E0 7F039EB0 E4309A04 */ swc1 $f16, %lo(flt_CODE_bss_80079A04)($at) +/* 06E9E4 7F039EB4 46809420 */ cvt.s.w $f16, $f18 +/* 06E9E8 7F039EB8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A08) +/* 06E9EC 7F039EBC E4249A08 */ swc1 $f4, %lo(flt_CODE_bss_80079A08)($at) +/* 06E9F0 7F039EC0 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A0C) +/* 06E9F4 7F039EC4 E42A9A0C */ swc1 $f10, %lo(flt_CODE_bss_80079A0C)($at) +/* 06E9F8 7F039EC8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A10) +/* 06E9FC 7F039ECC E4309A10 */ swc1 $f16, %lo(flt_CODE_bss_80079A10)($at) +/* 06EA00 7F039ED0 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A14) +/* 06EA04 7F039ED4 0FC1EA6E */ jal set_camera_mode +/* 06EA08 7F039ED8 AC269A14 */ sw $a2, %lo(dword_CODE_bss_80079A14)($at) +/* 06EA0C 7F039EDC 2652000D */ addiu $s2, $s2, 0xd +/* 06EA10 7F039EE0 1000EDAA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA14 7F039EE4 2631000D */ addiu $s1, $s1, 0xd +actionEF_Trigger_Credits_1: +/* 06EA18 7F039EE8 240F0001 */ li $t7, 1 +/* 06EA1C 7F039EEC 3C018003 */ lui $at, %hi(D_8003643C) +/* 06EA20 7F039EF0 AC2F643C */ sw $t7, %lo(D_8003643C)($at) +/* 06EA24 7F039EF4 26520001 */ addiu $s2, $s2, 1 +/* 06EA28 7F039EF8 1000EDA4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA2C 7F039EFC 26310001 */ addiu $s1, $s1, 1 +actionF0_RVL_If_Credits_Completed_2: +/* 06EA30 7F039F00 3C0A8003 */ lui $t2, %hi(D_8003643C) +/* 06EA34 7F039F04 8D4A643C */ lw $t2, %lo(D_8003643C)($t2) +/* 06EA38 7F039F08 24010002 */ li $at, 2 +/* 06EA3C 7F039F0C 02C02025 */ move $a0, $s6 +/* 06EA40 7F039F10 15410006 */ bne $t2, $at, .L7F039F2C +/* 06EA44 7F039F14 02402825 */ move $a1, $s2 +/* 06EA48 7F039F18 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EA4C 7F039F1C 92260001 */ lbu $a2, 1($s1) +/* 06EA50 7F039F20 00409025 */ move $s2, $v0 +/* 06EA54 7F039F24 1000ED99 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA58 7F039F28 02C28821 */ addu $s1, $s6, $v0 +.L7F039F2C: +/* 06EA5C 7F039F2C 26520002 */ addiu $s2, $s2, 2 +/* 06EA60 7F039F30 1000ED96 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA64 7F039F34 26310002 */ addiu $s1, $s1, 2 +actionF1_If_All_Objectives_Complete_RVL_2: +/* 06EA68 7F039F38 0FC15D2E */ jal check_objectives_complete +/* 06EA6C 7F039F3C 00000000 */ nop +/* 06EA70 7F039F40 10400007 */ beqz $v0, .L7F039F60 +/* 06EA74 7F039F44 02C02025 */ move $a0, $s6 +/* 06EA78 7F039F48 02402825 */ move $a1, $s2 +/* 06EA7C 7F039F4C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EA80 7F039F50 92260001 */ lbu $a2, 1($s1) +/* 06EA84 7F039F54 00409025 */ move $s2, $v0 +/* 06EA88 7F039F58 1000ED8C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA8C 7F039F5C 02C28821 */ addu $s1, $s6, $v0 +.L7F039F60: +/* 06EA90 7F039F60 26520002 */ addiu $s2, $s2, 2 +/* 06EA94 7F039F64 1000ED89 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA98 7F039F68 26310002 */ addiu $s1, $s1, 2 +actionF2_Check_Current_Folder_Bond_RVL_3: +/* 06EA9C 7F039F6C 0FC0755B */ jal getSelectedFolderBond +/* 06EAA0 7F039F70 00000000 */ nop +/* 06EAA4 7F039F74 82290001 */ lb $t1, 1($s1) +/* 06EAA8 7F039F78 02C02025 */ move $a0, $s6 +/* 06EAAC 7F039F7C 02402825 */ move $a1, $s2 +/* 06EAB0 7F039F80 54490007 */ bnel $v0, $t1, .L7F039FA0 +/* 06EAB4 7F039F84 26520003 */ addiu $s2, $s2, 3 +/* 06EAB8 7F039F88 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EABC 7F039F8C 92260002 */ lbu $a2, 2($s1) +/* 06EAC0 7F039F90 00409025 */ move $s2, $v0 +/* 06EAC4 7F039F94 1000ED7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EAC8 7F039F98 02C28821 */ addu $s1, $s6, $v0 +/* 06EACC 7F039F9C 26520003 */ addiu $s2, $s2, 3 +.L7F039FA0: +/* 06EAD0 7F039FA0 1000ED7A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EAD4 7F039FA4 26310003 */ addiu $s1, $s1, 3 +actionF3_If_Player_Pickups_Disabled_RVL_2: +/* 06EAD8 7F039FA8 3C0C8003 */ lui $t4, %hi(disable_player_pickups_flag) +/* 06EADC 7F039FAC 8D8C64B4 */ lw $t4, %lo(disable_player_pickups_flag)($t4) +/* 06EAE0 7F039FB0 02C02025 */ move $a0, $s6 +/* 06EAE4 7F039FB4 02402825 */ move $a1, $s2 +/* 06EAE8 7F039FB8 51800007 */ beql $t4, $zero, .L7F039FD8 +/* 06EAEC 7F039FBC 26520002 */ addiu $s2, $s2, 2 +/* 06EAF0 7F039FC0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EAF4 7F039FC4 92260001 */ lbu $a2, 1($s1) +/* 06EAF8 7F039FC8 00409025 */ move $s2, $v0 +/* 06EAFC 7F039FCC 1000ED6F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB00 7F039FD0 02C28821 */ addu $s1, $s6, $v0 +/* 06EB04 7F039FD4 26520002 */ addiu $s2, $s2, 2 +.L7F039FD8: +/* 06EB08 7F039FD8 1000ED6C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB0C 7F039FDC 26310002 */ addiu $s1, $s1, 2 +actionF4_PlaysValuenum1ThemeSlot03ForValuenum2Seconds_4: +/* 06EB10 7F039FE0 02201025 */ move $v0, $s1 +/* 06EB14 7F039FE4 26310004 */ addiu $s1, $s1, 4 +/* 06EB18 7F039FE8 26520004 */ addiu $s2, $s2, 4 +/* 06EB1C 7F039FEC 80440001 */ lb $a0, 1($v0) +/* 06EB20 7F039FF0 90450002 */ lbu $a1, 2($v0) +/* 06EB24 7F039FF4 0FC3053F */ jal set_musicslot_time +/* 06EB28 7F039FF8 90460003 */ lbu $a2, 3($v0) +/* 06EB2C 7F039FFC 1000ED64 */ b ParseCommandByte_SwitchCase +/* 06EB30 7F03A000 922E0000 */ lbu $t6, ($s1) +actionF5_Turn_Off_Music_In_Slot_num_0_3_2: +/* 06EB34 7F03A004 02201025 */ move $v0, $s1 +/* 06EB38 7F03A008 26310002 */ addiu $s1, $s1, 2 +/* 06EB3C 7F03A00C 26520002 */ addiu $s2, $s2, 2 +/* 06EB40 7F03A010 0FC30556 */ jal reset_music_in_slot +/* 06EB44 7F03A014 80440001 */ lb $a0, 1($v0) +/* 06EB48 7F03A018 1000ED5D */ b ParseCommandByte_SwitchCase +/* 06EB4C 7F03A01C 922E0000 */ lbu $t6, ($s1) +actionF6_Trigger_Explosions_Around_Bond_1: +/* 06EB50 7F03A020 0FC22FF1 */ jal trigger_explosions_around_player +/* 06EB54 7F03A024 00002025 */ move $a0, $zero +/* 06EB58 7F03A028 26520001 */ addiu $s2, $s2, 1 +/* 06EB5C 7F03A02C 1000ED57 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB60 7F03A030 26310001 */ addiu $s1, $s1, 1 +actionF7_If_Number_Of_Hostages_Scientists_Killed_RVL_3: +/* 06EB64 7F03A034 0FC1A9DC */ jal get_civilian_casualties +/* 06EB68 7F03A038 00000000 */ nop +/* 06EB6C 7F03A03C 922B0001 */ lbu $t3, 1($s1) +/* 06EB70 7F03A040 02C02025 */ move $a0, $s6 +/* 06EB74 7F03A044 02402825 */ move $a1, $s2 +/* 06EB78 7F03A048 0162082A */ slt $at, $t3, $v0 +/* 06EB7C 7F03A04C 50200007 */ beql $at, $zero, .L7F03A06C +/* 06EB80 7F03A050 26520003 */ addiu $s2, $s2, 3 +/* 06EB84 7F03A054 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EB88 7F03A058 92260002 */ lbu $a2, 2($s1) +/* 06EB8C 7F03A05C 00409025 */ move $s2, $v0 +/* 06EB90 7F03A060 1000ED4A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB94 7F03A064 02C28821 */ addu $s1, $s6, $v0 +/* 06EB98 7F03A068 26520003 */ addiu $s2, $s2, 3 +.L7F03A06C: +/* 06EB9C 7F03A06C 1000ED47 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EBA0 7F03A070 26310003 */ addiu $s1, $s1, 3 +actionF8_If_Guard_ID_00200000_Flag_Set_Unset_And_Return_3: +/* 06EBA4 7F03A074 02E02025 */ move $a0, $s7 +/* 06EBA8 7F03A078 0FC0CC10 */ jal get_handle_for_guard_id +/* 06EBAC 7F03A07C 92250001 */ lbu $a1, 1($s1) +/* 06EBB0 7F03A080 50400012 */ beql $v0, $zero, .L7F03A0CC +/* 06EBB4 7F03A084 26520003 */ addiu $s2, $s2, 3 +/* 06EBB8 7F03A088 8C580014 */ lw $t8, 0x14($v0) +/* 06EBBC 7F03A08C 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf +/* 06EBC0 7F03A090 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 06EBC4 7F03A094 0018CA80 */ sll $t9, $t8, 0xa +/* 06EBC8 7F03A098 0723000C */ bgezl $t9, .L7F03A0CC +/* 06EBCC 7F03A09C 26520003 */ addiu $s2, $s2, 3 +/* 06EBD0 7F03A0A0 8C4D0014 */ lw $t5, 0x14($v0) +/* 06EBD4 7F03A0A4 02C02025 */ move $a0, $s6 +/* 06EBD8 7F03A0A8 02402825 */ move $a1, $s2 +/* 06EBDC 7F03A0AC 01A17024 */ and $t6, $t5, $at +/* 06EBE0 7F03A0B0 AC4E0014 */ sw $t6, 0x14($v0) +/* 06EBE4 7F03A0B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EBE8 7F03A0B8 92260002 */ lbu $a2, 2($s1) +/* 06EBEC 7F03A0BC 00409025 */ move $s2, $v0 +/* 06EBF0 7F03A0C0 1000ED32 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EBF4 7F03A0C4 02C28821 */ addu $s1, $s6, $v0 +/* 06EBF8 7F03A0C8 26520003 */ addiu $s2, $s2, 3 +.L7F03A0CC: +/* 06EBFC 7F03A0CC 1000ED2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC00 7F03A0D0 26310003 */ addiu $s1, $s1, 3 +actionF9_Set_Killed_In_Action_Automatic_Mission_Failure_1: +/* 06EC04 7F03A0D4 240F0001 */ li $t7, 1 +/* 06EC08 7F03A0D8 3C018003 */ lui $at, %hi(mission_kia_flag) +/* 06EC0C 7F03A0DC AC2FA928 */ sw $t7, %lo(mission_kia_flag)($at) +/* 06EC10 7F03A0E0 26520001 */ addiu $s2, $s2, 1 +/* 06EC14 7F03A0E4 1000ED29 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC18 7F03A0E8 26310001 */ addiu $s1, $s1, 1 +actionFA_Guard_Fawns_On_Shoulder_1: +/* 06EC1C 7F03A0EC 0FC0CD93 */ jal check_if_able_to_then_fawn_on_shoulder +/* 06EC20 7F03A0F0 02E02025 */ move $a0, $s7 +/* 06EC24 7F03A0F4 26520001 */ addiu $s2, $s2, 1 +/* 06EC28 7F03A0F8 1000ED24 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC2C 7F03A0FC 26310001 */ addiu $s1, $s1, 1 +actionFB_SwitchToSkyValuenumAndActivateGasContainersIfExist_: +/* 06EC30 7F03A100 3C0A8003 */ lui $t2, %hi(D_80030A88) +/* 06EC34 7F03A104 254A0A88 */ addiu $t2, %lo(D_80030A88) # addiu $t2, $t2, 0xa88 +/* 06EC38 7F03A108 8D410000 */ lw $at, ($t2) +/* 06EC3C 7F03A10C 27A40090 */ addiu $a0, $sp, 0x90 +/* 06EC40 7F03A110 AC810000 */ sw $at, ($a0) +/* 06EC44 7F03A114 8D4B0004 */ lw $t3, 4($t2) +/* 06EC48 7F03A118 AC8B0004 */ sw $t3, 4($a0) +/* 06EC4C 7F03A11C 8D410008 */ lw $at, 8($t2) +/* 06EC50 7F03A120 0FC15799 */ jal init_trigger_toxic_gas_effect +/* 06EC54 7F03A124 AC810008 */ sw $at, 8($a0) +/* 06EC58 7F03A128 26520001 */ addiu $s2, $s2, 1 +/* 06EC5C 7F03A12C 1000ED17 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC60 7F03A130 26310001 */ addiu $s1, $s1, 1 +actionFC_Launch_Shuttle_2: +/* 06EC64 7F03A134 0FC15C30 */ jal get_handle_to_tagged_object +/* 06EC68 7F03A138 92240001 */ lbu $a0, 1($s1) +/* 06EC6C 7F03A13C 50400029 */ beql $v0, $zero, .L7F03A1E4 +/* 06EC70 7F03A140 26520002 */ addiu $s2, $s2, 2 +/* 06EC74 7F03A144 8C580010 */ lw $t8, 0x10($v0) +/* 06EC78 7F03A148 53000026 */ beql $t8, $zero, .L7F03A1E4 +/* 06EC7C 7F03A14C 26520002 */ addiu $s2, $s2, 2 +/* 06EC80 7F03A150 8C440010 */ lw $a0, 0x10($v0) +/* 06EC84 7F03A154 0FC0FF6A */ jal sub_GAME_7F03FDA8 +/* 06EC88 7F03A158 AFA20088 */ sw $v0, 0x88($sp) +/* 06EC8C 7F03A15C 8FA30088 */ lw $v1, 0x88($sp) +/* 06EC90 7F03A160 8C790064 */ lw $t9, 0x64($v1) +/* 06EC94 7F03A164 332D0080 */ andi $t5, $t9, 0x80 +/* 06EC98 7F03A168 51A0001E */ beql $t5, $zero, .L7F03A1E4 +/* 06EC9C 7F03A16C 26520002 */ addiu $s2, $s2, 2 +/* 06ECA0 7F03A170 8C62006C */ lw $v0, 0x6c($v1) +/* 06ECA4 7F03A174 8C4E0000 */ lw $t6, ($v0) +/* 06ECA8 7F03A178 35CF0601 */ ori $t7, $t6, 0x601 +/* 06ECAC 7F03A17C AC4F0000 */ sw $t7, ($v0) +/* 06ECB0 7F03A180 8C640010 */ lw $a0, 0x10($v1) +/* 06ECB4 7F03A184 0FC0FF85 */ jal sub_GAME_7F03FE14 +/* 06ECB8 7F03A188 AFA30088 */ sw $v1, 0x88($sp) +/* 06ECBC 7F03A18C 8FA30088 */ lw $v1, 0x88($sp) +/* 06ECC0 7F03A190 8C64006C */ lw $a0, 0x6c($v1) +/* 06ECC4 7F03A194 0FC15FF4 */ jal matrix_4x4_set_identity +/* 06ECC8 7F03A198 24840020 */ addiu $a0, $a0, 0x20 +/* 06ECCC 7F03A19C 8FA30088 */ lw $v1, 0x88($sp) +/* 06ECD0 7F03A1A0 3C018005 */ lui $at, %hi(D_80052974) +/* 06ECD4 7F03A1A4 8C6C006C */ lw $t4, 0x6c($v1) +/* 06ECD8 7F03A1A8 E5940004 */ swc1 $f20, 4($t4) +/* 06ECDC 7F03A1AC C4282974 */ lwc1 $f8, %lo(D_80052974)($at) +/* 06ECE0 7F03A1B0 8C69006C */ lw $t1, 0x6c($v1) +/* 06ECE4 7F03A1B4 3C018005 */ lui $at, %hi(D_80052978) +/* 06ECE8 7F03A1B8 E5280008 */ swc1 $f8, 8($t1) +/* 06ECEC 7F03A1BC 8C6A006C */ lw $t2, 0x6c($v1) +/* 06ECF0 7F03A1C0 E554000C */ swc1 $f20, 0xc($t2) +/* 06ECF4 7F03A1C4 8C6B006C */ lw $t3, 0x6c($v1) +/* 06ECF8 7F03A1C8 E5740010 */ swc1 $f20, 0x10($t3) +/* 06ECFC 7F03A1CC C4242978 */ lwc1 $f4, %lo(D_80052978)($at) +/* 06ED00 7F03A1D0 8C78006C */ lw $t8, 0x6c($v1) +/* 06ED04 7F03A1D4 E7040014 */ swc1 $f4, 0x14($t8) +/* 06ED08 7F03A1D8 8C79006C */ lw $t9, 0x6c($v1) +/* 06ED0C 7F03A1DC E7340018 */ swc1 $f20, 0x18($t9) +/* 06ED10 7F03A1E0 26520002 */ addiu $s2, $s2, 2 +.L7F03A1E4: +/* 06ED14 7F03A1E4 1000ECE9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ED18 7F03A1E8 26310002 */ addiu $s1, $s1, 2 +GetCmdLength: +/* 06ED1C 7F03A1EC 0FC0D27F */ jal get_length_of_action_block +/* 06ED20 7F03A1F0 02402825 */ move $a1, $s2 # +/* 06ED24 7F03A1F4 02429021 */ addu $s2, $s2, $v0 # CurrentActionByte += get_length_of_action_block(CurrentActionByte) +/* 06ED28 7F03A1F8 1000ECE4 */ b GetByteS1_ParseCommandByte_SwitchCase # s1 = CurrentActionByte + s6 +/* 06ED2C 7F03A1FC 02D28821 */ addu $s1, $s6, $s2 # goto 58c + +Action04_End_1: +/* 06ED30 7F03A200 8FBF0074 */ lw $ra, 0x74($sp) +Action04_End_2: +/* 06ED34 7F03A204 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 06ED38 7F03A208 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 06ED3C 7F03A20C D7B80040 */ ldc1 $f24, 0x40($sp) +/* 06ED40 7F03A210 D7BA0048 */ ldc1 $f26, 0x48($sp) +/* 06ED44 7F03A214 8FB00050 */ lw $s0, 0x50($sp) +/* 06ED48 7F03A218 8FB10054 */ lw $s1, 0x54($sp) +/* 06ED4C 7F03A21C 8FB20058 */ lw $s2, 0x58($sp) #load s2 with value before entering actionblock +/* 06ED50 7F03A220 8FB3005C */ lw $s3, 0x5c($sp) +/* 06ED54 7F03A224 8FB40060 */ lw $s4, 0x60($sp) +/* 06ED58 7F03A228 8FB50064 */ lw $s5, 0x64($sp) +/* 06ED5C 7F03A22C 8FB60068 */ lw $s6, 0x68($sp) +/* 06ED60 7F03A230 8FB7006C */ lw $s7, 0x6c($sp) +/* 06ED64 7F03A234 8FBE0070 */ lw $fp, 0x70($sp) +/* 06ED68 7F03A238 03E00008 */ jr $ra +/* 06ED6C 7F03A23C 27BD07B8 */ addiu $sp, $sp, 0x7b8 +) +#endif +#endif + + + + +#ifdef NONMATCHING +void sub_GAME_7F03A240(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03A240 +/* 06ED70 7F03A240 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 06ED74 7F03A244 AFBF0014 */ sw $ra, 0x14($sp) +/* 06ED78 7F03A248 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 06ED7C 7F03A24C AFA0001C */ sw $zero, 0x1c($sp) +/* 06ED80 7F03A250 8FA6001C */ lw $a2, 0x1c($sp) +/* 06ED84 7F03A254 1040000F */ beqz $v0, .L7F03A294 +/* 06ED88 7F03A258 00402825 */ move $a1, $v0 +/* 06ED8C 7F03A25C 3C098007 */ lui $t1, %hi(dword_CODE_bss_80071620) +/* 06ED90 7F03A260 25291620 */ addiu $t1, %lo(dword_CODE_bss_80071620) # addiu $t1, $t1, 0x1620 +/* 06ED94 7F03A264 24020006 */ li $v0, 6 +/* 06ED98 7F03A268 90AE0001 */ lbu $t6, 1($a1) +.L7F03A26C: +/* 06ED9C 7F03A26C 0006C080 */ sll $t8, $a2, 2 +/* 06EDA0 7F03A270 0138C821 */ addu $t9, $t1, $t8 +/* 06EDA4 7F03A274 31CF0006 */ andi $t7, $t6, 6 +/* 06EDA8 7F03A278 544F0004 */ bnel $v0, $t7, .L7F03A28C +/* 06EDAC 7F03A27C 8CA50024 */ lw $a1, 0x24($a1) +/* 06EDB0 7F03A280 AF250000 */ sw $a1, ($t9) +/* 06EDB4 7F03A284 24C60001 */ addiu $a2, $a2, 1 +/* 06EDB8 7F03A288 8CA50024 */ lw $a1, 0x24($a1) +.L7F03A28C: +/* 06EDBC 7F03A28C 54A0FFF7 */ bnezl $a1, .L7F03A26C +/* 06EDC0 7F03A290 90AE0001 */ lbu $t6, 1($a1) +.L7F03A294: +/* 06EDC4 7F03A294 3C098007 */ lui $t1, %hi(dword_CODE_bss_80071620) +/* 06EDC8 7F03A298 3C018007 */ lui $at, %hi(dword_CODE_bss_80071DF4) +/* 06EDCC 7F03A29C 25291620 */ addiu $t1, %lo(dword_CODE_bss_80071620) # addiu $t1, $t1, 0x1620 +/* 06EDD0 7F03A2A0 AC261DF4 */ sw $a2, %lo(dword_CODE_bss_80071DF4)($at) +/* 06EDD4 7F03A2A4 00065080 */ sll $t2, $a2, 2 +/* 06EDD8 7F03A2A8 012A5821 */ addu $t3, $t1, $t2 +/* 06EDDC 7F03A2AC 00066080 */ sll $t4, $a2, 2 +/* 06EDE0 7F03A2B0 AD600000 */ sw $zero, ($t3) +/* 06EDE4 7F03A2B4 012C6821 */ addu $t5, $t1, $t4 +/* 06EDE8 7F03A2B8 3C018007 */ lui $at, %hi(dword_CODE_bss_80071DF0) +/* 06EDEC 7F03A2BC AC2D1DF0 */ sw $t5, %lo(dword_CODE_bss_80071DF0)($at) +/* 06EDF0 7F03A2C0 18C0004C */ blez $a2, .L7F03A3F4 +/* 06EDF4 7F03A2C4 00004025 */ move $t0, $zero +/* 06EDF8 7F03A2C8 3C01CF80 */ li $at, 0xCF800000 # -4294967296.000000 +/* 06EDFC 7F03A2CC 44817000 */ mtc1 $at, $f14 +/* 06EE00 7F03A2D0 00000000 */ nop +/* 06EE04 7F03A2D4 0106082A */ slt $at, $t0, $a2 +.L7F03A2D8: +/* 06EE08 7F03A2D8 2404FFFF */ li $a0, -1 +/* 06EE0C 7F03A2DC 46007306 */ mov.s $f12, $f14 +/* 06EE10 7F03A2E0 10200038 */ beqz $at, .L7F03A3C4 +/* 06EE14 7F03A2E4 01001025 */ move $v0, $t0 +/* 06EE18 7F03A2E8 00C81823 */ subu $v1, $a2, $t0 +/* 06EE1C 7F03A2EC 30670003 */ andi $a3, $v1, 3 +/* 06EE20 7F03A2F0 10E0000F */ beqz $a3, .L7F03A330 +/* 06EE24 7F03A2F4 00E82821 */ addu $a1, $a3, $t0 +/* 06EE28 7F03A2F8 00027080 */ sll $t6, $v0, 2 +/* 06EE2C 7F03A2FC 012E1821 */ addu $v1, $t1, $t6 +.L7F03A300: +/* 06EE30 7F03A300 8C6F0000 */ lw $t7, ($v1) +/* 06EE34 7F03A304 C5E20018 */ lwc1 $f2, 0x18($t7) +/* 06EE38 7F03A308 4602603C */ c.lt.s $f12, $f2 +/* 06EE3C 7F03A30C 00000000 */ nop +/* 06EE40 7F03A310 45020004 */ bc1fl .L7F03A324 +/* 06EE44 7F03A314 24420001 */ addiu $v0, $v0, 1 +/* 06EE48 7F03A318 46001306 */ mov.s $f12, $f2 +/* 06EE4C 7F03A31C 00402025 */ move $a0, $v0 +/* 06EE50 7F03A320 24420001 */ addiu $v0, $v0, 1 +.L7F03A324: +/* 06EE54 7F03A324 14A2FFF6 */ bne $a1, $v0, .L7F03A300 +/* 06EE58 7F03A328 24630004 */ addiu $v1, $v1, 4 +/* 06EE5C 7F03A32C 10460025 */ beq $v0, $a2, .L7F03A3C4 +.L7F03A330: +/* 06EE60 7F03A330 0002C080 */ sll $t8, $v0, 2 +/* 06EE64 7F03A334 01381821 */ addu $v1, $t1, $t8 +.L7F03A338: +/* 06EE68 7F03A338 8C790000 */ lw $t9, ($v1) +/* 06EE6C 7F03A33C C7220018 */ lwc1 $f2, 0x18($t9) +/* 06EE70 7F03A340 4602603C */ c.lt.s $f12, $f2 +/* 06EE74 7F03A344 00000000 */ nop +/* 06EE78 7F03A348 45020004 */ bc1fl .L7F03A35C +/* 06EE7C 7F03A34C 8C6A0004 */ lw $t2, 4($v1) +/* 06EE80 7F03A350 46001306 */ mov.s $f12, $f2 +/* 06EE84 7F03A354 00402025 */ move $a0, $v0 +/* 06EE88 7F03A358 8C6A0004 */ lw $t2, 4($v1) +.L7F03A35C: +/* 06EE8C 7F03A35C C5400018 */ lwc1 $f0, 0x18($t2) +/* 06EE90 7F03A360 4600603C */ c.lt.s $f12, $f0 +/* 06EE94 7F03A364 00000000 */ nop +/* 06EE98 7F03A368 45020004 */ bc1fl .L7F03A37C +/* 06EE9C 7F03A36C 8C6B0008 */ lw $t3, 8($v1) +/* 06EEA0 7F03A370 46000306 */ mov.s $f12, $f0 +/* 06EEA4 7F03A374 24440001 */ addiu $a0, $v0, 1 +/* 06EEA8 7F03A378 8C6B0008 */ lw $t3, 8($v1) +.L7F03A37C: +/* 06EEAC 7F03A37C C5600018 */ lwc1 $f0, 0x18($t3) +/* 06EEB0 7F03A380 4600603C */ c.lt.s $f12, $f0 +/* 06EEB4 7F03A384 00000000 */ nop +/* 06EEB8 7F03A388 45020004 */ bc1fl .L7F03A39C +/* 06EEBC 7F03A38C 8C6C000C */ lw $t4, 0xc($v1) +/* 06EEC0 7F03A390 46000306 */ mov.s $f12, $f0 +/* 06EEC4 7F03A394 24440002 */ addiu $a0, $v0, 2 +/* 06EEC8 7F03A398 8C6C000C */ lw $t4, 0xc($v1) +.L7F03A39C: +/* 06EECC 7F03A39C C5800018 */ lwc1 $f0, 0x18($t4) +/* 06EED0 7F03A3A0 4600603C */ c.lt.s $f12, $f0 +/* 06EED4 7F03A3A4 00000000 */ nop +/* 06EED8 7F03A3A8 45020004 */ bc1fl .L7F03A3BC +/* 06EEDC 7F03A3AC 24420004 */ addiu $v0, $v0, 4 +/* 06EEE0 7F03A3B0 46000306 */ mov.s $f12, $f0 +/* 06EEE4 7F03A3B4 24440003 */ addiu $a0, $v0, 3 +/* 06EEE8 7F03A3B8 24420004 */ addiu $v0, $v0, 4 +.L7F03A3BC: +/* 06EEEC 7F03A3BC 1446FFDE */ bne $v0, $a2, .L7F03A338 +/* 06EEF0 7F03A3C0 24630010 */ addiu $v1, $v1, 0x10 +.L7F03A3C4: +/* 06EEF4 7F03A3C4 04800008 */ bltz $a0, .L7F03A3E8 +/* 06EEF8 7F03A3C8 00086880 */ sll $t5, $t0, 2 +/* 06EEFC 7F03A3CC 00047080 */ sll $t6, $a0, 2 +/* 06EF00 7F03A3D0 012E1821 */ addu $v1, $t1, $t6 +/* 06EF04 7F03A3D4 8C6F0000 */ lw $t7, ($v1) +/* 06EF08 7F03A3D8 012D1021 */ addu $v0, $t1, $t5 +/* 06EF0C 7F03A3DC 8C450000 */ lw $a1, ($v0) +/* 06EF10 7F03A3E0 AC4F0000 */ sw $t7, ($v0) +/* 06EF14 7F03A3E4 AC650000 */ sw $a1, ($v1) +.L7F03A3E8: +/* 06EF18 7F03A3E8 25080001 */ addiu $t0, $t0, 1 +/* 06EF1C 7F03A3EC 5506FFBA */ bnel $t0, $a2, .L7F03A2D8 +/* 06EF20 7F03A3F0 0106082A */ slt $at, $t0, $a2 +.L7F03A3F4: +/* 06EF24 7F03A3F4 8FBF0014 */ lw $ra, 0x14($sp) +/* 06EF28 7F03A3F8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 06EF2C 7F03A3FC 03E00008 */ jr $ra +/* 06EF30 7F03A400 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void set_stateflag_0x04_for_posdata(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_stateflag_0x04_for_posdata +/* 06EF34 7F03A404 908E0001 */ lbu $t6, 1($a0) +/* 06EF38 7F03A408 35CF0004 */ ori $t7, $t6, 4 +/* 06EF3C 7F03A40C 03E00008 */ jr $ra +/* 06EF40 7F03A410 A08F0001 */ sb $t7, 1($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void unset_stateflag_0x04_for_posdata(void) { + +} +#else +GLOBAL_ASM( +.text +glabel unset_stateflag_0x04_for_posdata +/* 06EF44 7F03A414 908E0001 */ lbu $t6, 1($a0) +/* 06EF48 7F03A418 31CFFFFB */ andi $t7, $t6, 0xfffb +/* 06EF4C 7F03A41C 03E00008 */ jr $ra +/* 06EF50 7F03A420 A08F0001 */ sb $t7, 1($a0) +) +#endif + + + + + + +s32 *get_ptr_obj_pos_list_current_entry(void) { + return ptr_obj_pos_list_current_entry; +} + + + + + + +#ifdef NONMATCHING +void remove_last_obj_pos_data_entry(void) { + +} +#else +GLOBAL_ASM( +.text +glabel remove_last_obj_pos_data_entry +/* 06EF60 7F03A430 3C058003 */ lui $a1, %hi(ptr_obj_pos_list_final_entry) +/* 06EF64 7F03A434 24A50AA8 */ addiu $a1, %lo(ptr_obj_pos_list_final_entry) # addiu $a1, $a1, 0xaa8 +/* 06EF68 7F03A438 8CA30000 */ lw $v1, ($a1) +/* 06EF6C 7F03A43C 5060000F */ beql $v1, $zero, .L7F03A47C +/* 06EF70 7F03A440 00001025 */ move $v0, $zero +/* 06EF74 7F03A444 8C6E0024 */ lw $t6, 0x24($v1) +/* 06EF78 7F03A448 240F00FF */ li $t7, 255 +/* 06EF7C 7F03A44C 00601025 */ move $v0, $v1 +/* 06EF80 7F03A450 ACAE0000 */ sw $t6, ($a1) +/* 06EF84 7F03A454 AC600024 */ sw $zero, 0x24($v1) +/* 06EF88 7F03A458 AC600028 */ sw $zero, 0x28($v1) +/* 06EF8C 7F03A45C AC60001C */ sw $zero, 0x1c($v1) +/* 06EF90 7F03A460 AC600020 */ sw $zero, 0x20($v1) +/* 06EF94 7F03A464 A0600001 */ sb $zero, 1($v1) +/* 06EF98 7F03A468 AC600014 */ sw $zero, 0x14($v1) +/* 06EF9C 7F03A46C A4600002 */ sh $zero, 2($v1) +/* 06EFA0 7F03A470 03E00008 */ jr $ra +/* 06EFA4 7F03A474 A06F002C */ sb $t7, 0x2c($v1) + +/* 06EFA8 7F03A478 00001025 */ move $v0, $zero +.L7F03A47C: +/* 06EFAC 7F03A47C 03E00008 */ jr $ra +/* 06EFB0 7F03A480 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void set_last_obj_pos_data(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_last_obj_pos_data +/* 06EFB4 7F03A484 3C028003 */ lui $v0, %hi(ptr_obj_pos_list_final_entry) +/* 06EFB8 7F03A488 24420AA8 */ addiu $v0, %lo(ptr_obj_pos_list_final_entry) # addiu $v0, $v0, 0xaa8 +/* 06EFBC 7F03A48C 8C4E0000 */ lw $t6, ($v0) +/* 06EFC0 7F03A490 AC800028 */ sw $zero, 0x28($a0) +/* 06EFC4 7F03A494 AC800014 */ sw $zero, 0x14($a0) +/* 06EFC8 7F03A498 AC8E0024 */ sw $t6, 0x24($a0) +/* 06EFCC 7F03A49C 03E00008 */ jr $ra +/* 06EFD0 7F03A4A0 AC440000 */ sw $a0, ($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void set_current_objposdata_plus_0x28(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_current_objposdata_plus_0x28 +/* 06EFD4 7F03A4A4 3C038003 */ lui $v1, %hi(ptr_obj_pos_list_current_entry) +/* 06EFD8 7F03A4A8 24630AA0 */ addiu $v1, %lo(ptr_obj_pos_list_current_entry) # addiu $v1, $v1, 0xaa0 +/* 06EFDC 7F03A4AC 8C620000 */ lw $v0, ($v1) +/* 06EFE0 7F03A4B0 10400007 */ beqz $v0, .L7F03A4D0 +/* 06EFE4 7F03A4B4 00000000 */ nop +/* 06EFE8 7F03A4B8 AC440028 */ sw $a0, 0x28($v0) +/* 06EFEC 7F03A4BC 8C6E0000 */ lw $t6, ($v1) +/* 06EFF0 7F03A4C0 AC800028 */ sw $zero, 0x28($a0) +/* 06EFF4 7F03A4C4 AC8E0024 */ sw $t6, 0x24($a0) +/* 06EFF8 7F03A4C8 03E00008 */ jr $ra +/* 06EFFC 7F03A4CC AC640000 */ sw $a0, ($v1) + +.L7F03A4D0: +/* 06F000 7F03A4D0 3C028003 */ lui $v0, %hi(ptr_obj_pos_list_first_entry) +/* 06F004 7F03A4D4 AC800024 */ sw $zero, 0x24($a0) +/* 06F008 7F03A4D8 AC800028 */ sw $zero, 0x28($a0) +/* 06F00C 7F03A4DC 24420AA4 */ addiu $v0, %lo(ptr_obj_pos_list_first_entry) # addiu $v0, $v0, 0xaa4 +/* 06F010 7F03A4E0 AC440000 */ sw $a0, ($v0) +/* 06F014 7F03A4E4 AC640000 */ sw $a0, ($v1) +/* 06F018 7F03A4E8 03E00008 */ jr $ra +/* 06F01C 7F03A4EC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03A4F0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03A4F0 +/* 06F020 7F03A4F0 3C038003 */ lui $v1, %hi(ptr_obj_pos_list_first_entry) +/* 06F024 7F03A4F4 24630AA4 */ addiu $v1, %lo(ptr_obj_pos_list_first_entry) # addiu $v1, $v1, 0xaa4 +/* 06F028 7F03A4F8 8C620000 */ lw $v0, ($v1) +/* 06F02C 7F03A4FC 3C018003 */ lui $at, %hi(ptr_obj_pos_list_current_entry) +/* 06F030 7F03A500 50400008 */ beql $v0, $zero, .L7F03A524 +/* 06F034 7F03A504 AC800024 */ sw $zero, 0x24($a0) +/* 06F038 7F03A508 AC440024 */ sw $a0, 0x24($v0) +/* 06F03C 7F03A50C 8C6E0000 */ lw $t6, ($v1) +/* 06F040 7F03A510 AC800024 */ sw $zero, 0x24($a0) +/* 06F044 7F03A514 AC8E0028 */ sw $t6, 0x28($a0) +/* 06F048 7F03A518 03E00008 */ jr $ra +/* 06F04C 7F03A51C AC640000 */ sw $a0, ($v1) + +/* 06F050 7F03A520 AC800024 */ sw $zero, 0x24($a0) +.L7F03A524: +/* 06F054 7F03A524 AC800028 */ sw $zero, 0x28($a0) +/* 06F058 7F03A528 AC640000 */ sw $a0, ($v1) +/* 06F05C 7F03A52C AC240AA0 */ sw $a0, %lo(ptr_obj_pos_list_current_entry)($at) +/* 06F060 7F03A530 03E00008 */ jr $ra +/* 06F064 7F03A534 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03A538(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03A538 +/* 06F068 7F03A538 3C028003 */ lui $v0, %hi(ptr_obj_pos_list_current_entry) +/* 06F06C 7F03A53C 24420AA0 */ addiu $v0, %lo(ptr_obj_pos_list_current_entry) # addiu $v0, $v0, 0xaa0 +/* 06F070 7F03A540 8C4E0000 */ lw $t6, ($v0) +/* 06F074 7F03A544 148E0003 */ bne $a0, $t6, .L7F03A554 +/* 06F078 7F03A548 00000000 */ nop +/* 06F07C 7F03A54C 8C8F0024 */ lw $t7, 0x24($a0) +/* 06F080 7F03A550 AC4F0000 */ sw $t7, ($v0) +.L7F03A554: +/* 06F084 7F03A554 3C028003 */ lui $v0, %hi(ptr_obj_pos_list_first_entry) +/* 06F088 7F03A558 24420AA4 */ addiu $v0, %lo(ptr_obj_pos_list_first_entry) # addiu $v0, $v0, 0xaa4 +/* 06F08C 7F03A55C 8C580000 */ lw $t8, ($v0) +/* 06F090 7F03A560 54980004 */ bnel $a0, $t8, .L7F03A574 +/* 06F094 7F03A564 8C820024 */ lw $v0, 0x24($a0) +/* 06F098 7F03A568 8C990028 */ lw $t9, 0x28($a0) +/* 06F09C 7F03A56C AC590000 */ sw $t9, ($v0) +/* 06F0A0 7F03A570 8C820024 */ lw $v0, 0x24($a0) +.L7F03A574: +/* 06F0A4 7F03A574 50400004 */ beql $v0, $zero, .L7F03A588 +/* 06F0A8 7F03A578 8C820028 */ lw $v0, 0x28($a0) +/* 06F0AC 7F03A57C 8C880028 */ lw $t0, 0x28($a0) +/* 06F0B0 7F03A580 AC480028 */ sw $t0, 0x28($v0) +/* 06F0B4 7F03A584 8C820028 */ lw $v0, 0x28($a0) +.L7F03A588: +/* 06F0B8 7F03A588 50400004 */ beql $v0, $zero, .L7F03A59C +/* 06F0BC 7F03A58C AC800024 */ sw $zero, 0x24($a0) +/* 06F0C0 7F03A590 8C890024 */ lw $t1, 0x24($a0) +/* 06F0C4 7F03A594 AC490024 */ sw $t1, 0x24($v0) +/* 06F0C8 7F03A598 AC800024 */ sw $zero, 0x24($a0) +.L7F03A59C: +/* 06F0CC 7F03A59C 03E00008 */ jr $ra +/* 06F0D0 7F03A5A0 AC800028 */ sw $zero, 0x28($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03A5A4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03A5A4 +/* 06F0D4 7F03A5A4 AC85001C */ sw $a1, 0x1c($a0) +/* 06F0D8 7F03A5A8 8CA20020 */ lw $v0, 0x20($a1) +/* 06F0DC 7F03A5AC 50400004 */ beql $v0, $zero, .L7F03A5C0 +/* 06F0E0 7F03A5B0 AC820024 */ sw $v0, 0x24($a0) +/* 06F0E4 7F03A5B4 AC440028 */ sw $a0, 0x28($v0) +/* 06F0E8 7F03A5B8 8CA20020 */ lw $v0, 0x20($a1) +/* 06F0EC 7F03A5BC AC820024 */ sw $v0, 0x24($a0) +.L7F03A5C0: +/* 06F0F0 7F03A5C0 AC800028 */ sw $zero, 0x28($a0) +/* 06F0F4 7F03A5C4 AC800014 */ sw $zero, 0x14($a0) +/* 06F0F8 7F03A5C8 03E00008 */ jr $ra +/* 06F0FC 7F03A5CC ACA40020 */ sw $a0, 0x20($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03A5D0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03A5D0 +/* 06F100 7F03A5D0 8C82001C */ lw $v0, 0x1c($a0) +/* 06F104 7F03A5D4 10400013 */ beqz $v0, .L7F03A624 +/* 06F108 7F03A5D8 00000000 */ nop +/* 06F10C 7F03A5DC 8C4E0020 */ lw $t6, 0x20($v0) +/* 06F110 7F03A5E0 548E0004 */ bnel $a0, $t6, .L7F03A5F4 +/* 06F114 7F03A5E4 8C820024 */ lw $v0, 0x24($a0) +/* 06F118 7F03A5E8 8C8F0024 */ lw $t7, 0x24($a0) +/* 06F11C 7F03A5EC AC4F0020 */ sw $t7, 0x20($v0) +/* 06F120 7F03A5F0 8C820024 */ lw $v0, 0x24($a0) +.L7F03A5F4: +/* 06F124 7F03A5F4 50400004 */ beql $v0, $zero, .L7F03A608 +/* 06F128 7F03A5F8 8C820028 */ lw $v0, 0x28($a0) +/* 06F12C 7F03A5FC 8C980028 */ lw $t8, 0x28($a0) +/* 06F130 7F03A600 AC580028 */ sw $t8, 0x28($v0) +/* 06F134 7F03A604 8C820028 */ lw $v0, 0x28($a0) +.L7F03A608: +/* 06F138 7F03A608 50400004 */ beql $v0, $zero, .L7F03A61C +/* 06F13C 7F03A60C AC80001C */ sw $zero, 0x1c($a0) +/* 06F140 7F03A610 8C990024 */ lw $t9, 0x24($a0) +/* 06F144 7F03A614 AC590024 */ sw $t9, 0x24($v0) +/* 06F148 7F03A618 AC80001C */ sw $zero, 0x1c($a0) +.L7F03A61C: +/* 06F14C 7F03A61C AC800024 */ sw $zero, 0x24($a0) +/* 06F150 7F03A620 AC800028 */ sw $zero, 0x28($a0) +.L7F03A624: +/* 06F154 7F03A624 03E00008 */ jr $ra +/* 06F158 7F03A628 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03A62C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03A62C +/* 06F15C 7F03A62C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 06F160 7F03A630 AFBF001C */ sw $ra, 0x1c($sp) +/* 06F164 7F03A634 AFB00018 */ sw $s0, 0x18($sp) +/* 06F168 7F03A638 90A20000 */ lbu $v0, ($a1) +/* 06F16C 7F03A63C 24010003 */ li $at, 3 +/* 06F170 7F03A640 00808025 */ move $s0, $a0 +/* 06F174 7F03A644 14410006 */ bne $v0, $at, .L7F03A660 +/* 06F178 7F03A648 00A03825 */ move $a3, $a1 +/* 06F17C 7F03A64C 00A02025 */ move $a0, $a1 +/* 06F180 7F03A650 0FC086FF */ jal sub_GAME_7F021BFC +/* 06F184 7F03A654 02002825 */ move $a1, $s0 +/* 06F188 7F03A658 10000021 */ b .L7F03A6E0 +/* 06F18C 7F03A65C 00408025 */ move $s0, $v0 +.L7F03A660: +/* 06F190 7F03A660 24010001 */ li $at, 1 +/* 06F194 7F03A664 10410006 */ beq $v0, $at, .L7F03A680 +/* 06F198 7F03A668 00E02025 */ move $a0, $a3 +/* 06F19C 7F03A66C 24010004 */ li $at, 4 +/* 06F1A0 7F03A670 10410003 */ beq $v0, $at, .L7F03A680 +/* 06F1A4 7F03A674 24010002 */ li $at, 2 +/* 06F1A8 7F03A678 54410006 */ bnel $v0, $at, .L7F03A694 +/* 06F1AC 7F03A67C 24010007 */ li $at, 7 +.L7F03A680: +/* 06F1B0 7F03A680 0FC12C54 */ jal sub_GAME_7F04B150 +/* 06F1B4 7F03A684 02002825 */ move $a1, $s0 +/* 06F1B8 7F03A688 10000015 */ b .L7F03A6E0 +/* 06F1BC 7F03A68C 00408025 */ move $s0, $v0 +/* 06F1C0 7F03A690 24010007 */ li $at, 7 +.L7F03A694: +/* 06F1C4 7F03A694 14410005 */ bne $v0, $at, .L7F03A6AC +/* 06F1C8 7F03A698 00E02025 */ move $a0, $a3 +/* 06F1CC 7F03A69C 0FC27568 */ jal sub_GAME_7F09D5A0 +/* 06F1D0 7F03A6A0 02002825 */ move $a1, $s0 +/* 06F1D4 7F03A6A4 1000000E */ b .L7F03A6E0 +/* 06F1D8 7F03A6A8 00408025 */ move $s0, $v0 +.L7F03A6AC: +/* 06F1DC 7F03A6AC 24010008 */ li $at, 8 +/* 06F1E0 7F03A6B0 14410005 */ bne $v0, $at, .L7F03A6C8 +/* 06F1E4 7F03A6B4 00E02025 */ move $a0, $a3 +/* 06F1E8 7F03A6B8 0FC27C0F */ jal sub_GAME_7F09F03C +/* 06F1EC 7F03A6BC 02002825 */ move $a1, $s0 +/* 06F1F0 7F03A6C0 10000007 */ b .L7F03A6E0 +/* 06F1F4 7F03A6C4 00408025 */ move $s0, $v0 +.L7F03A6C8: +/* 06F1F8 7F03A6C8 24010006 */ li $at, 6 +/* 06F1FC 7F03A6CC 14410004 */ bne $v0, $at, .L7F03A6E0 +/* 06F200 7F03A6D0 00E02025 */ move $a0, $a3 +/* 06F204 7F03A6D4 0FC22F30 */ jal sub_GAME_7F08BCC0 +/* 06F208 7F03A6D8 02002825 */ move $a1, $s0 +/* 06F20C 7F03A6DC 00408025 */ move $s0, $v0 +.L7F03A6E0: +/* 06F210 7F03A6E0 8FBF001C */ lw $ra, 0x1c($sp) +/* 06F214 7F03A6E4 02001025 */ move $v0, $s0 +/* 06F218 7F03A6E8 8FB00018 */ lw $s0, 0x18($sp) +/* 06F21C 7F03A6EC 03E00008 */ jr $ra +/* 06F220 7F03A6F0 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03A6F4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03A6F4 +/* 06F224 7F03A6F4 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 06F228 7F03A6F8 AFBF0034 */ sw $ra, 0x34($sp) +/* 06F22C 7F03A6FC AFB70030 */ sw $s7, 0x30($sp) +/* 06F230 7F03A700 AFB50028 */ sw $s5, 0x28($sp) +/* 06F234 7F03A704 AFB40024 */ sw $s4, 0x24($sp) +/* 06F238 7F03A708 0080A025 */ move $s4, $a0 +/* 06F23C 7F03A70C 00C0A825 */ move $s5, $a2 +/* 06F240 7F03A710 00A0B825 */ move $s7, $a1 +/* 06F244 7F03A714 AFB6002C */ sw $s6, 0x2c($sp) +/* 06F248 7F03A718 AFB30020 */ sw $s3, 0x20($sp) +/* 06F24C 7F03A71C AFB2001C */ sw $s2, 0x1c($sp) +/* 06F250 7F03A720 AFB10018 */ sw $s1, 0x18($sp) +/* 06F254 7F03A724 0C001A57 */ jal get_stage_num +/* 06F258 7F03A728 AFB00014 */ sw $s0, 0x14($sp) +/* 06F25C 7F03A72C 24010036 */ li $at, 54 +/* 06F260 7F03A730 14410008 */ bne $v0, $at, .L7F03A754 +/* 06F264 7F03A734 00000000 */ nop +/* 06F268 7F03A738 16A00003 */ bnez $s5, .L7F03A748 +/* 06F26C 7F03A73C 24010002 */ li $at, 2 +/* 06F270 7F03A740 10000083 */ b .L7F03A950 +/* 06F274 7F03A744 02801025 */ move $v0, $s4 +.L7F03A748: +/* 06F278 7F03A748 16A10002 */ bne $s5, $at, .L7F03A754 +/* 06F27C 7F03A74C 00000000 */ nop +/* 06F280 7F03A750 0000A825 */ move $s5, $zero +.L7F03A754: +/* 06F284 7F03A754 12A00003 */ beqz $s5, .L7F03A764 +/* 06F288 7F03A758 24010002 */ li $at, 2 +/* 06F28C 7F03A75C 16A10043 */ bne $s5, $at, .L7F03A86C +/* 06F290 7F03A760 3C138007 */ lui $s3, %hi(dword_CODE_bss_80071620) +.L7F03A764: +/* 06F294 7F03A764 3C138007 */ lui $s3, %hi(dword_CODE_bss_80071DF0) +/* 06F298 7F03A768 8E731DF0 */ lw $s3, %lo(dword_CODE_bss_80071DF0)($s3) +/* 06F29C 7F03A76C 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80071620) +/* 06F2A0 7F03A770 25CE1620 */ addiu $t6, %lo(dword_CODE_bss_80071620) # addiu $t6, $t6, 0x1620 +/* 06F2A4 7F03A774 2673FFFC */ addiu $s3, $s3, -4 +/* 06F2A8 7F03A778 026E082B */ sltu $at, $s3, $t6 +/* 06F2AC 7F03A77C 14200072 */ bnez $at, .L7F03A948 +/* 06F2B0 7F03A780 27B60048 */ addiu $s6, $sp, 0x48 +/* 06F2B4 7F03A784 8E720000 */ lw $s2, ($s3) +.L7F03A788: +/* 06F2B8 7F03A788 12400030 */ beqz $s2, .L7F03A84C +/* 06F2BC 7F03A78C 00000000 */ nop +/* 06F2C0 7F03A790 16A00007 */ bnez $s5, .L7F03A7B0 +/* 06F2C4 7F03A794 00008825 */ move $s1, $zero +/* 06F2C8 7F03A798 924F0001 */ lbu $t7, 1($s2) +/* 06F2CC 7F03A79C 31F80021 */ andi $t8, $t7, 0x21 +/* 06F2D0 7F03A7A0 57000004 */ bnezl $t8, .L7F03A7B4 +/* 06F2D4 7F03A7A4 24010002 */ li $at, 2 +/* 06F2D8 7F03A7A8 1000000A */ b .L7F03A7D4 +/* 06F2DC 7F03A7AC 24110001 */ li $s1, 1 +.L7F03A7B0: +/* 06F2E0 7F03A7B0 24010002 */ li $at, 2 +.L7F03A7B4: +/* 06F2E4 7F03A7B4 16A10007 */ bne $s5, $at, .L7F03A7D4 +/* 06F2E8 7F03A7B8 00000000 */ nop +/* 06F2EC 7F03A7BC 92590001 */ lbu $t9, 1($s2) +/* 06F2F0 7F03A7C0 24010001 */ li $at, 1 +/* 06F2F4 7F03A7C4 33280021 */ andi $t0, $t9, 0x21 +/* 06F2F8 7F03A7C8 15010002 */ bne $t0, $at, .L7F03A7D4 +/* 06F2FC 7F03A7CC 00000000 */ nop +/* 06F300 7F03A7D0 24110001 */ li $s1, 1 +.L7F03A7D4: +/* 06F304 7F03A7D4 1220001D */ beqz $s1, .L7F03A84C +/* 06F308 7F03A7D8 02402025 */ move $a0, $s2 +/* 06F30C 7F03A7DC 00008825 */ move $s1, $zero +/* 06F310 7F03A7E0 02C02825 */ move $a1, $s6 +/* 06F314 7F03A7E4 0FC0F2E3 */ jal sub_GAME_7F03CB8C +/* 06F318 7F03A7E8 02C08025 */ move $s0, $s6 +/* 06F31C 7F03A7EC 8FA90048 */ lw $t1, 0x48($sp) +/* 06F320 7F03A7F0 27AA0048 */ addiu $t2, $sp, 0x48 +/* 06F324 7F03A7F4 0520000F */ bltz $t1, .L7F03A834 +/* 06F328 7F03A7F8 00000000 */ nop +/* 06F32C 7F03A7FC 8D440000 */ lw $a0, ($t2) +.L7F03A800: +/* 06F330 7F03A800 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 06F334 7F03A804 00000000 */ nop +/* 06F338 7F03A808 50400007 */ beql $v0, $zero, .L7F03A828 +/* 06F33C 7F03A80C 8E040004 */ lw $a0, 4($s0) +/* 06F340 7F03A810 8E0B0000 */ lw $t3, ($s0) +/* 06F344 7F03A814 16EB0007 */ bne $s7, $t3, .L7F03A834 +/* 06F348 7F03A818 00000000 */ nop +/* 06F34C 7F03A81C 10000005 */ b .L7F03A834 +/* 06F350 7F03A820 24110001 */ li $s1, 1 +/* 06F354 7F03A824 8E040004 */ lw $a0, 4($s0) +.L7F03A828: +/* 06F358 7F03A828 26100004 */ addiu $s0, $s0, 4 +/* 06F35C 7F03A82C 0481FFF4 */ bgez $a0, .L7F03A800 +/* 06F360 7F03A830 00000000 */ nop +.L7F03A834: +/* 06F364 7F03A834 12200005 */ beqz $s1, .L7F03A84C +/* 06F368 7F03A838 02802025 */ move $a0, $s4 +/* 06F36C 7F03A83C 02402825 */ move $a1, $s2 +/* 06F370 7F03A840 0FC0E98B */ jal sub_GAME_7F03A62C +/* 06F374 7F03A844 00003025 */ move $a2, $zero +/* 06F378 7F03A848 0040A025 */ move $s4, $v0 +.L7F03A84C: +/* 06F37C 7F03A84C 3C0C8007 */ lui $t4, %hi(dword_CODE_bss_80071620) +/* 06F380 7F03A850 258C1620 */ addiu $t4, %lo(dword_CODE_bss_80071620) # addiu $t4, $t4, 0x1620 +/* 06F384 7F03A854 2673FFFC */ addiu $s3, $s3, -4 +/* 06F388 7F03A858 026C082B */ sltu $at, $s3, $t4 +/* 06F38C 7F03A85C 5020FFCA */ beql $at, $zero, .L7F03A788 +/* 06F390 7F03A860 8E720000 */ lw $s2, ($s3) +/* 06F394 7F03A864 10000038 */ b .L7F03A948 +/* 06F398 7F03A868 00000000 */ nop +.L7F03A86C: +/* 06F39C 7F03A86C 3C158007 */ lui $s5, %hi(dword_CODE_bss_80071DF0) +/* 06F3A0 7F03A870 26B51DF0 */ addiu $s5, %lo(dword_CODE_bss_80071DF0) # addiu $s5, $s5, 0x1df0 +/* 06F3A4 7F03A874 8EAD0000 */ lw $t5, ($s5) +/* 06F3A8 7F03A878 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80071620+1) +/* 06F3AC 7F03A87C 25CE1621 */ addiu $t6, %lo(dword_CODE_bss_80071620+1) # addiu $t6, $t6, 0x1621 +/* 06F3B0 7F03A880 01AE082B */ sltu $at, $t5, $t6 +/* 06F3B4 7F03A884 14200030 */ bnez $at, .L7F03A948 +/* 06F3B8 7F03A888 26731620 */ addiu $s3, $s3, %lo(dword_CODE_bss_80071620) +/* 06F3BC 7F03A88C 27B60048 */ addiu $s6, $sp, 0x48 +/* 06F3C0 7F03A890 8E720000 */ lw $s2, ($s3) +.L7F03A894: +/* 06F3C4 7F03A894 00008825 */ move $s1, $zero +/* 06F3C8 7F03A898 02C02825 */ move $a1, $s6 +/* 06F3CC 7F03A89C 12400025 */ beqz $s2, .L7F03A934 +/* 06F3D0 7F03A8A0 02402025 */ move $a0, $s2 +/* 06F3D4 7F03A8A4 0FC0F2E3 */ jal sub_GAME_7F03CB8C +/* 06F3D8 7F03A8A8 02C08025 */ move $s0, $s6 +/* 06F3DC 7F03A8AC 8FAF0048 */ lw $t7, 0x48($sp) +/* 06F3E0 7F03A8B0 27B80048 */ addiu $t8, $sp, 0x48 +/* 06F3E4 7F03A8B4 05E0000F */ bltz $t7, .L7F03A8F4 +/* 06F3E8 7F03A8B8 00000000 */ nop +/* 06F3EC 7F03A8BC 8F040000 */ lw $a0, ($t8) +.L7F03A8C0: +/* 06F3F0 7F03A8C0 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 06F3F4 7F03A8C4 00000000 */ nop +/* 06F3F8 7F03A8C8 50400007 */ beql $v0, $zero, .L7F03A8E8 +/* 06F3FC 7F03A8CC 8E040004 */ lw $a0, 4($s0) +/* 06F400 7F03A8D0 8E190000 */ lw $t9, ($s0) +/* 06F404 7F03A8D4 16F90007 */ bne $s7, $t9, .L7F03A8F4 +/* 06F408 7F03A8D8 00000000 */ nop +/* 06F40C 7F03A8DC 10000005 */ b .L7F03A8F4 +/* 06F410 7F03A8E0 24110001 */ li $s1, 1 +/* 06F414 7F03A8E4 8E040004 */ lw $a0, 4($s0) +.L7F03A8E8: +/* 06F418 7F03A8E8 26100004 */ addiu $s0, $s0, 4 +/* 06F41C 7F03A8EC 0481FFF4 */ bgez $a0, .L7F03A8C0 +/* 06F420 7F03A8F0 00000000 */ nop +.L7F03A8F4: +/* 06F424 7F03A8F4 52200010 */ beql $s1, $zero, .L7F03A938 +/* 06F428 7F03A8F8 8EAA0000 */ lw $t2, ($s5) +/* 06F42C 7F03A8FC 92480001 */ lbu $t0, 1($s2) +/* 06F430 7F03A900 02802025 */ move $a0, $s4 +/* 06F434 7F03A904 02402825 */ move $a1, $s2 +/* 06F438 7F03A908 31090020 */ andi $t1, $t0, 0x20 +/* 06F43C 7F03A90C 51200005 */ beql $t1, $zero, .L7F03A924 +/* 06F440 7F03A910 02802025 */ move $a0, $s4 +/* 06F444 7F03A914 0FC0E98B */ jal sub_GAME_7F03A62C +/* 06F448 7F03A918 00003025 */ move $a2, $zero +/* 06F44C 7F03A91C 0040A025 */ move $s4, $v0 +/* 06F450 7F03A920 02802025 */ move $a0, $s4 +.L7F03A924: +/* 06F454 7F03A924 02402825 */ move $a1, $s2 +/* 06F458 7F03A928 0FC0E98B */ jal sub_GAME_7F03A62C +/* 06F45C 7F03A92C 24060001 */ li $a2, 1 +/* 06F460 7F03A930 0040A025 */ move $s4, $v0 +.L7F03A934: +/* 06F464 7F03A934 8EAA0000 */ lw $t2, ($s5) +.L7F03A938: +/* 06F468 7F03A938 26730004 */ addiu $s3, $s3, 4 +/* 06F46C 7F03A93C 026A082B */ sltu $at, $s3, $t2 +/* 06F470 7F03A940 5420FFD4 */ bnezl $at, .L7F03A894 +/* 06F474 7F03A944 8E720000 */ lw $s2, ($s3) +.L7F03A948: +/* 06F478 7F03A948 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 06F47C 7F03A94C 02802025 */ move $a0, $s4 +.L7F03A950: +/* 06F480 7F03A950 8FBF0034 */ lw $ra, 0x34($sp) +/* 06F484 7F03A954 8FB00014 */ lw $s0, 0x14($sp) +/* 06F488 7F03A958 8FB10018 */ lw $s1, 0x18($sp) +/* 06F48C 7F03A95C 8FB2001C */ lw $s2, 0x1c($sp) +/* 06F490 7F03A960 8FB30020 */ lw $s3, 0x20($sp) +/* 06F494 7F03A964 8FB40024 */ lw $s4, 0x24($sp) +/* 06F498 7F03A968 8FB50028 */ lw $s5, 0x28($sp) +/* 06F49C 7F03A96C 8FB6002C */ lw $s6, 0x2c($sp) +/* 06F4A0 7F03A970 8FB70030 */ lw $s7, 0x30($sp) +/* 06F4A4 7F03A974 03E00008 */ jr $ra +/* 06F4A8 7F03A978 27BD0070 */ addiu $sp, $sp, 0x70 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03A97C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03A97C +/* 06F4AC 7F03A97C 00047080 */ sll $t6, $a0, 2 +/* 06F4B0 7F03A980 01C47021 */ addu $t6, $t6, $a0 +/* 06F4B4 7F03A984 3C0F8004 */ lui $t7, %hi(array_room_info) +/* 06F4B8 7F03A988 25EF1414 */ addiu $t7, %lo(array_room_info) # addiu $t7, $t7, 0x1414 +/* 06F4BC 7F03A98C 000E7100 */ sll $t6, $t6, 4 +/* 06F4C0 7F03A990 01CF1021 */ addu $v0, $t6, $t7 +/* 06F4C4 7F03A994 8C58002C */ lw $t8, 0x2c($v0) +/* 06F4C8 7F03A998 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 06F4CC 7F03A99C AFBF0014 */ sw $ra, 0x14($sp) +/* 06F4D0 7F03A9A0 AFA5003C */ sw $a1, 0x3c($sp) +/* 06F4D4 7F03A9A4 13000022 */ beqz $t8, .L7F03AA30 +/* 06F4D8 7F03A9A8 AFA60040 */ sw $a2, 0x40($sp) +/* 06F4DC 7F03A9AC C4440038 */ lwc1 $f4, 0x38($v0) +/* 06F4E0 7F03A9B0 C448003C */ lwc1 $f8, 0x3c($v0) +/* 06F4E4 7F03A9B4 C4500040 */ lwc1 $f16, 0x40($v0) +/* 06F4E8 7F03A9B8 4600218D */ trunc.w.s $f6, $f4 +/* 06F4EC 7F03A9BC C4440044 */ lwc1 $f4, 0x44($v0) +/* 06F4F0 7F03A9C0 00A02025 */ move $a0, $a1 +/* 06F4F4 7F03A9C4 4600428D */ trunc.w.s $f10, $f8 +/* 06F4F8 7F03A9C8 C4480048 */ lwc1 $f8, 0x48($v0) +/* 06F4FC 7F03A9CC 44083000 */ mfc1 $t0, $f6 +/* 06F500 7F03A9D0 4600848D */ trunc.w.s $f18, $f16 +/* 06F504 7F03A9D4 C450004C */ lwc1 $f16, 0x4c($v0) +/* 06F508 7F03A9D8 440A5000 */ mfc1 $t2, $f10 +/* 06F50C 7F03A9DC 4600218D */ trunc.w.s $f6, $f4 +/* 06F510 7F03A9E0 440C9000 */ mfc1 $t4, $f18 +/* 06F514 7F03A9E4 AFA80020 */ sw $t0, 0x20($sp) +/* 06F518 7F03A9E8 4600428D */ trunc.w.s $f10, $f8 +/* 06F51C 7F03A9EC 440E3000 */ mfc1 $t6, $f6 +/* 06F520 7F03A9F0 00C02825 */ move $a1, $a2 +/* 06F524 7F03A9F4 4600848D */ trunc.w.s $f18, $f16 +/* 06F528 7F03A9F8 44185000 */ mfc1 $t8, $f10 +/* 06F52C 7F03A9FC 27A60020 */ addiu $a2, $sp, 0x20 +/* 06F530 7F03AA00 27A7002C */ addiu $a3, $sp, 0x2c +/* 06F534 7F03AA04 44089000 */ mfc1 $t0, $f18 +/* 06F538 7F03AA08 AFAA0024 */ sw $t2, 0x24($sp) +/* 06F53C 7F03AA0C AFAC0028 */ sw $t4, 0x28($sp) +/* 06F540 7F03AA10 AFAE002C */ sw $t6, 0x2c($sp) +/* 06F544 7F03AA14 AFB80030 */ sw $t8, 0x30($sp) +/* 06F548 7F03AA18 0FC2DB3B */ jal sub_GAME_7F0B6CEC +/* 06F54C 7F03AA1C AFA80034 */ sw $t0, 0x34($sp) +/* 06F550 7F03AA20 50400004 */ beql $v0, $zero, .L7F03AA34 +/* 06F554 7F03AA24 00001025 */ move $v0, $zero +/* 06F558 7F03AA28 10000002 */ b .L7F03AA34 +/* 06F55C 7F03AA2C 24020001 */ li $v0, 1 +.L7F03AA30: +/* 06F560 7F03AA30 00001025 */ move $v0, $zero +.L7F03AA34: +/* 06F564 7F03AA34 8FBF0014 */ lw $ra, 0x14($sp) +/* 06F568 7F03AA38 27BD0038 */ addiu $sp, $sp, 0x38 +/* 06F56C 7F03AA3C 03E00008 */ jr $ra +/* 06F570 7F03AA40 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03AA44(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03AA44 +/* 06F574 7F03AA44 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 06F578 7F03AA48 AFBF002C */ sw $ra, 0x2c($sp) +/* 06F57C 7F03AA4C AFB30024 */ sw $s3, 0x24($sp) +/* 06F580 7F03AA50 AFB20020 */ sw $s2, 0x20($sp) +/* 06F584 7F03AA54 AFB1001C */ sw $s1, 0x1c($sp) +/* 06F588 7F03AA58 00A08825 */ move $s1, $a1 +/* 06F58C 7F03AA5C 00C09025 */ move $s2, $a2 +/* 06F590 7F03AA60 00E09825 */ move $s3, $a3 +/* 06F594 7F03AA64 AFB40028 */ sw $s4, 0x28($sp) +/* 06F598 7F03AA68 AFB00018 */ sw $s0, 0x18($sp) +/* 06F59C 7F03AA6C 0FC2D20F */ jal get_room_data_float1 +/* 06F5A0 7F03AA70 AFA40058 */ sw $a0, 0x58($sp) +/* 06F5A4 7F03AA74 0FC2D21E */ jal sub_GAME_7F0B4878 +/* 06F5A8 7F03AA78 E7A00034 */ swc1 $f0, 0x34($sp) +/* 06F5AC 7F03AA7C C6440000 */ lwc1 $f4, ($s2) +/* 06F5B0 7F03AA80 C6260000 */ lwc1 $f6, ($s1) +/* 06F5B4 7F03AA84 24100001 */ li $s0, 1 +/* 06F5B8 7F03AA88 46062201 */ sub.s $f8, $f4, $f6 +/* 06F5BC 7F03AA8C E7A80040 */ swc1 $f8, 0x40($sp) +/* 06F5C0 7F03AA90 C6300004 */ lwc1 $f16, 4($s1) +/* 06F5C4 7F03AA94 C64A0004 */ lwc1 $f10, 4($s2) +/* 06F5C8 7F03AA98 46105481 */ sub.s $f18, $f10, $f16 +/* 06F5CC 7F03AA9C C7AA0034 */ lwc1 $f10, 0x34($sp) +/* 06F5D0 7F03AAA0 E7B20044 */ swc1 $f18, 0x44($sp) +/* 06F5D4 7F03AAA4 C6260008 */ lwc1 $f6, 8($s1) +/* 06F5D8 7F03AAA8 C6440008 */ lwc1 $f4, 8($s2) +/* 06F5DC 7F03AAAC 460A0082 */ mul.s $f2, $f0, $f10 +/* 06F5E0 7F03AAB0 46062201 */ sub.s $f8, $f4, $f6 +/* 06F5E4 7F03AAB4 E7A80048 */ swc1 $f8, 0x48($sp) +/* 06F5E8 7F03AAB8 C6300000 */ lwc1 $f16, ($s1) +/* 06F5EC 7F03AABC 46028482 */ mul.s $f18, $f16, $f2 +/* 06F5F0 7F03AAC0 E7B2004C */ swc1 $f18, 0x4c($sp) +/* 06F5F4 7F03AAC4 C6240004 */ lwc1 $f4, 4($s1) +/* 06F5F8 7F03AAC8 46022182 */ mul.s $f6, $f4, $f2 +/* 06F5FC 7F03AACC E7A60050 */ swc1 $f6, 0x50($sp) +/* 06F600 7F03AAD0 C6280008 */ lwc1 $f8, 8($s1) +/* 06F604 7F03AAD4 46024282 */ mul.s $f10, $f8, $f2 +/* 06F608 7F03AAD8 0FC2D791 */ jal getMaxNumRooms +/* 06F60C 7F03AADC E7AA0054 */ swc1 $f10, 0x54($sp) +/* 06F610 7F03AAE0 28410002 */ slti $at, $v0, 2 +/* 06F614 7F03AAE4 14200014 */ bnez $at, .L7F03AB38 +/* 06F618 7F03AAE8 02708821 */ addu $s1, $s3, $s0 +/* 06F61C 7F03AAEC 24140001 */ li $s4, 1 +/* 06F620 7F03AAF0 27B30040 */ addiu $s3, $sp, 0x40 +/* 06F624 7F03AAF4 27B2004C */ addiu $s2, $sp, 0x4c +/* 06F628 7F03AAF8 922E0000 */ lbu $t6, ($s1) +.L7F03AAFC: +/* 06F62C 7F03AAFC 02002025 */ move $a0, $s0 +/* 06F630 7F03AB00 02402825 */ move $a1, $s2 +/* 06F634 7F03AB04 55C00007 */ bnezl $t6, .L7F03AB24 +/* 06F638 7F03AB08 26100001 */ addiu $s0, $s0, 1 +/* 06F63C 7F03AB0C 0FC0EA5F */ jal sub_GAME_7F03A97C +/* 06F640 7F03AB10 02603025 */ move $a2, $s3 +/* 06F644 7F03AB14 54400003 */ bnezl $v0, .L7F03AB24 +/* 06F648 7F03AB18 26100001 */ addiu $s0, $s0, 1 +/* 06F64C 7F03AB1C A2340000 */ sb $s4, ($s1) +/* 06F650 7F03AB20 26100001 */ addiu $s0, $s0, 1 +.L7F03AB24: +/* 06F654 7F03AB24 0FC2D791 */ jal getMaxNumRooms +/* 06F658 7F03AB28 26310001 */ addiu $s1, $s1, 1 +/* 06F65C 7F03AB2C 0202082A */ slt $at, $s0, $v0 +/* 06F660 7F03AB30 5420FFF2 */ bnezl $at, .L7F03AAFC +/* 06F664 7F03AB34 922E0000 */ lbu $t6, ($s1) +.L7F03AB38: +/* 06F668 7F03AB38 8FBF002C */ lw $ra, 0x2c($sp) +/* 06F66C 7F03AB3C 8FB00018 */ lw $s0, 0x18($sp) +/* 06F670 7F03AB40 8FB1001C */ lw $s1, 0x1c($sp) +/* 06F674 7F03AB44 8FB20020 */ lw $s2, 0x20($sp) +/* 06F678 7F03AB48 8FB30024 */ lw $s3, 0x24($sp) +/* 06F67C 7F03AB4C 8FB40028 */ lw $s4, 0x28($sp) +/* 06F680 7F03AB50 03E00008 */ jr $ra +/* 06F684 7F03AB54 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03AB58(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03AB58 +/* 06F688 7F03AB58 27BDFDE0 */ addiu $sp, $sp, -0x220 +/* 06F68C 7F03AB5C AFBF003C */ sw $ra, 0x3c($sp) +/* 06F690 7F03AB60 AFB20024 */ sw $s2, 0x24($sp) +/* 06F694 7F03AB64 00809025 */ move $s2, $a0 +/* 06F698 7F03AB68 AFB70038 */ sw $s7, 0x38($sp) +/* 06F69C 7F03AB6C AFB60034 */ sw $s6, 0x34($sp) +/* 06F6A0 7F03AB70 AFB50030 */ sw $s5, 0x30($sp) +/* 06F6A4 7F03AB74 AFB4002C */ sw $s4, 0x2c($sp) +/* 06F6A8 7F03AB78 AFB30028 */ sw $s3, 0x28($sp) +/* 06F6AC 7F03AB7C AFB10020 */ sw $s1, 0x20($sp) +/* 06F6B0 7F03AB80 AFB0001C */ sw $s0, 0x1c($sp) +/* 06F6B4 7F03AB84 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 06F6B8 7F03AB88 AFA50224 */ sw $a1, 0x224($sp) +/* 06F6BC 7F03AB8C AFA60228 */ sw $a2, 0x228($sp) +/* 06F6C0 7F03AB90 0FC2D20C */ jal get_room_data_float2 +/* 06F6C4 7F03AB94 AFA7022C */ sw $a3, 0x22c($sp) +/* 06F6C8 7F03AB98 46000506 */ mov.s $f20, $f0 +/* 06F6CC 7F03AB9C 27A40090 */ addiu $a0, $sp, 0x90 +/* 06F6D0 7F03ABA0 0FC2E3A6 */ jal sub_GAME_7F0B8E98 +/* 06F6D4 7F03ABA4 24050064 */ li $a1, 100 +/* 06F6D8 7F03ABA8 18400085 */ blez $v0, .L7F03ADC0 +/* 06F6DC 7F03ABAC 27B00090 */ addiu $s0, $sp, 0x90 +/* 06F6E0 7F03ABB0 00027880 */ sll $t7, $v0, 2 +/* 06F6E4 7F03ABB4 01F0A021 */ addu $s4, $t7, $s0 +/* 06F6E8 7F03ABB8 24170001 */ li $s7, 1 +/* 06F6EC 7F03ABBC 8FB60230 */ lw $s6, 0x230($sp) +/* 06F6F0 7F03ABC0 27B30054 */ addiu $s3, $sp, 0x54 +/* 06F6F4 7F03ABC4 8FB10234 */ lw $s1, 0x234($sp) +/* 06F6F8 7F03ABC8 8E180000 */ lw $t8, ($s0) +.L7F03ABCC: +/* 06F6FC 7F03ABCC 03161021 */ addu $v0, $t8, $s6 +/* 06F700 7F03ABD0 90590000 */ lbu $t9, ($v0) +/* 06F704 7F03ABD4 57200077 */ bnezl $t9, .L7F03ADB4 +/* 06F708 7F03ABD8 26100004 */ addiu $s0, $s0, 4 +/* 06F70C 7F03ABDC A0570000 */ sb $s7, ($v0) +/* 06F710 7F03ABE0 8FA60228 */ lw $a2, 0x228($sp) +/* 06F714 7F03ABE4 8FA5022C */ lw $a1, 0x22c($sp) +/* 06F718 7F03ABE8 0FC0EA5F */ jal sub_GAME_7F03A97C +/* 06F71C 7F03ABEC 8E040000 */ lw $a0, ($s0) +/* 06F720 7F03ABF0 1040006F */ beqz $v0, .L7F03ADB0 +/* 06F724 7F03ABF4 02402025 */ move $a0, $s2 +/* 06F728 7F03ABF8 8FA50224 */ lw $a1, 0x224($sp) +/* 06F72C 7F03ABFC 8E060000 */ lw $a2, ($s0) +/* 06F730 7F03AC00 0FC2DE9E */ jal sub_GAME_7F0B7A78 +/* 06F734 7F03AC04 02603825 */ move $a3, $s3 +/* 06F738 7F03AC08 10400069 */ beqz $v0, .L7F03ADB0 +/* 06F73C 7F03AC0C C7A40054 */ lwc1 $f4, 0x54($sp) +/* 06F740 7F03AC10 46142182 */ mul.s $f6, $f4, $f20 +/* 06F744 7F03AC14 C7A80058 */ lwc1 $f8, 0x58($sp) +/* 06F748 7F03AC18 C7B0005C */ lwc1 $f16, 0x5c($sp) +/* 06F74C 7F03AC1C 8FA80238 */ lw $t0, 0x238($sp) +/* 06F750 7F03AC20 46144282 */ mul.s $f10, $f8, $f20 +/* 06F754 7F03AC24 8E020000 */ lw $v0, ($s0) +/* 06F758 7F03AC28 02606025 */ move $t4, $s3 +/* 06F75C 7F03AC2C 46148482 */ mul.s $f18, $f16, $f20 +/* 06F760 7F03AC30 E7A60054 */ swc1 $f6, 0x54($sp) +/* 06F764 7F03AC34 02206825 */ move $t5, $s1 +/* 06F768 7F03AC38 266B0030 */ addiu $t3, $s3, 0x30 +/* 06F76C 7F03AC3C E7AA0058 */ swc1 $f10, 0x58($sp) +/* 06F770 7F03AC40 19000051 */ blez $t0, .L7F03AD88 +/* 06F774 7F03AC44 E7B2005C */ swc1 $f18, 0x5c($sp) +/* 06F778 7F03AC48 C6200000 */ lwc1 $f0, ($s1) +/* 06F77C 7F03AC4C C6420000 */ lwc1 $f2, ($s2) +/* 06F780 7F03AC50 4600103E */ c.le.s $f2, $f0 +/* 06F784 7F03AC54 00000000 */ nop +/* 06F788 7F03AC58 4502000A */ bc1fl .L7F03AC84 +/* 06F78C 7F03AC5C 4602003E */ c.le.s $f0, $f2 +/* 06F790 7F03AC60 4606103E */ c.le.s $f2, $f6 +/* 06F794 7F03AC64 00000000 */ nop +/* 06F798 7F03AC68 45020006 */ bc1fl .L7F03AC84 +/* 06F79C 7F03AC6C 4602003E */ c.le.s $f0, $f2 +/* 06F7A0 7F03AC70 4600303C */ c.lt.s $f6, $f0 +/* 06F7A4 7F03AC74 00000000 */ nop +/* 06F7A8 7F03AC78 4503000E */ bc1tl .L7F03ACB4 +/* 06F7AC 7F03AC7C C6200004 */ lwc1 $f0, 4($s1) +/* 06F7B0 7F03AC80 4602003E */ c.le.s $f0, $f2 +.L7F03AC84: +/* 06F7B4 7F03AC84 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 06F7B8 7F03AC88 4502004A */ bc1fl .L7F03ADB4 +/* 06F7BC 7F03AC8C 26100004 */ addiu $s0, $s0, 4 +/* 06F7C0 7F03AC90 4602203E */ c.le.s $f4, $f2 +/* 06F7C4 7F03AC94 00000000 */ nop +/* 06F7C8 7F03AC98 45020046 */ bc1fl .L7F03ADB4 +/* 06F7CC 7F03AC9C 26100004 */ addiu $s0, $s0, 4 +/* 06F7D0 7F03ACA0 4604003C */ c.lt.s $f0, $f4 +/* 06F7D4 7F03ACA4 00000000 */ nop +/* 06F7D8 7F03ACA8 45020042 */ bc1fl .L7F03ADB4 +/* 06F7DC 7F03ACAC 26100004 */ addiu $s0, $s0, 4 +/* 06F7E0 7F03ACB0 C6200004 */ lwc1 $f0, 4($s1) +.L7F03ACB4: +/* 06F7E4 7F03ACB4 C6420004 */ lwc1 $f2, 4($s2) +/* 06F7E8 7F03ACB8 C7A80058 */ lwc1 $f8, 0x58($sp) +/* 06F7EC 7F03ACBC 4600103E */ c.le.s $f2, $f0 +/* 06F7F0 7F03ACC0 00000000 */ nop +/* 06F7F4 7F03ACC4 4502000A */ bc1fl .L7F03ACF0 +/* 06F7F8 7F03ACC8 4602003E */ c.le.s $f0, $f2 +/* 06F7FC 7F03ACCC 4608103E */ c.le.s $f2, $f8 +/* 06F800 7F03ACD0 00000000 */ nop +/* 06F804 7F03ACD4 45020006 */ bc1fl .L7F03ACF0 +/* 06F808 7F03ACD8 4602003E */ c.le.s $f0, $f2 +/* 06F80C 7F03ACDC 4600403C */ c.lt.s $f8, $f0 +/* 06F810 7F03ACE0 00000000 */ nop +/* 06F814 7F03ACE4 4503000E */ bc1tl .L7F03AD20 +/* 06F818 7F03ACE8 C6200008 */ lwc1 $f0, 8($s1) +/* 06F81C 7F03ACEC 4602003E */ c.le.s $f0, $f2 +.L7F03ACF0: +/* 06F820 7F03ACF0 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 06F824 7F03ACF4 4502002F */ bc1fl .L7F03ADB4 +/* 06F828 7F03ACF8 26100004 */ addiu $s0, $s0, 4 +/* 06F82C 7F03ACFC 4602503E */ c.le.s $f10, $f2 +/* 06F830 7F03AD00 00000000 */ nop +/* 06F834 7F03AD04 4502002B */ bc1fl .L7F03ADB4 +/* 06F838 7F03AD08 26100004 */ addiu $s0, $s0, 4 +/* 06F83C 7F03AD0C 460A003C */ c.lt.s $f0, $f10 +/* 06F840 7F03AD10 00000000 */ nop +/* 06F844 7F03AD14 45020027 */ bc1fl .L7F03ADB4 +/* 06F848 7F03AD18 26100004 */ addiu $s0, $s0, 4 +/* 06F84C 7F03AD1C C6200008 */ lwc1 $f0, 8($s1) +.L7F03AD20: +/* 06F850 7F03AD20 C6420008 */ lwc1 $f2, 8($s2) +/* 06F854 7F03AD24 C7B0005C */ lwc1 $f16, 0x5c($sp) +/* 06F858 7F03AD28 4600103E */ c.le.s $f2, $f0 +/* 06F85C 7F03AD2C 00000000 */ nop +/* 06F860 7F03AD30 4502000A */ bc1fl .L7F03AD5C +/* 06F864 7F03AD34 4602003E */ c.le.s $f0, $f2 +/* 06F868 7F03AD38 4610103E */ c.le.s $f2, $f16 +/* 06F86C 7F03AD3C 00000000 */ nop +/* 06F870 7F03AD40 45020006 */ bc1fl .L7F03AD5C +/* 06F874 7F03AD44 4602003E */ c.le.s $f0, $f2 +/* 06F878 7F03AD48 4600803C */ c.lt.s $f16, $f0 +/* 06F87C 7F03AD4C 00000000 */ nop +/* 06F880 7F03AD50 4503000E */ bc1tl .L7F03AD8C +/* 06F884 7F03AD54 AFA20238 */ sw $v0, 0x238($sp) +/* 06F888 7F03AD58 4602003E */ c.le.s $f0, $f2 +.L7F03AD5C: +/* 06F88C 7F03AD5C C7B2005C */ lwc1 $f18, 0x5c($sp) +/* 06F890 7F03AD60 45020014 */ bc1fl .L7F03ADB4 +/* 06F894 7F03AD64 26100004 */ addiu $s0, $s0, 4 +/* 06F898 7F03AD68 4602903E */ c.le.s $f18, $f2 +/* 06F89C 7F03AD6C 00000000 */ nop +/* 06F8A0 7F03AD70 45020010 */ bc1fl .L7F03ADB4 +/* 06F8A4 7F03AD74 26100004 */ addiu $s0, $s0, 4 +/* 06F8A8 7F03AD78 4612003C */ c.lt.s $f0, $f18 +/* 06F8AC 7F03AD7C 00000000 */ nop +/* 06F8B0 7F03AD80 4502000C */ bc1fl .L7F03ADB4 +/* 06F8B4 7F03AD84 26100004 */ addiu $s0, $s0, 4 +.L7F03AD88: +/* 06F8B8 7F03AD88 AFA20238 */ sw $v0, 0x238($sp) +.L7F03AD8C: +/* 06F8BC 7F03AD8C 8D810000 */ lw $at, ($t4) +/* 06F8C0 7F03AD90 258C000C */ addiu $t4, $t4, 0xc +/* 06F8C4 7F03AD94 25AD000C */ addiu $t5, $t5, 0xc +/* 06F8C8 7F03AD98 ADA1FFF4 */ sw $at, -0xc($t5) +/* 06F8CC 7F03AD9C 8D81FFF8 */ lw $at, -8($t4) +/* 06F8D0 7F03ADA0 ADA1FFF8 */ sw $at, -8($t5) +/* 06F8D4 7F03ADA4 8D81FFFC */ lw $at, -4($t4) +/* 06F8D8 7F03ADA8 158BFFF8 */ bne $t4, $t3, .L7F03AD8C +/* 06F8DC 7F03ADAC ADA1FFFC */ sw $at, -4($t5) +.L7F03ADB0: +/* 06F8E0 7F03ADB0 26100004 */ addiu $s0, $s0, 4 +.L7F03ADB4: +/* 06F8E4 7F03ADB4 0214082B */ sltu $at, $s0, $s4 +/* 06F8E8 7F03ADB8 5420FF84 */ bnezl $at, .L7F03ABCC +/* 06F8EC 7F03ADBC 8E180000 */ lw $t8, ($s0) +.L7F03ADC0: +/* 06F8F0 7F03ADC0 8FBF003C */ lw $ra, 0x3c($sp) +/* 06F8F4 7F03ADC4 8FA20238 */ lw $v0, 0x238($sp) +/* 06F8F8 7F03ADC8 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 06F8FC 7F03ADCC 8FB0001C */ lw $s0, 0x1c($sp) +/* 06F900 7F03ADD0 8FB10020 */ lw $s1, 0x20($sp) +/* 06F904 7F03ADD4 8FB20024 */ lw $s2, 0x24($sp) +/* 06F908 7F03ADD8 8FB30028 */ lw $s3, 0x28($sp) +/* 06F90C 7F03ADDC 8FB4002C */ lw $s4, 0x2c($sp) +/* 06F910 7F03ADE0 8FB50030 */ lw $s5, 0x30($sp) +/* 06F914 7F03ADE4 8FB60034 */ lw $s6, 0x34($sp) +/* 06F918 7F03ADE8 8FB70038 */ lw $s7, 0x38($sp) +/* 06F91C 7F03ADEC 03E00008 */ jr $ra +/* 06F920 7F03ADF0 27BD0220 */ addiu $sp, $sp, 0x220 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03ADF4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03ADF4 +/* 06F924 7F03ADF4 27BDFD08 */ addiu $sp, $sp, -0x2f8 +/* 06F928 7F03ADF8 AFBE0038 */ sw $fp, 0x38($sp) +/* 06F92C 7F03ADFC AFB70034 */ sw $s7, 0x34($sp) +/* 06F930 7F03AE00 AFB60030 */ sw $s6, 0x30($sp) +/* 06F934 7F03AE04 AFB5002C */ sw $s5, 0x2c($sp) +/* 06F938 7F03AE08 AFB40028 */ sw $s4, 0x28($sp) +/* 06F93C 7F03AE0C AFB20020 */ sw $s2, 0x20($sp) +/* 06F940 7F03AE10 AFB00018 */ sw $s0, 0x18($sp) +/* 06F944 7F03AE14 AFBF003C */ sw $ra, 0x3c($sp) +/* 06F948 7F03AE18 AFB30024 */ sw $s3, 0x24($sp) +/* 06F94C 7F03AE1C AFB1001C */ sw $s1, 0x1c($sp) +/* 06F950 7F03AE20 AFA502FC */ sw $a1, 0x2fc($sp) +/* 06F954 7F03AE24 AFA60300 */ sw $a2, 0x300($sp) +/* 06F958 7F03AE28 AFA70304 */ sw $a3, 0x304($sp) +/* 06F95C 7F03AE2C A3A401F8 */ sb $a0, 0x1f8($sp) +/* 06F960 7F03AE30 24100001 */ li $s0, 1 +/* 06F964 7F03AE34 27B20064 */ addiu $s2, $sp, 0x64 +/* 06F968 7F03AE38 27B401F8 */ addiu $s4, $sp, 0x1f8 +/* 06F96C 7F03AE3C 0000A825 */ move $s5, $zero +/* 06F970 7F03AE40 27B601F8 */ addiu $s6, $sp, 0x1f8 +/* 06F974 7F03AE44 8FB7030C */ lw $s7, 0x30c($sp) +/* 06F978 7F03AE48 8FBE0308 */ lw $fp, 0x308($sp) +.L7F03AE4C: +/* 06F97C 7F03AE4C 92D30000 */ lbu $s3, ($s6) +/* 06F980 7F03AE50 240F0001 */ li $t7, 1 +/* 06F984 7F03AE54 03C02825 */ move $a1, $fp +/* 06F988 7F03AE58 02F31021 */ addu $v0, $s7, $s3 +/* 06F98C 7F03AE5C 904E0000 */ lbu $t6, ($v0) +/* 06F990 7F03AE60 02602025 */ move $a0, $s3 +/* 06F994 7F03AE64 55C0000F */ bnezl $t6, .L7F03AEA4 +/* 06F998 7F03AE68 02602025 */ move $a0, $s3 +/* 06F99C 7F03AE6C A04F0000 */ sb $t7, ($v0) +/* 06F9A0 7F03AE70 0FC0EA5F */ jal sub_GAME_7F03A97C +/* 06F9A4 7F03AE74 8FA60304 */ lw $a2, 0x304($sp) +/* 06F9A8 7F03AE78 10400009 */ beqz $v0, .L7F03AEA0 +/* 06F9AC 7F03AE7C 8FA402FC */ lw $a0, 0x2fc($sp) +/* 06F9B0 7F03AE80 8FA50300 */ lw $a1, 0x300($sp) +/* 06F9B4 7F03AE84 02603025 */ move $a2, $s3 +/* 06F9B8 7F03AE88 0FC2DE9E */ jal sub_GAME_7F0B7A78 +/* 06F9BC 7F03AE8C 8FA70310 */ lw $a3, 0x310($sp) +/* 06F9C0 7F03AE90 50400004 */ beql $v0, $zero, .L7F03AEA4 +/* 06F9C4 7F03AE94 02602025 */ move $a0, $s3 +/* 06F9C8 7F03AE98 10000024 */ b .L7F03AF2C +/* 06F9CC 7F03AE9C 02601025 */ move $v0, $s3 +.L7F03AEA0: +/* 06F9D0 7F03AEA0 02602025 */ move $a0, $s3 +.L7F03AEA4: +/* 06F9D4 7F03AEA4 02402825 */ move $a1, $s2 +/* 06F9D8 7F03AEA8 24060064 */ li $a2, 100 +/* 06F9DC 7F03AEAC 0FC2E3BF */ jal sub_GAME_7F0B8EFC +/* 06F9E0 7F03AEB0 00008825 */ move $s1, $zero +/* 06F9E4 7F03AEB4 18400018 */ blez $v0, .L7F03AF18 +/* 06F9E8 7F03AEB8 00402825 */ move $a1, $v0 +.L7F03AEBC: +/* 06F9EC 7F03AEBC 1A00000B */ blez $s0, .L7F03AEEC +/* 06F9F0 7F03AEC0 00001825 */ move $v1, $zero +/* 06F9F4 7F03AEC4 0011C080 */ sll $t8, $s1, 2 +/* 06F9F8 7F03AEC8 0258C821 */ addu $t9, $s2, $t8 +/* 06F9FC 7F03AECC 8F240000 */ lw $a0, ($t9) +/* 06FA00 7F03AED0 27A201F8 */ addiu $v0, $sp, 0x1f8 +.L7F03AED4: +/* 06FA04 7F03AED4 90480000 */ lbu $t0, ($v0) +/* 06FA08 7F03AED8 11040004 */ beq $t0, $a0, .L7F03AEEC +/* 06FA0C 7F03AEDC 00000000 */ nop +/* 06FA10 7F03AEE0 24630001 */ addiu $v1, $v1, 1 +/* 06FA14 7F03AEE4 1470FFFB */ bne $v1, $s0, .L7F03AED4 +/* 06FA18 7F03AEE8 24420001 */ addiu $v0, $v0, 1 +.L7F03AEEC: +/* 06FA1C 7F03AEEC 14700006 */ bne $v1, $s0, .L7F03AF08 +/* 06FA20 7F03AEF0 00114880 */ sll $t1, $s1, 2 +/* 06FA24 7F03AEF4 02495021 */ addu $t2, $s2, $t1 +/* 06FA28 7F03AEF8 8D4B0000 */ lw $t3, ($t2) +/* 06FA2C 7F03AEFC 02906021 */ addu $t4, $s4, $s0 +/* 06FA30 7F03AF00 26100001 */ addiu $s0, $s0, 1 +/* 06FA34 7F03AF04 A18B0000 */ sb $t3, ($t4) +.L7F03AF08: +/* 06FA38 7F03AF08 26310001 */ addiu $s1, $s1, 1 +/* 06FA3C 7F03AF0C 0225082A */ slt $at, $s1, $a1 +/* 06FA40 7F03AF10 1420FFEA */ bnez $at, .L7F03AEBC +/* 06FA44 7F03AF14 00000000 */ nop +.L7F03AF18: +/* 06FA48 7F03AF18 26B50001 */ addiu $s5, $s5, 1 +/* 06FA4C 7F03AF1C 02B0082A */ slt $at, $s5, $s0 +/* 06FA50 7F03AF20 1420FFCA */ bnez $at, .L7F03AE4C +/* 06FA54 7F03AF24 26D60001 */ addiu $s6, $s6, 1 +/* 06FA58 7F03AF28 00001025 */ move $v0, $zero +.L7F03AF2C: +/* 06FA5C 7F03AF2C 8FBF003C */ lw $ra, 0x3c($sp) +/* 06FA60 7F03AF30 8FB00018 */ lw $s0, 0x18($sp) +/* 06FA64 7F03AF34 8FB1001C */ lw $s1, 0x1c($sp) +/* 06FA68 7F03AF38 8FB20020 */ lw $s2, 0x20($sp) +/* 06FA6C 7F03AF3C 8FB30024 */ lw $s3, 0x24($sp) +/* 06FA70 7F03AF40 8FB40028 */ lw $s4, 0x28($sp) +/* 06FA74 7F03AF44 8FB5002C */ lw $s5, 0x2c($sp) +/* 06FA78 7F03AF48 8FB60030 */ lw $s6, 0x30($sp) +/* 06FA7C 7F03AF4C 8FB70034 */ lw $s7, 0x34($sp) +/* 06FA80 7F03AF50 8FBE0038 */ lw $fp, 0x38($sp) +/* 06FA84 7F03AF54 03E00008 */ jr $ra +/* 06FA88 7F03AF58 27BD02F8 */ addiu $sp, $sp, 0x2f8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03AF5C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03AF5C +/* 06FA8C 7F03AF5C 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 06FA90 7F03AF60 F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 06FA94 7F03AF64 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06FA98 7F03AF68 AFBF0064 */ sw $ra, 0x64($sp) +/* 06FA9C 7F03AF6C AFBE0060 */ sw $fp, 0x60($sp) +/* 06FAA0 7F03AF70 AFB7005C */ sw $s7, 0x5c($sp) +/* 06FAA4 7F03AF74 AFB3004C */ sw $s3, 0x4c($sp) +/* 06FAA8 7F03AF78 4481D000 */ mtc1 $at, $f26 +/* 06FAAC 7F03AF7C 00A09825 */ move $s3, $a1 +/* 06FAB0 7F03AF80 00E0F025 */ move $fp, $a3 +/* 06FAB4 7F03AF84 AFB60058 */ sw $s6, 0x58($sp) +/* 06FAB8 7F03AF88 AFB50054 */ sw $s5, 0x54($sp) +/* 06FABC 7F03AF8C AFB40050 */ sw $s4, 0x50($sp) +/* 06FAC0 7F03AF90 AFB20048 */ sw $s2, 0x48($sp) +/* 06FAC4 7F03AF94 AFB10044 */ sw $s1, 0x44($sp) +/* 06FAC8 7F03AF98 AFB00040 */ sw $s0, 0x40($sp) +/* 06FACC 7F03AF9C F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 06FAD0 7F03AFA0 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 06FAD4 7F03AFA4 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 06FAD8 7F03AFA8 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 06FADC 7F03AFAC AFA400C0 */ sw $a0, 0xc0($sp) +/* 06FAE0 7F03AFB0 AFA600C8 */ sw $a2, 0xc8($sp) +/* 06FAE4 7F03AFB4 0FC2D20C */ jal get_room_data_float2 +/* 06FAE8 7F03AFB8 0000B825 */ move $s7, $zero +/* 06FAEC 7F03AFBC 46000606 */ mov.s $f24, $f0 +/* 06FAF0 7F03AFC0 0FC2D791 */ jal getMaxNumRooms +/* 06FAF4 7F03AFC4 24110001 */ li $s1, 1 +/* 06FAF8 7F03AFC8 28410002 */ slti $at, $v0, 2 +/* 06FAFC 7F03AFCC 14200051 */ bnez $at, .L7F03B114 +/* 06FB00 7F03AFD0 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 06FB04 7F03AFD4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 06FB08 7F03AFD8 4481E000 */ mtc1 $at, $f28 +/* 06FB0C 7F03AFDC 01D19021 */ addu $s2, $t6, $s1 +/* 06FB10 7F03AFE0 27B60088 */ addiu $s6, $sp, 0x88 +/* 06FB14 7F03AFE4 24150001 */ li $s5, 1 +/* 06FB18 7F03AFE8 8FB400D0 */ lw $s4, 0xd0($sp) +/* 06FB1C 7F03AFEC 8FB000D8 */ lw $s0, 0xd8($sp) +/* 06FB20 7F03AFF0 924F0000 */ lbu $t7, ($s2) +.L7F03AFF4: +/* 06FB24 7F03AFF4 02202025 */ move $a0, $s1 +/* 06FB28 7F03AFF8 02802825 */ move $a1, $s4 +/* 06FB2C 7F03AFFC 15E0003F */ bnez $t7, .L7F03B0FC +/* 06FB30 7F03B000 03C03025 */ move $a2, $fp +/* 06FB34 7F03B004 0FC0EA5F */ jal sub_GAME_7F03A97C +/* 06FB38 7F03B008 A2550000 */ sb $s5, ($s2) +/* 06FB3C 7F03B00C 1040003B */ beqz $v0, .L7F03B0FC +/* 06FB40 7F03B010 02602025 */ move $a0, $s3 +/* 06FB44 7F03B014 8FA500C8 */ lw $a1, 0xc8($sp) +/* 06FB48 7F03B018 02203025 */ move $a2, $s1 +/* 06FB4C 7F03B01C 0FC2DE9E */ jal sub_GAME_7F0B7A78 +/* 06FB50 7F03B020 02C03825 */ move $a3, $s6 +/* 06FB54 7F03B024 10400035 */ beqz $v0, .L7F03B0FC +/* 06FB58 7F03B028 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 06FB5C 7F03B02C 46182182 */ mul.s $f6, $f4, $f24 +/* 06FB60 7F03B030 C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 06FB64 7F03B034 C6680000 */ lwc1 $f8, ($s3) +/* 06FB68 7F03B038 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 06FB6C 7F03B03C 46185402 */ mul.s $f16, $f10, $f24 +/* 06FB70 7F03B040 C6720004 */ lwc1 $f18, 4($s3) +/* 06FB74 7F03B044 87A400B2 */ lh $a0, 0xb2($sp) +/* 06FB78 7F03B048 46083001 */ sub.s $f0, $f6, $f8 +/* 06FB7C 7F03B04C 46182182 */ mul.s $f6, $f4, $f24 +/* 06FB80 7F03B050 C6680008 */ lwc1 $f8, 8($s3) +/* 06FB84 7F03B054 46128081 */ sub.s $f2, $f16, $f18 +/* 06FB88 7F03B058 46000282 */ mul.s $f10, $f0, $f0 +/* 06FB8C 7F03B05C 00000000 */ nop +/* 06FB90 7F03B060 46021402 */ mul.s $f16, $f2, $f2 +/* 06FB94 7F03B064 46083301 */ sub.s $f12, $f6, $f8 +/* 06FB98 7F03B068 460C6102 */ mul.s $f4, $f12, $f12 +/* 06FB9C 7F03B06C 46105480 */ add.s $f18, $f10, $f16 +/* 06FBA0 7F03B070 46049580 */ add.s $f22, $f18, $f4 +/* 06FBA4 7F03B074 0FC2ED8C */ jal check_if_imageID_is_light +/* 06FBA8 7F03B078 4600B506 */ mov.s $f20, $f22 +/* 06FBAC 7F03B07C 10400002 */ beqz $v0, .L7F03B088 +/* 06FBB0 7F03B080 C7A60088 */ lwc1 $f6, 0x88($sp) +/* 06FBB4 7F03B084 461CB501 */ sub.s $f20, $f22, $f28 +.L7F03B088: +/* 06FBB8 7F03B088 461AA03C */ c.lt.s $f20, $f26 +/* 06FBBC 7F03B08C 00000000 */ nop +/* 06FBC0 7F03B090 4502001B */ bc1fl .L7F03B100 +/* 06FBC4 7F03B094 26310001 */ addiu $s1, $s1, 1 +/* 06FBC8 7F03B098 E6060000 */ swc1 $f6, ($s0) +/* 06FBCC 7F03B09C C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 06FBD0 7F03B0A0 4600A686 */ mov.s $f26, $f20 +/* 06FBD4 7F03B0A4 0220B825 */ move $s7, $s1 +/* 06FBD8 7F03B0A8 E6080004 */ swc1 $f8, 4($s0) +/* 06FBDC 7F03B0AC C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 06FBE0 7F03B0B0 E60A0008 */ swc1 $f10, 8($s0) +/* 06FBE4 7F03B0B4 C7B00094 */ lwc1 $f16, 0x94($sp) +/* 06FBE8 7F03B0B8 E610000C */ swc1 $f16, 0xc($s0) +/* 06FBEC 7F03B0BC C7B20098 */ lwc1 $f18, 0x98($sp) +/* 06FBF0 7F03B0C0 E6120010 */ swc1 $f18, 0x10($s0) +/* 06FBF4 7F03B0C4 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 06FBF8 7F03B0C8 E6040014 */ swc1 $f4, 0x14($s0) +/* 06FBFC 7F03B0CC 8FB800A0 */ lw $t8, 0xa0($sp) +/* 06FC00 7F03B0D0 AE180018 */ sw $t8, 0x18($s0) +/* 06FC04 7F03B0D4 8FB900A4 */ lw $t9, 0xa4($sp) +/* 06FC08 7F03B0D8 AE19001C */ sw $t9, 0x1c($s0) +/* 06FC0C 7F03B0DC 8FA800A8 */ lw $t0, 0xa8($sp) +/* 06FC10 7F03B0E0 AE080020 */ sw $t0, 0x20($s0) +/* 06FC14 7F03B0E4 87A900B2 */ lh $t1, 0xb2($sp) +/* 06FC18 7F03B0E8 A609002A */ sh $t1, 0x2a($s0) +/* 06FC1C 7F03B0EC 8FAA00AC */ lw $t2, 0xac($sp) +/* 06FC20 7F03B0F0 AE0A0024 */ sw $t2, 0x24($s0) +/* 06FC24 7F03B0F4 87AB00B0 */ lh $t3, 0xb0($sp) +/* 06FC28 7F03B0F8 A60B0028 */ sh $t3, 0x28($s0) +.L7F03B0FC: +/* 06FC2C 7F03B0FC 26310001 */ addiu $s1, $s1, 1 +.L7F03B100: +/* 06FC30 7F03B100 0FC2D791 */ jal getMaxNumRooms +/* 06FC34 7F03B104 26520001 */ addiu $s2, $s2, 1 +/* 06FC38 7F03B108 0222082A */ slt $at, $s1, $v0 +/* 06FC3C 7F03B10C 5420FFB9 */ bnezl $at, .L7F03AFF4 +/* 06FC40 7F03B110 924F0000 */ lbu $t7, ($s2) +.L7F03B114: +/* 06FC44 7F03B114 8FBF0064 */ lw $ra, 0x64($sp) +/* 06FC48 7F03B118 02E01025 */ move $v0, $s7 +/* 06FC4C 7F03B11C 8FB7005C */ lw $s7, 0x5c($sp) +/* 06FC50 7F03B120 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 06FC54 7F03B124 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 06FC58 7F03B128 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 06FC5C 7F03B12C D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 06FC60 7F03B130 D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 06FC64 7F03B134 8FB00040 */ lw $s0, 0x40($sp) +/* 06FC68 7F03B138 8FB10044 */ lw $s1, 0x44($sp) +/* 06FC6C 7F03B13C 8FB20048 */ lw $s2, 0x48($sp) +/* 06FC70 7F03B140 8FB3004C */ lw $s3, 0x4c($sp) +/* 06FC74 7F03B144 8FB40050 */ lw $s4, 0x50($sp) +/* 06FC78 7F03B148 8FB50054 */ lw $s5, 0x54($sp) +/* 06FC7C 7F03B14C 8FB60058 */ lw $s6, 0x58($sp) +/* 06FC80 7F03B150 8FBE0060 */ lw $fp, 0x60($sp) +/* 06FC84 7F03B154 03E00008 */ jr $ra +/* 06FC88 7F03B158 27BD00C0 */ addiu $sp, $sp, 0xc0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03B15C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03B15C +/* 06FC8C 7F03B15C 27BDFA88 */ addiu $sp, $sp, -0x578 +/* 06FC90 7F03B160 AFBF0034 */ sw $ra, 0x34($sp) +/* 06FC94 7F03B164 AFB00028 */ sw $s0, 0x28($sp) +/* 06FC98 7F03B168 00808025 */ move $s0, $a0 +/* 06FC9C 7F03B16C AFB20030 */ sw $s2, 0x30($sp) +/* 06FCA0 7F03B170 AFB1002C */ sw $s1, 0x2c($sp) +/* 06FCA4 7F03B174 AFA0056C */ sw $zero, 0x56c($sp) +/* 06FCA8 7F03B178 AFA0055C */ sw $zero, 0x55c($sp) +/* 06FCAC 7F03B17C AFA00554 */ sw $zero, 0x554($sp) +/* 06FCB0 7F03B180 0FC225E6 */ jal get_curplayer_positiondata +/* 06FCB4 7F03B184 AFA00544 */ sw $zero, 0x544($sp) +/* 06FCB8 7F03B188 8C4E0014 */ lw $t6, 0x14($v0) +/* 06FCBC 7F03B18C 27B20194 */ addiu $s2, $sp, 0x194 +/* 06FCC0 7F03B190 00408825 */ move $s1, $v0 +/* 06FCC4 7F03B194 AFA0018C */ sw $zero, 0x18c($sp) +/* 06FCC8 7F03B198 02402025 */ move $a0, $s2 +/* 06FCCC 7F03B19C 27A501A0 */ addiu $a1, $sp, 0x1a0 +/* 06FCD0 7F03B1A0 02003025 */ move $a2, $s0 +/* 06FCD4 7F03B1A4 0FC1A073 */ jal sub_GAME_7F0681CC +/* 06FCD8 7F03B1A8 AFAE04F8 */ sw $t6, 0x4f8($sp) +/* 06FCDC 7F03B1AC 0FC17674 */ jal get_item_in_hand +/* 06FCE0 7F03B1B0 02002025 */ move $a0, $s0 +/* 06FCE4 7F03B1B4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06FCE8 7F03B1B8 44812000 */ mtc1 $at, $f4 +/* 06FCEC 7F03B1BC AFA201AC */ sw $v0, 0x1ac($sp) +/* 06FCF0 7F03B1C0 27A204B4 */ addiu $v0, $sp, 0x4b4 +/* 06FCF4 7F03B1C4 AFA001D0 */ sw $zero, 0x1d0($sp) +/* 06FCF8 7F03B1C8 AFA001D4 */ sw $zero, 0x1d4($sp) +/* 06FCFC 7F03B1CC AFA001D8 */ sw $zero, 0x1d8($sp) +/* 06FD00 7F03B1D0 AFA00220 */ sw $zero, 0x220($sp) +/* 06FD04 7F03B1D4 AFA00224 */ sw $zero, 0x224($sp) +/* 06FD08 7F03B1D8 AFA00228 */ sw $zero, 0x228($sp) +/* 06FD0C 7F03B1DC 27B00234 */ addiu $s0, $sp, 0x234 +/* 06FD10 7F03B1E0 E7A401C8 */ swc1 $f4, 0x1c8($sp) +.L7F03B1E4: +/* 06FD14 7F03B1E4 26100140 */ addiu $s0, $s0, 0x140 +/* 06FD18 7F03B1E8 AE00FF4C */ sw $zero, -0xb4($s0) +/* 06FD1C 7F03B1EC AE00FF50 */ sw $zero, -0xb0($s0) +/* 06FD20 7F03B1F0 AE00FF54 */ sw $zero, -0xac($s0) +/* 06FD24 7F03B1F4 AE00FF9C */ sw $zero, -0x64($s0) +/* 06FD28 7F03B1F8 AE00FFA0 */ sw $zero, -0x60($s0) +/* 06FD2C 7F03B1FC AE00FFA4 */ sw $zero, -0x5c($s0) +/* 06FD30 7F03B200 AE00FFEC */ sw $zero, -0x14($s0) +/* 06FD34 7F03B204 AE00FFF0 */ sw $zero, -0x10($s0) +/* 06FD38 7F03B208 AE00FFF4 */ sw $zero, -0xc($s0) +/* 06FD3C 7F03B20C AE00FEFC */ sw $zero, -0x104($s0) +/* 06FD40 7F03B210 AE00FF00 */ sw $zero, -0x100($s0) +/* 06FD44 7F03B214 1602FFF3 */ bne $s0, $v0, .L7F03B1E4 +/* 06FD48 7F03B218 AE00FF04 */ sw $zero, -0xfc($s0) +/* 06FD4C 7F03B21C C7A60194 */ lwc1 $f6, 0x194($sp) +/* 06FD50 7F03B220 C7A80198 */ lwc1 $f8, 0x198($sp) +/* 06FD54 7F03B224 C7AA019C */ lwc1 $f10, 0x19c($sp) +/* 06FD58 7F03B228 E7A601B0 */ swc1 $f6, 0x1b0($sp) +/* 06FD5C 7F03B22C E7A801B4 */ swc1 $f8, 0x1b4($sp) +/* 06FD60 7F03B230 0FC1E111 */ jal sub_GAME_7F078444 +/* 06FD64 7F03B234 E7AA01B8 */ swc1 $f10, 0x1b8($sp) +/* 06FD68 7F03B238 00402025 */ move $a0, $v0 +/* 06FD6C 7F03B23C 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 06FD70 7F03B240 27A501B0 */ addiu $a1, $sp, 0x1b0 +/* 06FD74 7F03B244 C7B001A0 */ lwc1 $f16, 0x1a0($sp) +/* 06FD78 7F03B248 C7B201A4 */ lwc1 $f18, 0x1a4($sp) +/* 06FD7C 7F03B24C C7A401A8 */ lwc1 $f4, 0x1a8($sp) +/* 06FD80 7F03B250 E7B001BC */ swc1 $f16, 0x1bc($sp) +/* 06FD84 7F03B254 E7B201C0 */ swc1 $f18, 0x1c0($sp) +/* 06FD88 7F03B258 0FC1E111 */ jal sub_GAME_7F078444 +/* 06FD8C 7F03B25C E7A401C4 */ swc1 $f4, 0x1c4($sp) +/* 06FD90 7F03B260 00402025 */ move $a0, $v0 +/* 06FD94 7F03B264 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 06FD98 7F03B268 27A501BC */ addiu $a1, $sp, 0x1bc +/* 06FD9C 7F03B26C 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 06FDA0 7F03B270 44810000 */ mtc1 $at, $f0 +/* 06FDA4 7F03B274 C7A601BC */ lwc1 $f6, 0x1bc($sp) +/* 06FDA8 7F03B278 C7AA01B0 */ lwc1 $f10, 0x1b0($sp) +/* 06FDAC 7F03B27C C7B201C0 */ lwc1 $f18, 0x1c0($sp) +/* 06FDB0 7F03B280 46003202 */ mul.s $f8, $f6, $f0 +/* 06FDB4 7F03B284 C7A601B4 */ lwc1 $f6, 0x1b4($sp) +/* 06FDB8 7F03B288 44075000 */ mfc1 $a3, $f10 +/* 06FDBC 7F03B28C 46009102 */ mul.s $f4, $f18, $f0 +/* 06FDC0 7F03B290 27A404F8 */ addiu $a0, $sp, 0x4f8 +/* 06FDC4 7F03B294 460A4400 */ add.s $f16, $f8, $f10 +/* 06FDC8 7F03B298 46062200 */ add.s $f8, $f4, $f6 +/* 06FDCC 7F03B29C E7B004EC */ swc1 $f16, 0x4ec($sp) +/* 06FDD0 7F03B2A0 C7B001C4 */ lwc1 $f16, 0x1c4($sp) +/* 06FDD4 7F03B2A4 C7A401B8 */ lwc1 $f4, 0x1b8($sp) +/* 06FDD8 7F03B2A8 E7A804F0 */ swc1 $f8, 0x4f0($sp) +/* 06FDDC 7F03B2AC 46008482 */ mul.s $f18, $f16, $f0 +/* 06FDE0 7F03B2B0 46049180 */ add.s $f6, $f18, $f4 +/* 06FDE4 7F03B2B4 E7A604F4 */ swc1 $f6, 0x4f4($sp) +/* 06FDE8 7F03B2B8 8E260010 */ lw $a2, 0x10($s1) +/* 06FDEC 7F03B2BC 8E250008 */ lw $a1, 8($s1) +/* 06FDF0 7F03B2C0 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 06FDF4 7F03B2C4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 06FDF8 7F03B2C8 504000B9 */ beql $v0, $zero, .L7F03B5B0 +/* 06FDFC 7F03B2CC 8FB901AC */ lw $t9, 0x1ac($sp) +/* 06FE00 7F03B2D0 0FC2D20F */ jal get_room_data_float1 +/* 06FE04 7F03B2D4 00000000 */ nop +/* 06FE08 7F03B2D8 0FC2D21E */ jal sub_GAME_7F0B4878 +/* 06FE0C 7F03B2DC E7A00048 */ swc1 $f0, 0x48($sp) +/* 06FE10 7F03B2E0 C7A20048 */ lwc1 $f2, 0x48($sp) +/* 06FE14 7F03B2E4 46020202 */ mul.s $f8, $f0, $f2 +/* 06FE18 7F03B2E8 0FC227F5 */ jal get_BONDdata_position +/* 06FE1C 7F03B2EC E7A8006C */ swc1 $f8, 0x6c($sp) +/* 06FE20 7F03B2F0 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 06FE24 7F03B2F4 00408025 */ move $s0, $v0 +/* 06FE28 7F03B2F8 C7B004F4 */ lwc1 $f16, 0x4f4($sp) +/* 06FE2C 7F03B2FC 27A404F8 */ addiu $a0, $sp, 0x4f8 +/* 06FE30 7F03B300 8FA501B0 */ lw $a1, 0x1b0($sp) +/* 06FE34 7F03B304 8FA601B8 */ lw $a2, 0x1b8($sp) +/* 06FE38 7F03B308 8FA704EC */ lw $a3, 0x4ec($sp) +/* 06FE3C 7F03B30C 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 06FE40 7F03B310 E7B00010 */ swc1 $f16, 0x10($sp) +/* 06FE44 7F03B314 14400008 */ bnez $v0, .L7F03B338 +/* 06FE48 7F03B318 C7B204EC */ lwc1 $f18, 0x4ec($sp) +/* 06FE4C 7F03B31C 27A401B0 */ addiu $a0, $sp, 0x1b0 +/* 06FE50 7F03B320 27A501BC */ addiu $a1, $sp, 0x1bc +/* 06FE54 7F03B324 0FC09893 */ jal sub_GAME_7F02624C +/* 06FE58 7F03B328 27A60560 */ addiu $a2, $sp, 0x560 +/* 06FE5C 7F03B32C 240F0001 */ li $t7, 1 +/* 06FE60 7F03B330 10000006 */ b .L7F03B34C +/* 06FE64 7F03B334 AFAF056C */ sw $t7, 0x56c($sp) +.L7F03B338: +/* 06FE68 7F03B338 C7A604F0 */ lwc1 $f6, 0x4f0($sp) +/* 06FE6C 7F03B33C C7AA04F4 */ lwc1 $f10, 0x4f4($sp) +/* 06FE70 7F03B340 E7B20560 */ swc1 $f18, 0x560($sp) +/* 06FE74 7F03B344 E7A60564 */ swc1 $f6, 0x564($sp) +/* 06FE78 7F03B348 E7AA0568 */ swc1 $f10, 0x568($sp) +.L7F03B34C: +/* 06FE7C 7F03B34C C7A40560 */ lwc1 $f4, 0x560($sp) +/* 06FE80 7F03B350 C6080000 */ lwc1 $f8, ($s0) +/* 06FE84 7F03B354 C7B20564 */ lwc1 $f18, 0x564($sp) +/* 06FE88 7F03B358 C7A0006C */ lwc1 $f0, 0x6c($sp) +/* 06FE8C 7F03B35C 46082401 */ sub.s $f16, $f4, $f8 +/* 06FE90 7F03B360 C7A40568 */ lwc1 $f4, 0x568($sp) +/* 06FE94 7F03B364 8FA404F8 */ lw $a0, 0x4f8($sp) +/* 06FE98 7F03B368 E7B00070 */ swc1 $f16, 0x70($sp) +/* 06FE9C 7F03B36C C6060004 */ lwc1 $f6, 4($s0) +/* 06FEA0 7F03B370 46069281 */ sub.s $f10, $f18, $f6 +/* 06FEA4 7F03B374 E7AA0074 */ swc1 $f10, 0x74($sp) +/* 06FEA8 7F03B378 C6080008 */ lwc1 $f8, 8($s0) +/* 06FEAC 7F03B37C 46082401 */ sub.s $f16, $f4, $f8 +/* 06FEB0 7F03B380 E7B00078 */ swc1 $f16, 0x78($sp) +/* 06FEB4 7F03B384 C6120000 */ lwc1 $f18, ($s0) +/* 06FEB8 7F03B388 46009182 */ mul.s $f6, $f18, $f0 +/* 06FEBC 7F03B38C E7A6007C */ swc1 $f6, 0x7c($sp) +/* 06FEC0 7F03B390 C60A0004 */ lwc1 $f10, 4($s0) +/* 06FEC4 7F03B394 46005102 */ mul.s $f4, $f10, $f0 +/* 06FEC8 7F03B398 E7A40080 */ swc1 $f4, 0x80($sp) +/* 06FECC 7F03B39C C6080008 */ lwc1 $f8, 8($s0) +/* 06FED0 7F03B3A0 AFA4055C */ sw $a0, 0x55c($sp) +/* 06FED4 7F03B3A4 46004402 */ mul.s $f16, $f8, $f0 +/* 06FED8 7F03B3A8 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 06FEDC 7F03B3AC E7B00084 */ swc1 $f16, 0x84($sp) +/* 06FEE0 7F03B3B0 00408825 */ move $s1, $v0 +/* 06FEE4 7F03B3B4 27A2018C */ addiu $v0, $sp, 0x18c +/* 06FEE8 7F03B3B8 27A3008C */ addiu $v1, $sp, 0x8c +.L7F03B3BC: +/* 06FEEC 7F03B3BC 24630004 */ addiu $v1, $v1, 4 +/* 06FEF0 7F03B3C0 A060FFFD */ sb $zero, -3($v1) +/* 06FEF4 7F03B3C4 A060FFFE */ sb $zero, -2($v1) +/* 06FEF8 7F03B3C8 A060FFFF */ sb $zero, -1($v1) +/* 06FEFC 7F03B3CC 1462FFFB */ bne $v1, $v0, .L7F03B3BC +/* 06FF00 7F03B3D0 A060FFFC */ sb $zero, -4($v1) +/* 06FF04 7F03B3D4 02002025 */ move $a0, $s0 +/* 06FF08 7F03B3D8 27A50560 */ addiu $a1, $sp, 0x560 +/* 06FF0C 7F03B3DC 02203025 */ move $a2, $s1 +/* 06FF10 7F03B3E0 0FC2DE9E */ jal sub_GAME_7F0B7A78 +/* 06FF14 7F03B3E4 27A70510 */ addiu $a3, $sp, 0x510 +/* 06FF18 7F03B3E8 10400002 */ beqz $v0, .L7F03B3F4 +/* 06FF1C 7F03B3EC 24190001 */ li $t9, 1 +/* 06FF20 7F03B3F0 AFB10544 */ sw $s1, 0x544($sp) +.L7F03B3F4: +/* 06FF24 7F03B3F4 03B14021 */ addu $t0, $sp, $s1 +/* 06FF28 7F03B3F8 A119008C */ sb $t9, 0x8c($t0) +/* 06FF2C 7F03B3FC 8FA90544 */ lw $t1, 0x544($sp) +/* 06FF30 7F03B400 3C0A8008 */ lui $t2, %hi(ptr_bgdata_portals) +/* 06FF34 7F03B404 5D200027 */ bgtzl $t1, .L7F03B4A4 +/* 06FF38 7F03B408 8FA80544 */ lw $t0, 0x544($sp) +/* 06FF3C 7F03B40C 8D4AFF80 */ lw $t2, %lo(ptr_bgdata_portals)($t2) +/* 06FF40 7F03B410 8D4B0000 */ lw $t3, ($t2) +/* 06FF44 7F03B414 11600012 */ beqz $t3, .L7F03B460 +/* 06FF48 7F03B418 00000000 */ nop +/* 06FF4C 7F03B41C 0FC225E6 */ jal get_curplayer_positiondata +/* 06FF50 7F03B420 00000000 */ nop +/* 06FF54 7F03B424 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 06FF58 7F03B428 8C440014 */ lw $a0, 0x14($v0) +/* 06FF5C 7F03B42C 27AC007C */ addiu $t4, $sp, 0x7c +/* 06FF60 7F03B430 27AD008C */ addiu $t5, $sp, 0x8c +/* 06FF64 7F03B434 27AE0510 */ addiu $t6, $sp, 0x510 +/* 06FF68 7F03B438 AFAE0018 */ sw $t6, 0x18($sp) +/* 06FF6C 7F03B43C AFAD0014 */ sw $t5, 0x14($sp) +/* 06FF70 7F03B440 AFAC0010 */ sw $t4, 0x10($sp) +/* 06FF74 7F03B444 00402025 */ move $a0, $v0 +/* 06FF78 7F03B448 02002825 */ move $a1, $s0 +/* 06FF7C 7F03B44C 27A60560 */ addiu $a2, $sp, 0x560 +/* 06FF80 7F03B450 0FC0EB7D */ jal sub_GAME_7F03ADF4 +/* 06FF84 7F03B454 27A70070 */ addiu $a3, $sp, 0x70 +/* 06FF88 7F03B458 10000011 */ b .L7F03B4A0 +/* 06FF8C 7F03B45C AFA20544 */ sw $v0, 0x544($sp) +.L7F03B460: +/* 06FF90 7F03B460 0FC225E6 */ jal get_curplayer_positiondata +/* 06FF94 7F03B464 00000000 */ nop +/* 06FF98 7F03B468 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 06FF9C 7F03B46C 8C440014 */ lw $a0, 0x14($v0) +/* 06FFA0 7F03B470 27AF007C */ addiu $t7, $sp, 0x7c +/* 06FFA4 7F03B474 27B8008C */ addiu $t8, $sp, 0x8c +/* 06FFA8 7F03B478 27B90510 */ addiu $t9, $sp, 0x510 +/* 06FFAC 7F03B47C AFB90018 */ sw $t9, 0x18($sp) +/* 06FFB0 7F03B480 AFB80014 */ sw $t8, 0x14($sp) +/* 06FFB4 7F03B484 AFAF0010 */ sw $t7, 0x10($sp) +/* 06FFB8 7F03B488 00402025 */ move $a0, $v0 +/* 06FFBC 7F03B48C 02002825 */ move $a1, $s0 +/* 06FFC0 7F03B490 27A60560 */ addiu $a2, $sp, 0x560 +/* 06FFC4 7F03B494 0FC0EBD7 */ jal sub_GAME_7F03AF5C +/* 06FFC8 7F03B498 27A70070 */ addiu $a3, $sp, 0x70 +/* 06FFCC 7F03B49C AFA20544 */ sw $v0, 0x544($sp) +.L7F03B4A0: +/* 06FFD0 7F03B4A0 8FA80544 */ lw $t0, 0x544($sp) +.L7F03B4A4: +/* 06FFD4 7F03B4A4 5900000F */ blezl $t0, .L7F03B4E4 +/* 06FFD8 7F03B4A8 8FAB0544 */ lw $t3, 0x544($sp) +/* 06FFDC 7F03B4AC 0FC2D20C */ jal get_room_data_float2 +/* 06FFE0 7F03B4B0 00000000 */ nop +/* 06FFE4 7F03B4B4 C7B20510 */ lwc1 $f18, 0x510($sp) +/* 06FFE8 7F03B4B8 C7AA0514 */ lwc1 $f10, 0x514($sp) +/* 06FFEC 7F03B4BC C7A80518 */ lwc1 $f8, 0x518($sp) +/* 06FFF0 7F03B4C0 46009182 */ mul.s $f6, $f18, $f0 +/* 06FFF4 7F03B4C4 00000000 */ nop +/* 06FFF8 7F03B4C8 46005102 */ mul.s $f4, $f10, $f0 +/* 06FFFC 7F03B4CC 00000000 */ nop +/* 070000 7F03B4D0 46004402 */ mul.s $f16, $f8, $f0 +/* 070004 7F03B4D4 E7A60510 */ swc1 $f6, 0x510($sp) +/* 070008 7F03B4D8 E7A40514 */ swc1 $f4, 0x514($sp) +/* 07000C 7F03B4DC E7B00518 */ swc1 $f16, 0x518($sp) +/* 070010 7F03B4E0 8FAB0544 */ lw $t3, 0x544($sp) +.L7F03B4E4: +/* 070014 7F03B4E4 27A9008C */ addiu $t1, $sp, 0x8c +/* 070018 7F03B4E8 27AA0510 */ addiu $t2, $sp, 0x510 +/* 07001C 7F03B4EC AFAA0014 */ sw $t2, 0x14($sp) +/* 070020 7F03B4F0 AFA90010 */ sw $t1, 0x10($sp) +/* 070024 7F03B4F4 02002025 */ move $a0, $s0 +/* 070028 7F03B4F8 27A50560 */ addiu $a1, $sp, 0x560 +/* 07002C 7F03B4FC 27A60070 */ addiu $a2, $sp, 0x70 +/* 070030 7F03B500 27A7007C */ addiu $a3, $sp, 0x7c +/* 070034 7F03B504 0FC0EAD6 */ jal sub_GAME_7F03AB58 +/* 070038 7F03B508 AFAB0018 */ sw $t3, 0x18($sp) +/* 07003C 7F03B50C 1840000F */ blez $v0, .L7F03B54C +/* 070040 7F03B510 AFA20544 */ sw $v0, 0x544($sp) +/* 070044 7F03B514 C7B20510 */ lwc1 $f18, 0x510($sp) +/* 070048 7F03B518 87AD053A */ lh $t5, 0x53a($sp) +/* 07004C 7F03B51C C7B00514 */ lwc1 $f16, 0x514($sp) +/* 070050 7F03B520 C7AE0518 */ lwc1 $f14, 0x518($sp) +/* 070054 7F03B524 240C0001 */ li $t4, 1 +/* 070058 7F03B528 AFAC0554 */ sw $t4, 0x554($sp) +/* 07005C 7F03B52C AFAD0540 */ sw $t5, 0x540($sp) +/* 070060 7F03B530 E7B20548 */ swc1 $f18, 0x548($sp) +/* 070064 7F03B534 E7B20500 */ swc1 $f18, 0x500($sp) +/* 070068 7F03B538 E7B0054C */ swc1 $f16, 0x54c($sp) +/* 07006C 7F03B53C E7B00504 */ swc1 $f16, 0x504($sp) +/* 070070 7F03B540 E7AE0550 */ swc1 $f14, 0x550($sp) +/* 070074 7F03B544 1000000A */ b .L7F03B570 +/* 070078 7F03B548 E7AE0508 */ swc1 $f14, 0x508($sp) +.L7F03B54C: +/* 07007C 7F03B54C C7B204EC */ lwc1 $f18, 0x4ec($sp) +/* 070080 7F03B550 C7A604F0 */ lwc1 $f6, 0x4f0($sp) +/* 070084 7F03B554 C7AA04F4 */ lwc1 $f10, 0x4f4($sp) +/* 070088 7F03B558 240EFFFF */ li $t6, -1 +/* 07008C 7F03B55C AFB10544 */ sw $s1, 0x544($sp) +/* 070090 7F03B560 AFAE0540 */ sw $t6, 0x540($sp) +/* 070094 7F03B564 E7B20500 */ swc1 $f18, 0x500($sp) +/* 070098 7F03B568 E7A60504 */ swc1 $f6, 0x504($sp) +/* 07009C 7F03B56C E7AA0508 */ swc1 $f10, 0x508($sp) +.L7F03B570: +/* 0700A0 7F03B570 8FAF056C */ lw $t7, 0x56c($sp) +/* 0700A4 7F03B574 8FB80554 */ lw $t8, 0x554($sp) +/* 0700A8 7F03B578 15E00003 */ bnez $t7, .L7F03B588 +/* 0700AC 7F03B57C 00000000 */ nop +/* 0700B0 7F03B580 5300000B */ beql $t8, $zero, .L7F03B5B0 +/* 0700B4 7F03B584 8FB901AC */ lw $t9, 0x1ac($sp) +.L7F03B588: +/* 0700B8 7F03B588 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0700BC 7F03B58C 00000000 */ nop +/* 0700C0 7F03B590 00402025 */ move $a0, $v0 +/* 0700C4 7F03B594 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 0700C8 7F03B598 27A50500 */ addiu $a1, $sp, 0x500 +/* 0700CC 7F03B59C C7A40508 */ lwc1 $f4, 0x508($sp) +/* 0700D0 7F03B5A0 46002207 */ neg.s $f8, $f4 +/* 0700D4 7F03B5A4 E7A8050C */ swc1 $f8, 0x50c($sp) +/* 0700D8 7F03B5A8 E7A801C8 */ swc1 $f8, 0x1c8($sp) +/* 0700DC 7F03B5AC 8FB901AC */ lw $t9, 0x1ac($sp) +.L7F03B5B0: +/* 0700E0 7F03B5B0 24010017 */ li $at, 23 +/* 0700E4 7F03B5B4 C7B201C8 */ lwc1 $f18, 0x1c8($sp) +/* 0700E8 7F03B5B8 1721000B */ bne $t9, $at, .L7F03B5E8 +/* 0700EC 7F03B5BC 3C118007 */ lui $s1, %hi(dword_CODE_bss_80071DF0) +/* 0700F0 7F03B5C0 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0700F4 7F03B5C4 44818000 */ mtc1 $at, $f16 +/* 0700F8 7F03B5C8 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0700FC 7F03B5CC 4612803C */ c.lt.s $f16, $f18 +/* 070100 7F03B5D0 00000000 */ nop +/* 070104 7F03B5D4 45000004 */ bc1f .L7F03B5E8 +/* 070108 7F03B5D8 00000000 */ nop +/* 07010C 7F03B5DC 44813000 */ mtc1 $at, $f6 +/* 070110 7F03B5E0 00000000 */ nop +/* 070114 7F03B5E4 E7A601C8 */ swc1 $f6, 0x1c8($sp) +.L7F03B5E8: +/* 070118 7F03B5E8 8E311DF0 */ lw $s1, %lo(dword_CODE_bss_80071DF0)($s1) +/* 07011C 7F03B5EC 3C088007 */ lui $t0, %hi(dword_CODE_bss_80071620) +/* 070120 7F03B5F0 25081620 */ addiu $t0, %lo(dword_CODE_bss_80071620) # addiu $t0, $t0, 0x1620 +/* 070124 7F03B5F4 2631FFFC */ addiu $s1, $s1, -4 +/* 070128 7F03B5F8 0228082B */ sltu $at, $s1, $t0 +/* 07012C 7F03B5FC 5420002A */ bnezl $at, .L7F03B6A8 +/* 070130 7F03B600 27B00194 */ addiu $s0, $sp, 0x194 +/* 070134 7F03B604 8E300000 */ lw $s0, ($s1) +.L7F03B608: +/* 070138 7F03B608 12000020 */ beqz $s0, .L7F03B68C +/* 07013C 7F03B60C 00000000 */ nop +/* 070140 7F03B610 92020000 */ lbu $v0, ($s0) +/* 070144 7F03B614 24010003 */ li $at, 3 +/* 070148 7F03B618 1041000C */ beq $v0, $at, .L7F03B64C +/* 07014C 7F03B61C 24010006 */ li $at, 6 +/* 070150 7F03B620 54410010 */ bnel $v0, $at, .L7F03B664 +/* 070154 7F03B624 92020000 */ lbu $v0, ($s0) +/* 070158 7F03B628 8E090004 */ lw $t1, 4($s0) +/* 07015C 7F03B62C 5120000D */ beql $t1, $zero, .L7F03B664 +/* 070160 7F03B630 92020000 */ lbu $v0, ($s0) +/* 070164 7F03B634 0FC26C57 */ jal sub_GAME_7F09B15C +/* 070168 7F03B638 02002025 */ move $a0, $s0 +/* 07016C 7F03B63C 0FC26C54 */ jal get_cur_playernum +/* 070170 7F03B640 AFA2004C */ sw $v0, 0x4c($sp) +/* 070174 7F03B644 8FAA004C */ lw $t2, 0x4c($sp) +/* 070178 7F03B648 104A0005 */ beq $v0, $t2, .L7F03B660 +.L7F03B64C: +/* 07017C 7F03B64C 02002025 */ move $a0, $s0 +/* 070180 7F03B650 0FC08992 */ jal sub_GAME_7F022648 +/* 070184 7F03B654 02402825 */ move $a1, $s2 +/* 070188 7F03B658 1000000C */ b .L7F03B68C +/* 07018C 7F03B65C 00000000 */ nop +.L7F03B660: +/* 070190 7F03B660 92020000 */ lbu $v0, ($s0) +.L7F03B664: +/* 070194 7F03B664 24010001 */ li $at, 1 +/* 070198 7F03B668 02002025 */ move $a0, $s0 +/* 07019C 7F03B66C 10410005 */ beq $v0, $at, .L7F03B684 +/* 0701A0 7F03B670 24010004 */ li $at, 4 +/* 0701A4 7F03B674 10410003 */ beq $v0, $at, .L7F03B684 +/* 0701A8 7F03B678 24010002 */ li $at, 2 +/* 0701AC 7F03B67C 14410003 */ bne $v0, $at, .L7F03B68C +/* 0701B0 7F03B680 00000000 */ nop +.L7F03B684: +/* 0701B4 7F03B684 0FC13A6F */ jal sub_GAME_7F04E9BC +/* 0701B8 7F03B688 02402825 */ move $a1, $s2 +.L7F03B68C: +/* 0701BC 7F03B68C 3C0B8007 */ lui $t3, %hi(dword_CODE_bss_80071620) +/* 0701C0 7F03B690 256B1620 */ addiu $t3, %lo(dword_CODE_bss_80071620) # addiu $t3, $t3, 0x1620 +/* 0701C4 7F03B694 2631FFFC */ addiu $s1, $s1, -4 +/* 0701C8 7F03B698 022B082B */ sltu $at, $s1, $t3 +/* 0701CC 7F03B69C 5020FFDA */ beql $at, $zero, .L7F03B608 +/* 0701D0 7F03B6A0 8E300000 */ lw $s0, ($s1) +/* 0701D4 7F03B6A4 27B00194 */ addiu $s0, $sp, 0x194 +.L7F03B6A8: +/* 0701D8 7F03B6A8 27B104B4 */ addiu $s1, $sp, 0x4b4 +/* 0701DC 7F03B6AC 8E03003C */ lw $v1, 0x3c($s0) +.L7F03B6B0: +/* 0701E0 7F03B6B0 50600024 */ beql $v1, $zero, .L7F03B744 +/* 0701E4 7F03B6B4 26100050 */ addiu $s0, $s0, 0x50 +/* 0701E8 7F03B6B8 90620000 */ lbu $v0, ($v1) +/* 0701EC 7F03B6BC 24010003 */ li $at, 3 +/* 0701F0 7F03B6C0 02402025 */ move $a0, $s2 +/* 0701F4 7F03B6C4 10410003 */ beq $v0, $at, .L7F03B6D4 +/* 0701F8 7F03B6C8 24010006 */ li $at, 6 +/* 0701FC 7F03B6CC 54410006 */ bnel $v0, $at, .L7F03B6E8 +/* 070200 7F03B6D0 24010001 */ li $at, 1 +.L7F03B6D4: +/* 070204 7F03B6D4 0FC08A60 */ jal sub_GAME_7F022980 +/* 070208 7F03B6D8 26050038 */ addiu $a1, $s0, 0x38 +/* 07020C 7F03B6DC 1000000C */ b .L7F03B710 +/* 070210 7F03B6E0 8E0C0084 */ lw $t4, 0x84($s0) +/* 070214 7F03B6E4 24010001 */ li $at, 1 +.L7F03B6E8: +/* 070218 7F03B6E8 10410006 */ beq $v0, $at, .L7F03B704 +/* 07021C 7F03B6EC 02402025 */ move $a0, $s2 +/* 070220 7F03B6F0 24010004 */ li $at, 4 +/* 070224 7F03B6F4 10410003 */ beq $v0, $at, .L7F03B704 +/* 070228 7F03B6F8 24010002 */ li $at, 2 +/* 07022C 7F03B6FC 54410004 */ bnel $v0, $at, .L7F03B710 +/* 070230 7F03B700 8E0C0084 */ lw $t4, 0x84($s0) +.L7F03B704: +/* 070234 7F03B704 0FC13A9A */ jal sub_GAME_7F04EA68 +/* 070238 7F03B708 26050038 */ addiu $a1, $s0, 0x38 +/* 07023C 7F03B70C 8E0C0084 */ lw $t4, 0x84($s0) +.L7F03B710: +/* 070240 7F03B710 8FAD018C */ lw $t5, 0x18c($sp) +/* 070244 7F03B714 1180000A */ beqz $t4, .L7F03B740 +/* 070248 7F03B718 25AE0001 */ addiu $t6, $t5, 1 +/* 07024C 7F03B71C AFAE018C */ sw $t6, 0x18c($sp) +/* 070250 7F03B720 0FC1780E */ jal bondwalkItemGetShootThroughFlag +/* 070254 7F03B724 8FA401AC */ lw $a0, 0x1ac($sp) +/* 070258 7F03B728 8FAF018C */ lw $t7, 0x18c($sp) +/* 07025C 7F03B72C 01E2082A */ slt $at, $t7, $v0 +/* 070260 7F03B730 54200004 */ bnezl $at, .L7F03B744 +/* 070264 7F03B734 26100050 */ addiu $s0, $s0, 0x50 +/* 070268 7F03B738 AFA00554 */ sw $zero, 0x554($sp) +/* 07026C 7F03B73C AFA0056C */ sw $zero, 0x56c($sp) +.L7F03B740: +/* 070270 7F03B740 26100050 */ addiu $s0, $s0, 0x50 +.L7F03B744: +/* 070274 7F03B744 5611FFDA */ bnel $s0, $s1, .L7F03B6B0 +/* 070278 7F03B748 8E03003C */ lw $v1, 0x3c($s0) +/* 07027C 7F03B74C 8FB80554 */ lw $t8, 0x554($sp) +/* 070280 7F03B750 8FB9056C */ lw $t9, 0x56c($sp) +/* 070284 7F03B754 8FA801AC */ lw $t0, 0x1ac($sp) +/* 070288 7F03B758 17000002 */ bnez $t8, .L7F03B764 +/* 07028C 7F03B75C 24010017 */ li $at, 23 +/* 070290 7F03B760 13200091 */ beqz $t9, .L7F03B9A8 +.L7F03B764: +/* 070294 7F03B764 00008025 */ move $s0, $zero +/* 070298 7F03B768 15010009 */ bne $t0, $at, .L7F03B790 +/* 07029C 7F03B76C 24110001 */ li $s1, 1 +/* 0702A0 7F03B770 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0702A4 7F03B774 44815000 */ mtc1 $at, $f10 +/* 0702A8 7F03B778 C7A4050C */ lwc1 $f4, 0x50c($sp) +/* 0702AC 7F03B77C 4604503C */ c.lt.s $f10, $f4 +/* 0702B0 7F03B780 00000000 */ nop +/* 0702B4 7F03B784 45020003 */ bc1fl .L7F03B794 +/* 0702B8 7F03B788 8FA90554 */ lw $t1, 0x554($sp) +/* 0702BC 7F03B78C 00008825 */ move $s1, $zero +.L7F03B790: +/* 0702C0 7F03B790 8FA90554 */ lw $t1, 0x554($sp) +.L7F03B794: +/* 0702C4 7F03B794 87AA053A */ lh $t2, 0x53a($sp) +/* 0702C8 7F03B798 8FAC056C */ lw $t4, 0x56c($sp) +/* 0702CC 7F03B79C 11200034 */ beqz $t1, .L7F03B870 +/* 0702D0 7F03B7A0 00000000 */ nop +/* 0702D4 7F03B7A4 05410004 */ bgez $t2, .L7F03B7B8 +/* 0702D8 7F03B7A8 87AB053A */ lh $t3, 0x53a($sp) +/* 0702DC 7F03B7AC 3C108005 */ lui $s0, %hi(D_8004E86C) +/* 0702E0 7F03B7B0 1000000A */ b .L7F03B7DC +/* 0702E4 7F03B7B4 8E10E86C */ lw $s0, %lo(D_8004E86C)($s0) +.L7F03B7B8: +/* 0702E8 7F03B7B8 000B60C0 */ sll $t4, $t3, 3 +/* 0702EC 7F03B7BC 3C0D8005 */ lui $t5, %hi(image_entries) +/* 0702F0 7F03B7C0 01AC6821 */ addu $t5, $t5, $t4 +/* 0702F4 7F03B7C4 91AD9300 */ lbu $t5, %lo(image_entries)($t5) +/* 0702F8 7F03B7C8 3C108005 */ lui $s0, %hi(D_8004E86C) +/* 0702FC 7F03B7CC 31AE000F */ andi $t6, $t5, 0xf +/* 070300 7F03B7D0 000E7880 */ sll $t7, $t6, 2 +/* 070304 7F03B7D4 020F8021 */ addu $s0, $s0, $t7 +/* 070308 7F03B7D8 8E10E86C */ lw $s0, %lo(D_8004E86C)($s0) +.L7F03B7DC: +/* 07030C 7F03B7DC 12200022 */ beqz $s1, .L7F03B868 +/* 070310 7F03B7E0 00000000 */ nop +/* 070314 7F03B7E4 8618000A */ lh $t8, 0xa($s0) +/* 070318 7F03B7E8 8FB901AC */ lw $t9, 0x1ac($sp) +/* 07031C 7F03B7EC 24010017 */ li $at, 23 +/* 070320 7F03B7F0 1B000016 */ blez $t8, .L7F03B84C +/* 070324 7F03B7F4 00000000 */ nop +/* 070328 7F03B7F8 13210014 */ beq $t9, $at, .L7F03B84C +/* 07032C 7F03B7FC 00000000 */ nop +/* 070330 7F03B800 0C002914 */ jal get_random_value +/* 070334 7F03B804 00000000 */ nop +/* 070338 7F03B808 8608000A */ lh $t0, 0xa($s0) +/* 07033C 7F03B80C 8E090004 */ lw $t1, 4($s0) +/* 070340 7F03B810 240BFFFF */ li $t3, -1 +/* 070344 7F03B814 0048001B */ divu $zero, $v0, $t0 +/* 070348 7F03B818 00001810 */ mfhi $v1 +/* 07034C 7F03B81C 01235021 */ addu $t2, $t1, $v1 +/* 070350 7F03B820 91460000 */ lbu $a2, ($t2) +/* 070354 7F03B824 15000002 */ bnez $t0, .L7F03B830 +/* 070358 7F03B828 00000000 */ nop +/* 07035C 7F03B82C 0007000D */ break 7 +.L7F03B830: +/* 070360 7F03B830 AFA00018 */ sw $zero, 0x18($sp) +/* 070364 7F03B834 AFAB0014 */ sw $t3, 0x14($sp) +/* 070368 7F03B838 AFA00010 */ sw $zero, 0x10($sp) +/* 07036C 7F03B83C 27A40548 */ addiu $a0, $sp, 0x548 +/* 070370 7F03B840 27A5051C */ addiu $a1, $sp, 0x51c +/* 070374 7F03B844 0FC28423 */ jal sub_GAME_7F0A108C +/* 070378 7F03B848 87A70546 */ lh $a3, 0x546($sp) +.L7F03B84C: +/* 07037C 7F03B84C 0FC2ED8C */ jal check_if_imageID_is_light +/* 070380 7F03B850 87A4053A */ lh $a0, 0x53a($sp) +/* 070384 7F03B854 10400004 */ beqz $v0, .L7F03B868 +/* 070388 7F03B858 8FA40534 */ lw $a0, 0x534($sp) +/* 07038C 7F03B85C 87A50538 */ lh $a1, 0x538($sp) +/* 070390 7F03B860 0FC2EF83 */ jal sub_GAME_7F0BBE0C +/* 070394 7F03B864 8FA60544 */ lw $a2, 0x544($sp) +.L7F03B868: +/* 070398 7F03B868 10000014 */ b .L7F03B8BC +/* 07039C 7F03B86C 27B00548 */ addiu $s0, $sp, 0x548 +.L7F03B870: +/* 0703A0 7F03B870 11800012 */ beqz $t4, .L7F03B8BC +/* 0703A4 7F03B874 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0703A8 7F03B878 44810000 */ mtc1 $at, $f0 +/* 0703AC 7F03B87C C7A801BC */ lwc1 $f8, 0x1bc($sp) +/* 0703B0 7F03B880 C7B201B0 */ lwc1 $f18, 0x1b0($sp) +/* 0703B4 7F03B884 C7AA01C0 */ lwc1 $f10, 0x1c0($sp) +/* 0703B8 7F03B888 46004402 */ mul.s $f16, $f8, $f0 +/* 0703BC 7F03B88C C7A801B4 */ lwc1 $f8, 0x1b4($sp) +/* 0703C0 7F03B890 27B00560 */ addiu $s0, $sp, 0x560 +/* 0703C4 7F03B894 46005102 */ mul.s $f4, $f10, $f0 +/* 0703C8 7F03B898 C7AA01B8 */ lwc1 $f10, 0x1b8($sp) +/* 0703CC 7F03B89C 46128180 */ add.s $f6, $f16, $f18 +/* 0703D0 7F03B8A0 C7B201C4 */ lwc1 $f18, 0x1c4($sp) +/* 0703D4 7F03B8A4 46082400 */ add.s $f16, $f4, $f8 +/* 0703D8 7F03B8A8 E7A60560 */ swc1 $f6, 0x560($sp) +/* 0703DC 7F03B8AC 46009182 */ mul.s $f6, $f18, $f0 +/* 0703E0 7F03B8B0 E7B00564 */ swc1 $f16, 0x564($sp) +/* 0703E4 7F03B8B4 460A3100 */ add.s $f4, $f6, $f10 +/* 0703E8 7F03B8B8 E7A40568 */ swc1 $f4, 0x568($sp) +.L7F03B8BC: +/* 0703EC 7F03B8BC 5200003B */ beql $s0, $zero, .L7F03B9AC +/* 0703F0 7F03B8C0 8FBF0034 */ lw $ra, 0x34($sp) +/* 0703F4 7F03B8C4 1220001D */ beqz $s1, .L7F03B93C +/* 0703F8 7F03B8C8 8FA401AC */ lw $a0, 0x1ac($sp) +/* 0703FC 7F03B8CC 02002825 */ move $a1, $s0 +/* 070400 7F03B8D0 0FC191DD */ jal recall_joy2_hits_edit_flag +/* 070404 7F03B8D4 8FA60540 */ lw $a2, 0x540($sp) +/* 070408 7F03B8D8 8FAD0540 */ lw $t5, 0x540($sp) +/* 07040C 7F03B8DC 3C028005 */ lui $v0, %hi(image_entries) +/* 070410 7F03B8E0 24010005 */ li $at, 5 +/* 070414 7F03B8E4 000D70C0 */ sll $t6, $t5, 3 +/* 070418 7F03B8E8 004E1021 */ addu $v0, $v0, $t6 +/* 07041C 7F03B8EC 90429300 */ lbu $v0, %lo(image_entries)($v0) +/* 070420 7F03B8F0 304F000F */ andi $t7, $v0, 0xf +/* 070424 7F03B8F4 11E10011 */ beq $t7, $at, .L7F03B93C +/* 070428 7F03B8F8 24010006 */ li $at, 6 +/* 07042C 7F03B8FC 11E1000F */ beq $t7, $at, .L7F03B93C +/* 070430 7F03B900 8FB80544 */ lw $t8, 0x544($sp) +/* 070434 7F03B904 241900FF */ li $t9, 255 +/* 070438 7F03B908 A3B80050 */ sb $t8, 0x50($sp) +/* 07043C 7F03B90C 0FC26C54 */ jal get_cur_playernum +/* 070440 7F03B910 A3B90051 */ sb $t9, 0x51($sp) +/* 070444 7F03B914 27A80050 */ addiu $t0, $sp, 0x50 +/* 070448 7F03B918 AFA80018 */ sw $t0, 0x18($sp) +/* 07044C 7F03B91C 00002025 */ move $a0, $zero +/* 070450 7F03B920 02002825 */ move $a1, $s0 +/* 070454 7F03B924 8FA6055C */ lw $a2, 0x55c($sp) +/* 070458 7F03B928 24070001 */ li $a3, 1 +/* 07045C 7F03B92C AFA00010 */ sw $zero, 0x10($sp) +/* 070460 7F03B930 AFA20014 */ sw $v0, 0x14($sp) +/* 070464 7F03B934 0FC27094 */ jal sub_GAME_7F09C250 +/* 070468 7F03B938 AFA0001C */ sw $zero, 0x1c($sp) +.L7F03B93C: +/* 07046C 7F03B93C 3C0141D0 */ li $at, 0x41D00000 # 26.000000 +/* 070470 7F03B940 44810000 */ mtc1 $at, $f0 +/* 070474 7F03B944 C7B001BC */ lwc1 $f16, 0x1bc($sp) +/* 070478 7F03B948 C6080000 */ lwc1 $f8, ($s0) +/* 07047C 7F03B94C C60A0004 */ lwc1 $f10, 4($s0) +/* 070480 7F03B950 46100482 */ mul.s $f18, $f0, $f16 +/* 070484 7F03B954 02002025 */ move $a0, $s0 +/* 070488 7F03B958 46124181 */ sub.s $f6, $f8, $f18 +/* 07048C 7F03B95C C6120008 */ lwc1 $f18, 8($s0) +/* 070490 7F03B960 E6060000 */ swc1 $f6, ($s0) +/* 070494 7F03B964 C7A401C0 */ lwc1 $f4, 0x1c0($sp) +/* 070498 7F03B968 46040402 */ mul.s $f16, $f0, $f4 +/* 07049C 7F03B96C 46105201 */ sub.s $f8, $f10, $f16 +/* 0704A0 7F03B970 E6080004 */ swc1 $f8, 4($s0) +/* 0704A4 7F03B974 C7A601C4 */ lwc1 $f6, 0x1c4($sp) +/* 0704A8 7F03B978 46060102 */ mul.s $f4, $f0, $f6 +/* 0704AC 7F03B97C 46049281 */ sub.s $f10, $f18, $f4 +/* 0704B0 7F03B980 0FC19ED3 */ jal sub_GAME_7F067B4C +/* 0704B4 7F03B984 E60A0008 */ swc1 $f10, 8($s0) +/* 0704B8 7F03B988 3C0141D0 */ li $at, 0x41D00000 # 26.000000 +/* 0704BC 7F03B98C 44810000 */ mtc1 $at, $f0 +/* 0704C0 7F03B990 12200005 */ beqz $s1, .L7F03B9A8 +/* 0704C4 7F03B994 02002025 */ move $a0, $s0 +/* 0704C8 7F03B998 44060000 */ mfc1 $a2, $f0 +/* 0704CC 7F03B99C 24050001 */ li $a1, 1 +/* 0704D0 7F03B9A0 0FC28F87 */ jal sub_GAME_7F0A3E1C +/* 0704D4 7F03B9A4 87A70546 */ lh $a3, 0x546($sp) +.L7F03B9A8: +/* 0704D8 7F03B9A8 8FBF0034 */ lw $ra, 0x34($sp) +.L7F03B9AC: +/* 0704DC 7F03B9AC 8FB00028 */ lw $s0, 0x28($sp) +/* 0704E0 7F03B9B0 8FB1002C */ lw $s1, 0x2c($sp) +/* 0704E4 7F03B9B4 8FB20030 */ lw $s2, 0x30($sp) +/* 0704E8 7F03B9B8 03E00008 */ jr $ra +/* 0704EC 7F03B9BC 27BD0578 */ addiu $sp, $sp, 0x578 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03B9C0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03B9C0 +/* 0704F0 7F03B9C0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0704F4 7F03B9C4 8FAE0054 */ lw $t6, 0x54($sp) +/* 0704F8 7F03B9C8 44867000 */ mtc1 $a2, $f14 +/* 0704FC 7F03B9CC AFBF0014 */ sw $ra, 0x14($sp) +/* 070500 7F03B9D0 AFA40030 */ sw $a0, 0x30($sp) +/* 070504 7F03B9D4 AFA50034 */ sw $a1, 0x34($sp) +/* 070508 7F03B9D8 11C00091 */ beqz $t6, .L7F03BC20 +/* 07050C 7F03B9DC AFA7003C */ sw $a3, 0x3c($sp) +/* 070510 7F03B9E0 44806000 */ mtc1 $zero, $f12 +/* 070514 7F03B9E4 00003025 */ move $a2, $zero +/* 070518 7F03B9E8 00002825 */ move $a1, $zero +/* 07051C 7F03B9EC 00001825 */ move $v1, $zero +/* 070520 7F03B9F0 00801025 */ move $v0, $a0 +/* 070524 7F03B9F4 46006086 */ mov.s $f2, $f12 +.L7F03B9F8: +/* 070528 7F03B9F8 8C4F003C */ lw $t7, 0x3c($v0) +/* 07052C 7F03B9FC 51E0000E */ beql $t7, $zero, .L7F03BA38 +/* 070530 7F03BA00 24630001 */ addiu $v1, $v1, 1 +/* 070534 7F03BA04 8C580084 */ lw $t8, 0x84($v0) +/* 070538 7F03BA08 5300000B */ beql $t8, $zero, .L7F03BA38 +/* 07053C 7F03BA0C 24630001 */ addiu $v1, $v1, 1 +/* 070540 7F03BA10 C4400038 */ lwc1 $f0, 0x38($v0) +/* 070544 7F03BA14 24A50001 */ addiu $a1, $a1, 1 +/* 070548 7F03BA18 4600103C */ c.lt.s $f2, $f0 +/* 07054C 7F03BA1C 00000000 */ nop +/* 070550 7F03BA20 45020005 */ bc1fl .L7F03BA38 +/* 070554 7F03BA24 24630001 */ addiu $v1, $v1, 1 +/* 070558 7F03BA28 46001306 */ mov.s $f12, $f2 +/* 07055C 7F03BA2C 46000086 */ mov.s $f2, $f0 +/* 070560 7F03BA30 00603025 */ move $a2, $v1 +/* 070564 7F03BA34 24630001 */ addiu $v1, $v1, 1 +.L7F03BA38: +/* 070568 7F03BA38 2861000A */ slti $at, $v1, 0xa +/* 07056C 7F03BA3C 1420FFEE */ bnez $at, .L7F03B9F8 +/* 070570 7F03BA40 24420050 */ addiu $v0, $v0, 0x50 +/* 070574 7F03BA44 8FB90030 */ lw $t9, 0x30($sp) +/* 070578 7F03BA48 8F240018 */ lw $a0, 0x18($t9) +/* 07057C 7F03BA4C E7AE0038 */ swc1 $f14, 0x38($sp) +/* 070580 7F03BA50 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 070584 7F03BA54 AFA60024 */ sw $a2, 0x24($sp) +/* 070588 7F03BA58 0FC1780E */ jal bondwalkItemGetShootThroughFlag +/* 07058C 7F03BA5C AFA5001C */ sw $a1, 0x1c($sp) +/* 070590 7F03BA60 8FA5001C */ lw $a1, 0x1c($sp) +/* 070594 7F03BA64 8FA60024 */ lw $a2, 0x24($sp) +/* 070598 7F03BA68 8FA70030 */ lw $a3, 0x30($sp) +/* 07059C 7F03BA6C 00A2082A */ slt $at, $a1, $v0 +/* 0705A0 7F03BA70 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 0705A4 7F03BA74 1420005A */ bnez $at, .L7F03BBE0 +/* 0705A8 7F03BA78 C7AE0038 */ lwc1 $f14, 0x38($sp) +/* 0705AC 7F03BA7C 00064080 */ sll $t0, $a2, 2 +/* 0705B0 7F03BA80 460E603C */ c.lt.s $f12, $f14 +/* 0705B4 7F03BA84 01064021 */ addu $t0, $t0, $a2 +/* 0705B8 7F03BA88 00084100 */ sll $t0, $t0, 4 +/* 0705BC 7F03BA8C 00E84821 */ addu $t1, $a3, $t0 +/* 0705C0 7F03BA90 AD20003C */ sw $zero, 0x3c($t1) +/* 0705C4 7F03BA94 45000002 */ bc1f .L7F03BAA0 +/* 0705C8 7F03BA98 E4EC0034 */ swc1 $f12, 0x34($a3) +/* 0705CC 7F03BA9C E4EE0034 */ swc1 $f14, 0x34($a3) +.L7F03BAA0: +/* 0705D0 7F03BAA0 8CEA003C */ lw $t2, 0x3c($a3) +/* 0705D4 7F03BAA4 00E01025 */ move $v0, $a3 +/* 0705D8 7F03BAA8 240400A0 */ li $a0, 160 +/* 0705DC 7F03BAAC 1140000A */ beqz $t2, .L7F03BAD8 +/* 0705E0 7F03BAB0 24030320 */ li $v1, 800 +/* 0705E4 7F03BAB4 8C4B0084 */ lw $t3, 0x84($v0) +/* 0705E8 7F03BAB8 55600008 */ bnezl $t3, .L7F03BADC +/* 0705EC 7F03BABC 8C4C008C */ lw $t4, 0x8c($v0) +/* 0705F0 7F03BAC0 C4440038 */ lwc1 $f4, 0x38($v0) +/* 0705F4 7F03BAC4 4604603C */ c.lt.s $f12, $f4 +/* 0705F8 7F03BAC8 00000000 */ nop +/* 0705FC 7F03BACC 45020003 */ bc1fl .L7F03BADC +/* 070600 7F03BAD0 8C4C008C */ lw $t4, 0x8c($v0) +/* 070604 7F03BAD4 AC40003C */ sw $zero, 0x3c($v0) +.L7F03BAD8: +/* 070608 7F03BAD8 8C4C008C */ lw $t4, 0x8c($v0) +.L7F03BADC: +/* 07060C 7F03BADC 5180000B */ beql $t4, $zero, .L7F03BB0C +/* 070610 7F03BAE0 24E200A0 */ addiu $v0, $a3, 0xa0 +/* 070614 7F03BAE4 8C4D00D4 */ lw $t5, 0xd4($v0) +/* 070618 7F03BAE8 55A00008 */ bnezl $t5, .L7F03BB0C +/* 07061C 7F03BAEC 24E200A0 */ addiu $v0, $a3, 0xa0 +/* 070620 7F03BAF0 C4460088 */ lwc1 $f6, 0x88($v0) +/* 070624 7F03BAF4 4606603C */ c.lt.s $f12, $f6 +/* 070628 7F03BAF8 00000000 */ nop +/* 07062C 7F03BAFC 45020003 */ bc1fl .L7F03BB0C +/* 070630 7F03BB00 24E200A0 */ addiu $v0, $a3, 0xa0 +/* 070634 7F03BB04 AC40008C */ sw $zero, 0x8c($v0) +/* 070638 7F03BB08 24E200A0 */ addiu $v0, $a3, 0xa0 +.L7F03BB0C: +/* 07063C 7F03BB0C 8C4E003C */ lw $t6, 0x3c($v0) +/* 070640 7F03BB10 24840140 */ addiu $a0, $a0, 0x140 +/* 070644 7F03BB14 51C0000B */ beql $t6, $zero, .L7F03BB44 +/* 070648 7F03BB18 8C58008C */ lw $t8, 0x8c($v0) +/* 07064C 7F03BB1C 8C4F0084 */ lw $t7, 0x84($v0) +/* 070650 7F03BB20 55E00008 */ bnezl $t7, .L7F03BB44 +/* 070654 7F03BB24 8C58008C */ lw $t8, 0x8c($v0) +/* 070658 7F03BB28 C4480038 */ lwc1 $f8, 0x38($v0) +/* 07065C 7F03BB2C 4608603C */ c.lt.s $f12, $f8 +/* 070660 7F03BB30 00000000 */ nop +/* 070664 7F03BB34 45020003 */ bc1fl .L7F03BB44 +/* 070668 7F03BB38 8C58008C */ lw $t8, 0x8c($v0) +/* 07066C 7F03BB3C AC40003C */ sw $zero, 0x3c($v0) +/* 070670 7F03BB40 8C58008C */ lw $t8, 0x8c($v0) +.L7F03BB44: +/* 070674 7F03BB44 5300000B */ beql $t8, $zero, .L7F03BB74 +/* 070678 7F03BB48 8C4800DC */ lw $t0, 0xdc($v0) +/* 07067C 7F03BB4C 8C5900D4 */ lw $t9, 0xd4($v0) +/* 070680 7F03BB50 57200008 */ bnezl $t9, .L7F03BB74 +/* 070684 7F03BB54 8C4800DC */ lw $t0, 0xdc($v0) +/* 070688 7F03BB58 C44A0088 */ lwc1 $f10, 0x88($v0) +/* 07068C 7F03BB5C 460A603C */ c.lt.s $f12, $f10 +/* 070690 7F03BB60 00000000 */ nop +/* 070694 7F03BB64 45020003 */ bc1fl .L7F03BB74 +/* 070698 7F03BB68 8C4800DC */ lw $t0, 0xdc($v0) +/* 07069C 7F03BB6C AC40008C */ sw $zero, 0x8c($v0) +/* 0706A0 7F03BB70 8C4800DC */ lw $t0, 0xdc($v0) +.L7F03BB74: +/* 0706A4 7F03BB74 5100000B */ beql $t0, $zero, .L7F03BBA4 +/* 0706A8 7F03BB78 8C4A012C */ lw $t2, 0x12c($v0) +/* 0706AC 7F03BB7C 8C490124 */ lw $t1, 0x124($v0) +/* 0706B0 7F03BB80 55200008 */ bnezl $t1, .L7F03BBA4 +/* 0706B4 7F03BB84 8C4A012C */ lw $t2, 0x12c($v0) +/* 0706B8 7F03BB88 C45000D8 */ lwc1 $f16, 0xd8($v0) +/* 0706BC 7F03BB8C 4610603C */ c.lt.s $f12, $f16 +/* 0706C0 7F03BB90 00000000 */ nop +/* 0706C4 7F03BB94 45020003 */ bc1fl .L7F03BBA4 +/* 0706C8 7F03BB98 8C4A012C */ lw $t2, 0x12c($v0) +/* 0706CC 7F03BB9C AC4000DC */ sw $zero, 0xdc($v0) +/* 0706D0 7F03BBA0 8C4A012C */ lw $t2, 0x12c($v0) +.L7F03BBA4: +/* 0706D4 7F03BBA4 1140000A */ beqz $t2, .L7F03BBD0 +/* 0706D8 7F03BBA8 00000000 */ nop +/* 0706DC 7F03BBAC 8C4B0174 */ lw $t3, 0x174($v0) +/* 0706E0 7F03BBB0 15600007 */ bnez $t3, .L7F03BBD0 +/* 0706E4 7F03BBB4 00000000 */ nop +/* 0706E8 7F03BBB8 C4520128 */ lwc1 $f18, 0x128($v0) +/* 0706EC 7F03BBBC 4612603C */ c.lt.s $f12, $f18 +/* 0706F0 7F03BBC0 00000000 */ nop +/* 0706F4 7F03BBC4 45000002 */ bc1f .L7F03BBD0 +/* 0706F8 7F03BBC8 00000000 */ nop +/* 0706FC 7F03BBCC AC40012C */ sw $zero, 0x12c($v0) +.L7F03BBD0: +/* 070700 7F03BBD0 1483FFCE */ bne $a0, $v1, .L7F03BB0C +/* 070704 7F03BBD4 24420140 */ addiu $v0, $v0, 0x140 +/* 070708 7F03BBD8 10000012 */ b .L7F03BC24 +/* 07070C 7F03BBDC 8FAD0058 */ lw $t5, 0x58($sp) +.L7F03BBE0: +/* 070710 7F03BBE0 8CE40018 */ lw $a0, 0x18($a3) +/* 070714 7F03BBE4 E7AE0038 */ swc1 $f14, 0x38($sp) +/* 070718 7F03BBE8 0FC1780E */ jal bondwalkItemGetShootThroughFlag +/* 07071C 7F03BBEC AFA5001C */ sw $a1, 0x1c($sp) +/* 070720 7F03BBF0 8FA5001C */ lw $a1, 0x1c($sp) +/* 070724 7F03BBF4 8FA70030 */ lw $a3, 0x30($sp) +/* 070728 7F03BBF8 C7AE0038 */ lwc1 $f14, 0x38($sp) +/* 07072C 7F03BBFC 24AC0001 */ addiu $t4, $a1, 1 +/* 070730 7F03BC00 55820008 */ bnel $t4, $v0, .L7F03BC24 +/* 070734 7F03BC04 8FAD0058 */ lw $t5, 0x58($sp) +/* 070738 7F03BC08 C4E40034 */ lwc1 $f4, 0x34($a3) +/* 07073C 7F03BC0C 4604703C */ c.lt.s $f14, $f4 +/* 070740 7F03BC10 00000000 */ nop +/* 070744 7F03BC14 45020003 */ bc1fl .L7F03BC24 +/* 070748 7F03BC18 8FAD0058 */ lw $t5, 0x58($sp) +/* 07074C 7F03BC1C E4EE0034 */ swc1 $f14, 0x34($a3) +.L7F03BC20: +/* 070750 7F03BC20 8FAD0058 */ lw $t5, 0x58($sp) +.L7F03BC24: +/* 070754 7F03BC24 8FAE0030 */ lw $t6, 0x30($sp) +/* 070758 7F03BC28 51A00048 */ beql $t5, $zero, .L7F03BD4C +/* 07075C 7F03BC2C 00002025 */ move $a0, $zero +/* 070760 7F03BC30 8DC20018 */ lw $v0, 0x18($t6) +/* 070764 7F03BC34 24010012 */ li $at, 18 +/* 070768 7F03BC38 10410043 */ beq $v0, $at, .L7F03BD48 +/* 07076C 7F03BC3C 24010014 */ li $at, 20 +/* 070770 7F03BC40 50410042 */ beql $v0, $at, .L7F03BD4C +/* 070774 7F03BC44 00002025 */ move $a0, $zero +/* 070778 7F03BC48 8DC3003C */ lw $v1, 0x3c($t6) +/* 07077C 7F03BC4C 01C01025 */ move $v0, $t6 +/* 070780 7F03BC50 50600008 */ beql $v1, $zero, .L7F03BC74 +/* 070784 7F03BC54 8C4F008C */ lw $t7, 0x8c($v0) +/* 070788 7F03BC58 C5C60038 */ lwc1 $f6, 0x38($t6) +/* 07078C 7F03BC5C 4606703C */ c.lt.s $f14, $f6 +/* 070790 7F03BC60 00000000 */ nop +/* 070794 7F03BC64 45020003 */ bc1fl .L7F03BC74 +/* 070798 7F03BC68 8C4F008C */ lw $t7, 0x8c($v0) +/* 07079C 7F03BC6C ADC0003C */ sw $zero, 0x3c($t6) +/* 0707A0 7F03BC70 8C4F008C */ lw $t7, 0x8c($v0) +.L7F03BC74: +/* 0707A4 7F03BC74 51E00008 */ beql $t7, $zero, .L7F03BC98 +/* 0707A8 7F03BC78 8FA20030 */ lw $v0, 0x30($sp) +/* 0707AC 7F03BC7C C4480088 */ lwc1 $f8, 0x88($v0) +/* 0707B0 7F03BC80 4608703C */ c.lt.s $f14, $f8 +/* 0707B4 7F03BC84 00000000 */ nop +/* 0707B8 7F03BC88 45020003 */ bc1fl .L7F03BC98 +/* 0707BC 7F03BC8C 8FA20030 */ lw $v0, 0x30($sp) +/* 0707C0 7F03BC90 AC40008C */ sw $zero, 0x8c($v0) +/* 0707C4 7F03BC94 8FA20030 */ lw $v0, 0x30($sp) +.L7F03BC98: +/* 0707C8 7F03BC98 240400A0 */ li $a0, 160 +/* 0707CC 7F03BC9C 24030320 */ li $v1, 800 +/* 0707D0 7F03BCA0 244200A0 */ addiu $v0, $v0, 0xa0 +.L7F03BCA4: +/* 0707D4 7F03BCA4 8C58003C */ lw $t8, 0x3c($v0) +/* 0707D8 7F03BCA8 24840140 */ addiu $a0, $a0, 0x140 +/* 0707DC 7F03BCAC 53000008 */ beql $t8, $zero, .L7F03BCD0 +/* 0707E0 7F03BCB0 8C59008C */ lw $t9, 0x8c($v0) +/* 0707E4 7F03BCB4 C44A0038 */ lwc1 $f10, 0x38($v0) +/* 0707E8 7F03BCB8 460A703C */ c.lt.s $f14, $f10 +/* 0707EC 7F03BCBC 00000000 */ nop +/* 0707F0 7F03BCC0 45020003 */ bc1fl .L7F03BCD0 +/* 0707F4 7F03BCC4 8C59008C */ lw $t9, 0x8c($v0) +/* 0707F8 7F03BCC8 AC40003C */ sw $zero, 0x3c($v0) +/* 0707FC 7F03BCCC 8C59008C */ lw $t9, 0x8c($v0) +.L7F03BCD0: +/* 070800 7F03BCD0 53200008 */ beql $t9, $zero, .L7F03BCF4 +/* 070804 7F03BCD4 8C4800DC */ lw $t0, 0xdc($v0) +/* 070808 7F03BCD8 C4500088 */ lwc1 $f16, 0x88($v0) +/* 07080C 7F03BCDC 4610703C */ c.lt.s $f14, $f16 +/* 070810 7F03BCE0 00000000 */ nop +/* 070814 7F03BCE4 45020003 */ bc1fl .L7F03BCF4 +/* 070818 7F03BCE8 8C4800DC */ lw $t0, 0xdc($v0) +/* 07081C 7F03BCEC AC40008C */ sw $zero, 0x8c($v0) +/* 070820 7F03BCF0 8C4800DC */ lw $t0, 0xdc($v0) +.L7F03BCF4: +/* 070824 7F03BCF4 51000008 */ beql $t0, $zero, .L7F03BD18 +/* 070828 7F03BCF8 8C49012C */ lw $t1, 0x12c($v0) +/* 07082C 7F03BCFC C45200D8 */ lwc1 $f18, 0xd8($v0) +/* 070830 7F03BD00 4612703C */ c.lt.s $f14, $f18 +/* 070834 7F03BD04 00000000 */ nop +/* 070838 7F03BD08 45020003 */ bc1fl .L7F03BD18 +/* 07083C 7F03BD0C 8C49012C */ lw $t1, 0x12c($v0) +/* 070840 7F03BD10 AC4000DC */ sw $zero, 0xdc($v0) +/* 070844 7F03BD14 8C49012C */ lw $t1, 0x12c($v0) +.L7F03BD18: +/* 070848 7F03BD18 11200007 */ beqz $t1, .L7F03BD38 +/* 07084C 7F03BD1C 00000000 */ nop +/* 070850 7F03BD20 C4440128 */ lwc1 $f4, 0x128($v0) +/* 070854 7F03BD24 4604703C */ c.lt.s $f14, $f4 +/* 070858 7F03BD28 00000000 */ nop +/* 07085C 7F03BD2C 45000002 */ bc1f .L7F03BD38 +/* 070860 7F03BD30 00000000 */ nop +/* 070864 7F03BD34 AC40012C */ sw $zero, 0x12c($v0) +.L7F03BD38: +/* 070868 7F03BD38 1483FFDA */ bne $a0, $v1, .L7F03BCA4 +/* 07086C 7F03BD3C 24420140 */ addiu $v0, $v0, 0x140 +/* 070870 7F03BD40 8FAA0030 */ lw $t2, 0x30($sp) +/* 070874 7F03BD44 E54E0034 */ swc1 $f14, 0x34($t2) +.L7F03BD48: +/* 070878 7F03BD48 00002025 */ move $a0, $zero +.L7F03BD4C: +/* 07087C 7F03BD4C 8FA20030 */ lw $v0, 0x30($sp) +/* 070880 7F03BD50 24030320 */ li $v1, 800 +.L7F03BD54: +/* 070884 7F03BD54 8C4B003C */ lw $t3, 0x3c($v0) +/* 070888 7F03BD58 24840050 */ addiu $a0, $a0, 0x50 +/* 07088C 7F03BD5C 1560001D */ bnez $t3, .L7F03BDD4 +/* 070890 7F03BD60 00000000 */ nop +/* 070894 7F03BD64 E44E0038 */ swc1 $f14, 0x38($v0) +/* 070898 7F03BD68 8FAC0034 */ lw $t4, 0x34($sp) +/* 07089C 7F03BD6C 00404025 */ move $t0, $v0 +/* 0708A0 7F03BD70 AC4C003C */ sw $t4, 0x3c($v0) +/* 0708A4 7F03BD74 8FAD003C */ lw $t5, 0x3c($sp) +/* 0708A8 7F03BD78 AC4D0040 */ sw $t5, 0x40($v0) +/* 0708AC 7F03BD7C 8FAE0040 */ lw $t6, 0x40($sp) +/* 0708B0 7F03BD80 AC4E0044 */ sw $t6, 0x44($v0) +/* 0708B4 7F03BD84 8FAF0044 */ lw $t7, 0x44($sp) +/* 0708B8 7F03BD88 25F90030 */ addiu $t9, $t7, 0x30 +.L7F03BD8C: +/* 0708BC 7F03BD8C 8DE10000 */ lw $at, ($t7) +/* 0708C0 7F03BD90 25EF000C */ addiu $t7, $t7, 0xc +/* 0708C4 7F03BD94 2508000C */ addiu $t0, $t0, 0xc +/* 0708C8 7F03BD98 AD01003C */ sw $at, 0x3c($t0) +/* 0708CC 7F03BD9C 8DE1FFF8 */ lw $at, -8($t7) +/* 0708D0 7F03BDA0 AD010040 */ sw $at, 0x40($t0) +/* 0708D4 7F03BDA4 8DE1FFFC */ lw $at, -4($t7) +/* 0708D8 7F03BDA8 15F9FFF8 */ bne $t7, $t9, .L7F03BD8C +/* 0708DC 7F03BDAC AD010044 */ sw $at, 0x44($t0) +/* 0708E0 7F03BDB0 8FA90048 */ lw $t1, 0x48($sp) +/* 0708E4 7F03BDB4 AC490078 */ sw $t1, 0x78($v0) +/* 0708E8 7F03BDB8 8FAA004C */ lw $t2, 0x4c($sp) +/* 0708EC 7F03BDBC AC4A007C */ sw $t2, 0x7c($v0) +/* 0708F0 7F03BDC0 8FAB0050 */ lw $t3, 0x50($sp) +/* 0708F4 7F03BDC4 AC4B0080 */ sw $t3, 0x80($v0) +/* 0708F8 7F03BDC8 8FAC0054 */ lw $t4, 0x54($sp) +/* 0708FC 7F03BDCC 10000003 */ b .L7F03BDDC +/* 070900 7F03BDD0 AC4C0084 */ sw $t4, 0x84($v0) +.L7F03BDD4: +/* 070904 7F03BDD4 1483FFDF */ bne $a0, $v1, .L7F03BD54 +/* 070908 7F03BDD8 24420050 */ addiu $v0, $v0, 0x50 +.L7F03BDDC: +/* 07090C 7F03BDDC 8FBF0014 */ lw $ra, 0x14($sp) +/* 070910 7F03BDE0 27BD0030 */ addiu $sp, $sp, 0x30 +/* 070914 7F03BDE4 03E00008 */ jr $ra +/* 070918 7F03BDE8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03BDEC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03BDEC +/* 07091C 7F03BDEC 27BDFF38 */ addiu $sp, $sp, -0xc8 +/* 070920 7F03BDF0 AFBF0064 */ sw $ra, 0x64($sp) +/* 070924 7F03BDF4 AFB60060 */ sw $s6, 0x60($sp) +/* 070928 7F03BDF8 00A0B025 */ move $s6, $a1 +/* 07092C 7F03BDFC AFB5005C */ sw $s5, 0x5c($sp) +/* 070930 7F03BE00 AFB40058 */ sw $s4, 0x58($sp) +/* 070934 7F03BE04 AFB30054 */ sw $s3, 0x54($sp) +/* 070938 7F03BE08 AFB20050 */ sw $s2, 0x50($sp) +/* 07093C 7F03BE0C AFB1004C */ sw $s1, 0x4c($sp) +/* 070940 7F03BE10 AFB00048 */ sw $s0, 0x48($sp) +/* 070944 7F03BE14 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 070948 7F03BE18 F7B60038 */ sdc1 $f22, 0x38($sp) +/* 07094C 7F03BE1C F7B40030 */ sdc1 $f20, 0x30($sp) +/* 070950 7F03BE20 AFA400C8 */ sw $a0, 0xc8($sp) +/* 070954 7F03BE24 0FC225E6 */ jal get_curplayer_positiondata +/* 070958 7F03BE28 AFA000BC */ sw $zero, 0xbc($sp) +/* 07095C 7F03BE2C 3C048008 */ lui $a0, %hi(pPlayer) +/* 070960 7F03BE30 0040A025 */ move $s4, $v0 +/* 070964 7F03BE34 0FC225E0 */ jal sub_GAME_7F089780 +/* 070968 7F03BE38 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 07096C 7F03BE3C 3C138007 */ lui $s3, %hi(dword_CODE_bss_80071DF0) +/* 070970 7F03BE40 8E731DF0 */ lw $s3, %lo(dword_CODE_bss_80071DF0)($s3) +/* 070974 7F03BE44 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80071620) +/* 070978 7F03BE48 25CE1620 */ addiu $t6, %lo(dword_CODE_bss_80071620) # addiu $t6, $t6, 0x1620 +/* 07097C 7F03BE4C 2673FFFC */ addiu $s3, $s3, -4 +/* 070980 7F03BE50 026E082B */ sltu $at, $s3, $t6 +/* 070984 7F03BE54 1420008F */ bnez $at, .L7F03C094 +/* 070988 7F03BE58 46000606 */ mov.s $f24, $f0 +/* 07098C 7F03BE5C 4480B000 */ mtc1 $zero, $f22 +/* 070990 7F03BE60 27B50078 */ addiu $s5, $sp, 0x78 +/* 070994 7F03BE64 8E700000 */ lw $s0, ($s3) +.L7F03BE68: +/* 070998 7F03BE68 3C0143FA */ li $at, 0x43FA0000 # 500.000000 +/* 07099C 7F03BE6C 12000083 */ beqz $s0, .L7F03C07C +/* 0709A0 7F03BE70 00000000 */ nop +/* 0709A4 7F03BE74 C6040018 */ lwc1 $f4, 0x18($s0) +/* 0709A8 7F03BE78 44813000 */ mtc1 $at, $f6 +/* 0709AC 7F03BE7C 00000000 */ nop +/* 0709B0 7F03BE80 4606203C */ c.lt.s $f4, $f6 +/* 0709B4 7F03BE84 00000000 */ nop +/* 0709B8 7F03BE88 4500007C */ bc1f .L7F03C07C +/* 0709BC 7F03BE8C 00000000 */ nop +/* 0709C0 7F03BE90 92020000 */ lbu $v0, ($s0) +/* 0709C4 7F03BE94 24010003 */ li $at, 3 +/* 0709C8 7F03BE98 1041000B */ beq $v0, $at, .L7F03BEC8 +/* 0709CC 7F03BE9C 24010006 */ li $at, 6 +/* 0709D0 7F03BEA0 14410076 */ bne $v0, $at, .L7F03C07C +/* 0709D4 7F03BEA4 00000000 */ nop +/* 0709D8 7F03BEA8 8E0F0004 */ lw $t7, 4($s0) +/* 0709DC 7F03BEAC 11E00073 */ beqz $t7, .L7F03C07C +/* 0709E0 7F03BEB0 00000000 */ nop +/* 0709E4 7F03BEB4 0FC26C57 */ jal sub_GAME_7F09B15C +/* 0709E8 7F03BEB8 02002025 */ move $a0, $s0 +/* 0709EC 7F03BEBC 0FC26C54 */ jal get_cur_playernum +/* 0709F0 7F03BEC0 00408825 */ move $s1, $v0 +/* 0709F4 7F03BEC4 1051006D */ beq $v0, $s1, .L7F03C07C +.L7F03BEC8: +/* 0709F8 7F03BEC8 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 0709FC 7F03BECC 4481A000 */ mtc1 $at, $f20 +/* 070A00 7F03BED0 0FC1741E */ jal getCurrentWeaponOrItem +/* 070A04 7F03BED4 8E120004 */ lw $s2, 4($s0) +/* 070A08 7F03BED8 24010011 */ li $at, 17 +/* 070A0C 7F03BEDC 14410004 */ bne $v0, $at, .L7F03BEF0 +/* 070A10 7F03BEE0 27A500AC */ addiu $a1, $sp, 0xac +/* 070A14 7F03BEE4 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 070A18 7F03BEE8 4481A000 */ mtc1 $at, $f20 +/* 070A1C 7F03BEEC 00000000 */ nop +.L7F03BEF0: +/* 070A20 7F03BEF0 8E44001C */ lw $a0, 0x1c($s2) +/* 070A24 7F03BEF4 27A600A8 */ addiu $a2, $sp, 0xa8 +/* 070A28 7F03BEF8 0FC0FDD2 */ jal sub_GAME_7F03F748 +/* 070A2C 7F03BEFC 00003825 */ move $a3, $zero +/* 070A30 7F03BF00 C7A800AC */ lwc1 $f8, 0xac($sp) +/* 070A34 7F03BF04 C7AA00A8 */ lwc1 $f10, 0xa8($sp) +/* 070A38 7F03BF08 4608B03E */ c.le.s $f22, $f8 +/* 070A3C 7F03BF0C 00000000 */ nop +/* 070A40 7F03BF10 4500005A */ bc1f .L7F03C07C +/* 070A44 7F03BF14 00000000 */ nop +/* 070A48 7F03BF18 4616503E */ c.le.s $f10, $f22 +/* 070A4C 7F03BF1C 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 070A50 7F03BF20 27A600A0 */ addiu $a2, $sp, 0xa0 +/* 070A54 7F03BF24 24070001 */ li $a3, 1 +/* 070A58 7F03BF28 45000054 */ bc1f .L7F03C07C +/* 070A5C 7F03BF2C 00000000 */ nop +/* 070A60 7F03BF30 0FC0FDD2 */ jal sub_GAME_7F03F748 +/* 070A64 7F03BF34 8E44001C */ lw $a0, 0x1c($s2) +/* 070A68 7F03BF38 C7B000A4 */ lwc1 $f16, 0xa4($sp) +/* 070A6C 7F03BF3C C7B200A0 */ lwc1 $f18, 0xa0($sp) +/* 070A70 7F03BF40 4610B03E */ c.le.s $f22, $f16 +/* 070A74 7F03BF44 00000000 */ nop +/* 070A78 7F03BF48 4500004C */ bc1f .L7F03C07C +/* 070A7C 7F03BF4C 00000000 */ nop +/* 070A80 7F03BF50 4616903E */ c.le.s $f18, $f22 +/* 070A84 7F03BF54 27A5009C */ addiu $a1, $sp, 0x9c +/* 070A88 7F03BF58 27A60098 */ addiu $a2, $sp, 0x98 +/* 070A8C 7F03BF5C 24070002 */ li $a3, 2 +/* 070A90 7F03BF60 45000046 */ bc1f .L7F03C07C +/* 070A94 7F03BF64 00000000 */ nop +/* 070A98 7F03BF68 0FC0FDD2 */ jal sub_GAME_7F03F748 +/* 070A9C 7F03BF6C 8E44001C */ lw $a0, 0x1c($s2) +/* 070AA0 7F03BF70 C7A40098 */ lwc1 $f4, 0x98($sp) +/* 070AA4 7F03BF74 C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 070AA8 7F03BF78 4616203E */ c.le.s $f4, $f22 +/* 070AAC 7F03BF7C 00000000 */ nop +/* 070AB0 7F03BF80 4500003E */ bc1f .L7F03C07C +/* 070AB4 7F03BF84 00000000 */ nop +/* 070AB8 7F03BF88 4600A207 */ neg.s $f8, $f20 +/* 070ABC 7F03BF8C 27A40090 */ addiu $a0, $sp, 0x90 +/* 070AC0 7F03BF90 4606403E */ c.le.s $f8, $f6 +/* 070AC4 7F03BF94 24190013 */ li $t9, 19 +/* 070AC8 7F03BF98 45000038 */ bc1f .L7F03C07C +/* 070ACC 7F03BF9C 00000000 */ nop +/* 070AD0 7F03BFA0 8E980014 */ lw $t8, 0x14($s4) +/* 070AD4 7F03BFA4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 070AD8 7F03BFA8 44818000 */ mtc1 $at, $f16 +/* 070ADC 7F03BFAC AFB80090 */ sw $t8, 0x90($sp) +/* 070AE0 7F03BFB0 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 070AE4 7F03BFB4 8E070008 */ lw $a3, 8($s0) +/* 070AE8 7F03BFB8 8E860010 */ lw $a2, 0x10($s4) +/* 070AEC 7F03BFBC 8E850008 */ lw $a1, 8($s4) +/* 070AF0 7F03BFC0 E7B60020 */ swc1 $f22, 0x20($sp) +/* 070AF4 7F03BFC4 E7B8001C */ swc1 $f24, 0x1c($sp) +/* 070AF8 7F03BFC8 E7B80018 */ swc1 $f24, 0x18($sp) +/* 070AFC 7F03BFCC AFB90014 */ sw $t9, 0x14($sp) +/* 070B00 7F03BFD0 E7B00024 */ swc1 $f16, 0x24($sp) +/* 070B04 7F03BFD4 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 070B08 7F03BFD8 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 070B0C 7F03BFDC 10400027 */ beqz $v0, .L7F03C07C +/* 070B10 7F03BFE0 8FA80090 */ lw $t0, 0x90($sp) +/* 070B14 7F03BFE4 8E090014 */ lw $t1, 0x14($s0) +/* 070B18 7F03BFE8 15090024 */ bne $t0, $t1, .L7F03C07C +/* 070B1C 7F03BFEC 00000000 */ nop +/* 070B20 7F03BFF0 0FC1E67C */ jal sub_GAME_7F0799F0 +/* 070B24 7F03BFF4 2411000F */ li $s1, 15 +/* 070B28 7F03BFF8 24010001 */ li $at, 1 +/* 070B2C 7F03BFFC 14410003 */ bne $v0, $at, .L7F03C00C +/* 070B30 7F03C000 00000000 */ nop +/* 070B34 7F03C004 10000006 */ b .L7F03C020 +/* 070B38 7F03C008 241100C8 */ li $s1, 200 +.L7F03C00C: +/* 070B3C 7F03C00C 0FC1E67C */ jal sub_GAME_7F0799F0 +/* 070B40 7F03C010 00000000 */ nop +/* 070B44 7F03C014 54400003 */ bnezl $v0, .L7F03C024 +/* 070B48 7F03C018 27A40084 */ addiu $a0, $sp, 0x84 +/* 070B4C 7F03C01C 241100C9 */ li $s1, 201 +.L7F03C020: +/* 070B50 7F03C020 27A40084 */ addiu $a0, $sp, 0x84 +.L7F03C024: +/* 070B54 7F03C024 02A02825 */ move $a1, $s5 +/* 070B58 7F03C028 0FC1A073 */ jal sub_GAME_7F0681CC +/* 070B5C 7F03C02C 8FA600C8 */ lw $a2, 0xc8($sp) +/* 070B60 7F03C030 0FC1E111 */ jal sub_GAME_7F078444 +/* 070B64 7F03C034 00000000 */ nop +/* 070B68 7F03C038 00402025 */ move $a0, $v0 +/* 070B6C 7F03C03C 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 070B70 7F03C040 02A02825 */ move $a1, $s5 +/* 070B74 7F03C044 240A0001 */ li $t2, 1 +/* 070B78 7F03C048 AFAA0010 */ sw $t2, 0x10($sp) +/* 070B7C 7F03C04C 02402025 */ move $a0, $s2 +/* 070B80 7F03C050 02202825 */ move $a1, $s1 +/* 070B84 7F03C054 02A03025 */ move $a2, $s5 +/* 070B88 7F03C058 0FC09C9F */ jal handles_shot_actors +/* 070B8C 7F03C05C 02C03825 */ move $a3, $s6 +/* 070B90 7F03C060 10400006 */ beqz $v0, .L7F03C07C +/* 070B94 7F03C064 02C02025 */ move $a0, $s6 +/* 070B98 7F03C068 240B0001 */ li $t3, 1 +/* 070B9C 7F03C06C AFAB00BC */ sw $t3, 0xbc($sp) +/* 070BA0 7F03C070 02002825 */ move $a1, $s0 +/* 070BA4 7F03C074 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 070BA8 7F03C078 2406FFFF */ li $a2, -1 +.L7F03C07C: +/* 070BAC 7F03C07C 3C0C8007 */ lui $t4, %hi(dword_CODE_bss_80071620) +/* 070BB0 7F03C080 258C1620 */ addiu $t4, %lo(dword_CODE_bss_80071620) # addiu $t4, $t4, 0x1620 +/* 070BB4 7F03C084 2673FFFC */ addiu $s3, $s3, -4 +/* 070BB8 7F03C088 026C082B */ sltu $at, $s3, $t4 +/* 070BBC 7F03C08C 5020FF76 */ beql $at, $zero, .L7F03BE68 +/* 070BC0 7F03C090 8E700000 */ lw $s0, ($s3) +.L7F03C094: +/* 070BC4 7F03C094 8FAD00BC */ lw $t5, 0xbc($sp) +/* 070BC8 7F03C098 24010001 */ li $at, 1 +/* 070BCC 7F03C09C 55A00008 */ bnezl $t5, .L7F03C0C0 +/* 070BD0 7F03C0A0 8FBF0064 */ lw $ra, 0x64($sp) +/* 070BD4 7F03C0A4 16C10005 */ bne $s6, $at, .L7F03C0BC +/* 070BD8 7F03C0A8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 070BDC 7F03C0AC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 070BE0 7F03C0B0 24050069 */ li $a1, 105 +/* 070BE4 7F03C0B4 0C002382 */ jal play_sfx_a1 +/* 070BE8 7F03C0B8 00003025 */ move $a2, $zero +.L7F03C0BC: +/* 070BEC 7F03C0BC 8FBF0064 */ lw $ra, 0x64($sp) +.L7F03C0C0: +/* 070BF0 7F03C0C0 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 070BF4 7F03C0C4 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 070BF8 7F03C0C8 D7B80040 */ ldc1 $f24, 0x40($sp) +/* 070BFC 7F03C0CC 8FB00048 */ lw $s0, 0x48($sp) +/* 070C00 7F03C0D0 8FB1004C */ lw $s1, 0x4c($sp) +/* 070C04 7F03C0D4 8FB20050 */ lw $s2, 0x50($sp) +/* 070C08 7F03C0D8 8FB30054 */ lw $s3, 0x54($sp) +/* 070C0C 7F03C0DC 8FB40058 */ lw $s4, 0x58($sp) +/* 070C10 7F03C0E0 8FB5005C */ lw $s5, 0x5c($sp) +/* 070C14 7F03C0E4 8FB60060 */ lw $s6, 0x60($sp) +/* 070C18 7F03C0E8 03E00008 */ jr $ra +/* 070C1C 7F03C0EC 27BD00C8 */ addiu $sp, $sp, 0xc8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03C0F0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03C0F0 +/* 070C20 7F03C0F0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 070C24 7F03C0F4 AFBF001C */ sw $ra, 0x1c($sp) +/* 070C28 7F03C0F8 AFB00018 */ sw $s0, 0x18($sp) +/* 070C2C 7F03C0FC 0FC17722 */ jal get_hands_firing_status +/* 070C30 7F03C100 00808025 */ move $s0, $a0 +/* 070C34 7F03C104 5040005F */ beql $v0, $zero, .L7F03C284 +/* 070C38 7F03C108 8FBF001C */ lw $ra, 0x1c($sp) +/* 070C3C 7F03C10C 0FC17674 */ jal get_item_in_hand +/* 070C40 7F03C110 02002025 */ move $a0, $s0 +/* 070C44 7F03C114 2401001E */ li $at, 30 +/* 070C48 7F03C118 14410005 */ bne $v0, $at, .L7F03C130 +/* 070C4C 7F03C11C 00403025 */ move $a2, $v0 +/* 070C50 7F03C120 0FC14686 */ jal trigger_remote_mine_detonation +/* 070C54 7F03C124 00000000 */ nop +/* 070C58 7F03C128 10000056 */ b .L7F03C284 +/* 070C5C 7F03C12C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03C130: +/* 070C60 7F03C130 24010018 */ li $at, 24 +/* 070C64 7F03C134 10410052 */ beq $v0, $at, .L7F03C280 +/* 070C68 7F03C138 24010019 */ li $at, 25 +/* 070C6C 7F03C13C 10410050 */ beq $v0, $at, .L7F03C280 +/* 070C70 7F03C140 2401001A */ li $at, 26 +/* 070C74 7F03C144 1041004E */ beq $v0, $at, .L7F03C280 +/* 070C78 7F03C148 24010003 */ li $at, 3 +/* 070C7C 7F03C14C 1041004C */ beq $v0, $at, .L7F03C280 +/* 070C80 7F03C150 2401001D */ li $at, 29 +/* 070C84 7F03C154 1041004A */ beq $v0, $at, .L7F03C280 +/* 070C88 7F03C158 2401001C */ li $at, 28 +/* 070C8C 7F03C15C 10410048 */ beq $v0, $at, .L7F03C280 +/* 070C90 7F03C160 2401001B */ li $at, 27 +/* 070C94 7F03C164 10410046 */ beq $v0, $at, .L7F03C280 +/* 070C98 7F03C168 24010023 */ li $at, 35 +/* 070C9C 7F03C16C 10410044 */ beq $v0, $at, .L7F03C280 +/* 070CA0 7F03C170 24010024 */ li $at, 36 +/* 070CA4 7F03C174 10410042 */ beq $v0, $at, .L7F03C280 +/* 070CA8 7F03C178 24010021 */ li $at, 33 +/* 070CAC 7F03C17C 10410040 */ beq $v0, $at, .L7F03C280 +/* 070CB0 7F03C180 2401002F */ li $at, 47 +/* 070CB4 7F03C184 1041003E */ beq $v0, $at, .L7F03C280 +/* 070CB8 7F03C188 24010030 */ li $at, 48 +/* 070CBC 7F03C18C 1041003C */ beq $v0, $at, .L7F03C280 +/* 070CC0 7F03C190 2401003D */ li $at, 61 +/* 070CC4 7F03C194 1041003A */ beq $v0, $at, .L7F03C280 +/* 070CC8 7F03C198 24010058 */ li $at, 88 +/* 070CCC 7F03C19C 10410038 */ beq $v0, $at, .L7F03C280 +/* 070CD0 7F03C1A0 24010022 */ li $at, 34 +/* 070CD4 7F03C1A4 10410036 */ beq $v0, $at, .L7F03C280 +/* 070CD8 7F03C1A8 24010020 */ li $at, 32 +/* 070CDC 7F03C1AC 54410006 */ bnel $v0, $at, .L7F03C1C8 +/* 070CE0 7F03C1B0 24010001 */ li $at, 1 +/* 070CE4 7F03C1B4 0FC17ED9 */ jal sub_GAME_7F05FB64 +/* 070CE8 7F03C1B8 02002025 */ move $a0, $s0 +/* 070CEC 7F03C1BC 10000031 */ b .L7F03C284 +/* 070CF0 7F03C1C0 8FBF001C */ lw $ra, 0x1c($sp) +/* 070CF4 7F03C1C4 24010001 */ li $at, 1 +.L7F03C1C8: +/* 070CF8 7F03C1C8 10410004 */ beq $v0, $at, .L7F03C1DC +/* 070CFC 7F03C1CC 02002025 */ move $a0, $s0 +/* 070D00 7F03C1D0 24010002 */ li $at, 2 +/* 070D04 7F03C1D4 54410006 */ bnel $v0, $at, .L7F03C1F0 +/* 070D08 7F03C1D8 2401000F */ li $at, 15 +.L7F03C1DC: +/* 070D0C 7F03C1DC 0FC0EF7B */ jal sub_GAME_7F03BDEC +/* 070D10 7F03C1E0 00C02825 */ move $a1, $a2 +/* 070D14 7F03C1E4 10000027 */ b .L7F03C284 +/* 070D18 7F03C1E8 8FBF001C */ lw $ra, 0x1c($sp) +/* 070D1C 7F03C1EC 2401000F */ li $at, 15 +.L7F03C1F0: +/* 070D20 7F03C1F0 10410004 */ beq $v0, $at, .L7F03C204 +/* 070D24 7F03C1F4 00C02025 */ move $a0, $a2 +/* 070D28 7F03C1F8 24010010 */ li $at, 16 +/* 070D2C 7F03C1FC 5441000F */ bnel $v0, $at, .L7F03C23C +/* 070D30 7F03C200 24010028 */ li $at, 40 +.L7F03C204: +/* 070D34 7F03C204 0FC1A9BE */ jal inc_curplayer_hitcount_with_weapon +/* 070D38 7F03C208 00002825 */ move $a1, $zero +/* 070D3C 7F03C20C 00001025 */ move $v0, $zero +/* 070D40 7F03C210 02002025 */ move $a0, $s0 +.L7F03C214: +/* 070D44 7F03C214 0FC0EC57 */ jal sub_GAME_7F03B15C +/* 070D48 7F03C218 AFA20020 */ sw $v0, 0x20($sp) +/* 070D4C 7F03C21C 8FA20020 */ lw $v0, 0x20($sp) +/* 070D50 7F03C220 24010005 */ li $at, 5 +/* 070D54 7F03C224 24420001 */ addiu $v0, $v0, 1 +/* 070D58 7F03C228 5441FFFA */ bnel $v0, $at, .L7F03C214 +/* 070D5C 7F03C22C 02002025 */ move $a0, $s0 +/* 070D60 7F03C230 10000014 */ b .L7F03C284 +/* 070D64 7F03C234 8FBF001C */ lw $ra, 0x1c($sp) +/* 070D68 7F03C238 24010028 */ li $at, 40 +.L7F03C23C: +/* 070D6C 7F03C23C 54410006 */ bnel $v0, $at, .L7F03C258 +/* 070D70 7F03C240 2401003C */ li $at, 60 +/* 070D74 7F03C244 0FC15E26 */ jal sub_GAME_7F057898 +/* 070D78 7F03C248 00000000 */ nop +/* 070D7C 7F03C24C 1000000D */ b .L7F03C284 +/* 070D80 7F03C250 8FBF001C */ lw $ra, 0x1c($sp) +/* 070D84 7F03C254 2401003C */ li $at, 60 +.L7F03C258: +/* 070D88 7F03C258 14410005 */ bne $v0, $at, .L7F03C270 +/* 070D8C 7F03C25C 00C02025 */ move $a0, $a2 +/* 070D90 7F03C260 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 070D94 7F03C264 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 070D98 7F03C268 10000005 */ b .L7F03C280 +/* 070D9C 7F03C26C ADC01270 */ sw $zero, 0x1270($t6) +.L7F03C270: +/* 070DA0 7F03C270 0FC1A9BE */ jal inc_curplayer_hitcount_with_weapon +/* 070DA4 7F03C274 00002825 */ move $a1, $zero +/* 070DA8 7F03C278 0FC0EC57 */ jal sub_GAME_7F03B15C +/* 070DAC 7F03C27C 02002025 */ move $a0, $s0 +.L7F03C280: +/* 070DB0 7F03C280 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03C284: +/* 070DB4 7F03C284 8FB00018 */ lw $s0, 0x18($sp) +/* 070DB8 7F03C288 27BD0028 */ addiu $sp, $sp, 0x28 +/* 070DBC 7F03C28C 03E00008 */ jr $ra +/* 070DC0 7F03C290 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03C294(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03C294 +/* 070DC4 7F03C294 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 070DC8 7F03C298 AFBF0014 */ sw $ra, 0x14($sp) +/* 070DCC 7F03C29C 0FC0F03C */ jal sub_GAME_7F03C0F0 +/* 070DD0 7F03C2A0 00002025 */ move $a0, $zero +/* 070DD4 7F03C2A4 0FC0F03C */ jal sub_GAME_7F03C0F0 +/* 070DD8 7F03C2A8 24040001 */ li $a0, 1 +/* 070DDC 7F03C2AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 070DE0 7F03C2B0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 070DE4 7F03C2B4 03E00008 */ jr $ra +/* 070DE8 7F03C2B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03C2BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03C2BC +/* 070DEC 7F03C2BC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 070DF0 7F03C2C0 AFB00018 */ sw $s0, 0x18($sp) +/* 070DF4 7F03C2C4 24030001 */ li $v1, 1 +/* 070DF8 7F03C2C8 00808025 */ move $s0, $a0 +/* 070DFC 7F03C2CC 14A30029 */ bne $a1, $v1, .L7F03C374 +/* 070E00 7F03C2D0 AFBF001C */ sw $ra, 0x1c($sp) +/* 070E04 7F03C2D4 90820000 */ lbu $v0, ($a0) +/* 070E08 7F03C2D8 24010004 */ li $at, 4 +/* 070E0C 7F03C2DC 50410004 */ beql $v0, $at, .L7F03C2F0 +/* 070E10 7F03C2E0 8E030004 */ lw $v1, 4($s0) +/* 070E14 7F03C2E4 14620019 */ bne $v1, $v0, .L7F03C34C +/* 070E18 7F03C2E8 00000000 */ nop +/* 070E1C 7F03C2EC 8E030004 */ lw $v1, 4($s0) +.L7F03C2F0: +/* 070E20 7F03C2F0 241804B0 */ li $t8, 1200 +/* 070E24 7F03C2F4 2401FFFB */ li $at, -5 +/* 070E28 7F03C2F8 906E0002 */ lbu $t6, 2($v1) +/* 070E2C 7F03C2FC 02002025 */ move $a0, $s0 +/* 070E30 7F03C300 31CF0004 */ andi $t7, $t6, 4 +/* 070E34 7F03C304 11E00011 */ beqz $t7, .L7F03C34C +/* 070E38 7F03C308 00000000 */ nop +/* 070E3C 7F03C30C A6180002 */ sh $t8, 2($s0) +/* 070E40 7F03C310 8C790064 */ lw $t9, 0x64($v1) +/* 070E44 7F03C314 906B0002 */ lbu $t3, 2($v1) +/* 070E48 7F03C318 44802000 */ mtc1 $zero, $f4 +/* 070E4C 7F03C31C 37280800 */ ori $t0, $t9, 0x800 +/* 070E50 7F03C320 AC680064 */ sw $t0, 0x64($v1) +/* 070E54 7F03C324 01015024 */ and $t2, $t0, $at +/* 070E58 7F03C328 316CFF7F */ andi $t4, $t3, 0xff7f +/* 070E5C 7F03C32C AC6A0064 */ sw $t2, 0x64($v1) +/* 070E60 7F03C330 A06C0002 */ sb $t4, 2($v1) +/* 070E64 7F03C334 0FC0F863 */ jal sub_GAME_7F03E18C +/* 070E68 7F03C338 E4640070 */ swc1 $f4, 0x70($v1) +/* 070E6C 7F03C33C 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 070E70 7F03C340 02002025 */ move $a0, $s0 +/* 070E74 7F03C344 10000029 */ b .L7F03C3EC +/* 070E78 7F03C348 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03C34C: +/* 070E7C 7F03C34C 0FC0F863 */ jal sub_GAME_7F03E18C +/* 070E80 7F03C350 02002025 */ move $a0, $s0 +/* 070E84 7F03C354 0FC0E94E */ jal sub_GAME_7F03A538 +/* 070E88 7F03C358 02002025 */ move $a0, $s0 +/* 070E8C 7F03C35C 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 070E90 7F03C360 02002025 */ move $a0, $s0 +/* 070E94 7F03C364 0FC0E921 */ jal set_last_obj_pos_data +/* 070E98 7F03C368 02002025 */ move $a0, $s0 +/* 070E9C 7F03C36C 1000001F */ b .L7F03C3EC +/* 070EA0 7F03C370 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03C374: +/* 070EA4 7F03C374 24010002 */ li $at, 2 +/* 070EA8 7F03C378 54A1000A */ bnel $a1, $at, .L7F03C3A4 +/* 070EAC 7F03C37C 24010004 */ li $at, 4 +/* 070EB0 7F03C380 0FC0F863 */ jal sub_GAME_7F03E18C +/* 070EB4 7F03C384 02002025 */ move $a0, $s0 +/* 070EB8 7F03C388 0FC0E94E */ jal sub_GAME_7F03A538 +/* 070EBC 7F03C38C 02002025 */ move $a0, $s0 +/* 070EC0 7F03C390 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 070EC4 7F03C394 02002025 */ move $a0, $s0 +/* 070EC8 7F03C398 10000014 */ b .L7F03C3EC +/* 070ECC 7F03C39C 8FBF001C */ lw $ra, 0x1c($sp) +/* 070ED0 7F03C3A0 24010004 */ li $at, 4 +.L7F03C3A4: +/* 070ED4 7F03C3A4 54A10011 */ bnel $a1, $at, .L7F03C3EC +/* 070ED8 7F03C3A8 8FBF001C */ lw $ra, 0x1c($sp) +/* 070EDC 7F03C3AC 0FC0F863 */ jal sub_GAME_7F03E18C +/* 070EE0 7F03C3B0 02002025 */ move $a0, $s0 +/* 070EE4 7F03C3B4 0FC0E94E */ jal sub_GAME_7F03A538 +/* 070EE8 7F03C3B8 02002025 */ move $a0, $s0 +/* 070EEC 7F03C3BC 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 070EF0 7F03C3C0 02002025 */ move $a0, $s0 +/* 070EF4 7F03C3C4 0FC13011 */ jal sub_GAME_7F04C044 +/* 070EF8 7F03C3C8 02002025 */ move $a0, $s0 +/* 070EFC 7F03C3CC 0FC1033C */ jal sub_GAME_7F040CF0 +/* 070F00 7F03C3D0 02002025 */ move $a0, $s0 +/* 070F04 7F03C3D4 0FC225E6 */ jal get_curplayer_positiondata +/* 070F08 7F03C3D8 00000000 */ nop +/* 070F0C 7F03C3DC 02002025 */ move $a0, $s0 +/* 070F10 7F03C3E0 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 070F14 7F03C3E4 00402825 */ move $a1, $v0 +/* 070F18 7F03C3E8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03C3EC: +/* 070F1C 7F03C3EC 8FB00018 */ lw $s0, 0x18($sp) +/* 070F20 7F03C3F0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 070F24 7F03C3F4 03E00008 */ jr $ra +/* 070F28 7F03C3F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03C3FC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03C3FC +/* 070F2C 7F03C3FC 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 070F30 7F03C400 AFB00014 */ sw $s0, 0x14($sp) +/* 070F34 7F03C404 3C108007 */ lui $s0, %hi(dword_CODE_bss_80071DF0) +/* 070F38 7F03C408 8E101DF0 */ lw $s0, %lo(dword_CODE_bss_80071DF0)($s0) +/* 070F3C 7F03C40C AFB70030 */ sw $s7, 0x30($sp) +/* 070F40 7F03C410 3C178007 */ lui $s7, %hi(dword_CODE_bss_80071620) +/* 070F44 7F03C414 3C018007 */ lui $at, %hi(dword_CODE_bss_80071DF8) +/* 070F48 7F03C418 26F71620 */ addiu $s7, %lo(dword_CODE_bss_80071620) # addiu $s7, $s7, 0x1620 +/* 070F4C 7F03C41C AC201DF8 */ sw $zero, %lo(dword_CODE_bss_80071DF8)($at) +/* 070F50 7F03C420 2610FFFC */ addiu $s0, $s0, -4 +/* 070F54 7F03C424 0217082B */ sltu $at, $s0, $s7 +/* 070F58 7F03C428 AFBF0034 */ sw $ra, 0x34($sp) +/* 070F5C 7F03C42C AFB6002C */ sw $s6, 0x2c($sp) +/* 070F60 7F03C430 AFB50028 */ sw $s5, 0x28($sp) +/* 070F64 7F03C434 AFB40024 */ sw $s4, 0x24($sp) +/* 070F68 7F03C438 AFB30020 */ sw $s3, 0x20($sp) +/* 070F6C 7F03C43C AFB2001C */ sw $s2, 0x1c($sp) +/* 070F70 7F03C440 AFB10018 */ sw $s1, 0x18($sp) +/* 070F74 7F03C444 1420001D */ bnez $at, .L7F03C4BC +/* 070F78 7F03C448 24030001 */ li $v1, 1 +/* 070F7C 7F03C44C 24140002 */ li $s4, 2 +/* 070F80 7F03C450 24130004 */ li $s3, 4 +/* 070F84 7F03C454 24120001 */ li $s2, 1 +/* 070F88 7F03C458 24110003 */ li $s1, 3 +/* 070F8C 7F03C45C 8E040000 */ lw $a0, ($s0) +.L7F03C460: +/* 070F90 7F03C460 50800013 */ beql $a0, $zero, .L7F03C4B0 +/* 070F94 7F03C464 2610FFFC */ addiu $s0, $s0, -4 +/* 070F98 7F03C468 90820000 */ lbu $v0, ($a0) +/* 070F9C 7F03C46C 1222000E */ beq $s1, $v0, .L7F03C4A8 +/* 070FA0 7F03C470 00000000 */ nop +/* 070FA4 7F03C474 12420003 */ beq $s2, $v0, .L7F03C484 +/* 070FA8 7F03C478 00000000 */ nop +/* 070FAC 7F03C47C 16620005 */ bne $s3, $v0, .L7F03C494 +/* 070FB0 7F03C480 00000000 */ nop +.L7F03C484: +/* 070FB4 7F03C484 0FC13BD6 */ jal sub_GAME_7F04EF58 +/* 070FB8 7F03C488 00000000 */ nop +/* 070FBC 7F03C48C 10000006 */ b .L7F03C4A8 +/* 070FC0 7F03C490 00401825 */ move $v1, $v0 +.L7F03C494: +/* 070FC4 7F03C494 16820004 */ bne $s4, $v0, .L7F03C4A8 +/* 070FC8 7F03C498 00000000 */ nop +/* 070FCC 7F03C49C 0FC15601 */ jal sub_GAME_7F055804 +/* 070FD0 7F03C4A0 00000000 */ nop +/* 070FD4 7F03C4A4 00401825 */ move $v1, $v0 +.L7F03C4A8: +/* 070FD8 7F03C4A8 10600004 */ beqz $v1, .L7F03C4BC +/* 070FDC 7F03C4AC 2610FFFC */ addiu $s0, $s0, -4 +.L7F03C4B0: +/* 070FE0 7F03C4B0 0217082B */ sltu $at, $s0, $s7 +/* 070FE4 7F03C4B4 5020FFEA */ beql $at, $zero, .L7F03C460 +/* 070FE8 7F03C4B8 8E040000 */ lw $a0, ($s0) +.L7F03C4BC: +/* 070FEC 7F03C4BC 8FBF0034 */ lw $ra, 0x34($sp) +/* 070FF0 7F03C4C0 3C028007 */ lui $v0, %hi(dword_CODE_bss_80071DF8) +/* 070FF4 7F03C4C4 8C421DF8 */ lw $v0, %lo(dword_CODE_bss_80071DF8)($v0) +/* 070FF8 7F03C4C8 8FB00014 */ lw $s0, 0x14($sp) +/* 070FFC 7F03C4CC 8FB10018 */ lw $s1, 0x18($sp) +/* 071000 7F03C4D0 8FB2001C */ lw $s2, 0x1c($sp) +/* 071004 7F03C4D4 8FB30020 */ lw $s3, 0x20($sp) +/* 071008 7F03C4D8 8FB40024 */ lw $s4, 0x24($sp) +/* 07100C 7F03C4DC 8FB50028 */ lw $s5, 0x28($sp) +/* 071010 7F03C4E0 8FB6002C */ lw $s6, 0x2c($sp) +/* 071014 7F03C4E4 8FB70030 */ lw $s7, 0x30($sp) +/* 071018 7F03C4E8 03E00008 */ jr $ra +/* 07101C 7F03C4EC 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03C4F0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80052980*/ +glabel jpt_80052980 +.word loc_CODE_7F03C534 +.word loc_CODE_7F03C544 +.word def_7F03C52C +.word loc_CODE_7F03C534 +.word def_7F03C52C +.word def_7F03C52C +.word def_7F03C52C +.word def_7F03C52C + +.text +glabel sub_GAME_7F03C4F0 +/* 071020 7F03C4F0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 071024 7F03C4F4 AFBF0014 */ sw $ra, 0x14($sp) +/* 071028 7F03C4F8 0FC0F0FF */ jal sub_GAME_7F03C3FC +/* 07102C 7F03C4FC 00000000 */ nop +/* 071030 7F03C500 AFA2001C */ sw $v0, 0x1c($sp) +/* 071034 7F03C504 10400016 */ beqz $v0, .L7F03C560 +/* 071038 7F03C508 00002825 */ move $a1, $zero +/* 07103C 7F03C50C 904E0000 */ lbu $t6, ($v0) +/* 071040 7F03C510 25CFFFFF */ addiu $t7, $t6, -1 +/* 071044 7F03C514 2DE10008 */ sltiu $at, $t7, 8 +/* 071048 7F03C518 1020000D */ beqz $at, .L7F03C550 +/* 07104C 7F03C51C 000F7880 */ sll $t7, $t7, 2 +/* 071050 7F03C520 3C018005 */ lui $at, %hi(jpt_80052980) +/* 071054 7F03C524 002F0821 */ addu $at, $at, $t7 +/* 071058 7F03C528 8C2F2980 */ lw $t7, %lo(jpt_80052980)($at) +/* 07105C 7F03C52C 01E00008 */ jr $t7 +/* 071060 7F03C530 00000000 */ nop +loc_CODE_7F03C534: +/* 071064 7F03C534 0FC13C5C */ jal sub_GAME_7F04F170 +/* 071068 7F03C538 8FA4001C */ lw $a0, 0x1c($sp) +/* 07106C 7F03C53C 10000004 */ b .L7F03C550 +/* 071070 7F03C540 00402825 */ move $a1, $v0 +loc_CODE_7F03C544: +/* 071074 7F03C544 0FC15710 */ jal sub_GAME_7F055C40 +/* 071078 7F03C548 8FA4001C */ lw $a0, 0x1c($sp) +/* 07107C 7F03C54C 00402825 */ move $a1, $v0 +def_7F03C52C: +.L7F03C550: +/* 071080 7F03C550 0FC0F0AF */ jal sub_GAME_7F03C2BC +/* 071084 7F03C554 8FA4001C */ lw $a0, 0x1c($sp) +/* 071088 7F03C558 10000002 */ b .L7F03C564 +/* 07108C 7F03C55C 00001025 */ move $v0, $zero +.L7F03C560: +/* 071090 7F03C560 24020001 */ li $v0, 1 +.L7F03C564: +/* 071094 7F03C564 8FBF0014 */ lw $ra, 0x14($sp) +/* 071098 7F03C568 27BD0020 */ addiu $sp, $sp, 0x20 +/* 07109C 7F03C56C 03E00008 */ jr $ra +/* 0710A0 7F03C570 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03C574(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03C574 +/* 0710A4 7F03C574 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0710A8 7F03C578 AFBF002C */ sw $ra, 0x2c($sp) +/* 0710AC 7F03C57C AFB20024 */ sw $s2, 0x24($sp) +/* 0710B0 7F03C580 00809025 */ move $s2, $a0 +/* 0710B4 7F03C584 AFB30028 */ sw $s3, 0x28($sp) +/* 0710B8 7F03C588 AFB10020 */ sw $s1, 0x20($sp) +/* 0710BC 7F03C58C AFB0001C */ sw $s0, 0x1c($sp) +/* 0710C0 7F03C590 0FC26919 */ jal get_num_players +/* 0710C4 7F03C594 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0710C8 7F03C598 240E0001 */ li $t6, 1 +/* 0710CC 7F03C59C 00409825 */ move $s3, $v0 +/* 0710D0 7F03C5A0 AFAE0030 */ sw $t6, 0x30($sp) +/* 0710D4 7F03C5A4 1840001F */ blez $v0, .L7F03C624 +/* 0710D8 7F03C5A8 00008025 */ move $s0, $zero +/* 0710DC 7F03C5AC 3C0143C8 */ li $at, 0x43C80000 # 400.000000 +/* 0710E0 7F03C5B0 3C118008 */ lui $s1, %hi(ptr_BONDdata_p1) +/* 0710E4 7F03C5B4 4481A000 */ mtc1 $at, $f20 +/* 0710E8 7F03C5B8 26319EE0 */ addiu $s1, %lo(ptr_BONDdata_p1) # addiu $s1, $s1, -0x6120 +.L7F03C5BC: +/* 0710EC 7F03C5BC 8E2F0000 */ lw $t7, ($s1) +/* 0710F0 7F03C5C0 C6460008 */ lwc1 $f6, 8($s2) +/* 0710F4 7F03C5C4 C64A000C */ lwc1 $f10, 0xc($s2) +/* 0710F8 7F03C5C8 8DE200A8 */ lw $v0, 0xa8($t7) +/* 0710FC 7F03C5CC C6520010 */ lwc1 $f18, 0x10($s2) +/* 071100 7F03C5D0 C4440008 */ lwc1 $f4, 8($v0) +/* 071104 7F03C5D4 C448000C */ lwc1 $f8, 0xc($v0) +/* 071108 7F03C5D8 C4500010 */ lwc1 $f16, 0x10($v0) +/* 07110C 7F03C5DC 46062001 */ sub.s $f0, $f4, $f6 +/* 071110 7F03C5E0 460A4081 */ sub.s $f2, $f8, $f10 +/* 071114 7F03C5E4 46000102 */ mul.s $f4, $f0, $f0 +/* 071118 7F03C5E8 46128381 */ sub.s $f14, $f16, $f18 +/* 07111C 7F03C5EC 46021182 */ mul.s $f6, $f2, $f2 +/* 071120 7F03C5F0 46062200 */ add.s $f8, $f4, $f6 +/* 071124 7F03C5F4 460E7282 */ mul.s $f10, $f14, $f14 +/* 071128 7F03C5F8 0C007DF8 */ jal sqrtf +/* 07112C 7F03C5FC 460A4300 */ add.s $f12, $f8, $f10 +/* 071130 7F03C600 4614003C */ c.lt.s $f0, $f20 +/* 071134 7F03C604 26100001 */ addiu $s0, $s0, 1 +/* 071138 7F03C608 0213082A */ slt $at, $s0, $s3 +/* 07113C 7F03C60C 45000003 */ bc1f .L7F03C61C +/* 071140 7F03C610 00000000 */ nop +/* 071144 7F03C614 10000003 */ b .L7F03C624 +/* 071148 7F03C618 AFA00030 */ sw $zero, 0x30($sp) +.L7F03C61C: +/* 07114C 7F03C61C 1420FFE7 */ bnez $at, .L7F03C5BC +/* 071150 7F03C620 26310004 */ addiu $s1, $s1, 4 +.L7F03C624: +/* 071154 7F03C624 8FBF002C */ lw $ra, 0x2c($sp) +/* 071158 7F03C628 8FA20030 */ lw $v0, 0x30($sp) +/* 07115C 7F03C62C D7B40010 */ ldc1 $f20, 0x10($sp) +/* 071160 7F03C630 8FB0001C */ lw $s0, 0x1c($sp) +/* 071164 7F03C634 8FB10020 */ lw $s1, 0x20($sp) +/* 071168 7F03C638 8FB20024 */ lw $s2, 0x24($sp) +/* 07116C 7F03C63C 8FB30028 */ lw $s3, 0x28($sp) +/* 071170 7F03C640 03E00008 */ jr $ra +/* 071174 7F03C644 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +void handle_mp_respawn_and_some_things(void) { + +} +#else +GLOBAL_ASM( +.text +glabel handle_mp_respawn_and_some_things +/* 071178 7F03C648 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 07117C 7F03C64C AFBF0024 */ sw $ra, 0x24($sp) +/* 071180 7F03C650 AFB30020 */ sw $s3, 0x20($sp) +/* 071184 7F03C654 AFB2001C */ sw $s2, 0x1c($sp) +/* 071188 7F03C658 AFB10018 */ sw $s1, 0x18($sp) +/* 07118C 7F03C65C 0FC0CA47 */ jal sub_GAME_7F03291C +/* 071190 7F03C660 AFB00014 */ sw $s0, 0x14($sp) +/* 071194 7F03C664 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 071198 7F03C668 00000000 */ nop +/* 07119C 7F03C66C 104000E9 */ beqz $v0, .L7F03CA14 +/* 0711A0 7F03C670 00408825 */ move $s1, $v0 +.L7F03C674: +/* 0711A4 7F03C674 8E2E0024 */ lw $t6, 0x24($s1) +/* 0711A8 7F03C678 24010003 */ li $at, 3 +/* 0711AC 7F03C67C 00009025 */ move $s2, $zero +/* 0711B0 7F03C680 AFAE004C */ sw $t6, 0x4c($sp) +/* 0711B4 7F03C684 92220000 */ lbu $v0, ($s1) +/* 0711B8 7F03C688 54410009 */ bnel $v0, $at, .L7F03C6B0 +/* 0711BC 7F03C68C 24010001 */ li $at, 1 +/* 0711C0 7F03C690 8E300004 */ lw $s0, 4($s1) +/* 0711C4 7F03C694 0FC18AC0 */ jal sub_GAME_7F062B00 +/* 0711C8 7F03C698 26040180 */ addiu $a0, $s0, 0x180 +/* 0711CC 7F03C69C 0FC18AC0 */ jal sub_GAME_7F062B00 +/* 0711D0 7F03C6A0 260401AC */ addiu $a0, $s0, 0x1ac +/* 0711D4 7F03C6A4 100000C7 */ b .L7F03C9C4 +/* 0711D8 7F03C6A8 24010005 */ li $at, 5 +/* 0711DC 7F03C6AC 24010001 */ li $at, 1 +.L7F03C6B0: +/* 0711E0 7F03C6B0 10410005 */ beq $v0, $at, .L7F03C6C8 +/* 0711E4 7F03C6B4 24010004 */ li $at, 4 +/* 0711E8 7F03C6B8 10410003 */ beq $v0, $at, .L7F03C6C8 +/* 0711EC 7F03C6BC 24010002 */ li $at, 2 +/* 0711F0 7F03C6C0 54410092 */ bnel $v0, $at, .L7F03C90C +/* 0711F4 7F03C6C4 24010007 */ li $at, 7 +.L7F03C6C8: +/* 0711F8 7F03C6C8 86220002 */ lh $v0, 2($s1) +/* 0711FC 7F03C6CC 8E300004 */ lw $s0, 4($s1) +/* 071200 7F03C6D0 00009825 */ move $s3, $zero +/* 071204 7F03C6D4 18400083 */ blez $v0, .L7F03C8E4 +/* 071208 7F03C6D8 2841003C */ slti $at, $v0, 0x3c +/* 07120C 7F03C6DC 14200002 */ bnez $at, .L7F03C6E8 +/* 071210 7F03C6E0 24030001 */ li $v1, 1 +/* 071214 7F03C6E4 00001825 */ move $v1, $zero +.L7F03C6E8: +/* 071218 7F03C6E8 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 07121C 7F03C6EC 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 071220 7F03C6F0 004FC023 */ subu $t8, $v0, $t7 +/* 071224 7F03C6F4 A6380002 */ sh $t8, 2($s1) +/* 071228 7F03C6F8 86390002 */ lh $t9, 2($s1) +/* 07122C 7F03C6FC 2B21003C */ slti $at, $t9, 0x3c +/* 071230 7F03C700 5020000B */ beql $at, $zero, .L7F03C730 +/* 071234 7F03C704 86220002 */ lh $v0, 2($s1) +/* 071238 7F03C708 14600008 */ bnez $v1, .L7F03C72C +/* 07123C 7F03C70C 02202025 */ move $a0, $s1 +/* 071240 7F03C710 0FC0F15D */ jal sub_GAME_7F03C574 +/* 071244 7F03C714 AFA30038 */ sw $v1, 0x38($sp) +/* 071248 7F03C718 14400004 */ bnez $v0, .L7F03C72C +/* 07124C 7F03C71C 8FA30038 */ lw $v1, 0x38($sp) +/* 071250 7F03C720 86280002 */ lh $t0, 2($s1) +/* 071254 7F03C724 2509003C */ addiu $t1, $t0, 0x3c +/* 071258 7F03C728 A6290002 */ sh $t1, 2($s1) +.L7F03C72C: +/* 07125C 7F03C72C 86220002 */ lh $v0, 2($s1) +.L7F03C730: +/* 071260 7F03C730 1C40000F */ bgtz $v0, .L7F03C770 +/* 071264 7F03C734 2841003C */ slti $at, $v0, 0x3c +/* 071268 7F03C738 A6200002 */ sh $zero, 2($s1) +/* 07126C 7F03C73C 920A0002 */ lbu $t2, 2($s0) +/* 071270 7F03C740 314B0010 */ andi $t3, $t2, 0x10 +/* 071274 7F03C744 51600006 */ beql $t3, $zero, .L7F03C760 +/* 071278 7F03C748 8E0E0064 */ lw $t6, 0x64($s0) +/* 07127C 7F03C74C 8E0C0064 */ lw $t4, 0x64($s0) +/* 071280 7F03C750 358D1000 */ ori $t5, $t4, 0x1000 +/* 071284 7F03C754 10000063 */ b .L7F03C8E4 +/* 071288 7F03C758 AE0D0064 */ sw $t5, 0x64($s0) +/* 07128C 7F03C75C 8E0E0064 */ lw $t6, 0x64($s0) +.L7F03C760: +/* 071290 7F03C760 2401EFFF */ li $at, -4097 +/* 071294 7F03C764 01C17824 */ and $t7, $t6, $at +/* 071298 7F03C768 1000005E */ b .L7F03C8E4 +/* 07129C 7F03C76C AE0F0064 */ sw $t7, 0x64($s0) +.L7F03C770: +/* 0712A0 7F03C770 5020005D */ beql $at, $zero, .L7F03C8E8 +/* 0712A4 7F03C774 92190003 */ lbu $t9, 3($s0) +/* 0712A8 7F03C778 5460005B */ bnezl $v1, .L7F03C8E8 +/* 0712AC 7F03C77C 92190003 */ lbu $t9, 3($s0) +/* 0712B0 7F03C780 44800000 */ mtc1 $zero, $f0 +/* 0712B4 7F03C784 C6040070 */ lwc1 $f4, 0x70($s0) +/* 0712B8 7F03C788 46040032 */ c.eq.s $f0, $f4 +/* 0712BC 7F03C78C 00000000 */ nop +/* 0712C0 7F03C790 45020035 */ bc1fl .L7F03C868 +/* 0712C4 7F03C794 92080002 */ lbu $t0, 2($s0) +/* 0712C8 7F03C798 92180002 */ lbu $t8, 2($s0) +/* 0712CC 7F03C79C 33190080 */ andi $t9, $t8, 0x80 +/* 0712D0 7F03C7A0 57200031 */ bnezl $t9, .L7F03C868 +/* 0712D4 7F03C7A4 92080002 */ lbu $t0, 2($s0) +/* 0712D8 7F03C7A8 8E080008 */ lw $t0, 8($s0) +/* 0712DC 7F03C7AC 31098000 */ andi $t1, $t0, 0x8000 +/* 0712E0 7F03C7B0 11200023 */ beqz $t1, .L7F03C840 +/* 0712E4 7F03C7B4 00000000 */ nop +/* 0712E8 7F03C7B8 0FC0F863 */ jal sub_GAME_7F03E18C +/* 0712EC 7F03C7BC 02202025 */ move $a0, $s1 +/* 0712F0 7F03C7C0 0FC0E94E */ jal sub_GAME_7F03A538 +/* 0712F4 7F03C7C4 02202025 */ move $a0, $s1 +/* 0712F8 7F03C7C8 8E0A0064 */ lw $t2, 0x64($s0) +/* 0712FC 7F03C7CC 2401F7FF */ li $at, -2049 +/* 071300 7F03C7D0 02202025 */ move $a0, $s1 +/* 071304 7F03C7D4 01415824 */ and $t3, $t2, $at +/* 071308 7F03C7D8 0FC15AEA */ jal sub_GAME_7F056BA8 +/* 07130C 7F03C7DC AE0B0064 */ sw $t3, 0x64($s0) +/* 071310 7F03C7E0 AFA20030 */ sw $v0, 0x30($sp) +/* 071314 7F03C7E4 860C0006 */ lh $t4, 6($s0) +/* 071318 7F03C7E8 0FC2F7C1 */ jal sub_GAME_7F0BDF04 +/* 07131C 7F03C7EC AFAC002C */ sw $t4, 0x2c($sp) +/* 071320 7F03C7F0 8FAD0030 */ lw $t5, 0x30($sp) +/* 071324 7F03C7F4 8FAE002C */ lw $t6, 0x2c($sp) +/* 071328 7F03C7F8 00402025 */ move $a0, $v0 +/* 07132C 7F03C7FC 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 071330 7F03C800 01AE2821 */ addu $a1, $t5, $t6 +/* 071334 7F03C804 5040002A */ beql $v0, $zero, .L7F03C8B0 +/* 071338 7F03C808 92180003 */ lbu $t8, 3($s0) +/* 07133C 7F03C80C 8C4F0010 */ lw $t7, 0x10($v0) +/* 071340 7F03C810 51E00027 */ beql $t7, $zero, .L7F03C8B0 +/* 071344 7F03C814 92180003 */ lbu $t8, 3($s0) +/* 071348 7F03C818 8E040014 */ lw $a0, 0x14($s0) +/* 07134C 7F03C81C 8C850014 */ lw $a1, 0x14($a0) +/* 071350 7F03C820 0FC1B39E */ jal set_obj_instance_controller_scale +/* 071354 7F03C824 AFA20028 */ sw $v0, 0x28($sp) +/* 071358 7F03C828 8FA30028 */ lw $v1, 0x28($sp) +/* 07135C 7F03C82C 8E040010 */ lw $a0, 0x10($s0) +/* 071360 7F03C830 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 071364 7F03C834 8C650010 */ lw $a1, 0x10($v1) +/* 071368 7F03C838 1000001C */ b .L7F03C8AC +/* 07136C 7F03C83C 24130001 */ li $s3, 1 +.L7F03C840: +/* 071370 7F03C840 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 071374 7F03C844 02202025 */ move $a0, $s1 +/* 071378 7F03C848 0FC0F84D */ jal sub_GAME_7F03E134 +/* 07137C 7F03C84C 02202025 */ move $a0, $s1 +/* 071380 7F03C850 8E180064 */ lw $t8, 0x64($s0) +/* 071384 7F03C854 2401F7FF */ li $at, -2049 +/* 071388 7F03C858 0301C824 */ and $t9, $t8, $at +/* 07138C 7F03C85C 10000013 */ b .L7F03C8AC +/* 071390 7F03C860 AE190064 */ sw $t9, 0x64($s0) +/* 071394 7F03C864 92080002 */ lbu $t0, 2($s0) +.L7F03C868: +/* 071398 7F03C868 31090008 */ andi $t1, $t0, 8 +/* 07139C 7F03C86C 51200006 */ beql $t1, $zero, .L7F03C888 +/* 0713A0 7F03C870 8E0C0008 */ lw $t4, 8($s0) +/* 0713A4 7F03C874 8E0A0008 */ lw $t2, 8($s0) +/* 0713A8 7F03C878 354B0100 */ ori $t3, $t2, 0x100 +/* 0713AC 7F03C87C 10000005 */ b .L7F03C894 +/* 0713B0 7F03C880 AE0B0008 */ sw $t3, 8($s0) +/* 0713B4 7F03C884 8E0C0008 */ lw $t4, 8($s0) +.L7F03C888: +/* 0713B8 7F03C888 2401FEFF */ li $at, -257 +/* 0713BC 7F03C88C 01816824 */ and $t5, $t4, $at +/* 0713C0 7F03C890 AE0D0008 */ sw $t5, 8($s0) +.L7F03C894: +/* 0713C4 7F03C894 920E0002 */ lbu $t6, 2($s0) +/* 0713C8 7F03C898 E6000070 */ swc1 $f0, 0x70($s0) +/* 0713CC 7F03C89C 8E040014 */ lw $a0, 0x14($s0) +/* 0713D0 7F03C8A0 31CFFF7F */ andi $t7, $t6, 0xff7f +/* 0713D4 7F03C8A4 0FC1437A */ jal sub_GAME_7F050DE8 +/* 0713D8 7F03C8A8 A20F0002 */ sb $t7, 2($s0) +.L7F03C8AC: +/* 0713DC 7F03C8AC 92180003 */ lbu $t8, 3($s0) +.L7F03C8B0: +/* 0713E0 7F03C8B0 24010015 */ li $at, 21 +/* 0713E4 7F03C8B4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0713E8 7F03C8B8 17010003 */ bne $t8, $at, .L7F03C8C8 +/* 0713EC 7F03C8BC 24050052 */ li $a1, 82 +/* 0713F0 7F03C8C0 C6060080 */ lwc1 $f6, 0x80($s0) +/* 0713F4 7F03C8C4 E6060084 */ swc1 $f6, 0x84($s0) +.L7F03C8C8: +/* 0713F8 7F03C8C8 16600006 */ bnez $s3, .L7F03C8E4 +/* 0713FC 7F03C8CC 00003025 */ move $a2, $zero +/* 071400 7F03C8D0 0C002382 */ jal play_sfx_a1 +/* 071404 7F03C8D4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 071408 7F03C8D8 00402025 */ move $a0, $v0 +/* 07140C 7F03C8DC 0FC14E84 */ jal sub_GAME_7F053A10 +/* 071410 7F03C8E0 26250008 */ addiu $a1, $s1, 8 +.L7F03C8E4: +/* 071414 7F03C8E4 92190003 */ lbu $t9, 3($s0) +.L7F03C8E8: +/* 071418 7F03C8E8 2401000D */ li $at, 13 +/* 07141C 7F03C8EC 57210035 */ bnel $t9, $at, .L7F03C9C4 +/* 071420 7F03C8F0 24010005 */ li $at, 5 +/* 071424 7F03C8F4 8E220004 */ lw $v0, 4($s1) +/* 071428 7F03C8F8 0FC18AC0 */ jal sub_GAME_7F062B00 +/* 07142C 7F03C8FC 8C4400CC */ lw $a0, 0xcc($v0) +/* 071430 7F03C900 10000030 */ b .L7F03C9C4 +/* 071434 7F03C904 24010005 */ li $at, 5 +/* 071438 7F03C908 24010007 */ li $at, 7 +.L7F03C90C: +/* 07143C 7F03C90C 54410006 */ bnel $v0, $at, .L7F03C928 +/* 071440 7F03C910 24010008 */ li $at, 8 +/* 071444 7F03C914 0FC273BA */ jal sub_GAME_7F09CEE8 +/* 071448 7F03C918 02202025 */ move $a0, $s1 +/* 07144C 7F03C91C 10000028 */ b .L7F03C9C0 +/* 071450 7F03C920 00409025 */ move $s2, $v0 +/* 071454 7F03C924 24010008 */ li $at, 8 +.L7F03C928: +/* 071458 7F03C928 54410006 */ bnel $v0, $at, .L7F03C944 +/* 07145C 7F03C92C 24010006 */ li $at, 6 +/* 071460 7F03C930 0FC27A2B */ jal sub_GAME_7F09E8AC +/* 071464 7F03C934 02202025 */ move $a0, $s1 +/* 071468 7F03C938 10000021 */ b .L7F03C9C0 +/* 07146C 7F03C93C 00409025 */ move $s2, $v0 +/* 071470 7F03C940 24010006 */ li $at, 6 +.L7F03C944: +/* 071474 7F03C944 5441001F */ bnel $v0, $at, .L7F03C9C4 +/* 071478 7F03C948 24010005 */ li $at, 5 +/* 07147C 7F03C94C 0FC26C57 */ jal sub_GAME_7F09B15C +/* 071480 7F03C950 02202025 */ move $a0, $s1 +/* 071484 7F03C954 00024080 */ sll $t0, $v0, 2 +/* 071488 7F03C958 3C048008 */ lui $a0, %hi(ptr_BONDdata_p1) +/* 07148C 7F03C95C 00882021 */ addu $a0, $a0, $t0 +/* 071490 7F03C960 8C849EE0 */ lw $a0, %lo(ptr_BONDdata_p1)($a0) +/* 071494 7F03C964 0FC18AC0 */ jal sub_GAME_7F062B00 +/* 071498 7F03C968 24840A54 */ addiu $a0, $a0, 0xa54 +/* 07149C 7F03C96C 0FC26C57 */ jal sub_GAME_7F09B15C +/* 0714A0 7F03C970 02202025 */ move $a0, $s1 +/* 0714A4 7F03C974 00024880 */ sll $t1, $v0, 2 +/* 0714A8 7F03C978 3C048008 */ lui $a0, %hi(ptr_BONDdata_p1) +/* 0714AC 7F03C97C 00892021 */ addu $a0, $a0, $t1 +/* 0714B0 7F03C980 8C849EE0 */ lw $a0, %lo(ptr_BONDdata_p1)($a0) +/* 0714B4 7F03C984 0FC18AC0 */ jal sub_GAME_7F062B00 +/* 0714B8 7F03C988 24840DFC */ addiu $a0, $a0, 0xdfc +/* 0714BC 7F03C98C 8E2A0004 */ lw $t2, 4($s1) +/* 0714C0 7F03C990 5140000C */ beql $t2, $zero, .L7F03C9C4 +/* 0714C4 7F03C994 24010005 */ li $at, 5 +/* 0714C8 7F03C998 0FC26919 */ jal get_num_players +/* 0714CC 7F03C99C 00000000 */ nop +/* 0714D0 7F03C9A0 28410002 */ slti $at, $v0, 2 +/* 0714D4 7F03C9A4 54200007 */ bnezl $at, .L7F03C9C4 +/* 0714D8 7F03C9A8 24010005 */ li $at, 5 +/* 0714DC 7F03C9AC 8E300004 */ lw $s0, 4($s1) +/* 0714E0 7F03C9B0 0FC18AC0 */ jal sub_GAME_7F062B00 +/* 0714E4 7F03C9B4 26040180 */ addiu $a0, $s0, 0x180 +/* 0714E8 7F03C9B8 0FC18AC0 */ jal sub_GAME_7F062B00 +/* 0714EC 7F03C9BC 260401AC */ addiu $a0, $s0, 0x1ac +.L7F03C9C0: +/* 0714F0 7F03C9C0 24010005 */ li $at, 5 +.L7F03C9C4: +/* 0714F4 7F03C9C4 56410004 */ bnel $s2, $at, .L7F03C9D8 +/* 0714F8 7F03C9C8 24010003 */ li $at, 3 +/* 0714FC 7F03C9CC 1000000F */ b .L7F03CA0C +/* 071500 7F03C9D0 8FB0004C */ lw $s0, 0x4c($sp) +/* 071504 7F03C9D4 24010003 */ li $at, 3 +.L7F03C9D8: +/* 071508 7F03C9D8 16410009 */ bne $s2, $at, .L7F03CA00 +/* 07150C 7F03C9DC 8E300024 */ lw $s0, 0x24($s1) +/* 071510 7F03C9E0 0FC0E94E */ jal sub_GAME_7F03A538 +/* 071514 7F03C9E4 02202025 */ move $a0, $s1 +/* 071518 7F03C9E8 0FC0E93C */ jal sub_GAME_7F03A4F0 +/* 07151C 7F03C9EC 02202025 */ move $a0, $s1 +/* 071520 7F03C9F0 16000006 */ bnez $s0, .L7F03CA0C +/* 071524 7F03C9F4 00000000 */ nop +/* 071528 7F03C9F8 10000004 */ b .L7F03CA0C +/* 07152C 7F03C9FC 02208025 */ move $s0, $s1 +.L7F03CA00: +/* 071530 7F03CA00 02202025 */ move $a0, $s1 +/* 071534 7F03CA04 0FC0F0AF */ jal sub_GAME_7F03C2BC +/* 071538 7F03CA08 02402825 */ move $a1, $s2 +.L7F03CA0C: +/* 07153C 7F03CA0C 1600FF19 */ bnez $s0, .L7F03C674 +/* 071540 7F03CA10 02008825 */ move $s1, $s0 +.L7F03CA14: +/* 071544 7F03CA14 8FBF0024 */ lw $ra, 0x24($sp) +/* 071548 7F03CA18 8FB00014 */ lw $s0, 0x14($sp) +/* 07154C 7F03CA1C 8FB10018 */ lw $s1, 0x18($sp) +/* 071550 7F03CA20 8FB2001C */ lw $s2, 0x1c($sp) +/* 071554 7F03CA24 8FB30020 */ lw $s3, 0x20($sp) +/* 071558 7F03CA28 03E00008 */ jr $ra +/* 07155C 7F03CA2C 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void determing_type_of_object_and_detection(void) { + +} +#else +GLOBAL_ASM( +.text +glabel determing_type_of_object_and_detection +/* 071560 7F03CA30 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 071564 7F03CA34 AFBF0024 */ sw $ra, 0x24($sp) +/* 071568 7F03CA38 AFB30020 */ sw $s3, 0x20($sp) +/* 07156C 7F03CA3C AFB2001C */ sw $s2, 0x1c($sp) +/* 071570 7F03CA40 AFB10018 */ sw $s1, 0x18($sp) +/* 071574 7F03CA44 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 071578 7F03CA48 AFB00014 */ sw $s0, 0x14($sp) +/* 07157C 7F03CA4C 1040003C */ beqz $v0, .L7F03CB40 +/* 071580 7F03CA50 00408025 */ move $s0, $v0 +/* 071584 7F03CA54 24130003 */ li $s3, 3 +.L7F03CA58: +/* 071588 7F03CA58 92020000 */ lbu $v0, ($s0) +/* 07158C 7F03CA5C 00002825 */ move $a1, $zero +/* 071590 7F03CA60 8E120024 */ lw $s2, 0x24($s0) +/* 071594 7F03CA64 16620005 */ bne $s3, $v0, .L7F03CA7C +/* 071598 7F03CA68 24010001 */ li $at, 1 +/* 07159C 7F03CA6C 0FC083BC */ jal sub_GAME_7F020EF0 +/* 0715A0 7F03CA70 02002025 */ move $a0, $s0 +/* 0715A4 7F03CA74 1000001F */ b .L7F03CAF4 +/* 0715A8 7F03CA78 00402825 */ move $a1, $v0 +.L7F03CA7C: +/* 0715AC 7F03CA7C 10410005 */ beq $v0, $at, .L7F03CA94 +/* 0715B0 7F03CA80 24010004 */ li $at, 4 +/* 0715B4 7F03CA84 10410003 */ beq $v0, $at, .L7F03CA94 +/* 0715B8 7F03CA88 24010002 */ li $at, 2 +/* 0715BC 7F03CA8C 54410006 */ bnel $v0, $at, .L7F03CAA8 +/* 0715C0 7F03CA90 24010007 */ li $at, 7 +.L7F03CA94: +/* 0715C4 7F03CA94 0FC114B5 */ jal object_interaction +/* 0715C8 7F03CA98 02002025 */ move $a0, $s0 +/* 0715CC 7F03CA9C 10000015 */ b .L7F03CAF4 +/* 0715D0 7F03CAA0 00402825 */ move $a1, $v0 +/* 0715D4 7F03CAA4 24010007 */ li $at, 7 +.L7F03CAA8: +/* 0715D8 7F03CAA8 54410006 */ bnel $v0, $at, .L7F03CAC4 +/* 0715DC 7F03CAAC 24010008 */ li $at, 8 +/* 0715E0 7F03CAB0 0FC2753B */ jal sub_GAME_7F09D4EC +/* 0715E4 7F03CAB4 02002025 */ move $a0, $s0 +/* 0715E8 7F03CAB8 1000000E */ b .L7F03CAF4 +/* 0715EC 7F03CABC 00402825 */ move $a1, $v0 +/* 0715F0 7F03CAC0 24010008 */ li $at, 8 +.L7F03CAC4: +/* 0715F4 7F03CAC4 54410006 */ bnel $v0, $at, .L7F03CAE0 +/* 0715F8 7F03CAC8 24010006 */ li $at, 6 +/* 0715FC 7F03CACC 0FC27BE7 */ jal sub_GAME_7F09EF9C +/* 071600 7F03CAD0 02002025 */ move $a0, $s0 +/* 071604 7F03CAD4 10000007 */ b .L7F03CAF4 +/* 071608 7F03CAD8 00402825 */ move $a1, $v0 +/* 07160C 7F03CADC 24010006 */ li $at, 6 +.L7F03CAE0: +/* 071610 7F03CAE0 54410005 */ bnel $v0, $at, .L7F03CAF8 +/* 071614 7F03CAE4 24010005 */ li $at, 5 +/* 071618 7F03CAE8 0FC22C3C */ jal sub_GAME_7F08B0F0 +/* 07161C 7F03CAEC 02002025 */ move $a0, $s0 +/* 071620 7F03CAF0 00402825 */ move $a1, $v0 +.L7F03CAF4: +/* 071624 7F03CAF4 24010005 */ li $at, 5 +.L7F03CAF8: +/* 071628 7F03CAF8 14A10003 */ bne $a1, $at, .L7F03CB08 +/* 07162C 7F03CAFC 00000000 */ nop +/* 071630 7F03CB00 1000000D */ b .L7F03CB38 +/* 071634 7F03CB04 02408825 */ move $s1, $s2 +.L7F03CB08: +/* 071638 7F03CB08 14B30009 */ bne $a1, $s3, .L7F03CB30 +/* 07163C 7F03CB0C 8E110024 */ lw $s1, 0x24($s0) +/* 071640 7F03CB10 0FC0E94E */ jal sub_GAME_7F03A538 +/* 071644 7F03CB14 02002025 */ move $a0, $s0 +/* 071648 7F03CB18 0FC0E93C */ jal sub_GAME_7F03A4F0 +/* 07164C 7F03CB1C 02002025 */ move $a0, $s0 +/* 071650 7F03CB20 16200005 */ bnez $s1, .L7F03CB38 +/* 071654 7F03CB24 00000000 */ nop +/* 071658 7F03CB28 10000003 */ b .L7F03CB38 +/* 07165C 7F03CB2C 02008825 */ move $s1, $s0 +.L7F03CB30: +/* 071660 7F03CB30 0FC0F0AF */ jal sub_GAME_7F03C2BC +/* 071664 7F03CB34 02002025 */ move $a0, $s0 +.L7F03CB38: +/* 071668 7F03CB38 1620FFC7 */ bnez $s1, .L7F03CA58 +/* 07166C 7F03CB3C 02208025 */ move $s0, $s1 +.L7F03CB40: +/* 071670 7F03CB40 0FC26C54 */ jal get_cur_playernum +/* 071674 7F03CB44 00000000 */ nop +/* 071678 7F03CB48 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 07167C 7F03CB4C 00402025 */ move $a0, $v0 +/* 071680 7F03CB50 54400008 */ bnezl $v0, .L7F03CB74 +/* 071684 7F03CB54 8FBF0024 */ lw $ra, 0x24($sp) +/* 071688 7F03CB58 0FC1597C */ jal handle_alarm_gas_timer_calldamage +/* 07168C 7F03CB5C 00000000 */ nop +/* 071690 7F03CB60 0FC0D239 */ jal loop_set_sound_effect_all_slots +/* 071694 7F03CB64 00000000 */ nop +/* 071698 7F03CB68 0FC0F93C */ jal sub_GAME_7F03E4F0 +/* 07169C 7F03CB6C 00000000 */ nop +/* 0716A0 7F03CB70 8FBF0024 */ lw $ra, 0x24($sp) +.L7F03CB74: +/* 0716A4 7F03CB74 8FB00014 */ lw $s0, 0x14($sp) +/* 0716A8 7F03CB78 8FB10018 */ lw $s1, 0x18($sp) +/* 0716AC 7F03CB7C 8FB2001C */ lw $s2, 0x1c($sp) +/* 0716B0 7F03CB80 8FB30020 */ lw $s3, 0x20($sp) +/* 0716B4 7F03CB84 03E00008 */ jr $ra +/* 0716B8 7F03CB88 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03CB8C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03CB8C +/* 0716BC 7F03CB8C 8C820014 */ lw $v0, 0x14($a0) +/* 0716C0 7F03CB90 240EFFFF */ li $t6, -1 +/* 0716C4 7F03CB94 54400004 */ bnezl $v0, .L7F03CBA8 +/* 0716C8 7F03CB98 908F0000 */ lbu $t7, ($a0) +/* 0716CC 7F03CB9C 03E00008 */ jr $ra +/* 0716D0 7F03CBA0 ACAE0000 */ sw $t6, ($a1) + +/* 0716D4 7F03CBA4 908F0000 */ lbu $t7, ($a0) +.L7F03CBA8: +/* 0716D8 7F03CBA8 24010006 */ li $at, 6 +/* 0716DC 7F03CBAC 240BFFFF */ li $t3, -1 +/* 0716E0 7F03CBB0 55E1000A */ bnel $t7, $at, .L7F03CBDC +/* 0716E4 7F03CBB4 908A002C */ lbu $t2, 0x2c($a0) +/* 0716E8 7F03CBB8 8C980004 */ lw $t8, 4($a0) +/* 0716EC 7F03CBBC 2409FFFF */ li $t1, -1 +/* 0716F0 7F03CBC0 57000006 */ bnezl $t8, .L7F03CBDC +/* 0716F4 7F03CBC4 908A002C */ lbu $t2, 0x2c($a0) +/* 0716F8 7F03CBC8 90590003 */ lbu $t9, 3($v0) +/* 0716FC 7F03CBCC ACA90004 */ sw $t1, 4($a1) +/* 071700 7F03CBD0 03E00008 */ jr $ra +/* 071704 7F03CBD4 ACB90000 */ sw $t9, ($a1) + +/* 071708 7F03CBD8 908A002C */ lbu $t2, 0x2c($a0) +.L7F03CBDC: +/* 07170C 7F03CBDC 240800FF */ li $t0, 255 +/* 071710 7F03CBE0 00001025 */ move $v0, $zero +/* 071714 7F03CBE4 110A0009 */ beq $t0, $t2, .L7F03CC0C +/* 071718 7F03CBE8 00A01825 */ move $v1, $a1 +/* 07171C 7F03CBEC 00803025 */ move $a2, $a0 +/* 071720 7F03CBF0 9087002C */ lbu $a3, 0x2c($a0) +.L7F03CBF4: +/* 071724 7F03CBF4 AC670000 */ sw $a3, ($v1) +/* 071728 7F03CBF8 90C7002D */ lbu $a3, 0x2d($a2) +/* 07172C 7F03CBFC 24420001 */ addiu $v0, $v0, 1 +/* 071730 7F03CC00 24630004 */ addiu $v1, $v1, 4 +/* 071734 7F03CC04 1507FFFB */ bne $t0, $a3, .L7F03CBF4 +/* 071738 7F03CC08 24C60001 */ addiu $a2, $a2, 1 +.L7F03CC0C: +/* 07173C 7F03CC0C 00026080 */ sll $t4, $v0, 2 +/* 071740 7F03CC10 00AC6821 */ addu $t5, $a1, $t4 +/* 071744 7F03CC14 ADAB0000 */ sw $t3, ($t5) +/* 071748 7F03CC18 03E00008 */ jr $ra +/* 07174C 7F03CC1C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03CC20(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03CC20 +/* 071750 7F03CC20 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 071754 7F03CC24 AFBF001C */ sw $ra, 0x1c($sp) +/* 071758 7F03CC28 ACA00000 */ sw $zero, ($a1) +/* 07175C 7F03CC2C ACC00000 */ sw $zero, ($a2) +/* 071760 7F03CC30 90820000 */ lbu $v0, ($a0) +/* 071764 7F03CC34 24010003 */ li $at, 3 +/* 071768 7F03CC38 8FAE0030 */ lw $t6, 0x30($sp) +/* 07176C 7F03CC3C 54410006 */ bnel $v0, $at, .L7F03CC58 +/* 071770 7F03CC40 24010006 */ li $at, 6 +/* 071774 7F03CC44 0FC08C23 */ jal sub_GAME_7F02308C +/* 071778 7F03CC48 AFAE0010 */ sw $t6, 0x10($sp) +/* 07177C 7F03CC4C 10000015 */ b .L7F03CCA4 +/* 071780 7F03CC50 8FBF001C */ lw $ra, 0x1c($sp) +/* 071784 7F03CC54 24010006 */ li $at, 6 +.L7F03CC58: +/* 071788 7F03CC58 14410005 */ bne $v0, $at, .L7F03CC70 +/* 07178C 7F03CC5C 8FAF0030 */ lw $t7, 0x30($sp) +/* 071790 7F03CC60 0FC2282C */ jal sub_GAME_7F08A0B0 +/* 071794 7F03CC64 AFAF0010 */ sw $t7, 0x10($sp) +/* 071798 7F03CC68 1000000E */ b .L7F03CCA4 +/* 07179C 7F03CC6C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03CC70: +/* 0717A0 7F03CC70 24010004 */ li $at, 4 +/* 0717A4 7F03CC74 1041000A */ beq $v0, $at, .L7F03CCA0 +/* 0717A8 7F03CC78 24010001 */ li $at, 1 +/* 0717AC 7F03CC7C 10410004 */ beq $v0, $at, .L7F03CC90 +/* 0717B0 7F03CC80 8FB80030 */ lw $t8, 0x30($sp) +/* 0717B4 7F03CC84 24010002 */ li $at, 2 +/* 0717B8 7F03CC88 14410005 */ bne $v0, $at, .L7F03CCA0 +/* 0717BC 7F03CC8C 00000000 */ nop +.L7F03CC90: +/* 0717C0 7F03CC90 0FC13C91 */ jal sub_GAME_7F04F244 +/* 0717C4 7F03CC94 AFB80010 */ sw $t8, 0x10($sp) +/* 0717C8 7F03CC98 10000002 */ b .L7F03CCA4 +/* 0717CC 7F03CC9C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03CCA0: +/* 0717D0 7F03CCA0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03CCA4: +/* 0717D4 7F03CCA4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0717D8 7F03CCA8 03E00008 */ jr $ra +/* 0717DC 7F03CCAC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03CCB0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03CCB0 +/* 0717E0 7F03CCB0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0717E4 7F03CCB4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0717E8 7F03CCB8 27AE0020 */ addiu $t6, $sp, 0x20 +/* 0717EC 7F03CCBC AFAE0010 */ sw $t6, 0x10($sp) +/* 0717F0 7F03CCC0 0FC0F308 */ jal sub_GAME_7F03CC20 +/* 0717F4 7F03CCC4 27A70024 */ addiu $a3, $sp, 0x24 +/* 0717F8 7F03CCC8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0717FC 7F03CCCC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 071800 7F03CCD0 03E00008 */ jr $ra +/* 071804 7F03CCD4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03CCD8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03CCD8 +/* 071808 7F03CCD8 1CC00003 */ bgtz $a2, .L7F03CCE8 +/* 07180C 7F03CCDC 2402FFFF */ li $v0, -1 +/* 071810 7F03CCE0 03E00008 */ jr $ra +/* 071814 7F03CCE4 00001025 */ move $v0, $zero + +.L7F03CCE8: +/* 071818 7F03CCE8 18C000A4 */ blez $a2, .L7F03CF7C +/* 07181C 7F03CCEC 00001825 */ move $v1, $zero +/* 071820 7F03CCF0 30C70001 */ andi $a3, $a2, 1 +/* 071824 7F03CCF4 10E00029 */ beqz $a3, .L7F03CD9C +/* 071828 7F03CCF8 2409FFFF */ li $t1, -1 +/* 07182C 7F03CCFC 240E0001 */ li $t6, 1 +/* 071830 7F03CD00 01C6001A */ div $zero, $t6, $a2 +/* 071834 7F03CD04 00007810 */ mfhi $t7 +/* 071838 7F03CD08 000FC0C0 */ sll $t8, $t7, 3 +/* 07183C 7F03CD0C 00B81821 */ addu $v1, $a1, $t8 +/* 071840 7F03CD10 C4640004 */ lwc1 $f4, 4($v1) +/* 071844 7F03CD14 C4A20004 */ lwc1 $f2, 4($a1) +/* 071848 7F03CD18 C4AC0000 */ lwc1 $f12, ($a1) +/* 07184C 7F03CD1C C4880000 */ lwc1 $f8, ($a0) +/* 071850 7F03CD20 46022181 */ sub.s $f6, $f4, $f2 +/* 071854 7F03CD24 44809000 */ mtc1 $zero, $f18 +/* 071858 7F03CD28 14C00002 */ bnez $a2, .L7F03CD34 +/* 07185C 7F03CD2C 00000000 */ nop +/* 071860 7F03CD30 0007000D */ break 7 +.L7F03CD34: +/* 071864 7F03CD34 2401FFFF */ li $at, -1 +/* 071868 7F03CD38 14C10004 */ bne $a2, $at, .L7F03CD4C +/* 07186C 7F03CD3C 3C018000 */ lui $at, 0x8000 +/* 071870 7F03CD40 15C10002 */ bne $t6, $at, .L7F03CD4C +/* 071874 7F03CD44 00000000 */ nop +/* 071878 7F03CD48 0006000D */ break 6 +.L7F03CD4C: +/* 07187C 7F03CD4C 460C4281 */ sub.s $f10, $f8, $f12 +/* 071880 7F03CD50 C4880008 */ lwc1 $f8, 8($a0) +/* 071884 7F03CD54 00A03825 */ move $a3, $a1 +/* 071888 7F03CD58 460A3102 */ mul.s $f4, $f6, $f10 +/* 07188C 7F03CD5C C46A0000 */ lwc1 $f10, ($v1) +/* 071890 7F03CD60 46024181 */ sub.s $f6, $f8, $f2 +/* 071894 7F03CD64 24030001 */ li $v1, 1 +/* 071898 7F03CD68 460C5201 */ sub.s $f8, $f10, $f12 +/* 07189C 7F03CD6C 46083282 */ mul.s $f10, $f6, $f8 +/* 0718A0 7F03CD70 460A2001 */ sub.s $f0, $f4, $f10 +/* 0718A4 7F03CD74 46120032 */ c.eq.s $f0, $f18 +/* 0718A8 7F03CD78 00000000 */ nop +/* 0718AC 7F03CD7C 45010006 */ bc1t .L7F03CD98 +/* 0718B0 7F03CD80 00000000 */ nop +/* 0718B4 7F03CD84 4600903C */ c.lt.s $f18, $f0 +/* 0718B8 7F03CD88 00001025 */ move $v0, $zero +/* 0718BC 7F03CD8C 45000002 */ bc1f .L7F03CD98 +/* 0718C0 7F03CD90 00000000 */ nop +/* 0718C4 7F03CD94 24020001 */ li $v0, 1 +.L7F03CD98: +/* 0718C8 7F03CD98 10660078 */ beq $v1, $a2, .L7F03CF7C +.L7F03CD9C: +/* 0718CC 7F03CD9C 0003C8C0 */ sll $t9, $v1, 3 +/* 0718D0 7F03CDA0 44809000 */ mtc1 $zero, $f18 +/* 0718D4 7F03CDA4 00B93821 */ addu $a3, $a1, $t9 +/* 0718D8 7F03CDA8 C48C0000 */ lwc1 $f12, ($a0) +/* 0718DC 7F03CDAC C4900008 */ lwc1 $f16, 8($a0) +.L7F03CDB0: +/* 0718E0 7F03CDB0 246A0001 */ addiu $t2, $v1, 1 +/* 0718E4 7F03CDB4 0146001A */ div $zero, $t2, $a2 +/* 0718E8 7F03CDB8 00005810 */ mfhi $t3 +/* 0718EC 7F03CDBC 000B60C0 */ sll $t4, $t3, 3 +/* 0718F0 7F03CDC0 00AC2021 */ addu $a0, $a1, $t4 +/* 0718F4 7F03CDC4 C4860004 */ lwc1 $f6, 4($a0) +/* 0718F8 7F03CDC8 C4E20004 */ lwc1 $f2, 4($a3) +/* 0718FC 7F03CDCC C4EE0000 */ lwc1 $f14, ($a3) +/* 071900 7F03CDD0 14C00002 */ bnez $a2, .L7F03CDDC +/* 071904 7F03CDD4 00000000 */ nop +/* 071908 7F03CDD8 0007000D */ break 7 +.L7F03CDDC: +/* 07190C 7F03CDDC 2401FFFF */ li $at, -1 +/* 071910 7F03CDE0 14C10004 */ bne $a2, $at, .L7F03CDF4 +/* 071914 7F03CDE4 3C018000 */ lui $at, 0x8000 +/* 071918 7F03CDE8 15410002 */ bne $t2, $at, .L7F03CDF4 +/* 07191C 7F03CDEC 00000000 */ nop +/* 071920 7F03CDF0 0006000D */ break 6 +.L7F03CDF4: +/* 071924 7F03CDF4 46023201 */ sub.s $f8, $f6, $f2 +/* 071928 7F03CDF8 460E6101 */ sub.s $f4, $f12, $f14 +/* 07192C 7F03CDFC 46028181 */ sub.s $f6, $f16, $f2 +/* 071930 7F03CE00 46044282 */ mul.s $f10, $f8, $f4 +/* 071934 7F03CE04 C4880000 */ lwc1 $f8, ($a0) +/* 071938 7F03CE08 24640002 */ addiu $a0, $v1, 2 +/* 07193C 7F03CE0C 460E4101 */ sub.s $f4, $f8, $f14 +/* 071940 7F03CE10 46043202 */ mul.s $f8, $f6, $f4 +/* 071944 7F03CE14 46085001 */ sub.s $f0, $f10, $f8 +/* 071948 7F03CE18 46120032 */ c.eq.s $f0, $f18 +/* 07194C 7F03CE1C 00000000 */ nop +/* 071950 7F03CE20 4501001C */ bc1t .L7F03CE94 +/* 071954 7F03CE24 00000000 */ nop +/* 071958 7F03CE28 50600004 */ beql $v1, $zero, .L7F03CE3C +/* 07195C 7F03CE2C 4600903C */ c.lt.s $f18, $f0 +/* 071960 7F03CE30 04410008 */ bgez $v0, .L7F03CE54 +/* 071964 7F03CE34 00000000 */ nop +/* 071968 7F03CE38 4600903C */ c.lt.s $f18, $f0 +.L7F03CE3C: +/* 07196C 7F03CE3C 00001025 */ move $v0, $zero +/* 071970 7F03CE40 45000014 */ bc1f .L7F03CE94 +/* 071974 7F03CE44 00000000 */ nop +/* 071978 7F03CE48 24020001 */ li $v0, 1 +/* 07197C 7F03CE4C 10000011 */ b .L7F03CE94 +/* 071980 7F03CE50 00000000 */ nop +.L7F03CE54: +/* 071984 7F03CE54 10400007 */ beqz $v0, .L7F03CE74 +/* 071988 7F03CE58 00000000 */ nop +/* 07198C 7F03CE5C 4612003C */ c.lt.s $f0, $f18 +/* 071990 7F03CE60 00000000 */ nop +/* 071994 7F03CE64 45000003 */ bc1f .L7F03CE74 +/* 071998 7F03CE68 00000000 */ nop +/* 07199C 7F03CE6C 03E00008 */ jr $ra +/* 0719A0 7F03CE70 00001025 */ move $v0, $zero + +.L7F03CE74: +/* 0719A4 7F03CE74 14400007 */ bnez $v0, .L7F03CE94 +/* 0719A8 7F03CE78 00000000 */ nop +/* 0719AC 7F03CE7C 4600903C */ c.lt.s $f18, $f0 +/* 0719B0 7F03CE80 00000000 */ nop +/* 0719B4 7F03CE84 45000003 */ bc1f .L7F03CE94 +/* 0719B8 7F03CE88 00000000 */ nop +/* 0719BC 7F03CE8C 03E00008 */ jr $ra +/* 0719C0 7F03CE90 00001025 */ move $v0, $zero + +.L7F03CE94: +/* 0719C4 7F03CE94 0086001A */ div $zero, $a0, $a2 +/* 0719C8 7F03CE98 00006810 */ mfhi $t5 +/* 0719CC 7F03CE9C 000D70C0 */ sll $t6, $t5, 3 +/* 0719D0 7F03CEA0 00AE4021 */ addu $t0, $a1, $t6 +/* 0719D4 7F03CEA4 C5060004 */ lwc1 $f6, 4($t0) +/* 0719D8 7F03CEA8 C4E2000C */ lwc1 $f2, 0xc($a3) +/* 0719DC 7F03CEAC C4EE0008 */ lwc1 $f14, 8($a3) +/* 0719E0 7F03CEB0 14C00002 */ bnez $a2, .L7F03CEBC +/* 0719E4 7F03CEB4 00000000 */ nop +/* 0719E8 7F03CEB8 0007000D */ break 7 +.L7F03CEBC: +/* 0719EC 7F03CEBC 2401FFFF */ li $at, -1 +/* 0719F0 7F03CEC0 14C10004 */ bne $a2, $at, .L7F03CED4 +/* 0719F4 7F03CEC4 3C018000 */ lui $at, 0x8000 +/* 0719F8 7F03CEC8 14810002 */ bne $a0, $at, .L7F03CED4 +/* 0719FC 7F03CECC 00000000 */ nop +/* 071A00 7F03CED0 0006000D */ break 6 +.L7F03CED4: +/* 071A04 7F03CED4 46023101 */ sub.s $f4, $f6, $f2 +/* 071A08 7F03CED8 24E70010 */ addiu $a3, $a3, 0x10 +/* 071A0C 7F03CEDC 460E6281 */ sub.s $f10, $f12, $f14 +/* 071A10 7F03CEE0 46028181 */ sub.s $f6, $f16, $f2 +/* 071A14 7F03CEE4 460A2202 */ mul.s $f8, $f4, $f10 +/* 071A18 7F03CEE8 C5040000 */ lwc1 $f4, ($t0) +/* 071A1C 7F03CEEC 460E2281 */ sub.s $f10, $f4, $f14 +/* 071A20 7F03CEF0 460A3102 */ mul.s $f4, $f6, $f10 +/* 071A24 7F03CEF4 46044001 */ sub.s $f0, $f8, $f4 +/* 071A28 7F03CEF8 46120032 */ c.eq.s $f0, $f18 +/* 071A2C 7F03CEFC 00000000 */ nop +/* 071A30 7F03CF00 4501001C */ bc1t .L7F03CF74 +/* 071A34 7F03CF04 00000000 */ nop +/* 071A38 7F03CF08 50690004 */ beql $v1, $t1, .L7F03CF1C +/* 071A3C 7F03CF0C 4600903C */ c.lt.s $f18, $f0 +/* 071A40 7F03CF10 04410008 */ bgez $v0, .L7F03CF34 +/* 071A44 7F03CF14 00000000 */ nop +/* 071A48 7F03CF18 4600903C */ c.lt.s $f18, $f0 +.L7F03CF1C: +/* 071A4C 7F03CF1C 00001025 */ move $v0, $zero +/* 071A50 7F03CF20 45000014 */ bc1f .L7F03CF74 +/* 071A54 7F03CF24 00000000 */ nop +/* 071A58 7F03CF28 24020001 */ li $v0, 1 +/* 071A5C 7F03CF2C 10000011 */ b .L7F03CF74 +/* 071A60 7F03CF30 00000000 */ nop +.L7F03CF34: +/* 071A64 7F03CF34 10400007 */ beqz $v0, .L7F03CF54 +/* 071A68 7F03CF38 00000000 */ nop +/* 071A6C 7F03CF3C 4612003C */ c.lt.s $f0, $f18 +/* 071A70 7F03CF40 00000000 */ nop +/* 071A74 7F03CF44 45000003 */ bc1f .L7F03CF54 +/* 071A78 7F03CF48 00000000 */ nop +/* 071A7C 7F03CF4C 03E00008 */ jr $ra +/* 071A80 7F03CF50 00001025 */ move $v0, $zero + +.L7F03CF54: +/* 071A84 7F03CF54 14400007 */ bnez $v0, .L7F03CF74 +/* 071A88 7F03CF58 00000000 */ nop +/* 071A8C 7F03CF5C 4600903C */ c.lt.s $f18, $f0 +/* 071A90 7F03CF60 00000000 */ nop +/* 071A94 7F03CF64 45000003 */ bc1f .L7F03CF74 +/* 071A98 7F03CF68 00000000 */ nop +/* 071A9C 7F03CF6C 03E00008 */ jr $ra +/* 071AA0 7F03CF70 00001025 */ move $v0, $zero + +.L7F03CF74: +/* 071AA4 7F03CF74 1486FF8E */ bne $a0, $a2, .L7F03CDB0 +/* 071AA8 7F03CF78 00801825 */ move $v1, $a0 +.L7F03CF7C: +/* 071AAC 7F03CF7C 24020001 */ li $v0, 1 +/* 071AB0 7F03CF80 03E00008 */ jr $ra +/* 071AB4 7F03CF84 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03CF88(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03CF88 +/* 071AB8 7F03CF88 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 071ABC 7F03CF8C AFBF0014 */ sw $ra, 0x14($sp) +/* 071AC0 7F03CF90 90820000 */ lbu $v0, ($a0) +/* 071AC4 7F03CF94 24010003 */ li $at, 3 +/* 071AC8 7F03CF98 54410006 */ bnel $v0, $at, .L7F03CFB4 +/* 071ACC 7F03CF9C 24010006 */ li $at, 6 +/* 071AD0 7F03CFA0 0FC08C58 */ jal sub_GAME_7F023160 +/* 071AD4 7F03CFA4 00000000 */ nop +/* 071AD8 7F03CFA8 1000000C */ b .L7F03CFDC +/* 071ADC 7F03CFAC 8FBF0014 */ lw $ra, 0x14($sp) +/* 071AE0 7F03CFB0 24010006 */ li $at, 6 +.L7F03CFB4: +/* 071AE4 7F03CFB4 54410006 */ bnel $v0, $at, .L7F03CFD0 +/* 071AE8 7F03CFB8 44802000 */ mtc1 $zero, $f4 +/* 071AEC 7F03CFBC 0FC2289D */ jal sub_GAME_7F08A274 +/* 071AF0 7F03CFC0 00000000 */ nop +/* 071AF4 7F03CFC4 10000005 */ b .L7F03CFDC +/* 071AF8 7F03CFC8 8FBF0014 */ lw $ra, 0x14($sp) +/* 071AFC 7F03CFCC 44802000 */ mtc1 $zero, $f4 +.L7F03CFD0: +/* 071B00 7F03CFD0 00000000 */ nop +/* 071B04 7F03CFD4 E4A40000 */ swc1 $f4, ($a1) +/* 071B08 7F03CFD8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F03CFDC: +/* 071B0C 7F03CFDC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 071B10 7F03CFE0 03E00008 */ jr $ra +/* 071B14 7F03CFE4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03CFE8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03CFE8 +/* 071B18 7F03CFE8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 071B1C 7F03CFEC AFBF0014 */ sw $ra, 0x14($sp) +/* 071B20 7F03CFF0 90820000 */ lbu $v0, ($a0) +/* 071B24 7F03CFF4 24010003 */ li $at, 3 +/* 071B28 7F03CFF8 54410006 */ bnel $v0, $at, .L7F03D014 +/* 071B2C 7F03CFFC 24010006 */ li $at, 6 +/* 071B30 7F03D000 0FC08C62 */ jal sub_GAME_7F023188 +/* 071B34 7F03D004 00000000 */ nop +/* 071B38 7F03D008 10000010 */ b .L7F03D04C +/* 071B3C 7F03D00C 8FBF0014 */ lw $ra, 0x14($sp) +/* 071B40 7F03D010 24010006 */ li $at, 6 +.L7F03D014: +/* 071B44 7F03D014 5441000B */ bnel $v0, $at, .L7F03D044 +/* 071B48 7F03D018 44800000 */ mtc1 $zero, $f0 +/* 071B4C 7F03D01C 0FC26C57 */ jal sub_GAME_7F09B15C +/* 071B50 7F03D020 00000000 */ nop +/* 071B54 7F03D024 00027080 */ sll $t6, $v0, 2 +/* 071B58 7F03D028 3C048008 */ lui $a0, %hi(ptr_BONDdata_p1) +/* 071B5C 7F03D02C 008E2021 */ addu $a0, $a0, $t6 +/* 071B60 7F03D030 0FC225DE */ jal sub_GAME_7F089778 +/* 071B64 7F03D034 8C849EE0 */ lw $a0, %lo(ptr_BONDdata_p1)($a0) +/* 071B68 7F03D038 10000004 */ b .L7F03D04C +/* 071B6C 7F03D03C 8FBF0014 */ lw $ra, 0x14($sp) +/* 071B70 7F03D040 44800000 */ mtc1 $zero, $f0 +.L7F03D044: +/* 071B74 7F03D044 00000000 */ nop +/* 071B78 7F03D048 8FBF0014 */ lw $ra, 0x14($sp) +.L7F03D04C: +/* 071B7C 7F03D04C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 071B80 7F03D050 03E00008 */ jr $ra +/* 071B84 7F03D054 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03D058(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03D058 +/* 071B88 7F03D058 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 071B8C 7F03D05C AFBF0014 */ sw $ra, 0x14($sp) +/* 071B90 7F03D060 90820000 */ lbu $v0, ($a0) +/* 071B94 7F03D064 24010003 */ li $at, 3 +/* 071B98 7F03D068 00803025 */ move $a2, $a0 +/* 071B9C 7F03D06C 54410006 */ bnel $v0, $at, .L7F03D088 +/* 071BA0 7F03D070 24010006 */ li $at, 6 +/* 071BA4 7F03D074 0FC07D7A */ jal set_or_unset_GUARDdata_flag +/* 071BA8 7F03D078 8C840004 */ lw $a0, 4($a0) +/* 071BAC 7F03D07C 10000012 */ b .L7F03D0C8 +/* 071BB0 7F03D080 8FBF0014 */ lw $ra, 0x14($sp) +/* 071BB4 7F03D084 24010006 */ li $at, 6 +.L7F03D088: +/* 071BB8 7F03D088 54410006 */ bnel $v0, $at, .L7F03D0A4 +/* 071BBC 7F03D08C 24010001 */ li $at, 1 +/* 071BC0 7F03D090 0FC2280F */ jal sub_GAME_7F08A03C +/* 071BC4 7F03D094 00C02025 */ move $a0, $a2 +/* 071BC8 7F03D098 1000000B */ b .L7F03D0C8 +/* 071BCC 7F03D09C 8FBF0014 */ lw $ra, 0x14($sp) +/* 071BD0 7F03D0A0 24010001 */ li $at, 1 +.L7F03D0A4: +/* 071BD4 7F03D0A4 10410005 */ beq $v0, $at, .L7F03D0BC +/* 071BD8 7F03D0A8 24010002 */ li $at, 2 +/* 071BDC 7F03D0AC 10410003 */ beq $v0, $at, .L7F03D0BC +/* 071BE0 7F03D0B0 24010004 */ li $at, 4 +/* 071BE4 7F03D0B4 54410004 */ bnel $v0, $at, .L7F03D0C8 +/* 071BE8 7F03D0B8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F03D0BC: +/* 071BEC 7F03D0BC 0FC13C86 */ jal sub_GAME_7F04F218 +/* 071BF0 7F03D0C0 00C02025 */ move $a0, $a2 +/* 071BF4 7F03D0C4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F03D0C8: +/* 071BF8 7F03D0C8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 071BFC 7F03D0CC 03E00008 */ jr $ra +/* 071C00 7F03D0D0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03D0D4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:800529A0*/ +glabel jpt_800529A0 +.word loc_CODE_7F03D144 +.word def_7F03D13C +.word def_7F03D13C +.word loc_CODE_7F03D154 +.word def_7F03D13C +.word def_7F03D13C +.word def_7F03D13C +.word def_7F03D13C +.text +glabel sub_GAME_7F03D0D4 +/* 071C04 7F03D0D4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 071C08 7F03D0D8 AFBF001C */ sw $ra, 0x1c($sp) +/* 071C0C 7F03D0DC AFB10018 */ sw $s1, 0x18($sp) +/* 071C10 7F03D0E0 0FC1F39E */ jal get_intank_flag +/* 071C14 7F03D0E4 AFB00014 */ sw $s0, 0x14($sp) +/* 071C18 7F03D0E8 14400022 */ bnez $v0, .L7F03D174 +/* 071C1C 7F03D0EC 3C0E8003 */ lui $t6, %hi(disable_player_pickups_flag) +/* 071C20 7F03D0F0 8DCE64B4 */ lw $t6, %lo(disable_player_pickups_flag)($t6) +/* 071C24 7F03D0F4 55C00020 */ bnezl $t6, .L7F03D178 +/* 071C28 7F03D0F8 8FBF001C */ lw $ra, 0x1c($sp) +/* 071C2C 7F03D0FC 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 071C30 7F03D100 00000000 */ nop +/* 071C34 7F03D104 1040001B */ beqz $v0, .L7F03D174 +/* 071C38 7F03D108 00408825 */ move $s1, $v0 +.L7F03D10C: +/* 071C3C 7F03D10C 862F0002 */ lh $t7, 2($s1) +/* 071C40 7F03D110 00002825 */ move $a1, $zero +/* 071C44 7F03D114 5DE00013 */ bgtzl $t7, .L7F03D164 +/* 071C48 7F03D118 8E300024 */ lw $s0, 0x24($s1) +/* 071C4C 7F03D11C 92380000 */ lbu $t8, ($s1) +/* 071C50 7F03D120 2719FFFF */ addiu $t9, $t8, -1 +/* 071C54 7F03D124 2F210008 */ sltiu $at, $t9, 8 +/* 071C58 7F03D128 1020000D */ beqz $at, .L7F03D160 +/* 071C5C 7F03D12C 0019C880 */ sll $t9, $t9, 2 +/* 071C60 7F03D130 3C018005 */ lui $at, %hi(jpt_800529A0) +/* 071C64 7F03D134 00390821 */ addu $at, $at, $t9 +/* 071C68 7F03D138 8C3929A0 */ lw $t9, %lo(jpt_800529A0)($at) +/* 071C6C 7F03D13C 03200008 */ jr $t9 +/* 071C70 7F03D140 00000000 */ nop +loc_CODE_7F03D144: +/* 071C74 7F03D144 0FC141B7 */ jal object_collectability_routines +/* 071C78 7F03D148 02202025 */ move $a0, $s1 +/* 071C7C 7F03D14C 10000004 */ b .L7F03D160 +/* 071C80 7F03D150 00402825 */ move $a1, $v0 +loc_CODE_7F03D154: +/* 071C84 7F03D154 0FC14955 */ jal redirect_object_collectability_routines +/* 071C88 7F03D158 02202025 */ move $a0, $s1 +/* 071C8C 7F03D15C 00402825 */ move $a1, $v0 +def_7F03D13C: +.L7F03D160: +/* 071C90 7F03D160 8E300024 */ lw $s0, 0x24($s1) +.L7F03D164: +/* 071C94 7F03D164 0FC0F0AF */ jal sub_GAME_7F03C2BC +/* 071C98 7F03D168 02202025 */ move $a0, $s1 +/* 071C9C 7F03D16C 1600FFE7 */ bnez $s0, .L7F03D10C +/* 071CA0 7F03D170 02008825 */ move $s1, $s0 +.L7F03D174: +/* 071CA4 7F03D174 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03D178: +/* 071CA8 7F03D178 8FB00014 */ lw $s0, 0x14($sp) +/* 071CAC 7F03D17C 8FB10018 */ lw $s1, 0x18($sp) +/* 071CB0 7F03D180 03E00008 */ jr $ra +/* 071CB4 7F03D184 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03D188(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800529C0 +.word 0x3e333333 /*0.175*/ +glabel D_800529C4 +.word 0x3f533333 /*0.82499999*/ +.text +glabel sub_GAME_7F03D188 +/* 071CB8 7F03D188 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 071CBC 7F03D18C AFBF002C */ sw $ra, 0x2c($sp) +/* 071CC0 7F03D190 AFA400B0 */ sw $a0, 0xb0($sp) +/* 071CC4 7F03D194 AFA500B4 */ sw $a1, 0xb4($sp) +/* 071CC8 7F03D198 AFA600B8 */ sw $a2, 0xb8($sp) +/* 071CCC 7F03D19C 0FC1E135 */ jal getPlayer_c_screentop +/* 071CD0 7F03D1A0 AFA700BC */ sw $a3, 0xbc($sp) +/* 071CD4 7F03D1A4 0FC1E12D */ jal getPlayer_c_screenheight +/* 071CD8 7F03D1A8 E7A00040 */ swc1 $f0, 0x40($sp) +/* 071CDC 7F03D1AC 3C018005 */ lui $at, %hi(D_800529C0) +/* 071CE0 7F03D1B0 C42429C0 */ lwc1 $f4, %lo(D_800529C0)($at) +/* 071CE4 7F03D1B4 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 071CE8 7F03D1B8 46040182 */ mul.s $f6, $f0, $f4 +/* 071CEC 7F03D1BC 46083280 */ add.s $f10, $f6, $f8 +/* 071CF0 7F03D1C0 0FC1E135 */ jal getPlayer_c_screentop +/* 071CF4 7F03D1C4 E7AA0070 */ swc1 $f10, 0x70($sp) +/* 071CF8 7F03D1C8 0FC1E12D */ jal getPlayer_c_screenheight +/* 071CFC 7F03D1CC E7A00040 */ swc1 $f0, 0x40($sp) +/* 071D00 7F03D1D0 3C018005 */ lui $at, %hi(D_800529C4) +/* 071D04 7F03D1D4 C43029C4 */ lwc1 $f16, %lo(D_800529C4)($at) +/* 071D08 7F03D1D8 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 071D0C 7F03D1DC 46100482 */ mul.s $f18, $f0, $f16 +/* 071D10 7F03D1E0 46049180 */ add.s $f6, $f18, $f4 +/* 071D14 7F03D1E4 0FC1E131 */ jal getPlayer_c_screenleft +/* 071D18 7F03D1E8 E7A6006C */ swc1 $f6, 0x6c($sp) +/* 071D1C 7F03D1EC 0FC1E129 */ jal getPlayer_c_screenwidth +/* 071D20 7F03D1F0 E7A00040 */ swc1 $f0, 0x40($sp) +/* 071D24 7F03D1F4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 071D28 7F03D1F8 44814000 */ mtc1 $at, $f8 +/* 071D2C 7F03D1FC C7B00040 */ lwc1 $f16, 0x40($sp) +/* 071D30 7F03D200 46080282 */ mul.s $f10, $f0, $f8 +/* 071D34 7F03D204 46105480 */ add.s $f18, $f10, $f16 +/* 071D38 7F03D208 0FC1E131 */ jal getPlayer_c_screenleft +/* 071D3C 7F03D20C E7B20068 */ swc1 $f18, 0x68($sp) +/* 071D40 7F03D210 0FC1E129 */ jal getPlayer_c_screenwidth +/* 071D44 7F03D214 E7A00040 */ swc1 $f0, 0x40($sp) +/* 071D48 7F03D218 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 071D4C 7F03D21C 44812000 */ mtc1 $at, $f4 +/* 071D50 7F03D220 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 071D54 7F03D224 3C01C000 */ li $at, 0xC0000000 # -2.000000 +/* 071D58 7F03D228 46040182 */ mul.s $f6, $f0, $f4 +/* 071D5C 7F03D22C 44818000 */ mtc1 $at, $f16 +/* 071D60 7F03D230 8FA400B4 */ lw $a0, 0xb4($sp) +/* 071D64 7F03D234 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 071D68 7F03D238 E7B00060 */ swc1 $f16, 0x60($sp) +/* 071D6C 7F03D23C 46083280 */ add.s $f10, $f6, $f8 +/* 071D70 7F03D240 0FC1DFFD */ jal sub_GAME_7F077FF4 +/* 071D74 7F03D244 E7AA0064 */ swc1 $f10, 0x64($sp) +/* 071D78 7F03D248 8FAE00B8 */ lw $t6, 0xb8($sp) +/* 071D7C 7F03D24C 8FA200B4 */ lw $v0, 0xb4($sp) +/* 071D80 7F03D250 27A4009C */ addiu $a0, $sp, 0x9c +/* 071D84 7F03D254 C5D20000 */ lwc1 $f18, ($t6) +/* 071D88 7F03D258 27A50094 */ addiu $a1, $sp, 0x94 +/* 071D8C 7F03D25C E7B2009C */ swc1 $f18, 0x9c($sp) +/* 071D90 7F03D260 C4440004 */ lwc1 $f4, 4($v0) +/* 071D94 7F03D264 E7A400A0 */ swc1 $f4, 0xa0($sp) +/* 071D98 7F03D268 C4460008 */ lwc1 $f6, 8($v0) +/* 071D9C 7F03D26C 0FC1DFFD */ jal sub_GAME_7F077FF4 +/* 071DA0 7F03D270 E7A600A4 */ swc1 $f6, 0xa4($sp) +/* 071DA4 7F03D274 8FAF00B8 */ lw $t7, 0xb8($sp) +/* 071DA8 7F03D278 8FA200B4 */ lw $v0, 0xb4($sp) +/* 071DAC 7F03D27C 27A4009C */ addiu $a0, $sp, 0x9c +/* 071DB0 7F03D280 C5E80004 */ lwc1 $f8, 4($t7) +/* 071DB4 7F03D284 27A5008C */ addiu $a1, $sp, 0x8c +/* 071DB8 7F03D288 E7A8009C */ swc1 $f8, 0x9c($sp) +/* 071DBC 7F03D28C C44A0004 */ lwc1 $f10, 4($v0) +/* 071DC0 7F03D290 E7AA00A0 */ swc1 $f10, 0xa0($sp) +/* 071DC4 7F03D294 C4500008 */ lwc1 $f16, 8($v0) +/* 071DC8 7F03D298 0FC1DFFD */ jal sub_GAME_7F077FF4 +/* 071DCC 7F03D29C E7B000A4 */ swc1 $f16, 0xa4($sp) +/* 071DD0 7F03D2A0 8FA200B4 */ lw $v0, 0xb4($sp) +/* 071DD4 7F03D2A4 8FB800BC */ lw $t8, 0xbc($sp) +/* 071DD8 7F03D2A8 27A4009C */ addiu $a0, $sp, 0x9c +/* 071DDC 7F03D2AC C4520000 */ lwc1 $f18, ($v0) +/* 071DE0 7F03D2B0 27A50084 */ addiu $a1, $sp, 0x84 +/* 071DE4 7F03D2B4 E7B2009C */ swc1 $f18, 0x9c($sp) +/* 071DE8 7F03D2B8 C7040004 */ lwc1 $f4, 4($t8) +/* 071DEC 7F03D2BC E7A400A0 */ swc1 $f4, 0xa0($sp) +/* 071DF0 7F03D2C0 C4460008 */ lwc1 $f6, 8($v0) +/* 071DF4 7F03D2C4 0FC1DFFD */ jal sub_GAME_7F077FF4 +/* 071DF8 7F03D2C8 E7A600A4 */ swc1 $f6, 0xa4($sp) +/* 071DFC 7F03D2CC 8FB900B4 */ lw $t9, 0xb4($sp) +/* 071E00 7F03D2D0 8FA800BC */ lw $t0, 0xbc($sp) +/* 071E04 7F03D2D4 27A4009C */ addiu $a0, $sp, 0x9c +/* 071E08 7F03D2D8 C7280000 */ lwc1 $f8, ($t9) +/* 071E0C 7F03D2DC 27A5007C */ addiu $a1, $sp, 0x7c +/* 071E10 7F03D2E0 E7A8009C */ swc1 $f8, 0x9c($sp) +/* 071E14 7F03D2E4 C50A0000 */ lwc1 $f10, ($t0) +/* 071E18 7F03D2E8 E7AA00A0 */ swc1 $f10, 0xa0($sp) +/* 071E1C 7F03D2EC C7300008 */ lwc1 $f16, 8($t9) +/* 071E20 7F03D2F0 0FC1DFFD */ jal sub_GAME_7F077FF4 +/* 071E24 7F03D2F4 E7B000A4 */ swc1 $f16, 0xa4($sp) +/* 071E28 7F03D2F8 C7B20080 */ lwc1 $f18, 0x80($sp) +/* 071E2C 7F03D2FC C7A40070 */ lwc1 $f4, 0x70($sp) +/* 071E30 7F03D300 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 071E34 7F03D304 C7A80088 */ lwc1 $f8, 0x88($sp) +/* 071E38 7F03D308 4612203E */ c.le.s $f4, $f18 +/* 071E3C 7F03D30C 00000000 */ nop +/* 071E40 7F03D310 4502011A */ bc1fl .L7F03D77C +/* 071E44 7F03D314 8FBF002C */ lw $ra, 0x2c($sp) +/* 071E48 7F03D318 4606403E */ c.le.s $f8, $f6 +/* 071E4C 7F03D31C 27A40078 */ addiu $a0, $sp, 0x78 +/* 071E50 7F03D320 27A50074 */ addiu $a1, $sp, 0x74 +/* 071E54 7F03D324 45020115 */ bc1fl .L7F03D77C +/* 071E58 7F03D328 8FBF002C */ lw $ra, 0x2c($sp) +/* 071E5C 7F03D32C 0FC1A002 */ jal get_bullet_angle +/* 071E60 7F03D330 AFA0005C */ sw $zero, 0x5c($sp) +/* 071E64 7F03D334 0FC170D8 */ jal truncf +/* 071E68 7F03D338 C7AC0094 */ lwc1 $f12, 0x94($sp) +/* 071E6C 7F03D33C E7A00094 */ swc1 $f0, 0x94($sp) +/* 071E70 7F03D340 0FC17110 */ jal sub_GAME_7F05C440 +/* 071E74 7F03D344 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 071E78 7F03D348 0FC1F1AA */ jal redirect_get_BONDdata_autoaim_x +/* 071E7C 7F03D34C E7A0008C */ swc1 $f0, 0x8c($sp) +/* 071E80 7F03D350 1040005C */ beqz $v0, .L7F03D4C4 +/* 071E84 7F03D354 C7A00078 */ lwc1 $f0, 0x78($sp) +/* 071E88 7F03D358 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 071E8C 7F03D35C C7B00094 */ lwc1 $f16, 0x94($sp) +/* 071E90 7F03D360 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 071E94 7F03D364 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 071E98 7F03D368 460A803E */ c.le.s $f16, $f10 +/* 071E9C 7F03D36C 00000000 */ nop +/* 071EA0 7F03D370 45020065 */ bc1fl .L7F03D508 +/* 071EA4 7F03D374 8FA9005C */ lw $t1, 0x5c($sp) +/* 071EA8 7F03D378 4612203E */ c.le.s $f4, $f18 +/* 071EAC 7F03D37C 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 071EB0 7F03D380 45020061 */ bc1fl .L7F03D508 +/* 071EB4 7F03D384 8FA9005C */ lw $t1, 0x5c($sp) +/* 071EB8 7F03D388 46109181 */ sub.s $f6, $f18, $f16 +/* 071EBC 7F03D38C 44814000 */ mtc1 $at, $f8 +/* 071EC0 7F03D390 00000000 */ nop +/* 071EC4 7F03D394 46083282 */ mul.s $f10, $f6, $f8 +/* 071EC8 7F03D398 0FC26919 */ jal get_num_players +/* 071ECC 7F03D39C E7AA0058 */ swc1 $f10, 0x58($sp) +/* 071ED0 7F03D3A0 24010001 */ li $at, 1 +/* 071ED4 7F03D3A4 14410005 */ bne $v0, $at, .L7F03D3BC +/* 071ED8 7F03D3A8 C7A40058 */ lwc1 $f4, 0x58($sp) +/* 071EDC 7F03D3AC 3C018003 */ lui $at, %hi(difficulty) +/* 071EE0 7F03D3B0 C4320AAC */ lwc1 $f18, %lo(difficulty)($at) +/* 071EE4 7F03D3B4 46122402 */ mul.s $f16, $f4, $f18 +/* 071EE8 7F03D3B8 E7B00058 */ swc1 $f16, 0x58($sp) +.L7F03D3BC: +/* 071EEC 7F03D3BC 0FC1E129 */ jal getPlayer_c_screenwidth +/* 071EF0 7F03D3C0 00000000 */ nop +/* 071EF4 7F03D3C4 0FC1E131 */ jal getPlayer_c_screenleft +/* 071EF8 7F03D3C8 E7A00038 */ swc1 $f0, 0x38($sp) +/* 071EFC 7F03D3CC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 071F00 7F03D3D0 44813000 */ mtc1 $at, $f6 +/* 071F04 7F03D3D4 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 071F08 7F03D3D8 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 071F0C 7F03D3DC C7B00094 */ lwc1 $f16, 0x94($sp) +/* 071F10 7F03D3E0 46083282 */ mul.s $f10, $f6, $f8 +/* 071F14 7F03D3E4 44814000 */ mtc1 $at, $f8 +/* 071F18 7F03D3E8 46109180 */ add.s $f6, $f18, $f16 +/* 071F1C 7F03D3EC C7B20058 */ lwc1 $f18, 0x58($sp) +/* 071F20 7F03D3F0 00001025 */ move $v0, $zero +/* 071F24 7F03D3F4 460A0100 */ add.s $f4, $f0, $f10 +/* 071F28 7F03D3F8 46083282 */ mul.s $f10, $f6, $f8 +/* 071F2C 7F03D3FC 46125401 */ sub.s $f16, $f10, $f18 +/* 071F30 7F03D400 4604803E */ c.le.s $f16, $f4 +/* 071F34 7F03D404 00000000 */ nop +/* 071F38 7F03D408 45000002 */ bc1f .L7F03D414 +/* 071F3C 7F03D40C 00000000 */ nop +/* 071F40 7F03D410 24020001 */ li $v0, 1 +.L7F03D414: +/* 071F44 7F03D414 10400029 */ beqz $v0, .L7F03D4BC +/* 071F48 7F03D418 00000000 */ nop +/* 071F4C 7F03D41C 0FC1E129 */ jal getPlayer_c_screenwidth +/* 071F50 7F03D420 00000000 */ nop +/* 071F54 7F03D424 0FC1E131 */ jal getPlayer_c_screenleft +/* 071F58 7F03D428 E7A00030 */ swc1 $f0, 0x30($sp) +/* 071F5C 7F03D42C C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 071F60 7F03D430 C7A80094 */ lwc1 $f8, 0x94($sp) +/* 071F64 7F03D434 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 071F68 7F03D438 44816000 */ mtc1 $at, $f12 +/* 071F6C 7F03D43C 46083280 */ add.s $f10, $f6, $f8 +/* 071F70 7F03D440 C7A60030 */ lwc1 $f6, 0x30($sp) +/* 071F74 7F03D444 C7A40058 */ lwc1 $f4, 0x58($sp) +/* 071F78 7F03D448 00001025 */ move $v0, $zero +/* 071F7C 7F03D44C 460C5482 */ mul.s $f18, $f10, $f12 +/* 071F80 7F03D450 00000000 */ nop +/* 071F84 7F03D454 46066202 */ mul.s $f8, $f12, $f6 +/* 071F88 7F03D458 46049400 */ add.s $f16, $f18, $f4 +/* 071F8C 7F03D45C C7B20068 */ lwc1 $f18, 0x68($sp) +/* 071F90 7F03D460 46080280 */ add.s $f10, $f0, $f8 +/* 071F94 7F03D464 4610503E */ c.le.s $f10, $f16 +/* 071F98 7F03D468 00000000 */ nop +/* 071F9C 7F03D46C 45000002 */ bc1f .L7F03D478 +/* 071FA0 7F03D470 00000000 */ nop +/* 071FA4 7F03D474 24020001 */ li $v0, 1 +.L7F03D478: +/* 071FA8 7F03D478 10400010 */ beqz $v0, .L7F03D4BC +/* 071FAC 7F03D47C 00000000 */ nop +/* 071FB0 7F03D480 C7A200A8 */ lwc1 $f2, 0xa8($sp) +/* 071FB4 7F03D484 00001025 */ move $v0, $zero +/* 071FB8 7F03D488 C7A40064 */ lwc1 $f4, 0x64($sp) +/* 071FBC 7F03D48C 4602903E */ c.le.s $f18, $f2 +/* 071FC0 7F03D490 00000000 */ nop +/* 071FC4 7F03D494 45000002 */ bc1f .L7F03D4A0 +/* 071FC8 7F03D498 00000000 */ nop +/* 071FCC 7F03D49C 24020001 */ li $v0, 1 +.L7F03D4A0: +/* 071FD0 7F03D4A0 10400006 */ beqz $v0, .L7F03D4BC +/* 071FD4 7F03D4A4 00000000 */ nop +/* 071FD8 7F03D4A8 4604103E */ c.le.s $f2, $f4 +/* 071FDC 7F03D4AC 00001025 */ move $v0, $zero +/* 071FE0 7F03D4B0 45000002 */ bc1f .L7F03D4BC +/* 071FE4 7F03D4B4 00000000 */ nop +/* 071FE8 7F03D4B8 24020001 */ li $v0, 1 +.L7F03D4BC: +/* 071FEC 7F03D4BC 10000011 */ b .L7F03D504 +/* 071FF0 7F03D4C0 AFA2005C */ sw $v0, 0x5c($sp) +.L7F03D4C4: +/* 071FF4 7F03D4C4 C7A60094 */ lwc1 $f6, 0x94($sp) +/* 071FF8 7F03D4C8 00001025 */ move $v0, $zero +/* 071FFC 7F03D4CC C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 072000 7F03D4D0 4600303E */ c.le.s $f6, $f0 +/* 072004 7F03D4D4 00000000 */ nop +/* 072008 7F03D4D8 45000002 */ bc1f .L7F03D4E4 +/* 07200C 7F03D4DC 00000000 */ nop +/* 072010 7F03D4E0 24020001 */ li $v0, 1 +.L7F03D4E4: +/* 072014 7F03D4E4 50400007 */ beql $v0, $zero, .L7F03D504 +/* 072018 7F03D4E8 AFA2005C */ sw $v0, 0x5c($sp) +/* 07201C 7F03D4EC 4608003E */ c.le.s $f0, $f8 +/* 072020 7F03D4F0 00001025 */ move $v0, $zero +/* 072024 7F03D4F4 45020003 */ bc1fl .L7F03D504 +/* 072028 7F03D4F8 AFA2005C */ sw $v0, 0x5c($sp) +/* 07202C 7F03D4FC 24020001 */ li $v0, 1 +/* 072030 7F03D500 AFA2005C */ sw $v0, 0x5c($sp) +.L7F03D504: +/* 072034 7F03D504 8FA9005C */ lw $t1, 0x5c($sp) +.L7F03D508: +/* 072038 7F03D508 5120009C */ beql $t1, $zero, .L7F03D77C +/* 07203C 7F03D50C 8FBF002C */ lw $ra, 0x2c($sp) +/* 072040 7F03D510 0FC225E6 */ jal get_curplayer_positiondata +/* 072044 7F03D514 00000000 */ nop +/* 072048 7F03D518 AFA20054 */ sw $v0, 0x54($sp) +/* 07204C 7F03D51C 8C4A0014 */ lw $t2, 0x14($v0) +/* 072050 7F03D520 3C048008 */ lui $a0, %hi(pPlayer) +/* 072054 7F03D524 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 072058 7F03D528 0FC225E0 */ jal sub_GAME_7F089780 +/* 07205C 7F03D52C AFAA0050 */ sw $t2, 0x50($sp) +/* 072060 7F03D530 8FA40054 */ lw $a0, 0x54($sp) +/* 072064 7F03D534 00002825 */ move $a1, $zero +/* 072068 7F03D538 0FC2280F */ jal sub_GAME_7F08A03C +/* 07206C 7F03D53C E7A0004C */ swc1 $f0, 0x4c($sp) +/* 072070 7F03D540 8FA20054 */ lw $v0, 0x54($sp) +/* 072074 7F03D544 8FA300B0 */ lw $v1, 0xb0($sp) +/* 072078 7F03D548 C7A2004C */ lwc1 $f2, 0x4c($sp) +/* 07207C 7F03D54C 8C450008 */ lw $a1, 8($v0) +/* 072080 7F03D550 C4700010 */ lwc1 $f16, 0x10($v1) +/* 072084 7F03D554 8C460010 */ lw $a2, 0x10($v0) +/* 072088 7F03D558 8C670008 */ lw $a3, 8($v1) +/* 07208C 7F03D55C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 072090 7F03D560 44819000 */ mtc1 $at, $f18 +/* 072094 7F03D564 44805000 */ mtc1 $zero, $f10 +/* 072098 7F03D568 240B0013 */ li $t3, 19 +/* 07209C 7F03D56C AFAB0014 */ sw $t3, 0x14($sp) +/* 0720A0 7F03D570 27A40050 */ addiu $a0, $sp, 0x50 +/* 0720A4 7F03D574 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0720A8 7F03D578 E7A20018 */ swc1 $f2, 0x18($sp) +/* 0720AC 7F03D57C E7B00010 */ swc1 $f16, 0x10($sp) +/* 0720B0 7F03D580 E7B20024 */ swc1 $f18, 0x24($sp) +/* 0720B4 7F03D584 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0720B8 7F03D588 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 0720BC 7F03D58C 10400077 */ beqz $v0, .L7F03D76C +/* 0720C0 7F03D590 8FAD00B0 */ lw $t5, 0xb0($sp) +/* 0720C4 7F03D594 8FAC0050 */ lw $t4, 0x50($sp) +/* 0720C8 7F03D598 8DAE0014 */ lw $t6, 0x14($t5) +/* 0720CC 7F03D59C C7A200AC */ lwc1 $f2, 0xac($sp) +/* 0720D0 7F03D5A0 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 0720D4 7F03D5A4 158E0071 */ bne $t4, $t6, .L7F03D76C +/* 0720D8 7F03D5A8 8FAF00C0 */ lw $t7, 0xc0($sp) +/* 0720DC 7F03D5AC 4604103C */ c.lt.s $f2, $f4 +/* 0720E0 7F03D5B0 46001006 */ mov.s $f0, $f2 +/* 0720E4 7F03D5B4 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 0720E8 7F03D5B8 45020004 */ bc1fl .L7F03D5CC +/* 0720EC 7F03D5BC 4602303C */ c.lt.s $f6, $f2 +/* 0720F0 7F03D5C0 10000006 */ b .L7F03D5DC +/* 0720F4 7F03D5C4 46002006 */ mov.s $f0, $f4 +/* 0720F8 7F03D5C8 4602303C */ c.lt.s $f6, $f2 +.L7F03D5CC: +/* 0720FC 7F03D5CC 00000000 */ nop +/* 072100 7F03D5D0 45000002 */ bc1f .L7F03D5DC +/* 072104 7F03D5D4 00000000 */ nop +/* 072108 7F03D5D8 46003006 */ mov.s $f0, $f6 +.L7F03D5DC: +/* 07210C 7F03D5DC 0FC1F1AA */ jal redirect_get_BONDdata_autoaim_x +/* 072110 7F03D5E0 E5E00004 */ swc1 $f0, 4($t7) +/* 072114 7F03D5E4 10400010 */ beqz $v0, .L7F03D628 +/* 072118 7F03D5E8 C7A200A8 */ lwc1 $f2, 0xa8($sp) +/* 07211C 7F03D5EC C7A80068 */ lwc1 $f8, 0x68($sp) +/* 072120 7F03D5F0 46001006 */ mov.s $f0, $f2 +/* 072124 7F03D5F4 C7B00064 */ lwc1 $f16, 0x64($sp) +/* 072128 7F03D5F8 4608103C */ c.lt.s $f2, $f8 +/* 07212C 7F03D5FC 8FB800C0 */ lw $t8, 0xc0($sp) +/* 072130 7F03D600 45020004 */ bc1fl .L7F03D614 +/* 072134 7F03D604 4602803C */ c.lt.s $f16, $f2 +/* 072138 7F03D608 10000006 */ b .L7F03D624 +/* 07213C 7F03D60C 46004006 */ mov.s $f0, $f8 +/* 072140 7F03D610 4602803C */ c.lt.s $f16, $f2 +.L7F03D614: +/* 072144 7F03D614 00000000 */ nop +/* 072148 7F03D618 45020003 */ bc1fl .L7F03D628 +/* 07214C 7F03D61C E7000000 */ swc1 $f0, ($t8) +/* 072150 7F03D620 46008006 */ mov.s $f0, $f16 +.L7F03D624: +/* 072154 7F03D624 E7000000 */ swc1 $f0, ($t8) +.L7F03D628: +/* 072158 7F03D628 0FC1E129 */ jal getPlayer_c_screenwidth +/* 07215C 7F03D62C 00000000 */ nop +/* 072160 7F03D630 0FC1E131 */ jal getPlayer_c_screenleft +/* 072164 7F03D634 E7A00038 */ swc1 $f0, 0x38($sp) +/* 072168 7F03D638 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07216C 7F03D63C 44815000 */ mtc1 $at, $f10 +/* 072170 7F03D640 C7B20038 */ lwc1 $f18, 0x38($sp) +/* 072174 7F03D644 C7A80094 */ lwc1 $f8, 0x94($sp) +/* 072178 7F03D648 46125102 */ mul.s $f4, $f10, $f18 +/* 07217C 7F03D64C 46040180 */ add.s $f6, $f0, $f4 +/* 072180 7F03D650 4606403E */ c.le.s $f8, $f6 +/* 072184 7F03D654 00000000 */ nop +/* 072188 7F03D658 45000013 */ bc1f .L7F03D6A8 +/* 07218C 7F03D65C 00000000 */ nop +/* 072190 7F03D660 0FC1E129 */ jal getPlayer_c_screenwidth +/* 072194 7F03D664 00000000 */ nop +/* 072198 7F03D668 0FC1E131 */ jal getPlayer_c_screenleft +/* 07219C 7F03D66C E7A00030 */ swc1 $f0, 0x30($sp) +/* 0721A0 7F03D670 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0721A4 7F03D674 44815000 */ mtc1 $at, $f10 +/* 0721A8 7F03D678 C7B20030 */ lwc1 $f18, 0x30($sp) +/* 0721AC 7F03D67C C7B0008C */ lwc1 $f16, 0x8c($sp) +/* 0721B0 7F03D680 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0721B4 7F03D684 46125102 */ mul.s $f4, $f10, $f18 +/* 0721B8 7F03D688 46040180 */ add.s $f6, $f0, $f4 +/* 0721BC 7F03D68C 4610303E */ c.le.s $f6, $f16 +/* 0721C0 7F03D690 00000000 */ nop +/* 0721C4 7F03D694 45000004 */ bc1f .L7F03D6A8 +/* 0721C8 7F03D698 00000000 */ nop +/* 0721CC 7F03D69C 44814000 */ mtc1 $at, $f8 +/* 0721D0 7F03D6A0 10000032 */ b .L7F03D76C +/* 0721D4 7F03D6A4 E7A80060 */ swc1 $f8, 0x60($sp) +.L7F03D6A8: +/* 0721D8 7F03D6A8 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0721DC 7F03D6AC 00000000 */ nop +/* 0721E0 7F03D6B0 0FC1E131 */ jal getPlayer_c_screenleft +/* 0721E4 7F03D6B4 E7A00038 */ swc1 $f0, 0x38($sp) +/* 0721E8 7F03D6B8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0721EC 7F03D6BC 44815000 */ mtc1 $at, $f10 +/* 0721F0 7F03D6C0 C7B20038 */ lwc1 $f18, 0x38($sp) +/* 0721F4 7F03D6C4 C7A60094 */ lwc1 $f6, 0x94($sp) +/* 0721F8 7F03D6C8 46125102 */ mul.s $f4, $f10, $f18 +/* 0721FC 7F03D6CC 46040400 */ add.s $f16, $f0, $f4 +/* 072200 7F03D6D0 4610303E */ c.le.s $f6, $f16 +/* 072204 7F03D6D4 00000000 */ nop +/* 072208 7F03D6D8 45000013 */ bc1f .L7F03D728 +/* 07220C 7F03D6DC 00000000 */ nop +/* 072210 7F03D6E0 0FC1E129 */ jal getPlayer_c_screenwidth +/* 072214 7F03D6E4 00000000 */ nop +/* 072218 7F03D6E8 0FC1E131 */ jal getPlayer_c_screenleft +/* 07221C 7F03D6EC E7A00038 */ swc1 $f0, 0x38($sp) +/* 072220 7F03D6F0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 072224 7F03D6F4 44814000 */ mtc1 $at, $f8 +/* 072228 7F03D6F8 C7AA0038 */ lwc1 $f10, 0x38($sp) +/* 07222C 7F03D6FC C7B0008C */ lwc1 $f16, 0x8c($sp) +/* 072230 7F03D700 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 072234 7F03D704 460A4482 */ mul.s $f18, $f8, $f10 +/* 072238 7F03D708 C7A80058 */ lwc1 $f8, 0x58($sp) +/* 07223C 7F03D70C 46120100 */ add.s $f4, $f0, $f18 +/* 072240 7F03D710 44819000 */ mtc1 $at, $f18 +/* 072244 7F03D714 46102181 */ sub.s $f6, $f4, $f16 +/* 072248 7F03D718 46083283 */ div.s $f10, $f6, $f8 +/* 07224C 7F03D71C 460A9101 */ sub.s $f4, $f18, $f10 +/* 072250 7F03D720 10000012 */ b .L7F03D76C +/* 072254 7F03D724 E7A40060 */ swc1 $f4, 0x60($sp) +.L7F03D728: +/* 072258 7F03D728 0FC1E131 */ jal getPlayer_c_screenleft +/* 07225C 7F03D72C 00000000 */ nop +/* 072260 7F03D730 0FC1E129 */ jal getPlayer_c_screenwidth +/* 072264 7F03D734 E7A00040 */ swc1 $f0, 0x40($sp) +/* 072268 7F03D738 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07226C 7F03D73C 44818000 */ mtc1 $at, $f16 +/* 072270 7F03D740 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 072274 7F03D744 C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 072278 7F03D748 46100182 */ mul.s $f6, $f0, $f16 +/* 07227C 7F03D74C C7B00058 */ lwc1 $f16, 0x58($sp) +/* 072280 7F03D750 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 072284 7F03D754 46083480 */ add.s $f18, $f6, $f8 +/* 072288 7F03D758 44814000 */ mtc1 $at, $f8 +/* 07228C 7F03D75C 46125101 */ sub.s $f4, $f10, $f18 +/* 072290 7F03D760 46102183 */ div.s $f6, $f4, $f16 +/* 072294 7F03D764 46064281 */ sub.s $f10, $f8, $f6 +/* 072298 7F03D768 E7AA0060 */ swc1 $f10, 0x60($sp) +.L7F03D76C: +/* 07229C 7F03D76C 8FA40054 */ lw $a0, 0x54($sp) +/* 0722A0 7F03D770 0FC2280F */ jal sub_GAME_7F08A03C +/* 0722A4 7F03D774 24050001 */ li $a1, 1 +/* 0722A8 7F03D778 8FBF002C */ lw $ra, 0x2c($sp) +.L7F03D77C: +/* 0722AC 7F03D77C C7A00060 */ lwc1 $f0, 0x60($sp) +/* 0722B0 7F03D780 27BD00B0 */ addiu $sp, $sp, 0xb0 +/* 0722B4 7F03D784 03E00008 */ jr $ra +/* 0722B8 7F03D788 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03D78C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03D78C +/* 0722BC 7F03D78C 27BDFF58 */ addiu $sp, $sp, -0xa8 +/* 0722C0 7F03D790 3C0F8003 */ lui $t7, %hi(D_80030AB0) +/* 0722C4 7F03D794 AFBF004C */ sw $ra, 0x4c($sp) +/* 0722C8 7F03D798 AFB60048 */ sw $s6, 0x48($sp) +/* 0722CC 7F03D79C AFB50044 */ sw $s5, 0x44($sp) +/* 0722D0 7F03D7A0 AFB40040 */ sw $s4, 0x40($sp) +/* 0722D4 7F03D7A4 AFB3003C */ sw $s3, 0x3c($sp) +/* 0722D8 7F03D7A8 AFB20038 */ sw $s2, 0x38($sp) +/* 0722DC 7F03D7AC AFB10034 */ sw $s1, 0x34($sp) +/* 0722E0 7F03D7B0 AFB00030 */ sw $s0, 0x30($sp) +/* 0722E4 7F03D7B4 F7B60028 */ sdc1 $f22, 0x28($sp) +/* 0722E8 7F03D7B8 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 0722EC 7F03D7BC 25EF0AB0 */ addiu $t7, %lo(D_80030AB0) # addiu $t7, $t7, 0xab0 +/* 0722F0 7F03D7C0 8DE10000 */ lw $at, ($t7) +/* 0722F4 7F03D7C4 8DE80004 */ lw $t0, 4($t7) +/* 0722F8 7F03D7C8 27AE009C */ addiu $t6, $sp, 0x9c +/* 0722FC 7F03D7CC 0000B025 */ move $s6, $zero +/* 072300 7F03D7D0 ADC10000 */ sw $at, ($t6) +/* 072304 7F03D7D4 0FC1F170 */ jal redirect_get_BONDdata_autoaim_y +/* 072308 7F03D7D8 ADC80004 */ sw $t0, 4($t6) +/* 07230C 7F03D7DC 10400047 */ beqz $v0, .L7F03D8FC +/* 072310 7F03D7E0 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 072314 7F03D7E4 3C128007 */ lui $s2, %hi(dword_CODE_bss_80071DF0) +/* 072318 7F03D7E8 8E521DF0 */ lw $s2, %lo(dword_CODE_bss_80071DF0)($s2) +/* 07231C 7F03D7EC 3C098007 */ lui $t1, %hi(dword_CODE_bss_80071620) +/* 072320 7F03D7F0 4481A000 */ mtc1 $at, $f20 +/* 072324 7F03D7F4 25291620 */ addiu $t1, %lo(dword_CODE_bss_80071620) # addiu $t1, $t1, 0x1620 +/* 072328 7F03D7F8 2652FFFC */ addiu $s2, $s2, -4 +/* 07232C 7F03D7FC 0249082B */ sltu $at, $s2, $t1 +/* 072330 7F03D800 1420003E */ bnez $at, .L7F03D8FC +/* 072334 7F03D804 27B50078 */ addiu $s5, $sp, 0x78 +/* 072338 7F03D808 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07233C 7F03D80C 4481B000 */ mtc1 $at, $f22 +/* 072340 7F03D810 27B40080 */ addiu $s4, $sp, 0x80 +/* 072344 7F03D814 27B30088 */ addiu $s3, $sp, 0x88 +/* 072348 7F03D818 8E500000 */ lw $s0, ($s2) +.L7F03D81C: +/* 07234C 7F03D81C 12000031 */ beqz $s0, .L7F03D8E4 +/* 072350 7F03D820 00000000 */ nop +/* 072354 7F03D824 92020000 */ lbu $v0, ($s0) +/* 072358 7F03D828 24010003 */ li $at, 3 +/* 07235C 7F03D82C 1041000C */ beq $v0, $at, .L7F03D860 +/* 072360 7F03D830 24010006 */ li $at, 6 +/* 072364 7F03D834 1441002B */ bne $v0, $at, .L7F03D8E4 +/* 072368 7F03D838 00000000 */ nop +/* 07236C 7F03D83C 8E0A0004 */ lw $t2, 4($s0) +/* 072370 7F03D840 11400028 */ beqz $t2, .L7F03D8E4 +/* 072374 7F03D844 00000000 */ nop +/* 072378 7F03D848 0FC26C57 */ jal sub_GAME_7F09B15C +/* 07237C 7F03D84C 02002025 */ move $a0, $s0 +/* 072380 7F03D850 0FC26C54 */ jal get_cur_playernum +/* 072384 7F03D854 00408825 */ move $s1, $v0 +/* 072388 7F03D858 10510022 */ beq $v0, $s1, .L7F03D8E4 +/* 07238C 7F03D85C 00000000 */ nop +.L7F03D860: +/* 072390 7F03D860 8E110004 */ lw $s1, 4($s0) +/* 072394 7F03D864 00002825 */ move $a1, $zero +/* 072398 7F03D868 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 07239C 7F03D86C 02202025 */ move $a0, $s1 +/* 0723A0 7F03D870 14400004 */ bnez $v0, .L7F03D884 +/* 0723A4 7F03D874 02202025 */ move $a0, $s1 +/* 0723A8 7F03D878 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 0723AC 7F03D87C 24050001 */ li $a1, 1 +/* 0723B0 7F03D880 10400018 */ beqz $v0, .L7F03D8E4 +.L7F03D884: +/* 0723B4 7F03D884 02002025 */ move $a0, $s0 +/* 0723B8 7F03D888 02602825 */ move $a1, $s3 +/* 0723BC 7F03D88C 02803025 */ move $a2, $s4 +/* 0723C0 7F03D890 0FC08C65 */ jal sub_GAME_7F023194 +/* 0723C4 7F03D894 02A03825 */ move $a3, $s5 +/* 0723C8 7F03D898 10400012 */ beqz $v0, .L7F03D8E4 +/* 0723CC 7F03D89C 02002025 */ move $a0, $s0 +/* 0723D0 7F03D8A0 27AB006C */ addiu $t3, $sp, 0x6c +/* 0723D4 7F03D8A4 AFAB0010 */ sw $t3, 0x10($sp) +/* 0723D8 7F03D8A8 02602825 */ move $a1, $s3 +/* 0723DC 7F03D8AC 02803025 */ move $a2, $s4 +/* 0723E0 7F03D8B0 0FC0F462 */ jal sub_GAME_7F03D188 +/* 0723E4 7F03D8B4 02A03825 */ move $a3, $s5 +/* 0723E8 7F03D8B8 4600A03C */ c.lt.s $f20, $f0 +/* 0723EC 7F03D8BC C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 0723F0 7F03D8C0 45000008 */ bc1f .L7F03D8E4 +/* 0723F4 7F03D8C4 00000000 */ nop +/* 0723F8 7F03D8C8 4600B03E */ c.le.s $f22, $f0 +/* 0723FC 7F03D8CC C7A60070 */ lwc1 $f6, 0x70($sp) +/* 072400 7F03D8D0 46000506 */ mov.s $f20, $f0 +/* 072404 7F03D8D4 0200B025 */ move $s6, $s0 +/* 072408 7F03D8D8 E7A4009C */ swc1 $f4, 0x9c($sp) +/* 07240C 7F03D8DC 45010007 */ bc1t .L7F03D8FC +/* 072410 7F03D8E0 E7A600A0 */ swc1 $f6, 0xa0($sp) +.L7F03D8E4: +/* 072414 7F03D8E4 3C0C8007 */ lui $t4, %hi(dword_CODE_bss_80071620) +/* 072418 7F03D8E8 258C1620 */ addiu $t4, %lo(dword_CODE_bss_80071620) # addiu $t4, $t4, 0x1620 +/* 07241C 7F03D8EC 2652FFFC */ addiu $s2, $s2, -4 +/* 072420 7F03D8F0 024C082B */ sltu $at, $s2, $t4 +/* 072424 7F03D8F4 5020FFC9 */ beql $at, $zero, .L7F03D81C +/* 072428 7F03D8F8 8E500000 */ lw $s0, ($s2) +.L7F03D8FC: +/* 07242C 7F03D8FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 072430 7F03D900 4481B000 */ mtc1 $at, $f22 +/* 072434 7F03D904 52C00026 */ beql $s6, $zero, .L7F03D9A0 +/* 072438 7F03D908 4480A000 */ mtc1 $zero, $f20 +/* 07243C 7F03D90C 0FC1E135 */ jal getPlayer_c_screentop +/* 072440 7F03D910 00000000 */ nop +/* 072444 7F03D914 0FC1E12D */ jal getPlayer_c_screenheight +/* 072448 7F03D918 46000506 */ mov.s $f20, $f0 +/* 07244C 7F03D91C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 072450 7F03D920 44818000 */ mtc1 $at, $f16 +/* 072454 7F03D924 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 072458 7F03D928 02C02025 */ move $a0, $s6 +/* 07245C 7F03D92C 46100482 */ mul.s $f18, $f0, $f16 +/* 072460 7F03D930 46144281 */ sub.s $f10, $f8, $f20 +/* 072464 7F03D934 46125103 */ div.s $f4, $f10, $f18 +/* 072468 7F03D938 46162181 */ sub.s $f6, $f4, $f22 +/* 07246C 7F03D93C 44053000 */ mfc1 $a1, $f6 +/* 072470 7F03D940 0FC1F17C */ jal sub_GAME_7F07C5F0 +/* 072474 7F03D944 00000000 */ nop +/* 072478 7F03D948 0FC1F1AA */ jal redirect_get_BONDdata_autoaim_x +/* 07247C 7F03D94C 00000000 */ nop +/* 072480 7F03D950 5040001B */ beql $v0, $zero, .L7F03D9C0 +/* 072484 7F03D954 8FBF004C */ lw $ra, 0x4c($sp) +/* 072488 7F03D958 0FC1E131 */ jal getPlayer_c_screenleft +/* 07248C 7F03D95C 00000000 */ nop +/* 072490 7F03D960 0FC1E129 */ jal getPlayer_c_screenwidth +/* 072494 7F03D964 46000506 */ mov.s $f20, $f0 +/* 072498 7F03D968 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07249C 7F03D96C 44815000 */ mtc1 $at, $f10 +/* 0724A0 7F03D970 C7A8009C */ lwc1 $f8, 0x9c($sp) +/* 0724A4 7F03D974 02C02025 */ move $a0, $s6 +/* 0724A8 7F03D978 460A0482 */ mul.s $f18, $f0, $f10 +/* 0724AC 7F03D97C 46144401 */ sub.s $f16, $f8, $f20 +/* 0724B0 7F03D980 46128103 */ div.s $f4, $f16, $f18 +/* 0724B4 7F03D984 46162181 */ sub.s $f6, $f4, $f22 +/* 0724B8 7F03D988 44053000 */ mfc1 $a1, $f6 +/* 0724BC 7F03D98C 0FC1F1B2 */ jal sub_GAME_7F07C6C8 +/* 0724C0 7F03D990 00000000 */ nop +/* 0724C4 7F03D994 1000000A */ b .L7F03D9C0 +/* 0724C8 7F03D998 8FBF004C */ lw $ra, 0x4c($sp) +/* 0724CC 7F03D99C 4480A000 */ mtc1 $zero, $f20 +.L7F03D9A0: +/* 0724D0 7F03D9A0 00002025 */ move $a0, $zero +/* 0724D4 7F03D9A4 4405A000 */ mfc1 $a1, $f20 +/* 0724D8 7F03D9A8 0FC1F17C */ jal sub_GAME_7F07C5F0 +/* 0724DC 7F03D9AC 00000000 */ nop +/* 0724E0 7F03D9B0 4405A000 */ mfc1 $a1, $f20 +/* 0724E4 7F03D9B4 0FC1F1B2 */ jal sub_GAME_7F07C6C8 +/* 0724E8 7F03D9B8 00002025 */ move $a0, $zero +/* 0724EC 7F03D9BC 8FBF004C */ lw $ra, 0x4c($sp) +.L7F03D9C0: +/* 0724F0 7F03D9C0 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 0724F4 7F03D9C4 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 0724F8 7F03D9C8 8FB00030 */ lw $s0, 0x30($sp) +/* 0724FC 7F03D9CC 8FB10034 */ lw $s1, 0x34($sp) +/* 072500 7F03D9D0 8FB20038 */ lw $s2, 0x38($sp) +/* 072504 7F03D9D4 8FB3003C */ lw $s3, 0x3c($sp) +/* 072508 7F03D9D8 8FB40040 */ lw $s4, 0x40($sp) +/* 07250C 7F03D9DC 8FB50044 */ lw $s5, 0x44($sp) +/* 072510 7F03D9E0 8FB60048 */ lw $s6, 0x48($sp) +/* 072514 7F03D9E4 03E00008 */ jr $ra +/* 072518 7F03D9E8 27BD00A8 */ addiu $sp, $sp, 0xa8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03D9EC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03D9EC +/* 07251C 7F03D9EC 8C820004 */ lw $v0, 4($a0) +/* 072520 7F03D9F0 44802000 */ mtc1 $zero, $f4 +/* 072524 7F03D9F4 C44000B4 */ lwc1 $f0, 0xb4($v0) +/* 072528 7F03D9F8 4604003E */ c.le.s $f0, $f4 +/* 07252C 7F03D9FC 00000000 */ nop +/* 072530 7F03DA00 45020004 */ bc1fl .L7F03DA14 +/* 072534 7F03DA04 C4460084 */ lwc1 $f6, 0x84($v0) +/* 072538 7F03DA08 10000009 */ b .L7F03DA30 +/* 07253C 7F03DA0C 24031000 */ li $v1, 4096 +/* 072540 7F03DA10 C4460084 */ lwc1 $f6, 0x84($v0) +.L7F03DA14: +/* 072544 7F03DA14 24034000 */ li $v1, 16384 +/* 072548 7F03DA18 4600303E */ c.le.s $f6, $f0 +/* 07254C 7F03DA1C 00000000 */ nop +/* 072550 7F03DA20 45000003 */ bc1f .L7F03DA30 +/* 072554 7F03DA24 00000000 */ nop +/* 072558 7F03DA28 10000001 */ b .L7F03DA30 +/* 07255C 7F03DA2C 24032000 */ li $v1, 8192 +.L7F03DA30: +/* 072560 7F03DA30 8C4E000C */ lw $t6, 0xc($v0) +/* 072564 7F03DA34 34788000 */ ori $t8, $v1, 0x8000 +/* 072568 7F03DA38 000E7880 */ sll $t7, $t6, 2 +/* 07256C 7F03DA3C 05E10002 */ bgez $t7, .L7F03DA48 +/* 072570 7F03DA40 00000000 */ nop +/* 072574 7F03DA44 03001825 */ move $v1, $t8 +.L7F03DA48: +/* 072578 7F03DA48 03E00008 */ jr $ra +/* 07257C 7F03DA4C 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03DA50(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03DA50 +/* 072580 7F03DA50 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 072584 7F03DA54 AFBF0014 */ sw $ra, 0x14($sp) +/* 072588 7F03DA58 90820000 */ lbu $v0, ($a0) +/* 07258C 7F03DA5C 24010002 */ li $at, 2 +/* 072590 7F03DA60 24060001 */ li $a2, 1 +/* 072594 7F03DA64 14410015 */ bne $v0, $at, .L7F03DABC +/* 072598 7F03DA68 30AE0100 */ andi $t6, $a1, 0x100 +/* 07259C 7F03DA6C 11C00007 */ beqz $t6, .L7F03DA8C +/* 0725A0 7F03DA70 30B90002 */ andi $t9, $a1, 2 +/* 0725A4 7F03DA74 8C820004 */ lw $v0, 4($a0) +/* 0725A8 7F03DA78 8C4F0008 */ lw $t7, 8($v0) +/* 0725AC 7F03DA7C 000FC140 */ sll $t8, $t7, 5 +/* 0725B0 7F03DA80 07010002 */ bgez $t8, .L7F03DA8C +/* 0725B4 7F03DA84 00000000 */ nop +/* 0725B8 7F03DA88 00003025 */ move $a2, $zero +.L7F03DA8C: +/* 0725BC 7F03DA8C 57200034 */ bnezl $t9, .L7F03DB60 +/* 0725C0 7F03DA90 8FBF0014 */ lw $ra, 0x14($sp) +/* 0725C4 7F03DA94 AFA50024 */ sw $a1, 0x24($sp) +/* 0725C8 7F03DA98 0FC0F67B */ jal sub_GAME_7F03D9EC +/* 0725CC 7F03DA9C AFA6001C */ sw $a2, 0x1c($sp) +/* 0725D0 7F03DAA0 8FA50024 */ lw $a1, 0x24($sp) +/* 0725D4 7F03DAA4 8FA6001C */ lw $a2, 0x1c($sp) +/* 0725D8 7F03DAA8 00454024 */ and $t0, $v0, $a1 +/* 0725DC 7F03DAAC 5500002C */ bnezl $t0, .L7F03DB60 +/* 0725E0 7F03DAB0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0725E4 7F03DAB4 10000029 */ b .L7F03DB5C +/* 0725E8 7F03DAB8 00003025 */ move $a2, $zero +.L7F03DABC: +/* 0725EC 7F03DABC 24010006 */ li $at, 6 +/* 0725F0 7F03DAC0 14410005 */ bne $v0, $at, .L7F03DAD8 +/* 0725F4 7F03DAC4 30A90004 */ andi $t1, $a1, 4 +/* 0725F8 7F03DAC8 55200025 */ bnezl $t1, .L7F03DB60 +/* 0725FC 7F03DACC 8FBF0014 */ lw $ra, 0x14($sp) +/* 072600 7F03DAD0 10000022 */ b .L7F03DB5C +/* 072604 7F03DAD4 00003025 */ move $a2, $zero +.L7F03DAD8: +/* 072608 7F03DAD8 24010003 */ li $at, 3 +/* 07260C 7F03DADC 14410006 */ bne $v0, $at, .L7F03DAF8 +/* 072610 7F03DAE0 30AB0100 */ andi $t3, $a1, 0x100 +/* 072614 7F03DAE4 30AA0008 */ andi $t2, $a1, 8 +/* 072618 7F03DAE8 5540001D */ bnezl $t2, .L7F03DB60 +/* 07261C 7F03DAEC 8FBF0014 */ lw $ra, 0x14($sp) +/* 072620 7F03DAF0 1000001A */ b .L7F03DB5C +/* 072624 7F03DAF4 00003025 */ move $a2, $zero +.L7F03DAF8: +/* 072628 7F03DAF8 11600006 */ beqz $t3, .L7F03DB14 +/* 07262C 7F03DAFC 8C820004 */ lw $v0, 4($a0) +/* 072630 7F03DB00 8C4C0008 */ lw $t4, 8($v0) +/* 072634 7F03DB04 000C6940 */ sll $t5, $t4, 5 +/* 072638 7F03DB08 05A30003 */ bgezl $t5, .L7F03DB18 +/* 07263C 7F03DB0C 30AE0200 */ andi $t6, $a1, 0x200 +/* 072640 7F03DB10 00003025 */ move $a2, $zero +.L7F03DB14: +/* 072644 7F03DB14 30AE0200 */ andi $t6, $a1, 0x200 +.L7F03DB18: +/* 072648 7F03DB18 11C00005 */ beqz $t6, .L7F03DB30 +/* 07264C 7F03DB1C 8C430008 */ lw $v1, 8($v0) +/* 072650 7F03DB20 00037B80 */ sll $t7, $v1, 0xe +/* 072654 7F03DB24 05E20003 */ bltzl $t7, .L7F03DB34 +/* 072658 7F03DB28 30780800 */ andi $t8, $v1, 0x800 +/* 07265C 7F03DB2C 00003025 */ move $a2, $zero +.L7F03DB30: +/* 072660 7F03DB30 30780800 */ andi $t8, $v1, 0x800 +.L7F03DB34: +/* 072664 7F03DB34 13000006 */ beqz $t8, .L7F03DB50 +/* 072668 7F03DB38 30A80001 */ andi $t0, $a1, 1 +/* 07266C 7F03DB3C 30B90010 */ andi $t9, $a1, 0x10 +/* 072670 7F03DB40 57200007 */ bnezl $t9, .L7F03DB60 +/* 072674 7F03DB44 8FBF0014 */ lw $ra, 0x14($sp) +/* 072678 7F03DB48 10000004 */ b .L7F03DB5C +/* 07267C 7F03DB4C 00003025 */ move $a2, $zero +.L7F03DB50: +/* 072680 7F03DB50 55000003 */ bnezl $t0, .L7F03DB60 +/* 072684 7F03DB54 8FBF0014 */ lw $ra, 0x14($sp) +/* 072688 7F03DB58 00003025 */ move $a2, $zero +.L7F03DB5C: +/* 07268C 7F03DB5C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F03DB60: +/* 072690 7F03DB60 27BD0020 */ addiu $sp, $sp, 0x20 +/* 072694 7F03DB64 00C01025 */ move $v0, $a2 +/* 072698 7F03DB68 03E00008 */ jr $ra +/* 07269C 7F03DB6C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03DB70(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03DB70 +/* 0726A0 7F03DB70 8C830000 */ lw $v1, ($a0) +/* 0726A4 7F03DB74 00801025 */ move $v0, $a0 +/* 0726A8 7F03DB78 04620012 */ bltzl $v1, .L7F03DBC4 +/* 0726AC 7F03DB7C 00001025 */ move $v0, $zero +/* 0726B0 7F03DB80 8CA70000 */ lw $a3, ($a1) +/* 0726B4 7F03DB84 00A02025 */ move $a0, $a1 +.L7F03DB88: +/* 0726B8 7F03DB88 04E00009 */ bltz $a3, .L7F03DBB0 +/* 0726BC 7F03DB8C 00E03025 */ move $a2, $a3 +.L7F03DB90: +/* 0726C0 7F03DB90 54660004 */ bnel $v1, $a2, .L7F03DBA4 +/* 0726C4 7F03DB94 8C860004 */ lw $a2, 4($a0) +/* 0726C8 7F03DB98 03E00008 */ jr $ra +/* 0726CC 7F03DB9C 24020001 */ li $v0, 1 + +/* 0726D0 7F03DBA0 8C860004 */ lw $a2, 4($a0) +.L7F03DBA4: +/* 0726D4 7F03DBA4 24840004 */ addiu $a0, $a0, 4 +/* 0726D8 7F03DBA8 04C1FFF9 */ bgez $a2, .L7F03DB90 +/* 0726DC 7F03DBAC 00000000 */ nop +.L7F03DBB0: +/* 0726E0 7F03DBB0 8C430004 */ lw $v1, 4($v0) +/* 0726E4 7F03DBB4 24420004 */ addiu $v0, $v0, 4 +/* 0726E8 7F03DBB8 0463FFF3 */ bgezl $v1, .L7F03DB88 +/* 0726EC 7F03DBBC 00A02025 */ move $a0, $a1 +/* 0726F0 7F03DBC0 00001025 */ move $v0, $zero +.L7F03DBC4: +/* 0726F4 7F03DBC4 03E00008 */ jr $ra +/* 0726F8 7F03DBC8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03DBCC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03DBCC +/* 0726FC 7F03DBCC 3C0F8007 */ lui $t7, %hi(dword_CODE_bss_8007161C) +/* 072700 7F03DBD0 8DEF161C */ lw $t7, %lo(dword_CODE_bss_8007161C)($t7) +/* 072704 7F03DBD4 0005C140 */ sll $t8, $a1, 5 +/* 072708 7F03DBD8 AFA40000 */ sw $a0, ($sp) +/* 07270C 7F03DBDC 01F81821 */ addu $v1, $t7, $t8 +/* 072710 7F03DBE0 84790000 */ lh $t9, ($v1) +/* 072714 7F03DBE4 00043400 */ sll $a2, $a0, 0x10 +/* 072718 7F03DBE8 00067403 */ sra $t6, $a2, 0x10 +/* 07271C 7F03DBEC 01C03025 */ move $a2, $t6 +/* 072720 7F03DBF0 07210004 */ bgez $t9, .L7F03DC04 +/* 072724 7F03DBF4 00602025 */ move $a0, $v1 +/* 072728 7F03DBF8 A48E0000 */ sh $t6, ($a0) +/* 07272C 7F03DBFC 03E00008 */ jr $ra +/* 072730 7F03DC00 24020001 */ li $v0, 1 + +.L7F03DC04: +/* 072734 7F03DC04 84880002 */ lh $t0, 2($a0) +/* 072738 7F03DC08 24020001 */ li $v0, 1 +/* 07273C 7F03DC0C 05030004 */ bgezl $t0, .L7F03DC20 +/* 072740 7F03DC10 84890004 */ lh $t1, 4($a0) +/* 072744 7F03DC14 03E00008 */ jr $ra +/* 072748 7F03DC18 A4860002 */ sh $a2, 2($a0) + +/* 07274C 7F03DC1C 84890004 */ lh $t1, 4($a0) +.L7F03DC20: +/* 072750 7F03DC20 24650006 */ addiu $a1, $v1, 6 +/* 072754 7F03DC24 2402001E */ li $v0, 30 +/* 072758 7F03DC28 05230005 */ bgezl $t1, .L7F03DC40 +/* 07275C 7F03DC2C 24040006 */ li $a0, 6 +/* 072760 7F03DC30 A4860004 */ sh $a2, 4($a0) +/* 072764 7F03DC34 03E00008 */ jr $ra +/* 072768 7F03DC38 24020001 */ li $v0, 1 + +/* 07276C 7F03DC3C 24040006 */ li $a0, 6 +.L7F03DC40: +/* 072770 7F03DC40 84AA0000 */ lh $t2, ($a1) +/* 072774 7F03DC44 24840008 */ addiu $a0, $a0, 8 +/* 072778 7F03DC48 05430005 */ bgezl $t2, .L7F03DC60 +/* 07277C 7F03DC4C 84AB0002 */ lh $t3, 2($a1) +/* 072780 7F03DC50 A4A60000 */ sh $a2, ($a1) +/* 072784 7F03DC54 03E00008 */ jr $ra +/* 072788 7F03DC58 24020001 */ li $v0, 1 + +/* 07278C 7F03DC5C 84AB0002 */ lh $t3, 2($a1) +.L7F03DC60: +/* 072790 7F03DC60 05630005 */ bgezl $t3, .L7F03DC78 +/* 072794 7F03DC64 84AC0004 */ lh $t4, 4($a1) +/* 072798 7F03DC68 A4A60002 */ sh $a2, 2($a1) +/* 07279C 7F03DC6C 03E00008 */ jr $ra +/* 0727A0 7F03DC70 24020001 */ li $v0, 1 + +/* 0727A4 7F03DC74 84AC0004 */ lh $t4, 4($a1) +.L7F03DC78: +/* 0727A8 7F03DC78 05830005 */ bgezl $t4, .L7F03DC90 +/* 0727AC 7F03DC7C 84AD0006 */ lh $t5, 6($a1) +/* 0727B0 7F03DC80 A4A60004 */ sh $a2, 4($a1) +/* 0727B4 7F03DC84 03E00008 */ jr $ra +/* 0727B8 7F03DC88 24020001 */ li $v0, 1 + +/* 0727BC 7F03DC8C 84AD0006 */ lh $t5, 6($a1) +.L7F03DC90: +/* 0727C0 7F03DC90 05A10004 */ bgez $t5, .L7F03DCA4 +/* 0727C4 7F03DC94 00000000 */ nop +/* 0727C8 7F03DC98 A4A60006 */ sh $a2, 6($a1) +/* 0727CC 7F03DC9C 03E00008 */ jr $ra +/* 0727D0 7F03DCA0 24020001 */ li $v0, 1 + +.L7F03DCA4: +/* 0727D4 7F03DCA4 1482FFE6 */ bne $a0, $v0, .L7F03DC40 +/* 0727D8 7F03DCA8 24A50008 */ addiu $a1, $a1, 8 +/* 0727DC 7F03DCAC 00001025 */ move $v0, $zero +/* 0727E0 7F03DCB0 03E00008 */ jr $ra +/* 0727E4 7F03DCB4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03DCB8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03DCB8 +/* 0727E8 7F03DCB8 00803025 */ move $a2, $a0 +/* 0727EC 7F03DCBC 3C028007 */ lui $v0, %hi(dword_CODE_bss_8007161C) +/* 0727F0 7F03DCC0 8C42161C */ lw $v0, %lo(dword_CODE_bss_8007161C)($v0) +/* 0727F4 7F03DCC4 2404FFFE */ li $a0, -2 +/* 0727F8 7F03DCC8 00001825 */ move $v1, $zero +/* 0727FC 7F03DCCC 24070100 */ li $a3, 256 +.L7F03DCD0: +/* 072800 7F03DCD0 844E0000 */ lh $t6, ($v0) +/* 072804 7F03DCD4 548E002C */ bnel $a0, $t6, .L7F03DD88 +/* 072808 7F03DCD8 24630001 */ addiu $v1, $v1, 1 +/* 07280C 7F03DCDC 3C028007 */ lui $v0, %hi(dword_CODE_bss_8007161C) +/* 072810 7F03DCE0 2442161C */ addiu $v0, %lo(dword_CODE_bss_8007161C) # addiu $v0, $v0, 0x161c +/* 072814 7F03DCE4 00002025 */ move $a0, $zero +/* 072818 7F03DCE8 24080020 */ li $t0, 32 +/* 07281C 7F03DCEC 2407FFFF */ li $a3, -1 +.L7F03DCF0: +/* 072820 7F03DCF0 8C4F0000 */ lw $t7, ($v0) +/* 072824 7F03DCF4 0003C140 */ sll $t8, $v1, 5 +/* 072828 7F03DCF8 00035940 */ sll $t3, $v1, 5 +/* 07282C 7F03DCFC 01F8C821 */ addu $t9, $t7, $t8 +/* 072830 7F03DD00 03244821 */ addu $t1, $t9, $a0 +/* 072834 7F03DD04 A5270000 */ sh $a3, ($t1) +/* 072838 7F03DD08 8C4A0000 */ lw $t2, ($v0) +/* 07283C 7F03DD0C 00037940 */ sll $t7, $v1, 5 +/* 072840 7F03DD10 014B6021 */ addu $t4, $t2, $t3 +/* 072844 7F03DD14 01846821 */ addu $t5, $t4, $a0 +/* 072848 7F03DD18 A5A70002 */ sh $a3, 2($t5) +/* 07284C 7F03DD1C 8C4E0000 */ lw $t6, ($v0) +/* 072850 7F03DD20 00035140 */ sll $t2, $v1, 5 +/* 072854 7F03DD24 01CFC021 */ addu $t8, $t6, $t7 +/* 072858 7F03DD28 0304C821 */ addu $t9, $t8, $a0 +/* 07285C 7F03DD2C A7270004 */ sh $a3, 4($t9) +/* 072860 7F03DD30 8C490000 */ lw $t1, ($v0) +/* 072864 7F03DD34 012A5821 */ addu $t3, $t1, $t2 +/* 072868 7F03DD38 01646021 */ addu $t4, $t3, $a0 +/* 07286C 7F03DD3C 24840008 */ addiu $a0, $a0, 8 +/* 072870 7F03DD40 1488FFEB */ bne $a0, $t0, .L7F03DCF0 +/* 072874 7F03DD44 A5870006 */ sh $a3, 6($t4) +/* 072878 7F03DD48 04A00007 */ bltz $a1, .L7F03DD68 +/* 07287C 7F03DD4C 00000000 */ nop +/* 072880 7F03DD50 8C4D0000 */ lw $t5, ($v0) +/* 072884 7F03DD54 00057140 */ sll $t6, $a1, 5 +/* 072888 7F03DD58 00601025 */ move $v0, $v1 +/* 07288C 7F03DD5C 01AE7821 */ addu $t7, $t5, $t6 +/* 072890 7F03DD60 03E00008 */ jr $ra +/* 072894 7F03DD64 A5E3001E */ sh $v1, 0x1e($t7) + +.L7F03DD68: +/* 072898 7F03DD68 3C188007 */ lui $t8, %hi(ptr_room_lookup_buffer_maybe) +/* 07289C 7F03DD6C 8F181618 */ lw $t8, %lo(ptr_room_lookup_buffer_maybe)($t8) +/* 0728A0 7F03DD70 0006C840 */ sll $t9, $a2, 1 +/* 0728A4 7F03DD74 03194821 */ addu $t1, $t8, $t9 +/* 0728A8 7F03DD78 A5230000 */ sh $v1, ($t1) +/* 0728AC 7F03DD7C 03E00008 */ jr $ra +/* 0728B0 7F03DD80 00601025 */ move $v0, $v1 + +/* 0728B4 7F03DD84 24630001 */ addiu $v1, $v1, 1 +.L7F03DD88: +/* 0728B8 7F03DD88 1467FFD1 */ bne $v1, $a3, .L7F03DCD0 +/* 0728BC 7F03DD8C 24420020 */ addiu $v0, $v0, 0x20 +/* 0728C0 7F03DD90 2402FFFF */ li $v0, -1 +/* 0728C4 7F03DD94 03E00008 */ jr $ra +/* 0728C8 7F03DD98 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03DD9C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03DD9C +/* 0728CC 7F03DD9C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0728D0 7F03DDA0 AFA5002C */ sw $a1, 0x2c($sp) +/* 0728D4 7F03DDA4 87AE002E */ lh $t6, 0x2e($sp) +/* 0728D8 7F03DDA8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0728DC 7F03DDAC AFB20020 */ sw $s2, 0x20($sp) +/* 0728E0 7F03DDB0 AFB1001C */ sw $s1, 0x1c($sp) +/* 0728E4 7F03DDB4 AFB00018 */ sw $s0, 0x18($sp) +/* 0728E8 7F03DDB8 AFA40028 */ sw $a0, 0x28($sp) +/* 0728EC 7F03DDBC 05C0002F */ bltz $t6, .L7F03DE7C +/* 0728F0 7F03DDC0 2406FFFF */ li $a2, -1 +/* 0728F4 7F03DDC4 87B8002E */ lh $t8, 0x2e($sp) +/* 0728F8 7F03DDC8 3C0F8007 */ lui $t7, %hi(ptr_room_lookup_buffer_maybe) +/* 0728FC 7F03DDCC 8DEF1618 */ lw $t7, %lo(ptr_room_lookup_buffer_maybe)($t7) +/* 072900 7F03DDD0 0018C840 */ sll $t9, $t8, 1 +/* 072904 7F03DDD4 3C0A8007 */ lui $t2, %hi(pos_data_entry) +/* 072908 7F03DDD8 01F94021 */ addu $t0, $t7, $t9 +/* 07290C 7F03DDDC 85100000 */ lh $s0, ($t0) +/* 072910 7F03DDE0 254A9C38 */ addiu $t2, %lo(pos_data_entry) # addiu $t2, $t2, -0x63c8 +/* 072914 7F03DDE4 008A8823 */ subu $s1, $a0, $t2 +/* 072918 7F03DDE8 06000015 */ bltz $s0, .L7F03DE40 +/* 07291C 7F03DDEC 24010034 */ li $at, 52 +/* 072920 7F03DDF0 0221001A */ div $zero, $s1, $at +/* 072924 7F03DDF4 00005812 */ mflo $t3 +/* 072928 7F03DDF8 000B6400 */ sll $t4, $t3, 0x10 +/* 07292C 7F03DDFC 3C128007 */ lui $s2, %hi(dword_CODE_bss_8007161C) +/* 072930 7F03DE00 2652161C */ addiu $s2, %lo(dword_CODE_bss_8007161C) # addiu $s2, $s2, 0x161c +/* 072934 7F03DE04 000C8C03 */ sra $s1, $t4, 0x10 +/* 072938 7F03DE08 00112400 */ sll $a0, $s1, 0x10 +.L7F03DE0C: +/* 07293C 7F03DE0C 00047403 */ sra $t6, $a0, 0x10 +/* 072940 7F03DE10 01C02025 */ move $a0, $t6 +/* 072944 7F03DE14 0FC0F6F3 */ jal sub_GAME_7F03DBCC +/* 072948 7F03DE18 02002825 */ move $a1, $s0 +/* 07294C 7F03DE1C 54400018 */ bnezl $v0, .L7F03DE80 +/* 072950 7F03DE20 8FBF0024 */ lw $ra, 0x24($sp) +/* 072954 7F03DE24 8E580000 */ lw $t8, ($s2) +/* 072958 7F03DE28 00107940 */ sll $t7, $s0, 5 +/* 07295C 7F03DE2C 02003025 */ move $a2, $s0 +/* 072960 7F03DE30 030FC821 */ addu $t9, $t8, $t7 +/* 072964 7F03DE34 8730001E */ lh $s0, 0x1e($t9) +/* 072968 7F03DE38 0603FFF4 */ bgezl $s0, .L7F03DE0C +/* 07296C 7F03DE3C 00112400 */ sll $a0, $s1, 0x10 +.L7F03DE40: +/* 072970 7F03DE40 87A4002E */ lh $a0, 0x2e($sp) +/* 072974 7F03DE44 0FC0F72E */ jal sub_GAME_7F03DCB8 +/* 072978 7F03DE48 00C02825 */ move $a1, $a2 +/* 07297C 7F03DE4C 0440000B */ bltz $v0, .L7F03DE7C +/* 072980 7F03DE50 8FA80028 */ lw $t0, 0x28($sp) +/* 072984 7F03DE54 3C098007 */ lui $t1, %hi(pos_data_entry) +/* 072988 7F03DE58 25299C38 */ addiu $t1, %lo(pos_data_entry) # addiu $t1, $t1, -0x63c8 +/* 07298C 7F03DE5C 01092023 */ subu $a0, $t0, $t1 +/* 072990 7F03DE60 24010034 */ li $at, 52 +/* 072994 7F03DE64 0081001A */ div $zero, $a0, $at +/* 072998 7F03DE68 00005012 */ mflo $t2 +/* 07299C 7F03DE6C 000A5C00 */ sll $t3, $t2, 0x10 +/* 0729A0 7F03DE70 000B2403 */ sra $a0, $t3, 0x10 +/* 0729A4 7F03DE74 0FC0F6F3 */ jal sub_GAME_7F03DBCC +/* 0729A8 7F03DE78 00402825 */ move $a1, $v0 +.L7F03DE7C: +/* 0729AC 7F03DE7C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F03DE80: +/* 0729B0 7F03DE80 8FB00018 */ lw $s0, 0x18($sp) +/* 0729B4 7F03DE84 8FB1001C */ lw $s1, 0x1c($sp) +/* 0729B8 7F03DE88 8FB20020 */ lw $s2, 0x20($sp) +/* 0729BC 7F03DE8C 03E00008 */ jr $ra +/* 0729C0 7F03DE90 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03DE94(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03DE94 +/* 0729C4 7F03DE94 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 0729C8 7F03DE98 00057400 */ sll $t6, $a1, 0x10 +/* 0729CC 7F03DE9C 000E7C03 */ sra $t7, $t6, 0x10 +/* 0729D0 7F03DEA0 AFB1000C */ sw $s1, 0xc($sp) +/* 0729D4 7F03DEA4 AFB00008 */ sw $s0, 8($sp) +/* 0729D8 7F03DEA8 AFA50014 */ sw $a1, 0x14($sp) +/* 0729DC 7F03DEAC 00003025 */ move $a2, $zero +/* 0729E0 7F03DEB0 05E0009C */ bltz $t7, .L7F03E124 +/* 0729E4 7F03DEB4 2409FFFF */ li $t1, -1 +/* 0729E8 7F03DEB8 3C0B8007 */ lui $t3, %hi(ptr_room_lookup_buffer_maybe) +/* 0729EC 7F03DEBC 256B1618 */ addiu $t3, %lo(ptr_room_lookup_buffer_maybe) # addiu $t3, $t3, 0x1618 +/* 0729F0 7F03DEC0 8D780000 */ lw $t8, ($t3) +/* 0729F4 7F03DEC4 000F5040 */ sll $t2, $t7, 1 +/* 0729F8 7F03DEC8 3C0E8007 */ lui $t6, %hi(pos_data_entry) +/* 0729FC 7F03DECC 030AC821 */ addu $t9, $t8, $t2 +/* 072A00 7F03DED0 87230000 */ lh $v1, ($t9) +/* 072A04 7F03DED4 25CE9C38 */ addiu $t6, %lo(pos_data_entry) # addiu $t6, $t6, -0x63c8 +/* 072A08 7F03DED8 008E2023 */ subu $a0, $a0, $t6 +/* 072A0C 7F03DEDC 04600091 */ bltz $v1, .L7F03E124 +/* 072A10 7F03DEE0 3C0D8007 */ lui $t5, %hi(dword_CODE_bss_8007161C) +/* 072A14 7F03DEE4 24010034 */ li $at, 52 +/* 072A18 7F03DEE8 0081001A */ div $zero, $a0, $at +/* 072A1C 7F03DEEC 00007812 */ mflo $t7 +/* 072A20 7F03DEF0 000FC400 */ sll $t8, $t7, 0x10 +/* 072A24 7F03DEF4 3C078007 */ lui $a3, %hi(dword_CODE_bss_8007161C) +/* 072A28 7F03DEF8 24E7161C */ addiu $a3, %lo(dword_CODE_bss_8007161C) # addiu $a3, $a3, 0x161c +/* 072A2C 7F03DEFC 00182403 */ sra $a0, $t8, 0x10 +/* 072A30 7F03DF00 8DAD161C */ lw $t5, %lo(dword_CODE_bss_8007161C)($t5) +/* 072A34 7F03DF04 240CFFFE */ li $t4, -2 +/* 072A38 7F03DF08 2408001E */ li $t0, 30 +/* 072A3C 7F03DF0C 2405FFFF */ li $a1, -1 +/* 072A40 7F03DF10 00037140 */ sll $t6, $v1, 5 +.L7F03DF14: +/* 072A44 7F03DF14 01AE8021 */ addu $s0, $t5, $t6 +/* 072A48 7F03DF18 86110000 */ lh $s1, ($s0) +/* 072A4C 7F03DF1C 00001025 */ move $v0, $zero +/* 072A50 7F03DF20 00037140 */ sll $t6, $v1, 5 +/* 072A54 7F03DF24 14910006 */ bne $a0, $s1, .L7F03DF40 +/* 072A58 7F03DF28 0003C140 */ sll $t8, $v1, 5 +/* 072A5C 7F03DF2C A6050000 */ sh $a1, ($s0) +/* 072A60 7F03DF30 8CEF0000 */ lw $t7, ($a3) +/* 072A64 7F03DF34 24060001 */ li $a2, 1 +/* 072A68 7F03DF38 10000004 */ b .L7F03DF4C +/* 072A6C 7F03DF3C 01F88021 */ addu $s0, $t7, $t8 +.L7F03DF40: +/* 072A70 7F03DF40 06220003 */ bltzl $s1, .L7F03DF50 +/* 072A74 7F03DF44 860D0002 */ lh $t5, 2($s0) +/* 072A78 7F03DF48 24020001 */ li $v0, 1 +.L7F03DF4C: +/* 072A7C 7F03DF4C 860D0002 */ lh $t5, 2($s0) +.L7F03DF50: +/* 072A80 7F03DF50 148D0006 */ bne $a0, $t5, .L7F03DF6C +/* 072A84 7F03DF54 00000000 */ nop +/* 072A88 7F03DF58 A6050002 */ sh $a1, 2($s0) +/* 072A8C 7F03DF5C 8CF90000 */ lw $t9, ($a3) +/* 072A90 7F03DF60 24060001 */ li $a2, 1 +/* 072A94 7F03DF64 10000006 */ b .L7F03DF80 +/* 072A98 7F03DF68 032E8021 */ addu $s0, $t9, $t6 +.L7F03DF6C: +/* 072A9C 7F03DF6C 54400005 */ bnezl $v0, .L7F03DF84 +/* 072AA0 7F03DF70 860D0004 */ lh $t5, 4($s0) +/* 072AA4 7F03DF74 05A20003 */ bltzl $t5, .L7F03DF84 +/* 072AA8 7F03DF78 860D0004 */ lh $t5, 4($s0) +/* 072AAC 7F03DF7C 24020001 */ li $v0, 1 +.L7F03DF80: +/* 072AB0 7F03DF80 860D0004 */ lh $t5, 4($s0) +.L7F03DF84: +/* 072AB4 7F03DF84 148D0004 */ bne $a0, $t5, .L7F03DF98 +/* 072AB8 7F03DF88 00000000 */ nop +/* 072ABC 7F03DF8C A6050004 */ sh $a1, 4($s0) +/* 072AC0 7F03DF90 10000006 */ b .L7F03DFAC +/* 072AC4 7F03DF94 24060001 */ li $a2, 1 +.L7F03DF98: +/* 072AC8 7F03DF98 54400005 */ bnezl $v0, .L7F03DFB0 +/* 072ACC 7F03DF9C 24100006 */ li $s0, 6 +/* 072AD0 7F03DFA0 05A20003 */ bltzl $t5, .L7F03DFB0 +/* 072AD4 7F03DFA4 24100006 */ li $s0, 6 +/* 072AD8 7F03DFA8 24020001 */ li $v0, 1 +.L7F03DFAC: +/* 072ADC 7F03DFAC 24100006 */ li $s0, 6 +.L7F03DFB0: +/* 072AE0 7F03DFB0 8CEF0000 */ lw $t7, ($a3) +.L7F03DFB4: +/* 072AE4 7F03DFB4 0003C140 */ sll $t8, $v1, 5 +/* 072AE8 7F03DFB8 01F8C821 */ addu $t9, $t7, $t8 +/* 072AEC 7F03DFBC 03306821 */ addu $t5, $t9, $s0 +/* 072AF0 7F03DFC0 85B10000 */ lh $s1, ($t5) +/* 072AF4 7F03DFC4 14910008 */ bne $a0, $s1, .L7F03DFE8 +/* 072AF8 7F03DFC8 00000000 */ nop +/* 072AFC 7F03DFCC A5A50000 */ sh $a1, ($t5) +/* 072B00 7F03DFD0 8CEE0000 */ lw $t6, ($a3) +/* 072B04 7F03DFD4 00037940 */ sll $t7, $v1, 5 +/* 072B08 7F03DFD8 24060001 */ li $a2, 1 +/* 072B0C 7F03DFDC 01CFC021 */ addu $t8, $t6, $t7 +/* 072B10 7F03DFE0 10000006 */ b .L7F03DFFC +/* 072B14 7F03DFE4 03106821 */ addu $t5, $t8, $s0 +.L7F03DFE8: +/* 072B18 7F03DFE8 54400005 */ bnezl $v0, .L7F03E000 +/* 072B1C 7F03DFEC 85B10002 */ lh $s1, 2($t5) +/* 072B20 7F03DFF0 06220003 */ bltzl $s1, .L7F03E000 +/* 072B24 7F03DFF4 85B10002 */ lh $s1, 2($t5) +/* 072B28 7F03DFF8 24020001 */ li $v0, 1 +.L7F03DFFC: +/* 072B2C 7F03DFFC 85B10002 */ lh $s1, 2($t5) +.L7F03E000: +/* 072B30 7F03E000 14910008 */ bne $a0, $s1, .L7F03E024 +/* 072B34 7F03E004 00000000 */ nop +/* 072B38 7F03E008 A5A50002 */ sh $a1, 2($t5) +/* 072B3C 7F03E00C 8CF90000 */ lw $t9, ($a3) +/* 072B40 7F03E010 00037140 */ sll $t6, $v1, 5 +/* 072B44 7F03E014 24060001 */ li $a2, 1 +/* 072B48 7F03E018 032E7821 */ addu $t7, $t9, $t6 +/* 072B4C 7F03E01C 10000006 */ b .L7F03E038 +/* 072B50 7F03E020 01F06821 */ addu $t5, $t7, $s0 +.L7F03E024: +/* 072B54 7F03E024 54400005 */ bnezl $v0, .L7F03E03C +/* 072B58 7F03E028 85B10004 */ lh $s1, 4($t5) +/* 072B5C 7F03E02C 06220003 */ bltzl $s1, .L7F03E03C +/* 072B60 7F03E030 85B10004 */ lh $s1, 4($t5) +/* 072B64 7F03E034 24020001 */ li $v0, 1 +.L7F03E038: +/* 072B68 7F03E038 85B10004 */ lh $s1, 4($t5) +.L7F03E03C: +/* 072B6C 7F03E03C 14910008 */ bne $a0, $s1, .L7F03E060 +/* 072B70 7F03E040 00000000 */ nop +/* 072B74 7F03E044 A5A50004 */ sh $a1, 4($t5) +/* 072B78 7F03E048 8CF80000 */ lw $t8, ($a3) +/* 072B7C 7F03E04C 0003C940 */ sll $t9, $v1, 5 +/* 072B80 7F03E050 24060001 */ li $a2, 1 +/* 072B84 7F03E054 03197021 */ addu $t6, $t8, $t9 +/* 072B88 7F03E058 10000006 */ b .L7F03E074 +/* 072B8C 7F03E05C 01D06821 */ addu $t5, $t6, $s0 +.L7F03E060: +/* 072B90 7F03E060 54400005 */ bnezl $v0, .L7F03E078 +/* 072B94 7F03E064 85B10006 */ lh $s1, 6($t5) +/* 072B98 7F03E068 06220003 */ bltzl $s1, .L7F03E078 +/* 072B9C 7F03E06C 85B10006 */ lh $s1, 6($t5) +/* 072BA0 7F03E070 24020001 */ li $v0, 1 +.L7F03E074: +/* 072BA4 7F03E074 85B10006 */ lh $s1, 6($t5) +.L7F03E078: +/* 072BA8 7F03E078 26100008 */ addiu $s0, $s0, 8 +/* 072BAC 7F03E07C 14910004 */ bne $a0, $s1, .L7F03E090 +/* 072BB0 7F03E080 00000000 */ nop +/* 072BB4 7F03E084 A5A50006 */ sh $a1, 6($t5) +/* 072BB8 7F03E088 10000006 */ b .L7F03E0A4 +/* 072BBC 7F03E08C 24060001 */ li $a2, 1 +.L7F03E090: +/* 072BC0 7F03E090 14400004 */ bnez $v0, .L7F03E0A4 +/* 072BC4 7F03E094 00000000 */ nop +/* 072BC8 7F03E098 06200002 */ bltz $s1, .L7F03E0A4 +/* 072BCC 7F03E09C 00000000 */ nop +/* 072BD0 7F03E0A0 24020001 */ li $v0, 1 +.L7F03E0A4: +/* 072BD4 7F03E0A4 5608FFC3 */ bnel $s0, $t0, .L7F03DFB4 +/* 072BD8 7F03E0A8 8CEF0000 */ lw $t7, ($a3) +/* 072BDC 7F03E0AC 54400015 */ bnezl $v0, .L7F03E104 +/* 072BE0 7F03E0B0 00604825 */ move $t1, $v1 +/* 072BE4 7F03E0B4 8CEF0000 */ lw $t7, ($a3) +/* 072BE8 7F03E0B8 00031140 */ sll $v0, $v1, 5 +/* 072BEC 7F03E0BC 01E2C021 */ addu $t8, $t7, $v0 +/* 072BF0 7F03E0C0 05200008 */ bltz $t1, .L7F03E0E4 +/* 072BF4 7F03E0C4 A70C0000 */ sh $t4, ($t8) +/* 072BF8 7F03E0C8 8CED0000 */ lw $t5, ($a3) +/* 072BFC 7F03E0CC 00097940 */ sll $t7, $t1, 5 +/* 072C00 7F03E0D0 01A2C821 */ addu $t9, $t5, $v0 +/* 072C04 7F03E0D4 872E001E */ lh $t6, 0x1e($t9) +/* 072C08 7F03E0D8 01AFC021 */ addu $t8, $t5, $t7 +/* 072C0C 7F03E0DC 10000009 */ b .L7F03E104 +/* 072C10 7F03E0E0 A70E001E */ sh $t6, 0x1e($t8) +.L7F03E0E4: +/* 072C14 7F03E0E4 8CF90000 */ lw $t9, ($a3) +/* 072C18 7F03E0E8 8D780000 */ lw $t8, ($t3) +/* 072C1C 7F03E0EC 03227821 */ addu $t7, $t9, $v0 +/* 072C20 7F03E0F0 85EE001E */ lh $t6, 0x1e($t7) +/* 072C24 7F03E0F4 030AC821 */ addu $t9, $t8, $t2 +/* 072C28 7F03E0F8 10000002 */ b .L7F03E104 +/* 072C2C 7F03E0FC A72E0000 */ sh $t6, ($t9) +/* 072C30 7F03E100 00604825 */ move $t1, $v1 +.L7F03E104: +/* 072C34 7F03E104 54C00008 */ bnezl $a2, .L7F03E128 +/* 072C38 7F03E108 8FB00008 */ lw $s0, 8($sp) +/* 072C3C 7F03E10C 8CED0000 */ lw $t5, ($a3) +/* 072C40 7F03E110 00037940 */ sll $t7, $v1, 5 +/* 072C44 7F03E114 01AFC021 */ addu $t8, $t5, $t7 +/* 072C48 7F03E118 8703001E */ lh $v1, 0x1e($t8) +/* 072C4C 7F03E11C 0463FF7D */ bgezl $v1, .L7F03DF14 +/* 072C50 7F03E120 00037140 */ sll $t6, $v1, 5 +.L7F03E124: +/* 072C54 7F03E124 8FB00008 */ lw $s0, 8($sp) +.L7F03E128: +/* 072C58 7F03E128 8FB1000C */ lw $s1, 0xc($sp) +/* 072C5C 7F03E12C 03E00008 */ jr $ra +/* 072C60 7F03E130 27BD0010 */ addiu $sp, $sp, 0x10 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E134(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E134 +/* 072C64 7F03E134 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 072C68 7F03E138 AFBF0014 */ sw $ra, 0x14($sp) +/* 072C6C 7F03E13C 90820000 */ lbu $v0, ($a0) +/* 072C70 7F03E140 24010003 */ li $at, 3 +/* 072C74 7F03E144 00802825 */ move $a1, $a0 +/* 072C78 7F03E148 54410006 */ bnel $v0, $at, .L7F03E164 +/* 072C7C 7F03E14C 24010001 */ li $at, 1 +/* 072C80 7F03E150 0FC08365 */ jal sub_GAME_7F020D94 +/* 072C84 7F03E154 8C840004 */ lw $a0, 4($a0) +/* 072C88 7F03E158 10000009 */ b .L7F03E180 +/* 072C8C 7F03E15C 8FBF0014 */ lw $ra, 0x14($sp) +/* 072C90 7F03E160 24010001 */ li $at, 1 +.L7F03E164: +/* 072C94 7F03E164 10410003 */ beq $v0, $at, .L7F03E174 +/* 072C98 7F03E168 24010004 */ li $at, 4 +/* 072C9C 7F03E16C 54410004 */ bnel $v0, $at, .L7F03E180 +/* 072CA0 7F03E170 8FBF0014 */ lw $ra, 0x14($sp) +.L7F03E174: +/* 072CA4 7F03E174 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 072CA8 7F03E178 8CA40004 */ lw $a0, 4($a1) +/* 072CAC 7F03E17C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F03E180: +/* 072CB0 7F03E180 27BD0018 */ addiu $sp, $sp, 0x18 +/* 072CB4 7F03E184 03E00008 */ jr $ra +/* 072CB8 7F03E188 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E18C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E18C +/* 072CBC 7F03E18C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 072CC0 7F03E190 AFBF0024 */ sw $ra, 0x24($sp) +/* 072CC4 7F03E194 AFB30020 */ sw $s3, 0x20($sp) +/* 072CC8 7F03E198 AFB2001C */ sw $s2, 0x1c($sp) +/* 072CCC 7F03E19C AFB10018 */ sw $s1, 0x18($sp) +/* 072CD0 7F03E1A0 AFB00014 */ sw $s0, 0x14($sp) +/* 072CD4 7F03E1A4 9090002C */ lbu $s0, 0x2c($a0) +/* 072CD8 7F03E1A8 241200FF */ li $s2, 255 +/* 072CDC 7F03E1AC 00809825 */ move $s3, $a0 +/* 072CE0 7F03E1B0 1250000A */ beq $s2, $s0, .L7F03E1DC +/* 072CE4 7F03E1B4 2491002C */ addiu $s1, $a0, 0x2c +/* 072CE8 7F03E1B8 00102C00 */ sll $a1, $s0, 0x10 +.L7F03E1BC: +/* 072CEC 7F03E1BC 00057403 */ sra $t6, $a1, 0x10 +/* 072CF0 7F03E1C0 01C02825 */ move $a1, $t6 +/* 072CF4 7F03E1C4 0FC0F7A5 */ jal sub_GAME_7F03DE94 +/* 072CF8 7F03E1C8 02602025 */ move $a0, $s3 +/* 072CFC 7F03E1CC 92300001 */ lbu $s0, 1($s1) +/* 072D00 7F03E1D0 26310001 */ addiu $s1, $s1, 1 +/* 072D04 7F03E1D4 5650FFF9 */ bnel $s2, $s0, .L7F03E1BC +/* 072D08 7F03E1D8 00102C00 */ sll $a1, $s0, 0x10 +.L7F03E1DC: +/* 072D0C 7F03E1DC 926F0001 */ lbu $t7, 1($s3) +/* 072D10 7F03E1E0 241900FF */ li $t9, 255 +/* 072D14 7F03E1E4 31F80010 */ andi $t8, $t7, 0x10 +/* 072D18 7F03E1E8 57000003 */ bnezl $t8, .L7F03E1F8 +/* 072D1C 7F03E1EC 8FBF0024 */ lw $ra, 0x24($sp) +/* 072D20 7F03E1F0 A279002C */ sb $t9, 0x2c($s3) +/* 072D24 7F03E1F4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F03E1F8: +/* 072D28 7F03E1F8 8FB00014 */ lw $s0, 0x14($sp) +/* 072D2C 7F03E1FC 8FB10018 */ lw $s1, 0x18($sp) +/* 072D30 7F03E200 8FB2001C */ lw $s2, 0x1c($sp) +/* 072D34 7F03E204 8FB30020 */ lw $s3, 0x20($sp) +/* 072D38 7F03E208 03E00008 */ jr $ra +/* 072D3C 7F03E20C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E210(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E210 +/* 072D40 7F03E210 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 072D44 7F03E214 AFBF0024 */ sw $ra, 0x24($sp) +/* 072D48 7F03E218 AFB30020 */ sw $s3, 0x20($sp) +/* 072D4C 7F03E21C AFB2001C */ sw $s2, 0x1c($sp) +/* 072D50 7F03E220 AFB10018 */ sw $s1, 0x18($sp) +/* 072D54 7F03E224 AFB00014 */ sw $s0, 0x14($sp) +/* 072D58 7F03E228 9090002C */ lbu $s0, 0x2c($a0) +/* 072D5C 7F03E22C 241300FF */ li $s3, 255 +/* 072D60 7F03E230 00809025 */ move $s2, $a0 +/* 072D64 7F03E234 1270000A */ beq $s3, $s0, .L7F03E260 +/* 072D68 7F03E238 2491002C */ addiu $s1, $a0, 0x2c +/* 072D6C 7F03E23C 00102C00 */ sll $a1, $s0, 0x10 +.L7F03E240: +/* 072D70 7F03E240 00057403 */ sra $t6, $a1, 0x10 +/* 072D74 7F03E244 01C02825 */ move $a1, $t6 +/* 072D78 7F03E248 0FC0F767 */ jal sub_GAME_7F03DD9C +/* 072D7C 7F03E24C 02402025 */ move $a0, $s2 +/* 072D80 7F03E250 92300001 */ lbu $s0, 1($s1) +/* 072D84 7F03E254 26310001 */ addiu $s1, $s1, 1 +/* 072D88 7F03E258 5670FFF9 */ bnel $s3, $s0, .L7F03E240 +/* 072D8C 7F03E25C 00102C00 */ sll $a1, $s0, 0x10 +.L7F03E260: +/* 072D90 7F03E260 8FBF0024 */ lw $ra, 0x24($sp) +/* 072D94 7F03E264 8FB00014 */ lw $s0, 0x14($sp) +/* 072D98 7F03E268 8FB10018 */ lw $s1, 0x18($sp) +/* 072D9C 7F03E26C 8FB2001C */ lw $s2, 0x1c($sp) +/* 072DA0 7F03E270 8FB30020 */ lw $s3, 0x20($sp) +/* 072DA4 7F03E274 03E00008 */ jr $ra +/* 072DA8 7F03E278 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E27C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E27C +/* 072DAC 7F03E27C 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 072DB0 7F03E280 AFBF002C */ sw $ra, 0x2c($sp) +/* 072DB4 7F03E284 AFB00028 */ sw $s0, 0x28($sp) +/* 072DB8 7F03E288 AFA50074 */ sw $a1, 0x74($sp) +/* 072DBC 7F03E28C AFA60078 */ sw $a2, 0x78($sp) +/* 072DC0 7F03E290 AFA00048 */ sw $zero, 0x48($sp) +/* 072DC4 7F03E294 908E0001 */ lbu $t6, 1($a0) +/* 072DC8 7F03E298 44876000 */ mtc1 $a3, $f12 +/* 072DCC 7F03E29C 00808025 */ move $s0, $a0 +/* 072DD0 7F03E2A0 31CF0008 */ andi $t7, $t6, 8 +/* 072DD4 7F03E2A4 11E00028 */ beqz $t7, .L7F03E348 +/* 072DD8 7F03E2A8 00001825 */ move $v1, $zero +/* 072DDC 7F03E2AC 90820000 */ lbu $v0, ($a0) +/* 072DE0 7F03E2B0 24010001 */ li $at, 1 +/* 072DE4 7F03E2B4 2606002C */ addiu $a2, $s0, 0x2c +/* 072DE8 7F03E2B8 10410005 */ beq $v0, $at, .L7F03E2D0 +/* 072DEC 7F03E2BC 24010004 */ li $at, 4 +/* 072DF0 7F03E2C0 10410003 */ beq $v0, $at, .L7F03E2D0 +/* 072DF4 7F03E2C4 24010002 */ li $at, 2 +/* 072DF8 7F03E2C8 14410002 */ bne $v0, $at, .L7F03E2D4 +/* 072DFC 7F03E2CC 00000000 */ nop +.L7F03E2D0: +/* 072E00 7F03E2D0 8E030004 */ lw $v1, 4($s0) +.L7F03E2D4: +/* 072E04 7F03E2D4 1060000C */ beqz $v1, .L7F03E308 +/* 072E08 7F03E2D8 00000000 */ nop +/* 072E0C 7F03E2DC 8C780064 */ lw $t8, 0x64($v1) +/* 072E10 7F03E2E0 33190080 */ andi $t9, $t8, 0x80 +/* 072E14 7F03E2E4 13200008 */ beqz $t9, .L7F03E308 +/* 072E18 7F03E2E8 00000000 */ nop +/* 072E1C 7F03E2EC 8C62006C */ lw $v0, 0x6c($v1) +/* 072E20 7F03E2F0 8C490000 */ lw $t1, ($v0) +/* 072E24 7F03E2F4 312A0008 */ andi $t2, $t1, 8 +/* 072E28 7F03E2F8 11400003 */ beqz $t2, .L7F03E308 +/* 072E2C 7F03E2FC 00000000 */ nop +/* 072E30 7F03E300 10000001 */ b .L7F03E308 +/* 072E34 7F03E304 244600CC */ addiu $a2, $v0, 0xcc +.L7F03E308: +/* 072E38 7F03E308 90CB0000 */ lbu $t3, ($a2) +/* 072E3C 7F03E30C 240500FF */ li $a1, 255 +/* 072E40 7F03E310 00004025 */ move $t0, $zero +/* 072E44 7F03E314 10AB0009 */ beq $a1, $t3, .L7F03E33C +/* 072E48 7F03E318 27A20050 */ addiu $v0, $sp, 0x50 +/* 072E4C 7F03E31C 00C01825 */ move $v1, $a2 +/* 072E50 7F03E320 90C40000 */ lbu $a0, ($a2) +.L7F03E324: +/* 072E54 7F03E324 AC440000 */ sw $a0, ($v0) +/* 072E58 7F03E328 90640001 */ lbu $a0, 1($v1) +/* 072E5C 7F03E32C 25080001 */ addiu $t0, $t0, 1 +/* 072E60 7F03E330 24420004 */ addiu $v0, $v0, 4 +/* 072E64 7F03E334 14A4FFFB */ bne $a1, $a0, .L7F03E324 +/* 072E68 7F03E338 24630001 */ addiu $v1, $v1, 1 +.L7F03E33C: +/* 072E6C 7F03E33C AFA80048 */ sw $t0, 0x48($sp) +/* 072E70 7F03E340 10000010 */ b .L7F03E384 +/* 072E74 7F03E344 00004025 */ move $t0, $zero +.L7F03E348: +/* 072E78 7F03E348 8E0C0014 */ lw $t4, 0x14($s0) +/* 072E7C 7F03E34C AFA00048 */ sw $zero, 0x48($sp) +/* 072E80 7F03E350 44076000 */ mfc1 $a3, $f12 +/* 072E84 7F03E354 AFAC004C */ sw $t4, 0x4c($sp) +/* 072E88 7F03E358 8E060010 */ lw $a2, 0x10($s0) +/* 072E8C 7F03E35C 8E050008 */ lw $a1, 8($s0) +/* 072E90 7F03E360 27AD0050 */ addiu $t5, $sp, 0x50 +/* 072E94 7F03E364 27AE0048 */ addiu $t6, $sp, 0x48 +/* 072E98 7F03E368 240F0007 */ li $t7, 7 +/* 072E9C 7F03E36C AFAF0018 */ sw $t7, 0x18($sp) +/* 072EA0 7F03E370 AFAE0014 */ sw $t6, 0x14($sp) +/* 072EA4 7F03E374 AFAD0010 */ sw $t5, 0x10($sp) +/* 072EA8 7F03E378 0FC2C86C */ jal sub_GAME_7F0B21B0 +/* 072EAC 7F03E37C 27A4004C */ addiu $a0, $sp, 0x4c +/* 072EB0 7F03E380 00004025 */ move $t0, $zero +.L7F03E384: +/* 072EB4 7F03E384 24180007 */ li $t8, 7 +/* 072EB8 7F03E388 AFB80010 */ sw $t8, 0x10($sp) +/* 072EBC 7F03E38C 8FA40074 */ lw $a0, 0x74($sp) +/* 072EC0 7F03E390 8FA50078 */ lw $a1, 0x78($sp) +/* 072EC4 7F03E394 27A60050 */ addiu $a2, $sp, 0x50 +/* 072EC8 7F03E398 27A70048 */ addiu $a3, $sp, 0x48 +/* 072ECC 7F03E39C 0FC2E8B5 */ jal sub_GAME_7F0BA2D4 +/* 072ED0 7F03E3A0 AFA80044 */ sw $t0, 0x44($sp) +/* 072ED4 7F03E3A4 8FB90048 */ lw $t9, 0x48($sp) +/* 072ED8 7F03E3A8 8FA80044 */ lw $t0, 0x44($sp) +/* 072EDC 7F03E3AC 27A20050 */ addiu $v0, $sp, 0x50 +/* 072EE0 7F03E3B0 1B20000B */ blez $t9, .L7F03E3E0 +/* 072EE4 7F03E3B4 240B00FF */ li $t3, 255 +/* 072EE8 7F03E3B8 02001825 */ move $v1, $s0 +/* 072EEC 7F03E3BC 8C490000 */ lw $t1, ($v0) +.L7F03E3C0: +/* 072EF0 7F03E3C0 25080001 */ addiu $t0, $t0, 1 +/* 072EF4 7F03E3C4 24420004 */ addiu $v0, $v0, 4 +/* 072EF8 7F03E3C8 A069002C */ sb $t1, 0x2c($v1) +/* 072EFC 7F03E3CC 8FAA0048 */ lw $t2, 0x48($sp) +/* 072F00 7F03E3D0 24630001 */ addiu $v1, $v1, 1 +/* 072F04 7F03E3D4 010A082A */ slt $at, $t0, $t2 +/* 072F08 7F03E3D8 5420FFF9 */ bnezl $at, .L7F03E3C0 +/* 072F0C 7F03E3DC 8C490000 */ lw $t1, ($v0) +.L7F03E3E0: +/* 072F10 7F03E3E0 02086021 */ addu $t4, $s0, $t0 +/* 072F14 7F03E3E4 A18B002C */ sb $t3, 0x2c($t4) +/* 072F18 7F03E3E8 8FBF002C */ lw $ra, 0x2c($sp) +/* 072F1C 7F03E3EC 8FB00028 */ lw $s0, 0x28($sp) +/* 072F20 7F03E3F0 27BD0070 */ addiu $sp, $sp, 0x70 +/* 072F24 7F03E3F4 03E00008 */ jr $ra +/* 072F28 7F03E3F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E3FC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E3FC +/* 072F2C 7F03E3FC 8C830000 */ lw $v1, ($a0) +/* 072F30 7F03E400 3C098007 */ lui $t1, %hi(ptr_list_object_lookup_indices) +/* 072F34 7F03E404 25299C30 */ addiu $t1, %lo(ptr_list_object_lookup_indices) # addiu $t1, $t1, -0x63d0 +/* 072F38 7F03E408 04600030 */ bltz $v1, .L7F03E4CC +/* 072F3C 7F03E40C 8D220000 */ lw $v0, ($t1) +/* 072F40 7F03E410 3C0A8007 */ lui $t2, %hi(ptr_room_lookup_buffer_maybe) +/* 072F44 7F03E414 254A1618 */ addiu $t2, %lo(ptr_room_lookup_buffer_maybe) # addiu $t2, $t2, 0x1618 +/* 072F48 7F03E418 240B001E */ li $t3, 30 +/* 072F4C 7F03E41C 8D4E0000 */ lw $t6, ($t2) +.L7F03E420: +/* 072F50 7F03E420 00037840 */ sll $t7, $v1, 1 +/* 072F54 7F03E424 3C068007 */ lui $a2, %hi(dword_CODE_bss_8007161C) +/* 072F58 7F03E428 01CFC021 */ addu $t8, $t6, $t7 +/* 072F5C 7F03E42C 87050000 */ lh $a1, ($t8) +/* 072F60 7F03E430 04A20023 */ bltzl $a1, .L7F03E4C0 +/* 072F64 7F03E434 8C830004 */ lw $v1, 4($a0) +/* 072F68 7F03E438 8CC6161C */ lw $a2, %lo(dword_CODE_bss_8007161C)($a2) +/* 072F6C 7F03E43C 00003825 */ move $a3, $zero +.L7F03E440: +/* 072F70 7F03E440 0005C940 */ sll $t9, $a1, 5 +.L7F03E444: +/* 072F74 7F03E444 00D96021 */ addu $t4, $a2, $t9 +/* 072F78 7F03E448 01876821 */ addu $t5, $t4, $a3 +/* 072F7C 7F03E44C 85A30000 */ lh $v1, ($t5) +/* 072F80 7F03E450 24E70002 */ addiu $a3, $a3, 2 +/* 072F84 7F03E454 04600012 */ bltz $v1, .L7F03E4A0 +/* 072F88 7F03E458 00000000 */ nop +/* 072F8C 7F03E45C 8D280000 */ lw $t0, ($t1) +/* 072F90 7F03E460 0102082B */ sltu $at, $t0, $v0 +/* 072F94 7F03E464 10200008 */ beqz $at, .L7F03E488 +/* 072F98 7F03E468 00000000 */ nop +/* 072F9C 7F03E46C 850E0000 */ lh $t6, ($t0) +.L7F03E470: +/* 072FA0 7F03E470 106E0005 */ beq $v1, $t6, .L7F03E488 +/* 072FA4 7F03E474 00000000 */ nop +/* 072FA8 7F03E478 25080002 */ addiu $t0, $t0, 2 +/* 072FAC 7F03E47C 0102082B */ sltu $at, $t0, $v0 +/* 072FB0 7F03E480 5420FFFB */ bnezl $at, .L7F03E470 +/* 072FB4 7F03E484 850E0000 */ lh $t6, ($t0) +.L7F03E488: +/* 072FB8 7F03E488 15020005 */ bne $t0, $v0, .L7F03E4A0 +/* 072FBC 7F03E48C 00000000 */ nop +/* 072FC0 7F03E490 A4430000 */ sh $v1, ($v0) +/* 072FC4 7F03E494 3C068007 */ lui $a2, %hi(dword_CODE_bss_8007161C) +/* 072FC8 7F03E498 8CC6161C */ lw $a2, %lo(dword_CODE_bss_8007161C)($a2) +/* 072FCC 7F03E49C 24420002 */ addiu $v0, $v0, 2 +.L7F03E4A0: +/* 072FD0 7F03E4A0 54EBFFE8 */ bnel $a3, $t3, .L7F03E444 +/* 072FD4 7F03E4A4 0005C940 */ sll $t9, $a1, 5 +/* 072FD8 7F03E4A8 00057940 */ sll $t7, $a1, 5 +/* 072FDC 7F03E4AC 00CFC021 */ addu $t8, $a2, $t7 +/* 072FE0 7F03E4B0 8705001E */ lh $a1, 0x1e($t8) +/* 072FE4 7F03E4B4 04A3FFE2 */ bgezl $a1, .L7F03E440 +/* 072FE8 7F03E4B8 00003825 */ move $a3, $zero +/* 072FEC 7F03E4BC 8C830004 */ lw $v1, 4($a0) +.L7F03E4C0: +/* 072FF0 7F03E4C0 24840004 */ addiu $a0, $a0, 4 +/* 072FF4 7F03E4C4 0463FFD6 */ bgezl $v1, .L7F03E420 +/* 072FF8 7F03E4C8 8D4E0000 */ lw $t6, ($t2) +.L7F03E4CC: +/* 072FFC 7F03E4CC 2419FFFF */ li $t9, -1 +/* 073000 7F03E4D0 A4590000 */ sh $t9, ($v0) +/* 073004 7F03E4D4 8D2C0000 */ lw $t4, ($t1) +/* 073008 7F03E4D8 24420002 */ addiu $v0, $v0, 2 +/* 07300C 7F03E4DC 3C018007 */ lui $at, %hi(num_obj_position_data_entries) +/* 073010 7F03E4E0 004C6823 */ subu $t5, $v0, $t4 +/* 073014 7F03E4E4 000D7043 */ sra $t6, $t5, 1 +/* 073018 7F03E4E8 03E00008 */ jr $ra +/* 07301C 7F03E4EC AC2E9C34 */ sw $t6, %lo(num_obj_position_data_entries)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E4F0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E4F0 +/* 073020 7F03E4F0 3C038004 */ lui $v1, %hi(MaxNumRooms) +/* 073024 7F03E4F4 8C6342F4 */ lw $v1, %lo(MaxNumRooms)($v1) +/* 073028 7F03E4F8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 07302C 7F03E4FC AFB30014 */ sw $s3, 0x14($sp) +/* 073030 7F03E500 AFB20010 */ sw $s2, 0x10($sp) +/* 073034 7F03E504 AFB1000C */ sw $s1, 0xc($sp) +/* 073038 7F03E508 AFB00008 */ sw $s0, 8($sp) +/* 07303C 7F03E50C 1860005C */ blez $v1, .L7F03E680 +/* 073040 7F03E510 00001025 */ move $v0, $zero +/* 073044 7F03E514 3C0D8007 */ lui $t5, %hi(dword_CODE_bss_8007161C) +/* 073048 7F03E518 3C0C8007 */ lui $t4, %hi(ptr_room_lookup_buffer_maybe) +/* 07304C 7F03E51C 258C1618 */ addiu $t4, %lo(ptr_room_lookup_buffer_maybe) # addiu $t4, $t4, 0x1618 +/* 073050 7F03E520 25AD161C */ addiu $t5, %lo(dword_CODE_bss_8007161C) # addiu $t5, $t5, 0x161c +/* 073054 7F03E524 00002825 */ move $a1, $zero +/* 073058 7F03E528 2413001E */ li $s3, 30 +/* 07305C 7F03E52C 2412FFFE */ li $s2, -2 +/* 073060 7F03E530 2411001E */ li $s1, 30 +/* 073064 7F03E534 2410FFFF */ li $s0, -1 +.L7F03E538: +/* 073068 7F03E538 8D8E0000 */ lw $t6, ($t4) +/* 07306C 7F03E53C 24420001 */ addiu $v0, $v0, 1 +/* 073070 7F03E540 01C57821 */ addu $t7, $t6, $a1 +/* 073074 7F03E544 85E40000 */ lh $a0, ($t7) +/* 073078 7F03E548 0482004B */ bltzl $a0, .L7F03E678 +/* 07307C 7F03E54C 0043082A */ slt $at, $v0, $v1 +/* 073080 7F03E550 8DB80000 */ lw $t8, ($t5) +/* 073084 7F03E554 0004C940 */ sll $t9, $a0, 5 +/* 073088 7F03E558 03197021 */ addu $t6, $t8, $t9 +/* 07308C 7F03E55C 85C6001E */ lh $a2, 0x1e($t6) +/* 073090 7F03E560 04C00044 */ bltz $a2, .L7F03E674 +/* 073094 7F03E564 00004025 */ move $t0, $zero +.L7F03E568: +/* 073098 7F03E568 8DA30000 */ lw $v1, ($t5) +.L7F03E56C: +/* 07309C 7F03E56C 00047940 */ sll $t7, $a0, 5 +/* 0730A0 7F03E570 00067140 */ sll $t6, $a2, 5 +/* 0730A4 7F03E574 006FC021 */ addu $t8, $v1, $t7 +/* 0730A8 7F03E578 03083821 */ addu $a3, $t8, $t0 +/* 0730AC 7F03E57C 84F90000 */ lh $t9, ($a3) +/* 0730B0 7F03E580 25080002 */ addiu $t0, $t0, 2 +/* 0730B4 7F03E584 00005025 */ move $t2, $zero +/* 0730B8 7F03E588 0721002C */ bgez $t9, .L7F03E63C +/* 0730BC 7F03E58C 006E5821 */ addu $t3, $v1, $t6 +.L7F03E590: +/* 0730C0 7F03E590 85630000 */ lh $v1, ($t3) +/* 0730C4 7F03E594 04620009 */ bltzl $v1, .L7F03E5BC +/* 0730C8 7F03E598 254A0002 */ addiu $t2, $t2, 2 +/* 0730CC 7F03E59C A4E30000 */ sh $v1, ($a3) +/* 0730D0 7F03E5A0 8DAF0000 */ lw $t7, ($t5) +/* 0730D4 7F03E5A4 0006C140 */ sll $t8, $a2, 5 +/* 0730D8 7F03E5A8 01F8C821 */ addu $t9, $t7, $t8 +/* 0730DC 7F03E5AC 032A7021 */ addu $t6, $t9, $t2 +/* 0730E0 7F03E5B0 10000004 */ b .L7F03E5C4 +/* 0730E4 7F03E5B4 A5D00000 */ sh $s0, ($t6) +/* 0730E8 7F03E5B8 254A0002 */ addiu $t2, $t2, 2 +.L7F03E5BC: +/* 0730EC 7F03E5BC 1553FFF4 */ bne $t2, $s3, .L7F03E590 +/* 0730F0 7F03E5C0 256B0002 */ addiu $t3, $t3, 2 +.L7F03E5C4: +/* 0730F4 7F03E5C4 2941001E */ slti $at, $t2, 0x1e +/* 0730F8 7F03E5C8 1020000C */ beqz $at, .L7F03E5FC +/* 0730FC 7F03E5CC 00000000 */ nop +/* 073100 7F03E5D0 8DAF0000 */ lw $t7, ($t5) +/* 073104 7F03E5D4 0006C140 */ sll $t8, $a2, 5 +/* 073108 7F03E5D8 01F8C821 */ addu $t9, $t7, $t8 +/* 07310C 7F03E5DC 032A5821 */ addu $t3, $t9, $t2 +.L7F03E5E0: +/* 073110 7F03E5E0 856E0000 */ lh $t6, ($t3) +/* 073114 7F03E5E4 05C10005 */ bgez $t6, .L7F03E5FC +/* 073118 7F03E5E8 00000000 */ nop +/* 07311C 7F03E5EC 254A0002 */ addiu $t2, $t2, 2 +/* 073120 7F03E5F0 2941001E */ slti $at, $t2, 0x1e +/* 073124 7F03E5F4 1420FFFA */ bnez $at, .L7F03E5E0 +/* 073128 7F03E5F8 256B0002 */ addiu $t3, $t3, 2 +.L7F03E5FC: +/* 07312C 7F03E5FC 55510010 */ bnel $t2, $s1, .L7F03E640 +/* 073130 7F03E600 2901001E */ slti $at, $t0, 0x1e +/* 073134 7F03E604 8DAF0000 */ lw $t7, ($t5) +/* 073138 7F03E608 00064940 */ sll $t1, $a2, 5 +/* 07313C 7F03E60C 00043940 */ sll $a3, $a0, 5 +/* 073140 7F03E610 01E9C021 */ addu $t8, $t7, $t1 +/* 073144 7F03E614 A7120000 */ sh $s2, ($t8) +/* 073148 7F03E618 8DA30000 */ lw $v1, ($t5) +/* 07314C 7F03E61C 0069C821 */ addu $t9, $v1, $t1 +/* 073150 7F03E620 872E001E */ lh $t6, 0x1e($t9) +/* 073154 7F03E624 00677821 */ addu $t7, $v1, $a3 +/* 073158 7F03E628 A5EE001E */ sh $t6, 0x1e($t7) +/* 07315C 7F03E62C 8DB80000 */ lw $t8, ($t5) +/* 073160 7F03E630 0307C821 */ addu $t9, $t8, $a3 +/* 073164 7F03E634 8726001E */ lh $a2, 0x1e($t9) +/* 073168 7F03E638 04C00003 */ bltz $a2, .L7F03E648 +.L7F03E63C: +/* 07316C 7F03E63C 2901001E */ slti $at, $t0, 0x1e +.L7F03E640: +/* 073170 7F03E640 5420FFCA */ bnezl $at, .L7F03E56C +/* 073174 7F03E644 8DA30000 */ lw $v1, ($t5) +.L7F03E648: +/* 073178 7F03E648 04C00006 */ bltz $a2, .L7F03E664 +/* 07317C 7F03E64C 00000000 */ nop +/* 073180 7F03E650 8DAE0000 */ lw $t6, ($t5) +/* 073184 7F03E654 00067940 */ sll $t7, $a2, 5 +/* 073188 7F03E658 00C02025 */ move $a0, $a2 +/* 07318C 7F03E65C 01CFC021 */ addu $t8, $t6, $t7 +/* 073190 7F03E660 8706001E */ lh $a2, 0x1e($t8) +.L7F03E664: +/* 073194 7F03E664 04C3FFC0 */ bgezl $a2, .L7F03E568 +/* 073198 7F03E668 00004025 */ move $t0, $zero +/* 07319C 7F03E66C 3C038004 */ lui $v1, %hi(MaxNumRooms) +/* 0731A0 7F03E670 8C6342F4 */ lw $v1, %lo(MaxNumRooms)($v1) +.L7F03E674: +/* 0731A4 7F03E674 0043082A */ slt $at, $v0, $v1 +.L7F03E678: +/* 0731A8 7F03E678 1420FFAF */ bnez $at, .L7F03E538 +/* 0731AC 7F03E67C 24A50002 */ addiu $a1, $a1, 2 +.L7F03E680: +/* 0731B0 7F03E680 8FB00008 */ lw $s0, 8($sp) +/* 0731B4 7F03E684 8FB1000C */ lw $s1, 0xc($sp) +/* 0731B8 7F03E688 8FB20010 */ lw $s2, 0x10($sp) +/* 0731BC 7F03E68C 8FB30014 */ lw $s3, 0x14($sp) +/* 0731C0 7F03E690 03E00008 */ jr $ra +/* 0731C4 7F03E694 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void removed_debug_roomblocks_feature(void) { + +} +#else +GLOBAL_ASM( +.text +glabel removed_debug_roomblocks_feature +/* 0731C8 7F03E698 03E00008 */ jr $ra +/* 0731CC 7F03E69C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E6A0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E6A0 +/* 0731D0 7F03E6A0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0731D4 7F03E6A4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0731D8 7F03E6A8 AFB10018 */ sw $s1, 0x18($sp) +/* 0731DC 7F03E6AC AFB00014 */ sw $s0, 0x14($sp) +/* 0731E0 7F03E6B0 8C820004 */ lw $v0, 4($a0) +/* 0731E4 7F03E6B4 00808825 */ move $s1, $a0 +/* 0731E8 7F03E6B8 3C108003 */ lui $s0, %hi(D_80030B00) +/* 0731EC 7F03E6BC 8C4E0064 */ lw $t6, 0x64($v0) +/* 0731F0 7F03E6C0 31CF0001 */ andi $t7, $t6, 1 +/* 0731F4 7F03E6C4 51E00010 */ beql $t7, $zero, .L7F03E708 +/* 0731F8 7F03E6C8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0731FC 7F03E6CC 8E100B00 */ lw $s0, %lo(D_80030B00)($s0) +/* 073200 7F03E6D0 5200000D */ beql $s0, $zero, .L7F03E708 +/* 073204 7F03E6D4 8FBF001C */ lw $ra, 0x1c($sp) +/* 073208 7F03E6D8 8E180004 */ lw $t8, 4($s0) +.L7F03E6DC: +/* 07320C 7F03E6DC 56380007 */ bnel $s1, $t8, .L7F03E6FC +/* 073210 7F03E6E0 8E10000C */ lw $s0, 0xc($s0) +/* 073214 7F03E6E4 8E040008 */ lw $a0, 8($s0) +/* 073218 7F03E6E8 50800004 */ beql $a0, $zero, .L7F03E6FC +/* 07321C 7F03E6EC 8E10000C */ lw $s0, 0xc($s0) +/* 073220 7F03E6F0 0FC15667 */ jal sub_GAME_7F05599C +/* 073224 7F03E6F4 00000000 */ nop +/* 073228 7F03E6F8 8E10000C */ lw $s0, 0xc($s0) +.L7F03E6FC: +/* 07322C 7F03E6FC 5600FFF7 */ bnezl $s0, .L7F03E6DC +/* 073230 7F03E700 8E180004 */ lw $t8, 4($s0) +/* 073234 7F03E704 8FBF001C */ lw $ra, 0x1c($sp) +.L7F03E708: +/* 073238 7F03E708 8FB00014 */ lw $s0, 0x14($sp) +/* 07323C 7F03E70C 8FB10018 */ lw $s1, 0x18($sp) +/* 073240 7F03E710 03E00008 */ jr $ra +/* 073244 7F03E714 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E718(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E718 +/* 073248 7F03E718 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 07324C 7F03E71C AFBF001C */ sw $ra, 0x1c($sp) +/* 073250 7F03E720 AFB10018 */ sw $s1, 0x18($sp) +/* 073254 7F03E724 AFB00014 */ sw $s0, 0x14($sp) +/* 073258 7F03E728 8C8E0064 */ lw $t6, 0x64($a0) +/* 07325C 7F03E72C 00808825 */ move $s1, $a0 +/* 073260 7F03E730 3C108003 */ lui $s0, %hi(D_80030B04) +/* 073264 7F03E734 31CF2000 */ andi $t7, $t6, 0x2000 +/* 073268 7F03E738 51E00017 */ beql $t7, $zero, .L7F03E798 +/* 07326C 7F03E73C 24020001 */ li $v0, 1 +/* 073270 7F03E740 8E100B04 */ lw $s0, %lo(D_80030B04)($s0) +/* 073274 7F03E744 52000014 */ beql $s0, $zero, .L7F03E798 +/* 073278 7F03E748 24020001 */ li $v0, 1 +/* 07327C 7F03E74C 8E180004 */ lw $t8, 4($s0) +.L7F03E750: +/* 073280 7F03E750 5638000E */ bnel $s1, $t8, .L7F03E78C +/* 073284 7F03E754 8E10000C */ lw $s0, 0xc($s0) +/* 073288 7F03E758 8E040008 */ lw $a0, 8($s0) +/* 07328C 7F03E75C 5080000B */ beql $a0, $zero, .L7F03E78C +/* 073290 7F03E760 8E10000C */ lw $s0, 0xc($s0) +/* 073294 7F03E764 8C990010 */ lw $t9, 0x10($a0) +/* 073298 7F03E768 53200008 */ beql $t9, $zero, .L7F03E78C +/* 07329C 7F03E76C 8E10000C */ lw $s0, 0xc($s0) +/* 0732A0 7F03E770 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 0732A4 7F03E774 00000000 */ nop +/* 0732A8 7F03E778 50400004 */ beql $v0, $zero, .L7F03E78C +/* 0732AC 7F03E77C 8E10000C */ lw $s0, 0xc($s0) +/* 0732B0 7F03E780 10000005 */ b .L7F03E798 +/* 0732B4 7F03E784 00001025 */ move $v0, $zero +/* 0732B8 7F03E788 8E10000C */ lw $s0, 0xc($s0) +.L7F03E78C: +/* 0732BC 7F03E78C 5600FFF0 */ bnezl $s0, .L7F03E750 +/* 0732C0 7F03E790 8E180004 */ lw $t8, 4($s0) +/* 0732C4 7F03E794 24020001 */ li $v0, 1 +.L7F03E798: +/* 0732C8 7F03E798 8FBF001C */ lw $ra, 0x1c($sp) +/* 0732CC 7F03E79C 8FB00014 */ lw $s0, 0x14($sp) +/* 0732D0 7F03E7A0 8FB10018 */ lw $s1, 0x18($sp) +/* 0732D4 7F03E7A4 03E00008 */ jr $ra +/* 0732D8 7F03E7A8 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E7AC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E7AC +/* 0732DC 7F03E7AC 8C8E000C */ lw $t6, 0xc($a0) +/* 0732E0 7F03E7B0 3C028003 */ lui $v0, %hi(D_80030B08) +/* 0732E4 7F03E7B4 31CF0400 */ andi $t7, $t6, 0x400 +/* 0732E8 7F03E7B8 51E0001B */ beql $t7, $zero, .L7F03E828 +/* 0732EC 7F03E7BC 24020001 */ li $v0, 1 +/* 0732F0 7F03E7C0 8C420B08 */ lw $v0, %lo(D_80030B08)($v0) +/* 0732F4 7F03E7C4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0732F8 7F03E7C8 50400017 */ beql $v0, $zero, .L7F03E828 +/* 0732FC 7F03E7CC 24020001 */ li $v0, 1 +/* 073300 7F03E7D0 44810000 */ mtc1 $at, $f0 +/* 073304 7F03E7D4 00000000 */ nop +/* 073308 7F03E7D8 8C580004 */ lw $t8, 4($v0) +.L7F03E7DC: +/* 07330C 7F03E7DC 5498000F */ bnel $a0, $t8, .L7F03E81C +/* 073310 7F03E7E0 8C420010 */ lw $v0, 0x10($v0) +/* 073314 7F03E7E4 8C43000C */ lw $v1, 0xc($v0) +/* 073318 7F03E7E8 5060000C */ beql $v1, $zero, .L7F03E81C +/* 07331C 7F03E7EC 8C420010 */ lw $v0, 0x10($v0) +/* 073320 7F03E7F0 8C790010 */ lw $t9, 0x10($v1) +/* 073324 7F03E7F4 53200009 */ beql $t9, $zero, .L7F03E81C +/* 073328 7F03E7F8 8C420010 */ lw $v0, 0x10($v0) +/* 07332C 7F03E7FC C46400B4 */ lwc1 $f4, 0xb4($v1) +/* 073330 7F03E800 4600203E */ c.le.s $f4, $f0 +/* 073334 7F03E804 00000000 */ nop +/* 073338 7F03E808 45020004 */ bc1fl .L7F03E81C +/* 07333C 7F03E80C 8C420010 */ lw $v0, 0x10($v0) +/* 073340 7F03E810 03E00008 */ jr $ra +/* 073344 7F03E814 00001025 */ move $v0, $zero + +/* 073348 7F03E818 8C420010 */ lw $v0, 0x10($v0) +.L7F03E81C: +/* 07334C 7F03E81C 5440FFEF */ bnezl $v0, .L7F03E7DC +/* 073350 7F03E820 8C580004 */ lw $t8, 4($v0) +/* 073354 7F03E824 24020001 */ li $v0, 1 +.L7F03E828: +/* 073358 7F03E828 03E00008 */ jr $ra +/* 07335C 7F03E82C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E830(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E830 +/* 073360 7F03E830 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 073364 7F03E834 AFBF0014 */ sw $ra, 0x14($sp) +/* 073368 7F03E838 8C820010 */ lw $v0, 0x10($a0) +/* 07336C 7F03E83C 8C440014 */ lw $a0, 0x14($v0) +/* 073370 7F03E840 8C450008 */ lw $a1, 8($v0) +/* 073374 7F03E844 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 073378 7F03E848 8C460010 */ lw $a2, 0x10($v0) +/* 07337C 7F03E84C 8FBF0014 */ lw $ra, 0x14($sp) +/* 073380 7F03E850 27BD0018 */ addiu $sp, $sp, 0x18 +/* 073384 7F03E854 03E00008 */ jr $ra +/* 073388 7F03E858 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E85C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E85C +/* 07338C 7F03E85C 03E00008 */ jr $ra +/* 073390 7F03E860 C4800004 */ lwc1 $f0, 4($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E864(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E864 +/* 073394 7F03E864 03E00008 */ jr $ra +/* 073398 7F03E868 C480000C */ lwc1 $f0, 0xc($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E86C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E86C +/* 07339C 7F03E86C 03E00008 */ jr $ra +/* 0733A0 7F03E870 C4800010 */ lwc1 $f0, 0x10($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E874(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E874 +/* 0733A4 7F03E874 03E00008 */ jr $ra +/* 0733A8 7F03E878 C4800014 */ lwc1 $f0, 0x14($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E87C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E87C +/* 0733AC 7F03E87C 44806000 */ mtc1 $zero, $f12 +/* 0733B0 7F03E880 C4A00000 */ lwc1 $f0, ($a1) +/* 0733B4 7F03E884 4600603E */ c.le.s $f12, $f0 +/* 0733B8 7F03E888 00000000 */ nop +/* 0733BC 7F03E88C 45020006 */ bc1fl .L7F03E8A8 +/* 0733C0 7F03E890 C4880008 */ lwc1 $f8, 8($a0) +/* 0733C4 7F03E894 C4840004 */ lwc1 $f4, 4($a0) +/* 0733C8 7F03E898 46002182 */ mul.s $f6, $f4, $f0 +/* 0733CC 7F03E89C 10000004 */ b .L7F03E8B0 +/* 0733D0 7F03E8A0 46066080 */ add.s $f2, $f12, $f6 +/* 0733D4 7F03E8A4 C4880008 */ lwc1 $f8, 8($a0) +.L7F03E8A8: +/* 0733D8 7F03E8A8 46004282 */ mul.s $f10, $f8, $f0 +/* 0733DC 7F03E8AC 460A6080 */ add.s $f2, $f12, $f10 +.L7F03E8B0: +/* 0733E0 7F03E8B0 C4A00010 */ lwc1 $f0, 0x10($a1) +/* 0733E4 7F03E8B4 4600603E */ c.le.s $f12, $f0 +/* 0733E8 7F03E8B8 00000000 */ nop +/* 0733EC 7F03E8BC 45020006 */ bc1fl .L7F03E8D8 +/* 0733F0 7F03E8C0 C4840010 */ lwc1 $f4, 0x10($a0) +/* 0733F4 7F03E8C4 C490000C */ lwc1 $f16, 0xc($a0) +/* 0733F8 7F03E8C8 46008482 */ mul.s $f18, $f16, $f0 +/* 0733FC 7F03E8CC 10000004 */ b .L7F03E8E0 +/* 073400 7F03E8D0 46121080 */ add.s $f2, $f2, $f18 +/* 073404 7F03E8D4 C4840010 */ lwc1 $f4, 0x10($a0) +.L7F03E8D8: +/* 073408 7F03E8D8 46002182 */ mul.s $f6, $f4, $f0 +/* 07340C 7F03E8DC 46061080 */ add.s $f2, $f2, $f6 +.L7F03E8E0: +/* 073410 7F03E8E0 C4A00020 */ lwc1 $f0, 0x20($a1) +/* 073414 7F03E8E4 4600603E */ c.le.s $f12, $f0 +/* 073418 7F03E8E8 00000000 */ nop +/* 07341C 7F03E8EC 45020007 */ bc1fl .L7F03E90C +/* 073420 7F03E8F0 C4900018 */ lwc1 $f16, 0x18($a0) +/* 073424 7F03E8F4 C4880014 */ lwc1 $f8, 0x14($a0) +/* 073428 7F03E8F8 46004282 */ mul.s $f10, $f8, $f0 +/* 07342C 7F03E8FC 460A1080 */ add.s $f2, $f2, $f10 +/* 073430 7F03E900 03E00008 */ jr $ra +/* 073434 7F03E904 46001006 */ mov.s $f0, $f2 + +/* 073438 7F03E908 C4900018 */ lwc1 $f16, 0x18($a0) +.L7F03E90C: +/* 07343C 7F03E90C 46008482 */ mul.s $f18, $f16, $f0 +/* 073440 7F03E910 46121080 */ add.s $f2, $f2, $f18 +/* 073444 7F03E914 03E00008 */ jr $ra +/* 073448 7F03E918 46001006 */ mov.s $f0, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E91C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E91C +/* 07344C 7F03E91C 44806000 */ mtc1 $zero, $f12 +/* 073450 7F03E920 C4A00000 */ lwc1 $f0, ($a1) +/* 073454 7F03E924 460C003E */ c.le.s $f0, $f12 +/* 073458 7F03E928 00000000 */ nop +/* 07345C 7F03E92C 45020006 */ bc1fl .L7F03E948 +/* 073460 7F03E930 C4880008 */ lwc1 $f8, 8($a0) +/* 073464 7F03E934 C4840004 */ lwc1 $f4, 4($a0) +/* 073468 7F03E938 46002182 */ mul.s $f6, $f4, $f0 +/* 07346C 7F03E93C 10000004 */ b .L7F03E950 +/* 073470 7F03E940 46066080 */ add.s $f2, $f12, $f6 +/* 073474 7F03E944 C4880008 */ lwc1 $f8, 8($a0) +.L7F03E948: +/* 073478 7F03E948 46004282 */ mul.s $f10, $f8, $f0 +/* 07347C 7F03E94C 460A6080 */ add.s $f2, $f12, $f10 +.L7F03E950: +/* 073480 7F03E950 C4A00010 */ lwc1 $f0, 0x10($a1) +/* 073484 7F03E954 460C003E */ c.le.s $f0, $f12 +/* 073488 7F03E958 00000000 */ nop +/* 07348C 7F03E95C 45020006 */ bc1fl .L7F03E978 +/* 073490 7F03E960 C4840010 */ lwc1 $f4, 0x10($a0) +/* 073494 7F03E964 C490000C */ lwc1 $f16, 0xc($a0) +/* 073498 7F03E968 46008482 */ mul.s $f18, $f16, $f0 +/* 07349C 7F03E96C 10000004 */ b .L7F03E980 +/* 0734A0 7F03E970 46121080 */ add.s $f2, $f2, $f18 +/* 0734A4 7F03E974 C4840010 */ lwc1 $f4, 0x10($a0) +.L7F03E978: +/* 0734A8 7F03E978 46002182 */ mul.s $f6, $f4, $f0 +/* 0734AC 7F03E97C 46061080 */ add.s $f2, $f2, $f6 +.L7F03E980: +/* 0734B0 7F03E980 C4A00020 */ lwc1 $f0, 0x20($a1) +/* 0734B4 7F03E984 460C003E */ c.le.s $f0, $f12 +/* 0734B8 7F03E988 00000000 */ nop +/* 0734BC 7F03E98C 45020007 */ bc1fl .L7F03E9AC +/* 0734C0 7F03E990 C4900018 */ lwc1 $f16, 0x18($a0) +/* 0734C4 7F03E994 C4880014 */ lwc1 $f8, 0x14($a0) +/* 0734C8 7F03E998 46004282 */ mul.s $f10, $f8, $f0 +/* 0734CC 7F03E99C 460A1080 */ add.s $f2, $f2, $f10 +/* 0734D0 7F03E9A0 03E00008 */ jr $ra +/* 0734D4 7F03E9A4 46001006 */ mov.s $f0, $f2 + +/* 0734D8 7F03E9A8 C4900018 */ lwc1 $f16, 0x18($a0) +.L7F03E9AC: +/* 0734DC 7F03E9AC 46008482 */ mul.s $f18, $f16, $f0 +/* 0734E0 7F03E9B0 46121080 */ add.s $f2, $f2, $f18 +/* 0734E4 7F03E9B4 03E00008 */ jr $ra +/* 0734E8 7F03E9B8 46001006 */ mov.s $f0, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03E9BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03E9BC +/* 0734EC 7F03E9BC 44806000 */ mtc1 $zero, $f12 +/* 0734F0 7F03E9C0 C4A00004 */ lwc1 $f0, 4($a1) +/* 0734F4 7F03E9C4 4600603E */ c.le.s $f12, $f0 +/* 0734F8 7F03E9C8 00000000 */ nop +/* 0734FC 7F03E9CC 45020006 */ bc1fl .L7F03E9E8 +/* 073500 7F03E9D0 C4880008 */ lwc1 $f8, 8($a0) +/* 073504 7F03E9D4 C4840004 */ lwc1 $f4, 4($a0) +/* 073508 7F03E9D8 46002182 */ mul.s $f6, $f4, $f0 +/* 07350C 7F03E9DC 10000004 */ b .L7F03E9F0 +/* 073510 7F03E9E0 46066080 */ add.s $f2, $f12, $f6 +/* 073514 7F03E9E4 C4880008 */ lwc1 $f8, 8($a0) +.L7F03E9E8: +/* 073518 7F03E9E8 46004282 */ mul.s $f10, $f8, $f0 +/* 07351C 7F03E9EC 460A6080 */ add.s $f2, $f12, $f10 +.L7F03E9F0: +/* 073520 7F03E9F0 C4A00014 */ lwc1 $f0, 0x14($a1) +/* 073524 7F03E9F4 4600603E */ c.le.s $f12, $f0 +/* 073528 7F03E9F8 00000000 */ nop +/* 07352C 7F03E9FC 45020006 */ bc1fl .L7F03EA18 +/* 073530 7F03EA00 C4840010 */ lwc1 $f4, 0x10($a0) +/* 073534 7F03EA04 C490000C */ lwc1 $f16, 0xc($a0) +/* 073538 7F03EA08 46008482 */ mul.s $f18, $f16, $f0 +/* 07353C 7F03EA0C 10000004 */ b .L7F03EA20 +/* 073540 7F03EA10 46121080 */ add.s $f2, $f2, $f18 +/* 073544 7F03EA14 C4840010 */ lwc1 $f4, 0x10($a0) +.L7F03EA18: +/* 073548 7F03EA18 46002182 */ mul.s $f6, $f4, $f0 +/* 07354C 7F03EA1C 46061080 */ add.s $f2, $f2, $f6 +.L7F03EA20: +/* 073550 7F03EA20 C4A00024 */ lwc1 $f0, 0x24($a1) +/* 073554 7F03EA24 4600603E */ c.le.s $f12, $f0 +/* 073558 7F03EA28 00000000 */ nop +/* 07355C 7F03EA2C 45020007 */ bc1fl .L7F03EA4C +/* 073560 7F03EA30 C4900018 */ lwc1 $f16, 0x18($a0) +/* 073564 7F03EA34 C4880014 */ lwc1 $f8, 0x14($a0) +/* 073568 7F03EA38 46004282 */ mul.s $f10, $f8, $f0 +/* 07356C 7F03EA3C 460A1080 */ add.s $f2, $f2, $f10 +/* 073570 7F03EA40 03E00008 */ jr $ra +/* 073574 7F03EA44 46001006 */ mov.s $f0, $f2 + +/* 073578 7F03EA48 C4900018 */ lwc1 $f16, 0x18($a0) +.L7F03EA4C: +/* 07357C 7F03EA4C 46008482 */ mul.s $f18, $f16, $f0 +/* 073580 7F03EA50 46121080 */ add.s $f2, $f2, $f18 +/* 073584 7F03EA54 03E00008 */ jr $ra +/* 073588 7F03EA58 46001006 */ mov.s $f0, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03EA5C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03EA5C +/* 07358C 7F03EA5C 44806000 */ mtc1 $zero, $f12 +/* 073590 7F03EA60 C4A00004 */ lwc1 $f0, 4($a1) +/* 073594 7F03EA64 460C003E */ c.le.s $f0, $f12 +/* 073598 7F03EA68 00000000 */ nop +/* 07359C 7F03EA6C 45020006 */ bc1fl .L7F03EA88 +/* 0735A0 7F03EA70 C4880008 */ lwc1 $f8, 8($a0) +/* 0735A4 7F03EA74 C4840004 */ lwc1 $f4, 4($a0) +/* 0735A8 7F03EA78 46002182 */ mul.s $f6, $f4, $f0 +/* 0735AC 7F03EA7C 10000004 */ b .L7F03EA90 +/* 0735B0 7F03EA80 46066080 */ add.s $f2, $f12, $f6 +/* 0735B4 7F03EA84 C4880008 */ lwc1 $f8, 8($a0) +.L7F03EA88: +/* 0735B8 7F03EA88 46004282 */ mul.s $f10, $f8, $f0 +/* 0735BC 7F03EA8C 460A6080 */ add.s $f2, $f12, $f10 +.L7F03EA90: +/* 0735C0 7F03EA90 C4A00014 */ lwc1 $f0, 0x14($a1) +/* 0735C4 7F03EA94 460C003E */ c.le.s $f0, $f12 +/* 0735C8 7F03EA98 00000000 */ nop +/* 0735CC 7F03EA9C 45020006 */ bc1fl .L7F03EAB8 +/* 0735D0 7F03EAA0 C4840010 */ lwc1 $f4, 0x10($a0) +/* 0735D4 7F03EAA4 C490000C */ lwc1 $f16, 0xc($a0) +/* 0735D8 7F03EAA8 46008482 */ mul.s $f18, $f16, $f0 +/* 0735DC 7F03EAAC 10000004 */ b .L7F03EAC0 +/* 0735E0 7F03EAB0 46121080 */ add.s $f2, $f2, $f18 +/* 0735E4 7F03EAB4 C4840010 */ lwc1 $f4, 0x10($a0) +.L7F03EAB8: +/* 0735E8 7F03EAB8 46002182 */ mul.s $f6, $f4, $f0 +/* 0735EC 7F03EABC 46061080 */ add.s $f2, $f2, $f6 +.L7F03EAC0: +/* 0735F0 7F03EAC0 C4A00024 */ lwc1 $f0, 0x24($a1) +/* 0735F4 7F03EAC4 460C003E */ c.le.s $f0, $f12 +/* 0735F8 7F03EAC8 00000000 */ nop +/* 0735FC 7F03EACC 45020007 */ bc1fl .L7F03EAEC +/* 073600 7F03EAD0 C4900018 */ lwc1 $f16, 0x18($a0) +/* 073604 7F03EAD4 C4880014 */ lwc1 $f8, 0x14($a0) +/* 073608 7F03EAD8 46004282 */ mul.s $f10, $f8, $f0 +/* 07360C 7F03EADC 460A1080 */ add.s $f2, $f2, $f10 +/* 073610 7F03EAE0 03E00008 */ jr $ra +/* 073614 7F03EAE4 46001006 */ mov.s $f0, $f2 + +/* 073618 7F03EAE8 C4900018 */ lwc1 $f16, 0x18($a0) +.L7F03EAEC: +/* 07361C 7F03EAEC 46008482 */ mul.s $f18, $f16, $f0 +/* 073620 7F03EAF0 46121080 */ add.s $f2, $f2, $f18 +/* 073624 7F03EAF4 03E00008 */ jr $ra +/* 073628 7F03EAF8 46001006 */ mov.s $f0, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03EAFC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03EAFC +/* 07362C 7F03EAFC 44806000 */ mtc1 $zero, $f12 +/* 073630 7F03EB00 C4A00008 */ lwc1 $f0, 8($a1) +/* 073634 7F03EB04 4600603E */ c.le.s $f12, $f0 +/* 073638 7F03EB08 00000000 */ nop +/* 07363C 7F03EB0C 45020006 */ bc1fl .L7F03EB28 +/* 073640 7F03EB10 C4880008 */ lwc1 $f8, 8($a0) +/* 073644 7F03EB14 C4840004 */ lwc1 $f4, 4($a0) +/* 073648 7F03EB18 46002182 */ mul.s $f6, $f4, $f0 +/* 07364C 7F03EB1C 10000004 */ b .L7F03EB30 +/* 073650 7F03EB20 46066080 */ add.s $f2, $f12, $f6 +/* 073654 7F03EB24 C4880008 */ lwc1 $f8, 8($a0) +.L7F03EB28: +/* 073658 7F03EB28 46004282 */ mul.s $f10, $f8, $f0 +/* 07365C 7F03EB2C 460A6080 */ add.s $f2, $f12, $f10 +.L7F03EB30: +/* 073660 7F03EB30 C4A00018 */ lwc1 $f0, 0x18($a1) +/* 073664 7F03EB34 4600603E */ c.le.s $f12, $f0 +/* 073668 7F03EB38 00000000 */ nop +/* 07366C 7F03EB3C 45020006 */ bc1fl .L7F03EB58 +/* 073670 7F03EB40 C4840010 */ lwc1 $f4, 0x10($a0) +/* 073674 7F03EB44 C490000C */ lwc1 $f16, 0xc($a0) +/* 073678 7F03EB48 46008482 */ mul.s $f18, $f16, $f0 +/* 07367C 7F03EB4C 10000004 */ b .L7F03EB60 +/* 073680 7F03EB50 46121080 */ add.s $f2, $f2, $f18 +/* 073684 7F03EB54 C4840010 */ lwc1 $f4, 0x10($a0) +.L7F03EB58: +/* 073688 7F03EB58 46002182 */ mul.s $f6, $f4, $f0 +/* 07368C 7F03EB5C 46061080 */ add.s $f2, $f2, $f6 +.L7F03EB60: +/* 073690 7F03EB60 C4A00028 */ lwc1 $f0, 0x28($a1) +/* 073694 7F03EB64 4600603E */ c.le.s $f12, $f0 +/* 073698 7F03EB68 00000000 */ nop +/* 07369C 7F03EB6C 45020007 */ bc1fl .L7F03EB8C +/* 0736A0 7F03EB70 C4900018 */ lwc1 $f16, 0x18($a0) +/* 0736A4 7F03EB74 C4880014 */ lwc1 $f8, 0x14($a0) +/* 0736A8 7F03EB78 46004282 */ mul.s $f10, $f8, $f0 +/* 0736AC 7F03EB7C 460A1080 */ add.s $f2, $f2, $f10 +/* 0736B0 7F03EB80 03E00008 */ jr $ra +/* 0736B4 7F03EB84 46001006 */ mov.s $f0, $f2 + +/* 0736B8 7F03EB88 C4900018 */ lwc1 $f16, 0x18($a0) +.L7F03EB8C: +/* 0736BC 7F03EB8C 46008482 */ mul.s $f18, $f16, $f0 +/* 0736C0 7F03EB90 46121080 */ add.s $f2, $f2, $f18 +/* 0736C4 7F03EB94 03E00008 */ jr $ra +/* 0736C8 7F03EB98 46001006 */ mov.s $f0, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03EB9C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03EB9C +/* 0736CC 7F03EB9C 44806000 */ mtc1 $zero, $f12 +/* 0736D0 7F03EBA0 C4A00008 */ lwc1 $f0, 8($a1) +/* 0736D4 7F03EBA4 460C003E */ c.le.s $f0, $f12 +/* 0736D8 7F03EBA8 00000000 */ nop +/* 0736DC 7F03EBAC 45020006 */ bc1fl .L7F03EBC8 +/* 0736E0 7F03EBB0 C4880008 */ lwc1 $f8, 8($a0) +/* 0736E4 7F03EBB4 C4840004 */ lwc1 $f4, 4($a0) +/* 0736E8 7F03EBB8 46002182 */ mul.s $f6, $f4, $f0 +/* 0736EC 7F03EBBC 10000004 */ b .L7F03EBD0 +/* 0736F0 7F03EBC0 46066080 */ add.s $f2, $f12, $f6 +/* 0736F4 7F03EBC4 C4880008 */ lwc1 $f8, 8($a0) +.L7F03EBC8: +/* 0736F8 7F03EBC8 46004282 */ mul.s $f10, $f8, $f0 +/* 0736FC 7F03EBCC 460A6080 */ add.s $f2, $f12, $f10 +.L7F03EBD0: +/* 073700 7F03EBD0 C4A00018 */ lwc1 $f0, 0x18($a1) +/* 073704 7F03EBD4 460C003E */ c.le.s $f0, $f12 +/* 073708 7F03EBD8 00000000 */ nop +/* 07370C 7F03EBDC 45020006 */ bc1fl .L7F03EBF8 +/* 073710 7F03EBE0 C4840010 */ lwc1 $f4, 0x10($a0) +/* 073714 7F03EBE4 C490000C */ lwc1 $f16, 0xc($a0) +/* 073718 7F03EBE8 46008482 */ mul.s $f18, $f16, $f0 +/* 07371C 7F03EBEC 10000004 */ b .L7F03EC00 +/* 073720 7F03EBF0 46121080 */ add.s $f2, $f2, $f18 +/* 073724 7F03EBF4 C4840010 */ lwc1 $f4, 0x10($a0) +.L7F03EBF8: +/* 073728 7F03EBF8 46002182 */ mul.s $f6, $f4, $f0 +/* 07372C 7F03EBFC 46061080 */ add.s $f2, $f2, $f6 +.L7F03EC00: +/* 073730 7F03EC00 C4A00028 */ lwc1 $f0, 0x28($a1) +/* 073734 7F03EC04 460C003E */ c.le.s $f0, $f12 +/* 073738 7F03EC08 00000000 */ nop +/* 07373C 7F03EC0C 45020007 */ bc1fl .L7F03EC2C +/* 073740 7F03EC10 C4900018 */ lwc1 $f16, 0x18($a0) +/* 073744 7F03EC14 C4880014 */ lwc1 $f8, 0x14($a0) +/* 073748 7F03EC18 46004282 */ mul.s $f10, $f8, $f0 +/* 07374C 7F03EC1C 460A1080 */ add.s $f2, $f2, $f10 +/* 073750 7F03EC20 03E00008 */ jr $ra +/* 073754 7F03EC24 46001006 */ mov.s $f0, $f2 + +/* 073758 7F03EC28 C4900018 */ lwc1 $f16, 0x18($a0) +.L7F03EC2C: +/* 07375C 7F03EC2C 46008482 */ mul.s $f18, $f16, $f0 +/* 073760 7F03EC30 46121080 */ add.s $f2, $f2, $f18 +/* 073764 7F03EC34 03E00008 */ jr $ra +/* 073768 7F03EC38 46001006 */ mov.s $f0, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03EC3C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03EC3C +/* 07376C 7F03EC3C 44800000 */ mtc1 $zero, $f0 +/* 073770 7F03EC40 C4A40008 */ lwc1 $f4, 8($a1) +/* 073774 7F03EC44 4600203E */ c.le.s $f4, $f0 +/* 073778 7F03EC48 00000000 */ nop +/* 07377C 7F03EC4C 45020005 */ bc1fl .L7F03EC64 +/* 073780 7F03EC50 C4880008 */ lwc1 $f8, 8($a0) +/* 073784 7F03EC54 C4860004 */ lwc1 $f6, 4($a0) +/* 073788 7F03EC58 10000003 */ b .L7F03EC68 +/* 07378C 7F03EC5C E4C60000 */ swc1 $f6, ($a2) +/* 073790 7F03EC60 C4880008 */ lwc1 $f8, 8($a0) +.L7F03EC64: +/* 073794 7F03EC64 E4C80000 */ swc1 $f8, ($a2) +.L7F03EC68: +/* 073798 7F03EC68 C4AA0018 */ lwc1 $f10, 0x18($a1) +/* 07379C 7F03EC6C 4600503E */ c.le.s $f10, $f0 +/* 0737A0 7F03EC70 00000000 */ nop +/* 0737A4 7F03EC74 45020005 */ bc1fl .L7F03EC8C +/* 0737A8 7F03EC78 C4920010 */ lwc1 $f18, 0x10($a0) +/* 0737AC 7F03EC7C C490000C */ lwc1 $f16, 0xc($a0) +/* 0737B0 7F03EC80 10000003 */ b .L7F03EC90 +/* 0737B4 7F03EC84 E4D00004 */ swc1 $f16, 4($a2) +/* 0737B8 7F03EC88 C4920010 */ lwc1 $f18, 0x10($a0) +.L7F03EC8C: +/* 0737BC 7F03EC8C E4D20004 */ swc1 $f18, 4($a2) +.L7F03EC90: +/* 0737C0 7F03EC90 C4A40028 */ lwc1 $f4, 0x28($a1) +/* 0737C4 7F03EC94 4600203E */ c.le.s $f4, $f0 +/* 0737C8 7F03EC98 00000000 */ nop +/* 0737CC 7F03EC9C 45020005 */ bc1fl .L7F03ECB4 +/* 0737D0 7F03ECA0 C4880018 */ lwc1 $f8, 0x18($a0) +/* 0737D4 7F03ECA4 C4860014 */ lwc1 $f6, 0x14($a0) +/* 0737D8 7F03ECA8 03E00008 */ jr $ra +/* 0737DC 7F03ECAC E4C60008 */ swc1 $f6, 8($a2) + +/* 0737E0 7F03ECB0 C4880018 */ lwc1 $f8, 0x18($a0) +.L7F03ECB4: +/* 0737E4 7F03ECB4 E4C80008 */ swc1 $f8, 8($a2) +/* 0737E8 7F03ECB8 03E00008 */ jr $ra +/* 0737EC 7F03ECBC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03ECC0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03ECC0 +/* 0737F0 7F03ECC0 27BDFE20 */ addiu $sp, $sp, -0x1e0 +/* 0737F4 7F03ECC4 AFA601E8 */ sw $a2, 0x1e8($sp) +/* 0737F8 7F03ECC8 8FA601F8 */ lw $a2, 0x1f8($sp) +/* 0737FC 7F03ECCC E7AE01E4 */ swc1 $f14, 0x1e4($sp) +/* 073800 7F03ECD0 AFA701EC */ sw $a3, 0x1ec($sp) +/* 073804 7F03ECD4 C4C40000 */ lwc1 $f4, ($a2) +/* 073808 7F03ECD8 46006021 */ cvt.d.s $f0, $f12 +/* 07380C 7F03ECDC 27AE0160 */ addiu $t6, $sp, 0x160 +/* 073810 7F03ECE0 460021A1 */ cvt.d.s $f6, $f4 +/* 073814 7F03ECE4 0000C900 */ sll $t9, $zero, 4 +/* 073818 7F03ECE8 F7A600F0 */ sdc1 $f6, 0xf0($sp) +/* 07381C 7F03ECEC C4CA0008 */ lwc1 $f10, 8($a2) +/* 073820 7F03ECF0 032E4821 */ addu $t1, $t9, $t6 +/* 073824 7F03ECF4 00005025 */ move $t2, $zero +/* 073828 7F03ECF8 46005221 */ cvt.d.s $f8, $f10 +/* 07382C 7F03ECFC 000AC900 */ sll $t9, $t2, 4 +/* 073830 7F03ED00 F7A800E8 */ sdc1 $f8, 0xe8($sp) +/* 073834 7F03ED04 C4C40010 */ lwc1 $f4, 0x10($a2) +/* 073838 7F03ED08 27AE0160 */ addiu $t6, $sp, 0x160 +/* 07383C 7F03ED0C 032E4021 */ addu $t0, $t9, $t6 +/* 073840 7F03ED10 460021A1 */ cvt.d.s $f6, $f4 +/* 073844 7F03ED14 00002025 */ move $a0, $zero +/* 073848 7F03ED18 F7A600E0 */ sdc1 $f6, 0xe0($sp) +/* 07384C 7F03ED1C C4CA0018 */ lwc1 $f10, 0x18($a2) +/* 073850 7F03ED20 0004C900 */ sll $t9, $a0, 4 +/* 073854 7F03ED24 27AE0160 */ addiu $t6, $sp, 0x160 +/* 073858 7F03ED28 46005221 */ cvt.d.s $f8, $f10 +/* 07385C 7F03ED2C 032E3821 */ addu $a3, $t9, $t6 +/* 073860 7F03ED30 F7A800D8 */ sdc1 $f8, 0xd8($sp) +/* 073864 7F03ED34 C4C60028 */ lwc1 $f6, 0x28($a2) +/* 073868 7F03ED38 C4C40020 */ lwc1 $f4, 0x20($a2) +/* 07386C 7F03ED3C D7A800F0 */ ldc1 $f8, 0xf0($sp) +/* 073870 7F03ED40 460032A1 */ cvt.d.s $f10, $f6 +/* 073874 7F03ED44 C7A601E8 */ lwc1 $f6, 0x1e8($sp) +/* 073878 7F03ED48 F7AA00C8 */ sdc1 $f10, 0xc8($sp) +/* 07387C 7F03ED4C D7AA00E0 */ ldc1 $f10, 0xe0($sp) +/* 073880 7F03ED50 460024A1 */ cvt.d.s $f18, $f4 +/* 073884 7F03ED54 46204102 */ mul.d $f4, $f8, $f0 +/* 073888 7F03ED58 460030A1 */ cvt.d.s $f2, $f6 +/* 07388C 7F03ED5C F7AA0008 */ sdc1 $f10, 8($sp) +/* 073890 7F03ED60 F7A80000 */ sdc1 $f8, ($sp) +/* 073894 7F03ED64 46225182 */ mul.d $f6, $f10, $f2 +/* 073898 7F03ED68 C7AA01F0 */ lwc1 $f10, 0x1f0($sp) +/* 07389C 7F03ED6C 00005825 */ move $t3, $zero +/* 0738A0 7F03ED70 000BC900 */ sll $t9, $t3, 4 +/* 0738A4 7F03ED74 46005421 */ cvt.d.s $f16, $f10 +/* 0738A8 7F03ED78 F7A400A0 */ sdc1 $f4, 0xa0($sp) +/* 0738AC 7F03ED7C 46309282 */ mul.d $f10, $f18, $f16 +/* 0738B0 7F03ED80 F7A40010 */ sdc1 $f4, 0x10($sp) +/* 0738B4 7F03ED84 46262200 */ add.d $f8, $f4, $f6 +/* 0738B8 7F03ED88 F7A60098 */ sdc1 $f6, 0x98($sp) +/* 0738BC 7F03ED8C F7A60018 */ sdc1 $f6, 0x18($sp) +/* 0738C0 7F03ED90 27AE0160 */ addiu $t6, $sp, 0x160 +/* 0738C4 7F03ED94 F7A80038 */ sdc1 $f8, 0x38($sp) +/* 0738C8 7F03ED98 00001025 */ move $v0, $zero +/* 0738CC 7F03ED9C 462A4100 */ add.d $f4, $f8, $f10 +/* 0738D0 7F03EDA0 F7AA0090 */ sdc1 $f10, 0x90($sp) +/* 0738D4 7F03EDA4 27A50170 */ addiu $a1, $sp, 0x170 +/* 0738D8 7F03EDA8 24030001 */ li $v1, 1 +/* 0738DC 7F03EDAC F7A40160 */ sdc1 $f4, 0x160($sp) +/* 0738E0 7F03EDB0 D7A400E8 */ ldc1 $f4, 0xe8($sp) +/* 0738E4 7F03EDB4 032E6021 */ addu $t4, $t9, $t6 +/* 0738E8 7F03EDB8 27AD0130 */ addiu $t5, $sp, 0x130 +/* 0738EC 7F03EDBC 46202102 */ mul.d $f4, $f4, $f0 +/* 0738F0 7F03EDC0 F7A40088 */ sdc1 $f4, 0x88($sp) +/* 0738F4 7F03EDC4 D7A400D8 */ ldc1 $f4, 0xd8($sp) +/* 0738F8 7F03EDC8 46222102 */ mul.d $f4, $f4, $f2 +/* 0738FC 7F03EDCC F7A40080 */ sdc1 $f4, 0x80($sp) +/* 073900 7F03EDD0 D7A60080 */ ldc1 $f6, 0x80($sp) +/* 073904 7F03EDD4 D7A40088 */ ldc1 $f4, 0x88($sp) +/* 073908 7F03EDD8 46262100 */ add.d $f4, $f4, $f6 +/* 07390C 7F03EDDC D7A600C8 */ ldc1 $f6, 0xc8($sp) +/* 073910 7F03EDE0 F7A40078 */ sdc1 $f4, 0x78($sp) +/* 073914 7F03EDE4 46303102 */ mul.d $f4, $f6, $f16 +/* 073918 7F03EDE8 D7A60078 */ ldc1 $f6, 0x78($sp) +/* 07391C 7F03EDEC 46243180 */ add.d $f6, $f6, $f4 +/* 073920 7F03EDF0 F7A40070 */ sdc1 $f4, 0x70($sp) +/* 073924 7F03EDF4 C7A401F4 */ lwc1 $f4, 0x1f4($sp) +/* 073928 7F03EDF8 F7A60168 */ sdc1 $f6, 0x168($sp) +/* 07392C 7F03EDFC 460021A1 */ cvt.d.s $f6, $f4 +/* 073930 7F03EE00 F7A600A8 */ sdc1 $f6, 0xa8($sp) +/* 073934 7F03EE04 46269182 */ mul.d $f6, $f18, $f6 +/* 073938 7F03EE08 D7A400A8 */ ldc1 $f4, 0xa8($sp) +/* 07393C 7F03EE0C F7A60068 */ sdc1 $f6, 0x68($sp) +/* 073940 7F03EE10 46264180 */ add.d $f6, $f8, $f6 +/* 073944 7F03EE14 D7A800C8 */ ldc1 $f8, 0xc8($sp) +/* 073948 7F03EE18 46244302 */ mul.d $f12, $f8, $f4 +/* 07394C 7F03EE1C F7A60170 */ sdc1 $f6, 0x170($sp) +/* 073950 7F03EE20 D7A60078 */ ldc1 $f6, 0x78($sp) +/* 073954 7F03EE24 C7A401EC */ lwc1 $f4, 0x1ec($sp) +/* 073958 7F03EE28 46002021 */ cvt.d.s $f0, $f4 +/* 07395C 7F03EE2C 462C3200 */ add.d $f8, $f6, $f12 +/* 073960 7F03EE30 D7A60008 */ ldc1 $f6, 8($sp) +/* 073964 7F03EE34 46203382 */ mul.d $f14, $f6, $f0 +/* 073968 7F03EE38 F7A80178 */ sdc1 $f8, 0x178($sp) +/* 07396C 7F03EE3C D7A80010 */ ldc1 $f8, 0x10($sp) +/* 073970 7F03EE40 D7A600D8 */ ldc1 $f6, 0xd8($sp) +/* 073974 7F03EE44 46203402 */ mul.d $f16, $f6, $f0 +/* 073978 7F03EE48 462E4080 */ add.d $f2, $f8, $f14 +/* 07397C 7F03EE4C D7A80088 */ ldc1 $f8, 0x88($sp) +/* 073980 7F03EE50 F7AE0038 */ sdc1 $f14, 0x38($sp) +/* 073984 7F03EE54 462A1100 */ add.d $f4, $f2, $f10 +/* 073988 7F03EE58 46304480 */ add.d $f18, $f8, $f16 +/* 07398C 7F03EE5C F7A40180 */ sdc1 $f4, 0x180($sp) +/* 073990 7F03EE60 D7A40070 */ ldc1 $f4, 0x70($sp) +/* 073994 7F03EE64 D7A80068 */ ldc1 $f8, 0x68($sp) +/* 073998 7F03EE68 F7B20030 */ sdc1 $f18, 0x30($sp) +/* 07399C 7F03EE6C 46249180 */ add.d $f6, $f18, $f4 +/* 0739A0 7F03EE70 46281100 */ add.d $f4, $f2, $f8 +/* 0739A4 7F03EE74 F7A60188 */ sdc1 $f6, 0x188($sp) +/* 0739A8 7F03EE78 D7A60000 */ ldc1 $f6, ($sp) +/* 0739AC 7F03EE7C 462C9200 */ add.d $f8, $f18, $f12 +/* 0739B0 7F03EE80 F7A40190 */ sdc1 $f4, 0x190($sp) +/* 0739B4 7F03EE84 C7A401E4 */ lwc1 $f4, 0x1e4($sp) +/* 0739B8 7F03EE88 F7A80198 */ sdc1 $f8, 0x198($sp) +/* 0739BC 7F03EE8C 46002021 */ cvt.d.s $f0, $f4 +/* 0739C0 7F03EE90 D7A400E8 */ ldc1 $f4, 0xe8($sp) +/* 0739C4 7F03EE94 46203202 */ mul.d $f8, $f6, $f0 +/* 0739C8 7F03EE98 D7A60018 */ ldc1 $f6, 0x18($sp) +/* 0739CC 7F03EE9C 46202382 */ mul.d $f14, $f4, $f0 +/* 0739D0 7F03EEA0 F7A80088 */ sdc1 $f8, 0x88($sp) +/* 0739D4 7F03EEA4 46264080 */ add.d $f2, $f8, $f6 +/* 0739D8 7F03EEA8 D7A60080 */ ldc1 $f6, 0x80($sp) +/* 0739DC 7F03EEAC 462A1200 */ add.d $f8, $f2, $f10 +/* 0739E0 7F03EEB0 46267480 */ add.d $f18, $f14, $f6 +/* 0739E4 7F03EEB4 F7A801A0 */ sdc1 $f8, 0x1a0($sp) +/* 0739E8 7F03EEB8 D7A80070 */ ldc1 $f8, 0x70($sp) +/* 0739EC 7F03EEBC D7A60068 */ ldc1 $f6, 0x68($sp) +/* 0739F0 7F03EEC0 46289100 */ add.d $f4, $f18, $f8 +/* 0739F4 7F03EEC4 46261200 */ add.d $f8, $f2, $f6 +/* 0739F8 7F03EEC8 D7A60088 */ ldc1 $f6, 0x88($sp) +/* 0739FC 7F03EECC F7A401A8 */ sdc1 $f4, 0x1a8($sp) +/* 073A00 7F03EED0 462C9100 */ add.d $f4, $f18, $f12 +/* 073A04 7F03EED4 F7A801B0 */ sdc1 $f8, 0x1b0($sp) +/* 073A08 7F03EED8 D7A80038 */ ldc1 $f8, 0x38($sp) +/* 073A0C 7F03EEDC 46307080 */ add.d $f2, $f14, $f16 +/* 073A10 7F03EEE0 F7A401B8 */ sdc1 $f4, 0x1b8($sp) +/* 073A14 7F03EEE4 46283000 */ add.d $f0, $f6, $f8 +/* 073A18 7F03EEE8 D7A60070 */ ldc1 $f6, 0x70($sp) +/* 073A1C 7F03EEEC 462A0100 */ add.d $f4, $f0, $f10 +/* 073A20 7F03EEF0 D7AA0068 */ ldc1 $f10, 0x68($sp) +/* 073A24 7F03EEF4 46261200 */ add.d $f8, $f2, $f6 +/* 073A28 7F03EEF8 F7A401C0 */ sdc1 $f4, 0x1c0($sp) +/* 073A2C 7F03EEFC 462C1180 */ add.d $f6, $f2, $f12 +/* 073A30 7F03EF00 F7A801C8 */ sdc1 $f8, 0x1c8($sp) +/* 073A34 7F03EF04 462A0100 */ add.d $f4, $f0, $f10 +/* 073A38 7F03EF08 F7A601D8 */ sdc1 $f6, 0x1d8($sp) +/* 073A3C 7F03EF0C F7A401D0 */ sdc1 $f4, 0x1d0($sp) +/* 073A40 7F03EF10 D5200000 */ ldc1 $f0, ($t1) +.L7F03EF14: +/* 073A44 7F03EF14 D4A20000 */ ldc1 $f2, ($a1) +/* 073A48 7F03EF18 00037900 */ sll $t7, $v1, 4 +/* 073A4C 7F03EF1C 27B80160 */ addiu $t8, $sp, 0x160 +/* 073A50 7F03EF20 4620103C */ c.lt.d $f2, $f0 +/* 073A54 7F03EF24 00000000 */ nop +/* 073A58 7F03EF28 4503000C */ bc1tl .L7F03EF5C +/* 073A5C 7F03EF2C 01F84821 */ addu $t1, $t7, $t8 +/* 073A60 7F03EF30 46201032 */ c.eq.d $f2, $f0 +/* 073A64 7F03EF34 00000000 */ nop +/* 073A68 7F03EF38 4502000B */ bc1fl .L7F03EF68 +/* 073A6C 7F03EF3C 24630001 */ addiu $v1, $v1, 1 +/* 073A70 7F03EF40 D4A80008 */ ldc1 $f8, 8($a1) +/* 073A74 7F03EF44 D52A0008 */ ldc1 $f10, 8($t1) +/* 073A78 7F03EF48 462A403C */ c.lt.d $f8, $f10 +/* 073A7C 7F03EF4C 00000000 */ nop +/* 073A80 7F03EF50 45020005 */ bc1fl .L7F03EF68 +/* 073A84 7F03EF54 24630001 */ addiu $v1, $v1, 1 +/* 073A88 7F03EF58 01F84821 */ addu $t1, $t7, $t8 +.L7F03EF5C: +/* 073A8C 7F03EF5C D5200000 */ ldc1 $f0, ($t1) +/* 073A90 7F03EF60 00601025 */ move $v0, $v1 +/* 073A94 7F03EF64 24630001 */ addiu $v1, $v1, 1 +.L7F03EF68: +/* 073A98 7F03EF68 28610008 */ slti $at, $v1, 8 +/* 073A9C 7F03EF6C 1420FFE9 */ bnez $at, .L7F03EF14 +/* 073AA0 7F03EF70 24A50010 */ addiu $a1, $a1, 0x10 +/* 073AA4 7F03EF74 24030001 */ li $v1, 1 +/* 073AA8 7F03EF78 27A50170 */ addiu $a1, $sp, 0x170 +.L7F03EF7C: +/* 073AAC 7F03EF7C D50C0008 */ ldc1 $f12, 8($t0) +/* 073AB0 7F03EF80 D4A20008 */ ldc1 $f2, 8($a1) +/* 073AB4 7F03EF84 00037900 */ sll $t7, $v1, 4 +/* 073AB8 7F03EF88 27B80160 */ addiu $t8, $sp, 0x160 +/* 073ABC 7F03EF8C 4622603C */ c.lt.d $f12, $f2 +/* 073AC0 7F03EF90 00000000 */ nop +/* 073AC4 7F03EF94 4503000C */ bc1tl .L7F03EFC8 +/* 073AC8 7F03EF98 00605025 */ move $t2, $v1 +/* 073ACC 7F03EF9C 462C1032 */ c.eq.d $f2, $f12 +/* 073AD0 7F03EFA0 00000000 */ nop +/* 073AD4 7F03EFA4 4502000A */ bc1fl .L7F03EFD0 +/* 073AD8 7F03EFA8 24630001 */ addiu $v1, $v1, 1 +/* 073ADC 7F03EFAC D4A40000 */ ldc1 $f4, ($a1) +/* 073AE0 7F03EFB0 D5060000 */ ldc1 $f6, ($t0) +/* 073AE4 7F03EFB4 4626203C */ c.lt.d $f4, $f6 +/* 073AE8 7F03EFB8 00000000 */ nop +/* 073AEC 7F03EFBC 45020004 */ bc1fl .L7F03EFD0 +/* 073AF0 7F03EFC0 24630001 */ addiu $v1, $v1, 1 +/* 073AF4 7F03EFC4 00605025 */ move $t2, $v1 +.L7F03EFC8: +/* 073AF8 7F03EFC8 01F84021 */ addu $t0, $t7, $t8 +/* 073AFC 7F03EFCC 24630001 */ addiu $v1, $v1, 1 +.L7F03EFD0: +/* 073B00 7F03EFD0 28610008 */ slti $at, $v1, 8 +/* 073B04 7F03EFD4 1420FFE9 */ bnez $at, .L7F03EF7C +/* 073B08 7F03EFD8 24A50010 */ addiu $a1, $a1, 0x10 +/* 073B0C 7F03EFDC 24030001 */ li $v1, 1 +/* 073B10 7F03EFE0 27A50170 */ addiu $a1, $sp, 0x170 +.L7F03EFE4: +/* 073B14 7F03EFE4 D4F00000 */ ldc1 $f16, ($a3) +/* 073B18 7F03EFE8 D4A20000 */ ldc1 $f2, ($a1) +/* 073B1C 7F03EFEC 00037900 */ sll $t7, $v1, 4 +/* 073B20 7F03EFF0 27B80160 */ addiu $t8, $sp, 0x160 +/* 073B24 7F03EFF4 4622803C */ c.lt.d $f16, $f2 +/* 073B28 7F03EFF8 00000000 */ nop +/* 073B2C 7F03EFFC 4503000C */ bc1tl .L7F03F030 +/* 073B30 7F03F000 00602025 */ move $a0, $v1 +/* 073B34 7F03F004 46301032 */ c.eq.d $f2, $f16 +/* 073B38 7F03F008 00000000 */ nop +/* 073B3C 7F03F00C 4502000A */ bc1fl .L7F03F038 +/* 073B40 7F03F010 24630001 */ addiu $v1, $v1, 1 +/* 073B44 7F03F014 D4E80008 */ ldc1 $f8, 8($a3) +/* 073B48 7F03F018 D4AA0008 */ ldc1 $f10, 8($a1) +/* 073B4C 7F03F01C 462A403C */ c.lt.d $f8, $f10 +/* 073B50 7F03F020 00000000 */ nop +/* 073B54 7F03F024 45020004 */ bc1fl .L7F03F038 +/* 073B58 7F03F028 24630001 */ addiu $v1, $v1, 1 +/* 073B5C 7F03F02C 00602025 */ move $a0, $v1 +.L7F03F030: +/* 073B60 7F03F030 01F83821 */ addu $a3, $t7, $t8 +/* 073B64 7F03F034 24630001 */ addiu $v1, $v1, 1 +.L7F03F038: +/* 073B68 7F03F038 28610008 */ slti $at, $v1, 8 +/* 073B6C 7F03F03C 1420FFE9 */ bnez $at, .L7F03EFE4 +/* 073B70 7F03F040 24A50010 */ addiu $a1, $a1, 0x10 +/* 073B74 7F03F044 24030001 */ li $v1, 1 +/* 073B78 7F03F048 27A50170 */ addiu $a1, $sp, 0x170 +.L7F03F04C: +/* 073B7C 7F03F04C D4A20008 */ ldc1 $f2, 8($a1) +/* 073B80 7F03F050 D58C0008 */ ldc1 $f12, 8($t4) +/* 073B84 7F03F054 00037900 */ sll $t7, $v1, 4 +/* 073B88 7F03F058 27B80160 */ addiu $t8, $sp, 0x160 +/* 073B8C 7F03F05C 462C103C */ c.lt.d $f2, $f12 +/* 073B90 7F03F060 00000000 */ nop +/* 073B94 7F03F064 4503000C */ bc1tl .L7F03F098 +/* 073B98 7F03F068 00605825 */ move $t3, $v1 +/* 073B9C 7F03F06C 462C1032 */ c.eq.d $f2, $f12 +/* 073BA0 7F03F070 00000000 */ nop +/* 073BA4 7F03F074 4502000A */ bc1fl .L7F03F0A0 +/* 073BA8 7F03F078 24630001 */ addiu $v1, $v1, 1 +/* 073BAC 7F03F07C D5840000 */ ldc1 $f4, ($t4) +/* 073BB0 7F03F080 D4A60000 */ ldc1 $f6, ($a1) +/* 073BB4 7F03F084 4626203C */ c.lt.d $f4, $f6 +/* 073BB8 7F03F088 00000000 */ nop +/* 073BBC 7F03F08C 45020004 */ bc1fl .L7F03F0A0 +/* 073BC0 7F03F090 24630001 */ addiu $v1, $v1, 1 +/* 073BC4 7F03F094 00605825 */ move $t3, $v1 +.L7F03F098: +/* 073BC8 7F03F098 01F86021 */ addu $t4, $t7, $t8 +/* 073BCC 7F03F09C 24630001 */ addiu $v1, $v1, 1 +.L7F03F0A0: +/* 073BD0 7F03F0A0 28610008 */ slti $at, $v1, 8 +/* 073BD4 7F03F0A4 1420FFE9 */ bnez $at, .L7F03F04C +/* 073BD8 7F03F0A8 24A50010 */ addiu $a1, $a1, 0x10 +/* 073BDC 7F03F0AC 00002825 */ move $a1, $zero +/* 073BE0 7F03F0B0 00001825 */ move $v1, $zero +.L7F03F0B4: +/* 073BE4 7F03F0B4 5062000B */ beql $v1, $v0, .L7F03F0E4 +/* 073BE8 7F03F0B8 24630001 */ addiu $v1, $v1, 1 +/* 073BEC 7F03F0BC 50640009 */ beql $v1, $a0, .L7F03F0E4 +/* 073BF0 7F03F0C0 24630001 */ addiu $v1, $v1, 1 +/* 073BF4 7F03F0C4 506A0007 */ beql $v1, $t2, .L7F03F0E4 +/* 073BF8 7F03F0C8 24630001 */ addiu $v1, $v1, 1 +/* 073BFC 7F03F0CC 106B0004 */ beq $v1, $t3, .L7F03F0E0 +/* 073C00 7F03F0D0 0005C880 */ sll $t9, $a1, 2 +/* 073C04 7F03F0D4 01B97021 */ addu $t6, $t5, $t9 +/* 073C08 7F03F0D8 ADC30000 */ sw $v1, ($t6) +/* 073C0C 7F03F0DC 24A50001 */ addiu $a1, $a1, 1 +.L7F03F0E0: +/* 073C10 7F03F0E0 24630001 */ addiu $v1, $v1, 1 +.L7F03F0E4: +/* 073C14 7F03F0E4 28610008 */ slti $at, $v1, 8 +/* 073C18 7F03F0E8 1420FFF2 */ bnez $at, .L7F03F0B4 +/* 073C1C 7F03F0EC 00000000 */ nop +/* 073C20 7F03F0F0 46200220 */ cvt.s.d $f8, $f0 +/* 073C24 7F03F0F4 8FAA01FC */ lw $t2, 0x1fc($sp) +/* 073C28 7F03F0F8 24050001 */ li $a1, 1 +/* 073C2C 7F03F0FC 27A20130 */ addiu $v0, $sp, 0x130 +/* 073C30 7F03F100 E5480000 */ swc1 $f8, ($t2) +/* 073C34 7F03F104 D52A0008 */ ldc1 $f10, 8($t1) +/* 073C38 7F03F108 27AD0140 */ addiu $t5, $sp, 0x140 +/* 073C3C 7F03F10C 27A40160 */ addiu $a0, $sp, 0x160 +/* 073C40 7F03F110 46205120 */ cvt.s.d $f4, $f10 +/* 073C44 7F03F114 E5440004 */ swc1 $f4, 4($t2) +/* 073C48 7F03F118 D5280000 */ ldc1 $f8, ($t1) +/* 073C4C 7F03F11C D5260008 */ ldc1 $f6, 8($t1) +/* 073C50 7F03F120 D5820000 */ ldc1 $f2, ($t4) +/* 073C54 7F03F124 D58C0008 */ ldc1 $f12, 8($t4) +/* 073C58 7F03F128 46224401 */ sub.d $f16, $f8, $f2 +/* 073C5C 7F03F12C 462C3381 */ sub.d $f14, $f6, $f12 +/* 073C60 7F03F130 8C430000 */ lw $v1, ($v0) +.L7F03F134: +/* 073C64 7F03F134 00037900 */ sll $t7, $v1, 4 +/* 073C68 7F03F138 008F5821 */ addu $t3, $a0, $t7 +/* 073C6C 7F03F13C D5600000 */ ldc1 $f0, ($t3) +/* 073C70 7F03F140 D5660008 */ ldc1 $f6, 8($t3) +/* 073C74 7F03F144 46220281 */ sub.d $f10, $f0, $f2 +/* 073C78 7F03F148 462C3201 */ sub.d $f8, $f6, $f12 +/* 073C7C 7F03F14C 462E5102 */ mul.d $f4, $f10, $f14 +/* 073C80 7F03F150 00000000 */ nop +/* 073C84 7F03F154 46304282 */ mul.d $f10, $f8, $f16 +/* 073C88 7F03F158 462A203C */ c.lt.d $f4, $f10 +/* 073C8C 7F03F15C 00000000 */ nop +/* 073C90 7F03F160 4500000A */ bc1f .L7F03F18C +/* 073C94 7F03F164 00000000 */ nop +/* 073C98 7F03F168 462001A0 */ cvt.s.d $f6, $f0 +/* 073C9C 7F03F16C 25420008 */ addiu $v0, $t2, 8 +/* 073CA0 7F03F170 24050002 */ li $a1, 2 +/* 073CA4 7F03F174 E4460000 */ swc1 $f6, ($v0) +/* 073CA8 7F03F178 D5680008 */ ldc1 $f8, 8($t3) +/* 073CAC 7F03F17C 46204120 */ cvt.s.d $f4, $f8 +/* 073CB0 7F03F180 E4440004 */ swc1 $f4, 4($v0) +/* 073CB4 7F03F184 10000005 */ b .L7F03F19C +/* 073CB8 7F03F188 D5820000 */ ldc1 $f2, ($t4) +.L7F03F18C: +/* 073CBC 7F03F18C 24420004 */ addiu $v0, $v0, 4 +/* 073CC0 7F03F190 004D082B */ sltu $at, $v0, $t5 +/* 073CC4 7F03F194 5420FFE7 */ bnezl $at, .L7F03F134 +/* 073CC8 7F03F198 8C430000 */ lw $v1, ($v0) +.L7F03F19C: +/* 073CCC 7F03F19C 462012A0 */ cvt.s.d $f10, $f2 +/* 073CD0 7F03F1A0 0005C0C0 */ sll $t8, $a1, 3 +/* 073CD4 7F03F1A4 01585821 */ addu $t3, $t2, $t8 +/* 073CD8 7F03F1A8 256B0008 */ addiu $t3, $t3, 8 +/* 073CDC 7F03F1AC E56AFFF8 */ swc1 $f10, -8($t3) +/* 073CE0 7F03F1B0 D5860008 */ ldc1 $f6, 8($t4) +/* 073CE4 7F03F1B4 24A50001 */ addiu $a1, $a1, 1 +/* 073CE8 7F03F1B8 27A20130 */ addiu $v0, $sp, 0x130 +/* 073CEC 7F03F1BC 46203220 */ cvt.s.d $f8, $f6 +/* 073CF0 7F03F1C0 27AD0140 */ addiu $t5, $sp, 0x140 +/* 073CF4 7F03F1C4 E568FFFC */ swc1 $f8, -4($t3) +/* 073CF8 7F03F1C8 D58A0000 */ ldc1 $f10, ($t4) +/* 073CFC 7F03F1CC D5840008 */ ldc1 $f4, 8($t4) +/* 073D00 7F03F1D0 D4E00008 */ ldc1 $f0, 8($a3) +/* 073D04 7F03F1D4 D4F00000 */ ldc1 $f16, ($a3) +/* 073D08 7F03F1D8 46202301 */ sub.d $f12, $f4, $f0 +/* 073D0C 7F03F1DC 46305381 */ sub.d $f14, $f10, $f16 +/* 073D10 7F03F1E0 8C430000 */ lw $v1, ($v0) +.L7F03F1E4: +/* 073D14 7F03F1E4 0003C900 */ sll $t9, $v1, 4 +/* 073D18 7F03F1E8 00996021 */ addu $t4, $a0, $t9 +/* 073D1C 7F03F1EC D5820000 */ ldc1 $f2, ($t4) +/* 073D20 7F03F1F0 D5840008 */ ldc1 $f4, 8($t4) +/* 073D24 7F03F1F4 46301181 */ sub.d $f6, $f2, $f16 +/* 073D28 7F03F1F8 46202281 */ sub.d $f10, $f4, $f0 +/* 073D2C 7F03F1FC 462C3202 */ mul.d $f8, $f6, $f12 +/* 073D30 7F03F200 00000000 */ nop +/* 073D34 7F03F204 462E5182 */ mul.d $f6, $f10, $f14 +/* 073D38 7F03F208 4626403C */ c.lt.d $f8, $f6 +/* 073D3C 7F03F20C 00000000 */ nop +/* 073D40 7F03F210 4500000A */ bc1f .L7F03F23C +/* 073D44 7F03F214 00000000 */ nop +/* 073D48 7F03F218 46201120 */ cvt.s.d $f4, $f2 +/* 073D4C 7F03F21C 24A50001 */ addiu $a1, $a1, 1 +/* 073D50 7F03F220 256B0008 */ addiu $t3, $t3, 8 +/* 073D54 7F03F224 E564FFF8 */ swc1 $f4, -8($t3) +/* 073D58 7F03F228 D58A0008 */ ldc1 $f10, 8($t4) +/* 073D5C 7F03F22C 46205220 */ cvt.s.d $f8, $f10 +/* 073D60 7F03F230 E568FFFC */ swc1 $f8, -4($t3) +/* 073D64 7F03F234 10000005 */ b .L7F03F24C +/* 073D68 7F03F238 D4F00000 */ ldc1 $f16, ($a3) +.L7F03F23C: +/* 073D6C 7F03F23C 24420004 */ addiu $v0, $v0, 4 +/* 073D70 7F03F240 004D082B */ sltu $at, $v0, $t5 +/* 073D74 7F03F244 5420FFE7 */ bnezl $at, .L7F03F1E4 +/* 073D78 7F03F248 8C430000 */ lw $v1, ($v0) +.L7F03F24C: +/* 073D7C 7F03F24C 462081A0 */ cvt.s.d $f6, $f16 +/* 073D80 7F03F250 24A50001 */ addiu $a1, $a1, 1 +/* 073D84 7F03F254 256B0008 */ addiu $t3, $t3, 8 +/* 073D88 7F03F258 27A20130 */ addiu $v0, $sp, 0x130 +/* 073D8C 7F03F25C E566FFF8 */ swc1 $f6, -8($t3) +/* 073D90 7F03F260 D4E40008 */ ldc1 $f4, 8($a3) +/* 073D94 7F03F264 27AC0140 */ addiu $t4, $sp, 0x140 +/* 073D98 7F03F268 462022A0 */ cvt.s.d $f10, $f4 +/* 073D9C 7F03F26C E56AFFFC */ swc1 $f10, -4($t3) +/* 073DA0 7F03F270 D4E60000 */ ldc1 $f6, ($a3) +/* 073DA4 7F03F274 D4E80008 */ ldc1 $f8, 8($a3) +/* 073DA8 7F03F278 D50E0000 */ ldc1 $f14, ($t0) +/* 073DAC 7F03F27C D50C0008 */ ldc1 $f12, 8($t0) +/* 073DB0 7F03F280 462E3481 */ sub.d $f18, $f6, $f14 +/* 073DB4 7F03F284 462C4081 */ sub.d $f2, $f8, $f12 +/* 073DB8 7F03F288 8C430000 */ lw $v1, ($v0) +.L7F03F28C: +/* 073DBC 7F03F28C 00037100 */ sll $t6, $v1, 4 +/* 073DC0 7F03F290 008E3821 */ addu $a3, $a0, $t6 +/* 073DC4 7F03F294 D4E00000 */ ldc1 $f0, ($a3) +/* 073DC8 7F03F298 D4E80008 */ ldc1 $f8, 8($a3) +/* 073DCC 7F03F29C 462E0101 */ sub.d $f4, $f0, $f14 +/* 073DD0 7F03F2A0 462C4181 */ sub.d $f6, $f8, $f12 +/* 073DD4 7F03F2A4 46222282 */ mul.d $f10, $f4, $f2 +/* 073DD8 7F03F2A8 00000000 */ nop +/* 073DDC 7F03F2AC 46323102 */ mul.d $f4, $f6, $f18 +/* 073DE0 7F03F2B0 4624503C */ c.lt.d $f10, $f4 +/* 073DE4 7F03F2B4 00000000 */ nop +/* 073DE8 7F03F2B8 4500000A */ bc1f .L7F03F2E4 +/* 073DEC 7F03F2BC 00000000 */ nop +/* 073DF0 7F03F2C0 46200220 */ cvt.s.d $f8, $f0 +/* 073DF4 7F03F2C4 24A50001 */ addiu $a1, $a1, 1 +/* 073DF8 7F03F2C8 256B0008 */ addiu $t3, $t3, 8 +/* 073DFC 7F03F2CC E568FFF8 */ swc1 $f8, -8($t3) +/* 073E00 7F03F2D0 D4E60008 */ ldc1 $f6, 8($a3) +/* 073E04 7F03F2D4 462032A0 */ cvt.s.d $f10, $f6 +/* 073E08 7F03F2D8 E56AFFFC */ swc1 $f10, -4($t3) +/* 073E0C 7F03F2DC 10000005 */ b .L7F03F2F4 +/* 073E10 7F03F2E0 D50E0000 */ ldc1 $f14, ($t0) +.L7F03F2E4: +/* 073E14 7F03F2E4 24420004 */ addiu $v0, $v0, 4 +/* 073E18 7F03F2E8 004C082B */ sltu $at, $v0, $t4 +/* 073E1C 7F03F2EC 5420FFE7 */ bnezl $at, .L7F03F28C +/* 073E20 7F03F2F0 8C430000 */ lw $v1, ($v0) +.L7F03F2F4: +/* 073E24 7F03F2F4 46207120 */ cvt.s.d $f4, $f14 +/* 073E28 7F03F2F8 24A50001 */ addiu $a1, $a1, 1 +/* 073E2C 7F03F2FC 256B0008 */ addiu $t3, $t3, 8 +/* 073E30 7F03F300 27A20130 */ addiu $v0, $sp, 0x130 +/* 073E34 7F03F304 E564FFF8 */ swc1 $f4, -8($t3) +/* 073E38 7F03F308 D5080008 */ ldc1 $f8, 8($t0) +/* 073E3C 7F03F30C 462041A0 */ cvt.s.d $f6, $f8 +/* 073E40 7F03F310 E566FFFC */ swc1 $f6, -4($t3) +/* 073E44 7F03F314 D5040000 */ ldc1 $f4, ($t0) +/* 073E48 7F03F318 D50A0008 */ ldc1 $f10, 8($t0) +/* 073E4C 7F03F31C D5220008 */ ldc1 $f2, 8($t1) +/* 073E50 7F03F320 D5200000 */ ldc1 $f0, ($t1) +/* 073E54 7F03F324 27A80140 */ addiu $t0, $sp, 0x140 +/* 073E58 7F03F328 46225401 */ sub.d $f16, $f10, $f2 +/* 073E5C 7F03F32C 46202481 */ sub.d $f18, $f4, $f0 +/* 073E60 7F03F330 8C430000 */ lw $v1, ($v0) +.L7F03F334: +/* 073E64 7F03F334 00037900 */ sll $t7, $v1, 4 +/* 073E68 7F03F338 008F3821 */ addu $a3, $a0, $t7 +/* 073E6C 7F03F33C D4EC0000 */ ldc1 $f12, ($a3) +/* 073E70 7F03F340 D4EA0008 */ ldc1 $f10, 8($a3) +/* 073E74 7F03F344 46206201 */ sub.d $f8, $f12, $f0 +/* 073E78 7F03F348 46225101 */ sub.d $f4, $f10, $f2 +/* 073E7C 7F03F34C 46304182 */ mul.d $f6, $f8, $f16 +/* 073E80 7F03F350 00000000 */ nop +/* 073E84 7F03F354 46322202 */ mul.d $f8, $f4, $f18 +/* 073E88 7F03F358 4628303C */ c.lt.d $f6, $f8 +/* 073E8C 7F03F35C 00000000 */ nop +/* 073E90 7F03F360 45000009 */ bc1f .L7F03F388 +/* 073E94 7F03F364 00000000 */ nop +/* 073E98 7F03F368 462062A0 */ cvt.s.d $f10, $f12 +/* 073E9C 7F03F36C 24A50001 */ addiu $a1, $a1, 1 +/* 073EA0 7F03F370 00001825 */ move $v1, $zero +/* 073EA4 7F03F374 E56A0000 */ swc1 $f10, ($t3) +/* 073EA8 7F03F378 D4E40008 */ ldc1 $f4, 8($a3) +/* 073EAC 7F03F37C 462021A0 */ cvt.s.d $f6, $f4 +/* 073EB0 7F03F380 10000006 */ b .L7F03F39C +/* 073EB4 7F03F384 E5660004 */ swc1 $f6, 4($t3) +.L7F03F388: +/* 073EB8 7F03F388 24420004 */ addiu $v0, $v0, 4 +/* 073EBC 7F03F38C 0048082B */ sltu $at, $v0, $t0 +/* 073EC0 7F03F390 5420FFE8 */ bnezl $at, .L7F03F334 +/* 073EC4 7F03F394 8C430000 */ lw $v1, ($v0) +/* 073EC8 7F03F398 00001825 */ move $v1, $zero +.L7F03F39C: +/* 073ECC 7F03F39C 8FB80200 */ lw $t8, 0x200($sp) +/* 073ED0 7F03F3A0 18A00065 */ blez $a1, .L7F03F538 +/* 073ED4 7F03F3A4 AF050000 */ sw $a1, ($t8) +/* 073ED8 7F03F3A8 30A70003 */ andi $a3, $a1, 3 +/* 073EDC 7F03F3AC 10E0001A */ beqz $a3, .L7F03F418 +/* 073EE0 7F03F3B0 00E02025 */ move $a0, $a3 +/* 073EE4 7F03F3B4 0003C8C0 */ sll $t9, $v1, 3 +/* 073EE8 7F03F3B8 01591021 */ addu $v0, $t2, $t9 +/* 073EEC 7F03F3BC 24630001 */ addiu $v1, $v1, 1 +/* 073EF0 7F03F3C0 1083000C */ beq $a0, $v1, .L7F03F3F4 +/* 073EF4 7F03F3C4 C4520000 */ lwc1 $f18, ($v0) +.L7F03F3C8: +/* 073EF8 7F03F3C8 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 073EFC 7F03F3CC C44E0004 */ lwc1 $f14, 4($v0) +/* 073F00 7F03F3D0 24630001 */ addiu $v1, $v1, 1 +/* 073F04 7F03F3D4 46109400 */ add.s $f16, $f18, $f16 +/* 073F08 7F03F3D8 C4520008 */ lwc1 $f18, 8($v0) +/* 073F0C 7F03F3DC 24420008 */ addiu $v0, $v0, 8 +/* 073F10 7F03F3E0 E450FFF8 */ swc1 $f16, -8($v0) +/* 073F14 7F03F3E4 C4D00038 */ lwc1 $f16, 0x38($a2) +/* 073F18 7F03F3E8 46107400 */ add.s $f16, $f14, $f16 +/* 073F1C 7F03F3EC 1483FFF6 */ bne $a0, $v1, .L7F03F3C8 +/* 073F20 7F03F3F0 E450FFFC */ swc1 $f16, -4($v0) +.L7F03F3F4: +/* 073F24 7F03F3F4 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 073F28 7F03F3F8 C44E0004 */ lwc1 $f14, 4($v0) +/* 073F2C 7F03F3FC 24420008 */ addiu $v0, $v0, 8 +/* 073F30 7F03F400 46109400 */ add.s $f16, $f18, $f16 +/* 073F34 7F03F404 E450FFF8 */ swc1 $f16, -8($v0) +/* 073F38 7F03F408 C4D00038 */ lwc1 $f16, 0x38($a2) +/* 073F3C 7F03F40C 46107400 */ add.s $f16, $f14, $f16 +/* 073F40 7F03F410 E450FFFC */ swc1 $f16, -4($v0) +/* 073F44 7F03F414 10650048 */ beq $v1, $a1, .L7F03F538 +.L7F03F418: +/* 073F48 7F03F418 000370C0 */ sll $t6, $v1, 3 +/* 073F4C 7F03F41C 000578C0 */ sll $t7, $a1, 3 +/* 073F50 7F03F420 01EA2021 */ addu $a0, $t7, $t2 +/* 073F54 7F03F424 014E1021 */ addu $v0, $t2, $t6 +/* 073F58 7F03F428 24420020 */ addiu $v0, $v0, 0x20 +/* 073F5C 7F03F42C 10440023 */ beq $v0, $a0, .L7F03F4BC +/* 073F60 7F03F430 C452FFE0 */ lwc1 $f18, -0x20($v0) +.L7F03F434: +/* 073F64 7F03F434 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 073F68 7F03F438 C44EFFE4 */ lwc1 $f14, -0x1c($v0) +/* 073F6C 7F03F43C C44CFFE8 */ lwc1 $f12, -0x18($v0) +/* 073F70 7F03F440 46109400 */ add.s $f16, $f18, $f16 +/* 073F74 7F03F444 C44AFFEC */ lwc1 $f10, -0x14($v0) +/* 073F78 7F03F448 C448FFF0 */ lwc1 $f8, -0x10($v0) +/* 073F7C 7F03F44C C446FFF4 */ lwc1 $f6, -0xc($v0) +/* 073F80 7F03F450 E450FFE0 */ swc1 $f16, -0x20($v0) +/* 073F84 7F03F454 C4D00038 */ lwc1 $f16, 0x38($a2) +/* 073F88 7F03F458 C444FFF8 */ lwc1 $f4, -8($v0) +/* 073F8C 7F03F45C C442FFFC */ lwc1 $f2, -4($v0) +/* 073F90 7F03F460 46107400 */ add.s $f16, $f14, $f16 +/* 073F94 7F03F464 C4520000 */ lwc1 $f18, ($v0) +/* 073F98 7F03F468 24420020 */ addiu $v0, $v0, 0x20 +/* 073F9C 7F03F46C E450FFC4 */ swc1 $f16, -0x3c($v0) +/* 073FA0 7F03F470 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 073FA4 7F03F474 46106400 */ add.s $f16, $f12, $f16 +/* 073FA8 7F03F478 E450FFC8 */ swc1 $f16, -0x38($v0) +/* 073FAC 7F03F47C C4D00038 */ lwc1 $f16, 0x38($a2) +/* 073FB0 7F03F480 46105400 */ add.s $f16, $f10, $f16 +/* 073FB4 7F03F484 E450FFCC */ swc1 $f16, -0x34($v0) +/* 073FB8 7F03F488 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 073FBC 7F03F48C 46104400 */ add.s $f16, $f8, $f16 +/* 073FC0 7F03F490 E450FFD0 */ swc1 $f16, -0x30($v0) +/* 073FC4 7F03F494 C4D00038 */ lwc1 $f16, 0x38($a2) +/* 073FC8 7F03F498 46103400 */ add.s $f16, $f6, $f16 +/* 073FCC 7F03F49C E450FFD4 */ swc1 $f16, -0x2c($v0) +/* 073FD0 7F03F4A0 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 073FD4 7F03F4A4 46102400 */ add.s $f16, $f4, $f16 +/* 073FD8 7F03F4A8 E450FFD8 */ swc1 $f16, -0x28($v0) +/* 073FDC 7F03F4AC C4D00038 */ lwc1 $f16, 0x38($a2) +/* 073FE0 7F03F4B0 46101400 */ add.s $f16, $f2, $f16 +/* 073FE4 7F03F4B4 1444FFDF */ bne $v0, $a0, .L7F03F434 +/* 073FE8 7F03F4B8 E450FFDC */ swc1 $f16, -0x24($v0) +.L7F03F4BC: +/* 073FEC 7F03F4BC C4D00030 */ lwc1 $f16, 0x30($a2) +/* 073FF0 7F03F4C0 C44EFFE4 */ lwc1 $f14, -0x1c($v0) +/* 073FF4 7F03F4C4 C44CFFE8 */ lwc1 $f12, -0x18($v0) +/* 073FF8 7F03F4C8 46109400 */ add.s $f16, $f18, $f16 +/* 073FFC 7F03F4CC C44AFFEC */ lwc1 $f10, -0x14($v0) +/* 074000 7F03F4D0 C448FFF0 */ lwc1 $f8, -0x10($v0) +/* 074004 7F03F4D4 C446FFF4 */ lwc1 $f6, -0xc($v0) +/* 074008 7F03F4D8 E450FFE0 */ swc1 $f16, -0x20($v0) +/* 07400C 7F03F4DC C4D00038 */ lwc1 $f16, 0x38($a2) +/* 074010 7F03F4E0 C444FFF8 */ lwc1 $f4, -8($v0) +/* 074014 7F03F4E4 C442FFFC */ lwc1 $f2, -4($v0) +/* 074018 7F03F4E8 46107400 */ add.s $f16, $f14, $f16 +/* 07401C 7F03F4EC E450FFE4 */ swc1 $f16, -0x1c($v0) +/* 074020 7F03F4F0 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 074024 7F03F4F4 46106400 */ add.s $f16, $f12, $f16 +/* 074028 7F03F4F8 E450FFE8 */ swc1 $f16, -0x18($v0) +/* 07402C 7F03F4FC C4D00038 */ lwc1 $f16, 0x38($a2) +/* 074030 7F03F500 46105400 */ add.s $f16, $f10, $f16 +/* 074034 7F03F504 E450FFEC */ swc1 $f16, -0x14($v0) +/* 074038 7F03F508 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 07403C 7F03F50C 46104400 */ add.s $f16, $f8, $f16 +/* 074040 7F03F510 E450FFF0 */ swc1 $f16, -0x10($v0) +/* 074044 7F03F514 C4D00038 */ lwc1 $f16, 0x38($a2) +/* 074048 7F03F518 46103400 */ add.s $f16, $f6, $f16 +/* 07404C 7F03F51C E450FFF4 */ swc1 $f16, -0xc($v0) +/* 074050 7F03F520 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 074054 7F03F524 46102400 */ add.s $f16, $f4, $f16 +/* 074058 7F03F528 E450FFF8 */ swc1 $f16, -8($v0) +/* 07405C 7F03F52C C4D00038 */ lwc1 $f16, 0x38($a2) +/* 074060 7F03F530 46101400 */ add.s $f16, $f2, $f16 +/* 074064 7F03F534 E450FFFC */ swc1 $f16, -4($v0) +.L7F03F538: +/* 074068 7F03F538 03E00008 */ jr $ra +/* 07406C 7F03F53C 27BD01E0 */ addiu $sp, $sp, 0x1e0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03F540(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03F540 +/* 074070 7F03F540 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 074074 7F03F544 AFBF002C */ sw $ra, 0x2c($sp) +/* 074078 7F03F548 AFA60038 */ sw $a2, 0x38($sp) +/* 07407C 7F03F54C AFA7003C */ sw $a3, 0x3c($sp) +/* 074080 7F03F550 C4840014 */ lwc1 $f4, 0x14($a0) +/* 074084 7F03F554 8C870010 */ lw $a3, 0x10($a0) +/* 074088 7F03F558 8C86000C */ lw $a2, 0xc($a0) +/* 07408C 7F03F55C C48E0008 */ lwc1 $f14, 8($a0) +/* 074090 7F03F560 C48C0004 */ lwc1 $f12, 4($a0) +/* 074094 7F03F564 E7A40010 */ swc1 $f4, 0x10($sp) +/* 074098 7F03F568 C4860018 */ lwc1 $f6, 0x18($a0) +/* 07409C 7F03F56C 8FAF003C */ lw $t7, 0x3c($sp) +/* 0740A0 7F03F570 8FAE0038 */ lw $t6, 0x38($sp) +/* 0740A4 7F03F574 AFA50018 */ sw $a1, 0x18($sp) +/* 0740A8 7F03F578 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0740AC 7F03F57C AFAF0020 */ sw $t7, 0x20($sp) +/* 0740B0 7F03F580 0FC0FB30 */ jal sub_GAME_7F03ECC0 +/* 0740B4 7F03F584 AFAE001C */ sw $t6, 0x1c($sp) +/* 0740B8 7F03F588 8FBF002C */ lw $ra, 0x2c($sp) +/* 0740BC 7F03F58C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0740C0 7F03F590 03E00008 */ jr $ra +/* 0740C4 7F03F594 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03F598(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03F598 +/* 0740C8 7F03F598 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0740CC 7F03F59C F7B40008 */ sdc1 $f20, 8($sp) +/* 0740D0 7F03F5A0 C4C60000 */ lwc1 $f6, ($a2) +/* 0740D4 7F03F5A4 C4840000 */ lwc1 $f4, ($a0) +/* 0740D8 7F03F5A8 C4CA0004 */ lwc1 $f10, 4($a2) +/* 0740DC 7F03F5AC C4880004 */ lwc1 $f8, 4($a0) +/* 0740E0 7F03F5B0 46062001 */ sub.s $f0, $f4, $f6 +/* 0740E4 7F03F5B4 C4C40008 */ lwc1 $f4, 8($a2) +/* 0740E8 7F03F5B8 C4920008 */ lwc1 $f18, 8($a0) +/* 0740EC 7F03F5BC 460A4081 */ sub.s $f2, $f8, $f10 +/* 0740F0 7F03F5C0 C4C80020 */ lwc1 $f8, 0x20($a2) +/* 0740F4 7F03F5C4 C4C60010 */ lwc1 $f6, 0x10($a2) +/* 0740F8 7F03F5C8 46049301 */ sub.s $f12, $f18, $f4 +/* 0740FC 7F03F5CC C4C40014 */ lwc1 $f4, 0x14($a2) +/* 074100 7F03F5D0 46083282 */ mul.s $f10, $f6, $f8 +/* 074104 7F03F5D4 C4D2001C */ lwc1 $f18, 0x1c($a2) +/* 074108 7F03F5D8 4485A000 */ mtc1 $a1, $f20 +/* 07410C 7F03F5DC 46049182 */ mul.s $f6, $f18, $f4 +/* 074110 7F03F5E0 46065201 */ sub.s $f8, $f10, $f6 +/* 074114 7F03F5E4 E7A80010 */ swc1 $f8, 0x10($sp) +/* 074118 7F03F5E8 C4C40018 */ lwc1 $f4, 0x18($a2) +/* 07411C 7F03F5EC C4D20014 */ lwc1 $f18, 0x14($a2) +/* 074120 7F03F5F0 C4C60020 */ lwc1 $f6, 0x20($a2) +/* 074124 7F03F5F4 C4C8000C */ lwc1 $f8, 0xc($a2) +/* 074128 7F03F5F8 46049282 */ mul.s $f10, $f18, $f4 +/* 07412C 7F03F5FC 00000000 */ nop +/* 074130 7F03F600 46083482 */ mul.s $f18, $f6, $f8 +/* 074134 7F03F604 46125101 */ sub.s $f4, $f10, $f18 +/* 074138 7F03F608 E7A40014 */ swc1 $f4, 0x14($sp) +/* 07413C 7F03F60C C4C8001C */ lwc1 $f8, 0x1c($a2) +/* 074140 7F03F610 C4C6000C */ lwc1 $f6, 0xc($a2) +/* 074144 7F03F614 C4D20018 */ lwc1 $f18, 0x18($a2) +/* 074148 7F03F618 C4C40010 */ lwc1 $f4, 0x10($a2) +/* 07414C 7F03F61C 46083282 */ mul.s $f10, $f6, $f8 +/* 074150 7F03F620 00000000 */ nop +/* 074154 7F03F624 46049182 */ mul.s $f6, $f18, $f4 +/* 074158 7F03F628 46065201 */ sub.s $f8, $f10, $f6 +/* 07415C 7F03F62C E7A80018 */ swc1 $f8, 0x18($sp) +/* 074160 7F03F630 C4D20018 */ lwc1 $f18, 0x18($a2) +/* 074164 7F03F634 C4CA001C */ lwc1 $f10, 0x1c($a2) +/* 074168 7F03F638 46120102 */ mul.s $f4, $f0, $f18 +/* 07416C 7F03F63C C4D20020 */ lwc1 $f18, 0x20($a2) +/* 074170 7F03F640 460A1182 */ mul.s $f6, $f2, $f10 +/* 074174 7F03F644 46062200 */ add.s $f8, $f4, $f6 +/* 074178 7F03F648 460C9282 */ mul.s $f10, $f18, $f12 +/* 07417C 7F03F64C C4C40040 */ lwc1 $f4, 0x40($a2) +/* 074180 7F03F650 46142180 */ add.s $f6, $f4, $f20 +/* 074184 7F03F654 46085380 */ add.s $f14, $f10, $f8 +/* 074188 7F03F658 460E303C */ c.lt.s $f6, $f14 +/* 07418C 7F03F65C 00000000 */ nop +/* 074190 7F03F660 45010007 */ bc1t .L7F03F680 +/* 074194 7F03F664 00000000 */ nop +/* 074198 7F03F668 C4D2003C */ lwc1 $f18, 0x3c($a2) +/* 07419C 7F03F66C 46149281 */ sub.s $f10, $f18, $f20 +/* 0741A0 7F03F670 460A703C */ c.lt.s $f14, $f10 +/* 0741A4 7F03F674 00000000 */ nop +/* 0741A8 7F03F678 45020004 */ bc1fl .L7F03F68C +/* 0741AC 7F03F67C C4C8000C */ lwc1 $f8, 0xc($a2) +.L7F03F680: +/* 0741B0 7F03F680 1000002E */ b .L7F03F73C +/* 0741B4 7F03F684 00001025 */ move $v0, $zero +/* 0741B8 7F03F688 C4C8000C */ lwc1 $f8, 0xc($a2) +.L7F03F68C: +/* 0741BC 7F03F68C C4C60010 */ lwc1 $f6, 0x10($a2) +/* 0741C0 7F03F690 46080102 */ mul.s $f4, $f0, $f8 +/* 0741C4 7F03F694 C4C80014 */ lwc1 $f8, 0x14($a2) +/* 0741C8 7F03F698 46061482 */ mul.s $f18, $f2, $f6 +/* 0741CC 7F03F69C 46122280 */ add.s $f10, $f4, $f18 +/* 0741D0 7F03F6A0 460C4182 */ mul.s $f6, $f8, $f12 +/* 0741D4 7F03F6A4 C4C40038 */ lwc1 $f4, 0x38($a2) +/* 0741D8 7F03F6A8 46142480 */ add.s $f18, $f4, $f20 +/* 0741DC 7F03F6AC 460A3380 */ add.s $f14, $f6, $f10 +/* 0741E0 7F03F6B0 460E903C */ c.lt.s $f18, $f14 +/* 0741E4 7F03F6B4 00000000 */ nop +/* 0741E8 7F03F6B8 45010009 */ bc1t .L7F03F6E0 +/* 0741EC 7F03F6BC 00000000 */ nop +/* 0741F0 7F03F6C0 C4C80034 */ lwc1 $f8, 0x34($a2) +/* 0741F4 7F03F6C4 C7AA0010 */ lwc1 $f10, 0x10($sp) +/* 0741F8 7F03F6C8 C7B20014 */ lwc1 $f18, 0x14($sp) +/* 0741FC 7F03F6CC 46144181 */ sub.s $f6, $f8, $f20 +/* 074200 7F03F6D0 4606703C */ c.lt.s $f14, $f6 +/* 074204 7F03F6D4 00000000 */ nop +/* 074208 7F03F6D8 45000003 */ bc1f .L7F03F6E8 +/* 07420C 7F03F6DC 00000000 */ nop +.L7F03F6E0: +/* 074210 7F03F6E0 10000016 */ b .L7F03F73C +/* 074214 7F03F6E4 00001025 */ move $v0, $zero +.L7F03F6E8: +/* 074218 7F03F6E8 460A0102 */ mul.s $f4, $f0, $f10 +/* 07421C 7F03F6EC C7AA0018 */ lwc1 $f10, 0x18($sp) +/* 074220 7F03F6F0 46121202 */ mul.s $f8, $f2, $f18 +/* 074224 7F03F6F4 46082180 */ add.s $f6, $f4, $f8 +/* 074228 7F03F6F8 460C5482 */ mul.s $f18, $f10, $f12 +/* 07422C 7F03F6FC C4C40030 */ lwc1 $f4, 0x30($a2) +/* 074230 7F03F700 46142200 */ add.s $f8, $f4, $f20 +/* 074234 7F03F704 46069400 */ add.s $f16, $f18, $f6 +/* 074238 7F03F708 4610403C */ c.lt.s $f8, $f16 +/* 07423C 7F03F70C 00000000 */ nop +/* 074240 7F03F710 45010008 */ bc1t .L7F03F734 +/* 074244 7F03F714 00000000 */ nop +/* 074248 7F03F718 C4CA002C */ lwc1 $f10, 0x2c($a2) +/* 07424C 7F03F71C 24020001 */ li $v0, 1 +/* 074250 7F03F720 46145481 */ sub.s $f18, $f10, $f20 +/* 074254 7F03F724 4612803C */ c.lt.s $f16, $f18 +/* 074258 7F03F728 00000000 */ nop +/* 07425C 7F03F72C 45000003 */ bc1f .L7F03F73C +/* 074260 7F03F730 00000000 */ nop +.L7F03F734: +/* 074264 7F03F734 10000001 */ b .L7F03F73C +/* 074268 7F03F738 00001025 */ move $v0, $zero +.L7F03F73C: +/* 07426C 7F03F73C D7B40008 */ ldc1 $f20, 8($sp) +/* 074270 7F03F740 03E00008 */ jr $ra +/* 074274 7F03F744 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03F748(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03F748 +/* 074278 7F03F748 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 07427C 7F03F74C AFBF0044 */ sw $ra, 0x44($sp) +/* 074280 7F03F750 AFBE0040 */ sw $fp, 0x40($sp) +/* 074284 7F03F754 AFB7003C */ sw $s7, 0x3c($sp) +/* 074288 7F03F758 AFB60038 */ sw $s6, 0x38($sp) +/* 07428C 7F03F75C AFB50034 */ sw $s5, 0x34($sp) +/* 074290 7F03F760 AFB40030 */ sw $s4, 0x30($sp) +/* 074294 7F03F764 AFB3002C */ sw $s3, 0x2c($sp) +/* 074298 7F03F768 AFB20028 */ sw $s2, 0x28($sp) +/* 07429C 7F03F76C AFB10024 */ sw $s1, 0x24($sp) +/* 0742A0 7F03F770 AFB00020 */ sw $s0, 0x20($sp) +/* 0742A4 7F03F774 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0742A8 7F03F778 AFA40048 */ sw $a0, 0x48($sp) +/* 0742AC 7F03F77C 8C8F0008 */ lw $t7, 8($a0) +/* 0742B0 7F03F780 00E0A025 */ move $s4, $a3 +/* 0742B4 7F03F784 00A0A825 */ move $s5, $a1 +/* 0742B8 7F03F788 8DF00000 */ lw $s0, ($t7) +/* 0742BC 7F03F78C 00C0B025 */ move $s6, $a2 +/* 0742C0 7F03F790 24130001 */ li $s3, 1 +/* 0742C4 7F03F794 12000050 */ beqz $s0, .L7F03F8D8 +/* 0742C8 7F03F798 241E0001 */ li $fp, 1 +/* 0742CC 7F03F79C 2417000A */ li $s7, 10 +/* 0742D0 7F03F7A0 96020000 */ lhu $v0, ($s0) +.L7F03F7A4: +/* 0742D4 7F03F7A4 8FA40048 */ lw $a0, 0x48($sp) +/* 0742D8 7F03F7A8 02002825 */ move $a1, $s0 +/* 0742DC 7F03F7AC 305800FF */ andi $t8, $v0, 0xff +/* 0742E0 7F03F7B0 17170038 */ bne $t8, $s7, .L7F03F894 +/* 0742E4 7F03F7B4 00003025 */ move $a2, $zero +/* 0742E8 7F03F7B8 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0742EC 7F03F7BC 8E120004 */ lw $s2, 4($s0) +/* 0742F0 7F03F7C0 1680000C */ bnez $s4, .L7F03F7F4 +/* 0742F4 7F03F7C4 00408825 */ move $s1, $v0 +/* 0742F8 7F03F7C8 02402025 */ move $a0, $s2 +/* 0742FC 7F03F7CC 0FC0FA47 */ jal sub_GAME_7F03E91C +/* 074300 7F03F7D0 00402825 */ move $a1, $v0 +/* 074304 7F03F7D4 C6240030 */ lwc1 $f4, 0x30($s1) +/* 074308 7F03F7D8 02402025 */ move $a0, $s2 +/* 07430C 7F03F7DC 02202825 */ move $a1, $s1 +/* 074310 7F03F7E0 0FC0FA1F */ jal sub_GAME_7F03E87C +/* 074314 7F03F7E4 46002500 */ add.s $f20, $f4, $f0 +/* 074318 7F03F7E8 C6260030 */ lwc1 $f6, 0x30($s1) +/* 07431C 7F03F7EC 10000017 */ b .L7F03F84C +/* 074320 7F03F7F0 46003080 */ add.s $f2, $f6, $f0 +.L7F03F7F4: +/* 074324 7F03F7F4 169E000C */ bne $s4, $fp, .L7F03F828 +/* 074328 7F03F7F8 02402025 */ move $a0, $s2 +/* 07432C 7F03F7FC 02402025 */ move $a0, $s2 +/* 074330 7F03F800 0FC0FA97 */ jal sub_GAME_7F03EA5C +/* 074334 7F03F804 02202825 */ move $a1, $s1 +/* 074338 7F03F808 C6280034 */ lwc1 $f8, 0x34($s1) +/* 07433C 7F03F80C 02402025 */ move $a0, $s2 +/* 074340 7F03F810 02202825 */ move $a1, $s1 +/* 074344 7F03F814 0FC0FA6F */ jal sub_GAME_7F03E9BC +/* 074348 7F03F818 46004500 */ add.s $f20, $f8, $f0 +/* 07434C 7F03F81C C62A0034 */ lwc1 $f10, 0x34($s1) +/* 074350 7F03F820 1000000A */ b .L7F03F84C +/* 074354 7F03F824 46005080 */ add.s $f2, $f10, $f0 +.L7F03F828: +/* 074358 7F03F828 0FC0FAE7 */ jal sub_GAME_7F03EB9C +/* 07435C 7F03F82C 02202825 */ move $a1, $s1 +/* 074360 7F03F830 C6300038 */ lwc1 $f16, 0x38($s1) +/* 074364 7F03F834 02402025 */ move $a0, $s2 +/* 074368 7F03F838 02202825 */ move $a1, $s1 +/* 07436C 7F03F83C 0FC0FABF */ jal sub_GAME_7F03EAFC +/* 074370 7F03F840 46008500 */ add.s $f20, $f16, $f0 +/* 074374 7F03F844 C6320038 */ lwc1 $f18, 0x38($s1) +/* 074378 7F03F848 46009080 */ add.s $f2, $f18, $f0 +.L7F03F84C: +/* 07437C 7F03F84C 16600006 */ bnez $s3, .L7F03F868 +/* 074380 7F03F850 0013102B */ sltu $v0, $zero, $s3 +/* 074384 7F03F854 C6A40000 */ lwc1 $f4, ($s5) +/* 074388 7F03F858 4614203C */ c.lt.s $f4, $f20 +/* 07438C 7F03F85C 00000000 */ nop +/* 074390 7F03F860 45000002 */ bc1f .L7F03F86C +/* 074394 7F03F864 00000000 */ nop +.L7F03F868: +/* 074398 7F03F868 E6B40000 */ swc1 $f20, ($s5) +.L7F03F86C: +/* 07439C 7F03F86C 14400006 */ bnez $v0, .L7F03F888 +/* 0743A0 7F03F870 00009825 */ move $s3, $zero +/* 0743A4 7F03F874 C6C60000 */ lwc1 $f6, ($s6) +/* 0743A8 7F03F878 4606103C */ c.lt.s $f2, $f6 +/* 0743AC 7F03F87C 00000000 */ nop +/* 0743B0 7F03F880 45000002 */ bc1f .L7F03F88C +/* 0743B4 7F03F884 00000000 */ nop +.L7F03F888: +/* 0743B8 7F03F888 E6C20000 */ swc1 $f2, ($s6) +.L7F03F88C: +/* 0743BC 7F03F88C 10000002 */ b .L7F03F898 +/* 0743C0 7F03F890 8E020014 */ lw $v0, 0x14($s0) +.L7F03F894: +/* 0743C4 7F03F894 8E020014 */ lw $v0, 0x14($s0) +.L7F03F898: +/* 0743C8 7F03F898 10400003 */ beqz $v0, .L7F03F8A8 +/* 0743CC 7F03F89C 00000000 */ nop +/* 0743D0 7F03F8A0 1000000B */ b .L7F03F8D0 +/* 0743D4 7F03F8A4 00408025 */ move $s0, $v0 +.L7F03F8A8: +/* 0743D8 7F03F8A8 12000009 */ beqz $s0, .L7F03F8D0 +/* 0743DC 7F03F8AC 00000000 */ nop +/* 0743E0 7F03F8B0 8E02000C */ lw $v0, 0xc($s0) +.L7F03F8B4: +/* 0743E4 7F03F8B4 50400004 */ beql $v0, $zero, .L7F03F8C8 +/* 0743E8 7F03F8B8 8E100008 */ lw $s0, 8($s0) +/* 0743EC 7F03F8BC 10000004 */ b .L7F03F8D0 +/* 0743F0 7F03F8C0 00408025 */ move $s0, $v0 +/* 0743F4 7F03F8C4 8E100008 */ lw $s0, 8($s0) +.L7F03F8C8: +/* 0743F8 7F03F8C8 5600FFFA */ bnezl $s0, .L7F03F8B4 +/* 0743FC 7F03F8CC 8E02000C */ lw $v0, 0xc($s0) +.L7F03F8D0: +/* 074400 7F03F8D0 5600FFB4 */ bnezl $s0, .L7F03F7A4 +/* 074404 7F03F8D4 96020000 */ lhu $v0, ($s0) +.L7F03F8D8: +/* 074408 7F03F8D8 8FBF0044 */ lw $ra, 0x44($sp) +/* 07440C 7F03F8DC D7B40018 */ ldc1 $f20, 0x18($sp) +/* 074410 7F03F8E0 8FB00020 */ lw $s0, 0x20($sp) +/* 074414 7F03F8E4 8FB10024 */ lw $s1, 0x24($sp) +/* 074418 7F03F8E8 8FB20028 */ lw $s2, 0x28($sp) +/* 07441C 7F03F8EC 8FB3002C */ lw $s3, 0x2c($sp) +/* 074420 7F03F8F0 8FB40030 */ lw $s4, 0x30($sp) +/* 074424 7F03F8F4 8FB50034 */ lw $s5, 0x34($sp) +/* 074428 7F03F8F8 8FB60038 */ lw $s6, 0x38($sp) +/* 07442C 7F03F8FC 8FB7003C */ lw $s7, 0x3c($sp) +/* 074430 7F03F900 8FBE0040 */ lw $fp, 0x40($sp) +/* 074434 7F03F904 03E00008 */ jr $ra +/* 074438 7F03F908 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03F90C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03F90C +/* 07443C 7F03F90C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 074440 7F03F910 AFBF0014 */ sw $ra, 0x14($sp) +/* 074444 7F03F914 AFA70024 */ sw $a3, 0x24($sp) +/* 074448 7F03F918 AFA40018 */ sw $a0, 0x18($sp) +/* 07444C 7F03F91C 0FC0FDD2 */ jal sub_GAME_7F03F748 +/* 074450 7F03F920 00003825 */ move $a3, $zero +/* 074454 7F03F924 8FA40018 */ lw $a0, 0x18($sp) +/* 074458 7F03F928 8FA50024 */ lw $a1, 0x24($sp) +/* 07445C 7F03F92C 8FA60028 */ lw $a2, 0x28($sp) +/* 074460 7F03F930 0FC0FDD2 */ jal sub_GAME_7F03F748 +/* 074464 7F03F934 24070001 */ li $a3, 1 +/* 074468 7F03F938 8FBF0014 */ lw $ra, 0x14($sp) +/* 07446C 7F03F93C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 074470 7F03F940 03E00008 */ jr $ra +/* 074474 7F03F944 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03F948(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03F948 +/* 074478 7F03F948 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 07447C 7F03F94C AFBF001C */ sw $ra, 0x1c($sp) +/* 074480 7F03F950 AFB00018 */ sw $s0, 0x18($sp) +/* 074484 7F03F954 AFA5003C */ sw $a1, 0x3c($sp) +/* 074488 7F03F958 AFA60040 */ sw $a2, 0x40($sp) +/* 07448C 7F03F95C AFA70044 */ sw $a3, 0x44($sp) +/* 074490 7F03F960 C4A40000 */ lwc1 $f4, ($a1) +/* 074494 7F03F964 00808025 */ move $s0, $a0 +/* 074498 7F03F968 27A50024 */ addiu $a1, $sp, 0x24 +/* 07449C 7F03F96C E7A4002C */ swc1 $f4, 0x2c($sp) +/* 0744A0 7F03F970 C4860004 */ lwc1 $f6, 4($a0) +/* 0744A4 7F03F974 E7A60030 */ swc1 $f6, 0x30($sp) +/* 0744A8 7F03F978 C4880008 */ lwc1 $f8, 8($a0) +/* 0744AC 7F03F97C 27A4002C */ addiu $a0, $sp, 0x2c +/* 0744B0 7F03F980 0FC1DFFD */ jal sub_GAME_7F077FF4 +/* 0744B4 7F03F984 E7A80034 */ swc1 $f8, 0x34($sp) +/* 0744B8 7F03F988 C7AA0024 */ lwc1 $f10, 0x24($sp) +/* 0744BC 7F03F98C 8FAF0044 */ lw $t7, 0x44($sp) +/* 0744C0 7F03F990 27A4002C */ addiu $a0, $sp, 0x2c +/* 0744C4 7F03F994 27A50024 */ addiu $a1, $sp, 0x24 +/* 0744C8 7F03F998 E5EA0000 */ swc1 $f10, ($t7) +/* 0744CC 7F03F99C 8FB8003C */ lw $t8, 0x3c($sp) +/* 0744D0 7F03F9A0 C7100004 */ lwc1 $f16, 4($t8) +/* 0744D4 7F03F9A4 E7B0002C */ swc1 $f16, 0x2c($sp) +/* 0744D8 7F03F9A8 C6120004 */ lwc1 $f18, 4($s0) +/* 0744DC 7F03F9AC E7B20030 */ swc1 $f18, 0x30($sp) +/* 0744E0 7F03F9B0 C6040008 */ lwc1 $f4, 8($s0) +/* 0744E4 7F03F9B4 0FC1DFFD */ jal sub_GAME_7F077FF4 +/* 0744E8 7F03F9B8 E7A40034 */ swc1 $f4, 0x34($sp) +/* 0744EC 7F03F9BC C7A60024 */ lwc1 $f6, 0x24($sp) +/* 0744F0 7F03F9C0 8FB90048 */ lw $t9, 0x48($sp) +/* 0744F4 7F03F9C4 27A4002C */ addiu $a0, $sp, 0x2c +/* 0744F8 7F03F9C8 27A50024 */ addiu $a1, $sp, 0x24 +/* 0744FC 7F03F9CC E7260000 */ swc1 $f6, ($t9) +/* 074500 7F03F9D0 C6080000 */ lwc1 $f8, ($s0) +/* 074504 7F03F9D4 8FA80040 */ lw $t0, 0x40($sp) +/* 074508 7F03F9D8 E7A8002C */ swc1 $f8, 0x2c($sp) +/* 07450C 7F03F9DC C50A0004 */ lwc1 $f10, 4($t0) +/* 074510 7F03F9E0 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 074514 7F03F9E4 C6100008 */ lwc1 $f16, 8($s0) +/* 074518 7F03F9E8 0FC1DFFD */ jal sub_GAME_7F077FF4 +/* 07451C 7F03F9EC E7B00034 */ swc1 $f16, 0x34($sp) +/* 074520 7F03F9F0 C7B20028 */ lwc1 $f18, 0x28($sp) +/* 074524 7F03F9F4 8FA90044 */ lw $t1, 0x44($sp) +/* 074528 7F03F9F8 27A4002C */ addiu $a0, $sp, 0x2c +/* 07452C 7F03F9FC 27A50024 */ addiu $a1, $sp, 0x24 +/* 074530 7F03FA00 E5320004 */ swc1 $f18, 4($t1) +/* 074534 7F03FA04 C6040000 */ lwc1 $f4, ($s0) +/* 074538 7F03FA08 8FAA0040 */ lw $t2, 0x40($sp) +/* 07453C 7F03FA0C E7A4002C */ swc1 $f4, 0x2c($sp) +/* 074540 7F03FA10 C5460000 */ lwc1 $f6, ($t2) +/* 074544 7F03FA14 E7A60030 */ swc1 $f6, 0x30($sp) +/* 074548 7F03FA18 C6080008 */ lwc1 $f8, 8($s0) +/* 07454C 7F03FA1C 0FC1DFFD */ jal sub_GAME_7F077FF4 +/* 074550 7F03FA20 E7A80034 */ swc1 $f8, 0x34($sp) +/* 074554 7F03FA24 C7AA0028 */ lwc1 $f10, 0x28($sp) +/* 074558 7F03FA28 8FAB0048 */ lw $t3, 0x48($sp) +/* 07455C 7F03FA2C E56A0004 */ swc1 $f10, 4($t3) +/* 074560 7F03FA30 8FBF001C */ lw $ra, 0x1c($sp) +/* 074564 7F03FA34 8FB00018 */ lw $s0, 0x18($sp) +/* 074568 7F03FA38 27BD0038 */ addiu $sp, $sp, 0x38 +/* 07456C 7F03FA3C 03E00008 */ jr $ra +/* 074570 7F03FA40 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void scan_position_data_table_for_normal_object_at_preset(void) { + +} +#else +GLOBAL_ASM( +.text +glabel scan_position_data_table_for_normal_object_at_preset +/* 074574 7F03FA44 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 074578 7F03FA48 AFBF0014 */ sw $ra, 0x14($sp) +/* 07457C 7F03FA4C 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 074580 7F03FA50 AFA40018 */ sw $a0, 0x18($sp) +/* 074584 7F03FA54 8FA50018 */ lw $a1, 0x18($sp) +/* 074588 7F03FA58 10400010 */ beqz $v0, .L7F03FA9C +/* 07458C 7F03FA5C 00401825 */ move $v1, $v0 +/* 074590 7F03FA60 24020001 */ li $v0, 1 +/* 074594 7F03FA64 906E0000 */ lbu $t6, ($v1) +.L7F03FA68: +/* 074598 7F03FA68 544E000A */ bnel $v0, $t6, .L7F03FA94 +/* 07459C 7F03FA6C 8C630024 */ lw $v1, 0x24($v1) +/* 0745A0 7F03FA70 8C640004 */ lw $a0, 4($v1) +/* 0745A4 7F03FA74 00057C00 */ sll $t7, $a1, 0x10 +/* 0745A8 7F03FA78 000FC403 */ sra $t8, $t7, 0x10 +/* 0745AC 7F03FA7C 84990006 */ lh $t9, 6($a0) +/* 0745B0 7F03FA80 57190004 */ bnel $t8, $t9, .L7F03FA94 +/* 0745B4 7F03FA84 8C630024 */ lw $v1, 0x24($v1) +/* 0745B8 7F03FA88 10000005 */ b .L7F03FAA0 +/* 0745BC 7F03FA8C 00801025 */ move $v0, $a0 +/* 0745C0 7F03FA90 8C630024 */ lw $v1, 0x24($v1) +.L7F03FA94: +/* 0745C4 7F03FA94 5460FFF4 */ bnezl $v1, .L7F03FA68 +/* 0745C8 7F03FA98 906E0000 */ lbu $t6, ($v1) +.L7F03FA9C: +/* 0745CC 7F03FA9C 00001025 */ move $v0, $zero +.L7F03FAA0: +/* 0745D0 7F03FAA0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0745D4 7F03FAA4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0745D8 7F03FAA8 03E00008 */ jr $ra +/* 0745DC 7F03FAAC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03FAB0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03FAB0 +/* 0745E0 7F03FAB0 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0745E4 7F03FAB4 AFBF002C */ sw $ra, 0x2c($sp) +/* 0745E8 7F03FAB8 AFB2001C */ sw $s2, 0x1c($sp) +/* 0745EC 7F03FABC AFB10018 */ sw $s1, 0x18($sp) +/* 0745F0 7F03FAC0 00A08825 */ move $s1, $a1 +/* 0745F4 7F03FAC4 00809025 */ move $s2, $a0 +/* 0745F8 7F03FAC8 AFB50028 */ sw $s5, 0x28($sp) +/* 0745FC 7F03FACC AFB40024 */ sw $s4, 0x24($sp) +/* 074600 7F03FAD0 AFB30020 */ sw $s3, 0x20($sp) +/* 074604 7F03FAD4 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 074608 7F03FAD8 AFB00014 */ sw $s0, 0x14($sp) +/* 07460C 7F03FADC 1040001A */ beqz $v0, .L7F03FB48 +/* 074610 7F03FAE0 00408025 */ move $s0, $v0 +/* 074614 7F03FAE4 27B50034 */ addiu $s5, $sp, 0x34 +/* 074618 7F03FAE8 27B40038 */ addiu $s4, $sp, 0x38 +/* 07461C 7F03FAEC 24130001 */ li $s3, 1 +/* 074620 7F03FAF0 920E0000 */ lbu $t6, ($s0) +.L7F03FAF4: +/* 074624 7F03FAF4 566E0012 */ bnel $s3, $t6, .L7F03FB40 +/* 074628 7F03FAF8 8E100024 */ lw $s0, 0x24($s0) +/* 07462C 7F03FAFC 8E0F0014 */ lw $t7, 0x14($s0) +/* 074630 7F03FB00 02002025 */ move $a0, $s0 +/* 074634 7F03FB04 02802825 */ move $a1, $s4 +/* 074638 7F03FB08 91F80003 */ lbu $t8, 3($t7) +/* 07463C 7F03FB0C 5638000C */ bnel $s1, $t8, .L7F03FB40 +/* 074640 7F03FB10 8E100024 */ lw $s0, 0x24($s0) +/* 074644 7F03FB14 0FC0F32C */ jal sub_GAME_7F03CCB0 +/* 074648 7F03FB18 02A03025 */ move $a2, $s5 +/* 07464C 7F03FB1C 02402025 */ move $a0, $s2 +/* 074650 7F03FB20 8FA50038 */ lw $a1, 0x38($sp) +/* 074654 7F03FB24 0FC0F336 */ jal sub_GAME_7F03CCD8 +/* 074658 7F03FB28 8FA60034 */ lw $a2, 0x34($sp) +/* 07465C 7F03FB2C 50400004 */ beql $v0, $zero, .L7F03FB40 +/* 074660 7F03FB30 8E100024 */ lw $s0, 0x24($s0) +/* 074664 7F03FB34 10000005 */ b .L7F03FB4C +/* 074668 7F03FB38 8E020004 */ lw $v0, 4($s0) +/* 07466C 7F03FB3C 8E100024 */ lw $s0, 0x24($s0) +.L7F03FB40: +/* 074670 7F03FB40 5600FFEC */ bnezl $s0, .L7F03FAF4 +/* 074674 7F03FB44 920E0000 */ lbu $t6, ($s0) +.L7F03FB48: +/* 074678 7F03FB48 00001025 */ move $v0, $zero +.L7F03FB4C: +/* 07467C 7F03FB4C 8FBF002C */ lw $ra, 0x2c($sp) +/* 074680 7F03FB50 8FB00014 */ lw $s0, 0x14($sp) +/* 074684 7F03FB54 8FB10018 */ lw $s1, 0x18($sp) +/* 074688 7F03FB58 8FB2001C */ lw $s2, 0x1c($sp) +/* 07468C 7F03FB5C 8FB30020 */ lw $s3, 0x20($sp) +/* 074690 7F03FB60 8FB40024 */ lw $s4, 0x24($sp) +/* 074694 7F03FB64 8FB50028 */ lw $s5, 0x28($sp) +/* 074698 7F03FB68 03E00008 */ jr $ra +/* 07469C 7F03FB6C 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + diff --git a/src/game/chrai.h b/src/game/chrai.h new file mode 100644 index 0000000..7d273dd --- /dev/null +++ b/src/game/chrai.h @@ -0,0 +1,113 @@ +#ifndef _CHRAI_H_ +#define _CHRAI_H_ +#include "ultra64.h" + +struct sfx_register_struct { + u32 field_0x0; + u32 field_0x4; + u32 field_0x8; + u32 field_0xc; + u32 field_0x10; + u32 field_0x14; +}; + +struct struct_0 { + int anonymous_0; + int anonymous_1; + int anonymous_2; + int anonymous_3; + int anonymous_4; + void * anonymous_5; + int anonymous_6; +}; + +struct struct_5 { + int anonymous_0; + void * anonymous_1; + int anonymous_2; +}; + +struct struct_12 { + int anonymous_0; + char anonymous_1; + char anonymous_2; + char anonymous_3; + char anonymous_4; + int anonymous_5; + int anonymous_6; + void * anonymous_7; +}; + +struct struct_16 { + int anonymous_0; + int anonymous_1; + int anonymous_2; + int anonymous_3; + int anonymous_4; + int anonymous_5; + void * anonymous_6; +}; + +struct struct_20 { + int anonymous_0; + int anonymous_1; + int anonymous_2; + int anonymous_3; + int anonymous_4; + int anonymous_5; + int anonymous_6; + int anonymous_7; + int anonymous_8; + int anonymous_9; + int anonymous_10; + int anonymous_11; + int anonymous_12; + int anonymous_13; + int anonymous_14; + int anonymous_15; + int anonymous_16; + int anonymous_17; + int anonymous_18; + void * anonymous_19; +}; + +extern u32 D_800312A0[]; +extern u32 D_800312B4[]; +extern u32 D_800312C8[]; +extern u32 D_800312F4[]; +extern u32 D_80031310[]; +extern struct struct_5 D_80031950[]; +extern struct struct_0 D_800319D4; +extern struct struct_0 D_800319F0; +extern struct struct_0 D_80031A0C; +extern struct struct_0 D_80031A28; +extern struct struct_0 D_80031A44; +extern struct struct_0 D_80031A60; +extern struct struct_0 D_80031A7C; +extern struct struct_0 D_80031A98; +extern struct struct_0 D_80031AB4; +extern struct struct_0 D_80031AD0; +extern struct struct_5 D_80031AEC[]; +extern struct struct_12 D_80031B10[]; +extern struct struct_12 D_80031B24[]; +extern struct struct_12 D_80031B38[]; +extern struct struct_12 D_80031B4C[]; +extern u32 D_80031B60[]; +extern struct struct_16 D_80031BB4; +extern struct struct_16 D_80031BD0; +extern struct struct_16 D_80031BEC; +extern u32 D_80031C08[]; +extern u32 D_80031C80[]; +extern u32 D_80031D30[]; +extern struct struct_20 D_80031D58; +extern u32 monitor_animation_microcode[]; +extern u32 dword_D_80031F00[]; +extern u32 dword_D_80031F44[]; +extern f32 gas_damage_flag; +extern u32 gas_cutoff_flag; +extern struct object_standard * ptr_setup_objects; +void stop_alarm(void); + +void check_deactivate_gas_sound(void); + +#endif diff --git a/src/game/chrobjdata.c b/src/game/chrobjdata.c new file mode 100644 index 0000000..b60d234 --- /dev/null +++ b/src/game/chrobjdata.c @@ -0,0 +1,3086 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "game/chrobjdata.h" +// bss + + +/* global ai lists used for all levels */ +// data +//D:80037070 +u8 dword_D_80037070[] = { // GLIST_AIM_AT_BOND: continuously aim at bond with weapon + guard_try_fire_or_aim_at_target(TARGET_BOND | TARGET_AIM_ONLY, 0, 0x01) + goto_loop_infinite(0x01) + ai_list_end +}; + +//D:8003707C +u8 dword_D_8003707C[] = { // GLIST_END_ROUTINE: end routine (loop forever) + goto_loop_infinite(0x11) + ai_list_end +}; + +//D:80037084 +u8 dword_D_80037084[] = { // GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE: wait for bond detection (spawn clone when heard bond) + goto_loop_start(0x01) + if_chr_dying_or_dead(CHR_SELF, 0x11) // guard died, safely end list + if_guard_has_stopped_moving(0x06) // guard has stopped moving, safe to continue + goto_loop_repeat(0x01) + label(0x06) + if_guard_sees_bond(0x07) + if_guard_was_shot_within_last_10_secs(0x0D) + if_guard_heard_bond_within_last_10_secs(0x0E) + if_guard_shot_from_bond_missed(0x10) + if_guard_see_another_guard_shot(0x0D) + if_guard_see_another_guard_die(0x0D) + if_guard_playing_animation(0x03) // playing idle animation + random_generate_greater_than(1, 0x03) // 1/255 chance of playing idle animation + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_IDLE_RAND_ANIM_SUBROUTINE) // play idle animation and return to list + label(0x03) + goto_loop_repeat(0x01) + label(0x10) // bond shot near guard + random_generate_greater_than(127, 0x07) // 50% chance of playing looking around animation + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_STARTLE_CHR_AND_RUN_TO_BOND_SUBROUTINE) + label(0x07) // guard sees bond + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_FIRE_RAND_ANIM_SUBROUTINE) + label(0x0D) // guard saw another guard shot/die or guard was shot + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_RUN_TO_BOND_SUBROUTINE) + label(0x0E) // guard heard bond, attempt to spawn clone (only if chr has clone flag) + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_SPAWN_CLONE_OR_RUN_TO_BOND) + label(0x11) // guard has died, end routine + jump_to_ai_list(CHR_SELF, GLIST_END_ROUTINE) + ai_list_end +}; + +//D:800370DC +u8 dword_D_800370DC[] = { // GLIST_IDLE_RAND_ANIM_SUBROUTINE: play idle animation (subroutine) + random_generate_greater_than(50, 0x03) // generate annd compare random seed to see which animation to play + guard_play_animation(ANIM_yawning, 0, 193, ANIM_IDLE_POSE_WHEN_COMPLETE | ANIM_PLAY_SFX, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x03) + if_random_seed_greater_than(100, 0x03) + guard_play_animation(ANIM_swatting_flies, 0, 294, ANIM_IDLE_POSE_WHEN_COMPLETE | ANIM_PLAY_SFX, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x03) + if_random_seed_greater_than(150, 0x03) + guard_play_animation(ANIM_scratching_leg, 0, 183, ANIM_IDLE_POSE_WHEN_COMPLETE | ANIM_PLAY_SFX, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x03) + if_random_seed_greater_than(200, 0x03) + guard_play_animation(ANIM_scratching_butt, 0, 123, ANIM_IDLE_POSE_WHEN_COMPLETE | ANIM_PLAY_SFX, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x03) + if_random_seed_greater_than(250, 0x03) + guard_play_animation(ANIM_adjusting_crotch, 0, 56, ANIM_IDLE_POSE_WHEN_COMPLETE | ANIM_PLAY_SFX, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x03) + guard_play_animation(ANIM_sneeze, 0, 137, ANIM_IDLE_POSE_WHEN_COMPLETE | ANIM_PLAY_SFX, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x02) + jump_to_return_ai_list + ai_list_end +}; + +//D:8003713C +u8 dword_D_8003713C[] = { // GLIST_KEYBOARD_RAND_ANIM_SUBROUTINE: play use keyboard animation (subroutine) + random_generate_greater_than(60, 0x03) + guard_play_animation(ANIM_keyboard_right_hand1, 0, 69, 0x00, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x03) + if_random_seed_greater_than(120, 0x03) + guard_play_animation(ANIM_keyboard_right_hand2, 0, 74, 0x00, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x03) + if_random_seed_greater_than(180, 0x03) + guard_play_animation(ANIM_keyboard_left_hand, 0, 79, 0x00, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x03) + guard_play_animation(ANIM_keyboard_right_hand_tapping, 0, 89, 0x00, ANIM_DEFAULT_INTERPOLATION) + goto_next(0x02) // jump to end, we're done + label(0x02) + jump_to_return_ai_list + ai_list_end +}; + +//D:8003717C +u8 dword_D_8003717C[] = { // GLIST_DETECT_BOND_DEAF_NO_CLONE_NO_IDLE_ANIM: wait for bond detection (deaf/no clones/no idling) + goto_loop_start(0x01) // wait for guard to stop moving before branching to next logic + if_guard_has_stopped_moving(0x06) + goto_loop_repeat(0x01) + label(0x06) + if_guard_sees_bond(0x07) + if_guard_was_shot_within_last_10_secs(0x0D) + if_guard_shot_from_bond_missed(0x10) + if_guard_see_another_guard_shot(0x0D) + if_guard_see_another_guard_die(0x0D) + goto_loop_repeat(0x01) + label(0x10) // bond shot near guard + random_generate_greater_than(127, 0x07) // 50% chance of playing looking around animation + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_STARTLE_CHR_AND_RUN_TO_BOND_SUBROUTINE) + label(0x07) // guard sees bond + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_FIRE_RAND_ANIM_SUBROUTINE) + label(0x0D) // guard saw another guard shot/die or guard was shot + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_RUN_TO_BOND_SUBROUTINE) + ai_list_end +}; + +//D:800371B4 +u8 dword_D_800371B4[] = { // GLIST_FIRE_RAND_ANIM_SUBROUTINE: fire at bond with random animation (subroutine) + if_guard_bitfield_is_set_on(BITFIELD_DONT_POINT_AT_BOND, 0x03) // if guard already pointed at bond, goto label 03 + random_generate_greater_than(32, 0x03) // 12.5% chance of pointing to bond + guard_points_at_bond + guard_bitfield_set_on(BITFIELD_DONT_POINT_AT_BOND) // don't point again, thank you object permanence + jump_to_return_ai_list // guard pointed at bond, return to list + label(0x03) + guard_bitfield_set_on(BITFIELD_DONT_POINT_AT_BOND) // set flag so we don't point at bond, only do that for first time in list + guard_try_throwing_grenade(0x02) // attempt to throw grenade, depends on chr->grenadeprob value + label(0x03) + random_generate_greater_than(10, 0x03) + guard_try_firing_roll(0x02) + label(0x03) + random_generate_greater_than(10, 0x03) + guard_try_hopping_sideways(0x02) + label(0x03) + random_generate_greater_than(25, 0x03) + guard_try_sidestepping(0x02) + label(0x03) + random_generate_greater_than(50, 0x03) + guard_try_running_to_side(0x02) + label(0x03) + random_generate_greater_than(64, 0x03) + guard_try_firing_walk(0x02) // infinite ammo death sentence ;) + label(0x03) + if_random_seed_greater_than(127, 0x03) + guard_try_firing_run(0x02) + label(0x03) + random_generate_greater_than(127, 0x0B) + guard_try_fire_or_aim_at_target(TARGET_BOND, 0, 0x02) + label(0x0B) + guard_try_fire_or_aim_at_target_kneel(TARGET_BOND, 0, 0x02) + label(0x02) // guard did the thing, now go back home + jump_to_return_ai_list + ai_list_end +}; + +//D:8003720C +u8 dword_D_8003720C[] = { // GLIST_RUN_TO_BOND_SUBROUTINE: run to bond and fire (subroutine) + guard_bitfield_set_on(BITFIELD_DONT_POINT_AT_BOND) // guard is aware of bond, so don't point at him when first spotted + guard_try_running_to_bond_position(0x01) // goto loop if bond position is reachable + jump_to_return_ai_list // if guard can't reach bond, return to ai list (read guard_try_running_to_bond_position command info) + goto_loop_start(0x01) + if_guard_has_stopped_moving(0x06) + if_guard_sees_bond(0x07) // detected bond, goto attack list + goto_loop_repeat(0x01) + label(0x07) + jump_to_ai_list(CHR_SELF, GLIST_FIRE_RAND_ANIM_SUBROUTINE) + label(0x06) + jump_to_return_ai_list + ai_list_end +}; + +//D:80037224 +u8 dword_D_80037224[] = { // GLIST_SPAWN_CLONE_OR_RUN_TO_BOND: if chr has been seen, run to bond - else spawn clone + guard_bitfield_set_on(BITFIELD_DONT_POINT_AT_BOND) // guard is aware of bond, so don't point at him when first spotted + if_guard_has_not_been_seen(0x0E) // if guard has yet to be seen by bond, goto 0E + jump_to_ai_list(CHR_SELF, GLIST_RUN_TO_BOND_SUBROUTINE) // guard has been seen, run to bond and fire + label(0x0E) + if_chr_does_not_exist(CHR_CLONE, 0x0E) // if clone doesn't exist, goto 0E + jump_to_ai_list(CHR_SELF, GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) // continue idling + label(0x0E) + chr_try_spawning_clone(CHR_SELF, GLIST_RUN_TO_BOND_AND_FIRE, 0x03) // attempt to spawn clone with run to bond list assigned, if success goto 03 + jump_to_ai_list(CHR_SELF, GLIST_RUN_TO_BOND_SUBROUTINE) // guard failed to spawn (not enough memory/guard doesn't have clone flag on), just run at bond anyway + label(0x03) // if clone spawn was successful + jump_to_ai_list(CHR_SELF, GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) // set original chr to sit tight while the clone does all the work, giving the illusion that bunker ii is a crowded complex + ai_list_end +}; + +//D:80037248 +u8 dword_D_80037248[] = { // GLIST_RUN_TO_BOND_AND_FIRE: run to bond and fire + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_RUN_TO_BOND_SUBROUTINE) + ai_list_end +}; + +//D:80037250 +u8 dword_D_80037250[] = { // GLIST_DETECT_BOND_NO_CLONE_NO_IDLE_ANIM: wait for bond detection (no clones/no idling) + goto_loop_start(0x01) // wait for guard to stop moving before branching to next logic + if_guard_sees_bond(0x07) + if_guard_was_shot_within_last_10_secs(0x0D) + if_guard_heard_bond_within_last_10_secs(0x0D) + if_guard_shot_from_bond_missed(0x0D) + if_guard_see_another_guard_shot(0x0D) + if_guard_see_another_guard_die(0x0D) + goto_loop_repeat(0x01) + label(0x07) // guard sees bond + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_FIRE_RAND_ANIM_SUBROUTINE) + label(0x0D) // guard saw another guard shot/die or guard was shot + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_RUN_TO_BOND_SUBROUTINE) + label(0x0E) // unused spawn clone reaction for hearing bond, likely made game too difficult/slow + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_SPAWN_CLONE_OR_RUN_TO_BOND) + ai_list_end +}; + +//D:80037280 +u8 dword_D_80037280[] = { // GLIST_RUN_TO_CHR_PADPRESET_AND_ACTIVATE_ALARM: run to chr->padpreset1 and activate alarm + goto_loop_start(0x01) // wait for guard to stop moving before branching to next logic + if_guard_has_stopped_moving(0x06) + goto_loop_repeat(0x01) + label(0x06) + if_guard_sees_bond(0x0F) + if_guard_hits_missed_greater_than(0, 0x10) + if_guard_heard_bond_within_last_10_secs(0x10) + if_guard_see_another_guard_shot(0x10) + if_guard_see_another_guard_die(0x10) + goto_loop_repeat(0x01) + label(0x10) // a guard in sight was killed/shot, heard bond or bond shot guard + if_guard_hits_greater_than(0, 0x0F) // doesn't make sense why the guard would be mildly curious about getting shot + guard_looks_around_self + goto_loop_start(0x04) // wait for guard to stop moving before branching to next logic (triggered by look around animation) + if_guard_has_stopped_moving(0x0F) + goto_loop_repeat(0x04) + label(0x0F) + guard_runs_to_pad(PAD_PRESET) + goto_loop_start(0x03) // wait for guard to stop moving (reached destination/guard was shot) + if_guard_has_stopped_moving(0x02) + goto_loop_repeat(0x03) + label(0x02) + if_chr_meters_to_pad_greater_than(CHR_SELF, 1, PAD_PRESET, 0x02) // if guard is more than 1 meter away from alarm, skip to attack ai list + guard_try_triggering_alarm_at_pad(PAD_PRESET, 0x05) + goto_next(0x02) // didn't activate alarm (alarm destroyed?) + goto_loop_start(0x05) // wait for guard to finish activating alarm + if_guard_has_stopped_moving(0x02) + goto_loop_repeat(0x05) + label(0x02) + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_RUN_TO_BOND_SUBROUTINE) + ai_list_end +}; + +//D:800372D0 +u8 dword_D_800372D0[] = { // GLIST_STARTLE_CHR_AND_RUN_TO_BOND_SUBROUTINE: startle character (subroutine) + guard_looks_around_self // trigger animation + goto_loop_start(0x01) + if_guard_has_stopped_moving(0x02) // wait for chr to stop moving + goto_loop_repeat(0x01) + label(0x02) // chr stopped moving + jump_to_ai_list(CHR_SELF, GLIST_RUN_TO_BOND_SUBROUTINE) + ai_list_end +}; + +//D:800372E0 +u8 dword_D_800372E0[] = { // GLIST_RUN_TO_BOND_AND_FIRE_HALT_CHR_RANDOMLY: forever chase bond and fire (halt randomly) + label(0x28) + guard_try_running_to_bond_position(0x1B) // goto loop if bond position is reachable + debug_log 'n','o',' ','g','o','!','\n', debug_log_end // guard can't reach bond + goto_loop_start(0x1B) + if_guard_and_bond_within_line_of_sight(0x06) + if_guard_has_stopped_moving(0x02) + goto_loop_repeat(0x1B) + label(0x01) + ai_sleep + if_guard_hits_less_than(6, 0x2D) + if_guard_flags_is_set_on(CHRFLAG_INVINCIBLE, 0x2F) + label(0x2D) + if_guard_has_stopped_moving(0x06) + if_guard_meters_to_bond_greater_than(20, 0x03) // if guard is further than 20 meters away from bond, goto 03 + goto_first(0x01) + label(0x03) + goto_first(0x28) + label(0x06) + if_guard_and_bond_within_line_of_sight(0x03) + goto_next(0x02) + label(0x24) + ai_sleep + if_guard_meters_to_bond_less_than(5, 0x03) // if guard is within 5 meters from bond, goto 03 + if_guard_has_stopped_moving(0x03) + goto_first(0x28) + label(0x03) + if_guard_flags_is_set_on(CHRFLAG_INVINCIBLE, 0x2F) + label(0x2B) + random_generate_greater_than(10, 0x03) + guard_try_throwing_grenade(0x02) // attempt to throw grenade, depends on chr->grenadeprob value + label(0x03) + if_random_seed_greater_than(50, 0x03) + guard_try_sidestepping(0x02) + label(0x03) + if_random_seed_greater_than(60, 0x03) + guard_try_firing_roll(0x02) + label(0x03) + if_random_seed_greater_than(80, 0x03) + guard_try_firing_roll(0x02) + label(0x03) + if_random_seed_greater_than(100, 0x03) + guard_try_firing_walk(0x02) + label(0x03) + if_random_seed_greater_than(150, 0x03) + guard_try_firing_run(0x02) + label(0x03) + if_random_seed_greater_than(200, 0x03) + guard_try_fire_or_aim_at_target(TARGET_BOND, 0, 0x02) + label(0x03) + guard_try_fire_or_aim_at_target_kneel(TARGET_BOND, 0, 0x02) + label(0x02) + if_guard_and_bond_within_line_of_sight(0x03) + goto_next(0x1B) + label(0x1B) + ai_sleep + random_generate_greater_than(160, 0x03) + goto_next(0x1C) + label(0x03) + ai_sleep + goto_first(0x01) + label(0x1C) + local_timer_reset_start + guard_try_running_to_bond_position(0x1D) + goto_loop_start(0x1D) + if_guard_has_stopped_moving(0x03) + if_local_timer_seconds_greater_than(1, 0x03) + goto_loop_repeat(0x1D) + label(0x03) + guard_animation_stop + debug_log 'w','a','i','t','\n', debug_log_end + guard_bitfield_set_off(0x04) + random_generate_greater_than(160, 0x03) + guard_bitfield_set_on(0x04) + label(0x03) + local_timer_reset_start + label(0x1E) + ai_sleep + if_guard_and_bond_within_line_of_sight(0x03) + if_guard_shot_from_bond_missed(0x03) + ai_sleep + if_local_timer_seconds_less_than(10, 0x04) // if timer less than 10 seconds, goto 04 + if_guard_bitfield_is_set_on(0x04, 0x05) + goto_first(0x28) + label(0x05) + goto_first(0x1C) + label(0x04) + goto_first(0x1E) + label(0x03) + goto_first(0x01) + label(0x2F) + if_guard_hits_less_than(6, 0x03) + guard_flags_set_off(CHRFLAG_INVINCIBLE) + label(0x03) + goto_first(0x2B) + ai_list_end +}; + +//D:800373D0 +u8 dword_D_800373D0[] = { // GLIST_WAIT_ONE_SECOND_SUBROUTINE: wait for one second (subroutine) + local_timer_reset_start + goto_loop_start(0x1B) + if_local_timer_seconds_greater_than(1, 0x03) // wait one second + goto_loop_repeat(0x1B) + label(0x03) + jump_to_return_ai_list + ai_list_end +}; + +//D:800373E0 +u8 dword_D_800373E0[] = { // GLIST_EXIT_LEVEL: exit level + exit_level + jump_to_ai_list(CHR_SELF, GLIST_END_ROUTINE) + ai_list_end +}; + +//D:800373E8 +u8 dword_D_800373E8[] = { // GLIST_DRAW_DD44_AND_FIRE: draw dd44 and fire + guard_set_speed_rating(40) // fast boi watch out! + guard_set_accuracy_rating(50) + label(0x03) + guard_try_facing_target(TARGET_BOND, 0, 0x03) + label(0x03) + local_timer_reset_start + goto_loop_start(0x1B) + if_local_timer_greater_than(20, 0x03) // wait 1/3 of a second + goto_loop_repeat(0x1B) + label(0x03) + guard_play_animation(ANIM_fire_standing_draw_one_handed_weapon_fast, 0, 20, ANIM_LOOP_HOLD_LAST_FRAME, ANIM_DEFAULT_INTERPOLATION) + goto_loop_start(0x1C) + if_guard_has_stopped_moving(0x03) + goto_loop_repeat(0x1C) + label(0x03) + guard_try_spawning_item(PROP_chrtt33, ITEM_TT33, 0, 0x03) + label(0x03) + guard_try_fire_or_aim_at_target(TARGET_BOND | TARGET_AIM_ONLY, 0, 0x03) // aim... + label(0x03) + guard_try_fire_or_aim_at_target_update(TARGET_BOND, 0, 0x03) // FIRE! + label(0x03) + goto_loop_start(0x1E) // loop until guard has stopped firing at bond + if_guard_has_stopped_moving(0x03) + goto_loop_repeat(0x1E) + label(0x03) + set_return_ai_list(GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE) + jump_to_ai_list(CHR_SELF, GLIST_RUN_TO_BOND_SUBROUTINE) + ai_list_end +}; + +//D:80037444 +u8 dword_D_80037444[] = { // GLIST_REMOVE_CHR: remove chr + chr_remove_instant(CHR_SELF) // remove self + jump_to_ai_list(CHR_SELF, GLIST_END_ROUTINE) + ai_list_end +}; + +//D:8003744C +struct struct_13 D_8003744C[] = { // global ai lists (glists) + {dword_D_80037070, GLIST_AIM_AT_BOND}, + {dword_D_8003707C, GLIST_END_ROUTINE}, + {dword_D_80037084, GLIST_DETECT_BOND_SPAWN_CLONE_ON_HEARD_GUNFIRE}, + {dword_D_800370DC, GLIST_IDLE_RAND_ANIM_SUBROUTINE}, + {dword_D_8003713C, GLIST_KEYBOARD_RAND_ANIM_SUBROUTINE}, + {dword_D_8003717C, GLIST_DETECT_BOND_DEAF_NO_CLONE_NO_IDLE_ANIM}, + {dword_D_800371B4, GLIST_FIRE_RAND_ANIM_SUBROUTINE}, + {dword_D_80037250, GLIST_DETECT_BOND_NO_CLONE_NO_IDLE_ANIM}, + {dword_D_8003720C, GLIST_RUN_TO_BOND_SUBROUTINE}, + {dword_D_80037280, GLIST_RUN_TO_CHR_PADPRESET_AND_ACTIVATE_ALARM}, + {dword_D_800372D0, GLIST_STARTLE_CHR_AND_RUN_TO_BOND_SUBROUTINE}, + {dword_D_80037224, GLIST_SPAWN_CLONE_OR_RUN_TO_BOND}, + {dword_D_80037248, GLIST_RUN_TO_BOND_AND_FIRE}, + {dword_D_800372E0, GLIST_RUN_TO_BOND_AND_FIRE_HALT_CHR_RANDOMLY}, + {dword_D_800373D0, GLIST_WAIT_ONE_SECOND_SUBROUTINE}, + {dword_D_800373E0, GLIST_EXIT_LEVEL}, + {dword_D_800373E8, GLIST_DRAW_DD44_AND_FIRE}, + {dword_D_80037444, GLIST_REMOVE_CHR} +}; +//D:800374DC +u32 D_800374DC[] = {0,0}; + +//D:800374E4 +char * setup_text_pointers[] = { + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "UsetupsevbunkerZ", + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,"UsetupsiloZ", + "UsetupsevbunkerZ","UsetupstatueZ","UsetupcontrolZ","UsetuparchZ","UsetuptraZ", + "UsetupdestZ","UsetupsevbZ","UsetupaztZ","UsetuppeteZ","UsetupdepoZ","UsetuprefZ", + "UsetupcrypZ","UsetupdamZ","UsetuparkZ","UsetuprunZ","UsetupsevxZ","UsetupjunZ", + "UsetupdishZ","UsetupcaveZ","UsetupcatZ","UsetupcradZ","UsetupshoZ","UsetupsevxbZ", + "UsetupeldZ","UsetupimpZ","UsetupashZ","UsetuplueZ","UsetupameZ","UsetupritZ", + "UsetupoatZ","UsetupearZ","UsetupleeZ","UsetuplipZ","UsetuplenZ","UsetupwaxZ", + "UsetuppamZ", NULL, NULL +}; + + +//D:800375D0 +struct PitemZ_header Palarm1z_header = {0, &model_object_standard_object, 0, 0, 1, 304.6402, 2, 0, 0}; +//D:800375F0 +struct PitemZ_header Palarm2Z_header = {0, &model_object_standard_object, 0, 0, 1, 208.22205, 3, 0, 0}; +//D:80037610 +struct PitemZ_header PexplosionbitZ_header = {0, &model_object_standard_object, 0, 0, 1, 208.22205, 0, 0, 0}; +//D:80037630 +struct PitemZ_header Pammo_crate1Z_header = {0, &model_object_standard_object, 0, 0, 1, 691.83429, 3, 0, 0}; +//D:80037650 +struct PitemZ_header Pammo_crate2Z_header = {0, &model_object_standard_object, 0, 0, 1, 691.83429, 4, 0, 0}; +//D:80037670 +struct PitemZ_header Pammo_crate3Z_header = {0, &model_object_standard_object, 0, 0, 1, 691.83429, 4, 0, 0}; +//D:80037690 +struct PitemZ_header Pammo_crate4Z_header = {0, &model_object_standard_object, 0, 0, 1, 691.83429, 5, 0, 0}; +//D:800376B0 +struct PitemZ_header Pammo_crate5Z_header = {0, &model_object_standard_object, 0, 0, 1, 691.83429, 5, 0, 0}; +//D:800376D0 +struct PitemZ_header Pbin1Z_header = {0, &model_object_standard_object, 0, 0, 1, 3027.6262, 2, 0}; +//D:800376F0 +struct PitemZ_header Pblotter1Z_header = {0, &model_object_standard_object, 0, 0, 1, 432.46707, 1, 0, 0}; +//D:80037710 +struct PitemZ_header Pbook1Z_header = {0, &model_object_standard_object, 0, 0, 1, 171.37482, 2, 0, }; +//D:80037730 +struct PitemZ_header Pbookshelf1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1166.7578, 0xD, 0, 0}; +//D:80037750 +struct PitemZ_header Pbridge_console1aZ_header = {0, &prop_console_four_screen_related, 0, 0, 0x40001, 788.03992, 0xF, 0, 0}; +//D:80037770 +struct PitemZ_header Pbridge_console1bZ_header = {0, &prop_console_one_screen_related, 0, 0, 0x10001, 788.03992, 0x10, 0, 0}; +//D:80037790 +struct PitemZ_header Pbridge_console2aZ_header = {0, &prop_console_four_screen_related, 0, 0, 0x40001, 788.03992, 0xF, 0, 0}; +//D:800377B0 +struct PitemZ_header Pbridge_console2bZ_header = {0, &model_object_standard_object, 0, 0, 1, 788.03992, 0xF, 0, 0}; +//D:800377D0 +struct PitemZ_header Pbridge_console3aZ_header = {0, &prop_console_four_screen_related, 0, 0, 0x40001, 788.03992, 0xF, 0, 0}; +//D:800377F0 +struct PitemZ_header Pbridge_console3bZ_header = {0, &prop_console_four_screen_related, 0, 0, 0x40001, 788.03992, 0x10, 0, 0}; +//D:80037810 +struct PitemZ_header Pcard_box1Z_header = {0, &model_object_standard_object, 0, 0, 1, 727.4613, 5, 0, 0}; +//D:80037830 +struct PitemZ_header Pcard_box2Z_header = {0, &model_object_standard_object, 0, 0, 1, 727.4613, 6, 0, 0}; +//D:80037850 +struct PitemZ_header Pcard_box3Z_header = {0, &model_object_standard_object, 0, 0, 1, 727.4613, 5, 0, 0}; +//D:80037870 +struct PitemZ_header Pcard_box4_lgZ_header = {0, &model_object_standard_object, 0, 0, 1, 800.2074, 4, 0, 0}; +//D:80037890 +struct PitemZ_header Pcard_box5_lgZ_header = {0, &model_object_standard_object, 0, 0, 1, 800.2074, 5, 0, 0}; +//D:800378B0 +struct PitemZ_header Pcard_box6_lgZ_header = {0, &model_object_standard_object, 0, 0, 1, 800.2074, 5, 0, 0}; +//D:800378D0 +struct PitemZ_header PcctvZ_header = {0, &prop_cctv_related, 0, 0, 0x40002, 558.90094, 6, 0}; +//D:800378F0 +struct PitemZ_header Pconsole1Z_header = {0, &prop_console_four_screen_related, 0, 0, 0x40001, 1611.2357, 0xA, 0, 0}; +//D:80037910 +struct PitemZ_header Pconsole2Z_header = {0, &prop_console_four_screen_related, 0, 0, 0x40001, 1611.2357, 0xA, 0, 0}; +//D:80037930 +struct PitemZ_header Pconsole3Z_header = {0, &prop_console_four_screen_related, 0, 0, 0x40001, 1611.2357, 0xA, 0, 0}; +//D:80037950 +struct PitemZ_header Pconsole_sevaZ_header = {0, &model_object_standard_object, 0, 0, 1, 994.23688, 0xE, 0, 0}; +//D:80037970 +struct PitemZ_header Pconsole_sevbZ_header = {0, &prop_console_one_screen_related, 0, 0, 0x10001, 994.23688, 0xB, 0, 0}; +//D:80037990 +struct PitemZ_header Pconsole_sevcZ_header = {0, &model_object_standard_object, 0, 0, 1, 994.23688, 0xF, 0, 0}; +//D:800379B0 +struct PitemZ_header Pconsole_sevdZ_header = {0, &model_object_standard_object, 0, 0, 1, 994.23688, 0xD, 0, 0}; +//D:800379D0 +struct PitemZ_header Pconsole_sev2aZ_header = {0, &model_object_standard_object, 0, 0, 1, 994.23688, 0xD, 0, 0}; +//D:800379F0 +struct PitemZ_header Pconsole_sev2bZ_header = {0, &prop_console_one_screen_related, 0, 0, 0x10001, 994.23688, 0xD, 0, 0}; +//D:80037A10 +struct PitemZ_header Pconsole_sev2cZ_header = {0, &model_object_standard_object, 0, 0, 1, 994.23688, 0xF, 0, 0}; +//D:80037A30 +struct PitemZ_header Pconsole_sev2dZ_header = {0, &model_object_standard_object, 0, 0, 1, 994.23688, 0xD, 0, 0}; +//D:80037A50 +struct PitemZ_header Pconsole_sev_GEaZ_header = {0, &model_object_standard_object, 0, 0, 1, 994.23688, 0xD, 0, 0}; +//D:80037A70 +struct PitemZ_header Pconsole_sev_GEbZ_header = {0, &model_object_standard_object, 0, 0, 1, 994.23688, 0xD, 0, 0}; +//D:80037A90 +struct PitemZ_header Pdesk1Z_header = {0, &model_object_standard_object, 0, 0, 1, 957.18225, 3, 0, }; +//D:80037AB0 +struct PitemZ_header Pdesk2Z_header = {0, &model_object_standard_object, 0, 0, 1, 957.18225, 3, 0, }; +//D:80037AD0 +struct PitemZ_header Pdesk_lamp2Z_header = {0, &model_object_standard_object, 0, 0, 1, 804.59833, 4, 0, 0}; +//D:80037AF0 +struct PitemZ_header Pdisc_readerZ_header = {0, &model_object_standard_object, 0, 0, 1, 214.33035, 6, 0, 0}; +//D:80037B10 +struct PitemZ_header Pdisk_drive1Z_header = {0, &model_object_standard_object, 0, 0, 1, 191.85779, 4, 0, 0}; +//D:80037B30 +struct PitemZ_header Pfiling_cabinet1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1055.5693, 2, 0, 0}; +//D:80037B50 +struct PitemZ_header Pjerry_can1Z_header = {0, &model_object_standard_object, 0, 0, 1, 366.61932, 4, 0, 0}; +//D:80037B70 +struct PitemZ_header Pkeyboard1Z_header = {0, &model_object_standard_object, 0, 0, 1, 278.23227, 2, 0, 0}; +//D:80037B90 +struct PitemZ_header Pkit_units1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1661.4763, 4, 0, 0}; +//D:80037BB0 +struct PitemZ_header Pletter_tray1Z_header = {0, &model_object_standard_object, 0, 0, 1, 252.06836, 1, 0, 0}; +//D:80037BD0 +struct PitemZ_header Pmainframe1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1119.4073, 7, 0, 0}; +//D:80037BF0 +struct PitemZ_header Pmainframe2Z_header = {0, &model_object_standard_object, 0, 0, 1, 1119.4073, 7, 0, 0}; +//D:80037C10 +struct PitemZ_header Pmetal_chair1Z_header = {0, &model_object_standard_object, 0, 0, 1, 639.18097, 2, 0, 0}; +//D:80037C30 +struct PitemZ_header Pmetal_crate1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1010.363, 3, 0, 0}; +//D:80037C50 +struct PitemZ_header Pmetal_crate2Z_header = {0, &model_object_standard_object, 0, 0, 1, 1010.363, 3, 0, 0}; +//D:80037C70 +struct PitemZ_header Pmetal_crate3Z_header = {0, &model_object_standard_object, 0, 0, 1, 1010.363, 2, 0, 0}; +//D:80037C90 +struct PitemZ_header Pmetal_crate4Z_header = {0, &model_object_standard_object, 0, 0, 1, 1010.363, 3, 0, 0}; +//D:80037CB0 +struct PitemZ_header Pmissile_rackZ_header = {0, &model_object_standard_object, 0, 0, 1, 964.16296, 4, 0, 0}; +//D:80037CD0 +struct PitemZ_header Pmissile_rack2Z_header = {0, &model_object_standard_object, 0, 0, 1, 1148.4724, 4, 0, 0}; +//D:80037CF0 +struct PitemZ_header Poil_drum1Z_header = {0, &model_object_standard_object, 0, 0, 1, 745.45892, 2, 0, 0}; +//D:80037D10 +struct PitemZ_header Poil_drum2Z_header = {0, &model_object_standard_object, 0, 0, 1, 745.45892, 4, 0, 0}; +//D:80037D30 +struct PitemZ_header Poil_drum3Z_header = {0, &model_object_standard_object, 0, 0, 1, 745.45892, 4, 0, 0}; +//D:80037D50 +struct PitemZ_header Poil_drum5Z_header = {0, &model_object_standard_object, 0, 0, 1, 745.45892, 3, 0, 0}; +//D:80037D70 +struct PitemZ_header Poil_drum6Z_header = {0, &model_object_standard_object, 0, 0, 1, 745.45892, 3, 0, 0}; +//D:80037D90 +struct PitemZ_header Poil_drum7Z_header = {0, &model_object_standard_object, 0, 0, 1, 745.45892, 4, 0, 0}; +//D:80037DB0 +struct PitemZ_header PpadlockZ_header = {0, &model_object_standard_object, 0, 0, 1, 225.64145, 4, 0, 0}; +//D:80037DD0 +struct PitemZ_header Pphone1Z_header = {0, &model_object_standard_object, 0, 0, 1, 166.03481, 2, 0, 0}; +//D:80037DF0 +struct PitemZ_header Pradio_unit1Z_header = {0, &model_object_standard_object, 0, 0, 1, 354.59534, 5, 0, 0}; +//D:80037E10 +struct PitemZ_header Pradio_unit2Z_header = {0, &model_object_standard_object, 0, 0, 1, 354.59534, 5, 0, 0}; +//D:80037E30 +struct PitemZ_header Pradio_unit3Z_header = {0, &model_object_standard_object, 0, 0, 1, 354.59534, 5, 0, 0}; +//D:80037E50 +struct PitemZ_header Pradio_unit4Z_header = {0, &model_object_standard_object, 0, 0, 1, 354.59534, 5, 0, 0}; +//D:80037E70 +struct PitemZ_header Psat1_reflectZ_header = {0, &model_object_standard_object, 0, 0, 1, 5185.9409, 0xD, 0, 0}; +//D:80037E90 +struct PitemZ_header PsatdishZ_header = {0, &model_object_standard_object, 0, 0, 1, 2437.468, 2, 0, 0}; +//D:80037EB0 +struct PitemZ_header PsatboxZ_header = {0, &model_object_standard_object, 0, 0, 1, 89.935875, 1, 0, 0}; +//D:80037ED0 +struct PitemZ_header Pstool1Z_header = {0, &model_object_standard_object, 0, 0, 1, 353.11398, 2, 0, 0}; +//D:80037EF0 +struct PitemZ_header Pswivel_chair1Z_header = {0, &model_object_standard_object, 0, 0, 1, 581.16394, 3, 0, 0}; +//D:80037F10 +struct PitemZ_header Ptorpedo_rackZ_header = {0, &model_object_standard_object, 0, 0, 1, 765.61725, 3, 0, 0}; +//D:80037F30 +struct PitemZ_header Ptv1Z_header = {0, &prop_console_one_screen_related, 0, 0, 0x10001, 347.0235, 5, 0}; +//D:80037F50 +struct PitemZ_header Ptv_holderZ_header = {0, &prop_tv_holder_related, 0, 0, 0x40005, 1352.4841, 2, 0, 0}; +//D:80037F70 +struct PitemZ_header PtvscreenZ_header = {0, &prop_console_one_screen_related, 0, 0, 0x10001, 211.74477, 1, 0, 0}; +//D:80037F90 +struct PitemZ_header Ptv4screenZ_header = {0, &prop_console_four_screen_related, 0, 0, 0x40001, 211.74477, 1, 0, 0}; +//D:80037FB0 +struct PitemZ_header Pwood_lg_crate1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1010.363, 3, 0, 0}; +//D:80037FD0 +struct PitemZ_header Pwood_lg_crate2Z_header = {0, &model_object_standard_object, 0, 0, 1, 1010.363, 2, 0, 0}; +//D:80037FF0 +struct PitemZ_header Pwood_md_crate3Z_header = {0, &model_object_standard_object, 0, 0, 1, 909.32666, 2, 0, 0}; +//D:80038010 +struct PitemZ_header Pwood_sm_crate4Z_header = {0, &model_object_standard_object, 0, 0, 1, 727.4613, 3, 0, 0}; +//D:80038030 +struct PitemZ_header Pwood_sm_crate5Z_header = {0, &model_object_standard_object, 0, 0, 1, 727.4613, 4, 0, 0}; +//D:80038050 +struct PitemZ_header Pwood_sm_crate6Z_header = {0, &model_object_standard_object, 0, 0, 1, 727.4613, 4, 0, 0}; +//D:80038070 +struct PitemZ_header Pwooden_table1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1095.1365, 2, 0, 0}; +//D:80038090 +struct PitemZ_header Pswipe_card2Z_header = {0, &model_object_standard_object, 0, 0, 1, 123.088844, 2, 0, 0}; +//D:800380B0 +struct PitemZ_header Pborg_crateZ_header = {0, &model_object_standard_object, 0, 0, 1, 1010.363, 1, 0, 0}; +//D:800380D0 +struct PitemZ_header Pboxes4x4Z_header = {0, &model_object_standard_object, 0, 0, 1, 2424.8711, 7, 0, 0}; +//D:800380F0 +struct PitemZ_header Pboxes3x4Z_header = {0, &model_object_standard_object, 0, 0, 1, 2241.0935, 6, 0, 0}; +//D:80038110 +struct PitemZ_header Pboxes2x4Z_header = {0, &model_object_standard_object, 0, 0, 1, 2100.0, 6, 0, 0}; +//D:80038130 +struct PitemZ_header Psec_panelZ_header = {0, &model_object_standard_object, 0, 0, 1, 1567.2454, 3, 0, 0}; +//D:80038150 +struct PitemZ_header PICBM_noseZ_header = {0, &model_object_standard_object, 0, 0, 1, 2782.7126, 8, 0, 0}; +//D:80038170 +struct PitemZ_header PICBMZ_header = {0, &model_object_standard_object, 0, 0, 1, 14790.535, 0xE, 0}; +//D:80038190 +struct PitemZ_header Ptuning_console1Z_header = {0, &prop_console_one_screen_related, 0, 0, 0x10001, 1139.5872, 0xE, 0, 0}; +//D:800381B0 +struct PitemZ_header Pdesk_arecibo1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1829.1477, 3, 0, 0}; +//D:800381D0 +struct PitemZ_header Plocker3Z_header = {0, &model_object_standard_object, 0, 0, 1, 916.99805, 3, 0, 0}; +//D:800381F0 +struct PitemZ_header Plocker4Z_header = {0, &model_object_standard_object, 0, 0, 1, 916.99805, 3, 0, 0}; +//D:80038210 +struct PitemZ_header ProofgunZ_header = {0, &prop_rotating_stuff_related, 0, 0, 0x80005, 1910.908, 0xE, 0, 0}; +//D:80038230 +struct PitemZ_header Pdest_engineZ_header = {0, &model_object_standard_object, 0, 0, 1, 6459.439, 0xA, 0, 0}; +//D:80038250 +struct PitemZ_header Pdest_exocetZ_header = {0, &model_object_standard_object, 0, 0, 1, 1644.8435, 8, 0, 0}; +//D:80038270 +struct PitemZ_header Pdest_gunZ_header = {0, &model_object_standard_object, 0, 0, 1, 2124.0735, 5, 0, 0}; +//D:80038290 +struct PitemZ_header Pdest_harpoonZ_header = {0, &model_object_standard_object, 0, 0, 1, 1798.7655, 5, 0, 0}; +//D:800382B0 +struct PitemZ_header Pdest_seawolfZ_header = {0, &model_object_standard_object, 0, 0, 1, 2282.0623, 0xA, 0, 0}; +//D:800382D0 +struct PitemZ_header PwindowZ_header = {0, &model_object_standard_object, 0, 0, 1, 423.48956, 1, 0, 0}; +//D:800382F0 +struct PitemZ_header Pwindow_lib_lg1Z_header = {0, &model_object_standard_object, 0, 0, 1, 835.20624, 1, 0, 0}; +//D:80038310 +struct PitemZ_header Pwindow_lib_sm1Z_header = {0, &model_object_standard_object, 0, 0, 1, 601.28625, 1, 0, 0}; +//D:80038330 +struct PitemZ_header Pwindow_cor11Z_header = {0, &model_object_standard_object, 0, 0, 1, 414.53622, 1, 0, 0}; +//D:80038350 +struct PitemZ_header Pjungle3_treeZ_header = {0, &model_object_standard_object, 0, 0, 1, 28729.467, 5, 0, 0}; +//D:80038370 +struct PitemZ_header PpalmZ_header = {0, &model_object_standard_object, 0, 0, 1, 15501.406, 3, 0}; +//D:80038390 +struct PitemZ_header PpalmtreeZ_header = {0, &model_object_standard_object, 0, 0, 1, 1781.4542, 2, 0, 0}; +//D:800383B0 +struct PitemZ_header Pplant2bZ_header = {0, &model_object_standard_object, 0, 0, 1, 1252.9539, 2, 0, 0}; +//D:800383D0 +struct PitemZ_header PlabbenchZ_header = {0, &model_object_standard_object, 0, 0, 1, 844.09717, 4, 0, 0}; +//D:800383F0 +struct PitemZ_header PgasbarrelZ_header = {0, &model_object_standard_object, 0, 0, 1, 725.94379, 2, 0, 0}; +//D:80038410 +struct PitemZ_header PgasbarrelsZ_header = {0, &model_object_standard_object, 0, 0, 1, 1174.1927, 2, 0, 0}; +//D:80038430 +struct PitemZ_header PbodyarmourZ_header = {0, &model_object_standard_object, 0, 0, 1, 246.94099, 7, 0, 0}; +//D:80038450 +struct PitemZ_header PbodyarmourvestZ_header = {0, &model_object_standard_object, 0, 0, 1, 241.82211, 2, 0, 0}; +//D:80038470 +struct PitemZ_header PgastankZ_header = {0, &model_object_standard_object, 0, 0, 1, 1130.0691, 5, 0, 0}; +//D:80038490 +struct PitemZ_header Pglassware1Z_header = {0, &model_object_standard_object, 0, 0, 1, 72.111031, 1, 0, 0}; +//D:800384B0 +struct PitemZ_header PhatchboltZ_header = {0, &model_object_standard_object, 0, 0, 1, 2236.0679, 1, 0, 0}; +//D:800384D0 +struct PitemZ_header PbrakeunitZ_header = {0, &model_object_standard_object, 0, 0, 1, 801.95074, 4, 0, 0}; +//D:800384F0 +struct PitemZ_header Pak47magZ_header = {0, &model_object_standard_object, 0, 0, 1, 107.11019, 2, 0, 0}; +//D:80038510 +struct PitemZ_header Pm16magZ_header = {0, &model_object_standard_object, 0, 0, 1, 87.934891, 2, 0, 0}; +//D:80038530 +struct PitemZ_header Pmp5kmagZ_header = {0, &model_object_standard_object, 0, 0, 1, 119.547295, 2, 0, 0}; +//D:80038550 +struct PitemZ_header PskorpionmagZ_header = {0, &model_object_standard_object, 0, 0, 1, 58.428444, 2, 0, 0}; +//D:80038570 +struct PitemZ_header PspectremagZ_header = {0, &model_object_standard_object, 0, 0, 1, 99.01432, 2, 0, 0}; +//D:80038590 +struct PitemZ_header PuzimagZ_header = {0, &model_object_standard_object, 0, 0, 1, 74.28373, 2, 0, 0}; +//D:800385B0 +struct PitemZ_header PsilencerZ_header = {0, &model_object_standard_object, 0, 0, 1, 63.915436, 3, 0, 0}; +//D:800385D0 +struct PitemZ_header PchrextinguisherZ_header = {0, &model_object_standard_object, 0, 0, 1, 425.50903, 2, 0, 0}; +//D:800385F0 +struct PitemZ_header PboxcartridgesZ_header = {0, &model_object_standard_object, 0, 0, 1, 66.81916, 3, 0, 0}; +//D:80038610 +struct PitemZ_header Pfnp90magZ_header = {0, &model_object_standard_object, 0, 0, 1, 176.28201, 2, 0, 0}; +//D:80038630 +struct PitemZ_header PgoldenshellsZ_header = {0, &model_object_standard_object, 0, 0, 1, 66.81916, 3, 0, 0}; +//D:80038650 +struct PitemZ_header PmagnumshellsZ_header = {0, &model_object_standard_object, 0, 0, 1, 66.81916, 3, 0, 0}; +//D:80038670 +struct PitemZ_header PwppkmagZ_header = {0, &model_object_standard_object, 0, 0, 1, 74.28373, 2, 0, 0}; +//D:80038690 +struct PitemZ_header Ptt33magZ_header = {0, &model_object_standard_object, 0, 0, 1, 74.28373, 2, 0, 0}; +//D:800386B0 +struct PitemZ_header Psev_doorZ_header = {0, &model_object_standard_object, 0, 0, 1, 1143.7695, 3, 0, 0}; +//D:800386D0 +struct PitemZ_header Psev_door3Z_header = {0, &model_object_standard_object, 0, 0, 1, 1143.5603, 6, 0, 0}; +//D:800386F0 +struct PitemZ_header Psev_door3_windZ_header = {0, &model_object_standard_object, 0, 0, 1, 1143.5603, 5, 0, 0}; +//D:80038710 +struct PitemZ_header Psev_door4_windZ_header = {0, &prop_door_related, 0, 0, 0x40001, 1143.5603, 8, 0, 0}; +//D:80038730 +struct PitemZ_header Psev_trislideZ_header = {0, &prop_door_related, 0, 0, 0x40001, 950.54327, 2, 0, 0}; +//D:80038750 +struct PitemZ_header Psev_door_v1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1137.8739, 6, 0, 0}; +//D:80038770 +struct PitemZ_header Psteel_door1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1137.8739, 4, 0, 0}; +//D:80038790 +struct PitemZ_header Psteel_door2Z_header = {0, &model_object_standard_object, 0, 0, 1, 1137.8739, 9, 0, 0}; +//D:800387B0 +struct PitemZ_header Psteel_door3Z_header = {0, &model_object_standard_object, 0, 0, 1, 1137.8739, 9, 0, 0}; +//D:800387D0 +struct PitemZ_header Psilo_lift_doorZ_header = {0, &model_object_standard_object, 0, 0, 1, 600.71082, 4, 0, 0}; +//D:800387F0 +struct PitemZ_header Psteel_door2bZ_header = {0, &model_object_standard_object, 0, 0, 1, 1137.8739, 9, 0, 0}; +//D:80038810 +struct PitemZ_header Pdoor_roller1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1032.125, 4, 0, 0}; +//D:80038830 +struct PitemZ_header Pdoor_roller2Z_header = {0, &model_object_standard_object, 0, 0, 1, 1032.125, 4, 0, 0}; +//D:80038850 +struct PitemZ_header Pdoor_roller3Z_header = {0, &model_object_standard_object, 0, 0, 1, 1032.125, 4, 0, 0}; +//D:80038870 +struct PitemZ_header Pdoor_roller4Z_header = {0, &model_object_standard_object, 0, 0, 1, 1032.125, 4, 0, 0}; +//D:80038890 +struct PitemZ_header Pdoor_st_arec1Z_header = {0, &model_object_standard_object, 0, 0, 1, 763.03589, 3, 0, 0}; +//D:800388B0 +struct PitemZ_header Pdoor_st_arec2Z_header = {0, &model_object_standard_object, 0, 0, 1, 763.03589, 3, 0, 0}; +//D:800388D0 +struct PitemZ_header Pdoor_dest1Z_header = {0, &model_object_standard_object, 0, 0, 1, 461.3873, 3, 0, 0}; +//D:800388F0 +struct PitemZ_header Pdoor_dest2Z_header = {0, &model_object_standard_object, 0, 0, 1, 461.3873, 5, 0, 0}; +//D:80038910 +struct PitemZ_header Pgas_plant_sw_do1Z_header = {0, &model_object_standard_object, 0, 0, 1, 862.29706, 4, 0, 0}; +//D:80038930 +struct PitemZ_header Pgas_plant_sw2_do1Z_header = {0, &model_object_standard_object, 0, 0, 1, 862.88489, 2, 0, 0}; +//D:80038950 +struct PitemZ_header Pgas_plant_sw3_do1Z_header = {0, &model_object_standard_object, 0, 0, 1, 862.88489, 2, 0, 0}; +//D:80038970 +struct PitemZ_header Pgas_plant_sw4_do1Z_header = {0, &model_object_standard_object, 0, 0, 1, 862.88489, 1, 0, 0}; +//D:80038990 +struct PitemZ_header Pgas_plant_met1_do1Z_header = {0, &model_object_standard_object, 0, 0, 1, 862.88489, 5, 0, 0}; +//D:800389B0 +struct PitemZ_header Pgas_plant_wc_cub1Z_header = {0, &model_object_standard_object, 0, 0, 1, 783.8501, 3, 0, 0}; +//D:800389D0 +struct PitemZ_header Pgasplant_clear_doorZ_header = {0, &prop_door_related, 0, 0, 0x40001, 1025.0952, 2, 0, 0}; +//D:800389F0 +struct PitemZ_header Ptrain_doorZ_header = {0, &model_object_standard_object, 0, 0, 1, 456.99615, 3, 0, 0}; +//D:80038A10 +struct PitemZ_header Ptrain_door2Z_header = {0, &prop_door_related, 0, 0, 0x40001, 445.98541, 3, 0, 0}; +//D:80038A30 +struct PitemZ_header Ptrain_door3Z_header = {0, &prop_door_related, 0, 0, 0x40001, 445.98541, 4, 0, 0}; +//D:80038A50 +struct PitemZ_header Pdoor_eyelidZ_header = {0, &prop_eyelid_door_related, 0, 0, 0x30003, 3165.4348, 3, 0, 0}; +//D:80038A70 +struct PitemZ_header Pdoor_irisZ_header = {0, &prop_iris_door_related, 0, 0, 0xD000D, 1621.3601, 5, 0, 0}; +//D:80038A90 +struct PitemZ_header PsevdoorwoodZ_header = {0, &prop_door_related, 0, 0, 0x40001, 851.62671, 3, 0, 0}; +//D:80038AB0 +struct PitemZ_header PsevdoorwindZ_header = {0, &prop_door_related, 0, 0, 0x40001, 851.62671, 5, 0, 0}; +//D:80038AD0 +struct PitemZ_header PsevdoornowindZ_header = {0, &model_object_standard_object, 0, 0, 1, 863.03766, 2, 0, 0}; +//D:80038AF0 +struct PitemZ_header PsevdoormetslideZ_header = {0, &model_object_standard_object, 0, 0, 1, 863.74707, 2, 0, 0}; +//D:80038B10 +struct PitemZ_header Pcryptdoor1aZ_header = {0, &model_object_standard_object, 0, 0, 1, 502.64923, 2, 0, 0}; +//D:80038B30 +struct PitemZ_header Pcryptdoor1bZ_header = {0, &model_object_standard_object, 0, 0, 1, 400.97537, 2, 0, 0}; +//D:80038B50 +struct PitemZ_header Pcryptdoor2aZ_header = {0, &model_object_standard_object, 0, 0, 1, 502.64923, 2, 0, 0}; +//D:80038B70 +struct PitemZ_header Pcryptdoor2bZ_header = {0, &model_object_standard_object, 0, 0, 1, 400.97537, 2, 0, 0}; +//D:80038B90 +struct PitemZ_header Pcryptdoor3Z_header = {0, &model_object_standard_object, 0, 0, 1, 801.95074, 3, 0, 0}; +//D:80038BB0 +struct PitemZ_header Pcryptdoor4Z_header = {0, &model_object_standard_object, 0, 0, 1, 801.95074, 1, 0, 0}; +//D:80038BD0 +struct PitemZ_header PvertdoorZ_header = {0, &model_object_standard_object, 0, 0, 1, 1997.2246, 5, 0, 0}; +//D:80038BF0 +struct PitemZ_header PhatchdoorZ_header = {0, &model_object_standard_object, 0, 0, 1, 192.1653, 1, 0, 0}; +//D:80038C10 +struct PitemZ_header PdamgatedoorZ_header = {0, &model_object_standard_object, 0, 0, 1, 308.36456, 3, 0, 0}; +//D:80038C30 +struct PitemZ_header PdamtundoorZ_header = {0, &model_object_standard_object, 0, 0, 1, 127.89996, 4, 0, 0}; +//D:80038C50 +struct PitemZ_header PdamchaindoorZ_header = {0, &model_object_standard_object, 0, 0, 1, 171.36655, 2, 0, 0}; +//D:80038C70 +struct PitemZ_header PsilotopdoorZ_header = {0, &model_object_standard_object, 0, 0, 1, 2675.3958, 5, 0, 0}; +//D:80038C90 +struct PitemZ_header Pdoorprison1Z_header = {0, &model_object_standard_object, 0, 0, 1, 1062.0833, 1, 0, 0}; +//D:80038CB0 +struct PitemZ_header PdoorstatgateZ_header = {0, &model_object_standard_object, 0, 0, 1, 1503.9503, 3, 0, 0}; +//D:80038CD0 +struct PitemZ_header PchrkalashZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 403.53766, 8, 0, 0}; +//D:80038CF0 +struct PitemZ_header PchrgrenadelaunchZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 422.48355, 7, 0, 0}; +//D:80038D10 +struct PitemZ_header PchrknifeZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 245.14619, 2, 0, 0}; +//D:80038D30 +struct PitemZ_header PchrlaserZ_header = {0, &prop_weapon_related, 0, 0, 0x30002, 444.66241, 8, 0, 0}; +//D:80038D50 +struct PitemZ_header Pchrm16Z_header = {0, &prop_weapon_related, 0, 0, 0x30002, 964.01367, 6, 0, 0}; +//D:80038D70 +struct PitemZ_header Pchrmp5kZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 277.32227, 9, 0, 0}; +//D:80038D90 +struct PitemZ_header PchrrugerZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 246.72643, 5, 0, 0}; +//D:80038DB0 +struct PitemZ_header PchrwppkZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 125.79879, 5, 0, 0}; +//D:80038DD0 +struct PitemZ_header PchrshotgunZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 488.88385, 8, 0, 0}; +//D:80038DF0 +struct PitemZ_header PchrskorpionZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 183.37708, 7, 0, 0}; +//D:80038E10 +struct PitemZ_header PchrspectreZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 351.26923, 6, 0, 0}; +//D:80038E30 +struct PitemZ_header PchruziZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 265.11813, 7, 0, 0}; +//D:80038E50 +struct PitemZ_header PchrgrenadeZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 118.18749, 2, 0, 0}; +//D:80038E70 +struct PitemZ_header Pchrfnp90Z_header = {0, &prop_weapon_related, 0, 0, 0x30002, 470.04633, 7, 0, 0}; +//D:80038E90 +struct PitemZ_header PchrbriefcaseZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 342.23688, 5, 0, 0}; +//D:80038EB0 +struct PitemZ_header PchrremotemineZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 87.434036, 2, 0, 0}; +//D:80038ED0 +struct PitemZ_header PchrproximitymineZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 87.196609, 2, 0, 0}; +//D:80038EF0 +struct PitemZ_header PchrtimedmineZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 87.245888, 3, 0, 0}; +//D:80038F10 +struct PitemZ_header PchrrocketZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 342.8634, 3, 0, 0}; +//D:80038F30 +struct PitemZ_header PchrgrenaderoundZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 96.976593, 1, 0, 0}; +//D:80038F50 +struct PitemZ_header PchrwppksilZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 219.44571, 6, 0, 0}; +//D:80038F70 +struct PitemZ_header Pchrtt33Z_header = {0, &prop_weapon_related, 0, 0, 0x30001, 142.11539, 5, 0, 0}; +//D:80038F90 +struct PitemZ_header Pchrmp5ksilZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 406.18033, 0xA, 0, 0}; +//D:80038FB0 +struct PitemZ_header PchrautoshotZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 375.50247, 8, 0, 0}; +//D:80038FD0 +struct PitemZ_header PchrgoldenZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 157.98299, 2, 0, 0}; +//D:80038FF0 +struct PitemZ_header PchrthrowknifeZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 217.61888, 2, 0, 0}; +//D:80039010 +struct PitemZ_header PchrsniperrifleZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 616.93939, 5, 0, 0}; +//D:80039030 +struct PitemZ_header PchrrocketlaunchZ_header = {0, &prop_weapon_related, 0, 0, 0x30002, 501.55179, 6, 0, 0}; +//D:80039050 +struct PitemZ_header PhatfurryZ_header = {0, &item_hat_related, 0, 0, 1, 152.53136, 3, 0, 0}; +//D:80039070 +struct PitemZ_header PhatfurrybrownZ_header = {0, &item_hat_related, 0, 0, 1, 152.53136, 3, 0, 0}; +//D:80039090 +struct PitemZ_header PhatfurryblackZ_header = {0, &item_hat_related, 0, 0, 1, 152.53136, 3, 0, 0}; +//D:800390B0 +struct PitemZ_header PhattbirdZ_header = {0, &item_hat_related, 0, 0, 1, 114.45274, 1, 0, 0}; +//D:800390D0 +struct PitemZ_header PhattbirdbrownZ_header = {0, &item_hat_related, 0, 0, 1, 122.7013, 1, 0, 0}; +//D:800390F0 +struct PitemZ_header PhathelmetZ_header = {0, &item_hat_related, 0, 0, 1, 163.84476, 1, 0, 0}; +//D:80039110 +struct PitemZ_header PhathelmetgreyZ_header = {0, &item_hat_related, 0, 0, 1, 163.84476, 1, 0, 0}; +//D:80039130 +struct PitemZ_header PhatmoonZ_header = {0, &item_hat_related, 0, 0, 1, 138.25751, 2, 0, 0}; +//D:80039150 +struct PitemZ_header PhatberetZ_header = {0, &item_hat_related, 0, 0, 1, 116.16043, 1, 0, 0}; +//D:80039170 +struct PitemZ_header PhatberetblueZ_header = {0, &item_hat_related, 0, 0, 1, 116.16043, 2, 0, 0}; +//D:80039190 +struct PitemZ_header PhatberetredZ_header = {0, &item_hat_related, 0, 0, 1, 115.46455, 2, 0, 0}; +//D:800391B0 +struct PitemZ_header PhatpeakedZ_header = {0, &item_hat_related, 0, 0, 1, 148.39027, 1, 0, 0}; +//D:800391D0 +struct PitemZ_header PchrwristdartZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:800391F0 +struct PitemZ_header PchrexplosivepenZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039210 +struct PitemZ_header PchrbombcaseZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 342.23688, 5, 0, 0}; +//D:80039230 +struct PitemZ_header PchrflarepistolZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039250 +struct PitemZ_header PchrpitongunZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039270 +struct PitemZ_header PchrfingergunZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039290 +struct PitemZ_header PchrsilverwppkZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:800392B0 +struct PitemZ_header PchrgoldwppkZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:800392D0 +struct PitemZ_header PchrdynamiteZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:800392F0 +struct PitemZ_header PchrbungeeZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039310 +struct PitemZ_header PchrdoordecoderZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 180.27969, 0x10, 0, 0}; +//D:80039330 +struct PitemZ_header PchrbombdefuserZ_header = {0, &model_object_standard_object, 0, 0, 1, 84.370705, 0xC, 0, 0}; +//D:80039350 +struct PitemZ_header PchrbugdetectorZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039370 +struct PitemZ_header PchrsafecrackercaseZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 342.23688, 5, 0, 0}; +//D:80039390 +struct PitemZ_header PchrcameraZ_header = {0, &model_object_standard_object, 0, 0, 1, 52.775627, 0xB, 0, 0}; +//D:800393B0 +struct PitemZ_header PchrlockexploderZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:800393D0 +struct PitemZ_header PchrdoorexploderZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:800393F0 +struct PitemZ_header PchrkeyanalysercaseZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 342.23688, 5, 0, 0}; +//D:80039410 +struct PitemZ_header PchrweaponcaseZ_header = {0, &model_object_standard_object, 0, 0, 1, 274.2905, 5, 0, 0}; +//D:80039430 +struct PitemZ_header PchrkeyyaleZ_header = {0, &model_object_standard_object, 0, 0, 1, 82.850311, 1, 0, 0}; +//D:80039450 +struct PitemZ_header PchrkeyboltZ_header = {0, &model_object_standard_object, 0, 0, 1, 151.85315, 1, 0, 0}; +//D:80039470 +struct PitemZ_header PchrbugZ_header = {0, &model_object_standard_object, 0, 0, 1, 104.7203, 6, 0, 0}; +//D:80039490 +struct PitemZ_header PchrmicrocameraZ_header = {0, &model_object_standard_object, 0, 0, 1, 126.49728, 7, 0, 0}; +//D:800394B0 +struct PitemZ_header PfloppyZ_header = {0, &model_object_standard_object, 0, 0, 1, 60.902443, 5, 0, 0}; +//D:800394D0 +struct PitemZ_header PchrgoldeneyekeyZ_header = {0, &model_object_standard_object, 0, 0, 1, 98.987083, 5, 0, 0}; +//D:800394F0 +struct PitemZ_header PchrpolarizedglassesZ_header = {0, &model_object_standard_object, 0, 0, 1, 53.776386, 2, 0, 0}; +//D:80039510 +struct PitemZ_header PchrcreditcardZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039530 +struct PitemZ_header PchrdarkglassesZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039550 +struct PitemZ_header PchrgaskeyringZ_header = {0, &model_object_standard_object, 0, 0, 1, 111.59859, 9, 0, 0}; +//D:80039570 +struct PitemZ_header PchrdatathiefZ_header = {0, &model_object_standard_object, 0, 0, 1, 119.78231, 3, 0, 0}; +//D:80039590 +struct PitemZ_header PsafeZ_header = {0, &model_object_standard_object, 0, 0, 1, 1011.18744, 3, 0}; +//D:800395B0 +struct PitemZ_header PbombZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0}; +//D:800395D0 +struct PitemZ_header PchrplansZ_header = {0, &model_object_standard_object, 0, 0, 1, 384.74649, 5, 0, 0}; +//D:800395F0 +struct PitemZ_header PchrspyfileZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039610 +struct PitemZ_header PchrblueprintsZ_header = {0, &model_object_standard_object, 0, 0, 1, 588.65448, 4, 0, 0}; +//D:80039630 +struct PitemZ_header PchrcircuitboardZ_header = {0, &model_object_standard_object, 0, 0, 1, 138.90285, 3, 0, 0}; +//D:80039650 +struct PitemZ_header PchrmapZ_header = {0, &model_object_standard_object, 0, 0, 1, 588.65448, 4, 0, 0}; +//D:80039670 +struct PitemZ_header PchrspooltapeZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039690 +struct PitemZ_header PchraudiotapeZ_header = {0, &model_object_standard_object, 0, 0, 1, 97.531075, 9, 0, 0}; +//D:800396B0 +struct PitemZ_header PchrmicrofilmZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:800396D0 +struct PitemZ_header PchrmicrocodeZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:800396F0 +struct PitemZ_header PchrlectreZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039710 +struct PitemZ_header PchrmoneyZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039730 +struct PitemZ_header PchrgoldbarZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039750 +struct PitemZ_header PchrheroinZ_header = {0, &model_object_standard_object, 0, 0, 1, 288.67514, 1, 0, 0}; +//D:80039770 +struct PitemZ_header PchrclipboardZ_header = {0, &model_object_standard_object, 0, 0, 1, 190.41742, 3, 0, 0}; +//D:80039790 +struct PitemZ_header PchrdossierredZ_header = {0, &model_object_standard_object, 0, 0, 1, 183.54231, 4, 0, 0}; +//D:800397B0 +struct PitemZ_header PchrstafflistZ_header = {0, &model_object_standard_object, 0, 0, 1, 215.17534, 4, 0, 0}; +//D:800397D0 +struct PitemZ_header PchrdattapeZ_header = {0, &model_object_standard_object, 0, 0, 1, 79.868584, 4, 0, 0}; +//D:800397F0 +struct PitemZ_header PchrplastiqueZ_header = {0, &model_object_standard_object, 0, 0, 1, 143.86052, 3, 0, 0}; +//D:80039810 +struct PitemZ_header PchrblackboxZ_header = {0, &model_object_standard_object, 0, 0, 1, 128.31796, 5, 0, 0}; +//D:80039830 +struct PitemZ_header PchrvideotapeZ_header = {0, &model_object_standard_object, 0, 0, 1, 122.69632, 9, 0, 0}; +//D:80039850 +struct PitemZ_header PnintendologoZ_header = {0, &model_object_standard_object, 0, 0, 1, 1868.335, 1, 0, 0}; +//D:80039870 +struct PitemZ_header PgoldeneyelogoZ_header = {0, &model_object_standard_object, 0, 0, 1, 1287.1866, 2, 0, 0}; +//D:80039890 +struct PitemZ_header PwalletbondZ_header = {0, &prop_walletbond_related, 0, 0, 0x2B0001, 3504.53, 0x54, 0, 0}; +//D:800398B0 +struct PitemZ_header PmiltruckZ_header = {0, &prop_car_related, 0, 0, 0xB0005, 4589.7188, 0x16, 0, 0}; +//D:800398D0 +struct PitemZ_header PjeepZ_header = {0, &prop_car_related, 0, 0, 0xB0005, 2107.8105, 0x10, 0}; +//D:800398F0 +struct PitemZ_header ParticZ_header = {0, &prop_car_related, 0, 0, 0xB0005, 2678.5667, 0x11, 0, }; +//D:80039910 +struct PitemZ_header PhelicopterZ_header = {0, &prop_flying_related, 0, 0, 0x60004, 4955.271, 0x18, 0, 0}; +//D:80039930 +struct PitemZ_header PtigerZ_header = {0, &prop_flying_related, 0, 0, 0x60004, 4072.0291, 0xE, 0, }; +//D:80039950 +struct PitemZ_header PmilcopterZ_header = {0, &prop_flying_related, 0, 0, 0x60004, 5316.9155, 0xF, 0, 0}; +//D:80039970 +struct PitemZ_header PhindZ_header = {0, &prop_flying_related, 0, 0, 0x60005, 5315.314, 0xB, 0}; +//D:80039990 +struct PitemZ_header PartictrailerZ_header = {0, &model_object_standard_object, 0, 0, 1, 4014.6265, 0xB, 0, 0}; +//D:800399B0 +struct PitemZ_header PmotorbikeZ_header = {0, &model_object_standard_object, 0, 0, 1, 1610.8706, 6, 0, 0}; +//D:800399D0 +struct PitemZ_header PtankZ_header = {0, &item_tank_related, 0, 0, 0x90005, 6290.8398, 0x18, 0}; +//D:800399F0 +struct PitemZ_header PapcZ_header = {0, &model_object_standard_object, 0, 0, 1, 3611.1035, 0xE, 0}; +//D:80039A10 +struct PitemZ_header PspeedboatZ_header = {0, &model_object_standard_object, 0, 0, 1, 1799.4586, 0xD, 0, 0}; +//D:80039A30 +struct PitemZ_header PplaneZ_header = {0, &prop_flying_related, 0, 0, 0x60003, 9285.4492, 0x1C, 0, }; +//D:80039A50 +struct PitemZ_header Pgun_runway1Z_header = {0, &prop_rotating_stuff_related, 0, 0, 0x80005, 1927.5205, 6, 0, 0}; +//D:80039A70 +struct PitemZ_header PsafedoorZ_header = {0, &model_object_standard_object, 0, 0, 1, 714.14612, 4, 0, 0}; +//D:80039A90 +struct PitemZ_header Pkey_holderZ_header = {0, &model_object_standard_object, 0, 0, 1, 223.87097, 7, 0, 0}; +//D:80039AB0 +struct PitemZ_header PhatchsevxZ_header = {0, &model_object_standard_object, 0, 0, 1, 1224.7664, 2, 0, 0}; +//D:80039AD0 +struct PitemZ_header PsevdishZ_header = {0, &prop_rotating_stuff_related, 0, 0, 0x80003, 14350.1, 7, 0, 0}; +//D:80039AF0 +struct PitemZ_header Parchsecdoor1Z_header = {0, &model_object_standard_object, 0, 0, 1, 455.81409, 3, 0, 0}; +//D:80039B10 +struct PitemZ_header Parchsecdoor2Z_header = {0, &model_object_standard_object, 0, 0, 1, 496.99292, 3, 0, 0}; +//D:80039B30 +struct PitemZ_header PgroundgunZ_header = {0, &prop_rotating_stuff_related, 0, 0, 0x80005, 2182.6472, 4, 0, 0}; +//D:80039B50 +struct PitemZ_header PtrainextdoorZ_header = {0, &model_object_standard_object, 0, 0, 1, 587.70111, 5, 0, 0}; +//D:80039B70 +struct PitemZ_header PcarbmwZ_header = {0, &model_object_standard_object, 0, 0, 1, 553.08728, 0xB, 0, 0}; +//D:80039B90 +struct PitemZ_header PcarescortZ_header = {0, &model_object_standard_object, 0, 0, 1, 1110.5665, 9, 0, 0}; +//D:80039BB0 +struct PitemZ_header PcargolfZ_header = {0, &model_object_standard_object, 0, 0, 1, 1121.6409, 0xA, 0, 0}; +//D:80039BD0 +struct PitemZ_header PcarweirdZ_header = {0, &model_object_standard_object, 0, 0, 1, 984.03931, 0xD, 0, 0}; +//D:80039BF0 +struct PitemZ_header PcarzilZ_header = {0, &prop_car_related, 0, 0, 0xB0005, 1044.5764, 0xD, 0, 0}; +//D:80039C10 +struct PitemZ_header Pshuttle_door_lZ_header = {0, &model_object_standard_object, 0, 0, 1, 706.56641, 7, 0, 0}; +//D:80039C30 +struct PitemZ_header Pshuttle_door_rZ_header = {0, &model_object_standard_object, 0, 0, 1, 706.56641, 8, 0, 0}; +//D:80039C50 +struct PitemZ_header Pdepot_gate_entryZ_header = {0, &model_object_standard_object, 0, 0, 1, 811.28949, 3, 0, 0}; +//D:80039C70 +struct PitemZ_header Pdepot_door_steelZ_header = {0, &model_object_standard_object, 0, 0, 1, 574.79651, 3, 0, 0}; +//D:80039C90 +struct PitemZ_header Pglassware2Z_header = {0, &model_object_standard_object, 0, 0, 1, 98.488579, 3, 0, 0}; +//D:80039CB0 +struct PitemZ_header Pglassware3Z_header = {0, &model_object_standard_object, 0, 0, 1, 137.92715, 1, 0, 0}; +//D:80039CD0 +struct PitemZ_header Pglassware4Z_header = {0, &model_object_standard_object, 0, 0, 1, 177.48241, 2, 0, 0}; +//D:80039CF0 +struct PitemZ_header PlandmineZ_header = {0, &model_object_standard_object, 0, 0, 1, 440.03009, 2, 0, 0}; +//D:80039D10 +struct PitemZ_header Pplant1Z_header = {0, &model_object_standard_object, 0, 0, 1, 2704.1086, 1, 0, 0}; +//D:80039D30 +struct PitemZ_header Pplant11Z_header = {0, &model_object_standard_object, 0, 0, 1, 2704.1086, 1, 0, 0}; +//D:80039D50 +struct PitemZ_header Pplant2Z_header = {0, &model_object_standard_object, 0, 0, 1, 3416.248, 2, 0, 0}; +//D:80039D70 +struct PitemZ_header Pplant3Z_header = {0, &model_object_standard_object, 0, 0, 1, 2986.0405, 1, 0, 0}; +//D:80039D90 +struct PitemZ_header Pjungle5_treeZ_header = {0, &model_object_standard_object, 0, 0, 1, 3277.6123, 4, 0, 0}; +//D:80039DB0 +struct PitemZ_header PlegalpageZ_header = {0, &model_object_standard_object, 0, 0, 1, 2711.7573, 5, 0, 0}; +//D:80039DD0 +struct PitemZ_header Pst_pete_room_1iZ_header = {0, &model_object_standard_object, 0, 0, 1, 8437.5137, 0x17, 0, 0}; +//D:80039DF0 +struct PitemZ_header Pst_pete_room_2iZ_header = {0, &model_object_standard_object, 0, 0, 1, 8515.8164, 0x19, 0, 0}; +//D:80039E10 +struct PitemZ_header Pst_pete_room_3tZ_header = {0, &model_object_standard_object, 0, 0, 1, 4561.9766, 0x1B, 0, 0}; +//D:80039E30 +struct PitemZ_header Pst_pete_room_5cZ_header = {0, &model_object_standard_object, 0, 0, 1, 4561.9766, 0x19, 0, 0}; +//D:80039E50 +struct PitemZ_header Pst_pete_room_6cZ_header = {0, &model_object_standard_object, 0, 0, 1, 5006.2896, 0x17, 0, 0}; +//D:80039E70 +struct PitemZ_header Pdoor_rollertrainZ_header = {0, &model_object_standard_object, 0, 0, 1, 1032.125, 2, 0, 0}; +//D:80039E90 +struct PitemZ_header Pdoor_winZ_header = {0, &model_object_standard_object, 0, 0, 1, 211.90215, 1, 0, 0}; +//D:80039EB0 +struct PitemZ_header Pdoor_aztecZ_header = {0, &model_object_standard_object, 0, 0, 1, 632.48639, 1, 0, 0}; +//D:80039ED0 +struct PitemZ_header PshuttleZ_header = {0, &model_object_standard_object, 0, 0, 1, 4475.1494, 9, 0, 0}; +//D:80039EF0 +struct PitemZ_header Pdoor_azt_deskZ_header = {0, &model_object_standard_object, 0, 0, 1, 860.41669, 2, 0, 0}; +//D:80039F10 +struct PitemZ_header Pdoor_azt_desk_topZ_header = {0, &model_object_standard_object, 0, 0, 1, 565.93268, 3, 0, 0}; +//D:80039F30 +struct PitemZ_header Pdoor_azt_chairZ_header = {0, &model_object_standard_object, 0, 0, 1, 94.510803, 3, 0, 0}; +//D:80039F50 +struct PitemZ_header Pdoor_mfZ_header = {0, &model_object_standard_object, 0, 0, 1, 559.70367, 7, 0, 0}; +//D:80039F70 +struct PitemZ_header PflagZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 862.30865, 2, 0}; +//D:80039F90 +struct PitemZ_header PbarricadeZ_header = {0, &model_object_standard_object, 0, 0, 1, 2047.3016, 2, 0, 0}; +//D:80039FB0 +struct PitemZ_header PmodemboxZ_header = {0, &prop_console_one_screen_related, 0, 0, 0x10001, 338.28839, 4, 0, 0}; +//D:80039FD0 +struct PitemZ_header PdoorpanelZ_header = {0, &prop_console_four_screen_related, 0, 0, 0x40001, 338.28839, 4, 0, 0}; +//D:80039FF0 +struct PitemZ_header PdoorconsoleZ_header = {0, &prop_console_one_screen_related, 0, 0, 0x10001, 994.23688, 0xD, 0, 0}; +//D:8003A010 +struct PitemZ_header PchrtesttubeZ_header = {0, &prop_weapon_related, 0, 0, 0x30001, 136.25925, 2, 0, 0}; +//D:8003A030 +struct PitemZ_header Pbollardz_header = {0, &model_object_standard_object, 0, 0, 1, 628.78754, 1, 0, 0}; + +//D:8003A050 +struct prop_pos_data word_D_8003A050[2] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003} +}; +//D:8003A05C +struct item_related prop_cctv_related = {2, 0, word_D_8003A050, 6, 0}; + +//D:8003A068 +struct prop_pos_data word_D_8003A068[] = { + {0x0002, 0x0000, 0x0000} +}; +//D:8003A06E .half 0 + +//D:8003A070 +struct item_related prop_console_one_screen_related = {1, 0, word_D_8003A068, 3, 0}; + +//D:8003A07C +struct prop_pos_data word_D_8003A07C[] = { + {0x0002, 0x0000, 0x0000} +}; +//D:8003A082 .half 0 + +//D:8003A084 +struct item_related prop_console_four_screen_related = {1, 0, word_D_8003A07C, 3, 0}; + +//D:8003A090 +struct prop_pos_data word_D_8003A090[] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0002, 0x0009, 0x0009}, + {0x0002, 0x000C, 0x000C} +}; +//D:8003A0AE .half 0 + +//D:8003A0B0 +struct item_related prop_tv_holder_related = {5, 0, word_D_8003A090, 0xF, 0}; + +//D:8003A0BC +struct prop_pos_data word_D_8003A0BC[] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0002, 0x0009, 0x0009}, + {0x0002, 0x000C, 0x000C}, + {0x0002, 0x000F, 0x000F} +}; +//D:8003A0E0 +struct item_related prop_rotating_stuff_related = {6, 0, word_D_8003A0BC, 0x12, 0}; + +//D:8003A0EC +struct prop_pos_data word_D_8003A0EC[] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006} +}; +//D:8003A0FE .half 0 +//D:8003A100 +struct item_related prop_eyelid_door_related = {3, 0, word_D_8003A0EC, 9, 0}; + +//D:8003A10C +struct prop_pos_data word_D_8003A10C[] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0002, 0x0009, 0x0009}, + {0x0002, 0x000C, 0x000C}, + {0x0002, 0x000F, 0x000F}, + {0x0002, 0x0012, 0x0012}, + {0x0002, 0x0015, 0x0015}, + {0x0002, 0x0018, 0x0018}, + {0x0002, 0x001B, 0x001B}, + {0x0002, 0x001E, 0x001E}, + {0x0002, 0x0021, 0x0021}, + {0x0002, 0x0024, 0x0024} +}; +//D:8003A15C +struct item_related prop_iris_door_related = {0xD, 0, word_D_8003A10C, 0x27, 0}; + +//D:8003A168 +struct prop_pos_data word_D_8003A168[] = { + {0x0002, 0x0000, 0x0000} +}; +//D:8003A16E .half 0 +//D:8003A170 +struct item_related prop_walletbond_related = {1, 0, word_D_8003A168, 3, 0}; + +//D:8003A17C +struct prop_pos_data word_D_8003A17C[] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0002, 0x0009, 0x0009}, + {0x0002, 0x000C, 0x000C} +}; +//D:8003A19C +struct item_related prop_car_related = {5, 0, word_D_8003A17C, 0xF, 0}; + +//D:8003A1A8 +struct prop_pos_data word_D_8003A1A8[] = { + {0x0401, 0x0000, 0x0000}, + {0x0002, 0x0000, 0x0000}, + {0x0015, 0x0003, 0x0003}, + {0x0015, 0x0004, 0x0004}, + {0x0015, 0x0005, 0x0005} +}; +//D:8003A1C6 .half 0 +//D:8003A1C8 +struct item_related prop_flying_related = {5, 0, word_D_8003A1A8, 3, 0}; + +//D:8003A1D4 +struct prop_pos_data word_D_8003A1D4[] = { + {0x0002, 0x0000, 0x0000} +}; +//D:8003A1DA .half 0 +//D:8003A1DC +struct item_related prop_door_related = {1, 0, word_D_8003A1D4, 3, 0}; + +//D:8003A1E8 +struct prop_pos_data word_D_8003A1E8[] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0002, 0x0009, 0x0009}, + {0x0002, 0x000C, 0x000C} +}; +//D:8003A206 .half 0 +//D:8003A208 +struct item_related item_tank_related = {5, 0, word_D_8003A1E8, 0xF, 0}; + +//D:8003A214 +struct prop_pos_data word_D_8003A214[] = { + {0x0015, 0x0000, 0x0000}, +}; +//D:8003A21A .half 0 +//D:8003A21C +struct item_related item_hat_related = {1, 0, word_D_8003A214, 0, 0}; +const u8 spacer_string[] = "\00\00\00\00\00\00\00\00"; +//D:8003A228 .globl PitemZ_entries +struct p_itementry PitemZ_entries[] = { + {&Palarm1z_header, "Palarm1Z", 0.1}, + {&Palarm2Z_header, "Palarm2Z", 0.1}, + {&PexplosionbitZ_header, "PexplosionbitZ", 0.1}, + {&Pammo_crate1Z_header, "Pammo_crate1Z", 0.1}, + {&Pammo_crate2Z_header, "Pammo_crate2Z", 0.1}, + {&Pammo_crate3Z_header, "Pammo_crate3Z", 0.1}, + {&Pammo_crate4Z_header, "Pammo_crate4Z", 0.1}, + {&Pammo_crate5Z_header, "Pammo_crate5Z", 0.1}, + {&Pbin1Z_header, "Pbin1Z", 0.1}, + {&Pblotter1Z_header, "Pblotter1Z", 0.1}, + {&Pbook1Z_header, "Pbook1Z", 0.1}, + {&Pbookshelf1Z_header, "Pbookshelf1Z", 0.1}, + {&Pbridge_console1aZ_header, "Pbridge_console1aZ", 0.1}, + {&Pbridge_console1bZ_header, "Pbridge_console1bZ", 0.1}, + {&Pbridge_console2aZ_header, "Pbridge_console2aZ", 0.1}, + {&Pbridge_console2bZ_header, "Pbridge_console2bZ", 0.1}, + {&Pbridge_console3aZ_header, "Pbridge_console3aZ", 0.1}, + {&Pbridge_console3bZ_header, "Pbridge_console3bZ", 0.1}, + {&Pcard_box1Z_header, "Pcard_box1Z", 0.1}, + {&Pcard_box2Z_header, "Pcard_box2Z", 0.1}, + {&Pcard_box3Z_header, "Pcard_box3Z", 0.1}, + {&Pcard_box4_lgZ_header, "Pcard_box4_lgZ", 0.1}, + {&Pcard_box5_lgZ_header, "Pcard_box5_lgZ", 0.1}, + {&Pcard_box6_lgZ_header, "Pcard_box6_lgZ", 0.1}, + {&PcctvZ_header, "PcctvZ", 0.1}, + {&Pconsole1Z_header, "Pconsole1Z", 0.1}, + {&Pconsole2Z_header, "Pconsole2Z", 0.1}, + {&Pconsole3Z_header, "Pconsole3Z", 0.1}, + {&Pconsole_sevaZ_header, "Pconsole_sevaZ", 0.1}, + {&Pconsole_sevbZ_header, "Pconsole_sevbZ", 0.1}, + {&Pconsole_sevcZ_header, "Pconsole_sevcZ", 0.1}, + {&Pconsole_sevdZ_header, "Pconsole_sevdZ", 0.1}, + {&Pconsole_sev2aZ_header, "Pconsole_sev2aZ", 0.1}, + {&Pconsole_sev2bZ_header, "Pconsole_sev2bZ", 0.1}, + {&Pconsole_sev2cZ_header, "Pconsole_sev2cZ", 0.1}, + {&Pconsole_sev2dZ_header, "Pconsole_sev2dZ", 0.1}, + {&Pconsole_sev_GEaZ_header, "Pconsole_sev_GEaZ", 0.1}, + {&Pconsole_sev_GEbZ_header, "Pconsole_sev_GEbZ", 0.1}, + {&Pdesk1Z_header, "Pdesk1Z", 0.1}, + {&Pdesk2Z_header, "Pdesk2Z", 0.1}, + {&Pdesk_lamp2Z_header, "Pdesk_lamp2Z", 0.1}, + {&Pdisc_readerZ_header, "Pdisc_readerZ", 0.1}, + {&Pdisk_drive1Z_header, "Pdisk_drive1Z", 0.1}, + {&Pfiling_cabinet1Z_header, "Pfiling_cabinet1Z", 0.1}, + {&Pjerry_can1Z_header, "Pjerry_can1Z", 0.1}, + {&Pkeyboard1Z_header, "Pkeyboard1Z", 0.1}, + {&Pkit_units1Z_header, "Pkit_units1Z", 0.1}, + {&Pletter_tray1Z_header, "Pletter_tray1Z", 0.1}, + {&Pmainframe1Z_header, "Pmainframe1Z", 0.1}, + {&Pmainframe2Z_header, "Pmainframe2Z", 0.1}, + {&Pmetal_chair1Z_header, "Pmetal_chair1Z", 0.1}, + {&Pmetal_crate1Z_header, "Pmetal_crate1Z", 0.1}, + {&Pmetal_crate2Z_header, "Pmetal_crate2Z", 0.1}, + {&Pmetal_crate3Z_header, "Pmetal_crate3Z", 0.1}, + {&Pmetal_crate4Z_header, "Pmetal_crate4Z", 0.1}, + {&Pmissile_rackZ_header, "Pmissile_rackZ", 0.1}, + {&Pmissile_rack2Z_header, "Pmissile_rack2Z", 0.1}, + {&Poil_drum1Z_header, "Poil_drum1Z", 0.1}, + {&Poil_drum2Z_header, "Poil_drum2Z", 0.1}, + {&Poil_drum3Z_header, "Poil_drum3Z", 0.1}, + {&Poil_drum5Z_header, "Poil_drum5Z", 0.1}, + {&Poil_drum6Z_header, "Poil_drum6Z", 0.1}, + {&Poil_drum7Z_header, "Poil_drum7Z", 0.1}, + {&PpadlockZ_header, "PpadlockZ", 0.1}, + {&Pphone1Z_header, "Pphone1Z", 0.1}, + {&Pradio_unit1Z_header, "Pradio_unit1Z", 0.1}, + {&Pradio_unit2Z_header, "Pradio_unit2Z", 0.1}, + {&Pradio_unit3Z_header, "Pradio_unit3Z", 0.1}, + {&Pradio_unit4Z_header, "Pradio_unit4Z", 0.1}, + {&Psat1_reflectZ_header, "Psat1_reflectZ", 0.1}, + {&PsatdishZ_header, "PsatdishZ", 0.1}, + {&PsatboxZ_header, "PsatboxZ", 0.1}, + {&Pstool1Z_header, "Pstool1Z", 0.1}, + {&Pswivel_chair1Z_header, "Pswivel_chair1Z", 0.1}, + {&Ptorpedo_rackZ_header, "Ptorpedo_rackZ", 0.1}, + {&Ptv1Z_header, "Ptv1Z", 0.1}, + {&Ptv_holderZ_header, "Ptv_holderZ", 0.1}, + {&PtvscreenZ_header, "PtvscreenZ", 0.1}, + {&Ptv4screenZ_header, "Ptv4screenZ", 0.1}, + {&Pwood_lg_crate1Z_header, "Pwood_lg_crate1Z", 0.1}, + {&Pwood_lg_crate2Z_header, "Pwood_lg_crate2Z", 0.1}, + {&Pwood_md_crate3Z_header, "Pwood_md_crate3Z", 0.1}, + {&Pwood_sm_crate4Z_header, "Pwood_sm_crate4Z", 0.1}, + {&Pwood_sm_crate5Z_header, "Pwood_sm_crate5Z", 0.1}, + {&Pwood_sm_crate6Z_header, "Pwood_sm_crate6Z", 0.1}, + {&Pwooden_table1Z_header, "Pwooden_table1Z", 0.1}, + {&Pswipe_card2Z_header, "Pswipe_card2Z", 0.1}, + {&Pborg_crateZ_header, "Pborg_crateZ", 0.1}, + {&Pboxes4x4Z_header, "Pboxes4x4Z", 0.1}, + {&Pboxes3x4Z_header, "Pboxes3x4Z", 0.1}, + {&Pboxes2x4Z_header, "Pboxes2x4Z", 0.1}, + {&Psec_panelZ_header, "Psec_panelZ", 0.1}, + {&PICBM_noseZ_header, "PICBM_noseZ", 0.1}, + {&PICBMZ_header, "PICBMZ", 0.1}, + {&Ptuning_console1Z_header, "Ptuning_console1Z", 0.1}, + {&Pdesk_arecibo1Z_header, "Pdesk_arecibo1Z", 0.1}, + {&Plocker3Z_header, "Plocker3Z", 0.1}, + {&Plocker4Z_header, "Plocker4Z", 0.1}, + {&ProofgunZ_header, "ProofgunZ", 0.1}, + {&Pdest_engineZ_header, "Pdest_engineZ", 0.1}, + {&Pdest_exocetZ_header, "Pdest_exocetZ", 0.1}, + {&Pdest_gunZ_header, "Pdest_gunZ", 0.1}, + {&Pdest_harpoonZ_header, "Pdest_harpoonZ", 0.1}, + {&Pdest_seawolfZ_header, "Pdest_seawolfZ", 0.1}, + {&PwindowZ_header, "PwindowZ", 0.1}, + {&Pwindow_lib_lg1Z_header, "Pwindow_lib_lg1Z", 0.1}, + {&Pwindow_lib_sm1Z_header, "Pwindow_lib_sm1Z", 0.1}, + {&Pwindow_cor11Z_header, "Pwindow_cor11Z", 0.1}, + {&Pjungle3_treeZ_header, "Pjungle3_treeZ", 0.1}, + {&PpalmZ_header, "PpalmZ", 0.1}, + {&PpalmtreeZ_header, "PpalmtreeZ", 0.1}, + {&Pplant2bZ_header, "Pplant2bZ", 0.1}, + {&PlabbenchZ_header, "PlabbenchZ", 0.1}, + {&PgasbarrelZ_header, "PgasbarrelZ", 0.1}, + {&PgasbarrelsZ_header, "PgasbarrelsZ", 0.1}, + {&PbodyarmourZ_header, "PbodyarmourZ", 0.1}, + {&PbodyarmourvestZ_header, "PbodyarmourvestZ", 0.1}, + {&PgastankZ_header, "PgastankZ", 0.1}, + {&Pglassware1Z_header, "Pglassware1Z", 0.1}, + {&PhatchboltZ_header, "PhatchboltZ", 0.1}, + {&PbrakeunitZ_header, "PbrakeunitZ", 0.1}, + {&Pak47magZ_header, "Pak47magZ", 0.1}, + {&Pm16magZ_header, "Pm16magZ", 0.1}, + {&Pmp5kmagZ_header, "Pmp5kmagZ", 0.1}, + {&PskorpionmagZ_header, "PskorpionmagZ", 0.1}, + {&PspectremagZ_header, "PspectremagZ", 0.1}, + {&PuzimagZ_header, "PuzimagZ", 0.1}, + {&PsilencerZ_header, "PsilencerZ", 0.1}, + {&PchrextinguisherZ_header, "PchrextinguisherZ", 0.1}, + {&PboxcartridgesZ_header, "PboxcartridgesZ", 0.1}, + {&Pfnp90magZ_header, "Pfnp90magZ", 0.1}, + {&PgoldenshellsZ_header, "PgoldenshellsZ", 0.1}, + {&PmagnumshellsZ_header, "PmagnumshellsZ", 0.1}, + {&PwppkmagZ_header, "PwppkmagZ", 0.1}, + {&Ptt33magZ_header, "Ptt33magZ", 0.1}, + {&Psev_doorZ_header, "Psev_doorZ", 1.0}, + {&Psev_door3Z_header, "Psev_door3Z", 1.0}, + {&Psev_door3_windZ_header, "Psev_door3_windZ", 1.0}, + {&Psev_door4_windZ_header, "Psev_door4_windZ", 1.0}, + {&Psev_trislideZ_header, "Psev_trislideZ", 1.0}, + {&Psev_door_v1Z_header, "Psev_door_v1Z", 1.0}, + {&Psteel_door1Z_header, "Psteel_door1Z", 1.0}, + {&Psteel_door2Z_header, "Psteel_door2Z", 1.0}, + {&Psteel_door3Z_header, "Psteel_door3Z", 1.0}, + {&Psilo_lift_doorZ_header, "Psilo_lift_doorZ", 1.0}, + {&Psteel_door2bZ_header, "Psteel_door2bZ", 1.0}, + {&Pdoor_roller1Z_header, "Pdoor_roller1Z", 1.0}, + {&Pdoor_roller2Z_header, "Pdoor_roller2Z", 1.0}, + {&Pdoor_roller3Z_header, "Pdoor_roller3Z", 1.0}, + {&Pdoor_roller4Z_header, "Pdoor_roller4Z", 1.0}, + {&Pdoor_st_arec1Z_header, "Pdoor_st_arec1Z", 1.0}, + {&Pdoor_st_arec2Z_header, "Pdoor_st_arec2Z", 1.0}, + {&Pdoor_dest1Z_header, "Pdoor_dest1Z", 1.0}, + {&Pdoor_dest2Z_header, "Pdoor_dest2Z", 1.0}, + {&Pgas_plant_sw_do1Z_header, "Pgas_plant_sw_do1Z", 1.0}, + {&Pgas_plant_sw2_do1Z_header, "Pgas_plant_sw2_do1Z", 1.0}, + {&Pgas_plant_sw3_do1Z_header, "Pgas_plant_sw3_do1Z", 1.0}, + {&Pgas_plant_sw4_do1Z_header, "Pgas_plant_sw4_do1Z", 1.0}, + {&Pgas_plant_met1_do1Z_header, "Pgas_plant_met1_do1Z", 1.0}, + {&Pgas_plant_wc_cub1Z_header, "Pgas_plant_wc_cub1Z", 1.0}, + {&Pgasplant_clear_doorZ_header, "Pgasplant_clear_doorZ", 1.0}, + {&Ptrain_doorZ_header, "Ptrain_doorZ", 1.0}, + {&Ptrain_door2Z_header, "Ptrain_door2Z", 1.0}, + {&Ptrain_door3Z_header, "Ptrain_door3Z", 1.0}, + {&Pdoor_eyelidZ_header, "Pdoor_eyelidZ", 1.0}, + {&Pdoor_irisZ_header, "Pdoor_irisZ", 1.0}, + {&PsevdoorwoodZ_header, "PsevdoorwoodZ", 1.0}, + {&PsevdoorwindZ_header, "PsevdoorwindZ", 1.0}, + {&PsevdoornowindZ_header, "PsevdoornowindZ", 1.0}, + {&PsevdoormetslideZ_header, "PsevdoormetslideZ", 1.0}, + {&Pcryptdoor1aZ_header, "Pcryptdoor1aZ", 1.0}, + {&Pcryptdoor1bZ_header, "Pcryptdoor1bZ", 1.0}, + {&Pcryptdoor2aZ_header, "Pcryptdoor2aZ", 1.0}, + {&Pcryptdoor2bZ_header, "Pcryptdoor2bZ", 1.0}, + {&Pcryptdoor3Z_header, "Pcryptdoor3Z", 1.0}, + {&Pcryptdoor4Z_header, "Pcryptdoor4Z", 1.0}, + {&PvertdoorZ_header, "PvertdoorZ", 1.0}, + {&PhatchdoorZ_header, "PhatchdoorZ", 1.0}, + {&PdamgatedoorZ_header, "PdamgatedoorZ", 1.0}, + {&PdamtundoorZ_header, "PdamtundoorZ", 1.0}, + {&PdamchaindoorZ_header, "PdamchaindoorZ", 1.0}, + {&PsilotopdoorZ_header, "PsilotopdoorZ", 1.0}, + {&Pdoorprison1Z_header, "Pdoorprison1Z", 1.0}, + {&PdoorstatgateZ_header, "PdoorstatgateZ", 1.0}, + {&PchrkalashZ_header, "PchrkalashZ", 0.1}, + {&PchrgrenadelaunchZ_header, "PchrgrenadelaunchZ", 0.1}, + {&PchrknifeZ_header, "PchrknifeZ", 0.1}, + {&PchrlaserZ_header, "PchrlaserZ", 0.1}, + {&Pchrm16Z_header, "Pchrm16Z", 0.1}, + {&Pchrmp5kZ_header, "Pchrmp5kZ", 0.1}, + {&PchrrugerZ_header, "PchrrugerZ", 0.1}, + {&PchrwppkZ_header, "PchrwppkZ", 0.1}, + {&PchrshotgunZ_header, "PchrshotgunZ", 0.1}, + {&PchrskorpionZ_header, "PchrskorpionZ", 0.1}, + {&PchrspectreZ_header, "PchrspectreZ", 0.1}, + {&PchruziZ_header, "PchruziZ", 0.1}, + {&PchrgrenadeZ_header, "PchrgrenadeZ", 0.1}, + {&Pchrfnp90Z_header, "Pchrfnp90Z", 0.1}, + {&PchrbriefcaseZ_header, "PchrbriefcaseZ", 0.1}, + {&PchrremotemineZ_header, "PchrremotemineZ", 0.1}, + {&PchrproximitymineZ_header, "PchrproximitymineZ", 0.1}, + {&PchrtimedmineZ_header, "PchrtimedmineZ", 0.1}, + {&PchrrocketZ_header, "PchrrocketZ", 0.1}, + {&PchrgrenaderoundZ_header, "PchrgrenaderoundZ", 0.1}, + {&PchrwppksilZ_header, "PchrwppksilZ", 0.1}, + {&Pchrtt33Z_header, "Pchrtt33Z", 0.1}, + {&Pchrmp5ksilZ_header, "Pchrmp5ksilZ", 0.1}, + {&PchrautoshotZ_header, "PchrautoshotZ", 0.1}, + {&PchrgoldenZ_header, "PchrgoldenZ", 0.1}, + {&PchrthrowknifeZ_header, "PchrthrowknifeZ", 0.1}, + {&PchrsniperrifleZ_header, "PchrsniperrifleZ", 0.1}, + {&PchrrocketlaunchZ_header, "PchrrocketlaunchZ", 0.1}, + {&PhatfurryZ_header, "PhatfurryZ", 0.1}, + {&PhatfurrybrownZ_header, "PhatfurrybrownZ", 0.1}, + {&PhatfurryblackZ_header, "PhatfurryblackZ", 0.1}, + {&PhattbirdZ_header, "PhattbirdZ", 0.1}, + {&PhattbirdbrownZ_header, "PhattbirdbrownZ", 0.1}, + {&PhathelmetZ_header, "PhathelmetZ", 0.1}, + {&PhathelmetgreyZ_header, "PhathelmetgreyZ", 0.1}, + {&PhatmoonZ_header, "PhatmoonZ", 0.1}, + {&PhatberetZ_header, "PhatberetZ", 0.1}, + {&PhatberetblueZ_header, "PhatberetblueZ", 0.1}, + {&PhatberetredZ_header, "PhatberetredZ", 0.1}, + {&PhatpeakedZ_header, "PhatpeakedZ", 0.1}, + {&PchrwristdartZ_header, "PchrwristdartZ", 0.1}, + {&PchrexplosivepenZ_header, "PchrexplosivepenZ", 0.1}, + {&PchrbombcaseZ_header, "PchrbombcaseZ", 0.1}, + {&PchrflarepistolZ_header, "PchrflarepistolZ", 0.1}, + {&PchrpitongunZ_header, "PchrpitongunZ", 0.1}, + {&PchrfingergunZ_header, "PchrfingergunZ", 0.1}, + {&PchrsilverwppkZ_header, "PchrsilverwppkZ", 0.1}, + {&PchrgoldwppkZ_header, "PchrgoldwppkZ", 0.1}, + {&PchrdynamiteZ_header, "PchrdynamiteZ", 0.1}, + {&PchrbungeeZ_header, "PchrbungeeZ", 0.1}, + {&PchrdoordecoderZ_header, "PchrdoordecoderZ", 0.1}, + {&PchrbombdefuserZ_header, "PchrbombdefuserZ", 0.1}, + {&PchrbugdetectorZ_header, "PchrbugdetectorZ", 0.1}, + {&PchrsafecrackercaseZ_header, "PchrsafecrackercaseZ", 0.1}, + {&PchrcameraZ_header, "PchrcameraZ", 0.1}, + {&PchrlockexploderZ_header, "PchrlockexploderZ", 0.1}, + {&PchrdoorexploderZ_header, "PchrdoorexploderZ", 0.1}, + {&PchrkeyanalysercaseZ_header, "PchrkeyanalysercaseZ", 0.1}, + {&PchrweaponcaseZ_header, "PchrweaponcaseZ", 0.1}, + {&PchrkeyyaleZ_header, "PchrkeyyaleZ", 0.1}, + {&PchrkeyboltZ_header, "PchrkeyboltZ", 0.1}, + {&PchrbugZ_header, "PchrbugZ", 0.1}, + {&PchrmicrocameraZ_header, "PchrmicrocameraZ", 0.1}, + {&PfloppyZ_header, "PfloppyZ", 0.1}, + {&PchrgoldeneyekeyZ_header, "PchrgoldeneyekeyZ", 0.1}, + {&PchrpolarizedglassesZ_header, "PchrpolarizedglassesZ", 0.1}, + {&PchrcreditcardZ_header, "PchrcreditcardZ", 0.1}, + {&PchrdarkglassesZ_header, "PchrdarkglassesZ", 0.1}, + {&PchrgaskeyringZ_header, "PchrgaskeyringZ", 0.1}, + {&PchrdatathiefZ_header, "PchrdatathiefZ", 0.1}, + {&PsafeZ_header, "PsafeZ", 0.1}, + {&PbombZ_header, "PbombZ", 0.1}, + {&PchrplansZ_header, "PchrplansZ", 0.1}, + {&PchrspyfileZ_header, "PchrspyfileZ", 0.1}, + {&PchrblueprintsZ_header, "PchrblueprintsZ", 0.1}, + {&PchrcircuitboardZ_header, "PchrcircuitboardZ", 0.1}, + {&PchrmapZ_header, "PchrmapZ", 0.1}, + {&PchrspooltapeZ_header, "PchrspooltapeZ", 0.1}, + {&PchraudiotapeZ_header, "PchraudiotapeZ", 0.1}, + {&PchrmicrofilmZ_header, "PchrmicrofilmZ", 0.1}, + {&PchrmicrocodeZ_header, "PchrmicrocodeZ", 0.1}, + {&PchrlectreZ_header, "PchrlectreZ", 0.1}, + {&PchrmoneyZ_header, "PchrmoneyZ", 0.1}, + {&PchrgoldbarZ_header, "PchrgoldbarZ", 0.1}, + {&PchrheroinZ_header, "PchrheroinZ", 0.1}, + {&PchrclipboardZ_header, "PchrclipboardZ", 0.1}, + {&PchrdossierredZ_header, "PchrdossierredZ", 0.1}, + {&PchrstafflistZ_header, "PchrstafflistZ", 0.1}, + {&PchrdattapeZ_header, "PchrdattapeZ", 0.1}, + {&PchrplastiqueZ_header, "PchrplastiqueZ", 0.1}, + {&PchrblackboxZ_header, "PchrblackboxZ", 0.1}, + {&PchrvideotapeZ_header, "PchrvideotapeZ", 0.1}, + {&PnintendologoZ_header, "PnintendologoZ", 0.1}, + {&PgoldeneyelogoZ_header, "PgoldeneyelogoZ", 0.1}, + {&PwalletbondZ_header, "PwalletbondZ", 0.1}, + {&PmiltruckZ_header, "PmiltruckZ", 0.1}, + {&PjeepZ_header, "PjeepZ", 0.1}, + {&ParticZ_header, "ParticZ", 0.1}, + {&PhelicopterZ_header, "PhelicopterZ", 0.1}, + {&PtigerZ_header, "PtigerZ", 0.1}, + {&PmilcopterZ_header, "PmilcopterZ", 0.1}, + {&PhindZ_header, "PhindZ", 0.1}, + {&PartictrailerZ_header, "PartictrailerZ", 0.1}, + {&PmotorbikeZ_header, "PmotorbikeZ", 0.1}, + {&PtankZ_header, "PtankZ", 0.1}, + {&PapcZ_header, "PapcZ", 0.1}, + {&PspeedboatZ_header, "PspeedboatZ", 0.1}, + {&PplaneZ_header, "PplaneZ", 0.1}, + {&Pgun_runway1Z_header, "Pgun_runway1Z", 0.1}, + {&PsafedoorZ_header, "PsafedoorZ", 1.0}, + {&Pkey_holderZ_header, "Pkey_holderZ", 1.0}, + {&PhatchsevxZ_header, "PhatchsevxZ", 1.0}, + {&PsevdishZ_header, "PsevdishZ", 1.0}, + {&Parchsecdoor1Z_header, "Parchsecdoor1Z", 1.0}, + {&Parchsecdoor2Z_header, "Parchsecdoor2Z", 1.0}, + {&PgroundgunZ_header, "PgroundgunZ", 0.1}, + {&PtrainextdoorZ_header, "PtrainextdoorZ", 1.0}, + {&PcarbmwZ_header, "PcarbmwZ", 0.1}, + {&PcarescortZ_header, "PcarescortZ", 0.1}, + {&PcargolfZ_header, "PcargolfZ", 0.1}, + {&PcarweirdZ_header, "PcarweirdZ", 0.1}, + {&PcarzilZ_header, "PcarzilZ", 0.1}, + {&Pshuttle_door_lZ_header, "Pshuttle_door_lZ", 1.0}, + {&Pshuttle_door_rZ_header, "Pshuttle_door_rZ", 1.0}, + {&Pdepot_gate_entryZ_header, "Pdepot_gate_entryZ", 0.1}, + {&Pdepot_door_steelZ_header, "Pdepot_door_steelZ", 0.1}, + {&Pglassware2Z_header, "Pglassware2Z", 0.1}, + {&Pglassware3Z_header, "Pglassware3Z", 0.1}, + {&Pglassware4Z_header, "Pglassware4Z", 0.1}, + {&PlandmineZ_header, "PlandmineZ", 0.1}, + {&Pplant1Z_header, "Pplant1Z", 0.1}, + {&Pplant11Z_header, "Pplant11Z", 0.1}, + {&Pplant2Z_header, "Pplant2Z", 0.1}, + {&Pplant3Z_header, "Pplant3Z", 0.1}, + {&Pjungle5_treeZ_header, "Pjungle5_treeZ", 0.1}, + {&PlegalpageZ_header, "PlegalpageZ", 0.1}, + {&Pst_pete_room_1iZ_header, "Pst_pete_room_1iZ", 0.1}, + {&Pst_pete_room_2iZ_header, "Pst_pete_room_2iZ", 0.1}, + {&Pst_pete_room_3tZ_header, "Pst_pete_room_3tZ", 0.1}, + {&Pst_pete_room_5cZ_header, "Pst_pete_room_5cZ", 0.1}, + {&Pst_pete_room_6cZ_header, "Pst_pete_room_6cZ", 0.1}, + {&Pdoor_rollertrainZ_header, "Pdoor_rollertrainZ", 1.0}, + {&Pdoor_winZ_header, "Pdoor_winZ", 1.0}, + {&Pdoor_aztecZ_header, "Pdoor_aztecZ", 1.0}, + {&PshuttleZ_header, "PshuttleZ", 0.1}, + {&Pdoor_azt_deskZ_header, "Pdoor_azt_deskZ", 1.0}, + {&Pdoor_azt_desk_topZ_header, "Pdoor_azt_desk_topZ", 1.0}, + {&Pdoor_azt_chairZ_header, "Pdoor_azt_chairZ", 1.0}, + {&Pdoor_mfZ_header, "Pdoor_mfZ", 1.0}, + {&PflagZ_header, "PflagZ", 0.1}, + {&PbarricadeZ_header, "PbarricadeZ", 0.1}, + {&PmodemboxZ_header, "PmodemboxZ", 0.1}, + {&PdoorpanelZ_header, "PdoorpanelZ", 0.1}, + {&PdoorconsoleZ_header, "PdoorconsoleZ", 0.1}, + {&PchrtesttubeZ_header, "PchrtesttubeZ", 0.1}, + {&Pbollardz_header, "PbollardZ", 0.1}, + {0, "", 1.0} +}; + +//D:8003b224 +u32 object_explosion_details[] = { + 0x0006315c, 0x7b6cdbff, 0x5126fb59, 0x7ca70006, + 0x2afecb3e, 0x73f4278f, 0x6d3a44c8, 0x00050000, + 0x00000000, 0x00000000, 0x0000000b, 0xb9b03eba, + 0xad6275c8, 0xb70ff06e, 0x000b17d9, 0xdfcc57cd, + 0x82547345, 0xe011000b, 0x3779ed72, 0x688df67b, + 0x37e54f89, 0x000be277, 0x0474dd1e, 0x0c48486c, + 0xf87d000b, 0x7c3f16bc, 0x44a91a58, 0xe4129297, + 0x00003dc2, 0x16b6e30d, 0xbcabc592, 0xf9b50002, + 0x719c7024, 0x9ee0c175, 0xa5ddc933, 0x00028e16, + 0xbbca05c0, 0x1a7381be, 0xf8210000, 0x00000000, + 0x00000000, 0x00000000, 0x00082716, 0xf5440d35, + 0xc20e83d7, 0x7d730008, 0x81a1b772, 0x1b57437a, + 0x85fab6c1, 0x000827eb, 0x5a7abd1a, 0x27eb5a7a, + 0xbd1a0008, 0x98de8c36, 0xddd5f74b, 0x4f0a1f14, + 0x000834f5, 0xf199a9f2, 0x3d27c707, 0xb9ad0008, + 0x678fdb91, 0x2a2e8d91, 0x6eee925e, 0x0004d82f, + 0xf4d7546f, 0xd6c787d9, 0x01430004, 0x100eadf2, + 0x1fdd45f1, 0x4772f8c6, 0x0004ef0b, 0x71bbb7f7, + 0xbfa303b8, 0xe44e0004, 0xdfd1676a, 0x8597e8ac, + 0xe2109a4d, 0x0004ab48, 0xdd9b4343, 0x04b80dcc, + 0x3b3d0004, 0x836b6bbf, 0x9dbb3db7, 0x59577341, + 0x00070000, 0x00000000, 0x00000000, 0x00000009, + 0xb1cc19e2, 0x0ea5b1cc, 0x19e20ea5, 0x0009f093, + 0xb2df1409, 0x271ee0b3, 0x418a0009, 0x3ac20102, + 0xbf013ac2, 0x0102bf01, 0x00093ac6, 0xe449a56e, + 0xa4cfeda0, 0x17190009, 0x9bcfc333, 0x63844298, + 0xd4557bfa, 0x0009839e, 0x0ba71466, 0xdb6dd1b3, + 0x12330009, 0x3f677a70, 0x83de7052, 0x07d236ff, + 0x0009a409, 0x692de286, 0xc63c82d0, 0x5d070009, + 0xd6ca1866, 0x839cbc6a, 0x86ad4dc6, 0x000996fc, + 0xa1efa9e6, 0xb9d2a3c5, 0xa0450009, 0x7d2be7dc, + 0x55db378e, 0x4765b09c, 0x0009e2af, 0x2d4371fe, + 0xe39093b3, 0x57e30009, 0x9367098a, 0x3b68d6f8, + 0x4eaf7b83, 0x000f0000, 0x00000000, 0x00000000, + 0x0000000f, 0x00000000, 0x00000000, 0x00000000, + 0x0007993d, 0xa2b25028, 0x825e25b8, 0xd8ef0006, + 0x6553024d, 0xfd22d469, 0x18e432f6, 0x0006f742, + 0x0cb58ed2, 0x60216ad5, 0xaa880004, 0x06d882ef, + 0x5b194147, 0x5ae1374e, 0x0004284d, 0x3e7c9330, + 0xcf1e013f, 0x4e290006, 0xe339c0b6, 0xe5fc7054, + 0x83a8c118, 0x0004b49f, 0x00024ef6, 0x88490002, + 0x070b0002, 0x2d56a1ee, 0x41058ae6, 0x6a2a60dd, + 0x000979b2, 0xbc78b9b9, 0xc76a97a1, 0x3da30009, + 0x3292ddc3, 0x926512a6, 0xe935b9bc, 0x000304db, + 0x3cfddb5c, 0x3b2950b7, 0x83d10004, 0xbe6408ad, + 0x150d6aed, 0x542e63b3, 0x0004d7e5, 0x13695acc, + 0x535a2105, 0x1bf70004, 0x72223cee, 0x1a15122a, + 0xadec5ef3, 0x0004927f, 0x10b05125, 0x7f4ebbc5, + 0x8088000b, 0xe89d7502, 0x9003469d, 0x19f0a5e6, + 0x000b3771, 0xc00280ff, 0xdbf61705, 0x497a000e, + 0xa954afde, 0xbb6cd4a6, 0x9883fa27, 0x000ede9f, + 0xcef06346, 0x80fba382, 0x14d1000e, 0x448ed4cc, + 0xc1b5442f, 0xc1d1ee05, 0x000ec7c0, 0xf918095e, + 0xece206d4, 0xc64d000e, 0xc49116ec, 0xdea75a19, + 0x9de7ff28, 0x000ee889, 0x2da62775, 0x153cbae6, + 0xcb1b0000, 0x2d56a1ee, 0x41058ae6, 0x6a2a60dd, + 0x0006e5e6, 0x8fb7d5fe, 0xe959d656, 0xfb820007, + 0x58763a4f, 0xd115a10d, 0x265d2c02, 0x0007787e, + 0xc128d96a, 0x60c918e7, 0x99ad0007, 0x879a90e4, + 0xc20f35fe, 0xc80791d8, 0x000740ae, 0x62b6d240, + 0xac8d47c5, 0x17d10000, 0x00000000, 0x00000000, + 0x00000000, 0x000715c6, 0xb37d118a, 0x4e615d02, + 0x7d500006, 0x15c6b37d, 0x118a4e61, 0x5d027d50, + 0x00030000, 0x00000000, 0x00000000, 0x00000003, + 0x24698ae5, 0x524fe5f6, 0xbe4ac865, 0x00052957, + 0x1b2227c7, 0x96630ddf, 0x411f0007, 0x15c6b37d, + 0x118a4e61, 0x5d027d50, 0x00040000, 0x00000000, + 0x00000000, 0x00000006, 0xf8f4f1e0, 0x473f41dd, + 0xa510c9c6, 0x00080000, 0x00000000, 0x00000000, + 0x00000004, 0x7a512382, 0x9b3629e5, 0x5921017a, + 0x00048666, 0x3dd9e619, 0x6134cc94, 0x1a5c0004, + 0x7f3931c5, 0x9ac370ab, 0x0551b069, 0x0003d727, + 0x7ab2786b, 0xf5ad3fc4, 0xd6ce0003, 0x4548d59e, + 0x1edce88d, 0xe9e4af76, 0x0003262f, 0x491bfd57, + 0x6715e7ed, 0x2626000f, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000004, 0xbcae0bd1, 0x0ff73a30, 0x724083b7, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000006, 0xb2c6170a, + 0x0a236bbe, 0xb59382db, 0x0005275b, 0x8ad3002c, + 0x27b58ad3, 0x002c0005, 0x00000000, 0x00000000, + 0x00000000, 0x000833a1, 0x8a014d42, 0xd9cbb865, + 0xb3360004, 0x8c0678fc, 0x8f9a4df5, 0x4d5322f9, + 0x000399e9, 0x0107ef5e, 0x0560e6df, 0x4b360003, + 0x31e70023, 0xb2aea2d7, 0xe54090b2, 0x00080000, + 0x00000000, 0x00000000, 0x0000000d, 0x00000000, + 0x00000000, 0x00000000, 0x000833a1, 0x8a014d42, + 0xd9cbb865, 0xb3360008, 0x33a18a01, 0x4d42d9cb, + 0xb865b336, 0x000833a1, 0x8a014d42, 0xd9cbb865, + 0xb3360008, 0x33a18a01, 0x4d42d9cb, 0xb865b336, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000002, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00060000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x000c0000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x000d0000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00030000, 0x00000000, 0x00000000, + 0x0000000d, 0x00000000, 0x00000000, 0x00000000, + 0x000d0000, 0x00000000, 0x00000000, 0x0000000d, + 0x00000000, 0x00000000, 0x00000000, 0x000d0000, + 0x00000000, 0x00000000, 0x0000000d, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000006, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000006, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x0000000d, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000004, 0x00000000, 0x00000000, 0x00000000, + 0x00040000, 0x00000000, 0x00000000, 0x00000004, + 0x00000000, 0x00000000, 0x00000000, 0x00040000, + 0x00000000, 0x00000000, 0x00000004, 0x00000000, + 0x00000000, 0x00000000, 0x000d0000, 0x00000000, + 0x00000000, 0x00000004, 0x00000000, 0x00000000, + 0x00000000, 0x00040000, 0x00000000, 0x00000000, + 0x00000004, 0x00000000, 0x00000000, 0x00000000, + 0x00040000, 0x00000000, 0x00000000, 0x00000004, + 0x00000000, 0x00000000, 0x00000000, 0x00040000, + 0x00000000, 0x00000000, 0x00000004, 0x00000000, + 0x00000000, 0x00000000, 0x00040000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x000d0000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000007, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x0000000d, 0x00000000, 0x00000000, + 0x00000000, 0x000d0000, 0x00000000, 0x00000000, + 0x0000000d, 0x00000000, 0x00000000, 0x00000000, + 0x000d0000, 0x00000000, 0x00000000, 0x0000000d, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x0000000d, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x000d0000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000006, 0x00000000, 0x00000000, 0x00000000, + 0x00060000, 0x00000000, 0x00000000, 0x00000009, + 0x00000000, 0x00000000, 0x00000000, 0x000d0000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x0000ffff, 0xffffffff, + 0xffffffff, 0xffff0000, 0x00000000 +}; + + +//D:8003C4D0 +struct prop_pos_data word_D_8003C4D0[] = { + {0x0002, 0x0000, 0x0000} +}; +//D:8003C4D6 .half 0 +//D:8003C4D8 +struct item_related model_object_standard_object = {1, 0, word_D_8003C4D0, 3, 0}; +//D:8003C4E4 +s32 D_8003C4E4 = 0; +//D:8003C4E8 +s32 D_8003C4E8 = 0; +//D:8003C4EC +s32 D_8003C4EC = 0; + +//D:8003C4F0 +struct prop_pos_data word_D_8003C4F0[] = { + {0x0015, 0x0000, 0x0000}, + {0x0015, 0x0001, 0x0001} +}; +//D:8003C4FC +struct item_related prop_weapon_related = {2, 0, word_D_8003C4F0, 0, 0}; +//D:8003C508 +s32 D_8003C508 = 0; +//D:8003C50C +s32 D_8003C50C = 0; + +//D:8003C510 +struct prop_pos_data dword_D_8003C510[] = { + {0x0401, 0x0000, 0x0000}, + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0002, 0x0009, 0x000C}, + {0x0002, 0x000C, 0x0009}, + {0x0002, 0x000F, 0x0012}, + {0x0002, 0x0012, 0x000F}, + {0x0002, 0x0015, 0x0018}, + {0x0002, 0x0018, 0x0015}, + {0x0002, 0x001B, 0x001E}, + {0x0002, 0x001E, 0x001B}, + {0x0002, 0x0021, 0x0024}, + {0x0002, 0x0024, 0x0021}, + {0x0002, 0x0027, 0x002A}, + {0x0002, 0x002A, 0x0027} +}; + + +//item_related struct +//D:8003C570 +struct item_related dword_D_8003C570 = {0x10, 0x0000, dword_D_8003C510, 0x2D, 0x0000}; + +//D:8003C57C +s32 D_8003C57C = 0; + + +//D:8003C580 +struct player_gait_header player_gait_hdr = {0, 1, 0, &player_gait_obj, NULL, 0, 0, &player_gait_pos_hdr_1}; +//D:8003C598 +struct player_gait_pos_header player_gait_pos_hdr_1 = {0, 2, 0, &player_gait_pos_1, (struct player_gait_pos_header *)&player_gait_hdr, 0, 0, &player_gait_pos_hdr_2}; +//D:8003C5B0 +struct player_gait_pos_header player_gait_pos_hdr_2 = {0, 2, 0, &player_gait_pos_2, &player_gait_pos_hdr_1, 0, 0, &player_gait_pos_hdr_3}; +//D:8003C5C8 +struct player_gait_pos_header player_gait_pos_hdr_3 = {0, 2, 0, &player_gait_pos_3, &player_gait_pos_hdr_2, 0, 0, 0}; +//D:8003C5E0 +struct player_gait_object_entry player_gait_obj = {1, &player_gait_pos_hdr_1, 0, 0}; +//D:8003C5F0 +struct player_gait_position_entry player_gait_pos_1 = {0.0, 0.0, 0.0, 0x0001, 0x0002, 0xFFFF, 0xFFFF, &player_gait_pos_hdr_2, 0}; +//D:8003C60C +struct player_gait_position_entry player_gait_pos_2 = {1.177982, 41.14437, 0, 0x0002, 0x0003, 0xFFFF, 0xFFFF, &player_gait_pos_hdr_3, 0}; +//D:8003C628 +struct player_gait_position_entry player_gait_pos_3 = {-2.576027, 480.42902, 0, 0x0003, 0x0000, 0xFFFF, 0xFFFF, NULL, 0}; + + +//D:8003C644 +s32 D_8003C644 = 0; +//D:8003C648 +s32 D_8003C648 = 0; +//D:8003C64C +s32 D_8003C64C = 0; + + +//D:8003C650 +struct object_header player_gait_object = {0, &dword_D_8003C570,0,0, 4, 41.16123,0,0,0,0}; + + +//D:8003C670 +struct prop_pos_data dword_D_8003C670[] = { + {0x0401, 0x0000, 0x0000}, + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0002, 0x0009, 0x000C}, + {0x0002, 0x000C, 0x0009}, + {0x0002, 0x000F, 0x0012}, + {0x0002, 0x0012, 0x000F}, + {0x0002, 0x0015, 0x0018}, + {0x0002, 0x0018, 0x0015}, + {0x0002, 0x001B, 0x001E}, + {0x0002, 0x001E, 0x001B}, + {0x0002, 0x0021, 0x0024}, + {0x0002, 0x0024, 0x0021}, + {0x0002, 0x0027, 0x002A}, + {0x0002, 0x002A, 0x0027}, + {0x0015, 0x002D, 0x002D}, + {0x0015, 0x002E, 0x002E}, + {0x0015, 0x002F, 0x002F}, +}; + +//D:8003C6E4 +struct item_related model_suit_lf_hand = {0x13, 0x0000, dword_D_8003C670, 0x2D, 0x0000}; + +//D:8003C6F0 +struct prop_pos_data dword_D_8003C6F0[] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0015, 0x000F, 0x000F}, + {0x0002, 0x0009, 0x0009}, + {0x0002, 0x000C, 0x000C} +}; +//D:8003C714 +struct item_related weapon_gun_standard_gun = {0x6, 0x0000, dword_D_8003C6F0, 0xF, 0x0000}; + +//D:8003C720 +struct prop_pos_data dword_D_8003C720[] = { + {0x0002, 0x0000, 0x0000} +}; +//D:8003C728 +struct item_related weapon_gun_unassigned = {0x1, 0x0000, dword_D_8003C720, 0x3, 0x0000}; + +//D:8003C734 +s32 D_8003C734 = 0; +//D:8003C738 +s32 D_8003C738 = 0; +//D:8003C73C +s32 D_8003C73C = 0; +//D:8003C740 +struct prop_pos_data dword_D_8003C740[] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0002, 0x0009, 0x0009}, + {0x0002, 0x000C, 0x000C}, + {0x0002, 0x000F, 0x000F}, + {0x0002, 0x0012, 0x0012} +}; +//D:8003C76C +struct item_related weapon_gun_revolver = {0x7, 0x0000, dword_D_8003C740, 0x15, 0x0000}; + +//D:8003C778 +s32 D_8003C778 = 0; +//D:8003C77C +s32 D_8003C77C = 0; +//D:8003C780 +struct prop_pos_data dword_D_8003C780[] = { + {0x0002, 0x0000, 0x0000}, + {0x0002, 0x0003, 0x0003}, + {0x0002, 0x0006, 0x0006}, + {0x0002, 0x0009, 0x0009}, + {0x0015, 0x0012, 0x0012}, + {0x0002, 0x000C, 0x000C}, + {0x0002, 0x000F, 0x000F} +}; +//D:8003C7AC +struct item_related weapon_gun_kf7 = {0x7, 0x0000, dword_D_8003C780, 0x12, 0x0000}; + +//D:8003C7B8 +s32 D_8003C7B8 = 0; +//D:8003C7BC +s32 D_8003C7BC = 0; + +//D:8003C7C0 +struct Gitemheader GwppkZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 6, 293.60767, 0, 0xC, 0, 0}; +//D:8003C7E0 +struct Gitemheader GwppksilZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 6, 438.66476, 0, 0xC, 0, 0}; +//D:8003C800 +struct Gitemheader Gtt33Z_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 6, 438.16788, 0, 0xF, 0, 0}; +//D:8003C820 +struct Gitemheader GskorpianZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 390.40039, 0, 0xC, 0, 0}; +//D:8003C840 +struct Gitemheader Gak47Z_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 941.9339, 0, 0x12, 0, 0}; +//D:8003C860 +struct Gitemheader GuziZ_struct = {0, &weapon_gun_kf7, 0, 0x24, 5, 436.95404, 0, 0xC, 0, 0}; +//D:8003C880 +struct Gitemheader Gmp5kZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 499.24536, 0, 9, 0, 0}; +//D:8003C8A0 +struct Gitemheader Gmp5ksilZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 655.97717, 0, 9, 0, 0}; +//D:8003C8C0 +struct Gitemheader Gm16Z_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 1096.2413, 0, 8, 0, 0}; +//D:8003C8E0 +struct Gitemheader Gfnp90Z_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 460.81909, 0, 0xA, 0, 0}; +//D:8003C900 +struct Gitemheader G8003C900_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 238.62167, 0, 4, 0, 0}; +//D:8003C920 +struct Gitemheader GrugerZ_struct = {0, &weapon_gun_revolver, 0, 0x24, 6, 553.44312, 0, 0xE, 0, 0}; +//D:8003C940 +struct Gitemheader GgoldengunZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 5, 384.92172, 0, 0xB, 0, 0}; +//D:8003C960 +struct Gitemheader GshotgunZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 4, 919.33038, 0, 0xD, 0, 0}; +//D:8003C980 +struct Gitemheader GautoshotZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 840.15125, 0, 0x10, 0, 0}; +//D:8003C9A0 +struct Gitemheader GgrenadelaunchZ_struct = {0, &weapon_gun_revolver, 0, 0x24, 5, 768.33496, 0, 0xF, 0, 0}; +//D:8003C9C0 +struct Gitemheader GspectreZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 598.42865, 0, 0xB, 0, 0}; +//D:8003C9E0 +struct Gitemheader GlaserZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 3, 442.81848, 0, 0xD, 0, 0}; +//D:8003CA00 +struct Gitemheader GrocketlaunchZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 3, 566.51208, 0, 0xA, 0, 0}; +//D:8003CA20 +struct Gitemheader GknifeZ_header = {0, &weapon_gun_standard_gun, 0, 0x24, 3, 376.97263, 0, 9, 0, 0}; +//D:8003CA40 +struct Gitemheader GthrowknifeZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 3, 373.31387, 0, 9, 0, 0}; +//D:8003CA60 +struct Gitemheader GtaserZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 182.78622, 0, 0x11, 0, 0}; +//D:8003CA80 +struct Gitemheader GremotemineZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 50.999378, 0, 3, 0, 0}; +//D:8003CAA0 +struct Gitemheader GproximitymineZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 51.00029, 0, 3, 0, 0}; +//D:8003CAC0 +struct Gitemheader GtimedmineZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 49.368877, 0, 4, 0, 0}; +//D:8003CAE0 +struct Gitemheader GtriggerZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 283.9006, 0, 0x16, 0, 0}; +//D:8003CB00 +struct Gitemheader GgrenadeZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 3, 427.27081, 0, 5, 0, 0}; +//D:8003CB20 +struct Gitemheader GfistZ_header = {0, &weapon_gun_standard_gun, 0, 0x24, 3, 243.84764, 0, 0xE, 0, 0}; +//D:8003CB40 +struct Gitemheader GsniperrifleZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 808.03253, 0, 7, 0, 0}; +//D:8003CB60 +struct Gitemheader GcartridgeZ_struct = {0, &weapon_gun_unassigned, 0, 0, 1, 14.128822, 0, 2, 0, 0}; +//D:8003CB80 +struct Gitemheader GcartrifleZ_struct = {0, &weapon_gun_unassigned, 0, 0, 1, 30.122747, 0, 2, 0, 0}; +//D:8003CBA0 +struct Gitemheader GcartblueZ_struct = {0, &weapon_gun_unassigned, 0, 0, 1, 30.122747, 0, 2, 0, 0}; +//D:8003CBC0 +struct Gitemheader GcartshellZ_struct = {0, &weapon_gun_unassigned, 0, 0, 1, 29.8451, 0, 2, 0, 0}; +//D:8003CBE0 +struct Gitemheader GjoypadZ_struct = {0, &weapon_gun_controller, 0, 0xE, 0xD, 523.96826, 0, 4, 0, 0}; +//D:8003CC00 +struct Gitemheader G8003CC00_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CC20 +struct Gitemheader G8003CC20_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CC40 +struct Gitemheader GbombcaseZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 116.11074, 0, 6, 0, 0}; +//D:8003CC60 +struct Gitemheader GflarepistolZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CC80 +struct Gitemheader GpitongunZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CCA0 +struct Gitemheader G8003CCA0_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CCC0 +struct Gitemheader GsilverwppkZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 6, 293.60767, 0, 0xB, 0, 0}; +//D:8003CCE0 +struct Gitemheader GgoldwppkZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 6, 293.60767, 0, 0xB, 0, 0}; +//D:8003CD00 +struct Gitemheader G8003CD00_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CD20 +struct Gitemheader GbungeeZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CD40 +struct Gitemheader GdoordecoderZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 60.850407, 0, 0x10, 0, 0}; +//D:8003CD60 +struct Gitemheader GbombdefuserZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 84.370705, 0, 0xC, 0, 0}; +//D:8003CD80 +struct Gitemheader GbugdetectorZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CDA0 +struct Gitemheader GsafecrackercaseZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 116.11074, 0, 6, 0, 0}; +//D:8003CDC0 +struct Gitemheader GcameraZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 52.775627, 0, 0xB, 0, 0}; +//D:8003CDE0 +struct Gitemheader GlockexploderZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CE00 +struct Gitemheader GdoorexploderZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CE20 +struct Gitemheader GkeyanalysercaseZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 116.11074, 0, 6, 0, 0}; +//D:8003CE40 +struct Gitemheader GweaponcaseZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 116.11074, 0, 6, 0, 0}; +//D:8003CE60 +struct Gitemheader GkeycardZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 123.088844, 0, 2, 0, 0}; +//D:8003CE80 +struct Gitemheader GkeyyaleZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 414.25156, 0, 1, 0, 0}; +//D:8003CEA0 +struct Gitemheader GkeyboltZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 759.26581, 0, 1, 0, 0}; +//D:8003CEC0 +struct Gitemheader GbugZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 106.2163, 0, 6, 0, 0}; +//D:8003CEE0 +struct Gitemheader GmicrocameraZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 70.039436, 0, 7, 0, 0}; +//D:8003CF00 +struct Gitemheader GexplosivefloppyZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 60.902443, 0, 5, 0, 0}; +//D:8003CF20 +struct Gitemheader GgoldeneyekeyZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 98.987083, 0, 5, 0, 0}; +//D:8003CF40 +struct Gitemheader GpolarizedglassesZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 53.776386, 0, 2, 0, 0}; +//D:8003CF60 +struct Gitemheader GcreditcardZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CF80 +struct Gitemheader GdarkglassesZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003CFA0 +struct Gitemheader GwatchidentifierZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 384.9288, 0, 9, 0, 0}; +//D:8003CFC0 +struct Gitemheader GwatchcommunicatorZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 384.9288, 0, 9, 0, 0}; +//D:8003CFE0 +struct Gitemheader GwatchlaserZ_struct = {0, &weapon_gun_standard_gun, 0, 0x24, 4, 283.9006, 0, 0x16, 0, 0}; +//D:8003D000 +struct Gitemheader GwatchgeigercounterZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 384.9288, 0, 9, 0, 0}; +//D:8003D020 +struct Gitemheader GwatchmagnetrepelZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 384.9288, 0, 9, 0, 0}; +//D:8003D040 +struct Gitemheader GwatchmagnetattractZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1D, 3, 384.9288, 0, 9, 0, 0}; +//D:8003D060 +struct Gitemheader GgaskeyringZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 111.59859, 0, 9, 0, 0}; +//D:8003D080 +struct Gitemheader GdatathiefZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 119.78231, 0, 3, 0, 0}; +//D:8003D0A0 +struct Gitemheader GbriefcaseZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 116.11074, 0, 6, 0, 0}; +//D:8003D0C0 +struct Gitemheader GblackboxZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 128.31796, 0, 5, 0, 0}; +//D:8003D0E0 +struct Gitemheader GplastiqueZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 255.35242, 0, 3, 0, 0}; +//D:8003D100 +struct Gitemheader GvideotapeZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 122.69632, 0, 9, 0, 0}; +//D:8003D120 +struct Gitemheader GclipboardZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 190.41742, 0, 3, 0, 0}; +//D:8003D140 +struct Gitemheader GstafflistZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 215.17534, 0, 4, 0, 0}; +//D:8003D160 +struct Gitemheader GdossierredZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 183.54231, 0, 4, 0, 0}; +//D:8003D180 +struct Gitemheader GaudiotapeZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 97.531075, 0, 9, 0, 0}; +//D:8003D1A0 +struct Gitemheader GdattapeZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 79.868584, 0, 4, 0, 0}; +//D:8003D1C0 +struct Gitemheader GplansZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 81.950996, 0, 5, 0, 0}; +//D:8003D1E0 +struct Gitemheader GspyfileZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003D200 +struct Gitemheader GblueprintsZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 125.3834, 0, 4, 0, 0}; +//D:8003D220 +struct Gitemheader GcircuitboardZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 138.90285, 0, 3, 0, 0}; +//D:8003D240 +struct Gitemheader GmapZ_struct = {0, &weapon_gun_standard_gun, 0, 0x23, 3, 125.3834, 0, 4, 0, 0}; +//D:8003D260 +struct Gitemheader GspooltapeZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003D280 +struct Gitemheader GmicrofilmZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003D2A0 +struct Gitemheader GmicrocodeZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003D2C0 +struct Gitemheader GlectreZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003D2E0 +struct Gitemheader GmoneyZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003D300 +struct Gitemheader GgoldbarZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; +//D:8003D320 +struct Gitemheader GheroinZ_struct = {0, &weapon_gun_standard_gun, 0, 0x1C, 3, 134.8334, 0, 2, 0, 0}; + +//D:8003D340 +u32 dword_D_8003D340[] = {0x20000, 2, 0x30003, 0x20006, + 0x60002, 0x90009, 0x2000C, 0xC0002, + 0xF000F, 0x20012, 0x120002, 0x150015, + 0x20018, 0x180002, 0x1B001B, 0x2001E, + 0x1E0002, 0x210021, 0x20024, 0x240000}; + +//D:8003D390 +struct model_data weapon_gun_controller = {0xD0000, dword_D_8003D340, 0x270000}; +//D:8003D39C +s32 D_8003D39C = 0; + +u32 dword_D_8003D3A0[] = {0x4010000, 2, 0, 0x20003, + 0x30002, 0x60006, 0x20009, 0xC0002, + 0xC0009, 0x2000F, 0x120002, 0x12000F, + 0x20015, 0x180002, 0x180015, 0x2001B, + 0x1E0002, 0x1E001B, 0x20021, 0x240002, + 0x240021, 0x20027, 0x2A0002, 0x2A0027}; + + +//D:8003D400 + struct model_data model_guard_character = {0x100000, dword_D_8003D3A0, 0x2D0000}; +//D:8003D40C +s32 D_8003D40C = 0; + +//D:8003D410 +struct object_header CcamguardZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1260.4969, 0, 0xE, 0, 0}; +//D:8003D430 +struct object_header CgreyguardZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1292.6892, 0, 0xD, 0, 0}; +//D:8003D450 +struct object_header ColiveguardZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1260.4969, 0, 0x10, 0, 0}; +//D:8003D470 +struct object_header CrusguardZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1260.4969, 0, 0xD, 0, 0}; +//D:8003D490 +struct object_header CtrevguardZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1260.4969, 0, 0x12, 0, 0}; +//D:8003D4B0 +struct object_header CborisZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1223.1553, 0, 0x15, 0, 0}; +//D:8003D4D0 +struct object_header CorumovZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1347.004, 0, 0x15, 0, 0}; +//D:8003D4F0 +struct object_header CtrevelyanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1263.2534, 0, 0x10, 0, 0}; +//D:8003D510 +struct object_header CboilertrevZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1263.2534, 0, 0x10, 0, 0}; +//D:8003D530 +struct object_header CvalentinZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1208.6277, 0, 0x10, 0, 0}; +//D:8003D550 +struct object_header CxeniaZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1285.4487, 0, 0x13, 0, 0}; +//D:8003D570 +struct object_header CbaronsamediZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1292.5995, 0, 0x19, 0, 0}; +//D:8003D590 +struct object_header CjawsZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1550.059, 0, 0x14, 0, 0}; +//D:8003D5B0 +struct object_header CmaydayZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1260.657, 0, 0x10, 0, 0}; +//D:8003D5D0 +struct object_header CoddjobZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1082.4603, 0, 0x12, 0, 0}; +//D:8003D5F0 +struct object_header CnatalyaZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1226.1493, 0, 0x10, 0, 0}; +//D:8003D610 +struct object_header CarmourguardZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1260.4969, 0, 0x11, 0, 0}; +//D:8003D630 +struct object_header CcommguardZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1260.4969, 0, 0xF, 0, 0}; +//D:8003D650 +struct object_header CgreatguardZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1283.0787, 0, 0xB, 0, 0}; +//D:8003D670 +struct object_header CnavyguardZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1260.4969, 0, 0xF, 0, 0}; +//D:8003D690 +struct object_header CsnowguardZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1261.1731, 0, 0x11, 0, 0}; +//D:8003D6B0 +struct object_header CbluewomanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1148.2167, 0, 0xD, 0, 0}; +//D:8003D6D0 +struct object_header CfattechwomanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1149.4025, 0, 0xC, 0, 0}; +//D:8003D6F0 +struct object_header CtechwomanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1158.2109, 0, 0xC, 0, 0}; +//D:8003D710 +struct object_header CjeanwomanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1124.0725, 0, 0xF, 0, 0}; +//D:8003D730 +struct object_header CgreymanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1293.0195, 0, 0xF, 0, 0}; +//D:8003D750 +struct object_header CbluemanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1292.6892, 0, 0xF, 0, 0}; +//D:8003D770 +struct object_header CredmanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1292.6892, 0, 0xF, 0, 0}; +//D:8003D790 +struct object_header CcardimanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1292.6892, 0, 0xE, 0, 0}; +//D:8003D7B0 +struct object_header CcheckmanZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1292.6892, 0, 0x10, 0, 0}; +//D:8003D7D0 +struct object_header CtechmanZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1292.6892, 0, 0xC, 0, 0}; +//D:8003D7F0 +struct object_header CpilotZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1260.4969, 0, 0x18, 0, 0}; +//D:8003D810 +struct object_header Cgreatguard2Z_struct = {0, &model_guard_character, 0, 7, 0x14, 1283.0787, 0, 0x10, 0, 0}; +//D:8003D830 +struct object_header CbluecamguardZ_struct = {0, &model_guard_character, 0, 7, 0x14, 1260.4969, 0, 0xE, 0, 0}; +//D:8003D850 +struct object_header CmoonguardZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1260.4969, 0, 0xD, 0, 0}; +//D:8003D870 +struct object_header CmoonfemaleZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1124.0725, 0, 0xB, 0, 0}; +//D:8003D890 +struct object_header CboilerbondZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1273.6262, 0, 0xD, 0, 0}; +//D:8003D8B0 +struct object_header CsuitbondZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1292.3391, 0, 0xE, 0, 0}; +//D:8003D8D0 +struct object_header CtimberbondZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1282.7715, 0, 0x10, 0, 0}; +//D:8003D8F0 +struct object_header CsnowbondZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1299.1359, 0, 0xE, 0, 0}; +//D:8003D910 +struct object_header CdjbondZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1285.0543, 0, 0xD, 0, 0}; +//D:8003D930 +struct object_header Csuit_lf_handz_struct = {0, &model_suit_lf_hand, 0, 0xA, 9, 12231.949, 0, 0x16, 0, 0}; +//D:8003D950 +struct object_header CheadkarlZ_struct = {0, NULL, 0, 2, 1, 218.15375, 0, 6, 0, 0}; +//D:8003D970 +struct object_header CheadalanZ_struct = {0, NULL, 0, 2, 1, 215.03685, 0, 4, 0, 0}; +//D:8003D990 +struct object_header CheadpeteZ_struct = {0, NULL, 0, 2, 1, 216.28949, 0, 4, 0, 0}; +//D:8003D9B0 +struct object_header CheadmartinZ_struct = {0, NULL, 0, 2, 1, 222.34796, 0, 6, 0, 0}; +//D:8003D9D0 +struct object_header stru_D_8003D9D0 = {0, NULL, 0, 2, 1, 220.2446, 0, 5, 0, 0}; +//D:8003D9F0 +struct object_header stru_D_8003D9F0 = {0, NULL, 0, 2, 1, 201.51955, 0, 5, 0, 0}; +//D:8003DA10 +struct object_header stru_D_8003DA10 = {0, NULL, 0, 2, 1, 212.62949, 0, 5, 0, 0}; +//D:8003DA30 +struct object_header stru_D_8003DA30 = {0, NULL, 0, 2, 1, 218.35564, 0, 4, 0, 0}; +//D:8003DA50 +struct object_header stru_D_8003DA50 = {0, NULL, 0, 2, 1, 192.53412, 0, 4, 0, 0}; +//D:8003DA70 +struct object_header stru_D_8003DA70 = {0, NULL, 0, 2, 1, 218.35564, 0, 4, 0, 0}; +//D:8003DA90 +struct object_header stru_D_8003DA90 = {0, NULL, 0, 2, 1, 227.52234, 0, 4, 0, 0}; +//D:8003DAB0 +struct object_header stru_D_8003DAB0 = {0, NULL, 0, 2, 1, 228.29831, 0, 4, 0, 0}; +//D:8003DAD0 +struct object_header stru_D_8003DAD0 = {0, NULL, 0, 2, 1, 235.64778, 0, 6, 0, 0}; +//D:8003DAF0 +struct object_header stru_D_8003DAF0 = {0, NULL, 0, 2, 1, 218.35564, 0, 5, 0, 0}; +//D:8003DB10 +struct object_header stru_D_8003DB10 = {0, NULL, 0, 2, 1, 240.50017, 0, 4, 0, 0}; +//D:8003DB30 +struct object_header stru_D_8003DB30 = {0, NULL, 0, 2, 1, 234.83342, 0, 4, 0, 0}; +//D:8003DB50 +struct object_header stru_D_8003DB50 = {0, NULL, 0, 2, 1, 228.24614, 0, 4, 0, 0}; +//D:8003DB70 +struct object_header stru_D_8003DB70 = {0, NULL, 0, 2, 1, 228.55029, 0, 4, 0, 0}; +//D:8003DB90 +struct object_header stru_D_8003DB90 = {0, NULL, 0, 2, 1, 212.62949, 0, 2, 0, 0}; +//D:8003DBB0 +struct object_header stru_D_8003DBB0 = {0, NULL, 0, 2, 1, 219.82707, 0, 6, 0, 0}; +//D:8003DBD0 +struct object_header stru_D_8003DBD0 = {0, NULL, 0, 2, 1, 193.20615, 0, 5, 0, 0}; +//D:8003DBF0 +struct object_header stru_D_8003DBF0 = {0, NULL, 0, 2, 1, 235.64778, 0, 4, 0, 0}; +//D:8003DC10 +struct object_header stru_D_8003DC10 = {0, NULL, 0, 2, 1, 223.18559, 0, 4, 0, 0}; +//D:8003DC30 +struct object_header stru_D_8003DC30 = {0, NULL, 0, 2, 1, 218.35564, 0, 5, 0, 0}; +//D:8003DC50 +struct object_header stru_D_8003DC50 = {0, NULL, 0, 2, 1, 193.20615, 0, 4, 0, 0}; +//D:8003DC70 +struct object_header stru_D_8003DC70 = {0, NULL, 0, 2, 1, 235.64778, 0, 5, 0, 0}; +//D:8003DC90 +struct object_header stru_D_8003DC90 = {0, NULL, 0, 2, 1, 193.20615, 0, 3, 0, 0}; +//D:8003DCB0 +struct object_header stru_D_8003DCB0 = {0, NULL, 0, 2, 1, 224.83139, 0, 3, 0, 0}; +//D:8003DCD0 +struct object_header stru_D_8003DCD0 = {0, NULL, 0, 2, 1, 219.97256, 0, 3, 0, 0}; +//D:8003DCF0 +struct object_header stru_D_8003DCF0 = {0, NULL, 0, 2, 1, 203.44904, 0, 3, 0, 0}; +//D:8003DD10 +struct object_header stru_D_8003DD10 = {0, NULL, 0, 2, 1, 196.83067, 0, 3, 0, 0}; +//D:8003DD30 +struct object_header stru_D_8003DD30 = {0, NULL, 0, 2, 1, 176.67717, 0, 1, 0, 0}; +//D:8003DD50 +struct object_header stru_D_8003DD50 = {0, NULL, 0, 2, 1, 190.61967, 0, 4, 0, 0}; +//D:8003DD70 +struct object_header CheadbrosnansuitZ_struct = {0, NULL, 0, 2, 1, 212.45657, 0, 5, 0, 0}; +//D:8003DD90 +struct object_header CheadbrosnantimberZ_struct = {0, NULL, 0, 2, 1, 179.28358, 0, 4, 0, 0}; +//D:8003DDB0 +struct object_header CheadbrosnansnowZ_struct = {0, NULL, 0, 2, 1, 225.0605, 0, 6, 0, 0}; +//D:8003DDD0 +struct object_header CheadbrosnanZ_struct = {0, NULL, 0, 2, 1, 189.48112, 0, 5, 0, 0}; +//D:8003DDF0 +struct object_header CspicebondZ_struct = {0, &model_guard_character, 0, 7, 0x15, 1208.6448, 0, 0x11, 0, 0}; +const char padding_chars_for_strings[] = "\00\00\00\00\00\00\00\00\00\00\00"; +struct c_itementry c_item_entries[] = { + {&CcamguardZ_struct, "CcamguardZ", 1.0, 1.0, 0x1000000}, + {&CgreyguardZ_struct, "CgreyguardZ", 1.0, 1.0, 0x1000000}, + {&ColiveguardZ_struct, "ColiveguardZ", 1.0, 1.0, 0x1000000}, + {&CrusguardZ_struct, "CrusguardZ", 1.0, 1.0, 0x1000000}, + {&CtrevguardZ_struct, "CtrevguardZ", 1.0, 1.0, 0x1000000}, + {&CdjbondZ_struct, "CdjbondZ", 1.0, 1.0446, 0x1000000}, + {&CborisZ_struct, "CborisZ", 1.0, 0.9702, 0x1010000}, + {&CorumovZ_struct, "CorumovZ", 1.0, 1.0778, 0x1010000}, + {&CtrevelyanZ_struct, "CtrevelyanZ", 1.0, 1.0, 0x1010000}, + {&CboilertrevZ_struct, "CboilertrevZ", 1.0, 1.0, 0x1010000}, + {&CvalentinZ_struct, "CvalentinZ", 1.0, 0.93239999, 0x1010000}, + {&CxeniaZ_struct, "CxeniaZ", 1.0, 1.0, 0x10000}, + {&CbaronsamediZ_struct, "CbaronsamediZ", 1.0, 1.0, 0x1010000}, + {&CjawsZ_struct, "CjawsZ", 1.0, 1.199, 0x1010000}, + {&CmaydayZ_struct, "CmaydayZ", 1.0, 1.0, 0x10000}, + {&CoddjobZ_struct, "CoddjobZ", 1.0, 0.78780001, 0x1010000}, + {&CnatalyaZ_struct, "CnatalyaZ", 1.0, 0.96609998, 0x10000}, + {&CarmourguardZ_struct, "CarmourguardZ", 1.0, 1.0, 0x1000000}, + {&CcommguardZ_struct, "CcommguardZ", 1.0, 1.0, 0x1000000}, + {&CgreatguardZ_struct, "CgreatguardZ", 1.0, 1.0, 0x1000000}, + {&CnavyguardZ_struct, "CnavyguardZ", 1.0, 1.0, 0x1000000}, + {&CsnowguardZ_struct, "CsnowguardZ", 1.0, 1.0, 0x1010000}, + {&CboilerbondZ_struct, "CboilerbondZ", 1.0, 1.0403, 0x1000000}, + {&CsuitbondZ_struct, "CsuitbondZ", 1.0, 1.058, 0x1000000}, + {&CtimberbondZ_struct, "CtimberbondZ", 1.0, 1.0438, 0x1000000}, + {&CsnowbondZ_struct, "CsnowbondZ", 1.0, 1.0438, 0x1000000}, + {&CbluewomanZ_struct, "CbluewomanZ", 1.0, 0.88529998, 0}, + {&CfattechwomanZ_struct, "CfattechwomanZ", 1.0, 0.88529998, 0}, + {&CtechwomanZ_struct, "CtechwomanZ", 1.0, 0.91600001, 0}, + {&CjeanwomanZ_struct, "CjeanwomanZ", 1.0, 0.88529998, 0}, + {&CgreymanZ_struct, "CgreymanZ", 1.0, 1.0, 0x1000000}, + {&CbluemanZ_struct, "CbluemanZ", 1.0, 1.0, 0x1000000}, + {&CredmanZ_struct, "CredmanZ", 1.0, 1.0, 0x1000000}, + {&CcardimanZ_struct, "CcardimanZ", 1.0, 1.0, 0x1000000}, + {&CcheckmanZ_struct, "CcheckmanZ", 1.0, 1.0, 0x1000000}, + {&CtechmanZ_struct, "CtechmanZ", 1.0, 1.0, 0x1000000}, + {&CpilotZ_struct, "CpilotZ", 1.0, 1.0, 0x1010000}, + {&Cgreatguard2Z_struct, "Cgreatguard2Z", 1.0, 1.0, 0x1000000}, + {&CbluecamguardZ_struct, "CbluecamguardZ", 1.0, 1.0, 0x1000000}, + {&CmoonguardZ_struct, "CmoonguardZ", 1.0, 1.0, 0x1000000}, + {&CmoonfemaleZ_struct, "CmoonfemaleZ", 1.0, 0.88529998, 0}, + {&Csuit_lf_handz_struct, "Csuit_lf_handZ", 0.1, 1.0, 0x1000000}, + {&CheadkarlZ_struct, "CheadkarlZ", 1.0, 1.0, 0x1010000}, + {&CheadalanZ_struct, "CheadalanZ", 1.0, 1.0, 0x1010000}, + {&CheadpeteZ_struct, "CheadpeteZ", 1.0, 1.0, 0x1010000}, + {&CheadmartinZ_struct, "CheadmartinZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003D9D0, "CheadmarkZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003D9F0, "CheadduncanZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DA30, "CheadshaunZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DA50, "CheaddwayneZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DA10, "CheadbZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DA70, "CheaddaveZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DA90, "CheadgrantZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DAB0, "CheaddesZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DAD0, "CheadchrisZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DAF0, "CheadleeZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DB10, "CheadneilZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DB30, "CheadjimZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DB50, "CheadrobinZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DB70, "CheadstevehZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DB90, "CheadbalaclavaZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DBB0, "CheadbikeZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DBD0, "CheadgrahamZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DBF0, "CheadsteveeZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DC10, "CheadjoelZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DC30, "CheadscottZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DC50, "CheadjoeZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DC70, "CheadkenZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DC90, "Cheadjoe2Z", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DCB0, "CheadmishkinZ", 1.0, 1.0, 0x1010000}, + {&stru_D_8003DCD0, "CheadsallyZ", 1.0, 1.0, 0x10000}, + {&stru_D_8003DCF0, "CheadmarionZ", 1.0, 1.0, 0x10000}, + {&stru_D_8003DD10, "CheadmandyZ", 1.0, 1.0, 0x10000}, + {&stru_D_8003DD30, "CheadvivienZ", 1.0, 1.0, 0x10000}, + {&stru_D_8003DD50, "CheadbrosnanboilerZ", 1.0, 1.0, 0x1010000}, + {&CheadbrosnansuitZ_struct, "CheadbrosnansuitZ", 1.0, 1.0, 0x1010000}, + {&CheadbrosnantimberZ_struct, "CheadbrosnantimberZ", 1.0, 1.0, 0x1010000}, + {&CheadbrosnansnowZ_struct, "CheadbrosnansnowZ", 1.0, 1.0, 0x1010000}, + {&CheadbrosnanZ_struct, "CheadbrosnanZ", 1.0, 1.0, 0x1010000}, + {&CspicebondZ_struct, "CspicebondZ", 0.94999999, 0.96609998, 0x10000}, +}; + + +//D:8003E450 +u32 D_8003E450 = 0; +u32 D_8003E454 = 0; +//D:8003E458 +f32 D_8003E458 = 1.0; +//D:8003E45C +u32 D_8003E45C = 0; +//D:8003E460 +u32 D_8003E460 = 0; + +//D:8003E464 +struct headHat headHat_array_8003E464[] = +{ + { + -0.076300003, 0.77999997, -1.2696, 1.1694109, 1.120654, 1.05959 + }, + { + -0.25760001, -0.47319999, -1.5686001, 1.132916, 1.0, 1.080207 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.039999999, 0.74000001, -0.63999999, 1.132795, 1.167207, 1.035167 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.033500001, 0.24959999, 0.16599999, 1.115045, 0.94169998, 1.042492 + }, + { + -0.070299998, 0.4919, -0.83359998, 1.072812, 1.088326, 0.926121 + }, + { + -0.1, 0.42750001, -0.48249999, 1.033368, 0.96552098, 0.929905 + }, + { + 0.18000001, 0.0, 0.0, 1.072214, 1.0, 1.0 + }, + { + 0.237, 0.977, -0.44, 1.178463, 1.14061, 1.143465 + }, + { + -0.090300001, 0.23190001, 0.12639999, 0.99080002, 1.02, 0.8466 + }, + { + 0.0, 0.1485, 0.3793, 1.1548001, 0.99190003, 0.95139998 + }, + { + -0.14820001, 0.44100001, 0.1727, 1.050034, 1.0, 1.05445 + }, + { + -0.4941, -0.26409999, -0.18000001, 0.90368301, 0.72551203, 1.001314 + }, + { + 0.1318, 0.30100101, 1.572699, 0.98799503, 1.0, 1.05445 + }, + { + 0.0, 0.73019999, 0.71740001, 1.1923, 1.1834, 1.091924 + }, + { + -0.0942, -0.74190003, 0.94260001, 0.98659998, 0.91689998, 0.94760001 + }, + { + 0.0535, 0.61510003, 1.076, 1.05092, 0.90002, 1.122508 + }, + { + -0.079999998, 0.1085, -0.56629997, 1.192598, 1.079134, 1.199971 + }, + { + -0.35640001, -0.28709999, -0.36950001, 1.035176, 0.838543, 1.121092 + }, + { + 0.065300003, -0.4664, 0.72000003, 1.050106, 1.0, 1.11042 + }, + { + -0.079999998, 0.4885, 0.093699999, 1.158567, 1.2356189, 1.194388 + }, + { + -0.0942, -0.3017, 0.59450001, 1.0671999, 1.0218, 1.0174 + }, + { + 0.12, -0.1515, 0.95370001, 1.124017, 0.966048, 1.206121 + }, + { + -0.19310001, 0.2334, -0.64850003, 1.1800359, 1.0401829, 1.154537 + }, + { + -0.36230001, -0.133, -0.486, 1.0536211, 1.0, 1.1495841 + }, + { + 0.0955, 0.68099999, 0.78799999, 1.0152, 1.1926, 1.1308 + }, + { + -0.0823, 0.36700001, 0.37400001, 1.311748, 1.115972, 1.166244 + }, + { + -0.0942, 0.1768, 0.5248, 1.0470001, 1.0218, 0.99800003 + }, + { + 0.0, -0.0964, 0.82999998, 1.1109999, 0.85180199, 1.180503 + }, + { + -0.1832, 0.32120001, -1.2381001, 1.125683, 1.091681, 0.98079097 + }, + { + -0.55049998, -0.60839999, -1.189499, 1.023566, 0.8326, 1.0637 + }, + { + 0.076800004, 0.32120001, -0.118101, 1.059677, 1.091681, 1.000479 + }, + { + 0.0, 0.29890001, -0.67299998, 1.1367, 1.0526, 0.99227399 + }, + { + -0.0942, 0.032000002, -0.29699999, 1.0402, 0.92860001, 0.88690001 + }, + { + 0.0, 0.26879999, 0.057399999, 1.041842, 0.81959999, 0.99637401 + }, + { + 0.079700001, 0.3511, 0.0, 1.0, 1.0, 1.0835 + }, + { + 0.14, 0.1965, -0.058398999, 1.012674, 0.96799999, 1.098917 + }, + { + 0.1629, 0.78799999, 1.0746, 0.92205501, 1.0688, 1.055297 + }, + { + -0.074500002, 0.8477, 0.71810001, 1.154819, 1.177258, 1.031684 + }, + { + -0.0145, 0.047699999, 0.89810002, 1.0404, 1.0, 0.94309998 + }, + { + 0.32550001, 0.36770001, 0.93809998, 1.044217, 0.97841102, 1.127771 + }, + { + -0.1832, -0.058800001, -1.5781, 1.095929, 0.96300697, 0.92348999 + }, + { + -0.4411, -0.64840001, -1.839099, 1.059271, 0.8326, 0.96849501 + }, + { + 0.19679999, -0.3188, -0.43810099, 1.070675, 1.053777, 0.88628101 + }, + { + 0.0, 0.29890001, -0.83139998, 1.1154, 1.0328, 1.0036 + }, + { + -0.0942, -0.1275, -0.52109998, 1.0402, 0.92180002, 0.8617 + }, + { + 0.079999998, -0.2383, -0.22940101, 1.063022, 0.80879998, 0.90789998 + }, + { + 0.1165, 0.58780003, -1.3096, 1.136481, 1.0409, 1.065612 + }, + { + -0.070600003, 0.0152, -1.2391, 1.002256, 0.76669598, 1.029659 + }, + { + 0.2218, 0.0, 0.0, 1.0852, 1.0, 1.0 + }, + { + 0.063000001, 0.7561, -0.45269999, 1.2085, 1.1014, 1.0664001 + }, + { + 0.065499999, -0.1097, -0.3497, 1.0404, 0.90915602, 0.94940001 + }, + { + 0.0, 0.336, 0.082999997, 1.150862, 0.94169998, 1.0 + }, + { + -0.054200001, 0.27079999, -0.082099997, 1.0367, 1.0367, 1.0367 + }, + { + 0.34119999, -0.55879998, -0.3044, 1.113436, 0.96799999, 1.076647 + }, + { + 0.0495, 0.63980001, 1.2178, 0.95099998, 1.1126, 1.0413001 + }, + { + 0.0, 0.53640002, 0.75220001, 1.1976, 1.1463, 1.1374 + }, + { + -0.0145, -0.64749998, 1.0477999, 0.95289999, 0.92180002, 0.90579998 + }, + { + 0.16, 0.61830002, 1.128299, 1.083438, 0.91670603, 1.0666929 + }, + { + -0.2586, 0.93580002, -0.2463, 1.1057, 1.0116, 1.0927 + }, + { + -0.1788, -0.31310001, -0.55299997, 1.1071, 1.0, 1.071945 + }, + { + 0.0955, 0.16230001, 0.50150001, 1.0506001, 1.0, 1.1032 + }, + { + 0.081200004, 0.2269, 0.50700003, 1.1071, 1.178908, 1.189239 + }, + { + -0.0145, -0.68440002, 0.54070002, 1.0470001, 0.92699999, 1.027078 + }, + { + 0.0, -0.0164, 0.66399997, 1.2108999, 1.0, 1.0729001 + }, + { + -0.1487, 0.88779998, -0.41060001, 1.110018, 0.98460901, 1.110518 + }, + { + 0.0012000001, -0.61879998, -0.34439901, 1.099178, 0.916071, 1.054984 + }, + { + 0.0429, 0.2149, 0.4298, 1.0455, 1.0688, 1.1514 + }, + { + 0.0012000001, -0.0188, 0.65560102, 1.1957231, 1.079964, 1.200996 + }, + { + -0.0145, -0.48769999, 0.44909999, 1.003074, 1.0, 0.98259997 + }, + { + 0.0, 0.396, 0.8362, 1.1622, 0.91339999, 1.066853 + }, + { + -0.29030001, 1.0714999, -0.3504, 1.125893, 1.127159, 1.177758 + }, + { + 0.0, -0.079999998, -0.373, 1.099718, 1.0, 1.0947551 + }, + { + 0.0, 0.78799999, 0.64469999, 1.0, 1.0, 1.0963 + }, + { + -0.074699998, 1.5436, 0.1979, 1.1497999, 1.1835999, 1.0791 + }, + { + -0.090300001, -0.1085, 0.68959999, 1.024099, 1.0, 0.98965299 + }, + { + 0.0, 0.63230002, 0.7913, 1.1081001, 0.93440002, 1.0779999 + }, + { + 0.12, 0.40000001, 0.039999999, 1.022947, 0.92226201, 1.004824 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0429, 0.75889999, 1.2895, 0.94440001, 1.0, 1.0551 + }, + { + 0.0, 0.546, 0.79729998, 1.1483001, 1.1267999, 1.1388 + }, + { + 0.065099999, -0.54320002, 1.1224999, 0.93949997, 0.92699999, 0.93040001 + }, + { + 0.1265, 0.36359999, 1.079, 1.1109999, 1.0, 1.1166 + }, + { + -0.278, 1.272301, -0.55269998, 1.24701, 1.0737129, 1.118222 + }, + { + -0.23639999, 0.58200002, -0.30950001, 1.225595, 1.077682, 1.066005 + }, + { + -0.0845, 0.68099999, 0.64469999, 1.1204081, 1.1927, 1.1308 + }, + { + -0.1364, 1.021999, 0.5905, 1.153587, 1.226897, 1.2252491 + }, + { + -0.2534, 0.57560003, 0.3856, 1.0405, 1.0405, 1.0585999 + }, + { + -0.1265, 0.6081, 0.71200001, 1.222, 1.0, 1.111666 + }, + { + -0.4637, 1.3971, -0.49270001, 1.1752, 1.0116, 1.1762 + }, + { + -0.2976, -0.1049, -0.49649999, 1.2345999, 0.86470801, 1.077117 + }, + { + -0.1151, 0.7353, 0.57309997, 1.0759, 1.0, 1.1308 + }, + { + -0.189, 0.99910003, 0.2396, 1.2269, 1.2039, 1.1698999 + }, + { + -0.2534, -0.0647, 0.30070001, 1.0470001, 0.92699999, 1.0124 + }, + { + -0.1265, 0.61260003, 0.76700002, 1.2108999, 1.0, 1.096216 + }, + { + -0.51429999, 1.0894001, -0.082099997, 1.1003, 1.0316, 1.0278 + }, + { + -0.53280002, -0.13060001, -0.25999999, 1.080464, 1.0, 1.019003 + }, + { + -0.1969, 0.45930001, 0.64469999, 0.96219999, 1.0, 1.0895 + }, + { + -0.32690001, 1.1438, 0.46720001, 1.1339, 1.1339, 1.0436 + }, + { + -0.29879999, 0.0, 0.41429999, 0.96219999, 1.0, 0.95630002 + }, + { + -0.17640001, 0.39500001, 0.86699998, 1.0972, 0.94625998, 1.0529979 + }, + { + 0.02, 0.56910002, -0.25299999, 1.1205291, 0.999475, 1.072994 + }, + { + -0.0823, -0.3784, -0.38249999, 1.077682, 1.0, 1.066239 + }, + { + 0.02, -0.1909, 0.90700001, 1.049657, 0.999475, 1.072994 + }, + { + 0.0, 0.60549998, 0.47510001, 1.1236, 1.1236, 1.1236 + }, + { + -0.0942, 0.077600002, 0.5248, 1.0403, 0.95950001, 0.98580003 + }, + { + 0.0, 0.20550001, 0.8951, 1.1519721, 0.92378497, 1.0316401 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0836, -0.66259998, 0.14210001, 0.95139998, 1.090098, 0.92760003 + }, + { + 0.1141, -1.1931, -0.25400001, 0.98102301, 0.83667898, 0.88798702 + }, + { + 0.1481, -0.15360001, 1.1461999, 0.91399997, 1.0, 0.94489998 + }, + { + 0.0, -0.53250003, 0.3563, 1.0727, 1.0526, 1.0228 + }, + { + -0.0942, -0.6857, 1.1224999, 0.95959997, 0.92860001, 0.88690001 + }, + { + 0.079999998, -0.7396, 0.963, 1.1032, 0.875673, 0.97771698 + }, + { + -0.29030001, 1.0714999, -0.3504, 1.125893, 1.127159, 1.177758 + }, + { + 0.0, -0.079999998, -0.373, 1.099718, 1.0, 1.0947551 + }, + { + 0.0, 0.78799999, 0.64469999, 1.0, 1.0, 1.0963 + }, + { + -0.074699998, 1.5436, 0.1979, 1.1497999, 1.1835999, 1.0791 + }, + { + -0.090300001, -0.1085, 0.68959999, 1.024099, 1.0, 0.98965299 + }, + { + 0.0, 0.63230002, 0.7913, 1.1081001, 0.93440002, 1.0779999 + }, + { + -0.13699999, 0.286001, -0.32229999, 1.142894, 0.89638299, 1.15 + }, + { + -0.16680001, -0.1365, -0.43650001, 1.1452, 1.0, 1.061306 + }, + { + 0.1376, 0.0, 0.71600002, 1.05312, 1.0, 1.0687751 + }, + { + -0.074699998, 0.9393, 0.2658, 1.1815, 1.1216, 1.0822999 + }, + { + -0.103, -0.2269, 0.5722, 0.99080002, 1.02, 1.0034 + }, + { + 0.0, 0.1373, 0.79430002, 1.1813999, 0.86186302, 1.0998 + }, + { + 0.12, 0.40000001, 0.039999999, 1.022947, 0.92226201, 1.004824 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0429, 0.75889999, 1.2895, 0.94440001, 1.0, 1.0551 + }, + { + 0.0, 0.546, 0.79729998, 1.1483001, 1.1267999, 1.1388 + }, + { + 0.065099999, -0.54320002, 1.1224999, 0.93949997, 0.92699999, 0.93040001 + }, + { + 0.1265, 0.36359999, 1.079, 1.1109999, 1.0, 1.1166 + }, + { + 0.0836, -0.66259998, 0.14210001, 0.95139998, 1.090098, 0.92760003 + }, + { + 0.1141, -1.1931, -0.25400001, 0.98102301, 0.83667898, 0.88798702 + }, + { + 0.1481, -0.15360001, 1.1461999, 0.91399997, 1.0, 0.94489998 + }, + { + 0.0, -0.53250003, 0.3563, 1.0727, 1.0526, 1.0228 + }, + { + -0.0942, -0.6857, 1.1224999, 0.95959997, 0.92860001, 0.88690001 + }, + { + 0.079999998, -0.7396, 0.963, 1.1032, 0.875673, 0.97771698 + }, + { + -0.29030001, 1.0714999, -0.3504, 1.125893, 1.127159, 1.177758 + }, + { + 0.0, -0.079999998, -0.373, 1.099718, 1.0, 1.0947551 + }, + { + 0.0, 0.78799999, 0.64469999, 1.0, 1.0, 1.0963 + }, + { + -0.074699998, 1.5436, 0.1979, 1.1497999, 1.1835999, 1.0791 + }, + { + -0.090300001, -0.1085, 0.68959999, 1.024099, 1.0, 0.98965299 + }, + { + 0.0, 0.63230002, 0.7913, 1.1081001, 0.93440002, 1.0779999 + }, + { + 0.0836, -0.66259998, 0.14210001, 0.95139998, 1.090098, 0.92760003 + }, + { + 0.1141, -1.1931, -0.25400001, 0.98102301, 0.83667898, 0.88798702 + }, + { + 0.1481, -0.15360001, 1.1461999, 0.91399997, 1.0, 0.94489998 + }, + { + 0.0, -0.53250003, 0.3563, 1.0727, 1.0526, 1.0228 + }, + { + -0.0942, -0.6857, 1.1224999, 0.95959997, 0.92860001, 0.88690001 + }, + { + 0.079999998, -0.7396, 0.963, 1.1032, 0.875673, 0.97771698 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + }, + { + 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 + } +}; \ No newline at end of file diff --git a/src/game/chrobjdata.h b/src/game/chrobjdata.h new file mode 100644 index 0000000..3eefceb --- /dev/null +++ b/src/game/chrobjdata.h @@ -0,0 +1,679 @@ +#ifndef _CHROBJDATA_H_ +#define _CHROBJDATA_H_ +#include "ultra64.h" + +struct prop_pos_data { + u16 x; + u16 y; + u16 z; +}; + +struct item_related { + short num_entries_in_block; + short field_2; + struct prop_pos_data * ptr_block; + short total_cmd_indexval; + short field_A; +}; + +struct Gitemheader { + int offset_objtable; + void * guntype_modeldata; + int offset_objblock; + u16 num05soffset_entries; + u16 num_objgroups; + float drawdistance; + u16 num_entries; + u16 num_images; + int offset_imgdecl; + u32 isloaded; +}; + + +struct PitemZ_header { + s32 microcode_entry_num; + struct item_related * anonymous_1; + short anonymous_2; + short field_E; + s32 drawdistance; + float anonymous_4; + s32 anonymous_5; + s32 anonymous_6; + s32 anonymous_7; +}; + +struct p_itementry { + struct PitemZ_header * header; + char * filename; + float scale; +}; + +struct object_header { + int offset_obj_table; + void * ptr_archetype; + int offset_obj_offset_block; + short num_offset_entries; + short num_object_grps; + float anonymous_4; + short num_table_entries; + short num_image_entries; + int offset_img_declaration; + int is_loaded_in_mem; +}; + +struct c_itementry { + struct object_header * header; + char * filename; + float anonymous_1; + float anonymous_2; + int anonymous_3; +}; + +struct model_data { + u32 anonymous_0; + u32 *propposdata; + u32 anonymous_2; +}; + +struct player_gait_header { + u8 field_0x0; + u8 type; + u16 field_0x2; + struct player_gait_object_entry * field_0x4; + struct player_gait_pos_header * previous; + void * field_0xc; + void * field_0x10; + struct player_gait_pos_header * next; +}; + +struct player_gait_pos_header { + u8 field_0x0; + u8 type; + u16 field_0x2; + struct player_gait_position_entry * field_0x4; + struct player_gait_pos_header * previous; + void * field_0xc; + void * field_0x10; + struct player_gait_pos_header * next; +}; + +struct player_gait_object_entry { + u32 field_0x0; + struct player_gait_pos_header * ptr_header; + u32 field_0x8; + u32 field_0xc; +}; + +struct player_gait_position_entry { + float z_scale; + float y_offset; + float xy_scale; + u16 field_0xc; + u16 field_0xe; + u16 field_0x10; + u16 field_0x12; + struct player_gait_pos_header * ptr_header; + u32 field_0x18; +}; + +struct struct_13 { + void * ailist; + int ailistid; +}; + +struct headHat +{ + float xoffset; + float yoffset; + float zoffset; + float xsize; + float ysize; + float zsize; +}; + +extern struct p_itementry PitemZ_entries[]; + +extern struct item_related prop_cctv_related; +extern struct item_related prop_console_one_screen_related; +extern struct item_related prop_console_four_screen_related; +extern struct item_related prop_tv_holder_related; +extern struct item_related prop_rotating_stuff_related; +extern struct item_related prop_eyelid_door_related; +extern struct item_related prop_iris_door_related; +extern struct item_related prop_walletbond_related; +extern struct item_related prop_car_related; +extern struct item_related prop_flying_related; +extern struct item_related prop_door_related; +extern struct item_related item_tank_related; +extern struct item_related item_hat_related; +extern struct item_related model_object_standard_object; +extern struct item_related prop_weapon_related; +extern struct model_data model_guard_character; +extern struct player_gait_header player_gait_hdr; +extern struct player_gait_pos_header player_gait_pos_hdr_1; +extern struct player_gait_pos_header player_gait_pos_hdr_2; +extern struct player_gait_pos_header player_gait_pos_hdr_3; +extern struct player_gait_object_entry player_gait_obj; +extern struct player_gait_position_entry player_gait_pos_1; +extern struct player_gait_position_entry player_gait_pos_2; +extern struct player_gait_position_entry player_gait_pos_3; + +extern struct object_header player_gait_object; + +extern struct Gitemheader GwppkZ_struct; +extern struct Gitemheader GwppksilZ_struct; +extern struct Gitemheader Gtt33Z_struct; +extern struct Gitemheader GskorpianZ_struct; +extern struct Gitemheader Gak47Z_struct; +extern struct Gitemheader GuziZ_struct; +extern struct Gitemheader Gmp5kZ_struct; +extern struct Gitemheader Gmp5ksilZ_struct; +extern struct Gitemheader Gm16Z_struct; +extern struct Gitemheader Gfnp90Z_struct; +extern struct Gitemheader G8003C900_struct; +extern struct Gitemheader GrugerZ_struct; +extern struct Gitemheader GgoldengunZ_struct; +extern struct Gitemheader GshotgunZ_struct; +extern struct Gitemheader GautoshotZ_struct; +extern struct Gitemheader GgrenadelaunchZ_struct; +extern struct Gitemheader GspectreZ_struct; +extern struct Gitemheader GlaserZ_struct; +extern struct Gitemheader GrocketlaunchZ_struct; +extern struct Gitemheader GknifeZ_header; +extern struct Gitemheader GthrowknifeZ_struct; +extern struct Gitemheader GtaserZ_struct; +extern struct Gitemheader GremotemineZ_struct; +extern struct Gitemheader GproximitymineZ_struct; +extern struct Gitemheader GtimedmineZ_struct; +extern struct Gitemheader GtriggerZ_struct; +extern struct Gitemheader GgrenadeZ_struct; +extern struct Gitemheader GfistZ_header; +extern struct Gitemheader GsniperrifleZ_struct; +extern struct Gitemheader GcartridgeZ_struct; +extern struct Gitemheader GcartrifleZ_struct; +extern struct Gitemheader GcartblueZ_struct; +extern struct Gitemheader GcartshellZ_struct; +extern struct Gitemheader GjoypadZ_struct; +extern struct Gitemheader G8003CC00_struct; +extern struct Gitemheader G8003CC20_struct; +extern struct Gitemheader GbombcaseZ_struct; +extern struct Gitemheader GflarepistolZ_struct; +extern struct Gitemheader GpitongunZ_struct; +extern struct Gitemheader G8003CCA0_struct; +extern struct Gitemheader GsilverwppkZ_struct; +extern struct Gitemheader GgoldwppkZ_struct; +extern struct Gitemheader G8003CD00_struct; +extern struct Gitemheader GbungeeZ_struct; +extern struct Gitemheader GdoordecoderZ_struct; +extern struct Gitemheader GbombdefuserZ_struct; +extern struct Gitemheader GbugdetectorZ_struct; +extern struct Gitemheader GsafecrackercaseZ_struct; +extern struct Gitemheader GcameraZ_struct; +extern struct Gitemheader GlockexploderZ_struct; +extern struct Gitemheader GdoorexploderZ_struct; +extern struct Gitemheader GkeyanalysercaseZ_struct; +extern struct Gitemheader GweaponcaseZ_struct; +extern struct Gitemheader GkeycardZ_struct; +extern struct Gitemheader GkeyyaleZ_struct; +extern struct Gitemheader GkeyboltZ_struct; +extern struct Gitemheader GbugZ_struct; +extern struct Gitemheader GmicrocameraZ_struct; +extern struct Gitemheader GexplosivefloppyZ_struct; +extern struct Gitemheader GgoldeneyekeyZ_struct; +extern struct Gitemheader GpolarizedglassesZ_struct; +extern struct Gitemheader GcreditcardZ_struct; +extern struct Gitemheader GdarkglassesZ_struct; +extern struct Gitemheader GwatchidentifierZ_struct; +extern struct Gitemheader GwatchcommunicatorZ_struct; +extern struct Gitemheader GwatchlaserZ_struct; +extern struct Gitemheader GwatchgeigercounterZ_struct; +extern struct Gitemheader GwatchmagnetrepelZ_struct; +extern struct Gitemheader GwatchmagnetattractZ_struct; +extern struct Gitemheader GgaskeyringZ_struct; +extern struct Gitemheader GdatathiefZ_struct; +extern struct Gitemheader GbriefcaseZ_struct; +extern struct Gitemheader GblackboxZ_struct; +extern struct Gitemheader GplastiqueZ_struct; +extern struct Gitemheader GvideotapeZ_struct; +extern struct Gitemheader GclipboardZ_struct; +extern struct Gitemheader GstafflistZ_struct; +extern struct Gitemheader GdossierredZ_struct; +extern struct Gitemheader GaudiotapeZ_struct; +extern struct Gitemheader GdattapeZ_struct; +extern struct Gitemheader GplansZ_struct; +extern struct Gitemheader GspyfileZ_struct; +extern struct Gitemheader GblueprintsZ_struct; +extern struct Gitemheader GcircuitboardZ_struct; +extern struct Gitemheader GmapZ_struct; +extern struct Gitemheader GspooltapeZ_struct; +extern struct Gitemheader GmicrofilmZ_struct; +extern struct Gitemheader GmicrocodeZ_struct; +extern struct Gitemheader GlectreZ_struct; +extern struct Gitemheader GmoneyZ_struct; +extern struct Gitemheader GgoldbarZ_struct; +extern struct Gitemheader GheroinZ_struct; +extern struct model_data weapon_gun_controller; + +extern struct object_header CcamguardZ_struct; +extern struct object_header CgreyguardZ_struct; +extern struct object_header ColiveguardZ_struct; +extern struct object_header CrusguardZ_struct; +extern struct object_header CtrevguardZ_struct; +extern struct object_header CborisZ_struct; +extern struct object_header CorumovZ_struct; +extern struct object_header CtrevelyanZ_struct; +extern struct object_header CboilertrevZ_struct; +extern struct object_header CvalentinZ_struct; +extern struct object_header CxeniaZ_struct; +extern struct object_header CbaronsamediZ_struct; +extern struct object_header CjawsZ_struct; +extern struct object_header CmaydayZ_struct; +extern struct object_header CoddjobZ_struct; +extern struct object_header CnatalyaZ_struct; +extern struct object_header CarmourguardZ_struct; +extern struct object_header CcommguardZ_struct; +extern struct object_header CgreatguardZ_struct; +extern struct object_header CnavyguardZ_struct; +extern struct object_header CsnowguardZ_struct; +extern struct object_header CbluewomanZ_struct; +extern struct object_header CfattechwomanZ_struct; +extern struct object_header CtechwomanZ_struct; +extern struct object_header CjeanwomanZ_struct; +extern struct object_header CgreymanZ_struct; +extern struct object_header CbluemanZ_struct; +extern struct object_header CredmanZ_struct; +extern struct object_header CcardimanZ_struct; +extern struct object_header CcheckmanZ_struct; +extern struct object_header CtechmanZ_struct; +extern struct object_header CpilotZ_struct; +extern struct object_header Cgreatguard2Z_struct; +extern struct object_header CbluecamguardZ_struct; +extern struct object_header CmoonguardZ_struct; +extern struct object_header CmoonfemaleZ_struct; +extern struct object_header CboilerbondZ_struct; +extern struct object_header CsuitbondZ_struct; +extern struct object_header CtimberbondZ_struct; +extern struct object_header CsnowbondZ_struct; +extern struct object_header CdjbondZ_struct; +extern struct object_header Csuit_lf_handz_struct; +extern struct object_header CheadkarlZ_struct; +extern struct object_header CheadalanZ_struct; +extern struct object_header CheadpeteZ_struct; +extern struct object_header CheadmartinZ_struct; +extern struct object_header stru_D_8003D9D0; +extern struct object_header stru_D_8003D9F0; +extern struct object_header stru_D_8003DA10; +extern struct object_header stru_D_8003DA30; +extern struct object_header stru_D_8003DA50; +extern struct object_header stru_D_8003DA70; +extern struct object_header stru_D_8003DA90; +extern struct object_header stru_D_8003DAB0; +extern struct object_header stru_D_8003DAD0; +extern struct object_header stru_D_8003DAF0; +extern struct object_header stru_D_8003DB10; +extern struct object_header stru_D_8003DB30; +extern struct object_header stru_D_8003DB50; +extern struct object_header stru_D_8003DB70; +extern struct object_header stru_D_8003DB90; +extern struct object_header stru_D_8003DBB0; +extern struct object_header stru_D_8003DBD0; +extern struct object_header stru_D_8003DBF0; +extern struct object_header stru_D_8003DC10; +extern struct object_header stru_D_8003DC30; +extern struct object_header stru_D_8003DC50; +extern struct object_header stru_D_8003DC70; +extern struct object_header stru_D_8003DC90; +extern struct object_header stru_D_8003DCB0; +extern struct object_header stru_D_8003DCD0; +extern struct object_header stru_D_8003DCF0; +extern struct object_header stru_D_8003DD10; +extern struct object_header stru_D_8003DD30; +extern struct object_header stru_D_8003DD50; +extern struct object_header CheadbrosnansuitZ_struct; +extern struct object_header CheadbrosnantimberZ_struct; +extern struct object_header CheadbrosnansnowZ_struct; +extern struct object_header CheadbrosnanZ_struct; +extern struct object_header CspicebondZ_struct; + +extern struct PitemZ_header Palarm1z_header; +extern struct PitemZ_header Palarm2Z_header; +extern struct PitemZ_header PexplosionbitZ_header; +extern struct PitemZ_header Pammo_crate1Z_header; +extern struct PitemZ_header Pammo_crate2Z_header; +extern struct PitemZ_header Pammo_crate3Z_header; +extern struct PitemZ_header Pammo_crate4Z_header; +extern struct PitemZ_header Pammo_crate5Z_header; +extern struct PitemZ_header Pbin1Z_header; +extern struct PitemZ_header Pblotter1Z_header; +extern struct PitemZ_header Pbook1Z_header; +extern struct PitemZ_header Pbookshelf1Z_header; +extern struct PitemZ_header Pbridge_console1aZ_header; +extern struct PitemZ_header Pbridge_console1bZ_header; +extern struct PitemZ_header Pbridge_console2aZ_header; +extern struct PitemZ_header Pbridge_console2bZ_header; +extern struct PitemZ_header Pbridge_console3aZ_header; +extern struct PitemZ_header Pbridge_console3bZ_header; +extern struct PitemZ_header Pcard_box1Z_header; +extern struct PitemZ_header Pcard_box2Z_header; +extern struct PitemZ_header Pcard_box3Z_header; +extern struct PitemZ_header Pcard_box4_lgZ_header; +extern struct PitemZ_header Pcard_box5_lgZ_header; +extern struct PitemZ_header Pcard_box6_lgZ_header; +extern struct PitemZ_header PcctvZ_header; +extern struct PitemZ_header Pconsole1Z_header; +extern struct PitemZ_header Pconsole2Z_header; +extern struct PitemZ_header Pconsole3Z_header; +extern struct PitemZ_header Pconsole_sevaZ_header; +extern struct PitemZ_header Pconsole_sevbZ_header; +extern struct PitemZ_header Pconsole_sevcZ_header; +extern struct PitemZ_header Pconsole_sevdZ_header; +extern struct PitemZ_header Pconsole_sev2aZ_header; +extern struct PitemZ_header Pconsole_sev2bZ_header; +extern struct PitemZ_header Pconsole_sev2cZ_header; +extern struct PitemZ_header Pconsole_sev2dZ_header; +extern struct PitemZ_header Pconsole_sev_GEaZ_header; +extern struct PitemZ_header Pconsole_sev_GEbZ_header; +extern struct PitemZ_header Pdesk1Z_header; +extern struct PitemZ_header Pdesk2Z_header; +extern struct PitemZ_header Pdesk_lamp2Z_header; +extern struct PitemZ_header Pdisc_readerZ_header; +extern struct PitemZ_header Pdisk_drive1Z_header; +extern struct PitemZ_header Pfiling_cabinet1Z_header; +extern struct PitemZ_header Pjerry_can1Z_header; +extern struct PitemZ_header Pkeyboard1Z_header; +extern struct PitemZ_header Pkit_units1Z_header; +extern struct PitemZ_header Pletter_tray1Z_header; +extern struct PitemZ_header Pmainframe1Z_header; +extern struct PitemZ_header Pmainframe2Z_header; +extern struct PitemZ_header Pmetal_chair1Z_header; +extern struct PitemZ_header Pmetal_crate1Z_header; +extern struct PitemZ_header Pmetal_crate2Z_header; +extern struct PitemZ_header Pmetal_crate3Z_header; +extern struct PitemZ_header Pmetal_crate4Z_header; +extern struct PitemZ_header Pmissile_rackZ_header; +extern struct PitemZ_header Pmissile_rack2Z_header; +extern struct PitemZ_header Poil_drum1Z_header; +extern struct PitemZ_header Poil_drum2Z_header; +extern struct PitemZ_header Poil_drum3Z_header; +extern struct PitemZ_header Poil_drum5Z_header; +extern struct PitemZ_header Poil_drum6Z_header; +extern struct PitemZ_header Poil_drum7Z_header; +extern struct PitemZ_header PpadlockZ_header; +extern struct PitemZ_header Pphone1Z_header; +extern struct PitemZ_header Pradio_unit1Z_header; +extern struct PitemZ_header Pradio_unit2Z_header; +extern struct PitemZ_header Pradio_unit3Z_header; +extern struct PitemZ_header Pradio_unit4Z_header; +extern struct PitemZ_header Psat1_reflectZ_header; +extern struct PitemZ_header PsatdishZ_header; +extern struct PitemZ_header PsatboxZ_header; +extern struct PitemZ_header Pstool1Z_header; +extern struct PitemZ_header Pswivel_chair1Z_header; +extern struct PitemZ_header Ptorpedo_rackZ_header; +extern struct PitemZ_header Ptv1Z_header; +extern struct PitemZ_header Ptv_holderZ_header; +extern struct PitemZ_header PtvscreenZ_header; +extern struct PitemZ_header Ptv4screenZ_header; +extern struct PitemZ_header Pwood_lg_crate1Z_header; +extern struct PitemZ_header Pwood_lg_crate2Z_header; +extern struct PitemZ_header Pwood_md_crate3Z_header; +extern struct PitemZ_header Pwood_sm_crate4Z_header; +extern struct PitemZ_header Pwood_sm_crate5Z_header; +extern struct PitemZ_header Pwood_sm_crate6Z_header; +extern struct PitemZ_header Pwooden_table1Z_header; +extern struct PitemZ_header Pswipe_card2Z_header; +extern struct PitemZ_header Pborg_crateZ_header; +extern struct PitemZ_header Pboxes4x4Z_header; +extern struct PitemZ_header Pboxes3x4Z_header; +extern struct PitemZ_header Pboxes2x4Z_header; +extern struct PitemZ_header Psec_panelZ_header; +extern struct PitemZ_header PICBM_noseZ_header; +extern struct PitemZ_header PICBMZ_header; +extern struct PitemZ_header Ptuning_console1Z_header; +extern struct PitemZ_header Pdesk_arecibo1Z_header; +extern struct PitemZ_header Plocker3Z_header; +extern struct PitemZ_header Plocker4Z_header; +extern struct PitemZ_header ProofgunZ_header; +extern struct PitemZ_header Pdest_engineZ_header; +extern struct PitemZ_header Pdest_exocetZ_header; +extern struct PitemZ_header Pdest_gunZ_header; +extern struct PitemZ_header Pdest_harpoonZ_header; +extern struct PitemZ_header Pdest_seawolfZ_header; +extern struct PitemZ_header PwindowZ_header; +extern struct PitemZ_header Pwindow_lib_lg1Z_header; +extern struct PitemZ_header Pwindow_lib_sm1Z_header; +extern struct PitemZ_header Pwindow_cor11Z_header; +extern struct PitemZ_header Pjungle3_treeZ_header; +extern struct PitemZ_header PpalmZ_header; +extern struct PitemZ_header PpalmtreeZ_header; +extern struct PitemZ_header Pplant2bZ_header; +extern struct PitemZ_header PlabbenchZ_header; +extern struct PitemZ_header PgasbarrelZ_header; +extern struct PitemZ_header PgasbarrelsZ_header; +extern struct PitemZ_header PbodyarmourZ_header; +extern struct PitemZ_header PbodyarmourvestZ_header; +extern struct PitemZ_header PgastankZ_header; +extern struct PitemZ_header Pglassware1Z_header; +extern struct PitemZ_header PhatchboltZ_header; +extern struct PitemZ_header PbrakeunitZ_header; +extern struct PitemZ_header Pak47magZ_header; +extern struct PitemZ_header Pm16magZ_header; +extern struct PitemZ_header Pmp5kmagZ_header; +extern struct PitemZ_header PskorpionmagZ_header; +extern struct PitemZ_header PspectremagZ_header; +extern struct PitemZ_header PuzimagZ_header; +extern struct PitemZ_header PsilencerZ_header; +extern struct PitemZ_header PchrextinguisherZ_header; +extern struct PitemZ_header PboxcartridgesZ_header; +extern struct PitemZ_header Pfnp90magZ_header; +extern struct PitemZ_header PgoldenshellsZ_header; +extern struct PitemZ_header PmagnumshellsZ_header; +extern struct PitemZ_header PwppkmagZ_header; +extern struct PitemZ_header Ptt33magZ_header; +extern struct PitemZ_header Psev_doorZ_header; +extern struct PitemZ_header Psev_door3Z_header; +extern struct PitemZ_header Psev_door3_windZ_header; +extern struct PitemZ_header Psev_door4_windZ_header; +extern struct PitemZ_header Psev_trislideZ_header; +extern struct PitemZ_header Psev_door_v1Z_header; +extern struct PitemZ_header Psteel_door1Z_header; +extern struct PitemZ_header Psteel_door2Z_header; +extern struct PitemZ_header Psteel_door3Z_header; +extern struct PitemZ_header Psilo_lift_doorZ_header; +extern struct PitemZ_header Psteel_door2bZ_header; +extern struct PitemZ_header Pdoor_roller1Z_header; +extern struct PitemZ_header Pdoor_roller2Z_header; +extern struct PitemZ_header Pdoor_roller3Z_header; +extern struct PitemZ_header Pdoor_roller4Z_header; +extern struct PitemZ_header Pdoor_st_arec1Z_header; +extern struct PitemZ_header Pdoor_st_arec2Z_header; +extern struct PitemZ_header Pdoor_dest1Z_header; +extern struct PitemZ_header Pdoor_dest2Z_header; +extern struct PitemZ_header Pgas_plant_sw_do1Z_header; +extern struct PitemZ_header Pgas_plant_sw2_do1Z_header; +extern struct PitemZ_header Pgas_plant_sw3_do1Z_header; +extern struct PitemZ_header Pgas_plant_sw4_do1Z_header; +extern struct PitemZ_header Pgas_plant_met1_do1Z_header; +extern struct PitemZ_header Pgas_plant_wc_cub1Z_header; +extern struct PitemZ_header Pgasplant_clear_doorZ_header; +extern struct PitemZ_header Ptrain_doorZ_header; +extern struct PitemZ_header Ptrain_door2Z_header; +extern struct PitemZ_header Ptrain_door3Z_header; +extern struct PitemZ_header Pdoor_eyelidZ_header; +extern struct PitemZ_header Pdoor_irisZ_header; +extern struct PitemZ_header PsevdoorwoodZ_header; +extern struct PitemZ_header PsevdoorwindZ_header; +extern struct PitemZ_header PsevdoornowindZ_header; +extern struct PitemZ_header PsevdoormetslideZ_header; +extern struct PitemZ_header Pcryptdoor1aZ_header; +extern struct PitemZ_header Pcryptdoor1bZ_header; +extern struct PitemZ_header Pcryptdoor2aZ_header; +extern struct PitemZ_header Pcryptdoor2bZ_header; +extern struct PitemZ_header Pcryptdoor3Z_header; +extern struct PitemZ_header Pcryptdoor4Z_header; +extern struct PitemZ_header PvertdoorZ_header; +extern struct PitemZ_header PhatchdoorZ_header; +extern struct PitemZ_header PdamgatedoorZ_header; +extern struct PitemZ_header PdamtundoorZ_header; +extern struct PitemZ_header PdamchaindoorZ_header; +extern struct PitemZ_header PsilotopdoorZ_header; +extern struct PitemZ_header Pdoorprison1Z_header; +extern struct PitemZ_header PdoorstatgateZ_header; +extern struct PitemZ_header PchrkalashZ_header; +extern struct PitemZ_header PchrgrenadelaunchZ_header; +extern struct PitemZ_header PchrknifeZ_header; +extern struct PitemZ_header PchrlaserZ_header; +extern struct PitemZ_header Pchrm16Z_header; +extern struct PitemZ_header Pchrmp5kZ_header; +extern struct PitemZ_header PchrrugerZ_header; +extern struct PitemZ_header PchrwppkZ_header; +extern struct PitemZ_header PchrshotgunZ_header; +extern struct PitemZ_header PchrskorpionZ_header; +extern struct PitemZ_header PchrspectreZ_header; +extern struct PitemZ_header PchruziZ_header; +extern struct PitemZ_header PchrgrenadeZ_header; +extern struct PitemZ_header Pchrfnp90Z_header; +extern struct PitemZ_header PchrbriefcaseZ_header; +extern struct PitemZ_header PchrremotemineZ_header; +extern struct PitemZ_header PchrproximitymineZ_header; +extern struct PitemZ_header PchrtimedmineZ_header; +extern struct PitemZ_header PchrrocketZ_header; +extern struct PitemZ_header PchrgrenaderoundZ_header; +extern struct PitemZ_header PchrwppksilZ_header; +extern struct PitemZ_header Pchrtt33Z_header; +extern struct PitemZ_header Pchrmp5ksilZ_header; +extern struct PitemZ_header PchrautoshotZ_header; +extern struct PitemZ_header PchrgoldenZ_header; +extern struct PitemZ_header PchrthrowknifeZ_header; +extern struct PitemZ_header PchrsniperrifleZ_header; +extern struct PitemZ_header PchrrocketlaunchZ_header; +extern struct PitemZ_header PhatfurryZ_header; +extern struct PitemZ_header PhatfurrybrownZ_header; +extern struct PitemZ_header PhatfurryblackZ_header; +extern struct PitemZ_header PhattbirdZ_header; +extern struct PitemZ_header PhattbirdbrownZ_header; +extern struct PitemZ_header PhathelmetZ_header; +extern struct PitemZ_header PhathelmetgreyZ_header; +extern struct PitemZ_header PhatmoonZ_header; +extern struct PitemZ_header PhatberetZ_header; +extern struct PitemZ_header PhatberetblueZ_header; +extern struct PitemZ_header PhatberetredZ_header; +extern struct PitemZ_header PhatpeakedZ_header; +extern struct PitemZ_header PchrwristdartZ_header; +extern struct PitemZ_header PchrexplosivepenZ_header; +extern struct PitemZ_header PchrbombcaseZ_header; +extern struct PitemZ_header PchrflarepistolZ_header; +extern struct PitemZ_header PchrpitongunZ_header; +extern struct PitemZ_header PchrfingergunZ_header; +extern struct PitemZ_header PchrsilverwppkZ_header; +extern struct PitemZ_header PchrgoldwppkZ_header; +extern struct PitemZ_header PchrdynamiteZ_header; +extern struct PitemZ_header PchrbungeeZ_header; +extern struct PitemZ_header PchrdoordecoderZ_header; +extern struct PitemZ_header PchrbombdefuserZ_header; +extern struct PitemZ_header PchrbugdetectorZ_header; +extern struct PitemZ_header PchrsafecrackercaseZ_header; +extern struct PitemZ_header PchrcameraZ_header; +extern struct PitemZ_header PchrlockexploderZ_header; +extern struct PitemZ_header PchrdoorexploderZ_header; +extern struct PitemZ_header PchrkeyanalysercaseZ_header; +extern struct PitemZ_header PchrweaponcaseZ_header; +extern struct PitemZ_header PchrkeyyaleZ_header; +extern struct PitemZ_header PchrkeyboltZ_header; +extern struct PitemZ_header PchrbugZ_header; +extern struct PitemZ_header PchrmicrocameraZ_header; +extern struct PitemZ_header PfloppyZ_header; +extern struct PitemZ_header PchrgoldeneyekeyZ_header; +extern struct PitemZ_header PchrpolarizedglassesZ_header; +extern struct PitemZ_header PchrcreditcardZ_header; +extern struct PitemZ_header PchrdarkglassesZ_header; +extern struct PitemZ_header PchrgaskeyringZ_header; +extern struct PitemZ_header PchrdatathiefZ_header; +extern struct PitemZ_header PsafeZ_header; +extern struct PitemZ_header PbombZ_header; +extern struct PitemZ_header PchrplansZ_header; +extern struct PitemZ_header PchrspyfileZ_header; +extern struct PitemZ_header PchrblueprintsZ_header; +extern struct PitemZ_header PchrcircuitboardZ_header; +extern struct PitemZ_header PchrmapZ_header; +extern struct PitemZ_header PchrspooltapeZ_header; +extern struct PitemZ_header PchraudiotapeZ_header; +extern struct PitemZ_header PchrmicrofilmZ_header; +extern struct PitemZ_header PchrmicrocodeZ_header; +extern struct PitemZ_header PchrlectreZ_header; +extern struct PitemZ_header PchrmoneyZ_header; +extern struct PitemZ_header PchrgoldbarZ_header; +extern struct PitemZ_header PchrheroinZ_header; +extern struct PitemZ_header PchrclipboardZ_header; +extern struct PitemZ_header PchrdossierredZ_header; +extern struct PitemZ_header PchrstafflistZ_header; +extern struct PitemZ_header PchrdattapeZ_header; +extern struct PitemZ_header PchrplastiqueZ_header; +extern struct PitemZ_header PchrblackboxZ_header; +extern struct PitemZ_header PchrvideotapeZ_header; +extern struct PitemZ_header PnintendologoZ_header; +extern struct PitemZ_header PgoldeneyelogoZ_header; +extern struct PitemZ_header PwalletbondZ_header; +extern struct PitemZ_header PmiltruckZ_header; +extern struct PitemZ_header PjeepZ_header; +extern struct PitemZ_header ParticZ_header; +extern struct PitemZ_header PhelicopterZ_header; +extern struct PitemZ_header PtigerZ_header; +extern struct PitemZ_header PmilcopterZ_header; +extern struct PitemZ_header PhindZ_header; +extern struct PitemZ_header PartictrailerZ_header; +extern struct PitemZ_header PmotorbikeZ_header; +extern struct PitemZ_header PtankZ_header; +extern struct PitemZ_header PapcZ_header; +extern struct PitemZ_header PspeedboatZ_header; +extern struct PitemZ_header PplaneZ_header; +extern struct PitemZ_header Pgun_runway1Z_header; +extern struct PitemZ_header PsafedoorZ_header; +extern struct PitemZ_header Pkey_holderZ_header; +extern struct PitemZ_header PhatchsevxZ_header; +extern struct PitemZ_header PsevdishZ_header; +extern struct PitemZ_header Parchsecdoor1Z_header; +extern struct PitemZ_header Parchsecdoor2Z_header; +extern struct PitemZ_header PgroundgunZ_header; +extern struct PitemZ_header PtrainextdoorZ_header; +extern struct PitemZ_header PcarbmwZ_header; +extern struct PitemZ_header PcarescortZ_header; +extern struct PitemZ_header PcargolfZ_header; +extern struct PitemZ_header PcarweirdZ_header; +extern struct PitemZ_header PcarzilZ_header; +extern struct PitemZ_header Pshuttle_door_lZ_header; +extern struct PitemZ_header Pshuttle_door_rZ_header; +extern struct PitemZ_header Pdepot_gate_entryZ_header; +extern struct PitemZ_header Pdepot_door_steelZ_header; +extern struct PitemZ_header Pglassware2Z_header; +extern struct PitemZ_header Pglassware3Z_header; +extern struct PitemZ_header Pglassware4Z_header; +extern struct PitemZ_header PlandmineZ_header; +extern struct PitemZ_header Pplant1Z_header; +extern struct PitemZ_header Pplant11Z_header; +extern struct PitemZ_header Pplant2Z_header; +extern struct PitemZ_header Pplant3Z_header; +extern struct PitemZ_header Pjungle5_treeZ_header; +extern struct PitemZ_header PlegalpageZ_header; +extern struct PitemZ_header Pst_pete_room_1iZ_header; +extern struct PitemZ_header Pst_pete_room_2iZ_header; +extern struct PitemZ_header Pst_pete_room_3tZ_header; +extern struct PitemZ_header Pst_pete_room_5cZ_header; +extern struct PitemZ_header Pst_pete_room_6cZ_header; +extern struct PitemZ_header Pdoor_rollertrainZ_header; +extern struct PitemZ_header Pdoor_winZ_header; +extern struct PitemZ_header Pdoor_aztecZ_header; +extern struct PitemZ_header PshuttleZ_header; +extern struct PitemZ_header Pdoor_azt_deskZ_header; +extern struct PitemZ_header Pdoor_azt_desk_topZ_header; +extern struct PitemZ_header Pdoor_azt_chairZ_header; +extern struct PitemZ_header Pdoor_mfZ_header; +extern struct PitemZ_header PflagZ_header; +extern struct PitemZ_header PbarricadeZ_header; +extern struct PitemZ_header PmodemboxZ_header; +extern struct PitemZ_header PdoorpanelZ_header; +extern struct PitemZ_header PdoorconsoleZ_header; +extern struct PitemZ_header PchrtesttubeZ_header; +extern struct PitemZ_header Pbollardz_header; + +#endif diff --git a/src/game/chrobjhandler.c b/src/game/chrobjhandler.c new file mode 100644 index 0000000..0d67acd --- /dev/null +++ b/src/game/chrobjhandler.c @@ -0,0 +1,37078 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "game/bond.h" +#include "game/bondinv.h" +#include "game/chr.h" +#include "game/chrai.h" +#include "snd.h" +#include "music.h" +#include "game/lvl.h" +#include "game/lvl_text.h" + +s32 alarm_timer = 0; +s32 *ptr_alarm_sfx = 0; +f32 toxic_gas_sound_timer = 0.0; +s32 activate_gas_sound_timer = FALSE; +f32 D_80030AD0 = 0.0; +f32 D_80030AD4 = 0.0; +f32 D_80030AD8 = 0.0; +s32 D_80030ADC = 0; +u32 D_80030AE0 = 0; +s32 ptr_gas_sound = 0; +s32 clock_drawn_flag = 1; +s32 clock_enable = 0; +f32 clock_time = 0; +s32 D_80030AF4 = 0; +s32 D_80030AF8 = 0; +s32 D_80030AFC = 0; +s32 D_80030B00 = 0; +s32 D_80030B04 = 0; +s32 D_80030B08 = 0; +s32 D_80030B0C = 0; +s32 bodypartshot = 0xFFFFFFFF; +f32 D_80030B14 = 1.0; +f32 D_80030B18 = 1.0; +f32 D_80030B1C = 1.0; +f32 D_80030B20 = 1.0; +f32 D_80030B24 = 1.0; +f32 solo_ammo_multiplier = 1.0; +s16 Throwing_knife_SFX[] = {0x5F, 0x60, 0x61}; + +u32 D_80030B34[] = { + 0, 1, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0 +}; +//80030b74 +u32 monitor_animation_microcode[] = { + 7, 0, 1, 0x400, 0x14, 8, 0x14, 2, + 0x400, 0x14, 0xD, 0xFF, 0x14, 8, 0x14, 5, + 0x200, 0x14, 6, 0x200, 0x14, 0xD,0xFFFFFFFF, 0x14, + 8, 0x14, 5, 0x400, 0x14, 6, 0x400, 0x14, + 8, 0x14, 0xB +}; + +u32 D_80030C00[] = { + 7, 0xC, 1, 0x400, 0x14, + 8, 0x14, 2, 0x400, 0x14, 0xD, 0xFF, 0x14, + 8, 0x14, 5, 0x200, 0x14, 6, 0x200, 0x14, + 0xD,0xFFFFFFFF, 0x14, 8, 0x14, 5, 0x400, 0x14, + 6, 0x400, 0x14, 8, 0x14, 7, 0xD, 1, + 0x400, 0x14, 8, 0x14, 2, 0x400, 0x14, 0xD, + 0xFF, 0x14, 8, 0x14, 5, 0x200, 0x14, 6, + 0x200, 0x14, 0xD,0xFFFFFFFF, 0x14, 8, 0x14, 5, + 0x400, 0x14, 6, 0x400, 0x14, 8, 0x14, 7, + 0xE, 1, 0x400, 0x14, 8, 0x14, 2, 0x400, + 0x14, 0xD, 0xFF, 0x14, 8, 0x14, 5, 0x200, + 0x14, 6, 0x200, 0x14, 0xD,0xFFFFFFFF, 0x14, 8, + 0x14, 5, 0x400, 0x14, 6, 0x400, 0x14, 8, + 0x14, 7, 0xF, 1, 0x400, 0x14, 8, 0x14, + 2, 0x400, 0x14, 0xD, 0xFF, 0x14, 8, 0x14, + 5, 0x200, 0x14, 6, 0x200, 0x14, 0xD,0xFFFFFFFF, + 0x14, 8, 0x14, 5, 0x400, 0x14, 6, 0x400, + 0x14, 8, 0x14, 0xB, +}; + +u32 D_80030E24[] = { + 7, 0x11, 8, 0x50, + 7, 0x12, 8, 0x50, 7, 0x13, 8, 0x50, + 7, 0x14, 8, 0x50, 7, 0x15, 8, 0x50, + 7, 0x16, 8, 0x50, 7, 0x17, 8, 0x50, + 7, 0x18, 8, 0x50, 7, 0x19, 8, 0x50, + 7, 0x1A, 8, 0x50, 0xB, +}; + +u32 D_80030EC8[] = { + 7, 7, 8, + 0x50, 7, 8, 8, 0x50, 7, 9, 8, + 0x50, 7, 0xC, 8, 0x50, 7, 0xD, 8, + 0x50, 8, 0x50, 7, 0x19, 8, 0x50, 7, + 0x14, 8, 0x50, 0xB +}; + +u32 D_80030F44[] = { + 0xD,0x202020FF, 1, 7, 0x1C, 1, 0x800, 0x78, + 8, 0x78, 5, 0x100, 1, 6, 0x200, 0x3C, + 1,0xFFFFE000, 0x78, 8, 0x78, 5, 0x400, 1, + 6, 0x400, 0x3C, 6, 0x400, 0x3C, 1, 0x800, + 0x78, 8, 0x78, 5, 0x80, 1, 6, 0x800, + 0x3C, 6, 0x400, 0x78, 2, 0x400, 0x3C, 1, + 0x200, 0x78, 8, 0x78, 0xB +}; + +u32 D_80031018[] = { + 0xD, 0x202020FF, 1, 7, 0x1C, 5, 0x80, 1, 6, 0x800, 0x3C, 6, 0x400, 0x78, + 2, 0x400, 0xA, 1, 0x200, 0x28, 8, 0x78, 0xB +}; + +u32 D_80031074[] = { + 7, 0x1D, 0xD, 0x8000FF, 1, 2, 0xFFFFFE00, 0x50, 8, 0x78, 2, 0xFFFFFF00, + 0x14, 8, 0x78, 2, 0xFFFFFF80, 0xA, 8, 0x28, 2, 0xFFFFFE00, 0x28, 8, 0x3C, + 2, 0xFFFFFFC0, 0x1E, 8, 0x78, 0xB +}; + +u32 D_800310F0[] = { + 7, 0x1D, 0xD, 0x280000FF, 1, 2, 0x200, 0x50, 8, 0x78, 2, 0x100, 0x14, + 8, 0x78, 2, 0x80, 0xA, 8, 0x28, 2, 0x200, 0x28, 8, 0x3C, 2, 0x40, 0x1E, + 8, 0x78, 2, 0x100, 0x14, 8, 0x78, 2, 0x80, 0xA, 0xB +}; + +u32 D_8003118C[] = { + 7, 0x1D, 0xD, 0x3C00FF, 1, 2, 0x200, 0x50, 8, 0x78, 2, 0x80, 0xA, 8, + 0x28, 2, 0x100, 0x14, 8, 0x78, 2, 0x80, 0xA, 8, 0x28, 2, 0x200, 0x28, + 8, 0x3C, 2, 0x40, 0x1E, 8, 0x78, 0xB +}; + +u32 D_8003121C[] = { + 7, 0x1E, 0xD, 0x404000FF, 1, 1, 0x280, 1, 8, 0xA, 0xB +}; + +u32 D_80031248[] = { + 7, 0x1E, 0xD, 0x4040FF, 1, 1, 0x280, 1, 8, 0xA, 0xB +}; + +u32 D_80031274[] = { + 7, 0x1E, 0xD,0x406440FF, 1, 1,0xFFFFFD80, + 1, 8, 0xA, 0xB +}; + +u32 D_800312A0[] = { + 0xD, 0xAFF0AFE, 0x14, 9, &D_800312C8 +}; + +u32 D_800312B4[] = { + 0xD, 0xA640AFE, 0x14, 9, (u32)&D_800312C8 +}; + +u32 D_800312C8[] = { + 0xF, 0xB6, 8, 1, 0xA, &D_800312A0, 0x51E, 0xA, &D_800312B4, 0x147A, 0xB +}; + +u32 D_800312F4[] = { + 7, 0x30, 0xD, 0xA960AFE, 1, 9, &D_800312B4 +}; + +u32 D_80031310[] = { + 7, 0x10, 0xD, 0x303080FF, 0x1E, 8, 5, 7, 0x2D, 8, 5, 7, 0x2E, 8, 5, 7, 0x2F, 8, 5, 0xB +}; + +u32 D_80031360[] = { + 7, 0x2C, 0xD,0x308030FF, 0x1E, 1,0xFFFFFC00, 0x400, + 8, 0x5A0, 3, 0x288, 0x168, 4, 0x3AA, 0x168, + 5, 0x80, 0x12C, 6, 0x80, 0x12C, 0xD, 0xFF, + 0x3C, 8, 0x3C, 0xD,0x808080FF, 0xA, 8, 0x5A, + 0xD,0x38C838FF, 0x1E, 8, 0x1E, 0xD,0x803838FF, 0x3C, + 8, 0x3C, 0xD,0x808080FF, 0x3C, 8, 0x3C, 3, + 0x200, 0x168, 4, 0x200, 0x168, 5, 0x400, 0x2D0, + 6, 0x400, 0x2D0, 8, 0x12C, 7, 0x2C, 8, + 0x1A4, 0xD, 0xC800FF, 0x1E, 8, 0x1E, 0xD,0x1E381EFF, + 0x3C, 8, 0x3C, 0xB +}; + +u32 D_80031490[] = { + 0xD, 0xFF, 1, 0xD,0xC8C8C8FF, 0x190, 7, 1, + 8, 0x2A8, 7, 2, 8, 0x2A8, 7, 4, + 8, 0xB4, 0xD,0x808032FF, 1, 7, 4, 8, + 0xC8, 0xB +}; + +u32 D_800314F8[] = { + 5, 0x400, 1, 6, 0x400, 1, 0xD,0xC81414FF, + 1, 7, 6, 8, 0x258, 0xD,0xC8C8C8FF, 5, + 8, 5, 0xD,0x383838FF, 0x3C, 7, 0x1B, 0xD, + 0xA0A0AFF, 0x64, 8, 0x190, 0xB +}; + +u32 D_8003156C[] = { + 0xD, 0xA960AFF, 0, 7, 0x28, 8, 5, 7, + 0x29, 8, 5, 7, 0x2A, 8, 5, 7, + 0x2B, 8, 0xA, 7, 0x29, 8, 5, 0xB +}; + +u32 D_800315CC[] = { + 7, 0x24, 0xD, 0xA960AFF, 0, 8, 3, 0xD, + 0x87808FF, 0, 8, 2, 0xD, 0xA960AFF, 0, 8, + 3, 0xD, 0x87808FF, 0, 8, 2, 1, 0x264, + 0x1E, 7, 0x25, 0xD, 0xA960AFF, 0, 8, 3, + 0xD, 0x87808FF, 0, 8, 2, 7, 0x26, 0xD, + 0xA960AFF, 0, 8, 3, 0xD, 0x87808FF, 0, 8, + 2, 7, 0x27, 0xD, 0xA960AFF, 0, 8, 3, + 0xD, 0x87808FF, 0, 8, 2, 0xD, 0xA960AFF, 0, + 8, 3, 0xD, 0x87808FF, 0, 8, 2, 0xD, + 0xA960AFF, 0, 8, 3, 0xD, 0x87808FF, 0, 8, + 2, 0xD, 0xA960AFF, 0, 8, 3, 0xD, 0x87808FF, + 0, 8, 2, 1, 0x19C, 0x28, 7, 0x26, + 0xD, 0xA960AFF, 0, 8, 3, 0xD, 0x87808FF, 0, + 8, 2, 0xD, 0xA960AFF, 0, 8, 3, 0xD, + 0x87808FF, 0, 8, 2, 7, 0x25, 0xD, 0xA960AFF, + 0, 8, 3, 0xD, 0x87808FF, 0, 8, 2, + 0xD, 0xA960AFF, 0, 8, 3, 0xD, 0x87808FF, 0, + 8, 2, 0xD, 0xA960AFF, 0, 8, 3, 0xD, + 0x87808FF, 0, 8, 2, 0xD, 0xA960AFF, 0, 8, + 3, 0xD, 0x87808FF, 0, 8, 2, 0xB +}; + +u32 D_80031848[] = { + 0x0000000D, 0x0A780AFF, + 0x00000000, 0x00000007, + 0x00000020, 0x00000008, + 0x00000005, 0x00000007, + 0x00000021, 0x00000008, + 0x00000005, 0x00000007, + 0x00000022, 0x00000008, + 0x00000005, 0x00000007, + 0x00000023, 0x00000008, + 0x00000005, 0x0000000B +}; + +u32 D_80031898[] = {7, 0x1C, 0xD, 0x800000, 1, 8, 5, 0xB}; + +struct struct_5 D_800318B8[] = { + {0xA, D_80031018, 0x1999}, + {0xA, D_8003156C, 0x1999}, + {0xA, D_8003121C, 0x1999}, + {0xA, D_80031248, 0x1999}, + {0xA, D_80031274, 0x1999}, + {0xA, D_800310F0, 0x3333}, + {0xA, D_8003118C, 0x6666}, + {0xA, D_80031074, 0xFFFF} +}; + +u32 D_80031918 = 0xB; + +struct struct_5 D_8003191C[] = { + {0xA, D_80030F44, 0x51E}, + {0xA, D_8003121C, 0x51E}, + {0xA, D_80031074, 0x51E}, + {0xA, &D_80031950, 0x9999} +}; + +u32 D_8003194C = 0xB; + +struct struct_5 D_80031950[] = { + {0xA, &D_800319D4, 0x1999}, + {0xA, &D_800319F0, 0x1999}, + {0xA, &D_80031A0C, 0x1999}, + {0xA, &D_80031A28, 0x1999}, + {0xA, &D_80031A44, 0x1999}, + {0xA, &D_80031A60, 0x1999}, + {0xA, &D_80031A7C, 0x1999}, + {0xA, &D_80031A98, 0x1999}, + {0xA, &D_80031AB4, 0x1999}, + {0xA, &D_80031AD0, 0x1999} +}; +u32 D_800319C8[] = {8, 0x64, 0xB}; + +struct struct_0 D_800319D4 = {7, 0x11, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; +struct struct_0 D_800319F0 = {7, 0x12, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; +struct struct_0 D_80031A0C = {7, 0x13, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; +struct struct_0 D_80031A28 = {7, 0x14, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; +struct struct_0 D_80031A44 = {7, 0x15, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; +struct struct_0 D_80031A60 = {7, 0x16, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; +struct struct_0 D_80031A7C = {7, 0x17, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; +struct struct_0 D_80031A98 = {7, 0x18, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; +struct struct_0 D_80031AB4 = {7, 0x19, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; +struct struct_0 D_80031AD0 = {7, 0x1A, 8, 0x14, 0xA, &D_80031AEC, 0xFFFF}; + +struct struct_5 D_80031AEC[] = { + {0xA, &D_80031B24, 0x1999}, + {0xA, &D_80031B38, 0x1999}, + {0xA, &D_80031B4C, 0x1999} +}; + +struct struct_12 D_80031B10[] = {0xD, 0xC8, 0xC8, 0xC8, 0xFF, 0x3C, 9, D_80031B60}; +struct struct_12 D_80031B24[] = {0xD, 0xC8, 0x32, 0x32, 0xFF, 0x3C, 9, D_80031B60}; +struct struct_12 D_80031B38[] = {0xD, 0x32, 0xC8, 0x32, 0xFF, 0x3C, 9, D_80031B60}; +struct struct_12 D_80031B4C[] = {0xD, 0x32, 0x32, 0xC8, 0xFF, 0x3C, 9, D_80031B60}; +u32 D_80031B60[] = {8, 0x32}; + +//80031B68 +struct struct_5 D_80031B68 = {0xA, &D_80031BB4, 0x1999}; +//80031B74 +struct struct_5 D_80031B74 = {0xA, &D_80031BD0, 0x1999}; +//80031B80 +struct struct_5 D_80031B80 = {0xA, &D_80031BEC, 0x1999}; +//80031B8C +struct struct_5 D_80031B8C = {0xA, &D_80031C08, 0x1999}; +//80031B98 +struct struct_5 D_80031B98 = {0xA, &D_80031C80, 0x1999}; +//80031BA4 +u32 D_80031BA4[] = {8, 0x12C, 9, &D_80031D30}; + +struct struct_16 D_80031BB4 = {1, 0x800, 0x78, 8, 0x78, 9, D_80031D30}; +struct struct_16 D_80031BD0 = {2, 0x2000, 0x32, 8, 0xC8, 9, D_80031D30}; +struct struct_16 D_80031BEC = {2, 0x2000, 0xC8, 8, 0xC8, 9, D_80031D30}; + +u32 D_80031C08[] = { + 3, 0x288, 0x12C, 4, 0x3AA, 0x12C, + 5, 0x80, 0xC8, 6, 0x80, 0xC8, + 8, 0x12C, 3, 0x200, 0x32, + 4, 0x200, 0xC8, 5, 0x400, 0x2D0, + 6, 0x400, 0x2D0, 8, 0x258, 9, D_80031D30 +}; + +u32 D_80031C80[] = { + 3, 0x320, 0x190, 4, 0x190, 0x190, 5, 0x80, + 0xC8, 6, 0x80, 0xC8, 8, 0x12C, 3, 0xC8, + 0xC8, 4, 0x190, 0x320, 5, 0x200, 0x2D0, 6, + 0x200, 0x2D0, 8, 0x320, 5, 0x400, 0x2D0, 6, + 0x400, 0x2D0, 3, 0x200, 0x64, 4, 0x200, 0x3C, + 8, 0x1F4, 9, D_80031D30 +}; + +u32 D_80031D30[] = { + 8, 0x32, 0xA, &D_80031AEC, 0x1999, 0xA, &D_80031D58, 0x3333, + 9, &D_80031950 +}; + +struct struct_20 D_80031D58 = {8, 0x32, 0xD, 0xFFFFFFFF, 0xA, 0xD, 0xFF, 5, 0xD, 0xFFFFFFFF, 0xA, 8, 0x19, 0xD, 0xFF, 0xC8, 8, 0x1F4, 9, D_80031950}; + +u32 D_80031DA8[] = { + 7, 0x31, 5, 0x200, 0, 6, 0x200, 0, + 0xD,0xDC2828FF, 0x3C, 8, 0x3C, 0xD,0x323232FF, 0xA, + 8, 0xA, 0xB +}; + +u32 D_80031DF4[] = {7, 0x31, 5, 0x200, 0, 6, 0x200, 0, + 0xD, 0x32C832FF, 0x3C, 8, 0x3C, + 0xD, 0x323232FF, 0xA, 8, 0xA, 0xB +}; + +u32 D_80031E40[] = {7, 0x31, 5, 0x200, 0, 6, 0x200, 0, + 0xD, 0x323232FF, 0xA, 8, 0xA, 0xB +}; + +u32 D_80031E78[] = {7, 0x31, 5, 0x200, 0, 6, 0x200, 0, + 0xD, 0xDC2828FF, 0xA, 8, 0xA, 0xB +}; + +u32 D_80031EB0[] = {7, 0x31, 5, 0x200, 0, 6, 0x200, 0, + 0xD, 0x32C832FF, 0xA, 8, 0xA, 0xB +}; + +u32 D_80031EE8[] = {7, 0, 0xD, 0xFF, 0, 0xC}; + +u32 dword_D_80031F00[] = { + 5, 0x400, 0, 6, 0x400, 0, 8, 1, + 5, 0x1000, 0x14, 6, 0x1000, 0x14, 8, 0x14, + 0xB +}; + +u32 dword_D_80031F44[] = { + 7, 0, 1, 0x400, 0x14, 8, 0x14, 2, + 0x400, 0x14, 0xD, 0xFF, 0x14, 8, 0x14, 5, + 0x200, 0x14, 6, 0x200, 0x14, 0xD,0xFFFFFFFF, 0x14, + 8, 0x14, 5, 0x400, 0x14, 6, 0x400, 0x14, + 8, 0x14, 0xB +}; + +u32 D_80031FD0[] = { + 0, 1, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0 +}; + +u32 D_80032010 = 0; +u32 D_80032014 = 0; +u32 D_80032018 = 0; +u32 D_8003201C = 0; +u32 D_80032020 = 0; +u32 D_80032024 = 0; +u32 D_80032028 = 0; +u32 D_8003202C = 0; +u32 D_80032030 = 0; +u32 D_80032034 = 0; +u32 D_80032038 = 0; +u32 D_8003203C = 0; +u32 D_80032040 = 0; +u32 D_80032044 = 0; +u32 D_80032048 = 0; + +u32 D_8003204C = 0x7FFF; +u32 D_80032050 = 0x7FFF; +u32 D_80032054 = 0x7FFF; +u32 D_80032058 = 0xFFFF8000; +u32 D_8003205C = 0xFFFF8000; +u32 D_80032060 = 0xFFFF8000; +u32 D_80032064 = 0; +u32 D_80032068 = 0; +u32 D_8003206C = 0; +u32 D_80032070 = 0x7FFF; +u32 D_80032074 = 0x7FFF; +u32 D_80032078 = 0x7FFF; +u32 D_8003207C = 0xFFFF8000; +u32 D_80032080 = 0xFFFF8000; +u32 D_80032084 = 0xFFFF8000; +u32 D_80032088 = 0; +u32 D_8003208C = 0; +u32 D_80032090 = 0; + +u32 blank_07_object[] = { + 0x1000007, 0xFFFF, 1, 0, 0, 0,0x3F800000, 0, + 0, 0, 0,0x3F800000, 0, 0, 0, 0, + 0x3F800000, 0, 0, 0, 0,0x3F800000, 0, 0, + 0, 0, 0, 0, 0,0x447A0000 +}; + +u32 D_8003210C[] = {0xFFFFFF00, 0xFFFFFF00}; + +u32 blank_11_object[] = { + 0x1000011, 0, 0x4000, 0, 0, 0,0x3F800000, 0, + 0, 0, 0,0x3F800000, 0, 0, 0, 0, + 0x3F800000, 0, 0, 0, 0,0x3F800000, 0, 0, + 0, 0, 0, 0, 0,0x447A0000 +}; + +u32 D_8003218C[] = {0xFFFFFF00, 0xFFFFFF00}; + +u32 blank_08_object_preset_1[] = { + 0x1000008, 1, 0, 0, 0, 0,0x3F800000, 0, + 0, 0, 0,0x3F800000, 0, 0, 0, 0, + 0x3F800000, 0, 0, 0, 0,0x3F800000, 0, 0, + 0, 0, 0, 0, 0,0x447A0000,0xFFFFFF00,0xFFFFFF00, + 0xFFFFFF +}; + +u32 D_80032218 = 0; + +u32 blank_08_object_preset_4001[] = { + 0x1000008, 0x4001, 0, 0, 0, 0,0x3F800000, 0, + 0, 0, 0,0x3F800000, 0, 0, 0, 0, + 0x3F800000, 0, 0, 0, 0,0x3F800000, 0, 0, + 0, 0, 0, 0, 0,0x447A0000,0xFFFFFF00,0xFFFFFF00, + 0xFFFFFF +}; + +u32 D_800322A0 = 0; +u32 D_800322A4 = 0; + +u32 D_800322A8[] = {1, 3}; +u32 D_800322B0[] = {0, 0, 0, 0}; +u32 D_800322C0[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + +//rodata + + +#ifdef NONMATCHING +void sub_GAME_7F03FB70(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03FB70 +/* 0746A0 7F03FB70 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0746A4 7F03FB74 AFBF001C */ sw $ra, 0x1c($sp) +/* 0746A8 7F03FB78 AFB00018 */ sw $s0, 0x18($sp) +/* 0746AC 7F03FB7C 8C8E0000 */ lw $t6, ($a0) +/* 0746B0 7F03FB80 00808025 */ move $s0, $a0 +/* 0746B4 7F03FB84 31CF0080 */ andi $t7, $t6, 0x80 +/* 0746B8 7F03FB88 51E00014 */ beql $t7, $zero, .L7F03FBDC +/* 0746BC 7F03FB8C 8E180000 */ lw $t8, ($s0) +/* 0746C0 7F03FB90 8C840098 */ lw $a0, 0x98($a0) +/* 0746C4 7F03FB94 50800008 */ beql $a0, $zero, .L7F03FBB8 +/* 0746C8 7F03FB98 8E04009C */ lw $a0, 0x9c($s0) +/* 0746CC 7F03FB9C 0C00237C */ jal sfxGetArg0Unk3F +/* 0746D0 7F03FBA0 00000000 */ nop +/* 0746D4 7F03FBA4 50400004 */ beql $v0, $zero, .L7F03FBB8 +/* 0746D8 7F03FBA8 8E04009C */ lw $a0, 0x9c($s0) +/* 0746DC 7F03FBAC 0C002408 */ jal sfxDeactivate +/* 0746E0 7F03FBB0 8E040098 */ lw $a0, 0x98($s0) +/* 0746E4 7F03FBB4 8E04009C */ lw $a0, 0x9c($s0) +.L7F03FBB8: +/* 0746E8 7F03FBB8 50800008 */ beql $a0, $zero, .L7F03FBDC +/* 0746EC 7F03FBBC 8E180000 */ lw $t8, ($s0) +/* 0746F0 7F03FBC0 0C00237C */ jal sfxGetArg0Unk3F +/* 0746F4 7F03FBC4 00000000 */ nop +/* 0746F8 7F03FBC8 50400004 */ beql $v0, $zero, .L7F03FBDC +/* 0746FC 7F03FBCC 8E180000 */ lw $t8, ($s0) +/* 074700 7F03FBD0 0C002408 */ jal sfxDeactivate +/* 074704 7F03FBD4 8E04009C */ lw $a0, 0x9c($s0) +/* 074708 7F03FBD8 8E180000 */ lw $t8, ($s0) +.L7F03FBDC: +/* 07470C 7F03FBDC 3C018000 */ lui $at, 0x8000 +/* 074710 7F03FBE0 0301C825 */ or $t9, $t8, $at +/* 074714 7F03FBE4 AE190000 */ sw $t9, ($s0) +/* 074718 7F03FBE8 8FBF001C */ lw $ra, 0x1c($sp) +/* 07471C 7F03FBEC 8FB00018 */ lw $s0, 0x18($sp) +/* 074720 7F03FBF0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 074724 7F03FBF4 03E00008 */ jr $ra +/* 074728 7F03FBF8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03FBFC(void) { + +} +#else +GLOBAL_ASM( + +.text +glabel sub_GAME_7F03FBFC +/* 07472C 7F03FBFC 44800000 */ mtc1 $zero, $f0 +/* 074730 7F03FC00 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 074734 7F03FC04 44811000 */ mtc1 $at, $f2 +/* 074738 7F03FC08 AC800000 */ sw $zero, ($a0) +/* 07473C 7F03FC0C AC800088 */ sw $zero, 0x88($a0) +/* 074740 7F03FC10 3C018005 */ lui $at, %hi(D_80052A48) +/* 074744 7F03FC14 E4800004 */ swc1 $f0, 4($a0) +/* 074748 7F03FC18 E4800008 */ swc1 $f0, 8($a0) +/* 07474C 7F03FC1C E480000C */ swc1 $f0, 0xc($a0) +/* 074750 7F03FC20 E4800010 */ swc1 $f0, 0x10($a0) +/* 074754 7F03FC24 E4800014 */ swc1 $f0, 0x14($a0) +/* 074758 7F03FC28 E4800018 */ swc1 $f0, 0x18($a0) +/* 07475C 7F03FC2C E480001C */ swc1 $f0, 0x1c($a0) +/* 074760 7F03FC30 E4820060 */ swc1 $f2, 0x60($a0) +/* 074764 7F03FC34 C4242A48 */ lwc1 $f4, %lo(D_80052A48)($at) +/* 074768 7F03FC38 2402FFFF */ li $v0, -1 +/* 07476C 7F03FC3C 240E0001 */ li $t6, 1 +/* 074770 7F03FC40 AC800090 */ sw $zero, 0x90($a0) +/* 074774 7F03FC44 AC8200A0 */ sw $v0, 0xa0($a0) +/* 074778 7F03FC48 AC8000A4 */ sw $zero, 0xa4($a0) +/* 07477C 7F03FC4C AC8000A8 */ sw $zero, 0xa8($a0) +/* 074780 7F03FC50 AC8200AC */ sw $v0, 0xac($a0) +/* 074784 7F03FC54 AC8E00B8 */ sw $t6, 0xb8($a0) +/* 074788 7F03FC58 AC8000BC */ sw $zero, 0xbc($a0) +/* 07478C 7F03FC5C AC8000E0 */ sw $zero, 0xe0($a0) +/* 074790 7F03FC60 AC8000E4 */ sw $zero, 0xe4($a0) +/* 074794 7F03FC64 AC8000E8 */ sw $zero, 0xe8($a0) +/* 074798 7F03FC68 E4800094 */ swc1 $f0, 0x94($a0) +/* 07479C 7F03FC6C E48200C0 */ swc1 $f2, 0xc0($a0) +/* 0747A0 7F03FC70 E48200C4 */ swc1 $f2, 0xc4($a0) +/* 0747A4 7F03FC74 E48200C8 */ swc1 $f2, 0xc8($a0) +/* 0747A8 7F03FC78 03E00008 */ jr $ra +/* 0747AC 7F03FC7C E484008C */ swc1 $f4, 0x8c($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03FC80(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03FC80 +/* 0747B0 7F03FC80 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0747B4 7F03FC84 3C028007 */ lui $v0, %hi(dword_CODE_bss_80073DC0) +/* 0747B8 7F03FC88 3C048007 */ lui $a0, %hi(dword_CODE_bss_80075030) +/* 0747BC 7F03FC8C AFBF0014 */ sw $ra, 0x14($sp) +/* 0747C0 7F03FC90 2406FFFF */ li $a2, -1 +/* 0747C4 7F03FC94 24845030 */ addiu $a0, %lo(dword_CODE_bss_80075030) # addiu $a0, $a0, 0x5030 +/* 0747C8 7F03FC98 24423DC0 */ addiu $v0, %lo(dword_CODE_bss_80073DC0) # addiu $v0, $v0, 0x3dc0 +/* 0747CC 7F03FC9C 00002825 */ move $a1, $zero +/* 0747D0 7F03FCA0 3C038000 */ lui $v1, 0x8000 +.L7F03FCA4: +/* 0747D4 7F03FCA4 8C4E0000 */ lw $t6, ($v0) +/* 0747D8 7F03FCA8 244200EC */ addiu $v0, $v0, 0xec +/* 0747DC 7F03FCAC 0044082B */ sltu $at, $v0, $a0 +/* 0747E0 7F03FCB0 01C37824 */ and $t7, $t6, $v1 +/* 0747E4 7F03FCB4 11E00007 */ beqz $t7, .L7F03FCD4 +/* 0747E8 7F03FCB8 3C078007 */ lui $a3, %hi(dword_CODE_bss_80073DC0) +/* 0747EC 7F03FCBC 24E73DC0 */ addiu $a3, %lo(dword_CODE_bss_80073DC0) # addiu $a3, $a3, 0x3dc0 +/* 0747F0 7F03FCC0 00E52021 */ addu $a0, $a3, $a1 +/* 0747F4 7F03FCC4 0FC0FEFF */ jal sub_GAME_7F03FBFC +/* 0747F8 7F03FCC8 AFA40020 */ sw $a0, 0x20($sp) +/* 0747FC 7F03FCCC 10000032 */ b .L7F03FD98 +/* 074800 7F03FCD0 8FA20020 */ lw $v0, 0x20($sp) +.L7F03FCD4: +/* 074804 7F03FCD4 1420FFF3 */ bnez $at, .L7F03FCA4 +/* 074808 7F03FCD8 24A500EC */ addiu $a1, $a1, 0xec +/* 07480C 7F03FCDC 3C028007 */ lui $v0, %hi(dword_CODE_bss_80073DC0) +/* 074810 7F03FCE0 3C078007 */ lui $a3, %hi(dword_CODE_bss_80073DC0) +/* 074814 7F03FCE4 24E73DC0 */ addiu $a3, %lo(dword_CODE_bss_80073DC0) # addiu $a3, $a3, 0x3dc0 +/* 074818 7F03FCE8 24423DC0 */ addiu $v0, %lo(dword_CODE_bss_80073DC0) # addiu $v0, $v0, 0x3dc0 +/* 07481C 7F03FCEC 00001825 */ move $v1, $zero +/* 074820 7F03FCF0 240500EC */ li $a1, 236 +/* 074824 7F03FCF4 24040014 */ li $a0, 20 +.L7F03FCF8: +/* 074828 7F03FCF8 8C5800E4 */ lw $t8, 0xe4($v0) +/* 07482C 7F03FCFC 5300000D */ beql $t8, $zero, .L7F03FD34 +/* 074830 7F03FD00 24630001 */ addiu $v1, $v1, 1 +/* 074834 7F03FD04 04C2000A */ bltzl $a2, .L7F03FD30 +/* 074838 7F03FD08 00603025 */ move $a2, $v1 +/* 07483C 7F03FD0C 00C50019 */ multu $a2, $a1 +/* 074840 7F03FD10 8C5900E8 */ lw $t9, 0xe8($v0) +/* 074844 7F03FD14 00004812 */ mflo $t1 +/* 074848 7F03FD18 00E95021 */ addu $t2, $a3, $t1 +/* 07484C 7F03FD1C 8D4B00E8 */ lw $t3, 0xe8($t2) +/* 074850 7F03FD20 032B082A */ slt $at, $t9, $t3 +/* 074854 7F03FD24 50200003 */ beql $at, $zero, .L7F03FD34 +/* 074858 7F03FD28 24630001 */ addiu $v1, $v1, 1 +/* 07485C 7F03FD2C 00603025 */ move $a2, $v1 +.L7F03FD30: +/* 074860 7F03FD30 24630001 */ addiu $v1, $v1, 1 +.L7F03FD34: +/* 074864 7F03FD34 1464FFF0 */ bne $v1, $a0, .L7F03FCF8 +/* 074868 7F03FD38 244200EC */ addiu $v0, $v0, 0xec +/* 07486C 7F03FD3C 04C00016 */ bltz $a2, .L7F03FD98 +/* 074870 7F03FD40 00001025 */ move $v0, $zero +/* 074874 7F03FD44 00C50019 */ multu $a2, $a1 +/* 074878 7F03FD48 00001812 */ mflo $v1 +/* 07487C 7F03FD4C 00E34021 */ addu $t0, $a3, $v1 +/* 074880 7F03FD50 8D0C00E4 */ lw $t4, 0xe4($t0) +/* 074884 7F03FD54 8D840010 */ lw $a0, 0x10($t4) +/* 074888 7F03FD58 AFA80020 */ sw $t0, 0x20($sp) +/* 07488C 7F03FD5C 0FC1033C */ jal sub_GAME_7F040CF0 +/* 074890 7F03FD60 AFA30024 */ sw $v1, 0x24($sp) +/* 074894 7F03FD64 8FA80020 */ lw $t0, 0x20($sp) +/* 074898 7F03FD68 8FA30024 */ lw $v1, 0x24($sp) +/* 07489C 7F03FD6C 3C078007 */ lui $a3, %hi(dword_CODE_bss_80073DC0) +/* 0748A0 7F03FD70 8D0200E4 */ lw $v0, 0xe4($t0) +/* 0748A4 7F03FD74 24E73DC0 */ addiu $a3, %lo(dword_CODE_bss_80073DC0) # addiu $a3, $a3, 0x3dc0 +/* 0748A8 7F03FD78 00E32021 */ addu $a0, $a3, $v1 +/* 0748AC 7F03FD7C 8C4D0064 */ lw $t5, 0x64($v0) +/* 0748B0 7F03FD80 35AE0004 */ ori $t6, $t5, 4 +/* 0748B4 7F03FD84 AC4E0064 */ sw $t6, 0x64($v0) +/* 0748B8 7F03FD88 0FC0FEFF */ jal sub_GAME_7F03FBFC +/* 0748BC 7F03FD8C AFA4001C */ sw $a0, 0x1c($sp) +/* 0748C0 7F03FD90 10000001 */ b .L7F03FD98 +/* 0748C4 7F03FD94 8FA2001C */ lw $v0, 0x1c($sp) +.L7F03FD98: +/* 0748C8 7F03FD98 8FBF0014 */ lw $ra, 0x14($sp) +/* 0748CC 7F03FD9C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0748D0 7F03FDA0 03E00008 */ jr $ra +/* 0748D4 7F03FDA4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03FDA8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03FDA8 +/* 0748D8 7F03FDA8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0748DC 7F03FDAC AFBF0014 */ sw $ra, 0x14($sp) +/* 0748E0 7F03FDB0 8C830004 */ lw $v1, 4($a0) +/* 0748E4 7F03FDB4 8C620064 */ lw $v0, 0x64($v1) +/* 0748E8 7F03FDB8 304E0040 */ andi $t6, $v0, 0x40 +/* 0748EC 7F03FDBC 11C00007 */ beqz $t6, .L7F03FDDC +/* 0748F0 7F03FDC0 30580080 */ andi $t8, $v0, 0x80 +/* 0748F4 7F03FDC4 0FC0FF20 */ jal sub_GAME_7F03FC80 +/* 0748F8 7F03FDC8 AFA3001C */ sw $v1, 0x1c($sp) +/* 0748FC 7F03FDCC 8FA3001C */ lw $v1, 0x1c($sp) +/* 074900 7F03FDD0 8C6F006C */ lw $t7, 0x6c($v1) +/* 074904 7F03FDD4 1000000B */ b .L7F03FE04 +/* 074908 7F03FDD8 ADE20044 */ sw $v0, 0x44($t7) +.L7F03FDDC: +/* 07490C 7F03FDDC 5700000A */ bnezl $t8, .L7F03FE08 +/* 074910 7F03FDE0 8FBF0014 */ lw $ra, 0x14($sp) +/* 074914 7F03FDE4 0FC0FF20 */ jal sub_GAME_7F03FC80 +/* 074918 7F03FDE8 AFA3001C */ sw $v1, 0x1c($sp) +/* 07491C 7F03FDEC 8FA3001C */ lw $v1, 0x1c($sp) +/* 074920 7F03FDF0 10400004 */ beqz $v0, .L7F03FE04 +/* 074924 7F03FDF4 AC62006C */ sw $v0, 0x6c($v1) +/* 074928 7F03FDF8 8C790064 */ lw $t9, 0x64($v1) +/* 07492C 7F03FDFC 37280080 */ ori $t0, $t9, 0x80 +/* 074930 7F03FE00 AC680064 */ sw $t0, 0x64($v1) +.L7F03FE04: +/* 074934 7F03FE04 8FBF0014 */ lw $ra, 0x14($sp) +.L7F03FE08: +/* 074938 7F03FE08 27BD0020 */ addiu $sp, $sp, 0x20 +/* 07493C 7F03FE0C 03E00008 */ jr $ra +/* 074940 7F03FE10 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03FE14(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03FE14 +/* 074944 7F03FE14 8C820004 */ lw $v0, 4($a0) +/* 074948 7F03FE18 00001825 */ move $v1, $zero +/* 07494C 7F03FE1C 8C450064 */ lw $a1, 0x64($v0) +/* 074950 7F03FE20 30AE0040 */ andi $t6, $a1, 0x40 +/* 074954 7F03FE24 11C00004 */ beqz $t6, .L7F03FE38 +/* 074958 7F03FE28 30B80080 */ andi $t8, $a1, 0x80 +/* 07495C 7F03FE2C 8C4F006C */ lw $t7, 0x6c($v0) +/* 074960 7F03FE30 10000004 */ b .L7F03FE44 +/* 074964 7F03FE34 8DE30044 */ lw $v1, 0x44($t7) +.L7F03FE38: +/* 074968 7F03FE38 13000002 */ beqz $t8, .L7F03FE44 +/* 07496C 7F03FE3C 00000000 */ nop +/* 074970 7F03FE40 8C43006C */ lw $v1, 0x6c($v0) +.L7F03FE44: +/* 074974 7F03FE44 1060000E */ beqz $v1, .L7F03FE80 +/* 074978 7F03FE48 00000000 */ nop +/* 07497C 7F03FE4C 8C790000 */ lw $t9, ($v1) +/* 074980 7F03FE50 240A00FF */ li $t2, 255 +/* 074984 7F03FE54 240B00FF */ li $t3, 255 +/* 074988 7F03FE58 37280004 */ ori $t0, $t9, 4 +/* 07498C 7F03FE5C AC680000 */ sw $t0, ($v1) +/* 074990 7F03FE60 8C820014 */ lw $v0, 0x14($a0) +/* 074994 7F03FE64 50400006 */ beql $v0, $zero, .L7F03FE80 +/* 074998 7F03FE68 A06B00CC */ sb $t3, 0xcc($v1) +/* 07499C 7F03FE6C 90490003 */ lbu $t1, 3($v0) +/* 0749A0 7F03FE70 A06A00CD */ sb $t2, 0xcd($v1) +/* 0749A4 7F03FE74 03E00008 */ jr $ra +/* 0749A8 7F03FE78 A06900CC */ sb $t1, 0xcc($v1) + +/* 0749AC 7F03FE7C A06B00CC */ sb $t3, 0xcc($v1) +.L7F03FE80: +/* 0749B0 7F03FE80 03E00008 */ jr $ra +/* 0749B4 7F03FE84 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03FE88(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03FE88 +/* 0749B8 7F03FE88 8C8E0000 */ lw $t6, ($a0) +/* 0749BC 7F03FE8C 35CF0001 */ ori $t7, $t6, 1 +/* 0749C0 7F03FE90 03E00008 */ jr $ra +/* 0749C4 7F03FE94 AC8F0000 */ sw $t7, ($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03FE98(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03FE98 +/* 0749C8 7F03FE98 3C048007 */ lui $a0, %hi(dword_CODE_bss_80075030) +/* 0749CC 7F03FE9C 3C028007 */ lui $v0, %hi(objinst) +/* 0749D0 7F03FEA0 24425B70 */ addiu $v0, %lo(objinst) # addiu $v0, $v0, 0x5b70 +/* 0749D4 7F03FEA4 24845030 */ addiu $a0, %lo(dword_CODE_bss_80075030) # addiu $a0, $a0, 0x5030 +/* 0749D8 7F03FEA8 00001825 */ move $v1, $zero +.L7F03FEAC: +/* 0749DC 7F03FEAC 8C8E0000 */ lw $t6, ($a0) +/* 0749E0 7F03FEB0 31CF0001 */ andi $t7, $t6, 1 +/* 0749E4 7F03FEB4 11E00006 */ beqz $t7, .L7F03FED0 +/* 0749E8 7F03FEB8 3C188007 */ lui $t8, %hi(dword_CODE_bss_80075030) +/* 0749EC 7F03FEBC 27185030 */ addiu $t8, %lo(dword_CODE_bss_80075030) # addiu $t8, $t8, 0x5030 +/* 0749F0 7F03FEC0 AC800000 */ sw $zero, ($a0) +/* 0749F4 7F03FEC4 AC800044 */ sw $zero, 0x44($a0) +/* 0749F8 7F03FEC8 03E00008 */ jr $ra +/* 0749FC 7F03FECC 00781021 */ addu $v0, $v1, $t8 + +.L7F03FED0: +/* 074A00 7F03FED0 8C990048 */ lw $t9, 0x48($a0) +/* 074A04 7F03FED4 33280001 */ andi $t0, $t9, 1 +/* 074A08 7F03FED8 11000007 */ beqz $t0, .L7F03FEF8 +/* 074A0C 7F03FEDC 3C0A8007 */ lui $t2, %hi(dword_CODE_bss_80075030) +/* 074A10 7F03FEE0 254A5030 */ addiu $t2, %lo(dword_CODE_bss_80075030) # addiu $t2, $t2, 0x5030 +/* 074A14 7F03FEE4 24690048 */ addiu $t1, $v1, 0x48 +/* 074A18 7F03FEE8 012A1021 */ addu $v0, $t1, $t2 +/* 074A1C 7F03FEEC AC800048 */ sw $zero, 0x48($a0) +/* 074A20 7F03FEF0 03E00008 */ jr $ra +/* 074A24 7F03FEF4 AC80008C */ sw $zero, 0x8c($a0) + +.L7F03FEF8: +/* 074A28 7F03FEF8 8C8B0090 */ lw $t3, 0x90($a0) +/* 074A2C 7F03FEFC 316C0001 */ andi $t4, $t3, 1 +/* 074A30 7F03FF00 11800007 */ beqz $t4, .L7F03FF20 +/* 074A34 7F03FF04 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80075030) +/* 074A38 7F03FF08 25CE5030 */ addiu $t6, %lo(dword_CODE_bss_80075030) # addiu $t6, $t6, 0x5030 +/* 074A3C 7F03FF0C 246D0090 */ addiu $t5, $v1, 0x90 +/* 074A40 7F03FF10 01AE1021 */ addu $v0, $t5, $t6 +/* 074A44 7F03FF14 AC800090 */ sw $zero, 0x90($a0) +/* 074A48 7F03FF18 03E00008 */ jr $ra +/* 074A4C 7F03FF1C AC8000D4 */ sw $zero, 0xd4($a0) + +.L7F03FF20: +/* 074A50 7F03FF20 8C8F00D8 */ lw $t7, 0xd8($a0) +/* 074A54 7F03FF24 31F80001 */ andi $t8, $t7, 1 +/* 074A58 7F03FF28 13000007 */ beqz $t8, .L7F03FF48 +/* 074A5C 7F03FF2C 3C088007 */ lui $t0, %hi(dword_CODE_bss_80075030) +/* 074A60 7F03FF30 25085030 */ addiu $t0, %lo(dword_CODE_bss_80075030) # addiu $t0, $t0, 0x5030 +/* 074A64 7F03FF34 247900D8 */ addiu $t9, $v1, 0xd8 +/* 074A68 7F03FF38 03281021 */ addu $v0, $t9, $t0 +/* 074A6C 7F03FF3C AC8000D8 */ sw $zero, 0xd8($a0) +/* 074A70 7F03FF40 03E00008 */ jr $ra +/* 074A74 7F03FF44 AC80011C */ sw $zero, 0x11c($a0) + +.L7F03FF48: +/* 074A78 7F03FF48 24840120 */ addiu $a0, $a0, 0x120 +/* 074A7C 7F03FF4C 1482FFD7 */ bne $a0, $v0, .L7F03FEAC +/* 074A80 7F03FF50 24630120 */ addiu $v1, $v1, 0x120 +/* 074A84 7F03FF54 00001025 */ move $v0, $zero +/* 074A88 7F03FF58 03E00008 */ jr $ra +/* 074A8C 7F03FF5C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03FF60(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03FF60 +/* 074A90 7F03FF60 908E0002 */ lbu $t6, 2($a0) +/* 074A94 7F03FF64 3C014080 */ lui $at, 0x4080 +/* 074A98 7F03FF68 31CF0080 */ andi $t7, $t6, 0x80 +/* 074A9C 7F03FF6C 55E0000C */ bnezl $t7, .L7F03FFA0 +/* 074AA0 7F03FF70 C4840070 */ lwc1 $f4, 0x70($a0) +/* 074AA4 7F03FF74 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 074AA8 7F03FF78 44813000 */ mtc1 $at, $f6 +/* 074AAC 7F03FF7C C4840070 */ lwc1 $f4, 0x70($a0) +/* 074AB0 7F03FF80 C48A0074 */ lwc1 $f10, 0x74($a0) +/* 074AB4 7F03FF84 46062202 */ mul.s $f8, $f4, $f6 +/* 074AB8 7F03FF88 460A4403 */ div.s $f16, $f8, $f10 +/* 074ABC 7F03FF8C 4600848D */ trunc.w.s $f18, $f16 +/* 074AC0 7F03FF90 44029000 */ mfc1 $v0, $f18 +/* 074AC4 7F03FF94 03E00008 */ jr $ra +/* 074AC8 7F03FF98 00000000 */ nop + +/* 074ACC 7F03FF9C C4840070 */ lwc1 $f4, 0x70($a0) +.L7F03FFA0: +/* 074AD0 7F03FFA0 44813000 */ mtc1 $at, $f6 +/* 074AD4 7F03FFA4 00000000 */ nop +/* 074AD8 7F03FFA8 46062200 */ add.s $f8, $f4, $f6 +/* 074ADC 7F03FFAC 4600428D */ trunc.w.s $f10, $f8 +/* 074AE0 7F03FFB0 44025000 */ mfc1 $v0, $f10 +/* 074AE4 7F03FFB4 00000000 */ nop +/* 074AE8 7F03FFB8 03E00008 */ jr $ra +/* 074AEC 7F03FFBC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void do_something_if_object_destroyed(void) { + +} +#else +GLOBAL_ASM( +.text +glabel do_something_if_object_destroyed +/* 074AF0 7F03FFC0 908E0002 */ lbu $t6, 2($a0) +/* 074AF4 7F03FFC4 31CF0080 */ andi $t7, $t6, 0x80 +/* 074AF8 7F03FFC8 55E00004 */ bnezl $t7, .L7F03FFDC +/* 074AFC 7F03FFCC C4840070 */ lwc1 $f4, 0x70($a0) +/* 074B00 7F03FFD0 03E00008 */ jr $ra +/* 074B04 7F03FFD4 00001025 */ move $v0, $zero + +/* 074B08 7F03FFD8 C4840070 */ lwc1 $f4, 0x70($a0) +.L7F03FFDC: +/* 074B0C 7F03FFDC 4600218D */ trunc.w.s $f6, $f4 +/* 074B10 7F03FFE0 44023000 */ mfc1 $v0, $f6 +/* 074B14 7F03FFE4 00000000 */ nop +/* 074B18 7F03FFE8 0002C883 */ sra $t9, $v0, 2 +/* 074B1C 7F03FFEC 27220001 */ addiu $v0, $t9, 1 +/* 074B20 7F03FFF0 03E00008 */ jr $ra +/* 074B24 7F03FFF4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F03FFF8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F03FFF8 +/* 074B28 7F03FFF8 8C8E0000 */ lw $t6, ($a0) +/* 074B2C 7F03FFFC 8DC20014 */ lw $v0, 0x14($t6) +/* 074B30 7F040000 5040001B */ beql $v0, $zero, .L7F040070 +/* 074B34 7F040004 00001025 */ move $v0, $zero +/* 074B38 7F040008 1040000A */ beqz $v0, .L7F040034 +/* 074B3C 7F04000C 00401825 */ move $v1, $v0 +/* 074B40 7F040010 2405000A */ li $a1, 10 +/* 074B44 7F040014 946F0000 */ lhu $t7, ($v1) +.L7F040018: +/* 074B48 7F040018 54AF0004 */ bnel $a1, $t7, .L7F04002C +/* 074B4C 7F04001C 8C63000C */ lw $v1, 0xc($v1) +/* 074B50 7F040020 03E00008 */ jr $ra +/* 074B54 7F040024 8C620004 */ lw $v0, 4($v1) + +/* 074B58 7F040028 8C63000C */ lw $v1, 0xc($v1) +.L7F04002C: +/* 074B5C 7F04002C 5460FFFA */ bnezl $v1, .L7F040018 +/* 074B60 7F040030 946F0000 */ lhu $t7, ($v1) +.L7F040034: +/* 074B64 7F040034 8C440014 */ lw $a0, 0x14($v0) +/* 074B68 7F040038 2405000A */ li $a1, 10 +/* 074B6C 7F04003C 5080000C */ beql $a0, $zero, .L7F040070 +/* 074B70 7F040040 00001025 */ move $v0, $zero +/* 074B74 7F040044 10800009 */ beqz $a0, .L7F04006C +/* 074B78 7F040048 00801825 */ move $v1, $a0 +/* 074B7C 7F04004C 94780000 */ lhu $t8, ($v1) +.L7F040050: +/* 074B80 7F040050 54B80004 */ bnel $a1, $t8, .L7F040064 +/* 074B84 7F040054 8C63000C */ lw $v1, 0xc($v1) +/* 074B88 7F040058 03E00008 */ jr $ra +/* 074B8C 7F04005C 8C620004 */ lw $v0, 4($v1) + +/* 074B90 7F040060 8C63000C */ lw $v1, 0xc($v1) +.L7F040064: +/* 074B94 7F040064 5460FFFA */ bnezl $v1, .L7F040050 +/* 074B98 7F040068 94780000 */ lhu $t8, ($v1) +.L7F04006C: +/* 074B9C 7F04006C 00001025 */ move $v0, $zero +.L7F040070: +/* 074BA0 7F040070 03E00008 */ jr $ra +/* 074BA4 7F040074 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F040078(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F040078 +/* 074BA8 7F040078 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 074BAC 7F04007C AFBF0014 */ sw $ra, 0x14($sp) +/* 074BB0 7F040080 8C8E0014 */ lw $t6, 0x14($a0) +/* 074BB4 7F040084 0FC0FFFE */ jal sub_GAME_7F03FFF8 +/* 074BB8 7F040088 8DC40008 */ lw $a0, 8($t6) +/* 074BBC 7F04008C 8FBF0014 */ lw $ra, 0x14($sp) +/* 074BC0 7F040090 27BD0018 */ addiu $sp, $sp, 0x18 +/* 074BC4 7F040094 03E00008 */ jr $ra +/* 074BC8 7F040098 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void set_color_shading_from_tile(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_color_shading_from_tile +/* 074BCC 7F04009C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 074BD0 7F0400A0 AFBF0014 */ sw $ra, 0x14($sp) +/* 074BD4 7F0400A4 AFA40018 */ sw $a0, 0x18($sp) +/* 074BD8 7F0400A8 00807025 */ move $t6, $a0 +/* 074BDC 7F0400AC 00A03825 */ move $a3, $a1 +/* 074BE0 7F0400B0 8DC50008 */ lw $a1, 8($t6) +/* 074BE4 7F0400B4 8DC60010 */ lw $a2, 0x10($t6) +/* 074BE8 7F0400B8 8C840014 */ lw $a0, 0x14($a0) +/* 074BEC 7F0400BC 0FC2CB0B */ jal copy_tile_RGB_as_24bit +/* 074BF0 7F0400C0 AFA7001C */ sw $a3, 0x1c($sp) +/* 074BF4 7F0400C4 8FA7001C */ lw $a3, 0x1c($sp) +/* 074BF8 7F0400C8 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 074BFC 7F0400CC 44814000 */ mtc1 $at, $f8 +/* 074C00 7F0400D0 90EB0002 */ lbu $t3, 2($a3) +/* 074C04 7F0400D4 90ED0000 */ lbu $t5, ($a3) +/* 074C08 7F0400D8 90FF0001 */ lbu $ra, 1($a3) +/* 074C0C 7F0400DC 000B7880 */ sll $t7, $t3, 2 +/* 074C10 7F0400E0 000DC080 */ sll $t8, $t5, 2 +/* 074C14 7F0400E4 01EB7821 */ addu $t7, $t7, $t3 +/* 074C18 7F0400E8 030DC021 */ addu $t8, $t8, $t5 +/* 074C1C 7F0400EC 001F7080 */ sll $t6, $ra, 2 +/* 074C20 7F0400F0 0018C100 */ sll $t8, $t8, 4 +/* 074C24 7F0400F4 000F7880 */ sll $t7, $t7, 2 +/* 074C28 7F0400F8 01DF7021 */ addu $t6, $t6, $ra +/* 074C2C 7F0400FC 000E70C0 */ sll $t6, $t6, 3 +/* 074C30 7F040100 01EB7821 */ addu $t7, $t7, $t3 +/* 074C34 7F040104 030DC023 */ subu $t8, $t8, $t5 +/* 074C38 7F040108 01F8C821 */ addu $t9, $t7, $t8 +/* 074C3C 7F04010C 01DF7023 */ subu $t6, $t6, $ra +/* 074C40 7F040110 000E7080 */ sll $t6, $t6, 2 +/* 074C44 7F040114 032E1821 */ addu $v1, $t9, $t6 +/* 074C48 7F040118 00037A03 */ sra $t7, $v1, 8 +/* 074C4C 7F04011C 241800FF */ li $t8, 255 +/* 074C50 7F040120 030FC823 */ subu $t9, $t8, $t7 +/* 074C54 7F040124 44992000 */ mtc1 $t9, $f4 +/* 074C58 7F040128 240F0001 */ li $t7, 1 +/* 074C5C 7F04012C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 074C60 7F040130 468021A0 */ cvt.s.w $f6, $f4 +/* 074C64 7F040134 00001025 */ move $v0, $zero +/* 074C68 7F040138 00006025 */ move $t4, $zero +/* 074C6C 7F04013C 46083282 */ mul.s $f10, $f6, $f8 +/* 074C70 7F040140 444EF800 */ cfc1 $t6, $31 +/* 074C74 7F040144 44CFF800 */ ctc1 $t7, $31 +/* 074C78 7F040148 00000000 */ nop +/* 074C7C 7F04014C 46005424 */ cvt.w.s $f16, $f10 +/* 074C80 7F040150 444FF800 */ cfc1 $t7, $31 +/* 074C84 7F040154 00000000 */ nop +/* 074C88 7F040158 31EF0078 */ andi $t7, $t7, 0x78 +/* 074C8C 7F04015C 51E00013 */ beql $t7, $zero, .L7F0401AC +/* 074C90 7F040160 440F8000 */ mfc1 $t7, $f16 +/* 074C94 7F040164 44818000 */ mtc1 $at, $f16 +/* 074C98 7F040168 240F0001 */ li $t7, 1 +/* 074C9C 7F04016C 46105401 */ sub.s $f16, $f10, $f16 +/* 074CA0 7F040170 44CFF800 */ ctc1 $t7, $31 +/* 074CA4 7F040174 00000000 */ nop +/* 074CA8 7F040178 46008424 */ cvt.w.s $f16, $f16 +/* 074CAC 7F04017C 444FF800 */ cfc1 $t7, $31 +/* 074CB0 7F040180 00000000 */ nop +/* 074CB4 7F040184 31EF0078 */ andi $t7, $t7, 0x78 +/* 074CB8 7F040188 15E00005 */ bnez $t7, .L7F0401A0 +/* 074CBC 7F04018C 00000000 */ nop +/* 074CC0 7F040190 440F8000 */ mfc1 $t7, $f16 +/* 074CC4 7F040194 3C018000 */ lui $at, 0x8000 +/* 074CC8 7F040198 10000007 */ b .L7F0401B8 +/* 074CCC 7F04019C 01E17825 */ or $t7, $t7, $at +.L7F0401A0: +/* 074CD0 7F0401A0 10000005 */ b .L7F0401B8 +/* 074CD4 7F0401A4 240FFFFF */ li $t7, -1 +/* 074CD8 7F0401A8 440F8000 */ mfc1 $t7, $f16 +.L7F0401AC: +/* 074CDC 7F0401AC 00000000 */ nop +/* 074CE0 7F0401B0 05E0FFFB */ bltz $t7, .L7F0401A0 +/* 074CE4 7F0401B4 00000000 */ nop +.L7F0401B8: +/* 074CE8 7F0401B8 44CEF800 */ ctc1 $t6, $31 +/* 074CEC 7F0401BC 01BF082A */ slt $at, $t5, $ra +/* 074CF0 7F0401C0 10200003 */ beqz $at, .L7F0401D0 +/* 074CF4 7F0401C4 A0EF0003 */ sb $t7, 3($a3) +/* 074CF8 7F0401C8 10000002 */ b .L7F0401D4 +/* 074CFC 7F0401CC 24020001 */ li $v0, 1 +.L7F0401D0: +/* 074D00 7F0401D0 240C0001 */ li $t4, 1 +.L7F0401D4: +/* 074D04 7F0401D4 00E25021 */ addu $t2, $a3, $v0 +/* 074D08 7F0401D8 91460000 */ lbu $a2, ($t2) +/* 074D0C 7F0401DC 00402825 */ move $a1, $v0 +/* 074D10 7F0401E0 00ECC021 */ addu $t8, $a3, $t4 +/* 074D14 7F0401E4 00CB082A */ slt $at, $a2, $t3 +/* 074D18 7F0401E8 50200005 */ beql $at, $zero, .L7F040200 +/* 074D1C 7F0401EC 93190000 */ lbu $t9, ($t8) +/* 074D20 7F0401F0 24EA0002 */ addiu $t2, $a3, 2 +/* 074D24 7F0401F4 10000009 */ b .L7F04021C +/* 074D28 7F0401F8 91460000 */ lbu $a2, ($t2) +/* 074D2C 7F0401FC 93190000 */ lbu $t9, ($t8) +.L7F040200: +/* 074D30 7F040200 01802825 */ move $a1, $t4 +/* 074D34 7F040204 032B082A */ slt $at, $t9, $t3 +/* 074D38 7F040208 50200004 */ beql $at, $zero, .L7F04021C +/* 074D3C 7F04020C 240C0002 */ li $t4, 2 +/* 074D40 7F040210 10000002 */ b .L7F04021C +/* 074D44 7F040214 24050002 */ li $a1, 2 +/* 074D48 7F040218 240C0002 */ li $t4, 2 +.L7F04021C: +/* 074D4C 7F04021C 18C0001B */ blez $a2, .L7F04028C +/* 074D50 7F040220 00E51821 */ addu $v1, $a3, $a1 +/* 074D54 7F040224 00EC1021 */ addu $v0, $a3, $t4 +/* 074D58 7F040228 904E0000 */ lbu $t6, ($v0) +/* 074D5C 7F04022C 906F0000 */ lbu $t7, ($v1) +/* 074D60 7F040230 A0400000 */ sb $zero, ($v0) +/* 074D64 7F040234 00CE2023 */ subu $a0, $a2, $t6 +/* 074D68 7F040238 01E40019 */ multu $t7, $a0 +/* 074D6C 7F04023C 00804825 */ move $t1, $a0 +/* 074D70 7F040240 0000C012 */ mflo $t8 +/* 074D74 7F040244 00000000 */ nop +/* 074D78 7F040248 00000000 */ nop +/* 074D7C 7F04024C 0306001A */ div $zero, $t8, $a2 +/* 074D80 7F040250 00004012 */ mflo $t0 +/* 074D84 7F040254 A0680000 */ sb $t0, ($v1) +/* 074D88 7F040258 A1440000 */ sb $a0, ($t2) +/* 074D8C 7F04025C 14C00002 */ bnez $a2, .L7F040268 +/* 074D90 7F040260 00000000 */ nop +/* 074D94 7F040264 0007000D */ break 7 +.L7F040268: +/* 074D98 7F040268 2401FFFF */ li $at, -1 +/* 074D9C 7F04026C 14C10004 */ bne $a2, $at, .L7F040280 +/* 074DA0 7F040270 3C018000 */ lui $at, 0x8000 +/* 074DA4 7F040274 17010002 */ bne $t8, $at, .L7F040280 +/* 074DA8 7F040278 00000000 */ nop +/* 074DAC 7F04027C 0006000D */ break 6 +.L7F040280: +/* 074DB0 7F040280 90FF0001 */ lbu $ra, 1($a3) +/* 074DB4 7F040284 90ED0000 */ lbu $t5, ($a3) +/* 074DB8 7F040288 90EB0002 */ lbu $t3, 2($a3) +.L7F04028C: +/* 074DBC 7F04028C 000DC842 */ srl $t9, $t5, 1 +/* 074DC0 7F040290 001F7042 */ srl $t6, $ra, 1 +/* 074DC4 7F040294 000B7842 */ srl $t7, $t3, 1 +/* 074DC8 7F040298 A0F90000 */ sb $t9, ($a3) +/* 074DCC 7F04029C A0EE0001 */ sb $t6, 1($a3) +/* 074DD0 7F0402A0 A0EF0002 */ sb $t7, 2($a3) +/* 074DD4 7F0402A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 074DD8 7F0402A8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 074DDC 7F0402AC 03E00008 */ jr $ra +/* 074DE0 7F0402B0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0402B4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0402B4 +/* 074DE4 7F0402B4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 074DE8 7F0402B8 AFBF0014 */ sw $ra, 0x14($sp) +/* 074DEC 7F0402BC 8C820004 */ lw $v0, 4($a0) +/* 074DF0 7F0402C0 8C4E0008 */ lw $t6, 8($v0) +/* 074DF4 7F0402C4 31CF0400 */ andi $t7, $t6, 0x400 +/* 074DF8 7F0402C8 55E0000E */ bnezl $t7, .L7F040304 +/* 074DFC 7F0402CC 8FBF0014 */ lw $ra, 0x14($sp) +/* 074E00 7F0402D0 0FC10027 */ jal set_color_shading_from_tile +/* 074E04 7F0402D4 AFA5001C */ sw $a1, 0x1c($sp) +/* 074E08 7F0402D8 8FA5001C */ lw $a1, 0x1c($sp) +/* 074E0C 7F0402DC 90B80000 */ lbu $t8, ($a1) +/* 074E10 7F0402E0 90A80001 */ lbu $t0, 1($a1) +/* 074E14 7F0402E4 90AA0002 */ lbu $t2, 2($a1) +/* 074E18 7F0402E8 0018C842 */ srl $t9, $t8, 1 +/* 074E1C 7F0402EC 00084842 */ srl $t1, $t0, 1 +/* 074E20 7F0402F0 000A5842 */ srl $t3, $t2, 1 +/* 074E24 7F0402F4 A0B90000 */ sb $t9, ($a1) +/* 074E28 7F0402F8 A0A90001 */ sb $t1, 1($a1) +/* 074E2C 7F0402FC A0AB0002 */ sb $t3, 2($a1) +/* 074E30 7F040300 8FBF0014 */ lw $ra, 0x14($sp) +.L7F040304: +/* 074E34 7F040304 27BD0018 */ addiu $sp, $sp, 0x18 +/* 074E38 7F040308 03E00008 */ jr $ra +/* 074E3C 7F04030C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void update_color_shading(void) { + +} +#else +GLOBAL_ASM( +.text +glabel update_color_shading +/* 074E40 7F040310 90880000 */ lbu $t0, ($a0) +/* 074E44 7F040314 90AE0000 */ lbu $t6, ($a1) +/* 074E48 7F040318 90890001 */ lbu $t1, 1($a0) +/* 074E4C 7F04031C 908A0002 */ lbu $t2, 2($a0) +/* 074E50 7F040320 01C81023 */ subu $v0, $t6, $t0 +/* 074E54 7F040324 244F0007 */ addiu $t7, $v0, 7 +/* 074E58 7F040328 000FC0C3 */ sra $t8, $t7, 3 +/* 074E5C 7F04032C 01181821 */ addu $v1, $t0, $t8 +/* 074E60 7F040330 A0830000 */ sb $v1, ($a0) +/* 074E64 7F040334 90B90001 */ lbu $t9, 1($a1) +/* 074E68 7F040338 908B0003 */ lbu $t3, 3($a0) +/* 074E6C 7F04033C 03291023 */ subu $v0, $t9, $t1 +/* 074E70 7F040340 244C0007 */ addiu $t4, $v0, 7 +/* 074E74 7F040344 000C68C3 */ sra $t5, $t4, 3 +/* 074E78 7F040348 012D1821 */ addu $v1, $t1, $t5 +/* 074E7C 7F04034C A0830001 */ sb $v1, 1($a0) +/* 074E80 7F040350 90AE0002 */ lbu $t6, 2($a1) +/* 074E84 7F040354 01CA1023 */ subu $v0, $t6, $t2 +/* 074E88 7F040358 244F0007 */ addiu $t7, $v0, 7 +/* 074E8C 7F04035C 000FC0C3 */ sra $t8, $t7, 3 +/* 074E90 7F040360 01581821 */ addu $v1, $t2, $t8 +/* 074E94 7F040364 A0830002 */ sb $v1, 2($a0) +/* 074E98 7F040368 90B90003 */ lbu $t9, 3($a1) +/* 074E9C 7F04036C 032B1023 */ subu $v0, $t9, $t3 +/* 074EA0 7F040370 244C0007 */ addiu $t4, $v0, 7 +/* 074EA4 7F040374 000C68C3 */ sra $t5, $t4, 3 +/* 074EA8 7F040378 016D1821 */ addu $v1, $t3, $t5 +/* 074EAC 7F04037C 03E00008 */ jr $ra +/* 074EB0 7F040380 A0830003 */ sb $v1, 3($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F040384(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F040384 +/* 074EB4 7F040384 24010001 */ li $at, 1 +/* 074EB8 7F040388 14A1003C */ bne $a1, $at, .L7F04047C +/* 074EBC 7F04038C 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 074EC0 7F040390 44811000 */ mtc1 $at, $f2 +/* 074EC4 7F040394 C4C40000 */ lwc1 $f4, ($a2) +/* 074EC8 7F040398 C4C80004 */ lwc1 $f8, 4($a2) +/* 074ECC 7F04039C C4D00008 */ lwc1 $f16, 8($a2) +/* 074ED0 7F0403A0 46022182 */ mul.s $f6, $f4, $f2 +/* 074ED4 7F0403A4 00000000 */ nop +/* 074ED8 7F0403A8 46024282 */ mul.s $f10, $f8, $f2 +/* 074EDC 7F0403AC 00000000 */ nop +/* 074EE0 7F0403B0 46028482 */ mul.s $f18, $f16, $f2 +/* 074EE4 7F0403B4 E4C60000 */ swc1 $f6, ($a2) +/* 074EE8 7F0403B8 C4C80000 */ lwc1 $f8, ($a2) +/* 074EEC 7F0403BC C4C6000C */ lwc1 $f6, 0xc($a2) +/* 074EF0 7F0403C0 E4CA0004 */ swc1 $f10, 4($a2) +/* 074EF4 7F0403C4 E4D20008 */ swc1 $f18, 8($a2) +/* 074EF8 7F0403C8 8C8E0000 */ lw $t6, ($a0) +/* 074EFC 7F0403CC 8C990004 */ lw $t9, 4($a0) +/* 074F00 7F0403D0 8C8A0008 */ lw $t2, 8($a0) +/* 074F04 7F0403D4 448E2000 */ mtc1 $t6, $f4 +/* 074F08 7F0403D8 8C8D000C */ lw $t5, 0xc($a0) +/* 074F0C 7F0403DC 46802020 */ cvt.s.w $f0, $f4 +/* 074F10 7F0403E0 46004281 */ sub.s $f10, $f8, $f0 +/* 074F14 7F0403E4 44994000 */ mtc1 $t9, $f8 +/* 074F18 7F0403E8 460A3402 */ mul.s $f16, $f6, $f10 +/* 074F1C 7F0403EC 46008480 */ add.s $f18, $f16, $f0 +/* 074F20 7F0403F0 46804020 */ cvt.s.w $f0, $f8 +/* 074F24 7F0403F4 4600910D */ trunc.w.s $f4, $f18 +/* 074F28 7F0403F8 44182000 */ mfc1 $t8, $f4 +/* 074F2C 7F0403FC 00000000 */ nop +/* 074F30 7F040400 AC980000 */ sw $t8, ($a0) +/* 074F34 7F040404 C4CA0004 */ lwc1 $f10, 4($a2) +/* 074F38 7F040408 C4C6000C */ lwc1 $f6, 0xc($a2) +/* 074F3C 7F04040C 46005401 */ sub.s $f16, $f10, $f0 +/* 074F40 7F040410 448A5000 */ mtc1 $t2, $f10 +/* 074F44 7F040414 46103482 */ mul.s $f18, $f6, $f16 +/* 074F48 7F040418 46009100 */ add.s $f4, $f18, $f0 +/* 074F4C 7F04041C 46805020 */ cvt.s.w $f0, $f10 +/* 074F50 7F040420 4600220D */ trunc.w.s $f8, $f4 +/* 074F54 7F040424 44094000 */ mfc1 $t1, $f8 +/* 074F58 7F040428 00000000 */ nop +/* 074F5C 7F04042C AC890004 */ sw $t1, 4($a0) +/* 074F60 7F040430 C4D00008 */ lwc1 $f16, 8($a2) +/* 074F64 7F040434 C4C6000C */ lwc1 $f6, 0xc($a2) +/* 074F68 7F040438 46008481 */ sub.s $f18, $f16, $f0 +/* 074F6C 7F04043C 448D8000 */ mtc1 $t5, $f16 +/* 074F70 7F040440 46123102 */ mul.s $f4, $f6, $f18 +/* 074F74 7F040444 46002200 */ add.s $f8, $f4, $f0 +/* 074F78 7F040448 46808020 */ cvt.s.w $f0, $f16 +/* 074F7C 7F04044C 4600428D */ trunc.w.s $f10, $f8 +/* 074F80 7F040450 46001481 */ sub.s $f18, $f2, $f0 +/* 074F84 7F040454 440C5000 */ mfc1 $t4, $f10 +/* 074F88 7F040458 00000000 */ nop +/* 074F8C 7F04045C AC8C0008 */ sw $t4, 8($a0) +/* 074F90 7F040460 C4C6000C */ lwc1 $f6, 0xc($a2) +/* 074F94 7F040464 46123102 */ mul.s $f4, $f6, $f18 +/* 074F98 7F040468 46002200 */ add.s $f8, $f4, $f0 +/* 074F9C 7F04046C 4600428D */ trunc.w.s $f10, $f8 +/* 074FA0 7F040470 440F5000 */ mfc1 $t7, $f10 +/* 074FA4 7F040474 00000000 */ nop +/* 074FA8 7F040478 AC8F000C */ sw $t7, 0xc($a0) +.L7F04047C: +/* 074FAC 7F04047C 03E00008 */ jr $ra +/* 074FB0 7F040480 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F040484(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F040484 +/* 074FB4 7F040484 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 074FB8 7F040488 AFBF001C */ sw $ra, 0x1c($sp) +/* 074FBC 7F04048C AFB00018 */ sw $s0, 0x18($sp) +/* 074FC0 7F040490 8C8E0068 */ lw $t6, 0x68($a0) +/* 074FC4 7F040494 00808025 */ move $s0, $a0 +/* 074FC8 7F040498 51C00028 */ beql $t6, $zero, .L7F04053C +/* 074FCC 7F04049C 8FBF001C */ lw $ra, 0x1c($sp) +/* 074FD0 7F0404A0 0FC1001E */ jal sub_GAME_7F040078 +/* 074FD4 7F0404A4 00000000 */ nop +/* 074FD8 7F0404A8 AFA20064 */ sw $v0, 0x64($sp) +/* 074FDC 7F0404AC 26040018 */ addiu $a0, $s0, 0x18 +/* 074FE0 7F0404B0 0FC16008 */ jal matrix_4x4_copy +/* 074FE4 7F0404B4 27A50024 */ addiu $a1, $sp, 0x24 +/* 074FE8 7F0404B8 26040058 */ addiu $a0, $s0, 0x58 +/* 074FEC 7F0404BC 0FC16266 */ jal matrix_4x4_set_position +/* 074FF0 7F0404C0 27A50024 */ addiu $a1, $sp, 0x24 +/* 074FF4 7F0404C4 8E070068 */ lw $a3, 0x68($s0) +/* 074FF8 7F0404C8 8FA40064 */ lw $a0, 0x64($sp) +/* 074FFC 7F0404CC 27A50024 */ addiu $a1, $sp, 0x24 +/* 075000 7F0404D0 0FC0FD50 */ jal sub_GAME_7F03F540 +/* 075004 7F0404D4 24E60004 */ addiu $a2, $a3, 4 +/* 075008 7F0404D8 8FA40064 */ lw $a0, 0x64($sp) +/* 07500C 7F0404DC 0FC0FA6F */ jal sub_GAME_7F03E9BC +/* 075010 7F0404E0 27A50024 */ addiu $a1, $sp, 0x24 +/* 075014 7F0404E4 C604005C */ lwc1 $f4, 0x5c($s0) +/* 075018 7F0404E8 8E0F0068 */ lw $t7, 0x68($s0) +/* 07501C 7F0404EC 27A50024 */ addiu $a1, $sp, 0x24 +/* 075020 7F0404F0 46040180 */ add.s $f6, $f0, $f4 +/* 075024 7F0404F4 E5E60048 */ swc1 $f6, 0x48($t7) +/* 075028 7F0404F8 0FC0FA97 */ jal sub_GAME_7F03EA5C +/* 07502C 7F0404FC 8FA40064 */ lw $a0, 0x64($sp) +/* 075030 7F040500 C608005C */ lwc1 $f8, 0x5c($s0) +/* 075034 7F040504 8E180068 */ lw $t8, 0x68($s0) +/* 075038 7F040508 24010028 */ li $at, 40 +/* 07503C 7F04050C 46080280 */ add.s $f10, $f0, $f8 +/* 075040 7F040510 E70A0044 */ swc1 $f10, 0x44($t8) +/* 075044 7F040514 92190003 */ lbu $t9, 3($s0) +/* 075048 7F040518 57210008 */ bnel $t9, $at, .L7F04053C +/* 07504C 7F04051C 8FBF001C */ lw $ra, 0x1c($sp) +/* 075050 7F040520 8E070068 */ lw $a3, 0x68($s0) +/* 075054 7F040524 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 075058 7F040528 44819000 */ mtc1 $at, $f18 +/* 07505C 7F04052C C4F00048 */ lwc1 $f16, 0x48($a3) +/* 075060 7F040530 46128101 */ sub.s $f4, $f16, $f18 +/* 075064 7F040534 E4E40048 */ swc1 $f4, 0x48($a3) +/* 075068 7F040538 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04053C: +/* 07506C 7F04053C 8FB00018 */ lw $s0, 0x18($sp) +/* 075070 7F040540 27BD0068 */ addiu $sp, $sp, 0x68 +/* 075074 7F040544 03E00008 */ jr $ra +/* 075078 7F040548 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void init_standard_object(void) { + +} +#else +GLOBAL_ASM( +.text +glabel init_standard_object +/* 07507C 7F04054C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 075080 7F040550 AFB10018 */ sw $s1, 0x18($sp) +/* 075084 7F040554 AFB00014 */ sw $s0, 0x14($sp) +/* 075088 7F040558 00808025 */ move $s0, $a0 +/* 07508C 7F04055C 00C08825 */ move $s1, $a2 +/* 075090 7F040560 14C00007 */ bnez $a2, .L7F040580 +/* 075094 7F040564 AFBF001C */ sw $ra, 0x1c($sp) +/* 075098 7F040568 AFA50024 */ sw $a1, 0x24($sp) +/* 07509C 7F04056C 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 0750A0 7F040570 AFA7002C */ sw $a3, 0x2c($sp) +/* 0750A4 7F040574 8FA50024 */ lw $a1, 0x24($sp) +/* 0750A8 7F040578 8FA7002C */ lw $a3, 0x2c($sp) +/* 0750AC 7F04057C 00408825 */ move $s1, $v0 +.L7F040580: +/* 0750B0 7F040580 14E0000C */ bnez $a3, .L7F0405B4 +/* 0750B4 7F040584 00000000 */ nop +/* 0750B8 7F040588 920E0003 */ lbu $t6, 3($s0) +/* 0750BC 7F04058C 24010028 */ li $at, 40 +/* 0750C0 7F040590 15C10005 */ bne $t6, $at, .L7F0405A8 +/* 0750C4 7F040594 00000000 */ nop +/* 0750C8 7F040598 0FC1B08F */ jal get_aircraft_obj_instance_controller +/* 0750CC 7F04059C 00A02025 */ move $a0, $a1 +/* 0750D0 7F0405A0 10000004 */ b .L7F0405B4 +/* 0750D4 7F0405A4 00403825 */ move $a3, $v0 +.L7F0405A8: +/* 0750D8 7F0405A8 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 0750DC 7F0405AC 00A02025 */ move $a0, $a1 +/* 0750E0 7F0405B0 00403825 */ move $a3, $v0 +.L7F0405B4: +/* 0750E4 7F0405B4 12200039 */ beqz $s1, .L7F04069C +/* 0750E8 7F0405B8 00000000 */ nop +/* 0750EC 7F0405BC 10E00037 */ beqz $a3, .L7F04069C +/* 0750F0 7F0405C0 00000000 */ nop +/* 0750F4 7F0405C4 8E0F0008 */ lw $t7, 8($s0) +/* 0750F8 7F0405C8 AE070014 */ sw $a3, 0x14($s0) +/* 0750FC 7F0405CC AE000068 */ sw $zero, 0x68($s0) +/* 075100 7F0405D0 31F80100 */ andi $t8, $t7, 0x100 +/* 075104 7F0405D4 13000008 */ beqz $t8, .L7F0405F8 +/* 075108 7F0405D8 24040050 */ li $a0, 80 +/* 07510C 7F0405DC 0C0025C8 */ jal mempAllocBytesInBank +/* 075110 7F0405E0 24050004 */ li $a1, 4 +/* 075114 7F0405E4 92190002 */ lbu $t9, 2($s0) +/* 075118 7F0405E8 AE020068 */ sw $v0, 0x68($s0) +/* 07511C 7F0405EC 37280008 */ ori $t0, $t9, 8 +/* 075120 7F0405F0 10000004 */ b .L7F040604 +/* 075124 7F0405F4 A2080002 */ sb $t0, 2($s0) +.L7F0405F8: +/* 075128 7F0405F8 92090002 */ lbu $t1, 2($s0) +/* 07512C 7F0405FC 312AFFF7 */ andi $t2, $t1, 0xfff7 +/* 075130 7F040600 A20A0002 */ sb $t2, 2($s0) +.L7F040604: +/* 075134 7F040604 44800000 */ mtc1 $zero, $f0 +/* 075138 7F040608 8E0C0014 */ lw $t4, 0x14($s0) +/* 07513C 7F04060C AE110010 */ sw $s1, 0x10($s0) +/* 075140 7F040610 AE00006C */ sw $zero, 0x6c($s0) +/* 075144 7F040614 A2000078 */ sb $zero, 0x78($s0) +/* 075148 7F040618 A2000079 */ sb $zero, 0x79($s0) +/* 07514C 7F04061C A200007A */ sb $zero, 0x7a($s0) +/* 075150 7F040620 A200007B */ sb $zero, 0x7b($s0) +/* 075154 7F040624 A200007C */ sb $zero, 0x7c($s0) +/* 075158 7F040628 A200007D */ sb $zero, 0x7d($s0) +/* 07515C 7F04062C A200007E */ sb $zero, 0x7e($s0) +/* 075160 7F040630 A200007F */ sb $zero, 0x7f($s0) +/* 075164 7F040634 240BFFFF */ li $t3, -1 +/* 075168 7F040638 E6000070 */ swc1 $f0, 0x70($s0) +/* 07516C 7F04063C A58B0000 */ sh $t3, ($t4) +/* 075170 7F040640 8E0D0014 */ lw $t5, 0x14($s0) +/* 075174 7F040644 3C058004 */ lui $a1, %hi(PitemZ_entries+8) +/* 075178 7F040648 ADA00004 */ sw $zero, 4($t5) +/* 07517C 7F04064C 860E0004 */ lh $t6, 4($s0) +/* 075180 7F040650 8E040014 */ lw $a0, 0x14($s0) +/* 075184 7F040654 000E7880 */ sll $t7, $t6, 2 +/* 075188 7F040658 01EE7823 */ subu $t7, $t7, $t6 +/* 07518C 7F04065C 000F7880 */ sll $t7, $t7, 2 +/* 075190 7F040660 00AF2821 */ addu $a1, $a1, $t7 +/* 075194 7F040664 0FC1B39E */ jal set_obj_instance_controller_scale +/* 075198 7F040668 8CA5A230 */ lw $a1, %lo(PitemZ_entries+8)($a1) +/* 07519C 7F04066C 44800000 */ mtc1 $zero, $f0 +/* 0751A0 7F040670 24180001 */ li $t8, 1 +/* 0751A4 7F040674 A2380000 */ sb $t8, ($s1) +/* 0751A8 7F040678 AE300004 */ sw $s0, 4($s1) +/* 0751AC 7F04067C E6200008 */ swc1 $f0, 8($s1) +/* 0751B0 7F040680 E6000058 */ swc1 $f0, 0x58($s0) +/* 0751B4 7F040684 E620000C */ swc1 $f0, 0xc($s1) +/* 0751B8 7F040688 E600005C */ swc1 $f0, 0x5c($s0) +/* 0751BC 7F04068C E6200010 */ swc1 $f0, 0x10($s1) +/* 0751C0 7F040690 E6000060 */ swc1 $f0, 0x60($s0) +/* 0751C4 7F040694 10000012 */ b .L7F0406E0 +/* 0751C8 7F040698 AE200014 */ sw $zero, 0x14($s1) +.L7F04069C: +/* 0751CC 7F04069C 10E0000B */ beqz $a3, .L7F0406CC +/* 0751D0 7F0406A0 00000000 */ nop +/* 0751D4 7F0406A4 92190003 */ lbu $t9, 3($s0) +/* 0751D8 7F0406A8 24010028 */ li $at, 40 +/* 0751DC 7F0406AC 17210005 */ bne $t9, $at, .L7F0406C4 +/* 0751E0 7F0406B0 00000000 */ nop +/* 0751E4 7F0406B4 0FC1B0FE */ jal set_aircraft_obj_inst_scale_to_zero +/* 0751E8 7F0406B8 00E02025 */ move $a0, $a3 +/* 0751EC 7F0406BC 10000003 */ b .L7F0406CC +/* 0751F0 7F0406C0 00000000 */ nop +.L7F0406C4: +/* 0751F4 7F0406C4 0FC1B08D */ jal set_obj_instance_scale_to_zero +/* 0751F8 7F0406C8 00E02025 */ move $a0, $a3 +.L7F0406CC: +/* 0751FC 7F0406CC 52200005 */ beql $s1, $zero, .L7F0406E4 +/* 075200 7F0406D0 8FBF001C */ lw $ra, 0x1c($sp) +/* 075204 7F0406D4 0FC0E921 */ jal set_last_obj_pos_data +/* 075208 7F0406D8 02202025 */ move $a0, $s1 +/* 07520C 7F0406DC 00008825 */ move $s1, $zero +.L7F0406E0: +/* 075210 7F0406E0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0406E4: +/* 075214 7F0406E4 02201025 */ move $v0, $s1 +/* 075218 7F0406E8 8FB10018 */ lw $s1, 0x18($sp) +/* 07521C 7F0406EC 8FB00014 */ lw $s0, 0x14($sp) +/* 075220 7F0406F0 03E00008 */ jr $ra +/* 075224 7F0406F4 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0406F8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0406F8 +/* 075228 7F0406F8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 07522C 7F0406FC AFBF0014 */ sw $ra, 0x14($sp) +/* 075230 7F040700 00003025 */ move $a2, $zero +/* 075234 7F040704 0FC10153 */ jal init_standard_object +/* 075238 7F040708 00003825 */ move $a3, $zero +/* 07523C 7F04070C 8FBF0014 */ lw $ra, 0x14($sp) +/* 075240 7F040710 27BD0018 */ addiu $sp, $sp, 0x18 +/* 075244 7F040714 03E00008 */ jr $ra +/* 075248 7F040718 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04071C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04071C +/* 07524C 7F04071C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 075250 7F040720 AFBF0014 */ sw $ra, 0x14($sp) +/* 075254 7F040724 848E0004 */ lh $t6, 4($a0) +/* 075258 7F040728 3C058004 */ lui $a1, %hi(PitemZ_entries) +/* 07525C 7F04072C 000E7880 */ sll $t7, $t6, 2 +/* 075260 7F040730 01EE7823 */ subu $t7, $t7, $t6 +/* 075264 7F040734 000F7880 */ sll $t7, $t7, 2 +/* 075268 7F040738 00AF2821 */ addu $a1, $a1, $t7 +/* 07526C 7F04073C 0FC101BE */ jal sub_GAME_7F0406F8 +/* 075270 7F040740 8CA5A228 */ lw $a1, %lo(PitemZ_entries)($a1) +/* 075274 7F040744 8FBF0014 */ lw $ra, 0x14($sp) +/* 075278 7F040748 27BD0018 */ addiu $sp, $sp, 0x18 +/* 07527C 7F04074C 03E00008 */ jr $ra +/* 075280 7F040750 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F040754(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F040754 +/* 075284 7F040754 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 075288 7F040758 AFBF001C */ sw $ra, 0x1c($sp) +/* 07528C 7F04075C AFB00018 */ sw $s0, 0x18($sp) +/* 075290 7F040760 AFA5002C */ sw $a1, 0x2c($sp) +/* 075294 7F040764 AFA70034 */ sw $a3, 0x34($sp) +/* 075298 7F040768 8C820010 */ lw $v0, 0x10($a0) +/* 07529C 7F04076C 00808025 */ move $s0, $a0 +/* 0752A0 7F040770 26050018 */ addiu $a1, $s0, 0x18 +/* 0752A4 7F040774 00C02025 */ move $a0, $a2 +/* 0752A8 7F040778 0FC16008 */ jal matrix_4x4_copy +/* 0752AC 7F04077C AFA20024 */ sw $v0, 0x24($sp) +/* 0752B0 7F040780 8FA3002C */ lw $v1, 0x2c($sp) +/* 0752B4 7F040784 8FA20024 */ lw $v0, 0x24($sp) +/* 0752B8 7F040788 2605007C */ addiu $a1, $s0, 0x7c +/* 0752BC 7F04078C C4600000 */ lwc1 $f0, ($v1) +/* 0752C0 7F040790 E4400008 */ swc1 $f0, 8($v0) +/* 0752C4 7F040794 E6000058 */ swc1 $f0, 0x58($s0) +/* 0752C8 7F040798 C4600004 */ lwc1 $f0, 4($v1) +/* 0752CC 7F04079C E440000C */ swc1 $f0, 0xc($v0) +/* 0752D0 7F0407A0 E600005C */ swc1 $f0, 0x5c($s0) +/* 0752D4 7F0407A4 C4600008 */ lwc1 $f0, 8($v1) +/* 0752D8 7F0407A8 E4400010 */ swc1 $f0, 0x10($v0) +/* 0752DC 7F0407AC E6000060 */ swc1 $f0, 0x60($s0) +/* 0752E0 7F0407B0 8FAE0034 */ lw $t6, 0x34($sp) +/* 0752E4 7F0407B4 AC4E0014 */ sw $t6, 0x14($v0) +/* 0752E8 7F0407B8 0FC100AD */ jal sub_GAME_7F0402B4 +/* 0752EC 7F0407BC 8E040010 */ lw $a0, 0x10($s0) +/* 0752F0 7F0407C0 920F007C */ lbu $t7, 0x7c($s0) +/* 0752F4 7F0407C4 9218007D */ lbu $t8, 0x7d($s0) +/* 0752F8 7F0407C8 9219007E */ lbu $t9, 0x7e($s0) +/* 0752FC 7F0407CC 9208007F */ lbu $t0, 0x7f($s0) +/* 075300 7F0407D0 A20F0078 */ sb $t7, 0x78($s0) +/* 075304 7F0407D4 A2180079 */ sb $t8, 0x79($s0) +/* 075308 7F0407D8 A219007A */ sb $t9, 0x7a($s0) +/* 07530C 7F0407DC A208007B */ sb $t0, 0x7b($s0) +/* 075310 7F0407E0 8FBF001C */ lw $ra, 0x1c($sp) +/* 075314 7F0407E4 8FB00018 */ lw $s0, 0x18($sp) +/* 075318 7F0407E8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 07531C 7F0407EC 03E00008 */ jr $ra +/* 075320 7F0407F0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0407F4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0407F4 +/* 075324 7F0407F4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 075328 7F0407F8 AFBF001C */ sw $ra, 0x1c($sp) +/* 07532C 7F0407FC AFB00018 */ sw $s0, 0x18($sp) +/* 075330 7F040800 AFA40028 */ sw $a0, 0x28($sp) +/* 075334 7F040804 AFA60030 */ sw $a2, 0x30($sp) +/* 075338 7F040808 AFA70034 */ sw $a3, 0x34($sp) +/* 07533C 7F04080C 8C8F0014 */ lw $t7, 0x14($a0) +/* 075340 7F040810 00A08025 */ move $s0, $a1 +/* 075344 7F040814 0FC0FFFE */ jal sub_GAME_7F03FFF8 +/* 075348 7F040818 8DE40008 */ lw $a0, 8($t7) +/* 07534C 7F04081C AFA20020 */ sw $v0, 0x20($sp) +/* 075350 7F040820 8E060008 */ lw $a2, 8($s0) +/* 075354 7F040824 8E050000 */ lw $a1, ($s0) +/* 075358 7F040828 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 07535C 7F04082C 8FA40034 */ lw $a0, 0x34($sp) +/* 075360 7F040830 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 075364 7F040834 44812000 */ mtc1 $at, $f4 +/* 075368 7F040838 00000000 */ nop +/* 07536C 7F04083C 46040180 */ add.s $f6, $f0, $f4 +/* 075370 7F040840 E6060004 */ swc1 $f6, 4($s0) +/* 075374 7F040844 8FA50030 */ lw $a1, 0x30($sp) +/* 075378 7F040848 0FC0FA6F */ jal sub_GAME_7F03E9BC +/* 07537C 7F04084C 8FA40020 */ lw $a0, 0x20($sp) +/* 075380 7F040850 C6080004 */ lwc1 $f8, 4($s0) +/* 075384 7F040854 02002825 */ move $a1, $s0 +/* 075388 7F040858 46004281 */ sub.s $f10, $f8, $f0 +/* 07538C 7F04085C E60A0004 */ swc1 $f10, 4($s0) +/* 075390 7F040860 8FA70034 */ lw $a3, 0x34($sp) +/* 075394 7F040864 8FA60030 */ lw $a2, 0x30($sp) +/* 075398 7F040868 0FC101D5 */ jal sub_GAME_7F040754 +/* 07539C 7F04086C 8FA40028 */ lw $a0, 0x28($sp) +/* 0753A0 7F040870 0FC10121 */ jal sub_GAME_7F040484 +/* 0753A4 7F040874 8FA40028 */ lw $a0, 0x28($sp) +/* 0753A8 7F040878 8FBF001C */ lw $ra, 0x1c($sp) +/* 0753AC 7F04087C 8FB00018 */ lw $s0, 0x18($sp) +/* 0753B0 7F040880 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0753B4 7F040884 03E00008 */ jr $ra +/* 0753B8 7F040888 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04088C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800529D0 +.word 0xA000000 /*"\n"*/ +glabel D_800529D4 +.word 0x2E0A0000 /*".\n"*/ +glabel D_800529D8 +.word 0, 0, 0, 0, 0, 0, 0, 0 +.word 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +glabel D_80052A38 +.word 0 +glabel D_80052A3C +.word 0 +glabel D_80052A40 +.word 0xA000000 /*"\n"*/ +glabel D_80052A44 +.word 0x3A0A0000 /*":\n"*/ +glabel D_80052A48 +.word 0x3d4ccccd /*0.050000001*/ +.late_rodata +glabel D_80052A4C +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F04088C +/* 0753BC 7F04088C 27BDFF58 */ addiu $sp, $sp, -0xa8 +/* 0753C0 7F040890 AFBF0024 */ sw $ra, 0x24($sp) +/* 0753C4 7F040894 AFB00020 */ sw $s0, 0x20($sp) +/* 0753C8 7F040898 AFA500AC */ sw $a1, 0xac($sp) +/* 0753CC 7F04089C AFA600B0 */ sw $a2, 0xb0($sp) +/* 0753D0 7F0408A0 AFA700B4 */ sw $a3, 0xb4($sp) +/* 0753D4 7F0408A4 8C8E0014 */ lw $t6, 0x14($a0) +/* 0753D8 7F0408A8 00808025 */ move $s0, $a0 +/* 0753DC 7F0408AC 0FC0FFFE */ jal sub_GAME_7F03FFF8 +/* 0753E0 7F0408B0 8DC40008 */ lw $a0, 8($t6) +/* 0753E4 7F0408B4 AFA200A0 */ sw $v0, 0xa0($sp) +/* 0753E8 7F0408B8 0FC0FA19 */ jal sub_GAME_7F03E864 +/* 0753EC 7F0408BC 00402025 */ move $a0, $v0 +/* 0753F0 7F0408C0 8FA400A0 */ lw $a0, 0xa0($sp) +/* 0753F4 7F0408C4 0FC0FA1B */ jal sub_GAME_7F03E86C +/* 0753F8 7F0408C8 E7A0009C */ swc1 $f0, 0x9c($sp) +/* 0753FC 7F0408CC 8FA700B4 */ lw $a3, 0xb4($sp) +/* 075400 7F0408D0 E7A00098 */ swc1 $f0, 0x98($sp) +/* 075404 7F0408D4 C7A2009C */ lwc1 $f2, 0x9c($sp) +/* 075408 7F0408D8 AFA70088 */ sw $a3, 0x88($sp) +/* 07540C 7F0408DC 8E020008 */ lw $v0, 8($s0) +/* 075410 7F0408E0 3C018005 */ lui $at, %hi(D_80052A4C) +/* 075414 7F0408E4 27A50048 */ addiu $a1, $sp, 0x48 +/* 075418 7F0408E8 304F0004 */ andi $t7, $v0, 4 +/* 07541C 7F0408EC 11E00018 */ beqz $t7, .L7F040950 +/* 075420 7F0408F0 30580008 */ andi $t8, $v0, 8 +/* 075424 7F0408F4 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 075428 7F0408F8 C42C2A4C */ lwc1 $f12, %lo(D_80052A4C)($at) +/* 07542C 7F0408FC 8FA400B0 */ lw $a0, 0xb0($sp) +/* 075430 7F040900 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 075434 7F040904 27A50048 */ addiu $a1, $sp, 0x48 +/* 075438 7F040908 C7A00098 */ lwc1 $f0, 0x98($sp) +/* 07543C 7F04090C C7A60058 */ lwc1 $f6, 0x58($sp) +/* 075440 7F040910 8FA200B8 */ lw $v0, 0xb8($sp) +/* 075444 7F040914 C7B2005C */ lwc1 $f18, 0x5c($sp) +/* 075448 7F040918 46003202 */ mul.s $f8, $f6, $f0 +/* 07544C 7F04091C C4440000 */ lwc1 $f4, ($v0) +/* 075450 7F040920 46009182 */ mul.s $f6, $f18, $f0 +/* 075454 7F040924 46082281 */ sub.s $f10, $f4, $f8 +/* 075458 7F040928 E7AA008C */ swc1 $f10, 0x8c($sp) +/* 07545C 7F04092C C4500004 */ lwc1 $f16, 4($v0) +/* 075460 7F040930 C7AA0060 */ lwc1 $f10, 0x60($sp) +/* 075464 7F040934 46068101 */ sub.s $f4, $f16, $f6 +/* 075468 7F040938 46005482 */ mul.s $f18, $f10, $f0 +/* 07546C 7F04093C E7A40090 */ swc1 $f4, 0x90($sp) +/* 075470 7F040940 C4480008 */ lwc1 $f8, 8($v0) +/* 075474 7F040944 46124401 */ sub.s $f16, $f8, $f18 +/* 075478 7F040948 10000068 */ b .L7F040AEC +/* 07547C 7F04094C E7B00094 */ swc1 $f16, 0x94($sp) +.L7F040950: +/* 075480 7F040950 13000017 */ beqz $t8, .L7F0409B0 +/* 075484 7F040954 8FA200AC */ lw $v0, 0xac($sp) +/* 075488 7F040958 8FA400B0 */ lw $a0, 0xb0($sp) +/* 07548C 7F04095C 27A50048 */ addiu $a1, $sp, 0x48 +/* 075490 7F040960 0FC16008 */ jal matrix_4x4_copy +/* 075494 7F040964 E7A2009C */ swc1 $f2, 0x9c($sp) +/* 075498 7F040968 C7A2009C */ lwc1 $f2, 0x9c($sp) +/* 07549C 7F04096C C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0754A0 7F040970 8FA200B8 */ lw $v0, 0xb8($sp) +/* 0754A4 7F040974 C7B0005C */ lwc1 $f16, 0x5c($sp) +/* 0754A8 7F040978 46022282 */ mul.s $f10, $f4, $f2 +/* 0754AC 7F04097C C4460000 */ lwc1 $f6, ($v0) +/* 0754B0 7F040980 46028102 */ mul.s $f4, $f16, $f2 +/* 0754B4 7F040984 460A3201 */ sub.s $f8, $f6, $f10 +/* 0754B8 7F040988 E7A8008C */ swc1 $f8, 0x8c($sp) +/* 0754BC 7F04098C C4520004 */ lwc1 $f18, 4($v0) +/* 0754C0 7F040990 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 0754C4 7F040994 46049181 */ sub.s $f6, $f18, $f4 +/* 0754C8 7F040998 46024402 */ mul.s $f16, $f8, $f2 +/* 0754CC 7F04099C E7A60090 */ swc1 $f6, 0x90($sp) +/* 0754D0 7F0409A0 C44A0008 */ lwc1 $f10, 8($v0) +/* 0754D4 7F0409A4 46105481 */ sub.s $f18, $f10, $f16 +/* 0754D8 7F0409A8 10000050 */ b .L7F040AEC +/* 0754DC 7F0409AC E7B20094 */ swc1 $f18, 0x94($sp) +.L7F0409B0: +/* 0754E0 7F0409B0 8C450000 */ lw $a1, ($v0) +/* 0754E4 7F0409B4 8C460008 */ lw $a2, 8($v0) +/* 0754E8 7F0409B8 E7A2009C */ swc1 $f2, 0x9c($sp) +/* 0754EC 7F0409BC 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0754F0 7F0409C0 00E02025 */ move $a0, $a3 +/* 0754F4 7F0409C4 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0754F8 7F0409C8 27A50048 */ addiu $a1, $sp, 0x48 +/* 0754FC 7F0409CC 0FC16008 */ jal matrix_4x4_copy +/* 075500 7F0409D0 E7A00040 */ swc1 $f0, 0x40($sp) +/* 075504 7F0409D4 C7A2009C */ lwc1 $f2, 0x9c($sp) +/* 075508 7F0409D8 C7A60058 */ lwc1 $f6, 0x58($sp) +/* 07550C 7F0409DC 8FA200B8 */ lw $v0, 0xb8($sp) +/* 075510 7F0409E0 C7B20060 */ lwc1 $f18, 0x60($sp) +/* 075514 7F0409E4 46023202 */ mul.s $f8, $f6, $f2 +/* 075518 7F0409E8 C4440000 */ lwc1 $f4, ($v0) +/* 07551C 7F0409EC 8FB900B4 */ lw $t9, 0xb4($sp) +/* 075520 7F0409F0 46029182 */ mul.s $f6, $f18, $f2 +/* 075524 7F0409F4 8FA400AC */ lw $a0, 0xac($sp) +/* 075528 7F0409F8 46082281 */ sub.s $f10, $f4, $f8 +/* 07552C 7F0409FC E7AA008C */ swc1 $f10, 0x8c($sp) +/* 075530 7F040A00 C4500008 */ lwc1 $f16, 8($v0) +/* 075534 7F040A04 46068101 */ sub.s $f4, $f16, $f6 +/* 075538 7F040A08 E7A40094 */ swc1 $f4, 0x94($sp) +/* 07553C 7F040A0C 0FC0FEAC */ jal sub_GAME_7F03FAB0 +/* 075540 7F040A10 93250003 */ lbu $a1, 3($t9) +/* 075544 7F040A14 C7A2009C */ lwc1 $f2, 0x9c($sp) +/* 075548 7F040A18 1040002D */ beqz $v0, .L7F040AD0 +/* 07554C 7F040A1C C7AC0040 */ lwc1 $f12, 0x40($sp) +/* 075550 7F040A20 8C440010 */ lw $a0, 0x10($v0) +/* 075554 7F040A24 27A80030 */ addiu $t0, $sp, 0x30 +/* 075558 7F040A28 AFA80010 */ sw $t0, 0x10($sp) +/* 07555C 7F040A2C E7AC0040 */ swc1 $f12, 0x40($sp) +/* 075560 7F040A30 E7A2009C */ swc1 $f2, 0x9c($sp) +/* 075564 7F040A34 27A5003C */ addiu $a1, $sp, 0x3c +/* 075568 7F040A38 27A60038 */ addiu $a2, $sp, 0x38 +/* 07556C 7F040A3C 0FC0F308 */ jal sub_GAME_7F03CC20 +/* 075570 7F040A40 27A70034 */ addiu $a3, $sp, 0x34 +/* 075574 7F040A44 C7AC0040 */ lwc1 $f12, 0x40($sp) +/* 075578 7F040A48 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 07557C 7F040A4C C7A2009C */ lwc1 $f2, 0x9c($sp) +/* 075580 7F040A50 C7B00098 */ lwc1 $f16, 0x98($sp) +/* 075584 7F040A54 4608603C */ c.lt.s $f12, $f8 +/* 075588 7F040A58 00000000 */ nop +/* 07558C 7F040A5C 45020015 */ bc1fl .L7F040AB4 +/* 075590 7F040A60 C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 075594 7F040A64 46028181 */ sub.s $f6, $f16, $f2 +/* 075598 7F040A68 C7B2005C */ lwc1 $f18, 0x5c($sp) +/* 07559C 7F040A6C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0755A0 7F040A70 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 0755A4 7F040A74 46069102 */ mul.s $f4, $f18, $f6 +/* 0755A8 7F040A78 44813000 */ mtc1 $at, $f6 +/* 0755AC 7F040A7C 460C2400 */ add.s $f16, $f4, $f12 +/* 0755B0 7F040A80 46068100 */ add.s $f4, $f16, $f6 +/* 0755B4 7F040A84 4604503C */ c.lt.s $f10, $f4 +/* 0755B8 7F040A88 00000000 */ nop +/* 0755BC 7F040A8C 45020009 */ bc1fl .L7F040AB4 +/* 0755C0 7F040A90 C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 0755C4 7F040A94 46029402 */ mul.s $f16, $f18, $f2 +/* 0755C8 7F040A98 46104181 */ sub.s $f6, $f8, $f16 +/* 0755CC 7F040A9C E7A60090 */ swc1 $f6, 0x90($sp) +/* 0755D0 7F040AA0 8E090064 */ lw $t1, 0x64($s0) +/* 0755D4 7F040AA4 352A8000 */ ori $t2, $t1, 0x8000 +/* 0755D8 7F040AA8 10000010 */ b .L7F040AEC +/* 0755DC 7F040AAC AE0A0064 */ sw $t2, 0x64($s0) +/* 0755E0 7F040AB0 C7AA005C */ lwc1 $f10, 0x5c($sp) +.L7F040AB4: +/* 0755E4 7F040AB4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0755E8 7F040AB8 44814000 */ mtc1 $at, $f8 +/* 0755EC 7F040ABC 46025102 */ mul.s $f4, $f10, $f2 +/* 0755F0 7F040AC0 46046481 */ sub.s $f18, $f12, $f4 +/* 0755F4 7F040AC4 46089400 */ add.s $f16, $f18, $f8 +/* 0755F8 7F040AC8 10000008 */ b .L7F040AEC +/* 0755FC 7F040ACC E7B00090 */ swc1 $f16, 0x90($sp) +.L7F040AD0: +/* 075600 7F040AD0 C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 075604 7F040AD4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 075608 7F040AD8 44819000 */ mtc1 $at, $f18 +/* 07560C 7F040ADC 46023282 */ mul.s $f10, $f6, $f2 +/* 075610 7F040AE0 460A6101 */ sub.s $f4, $f12, $f10 +/* 075614 7F040AE4 46122200 */ add.s $f8, $f4, $f18 +/* 075618 7F040AE8 E7A80090 */ swc1 $f8, 0x90($sp) +.L7F040AEC: +/* 07561C 7F040AEC 8E0B000C */ lw $t3, 0xc($s0) +/* 075620 7F040AF0 8FA200AC */ lw $v0, 0xac($sp) +/* 075624 7F040AF4 27A40088 */ addiu $a0, $sp, 0x88 +/* 075628 7F040AF8 316C0001 */ andi $t4, $t3, 1 +/* 07562C 7F040AFC 1580000E */ bnez $t4, .L7F040B38 +/* 075630 7F040B00 8FA7008C */ lw $a3, 0x8c($sp) +/* 075634 7F040B04 C7B00094 */ lwc1 $f16, 0x94($sp) +/* 075638 7F040B08 8C450000 */ lw $a1, ($v0) +/* 07563C 7F040B0C 8C460008 */ lw $a2, 8($v0) +/* 075640 7F040B10 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 075644 7F040B14 E7B00010 */ swc1 $f16, 0x10($sp) +/* 075648 7F040B18 10400007 */ beqz $v0, .L7F040B38 +/* 07564C 7F040B1C 02002025 */ move $a0, $s0 +/* 075650 7F040B20 27A5008C */ addiu $a1, $sp, 0x8c +/* 075654 7F040B24 27A60048 */ addiu $a2, $sp, 0x48 +/* 075658 7F040B28 0FC101D5 */ jal sub_GAME_7F040754 +/* 07565C 7F040B2C 8FA70088 */ lw $a3, 0x88($sp) +/* 075660 7F040B30 10000014 */ b .L7F040B84 +/* 075664 7F040B34 00000000 */ nop +.L7F040B38: +/* 075668 7F040B38 02002025 */ move $a0, $s0 +/* 07566C 7F040B3C 8FA500AC */ lw $a1, 0xac($sp) +/* 075670 7F040B40 27A60048 */ addiu $a2, $sp, 0x48 +/* 075674 7F040B44 0FC101D5 */ jal sub_GAME_7F040754 +/* 075678 7F040B48 8FA700B4 */ lw $a3, 0xb4($sp) +/* 07567C 7F040B4C 8E0D000C */ lw $t5, 0xc($s0) +/* 075680 7F040B50 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 075684 7F040B54 31AE0001 */ andi $t6, $t5, 1 +/* 075688 7F040B58 55C00006 */ bnezl $t6, .L7F040B74 +/* 07568C 7F040B5C E6060058 */ swc1 $f6, 0x58($s0) +/* 075690 7F040B60 8E0F0008 */ lw $t7, 8($s0) +/* 075694 7F040B64 31F81000 */ andi $t8, $t7, 0x1000 +/* 075698 7F040B68 13000006 */ beqz $t8, .L7F040B84 +/* 07569C 7F040B6C 00000000 */ nop +/* 0756A0 7F040B70 E6060058 */ swc1 $f6, 0x58($s0) +.L7F040B74: +/* 0756A4 7F040B74 C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 0756A8 7F040B78 E60A005C */ swc1 $f10, 0x5c($s0) +/* 0756AC 7F040B7C C7A40094 */ lwc1 $f4, 0x94($sp) +/* 0756B0 7F040B80 E6040060 */ swc1 $f4, 0x60($s0) +.L7F040B84: +/* 0756B4 7F040B84 0FC10121 */ jal sub_GAME_7F040484 +/* 0756B8 7F040B88 02002025 */ move $a0, $s0 +/* 0756BC 7F040B8C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0756C0 7F040B90 8FB00020 */ lw $s0, 0x20($sp) +/* 0756C4 7F040B94 27BD00A8 */ addiu $sp, $sp, 0xa8 +/* 0756C8 7F040B98 03E00008 */ jr $ra +/* 0756CC 7F040B9C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F040BA0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052A50 +.word 0x4096cbe4 /*4.712389*/ +glabel D_80052A54 +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F040BA0 +/* 0756D0 7F040BA0 27BDFF38 */ addiu $sp, $sp, -0xc8 +/* 0756D4 7F040BA4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0756D8 7F040BA8 AFB00020 */ sw $s0, 0x20($sp) +/* 0756DC 7F040BAC AFA500CC */ sw $a1, 0xcc($sp) +/* 0756E0 7F040BB0 AFA600D0 */ sw $a2, 0xd0($sp) +/* 0756E4 7F040BB4 AFA700D4 */ sw $a3, 0xd4($sp) +/* 0756E8 7F040BB8 8C8E0014 */ lw $t6, 0x14($a0) +/* 0756EC 7F040BBC 00808025 */ move $s0, $a0 +/* 0756F0 7F040BC0 0FC0FFFE */ jal sub_GAME_7F03FFF8 +/* 0756F4 7F040BC4 8DC40008 */ lw $a0, 8($t6) +/* 0756F8 7F040BC8 0FC0FA1D */ jal sub_GAME_7F03E874 +/* 0756FC 7F040BCC 00402025 */ move $a0, $v0 +/* 075700 7F040BD0 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 075704 7F040BD4 3C018005 */ lui $at, %hi(D_80052A50) +/* 075708 7F040BD8 E7A000BC */ swc1 $f0, 0xbc($sp) +/* 07570C 7F040BDC C42C2A50 */ lwc1 $f12, %lo(D_80052A50)($at) +/* 075710 7F040BE0 27A5006C */ addiu $a1, $sp, 0x6c +/* 075714 7F040BE4 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 075718 7F040BE8 AFAF00AC */ sw $t7, 0xac($sp) +/* 07571C 7F040BEC 3C018005 */ lui $at, %hi(D_80052A54) +/* 075720 7F040BF0 C42C2A54 */ lwc1 $f12, %lo(D_80052A54)($at) +/* 075724 7F040BF4 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 075728 7F040BF8 27A5002C */ addiu $a1, $sp, 0x2c +/* 07572C 7F040BFC 27A4002C */ addiu $a0, $sp, 0x2c +/* 075730 7F040C00 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 075734 7F040C04 27A5006C */ addiu $a1, $sp, 0x6c +/* 075738 7F040C08 8FA400D0 */ lw $a0, 0xd0($sp) +/* 07573C 7F040C0C 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 075740 7F040C10 27A5006C */ addiu $a1, $sp, 0x6c +/* 075744 7F040C14 C7A000BC */ lwc1 $f0, 0xbc($sp) +/* 075748 7F040C18 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 07574C 7F040C1C 8FA200D8 */ lw $v0, 0xd8($sp) +/* 075750 7F040C20 C7B20090 */ lwc1 $f18, 0x90($sp) +/* 075754 7F040C24 46003202 */ mul.s $f8, $f6, $f0 +/* 075758 7F040C28 C4440000 */ lwc1 $f4, ($v0) +/* 07575C 7F040C2C 27A400AC */ addiu $a0, $sp, 0xac +/* 075760 7F040C30 46009182 */ mul.s $f6, $f18, $f0 +/* 075764 7F040C34 46082281 */ sub.s $f10, $f4, $f8 +/* 075768 7F040C38 E7AA00B0 */ swc1 $f10, 0xb0($sp) +/* 07576C 7F040C3C C4500004 */ lwc1 $f16, 4($v0) +/* 075770 7F040C40 C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 075774 7F040C44 8FA700B0 */ lw $a3, 0xb0($sp) +/* 075778 7F040C48 46068101 */ sub.s $f4, $f16, $f6 +/* 07577C 7F040C4C 46005482 */ mul.s $f18, $f10, $f0 +/* 075780 7F040C50 E7A400B4 */ swc1 $f4, 0xb4($sp) +/* 075784 7F040C54 C4480008 */ lwc1 $f8, 8($v0) +/* 075788 7F040C58 8FA200CC */ lw $v0, 0xcc($sp) +/* 07578C 7F040C5C 46124401 */ sub.s $f16, $f8, $f18 +/* 075790 7F040C60 E7B000B8 */ swc1 $f16, 0xb8($sp) +/* 075794 7F040C64 8E18000C */ lw $t8, 0xc($s0) +/* 075798 7F040C68 C7A600B8 */ lwc1 $f6, 0xb8($sp) +/* 07579C 7F040C6C 33190001 */ andi $t9, $t8, 1 +/* 0757A0 7F040C70 5720000E */ bnezl $t9, .L7F040CAC +/* 0757A4 7F040C74 02002025 */ move $a0, $s0 +/* 0757A8 7F040C78 8C450000 */ lw $a1, ($v0) +/* 0757AC 7F040C7C 8C460008 */ lw $a2, 8($v0) +/* 0757B0 7F040C80 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0757B4 7F040C84 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0757B8 7F040C88 10400007 */ beqz $v0, .L7F040CA8 +/* 0757BC 7F040C8C 02002025 */ move $a0, $s0 +/* 0757C0 7F040C90 27A500B0 */ addiu $a1, $sp, 0xb0 +/* 0757C4 7F040C94 27A6006C */ addiu $a2, $sp, 0x6c +/* 0757C8 7F040C98 0FC101D5 */ jal sub_GAME_7F040754 +/* 0757CC 7F040C9C 8FA700AC */ lw $a3, 0xac($sp) +/* 0757D0 7F040CA0 1000000C */ b .L7F040CD4 +/* 0757D4 7F040CA4 00000000 */ nop +.L7F040CA8: +/* 0757D8 7F040CA8 02002025 */ move $a0, $s0 +.L7F040CAC: +/* 0757DC 7F040CAC 8FA500CC */ lw $a1, 0xcc($sp) +/* 0757E0 7F040CB0 27A6006C */ addiu $a2, $sp, 0x6c +/* 0757E4 7F040CB4 0FC101D5 */ jal sub_GAME_7F040754 +/* 0757E8 7F040CB8 8FA700D4 */ lw $a3, 0xd4($sp) +/* 0757EC 7F040CBC C7A400B0 */ lwc1 $f4, 0xb0($sp) +/* 0757F0 7F040CC0 E6040058 */ swc1 $f4, 0x58($s0) +/* 0757F4 7F040CC4 C7AA00B4 */ lwc1 $f10, 0xb4($sp) +/* 0757F8 7F040CC8 E60A005C */ swc1 $f10, 0x5c($s0) +/* 0757FC 7F040CCC C7A800B8 */ lwc1 $f8, 0xb8($sp) +/* 075800 7F040CD0 E6080060 */ swc1 $f8, 0x60($s0) +.L7F040CD4: +/* 075804 7F040CD4 0FC10121 */ jal sub_GAME_7F040484 +/* 075808 7F040CD8 02002025 */ move $a0, $s0 +/* 07580C 7F040CDC 8FBF0024 */ lw $ra, 0x24($sp) +/* 075810 7F040CE0 8FB00020 */ lw $s0, 0x20($sp) +/* 075814 7F040CE4 27BD00C8 */ addiu $sp, $sp, 0xc8 +/* 075818 7F040CE8 03E00008 */ jr $ra +/* 07581C 7F040CEC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F040CF0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F040CF0 +/* 075820 7F040CF0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 075824 7F040CF4 AFBF0014 */ sw $ra, 0x14($sp) +/* 075828 7F040CF8 8C820004 */ lw $v0, 4($a0) +/* 07582C 7F040CFC 8C430064 */ lw $v1, 0x64($v0) +/* 075830 7F040D00 306E0040 */ andi $t6, $v1, 0x40 +/* 075834 7F040D04 11C00015 */ beqz $t6, .L7F040D5C +/* 075838 7F040D08 30780080 */ andi $t8, $v1, 0x80 +/* 07583C 7F040D0C 8C44006C */ lw $a0, 0x6c($v0) +/* 075840 7F040D10 5080000E */ beql $a0, $zero, .L7F040D4C +/* 075844 7F040D14 2401FFBF */ li $at, -65 +/* 075848 7F040D18 8C850044 */ lw $a1, 0x44($a0) +/* 07584C 7F040D1C 10A00006 */ beqz $a1, .L7F040D38 +/* 075850 7F040D20 00000000 */ nop +/* 075854 7F040D24 00A02025 */ move $a0, $a1 +/* 075858 7F040D28 0FC0FEDC */ jal sub_GAME_7F03FB70 +/* 07585C 7F040D2C AFA2001C */ sw $v0, 0x1c($sp) +/* 075860 7F040D30 8FA2001C */ lw $v0, 0x1c($sp) +/* 075864 7F040D34 8C44006C */ lw $a0, 0x6c($v0) +.L7F040D38: +/* 075868 7F040D38 0FC0FFA2 */ jal sub_GAME_7F03FE88 +/* 07586C 7F040D3C AFA2001C */ sw $v0, 0x1c($sp) +/* 075870 7F040D40 8FA2001C */ lw $v0, 0x1c($sp) +/* 075874 7F040D44 8C430064 */ lw $v1, 0x64($v0) +/* 075878 7F040D48 2401FFBF */ li $at, -65 +.L7F040D4C: +/* 07587C 7F040D4C 00617824 */ and $t7, $v1, $at +/* 075880 7F040D50 AC40006C */ sw $zero, 0x6c($v0) +/* 075884 7F040D54 1000000C */ b .L7F040D88 +/* 075888 7F040D58 AC4F0064 */ sw $t7, 0x64($v0) +.L7F040D5C: +/* 07588C 7F040D5C 5300000B */ beql $t8, $zero, .L7F040D8C +/* 075890 7F040D60 8FBF0014 */ lw $ra, 0x14($sp) +/* 075894 7F040D64 8C44006C */ lw $a0, 0x6c($v0) +/* 075898 7F040D68 0FC0FEDC */ jal sub_GAME_7F03FB70 +/* 07589C 7F040D6C AFA2001C */ sw $v0, 0x1c($sp) +/* 0758A0 7F040D70 8FA2001C */ lw $v0, 0x1c($sp) +/* 0758A4 7F040D74 2401FF7F */ li $at, -129 +/* 0758A8 7F040D78 8C590064 */ lw $t9, 0x64($v0) +/* 0758AC 7F040D7C AC40006C */ sw $zero, 0x6c($v0) +/* 0758B0 7F040D80 03214024 */ and $t0, $t9, $at +/* 0758B4 7F040D84 AC480064 */ sw $t0, 0x64($v0) +.L7F040D88: +/* 0758B8 7F040D88 8FBF0014 */ lw $ra, 0x14($sp) +.L7F040D8C: +/* 0758BC 7F040D8C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0758C0 7F040D90 03E00008 */ jr $ra +/* 0758C4 7F040D94 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F040D98(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F040D98 +/* 0758C8 7F040D98 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0758CC 7F040D9C AFBF0024 */ sw $ra, 0x24($sp) +/* 0758D0 7F040DA0 AFB20020 */ sw $s2, 0x20($sp) +/* 0758D4 7F040DA4 AFB1001C */ sw $s1, 0x1c($sp) +/* 0758D8 7F040DA8 AFB00018 */ sw $s0, 0x18($sp) +/* 0758DC 7F040DAC AFA5002C */ sw $a1, 0x2c($sp) +/* 0758E0 7F040DB0 90820003 */ lbu $v0, 3($a0) +/* 0758E4 7F040DB4 2401000D */ li $at, 13 +/* 0758E8 7F040DB8 00C08025 */ move $s0, $a2 +/* 0758EC 7F040DBC 14410015 */ bne $v0, $at, .L7F040E14 +/* 0758F0 7F040DC0 00809025 */ move $s2, $a0 +/* 0758F4 7F040DC4 8C8400C4 */ lw $a0, 0xc4($a0) +/* 0758F8 7F040DC8 50800008 */ beql $a0, $zero, .L7F040DEC +/* 0758FC 7F040DCC 8E4400C8 */ lw $a0, 0xc8($s2) +/* 075900 7F040DD0 0C00237C */ jal sfxGetArg0Unk3F +/* 075904 7F040DD4 00000000 */ nop +/* 075908 7F040DD8 50400004 */ beql $v0, $zero, .L7F040DEC +/* 07590C 7F040DDC 8E4400C8 */ lw $a0, 0xc8($s2) +/* 075910 7F040DE0 0C002408 */ jal sfxDeactivate +/* 075914 7F040DE4 8E4400C4 */ lw $a0, 0xc4($s2) +/* 075918 7F040DE8 8E4400C8 */ lw $a0, 0xc8($s2) +.L7F040DEC: +/* 07591C 7F040DEC 5080004E */ beql $a0, $zero, .L7F040F28 +/* 075920 7F040DF0 8E510010 */ lw $s1, 0x10($s2) +/* 075924 7F040DF4 0C00237C */ jal sfxGetArg0Unk3F +/* 075928 7F040DF8 00000000 */ nop +/* 07592C 7F040DFC 5040004A */ beql $v0, $zero, .L7F040F28 +/* 075930 7F040E00 8E510010 */ lw $s1, 0x10($s2) +/* 075934 7F040E04 0C002408 */ jal sfxDeactivate +/* 075938 7F040E08 8E4400C8 */ lw $a0, 0xc8($s2) +/* 07593C 7F040E0C 10000046 */ b .L7F040F28 +/* 075940 7F040E10 8E510010 */ lw $s1, 0x10($s2) +.L7F040E14: +/* 075944 7F040E14 24010008 */ li $at, 8 +/* 075948 7F040E18 54410008 */ bnel $v0, $at, .L7F040E3C +/* 07594C 7F040E1C 24010001 */ li $at, 1 +/* 075950 7F040E20 8E420084 */ lw $v0, 0x84($s2) +/* 075954 7F040E24 50400040 */ beql $v0, $zero, .L7F040F28 +/* 075958 7F040E28 8E510010 */ lw $s1, 0x10($s2) +/* 07595C 7F040E2C AC400084 */ sw $zero, 0x84($v0) +/* 075960 7F040E30 1000003C */ b .L7F040F24 +/* 075964 7F040E34 AE400084 */ sw $zero, 0x84($s2) +/* 075968 7F040E38 24010001 */ li $at, 1 +.L7F040E3C: +/* 07596C 7F040E3C 54410016 */ bnel $v0, $at, .L7F040E98 +/* 075970 7F040E40 2401002F */ li $at, 47 +/* 075974 7F040E44 8E4400F4 */ lw $a0, 0xf4($s2) +/* 075978 7F040E48 50800008 */ beql $a0, $zero, .L7F040E6C +/* 07597C 7F040E4C 8E4400F8 */ lw $a0, 0xf8($s2) +/* 075980 7F040E50 0C00237C */ jal sfxGetArg0Unk3F +/* 075984 7F040E54 00000000 */ nop +/* 075988 7F040E58 50400004 */ beql $v0, $zero, .L7F040E6C +/* 07598C 7F040E5C 8E4400F8 */ lw $a0, 0xf8($s2) +/* 075990 7F040E60 0C002408 */ jal sfxDeactivate +/* 075994 7F040E64 8E4400F4 */ lw $a0, 0xf4($s2) +/* 075998 7F040E68 8E4400F8 */ lw $a0, 0xf8($s2) +.L7F040E6C: +/* 07599C 7F040E6C 5080002E */ beql $a0, $zero, .L7F040F28 +/* 0759A0 7F040E70 8E510010 */ lw $s1, 0x10($s2) +/* 0759A4 7F040E74 0C00237C */ jal sfxGetArg0Unk3F +/* 0759A8 7F040E78 00000000 */ nop +/* 0759AC 7F040E7C 5040002A */ beql $v0, $zero, .L7F040F28 +/* 0759B0 7F040E80 8E510010 */ lw $s1, 0x10($s2) +/* 0759B4 7F040E84 0C002408 */ jal sfxDeactivate +/* 0759B8 7F040E88 8E4400F8 */ lw $a0, 0xf8($s2) +/* 0759BC 7F040E8C 10000026 */ b .L7F040F28 +/* 0759C0 7F040E90 8E510010 */ lw $s1, 0x10($s2) +/* 0759C4 7F040E94 2401002F */ li $at, 47 +.L7F040E98: +/* 0759C8 7F040E98 54410009 */ bnel $v0, $at, .L7F040EC0 +/* 0759CC 7F040E9C 24010028 */ li $at, 40 +/* 0759D0 7F040EA0 8E44008C */ lw $a0, 0x8c($s2) +/* 0759D4 7F040EA4 04820020 */ bltzl $a0, .L7F040F28 +/* 0759D8 7F040EA8 8E510010 */ lw $s1, 0x10($s2) +/* 0759DC 7F040EAC 0FC2E76F */ jal sub_GAME_7F0B9DBC +/* 0759E0 7F040EB0 24050001 */ li $a1, 1 +/* 0759E4 7F040EB4 1000001C */ b .L7F040F28 +/* 0759E8 7F040EB8 8E510010 */ lw $s1, 0x10($s2) +/* 0759EC 7F040EBC 24010028 */ li $at, 40 +.L7F040EC0: +/* 0759F0 7F040EC0 5441000D */ bnel $v0, $at, .L7F040EF8 +/* 0759F4 7F040EC4 24010027 */ li $at, 39 +/* 0759F8 7F040EC8 8E4400B0 */ lw $a0, 0xb0($s2) +/* 0759FC 7F040ECC 50800016 */ beql $a0, $zero, .L7F040F28 +/* 075A00 7F040ED0 8E510010 */ lw $s1, 0x10($s2) +/* 075A04 7F040ED4 0C00237C */ jal sfxGetArg0Unk3F +/* 075A08 7F040ED8 00000000 */ nop +/* 075A0C 7F040EDC 50400012 */ beql $v0, $zero, .L7F040F28 +/* 075A10 7F040EE0 8E510010 */ lw $s1, 0x10($s2) +/* 075A14 7F040EE4 0C002408 */ jal sfxDeactivate +/* 075A18 7F040EE8 8E4400B0 */ lw $a0, 0xb0($s2) +/* 075A1C 7F040EEC 1000000E */ b .L7F040F28 +/* 075A20 7F040EF0 8E510010 */ lw $s1, 0x10($s2) +/* 075A24 7F040EF4 24010027 */ li $at, 39 +.L7F040EF8: +/* 075A28 7F040EF8 5441000B */ bnel $v0, $at, .L7F040F28 +/* 075A2C 7F040EFC 8E510010 */ lw $s1, 0x10($s2) +/* 075A30 7F040F00 8E4400AC */ lw $a0, 0xac($s2) +/* 075A34 7F040F04 50800008 */ beql $a0, $zero, .L7F040F28 +/* 075A38 7F040F08 8E510010 */ lw $s1, 0x10($s2) +/* 075A3C 7F040F0C 0C00237C */ jal sfxGetArg0Unk3F +/* 075A40 7F040F10 00000000 */ nop +/* 075A44 7F040F14 50400004 */ beql $v0, $zero, .L7F040F28 +/* 075A48 7F040F18 8E510010 */ lw $s1, 0x10($s2) +/* 075A4C 7F040F1C 0C002408 */ jal sfxDeactivate +/* 075A50 7F040F20 8E4400AC */ lw $a0, 0xac($s2) +.L7F040F24: +/* 075A54 7F040F24 8E510010 */ lw $s1, 0x10($s2) +.L7F040F28: +/* 075A58 7F040F28 12200038 */ beqz $s1, .L7F04100C +/* 075A5C 7F040F2C 02202025 */ move $a0, $s1 +/* 075A60 7F040F30 0FC28333 */ jal sub_GAME_7F0A0CCC +/* 075A64 7F040F34 00002825 */ move $a1, $zero +/* 075A68 7F040F38 8E440010 */ lw $a0, 0x10($s2) +/* 075A6C 7F040F3C 0FC28333 */ jal sub_GAME_7F0A0CCC +/* 075A70 7F040F40 24050001 */ li $a1, 1 +/* 075A74 7F040F44 56000032 */ bnezl $s0, .L7F041010 +/* 075A78 7F040F48 8FBF0024 */ lw $ra, 0x24($sp) +/* 075A7C 7F040F4C 0FC1033C */ jal sub_GAME_7F040CF0 +/* 075A80 7F040F50 8E440010 */ lw $a0, 0x10($s2) +/* 075A84 7F040F54 8E510010 */ lw $s1, 0x10($s2) +/* 075A88 7F040F58 8E2E001C */ lw $t6, 0x1c($s1) +/* 075A8C 7F040F5C 11C00004 */ beqz $t6, .L7F040F70 +/* 075A90 7F040F60 00000000 */ nop +/* 075A94 7F040F64 0FC13011 */ jal sub_GAME_7F04C044 +/* 075A98 7F040F68 02202025 */ move $a0, $s1 +/* 075A9C 7F040F6C 8E510010 */ lw $s1, 0x10($s2) +.L7F040F70: +/* 075AA0 7F040F70 0FC0F863 */ jal sub_GAME_7F03E18C +/* 075AA4 7F040F74 02202025 */ move $a0, $s1 +/* 075AA8 7F040F78 8E510010 */ lw $s1, 0x10($s2) +/* 075AAC 7F040F7C 8E300020 */ lw $s0, 0x20($s1) +/* 075AB0 7F040F80 52000009 */ beql $s0, $zero, .L7F040FA8 +/* 075AB4 7F040F84 922F0000 */ lbu $t7, ($s1) +.L7F040F88: +/* 075AB8 7F040F88 8E110024 */ lw $s1, 0x24($s0) +/* 075ABC 7F040F8C 8E040004 */ lw $a0, 4($s0) +/* 075AC0 7F040F90 0FC10409 */ jal sub_GAME_7F041024 +/* 075AC4 7F040F94 24050001 */ li $a1, 1 +/* 075AC8 7F040F98 1620FFFB */ bnez $s1, .L7F040F88 +/* 075ACC 7F040F9C 02208025 */ move $s0, $s1 +/* 075AD0 7F040FA0 8E510010 */ lw $s1, 0x10($s2) +/* 075AD4 7F040FA4 922F0000 */ lbu $t7, ($s1) +.L7F040FA8: +/* 075AD8 7F040FA8 24010002 */ li $at, 2 +/* 075ADC 7F040FAC 51E10004 */ beql $t7, $at, .L7F040FC0 +/* 075AE0 7F040FB0 92580003 */ lbu $t8, 3($s2) +/* 075AE4 7F040FB4 0FC1437A */ jal sub_GAME_7F050DE8 +/* 075AE8 7F040FB8 8E440014 */ lw $a0, 0x14($s2) +/* 075AEC 7F040FBC 92580003 */ lbu $t8, 3($s2) +.L7F040FC0: +/* 075AF0 7F040FC0 24010028 */ li $at, 40 +/* 075AF4 7F040FC4 17010005 */ bne $t8, $at, .L7F040FDC +/* 075AF8 7F040FC8 00000000 */ nop +/* 075AFC 7F040FCC 0FC1B0FE */ jal set_aircraft_obj_inst_scale_to_zero +/* 075B00 7F040FD0 8E440014 */ lw $a0, 0x14($s2) +/* 075B04 7F040FD4 10000004 */ b .L7F040FE8 +/* 075B08 7F040FD8 8FB9002C */ lw $t9, 0x2c($sp) +.L7F040FDC: +/* 075B0C 7F040FDC 0FC1B08D */ jal set_obj_instance_scale_to_zero +/* 075B10 7F040FE0 8E440014 */ lw $a0, 0x14($s2) +/* 075B14 7F040FE4 8FB9002C */ lw $t9, 0x2c($sp) +.L7F040FE8: +/* 075B18 7F040FE8 53200008 */ beql $t9, $zero, .L7F04100C +/* 075B1C 7F040FEC AE400010 */ sw $zero, 0x10($s2) +/* 075B20 7F040FF0 0FC0E94E */ jal sub_GAME_7F03A538 +/* 075B24 7F040FF4 8E440010 */ lw $a0, 0x10($s2) +/* 075B28 7F040FF8 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 075B2C 7F040FFC 8E440010 */ lw $a0, 0x10($s2) +/* 075B30 7F041000 0FC0E921 */ jal set_last_obj_pos_data +/* 075B34 7F041004 8E440010 */ lw $a0, 0x10($s2) +/* 075B38 7F041008 AE400010 */ sw $zero, 0x10($s2) +.L7F04100C: +/* 075B3C 7F04100C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F041010: +/* 075B40 7F041010 8FB00018 */ lw $s0, 0x18($sp) +/* 075B44 7F041014 8FB1001C */ lw $s1, 0x1c($sp) +/* 075B48 7F041018 8FB20020 */ lw $s2, 0x20($sp) +/* 075B4C 7F04101C 03E00008 */ jr $ra +/* 075B50 7F041020 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F041024(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F041024 +/* 075B54 7F041024 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 075B58 7F041028 AFBF0014 */ sw $ra, 0x14($sp) +/* 075B5C 7F04102C 0FC10366 */ jal sub_GAME_7F040D98 +/* 075B60 7F041030 00003025 */ move $a2, $zero +/* 075B64 7F041034 8FBF0014 */ lw $ra, 0x14($sp) +/* 075B68 7F041038 27BD0018 */ addiu $sp, $sp, 0x18 +/* 075B6C 7F04103C 03E00008 */ jr $ra +/* 075B70 7F041040 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void if_a0_plus_3_is_4_then_10_else_20(void) { + +} +#else +GLOBAL_ASM( +.text +glabel if_a0_plus_3_is_4_then_10_else_20 +/* 075B74 7F041044 908E0003 */ lbu $t6, 3($a0) +/* 075B78 7F041048 24010004 */ li $at, 4 +/* 075B7C 7F04104C 15C10004 */ bne $t6, $at, .L7F041060 +/* 075B80 7F041050 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 075B84 7F041054 44810000 */ mtc1 $at, $f0 +/* 075B88 7F041058 03E00008 */ jr $ra +/* 075B8C 7F04105C 00000000 */ nop + +.L7F041060: +/* 075B90 7F041060 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 075B94 7F041064 44810000 */ mtc1 $at, $f0 +/* 075B98 7F041068 00000000 */ nop +/* 075B9C 7F04106C 03E00008 */ jr $ra +/* 075BA0 7F041070 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F041074(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F041074 +/* 075BA4 7F041074 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 075BA8 7F041078 AFA70024 */ sw $a3, 0x24($sp) +/* 075BAC 7F04107C C48A0000 */ lwc1 $f10, ($a0) +/* 075BB0 7F041080 C4C80000 */ lwc1 $f8, ($a2) +/* 075BB4 7F041084 00001025 */ move $v0, $zero +/* 075BB8 7F041088 460A4181 */ sub.s $f6, $f8, $f10 +/* 075BBC 7F04108C E7A6000C */ swc1 $f6, 0xc($sp) +/* 075BC0 7F041090 C4880004 */ lwc1 $f8, 4($a0) +/* 075BC4 7F041094 C4C40004 */ lwc1 $f4, 4($a2) +/* 075BC8 7F041098 46082281 */ sub.s $f10, $f4, $f8 +/* 075BCC 7F04109C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 075BD0 7F0410A0 C4840008 */ lwc1 $f4, 8($a0) +/* 075BD4 7F0410A4 C4C60008 */ lwc1 $f6, 8($a2) +/* 075BD8 7F0410A8 C7AA000C */ lwc1 $f10, 0xc($sp) +/* 075BDC 7F0410AC 46043201 */ sub.s $f8, $f6, $f4 +/* 075BE0 7F0410B0 C7A40010 */ lwc1 $f4, 0x10($sp) +/* 075BE4 7F0410B4 E7A80014 */ swc1 $f8, 0x14($sp) +/* 075BE8 7F0410B8 C4AC0000 */ lwc1 $f12, ($a1) +/* 075BEC 7F0410BC C4AE0004 */ lwc1 $f14, 4($a1) +/* 075BF0 7F0410C0 C4A20008 */ lwc1 $f2, 8($a1) +/* 075BF4 7F0410C4 460A6182 */ mul.s $f6, $f12, $f10 +/* 075BF8 7F0410C8 E7AA0000 */ swc1 $f10, ($sp) +/* 075BFC 7F0410CC 46047202 */ mul.s $f8, $f14, $f4 +/* 075C00 7F0410D0 46083180 */ add.s $f6, $f6, $f8 +/* 075C04 7F0410D4 C7A80014 */ lwc1 $f8, 0x14($sp) +/* 075C08 7F0410D8 46024282 */ mul.s $f10, $f8, $f2 +/* 075C0C 7F0410DC 46065000 */ add.s $f0, $f10, $f6 +/* 075C10 7F0410E0 44805000 */ mtc1 $zero, $f10 +/* 075C14 7F0410E4 00000000 */ nop +/* 075C18 7F0410E8 4600503C */ c.lt.s $f10, $f0 +/* 075C1C 7F0410EC 00000000 */ nop +/* 075C20 7F0410F0 45000019 */ bc1f .L7F041158 +/* 075C24 7F0410F4 00000000 */ nop +/* 075C28 7F0410F8 460C6182 */ mul.s $f6, $f12, $f12 +/* 075C2C 7F0410FC 00000000 */ nop +/* 075C30 7F041100 460E7282 */ mul.s $f10, $f14, $f14 +/* 075C34 7F041104 460A3180 */ add.s $f6, $f6, $f10 +/* 075C38 7F041108 46021282 */ mul.s $f10, $f2, $f2 +/* 075C3C 7F04110C 46065400 */ add.s $f16, $f10, $f6 +/* 075C40 7F041110 C7AA0000 */ lwc1 $f10, ($sp) +/* 075C44 7F041114 460A5182 */ mul.s $f6, $f10, $f10 +/* 075C48 7F041118 00000000 */ nop +/* 075C4C 7F04111C 46042282 */ mul.s $f10, $f4, $f4 +/* 075C50 7F041120 460A3100 */ add.s $f4, $f6, $f10 +/* 075C54 7F041124 46084182 */ mul.s $f6, $f8, $f8 +/* 075C58 7F041128 C7A80024 */ lwc1 $f8, 0x24($sp) +/* 075C5C 7F04112C 46000282 */ mul.s $f10, $f0, $f0 +/* 075C60 7F041130 46043480 */ add.s $f18, $f6, $f4 +/* 075C64 7F041134 46084182 */ mul.s $f6, $f8, $f8 +/* 075C68 7F041138 46069101 */ sub.s $f4, $f18, $f6 +/* 075C6C 7F04113C 46102202 */ mul.s $f8, $f4, $f16 +/* 075C70 7F041140 460A403E */ c.le.s $f8, $f10 +/* 075C74 7F041144 00000000 */ nop +/* 075C78 7F041148 45000003 */ bc1f .L7F041158 +/* 075C7C 7F04114C 00000000 */ nop +/* 075C80 7F041150 10000001 */ b .L7F041158 +/* 075C84 7F041154 24020001 */ li $v0, 1 +.L7F041158: +/* 075C88 7F041158 03E00008 */ jr $ra +/* 075C8C 7F04115C 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F041160(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F041160 +/* 075C90 7F041160 27BDFF58 */ addiu $sp, $sp, -0xa8 +/* 075C94 7F041164 AFBF0044 */ sw $ra, 0x44($sp) +/* 075C98 7F041168 AFB70040 */ sw $s7, 0x40($sp) +/* 075C9C 7F04116C AFB6003C */ sw $s6, 0x3c($sp) +/* 075CA0 7F041170 AFB50038 */ sw $s5, 0x38($sp) +/* 075CA4 7F041174 AFB40034 */ sw $s4, 0x34($sp) +/* 075CA8 7F041178 AFB30030 */ sw $s3, 0x30($sp) +/* 075CAC 7F04117C AFB2002C */ sw $s2, 0x2c($sp) +/* 075CB0 7F041180 AFB10028 */ sw $s1, 0x28($sp) +/* 075CB4 7F041184 AFB00024 */ sw $s0, 0x24($sp) +/* 075CB8 7F041188 AFA700B4 */ sw $a3, 0xb4($sp) +/* 075CBC 7F04118C 8C970014 */ lw $s7, 0x14($a0) +/* 075CC0 7F041190 AFA0009C */ sw $zero, 0x9c($sp) +/* 075CC4 7F041194 AFA00064 */ sw $zero, 0x64($sp) +/* 075CC8 7F041198 908E0003 */ lbu $t6, 3($a0) +/* 075CCC 7F04119C 24010001 */ li $at, 1 +/* 075CD0 7F0411A0 00A08825 */ move $s1, $a1 +/* 075CD4 7F0411A4 15C1001A */ bne $t6, $at, .L7F041210 +/* 075CD8 7F0411A8 00C09825 */ move $s3, $a2 +/* 075CDC 7F0411AC 248400D0 */ addiu $a0, $a0, 0xd0 +/* 075CE0 7F0411B0 8EE5000C */ lw $a1, 0xc($s7) +/* 075CE4 7F0411B4 02203025 */ move $a2, $s1 +/* 075CE8 7F0411B8 0FC1D1F4 */ jal sub_GAME_7F0747D0 +/* 075CEC 7F0411BC 02603825 */ move $a3, $s3 +/* 075CF0 7F0411C0 8EEF0008 */ lw $t7, 8($s7) +/* 075CF4 7F0411C4 00408025 */ move $s0, $v0 +/* 075CF8 7F0411C8 27B4006C */ addiu $s4, $sp, 0x6c +/* 075CFC 7F0411CC 8DF80000 */ lw $t8, ($t7) +/* 075D00 7F0411D0 27B50068 */ addiu $s5, $sp, 0x68 +/* 075D04 7F0411D4 18400025 */ blez $v0, .L7F04126C +/* 075D08 7F0411D8 AFB8009C */ sw $t8, 0x9c($sp) +/* 075D0C 7F0411DC 27B60064 */ addiu $s6, $sp, 0x64 +/* 075D10 7F0411E0 AFB60018 */ sw $s6, 0x18($sp) +/* 075D14 7F0411E4 02E02025 */ move $a0, $s7 +/* 075D18 7F0411E8 03002825 */ move $a1, $t8 +/* 075D1C 7F0411EC 02203025 */ move $a2, $s1 +/* 075D20 7F0411F0 02603825 */ move $a3, $s3 +/* 075D24 7F0411F4 AFB40010 */ sw $s4, 0x10($sp) +/* 075D28 7F0411F8 0FC1366C */ jal sub_GAME_7F04D9B0 +/* 075D2C 7F0411FC AFB50014 */ sw $s5, 0x14($sp) +/* 075D30 7F041200 1440001A */ bnez $v0, .L7F04126C +/* 075D34 7F041204 00000000 */ nop +/* 075D38 7F041208 10000018 */ b .L7F04126C +/* 075D3C 7F04120C 00008025 */ move $s0, $zero +.L7F041210: +/* 075D40 7F041210 27B60064 */ addiu $s6, $sp, 0x64 +/* 075D44 7F041214 27B50068 */ addiu $s5, $sp, 0x68 +/* 075D48 7F041218 27B4006C */ addiu $s4, $sp, 0x6c +/* 075D4C 7F04121C 27B2009C */ addiu $s2, $sp, 0x9c +/* 075D50 7F041220 02E02025 */ move $a0, $s7 +.L7F041224: +/* 075D54 7F041224 02202825 */ move $a1, $s1 +/* 075D58 7F041228 02603025 */ move $a2, $s3 +/* 075D5C 7F04122C 0FC1D4BF */ jal sub_GAME_7F0752FC +/* 075D60 7F041230 02403825 */ move $a3, $s2 +/* 075D64 7F041234 1840000B */ blez $v0, .L7F041264 +/* 075D68 7F041238 00408025 */ move $s0, $v0 +/* 075D6C 7F04123C 02E02025 */ move $a0, $s7 +/* 075D70 7F041240 8FA5009C */ lw $a1, 0x9c($sp) +/* 075D74 7F041244 02203025 */ move $a2, $s1 +/* 075D78 7F041248 02603825 */ move $a3, $s3 +/* 075D7C 7F04124C AFB40010 */ sw $s4, 0x10($sp) +/* 075D80 7F041250 AFB50014 */ sw $s5, 0x14($sp) +/* 075D84 7F041254 0FC1366C */ jal sub_GAME_7F04D9B0 +/* 075D88 7F041258 AFB60018 */ sw $s6, 0x18($sp) +/* 075D8C 7F04125C 14400003 */ bnez $v0, .L7F04126C +/* 075D90 7F041260 00000000 */ nop +.L7F041264: +/* 075D94 7F041264 5E00FFEF */ bgtzl $s0, .L7F041224 +/* 075D98 7F041268 02E02025 */ move $a0, $s7 +.L7F04126C: +/* 075D9C 7F04126C 1A000059 */ blez $s0, .L7F0413D4 +/* 075DA0 7F041270 00001025 */ move $v0, $zero +/* 075DA4 7F041274 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 075DA8 7F041278 8FA500B4 */ lw $a1, 0xb4($sp) +/* 075DAC 7F04127C 8EF9000C */ lw $t9, 0xc($s7) +/* 075DB0 7F041280 8FA80068 */ lw $t0, 0x68($sp) +/* 075DB4 7F041284 E4A40000 */ swc1 $f4, ($a1) +/* 075DB8 7F041288 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 075DBC 7F04128C 00084980 */ sll $t1, $t0, 6 +/* 075DC0 7F041290 03298821 */ addu $s1, $t9, $t1 +/* 075DC4 7F041294 E4A60004 */ swc1 $f6, 4($a1) +/* 075DC8 7F041298 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 075DCC 7F04129C 02202025 */ move $a0, $s1 +/* 075DD0 7F0412A0 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 075DD4 7F0412A4 E4A80008 */ swc1 $f8, 8($a1) +/* 075DD8 7F0412A8 0FC1E111 */ jal sub_GAME_7F078444 +/* 075DDC 7F0412AC 00000000 */ nop +/* 075DE0 7F0412B0 00402025 */ move $a0, $v0 +/* 075DE4 7F0412B4 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 075DE8 7F0412B8 8FA500B4 */ lw $a1, 0xb4($sp) +/* 075DEC 7F0412BC 8FB000B8 */ lw $s0, 0xb8($sp) +/* 075DF0 7F0412C0 C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 075DF4 7F0412C4 02202025 */ move $a0, $s1 +/* 075DF8 7F0412C8 02002825 */ move $a1, $s0 +/* 075DFC 7F0412CC E60A0000 */ swc1 $f10, ($s0) +/* 075E00 7F0412D0 C7B0007C */ lwc1 $f16, 0x7c($sp) +/* 075E04 7F0412D4 E6100004 */ swc1 $f16, 4($s0) +/* 075E08 7F0412D8 C7B20080 */ lwc1 $f18, 0x80($sp) +/* 075E0C 7F0412DC 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 075E10 7F0412E0 E6120008 */ swc1 $f18, 8($s0) +/* 075E14 7F0412E4 C6020000 */ lwc1 $f2, ($s0) +/* 075E18 7F0412E8 C6640000 */ lwc1 $f4, ($s3) +/* 075E1C 7F0412EC C60C0004 */ lwc1 $f12, 4($s0) +/* 075E20 7F0412F0 C6680004 */ lwc1 $f8, 4($s3) +/* 075E24 7F0412F4 46041182 */ mul.s $f6, $f2, $f4 +/* 075E28 7F0412F8 C6000008 */ lwc1 $f0, 8($s0) +/* 075E2C 7F0412FC C6720008 */ lwc1 $f18, 8($s3) +/* 075E30 7F041300 46086282 */ mul.s $f10, $f12, $f8 +/* 075E34 7F041304 44807000 */ mtc1 $zero, $f14 +/* 075E38 7F041308 46009102 */ mul.s $f4, $f18, $f0 +/* 075E3C 7F04130C 460A3400 */ add.s $f16, $f6, $f10 +/* 075E40 7F041310 46102200 */ add.s $f8, $f4, $f16 +/* 075E44 7F041314 4608703C */ c.lt.s $f14, $f8 +/* 075E48 7F041318 00000000 */ nop +/* 075E4C 7F04131C 45000007 */ bc1f .L7F04133C +/* 075E50 7F041320 00000000 */ nop +/* 075E54 7F041324 46001187 */ neg.s $f6, $f2 +/* 075E58 7F041328 46006287 */ neg.s $f10, $f12 +/* 075E5C 7F04132C 46000487 */ neg.s $f18, $f0 +/* 075E60 7F041330 E6060000 */ swc1 $f6, ($s0) +/* 075E64 7F041334 E60A0004 */ swc1 $f10, 4($s0) +/* 075E68 7F041338 E6120008 */ swc1 $f18, 8($s0) +.L7F04133C: +/* 075E6C 7F04133C 0FC1E111 */ jal sub_GAME_7F078444 +/* 075E70 7F041340 00000000 */ nop +/* 075E74 7F041344 00402025 */ move $a0, $v0 +/* 075E78 7F041348 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 075E7C 7F04134C 02002825 */ move $a1, $s0 +/* 075E80 7F041350 44807000 */ mtc1 $zero, $f14 +/* 075E84 7F041354 C6040000 */ lwc1 $f4, ($s0) +/* 075E88 7F041358 02002025 */ move $a0, $s0 +/* 075E8C 7F04135C 26050004 */ addiu $a1, $s0, 4 +/* 075E90 7F041360 46047032 */ c.eq.s $f14, $f4 +/* 075E94 7F041364 00000000 */ nop +/* 075E98 7F041368 4500000C */ bc1f .L7F04139C +/* 075E9C 7F04136C 00000000 */ nop +/* 075EA0 7F041370 C6100004 */ lwc1 $f16, 4($s0) +/* 075EA4 7F041374 46107032 */ c.eq.s $f14, $f16 +/* 075EA8 7F041378 00000000 */ nop +/* 075EAC 7F04137C 45000007 */ bc1f .L7F04139C +/* 075EB0 7F041380 00000000 */ nop +/* 075EB4 7F041384 C6080008 */ lwc1 $f8, 8($s0) +/* 075EB8 7F041388 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 075EBC 7F04138C 46087032 */ c.eq.s $f14, $f8 +/* 075EC0 7F041390 00000000 */ nop +/* 075EC4 7F041394 45030006 */ bc1tl .L7F0413B0 +/* 075EC8 7F041398 44813000 */ mtc1 $at, $f6 +.L7F04139C: +/* 075ECC 7F04139C 0C007DD4 */ jal guNormalize +/* 075ED0 7F0413A0 26060008 */ addiu $a2, $s0, 8 +/* 075ED4 7F0413A4 10000005 */ b .L7F0413BC +/* 075ED8 7F0413A8 8FAB00BC */ lw $t3, 0xbc($sp) +/* 075EDC 7F0413AC 44813000 */ mtc1 $at, $f6 +.L7F0413B0: +/* 075EE0 7F0413B0 00000000 */ nop +/* 075EE4 7F0413B4 E6060008 */ swc1 $f6, 8($s0) +/* 075EE8 7F0413B8 8FAB00BC */ lw $t3, 0xbc($sp) +.L7F0413BC: +/* 075EEC 7F0413BC 24020001 */ li $v0, 1 +/* 075EF0 7F0413C0 AD770000 */ sw $s7, ($t3) +/* 075EF4 7F0413C4 8FAD00C0 */ lw $t5, 0xc0($sp) +/* 075EF8 7F0413C8 8FAC0064 */ lw $t4, 0x64($sp) +/* 075EFC 7F0413CC 10000001 */ b .L7F0413D4 +/* 075F00 7F0413D0 ADAC0000 */ sw $t4, ($t5) +.L7F0413D4: +/* 075F04 7F0413D4 8FBF0044 */ lw $ra, 0x44($sp) +/* 075F08 7F0413D8 8FB00024 */ lw $s0, 0x24($sp) +/* 075F0C 7F0413DC 8FB10028 */ lw $s1, 0x28($sp) +/* 075F10 7F0413E0 8FB2002C */ lw $s2, 0x2c($sp) +/* 075F14 7F0413E4 8FB30030 */ lw $s3, 0x30($sp) +/* 075F18 7F0413E8 8FB40034 */ lw $s4, 0x34($sp) +/* 075F1C 7F0413EC 8FB50038 */ lw $s5, 0x38($sp) +/* 075F20 7F0413F0 8FB6003C */ lw $s6, 0x3c($sp) +/* 075F24 7F0413F4 8FB70040 */ lw $s7, 0x40($sp) +/* 075F28 7F0413F8 03E00008 */ jr $ra +/* 075F2C 7F0413FC 27BD00A8 */ addiu $sp, $sp, 0xa8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F041400(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F041400 +/* 075F30 7F041400 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 075F34 7F041404 AFB50044 */ sw $s5, 0x44($sp) +/* 075F38 7F041408 AFB40040 */ sw $s4, 0x40($sp) +/* 075F3C 7F04140C F7B40028 */ sdc1 $f20, 0x28($sp) +/* 075F40 7F041410 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 075F44 7F041414 00C0A025 */ move $s4, $a2 +/* 075F48 7F041418 00A0A825 */ move $s5, $a1 +/* 075F4C 7F04141C AFBF0054 */ sw $ra, 0x54($sp) +/* 075F50 7F041420 AFA700E4 */ sw $a3, 0xe4($sp) +/* 075F54 7F041424 4481A000 */ mtc1 $at, $f20 +/* 075F58 7F041428 240EFFFF */ li $t6, -1 +/* 075F5C 7F04142C 27AF00C8 */ addiu $t7, $sp, 0xc8 +/* 075F60 7F041430 AFBE0050 */ sw $fp, 0x50($sp) +/* 075F64 7F041434 AFB7004C */ sw $s7, 0x4c($sp) +/* 075F68 7F041438 AFB60048 */ sw $s6, 0x48($sp) +/* 075F6C 7F04143C AFB3003C */ sw $s3, 0x3c($sp) +/* 075F70 7F041440 AFB20038 */ sw $s2, 0x38($sp) +/* 075F74 7F041444 AFB10034 */ sw $s1, 0x34($sp) +/* 075F78 7F041448 AFB00030 */ sw $s0, 0x30($sp) +/* 075F7C 7F04144C AFA400D8 */ sw $a0, 0xd8($sp) +/* 075F80 7F041450 AFAE0094 */ sw $t6, 0x94($sp) +/* 075F84 7F041454 AFAF0010 */ sw $t7, 0x10($sp) +/* 075F88 7F041458 27A700CC */ addiu $a3, $sp, 0xcc +/* 075F8C 7F04145C 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 075F90 7F041460 0FC0F308 */ jal sub_GAME_7F03CC20 +/* 075F94 7F041464 27A600D0 */ addiu $a2, $sp, 0xd0 +/* 075F98 7F041468 8FB800D0 */ lw $t8, 0xd0($sp) +/* 075F9C 7F04146C C7A400CC */ lwc1 $f4, 0xcc($sp) +/* 075FA0 7F041470 5B0000CD */ blezl $t8, .L7F0417A8 +/* 075FA4 7F041474 00001025 */ move $v0, $zero +/* 075FA8 7F041478 C6A00004 */ lwc1 $f0, 4($s5) +/* 075FAC 7F04147C C7A800C8 */ lwc1 $f8, 0xc8($sp) +/* 075FB0 7F041480 4600203C */ c.lt.s $f4, $f0 +/* 075FB4 7F041484 00000000 */ nop +/* 075FB8 7F041488 45020007 */ bc1fl .L7F0414A8 +/* 075FBC 7F04148C 4608003C */ c.lt.s $f0, $f8 +/* 075FC0 7F041490 C6860004 */ lwc1 $f6, 4($s4) +/* 075FC4 7F041494 4606203C */ c.lt.s $f4, $f6 +/* 075FC8 7F041498 00000000 */ nop +/* 075FCC 7F04149C 450300C2 */ bc1tl .L7F0417A8 +/* 075FD0 7F0414A0 00001025 */ move $v0, $zero +/* 075FD4 7F0414A4 4608003C */ c.lt.s $f0, $f8 +.L7F0414A8: +/* 075FD8 7F0414A8 00000000 */ nop +/* 075FDC 7F0414AC 45020007 */ bc1fl .L7F0414CC +/* 075FE0 7F0414B0 C6B00000 */ lwc1 $f16, ($s5) +/* 075FE4 7F0414B4 C68A0004 */ lwc1 $f10, 4($s4) +/* 075FE8 7F0414B8 4608503C */ c.lt.s $f10, $f8 +/* 075FEC 7F0414BC 00000000 */ nop +/* 075FF0 7F0414C0 450300B9 */ bc1tl .L7F0417A8 +/* 075FF4 7F0414C4 00001025 */ move $v0, $zero +/* 075FF8 7F0414C8 C6B00000 */ lwc1 $f16, ($s5) +.L7F0414CC: +/* 075FFC 7F0414CC 8FB900D0 */ lw $t9, 0xd0($sp) +/* 076000 7F0414D0 00008025 */ move $s0, $zero +/* 076004 7F0414D4 E7B000A0 */ swc1 $f16, 0xa0($sp) +/* 076008 7F0414D8 C6B20008 */ lwc1 $f18, 8($s5) +/* 07600C 7F0414DC E7B200A4 */ swc1 $f18, 0xa4($sp) +/* 076010 7F0414E0 C6840000 */ lwc1 $f4, ($s4) +/* 076014 7F0414E4 E7A40098 */ swc1 $f4, 0x98($sp) +/* 076018 7F0414E8 C6860008 */ lwc1 $f6, 8($s4) +/* 07601C 7F0414EC 1B200043 */ blez $t9, .L7F0415FC +/* 076020 7F0414F0 E7A6009C */ swc1 $f6, 0x9c($sp) +/* 076024 7F0414F4 00008825 */ move $s1, $zero +/* 076028 7F0414F8 27BE00B0 */ addiu $fp, $sp, 0xb0 +/* 07602C 7F0414FC 27B70098 */ addiu $s7, $sp, 0x98 +/* 076030 7F041500 27B600A0 */ addiu $s6, $sp, 0xa0 +/* 076034 7F041504 8FA800D0 */ lw $t0, 0xd0($sp) +.L7F041508: +/* 076038 7F041508 26130001 */ addiu $s3, $s0, 1 +/* 07603C 7F04150C 8FA900D4 */ lw $t1, 0xd4($sp) +/* 076040 7F041510 0268001A */ div $zero, $s3, $t0 +/* 076044 7F041514 01311821 */ addu $v1, $t1, $s1 +/* 076048 7F041518 C46A0000 */ lwc1 $f10, ($v1) +/* 07604C 7F04151C C6AC0000 */ lwc1 $f12, ($s5) +/* 076050 7F041520 C6AE0008 */ lwc1 $f14, 8($s5) +/* 076054 7F041524 8E860000 */ lw $a2, ($s4) +/* 076058 7F041528 8E870008 */ lw $a3, 8($s4) +/* 07605C 7F04152C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 076060 7F041530 C4680004 */ lwc1 $f8, 4($v1) +/* 076064 7F041534 00001010 */ mfhi $v0 +/* 076068 7F041538 000250C0 */ sll $t2, $v0, 3 +/* 07606C 7F04153C 012A2021 */ addu $a0, $t1, $t2 +/* 076070 7F041540 E7A80014 */ swc1 $f8, 0x14($sp) +/* 076074 7F041544 C4900000 */ lwc1 $f16, ($a0) +/* 076078 7F041548 15000002 */ bnez $t0, .L7F041554 +/* 07607C 7F04154C 00000000 */ nop +/* 076080 7F041550 0007000D */ break 7 +.L7F041554: +/* 076084 7F041554 2401FFFF */ li $at, -1 +/* 076088 7F041558 15010004 */ bne $t0, $at, .L7F04156C +/* 07608C 7F04155C 3C018000 */ lui $at, 0x8000 +/* 076090 7F041560 16610002 */ bne $s3, $at, .L7F04156C +/* 076094 7F041564 00000000 */ nop +/* 076098 7F041568 0006000D */ break 6 +.L7F04156C: +/* 07609C 7F04156C E7B00018 */ swc1 $f16, 0x18($sp) +/* 0760A0 7F041570 C4920004 */ lwc1 $f18, 4($a0) +/* 0760A4 7F041574 00409025 */ move $s2, $v0 +/* 0760A8 7F041578 0FC2C1A2 */ jal sub_GAME_7F0B0688 +/* 0760AC 7F04157C E7B2001C */ swc1 $f18, 0x1c($sp) +/* 0760B0 7F041580 50400019 */ beql $v0, $zero, .L7F0415E8 +/* 0760B4 7F041584 8FAD00D0 */ lw $t5, 0xd0($sp) +/* 0760B8 7F041588 8FAB00D4 */ lw $t3, 0xd4($sp) +/* 0760BC 7F04158C 001260C0 */ sll $t4, $s2, 3 +/* 0760C0 7F041590 02C02025 */ move $a0, $s6 +/* 0760C4 7F041594 01711821 */ addu $v1, $t3, $s1 +/* 0760C8 7F041598 C4640000 */ lwc1 $f4, ($v1) +/* 0760CC 7F04159C 016C1021 */ addu $v0, $t3, $t4 +/* 0760D0 7F0415A0 02E02825 */ move $a1, $s7 +/* 0760D4 7F0415A4 E7A400B0 */ swc1 $f4, 0xb0($sp) +/* 0760D8 7F0415A8 C4660004 */ lwc1 $f6, 4($v1) +/* 0760DC 7F0415AC 03C03025 */ move $a2, $fp +/* 0760E0 7F0415B0 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 0760E4 7F0415B4 E7A600B4 */ swc1 $f6, 0xb4($sp) +/* 0760E8 7F0415B8 C44A0000 */ lwc1 $f10, ($v0) +/* 0760EC 7F0415BC E7AA00A8 */ swc1 $f10, 0xa8($sp) +/* 0760F0 7F0415C0 C4480004 */ lwc1 $f8, 4($v0) +/* 0760F4 7F0415C4 0FC2CC80 */ jal sub_GAME_7F0B3200 +/* 0760F8 7F0415C8 E7A800AC */ swc1 $f8, 0xac($sp) +/* 0760FC 7F0415CC 4614003C */ c.lt.s $f0, $f20 +/* 076100 7F0415D0 00000000 */ nop +/* 076104 7F0415D4 45020004 */ bc1fl .L7F0415E8 +/* 076108 7F0415D8 8FAD00D0 */ lw $t5, 0xd0($sp) +/* 07610C 7F0415DC 46000506 */ mov.s $f20, $f0 +/* 076110 7F0415E0 AFB00094 */ sw $s0, 0x94($sp) +/* 076114 7F0415E4 8FAD00D0 */ lw $t5, 0xd0($sp) +.L7F0415E8: +/* 076118 7F0415E8 02608025 */ move $s0, $s3 +/* 07611C 7F0415EC 26310008 */ addiu $s1, $s1, 8 +/* 076120 7F0415F0 026D082A */ slt $at, $s3, $t5 +/* 076124 7F0415F4 5420FFC4 */ bnezl $at, .L7F041508 +/* 076128 7F0415F8 8FA800D0 */ lw $t0, 0xd0($sp) +.L7F0415FC: +/* 07612C 7F0415FC 8FAE0094 */ lw $t6, 0x94($sp) +/* 076130 7F041600 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 076134 7F041604 27A40088 */ addiu $a0, $sp, 0x88 +/* 076138 7F041608 19C00066 */ blez $t6, .L7F0417A4 +/* 07613C 7F04160C 000EC0C0 */ sll $t8, $t6, 3 +/* 076140 7F041610 8FA800D0 */ lw $t0, 0xd0($sp) +/* 076144 7F041614 25D90001 */ addiu $t9, $t6, 1 +/* 076148 7F041618 01F81021 */ addu $v0, $t7, $t8 +/* 07614C 7F04161C 0328001A */ div $zero, $t9, $t0 +/* 076150 7F041620 4480A000 */ mtc1 $zero, $f20 +/* 076154 7F041624 C4500000 */ lwc1 $f16, ($v0) +/* 076158 7F041628 00004810 */ mfhi $t1 +/* 07615C 7F04162C E7B4008C */ swc1 $f20, 0x8c($sp) +/* 076160 7F041630 E7B00088 */ swc1 $f16, 0x88($sp) +/* 076164 7F041634 C4520004 */ lwc1 $f18, 4($v0) +/* 076168 7F041638 000950C0 */ sll $t2, $t1, 3 +/* 07616C 7F04163C 01EA1821 */ addu $v1, $t7, $t2 +/* 076170 7F041640 E7B20090 */ swc1 $f18, 0x90($sp) +/* 076174 7F041644 C4640000 */ lwc1 $f4, ($v1) +/* 076178 7F041648 E7B40080 */ swc1 $f20, 0x80($sp) +/* 07617C 7F04164C 27AB006C */ addiu $t3, $sp, 0x6c +/* 076180 7F041650 E7A4007C */ swc1 $f4, 0x7c($sp) +/* 076184 7F041654 C4660004 */ lwc1 $f6, 4($v1) +/* 076188 7F041658 15000002 */ bnez $t0, .L7F041664 +/* 07618C 7F04165C 00000000 */ nop +/* 076190 7F041660 0007000D */ break 7 +.L7F041664: +/* 076194 7F041664 2401FFFF */ li $at, -1 +/* 076198 7F041668 15010004 */ bne $t0, $at, .L7F04167C +/* 07619C 7F04166C 3C018000 */ li $at, 0x80000000 # -0.000000 +/* 0761A0 7F041670 17210002 */ bne $t9, $at, .L7F04167C +/* 0761A4 7F041674 00000000 */ nop +/* 0761A8 7F041678 0006000D */ break 6 +.L7F04167C: +/* 0761AC 7F04167C AFAB0010 */ sw $t3, 0x10($sp) +/* 0761B0 7F041680 27A5007C */ addiu $a1, $sp, 0x7c +/* 0761B4 7F041684 02A03025 */ move $a2, $s5 +/* 0761B8 7F041688 8FA700E4 */ lw $a3, 0xe4($sp) +/* 0761BC 7F04168C 0FC0984C */ jal sub_GAME_7F026130 +/* 0761C0 7F041690 E7A60084 */ swc1 $f6, 0x84($sp) +/* 0761C4 7F041694 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 0761C8 7F041698 C6A80000 */ lwc1 $f8, ($s5) +/* 0761CC 7F04169C 8FA500E4 */ lw $a1, 0xe4($sp) +/* 0761D0 7F0416A0 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 0761D4 7F0416A4 46085401 */ sub.s $f16, $f10, $f8 +/* 0761D8 7F0416A8 C6AA0004 */ lwc1 $f10, 4($s5) +/* 0761DC 7F0416AC C4B20000 */ lwc1 $f18, ($a1) +/* 0761E0 7F0416B0 8FA300F0 */ lw $v1, 0xf0($sp) +/* 0761E4 7F0416B4 460A3201 */ sub.s $f8, $f6, $f10 +/* 0761E8 7F0416B8 46128102 */ mul.s $f4, $f16, $f18 +/* 0761EC 7F0416BC C4B00004 */ lwc1 $f16, 4($a1) +/* 0761F0 7F0416C0 C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 0761F4 7F0416C4 8FA200E8 */ lw $v0, 0xe8($sp) +/* 0761F8 7F0416C8 46104482 */ mul.s $f18, $f8, $f16 +/* 0761FC 7F0416CC C6A80008 */ lwc1 $f8, 8($s5) +/* 076200 7F0416D0 8FA400EC */ lw $a0, 0xec($sp) +/* 076204 7F0416D4 46085401 */ sub.s $f16, $f10, $f8 +/* 076208 7F0416D8 C46A0000 */ lwc1 $f10, ($v1) +/* 07620C 7F0416DC 46122180 */ add.s $f6, $f4, $f18 +/* 076210 7F0416E0 C4A40008 */ lwc1 $f4, 8($a1) +/* 076214 7F0416E4 46102482 */ mul.s $f18, $f4, $f16 +/* 076218 7F0416E8 46069000 */ add.s $f0, $f18, $f6 +/* 07621C 7F0416EC 460A003C */ c.lt.s $f0, $f10 +/* 076220 7F0416F0 00000000 */ nop +/* 076224 7F0416F4 4502002C */ bc1fl .L7F0417A8 +/* 076228 7F0416F8 00001025 */ move $v0, $zero +/* 07622C 7F0416FC E4600000 */ swc1 $f0, ($v1) +/* 076230 7F041700 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 076234 7F041704 E4480000 */ swc1 $f8, ($v0) +/* 076238 7F041708 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 07623C 7F04170C E4440004 */ swc1 $f4, 4($v0) +/* 076240 7F041710 C7B00074 */ lwc1 $f16, 0x74($sp) +/* 076244 7F041714 E4500008 */ swc1 $f16, 8($v0) +/* 076248 7F041718 C4B20000 */ lwc1 $f18, ($a1) +/* 07624C 7F04171C E4940004 */ swc1 $f20, 4($a0) +/* 076250 7F041720 46009187 */ neg.s $f6, $f18 +/* 076254 7F041724 E4860000 */ swc1 $f6, ($a0) +/* 076258 7F041728 C4840000 */ lwc1 $f4, ($a0) +/* 07625C 7F04172C C4AA0008 */ lwc1 $f10, 8($a1) +/* 076260 7F041730 24850004 */ addiu $a1, $a0, 4 +/* 076264 7F041734 4604A032 */ c.eq.s $f20, $f4 +/* 076268 7F041738 46005207 */ neg.s $f8, $f10 +/* 07626C 7F04173C 45000007 */ bc1f .L7F04175C +/* 076270 7F041740 E4880008 */ swc1 $f8, 8($a0) +/* 076274 7F041744 C4900008 */ lwc1 $f16, 8($a0) +/* 076278 7F041748 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07627C 7F04174C 4610A032 */ c.eq.s $f20, $f16 +/* 076280 7F041750 00000000 */ nop +/* 076284 7F041754 45030006 */ bc1tl .L7F041770 +/* 076288 7F041758 44819000 */ mtc1 $at, $f18 +.L7F04175C: +/* 07628C 7F04175C 0C007DD4 */ jal guNormalize +/* 076290 7F041760 24860008 */ addiu $a2, $a0, 8 +/* 076294 7F041764 10000005 */ b .L7F04177C +/* 076298 7F041768 8FAC00D8 */ lw $t4, 0xd8($sp) +/* 07629C 7F04176C 44819000 */ mtc1 $at, $f18 +.L7F041770: +/* 0762A0 7F041770 00000000 */ nop +/* 0762A4 7F041774 E4920008 */ swc1 $f18, 8($a0) +/* 0762A8 7F041778 8FAC00D8 */ lw $t4, 0xd8($sp) +.L7F04177C: +/* 0762AC 7F04177C 3C018003 */ lui $at, %hi(D_80030B0C) +/* 0762B0 7F041780 24020001 */ li $v0, 1 +/* 0762B4 7F041784 AC2C0B0C */ sw $t4, %lo(D_80030B0C)($at) +/* 0762B8 7F041788 3C018003 */ lui $at, %hi(bodypartshot) +/* 0762BC 7F04178C AC200B10 */ sw $zero, %lo(bodypartshot)($at) +/* 0762C0 7F041790 3C018007 */ lui $at, %hi(objinst) +/* 0762C4 7F041794 AC205B70 */ sw $zero, %lo(objinst)($at) +/* 0762C8 7F041798 3C018007 */ lui $at, %hi(dword_CODE_bss_80075B74) +/* 0762CC 7F04179C 10000002 */ b .L7F0417A8 +/* 0762D0 7F0417A0 AC205B74 */ sw $zero, %lo(dword_CODE_bss_80075B74)($at) +.L7F0417A4: +/* 0762D4 7F0417A4 00001025 */ move $v0, $zero +.L7F0417A8: +/* 0762D8 7F0417A8 8FBF0054 */ lw $ra, 0x54($sp) +/* 0762DC 7F0417AC D7B40028 */ ldc1 $f20, 0x28($sp) +/* 0762E0 7F0417B0 8FB00030 */ lw $s0, 0x30($sp) +/* 0762E4 7F0417B4 8FB10034 */ lw $s1, 0x34($sp) +/* 0762E8 7F0417B8 8FB20038 */ lw $s2, 0x38($sp) +/* 0762EC 7F0417BC 8FB3003C */ lw $s3, 0x3c($sp) +/* 0762F0 7F0417C0 8FB40040 */ lw $s4, 0x40($sp) +/* 0762F4 7F0417C4 8FB50044 */ lw $s5, 0x44($sp) +/* 0762F8 7F0417C8 8FB60048 */ lw $s6, 0x48($sp) +/* 0762FC 7F0417CC 8FB7004C */ lw $s7, 0x4c($sp) +/* 076300 7F0417D0 8FBE0050 */ lw $fp, 0x50($sp) +/* 076304 7F0417D4 03E00008 */ jr $ra +/* 076308 7F0417D8 27BD00D8 */ addiu $sp, $sp, 0xd8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0417DC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0417DC +/* 07630C 7F0417DC 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 076310 7F0417E0 AFB00028 */ sw $s0, 0x28($sp) +/* 076314 7F0417E4 00808025 */ move $s0, $a0 +/* 076318 7F0417E8 AFBF0034 */ sw $ra, 0x34($sp) +/* 07631C 7F0417EC AFB20030 */ sw $s2, 0x30($sp) +/* 076320 7F0417F0 AFB1002C */ sw $s1, 0x2c($sp) +/* 076324 7F0417F4 AFA60060 */ sw $a2, 0x60($sp) +/* 076328 7F0417F8 8C840014 */ lw $a0, 0x14($a0) +/* 07632C 7F0417FC 00A08825 */ move $s1, $a1 +/* 076330 7F041800 00E09025 */ move $s2, $a3 +/* 076334 7F041804 0FC1B403 */ jal getinstsize +/* 076338 7F041808 AFA40054 */ sw $a0, 0x54($sp) +/* 07633C 7F04180C 8E020010 */ lw $v0, 0x10($s0) +/* 076340 7F041810 44801000 */ mtc1 $zero, $f2 +/* 076344 7F041814 8C4E001C */ lw $t6, 0x1c($v0) +/* 076348 7F041818 55C00013 */ bnezl $t6, .L7F041868 +/* 07634C 7F04181C 46000207 */ neg.s $f8, $f0 +/* 076350 7F041820 C6040058 */ lwc1 $f4, 0x58($s0) +/* 076354 7F041824 C6260000 */ lwc1 $f6, ($s1) +/* 076358 7F041828 C608005C */ lwc1 $f8, 0x5c($s0) +/* 07635C 7F04182C C62A0004 */ lwc1 $f10, 4($s1) +/* 076360 7F041830 46062301 */ sub.s $f12, $f4, $f6 +/* 076364 7F041834 C6460000 */ lwc1 $f6, ($s2) +/* 076368 7F041838 C6240008 */ lwc1 $f4, 8($s1) +/* 07636C 7F04183C 460A4381 */ sub.s $f14, $f8, $f10 +/* 076370 7F041840 C6120060 */ lwc1 $f18, 0x60($s0) +/* 076374 7F041844 46066202 */ mul.s $f8, $f12, $f6 +/* 076378 7F041848 C64A0004 */ lwc1 $f10, 4($s2) +/* 07637C 7F04184C 46049401 */ sub.s $f16, $f18, $f4 +/* 076380 7F041850 C6460008 */ lwc1 $f6, 8($s2) +/* 076384 7F041854 460A7482 */ mul.s $f18, $f14, $f10 +/* 076388 7F041858 46124100 */ add.s $f4, $f8, $f18 +/* 07638C 7F04185C 46103282 */ mul.s $f10, $f6, $f16 +/* 076390 7F041860 46045080 */ add.s $f2, $f10, $f4 +/* 076394 7F041864 46000207 */ neg.s $f8, $f0 +.L7F041868: +/* 076398 7F041868 C7B20068 */ lwc1 $f18, 0x68($sp) +/* 07639C 7F04186C 4602403E */ c.le.s $f8, $f2 +/* 0763A0 7F041870 00000000 */ nop +/* 0763A4 7F041874 45020055 */ bc1fl .L7F0419CC +/* 0763A8 7F041878 00001025 */ move $v0, $zero +/* 0763AC 7F04187C 46009180 */ add.s $f6, $f18, $f0 +/* 0763B0 7F041880 4606103E */ c.le.s $f2, $f6 +/* 0763B4 7F041884 00000000 */ nop +/* 0763B8 7F041888 45020050 */ bc1fl .L7F0419CC +/* 0763BC 7F04188C 00001025 */ move $v0, $zero +/* 0763C0 7F041890 904F0001 */ lbu $t7, 1($v0) +/* 0763C4 7F041894 8FA5006C */ lw $a1, 0x6c($sp) +/* 0763C8 7F041898 8FA60070 */ lw $a2, 0x70($sp) +/* 0763CC 7F04189C 31F80002 */ andi $t8, $t7, 2 +/* 0763D0 7F0418A0 1300002A */ beqz $t8, .L7F04194C +/* 0763D4 7F0418A4 8FA40054 */ lw $a0, 0x54($sp) +/* 0763D8 7F0418A8 8FB90078 */ lw $t9, 0x78($sp) +/* 0763DC 7F0418AC 8FA90080 */ lw $t1, 0x80($sp) +/* 0763E0 7F0418B0 8FAA0084 */ lw $t2, 0x84($sp) +/* 0763E4 7F0418B4 02002025 */ move $a0, $s0 +/* 0763E8 7F0418B8 8FA70074 */ lw $a3, 0x74($sp) +/* 0763EC 7F0418BC AFB90010 */ sw $t9, 0x10($sp) +/* 0763F0 7F0418C0 AFA90014 */ sw $t1, 0x14($sp) +/* 0763F4 7F0418C4 0FC10458 */ jal sub_GAME_7F041160 +/* 0763F8 7F0418C8 AFAA0018 */ sw $t2, 0x18($sp) +/* 0763FC 7F0418CC 1040003E */ beqz $v0, .L7F0419C8 +/* 076400 7F0418D0 8FA30074 */ lw $v1, 0x74($sp) +/* 076404 7F0418D4 C46A0000 */ lwc1 $f10, ($v1) +/* 076408 7F0418D8 C6240000 */ lwc1 $f4, ($s1) +/* 07640C 7F0418DC C4680004 */ lwc1 $f8, 4($v1) +/* 076410 7F0418E0 C6320004 */ lwc1 $f18, 4($s1) +/* 076414 7F0418E4 46045301 */ sub.s $f12, $f10, $f4 +/* 076418 7F0418E8 C6440000 */ lwc1 $f4, ($s2) +/* 07641C 7F0418EC C62A0008 */ lwc1 $f10, 8($s1) +/* 076420 7F0418F0 46124381 */ sub.s $f14, $f8, $f18 +/* 076424 7F0418F4 C4660008 */ lwc1 $f6, 8($v1) +/* 076428 7F0418F8 46046202 */ mul.s $f8, $f12, $f4 +/* 07642C 7F0418FC C6520004 */ lwc1 $f18, 4($s2) +/* 076430 7F041900 460A3401 */ sub.s $f16, $f6, $f10 +/* 076434 7F041904 C6440008 */ lwc1 $f4, 8($s2) +/* 076438 7F041908 46127182 */ mul.s $f6, $f14, $f18 +/* 07643C 7F04190C 46064280 */ add.s $f10, $f8, $f6 +/* 076440 7F041910 46102482 */ mul.s $f18, $f4, $f16 +/* 076444 7F041914 44804000 */ mtc1 $zero, $f8 +/* 076448 7F041918 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 07644C 7F04191C 460A9080 */ add.s $f2, $f18, $f10 +/* 076450 7F041920 4602403E */ c.le.s $f8, $f2 +/* 076454 7F041924 00000000 */ nop +/* 076458 7F041928 45020028 */ bc1fl .L7F0419CC +/* 07645C 7F04192C 00001025 */ move $v0, $zero +/* 076460 7F041930 4606103E */ c.le.s $f2, $f6 +/* 076464 7F041934 8FA8007C */ lw $t0, 0x7c($sp) +/* 076468 7F041938 24020001 */ li $v0, 1 +/* 07646C 7F04193C 45020023 */ bc1fl .L7F0419CC +/* 076470 7F041940 00001025 */ move $v0, $zero +/* 076474 7F041944 10000021 */ b .L7F0419CC +/* 076478 7F041948 E5020000 */ swc1 $f2, ($t0) +.L7F04194C: +/* 07647C 7F04194C 0FC1B403 */ jal getinstsize +/* 076480 7F041950 AFA2003C */ sw $v0, 0x3c($sp) +/* 076484 7F041954 44070000 */ mfc1 $a3, $f0 +/* 076488 7F041958 02202025 */ move $a0, $s1 +/* 07648C 7F04195C 02402825 */ move $a1, $s2 +/* 076490 7F041960 0FC1041D */ jal sub_GAME_7F041074 +/* 076494 7F041964 26060058 */ addiu $a2, $s0, 0x58 +/* 076498 7F041968 10400017 */ beqz $v0, .L7F0419C8 +/* 07649C 7F04196C 8FA30074 */ lw $v1, 0x74($sp) +/* 0764A0 7F041970 8FA8007C */ lw $t0, 0x7c($sp) +/* 0764A4 7F041974 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 0764A8 7F041978 02202825 */ move $a1, $s1 +/* 0764AC 7F04197C 02403825 */ move $a3, $s2 +/* 0764B0 7F041980 E5040000 */ swc1 $f4, ($t0) +/* 0764B4 7F041984 8FAB0078 */ lw $t3, 0x78($sp) +/* 0764B8 7F041988 AFA30010 */ sw $v1, 0x10($sp) +/* 0764BC 7F04198C 8FA60060 */ lw $a2, 0x60($sp) +/* 0764C0 7F041990 8FA4003C */ lw $a0, 0x3c($sp) +/* 0764C4 7F041994 AFA80018 */ sw $t0, 0x18($sp) +/* 0764C8 7F041998 0FC10500 */ jal sub_GAME_7F041400 +/* 0764CC 7F04199C AFAB0014 */ sw $t3, 0x14($sp) +/* 0764D0 7F0419A0 10400009 */ beqz $v0, .L7F0419C8 +/* 0764D4 7F0419A4 8FAC0054 */ lw $t4, 0x54($sp) +/* 0764D8 7F0419A8 8FAD0080 */ lw $t5, 0x80($sp) +/* 0764DC 7F0419AC 24020001 */ li $v0, 1 +/* 0764E0 7F0419B0 ADAC0000 */ sw $t4, ($t5) +/* 0764E4 7F0419B4 8D8E0008 */ lw $t6, 8($t4) +/* 0764E8 7F0419B8 8FB80084 */ lw $t8, 0x84($sp) +/* 0764EC 7F0419BC 8DCF0000 */ lw $t7, ($t6) +/* 0764F0 7F0419C0 10000002 */ b .L7F0419CC +/* 0764F4 7F0419C4 AF0F0000 */ sw $t7, ($t8) +.L7F0419C8: +/* 0764F8 7F0419C8 00001025 */ move $v0, $zero +.L7F0419CC: +/* 0764FC 7F0419CC 8FBF0034 */ lw $ra, 0x34($sp) +/* 076500 7F0419D0 8FB00028 */ lw $s0, 0x28($sp) +/* 076504 7F0419D4 8FB1002C */ lw $s1, 0x2c($sp) +/* 076508 7F0419D8 8FB20030 */ lw $s2, 0x30($sp) +/* 07650C 7F0419DC 03E00008 */ jr $ra +/* 076510 7F0419E0 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0419E4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0419E4 +/* 076514 7F0419E4 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 076518 7F0419E8 AFBF0064 */ sw $ra, 0x64($sp) +/* 07651C 7F0419EC AFBE0060 */ sw $fp, 0x60($sp) +/* 076520 7F0419F0 AFB7005C */ sw $s7, 0x5c($sp) +/* 076524 7F0419F4 AFB60058 */ sw $s6, 0x58($sp) +/* 076528 7F0419F8 AFB50054 */ sw $s5, 0x54($sp) +/* 07652C 7F0419FC AFB40050 */ sw $s4, 0x50($sp) +/* 076530 7F041A00 AFB3004C */ sw $s3, 0x4c($sp) +/* 076534 7F041A04 AFB20048 */ sw $s2, 0x48($sp) +/* 076538 7F041A08 AFB10044 */ sw $s1, 0x44($sp) +/* 07653C 7F041A0C AFB00040 */ sw $s0, 0x40($sp) +/* 076540 7F041A10 F7B40038 */ sdc1 $f20, 0x38($sp) +/* 076544 7F041A14 8C830010 */ lw $v1, 0x10($a0) +/* 076548 7F041A18 C7B400A8 */ lwc1 $f20, 0xa8($sp) +/* 07654C 7F041A1C 8FB700AC */ lw $s7, 0xac($sp) +/* 076550 7F041A20 8FBE00B0 */ lw $fp, 0xb0($sp) +/* 076554 7F041A24 27AE008C */ addiu $t6, $sp, 0x8c +/* 076558 7F041A28 27AF0080 */ addiu $t7, $sp, 0x80 +/* 07655C 7F041A2C 27B8007C */ addiu $t8, $sp, 0x7c +/* 076560 7F041A30 27B90078 */ addiu $t9, $sp, 0x78 +/* 076564 7F041A34 27A80074 */ addiu $t0, $sp, 0x74 +/* 076568 7F041A38 00808025 */ move $s0, $a0 +/* 07656C 7F041A3C 00A09825 */ move $s3, $a1 +/* 076570 7F041A40 00C0A025 */ move $s4, $a2 +/* 076574 7F041A44 00E0A825 */ move $s5, $a3 +/* 076578 7F041A48 0000B025 */ move $s6, $zero +/* 07657C 7F041A4C AFA8002C */ sw $t0, 0x2c($sp) +/* 076580 7F041A50 AFB90028 */ sw $t9, 0x28($sp) +/* 076584 7F041A54 AFB80024 */ sw $t8, 0x24($sp) +/* 076588 7F041A58 AFAF0020 */ sw $t7, 0x20($sp) +/* 07658C 7F041A5C AFAE001C */ sw $t6, 0x1c($sp) +/* 076590 7F041A60 AFA3006C */ sw $v1, 0x6c($sp) +/* 076594 7F041A64 E7B40010 */ swc1 $f20, 0x10($sp) +/* 076598 7F041A68 AFB70014 */ sw $s7, 0x14($sp) +/* 07659C 7F041A6C 0FC105F7 */ jal sub_GAME_7F0417DC +/* 0765A0 7F041A70 AFBE0018 */ sw $fp, 0x18($sp) +/* 0765A4 7F041A74 10400024 */ beqz $v0, .L7F041B08 +/* 0765A8 7F041A78 8FA3006C */ lw $v1, 0x6c($sp) +/* 0765AC 7F041A7C 8FA900BC */ lw $t1, 0xbc($sp) +/* 0765B0 7F041A80 C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 0765B4 7F041A84 8FB100B4 */ lw $s1, 0xb4($sp) +/* 0765B8 7F041A88 C5260000 */ lwc1 $f6, ($t1) +/* 0765BC 7F041A8C 8FB200B8 */ lw $s2, 0xb8($sp) +/* 0765C0 7F041A90 4606203C */ c.lt.s $f4, $f6 +/* 0765C4 7F041A94 00000000 */ nop +/* 0765C8 7F041A98 4502001C */ bc1fl .L7F041B0C +/* 0765CC 7F041A9C 906E0001 */ lbu $t6, 1($v1) +/* 0765D0 7F041AA0 E5240000 */ swc1 $f4, ($t1) +/* 0765D4 7F041AA4 C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 0765D8 7F041AA8 3C018003 */ lui $at, %hi(D_80030B0C) +/* 0765DC 7F041AAC 240BFFFF */ li $t3, -1 +/* 0765E0 7F041AB0 E6280000 */ swc1 $f8, ($s1) +/* 0765E4 7F041AB4 C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 0765E8 7F041AB8 24160001 */ li $s6, 1 +/* 0765EC 7F041ABC E62A0004 */ swc1 $f10, 4($s1) +/* 0765F0 7F041AC0 C7B00094 */ lwc1 $f16, 0x94($sp) +/* 0765F4 7F041AC4 E6300008 */ swc1 $f16, 8($s1) +/* 0765F8 7F041AC8 C7B20080 */ lwc1 $f18, 0x80($sp) +/* 0765FC 7F041ACC E6520000 */ swc1 $f18, ($s2) +/* 076600 7F041AD0 C7A60084 */ lwc1 $f6, 0x84($sp) +/* 076604 7F041AD4 E6460004 */ swc1 $f6, 4($s2) +/* 076608 7F041AD8 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 07660C 7F041ADC E6440008 */ swc1 $f4, 8($s2) +/* 076610 7F041AE0 8E0A0010 */ lw $t2, 0x10($s0) +/* 076614 7F041AE4 8FAC0078 */ lw $t4, 0x78($sp) +/* 076618 7F041AE8 8FAD0074 */ lw $t5, 0x74($sp) +/* 07661C 7F041AEC AC2A0B0C */ sw $t2, %lo(D_80030B0C)($at) +/* 076620 7F041AF0 3C018003 */ lui $at, %hi(bodypartshot) +/* 076624 7F041AF4 AC2B0B10 */ sw $t3, %lo(bodypartshot)($at) +/* 076628 7F041AF8 3C018007 */ lui $at, %hi(objinst) +/* 07662C 7F041AFC AC2C5B70 */ sw $t4, %lo(objinst)($at) +/* 076630 7F041B00 3C018007 */ lui $at, %hi(dword_CODE_bss_80075B74) +/* 076634 7F041B04 AC2D5B74 */ sw $t5, %lo(dword_CODE_bss_80075B74)($at) +.L7F041B08: +/* 076638 7F041B08 906E0001 */ lbu $t6, 1($v1) +.L7F041B0C: +/* 07663C 7F041B0C 8FB100B4 */ lw $s1, 0xb4($sp) +/* 076640 7F041B10 8FB200B8 */ lw $s2, 0xb8($sp) +/* 076644 7F041B14 31CF0002 */ andi $t7, $t6, 2 +/* 076648 7F041B18 51E0001A */ beql $t7, $zero, .L7F041B84 +/* 07664C 7F041B1C 8FBF0064 */ lw $ra, 0x64($sp) +/* 076650 7F041B20 8C700020 */ lw $s0, 0x20($v1) +/* 076654 7F041B24 52000017 */ beql $s0, $zero, .L7F041B84 +/* 076658 7F041B28 8FBF0064 */ lw $ra, 0x64($sp) +/* 07665C 7F041B2C 92180001 */ lbu $t8, 1($s0) +.L7F041B30: +/* 076660 7F041B30 02602825 */ move $a1, $s3 +/* 076664 7F041B34 02803025 */ move $a2, $s4 +/* 076668 7F041B38 33190002 */ andi $t9, $t8, 2 +/* 07666C 7F041B3C 1320000D */ beqz $t9, .L7F041B74 +/* 076670 7F041B40 02A03825 */ move $a3, $s5 +/* 076674 7F041B44 8E040004 */ lw $a0, 4($s0) +/* 076678 7F041B48 8FA800BC */ lw $t0, 0xbc($sp) +/* 07667C 7F041B4C AFB20020 */ sw $s2, 0x20($sp) +/* 076680 7F041B50 AFB1001C */ sw $s1, 0x1c($sp) +/* 076684 7F041B54 AFBE0018 */ sw $fp, 0x18($sp) +/* 076688 7F041B58 AFB70014 */ sw $s7, 0x14($sp) +/* 07668C 7F041B5C E7B40010 */ swc1 $f20, 0x10($sp) +/* 076690 7F041B60 0FC10679 */ jal sub_GAME_7F0419E4 +/* 076694 7F041B64 AFA80024 */ sw $t0, 0x24($sp) +/* 076698 7F041B68 50400003 */ beql $v0, $zero, .L7F041B78 +/* 07669C 7F041B6C 8E100024 */ lw $s0, 0x24($s0) +/* 0766A0 7F041B70 24160001 */ li $s6, 1 +.L7F041B74: +/* 0766A4 7F041B74 8E100024 */ lw $s0, 0x24($s0) +.L7F041B78: +/* 0766A8 7F041B78 5600FFED */ bnezl $s0, .L7F041B30 +/* 0766AC 7F041B7C 92180001 */ lbu $t8, 1($s0) +/* 0766B0 7F041B80 8FBF0064 */ lw $ra, 0x64($sp) +.L7F041B84: +/* 0766B4 7F041B84 02C01025 */ move $v0, $s6 +/* 0766B8 7F041B88 8FB60058 */ lw $s6, 0x58($sp) +/* 0766BC 7F041B8C D7B40038 */ ldc1 $f20, 0x38($sp) +/* 0766C0 7F041B90 8FB00040 */ lw $s0, 0x40($sp) +/* 0766C4 7F041B94 8FB10044 */ lw $s1, 0x44($sp) +/* 0766C8 7F041B98 8FB20048 */ lw $s2, 0x48($sp) +/* 0766CC 7F041B9C 8FB3004C */ lw $s3, 0x4c($sp) +/* 0766D0 7F041BA0 8FB40050 */ lw $s4, 0x50($sp) +/* 0766D4 7F041BA4 8FB50054 */ lw $s5, 0x54($sp) +/* 0766D8 7F041BA8 8FB7005C */ lw $s7, 0x5c($sp) +/* 0766DC 7F041BAC 8FBE0060 */ lw $fp, 0x60($sp) +/* 0766E0 7F041BB0 03E00008 */ jr $ra +/* 0766E4 7F041BB4 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F041BB8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F041BB8 +/* 0766E8 7F041BB8 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0766EC 7F041BBC AFA70074 */ sw $a3, 0x74($sp) +/* 0766F0 7F041BC0 AFBF002C */ sw $ra, 0x2c($sp) +/* 0766F4 7F041BC4 AFB20028 */ sw $s2, 0x28($sp) +/* 0766F8 7F041BC8 AFB10024 */ sw $s1, 0x24($sp) +/* 0766FC 7F041BCC AFB00020 */ sw $s0, 0x20($sp) +/* 076700 7F041BD0 AFA40068 */ sw $a0, 0x68($sp) +/* 076704 7F041BD4 00803825 */ move $a3, $a0 +/* 076708 7F041BD8 8C920018 */ lw $s2, 0x18($a0) +/* 07670C 7F041BDC 8C84001C */ lw $a0, 0x1c($a0) +/* 076710 7F041BE0 00C08025 */ move $s0, $a2 +/* 076714 7F041BE4 00A08825 */ move $s1, $a1 +/* 076718 7F041BE8 0FC1B403 */ jal getinstsize +/* 07671C 7F041BEC AFA70068 */ sw $a3, 0x68($sp) +/* 076720 7F041BF0 C6440008 */ lwc1 $f4, 8($s2) +/* 076724 7F041BF4 C6260000 */ lwc1 $f6, ($s1) +/* 076728 7F041BF8 C648000C */ lwc1 $f8, 0xc($s2) +/* 07672C 7F041BFC C62A0004 */ lwc1 $f10, 4($s1) +/* 076730 7F041C00 46062081 */ sub.s $f2, $f4, $f6 +/* 076734 7F041C04 C6060000 */ lwc1 $f6, ($s0) +/* 076738 7F041C08 C6240008 */ lwc1 $f4, 8($s1) +/* 07673C 7F041C0C 460A4301 */ sub.s $f12, $f8, $f10 +/* 076740 7F041C10 C6520010 */ lwc1 $f18, 0x10($s2) +/* 076744 7F041C14 46061202 */ mul.s $f8, $f2, $f6 +/* 076748 7F041C18 C60A0004 */ lwc1 $f10, 4($s0) +/* 07674C 7F041C1C 46049381 */ sub.s $f14, $f18, $f4 +/* 076750 7F041C20 C6060008 */ lwc1 $f6, 8($s0) +/* 076754 7F041C24 460A6482 */ mul.s $f18, $f12, $f10 +/* 076758 7F041C28 46124100 */ add.s $f4, $f8, $f18 +/* 07675C 7F041C2C 460E3282 */ mul.s $f10, $f6, $f14 +/* 076760 7F041C30 C7B20074 */ lwc1 $f18, 0x74($sp) +/* 076764 7F041C34 46000207 */ neg.s $f8, $f0 +/* 076768 7F041C38 46045400 */ add.s $f16, $f10, $f4 +/* 07676C 7F041C3C 4610403E */ c.le.s $f8, $f16 +/* 076770 7F041C40 00000000 */ nop +/* 076774 7F041C44 4502006B */ bc1fl .L7F041DF4 +/* 076778 7F041C48 00001025 */ move $v0, $zero +/* 07677C 7F041C4C 46009180 */ add.s $f6, $f18, $f0 +/* 076780 7F041C50 4606803E */ c.le.s $f16, $f6 +/* 076784 7F041C54 00000000 */ nop +/* 076788 7F041C58 45020066 */ bc1fl .L7F041DF4 +/* 07678C 7F041C5C 00001025 */ move $v0, $zero +/* 076790 7F041C60 924E0001 */ lbu $t6, 1($s2) +/* 076794 7F041C64 8FB80068 */ lw $t8, 0x68($sp) +/* 076798 7F041C68 27A40038 */ addiu $a0, $sp, 0x38 +/* 07679C 7F041C6C 31CF0002 */ andi $t7, $t6, 2 +/* 0767A0 7F041C70 11E0005F */ beqz $t7, .L7F041DF0 +/* 0767A4 7F041C74 27A70040 */ addiu $a3, $sp, 0x40 +/* 0767A8 7F041C78 8F190020 */ lw $t9, 0x20($t8) +/* 0767AC 7F041C7C 27A8003C */ addiu $t0, $sp, 0x3c +/* 0767B0 7F041C80 AFA80010 */ sw $t0, 0x10($sp) +/* 0767B4 7F041C84 8FA50078 */ lw $a1, 0x78($sp) +/* 0767B8 7F041C88 8FA6007C */ lw $a2, 0x7c($sp) +/* 0767BC 7F041C8C 0FC1B004 */ jal sub_GAME_7F06C010 +/* 0767C0 7F041C90 AFB90038 */ sw $t9, 0x38($sp) +/* 0767C4 7F041C94 18400056 */ blez $v0, .L7F041DF0 +/* 0767C8 7F041C98 AFA20044 */ sw $v0, 0x44($sp) +/* 0767CC 7F041C9C 8FA40040 */ lw $a0, 0x40($sp) +/* 0767D0 7F041CA0 8FA5003C */ lw $a1, 0x3c($sp) +/* 0767D4 7F041CA4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0767D8 7F041CA8 00003025 */ move $a2, $zero +/* 0767DC 7F041CAC 8FA30078 */ lw $v1, 0x78($sp) +/* 0767E0 7F041CB0 C44A0030 */ lwc1 $f10, 0x30($v0) +/* 0767E4 7F041CB4 8FA7007C */ lw $a3, 0x7c($sp) +/* 0767E8 7F041CB8 C4640000 */ lwc1 $f4, ($v1) +/* 0767EC 7F041CBC C4480034 */ lwc1 $f8, 0x34($v0) +/* 0767F0 7F041CC0 C4720004 */ lwc1 $f18, 4($v1) +/* 0767F4 7F041CC4 46045081 */ sub.s $f2, $f10, $f4 +/* 0767F8 7F041CC8 C4E40000 */ lwc1 $f4, ($a3) +/* 0767FC 7F041CCC C4460038 */ lwc1 $f6, 0x38($v0) +/* 076800 7F041CD0 46124301 */ sub.s $f12, $f8, $f18 +/* 076804 7F041CD4 C46A0008 */ lwc1 $f10, 8($v1) +/* 076808 7F041CD8 46041202 */ mul.s $f8, $f2, $f4 +/* 07680C 7F041CDC C4F20004 */ lwc1 $f18, 4($a3) +/* 076810 7F041CE0 460A3381 */ sub.s $f14, $f6, $f10 +/* 076814 7F041CE4 C4E40008 */ lwc1 $f4, 8($a3) +/* 076818 7F041CE8 46126182 */ mul.s $f6, $f12, $f18 +/* 07681C 7F041CEC 8FA50088 */ lw $a1, 0x88($sp) +/* 076820 7F041CF0 8FA20080 */ lw $v0, 0x80($sp) +/* 076824 7F041CF4 460E2482 */ mul.s $f18, $f4, $f14 +/* 076828 7F041CF8 8FA40084 */ lw $a0, 0x84($sp) +/* 07682C 7F041CFC 46064280 */ add.s $f10, $f8, $f6 +/* 076830 7F041D00 C4A80000 */ lwc1 $f8, ($a1) +/* 076834 7F041D04 460A9000 */ add.s $f0, $f18, $f10 +/* 076838 7F041D08 4608003C */ c.lt.s $f0, $f8 +/* 07683C 7F041D0C 00000000 */ nop +/* 076840 7F041D10 45020038 */ bc1fl .L7F041DF4 +/* 076844 7F041D14 00001025 */ move $v0, $zero +/* 076848 7F041D18 E4A00000 */ swc1 $f0, ($a1) +/* 07684C 7F041D1C C6060000 */ lwc1 $f6, ($s0) +/* 076850 7F041D20 C6320000 */ lwc1 $f18, ($s1) +/* 076854 7F041D24 44801000 */ mtc1 $zero, $f2 +/* 076858 7F041D28 46003102 */ mul.s $f4, $f6, $f0 +/* 07685C 7F041D2C 24850004 */ addiu $a1, $a0, 4 +/* 076860 7F041D30 46122280 */ add.s $f10, $f4, $f18 +/* 076864 7F041D34 E44A0000 */ swc1 $f10, ($v0) +/* 076868 7F041D38 C6080004 */ lwc1 $f8, 4($s0) +/* 07686C 7F041D3C C6240004 */ lwc1 $f4, 4($s1) +/* 076870 7F041D40 46004182 */ mul.s $f6, $f8, $f0 +/* 076874 7F041D44 46043480 */ add.s $f18, $f6, $f4 +/* 076878 7F041D48 E4520004 */ swc1 $f18, 4($v0) +/* 07687C 7F041D4C C60A0008 */ lwc1 $f10, 8($s0) +/* 076880 7F041D50 C6260008 */ lwc1 $f6, 8($s1) +/* 076884 7F041D54 46005202 */ mul.s $f8, $f10, $f0 +/* 076888 7F041D58 46064100 */ add.s $f4, $f8, $f6 +/* 07688C 7F041D5C E4440008 */ swc1 $f4, 8($v0) +/* 076890 7F041D60 C6120000 */ lwc1 $f18, ($s0) +/* 076894 7F041D64 E4820004 */ swc1 $f2, 4($a0) +/* 076898 7F041D68 46009287 */ neg.s $f10, $f18 +/* 07689C 7F041D6C E48A0000 */ swc1 $f10, ($a0) +/* 0768A0 7F041D70 C4840000 */ lwc1 $f4, ($a0) +/* 0768A4 7F041D74 C6080008 */ lwc1 $f8, 8($s0) +/* 0768A8 7F041D78 46041032 */ c.eq.s $f2, $f4 +/* 0768AC 7F041D7C 46004187 */ neg.s $f6, $f8 +/* 0768B0 7F041D80 45000007 */ bc1f .L7F041DA0 +/* 0768B4 7F041D84 E4860008 */ swc1 $f6, 8($a0) +/* 0768B8 7F041D88 C4920008 */ lwc1 $f18, 8($a0) +/* 0768BC 7F041D8C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0768C0 7F041D90 46121032 */ c.eq.s $f2, $f18 +/* 0768C4 7F041D94 00000000 */ nop +/* 0768C8 7F041D98 45030006 */ bc1tl .L7F041DB4 +/* 0768CC 7F041D9C 44815000 */ mtc1 $at, $f10 +.L7F041DA0: +/* 0768D0 7F041DA0 0C007DD4 */ jal guNormalize +/* 0768D4 7F041DA4 24860008 */ addiu $a2, $a0, 8 +/* 0768D8 7F041DA8 10000005 */ b .L7F041DC0 +/* 0768DC 7F041DAC 8FA90044 */ lw $t1, 0x44($sp) +/* 0768E0 7F041DB0 44815000 */ mtc1 $at, $f10 +.L7F041DB4: +/* 0768E4 7F041DB4 00000000 */ nop +/* 0768E8 7F041DB8 E48A0008 */ swc1 $f10, 8($a0) +/* 0768EC 7F041DBC 8FA90044 */ lw $t1, 0x44($sp) +.L7F041DC0: +/* 0768F0 7F041DC0 3C018003 */ lui $at, %hi(D_80030B0C) +/* 0768F4 7F041DC4 AC320B0C */ sw $s2, %lo(D_80030B0C)($at) +/* 0768F8 7F041DC8 8FAA0040 */ lw $t2, 0x40($sp) +/* 0768FC 7F041DCC 3C018003 */ lui $at, %hi(bodypartshot) +/* 076900 7F041DD0 AC290B10 */ sw $t1, %lo(bodypartshot)($at) +/* 076904 7F041DD4 3C018007 */ lui $at, %hi(objinst) +/* 076908 7F041DD8 8FAB003C */ lw $t3, 0x3c($sp) +/* 07690C 7F041DDC AC2A5B70 */ sw $t2, %lo(objinst)($at) +/* 076910 7F041DE0 3C018007 */ lui $at, %hi(dword_CODE_bss_80075B74) +/* 076914 7F041DE4 24020001 */ li $v0, 1 +/* 076918 7F041DE8 10000002 */ b .L7F041DF4 +/* 07691C 7F041DEC AC2B5B74 */ sw $t3, %lo(dword_CODE_bss_80075B74)($at) +.L7F041DF0: +/* 076920 7F041DF0 00001025 */ move $v0, $zero +.L7F041DF4: +/* 076924 7F041DF4 8FBF002C */ lw $ra, 0x2c($sp) +/* 076928 7F041DF8 8FB00020 */ lw $s0, 0x20($sp) +/* 07692C 7F041DFC 8FB10024 */ lw $s1, 0x24($sp) +/* 076930 7F041E00 8FB20028 */ lw $s2, 0x28($sp) +/* 076934 7F041E04 03E00008 */ jr $ra +/* 076938 7F041E08 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F041E0C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F041E0C +/* 07693C 7F041E0C 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 076940 7F041E10 AFBF005C */ sw $ra, 0x5c($sp) +/* 076944 7F041E14 AFB40048 */ sw $s4, 0x48($sp) +/* 076948 7F041E18 AFB20040 */ sw $s2, 0x40($sp) +/* 07694C 7F041E1C 00E09025 */ move $s2, $a3 +/* 076950 7F041E20 00A0A025 */ move $s4, $a1 +/* 076954 7F041E24 AFBE0058 */ sw $fp, 0x58($sp) +/* 076958 7F041E28 AFB70054 */ sw $s7, 0x54($sp) +/* 07695C 7F041E2C AFB60050 */ sw $s6, 0x50($sp) +/* 076960 7F041E30 AFB5004C */ sw $s5, 0x4c($sp) +/* 076964 7F041E34 AFB30044 */ sw $s3, 0x44($sp) +/* 076968 7F041E38 AFB1003C */ sw $s1, 0x3c($sp) +/* 07696C 7F041E3C AFB00038 */ sw $s0, 0x38($sp) +/* 076970 7F041E40 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 076974 7F041E44 AFA400B8 */ sw $a0, 0xb8($sp) +/* 076978 7F041E48 AFA600C0 */ sw $a2, 0xc0($sp) +/* 07697C 7F041E4C AFA000B4 */ sw $zero, 0xb4($sp) +/* 076980 7F041E50 0FC1F3A1 */ jal get_ptr_for_players_tank +/* 076984 7F041E54 AFA000A4 */ sw $zero, 0xa4($sp) +/* 076988 7F041E58 8FA300C0 */ lw $v1, 0xc0($sp) +/* 07698C 7F041E5C AFA20074 */ sw $v0, 0x74($sp) +/* 076990 7F041E60 C6860000 */ lwc1 $f6, ($s4) +/* 076994 7F041E64 C4640000 */ lwc1 $f4, ($v1) +/* 076998 7F041E68 46062201 */ sub.s $f8, $f4, $f6 +/* 07699C 7F041E6C E7A80098 */ swc1 $f8, 0x98($sp) +/* 0769A0 7F041E70 C6900004 */ lwc1 $f16, 4($s4) +/* 0769A4 7F041E74 C46A0004 */ lwc1 $f10, 4($v1) +/* 0769A8 7F041E78 46105481 */ sub.s $f18, $f10, $f16 +/* 0769AC 7F041E7C C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0769B0 7F041E80 E7B2009C */ swc1 $f18, 0x9c($sp) +/* 0769B4 7F041E84 C6860008 */ lwc1 $f6, 8($s4) +/* 0769B8 7F041E88 C4640008 */ lwc1 $f4, 8($v1) +/* 0769BC 7F041E8C 460A5402 */ mul.s $f16, $f10, $f10 +/* 0769C0 7F041E90 C7B2009C */ lwc1 $f18, 0x9c($sp) +/* 0769C4 7F041E94 46062201 */ sub.s $f8, $f4, $f6 +/* 0769C8 7F041E98 46129102 */ mul.s $f4, $f18, $f18 +/* 0769CC 7F041E9C E7A800A0 */ swc1 $f8, 0xa0($sp) +/* 0769D0 7F041EA0 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 0769D4 7F041EA4 46084282 */ mul.s $f10, $f8, $f8 +/* 0769D8 7F041EA8 46048180 */ add.s $f6, $f16, $f4 +/* 0769DC 7F041EAC 0C007DF8 */ jal sqrtf +/* 0769E0 7F041EB0 46065300 */ add.s $f12, $f10, $f6 +/* 0769E4 7F041EB4 44809000 */ mtc1 $zero, $f18 +/* 0769E8 7F041EB8 46000506 */ mov.s $f20, $f0 +/* 0769EC 7F041EBC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0769F0 7F041EC0 46120032 */ c.eq.s $f0, $f18 +/* 0769F4 7F041EC4 00000000 */ nop +/* 0769F8 7F041EC8 45020004 */ bc1fl .L7F041EDC +/* 0769FC 7F041ECC 44818000 */ mtc1 $at, $f16 +/* 076A00 7F041ED0 100000D1 */ b .L7F042218 +/* 076A04 7F041ED4 00001025 */ move $v0, $zero +/* 076A08 7F041ED8 44818000 */ mtc1 $at, $f16 +.L7F041EDC: +/* 076A0C 7F041EDC C7A40098 */ lwc1 $f4, 0x98($sp) +/* 076A10 7F041EE0 C7AA009C */ lwc1 $f10, 0x9c($sp) +/* 076A14 7F041EE4 46148003 */ div.s $f0, $f16, $f20 +/* 076A18 7F041EE8 C7B200A0 */ lwc1 $f18, 0xa0($sp) +/* 076A1C 7F041EEC 46002202 */ mul.s $f8, $f4, $f0 +/* 076A20 7F041EF0 00000000 */ nop +/* 076A24 7F041EF4 46005182 */ mul.s $f6, $f10, $f0 +/* 076A28 7F041EF8 00000000 */ nop +/* 076A2C 7F041EFC 46009402 */ mul.s $f16, $f18, $f0 +/* 076A30 7F041F00 E7A80098 */ swc1 $f8, 0x98($sp) +/* 076A34 7F041F04 E7A6009C */ swc1 $f6, 0x9c($sp) +/* 076A38 7F041F08 E7B000A0 */ swc1 $f16, 0xa0($sp) +/* 076A3C 7F041F0C C6840000 */ lwc1 $f4, ($s4) +/* 076A40 7F041F10 E7A40088 */ swc1 $f4, 0x88($sp) +/* 076A44 7F041F14 C6880004 */ lwc1 $f8, 4($s4) +/* 076A48 7F041F18 E7A8008C */ swc1 $f8, 0x8c($sp) +/* 076A4C 7F041F1C C68A0008 */ lwc1 $f10, 8($s4) +/* 076A50 7F041F20 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 076A54 7F041F24 E7AA0090 */ swc1 $f10, 0x90($sp) +/* 076A58 7F041F28 00402025 */ move $a0, $v0 +/* 076A5C 7F041F2C 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 076A60 7F041F30 27A50088 */ addiu $a1, $sp, 0x88 +/* 076A64 7F041F34 C7A60098 */ lwc1 $f6, 0x98($sp) +/* 076A68 7F041F38 C7B2009C */ lwc1 $f18, 0x9c($sp) +/* 076A6C 7F041F3C C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 076A70 7F041F40 E7A6007C */ swc1 $f6, 0x7c($sp) +/* 076A74 7F041F44 E7B20080 */ swc1 $f18, 0x80($sp) +/* 076A78 7F041F48 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 076A7C 7F041F4C E7B00084 */ swc1 $f16, 0x84($sp) +/* 076A80 7F041F50 00402025 */ move $a0, $v0 +/* 076A84 7F041F54 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 076A88 7F041F58 27A5007C */ addiu $a1, $sp, 0x7c +/* 076A8C 7F041F5C 12400099 */ beqz $s2, .L7F0421C4 +/* 076A90 7F041F60 E7B400A8 */ swc1 $f20, 0xa8($sp) +/* 076A94 7F041F64 0FC0F8FF */ jal sub_GAME_7F03E3FC +/* 076A98 7F041F68 8FA400D0 */ lw $a0, 0xd0($sp) +/* 076A9C 7F041F6C 3C138007 */ lui $s3, %hi(ptr_list_object_lookup_indices) +/* 076AA0 7F041F70 8E739C30 */ lw $s3, %lo(ptr_list_object_lookup_indices)($s3) +/* 076AA4 7F041F74 27BE00A8 */ addiu $fp, $sp, 0xa8 +/* 076AA8 7F041F78 27B70098 */ addiu $s7, $sp, 0x98 +/* 076AAC 7F041F7C 86620000 */ lh $v0, ($s3) +/* 076AB0 7F041F80 8FB600CC */ lw $s6, 0xcc($sp) +/* 076AB4 7F041F84 8FB500C8 */ lw $s5, 0xc8($sp) +/* 076AB8 7F041F88 0440008E */ bltz $v0, .L7F0421C4 +/* 076ABC 7F041F8C 00027080 */ sll $t6, $v0, 2 +.L7F041F90: +/* 076AC0 7F041F90 01C27023 */ subu $t6, $t6, $v0 +/* 076AC4 7F041F94 000E7080 */ sll $t6, $t6, 2 +/* 076AC8 7F041F98 8FB800B8 */ lw $t8, 0xb8($sp) +/* 076ACC 7F041F9C 01C27021 */ addu $t6, $t6, $v0 +/* 076AD0 7F041FA0 3C0F8007 */ lui $t7, %hi(pos_data_entry) +/* 076AD4 7F041FA4 25EF9C38 */ addiu $t7, %lo(pos_data_entry) # addiu $t7, $t7, -0x63c8 +/* 076AD8 7F041FA8 000E7080 */ sll $t6, $t6, 2 +/* 076ADC 7F041FAC 01CF8021 */ addu $s0, $t6, $t7 +/* 076AE0 7F041FB0 52180081 */ beql $s0, $t8, .L7F0421B8 +/* 076AE4 7F041FB4 86620002 */ lh $v0, 2($s3) +/* 076AE8 7F041FB8 92020000 */ lbu $v0, ($s0) +/* 076AEC 7F041FBC 24010001 */ li $at, 1 +/* 076AF0 7F041FC0 10410005 */ beq $v0, $at, .L7F041FD8 +/* 076AF4 7F041FC4 24010004 */ li $at, 4 +/* 076AF8 7F041FC8 10410003 */ beq $v0, $at, .L7F041FD8 +/* 076AFC 7F041FCC 24010002 */ li $at, 2 +/* 076B00 7F041FD0 54410030 */ bnel $v0, $at, .L7F042094 +/* 076B04 7F041FD4 24010003 */ li $at, 3 +.L7F041FD8: +/* 076B08 7F041FD8 8E110004 */ lw $s1, 4($s0) +/* 076B0C 7F041FDC 8E390064 */ lw $t9, 0x64($s1) +/* 076B10 7F041FE0 33280008 */ andi $t0, $t9, 8 +/* 076B14 7F041FE4 55000074 */ bnezl $t0, .L7F0421B8 +/* 076B18 7F041FE8 86620002 */ lh $v0, 2($s3) +/* 076B1C 7F041FEC 8E29000C */ lw $t1, 0xc($s1) +/* 076B20 7F041FF0 24010002 */ li $at, 2 +/* 076B24 7F041FF4 00095180 */ sll $t2, $t1, 6 +/* 076B28 7F041FF8 0542006F */ bltzl $t2, .L7F0421B8 +/* 076B2C 7F041FFC 86620002 */ lh $v0, 2($s3) +/* 076B30 7F042000 1441000B */ bne $v0, $at, .L7F042030 +/* 076B34 7F042004 324D0001 */ andi $t5, $s2, 1 +/* 076B38 7F042008 324B0002 */ andi $t3, $s2, 2 +/* 076B3C 7F04200C 5560000B */ bnezl $t3, .L7F04203C +/* 076B40 7F042010 8FAE0074 */ lw $t6, 0x74($sp) +/* 076B44 7F042014 0FC0F67B */ jal sub_GAME_7F03D9EC +/* 076B48 7F042018 02002025 */ move $a0, $s0 +/* 076B4C 7F04201C 00526024 */ and $t4, $v0, $s2 +/* 076B50 7F042020 55800006 */ bnezl $t4, .L7F04203C +/* 076B54 7F042024 8FAE0074 */ lw $t6, 0x74($sp) +/* 076B58 7F042028 10000063 */ b .L7F0421B8 +/* 076B5C 7F04202C 86620002 */ lh $v0, 2($s3) +.L7F042030: +/* 076B60 7F042030 51A00061 */ beql $t5, $zero, .L7F0421B8 +/* 076B64 7F042034 86620002 */ lh $v0, 2($s3) +/* 076B68 7F042038 8FAE0074 */ lw $t6, 0x74($sp) +.L7F04203C: +/* 076B6C 7F04203C 02202025 */ move $a0, $s1 +/* 076B70 7F042040 02802825 */ move $a1, $s4 +/* 076B74 7F042044 160E0004 */ bne $s0, $t6, .L7F042058 +/* 076B78 7F042048 8FA600C0 */ lw $a2, 0xc0($sp) +/* 076B7C 7F04204C 922F0002 */ lbu $t7, 2($s1) +/* 076B80 7F042050 31F80020 */ andi $t8, $t7, 0x20 +/* 076B84 7F042054 17000057 */ bnez $t8, .L7F0421B4 +.L7F042058: +/* 076B88 7F042058 27B90088 */ addiu $t9, $sp, 0x88 +/* 076B8C 7F04205C 27A8007C */ addiu $t0, $sp, 0x7c +/* 076B90 7F042060 AFA80018 */ sw $t0, 0x18($sp) +/* 076B94 7F042064 AFB90014 */ sw $t9, 0x14($sp) +/* 076B98 7F042068 02E03825 */ move $a3, $s7 +/* 076B9C 7F04206C E7B40010 */ swc1 $f20, 0x10($sp) +/* 076BA0 7F042070 AFB5001C */ sw $s5, 0x1c($sp) +/* 076BA4 7F042074 AFB60020 */ sw $s6, 0x20($sp) +/* 076BA8 7F042078 0FC10679 */ jal sub_GAME_7F0419E4 +/* 076BAC 7F04207C AFBE0024 */ sw $fp, 0x24($sp) +/* 076BB0 7F042080 1040004C */ beqz $v0, .L7F0421B4 +/* 076BB4 7F042084 24090001 */ li $t1, 1 +/* 076BB8 7F042088 1000004A */ b .L7F0421B4 +/* 076BBC 7F04208C AFA900A4 */ sw $t1, 0xa4($sp) +/* 076BC0 7F042090 24010003 */ li $at, 3 +.L7F042094: +/* 076BC4 7F042094 10410005 */ beq $v0, $at, .L7F0420AC +/* 076BC8 7F042098 24010006 */ li $at, 6 +/* 076BCC 7F04209C 5441002F */ bnel $v0, $at, .L7F04215C +/* 076BD0 7F0420A0 24010006 */ li $at, 6 +/* 076BD4 7F0420A4 8E0A0004 */ lw $t2, 4($s0) +/* 076BD8 7F0420A8 1140002B */ beqz $t2, .L7F042158 +.L7F0420AC: +/* 076BDC 7F0420AC 24010006 */ li $at, 6 +/* 076BE0 7F0420B0 1441000F */ bne $v0, $at, .L7F0420F0 +/* 076BE4 7F0420B4 8E110004 */ lw $s1, 4($s0) +/* 076BE8 7F0420B8 0FC26C57 */ jal sub_GAME_7F09B15C +/* 076BEC 7F0420BC 02002025 */ move $a0, $s0 +/* 076BF0 7F0420C0 00025880 */ sll $t3, $v0, 2 +/* 076BF4 7F0420C4 3C0C8008 */ lui $t4, %hi(ptr_BONDdata_p1) +/* 076BF8 7F0420C8 018B6021 */ addu $t4, $t4, $t3 +/* 076BFC 7F0420CC 8D8C9EE0 */ lw $t4, %lo(ptr_BONDdata_p1)($t4) +/* 076C00 7F0420D0 324E0004 */ andi $t6, $s2, 4 +/* 076C04 7F0420D4 8D8D00AC */ lw $t5, 0xac($t4) +/* 076C08 7F0420D8 51A00037 */ beql $t5, $zero, .L7F0421B8 +/* 076C0C 7F0420DC 86620002 */ lh $v0, 2($s3) +/* 076C10 7F0420E0 55C0000E */ bnezl $t6, .L7F04211C +/* 076C14 7F0420E4 4407A000 */ mfc1 $a3, $f20 +/* 076C18 7F0420E8 10000033 */ b .L7F0421B8 +/* 076C1C 7F0420EC 86620002 */ lh $v0, 2($s3) +.L7F0420F0: +/* 076C20 7F0420F0 24010003 */ li $at, 3 +/* 076C24 7F0420F4 54410009 */ bnel $v0, $at, .L7F04211C +/* 076C28 7F0420F8 4407A000 */ mfc1 $a3, $f20 +/* 076C2C 7F0420FC 962F0012 */ lhu $t7, 0x12($s1) +/* 076C30 7F042100 32590008 */ andi $t9, $s2, 8 +/* 076C34 7F042104 31F80100 */ andi $t8, $t7, 0x100 +/* 076C38 7F042108 5700002B */ bnezl $t8, .L7F0421B8 +/* 076C3C 7F04210C 86620002 */ lh $v0, 2($s3) +/* 076C40 7F042110 53200029 */ beql $t9, $zero, .L7F0421B8 +/* 076C44 7F042114 86620002 */ lh $v0, 2($s3) +/* 076C48 7F042118 4407A000 */ mfc1 $a3, $f20 +.L7F04211C: +/* 076C4C 7F04211C 27A80088 */ addiu $t0, $sp, 0x88 +/* 076C50 7F042120 27A9007C */ addiu $t1, $sp, 0x7c +/* 076C54 7F042124 AFA90014 */ sw $t1, 0x14($sp) +/* 076C58 7F042128 AFA80010 */ sw $t0, 0x10($sp) +/* 076C5C 7F04212C 02202025 */ move $a0, $s1 +/* 076C60 7F042130 02802825 */ move $a1, $s4 +/* 076C64 7F042134 02E03025 */ move $a2, $s7 +/* 076C68 7F042138 AFB50018 */ sw $s5, 0x18($sp) +/* 076C6C 7F04213C AFB6001C */ sw $s6, 0x1c($sp) +/* 076C70 7F042140 0FC106EE */ jal sub_GAME_7F041BB8 +/* 076C74 7F042144 AFBE0020 */ sw $fp, 0x20($sp) +/* 076C78 7F042148 1040001A */ beqz $v0, .L7F0421B4 +/* 076C7C 7F04214C 240A0001 */ li $t2, 1 +/* 076C80 7F042150 10000018 */ b .L7F0421B4 +/* 076C84 7F042154 AFAA00A4 */ sw $t2, 0xa4($sp) +.L7F042158: +/* 076C88 7F042158 24010006 */ li $at, 6 +.L7F04215C: +/* 076C8C 7F04215C 54410016 */ bnel $v0, $at, .L7F0421B8 +/* 076C90 7F042160 86620002 */ lh $v0, 2($s3) +/* 076C94 7F042164 0FC26C57 */ jal sub_GAME_7F09B15C +/* 076C98 7F042168 02002025 */ move $a0, $s0 +/* 076C9C 7F04216C 00025880 */ sll $t3, $v0, 2 +/* 076CA0 7F042170 3C0C8008 */ lui $t4, %hi(ptr_BONDdata_p1) +/* 076CA4 7F042174 018B6021 */ addu $t4, $t4, $t3 +/* 076CA8 7F042178 8D8C9EE0 */ lw $t4, %lo(ptr_BONDdata_p1)($t4) +/* 076CAC 7F04217C 02002025 */ move $a0, $s0 +/* 076CB0 7F042180 02802825 */ move $a1, $s4 +/* 076CB4 7F042184 8D8D00AC */ lw $t5, 0xac($t4) +/* 076CB8 7F042188 8FA600C0 */ lw $a2, 0xc0($sp) +/* 076CBC 7F04218C 02E03825 */ move $a3, $s7 +/* 076CC0 7F042190 51A00009 */ beql $t5, $zero, .L7F0421B8 +/* 076CC4 7F042194 86620002 */ lh $v0, 2($s3) +/* 076CC8 7F042198 AFB50010 */ sw $s5, 0x10($sp) +/* 076CCC 7F04219C AFB60014 */ sw $s6, 0x14($sp) +/* 076CD0 7F0421A0 0FC10500 */ jal sub_GAME_7F041400 +/* 076CD4 7F0421A4 AFBE0018 */ sw $fp, 0x18($sp) +/* 076CD8 7F0421A8 10400002 */ beqz $v0, .L7F0421B4 +/* 076CDC 7F0421AC 240E0001 */ li $t6, 1 +/* 076CE0 7F0421B0 AFAE00A4 */ sw $t6, 0xa4($sp) +.L7F0421B4: +/* 076CE4 7F0421B4 86620002 */ lh $v0, 2($s3) +.L7F0421B8: +/* 076CE8 7F0421B8 26730002 */ addiu $s3, $s3, 2 +/* 076CEC 7F0421BC 0443FF74 */ bgezl $v0, .L7F041F90 +/* 076CF0 7F0421C0 00027080 */ sll $t6, $v0, 2 +.L7F0421C4: +/* 076CF4 7F0421C4 8FAF00A4 */ lw $t7, 0xa4($sp) +/* 076CF8 7F0421C8 3C028007 */ lui $v0, %hi(flt_CODE_bss_80075B78) +/* 076CFC 7F0421CC 24425B78 */ addiu $v0, %lo(flt_CODE_bss_80075B78) # addiu $v0, $v0, 0x5b78 +/* 076D00 7F0421D0 11E00010 */ beqz $t7, .L7F042214 +/* 076D04 7F0421D4 3C038007 */ lui $v1, %hi(flt_CODE_bss_80075B88) +/* 076D08 7F0421D8 C7A40098 */ lwc1 $f4, 0x98($sp) +/* 076D0C 7F0421DC C7A8009C */ lwc1 $f8, 0x9c($sp) +/* 076D10 7F0421E0 C7AA00A0 */ lwc1 $f10, 0xa0($sp) +/* 076D14 7F0421E4 C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 076D18 7F0421E8 C7B20080 */ lwc1 $f18, 0x80($sp) +/* 076D1C 7F0421EC C7B00084 */ lwc1 $f16, 0x84($sp) +/* 076D20 7F0421F0 24635B88 */ addiu $v1, %lo(flt_CODE_bss_80075B88) # addiu $v1, $v1, 0x5b88 +/* 076D24 7F0421F4 24180001 */ li $t8, 1 +/* 076D28 7F0421F8 AFB800B4 */ sw $t8, 0xb4($sp) +/* 076D2C 7F0421FC E4440000 */ swc1 $f4, ($v0) +/* 076D30 7F042200 E4480004 */ swc1 $f8, 4($v0) +/* 076D34 7F042204 E44A0008 */ swc1 $f10, 8($v0) +/* 076D38 7F042208 E4660000 */ swc1 $f6, ($v1) +/* 076D3C 7F04220C E4720004 */ swc1 $f18, 4($v1) +/* 076D40 7F042210 E4700008 */ swc1 $f16, 8($v1) +.L7F042214: +/* 076D44 7F042214 8FA200B4 */ lw $v0, 0xb4($sp) +.L7F042218: +/* 076D48 7F042218 8FBF005C */ lw $ra, 0x5c($sp) +/* 076D4C 7F04221C D7B40030 */ ldc1 $f20, 0x30($sp) +/* 076D50 7F042220 8FB00038 */ lw $s0, 0x38($sp) +/* 076D54 7F042224 8FB1003C */ lw $s1, 0x3c($sp) +/* 076D58 7F042228 8FB20040 */ lw $s2, 0x40($sp) +/* 076D5C 7F04222C 8FB30044 */ lw $s3, 0x44($sp) +/* 076D60 7F042230 8FB40048 */ lw $s4, 0x48($sp) +/* 076D64 7F042234 8FB5004C */ lw $s5, 0x4c($sp) +/* 076D68 7F042238 8FB60050 */ lw $s6, 0x50($sp) +/* 076D6C 7F04223C 8FB70054 */ lw $s7, 0x54($sp) +/* 076D70 7F042240 8FBE0058 */ lw $fp, 0x58($sp) +/* 076D74 7F042244 03E00008 */ jr $ra +/* 076D78 7F042248 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void handles_projectile_motion(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052A58 +.word 0x3dcccccd /*0.1*/ +.text +glabel handles_projectile_motion +/* 076D7C 7F04224C 27BDFD50 */ addiu $sp, $sp, -0x2b0 +/* 076D80 7F042250 AFBF003C */ sw $ra, 0x3c($sp) +/* 076D84 7F042254 AFB30038 */ sw $s3, 0x38($sp) +/* 076D88 7F042258 AFB20034 */ sw $s2, 0x34($sp) +/* 076D8C 7F04225C AFB10030 */ sw $s1, 0x30($sp) +/* 076D90 7F042260 AFB0002C */ sw $s0, 0x2c($sp) +/* 076D94 7F042264 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 076D98 7F042268 8C820010 */ lw $v0, 0x10($a0) +/* 076D9C 7F04226C 240F0001 */ li $t7, 1 +/* 076DA0 7F042270 3C018003 */ lui $at, %hi(D_80030B0C) +/* 076DA4 7F042274 8C4E0014 */ lw $t6, 0x14($v0) +/* 076DA8 7F042278 AFAF02A4 */ sw $t7, 0x2a4($sp) +/* 076DAC 7F04227C AC200B0C */ sw $zero, %lo(D_80030B0C)($at) +/* 076DB0 7F042280 AFAE02A8 */ sw $t6, 0x2a8($sp) +/* 076DB4 7F042284 C4840058 */ lwc1 $f4, 0x58($a0) +/* 076DB8 7F042288 C4A00000 */ lwc1 $f0, ($a1) +/* 076DBC 7F04228C 00E08025 */ move $s0, $a3 +/* 076DC0 7F042290 00A08825 */ move $s1, $a1 +/* 076DC4 7F042294 46040032 */ c.eq.s $f0, $f4 +/* 076DC8 7F042298 00809025 */ move $s2, $a0 +/* 076DCC 7F04229C 00C09825 */ move $s3, $a2 +/* 076DD0 7F0422A0 4502000E */ bc1fl .L7F0422DC +/* 076DD4 7F0422A4 E7A00268 */ swc1 $f0, 0x268($sp) +/* 076DD8 7F0422A8 C4A60004 */ lwc1 $f6, 4($a1) +/* 076DDC 7F0422AC C488005C */ lwc1 $f8, 0x5c($a0) +/* 076DE0 7F0422B0 46083032 */ c.eq.s $f6, $f8 +/* 076DE4 7F0422B4 00000000 */ nop +/* 076DE8 7F0422B8 45020008 */ bc1fl .L7F0422DC +/* 076DEC 7F0422BC E7A00268 */ swc1 $f0, 0x268($sp) +/* 076DF0 7F0422C0 C4AA0008 */ lwc1 $f10, 8($a1) +/* 076DF4 7F0422C4 C4900060 */ lwc1 $f16, 0x60($a0) +/* 076DF8 7F0422C8 46105032 */ c.eq.s $f10, $f16 +/* 076DFC 7F0422CC 00000000 */ nop +/* 076E00 7F0422D0 450301C6 */ bc1tl .L7F0429EC +/* 076E04 7F0422D4 8FBF003C */ lw $ra, 0x3c($sp) +/* 076E08 7F0422D8 E7A00268 */ swc1 $f0, 0x268($sp) +.L7F0422DC: +/* 076E0C 7F0422DC C6320004 */ lwc1 $f18, 4($s1) +/* 076E10 7F0422E0 E7B2026C */ swc1 $f18, 0x26c($sp) +/* 076E14 7F0422E4 C6240008 */ lwc1 $f4, 8($s1) +/* 076E18 7F0422E8 E7A40270 */ swc1 $f4, 0x270($sp) +/* 076E1C 7F0422EC 8E580064 */ lw $t8, 0x64($s2) +/* 076E20 7F0422F0 33190080 */ andi $t9, $t8, 0x80 +/* 076E24 7F0422F4 532001BD */ beql $t9, $zero, .L7F0429EC +/* 076E28 7F0422F8 8FBF003C */ lw $ra, 0x3c($sp) +/* 076E2C 7F0422FC 8E49006C */ lw $t1, 0x6c($s2) +/* 076E30 7F042300 26440058 */ addiu $a0, $s2, 0x58 +/* 076E34 7F042304 27A50268 */ addiu $a1, $sp, 0x268 +/* 076E38 7F042308 8D2A0000 */ lw $t2, ($t1) +/* 076E3C 7F04230C 27A70074 */ addiu $a3, $sp, 0x74 +/* 076E40 7F042310 27AC007C */ addiu $t4, $sp, 0x7c +/* 076E44 7F042314 314B0004 */ andi $t3, $t2, 4 +/* 076E48 7F042318 116001B3 */ beqz $t3, .L7F0429E8 +/* 076E4C 7F04231C 27AD0260 */ addiu $t5, $sp, 0x260 +/* 076E50 7F042320 AFA00260 */ sw $zero, 0x260($sp) +/* 076E54 7F042324 8E46006C */ lw $a2, 0x6c($s2) +/* 076E58 7F042328 240E0014 */ li $t6, 20 +/* 076E5C 7F04232C AFAE0018 */ sw $t6, 0x18($sp) +/* 076E60 7F042330 AFB102B4 */ sw $s1, 0x2b4($sp) +/* 076E64 7F042334 AFA40048 */ sw $a0, 0x48($sp) +/* 076E68 7F042338 AFA202AC */ sw $v0, 0x2ac($sp) +/* 076E6C 7F04233C AFAD0014 */ sw $t5, 0x14($sp) +/* 076E70 7F042340 AFAC0010 */ sw $t4, 0x10($sp) +/* 076E74 7F042344 0FC2D2AD */ jal sub_GAME_7F0B4AB4 +/* 076E78 7F042348 24C600CC */ addiu $a2, $a2, 0xcc +/* 076E7C 7F04234C 8FA30260 */ lw $v1, 0x260($sp) +/* 076E80 7F042350 27B8007C */ addiu $t8, $sp, 0x7c +/* 076E84 7F042354 24050064 */ li $a1, 100 +/* 076E88 7F042358 28610015 */ slti $at, $v1, 0x15 +/* 076E8C 7F04235C 54200003 */ bnezl $at, .L7F04236C +/* 076E90 7F042360 00037880 */ sll $t7, $v1, 2 +/* 076E94 7F042364 24030014 */ li $v1, 20 +/* 076E98 7F042368 00037880 */ sll $t7, $v1, 2 +.L7F04236C: +/* 076E9C 7F04236C 01F82021 */ addu $a0, $t7, $t8 +/* 076EA0 7F042370 0FC2E3A6 */ jal sub_GAME_7F0B8E98 +/* 076EA4 7F042374 AFA30260 */ sw $v1, 0x260($sp) +/* 076EA8 7F042378 8FA30260 */ lw $v1, 0x260($sp) +/* 076EAC 7F04237C 2419FFFF */ li $t9, -1 +/* 076EB0 7F042380 27B1007C */ addiu $s1, $sp, 0x7c +/* 076EB4 7F042384 00621821 */ addu $v1, $v1, $v0 +/* 076EB8 7F042388 00034880 */ sll $t1, $v1, 2 +/* 076EBC 7F04238C 03A95021 */ addu $t2, $sp, $t1 +/* 076EC0 7F042390 AD59007C */ sw $t9, 0x7c($t2) +/* 076EC4 7F042394 8FAB007C */ lw $t3, 0x7c($sp) +/* 076EC8 7F042398 AFA30260 */ sw $v1, 0x260($sp) +/* 076ECC 7F04239C 0562009E */ bltzl $t3, .L7F042618 +/* 076ED0 7F0423A0 8FAD02A4 */ lw $t5, 0x2a4($sp) +/* 076ED4 7F0423A4 4480A000 */ mtc1 $zero, $f20 +/* 076ED8 7F0423A8 8E260000 */ lw $a2, ($s1) +/* 076EDC 7F0423AC 8FA40048 */ lw $a0, 0x48($sp) +.L7F0423B0: +/* 076EE0 7F0423B0 27A50268 */ addiu $a1, $sp, 0x268 +/* 076EE4 7F0423B4 0FC2DE9E */ jal sub_GAME_7F0B7A78 +/* 076EE8 7F0423B8 27A70274 */ addiu $a3, $sp, 0x274 +/* 076EEC 7F0423BC 50400092 */ beql $v0, $zero, .L7F042608 +/* 076EF0 7F0423C0 8E260004 */ lw $a2, 4($s1) +/* 076EF4 7F0423C4 0FC2D20C */ jal get_room_data_float2 +/* 076EF8 7F0423C8 00000000 */ nop +/* 076EFC 7F0423CC C7A60274 */ lwc1 $f6, 0x274($sp) +/* 076F00 7F0423D0 C7AA0278 */ lwc1 $f10, 0x278($sp) +/* 076F04 7F0423D4 C7B2027C */ lwc1 $f18, 0x27c($sp) +/* 076F08 7F0423D8 46003202 */ mul.s $f8, $f6, $f0 +/* 076F0C 7F0423DC C7A60268 */ lwc1 $f6, 0x268($sp) +/* 076F10 7F0423E0 46005402 */ mul.s $f16, $f10, $f0 +/* 076F14 7F0423E4 C7AA0268 */ lwc1 $f10, 0x268($sp) +/* 076F18 7F0423E8 46009102 */ mul.s $f4, $f18, $f0 +/* 076F1C 7F0423EC E7A80274 */ swc1 $f8, 0x274($sp) +/* 076F20 7F0423F0 E7B00278 */ swc1 $f16, 0x278($sp) +/* 076F24 7F0423F4 E7A4027C */ swc1 $f4, 0x27c($sp) +/* 076F28 7F0423F8 C64C0058 */ lwc1 $f12, 0x58($s2) +/* 076F2C 7F0423FC 4606603E */ c.le.s $f12, $f6 +/* 076F30 7F042400 00000000 */ nop +/* 076F34 7F042404 4502000A */ bc1fl .L7F042430 +/* 076F38 7F042408 460C503E */ c.le.s $f10, $f12 +/* 076F3C 7F04240C 4606403E */ c.le.s $f8, $f6 +/* 076F40 7F042410 00000000 */ nop +/* 076F44 7F042414 45020006 */ bc1fl .L7F042430 +/* 076F48 7F042418 460C503E */ c.le.s $f10, $f12 +/* 076F4C 7F04241C 4608603E */ c.le.s $f12, $f8 +/* 076F50 7F042420 00000000 */ nop +/* 076F54 7F042424 4503000E */ bc1tl .L7F042460 +/* 076F58 7F042428 C642005C */ lwc1 $f2, 0x5c($s2) +/* 076F5C 7F04242C 460C503E */ c.le.s $f10, $f12 +.L7F042430: +/* 076F60 7F042430 C7B00274 */ lwc1 $f16, 0x274($sp) +/* 076F64 7F042434 45020074 */ bc1fl .L7F042608 +/* 076F68 7F042438 8E260004 */ lw $a2, 4($s1) +/* 076F6C 7F04243C 4610503E */ c.le.s $f10, $f16 +/* 076F70 7F042440 00000000 */ nop +/* 076F74 7F042444 45020070 */ bc1fl .L7F042608 +/* 076F78 7F042448 8E260004 */ lw $a2, 4($s1) +/* 076F7C 7F04244C 460C803E */ c.le.s $f16, $f12 +/* 076F80 7F042450 00000000 */ nop +/* 076F84 7F042454 4502006C */ bc1fl .L7F042608 +/* 076F88 7F042458 8E260004 */ lw $a2, 4($s1) +/* 076F8C 7F04245C C642005C */ lwc1 $f2, 0x5c($s2) +.L7F042460: +/* 076F90 7F042460 C7B2026C */ lwc1 $f18, 0x26c($sp) +/* 076F94 7F042464 C7A40278 */ lwc1 $f4, 0x278($sp) +/* 076F98 7F042468 C7A6026C */ lwc1 $f6, 0x26c($sp) +/* 076F9C 7F04246C 4612103E */ c.le.s $f2, $f18 +/* 076FA0 7F042470 00000000 */ nop +/* 076FA4 7F042474 4502000A */ bc1fl .L7F0424A0 +/* 076FA8 7F042478 4602303E */ c.le.s $f6, $f2 +/* 076FAC 7F04247C 4612203E */ c.le.s $f4, $f18 +/* 076FB0 7F042480 00000000 */ nop +/* 076FB4 7F042484 45020006 */ bc1fl .L7F0424A0 +/* 076FB8 7F042488 4602303E */ c.le.s $f6, $f2 +/* 076FBC 7F04248C 4604103E */ c.le.s $f2, $f4 +/* 076FC0 7F042490 00000000 */ nop +/* 076FC4 7F042494 4503000E */ bc1tl .L7F0424D0 +/* 076FC8 7F042498 C6400060 */ lwc1 $f0, 0x60($s2) +/* 076FCC 7F04249C 4602303E */ c.le.s $f6, $f2 +.L7F0424A0: +/* 076FD0 7F0424A0 C7A80278 */ lwc1 $f8, 0x278($sp) +/* 076FD4 7F0424A4 45020058 */ bc1fl .L7F042608 +/* 076FD8 7F0424A8 8E260004 */ lw $a2, 4($s1) +/* 076FDC 7F0424AC 4608303E */ c.le.s $f6, $f8 +/* 076FE0 7F0424B0 00000000 */ nop +/* 076FE4 7F0424B4 45020054 */ bc1fl .L7F042608 +/* 076FE8 7F0424B8 8E260004 */ lw $a2, 4($s1) +/* 076FEC 7F0424BC 4602403E */ c.le.s $f8, $f2 +/* 076FF0 7F0424C0 00000000 */ nop +/* 076FF4 7F0424C4 45020050 */ bc1fl .L7F042608 +/* 076FF8 7F0424C8 8E260004 */ lw $a2, 4($s1) +/* 076FFC 7F0424CC C6400060 */ lwc1 $f0, 0x60($s2) +.L7F0424D0: +/* 077000 7F0424D0 C7AA0270 */ lwc1 $f10, 0x270($sp) +/* 077004 7F0424D4 C7B0027C */ lwc1 $f16, 0x27c($sp) +/* 077008 7F0424D8 C7B20270 */ lwc1 $f18, 0x270($sp) +/* 07700C 7F0424DC 460A003E */ c.le.s $f0, $f10 +/* 077010 7F0424E0 00000000 */ nop +/* 077014 7F0424E4 4502000A */ bc1fl .L7F042510 +/* 077018 7F0424E8 4600903E */ c.le.s $f18, $f0 +/* 07701C 7F0424EC 460A803E */ c.le.s $f16, $f10 +/* 077020 7F0424F0 00000000 */ nop +/* 077024 7F0424F4 45020006 */ bc1fl .L7F042510 +/* 077028 7F0424F8 4600903E */ c.le.s $f18, $f0 +/* 07702C 7F0424FC 4610003E */ c.le.s $f0, $f16 +/* 077030 7F042500 00000000 */ nop +/* 077034 7F042504 4503000E */ bc1tl .L7F042540 +/* 077038 7F042508 C7A60274 */ lwc1 $f6, 0x274($sp) +/* 07703C 7F04250C 4600903E */ c.le.s $f18, $f0 +.L7F042510: +/* 077040 7F042510 C7A4027C */ lwc1 $f4, 0x27c($sp) +/* 077044 7F042514 4502003C */ bc1fl .L7F042608 +/* 077048 7F042518 8E260004 */ lw $a2, 4($s1) +/* 07704C 7F04251C 4604903E */ c.le.s $f18, $f4 +/* 077050 7F042520 00000000 */ nop +/* 077054 7F042524 45020038 */ bc1fl .L7F042608 +/* 077058 7F042528 8E260004 */ lw $a2, 4($s1) +/* 07705C 7F04252C 4600203E */ c.le.s $f4, $f0 +/* 077060 7F042530 00000000 */ nop +/* 077064 7F042534 45020034 */ bc1fl .L7F042608 +/* 077068 7F042538 8E260004 */ lw $a2, 4($s1) +/* 07706C 7F04253C C7A60274 */ lwc1 $f6, 0x274($sp) +.L7F042540: +/* 077070 7F042540 C7A80278 */ lwc1 $f8, 0x278($sp) +/* 077074 7F042544 46066032 */ c.eq.s $f12, $f6 +/* 077078 7F042548 00000000 */ nop +/* 07707C 7F04254C 4502000A */ bc1fl .L7F042578 +/* 077080 7F042550 C7B00274 */ lwc1 $f16, 0x274($sp) +/* 077084 7F042554 46081032 */ c.eq.s $f2, $f8 +/* 077088 7F042558 C7AA027C */ lwc1 $f10, 0x27c($sp) +/* 07708C 7F04255C 45020006 */ bc1fl .L7F042578 +/* 077090 7F042560 C7B00274 */ lwc1 $f16, 0x274($sp) +/* 077094 7F042564 460A0032 */ c.eq.s $f0, $f10 +/* 077098 7F042568 00000000 */ nop +/* 07709C 7F04256C 45030026 */ bc1tl .L7F042608 +/* 0770A0 7F042570 8E260004 */ lw $a2, 4($s1) +/* 0770A4 7F042574 C7B00274 */ lwc1 $f16, 0x274($sp) +.L7F042578: +/* 0770A8 7F042578 AFA002A4 */ sw $zero, 0x2a4($sp) +/* 0770AC 7F04257C 02002025 */ move $a0, $s0 +/* 0770B0 7F042580 E6700000 */ swc1 $f16, ($s3) +/* 0770B4 7F042584 C7B20278 */ lwc1 $f18, 0x278($sp) +/* 0770B8 7F042588 26050004 */ addiu $a1, $s0, 4 +/* 0770BC 7F04258C E6720004 */ swc1 $f18, 4($s3) +/* 0770C0 7F042590 C7A4027C */ lwc1 $f4, 0x27c($sp) +/* 0770C4 7F042594 E6640008 */ swc1 $f4, 8($s3) +/* 0770C8 7F042598 C7A60280 */ lwc1 $f6, 0x280($sp) +/* 0770CC 7F04259C E6060000 */ swc1 $f6, ($s0) +/* 0770D0 7F0425A0 C6100000 */ lwc1 $f16, ($s0) +/* 0770D4 7F0425A4 C7A80284 */ lwc1 $f8, 0x284($sp) +/* 0770D8 7F0425A8 4610A032 */ c.eq.s $f20, $f16 +/* 0770DC 7F0425AC E6080004 */ swc1 $f8, 4($s0) +/* 0770E0 7F0425B0 C7AA0288 */ lwc1 $f10, 0x288($sp) +/* 0770E4 7F0425B4 4500000C */ bc1f .L7F0425E8 +/* 0770E8 7F0425B8 E60A0008 */ swc1 $f10, 8($s0) +/* 0770EC 7F0425BC C6120004 */ lwc1 $f18, 4($s0) +/* 0770F0 7F0425C0 4612A032 */ c.eq.s $f20, $f18 +/* 0770F4 7F0425C4 00000000 */ nop +/* 0770F8 7F0425C8 45000007 */ bc1f .L7F0425E8 +/* 0770FC 7F0425CC 00000000 */ nop +/* 077100 7F0425D0 C6040008 */ lwc1 $f4, 8($s0) +/* 077104 7F0425D4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 077108 7F0425D8 4604A032 */ c.eq.s $f20, $f4 +/* 07710C 7F0425DC 00000000 */ nop +/* 077110 7F0425E0 45030006 */ bc1tl .L7F0425FC +/* 077114 7F0425E4 44813000 */ mtc1 $at, $f6 +.L7F0425E8: +/* 077118 7F0425E8 0C007DD4 */ jal guNormalize +/* 07711C 7F0425EC 26060008 */ addiu $a2, $s0, 8 +/* 077120 7F0425F0 10000005 */ b .L7F042608 +/* 077124 7F0425F4 8E260004 */ lw $a2, 4($s1) +/* 077128 7F0425F8 44813000 */ mtc1 $at, $f6 +.L7F0425FC: +/* 07712C 7F0425FC 00000000 */ nop +/* 077130 7F042600 E6060008 */ swc1 $f6, 8($s0) +/* 077134 7F042604 8E260004 */ lw $a2, 4($s1) +.L7F042608: +/* 077138 7F042608 26310004 */ addiu $s1, $s1, 4 +/* 07713C 7F04260C 04C3FF68 */ bgezl $a2, .L7F0423B0 +/* 077140 7F042610 8FA40048 */ lw $a0, 0x48($sp) +/* 077144 7F042614 8FAD02A4 */ lw $t5, 0x2a4($sp) +.L7F042618: +/* 077148 7F042618 8FA202B4 */ lw $v0, 0x2b4($sp) +/* 07714C 7F04261C 55A00037 */ bnezl $t5, .L7F0426FC +/* 077150 7F042620 27AE007C */ addiu $t6, $sp, 0x7c +/* 077154 7F042624 C4480000 */ lwc1 $f8, ($v0) +/* 077158 7F042628 C64A0058 */ lwc1 $f10, 0x58($s2) +/* 07715C 7F04262C 460A4401 */ sub.s $f16, $f8, $f10 +/* 077160 7F042630 E7B00064 */ swc1 $f16, 0x64($sp) +/* 077164 7F042634 C644005C */ lwc1 $f4, 0x5c($s2) +/* 077168 7F042638 C4520004 */ lwc1 $f18, 4($v0) +/* 07716C 7F04263C 46049181 */ sub.s $f6, $f18, $f4 +/* 077170 7F042640 C7B20064 */ lwc1 $f18, 0x64($sp) +/* 077174 7F042644 E7A60068 */ swc1 $f6, 0x68($sp) +/* 077178 7F042648 C64A0060 */ lwc1 $f10, 0x60($s2) +/* 07717C 7F04264C C4480008 */ lwc1 $f8, 8($v0) +/* 077180 7F042650 46129102 */ mul.s $f4, $f18, $f18 +/* 077184 7F042654 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 077188 7F042658 460A4401 */ sub.s $f16, $f8, $f10 +/* 07718C 7F04265C 46063202 */ mul.s $f8, $f6, $f6 +/* 077190 7F042660 E7B0006C */ swc1 $f16, 0x6c($sp) +/* 077194 7F042664 C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 077198 7F042668 46108482 */ mul.s $f18, $f16, $f16 +/* 07719C 7F04266C 46082280 */ add.s $f10, $f4, $f8 +/* 0771A0 7F042670 0C007DF8 */ jal sqrtf +/* 0771A4 7F042674 460A9300 */ add.s $f12, $f18, $f10 +/* 0771A8 7F042678 3C018005 */ lui $at, %hi(D_80052A58) # -0.000000 +/* 0771AC 7F04267C C42C2A58 */ lwc1 $f12, %lo(D_80052A58)($at) +/* 0771B0 7F042680 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0771B4 7F042684 C7A40064 */ lwc1 $f4, 0x64($sp) +/* 0771B8 7F042688 4600603C */ c.lt.s $f12, $f0 +/* 0771BC 7F04268C 00000000 */ nop +/* 0771C0 7F042690 45020004 */ bc1fl .L7F0426A4 +/* 0771C4 7F042694 44811000 */ mtc1 $at, $f2 +/* 0771C8 7F042698 10000003 */ b .L7F0426A8 +/* 0771CC 7F04269C 46006083 */ div.s $f2, $f12, $f0 +/* 0771D0 7F0426A0 44811000 */ mtc1 $at, $f2 +.L7F0426A4: +/* 0771D4 7F0426A4 00000000 */ nop +.L7F0426A8: +/* 0771D8 7F0426A8 46041202 */ mul.s $f8, $f2, $f4 +/* 0771DC 7F0426AC C6660000 */ lwc1 $f6, ($s3) +/* 0771E0 7F0426B0 C6720004 */ lwc1 $f18, 4($s3) +/* 0771E4 7F0426B4 46083401 */ sub.s $f16, $f6, $f8 +/* 0771E8 7F0426B8 C6680008 */ lwc1 $f8, 8($s3) +/* 0771EC 7F0426BC E6700000 */ swc1 $f16, ($s3) +/* 0771F0 7F0426C0 C7AA0068 */ lwc1 $f10, 0x68($sp) +/* 0771F4 7F0426C4 460A1102 */ mul.s $f4, $f2, $f10 +/* 0771F8 7F0426C8 46049181 */ sub.s $f6, $f18, $f4 +/* 0771FC 7F0426CC C6640000 */ lwc1 $f4, ($s3) +/* 077200 7F0426D0 E6660004 */ swc1 $f6, 4($s3) +/* 077204 7F0426D4 C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 077208 7F0426D8 46101282 */ mul.s $f10, $f2, $f16 +/* 07720C 7F0426DC 460A4481 */ sub.s $f18, $f8, $f10 +/* 077210 7F0426E0 E6720008 */ swc1 $f18, 8($s3) +/* 077214 7F0426E4 E7A40268 */ swc1 $f4, 0x268($sp) +/* 077218 7F0426E8 C6660004 */ lwc1 $f6, 4($s3) +/* 07721C 7F0426EC E7A6026C */ swc1 $f6, 0x26c($sp) +/* 077220 7F0426F0 C6700008 */ lwc1 $f16, 8($s3) +/* 077224 7F0426F4 E7B00270 */ swc1 $f16, 0x270($sp) +/* 077228 7F0426F8 27AE007C */ addiu $t6, $sp, 0x7c +.L7F0426FC: +/* 07722C 7F0426FC AFAE0018 */ sw $t6, 0x18($sp) +/* 077230 7F042700 8FA402AC */ lw $a0, 0x2ac($sp) +/* 077234 7F042704 8FA50048 */ lw $a1, 0x48($sp) +/* 077238 7F042708 27A60268 */ addiu $a2, $sp, 0x268 +/* 07723C 7F04270C 2407001F */ li $a3, 31 +/* 077240 7F042710 AFB30010 */ sw $s3, 0x10($sp) +/* 077244 7F042714 0FC10783 */ jal sub_GAME_7F041E0C +/* 077248 7F042718 AFB00014 */ sw $s0, 0x14($sp) +/* 07724C 7F04271C 14400036 */ bnez $v0, .L7F0427F8 +/* 077250 7F042720 8FAB02C4 */ lw $t3, 0x2c4($sp) +/* 077254 7F042724 8FAF02A4 */ lw $t7, 0x2a4($sp) +/* 077258 7F042728 8FB802C0 */ lw $t8, 0x2c0($sp) +/* 07725C 7F04272C 8FAD02A4 */ lw $t5, 0x2a4($sp) +/* 077260 7F042730 55E00016 */ bnezl $t7, .L7F04278C +/* 077264 7F042734 24100001 */ li $s0, 1 +/* 077268 7F042738 53000014 */ beql $t8, $zero, .L7F04278C +/* 07726C 7F04273C 24100001 */ li $s0, 1 +/* 077270 7F042740 8FA902C4 */ lw $t1, 0x2c4($sp) +/* 077274 7F042744 24190002 */ li $t9, 2 +/* 077278 7F042748 AFB902A4 */ sw $t9, 0x2a4($sp) +/* 07727C 7F04274C 1520000C */ bnez $t1, .L7F042780 +/* 077280 7F042750 8FA40048 */ lw $a0, 0x48($sp) +/* 077284 7F042754 8E46006C */ lw $a2, 0x6c($s2) +/* 077288 7F042758 27AA007C */ addiu $t2, $sp, 0x7c +/* 07728C 7F04275C 27AB0260 */ addiu $t3, $sp, 0x260 +/* 077290 7F042760 240C0014 */ li $t4, 20 +/* 077294 7F042764 AFAC0018 */ sw $t4, 0x18($sp) +/* 077298 7F042768 AFAB0014 */ sw $t3, 0x14($sp) +/* 07729C 7F04276C AFAA0010 */ sw $t2, 0x10($sp) +/* 0772A0 7F042770 02602825 */ move $a1, $s3 +/* 0772A4 7F042774 27A70074 */ addiu $a3, $sp, 0x74 +/* 0772A8 7F042778 0FC2D2AD */ jal sub_GAME_7F0B4AB4 +/* 0772AC 7F04277C 24C600CC */ addiu $a2, $a2, 0xcc +.L7F042780: +/* 0772B0 7F042780 1000003A */ b .L7F04286C +/* 0772B4 7F042784 8FA902A4 */ lw $t1, 0x2a4($sp) +/* 0772B8 7F042788 24100001 */ li $s0, 1 +.L7F04278C: +/* 0772BC 7F04278C 11B00003 */ beq $t5, $s0, .L7F04279C +/* 0772C0 7F042790 8FAE02C4 */ lw $t6, 0x2c4($sp) +/* 0772C4 7F042794 55C00035 */ bnezl $t6, .L7F04286C +/* 0772C8 7F042798 8FA902A4 */ lw $t1, 0x2a4($sp) +.L7F04279C: +/* 0772CC 7F04279C 8FAF02A4 */ lw $t7, 0x2a4($sp) +/* 0772D0 7F0427A0 8FA40048 */ lw $a0, 0x48($sp) +/* 0772D4 7F0427A4 27A50268 */ addiu $a1, $sp, 0x268 +/* 0772D8 7F0427A8 11F0000A */ beq $t7, $s0, .L7F0427D4 +/* 0772DC 7F0427AC 27A70074 */ addiu $a3, $sp, 0x74 +/* 0772E0 7F0427B0 8E46006C */ lw $a2, 0x6c($s2) +/* 0772E4 7F0427B4 27B8007C */ addiu $t8, $sp, 0x7c +/* 0772E8 7F0427B8 27B90260 */ addiu $t9, $sp, 0x260 +/* 0772EC 7F0427BC 24090014 */ li $t1, 20 +/* 0772F0 7F0427C0 AFA90018 */ sw $t1, 0x18($sp) +/* 0772F4 7F0427C4 AFB90014 */ sw $t9, 0x14($sp) +/* 0772F8 7F0427C8 AFB80010 */ sw $t8, 0x10($sp) +/* 0772FC 7F0427CC 0FC2D2AD */ jal sub_GAME_7F0B4AB4 +/* 077300 7F0427D0 24C600CC */ addiu $a2, $a2, 0xcc +.L7F0427D4: +/* 077304 7F0427D4 C7A80268 */ lwc1 $f8, 0x268($sp) +/* 077308 7F0427D8 E6480058 */ swc1 $f8, 0x58($s2) +/* 07730C 7F0427DC C7AA0270 */ lwc1 $f10, 0x270($sp) +/* 077310 7F0427E0 E64A0060 */ swc1 $f10, 0x60($s2) +/* 077314 7F0427E4 8FAA02AC */ lw $t2, 0x2ac($sp) +/* 077318 7F0427E8 C7A0026C */ lwc1 $f0, 0x26c($sp) +/* 07731C 7F0427EC E540000C */ swc1 $f0, 0xc($t2) +/* 077320 7F0427F0 1000001D */ b .L7F042868 +/* 077324 7F0427F4 E640005C */ swc1 $f0, 0x5c($s2) +.L7F0427F8: +/* 077328 7F0427F8 1560001B */ bnez $t3, .L7F042868 +/* 07732C 7F0427FC 27A50268 */ addiu $a1, $sp, 0x268 +/* 077330 7F042800 C6520058 */ lwc1 $f18, 0x58($s2) +/* 077334 7F042804 27AC007C */ addiu $t4, $sp, 0x7c +/* 077338 7F042808 27AD0260 */ addiu $t5, $sp, 0x260 +/* 07733C 7F04280C E7B20268 */ swc1 $f18, 0x268($sp) +/* 077340 7F042810 C6440060 */ lwc1 $f4, 0x60($s2) +/* 077344 7F042814 240E0014 */ li $t6, 20 +/* 077348 7F042818 8FA40048 */ lw $a0, 0x48($sp) +/* 07734C 7F04281C E7A40270 */ swc1 $f4, 0x270($sp) +/* 077350 7F042820 8E46006C */ lw $a2, 0x6c($s2) +/* 077354 7F042824 AFAE0018 */ sw $t6, 0x18($sp) +/* 077358 7F042828 AFAD0014 */ sw $t5, 0x14($sp) +/* 07735C 7F04282C AFAC0010 */ sw $t4, 0x10($sp) +/* 077360 7F042830 27A70074 */ addiu $a3, $sp, 0x74 +/* 077364 7F042834 0FC2D2AD */ jal sub_GAME_7F0B4AB4 +/* 077368 7F042838 24C600CC */ addiu $a2, $a2, 0xcc +/* 07736C 7F04283C C7A0026C */ lwc1 $f0, 0x26c($sp) +/* 077370 7F042840 8FAF02AC */ lw $t7, 0x2ac($sp) +/* 077374 7F042844 24190002 */ li $t9, 2 +/* 077378 7F042848 E5E0000C */ swc1 $f0, 0xc($t7) +/* 07737C 7F04284C E640005C */ swc1 $f0, 0x5c($s2) +/* 077380 7F042850 8FB802C0 */ lw $t8, 0x2c0($sp) +/* 077384 7F042854 53000004 */ beql $t8, $zero, .L7F042868 +/* 077388 7F042858 AFA002A4 */ sw $zero, 0x2a4($sp) +/* 07738C 7F04285C 10000002 */ b .L7F042868 +/* 077390 7F042860 AFB902A4 */ sw $t9, 0x2a4($sp) +/* 077394 7F042864 AFA002A4 */ sw $zero, 0x2a4($sp) +.L7F042868: +/* 077398 7F042868 8FA902A4 */ lw $t1, 0x2a4($sp) +.L7F04286C: +/* 07739C 7F04286C 24100001 */ li $s0, 1 +/* 0773A0 7F042870 8FAA02C4 */ lw $t2, 0x2c4($sp) +/* 0773A4 7F042874 51300004 */ beql $t1, $s0, .L7F042888 +/* 0773A8 7F042878 8E4B006C */ lw $t3, 0x6c($s2) +/* 0773AC 7F04287C 5540005B */ bnezl $t2, .L7F0429EC +/* 0773B0 7F042880 8FBF003C */ lw $ra, 0x3c($sp) +/* 0773B4 7F042884 8E4B006C */ lw $t3, 0x6c($s2) +.L7F042888: +/* 0773B8 7F042888 00004025 */ move $t0, $zero +/* 0773BC 7F04288C 8D620000 */ lw $v0, ($t3) +/* 0773C0 7F042890 304C0008 */ andi $t4, $v0, 8 +/* 0773C4 7F042894 15800028 */ bnez $t4, .L7F042938 +/* 0773C8 7F042898 01801025 */ move $v0, $t4 +/* 0773CC 7F04289C 8FA202AC */ lw $v0, 0x2ac($sp) +/* 0773D0 7F0428A0 27A402A8 */ addiu $a0, $sp, 0x2a8 +/* 0773D4 7F0428A4 8C4D0014 */ lw $t5, 0x14($v0) +/* 0773D8 7F0428A8 AFAD02A8 */ sw $t5, 0x2a8($sp) +/* 0773DC 7F0428AC C6460060 */ lwc1 $f6, 0x60($s2) +/* 0773E0 7F0428B0 8E470058 */ lw $a3, 0x58($s2) +/* 0773E4 7F0428B4 8C460010 */ lw $a2, 0x10($v0) +/* 0773E8 7F0428B8 8C450008 */ lw $a1, 8($v0) +/* 0773EC 7F0428BC AFA00264 */ sw $zero, 0x264($sp) +/* 0773F0 7F0428C0 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0773F4 7F0428C4 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0773F8 7F0428C8 1450000F */ bne $v0, $s0, .L7F042908 +/* 0773FC 7F0428CC 8FA80264 */ lw $t0, 0x264($sp) +/* 077400 7F0428D0 8FAE02A8 */ lw $t6, 0x2a8($sp) +/* 077404 7F0428D4 8FA302AC */ lw $v1, 0x2ac($sp) +/* 077408 7F0428D8 51C0000C */ beql $t6, $zero, .L7F04290C +/* 07740C 7F0428DC 8E43006C */ lw $v1, 0x6c($s2) +/* 077410 7F0428E0 AC6E0014 */ sw $t6, 0x14($v1) +/* 077414 7F0428E4 C6500058 */ lwc1 $f16, 0x58($s2) +/* 077418 7F0428E8 E4700008 */ swc1 $f16, 8($v1) +/* 07741C 7F0428EC C6480060 */ lwc1 $f8, 0x60($s2) +/* 077420 7F0428F0 E4680010 */ swc1 $f8, 0x10($v1) +/* 077424 7F0428F4 8E4F006C */ lw $t7, 0x6c($s2) +/* 077428 7F0428F8 8DE20000 */ lw $v0, ($t7) +/* 07742C 7F0428FC 30580008 */ andi $t8, $v0, 8 +/* 077430 7F042900 1000000D */ b .L7F042938 +/* 077434 7F042904 03001025 */ move $v0, $t8 +.L7F042908: +/* 077438 7F042908 8E43006C */ lw $v1, 0x6c($s2) +.L7F04290C: +/* 07743C 7F04290C 8C790000 */ lw $t9, ($v1) +/* 077440 7F042910 37290008 */ ori $t1, $t9, 8 +/* 077444 7F042914 AC690000 */ sw $t1, ($v1) +/* 077448 7F042918 8FAA02AC */ lw $t2, 0x2ac($sp) +/* 07744C 7F04291C 914B0001 */ lbu $t3, 1($t2) +/* 077450 7F042920 356C0008 */ ori $t4, $t3, 8 +/* 077454 7F042924 A14C0001 */ sb $t4, 1($t2) +/* 077458 7F042928 8E4D006C */ lw $t5, 0x6c($s2) +/* 07745C 7F04292C 8DA20000 */ lw $v0, ($t5) +/* 077460 7F042930 304E0008 */ andi $t6, $v0, 8 +/* 077464 7F042934 01C01025 */ move $v0, $t6 +.L7F042938: +/* 077468 7F042938 10400016 */ beqz $v0, .L7F042994 +/* 07746C 7F04293C 8FA40048 */ lw $a0, 0x48($sp) +/* 077470 7F042940 27A50074 */ addiu $a1, $sp, 0x74 +/* 077474 7F042944 00003025 */ move $a2, $zero +/* 077478 7F042948 0FC2BC83 */ jal sub_GAME_7F0AF20C +/* 07747C 7F04294C AFA80264 */ sw $t0, 0x264($sp) +/* 077480 7F042950 8FA80264 */ lw $t0, 0x264($sp) +/* 077484 7F042954 1040000F */ beqz $v0, .L7F042994 +/* 077488 7F042958 AFA202A8 */ sw $v0, 0x2a8($sp) +/* 07748C 7F04295C 8FA402AC */ lw $a0, 0x2ac($sp) +/* 077490 7F042960 2401FFF7 */ li $at, -9 +/* 077494 7F042964 AC820014 */ sw $v0, 0x14($a0) +/* 077498 7F042968 C64A0058 */ lwc1 $f10, 0x58($s2) +/* 07749C 7F04296C E48A0008 */ swc1 $f10, 8($a0) +/* 0774A0 7F042970 C6520060 */ lwc1 $f18, 0x60($s2) +/* 0774A4 7F042974 E4920010 */ swc1 $f18, 0x10($a0) +/* 0774A8 7F042978 8E43006C */ lw $v1, 0x6c($s2) +/* 0774AC 7F04297C 8C6F0000 */ lw $t7, ($v1) +/* 0774B0 7F042980 01E1C024 */ and $t8, $t7, $at +/* 0774B4 7F042984 AC780000 */ sw $t8, ($v1) +/* 0774B8 7F042988 90990001 */ lbu $t9, 1($a0) +/* 0774BC 7F04298C 03214824 */ and $t1, $t9, $at +/* 0774C0 7F042990 A0890001 */ sb $t1, 1($a0) +.L7F042994: +/* 0774C4 7F042994 93AB0074 */ lbu $t3, 0x74($sp) +/* 0774C8 7F042998 240400FF */ li $a0, 255 +/* 0774CC 7F04299C 27AC0074 */ addiu $t4, $sp, 0x74 +/* 0774D0 7F0429A0 108B000D */ beq $a0, $t3, .L7F0429D8 +/* 0774D4 7F0429A4 010C1021 */ addu $v0, $t0, $t4 +/* 0774D8 7F0429A8 90430000 */ lbu $v1, ($v0) +/* 0774DC 7F0429AC 24050007 */ li $a1, 7 +/* 0774E0 7F0429B0 8E4A006C */ lw $t2, 0x6c($s2) +.L7F0429B4: +/* 0774E4 7F0429B4 24420001 */ addiu $v0, $v0, 1 +/* 0774E8 7F0429B8 01486821 */ addu $t5, $t2, $t0 +/* 0774EC 7F0429BC A1A300CC */ sb $v1, 0xcc($t5) +/* 0774F0 7F0429C0 90430000 */ lbu $v1, ($v0) +/* 0774F4 7F0429C4 25080001 */ addiu $t0, $t0, 1 +/* 0774F8 7F0429C8 50830004 */ beql $a0, $v1, .L7F0429DC +/* 0774FC 7F0429CC 8E4F006C */ lw $t7, 0x6c($s2) +/* 077500 7F0429D0 5505FFF8 */ bnel $t0, $a1, .L7F0429B4 +/* 077504 7F0429D4 8E4A006C */ lw $t2, 0x6c($s2) +.L7F0429D8: +/* 077508 7F0429D8 8E4F006C */ lw $t7, 0x6c($s2) +.L7F0429DC: +/* 07750C 7F0429DC 240E00FF */ li $t6, 255 +/* 077510 7F0429E0 01E8C021 */ addu $t8, $t7, $t0 +/* 077514 7F0429E4 A30E00CC */ sb $t6, 0xcc($t8) +.L7F0429E8: +/* 077518 7F0429E8 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0429EC: +/* 07751C 7F0429EC 8FA202A4 */ lw $v0, 0x2a4($sp) +/* 077520 7F0429F0 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 077524 7F0429F4 8FB0002C */ lw $s0, 0x2c($sp) +/* 077528 7F0429F8 8FB10030 */ lw $s1, 0x30($sp) +/* 07752C 7F0429FC 8FB20034 */ lw $s2, 0x34($sp) +/* 077530 7F042A00 8FB30038 */ lw $s3, 0x38($sp) +/* 077534 7F042A04 03E00008 */ jr $ra +/* 077538 7F042A08 27BD02B0 */ addiu $sp, $sp, 0x2b0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F042A0C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052A5C +.word 0x3f7d70a4 /*0.99000001*/ +.text +glabel sub_GAME_7F042A0C +/* 07753C 7F042A0C 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 077540 7F042A10 AFBF0034 */ sw $ra, 0x34($sp) +/* 077544 7F042A14 AFB00030 */ sw $s0, 0x30($sp) +/* 077548 7F042A18 AFA600C8 */ sw $a2, 0xc8($sp) +/* 07754C 7F042A1C AFA700CC */ sw $a3, 0xcc($sp) +/* 077550 7F042A20 8C900010 */ lw $s0, 0x10($a0) +/* 077554 7F042A24 8E0E0014 */ lw $t6, 0x14($s0) +/* 077558 7F042A28 AFA500C4 */ sw $a1, 0xc4($sp) +/* 07755C 7F042A2C AFA400C0 */ sw $a0, 0xc0($sp) +/* 077560 7F042A30 0FC10411 */ jal if_a0_plus_3_is_4_then_10_else_20 +/* 077564 7F042A34 AFAE00B8 */ sw $t6, 0xb8($sp) +/* 077568 7F042A38 8FA500C4 */ lw $a1, 0xc4($sp) +/* 07756C 7F042A3C 240F0001 */ li $t7, 1 +/* 077570 7F042A40 3C018003 */ lui $at, %hi(D_80030B0C) +/* 077574 7F042A44 E7A000B4 */ swc1 $f0, 0xb4($sp) +/* 077578 7F042A48 AFAF00B0 */ sw $t7, 0xb0($sp) +/* 07757C 7F042A4C AC200B0C */ sw $zero, %lo(D_80030B0C)($at) +/* 077580 7F042A50 C6040008 */ lwc1 $f4, 8($s0) +/* 077584 7F042A54 C4A20000 */ lwc1 $f2, ($a1) +/* 077588 7F042A58 46041032 */ c.eq.s $f2, $f4 +/* 07758C 7F042A5C 00000000 */ nop +/* 077590 7F042A60 4502000E */ bc1fl .L7F042A9C +/* 077594 7F042A64 E7A20098 */ swc1 $f2, 0x98($sp) +/* 077598 7F042A68 C4A60004 */ lwc1 $f6, 4($a1) +/* 07759C 7F042A6C C608000C */ lwc1 $f8, 0xc($s0) +/* 0775A0 7F042A70 46083032 */ c.eq.s $f6, $f8 +/* 0775A4 7F042A74 00000000 */ nop +/* 0775A8 7F042A78 45020008 */ bc1fl .L7F042A9C +/* 0775AC 7F042A7C E7A20098 */ swc1 $f2, 0x98($sp) +/* 0775B0 7F042A80 C4AA0008 */ lwc1 $f10, 8($a1) +/* 0775B4 7F042A84 C6100010 */ lwc1 $f16, 0x10($s0) +/* 0775B8 7F042A88 46105032 */ c.eq.s $f10, $f16 +/* 0775BC 7F042A8C 00000000 */ nop +/* 0775C0 7F042A90 45030104 */ bc1tl .L7F042EA4 +/* 0775C4 7F042A94 8FBF0034 */ lw $ra, 0x34($sp) +/* 0775C8 7F042A98 E7A20098 */ swc1 $f2, 0x98($sp) +.L7F042A9C: +/* 0775CC 7F042A9C C4B20004 */ lwc1 $f18, 4($a1) +/* 0775D0 7F042AA0 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0775D4 7F042AA4 E7B2009C */ swc1 $f18, 0x9c($sp) +/* 0775D8 7F042AA8 C4A40008 */ lwc1 $f4, 8($a1) +/* 0775DC 7F042AAC E7A400A0 */ swc1 $f4, 0xa0($sp) +/* 0775E0 7F042AB0 8F190064 */ lw $t9, 0x64($t8) +/* 0775E4 7F042AB4 33280080 */ andi $t0, $t9, 0x80 +/* 0775E8 7F042AB8 510000FA */ beql $t0, $zero, .L7F042EA4 +/* 0775EC 7F042ABC 8FBF0034 */ lw $ra, 0x34($sp) +/* 0775F0 7F042AC0 8E040014 */ lw $a0, 0x14($s0) +/* 0775F4 7F042AC4 8E050008 */ lw $a1, 8($s0) +/* 0775F8 7F042AC8 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0775FC 7F042ACC 8E060010 */ lw $a2, 0x10($s0) +/* 077600 7F042AD0 8FA900C0 */ lw $t1, 0xc0($sp) +/* 077604 7F042AD4 C7AA009C */ lwc1 $f10, 0x9c($sp) +/* 077608 7F042AD8 8D2A006C */ lw $t2, 0x6c($t1) +/* 07760C 7F042ADC 8D4B0000 */ lw $t3, ($t2) +/* 077610 7F042AE0 316C0040 */ andi $t4, $t3, 0x40 +/* 077614 7F042AE4 55800008 */ bnezl $t4, .L7F042B08 +/* 077618 7F042AE8 C602000C */ lwc1 $f2, 0xc($s0) +/* 07761C 7F042AEC 44809000 */ mtc1 $zero, $f18 +/* 077620 7F042AF0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 077624 7F042AF4 44818000 */ mtc1 $at, $f16 +/* 077628 7F042AF8 E7B20090 */ swc1 $f18, 0x90($sp) +/* 07762C 7F042AFC 10000010 */ b .L7F042B40 +/* 077630 7F042B00 E7B0008C */ swc1 $f16, 0x8c($sp) +/* 077634 7F042B04 C602000C */ lwc1 $f2, 0xc($s0) +.L7F042B08: +/* 077638 7F042B08 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 07763C 7F042B0C 4602503C */ c.lt.s $f10, $f2 +/* 077640 7F042B10 00000000 */ nop +/* 077644 7F042B14 45020007 */ bc1fl .L7F042B34 +/* 077648 7F042B18 46002181 */ sub.s $f6, $f4, $f0 +/* 07764C 7F042B1C 46001401 */ sub.s $f16, $f2, $f0 +/* 077650 7F042B20 46005481 */ sub.s $f18, $f10, $f0 +/* 077654 7F042B24 E7B00090 */ swc1 $f16, 0x90($sp) +/* 077658 7F042B28 10000005 */ b .L7F042B40 +/* 07765C 7F042B2C E7B2008C */ swc1 $f18, 0x8c($sp) +/* 077660 7F042B30 46002181 */ sub.s $f6, $f4, $f0 +.L7F042B34: +/* 077664 7F042B34 46001201 */ sub.s $f8, $f2, $f0 +/* 077668 7F042B38 E7A60090 */ swc1 $f6, 0x90($sp) +/* 07766C 7F042B3C E7A8008C */ swc1 $f8, 0x8c($sp) +.L7F042B40: +/* 077670 7F042B40 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 077674 7F042B44 00000000 */ nop +/* 077678 7F042B48 8E050008 */ lw $a1, 8($s0) +/* 07767C 7F042B4C 8E060010 */ lw $a2, 0x10($s0) +/* 077680 7F042B50 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 077684 7F042B54 44813000 */ mtc1 $at, $f6 +/* 077688 7F042B58 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 07768C 7F042B5C C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 077690 7F042B60 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 077694 7F042B64 44802000 */ mtc1 $zero, $f4 +/* 077698 7F042B68 240D001F */ li $t5, 31 +/* 07769C 7F042B6C AFAD0014 */ sw $t5, 0x14($sp) +/* 0776A0 7F042B70 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 0776A4 7F042B74 8FA70098 */ lw $a3, 0x98($sp) +/* 0776A8 7F042B78 E7B00010 */ swc1 $f16, 0x10($sp) +/* 0776AC 7F042B7C E7A60024 */ swc1 $f6, 0x24($sp) +/* 0776B0 7F042B80 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 0776B4 7F042B84 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 0776B8 7F042B88 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0776BC 7F042B8C E7A40020 */ swc1 $f4, 0x20($sp) +/* 0776C0 7F042B90 1040001D */ beqz $v0, .L7F042C08 +/* 0776C4 7F042B94 8FAE00B8 */ lw $t6, 0xb8($sp) +/* 0776C8 7F042B98 11C0001B */ beqz $t6, .L7F042C08 +/* 0776CC 7F042B9C 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 0776D0 7F042BA0 C7A80090 */ lwc1 $f8, 0x90($sp) +/* 0776D4 7F042BA4 C7B0008C */ lwc1 $f16, 0x8c($sp) +/* 0776D8 7F042BA8 240F001F */ li $t7, 31 +/* 0776DC 7F042BAC AFAF0010 */ sw $t7, 0x10($sp) +/* 0776E0 7F042BB0 8FA50098 */ lw $a1, 0x98($sp) +/* 0776E4 7F042BB4 8FA600A0 */ lw $a2, 0xa0($sp) +/* 0776E8 7F042BB8 8FA700B4 */ lw $a3, 0xb4($sp) +/* 0776EC 7F042BBC E7A80014 */ swc1 $f8, 0x14($sp) +/* 0776F0 7F042BC0 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 0776F4 7F042BC4 E7B00018 */ swc1 $f16, 0x18($sp) +/* 0776F8 7F042BC8 0441000F */ bgez $v0, .L7F042C08 +/* 0776FC 7F042BCC C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 077700 7F042BD0 8FA200C0 */ lw $v0, 0xc0($sp) +/* 077704 7F042BD4 E44A0058 */ swc1 $f10, 0x58($v0) +/* 077708 7F042BD8 C7B200A0 */ lwc1 $f18, 0xa0($sp) +/* 07770C 7F042BDC E4520060 */ swc1 $f18, 0x60($v0) +/* 077710 7F042BE0 8FB800B8 */ lw $t8, 0xb8($sp) +/* 077714 7F042BE4 AE180014 */ sw $t8, 0x14($s0) +/* 077718 7F042BE8 C7A40098 */ lwc1 $f4, 0x98($sp) +/* 07771C 7F042BEC E6040008 */ swc1 $f4, 8($s0) +/* 077720 7F042BF0 C7A600A0 */ lwc1 $f6, 0xa0($sp) +/* 077724 7F042BF4 E6060010 */ swc1 $f6, 0x10($s0) +/* 077728 7F042BF8 C7A0009C */ lwc1 $f0, 0x9c($sp) +/* 07772C 7F042BFC E600000C */ swc1 $f0, 0xc($s0) +/* 077730 7F042C00 100000A7 */ b .L7F042EA0 +/* 077734 7F042C04 E440005C */ swc1 $f0, 0x5c($v0) +.L7F042C08: +/* 077738 7F042C08 27A40080 */ addiu $a0, $sp, 0x80 +/* 07773C 7F042C0C 0FC2CA2C */ jal sub_GAME_7F0B28B0 +/* 077740 7F042C10 27A50074 */ addiu $a1, $sp, 0x74 +/* 077744 7F042C14 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 077748 7F042C18 C7B00088 */ lwc1 $f16, 0x88($sp) +/* 07774C 7F042C1C 8FA400CC */ lw $a0, 0xcc($sp) +/* 077750 7F042C20 44801000 */ mtc1 $zero, $f2 +/* 077754 7F042C24 46104281 */ sub.s $f10, $f8, $f16 +/* 077758 7F042C28 24850004 */ addiu $a1, $a0, 4 +/* 07775C 7F042C2C E4820004 */ swc1 $f2, 4($a0) +/* 077760 7F042C30 E48A0000 */ swc1 $f10, ($a0) +/* 077764 7F042C34 C4880000 */ lwc1 $f8, ($a0) +/* 077768 7F042C38 C7A40074 */ lwc1 $f4, 0x74($sp) +/* 07776C 7F042C3C C7B20080 */ lwc1 $f18, 0x80($sp) +/* 077770 7F042C40 46081032 */ c.eq.s $f2, $f8 +/* 077774 7F042C44 46049181 */ sub.s $f6, $f18, $f4 +/* 077778 7F042C48 45000007 */ bc1f .L7F042C68 +/* 07777C 7F042C4C E4860008 */ swc1 $f6, 8($a0) +/* 077780 7F042C50 C4900008 */ lwc1 $f16, 8($a0) +/* 077784 7F042C54 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 077788 7F042C58 46101032 */ c.eq.s $f2, $f16 +/* 07778C 7F042C5C 00000000 */ nop +/* 077790 7F042C60 45030006 */ bc1tl .L7F042C7C +/* 077794 7F042C64 44815000 */ mtc1 $at, $f10 +.L7F042C68: +/* 077798 7F042C68 0C007DD4 */ jal guNormalize +/* 07779C 7F042C6C 24860008 */ addiu $a2, $a0, 8 +/* 0777A0 7F042C70 10000005 */ b .L7F042C88 +/* 0777A4 7F042C74 C6000008 */ lwc1 $f0, 8($s0) +/* 0777A8 7F042C78 44815000 */ mtc1 $at, $f10 +.L7F042C7C: +/* 0777AC 7F042C7C 00000000 */ nop +/* 0777B0 7F042C80 E48A0008 */ swc1 $f10, 8($a0) +/* 0777B4 7F042C84 C6000008 */ lwc1 $f0, 8($s0) +.L7F042C88: +/* 0777B8 7F042C88 C7B20098 */ lwc1 $f18, 0x98($sp) +/* 0777BC 7F042C8C C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0777C0 7F042C90 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0777C4 7F042C94 46009032 */ c.eq.s $f18, $f0 +/* 0777C8 7F042C98 00000000 */ nop +/* 0777CC 7F042C9C 4502000F */ bc1fl .L7F042CDC +/* 0777D0 7F042CA0 46005481 */ sub.s $f18, $f10, $f0 +/* 0777D4 7F042CA4 C606000C */ lwc1 $f6, 0xc($s0) +/* 0777D8 7F042CA8 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 0777DC 7F042CAC 46062032 */ c.eq.s $f4, $f6 +/* 0777E0 7F042CB0 00000000 */ nop +/* 0777E4 7F042CB4 45020009 */ bc1fl .L7F042CDC +/* 0777E8 7F042CB8 46005481 */ sub.s $f18, $f10, $f0 +/* 0777EC 7F042CBC C6100010 */ lwc1 $f16, 0x10($s0) +/* 0777F0 7F042CC0 8FA200C8 */ lw $v0, 0xc8($sp) +/* 0777F4 7F042CC4 C7B20098 */ lwc1 $f18, 0x98($sp) +/* 0777F8 7F042CC8 46104032 */ c.eq.s $f8, $f16 +/* 0777FC 7F042CCC 00000000 */ nop +/* 077800 7F042CD0 4503006A */ bc1tl .L7F042E7C +/* 077804 7F042CD4 E4520000 */ swc1 $f18, ($v0) +/* 077808 7F042CD8 46005481 */ sub.s $f18, $f10, $f0 +.L7F042CDC: +/* 07780C 7F042CDC C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 077810 7F042CE0 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 077814 7F042CE4 26040008 */ addiu $a0, $s0, 8 +/* 077818 7F042CE8 E7B200A4 */ swc1 $f18, 0xa4($sp) +/* 07781C 7F042CEC C606000C */ lwc1 $f6, 0xc($s0) +/* 077820 7F042CF0 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 077824 7F042CF4 8FA600C8 */ lw $a2, 0xc8($sp) +/* 077828 7F042CF8 46062201 */ sub.s $f8, $f4, $f6 +/* 07782C 7F042CFC E7A800A8 */ swc1 $f8, 0xa8($sp) +/* 077830 7F042D00 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 077834 7F042D04 460A8481 */ sub.s $f18, $f16, $f10 +/* 077838 7F042D08 0FC09893 */ jal sub_GAME_7F02624C +/* 07783C 7F042D0C E7B200AC */ swc1 $f18, 0xac($sp) +/* 077840 7F042D10 C7A400B4 */ lwc1 $f4, 0xb4($sp) +/* 077844 7F042D14 C7B00080 */ lwc1 $f16, 0x80($sp) +/* 077848 7F042D18 C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 07784C 7F042D1C E7A4005C */ swc1 $f4, 0x5c($sp) +/* 077850 7F042D20 C6060008 */ lwc1 $f6, 8($s0) +/* 077854 7F042D24 C7B20074 */ lwc1 $f18, 0x74($sp) +/* 077858 7F042D28 C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 07785C 7F042D2C E7A60060 */ swc1 $f6, 0x60($sp) +/* 077860 7F042D30 C6080010 */ lwc1 $f8, 0x10($s0) +/* 077864 7F042D34 E7B00054 */ swc1 $f16, 0x54($sp) +/* 077868 7F042D38 E7AA0058 */ swc1 $f10, 0x58($sp) +/* 07786C 7F042D3C E7B2004C */ swc1 $f18, 0x4c($sp) +/* 077870 7F042D40 E7A40050 */ swc1 $f4, 0x50($sp) +/* 077874 7F042D44 E7A80064 */ swc1 $f8, 0x64($sp) +/* 077878 7F042D48 C6080008 */ lwc1 $f8, 8($s0) +/* 07787C 7F042D4C C7A60098 */ lwc1 $f6, 0x98($sp) +/* 077880 7F042D50 C7AA00A0 */ lwc1 $f10, 0xa0($sp) +/* 077884 7F042D54 27A4005C */ addiu $a0, $sp, 0x5c +/* 077888 7F042D58 46083401 */ sub.s $f16, $f6, $f8 +/* 07788C 7F042D5C 27A50054 */ addiu $a1, $sp, 0x54 +/* 077890 7F042D60 27A6004C */ addiu $a2, $sp, 0x4c +/* 077894 7F042D64 27A70044 */ addiu $a3, $sp, 0x44 +/* 077898 7F042D68 E7B00044 */ swc1 $f16, 0x44($sp) +/* 07789C 7F042D6C C6120010 */ lwc1 $f18, 0x10($s0) +/* 0778A0 7F042D70 46125101 */ sub.s $f4, $f10, $f18 +/* 0778A4 7F042D74 0FC2CCF7 */ jal sub_GAME_7F0B33DC +/* 0778A8 7F042D78 E7A40048 */ swc1 $f4, 0x48($sp) +/* 0778AC 7F042D7C C7A80044 */ lwc1 $f8, 0x44($sp) +/* 0778B0 7F042D80 3C018005 */ lui $at, %hi(D_80052A5C) +/* 0778B4 7F042D84 C4222A5C */ lwc1 $f2, %lo(D_80052A5C)($at) +/* 0778B8 7F042D88 46004402 */ mul.s $f16, $f8, $f0 +/* 0778BC 7F042D8C 8E190014 */ lw $t9, 0x14($s0) +/* 0778C0 7F042D90 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0778C4 7F042D94 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0778C8 7F042D98 AFB900B8 */ sw $t9, 0xb8($sp) +/* 0778CC 7F042D9C C6060008 */ lwc1 $f6, 8($s0) +/* 0778D0 7F042DA0 E7A4006C */ swc1 $f4, 0x6c($sp) +/* 0778D4 7F042DA4 46028282 */ mul.s $f10, $f16, $f2 +/* 0778D8 7F042DA8 C7B00048 */ lwc1 $f16, 0x48($sp) +/* 0778DC 7F042DAC 2408001F */ li $t0, 31 +/* 0778E0 7F042DB0 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 0778E4 7F042DB4 460A3480 */ add.s $f18, $f6, $f10 +/* 0778E8 7F042DB8 46008182 */ mul.s $f6, $f16, $f0 +/* 0778EC 7F042DBC C7B00090 */ lwc1 $f16, 0x90($sp) +/* 0778F0 7F042DC0 E7B20068 */ swc1 $f18, 0x68($sp) +/* 0778F4 7F042DC4 C6080010 */ lwc1 $f8, 0x10($s0) +/* 0778F8 7F042DC8 8FA70068 */ lw $a3, 0x68($sp) +/* 0778FC 7F042DCC 46023282 */ mul.s $f10, $f6, $f2 +/* 077900 7F042DD0 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 077904 7F042DD4 460A4480 */ add.s $f18, $f8, $f10 +/* 077908 7F042DD8 44815000 */ mtc1 $at, $f10 +/* 07790C 7F042DDC 44804000 */ mtc1 $zero, $f8 +/* 077910 7F042DE0 E7B20070 */ swc1 $f18, 0x70($sp) +/* 077914 7F042DE4 8E060010 */ lw $a2, 0x10($s0) +/* 077918 7F042DE8 8E050008 */ lw $a1, 8($s0) +/* 07791C 7F042DEC C7A40070 */ lwc1 $f4, 0x70($sp) +/* 077920 7F042DF0 AFA80014 */ sw $t0, 0x14($sp) +/* 077924 7F042DF4 E7B00018 */ swc1 $f16, 0x18($sp) +/* 077928 7F042DF8 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 07792C 7F042DFC E7AA0024 */ swc1 $f10, 0x24($sp) +/* 077930 7F042E00 E7A80020 */ swc1 $f8, 0x20($sp) +/* 077934 7F042E04 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 077938 7F042E08 E7A40010 */ swc1 $f4, 0x10($sp) +/* 07793C 7F042E0C 1040001F */ beqz $v0, .L7F042E8C +/* 077940 7F042E10 8FA900B8 */ lw $t1, 0xb8($sp) +/* 077944 7F042E14 1120001D */ beqz $t1, .L7F042E8C +/* 077948 7F042E18 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 07794C 7F042E1C C7B20090 */ lwc1 $f18, 0x90($sp) +/* 077950 7F042E20 C7A4008C */ lwc1 $f4, 0x8c($sp) +/* 077954 7F042E24 240A001F */ li $t2, 31 +/* 077958 7F042E28 AFAA0010 */ sw $t2, 0x10($sp) +/* 07795C 7F042E2C 8FA50068 */ lw $a1, 0x68($sp) +/* 077960 7F042E30 8FA60070 */ lw $a2, 0x70($sp) +/* 077964 7F042E34 8FA700B4 */ lw $a3, 0xb4($sp) +/* 077968 7F042E38 E7B20014 */ swc1 $f18, 0x14($sp) +/* 07796C 7F042E3C 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 077970 7F042E40 E7A40018 */ swc1 $f4, 0x18($sp) +/* 077974 7F042E44 04410011 */ bgez $v0, .L7F042E8C +/* 077978 7F042E48 C7B00068 */ lwc1 $f16, 0x68($sp) +/* 07797C 7F042E4C 8FAB00C0 */ lw $t3, 0xc0($sp) +/* 077980 7F042E50 E5700058 */ swc1 $f16, 0x58($t3) +/* 077984 7F042E54 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 077988 7F042E58 E5660060 */ swc1 $f6, 0x60($t3) +/* 07798C 7F042E5C 8FAC00B8 */ lw $t4, 0xb8($sp) +/* 077990 7F042E60 AE0C0014 */ sw $t4, 0x14($s0) +/* 077994 7F042E64 C7A80068 */ lwc1 $f8, 0x68($sp) +/* 077998 7F042E68 E6080008 */ swc1 $f8, 8($s0) +/* 07799C 7F042E6C C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 0779A0 7F042E70 10000006 */ b .L7F042E8C +/* 0779A4 7F042E74 E60A0010 */ swc1 $f10, 0x10($s0) +/* 0779A8 7F042E78 E4520000 */ swc1 $f18, ($v0) +.L7F042E7C: +/* 0779AC 7F042E7C C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0779B0 7F042E80 E4440004 */ swc1 $f4, 4($v0) +/* 0779B4 7F042E84 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 0779B8 7F042E88 E4500008 */ swc1 $f16, 8($v0) +.L7F042E8C: +/* 0779BC 7F042E8C C7A0006C */ lwc1 $f0, 0x6c($sp) +/* 0779C0 7F042E90 E600000C */ swc1 $f0, 0xc($s0) +/* 0779C4 7F042E94 8FAD00C0 */ lw $t5, 0xc0($sp) +/* 0779C8 7F042E98 E5A0005C */ swc1 $f0, 0x5c($t5) +/* 0779CC 7F042E9C AFA000B0 */ sw $zero, 0xb0($sp) +.L7F042EA0: +/* 0779D0 7F042EA0 8FBF0034 */ lw $ra, 0x34($sp) +.L7F042EA4: +/* 0779D4 7F042EA4 8FA200B0 */ lw $v0, 0xb0($sp) +/* 0779D8 7F042EA8 8FB00030 */ lw $s0, 0x30($sp) +/* 0779DC 7F042EAC 03E00008 */ jr $ra +/* 0779E0 7F042EB0 27BD00C0 */ addiu $sp, $sp, 0xc0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F042EB4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F042EB4 +/* 0779E4 7F042EB4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0779E8 7F042EB8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0779EC 7F042EBC 8C8E0064 */ lw $t6, 0x64($a0) +/* 0779F0 7F042EC0 8FAB0030 */ lw $t3, 0x30($sp) +/* 0779F4 7F042EC4 31CF0080 */ andi $t7, $t6, 0x80 +/* 0779F8 7F042EC8 11E0000D */ beqz $t7, .L7F042F00 +/* 0779FC 7F042ECC 00000000 */ nop +/* 077A00 7F042ED0 8C98006C */ lw $t8, 0x6c($a0) +/* 077A04 7F042ED4 8FA90030 */ lw $t1, 0x30($sp) +/* 077A08 7F042ED8 8F190000 */ lw $t9, ($t8) +/* 077A0C 7F042EDC 33280004 */ andi $t0, $t9, 4 +/* 077A10 7F042EE0 11000007 */ beqz $t0, .L7F042F00 +/* 077A14 7F042EE4 00000000 */ nop +/* 077A18 7F042EE8 8FAA0034 */ lw $t2, 0x34($sp) +/* 077A1C 7F042EEC AFA90010 */ sw $t1, 0x10($sp) +/* 077A20 7F042EF0 0FC10893 */ jal handles_projectile_motion +/* 077A24 7F042EF4 AFAA0014 */ sw $t2, 0x14($sp) +/* 077A28 7F042EF8 10000004 */ b .L7F042F0C +/* 077A2C 7F042EFC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F042F00: +/* 077A30 7F042F00 0FC10A83 */ jal sub_GAME_7F042A0C +/* 077A34 7F042F04 AFAB0010 */ sw $t3, 0x10($sp) +/* 077A38 7F042F08 8FBF001C */ lw $ra, 0x1c($sp) +.L7F042F0C: +/* 077A3C 7F042F0C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 077A40 7F042F10 03E00008 */ jr $ra +/* 077A44 7F042F14 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F042F18(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F042F18 +/* 077A48 7F042F18 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 077A4C 7F042F1C 3C038005 */ lui $v1, %hi(clock_timer) +/* 077A50 7F042F20 24638374 */ addiu $v1, %lo(clock_timer) # addiu $v1, $v1, -0x7c8c +/* 077A54 7F042F24 8C6E0000 */ lw $t6, ($v1) +/* 077A58 7F042F28 F7B40008 */ sdc1 $f20, 8($sp) +/* 077A5C 7F042F2C 4487A000 */ mtc1 $a3, $f20 +/* 077A60 7F042F30 F7BA0020 */ sdc1 $f26, 0x20($sp) +/* 077A64 7F042F34 F7B80018 */ sdc1 $f24, 0x18($sp) +/* 077A68 7F042F38 F7B60010 */ sdc1 $f22, 0x10($sp) +/* 077A6C 7F042F3C 44857000 */ mtc1 $a1, $f14 +/* 077A70 7F042F40 C4C00000 */ lwc1 $f0, ($a2) +/* 077A74 7F042F44 19C0006A */ blez $t6, .L7F0430F0 +/* 077A78 7F042F48 00001025 */ move $v0, $zero +/* 077A7C 7F042F4C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 077A80 7F042F50 4481D000 */ mtc1 $at, $f26 +/* 077A84 7F042F54 4480C000 */ mtc1 $zero, $f24 +/* 077A88 7F042F58 C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 077A8C 7F042F5C C7A20038 */ lwc1 $f2, 0x38($sp) +/* 077A90 7F042F60 C4900000 */ lwc1 $f16, ($a0) +.L7F042F64: +/* 077A94 7F042F64 46107301 */ sub.s $f12, $f14, $f16 +/* 077A98 7F042F68 460CC03C */ c.lt.s $f24, $f12 +/* 077A9C 7F042F6C 00000000 */ nop +/* 077AA0 7F042F70 4502002E */ bc1fl .L7F04302C +/* 077AA4 7F042F74 4618003C */ c.lt.s $f0, $f24 +/* 077AA8 7F042F78 4600C03C */ c.lt.s $f24, $f0 +/* 077AAC 7F042F7C 00000000 */ nop +/* 077AB0 7F042F80 45020011 */ bc1fl .L7F042FC8 +/* 077AB4 7F042F84 4612003C */ c.lt.s $f0, $f18 +/* 077AB8 7F042F88 46000102 */ mul.s $f4, $f0, $f0 +/* 077ABC 7F042F8C 00000000 */ nop +/* 077AC0 7F042F90 461A2182 */ mul.s $f6, $f4, $f26 +/* 077AC4 7F042F94 46023203 */ div.s $f8, $f6, $f2 +/* 077AC8 7F042F98 4608603E */ c.le.s $f12, $f8 +/* 077ACC 7F042F9C 00000000 */ nop +/* 077AD0 7F042FA0 45000008 */ bc1f .L7F042FC4 +/* 077AD4 7F042FA4 00000000 */ nop +/* 077AD8 7F042FA8 46020001 */ sub.s $f0, $f0, $f2 +/* 077ADC 7F042FAC 4602003C */ c.lt.s $f0, $f2 +/* 077AE0 7F042FB0 00000000 */ nop +/* 077AE4 7F042FB4 45020014 */ bc1fl .L7F043008 +/* 077AE8 7F042FB8 4600603E */ c.le.s $f12, $f0 +/* 077AEC 7F042FBC 10000011 */ b .L7F043004 +/* 077AF0 7F042FC0 46001006 */ mov.s $f0, $f2 +.L7F042FC4: +/* 077AF4 7F042FC4 4612003C */ c.lt.s $f0, $f18 +.L7F042FC8: +/* 077AF8 7F042FC8 00000000 */ nop +/* 077AFC 7F042FCC 4502000E */ bc1fl .L7F043008 +/* 077B00 7F042FD0 4600603E */ c.le.s $f12, $f0 +/* 077B04 7F042FD4 4618003C */ c.lt.s $f0, $f24 +/* 077B08 7F042FD8 00000000 */ nop +/* 077B0C 7F042FDC 45020004 */ bc1fl .L7F042FF0 +/* 077B10 7F042FE0 46140000 */ add.s $f0, $f0, $f20 +/* 077B14 7F042FE4 10000002 */ b .L7F042FF0 +/* 077B18 7F042FE8 46020000 */ add.s $f0, $f0, $f2 +/* 077B1C 7F042FEC 46140000 */ add.s $f0, $f0, $f20 +.L7F042FF0: +/* 077B20 7F042FF0 4600903C */ c.lt.s $f18, $f0 +/* 077B24 7F042FF4 00000000 */ nop +/* 077B28 7F042FF8 45020003 */ bc1fl .L7F043008 +/* 077B2C 7F042FFC 4600603E */ c.le.s $f12, $f0 +/* 077B30 7F043000 46009006 */ mov.s $f0, $f18 +.L7F043004: +/* 077B34 7F043004 4600603E */ c.le.s $f12, $f0 +.L7F043008: +/* 077B38 7F043008 00000000 */ nop +/* 077B3C 7F04300C 45020004 */ bc1fl .L7F043020 +/* 077B40 7F043010 46008280 */ add.s $f10, $f16, $f0 +/* 077B44 7F043014 10000036 */ b .L7F0430F0 +/* 077B48 7F043018 E48E0000 */ swc1 $f14, ($a0) +/* 077B4C 7F04301C 46008280 */ add.s $f10, $f16, $f0 +.L7F043020: +/* 077B50 7F043020 1000002E */ b .L7F0430DC +/* 077B54 7F043024 E48A0000 */ swc1 $f10, ($a0) +/* 077B58 7F043028 4618003C */ c.lt.s $f0, $f24 +.L7F04302C: +/* 077B5C 7F04302C 00000000 */ nop +/* 077B60 7F043030 45020012 */ bc1fl .L7F04307C +/* 077B64 7F043034 46009587 */ neg.s $f22, $f18 +/* 077B68 7F043038 46000102 */ mul.s $f4, $f0, $f0 +/* 077B6C 7F04303C 46006287 */ neg.s $f10, $f12 +/* 077B70 7F043040 461A2182 */ mul.s $f6, $f4, $f26 +/* 077B74 7F043044 46023203 */ div.s $f8, $f6, $f2 +/* 077B78 7F043048 4608503E */ c.le.s $f10, $f8 +/* 077B7C 7F04304C 00000000 */ nop +/* 077B80 7F043050 4502000A */ bc1fl .L7F04307C +/* 077B84 7F043054 46009587 */ neg.s $f22, $f18 +/* 077B88 7F043058 46020000 */ add.s $f0, $f0, $f2 +/* 077B8C 7F04305C 46001587 */ neg.s $f22, $f2 +/* 077B90 7F043060 4600B03C */ c.lt.s $f22, $f0 +/* 077B94 7F043064 00000000 */ nop +/* 077B98 7F043068 45020015 */ bc1fl .L7F0430C0 +/* 077B9C 7F04306C 460C003E */ c.le.s $f0, $f12 +/* 077BA0 7F043070 10000012 */ b .L7F0430BC +/* 077BA4 7F043074 4600B006 */ mov.s $f0, $f22 +/* 077BA8 7F043078 46009587 */ neg.s $f22, $f18 +.L7F04307C: +/* 077BAC 7F04307C 4600B03C */ c.lt.s $f22, $f0 +/* 077BB0 7F043080 00000000 */ nop +/* 077BB4 7F043084 4502000E */ bc1fl .L7F0430C0 +/* 077BB8 7F043088 460C003E */ c.le.s $f0, $f12 +/* 077BBC 7F04308C 4600C03C */ c.lt.s $f24, $f0 +/* 077BC0 7F043090 00000000 */ nop +/* 077BC4 7F043094 45020004 */ bc1fl .L7F0430A8 +/* 077BC8 7F043098 46140001 */ sub.s $f0, $f0, $f20 +/* 077BCC 7F04309C 10000002 */ b .L7F0430A8 +/* 077BD0 7F0430A0 46020001 */ sub.s $f0, $f0, $f2 +/* 077BD4 7F0430A4 46140001 */ sub.s $f0, $f0, $f20 +.L7F0430A8: +/* 077BD8 7F0430A8 4616003C */ c.lt.s $f0, $f22 +/* 077BDC 7F0430AC 00000000 */ nop +/* 077BE0 7F0430B0 45020003 */ bc1fl .L7F0430C0 +/* 077BE4 7F0430B4 460C003E */ c.le.s $f0, $f12 +/* 077BE8 7F0430B8 4600B006 */ mov.s $f0, $f22 +.L7F0430BC: +/* 077BEC 7F0430BC 460C003E */ c.le.s $f0, $f12 +.L7F0430C0: +/* 077BF0 7F0430C0 00000000 */ nop +/* 077BF4 7F0430C4 45020004 */ bc1fl .L7F0430D8 +/* 077BF8 7F0430C8 46008100 */ add.s $f4, $f16, $f0 +/* 077BFC 7F0430CC 10000008 */ b .L7F0430F0 +/* 077C00 7F0430D0 E48E0000 */ swc1 $f14, ($a0) +/* 077C04 7F0430D4 46008100 */ add.s $f4, $f16, $f0 +.L7F0430D8: +/* 077C08 7F0430D8 E4840000 */ swc1 $f4, ($a0) +.L7F0430DC: +/* 077C0C 7F0430DC 8C6F0000 */ lw $t7, ($v1) +/* 077C10 7F0430E0 24420001 */ addiu $v0, $v0, 1 +/* 077C14 7F0430E4 004F082A */ slt $at, $v0, $t7 +/* 077C18 7F0430E8 5420FF9E */ bnezl $at, .L7F042F64 +/* 077C1C 7F0430EC C4900000 */ lwc1 $f16, ($a0) +.L7F0430F0: +/* 077C20 7F0430F0 E4C00000 */ swc1 $f0, ($a2) +/* 077C24 7F0430F4 D7BA0020 */ ldc1 $f26, 0x20($sp) +/* 077C28 7F0430F8 D7B80018 */ ldc1 $f24, 0x18($sp) +/* 077C2C 7F0430FC D7B60010 */ ldc1 $f22, 0x10($sp) +/* 077C30 7F043100 D7B40008 */ ldc1 $f20, 8($sp) +/* 077C34 7F043104 03E00008 */ jr $ra +/* 077C38 7F043108 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04310C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052A60 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80052A64 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052A68 +.word 0x40490fdb /*3.1415927*/ +glabel D_80052A6C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052A70 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F04310C +/* 077C3C 7F04310C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 077C40 7F043110 AFBF001C */ sw $ra, 0x1c($sp) +/* 077C44 7F043114 44856000 */ mtc1 $a1, $f12 +/* 077C48 7F043118 C4840000 */ lwc1 $f4, ($a0) +/* 077C4C 7F04311C 3C018005 */ lui $at, %hi(D_80052A60) +/* 077C50 7F043120 C4262A60 */ lwc1 $f6, %lo(D_80052A60)($at) +/* 077C54 7F043124 46046001 */ sub.s $f0, $f12, $f4 +/* 077C58 7F043128 44877000 */ mtc1 $a3, $f14 +/* 077C5C 7F04312C 3C018005 */ lui $at, %hi(D_80052A68) +/* 077C60 7F043130 C7B00030 */ lwc1 $f16, 0x30($sp) +/* 077C64 7F043134 4606003C */ c.lt.s $f0, $f6 +/* 077C68 7F043138 44077000 */ mfc1 $a3, $f14 +/* 077C6C 7F04313C 45000005 */ bc1f .L7F043154 +/* 077C70 7F043140 00000000 */ nop +/* 077C74 7F043144 3C018005 */ lui $at, %hi(D_80052A68) +/* 077C78 7F043148 C4282A64 */ lwc1 $f8, %lo(D_80052A64)($at) +/* 077C7C 7F04314C 10000009 */ b .L7F043174 +/* 077C80 7F043150 46086300 */ add.s $f12, $f12, $f8 +.L7F043154: +/* 077C84 7F043154 C42A2A68 */ lwc1 $f10, %lo(D_80052A68)($at) +/* 077C88 7F043158 3C018005 */ lui $at, %hi(D_80052A6C) +/* 077C8C 7F04315C 4600503E */ c.le.s $f10, $f0 +/* 077C90 7F043160 00000000 */ nop +/* 077C94 7F043164 45020004 */ bc1fl .L7F043178 +/* 077C98 7F043168 C7B20034 */ lwc1 $f18, 0x34($sp) +/* 077C9C 7F04316C C4222A6C */ lwc1 $f2, %lo(D_80052A6C)($at) +/* 077CA0 7F043170 46026301 */ sub.s $f12, $f12, $f2 +.L7F043174: +/* 077CA4 7F043174 C7B20034 */ lwc1 $f18, 0x34($sp) +.L7F043178: +/* 077CA8 7F043178 44056000 */ mfc1 $a1, $f12 +/* 077CAC 7F04317C E7B00010 */ swc1 $f16, 0x10($sp) +/* 077CB0 7F043180 AFA40020 */ sw $a0, 0x20($sp) +/* 077CB4 7F043184 0FC10BC6 */ jal sub_GAME_7F042F18 +/* 077CB8 7F043188 E7B20014 */ swc1 $f18, 0x14($sp) +/* 077CBC 7F04318C 8FA40020 */ lw $a0, 0x20($sp) +/* 077CC0 7F043190 44802000 */ mtc1 $zero, $f4 +/* 077CC4 7F043194 3C018005 */ lui $at, %hi(D_80052A70) +/* 077CC8 7F043198 C4800000 */ lwc1 $f0, ($a0) +/* 077CCC 7F04319C C4222A70 */ lwc1 $f2, %lo(D_80052A70)($at) +/* 077CD0 7F0431A0 4604003C */ c.lt.s $f0, $f4 +/* 077CD4 7F0431A4 00000000 */ nop +/* 077CD8 7F0431A8 45020005 */ bc1fl .L7F0431C0 +/* 077CDC 7F0431AC 4600103E */ c.le.s $f2, $f0 +/* 077CE0 7F0431B0 46020180 */ add.s $f6, $f0, $f2 +/* 077CE4 7F0431B4 E4860000 */ swc1 $f6, ($a0) +/* 077CE8 7F0431B8 C4800000 */ lwc1 $f0, ($a0) +/* 077CEC 7F0431BC 4600103E */ c.le.s $f2, $f0 +.L7F0431C0: +/* 077CF0 7F0431C0 00000000 */ nop +/* 077CF4 7F0431C4 45020004 */ bc1fl .L7F0431D8 +/* 077CF8 7F0431C8 8FBF001C */ lw $ra, 0x1c($sp) +/* 077CFC 7F0431CC 46020201 */ sub.s $f8, $f0, $f2 +/* 077D00 7F0431D0 E4880000 */ swc1 $f8, ($a0) +/* 077D04 7F0431D4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0431D8: +/* 077D08 7F0431D8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 077D0C 7F0431DC 03E00008 */ jr $ra +/* 077D10 7F0431E0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0431E4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052A74 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052A78 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_80052A7C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052A80 +.word 0x3d4ccccd /*0.050000001*/ +glabel D_80052A84 +.word 0x3cf5c28f /*0.029999999*/ +glabel D_80052A88 +.word 0x3e19999a /*0.15000001*/ +.text +glabel sub_GAME_7F0431E4 +/* 077D14 7F0431E4 27BDFEE8 */ addiu $sp, $sp, -0x118 +/* 077D18 7F0431E8 AFBF001C */ sw $ra, 0x1c($sp) +/* 077D1C 7F0431EC AFB10018 */ sw $s1, 0x18($sp) +/* 077D20 7F0431F0 AFB00014 */ sw $s0, 0x14($sp) +/* 077D24 7F0431F4 AFA5011C */ sw $a1, 0x11c($sp) +/* 077D28 7F0431F8 8C8E0064 */ lw $t6, 0x64($a0) +/* 077D2C 7F0431FC 3C01FFFE */ li $at, 0xFFFE0000 # -nan +/* 077D30 7F043200 3421FFFF */ ori $at, (0xFFFEFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 077D34 7F043204 01C17824 */ and $t7, $t6, $at +/* 077D38 7F043208 31F90080 */ andi $t9, $t7, 0x80 +/* 077D3C 7F04320C 00808825 */ move $s1, $a0 +/* 077D40 7F043210 1320010A */ beqz $t9, .L7F04363C +/* 077D44 7F043214 AC8F0064 */ sw $t7, 0x64($a0) +/* 077D48 7F043218 90880003 */ lbu $t0, 3($a0) +/* 077D4C 7F04321C 8C90006C */ lw $s0, 0x6c($a0) +/* 077D50 7F043220 24010001 */ li $at, 1 +/* 077D54 7F043224 15010009 */ bne $t0, $at, .L7F04324C +/* 077D58 7F043228 26240018 */ addiu $a0, $s1, 0x18 +/* 077D5C 7F04322C 0FC0FEDC */ jal sub_GAME_7F03FB70 +/* 077D60 7F043230 02002025 */ move $a0, $s0 +/* 077D64 7F043234 8E290064 */ lw $t1, 0x64($s1) +/* 077D68 7F043238 2401FF7F */ li $at, -129 +/* 077D6C 7F04323C AE20006C */ sw $zero, 0x6c($s1) +/* 077D70 7F043240 01215024 */ and $t2, $t1, $at +/* 077D74 7F043244 100000FD */ b .L7F04363C +/* 077D78 7F043248 AE2A0064 */ sw $t2, 0x64($s1) +.L7F04324C: +/* 077D7C 7F04324C 8E0B0000 */ lw $t3, ($s0) +/* 077D80 7F043250 2401FFFE */ li $at, -2 +/* 077D84 7F043254 AE000088 */ sw $zero, 0x88($s0) +/* 077D88 7F043258 01616024 */ and $t4, $t3, $at +/* 077D8C 7F04325C 2401FFFB */ li $at, -5 +/* 077D90 7F043260 AE0C0000 */ sw $t4, ($s0) +/* 077D94 7F043264 01817024 */ and $t6, $t4, $at +/* 077D98 7F043268 AE0E0000 */ sw $t6, ($s0) +/* 077D9C 7F04326C AFA40028 */ sw $a0, 0x28($sp) +/* 077DA0 7F043270 0FC16218 */ jal matrix_4x4_get_rotation_around_xyz +/* 077DA4 7F043274 27A5010C */ addiu $a1, $sp, 0x10c +/* 077DA8 7F043278 27A4010C */ addiu $a0, $sp, 0x10c +/* 077DAC 7F04327C 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 077DB0 7F043280 27A500CC */ addiu $a1, $sp, 0xcc +/* 077DB4 7F043284 26050068 */ addiu $a1, $s0, 0x68 +/* 077DB8 7F043288 AFA50024 */ sw $a1, 0x24($sp) +/* 077DBC 7F04328C 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 077DC0 7F043290 27A4010C */ addiu $a0, $sp, 0x10c +/* 077DC4 7F043294 27A400CC */ addiu $a0, $sp, 0xcc +/* 077DC8 7F043298 0FC1674E */ jal matrix_4x4_set_rotation_inverse +/* 077DCC 7F04329C 27A5008C */ addiu $a1, $sp, 0x8c +/* 077DD0 7F0432A0 27A4008C */ addiu $a0, $sp, 0x8c +/* 077DD4 7F0432A4 8FA50028 */ lw $a1, 0x28($sp) +/* 077DD8 7F0432A8 0FC16032 */ jal matrix_4x4_multiply +/* 077DDC 7F0432AC 27A6004C */ addiu $a2, $sp, 0x4c +/* 077DE0 7F0432B0 C7A2004C */ lwc1 $f2, 0x4c($sp) +/* 077DE4 7F0432B4 C7AE0050 */ lwc1 $f14, 0x50($sp) +/* 077DE8 7F0432B8 C7A00054 */ lwc1 $f0, 0x54($sp) +/* 077DEC 7F0432BC 46021102 */ mul.s $f4, $f2, $f2 +/* 077DF0 7F0432C0 00000000 */ nop +/* 077DF4 7F0432C4 460E7182 */ mul.s $f6, $f14, $f14 +/* 077DF8 7F0432C8 46062200 */ add.s $f8, $f4, $f6 +/* 077DFC 7F0432CC 46000282 */ mul.s $f10, $f0, $f0 +/* 077E00 7F0432D0 0C007DF8 */ jal sqrtf +/* 077E04 7F0432D4 46085300 */ add.s $f12, $f10, $f8 +/* 077E08 7F0432D8 E60000C0 */ swc1 $f0, 0xc0($s0) +/* 077E0C 7F0432DC C7A4005C */ lwc1 $f4, 0x5c($sp) +/* 077E10 7F0432E0 C7AA0060 */ lwc1 $f10, 0x60($sp) +/* 077E14 7F0432E4 46042182 */ mul.s $f6, $f4, $f4 +/* 077E18 7F0432E8 00000000 */ nop +/* 077E1C 7F0432EC 460A5202 */ mul.s $f8, $f10, $f10 +/* 077E20 7F0432F0 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 077E24 7F0432F4 46083100 */ add.s $f4, $f6, $f8 +/* 077E28 7F0432F8 460A5182 */ mul.s $f6, $f10, $f10 +/* 077E2C 7F0432FC 0C007DF8 */ jal sqrtf +/* 077E30 7F043300 46043300 */ add.s $f12, $f6, $f4 +/* 077E34 7F043304 E60000C4 */ swc1 $f0, 0xc4($s0) +/* 077E38 7F043308 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 077E3C 7F04330C C7A60070 */ lwc1 $f6, 0x70($sp) +/* 077E40 7F043310 46084282 */ mul.s $f10, $f8, $f8 +/* 077E44 7F043314 00000000 */ nop +/* 077E48 7F043318 46063102 */ mul.s $f4, $f6, $f6 +/* 077E4C 7F04331C C7A60074 */ lwc1 $f6, 0x74($sp) +/* 077E50 7F043320 46045200 */ add.s $f8, $f10, $f4 +/* 077E54 7F043324 46063282 */ mul.s $f10, $f6, $f6 +/* 077E58 7F043328 0C007DF8 */ jal sqrtf +/* 077E5C 7F04332C 46085300 */ add.s $f12, $f10, $f8 +/* 077E60 7F043330 E60000C8 */ swc1 $f0, 0xc8($s0) +/* 077E64 7F043334 44808000 */ mtc1 $zero, $f16 +/* 077E68 7F043338 C6220018 */ lwc1 $f2, 0x18($s1) +/* 077E6C 7F04333C C62E0020 */ lwc1 $f14, 0x20($s1) +/* 077E70 7F043340 46101032 */ c.eq.s $f2, $f16 +/* 077E74 7F043344 00000000 */ nop +/* 077E78 7F043348 45000005 */ bc1f .L7F043360 +/* 077E7C 7F04334C 00000000 */ nop +/* 077E80 7F043350 46107032 */ c.eq.s $f14, $f16 +/* 077E84 7F043354 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 077E88 7F043358 45030013 */ bc1tl .L7F0433A8 +/* 077E8C 7F04335C 44817000 */ mtc1 $at, $f14 +.L7F043360: +/* 077E90 7F043360 46021102 */ mul.s $f4, $f2, $f2 +/* 077E94 7F043364 E7A20048 */ swc1 $f2, 0x48($sp) +/* 077E98 7F043368 E7AE0044 */ swc1 $f14, 0x44($sp) +/* 077E9C 7F04336C 460E7182 */ mul.s $f6, $f14, $f14 +/* 077EA0 7F043370 0C007DF8 */ jal sqrtf +/* 077EA4 7F043374 46062300 */ add.s $f12, $f4, $f6 +/* 077EA8 7F043378 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 077EAC 7F04337C 44819000 */ mtc1 $at, $f18 +/* 077EB0 7F043380 C7A20048 */ lwc1 $f2, 0x48($sp) +/* 077EB4 7F043384 C7AE0044 */ lwc1 $f14, 0x44($sp) +/* 077EB8 7F043388 46009303 */ div.s $f12, $f18, $f0 +/* 077EBC 7F04338C 44808000 */ mtc1 $zero, $f16 +/* 077EC0 7F043390 460C1082 */ mul.s $f2, $f2, $f12 +/* 077EC4 7F043394 00000000 */ nop +/* 077EC8 7F043398 460C7382 */ mul.s $f14, $f14, $f12 +/* 077ECC 7F04339C 10000004 */ b .L7F0433B0 +/* 077ED0 7F0433A0 00000000 */ nop +/* 077ED4 7F0433A4 44817000 */ mtc1 $at, $f14 +.L7F0433A8: +/* 077ED8 7F0433A8 44819000 */ mtc1 $at, $f18 +/* 077EDC 7F0433AC 46008086 */ mov.s $f2, $f16 +.L7F0433B0: +/* 077EE0 7F0433B0 E7A2008C */ swc1 $f2, 0x8c($sp) +/* 077EE4 7F0433B4 E7B00090 */ swc1 $f16, 0x90($sp) +/* 077EE8 7F0433B8 E7AE0094 */ swc1 $f14, 0x94($sp) +/* 077EEC 7F0433BC E7B00098 */ swc1 $f16, 0x98($sp) +/* 077EF0 7F0433C0 C62A002C */ lwc1 $f10, 0x2c($s1) +/* 077EF4 7F0433C4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 077EF8 7F0433C8 27A4008C */ addiu $a0, $sp, 0x8c +/* 077EFC 7F0433CC 460A803E */ c.le.s $f16, $f10 +/* 077F00 7F0433D0 27A5010C */ addiu $a1, $sp, 0x10c +/* 077F04 7F0433D4 4502000C */ bc1fl .L7F043408 +/* 077F08 7F0433D8 44812000 */ mtc1 $at, $f4 +/* 077F0C 7F0433DC 46007207 */ neg.s $f8, $f14 +/* 077F10 7F0433E0 E7B0009C */ swc1 $f16, 0x9c($sp) +/* 077F14 7F0433E4 E7B200A0 */ swc1 $f18, 0xa0($sp) +/* 077F18 7F0433E8 E7B000A4 */ swc1 $f16, 0xa4($sp) +/* 077F1C 7F0433EC E7B000A8 */ swc1 $f16, 0xa8($sp) +/* 077F20 7F0433F0 E7A800AC */ swc1 $f8, 0xac($sp) +/* 077F24 7F0433F4 E7B000B0 */ swc1 $f16, 0xb0($sp) +/* 077F28 7F0433F8 E7A200B4 */ swc1 $f2, 0xb4($sp) +/* 077F2C 7F0433FC 1000000B */ b .L7F04342C +/* 077F30 7F043400 E7B000B8 */ swc1 $f16, 0xb8($sp) +/* 077F34 7F043404 44812000 */ mtc1 $at, $f4 +.L7F043408: +/* 077F38 7F043408 46001187 */ neg.s $f6, $f2 +/* 077F3C 7F04340C E7B0009C */ swc1 $f16, 0x9c($sp) +/* 077F40 7F043410 E7B000A4 */ swc1 $f16, 0xa4($sp) +/* 077F44 7F043414 E7B000A8 */ swc1 $f16, 0xa8($sp) +/* 077F48 7F043418 E7AE00AC */ swc1 $f14, 0xac($sp) +/* 077F4C 7F04341C E7B000B0 */ swc1 $f16, 0xb0($sp) +/* 077F50 7F043420 E7A600B4 */ swc1 $f6, 0xb4($sp) +/* 077F54 7F043424 E7B000B8 */ swc1 $f16, 0xb8($sp) +/* 077F58 7F043428 E7A400A0 */ swc1 $f4, 0xa0($sp) +.L7F04342C: +/* 077F5C 7F04342C E7B000BC */ swc1 $f16, 0xbc($sp) +/* 077F60 7F043430 E7B000C0 */ swc1 $f16, 0xc0($sp) +/* 077F64 7F043434 E7B000C4 */ swc1 $f16, 0xc4($sp) +/* 077F68 7F043438 0FC16218 */ jal matrix_4x4_get_rotation_around_xyz +/* 077F6C 7F04343C E7B200C8 */ swc1 $f18, 0xc8($sp) +/* 077F70 7F043440 26050078 */ addiu $a1, $s0, 0x78 +/* 077F74 7F043444 AFA50028 */ sw $a1, 0x28($sp) +/* 077F78 7F043448 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 077F7C 7F04344C 27A4010C */ addiu $a0, $sp, 0x10c +/* 077F80 7F043450 8FA50028 */ lw $a1, 0x28($sp) +/* 077F84 7F043454 0FC16F84 */ jal quaternion_ensure_shortest_path +/* 077F88 7F043458 8FA40024 */ lw $a0, 0x24($sp) +/* 077F8C 7F04345C 44808000 */ mtc1 $zero, $f16 +/* 077F90 7F043460 00000000 */ nop +/* 077F94 7F043464 E6100060 */ swc1 $f16, 0x60($s0) +/* 077F98 7F043468 C7A800CC */ lwc1 $f8, 0xcc($sp) +/* 077F9C 7F04346C C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 077FA0 7F043470 C7A60090 */ lwc1 $f6, 0x90($sp) +/* 077FA4 7F043474 46085102 */ mul.s $f4, $f10, $f8 +/* 077FA8 7F043478 C7AA00D0 */ lwc1 $f10, 0xd0($sp) +/* 077FAC 7F04347C 460A3202 */ mul.s $f8, $f6, $f10 +/* 077FB0 7F043480 C7AA00D4 */ lwc1 $f10, 0xd4($sp) +/* 077FB4 7F043484 46082180 */ add.s $f6, $f4, $f8 +/* 077FB8 7F043488 C7A40094 */ lwc1 $f4, 0x94($sp) +/* 077FBC 7F04348C 46045202 */ mul.s $f8, $f10, $f4 +/* 077FC0 7F043490 0FC16B2C */ jal acosf +/* 077FC4 7F043494 46064300 */ add.s $f12, $f8, $f6 +/* 077FC8 7F043498 44808000 */ mtc1 $zero, $f16 +/* 077FCC 7F04349C 46000486 */ mov.s $f18, $f0 +/* 077FD0 7F0434A0 4600803C */ c.lt.s $f16, $f0 +/* 077FD4 7F0434A4 00000000 */ nop +/* 077FD8 7F0434A8 45020018 */ bc1fl .L7F04350C +/* 077FDC 7F0434AC 4600803C */ c.lt.s $f16, $f0 +/* 077FE0 7F0434B0 C622001C */ lwc1 $f2, 0x1c($s1) +/* 077FE4 7F0434B4 8FA2011C */ lw $v0, 0x11c($sp) +/* 077FE8 7F0434B8 4602803C */ c.lt.s $f16, $f2 +/* 077FEC 7F0434BC 00000000 */ nop +/* 077FF0 7F0434C0 45020012 */ bc1fl .L7F04350C +/* 077FF4 7F0434C4 4600803C */ c.lt.s $f16, $f0 +/* 077FF8 7F0434C8 C44A0004 */ lwc1 $f10, 4($v0) +/* 077FFC 7F0434CC 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 078000 7F0434D0 4602503C */ c.lt.s $f10, $f2 +/* 078004 7F0434D4 00000000 */ nop +/* 078008 7F0434D8 4502000C */ bc1fl .L7F04350C +/* 07800C 7F0434DC 4600803C */ c.lt.s $f16, $f0 +/* 078010 7F0434E0 44812000 */ mtc1 $at, $f4 +/* 078014 7F0434E4 3C018005 */ lui $at, %hi(D_80052A74) +/* 078018 7F0434E8 C4262A74 */ lwc1 $f6, %lo(D_80052A74)($at) +/* 07801C 7F0434EC 46040202 */ mul.s $f8, $f0, $f4 +/* 078020 7F0434F0 3C018005 */ lui $at, %hi(D_80052A78) +/* 078024 7F0434F4 C4242A78 */ lwc1 $f4, %lo(D_80052A78)($at) +/* 078028 7F0434F8 46064283 */ div.s $f10, $f8, $f6 +/* 07802C 7F0434FC 460A2203 */ div.s $f8, $f4, $f10 +/* 078030 7F043500 10000037 */ b .L7F0435E0 +/* 078034 7F043504 E6080064 */ swc1 $f8, 0x64($s0) +/* 078038 7F043508 4600803C */ c.lt.s $f16, $f0 +.L7F04350C: +/* 07803C 7F04350C 8FA2011C */ lw $v0, 0x11c($sp) +/* 078040 7F043510 C622001C */ lwc1 $f2, 0x1c($s1) +/* 078044 7F043514 45000013 */ bc1f .L7F043564 +/* 078048 7F043518 C44E0004 */ lwc1 $f14, 4($v0) +/* 07804C 7F04351C 4610103C */ c.lt.s $f2, $f16 +/* 078050 7F043520 00000000 */ nop +/* 078054 7F043524 45020010 */ bc1fl .L7F043568 +/* 078058 7F043528 C62A0020 */ lwc1 $f10, 0x20($s1) +/* 07805C 7F04352C 460E103C */ c.lt.s $f2, $f14 +/* 078060 7F043530 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 078064 7F043534 4502000C */ bc1fl .L7F043568 +/* 078068 7F043538 C62A0020 */ lwc1 $f10, 0x20($s1) +/* 07806C 7F04353C 44813000 */ mtc1 $at, $f6 +/* 078070 7F043540 3C018005 */ lui $at, %hi(D_80052A7C) +/* 078074 7F043544 C42A2A7C */ lwc1 $f10, %lo(D_80052A7C)($at) +/* 078078 7F043548 46060102 */ mul.s $f4, $f0, $f6 +/* 07807C 7F04354C 3C018005 */ lui $at, %hi(D_80052A80) +/* 078080 7F043550 C4262A80 */ lwc1 $f6, %lo(D_80052A80)($at) +/* 078084 7F043554 460A2203 */ div.s $f8, $f4, $f10 +/* 078088 7F043558 46083103 */ div.s $f4, $f6, $f8 +/* 07808C 7F04355C 10000020 */ b .L7F0435E0 +/* 078090 7F043560 E6040064 */ swc1 $f4, 0x64($s0) +.L7F043564: +/* 078094 7F043564 C62A0020 */ lwc1 $f10, 0x20($s1) +.L7F043568: +/* 078098 7F043568 C4460008 */ lwc1 $f6, 8($v0) +/* 07809C 7F04356C C4440000 */ lwc1 $f4, ($v0) +/* 0780A0 7F043570 8E2F0014 */ lw $t7, 0x14($s1) +/* 0780A4 7F043574 46065202 */ mul.s $f8, $f10, $f6 +/* 0780A8 7F043578 C62A0018 */ lwc1 $f10, 0x18($s1) +/* 0780AC 7F04357C C5E00014 */ lwc1 $f0, 0x14($t7) +/* 0780B0 7F043580 E7B20030 */ swc1 $f18, 0x30($sp) +/* 0780B4 7F043584 460A2182 */ mul.s $f6, $f4, $f10 +/* 0780B8 7F043588 00000000 */ nop +/* 0780BC 7F04358C 46027102 */ mul.s $f4, $f14, $f2 +/* 0780C0 7F043590 46043280 */ add.s $f10, $f6, $f4 +/* 0780C4 7F043594 46000102 */ mul.s $f4, $f0, $f0 +/* 0780C8 7F043598 460A4180 */ add.s $f6, $f8, $f10 +/* 0780CC 7F04359C 0FC16B2C */ jal acosf +/* 0780D0 7F0435A0 46043303 */ div.s $f12, $f6, $f4 +/* 0780D4 7F0435A4 44808000 */ mtc1 $zero, $f16 +/* 0780D8 7F0435A8 C7B20030 */ lwc1 $f18, 0x30($sp) +/* 0780DC 7F0435AC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0780E0 7F0435B0 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0780E4 7F0435B4 46109032 */ c.eq.s $f18, $f16 +/* 0780E8 7F0435B8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0780EC 7F0435BC 46080083 */ div.s $f2, $f0, $f8 +/* 0780F0 7F0435C0 45030005 */ bc1tl .L7F0435D8 +/* 0780F4 7F0435C4 44813000 */ mtc1 $at, $f6 +/* 0780F8 7F0435C8 46121283 */ div.s $f10, $f2, $f18 +/* 0780FC 7F0435CC 10000004 */ b .L7F0435E0 +/* 078100 7F0435D0 E60A0064 */ swc1 $f10, 0x64($s0) +/* 078104 7F0435D4 44813000 */ mtc1 $at, $f6 +.L7F0435D8: +/* 078108 7F0435D8 00000000 */ nop +/* 07810C 7F0435DC E6060064 */ swc1 $f6, 0x64($s0) +.L7F0435E0: +/* 078110 7F0435E0 C6000064 */ lwc1 $f0, 0x64($s0) +/* 078114 7F0435E4 3C018005 */ lui $at, %hi(D_80052A84) +/* 078118 7F0435E8 4610003C */ c.lt.s $f0, $f16 +/* 07811C 7F0435EC 00000000 */ nop +/* 078120 7F0435F0 45000004 */ bc1f .L7F043604 +/* 078124 7F0435F4 00000000 */ nop +/* 078128 7F0435F8 46000107 */ neg.s $f4, $f0 +/* 07812C 7F0435FC E6040064 */ swc1 $f4, 0x64($s0) +/* 078130 7F043600 C6000064 */ lwc1 $f0, 0x64($s0) +.L7F043604: +/* 078134 7F043604 C4222A84 */ lwc1 $f2, %lo(D_80052A84)($at) +/* 078138 7F043608 3C018005 */ lui $at, %hi(D_80052A88) +/* 07813C 7F04360C 4602003C */ c.lt.s $f0, $f2 +/* 078140 7F043610 00000000 */ nop +/* 078144 7F043614 45000003 */ bc1f .L7F043624 +/* 078148 7F043618 00000000 */ nop +/* 07814C 7F04361C 10000007 */ b .L7F04363C +/* 078150 7F043620 E6020064 */ swc1 $f2, 0x64($s0) +.L7F043624: +/* 078154 7F043624 C4222A88 */ lwc1 $f2, %lo(D_80052A88)($at) +/* 078158 7F043628 4600103C */ c.lt.s $f2, $f0 +/* 07815C 7F04362C 00000000 */ nop +/* 078160 7F043630 45020003 */ bc1fl .L7F043640 +/* 078164 7F043634 8FBF001C */ lw $ra, 0x1c($sp) +/* 078168 7F043638 E6020064 */ swc1 $f2, 0x64($s0) +.L7F04363C: +/* 07816C 7F04363C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F043640: +/* 078170 7F043640 8FB00014 */ lw $s0, 0x14($sp) +/* 078174 7F043644 8FB10018 */ lw $s1, 0x18($sp) +/* 078178 7F043648 03E00008 */ jr $ra +/* 07817C 7F04364C 27BD0118 */ addiu $sp, $sp, 0x118 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F043650(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F043650 +/* 078180 7F043650 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 078184 7F043654 AFBF001C */ sw $ra, 0x1c($sp) +/* 078188 7F043658 AFB00018 */ sw $s0, 0x18($sp) +/* 07818C 7F04365C 8C820064 */ lw $v0, 0x64($a0) +/* 078190 7F043660 00808025 */ move $s0, $a0 +/* 078194 7F043664 304E0080 */ andi $t6, $v0, 0x80 +/* 078198 7F043668 51C0006F */ beql $t6, $zero, .L7F043828 +/* 07819C 7F04366C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0781A0 7F043670 8C83006C */ lw $v1, 0x6c($a0) +/* 0781A4 7F043674 2401FFDF */ li $at, -33 +/* 0781A8 7F043678 8C6F0000 */ lw $t7, ($v1) +/* 0781AC 7F04367C 31F80001 */ andi $t8, $t7, 1 +/* 0781B0 7F043680 53000052 */ beql $t8, $zero, .L7F0437CC +/* 0781B4 7F043684 00414024 */ and $t0, $v0, $at +/* 0781B8 7F043688 8C790090 */ lw $t9, 0x90($v1) +/* 0781BC 7F04368C 30480020 */ andi $t0, $v0, 0x20 +/* 0781C0 7F043690 5F20004E */ bgtzl $t9, .L7F0437CC +/* 0781C4 7F043694 00414024 */ and $t0, $v0, $at +/* 0781C8 7F043698 1100004B */ beqz $t0, .L7F0437C8 +/* 0781CC 7F04369C 3C0A8003 */ lui $t2, %hi(Throwing_knife_SFX) +/* 0781D0 7F0436A0 254A0B2C */ addiu $t2, %lo(Throwing_knife_SFX) # addiu $t2, $t2, 0xb2c +/* 0781D4 7F0436A4 8D410000 */ lw $at, ($t2) +/* 0781D8 7F0436A8 27A90038 */ addiu $t1, $sp, 0x38 +/* 0781DC 7F0436AC AD210000 */ sw $at, ($t1) +/* 0781E0 7F0436B0 95410004 */ lhu $at, 4($t2) +/* 0781E4 7F0436B4 A5210004 */ sh $at, 4($t1) +/* 0781E8 7F0436B8 8C8D006C */ lw $t5, 0x6c($a0) +/* 0781EC 7F0436BC 8DAE00A4 */ lw $t6, 0xa4($t5) +/* 0781F0 7F0436C0 0C002914 */ jal get_random_value +/* 0781F4 7F0436C4 AFAE0034 */ sw $t6, 0x34($sp) +/* 0781F8 7F0436C8 24010003 */ li $at, 3 +/* 0781FC 7F0436CC 0041001B */ divu $zero, $v0, $at +/* 078200 7F0436D0 00007810 */ mfhi $t7 +/* 078204 7F0436D4 AFAF0030 */ sw $t7, 0x30($sp) +/* 078208 7F0436D8 8E03006C */ lw $v1, 0x6c($s0) +/* 07820C 7F0436DC 3C198005 */ lui $t9, %hi(global_timer) +/* 078210 7F0436E0 8F39837C */ lw $t9, %lo(global_timer)($t9) +/* 078214 7F0436E4 8C7800A0 */ lw $t8, 0xa0($v1) +/* 078218 7F0436E8 8FA70034 */ lw $a3, 0x34($sp) +/* 07821C 7F0436EC 2728FFFA */ addiu $t0, $t9, -6 +/* 078220 7F0436F0 0308082A */ slt $at, $t8, $t0 +/* 078224 7F0436F4 1020000D */ beqz $at, .L7F04372C +/* 078228 7F0436F8 00075880 */ sll $t3, $a3, 2 +/* 07822C 7F0436FC 006B4821 */ addu $t1, $v1, $t3 +/* 078230 7F043700 8D240098 */ lw $a0, 0x98($t1) +/* 078234 7F043704 5080000A */ beql $a0, $zero, .L7F043730 +/* 078238 7F043708 8FA70034 */ lw $a3, 0x34($sp) +/* 07823C 7F04370C 0C00237C */ jal sfxGetArg0Unk3F +/* 078240 7F043710 AFAB002C */ sw $t3, 0x2c($sp) +/* 078244 7F043714 10400005 */ beqz $v0, .L7F04372C +/* 078248 7F043718 8FA7002C */ lw $a3, 0x2c($sp) +/* 07824C 7F04371C 8E0A006C */ lw $t2, 0x6c($s0) +/* 078250 7F043720 01476021 */ addu $t4, $t2, $a3 +/* 078254 7F043724 0C002408 */ jal sfxDeactivate +/* 078258 7F043728 8D840098 */ lw $a0, 0x98($t4) +.L7F04372C: +/* 07825C 7F04372C 8FA70034 */ lw $a3, 0x34($sp) +.L7F043730: +/* 078260 7F043730 8E0E006C */ lw $t6, 0x6c($s0) +/* 078264 7F043734 00076880 */ sll $t5, $a3, 2 +/* 078268 7F043738 01CD7821 */ addu $t7, $t6, $t5 +/* 07826C 7F04373C 8DF90098 */ lw $t9, 0x98($t7) +/* 078270 7F043740 57200039 */ bnezl $t9, .L7F043828 +/* 078274 7F043744 8FBF001C */ lw $ra, 0x1c($sp) +/* 078278 7F043748 0FC2FF01 */ jal get_controls_locked_flag +/* 07827C 7F04374C AFAD002C */ sw $t5, 0x2c($sp) +/* 078280 7F043750 14400034 */ bnez $v0, .L7F043824 +/* 078284 7F043754 8FA7002C */ lw $a3, 0x2c($sp) +/* 078288 7F043758 8FB80030 */ lw $t8, 0x30($sp) +/* 07828C 7F04375C 8E0B006C */ lw $t3, 0x6c($s0) +/* 078290 7F043760 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 078294 7F043764 00184040 */ sll $t0, $t8, 1 +/* 078298 7F043768 03A82821 */ addu $a1, $sp, $t0 +/* 07829C 7F04376C 84A50038 */ lh $a1, 0x38($a1) +/* 0782A0 7F043770 01673021 */ addu $a2, $t3, $a3 +/* 0782A4 7F043774 24C60098 */ addiu $a2, $a2, 0x98 +/* 0782A8 7F043778 AFA7002C */ sw $a3, 0x2c($sp) +/* 0782AC 7F04377C 0C002382 */ jal play_sfx_a1 +/* 0782B0 7F043780 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0782B4 7F043784 8FA7002C */ lw $a3, 0x2c($sp) +/* 0782B8 7F043788 8E09006C */ lw $t1, 0x6c($s0) +/* 0782BC 7F04378C 8E050010 */ lw $a1, 0x10($s0) +/* 0782C0 7F043790 01275021 */ addu $t2, $t1, $a3 +/* 0782C4 7F043794 8D440098 */ lw $a0, 0x98($t2) +/* 0782C8 7F043798 0FC14E84 */ jal sub_GAME_7F053A10 +/* 0782CC 7F04379C 24A50008 */ addiu $a1, $a1, 8 +/* 0782D0 7F0437A0 3C0C8005 */ lui $t4, %hi(global_timer) +/* 0782D4 7F0437A4 8D8C837C */ lw $t4, %lo(global_timer)($t4) +/* 0782D8 7F0437A8 8E0D006C */ lw $t5, 0x6c($s0) +/* 0782DC 7F0437AC 240F0001 */ li $t7, 1 +/* 0782E0 7F0437B0 ADAC00A0 */ sw $t4, 0xa0($t5) +/* 0782E4 7F0437B4 8FAE0034 */ lw $t6, 0x34($sp) +/* 0782E8 7F0437B8 8E18006C */ lw $t8, 0x6c($s0) +/* 0782EC 7F0437BC 01EEC823 */ subu $t9, $t7, $t6 +/* 0782F0 7F0437C0 10000018 */ b .L7F043824 +/* 0782F4 7F0437C4 AF1900A4 */ sw $t9, 0xa4($t8) +.L7F0437C8: +/* 0782F8 7F0437C8 00414024 */ and $t0, $v0, $at +.L7F0437CC: +/* 0782FC 7F0437CC AE080064 */ sw $t0, 0x64($s0) +/* 078300 7F0437D0 8C640098 */ lw $a0, 0x98($v1) +/* 078304 7F0437D4 50800009 */ beql $a0, $zero, .L7F0437FC +/* 078308 7F0437D8 8E09006C */ lw $t1, 0x6c($s0) +/* 07830C 7F0437DC 0C00237C */ jal sfxGetArg0Unk3F +/* 078310 7F0437E0 00000000 */ nop +/* 078314 7F0437E4 50400005 */ beql $v0, $zero, .L7F0437FC +/* 078318 7F0437E8 8E09006C */ lw $t1, 0x6c($s0) +/* 07831C 7F0437EC 8E0B006C */ lw $t3, 0x6c($s0) +/* 078320 7F0437F0 0C002408 */ jal sfxDeactivate +/* 078324 7F0437F4 8D640098 */ lw $a0, 0x98($t3) +/* 078328 7F0437F8 8E09006C */ lw $t1, 0x6c($s0) +.L7F0437FC: +/* 07832C 7F0437FC 8D24009C */ lw $a0, 0x9c($t1) +/* 078330 7F043800 50800009 */ beql $a0, $zero, .L7F043828 +/* 078334 7F043804 8FBF001C */ lw $ra, 0x1c($sp) +/* 078338 7F043808 0C00237C */ jal sfxGetArg0Unk3F +/* 07833C 7F04380C 00000000 */ nop +/* 078340 7F043810 50400005 */ beql $v0, $zero, .L7F043828 +/* 078344 7F043814 8FBF001C */ lw $ra, 0x1c($sp) +/* 078348 7F043818 8E0A006C */ lw $t2, 0x6c($s0) +/* 07834C 7F04381C 0C002408 */ jal sfxDeactivate +/* 078350 7F043820 8D44009C */ lw $a0, 0x9c($t2) +.L7F043824: +/* 078354 7F043824 8FBF001C */ lw $ra, 0x1c($sp) +.L7F043828: +/* 078358 7F043828 8FB00018 */ lw $s0, 0x18($sp) +/* 07835C 7F04382C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 078360 7F043830 03E00008 */ jr $ra +/* 078364 7F043834 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F043838(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052A8C +.word 0xbfc90fdb /*-1.5707964*/ +glabel D_80052A90 +.word 0xbfc90fdb /*-1.5707964*/ +.text +glabel sub_GAME_7F043838 +/* 078368 7F043838 27BDFED8 */ addiu $sp, $sp, -0x128 +/* 07836C 7F04383C AFBF0014 */ sw $ra, 0x14($sp) +/* 078370 7F043840 AFA5012C */ sw $a1, 0x12c($sp) +/* 078374 7F043844 C4820000 */ lwc1 $f2, ($a0) +/* 078378 7F043848 C48E0004 */ lwc1 $f14, 4($a0) +/* 07837C 7F04384C C4800008 */ lwc1 $f0, 8($a0) +/* 078380 7F043850 46021102 */ mul.s $f4, $f2, $f2 +/* 078384 7F043854 AFA40128 */ sw $a0, 0x128($sp) +/* 078388 7F043858 460E7182 */ mul.s $f6, $f14, $f14 +/* 07838C 7F04385C 46062200 */ add.s $f8, $f4, $f6 +/* 078390 7F043860 46000282 */ mul.s $f10, $f0, $f0 +/* 078394 7F043864 0C007DF8 */ jal sqrtf +/* 078398 7F043868 46085300 */ add.s $f12, $f10, $f8 +/* 07839C 7F04386C 8FA40128 */ lw $a0, 0x128($sp) +/* 0783A0 7F043870 44801000 */ mtc1 $zero, $f2 +/* 0783A4 7F043874 C4840000 */ lwc1 $f4, ($a0) +/* 0783A8 7F043878 C4860004 */ lwc1 $f6, 4($a0) +/* 0783AC 7F04387C C48A0008 */ lwc1 $f10, 8($a0) +/* 0783B0 7F043880 46002383 */ div.s $f14, $f4, $f0 +/* 0783B4 7F043884 46003483 */ div.s $f18, $f6, $f0 +/* 0783B8 7F043888 46027032 */ c.eq.s $f14, $f2 +/* 0783BC 7F04388C 00000000 */ nop +/* 0783C0 7F043890 4500000C */ bc1f .L7F0438C4 +/* 0783C4 7F043894 46005403 */ div.s $f16, $f10, $f0 +/* 0783C8 7F043898 46028032 */ c.eq.s $f16, $f2 +/* 0783CC 7F04389C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0783D0 7F0438A0 45000008 */ bc1f .L7F0438C4 +/* 0783D4 7F0438A4 00000000 */ nop +/* 0783D8 7F0438A8 44814000 */ mtc1 $at, $f8 +/* 0783DC 7F0438AC E7A20124 */ swc1 $f2, 0x124($sp) +/* 0783E0 7F0438B0 E7A20120 */ swc1 $f2, 0x120($sp) +/* 0783E4 7F0438B4 E7B2011C */ swc1 $f18, 0x11c($sp) +/* 0783E8 7F0438B8 E7A20114 */ swc1 $f2, 0x114($sp) +/* 0783EC 7F0438BC 10000016 */ b .L7F043918 +/* 0783F0 7F0438C0 E7A80118 */ swc1 $f8, 0x118($sp) +.L7F0438C4: +/* 0783F4 7F0438C4 460E7102 */ mul.s $f4, $f14, $f14 +/* 0783F8 7F0438C8 E7AE010C */ swc1 $f14, 0x10c($sp) +/* 0783FC 7F0438CC E7B00104 */ swc1 $f16, 0x104($sp) +/* 078400 7F0438D0 46108182 */ mul.s $f6, $f16, $f16 +/* 078404 7F0438D4 E7B20108 */ swc1 $f18, 0x108($sp) +/* 078408 7F0438D8 0C007DF8 */ jal sqrtf +/* 07840C 7F0438DC 46062300 */ add.s $f12, $f4, $f6 +/* 078410 7F0438E0 C7AE010C */ lwc1 $f14, 0x10c($sp) +/* 078414 7F0438E4 C7B00104 */ lwc1 $f16, 0x104($sp) +/* 078418 7F0438E8 C7B20108 */ lwc1 $f18, 0x108($sp) +/* 07841C 7F0438EC 46007083 */ div.s $f2, $f14, $f0 +/* 078420 7F0438F0 46000107 */ neg.s $f4, $f0 +/* 078424 7F0438F4 E7A40120 */ swc1 $f4, 0x120($sp) +/* 078428 7F0438F8 46008303 */ div.s $f12, $f16, $f0 +/* 07842C 7F0438FC 46029202 */ mul.s $f8, $f18, $f2 +/* 078430 7F043900 46001287 */ neg.s $f10, $f2 +/* 078434 7F043904 E7AA0114 */ swc1 $f10, 0x114($sp) +/* 078438 7F043908 E7A80124 */ swc1 $f8, 0x124($sp) +/* 07843C 7F04390C 460C9182 */ mul.s $f6, $f18, $f12 +/* 078440 7F043910 E7AC0118 */ swc1 $f12, 0x118($sp) +/* 078444 7F043914 E7A6011C */ swc1 $f6, 0x11c($sp) +.L7F043918: +/* 078448 7F043918 C7AC0118 */ lwc1 $f12, 0x118($sp) +/* 07844C 7F04391C 0FC16A8C */ jal atan2f +/* 078450 7F043920 C7AE0114 */ lwc1 $f14, 0x114($sp) +/* 078454 7F043924 E7A000F4 */ swc1 $f0, 0xf4($sp) +/* 078458 7F043928 46000307 */ neg.s $f12, $f0 +/* 07845C 7F04392C 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 078460 7F043930 27A500B0 */ addiu $a1, $sp, 0xb0 +/* 078464 7F043934 C7AA0124 */ lwc1 $f10, 0x124($sp) +/* 078468 7F043938 C7A80120 */ lwc1 $f8, 0x120($sp) +/* 07846C 7F04393C C7A4011C */ lwc1 $f4, 0x11c($sp) +/* 078470 7F043940 27A400B0 */ addiu $a0, $sp, 0xb0 +/* 078474 7F043944 27A50024 */ addiu $a1, $sp, 0x24 +/* 078478 7F043948 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 07847C 7F04394C E7A80028 */ swc1 $f8, 0x28($sp) +/* 078480 7F043950 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 078484 7F043954 E7A4002C */ swc1 $f4, 0x2c($sp) +/* 078488 7F043958 C7AC0024 */ lwc1 $f12, 0x24($sp) +/* 07848C 7F04395C 0FC16A8C */ jal atan2f +/* 078490 7F043960 C7AE0028 */ lwc1 $f14, 0x28($sp) +/* 078494 7F043964 3C018005 */ lui $at, %hi(D_80052A8C) +/* 078498 7F043968 C4262A8C */ lwc1 $f6, %lo(D_80052A8C)($at) +/* 07849C 7F04396C C7AA00F4 */ lwc1 $f10, 0xf4($sp) +/* 0784A0 7F043970 E7A000F0 */ swc1 $f0, 0xf0($sp) +/* 0784A4 7F043974 27A50070 */ addiu $a1, $sp, 0x70 +/* 0784A8 7F043978 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0784AC 7F04397C 460A3300 */ add.s $f12, $f6, $f10 +/* 0784B0 7F043980 3C018005 */ lui $at, %hi(D_80052A90) +/* 0784B4 7F043984 C4282A90 */ lwc1 $f8, %lo(D_80052A90)($at) +/* 0784B8 7F043988 C7A400F0 */ lwc1 $f4, 0xf0($sp) +/* 0784BC 7F04398C 27A50030 */ addiu $a1, $sp, 0x30 +/* 0784C0 7F043990 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0784C4 7F043994 46044301 */ sub.s $f12, $f8, $f4 +/* 0784C8 7F043998 27A40070 */ addiu $a0, $sp, 0x70 +/* 0784CC 7F04399C 27A50030 */ addiu $a1, $sp, 0x30 +/* 0784D0 7F0439A0 0FC16032 */ jal matrix_4x4_multiply +/* 0784D4 7F0439A4 8FA6012C */ lw $a2, 0x12c($sp) +/* 0784D8 7F0439A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0784DC 7F0439AC 27BD0128 */ addiu $sp, $sp, 0x128 +/* 0784E0 7F0439B0 03E00008 */ jr $ra +/* 0784E4 7F0439B4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0439B8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0439B8 +/* 0784E8 7F0439B8 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0784EC 7F0439BC AFB00018 */ sw $s0, 0x18($sp) +/* 0784F0 7F0439C0 00808025 */ move $s0, $a0 +/* 0784F4 7F0439C4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0784F8 7F0439C8 AFA5006C */ sw $a1, 0x6c($sp) +/* 0784FC 7F0439CC AFA60070 */ sw $a2, 0x70($sp) +/* 078500 7F0439D0 27A50028 */ addiu $a1, $sp, 0x28 +/* 078504 7F0439D4 0FC10E0E */ jal sub_GAME_7F043838 +/* 078508 7F0439D8 00E02025 */ move $a0, $a3 +/* 07850C 7F0439DC 8E0E0014 */ lw $t6, 0x14($s0) +/* 078510 7F0439E0 27A50028 */ addiu $a1, $sp, 0x28 +/* 078514 7F0439E4 0FC1629F */ jal matrix_scalar_multiply +/* 078518 7F0439E8 C5CC0014 */ lwc1 $f12, 0x14($t6) +/* 07851C 7F0439EC 02002025 */ move $a0, $s0 +/* 078520 7F0439F0 8FA5006C */ lw $a1, 0x6c($sp) +/* 078524 7F0439F4 27A60028 */ addiu $a2, $sp, 0x28 +/* 078528 7F0439F8 0FC101D5 */ jal sub_GAME_7F040754 +/* 07852C 7F0439FC 8FA70070 */ lw $a3, 0x70($sp) +/* 078530 7F043A00 8E0F0014 */ lw $t7, 0x14($s0) +/* 078534 7F043A04 0FC0FFFE */ jal sub_GAME_7F03FFF8 +/* 078538 7F043A08 8DE40008 */ lw $a0, 8($t7) +/* 07853C 7F043A0C 0FC0FA19 */ jal sub_GAME_7F03E864 +/* 078540 7F043A10 00402025 */ move $a0, $v0 +/* 078544 7F043A14 C6060028 */ lwc1 $f6, 0x28($s0) +/* 078548 7F043A18 C6040058 */ lwc1 $f4, 0x58($s0) +/* 07854C 7F043A1C C612002C */ lwc1 $f18, 0x2c($s0) +/* 078550 7F043A20 46060202 */ mul.s $f8, $f0, $f6 +/* 078554 7F043A24 C610005C */ lwc1 $f16, 0x5c($s0) +/* 078558 7F043A28 02002025 */ move $a0, $s0 +/* 07855C 7F043A2C 46120182 */ mul.s $f6, $f0, $f18 +/* 078560 7F043A30 46082281 */ sub.s $f10, $f4, $f8 +/* 078564 7F043A34 C6080060 */ lwc1 $f8, 0x60($s0) +/* 078568 7F043A38 46068101 */ sub.s $f4, $f16, $f6 +/* 07856C 7F043A3C E60A0058 */ swc1 $f10, 0x58($s0) +/* 078570 7F043A40 C60A0030 */ lwc1 $f10, 0x30($s0) +/* 078574 7F043A44 E604005C */ swc1 $f4, 0x5c($s0) +/* 078578 7F043A48 460A0482 */ mul.s $f18, $f0, $f10 +/* 07857C 7F043A4C 46124401 */ sub.s $f16, $f8, $f18 +/* 078580 7F043A50 0FC10121 */ jal sub_GAME_7F040484 +/* 078584 7F043A54 E6100060 */ swc1 $f16, 0x60($s0) +/* 078588 7F043A58 8FBF001C */ lw $ra, 0x1c($sp) +/* 07858C 7F043A5C 8FB00018 */ lw $s0, 0x18($sp) +/* 078590 7F043A60 27BD0068 */ addiu $sp, $sp, 0x68 +/* 078594 7F043A64 03E00008 */ jr $ra +/* 078598 7F043A68 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F043A6C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F043A6C +/* 07859C 7F043A6C 27BDFF10 */ addiu $sp, $sp, -0xf0 +/* 0785A0 7F043A70 AFBF001C */ sw $ra, 0x1c($sp) +/* 0785A4 7F043A74 AFB10018 */ sw $s1, 0x18($sp) +/* 0785A8 7F043A78 AFB00014 */ sw $s0, 0x14($sp) +/* 0785AC 7F043A7C AFA500F4 */ sw $a1, 0xf4($sp) +/* 0785B0 7F043A80 AFA600F8 */ sw $a2, 0xf8($sp) +/* 0785B4 7F043A84 AFA700FC */ sw $a3, 0xfc($sp) +/* 0785B8 7F043A88 90AF0001 */ lbu $t7, 1($a1) +/* 0785BC 7F043A8C 00808825 */ move $s1, $a0 +/* 0785C0 7F043A90 31F80002 */ andi $t8, $t7, 2 +/* 0785C4 7F043A94 53000034 */ beql $t8, $zero, .L7F043B68 +/* 0785C8 7F043A98 00001025 */ move $v0, $zero +/* 0785CC 7F043A9C 0FC0FFA6 */ jal sub_GAME_7F03FE98 +/* 0785D0 7F043AA0 8C900004 */ lw $s0, 4($a0) +/* 0785D4 7F043AA4 1040002F */ beqz $v0, .L7F043B64 +/* 0785D8 7F043AA8 AE02006C */ sw $v0, 0x6c($s0) +/* 0785DC 7F043AAC 8FA400F8 */ lw $a0, 0xf8($sp) +/* 0785E0 7F043AB0 8FA500FC */ lw $a1, 0xfc($sp) +/* 0785E4 7F043AB4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0785E8 7F043AB8 00003025 */ move $a2, $zero +/* 0785EC 7F043ABC AFA20028 */ sw $v0, 0x28($sp) +/* 0785F0 7F043AC0 8E190064 */ lw $t9, 0x64($s0) +/* 0785F4 7F043AC4 02202025 */ move $a0, $s1 +/* 0785F8 7F043AC8 37280040 */ ori $t0, $t9, 0x40 +/* 0785FC 7F043ACC 0FC0F863 */ jal sub_GAME_7F03E18C +/* 078600 7F043AD0 AE080064 */ sw $t0, 0x64($s0) +/* 078604 7F043AD4 0FC0E94E */ jal sub_GAME_7F03A538 +/* 078608 7F043AD8 02202025 */ move $a0, $s1 +/* 07860C 7F043ADC 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 078610 7F043AE0 02202025 */ move $a0, $s1 +/* 078614 7F043AE4 8FA900F8 */ lw $t1, 0xf8($sp) +/* 078618 7F043AE8 8E0A0014 */ lw $t2, 0x14($s0) +/* 07861C 7F043AEC 02202025 */ move $a0, $s1 +/* 078620 7F043AF0 AD490018 */ sw $t1, 0x18($t2) +/* 078624 7F043AF4 8E0C0014 */ lw $t4, 0x14($s0) +/* 078628 7F043AF8 8FAB00FC */ lw $t3, 0xfc($sp) +/* 07862C 7F043AFC AD8B001C */ sw $t3, 0x1c($t4) +/* 078630 7F043B00 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 078634 7F043B04 8FA500F4 */ lw $a1, 0xf4($sp) +/* 078638 7F043B08 27B100AC */ addiu $s1, $sp, 0xac +/* 07863C 7F043B0C 02202825 */ move $a1, $s1 +/* 078640 7F043B10 0FC16008 */ jal matrix_4x4_copy +/* 078644 7F043B14 26040018 */ addiu $a0, $s0, 0x18 +/* 078648 7F043B18 26040058 */ addiu $a0, $s0, 0x58 +/* 07864C 7F043B1C 0FC16266 */ jal matrix_4x4_set_position +/* 078650 7F043B20 02202825 */ move $a1, $s1 +/* 078654 7F043B24 0FC1E111 */ jal sub_GAME_7F078444 +/* 078658 7F043B28 00000000 */ nop +/* 07865C 7F043B2C 00402025 */ move $a0, $v0 +/* 078660 7F043B30 8FA50028 */ lw $a1, 0x28($sp) +/* 078664 7F043B34 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 078668 7F043B38 27A6006C */ addiu $a2, $sp, 0x6c +/* 07866C 7F043B3C 27A4006C */ addiu $a0, $sp, 0x6c +/* 078670 7F043B40 0FC167EE */ jal sub_GAME_7F059FB8 +/* 078674 7F043B44 27A5002C */ addiu $a1, $sp, 0x2c +/* 078678 7F043B48 8E06006C */ lw $a2, 0x6c($s0) +/* 07867C 7F043B4C 27A4002C */ addiu $a0, $sp, 0x2c +/* 078680 7F043B50 02202825 */ move $a1, $s1 +/* 078684 7F043B54 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 078688 7F043B58 24C60004 */ addiu $a2, $a2, 4 +/* 07868C 7F043B5C 10000002 */ b .L7F043B68 +/* 078690 7F043B60 24020001 */ li $v0, 1 +.L7F043B64: +/* 078694 7F043B64 00001025 */ move $v0, $zero +.L7F043B68: +/* 078698 7F043B68 8FBF001C */ lw $ra, 0x1c($sp) +/* 07869C 7F043B6C 8FB00014 */ lw $s0, 0x14($sp) +/* 0786A0 7F043B70 8FB10018 */ lw $s1, 0x18($sp) +/* 0786A4 7F043B74 03E00008 */ jr $ra +/* 0786A8 7F043B78 27BD00F0 */ addiu $sp, $sp, 0xf0 +) +#endif + + + + + +#ifdef NONMATCHING +void generate_explosion_at_position(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel generate_explosion_at_position +/* 0786AC 7F043B7C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0786B0 7F043B80 AFBF002C */ sw $ra, 0x2c($sp) +/* 0786B4 7F043B84 AFB00028 */ sw $s0, 0x28($sp) +/* 0786B8 7F043B88 AFA50064 */ sw $a1, 0x64($sp) +/* 0786BC 7F043B8C 8C880004 */ lw $t0, 4($a0) +/* 0786C0 7F043B90 3C010006 */ lui $at, 6 +/* 0786C4 7F043B94 00808025 */ move $s0, $a0 +/* 0786C8 7F043B98 8D0E0064 */ lw $t6, 0x64($t0) +/* 0786CC 7F043B9C 2619002C */ addiu $t9, $s0, 0x2c +/* 0786D0 7F043BA0 01C17824 */ and $t7, $t6, $at +/* 0786D4 7F043BA4 000FC442 */ srl $t8, $t7, 0x11 +/* 0786D8 7F043BA8 AFB80058 */ sw $t8, 0x58($sp) +/* 0786DC 7F043BAC 8C86001C */ lw $a2, 0x1c($a0) +/* 0786E0 7F043BB0 00002025 */ move $a0, $zero +/* 0786E4 7F043BB4 50C00056 */ beql $a2, $zero, .L7F043D10 +/* 0786E8 7F043BB8 8D020008 */ lw $v0, 8($t0) +/* 0786EC 7F043BBC 8CC2001C */ lw $v0, 0x1c($a2) +/* 0786F0 7F043BC0 00C01825 */ move $v1, $a2 +/* 0786F4 7F043BC4 50400006 */ beql $v0, $zero, .L7F043BE0 +/* 0786F8 7F043BC8 8C790014 */ lw $t9, 0x14($v1) +/* 0786FC 7F043BCC 00401825 */ move $v1, $v0 +.L7F043BD0: +/* 078700 7F043BD0 8C42001C */ lw $v0, 0x1c($v0) +/* 078704 7F043BD4 5440FFFE */ bnezl $v0, .L7F043BD0 +/* 078708 7F043BD8 00401825 */ move $v1, $v0 +/* 07870C 7F043BDC 8C790014 */ lw $t9, 0x14($v1) +.L7F043BE0: +/* 078710 7F043BE0 AFB90050 */ sw $t9, 0x50($sp) +/* 078714 7F043BE4 92090001 */ lbu $t1, 1($s0) +/* 078718 7F043BE8 312A0002 */ andi $t2, $t1, 2 +/* 07871C 7F043BEC 51400014 */ beql $t2, $zero, .L7F043C40 +/* 078720 7F043BF0 C46A0008 */ lwc1 $f10, 8($v1) +/* 078724 7F043BF4 8D040014 */ lw $a0, 0x14($t0) +/* 078728 7F043BF8 AFA8005C */ sw $t0, 0x5c($sp) +/* 07872C 7F043BFC 0FC1B1A8 */ jal getsubmatrix +/* 078730 7F043C00 AFA30054 */ sw $v1, 0x54($sp) +/* 078734 7F043C04 C4440030 */ lwc1 $f4, 0x30($v0) +/* 078738 7F043C08 E7A40044 */ swc1 $f4, 0x44($sp) +/* 07873C 7F043C0C C4460034 */ lwc1 $f6, 0x34($v0) +/* 078740 7F043C10 E7A60048 */ swc1 $f6, 0x48($sp) +/* 078744 7F043C14 C4480038 */ lwc1 $f8, 0x38($v0) +/* 078748 7F043C18 0FC1E111 */ jal sub_GAME_7F078444 +/* 07874C 7F043C1C E7A8004C */ swc1 $f8, 0x4c($sp) +/* 078750 7F043C20 27B00044 */ addiu $s0, $sp, 0x44 +/* 078754 7F043C24 02002825 */ move $a1, $s0 +/* 078758 7F043C28 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 07875C 7F043C2C 00402025 */ move $a0, $v0 +/* 078760 7F043C30 8FA30054 */ lw $v1, 0x54($sp) +/* 078764 7F043C34 10000008 */ b .L7F043C58 +/* 078768 7F043C38 8FA8005C */ lw $t0, 0x5c($sp) +/* 07876C 7F043C3C C46A0008 */ lwc1 $f10, 8($v1) +.L7F043C40: +/* 078770 7F043C40 27B00044 */ addiu $s0, $sp, 0x44 +/* 078774 7F043C44 E7AA0044 */ swc1 $f10, 0x44($sp) +/* 078778 7F043C48 C470000C */ lwc1 $f16, 0xc($v1) +/* 07877C 7F043C4C E7B00048 */ swc1 $f16, 0x48($sp) +/* 078780 7F043C50 C4720010 */ lwc1 $f18, 0x10($v1) +/* 078784 7F043C54 E7B2004C */ swc1 $f18, 0x4c($sp) +.L7F043C58: +/* 078788 7F043C58 906B0001 */ lbu $t3, 1($v1) +/* 07878C 7F043C5C 27A40050 */ addiu $a0, $sp, 0x50 +/* 078790 7F043C60 8FA70044 */ lw $a3, 0x44($sp) +/* 078794 7F043C64 316C0008 */ andi $t4, $t3, 8 +/* 078798 7F043C68 1580001A */ bnez $t4, .L7F043CD4 +/* 07879C 7F043C6C C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 0787A0 7F043C70 8C650008 */ lw $a1, 8($v1) +/* 0787A4 7F043C74 8C660010 */ lw $a2, 0x10($v1) +/* 0787A8 7F043C78 AFA8005C */ sw $t0, 0x5c($sp) +/* 0787AC 7F043C7C AFA30054 */ sw $v1, 0x54($sp) +/* 0787B0 7F043C80 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0787B4 7F043C84 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0787B8 7F043C88 8FA30054 */ lw $v1, 0x54($sp) +/* 0787BC 7F043C8C 10400011 */ beqz $v0, .L7F043CD4 +/* 0787C0 7F043C90 8FA8005C */ lw $t0, 0x5c($sp) +/* 0787C4 7F043C94 8D0D0008 */ lw $t5, 8($t0) +/* 0787C8 7F043C98 8FB80058 */ lw $t8, 0x58($sp) +/* 0787CC 7F043C9C 2479002C */ addiu $t9, $v1, 0x2c +/* 0787D0 7F043CA0 31AE000E */ andi $t6, $t5, 0xe +/* 0787D4 7F043CA4 2DCF0001 */ sltiu $t7, $t6, 1 +/* 0787D8 7F043CA8 AFAF0010 */ sw $t7, 0x10($sp) +/* 0787DC 7F043CAC AFB90018 */ sw $t9, 0x18($sp) +/* 0787E0 7F043CB0 AFA0001C */ sw $zero, 0x1c($sp) +/* 0787E4 7F043CB4 00002025 */ move $a0, $zero +/* 0787E8 7F043CB8 02002825 */ move $a1, $s0 +/* 0787EC 7F043CBC 8FA60050 */ lw $a2, 0x50($sp) +/* 0787F0 7F043CC0 87A70066 */ lh $a3, 0x66($sp) +/* 0787F4 7F043CC4 0FC27094 */ jal sub_GAME_7F09C250 +/* 0787F8 7F043CC8 AFB80014 */ sw $t8, 0x14($sp) +/* 0787FC 7F043CCC 10000024 */ b .L7F043D60 +/* 078800 7F043CD0 8FBF002C */ lw $ra, 0x2c($sp) +.L7F043CD4: +/* 078804 7F043CD4 8FA90058 */ lw $t1, 0x58($sp) +/* 078808 7F043CD8 246A002C */ addiu $t2, $v1, 0x2c +/* 07880C 7F043CDC 240B0001 */ li $t3, 1 +/* 078810 7F043CE0 AFAB001C */ sw $t3, 0x1c($sp) +/* 078814 7F043CE4 AFAA0018 */ sw $t2, 0x18($sp) +/* 078818 7F043CE8 00002025 */ move $a0, $zero +/* 07881C 7F043CEC 02002825 */ move $a1, $s0 +/* 078820 7F043CF0 8FA60050 */ lw $a2, 0x50($sp) +/* 078824 7F043CF4 87A70066 */ lh $a3, 0x66($sp) +/* 078828 7F043CF8 AFA00010 */ sw $zero, 0x10($sp) +/* 07882C 7F043CFC 0FC27094 */ jal sub_GAME_7F09C250 +/* 078830 7F043D00 AFA90014 */ sw $t1, 0x14($sp) +/* 078834 7F043D04 10000016 */ b .L7F043D60 +/* 078838 7F043D08 8FBF002C */ lw $ra, 0x2c($sp) +/* 07883C 7F043D0C 8D020008 */ lw $v0, 8($t0) +.L7F043D10: +/* 078840 7F043D10 304C000E */ andi $t4, $v0, 0xe +/* 078844 7F043D14 2D820001 */ sltiu $v0, $t4, 1 +/* 078848 7F043D18 50400005 */ beql $v0, $zero, .L7F043D30 +/* 07884C 7F043D1C 8FB80058 */ lw $t8, 0x58($sp) +/* 078850 7F043D20 92020001 */ lbu $v0, 1($s0) +/* 078854 7F043D24 304E0008 */ andi $t6, $v0, 8 +/* 078858 7F043D28 2DC20001 */ sltiu $v0, $t6, 1 +/* 07885C 7F043D2C 8FB80058 */ lw $t8, 0x58($sp) +.L7F043D30: +/* 078860 7F043D30 8E060014 */ lw $a2, 0x14($s0) +/* 078864 7F043D34 AFB90018 */ sw $t9, 0x18($sp) +/* 078868 7F043D38 AFA20010 */ sw $v0, 0x10($sp) +/* 07886C 7F043D3C AFB80014 */ sw $t8, 0x14($sp) +/* 078870 7F043D40 92090001 */ lbu $t1, 1($s0) +/* 078874 7F043D44 25050058 */ addiu $a1, $t0, 0x58 +/* 078878 7F043D48 87A70066 */ lh $a3, 0x66($sp) +/* 07887C 7F043D4C 312A0008 */ andi $t2, $t1, 8 +/* 078880 7F043D50 000A582B */ sltu $t3, $zero, $t2 +/* 078884 7F043D54 0FC27094 */ jal sub_GAME_7F09C250 +/* 078888 7F043D58 AFAB001C */ sw $t3, 0x1c($sp) +/* 07888C 7F043D5C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F043D60: +/* 078890 7F043D60 8FB00028 */ lw $s0, 0x28($sp) +/* 078894 7F043D64 27BD0060 */ addiu $sp, $sp, 0x60 +/* 078898 7F043D68 03E00008 */ jr $ra +/* 07889C 7F043D6C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel generate_explosion_at_position +/* 0789EC 7F043E7C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0789F0 7F043E80 AFBF002C */ sw $ra, 0x2c($sp) +/* 0789F4 7F043E84 AFB00028 */ sw $s0, 0x28($sp) +/* 0789F8 7F043E88 AFA50064 */ sw $a1, 0x64($sp) +/* 0789FC 7F043E8C 8C880004 */ lw $t0, 4($a0) +/* 078A00 7F043E90 3C010006 */ lui $at, 6 +/* 078A04 7F043E94 00808025 */ move $s0, $a0 +/* 078A08 7F043E98 8D0E0064 */ lw $t6, 0x64($t0) +/* 078A0C 7F043E9C 2619002C */ addiu $t9, $s0, 0x2c +/* 078A10 7F043EA0 01C17824 */ and $t7, $t6, $at +/* 078A14 7F043EA4 000FC442 */ srl $t8, $t7, 0x11 +/* 078A18 7F043EA8 AFB80058 */ sw $t8, 0x58($sp) +/* 078A1C 7F043EAC 8C86001C */ lw $a2, 0x1c($a0) +/* 078A20 7F043EB0 00002025 */ move $a0, $zero +/* 078A24 7F043EB4 50C00056 */ beql $a2, $zero, .L7F044010 +/* 078A28 7F043EB8 8D020008 */ lw $v0, 8($t0) +/* 078A2C 7F043EBC 8CC2001C */ lw $v0, 0x1c($a2) +/* 078A30 7F043EC0 00C01825 */ move $v1, $a2 +/* 078A34 7F043EC4 50400006 */ beql $v0, $zero, .L7F043EE0 +/* 078A38 7F043EC8 8C790014 */ lw $t9, 0x14($v1) +/* 078A3C 7F043ECC 00401825 */ move $v1, $v0 +.L7F043ED0: +/* 078A40 7F043ED0 8C42001C */ lw $v0, 0x1c($v0) +/* 078A44 7F043ED4 5440FFFE */ bnezl $v0, .L7F043ED0 +/* 078A48 7F043ED8 00401825 */ move $v1, $v0 +/* 078A4C 7F043EDC 8C790014 */ lw $t9, 0x14($v1) +.L7F043EE0: +/* 078A50 7F043EE0 AFB9004C */ sw $t9, 0x4c($sp) +/* 078A54 7F043EE4 92090001 */ lbu $t1, 1($s0) +/* 078A58 7F043EE8 312A0002 */ andi $t2, $t1, 2 +/* 078A5C 7F043EEC 51400014 */ beql $t2, $zero, .L7F043F40 +/* 078A60 7F043EF0 C46A0008 */ lwc1 $f10, 8($v1) +/* 078A64 7F043EF4 8D040014 */ lw $a0, 0x14($t0) +/* 078A68 7F043EF8 AFA8005C */ sw $t0, 0x5c($sp) +/* 078A6C 7F043EFC 0FC1B324 */ jal getsubmatrix +/* 078A70 7F043F00 AFA30050 */ sw $v1, 0x50($sp) +/* 078A74 7F043F04 C4440030 */ lwc1 $f4, 0x30($v0) +/* 078A78 7F043F08 E7A40040 */ swc1 $f4, 0x40($sp) +/* 078A7C 7F043F0C C4460034 */ lwc1 $f6, 0x34($v0) +/* 078A80 7F043F10 E7A60044 */ swc1 $f6, 0x44($sp) +/* 078A84 7F043F14 C4480038 */ lwc1 $f8, 0x38($v0) +/* 078A88 7F043F18 0FC1E28D */ jal sub_GAME_7F078444 +/* 078A8C 7F043F1C E7A80048 */ swc1 $f8, 0x48($sp) +/* 078A90 7F043F20 27B00040 */ addiu $s0, $sp, 0x40 +/* 078A94 7F043F24 02002825 */ move $a1, $s0 +/* 078A98 7F043F28 0FC16265 */ jal matrix_4x4_transform_vector_in_place +/* 078A9C 7F043F2C 00402025 */ move $a0, $v0 +/* 078AA0 7F043F30 8FA30050 */ lw $v1, 0x50($sp) +/* 078AA4 7F043F34 10000008 */ b .L7F043F58 +/* 078AA8 7F043F38 8FA8005C */ lw $t0, 0x5c($sp) +/* 078AAC 7F043F3C C46A0008 */ lwc1 $f10, 8($v1) +.L7F043F40: +/* 078AB0 7F043F40 27B00040 */ addiu $s0, $sp, 0x40 +/* 078AB4 7F043F44 E7AA0040 */ swc1 $f10, 0x40($sp) +/* 078AB8 7F043F48 C470000C */ lwc1 $f16, 0xc($v1) +/* 078ABC 7F043F4C E7B00044 */ swc1 $f16, 0x44($sp) +/* 078AC0 7F043F50 C4720010 */ lwc1 $f18, 0x10($v1) +/* 078AC4 7F043F54 E7B20048 */ swc1 $f18, 0x48($sp) +.L7F043F58: +/* 078AC8 7F043F58 906B0001 */ lbu $t3, 1($v1) +/* 078ACC 7F043F5C 27A4004C */ addiu $a0, $sp, 0x4c +/* 078AD0 7F043F60 8FA70040 */ lw $a3, 0x40($sp) +/* 078AD4 7F043F64 316C0008 */ andi $t4, $t3, 8 +/* 078AD8 7F043F68 1580001A */ bnez $t4, .L7F043FD4 +/* 078ADC 7F043F6C C7A40048 */ lwc1 $f4, 0x48($sp) +/* 078AE0 7F043F70 8C650008 */ lw $a1, 8($v1) +/* 078AE4 7F043F74 8C660010 */ lw $a2, 0x10($v1) +/* 078AE8 7F043F78 AFA8005C */ sw $t0, 0x5c($sp) +/* 078AEC 7F043F7C AFA30050 */ sw $v1, 0x50($sp) +/* 078AF0 7F043F80 0FC2C5E5 */ jal sub_GAME_7F0B0BE4 +/* 078AF4 7F043F84 E7A40010 */ swc1 $f4, 0x10($sp) +/* 078AF8 7F043F88 8FA30050 */ lw $v1, 0x50($sp) +/* 078AFC 7F043F8C 10400011 */ beqz $v0, .L7F043FD4 +/* 078B00 7F043F90 8FA8005C */ lw $t0, 0x5c($sp) +/* 078B04 7F043F94 8D0D0008 */ lw $t5, 8($t0) +/* 078B08 7F043F98 8FB80058 */ lw $t8, 0x58($sp) +/* 078B0C 7F043F9C 2479002C */ addiu $t9, $v1, 0x2c +/* 078B10 7F043FA0 31AE000E */ andi $t6, $t5, 0xe +/* 078B14 7F043FA4 2DCF0001 */ sltiu $t7, $t6, 1 +/* 078B18 7F043FA8 AFAF0010 */ sw $t7, 0x10($sp) +/* 078B1C 7F043FAC AFB90018 */ sw $t9, 0x18($sp) +/* 078B20 7F043FB0 AFA0001C */ sw $zero, 0x1c($sp) +/* 078B24 7F043FB4 00002025 */ move $a0, $zero +/* 078B28 7F043FB8 02002825 */ move $a1, $s0 +/* 078B2C 7F043FBC 8FA6004C */ lw $a2, 0x4c($sp) +/* 078B30 7F043FC0 87A70066 */ lh $a3, 0x66($sp) +/* 078B34 7F043FC4 0FC2737C */ jal sub_GAME_7F09C250 +/* 078B38 7F043FC8 AFB80014 */ sw $t8, 0x14($sp) +/* 078B3C 7F043FCC 10000024 */ b .L7F044060 +/* 078B40 7F043FD0 00401825 */ move $v1, $v0 +.L7F043FD4: +/* 078B44 7F043FD4 8FA90058 */ lw $t1, 0x58($sp) +/* 078B48 7F043FD8 246A002C */ addiu $t2, $v1, 0x2c +/* 078B4C 7F043FDC 240B0001 */ li $t3, 1 +/* 078B50 7F043FE0 AFAB001C */ sw $t3, 0x1c($sp) +/* 078B54 7F043FE4 AFAA0018 */ sw $t2, 0x18($sp) +/* 078B58 7F043FE8 00002025 */ move $a0, $zero +/* 078B5C 7F043FEC 02002825 */ move $a1, $s0 +/* 078B60 7F043FF0 8FA6004C */ lw $a2, 0x4c($sp) +/* 078B64 7F043FF4 87A70066 */ lh $a3, 0x66($sp) +/* 078B68 7F043FF8 AFA00010 */ sw $zero, 0x10($sp) +/* 078B6C 7F043FFC 0FC2737C */ jal sub_GAME_7F09C250 +/* 078B70 7F044000 AFA90014 */ sw $t1, 0x14($sp) +/* 078B74 7F044004 10000016 */ b .L7F044060 +/* 078B78 7F044008 00401825 */ move $v1, $v0 +/* 078B7C 7F04400C 8D020008 */ lw $v0, 8($t0) +.L7F044010: +/* 078B80 7F044010 304C000E */ andi $t4, $v0, 0xe +/* 078B84 7F044014 2D820001 */ sltiu $v0, $t4, 1 +/* 078B88 7F044018 50400005 */ beql $v0, $zero, .L7F044030 +/* 078B8C 7F04401C 8FB80058 */ lw $t8, 0x58($sp) +/* 078B90 7F044020 92020001 */ lbu $v0, 1($s0) +/* 078B94 7F044024 304E0008 */ andi $t6, $v0, 8 +/* 078B98 7F044028 2DC20001 */ sltiu $v0, $t6, 1 +/* 078B9C 7F04402C 8FB80058 */ lw $t8, 0x58($sp) +.L7F044030: +/* 078BA0 7F044030 8E060014 */ lw $a2, 0x14($s0) +/* 078BA4 7F044034 AFB90018 */ sw $t9, 0x18($sp) +/* 078BA8 7F044038 AFA20010 */ sw $v0, 0x10($sp) +/* 078BAC 7F04403C AFB80014 */ sw $t8, 0x14($sp) +/* 078BB0 7F044040 92090001 */ lbu $t1, 1($s0) +/* 078BB4 7F044044 25050058 */ addiu $a1, $t0, 0x58 +/* 078BB8 7F044048 87A70066 */ lh $a3, 0x66($sp) +/* 078BBC 7F04404C 312A0008 */ andi $t2, $t1, 8 +/* 078BC0 7F044050 000A582B */ sltu $t3, $zero, $t2 +/* 078BC4 7F044054 0FC2737C */ jal sub_GAME_7F09C250 +/* 078BC8 7F044058 AFAB001C */ sw $t3, 0x1c($sp) +/* 078BCC 7F04405C 00401825 */ move $v1, $v0 +.L7F044060: +/* 078BD0 7F044060 8FBF002C */ lw $ra, 0x2c($sp) +/* 078BD4 7F044064 8FB00028 */ lw $s0, 0x28($sp) +/* 078BD8 7F044068 27BD0060 */ addiu $sp, $sp, 0x60 +/* 078BDC 7F04406C 03E00008 */ jr $ra +/* 078BE0 7F044070 00601025 */ move $v0, $v1 + +) +#endif + +#endif + + +#ifdef NONMATCHING +void handle_thrown_explosive_detonation(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80052A94 +.word 0x47742400 /*62500.0*/ +.text +glabel handle_thrown_explosive_detonation +/* 0788A0 7F043D70 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0788A4 7F043D74 AFBF0014 */ sw $ra, 0x14($sp) +/* 0788A8 7F043D78 AFA40020 */ sw $a0, 0x20($sp) +/* 0788AC 7F043D7C 8C870004 */ lw $a3, 4($a0) +/* 0788B0 7F043D80 0FC26C54 */ jal get_cur_playernum +/* 0788B4 7F043D84 AFA7001C */ sw $a3, 0x1c($sp) +/* 0788B8 7F043D88 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 0788BC 7F043D8C 00402025 */ move $a0, $v0 +/* 0788C0 7F043D90 14400117 */ bnez $v0, .L7F0441F0 +/* 0788C4 7F043D94 8FA7001C */ lw $a3, 0x1c($sp) +/* 0788C8 7F043D98 90E20003 */ lbu $v0, 3($a3) +/* 0788CC 7F043D9C 24010007 */ li $at, 7 +/* 0788D0 7F043DA0 5441000F */ bnel $v0, $at, .L7F043DE0 +/* 0788D4 7F043DA4 24010008 */ li $at, 8 +/* 0788D8 7F043DA8 8CEF0008 */ lw $t7, 8($a3) +/* 0788DC 7F043DAC 8FA40020 */ lw $a0, 0x20($sp) +/* 0788E0 7F043DB0 2405000C */ li $a1, 12 +/* 0788E4 7F043DB4 000FC0C0 */ sll $t8, $t7, 3 +/* 0788E8 7F043DB8 0703010E */ bgezl $t8, .L7F0441F4 +/* 0788EC 7F043DBC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0788F0 7F043DC0 0FC10EDF */ jal generate_explosion_at_position +/* 0788F4 7F043DC4 AFA7001C */ sw $a3, 0x1c($sp) +/* 0788F8 7F043DC8 8FA7001C */ lw $a3, 0x1c($sp) +/* 0788FC 7F043DCC 8CF90064 */ lw $t9, 0x64($a3) +/* 078900 7F043DD0 37280004 */ ori $t0, $t9, 4 +/* 078904 7F043DD4 10000106 */ b .L7F0441F0 +/* 078908 7F043DD8 ACE80064 */ sw $t0, 0x64($a3) +/* 07890C 7F043DDC 24010008 */ li $at, 8 +.L7F043DE0: +/* 078910 7F043DE0 14410103 */ bne $v0, $at, .L7F0441F0 +/* 078914 7F043DE4 8FA90020 */ lw $t1, 0x20($sp) +/* 078918 7F043DE8 8D260004 */ lw $a2, 4($t1) +/* 07891C 7F043DEC 2401001A */ li $at, 26 +/* 078920 7F043DF0 80C30080 */ lb $v1, 0x80($a2) +/* 078924 7F043DF4 10610003 */ beq $v1, $at, .L7F043E04 +/* 078928 7F043DF8 24010057 */ li $at, 87 +/* 07892C 7F043DFC 5461001B */ bnel $v1, $at, .L7F043E6C +/* 078930 7F043E00 24010056 */ li $at, 86 +.L7F043E04: +/* 078934 7F043E04 84C20082 */ lh $v0, 0x82($a2) +/* 078938 7F043E08 3C0A8005 */ lui $t2, %hi(clock_timer) +/* 07893C 7F043E0C 04420017 */ bltzl $v0, .L7F043E6C +/* 078940 7F043E10 24010056 */ li $at, 86 +/* 078944 7F043E14 8D4A8374 */ lw $t2, %lo(clock_timer)($t2) +/* 078948 7F043E18 004A5823 */ subu $t3, $v0, $t2 +/* 07894C 7F043E1C A4CB0082 */ sh $t3, 0x82($a2) +/* 078950 7F043E20 84CC0082 */ lh $t4, 0x82($a2) +/* 078954 7F043E24 8FA40020 */ lw $a0, 0x20($sp) +/* 078958 7F043E28 058300F2 */ bgezl $t4, .L7F0441F4 +/* 07895C 7F043E2C 8FBF0014 */ lw $ra, 0x14($sp) +/* 078960 7F043E30 8CED000C */ lw $t5, 0xc($a3) +/* 078964 7F043E34 2405000D */ li $a1, 13 +/* 078968 7F043E38 000D7000 */ sll $t6, $t5, 0 +/* 07896C 7F043E3C 05C10003 */ bgez $t6, .L7F043E4C +/* 078970 7F043E40 00000000 */ nop +/* 078974 7F043E44 10000001 */ b .L7F043E4C +/* 078978 7F043E48 24050011 */ li $a1, 17 +.L7F043E4C: +/* 07897C 7F043E4C 0FC10EDF */ jal generate_explosion_at_position +/* 078980 7F043E50 AFA7001C */ sw $a3, 0x1c($sp) +/* 078984 7F043E54 8FA7001C */ lw $a3, 0x1c($sp) +/* 078988 7F043E58 8CEF0064 */ lw $t7, 0x64($a3) +/* 07898C 7F043E5C 35F80004 */ ori $t8, $t7, 4 +/* 078990 7F043E60 100000E3 */ b .L7F0441F0 +/* 078994 7F043E64 ACF80064 */ sw $t8, 0x64($a3) +/* 078998 7F043E68 24010056 */ li $at, 86 +.L7F043E6C: +/* 07899C 7F043E6C 54610014 */ bnel $v1, $at, .L7F043EC0 +/* 0789A0 7F043E70 24010022 */ li $at, 34 +/* 0789A4 7F043E74 84D90082 */ lh $t9, 0x82($a2) +/* 0789A8 7F043E78 8FA40020 */ lw $a0, 0x20($sp) +/* 0789AC 7F043E7C 572000DD */ bnezl $t9, .L7F0441F4 +/* 0789B0 7F043E80 8FBF0014 */ lw $ra, 0x14($sp) +/* 0789B4 7F043E84 8CE8000C */ lw $t0, 0xc($a3) +/* 0789B8 7F043E88 2405000D */ li $a1, 13 +/* 0789BC 7F043E8C 00084800 */ sll $t1, $t0, 0 +/* 0789C0 7F043E90 05210003 */ bgez $t1, .L7F043EA0 +/* 0789C4 7F043E94 00000000 */ nop +/* 0789C8 7F043E98 10000001 */ b .L7F043EA0 +/* 0789CC 7F043E9C 24050011 */ li $a1, 17 +.L7F043EA0: +/* 0789D0 7F043EA0 0FC10EDF */ jal generate_explosion_at_position +/* 0789D4 7F043EA4 AFA7001C */ sw $a3, 0x1c($sp) +/* 0789D8 7F043EA8 8FA7001C */ lw $a3, 0x1c($sp) +/* 0789DC 7F043EAC 8CEA0064 */ lw $t2, 0x64($a3) +/* 0789E0 7F043EB0 354B0004 */ ori $t3, $t2, 4 +/* 0789E4 7F043EB4 100000CE */ b .L7F0441F0 +/* 0789E8 7F043EB8 ACEB0064 */ sw $t3, 0x64($a3) +/* 0789EC 7F043EBC 24010022 */ li $at, 34 +.L7F043EC0: +/* 0789F0 7F043EC0 54610014 */ bnel $v1, $at, .L7F043F14 +/* 0789F4 7F043EC4 2401001B */ li $at, 27 +/* 0789F8 7F043EC8 84CC0082 */ lh $t4, 0x82($a2) +/* 0789FC 7F043ECC 8FA40020 */ lw $a0, 0x20($sp) +/* 078A00 7F043ED0 24050011 */ li $a1, 17 +/* 078A04 7F043ED4 558000C7 */ bnezl $t4, .L7F0441F4 +/* 078A08 7F043ED8 8FBF0014 */ lw $ra, 0x14($sp) +/* 078A0C 7F043EDC 0FC10EDF */ jal generate_explosion_at_position +/* 078A10 7F043EE0 AFA7001C */ sw $a3, 0x1c($sp) +/* 078A14 7F043EE4 8FA7001C */ lw $a3, 0x1c($sp) +/* 078A18 7F043EE8 24040078 */ li $a0, 120 +/* 078A1C 7F043EEC 8CED0064 */ lw $t5, 0x64($a3) +/* 078A20 7F043EF0 35AE0004 */ ori $t6, $t5, 4 +/* 078A24 7F043EF4 0FC22FF1 */ jal trigger_explosions_around_player +/* 078A28 7F043EF8 ACEE0064 */ sw $t6, 0x64($a3) +/* 078A2C 7F043EFC 24040002 */ li $a0, 2 +/* 078A30 7F043F00 0FC15858 */ jal set_unset_clock_lock_bits +/* 078A34 7F043F04 00002825 */ move $a1, $zero +/* 078A38 7F043F08 100000BA */ b .L7F0441F4 +/* 078A3C 7F043F0C 8FBF0014 */ lw $ra, 0x14($sp) +/* 078A40 7F043F10 2401001B */ li $at, 27 +.L7F043F14: +/* 078A44 7F043F14 10610003 */ beq $v1, $at, .L7F043F24 +/* 078A48 7F043F18 24010021 */ li $at, 33 +/* 078A4C 7F043F1C 5461001F */ bnel $v1, $at, .L7F043F9C +/* 078A50 7F043F20 2401001D */ li $at, 29 +.L7F043F24: +/* 078A54 7F043F24 84C20082 */ lh $v0, 0x82($a2) +/* 078A58 7F043F28 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 078A5C 7F043F2C 0442001B */ bltzl $v0, .L7F043F9C +/* 078A60 7F043F30 2401001D */ li $at, 29 +/* 078A64 7F043F34 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 078A68 7F043F38 004FC023 */ subu $t8, $v0, $t7 +/* 078A6C 7F043F3C A4D80082 */ sh $t8, 0x82($a2) +/* 078A70 7F043F40 84D90082 */ lh $t9, 0x82($a2) +/* 078A74 7F043F44 8FA40020 */ lw $a0, 0x20($sp) +/* 078A78 7F043F48 072300AA */ bgezl $t9, .L7F0441F4 +/* 078A7C 7F043F4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 078A80 7F043F50 8CE8000C */ lw $t0, 0xc($a3) +/* 078A84 7F043F54 2405000D */ li $a1, 13 +/* 078A88 7F043F58 00084800 */ sll $t1, $t0, 0 +/* 078A8C 7F043F5C 05210003 */ bgez $t1, .L7F043F6C +/* 078A90 7F043F60 00000000 */ nop +/* 078A94 7F043F64 10000001 */ b .L7F043F6C +/* 078A98 7F043F68 24050011 */ li $a1, 17 +.L7F043F6C: +/* 078A9C 7F043F6C AFA60018 */ sw $a2, 0x18($sp) +/* 078AA0 7F043F70 0FC10EDF */ jal generate_explosion_at_position +/* 078AA4 7F043F74 AFA7001C */ sw $a3, 0x1c($sp) +/* 078AA8 7F043F78 8FA60018 */ lw $a2, 0x18($sp) +/* 078AAC 7F043F7C 8FA7001C */ lw $a3, 0x1c($sp) +/* 078AB0 7F043F80 240AFFFF */ li $t2, -1 +/* 078AB4 7F043F84 A4CA0082 */ sh $t2, 0x82($a2) +/* 078AB8 7F043F88 8CEB0064 */ lw $t3, 0x64($a3) +/* 078ABC 7F043F8C 356C0004 */ ori $t4, $t3, 4 +/* 078AC0 7F043F90 10000097 */ b .L7F0441F0 +/* 078AC4 7F043F94 ACEC0064 */ sw $t4, 0x64($a3) +/* 078AC8 7F043F98 2401001D */ li $at, 29 +.L7F043F9C: +/* 078ACC 7F043F9C 54610049 */ bnel $v1, $at, .L7F0440C4 +/* 078AD0 7F043FA0 2401001C */ li $at, 28 +/* 078AD4 7F043FA4 3C038003 */ lui $v1, %hi(D_80030AF4) +/* 078AD8 7F043FA8 8C630AF4 */ lw $v1, %lo(D_80030AF4)($v1) +/* 078ADC 7F043FAC 3C088005 */ lui $t0, %hi(clock_timer) +/* 078AE0 7F043FB0 5060000C */ beql $v1, $zero, .L7F043FE4 +/* 078AE4 7F043FB4 84C20082 */ lh $v0, 0x82($a2) +/* 078AE8 7F043FB8 8CE20064 */ lw $v0, 0x64($a3) +/* 078AEC 7F043FBC 3C010006 */ lui $at, 6 +/* 078AF0 7F043FC0 240F0001 */ li $t7, 1 +/* 078AF4 7F043FC4 00416824 */ and $t5, $v0, $at +/* 078AF8 7F043FC8 000D7442 */ srl $t6, $t5, 0x11 +/* 078AFC 7F043FCC 01CFC004 */ sllv $t8, $t7, $t6 +/* 078B00 7F043FD0 0078C824 */ and $t9, $v1, $t8 +/* 078B04 7F043FD4 53200003 */ beql $t9, $zero, .L7F043FE4 +/* 078B08 7F043FD8 84C20082 */ lh $v0, 0x82($a2) +/* 078B0C 7F043FDC A4C00082 */ sh $zero, 0x82($a2) +/* 078B10 7F043FE0 84C20082 */ lh $v0, 0x82($a2) +.L7F043FE4: +/* 078B14 7F043FE4 28410002 */ slti $at, $v0, 2 +/* 078B18 7F043FE8 1420000B */ bnez $at, .L7F044018 +/* 078B1C 7F043FEC 00000000 */ nop +/* 078B20 7F043FF0 8D088374 */ lw $t0, %lo(clock_timer)($t0) +/* 078B24 7F043FF4 240B0001 */ li $t3, 1 +/* 078B28 7F043FF8 00484823 */ subu $t1, $v0, $t0 +/* 078B2C 7F043FFC A4C90082 */ sh $t1, 0x82($a2) +/* 078B30 7F044000 84CA0082 */ lh $t2, 0x82($a2) +/* 078B34 7F044004 29410002 */ slti $at, $t2, 2 +/* 078B38 7F044008 5020007A */ beql $at, $zero, .L7F0441F4 +/* 078B3C 7F04400C 8FBF0014 */ lw $ra, 0x14($sp) +/* 078B40 7F044010 10000077 */ b .L7F0441F0 +/* 078B44 7F044014 A4CB0082 */ sh $t3, 0x82($a2) +.L7F044018: +/* 078B48 7F044018 54400076 */ bnezl $v0, .L7F0441F4 +/* 078B4C 7F04401C 8FBF0014 */ lw $ra, 0x14($sp) +/* 078B50 7F044020 8CEC000C */ lw $t4, 0xc($a3) +/* 078B54 7F044024 8FA40020 */ lw $a0, 0x20($sp) +/* 078B58 7F044028 24050011 */ li $a1, 17 +/* 078B5C 7F04402C 000C6800 */ sll $t5, $t4, 0 +/* 078B60 7F044030 05A30008 */ bgezl $t5, .L7F044054 +/* 078B64 7F044034 AFA60018 */ sw $a2, 0x18($sp) +/* 078B68 7F044038 AFA60018 */ sw $a2, 0x18($sp) +/* 078B6C 7F04403C 0FC10EDF */ jal generate_explosion_at_position +/* 078B70 7F044040 AFA7001C */ sw $a3, 0x1c($sp) +/* 078B74 7F044044 8FA60018 */ lw $a2, 0x18($sp) +/* 078B78 7F044048 10000017 */ b .L7F0440A8 +/* 078B7C 7F04404C 8FA7001C */ lw $a3, 0x1c($sp) +/* 078B80 7F044050 AFA60018 */ sw $a2, 0x18($sp) +.L7F044054: +/* 078B84 7F044054 0C001A57 */ jal get_stage_num +/* 078B88 7F044058 AFA7001C */ sw $a3, 0x1c($sp) +/* 078B8C 7F04405C 24010022 */ li $at, 34 +/* 078B90 7F044060 8FA60018 */ lw $a2, 0x18($sp) +/* 078B94 7F044064 14410009 */ bne $v0, $at, .L7F04408C +/* 078B98 7F044068 8FA7001C */ lw $a3, 0x1c($sp) +/* 078B9C 7F04406C 8FA40020 */ lw $a0, 0x20($sp) +/* 078BA0 7F044070 24050013 */ li $a1, 19 +/* 078BA4 7F044074 AFA60018 */ sw $a2, 0x18($sp) +/* 078BA8 7F044078 0FC10EDF */ jal generate_explosion_at_position +/* 078BAC 7F04407C AFA7001C */ sw $a3, 0x1c($sp) +/* 078BB0 7F044080 8FA60018 */ lw $a2, 0x18($sp) +/* 078BB4 7F044084 10000008 */ b .L7F0440A8 +/* 078BB8 7F044088 8FA7001C */ lw $a3, 0x1c($sp) +.L7F04408C: +/* 078BBC 7F04408C 8FA40020 */ lw $a0, 0x20($sp) +/* 078BC0 7F044090 2405000D */ li $a1, 13 +/* 078BC4 7F044094 AFA60018 */ sw $a2, 0x18($sp) +/* 078BC8 7F044098 0FC10EDF */ jal generate_explosion_at_position +/* 078BCC 7F04409C AFA7001C */ sw $a3, 0x1c($sp) +/* 078BD0 7F0440A0 8FA60018 */ lw $a2, 0x18($sp) +/* 078BD4 7F0440A4 8FA7001C */ lw $a3, 0x1c($sp) +.L7F0440A8: +/* 078BD8 7F0440A8 240EFFFF */ li $t6, -1 +/* 078BDC 7F0440AC A4CE0082 */ sh $t6, 0x82($a2) +/* 078BE0 7F0440B0 8CEF0064 */ lw $t7, 0x64($a3) +/* 078BE4 7F0440B4 35F80004 */ ori $t8, $t7, 4 +/* 078BE8 7F0440B8 1000004D */ b .L7F0441F0 +/* 078BEC 7F0440BC ACF80064 */ sw $t8, 0x64($a3) +/* 078BF0 7F0440C0 2401001C */ li $at, 28 +.L7F0440C4: +/* 078BF4 7F0440C4 5461004B */ bnel $v1, $at, .L7F0441F4 +/* 078BF8 7F0440C8 8FBF0014 */ lw $ra, 0x14($sp) +/* 078BFC 7F0440CC 84C20082 */ lh $v0, 0x82($a2) +/* 078C00 7F0440D0 3C198005 */ lui $t9, %hi(clock_timer) +/* 078C04 7F0440D4 28410002 */ slti $at, $v0, 2 +/* 078C08 7F0440D8 54200012 */ bnezl $at, .L7F044124 +/* 078C0C 7F0440DC 24010001 */ li $at, 1 +/* 078C10 7F0440E0 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 078C14 7F0440E4 240A0001 */ li $t2, 1 +/* 078C18 7F0440E8 00C02025 */ move $a0, $a2 +/* 078C1C 7F0440EC 00594023 */ subu $t0, $v0, $t9 +/* 078C20 7F0440F0 A4C80082 */ sh $t0, 0x82($a2) +/* 078C24 7F0440F4 84C90082 */ lh $t1, 0x82($a2) +/* 078C28 7F0440F8 29210002 */ slti $at, $t1, 2 +/* 078C2C 7F0440FC 50200027 */ beql $at, $zero, .L7F04419C +/* 078C30 7F044100 84CC0082 */ lh $t4, 0x82($a2) +/* 078C34 7F044104 A4CA0082 */ sh $t2, 0x82($a2) +/* 078C38 7F044108 AFA7001C */ sw $a3, 0x1c($sp) +/* 078C3C 7F04410C 0FC146D7 */ jal add_obj_to_temp_proxmine_table +/* 078C40 7F044110 AFA60018 */ sw $a2, 0x18($sp) +/* 078C44 7F044114 8FA60018 */ lw $a2, 0x18($sp) +/* 078C48 7F044118 1000001F */ b .L7F044198 +/* 078C4C 7F04411C 8FA7001C */ lw $a3, 0x1c($sp) +/* 078C50 7F044120 24010001 */ li $at, 1 +.L7F044124: +/* 078C54 7F044124 5441001D */ bnel $v0, $at, .L7F04419C +/* 078C58 7F044128 84CC0082 */ lh $t4, 0x82($a2) +/* 078C5C 7F04412C AFA60018 */ sw $a2, 0x18($sp) +/* 078C60 7F044130 0FC225E6 */ jal get_curplayer_positiondata +/* 078C64 7F044134 AFA7001C */ sw $a3, 0x1c($sp) +/* 078C68 7F044138 8FAB0020 */ lw $t3, 0x20($sp) +/* 078C6C 7F04413C C4440008 */ lwc1 $f4, 8($v0) +/* 078C70 7F044140 C448000C */ lwc1 $f8, 0xc($v0) +/* 078C74 7F044144 C5660008 */ lwc1 $f6, 8($t3) +/* 078C78 7F044148 C56A000C */ lwc1 $f10, 0xc($t3) +/* 078C7C 7F04414C C4500010 */ lwc1 $f16, 0x10($v0) +/* 078C80 7F044150 46062001 */ sub.s $f0, $f4, $f6 +/* 078C84 7F044154 C5720010 */ lwc1 $f18, 0x10($t3) +/* 078C88 7F044158 3C018005 */ lui $at, %hi(D_80052A94) +/* 078C8C 7F04415C 460A4081 */ sub.s $f2, $f8, $f10 +/* 078C90 7F044160 46000102 */ mul.s $f4, $f0, $f0 +/* 078C94 7F044164 8FA60018 */ lw $a2, 0x18($sp) +/* 078C98 7F044168 46128301 */ sub.s $f12, $f16, $f18 +/* 078C9C 7F04416C 46021182 */ mul.s $f6, $f2, $f2 +/* 078CA0 7F044170 C4322A94 */ lwc1 $f18, %lo(D_80052A94)($at) +/* 078CA4 7F044174 8FA7001C */ lw $a3, 0x1c($sp) +/* 078CA8 7F044178 460C6282 */ mul.s $f10, $f12, $f12 +/* 078CAC 7F04417C 46062200 */ add.s $f8, $f4, $f6 +/* 078CB0 7F044180 460A4400 */ add.s $f16, $f8, $f10 +/* 078CB4 7F044184 4612803C */ c.lt.s $f16, $f18 +/* 078CB8 7F044188 00000000 */ nop +/* 078CBC 7F04418C 45020003 */ bc1fl .L7F04419C +/* 078CC0 7F044190 84CC0082 */ lh $t4, 0x82($a2) +/* 078CC4 7F044194 A4C00082 */ sh $zero, 0x82($a2) +.L7F044198: +/* 078CC8 7F044198 84CC0082 */ lh $t4, 0x82($a2) +.L7F04419C: +/* 078CCC 7F04419C 8FA40020 */ lw $a0, 0x20($sp) +/* 078CD0 7F0441A0 55800014 */ bnezl $t4, .L7F0441F4 +/* 078CD4 7F0441A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 078CD8 7F0441A8 8CED000C */ lw $t5, 0xc($a3) +/* 078CDC 7F0441AC 2405000D */ li $a1, 13 +/* 078CE0 7F0441B0 000D7000 */ sll $t6, $t5, 0 +/* 078CE4 7F0441B4 05C10003 */ bgez $t6, .L7F0441C4 +/* 078CE8 7F0441B8 00000000 */ nop +/* 078CEC 7F0441BC 10000001 */ b .L7F0441C4 +/* 078CF0 7F0441C0 24050011 */ li $a1, 17 +.L7F0441C4: +/* 078CF4 7F0441C4 AFA60018 */ sw $a2, 0x18($sp) +/* 078CF8 7F0441C8 0FC10EDF */ jal generate_explosion_at_position +/* 078CFC 7F0441CC AFA7001C */ sw $a3, 0x1c($sp) +/* 078D00 7F0441D0 8FA40018 */ lw $a0, 0x18($sp) +/* 078D04 7F0441D4 8FA7001C */ lw $a3, 0x1c($sp) +/* 078D08 7F0441D8 240FFFFF */ li $t7, -1 +/* 078D0C 7F0441DC A48F0082 */ sh $t7, 0x82($a0) +/* 078D10 7F0441E0 8CF80064 */ lw $t8, 0x64($a3) +/* 078D14 7F0441E4 37190004 */ ori $t9, $t8, 4 +/* 078D18 7F0441E8 0FC146E5 */ jal remove_obj_from_temp_proxmine_table +/* 078D1C 7F0441EC ACF90064 */ sw $t9, 0x64($a3) +.L7F0441F0: +/* 078D20 7F0441F0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0441F4: +/* 078D24 7F0441F4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 078D28 7F0441F8 03E00008 */ jr $ra +/* 078D2C 7F0441FC 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80052A94 +.word 0x47742400 /*62500.0*/ +.text +glabel handle_thrown_explosive_detonation +/* 078BE4 7F044074 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 078BE8 7F044078 AFBF0014 */ sw $ra, 0x14($sp) +/* 078BEC 7F04407C AFA40030 */ sw $a0, 0x30($sp) +/* 078BF0 7F044080 8C870004 */ lw $a3, 4($a0) +/* 078BF4 7F044084 0FC26F3C */ jal get_cur_playernum +/* 078BF8 7F044088 AFA7002C */ sw $a3, 0x2c($sp) +/* 078BFC 7F04408C 0FC2701E */ jal sub_GAME_7F09B4D8 +/* 078C00 7F044090 00402025 */ move $a0, $v0 +/* 078C04 7F044094 14400110 */ bnez $v0, .L7F0444D8 +/* 078C08 7F044098 8FA7002C */ lw $a3, 0x2c($sp) +/* 078C0C 7F04409C 90E20003 */ lbu $v0, 3($a3) +/* 078C10 7F0440A0 24010007 */ li $at, 7 +/* 078C14 7F0440A4 5441000F */ bnel $v0, $at, .L7F0440E4 +/* 078C18 7F0440A8 24010008 */ li $at, 8 +/* 078C1C 7F0440AC 8CEF0008 */ lw $t7, 8($a3) +/* 078C20 7F0440B0 8FA40030 */ lw $a0, 0x30($sp) +/* 078C24 7F0440B4 2405000C */ li $a1, 12 +/* 078C28 7F0440B8 000FC0C0 */ sll $t8, $t7, 3 +/* 078C2C 7F0440BC 07030107 */ bgezl $t8, .L7F0444DC +/* 078C30 7F0440C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 078C34 7F0440C4 0FC10F9F */ jal generate_explosion_at_position +/* 078C38 7F0440C8 AFA7002C */ sw $a3, 0x2c($sp) +/* 078C3C 7F0440CC 8FA7002C */ lw $a3, 0x2c($sp) +/* 078C40 7F0440D0 8CF90064 */ lw $t9, 0x64($a3) +/* 078C44 7F0440D4 37280004 */ ori $t0, $t9, 4 +/* 078C48 7F0440D8 100000FF */ b .L7F0444D8 +/* 078C4C 7F0440DC ACE80064 */ sw $t0, 0x64($a3) +/* 078C50 7F0440E0 24010008 */ li $at, 8 +.L7F0440E4: +/* 078C54 7F0440E4 144100FC */ bne $v0, $at, .L7F0444D8 +/* 078C58 7F0440E8 8FA90030 */ lw $t1, 0x30($sp) +/* 078C5C 7F0440EC 8D260004 */ lw $a2, 4($t1) +/* 078C60 7F0440F0 2401001A */ li $at, 26 +/* 078C64 7F0440F4 80C30080 */ lb $v1, 0x80($a2) +/* 078C68 7F0440F8 10610003 */ beq $v1, $at, .L7F044108 +/* 078C6C 7F0440FC 24010057 */ li $at, 87 +/* 078C70 7F044100 5461001B */ bnel $v1, $at, .L7F044170 +/* 078C74 7F044104 24010056 */ li $at, 86 +.L7F044108: +/* 078C78 7F044108 84C20082 */ lh $v0, 0x82($a2) +/* 078C7C 7F04410C 3C0A8005 */ lui $t2, %hi(clock_timer) # $t2, 0x8005 +/* 078C80 7F044110 04420017 */ bltzl $v0, .L7F044170 +/* 078C84 7F044114 24010056 */ li $at, 86 +/* 078C88 7F044118 8D4A83A4 */ lw $t2, %lo(clock_timer)($t2) +/* 078C8C 7F04411C 004A5823 */ subu $t3, $v0, $t2 +/* 078C90 7F044120 A4CB0082 */ sh $t3, 0x82($a2) +/* 078C94 7F044124 84CC0082 */ lh $t4, 0x82($a2) +/* 078C98 7F044128 8FA40030 */ lw $a0, 0x30($sp) +/* 078C9C 7F04412C 058300EB */ bgezl $t4, .L7F0444DC +/* 078CA0 7F044130 8FBF0014 */ lw $ra, 0x14($sp) +/* 078CA4 7F044134 8CED000C */ lw $t5, 0xc($a3) +/* 078CA8 7F044138 2405000D */ li $a1, 13 +/* 078CAC 7F04413C 000D7000 */ sll $t6, $t5, 0 +/* 078CB0 7F044140 05C10003 */ bgez $t6, .L7F044150 +/* 078CB4 7F044144 00000000 */ nop +/* 078CB8 7F044148 10000001 */ b .L7F044150 +/* 078CBC 7F04414C 24050011 */ li $a1, 17 +.L7F044150: +/* 078CC0 7F044150 0FC10F9F */ jal generate_explosion_at_position +/* 078CC4 7F044154 AFA7002C */ sw $a3, 0x2c($sp) +/* 078CC8 7F044158 8FA7002C */ lw $a3, 0x2c($sp) +/* 078CCC 7F04415C 8CEF0064 */ lw $t7, 0x64($a3) +/* 078CD0 7F044160 35F80004 */ ori $t8, $t7, 4 +/* 078CD4 7F044164 100000DC */ b .L7F0444D8 +/* 078CD8 7F044168 ACF80064 */ sw $t8, 0x64($a3) +/* 078CDC 7F04416C 24010056 */ li $at, 86 +.L7F044170: +/* 078CE0 7F044170 54610014 */ bnel $v1, $at, .L7F0441C4 +/* 078CE4 7F044174 24010022 */ li $at, 34 +/* 078CE8 7F044178 84D90082 */ lh $t9, 0x82($a2) +/* 078CEC 7F04417C 8FA40030 */ lw $a0, 0x30($sp) +/* 078CF0 7F044180 572000D6 */ bnezl $t9, .L7F0444DC +/* 078CF4 7F044184 8FBF0014 */ lw $ra, 0x14($sp) +/* 078CF8 7F044188 8CE8000C */ lw $t0, 0xc($a3) +/* 078CFC 7F04418C 2405000D */ li $a1, 13 +/* 078D00 7F044190 00084800 */ sll $t1, $t0, 0 +/* 078D04 7F044194 05210003 */ bgez $t1, .L7F0441A4 +/* 078D08 7F044198 00000000 */ nop +/* 078D0C 7F04419C 10000001 */ b .L7F0441A4 +/* 078D10 7F0441A0 24050011 */ li $a1, 17 +.L7F0441A4: +/* 078D14 7F0441A4 0FC10F9F */ jal generate_explosion_at_position +/* 078D18 7F0441A8 AFA7002C */ sw $a3, 0x2c($sp) +/* 078D1C 7F0441AC 8FA7002C */ lw $a3, 0x2c($sp) +/* 078D20 7F0441B0 8CEA0064 */ lw $t2, 0x64($a3) +/* 078D24 7F0441B4 354B0004 */ ori $t3, $t2, 4 +/* 078D28 7F0441B8 100000C7 */ b .L7F0444D8 +/* 078D2C 7F0441BC ACEB0064 */ sw $t3, 0x64($a3) +/* 078D30 7F0441C0 24010022 */ li $at, 34 +.L7F0441C4: +/* 078D34 7F0441C4 54610014 */ bnel $v1, $at, .L7F044218 +/* 078D38 7F0441C8 2401001B */ li $at, 27 +/* 078D3C 7F0441CC 84CC0082 */ lh $t4, 0x82($a2) +/* 078D40 7F0441D0 8FA40030 */ lw $a0, 0x30($sp) +/* 078D44 7F0441D4 24050011 */ li $a1, 17 +/* 078D48 7F0441D8 558000C0 */ bnezl $t4, .L7F0444DC +/* 078D4C 7F0441DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 078D50 7F0441E0 0FC10F9F */ jal generate_explosion_at_position +/* 078D54 7F0441E4 AFA7002C */ sw $a3, 0x2c($sp) +/* 078D58 7F0441E8 8FA7002C */ lw $a3, 0x2c($sp) +/* 078D5C 7F0441EC 24040078 */ li $a0, 120 +/* 078D60 7F0441F0 8CED0064 */ lw $t5, 0x64($a3) +/* 078D64 7F0441F4 35AE0004 */ ori $t6, $t5, 4 +/* 078D68 7F0441F8 0FC23213 */ jal trigger_explosions_around_player +/* 078D6C 7F0441FC ACEE0064 */ sw $t6, 0x64($a3) +/* 078D70 7F044200 24040002 */ li $a0, 2 +/* 078D74 7F044204 0FC15997 */ jal set_unset_clock_lock_bits +/* 078D78 7F044208 00002825 */ move $a1, $zero +/* 078D7C 7F04420C 100000B3 */ b .L7F0444DC +/* 078D80 7F044210 8FBF0014 */ lw $ra, 0x14($sp) +/* 078D84 7F044214 2401001B */ li $at, 27 +.L7F044218: +/* 078D88 7F044218 10610003 */ beq $v1, $at, .L7F044228 +/* 078D8C 7F04421C 24010021 */ li $at, 33 +/* 078D90 7F044220 54610020 */ bnel $v1, $at, .L7F0442A4 +/* 078D94 7F044224 2401001D */ li $at, 29 +.L7F044228: +/* 078D98 7F044228 84C20082 */ lh $v0, 0x82($a2) +/* 078D9C 7F04422C 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 +/* 078DA0 7F044230 0442001C */ bltzl $v0, .L7F0442A4 +/* 078DA4 7F044234 2401001D */ li $at, 29 +/* 078DA8 7F044238 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) +/* 078DAC 7F04423C 004FC023 */ subu $t8, $v0, $t7 +/* 078DB0 7F044240 A4D80082 */ sh $t8, 0x82($a2) +/* 078DB4 7F044244 84D90082 */ lh $t9, 0x82($a2) +/* 078DB8 7F044248 8FA40030 */ lw $a0, 0x30($sp) +/* 078DBC 7F04424C 072300A3 */ bgezl $t9, .L7F0444DC +/* 078DC0 7F044250 8FBF0014 */ lw $ra, 0x14($sp) +/* 078DC4 7F044254 8CE8000C */ lw $t0, 0xc($a3) +/* 078DC8 7F044258 2405000D */ li $a1, 13 +/* 078DCC 7F04425C 00084800 */ sll $t1, $t0, 0 +/* 078DD0 7F044260 05210003 */ bgez $t1, .L7F044270 +/* 078DD4 7F044264 00000000 */ nop +/* 078DD8 7F044268 10000001 */ b .L7F044270 +/* 078DDC 7F04426C 24050011 */ li $a1, 17 +.L7F044270: +/* 078DE0 7F044270 AFA60028 */ sw $a2, 0x28($sp) +/* 078DE4 7F044274 0FC10F9F */ jal generate_explosion_at_position +/* 078DE8 7F044278 AFA7002C */ sw $a3, 0x2c($sp) +/* 078DEC 7F04427C 8FA60028 */ lw $a2, 0x28($sp) +/* 078DF0 7F044280 10400095 */ beqz $v0, .L7F0444D8 +/* 078DF4 7F044284 8FA7002C */ lw $a3, 0x2c($sp) +/* 078DF8 7F044288 240AFFFF */ li $t2, -1 +/* 078DFC 7F04428C A4CA0082 */ sh $t2, 0x82($a2) +/* 078E00 7F044290 8CEB0064 */ lw $t3, 0x64($a3) +/* 078E04 7F044294 356C0004 */ ori $t4, $t3, 4 +/* 078E08 7F044298 1000008F */ b .L7F0444D8 +/* 078E0C 7F04429C ACEC0064 */ sw $t4, 0x64($a3) +/* 078E10 7F0442A0 2401001D */ li $at, 29 +.L7F0442A4: +/* 078E14 7F0442A4 5461003F */ bnel $v1, $at, .L7F0443A4 +/* 078E18 7F0442A8 2401001C */ li $at, 28 +/* 078E1C 7F0442AC 3C038003 */ lui $v1, %hi(D_80030AF4) # $v1, 0x8003 +/* 078E20 7F0442B0 8C630B34 */ lw $v1, %lo(D_80030AF4)($v1) +/* 078E24 7F0442B4 3C088005 */ lui $t0, %hi(clock_timer) # $t0, 0x8005 +/* 078E28 7F0442B8 5060000C */ beql $v1, $zero, .L7F0442EC +/* 078E2C 7F0442BC 84C20082 */ lh $v0, 0x82($a2) +/* 078E30 7F0442C0 8CE20064 */ lw $v0, 0x64($a3) +/* 078E34 7F0442C4 3C010006 */ lui $at, 6 +/* 078E38 7F0442C8 240F0001 */ li $t7, 1 +/* 078E3C 7F0442CC 00416824 */ and $t5, $v0, $at +/* 078E40 7F0442D0 000D7442 */ srl $t6, $t5, 0x11 +/* 078E44 7F0442D4 01CFC004 */ sllv $t8, $t7, $t6 +/* 078E48 7F0442D8 0078C824 */ and $t9, $v1, $t8 +/* 078E4C 7F0442DC 53200003 */ beql $t9, $zero, .L7F0442EC +/* 078E50 7F0442E0 84C20082 */ lh $v0, 0x82($a2) +/* 078E54 7F0442E4 A4C00082 */ sh $zero, 0x82($a2) +/* 078E58 7F0442E8 84C20082 */ lh $v0, 0x82($a2) +.L7F0442EC: +/* 078E5C 7F0442EC 28410002 */ slti $at, $v0, 2 +/* 078E60 7F0442F0 1420000B */ bnez $at, .L7F044320 +/* 078E64 7F0442F4 00000000 */ nop +/* 078E68 7F0442F8 8D0883A4 */ lw $t0, %lo(clock_timer)($t0) +/* 078E6C 7F0442FC 240B0001 */ li $t3, 1 +/* 078E70 7F044300 00484823 */ subu $t1, $v0, $t0 +/* 078E74 7F044304 A4C90082 */ sh $t1, 0x82($a2) +/* 078E78 7F044308 84CA0082 */ lh $t2, 0x82($a2) +/* 078E7C 7F04430C 29410002 */ slti $at, $t2, 2 +/* 078E80 7F044310 50200072 */ beql $at, $zero, .L7F0444DC +/* 078E84 7F044314 8FBF0014 */ lw $ra, 0x14($sp) +/* 078E88 7F044318 1000006F */ b .L7F0444D8 +/* 078E8C 7F04431C A4CB0082 */ sh $t3, 0x82($a2) +.L7F044320: +/* 078E90 7F044320 5440006E */ bnezl $v0, .L7F0444DC +/* 078E94 7F044324 8FBF0014 */ lw $ra, 0x14($sp) +/* 078E98 7F044328 8CEC000C */ lw $t4, 0xc($a3) +/* 078E9C 7F04432C 2405000D */ li $a1, 13 +/* 078EA0 7F044330 000C6800 */ sll $t5, $t4, 0 +/* 078EA4 7F044334 05A30004 */ bgezl $t5, .L7F044348 +/* 078EA8 7F044338 AFA5001C */ sw $a1, 0x1c($sp) +/* 078EAC 7F04433C 1000000B */ b .L7F04436C +/* 078EB0 7F044340 24050011 */ li $a1, 17 +/* 078EB4 7F044344 AFA5001C */ sw $a1, 0x1c($sp) +.L7F044348: +/* 078EB8 7F044348 AFA60028 */ sw $a2, 0x28($sp) +/* 078EBC 7F04434C 0C001A57 */ jal get_stage_num +/* 078EC0 7F044350 AFA7002C */ sw $a3, 0x2c($sp) +/* 078EC4 7F044354 24010022 */ li $at, 34 +/* 078EC8 7F044358 8FA5001C */ lw $a1, 0x1c($sp) +/* 078ECC 7F04435C 8FA60028 */ lw $a2, 0x28($sp) +/* 078ED0 7F044360 14410002 */ bne $v0, $at, .L7F04436C +/* 078ED4 7F044364 8FA7002C */ lw $a3, 0x2c($sp) +/* 078ED8 7F044368 24050013 */ li $a1, 19 +.L7F04436C: +/* 078EDC 7F04436C 8FA40030 */ lw $a0, 0x30($sp) +/* 078EE0 7F044370 AFA60028 */ sw $a2, 0x28($sp) +/* 078EE4 7F044374 0FC10F9F */ jal generate_explosion_at_position +/* 078EE8 7F044378 AFA7002C */ sw $a3, 0x2c($sp) +/* 078EEC 7F04437C 8FA60028 */ lw $a2, 0x28($sp) +/* 078EF0 7F044380 10400055 */ beqz $v0, .L7F0444D8 +/* 078EF4 7F044384 8FA7002C */ lw $a3, 0x2c($sp) +/* 078EF8 7F044388 240EFFFF */ li $t6, -1 +/* 078EFC 7F04438C A4CE0082 */ sh $t6, 0x82($a2) +/* 078F00 7F044390 8CEF0064 */ lw $t7, 0x64($a3) +/* 078F04 7F044394 35F80004 */ ori $t8, $t7, 4 +/* 078F08 7F044398 1000004F */ b .L7F0444D8 +/* 078F0C 7F04439C ACF80064 */ sw $t8, 0x64($a3) +/* 078F10 7F0443A0 2401001C */ li $at, 28 +.L7F0443A4: +/* 078F14 7F0443A4 5461004D */ bnel $v1, $at, .L7F0444DC +/* 078F18 7F0443A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 078F1C 7F0443AC 84C20082 */ lh $v0, 0x82($a2) +/* 078F20 7F0443B0 3C198005 */ lui $t9, %hi(clock_timer) # $t9, 0x8005 +/* 078F24 7F0443B4 28410002 */ slti $at, $v0, 2 +/* 078F28 7F0443B8 54200012 */ bnezl $at, .L7F044404 +/* 078F2C 7F0443BC 24010001 */ li $at, 1 +/* 078F30 7F0443C0 8F3983A4 */ lw $t9, %lo(clock_timer)($t9) +/* 078F34 7F0443C4 240A0001 */ li $t2, 1 +/* 078F38 7F0443C8 00C02025 */ move $a0, $a2 +/* 078F3C 7F0443CC 00594023 */ subu $t0, $v0, $t9 +/* 078F40 7F0443D0 A4C80082 */ sh $t0, 0x82($a2) +/* 078F44 7F0443D4 84C90082 */ lh $t1, 0x82($a2) +/* 078F48 7F0443D8 29210002 */ slti $at, $t1, 2 +/* 078F4C 7F0443DC 50200027 */ beql $at, $zero, .L7F04447C +/* 078F50 7F0443E0 84CC0082 */ lh $t4, 0x82($a2) +/* 078F54 7F0443E4 A4CA0082 */ sh $t2, 0x82($a2) +/* 078F58 7F0443E8 AFA7002C */ sw $a3, 0x2c($sp) +/* 078F5C 7F0443EC 0FC14816 */ jal add_obj_to_temp_proxmine_table +/* 078F60 7F0443F0 AFA60028 */ sw $a2, 0x28($sp) +/* 078F64 7F0443F4 8FA60028 */ lw $a2, 0x28($sp) +/* 078F68 7F0443F8 1000001F */ b .L7F044478 +/* 078F6C 7F0443FC 8FA7002C */ lw $a3, 0x2c($sp) +/* 078F70 7F044400 24010001 */ li $at, 1 +.L7F044404: +/* 078F74 7F044404 5441001D */ bnel $v0, $at, .L7F04447C +/* 078F78 7F044408 84CC0082 */ lh $t4, 0x82($a2) +/* 078F7C 7F04440C AFA60028 */ sw $a2, 0x28($sp) +/* 078F80 7F044410 0FC2279B */ jal get_curplayer_positiondata +/* 078F84 7F044414 AFA7002C */ sw $a3, 0x2c($sp) +/* 078F88 7F044418 8FAB0030 */ lw $t3, 0x30($sp) +/* 078F8C 7F04441C C4440008 */ lwc1 $f4, 8($v0) +/* 078F90 7F044420 C448000C */ lwc1 $f8, 0xc($v0) +/* 078F94 7F044424 C5660008 */ lwc1 $f6, 8($t3) +/* 078F98 7F044428 C56A000C */ lwc1 $f10, 0xc($t3) +/* 078F9C 7F04442C C4500010 */ lwc1 $f16, 0x10($v0) +/* 078FA0 7F044430 46062001 */ sub.s $f0, $f4, $f6 +/* 078FA4 7F044434 C5720010 */ lwc1 $f18, 0x10($t3) +/* 078FA8 7F044438 3C018005 */ lui $at, %hi(D_80052A94) # $at, 0x8005 +/* 078FAC 7F04443C 460A4081 */ sub.s $f2, $f8, $f10 +/* 078FB0 7F044440 46000102 */ mul.s $f4, $f0, $f0 +/* 078FB4 7F044444 8FA60028 */ lw $a2, 0x28($sp) +/* 078FB8 7F044448 46128301 */ sub.s $f12, $f16, $f18 +/* 078FBC 7F04444C 46021182 */ mul.s $f6, $f2, $f2 +/* 078FC0 7F044450 C4322AC4 */ lwc1 $f18, %lo(D_80052A94)($at) +/* 078FC4 7F044454 8FA7002C */ lw $a3, 0x2c($sp) +/* 078FC8 7F044458 460C6282 */ mul.s $f10, $f12, $f12 +/* 078FCC 7F04445C 46062200 */ add.s $f8, $f4, $f6 +/* 078FD0 7F044460 460A4400 */ add.s $f16, $f8, $f10 +/* 078FD4 7F044464 4612803C */ c.lt.s $f16, $f18 +/* 078FD8 7F044468 00000000 */ nop +/* 078FDC 7F04446C 45020003 */ bc1fl .L7F04447C +/* 078FE0 7F044470 84CC0082 */ lh $t4, 0x82($a2) +/* 078FE4 7F044474 A4C00082 */ sh $zero, 0x82($a2) +.L7F044478: +/* 078FE8 7F044478 84CC0082 */ lh $t4, 0x82($a2) +.L7F04447C: +/* 078FEC 7F04447C 8FA40030 */ lw $a0, 0x30($sp) +/* 078FF0 7F044480 55800016 */ bnezl $t4, .L7F0444DC +/* 078FF4 7F044484 8FBF0014 */ lw $ra, 0x14($sp) +/* 078FF8 7F044488 8CED000C */ lw $t5, 0xc($a3) +/* 078FFC 7F04448C 2405000D */ li $a1, 13 +/* 079000 7F044490 000D7000 */ sll $t6, $t5, 0 +/* 079004 7F044494 05C10003 */ bgez $t6, .L7F0444A4 +/* 079008 7F044498 00000000 */ nop +/* 07900C 7F04449C 10000001 */ b .L7F0444A4 +/* 079010 7F0444A0 24050011 */ li $a1, 17 +.L7F0444A4: +/* 079014 7F0444A4 AFA60028 */ sw $a2, 0x28($sp) +/* 079018 7F0444A8 0FC10F9F */ jal generate_explosion_at_position +/* 07901C 7F0444AC AFA7002C */ sw $a3, 0x2c($sp) +/* 079020 7F0444B0 8FA60028 */ lw $a2, 0x28($sp) +/* 079024 7F0444B4 10400008 */ beqz $v0, .L7F0444D8 +/* 079028 7F0444B8 8FA7002C */ lw $a3, 0x2c($sp) +/* 07902C 7F0444BC 240FFFFF */ li $t7, -1 +/* 079030 7F0444C0 A4CF0082 */ sh $t7, 0x82($a2) +/* 079034 7F0444C4 8CF80064 */ lw $t8, 0x64($a3) +/* 079038 7F0444C8 00C02025 */ move $a0, $a2 +/* 07903C 7F0444CC 37190004 */ ori $t9, $t8, 4 +/* 079040 7F0444D0 0FC14824 */ jal remove_obj_from_temp_proxmine_table +/* 079044 7F0444D4 ACF90064 */ sw $t9, 0x64($a3) +.L7F0444D8: +/* 079048 7F0444D8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0444DC: +/* 07904C 7F0444DC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 079050 7F0444E0 03E00008 */ jr $ra +/* 079054 7F0444E4 00000000 */ nop +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F044200(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F044200 +/* 078D30 7F044200 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 078D34 7F044204 AFBF001C */ sw $ra, 0x1c($sp) +/* 078D38 7F044208 AFB10018 */ sw $s1, 0x18($sp) +/* 078D3C 7F04420C AFB00014 */ sw $s0, 0x14($sp) +/* 078D40 7F044210 8C900020 */ lw $s0, 0x20($a0) +/* 078D44 7F044214 52000009 */ beql $s0, $zero, .L7F04423C +/* 078D48 7F044218 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04421C: +/* 078D4C 7F04421C 8E110024 */ lw $s1, 0x24($s0) +/* 078D50 7F044220 0FC11080 */ jal sub_GAME_7F044200 +/* 078D54 7F044224 02002025 */ move $a0, $s0 +/* 078D58 7F044228 0FC1304C */ jal sub_GAME_7F04C130 +/* 078D5C 7F04422C 02002025 */ move $a0, $s0 +/* 078D60 7F044230 1620FFFA */ bnez $s1, .L7F04421C +/* 078D64 7F044234 02208025 */ move $s0, $s1 +/* 078D68 7F044238 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04423C: +/* 078D6C 7F04423C 8FB00014 */ lw $s0, 0x14($sp) +/* 078D70 7F044240 8FB10018 */ lw $s1, 0x18($sp) +/* 078D74 7F044244 03E00008 */ jr $ra +/* 078D78 7F044248 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04424C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04424C +/* 078D7C 7F04424C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 078D80 7F044250 AFBF001C */ sw $ra, 0x1c($sp) +/* 078D84 7F044254 AFB10018 */ sw $s1, 0x18($sp) +/* 078D88 7F044258 AFB00014 */ sw $s0, 0x14($sp) +/* 078D8C 7F04425C 8C870004 */ lw $a3, 4($a0) +/* 078D90 7F044260 00808825 */ move $s1, $a0 +/* 078D94 7F044264 8CEE0064 */ lw $t6, 0x64($a3) +/* 078D98 7F044268 31CF0004 */ andi $t7, $t6, 4 +/* 078D9C 7F04426C 51E0000A */ beql $t7, $zero, .L7F044298 +/* 078DA0 7F044270 92390001 */ lbu $t9, 1($s1) +/* 078DA4 7F044274 90E60002 */ lbu $a2, 2($a3) +/* 078DA8 7F044278 00E02025 */ move $a0, $a3 +/* 078DAC 7F04427C 24050001 */ li $a1, 1 +/* 078DB0 7F044280 30D80004 */ andi $t8, $a2, 4 +/* 078DB4 7F044284 0FC10366 */ jal sub_GAME_7F040D98 +/* 078DB8 7F044288 03003025 */ move $a2, $t8 +/* 078DBC 7F04428C 1000000F */ b .L7F0442CC +/* 078DC0 7F044290 8FBF001C */ lw $ra, 0x1c($sp) +/* 078DC4 7F044294 92390001 */ lbu $t9, 1($s1) +.L7F044298: +/* 078DC8 7F044298 02202025 */ move $a0, $s1 +/* 078DCC 7F04429C 3328FFFD */ andi $t0, $t9, 0xfffd +/* 078DD0 7F0442A0 0FC10F5C */ jal handle_thrown_explosive_detonation +/* 078DD4 7F0442A4 A2280001 */ sb $t0, 1($s1) +/* 078DD8 7F0442A8 8E300020 */ lw $s0, 0x20($s1) +/* 078DDC 7F0442AC 52000007 */ beql $s0, $zero, .L7F0442CC +/* 078DE0 7F0442B0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0442B4: +/* 078DE4 7F0442B4 8E110024 */ lw $s1, 0x24($s0) +/* 078DE8 7F0442B8 0FC11093 */ jal sub_GAME_7F04424C +/* 078DEC 7F0442BC 02002025 */ move $a0, $s0 +/* 078DF0 7F0442C0 1620FFFC */ bnez $s1, .L7F0442B4 +/* 078DF4 7F0442C4 02208025 */ move $s0, $s1 +/* 078DF8 7F0442C8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0442CC: +/* 078DFC 7F0442CC 8FB00014 */ lw $s0, 0x14($sp) +/* 078E00 7F0442D0 8FB10018 */ lw $s1, 0x18($sp) +/* 078E04 7F0442D4 03E00008 */ jr $ra +/* 078E08 7F0442D8 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0442DC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0442DC +/* 078E0C 7F0442DC 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 078E10 7F0442E0 AFBF0024 */ sw $ra, 0x24($sp) +/* 078E14 7F0442E4 AFB20020 */ sw $s2, 0x20($sp) +/* 078E18 7F0442E8 AFB1001C */ sw $s1, 0x1c($sp) +/* 078E1C 7F0442EC AFB00018 */ sw $s0, 0x18($sp) +/* 078E20 7F0442F0 8C910004 */ lw $s1, 4($a0) +/* 078E24 7F0442F4 00809025 */ move $s2, $a0 +/* 078E28 7F0442F8 8E220064 */ lw $v0, 0x64($s1) +/* 078E2C 7F0442FC 8E300014 */ lw $s0, 0x14($s1) +/* 078E30 7F044300 304E0004 */ andi $t6, $v0, 4 +/* 078E34 7F044304 51C0000A */ beql $t6, $zero, .L7F044330 +/* 078E38 7F044308 8E05001C */ lw $a1, 0x1c($s0) +/* 078E3C 7F04430C 92260002 */ lbu $a2, 2($s1) +/* 078E40 7F044310 02202025 */ move $a0, $s1 +/* 078E44 7F044314 24050001 */ li $a1, 1 +/* 078E48 7F044318 30CF0004 */ andi $t7, $a2, 4 +/* 078E4C 7F04431C 0FC10366 */ jal sub_GAME_7F040D98 +/* 078E50 7F044320 01E03025 */ move $a2, $t7 +/* 078E54 7F044324 10000036 */ b .L7F044400 +/* 078E58 7F044328 8FBF0024 */ lw $ra, 0x24($sp) +/* 078E5C 7F04432C 8E05001C */ lw $a1, 0x1c($s0) +.L7F044330: +/* 078E60 7F044330 30580040 */ andi $t8, $v0, 0x40 +/* 078E64 7F044334 50A00025 */ beql $a1, $zero, .L7F0443CC +/* 078E68 7F044338 924C0001 */ lbu $t4, 1($s2) +/* 078E6C 7F04433C 13000022 */ beqz $t8, .L7F0443C8 +/* 078E70 7F044340 00003025 */ move $a2, $zero +/* 078E74 7F044344 0FC1B198 */ jal sub_GAME_7F06C660 +/* 078E78 7F044348 8E040018 */ lw $a0, 0x18($s0) +/* 078E7C 7F04434C AFA2002C */ sw $v0, 0x2c($sp) +/* 078E80 7F044350 92590001 */ lbu $t9, 1($s2) +/* 078E84 7F044354 37280002 */ ori $t0, $t9, 2 +/* 078E88 7F044358 A2480001 */ sb $t0, 1($s2) +/* 078E8C 7F04435C 8E090008 */ lw $t1, 8($s0) +/* 078E90 7F044360 8524000E */ lh $a0, 0xe($t1) +/* 078E94 7F044364 00045180 */ sll $t2, $a0, 6 +/* 078E98 7F044368 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 078E9C 7F04436C 01402025 */ move $a0, $t2 +/* 078EA0 7F044370 AE02000C */ sw $v0, 0xc($s0) +/* 078EA4 7F044374 8E25006C */ lw $a1, 0x6c($s1) +/* 078EA8 7F044378 8FA4002C */ lw $a0, 0x2c($sp) +/* 078EAC 7F04437C 00403025 */ move $a2, $v0 +/* 078EB0 7F044380 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 078EB4 7F044384 24A50004 */ addiu $a1, $a1, 4 +/* 078EB8 7F044388 8E0B0008 */ lw $t3, 8($s0) +/* 078EBC 7F04438C 02002025 */ move $a0, $s0 +/* 078EC0 7F044390 0FC1BBA9 */ jal sub_GAME_7F06EEA4 +/* 078EC4 7F044394 8D650000 */ lw $a1, ($t3) +/* 078EC8 7F044398 0FC10F5C */ jal handle_thrown_explosive_detonation +/* 078ECC 7F04439C 02402025 */ move $a0, $s2 +/* 078ED0 7F0443A0 8E510020 */ lw $s1, 0x20($s2) +/* 078ED4 7F0443A4 52200016 */ beql $s1, $zero, .L7F044400 +/* 078ED8 7F0443A8 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0443AC: +/* 078EDC 7F0443AC 8E300024 */ lw $s0, 0x24($s1) +/* 078EE0 7F0443B0 0FC110B7 */ jal sub_GAME_7F0442DC +/* 078EE4 7F0443B4 02202025 */ move $a0, $s1 +/* 078EE8 7F0443B8 1600FFFC */ bnez $s0, .L7F0443AC +/* 078EEC 7F0443BC 02008825 */ move $s1, $s0 +/* 078EF0 7F0443C0 1000000F */ b .L7F044400 +/* 078EF4 7F0443C4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0443C8: +/* 078EF8 7F0443C8 924C0001 */ lbu $t4, 1($s2) +.L7F0443CC: +/* 078EFC 7F0443CC 02402025 */ move $a0, $s2 +/* 078F00 7F0443D0 318DFFFD */ andi $t5, $t4, 0xfffd +/* 078F04 7F0443D4 0FC10F5C */ jal handle_thrown_explosive_detonation +/* 078F08 7F0443D8 A24D0001 */ sb $t5, 1($s2) +/* 078F0C 7F0443DC 8E510020 */ lw $s1, 0x20($s2) +/* 078F10 7F0443E0 52200007 */ beql $s1, $zero, .L7F044400 +/* 078F14 7F0443E4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0443E8: +/* 078F18 7F0443E8 8E300024 */ lw $s0, 0x24($s1) +/* 078F1C 7F0443EC 0FC11093 */ jal sub_GAME_7F04424C +/* 078F20 7F0443F0 02202025 */ move $a0, $s1 +/* 078F24 7F0443F4 1600FFFC */ bnez $s0, .L7F0443E8 +/* 078F28 7F0443F8 02008825 */ move $s1, $s0 +/* 078F2C 7F0443FC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F044400: +/* 078F30 7F044400 8FB00018 */ lw $s0, 0x18($sp) +/* 078F34 7F044404 8FB1001C */ lw $s1, 0x1c($sp) +/* 078F38 7F044408 8FB20020 */ lw $s2, 0x20($sp) +/* 078F3C 7F04440C 03E00008 */ jr $ra +/* 078F40 7F044410 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F044414(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F044414 +/* 078F44 7F044414 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 078F48 7F044418 AFB50044 */ sw $s5, 0x44($sp) +/* 078F4C 7F04441C AFB20038 */ sw $s2, 0x38($sp) +/* 078F50 7F044420 AFB10034 */ sw $s1, 0x34($sp) +/* 078F54 7F044424 AFB00030 */ sw $s0, 0x30($sp) +/* 078F58 7F044428 00A08025 */ move $s0, $a1 +/* 078F5C 7F04442C 00E08825 */ move $s1, $a3 +/* 078F60 7F044430 00809025 */ move $s2, $a0 +/* 078F64 7F044434 00C0A825 */ move $s5, $a2 +/* 078F68 7F044438 AFBF004C */ sw $ra, 0x4c($sp) +/* 078F6C 7F04443C AFB60048 */ sw $s6, 0x48($sp) +/* 078F70 7F044440 AFB40040 */ sw $s4, 0x40($sp) +/* 078F74 7F044444 AFB3003C */ sw $s3, 0x3c($sp) +/* 078F78 7F044448 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 078F7C 7F04444C F7B60020 */ sdc1 $f22, 0x20($sp) +/* 078F80 7F044450 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 078F84 7F044454 18A0008A */ blez $a1, .L7F044680 +/* 078F88 7F044458 00004025 */ move $t0, $zero +/* 078F8C 7F04445C 4480C000 */ mtc1 $zero, $f24 +/* 078F90 7F044460 4480B800 */ mtc1 $zero, $f23 +/* 078F94 7F044464 4480B000 */ mtc1 $zero, $f22 +/* 078F98 7F044468 00809825 */ move $s3, $a0 +/* 078F9C 7F04446C D7B40088 */ ldc1 $f20, 0x88($sp) +/* 078FA0 7F044470 27B60074 */ addiu $s6, $sp, 0x74 +.L7F044474: +/* 078FA4 7F044474 25140001 */ addiu $s4, $t0, 1 +/* 078FA8 7F044478 0290001A */ div $zero, $s4, $s0 +/* 078FAC 7F04447C 00002810 */ mfhi $a1 +/* 078FB0 7F044480 000570C0 */ sll $t6, $a1, 3 +/* 078FB4 7F044484 024E1021 */ addu $v0, $s2, $t6 +/* 078FB8 7F044488 C4460004 */ lwc1 $f6, 4($v0) +/* 078FBC 7F04448C C6640004 */ lwc1 $f4, 4($s3) +/* 078FC0 7F044490 C44A0000 */ lwc1 $f10, ($v0) +/* 078FC4 7F044494 46003221 */ cvt.d.s $f8, $f6 +/* 078FC8 7F044498 46002021 */ cvt.d.s $f0, $f4 +/* 078FCC 7F04449C C6620000 */ lwc1 $f2, ($s3) +/* 078FD0 7F0444A0 46204301 */ sub.d $f12, $f8, $f0 +/* 078FD4 7F0444A4 16000002 */ bnez $s0, .L7F0444B0 +/* 078FD8 7F0444A8 00000000 */ nop +/* 078FDC 7F0444AC 0007000D */ break 7 +.L7F0444B0: +/* 078FE0 7F0444B0 2401FFFF */ li $at, -1 +/* 078FE4 7F0444B4 16010004 */ bne $s0, $at, .L7F0444C8 +/* 078FE8 7F0444B8 3C018000 */ lui $at, 0x8000 +/* 078FEC 7F0444BC 16810002 */ bne $s4, $at, .L7F0444C8 +/* 078FF0 7F0444C0 00000000 */ nop +/* 078FF4 7F0444C4 0006000D */ break 6 +.L7F0444C8: +/* 078FF8 7F0444C8 46366032 */ c.eq.d $f12, $f22 +/* 078FFC 7F0444CC 24AF0001 */ addiu $t7, $a1, 1 +/* 079000 7F0444D0 460054A1 */ cvt.d.s $f18, $f10 +/* 079004 7F0444D4 46001421 */ cvt.d.s $f16, $f2 +/* 079008 7F0444D8 45000011 */ bc1f .L7F044520 +/* 07900C 7F0444DC 46328381 */ sub.d $f14, $f16, $f18 +/* 079010 7F0444E0 46367032 */ c.eq.d $f14, $f22 +/* 079014 7F0444E4 00000000 */ nop +/* 079018 7F0444E8 4500000D */ bc1f .L7F044520 +/* 07901C 7F0444EC 00000000 */ nop +/* 079020 7F0444F0 E7A20074 */ swc1 $f2, 0x74($sp) +/* 079024 7F0444F4 E7B80078 */ swc1 $f24, 0x78($sp) +/* 079028 7F0444F8 C6640004 */ lwc1 $f4, 4($s3) +/* 07902C 7F0444FC 02C02025 */ move $a0, $s6 +/* 079030 7F044500 02A02825 */ move $a1, $s5 +/* 079034 7F044504 02203025 */ move $a2, $s1 +/* 079038 7F044508 0FC0F336 */ jal sub_GAME_7F03CCD8 +/* 07903C 7F04450C E7A4007C */ swc1 $f4, 0x7c($sp) +/* 079040 7F044510 50400058 */ beql $v0, $zero, .L7F044674 +/* 079044 7F044514 02804025 */ move $t0, $s4 +/* 079048 7F044518 1000005A */ b .L7F044684 +/* 07904C 7F04451C 00001025 */ move $v0, $zero +.L7F044520: +/* 079050 7F044520 01F0001A */ div $zero, $t7, $s0 +/* 079054 7F044524 462E0182 */ mul.d $f6, $f0, $f14 +/* 079058 7F044528 00001010 */ mfhi $v0 +/* 07905C 7F04452C 00401825 */ move $v1, $v0 +/* 079060 7F044530 00002025 */ move $a0, $zero +/* 079064 7F044534 462C8202 */ mul.d $f8, $f16, $f12 +/* 079068 7F044538 46283080 */ add.d $f2, $f6, $f8 +/* 07906C 7F04453C 16000002 */ bnez $s0, .L7F044548 +/* 079070 7F044540 00000000 */ nop +/* 079074 7F044544 0007000D */ break 7 +.L7F044548: +/* 079078 7F044548 2401FFFF */ li $at, -1 +/* 07907C 7F04454C 16010004 */ bne $s0, $at, .L7F044560 +/* 079080 7F044550 3C018000 */ lui $at, 0x8000 +/* 079084 7F044554 15E10002 */ bne $t7, $at, .L7F044560 +/* 079088 7F044558 00000000 */ nop +/* 07908C 7F04455C 0006000D */ break 6 +.L7F044560: +/* 079090 7F044560 1102001D */ beq $t0, $v0, .L7F0445D8 +/* 079094 7F044564 00000000 */ nop +/* 079098 7F044568 0003C0C0 */ sll $t8, $v1, 3 +.L7F04456C: +/* 07909C 7F04456C 02581021 */ addu $v0, $s2, $t8 +/* 0790A0 7F044570 C44A0004 */ lwc1 $f10, 4($v0) +/* 0790A4 7F044574 C4460000 */ lwc1 $f6, ($v0) +/* 0790A8 7F044578 460054A1 */ cvt.d.s $f18, $f10 +/* 0790AC 7F04457C 46003221 */ cvt.d.s $f8, $f6 +/* 0790B0 7F044580 462E9102 */ mul.d $f4, $f18, $f14 +/* 0790B4 7F044584 00000000 */ nop +/* 0790B8 7F044588 462C4282 */ mul.d $f10, $f8, $f12 +/* 0790BC 7F04458C 462A2500 */ add.d $f20, $f4, $f10 +/* 0790C0 7F044590 4622A032 */ c.eq.d $f20, $f2 +/* 0790C4 7F044594 00000000 */ nop +/* 0790C8 7F044598 4500000F */ bc1f .L7F0445D8 +/* 0790CC 7F04459C 00000000 */ nop +/* 0790D0 7F0445A0 24790001 */ addiu $t9, $v1, 1 +/* 0790D4 7F0445A4 0330001A */ div $zero, $t9, $s0 +/* 0790D8 7F0445A8 00001810 */ mfhi $v1 +/* 0790DC 7F0445AC 16000002 */ bnez $s0, .L7F0445B8 +/* 0790E0 7F0445B0 00000000 */ nop +/* 0790E4 7F0445B4 0007000D */ break 7 +.L7F0445B8: +/* 0790E8 7F0445B8 2401FFFF */ li $at, -1 +/* 0790EC 7F0445BC 16010004 */ bne $s0, $at, .L7F0445D0 +/* 0790F0 7F0445C0 3C018000 */ lui $at, 0x8000 +/* 0790F4 7F0445C4 17210002 */ bne $t9, $at, .L7F0445D0 +/* 0790F8 7F0445C8 00000000 */ nop +/* 0790FC 7F0445CC 0006000D */ break 6 +.L7F0445D0: +/* 079100 7F0445D0 5468FFE6 */ bnel $v1, $t0, .L7F04456C +/* 079104 7F0445D4 0003C0C0 */ sll $t8, $v1, 3 +.L7F0445D8: +/* 079108 7F0445D8 1A200021 */ blez $s1, .L7F044660 +/* 07910C 7F0445DC 00000000 */ nop +/* 079110 7F0445E0 02A01025 */ move $v0, $s5 +.L7F0445E4: +/* 079114 7F0445E4 C4520004 */ lwc1 $f18, 4($v0) +/* 079118 7F0445E8 C4440000 */ lwc1 $f4, ($v0) +/* 07911C 7F0445EC 4622A032 */ c.eq.d $f20, $f2 +/* 079120 7F0445F0 460091A1 */ cvt.d.s $f6, $f18 +/* 079124 7F0445F4 460022A1 */ cvt.d.s $f10, $f4 +/* 079128 7F0445F8 462E3202 */ mul.d $f8, $f6, $f14 +/* 07912C 7F0445FC 00000000 */ nop +/* 079130 7F044600 462C5482 */ mul.d $f18, $f10, $f12 +/* 079134 7F044604 45000003 */ bc1f .L7F044614 +/* 079138 7F044608 46324000 */ add.d $f0, $f8, $f18 +/* 07913C 7F04460C 46201181 */ sub.d $f6, $f2, $f0 +/* 079140 7F044610 46223500 */ add.d $f20, $f6, $f2 +.L7F044614: +/* 079144 7F044614 4622003C */ c.lt.d $f0, $f2 +/* 079148 7F044618 00000000 */ nop +/* 07914C 7F04461C 45020006 */ bc1fl .L7F044638 +/* 079150 7F044620 4620103C */ c.lt.d $f2, $f0 +/* 079154 7F044624 4622A03C */ c.lt.d $f20, $f2 +/* 079158 7F044628 00000000 */ nop +/* 07915C 7F04462C 4501000C */ bc1t .L7F044660 +/* 079160 7F044630 00000000 */ nop +/* 079164 7F044634 4620103C */ c.lt.d $f2, $f0 +.L7F044638: +/* 079168 7F044638 00000000 */ nop +/* 07916C 7F04463C 45020006 */ bc1fl .L7F044658 +/* 079170 7F044640 24840001 */ addiu $a0, $a0, 1 +/* 079174 7F044644 4634103C */ c.lt.d $f2, $f20 +/* 079178 7F044648 00000000 */ nop +/* 07917C 7F04464C 45010004 */ bc1t .L7F044660 +/* 079180 7F044650 00000000 */ nop +/* 079184 7F044654 24840001 */ addiu $a0, $a0, 1 +.L7F044658: +/* 079188 7F044658 1491FFE2 */ bne $a0, $s1, .L7F0445E4 +/* 07918C 7F04465C 24420008 */ addiu $v0, $v0, 8 +.L7F044660: +/* 079190 7F044660 54910004 */ bnel $a0, $s1, .L7F044674 +/* 079194 7F044664 02804025 */ move $t0, $s4 +/* 079198 7F044668 10000006 */ b .L7F044684 +/* 07919C 7F04466C 24020001 */ li $v0, 1 +/* 0791A0 7F044670 02804025 */ move $t0, $s4 +.L7F044674: +/* 0791A4 7F044674 1690FF7F */ bne $s4, $s0, .L7F044474 +/* 0791A8 7F044678 26730008 */ addiu $s3, $s3, 8 +/* 0791AC 7F04467C F7B40088 */ sdc1 $f20, 0x88($sp) +.L7F044680: +/* 0791B0 7F044680 00001025 */ move $v0, $zero +.L7F044684: +/* 0791B4 7F044684 8FBF004C */ lw $ra, 0x4c($sp) +/* 0791B8 7F044688 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0791BC 7F04468C D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0791C0 7F044690 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0791C4 7F044694 8FB00030 */ lw $s0, 0x30($sp) +/* 0791C8 7F044698 8FB10034 */ lw $s1, 0x34($sp) +/* 0791CC 7F04469C 8FB20038 */ lw $s2, 0x38($sp) +/* 0791D0 7F0446A0 8FB3003C */ lw $s3, 0x3c($sp) +/* 0791D4 7F0446A4 8FB40040 */ lw $s4, 0x40($sp) +/* 0791D8 7F0446A8 8FB50044 */ lw $s5, 0x44($sp) +/* 0791DC 7F0446AC 8FB60048 */ lw $s6, 0x48($sp) +/* 0791E0 7F0446B0 03E00008 */ jr $ra +/* 0791E4 7F0446B4 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0446B8(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F0446B8 +/* 0791E8 7F0446B8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0791EC 7F0446BC AFBF0014 */ sw $ra, 0x14($sp) +/* 0791F0 7F0446C0 AFA40018 */ sw $a0, 0x18($sp) +/* 0791F4 7F0446C4 AFA5001C */ sw $a1, 0x1c($sp) +/* 0791F8 7F0446C8 AFA60020 */ sw $a2, 0x20($sp) +/* 0791FC 7F0446CC 0FC11105 */ jal sub_GAME_7F044414 +/* 079200 7F0446D0 AFA70024 */ sw $a3, 0x24($sp) +/* 079204 7F0446D4 10400003 */ beqz $v0, .L7F0446E4 +/* 079208 7F0446D8 8FA40020 */ lw $a0, 0x20($sp) +/* 07920C 7F0446DC 1000000A */ b .L7F044708 +/* 079210 7F0446E0 00001025 */ move $v0, $zero +.L7F0446E4: +/* 079214 7F0446E4 8FA50024 */ lw $a1, 0x24($sp) +/* 079218 7F0446E8 8FA60018 */ lw $a2, 0x18($sp) +/* 07921C 7F0446EC 0FC11105 */ jal sub_GAME_7F044414 +/* 079220 7F0446F0 8FA7001C */ lw $a3, 0x1c($sp) +/* 079224 7F0446F4 50400004 */ beql $v0, $zero, .L7F044708 +/* 079228 7F0446F8 24020001 */ li $v0, 1 +/* 07922C 7F0446FC 10000002 */ b .L7F044708 +/* 079230 7F044700 00001025 */ move $v0, $zero +/* 079234 7F044704 24020001 */ li $v0, 1 +.L7F044708: +/* 079238 7F044708 8FBF0014 */ lw $ra, 0x14($sp) +/* 07923C 7F04470C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 079240 7F044710 03E00008 */ jr $ra +/* 079244 7F044714 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F0446B8 +/* 079510 7F0449A0 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 079514 7F0449A4 AFB60038 */ sw $s6, 0x38($sp) +/* 079518 7F0449A8 AFB50034 */ sw $s5, 0x34($sp) +/* 07951C 7F0449AC AFB40030 */ sw $s4, 0x30($sp) +/* 079520 7F0449B0 AFB3002C */ sw $s3, 0x2c($sp) +/* 079524 7F0449B4 AFB10024 */ sw $s1, 0x24($sp) +/* 079528 7F0449B8 00A09825 */ move $s3, $a1 +/* 07952C 7F0449BC 00E0A025 */ move $s4, $a3 +/* 079530 7F0449C0 0080A825 */ move $s5, $a0 +/* 079534 7F0449C4 00C0B025 */ move $s6, $a2 +/* 079538 7F0449C8 AFBF003C */ sw $ra, 0x3c($sp) +/* 07953C 7F0449CC AFB20028 */ sw $s2, 0x28($sp) +/* 079540 7F0449D0 AFB00020 */ sw $s0, 0x20($sp) +/* 079544 7F0449D4 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 079548 7F0449D8 18A00014 */ blez $a1, .Ljp7F044A2C +/* 07954C 7F0449DC 00008825 */ move $s1, $zero +/* 079550 7F0449E0 4480A000 */ mtc1 $zero, $f20 +/* 079554 7F0449E4 00808025 */ move $s0, $a0 +/* 079558 7F0449E8 27B20048 */ addiu $s2, $sp, 0x48 +.Ljp7F0449EC: +/* 07955C 7F0449EC C6040000 */ lwc1 $f4, ($s0) +/* 079560 7F0449F0 E7B4004C */ swc1 $f20, 0x4c($sp) +/* 079564 7F0449F4 02402025 */ move $a0, $s2 +/* 079568 7F0449F8 E7A40048 */ swc1 $f4, 0x48($sp) +/* 07956C 7F0449FC C6060004 */ lwc1 $f6, 4($s0) +/* 079570 7F044A00 02C02825 */ move $a1, $s6 +/* 079574 7F044A04 02803025 */ move $a2, $s4 +/* 079578 7F044A08 0FC0F3F6 */ jal sub_GAME_7F03CCD8 +/* 07957C 7F044A0C E7A60050 */ swc1 $f6, 0x50($sp) +/* 079580 7F044A10 10400003 */ beqz $v0, .Ljp7F044A20 +/* 079584 7F044A14 26310001 */ addiu $s1, $s1, 1 +/* 079588 7F044A18 10000029 */ b .Ljp7F044AC0 +/* 07958C 7F044A1C 24020001 */ li $v0, 1 +.Ljp7F044A20: +/* 079590 7F044A20 1633FFF2 */ bne $s1, $s3, .Ljp7F0449EC +/* 079594 7F044A24 26100008 */ addiu $s0, $s0, 8 +/* 079598 7F044A28 00008825 */ move $s1, $zero +.Ljp7F044A2C: +/* 07959C 7F044A2C 4480A000 */ mtc1 $zero, $f20 +/* 0795A0 7F044A30 1A800011 */ blez $s4, .Ljp7F044A78 +/* 0795A4 7F044A34 27B20048 */ addiu $s2, $sp, 0x48 +/* 0795A8 7F044A38 02C08025 */ move $s0, $s6 +.Ljp7F044A3C: +/* 0795AC 7F044A3C C6080000 */ lwc1 $f8, ($s0) +/* 0795B0 7F044A40 E7B4004C */ swc1 $f20, 0x4c($sp) +/* 0795B4 7F044A44 02402025 */ move $a0, $s2 +/* 0795B8 7F044A48 E7A80048 */ swc1 $f8, 0x48($sp) +/* 0795BC 7F044A4C C60A0004 */ lwc1 $f10, 4($s0) +/* 0795C0 7F044A50 02A02825 */ move $a1, $s5 +/* 0795C4 7F044A54 02603025 */ move $a2, $s3 +/* 0795C8 7F044A58 0FC0F3F6 */ jal sub_GAME_7F03CCD8 +/* 0795CC 7F044A5C E7AA0050 */ swc1 $f10, 0x50($sp) +/* 0795D0 7F044A60 10400003 */ beqz $v0, .Ljp7F044A70 +/* 0795D4 7F044A64 26310001 */ addiu $s1, $s1, 1 +/* 0795D8 7F044A68 10000015 */ b .Ljp7F044AC0 +/* 0795DC 7F044A6C 24020001 */ li $v0, 1 +.Ljp7F044A70: +/* 0795E0 7F044A70 1634FFF2 */ bne $s1, $s4, .Ljp7F044A3C +/* 0795E4 7F044A74 26100008 */ addiu $s0, $s0, 8 +.Ljp7F044A78: +/* 0795E8 7F044A78 02A02025 */ move $a0, $s5 +/* 0795EC 7F044A7C 02602825 */ move $a1, $s3 +/* 0795F0 7F044A80 02C03025 */ move $a2, $s6 +/* 0795F4 7F044A84 0FC111BF */ jal sub_GAME_7F044414 +/* 0795F8 7F044A88 02803825 */ move $a3, $s4 +/* 0795FC 7F044A8C 10400003 */ beqz $v0, .Ljp7F044A9C +/* 079600 7F044A90 02C02025 */ move $a0, $s6 +/* 079604 7F044A94 1000000A */ b .Ljp7F044AC0 +/* 079608 7F044A98 00001025 */ move $v0, $zero +.Ljp7F044A9C: +/* 07960C 7F044A9C 02802825 */ move $a1, $s4 +/* 079610 7F044AA0 02A03025 */ move $a2, $s5 +/* 079614 7F044AA4 0FC111BF */ jal sub_GAME_7F044414 +/* 079618 7F044AA8 02603825 */ move $a3, $s3 +/* 07961C 7F044AAC 50400004 */ beql $v0, $zero, .Ljp7F044AC0 +/* 079620 7F044AB0 24020001 */ li $v0, 1 +/* 079624 7F044AB4 10000002 */ b .Ljp7F044AC0 +/* 079628 7F044AB8 00001025 */ move $v0, $zero +/* 07962C 7F044ABC 24020001 */ li $v0, 1 +.Ljp7F044AC0: +/* 079630 7F044AC0 8FBF003C */ lw $ra, 0x3c($sp) +/* 079634 7F044AC4 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 079638 7F044AC8 8FB00020 */ lw $s0, 0x20($sp) +/* 07963C 7F044ACC 8FB10024 */ lw $s1, 0x24($sp) +/* 079640 7F044AD0 8FB20028 */ lw $s2, 0x28($sp) +/* 079644 7F044AD4 8FB3002C */ lw $s3, 0x2c($sp) +/* 079648 7F044AD8 8FB40030 */ lw $s4, 0x30($sp) +/* 07964C 7F044ADC 8FB50034 */ lw $s5, 0x34($sp) +/* 079650 7F044AE0 8FB60038 */ lw $s6, 0x38($sp) +/* 079654 7F044AE4 03E00008 */ jr $ra +/* 079658 7F044AE8 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F044718(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F044718 +/* 079248 7F044718 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 07924C 7F04471C AFB40060 */ sw $s4, 0x60($sp) +/* 079250 7F044720 AFB3005C */ sw $s3, 0x5c($sp) +/* 079254 7F044724 F7BC0040 */ sdc1 $f28, 0x40($sp) +/* 079258 7F044728 4485E000 */ mtc1 $a1, $f28 +/* 07925C 7F04472C AFBF0064 */ sw $ra, 0x64($sp) +/* 079260 7F044730 AFB20058 */ sw $s2, 0x58($sp) +/* 079264 7F044734 AFB10054 */ sw $s1, 0x54($sp) +/* 079268 7F044738 AFB00050 */ sw $s0, 0x50($sp) +/* 07926C 7F04473C F7BE0048 */ sdc1 $f30, 0x48($sp) +/* 079270 7F044740 F7BA0038 */ sdc1 $f26, 0x38($sp) +/* 079274 7F044744 F7B80030 */ sdc1 $f24, 0x30($sp) +/* 079278 7F044748 F7B60028 */ sdc1 $f22, 0x28($sp) +/* 07927C 7F04474C F7B40020 */ sdc1 $f20, 0x20($sp) +/* 079280 7F044750 00E09825 */ move $s3, $a3 +/* 079284 7F044754 00C0A025 */ move $s4, $a2 +/* 079288 7F044758 C4960000 */ lwc1 $f22, ($a0) +/* 07928C 7F04475C C4980008 */ lwc1 $f24, 8($a0) +/* 079290 7F044760 18E00042 */ blez $a3, .L7F04486C +/* 079294 7F044764 00001025 */ move $v0, $zero +/* 079298 7F044768 4480F000 */ mtc1 $zero, $f30 +/* 07929C 7F04476C 00C08825 */ move $s1, $a2 +.L7F044770: +/* 0792A0 7F044770 24520001 */ addiu $s2, $v0, 1 +/* 0792A4 7F044774 0253001A */ div $zero, $s2, $s3 +/* 0792A8 7F044778 00007010 */ mfhi $t6 +/* 0792AC 7F04477C 000E78C0 */ sll $t7, $t6, 3 +/* 0792B0 7F044780 028F8021 */ addu $s0, $s4, $t7 +/* 0792B4 7F044784 8E060000 */ lw $a2, ($s0) +/* 0792B8 7F044788 8E070004 */ lw $a3, 4($s0) +/* 0792BC 7F04478C C62C0000 */ lwc1 $f12, ($s1) +/* 0792C0 7F044790 C62E0004 */ lwc1 $f14, 4($s1) +/* 0792C4 7F044794 16600002 */ bnez $s3, .L7F0447A0 +/* 0792C8 7F044798 00000000 */ nop +/* 0792CC 7F04479C 0007000D */ break 7 +.L7F0447A0: +/* 0792D0 7F0447A0 2401FFFF */ li $at, -1 +/* 0792D4 7F0447A4 16610004 */ bne $s3, $at, .L7F0447B8 +/* 0792D8 7F0447A8 3C018000 */ lui $at, 0x8000 +/* 0792DC 7F0447AC 16410002 */ bne $s2, $at, .L7F0447B8 +/* 0792E0 7F0447B0 00000000 */ nop +/* 0792E4 7F0447B4 0006000D */ break 6 +.L7F0447B8: +/* 0792E8 7F0447B8 E7B80014 */ swc1 $f24, 0x14($sp) +/* 0792EC 7F0447BC 0FC2C5B1 */ jal sub_GAME_7F0B16C4 +/* 0792F0 7F0447C0 E7B60010 */ swc1 $f22, 0x10($sp) +/* 0792F4 7F0447C4 461E003C */ c.lt.s $f0, $f30 +/* 0792F8 7F0447C8 4406B000 */ mfc1 $a2, $f22 +/* 0792FC 7F0447CC 4407C000 */ mfc1 $a3, $f24 +/* 079300 7F0447D0 46000506 */ mov.s $f20, $f0 +/* 079304 7F0447D4 45020003 */ bc1fl .L7F0447E4 +/* 079308 7F0447D8 C62C0000 */ lwc1 $f12, ($s1) +/* 07930C 7F0447DC 46000507 */ neg.s $f20, $f0 +/* 079310 7F0447E0 C62C0000 */ lwc1 $f12, ($s1) +.L7F0447E4: +/* 079314 7F0447E4 0FC2C5E5 */ jal sub_GAME_7F0B1794 +/* 079318 7F0447E8 C62E0004 */ lwc1 $f14, 4($s1) +/* 07931C 7F0447EC 4406B000 */ mfc1 $a2, $f22 +/* 079320 7F0447F0 4407C000 */ mfc1 $a3, $f24 +/* 079324 7F0447F4 46000686 */ mov.s $f26, $f0 +/* 079328 7F0447F8 C60C0000 */ lwc1 $f12, ($s0) +/* 07932C 7F0447FC 0FC2C5E5 */ jal sub_GAME_7F0B1794 +/* 079330 7F044800 C60E0004 */ lwc1 $f14, 4($s0) +/* 079334 7F044804 461CA03C */ c.lt.s $f20, $f28 +/* 079338 7F044808 00000000 */ nop +/* 07933C 7F04480C 45020015 */ bc1fl .L7F044864 +/* 079340 7F044810 02401025 */ move $v0, $s2 +/* 079344 7F044814 461CD03C */ c.lt.s $f26, $f28 +/* 079348 7F044818 00000000 */ nop +/* 07934C 7F04481C 4501000E */ bc1t .L7F044858 +/* 079350 7F044820 00000000 */ nop +/* 079354 7F044824 461C003C */ c.lt.s $f0, $f28 +/* 079358 7F044828 00000000 */ nop +/* 07935C 7F04482C 4501000A */ bc1t .L7F044858 +/* 079360 7F044830 00000000 */ nop +/* 079364 7F044834 C62C0000 */ lwc1 $f12, ($s1) +/* 079368 7F044838 C62E0004 */ lwc1 $f14, 4($s1) +/* 07936C 7F04483C 8E060000 */ lw $a2, ($s0) +/* 079370 7F044840 8E070004 */ lw $a3, 4($s0) +/* 079374 7F044844 E7B80014 */ swc1 $f24, 0x14($sp) +/* 079378 7F044848 0FC2C5F9 */ jal sub_GAME_7F0B17E4 +/* 07937C 7F04484C E7B60010 */ swc1 $f22, 0x10($sp) +/* 079380 7F044850 50400004 */ beql $v0, $zero, .L7F044864 +/* 079384 7F044854 02401025 */ move $v0, $s2 +.L7F044858: +/* 079388 7F044858 10000005 */ b .L7F044870 +/* 07938C 7F04485C 24020001 */ li $v0, 1 +/* 079390 7F044860 02401025 */ move $v0, $s2 +.L7F044864: +/* 079394 7F044864 1653FFC2 */ bne $s2, $s3, .L7F044770 +/* 079398 7F044868 26310008 */ addiu $s1, $s1, 8 +.L7F04486C: +/* 07939C 7F04486C 00001025 */ move $v0, $zero +.L7F044870: +/* 0793A0 7F044870 8FBF0064 */ lw $ra, 0x64($sp) +/* 0793A4 7F044874 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 0793A8 7F044878 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 0793AC 7F04487C D7B80030 */ ldc1 $f24, 0x30($sp) +/* 0793B0 7F044880 D7BA0038 */ ldc1 $f26, 0x38($sp) +/* 0793B4 7F044884 D7BC0040 */ ldc1 $f28, 0x40($sp) +/* 0793B8 7F044888 D7BE0048 */ ldc1 $f30, 0x48($sp) +/* 0793BC 7F04488C 8FB00050 */ lw $s0, 0x50($sp) +/* 0793C0 7F044890 8FB10054 */ lw $s1, 0x54($sp) +/* 0793C4 7F044894 8FB20058 */ lw $s2, 0x58($sp) +/* 0793C8 7F044898 8FB3005C */ lw $s3, 0x5c($sp) +/* 0793CC 7F04489C 8FB40060 */ lw $s4, 0x60($sp) +/* 0793D0 7F0448A0 03E00008 */ jr $ra +/* 0793D4 7F0448A4 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0448A8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0448A8 +/* 0793D8 7F0448A8 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 0793DC 7F0448AC AFBF0034 */ sw $ra, 0x34($sp) +/* 0793E0 7F0448B0 AFB50030 */ sw $s5, 0x30($sp) +/* 0793E4 7F0448B4 27AE008C */ addiu $t6, $sp, 0x8c +/* 0793E8 7F0448B8 0080A825 */ move $s5, $a0 +/* 0793EC 7F0448BC AFB4002C */ sw $s4, 0x2c($sp) +/* 0793F0 7F0448C0 AFB30028 */ sw $s3, 0x28($sp) +/* 0793F4 7F0448C4 AFB20024 */ sw $s2, 0x24($sp) +/* 0793F8 7F0448C8 AFB10020 */ sw $s1, 0x20($sp) +/* 0793FC 7F0448CC AFB0001C */ sw $s0, 0x1c($sp) +/* 079400 7F0448D0 AFAE0010 */ sw $t6, 0x10($sp) +/* 079404 7F0448D4 27A50098 */ addiu $a1, $sp, 0x98 +/* 079408 7F0448D8 27A60094 */ addiu $a2, $sp, 0x94 +/* 07940C 7F0448DC 0FC0F308 */ jal sub_GAME_7F03CC20 +/* 079410 7F0448E0 27A70090 */ addiu $a3, $sp, 0x90 +/* 079414 7F0448E4 8FAF0094 */ lw $t7, 0x94($sp) +/* 079418 7F0448E8 27B0006C */ addiu $s0, $sp, 0x6c +/* 07941C 7F0448EC 02A02025 */ move $a0, $s5 +/* 079420 7F0448F0 1DE00003 */ bgtz $t7, .L7F044900 +/* 079424 7F0448F4 00000000 */ nop +/* 079428 7F0448F8 10000086 */ b .L7F044B14 +/* 07942C 7F0448FC 24020001 */ li $v0, 1 +.L7F044900: +/* 079430 7F044900 0FC0F2E3 */ jal sub_GAME_7F03CB8C +/* 079434 7F044904 02002825 */ move $a1, $s0 +/* 079438 7F044908 0FC0F8FF */ jal sub_GAME_7F03E3FC +/* 07943C 7F04490C 02002025 */ move $a0, $s0 +/* 079440 7F044910 3C138007 */ lui $s3, %hi(ptr_list_object_lookup_indices) +/* 079444 7F044914 8E739C30 */ lw $s3, %lo(ptr_list_object_lookup_indices)($s3) +/* 079448 7F044918 24140002 */ li $s4, 2 +/* 07944C 7F04491C 86620000 */ lh $v0, ($s3) +/* 079450 7F044920 0440007B */ bltz $v0, .L7F044B10 +/* 079454 7F044924 0002C080 */ sll $t8, $v0, 2 +.L7F044928: +/* 079458 7F044928 0302C023 */ subu $t8, $t8, $v0 +/* 07945C 7F04492C 0018C080 */ sll $t8, $t8, 2 +/* 079460 7F044930 0302C021 */ addu $t8, $t8, $v0 +/* 079464 7F044934 3C198007 */ lui $t9, %hi(pos_data_entry) +/* 079468 7F044938 27399C38 */ addiu $t9, %lo(pos_data_entry) # addiu $t9, $t9, -0x63c8 +/* 07946C 7F04493C 0018C080 */ sll $t8, $t8, 2 +/* 079470 7F044940 03199021 */ addu $s2, $t8, $t9 +/* 079474 7F044944 5255006F */ beql $s2, $s5, .L7F044B04 +/* 079478 7F044948 86620002 */ lh $v0, 2($s3) +/* 07947C 7F04494C 92420000 */ lbu $v0, ($s2) +/* 079480 7F044950 24010006 */ li $at, 6 +/* 079484 7F044954 10410003 */ beq $v0, $at, .L7F044964 +/* 079488 7F044958 24010003 */ li $at, 3 +/* 07948C 7F04495C 5441003C */ bnel $v0, $at, .L7F044A50 +/* 079490 7F044960 24010001 */ li $at, 1 +.L7F044964: +/* 079494 7F044964 8E420004 */ lw $v0, 4($s2) +/* 079498 7F044968 02402025 */ move $a0, $s2 +/* 07949C 7F04496C 27A5005C */ addiu $a1, $sp, 0x5c +/* 0794A0 7F044970 10400005 */ beqz $v0, .L7F044988 +/* 0794A4 7F044974 27A60064 */ addiu $a2, $sp, 0x64 +/* 0794A8 7F044978 8C480014 */ lw $t0, 0x14($v0) +/* 0794AC 7F04497C 31090400 */ andi $t1, $t0, 0x400 +/* 0794B0 7F044980 55200060 */ bnezl $t1, .L7F044B04 +/* 0794B4 7F044984 86620002 */ lh $v0, 2($s3) +.L7F044988: +/* 0794B8 7F044988 0FC0F3E2 */ jal sub_GAME_7F03CF88 +/* 0794BC 7F04498C 27A70060 */ addiu $a3, $sp, 0x60 +/* 0794C0 7F044990 0FC0F3FA */ jal sub_GAME_7F03CFE8 +/* 0794C4 7F044994 02402025 */ move $a0, $s2 +/* 0794C8 7F044998 C7A20060 */ lwc1 $f2, 0x60($sp) +/* 0794CC 7F04499C C7A80090 */ lwc1 $f8, 0x90($sp) +/* 0794D0 7F0449A0 C7A40064 */ lwc1 $f4, 0x64($sp) +/* 0794D4 7F0449A4 46001080 */ add.s $f2, $f2, $f0 +/* 0794D8 7F0449A8 C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0794DC 7F0449AC 46002180 */ add.s $f6, $f4, $f0 +/* 0794E0 7F0449B0 E7A20060 */ swc1 $f2, 0x60($sp) +/* 0794E4 7F0449B4 4608103E */ c.le.s $f2, $f8 +/* 0794E8 7F0449B8 E7A60064 */ swc1 $f6, 0x64($sp) +/* 0794EC 7F0449BC 45020051 */ bc1fl .L7F044B04 +/* 0794F0 7F0449C0 86620002 */ lh $v0, 2($s3) +/* 0794F4 7F0449C4 4606503E */ c.le.s $f10, $f6 +/* 0794F8 7F0449C8 26510008 */ addiu $s1, $s2, 8 +/* 0794FC 7F0449CC 24100001 */ li $s0, 1 +/* 079500 7F0449D0 02202025 */ move $a0, $s1 +/* 079504 7F0449D4 4500004A */ bc1f .L7F044B00 +/* 079508 7F0449D8 8FA50098 */ lw $a1, 0x98($sp) +/* 07950C 7F0449DC 0FC0F336 */ jal sub_GAME_7F03CCD8 +/* 079510 7F0449E0 8FA60094 */ lw $a2, 0x94($sp) +/* 079514 7F0449E4 10400002 */ beqz $v0, .L7F0449F0 +/* 079518 7F0449E8 02202025 */ move $a0, $s1 +/* 07951C 7F0449EC 00008025 */ move $s0, $zero +.L7F0449F0: +/* 079520 7F0449F0 12000007 */ beqz $s0, .L7F044A10 +/* 079524 7F0449F4 8FA5005C */ lw $a1, 0x5c($sp) +/* 079528 7F0449F8 8FA60098 */ lw $a2, 0x98($sp) +/* 07952C 7F0449FC 0FC111C6 */ jal sub_GAME_7F044718 +/* 079530 7F044A00 8FA70094 */ lw $a3, 0x94($sp) +/* 079534 7F044A04 10400002 */ beqz $v0, .L7F044A10 +/* 079538 7F044A08 00000000 */ nop +/* 07953C 7F044A0C 00008025 */ move $s0, $zero +.L7F044A10: +/* 079540 7F044A10 5600003C */ bnezl $s0, .L7F044B04 +/* 079544 7F044A14 86620002 */ lh $v0, 2($s3) +/* 079548 7F044A18 924A0000 */ lbu $t2, ($s2) +/* 07954C 7F044A1C 24010003 */ li $at, 3 +/* 079550 7F044A20 15410008 */ bne $t2, $at, .L7F044A44 +/* 079554 7F044A24 00000000 */ nop +/* 079558 7F044A28 92AB0000 */ lbu $t3, ($s5) +/* 07955C 7F044A2C 168B0005 */ bne $s4, $t3, .L7F044A44 +/* 079560 7F044A30 00000000 */ nop +/* 079564 7F044A34 8E420004 */ lw $v0, 4($s2) +/* 079568 7F044A38 944C0012 */ lhu $t4, 0x12($v0) +/* 07956C 7F044A3C 358D0010 */ ori $t5, $t4, 0x10 +/* 079570 7F044A40 A44D0012 */ sh $t5, 0x12($v0) +.L7F044A44: +/* 079574 7F044A44 10000033 */ b .L7F044B14 +/* 079578 7F044A48 00001025 */ move $v0, $zero +/* 07957C 7F044A4C 24010001 */ li $at, 1 +.L7F044A50: +/* 079580 7F044A50 10410005 */ beq $v0, $at, .L7F044A68 +/* 079584 7F044A54 24010004 */ li $at, 4 +/* 079588 7F044A58 50410004 */ beql $v0, $at, .L7F044A6C +/* 07958C 7F044A5C 92AE0000 */ lbu $t6, ($s5) +/* 079590 7F044A60 56820028 */ bnel $s4, $v0, .L7F044B04 +/* 079594 7F044A64 86620002 */ lh $v0, 2($s3) +.L7F044A68: +/* 079598 7F044A68 92AE0000 */ lbu $t6, ($s5) +.L7F044A6C: +/* 07959C 7F044A6C 02402025 */ move $a0, $s2 +/* 0795A0 7F044A70 27A5004C */ addiu $a1, $sp, 0x4c +/* 0795A4 7F044A74 168E0009 */ bne $s4, $t6, .L7F044A9C +/* 0795A8 7F044A78 27A60048 */ addiu $a2, $sp, 0x48 +/* 0795AC 7F044A7C 52820021 */ beql $s4, $v0, .L7F044B04 +/* 0795B0 7F044A80 86620002 */ lh $v0, 2($s3) +/* 0795B4 7F044A84 8E4F0004 */ lw $t7, 4($s2) +/* 0795B8 7F044A88 2401002B */ li $at, 43 +/* 0795BC 7F044A8C 91E20003 */ lbu $v0, 3($t7) +/* 0795C0 7F044A90 1041001B */ beq $v0, $at, .L7F044B00 +/* 0795C4 7F044A94 24010028 */ li $at, 40 +/* 0795C8 7F044A98 10410019 */ beq $v0, $at, .L7F044B00 +.L7F044A9C: +/* 0795CC 7F044A9C 27B80040 */ addiu $t8, $sp, 0x40 +/* 0795D0 7F044AA0 AFB80010 */ sw $t8, 0x10($sp) +/* 0795D4 7F044AA4 0FC0F308 */ jal sub_GAME_7F03CC20 +/* 0795D8 7F044AA8 27A70044 */ addiu $a3, $sp, 0x44 +/* 0795DC 7F044AAC 8FA50048 */ lw $a1, 0x48($sp) +/* 0795E0 7F044AB0 C7B00090 */ lwc1 $f16, 0x90($sp) +/* 0795E4 7F044AB4 C7B20040 */ lwc1 $f18, 0x40($sp) +/* 0795E8 7F044AB8 58A00012 */ blezl $a1, .L7F044B04 +/* 0795EC 7F044ABC 86620002 */ lh $v0, 2($s3) +/* 0795F0 7F044AC0 4610903E */ c.le.s $f18, $f16 +/* 0795F4 7F044AC4 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0795F8 7F044AC8 C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 0795FC 7F044ACC 4502000D */ bc1fl .L7F044B04 +/* 079600 7F044AD0 86620002 */ lh $v0, 2($s3) +/* 079604 7F044AD4 4604403E */ c.le.s $f8, $f4 +/* 079608 7F044AD8 8FA4004C */ lw $a0, 0x4c($sp) +/* 07960C 7F044ADC 8FA60098 */ lw $a2, 0x98($sp) +/* 079610 7F044AE0 45020008 */ bc1fl .L7F044B04 +/* 079614 7F044AE4 86620002 */ lh $v0, 2($s3) +/* 079618 7F044AE8 0FC111AE */ jal sub_GAME_7F0446B8 +/* 07961C 7F044AEC 8FA70094 */ lw $a3, 0x94($sp) +/* 079620 7F044AF0 50400004 */ beql $v0, $zero, .L7F044B04 +/* 079624 7F044AF4 86620002 */ lh $v0, 2($s3) +/* 079628 7F044AF8 10000006 */ b .L7F044B14 +/* 07962C 7F044AFC 00001025 */ move $v0, $zero +.L7F044B00: +/* 079630 7F044B00 86620002 */ lh $v0, 2($s3) +.L7F044B04: +/* 079634 7F044B04 26730002 */ addiu $s3, $s3, 2 +/* 079638 7F044B08 0443FF87 */ bgezl $v0, .L7F044928 +/* 07963C 7F044B0C 0002C080 */ sll $t8, $v0, 2 +.L7F044B10: +/* 079640 7F044B10 24020001 */ li $v0, 1 +.L7F044B14: +/* 079644 7F044B14 8FBF0034 */ lw $ra, 0x34($sp) +/* 079648 7F044B18 8FB0001C */ lw $s0, 0x1c($sp) +/* 07964C 7F044B1C 8FB10020 */ lw $s1, 0x20($sp) +/* 079650 7F044B20 8FB20024 */ lw $s2, 0x24($sp) +/* 079654 7F044B24 8FB30028 */ lw $s3, 0x28($sp) +/* 079658 7F044B28 8FB4002C */ lw $s4, 0x2c($sp) +/* 07965C 7F044B2C 8FB50030 */ lw $s5, 0x30($sp) +/* 079660 7F044B30 03E00008 */ jr $ra +/* 079664 7F044B34 27BD00A0 */ addiu $sp, $sp, 0xa0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F044B38(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F044B38 +/* 079668 7F044B38 27BDFEA8 */ addiu $sp, $sp, -0x158 +/* 07966C 7F044B3C AFBF0024 */ sw $ra, 0x24($sp) +/* 079670 7F044B40 AFB10020 */ sw $s1, 0x20($sp) +/* 079674 7F044B44 AFB0001C */ sw $s0, 0x1c($sp) +/* 079678 7F044B48 8C830014 */ lw $v1, 0x14($a0) +/* 07967C 7F044B4C 8C910010 */ lw $s1, 0x10($a0) +/* 079680 7F044B50 24180001 */ li $t8, 1 +/* 079684 7F044B54 8C790008 */ lw $t9, 8($v1) +/* 079688 7F044B58 00808025 */ move $s0, $a0 +/* 07968C 7F044B5C 27A500C8 */ addiu $a1, $sp, 0xc8 +/* 079690 7F044B60 8F220008 */ lw $v0, 8($t9) +/* 079694 7F044B64 8C480004 */ lw $t0, 4($v0) +/* 079698 7F044B68 8D090004 */ lw $t1, 4($t0) +/* 07969C 7F044B6C AFA90148 */ sw $t1, 0x148($sp) +/* 0796A0 7F044B70 8C4A0008 */ lw $t2, 8($v0) +/* 0796A4 7F044B74 8D4B0004 */ lw $t3, 4($t2) +/* 0796A8 7F044B78 AFAB0144 */ sw $t3, 0x144($sp) +/* 0796AC 7F044B7C 8C4C000C */ lw $t4, 0xc($v0) +/* 0796B0 7F044B80 8D8D0004 */ lw $t5, 4($t4) +/* 0796B4 7F044B84 AFAD0140 */ sw $t5, 0x140($sp) +/* 0796B8 7F044B88 8C4E0010 */ lw $t6, 0x10($v0) +/* 0796BC 7F044B8C 8DCF0004 */ lw $t7, 4($t6) +/* 0796C0 7F044B90 AFB80108 */ sw $t8, 0x108($sp) +/* 0796C4 7F044B94 AFAF013C */ sw $t7, 0x13c($sp) +/* 0796C8 7F044B98 8C590018 */ lw $t9, 0x18($v0) +/* 0796CC 7F044B9C 8F280004 */ lw $t0, 4($t9) +/* 0796D0 7F044BA0 AFA800C0 */ sw $t0, 0xc0($sp) +/* 0796D4 7F044BA4 C48C00A0 */ lwc1 $f12, 0xa0($a0) +/* 0796D8 7F044BA8 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0796DC 7F044BAC AFA30154 */ sw $v1, 0x154($sp) +/* 0796E0 7F044BB0 8FA90154 */ lw $t1, 0x154($sp) +/* 0796E4 7F044BB4 27A500C8 */ addiu $a1, $sp, 0xc8 +/* 0796E8 7F044BB8 0FC1629F */ jal matrix_scalar_multiply +/* 0796EC 7F044BBC C52C0014 */ lwc1 $f12, 0x14($t1) +/* 0796F0 7F044BC0 26040058 */ addiu $a0, $s0, 0x58 +/* 0796F4 7F044BC4 0FC16266 */ jal matrix_4x4_set_position +/* 0796F8 7F044BC8 27A500C8 */ addiu $a1, $sp, 0xc8 +/* 0796FC 7F044BCC 27A400C8 */ addiu $a0, $sp, 0xc8 +/* 079700 7F044BD0 8FA50148 */ lw $a1, 0x148($sp) +/* 079704 7F044BD4 0FC16106 */ jal matrix_4x4_transform_vector +/* 079708 7F044BD8 27A60130 */ addiu $a2, $sp, 0x130 +/* 07970C 7F044BDC 27A400C8 */ addiu $a0, $sp, 0xc8 +/* 079710 7F044BE0 8FA50144 */ lw $a1, 0x144($sp) +/* 079714 7F044BE4 0FC16106 */ jal matrix_4x4_transform_vector +/* 079718 7F044BE8 27A60124 */ addiu $a2, $sp, 0x124 +/* 07971C 7F044BEC 27A400C8 */ addiu $a0, $sp, 0xc8 +/* 079720 7F044BF0 8FA50140 */ lw $a1, 0x140($sp) +/* 079724 7F044BF4 0FC16106 */ jal matrix_4x4_transform_vector +/* 079728 7F044BF8 27A60118 */ addiu $a2, $sp, 0x118 +/* 07972C 7F044BFC 27A400C8 */ addiu $a0, $sp, 0xc8 +/* 079730 7F044C00 8FA5013C */ lw $a1, 0x13c($sp) +/* 079734 7F044C04 0FC16106 */ jal matrix_4x4_transform_vector +/* 079738 7F044C08 27A6010C */ addiu $a2, $sp, 0x10c +/* 07973C 7F044C0C 8E2A0014 */ lw $t2, 0x14($s1) +/* 079740 7F044C10 C7A80138 */ lwc1 $f8, 0x138($sp) +/* 079744 7F044C14 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 079748 7F044C18 AFAA00C4 */ sw $t2, 0xc4($sp) +/* 07974C 7F044C1C 8E260010 */ lw $a2, 0x10($s1) +/* 079750 7F044C20 8E250008 */ lw $a1, 8($s1) +/* 079754 7F044C24 8FA70130 */ lw $a3, 0x130($sp) +/* 079758 7F044C28 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07975C 7F044C2C E7A80010 */ swc1 $f8, 0x10($sp) +/* 079760 7F044C30 10400006 */ beqz $v0, .L7F044C4C +/* 079764 7F044C34 8FA400C4 */ lw $a0, 0xc4($sp) +/* 079768 7F044C38 8FA50130 */ lw $a1, 0x130($sp) +/* 07976C 7F044C3C 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 079770 7F044C40 8FA60138 */ lw $a2, 0x138($sp) +/* 079774 7F044C44 10000002 */ b .L7F044C50 +/* 079778 7F044C48 E7A00134 */ swc1 $f0, 0x134($sp) +.L7F044C4C: +/* 07977C 7F044C4C AFA00108 */ sw $zero, 0x108($sp) +.L7F044C50: +/* 079780 7F044C50 8E2B0014 */ lw $t3, 0x14($s1) +/* 079784 7F044C54 C7A6012C */ lwc1 $f6, 0x12c($sp) +/* 079788 7F044C58 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 07978C 7F044C5C AFAB00C4 */ sw $t3, 0xc4($sp) +/* 079790 7F044C60 8E260010 */ lw $a2, 0x10($s1) +/* 079794 7F044C64 8E250008 */ lw $a1, 8($s1) +/* 079798 7F044C68 8FA70124 */ lw $a3, 0x124($sp) +/* 07979C 7F044C6C 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0797A0 7F044C70 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0797A4 7F044C74 10400006 */ beqz $v0, .L7F044C90 +/* 0797A8 7F044C78 8FA400C4 */ lw $a0, 0xc4($sp) +/* 0797AC 7F044C7C 8FA50124 */ lw $a1, 0x124($sp) +/* 0797B0 7F044C80 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0797B4 7F044C84 8FA6012C */ lw $a2, 0x12c($sp) +/* 0797B8 7F044C88 10000002 */ b .L7F044C94 +/* 0797BC 7F044C8C E7A00128 */ swc1 $f0, 0x128($sp) +.L7F044C90: +/* 0797C0 7F044C90 AFA00108 */ sw $zero, 0x108($sp) +.L7F044C94: +/* 0797C4 7F044C94 8E2C0014 */ lw $t4, 0x14($s1) +/* 0797C8 7F044C98 C7A40120 */ lwc1 $f4, 0x120($sp) +/* 0797CC 7F044C9C 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 0797D0 7F044CA0 AFAC00C4 */ sw $t4, 0xc4($sp) +/* 0797D4 7F044CA4 8E260010 */ lw $a2, 0x10($s1) +/* 0797D8 7F044CA8 8E250008 */ lw $a1, 8($s1) +/* 0797DC 7F044CAC 8FA70118 */ lw $a3, 0x118($sp) +/* 0797E0 7F044CB0 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0797E4 7F044CB4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0797E8 7F044CB8 10400006 */ beqz $v0, .L7F044CD4 +/* 0797EC 7F044CBC 8FA400C4 */ lw $a0, 0xc4($sp) +/* 0797F0 7F044CC0 8FA50118 */ lw $a1, 0x118($sp) +/* 0797F4 7F044CC4 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0797F8 7F044CC8 8FA60120 */ lw $a2, 0x120($sp) +/* 0797FC 7F044CCC 10000002 */ b .L7F044CD8 +/* 079800 7F044CD0 E7A0011C */ swc1 $f0, 0x11c($sp) +.L7F044CD4: +/* 079804 7F044CD4 AFA00108 */ sw $zero, 0x108($sp) +.L7F044CD8: +/* 079808 7F044CD8 8E2D0014 */ lw $t5, 0x14($s1) +/* 07980C 7F044CDC C7AA0114 */ lwc1 $f10, 0x114($sp) +/* 079810 7F044CE0 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 079814 7F044CE4 AFAD00C4 */ sw $t5, 0xc4($sp) +/* 079818 7F044CE8 8E260010 */ lw $a2, 0x10($s1) +/* 07981C 7F044CEC 8E250008 */ lw $a1, 8($s1) +/* 079820 7F044CF0 8FA7010C */ lw $a3, 0x10c($sp) +/* 079824 7F044CF4 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 079828 7F044CF8 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07982C 7F044CFC 10400006 */ beqz $v0, .L7F044D18 +/* 079830 7F044D00 8FA400C4 */ lw $a0, 0xc4($sp) +/* 079834 7F044D04 8FA5010C */ lw $a1, 0x10c($sp) +/* 079838 7F044D08 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 07983C 7F044D0C 8FA60114 */ lw $a2, 0x114($sp) +/* 079840 7F044D10 10000002 */ b .L7F044D1C +/* 079844 7F044D14 E7A00110 */ swc1 $f0, 0x110($sp) +.L7F044D18: +/* 079848 7F044D18 AFA00108 */ sw $zero, 0x108($sp) +.L7F044D1C: +/* 07984C 7F044D1C 8FAE0108 */ lw $t6, 0x108($sp) +/* 079850 7F044D20 26040018 */ addiu $a0, $s0, 0x18 +/* 079854 7F044D24 27A600BC */ addiu $a2, $sp, 0xbc +/* 079858 7F044D28 11C0010E */ beqz $t6, .L7F045164 +/* 07985C 7F044D2C 00802825 */ move $a1, $a0 +/* 079860 7F044D30 C7B20124 */ lwc1 $f18, 0x124($sp) +/* 079864 7F044D34 C7B00130 */ lwc1 $f16, 0x130($sp) +/* 079868 7F044D38 C7AE0128 */ lwc1 $f14, 0x128($sp) +/* 07986C 7F044D3C C7AC0134 */ lwc1 $f12, 0x134($sp) +/* 079870 7F044D40 46109401 */ sub.s $f16, $f18, $f16 +/* 079874 7F044D44 C7B2012C */ lwc1 $f18, 0x12c($sp) +/* 079878 7F044D48 C7AA0138 */ lwc1 $f10, 0x138($sp) +/* 07987C 7F044D4C 460C7301 */ sub.s $f12, $f14, $f12 +/* 079880 7F044D50 E7B000B4 */ swc1 $f16, 0xb4($sp) +/* 079884 7F044D54 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 079888 7F044D58 460A9281 */ sub.s $f10, $f18, $f10 +/* 07988C 7F044D5C E7AC00B8 */ swc1 $f12, 0xb8($sp) +/* 079890 7F044D60 27A500B8 */ addiu $a1, $sp, 0xb8 +/* 079894 7F044D64 0C007DD4 */ jal guNormalize +/* 079898 7F044D68 E7AA00BC */ swc1 $f10, 0xbc($sp) +/* 07989C 7F044D6C C7B2010C */ lwc1 $f18, 0x10c($sp) +/* 0798A0 7F044D70 C7B00124 */ lwc1 $f16, 0x124($sp) +/* 0798A4 7F044D74 C7AE0110 */ lwc1 $f14, 0x110($sp) +/* 0798A8 7F044D78 C7AC0128 */ lwc1 $f12, 0x128($sp) +/* 0798AC 7F044D7C 46109401 */ sub.s $f16, $f18, $f16 +/* 0798B0 7F044D80 C7B20114 */ lwc1 $f18, 0x114($sp) +/* 0798B4 7F044D84 C7AA012C */ lwc1 $f10, 0x12c($sp) +/* 0798B8 7F044D88 460C7301 */ sub.s $f12, $f14, $f12 +/* 0798BC 7F044D8C E7B000A8 */ swc1 $f16, 0xa8($sp) +/* 0798C0 7F044D90 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 0798C4 7F044D94 460A9281 */ sub.s $f10, $f18, $f10 +/* 0798C8 7F044D98 E7AC00AC */ swc1 $f12, 0xac($sp) +/* 0798CC 7F044D9C 27A500AC */ addiu $a1, $sp, 0xac +/* 0798D0 7F044DA0 27A600B0 */ addiu $a2, $sp, 0xb0 +/* 0798D4 7F044DA4 0C007DD4 */ jal guNormalize +/* 0798D8 7F044DA8 E7AA00B0 */ swc1 $f10, 0xb0($sp) +/* 0798DC 7F044DAC C7B20118 */ lwc1 $f18, 0x118($sp) +/* 0798E0 7F044DB0 C7B0010C */ lwc1 $f16, 0x10c($sp) +/* 0798E4 7F044DB4 C7AE011C */ lwc1 $f14, 0x11c($sp) +/* 0798E8 7F044DB8 C7AC0110 */ lwc1 $f12, 0x110($sp) +/* 0798EC 7F044DBC 46109401 */ sub.s $f16, $f18, $f16 +/* 0798F0 7F044DC0 C7B20120 */ lwc1 $f18, 0x120($sp) +/* 0798F4 7F044DC4 C7AA0114 */ lwc1 $f10, 0x114($sp) +/* 0798F8 7F044DC8 460C7301 */ sub.s $f12, $f14, $f12 +/* 0798FC 7F044DCC E7B0009C */ swc1 $f16, 0x9c($sp) +/* 079900 7F044DD0 27A4009C */ addiu $a0, $sp, 0x9c +/* 079904 7F044DD4 460A9281 */ sub.s $f10, $f18, $f10 +/* 079908 7F044DD8 E7AC00A0 */ swc1 $f12, 0xa0($sp) +/* 07990C 7F044DDC 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 079910 7F044DE0 27A600A4 */ addiu $a2, $sp, 0xa4 +/* 079914 7F044DE4 0C007DD4 */ jal guNormalize +/* 079918 7F044DE8 E7AA00A4 */ swc1 $f10, 0xa4($sp) +/* 07991C 7F044DEC C7B20130 */ lwc1 $f18, 0x130($sp) +/* 079920 7F044DF0 C7B00118 */ lwc1 $f16, 0x118($sp) +/* 079924 7F044DF4 C7AE0134 */ lwc1 $f14, 0x134($sp) +/* 079928 7F044DF8 C7AC011C */ lwc1 $f12, 0x11c($sp) +/* 07992C 7F044DFC 46109401 */ sub.s $f16, $f18, $f16 +/* 079930 7F044E00 C7B20138 */ lwc1 $f18, 0x138($sp) +/* 079934 7F044E04 C7AA0120 */ lwc1 $f10, 0x120($sp) +/* 079938 7F044E08 460C7301 */ sub.s $f12, $f14, $f12 +/* 07993C 7F044E0C E7B00090 */ swc1 $f16, 0x90($sp) +/* 079940 7F044E10 27A40090 */ addiu $a0, $sp, 0x90 +/* 079944 7F044E14 460A9281 */ sub.s $f10, $f18, $f10 +/* 079948 7F044E18 E7AC0094 */ swc1 $f12, 0x94($sp) +/* 07994C 7F044E1C 27A50094 */ addiu $a1, $sp, 0x94 +/* 079950 7F044E20 27A60098 */ addiu $a2, $sp, 0x98 +/* 079954 7F044E24 0C007DD4 */ jal guNormalize +/* 079958 7F044E28 E7AA0098 */ swc1 $f10, 0x98($sp) +/* 07995C 7F044E2C C7A800BC */ lwc1 $f8, 0xbc($sp) +/* 079960 7F044E30 C7A600A8 */ lwc1 $f6, 0xa8($sp) +/* 079964 7F044E34 C7AA00B0 */ lwc1 $f10, 0xb0($sp) +/* 079968 7F044E38 E7A80028 */ swc1 $f8, 0x28($sp) +/* 07996C 7F044E3C 46064102 */ mul.s $f4, $f8, $f6 +/* 079970 7F044E40 C7A800B4 */ lwc1 $f8, 0xb4($sp) +/* 079974 7F044E44 E7A6002C */ swc1 $f6, 0x2c($sp) +/* 079978 7F044E48 E7AA0034 */ swc1 $f10, 0x34($sp) +/* 07997C 7F044E4C 46085182 */ mul.s $f6, $f10, $f8 +/* 079980 7F044E50 E7A80030 */ swc1 $f8, 0x30($sp) +/* 079984 7F044E54 C7A800A4 */ lwc1 $f8, 0xa4($sp) +/* 079988 7F044E58 46062001 */ sub.s $f0, $f4, $f6 +/* 07998C 7F044E5C C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 079990 7F044E60 46045182 */ mul.s $f6, $f10, $f4 +/* 079994 7F044E64 C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 079998 7F044E68 E7A4002C */ swc1 $f4, 0x2c($sp) +/* 07999C 7F044E6C 460A4102 */ mul.s $f4, $f8, $f10 +/* 0799A0 7F044E70 46043381 */ sub.s $f14, $f6, $f4 +/* 0799A4 7F044E74 C7A60090 */ lwc1 $f6, 0x90($sp) +/* 0799A8 7F044E78 4600703E */ c.le.s $f14, $f0 +/* 0799AC 7F044E7C 00000000 */ nop +/* 0799B0 7F044E80 45020023 */ bc1fl .L7F044F10 +/* 0799B4 7F044E84 C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 0799B8 7F044E88 46064102 */ mul.s $f4, $f8, $f6 +/* 0799BC 7F044E8C E7AA0038 */ swc1 $f10, 0x38($sp) +/* 0799C0 7F044E90 C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 0799C4 7F044E94 C7A80098 */ lwc1 $f8, 0x98($sp) +/* 0799C8 7F044E98 460A4282 */ mul.s $f10, $f8, $f10 +/* 0799CC 7F044E9C 460A2101 */ sub.s $f4, $f4, $f10 +/* 0799D0 7F044EA0 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 0799D4 7F044EA4 4600203E */ c.le.s $f4, $f0 +/* 0799D8 7F044EA8 00000000 */ nop +/* 0799DC 7F044EAC 45020018 */ bc1fl .L7F044F10 +/* 0799E0 7F044EB0 C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 0799E4 7F044EB4 460A4102 */ mul.s $f4, $f8, $f10 +/* 0799E8 7F044EB8 C7A80028 */ lwc1 $f8, 0x28($sp) +/* 0799EC 7F044EBC C7AC00B8 */ lwc1 $f12, 0xb8($sp) +/* 0799F0 7F044EC0 46064182 */ mul.s $f6, $f8, $f6 +/* 0799F4 7F044EC4 46062101 */ sub.s $f4, $f4, $f6 +/* 0799F8 7F044EC8 C7A60034 */ lwc1 $f6, 0x34($sp) +/* 0799FC 7F044ECC 4600203E */ c.le.s $f4, $f0 +/* 079A00 7F044ED0 00000000 */ nop +/* 079A04 7F044ED4 4502000E */ bc1fl .L7F044F10 +/* 079A08 7F044ED8 C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 079A0C 7F044EDC 46066102 */ mul.s $f4, $f12, $f6 +/* 079A10 7F044EE0 C7A200AC */ lwc1 $f2, 0xac($sp) +/* 079A14 7F044EE4 E7A00078 */ swc1 $f0, 0x78($sp) +/* 079A18 7F044EE8 46081182 */ mul.s $f6, $f2, $f8 +/* 079A1C 7F044EEC 46062201 */ sub.s $f8, $f4, $f6 +/* 079A20 7F044EF0 46025102 */ mul.s $f4, $f10, $f2 +/* 079A24 7F044EF4 C7A60038 */ lwc1 $f6, 0x38($sp) +/* 079A28 7F044EF8 E7A80074 */ swc1 $f8, 0x74($sp) +/* 079A2C 7F044EFC 460C3202 */ mul.s $f8, $f6, $f12 +/* 079A30 7F044F00 46082281 */ sub.s $f10, $f4, $f8 +/* 079A34 7F044F04 10000045 */ b .L7F04501C +/* 079A38 7F044F08 E7AA007C */ swc1 $f10, 0x7c($sp) +/* 079A3C 7F044F0C C7A600A4 */ lwc1 $f6, 0xa4($sp) +.L7F044F10: +/* 079A40 7F044F10 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 079A44 7F044F14 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 079A48 7F044F18 E7A60038 */ swc1 $f6, 0x38($sp) +/* 079A4C 7F044F1C 46043202 */ mul.s $f8, $f6, $f4 +/* 079A50 7F044F20 C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 079A54 7F044F24 E7A40034 */ swc1 $f4, 0x34($sp) +/* 079A58 7F044F28 46065102 */ mul.s $f4, $f10, $f6 +/* 079A5C 7F044F2C 46044001 */ sub.s $f0, $f8, $f4 +/* 079A60 7F044F30 C7A800B4 */ lwc1 $f8, 0xb4($sp) +/* 079A64 7F044F34 46085102 */ mul.s $f4, $f10, $f8 +/* 079A68 7F044F38 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 079A6C 7F044F3C C7AA00BC */ lwc1 $f10, 0xbc($sp) +/* 079A70 7F044F40 460E003E */ c.le.s $f0, $f14 +/* 079A74 7F044F44 46085282 */ mul.s $f10, $f10, $f8 +/* 079A78 7F044F48 45000013 */ bc1f .L7F044F98 +/* 079A7C 7F044F4C 460A2081 */ sub.s $f2, $f4, $f10 +/* 079A80 7F044F50 460E103E */ c.le.s $f2, $f14 +/* 079A84 7F044F54 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 079A88 7F044F58 45020010 */ bc1fl .L7F044F9C +/* 079A8C 7F044F5C 4600103E */ c.le.s $f2, $f0 +/* 079A90 7F044F60 C7A200AC */ lwc1 $f2, 0xac($sp) +/* 079A94 7F044F64 C7AC00A0 */ lwc1 $f12, 0xa0($sp) +/* 079A98 7F044F68 C7AA00B0 */ lwc1 $f10, 0xb0($sp) +/* 079A9C 7F044F6C 46081102 */ mul.s $f4, $f2, $f8 +/* 079AA0 7F044F70 E7AE0078 */ swc1 $f14, 0x78($sp) +/* 079AA4 7F044F74 460A6202 */ mul.s $f8, $f12, $f10 +/* 079AA8 7F044F78 46082281 */ sub.s $f10, $f4, $f8 +/* 079AAC 7F044F7C C7A400A8 */ lwc1 $f4, 0xa8($sp) +/* 079AB0 7F044F80 460C2202 */ mul.s $f8, $f4, $f12 +/* 079AB4 7F044F84 E7AA0074 */ swc1 $f10, 0x74($sp) +/* 079AB8 7F044F88 46023282 */ mul.s $f10, $f6, $f2 +/* 079ABC 7F044F8C 460A4101 */ sub.s $f4, $f8, $f10 +/* 079AC0 7F044F90 10000022 */ b .L7F04501C +/* 079AC4 7F044F94 E7A4007C */ swc1 $f4, 0x7c($sp) +.L7F044F98: +/* 079AC8 7F044F98 4600103E */ c.le.s $f2, $f0 +.L7F044F9C: +/* 079ACC 7F044F9C C7AC00A0 */ lwc1 $f12, 0xa0($sp) +/* 079AD0 7F044FA0 C7AE0094 */ lwc1 $f14, 0x94($sp) +/* 079AD4 7F044FA4 C7A400BC */ lwc1 $f4, 0xbc($sp) +/* 079AD8 7F044FA8 45000010 */ bc1f .L7F044FEC +/* 079ADC 7F044FAC C7A60098 */ lwc1 $f6, 0x98($sp) +/* 079AE0 7F044FB0 C7A60098 */ lwc1 $f6, 0x98($sp) +/* 079AE4 7F044FB4 C7AE0094 */ lwc1 $f14, 0x94($sp) +/* 079AE8 7F044FB8 C7AA00A4 */ lwc1 $f10, 0xa4($sp) +/* 079AEC 7F044FBC 46066202 */ mul.s $f8, $f12, $f6 +/* 079AF0 7F044FC0 E7A00078 */ swc1 $f0, 0x78($sp) +/* 079AF4 7F044FC4 460A7102 */ mul.s $f4, $f14, $f10 +/* 079AF8 7F044FC8 C7AA009C */ lwc1 $f10, 0x9c($sp) +/* 079AFC 7F044FCC 46044181 */ sub.s $f6, $f8, $f4 +/* 079B00 7F044FD0 460E5202 */ mul.s $f8, $f10, $f14 +/* 079B04 7F044FD4 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 079B08 7F044FD8 E7A60074 */ swc1 $f6, 0x74($sp) +/* 079B0C 7F044FDC 460C2182 */ mul.s $f6, $f4, $f12 +/* 079B10 7F044FE0 46064281 */ sub.s $f10, $f8, $f6 +/* 079B14 7F044FE4 1000000D */ b .L7F04501C +/* 079B18 7F044FE8 E7AA007C */ swc1 $f10, 0x7c($sp) +.L7F044FEC: +/* 079B1C 7F044FEC 46047202 */ mul.s $f8, $f14, $f4 +/* 079B20 7F044FF0 C7AC00B8 */ lwc1 $f12, 0xb8($sp) +/* 079B24 7F044FF4 E7A20078 */ swc1 $f2, 0x78($sp) +/* 079B28 7F044FF8 46066282 */ mul.s $f10, $f12, $f6 +/* 079B2C 7F044FFC C7A60090 */ lwc1 $f6, 0x90($sp) +/* 079B30 7F045000 460A4101 */ sub.s $f4, $f8, $f10 +/* 079B34 7F045004 460C3202 */ mul.s $f8, $f6, $f12 +/* 079B38 7F045008 C7AA00B4 */ lwc1 $f10, 0xb4($sp) +/* 079B3C 7F04500C E7A40074 */ swc1 $f4, 0x74($sp) +/* 079B40 7F045010 460E5102 */ mul.s $f4, $f10, $f14 +/* 079B44 7F045014 46044181 */ sub.s $f6, $f8, $f4 +/* 079B48 7F045018 E7A6007C */ swc1 $f6, 0x7c($sp) +.L7F04501C: +/* 079B4C 7F04501C 0FC15FAB */ jal sinf +/* 079B50 7F045020 C60C00A0 */ lwc1 $f12, 0xa0($s0) +/* 079B54 7F045024 44805000 */ mtc1 $zero, $f10 +/* 079B58 7F045028 E7A00068 */ swc1 $f0, 0x68($sp) +/* 079B5C 7F04502C E7AA006C */ swc1 $f10, 0x6c($sp) +/* 079B60 7F045030 0FC15FA8 */ jal cosf +/* 079B64 7F045034 C60C00A0 */ lwc1 $f12, 0xa0($s0) +/* 079B68 7F045038 26040018 */ addiu $a0, $s0, 0x18 +/* 079B6C 7F04503C E7A00070 */ swc1 $f0, 0x70($sp) +/* 079B70 7F045040 0FC15FF4 */ jal matrix_4x4_set_identity +/* 079B74 7F045044 AFA40058 */ sw $a0, 0x58($sp) +/* 079B78 7F045048 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 079B7C 7F04504C 8FA50058 */ lw $a1, 0x58($sp) +/* 079B80 7F045050 E6080028 */ swc1 $f8, 0x28($s0) +/* 079B84 7F045054 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 079B88 7F045058 C6100028 */ lwc1 $f16, 0x28($s0) +/* 079B8C 7F04505C E604002C */ swc1 $f4, 0x2c($s0) +/* 079B90 7F045060 C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 079B94 7F045064 C60E002C */ lwc1 $f14, 0x2c($s0) +/* 079B98 7F045068 E6060030 */ swc1 $f6, 0x30($s0) +/* 079B9C 7F04506C C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 079BA0 7F045070 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 079BA4 7F045074 C6000030 */ lwc1 $f0, 0x30($s0) +/* 079BA8 7F045078 460A7202 */ mul.s $f8, $f14, $f10 +/* 079BAC 7F04507C 00000000 */ nop +/* 079BB0 7F045080 46002182 */ mul.s $f6, $f4, $f0 +/* 079BB4 7F045084 46064281 */ sub.s $f10, $f8, $f6 +/* 079BB8 7F045088 E60A0018 */ swc1 $f10, 0x18($s0) +/* 079BBC 7F04508C C7A40068 */ lwc1 $f4, 0x68($sp) +/* 079BC0 7F045090 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 079BC4 7F045094 46040202 */ mul.s $f8, $f0, $f4 +/* 079BC8 7F045098 00000000 */ nop +/* 079BCC 7F04509C 46103282 */ mul.s $f10, $f6, $f16 +/* 079BD0 7F0450A0 460A4101 */ sub.s $f4, $f8, $f10 +/* 079BD4 7F0450A4 E604001C */ swc1 $f4, 0x1c($s0) +/* 079BD8 7F0450A8 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 079BDC 7F0450AC C7AA0068 */ lwc1 $f10, 0x68($sp) +/* 079BE0 7F0450B0 46068202 */ mul.s $f8, $f16, $f6 +/* 079BE4 7F0450B4 00000000 */ nop +/* 079BE8 7F0450B8 460E5102 */ mul.s $f4, $f10, $f14 +/* 079BEC 7F0450BC C60A001C */ lwc1 $f10, 0x1c($s0) +/* 079BF0 7F0450C0 46044181 */ sub.s $f6, $f8, $f4 +/* 079BF4 7F0450C4 E6060020 */ swc1 $f6, 0x20($s0) +/* 079BF8 7F0450C8 E7AA0048 */ swc1 $f10, 0x48($sp) +/* 079BFC 7F0450CC C7A80048 */ lwc1 $f8, 0x48($sp) +/* 079C00 7F0450D0 C6020020 */ lwc1 $f2, 0x20($s0) +/* 079C04 7F0450D4 C6120018 */ lwc1 $f18, 0x18($s0) +/* 079C08 7F0450D8 46004102 */ mul.s $f4, $f8, $f0 +/* 079C0C 7F0450DC 00000000 */ nop +/* 079C10 7F0450E0 46027182 */ mul.s $f6, $f14, $f2 +/* 079C14 7F0450E4 46062281 */ sub.s $f10, $f4, $f6 +/* 079C18 7F0450E8 46101202 */ mul.s $f8, $f2, $f16 +/* 079C1C 7F0450EC 00000000 */ nop +/* 079C20 7F0450F0 46120102 */ mul.s $f4, $f0, $f18 +/* 079C24 7F0450F4 E60A0038 */ swc1 $f10, 0x38($s0) +/* 079C28 7F0450F8 460E9282 */ mul.s $f10, $f18, $f14 +/* 079C2C 7F0450FC 46044181 */ sub.s $f6, $f8, $f4 +/* 079C30 7F045100 E606003C */ swc1 $f6, 0x3c($s0) +/* 079C34 7F045104 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 079C38 7F045108 46088102 */ mul.s $f4, $f16, $f8 +/* 079C3C 7F04510C 46045181 */ sub.s $f6, $f10, $f4 +/* 079C40 7F045110 E6060040 */ swc1 $f6, 0x40($s0) +/* 079C44 7F045114 8FAF0154 */ lw $t7, 0x154($sp) +/* 079C48 7F045118 C5EC0014 */ lwc1 $f12, 0x14($t7) +/* 079C4C 7F04511C 0FC1629F */ jal matrix_scalar_multiply +/* 079C50 7F045120 AFA50058 */ sw $a1, 0x58($sp) +/* 079C54 7F045124 8FA40058 */ lw $a0, 0x58($sp) +/* 079C58 7F045128 8FA50148 */ lw $a1, 0x148($sp) +/* 079C5C 7F04512C 0FC16106 */ jal matrix_4x4_transform_vector +/* 079C60 7F045130 27A60124 */ addiu $a2, $sp, 0x124 +/* 079C64 7F045134 0FC0FA19 */ jal sub_GAME_7F03E864 +/* 079C68 7F045138 8FA400C0 */ lw $a0, 0xc0($sp) +/* 079C6C 7F04513C 8FB80154 */ lw $t8, 0x154($sp) +/* 079C70 7F045140 C7A80134 */ lwc1 $f8, 0x134($sp) +/* 079C74 7F045144 C70A0014 */ lwc1 $f10, 0x14($t8) +/* 079C78 7F045148 460A0102 */ mul.s $f4, $f0, $f10 +/* 079C7C 7F04514C C7AA0128 */ lwc1 $f10, 0x128($sp) +/* 079C80 7F045150 46044181 */ sub.s $f6, $f8, $f4 +/* 079C84 7F045154 460A3081 */ sub.s $f2, $f6, $f10 +/* 079C88 7F045158 E622000C */ swc1 $f2, 0xc($s1) +/* 079C8C 7F04515C 10000019 */ b .L7F0451C4 +/* 079C90 7F045160 E602005C */ swc1 $f2, 0x5c($s0) +.L7F045164: +/* 079C94 7F045164 C60C00A0 */ lwc1 $f12, 0xa0($s0) +/* 079C98 7F045168 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 079C9C 7F04516C AFA40058 */ sw $a0, 0x58($sp) +/* 079CA0 7F045170 8FB90154 */ lw $t9, 0x154($sp) +/* 079CA4 7F045174 8FA50058 */ lw $a1, 0x58($sp) +/* 079CA8 7F045178 0FC1629F */ jal matrix_scalar_multiply +/* 079CAC 7F04517C C72C0014 */ lwc1 $f12, 0x14($t9) +/* 079CB0 7F045180 8E240014 */ lw $a0, 0x14($s1) +/* 079CB4 7F045184 8E250008 */ lw $a1, 8($s1) +/* 079CB8 7F045188 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 079CBC 7F04518C 8E260010 */ lw $a2, 0x10($s1) +/* 079CC0 7F045190 E7A0005C */ swc1 $f0, 0x5c($sp) +/* 079CC4 7F045194 0FC0FA19 */ jal sub_GAME_7F03E864 +/* 079CC8 7F045198 8FA400C0 */ lw $a0, 0xc0($sp) +/* 079CCC 7F04519C 8FA80148 */ lw $t0, 0x148($sp) +/* 079CD0 7F0451A0 8FA90154 */ lw $t1, 0x154($sp) +/* 079CD4 7F0451A4 C5080004 */ lwc1 $f8, 4($t0) +/* 079CD8 7F0451A8 C5260014 */ lwc1 $f6, 0x14($t1) +/* 079CDC 7F0451AC 46004100 */ add.s $f4, $f8, $f0 +/* 079CE0 7F0451B0 C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 079CE4 7F0451B4 46062282 */ mul.s $f10, $f4, $f6 +/* 079CE8 7F0451B8 460A4081 */ sub.s $f2, $f8, $f10 +/* 079CEC 7F0451BC E622000C */ swc1 $f2, 0xc($s1) +/* 079CF0 7F0451C0 E602005C */ swc1 $f2, 0x5c($s0) +.L7F0451C4: +/* 079CF4 7F0451C4 8FBF0024 */ lw $ra, 0x24($sp) +/* 079CF8 7F0451C8 8FA20108 */ lw $v0, 0x108($sp) +/* 079CFC 7F0451CC 8FB0001C */ lw $s0, 0x1c($sp) +/* 079D00 7F0451D0 8FB10020 */ lw $s1, 0x20($sp) +/* 079D04 7F0451D4 03E00008 */ jr $ra +/* 079D08 7F0451D8 27BD0158 */ addiu $sp, $sp, 0x158 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0451DC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0451DC +/* 079D0C 7F0451DC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 079D10 7F0451E0 AFBF0014 */ sw $ra, 0x14($sp) +/* 079D14 7F0451E4 AFA5001C */ sw $a1, 0x1c($sp) +/* 079D18 7F0451E8 AFA60020 */ sw $a2, 0x20($sp) +/* 079D1C 7F0451EC AFA70024 */ sw $a3, 0x24($sp) +/* 079D20 7F0451F0 0FC225E6 */ jal get_curplayer_positiondata +/* 079D24 7F0451F4 AFA40018 */ sw $a0, 0x18($sp) +/* 079D28 7F0451F8 8FA40018 */ lw $a0, 0x18($sp) +/* 079D2C 7F0451FC C4460008 */ lwc1 $f6, 8($v0) +/* 079D30 7F045200 C44A000C */ lwc1 $f10, 0xc($v0) +/* 079D34 7F045204 C4840000 */ lwc1 $f4, ($a0) +/* 079D38 7F045208 C4880004 */ lwc1 $f8, 4($a0) +/* 079D3C 7F04520C C4520010 */ lwc1 $f18, 0x10($v0) +/* 079D40 7F045210 46062001 */ sub.s $f0, $f4, $f6 +/* 079D44 7F045214 C4900008 */ lwc1 $f16, 8($a0) +/* 079D48 7F045218 460A4081 */ sub.s $f2, $f8, $f10 +/* 079D4C 7F04521C 46000102 */ mul.s $f4, $f0, $f0 +/* 079D50 7F045220 46128381 */ sub.s $f14, $f16, $f18 +/* 079D54 7F045224 46021182 */ mul.s $f6, $f2, $f2 +/* 079D58 7F045228 46062200 */ add.s $f8, $f4, $f6 +/* 079D5C 7F04522C 460E7282 */ mul.s $f10, $f14, $f14 +/* 079D60 7F045230 0C007DF8 */ jal sqrtf +/* 079D64 7F045234 460A4300 */ add.s $f12, $f8, $f10 +/* 079D68 7F045238 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 079D6C 7F04523C C7A2001C */ lwc1 $f2, 0x1c($sp) +/* 079D70 7F045240 8FBF0014 */ lw $ra, 0x14($sp) +/* 079D74 7F045244 4600603C */ c.lt.s $f12, $f0 +/* 079D78 7F045248 00000000 */ nop +/* 079D7C 7F04524C 45020004 */ bc1fl .L7F045260 +/* 079D80 7F045250 4602003C */ c.lt.s $f0, $f2 +/* 079D84 7F045254 1000001C */ b .L7F0452C8 +/* 079D88 7F045258 240300FF */ li $v1, 255 +/* 079D8C 7F04525C 4602003C */ c.lt.s $f0, $f2 +.L7F045260: +/* 079D90 7F045260 C7AE0024 */ lwc1 $f14, 0x24($sp) +/* 079D94 7F045264 C7B00024 */ lwc1 $f16, 0x24($sp) +/* 079D98 7F045268 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 079D9C 7F04526C 4502000A */ bc1fl .L7F045298 +/* 079DA0 7F045270 44815000 */ mtc1 $at, $f10 +/* 079DA4 7F045274 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 079DA8 7F045278 44819000 */ mtc1 $at, $f18 +/* 079DAC 7F04527C 00000000 */ nop +/* 079DB0 7F045280 46128102 */ mul.s $f4, $f16, $f18 +/* 079DB4 7F045284 4600218D */ trunc.w.s $f6, $f4 +/* 079DB8 7F045288 44033000 */ mfc1 $v1, $f6 +/* 079DBC 7F04528C 1000000F */ b .L7F0452CC +/* 079DC0 7F045290 00601025 */ move $v0, $v1 +/* 079DC4 7F045294 44815000 */ mtc1 $at, $f10 +.L7F045298: +/* 079DC8 7F045298 46020201 */ sub.s $f8, $f0, $f2 +/* 079DCC 7F04529C 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 079DD0 7F0452A0 460E5401 */ sub.s $f16, $f10, $f14 +/* 079DD4 7F0452A4 46026101 */ sub.s $f4, $f12, $f2 +/* 079DD8 7F0452A8 46104482 */ mul.s $f18, $f8, $f16 +/* 079DDC 7F0452AC 44814000 */ mtc1 $at, $f8 +/* 079DE0 7F0452B0 46049183 */ div.s $f6, $f18, $f4 +/* 079DE4 7F0452B4 460E3280 */ add.s $f10, $f6, $f14 +/* 079DE8 7F0452B8 46085402 */ mul.s $f16, $f10, $f8 +/* 079DEC 7F0452BC 4600848D */ trunc.w.s $f18, $f16 +/* 079DF0 7F0452C0 44039000 */ mfc1 $v1, $f18 +/* 079DF4 7F0452C4 00000000 */ nop +.L7F0452C8: +/* 079DF8 7F0452C8 00601025 */ move $v0, $v1 +.L7F0452CC: +/* 079DFC 7F0452CC 03E00008 */ jr $ra +/* 079E00 7F0452D0 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void object_interaction(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel rocket_initial_gravity_modifier +.word 0x3e8e38e4 /*0.27777779*/ +glabel D_80052A9C +.word 0x3c360b61 /*0.011111111*/ +glabel D_80052AA0 +.word 0x3d8f5c29 /*0.07*/ +glabel prop_projectile_gravity_modifier +.word 0x3e8e38e4 /*0.27777779*/ +glabel D_80052AA8 +.word 0x400e38e4 /*2.2222223*/ +glabel D_80052AAC +.word 0x46d9038c /*27777.773*/ +glabel D_80052AB0 +.word 0x3f8ccccd /*1.1*/ +glabel D_80052AB4 +.word 0x3f666666 /*0.89999998*/ +glabel D_80052AB8 +.word 0x3f666666 /*0.89999998*/ +glabel D_80052ABC +.word 0x3dcccccd /*0.1*/ +glabel D_80052AC0 +.word 0xbdcccccd /*-0.1*/ +glabel D_80052AC4 +.word 0xbdcccccd /*-0.1*/ +glabel D_80052AC8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052ACC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AD0 +.word 0x40490fdb /*3.1415927*/ +glabel D_80052AD4 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80052AD8 +.word 0xbf490fdb /*-0.78539819*/ +glabel D_80052ADC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AE0 +.word 0x3a2b92a6 /*0.00065449846*/ +glabel D_80052AE4 +.word 0x3a2b92a6 /*0.00065449846*/ +glabel D_80052AE8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AEC +.word 0x37433637 /*0.000011635529*/ +glabel D_80052AF0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AF4 +.word 0x3a3702d4 /*0.00069813174*/ +glabel D_80052AF8 +.word 0x36c33637 /*0.0000058177643*/ +glabel D_80052AFC +.word 0x39b702d4 /*0.00034906587*/ +glabel D_80052B00 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B04 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B08 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B0C +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B10 +.word 0x3f9c61ab /*1.2217306*/ +glabel D_80052B14 +.word 0xbf9c61ab /*-1.2217306*/ +glabel D_80052B18 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80052B1C +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B20 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B24 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80052B28 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80052B2C +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B30 +.word 0x3a64c389 /*0.00087266468*/ +glabel D_80052B34 +.word 0x3a64c389 /*0.00087266468*/ +glabel D_80052B38 +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B3C +.word 0x3f1930a7 /*0.59839863*/ +glabel D_80052B40 +.word 0x3c236719 /*0.0099733109*/ +glabel D_80052B44 +.word 0x3f7d70a4 /*0.99000001*/ +glabel D_80052B48 +.word 0x38d1b717 /*0.000099999997*/ +glabel D_80052B4C +.word 0x3964c389 /*0.00021816617*/ +glabel D_80052B50 +.word 0x3bd67750 /*0.0065449849*/ +glabel D_80052B54 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B58 +.word 0x3964c389 /*0.00021816617*/ +glabel D_80052B5C +.word 0xb964c389 /*-0.00021816617*/ +glabel D_80052B60 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B64 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B68 +.word 0x3e99999a /*0.30000001*/ +glabel D_80052B6C +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80052B70 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80052B74 +.word 0x3e23d70a /*0.16*/ +glabel D_80052B78 +.word 0x461c4000 /*10000.0*/ +glabel D_80052B7C +.word 0x453b8000 /*3000.0*/ +glabel D_80052B80 +.word 0x3f19999a /*0.60000002*/ +glabel D_80052B84 +.word 0x3e99999a /*0.30000001*/ +glabel D_80052B88 +.word 0xbdcccccd /*-0.1*/ +glabel D_80052B8C +.word 0x3e4ccccd /*0.2*/ +glabel D_80052B90 +.word 0x453b8000 /*3000.0*/ +glabel D_80052B94 +.word 0x453b8000 /*3000.0*/ +.text +glabel object_interaction +/* 079E04 7F0452D4 27BDF958 */ addiu $sp, $sp, -0x6a8 +/* 079E08 7F0452D8 AFBF0054 */ sw $ra, 0x54($sp) +/* 079E0C 7F0452DC AFB40050 */ sw $s4, 0x50($sp) +/* 079E10 7F0452E0 AFB3004C */ sw $s3, 0x4c($sp) +/* 079E14 7F0452E4 AFB20048 */ sw $s2, 0x48($sp) +/* 079E18 7F0452E8 AFB10044 */ sw $s1, 0x44($sp) +/* 079E1C 7F0452EC AFB00040 */ sw $s0, 0x40($sp) +/* 079E20 7F0452F0 F7B60038 */ sdc1 $f22, 0x38($sp) +/* 079E24 7F0452F4 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 079E28 7F0452F8 8C910004 */ lw $s1, 4($a0) +/* 079E2C 7F0452FC 4480B000 */ mtc1 $zero, $f22 +/* 079E30 7F045300 00809825 */ move $s3, $a0 +/* 079E34 7F045304 8E340014 */ lw $s4, 0x14($s1) +/* 079E38 7F045308 AFA00690 */ sw $zero, 0x690($sp) +/* 079E3C 7F04530C AFA00680 */ sw $zero, 0x680($sp) +/* 079E40 7F045310 0FC26919 */ jal get_num_players +/* 079E44 7F045314 E7B6067C */ swc1 $f22, 0x67c($sp) +/* 079E48 7F045318 240C0001 */ li $t4, 1 +/* 079E4C 7F04531C AFA20674 */ sw $v0, 0x674($sp) +/* 079E50 7F045320 AFAC0670 */ sw $t4, 0x670($sp) +/* 079E54 7F045324 8E230064 */ lw $v1, 0x64($s1) +/* 079E58 7F045328 306E0004 */ andi $t6, $v1, 4 +/* 079E5C 7F04532C 11C00009 */ beqz $t6, .L7F045354 +/* 079E60 7F045330 306F0008 */ andi $t7, $v1, 8 +/* 079E64 7F045334 92260002 */ lbu $a2, 2($s1) +/* 079E68 7F045338 02202025 */ move $a0, $s1 +/* 079E6C 7F04533C 00002825 */ move $a1, $zero +/* 079E70 7F045340 30CD0004 */ andi $t5, $a2, 4 +/* 079E74 7F045344 0FC10366 */ jal sub_GAME_7F040D98 +/* 079E78 7F045348 01A03025 */ move $a2, $t5 +/* 079E7C 7F04534C 100011F8 */ b .L7F049B30 +/* 079E80 7F045350 24020001 */ li $v0, 1 +.L7F045354: +/* 079E84 7F045354 11E00005 */ beqz $t7, .L7F04536C +/* 079E88 7F045358 30680080 */ andi $t0, $v1, 0x80 +/* 079E8C 7F04535C 2401FFF7 */ li $at, -9 +/* 079E90 7F045360 0061C024 */ and $t8, $v1, $at +/* 079E94 7F045364 1000000B */ b .L7F045394 +/* 079E98 7F045368 AE380064 */ sw $t8, 0x64($s1) +.L7F04536C: +/* 079E9C 7F04536C 5100000A */ beql $t0, $zero, .L7F045398 +/* 079EA0 7F045370 24010001 */ li $at, 1 +/* 079EA4 7F045374 92690001 */ lbu $t1, 1($s3) +/* 079EA8 7F045378 24020003 */ li $v0, 3 +/* 079EAC 7F04537C 312BFFFD */ andi $t3, $t1, 0xfffd +/* 079EB0 7F045380 A26B0001 */ sb $t3, 1($s3) +/* 079EB4 7F045384 8E390064 */ lw $t9, 0x64($s1) +/* 079EB8 7F045388 372A0008 */ ori $t2, $t9, 8 +/* 079EBC 7F04538C 100011E8 */ b .L7F049B30 +/* 079EC0 7F045390 AE2A0064 */ sw $t2, 0x64($s1) +.L7F045394: +/* 079EC4 7F045394 24010001 */ li $at, 1 +.L7F045398: +/* 079EC8 7F045398 14410003 */ bne $v0, $at, .L7F0453A8 +/* 079ECC 7F04539C 240C0001 */ li $t4, 1 +/* 079ED0 7F0453A0 10000015 */ b .L7F0453F8 +/* 079ED4 7F0453A4 AFAC0678 */ sw $t4, 0x678($sp) +.L7F0453A8: +/* 079ED8 7F0453A8 0FC26C54 */ jal get_cur_playernum +/* 079EDC 7F0453AC 00000000 */ nop +/* 079EE0 7F0453B0 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 079EE4 7F0453B4 00402025 */ move $a0, $v0 +/* 079EE8 7F0453B8 2C4E0001 */ sltiu $t6, $v0, 1 +/* 079EEC 7F0453BC AFAE0678 */ sw $t6, 0x678($sp) +/* 079EF0 7F0453C0 8E2D0064 */ lw $t5, 0x64($s1) +/* 079EF4 7F0453C4 31AF0080 */ andi $t7, $t5, 0x80 +/* 079EF8 7F0453C8 51E0000C */ beql $t7, $zero, .L7F0453FC +/* 079EFC 7F0453CC 8FAB0678 */ lw $t3, 0x678($sp) +/* 079F00 7F0453D0 8E22006C */ lw $v0, 0x6c($s1) +/* 079F04 7F0453D4 3C188008 */ lui $t8, %hi(pPlayer) +/* 079F08 7F0453D8 8C430088 */ lw $v1, 0x88($v0) +/* 079F0C 7F0453DC 50600007 */ beql $v1, $zero, .L7F0453FC +/* 079F10 7F0453E0 8FAB0678 */ lw $t3, 0x678($sp) +/* 079F14 7F0453E4 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 079F18 7F0453E8 8F0800A8 */ lw $t0, 0xa8($t8) +/* 079F1C 7F0453EC 01034826 */ xor $t1, $t0, $v1 +/* 079F20 7F0453F0 2D290001 */ sltiu $t1, $t1, 1 +/* 079F24 7F0453F4 AFA90678 */ sw $t1, 0x678($sp) +.L7F0453F8: +/* 079F28 7F0453F8 8FAB0678 */ lw $t3, 0x678($sp) +.L7F0453FC: +/* 079F2C 7F0453FC 51600B8C */ beql $t3, $zero, .L7F048230 +/* 079F30 7F045400 92220003 */ lbu $v0, 3($s1) +/* 079F34 7F045404 8E390064 */ lw $t9, 0x64($s1) +/* 079F38 7F045408 332A0080 */ andi $t2, $t9, 0x80 +/* 079F3C 7F04540C 51400483 */ beql $t2, $zero, .L7F04661C +/* 079F40 7F045410 8FAD0690 */ lw $t5, 0x690($sp) +/* 079F44 7F045414 8E30006C */ lw $s0, 0x6c($s1) +/* 079F48 7F045418 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 079F4C 7F04541C 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 079F50 7F045420 8E0C00E0 */ lw $t4, 0xe0($s0) +/* 079F54 7F045424 018E6821 */ addu $t5, $t4, $t6 +/* 079F58 7F045428 29A10961 */ slti $at, $t5, 0x961 +/* 079F5C 7F04542C 14200004 */ bnez $at, .L7F045440 +/* 079F60 7F045430 AE0D00E0 */ sw $t5, 0xe0($s0) +/* 079F64 7F045434 8E380064 */ lw $t8, 0x64($s1) +/* 079F68 7F045438 37080004 */ ori $t0, $t8, 4 +/* 079F6C 7F04543C AE280064 */ sw $t0, 0x64($s1) +.L7F045440: +/* 079F70 7F045440 8E090000 */ lw $t1, ($s0) +/* 079F74 7F045444 312B0100 */ andi $t3, $t1, 0x100 +/* 079F78 7F045448 5160002F */ beql $t3, $zero, .L7F045508 +/* 079F7C 7F04544C C6260058 */ lwc1 $f6, 0x58($s1) +/* 079F80 7F045450 92390003 */ lbu $t9, 3($s1) +/* 079F84 7F045454 24010008 */ li $at, 8 +/* 079F88 7F045458 24120001 */ li $s2, 1 +/* 079F8C 7F04545C 57210008 */ bnel $t9, $at, .L7F045480 +/* 079F90 7F045460 8E040088 */ lw $a0, 0x88($s0) +/* 079F94 7F045464 AFB10648 */ sw $s1, 0x648($sp) +/* 079F98 7F045468 822A0080 */ lb $t2, 0x80($s1) +/* 079F9C 7F04546C 24010056 */ li $at, 86 +/* 079FA0 7F045470 55410003 */ bnel $t2, $at, .L7F045480 +/* 079FA4 7F045474 8E040088 */ lw $a0, 0x88($s0) +/* 079FA8 7F045478 00009025 */ move $s2, $zero +/* 079FAC 7F04547C 8E040088 */ lw $a0, 0x88($s0) +.L7F045480: +/* 079FB0 7F045480 50800004 */ beql $a0, $zero, .L7F045494 +/* 079FB4 7F045484 02202025 */ move $a0, $s1 +/* 079FB8 7F045488 0FC0F416 */ jal sub_GAME_7F03D058 +/* 079FBC 7F04548C 00002825 */ move $a1, $zero +/* 079FC0 7F045490 02202025 */ move $a0, $s1 +.L7F045494: +/* 079FC4 7F045494 260500D4 */ addiu $a1, $s0, 0xd4 +/* 079FC8 7F045498 27A6064C */ addiu $a2, $sp, 0x64c +/* 079FCC 7F04549C 27A70658 */ addiu $a3, $sp, 0x658 +/* 079FD0 7F0454A0 AFA00010 */ sw $zero, 0x10($sp) +/* 079FD4 7F0454A4 0FC10BAD */ jal sub_GAME_7F042EB4 +/* 079FD8 7F0454A8 AFB20014 */ sw $s2, 0x14($sp) +/* 079FDC 7F0454AC AFA20664 */ sw $v0, 0x664($sp) +/* 079FE0 7F0454B0 8E040088 */ lw $a0, 0x88($s0) +/* 079FE4 7F0454B4 50800004 */ beql $a0, $zero, .L7F0454C8 +/* 079FE8 7F0454B8 8FAC0664 */ lw $t4, 0x664($sp) +/* 079FEC 7F0454BC 0FC0F416 */ jal sub_GAME_7F03D058 +/* 079FF0 7F0454C0 24050001 */ li $a1, 1 +/* 079FF4 7F0454C4 8FAC0664 */ lw $t4, 0x664($sp) +.L7F0454C8: +/* 079FF8 7F0454C8 24010001 */ li $at, 1 +/* 079FFC 7F0454CC 8FA20648 */ lw $v0, 0x648($sp) +/* 07A000 7F0454D0 51810009 */ beql $t4, $at, .L7F0454F8 +/* 07A004 7F0454D4 8E0D0000 */ lw $t5, ($s0) +/* 07A008 7F0454D8 50400007 */ beql $v0, $zero, .L7F0454F8 +/* 07A00C 7F0454DC 8E0D0000 */ lw $t5, ($s0) +/* 07A010 7F0454E0 804E0080 */ lb $t6, 0x80($v0) +/* 07A014 7F0454E4 24010056 */ li $at, 86 +/* 07A018 7F0454E8 55C10003 */ bnel $t6, $at, .L7F0454F8 +/* 07A01C 7F0454EC 8E0D0000 */ lw $t5, ($s0) +/* 07A020 7F0454F0 A4400082 */ sh $zero, 0x82($v0) +/* 07A024 7F0454F4 8E0D0000 */ lw $t5, ($s0) +.L7F0454F8: +/* 07A028 7F0454F8 2401FEFF */ li $at, -257 +/* 07A02C 7F0454FC 01A17824 */ and $t7, $t5, $at +/* 07A030 7F045500 AE0F0000 */ sw $t7, ($s0) +/* 07A034 7F045504 C6260058 */ lwc1 $f6, 0x58($s1) +.L7F045508: +/* 07A038 7F045508 3C188005 */ lui $t8, %hi(clock_timer) +/* 07A03C 7F04550C 3C013F80 */ lui $at, 0x3f80 +/* 07A040 7F045510 E7A60694 */ swc1 $f6, 0x694($sp) +/* 07A044 7F045514 C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07A048 7F045518 E7AA0698 */ swc1 $f10, 0x698($sp) +/* 07A04C 7F04551C C6240060 */ lwc1 $f4, 0x60($s1) +/* 07A050 7F045520 E7A4069C */ swc1 $f4, 0x69c($sp) +/* 07A054 7F045524 8E0200BC */ lw $v0, 0xbc($s0) +/* 07A058 7F045528 58400005 */ blezl $v0, .L7F045540 +/* 07A05C 7F04552C 8E29006C */ lw $t1, 0x6c($s1) +/* 07A060 7F045530 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 07A064 7F045534 00584023 */ subu $t0, $v0, $t8 +/* 07A068 7F045538 AE0800BC */ sw $t0, 0xbc($s0) +/* 07A06C 7F04553C 8E29006C */ lw $t1, 0x6c($s1) +.L7F045540: +/* 07A070 7F045540 8D2B0000 */ lw $t3, ($t1) +/* 07A074 7F045544 31790001 */ andi $t9, $t3, 1 +/* 07A078 7F045548 53200351 */ beql $t9, $zero, .L7F046290 +/* 07A07C 7F04554C C6000060 */ lwc1 $f0, 0x60($s0) +/* 07A080 7F045550 0FC1001E */ jal sub_GAME_7F040078 +/* 07A084 7F045554 02202025 */ move $a0, $s1 +/* 07A088 7F045558 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07A08C 7F04555C 44814000 */ mtc1 $at, $f8 +/* 07A090 7F045560 3C078005 */ lui $a3, %hi(clock_timer) +/* 07A094 7F045564 24E78374 */ addiu $a3, %lo(clock_timer) # addiu $a3, $a3, -0x7c8c +/* 07A098 7F045568 AFA20640 */ sw $v0, 0x640($sp) +/* 07A09C 7F04556C AFA00610 */ sw $zero, 0x610($sp) +/* 07A0A0 7F045570 AFA0060C */ sw $zero, 0x60c($sp) +/* 07A0A4 7F045574 AFA00604 */ sw $zero, 0x604($sp) +/* 07A0A8 7F045578 E7A80638 */ swc1 $f8, 0x638($sp) +/* 07A0AC 7F04557C 8E0A00A8 */ lw $t2, 0xa8($s0) +/* 07A0B0 7F045580 8CEC0000 */ lw $t4, ($a3) +/* 07A0B4 7F045584 C634005C */ lwc1 $f20, 0x5c($s1) +/* 07A0B8 7F045588 00009025 */ move $s2, $zero +/* 07A0BC 7F04558C 014C7021 */ addu $t6, $t2, $t4 +/* 07A0C0 7F045590 AE0E00A8 */ sw $t6, 0xa8($s0) +/* 07A0C4 7F045594 C6260018 */ lwc1 $f6, 0x18($s1) +/* 07A0C8 7F045598 3C018005 */ lui $at, %hi(rocket_initial_gravity_modifier) +/* 07A0CC 7F04559C E7A6062C */ swc1 $f6, 0x62c($sp) +/* 07A0D0 7F0455A0 C62A001C */ lwc1 $f10, 0x1c($s1) +/* 07A0D4 7F0455A4 E7AA0630 */ swc1 $f10, 0x630($sp) +/* 07A0D8 7F0455A8 C6240020 */ lwc1 $f4, 0x20($s1) +/* 07A0DC 7F0455AC E7A40634 */ swc1 $f4, 0x634($sp) +/* 07A0E0 7F0455B0 8E030000 */ lw $v1, ($s0) +/* 07A0E4 7F0455B4 306D0020 */ andi $t5, $v1, 0x20 +/* 07A0E8 7F0455B8 11A0004B */ beqz $t5, .L7F0456E8 +/* 07A0EC 7F0455BC 00000000 */ nop +/* 07A0F0 7F0455C0 C4322A98 */ lwc1 $f18, %lo(rocket_initial_gravity_modifier)($at) +/* 07A0F4 7F0455C4 C600001C */ lwc1 $f0, 0x1c($s0) +/* 07A0F8 7F0455C8 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 07A0FC 7F0455CC 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 07A100 7F0455D0 4612003C */ c.lt.s $f0, $f18 +/* 07A104 7F0455D4 00000000 */ nop +/* 07A108 7F0455D8 4502001C */ bc1fl .L7F04564C +/* 07A10C 7F0455DC C60000B0 */ lwc1 $f0, 0xb0($s0) +/* 07A110 7F0455E0 C6080014 */ lwc1 $f8, 0x14($s0) +/* 07A114 7F0455E4 C4460000 */ lwc1 $f6, ($v0) +/* 07A118 7F0455E8 C60400B4 */ lwc1 $f4, 0xb4($s0) +/* 07A11C 7F0455EC 3C018005 */ lui $at, %hi(D_80052A9C) +/* 07A120 7F0455F0 46064282 */ mul.s $f10, $f8, $f6 +/* 07A124 7F0455F4 460A2200 */ add.s $f8, $f4, $f10 +/* 07A128 7F0455F8 E60800B4 */ swc1 $f8, 0xb4($s0) +/* 07A12C 7F0455FC C4440000 */ lwc1 $f4, ($v0) +/* 07A130 7F045600 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07A134 7F045604 C60800B0 */ lwc1 $f8, 0xb0($s0) +/* 07A138 7F045608 46043282 */ mul.s $f10, $f6, $f4 +/* 07A13C 7F04560C 460A4180 */ add.s $f6, $f8, $f10 +/* 07A140 7F045610 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 07A144 7F045614 C4480000 */ lwc1 $f8, ($v0) +/* 07A148 7F045618 C4242A9C */ lwc1 $f4, %lo(D_80052A9C)($at) +/* 07A14C 7F04561C 46082282 */ mul.s $f10, $f4, $f8 +/* 07A150 7F045620 460A0180 */ add.s $f6, $f0, $f10 +/* 07A154 7F045624 E606001C */ swc1 $f6, 0x1c($s0) +/* 07A158 7F045628 C604001C */ lwc1 $f4, 0x1c($s0) +/* 07A15C 7F04562C 4604903C */ c.lt.s $f18, $f4 +/* 07A160 7F045630 00000000 */ nop +/* 07A164 7F045634 45000002 */ bc1f .L7F045640 +/* 07A168 7F045638 00000000 */ nop +/* 07A16C 7F04563C E612001C */ swc1 $f18, 0x1c($s0) +.L7F045640: +/* 07A170 7F045640 10000029 */ b .L7F0456E8 +/* 07A174 7F045644 8E030000 */ lw $v1, ($s0) +/* 07A178 7F045648 C60000B0 */ lwc1 $f0, 0xb0($s0) +.L7F04564C: +/* 07A17C 7F04564C C7A80698 */ lwc1 $f8, 0x698($sp) +/* 07A180 7F045650 4600403C */ c.lt.s $f8, $f0 +/* 07A184 7F045654 00000000 */ nop +/* 07A188 7F045658 45000019 */ bc1f .L7F0456C0 +/* 07A18C 7F04565C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07A190 7F045660 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 07A194 7F045664 C60A0014 */ lwc1 $f10, 0x14($s0) +/* 07A198 7F045668 C60800B4 */ lwc1 $f8, 0xb4($s0) +/* 07A19C 7F04566C 46065102 */ mul.s $f4, $f10, $f6 +/* 07A1A0 7F045670 46044280 */ add.s $f10, $f8, $f4 +/* 07A1A4 7F045674 E60A00B4 */ swc1 $f10, 0xb4($s0) +/* 07A1A8 7F045678 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 07A1AC 7F04567C C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07A1B0 7F045680 3C018005 */ lui $at, %hi(D_80052AA0) +/* 07A1B4 7F045684 46083102 */ mul.s $f4, $f6, $f8 +/* 07A1B8 7F045688 46040280 */ add.s $f10, $f0, $f4 +/* 07A1BC 7F04568C E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 07A1C0 7F045690 C7A80698 */ lwc1 $f8, 0x698($sp) +/* 07A1C4 7F045694 C60600B0 */ lwc1 $f6, 0xb0($s0) +/* 07A1C8 7F045698 C42A2AA0 */ lwc1 $f10, %lo(D_80052AA0)($at) +/* 07A1CC 7F04569C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07A1D0 7F0456A0 46083101 */ sub.s $f4, $f6, $f8 +/* 07A1D4 7F0456A4 46045182 */ mul.s $f6, $f10, $f4 +/* 07A1D8 7F0456A8 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07A1DC 7F0456AC 460A3102 */ mul.s $f4, $f6, $f10 +/* 07A1E0 7F0456B0 46044180 */ add.s $f6, $f8, $f4 +/* 07A1E4 7F0456B4 E7A60698 */ swc1 $f6, 0x698($sp) +/* 07A1E8 7F0456B8 1000000B */ b .L7F0456E8 +/* 07A1EC 7F0456BC 8E030000 */ lw $v1, ($s0) +.L7F0456C0: +/* 07A1F0 7F0456C0 E7A00698 */ swc1 $f0, 0x698($sp) +/* 07A1F4 7F0456C4 8E0F0000 */ lw $t7, ($s0) +/* 07A1F8 7F0456C8 2401FFDF */ li $at, -33 +/* 07A1FC 7F0456CC C60A00B4 */ lwc1 $f10, 0xb4($s0) +/* 07A200 7F0456D0 01E1C024 */ and $t8, $t7, $at +/* 07A204 7F0456D4 AE180000 */ sw $t8, ($s0) +/* 07A208 7F0456D8 37030010 */ ori $v1, $t8, 0x10 +/* 07A20C 7F0456DC E616001C */ swc1 $f22, 0x1c($s0) +/* 07A210 7F0456E0 AE030000 */ sw $v1, ($s0) +/* 07A214 7F0456E4 E60A0008 */ swc1 $f10, 8($s0) +.L7F0456E8: +/* 07A218 7F0456E8 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 07A21C 7F0456EC 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 07A220 7F0456F0 3C018005 */ lui $at, %hi(prop_projectile_gravity_modifier) +/* 07A224 7F0456F4 306B0010 */ andi $t3, $v1, 0x10 +/* 07A228 7F0456F8 C4322AA4 */ lwc1 $f18, %lo(prop_projectile_gravity_modifier)($at) +/* 07A22C 7F0456FC C4420000 */ lwc1 $f2, ($v0) +/* 07A230 7F045700 C600001C */ lwc1 $f0, 0x1c($s0) +/* 07A234 7F045704 15600015 */ bnez $t3, .L7F04575C +/* 07A238 7F045708 C6100014 */ lwc1 $f16, 0x14($s0) +/* 07A23C 7F04570C 46008100 */ add.s $f4, $f16, $f0 +/* 07A240 7F045710 C6080008 */ lwc1 $f8, 8($s0) +/* 07A244 7F045714 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07A248 7F045718 46022182 */ mul.s $f6, $f4, $f2 +/* 07A24C 7F04571C 46064280 */ add.s $f10, $f8, $f6 +/* 07A250 7F045720 E60A0008 */ swc1 $f10, 8($s0) +/* 07A254 7F045724 C4420000 */ lwc1 $f2, ($v0) +/* 07A258 7F045728 C60C0008 */ lwc1 $f12, 8($s0) +/* 07A25C 7F04572C 44815000 */ mtc1 $at, $f10 +/* 07A260 7F045730 46029102 */ mul.s $f4, $f18, $f2 +/* 07A264 7F045734 46046381 */ sub.s $f14, $f12, $f4 +/* 07A268 7F045738 460E6200 */ add.s $f8, $f12, $f14 +/* 07A26C 7F04573C 46081182 */ mul.s $f6, $f2, $f8 +/* 07A270 7F045740 C7A80698 */ lwc1 $f8, 0x698($sp) +/* 07A274 7F045744 460A3102 */ mul.s $f4, $f6, $f10 +/* 07A278 7F045748 46044180 */ add.s $f6, $f8, $f4 +/* 07A27C 7F04574C E7A60698 */ swc1 $f6, 0x698($sp) +/* 07A280 7F045750 E60E0008 */ swc1 $f14, 8($s0) +/* 07A284 7F045754 1000000C */ b .L7F045788 +/* 07A288 7F045758 C4420000 */ lwc1 $f2, ($v0) +.L7F04575C: +/* 07A28C 7F04575C 46008200 */ add.s $f8, $f16, $f0 +/* 07A290 7F045760 C60A0008 */ lwc1 $f10, 8($s0) +/* 07A294 7F045764 46024102 */ mul.s $f4, $f8, $f2 +/* 07A298 7F045768 46045180 */ add.s $f6, $f10, $f4 +/* 07A29C 7F04576C E6060008 */ swc1 $f6, 8($s0) +/* 07A2A0 7F045770 C60A0008 */ lwc1 $f10, 8($s0) +/* 07A2A4 7F045774 C4420000 */ lwc1 $f2, ($v0) +/* 07A2A8 7F045778 C7A80698 */ lwc1 $f8, 0x698($sp) +/* 07A2AC 7F04577C 46025102 */ mul.s $f4, $f10, $f2 +/* 07A2B0 7F045780 46044180 */ add.s $f6, $f8, $f4 +/* 07A2B4 7F045784 E7A60698 */ swc1 $f6, 0x698($sp) +.L7F045788: +/* 07A2B8 7F045788 C6080010 */ lwc1 $f8, 0x10($s0) +/* 07A2BC 7F04578C C60A0004 */ lwc1 $f10, 4($s0) +/* 07A2C0 7F045790 26240018 */ addiu $a0, $s1, 0x18 +/* 07A2C4 7F045794 46024102 */ mul.s $f4, $f8, $f2 +/* 07A2C8 7F045798 C6080018 */ lwc1 $f8, 0x18($s0) +/* 07A2CC 7F04579C 26050020 */ addiu $a1, $s0, 0x20 +/* 07A2D0 7F0457A0 46045180 */ add.s $f6, $f10, $f4 +/* 07A2D4 7F0457A4 E6060004 */ swc1 $f6, 4($s0) +/* 07A2D8 7F0457A8 C44A0000 */ lwc1 $f10, ($v0) +/* 07A2DC 7F0457AC C606000C */ lwc1 $f6, 0xc($s0) +/* 07A2E0 7F0457B0 460A4102 */ mul.s $f4, $f8, $f10 +/* 07A2E4 7F0457B4 46043200 */ add.s $f8, $f6, $f4 +/* 07A2E8 7F0457B8 C6060004 */ lwc1 $f6, 4($s0) +/* 07A2EC 7F0457BC E608000C */ swc1 $f8, 0xc($s0) +/* 07A2F0 7F0457C0 C4420000 */ lwc1 $f2, ($v0) +/* 07A2F4 7F0457C4 C7AA0694 */ lwc1 $f10, 0x694($sp) +/* 07A2F8 7F0457C8 8CE60000 */ lw $a2, ($a3) +/* 07A2FC 7F0457CC 46023102 */ mul.s $f4, $f6, $f2 +/* 07A300 7F0457D0 C7A6069C */ lwc1 $f6, 0x69c($sp) +/* 07A304 7F0457D4 46045200 */ add.s $f8, $f10, $f4 +/* 07A308 7F0457D8 E7A80694 */ swc1 $f8, 0x694($sp) +/* 07A30C 7F0457DC C60A000C */ lwc1 $f10, 0xc($s0) +/* 07A310 7F0457E0 AFA5006C */ sw $a1, 0x6c($sp) +/* 07A314 7F0457E4 AFA40070 */ sw $a0, 0x70($sp) +/* 07A318 7F0457E8 46025102 */ mul.s $f4, $f10, $f2 +/* 07A31C 7F0457EC 46043200 */ add.s $f8, $f6, $f4 +/* 07A320 7F0457F0 0FC15F7E */ jal sub_GAME_7F057DF8 +/* 07A324 7F0457F4 E7A8069C */ swc1 $f8, 0x69c($sp) +/* 07A328 7F0457F8 92390003 */ lbu $t9, 3($s1) +/* 07A32C 7F0457FC 24010008 */ li $at, 8 +/* 07A330 7F045800 57210013 */ bnel $t9, $at, .L7F045850 +/* 07A334 7F045804 8E040088 */ lw $a0, 0x88($s0) +/* 07A338 7F045808 82220080 */ lb $v0, 0x80($s1) +/* 07A33C 7F04580C 2401001D */ li $at, 29 +/* 07A340 7F045810 1041000D */ beq $v0, $at, .L7F045848 +/* 07A344 7F045814 2401001B */ li $at, 27 +/* 07A348 7F045818 1041000B */ beq $v0, $at, .L7F045848 +/* 07A34C 7F04581C 2401001C */ li $at, 28 +/* 07A350 7F045820 10410009 */ beq $v0, $at, .L7F045848 +/* 07A354 7F045824 24010021 */ li $at, 33 +/* 07A358 7F045828 10410007 */ beq $v0, $at, .L7F045848 +/* 07A35C 7F04582C 2401002F */ li $at, 47 +/* 07A360 7F045830 10410005 */ beq $v0, $at, .L7F045848 +/* 07A364 7F045834 24010030 */ li $at, 48 +/* 07A368 7F045838 10410003 */ beq $v0, $at, .L7F045848 +/* 07A36C 7F04583C 24010022 */ li $at, 34 +/* 07A370 7F045840 54410003 */ bnel $v0, $at, .L7F045850 +/* 07A374 7F045844 8E040088 */ lw $a0, 0x88($s0) +.L7F045848: +/* 07A378 7F045848 24120001 */ li $s2, 1 +/* 07A37C 7F04584C 8E040088 */ lw $a0, 0x88($s0) +.L7F045850: +/* 07A380 7F045850 50800004 */ beql $a0, $zero, .L7F045864 +/* 07A384 7F045854 02202025 */ move $a0, $s1 +/* 07A388 7F045858 0FC0F416 */ jal sub_GAME_7F03D058 +/* 07A38C 7F04585C 00002825 */ move $a1, $zero +/* 07A390 7F045860 02202025 */ move $a0, $s1 +.L7F045864: +/* 07A394 7F045864 27A50694 */ addiu $a1, $sp, 0x694 +/* 07A398 7F045868 27A60614 */ addiu $a2, $sp, 0x614 +/* 07A39C 7F04586C 27A70620 */ addiu $a3, $sp, 0x620 +/* 07A3A0 7F045870 AFB20010 */ sw $s2, 0x10($sp) +/* 07A3A4 7F045874 0FC10BAD */ jal sub_GAME_7F042EB4 +/* 07A3A8 7F045878 AFA00014 */ sw $zero, 0x14($sp) +/* 07A3AC 7F04587C AFA20664 */ sw $v0, 0x664($sp) +/* 07A3B0 7F045880 8E040088 */ lw $a0, 0x88($s0) +/* 07A3B4 7F045884 50800004 */ beql $a0, $zero, .L7F045898 +/* 07A3B8 7F045888 8FAC0664 */ lw $t4, 0x664($sp) +/* 07A3BC 7F04588C 0FC0F416 */ jal sub_GAME_7F03D058 +/* 07A3C0 7F045890 24050001 */ li $a1, 1 +/* 07A3C4 7F045894 8FAC0664 */ lw $t4, 0x664($sp) +.L7F045898: +/* 07A3C8 7F045898 240A0001 */ li $t2, 1 +/* 07A3CC 7F04589C 24010002 */ li $at, 2 +/* 07A3D0 7F0458A0 15810042 */ bne $t4, $at, .L7F0459AC +/* 07A3D4 7F0458A4 AFAA0690 */ sw $t2, 0x690($sp) +/* 07A3D8 7F0458A8 3C038003 */ lui $v1, %hi(D_80030B0C) +/* 07A3DC 7F0458AC 8C630B0C */ lw $v1, %lo(D_80030B0C)($v1) +/* 07A3E0 7F0458B0 10600007 */ beqz $v1, .L7F0458D0 +/* 07A3E4 7F0458B4 00000000 */ nop +/* 07A3E8 7F0458B8 90620000 */ lbu $v0, ($v1) +/* 07A3EC 7F0458BC 24010003 */ li $at, 3 +/* 07A3F0 7F0458C0 1041003A */ beq $v0, $at, .L7F0459AC +/* 07A3F4 7F0458C4 24010006 */ li $at, 6 +/* 07A3F8 7F0458C8 50410039 */ beql $v0, $at, .L7F0459B0 +/* 07A3FC 7F0458CC 8FAC0604 */ lw $t4, 0x604($sp) +.L7F0458D0: +/* 07A400 7F0458D0 10600007 */ beqz $v1, .L7F0458F0 +/* 07A404 7F0458D4 00002025 */ move $a0, $zero +/* 07A408 7F0458D8 8C620004 */ lw $v0, 4($v1) +/* 07A40C 7F0458DC 8C4E0064 */ lw $t6, 0x64($v0) +/* 07A410 7F0458E0 31CD0080 */ andi $t5, $t6, 0x80 +/* 07A414 7F0458E4 11A00002 */ beqz $t5, .L7F0458F0 +/* 07A418 7F0458E8 00000000 */ nop +/* 07A41C 7F0458EC 24040001 */ li $a0, 1 +.L7F0458F0: +/* 07A420 7F0458F0 5480002F */ bnezl $a0, .L7F0459B0 +/* 07A424 7F0458F4 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A428 7F0458F8 0FC0FEDC */ jal sub_GAME_7F03FB70 +/* 07A42C 7F0458FC 02002025 */ move $a0, $s0 +/* 07A430 7F045900 8E2F0064 */ lw $t7, 0x64($s1) +/* 07A434 7F045904 2401FF7F */ li $at, -129 +/* 07A438 7F045908 AE20006C */ sw $zero, 0x6c($s1) +/* 07A43C 7F04590C 01E1C024 */ and $t8, $t7, $at +/* 07A440 7F045910 AE380064 */ sw $t8, 0x64($s1) +/* 07A444 7F045914 92620001 */ lbu $v0, 1($s3) +/* 07A448 7F045918 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07A44C 7F04591C 240500F1 */ li $a1, 241 +/* 07A450 7F045920 30480008 */ andi $t0, $v0, 8 +/* 07A454 7F045924 11000003 */ beqz $t0, .L7F045934 +/* 07A458 7F045928 00003025 */ move $a2, $zero +/* 07A45C 7F04592C 34490010 */ ori $t1, $v0, 0x10 +/* 07A460 7F045930 A2690001 */ sb $t1, 1($s3) +.L7F045934: +/* 07A464 7F045934 0C002382 */ jal play_sfx_a1 +/* 07A468 7F045938 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07A46C 7F04593C 00402025 */ move $a0, $v0 +/* 07A470 7F045940 0FC14E84 */ jal sub_GAME_7F053A10 +/* 07A474 7F045944 26650008 */ addiu $a1, $s3, 8 +/* 07A478 7F045948 8E6B0014 */ lw $t3, 0x14($s3) +/* 07A47C 7F04594C 82240080 */ lb $a0, 0x80($s1) +/* 07A480 7F045950 0FC15DFA */ jal sub_GAME_7F0577E8 +/* 07A484 7F045954 91650003 */ lbu $a1, 3($t3) +/* 07A488 7F045958 02202025 */ move $a0, $s1 +/* 07A48C 7F04595C 27A50614 */ addiu $a1, $sp, 0x614 +/* 07A490 7F045960 8E660014 */ lw $a2, 0x14($s3) +/* 07A494 7F045964 0FC10E6E */ jal sub_GAME_7F0439B8 +/* 07A498 7F045968 27A70620 */ addiu $a3, $sp, 0x620 +/* 07A49C 7F04596C 3C058003 */ lui $a1, %hi(D_80030B0C) +/* 07A4A0 7F045970 8CA50B0C */ lw $a1, %lo(D_80030B0C)($a1) +/* 07A4A4 7F045974 02602025 */ move $a0, $s3 +/* 07A4A8 7F045978 3C068007 */ lui $a2, %hi(objinst) +/* 07A4AC 7F04597C 10A0000B */ beqz $a1, .L7F0459AC +/* 07A4B0 7F045980 3C078007 */ lui $a3, %hi(dword_CODE_bss_80075B74) +/* 07A4B4 7F045984 8E720014 */ lw $s2, 0x14($s3) +/* 07A4B8 7F045988 8CC65B70 */ lw $a2, %lo(objinst)($a2) +/* 07A4BC 7F04598C 0FC10E9B */ jal sub_GAME_7F043A6C +/* 07A4C0 7F045990 8CE75B74 */ lw $a3, %lo(dword_CODE_bss_80075B74)($a3) +/* 07A4C4 7F045994 10400005 */ beqz $v0, .L7F0459AC +/* 07A4C8 7F045998 24190005 */ li $t9, 5 +/* 07A4CC 7F04599C AE720014 */ sw $s2, 0x14($s3) +/* 07A4D0 7F0459A0 240A0001 */ li $t2, 1 +/* 07A4D4 7F0459A4 AFB90680 */ sw $t9, 0x680($sp) +/* 07A4D8 7F0459A8 AFAA0604 */ sw $t2, 0x604($sp) +.L7F0459AC: +/* 07A4DC 7F0459AC 8FAC0604 */ lw $t4, 0x604($sp) +.L7F0459B0: +/* 07A4E0 7F0459B0 158000EC */ bnez $t4, .L7F045D64 +/* 07A4E4 7F0459B4 3C128003 */ lui $s2, %hi(D_80030B0C) +/* 07A4E8 7F0459B8 8E520B0C */ lw $s2, %lo(D_80030B0C)($s2) +/* 07A4EC 7F0459BC 524000EA */ beql $s2, $zero, .L7F045D68 +/* 07A4F0 7F0459C0 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A4F4 7F0459C4 922E0003 */ lbu $t6, 3($s1) +/* 07A4F8 7F0459C8 24010008 */ li $at, 8 +/* 07A4FC 7F0459CC 55C100E6 */ bnel $t6, $at, .L7F045D68 +/* 07A500 7F0459D0 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A504 7F0459D4 82220080 */ lb $v0, 0x80($s1) +/* 07A508 7F0459D8 24010003 */ li $at, 3 +/* 07A50C 7F0459DC 544100C3 */ bnel $v0, $at, .L7F045CEC +/* 07A510 7F0459E0 24010056 */ li $at, 86 +/* 07A514 7F0459E4 92420000 */ lbu $v0, ($s2) +/* 07A518 7F0459E8 24010003 */ li $at, 3 +/* 07A51C 7F0459EC 1041000D */ beq $v0, $at, .L7F045A24 +/* 07A520 7F0459F0 24010006 */ li $at, 6 +/* 07A524 7F0459F4 544100DC */ bnel $v0, $at, .L7F045D68 +/* 07A528 7F0459F8 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A52C 7F0459FC 8E4D0004 */ lw $t5, 4($s2) +/* 07A530 7F045A00 51A000D9 */ beql $t5, $zero, .L7F045D68 +/* 07A534 7F045A04 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A538 7F045A08 0FC26C57 */ jal sub_GAME_7F09B15C +/* 07A53C 7F045A0C 02402025 */ move $a0, $s2 +/* 07A540 7F045A10 0FC26C54 */ jal get_cur_playernum +/* 07A544 7F045A14 00409025 */ move $s2, $v0 +/* 07A548 7F045A18 105200D2 */ beq $v0, $s2, .L7F045D64 +/* 07A54C 7F045A1C 3C128003 */ lui $s2, %hi(D_80030B0C) +/* 07A550 7F045A20 8E520B0C */ lw $s2, %lo(D_80030B0C)($s2) +.L7F045A24: +/* 07A554 7F045A24 8E22006C */ lw $v0, 0x6c($s1) +/* 07A558 7F045A28 8E440004 */ lw $a0, 4($s2) +/* 07A55C 7F045A2C 8C4F0000 */ lw $t7, ($v0) +/* 07A560 7F045A30 31F80001 */ andi $t8, $t7, 1 +/* 07A564 7F045A34 530000CC */ beql $t8, $zero, .L7F045D68 +/* 07A568 7F045A38 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A56C 7F045A3C 8C480090 */ lw $t0, 0x90($v0) +/* 07A570 7F045A40 5D0000C9 */ bgtzl $t0, .L7F045D68 +/* 07A574 7F045A44 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A578 7F045A48 8E290064 */ lw $t1, 0x64($s1) +/* 07A57C 7F045A4C 3C068007 */ lui $a2, %hi(flt_CODE_bss_80075B78) +/* 07A580 7F045A50 24C65B78 */ addiu $a2, %lo(flt_CODE_bss_80075B78) # addiu $a2, $a2, 0x5b78 +/* 07A584 7F045A54 312B0020 */ andi $t3, $t1, 0x20 +/* 07A588 7F045A58 116000C2 */ beqz $t3, .L7F045D64 +/* 07A58C 7F045A5C 3C058003 */ lui $a1, %hi(bodypartshot) +/* 07A590 7F045A60 82270080 */ lb $a3, 0x80($s1) +/* 07A594 7F045A64 24190001 */ li $t9, 1 +/* 07A598 7F045A68 AFB90010 */ sw $t9, 0x10($sp) +/* 07A59C 7F045A6C 0FC09C9F */ jal handles_shot_actors +/* 07A5A0 7F045A70 8CA50B10 */ lw $a1, %lo(bodypartshot)($a1) +/* 07A5A4 7F045A74 104000BB */ beqz $v0, .L7F045D64 +/* 07A5A8 7F045A78 240A0001 */ li $t2, 1 +/* 07A5AC 7F045A7C AFAA0604 */ sw $t2, 0x604($sp) +/* 07A5B0 7F045A80 C610008C */ lwc1 $f16, 0x8c($s0) +/* 07A5B4 7F045A84 C7AA0620 */ lwc1 $f10, 0x620($sp) +/* 07A5B8 7F045A88 4610B03C */ c.lt.s $f22, $f16 +/* 07A5BC 7F045A8C 00000000 */ nop +/* 07A5C0 7F045A90 4502001D */ bc1fl .L7F045B08 +/* 07A5C4 7F045A94 8E0C0000 */ lw $t4, ($s0) +/* 07A5C8 7F045A98 C6020004 */ lwc1 $f2, 4($s0) +/* 07A5CC 7F045A9C C60C0008 */ lwc1 $f12, 8($s0) +/* 07A5D0 7F045AA0 C7A40624 */ lwc1 $f4, 0x624($sp) +/* 07A5D4 7F045AA4 460A1182 */ mul.s $f6, $f2, $f10 +/* 07A5D8 7F045AA8 C600000C */ lwc1 $f0, 0xc($s0) +/* 07A5DC 7F045AAC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07A5E0 7F045AB0 46046202 */ mul.s $f8, $f12, $f4 +/* 07A5E4 7F045AB4 46083100 */ add.s $f4, $f6, $f8 +/* 07A5E8 7F045AB8 C7A60628 */ lwc1 $f6, 0x628($sp) +/* 07A5EC 7F045ABC 46003202 */ mul.s $f8, $f6, $f0 +/* 07A5F0 7F045AC0 44813000 */ mtc1 $at, $f6 +/* 07A5F4 7F045AC4 46044380 */ add.s $f14, $f8, $f4 +/* 07A5F8 7F045AC8 46068200 */ add.s $f8, $f16, $f6 +/* 07A5FC 7F045ACC 46004107 */ neg.s $f4, $f8 +/* 07A600 7F045AD0 46047382 */ mul.s $f14, $f14, $f4 +/* 07A604 7F045AD4 00000000 */ nop +/* 07A608 7F045AD8 460A7182 */ mul.s $f6, $f14, $f10 +/* 07A60C 7F045ADC 46061200 */ add.s $f8, $f2, $f6 +/* 07A610 7F045AE0 E6080004 */ swc1 $f8, 4($s0) +/* 07A614 7F045AE4 C7A40624 */ lwc1 $f4, 0x624($sp) +/* 07A618 7F045AE8 46047282 */ mul.s $f10, $f14, $f4 +/* 07A61C 7F045AEC 460A6180 */ add.s $f6, $f12, $f10 +/* 07A620 7F045AF0 E6060008 */ swc1 $f6, 8($s0) +/* 07A624 7F045AF4 C7A80628 */ lwc1 $f8, 0x628($sp) +/* 07A628 7F045AF8 46087102 */ mul.s $f4, $f14, $f8 +/* 07A62C 7F045AFC 46040280 */ add.s $f10, $f0, $f4 +/* 07A630 7F045B00 E60A000C */ swc1 $f10, 0xc($s0) +/* 07A634 7F045B04 8E0C0000 */ lw $t4, ($s0) +.L7F045B08: +/* 07A638 7F045B08 318E0200 */ andi $t6, $t4, 0x200 +/* 07A63C 7F045B0C 55C00004 */ bnezl $t6, .L7F045B20 +/* 07A640 7F045B10 8E0D0090 */ lw $t5, 0x90($s0) +/* 07A644 7F045B14 0FC15EB0 */ jal sub_GAME_7F057AC0 +/* 07A648 7F045B18 8FA4006C */ lw $a0, 0x6c($sp) +/* 07A64C 7F045B1C 8E0D0090 */ lw $t5, 0x90($s0) +.L7F045B20: +/* 07A650 7F045B20 3C058003 */ lui $a1, %hi(D_80030B0C) +/* 07A654 7F045B24 2406FFFF */ li $a2, -1 +/* 07A658 7F045B28 25AF0001 */ addiu $t7, $t5, 1 +/* 07A65C 7F045B2C AE0F0090 */ sw $t7, 0x90($s0) +/* 07A660 7F045B30 8CA50B0C */ lw $a1, %lo(D_80030B0C)($a1) +/* 07A664 7F045B34 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 07A668 7F045B38 82240080 */ lb $a0, 0x80($s1) +/* 07A66C 7F045B3C 3C188003 */ lui $t8, %hi(D_80030B0C) +/* 07A670 7F045B40 8F180B0C */ lw $t8, %lo(D_80030B0C)($t8) +/* 07A674 7F045B44 3C028003 */ lui $v0, %hi(bodypartshot) +/* 07A678 7F045B48 93080001 */ lbu $t0, 1($t8) +/* 07A67C 7F045B4C 31090002 */ andi $t1, $t0, 2 +/* 07A680 7F045B50 51200085 */ beql $t1, $zero, .L7F045D68 +/* 07A684 7F045B54 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A688 7F045B58 8C420B10 */ lw $v0, %lo(bodypartshot)($v0) +/* 07A68C 7F045B5C 24010064 */ li $at, 100 +/* 07A690 7F045B60 10410080 */ beq $v0, $at, .L7F045D64 +/* 07A694 7F045B64 2401006E */ li $at, 110 +/* 07A698 7F045B68 1041007E */ beq $v0, $at, .L7F045D64 +/* 07A69C 7F045B6C 3C048007 */ lui $a0, %hi(objinst) +/* 07A6A0 7F045B70 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) +/* 07A6A4 7F045B74 8CA55B74 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07A6A8 7F045B78 8C845B70 */ lw $a0, %lo(objinst)($a0) +/* 07A6AC 7F045B7C 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07A6B0 7F045B80 00003025 */ move $a2, $zero +/* 07A6B4 7F045B84 C7A60614 */ lwc1 $f6, 0x614($sp) +/* 07A6B8 7F045B88 C7A80618 */ lwc1 $f8, 0x618($sp) +/* 07A6BC 7F045B8C C7A4061C */ lwc1 $f4, 0x61c($sp) +/* 07A6C0 7F045B90 00409025 */ move $s2, $v0 +/* 07A6C4 7F045B94 E7A605CC */ swc1 $f6, 0x5cc($sp) +/* 07A6C8 7F045B98 E7A805D0 */ swc1 $f8, 0x5d0($sp) +/* 07A6CC 7F045B9C 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 07A6D0 7F045BA0 E7A405D4 */ swc1 $f4, 0x5d4($sp) +/* 07A6D4 7F045BA4 00402025 */ move $a0, $v0 +/* 07A6D8 7F045BA8 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 07A6DC 7F045BAC 27A505CC */ addiu $a1, $sp, 0x5cc +/* 07A6E0 7F045BB0 C7AA05CC */ lwc1 $f10, 0x5cc($sp) +/* 07A6E4 7F045BB4 C6460030 */ lwc1 $f6, 0x30($s2) +/* 07A6E8 7F045BB8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07A6EC 7F045BBC 44810000 */ mtc1 $at, $f0 +/* 07A6F0 7F045BC0 46065201 */ sub.s $f8, $f10, $f6 +/* 07A6F4 7F045BC4 3C048007 */ lui $a0, %hi(objinst) +/* 07A6F8 7F045BC8 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) +/* 07A6FC 7F045BCC 8CA55B74 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07A700 7F045BD0 46004102 */ mul.s $f4, $f8, $f0 +/* 07A704 7F045BD4 C7A805D0 */ lwc1 $f8, 0x5d0($sp) +/* 07A708 7F045BD8 8C845B70 */ lw $a0, %lo(objinst)($a0) +/* 07A70C 7F045BDC 46045180 */ add.s $f6, $f10, $f4 +/* 07A710 7F045BE0 E7A605CC */ swc1 $f6, 0x5cc($sp) +/* 07A714 7F045BE4 C64A0034 */ lwc1 $f10, 0x34($s2) +/* 07A718 7F045BE8 460A4101 */ sub.s $f4, $f8, $f10 +/* 07A71C 7F045BEC 46002182 */ mul.s $f6, $f4, $f0 +/* 07A720 7F045BF0 C7A405D4 */ lwc1 $f4, 0x5d4($sp) +/* 07A724 7F045BF4 46064280 */ add.s $f10, $f8, $f6 +/* 07A728 7F045BF8 E7AA05D0 */ swc1 $f10, 0x5d0($sp) +/* 07A72C 7F045BFC C6480038 */ lwc1 $f8, 0x38($s2) +/* 07A730 7F045C00 46082181 */ sub.s $f6, $f4, $f8 +/* 07A734 7F045C04 46003282 */ mul.s $f10, $f6, $f0 +/* 07A738 7F045C08 460A2200 */ add.s $f8, $f4, $f10 +/* 07A73C 7F045C0C 0FC1B3A4 */ jal getjointsize +/* 07A740 7F045C10 E7A805D4 */ swc1 $f8, 0x5d4($sp) +/* 07A744 7F045C14 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07A748 7F045C18 44813000 */ mtc1 $at, $f6 +/* 07A74C 7F045C1C 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B88) +/* 07A750 7F045C20 C42A5B88 */ lwc1 $f10, %lo(flt_CODE_bss_80075B88)($at) +/* 07A754 7F045C24 46060102 */ mul.s $f4, $f0, $f6 +/* 07A758 7F045C28 C7A605CC */ lwc1 $f6, 0x5cc($sp) +/* 07A75C 7F045C2C 3C048007 */ lui $a0, %hi(objinst) +/* 07A760 7F045C30 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) +/* 07A764 7F045C34 8CA55B74 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07A768 7F045C38 8C845B70 */ lw $a0, %lo(objinst)($a0) +/* 07A76C 7F045C3C 460A2202 */ mul.s $f8, $f4, $f10 +/* 07A770 7F045C40 46083101 */ sub.s $f4, $f6, $f8 +/* 07A774 7F045C44 0FC1B3A4 */ jal getjointsize +/* 07A778 7F045C48 E7A405CC */ swc1 $f4, 0x5cc($sp) +/* 07A77C 7F045C4C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07A780 7F045C50 44815000 */ mtc1 $at, $f10 +/* 07A784 7F045C54 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B8C) +/* 07A788 7F045C58 C4285B8C */ lwc1 $f8, %lo(flt_CODE_bss_80075B8C)($at) +/* 07A78C 7F045C5C 460A0182 */ mul.s $f6, $f0, $f10 +/* 07A790 7F045C60 C7AA05D0 */ lwc1 $f10, 0x5d0($sp) +/* 07A794 7F045C64 3C048007 */ lui $a0, %hi(objinst) +/* 07A798 7F045C68 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) +/* 07A79C 7F045C6C 8CA55B74 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07A7A0 7F045C70 8C845B70 */ lw $a0, %lo(objinst)($a0) +/* 07A7A4 7F045C74 46083102 */ mul.s $f4, $f6, $f8 +/* 07A7A8 7F045C78 46045181 */ sub.s $f6, $f10, $f4 +/* 07A7AC 7F045C7C 0FC1B3A4 */ jal getjointsize +/* 07A7B0 7F045C80 E7A605D0 */ swc1 $f6, 0x5d0($sp) +/* 07A7B4 7F045C84 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07A7B8 7F045C88 44814000 */ mtc1 $at, $f8 +/* 07A7BC 7F045C8C 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B90) +/* 07A7C0 7F045C90 C4245B90 */ lwc1 $f4, %lo(flt_CODE_bss_80075B90)($at) +/* 07A7C4 7F045C94 46080282 */ mul.s $f10, $f0, $f8 +/* 07A7C8 7F045C98 C7A805D4 */ lwc1 $f8, 0x5d4($sp) +/* 07A7CC 7F045C9C 02402025 */ move $a0, $s2 +/* 07A7D0 7F045CA0 27A5058C */ addiu $a1, $sp, 0x58c +/* 07A7D4 7F045CA4 46045182 */ mul.s $f6, $f10, $f4 +/* 07A7D8 7F045CA8 46064281 */ sub.s $f10, $f8, $f6 +/* 07A7DC 7F045CAC 0FC16799 */ jal sub_GAME_7F059E64 +/* 07A7E0 7F045CB0 E7AA05D4 */ swc1 $f10, 0x5d4($sp) +/* 07A7E4 7F045CB4 27A4058C */ addiu $a0, $sp, 0x58c +/* 07A7E8 7F045CB8 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 07A7EC 7F045CBC 27A505CC */ addiu $a1, $sp, 0x5cc +/* 07A7F0 7F045CC0 3C048007 */ lui $a0, %hi(objinst) +/* 07A7F4 7F045CC4 3C058003 */ lui $a1, %hi(bodypartshot) +/* 07A7F8 7F045CC8 3C068007 */ lui $a2, %hi(dword_CODE_bss_80075B74) +/* 07A7FC 7F045CCC 8CC65B74 */ lw $a2, %lo(dword_CODE_bss_80075B74)($a2) +/* 07A800 7F045CD0 8CA50B10 */ lw $a1, %lo(bodypartshot)($a1) +/* 07A804 7F045CD4 8C845B70 */ lw $a0, %lo(objinst)($a0) +/* 07A808 7F045CD8 0FC08877 */ jal sub_GAME_7F0221DC +/* 07A80C 7F045CDC 27A705CC */ addiu $a3, $sp, 0x5cc +/* 07A810 7F045CE0 10000021 */ b .L7F045D68 +/* 07A814 7F045CE4 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A818 7F045CE8 24010056 */ li $at, 86 +.L7F045CEC: +/* 07A81C 7F045CEC 5441001E */ bnel $v0, $at, .L7F045D68 +/* 07A820 7F045CF0 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A824 7F045CF4 92420000 */ lbu $v0, ($s2) +/* 07A828 7F045CF8 240B0001 */ li $t3, 1 +/* 07A82C 7F045CFC 24010003 */ li $at, 3 +/* 07A830 7F045D00 14410008 */ bne $v0, $at, .L7F045D24 +/* 07A834 7F045D04 AFAB0604 */ sw $t3, 0x604($sp) +/* 07A838 7F045D08 8E440004 */ lw $a0, 4($s2) +/* 07A83C 7F045D0C 26250058 */ addiu $a1, $s1, 0x58 +/* 07A840 7F045D10 3C064000 */ lui $a2, 0x4000 +/* 07A844 7F045D14 0FC09E01 */ jal sub_GAME_7F027804 +/* 07A848 7F045D18 24070001 */ li $a3, 1 +/* 07A84C 7F045D1C 10000011 */ b .L7F045D64 +/* 07A850 7F045D20 A6200082 */ sh $zero, 0x82($s1) +.L7F045D24: +/* 07A854 7F045D24 24010001 */ li $at, 1 +/* 07A858 7F045D28 10410004 */ beq $v0, $at, .L7F045D3C +/* 07A85C 7F045D2C 3C0542C8 */ lui $a1, 0x42c8 +/* 07A860 7F045D30 24010004 */ li $at, 4 +/* 07A864 7F045D34 5441000B */ bnel $v0, $at, .L7F045D64 +/* 07A868 7F045D38 A6200082 */ sh $zero, 0x82($s1) +.L7F045D3C: +/* 07A86C 7F045D3C 8E220064 */ lw $v0, 0x64($s1) +/* 07A870 7F045D40 3C010006 */ lui $at, 6 +/* 07A874 7F045D44 8E440004 */ lw $a0, 4($s2) +/* 07A878 7F045D48 0041C824 */ and $t9, $v0, $at +/* 07A87C 7F045D4C 00195442 */ srl $t2, $t9, 0x11 +/* 07A880 7F045D50 AFAA0010 */ sw $t2, 0x10($sp) +/* 07A884 7F045D54 26260058 */ addiu $a2, $s1, 0x58 +/* 07A888 7F045D58 0FC13842 */ jal maybe_detonate_object +/* 07A88C 7F045D5C 24070056 */ li $a3, 86 +/* 07A890 7F045D60 A6200082 */ sh $zero, 0x82($s1) +.L7F045D64: +/* 07A894 7F045D64 8FAC0604 */ lw $t4, 0x604($sp) +.L7F045D68: +/* 07A898 7F045D68 5580010B */ bnezl $t4, .L7F046198 +/* 07A89C 7F045D6C 8E2A0064 */ lw $t2, 0x64($s1) +/* 07A8A0 7F045D70 8FAE0664 */ lw $t6, 0x664($sp) +/* 07A8A4 7F045D74 55C00031 */ bnezl $t6, .L7F045E3C +/* 07A8A8 7F045D78 8E0F0000 */ lw $t7, ($s0) +/* 07A8AC 7F045D7C C610008C */ lwc1 $f16, 0x8c($s0) +/* 07A8B0 7F045D80 C7A40620 */ lwc1 $f4, 0x620($sp) +/* 07A8B4 7F045D84 4610B03C */ c.lt.s $f22, $f16 +/* 07A8B8 7F045D88 00000000 */ nop +/* 07A8BC 7F045D8C 4502002B */ bc1fl .L7F045E3C +/* 07A8C0 7F045D90 8E0F0000 */ lw $t7, ($s0) +/* 07A8C4 7F045D94 C6020004 */ lwc1 $f2, 4($s0) +/* 07A8C8 7F045D98 C60C0008 */ lwc1 $f12, 8($s0) +/* 07A8CC 7F045D9C C7A60624 */ lwc1 $f6, 0x624($sp) +/* 07A8D0 7F045DA0 46041202 */ mul.s $f8, $f2, $f4 +/* 07A8D4 7F045DA4 C600000C */ lwc1 $f0, 0xc($s0) +/* 07A8D8 7F045DA8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07A8DC 7F045DAC 46066282 */ mul.s $f10, $f12, $f6 +/* 07A8E0 7F045DB0 4616603E */ c.le.s $f12, $f22 +/* 07A8E4 7F045DB4 460A4180 */ add.s $f6, $f8, $f10 +/* 07A8E8 7F045DB8 C7A80628 */ lwc1 $f8, 0x628($sp) +/* 07A8EC 7F045DBC 46004282 */ mul.s $f10, $f8, $f0 +/* 07A8F0 7F045DC0 44814000 */ mtc1 $at, $f8 +/* 07A8F4 7F045DC4 46065380 */ add.s $f14, $f10, $f6 +/* 07A8F8 7F045DC8 46088280 */ add.s $f10, $f16, $f8 +/* 07A8FC 7F045DCC 46005187 */ neg.s $f6, $f10 +/* 07A900 7F045DD0 46067382 */ mul.s $f14, $f14, $f6 +/* 07A904 7F045DD4 00000000 */ nop +/* 07A908 7F045DD8 46047202 */ mul.s $f8, $f14, $f4 +/* 07A90C 7F045DDC 46081280 */ add.s $f10, $f2, $f8 +/* 07A910 7F045DE0 E60A0004 */ swc1 $f10, 4($s0) +/* 07A914 7F045DE4 C7A60624 */ lwc1 $f6, 0x624($sp) +/* 07A918 7F045DE8 46067102 */ mul.s $f4, $f14, $f6 +/* 07A91C 7F045DEC 46046200 */ add.s $f8, $f12, $f4 +/* 07A920 7F045DF0 E6080008 */ swc1 $f8, 8($s0) +/* 07A924 7F045DF4 C7AA0628 */ lwc1 $f10, 0x628($sp) +/* 07A928 7F045DF8 460A7182 */ mul.s $f6, $f14, $f10 +/* 07A92C 7F045DFC 46060100 */ add.s $f4, $f0, $f6 +/* 07A930 7F045E00 4500000D */ bc1f .L7F045E38 +/* 07A934 7F045E04 E604000C */ swc1 $f4, 0xc($s0) +/* 07A938 7F045E08 C6080008 */ lwc1 $f8, 8($s0) +/* 07A93C 7F045E0C 240D0001 */ li $t5, 1 +/* 07A940 7F045E10 4608B03E */ c.le.s $f22, $f8 +/* 07A944 7F045E14 00000000 */ nop +/* 07A948 7F045E18 45030007 */ bc1tl .L7F045E38 +/* 07A94C 7F045E1C AFAD060C */ sw $t5, 0x60c($sp) +/* 07A950 7F045E20 C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07A954 7F045E24 460AA03E */ c.le.s $f20, $f10 +/* 07A958 7F045E28 00000000 */ nop +/* 07A95C 7F045E2C 45020003 */ bc1fl .L7F045E3C +/* 07A960 7F045E30 8E0F0000 */ lw $t7, ($s0) +/* 07A964 7F045E34 AFAD060C */ sw $t5, 0x60c($sp) +.L7F045E38: +/* 07A968 7F045E38 8E0F0000 */ lw $t7, ($s0) +.L7F045E3C: +/* 07A96C 7F045E3C C7B4063C */ lwc1 $f20, 0x63c($sp) +/* 07A970 7F045E40 31F80008 */ andi $t8, $t7, 8 +/* 07A974 7F045E44 17000014 */ bnez $t8, .L7F045E98 +/* 07A978 7F045E48 00000000 */ nop +/* 07A97C 7F045E4C 8E640014 */ lw $a0, 0x14($s3) +/* 07A980 7F045E50 8E650008 */ lw $a1, 8($s3) +/* 07A984 7F045E54 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 07A988 7F045E58 8E660010 */ lw $a2, 0x10($s3) +/* 07A98C 7F045E5C 46000506 */ mov.s $f20, $f0 +/* 07A990 7F045E60 8FA40640 */ lw $a0, 0x640($sp) +/* 07A994 7F045E64 0FC0FA6F */ jal sub_GAME_7F03E9BC +/* 07A998 7F045E68 8FA50070 */ lw $a1, 0x70($sp) +/* 07A99C 7F045E6C 4600A101 */ sub.s $f4, $f20, $f0 +/* 07A9A0 7F045E70 E7A00638 */ swc1 $f0, 0x638($sp) +/* 07A9A4 7F045E74 C666000C */ lwc1 $f6, 0xc($s3) +/* 07A9A8 7F045E78 00004025 */ move $t0, $zero +/* 07A9AC 7F045E7C 4604303C */ c.lt.s $f6, $f4 +/* 07A9B0 7F045E80 00000000 */ nop +/* 07A9B4 7F045E84 45000002 */ bc1f .L7F045E90 +/* 07A9B8 7F045E88 00000000 */ nop +/* 07A9BC 7F045E8C 24080001 */ li $t0, 1 +.L7F045E90: +/* 07A9C0 7F045E90 10000001 */ b .L7F045E98 +/* 07A9C4 7F045E94 AFA80610 */ sw $t0, 0x610($sp) +.L7F045E98: +/* 07A9C8 7F045E98 8FA90610 */ lw $t1, 0x610($sp) +/* 07A9CC 7F045E9C 8FAB0664 */ lw $t3, 0x664($sp) +/* 07A9D0 7F045EA0 55200004 */ bnezl $t1, .L7F045EB4 +/* 07A9D4 7F045EA4 8E190000 */ lw $t9, ($s0) +/* 07A9D8 7F045EA8 5560000B */ bnezl $t3, .L7F045ED8 +/* 07A9DC 7F045EAC 8FAD0610 */ lw $t5, 0x610($sp) +/* 07A9E0 7F045EB0 8E190000 */ lw $t9, ($s0) +.L7F045EB4: +/* 07A9E4 7F045EB4 332A0200 */ andi $t2, $t9, 0x200 +/* 07A9E8 7F045EB8 55400004 */ bnezl $t2, .L7F045ECC +/* 07A9EC 7F045EBC 8E0C0090 */ lw $t4, 0x90($s0) +/* 07A9F0 7F045EC0 0FC15EB0 */ jal sub_GAME_7F057AC0 +/* 07A9F4 7F045EC4 8FA4006C */ lw $a0, 0x6c($sp) +/* 07A9F8 7F045EC8 8E0C0090 */ lw $t4, 0x90($s0) +.L7F045ECC: +/* 07A9FC 7F045ECC 258E0001 */ addiu $t6, $t4, 1 +/* 07AA00 7F045ED0 AE0E0090 */ sw $t6, 0x90($s0) +/* 07AA04 7F045ED4 8FAD0610 */ lw $t5, 0x610($sp) +.L7F045ED8: +/* 07AA08 7F045ED8 8FAF060C */ lw $t7, 0x60c($sp) +/* 07AA0C 7F045EDC 8FB80610 */ lw $t8, 0x610($sp) +/* 07AA10 7F045EE0 15A00003 */ bnez $t5, .L7F045EF0 +/* 07AA14 7F045EE4 00000000 */ nop +/* 07AA18 7F045EE8 51E0003A */ beql $t7, $zero, .L7F045FD4 +/* 07AA1C 7F045EEC 922C0003 */ lbu $t4, 3($s1) +.L7F045EF0: +/* 07AA20 7F045EF0 13000009 */ beqz $t8, .L7F045F18 +/* 07AA24 7F045EF4 C7A40618 */ lwc1 $f4, 0x618($sp) +/* 07AA28 7F045EF8 C7A80638 */ lwc1 $f8, 0x638($sp) +/* 07AA2C 7F045EFC 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07AA30 7F045F00 44813000 */ mtc1 $at, $f6 +/* 07AA34 7F045F04 4608A281 */ sub.s $f10, $f20, $f8 +/* 07AA38 7F045F08 46065000 */ add.s $f0, $f10, $f6 +/* 07AA3C 7F045F0C E660000C */ swc1 $f0, 0xc($s3) +/* 07AA40 7F045F10 10000008 */ b .L7F045F34 +/* 07AA44 7F045F14 E620005C */ swc1 $f0, 0x5c($s1) +.L7F045F18: +/* 07AA48 7F045F18 C7A80638 */ lwc1 $f8, 0x638($sp) +/* 07AA4C 7F045F1C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07AA50 7F045F20 44813000 */ mtc1 $at, $f6 +/* 07AA54 7F045F24 46082281 */ sub.s $f10, $f4, $f8 +/* 07AA58 7F045F28 46065080 */ add.s $f2, $f10, $f6 +/* 07AA5C 7F045F2C E662000C */ swc1 $f2, 0xc($s3) +/* 07AA60 7F045F30 E622005C */ swc1 $f2, 0x5c($s1) +.L7F045F34: +/* 07AA64 7F045F34 8E230064 */ lw $v1, 0x64($s1) +/* 07AA68 7F045F38 02202025 */ move $a0, $s1 +/* 07AA6C 7F045F3C 000343C0 */ sll $t0, $v1, 0xf +/* 07AA70 7F045F40 05000002 */ bltz $t0, .L7F045F4C +/* 07AA74 7F045F44 34690100 */ ori $t1, $v1, 0x100 +/* 07AA78 7F045F48 AE290064 */ sw $t1, 0x64($s1) +.L7F045F4C: +/* 07AA7C 7F045F4C C610008C */ lwc1 $f16, 0x8c($s0) +/* 07AA80 7F045F50 4610B03C */ c.lt.s $f22, $f16 +/* 07AA84 7F045F54 00000000 */ nop +/* 07AA88 7F045F58 4500001B */ bc1f .L7F045FC8 +/* 07AA8C 7F045F5C 00000000 */ nop +/* 07AA90 7F045F60 C6040008 */ lwc1 $f4, 8($s0) +/* 07AA94 7F045F64 46008207 */ neg.s $f8, $f16 +/* 07AA98 7F045F68 3C018005 */ lui $at, %hi(D_80052AA8) +/* 07AA9C 7F045F6C 46082282 */ mul.s $f10, $f4, $f8 +/* 07AAA0 7F045F70 C4202AA8 */ lwc1 $f0, %lo(D_80052AA8)($at) +/* 07AAA4 7F045F74 E60A0008 */ swc1 $f10, 8($s0) +/* 07AAA8 7F045F78 C6060008 */ lwc1 $f6, 8($s0) +/* 07AAAC 7F045F7C 4600303C */ c.lt.s $f6, $f0 +/* 07AAB0 7F045F80 00000000 */ nop +/* 07AAB4 7F045F84 45020013 */ bc1fl .L7F045FD4 +/* 07AAB8 7F045F88 922C0003 */ lbu $t4, 3($s1) +/* 07AABC 7F045F8C 8E0B0000 */ lw $t3, ($s0) +/* 07AAC0 7F045F90 02202025 */ move $a0, $s1 +/* 07AAC4 7F045F94 31790002 */ andi $t9, $t3, 2 +/* 07AAC8 7F045F98 13200007 */ beqz $t9, .L7F045FB8 +/* 07AACC 7F045F9C 00000000 */ nop +/* 07AAD0 7F045FA0 8E0A0090 */ lw $t2, 0x90($s0) +/* 07AAD4 7F045FA4 24010001 */ li $at, 1 +/* 07AAD8 7F045FA8 15410003 */ bne $t2, $at, .L7F045FB8 +/* 07AADC 7F045FAC 00000000 */ nop +/* 07AAE0 7F045FB0 10000007 */ b .L7F045FD0 +/* 07AAE4 7F045FB4 E6000008 */ swc1 $f0, 8($s0) +.L7F045FB8: +/* 07AAE8 7F045FB8 0FC10C79 */ jal sub_GAME_7F0431E4 +/* 07AAEC 7F045FBC 27A5062C */ addiu $a1, $sp, 0x62c +/* 07AAF0 7F045FC0 10000004 */ b .L7F045FD4 +/* 07AAF4 7F045FC4 922C0003 */ lbu $t4, 3($s1) +.L7F045FC8: +/* 07AAF8 7F045FC8 0FC10C79 */ jal sub_GAME_7F0431E4 +/* 07AAFC 7F045FCC 27A5062C */ addiu $a1, $sp, 0x62c +.L7F045FD0: +/* 07AB00 7F045FD0 922C0003 */ lbu $t4, 3($s1) +.L7F045FD4: +/* 07AB04 7F045FD4 24010008 */ li $at, 8 +/* 07AB08 7F045FD8 5581006F */ bnel $t4, $at, .L7F046198 +/* 07AB0C 7F045FDC 8E2A0064 */ lw $t2, 0x64($s1) +/* 07AB10 7F045FE0 82220080 */ lb $v0, 0x80($s1) +/* 07AB14 7F045FE4 24010003 */ li $at, 3 +/* 07AB18 7F045FE8 54410006 */ bnel $v0, $at, .L7F046004 +/* 07AB1C 7F045FEC 24010056 */ li $at, 86 +/* 07AB20 7F045FF0 0FC10D94 */ jal sub_GAME_7F043650 +/* 07AB24 7F045FF4 02202025 */ move $a0, $s1 +/* 07AB28 7F045FF8 10000042 */ b .L7F046104 +/* 07AB2C 7F045FFC 8FB80664 */ lw $t8, 0x664($sp) +/* 07AB30 7F046000 24010056 */ li $at, 86 +.L7F046004: +/* 07AB34 7F046004 1441002D */ bne $v0, $at, .L7F0460BC +/* 07AB38 7F046008 8FAE0664 */ lw $t6, 0x664($sp) +/* 07AB3C 7F04600C 11C00003 */ beqz $t6, .L7F04601C +/* 07AB40 7F046010 8FAD0610 */ lw $t5, 0x610($sp) +/* 07AB44 7F046014 51A00004 */ beql $t5, $zero, .L7F046028 +/* 07AB48 7F046018 C6020004 */ lwc1 $f2, 4($s0) +.L7F04601C: +/* 07AB4C 7F04601C 10000038 */ b .L7F046100 +/* 07AB50 7F046020 A6200082 */ sh $zero, 0x82($s1) +/* 07AB54 7F046024 C6020004 */ lwc1 $f2, 4($s0) +.L7F046028: +/* 07AB58 7F046028 C60C0008 */ lwc1 $f12, 8($s0) +/* 07AB5C 7F04602C C600000C */ lwc1 $f0, 0xc($s0) +/* 07AB60 7F046030 46021102 */ mul.s $f4, $f2, $f2 +/* 07AB64 7F046034 3C018005 */ lui $at, %hi(D_80052AAC) +/* 07AB68 7F046038 26240058 */ addiu $a0, $s1, 0x58 +/* 07AB6C 7F04603C 460C6202 */ mul.s $f8, $f12, $f12 +/* 07AB70 7F046040 24060008 */ li $a2, 8 +/* 07AB74 7F046044 46000182 */ mul.s $f6, $f0, $f0 +/* 07AB78 7F046048 46082280 */ add.s $f10, $f4, $f8 +/* 07AB7C 7F04604C C4242AAC */ lwc1 $f4, %lo(D_80052AAC)($at) +/* 07AB80 7F046050 460A3380 */ add.s $f14, $f6, $f10 +/* 07AB84 7F046054 460E203C */ c.lt.s $f4, $f14 +/* 07AB88 7F046058 00000000 */ nop +/* 07AB8C 7F04605C 45020005 */ bc1fl .L7F046074 +/* 07AB90 7F046060 8E0F00A8 */ lw $t7, 0xa8($s0) +/* 07AB94 7F046064 E6160010 */ swc1 $f22, 0x10($s0) +/* 07AB98 7F046068 E6160014 */ swc1 $f22, 0x14($s0) +/* 07AB9C 7F04606C E6160018 */ swc1 $f22, 0x18($s0) +/* 07ABA0 7F046070 8E0F00A8 */ lw $t7, 0xa8($s0) +.L7F046074: +/* 07ABA4 7F046074 29E1012D */ slti $at, $t7, 0x12d +/* 07ABA8 7F046078 54200008 */ bnezl $at, .L7F04609C +/* 07ABAC 7F04607C 92690001 */ lbu $t1, 1($s3) +/* 07ABB0 7F046080 8E180000 */ lw $t8, ($s0) +/* 07ABB4 7F046084 2401FFCF */ li $at, -49 +/* 07ABB8 7F046088 E616001C */ swc1 $f22, 0x1c($s0) +/* 07ABBC 7F04608C 03014024 */ and $t0, $t8, $at +/* 07ABC0 7F046090 1000001B */ b .L7F046100 +/* 07ABC4 7F046094 AE080000 */ sw $t0, ($s0) +/* 07ABC8 7F046098 92690001 */ lbu $t1, 1($s3) +.L7F04609C: +/* 07ABCC 7F04609C 8E650014 */ lw $a1, 0x14($s3) +/* 07ABD0 7F0460A0 2667002C */ addiu $a3, $s3, 0x2c +/* 07ABD4 7F0460A4 312B0008 */ andi $t3, $t1, 8 +/* 07ABD8 7F0460A8 000BC82B */ sltu $t9, $zero, $t3 +/* 07ABDC 7F0460AC 0FC279C0 */ jal sub_GAME_7F09E700 +/* 07ABE0 7F0460B0 AFB90010 */ sw $t9, 0x10($sp) +/* 07ABE4 7F0460B4 10000013 */ b .L7F046104 +/* 07ABE8 7F0460B8 8FB80664 */ lw $t8, 0x664($sp) +.L7F0460BC: +/* 07ABEC 7F0460BC 24010057 */ li $at, 87 +/* 07ABF0 7F0460C0 1441000F */ bne $v0, $at, .L7F046100 +/* 07ABF4 7F0460C4 8FAA0610 */ lw $t2, 0x610($sp) +/* 07ABF8 7F0460C8 15400003 */ bnez $t2, .L7F0460D8 +/* 07ABFC 7F0460CC 8FAC060C */ lw $t4, 0x60c($sp) +/* 07AC00 7F0460D0 11800003 */ beqz $t4, .L7F0460E0 +/* 07AC04 7F0460D4 26240058 */ addiu $a0, $s1, 0x58 +.L7F0460D8: +/* 07AC08 7F0460D8 10000009 */ b .L7F046100 +/* 07AC0C 7F0460DC A6200082 */ sh $zero, 0x82($s1) +.L7F0460E0: +/* 07AC10 7F0460E0 926E0001 */ lbu $t6, 1($s3) +/* 07AC14 7F0460E4 8E650014 */ lw $a1, 0x14($s3) +/* 07AC18 7F0460E8 24060009 */ li $a2, 9 +/* 07AC1C 7F0460EC 31CD0008 */ andi $t5, $t6, 8 +/* 07AC20 7F0460F0 000D782B */ sltu $t7, $zero, $t5 +/* 07AC24 7F0460F4 AFAF0010 */ sw $t7, 0x10($sp) +/* 07AC28 7F0460F8 0FC279C0 */ jal sub_GAME_7F09E700 +/* 07AC2C 7F0460FC 2667002C */ addiu $a3, $s3, 0x2c +.L7F046100: +/* 07AC30 7F046100 8FB80664 */ lw $t8, 0x664($sp) +.L7F046104: +/* 07AC34 7F046104 3C128005 */ lui $s2, %hi(D_80048380) +/* 07AC38 7F046108 26528380 */ addiu $s2, %lo(D_80048380) # addiu $s2, $s2, -0x7c80 +/* 07AC3C 7F04610C 13000003 */ beqz $t8, .L7F04611C +/* 07AC40 7F046110 8FA80610 */ lw $t0, 0x610($sp) +/* 07AC44 7F046114 51000020 */ beql $t0, $zero, .L7F046198 +/* 07AC48 7F046118 8E2A0064 */ lw $t2, 0x64($s1) +.L7F04611C: +/* 07AC4C 7F04611C 8E420000 */ lw $v0, ($s2) +/* 07AC50 7F046120 8E0900AC */ lw $t1, 0xac($s0) +/* 07AC54 7F046124 244BFFFE */ addiu $t3, $v0, -2 +/* 07AC58 7F046128 012B082A */ slt $at, $t1, $t3 +/* 07AC5C 7F04612C 50200019 */ beql $at, $zero, .L7F046194 +/* 07AC60 7F046130 AE0200AC */ sw $v0, 0xac($s0) +/* 07AC64 7F046134 82220080 */ lb $v0, 0x80($s1) +/* 07AC68 7F046138 26790008 */ addiu $t9, $s3, 8 +/* 07AC6C 7F04613C 24010003 */ li $at, 3 +/* 07AC70 7F046140 10410004 */ beq $v0, $at, .L7F046154 +/* 07AC74 7F046144 AFB90070 */ sw $t9, 0x70($sp) +/* 07AC78 7F046148 24010002 */ li $at, 2 +/* 07AC7C 7F04614C 14410008 */ bne $v0, $at, .L7F046170 +/* 07AC80 7F046150 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +.L7F046154: +/* 07AC84 7F046154 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07AC88 7F046158 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07AC8C 7F04615C 24050003 */ li $a1, 3 +/* 07AC90 7F046160 0C002382 */ jal play_sfx_a1 +/* 07AC94 7F046164 00003025 */ move $a2, $zero +/* 07AC98 7F046168 10000006 */ b .L7F046184 +/* 07AC9C 7F04616C 00402025 */ move $a0, $v0 +.L7F046170: +/* 07ACA0 7F046170 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07ACA4 7F046174 2405002D */ li $a1, 45 +/* 07ACA8 7F046178 0C002382 */ jal play_sfx_a1 +/* 07ACAC 7F04617C 00003025 */ move $a2, $zero +/* 07ACB0 7F046180 00402025 */ move $a0, $v0 +.L7F046184: +/* 07ACB4 7F046184 0FC14E84 */ jal sub_GAME_7F053A10 +/* 07ACB8 7F046188 8FA50070 */ lw $a1, 0x70($sp) +/* 07ACBC 7F04618C 8E420000 */ lw $v0, ($s2) +/* 07ACC0 7F046190 AE0200AC */ sw $v0, 0xac($s0) +.L7F046194: +/* 07ACC4 7F046194 8E2A0064 */ lw $t2, 0x64($s1) +.L7F046198: +/* 07ACC8 7F046198 3C128005 */ lui $s2, %hi(D_80048380) +/* 07ACCC 7F04619C 26528380 */ addiu $s2, %lo(D_80048380) # addiu $s2, $s2, -0x7c80 +/* 07ACD0 7F0461A0 314C0080 */ andi $t4, $t2, 0x80 +/* 07ACD4 7F0461A4 5180011D */ beql $t4, $zero, .L7F04661C +/* 07ACD8 7F0461A8 8FAD0690 */ lw $t5, 0x690($sp) +/* 07ACDC 7F0461AC 8E0E0000 */ lw $t6, ($s0) +/* 07ACE0 7F0461B0 31CD0400 */ andi $t5, $t6, 0x400 +/* 07ACE4 7F0461B4 51A00119 */ beql $t5, $zero, .L7F04661C +/* 07ACE8 7F0461B8 8FAD0690 */ lw $t5, 0x690($sp) +/* 07ACEC 7F0461BC 8E420000 */ lw $v0, ($s2) +/* 07ACF0 7F0461C0 3C0143C8 */ li $at, 0x43C80000 # 400.000000 +/* 07ACF4 7F0461C4 27B00564 */ addiu $s0, $sp, 0x564 +/* 07ACF8 7F0461C8 304F0007 */ andi $t7, $v0, 7 +/* 07ACFC 7F0461CC 15E00112 */ bnez $t7, .L7F046618 +/* 07AD00 7F0461D0 00002025 */ move $a0, $zero +/* 07AD04 7F0461D4 44810000 */ mtc1 $at, $f0 +/* 07AD08 7F0461D8 C6280058 */ lwc1 $f8, 0x58($s1) +/* 07AD0C 7F0461DC 3C0144E1 */ li $at, 0x44E10000 # 1800.000000 +/* 07AD10 7F0461E0 44812000 */ mtc1 $at, $f4 +/* 07AD14 7F0461E4 46004180 */ add.s $f6, $f8, $f0 +/* 07AD18 7F0461E8 3058000F */ andi $t8, $v0, 0xf +/* 07AD1C 7F0461EC E7A60564 */ swc1 $f6, 0x564($sp) +/* 07AD20 7F0461F0 C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07AD24 7F0461F4 46045201 */ sub.s $f8, $f10, $f4 +/* 07AD28 7F0461F8 E7A80568 */ swc1 $f8, 0x568($sp) +/* 07AD2C 7F0461FC C6260060 */ lwc1 $f6, 0x60($s1) +/* 07AD30 7F046200 17000005 */ bnez $t8, .L7F046218 +/* 07AD34 7F046204 E7A6056C */ swc1 $f6, 0x56c($sp) +/* 07AD38 7F046208 C7AA056C */ lwc1 $f10, 0x56c($sp) +/* 07AD3C 7F04620C 46005100 */ add.s $f4, $f10, $f0 +/* 07AD40 7F046210 10000004 */ b .L7F046224 +/* 07AD44 7F046214 E7A4056C */ swc1 $f4, 0x56c($sp) +.L7F046218: +/* 07AD48 7F046218 C7A8056C */ lwc1 $f8, 0x56c($sp) +/* 07AD4C 7F04621C 46004181 */ sub.s $f6, $f8, $f0 +/* 07AD50 7F046220 E7A6056C */ swc1 $f6, 0x56c($sp) +.L7F046224: +/* 07AD54 7F046224 8E220010 */ lw $v0, 0x10($s1) +/* 07AD58 7F046228 02002825 */ move $a1, $s0 +/* 07AD5C 7F04622C 24070014 */ li $a3, 20 +/* 07AD60 7F046230 8C460014 */ lw $a2, 0x14($v0) +/* 07AD64 7F046234 2448002C */ addiu $t0, $v0, 0x2c +/* 07AD68 7F046238 AFA80018 */ sw $t0, 0x18($sp) +/* 07AD6C 7F04623C AFA0001C */ sw $zero, 0x1c($sp) +/* 07AD70 7F046240 AFA00014 */ sw $zero, 0x14($sp) +/* 07AD74 7F046244 0FC27094 */ jal sub_GAME_7F09C250 +/* 07AD78 7F046248 AFA00010 */ sw $zero, 0x10($sp) +/* 07AD7C 7F04624C 8E490000 */ lw $t1, ($s2) +/* 07AD80 7F046250 24010028 */ li $at, 40 +/* 07AD84 7F046254 02002025 */ move $a0, $s0 +/* 07AD88 7F046258 0121001A */ div $zero, $t1, $at +/* 07AD8C 7F04625C 00005810 */ mfhi $t3 +/* 07AD90 7F046260 556000EE */ bnezl $t3, .L7F04661C +/* 07AD94 7F046264 8FAD0690 */ lw $t5, 0x690($sp) +/* 07AD98 7F046268 8E220010 */ lw $v0, 0x10($s1) +/* 07AD9C 7F04626C 24190001 */ li $t9, 1 +/* 07ADA0 7F046270 2406000A */ li $a2, 10 +/* 07ADA4 7F046274 8C450014 */ lw $a1, 0x14($v0) +/* 07ADA8 7F046278 AFB90010 */ sw $t9, 0x10($sp) +/* 07ADAC 7F04627C 0FC279C0 */ jal sub_GAME_7F09E700 +/* 07ADB0 7F046280 2447002C */ addiu $a3, $v0, 0x2c +/* 07ADB4 7F046284 100000E5 */ b .L7F04661C +/* 07ADB8 7F046288 8FAD0690 */ lw $t5, 0x690($sp) +/* 07ADBC 7F04628C C6000060 */ lwc1 $f0, 0x60($s0) +.L7F046290: +/* 07ADC0 7F046290 44815000 */ mtc1 $at, $f10 +/* 07ADC4 7F046294 24120001 */ li $s2, 1 +/* 07ADC8 7F046298 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07ADCC 7F04629C 460A003C */ c.lt.s $f0, $f10 +/* 07ADD0 7F0462A0 26040068 */ addiu $a0, $s0, 0x68 +/* 07ADD4 7F0462A4 26050078 */ addiu $a1, $s0, 0x78 +/* 07ADD8 7F0462A8 45020031 */ bc1fl .L7F046370 +/* 07ADDC 7F0462AC C60A0004 */ lwc1 $f10, 4($s0) +/* 07ADE0 7F0462B0 C6020064 */ lwc1 $f2, 0x64($s0) +/* 07ADE4 7F0462B4 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07ADE8 7F0462B8 3C0A8005 */ lui $t2, %hi(clock_timer) +/* 07ADEC 7F0462BC 3C018005 */ lui $at, %hi(D_80052AB0) +/* 07ADF0 7F0462C0 46041202 */ mul.s $f8, $f2, $f4 +/* 07ADF4 7F0462C4 27B20550 */ addiu $s2, $sp, 0x550 +/* 07ADF8 7F0462C8 46080180 */ add.s $f6, $f0, $f8 +/* 07ADFC 7F0462CC E6060060 */ swc1 $f6, 0x60($s0) +/* 07AE00 7F0462D0 8D4A8374 */ lw $t2, %lo(clock_timer)($t2) +/* 07AE04 7F0462D4 59400005 */ blezl $t2, .L7F0462EC +/* 07AE08 7F0462D8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AE0C 7F0462DC C42A2AB0 */ lwc1 $f10, %lo(D_80052AB0)($at) +/* 07AE10 7F0462E0 460A1102 */ mul.s $f4, $f2, $f10 +/* 07AE14 7F0462E4 E6040064 */ swc1 $f4, 0x64($s0) +/* 07AE18 7F0462E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F0462EC: +/* 07AE1C 7F0462EC 44814000 */ mtc1 $at, $f8 +/* 07AE20 7F0462F0 C6000060 */ lwc1 $f0, 0x60($s0) +/* 07AE24 7F0462F4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AE28 7F0462F8 4600403C */ c.lt.s $f8, $f0 +/* 07AE2C 7F0462FC 00000000 */ nop +/* 07AE30 7F046300 45030006 */ bc1tl .L7F04631C +/* 07AE34 7F046304 44813000 */ mtc1 $at, $f6 +/* 07AE38 7F046308 8E0C0000 */ lw $t4, ($s0) +/* 07AE3C 7F04630C 318E0008 */ andi $t6, $t4, 8 +/* 07AE40 7F046310 51C00006 */ beql $t6, $zero, .L7F04632C +/* 07AE44 7F046314 44060000 */ mfc1 $a2, $f0 +/* 07AE48 7F046318 44813000 */ mtc1 $at, $f6 +.L7F04631C: +/* 07AE4C 7F04631C 00000000 */ nop +/* 07AE50 7F046320 E6060060 */ swc1 $f6, 0x60($s0) +/* 07AE54 7F046324 C6000060 */ lwc1 $f0, 0x60($s0) +/* 07AE58 7F046328 44060000 */ mfc1 $a2, $f0 +.L7F04632C: +/* 07AE5C 7F04632C 0FC16E82 */ jal quaternion_slerp +/* 07AE60 7F046330 02403825 */ move $a3, $s2 +/* 07AE64 7F046334 26250018 */ addiu $a1, $s1, 0x18 +/* 07AE68 7F046338 AFA50070 */ sw $a1, 0x70($sp) +/* 07AE6C 7F04633C 0FC16D8A */ jal quaternion_to_matrix +/* 07AE70 7F046340 02402025 */ move $a0, $s2 +/* 07AE74 7F046344 C60C00C0 */ lwc1 $f12, 0xc0($s0) +/* 07AE78 7F046348 0FC1626D */ jal matrix_column_1_scalar_multiply +/* 07AE7C 7F04634C 8FA50070 */ lw $a1, 0x70($sp) +/* 07AE80 7F046350 C60C00C4 */ lwc1 $f12, 0xc4($s0) +/* 07AE84 7F046354 0FC16279 */ jal matrix_column_2_scalar_multiply +/* 07AE88 7F046358 8FA50070 */ lw $a1, 0x70($sp) +/* 07AE8C 7F04635C C60C00C8 */ lwc1 $f12, 0xc8($s0) +/* 07AE90 7F046360 0FC16293 */ jal matrix_column_3_scalar_multiply_2 +/* 07AE94 7F046364 8FA50070 */ lw $a1, 0x70($sp) +/* 07AE98 7F046368 00009025 */ move $s2, $zero +/* 07AE9C 7F04636C C60A0004 */ lwc1 $f10, 4($s0) +.L7F046370: +/* 07AEA0 7F046370 460AB032 */ c.eq.s $f22, $f10 +/* 07AEA4 7F046374 00000000 */ nop +/* 07AEA8 7F046378 4502000F */ bc1fl .L7F0463B8 +/* 07AEAC 7F04637C 8E0D0000 */ lw $t5, ($s0) +/* 07AEB0 7F046380 C604000C */ lwc1 $f4, 0xc($s0) +/* 07AEB4 7F046384 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AEB8 7F046388 4604B032 */ c.eq.s $f22, $f4 +/* 07AEBC 7F04638C 00000000 */ nop +/* 07AEC0 7F046390 45020009 */ bc1fl .L7F0463B8 +/* 07AEC4 7F046394 8E0D0000 */ lw $t5, ($s0) +/* 07AEC8 7F046398 C6080060 */ lwc1 $f8, 0x60($s0) +/* 07AECC 7F04639C 44813000 */ mtc1 $at, $f6 +/* 07AED0 7F0463A0 00000000 */ nop +/* 07AED4 7F0463A4 4606403C */ c.lt.s $f8, $f6 +/* 07AED8 7F0463A8 00000000 */ nop +/* 07AEDC 7F0463AC 45000088 */ bc1f .L7F0465D0 +/* 07AEE0 7F0463B0 00000000 */ nop +/* 07AEE4 7F0463B4 8E0D0000 */ lw $t5, ($s0) +.L7F0463B8: +/* 07AEE8 7F0463B8 02202025 */ move $a0, $s1 +/* 07AEEC 7F0463BC 26380018 */ addiu $t8, $s1, 0x18 +/* 07AEF0 7F0463C0 31AF0008 */ andi $t7, $t5, 8 +/* 07AEF4 7F0463C4 15E00082 */ bnez $t7, .L7F0465D0 +/* 07AEF8 7F0463C8 00000000 */ nop +/* 07AEFC 7F0463CC AFB80070 */ sw $t8, 0x70($sp) +/* 07AF00 7F0463D0 0FC1001E */ jal sub_GAME_7F040078 +/* 07AF04 7F0463D4 00009025 */ move $s2, $zero +/* 07AF08 7F0463D8 3C038005 */ lui $v1, %hi(clock_timer) +/* 07AF0C 7F0463DC 8C638374 */ lw $v1, %lo(clock_timer)($v1) +/* 07AF10 7F0463E0 AFA2054C */ sw $v0, 0x54c($sp) +/* 07AF14 7F0463E4 00002025 */ move $a0, $zero +/* 07AF18 7F0463E8 18600048 */ blez $v1, .L7F04650C +/* 07AF1C 7F0463EC 3C018005 */ lui $at, %hi(D_80052AB4) +/* 07AF20 7F0463F0 C42E2AB4 */ lwc1 $f14, %lo(D_80052AB4)($at) +/* 07AF24 7F0463F4 C7AA0694 */ lwc1 $f10, 0x694($sp) +.L7F0463F8: +/* 07AF28 7F0463F8 C6040004 */ lwc1 $f4, 4($s0) +/* 07AF2C 7F0463FC C7A6069C */ lwc1 $f6, 0x69c($sp) +/* 07AF30 7F046400 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AF34 7F046404 46045200 */ add.s $f8, $f10, $f4 +/* 07AF38 7F046408 E7A80694 */ swc1 $f8, 0x694($sp) +/* 07AF3C 7F04640C C60A000C */ lwc1 $f10, 0xc($s0) +/* 07AF40 7F046410 460A3100 */ add.s $f4, $f6, $f10 +/* 07AF44 7F046414 44813000 */ mtc1 $at, $f6 +/* 07AF48 7F046418 E7A4069C */ swc1 $f4, 0x69c($sp) +/* 07AF4C 7F04641C C6080060 */ lwc1 $f8, 0x60($s0) +/* 07AF50 7F046420 4608303E */ c.le.s $f6, $f8 +/* 07AF54 7F046424 00000000 */ nop +/* 07AF58 7F046428 45020035 */ bc1fl .L7F046500 +/* 07AF5C 7F04642C 24840001 */ addiu $a0, $a0, 1 +/* 07AF60 7F046430 C60A0094 */ lwc1 $f10, 0x94($s0) +/* 07AF64 7F046434 460AB03C */ c.lt.s $f22, $f10 +/* 07AF68 7F046438 00000000 */ nop +/* 07AF6C 7F04643C 45020027 */ bc1fl .L7F0464DC +/* 07AF70 7F046440 C6060004 */ lwc1 $f6, 4($s0) +/* 07AF74 7F046444 C600000C */ lwc1 $f0, 0xc($s0) +/* 07AF78 7F046448 C6020004 */ lwc1 $f2, 4($s0) +/* 07AF7C 7F04644C AFA40548 */ sw $a0, 0x548($sp) +/* 07AF80 7F046450 46000102 */ mul.s $f4, $f0, $f0 +/* 07AF84 7F046454 00000000 */ nop +/* 07AF88 7F046458 46021202 */ mul.s $f8, $f2, $f2 +/* 07AF8C 7F04645C 0C007DF8 */ jal sqrtf +/* 07AF90 7F046460 46082300 */ add.s $f12, $f4, $f8 +/* 07AF94 7F046464 3C018005 */ lui $at, %hi(D_80052AB8) +/* 07AF98 7F046468 C42E2AB8 */ lwc1 $f14, %lo(D_80052AB8)($at) +/* 07AF9C 7F04646C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07AFA0 7F046470 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07AFA4 7F046474 C6060094 */ lwc1 $f6, 0x94($s0) +/* 07AFA8 7F046478 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AFAC 7F04647C 44814000 */ mtc1 $at, $f8 +/* 07AFB0 7F046480 460A3102 */ mul.s $f4, $f6, $f10 +/* 07AFB4 7F046484 8FA40548 */ lw $a0, 0x548($sp) +/* 07AFB8 7F046488 3C038005 */ lui $v1, %hi(clock_timer) +/* 07AFBC 7F04648C 46002303 */ div.s $f12, $f4, $f0 +/* 07AFC0 7F046490 460C403E */ c.le.s $f8, $f12 +/* 07AFC4 7F046494 00000000 */ nop +/* 07AFC8 7F046498 45020005 */ bc1fl .L7F0464B0 +/* 07AFCC 7F04649C C6020004 */ lwc1 $f2, 4($s0) +/* 07AFD0 7F0464A0 E6160004 */ swc1 $f22, 4($s0) +/* 07AFD4 7F0464A4 1000000A */ b .L7F0464D0 +/* 07AFD8 7F0464A8 E616000C */ swc1 $f22, 0xc($s0) +/* 07AFDC 7F0464AC C6020004 */ lwc1 $f2, 4($s0) +.L7F0464B0: +/* 07AFE0 7F0464B0 C600000C */ lwc1 $f0, 0xc($s0) +/* 07AFE4 7F0464B4 460C1182 */ mul.s $f6, $f2, $f12 +/* 07AFE8 7F0464B8 00000000 */ nop +/* 07AFEC 7F0464BC 460C0102 */ mul.s $f4, $f0, $f12 +/* 07AFF0 7F0464C0 46061281 */ sub.s $f10, $f2, $f6 +/* 07AFF4 7F0464C4 46040201 */ sub.s $f8, $f0, $f4 +/* 07AFF8 7F0464C8 E60A0004 */ swc1 $f10, 4($s0) +/* 07AFFC 7F0464CC E608000C */ swc1 $f8, 0xc($s0) +.L7F0464D0: +/* 07B000 7F0464D0 1000000A */ b .L7F0464FC +/* 07B004 7F0464D4 8C638374 */ lw $v1, %lo(clock_timer)($v1) +/* 07B008 7F0464D8 C6060004 */ lwc1 $f6, 4($s0) +.L7F0464DC: +/* 07B00C 7F0464DC C604000C */ lwc1 $f4, 0xc($s0) +/* 07B010 7F0464E0 3C038005 */ lui $v1, %hi(clock_timer) +/* 07B014 7F0464E4 460E3282 */ mul.s $f10, $f6, $f14 +/* 07B018 7F0464E8 00000000 */ nop +/* 07B01C 7F0464EC 460E2202 */ mul.s $f8, $f4, $f14 +/* 07B020 7F0464F0 E60A0004 */ swc1 $f10, 4($s0) +/* 07B024 7F0464F4 E608000C */ swc1 $f8, 0xc($s0) +/* 07B028 7F0464F8 8C638374 */ lw $v1, %lo(clock_timer)($v1) +.L7F0464FC: +/* 07B02C 7F0464FC 24840001 */ addiu $a0, $a0, 1 +.L7F046500: +/* 07B030 7F046500 0083082A */ slt $at, $a0, $v1 +/* 07B034 7F046504 5420FFBC */ bnezl $at, .L7F0463F8 +/* 07B038 7F046508 C7AA0694 */ lwc1 $f10, 0x694($sp) +.L7F04650C: +/* 07B03C 7F04650C 02202025 */ move $a0, $s1 +/* 07B040 7F046510 27A50694 */ addiu $a1, $sp, 0x694 +/* 07B044 7F046514 27A60530 */ addiu $a2, $sp, 0x530 +/* 07B048 7F046518 27A7053C */ addiu $a3, $sp, 0x53c +/* 07B04C 7F04651C AFA00010 */ sw $zero, 0x10($sp) +/* 07B050 7F046520 0FC10BAD */ jal sub_GAME_7F042EB4 +/* 07B054 7F046524 AFA00014 */ sw $zero, 0x14($sp) +/* 07B058 7F046528 24080001 */ li $t0, 1 +/* 07B05C 7F04652C AFA80690 */ sw $t0, 0x690($sp) +/* 07B060 7F046530 8E660010 */ lw $a2, 0x10($s3) +/* 07B064 7F046534 8E650008 */ lw $a1, 8($s3) +/* 07B068 7F046538 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 07B06C 7F04653C 8E640014 */ lw $a0, 0x14($s3) +/* 07B070 7F046540 46000506 */ mov.s $f20, $f0 +/* 07B074 7F046544 8FA4054C */ lw $a0, 0x54c($sp) +/* 07B078 7F046548 0FC0FA6F */ jal sub_GAME_7F03E9BC +/* 07B07C 7F04654C 8FA50070 */ lw $a1, 0x70($sp) +/* 07B080 7F046550 3C018005 */ lui $at, %hi(D_80052ABC) +/* 07B084 7F046554 C42E2ABC */ lwc1 $f14, %lo(D_80052ABC)($at) +/* 07B088 7F046558 4600A181 */ sub.s $f6, $f20, $f0 +/* 07B08C 7F04655C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07B090 7F046560 44815000 */ mtc1 $at, $f10 +/* 07B094 7F046564 3C018005 */ lui $at, %hi(D_80052AC0) +/* 07B098 7F046568 460A3300 */ add.s $f12, $f6, $f10 +/* 07B09C 7F04656C E66C000C */ swc1 $f12, 0xc($s3) +/* 07B0A0 7F046570 E62C005C */ swc1 $f12, 0x5c($s1) +/* 07B0A4 7F046574 C6020004 */ lwc1 $f2, 4($s0) +/* 07B0A8 7F046578 460E103C */ c.lt.s $f2, $f14 +/* 07B0AC 7F04657C 00000000 */ nop +/* 07B0B0 7F046580 45000013 */ bc1f .L7F0465D0 +/* 07B0B4 7F046584 00000000 */ nop +/* 07B0B8 7F046588 C4242AC0 */ lwc1 $f4, %lo(D_80052AC0)($at) +/* 07B0BC 7F04658C 4602203C */ c.lt.s $f4, $f2 +/* 07B0C0 7F046590 00000000 */ nop +/* 07B0C4 7F046594 4500000E */ bc1f .L7F0465D0 +/* 07B0C8 7F046598 00000000 */ nop +/* 07B0CC 7F04659C C600000C */ lwc1 $f0, 0xc($s0) +/* 07B0D0 7F0465A0 3C018005 */ lui $at, %hi(D_80052AC4) +/* 07B0D4 7F0465A4 460E003C */ c.lt.s $f0, $f14 +/* 07B0D8 7F0465A8 00000000 */ nop +/* 07B0DC 7F0465AC 45000008 */ bc1f .L7F0465D0 +/* 07B0E0 7F0465B0 00000000 */ nop +/* 07B0E4 7F0465B4 C4282AC4 */ lwc1 $f8, %lo(D_80052AC4)($at) +/* 07B0E8 7F0465B8 4600403C */ c.lt.s $f8, $f0 +/* 07B0EC 7F0465BC 00000000 */ nop +/* 07B0F0 7F0465C0 45000003 */ bc1f .L7F0465D0 +/* 07B0F4 7F0465C4 00000000 */ nop +/* 07B0F8 7F0465C8 E616000C */ swc1 $f22, 0xc($s0) +/* 07B0FC 7F0465CC E6160004 */ swc1 $f22, 4($s0) +.L7F0465D0: +/* 07B100 7F0465D0 16400005 */ bnez $s2, .L7F0465E8 +/* 07B104 7F0465D4 00000000 */ nop +/* 07B108 7F0465D8 8E090000 */ lw $t1, ($s0) +/* 07B10C 7F0465DC 312B0008 */ andi $t3, $t1, 8 +/* 07B110 7F0465E0 5160000E */ beql $t3, $zero, .L7F04661C +/* 07B114 7F0465E4 8FAD0690 */ lw $t5, 0x690($sp) +.L7F0465E8: +/* 07B118 7F0465E8 0FC0FEDC */ jal sub_GAME_7F03FB70 +/* 07B11C 7F0465EC 02002025 */ move $a0, $s0 +/* 07B120 7F0465F0 8E390064 */ lw $t9, 0x64($s1) +/* 07B124 7F0465F4 2401FF7F */ li $at, -129 +/* 07B128 7F0465F8 AE20006C */ sw $zero, 0x6c($s1) +/* 07B12C 7F0465FC 03215024 */ and $t2, $t9, $at +/* 07B130 7F046600 AE2A0064 */ sw $t2, 0x64($s1) +/* 07B134 7F046604 92620001 */ lbu $v0, 1($s3) +/* 07B138 7F046608 304C0008 */ andi $t4, $v0, 8 +/* 07B13C 7F04660C 11800002 */ beqz $t4, .L7F046618 +/* 07B140 7F046610 344E0010 */ ori $t6, $v0, 0x10 +/* 07B144 7F046614 A26E0001 */ sb $t6, 1($s3) +.L7F046618: +/* 07B148 7F046618 8FAD0690 */ lw $t5, 0x690($sp) +.L7F04661C: +/* 07B14C 7F04661C 11A0000B */ beqz $t5, .L7F04664C +/* 07B150 7F046620 262F0058 */ addiu $t7, $s1, 0x58 +/* 07B154 7F046624 AFAF0070 */ sw $t7, 0x70($sp) +/* 07B158 7F046628 0FC10121 */ jal sub_GAME_7F040484 +/* 07B15C 7F04662C 02202025 */ move $a0, $s1 +/* 07B160 7F046630 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 07B164 7F046634 02202025 */ move $a0, $s1 +/* 07B168 7F046638 8E240010 */ lw $a0, 0x10($s1) +/* 07B16C 7F04663C 0FC100AD */ jal sub_GAME_7F0402B4 +/* 07B170 7F046640 2625007C */ addiu $a1, $s1, 0x7c +/* 07B174 7F046644 0FC146F3 */ jal detonate_proxmine_In_range +/* 07B178 7F046648 8FA40070 */ lw $a0, 0x70($sp) +.L7F04664C: +/* 07B17C 7F04664C 92220003 */ lbu $v0, 3($s1) +/* 07B180 7F046650 24010001 */ li $at, 1 +/* 07B184 7F046654 54410052 */ bnel $v0, $at, .L7F0467A0 +/* 07B188 7F046658 24010006 */ li $at, 6 +/* 07B18C 7F04665C 8E700004 */ lw $s0, 4($s3) +/* 07B190 7F046660 3C188005 */ lui $t8, %hi(global_timer) +/* 07B194 7F046664 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07B198 7F046668 E7A6067C */ swc1 $f6, 0x67c($sp) +/* 07B19C 7F04666C 8E0200EC */ lw $v0, 0xec($s0) +/* 07B1A0 7F046670 58400012 */ blezl $v0, .L7F0466BC +/* 07B1A4 7F046674 820C00BC */ lb $t4, 0xbc($s0) +/* 07B1A8 7F046678 8F18837C */ lw $t8, %lo(global_timer)($t8) +/* 07B1AC 7F04667C 8E0800A0 */ lw $t0, 0xa0($s0) +/* 07B1B0 7F046680 03084823 */ subu $t1, $t8, $t0 +/* 07B1B4 7F046684 0049082A */ slt $at, $v0, $t1 +/* 07B1B8 7F046688 5020000C */ beql $at, $zero, .L7F0466BC +/* 07B1BC 7F04668C 820C00BC */ lb $t4, 0xbc($s0) +/* 07B1C0 7F046690 820B00BC */ lb $t3, 0xbc($s0) +/* 07B1C4 7F046694 55600009 */ bnezl $t3, .L7F0466BC +/* 07B1C8 7F046698 820C00BC */ lb $t4, 0xbc($s0) +/* 07B1CC 7F04669C 8E190008 */ lw $t9, 8($s0) +/* 07B1D0 7F0466A0 02002025 */ move $a0, $s0 +/* 07B1D4 7F0466A4 00195000 */ sll $t2, $t9, 0 +/* 07B1D8 7F0466A8 05420004 */ bltzl $t2, .L7F0466BC +/* 07B1DC 7F0466AC 820C00BC */ lb $t4, 0xbc($s0) +/* 07B1E0 7F0466B0 0FC15262 */ jal set_door_state +/* 07B1E4 7F0466B4 24050002 */ li $a1, 2 +/* 07B1E8 7F0466B8 820C00BC */ lb $t4, 0xbc($s0) +.L7F0466BC: +/* 07B1EC 7F0466BC 24010003 */ li $at, 3 +/* 07B1F0 7F0466C0 5581001B */ bnel $t4, $at, .L7F046730 +/* 07B1F4 7F0466C4 960D009A */ lhu $t5, 0x9a($s0) +/* 07B1F8 7F0466C8 8E0200C8 */ lw $v0, 0xc8($s0) +/* 07B1FC 7F0466CC 24030001 */ li $v1, 1 +/* 07B200 7F0466D0 02002025 */ move $a0, $s0 +/* 07B204 7F0466D4 10400011 */ beqz $v0, .L7F04671C +/* 07B208 7F0466D8 00000000 */ nop +/* 07B20C 7F0466DC 1050000F */ beq $v0, $s0, .L7F04671C +/* 07B210 7F0466E0 00000000 */ nop +/* 07B214 7F0466E4 804E00BC */ lb $t6, 0xbc($v0) +.L7F0466E8: +/* 07B218 7F0466E8 55C00007 */ bnezl $t6, .L7F046708 +/* 07B21C 7F0466EC 00001825 */ move $v1, $zero +/* 07B220 7F0466F0 C44A00B4 */ lwc1 $f10, 0xb4($v0) +/* 07B224 7F0466F4 460AB03C */ c.lt.s $f22, $f10 +/* 07B228 7F0466F8 00000000 */ nop +/* 07B22C 7F0466FC 45020003 */ bc1fl .L7F04670C +/* 07B230 7F046700 8C4200C8 */ lw $v0, 0xc8($v0) +/* 07B234 7F046704 00001825 */ move $v1, $zero +.L7F046708: +/* 07B238 7F046708 8C4200C8 */ lw $v0, 0xc8($v0) +.L7F04670C: +/* 07B23C 7F04670C 10400003 */ beqz $v0, .L7F04671C +/* 07B240 7F046710 00000000 */ nop +/* 07B244 7F046714 5450FFF4 */ bnel $v0, $s0, .L7F0466E8 +/* 07B248 7F046718 804E00BC */ lb $t6, 0xbc($v0) +.L7F04671C: +/* 07B24C 7F04671C 50600004 */ beql $v1, $zero, .L7F046730 +/* 07B250 7F046720 960D009A */ lhu $t5, 0x9a($s0) +/* 07B254 7F046724 0FC15229 */ jal sub_GAME_7F0548A4 +/* 07B258 7F046728 24050001 */ li $a1, 1 +/* 07B25C 7F04672C 960D009A */ lhu $t5, 0x9a($s0) +.L7F046730: +/* 07B260 7F046730 24010008 */ li $at, 8 +/* 07B264 7F046734 15A1000B */ bne $t5, $at, .L7F046764 +/* 07B268 7F046738 00000000 */ nop +/* 07B26C 7F04673C 0FC15288 */ jal sub_GAME_7F054A20 +/* 07B270 7F046740 02002025 */ move $a0, $s0 +/* 07B274 7F046744 10400007 */ beqz $v0, .L7F046764 +/* 07B278 7F046748 00000000 */ nop +/* 07B27C 7F04674C 0FC0F9C6 */ jal sub_GAME_7F03E718 +/* 07B280 7F046750 02002025 */ move $a0, $s0 +/* 07B284 7F046754 10400003 */ beqz $v0, .L7F046764 +/* 07B288 7F046758 00000000 */ nop +/* 07B28C 7F04675C 0FC15667 */ jal sub_GAME_7F05599C +/* 07B290 7F046760 02602025 */ move $a0, $s3 +.L7F046764: +/* 07B294 7F046764 3C188005 */ lui $t8, %hi(global_timer) +/* 07B298 7F046768 8F18837C */ lw $t8, %lo(global_timer)($t8) +/* 07B29C 7F04676C 8E0F00FC */ lw $t7, 0xfc($s0) +/* 07B2A0 7F046770 3C088005 */ lui $t0, %hi(clock_timer) +/* 07B2A4 7F046774 01F8082A */ slt $at, $t7, $t8 +/* 07B2A8 7F046778 14200004 */ bnez $at, .L7F04678C +/* 07B2AC 7F04677C 00000000 */ nop +/* 07B2B0 7F046780 8D088374 */ lw $t0, %lo(clock_timer)($t0) +/* 07B2B4 7F046784 550006AA */ bnezl $t0, .L7F048230 +/* 07B2B8 7F046788 92220003 */ lbu $v0, 3($s1) +.L7F04678C: +/* 07B2BC 7F04678C 0FC153ED */ jal sub_GAME_7F054FB4 +/* 07B2C0 7F046790 02002025 */ move $a0, $s0 +/* 07B2C4 7F046794 100006A6 */ b .L7F048230 +/* 07B2C8 7F046798 92220003 */ lbu $v0, 3($s1) +/* 07B2CC 7F04679C 24010006 */ li $at, 6 +.L7F0467A0: +/* 07B2D0 7F0467A0 54410130 */ bnel $v0, $at, .L7F046C64 +/* 07B2D4 7F0467A4 2401000D */ li $at, 13 +/* 07B2D8 7F0467A8 8E290008 */ lw $t1, 8($s1) +/* 07B2DC 7F0467AC 000958C0 */ sll $t3, $t1, 3 +/* 07B2E0 7F0467B0 0562012C */ bltzl $t3, .L7F046C64 +/* 07B2E4 7F0467B4 2401000D */ li $at, 13 +/* 07B2E8 7F0467B8 8E700004 */ lw $s0, 4($s3) +/* 07B2EC 7F0467BC 8E1900D4 */ lw $t9, 0xd4($s0) +/* 07B2F0 7F0467C0 53200004 */ beql $t9, $zero, .L7F0467D4 +/* 07B2F4 7F0467C4 C61200D0 */ lwc1 $f18, 0xd0($s0) +/* 07B2F8 7F0467C8 10000002 */ b .L7F0467D4 +/* 07B2FC 7F0467CC C61200CC */ lwc1 $f18, 0xcc($s0) +/* 07B300 7F0467D0 C61200D0 */ lwc1 $f18, 0xd0($s0) +.L7F0467D4: +/* 07B304 7F0467D4 0FC225E6 */ jal get_curplayer_positiondata +/* 07B308 7F0467D8 E7B20518 */ swc1 $f18, 0x518($sp) +/* 07B30C 7F0467DC AFA20514 */ sw $v0, 0x514($sp) +/* 07B310 7F0467E0 C6280058 */ lwc1 $f8, 0x58($s1) +/* 07B314 7F0467E4 C4440008 */ lwc1 $f4, 8($v0) +/* 07B318 7F0467E8 C60000E8 */ lwc1 $f0, 0xe8($s0) +/* 07B31C 7F0467EC C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07B320 7F0467F0 46082301 */ sub.s $f12, $f4, $f8 +/* 07B324 7F0467F4 C446000C */ lwc1 $f6, 0xc($v0) +/* 07B328 7F0467F8 C6280060 */ lwc1 $f8, 0x60($s1) +/* 07B32C 7F0467FC 4600B03C */ c.lt.s $f22, $f0 +/* 07B330 7F046800 C4440010 */ lwc1 $f4, 0x10($v0) +/* 07B334 7F046804 C7B20518 */ lwc1 $f18, 0x518($sp) +/* 07B338 7F046808 24120001 */ li $s2, 1 +/* 07B33C 7F04680C 460A3081 */ sub.s $f2, $f6, $f10 +/* 07B340 7F046810 4500000E */ bc1f .L7F04684C +/* 07B344 7F046814 46082381 */ sub.s $f14, $f4, $f8 +/* 07B348 7F046818 46000182 */ mul.s $f6, $f0, $f0 +/* 07B34C 7F04681C 00000000 */ nop +/* 07B350 7F046820 460C6282 */ mul.s $f10, $f12, $f12 +/* 07B354 7F046824 00000000 */ nop +/* 07B358 7F046828 46021102 */ mul.s $f4, $f2, $f2 +/* 07B35C 7F04682C 46045200 */ add.s $f8, $f10, $f4 +/* 07B360 7F046830 460E7282 */ mul.s $f10, $f14, $f14 +/* 07B364 7F046834 460A4100 */ add.s $f4, $f8, $f10 +/* 07B368 7F046838 4604303C */ c.lt.s $f6, $f4 +/* 07B36C 7F04683C 00000000 */ nop +/* 07B370 7F046840 45000002 */ bc1f .L7F04684C +/* 07B374 7F046844 00000000 */ nop +/* 07B378 7F046848 00009025 */ move $s2, $zero +.L7F04684C: +/* 07B37C 7F04684C 8E2A0008 */ lw $t2, 8($s1) +/* 07B380 7F046850 000A6080 */ sll $t4, $t2, 2 +/* 07B384 7F046854 05810002 */ bgez $t4, .L7F046860 +/* 07B388 7F046858 00000000 */ nop +/* 07B38C 7F04685C 00009025 */ move $s2, $zero +.L7F046860: +/* 07B390 7F046860 1240003A */ beqz $s2, .L7F04694C +/* 07B394 7F046864 00000000 */ nop +/* 07B398 7F046868 0FC16A8C */ jal atan2f +/* 07B39C 7F04686C E7B20518 */ swc1 $f18, 0x518($sp) +/* 07B3A0 7F046870 C60200C8 */ lwc1 $f2, 0xc8($s0) +/* 07B3A4 7F046874 C7B20518 */ lwc1 $f18, 0x518($sp) +/* 07B3A8 7F046878 3C018005 */ lui $at, %hi(D_80052ACC) +/* 07B3AC 7F04687C 4616103C */ c.lt.s $f2, $f22 +/* 07B3B0 7F046880 00000000 */ nop +/* 07B3B4 7F046884 45000005 */ bc1f .L7F04689C +/* 07B3B8 7F046888 00000000 */ nop +/* 07B3BC 7F04688C 3C018005 */ lui $at, %hi(D_80052AC8) +/* 07B3C0 7F046890 C4342AC8 */ lwc1 $f20, %lo(D_80052AC8)($at) +/* 07B3C4 7F046894 10000007 */ b .L7F0468B4 +/* 07B3C8 7F046898 46141080 */ add.s $f2, $f2, $f20 +.L7F04689C: +/* 07B3CC 7F04689C C4342ACC */ lwc1 $f20, %lo(D_80052ACC)($at) +/* 07B3D0 7F0468A0 4602A03E */ c.le.s $f20, $f2 +/* 07B3D4 7F0468A4 00000000 */ nop +/* 07B3D8 7F0468A8 45020003 */ bc1fl .L7F0468B8 +/* 07B3DC 7F0468AC C60800C4 */ lwc1 $f8, 0xc4($s0) +/* 07B3E0 7F0468B0 46141081 */ sub.s $f2, $f2, $f20 +.L7F0468B4: +/* 07B3E4 7F0468B4 C60800C4 */ lwc1 $f8, 0xc4($s0) +.L7F0468B8: +/* 07B3E8 7F0468B8 3C018005 */ lui $at, %hi(D_80052AD0) +/* 07B3EC 7F0468BC 46081080 */ add.s $f2, $f2, $f8 +/* 07B3F0 7F0468C0 4602A03E */ c.le.s $f20, $f2 +/* 07B3F4 7F0468C4 00000000 */ nop +/* 07B3F8 7F0468C8 45020003 */ bc1fl .L7F0468D8 +/* 07B3FC 7F0468CC 4602003C */ c.lt.s $f0, $f2 +/* 07B400 7F0468D0 46141081 */ sub.s $f2, $f2, $f20 +/* 07B404 7F0468D4 4602003C */ c.lt.s $f0, $f2 +.L7F0468D8: +/* 07B408 7F0468D8 46020381 */ sub.s $f14, $f0, $f2 +/* 07B40C 7F0468DC 45000002 */ bc1f .L7F0468E8 +/* 07B410 7F0468E0 46007306 */ mov.s $f12, $f14 +/* 07B414 7F0468E4 46147300 */ add.s $f12, $f14, $f20 +.L7F0468E8: +/* 07B418 7F0468E8 C4202AD0 */ lwc1 $f0, %lo(D_80052AD0)($at) +/* 07B41C 7F0468EC 3C018005 */ lui $at, %hi(D_80052AD4) +/* 07B420 7F0468F0 46006301 */ sub.s $f12, $f12, $f0 +/* 07B424 7F0468F4 4616603C */ c.lt.s $f12, $f22 +/* 07B428 7F0468F8 00000000 */ nop +/* 07B42C 7F0468FC 45020003 */ bc1fl .L7F04690C +/* 07B430 7F046900 460C003C */ c.lt.s $f0, $f12 +/* 07B434 7F046904 46146300 */ add.s $f12, $f12, $f20 +/* 07B438 7F046908 460C003C */ c.lt.s $f0, $f12 +.L7F04690C: +/* 07B43C 7F04690C 00000000 */ nop +/* 07B440 7F046910 45000002 */ bc1f .L7F04691C +/* 07B444 7F046914 00000000 */ nop +/* 07B448 7F046918 46146301 */ sub.s $f12, $f12, $f20 +.L7F04691C: +/* 07B44C 7F04691C C42A2AD4 */ lwc1 $f10, %lo(D_80052AD4)($at) +/* 07B450 7F046920 3C018005 */ lui $at, %hi(D_80052AD8) +/* 07B454 7F046924 460C503C */ c.lt.s $f10, $f12 +/* 07B458 7F046928 00000000 */ nop +/* 07B45C 7F04692C 45030007 */ bc1tl .L7F04694C +/* 07B460 7F046930 00009025 */ move $s2, $zero +/* 07B464 7F046934 C4262AD8 */ lwc1 $f6, %lo(D_80052AD8)($at) +/* 07B468 7F046938 4606603C */ c.lt.s $f12, $f6 +/* 07B46C 7F04693C 00000000 */ nop +/* 07B470 7F046940 45000002 */ bc1f .L7F04694C +/* 07B474 7F046944 00000000 */ nop +/* 07B478 7F046948 00009025 */ move $s2, $zero +.L7F04694C: +/* 07B47C 7F04694C 12400034 */ beqz $s2, .L7F046A20 +/* 07B480 7F046950 00002825 */ move $a1, $zero +/* 07B484 7F046954 8E6E0014 */ lw $t6, 0x14($s3) +/* 07B488 7F046958 E7B20518 */ swc1 $f18, 0x518($sp) +/* 07B48C 7F04695C 8FA40514 */ lw $a0, 0x514($sp) +/* 07B490 7F046960 0FC2280F */ jal sub_GAME_7F08A03C +/* 07B494 7F046964 AFAE04F0 */ sw $t6, 0x4f0($sp) +/* 07B498 7F046968 8FA20514 */ lw $v0, 0x514($sp) +/* 07B49C 7F04696C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 07B4A0 7F046970 8E650008 */ lw $a1, 8($s3) +/* 07B4A4 7F046974 C4440010 */ lwc1 $f4, 0x10($v0) +/* 07B4A8 7F046978 8E660010 */ lw $a2, 0x10($s3) +/* 07B4AC 7F04697C 8C470008 */ lw $a3, 8($v0) +/* 07B4B0 7F046980 44814000 */ mtc1 $at, $f8 +/* 07B4B4 7F046984 44815000 */ mtc1 $at, $f10 +/* 07B4B8 7F046988 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07B4BC 7F04698C 44813000 */ mtc1 $at, $f6 +/* 07B4C0 7F046990 240D001B */ li $t5, 27 +/* 07B4C4 7F046994 AFAD0014 */ sw $t5, 0x14($sp) +/* 07B4C8 7F046998 E7B60020 */ swc1 $f22, 0x20($sp) +/* 07B4CC 7F04699C 27A404F0 */ addiu $a0, $sp, 0x4f0 +/* 07B4D0 7F0469A0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 07B4D4 7F0469A4 E7A80018 */ swc1 $f8, 0x18($sp) +/* 07B4D8 7F0469A8 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 07B4DC 7F0469AC 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 07B4E0 7F0469B0 E7A60024 */ swc1 $f6, 0x24($sp) +/* 07B4E4 7F0469B4 10400015 */ beqz $v0, .L7F046A0C +/* 07B4E8 7F0469B8 C7B20518 */ lwc1 $f18, 0x518($sp) +/* 07B4EC 7F0469BC 3C188005 */ lui $t8, %hi(clock_timer) +/* 07B4F0 7F0469C0 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 07B4F4 7F0469C4 8E0F00E0 */ lw $t7, 0xe0($s0) +/* 07B4F8 7F0469C8 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 07B4FC 7F0469CC 44812000 */ mtc1 $at, $f4 +/* 07B500 7F0469D0 01F84021 */ addu $t0, $t7, $t8 +/* 07B504 7F0469D4 AE0800E0 */ sw $t0, 0xe0($s0) +/* 07B508 7F0469D8 3C018003 */ lui $at, %hi(D_80030B14) +/* 07B50C 7F0469DC C4280B14 */ lwc1 $f8, %lo(D_80030B14)($at) +/* 07B510 7F0469E0 46082282 */ mul.s $f10, $f4, $f8 +/* 07B514 7F0469E4 4600518D */ trunc.w.s $f6, $f10 +/* 07B518 7F0469E8 44193000 */ mfc1 $t9, $f6 +/* 07B51C 7F0469EC 00000000 */ nop +/* 07B520 7F0469F0 0119082A */ slt $at, $t0, $t9 +/* 07B524 7F0469F4 54200006 */ bnezl $at, .L7F046A10 +/* 07B528 7F0469F8 8FA40514 */ lw $a0, 0x514($sp) +/* 07B52C 7F0469FC 0FC15772 */ jal start_alarm +/* 07B530 7F046A00 E7B20518 */ swc1 $f18, 0x518($sp) +/* 07B534 7F046A04 C7B20518 */ lwc1 $f18, 0x518($sp) +/* 07B538 7F046A08 AE0000E0 */ sw $zero, 0xe0($s0) +.L7F046A0C: +/* 07B53C 7F046A0C 8FA40514 */ lw $a0, 0x514($sp) +.L7F046A10: +/* 07B540 7F046A10 24050001 */ li $a1, 1 +/* 07B544 7F046A14 0FC2280F */ jal sub_GAME_7F08A03C +/* 07B548 7F046A18 E7B20518 */ swc1 $f18, 0x518($sp) +/* 07B54C 7F046A1C C7B20518 */ lwc1 $f18, 0x518($sp) +.L7F046A20: +/* 07B550 7F046A20 C60E00C8 */ lwc1 $f14, 0xc8($s0) +/* 07B554 7F046A24 4612703C */ c.lt.s $f14, $f18 +/* 07B558 7F046A28 00000000 */ nop +/* 07B55C 7F046A2C 45020047 */ bc1fl .L7F046B4C +/* 07B560 7F046A30 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B564 7F046A34 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B568 7F046A38 3C018005 */ lui $at, %hi(D_80052AE0) +/* 07B56C 7F046A3C C4302AE0 */ lwc1 $f16, %lo(D_80052AE0)($at) +/* 07B570 7F046A40 46000102 */ mul.s $f4, $f0, $f0 +/* 07B574 7F046A44 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07B578 7F046A48 44814000 */ mtc1 $at, $f8 +/* 07B57C 7F046A4C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07B580 7F046A50 46082282 */ mul.s $f10, $f4, $f8 +/* 07B584 7F046A54 46105083 */ div.s $f2, $f10, $f16 +/* 07B588 7F046A58 46029181 */ sub.s $f6, $f18, $f2 +/* 07B58C 7F046A5C 460E303E */ c.le.s $f6, $f14 +/* 07B590 7F046A60 00000000 */ nop +/* 07B594 7F046A64 4502000F */ bc1fl .L7F046AA4 +/* 07B598 7F046A68 C60C00DC */ lwc1 $f12, 0xdc($s0) +/* 07B59C 7F046A6C C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07B5A0 7F046A70 46048202 */ mul.s $f8, $f16, $f4 +/* 07B5A4 7F046A74 46080281 */ sub.s $f10, $f0, $f8 +/* 07B5A8 7F046A78 E60A00D8 */ swc1 $f10, 0xd8($s0) +/* 07B5AC 7F046A7C C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B5B0 7F046A80 4610003C */ c.lt.s $f0, $f16 +/* 07B5B4 7F046A84 00000000 */ nop +/* 07B5B8 7F046A88 45000003 */ bc1f .L7F046A98 +/* 07B5BC 7F046A8C 00000000 */ nop +/* 07B5C0 7F046A90 E61000D8 */ swc1 $f16, 0xd8($s0) +/* 07B5C4 7F046A94 C60000D8 */ lwc1 $f0, 0xd8($s0) +.L7F046A98: +/* 07B5C8 7F046A98 1000001D */ b .L7F046B10 +/* 07B5CC 7F046A9C C60E00C8 */ lwc1 $f14, 0xc8($s0) +/* 07B5D0 7F046AA0 C60C00DC */ lwc1 $f12, 0xdc($s0) +.L7F046AA4: +/* 07B5D4 7F046AA4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07B5D8 7F046AA8 460C003C */ c.lt.s $f0, $f12 +/* 07B5DC 7F046AAC 00000000 */ nop +/* 07B5E0 7F046AB0 45000017 */ bc1f .L7F046B10 +/* 07B5E4 7F046AB4 00000000 */ nop +/* 07B5E8 7F046AB8 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 07B5EC 7F046ABC 46068102 */ mul.s $f4, $f16, $f6 +/* 07B5F0 7F046AC0 46040080 */ add.s $f2, $f0, $f4 +/* 07B5F4 7F046AC4 4602603C */ c.lt.s $f12, $f2 +/* 07B5F8 7F046AC8 00000000 */ nop +/* 07B5FC 7F046ACC 45000002 */ bc1f .L7F046AD8 +/* 07B600 7F046AD0 00000000 */ nop +/* 07B604 7F046AD4 46006086 */ mov.s $f2, $f12 +.L7F046AD8: +/* 07B608 7F046AD8 46021202 */ mul.s $f8, $f2, $f2 +/* 07B60C 7F046ADC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07B610 7F046AE0 44815000 */ mtc1 $at, $f10 +/* 07B614 7F046AE4 00000000 */ nop +/* 07B618 7F046AE8 460A4182 */ mul.s $f6, $f8, $f10 +/* 07B61C 7F046AEC 46103103 */ div.s $f4, $f6, $f16 +/* 07B620 7F046AF0 46049201 */ sub.s $f8, $f18, $f4 +/* 07B624 7F046AF4 4608703C */ c.lt.s $f14, $f8 +/* 07B628 7F046AF8 00000000 */ nop +/* 07B62C 7F046AFC 45000004 */ bc1f .L7F046B10 +/* 07B630 7F046B00 00000000 */ nop +/* 07B634 7F046B04 E60200D8 */ swc1 $f2, 0xd8($s0) +/* 07B638 7F046B08 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B63C 7F046B0C C60E00C8 */ lwc1 $f14, 0xc8($s0) +.L7F046B10: +/* 07B640 7F046B10 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07B644 7F046B14 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07B648 7F046B18 460A0182 */ mul.s $f6, $f0, $f10 +/* 07B64C 7F046B1C 46067100 */ add.s $f4, $f14, $f6 +/* 07B650 7F046B20 E60400C8 */ swc1 $f4, 0xc8($s0) +/* 07B654 7F046B24 C60800C8 */ lwc1 $f8, 0xc8($s0) +/* 07B658 7F046B28 4608903E */ c.le.s $f18, $f8 +/* 07B65C 7F046B2C 00000000 */ nop +/* 07B660 7F046B30 450205BF */ bc1fl .L7F048230 +/* 07B664 7F046B34 92220003 */ lbu $v0, 3($s1) +/* 07B668 7F046B38 E61200C8 */ swc1 $f18, 0xc8($s0) +/* 07B66C 7F046B3C E61600D8 */ swc1 $f22, 0xd8($s0) +/* 07B670 7F046B40 100005BA */ b .L7F04822C +/* 07B674 7F046B44 AE0000D4 */ sw $zero, 0xd4($s0) +/* 07B678 7F046B48 C60000D8 */ lwc1 $f0, 0xd8($s0) +.L7F046B4C: +/* 07B67C 7F046B4C 3C018005 */ lui $at, %hi(D_80052AE4) +/* 07B680 7F046B50 C4302AE4 */ lwc1 $f16, %lo(D_80052AE4)($at) +/* 07B684 7F046B54 46000282 */ mul.s $f10, $f0, $f0 +/* 07B688 7F046B58 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07B68C 7F046B5C 44813000 */ mtc1 $at, $f6 +/* 07B690 7F046B60 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07B694 7F046B64 240A0001 */ li $t2, 1 +/* 07B698 7F046B68 46065102 */ mul.s $f4, $f10, $f6 +/* 07B69C 7F046B6C 46102083 */ div.s $f2, $f4, $f16 +/* 07B6A0 7F046B70 46029200 */ add.s $f8, $f18, $f2 +/* 07B6A4 7F046B74 4608703E */ c.le.s $f14, $f8 +/* 07B6A8 7F046B78 00000000 */ nop +/* 07B6AC 7F046B7C 4502000F */ bc1fl .L7F046BBC +/* 07B6B0 7F046B80 C60C00DC */ lwc1 $f12, 0xdc($s0) +/* 07B6B4 7F046B84 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07B6B8 7F046B88 460A8182 */ mul.s $f6, $f16, $f10 +/* 07B6BC 7F046B8C 46060101 */ sub.s $f4, $f0, $f6 +/* 07B6C0 7F046B90 E60400D8 */ swc1 $f4, 0xd8($s0) +/* 07B6C4 7F046B94 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B6C8 7F046B98 4610003C */ c.lt.s $f0, $f16 +/* 07B6CC 7F046B9C 00000000 */ nop +/* 07B6D0 7F046BA0 45000003 */ bc1f .L7F046BB0 +/* 07B6D4 7F046BA4 00000000 */ nop +/* 07B6D8 7F046BA8 E61000D8 */ swc1 $f16, 0xd8($s0) +/* 07B6DC 7F046BAC C60000D8 */ lwc1 $f0, 0xd8($s0) +.L7F046BB0: +/* 07B6E0 7F046BB0 1000001D */ b .L7F046C28 +/* 07B6E4 7F046BB4 C60E00C8 */ lwc1 $f14, 0xc8($s0) +/* 07B6E8 7F046BB8 C60C00DC */ lwc1 $f12, 0xdc($s0) +.L7F046BBC: +/* 07B6EC 7F046BBC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07B6F0 7F046BC0 460C003C */ c.lt.s $f0, $f12 +/* 07B6F4 7F046BC4 00000000 */ nop +/* 07B6F8 7F046BC8 45000017 */ bc1f .L7F046C28 +/* 07B6FC 7F046BCC 00000000 */ nop +/* 07B700 7F046BD0 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 07B704 7F046BD4 46088282 */ mul.s $f10, $f16, $f8 +/* 07B708 7F046BD8 460A0080 */ add.s $f2, $f0, $f10 +/* 07B70C 7F046BDC 4602603C */ c.lt.s $f12, $f2 +/* 07B710 7F046BE0 00000000 */ nop +/* 07B714 7F046BE4 45000002 */ bc1f .L7F046BF0 +/* 07B718 7F046BE8 00000000 */ nop +/* 07B71C 7F046BEC 46006086 */ mov.s $f2, $f12 +.L7F046BF0: +/* 07B720 7F046BF0 46021182 */ mul.s $f6, $f2, $f2 +/* 07B724 7F046BF4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07B728 7F046BF8 44812000 */ mtc1 $at, $f4 +/* 07B72C 7F046BFC 00000000 */ nop +/* 07B730 7F046C00 46043202 */ mul.s $f8, $f6, $f4 +/* 07B734 7F046C04 46104283 */ div.s $f10, $f8, $f16 +/* 07B738 7F046C08 460A9180 */ add.s $f6, $f18, $f10 +/* 07B73C 7F046C0C 460E303C */ c.lt.s $f6, $f14 +/* 07B740 7F046C10 00000000 */ nop +/* 07B744 7F046C14 45000004 */ bc1f .L7F046C28 +/* 07B748 7F046C18 00000000 */ nop +/* 07B74C 7F046C1C E60200D8 */ swc1 $f2, 0xd8($s0) +/* 07B750 7F046C20 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B754 7F046C24 C60E00C8 */ lwc1 $f14, 0xc8($s0) +.L7F046C28: +/* 07B758 7F046C28 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07B75C 7F046C2C C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07B760 7F046C30 46040202 */ mul.s $f8, $f0, $f4 +/* 07B764 7F046C34 46087281 */ sub.s $f10, $f14, $f8 +/* 07B768 7F046C38 E60A00C8 */ swc1 $f10, 0xc8($s0) +/* 07B76C 7F046C3C C60600C8 */ lwc1 $f6, 0xc8($s0) +/* 07B770 7F046C40 4612303E */ c.le.s $f6, $f18 +/* 07B774 7F046C44 00000000 */ nop +/* 07B778 7F046C48 45020579 */ bc1fl .L7F048230 +/* 07B77C 7F046C4C 92220003 */ lbu $v0, 3($s1) +/* 07B780 7F046C50 E61200C8 */ swc1 $f18, 0xc8($s0) +/* 07B784 7F046C54 E61600D8 */ swc1 $f22, 0xd8($s0) +/* 07B788 7F046C58 10000574 */ b .L7F04822C +/* 07B78C 7F046C5C AE0A00D4 */ sw $t2, 0xd4($s0) +/* 07B790 7F046C60 2401000D */ li $at, 13 +.L7F046C64: +/* 07B794 7F046C64 5441023F */ bnel $v0, $at, .L7F047564 +/* 07B798 7F046C68 24010027 */ li $at, 39 +/* 07B79C 7F046C6C 8E2C0008 */ lw $t4, 8($s1) +/* 07B7A0 7F046C70 000C70C0 */ sll $t6, $t4, 3 +/* 07B7A4 7F046C74 05C2023B */ bltzl $t6, .L7F047564 +/* 07B7A8 7F046C78 24010027 */ li $at, 39 +/* 07B7AC 7F046C7C 0FC225E6 */ jal get_curplayer_positiondata +/* 07B7B0 7F046C80 8E700004 */ lw $s0, 4($s3) +/* 07B7B4 7F046C84 AFA004AC */ sw $zero, 0x4ac($sp) +/* 07B7B8 7F046C88 AFA004A8 */ sw $zero, 0x4a8($sp) +/* 07B7BC 7F046C8C AFA004A4 */ sw $zero, 0x4a4($sp) +/* 07B7C0 7F046C90 8E23000C */ lw $v1, 0xc($s1) +/* 07B7C4 7F046C94 00409025 */ move $s2, $v0 +/* 07B7C8 7F046C98 00036800 */ sll $t5, $v1, 0 +/* 07B7CC 7F046C9C 05A10056 */ bgez $t5, .L7F046DF8 +/* 07B7D0 7F046CA0 00037840 */ sll $t7, $v1, 1 +/* 07B7D4 7F046CA4 05E30008 */ bgezl $t7, .L7F046CC8 +/* 07B7D8 7F046CA8 C6020084 */ lwc1 $f2, 0x84($s0) +/* 07B7DC 7F046CAC C6080090 */ lwc1 $f8, 0x90($s0) +/* 07B7E0 7F046CB0 C604009C */ lwc1 $f4, 0x9c($s0) +/* 07B7E4 7F046CB4 E6080084 */ swc1 $f8, 0x84($s0) +/* 07B7E8 7F046CB8 C6020084 */ lwc1 $f2, 0x84($s0) +/* 07B7EC 7F046CBC 10000036 */ b .L7F046D98 +/* 07B7F0 7F046CC0 E6040098 */ swc1 $f4, 0x98($s0) +/* 07B7F4 7F046CC4 C6020084 */ lwc1 $f2, 0x84($s0) +.L7F046CC8: +/* 07B7F8 7F046CC8 C60A0090 */ lwc1 $f10, 0x90($s0) +/* 07B7FC 7F046CCC 460A1032 */ c.eq.s $f2, $f10 +/* 07B800 7F046CD0 00000000 */ nop +/* 07B804 7F046CD4 45000030 */ bc1f .L7F046D98 +/* 07B808 7F046CD8 00000000 */ nop +/* 07B80C 7F046CDC C6060098 */ lwc1 $f6, 0x98($s0) +/* 07B810 7F046CE0 C604009C */ lwc1 $f4, 0x9c($s0) +/* 07B814 7F046CE4 46043032 */ c.eq.s $f6, $f4 +/* 07B818 7F046CE8 00000000 */ nop +/* 07B81C 7F046CEC 4500002A */ bc1f .L7F046D98 +/* 07B820 7F046CF0 00000000 */ nop +/* 07B824 7F046CF4 0C002914 */ jal get_random_value +/* 07B828 7F046CF8 00000000 */ nop +/* 07B82C 7F046CFC 44824000 */ mtc1 $v0, $f8 +/* 07B830 7F046D00 3C018005 */ lui $at, %hi(D_80052AE8) +/* 07B834 7F046D04 C4342AE8 */ lwc1 $f20, %lo(D_80052AE8)($at) +/* 07B838 7F046D08 04410005 */ bgez $v0, .L7F046D20 +/* 07B83C 7F046D0C 468042A0 */ cvt.s.w $f10, $f8 +/* 07B840 7F046D10 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07B844 7F046D14 44813000 */ mtc1 $at, $f6 +/* 07B848 7F046D18 00000000 */ nop +/* 07B84C 7F046D1C 46065280 */ add.s $f10, $f10, $f6 +.L7F046D20: +/* 07B850 7F046D20 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07B854 7F046D24 44812000 */ mtc1 $at, $f4 +/* 07B858 7F046D28 3C01421C */ li $at, 0x421C0000 # 39.000000 +/* 07B85C 7F046D2C 44813000 */ mtc1 $at, $f6 +/* 07B860 7F046D30 46045202 */ mul.s $f8, $f10, $f4 +/* 07B864 7F046D34 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07B868 7F046D38 44812000 */ mtc1 $at, $f4 +/* 07B86C 7F046D3C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07B870 7F046D40 46064282 */ mul.s $f10, $f8, $f6 +/* 07B874 7F046D44 46045200 */ add.s $f8, $f10, $f4 +/* 07B878 7F046D48 44815000 */ mtc1 $at, $f10 +/* 07B87C 7F046D4C 46144182 */ mul.s $f6, $f8, $f20 +/* 07B880 7F046D50 460A3103 */ div.s $f4, $f6, $f10 +/* 07B884 7F046D54 0C002914 */ jal get_random_value +/* 07B888 7F046D58 E6040098 */ swc1 $f4, 0x98($s0) +/* 07B88C 7F046D5C 44824000 */ mtc1 $v0, $f8 +/* 07B890 7F046D60 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07B894 7F046D64 04410004 */ bgez $v0, .L7F046D78 +/* 07B898 7F046D68 468041A0 */ cvt.s.w $f6, $f8 +/* 07B89C 7F046D6C 44815000 */ mtc1 $at, $f10 +/* 07B8A0 7F046D70 00000000 */ nop +/* 07B8A4 7F046D74 460A3180 */ add.s $f6, $f6, $f10 +.L7F046D78: +/* 07B8A8 7F046D78 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07B8AC 7F046D7C 44812000 */ mtc1 $at, $f4 +/* 07B8B0 7F046D80 00000000 */ nop +/* 07B8B4 7F046D84 46043202 */ mul.s $f8, $f6, $f4 +/* 07B8B8 7F046D88 00000000 */ nop +/* 07B8BC 7F046D8C 46144282 */ mul.s $f10, $f8, $f20 +/* 07B8C0 7F046D90 E60A0084 */ swc1 $f10, 0x84($s0) +/* 07B8C4 7F046D94 C6020084 */ lwc1 $f2, 0x84($s0) +.L7F046D98: +/* 07B8C8 7F046D98 3C018005 */ lui $at, %hi(D_80052AEC) +/* 07B8CC 7F046D9C C4202AEC */ lwc1 $f0, %lo(D_80052AEC)($at) +/* 07B8D0 7F046DA0 3C018005 */ lui $at, %hi(D_80052AF4) +/* 07B8D4 7F046DA4 C4262AF4 */ lwc1 $f6, %lo(D_80052AF4)($at) +/* 07B8D8 7F046DA8 44051000 */ mfc1 $a1, $f2 +/* 07B8DC 7F046DAC 44070000 */ mfc1 $a3, $f0 +/* 07B8E0 7F046DB0 26040090 */ addiu $a0, $s0, 0x90 +/* 07B8E4 7F046DB4 26060094 */ addiu $a2, $s0, 0x94 +/* 07B8E8 7F046DB8 E7A00010 */ swc1 $f0, 0x10($sp) +/* 07B8EC 7F046DBC 0FC10C43 */ jal sub_GAME_7F04310C +/* 07B8F0 7F046DC0 E7A60014 */ swc1 $f6, 0x14($sp) +/* 07B8F4 7F046DC4 3C018005 */ lui $at, %hi(D_80052AF8) +/* 07B8F8 7F046DC8 C4202AF8 */ lwc1 $f0, %lo(D_80052AF8)($at) +/* 07B8FC 7F046DCC 3C018005 */ lui $at, %hi(D_80052AFC) +/* 07B900 7F046DD0 C4242AFC */ lwc1 $f4, %lo(D_80052AFC)($at) +/* 07B904 7F046DD4 8E050098 */ lw $a1, 0x98($s0) +/* 07B908 7F046DD8 44070000 */ mfc1 $a3, $f0 +/* 07B90C 7F046DDC 2604009C */ addiu $a0, $s0, 0x9c +/* 07B910 7F046DE0 260600A0 */ addiu $a2, $s0, 0xa0 +/* 07B914 7F046DE4 E7A00010 */ swc1 $f0, 0x10($sp) +/* 07B918 7F046DE8 0FC10C43 */ jal sub_GAME_7F04310C +/* 07B91C 7F046DEC E7A40014 */ swc1 $f4, 0x14($sp) +/* 07B920 7F046DF0 1000050F */ b .L7F048230 +/* 07B924 7F046DF4 92220003 */ lbu $v0, 3($s1) +.L7F046DF8: +/* 07B928 7F046DF8 C6480008 */ lwc1 $f8, 8($s2) +/* 07B92C 7F046DFC C62A0058 */ lwc1 $f10, 0x58($s1) +/* 07B930 7F046E00 C646000C */ lwc1 $f6, 0xc($s2) +/* 07B934 7F046E04 C624005C */ lwc1 $f4, 0x5c($s1) +/* 07B938 7F046E08 460A4001 */ sub.s $f0, $f8, $f10 +/* 07B93C 7F046E0C 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 07B940 7F046E10 44815000 */ mtc1 $at, $f10 +/* 07B944 7F046E14 46043201 */ sub.s $f8, $f6, $f4 +/* 07B948 7F046E18 460A4181 */ sub.s $f6, $f8, $f10 +/* 07B94C 7F046E1C 46000282 */ mul.s $f10, $f0, $f0 +/* 07B950 7F046E20 E7A604C0 */ swc1 $f6, 0x4c0($sp) +/* 07B954 7F046E24 C6280060 */ lwc1 $f8, 0x60($s1) +/* 07B958 7F046E28 C6440010 */ lwc1 $f4, 0x10($s2) +/* 07B95C 7F046E2C E7A004C4 */ swc1 $f0, 0x4c4($sp) +/* 07B960 7F046E30 46082081 */ sub.s $f2, $f4, $f8 +/* 07B964 7F046E34 46021182 */ mul.s $f6, $f2, $f2 +/* 07B968 7F046E38 E7A204BC */ swc1 $f2, 0x4bc($sp) +/* 07B96C 7F046E3C 46065500 */ add.s $f20, $f10, $f6 +/* 07B970 7F046E40 E7B404B8 */ swc1 $f20, 0x4b8($sp) +/* 07B974 7F046E44 0C007DF8 */ jal sqrtf +/* 07B978 7F046E48 4600A306 */ mov.s $f12, $f20 +/* 07B97C 7F046E4C E7A004B0 */ swc1 $f0, 0x4b0($sp) +/* 07B980 7F046E50 8E380008 */ lw $t8, 8($s1) +/* 07B984 7F046E54 46000086 */ mov.s $f2, $f0 +/* 07B988 7F046E58 00184100 */ sll $t0, $t8, 4 +/* 07B98C 7F046E5C 05030008 */ bgezl $t0, .L7F046E80 +/* 07B990 7F046E60 C7AC04B8 */ lwc1 $f12, 0x4b8($sp) +/* 07B994 7F046E64 C7A004C0 */ lwc1 $f0, 0x4c0($sp) +/* 07B998 7F046E68 46000102 */ mul.s $f4, $f0, $f0 +/* 07B99C 7F046E6C 4604A300 */ add.s $f12, $f20, $f4 +/* 07B9A0 7F046E70 0C007DF8 */ jal sqrtf +/* 07B9A4 7F046E74 E7AC04B8 */ swc1 $f12, 0x4b8($sp) +/* 07B9A8 7F046E78 46000086 */ mov.s $f2, $f0 +/* 07B9AC 7F046E7C C7AC04B8 */ lwc1 $f12, 0x4b8($sp) +.L7F046E80: +/* 07B9B0 7F046E80 0FC0B491 */ jal sub_GAME_7F02D244 +/* 07B9B4 7F046E84 E7A204B4 */ swc1 $f2, 0x4b4($sp) +/* 07B9B8 7F046E88 E7A004A0 */ swc1 $f0, 0x4a0($sp) +/* 07B9BC 7F046E8C C6080098 */ lwc1 $f8, 0x98($s0) +/* 07B9C0 7F046E90 C6100084 */ lwc1 $f16, 0x84($s0) +/* 07B9C4 7F046E94 C7A204B4 */ lwc1 $f2, 0x4b4($sp) +/* 07B9C8 7F046E98 E7A804D4 */ swc1 $f8, 0x4d4($sp) +/* 07B9CC 7F046E9C C60A00A8 */ lwc1 $f10, 0xa8($s0) +/* 07B9D0 7F046EA0 460A103E */ c.le.s $f2, $f10 +/* 07B9D4 7F046EA4 00000000 */ nop +/* 07B9D8 7F046EA8 45020096 */ bc1fl .L7F047104 +/* 07B9DC 7F046EAC 8FAC04AC */ lw $t4, 0x4ac($sp) +/* 07B9E0 7F046EB0 C7AC04C4 */ lwc1 $f12, 0x4c4($sp) +/* 07B9E4 7F046EB4 C7AE04BC */ lwc1 $f14, 0x4bc($sp) +/* 07B9E8 7F046EB8 0FC16A8C */ jal atan2f +/* 07B9EC 7F046EBC E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07B9F0 7F046EC0 E7A0049C */ swc1 $f0, 0x49c($sp) +/* 07B9F4 7F046EC4 C7AC04C0 */ lwc1 $f12, 0x4c0($sp) +/* 07B9F8 7F046EC8 0FC16A8C */ jal atan2f +/* 07B9FC 7F046ECC C7AE04B0 */ lwc1 $f14, 0x4b0($sp) +/* 07BA00 7F046ED0 E7A00498 */ swc1 $f0, 0x498($sp) +/* 07BA04 7F046ED4 8E220008 */ lw $v0, 8($s1) +/* 07BA08 7F046ED8 C7B004D8 */ lwc1 $f16, 0x4d8($sp) +/* 07BA0C 7F046EDC 24190001 */ li $t9, 1 +/* 07BA10 7F046EE0 00025840 */ sll $t3, $v0, 1 +/* 07BA14 7F046EE4 05600003 */ bltz $t3, .L7F046EF4 +/* 07BA18 7F046EE8 00024880 */ sll $t1, $v0, 2 +/* 07BA1C 7F046EEC 05210005 */ bgez $t1, .L7F046F04 +/* 07BA20 7F046EF0 C7A6049C */ lwc1 $f6, 0x49c($sp) +.L7F046EF4: +/* 07BA24 7F046EF4 3C018005 */ lui $at, %hi(D_80052B00) +/* 07BA28 7F046EF8 C4342B00 */ lwc1 $f20, %lo(D_80052B00)($at) +/* 07BA2C 7F046EFC 10000027 */ b .L7F046F9C +/* 07BA30 7F046F00 AFB904AC */ sw $t9, 0x4ac($sp) +.L7F046F04: +/* 07BA34 7F046F04 C6040090 */ lwc1 $f4, 0x90($s0) +/* 07BA38 7F046F08 3C018005 */ lui $at, %hi(D_80052B04) +/* 07BA3C 7F046F0C 46043301 */ sub.s $f12, $f6, $f4 +/* 07BA40 7F046F10 4616603C */ c.lt.s $f12, $f22 +/* 07BA44 7F046F14 00000000 */ nop +/* 07BA48 7F046F18 45000003 */ bc1f .L7F046F28 +/* 07BA4C 7F046F1C 00000000 */ nop +/* 07BA50 7F046F20 C4342B04 */ lwc1 $f20, %lo(D_80052B04)($at) +/* 07BA54 7F046F24 46146300 */ add.s $f12, $f12, $f20 +.L7F046F28: +/* 07BA58 7F046F28 3C018005 */ lui $at, %hi(D_80052B08) +/* 07BA5C 7F046F2C C4342B08 */ lwc1 $f20, %lo(D_80052B08)($at) +/* 07BA60 7F046F30 3C018005 */ lui $at, %hi(D_80052B0C) +/* 07BA64 7F046F34 C4282B0C */ lwc1 $f8, %lo(D_80052B0C)($at) +/* 07BA68 7F046F38 3C018005 */ lui $at, %hi(D_80052B10) +/* 07BA6C 7F046F3C 460C403C */ c.lt.s $f8, $f12 +/* 07BA70 7F046F40 00000000 */ nop +/* 07BA74 7F046F44 45020003 */ bc1fl .L7F046F54 +/* 07BA78 7F046F48 C60A009C */ lwc1 $f10, 0x9c($s0) +/* 07BA7C 7F046F4C 46146301 */ sub.s $f12, $f12, $f20 +/* 07BA80 7F046F50 C60A009C */ lwc1 $f10, 0x9c($s0) +.L7F046F54: +/* 07BA84 7F046F54 460A0081 */ sub.s $f2, $f0, $f10 +/* 07BA88 7F046F58 4616103C */ c.lt.s $f2, $f22 +/* 07BA8C 7F046F5C 00000000 */ nop +/* 07BA90 7F046F60 45000001 */ bc1f .L7F046F68 +/* 07BA94 7F046F64 00000000 */ nop +.L7F046F68: +/* 07BA98 7F046F68 C4262B10 */ lwc1 $f6, %lo(D_80052B10)($at) +/* 07BA9C 7F046F6C 3C018005 */ lui $at, %hi(D_80052B14) +/* 07BAA0 7F046F70 4606603C */ c.lt.s $f12, $f6 +/* 07BAA4 7F046F74 00000000 */ nop +/* 07BAA8 7F046F78 45020009 */ bc1fl .L7F046FA0 +/* 07BAAC 7F046F7C 8FAC04AC */ lw $t4, 0x4ac($sp) +/* 07BAB0 7F046F80 C4242B14 */ lwc1 $f4, %lo(D_80052B14)($at) +/* 07BAB4 7F046F84 240A0001 */ li $t2, 1 +/* 07BAB8 7F046F88 460C203C */ c.lt.s $f4, $f12 +/* 07BABC 7F046F8C 00000000 */ nop +/* 07BAC0 7F046F90 45020003 */ bc1fl .L7F046FA0 +/* 07BAC4 7F046F94 8FAC04AC */ lw $t4, 0x4ac($sp) +/* 07BAC8 7F046F98 AFAA04AC */ sw $t2, 0x4ac($sp) +.L7F046F9C: +/* 07BACC 7F046F9C 8FAC04AC */ lw $t4, 0x4ac($sp) +.L7F046FA0: +/* 07BAD0 7F046FA0 C7A8049C */ lwc1 $f8, 0x49c($sp) +/* 07BAD4 7F046FA4 02402025 */ move $a0, $s2 +/* 07BAD8 7F046FA8 11800055 */ beqz $t4, .L7F047100 +/* 07BADC 7F046FAC 00002825 */ move $a1, $zero +/* 07BAE0 7F046FB0 C60A0084 */ lwc1 $f10, 0x84($s0) +/* 07BAE4 7F046FB4 3C018005 */ lui $at, %hi(D_80052B18) +/* 07BAE8 7F046FB8 C4262B18 */ lwc1 $f6, %lo(D_80052B18)($at) +/* 07BAEC 7F046FBC 460A4001 */ sub.s $f0, $f8, $f10 +/* 07BAF0 7F046FC0 8E6E0014 */ lw $t6, 0x14($s3) +/* 07BAF4 7F046FC4 3C018005 */ lui $at, %hi(D_80052B1C) +/* 07BAF8 7F046FC8 4606003C */ c.lt.s $f0, $f6 +/* 07BAFC 7F046FCC AFAE0490 */ sw $t6, 0x490($sp) +/* 07BB00 7F046FD0 45000003 */ bc1f .L7F046FE0 +/* 07BB04 7F046FD4 00000000 */ nop +/* 07BB08 7F046FD8 10000007 */ b .L7F046FF8 +/* 07BB0C 7F046FDC 46140000 */ add.s $f0, $f0, $f20 +.L7F046FE0: +/* 07BB10 7F046FE0 C4242B1C */ lwc1 $f4, %lo(D_80052B1C)($at) +/* 07BB14 7F046FE4 4600203E */ c.le.s $f4, $f0 +/* 07BB18 7F046FE8 00000000 */ nop +/* 07BB1C 7F046FEC 45020003 */ bc1fl .L7F046FFC +/* 07BB20 7F046FF0 E7A00494 */ swc1 $f0, 0x494($sp) +/* 07BB24 7F046FF4 46140001 */ sub.s $f0, $f0, $f20 +.L7F046FF8: +/* 07BB28 7F046FF8 E7A00494 */ swc1 $f0, 0x494($sp) +.L7F046FFC: +/* 07BB2C 7F046FFC 0FC2280F */ jal sub_GAME_7F08A03C +/* 07BB30 7F047000 E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07BB34 7F047004 C7A00494 */ lwc1 $f0, 0x494($sp) +/* 07BB38 7F047008 C6080088 */ lwc1 $f8, 0x88($s0) +/* 07BB3C 7F04700C C7B004D8 */ lwc1 $f16, 0x4d8($sp) +/* 07BB40 7F047010 4608003E */ c.le.s $f0, $f8 +/* 07BB44 7F047014 00000000 */ nop +/* 07BB48 7F047018 45020027 */ bc1fl .L7F0470B8 +/* 07BB4C 7F04701C 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BB50 7F047020 C60A008C */ lwc1 $f10, 0x8c($s0) +/* 07BB54 7F047024 240D001B */ li $t5, 27 +/* 07BB58 7F047028 4600503E */ c.le.s $f10, $f0 +/* 07BB5C 7F04702C 00000000 */ nop +/* 07BB60 7F047030 45020021 */ bc1fl .L7F0470B8 +/* 07BB64 7F047034 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BB68 7F047038 C6460010 */ lwc1 $f6, 0x10($s2) +/* 07BB6C 7F04703C 8E650008 */ lw $a1, 8($s3) +/* 07BB70 7F047040 8E660010 */ lw $a2, 0x10($s3) +/* 07BB74 7F047044 8E470008 */ lw $a3, 8($s2) +/* 07BB78 7F047048 AFAD0014 */ sw $t5, 0x14($sp) +/* 07BB7C 7F04704C E7A60010 */ swc1 $f6, 0x10($sp) +/* 07BB80 7F047050 C660000C */ lwc1 $f0, 0xc($s3) +/* 07BB84 7F047054 27A40490 */ addiu $a0, $sp, 0x490 +/* 07BB88 7F047058 E7A00018 */ swc1 $f0, 0x18($sp) +/* 07BB8C 7F04705C E7A0001C */ swc1 $f0, 0x1c($sp) +/* 07BB90 7F047060 C642000C */ lwc1 $f2, 0xc($s2) +/* 07BB94 7F047064 E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07BB98 7F047068 E7A20020 */ swc1 $f2, 0x20($sp) +/* 07BB9C 7F04706C 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 07BBA0 7F047070 E7A20024 */ swc1 $f2, 0x24($sp) +/* 07BBA4 7F047074 1040000F */ beqz $v0, .L7F0470B4 +/* 07BBA8 7F047078 C7B004D8 */ lwc1 $f16, 0x4d8($sp) +/* 07BBAC 7F04707C 8FAF0490 */ lw $t7, 0x490($sp) +/* 07BBB0 7F047080 8E580014 */ lw $t8, 0x14($s2) +/* 07BBB4 7F047084 55F8000C */ bnel $t7, $t8, .L7F0470B8 +/* 07BBB8 7F047088 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BBBC 7F04708C 8E280008 */ lw $t0, 8($s1) +/* 07BBC0 7F047090 3C012000 */ lui $at, 0x2000 +/* 07BBC4 7F047094 24090001 */ li $t1, 1 +/* 07BBC8 7F047098 01015825 */ or $t3, $t0, $at +/* 07BBCC 7F04709C AE2B0008 */ sw $t3, 8($s1) +/* 07BBD0 7F0470A0 C7A40498 */ lwc1 $f4, 0x498($sp) +/* 07BBD4 7F0470A4 AFA904A4 */ sw $t1, 0x4a4($sp) +/* 07BBD8 7F0470A8 C7B0049C */ lwc1 $f16, 0x49c($sp) +/* 07BBDC 7F0470AC 1000000F */ b .L7F0470EC +/* 07BBE0 7F0470B0 E7A404D4 */ swc1 $f4, 0x4d4($sp) +.L7F0470B4: +/* 07BBE4 7F0470B4 8E0200B8 */ lw $v0, 0xb8($s0) +.L7F0470B8: +/* 07BBE8 7F0470B8 3C198005 */ lui $t9, %hi(global_timer) +/* 07BBEC 7F0470BC 0442000B */ bltzl $v0, .L7F0470EC +/* 07BBF0 7F0470C0 AFA004AC */ sw $zero, 0x4ac($sp) +/* 07BBF4 7F0470C4 8F39837C */ lw $t9, %lo(global_timer)($t9) +/* 07BBF8 7F0470C8 272AFF88 */ addiu $t2, $t9, -0x78 +/* 07BBFC 7F0470CC 0142082A */ slt $at, $t2, $v0 +/* 07BC00 7F0470D0 50200006 */ beql $at, $zero, .L7F0470EC +/* 07BC04 7F0470D4 AFA004AC */ sw $zero, 0x4ac($sp) +/* 07BC08 7F0470D8 C608009C */ lwc1 $f8, 0x9c($s0) +/* 07BC0C 7F0470DC C6100090 */ lwc1 $f16, 0x90($s0) +/* 07BC10 7F0470E0 10000002 */ b .L7F0470EC +/* 07BC14 7F0470E4 E7A804D4 */ swc1 $f8, 0x4d4($sp) +/* 07BC18 7F0470E8 AFA004AC */ sw $zero, 0x4ac($sp) +.L7F0470EC: +/* 07BC1C 7F0470EC 02402025 */ move $a0, $s2 +/* 07BC20 7F0470F0 24050001 */ li $a1, 1 +/* 07BC24 7F0470F4 0FC2280F */ jal sub_GAME_7F08A03C +/* 07BC28 7F0470F8 E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07BC2C 7F0470FC C7B004D8 */ lwc1 $f16, 0x4d8($sp) +.L7F047100: +/* 07BC30 7F047100 8FAC04AC */ lw $t4, 0x4ac($sp) +.L7F047104: +/* 07BC34 7F047104 3C018005 */ lui $at, %hi(D_80052B20) +/* 07BC38 7F047108 C4342B20 */ lwc1 $f20, %lo(D_80052B20)($at) +/* 07BC3C 7F04710C 51800007 */ beql $t4, $zero, .L7F04712C +/* 07BC40 7F047110 8E0E00D0 */ lw $t6, 0xd0($s0) +/* 07BC44 7F047114 C7AC04B8 */ lwc1 $f12, 0x4b8($sp) +/* 07BC48 7F047118 0FC0B491 */ jal sub_GAME_7F02D244 +/* 07BC4C 7F04711C E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07BC50 7F047120 C7B004D8 */ lwc1 $f16, 0x4d8($sp) +/* 07BC54 7F047124 E7A004A0 */ swc1 $f0, 0x4a0($sp) +/* 07BC58 7F047128 8E0E00D0 */ lw $t6, 0xd0($s0) +.L7F04712C: +/* 07BC5C 7F04712C 11C0001F */ beqz $t6, .L7F0471AC +/* 07BC60 7F047130 3C0D8005 */ lui $t5, %hi(global_timer) +/* 07BC64 7F047134 8DAD837C */ lw $t5, %lo(global_timer)($t5) +/* 07BC68 7F047138 24010078 */ li $at, 120 +/* 07BC6C 7F04713C E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07BC70 7F047140 01A1001A */ div $zero, $t5, $at +/* 07BC74 7F047144 00007810 */ mfhi $t7 +/* 07BC78 7F047148 448F5000 */ mtc1 $t7, $f10 +/* 07BC7C 7F04714C 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 07BC80 7F047150 44814000 */ mtc1 $at, $f8 +/* 07BC84 7F047154 468051A0 */ cvt.s.w $f6, $f10 +/* 07BC88 7F047158 46143102 */ mul.s $f4, $f6, $f20 +/* 07BC8C 7F04715C 0FC15FAB */ jal sinf +/* 07BC90 7F047160 46082303 */ div.s $f12, $f4, $f8 +/* 07BC94 7F047164 3C018005 */ lui $at, %hi(D_80052B24) +/* 07BC98 7F047168 C4262B24 */ lwc1 $f6, %lo(D_80052B24)($at) +/* 07BC9C 7F04716C C7AA04A0 */ lwc1 $f10, 0x4a0($sp) +/* 07BCA0 7F047170 C7B004D8 */ lwc1 $f16, 0x4d8($sp) +/* 07BCA4 7F047174 46065102 */ mul.s $f4, $f10, $f6 +/* 07BCA8 7F047178 00000000 */ nop +/* 07BCAC 7F04717C 46002202 */ mul.s $f8, $f4, $f0 +/* 07BCB0 7F047180 46088400 */ add.s $f16, $f16, $f8 +/* 07BCB4 7F047184 4616803C */ c.lt.s $f16, $f22 +/* 07BCB8 7F047188 00000000 */ nop +/* 07BCBC 7F04718C 45000002 */ bc1f .L7F047198 +/* 07BCC0 7F047190 00000000 */ nop +/* 07BCC4 7F047194 46148400 */ add.s $f16, $f16, $f20 +.L7F047198: +/* 07BCC8 7F047198 4610A03E */ c.le.s $f20, $f16 +/* 07BCCC 7F04719C 00000000 */ nop +/* 07BCD0 7F0471A0 45020003 */ bc1fl .L7F0471B0 +/* 07BCD4 7F0471A4 C6020084 */ lwc1 $f2, 0x84($s0) +/* 07BCD8 7F0471A8 46148401 */ sub.s $f16, $f16, $f20 +.L7F0471AC: +/* 07BCDC 7F0471AC C6020084 */ lwc1 $f2, 0x84($s0) +.L7F0471B0: +/* 07BCE0 7F0471B0 3C018005 */ lui $at, %hi(D_80052B28) +/* 07BCE4 7F0471B4 C42A2B28 */ lwc1 $f10, %lo(D_80052B28)($at) +/* 07BCE8 7F0471B8 46028001 */ sub.s $f0, $f16, $f2 +/* 07BCEC 7F0471BC 26040090 */ addiu $a0, $s0, 0x90 +/* 07BCF0 7F0471C0 460A003C */ c.lt.s $f0, $f10 +/* 07BCF4 7F0471C4 00000000 */ nop +/* 07BCF8 7F0471C8 45000003 */ bc1f .L7F0471D8 +/* 07BCFC 7F0471CC 00000000 */ nop +/* 07BD00 7F0471D0 10000008 */ b .L7F0471F4 +/* 07BD04 7F0471D4 46140000 */ add.s $f0, $f0, $f20 +.L7F0471D8: +/* 07BD08 7F0471D8 3C018005 */ lui $at, %hi(D_80052B2C) +/* 07BD0C 7F0471DC C4262B2C */ lwc1 $f6, %lo(D_80052B2C)($at) +/* 07BD10 7F0471E0 4600303E */ c.le.s $f6, $f0 +/* 07BD14 7F0471E4 00000000 */ nop +/* 07BD18 7F0471E8 45020003 */ bc1fl .L7F0471F8 +/* 07BD1C 7F0471EC C60C0088 */ lwc1 $f12, 0x88($s0) +/* 07BD20 7F0471F0 46140001 */ sub.s $f0, $f0, $f20 +.L7F0471F4: +/* 07BD24 7F0471F4 C60C0088 */ lwc1 $f12, 0x88($s0) +.L7F0471F8: +/* 07BD28 7F0471F8 3C018005 */ lui $at, %hi(D_80052B30) +/* 07BD2C 7F0471FC 4600603C */ c.lt.s $f12, $f0 +/* 07BD30 7F047200 00000000 */ nop +/* 07BD34 7F047204 45020004 */ bc1fl .L7F047218 +/* 07BD38 7F047208 C60C008C */ lwc1 $f12, 0x8c($s0) +/* 07BD3C 7F04720C 10000007 */ b .L7F04722C +/* 07BD40 7F047210 460C1400 */ add.s $f16, $f2, $f12 +/* 07BD44 7F047214 C60C008C */ lwc1 $f12, 0x8c($s0) +.L7F047218: +/* 07BD48 7F047218 460C003C */ c.lt.s $f0, $f12 +/* 07BD4C 7F04721C 00000000 */ nop +/* 07BD50 7F047220 45020003 */ bc1fl .L7F047230 +/* 07BD54 7F047224 4616803C */ c.lt.s $f16, $f22 +/* 07BD58 7F047228 460C1400 */ add.s $f16, $f2, $f12 +.L7F04722C: +/* 07BD5C 7F04722C 4616803C */ c.lt.s $f16, $f22 +.L7F047230: +/* 07BD60 7F047230 00000000 */ nop +/* 07BD64 7F047234 45020003 */ bc1fl .L7F047244 +/* 07BD68 7F047238 4610A03E */ c.le.s $f20, $f16 +/* 07BD6C 7F04723C 46148400 */ add.s $f16, $f16, $f20 +/* 07BD70 7F047240 4610A03E */ c.le.s $f20, $f16 +.L7F047244: +/* 07BD74 7F047244 00000000 */ nop +/* 07BD78 7F047248 45000002 */ bc1f .L7F047254 +/* 07BD7C 7F04724C 00000000 */ nop +/* 07BD80 7F047250 46148401 */ sub.s $f16, $f16, $f20 +.L7F047254: +/* 07BD84 7F047254 C4202B30 */ lwc1 $f0, %lo(D_80052B30)($at) +/* 07BD88 7F047258 44058000 */ mfc1 $a1, $f16 +/* 07BD8C 7F04725C 26060094 */ addiu $a2, $s0, 0x94 +/* 07BD90 7F047260 E7A00010 */ swc1 $f0, 0x10($sp) +/* 07BD94 7F047264 C60400A4 */ lwc1 $f4, 0xa4($s0) +/* 07BD98 7F047268 44070000 */ mfc1 $a3, $f0 +/* 07BD9C 7F04726C E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07BDA0 7F047270 0FC10C43 */ jal sub_GAME_7F04310C +/* 07BDA4 7F047274 E7A40014 */ swc1 $f4, 0x14($sp) +/* 07BDA8 7F047278 3C018005 */ lui $at, %hi(D_80052B34) +/* 07BDAC 7F04727C C4202B34 */ lwc1 $f0, %lo(D_80052B34)($at) +/* 07BDB0 7F047280 2604009C */ addiu $a0, $s0, 0x9c +/* 07BDB4 7F047284 8FA504D4 */ lw $a1, 0x4d4($sp) +/* 07BDB8 7F047288 E7A00010 */ swc1 $f0, 0x10($sp) +/* 07BDBC 7F04728C C60800A4 */ lwc1 $f8, 0xa4($s0) +/* 07BDC0 7F047290 44070000 */ mfc1 $a3, $f0 +/* 07BDC4 7F047294 260600A0 */ addiu $a2, $s0, 0xa0 +/* 07BDC8 7F047298 0FC10C43 */ jal sub_GAME_7F04310C +/* 07BDCC 7F04729C E7A80014 */ swc1 $f8, 0x14($sp) +/* 07BDD0 7F0472A0 C7B004D8 */ lwc1 $f16, 0x4d8($sp) +/* 07BDD4 7F0472A4 C60A0090 */ lwc1 $f10, 0x90($s0) +/* 07BDD8 7F0472A8 3C018005 */ lui $at, %hi(D_80052B38) +/* 07BDDC 7F0472AC C7A604D4 */ lwc1 $f6, 0x4d4($sp) +/* 07BDE0 7F0472B0 460A8301 */ sub.s $f12, $f16, $f10 +/* 07BDE4 7F0472B4 4616603C */ c.lt.s $f12, $f22 +/* 07BDE8 7F0472B8 00000000 */ nop +/* 07BDEC 7F0472BC 45000002 */ bc1f .L7F0472C8 +/* 07BDF0 7F0472C0 00000000 */ nop +/* 07BDF4 7F0472C4 46146300 */ add.s $f12, $f12, $f20 +.L7F0472C8: +/* 07BDF8 7F0472C8 C4202B38 */ lwc1 $f0, %lo(D_80052B38)($at) +/* 07BDFC 7F0472CC 460C003C */ c.lt.s $f0, $f12 +/* 07BE00 7F0472D0 00000000 */ nop +/* 07BE04 7F0472D4 45020003 */ bc1fl .L7F0472E4 +/* 07BE08 7F0472D8 C604009C */ lwc1 $f4, 0x9c($s0) +/* 07BE0C 7F0472DC 46146301 */ sub.s $f12, $f12, $f20 +/* 07BE10 7F0472E0 C604009C */ lwc1 $f4, 0x9c($s0) +.L7F0472E4: +/* 07BE14 7F0472E4 46043081 */ sub.s $f2, $f6, $f4 +/* 07BE18 7F0472E8 4616103C */ c.lt.s $f2, $f22 +/* 07BE1C 7F0472EC 00000000 */ nop +/* 07BE20 7F0472F0 45020003 */ bc1fl .L7F047300 +/* 07BE24 7F0472F4 4602003C */ c.lt.s $f0, $f2 +/* 07BE28 7F0472F8 46141080 */ add.s $f2, $f2, $f20 +/* 07BE2C 7F0472FC 4602003C */ c.lt.s $f0, $f2 +.L7F047300: +/* 07BE30 7F047300 00000000 */ nop +/* 07BE34 7F047304 45020003 */ bc1fl .L7F047314 +/* 07BE38 7F047308 AE0000D0 */ sw $zero, 0xd0($s0) +/* 07BE3C 7F04730C 46141081 */ sub.s $f2, $f2, $f20 +/* 07BE40 7F047310 AE0000D0 */ sw $zero, 0xd0($s0) +.L7F047314: +/* 07BE44 7F047314 8FB804AC */ lw $t8, 0x4ac($sp) +/* 07BE48 7F047318 C7A804A0 */ lwc1 $f8, 0x4a0($sp) +/* 07BE4C 7F04731C 53000047 */ beql $t8, $zero, .L7F04743C +/* 07BE50 7F047320 8FB904A8 */ lw $t9, 0x4a8($sp) +/* 07BE54 7F047324 4608603C */ c.lt.s $f12, $f8 +/* 07BE58 7F047328 C7AA04A0 */ lwc1 $f10, 0x4a0($sp) +/* 07BE5C 7F04732C 4502001B */ bc1fl .L7F04739C +/* 07BE60 7F047330 460A5000 */ add.s $f0, $f10, $f10 +/* 07BE64 7F047334 46004007 */ neg.s $f0, $f8 +/* 07BE68 7F047338 460C003C */ c.lt.s $f0, $f12 +/* 07BE6C 7F04733C 00000000 */ nop +/* 07BE70 7F047340 45020016 */ bc1fl .L7F04739C +/* 07BE74 7F047344 460A5000 */ add.s $f0, $f10, $f10 +/* 07BE78 7F047348 4608103C */ c.lt.s $f2, $f8 +/* 07BE7C 7F04734C 00000000 */ nop +/* 07BE80 7F047350 45020012 */ bc1fl .L7F04739C +/* 07BE84 7F047354 460A5000 */ add.s $f0, $f10, $f10 +/* 07BE88 7F047358 4602003C */ c.lt.s $f0, $f2 +/* 07BE8C 7F04735C 24080001 */ li $t0, 1 +/* 07BE90 7F047360 4502000E */ bc1fl .L7F04739C +/* 07BE94 7F047364 460A5000 */ add.s $f0, $f10, $f10 +/* 07BE98 7F047368 AE0800D0 */ sw $t0, 0xd0($s0) +/* 07BE9C 7F04736C 8FA904A4 */ lw $t1, 0x4a4($sp) +/* 07BEA0 7F047370 240B0001 */ li $t3, 1 +/* 07BEA4 7F047374 AFAB04A8 */ sw $t3, 0x4a8($sp) +/* 07BEA8 7F047378 1120002F */ beqz $t1, .L7F047438 +/* 07BEAC 7F04737C 3C198005 */ lui $t9, %hi(global_timer) +/* 07BEB0 7F047380 8F39837C */ lw $t9, %lo(global_timer)($t9) +/* 07BEB4 7F047384 3C0A8005 */ lui $t2, %hi(global_timer) +/* 07BEB8 7F047388 AE1900B8 */ sw $t9, 0xb8($s0) +/* 07BEBC 7F04738C 8D4A837C */ lw $t2, %lo(global_timer)($t2) +/* 07BEC0 7F047390 10000029 */ b .L7F047438 +/* 07BEC4 7F047394 AE0A00BC */ sw $t2, 0xbc($s0) +/* 07BEC8 7F047398 460A5000 */ add.s $f0, $f10, $f10 +.L7F04739C: +/* 07BECC 7F04739C 4600603C */ c.lt.s $f12, $f0 +/* 07BED0 7F0473A0 00000000 */ nop +/* 07BED4 7F0473A4 45020018 */ bc1fl .L7F047408 +/* 07BED8 7F0473A8 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BEDC 7F0473AC 46000387 */ neg.s $f14, $f0 +/* 07BEE0 7F0473B0 460C703C */ c.lt.s $f14, $f12 +/* 07BEE4 7F0473B4 00000000 */ nop +/* 07BEE8 7F0473B8 45020013 */ bc1fl .L7F047408 +/* 07BEEC 7F0473BC 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BEF0 7F0473C0 4600103C */ c.lt.s $f2, $f0 +/* 07BEF4 7F0473C4 00000000 */ nop +/* 07BEF8 7F0473C8 4502000F */ bc1fl .L7F047408 +/* 07BEFC 7F0473CC 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BF00 7F0473D0 4602703C */ c.lt.s $f14, $f2 +/* 07BF04 7F0473D4 240C0001 */ li $t4, 1 +/* 07BF08 7F0473D8 4502000B */ bc1fl .L7F047408 +/* 07BF0C 7F0473DC 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BF10 7F0473E0 AE0C00D0 */ sw $t4, 0xd0($s0) +/* 07BF14 7F0473E4 8FAD04A4 */ lw $t5, 0x4a4($sp) +/* 07BF18 7F0473E8 240E0001 */ li $t6, 1 +/* 07BF1C 7F0473EC AFAE04A8 */ sw $t6, 0x4a8($sp) +/* 07BF20 7F0473F0 11A00011 */ beqz $t5, .L7F047438 +/* 07BF24 7F0473F4 3C0F8005 */ lui $t7, %hi(global_timer) +/* 07BF28 7F0473F8 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 07BF2C 7F0473FC 1000000E */ b .L7F047438 +/* 07BF30 7F047400 AE0F00B8 */ sw $t7, 0xb8($s0) +/* 07BF34 7F047404 8E0200B8 */ lw $v0, 0xb8($s0) +.L7F047408: +/* 07BF38 7F047408 3C188005 */ lui $t8, %hi(global_timer) +/* 07BF3C 7F04740C 0442000B */ bltzl $v0, .L7F04743C +/* 07BF40 7F047410 8FB904A8 */ lw $t9, 0x4a8($sp) +/* 07BF44 7F047414 8F18837C */ lw $t8, %lo(global_timer)($t8) +/* 07BF48 7F047418 240B0001 */ li $t3, 1 +/* 07BF4C 7F04741C 24090001 */ li $t1, 1 +/* 07BF50 7F047420 2708FF88 */ addiu $t0, $t8, -0x78 +/* 07BF54 7F047424 0102082A */ slt $at, $t0, $v0 +/* 07BF58 7F047428 50200004 */ beql $at, $zero, .L7F04743C +/* 07BF5C 7F04742C 8FB904A8 */ lw $t9, 0x4a8($sp) +/* 07BF60 7F047430 AE0B00D0 */ sw $t3, 0xd0($s0) +/* 07BF64 7F047434 AFA904A8 */ sw $t1, 0x4a8($sp) +.L7F047438: +/* 07BF68 7F047438 8FB904A8 */ lw $t9, 0x4a8($sp) +.L7F04743C: +/* 07BF6C 7F04743C 3C018005 */ lui $at, %hi(D_80052B3C) +/* 07BF70 7F047440 53200013 */ beql $t9, $zero, .L7F047490 +/* 07BF74 7F047444 C60200B0 */ lwc1 $f2, 0xb0($s0) +/* 07BF78 7F047448 C4202B3C */ lwc1 $f0, %lo(D_80052B3C)($at) +/* 07BF7C 7F04744C 3C018005 */ lui $at, %hi(D_80052B40) +/* 07BF80 7F047450 C4262B40 */ lwc1 $f6, %lo(D_80052B40)($at) +/* 07BF84 7F047454 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07BF88 7F047458 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07BF8C 7F04745C C60A00B0 */ lwc1 $f10, 0xb0($s0) +/* 07BF90 7F047460 46043202 */ mul.s $f8, $f6, $f4 +/* 07BF94 7F047464 46085180 */ add.s $f6, $f10, $f8 +/* 07BF98 7F047468 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 07BF9C 7F04746C C60200B0 */ lwc1 $f2, 0xb0($s0) +/* 07BFA0 7F047470 4602003C */ c.lt.s $f0, $f2 +/* 07BFA4 7F047474 00000000 */ nop +/* 07BFA8 7F047478 45020023 */ bc1fl .L7F047508 +/* 07BFAC 7F04747C 4602B03C */ c.lt.s $f22, $f2 +/* 07BFB0 7F047480 E60000B0 */ swc1 $f0, 0xb0($s0) +/* 07BFB4 7F047484 1000001F */ b .L7F047504 +/* 07BFB8 7F047488 C60200B0 */ lwc1 $f2, 0xb0($s0) +/* 07BFBC 7F04748C C60200B0 */ lwc1 $f2, 0xb0($s0) +.L7F047490: +/* 07BFC0 7F047490 3C0A8005 */ lui $t2, %hi(clock_timer) +/* 07BFC4 7F047494 4602B03C */ c.lt.s $f22, $f2 +/* 07BFC8 7F047498 00000000 */ nop +/* 07BFCC 7F04749C 4502001A */ bc1fl .L7F047508 +/* 07BFD0 7F0474A0 4602B03C */ c.lt.s $f22, $f2 +/* 07BFD4 7F0474A4 8D4A8374 */ lw $t2, %lo(clock_timer)($t2) +/* 07BFD8 7F0474A8 00001025 */ move $v0, $zero +/* 07BFDC 7F0474AC 3C018005 */ lui $at, %hi(D_80052B44) +/* 07BFE0 7F0474B0 1940000C */ blez $t2, .L7F0474E4 +/* 07BFE4 7F0474B4 00000000 */ nop +/* 07BFE8 7F0474B8 C4202B44 */ lwc1 $f0, %lo(D_80052B44)($at) +/* 07BFEC 7F0474BC C60400B0 */ lwc1 $f4, 0xb0($s0) +.L7F0474C0: +/* 07BFF0 7F0474C0 3C0C8005 */ lui $t4, %hi(clock_timer) +/* 07BFF4 7F0474C4 24420001 */ addiu $v0, $v0, 1 +/* 07BFF8 7F0474C8 46002282 */ mul.s $f10, $f4, $f0 +/* 07BFFC 7F0474CC E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 07C000 7F0474D0 8D8C8374 */ lw $t4, %lo(clock_timer)($t4) +/* 07C004 7F0474D4 004C082A */ slt $at, $v0, $t4 +/* 07C008 7F0474D8 5420FFF9 */ bnezl $at, .L7F0474C0 +/* 07C00C 7F0474DC C60400B0 */ lwc1 $f4, 0xb0($s0) +/* 07C010 7F0474E0 C60200B0 */ lwc1 $f2, 0xb0($s0) +.L7F0474E4: +/* 07C014 7F0474E4 3C018005 */ lui $at, %hi(D_80052B48) +/* 07C018 7F0474E8 C4282B48 */ lwc1 $f8, %lo(D_80052B48)($at) +/* 07C01C 7F0474EC 4608103E */ c.le.s $f2, $f8 +/* 07C020 7F0474F0 00000000 */ nop +/* 07C024 7F0474F4 45020004 */ bc1fl .L7F047508 +/* 07C028 7F0474F8 4602B03C */ c.lt.s $f22, $f2 +/* 07C02C 7F0474FC E61600B0 */ swc1 $f22, 0xb0($s0) +/* 07C030 7F047500 C60200B0 */ lwc1 $f2, 0xb0($s0) +.L7F047504: +/* 07C034 7F047504 4602B03C */ c.lt.s $f22, $f2 +.L7F047508: +/* 07C038 7F047508 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07C03C 7F04750C 45020348 */ bc1fl .L7F048230 +/* 07C040 7F047510 92220003 */ lbu $v0, 3($s1) +/* 07C044 7F047514 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07C048 7F047518 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07C04C 7F04751C 46041282 */ mul.s $f10, $f2, $f4 +/* 07C050 7F047520 460A3200 */ add.s $f8, $f6, $f10 +/* 07C054 7F047524 E60800B4 */ swc1 $f8, 0xb4($s0) +/* 07C058 7F047528 C60000B4 */ lwc1 $f0, 0xb4($s0) +/* 07C05C 7F04752C 4600A03E */ c.le.s $f20, $f0 +/* 07C060 7F047530 00000000 */ nop +/* 07C064 7F047534 4502033E */ bc1fl .L7F048230 +/* 07C068 7F047538 92220003 */ lbu $v0, 3($s1) +/* 07C06C 7F04753C 46140101 */ sub.s $f4, $f0, $f20 +.L7F047540: +/* 07C070 7F047540 E60400B4 */ swc1 $f4, 0xb4($s0) +/* 07C074 7F047544 C60000B4 */ lwc1 $f0, 0xb4($s0) +/* 07C078 7F047548 4600A03E */ c.le.s $f20, $f0 +/* 07C07C 7F04754C 00000000 */ nop +/* 07C080 7F047550 4503FFFB */ bc1tl .L7F047540 +/* 07C084 7F047554 46140101 */ sub.s $f4, $f0, $f20 +/* 07C088 7F047558 10000335 */ b .L7F048230 +/* 07C08C 7F04755C 92220003 */ lbu $v0, 3($s1) +/* 07C090 7F047560 24010027 */ li $at, 39 +.L7F047564: +/* 07C094 7F047564 14410255 */ bne $v0, $at, .L7F047EBC +/* 07C098 7F047568 02202025 */ move $a0, $s1 +/* 07C09C 7F04756C C62600A0 */ lwc1 $f6, 0xa0($s1) +/* 07C0A0 7F047570 AFA00478 */ sw $zero, 0x478($sp) +/* 07C0A4 7F047574 24050001 */ li $a1, 1 +/* 07C0A8 7F047578 0FC0D521 */ jal parse_handle_actionblocks +/* 07C0AC 7F04757C E7A6047C */ swc1 $f6, 0x47c($sp) +/* 07C0B0 7F047580 C62E0098 */ lwc1 $f14, 0x98($s1) +/* 07C0B4 7F047584 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07C0B8 7F047588 460EB03E */ c.le.s $f22, $f14 +/* 07C0BC 7F04758C 00000000 */ nop +/* 07C0C0 7F047590 45020016 */ bc1fl .L7F0475EC +/* 07C0C4 7F047594 8E2E000C */ lw $t6, 0xc($s1) +/* 07C0C8 7F047598 C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07C0CC 7F04759C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07C0D0 7F0475A0 4602703E */ c.le.s $f14, $f2 +/* 07C0D4 7F0475A4 00000000 */ nop +/* 07C0D8 7F0475A8 45020006 */ bc1fl .L7F0475C4 +/* 07C0DC 7F0475AC C6200088 */ lwc1 $f0, 0x88($s1) +/* 07C0E0 7F0475B0 C62A0094 */ lwc1 $f10, 0x94($s1) +/* 07C0E4 7F0475B4 C62E0098 */ lwc1 $f14, 0x98($s1) +/* 07C0E8 7F0475B8 10000008 */ b .L7F0475DC +/* 07C0EC 7F0475BC E62A0088 */ swc1 $f10, 0x88($s1) +/* 07C0F0 7F0475C0 C6200088 */ lwc1 $f0, 0x88($s1) +.L7F0475C4: +/* 07C0F4 7F0475C4 C6280094 */ lwc1 $f8, 0x94($s1) +/* 07C0F8 7F0475C8 46004101 */ sub.s $f4, $f8, $f0 +/* 07C0FC 7F0475CC 46022182 */ mul.s $f6, $f4, $f2 +/* 07C100 7F0475D0 460E3283 */ div.s $f10, $f6, $f14 +/* 07C104 7F0475D4 460A0200 */ add.s $f8, $f0, $f10 +/* 07C108 7F0475D8 E6280088 */ swc1 $f8, 0x88($s1) +.L7F0475DC: +/* 07C10C 7F0475DC C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07C110 7F0475E0 46047181 */ sub.s $f6, $f14, $f4 +/* 07C114 7F0475E4 E6260098 */ swc1 $f6, 0x98($s1) +/* 07C118 7F0475E8 8E2E000C */ lw $t6, 0xc($s1) +.L7F0475EC: +/* 07C11C 7F0475EC 00008025 */ move $s0, $zero +/* 07C120 7F0475F0 000E6B00 */ sll $t5, $t6, 0xc +/* 07C124 7F0475F4 05A00014 */ bltz $t5, .L7F047648 +/* 07C128 7F0475F8 00000000 */ nop +/* 07C12C 7F0475FC 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 07C130 7F047600 02202025 */ move $a0, $s1 +/* 07C134 7F047604 10400010 */ beqz $v0, .L7F047648 +/* 07C138 7F047608 00000000 */ nop +/* 07C13C 7F04760C C62A0088 */ lwc1 $f10, 0x88($s1) +/* 07C140 7F047610 26240058 */ addiu $a0, $s1, 0x58 +/* 07C144 7F047614 3C0544FA */ lui $a1, 0x44fa +/* 07C148 7F047618 460AB03C */ c.lt.s $f22, $f10 +/* 07C14C 7F04761C 3C06453B */ lui $a2, (0x453B8000 >> 16) # lui $a2, 0x453b +/* 07C150 7F047620 45010006 */ bc1t .L7F04763C +/* 07C154 7F047624 00000000 */ nop +/* 07C158 7F047628 C6280094 */ lwc1 $f8, 0x94($s1) +/* 07C15C 7F04762C 4608B03C */ c.lt.s $f22, $f8 +/* 07C160 7F047630 00000000 */ nop +/* 07C164 7F047634 45000004 */ bc1f .L7F047648 +/* 07C168 7F047638 00000000 */ nop +.L7F04763C: +/* 07C16C 7F04763C 0FC14E25 */ jal sub_GAME_7F053894 +/* 07C170 7F047640 34C68000 */ ori $a2, (0x453B8000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 07C174 7F047644 00408025 */ move $s0, $v0 +.L7F047648: +/* 07C178 7F047648 5A000019 */ blezl $s0, .L7F0476B0 +/* 07C17C 7F04764C 8E2400AC */ lw $a0, 0xac($s1) +/* 07C180 7F047650 8E2400AC */ lw $a0, 0xac($s1) +/* 07C184 7F047654 10800005 */ beqz $a0, .L7F04766C +/* 07C188 7F047658 00000000 */ nop +/* 07C18C 7F04765C 0C00237C */ jal sfxGetArg0Unk3F +/* 07C190 7F047660 00000000 */ nop +/* 07C194 7F047664 5440000A */ bnezl $v0, .L7F047690 +/* 07C198 7F047668 8E2400AC */ lw $a0, 0xac($s1) +.L7F04766C: +/* 07C19C 7F04766C 0FC2FF01 */ jal get_controls_locked_flag +/* 07C1A0 7F047670 00000000 */ nop +/* 07C1A4 7F047674 14400005 */ bnez $v0, .L7F04768C +/* 07C1A8 7F047678 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07C1AC 7F04767C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07C1B0 7F047680 24050041 */ li $a1, 65 +/* 07C1B4 7F047684 0C002382 */ jal play_sfx_a1 +/* 07C1B8 7F047688 262600AC */ addiu $a2, $s1, 0xac +.L7F04768C: +/* 07C1BC 7F04768C 8E2400AC */ lw $a0, 0xac($s1) +.L7F047690: +/* 07C1C0 7F047690 24050008 */ li $a1, 8 +/* 07C1C4 7F047694 5080000F */ beql $a0, $zero, .L7F0476D4 +/* 07C1C8 7F047698 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C1CC 7F04769C 0C002461 */ jal sfx_c_70009184 +/* 07C1D0 7F0476A0 02003025 */ move $a2, $s0 +/* 07C1D4 7F0476A4 1000000B */ b .L7F0476D4 +/* 07C1D8 7F0476A8 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C1DC 7F0476AC 8E2400AC */ lw $a0, 0xac($s1) +.L7F0476B0: +/* 07C1E0 7F0476B0 50800008 */ beql $a0, $zero, .L7F0476D4 +/* 07C1E4 7F0476B4 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C1E8 7F0476B8 0C00237C */ jal sfxGetArg0Unk3F +/* 07C1EC 7F0476BC 00000000 */ nop +/* 07C1F0 7F0476C0 50400004 */ beql $v0, $zero, .L7F0476D4 +/* 07C1F4 7F0476C4 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C1F8 7F0476C8 0C002408 */ jal sfxDeactivate +/* 07C1FC 7F0476CC 8E2400AC */ lw $a0, 0xac($s1) +/* 07C200 7F0476D0 8E2400A4 */ lw $a0, 0xa4($s1) +.L7F0476D4: +/* 07C204 7F0476D4 3C058007 */ lui $a1, %hi(ptr_setup_path_tbl) +/* 07C208 7F0476D8 5080002A */ beql $a0, $zero, .L7F047784 +/* 07C20C 7F0476DC 8E2B0008 */ lw $t3, 8($s1) +/* 07C210 7F0476E0 8E3800A8 */ lw $t8, 0xa8($s1) +/* 07C214 7F0476E4 8C8F0000 */ lw $t7, ($a0) +/* 07C218 7F0476E8 24A55D00 */ addiu $a1, %lo(ptr_setup_path_tbl) # addiu $a1, $a1, 0x5d00 +/* 07C21C 7F0476EC 00184080 */ sll $t0, $t8, 2 +/* 07C220 7F0476F0 01E81021 */ addu $v0, $t7, $t0 +/* 07C224 7F0476F4 8C4B0000 */ lw $t3, ($v0) +/* 07C228 7F0476F8 8CB90000 */ lw $t9, ($a1) +/* 07C22C 7F0476FC 8CAE0018 */ lw $t6, 0x18($a1) +/* 07C230 7F047700 000B4900 */ sll $t1, $t3, 4 +/* 07C234 7F047704 01391821 */ addu $v1, $t1, $t9 +/* 07C238 7F047708 8C6A0000 */ lw $t2, ($v1) +/* 07C23C 7F04770C C6260058 */ lwc1 $f6, 0x58($s1) +/* 07C240 7F047710 C6280060 */ lwc1 $f8, 0x60($s1) +/* 07C244 7F047714 000A6080 */ sll $t4, $t2, 2 +/* 07C248 7F047718 018A6023 */ subu $t4, $t4, $t2 +/* 07C24C 7F04771C 000C6080 */ sll $t4, $t4, 2 +/* 07C250 7F047720 018A6023 */ subu $t4, $t4, $t2 +/* 07C254 7F047724 000C6080 */ sll $t4, $t4, 2 +/* 07C258 7F047728 018E3021 */ addu $a2, $t4, $t6 +/* 07C25C 7F04772C C4C40000 */ lwc1 $f4, ($a2) +/* 07C260 7F047730 C4CA0008 */ lwc1 $f10, 8($a2) +/* 07C264 7F047734 AFA60478 */ sw $a2, 0x478($sp) +/* 07C268 7F047738 46062301 */ sub.s $f12, $f4, $f6 +/* 07C26C 7F04773C 0FC16A8C */ jal atan2f +/* 07C270 7F047740 46085381 */ sub.s $f14, $f10, $f8 +/* 07C274 7F047744 E7A0047C */ swc1 $f0, 0x47c($sp) +/* 07C278 7F047748 8E2D0008 */ lw $t5, 8($s1) +/* 07C27C 7F04774C 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff +/* 07C280 7F047750 C7A4047C */ lwc1 $f4, 0x47c($sp) +/* 07C284 7F047754 000DC080 */ sll $t8, $t5, 2 +/* 07C288 7F047758 07010018 */ bgez $t8, .L7F0477BC +/* 07C28C 7F04775C 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 07C290 7F047760 8E2F0008 */ lw $t7, 8($s1) +/* 07C294 7F047764 E62400A0 */ swc1 $f4, 0xa0($s1) +/* 07C298 7F047768 02202025 */ move $a0, $s1 +/* 07C29C 7F04776C 01E14024 */ and $t0, $t7, $at +/* 07C2A0 7F047770 0FC112CE */ jal sub_GAME_7F044B38 +/* 07C2A4 7F047774 AE280008 */ sw $t0, 8($s1) +/* 07C2A8 7F047778 10000011 */ b .L7F0477C0 +/* 07C2AC 7F04777C C6260088 */ lwc1 $f6, 0x88($s1) +/* 07C2B0 7F047780 8E2B0008 */ lw $t3, 8($s1) +.L7F047784: +/* 07C2B4 7F047784 000B4880 */ sll $t1, $t3, 2 +/* 07C2B8 7F047788 0523000D */ bgezl $t1, .L7F0477C0 +/* 07C2BC 7F04778C C6260088 */ lwc1 $f6, 0x88($s1) +/* 07C2C0 7F047790 C62C0038 */ lwc1 $f12, 0x38($s1) +/* 07C2C4 7F047794 0FC16A8C */ jal atan2f +/* 07C2C8 7F047798 C62E0040 */ lwc1 $f14, 0x40($s1) +/* 07C2CC 7F04779C 8E390008 */ lw $t9, 8($s1) +/* 07C2D0 7F0477A0 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff +/* 07C2D4 7F0477A4 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 07C2D8 7F0477A8 03215024 */ and $t2, $t9, $at +/* 07C2DC 7F0477AC E62000A0 */ swc1 $f0, 0xa0($s1) +/* 07C2E0 7F0477B0 AE2A0008 */ sw $t2, 8($s1) +/* 07C2E4 7F0477B4 0FC112CE */ jal sub_GAME_7F044B38 +/* 07C2E8 7F0477B8 02202025 */ move $a0, $s1 +.L7F0477BC: +/* 07C2EC 7F0477BC C6260088 */ lwc1 $f6, 0x88($s1) +.L7F0477C0: +/* 07C2F0 7F0477C0 4606B03C */ c.lt.s $f22, $f6 +/* 07C2F4 7F0477C4 00000000 */ nop +/* 07C2F8 7F0477C8 450201AC */ bc1fl .L7F047E7C +/* 07C2FC 7F0477CC 8E280008 */ lw $t0, 8($s1) +/* 07C300 7F0477D0 8E6C0014 */ lw $t4, 0x14($s3) +/* 07C304 7F0477D4 8FAE0478 */ lw $t6, 0x478($sp) +/* 07C308 7F0477D8 4600B386 */ mov.s $f14, $f22 +/* 07C30C 7F0477DC AFAC0468 */ sw $t4, 0x468($sp) +/* 07C310 7F0477E0 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C314 7F0477E4 E7AC0438 */ swc1 $f12, 0x438($sp) +/* 07C318 7F0477E8 C62A009C */ lwc1 $f10, 0x9c($s1) +/* 07C31C 7F0477EC 11C00013 */ beqz $t6, .L7F04783C +/* 07C320 7F0477F0 E7AA0434 */ swc1 $f10, 0x434($sp) +/* 07C324 7F0477F4 262D0058 */ addiu $t5, $s1, 0x58 +/* 07C328 7F0477F8 AFAD0070 */ sw $t5, 0x70($sp) +/* 07C32C 7F0477FC 0FC15FAB */ jal sinf +/* 07C330 7F047800 E7AE0430 */ swc1 $f14, 0x430($sp) +/* 07C334 7F047804 E7A0043C */ swc1 $f0, 0x43c($sp) +/* 07C338 7F047808 E7B60440 */ swc1 $f22, 0x440($sp) +/* 07C33C 7F04780C 0FC15FA8 */ jal cosf +/* 07C340 7F047810 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C344 7F047814 E7A00444 */ swc1 $f0, 0x444($sp) +/* 07C348 7F047818 8FA40070 */ lw $a0, 0x70($sp) +/* 07C34C 7F04781C 27A5043C */ addiu $a1, $sp, 0x43c +/* 07C350 7F047820 8FA60478 */ lw $a2, 0x478($sp) +/* 07C354 7F047824 0FC0BF0D */ jal sub_GAME_7F02FC34 +/* 07C358 7F047828 3C074120 */ lui $a3, 0x4120 +/* 07C35C 7F04782C 10400003 */ beqz $v0, .L7F04783C +/* 07C360 7F047830 C7AE0430 */ lwc1 $f14, 0x430($sp) +/* 07C364 7F047834 C62800A0 */ lwc1 $f8, 0xa0($s1) +/* 07C368 7F047838 E7A8047C */ swc1 $f8, 0x47c($sp) +.L7F04783C: +/* 07C36C 7F04783C 3C018005 */ lui $at, %hi(D_80052B4C) +/* 07C370 7F047840 C4242B4C */ lwc1 $f4, %lo(D_80052B4C)($at) +/* 07C374 7F047844 3C018005 */ lui $at, %hi(D_80052B50) +/* 07C378 7F047848 C4262B50 */ lwc1 $f6, %lo(D_80052B50)($at) +/* 07C37C 7F04784C 3C0738E4 */ lui $a3, (0x38E4C389 >> 16) # lui $a3, 0x38e4 +/* 07C380 7F047850 34E7C389 */ ori $a3, (0x38E4C389 & 0xFFFF) # ori $a3, $a3, 0xc389 +/* 07C384 7F047854 262400A0 */ addiu $a0, $s1, 0xa0 +/* 07C388 7F047858 8FA5047C */ lw $a1, 0x47c($sp) +/* 07C38C 7F04785C 2626009C */ addiu $a2, $s1, 0x9c +/* 07C390 7F047860 E7AE0430 */ swc1 $f14, 0x430($sp) +/* 07C394 7F047864 E7A40010 */ swc1 $f4, 0x10($sp) +/* 07C398 7F047868 0FC10C43 */ jal sub_GAME_7F04310C +/* 07C39C 7F04786C E7A60014 */ swc1 $f6, 0x14($sp) +/* 07C3A0 7F047870 3C018005 */ lui $at, %hi(D_80052B54) +/* 07C3A4 7F047874 C4342B54 */ lwc1 $f20, %lo(D_80052B54)($at) +/* 07C3A8 7F047878 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C3AC 7F04787C C7AE0430 */ lwc1 $f14, 0x430($sp) +/* 07C3B0 7F047880 3C018005 */ lui $at, %hi(D_80052B58) +/* 07C3B4 7F047884 460CA03E */ c.le.s $f20, $f12 +/* 07C3B8 7F047888 00000000 */ nop +/* 07C3BC 7F04788C 45020009 */ bc1fl .L7F0478B4 +/* 07C3C0 7F047890 4616603C */ c.lt.s $f12, $f22 +/* 07C3C4 7F047894 46146281 */ sub.s $f10, $f12, $f20 +.L7F047898: +/* 07C3C8 7F047898 E62A00A0 */ swc1 $f10, 0xa0($s1) +/* 07C3CC 7F04789C C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C3D0 7F0478A0 460CA03E */ c.le.s $f20, $f12 +/* 07C3D4 7F0478A4 00000000 */ nop +/* 07C3D8 7F0478A8 4503FFFB */ bc1tl .L7F047898 +/* 07C3DC 7F0478AC 46146281 */ sub.s $f10, $f12, $f20 +/* 07C3E0 7F0478B0 4616603C */ c.lt.s $f12, $f22 +.L7F0478B4: +/* 07C3E4 7F0478B4 00000000 */ nop +/* 07C3E8 7F0478B8 45020009 */ bc1fl .L7F0478E0 +/* 07C3EC 7F0478BC C7A4047C */ lwc1 $f4, 0x47c($sp) +/* 07C3F0 7F0478C0 46146200 */ add.s $f8, $f12, $f20 +.L7F0478C4: +/* 07C3F4 7F0478C4 E62800A0 */ swc1 $f8, 0xa0($s1) +/* 07C3F8 7F0478C8 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C3FC 7F0478CC 4616603C */ c.lt.s $f12, $f22 +/* 07C400 7F0478D0 00000000 */ nop +/* 07C404 7F0478D4 4503FFFB */ bc1tl .L7F0478C4 +/* 07C408 7F0478D8 46146200 */ add.s $f8, $f12, $f20 +/* 07C40C 7F0478DC C7A4047C */ lwc1 $f4, 0x47c($sp) +.L7F0478E0: +/* 07C410 7F0478E0 460C2032 */ c.eq.s $f4, $f12 +/* 07C414 7F0478E4 00000000 */ nop +/* 07C418 7F0478E8 4502000F */ bc1fl .L7F047928 +/* 07C41C 7F0478EC 8E980008 */ lw $t8, 8($s4) +/* 07C420 7F0478F0 C620009C */ lwc1 $f0, 0x9c($s1) +/* 07C424 7F0478F4 C4262B58 */ lwc1 $f6, %lo(D_80052B58)($at) +/* 07C428 7F0478F8 3C018005 */ lui $at, %hi(D_80052B5C) +/* 07C42C 7F0478FC 4606003E */ c.le.s $f0, $f6 +/* 07C430 7F047900 00000000 */ nop +/* 07C434 7F047904 45020008 */ bc1fl .L7F047928 +/* 07C438 7F047908 8E980008 */ lw $t8, 8($s4) +/* 07C43C 7F04790C C42A2B5C */ lwc1 $f10, %lo(D_80052B5C)($at) +/* 07C440 7F047910 4600503E */ c.le.s $f10, $f0 +/* 07C444 7F047914 00000000 */ nop +/* 07C448 7F047918 45020003 */ bc1fl .L7F047928 +/* 07C44C 7F04791C 8E980008 */ lw $t8, 8($s4) +/* 07C450 7F047920 E636009C */ swc1 $f22, 0x9c($s1) +/* 07C454 7F047924 8E980008 */ lw $t8, 8($s4) +.L7F047928: +/* 07C458 7F047928 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07C45C 7F04792C C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07C460 7F047930 8F0F0008 */ lw $t7, 8($t8) +/* 07C464 7F047934 C7A40438 */ lwc1 $f4, 0x438($sp) +/* 07C468 7F047938 4602B03C */ c.lt.s $f22, $f2 +/* 07C46C 7F04793C 8DE8000C */ lw $t0, 0xc($t7) +/* 07C470 7F047940 45000004 */ bc1f .L7F047954 +/* 07C474 7F047944 8D100004 */ lw $s0, 4($t0) +/* 07C478 7F047948 C62800A0 */ lwc1 $f8, 0xa0($s1) +/* 07C47C 7F04794C 46044181 */ sub.s $f6, $f8, $f4 +/* 07C480 7F047950 46023383 */ div.s $f14, $f6, $f2 +.L7F047954: +/* 07C484 7F047954 4616703C */ c.lt.s $f14, $f22 +/* 07C488 7F047958 00000000 */ nop +/* 07C48C 7F04795C 45000002 */ bc1f .L7F047968 +/* 07C490 7F047960 00000000 */ nop +/* 07C494 7F047964 46147380 */ add.s $f14, $f14, $f20 +.L7F047968: +/* 07C498 7F047968 0FC15FAB */ jal sinf +/* 07C49C 7F04796C 46007306 */ mov.s $f12, $f14 +/* 07C4A0 7F047970 C60A0008 */ lwc1 $f10, 8($s0) +/* 07C4A4 7F047974 C6880014 */ lwc1 $f8, 0x14($s4) +/* 07C4A8 7F047978 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07C4AC 7F04797C 46085102 */ mul.s $f4, $f10, $f8 +/* 07C4B0 7F047980 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07C4B4 7F047984 46040182 */ mul.s $f6, $f0, $f4 +/* 07C4B8 7F047988 00000000 */ nop +/* 07C4BC 7F04798C 460A3202 */ mul.s $f8, $f6, $f10 +/* 07C4C0 7F047990 E7A80460 */ swc1 $f8, 0x460($sp) +/* 07C4C4 7F047994 0FC15FAB */ jal sinf +/* 07C4C8 7F047998 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C4CC 7F04799C E7A0043C */ swc1 $f0, 0x43c($sp) +/* 07C4D0 7F0479A0 E7B60440 */ swc1 $f22, 0x440($sp) +/* 07C4D4 7F0479A4 0FC15FA8 */ jal cosf +/* 07C4D8 7F0479A8 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C4DC 7F0479AC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07C4E0 7F0479B0 44817000 */ mtc1 $at, $f14 +/* 07C4E4 7F0479B4 E7A00444 */ swc1 $f0, 0x444($sp) +/* 07C4E8 7F0479B8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07C4EC 7F0479BC C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07C4F0 7F0479C0 C6240088 */ lwc1 $f4, 0x88($s1) +/* 07C4F4 7F0479C4 C7AA043C */ lwc1 $f10, 0x43c($sp) +/* 07C4F8 7F0479C8 C7AC0460 */ lwc1 $f12, 0x460($sp) +/* 07C4FC 7F0479CC 46022182 */ mul.s $f6, $f4, $f2 +/* 07C500 7F0479D0 C6240058 */ lwc1 $f4, 0x58($s1) +/* 07C504 7F0479D4 27B00468 */ addiu $s0, $sp, 0x468 +/* 07C508 7F0479D8 240B001F */ li $t3, 31 +/* 07C50C 7F0479DC 02002025 */ move $a0, $s0 +/* 07C510 7F0479E0 460A3202 */ mul.s $f8, $f6, $f10 +/* 07C514 7F0479E4 46082180 */ add.s $f6, $f4, $f8 +/* 07C518 7F0479E8 C7A40444 */ lwc1 $f4, 0x444($sp) +/* 07C51C 7F0479EC 460C2202 */ mul.s $f8, $f4, $f12 +/* 07C520 7F0479F0 46083181 */ sub.s $f6, $f6, $f8 +/* 07C524 7F0479F4 E7A60694 */ swc1 $f6, 0x694($sp) +/* 07C528 7F0479F8 C628005C */ lwc1 $f8, 0x5c($s1) +/* 07C52C 7F0479FC 44073000 */ mfc1 $a3, $f6 +/* 07C530 7F047A00 E7A80698 */ swc1 $f8, 0x698($sp) +/* 07C534 7F047A04 C6280088 */ lwc1 $f8, 0x88($s1) +/* 07C538 7F047A08 46024202 */ mul.s $f8, $f8, $f2 +/* 07C53C 7F047A0C 00000000 */ nop +/* 07C540 7F047A10 46044202 */ mul.s $f8, $f8, $f4 +/* 07C544 7F047A14 C6240060 */ lwc1 $f4, 0x60($s1) +/* 07C548 7F047A18 46082100 */ add.s $f4, $f4, $f8 +/* 07C54C 7F047A1C 460C5202 */ mul.s $f8, $f10, $f12 +/* 07C550 7F047A20 46044280 */ add.s $f10, $f8, $f4 +/* 07C554 7F047A24 E7AA069C */ swc1 $f10, 0x69c($sp) +/* 07C558 7F047A28 8E660010 */ lw $a2, 0x10($s3) +/* 07C55C 7F047A2C 8E650008 */ lw $a1, 8($s3) +/* 07C560 7F047A30 E7B60020 */ swc1 $f22, 0x20($sp) +/* 07C564 7F047A34 E7B60018 */ swc1 $f22, 0x18($sp) +/* 07C568 7F047A38 AFAB0014 */ sw $t3, 0x14($sp) +/* 07C56C 7F047A3C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C570 7F047A40 E7AE0024 */ swc1 $f14, 0x24($sp) +/* 07C574 7F047A44 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 07C578 7F047A48 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 07C57C 7F047A4C 104000FA */ beqz $v0, .L7F047E38 +/* 07C580 7F047A50 02002025 */ move $a0, $s0 +/* 07C584 7F047A54 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07C588 7F047A58 44814000 */ mtc1 $at, $f8 +/* 07C58C 7F047A5C 2409001F */ li $t1, 31 +/* 07C590 7F047A60 AFA90010 */ sw $t1, 0x10($sp) +/* 07C594 7F047A64 8FA50694 */ lw $a1, 0x694($sp) +/* 07C598 7F047A68 8FA6069C */ lw $a2, 0x69c($sp) +/* 07C59C 7F047A6C 3C074120 */ lui $a3, 0x4120 +/* 07C5A0 7F047A70 E7B60014 */ swc1 $f22, 0x14($sp) +/* 07C5A4 7F047A74 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 07C5A8 7F047A78 E7A80018 */ swc1 $f8, 0x18($sp) +/* 07C5AC 7F047A7C 044300EF */ bgezl $v0, .L7F047E3C +/* 07C5B0 7F047A80 C6260098 */ lwc1 $f6, 0x98($s1) +/* 07C5B4 7F047A84 8E790014 */ lw $t9, 0x14($s3) +/* 07C5B8 7F047A88 8FAA0468 */ lw $t2, 0x468($sp) +/* 07C5BC 7F047A8C 02202025 */ move $a0, $s1 +/* 07C5C0 7F047A90 AFB9044C */ sw $t9, 0x44c($sp) +/* 07C5C4 7F047A94 C6640008 */ lwc1 $f4, 8($s3) +/* 07C5C8 7F047A98 E7A40450 */ swc1 $f4, 0x450($sp) +/* 07C5CC 7F047A9C C666000C */ lwc1 $f6, 0xc($s3) +/* 07C5D0 7F047AA0 E7A60454 */ swc1 $f6, 0x454($sp) +/* 07C5D4 7F047AA4 C66A0010 */ lwc1 $f10, 0x10($s3) +/* 07C5D8 7F047AA8 E7AA0458 */ swc1 $f10, 0x458($sp) +/* 07C5DC 7F047AAC AE6A0014 */ sw $t2, 0x14($s3) +/* 07C5E0 7F047AB0 C7A20694 */ lwc1 $f2, 0x694($sp) +/* 07C5E4 7F047AB4 E6620008 */ swc1 $f2, 8($s3) +/* 07C5E8 7F047AB8 E6220058 */ swc1 $f2, 0x58($s1) +/* 07C5EC 7F047ABC C7A2069C */ lwc1 $f2, 0x69c($sp) +/* 07C5F0 7F047AC0 E6620010 */ swc1 $f2, 0x10($s3) +/* 07C5F4 7F047AC4 0FC10121 */ jal sub_GAME_7F040484 +/* 07C5F8 7F047AC8 E6220060 */ swc1 $f2, 0x60($s1) +/* 07C5FC 7F047ACC 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 07C600 7F047AD0 02202025 */ move $a0, $s1 +/* 07C604 7F047AD4 0FC1122A */ jal sub_GAME_7F0448A8 +/* 07C608 7F047AD8 02602025 */ move $a0, $s3 +/* 07C60C 7F047ADC 10400092 */ beqz $v0, .L7F047D28 +/* 07C610 7F047AE0 00409025 */ move $s2, $v0 +/* 07C614 7F047AE4 8E8C0008 */ lw $t4, 8($s4) +/* 07C618 7F047AE8 C6280018 */ lwc1 $f8, 0x18($s1) +/* 07C61C 7F047AEC 02002025 */ move $a0, $s0 +/* 07C620 7F047AF0 8D8E0008 */ lw $t6, 8($t4) +/* 07C624 7F047AF4 8DCD0028 */ lw $t5, 0x28($t6) +/* 07C628 7F047AF8 8DA20004 */ lw $v0, 4($t5) +/* 07C62C 7F047AFC C4440004 */ lwc1 $f4, 4($v0) +/* 07C630 7F047B00 46044182 */ mul.s $f6, $f8, $f4 +/* 07C634 7F047B04 E7A60424 */ swc1 $f6, 0x424($sp) +/* 07C638 7F047B08 C62A0020 */ lwc1 $f10, 0x20($s1) +/* 07C63C 7F047B0C C4480004 */ lwc1 $f8, 4($v0) +/* 07C640 7F047B10 46085102 */ mul.s $f4, $f10, $f8 +/* 07C644 7F047B14 E7A4042C */ swc1 $f4, 0x42c($sp) +/* 07C648 7F047B18 C6260018 */ lwc1 $f6, 0x18($s1) +/* 07C64C 7F047B1C C44A0008 */ lwc1 $f10, 8($v0) +/* 07C650 7F047B20 460A3202 */ mul.s $f8, $f6, $f10 +/* 07C654 7F047B24 E7A80418 */ swc1 $f8, 0x418($sp) +/* 07C658 7F047B28 C6240020 */ lwc1 $f4, 0x20($s1) +/* 07C65C 7F047B2C C4460008 */ lwc1 $f6, 8($v0) +/* 07C660 7F047B30 46062282 */ mul.s $f10, $f4, $f6 +/* 07C664 7F047B34 E7AA0420 */ swc1 $f10, 0x420($sp) +/* 07C668 7F047B38 C6280038 */ lwc1 $f8, 0x38($s1) +/* 07C66C 7F047B3C C4440014 */ lwc1 $f4, 0x14($v0) +/* 07C670 7F047B40 46044182 */ mul.s $f6, $f8, $f4 +/* 07C674 7F047B44 E7A6040C */ swc1 $f6, 0x40c($sp) +/* 07C678 7F047B48 C62A0040 */ lwc1 $f10, 0x40($s1) +/* 07C67C 7F047B4C C4480014 */ lwc1 $f8, 0x14($v0) +/* 07C680 7F047B50 46085102 */ mul.s $f4, $f10, $f8 +/* 07C684 7F047B54 E7A40414 */ swc1 $f4, 0x414($sp) +/* 07C688 7F047B58 C6260038 */ lwc1 $f6, 0x38($s1) +/* 07C68C 7F047B5C C44A0018 */ lwc1 $f10, 0x18($v0) +/* 07C690 7F047B60 460A3202 */ mul.s $f8, $f6, $f10 +/* 07C694 7F047B64 E7A80400 */ swc1 $f8, 0x400($sp) +/* 07C698 7F047B68 C6240040 */ lwc1 $f4, 0x40($s1) +/* 07C69C 7F047B6C C4460018 */ lwc1 $f6, 0x18($v0) +/* 07C6A0 7F047B70 C7A8040C */ lwc1 $f8, 0x40c($sp) +/* 07C6A4 7F047B74 46062282 */ mul.s $f10, $f4, $f6 +/* 07C6A8 7F047B78 C7A40424 */ lwc1 $f4, 0x424($sp) +/* 07C6AC 7F047B7C E7AA0408 */ swc1 $f10, 0x408($sp) +/* 07C6B0 7F047B80 8E780014 */ lw $t8, 0x14($s3) +/* 07C6B4 7F047B84 AFB80468 */ sw $t8, 0x468($sp) +/* 07C6B8 7F047B88 C6600008 */ lwc1 $f0, 8($s3) +/* 07C6BC 7F047B8C C6620010 */ lwc1 $f2, 0x10($s3) +/* 07C6C0 7F047B90 46040180 */ add.s $f6, $f0, $f4 +/* 07C6C4 7F047B94 C7A40414 */ lwc1 $f4, 0x414($sp) +/* 07C6C8 7F047B98 44050000 */ mfc1 $a1, $f0 +/* 07C6CC 7F047B9C 44061000 */ mfc1 $a2, $f2 +/* 07C6D0 7F047BA0 46064280 */ add.s $f10, $f8, $f6 +/* 07C6D4 7F047BA4 C7A8042C */ lwc1 $f8, 0x42c($sp) +/* 07C6D8 7F047BA8 46081180 */ add.s $f6, $f2, $f8 +/* 07C6DC 7F047BAC 44075000 */ mfc1 $a3, $f10 +/* 07C6E0 7F047BB0 46062280 */ add.s $f10, $f4, $f6 +/* 07C6E4 7F047BB4 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07C6E8 7F047BB8 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C6EC 7F047BBC 10400059 */ beqz $v0, .L7F047D24 +/* 07C6F0 7F047BC0 C7A40424 */ lwc1 $f4, 0x424($sp) +/* 07C6F4 7F047BC4 C6600008 */ lwc1 $f0, 8($s3) +/* 07C6F8 7F047BC8 C7A8040C */ lwc1 $f8, 0x40c($sp) +/* 07C6FC 7F047BCC C6620010 */ lwc1 $f2, 0x10($s3) +/* 07C700 7F047BD0 46040180 */ add.s $f6, $f0, $f4 +/* 07C704 7F047BD4 C7A40414 */ lwc1 $f4, 0x414($sp) +/* 07C708 7F047BD8 02002025 */ move $a0, $s0 +/* 07C70C 7F047BDC 46064280 */ add.s $f10, $f8, $f6 +/* 07C710 7F047BE0 C7A6042C */ lwc1 $f6, 0x42c($sp) +/* 07C714 7F047BE4 44055000 */ mfc1 $a1, $f10 +/* 07C718 7F047BE8 46061280 */ add.s $f10, $f2, $f6 +/* 07C71C 7F047BEC 460A2180 */ add.s $f6, $f4, $f10 +/* 07C720 7F047BF0 C7AA0418 */ lwc1 $f10, 0x418($sp) +/* 07C724 7F047BF4 44063000 */ mfc1 $a2, $f6 +/* 07C728 7F047BF8 460A0180 */ add.s $f6, $f0, $f10 +/* 07C72C 7F047BFC 46064280 */ add.s $f10, $f8, $f6 +/* 07C730 7F047C00 C7A80420 */ lwc1 $f8, 0x420($sp) +/* 07C734 7F047C04 46081180 */ add.s $f6, $f2, $f8 +/* 07C738 7F047C08 44075000 */ mfc1 $a3, $f10 +/* 07C73C 7F047C0C 46062280 */ add.s $f10, $f4, $f6 +/* 07C740 7F047C10 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07C744 7F047C14 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C748 7F047C18 10400042 */ beqz $v0, .L7F047D24 +/* 07C74C 7F047C1C C7A40418 */ lwc1 $f4, 0x418($sp) +/* 07C750 7F047C20 C6680008 */ lwc1 $f8, 8($s3) +/* 07C754 7F047C24 C7A6040C */ lwc1 $f6, 0x40c($sp) +/* 07C758 7F047C28 02002025 */ move $a0, $s0 +/* 07C75C 7F047C2C 46044000 */ add.s $f0, $f8, $f4 +/* 07C760 7F047C30 C7A40420 */ lwc1 $f4, 0x420($sp) +/* 07C764 7F047C34 C6680010 */ lwc1 $f8, 0x10($s3) +/* 07C768 7F047C38 46003280 */ add.s $f10, $f6, $f0 +/* 07C76C 7F047C3C C7A60414 */ lwc1 $f6, 0x414($sp) +/* 07C770 7F047C40 46044080 */ add.s $f2, $f8, $f4 +/* 07C774 7F047C44 44055000 */ mfc1 $a1, $f10 +/* 07C778 7F047C48 C7A80400 */ lwc1 $f8, 0x400($sp) +/* 07C77C 7F047C4C 46023280 */ add.s $f10, $f6, $f2 +/* 07C780 7F047C50 C7A60408 */ lwc1 $f6, 0x408($sp) +/* 07C784 7F047C54 46004100 */ add.s $f4, $f8, $f0 +/* 07C788 7F047C58 44065000 */ mfc1 $a2, $f10 +/* 07C78C 7F047C5C 46023280 */ add.s $f10, $f6, $f2 +/* 07C790 7F047C60 44072000 */ mfc1 $a3, $f4 +/* 07C794 7F047C64 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07C798 7F047C68 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C79C 7F047C6C 1040002D */ beqz $v0, .L7F047D24 +/* 07C7A0 7F047C70 C7A40418 */ lwc1 $f4, 0x418($sp) +/* 07C7A4 7F047C74 C6600008 */ lwc1 $f0, 8($s3) +/* 07C7A8 7F047C78 C7A80400 */ lwc1 $f8, 0x400($sp) +/* 07C7AC 7F047C7C C6620010 */ lwc1 $f2, 0x10($s3) +/* 07C7B0 7F047C80 46040180 */ add.s $f6, $f0, $f4 +/* 07C7B4 7F047C84 C7A40408 */ lwc1 $f4, 0x408($sp) +/* 07C7B8 7F047C88 02002025 */ move $a0, $s0 +/* 07C7BC 7F047C8C 46064280 */ add.s $f10, $f8, $f6 +/* 07C7C0 7F047C90 C7A60420 */ lwc1 $f6, 0x420($sp) +/* 07C7C4 7F047C94 44055000 */ mfc1 $a1, $f10 +/* 07C7C8 7F047C98 46061280 */ add.s $f10, $f2, $f6 +/* 07C7CC 7F047C9C 460A2180 */ add.s $f6, $f4, $f10 +/* 07C7D0 7F047CA0 C7AA0424 */ lwc1 $f10, 0x424($sp) +/* 07C7D4 7F047CA4 44063000 */ mfc1 $a2, $f6 +/* 07C7D8 7F047CA8 460A0180 */ add.s $f6, $f0, $f10 +/* 07C7DC 7F047CAC 46064280 */ add.s $f10, $f8, $f6 +/* 07C7E0 7F047CB0 C7A8042C */ lwc1 $f8, 0x42c($sp) +/* 07C7E4 7F047CB4 46081180 */ add.s $f6, $f2, $f8 +/* 07C7E8 7F047CB8 44075000 */ mfc1 $a3, $f10 +/* 07C7EC 7F047CBC 46062280 */ add.s $f10, $f4, $f6 +/* 07C7F0 7F047CC0 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07C7F4 7F047CC4 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C7F8 7F047CC8 10400016 */ beqz $v0, .L7F047D24 +/* 07C7FC 7F047CCC C7A40424 */ lwc1 $f4, 0x424($sp) +/* 07C800 7F047CD0 C6680008 */ lwc1 $f8, 8($s3) +/* 07C804 7F047CD4 C7A60400 */ lwc1 $f6, 0x400($sp) +/* 07C808 7F047CD8 02002025 */ move $a0, $s0 +/* 07C80C 7F047CDC 46044000 */ add.s $f0, $f8, $f4 +/* 07C810 7F047CE0 C7A4042C */ lwc1 $f4, 0x42c($sp) +/* 07C814 7F047CE4 C6680010 */ lwc1 $f8, 0x10($s3) +/* 07C818 7F047CE8 46003280 */ add.s $f10, $f6, $f0 +/* 07C81C 7F047CEC C7A60408 */ lwc1 $f6, 0x408($sp) +/* 07C820 7F047CF0 46044080 */ add.s $f2, $f8, $f4 +/* 07C824 7F047CF4 44055000 */ mfc1 $a1, $f10 +/* 07C828 7F047CF8 C7A8040C */ lwc1 $f8, 0x40c($sp) +/* 07C82C 7F047CFC 46023280 */ add.s $f10, $f6, $f2 +/* 07C830 7F047D00 C7A60414 */ lwc1 $f6, 0x414($sp) +/* 07C834 7F047D04 46004100 */ add.s $f4, $f8, $f0 +/* 07C838 7F047D08 44065000 */ mfc1 $a2, $f10 +/* 07C83C 7F047D0C 46023280 */ add.s $f10, $f6, $f2 +/* 07C840 7F047D10 44072000 */ mfc1 $a3, $f4 +/* 07C844 7F047D14 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07C848 7F047D18 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C84C 7F047D1C 14400002 */ bnez $v0, .L7F047D28 +/* 07C850 7F047D20 00000000 */ nop +.L7F047D24: +/* 07C854 7F047D24 00009025 */ move $s2, $zero +.L7F047D28: +/* 07C858 7F047D28 12400023 */ beqz $s2, .L7F047DB8 +/* 07C85C 7F047D2C 02202025 */ move $a0, $s1 +/* 07C860 7F047D30 262F0058 */ addiu $t7, $s1, 0x58 +/* 07C864 7F047D34 AFAF0070 */ sw $t7, 0x70($sp) +/* 07C868 7F047D38 0FC112CE */ jal sub_GAME_7F044B38 +/* 07C86C 7F047D3C 2630007C */ addiu $s0, $s1, 0x7c +/* 07C870 7F047D40 02602025 */ move $a0, $s3 +/* 07C874 7F047D44 0FC100AD */ jal sub_GAME_7F0402B4 +/* 07C878 7F047D48 02002825 */ move $a1, $s0 +/* 07C87C 7F047D4C 0FC146F3 */ jal detonate_proxmine_In_range +/* 07C880 7F047D50 8FA40070 */ lw $a0, 0x70($sp) +/* 07C884 7F047D54 8FA80478 */ lw $t0, 0x478($sp) +/* 07C888 7F047D58 27A40450 */ addiu $a0, $sp, 0x450 +/* 07C88C 7F047D5C 27A50694 */ addiu $a1, $sp, 0x694 +/* 07C890 7F047D60 11000054 */ beqz $t0, .L7F047EB4 +/* 07C894 7F047D64 01003025 */ move $a2, $t0 +/* 07C898 7F047D68 0FC0BF54 */ jal sub_GAME_7F02FD50 +/* 07C89C 7F047D6C 3C0742C8 */ lui $a3, 0x42c8 +/* 07C8A0 7F047D70 10400050 */ beqz $v0, .L7F047EB4 +/* 07C8A4 7F047D74 00000000 */ nop +/* 07C8A8 7F047D78 8E2B00A8 */ lw $t3, 0xa8($s1) +/* 07C8AC 7F047D7C 8E3900A4 */ lw $t9, 0xa4($s1) +/* 07C8B0 7F047D80 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 07C8B4 7F047D84 25690001 */ addiu $t1, $t3, 1 +/* 07C8B8 7F047D88 AE2900A8 */ sw $t1, 0xa8($s1) +/* 07C8BC 7F047D8C 8F2A0000 */ lw $t2, ($t9) +/* 07C8C0 7F047D90 00097080 */ sll $t6, $t1, 2 +/* 07C8C4 7F047D94 014E6821 */ addu $t5, $t2, $t6 +/* 07C8C8 7F047D98 8DB80000 */ lw $t8, ($t5) +/* 07C8CC 7F047D9C 07010045 */ bgez $t8, .L7F047EB4 +/* 07C8D0 7F047DA0 00000000 */ nop +/* 07C8D4 7F047DA4 44814000 */ mtc1 $at, $f8 +/* 07C8D8 7F047DA8 AE2000A4 */ sw $zero, 0xa4($s1) +/* 07C8DC 7F047DAC E6360094 */ swc1 $f22, 0x94($s1) +/* 07C8E0 7F047DB0 10000040 */ b .L7F047EB4 +/* 07C8E4 7F047DB4 E6280098 */ swc1 $f8, 0x98($s1) +.L7F047DB8: +/* 07C8E8 7F047DB8 C6240098 */ lwc1 $f4, 0x98($s1) +/* 07C8EC 7F047DBC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 07C8F0 7F047DC0 4616203C */ c.lt.s $f4, $f22 +/* 07C8F4 7F047DC4 00000000 */ nop +/* 07C8F8 7F047DC8 45020006 */ bc1fl .L7F047DE4 +/* 07C8FC 7F047DCC E6360088 */ swc1 $f22, 0x88($s1) +/* 07C900 7F047DD0 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07C904 7F047DD4 44815000 */ mtc1 $at, $f10 +/* 07C908 7F047DD8 E6260094 */ swc1 $f6, 0x94($s1) +/* 07C90C 7F047DDC E62A0098 */ swc1 $f10, 0x98($s1) +/* 07C910 7F047DE0 E6360088 */ swc1 $f22, 0x88($s1) +.L7F047DE4: +/* 07C914 7F047DE4 C7A80438 */ lwc1 $f8, 0x438($sp) +/* 07C918 7F047DE8 02202025 */ move $a0, $s1 +/* 07C91C 7F047DEC E62800A0 */ swc1 $f8, 0xa0($s1) +/* 07C920 7F047DF0 C7A40434 */ lwc1 $f4, 0x434($sp) +/* 07C924 7F047DF4 E624009C */ swc1 $f4, 0x9c($s1) +/* 07C928 7F047DF8 8FAF044C */ lw $t7, 0x44c($sp) +/* 07C92C 7F047DFC AE6F0014 */ sw $t7, 0x14($s3) +/* 07C930 7F047E00 C7A20450 */ lwc1 $f2, 0x450($sp) +/* 07C934 7F047E04 E6620008 */ swc1 $f2, 8($s3) +/* 07C938 7F047E08 E6220058 */ swc1 $f2, 0x58($s1) +/* 07C93C 7F047E0C C7A20454 */ lwc1 $f2, 0x454($sp) +/* 07C940 7F047E10 E662000C */ swc1 $f2, 0xc($s3) +/* 07C944 7F047E14 E622005C */ swc1 $f2, 0x5c($s1) +/* 07C948 7F047E18 C7A20458 */ lwc1 $f2, 0x458($sp) +/* 07C94C 7F047E1C E6620010 */ swc1 $f2, 0x10($s3) +/* 07C950 7F047E20 0FC10121 */ jal sub_GAME_7F040484 +/* 07C954 7F047E24 E6220060 */ swc1 $f2, 0x60($s1) +/* 07C958 7F047E28 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 07C95C 7F047E2C 02202025 */ move $a0, $s1 +/* 07C960 7F047E30 10000020 */ b .L7F047EB4 +/* 07C964 7F047E34 00000000 */ nop +.L7F047E38: +/* 07C968 7F047E38 C6260098 */ lwc1 $f6, 0x98($s1) +.L7F047E3C: +/* 07C96C 7F047E3C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 07C970 7F047E40 4616303C */ c.lt.s $f6, $f22 +/* 07C974 7F047E44 00000000 */ nop +/* 07C978 7F047E48 45020006 */ bc1fl .L7F047E64 +/* 07C97C 7F047E4C E6360088 */ swc1 $f22, 0x88($s1) +/* 07C980 7F047E50 C62A0088 */ lwc1 $f10, 0x88($s1) +/* 07C984 7F047E54 44814000 */ mtc1 $at, $f8 +/* 07C988 7F047E58 E62A0094 */ swc1 $f10, 0x94($s1) +/* 07C98C 7F047E5C E6280098 */ swc1 $f8, 0x98($s1) +/* 07C990 7F047E60 E6360088 */ swc1 $f22, 0x88($s1) +.L7F047E64: +/* 07C994 7F047E64 C7A40438 */ lwc1 $f4, 0x438($sp) +/* 07C998 7F047E68 E62400A0 */ swc1 $f4, 0xa0($s1) +/* 07C99C 7F047E6C C7A60434 */ lwc1 $f6, 0x434($sp) +/* 07C9A0 7F047E70 10000010 */ b .L7F047EB4 +/* 07C9A4 7F047E74 E626009C */ swc1 $f6, 0x9c($s1) +/* 07C9A8 7F047E78 8E280008 */ lw $t0, 8($s1) +.L7F047E7C: +/* 07C9AC 7F047E7C 00085880 */ sll $t3, $t0, 2 +/* 07C9B0 7F047E80 0561000C */ bgez $t3, .L7F047EB4 +/* 07C9B4 7F047E84 00000000 */ nop +/* 07C9B8 7F047E88 C62C0038 */ lwc1 $f12, 0x38($s1) +/* 07C9BC 7F047E8C 0FC16A8C */ jal atan2f +/* 07C9C0 7F047E90 C62E0040 */ lwc1 $f14, 0x40($s1) +/* 07C9C4 7F047E94 8E290008 */ lw $t1, 8($s1) +/* 07C9C8 7F047E98 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff +/* 07C9CC 7F047E9C 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 07C9D0 7F047EA0 0121C824 */ and $t9, $t1, $at +/* 07C9D4 7F047EA4 E62000A0 */ swc1 $f0, 0xa0($s1) +/* 07C9D8 7F047EA8 AE390008 */ sw $t9, 8($s1) +/* 07C9DC 7F047EAC 0FC112CE */ jal sub_GAME_7F044B38 +/* 07C9E0 7F047EB0 02202025 */ move $a0, $s1 +.L7F047EB4: +/* 07C9E4 7F047EB4 100000DE */ b .L7F048230 +/* 07C9E8 7F047EB8 92220003 */ lbu $v0, 3($s1) +.L7F047EBC: +/* 07C9EC 7F047EBC 24010028 */ li $at, 40 +/* 07C9F0 7F047EC0 144100DA */ bne $v0, $at, .L7F04822C +/* 07C9F4 7F047EC4 02202025 */ move $a0, $s1 +/* 07C9F8 7F047EC8 0FC0D521 */ jal parse_handle_actionblocks +/* 07C9FC 7F047ECC 24050001 */ li $a1, 1 +/* 07CA00 7F047ED0 8E300014 */ lw $s0, 0x14($s1) +/* 07CA04 7F047ED4 26250058 */ addiu $a1, $s1, 0x58 +/* 07CA08 7F047ED8 8E0C0020 */ lw $t4, 0x20($s0) +/* 07CA0C 7F047EDC 02002025 */ move $a0, $s0 +/* 07CA10 7F047EE0 51800065 */ beql $t4, $zero, .L7F048078 +/* 07CA14 7F047EE4 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07CA18 7F047EE8 0FC1B303 */ jal setsuboffset +/* 07CA1C 7F047EEC AFA50070 */ sw $a1, 0x70($sp) +/* 07CA20 7F047EF0 8E300014 */ lw $s0, 0x14($s1) +/* 07CA24 7F047EF4 3C0E8003 */ lui $t6, %hi(animation_table_ptrs2+4) +/* 07CA28 7F047EF8 8DCEA050 */ lw $t6, %lo(animation_table_ptrs2+4)($t6) +/* 07CA2C 7F047EFC 8E0A0020 */ lw $t2, 0x20($s0) +/* 07CA30 7F047F00 3C054127 */ lui $a1, (0x4127020C >> 16) # lui $a1, 0x4127 +/* 07CA34 7F047F04 02002025 */ move $a0, $s0 +/* 07CA38 7F047F08 154E0009 */ bne $t2, $t6, .L7F047F30 +/* 07CA3C 7F047F0C 00000000 */ nop +/* 07CA40 7F047F10 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 07CA44 7F047F14 34A5020C */ ori $a1, (0x4127020C & 0xFFFF) # ori $a1, $a1, 0x20c +/* 07CA48 7F047F18 3C054049 */ lui $a1, (0x40490FDB >> 16) # lui $a1, 0x4049 +/* 07CA4C 7F047F1C 34A50FDB */ ori $a1, (0x40490FDB & 0xFFFF) # ori $a1, $a1, 0xfdb +/* 07CA50 7F047F20 0FC1B34F */ jal setsubroty +/* 07CA54 7F047F24 8E240014 */ lw $a0, 0x14($s1) +/* 07CA58 7F047F28 10000024 */ b .L7F047FBC +/* 07CA5C 7F047F2C 00000000 */ nop +.L7F047F30: +/* 07CA60 7F047F30 0C001A57 */ jal get_stage_num +/* 07CA64 7F047F34 00000000 */ nop +/* 07CA68 7F047F38 24010016 */ li $at, 22 +/* 07CA6C 7F047F3C 1441000A */ bne $v0, $at, .L7F047F68 +/* 07CA70 7F047F40 3C053F85 */ lui $a1, (0x3F859B3D >> 16) # lui $a1, 0x3f85 +/* 07CA74 7F047F44 8E240014 */ lw $a0, 0x14($s1) +/* 07CA78 7F047F48 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 07CA7C 7F047F4C 34A59B3D */ ori $a1, (0x3F859B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d +/* 07CA80 7F047F50 3C054016 */ lui $a1, (0x4016CBE4 >> 16) # lui $a1, 0x4016 +/* 07CA84 7F047F54 34A5CBE4 */ ori $a1, (0x4016CBE4 & 0xFFFF) # ori $a1, $a1, 0xcbe4 +/* 07CA88 7F047F58 0FC1B34F */ jal setsubroty +/* 07CA8C 7F047F5C 8E240014 */ lw $a0, 0x14($s1) +/* 07CA90 7F047F60 10000016 */ b .L7F047FBC +/* 07CA94 7F047F64 00000000 */ nop +.L7F047F68: +/* 07CA98 7F047F68 0C001A57 */ jal get_stage_num +/* 07CA9C 7F047F6C 00000000 */ nop +/* 07CAA0 7F047F70 2401001A */ li $at, 26 +/* 07CAA4 7F047F74 1441000B */ bne $v0, $at, .L7F047FA4 +/* 07CAA8 7F047F78 3C053F85 */ lui $a1, 0x3f85 +/* 07CAAC 7F047F7C 3C053F85 */ lui $a1, (0x3F859B3D >> 16) # lui $a1, 0x3f85 +/* 07CAB0 7F047F80 34A59B3D */ ori $a1, (0x3F859B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d +/* 07CAB4 7F047F84 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 07CAB8 7F047F88 8E240014 */ lw $a0, 0x14($s1) +/* 07CABC 7F047F8C 3C05407B */ lui $a1, (0x407B9B3D >> 16) # lui $a1, 0x407b +/* 07CAC0 7F047F90 34A553D1 */ ori $a1, (0x407B53D1 & 0xFFFF) # ori $a1, $a1, 0x53d1 +/* 07CAC4 7F047F94 0FC1B34F */ jal setsubroty +/* 07CAC8 7F047F98 8E240014 */ lw $a0, 0x14($s1) +/* 07CACC 7F047F9C 10000007 */ b .L7F047FBC +/* 07CAD0 7F047FA0 00000000 */ nop +.L7F047FA4: +/* 07CAD4 7F047FA4 8E240014 */ lw $a0, 0x14($s1) +/* 07CAD8 7F047FA8 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 07CADC 7F047FAC 34A59B3D */ ori $a1, (0x407B9B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d +/* 07CAE0 7F047FB0 4405B000 */ mfc1 $a1, $f22 +/* 07CAE4 7F047FB4 0FC1B34F */ jal setsubroty +/* 07CAE8 7F047FB8 8E240014 */ lw $a0, 0x14($s1) +.L7F047FBC: +/* 07CAEC 7F047FBC 3C058005 */ lui $a1, %hi(clock_timer) +/* 07CAF0 7F047FC0 8CA58374 */ lw $a1, %lo(clock_timer)($a1) +/* 07CAF4 7F047FC4 8E240014 */ lw $a0, 0x14($s1) +/* 07CAF8 7F047FC8 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 07CAFC 7F047FCC 24060001 */ li $a2, 1 +/* 07CB00 7F047FD0 0FC1B5AC */ jal subcalcpos +/* 07CB04 7F047FD4 8E240014 */ lw $a0, 0x14($s1) +/* 07CB08 7F047FD8 8E240014 */ lw $a0, 0x14($s1) +/* 07CB0C 7F047FDC 0FC1B2E6 */ jal getsuboffset +/* 07CB10 7F047FE0 8FA50070 */ lw $a1, 0x70($sp) +/* 07CB14 7F047FE4 C62A0058 */ lwc1 $f10, 0x58($s1) +/* 07CB18 7F047FE8 3C058007 */ lui $a1, %hi(ptr_setup_path_tbl) +/* 07CB1C 7F047FEC 24A55D00 */ addiu $a1, %lo(ptr_setup_path_tbl) # addiu $a1, $a1, 0x5d00 +/* 07CB20 7F047FF0 E66A0008 */ swc1 $f10, 8($s3) +/* 07CB24 7F047FF4 C6280060 */ lwc1 $f8, 0x60($s1) +/* 07CB28 7F047FF8 E6680010 */ swc1 $f8, 0x10($s3) +/* 07CB2C 7F047FFC 86220006 */ lh $v0, 6($s1) +/* 07CB30 7F048000 28412710 */ slti $at, $v0, 0x2710 +/* 07CB34 7F048004 1020000B */ beqz $at, .L7F048034 +/* 07CB38 7F048008 00027900 */ sll $t7, $v0, 4 +/* 07CB3C 7F04800C 00026880 */ sll $t5, $v0, 2 +/* 07CB40 7F048010 3C058007 */ lui $a1, %hi(ptr_setup_path_tbl) +/* 07CB44 7F048014 01A26823 */ subu $t5, $t5, $v0 +/* 07CB48 7F048018 24A55D00 */ addiu $a1, %lo(ptr_setup_path_tbl) # addiu $a1, $a1, 0x5d00 +/* 07CB4C 7F04801C 000D6880 */ sll $t5, $t5, 2 +/* 07CB50 7F048020 8CB80018 */ lw $t8, 0x18($a1) +/* 07CB54 7F048024 01A26823 */ subu $t5, $t5, $v0 +/* 07CB58 7F048028 000D6880 */ sll $t5, $t5, 2 +/* 07CB5C 7F04802C 10000008 */ b .L7F048050 +/* 07CB60 7F048030 01B81821 */ addu $v1, $t5, $t8 +.L7F048034: +/* 07CB64 7F048034 8CA8001C */ lw $t0, 0x1c($a1) +/* 07CB68 7F048038 01E27821 */ addu $t7, $t7, $v0 +/* 07CB6C 7F04803C 000F7880 */ sll $t7, $t7, 2 +/* 07CB70 7F048040 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 07CB74 7F048044 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 07CB78 7F048048 01E81821 */ addu $v1, $t7, $t0 +/* 07CB7C 7F04804C 00611821 */ addu $v1, $v1, $at +.L7F048050: +/* 07CB80 7F048050 C624005C */ lwc1 $f4, 0x5c($s1) +/* 07CB84 7F048054 C4660004 */ lwc1 $f6, 4($v1) +/* 07CB88 7F048058 46062280 */ add.s $f10, $f4, $f6 +/* 07CB8C 7F04805C E66A000C */ swc1 $f10, 0xc($s3) +/* 07CB90 7F048060 C668000C */ lwc1 $f8, 0xc($s3) +/* 07CB94 7F048064 8E240014 */ lw $a0, 0x14($s1) +/* 07CB98 7F048068 E628005C */ swc1 $f8, 0x5c($s1) +/* 07CB9C 7F04806C 0FC1B303 */ jal setsuboffset +/* 07CBA0 7F048070 8FA50070 */ lw $a1, 0x70($sp) +/* 07CBA4 7F048074 C62C00A0 */ lwc1 $f12, 0xa0($s1) +.L7F048078: +/* 07CBA8 7F048078 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07CBAC 7F04807C 460CB03E */ c.le.s $f22, $f12 +/* 07CBB0 7F048080 00000000 */ nop +/* 07CBB4 7F048084 45020016 */ bc1fl .L7F0480E0 +/* 07CBB8 7F048088 C6200094 */ lwc1 $f0, 0x94($s1) +/* 07CBBC 7F04808C C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07CBC0 7F048090 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07CBC4 7F048094 4602603E */ c.le.s $f12, $f2 +/* 07CBC8 7F048098 00000000 */ nop +/* 07CBCC 7F04809C 45020006 */ bc1fl .L7F0480B8 +/* 07CBD0 7F0480A0 C62E0098 */ lwc1 $f14, 0x98($s1) +/* 07CBD4 7F0480A4 C624009C */ lwc1 $f4, 0x9c($s1) +/* 07CBD8 7F0480A8 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07CBDC 7F0480AC 10000008 */ b .L7F0480D0 +/* 07CBE0 7F0480B0 E6240098 */ swc1 $f4, 0x98($s1) +/* 07CBE4 7F0480B4 C62E0098 */ lwc1 $f14, 0x98($s1) +.L7F0480B8: +/* 07CBE8 7F0480B8 C626009C */ lwc1 $f6, 0x9c($s1) +/* 07CBEC 7F0480BC 460E3281 */ sub.s $f10, $f6, $f14 +/* 07CBF0 7F0480C0 46025202 */ mul.s $f8, $f10, $f2 +/* 07CBF4 7F0480C4 460C4103 */ div.s $f4, $f8, $f12 +/* 07CBF8 7F0480C8 46047180 */ add.s $f6, $f14, $f4 +/* 07CBFC 7F0480CC E6260098 */ swc1 $f6, 0x98($s1) +.L7F0480D0: +/* 07CC00 7F0480D0 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07CC04 7F0480D4 460A6201 */ sub.s $f8, $f12, $f10 +/* 07CC08 7F0480D8 E62800A0 */ swc1 $f8, 0xa0($s1) +/* 07CC0C 7F0480DC C6200094 */ lwc1 $f0, 0x94($s1) +.L7F0480E0: +/* 07CC10 7F0480E0 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07CC14 7F0480E4 4600B03E */ c.le.s $f22, $f0 +/* 07CC18 7F0480E8 00000000 */ nop +/* 07CC1C 7F0480EC 45020016 */ bc1fl .L7F048148 +/* 07CC20 7F0480F0 8E2B000C */ lw $t3, 0xc($s1) +/* 07CC24 7F0480F4 C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07CC28 7F0480F8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07CC2C 7F0480FC 4602003E */ c.le.s $f0, $f2 +/* 07CC30 7F048100 00000000 */ nop +/* 07CC34 7F048104 45020006 */ bc1fl .L7F048120 +/* 07CC38 7F048108 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07CC3C 7F04810C C6240090 */ lwc1 $f4, 0x90($s1) +/* 07CC40 7F048110 C6200094 */ lwc1 $f0, 0x94($s1) +/* 07CC44 7F048114 10000008 */ b .L7F048138 +/* 07CC48 7F048118 E624008C */ swc1 $f4, 0x8c($s1) +/* 07CC4C 7F04811C C62C008C */ lwc1 $f12, 0x8c($s1) +.L7F048120: +/* 07CC50 7F048120 C6260090 */ lwc1 $f6, 0x90($s1) +/* 07CC54 7F048124 460C3281 */ sub.s $f10, $f6, $f12 +/* 07CC58 7F048128 46025202 */ mul.s $f8, $f10, $f2 +/* 07CC5C 7F04812C 46004103 */ div.s $f4, $f8, $f0 +/* 07CC60 7F048130 46046180 */ add.s $f6, $f12, $f4 +/* 07CC64 7F048134 E626008C */ swc1 $f6, 0x8c($s1) +.L7F048138: +/* 07CC68 7F048138 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07CC6C 7F04813C 460A0201 */ sub.s $f8, $f0, $f10 +/* 07CC70 7F048140 E6280094 */ swc1 $f8, 0x94($s1) +/* 07CC74 7F048144 8E2B000C */ lw $t3, 0xc($s1) +.L7F048148: +/* 07CC78 7F048148 00008025 */ move $s0, $zero +/* 07CC7C 7F04814C 000B4B00 */ sll $t1, $t3, 0xc +/* 07CC80 7F048150 05200014 */ bltz $t1, .L7F0481A4 +/* 07CC84 7F048154 00000000 */ nop +/* 07CC88 7F048158 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 07CC8C 7F04815C 02202025 */ move $a0, $s1 +/* 07CC90 7F048160 10400010 */ beqz $v0, .L7F0481A4 +/* 07CC94 7F048164 00000000 */ nop +/* 07CC98 7F048168 C624008C */ lwc1 $f4, 0x8c($s1) +/* 07CC9C 7F04816C 4604B032 */ c.eq.s $f22, $f4 +/* 07CCA0 7F048170 00000000 */ nop +/* 07CCA4 7F048174 4501000B */ bc1t .L7F0481A4 +/* 07CCA8 7F048178 00000000 */ nop +/* 07CCAC 7F04817C 8E390008 */ lw $t9, 8($s1) +/* 07CCB0 7F048180 3C05459C */ lui $a1, (0x459C4000 >> 16) # lui $a1, 0x459c +/* 07CCB4 7F048184 34A54000 */ ori $a1, (0x459C4000 & 0xFFFF) # ori $a1, $a1, 0x4000 +/* 07CCB8 7F048188 00196080 */ sll $t4, $t9, 2 +/* 07CCBC 7F04818C 05800005 */ bltz $t4, .L7F0481A4 +/* 07CCC0 7F048190 26240058 */ addiu $a0, $s1, 0x58 +/* 07CCC4 7F048194 3C0645BB */ lui $a2, (0x45BB8000 >> 16) # lui $a2, 0x45bb +/* 07CCC8 7F048198 0FC14E25 */ jal sub_GAME_7F053894 +/* 07CCCC 7F04819C 34C68000 */ ori $a2, (0x45BB8000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 07CCD0 7F0481A0 00408025 */ move $s0, $v0 +.L7F0481A4: +/* 07CCD4 7F0481A4 5A000019 */ blezl $s0, .L7F04820C +/* 07CCD8 7F0481A8 8E2400B0 */ lw $a0, 0xb0($s1) +/* 07CCDC 7F0481AC 8E2400B0 */ lw $a0, 0xb0($s1) +/* 07CCE0 7F0481B0 10800005 */ beqz $a0, .L7F0481C8 +/* 07CCE4 7F0481B4 00000000 */ nop +/* 07CCE8 7F0481B8 0C00237C */ jal sfxGetArg0Unk3F +/* 07CCEC 7F0481BC 00000000 */ nop +/* 07CCF0 7F0481C0 5440000A */ bnezl $v0, .L7F0481EC +/* 07CCF4 7F0481C4 8E2400B0 */ lw $a0, 0xb0($s1) +.L7F0481C8: +/* 07CCF8 7F0481C8 0FC2FF01 */ jal get_controls_locked_flag +/* 07CCFC 7F0481CC 00000000 */ nop +/* 07CD00 7F0481D0 14400005 */ bnez $v0, .L7F0481E8 +/* 07CD04 7F0481D4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07CD08 7F0481D8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07CD0C 7F0481DC 2405003A */ li $a1, 58 +/* 07CD10 7F0481E0 0C002382 */ jal play_sfx_a1 +/* 07CD14 7F0481E4 262600B0 */ addiu $a2, $s1, 0xb0 +.L7F0481E8: +/* 07CD18 7F0481E8 8E2400B0 */ lw $a0, 0xb0($s1) +.L7F0481EC: +/* 07CD1C 7F0481EC 24050008 */ li $a1, 8 +/* 07CD20 7F0481F0 5080000F */ beql $a0, $zero, .L7F048230 +/* 07CD24 7F0481F4 92220003 */ lbu $v0, 3($s1) +/* 07CD28 7F0481F8 0C002461 */ jal sfx_c_70009184 +/* 07CD2C 7F0481FC 02003025 */ move $a2, $s0 +/* 07CD30 7F048200 1000000B */ b .L7F048230 +/* 07CD34 7F048204 92220003 */ lbu $v0, 3($s1) +/* 07CD38 7F048208 8E2400B0 */ lw $a0, 0xb0($s1) +.L7F04820C: +/* 07CD3C 7F04820C 50800008 */ beql $a0, $zero, .L7F048230 +/* 07CD40 7F048210 92220003 */ lbu $v0, 3($s1) +/* 07CD44 7F048214 0C00237C */ jal sfxGetArg0Unk3F +/* 07CD48 7F048218 00000000 */ nop +/* 07CD4C 7F04821C 50400004 */ beql $v0, $zero, .L7F048230 +/* 07CD50 7F048220 92220003 */ lbu $v0, 3($s1) +/* 07CD54 7F048224 0C002408 */ jal sfxDeactivate +/* 07CD58 7F048228 8E2400B0 */ lw $a0, 0xb0($s1) +.L7F04822C: +/* 07CD5C 7F04822C 92220003 */ lbu $v0, 3($s1) +.L7F048230: +/* 07CD60 7F048230 3C018005 */ lui $at, %hi(D_80052B64) +/* 07CD64 7F048234 C4342B64 */ lwc1 $f20, %lo(D_80052B64)($at) +/* 07CD68 7F048238 2401002F */ li $at, 47 +/* 07CD6C 7F04823C 54410020 */ bnel $v0, $at, .L7F0482C0 +/* 07CD70 7F048240 24010001 */ li $at, 1 +/* 07CD74 7F048244 8E700004 */ lw $s0, 4($s3) +/* 07CD78 7F048248 26240058 */ addiu $a0, $s1, 0x58 +/* 07CD7C 7F04824C 8E0A0080 */ lw $t2, 0x80($s0) +/* 07CD80 7F048250 8E0E0084 */ lw $t6, 0x84($s0) +/* 07CD84 7F048254 8E070090 */ lw $a3, 0x90($s0) +/* 07CD88 7F048258 448A3000 */ mtc1 $t2, $f6 +/* 07CD8C 7F04825C 448E5000 */ mtc1 $t6, $f10 +/* 07CD90 7F048260 468031A0 */ cvt.s.w $f6, $f6 +/* 07CD94 7F048264 468052A0 */ cvt.s.w $f10, $f10 +/* 07CD98 7F048268 44053000 */ mfc1 $a1, $f6 +/* 07CD9C 7F04826C 44065000 */ mfc1 $a2, $f10 +/* 07CDA0 7F048270 0FC11477 */ jal sub_GAME_7F0451DC +/* 07CDA4 7F048274 00000000 */ nop +/* 07CDA8 7F048278 8E04008C */ lw $a0, 0x8c($s0) +/* 07CDAC 7F04827C AE020088 */ sw $v0, 0x88($s0) +/* 07CDB0 7F048280 8FAD0674 */ lw $t5, 0x674($sp) +/* 07CDB4 7F048284 0480000B */ bltz $a0, .L7F0482B4 +/* 07CDB8 7F048288 24010001 */ li $at, 1 +/* 07CDBC 7F04828C 15A10009 */ bne $t5, $at, .L7F0482B4 +/* 07CDC0 7F048290 240100FF */ li $at, 255 +/* 07CDC4 7F048294 14410005 */ bne $v0, $at, .L7F0482AC +/* 07CDC8 7F048298 00000000 */ nop +/* 07CDCC 7F04829C 0FC2E76F */ jal sub_GAME_7F0B9DBC +/* 07CDD0 7F0482A0 00002825 */ move $a1, $zero +/* 07CDD4 7F0482A4 10000003 */ b .L7F0482B4 +/* 07CDD8 7F0482A8 00000000 */ nop +.L7F0482AC: +/* 07CDDC 7F0482AC 0FC2E76F */ jal sub_GAME_7F0B9DBC +/* 07CDE0 7F0482B0 24050001 */ li $a1, 1 +.L7F0482B4: +/* 07CDE4 7F0482B4 1000003B */ b .L7F0483A4 +/* 07CDE8 7F0482B8 AFA00670 */ sw $zero, 0x670($sp) +/* 07CDEC 7F0482BC 24010001 */ li $at, 1 +.L7F0482C0: +/* 07CDF0 7F0482C0 54410039 */ bnel $v0, $at, .L7F0483A8 +/* 07CDF4 7F0482C4 922F0003 */ lbu $t7, 3($s1) +/* 07CDF8 7F0482C8 962F0098 */ lhu $t7, 0x98($s1) +/* 07CDFC 7F0482CC 31E80002 */ andi $t0, $t7, 2 +/* 07CE00 7F0482D0 51000035 */ beql $t0, $zero, .L7F0483A8 +/* 07CE04 7F0482D4 922F0003 */ lbu $t7, 3($s1) +/* 07CE08 7F0482D8 8E700004 */ lw $s0, 4($s3) +/* 07CE0C 7F0482DC 4407B000 */ mfc1 $a3, $f22 +/* 07CE10 7F0482E0 24120001 */ li $s2, 1 +/* 07CE14 7F0482E4 8E0B00C0 */ lw $t3, 0xc0($s0) +/* 07CE18 7F0482E8 8E0900C4 */ lw $t1, 0xc4($s0) +/* 07CE1C 7F0482EC 26240058 */ addiu $a0, $s1, 0x58 +/* 07CE20 7F0482F0 448B4000 */ mtc1 $t3, $f8 +/* 07CE24 7F0482F4 44892000 */ mtc1 $t1, $f4 +/* 07CE28 7F0482F8 46804220 */ cvt.s.w $f8, $f8 +/* 07CE2C 7F0482FC 46802120 */ cvt.s.w $f4, $f4 +/* 07CE30 7F048300 44054000 */ mfc1 $a1, $f8 +/* 07CE34 7F048304 44062000 */ mfc1 $a2, $f4 +/* 07CE38 7F048308 0FC11477 */ jal sub_GAME_7F0451DC +/* 07CE3C 7F04830C 00000000 */ nop +/* 07CE40 7F048310 A60200BE */ sh $v0, 0xbe($s0) +/* 07CE44 7F048314 8FB90674 */ lw $t9, 0x674($sp) +/* 07CE48 7F048318 24010001 */ li $at, 1 +/* 07CE4C 7F04831C 57210022 */ bnel $t9, $at, .L7F0483A8 +/* 07CE50 7F048320 922F0003 */ lbu $t7, 3($s1) +/* 07CE54 7F048324 860C00BE */ lh $t4, 0xbe($s0) +/* 07CE58 7F048328 240100FF */ li $at, 255 +/* 07CE5C 7F04832C 55810007 */ bnel $t4, $at, .L7F04834C +/* 07CE60 7F048330 00009025 */ move $s2, $zero +/* 07CE64 7F048334 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07CE68 7F048338 4606B03C */ c.lt.s $f22, $f6 +/* 07CE6C 7F04833C 00000000 */ nop +/* 07CE70 7F048340 45020003 */ bc1fl .L7F048350 +/* 07CE74 7F048344 8E820008 */ lw $v0, 8($s4) +/* 07CE78 7F048348 00009025 */ move $s2, $zero +.L7F04834C: +/* 07CE7C 7F04834C 8E820008 */ lw $v0, 8($s4) +.L7F048350: +/* 07CE80 7F048350 3C0A8004 */ lui $t2, %hi(prop_door_related) +/* 07CE84 7F048354 254AA1DC */ addiu $t2, %lo(prop_door_related) # addiu $t2, $t2, -0x5e24 +/* 07CE88 7F048358 8C4E0004 */ lw $t6, 4($v0) +/* 07CE8C 7F04835C 154E0009 */ bne $t2, $t6, .L7F048384 +/* 07CE90 7F048360 00000000 */ nop +/* 07CE94 7F048364 8C4D0008 */ lw $t5, 8($v0) +/* 07CE98 7F048368 02802025 */ move $a0, $s4 +/* 07CE9C 7F04836C 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07CEA0 7F048370 8DA50004 */ lw $a1, 4($t5) +/* 07CEA4 7F048374 8C580000 */ lw $t8, ($v0) +/* 07CEA8 7F048378 17000002 */ bnez $t8, .L7F048384 +/* 07CEAC 7F04837C 00000000 */ nop +/* 07CEB0 7F048380 00009025 */ move $s2, $zero +.L7F048384: +/* 07CEB4 7F048384 12400005 */ beqz $s2, .L7F04839C +/* 07CEB8 7F048388 00000000 */ nop +/* 07CEBC 7F04838C 0FC14D71 */ jal sub_GAME_7F0535C4 +/* 07CEC0 7F048390 02002025 */ move $a0, $s0 +/* 07CEC4 7F048394 10000004 */ b .L7F0483A8 +/* 07CEC8 7F048398 922F0003 */ lbu $t7, 3($s1) +.L7F04839C: +/* 07CECC 7F04839C 0FC14D66 */ jal sub_GAME_7F053598 +/* 07CED0 7F0483A0 02002025 */ move $a0, $s0 +.L7F0483A4: +/* 07CED4 7F0483A4 922F0003 */ lbu $t7, 3($s1) +.L7F0483A8: +/* 07CED8 7F0483A8 2410002D */ li $s0, 45 +/* 07CEDC 7F0483AC 560F0008 */ bnel $s0, $t7, .L7F0483D0 +/* 07CEE0 7F0483B0 8E23000C */ lw $v1, 0xc($s1) +/* 07CEE4 7F0483B4 0FC1F3A1 */ jal get_ptr_for_players_tank +/* 07CEE8 7F0483B8 00000000 */ nop +/* 07CEEC 7F0483BC 54530004 */ bnel $v0, $s3, .L7F0483D0 +/* 07CEF0 7F0483C0 8E23000C */ lw $v1, 0xc($s1) +/* 07CEF4 7F0483C4 10000019 */ b .L7F04842C +/* 07CEF8 7F0483C8 24030001 */ li $v1, 1 +/* 07CEFC 7F0483CC 8E23000C */ lw $v1, 0xc($s1) +.L7F0483D0: +/* 07CF00 7F0483D0 00034140 */ sll $t0, $v1, 5 +/* 07CF04 7F0483D4 05030004 */ bgezl $t0, .L7F0483E8 +/* 07CF08 7F0483D8 8E2B0064 */ lw $t3, 0x64($s1) +/* 07CF0C 7F0483DC 10000013 */ b .L7F04842C +/* 07CF10 7F0483E0 24030001 */ li $v1, 1 +/* 07CF14 7F0483E4 8E2B0064 */ lw $t3, 0x64($s1) +.L7F0483E8: +/* 07CF18 7F0483E8 0003CB00 */ sll $t9, $v1, 0xc +/* 07CF1C 7F0483EC 00001825 */ move $v1, $zero +/* 07CF20 7F0483F0 31690800 */ andi $t1, $t3, 0x800 +/* 07CF24 7F0483F4 1520000D */ bnez $t1, .L7F04842C +/* 07CF28 7F0483F8 00000000 */ nop +/* 07CF2C 7F0483FC 0720000B */ bltz $t9, .L7F04842C +/* 07CF30 7F048400 02802025 */ move $a0, $s4 +/* 07CF34 7F048404 262C0058 */ addiu $t4, $s1, 0x58 +/* 07CF38 7F048408 0FC1B403 */ jal getinstsize +/* 07CF3C 7F04840C AFAC0070 */ sw $t4, 0x70($sp) +/* 07CF40 7F048410 44060000 */ mfc1 $a2, $f0 +/* 07CF44 7F048414 02602025 */ move $a0, $s3 +/* 07CF48 7F048418 8FA50070 */ lw $a1, 0x70($sp) +/* 07CF4C 7F04841C 0FC1535B */ jal sub_GAME_7F054D6C +/* 07CF50 7F048420 8FA70670 */ lw $a3, 0x670($sp) +/* 07CF54 7F048424 10000001 */ b .L7F04842C +/* 07CF58 7F048428 00401825 */ move $v1, $v0 +.L7F04842C: +/* 07CF5C 7F04842C 1060037A */ beqz $v1, .L7F049218 +/* 07CF60 7F048430 8FAA0678 */ lw $t2, 0x678($sp) +/* 07CF64 7F048434 11400003 */ beqz $t2, .L7F048444 +/* 07CF68 7F048438 26240078 */ addiu $a0, $s1, 0x78 +/* 07CF6C 7F04843C 0FC100C4 */ jal update_color_shading +/* 07CF70 7F048440 2625007C */ addiu $a1, $s1, 0x7c +.L7F048444: +/* 07CF74 7F048444 926E0001 */ lbu $t6, 1($s3) +/* 07CF78 7F048448 35CD0002 */ ori $t5, $t6, 2 +/* 07CF7C 7F04844C A26D0001 */ sb $t5, 1($s3) +/* 07CF80 7F048450 8E980008 */ lw $t8, 8($s4) +/* 07CF84 7F048454 8704000E */ lh $a0, 0xe($t8) +/* 07CF88 7F048458 00047980 */ sll $t7, $a0, 6 +/* 07CF8C 7F04845C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 07CF90 7F048460 01E02025 */ move $a0, $t7 +/* 07CF94 7F048464 AE82000C */ sw $v0, 0xc($s4) +/* 07CF98 7F048468 92280003 */ lbu $t0, 3($s1) +/* 07CF9C 7F04846C 24010001 */ li $at, 1 +/* 07CFA0 7F048470 00409025 */ move $s2, $v0 +/* 07CFA4 7F048474 150100AD */ bne $t0, $at, .L7F04872C +/* 07CFA8 7F048478 26240018 */ addiu $a0, $s1, 0x18 +/* 07CFAC 7F04847C 8E640004 */ lw $a0, 4($s3) +/* 07CFB0 7F048480 00402825 */ move $a1, $v0 +/* 07CFB4 7F048484 0FC149BB */ jal sub_GAME_7F0526EC +/* 07CFB8 7F048488 AFA4039C */ sw $a0, 0x39c($sp) +/* 07CFBC 7F04848C 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 07CFC0 7F048490 00000000 */ nop +/* 07CFC4 7F048494 00402025 */ move $a0, $v0 +/* 07CFC8 7F048498 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07CFCC 7F04849C 02402825 */ move $a1, $s2 +/* 07CFD0 7F0484A0 8E820008 */ lw $v0, 8($s4) +/* 07CFD4 7F0484A4 3C0B8004 */ lui $t3, %hi(prop_eyelid_door_related) +/* 07CFD8 7F0484A8 256BA100 */ addiu $t3, %lo(prop_eyelid_door_related) # addiu $t3, $t3, -0x5f00 +/* 07CFDC 7F0484AC 8C430004 */ lw $v1, 4($v0) +/* 07CFE0 7F0484B0 3C0D8004 */ lui $t5, %hi(prop_iris_door_related) +/* 07CFE4 7F0484B4 8FA6039C */ lw $a2, 0x39c($sp) +/* 07CFE8 7F0484B8 15630025 */ bne $t3, $v1, .L7F048550 +/* 07CFEC 7F0484BC 25ADA15C */ addiu $t5, %lo(prop_iris_door_related) # addiu $t5, $t5, -0x5ea4 +/* 07CFF0 7F0484C0 C4CA00B4 */ lwc1 $f10, 0xb4($a2) +/* 07CFF4 7F0484C4 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07CFF8 7F0484C8 44812000 */ mtc1 $at, $f4 +/* 07CFFC 7F0484CC 46145202 */ mul.s $f8, $f10, $f20 +/* 07D000 7F0484D0 8C490008 */ lw $t1, 8($v0) +/* 07D004 7F0484D4 26450040 */ addiu $a1, $s2, 0x40 +/* 07D008 7F0484D8 8D390004 */ lw $t9, 4($t1) +/* 07D00C 7F0484DC 46044183 */ div.s $f6, $f8, $f4 +/* 07D010 7F0484E0 8F300004 */ lw $s0, 4($t9) +/* 07D014 7F0484E4 AFA5006C */ sw $a1, 0x6c($sp) +/* 07D018 7F0484E8 4606A301 */ sub.s $f12, $f20, $f6 +/* 07D01C 7F0484EC 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07D020 7F0484F0 E7AC0394 */ swc1 $f12, 0x394($sp) +/* 07D024 7F0484F4 02002025 */ move $a0, $s0 +/* 07D028 7F0484F8 0FC16266 */ jal matrix_4x4_set_position +/* 07D02C 7F0484FC 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D030 7F048500 02402025 */ move $a0, $s2 +/* 07D034 7F048504 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 07D038 7F048508 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D03C 7F04850C 8E8C0008 */ lw $t4, 8($s4) +/* 07D040 7F048510 C7AA0394 */ lwc1 $f10, 0x394($sp) +/* 07D044 7F048514 26450080 */ addiu $a1, $s2, 0x80 +/* 07D048 7F048518 8D8A0008 */ lw $t2, 8($t4) +/* 07D04C 7F04851C 460AA301 */ sub.s $f12, $f20, $f10 +/* 07D050 7F048520 8D4E0008 */ lw $t6, 8($t2) +/* 07D054 7F048524 8DD00004 */ lw $s0, 4($t6) +/* 07D058 7F048528 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07D05C 7F04852C AFA50068 */ sw $a1, 0x68($sp) +/* 07D060 7F048530 02002025 */ move $a0, $s0 +/* 07D064 7F048534 0FC16266 */ jal matrix_4x4_set_position +/* 07D068 7F048538 8FA50068 */ lw $a1, 0x68($sp) +/* 07D06C 7F04853C 02402025 */ move $a0, $s2 +/* 07D070 7F048540 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 07D074 7F048544 8FA50068 */ lw $a1, 0x68($sp) +/* 07D078 7F048548 1000031F */ b .L7F0491C8 +/* 07D07C 7F04854C 8E8F0008 */ lw $t7, 8($s4) +.L7F048550: +/* 07D080 7F048550 55A3031D */ bnel $t5, $v1, .L7F0491C8 +/* 07D084 7F048554 8E8F0008 */ lw $t7, 8($s4) +/* 07D088 7F048558 C4C200B4 */ lwc1 $f2, 0xb4($a2) +/* 07D08C 7F04855C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07D090 7F048560 44812000 */ mtc1 $at, $f4 +/* 07D094 7F048564 46141202 */ mul.s $f8, $f2, $f20 +/* 07D098 7F048568 3C018005 */ lui $at, %hi(D_80052B68) +/* 07D09C 7F04856C C42A2B68 */ lwc1 $f10, %lo(D_80052B68)($at) +/* 07D0A0 7F048570 4600B386 */ mov.s $f14, $f22 +/* 07D0A4 7F048574 46044183 */ div.s $f6, $f8, $f4 +/* 07D0A8 7F048578 E7A60384 */ swc1 $f6, 0x384($sp) +/* 07D0AC 7F04857C C4CC0084 */ lwc1 $f12, 0x84($a2) +/* 07D0B0 7F048580 460A6002 */ mul.s $f0, $f12, $f10 +/* 07D0B4 7F048584 4602003C */ c.lt.s $f0, $f2 +/* 07D0B8 7F048588 00000000 */ nop +/* 07D0BC 7F04858C 4502001F */ bc1fl .L7F04860C +/* 07D0C0 7F048590 8FA80678 */ lw $t0, 0x678($sp) +/* 07D0C4 7F048594 46001201 */ sub.s $f8, $f2, $f0 +/* 07D0C8 7F048598 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07D0CC 7F04859C 8FB80678 */ lw $t8, 0x678($sp) +/* 07D0D0 7F0485A0 46006181 */ sub.s $f6, $f12, $f0 +/* 07D0D4 7F0485A4 46086102 */ mul.s $f4, $f12, $f8 +/* 07D0D8 7F0485A8 46062283 */ div.s $f10, $f4, $f6 +/* 07D0DC 7F0485AC 44812000 */ mtc1 $at, $f4 +/* 07D0E0 7F0485B0 46145202 */ mul.s $f8, $f10, $f20 +/* 07D0E4 7F0485B4 46044383 */ div.s $f14, $f8, $f4 +/* 07D0E8 7F0485B8 13000011 */ beqz $t8, .L7F048600 +/* 07D0EC 7F0485BC E7AE0380 */ swc1 $f14, 0x380($sp) +/* 07D0F0 7F0485C0 C7A6067C */ lwc1 $f6, 0x67c($sp) +/* 07D0F4 7F0485C4 E7AE0380 */ swc1 $f14, 0x380($sp) +/* 07D0F8 7F0485C8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07D0FC 7F0485CC 4600303E */ c.le.s $f6, $f0 +/* 07D100 7F0485D0 240500CA */ li $a1, 202 +/* 07D104 7F0485D4 00003025 */ move $a2, $zero +/* 07D108 7F0485D8 266F0008 */ addiu $t7, $s3, 8 +/* 07D10C 7F0485DC 45000008 */ bc1f .L7F048600 +/* 07D110 7F0485E0 00000000 */ nop +/* 07D114 7F0485E4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07D118 7F0485E8 AFAF0070 */ sw $t7, 0x70($sp) +/* 07D11C 7F0485EC 0C002382 */ jal play_sfx_a1 +/* 07D120 7F0485F0 E7AE0380 */ swc1 $f14, 0x380($sp) +/* 07D124 7F0485F4 00402025 */ move $a0, $v0 +/* 07D128 7F0485F8 0FC14E84 */ jal sub_GAME_7F053A10 +/* 07D12C 7F0485FC 8FA50070 */ lw $a1, 0x70($sp) +.L7F048600: +/* 07D130 7F048600 10000016 */ b .L7F04865C +/* 07D134 7F048604 AFA0038C */ sw $zero, 0x38c($sp) +/* 07D138 7F048608 8FA80678 */ lw $t0, 0x678($sp) +.L7F04860C: +/* 07D13C 7F04860C E7AE0380 */ swc1 $f14, 0x380($sp) +/* 07D140 7F048610 51000012 */ beql $t0, $zero, .L7F04865C +/* 07D144 7F048614 AFA0038C */ sw $zero, 0x38c($sp) +/* 07D148 7F048618 C7AA067C */ lwc1 $f10, 0x67c($sp) +/* 07D14C 7F04861C E7AE0380 */ swc1 $f14, 0x380($sp) +/* 07D150 7F048620 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07D154 7F048624 460A003C */ c.lt.s $f0, $f10 +/* 07D158 7F048628 240500CB */ li $a1, 203 +/* 07D15C 7F04862C 00003025 */ move $a2, $zero +/* 07D160 7F048630 266B0008 */ addiu $t3, $s3, 8 +/* 07D164 7F048634 45020009 */ bc1fl .L7F04865C +/* 07D168 7F048638 AFA0038C */ sw $zero, 0x38c($sp) +/* 07D16C 7F04863C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07D170 7F048640 AFAB0070 */ sw $t3, 0x70($sp) +/* 07D174 7F048644 0C002382 */ jal play_sfx_a1 +/* 07D178 7F048648 E7AE0380 */ swc1 $f14, 0x380($sp) +/* 07D17C 7F04864C 00402025 */ move $a0, $v0 +/* 07D180 7F048650 0FC14E84 */ jal sub_GAME_7F053A10 +/* 07D184 7F048654 8FA50070 */ lw $a1, 0x70($sp) +/* 07D188 7F048658 AFA0038C */ sw $zero, 0x38c($sp) +.L7F04865C: +/* 07D18C 7F04865C 8E890008 */ lw $t1, 8($s4) +/* 07D190 7F048660 8FA3038C */ lw $v1, 0x38c($sp) +/* 07D194 7F048664 C7AC0380 */ lwc1 $f12, 0x380($sp) +/* 07D198 7F048668 8D390008 */ lw $t9, 8($t1) +/* 07D19C 7F04866C 00031040 */ sll $v0, $v1, 1 +/* 07D1A0 7F048670 00026080 */ sll $t4, $v0, 2 +/* 07D1A4 7F048674 032C5021 */ addu $t2, $t9, $t4 +/* 07D1A8 7F048678 8D4E0004 */ lw $t6, 4($t2) +/* 07D1AC 7F04867C 0002C180 */ sll $t8, $v0, 6 +/* 07D1B0 7F048680 02582821 */ addu $a1, $s2, $t8 +/* 07D1B4 7F048684 8DCD0004 */ lw $t5, 4($t6) +/* 07D1B8 7F048688 AFA20074 */ sw $v0, 0x74($sp) +/* 07D1BC 7F04868C 24A50040 */ addiu $a1, $a1, 0x40 +/* 07D1C0 7F048690 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 07D1C4 7F048694 AFAD0390 */ sw $t5, 0x390($sp) +/* 07D1C8 7F048698 8FAF0074 */ lw $t7, 0x74($sp) +/* 07D1CC 7F04869C 8FB0038C */ lw $s0, 0x38c($sp) +/* 07D1D0 7F0486A0 8FA40390 */ lw $a0, 0x390($sp) +/* 07D1D4 7F0486A4 000F4180 */ sll $t0, $t7, 6 +/* 07D1D8 7F0486A8 02482821 */ addu $a1, $s2, $t0 +/* 07D1DC 7F0486AC 24A50040 */ addiu $a1, $a1, 0x40 +/* 07D1E0 7F0486B0 0FC16266 */ jal matrix_4x4_set_position +/* 07D1E4 7F0486B4 AFA50070 */ sw $a1, 0x70($sp) +/* 07D1E8 7F0486B8 02402025 */ move $a0, $s2 +/* 07D1EC 7F0486BC 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 07D1F0 7F0486C0 8FA50070 */ lw $a1, 0x70($sp) +/* 07D1F4 7F0486C4 8E8B0008 */ lw $t3, 8($s4) +/* 07D1F8 7F0486C8 8FA20074 */ lw $v0, 0x74($sp) +/* 07D1FC 7F0486CC C7AC0384 */ lwc1 $f12, 0x384($sp) +/* 07D200 7F0486D0 8D690008 */ lw $t1, 8($t3) +/* 07D204 7F0486D4 24420002 */ addiu $v0, $v0, 2 +/* 07D208 7F0486D8 0002C880 */ sll $t9, $v0, 2 +/* 07D20C 7F0486DC 01396021 */ addu $t4, $t1, $t9 +/* 07D210 7F0486E0 8D8A0000 */ lw $t2, ($t4) +/* 07D214 7F0486E4 00026980 */ sll $t5, $v0, 6 +/* 07D218 7F0486E8 024D2821 */ addu $a1, $s2, $t5 +/* 07D21C 7F0486EC 8D4E0004 */ lw $t6, 4($t2) +/* 07D220 7F0486F0 AFA5006C */ sw $a1, 0x6c($sp) +/* 07D224 7F0486F4 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 07D228 7F0486F8 AFAE0390 */ sw $t6, 0x390($sp) +/* 07D22C 7F0486FC 8FA40390 */ lw $a0, 0x390($sp) +/* 07D230 7F048700 0FC16266 */ jal matrix_4x4_set_position +/* 07D234 7F048704 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D238 7F048708 8FA40070 */ lw $a0, 0x70($sp) +/* 07D23C 7F04870C 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 07D240 7F048710 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D244 7F048714 26100001 */ addiu $s0, $s0, 1 +/* 07D248 7F048718 24010006 */ li $at, 6 +/* 07D24C 7F04871C 1601FFCF */ bne $s0, $at, .L7F04865C +/* 07D250 7F048720 AFB0038C */ sw $s0, 0x38c($sp) +/* 07D254 7F048724 100002A8 */ b .L7F0491C8 +/* 07D258 7F048728 8E8F0008 */ lw $t7, 8($s4) +.L7F04872C: +/* 07D25C 7F04872C 26380058 */ addiu $t8, $s1, 0x58 +/* 07D260 7F048730 AFB80070 */ sw $t8, 0x70($sp) +/* 07D264 7F048734 0FC16008 */ jal matrix_4x4_copy +/* 07D268 7F048738 27A503A4 */ addiu $a1, $sp, 0x3a4 +/* 07D26C 7F04873C 8FA40070 */ lw $a0, 0x70($sp) +/* 07D270 7F048740 0FC16266 */ jal matrix_4x4_set_position +/* 07D274 7F048744 27A503A4 */ addiu $a1, $sp, 0x3a4 +/* 07D278 7F048748 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 07D27C 7F04874C 00000000 */ nop +/* 07D280 7F048750 00402025 */ move $a0, $v0 +/* 07D284 7F048754 27A503A4 */ addiu $a1, $sp, 0x3a4 +/* 07D288 7F048758 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 07D28C 7F04875C 02403025 */ move $a2, $s2 +/* 07D290 7F048760 92220003 */ lbu $v0, 3($s1) +/* 07D294 7F048764 24010006 */ li $at, 6 +/* 07D298 7F048768 27A50320 */ addiu $a1, $sp, 0x320 +/* 07D29C 7F04876C 5441002D */ bnel $v0, $at, .L7F048824 +/* 07D2A0 7F048770 2401000D */ li $at, 13 +/* 07D2A4 7F048774 8E620004 */ lw $v0, 4($s3) +/* 07D2A8 7F048778 8E8F0008 */ lw $t7, 8($s4) +/* 07D2AC 7F04877C C44C00C8 */ lwc1 $f12, 0xc8($v0) +/* 07D2B0 7F048780 8DE80008 */ lw $t0, 8($t7) +/* 07D2B4 7F048784 4616603C */ c.lt.s $f12, $f22 +/* 07D2B8 7F048788 8D0B0000 */ lw $t3, ($t0) +/* 07D2BC 7F04878C 45000003 */ bc1f .L7F04879C +/* 07D2C0 7F048790 8D700004 */ lw $s0, 4($t3) +/* 07D2C4 7F048794 10000006 */ b .L7F0487B0 +/* 07D2C8 7F048798 46146300 */ add.s $f12, $f12, $f20 +.L7F04879C: +/* 07D2CC 7F04879C 460CA03E */ c.le.s $f20, $f12 +/* 07D2D0 7F0487A0 00000000 */ nop +/* 07D2D4 7F0487A4 45000002 */ bc1f .L7F0487B0 +/* 07D2D8 7F0487A8 00000000 */ nop +/* 07D2DC 7F0487AC 46146301 */ sub.s $f12, $f12, $f20 +.L7F0487B0: +/* 07D2E0 7F0487B0 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 07D2E4 7F0487B4 AFA20370 */ sw $v0, 0x370($sp) +/* 07D2E8 7F0487B8 8FA20370 */ lw $v0, 0x370($sp) +/* 07D2EC 7F0487BC 26460040 */ addiu $a2, $s2, 0x40 +/* 07D2F0 7F0487C0 AFA6006C */ sw $a2, 0x6c($sp) +/* 07D2F4 7F0487C4 27A40320 */ addiu $a0, $sp, 0x320 +/* 07D2F8 7F0487C8 0FC16032 */ jal matrix_4x4_multiply +/* 07D2FC 7F0487CC 24450084 */ addiu $a1, $v0, 0x84 +/* 07D300 7F0487D0 C6080000 */ lwc1 $f8, ($s0) +/* 07D304 7F0487D4 27B20360 */ addiu $s2, $sp, 0x360 +/* 07D308 7F0487D8 02402825 */ move $a1, $s2 +/* 07D30C 7F0487DC E7A80360 */ swc1 $f8, 0x360($sp) +/* 07D310 7F0487E0 C6040004 */ lwc1 $f4, 4($s0) +/* 07D314 7F0487E4 27A403A4 */ addiu $a0, $sp, 0x3a4 +/* 07D318 7F0487E8 E7A40364 */ swc1 $f4, 0x364($sp) +/* 07D31C 7F0487EC C6060008 */ lwc1 $f6, 8($s0) +/* 07D320 7F0487F0 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 07D324 7F0487F4 E7A60368 */ swc1 $f6, 0x368($sp) +/* 07D328 7F0487F8 02402025 */ move $a0, $s2 +/* 07D32C 7F0487FC 0FC16266 */ jal matrix_4x4_set_position +/* 07D330 7F048800 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D334 7F048804 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 07D338 7F048808 00000000 */ nop +/* 07D33C 7F04880C 00402025 */ move $a0, $v0 +/* 07D340 7F048810 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D344 7F048814 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D348 7F048818 1000026B */ b .L7F0491C8 +/* 07D34C 7F04881C 8E8F0008 */ lw $t7, 8($s4) +/* 07D350 7F048820 2401000D */ li $at, 13 +.L7F048824: +/* 07D354 7F048824 5441007F */ bnel $v0, $at, .L7F048A24 +/* 07D358 7F048828 24010008 */ li $at, 8 +/* 07D35C 7F04882C 8E620004 */ lw $v0, 4($s3) +/* 07D360 7F048830 3C018005 */ lui $at, %hi(D_80052B6C) +/* 07D364 7F048834 C4282B6C */ lwc1 $f8, %lo(D_80052B6C)($at) +/* 07D368 7F048838 C44A0090 */ lwc1 $f10, 0x90($v0) +/* 07D36C 7F04883C C444009C */ lwc1 $f4, 0x9c($v0) +/* 07D370 7F048840 46085300 */ add.s $f12, $f10, $f8 +/* 07D374 7F048844 46002187 */ neg.s $f6, $f4 +/* 07D378 7F048848 460CA03E */ c.le.s $f20, $f12 +/* 07D37C 7F04884C E7A60300 */ swc1 $f6, 0x300($sp) +/* 07D380 7F048850 45020003 */ bc1fl .L7F048860 +/* 07D384 7F048854 8E890008 */ lw $t1, 8($s4) +/* 07D388 7F048858 46146301 */ sub.s $f12, $f12, $f20 +/* 07D38C 7F04885C 8E890008 */ lw $t1, 8($s4) +.L7F048860: +/* 07D390 7F048860 27A403A4 */ addiu $a0, $sp, 0x3a4 +/* 07D394 7F048864 27A50308 */ addiu $a1, $sp, 0x308 +/* 07D398 7F048868 8D390008 */ lw $t9, 8($t1) +/* 07D39C 7F04886C 8F2C0004 */ lw $t4, 4($t9) +/* 07D3A0 7F048870 8D900004 */ lw $s0, 4($t4) +/* 07D3A4 7F048874 C60A0000 */ lwc1 $f10, ($s0) +/* 07D3A8 7F048878 E7AA0308 */ swc1 $f10, 0x308($sp) +/* 07D3AC 7F04887C C6080004 */ lwc1 $f8, 4($s0) +/* 07D3B0 7F048880 E7A8030C */ swc1 $f8, 0x30c($sp) +/* 07D3B4 7F048884 C6040008 */ lwc1 $f4, 8($s0) +/* 07D3B8 7F048888 E7AC0304 */ swc1 $f12, 0x304($sp) +/* 07D3BC 7F04888C AFA20318 */ sw $v0, 0x318($sp) +/* 07D3C0 7F048890 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 07D3C4 7F048894 E7A40310 */ swc1 $f4, 0x310($sp) +/* 07D3C8 7F048898 26450040 */ addiu $a1, $s2, 0x40 +/* 07D3CC 7F04889C C7AC0304 */ lwc1 $f12, 0x304($sp) +/* 07D3D0 7F0488A0 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 07D3D4 7F0488A4 AFA5006C */ sw $a1, 0x6c($sp) +/* 07D3D8 7F0488A8 27A40308 */ addiu $a0, $sp, 0x308 +/* 07D3DC 7F0488AC 0FC16266 */ jal matrix_4x4_set_position +/* 07D3E0 7F0488B0 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D3E4 7F0488B4 8FAA0318 */ lw $t2, 0x318($sp) +/* 07D3E8 7F0488B8 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D3EC 7F0488BC 8D4E0014 */ lw $t6, 0x14($t2) +/* 07D3F0 7F0488C0 0FC1629F */ jal matrix_scalar_multiply +/* 07D3F4 7F0488C4 C5CC0014 */ lwc1 $f12, 0x14($t6) +/* 07D3F8 7F0488C8 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 07D3FC 7F0488CC 00000000 */ nop +/* 07D400 7F0488D0 00402025 */ move $a0, $v0 +/* 07D404 7F0488D4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D408 7F0488D8 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D40C 7F0488DC 8E8D0008 */ lw $t5, 8($s4) +/* 07D410 7F0488E0 26450080 */ addiu $a1, $s2, 0x80 +/* 07D414 7F0488E4 C7AC0300 */ lwc1 $f12, 0x300($sp) +/* 07D418 7F0488E8 8DB80008 */ lw $t8, 8($t5) +/* 07D41C 7F0488EC 8F0F0008 */ lw $t7, 8($t8) +/* 07D420 7F0488F0 8DF00004 */ lw $s0, 4($t7) +/* 07D424 7F0488F4 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 07D428 7F0488F8 AFA50068 */ sw $a1, 0x68($sp) +/* 07D42C 7F0488FC 02002025 */ move $a0, $s0 +/* 07D430 7F048900 0FC16266 */ jal matrix_4x4_set_position +/* 07D434 7F048904 8FA50068 */ lw $a1, 0x68($sp) +/* 07D438 7F048908 8FA4006C */ lw $a0, 0x6c($sp) +/* 07D43C 7F04890C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D440 7F048910 8FA50068 */ lw $a1, 0x68($sp) +/* 07D444 7F048914 8E880008 */ lw $t0, 8($s4) +/* 07D448 7F048918 02802025 */ move $a0, $s4 +/* 07D44C 7F04891C 8D030008 */ lw $v1, 8($t0) +/* 07D450 7F048920 8C65000C */ lw $a1, 0xc($v1) +/* 07D454 7F048924 50A00016 */ beql $a1, $zero, .L7F048980 +/* 07D458 7F048928 8C650010 */ lw $a1, 0x10($v1) +/* 07D45C 7F04892C 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07D460 7F048930 00003025 */ move $a2, $zero +/* 07D464 7F048934 AFA202FC */ sw $v0, 0x2fc($sp) +/* 07D468 7F048938 8E8B0008 */ lw $t3, 8($s4) +/* 07D46C 7F04893C 8FAC0318 */ lw $t4, 0x318($sp) +/* 07D470 7F048940 00402825 */ move $a1, $v0 +/* 07D474 7F048944 8D690008 */ lw $t1, 8($t3) +/* 07D478 7F048948 C58C00B4 */ lwc1 $f12, 0xb4($t4) +/* 07D47C 7F04894C 8D39000C */ lw $t9, 0xc($t1) +/* 07D480 7F048950 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07D484 7F048954 8F300004 */ lw $s0, 4($t9) +/* 07D488 7F048958 8FB202FC */ lw $s2, 0x2fc($sp) +/* 07D48C 7F04895C 02002025 */ move $a0, $s0 +/* 07D490 7F048960 0FC16266 */ jal matrix_4x4_set_position +/* 07D494 7F048964 02402825 */ move $a1, $s2 +/* 07D498 7F048968 8FA40068 */ lw $a0, 0x68($sp) +/* 07D49C 7F04896C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D4A0 7F048970 02402825 */ move $a1, $s2 +/* 07D4A4 7F048974 8E8A0008 */ lw $t2, 8($s4) +/* 07D4A8 7F048978 8D430008 */ lw $v1, 8($t2) +/* 07D4AC 7F04897C 8C650010 */ lw $a1, 0x10($v1) +.L7F048980: +/* 07D4B0 7F048980 02802025 */ move $a0, $s4 +/* 07D4B4 7F048984 50A00010 */ beql $a1, $zero, .L7F0489C8 +/* 07D4B8 7F048988 8C650018 */ lw $a1, 0x18($v1) +/* 07D4BC 7F04898C 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07D4C0 7F048990 00003025 */ move $a2, $zero +/* 07D4C4 7F048994 8E8E0008 */ lw $t6, 8($s4) +/* 07D4C8 7F048998 00409025 */ move $s2, $v0 +/* 07D4CC 7F04899C 00402825 */ move $a1, $v0 +/* 07D4D0 7F0489A0 8DCD0008 */ lw $t5, 8($t6) +/* 07D4D4 7F0489A4 8DB80010 */ lw $t8, 0x10($t5) +/* 07D4D8 7F0489A8 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07D4DC 7F0489AC 8F040004 */ lw $a0, 4($t8) +/* 07D4E0 7F0489B0 8FA40068 */ lw $a0, 0x68($sp) +/* 07D4E4 7F0489B4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D4E8 7F0489B8 02402825 */ move $a1, $s2 +/* 07D4EC 7F0489BC 8E8F0008 */ lw $t7, 8($s4) +/* 07D4F0 7F0489C0 8DE30008 */ lw $v1, 8($t7) +/* 07D4F4 7F0489C4 8C650018 */ lw $a1, 0x18($v1) +.L7F0489C8: +/* 07D4F8 7F0489C8 02802025 */ move $a0, $s4 +/* 07D4FC 7F0489CC 50A001FE */ beql $a1, $zero, .L7F0491C8 +/* 07D500 7F0489D0 8E8F0008 */ lw $t7, 8($s4) +/* 07D504 7F0489D4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07D508 7F0489D8 00003025 */ move $a2, $zero +/* 07D50C 7F0489DC 8E880008 */ lw $t0, 8($s4) +/* 07D510 7F0489E0 8FB90318 */ lw $t9, 0x318($sp) +/* 07D514 7F0489E4 00409025 */ move $s2, $v0 +/* 07D518 7F0489E8 8D0B0008 */ lw $t3, 8($t0) +/* 07D51C 7F0489EC 00402825 */ move $a1, $v0 +/* 07D520 7F0489F0 C72C00B4 */ lwc1 $f12, 0xb4($t9) +/* 07D524 7F0489F4 8D690018 */ lw $t1, 0x18($t3) +/* 07D528 7F0489F8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07D52C 7F0489FC 8D300004 */ lw $s0, 4($t1) +/* 07D530 7F048A00 02002025 */ move $a0, $s0 +/* 07D534 7F048A04 0FC16266 */ jal matrix_4x4_set_position +/* 07D538 7F048A08 02402825 */ move $a1, $s2 +/* 07D53C 7F048A0C 8FA40068 */ lw $a0, 0x68($sp) +/* 07D540 7F048A10 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D544 7F048A14 02402825 */ move $a1, $s2 +/* 07D548 7F048A18 100001EB */ b .L7F0491C8 +/* 07D54C 7F048A1C 8E8F0008 */ lw $t7, 8($s4) +/* 07D550 7F048A20 24010008 */ li $at, 8 +.L7F048A24: +/* 07D554 7F048A24 54410017 */ bnel $v0, $at, .L7F048A84 +/* 07D558 7F048A28 2401000C */ li $at, 12 +/* 07D55C 7F048A2C 8E8C0008 */ lw $t4, 8($s4) +/* 07D560 7F048A30 24020001 */ li $v0, 1 +/* 07D564 7F048A34 26440040 */ addiu $a0, $s2, 0x40 +/* 07D568 7F048A38 858A000E */ lh $t2, 0xe($t4) +/* 07D56C 7F048A3C 29410002 */ slti $at, $t2, 2 +/* 07D570 7F048A40 542001E1 */ bnezl $at, .L7F0491C8 +/* 07D574 7F048A44 8E8F0008 */ lw $t7, 8($s4) +/* 07D578 7F048A48 AFA202F8 */ sw $v0, 0x2f8($sp) +.L7F048A4C: +/* 07D57C 7F048A4C 0FC15FF4 */ jal matrix_4x4_set_identity +/* 07D580 7F048A50 AFA40074 */ sw $a0, 0x74($sp) +/* 07D584 7F048A54 8E8E0008 */ lw $t6, 8($s4) +/* 07D588 7F048A58 8FA202F8 */ lw $v0, 0x2f8($sp) +/* 07D58C 7F048A5C 8FA40074 */ lw $a0, 0x74($sp) +/* 07D590 7F048A60 85CD000E */ lh $t5, 0xe($t6) +/* 07D594 7F048A64 24420001 */ addiu $v0, $v0, 1 +/* 07D598 7F048A68 24840040 */ addiu $a0, $a0, 0x40 +/* 07D59C 7F048A6C 004D082A */ slt $at, $v0, $t5 +/* 07D5A0 7F048A70 5420FFF6 */ bnezl $at, .L7F048A4C +/* 07D5A4 7F048A74 AFA202F8 */ sw $v0, 0x2f8($sp) +/* 07D5A8 7F048A78 100001D3 */ b .L7F0491C8 +/* 07D5AC 7F048A7C 8E8F0008 */ lw $t7, 8($s4) +/* 07D5B0 7F048A80 2401000C */ li $at, 12 +.L7F048A84: +/* 07D5B4 7F048A84 5441002C */ bnel $v0, $at, .L7F048B38 +/* 07D5B8 7F048A88 24010027 */ li $at, 39 +/* 07D5BC 7F048A8C 8E980008 */ lw $t8, 8($s4) +/* 07D5C0 7F048A90 26450040 */ addiu $a1, $s2, 0x40 +/* 07D5C4 7F048A94 8F0F0008 */ lw $t7, 8($t8) +/* 07D5C8 7F048A98 8DE80000 */ lw $t0, ($t7) +/* 07D5CC 7F048A9C 8D040004 */ lw $a0, 4($t0) +/* 07D5D0 7F048AA0 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07D5D4 7F048AA4 AFA5006C */ sw $a1, 0x6c($sp) +/* 07D5D8 7F048AA8 02402025 */ move $a0, $s2 +/* 07D5DC 7F048AAC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D5E0 7F048AB0 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D5E4 7F048AB4 8E8B0008 */ lw $t3, 8($s4) +/* 07D5E8 7F048AB8 26450080 */ addiu $a1, $s2, 0x80 +/* 07D5EC 7F048ABC 8D690008 */ lw $t1, 8($t3) +/* 07D5F0 7F048AC0 8D390004 */ lw $t9, 4($t1) +/* 07D5F4 7F048AC4 8F240004 */ lw $a0, 4($t9) +/* 07D5F8 7F048AC8 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07D5FC 7F048ACC AFA50068 */ sw $a1, 0x68($sp) +/* 07D600 7F048AD0 02402025 */ move $a0, $s2 +/* 07D604 7F048AD4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D608 7F048AD8 8FA50068 */ lw $a1, 0x68($sp) +/* 07D60C 7F048ADC 8E8C0008 */ lw $t4, 8($s4) +/* 07D610 7F048AE0 264500C0 */ addiu $a1, $s2, 0xc0 +/* 07D614 7F048AE4 8D8A0008 */ lw $t2, 8($t4) +/* 07D618 7F048AE8 8D4E0008 */ lw $t6, 8($t2) +/* 07D61C 7F048AEC 8DC40004 */ lw $a0, 4($t6) +/* 07D620 7F048AF0 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07D624 7F048AF4 AFA50074 */ sw $a1, 0x74($sp) +/* 07D628 7F048AF8 02402025 */ move $a0, $s2 +/* 07D62C 7F048AFC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D630 7F048B00 8FA50074 */ lw $a1, 0x74($sp) +/* 07D634 7F048B04 8E8D0008 */ lw $t5, 8($s4) +/* 07D638 7F048B08 26500100 */ addiu $s0, $s2, 0x100 +/* 07D63C 7F048B0C 02002825 */ move $a1, $s0 +/* 07D640 7F048B10 8DB80008 */ lw $t8, 8($t5) +/* 07D644 7F048B14 8F0F000C */ lw $t7, 0xc($t8) +/* 07D648 7F048B18 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07D64C 7F048B1C 8DE40004 */ lw $a0, 4($t7) +/* 07D650 7F048B20 02402025 */ move $a0, $s2 +/* 07D654 7F048B24 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D658 7F048B28 02002825 */ move $a1, $s0 +/* 07D65C 7F048B2C 100001A6 */ b .L7F0491C8 +/* 07D660 7F048B30 8E8F0008 */ lw $t7, 8($s4) +/* 07D664 7F048B34 24010027 */ li $at, 39 +.L7F048B38: +/* 07D668 7F048B38 544100B9 */ bnel $v0, $at, .L7F048E20 +/* 07D66C 7F048B3C 24010028 */ li $at, 40 +/* 07D670 7F048B40 8E880008 */ lw $t0, 8($s4) +/* 07D674 7F048B44 8FAF0678 */ lw $t7, 0x678($sp) +/* 07D678 7F048B48 4600B006 */ mov.s $f0, $f22 +/* 07D67C 7F048B4C 8D030008 */ lw $v1, 8($t0) +/* 07D680 7F048B50 8C6B0004 */ lw $t3, 4($v1) +/* 07D684 7F048B54 8D690004 */ lw $t1, 4($t3) +/* 07D688 7F048B58 AFA90260 */ sw $t1, 0x260($sp) +/* 07D68C 7F048B5C 8C790008 */ lw $t9, 8($v1) +/* 07D690 7F048B60 8F2C0004 */ lw $t4, 4($t9) +/* 07D694 7F048B64 AFAC025C */ sw $t4, 0x25c($sp) +/* 07D698 7F048B68 8C6E0010 */ lw $t6, 0x10($v1) +/* 07D69C 7F048B6C 8C6A000C */ lw $t2, 0xc($v1) +/* 07D6A0 7F048B70 8DCD0004 */ lw $t5, 4($t6) +/* 07D6A4 7F048B74 8D500004 */ lw $s0, 4($t2) +/* 07D6A8 7F048B78 AFAD0254 */ sw $t5, 0x254($sp) +/* 07D6AC 7F048B7C 8C780018 */ lw $t8, 0x18($v1) +/* 07D6B0 7F048B80 C6840014 */ lwc1 $f4, 0x14($s4) +/* 07D6B4 7F048B84 8F020004 */ lw $v0, 4($t8) +/* 07D6B8 7F048B88 C4460010 */ lwc1 $f6, 0x10($v0) +/* 07D6BC 7F048B8C C44A000C */ lwc1 $f10, 0xc($v0) +/* 07D6C0 7F048B90 460A3201 */ sub.s $f8, $f6, $f10 +/* 07D6C4 7F048B94 46044082 */ mul.s $f2, $f8, $f4 +/* 07D6C8 7F048B98 11E00026 */ beqz $t7, .L7F048C34 +/* 07D6CC 7F048B9C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07D6D0 7F048BA0 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07D6D4 7F048BA4 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07D6D8 7F048BA8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07D6DC 7F048BAC 460A3202 */ mul.s $f8, $f6, $f10 +/* 07D6E0 7F048BB0 44815000 */ mtc1 $at, $f10 +/* 07D6E4 7F048BB4 46144102 */ mul.s $f4, $f8, $f20 +/* 07D6E8 7F048BB8 00000000 */ nop +/* 07D6EC 7F048BBC 46141182 */ mul.s $f6, $f2, $f20 +/* 07D6F0 7F048BC0 00000000 */ nop +/* 07D6F4 7F048BC4 460A3202 */ mul.s $f8, $f6, $f10 +/* 07D6F8 7F048BC8 C626008C */ lwc1 $f6, 0x8c($s1) +/* 07D6FC 7F048BCC 46082003 */ div.s $f0, $f4, $f8 +/* 07D700 7F048BD0 46003280 */ add.s $f10, $f6, $f0 +/* 07D704 7F048BD4 E62A008C */ swc1 $f10, 0x8c($s1) +/* 07D708 7F048BD8 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D70C 7F048BDC 460CA03E */ c.le.s $f20, $f12 +/* 07D710 7F048BE0 00000000 */ nop +/* 07D714 7F048BE4 45000008 */ bc1f .L7F048C08 +/* 07D718 7F048BE8 00000000 */ nop +/* 07D71C 7F048BEC 46146101 */ sub.s $f4, $f12, $f20 +.L7F048BF0: +/* 07D720 7F048BF0 E624008C */ swc1 $f4, 0x8c($s1) +/* 07D724 7F048BF4 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D728 7F048BF8 460CA03E */ c.le.s $f20, $f12 +/* 07D72C 7F048BFC 00000000 */ nop +/* 07D730 7F048C00 4503FFFB */ bc1tl .L7F048BF0 +/* 07D734 7F048C04 46146101 */ sub.s $f4, $f12, $f20 +.L7F048C08: +/* 07D738 7F048C08 4616603C */ c.lt.s $f12, $f22 +/* 07D73C 7F048C0C 00000000 */ nop +/* 07D740 7F048C10 45020009 */ bc1fl .L7F048C38 +/* 07D744 7F048C14 C626008C */ lwc1 $f6, 0x8c($s1) +/* 07D748 7F048C18 46146200 */ add.s $f8, $f12, $f20 +.L7F048C1C: +/* 07D74C 7F048C1C E628008C */ swc1 $f8, 0x8c($s1) +/* 07D750 7F048C20 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D754 7F048C24 4616603C */ c.lt.s $f12, $f22 +/* 07D758 7F048C28 00000000 */ nop +/* 07D75C 7F048C2C 4503FFFB */ bc1tl .L7F048C1C +/* 07D760 7F048C30 46146200 */ add.s $f8, $f12, $f20 +.L7F048C34: +/* 07D764 7F048C34 C626008C */ lwc1 $f6, 0x8c($s1) +.L7F048C38: +/* 07D768 7F048C38 46003280 */ add.s $f10, $f6, $f0 +/* 07D76C 7F048C3C E62A008C */ swc1 $f10, 0x8c($s1) +/* 07D770 7F048C40 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D774 7F048C44 460CA03E */ c.le.s $f20, $f12 +/* 07D778 7F048C48 00000000 */ nop +/* 07D77C 7F048C4C 45020009 */ bc1fl .L7F048C74 +/* 07D780 7F048C50 4616603C */ c.lt.s $f12, $f22 +/* 07D784 7F048C54 46146101 */ sub.s $f4, $f12, $f20 +.L7F048C58: +/* 07D788 7F048C58 E624008C */ swc1 $f4, 0x8c($s1) +/* 07D78C 7F048C5C C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D790 7F048C60 460CA03E */ c.le.s $f20, $f12 +/* 07D794 7F048C64 00000000 */ nop +/* 07D798 7F048C68 4503FFFB */ bc1tl .L7F048C58 +/* 07D79C 7F048C6C 46146101 */ sub.s $f4, $f12, $f20 +/* 07D7A0 7F048C70 4616603C */ c.lt.s $f12, $f22 +.L7F048C74: +/* 07D7A4 7F048C74 00000000 */ nop +/* 07D7A8 7F048C78 45000008 */ bc1f .L7F048C9C +/* 07D7AC 7F048C7C 00000000 */ nop +/* 07D7B0 7F048C80 46146200 */ add.s $f8, $f12, $f20 +.L7F048C84: +/* 07D7B4 7F048C84 E628008C */ swc1 $f8, 0x8c($s1) +/* 07D7B8 7F048C88 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D7BC 7F048C8C 4616603C */ c.lt.s $f12, $f22 +/* 07D7C0 7F048C90 00000000 */ nop +/* 07D7C4 7F048C94 4503FFFB */ bc1tl .L7F048C84 +/* 07D7C8 7F048C98 46146200 */ add.s $f8, $f12, $f20 +.L7F048C9C: +/* 07D7CC 7F048C9C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07D7D0 7F048CA0 27A502AC */ addiu $a1, $sp, 0x2ac +/* 07D7D4 7F048CA4 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07D7D8 7F048CA8 4606B03C */ c.lt.s $f22, $f6 +/* 07D7DC 7F048CAC 00000000 */ nop +/* 07D7E0 7F048CB0 4502002B */ bc1fl .L7F048D60 +/* 07D7E4 7F048CB4 C62C0090 */ lwc1 $f12, 0x90($s1) +/* 07D7E8 7F048CB8 8FA80260 */ lw $t0, 0x260($sp) +/* 07D7EC 7F048CBC C60A0008 */ lwc1 $f10, 8($s0) +/* 07D7F0 7F048CC0 C62C009C */ lwc1 $f12, 0x9c($s1) +/* 07D7F4 7F048CC4 C5040008 */ lwc1 $f4, 8($t0) +/* 07D7F8 7F048CC8 C6860014 */ lwc1 $f6, 0x14($s4) +/* 07D7FC 7F048CCC 4616603C */ c.lt.s $f12, $f22 +/* 07D800 7F048CD0 46045201 */ sub.s $f8, $f10, $f4 +/* 07D804 7F048CD4 46064082 */ mul.s $f2, $f8, $f6 +/* 07D808 7F048CD8 45020003 */ bc1fl .L7F048CE8 +/* 07D80C 7F048CDC E7A20250 */ swc1 $f2, 0x250($sp) +/* 07D810 7F048CE0 46006307 */ neg.s $f12, $f12 +/* 07D814 7F048CE4 E7A20250 */ swc1 $f2, 0x250($sp) +.L7F048CE8: +/* 07D818 7F048CE8 0FC15FAB */ jal sinf +/* 07D81C 7F048CEC E7AC024C */ swc1 $f12, 0x24c($sp) +/* 07D820 7F048CF0 C7A20250 */ lwc1 $f2, 0x250($sp) +/* 07D824 7F048CF4 C7AC024C */ lwc1 $f12, 0x24c($sp) +/* 07D828 7F048CF8 46020282 */ mul.s $f10, $f0, $f2 +/* 07D82C 7F048CFC 0FC15FA8 */ jal cosf +/* 07D830 7F048D00 E7AA0248 */ swc1 $f10, 0x248($sp) +/* 07D834 7F048D04 C7A20250 */ lwc1 $f2, 0x250($sp) +/* 07D838 7F048D08 C6280088 */ lwc1 $f8, 0x88($s1) +/* 07D83C 7F048D0C C7AC0248 */ lwc1 $f12, 0x248($sp) +/* 07D840 7F048D10 46020102 */ mul.s $f4, $f0, $f2 +/* 07D844 7F048D14 46081181 */ sub.s $f6, $f2, $f8 +/* 07D848 7F048D18 0FC16A8C */ jal atan2f +/* 07D84C 7F048D1C 46062381 */ sub.s $f14, $f4, $f6 +/* 07D850 7F048D20 C7A2024C */ lwc1 $f2, 0x24c($sp) +/* 07D854 7F048D24 E6200090 */ swc1 $f0, 0x90($s1) +/* 07D858 7F048D28 4602003C */ c.lt.s $f0, $f2 +/* 07D85C 7F048D2C 00000000 */ nop +/* 07D860 7F048D30 45020003 */ bc1fl .L7F048D40 +/* 07D864 7F048D34 C62A009C */ lwc1 $f10, 0x9c($s1) +/* 07D868 7F048D38 E6220090 */ swc1 $f2, 0x90($s1) +/* 07D86C 7F048D3C C62A009C */ lwc1 $f10, 0x9c($s1) +.L7F048D40: +/* 07D870 7F048D40 460AB03C */ c.lt.s $f22, $f10 +/* 07D874 7F048D44 00000000 */ nop +/* 07D878 7F048D48 45020005 */ bc1fl .L7F048D60 +/* 07D87C 7F048D4C C62C0090 */ lwc1 $f12, 0x90($s1) +/* 07D880 7F048D50 C6280090 */ lwc1 $f8, 0x90($s1) +/* 07D884 7F048D54 4608A101 */ sub.s $f4, $f20, $f8 +/* 07D888 7F048D58 E6240090 */ swc1 $f4, 0x90($s1) +/* 07D88C 7F048D5C C62C0090 */ lwc1 $f12, 0x90($s1) +.L7F048D60: +/* 07D890 7F048D60 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 07D894 7F048D64 27A5026C */ addiu $a1, $sp, 0x26c +/* 07D898 7F048D68 264500C0 */ addiu $a1, $s2, 0xc0 +/* 07D89C 7F048D6C AFA50074 */ sw $a1, 0x74($sp) +/* 07D8A0 7F048D70 0FC16008 */ jal matrix_4x4_copy +/* 07D8A4 7F048D74 27A402AC */ addiu $a0, $sp, 0x2ac +/* 07D8A8 7F048D78 02002025 */ move $a0, $s0 +/* 07D8AC 7F048D7C 0FC16266 */ jal matrix_4x4_set_position +/* 07D8B0 7F048D80 8FA50074 */ lw $a1, 0x74($sp) +/* 07D8B4 7F048D84 02402025 */ move $a0, $s2 +/* 07D8B8 7F048D88 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D8BC 7F048D8C 8FA50074 */ lw $a1, 0x74($sp) +/* 07D8C0 7F048D90 26500100 */ addiu $s0, $s2, 0x100 +/* 07D8C4 7F048D94 02002825 */ move $a1, $s0 +/* 07D8C8 7F048D98 0FC16008 */ jal matrix_4x4_copy +/* 07D8CC 7F048D9C 27A402AC */ addiu $a0, $sp, 0x2ac +/* 07D8D0 7F048DA0 8FA40254 */ lw $a0, 0x254($sp) +/* 07D8D4 7F048DA4 0FC16266 */ jal matrix_4x4_set_position +/* 07D8D8 7F048DA8 02002825 */ move $a1, $s0 +/* 07D8DC 7F048DAC 02402025 */ move $a0, $s2 +/* 07D8E0 7F048DB0 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D8E4 7F048DB4 02002825 */ move $a1, $s0 +/* 07D8E8 7F048DB8 27A4026C */ addiu $a0, $sp, 0x26c +/* 07D8EC 7F048DBC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D8F0 7F048DC0 27A502AC */ addiu $a1, $sp, 0x2ac +/* 07D8F4 7F048DC4 26450040 */ addiu $a1, $s2, 0x40 +/* 07D8F8 7F048DC8 AFA5006C */ sw $a1, 0x6c($sp) +/* 07D8FC 7F048DCC 0FC16008 */ jal matrix_4x4_copy +/* 07D900 7F048DD0 27A402AC */ addiu $a0, $sp, 0x2ac +/* 07D904 7F048DD4 8FA40260 */ lw $a0, 0x260($sp) +/* 07D908 7F048DD8 0FC16266 */ jal matrix_4x4_set_position +/* 07D90C 7F048DDC 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D910 7F048DE0 02402025 */ move $a0, $s2 +/* 07D914 7F048DE4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D918 7F048DE8 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D91C 7F048DEC 26450080 */ addiu $a1, $s2, 0x80 +/* 07D920 7F048DF0 AFA50068 */ sw $a1, 0x68($sp) +/* 07D924 7F048DF4 0FC16008 */ jal matrix_4x4_copy +/* 07D928 7F048DF8 27A402AC */ addiu $a0, $sp, 0x2ac +/* 07D92C 7F048DFC 8FA4025C */ lw $a0, 0x25c($sp) +/* 07D930 7F048E00 0FC16266 */ jal matrix_4x4_set_position +/* 07D934 7F048E04 8FA50068 */ lw $a1, 0x68($sp) +/* 07D938 7F048E08 02402025 */ move $a0, $s2 +/* 07D93C 7F048E0C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D940 7F048E10 8FA50068 */ lw $a1, 0x68($sp) +/* 07D944 7F048E14 100000EC */ b .L7F0491C8 +/* 07D948 7F048E18 8E8F0008 */ lw $t7, 8($s4) +/* 07D94C 7F048E1C 24010028 */ li $at, 40 +.L7F048E20: +/* 07D950 7F048E20 14410086 */ bne $v0, $at, .L7F04903C +/* 07D954 7F048E24 00000000 */ nop +/* 07D958 7F048E28 8E8B0008 */ lw $t3, 8($s4) +/* 07D95C 7F048E2C 3C0A8005 */ lui $t2, %hi(clock_timer) +/* 07D960 7F048E30 8D4A8374 */ lw $t2, %lo(clock_timer)($t2) +/* 07D964 7F048E34 8D690008 */ lw $t1, 8($t3) +/* 07D968 7F048E38 8FAE0678 */ lw $t6, 0x678($sp) +/* 07D96C 7F048E3C 27B001B0 */ addiu $s0, $sp, 0x1b0 +/* 07D970 7F048E40 8D390008 */ lw $t9, 8($t1) +/* 07D974 7F048E44 3C0F8003 */ lui $t7, %hi(D_80030B34) +/* 07D978 7F048E48 02402025 */ move $a0, $s2 +/* 07D97C 7F048E4C 8F2C0004 */ lw $t4, 4($t9) +/* 07D980 7F048E50 26450040 */ addiu $a1, $s2, 0x40 +/* 07D984 7F048E54 1940001E */ blez $t2, .L7F048ED0 +/* 07D988 7F048E58 AFAC01FC */ sw $t4, 0x1fc($sp) +/* 07D98C 7F048E5C 51C0001D */ beql $t6, $zero, .L7F048ED4 +/* 07D990 7F048E60 8E2D0014 */ lw $t5, 0x14($s1) +/* 07D994 7F048E64 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07D998 7F048E68 C62A008C */ lwc1 $f10, 0x8c($s1) +/* 07D99C 7F048E6C 460A3200 */ add.s $f8, $f6, $f10 +/* 07D9A0 7F048E70 E6280088 */ swc1 $f8, 0x88($s1) +/* 07D9A4 7F048E74 C6200088 */ lwc1 $f0, 0x88($s1) +/* 07D9A8 7F048E78 4600A03E */ c.le.s $f20, $f0 +/* 07D9AC 7F048E7C 00000000 */ nop +/* 07D9B0 7F048E80 45020009 */ bc1fl .L7F048EA8 +/* 07D9B4 7F048E84 4616003C */ c.lt.s $f0, $f22 +/* 07D9B8 7F048E88 46140101 */ sub.s $f4, $f0, $f20 +.L7F048E8C: +/* 07D9BC 7F048E8C E6240088 */ swc1 $f4, 0x88($s1) +/* 07D9C0 7F048E90 C6200088 */ lwc1 $f0, 0x88($s1) +/* 07D9C4 7F048E94 4600A03E */ c.le.s $f20, $f0 +/* 07D9C8 7F048E98 00000000 */ nop +/* 07D9CC 7F048E9C 4503FFFB */ bc1tl .L7F048E8C +/* 07D9D0 7F048EA0 46140101 */ sub.s $f4, $f0, $f20 +/* 07D9D4 7F048EA4 4616003C */ c.lt.s $f0, $f22 +.L7F048EA8: +/* 07D9D8 7F048EA8 00000000 */ nop +/* 07D9DC 7F048EAC 45020009 */ bc1fl .L7F048ED4 +/* 07D9E0 7F048EB0 8E2D0014 */ lw $t5, 0x14($s1) +/* 07D9E4 7F048EB4 46140180 */ add.s $f6, $f0, $f20 +.L7F048EB8: +/* 07D9E8 7F048EB8 E6260088 */ swc1 $f6, 0x88($s1) +/* 07D9EC 7F048EBC C6200088 */ lwc1 $f0, 0x88($s1) +/* 07D9F0 7F048EC0 4616003C */ c.lt.s $f0, $f22 +/* 07D9F4 7F048EC4 00000000 */ nop +/* 07D9F8 7F048EC8 4503FFFB */ bc1tl .L7F048EB8 +/* 07D9FC 7F048ECC 46140180 */ add.s $f6, $f0, $f20 +.L7F048ED0: +/* 07DA00 7F048ED0 8E2D0014 */ lw $t5, 0x14($s1) +.L7F048ED4: +/* 07DA04 7F048ED4 25EF0B34 */ addiu $t7, %lo(D_80030B34) # addiu $t7, $t7, 0xb34 +/* 07DA08 7F048ED8 25EB003C */ addiu $t3, $t7, 0x3c +/* 07DA0C 7F048EDC 8DB80020 */ lw $t8, 0x20($t5) +/* 07DA10 7F048EE0 02004825 */ move $t1, $s0 +/* 07DA14 7F048EE4 13000015 */ beqz $t8, .L7F048F3C +/* 07DA18 7F048EE8 00000000 */ nop +.L7F048EEC: +/* 07DA1C 7F048EEC 8DE10000 */ lw $at, ($t7) +/* 07DA20 7F048EF0 25EF000C */ addiu $t7, $t7, 0xc +/* 07DA24 7F048EF4 2529000C */ addiu $t1, $t1, 0xc +/* 07DA28 7F048EF8 AD21FFF4 */ sw $at, -0xc($t1) +/* 07DA2C 7F048EFC 8DE1FFF8 */ lw $at, -8($t7) +/* 07DA30 7F048F00 AD21FFF8 */ sw $at, -8($t1) +/* 07DA34 7F048F04 8DE1FFFC */ lw $at, -4($t7) +/* 07DA38 7F048F08 15EBFFF8 */ bne $t7, $t3, .L7F048EEC +/* 07DA3C 7F048F0C AD21FFFC */ sw $at, -4($t1) +/* 07DA40 7F048F10 8DE10000 */ lw $at, ($t7) +/* 07DA44 7F048F14 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 07DA48 7F048F18 AD210000 */ sw $at, ($t1) +/* 07DA4C 7F048F1C AFA201B0 */ sw $v0, 0x1b0($sp) +/* 07DA50 7F048F20 AFB201C0 */ sw $s2, 0x1c0($sp) +/* 07DA54 7F048F24 8E250014 */ lw $a1, 0x14($s1) +/* 07DA58 7F048F28 0FC1BCBE */ jal subcalcmatrices +/* 07DA5C 7F048F2C 02002025 */ move $a0, $s0 +/* 07DA60 7F048F30 26590040 */ addiu $t9, $s2, 0x40 +/* 07DA64 7F048F34 10000003 */ b .L7F048F44 +/* 07DA68 7F048F38 AFB9006C */ sw $t9, 0x6c($sp) +.L7F048F3C: +/* 07DA6C 7F048F3C 0FC16008 */ jal matrix_4x4_copy +/* 07DA70 7F048F40 AFA5006C */ sw $a1, 0x6c($sp) +.L7F048F44: +/* 07DA74 7F048F44 8E2C0008 */ lw $t4, 8($s1) +/* 07DA78 7F048F48 27A50200 */ addiu $a1, $sp, 0x200 +/* 07DA7C 7F048F4C 000C5080 */ sll $t2, $t4, 2 +/* 07DA80 7F048F50 05410006 */ bgez $t2, .L7F048F6C +/* 07DA84 7F048F54 00000000 */ nop +/* 07DA88 7F048F58 C62C0088 */ lwc1 $f12, 0x88($s1) +/* 07DA8C 7F048F5C 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 07DA90 7F048F60 27A50200 */ addiu $a1, $sp, 0x200 +/* 07DA94 7F048F64 10000004 */ b .L7F048F78 +/* 07DA98 7F048F68 26450080 */ addiu $a1, $s2, 0x80 +.L7F048F6C: +/* 07DA9C 7F048F6C 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 07DAA0 7F048F70 C62C0088 */ lwc1 $f12, 0x88($s1) +/* 07DAA4 7F048F74 26450080 */ addiu $a1, $s2, 0x80 +.L7F048F78: +/* 07DAA8 7F048F78 AFA50068 */ sw $a1, 0x68($sp) +/* 07DAAC 7F048F7C 0FC16008 */ jal matrix_4x4_copy +/* 07DAB0 7F048F80 27A40200 */ addiu $a0, $sp, 0x200 +/* 07DAB4 7F048F84 8FA401FC */ lw $a0, 0x1fc($sp) +/* 07DAB8 7F048F88 0FC16266 */ jal matrix_4x4_set_position +/* 07DABC 7F048F8C 8FA50068 */ lw $a1, 0x68($sp) +/* 07DAC0 7F048F90 8FA4006C */ lw $a0, 0x6c($sp) +/* 07DAC4 7F048F94 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DAC8 7F048F98 8FA50068 */ lw $a1, 0x68($sp) +/* 07DACC 7F048F9C 8E8E0008 */ lw $t6, 8($s4) +/* 07DAD0 7F048FA0 02802025 */ move $a0, $s4 +/* 07DAD4 7F048FA4 00003025 */ move $a2, $zero +/* 07DAD8 7F048FA8 8DC30008 */ lw $v1, 8($t6) +/* 07DADC 7F048FAC 8C65000C */ lw $a1, 0xc($v1) +/* 07DAE0 7F048FB0 50A00013 */ beql $a1, $zero, .L7F049000 +/* 07DAE4 7F048FB4 8C650010 */ lw $a1, 0x10($v1) +/* 07DAE8 7F048FB8 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07DAEC 7F048FBC 8CB20004 */ lw $s2, 4($a1) +/* 07DAF0 7F048FC0 00408025 */ move $s0, $v0 +/* 07DAF4 7F048FC4 C62C0088 */ lwc1 $f12, 0x88($s1) +/* 07DAF8 7F048FC8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07DAFC 7F048FCC 27A50200 */ addiu $a1, $sp, 0x200 +/* 07DB00 7F048FD0 27A40200 */ addiu $a0, $sp, 0x200 +/* 07DB04 7F048FD4 0FC16008 */ jal matrix_4x4_copy +/* 07DB08 7F048FD8 02002825 */ move $a1, $s0 +/* 07DB0C 7F048FDC 02402025 */ move $a0, $s2 +/* 07DB10 7F048FE0 0FC16266 */ jal matrix_4x4_set_position +/* 07DB14 7F048FE4 02002825 */ move $a1, $s0 +/* 07DB18 7F048FE8 8FA4006C */ lw $a0, 0x6c($sp) +/* 07DB1C 7F048FEC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DB20 7F048FF0 02002825 */ move $a1, $s0 +/* 07DB24 7F048FF4 8E8D0008 */ lw $t5, 8($s4) +/* 07DB28 7F048FF8 8DA30008 */ lw $v1, 8($t5) +/* 07DB2C 7F048FFC 8C650010 */ lw $a1, 0x10($v1) +.L7F049000: +/* 07DB30 7F049000 02802025 */ move $a0, $s4 +/* 07DB34 7F049004 00003025 */ move $a2, $zero +/* 07DB38 7F049008 50A0006F */ beql $a1, $zero, .L7F0491C8 +/* 07DB3C 7F04900C 8E8F0008 */ lw $t7, 8($s4) +/* 07DB40 7F049010 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07DB44 7F049014 8CB20004 */ lw $s2, 4($a1) +/* 07DB48 7F049018 00408025 */ move $s0, $v0 +/* 07DB4C 7F04901C 02402025 */ move $a0, $s2 +/* 07DB50 7F049020 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07DB54 7F049024 00402825 */ move $a1, $v0 +/* 07DB58 7F049028 8FA4006C */ lw $a0, 0x6c($sp) +/* 07DB5C 7F04902C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DB60 7F049030 02002825 */ move $a1, $s0 +/* 07DB64 7F049034 10000064 */ b .L7F0491C8 +/* 07DB68 7F049038 8E8F0008 */ lw $t7, 8($s4) +.L7F04903C: +/* 07DB6C 7F04903C 16020061 */ bne $s0, $v0, .L7F0491C4 +/* 07DB70 7F049040 26450040 */ addiu $a1, $s2, 0x40 +/* 07DB74 7F049044 8E980008 */ lw $t8, 8($s4) +/* 07DB78 7F049048 8F030008 */ lw $v1, 8($t8) +/* 07DB7C 7F04904C 8C6B000C */ lw $t3, 0xc($v1) +/* 07DB80 7F049050 8C680004 */ lw $t0, 4($v1) +/* 07DB84 7F049054 8D6F0004 */ lw $t7, 4($t3) +/* 07DB88 7F049058 8D100004 */ lw $s0, 4($t0) +/* 07DB8C 7F04905C AFAF0164 */ sw $t7, 0x164($sp) +/* 07DB90 7F049060 8C690010 */ lw $t1, 0x10($v1) +/* 07DB94 7F049064 8D390004 */ lw $t9, 4($t1) +/* 07DB98 7F049068 AFB90160 */ sw $t9, 0x160($sp) +/* 07DB9C 7F04906C 8C6C0008 */ lw $t4, 8($v1) +/* 07DBA0 7F049070 8D8A0004 */ lw $t2, 4($t4) +/* 07DBA4 7F049074 AFAA015C */ sw $t2, 0x15c($sp) +/* 07DBA8 7F049078 8C6E0018 */ lw $t6, 0x18($v1) +/* 07DBAC 7F04907C 8DCD0004 */ lw $t5, 4($t6) +/* 07DBB0 7F049080 AFAD0158 */ sw $t5, 0x158($sp) +/* 07DBB4 7F049084 C62E00C8 */ lwc1 $f14, 0xc8($s1) +/* 07DBB8 7F049088 46007387 */ neg.s $f14, $f14 +/* 07DBBC 7F04908C 4616703C */ c.lt.s $f14, $f22 +/* 07DBC0 7F049090 00000000 */ nop +/* 07DBC4 7F049094 45020003 */ bc1fl .L7F0490A4 +/* 07DBC8 7F049098 C62C00CC */ lwc1 $f12, 0xcc($s1) +/* 07DBCC 7F04909C 46147380 */ add.s $f14, $f14, $f20 +/* 07DBD0 7F0490A0 C62C00CC */ lwc1 $f12, 0xcc($s1) +.L7F0490A4: +/* 07DBD4 7F0490A4 46006307 */ neg.s $f12, $f12 +/* 07DBD8 7F0490A8 4616603C */ c.lt.s $f12, $f22 +/* 07DBDC 7F0490AC 00000000 */ nop +/* 07DBE0 7F0490B0 45020003 */ bc1fl .L7F0490C0 +/* 07DBE4 7F0490B4 AFA5006C */ sw $a1, 0x6c($sp) +/* 07DBE8 7F0490B8 46146300 */ add.s $f12, $f12, $f20 +/* 07DBEC 7F0490BC AFA5006C */ sw $a1, 0x6c($sp) +.L7F0490C0: +/* 07DBF0 7F0490C0 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 07DBF4 7F0490C4 E7AE0154 */ swc1 $f14, 0x154($sp) +/* 07DBF8 7F0490C8 02002025 */ move $a0, $s0 +/* 07DBFC 7F0490CC 0FC16266 */ jal matrix_4x4_set_position +/* 07DC00 7F0490D0 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DC04 7F0490D4 02402025 */ move $a0, $s2 +/* 07DC08 7F0490D8 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DC0C 7F0490DC 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DC10 7F0490E0 264500C0 */ addiu $a1, $s2, 0xc0 +/* 07DC14 7F0490E4 C7AC0154 */ lwc1 $f12, 0x154($sp) +/* 07DC18 7F0490E8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07DC1C 7F0490EC AFA50074 */ sw $a1, 0x74($sp) +/* 07DC20 7F0490F0 8FA40164 */ lw $a0, 0x164($sp) +/* 07DC24 7F0490F4 0FC16266 */ jal matrix_4x4_set_position +/* 07DC28 7F0490F8 8FA50074 */ lw $a1, 0x74($sp) +/* 07DC2C 7F0490FC 8FA4006C */ lw $a0, 0x6c($sp) +/* 07DC30 7F049100 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DC34 7F049104 8FA50074 */ lw $a1, 0x74($sp) +/* 07DC38 7F049108 3C018005 */ lui $at, %hi(D_80052B70) +/* 07DC3C 7F04910C 26500100 */ addiu $s0, $s2, 0x100 +/* 07DC40 7F049110 02002825 */ move $a1, $s0 +/* 07DC44 7F049114 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 07DC48 7F049118 C42C2B70 */ lwc1 $f12, %lo(D_80052B70)($at) +/* 07DC4C 7F04911C 8FA40160 */ lw $a0, 0x160($sp) +/* 07DC50 7F049120 0FC16266 */ jal matrix_4x4_set_position +/* 07DC54 7F049124 02002825 */ move $a1, $s0 +/* 07DC58 7F049128 8FA40074 */ lw $a0, 0x74($sp) +/* 07DC5C 7F04912C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DC60 7F049130 02002825 */ move $a1, $s0 +/* 07DC64 7F049134 26450080 */ addiu $a1, $s2, 0x80 +/* 07DC68 7F049138 AFA50068 */ sw $a1, 0x68($sp) +/* 07DC6C 7F04913C 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07DC70 7F049140 8FA4015C */ lw $a0, 0x15c($sp) +/* 07DC74 7F049144 8FA4006C */ lw $a0, 0x6c($sp) +/* 07DC78 7F049148 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DC7C 7F04914C 8FA50068 */ lw $a1, 0x68($sp) +/* 07DC80 7F049150 0FC1E111 */ jal sub_GAME_7F078444 +/* 07DC84 7F049154 00000000 */ nop +/* 07DC88 7F049158 27B0016C */ addiu $s0, $sp, 0x16c +/* 07DC8C 7F04915C 02003025 */ move $a2, $s0 +/* 07DC90 7F049160 00402025 */ move $a0, $v0 +/* 07DC94 7F049164 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 07DC98 7F049168 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DC9C 7F04916C 8FA40158 */ lw $a0, 0x158($sp) +/* 07DCA0 7F049170 02002825 */ move $a1, $s0 +/* 07DCA4 7F049174 26260084 */ addiu $a2, $s1, 0x84 +/* 07DCA8 7F049178 0FC0FD50 */ jal sub_GAME_7F03F540 +/* 07DCAC 7F04917C 26270080 */ addiu $a3, $s1, 0x80 +/* 07DCB0 7F049180 8E980008 */ lw $t8, 8($s4) +/* 07DCB4 7F049184 8F030008 */ lw $v1, 8($t8) +/* 07DCB8 7F049188 8C65001C */ lw $a1, 0x1c($v1) +/* 07DCBC 7F04918C 50A00008 */ beql $a1, $zero, .L7F0491B0 +/* 07DCC0 7F049190 8C650020 */ lw $a1, 0x20($v1) +/* 07DCC4 7F049194 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07DCC8 7F049198 02802025 */ move $a0, $s4 +/* 07DCCC 7F04919C 8E2800C4 */ lw $t0, 0xc4($s1) +/* 07DCD0 7F0491A0 A4480000 */ sh $t0, ($v0) +/* 07DCD4 7F0491A4 8E8B0008 */ lw $t3, 8($s4) +/* 07DCD8 7F0491A8 8D630008 */ lw $v1, 8($t3) +/* 07DCDC 7F0491AC 8C650020 */ lw $a1, 0x20($v1) +.L7F0491B0: +/* 07DCE0 7F0491B0 50A00005 */ beql $a1, $zero, .L7F0491C8 +/* 07DCE4 7F0491B4 8E8F0008 */ lw $t7, 8($s4) +/* 07DCE8 7F0491B8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07DCEC 7F0491BC 02802025 */ move $a0, $s4 +/* 07DCF0 7F0491C0 AC400000 */ sw $zero, ($v0) +.L7F0491C4: +/* 07DCF4 7F0491C4 8E8F0008 */ lw $t7, 8($s4) +.L7F0491C8: +/* 07DCF8 7F0491C8 02802025 */ move $a0, $s4 +/* 07DCFC 7F0491CC 0FC1BBA9 */ jal sub_GAME_7F06EEA4 +/* 07DD00 7F0491D0 8DE50000 */ lw $a1, ($t7) +/* 07DD04 7F0491D4 8E89000C */ lw $t1, 0xc($s4) +/* 07DD08 7F0491D8 02602025 */ move $a0, $s3 +/* 07DD0C 7F0491DC C52A0038 */ lwc1 $f10, 0x38($t1) +/* 07DD10 7F0491E0 46005207 */ neg.s $f8, $f10 +/* 07DD14 7F0491E4 0FC10F5C */ jal handle_thrown_explosive_detonation +/* 07DD18 7F0491E8 E6680018 */ swc1 $f8, 0x18($s3) +/* 07DD1C 7F0491EC 8E640020 */ lw $a0, 0x20($s3) +/* 07DD20 7F0491F0 50800018 */ beql $a0, $zero, .L7F049254 +/* 07DD24 7F0491F4 8E230064 */ lw $v1, 0x64($s1) +/* 07DD28 7F0491F8 8C820024 */ lw $v0, 0x24($a0) +.L7F0491FC: +/* 07DD2C 7F0491FC 0FC110B7 */ jal sub_GAME_7F0442DC +/* 07DD30 7F049200 AFA20684 */ sw $v0, 0x684($sp) +/* 07DD34 7F049204 8FA40684 */ lw $a0, 0x684($sp) +/* 07DD38 7F049208 5480FFFC */ bnezl $a0, .L7F0491FC +/* 07DD3C 7F04920C 8C820024 */ lw $v0, 0x24($a0) +/* 07DD40 7F049210 10000010 */ b .L7F049254 +/* 07DD44 7F049214 8E230064 */ lw $v1, 0x64($s1) +.L7F049218: +/* 07DD48 7F049218 92790001 */ lbu $t9, 1($s3) +/* 07DD4C 7F04921C 02602025 */ move $a0, $s3 +/* 07DD50 7F049220 332CFFFD */ andi $t4, $t9, 0xfffd +/* 07DD54 7F049224 0FC10F5C */ jal handle_thrown_explosive_detonation +/* 07DD58 7F049228 A26C0001 */ sb $t4, 1($s3) +/* 07DD5C 7F04922C 8E640020 */ lw $a0, 0x20($s3) +/* 07DD60 7F049230 50800008 */ beql $a0, $zero, .L7F049254 +/* 07DD64 7F049234 8E230064 */ lw $v1, 0x64($s1) +/* 07DD68 7F049238 8C820024 */ lw $v0, 0x24($a0) +.L7F04923C: +/* 07DD6C 7F04923C 0FC11093 */ jal sub_GAME_7F04424C +/* 07DD70 7F049240 AFA20684 */ sw $v0, 0x684($sp) +/* 07DD74 7F049244 8FA40684 */ lw $a0, 0x684($sp) +/* 07DD78 7F049248 5480FFFC */ bnezl $a0, .L7F04923C +/* 07DD7C 7F04924C 8C820024 */ lw $v0, 0x24($a0) +/* 07DD80 7F049250 8E230064 */ lw $v1, 0x64($s1) +.L7F049254: +/* 07DD84 7F049254 2401FEFF */ li $at, -257 +/* 07DD88 7F049258 266D0008 */ addiu $t5, $s3, 8 +/* 07DD8C 7F04925C 306A0100 */ andi $t2, $v1, 0x100 +/* 07DD90 7F049260 1140001F */ beqz $t2, .L7F0492E0 +/* 07DD94 7F049264 00617024 */ and $t6, $v1, $at +/* 07DD98 7F049268 AE2E0064 */ sw $t6, 0x64($s1) +/* 07DD9C 7F04926C 0C002914 */ jal get_random_value +/* 07DDA0 7F049270 AFAD0070 */ sw $t5, 0x70($sp) +/* 07DDA4 7F049274 44822000 */ mtc1 $v0, $f4 +/* 07DDA8 7F049278 02202025 */ move $a0, $s1 +/* 07DDAC 7F04927C 04410005 */ bgez $v0, .L7F049294 +/* 07DDB0 7F049280 468021A0 */ cvt.s.w $f6, $f4 +/* 07DDB4 7F049284 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07DDB8 7F049288 44815000 */ mtc1 $at, $f10 +/* 07DDBC 7F04928C 00000000 */ nop +/* 07DDC0 7F049290 460A3180 */ add.s $f6, $f6, $f10 +.L7F049294: +/* 07DDC4 7F049294 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07DDC8 7F049298 44814000 */ mtc1 $at, $f8 +/* 07DDCC 7F04929C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07DDD0 7F0492A0 44815000 */ mtc1 $at, $f10 +/* 07DDD4 7F0492A4 46083102 */ mul.s $f4, $f6, $f8 +/* 07DDD8 7F0492A8 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 07DDDC 7F0492AC 44814000 */ mtc1 $at, $f8 +/* 07DDE0 7F0492B0 8E380064 */ lw $t8, 0x64($s1) +/* 07DDE4 7F0492B4 3C010006 */ lui $at, 6 +/* 07DDE8 7F0492B8 8FA60070 */ lw $a2, 0x70($sp) +/* 07DDEC 7F0492BC 03014024 */ and $t0, $t8, $at +/* 07DDF0 7F0492C0 460A2182 */ mul.s $f6, $f4, $f10 +/* 07DDF4 7F0492C4 00003825 */ move $a3, $zero +/* 07DDF8 7F0492C8 00085C42 */ srl $t3, $t0, 0x11 +/* 07DDFC 7F0492CC AFAB0010 */ sw $t3, 0x10($sp) +/* 07DE00 7F0492D0 46083100 */ add.s $f4, $f6, $f8 +/* 07DE04 7F0492D4 44052000 */ mfc1 $a1, $f4 +/* 07DE08 7F0492D8 0FC13842 */ jal maybe_detonate_object +/* 07DE0C 7F0492DC 00000000 */ nop +.L7F0492E0: +/* 07DE10 7F0492E0 8FAF0678 */ lw $t7, 0x678($sp) +/* 07DE14 7F0492E4 51E0020D */ beql $t7, $zero, .L7F049B1C +/* 07DE18 7F0492E8 8FA90680 */ lw $t1, 0x680($sp) +/* 07DE1C 7F0492EC 92220003 */ lbu $v0, 3($s1) +/* 07DE20 7F0492F0 24010001 */ li $at, 1 +/* 07DE24 7F0492F4 54410006 */ bnel $v0, $at, .L7F049310 +/* 07DE28 7F0492F8 2401000D */ li $at, 13 +/* 07DE2C 7F0492FC 0FC14E8F */ jal sub_GAME_7F053A3C +/* 07DE30 7F049300 8E640004 */ lw $a0, 4($s3) +/* 07DE34 7F049304 10000202 */ b .L7F049B10 +/* 07DE38 7F049308 00000000 */ nop +/* 07DE3C 7F04930C 2401000D */ li $at, 13 +.L7F049310: +/* 07DE40 7F049310 144101FF */ bne $v0, $at, .L7F049B10 +/* 07DE44 7F049314 00000000 */ nop +/* 07DE48 7F049318 0FC2FF01 */ jal get_controls_locked_flag +/* 07DE4C 7F04931C 00000000 */ nop +/* 07DE50 7F049320 144001FB */ bnez $v0, .L7F049B10 +/* 07DE54 7F049324 00000000 */ nop +/* 07DE58 7F049328 8E700004 */ lw $s0, 4($s3) +/* 07DE5C 7F04932C AFA0013C */ sw $zero, 0x13c($sp) +/* 07DE60 7F049330 AFA00138 */ sw $zero, 0x138($sp) +/* 07DE64 7F049334 8E0900D0 */ lw $t1, 0xd0($s0) +/* 07DE68 7F049338 512001E4 */ beql $t1, $zero, .L7F049ACC +/* 07DE6C 7F04933C 8E980008 */ lw $t8, 8($s4) +/* 07DE70 7F049340 8E390008 */ lw $t9, 8($s1) +/* 07DE74 7F049344 001960C0 */ sll $t4, $t9, 3 +/* 07DE78 7F049348 058201E0 */ bltzl $t4, .L7F049ACC +/* 07DE7C 7F04934C 8E980008 */ lw $t8, 8($s4) +/* 07DE80 7F049350 8E0A00AC */ lw $t2, 0xac($s0) +/* 07DE84 7F049354 3C0C8005 */ lui $t4, %hi(global_timer) +/* 07DE88 7F049358 254E0001 */ addiu $t6, $t2, 1 +/* 07DE8C 7F04935C 31CD0001 */ andi $t5, $t6, 1 +/* 07DE90 7F049360 AE0E00AC */ sw $t6, 0xac($s0) +/* 07DE94 7F049364 2DB80001 */ sltiu $t8, $t5, 1 +/* 07DE98 7F049368 AFB8013C */ sw $t8, 0x13c($sp) +/* 07DE9C 7F04936C 8E880008 */ lw $t0, 8($s4) +/* 07DEA0 7F049370 39A90001 */ xori $t1, $t5, 1 +/* 07DEA4 7F049374 2D290001 */ sltiu $t1, $t1, 1 +/* 07DEA8 7F049378 8D0B0008 */ lw $t3, 8($t0) +/* 07DEAC 7F04937C 8D6F0014 */ lw $t7, 0x14($t3) +/* 07DEB0 7F049380 51E00003 */ beql $t7, $zero, .L7F049390 +/* 07DEB4 7F049384 8E1900C0 */ lw $t9, 0xc0($s0) +/* 07DEB8 7F049388 AFA90138 */ sw $t1, 0x138($sp) +/* 07DEBC 7F04938C 8E1900C0 */ lw $t9, 0xc0($s0) +.L7F049390: +/* 07DEC0 7F049390 8D8C837C */ lw $t4, %lo(global_timer)($t4) +/* 07DEC4 7F049394 032C082A */ slt $at, $t9, $t4 +/* 07DEC8 7F049398 50200032 */ beql $at, $zero, .L7F049464 +/* 07DECC 7F04939C 8FAF013C */ lw $t7, 0x13c($sp) +/* 07DED0 7F0493A0 8E0400C4 */ lw $a0, 0xc4($s0) +/* 07DED4 7F0493A4 50800008 */ beql $a0, $zero, .L7F0493C8 +/* 07DED8 7F0493A8 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07DEDC 7F0493AC 0C00237C */ jal sfxGetArg0Unk3F +/* 07DEE0 7F0493B0 00000000 */ nop +/* 07DEE4 7F0493B4 50400004 */ beql $v0, $zero, .L7F0493C8 +/* 07DEE8 7F0493B8 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07DEEC 7F0493BC 0C002408 */ jal sfxDeactivate +/* 07DEF0 7F0493C0 8E0400C4 */ lw $a0, 0xc4($s0) +/* 07DEF4 7F0493C4 8E0400C8 */ lw $a0, 0xc8($s0) +.L7F0493C8: +/* 07DEF8 7F0493C8 50800008 */ beql $a0, $zero, .L7F0493EC +/* 07DEFC 7F0493CC 8E0A00C4 */ lw $t2, 0xc4($s0) +/* 07DF00 7F0493D0 0C00237C */ jal sfxGetArg0Unk3F +/* 07DF04 7F0493D4 00000000 */ nop +/* 07DF08 7F0493D8 50400004 */ beql $v0, $zero, .L7F0493EC +/* 07DF0C 7F0493DC 8E0A00C4 */ lw $t2, 0xc4($s0) +/* 07DF10 7F0493E0 0C002408 */ jal sfxDeactivate +/* 07DF14 7F0493E4 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07DF18 7F0493E8 8E0A00C4 */ lw $t2, 0xc4($s0) +.L7F0493EC: +/* 07DF1C 7F0493EC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07DF20 7F0493F0 240500FD */ li $a1, 253 +/* 07DF24 7F0493F4 1540000A */ bnez $t2, .L7F049420 +/* 07DF28 7F0493F8 260600C4 */ addiu $a2, $s0, 0xc4 +/* 07DF2C 7F0493FC 266E0008 */ addiu $t6, $s3, 8 +/* 07DF30 7F049400 AFAE0070 */ sw $t6, 0x70($sp) +/* 07DF34 7F049404 0C002382 */ jal play_sfx_a1 +/* 07DF38 7F049408 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07DF3C 7F04940C 8E0400C4 */ lw $a0, 0xc4($s0) +/* 07DF40 7F049410 0FC14E84 */ jal sub_GAME_7F053A10 +/* 07DF44 7F049414 8FA50070 */ lw $a1, 0x70($sp) +/* 07DF48 7F049418 1000000D */ b .L7F049450 +/* 07DF4C 7F04941C 00000000 */ nop +.L7F049420: +/* 07DF50 7F049420 8E0D00C8 */ lw $t5, 0xc8($s0) +/* 07DF54 7F049424 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07DF58 7F049428 240500FD */ li $a1, 253 +/* 07DF5C 7F04942C 15A00008 */ bnez $t5, .L7F049450 +/* 07DF60 7F049430 260600C8 */ addiu $a2, $s0, 0xc8 +/* 07DF64 7F049434 26780008 */ addiu $t8, $s3, 8 +/* 07DF68 7F049438 AFB80070 */ sw $t8, 0x70($sp) +/* 07DF6C 7F04943C 0C002382 */ jal play_sfx_a1 +/* 07DF70 7F049440 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07DF74 7F049444 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07DF78 7F049448 0FC14E84 */ jal sub_GAME_7F053A10 +/* 07DF7C 7F04944C 8FA50070 */ lw $a1, 0x70($sp) +.L7F049450: +/* 07DF80 7F049450 3C088005 */ lui $t0, %hi(global_timer) +/* 07DF84 7F049454 8D08837C */ lw $t0, %lo(global_timer)($t0) +/* 07DF88 7F049458 250B0002 */ addiu $t3, $t0, 2 +/* 07DF8C 7F04945C AE0B00C0 */ sw $t3, 0xc0($s0) +/* 07DF90 7F049460 8FAF013C */ lw $t7, 0x13c($sp) +.L7F049464: +/* 07DF94 7F049464 8FA90138 */ lw $t1, 0x138($sp) +/* 07DF98 7F049468 24190001 */ li $t9, 1 +/* 07DF9C 7F04946C 55E00004 */ bnezl $t7, .L7F049480 +/* 07DFA0 7F049470 AFB9011C */ sw $t9, 0x11c($sp) +/* 07DFA4 7F049474 51200195 */ beql $t1, $zero, .L7F049ACC +/* 07DFA8 7F049478 8E980008 */ lw $t8, 8($s4) +/* 07DFAC 7F04947C AFB9011C */ sw $t9, 0x11c($sp) +.L7F049480: +/* 07DFB0 7F049480 AFA0010C */ sw $zero, 0x10c($sp) +/* 07DFB4 7F049484 8E6C0014 */ lw $t4, 0x14($s3) +/* 07DFB8 7F049488 AFAC0108 */ sw $t4, 0x108($sp) +/* 07DFBC 7F04948C 8E0A00AC */ lw $t2, 0xac($s0) +/* 07DFC0 7F049490 314E0003 */ andi $t6, $t2, 3 +/* 07DFC4 7F049494 2DCD0001 */ sltiu $t5, $t6, 1 +/* 07DFC8 7F049498 0FC225E6 */ jal get_curplayer_positiondata +/* 07DFCC 7F04949C AFAD0104 */ sw $t5, 0x104($sp) +/* 07DFD0 7F0494A0 AFA20100 */ sw $v0, 0x100($sp) +/* 07DFD4 7F0494A4 8E980008 */ lw $t8, 8($s4) +/* 07DFD8 7F0494A8 24040005 */ li $a0, 5 +/* 07DFDC 7F0494AC 8F030008 */ lw $v1, 8($t8) +/* 07DFE0 7F0494B0 8C68001C */ lw $t0, 0x1c($v1) +/* 07DFE4 7F0494B4 51000007 */ beql $t0, $zero, .L7F0494D4 +/* 07DFE8 7F0494B8 92690001 */ lbu $t1, 1($s3) +/* 07DFEC 7F0494BC 8E0B00AC */ lw $t3, 0xac($s0) +/* 07DFF0 7F0494C0 316F0007 */ andi $t7, $t3, 7 +/* 07DFF4 7F0494C4 55E00003 */ bnezl $t7, .L7F0494D4 +/* 07DFF8 7F0494C8 92690001 */ lbu $t1, 1($s3) +/* 07DFFC 7F0494CC 24040007 */ li $a0, 7 +/* 07E000 7F0494D0 92690001 */ lbu $t1, 1($s3) +.L7F0494D4: +/* 07E004 7F0494D4 31390002 */ andi $t9, $t1, 2 +/* 07E008 7F0494D8 1320002D */ beqz $t9, .L7F049590 +/* 07E00C 7F0494DC 00048880 */ sll $s1, $a0, 2 +/* 07E010 7F0494E0 00716021 */ addu $t4, $v1, $s1 +/* 07E014 7F0494E4 8D850000 */ lw $a1, ($t4) +/* 07E018 7F0494E8 02802025 */ move $a0, $s4 +/* 07E01C 7F0494EC 50A00029 */ beql $a1, $zero, .L7F049594 +/* 07E020 7F0494F0 C6640008 */ lwc1 $f4, 8($s3) +/* 07E024 7F0494F4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07E028 7F0494F8 00003025 */ move $a2, $zero +/* 07E02C 7F0494FC 8E8A0008 */ lw $t2, 8($s4) +/* 07E030 7F049500 00409025 */ move $s2, $v0 +/* 07E034 7F049504 8D4E0008 */ lw $t6, 8($t2) +/* 07E038 7F049508 01D16821 */ addu $t5, $t6, $s1 +/* 07E03C 7F04950C 8DB80000 */ lw $t8, ($t5) +/* 07E040 7F049510 8F030004 */ lw $v1, 4($t8) +/* 07E044 7F049514 C46A0000 */ lwc1 $f10, ($v1) +/* 07E048 7F049518 E7AA012C */ swc1 $f10, 0x12c($sp) +/* 07E04C 7F04951C C4660004 */ lwc1 $f6, 4($v1) +/* 07E050 7F049520 E7A60130 */ swc1 $f6, 0x130($sp) +/* 07E054 7F049524 C4680008 */ lwc1 $f8, 8($v1) +/* 07E058 7F049528 0FC1E111 */ jal sub_GAME_7F078444 +/* 07E05C 7F04952C E7A80134 */ swc1 $f8, 0x134($sp) +/* 07E060 7F049530 27B100B8 */ addiu $s1, $sp, 0xb8 +/* 07E064 7F049534 02203025 */ move $a2, $s1 +/* 07E068 7F049538 00402025 */ move $a0, $v0 +/* 07E06C 7F04953C 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 07E070 7F049540 02402825 */ move $a1, $s2 +/* 07E074 7F049544 02202025 */ move $a0, $s1 +/* 07E078 7F049548 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 07E07C 7F04954C 27A5012C */ addiu $a1, $sp, 0x12c +/* 07E080 7F049550 C7A40134 */ lwc1 $f4, 0x134($sp) +/* 07E084 7F049554 8E650008 */ lw $a1, 8($s3) +/* 07E088 7F049558 8E660010 */ lw $a2, 0x10($s3) +/* 07E08C 7F04955C 27A40108 */ addiu $a0, $sp, 0x108 +/* 07E090 7F049560 8FA7012C */ lw $a3, 0x12c($sp) +/* 07E094 7F049564 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07E098 7F049568 E7A40010 */ swc1 $f4, 0x10($sp) +/* 07E09C 7F04956C 1440000E */ bnez $v0, .L7F0495A8 +/* 07E0A0 7F049570 00000000 */ nop +/* 07E0A4 7F049574 C66A0008 */ lwc1 $f10, 8($s3) +/* 07E0A8 7F049578 E7AA012C */ swc1 $f10, 0x12c($sp) +/* 07E0AC 7F04957C C666000C */ lwc1 $f6, 0xc($s3) +/* 07E0B0 7F049580 E7A60130 */ swc1 $f6, 0x130($sp) +/* 07E0B4 7F049584 C6680010 */ lwc1 $f8, 0x10($s3) +/* 07E0B8 7F049588 10000007 */ b .L7F0495A8 +/* 07E0BC 7F04958C E7A80134 */ swc1 $f8, 0x134($sp) +.L7F049590: +/* 07E0C0 7F049590 C6640008 */ lwc1 $f4, 8($s3) +.L7F049594: +/* 07E0C4 7F049594 E7A4012C */ swc1 $f4, 0x12c($sp) +/* 07E0C8 7F049598 C66A000C */ lwc1 $f10, 0xc($s3) +/* 07E0CC 7F04959C E7AA0130 */ swc1 $f10, 0x130($sp) +/* 07E0D0 7F0495A0 C6660010 */ lwc1 $f6, 0x10($s3) +/* 07E0D4 7F0495A4 E7A60134 */ swc1 $f6, 0x134($sp) +.L7F0495A8: +/* 07E0D8 7F0495A8 0FC15FA8 */ jal cosf +/* 07E0DC 7F0495AC C60C009C */ lwc1 $f12, 0x9c($s0) +/* 07E0E0 7F0495B0 C60C0090 */ lwc1 $f12, 0x90($s0) +/* 07E0E4 7F0495B4 0FC15FAB */ jal sinf +/* 07E0E8 7F0495B8 E7A0007C */ swc1 $f0, 0x7c($sp) +/* 07E0EC 7F0495BC C7A2007C */ lwc1 $f2, 0x7c($sp) +/* 07E0F0 7F0495C0 46020202 */ mul.s $f8, $f0, $f2 +/* 07E0F4 7F0495C4 E7A80120 */ swc1 $f8, 0x120($sp) +/* 07E0F8 7F0495C8 0FC15FAB */ jal sinf +/* 07E0FC 7F0495CC C60C009C */ lwc1 $f12, 0x9c($s0) +/* 07E100 7F0495D0 E7A00124 */ swc1 $f0, 0x124($sp) +/* 07E104 7F0495D4 0FC15FA8 */ jal cosf +/* 07E108 7F0495D8 C60C009C */ lwc1 $f12, 0x9c($s0) +/* 07E10C 7F0495DC C60C0090 */ lwc1 $f12, 0x90($s0) +/* 07E110 7F0495E0 0FC15FA8 */ jal cosf +/* 07E114 7F0495E4 E7A0007C */ swc1 $f0, 0x7c($sp) +/* 07E118 7F0495E8 C7A2007C */ lwc1 $f2, 0x7c($sp) +/* 07E11C 7F0495EC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07E120 7F0495F0 44816000 */ mtc1 $at, $f12 +/* 07E124 7F0495F4 46020382 */ mul.s $f14, $f0, $f2 +/* 07E128 7F0495F8 C7A40120 */ lwc1 $f4, 0x120($sp) +/* 07E12C 7F0495FC C7A6012C */ lwc1 $f6, 0x12c($sp) +/* 07E130 7F049600 460C2282 */ mul.s $f10, $f4, $f12 +/* 07E134 7F049604 C7A40124 */ lwc1 $f4, 0x124($sp) +/* 07E138 7F049608 E7AE0128 */ swc1 $f14, 0x128($sp) +/* 07E13C 7F04960C 46065200 */ add.s $f8, $f10, $f6 +/* 07E140 7F049610 460C2282 */ mul.s $f10, $f4, $f12 +/* 07E144 7F049614 C7A60130 */ lwc1 $f6, 0x130($sp) +/* 07E148 7F049618 460C7102 */ mul.s $f4, $f14, $f12 +/* 07E14C 7F04961C E7A80110 */ swc1 $f8, 0x110($sp) +/* 07E150 7F049620 46065200 */ add.s $f8, $f10, $f6 +/* 07E154 7F049624 C7AA0134 */ lwc1 $f10, 0x134($sp) +/* 07E158 7F049628 460A2180 */ add.s $f6, $f4, $f10 +/* 07E15C 7F04962C E7A80114 */ swc1 $f8, 0x114($sp) +/* 07E160 7F049630 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 07E164 7F049634 E7A60118 */ swc1 $f6, 0x118($sp) +/* 07E168 7F049638 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 07E16C 7F04963C 44810000 */ mtc1 $at, $f0 +/* 07E170 7F049640 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07E174 7F049644 44812000 */ mtc1 $at, $f4 +/* 07E178 7F049648 C7A80118 */ lwc1 $f8, 0x118($sp) +/* 07E17C 7F04964C 24080002 */ li $t0, 2 +/* 07E180 7F049650 AFA80014 */ sw $t0, 0x14($sp) +/* 07E184 7F049654 27A40108 */ addiu $a0, $sp, 0x108 +/* 07E188 7F049658 8FA5012C */ lw $a1, 0x12c($sp) +/* 07E18C 7F04965C 8FA60134 */ lw $a2, 0x134($sp) +/* 07E190 7F049660 8FA70110 */ lw $a3, 0x110($sp) +/* 07E194 7F049664 E7B60020 */ swc1 $f22, 0x20($sp) +/* 07E198 7F049668 E7A00018 */ swc1 $f0, 0x18($sp) +/* 07E19C 7F04966C E7A0001C */ swc1 $f0, 0x1c($sp) +/* 07E1A0 7F049670 E7A80010 */ swc1 $f8, 0x10($sp) +/* 07E1A4 7F049674 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 07E1A8 7F049678 E7A40024 */ swc1 $f4, 0x24($sp) +/* 07E1AC 7F04967C 14400017 */ bnez $v0, .L7F0496DC +/* 07E1B0 7F049680 27A60110 */ addiu $a2, $sp, 0x110 +/* 07E1B4 7F049684 27A4012C */ addiu $a0, $sp, 0x12c +/* 07E1B8 7F049688 0FC09893 */ jal sub_GAME_7F02624C +/* 07E1BC 7F04968C 27A50120 */ addiu $a1, $sp, 0x120 +/* 07E1C0 7F049690 3C0141D0 */ li $at, 0x41D00000 # 26.000000 +/* 07E1C4 7F049694 44818000 */ mtc1 $at, $f16 +/* 07E1C8 7F049698 C7A60120 */ lwc1 $f6, 0x120($sp) +/* 07E1CC 7F04969C C7AA0110 */ lwc1 $f10, 0x110($sp) +/* 07E1D0 7F0496A0 C7AE0128 */ lwc1 $f14, 0x128($sp) +/* 07E1D4 7F0496A4 46068202 */ mul.s $f8, $f16, $f6 +/* 07E1D8 7F0496A8 C7A60114 */ lwc1 $f6, 0x114($sp) +/* 07E1DC 7F0496AC 8FAB0108 */ lw $t3, 0x108($sp) +/* 07E1E0 7F0496B0 AFAB010C */ sw $t3, 0x10c($sp) +/* 07E1E4 7F0496B4 46085101 */ sub.s $f4, $f10, $f8 +/* 07E1E8 7F0496B8 C7AA0124 */ lwc1 $f10, 0x124($sp) +/* 07E1EC 7F0496BC 460A8202 */ mul.s $f8, $f16, $f10 +/* 07E1F0 7F0496C0 E7A40110 */ swc1 $f4, 0x110($sp) +/* 07E1F4 7F0496C4 C7AA0118 */ lwc1 $f10, 0x118($sp) +/* 07E1F8 7F0496C8 46083101 */ sub.s $f4, $f6, $f8 +/* 07E1FC 7F0496CC 460E8182 */ mul.s $f6, $f16, $f14 +/* 07E200 7F0496D0 E7A40114 */ swc1 $f4, 0x114($sp) +/* 07E204 7F0496D4 46065201 */ sub.s $f8, $f10, $f6 +/* 07E208 7F0496D8 E7A80118 */ swc1 $f8, 0x118($sp) +.L7F0496DC: +/* 07E20C 7F0496DC 3C0F8005 */ lui $t7, %hi(global_timer) +/* 07E210 7F0496E0 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 07E214 7F0496E4 8E0900BC */ lw $t1, 0xbc($s0) +/* 07E218 7F0496E8 27B10110 */ addiu $s1, $sp, 0x110 +/* 07E21C 7F0496EC 8FA50100 */ lw $a1, 0x100($sp) +/* 07E220 7F0496F0 15E90052 */ bne $t7, $t1, .L7F04983C +/* 07E224 7F0496F4 C7AA012C */ lwc1 $f10, 0x12c($sp) +/* 07E228 7F0496F8 C4A40008 */ lwc1 $f4, 8($a1) +/* 07E22C 7F0496FC C4A6000C */ lwc1 $f6, 0xc($a1) +/* 07E230 7F049700 C7A80130 */ lwc1 $f8, 0x130($sp) +/* 07E234 7F049704 460A2001 */ sub.s $f0, $f4, $f10 +/* 07E238 7F049708 C4A40010 */ lwc1 $f4, 0x10($a1) +/* 07E23C 7F04970C E7AA0058 */ swc1 $f10, 0x58($sp) +/* 07E240 7F049710 46083081 */ sub.s $f2, $f6, $f8 +/* 07E244 7F049714 C7A60134 */ lwc1 $f6, 0x134($sp) +/* 07E248 7F049718 46062301 */ sub.s $f12, $f4, $f6 +/* 07E24C 7F04971C 46000102 */ mul.s $f4, $f0, $f0 +/* 07E250 7F049720 00000000 */ nop +/* 07E254 7F049724 46021282 */ mul.s $f10, $f2, $f2 +/* 07E258 7F049728 460A2100 */ add.s $f4, $f4, $f10 +/* 07E25C 7F04972C 460C6282 */ mul.s $f10, $f12, $f12 +/* 07E260 7F049730 460A2500 */ add.s $f20, $f4, $f10 +/* 07E264 7F049734 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 07E268 7F049738 C7A40110 */ lwc1 $f4, 0x110($sp) +/* 07E26C 7F04973C 460A2001 */ sub.s $f0, $f4, $f10 +/* 07E270 7F049740 C7A40114 */ lwc1 $f4, 0x114($sp) +/* 07E274 7F049744 C7AA0118 */ lwc1 $f10, 0x118($sp) +/* 07E278 7F049748 46082081 */ sub.s $f2, $f4, $f8 +/* 07E27C 7F04974C 46000102 */ mul.s $f4, $f0, $f0 +/* 07E280 7F049750 46065301 */ sub.s $f12, $f10, $f6 +/* 07E284 7F049754 46021202 */ mul.s $f8, $f2, $f2 +/* 07E288 7F049758 46082280 */ add.s $f10, $f4, $f8 +/* 07E28C 7F04975C 460C6182 */ mul.s $f6, $f12, $f12 +/* 07E290 7F049760 46065100 */ add.s $f4, $f10, $f6 +/* 07E294 7F049764 4604A03E */ c.le.s $f20, $f4 +/* 07E298 7F049768 00000000 */ nop +/* 07E29C 7F04976C 45000033 */ bc1f .L7F04983C +/* 07E2A0 7F049770 00000000 */ nop +/* 07E2A4 7F049774 0FC227A9 */ jal check_if_bond_is_invincible +/* 07E2A8 7F049778 00000000 */ nop +/* 07E2AC 7F04977C 54400030 */ bnezl $v0, .L7F049840 +/* 07E2B0 7F049780 8FB9011C */ lw $t9, 0x11c($sp) +/* 07E2B4 7F049784 0C007DF8 */ jal sqrtf +/* 07E2B8 7F049788 4600A306 */ mov.s $f12, $f20 +/* 07E2BC 7F04978C 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 07E2C0 7F049790 44816000 */ mtc1 $at, $f12 +/* 07E2C4 7F049794 3C018005 */ lui $at, %hi(D_80052B74) +/* 07E2C8 7F049798 C4282B74 */ lwc1 $f8, %lo(D_80052B74)($at) +/* 07E2CC 7F04979C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07E2D0 7F0497A0 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07E2D4 7F0497A4 3C018003 */ lui $at, %hi(D_80030B1C) +/* 07E2D8 7F0497A8 4600603C */ c.lt.s $f12, $f0 +/* 07E2DC 7F0497AC 460A4182 */ mul.s $f6, $f8, $f10 +/* 07E2E0 7F0497B0 C4240B1C */ lwc1 $f4, %lo(D_80030B1C)($at) +/* 07E2E4 7F0497B4 46043082 */ mul.s $f2, $f6, $f4 +/* 07E2E8 7F0497B8 45020005 */ bc1fl .L7F0497D0 +/* 07E2EC 7F0497BC C60A00D4 */ lwc1 $f10, 0xd4($s0) +/* 07E2F0 7F0497C0 46006203 */ div.s $f8, $f12, $f0 +/* 07E2F4 7F0497C4 46081082 */ mul.s $f2, $f2, $f8 +/* 07E2F8 7F0497C8 00000000 */ nop +/* 07E2FC 7F0497CC C60A00D4 */ lwc1 $f10, 0xd4($s0) +.L7F0497D0: +/* 07E300 7F0497D0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07E304 7F0497D4 44814000 */ mtc1 $at, $f8 +/* 07E308 7F0497D8 46025180 */ add.s $f6, $f10, $f2 +/* 07E30C 7F0497DC E60600D4 */ swc1 $f6, 0xd4($s0) +/* 07E310 7F0497E0 C60400D4 */ lwc1 $f4, 0xd4($s0) +/* 07E314 7F0497E4 4604403E */ c.le.s $f8, $f4 +/* 07E318 7F0497E8 00000000 */ nop +/* 07E31C 7F0497EC 45020014 */ bc1fl .L7F049840 +/* 07E320 7F0497F0 8FB9011C */ lw $t9, 0x11c($sp) +/* 07E324 7F0497F4 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 07E328 7F0497F8 2404000E */ li $a0, 14 +/* 07E32C 7F0497FC 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 07E330 7F049800 44815000 */ mtc1 $at, $f10 +/* 07E334 7F049804 3C018003 */ lui $at, %hi(D_80030B20) +/* 07E338 7F049808 C4240B20 */ lwc1 $f4, %lo(D_80030B20)($at) +/* 07E33C 7F04980C 460A0182 */ mul.s $f6, $f0, $f10 +/* 07E340 7F049810 C60E0090 */ lwc1 $f14, 0x90($s0) +/* 07E344 7F049814 2406FFFF */ li $a2, -1 +/* 07E348 7F049818 24070001 */ li $a3, 1 +/* 07E34C 7F04981C 46043302 */ mul.s $f12, $f6, $f4 +/* 07E350 7F049820 0FC22793 */ jal sub_GAME_7F089E4C +/* 07E354 7F049824 00000000 */ nop +/* 07E358 7F049828 0FC227A9 */ jal check_if_bond_is_invincible +/* 07E35C 7F04982C E61600D4 */ swc1 $f22, 0xd4($s0) +/* 07E360 7F049830 50400003 */ beql $v0, $zero, .L7F049840 +/* 07E364 7F049834 8FB9011C */ lw $t9, 0x11c($sp) +/* 07E368 7F049838 AFA0011C */ sw $zero, 0x11c($sp) +.L7F04983C: +/* 07E36C 7F04983C 8FB9011C */ lw $t9, 0x11c($sp) +.L7F049840: +/* 07E370 7F049840 3C0141D0 */ li $at, 0x41D00000 # 26.000000 +/* 07E374 7F049844 44818000 */ mtc1 $at, $f16 +/* 07E378 7F049848 1320000F */ beqz $t9, .L7F049888 +/* 07E37C 7F04984C 8FA50100 */ lw $a1, 0x100($sp) +/* 07E380 7F049850 8FAC010C */ lw $t4, 0x10c($sp) +/* 07E384 7F049854 02202025 */ move $a0, $s1 +/* 07E388 7F049858 24050001 */ li $a1, 1 +/* 07E38C 7F04985C 51800005 */ beql $t4, $zero, .L7F049874 +/* 07E390 7F049860 2404000E */ li $a0, 14 +/* 07E394 7F049864 44068000 */ mfc1 $a2, $f16 +/* 07E398 7F049868 0FC28F87 */ jal sub_GAME_7F0A3E1C +/* 07E39C 7F04986C 91870003 */ lbu $a3, 3($t4) +/* 07E3A0 7F049870 2404000E */ li $a0, 14 +.L7F049874: +/* 07E3A4 7F049874 02202825 */ move $a1, $s1 +/* 07E3A8 7F049878 0FC191DD */ jal recall_joy2_hits_edit_flag +/* 07E3AC 7F04987C 2406FFFF */ li $a2, -1 +/* 07E3B0 7F049880 1000000B */ b .L7F0498B0 +/* 07E3B4 7F049884 8FAA0104 */ lw $t2, 0x104($sp) +.L7F049888: +/* 07E3B8 7F049888 C4A80008 */ lwc1 $f8, 8($a1) +/* 07E3BC 7F04988C 2404000E */ li $a0, 14 +/* 07E3C0 7F049890 2406FFFF */ li $a2, -1 +/* 07E3C4 7F049894 E7A80110 */ swc1 $f8, 0x110($sp) +/* 07E3C8 7F049898 C4AA000C */ lwc1 $f10, 0xc($a1) +/* 07E3CC 7F04989C E7AA0114 */ swc1 $f10, 0x114($sp) +/* 07E3D0 7F0498A0 C4A60010 */ lwc1 $f6, 0x10($a1) +/* 07E3D4 7F0498A4 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 07E3D8 7F0498A8 E7A60118 */ swc1 $f6, 0x118($sp) +/* 07E3DC 7F0498AC 8FAA0104 */ lw $t2, 0x104($sp) +.L7F0498B0: +/* 07E3E0 7F0498B0 C7A4012C */ lwc1 $f4, 0x12c($sp) +/* 07E3E4 7F0498B4 51400085 */ beql $t2, $zero, .L7F049ACC +/* 07E3E8 7F0498B8 8E980008 */ lw $t8, 8($s4) +/* 07E3EC 7F0498BC 8E0300CC */ lw $v1, 0xcc($s0) +/* 07E3F0 7F0498C0 E4640004 */ swc1 $f4, 4($v1) +/* 07E3F4 7F0498C4 C7A80130 */ lwc1 $f8, 0x130($sp) +/* 07E3F8 7F0498C8 C4640004 */ lwc1 $f4, 4($v1) +/* 07E3FC 7F0498CC E4680008 */ swc1 $f8, 8($v1) +/* 07E400 7F0498D0 C7AA0134 */ lwc1 $f10, 0x134($sp) +/* 07E404 7F0498D4 E46A000C */ swc1 $f10, 0xc($v1) +/* 07E408 7F0498D8 C7A60110 */ lwc1 $f6, 0x110($sp) +/* 07E40C 7F0498DC 46043201 */ sub.s $f8, $f6, $f4 +/* 07E410 7F0498E0 C4660008 */ lwc1 $f6, 8($v1) +/* 07E414 7F0498E4 E4680010 */ swc1 $f8, 0x10($v1) +/* 07E418 7F0498E8 C7AA0114 */ lwc1 $f10, 0x114($sp) +/* 07E41C 7F0498EC C4620010 */ lwc1 $f2, 0x10($v1) +/* 07E420 7F0498F0 46065101 */ sub.s $f4, $f10, $f6 +/* 07E424 7F0498F4 C46A000C */ lwc1 $f10, 0xc($v1) +/* 07E428 7F0498F8 E4640014 */ swc1 $f4, 0x14($v1) +/* 07E42C 7F0498FC C7A80118 */ lwc1 $f8, 0x118($sp) +/* 07E430 7F049900 46021102 */ mul.s $f4, $f2, $f2 +/* 07E434 7F049904 C46E0014 */ lwc1 $f14, 0x14($v1) +/* 07E438 7F049908 460A4181 */ sub.s $f6, $f8, $f10 +/* 07E43C 7F04990C 460E7202 */ mul.s $f8, $f14, $f14 +/* 07E440 7F049910 E4660018 */ swc1 $f6, 0x18($v1) +/* 07E444 7F049914 C4600018 */ lwc1 $f0, 0x18($v1) +/* 07E448 7F049918 AFA30090 */ sw $v1, 0x90($sp) +/* 07E44C 7F04991C 46000182 */ mul.s $f6, $f0, $f0 +/* 07E450 7F049920 46082280 */ add.s $f10, $f4, $f8 +/* 07E454 7F049924 0C007DF8 */ jal sqrtf +/* 07E458 7F049928 460A3300 */ add.s $f12, $f6, $f10 +/* 07E45C 7F04992C 3C018005 */ lui $at, %hi(D_80052B78) +/* 07E460 7F049930 C42E2B78 */ lwc1 $f14, %lo(D_80052B78)($at) +/* 07E464 7F049934 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07E468 7F049938 44812000 */ mtc1 $at, $f4 +/* 07E46C 7F04993C 8FA30090 */ lw $v1, 0x90($sp) +/* 07E470 7F049940 4600703C */ c.lt.s $f14, $f0 +/* 07E474 7F049944 46000306 */ mov.s $f12, $f0 +/* 07E478 7F049948 46002083 */ div.s $f2, $f4, $f0 +/* 07E47C 7F04994C C4680010 */ lwc1 $f8, 0x10($v1) +/* 07E480 7F049950 C46A0014 */ lwc1 $f10, 0x14($v1) +/* 07E484 7F049954 3C0143FA */ li $at, 0x43FA0000 # 500.000000 +/* 07E488 7F049958 44810000 */ mtc1 $at, $f0 +/* 07E48C 7F04995C 46024182 */ mul.s $f6, $f8, $f2 +/* 07E490 7F049960 C4680018 */ lwc1 $f8, 0x18($v1) +/* 07E494 7F049964 46025102 */ mul.s $f4, $f10, $f2 +/* 07E498 7F049968 E4660010 */ swc1 $f6, 0x10($v1) +/* 07E49C 7F04996C 46024182 */ mul.s $f6, $f8, $f2 +/* 07E4A0 7F049970 E4640014 */ swc1 $f4, 0x14($v1) +/* 07E4A4 7F049974 45000002 */ bc1f .L7F049980 +/* 07E4A8 7F049978 E4660018 */ swc1 $f6, 0x18($v1) +/* 07E4AC 7F04997C 46007306 */ mov.s $f12, $f14 +.L7F049980: +/* 07E4B0 7F049980 4600603C */ c.lt.s $f12, $f0 +/* 07E4B4 7F049984 240E000E */ li $t6, 14 +/* 07E4B8 7F049988 A0600000 */ sb $zero, ($v1) +/* 07E4BC 7F04998C A06E0001 */ sb $t6, 1($v1) +/* 07E4C0 7F049990 45000002 */ bc1f .L7F04999C +/* 07E4C4 7F049994 E46C001C */ swc1 $f12, 0x1c($v1) +/* 07E4C8 7F049998 46000306 */ mov.s $f12, $f0 +.L7F04999C: +/* 07E4CC 7F04999C 806D0001 */ lb $t5, 1($v1) +/* 07E4D0 7F0499A0 24010016 */ li $at, 22 +/* 07E4D4 7F0499A4 15A10026 */ bne $t5, $at, .L7F049A40 +/* 07E4D8 7F0499A8 3C018005 */ lui $at, %hi(D_80052B7C) +/* 07E4DC 7F0499AC C4222B7C */ lwc1 $f2, %lo(D_80052B7C)($at) +/* 07E4E0 7F0499B0 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 07E4E4 7F0499B4 44815000 */ mtc1 $at, $f10 +/* 07E4E8 7F0499B8 3C018005 */ lui $at, %hi(D_80052B80) +/* 07E4EC 7F0499BC 460C5102 */ mul.s $f4, $f10, $f12 +/* 07E4F0 7F0499C0 E4640020 */ swc1 $f4, 0x20($v1) +/* 07E4F4 7F0499C4 C4282B80 */ lwc1 $f8, %lo(D_80052B80)($at) +/* 07E4F8 7F0499C8 460C4002 */ mul.s $f0, $f8, $f12 +/* 07E4FC 7F0499CC 4600103C */ c.lt.s $f2, $f0 +/* 07E500 7F0499D0 E4600024 */ swc1 $f0, 0x24($v1) +/* 07E504 7F0499D4 45020003 */ bc1fl .L7F0499E4 +/* 07E508 7F0499D8 AFA30090 */ sw $v1, 0x90($sp) +/* 07E50C 7F0499DC E4620024 */ swc1 $f2, 0x24($v1) +/* 07E510 7F0499E0 AFA30090 */ sw $v1, 0x90($sp) +.L7F0499E4: +/* 07E514 7F0499E4 0C002914 */ jal get_random_value +/* 07E518 7F0499E8 E7AC0094 */ swc1 $f12, 0x94($sp) +/* 07E51C 7F0499EC 44823000 */ mtc1 $v0, $f6 +/* 07E520 7F0499F0 8FA30090 */ lw $v1, 0x90($sp) +/* 07E524 7F0499F4 C7AC0094 */ lwc1 $f12, 0x94($sp) +/* 07E528 7F0499F8 04410005 */ bgez $v0, .L7F049A10 +/* 07E52C 7F0499FC 468032A0 */ cvt.s.w $f10, $f6 +/* 07E530 7F049A00 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07E534 7F049A04 44812000 */ mtc1 $at, $f4 +/* 07E538 7F049A08 00000000 */ nop +/* 07E53C 7F049A0C 46045280 */ add.s $f10, $f10, $f4 +.L7F049A10: +/* 07E540 7F049A10 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07E544 7F049A14 44814000 */ mtc1 $at, $f8 +/* 07E548 7F049A18 3C018005 */ lui $at, %hi(D_80052B84) +/* 07E54C 7F049A1C C4242B84 */ lwc1 $f4, %lo(D_80052B84)($at) +/* 07E550 7F049A20 46085182 */ mul.s $f6, $f10, $f8 +/* 07E554 7F049A24 3C018005 */ lui $at, %hi(D_80052B88) +/* 07E558 7F049A28 C4282B88 */ lwc1 $f8, %lo(D_80052B88)($at) +/* 07E55C 7F049A2C 46043282 */ mul.s $f10, $f6, $f4 +/* 07E560 7F049A30 460A4181 */ sub.s $f6, $f8, $f10 +/* 07E564 7F049A34 460C3102 */ mul.s $f4, $f6, $f12 +/* 07E568 7F049A38 10000023 */ b .L7F049AC8 +/* 07E56C 7F049A3C E4640028 */ swc1 $f4, 0x28($v1) +.L7F049A40: +/* 07E570 7F049A40 3C018005 */ lui $at, %hi(D_80052B8C) +/* 07E574 7F049A44 C4282B8C */ lwc1 $f8, %lo(D_80052B8C)($at) +/* 07E578 7F049A48 3C018005 */ lui $at, %hi(D_80052B90) +/* 07E57C 7F049A4C 460C4002 */ mul.s $f0, $f8, $f12 +/* 07E580 7F049A50 E4600020 */ swc1 $f0, 0x20($v1) +/* 07E584 7F049A54 E4600024 */ swc1 $f0, 0x24($v1) +/* 07E588 7F049A58 C42A2B90 */ lwc1 $f10, %lo(D_80052B90)($at) +/* 07E58C 7F049A5C 3C018005 */ lui $at, %hi(D_80052B94) +/* 07E590 7F049A60 4600503C */ c.lt.s $f10, $f0 +/* 07E594 7F049A64 00000000 */ nop +/* 07E598 7F049A68 45000003 */ bc1f .L7F049A78 +/* 07E59C 7F049A6C 00000000 */ nop +/* 07E5A0 7F049A70 C4262B94 */ lwc1 $f6, %lo(D_80052B94)($at) +/* 07E5A4 7F049A74 E4660024 */ swc1 $f6, 0x24($v1) +.L7F049A78: +/* 07E5A8 7F049A78 0C002914 */ jal get_random_value +/* 07E5AC 7F049A7C AFA30090 */ sw $v1, 0x90($sp) +/* 07E5B0 7F049A80 44822000 */ mtc1 $v0, $f4 +/* 07E5B4 7F049A84 8FA30090 */ lw $v1, 0x90($sp) +/* 07E5B8 7F049A88 04410005 */ bgez $v0, .L7F049AA0 +/* 07E5BC 7F049A8C 46802220 */ cvt.s.w $f8, $f4 +/* 07E5C0 7F049A90 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07E5C4 7F049A94 44815000 */ mtc1 $at, $f10 +/* 07E5C8 7F049A98 00000000 */ nop +/* 07E5CC 7F049A9C 460A4200 */ add.s $f8, $f8, $f10 +.L7F049AA0: +/* 07E5D0 7F049AA0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07E5D4 7F049AA4 44813000 */ mtc1 $at, $f6 +/* 07E5D8 7F049AA8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07E5DC 7F049AAC 44815000 */ mtc1 $at, $f10 +/* 07E5E0 7F049AB0 46064002 */ mul.s $f0, $f8, $f6 +/* 07E5E4 7F049AB4 C4660020 */ lwc1 $f6, 0x20($v1) +/* 07E5E8 7F049AB8 46000100 */ add.s $f4, $f0, $f0 +/* 07E5EC 7F049ABC 460A2201 */ sub.s $f8, $f4, $f10 +/* 07E5F0 7F049AC0 46064102 */ mul.s $f4, $f8, $f6 +/* 07E5F4 7F049AC4 E4640028 */ swc1 $f4, 0x28($v1) +.L7F049AC8: +/* 07E5F8 7F049AC8 8E980008 */ lw $t8, 8($s4) +.L7F049ACC: +/* 07E5FC 7F049ACC 8F030008 */ lw $v1, 8($t8) +/* 07E600 7F049AD0 8C650014 */ lw $a1, 0x14($v1) +/* 07E604 7F049AD4 50A00008 */ beql $a1, $zero, .L7F049AF8 +/* 07E608 7F049AD8 8C65001C */ lw $a1, 0x1c($v1) +/* 07E60C 7F049ADC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07E610 7F049AE0 02802025 */ move $a0, $s4 +/* 07E614 7F049AE4 8FA8013C */ lw $t0, 0x13c($sp) +/* 07E618 7F049AE8 A4480000 */ sh $t0, ($v0) +/* 07E61C 7F049AEC 8E8B0008 */ lw $t3, 8($s4) +/* 07E620 7F049AF0 8D630008 */ lw $v1, 8($t3) +/* 07E624 7F049AF4 8C65001C */ lw $a1, 0x1c($v1) +.L7F049AF8: +/* 07E628 7F049AF8 10A00005 */ beqz $a1, .L7F049B10 +/* 07E62C 7F049AFC 00000000 */ nop +/* 07E630 7F049B00 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07E634 7F049B04 02802025 */ move $a0, $s4 +/* 07E638 7F049B08 8FAF0138 */ lw $t7, 0x138($sp) +/* 07E63C 7F049B0C A44F0000 */ sh $t7, ($v0) +.L7F049B10: +/* 07E640 7F049B10 0FC11080 */ jal sub_GAME_7F044200 +/* 07E644 7F049B14 02602025 */ move $a0, $s3 +/* 07E648 7F049B18 8FA90680 */ lw $t1, 0x680($sp) +.L7F049B1C: +/* 07E64C 7F049B1C 24010005 */ li $at, 5 +/* 07E650 7F049B20 55210003 */ bnel $t1, $at, .L7F049B30 +/* 07E654 7F049B24 8FA20680 */ lw $v0, 0x680($sp) +/* 07E658 7F049B28 AE600014 */ sw $zero, 0x14($s3) +/* 07E65C 7F049B2C 8FA20680 */ lw $v0, 0x680($sp) +.L7F049B30: +/* 07E660 7F049B30 8FBF0054 */ lw $ra, 0x54($sp) +/* 07E664 7F049B34 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 07E668 7F049B38 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 07E66C 7F049B3C 8FB00040 */ lw $s0, 0x40($sp) +/* 07E670 7F049B40 8FB10044 */ lw $s1, 0x44($sp) +/* 07E674 7F049B44 8FB20048 */ lw $s2, 0x48($sp) +/* 07E678 7F049B48 8FB3004C */ lw $s3, 0x4c($sp) +/* 07E67C 7F049B4C 8FB40050 */ lw $s4, 0x50($sp) +/* 07E680 7F049B50 03E00008 */ jr $ra +/* 07E684 7F049B54 27BD06A8 */ addiu $sp, $sp, 0x6a8 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel rocket_initial_gravity_modifier +.word 0x3e8e38e4 /*0.27777779*/ +glabel D_80052A9C +.word 0x3c360b61 /*0.011111111*/ +glabel D_80052AA0 +.word 0x3d8f5c29 /*0.07*/ +glabel prop_projectile_gravity_modifier +.word 0x3e8e38e4 /*0.27777779*/ +glabel D_80052AA8 +.word 0x400e38e4 /*2.2222223*/ +glabel D_80052AAC +.word 0x46d9038c /*27777.773*/ +glabel D_80052AB0 +.word 0x3f8ccccd /*1.1*/ +glabel D_80052AB4 +.word 0x3f666666 /*0.89999998*/ +glabel D_80052AB8 +.word 0x3f666666 /*0.89999998*/ +glabel D_80052ABC +.word 0x3dcccccd /*0.1*/ +glabel D_80052AC0 +.word 0xbdcccccd /*-0.1*/ +glabel D_80052AC4 +.word 0xbdcccccd /*-0.1*/ +glabel D_80052AC8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052ACC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AD0 +.word 0x40490fdb /*3.1415927*/ +glabel D_80052AD4 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80052AD8 +.word 0xbf490fdb /*-0.78539819*/ +glabel D_80052ADC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AE0 +.word 0x3a2b92a6 /*0.00065449846*/ +glabel D_80052AE4 +.word 0x3a2b92a6 /*0.00065449846*/ +glabel D_80052AE8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AEC +.word 0x37433637 /*0.000011635529*/ +glabel D_80052AF0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AF4 +.word 0x3a3702d4 /*0.00069813174*/ +glabel D_80052AF8 +.word 0x36c33637 /*0.0000058177643*/ +glabel D_80052AFC +.word 0x39b702d4 /*0.00034906587*/ +glabel D_80052B00 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B04 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B08 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B0C +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B10 +.word 0x3f9c61ab /*1.2217306*/ +glabel D_80052B14 +.word 0xbf9c61ab /*-1.2217306*/ +glabel D_80052B18 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80052B1C +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B20 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B24 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80052B28 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80052B2C +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B30 +.word 0x3a64c389 /*0.00087266468*/ +glabel D_80052B34 +.word 0x3a64c389 /*0.00087266468*/ +glabel D_80052B38 +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B3C +.word 0x3f1930a7 /*0.59839863*/ +glabel D_80052B40 +.word 0x3c236719 /*0.0099733109*/ +glabel D_80052B44 +.word 0x3f7d70a4 /*0.99000001*/ +glabel D_80052B48 +.word 0x38d1b717 /*0.000099999997*/ +glabel D_80052B4C +.word 0x3964c389 /*0.00021816617*/ +glabel D_80052B50 +.word 0x3bd67750 /*0.0065449849*/ +glabel D_80052B54 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B58 +.word 0x3964c389 /*0.00021816617*/ +glabel D_80052B5C +.word 0xb964c389 /*-0.00021816617*/ +glabel D_80052B60 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B64 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B68 +.word 0x3e99999a /*0.30000001*/ +glabel D_80052B6C +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80052B70 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80052B74 +.word 0x3e23d70a /*0.16*/ +glabel D_80052B78 +.word 0x461c4000 /*10000.0*/ +glabel D_80052B7C +.word 0x453b8000 /*3000.0*/ +glabel D_80052B80 +.word 0x3f19999a /*0.60000002*/ +glabel D_80052B84 +.word 0x3e99999a /*0.30000001*/ +glabel D_80052B88 +.word 0xbdcccccd /*-0.1*/ +glabel D_80052B8C +.word 0x3e4ccccd /*0.2*/ +glabel D_80052B90 +.word 0x453b8000 /*3000.0*/ +glabel D_80052B94 +.word 0x453b8000 /*3000.0*/ +.text +glabel object_interaction +/* 07A218 7F0456A8 27BDF950 */ addiu $sp, $sp, -0x6b0 +/* 07A21C 7F0456AC AFBF0054 */ sw $ra, 0x54($sp) +/* 07A220 7F0456B0 AFB40050 */ sw $s4, 0x50($sp) +/* 07A224 7F0456B4 AFB3004C */ sw $s3, 0x4c($sp) +/* 07A228 7F0456B8 AFB20048 */ sw $s2, 0x48($sp) +/* 07A22C 7F0456BC AFB10044 */ sw $s1, 0x44($sp) +/* 07A230 7F0456C0 AFB00040 */ sw $s0, 0x40($sp) +/* 07A234 7F0456C4 F7B60038 */ sdc1 $f22, 0x38($sp) +/* 07A238 7F0456C8 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 07A23C 7F0456CC 8C910004 */ lw $s1, 4($a0) +/* 07A240 7F0456D0 4480B000 */ mtc1 $zero, $f22 +/* 07A244 7F0456D4 00809825 */ move $s3, $a0 +/* 07A248 7F0456D8 8E340014 */ lw $s4, 0x14($s1) +/* 07A24C 7F0456DC AFA00698 */ sw $zero, 0x698($sp) +/* 07A250 7F0456E0 AFA00688 */ sw $zero, 0x688($sp) +/* 07A254 7F0456E4 0FC26C01 */ jal get_num_players +/* 07A258 7F0456E8 E7B60684 */ swc1 $f22, 0x684($sp) +/* 07A25C 7F0456EC 240F0001 */ li $t7, 1 +/* 07A260 7F0456F0 AFA2067C */ sw $v0, 0x67c($sp) +/* 07A264 7F0456F4 AFAF0678 */ sw $t7, 0x678($sp) +/* 07A268 7F0456F8 8E230064 */ lw $v1, 0x64($s1) +/* 07A26C 7F0456FC 30790004 */ andi $t9, $v1, 4 +/* 07A270 7F045700 13200009 */ beqz $t9, .Ljp7F045728 +/* 07A274 7F045704 30680008 */ andi $t0, $v1, 8 +/* 07A278 7F045708 92260002 */ lbu $a2, 2($s1) +/* 07A27C 7F04570C 02202025 */ move $a0, $s1 +/* 07A280 7F045710 00002825 */ move $a1, $zero +/* 07A284 7F045714 30D80004 */ andi $t8, $a2, 4 +/* 07A288 7F045718 0FC10426 */ jal sub_GAME_7F040D98 +/* 07A28C 7F04571C 03003025 */ move $a2, $t8 +/* 07A290 7F045720 10001204 */ b .Ljp7F049F34 +/* 07A294 7F045724 24020001 */ li $v0, 1 +.Ljp7F045728: +/* 07A298 7F045728 11000005 */ beqz $t0, .Ljp7F045740 +/* 07A29C 7F04572C 306B0080 */ andi $t3, $v1, 0x80 +/* 07A2A0 7F045730 2401FFF7 */ li $at, -9 +/* 07A2A4 7F045734 00614824 */ and $t1, $v1, $at +/* 07A2A8 7F045738 1000000B */ b .Ljp7F045768 +/* 07A2AC 7F04573C AE290064 */ sw $t1, 0x64($s1) +.Ljp7F045740: +/* 07A2B0 7F045740 5160000A */ beql $t3, $zero, .Ljp7F04576C +/* 07A2B4 7F045744 24010001 */ li $at, 1 +/* 07A2B8 7F045748 926C0001 */ lbu $t4, 1($s3) +/* 07A2BC 7F04574C 24020003 */ li $v0, 3 +/* 07A2C0 7F045750 318EFFFD */ andi $t6, $t4, 0xfffd +/* 07A2C4 7F045754 A26E0001 */ sb $t6, 1($s3) +/* 07A2C8 7F045758 8E2A0064 */ lw $t2, 0x64($s1) +/* 07A2CC 7F04575C 354D0008 */ ori $t5, $t2, 8 +/* 07A2D0 7F045760 100011F4 */ b .Ljp7F049F34 +/* 07A2D4 7F045764 AE2D0064 */ sw $t5, 0x64($s1) +.Ljp7F045768: +/* 07A2D8 7F045768 24010001 */ li $at, 1 +.Ljp7F04576C: +/* 07A2DC 7F04576C 14410003 */ bne $v0, $at, .Ljp7F04577C +/* 07A2E0 7F045770 240F0001 */ li $t7, 1 +/* 07A2E4 7F045774 10000019 */ b .Ljp7F0457DC +/* 07A2E8 7F045778 AFAF0680 */ sw $t7, 0x680($sp) +.Ljp7F04577C: +/* 07A2EC 7F04577C 0FC26F3C */ jal get_cur_playernum +/* 07A2F0 7F045780 00000000 */ nop +/* 07A2F4 7F045784 0FC2701E */ jal sub_GAME_7F09B4D8 +/* 07A2F8 7F045788 00402025 */ move $a0, $v0 +/* 07A2FC 7F04578C 2C590001 */ sltiu $t9, $v0, 1 +/* 07A300 7F045790 AFB90680 */ sw $t9, 0x680($sp) +/* 07A304 7F045794 8E380064 */ lw $t8, 0x64($s1) +/* 07A308 7F045798 33080080 */ andi $t0, $t8, 0x80 +/* 07A30C 7F04579C 51000010 */ beql $t0, $zero, .Ljp7F0457E0 +/* 07A310 7F0457A0 8FAA0680 */ lw $t2, 0x680($sp) +/* 07A314 7F0457A4 8E30006C */ lw $s0, 0x6c($s1) +/* 07A318 7F0457A8 8E040088 */ lw $a0, 0x88($s0) +/* 07A31C 7F0457AC 5080000C */ beql $a0, $zero, .Ljp7F0457E0 +/* 07A320 7F0457B0 8FAA0680 */ lw $t2, 0x680($sp) +/* 07A324 7F0457B4 0FC26F3F */ jal sub_GAME_7F09B15C +/* 07A328 7F0457B8 00000000 */ nop +/* 07A32C 7F0457BC 04400007 */ bltz $v0, .Ljp7F0457DC +/* 07A330 7F0457C0 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 07A334 7F0457C4 8D29A120 */ lw $t1, %lo(pPlayer)($t1) +/* 07A338 7F0457C8 8E0C0088 */ lw $t4, 0x88($s0) +/* 07A33C 7F0457CC 8D2B00A8 */ lw $t3, 0xa8($t1) +/* 07A340 7F0457D0 016C7026 */ xor $t6, $t3, $t4 +/* 07A344 7F0457D4 2DCE0001 */ sltiu $t6, $t6, 1 +/* 07A348 7F0457D8 AFAE0680 */ sw $t6, 0x680($sp) +.Ljp7F0457DC: +/* 07A34C 7F0457DC 8FAA0680 */ lw $t2, 0x680($sp) +.Ljp7F0457E0: +/* 07A350 7F0457E0 51400B94 */ beql $t2, $zero, .Ljp7F048634 +/* 07A354 7F0457E4 92220003 */ lbu $v0, 3($s1) +/* 07A358 7F0457E8 8E2D0064 */ lw $t5, 0x64($s1) +/* 07A35C 7F0457EC 31AF0080 */ andi $t7, $t5, 0x80 +/* 07A360 7F0457F0 51E0048B */ beql $t7, $zero, .Ljp7F046A20 +/* 07A364 7F0457F4 8FAB0698 */ lw $t3, 0x698($sp) +/* 07A368 7F0457F8 8E30006C */ lw $s0, 0x6c($s1) +/* 07A36C 7F0457FC 3C188005 */ lui $t8, %hi(clock_timer) # $t8, 0x8005 +/* 07A370 7F045800 8F1883A4 */ lw $t8, %lo(clock_timer)($t8) +/* 07A374 7F045804 8E1900E0 */ lw $t9, 0xe0($s0) +/* 07A378 7F045808 03384021 */ addu $t0, $t9, $t8 +/* 07A37C 7F04580C 29010961 */ slti $at, $t0, 0x961 +/* 07A380 7F045810 14200004 */ bnez $at, .Ljp7F045824 +/* 07A384 7F045814 AE0800E0 */ sw $t0, 0xe0($s0) +/* 07A388 7F045818 8E2B0064 */ lw $t3, 0x64($s1) +/* 07A38C 7F04581C 356C0004 */ ori $t4, $t3, 4 +/* 07A390 7F045820 AE2C0064 */ sw $t4, 0x64($s1) +.Ljp7F045824: +/* 07A394 7F045824 8E0E0000 */ lw $t6, ($s0) +/* 07A398 7F045828 31CA0100 */ andi $t2, $t6, 0x100 +/* 07A39C 7F04582C 5140002F */ beql $t2, $zero, .Ljp7F0458EC +/* 07A3A0 7F045830 C6260058 */ lwc1 $f6, 0x58($s1) +/* 07A3A4 7F045834 922D0003 */ lbu $t5, 3($s1) +/* 07A3A8 7F045838 24010008 */ li $at, 8 +/* 07A3AC 7F04583C 24120001 */ li $s2, 1 +/* 07A3B0 7F045840 55A10008 */ bnel $t5, $at, .Ljp7F045864 +/* 07A3B4 7F045844 8E040088 */ lw $a0, 0x88($s0) +/* 07A3B8 7F045848 AFB10650 */ sw $s1, 0x650($sp) +/* 07A3BC 7F04584C 822F0080 */ lb $t7, 0x80($s1) +/* 07A3C0 7F045850 24010056 */ li $at, 86 +/* 07A3C4 7F045854 55E10003 */ bnel $t7, $at, .Ljp7F045864 +/* 07A3C8 7F045858 8E040088 */ lw $a0, 0x88($s0) +/* 07A3CC 7F04585C 00009025 */ move $s2, $zero +/* 07A3D0 7F045860 8E040088 */ lw $a0, 0x88($s0) +.Ljp7F045864: +/* 07A3D4 7F045864 50800004 */ beql $a0, $zero, .Ljp7F045878 +/* 07A3D8 7F045868 02202025 */ move $a0, $s1 +/* 07A3DC 7F04586C 0FC0F4D6 */ jal sub_GAME_7F03D058 +/* 07A3E0 7F045870 00002825 */ move $a1, $zero +/* 07A3E4 7F045874 02202025 */ move $a0, $s1 +.Ljp7F045878: +/* 07A3E8 7F045878 260500D4 */ addiu $a1, $s0, 0xd4 +/* 07A3EC 7F04587C 27A60654 */ addiu $a2, $sp, 0x654 +/* 07A3F0 7F045880 27A70660 */ addiu $a3, $sp, 0x660 +/* 07A3F4 7F045884 AFA00010 */ sw $zero, 0x10($sp) +/* 07A3F8 7F045888 0FC10C6D */ jal sub_GAME_7F042EB4 +/* 07A3FC 7F04588C AFB20014 */ sw $s2, 0x14($sp) +/* 07A400 7F045890 AFA2066C */ sw $v0, 0x66c($sp) +/* 07A404 7F045894 8E040088 */ lw $a0, 0x88($s0) +/* 07A408 7F045898 50800004 */ beql $a0, $zero, .Ljp7F0458AC +/* 07A40C 7F04589C 8FB9066C */ lw $t9, 0x66c($sp) +/* 07A410 7F0458A0 0FC0F4D6 */ jal sub_GAME_7F03D058 +/* 07A414 7F0458A4 24050001 */ li $a1, 1 +/* 07A418 7F0458A8 8FB9066C */ lw $t9, 0x66c($sp) +.Ljp7F0458AC: +/* 07A41C 7F0458AC 24010001 */ li $at, 1 +/* 07A420 7F0458B0 8FA20650 */ lw $v0, 0x650($sp) +/* 07A424 7F0458B4 53210009 */ beql $t9, $at, .Ljp7F0458DC +/* 07A428 7F0458B8 8E080000 */ lw $t0, ($s0) +/* 07A42C 7F0458BC 50400007 */ beql $v0, $zero, .Ljp7F0458DC +/* 07A430 7F0458C0 8E080000 */ lw $t0, ($s0) +/* 07A434 7F0458C4 80580080 */ lb $t8, 0x80($v0) +/* 07A438 7F0458C8 24010056 */ li $at, 86 +/* 07A43C 7F0458CC 57010003 */ bnel $t8, $at, .Ljp7F0458DC +/* 07A440 7F0458D0 8E080000 */ lw $t0, ($s0) +/* 07A444 7F0458D4 A4400082 */ sh $zero, 0x82($v0) +/* 07A448 7F0458D8 8E080000 */ lw $t0, ($s0) +.Ljp7F0458DC: +/* 07A44C 7F0458DC 2401FEFF */ li $at, -257 +/* 07A450 7F0458E0 01014824 */ and $t1, $t0, $at +/* 07A454 7F0458E4 AE090000 */ sw $t1, ($s0) +/* 07A458 7F0458E8 C6260058 */ lwc1 $f6, 0x58($s1) +.Ljp7F0458EC: +/* 07A45C 7F0458EC 3C0B8005 */ lui $t3, %hi(clock_timer) # $t3, 0x8005 +/* 07A460 7F0458F0 3C013F80 */ lui $at, 0x3f80 +/* 07A464 7F0458F4 E7A6069C */ swc1 $f6, 0x69c($sp) +/* 07A468 7F0458F8 C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07A46C 7F0458FC E7AA06A0 */ swc1 $f10, 0x6a0($sp) +/* 07A470 7F045900 C6240060 */ lwc1 $f4, 0x60($s1) +/* 07A474 7F045904 E7A406A4 */ swc1 $f4, 0x6a4($sp) +/* 07A478 7F045908 8E0200BC */ lw $v0, 0xbc($s0) +/* 07A47C 7F04590C 58400005 */ blezl $v0, .Ljp7F045924 +/* 07A480 7F045910 8E2E006C */ lw $t6, 0x6c($s1) +/* 07A484 7F045914 8D6B83A4 */ lw $t3, %lo(clock_timer)($t3) +/* 07A488 7F045918 004B6023 */ subu $t4, $v0, $t3 +/* 07A48C 7F04591C AE0C00BC */ sw $t4, 0xbc($s0) +/* 07A490 7F045920 8E2E006C */ lw $t6, 0x6c($s1) +.Ljp7F045924: +/* 07A494 7F045924 8DCA0000 */ lw $t2, ($t6) +/* 07A498 7F045928 314D0001 */ andi $t5, $t2, 1 +/* 07A49C 7F04592C 51A00351 */ beql $t5, $zero, .Ljp7F046674 +/* 07A4A0 7F045930 C6000060 */ lwc1 $f0, 0x60($s0) +/* 07A4A4 7F045934 0FC100DE */ jal sub_GAME_7F040078 +/* 07A4A8 7F045938 02202025 */ move $a0, $s1 +/* 07A4AC 7F04593C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07A4B0 7F045940 44814000 */ mtc1 $at, $f8 +/* 07A4B4 7F045944 3C078005 */ lui $a3, %hi(clock_timer) # $a3, 0x8005 +/* 07A4B8 7F045948 24E783A4 */ addiu $a3, %lo(clock_timer) # addiu $a3, $a3, -0x7c5c +/* 07A4BC 7F04594C AFA20648 */ sw $v0, 0x648($sp) +/* 07A4C0 7F045950 AFA00618 */ sw $zero, 0x618($sp) +/* 07A4C4 7F045954 AFA00614 */ sw $zero, 0x614($sp) +/* 07A4C8 7F045958 AFA0060C */ sw $zero, 0x60c($sp) +/* 07A4CC 7F04595C E7A80640 */ swc1 $f8, 0x640($sp) +/* 07A4D0 7F045960 8E0F00A8 */ lw $t7, 0xa8($s0) +/* 07A4D4 7F045964 8CF90000 */ lw $t9, ($a3) +/* 07A4D8 7F045968 C634005C */ lwc1 $f20, 0x5c($s1) +/* 07A4DC 7F04596C 00009025 */ move $s2, $zero +/* 07A4E0 7F045970 01F9C021 */ addu $t8, $t7, $t9 +/* 07A4E4 7F045974 AE1800A8 */ sw $t8, 0xa8($s0) +/* 07A4E8 7F045978 C6260018 */ lwc1 $f6, 0x18($s1) +/* 07A4EC 7F04597C 3C018005 */ lui $at, %hi(rocket_initial_gravity_modifier) # $at, 0x8005 +/* 07A4F0 7F045980 E7A60634 */ swc1 $f6, 0x634($sp) +/* 07A4F4 7F045984 C62A001C */ lwc1 $f10, 0x1c($s1) +/* 07A4F8 7F045988 E7AA0638 */ swc1 $f10, 0x638($sp) +/* 07A4FC 7F04598C C6240020 */ lwc1 $f4, 0x20($s1) +/* 07A500 7F045990 E7A4063C */ swc1 $f4, 0x63c($sp) +/* 07A504 7F045994 8E030000 */ lw $v1, ($s0) +/* 07A508 7F045998 30680020 */ andi $t0, $v1, 0x20 +/* 07A50C 7F04599C 1100004B */ beqz $t0, .Ljp7F045ACC +/* 07A510 7F0459A0 00000000 */ nop +/* 07A514 7F0459A4 C4322AC8 */ lwc1 $f18, %lo(rocket_initial_gravity_modifier)($at) +/* 07A518 7F0459A8 C600001C */ lwc1 $f0, 0x1c($s0) +/* 07A51C 7F0459AC 3C028005 */ lui $v0, %hi(global_timer_delta) # $v0, 0x8005 +/* 07A520 7F0459B0 244283B4 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c4c +/* 07A524 7F0459B4 4612003C */ c.lt.s $f0, $f18 +/* 07A528 7F0459B8 00000000 */ nop +/* 07A52C 7F0459BC 4502001C */ bc1fl .Ljp7F045A30 +/* 07A530 7F0459C0 C60000B0 */ lwc1 $f0, 0xb0($s0) +/* 07A534 7F0459C4 C6080014 */ lwc1 $f8, 0x14($s0) +/* 07A538 7F0459C8 C4460000 */ lwc1 $f6, ($v0) +/* 07A53C 7F0459CC C60400B4 */ lwc1 $f4, 0xb4($s0) +/* 07A540 7F0459D0 3C018005 */ lui $at, %hi(D_80052A9C) # $at, 0x8005 +/* 07A544 7F0459D4 46064282 */ mul.s $f10, $f8, $f6 +/* 07A548 7F0459D8 460A2200 */ add.s $f8, $f4, $f10 +/* 07A54C 7F0459DC E60800B4 */ swc1 $f8, 0xb4($s0) +/* 07A550 7F0459E0 C4440000 */ lwc1 $f4, ($v0) +/* 07A554 7F0459E4 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07A558 7F0459E8 C60800B0 */ lwc1 $f8, 0xb0($s0) +/* 07A55C 7F0459EC 46043282 */ mul.s $f10, $f6, $f4 +/* 07A560 7F0459F0 460A4180 */ add.s $f6, $f8, $f10 +/* 07A564 7F0459F4 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 07A568 7F0459F8 C4480000 */ lwc1 $f8, ($v0) +/* 07A56C 7F0459FC C4242ACC */ lwc1 $f4, %lo(D_80052A9C)($at) +/* 07A570 7F045A00 46082282 */ mul.s $f10, $f4, $f8 +/* 07A574 7F045A04 460A0180 */ add.s $f6, $f0, $f10 +/* 07A578 7F045A08 E606001C */ swc1 $f6, 0x1c($s0) +/* 07A57C 7F045A0C C604001C */ lwc1 $f4, 0x1c($s0) +/* 07A580 7F045A10 4604903C */ c.lt.s $f18, $f4 +/* 07A584 7F045A14 00000000 */ nop +/* 07A588 7F045A18 45000002 */ bc1f .Ljp7F045A24 +/* 07A58C 7F045A1C 00000000 */ nop +/* 07A590 7F045A20 E612001C */ swc1 $f18, 0x1c($s0) +.Ljp7F045A24: +/* 07A594 7F045A24 10000029 */ b .Ljp7F045ACC +/* 07A598 7F045A28 8E030000 */ lw $v1, ($s0) +/* 07A59C 7F045A2C C60000B0 */ lwc1 $f0, 0xb0($s0) +.Ljp7F045A30: +/* 07A5A0 7F045A30 C7A806A0 */ lwc1 $f8, 0x6a0($sp) +/* 07A5A4 7F045A34 4600403C */ c.lt.s $f8, $f0 +/* 07A5A8 7F045A38 00000000 */ nop +/* 07A5AC 7F045A3C 45000019 */ bc1f .Ljp7F045AA4 +/* 07A5B0 7F045A40 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07A5B4 7F045A44 C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 07A5B8 7F045A48 C60A0014 */ lwc1 $f10, 0x14($s0) +/* 07A5BC 7F045A4C C60800B4 */ lwc1 $f8, 0xb4($s0) +/* 07A5C0 7F045A50 46065102 */ mul.s $f4, $f10, $f6 +/* 07A5C4 7F045A54 46044280 */ add.s $f10, $f8, $f4 +/* 07A5C8 7F045A58 E60A00B4 */ swc1 $f10, 0xb4($s0) +/* 07A5CC 7F045A5C C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 07A5D0 7F045A60 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07A5D4 7F045A64 3C018005 */ lui $at, %hi(D_80052AA0) # $at, 0x8005 +/* 07A5D8 7F045A68 46083102 */ mul.s $f4, $f6, $f8 +/* 07A5DC 7F045A6C 46040280 */ add.s $f10, $f0, $f4 +/* 07A5E0 7F045A70 E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 07A5E4 7F045A74 C7A806A0 */ lwc1 $f8, 0x6a0($sp) +/* 07A5E8 7F045A78 C60600B0 */ lwc1 $f6, 0xb0($s0) +/* 07A5EC 7F045A7C C42A2AD0 */ lwc1 $f10, %lo(D_80052AA0)($at) +/* 07A5F0 7F045A80 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07A5F4 7F045A84 46083101 */ sub.s $f4, $f6, $f8 +/* 07A5F8 7F045A88 46045182 */ mul.s $f6, $f10, $f4 +/* 07A5FC 7F045A8C C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07A600 7F045A90 460A3102 */ mul.s $f4, $f6, $f10 +/* 07A604 7F045A94 46044180 */ add.s $f6, $f8, $f4 +/* 07A608 7F045A98 E7A606A0 */ swc1 $f6, 0x6a0($sp) +/* 07A60C 7F045A9C 1000000B */ b .Ljp7F045ACC +/* 07A610 7F045AA0 8E030000 */ lw $v1, ($s0) +.Ljp7F045AA4: +/* 07A614 7F045AA4 E7A006A0 */ swc1 $f0, 0x6a0($sp) +/* 07A618 7F045AA8 8E090000 */ lw $t1, ($s0) +/* 07A61C 7F045AAC 2401FFDF */ li $at, -33 +/* 07A620 7F045AB0 C60A00B4 */ lwc1 $f10, 0xb4($s0) +/* 07A624 7F045AB4 01215824 */ and $t3, $t1, $at +/* 07A628 7F045AB8 AE0B0000 */ sw $t3, ($s0) +/* 07A62C 7F045ABC 35630010 */ ori $v1, $t3, 0x10 +/* 07A630 7F045AC0 E616001C */ swc1 $f22, 0x1c($s0) +/* 07A634 7F045AC4 AE030000 */ sw $v1, ($s0) +/* 07A638 7F045AC8 E60A0008 */ swc1 $f10, 8($s0) +.Ljp7F045ACC: +/* 07A63C 7F045ACC 3C028005 */ lui $v0, %hi(global_timer_delta) # $v0, 0x8005 +/* 07A640 7F045AD0 244283B4 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c4c +/* 07A644 7F045AD4 3C018005 */ lui $at, %hi(prop_projectile_gravity_modifier) # $at, 0x8005 +/* 07A648 7F045AD8 306A0010 */ andi $t2, $v1, 0x10 +/* 07A64C 7F045ADC C4322AD4 */ lwc1 $f18, %lo(prop_projectile_gravity_modifier)($at) +/* 07A650 7F045AE0 C4420000 */ lwc1 $f2, ($v0) +/* 07A654 7F045AE4 C600001C */ lwc1 $f0, 0x1c($s0) +/* 07A658 7F045AE8 15400015 */ bnez $t2, .Ljp7F045B40 +/* 07A65C 7F045AEC C6100014 */ lwc1 $f16, 0x14($s0) +/* 07A660 7F045AF0 46008100 */ add.s $f4, $f16, $f0 +/* 07A664 7F045AF4 C6080008 */ lwc1 $f8, 8($s0) +/* 07A668 7F045AF8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07A66C 7F045AFC 46022182 */ mul.s $f6, $f4, $f2 +/* 07A670 7F045B00 46064280 */ add.s $f10, $f8, $f6 +/* 07A674 7F045B04 E60A0008 */ swc1 $f10, 8($s0) +/* 07A678 7F045B08 C4420000 */ lwc1 $f2, ($v0) +/* 07A67C 7F045B0C C60C0008 */ lwc1 $f12, 8($s0) +/* 07A680 7F045B10 44815000 */ mtc1 $at, $f10 +/* 07A684 7F045B14 46029102 */ mul.s $f4, $f18, $f2 +/* 07A688 7F045B18 46046381 */ sub.s $f14, $f12, $f4 +/* 07A68C 7F045B1C 460E6200 */ add.s $f8, $f12, $f14 +/* 07A690 7F045B20 46081182 */ mul.s $f6, $f2, $f8 +/* 07A694 7F045B24 C7A806A0 */ lwc1 $f8, 0x6a0($sp) +/* 07A698 7F045B28 460A3102 */ mul.s $f4, $f6, $f10 +/* 07A69C 7F045B2C 46044180 */ add.s $f6, $f8, $f4 +/* 07A6A0 7F045B30 E7A606A0 */ swc1 $f6, 0x6a0($sp) +/* 07A6A4 7F045B34 E60E0008 */ swc1 $f14, 8($s0) +/* 07A6A8 7F045B38 1000000C */ b .Ljp7F045B6C +/* 07A6AC 7F045B3C C4420000 */ lwc1 $f2, ($v0) +.Ljp7F045B40: +/* 07A6B0 7F045B40 46008200 */ add.s $f8, $f16, $f0 +/* 07A6B4 7F045B44 C60A0008 */ lwc1 $f10, 8($s0) +/* 07A6B8 7F045B48 46024102 */ mul.s $f4, $f8, $f2 +/* 07A6BC 7F045B4C 46045180 */ add.s $f6, $f10, $f4 +/* 07A6C0 7F045B50 E6060008 */ swc1 $f6, 8($s0) +/* 07A6C4 7F045B54 C60A0008 */ lwc1 $f10, 8($s0) +/* 07A6C8 7F045B58 C4420000 */ lwc1 $f2, ($v0) +/* 07A6CC 7F045B5C C7A806A0 */ lwc1 $f8, 0x6a0($sp) +/* 07A6D0 7F045B60 46025102 */ mul.s $f4, $f10, $f2 +/* 07A6D4 7F045B64 46044180 */ add.s $f6, $f8, $f4 +/* 07A6D8 7F045B68 E7A606A0 */ swc1 $f6, 0x6a0($sp) +.Ljp7F045B6C: +/* 07A6DC 7F045B6C C6080010 */ lwc1 $f8, 0x10($s0) +/* 07A6E0 7F045B70 C60A0004 */ lwc1 $f10, 4($s0) +/* 07A6E4 7F045B74 26240018 */ addiu $a0, $s1, 0x18 +/* 07A6E8 7F045B78 46024102 */ mul.s $f4, $f8, $f2 +/* 07A6EC 7F045B7C C6080018 */ lwc1 $f8, 0x18($s0) +/* 07A6F0 7F045B80 26050020 */ addiu $a1, $s0, 0x20 +/* 07A6F4 7F045B84 46045180 */ add.s $f6, $f10, $f4 +/* 07A6F8 7F045B88 E6060004 */ swc1 $f6, 4($s0) +/* 07A6FC 7F045B8C C44A0000 */ lwc1 $f10, ($v0) +/* 07A700 7F045B90 C606000C */ lwc1 $f6, 0xc($s0) +/* 07A704 7F045B94 460A4102 */ mul.s $f4, $f8, $f10 +/* 07A708 7F045B98 46043200 */ add.s $f8, $f6, $f4 +/* 07A70C 7F045B9C C6060004 */ lwc1 $f6, 4($s0) +/* 07A710 7F045BA0 E608000C */ swc1 $f8, 0xc($s0) +/* 07A714 7F045BA4 C4420000 */ lwc1 $f2, ($v0) +/* 07A718 7F045BA8 C7AA069C */ lwc1 $f10, 0x69c($sp) +/* 07A71C 7F045BAC 8CE60000 */ lw $a2, ($a3) +/* 07A720 7F045BB0 46023102 */ mul.s $f4, $f6, $f2 +/* 07A724 7F045BB4 C7A606A4 */ lwc1 $f6, 0x6a4($sp) +/* 07A728 7F045BB8 46045200 */ add.s $f8, $f10, $f4 +/* 07A72C 7F045BBC E7A8069C */ swc1 $f8, 0x69c($sp) +/* 07A730 7F045BC0 C60A000C */ lwc1 $f10, 0xc($s0) +/* 07A734 7F045BC4 AFA50070 */ sw $a1, 0x70($sp) +/* 07A738 7F045BC8 AFA40074 */ sw $a0, 0x74($sp) +/* 07A73C 7F045BCC 46025102 */ mul.s $f4, $f10, $f2 +/* 07A740 7F045BD0 46043200 */ add.s $f8, $f6, $f4 +/* 07A744 7F045BD4 0FC160C6 */ jal sub_GAME_7F057DF8 +/* 07A748 7F045BD8 E7A806A4 */ swc1 $f8, 0x6a4($sp) +/* 07A74C 7F045BDC 922D0003 */ lbu $t5, 3($s1) +/* 07A750 7F045BE0 24010008 */ li $at, 8 +/* 07A754 7F045BE4 55A10013 */ bnel $t5, $at, .Ljp7F045C34 +/* 07A758 7F045BE8 8E040088 */ lw $a0, 0x88($s0) +/* 07A75C 7F045BEC 82220080 */ lb $v0, 0x80($s1) +/* 07A760 7F045BF0 2401001D */ li $at, 29 +/* 07A764 7F045BF4 1041000D */ beq $v0, $at, .Ljp7F045C2C +/* 07A768 7F045BF8 2401001B */ li $at, 27 +/* 07A76C 7F045BFC 1041000B */ beq $v0, $at, .Ljp7F045C2C +/* 07A770 7F045C00 2401001C */ li $at, 28 +/* 07A774 7F045C04 10410009 */ beq $v0, $at, .Ljp7F045C2C +/* 07A778 7F045C08 24010021 */ li $at, 33 +/* 07A77C 7F045C0C 10410007 */ beq $v0, $at, .Ljp7F045C2C +/* 07A780 7F045C10 2401002F */ li $at, 47 +/* 07A784 7F045C14 10410005 */ beq $v0, $at, .Ljp7F045C2C +/* 07A788 7F045C18 24010030 */ li $at, 48 +/* 07A78C 7F045C1C 10410003 */ beq $v0, $at, .Ljp7F045C2C +/* 07A790 7F045C20 24010022 */ li $at, 34 +/* 07A794 7F045C24 54410003 */ bnel $v0, $at, .Ljp7F045C34 +/* 07A798 7F045C28 8E040088 */ lw $a0, 0x88($s0) +.Ljp7F045C2C: +/* 07A79C 7F045C2C 24120001 */ li $s2, 1 +/* 07A7A0 7F045C30 8E040088 */ lw $a0, 0x88($s0) +.Ljp7F045C34: +/* 07A7A4 7F045C34 50800004 */ beql $a0, $zero, .Ljp7F045C48 +/* 07A7A8 7F045C38 02202025 */ move $a0, $s1 +/* 07A7AC 7F045C3C 0FC0F4D6 */ jal sub_GAME_7F03D058 +/* 07A7B0 7F045C40 00002825 */ move $a1, $zero +/* 07A7B4 7F045C44 02202025 */ move $a0, $s1 +.Ljp7F045C48: +/* 07A7B8 7F045C48 27A5069C */ addiu $a1, $sp, 0x69c +/* 07A7BC 7F045C4C 27A6061C */ addiu $a2, $sp, 0x61c +/* 07A7C0 7F045C50 27A70628 */ addiu $a3, $sp, 0x628 +/* 07A7C4 7F045C54 AFB20010 */ sw $s2, 0x10($sp) +/* 07A7C8 7F045C58 0FC10C6D */ jal sub_GAME_7F042EB4 +/* 07A7CC 7F045C5C AFA00014 */ sw $zero, 0x14($sp) +/* 07A7D0 7F045C60 AFA2066C */ sw $v0, 0x66c($sp) +/* 07A7D4 7F045C64 8E040088 */ lw $a0, 0x88($s0) +/* 07A7D8 7F045C68 50800004 */ beql $a0, $zero, .Ljp7F045C7C +/* 07A7DC 7F045C6C 8FB9066C */ lw $t9, 0x66c($sp) +/* 07A7E0 7F045C70 0FC0F4D6 */ jal sub_GAME_7F03D058 +/* 07A7E4 7F045C74 24050001 */ li $a1, 1 +/* 07A7E8 7F045C78 8FB9066C */ lw $t9, 0x66c($sp) +.Ljp7F045C7C: +/* 07A7EC 7F045C7C 240F0001 */ li $t7, 1 +/* 07A7F0 7F045C80 24010002 */ li $at, 2 +/* 07A7F4 7F045C84 17210042 */ bne $t9, $at, .Ljp7F045D90 +/* 07A7F8 7F045C88 AFAF0698 */ sw $t7, 0x698($sp) +/* 07A7FC 7F045C8C 3C038003 */ lui $v1, %hi(D_80030B0C) # $v1, 0x8003 +/* 07A800 7F045C90 8C630B4C */ lw $v1, %lo(D_80030B0C)($v1) +/* 07A804 7F045C94 10600007 */ beqz $v1, .Ljp7F045CB4 +/* 07A808 7F045C98 00000000 */ nop +/* 07A80C 7F045C9C 90620000 */ lbu $v0, ($v1) +/* 07A810 7F045CA0 24010003 */ li $at, 3 +/* 07A814 7F045CA4 1041003A */ beq $v0, $at, .Ljp7F045D90 +/* 07A818 7F045CA8 24010006 */ li $at, 6 +/* 07A81C 7F045CAC 50410039 */ beql $v0, $at, .Ljp7F045D94 +/* 07A820 7F045CB0 8FB9060C */ lw $t9, 0x60c($sp) +.Ljp7F045CB4: +/* 07A824 7F045CB4 10600007 */ beqz $v1, .Ljp7F045CD4 +/* 07A828 7F045CB8 00002025 */ move $a0, $zero +/* 07A82C 7F045CBC 8C620004 */ lw $v0, 4($v1) +/* 07A830 7F045CC0 8C580064 */ lw $t8, 0x64($v0) +/* 07A834 7F045CC4 33080080 */ andi $t0, $t8, 0x80 +/* 07A838 7F045CC8 11000002 */ beqz $t0, .Ljp7F045CD4 +/* 07A83C 7F045CCC 00000000 */ nop +/* 07A840 7F045CD0 24040001 */ li $a0, 1 +.Ljp7F045CD4: +/* 07A844 7F045CD4 5480002F */ bnezl $a0, .Ljp7F045D94 +/* 07A848 7F045CD8 8FB9060C */ lw $t9, 0x60c($sp) +/* 07A84C 7F045CDC 0FC0FF9C */ jal sub_GAME_7F03FB70 +/* 07A850 7F045CE0 02002025 */ move $a0, $s0 +/* 07A854 7F045CE4 8E290064 */ lw $t1, 0x64($s1) +/* 07A858 7F045CE8 2401FF7F */ li $at, -129 +/* 07A85C 7F045CEC AE20006C */ sw $zero, 0x6c($s1) +/* 07A860 7F045CF0 01215824 */ and $t3, $t1, $at +/* 07A864 7F045CF4 AE2B0064 */ sw $t3, 0x64($s1) +/* 07A868 7F045CF8 92620001 */ lbu $v0, 1($s3) +/* 07A86C 7F045CFC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07A870 7F045D00 240500F1 */ li $a1, 241 +/* 07A874 7F045D04 304C0008 */ andi $t4, $v0, 8 +/* 07A878 7F045D08 11800003 */ beqz $t4, .Ljp7F045D18 +/* 07A87C 7F045D0C 00003025 */ move $a2, $zero +/* 07A880 7F045D10 344E0010 */ ori $t6, $v0, 0x10 +/* 07A884 7F045D14 A26E0001 */ sb $t6, 1($s3) +.Ljp7F045D18: +/* 07A888 7F045D18 0C002386 */ jal play_sfx_a1 +/* 07A88C 7F045D1C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07A890 7F045D20 00402025 */ move $a0, $v0 +/* 07A894 7F045D24 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 07A898 7F045D28 26650008 */ addiu $a1, $s3, 8 +/* 07A89C 7F045D2C 8E6A0014 */ lw $t2, 0x14($s3) +/* 07A8A0 7F045D30 82240080 */ lb $a0, 0x80($s1) +/* 07A8A4 7F045D34 0FC15F41 */ jal sub_GAME_7F0577E8 +/* 07A8A8 7F045D38 91450003 */ lbu $a1, 3($t2) +/* 07A8AC 7F045D3C 02202025 */ move $a0, $s1 +/* 07A8B0 7F045D40 27A5061C */ addiu $a1, $sp, 0x61c +/* 07A8B4 7F045D44 8E660014 */ lw $a2, 0x14($s3) +/* 07A8B8 7F045D48 0FC10F2E */ jal sub_GAME_7F0439B8 +/* 07A8BC 7F045D4C 27A70628 */ addiu $a3, $sp, 0x628 +/* 07A8C0 7F045D50 3C058003 */ lui $a1, %hi(D_80030B0C) # $a1, 0x8003 +/* 07A8C4 7F045D54 8CA50B4C */ lw $a1, %lo(D_80030B0C)($a1) +/* 07A8C8 7F045D58 02602025 */ move $a0, $s3 +/* 07A8CC 7F045D5C 3C068007 */ lui $a2, %hi(objinst) # $a2, 0x8007 +/* 07A8D0 7F045D60 10A0000B */ beqz $a1, .Ljp7F045D90 +/* 07A8D4 7F045D64 3C078007 */ lui $a3, %hi(dword_CODE_bss_80075B74) # $a3, 0x8007 +/* 07A8D8 7F045D68 8E720014 */ lw $s2, 0x14($s3) +/* 07A8DC 7F045D6C 8CC65BB0 */ lw $a2, %lo(objinst)($a2) +/* 07A8E0 7F045D70 0FC10F5B */ jal sub_GAME_7F043A6C +/* 07A8E4 7F045D74 8CE75BB4 */ lw $a3, %lo(dword_CODE_bss_80075B74)($a3) +/* 07A8E8 7F045D78 10400005 */ beqz $v0, .Ljp7F045D90 +/* 07A8EC 7F045D7C 240D0005 */ li $t5, 5 +/* 07A8F0 7F045D80 AE720014 */ sw $s2, 0x14($s3) +/* 07A8F4 7F045D84 240F0001 */ li $t7, 1 +/* 07A8F8 7F045D88 AFAD0688 */ sw $t5, 0x688($sp) +/* 07A8FC 7F045D8C AFAF060C */ sw $t7, 0x60c($sp) +.Ljp7F045D90: +/* 07A900 7F045D90 8FB9060C */ lw $t9, 0x60c($sp) +.Ljp7F045D94: +/* 07A904 7F045D94 172000EC */ bnez $t9, .Ljp7F046148 +/* 07A908 7F045D98 3C128003 */ lui $s2, %hi(D_80030B0C) # $s2, 0x8003 +/* 07A90C 7F045D9C 8E520B4C */ lw $s2, %lo(D_80030B0C)($s2) +/* 07A910 7F045DA0 524000EA */ beql $s2, $zero, .Ljp7F04614C +/* 07A914 7F045DA4 8FB9060C */ lw $t9, 0x60c($sp) +/* 07A918 7F045DA8 92380003 */ lbu $t8, 3($s1) +/* 07A91C 7F045DAC 24010008 */ li $at, 8 +/* 07A920 7F045DB0 570100E6 */ bnel $t8, $at, .Ljp7F04614C +/* 07A924 7F045DB4 8FB9060C */ lw $t9, 0x60c($sp) +/* 07A928 7F045DB8 82220080 */ lb $v0, 0x80($s1) +/* 07A92C 7F045DBC 24010003 */ li $at, 3 +/* 07A930 7F045DC0 544100C3 */ bnel $v0, $at, .Ljp7F0460D0 +/* 07A934 7F045DC4 24010056 */ li $at, 86 +/* 07A938 7F045DC8 92420000 */ lbu $v0, ($s2) +/* 07A93C 7F045DCC 24010003 */ li $at, 3 +/* 07A940 7F045DD0 1041000D */ beq $v0, $at, .Ljp7F045E08 +/* 07A944 7F045DD4 24010006 */ li $at, 6 +/* 07A948 7F045DD8 544100DC */ bnel $v0, $at, .Ljp7F04614C +/* 07A94C 7F045DDC 8FB9060C */ lw $t9, 0x60c($sp) +/* 07A950 7F045DE0 8E480004 */ lw $t0, 4($s2) +/* 07A954 7F045DE4 510000D9 */ beql $t0, $zero, .Ljp7F04614C +/* 07A958 7F045DE8 8FB9060C */ lw $t9, 0x60c($sp) +/* 07A95C 7F045DEC 0FC26F3F */ jal sub_GAME_7F09B15C +/* 07A960 7F045DF0 02402025 */ move $a0, $s2 +/* 07A964 7F045DF4 0FC26F3C */ jal get_cur_playernum +/* 07A968 7F045DF8 00409025 */ move $s2, $v0 +/* 07A96C 7F045DFC 105200D2 */ beq $v0, $s2, .Ljp7F046148 +/* 07A970 7F045E00 3C128003 */ lui $s2, %hi(D_80030B0C) # $s2, 0x8003 +/* 07A974 7F045E04 8E520B4C */ lw $s2, %lo(D_80030B0C)($s2) +.Ljp7F045E08: +/* 07A978 7F045E08 8E22006C */ lw $v0, 0x6c($s1) +/* 07A97C 7F045E0C 8E440004 */ lw $a0, 4($s2) +/* 07A980 7F045E10 8C490000 */ lw $t1, ($v0) +/* 07A984 7F045E14 312B0001 */ andi $t3, $t1, 1 +/* 07A988 7F045E18 516000CC */ beql $t3, $zero, .Ljp7F04614C +/* 07A98C 7F045E1C 8FB9060C */ lw $t9, 0x60c($sp) +/* 07A990 7F045E20 8C4C0090 */ lw $t4, 0x90($v0) +/* 07A994 7F045E24 5D8000C9 */ bgtzl $t4, .Ljp7F04614C +/* 07A998 7F045E28 8FB9060C */ lw $t9, 0x60c($sp) +/* 07A99C 7F045E2C 8E2E0064 */ lw $t6, 0x64($s1) +/* 07A9A0 7F045E30 3C068007 */ lui $a2, %hi(flt_CODE_bss_80075B78) # $a2, 0x8007 +/* 07A9A4 7F045E34 24C65BB8 */ addiu $a2, %lo(flt_CODE_bss_80075B78) # addiu $a2, $a2, 0x5bb8 +/* 07A9A8 7F045E38 31CA0020 */ andi $t2, $t6, 0x20 +/* 07A9AC 7F045E3C 114000C2 */ beqz $t2, .Ljp7F046148 +/* 07A9B0 7F045E40 3C058003 */ lui $a1, %hi(bodypartshot) # $a1, 0x8003 +/* 07A9B4 7F045E44 82270080 */ lb $a3, 0x80($s1) +/* 07A9B8 7F045E48 240D0001 */ li $t5, 1 +/* 07A9BC 7F045E4C AFAD0010 */ sw $t5, 0x10($sp) +/* 07A9C0 7F045E50 0FC09D61 */ jal handles_shot_actors +/* 07A9C4 7F045E54 8CA50B50 */ lw $a1, %lo(bodypartshot)($a1) +/* 07A9C8 7F045E58 104000BB */ beqz $v0, .Ljp7F046148 +/* 07A9CC 7F045E5C 240F0001 */ li $t7, 1 +/* 07A9D0 7F045E60 AFAF060C */ sw $t7, 0x60c($sp) +/* 07A9D4 7F045E64 C610008C */ lwc1 $f16, 0x8c($s0) +/* 07A9D8 7F045E68 C7AA0628 */ lwc1 $f10, 0x628($sp) +/* 07A9DC 7F045E6C 4610B03C */ c.lt.s $f22, $f16 +/* 07A9E0 7F045E70 00000000 */ nop +/* 07A9E4 7F045E74 4502001D */ bc1fl .Ljp7F045EEC +/* 07A9E8 7F045E78 8E190000 */ lw $t9, ($s0) +/* 07A9EC 7F045E7C C6020004 */ lwc1 $f2, 4($s0) +/* 07A9F0 7F045E80 C60C0008 */ lwc1 $f12, 8($s0) +/* 07A9F4 7F045E84 C7A4062C */ lwc1 $f4, 0x62c($sp) +/* 07A9F8 7F045E88 460A1182 */ mul.s $f6, $f2, $f10 +/* 07A9FC 7F045E8C C600000C */ lwc1 $f0, 0xc($s0) +/* 07AA00 7F045E90 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AA04 7F045E94 46046202 */ mul.s $f8, $f12, $f4 +/* 07AA08 7F045E98 46083100 */ add.s $f4, $f6, $f8 +/* 07AA0C 7F045E9C C7A60630 */ lwc1 $f6, 0x630($sp) +/* 07AA10 7F045EA0 46003202 */ mul.s $f8, $f6, $f0 +/* 07AA14 7F045EA4 44813000 */ mtc1 $at, $f6 +/* 07AA18 7F045EA8 46044380 */ add.s $f14, $f8, $f4 +/* 07AA1C 7F045EAC 46068200 */ add.s $f8, $f16, $f6 +/* 07AA20 7F045EB0 46004107 */ neg.s $f4, $f8 +/* 07AA24 7F045EB4 46047382 */ mul.s $f14, $f14, $f4 +/* 07AA28 7F045EB8 00000000 */ nop +/* 07AA2C 7F045EBC 460A7182 */ mul.s $f6, $f14, $f10 +/* 07AA30 7F045EC0 46061200 */ add.s $f8, $f2, $f6 +/* 07AA34 7F045EC4 E6080004 */ swc1 $f8, 4($s0) +/* 07AA38 7F045EC8 C7A4062C */ lwc1 $f4, 0x62c($sp) +/* 07AA3C 7F045ECC 46047282 */ mul.s $f10, $f14, $f4 +/* 07AA40 7F045ED0 460A6180 */ add.s $f6, $f12, $f10 +/* 07AA44 7F045ED4 E6060008 */ swc1 $f6, 8($s0) +/* 07AA48 7F045ED8 C7A80630 */ lwc1 $f8, 0x630($sp) +/* 07AA4C 7F045EDC 46087102 */ mul.s $f4, $f14, $f8 +/* 07AA50 7F045EE0 46040280 */ add.s $f10, $f0, $f4 +/* 07AA54 7F045EE4 E60A000C */ swc1 $f10, 0xc($s0) +/* 07AA58 7F045EE8 8E190000 */ lw $t9, ($s0) +.Ljp7F045EEC: +/* 07AA5C 7F045EEC 33380200 */ andi $t8, $t9, 0x200 +/* 07AA60 7F045EF0 57000004 */ bnezl $t8, .Ljp7F045F04 +/* 07AA64 7F045EF4 8E080090 */ lw $t0, 0x90($s0) +/* 07AA68 7F045EF8 0FC15FF8 */ jal sub_GAME_7F057AC0 +/* 07AA6C 7F045EFC 8FA40070 */ lw $a0, 0x70($sp) +/* 07AA70 7F045F00 8E080090 */ lw $t0, 0x90($s0) +.Ljp7F045F04: +/* 07AA74 7F045F04 3C058003 */ lui $a1, %hi(D_80030B0C) # $a1, 0x8003 +/* 07AA78 7F045F08 2406FFFF */ li $a2, -1 +/* 07AA7C 7F045F0C 25090001 */ addiu $t1, $t0, 1 +/* 07AA80 7F045F10 AE090090 */ sw $t1, 0x90($s0) +/* 07AA84 7F045F14 8CA50B4C */ lw $a1, %lo(D_80030B0C)($a1) +/* 07AA88 7F045F18 0FC19252 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 07AA8C 7F045F1C 82240080 */ lb $a0, 0x80($s1) +/* 07AA90 7F045F20 3C0B8003 */ lui $t3, %hi(D_80030B0C) # $t3, 0x8003 +/* 07AA94 7F045F24 8D6B0B4C */ lw $t3, %lo(D_80030B0C)($t3) +/* 07AA98 7F045F28 3C028003 */ lui $v0, %hi(bodypartshot) # $v0, 0x8003 +/* 07AA9C 7F045F2C 916C0001 */ lbu $t4, 1($t3) +/* 07AAA0 7F045F30 318E0002 */ andi $t6, $t4, 2 +/* 07AAA4 7F045F34 51C00085 */ beql $t6, $zero, .Ljp7F04614C +/* 07AAA8 7F045F38 8FB9060C */ lw $t9, 0x60c($sp) +/* 07AAAC 7F045F3C 8C420B50 */ lw $v0, %lo(bodypartshot)($v0) +/* 07AAB0 7F045F40 24010064 */ li $at, 100 +/* 07AAB4 7F045F44 10410080 */ beq $v0, $at, .Ljp7F046148 +/* 07AAB8 7F045F48 2401006E */ li $at, 110 +/* 07AABC 7F045F4C 1041007E */ beq $v0, $at, .Ljp7F046148 +/* 07AAC0 7F045F50 3C048007 */ lui $a0, %hi(objinst) # $a0, 0x8007 +/* 07AAC4 7F045F54 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) # $a1, 0x8007 +/* 07AAC8 7F045F58 8CA55BB4 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07AACC 7F045F5C 8C845BB0 */ lw $a0, %lo(objinst)($a0) +/* 07AAD0 7F045F60 0FC1B314 */ jal sub_GAME_7F06C660 +/* 07AAD4 7F045F64 00003025 */ move $a2, $zero +/* 07AAD8 7F045F68 C7A6061C */ lwc1 $f6, 0x61c($sp) +/* 07AADC 7F045F6C C7A80620 */ lwc1 $f8, 0x620($sp) +/* 07AAE0 7F045F70 C7A40624 */ lwc1 $f4, 0x624($sp) +/* 07AAE4 7F045F74 00409025 */ move $s2, $v0 +/* 07AAE8 7F045F78 E7A605D4 */ swc1 $f6, 0x5d4($sp) +/* 07AAEC 7F045F7C E7A805D8 */ swc1 $f8, 0x5d8($sp) +/* 07AAF0 7F045F80 0FC1E26D */ jal get_BONDdata_field_10CC +/* 07AAF4 7F045F84 E7A405DC */ swc1 $f4, 0x5dc($sp) +/* 07AAF8 7F045F88 00402025 */ move $a0, $v0 +/* 07AAFC 7F045F8C 0FC16265 */ jal matrix_4x4_transform_vector_in_place +/* 07AB00 7F045F90 27A505D4 */ addiu $a1, $sp, 0x5d4 +/* 07AB04 7F045F94 C7AA05D4 */ lwc1 $f10, 0x5d4($sp) +/* 07AB08 7F045F98 C6460030 */ lwc1 $f6, 0x30($s2) +/* 07AB0C 7F045F9C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07AB10 7F045FA0 44810000 */ mtc1 $at, $f0 +/* 07AB14 7F045FA4 46065201 */ sub.s $f8, $f10, $f6 +/* 07AB18 7F045FA8 3C048007 */ lui $a0, %hi(objinst) # $a0, 0x8007 +/* 07AB1C 7F045FAC 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) # $a1, 0x8007 +/* 07AB20 7F045FB0 8CA55BB4 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07AB24 7F045FB4 46004102 */ mul.s $f4, $f8, $f0 +/* 07AB28 7F045FB8 C7A805D8 */ lwc1 $f8, 0x5d8($sp) +/* 07AB2C 7F045FBC 8C845BB0 */ lw $a0, %lo(objinst)($a0) +/* 07AB30 7F045FC0 46045180 */ add.s $f6, $f10, $f4 +/* 07AB34 7F045FC4 E7A605D4 */ swc1 $f6, 0x5d4($sp) +/* 07AB38 7F045FC8 C64A0034 */ lwc1 $f10, 0x34($s2) +/* 07AB3C 7F045FCC 460A4101 */ sub.s $f4, $f8, $f10 +/* 07AB40 7F045FD0 46002182 */ mul.s $f6, $f4, $f0 +/* 07AB44 7F045FD4 C7A405DC */ lwc1 $f4, 0x5dc($sp) +/* 07AB48 7F045FD8 46064280 */ add.s $f10, $f8, $f6 +/* 07AB4C 7F045FDC E7AA05D8 */ swc1 $f10, 0x5d8($sp) +/* 07AB50 7F045FE0 C6480038 */ lwc1 $f8, 0x38($s2) +/* 07AB54 7F045FE4 46082181 */ sub.s $f6, $f4, $f8 +/* 07AB58 7F045FE8 46003282 */ mul.s $f10, $f6, $f0 +/* 07AB5C 7F045FEC 460A2200 */ add.s $f8, $f4, $f10 +/* 07AB60 7F045FF0 0FC1B520 */ jal getjointsize +/* 07AB64 7F045FF4 E7A805DC */ swc1 $f8, 0x5dc($sp) +/* 07AB68 7F045FF8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07AB6C 7F045FFC 44813000 */ mtc1 $at, $f6 +/* 07AB70 7F046000 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B88) # $at, 0x8007 +/* 07AB74 7F046004 C42A5BC8 */ lwc1 $f10, %lo(flt_CODE_bss_80075B88)($at) +/* 07AB78 7F046008 46060102 */ mul.s $f4, $f0, $f6 +/* 07AB7C 7F04600C C7A605D4 */ lwc1 $f6, 0x5d4($sp) +/* 07AB80 7F046010 3C048007 */ lui $a0, %hi(objinst) # $a0, 0x8007 +/* 07AB84 7F046014 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) # $a1, 0x8007 +/* 07AB88 7F046018 8CA55BB4 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07AB8C 7F04601C 8C845BB0 */ lw $a0, %lo(objinst)($a0) +/* 07AB90 7F046020 460A2202 */ mul.s $f8, $f4, $f10 +/* 07AB94 7F046024 46083101 */ sub.s $f4, $f6, $f8 +/* 07AB98 7F046028 0FC1B520 */ jal getjointsize +/* 07AB9C 7F04602C E7A405D4 */ swc1 $f4, 0x5d4($sp) +/* 07ABA0 7F046030 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07ABA4 7F046034 44815000 */ mtc1 $at, $f10 +/* 07ABA8 7F046038 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B8C) # $at, 0x8007 +/* 07ABAC 7F04603C C4285BCC */ lwc1 $f8, %lo(flt_CODE_bss_80075B8C)($at) +/* 07ABB0 7F046040 460A0182 */ mul.s $f6, $f0, $f10 +/* 07ABB4 7F046044 C7AA05D8 */ lwc1 $f10, 0x5d8($sp) +/* 07ABB8 7F046048 3C048007 */ lui $a0, %hi(objinst) # $a0, 0x8007 +/* 07ABBC 7F04604C 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) # $a1, 0x8007 +/* 07ABC0 7F046050 8CA55BB4 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07ABC4 7F046054 8C845BB0 */ lw $a0, %lo(objinst)($a0) +/* 07ABC8 7F046058 46083102 */ mul.s $f4, $f6, $f8 +/* 07ABCC 7F04605C 46045181 */ sub.s $f6, $f10, $f4 +/* 07ABD0 7F046060 0FC1B520 */ jal getjointsize +/* 07ABD4 7F046064 E7A605D8 */ swc1 $f6, 0x5d8($sp) +/* 07ABD8 7F046068 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07ABDC 7F04606C 44814000 */ mtc1 $at, $f8 +/* 07ABE0 7F046070 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B90) # $at, 0x8007 +/* 07ABE4 7F046074 C4245BD0 */ lwc1 $f4, %lo(flt_CODE_bss_80075B90)($at) +/* 07ABE8 7F046078 46080282 */ mul.s $f10, $f0, $f8 +/* 07ABEC 7F04607C C7A805DC */ lwc1 $f8, 0x5dc($sp) +/* 07ABF0 7F046080 02402025 */ move $a0, $s2 +/* 07ABF4 7F046084 27A50594 */ addiu $a1, $sp, 0x594 +/* 07ABF8 7F046088 46045182 */ mul.s $f6, $f10, $f4 +/* 07ABFC 7F04608C 46064281 */ sub.s $f10, $f8, $f6 +/* 07AC00 7F046090 0FC168E1 */ jal sub_GAME_7F059E64 +/* 07AC04 7F046094 E7AA05DC */ swc1 $f10, 0x5dc($sp) +/* 07AC08 7F046098 27A40594 */ addiu $a0, $sp, 0x594 +/* 07AC0C 7F04609C 0FC16265 */ jal matrix_4x4_transform_vector_in_place +/* 07AC10 7F0460A0 27A505D4 */ addiu $a1, $sp, 0x5d4 +/* 07AC14 7F0460A4 3C048007 */ lui $a0, %hi(objinst) # $a0, 0x8007 +/* 07AC18 7F0460A8 3C058003 */ lui $a1, %hi(bodypartshot) # $a1, 0x8003 +/* 07AC1C 7F0460AC 3C068007 */ lui $a2, %hi(dword_CODE_bss_80075B74) # $a2, 0x8007 +/* 07AC20 7F0460B0 8CC65BB4 */ lw $a2, %lo(dword_CODE_bss_80075B74)($a2) +/* 07AC24 7F0460B4 8CA50B50 */ lw $a1, %lo(bodypartshot)($a1) +/* 07AC28 7F0460B8 8C845BB0 */ lw $a0, %lo(objinst)($a0) +/* 07AC2C 7F0460BC 0FC08931 */ jal sub_GAME_7F0221DC +/* 07AC30 7F0460C0 27A705D4 */ addiu $a3, $sp, 0x5d4 +/* 07AC34 7F0460C4 10000021 */ b .Ljp7F04614C +/* 07AC38 7F0460C8 8FB9060C */ lw $t9, 0x60c($sp) +/* 07AC3C 7F0460CC 24010056 */ li $at, 86 +.Ljp7F0460D0: +/* 07AC40 7F0460D0 5441001E */ bnel $v0, $at, .Ljp7F04614C +/* 07AC44 7F0460D4 8FB9060C */ lw $t9, 0x60c($sp) +/* 07AC48 7F0460D8 92420000 */ lbu $v0, ($s2) +/* 07AC4C 7F0460DC 240A0001 */ li $t2, 1 +/* 07AC50 7F0460E0 24010003 */ li $at, 3 +/* 07AC54 7F0460E4 14410008 */ bne $v0, $at, .Ljp7F046108 +/* 07AC58 7F0460E8 AFAA060C */ sw $t2, 0x60c($sp) +/* 07AC5C 7F0460EC 8E440004 */ lw $a0, 4($s2) +/* 07AC60 7F0460F0 26250058 */ addiu $a1, $s1, 0x58 +/* 07AC64 7F0460F4 3C064000 */ lui $a2, 0x4000 +/* 07AC68 7F0460F8 0FC09EC3 */ jal sub_GAME_7F027804 +/* 07AC6C 7F0460FC 24070001 */ li $a3, 1 +/* 07AC70 7F046100 10000011 */ b .Ljp7F046148 +/* 07AC74 7F046104 A6200082 */ sh $zero, 0x82($s1) +.Ljp7F046108: +/* 07AC78 7F046108 24010001 */ li $at, 1 +/* 07AC7C 7F04610C 10410004 */ beq $v0, $at, .Ljp7F046120 +/* 07AC80 7F046110 3C0542C8 */ lui $a1, 0x42c8 +/* 07AC84 7F046114 24010004 */ li $at, 4 +/* 07AC88 7F046118 5441000B */ bnel $v0, $at, .Ljp7F046148 +/* 07AC8C 7F04611C A6200082 */ sh $zero, 0x82($s1) +.Ljp7F046120: +/* 07AC90 7F046120 8E220064 */ lw $v0, 0x64($s1) +/* 07AC94 7F046124 3C010006 */ lui $at, 6 +/* 07AC98 7F046128 8E440004 */ lw $a0, 4($s2) +/* 07AC9C 7F04612C 00416824 */ and $t5, $v0, $at +/* 07ACA0 7F046130 000D7C42 */ srl $t7, $t5, 0x11 +/* 07ACA4 7F046134 AFAF0010 */ sw $t7, 0x10($sp) +/* 07ACA8 7F046138 26260058 */ addiu $a2, $s1, 0x58 +/* 07ACAC 7F04613C 0FC13943 */ jal maybe_detonate_object +/* 07ACB0 7F046140 24070056 */ li $a3, 86 +/* 07ACB4 7F046144 A6200082 */ sh $zero, 0x82($s1) +.Ljp7F046148: +/* 07ACB8 7F046148 8FB9060C */ lw $t9, 0x60c($sp) +.Ljp7F04614C: +/* 07ACBC 7F04614C 5720010B */ bnezl $t9, .Ljp7F04657C +/* 07ACC0 7F046150 8E2F0064 */ lw $t7, 0x64($s1) +/* 07ACC4 7F046154 8FB8066C */ lw $t8, 0x66c($sp) +/* 07ACC8 7F046158 57000031 */ bnezl $t8, .Ljp7F046220 +/* 07ACCC 7F04615C 8E090000 */ lw $t1, ($s0) +/* 07ACD0 7F046160 C610008C */ lwc1 $f16, 0x8c($s0) +/* 07ACD4 7F046164 C7A40628 */ lwc1 $f4, 0x628($sp) +/* 07ACD8 7F046168 4610B03C */ c.lt.s $f22, $f16 +/* 07ACDC 7F04616C 00000000 */ nop +/* 07ACE0 7F046170 4502002B */ bc1fl .Ljp7F046220 +/* 07ACE4 7F046174 8E090000 */ lw $t1, ($s0) +/* 07ACE8 7F046178 C6020004 */ lwc1 $f2, 4($s0) +/* 07ACEC 7F04617C C60C0008 */ lwc1 $f12, 8($s0) +/* 07ACF0 7F046180 C7A6062C */ lwc1 $f6, 0x62c($sp) +/* 07ACF4 7F046184 46041202 */ mul.s $f8, $f2, $f4 +/* 07ACF8 7F046188 C600000C */ lwc1 $f0, 0xc($s0) +/* 07ACFC 7F04618C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AD00 7F046190 46066282 */ mul.s $f10, $f12, $f6 +/* 07AD04 7F046194 4616603E */ c.le.s $f12, $f22 +/* 07AD08 7F046198 460A4180 */ add.s $f6, $f8, $f10 +/* 07AD0C 7F04619C C7A80630 */ lwc1 $f8, 0x630($sp) +/* 07AD10 7F0461A0 46004282 */ mul.s $f10, $f8, $f0 +/* 07AD14 7F0461A4 44814000 */ mtc1 $at, $f8 +/* 07AD18 7F0461A8 46065380 */ add.s $f14, $f10, $f6 +/* 07AD1C 7F0461AC 46088280 */ add.s $f10, $f16, $f8 +/* 07AD20 7F0461B0 46005187 */ neg.s $f6, $f10 +/* 07AD24 7F0461B4 46067382 */ mul.s $f14, $f14, $f6 +/* 07AD28 7F0461B8 00000000 */ nop +/* 07AD2C 7F0461BC 46047202 */ mul.s $f8, $f14, $f4 +/* 07AD30 7F0461C0 46081280 */ add.s $f10, $f2, $f8 +/* 07AD34 7F0461C4 E60A0004 */ swc1 $f10, 4($s0) +/* 07AD38 7F0461C8 C7A6062C */ lwc1 $f6, 0x62c($sp) +/* 07AD3C 7F0461CC 46067102 */ mul.s $f4, $f14, $f6 +/* 07AD40 7F0461D0 46046200 */ add.s $f8, $f12, $f4 +/* 07AD44 7F0461D4 E6080008 */ swc1 $f8, 8($s0) +/* 07AD48 7F0461D8 C7AA0630 */ lwc1 $f10, 0x630($sp) +/* 07AD4C 7F0461DC 460A7182 */ mul.s $f6, $f14, $f10 +/* 07AD50 7F0461E0 46060100 */ add.s $f4, $f0, $f6 +/* 07AD54 7F0461E4 4500000D */ bc1f .Ljp7F04621C +/* 07AD58 7F0461E8 E604000C */ swc1 $f4, 0xc($s0) +/* 07AD5C 7F0461EC C6080008 */ lwc1 $f8, 8($s0) +/* 07AD60 7F0461F0 24080001 */ li $t0, 1 +/* 07AD64 7F0461F4 4608B03E */ c.le.s $f22, $f8 +/* 07AD68 7F0461F8 00000000 */ nop +/* 07AD6C 7F0461FC 45030007 */ bc1tl .Ljp7F04621C +/* 07AD70 7F046200 AFA80614 */ sw $t0, 0x614($sp) +/* 07AD74 7F046204 C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07AD78 7F046208 460AA03E */ c.le.s $f20, $f10 +/* 07AD7C 7F04620C 00000000 */ nop +/* 07AD80 7F046210 45020003 */ bc1fl .Ljp7F046220 +/* 07AD84 7F046214 8E090000 */ lw $t1, ($s0) +/* 07AD88 7F046218 AFA80614 */ sw $t0, 0x614($sp) +.Ljp7F04621C: +/* 07AD8C 7F04621C 8E090000 */ lw $t1, ($s0) +.Ljp7F046220: +/* 07AD90 7F046220 C7B40644 */ lwc1 $f20, 0x644($sp) +/* 07AD94 7F046224 312B0008 */ andi $t3, $t1, 8 +/* 07AD98 7F046228 15600014 */ bnez $t3, .Ljp7F04627C +/* 07AD9C 7F04622C 00000000 */ nop +/* 07ADA0 7F046230 8E640014 */ lw $a0, 0x14($s3) +/* 07ADA4 7F046234 8E650008 */ lw $a1, 8($s3) +/* 07ADA8 7F046238 0FC2CD48 */ jal sub_GAME_7F0B2970 +/* 07ADAC 7F04623C 8E660010 */ lw $a2, 0x10($s3) +/* 07ADB0 7F046240 46000506 */ mov.s $f20, $f0 +/* 07ADB4 7F046244 8FA40648 */ lw $a0, 0x648($sp) +/* 07ADB8 7F046248 0FC0FB2F */ jal sub_GAME_7F03E9BC +/* 07ADBC 7F04624C 8FA50074 */ lw $a1, 0x74($sp) +/* 07ADC0 7F046250 4600A101 */ sub.s $f4, $f20, $f0 +/* 07ADC4 7F046254 E7A00640 */ swc1 $f0, 0x640($sp) +/* 07ADC8 7F046258 C666000C */ lwc1 $f6, 0xc($s3) +/* 07ADCC 7F04625C 00006025 */ move $t4, $zero +/* 07ADD0 7F046260 4604303C */ c.lt.s $f6, $f4 +/* 07ADD4 7F046264 00000000 */ nop +/* 07ADD8 7F046268 45000002 */ bc1f .Ljp7F046274 +/* 07ADDC 7F04626C 00000000 */ nop +/* 07ADE0 7F046270 240C0001 */ li $t4, 1 +.Ljp7F046274: +/* 07ADE4 7F046274 10000001 */ b .Ljp7F04627C +/* 07ADE8 7F046278 AFAC0618 */ sw $t4, 0x618($sp) +.Ljp7F04627C: +/* 07ADEC 7F04627C 8FAE0618 */ lw $t6, 0x618($sp) +/* 07ADF0 7F046280 8FAA066C */ lw $t2, 0x66c($sp) +/* 07ADF4 7F046284 55C00004 */ bnezl $t6, .Ljp7F046298 +/* 07ADF8 7F046288 8E0D0000 */ lw $t5, ($s0) +/* 07ADFC 7F04628C 5540000B */ bnezl $t2, .Ljp7F0462BC +/* 07AE00 7F046290 8FA80618 */ lw $t0, 0x618($sp) +/* 07AE04 7F046294 8E0D0000 */ lw $t5, ($s0) +.Ljp7F046298: +/* 07AE08 7F046298 31AF0200 */ andi $t7, $t5, 0x200 +/* 07AE0C 7F04629C 55E00004 */ bnezl $t7, .Ljp7F0462B0 +/* 07AE10 7F0462A0 8E190090 */ lw $t9, 0x90($s0) +/* 07AE14 7F0462A4 0FC15FF8 */ jal sub_GAME_7F057AC0 +/* 07AE18 7F0462A8 8FA40070 */ lw $a0, 0x70($sp) +/* 07AE1C 7F0462AC 8E190090 */ lw $t9, 0x90($s0) +.Ljp7F0462B0: +/* 07AE20 7F0462B0 27380001 */ addiu $t8, $t9, 1 +/* 07AE24 7F0462B4 AE180090 */ sw $t8, 0x90($s0) +/* 07AE28 7F0462B8 8FA80618 */ lw $t0, 0x618($sp) +.Ljp7F0462BC: +/* 07AE2C 7F0462BC 8FA90614 */ lw $t1, 0x614($sp) +/* 07AE30 7F0462C0 8FAB0618 */ lw $t3, 0x618($sp) +/* 07AE34 7F0462C4 15000003 */ bnez $t0, .Ljp7F0462D4 +/* 07AE38 7F0462C8 00000000 */ nop +/* 07AE3C 7F0462CC 5120003A */ beql $t1, $zero, .Ljp7F0463B8 +/* 07AE40 7F0462D0 92390003 */ lbu $t9, 3($s1) +.Ljp7F0462D4: +/* 07AE44 7F0462D4 11600009 */ beqz $t3, .Ljp7F0462FC +/* 07AE48 7F0462D8 C7A40620 */ lwc1 $f4, 0x620($sp) +/* 07AE4C 7F0462DC C7A80640 */ lwc1 $f8, 0x640($sp) +/* 07AE50 7F0462E0 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07AE54 7F0462E4 44813000 */ mtc1 $at, $f6 +/* 07AE58 7F0462E8 4608A281 */ sub.s $f10, $f20, $f8 +/* 07AE5C 7F0462EC 46065000 */ add.s $f0, $f10, $f6 +/* 07AE60 7F0462F0 E660000C */ swc1 $f0, 0xc($s3) +/* 07AE64 7F0462F4 10000008 */ b .Ljp7F046318 +/* 07AE68 7F0462F8 E620005C */ swc1 $f0, 0x5c($s1) +.Ljp7F0462FC: +/* 07AE6C 7F0462FC C7A80640 */ lwc1 $f8, 0x640($sp) +/* 07AE70 7F046300 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07AE74 7F046304 44813000 */ mtc1 $at, $f6 +/* 07AE78 7F046308 46082281 */ sub.s $f10, $f4, $f8 +/* 07AE7C 7F04630C 46065080 */ add.s $f2, $f10, $f6 +/* 07AE80 7F046310 E662000C */ swc1 $f2, 0xc($s3) +/* 07AE84 7F046314 E622005C */ swc1 $f2, 0x5c($s1) +.Ljp7F046318: +/* 07AE88 7F046318 8E230064 */ lw $v1, 0x64($s1) +/* 07AE8C 7F04631C 02202025 */ move $a0, $s1 +/* 07AE90 7F046320 000363C0 */ sll $t4, $v1, 0xf +/* 07AE94 7F046324 05800002 */ bltz $t4, .Ljp7F046330 +/* 07AE98 7F046328 346E0100 */ ori $t6, $v1, 0x100 +/* 07AE9C 7F04632C AE2E0064 */ sw $t6, 0x64($s1) +.Ljp7F046330: +/* 07AEA0 7F046330 C610008C */ lwc1 $f16, 0x8c($s0) +/* 07AEA4 7F046334 4610B03C */ c.lt.s $f22, $f16 +/* 07AEA8 7F046338 00000000 */ nop +/* 07AEAC 7F04633C 4500001B */ bc1f .Ljp7F0463AC +/* 07AEB0 7F046340 00000000 */ nop +/* 07AEB4 7F046344 C6040008 */ lwc1 $f4, 8($s0) +/* 07AEB8 7F046348 46008207 */ neg.s $f8, $f16 +/* 07AEBC 7F04634C 3C018005 */ lui $at, %hi(D_80052AA8) # $at, 0x8005 +/* 07AEC0 7F046350 46082282 */ mul.s $f10, $f4, $f8 +/* 07AEC4 7F046354 C4202AD8 */ lwc1 $f0, %lo(D_80052AA8)($at) +/* 07AEC8 7F046358 E60A0008 */ swc1 $f10, 8($s0) +/* 07AECC 7F04635C C6060008 */ lwc1 $f6, 8($s0) +/* 07AED0 7F046360 4600303C */ c.lt.s $f6, $f0 +/* 07AED4 7F046364 00000000 */ nop +/* 07AED8 7F046368 45020013 */ bc1fl .Ljp7F0463B8 +/* 07AEDC 7F04636C 92390003 */ lbu $t9, 3($s1) +/* 07AEE0 7F046370 8E0A0000 */ lw $t2, ($s0) +/* 07AEE4 7F046374 02202025 */ move $a0, $s1 +/* 07AEE8 7F046378 314D0002 */ andi $t5, $t2, 2 +/* 07AEEC 7F04637C 11A00007 */ beqz $t5, .Ljp7F04639C +/* 07AEF0 7F046380 00000000 */ nop +/* 07AEF4 7F046384 8E0F0090 */ lw $t7, 0x90($s0) +/* 07AEF8 7F046388 24010001 */ li $at, 1 +/* 07AEFC 7F04638C 15E10003 */ bne $t7, $at, .Ljp7F04639C +/* 07AF00 7F046390 00000000 */ nop +/* 07AF04 7F046394 10000007 */ b .Ljp7F0463B4 +/* 07AF08 7F046398 E6000008 */ swc1 $f0, 8($s0) +.Ljp7F04639C: +/* 07AF0C 7F04639C 0FC10D39 */ jal sub_GAME_7F0431E4 +/* 07AF10 7F0463A0 27A50634 */ addiu $a1, $sp, 0x634 +/* 07AF14 7F0463A4 10000004 */ b .Ljp7F0463B8 +/* 07AF18 7F0463A8 92390003 */ lbu $t9, 3($s1) +.Ljp7F0463AC: +/* 07AF1C 7F0463AC 0FC10D39 */ jal sub_GAME_7F0431E4 +/* 07AF20 7F0463B0 27A50634 */ addiu $a1, $sp, 0x634 +.Ljp7F0463B4: +/* 07AF24 7F0463B4 92390003 */ lbu $t9, 3($s1) +.Ljp7F0463B8: +/* 07AF28 7F0463B8 24010008 */ li $at, 8 +/* 07AF2C 7F0463BC 5721006F */ bnel $t9, $at, .Ljp7F04657C +/* 07AF30 7F0463C0 8E2F0064 */ lw $t7, 0x64($s1) +/* 07AF34 7F0463C4 82220080 */ lb $v0, 0x80($s1) +/* 07AF38 7F0463C8 24010003 */ li $at, 3 +/* 07AF3C 7F0463CC 54410006 */ bnel $v0, $at, .Ljp7F0463E8 +/* 07AF40 7F0463D0 24010056 */ li $at, 86 +/* 07AF44 7F0463D4 0FC10E54 */ jal sub_GAME_7F043650 +/* 07AF48 7F0463D8 02202025 */ move $a0, $s1 +/* 07AF4C 7F0463DC 10000042 */ b .Ljp7F0464E8 +/* 07AF50 7F0463E0 8FAB066C */ lw $t3, 0x66c($sp) +/* 07AF54 7F0463E4 24010056 */ li $at, 86 +.Ljp7F0463E8: +/* 07AF58 7F0463E8 1441002D */ bne $v0, $at, .Ljp7F0464A0 +/* 07AF5C 7F0463EC 8FB8066C */ lw $t8, 0x66c($sp) +/* 07AF60 7F0463F0 13000003 */ beqz $t8, .Ljp7F046400 +/* 07AF64 7F0463F4 8FA80618 */ lw $t0, 0x618($sp) +/* 07AF68 7F0463F8 51000004 */ beql $t0, $zero, .Ljp7F04640C +/* 07AF6C 7F0463FC C6020004 */ lwc1 $f2, 4($s0) +.Ljp7F046400: +/* 07AF70 7F046400 10000038 */ b .Ljp7F0464E4 +/* 07AF74 7F046404 A6200082 */ sh $zero, 0x82($s1) +/* 07AF78 7F046408 C6020004 */ lwc1 $f2, 4($s0) +.Ljp7F04640C: +/* 07AF7C 7F04640C C60C0008 */ lwc1 $f12, 8($s0) +/* 07AF80 7F046410 C600000C */ lwc1 $f0, 0xc($s0) +/* 07AF84 7F046414 46021102 */ mul.s $f4, $f2, $f2 +/* 07AF88 7F046418 3C018005 */ lui $at, %hi(D_80052AAC) +/* 07AF8C 7F04641C 26240058 */ addiu $a0, $s1, 0x58 +/* 07AF90 7F046420 460C6202 */ mul.s $f8, $f12, $f12 +/* 07AF94 7F046424 24060008 */ li $a2, 8 +/* 07AF98 7F046428 46000182 */ mul.s $f6, $f0, $f0 +/* 07AF9C 7F04642C 46082280 */ add.s $f10, $f4, $f8 +/* 07AFA0 7F046430 C4242ADC */ lwc1 $f4, %lo(D_80052AAC)($at) +/* 07AFA4 7F046434 460A3380 */ add.s $f14, $f6, $f10 +/* 07AFA8 7F046438 460E203C */ c.lt.s $f4, $f14 +/* 07AFAC 7F04643C 00000000 */ nop +/* 07AFB0 7F046440 45020005 */ bc1fl .Ljp7F046458 +/* 07AFB4 7F046444 8E0900A8 */ lw $t1, 0xa8($s0) +/* 07AFB8 7F046448 E6160010 */ swc1 $f22, 0x10($s0) +/* 07AFBC 7F04644C E6160014 */ swc1 $f22, 0x14($s0) +/* 07AFC0 7F046450 E6160018 */ swc1 $f22, 0x18($s0) +/* 07AFC4 7F046454 8E0900A8 */ lw $t1, 0xa8($s0) +.Ljp7F046458: +/* 07AFC8 7F046458 2921012D */ slti $at, $t1, 0x12d +/* 07AFCC 7F04645C 54200008 */ bnezl $at, .Ljp7F046480 +/* 07AFD0 7F046460 926E0001 */ lbu $t6, 1($s3) +/* 07AFD4 7F046464 8E0B0000 */ lw $t3, ($s0) +/* 07AFD8 7F046468 2401FFCF */ li $at, -49 +/* 07AFDC 7F04646C E616001C */ swc1 $f22, 0x1c($s0) +/* 07AFE0 7F046470 01616024 */ and $t4, $t3, $at +/* 07AFE4 7F046474 1000001B */ b .Ljp7F0464E4 +/* 07AFE8 7F046478 AE0C0000 */ sw $t4, ($s0) +/* 07AFEC 7F04647C 926E0001 */ lbu $t6, 1($s3) +.Ljp7F046480: +/* 07AFF0 7F046480 8E650014 */ lw $a1, 0x14($s3) +/* 07AFF4 7F046484 2667002C */ addiu $a3, $s3, 0x2c +/* 07AFF8 7F046488 31CA0008 */ andi $t2, $t6, 8 +/* 07AFFC 7F04648C 000A682B */ sltu $t5, $zero, $t2 +/* 07B000 7F046490 0FC27CA9 */ jal sub_GAME_7F09E700 +/* 07B004 7F046494 AFAD0010 */ sw $t5, 0x10($sp) +/* 07B008 7F046498 10000013 */ b .Ljp7F0464E8 +/* 07B00C 7F04649C 8FAB066C */ lw $t3, 0x66c($sp) +.Ljp7F0464A0: +/* 07B010 7F0464A0 24010057 */ li $at, 87 +/* 07B014 7F0464A4 1441000F */ bne $v0, $at, .Ljp7F0464E4 +/* 07B018 7F0464A8 8FAF0618 */ lw $t7, 0x618($sp) +/* 07B01C 7F0464AC 15E00003 */ bnez $t7, .Ljp7F0464BC +/* 07B020 7F0464B0 8FB90614 */ lw $t9, 0x614($sp) +/* 07B024 7F0464B4 13200003 */ beqz $t9, .Ljp7F0464C4 +/* 07B028 7F0464B8 26240058 */ addiu $a0, $s1, 0x58 +.Ljp7F0464BC: +/* 07B02C 7F0464BC 10000009 */ b .Ljp7F0464E4 +/* 07B030 7F0464C0 A6200082 */ sh $zero, 0x82($s1) +.Ljp7F0464C4: +/* 07B034 7F0464C4 92780001 */ lbu $t8, 1($s3) +/* 07B038 7F0464C8 8E650014 */ lw $a1, 0x14($s3) +/* 07B03C 7F0464CC 24060009 */ li $a2, 9 +/* 07B040 7F0464D0 33080008 */ andi $t0, $t8, 8 +/* 07B044 7F0464D4 0008482B */ sltu $t1, $zero, $t0 +/* 07B048 7F0464D8 AFA90010 */ sw $t1, 0x10($sp) +/* 07B04C 7F0464DC 0FC27CA9 */ jal sub_GAME_7F09E700 +/* 07B050 7F0464E0 2667002C */ addiu $a3, $s3, 0x2c +.Ljp7F0464E4: +/* 07B054 7F0464E4 8FAB066C */ lw $t3, 0x66c($sp) +.Ljp7F0464E8: +/* 07B058 7F0464E8 3C128005 */ lui $s2, %hi(D_80048380) # $s2, 0x8005 +/* 07B05C 7F0464EC 265283B0 */ addiu $s2, %lo(D_80048380) # addiu $s2, $s2, -0x7c50 +/* 07B060 7F0464F0 11600003 */ beqz $t3, .Ljp7F046500 +/* 07B064 7F0464F4 8FAC0618 */ lw $t4, 0x618($sp) +/* 07B068 7F0464F8 51800020 */ beql $t4, $zero, .Ljp7F04657C +/* 07B06C 7F0464FC 8E2F0064 */ lw $t7, 0x64($s1) +.Ljp7F046500: +/* 07B070 7F046500 8E420000 */ lw $v0, ($s2) +/* 07B074 7F046504 8E0E00AC */ lw $t6, 0xac($s0) +/* 07B078 7F046508 244AFFFE */ addiu $t2, $v0, -2 +/* 07B07C 7F04650C 01CA082A */ slt $at, $t6, $t2 +/* 07B080 7F046510 50200019 */ beql $at, $zero, .Ljp7F046578 +/* 07B084 7F046514 AE0200AC */ sw $v0, 0xac($s0) +/* 07B088 7F046518 82220080 */ lb $v0, 0x80($s1) +/* 07B08C 7F04651C 266D0008 */ addiu $t5, $s3, 8 +/* 07B090 7F046520 24010003 */ li $at, 3 +/* 07B094 7F046524 10410004 */ beq $v0, $at, .Ljp7F046538 +/* 07B098 7F046528 AFAD0074 */ sw $t5, 0x74($sp) +/* 07B09C 7F04652C 24010002 */ li $at, 2 +/* 07B0A0 7F046530 14410008 */ bne $v0, $at, .Ljp7F046554 +/* 07B0A4 7F046534 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +.Ljp7F046538: +/* 07B0A8 7F046538 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07B0AC 7F04653C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07B0B0 7F046540 24050003 */ li $a1, 3 +/* 07B0B4 7F046544 0C002386 */ jal play_sfx_a1 +/* 07B0B8 7F046548 00003025 */ move $a2, $zero +/* 07B0BC 7F04654C 10000006 */ b .Ljp7F046568 +/* 07B0C0 7F046550 00402025 */ move $a0, $v0 +.Ljp7F046554: +/* 07B0C4 7F046554 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07B0C8 7F046558 2405002D */ li $a1, 45 +/* 07B0CC 7F04655C 0C002386 */ jal play_sfx_a1 +/* 07B0D0 7F046560 00003025 */ move $a2, $zero +/* 07B0D4 7F046564 00402025 */ move $a0, $v0 +.Ljp7F046568: +/* 07B0D8 7F046568 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 07B0DC 7F04656C 8FA50074 */ lw $a1, 0x74($sp) +/* 07B0E0 7F046570 8E420000 */ lw $v0, ($s2) +/* 07B0E4 7F046574 AE0200AC */ sw $v0, 0xac($s0) +.Ljp7F046578: +/* 07B0E8 7F046578 8E2F0064 */ lw $t7, 0x64($s1) +.Ljp7F04657C: +/* 07B0EC 7F04657C 3C128005 */ lui $s2, %hi(D_80048380) # $s2, 0x8005 +/* 07B0F0 7F046580 265283B0 */ addiu $s2, %lo(D_80048380) # addiu $s2, $s2, -0x7c50 +/* 07B0F4 7F046584 31F90080 */ andi $t9, $t7, 0x80 +/* 07B0F8 7F046588 53200125 */ beql $t9, $zero, .Ljp7F046A20 +/* 07B0FC 7F04658C 8FAB0698 */ lw $t3, 0x698($sp) +/* 07B100 7F046590 8E180000 */ lw $t8, ($s0) +/* 07B104 7F046594 33080400 */ andi $t0, $t8, 0x400 +/* 07B108 7F046598 51000121 */ beql $t0, $zero, .Ljp7F046A20 +/* 07B10C 7F04659C 8FAB0698 */ lw $t3, 0x698($sp) +/* 07B110 7F0465A0 8E420000 */ lw $v0, ($s2) +/* 07B114 7F0465A4 3C0143C8 */ li $at, 0x43C80000 # 400.000000 +/* 07B118 7F0465A8 27B0056C */ addiu $s0, $sp, 0x56c +/* 07B11C 7F0465AC 30490007 */ andi $t1, $v0, 7 +/* 07B120 7F0465B0 1520011A */ bnez $t1, .Ljp7F046A1C +/* 07B124 7F0465B4 00002025 */ move $a0, $zero +/* 07B128 7F0465B8 44810000 */ mtc1 $at, $f0 +/* 07B12C 7F0465BC C6280058 */ lwc1 $f8, 0x58($s1) +/* 07B130 7F0465C0 3C0144E1 */ li $at, 0x44E10000 # 1800.000000 +/* 07B134 7F0465C4 44812000 */ mtc1 $at, $f4 +/* 07B138 7F0465C8 46004180 */ add.s $f6, $f8, $f0 +/* 07B13C 7F0465CC 304B000F */ andi $t3, $v0, 0xf +/* 07B140 7F0465D0 E7A6056C */ swc1 $f6, 0x56c($sp) +/* 07B144 7F0465D4 C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07B148 7F0465D8 46045201 */ sub.s $f8, $f10, $f4 +/* 07B14C 7F0465DC E7A80570 */ swc1 $f8, 0x570($sp) +/* 07B150 7F0465E0 C6260060 */ lwc1 $f6, 0x60($s1) +/* 07B154 7F0465E4 15600005 */ bnez $t3, .Ljp7F0465FC +/* 07B158 7F0465E8 E7A60574 */ swc1 $f6, 0x574($sp) +/* 07B15C 7F0465EC C7AA0574 */ lwc1 $f10, 0x574($sp) +/* 07B160 7F0465F0 46005100 */ add.s $f4, $f10, $f0 +/* 07B164 7F0465F4 10000004 */ b .Ljp7F046608 +/* 07B168 7F0465F8 E7A40574 */ swc1 $f4, 0x574($sp) +.Ljp7F0465FC: +/* 07B16C 7F0465FC C7A80574 */ lwc1 $f8, 0x574($sp) +/* 07B170 7F046600 46004181 */ sub.s $f6, $f8, $f0 +/* 07B174 7F046604 E7A60574 */ swc1 $f6, 0x574($sp) +.Ljp7F046608: +/* 07B178 7F046608 8E220010 */ lw $v0, 0x10($s1) +/* 07B17C 7F04660C 02002825 */ move $a1, $s0 +/* 07B180 7F046610 24070014 */ li $a3, 20 +/* 07B184 7F046614 8C460014 */ lw $a2, 0x14($v0) +/* 07B188 7F046618 244C002C */ addiu $t4, $v0, 0x2c +/* 07B18C 7F04661C AFAC0018 */ sw $t4, 0x18($sp) +/* 07B190 7F046620 AFA0001C */ sw $zero, 0x1c($sp) +/* 07B194 7F046624 AFA00014 */ sw $zero, 0x14($sp) +/* 07B198 7F046628 0FC2737C */ jal sub_GAME_7F09C250 +/* 07B19C 7F04662C AFA00010 */ sw $zero, 0x10($sp) +/* 07B1A0 7F046630 8E4E0000 */ lw $t6, ($s2) +/* 07B1A4 7F046634 24010028 */ li $at, 40 +/* 07B1A8 7F046638 02002025 */ move $a0, $s0 +/* 07B1AC 7F04663C 01C1001A */ div $zero, $t6, $at +/* 07B1B0 7F046640 00005010 */ mfhi $t2 +/* 07B1B4 7F046644 554000F6 */ bnezl $t2, .Ljp7F046A20 +/* 07B1B8 7F046648 8FAB0698 */ lw $t3, 0x698($sp) +/* 07B1BC 7F04664C 8E220010 */ lw $v0, 0x10($s1) +/* 07B1C0 7F046650 240D0001 */ li $t5, 1 +/* 07B1C4 7F046654 2406000A */ li $a2, 10 +/* 07B1C8 7F046658 8C450014 */ lw $a1, 0x14($v0) +/* 07B1CC 7F04665C AFAD0010 */ sw $t5, 0x10($sp) +/* 07B1D0 7F046660 0FC27CA9 */ jal sub_GAME_7F09E700 +/* 07B1D4 7F046664 2447002C */ addiu $a3, $v0, 0x2c +/* 07B1D8 7F046668 100000ED */ b .Ljp7F046A20 +/* 07B1DC 7F04666C 8FAB0698 */ lw $t3, 0x698($sp) +/* 07B1E0 7F046670 C6000060 */ lwc1 $f0, 0x60($s0) +.Ljp7F046674: +/* 07B1E4 7F046674 44815000 */ mtc1 $at, $f10 +/* 07B1E8 7F046678 24120001 */ li $s2, 1 +/* 07B1EC 7F04667C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07B1F0 7F046680 460A003C */ c.lt.s $f0, $f10 +/* 07B1F4 7F046684 26040068 */ addiu $a0, $s0, 0x68 +/* 07B1F8 7F046688 26050078 */ addiu $a1, $s0, 0x78 +/* 07B1FC 7F04668C 45020031 */ bc1fl .Ljp7F046754 +/* 07B200 7F046690 C60A0004 */ lwc1 $f10, 4($s0) +/* 07B204 7F046694 C6020064 */ lwc1 $f2, 0x64($s0) +/* 07B208 7F046698 C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07B20C 7F04669C 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 +/* 07B210 7F0466A0 3C018005 */ lui $at, %hi(D_80052AB0) +/* 07B214 7F0466A4 46041202 */ mul.s $f8, $f2, $f4 +/* 07B218 7F0466A8 27B20558 */ addiu $s2, $sp, 0x558 +/* 07B21C 7F0466AC 46080180 */ add.s $f6, $f0, $f8 +/* 07B220 7F0466B0 E6060060 */ swc1 $f6, 0x60($s0) +/* 07B224 7F0466B4 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) +/* 07B228 7F0466B8 59E00005 */ blezl $t7, .Ljp7F0466D0 +/* 07B22C 7F0466BC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07B230 7F0466C0 C42A2AE0 */ lwc1 $f10, %lo(D_80052AB0)($at) +/* 07B234 7F0466C4 460A1102 */ mul.s $f4, $f2, $f10 +/* 07B238 7F0466C8 E6040064 */ swc1 $f4, 0x64($s0) +/* 07B23C 7F0466CC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.Ljp7F0466D0: +/* 07B240 7F0466D0 44814000 */ mtc1 $at, $f8 +/* 07B244 7F0466D4 C6000060 */ lwc1 $f0, 0x60($s0) +/* 07B248 7F0466D8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07B24C 7F0466DC 4600403C */ c.lt.s $f8, $f0 +/* 07B250 7F0466E0 00000000 */ nop +/* 07B254 7F0466E4 45030006 */ bc1tl .Ljp7F046700 +/* 07B258 7F0466E8 44813000 */ mtc1 $at, $f6 +/* 07B25C 7F0466EC 8E190000 */ lw $t9, ($s0) +/* 07B260 7F0466F0 33380008 */ andi $t8, $t9, 8 +/* 07B264 7F0466F4 53000006 */ beql $t8, $zero, .Ljp7F046710 +/* 07B268 7F0466F8 44060000 */ mfc1 $a2, $f0 +/* 07B26C 7F0466FC 44813000 */ mtc1 $at, $f6 +.Ljp7F046700: +/* 07B270 7F046700 00000000 */ nop +/* 07B274 7F046704 E6060060 */ swc1 $f6, 0x60($s0) +/* 07B278 7F046708 C6000060 */ lwc1 $f0, 0x60($s0) +/* 07B27C 7F04670C 44060000 */ mfc1 $a2, $f0 +.Ljp7F046710: +/* 07B280 7F046710 0FC16FCA */ jal quaternion_slerp +/* 07B284 7F046714 02403825 */ move $a3, $s2 +/* 07B288 7F046718 26250018 */ addiu $a1, $s1, 0x18 +/* 07B28C 7F04671C AFA50074 */ sw $a1, 0x74($sp) +/* 07B290 7F046720 0FC16ED2 */ jal quaternion_to_matrix +/* 07B294 7F046724 02402025 */ move $a0, $s2 +/* 07B298 7F046728 C60C00C0 */ lwc1 $f12, 0xc0($s0) +/* 07B29C 7F04672C 0FC163B5 */ jal matrix_column_1_scalar_multiply +/* 07B2A0 7F046730 8FA50074 */ lw $a1, 0x74($sp) +/* 07B2A4 7F046734 C60C00C4 */ lwc1 $f12, 0xc4($s0) +/* 07B2A8 7F046738 0FC163C1 */ jal matrix_column_2_scalar_multiply +/* 07B2AC 7F04673C 8FA50074 */ lw $a1, 0x74($sp) +/* 07B2B0 7F046740 C60C00C8 */ lwc1 $f12, 0xc8($s0) +/* 07B2B4 7F046744 0FC163DB */ jal matrix_column_3_scalar_multiply_2 +/* 07B2B8 7F046748 8FA50074 */ lw $a1, 0x74($sp) +/* 07B2BC 7F04674C 00009025 */ move $s2, $zero +/* 07B2C0 7F046750 C60A0004 */ lwc1 $f10, 4($s0) +.Ljp7F046754: +/* 07B2C4 7F046754 460AB032 */ c.eq.s $f22, $f10 +/* 07B2C8 7F046758 00000000 */ nop +/* 07B2CC 7F04675C 4502000F */ bc1fl .Ljp7F04679C +/* 07B2D0 7F046760 8E080000 */ lw $t0, ($s0) +/* 07B2D4 7F046764 C604000C */ lwc1 $f4, 0xc($s0) +/* 07B2D8 7F046768 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07B2DC 7F04676C 4604B032 */ c.eq.s $f22, $f4 +/* 07B2E0 7F046770 00000000 */ nop +/* 07B2E4 7F046774 45020009 */ bc1fl .Ljp7F04679C +/* 07B2E8 7F046778 8E080000 */ lw $t0, ($s0) +/* 07B2EC 7F04677C C6080060 */ lwc1 $f8, 0x60($s0) +/* 07B2F0 7F046780 44813000 */ mtc1 $at, $f6 +/* 07B2F4 7F046784 00000000 */ nop +/* 07B2F8 7F046788 4606403C */ c.lt.s $f8, $f6 +/* 07B2FC 7F04678C 00000000 */ nop +/* 07B300 7F046790 45000088 */ bc1f .Ljp7F0469B4 +/* 07B304 7F046794 00000000 */ nop +/* 07B308 7F046798 8E080000 */ lw $t0, ($s0) +.Ljp7F04679C: +/* 07B30C 7F04679C 02202025 */ move $a0, $s1 +/* 07B310 7F0467A0 262B0018 */ addiu $t3, $s1, 0x18 +/* 07B314 7F0467A4 31090008 */ andi $t1, $t0, 8 +/* 07B318 7F0467A8 15200082 */ bnez $t1, .Ljp7F0469B4 +/* 07B31C 7F0467AC 00000000 */ nop +/* 07B320 7F0467B0 AFAB0074 */ sw $t3, 0x74($sp) +/* 07B324 7F0467B4 0FC100DE */ jal sub_GAME_7F040078 +/* 07B328 7F0467B8 00009025 */ move $s2, $zero +/* 07B32C 7F0467BC 3C038005 */ lui $v1, %hi(clock_timer) # $v1, 0x8005 +/* 07B330 7F0467C0 8C6383A4 */ lw $v1, %lo(clock_timer)($v1) +/* 07B334 7F0467C4 AFA20554 */ sw $v0, 0x554($sp) +/* 07B338 7F0467C8 00002025 */ move $a0, $zero +/* 07B33C 7F0467CC 18600048 */ blez $v1, .Ljp7F0468F0 +/* 07B340 7F0467D0 3C018005 */ lui $at, %hi(D_80052AB4) # $at, 0x8005 +/* 07B344 7F0467D4 C42E2AE4 */ lwc1 $f14, %lo(D_80052AB4)($at) +/* 07B348 7F0467D8 C7AA069C */ lwc1 $f10, 0x69c($sp) +.Ljp7F0467DC: +/* 07B34C 7F0467DC C6040004 */ lwc1 $f4, 4($s0) +/* 07B350 7F0467E0 C7A606A4 */ lwc1 $f6, 0x6a4($sp) +/* 07B354 7F0467E4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07B358 7F0467E8 46045200 */ add.s $f8, $f10, $f4 +/* 07B35C 7F0467EC E7A8069C */ swc1 $f8, 0x69c($sp) +/* 07B360 7F0467F0 C60A000C */ lwc1 $f10, 0xc($s0) +/* 07B364 7F0467F4 460A3100 */ add.s $f4, $f6, $f10 +/* 07B368 7F0467F8 44813000 */ mtc1 $at, $f6 +/* 07B36C 7F0467FC E7A406A4 */ swc1 $f4, 0x6a4($sp) +/* 07B370 7F046800 C6080060 */ lwc1 $f8, 0x60($s0) +/* 07B374 7F046804 4608303E */ c.le.s $f6, $f8 +/* 07B378 7F046808 00000000 */ nop +/* 07B37C 7F04680C 45020035 */ bc1fl .Ljp7F0468E4 +/* 07B380 7F046810 24840001 */ addiu $a0, $a0, 1 +/* 07B384 7F046814 C60A0094 */ lwc1 $f10, 0x94($s0) +/* 07B388 7F046818 460AB03C */ c.lt.s $f22, $f10 +/* 07B38C 7F04681C 00000000 */ nop +/* 07B390 7F046820 45020027 */ bc1fl .Ljp7F0468C0 +/* 07B394 7F046824 C6060004 */ lwc1 $f6, 4($s0) +/* 07B398 7F046828 C600000C */ lwc1 $f0, 0xc($s0) +/* 07B39C 7F04682C C6020004 */ lwc1 $f2, 4($s0) +/* 07B3A0 7F046830 AFA40550 */ sw $a0, 0x550($sp) +/* 07B3A4 7F046834 46000102 */ mul.s $f4, $f0, $f0 +/* 07B3A8 7F046838 00000000 */ nop +/* 07B3AC 7F04683C 46021202 */ mul.s $f8, $f2, $f2 +/* 07B3B0 7F046840 0C007E08 */ jal sqrtf +/* 07B3B4 7F046844 46082300 */ add.s $f12, $f4, $f8 +/* 07B3B8 7F046848 3C018005 */ lui $at, %hi(D_80052AB8) # $at, 0x8005 +/* 07B3BC 7F04684C C42E2AE8 */ lwc1 $f14, %lo(D_80052AB8)($at) +/* 07B3C0 7F046850 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07B3C4 7F046854 C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07B3C8 7F046858 C6060094 */ lwc1 $f6, 0x94($s0) +/* 07B3CC 7F04685C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07B3D0 7F046860 44814000 */ mtc1 $at, $f8 +/* 07B3D4 7F046864 460A3102 */ mul.s $f4, $f6, $f10 +/* 07B3D8 7F046868 8FA40550 */ lw $a0, 0x550($sp) +/* 07B3DC 7F04686C 3C038005 */ lui $v1, %hi(clock_timer) # $v1, 0x8005 +/* 07B3E0 7F046870 46002303 */ div.s $f12, $f4, $f0 +/* 07B3E4 7F046874 460C403E */ c.le.s $f8, $f12 +/* 07B3E8 7F046878 00000000 */ nop +/* 07B3EC 7F04687C 45020005 */ bc1fl .Ljp7F046894 +/* 07B3F0 7F046880 C6020004 */ lwc1 $f2, 4($s0) +/* 07B3F4 7F046884 E6160004 */ swc1 $f22, 4($s0) +/* 07B3F8 7F046888 1000000A */ b .Ljp7F0468B4 +/* 07B3FC 7F04688C E616000C */ swc1 $f22, 0xc($s0) +/* 07B400 7F046890 C6020004 */ lwc1 $f2, 4($s0) +.Ljp7F046894: +/* 07B404 7F046894 C600000C */ lwc1 $f0, 0xc($s0) +/* 07B408 7F046898 460C1182 */ mul.s $f6, $f2, $f12 +/* 07B40C 7F04689C 00000000 */ nop +/* 07B410 7F0468A0 460C0102 */ mul.s $f4, $f0, $f12 +/* 07B414 7F0468A4 46061281 */ sub.s $f10, $f2, $f6 +/* 07B418 7F0468A8 46040201 */ sub.s $f8, $f0, $f4 +/* 07B41C 7F0468AC E60A0004 */ swc1 $f10, 4($s0) +/* 07B420 7F0468B0 E608000C */ swc1 $f8, 0xc($s0) +.Ljp7F0468B4: +/* 07B424 7F0468B4 1000000A */ b .Ljp7F0468E0 +/* 07B428 7F0468B8 8C6383A4 */ lw $v1, %lo(clock_timer)($v1) +/* 07B42C 7F0468BC C6060004 */ lwc1 $f6, 4($s0) +.Ljp7F0468C0: +/* 07B430 7F0468C0 C604000C */ lwc1 $f4, 0xc($s0) +/* 07B434 7F0468C4 3C038005 */ lui $v1, %hi(clock_timer) # $v1, 0x8005 +/* 07B438 7F0468C8 460E3282 */ mul.s $f10, $f6, $f14 +/* 07B43C 7F0468CC 00000000 */ nop +/* 07B440 7F0468D0 460E2202 */ mul.s $f8, $f4, $f14 +/* 07B444 7F0468D4 E60A0004 */ swc1 $f10, 4($s0) +/* 07B448 7F0468D8 E608000C */ swc1 $f8, 0xc($s0) +/* 07B44C 7F0468DC 8C6383A4 */ lw $v1, %lo(clock_timer)($v1) +.Ljp7F0468E0: +/* 07B450 7F0468E0 24840001 */ addiu $a0, $a0, 1 +.Ljp7F0468E4: +/* 07B454 7F0468E4 0083082A */ slt $at, $a0, $v1 +/* 07B458 7F0468E8 5420FFBC */ bnezl $at, .Ljp7F0467DC +/* 07B45C 7F0468EC C7AA069C */ lwc1 $f10, 0x69c($sp) +.Ljp7F0468F0: +/* 07B460 7F0468F0 02202025 */ move $a0, $s1 +/* 07B464 7F0468F4 27A5069C */ addiu $a1, $sp, 0x69c +/* 07B468 7F0468F8 27A60538 */ addiu $a2, $sp, 0x538 +/* 07B46C 7F0468FC 27A70544 */ addiu $a3, $sp, 0x544 +/* 07B470 7F046900 AFA00010 */ sw $zero, 0x10($sp) +/* 07B474 7F046904 0FC10C6D */ jal sub_GAME_7F042EB4 +/* 07B478 7F046908 AFA00014 */ sw $zero, 0x14($sp) +/* 07B47C 7F04690C 240C0001 */ li $t4, 1 +/* 07B480 7F046910 AFAC0698 */ sw $t4, 0x698($sp) +/* 07B484 7F046914 8E660010 */ lw $a2, 0x10($s3) +/* 07B488 7F046918 8E650008 */ lw $a1, 8($s3) +/* 07B48C 7F04691C 0FC2CD48 */ jal sub_GAME_7F0B2970 +/* 07B490 7F046920 8E640014 */ lw $a0, 0x14($s3) +/* 07B494 7F046924 46000506 */ mov.s $f20, $f0 +/* 07B498 7F046928 8FA40554 */ lw $a0, 0x554($sp) +/* 07B49C 7F04692C 0FC0FB2F */ jal sub_GAME_7F03E9BC +/* 07B4A0 7F046930 8FA50074 */ lw $a1, 0x74($sp) +/* 07B4A4 7F046934 3C018005 */ lui $at, %hi(D_80052ABC) # $at, 0x8005 +/* 07B4A8 7F046938 C42E2AEC */ lwc1 $f14, %lo(D_80052ABC)($at) +/* 07B4AC 7F04693C 4600A181 */ sub.s $f6, $f20, $f0 +/* 07B4B0 7F046940 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07B4B4 7F046944 44815000 */ mtc1 $at, $f10 +/* 07B4B8 7F046948 3C018005 */ lui $at, %hi(D_80052AC0) # $at, 0x8005 +/* 07B4BC 7F04694C 460A3300 */ add.s $f12, $f6, $f10 +/* 07B4C0 7F046950 E66C000C */ swc1 $f12, 0xc($s3) +/* 07B4C4 7F046954 E62C005C */ swc1 $f12, 0x5c($s1) +/* 07B4C8 7F046958 C6020004 */ lwc1 $f2, 4($s0) +/* 07B4CC 7F04695C 460E103C */ c.lt.s $f2, $f14 +/* 07B4D0 7F046960 00000000 */ nop +/* 07B4D4 7F046964 45000013 */ bc1f .Ljp7F0469B4 +/* 07B4D8 7F046968 00000000 */ nop +/* 07B4DC 7F04696C C4242AF0 */ lwc1 $f4, %lo(D_80052AC0)($at) +/* 07B4E0 7F046970 4602203C */ c.lt.s $f4, $f2 +/* 07B4E4 7F046974 00000000 */ nop +/* 07B4E8 7F046978 4500000E */ bc1f .Ljp7F0469B4 +/* 07B4EC 7F04697C 00000000 */ nop +/* 07B4F0 7F046980 C600000C */ lwc1 $f0, 0xc($s0) +/* 07B4F4 7F046984 3C018005 */ lui $at, %hi(D_80052AC4) # $at, 0x8005 +/* 07B4F8 7F046988 460E003C */ c.lt.s $f0, $f14 +/* 07B4FC 7F04698C 00000000 */ nop +/* 07B500 7F046990 45000008 */ bc1f .Ljp7F0469B4 +/* 07B504 7F046994 00000000 */ nop +/* 07B508 7F046998 C4282AF4 */ lwc1 $f8, %lo(D_80052AC4)($at) +/* 07B50C 7F04699C 4600403C */ c.lt.s $f8, $f0 +/* 07B510 7F0469A0 00000000 */ nop +/* 07B514 7F0469A4 45000003 */ bc1f .Ljp7F0469B4 +/* 07B518 7F0469A8 00000000 */ nop +/* 07B51C 7F0469AC E616000C */ swc1 $f22, 0xc($s0) +/* 07B520 7F0469B0 E6160004 */ swc1 $f22, 4($s0) +.Ljp7F0469B4: +/* 07B524 7F0469B4 16400005 */ bnez $s2, .Ljp7F0469CC +/* 07B528 7F0469B8 00000000 */ nop +/* 07B52C 7F0469BC 8E0E0000 */ lw $t6, ($s0) +/* 07B530 7F0469C0 31CA0008 */ andi $t2, $t6, 8 +/* 07B534 7F0469C4 51400016 */ beql $t2, $zero, .Ljp7F046A20 +/* 07B538 7F0469C8 8FAB0698 */ lw $t3, 0x698($sp) +.Ljp7F0469CC: +/* 07B53C 7F0469CC 0FC0FF9C */ jal sub_GAME_7F03FB70 +/* 07B540 7F0469D0 02002025 */ move $a0, $s0 +/* 07B544 7F0469D4 8E2D0064 */ lw $t5, 0x64($s1) +/* 07B548 7F0469D8 2401FF7F */ li $at, -129 +/* 07B54C 7F0469DC AE20006C */ sw $zero, 0x6c($s1) +/* 07B550 7F0469E0 01A17824 */ and $t7, $t5, $at +/* 07B554 7F0469E4 AE2F0064 */ sw $t7, 0x64($s1) +/* 07B558 7F0469E8 92620001 */ lbu $v0, 1($s3) +/* 07B55C 7F0469EC 30590008 */ andi $t9, $v0, 8 +/* 07B560 7F0469F0 13200002 */ beqz $t9, .Ljp7F0469FC +/* 07B564 7F0469F4 34580010 */ ori $t8, $v0, 0x10 +/* 07B568 7F0469F8 A2780001 */ sb $t8, 1($s3) +.Ljp7F0469FC: +/* 07B56C 7F0469FC 92280003 */ lbu $t0, 3($s1) +/* 07B570 7F046A00 24010008 */ li $at, 8 +/* 07B574 7F046A04 55010006 */ bnel $t0, $at, .Ljp7F046A20 +/* 07B578 7F046A08 8FAB0698 */ lw $t3, 0x698($sp) +/* 07B57C 7F046A0C 8E690014 */ lw $t1, 0x14($s3) +/* 07B580 7F046A10 82240080 */ lb $a0, 0x80($s1) +/* 07B584 7F046A14 0FC15F41 */ jal sub_GAME_7F0577E8 +/* 07B588 7F046A18 91250003 */ lbu $a1, 3($t1) +.Ljp7F046A1C: +/* 07B58C 7F046A1C 8FAB0698 */ lw $t3, 0x698($sp) +.Ljp7F046A20: +/* 07B590 7F046A20 1160000B */ beqz $t3, .Ljp7F046A50 +/* 07B594 7F046A24 262C0058 */ addiu $t4, $s1, 0x58 +/* 07B598 7F046A28 AFAC0074 */ sw $t4, 0x74($sp) +/* 07B59C 7F046A2C 0FC101E1 */ jal sub_GAME_7F040484 +/* 07B5A0 7F046A30 02202025 */ move $a0, $s1 +/* 07B5A4 7F046A34 0FC15C68 */ jal sub_GAME_7F056CA0 +/* 07B5A8 7F046A38 02202025 */ move $a0, $s1 +/* 07B5AC 7F046A3C 8E240010 */ lw $a0, 0x10($s1) +/* 07B5B0 7F046A40 0FC1016D */ jal sub_GAME_7F0402B4 +/* 07B5B4 7F046A44 2625007C */ addiu $a1, $s1, 0x7c +/* 07B5B8 7F046A48 0FC14832 */ jal detonate_proxmine_In_range +/* 07B5BC 7F046A4C 8FA40074 */ lw $a0, 0x74($sp) +.Ljp7F046A50: +/* 07B5C0 7F046A50 92220003 */ lbu $v0, 3($s1) +/* 07B5C4 7F046A54 24010001 */ li $at, 1 +/* 07B5C8 7F046A58 54410052 */ bnel $v0, $at, .Ljp7F046BA4 +/* 07B5CC 7F046A5C 24010006 */ li $at, 6 +/* 07B5D0 7F046A60 8E700004 */ lw $s0, 4($s3) +/* 07B5D4 7F046A64 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07B5D8 7F046A68 E7A60684 */ swc1 $f6, 0x684($sp) +/* 07B5DC 7F046A6C 8E0200EC */ lw $v0, 0xec($s0) +/* 07B5E0 7F046A70 58400013 */ blezl $v0, .Ljp7F046AC0 +/* 07B5E4 7F046A74 820800BC */ lb $t0, 0xbc($s0) +/* 07B5E8 7F046A78 820E00BC */ lb $t6, 0xbc($s0) +/* 07B5EC 7F046A7C 55C00010 */ bnezl $t6, .Ljp7F046AC0 +/* 07B5F0 7F046A80 820800BC */ lb $t0, 0xbc($s0) +/* 07B5F4 7F046A84 8E0A0008 */ lw $t2, 8($s0) +/* 07B5F8 7F046A88 3C0F8005 */ lui $t7, %hi(global_timer) # $t7, 0x8005 +/* 07B5FC 7F046A8C 000A6800 */ sll $t5, $t2, 0 +/* 07B600 7F046A90 05A2000B */ bltzl $t5, .Ljp7F046AC0 +/* 07B604 7F046A94 820800BC */ lb $t0, 0xbc($s0) +/* 07B608 7F046A98 8DEF83AC */ lw $t7, %lo(global_timer)($t7) +/* 07B60C 7F046A9C 8E1900A0 */ lw $t9, 0xa0($s0) +/* 07B610 7F046AA0 02002025 */ move $a0, $s0 +/* 07B614 7F046AA4 01F9C023 */ subu $t8, $t7, $t9 +/* 07B618 7F046AA8 0058082A */ slt $at, $v0, $t8 +/* 07B61C 7F046AAC 50200004 */ beql $at, $zero, .Ljp7F046AC0 +/* 07B620 7F046AB0 820800BC */ lb $t0, 0xbc($s0) +/* 07B624 7F046AB4 0FC153A1 */ jal set_door_state +/* 07B628 7F046AB8 24050002 */ li $a1, 2 +/* 07B62C 7F046ABC 820800BC */ lb $t0, 0xbc($s0) +.Ljp7F046AC0: +/* 07B630 7F046AC0 24010003 */ li $at, 3 +/* 07B634 7F046AC4 5501001B */ bnel $t0, $at, .Ljp7F046B34 +/* 07B638 7F046AC8 960B009A */ lhu $t3, 0x9a($s0) +/* 07B63C 7F046ACC 8E0200C8 */ lw $v0, 0xc8($s0) +/* 07B640 7F046AD0 24030001 */ li $v1, 1 +/* 07B644 7F046AD4 02002025 */ move $a0, $s0 +/* 07B648 7F046AD8 10400011 */ beqz $v0, .Ljp7F046B20 +/* 07B64C 7F046ADC 00000000 */ nop +/* 07B650 7F046AE0 1050000F */ beq $v0, $s0, .Ljp7F046B20 +/* 07B654 7F046AE4 00000000 */ nop +/* 07B658 7F046AE8 804900BC */ lb $t1, 0xbc($v0) +.Ljp7F046AEC: +/* 07B65C 7F046AEC 55200007 */ bnezl $t1, .Ljp7F046B0C +/* 07B660 7F046AF0 00001825 */ move $v1, $zero +/* 07B664 7F046AF4 C44A00B4 */ lwc1 $f10, 0xb4($v0) +/* 07B668 7F046AF8 460AB03C */ c.lt.s $f22, $f10 +/* 07B66C 7F046AFC 00000000 */ nop +/* 07B670 7F046B00 45020003 */ bc1fl .Ljp7F046B10 +/* 07B674 7F046B04 8C4200C8 */ lw $v0, 0xc8($v0) +/* 07B678 7F046B08 00001825 */ move $v1, $zero +.Ljp7F046B0C: +/* 07B67C 7F046B0C 8C4200C8 */ lw $v0, 0xc8($v0) +.Ljp7F046B10: +/* 07B680 7F046B10 10400003 */ beqz $v0, .Ljp7F046B20 +/* 07B684 7F046B14 00000000 */ nop +/* 07B688 7F046B18 5450FFF4 */ bnel $v0, $s0, .Ljp7F046AEC +/* 07B68C 7F046B1C 804900BC */ lb $t1, 0xbc($v0) +.Ljp7F046B20: +/* 07B690 7F046B20 50600004 */ beql $v1, $zero, .Ljp7F046B34 +/* 07B694 7F046B24 960B009A */ lhu $t3, 0x9a($s0) +/* 07B698 7F046B28 0FC15368 */ jal sub_GAME_7F0548A4 +/* 07B69C 7F046B2C 24050001 */ li $a1, 1 +/* 07B6A0 7F046B30 960B009A */ lhu $t3, 0x9a($s0) +.Ljp7F046B34: +/* 07B6A4 7F046B34 24010008 */ li $at, 8 +/* 07B6A8 7F046B38 1561000B */ bne $t3, $at, .Ljp7F046B68 +/* 07B6AC 7F046B3C 00000000 */ nop +/* 07B6B0 7F046B40 0FC153C7 */ jal sub_GAME_7F054A20 +/* 07B6B4 7F046B44 02002025 */ move $a0, $s0 +/* 07B6B8 7F046B48 10400007 */ beqz $v0, .Ljp7F046B68 +/* 07B6BC 7F046B4C 00000000 */ nop +/* 07B6C0 7F046B50 0FC0FA86 */ jal sub_GAME_7F03E718 +/* 07B6C4 7F046B54 02002025 */ move $a0, $s0 +/* 07B6C8 7F046B58 10400003 */ beqz $v0, .Ljp7F046B68 +/* 07B6CC 7F046B5C 00000000 */ nop +/* 07B6D0 7F046B60 0FC157A6 */ jal sub_GAME_7F05599C +/* 07B6D4 7F046B64 02602025 */ move $a0, $s3 +.Ljp7F046B68: +/* 07B6D8 7F046B68 3C0E8005 */ lui $t6, %hi(global_timer) # $t6, 0x8005 +/* 07B6DC 7F046B6C 8DCE83AC */ lw $t6, %lo(global_timer)($t6) +/* 07B6E0 7F046B70 8E0C00FC */ lw $t4, 0xfc($s0) +/* 07B6E4 7F046B74 3C0A8005 */ lui $t2, %hi(clock_timer) # $t2, 0x8005 +/* 07B6E8 7F046B78 018E082A */ slt $at, $t4, $t6 +/* 07B6EC 7F046B7C 14200004 */ bnez $at, .Ljp7F046B90 +/* 07B6F0 7F046B80 00000000 */ nop +/* 07B6F4 7F046B84 8D4A83A4 */ lw $t2, %lo(clock_timer)($t2) +/* 07B6F8 7F046B88 554006AA */ bnezl $t2, .Ljp7F048634 +/* 07B6FC 7F046B8C 92220003 */ lbu $v0, 3($s1) +.Ljp7F046B90: +/* 07B700 7F046B90 0FC1552C */ jal sub_GAME_7F054FB4 +/* 07B704 7F046B94 02002025 */ move $a0, $s0 +/* 07B708 7F046B98 100006A6 */ b .Ljp7F048634 +/* 07B70C 7F046B9C 92220003 */ lbu $v0, 3($s1) +/* 07B710 7F046BA0 24010006 */ li $at, 6 +.Ljp7F046BA4: +/* 07B714 7F046BA4 54410130 */ bnel $v0, $at, .Ljp7F047068 +/* 07B718 7F046BA8 2401000D */ li $at, 13 +/* 07B71C 7F046BAC 8E2D0008 */ lw $t5, 8($s1) +/* 07B720 7F046BB0 000D78C0 */ sll $t7, $t5, 3 +/* 07B724 7F046BB4 05E2012C */ bltzl $t7, .Ljp7F047068 +/* 07B728 7F046BB8 2401000D */ li $at, 13 +/* 07B72C 7F046BBC 8E700004 */ lw $s0, 4($s3) +/* 07B730 7F046BC0 8E1900D4 */ lw $t9, 0xd4($s0) +/* 07B734 7F046BC4 53200004 */ beql $t9, $zero, .Ljp7F046BD8 +/* 07B738 7F046BC8 C61200D0 */ lwc1 $f18, 0xd0($s0) +/* 07B73C 7F046BCC 10000002 */ b .Ljp7F046BD8 +/* 07B740 7F046BD0 C61200CC */ lwc1 $f18, 0xcc($s0) +/* 07B744 7F046BD4 C61200D0 */ lwc1 $f18, 0xd0($s0) +.Ljp7F046BD8: +/* 07B748 7F046BD8 0FC2279B */ jal get_curplayer_positiondata +/* 07B74C 7F046BDC E7B2051C */ swc1 $f18, 0x51c($sp) +/* 07B750 7F046BE0 AFA20518 */ sw $v0, 0x518($sp) +/* 07B754 7F046BE4 C6280058 */ lwc1 $f8, 0x58($s1) +/* 07B758 7F046BE8 C4440008 */ lwc1 $f4, 8($v0) +/* 07B75C 7F046BEC C60000E8 */ lwc1 $f0, 0xe8($s0) +/* 07B760 7F046BF0 C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07B764 7F046BF4 46082301 */ sub.s $f12, $f4, $f8 +/* 07B768 7F046BF8 C446000C */ lwc1 $f6, 0xc($v0) +/* 07B76C 7F046BFC C6280060 */ lwc1 $f8, 0x60($s1) +/* 07B770 7F046C00 4600B03C */ c.lt.s $f22, $f0 +/* 07B774 7F046C04 C4440010 */ lwc1 $f4, 0x10($v0) +/* 07B778 7F046C08 C7B2051C */ lwc1 $f18, 0x51c($sp) +/* 07B77C 7F046C0C 24120001 */ li $s2, 1 +/* 07B780 7F046C10 460A3081 */ sub.s $f2, $f6, $f10 +/* 07B784 7F046C14 4500000E */ bc1f .Ljp7F046C50 +/* 07B788 7F046C18 46082381 */ sub.s $f14, $f4, $f8 +/* 07B78C 7F046C1C 46000182 */ mul.s $f6, $f0, $f0 +/* 07B790 7F046C20 00000000 */ nop +/* 07B794 7F046C24 460C6282 */ mul.s $f10, $f12, $f12 +/* 07B798 7F046C28 00000000 */ nop +/* 07B79C 7F046C2C 46021102 */ mul.s $f4, $f2, $f2 +/* 07B7A0 7F046C30 46045200 */ add.s $f8, $f10, $f4 +/* 07B7A4 7F046C34 460E7282 */ mul.s $f10, $f14, $f14 +/* 07B7A8 7F046C38 460A4100 */ add.s $f4, $f8, $f10 +/* 07B7AC 7F046C3C 4604303C */ c.lt.s $f6, $f4 +/* 07B7B0 7F046C40 00000000 */ nop +/* 07B7B4 7F046C44 45000002 */ bc1f .Ljp7F046C50 +/* 07B7B8 7F046C48 00000000 */ nop +/* 07B7BC 7F046C4C 00009025 */ move $s2, $zero +.Ljp7F046C50: +/* 07B7C0 7F046C50 8E380008 */ lw $t8, 8($s1) +/* 07B7C4 7F046C54 00184080 */ sll $t0, $t8, 2 +/* 07B7C8 7F046C58 05010002 */ bgez $t0, .Ljp7F046C64 +/* 07B7CC 7F046C5C 00000000 */ nop +/* 07B7D0 7F046C60 00009025 */ move $s2, $zero +.Ljp7F046C64: +/* 07B7D4 7F046C64 1240003A */ beqz $s2, .Ljp7F046D50 +/* 07B7D8 7F046C68 00000000 */ nop +/* 07B7DC 7F046C6C 0FC16BD4 */ jal atan2f +/* 07B7E0 7F046C70 E7B2051C */ swc1 $f18, 0x51c($sp) +/* 07B7E4 7F046C74 C60200C8 */ lwc1 $f2, 0xc8($s0) +/* 07B7E8 7F046C78 C7B2051C */ lwc1 $f18, 0x51c($sp) +/* 07B7EC 7F046C7C 3C018005 */ lui $at, %hi(D_80052ACC) +/* 07B7F0 7F046C80 4616103C */ c.lt.s $f2, $f22 +/* 07B7F4 7F046C84 00000000 */ nop +/* 07B7F8 7F046C88 45000005 */ bc1f .Ljp7F046CA0 +/* 07B7FC 7F046C8C 00000000 */ nop +/* 07B800 7F046C90 3C018005 */ lui $at, %hi(D_80052AC8) # $at, 0x8005 +/* 07B804 7F046C94 C4342AF8 */ lwc1 $f20, %lo(D_80052AC8)($at) +/* 07B808 7F046C98 10000007 */ b .Ljp7F046CB8 +/* 07B80C 7F046C9C 46141080 */ add.s $f2, $f2, $f20 +.Ljp7F046CA0: +/* 07B810 7F046CA0 C4342AFC */ lwc1 $f20, %lo(D_80052ACC)($at) +/* 07B814 7F046CA4 4602A03E */ c.le.s $f20, $f2 +/* 07B818 7F046CA8 00000000 */ nop +/* 07B81C 7F046CAC 45020003 */ bc1fl .Ljp7F046CBC +/* 07B820 7F046CB0 C60800C4 */ lwc1 $f8, 0xc4($s0) +/* 07B824 7F046CB4 46141081 */ sub.s $f2, $f2, $f20 +.Ljp7F046CB8: +/* 07B828 7F046CB8 C60800C4 */ lwc1 $f8, 0xc4($s0) +.Ljp7F046CBC: +/* 07B82C 7F046CBC 3C018005 */ lui $at, %hi(D_80052AD0) # $at, 0x8005 +/* 07B830 7F046CC0 46081080 */ add.s $f2, $f2, $f8 +/* 07B834 7F046CC4 4602A03E */ c.le.s $f20, $f2 +/* 07B838 7F046CC8 00000000 */ nop +/* 07B83C 7F046CCC 45020003 */ bc1fl .Ljp7F046CDC +/* 07B840 7F046CD0 4602003C */ c.lt.s $f0, $f2 +/* 07B844 7F046CD4 46141081 */ sub.s $f2, $f2, $f20 +/* 07B848 7F046CD8 4602003C */ c.lt.s $f0, $f2 +.Ljp7F046CDC: +/* 07B84C 7F046CDC 46020381 */ sub.s $f14, $f0, $f2 +/* 07B850 7F046CE0 45000002 */ bc1f .Ljp7F046CEC +/* 07B854 7F046CE4 46007306 */ mov.s $f12, $f14 +/* 07B858 7F046CE8 46147300 */ add.s $f12, $f14, $f20 +.Ljp7F046CEC: +/* 07B85C 7F046CEC C4202B00 */ lwc1 $f0, %lo(D_80052AD0)($at) +/* 07B860 7F046CF0 3C018005 */ lui $at, %hi(D_80052AD4) # $at, 0x8005 +/* 07B864 7F046CF4 46006301 */ sub.s $f12, $f12, $f0 +/* 07B868 7F046CF8 4616603C */ c.lt.s $f12, $f22 +/* 07B86C 7F046CFC 00000000 */ nop +/* 07B870 7F046D00 45020003 */ bc1fl .Ljp7F046D10 +/* 07B874 7F046D04 460C003C */ c.lt.s $f0, $f12 +/* 07B878 7F046D08 46146300 */ add.s $f12, $f12, $f20 +/* 07B87C 7F046D0C 460C003C */ c.lt.s $f0, $f12 +.Ljp7F046D10: +/* 07B880 7F046D10 00000000 */ nop +/* 07B884 7F046D14 45000002 */ bc1f .Ljp7F046D20 +/* 07B888 7F046D18 00000000 */ nop +/* 07B88C 7F046D1C 46146301 */ sub.s $f12, $f12, $f20 +.Ljp7F046D20: +/* 07B890 7F046D20 C42A2B04 */ lwc1 $f10, %lo(D_80052AD4)($at) +/* 07B894 7F046D24 3C018005 */ lui $at, %hi(D_80052AD8) +/* 07B898 7F046D28 460C503C */ c.lt.s $f10, $f12 +/* 07B89C 7F046D2C 00000000 */ nop +/* 07B8A0 7F046D30 45030007 */ bc1tl .Ljp7F046D50 +/* 07B8A4 7F046D34 00009025 */ move $s2, $zero +/* 07B8A8 7F046D38 C4262B08 */ lwc1 $f6, %lo(D_80052AD8)($at) +/* 07B8AC 7F046D3C 4606603C */ c.lt.s $f12, $f6 +/* 07B8B0 7F046D40 00000000 */ nop +/* 07B8B4 7F046D44 45000002 */ bc1f .Ljp7F046D50 +/* 07B8B8 7F046D48 00000000 */ nop +/* 07B8BC 7F046D4C 00009025 */ move $s2, $zero +.Ljp7F046D50: +/* 07B8C0 7F046D50 12400034 */ beqz $s2, .Ljp7F046E24 +/* 07B8C4 7F046D54 00002825 */ move $a1, $zero +/* 07B8C8 7F046D58 8E690014 */ lw $t1, 0x14($s3) +/* 07B8CC 7F046D5C E7B2051C */ swc1 $f18, 0x51c($sp) +/* 07B8D0 7F046D60 8FA40518 */ lw $a0, 0x518($sp) +/* 07B8D4 7F046D64 0FC229DD */ jal sub_GAME_7F08A03C +/* 07B8D8 7F046D68 AFA904F4 */ sw $t1, 0x4f4($sp) +/* 07B8DC 7F046D6C 8FA20518 */ lw $v0, 0x518($sp) +/* 07B8E0 7F046D70 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 07B8E4 7F046D74 8E650008 */ lw $a1, 8($s3) +/* 07B8E8 7F046D78 C4440010 */ lwc1 $f4, 0x10($v0) +/* 07B8EC 7F046D7C 8E660010 */ lw $a2, 0x10($s3) +/* 07B8F0 7F046D80 8C470008 */ lw $a3, 8($v0) +/* 07B8F4 7F046D84 44814000 */ mtc1 $at, $f8 +/* 07B8F8 7F046D88 44815000 */ mtc1 $at, $f10 +/* 07B8FC 7F046D8C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07B900 7F046D90 44813000 */ mtc1 $at, $f6 +/* 07B904 7F046D94 240B001B */ li $t3, 27 +/* 07B908 7F046D98 AFAB0014 */ sw $t3, 0x14($sp) +/* 07B90C 7F046D9C E7B60020 */ swc1 $f22, 0x20($sp) +/* 07B910 7F046DA0 27A404F4 */ addiu $a0, $sp, 0x4f4 +/* 07B914 7F046DA4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 07B918 7F046DA8 E7A80018 */ swc1 $f8, 0x18($sp) +/* 07B91C 7F046DAC E7AA001C */ swc1 $f10, 0x1c($sp) +/* 07B920 7F046DB0 0FC2C675 */ jal sub_GAME_7F0B0E24 +/* 07B924 7F046DB4 E7A60024 */ swc1 $f6, 0x24($sp) +/* 07B928 7F046DB8 10400015 */ beqz $v0, .Ljp7F046E10 +/* 07B92C 7F046DBC C7B2051C */ lwc1 $f18, 0x51c($sp) +/* 07B930 7F046DC0 3C0E8005 */ lui $t6, %hi(clock_timer) # $t6, 0x8005 +/* 07B934 7F046DC4 8DCE83A4 */ lw $t6, %lo(clock_timer)($t6) +/* 07B938 7F046DC8 8E0C00E0 */ lw $t4, 0xe0($s0) +/* 07B93C 7F046DCC 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 07B940 7F046DD0 44812000 */ mtc1 $at, $f4 +/* 07B944 7F046DD4 018E5021 */ addu $t2, $t4, $t6 +/* 07B948 7F046DD8 AE0A00E0 */ sw $t2, 0xe0($s0) +/* 07B94C 7F046DDC 3C018003 */ lui $at, %hi(D_80030B14) # $at, 0x8003 +/* 07B950 7F046DE0 C4280B54 */ lwc1 $f8, %lo(D_80030B14)($at) +/* 07B954 7F046DE4 46082282 */ mul.s $f10, $f4, $f8 +/* 07B958 7F046DE8 4600518D */ trunc.w.s $f6, $f10 +/* 07B95C 7F046DEC 44193000 */ mfc1 $t9, $f6 +/* 07B960 7F046DF0 00000000 */ nop +/* 07B964 7F046DF4 0159082A */ slt $at, $t2, $t9 +/* 07B968 7F046DF8 54200006 */ bnezl $at, .Ljp7F046E14 +/* 07B96C 7F046DFC 8FA40518 */ lw $a0, 0x518($sp) +/* 07B970 7F046E00 0FC158B1 */ jal start_alarm +/* 07B974 7F046E04 E7B2051C */ swc1 $f18, 0x51c($sp) +/* 07B978 7F046E08 C7B2051C */ lwc1 $f18, 0x51c($sp) +/* 07B97C 7F046E0C AE0000E0 */ sw $zero, 0xe0($s0) +.Ljp7F046E10: +/* 07B980 7F046E10 8FA40518 */ lw $a0, 0x518($sp) +.Ljp7F046E14: +/* 07B984 7F046E14 24050001 */ li $a1, 1 +/* 07B988 7F046E18 0FC229DD */ jal sub_GAME_7F08A03C +/* 07B98C 7F046E1C E7B2051C */ swc1 $f18, 0x51c($sp) +/* 07B990 7F046E20 C7B2051C */ lwc1 $f18, 0x51c($sp) +.Ljp7F046E24: +/* 07B994 7F046E24 C60E00C8 */ lwc1 $f14, 0xc8($s0) +/* 07B998 7F046E28 4612703C */ c.lt.s $f14, $f18 +/* 07B99C 7F046E2C 00000000 */ nop +/* 07B9A0 7F046E30 45020047 */ bc1fl .Ljp7F046F50 +/* 07B9A4 7F046E34 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B9A8 7F046E38 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B9AC 7F046E3C 3C018005 */ lui $at, %hi(D_80052AE0) # $at, 0x8005 +/* 07B9B0 7F046E40 C4302B10 */ lwc1 $f16, %lo(D_80052AE0)($at) +/* 07B9B4 7F046E44 46000102 */ mul.s $f4, $f0, $f0 +/* 07B9B8 7F046E48 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07B9BC 7F046E4C 44814000 */ mtc1 $at, $f8 +/* 07B9C0 7F046E50 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07B9C4 7F046E54 46082282 */ mul.s $f10, $f4, $f8 +/* 07B9C8 7F046E58 46105083 */ div.s $f2, $f10, $f16 +/* 07B9CC 7F046E5C 46029181 */ sub.s $f6, $f18, $f2 +/* 07B9D0 7F046E60 460E303E */ c.le.s $f6, $f14 +/* 07B9D4 7F046E64 00000000 */ nop +/* 07B9D8 7F046E68 4502000F */ bc1fl .Ljp7F046EA8 +/* 07B9DC 7F046E6C C60C00DC */ lwc1 $f12, 0xdc($s0) +/* 07B9E0 7F046E70 C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07B9E4 7F046E74 46048202 */ mul.s $f8, $f16, $f4 +/* 07B9E8 7F046E78 46080281 */ sub.s $f10, $f0, $f8 +/* 07B9EC 7F046E7C E60A00D8 */ swc1 $f10, 0xd8($s0) +/* 07B9F0 7F046E80 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B9F4 7F046E84 4610003C */ c.lt.s $f0, $f16 +/* 07B9F8 7F046E88 00000000 */ nop +/* 07B9FC 7F046E8C 45000003 */ bc1f .Ljp7F046E9C +/* 07BA00 7F046E90 00000000 */ nop +/* 07BA04 7F046E94 E61000D8 */ swc1 $f16, 0xd8($s0) +/* 07BA08 7F046E98 C60000D8 */ lwc1 $f0, 0xd8($s0) +.Ljp7F046E9C: +/* 07BA0C 7F046E9C 1000001D */ b .Ljp7F046F14 +/* 07BA10 7F046EA0 C60E00C8 */ lwc1 $f14, 0xc8($s0) +/* 07BA14 7F046EA4 C60C00DC */ lwc1 $f12, 0xdc($s0) +.Ljp7F046EA8: +/* 07BA18 7F046EA8 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07BA1C 7F046EAC 460C003C */ c.lt.s $f0, $f12 +/* 07BA20 7F046EB0 00000000 */ nop +/* 07BA24 7F046EB4 45000017 */ bc1f .Ljp7F046F14 +/* 07BA28 7F046EB8 00000000 */ nop +/* 07BA2C 7F046EBC C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 07BA30 7F046EC0 46068102 */ mul.s $f4, $f16, $f6 +/* 07BA34 7F046EC4 46040080 */ add.s $f2, $f0, $f4 +/* 07BA38 7F046EC8 4602603C */ c.lt.s $f12, $f2 +/* 07BA3C 7F046ECC 00000000 */ nop +/* 07BA40 7F046ED0 45000002 */ bc1f .Ljp7F046EDC +/* 07BA44 7F046ED4 00000000 */ nop +/* 07BA48 7F046ED8 46006086 */ mov.s $f2, $f12 +.Ljp7F046EDC: +/* 07BA4C 7F046EDC 46021202 */ mul.s $f8, $f2, $f2 +/* 07BA50 7F046EE0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07BA54 7F046EE4 44815000 */ mtc1 $at, $f10 +/* 07BA58 7F046EE8 00000000 */ nop +/* 07BA5C 7F046EEC 460A4182 */ mul.s $f6, $f8, $f10 +/* 07BA60 7F046EF0 46103103 */ div.s $f4, $f6, $f16 +/* 07BA64 7F046EF4 46049201 */ sub.s $f8, $f18, $f4 +/* 07BA68 7F046EF8 4608703C */ c.lt.s $f14, $f8 +/* 07BA6C 7F046EFC 00000000 */ nop +/* 07BA70 7F046F00 45000004 */ bc1f .Ljp7F046F14 +/* 07BA74 7F046F04 00000000 */ nop +/* 07BA78 7F046F08 E60200D8 */ swc1 $f2, 0xd8($s0) +/* 07BA7C 7F046F0C C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07BA80 7F046F10 C60E00C8 */ lwc1 $f14, 0xc8($s0) +.Ljp7F046F14: +/* 07BA84 7F046F14 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07BA88 7F046F18 C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07BA8C 7F046F1C 460A0182 */ mul.s $f6, $f0, $f10 +/* 07BA90 7F046F20 46067100 */ add.s $f4, $f14, $f6 +/* 07BA94 7F046F24 E60400C8 */ swc1 $f4, 0xc8($s0) +/* 07BA98 7F046F28 C60800C8 */ lwc1 $f8, 0xc8($s0) +/* 07BA9C 7F046F2C 4608903E */ c.le.s $f18, $f8 +/* 07BAA0 7F046F30 00000000 */ nop +/* 07BAA4 7F046F34 450205BF */ bc1fl .Ljp7F048634 +/* 07BAA8 7F046F38 92220003 */ lbu $v0, 3($s1) +/* 07BAAC 7F046F3C E61200C8 */ swc1 $f18, 0xc8($s0) +/* 07BAB0 7F046F40 E61600D8 */ swc1 $f22, 0xd8($s0) +/* 07BAB4 7F046F44 100005BA */ b .Ljp7F048630 +/* 07BAB8 7F046F48 AE0000D4 */ sw $zero, 0xd4($s0) +/* 07BABC 7F046F4C C60000D8 */ lwc1 $f0, 0xd8($s0) +.Ljp7F046F50: +/* 07BAC0 7F046F50 3C018005 */ lui $at, %hi(D_80052AE4) # $at, 0x8005 +/* 07BAC4 7F046F54 C4302B14 */ lwc1 $f16, %lo(D_80052AE4)($at) +/* 07BAC8 7F046F58 46000282 */ mul.s $f10, $f0, $f0 +/* 07BACC 7F046F5C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07BAD0 7F046F60 44813000 */ mtc1 $at, $f6 +/* 07BAD4 7F046F64 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07BAD8 7F046F68 24180001 */ li $t8, 1 +/* 07BADC 7F046F6C 46065102 */ mul.s $f4, $f10, $f6 +/* 07BAE0 7F046F70 46102083 */ div.s $f2, $f4, $f16 +/* 07BAE4 7F046F74 46029200 */ add.s $f8, $f18, $f2 +/* 07BAE8 7F046F78 4608703E */ c.le.s $f14, $f8 +/* 07BAEC 7F046F7C 00000000 */ nop +/* 07BAF0 7F046F80 4502000F */ bc1fl .Ljp7F046FC0 +/* 07BAF4 7F046F84 C60C00DC */ lwc1 $f12, 0xdc($s0) +/* 07BAF8 7F046F88 C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07BAFC 7F046F8C 460A8182 */ mul.s $f6, $f16, $f10 +/* 07BB00 7F046F90 46060101 */ sub.s $f4, $f0, $f6 +/* 07BB04 7F046F94 E60400D8 */ swc1 $f4, 0xd8($s0) +/* 07BB08 7F046F98 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07BB0C 7F046F9C 4610003C */ c.lt.s $f0, $f16 +/* 07BB10 7F046FA0 00000000 */ nop +/* 07BB14 7F046FA4 45000003 */ bc1f .Ljp7F046FB4 +/* 07BB18 7F046FA8 00000000 */ nop +/* 07BB1C 7F046FAC E61000D8 */ swc1 $f16, 0xd8($s0) +/* 07BB20 7F046FB0 C60000D8 */ lwc1 $f0, 0xd8($s0) +.Ljp7F046FB4: +/* 07BB24 7F046FB4 1000001D */ b .Ljp7F04702C +/* 07BB28 7F046FB8 C60E00C8 */ lwc1 $f14, 0xc8($s0) +/* 07BB2C 7F046FBC C60C00DC */ lwc1 $f12, 0xdc($s0) +.Ljp7F046FC0: +/* 07BB30 7F046FC0 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07BB34 7F046FC4 460C003C */ c.lt.s $f0, $f12 +/* 07BB38 7F046FC8 00000000 */ nop +/* 07BB3C 7F046FCC 45000017 */ bc1f .Ljp7F04702C +/* 07BB40 7F046FD0 00000000 */ nop +/* 07BB44 7F046FD4 C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 07BB48 7F046FD8 46088282 */ mul.s $f10, $f16, $f8 +/* 07BB4C 7F046FDC 460A0080 */ add.s $f2, $f0, $f10 +/* 07BB50 7F046FE0 4602603C */ c.lt.s $f12, $f2 +/* 07BB54 7F046FE4 00000000 */ nop +/* 07BB58 7F046FE8 45000002 */ bc1f .Ljp7F046FF4 +/* 07BB5C 7F046FEC 00000000 */ nop +/* 07BB60 7F046FF0 46006086 */ mov.s $f2, $f12 +.Ljp7F046FF4: +/* 07BB64 7F046FF4 46021182 */ mul.s $f6, $f2, $f2 +/* 07BB68 7F046FF8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07BB6C 7F046FFC 44812000 */ mtc1 $at, $f4 +/* 07BB70 7F047000 00000000 */ nop +/* 07BB74 7F047004 46043202 */ mul.s $f8, $f6, $f4 +/* 07BB78 7F047008 46104283 */ div.s $f10, $f8, $f16 +/* 07BB7C 7F04700C 460A9180 */ add.s $f6, $f18, $f10 +/* 07BB80 7F047010 460E303C */ c.lt.s $f6, $f14 +/* 07BB84 7F047014 00000000 */ nop +/* 07BB88 7F047018 45000004 */ bc1f .Ljp7F04702C +/* 07BB8C 7F04701C 00000000 */ nop +/* 07BB90 7F047020 E60200D8 */ swc1 $f2, 0xd8($s0) +/* 07BB94 7F047024 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07BB98 7F047028 C60E00C8 */ lwc1 $f14, 0xc8($s0) +.Ljp7F04702C: +/* 07BB9C 7F04702C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07BBA0 7F047030 C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07BBA4 7F047034 46040202 */ mul.s $f8, $f0, $f4 +/* 07BBA8 7F047038 46087281 */ sub.s $f10, $f14, $f8 +/* 07BBAC 7F04703C E60A00C8 */ swc1 $f10, 0xc8($s0) +/* 07BBB0 7F047040 C60600C8 */ lwc1 $f6, 0xc8($s0) +/* 07BBB4 7F047044 4612303E */ c.le.s $f6, $f18 +/* 07BBB8 7F047048 00000000 */ nop +/* 07BBBC 7F04704C 45020579 */ bc1fl .Ljp7F048634 +/* 07BBC0 7F047050 92220003 */ lbu $v0, 3($s1) +/* 07BBC4 7F047054 E61200C8 */ swc1 $f18, 0xc8($s0) +/* 07BBC8 7F047058 E61600D8 */ swc1 $f22, 0xd8($s0) +/* 07BBCC 7F04705C 10000574 */ b .Ljp7F048630 +/* 07BBD0 7F047060 AE1800D4 */ sw $t8, 0xd4($s0) +/* 07BBD4 7F047064 2401000D */ li $at, 13 +.Ljp7F047068: +/* 07BBD8 7F047068 5441023F */ bnel $v0, $at, .Ljp7F047968 +/* 07BBDC 7F04706C 24010027 */ li $at, 39 +/* 07BBE0 7F047070 8E280008 */ lw $t0, 8($s1) +/* 07BBE4 7F047074 000848C0 */ sll $t1, $t0, 3 +/* 07BBE8 7F047078 0522023B */ bltzl $t1, .Ljp7F047968 +/* 07BBEC 7F04707C 24010027 */ li $at, 39 +/* 07BBF0 7F047080 0FC2279B */ jal get_curplayer_positiondata +/* 07BBF4 7F047084 8E700004 */ lw $s0, 4($s3) +/* 07BBF8 7F047088 AFA004B0 */ sw $zero, 0x4b0($sp) +/* 07BBFC 7F04708C AFA004AC */ sw $zero, 0x4ac($sp) +/* 07BC00 7F047090 AFA004A8 */ sw $zero, 0x4a8($sp) +/* 07BC04 7F047094 8E23000C */ lw $v1, 0xc($s1) +/* 07BC08 7F047098 00409025 */ move $s2, $v0 +/* 07BC0C 7F04709C 00035800 */ sll $t3, $v1, 0 +/* 07BC10 7F0470A0 05610056 */ bgez $t3, .Ljp7F0471FC +/* 07BC14 7F0470A4 00036040 */ sll $t4, $v1, 1 +/* 07BC18 7F0470A8 05830008 */ bgezl $t4, .Ljp7F0470CC +/* 07BC1C 7F0470AC C6020084 */ lwc1 $f2, 0x84($s0) +/* 07BC20 7F0470B0 C6080090 */ lwc1 $f8, 0x90($s0) +/* 07BC24 7F0470B4 C604009C */ lwc1 $f4, 0x9c($s0) +/* 07BC28 7F0470B8 E6080084 */ swc1 $f8, 0x84($s0) +/* 07BC2C 7F0470BC C6020084 */ lwc1 $f2, 0x84($s0) +/* 07BC30 7F0470C0 10000036 */ b .Ljp7F04719C +/* 07BC34 7F0470C4 E6040098 */ swc1 $f4, 0x98($s0) +/* 07BC38 7F0470C8 C6020084 */ lwc1 $f2, 0x84($s0) +.Ljp7F0470CC: +/* 07BC3C 7F0470CC C60A0090 */ lwc1 $f10, 0x90($s0) +/* 07BC40 7F0470D0 460A1032 */ c.eq.s $f2, $f10 +/* 07BC44 7F0470D4 00000000 */ nop +/* 07BC48 7F0470D8 45000030 */ bc1f .Ljp7F04719C +/* 07BC4C 7F0470DC 00000000 */ nop +/* 07BC50 7F0470E0 C6060098 */ lwc1 $f6, 0x98($s0) +/* 07BC54 7F0470E4 C604009C */ lwc1 $f4, 0x9c($s0) +/* 07BC58 7F0470E8 46043032 */ c.eq.s $f6, $f4 +/* 07BC5C 7F0470EC 00000000 */ nop +/* 07BC60 7F0470F0 4500002A */ bc1f .Ljp7F04719C +/* 07BC64 7F0470F4 00000000 */ nop +/* 07BC68 7F0470F8 0C002918 */ jal get_random_value +/* 07BC6C 7F0470FC 00000000 */ nop +/* 07BC70 7F047100 44824000 */ mtc1 $v0, $f8 +/* 07BC74 7F047104 3C018005 */ lui $at, %hi(D_80052AE8) # $at, 0x8005 +/* 07BC78 7F047108 C4342B18 */ lwc1 $f20, %lo(D_80052AE8)($at) +/* 07BC7C 7F04710C 04410005 */ bgez $v0, .Ljp7F047124 +/* 07BC80 7F047110 468042A0 */ cvt.s.w $f10, $f8 +/* 07BC84 7F047114 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07BC88 7F047118 44813000 */ mtc1 $at, $f6 +/* 07BC8C 7F04711C 00000000 */ nop +/* 07BC90 7F047120 46065280 */ add.s $f10, $f10, $f6 +.Ljp7F047124: +/* 07BC94 7F047124 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07BC98 7F047128 44812000 */ mtc1 $at, $f4 +/* 07BC9C 7F04712C 3C01421C */ li $at, 0x421C0000 # 39.000000 +/* 07BCA0 7F047130 44813000 */ mtc1 $at, $f6 +/* 07BCA4 7F047134 46045202 */ mul.s $f8, $f10, $f4 +/* 07BCA8 7F047138 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07BCAC 7F04713C 44812000 */ mtc1 $at, $f4 +/* 07BCB0 7F047140 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07BCB4 7F047144 46064282 */ mul.s $f10, $f8, $f6 +/* 07BCB8 7F047148 46045200 */ add.s $f8, $f10, $f4 +/* 07BCBC 7F04714C 44815000 */ mtc1 $at, $f10 +/* 07BCC0 7F047150 46144182 */ mul.s $f6, $f8, $f20 +/* 07BCC4 7F047154 460A3103 */ div.s $f4, $f6, $f10 +/* 07BCC8 7F047158 0C002918 */ jal get_random_value +/* 07BCCC 7F04715C E6040098 */ swc1 $f4, 0x98($s0) +/* 07BCD0 7F047160 44824000 */ mtc1 $v0, $f8 +/* 07BCD4 7F047164 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07BCD8 7F047168 04410004 */ bgez $v0, .Ljp7F04717C +/* 07BCDC 7F04716C 468041A0 */ cvt.s.w $f6, $f8 +/* 07BCE0 7F047170 44815000 */ mtc1 $at, $f10 +/* 07BCE4 7F047174 00000000 */ nop +/* 07BCE8 7F047178 460A3180 */ add.s $f6, $f6, $f10 +.Ljp7F04717C: +/* 07BCEC 7F04717C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07BCF0 7F047180 44812000 */ mtc1 $at, $f4 +/* 07BCF4 7F047184 00000000 */ nop +/* 07BCF8 7F047188 46043202 */ mul.s $f8, $f6, $f4 +/* 07BCFC 7F04718C 00000000 */ nop +/* 07BD00 7F047190 46144282 */ mul.s $f10, $f8, $f20 +/* 07BD04 7F047194 E60A0084 */ swc1 $f10, 0x84($s0) +/* 07BD08 7F047198 C6020084 */ lwc1 $f2, 0x84($s0) +.Ljp7F04719C: +/* 07BD0C 7F04719C 3C018005 */ lui $at, %hi(D_80052AEC) # $at, 0x8005 +/* 07BD10 7F0471A0 C4202B1C */ lwc1 $f0, %lo(D_80052AEC)($at) +/* 07BD14 7F0471A4 3C018005 */ lui $at, %hi(D_80052AF4) # $at, 0x8005 +/* 07BD18 7F0471A8 C4262B24 */ lwc1 $f6, %lo(D_80052AF4)($at) +/* 07BD1C 7F0471AC 44051000 */ mfc1 $a1, $f2 +/* 07BD20 7F0471B0 44070000 */ mfc1 $a3, $f0 +/* 07BD24 7F0471B4 26040090 */ addiu $a0, $s0, 0x90 +/* 07BD28 7F0471B8 26060094 */ addiu $a2, $s0, 0x94 +/* 07BD2C 7F0471BC E7A00010 */ swc1 $f0, 0x10($sp) +/* 07BD30 7F0471C0 0FC10D03 */ jal sub_GAME_7F04310C +/* 07BD34 7F0471C4 E7A60014 */ swc1 $f6, 0x14($sp) +/* 07BD38 7F0471C8 3C018005 */ lui $at, %hi(D_80052AF8) # $at, 0x8005 +/* 07BD3C 7F0471CC C4202B28 */ lwc1 $f0, %lo(D_80052AF8)($at) +/* 07BD40 7F0471D0 3C018005 */ lui $at, %hi(D_80052AFC) # $at, 0x8005 +/* 07BD44 7F0471D4 C4242B2C */ lwc1 $f4, %lo(D_80052AFC)($at) +/* 07BD48 7F0471D8 8E050098 */ lw $a1, 0x98($s0) +/* 07BD4C 7F0471DC 44070000 */ mfc1 $a3, $f0 +/* 07BD50 7F0471E0 2604009C */ addiu $a0, $s0, 0x9c +/* 07BD54 7F0471E4 260600A0 */ addiu $a2, $s0, 0xa0 +/* 07BD58 7F0471E8 E7A00010 */ swc1 $f0, 0x10($sp) +/* 07BD5C 7F0471EC 0FC10D03 */ jal sub_GAME_7F04310C +/* 07BD60 7F0471F0 E7A40014 */ swc1 $f4, 0x14($sp) +/* 07BD64 7F0471F4 1000050F */ b .Ljp7F048634 +/* 07BD68 7F0471F8 92220003 */ lbu $v0, 3($s1) +.Ljp7F0471FC: +/* 07BD6C 7F0471FC C6480008 */ lwc1 $f8, 8($s2) +/* 07BD70 7F047200 C62A0058 */ lwc1 $f10, 0x58($s1) +/* 07BD74 7F047204 C646000C */ lwc1 $f6, 0xc($s2) +/* 07BD78 7F047208 C624005C */ lwc1 $f4, 0x5c($s1) +/* 07BD7C 7F04720C 460A4001 */ sub.s $f0, $f8, $f10 +/* 07BD80 7F047210 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 07BD84 7F047214 44815000 */ mtc1 $at, $f10 +/* 07BD88 7F047218 46043201 */ sub.s $f8, $f6, $f4 +/* 07BD8C 7F04721C 460A4181 */ sub.s $f6, $f8, $f10 +/* 07BD90 7F047220 46000282 */ mul.s $f10, $f0, $f0 +/* 07BD94 7F047224 E7A604C4 */ swc1 $f6, 0x4c4($sp) +/* 07BD98 7F047228 C6280060 */ lwc1 $f8, 0x60($s1) +/* 07BD9C 7F04722C C6440010 */ lwc1 $f4, 0x10($s2) +/* 07BDA0 7F047230 E7A004C8 */ swc1 $f0, 0x4c8($sp) +/* 07BDA4 7F047234 46082081 */ sub.s $f2, $f4, $f8 +/* 07BDA8 7F047238 46021182 */ mul.s $f6, $f2, $f2 +/* 07BDAC 7F04723C E7A204C0 */ swc1 $f2, 0x4c0($sp) +/* 07BDB0 7F047240 46065500 */ add.s $f20, $f10, $f6 +/* 07BDB4 7F047244 E7B404BC */ swc1 $f20, 0x4bc($sp) +/* 07BDB8 7F047248 0C007E08 */ jal sqrtf +/* 07BDBC 7F04724C 4600A306 */ mov.s $f12, $f20 +/* 07BDC0 7F047250 E7A004B4 */ swc1 $f0, 0x4b4($sp) +/* 07BDC4 7F047254 8E2E0008 */ lw $t6, 8($s1) +/* 07BDC8 7F047258 46000086 */ mov.s $f2, $f0 +/* 07BDCC 7F04725C 000E5100 */ sll $t2, $t6, 4 +/* 07BDD0 7F047260 05430008 */ bgezl $t2, .Ljp7F047284 +/* 07BDD4 7F047264 C7AC04BC */ lwc1 $f12, 0x4bc($sp) +/* 07BDD8 7F047268 C7A004C4 */ lwc1 $f0, 0x4c4($sp) +/* 07BDDC 7F04726C 46000102 */ mul.s $f4, $f0, $f0 +/* 07BDE0 7F047270 4604A300 */ add.s $f12, $f20, $f4 +/* 07BDE4 7F047274 0C007E08 */ jal sqrtf +/* 07BDE8 7F047278 E7AC04BC */ swc1 $f12, 0x4bc($sp) +/* 07BDEC 7F04727C 46000086 */ mov.s $f2, $f0 +/* 07BDF0 7F047280 C7AC04BC */ lwc1 $f12, 0x4bc($sp) +.Ljp7F047284: +/* 07BDF4 7F047284 0FC0B553 */ jal sub_GAME_7F02D244 +/* 07BDF8 7F047288 E7A204B8 */ swc1 $f2, 0x4b8($sp) +/* 07BDFC 7F04728C E7A004A4 */ swc1 $f0, 0x4a4($sp) +/* 07BE00 7F047290 C6080098 */ lwc1 $f8, 0x98($s0) +/* 07BE04 7F047294 C6100084 */ lwc1 $f16, 0x84($s0) +/* 07BE08 7F047298 C7A204B8 */ lwc1 $f2, 0x4b8($sp) +/* 07BE0C 7F04729C E7A804D8 */ swc1 $f8, 0x4d8($sp) +/* 07BE10 7F0472A0 C60A00A8 */ lwc1 $f10, 0xa8($s0) +/* 07BE14 7F0472A4 460A103E */ c.le.s $f2, $f10 +/* 07BE18 7F0472A8 00000000 */ nop +/* 07BE1C 7F0472AC 45020096 */ bc1fl .Ljp7F047508 +/* 07BE20 7F0472B0 8FA804B0 */ lw $t0, 0x4b0($sp) +/* 07BE24 7F0472B4 C7AC04C8 */ lwc1 $f12, 0x4c8($sp) +/* 07BE28 7F0472B8 C7AE04C0 */ lwc1 $f14, 0x4c0($sp) +/* 07BE2C 7F0472BC 0FC16BD4 */ jal atan2f +/* 07BE30 7F0472C0 E7B004DC */ swc1 $f16, 0x4dc($sp) +/* 07BE34 7F0472C4 E7A004A0 */ swc1 $f0, 0x4a0($sp) +/* 07BE38 7F0472C8 C7AC04C4 */ lwc1 $f12, 0x4c4($sp) +/* 07BE3C 7F0472CC 0FC16BD4 */ jal atan2f +/* 07BE40 7F0472D0 C7AE04B4 */ lwc1 $f14, 0x4b4($sp) +/* 07BE44 7F0472D4 E7A0049C */ swc1 $f0, 0x49c($sp) +/* 07BE48 7F0472D8 8E220008 */ lw $v0, 8($s1) +/* 07BE4C 7F0472DC C7B004DC */ lwc1 $f16, 0x4dc($sp) +/* 07BE50 7F0472E0 24190001 */ li $t9, 1 +/* 07BE54 7F0472E4 00027840 */ sll $t7, $v0, 1 +/* 07BE58 7F0472E8 05E00003 */ bltz $t7, .Ljp7F0472F8 +/* 07BE5C 7F0472EC 00026880 */ sll $t5, $v0, 2 +/* 07BE60 7F0472F0 05A10005 */ bgez $t5, .Ljp7F047308 +/* 07BE64 7F0472F4 C7A604A0 */ lwc1 $f6, 0x4a0($sp) +.Ljp7F0472F8: +/* 07BE68 7F0472F8 3C018005 */ lui $at, %hi(D_80052B00) # $at, 0x8005 +/* 07BE6C 7F0472FC C4342B30 */ lwc1 $f20, %lo(D_80052B00)($at) +/* 07BE70 7F047300 10000027 */ b .Ljp7F0473A0 +/* 07BE74 7F047304 AFB904B0 */ sw $t9, 0x4b0($sp) +.Ljp7F047308: +/* 07BE78 7F047308 C6040090 */ lwc1 $f4, 0x90($s0) +/* 07BE7C 7F04730C 3C018005 */ lui $at, %hi(D_80052B04) # $at, 0x8005 +/* 07BE80 7F047310 46043301 */ sub.s $f12, $f6, $f4 +/* 07BE84 7F047314 4616603C */ c.lt.s $f12, $f22 +/* 07BE88 7F047318 00000000 */ nop +/* 07BE8C 7F04731C 45000003 */ bc1f .Ljp7F04732C +/* 07BE90 7F047320 00000000 */ nop +/* 07BE94 7F047324 C4342B34 */ lwc1 $f20, %lo(D_80052B04)($at) +/* 07BE98 7F047328 46146300 */ add.s $f12, $f12, $f20 +.Ljp7F04732C: +/* 07BE9C 7F04732C 3C018005 */ lui $at, %hi(D_80052B08) # $at, 0x8005 +/* 07BEA0 7F047330 C4342B38 */ lwc1 $f20, %lo(D_80052B08)($at) +/* 07BEA4 7F047334 3C018005 */ lui $at, %hi(D_80052B0C) # $at, 0x8005 +/* 07BEA8 7F047338 C4282B3C */ lwc1 $f8, %lo(D_80052B0C)($at) +/* 07BEAC 7F04733C 3C018005 */ lui $at, %hi(D_80052B10) # $at, 0x8005 +/* 07BEB0 7F047340 460C403C */ c.lt.s $f8, $f12 +/* 07BEB4 7F047344 00000000 */ nop +/* 07BEB8 7F047348 45020003 */ bc1fl .Ljp7F047358 +/* 07BEBC 7F04734C C60A009C */ lwc1 $f10, 0x9c($s0) +/* 07BEC0 7F047350 46146301 */ sub.s $f12, $f12, $f20 +/* 07BEC4 7F047354 C60A009C */ lwc1 $f10, 0x9c($s0) +.Ljp7F047358: +/* 07BEC8 7F047358 460A0081 */ sub.s $f2, $f0, $f10 +/* 07BECC 7F04735C 4616103C */ c.lt.s $f2, $f22 +/* 07BED0 7F047360 00000000 */ nop +/* 07BED4 7F047364 45000001 */ bc1f .Ljp7F04736C +/* 07BED8 7F047368 00000000 */ nop +.Ljp7F04736C: +/* 07BEDC 7F04736C C4262B40 */ lwc1 $f6, %lo(D_80052B10)($at) +/* 07BEE0 7F047370 3C018005 */ lui $at, %hi(D_80052B14) # $at, 0x8005 +/* 07BEE4 7F047374 4606603C */ c.lt.s $f12, $f6 +/* 07BEE8 7F047378 00000000 */ nop +/* 07BEEC 7F04737C 45020009 */ bc1fl .Ljp7F0473A4 +/* 07BEF0 7F047380 8FA804B0 */ lw $t0, 0x4b0($sp) +/* 07BEF4 7F047384 C4242B44 */ lwc1 $f4, %lo(D_80052B14)($at) +/* 07BEF8 7F047388 24180001 */ li $t8, 1 +/* 07BEFC 7F04738C 460C203C */ c.lt.s $f4, $f12 +/* 07BF00 7F047390 00000000 */ nop +/* 07BF04 7F047394 45020003 */ bc1fl .Ljp7F0473A4 +/* 07BF08 7F047398 8FA804B0 */ lw $t0, 0x4b0($sp) +/* 07BF0C 7F04739C AFB804B0 */ sw $t8, 0x4b0($sp) +.Ljp7F0473A0: +/* 07BF10 7F0473A0 8FA804B0 */ lw $t0, 0x4b0($sp) +.Ljp7F0473A4: +/* 07BF14 7F0473A4 C7A804A0 */ lwc1 $f8, 0x4a0($sp) +/* 07BF18 7F0473A8 02402025 */ move $a0, $s2 +/* 07BF1C 7F0473AC 11000055 */ beqz $t0, .Ljp7F047504 +/* 07BF20 7F0473B0 00002825 */ move $a1, $zero +/* 07BF24 7F0473B4 C60A0084 */ lwc1 $f10, 0x84($s0) +/* 07BF28 7F0473B8 3C018005 */ lui $at, %hi(D_80052B18) # $at, 0x8005 +/* 07BF2C 7F0473BC C4262B48 */ lwc1 $f6, %lo(D_80052B18)($at) +/* 07BF30 7F0473C0 460A4001 */ sub.s $f0, $f8, $f10 +/* 07BF34 7F0473C4 8E690014 */ lw $t1, 0x14($s3) +/* 07BF38 7F0473C8 3C018005 */ lui $at, %hi(D_80052B1C) # $at, 0x8005 +/* 07BF3C 7F0473CC 4606003C */ c.lt.s $f0, $f6 +/* 07BF40 7F0473D0 AFA90494 */ sw $t1, 0x494($sp) +/* 07BF44 7F0473D4 45000003 */ bc1f .Ljp7F0473E4 +/* 07BF48 7F0473D8 00000000 */ nop +/* 07BF4C 7F0473DC 10000007 */ b .Ljp7F0473FC +/* 07BF50 7F0473E0 46140000 */ add.s $f0, $f0, $f20 +.Ljp7F0473E4: +/* 07BF54 7F0473E4 C4242B4C */ lwc1 $f4, %lo(D_80052B1C)($at) +/* 07BF58 7F0473E8 4600203E */ c.le.s $f4, $f0 +/* 07BF5C 7F0473EC 00000000 */ nop +/* 07BF60 7F0473F0 45020003 */ bc1fl .Ljp7F047400 +/* 07BF64 7F0473F4 E7A00498 */ swc1 $f0, 0x498($sp) +/* 07BF68 7F0473F8 46140001 */ sub.s $f0, $f0, $f20 +.Ljp7F0473FC: +/* 07BF6C 7F0473FC E7A00498 */ swc1 $f0, 0x498($sp) +.Ljp7F047400: +/* 07BF70 7F047400 0FC229DD */ jal sub_GAME_7F08A03C +/* 07BF74 7F047404 E7B004DC */ swc1 $f16, 0x4dc($sp) +/* 07BF78 7F047408 C7A00498 */ lwc1 $f0, 0x498($sp) +/* 07BF7C 7F04740C C6080088 */ lwc1 $f8, 0x88($s0) +/* 07BF80 7F047410 C7B004DC */ lwc1 $f16, 0x4dc($sp) +/* 07BF84 7F047414 4608003E */ c.le.s $f0, $f8 +/* 07BF88 7F047418 00000000 */ nop +/* 07BF8C 7F04741C 45020027 */ bc1fl .Ljp7F0474BC +/* 07BF90 7F047420 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BF94 7F047424 C60A008C */ lwc1 $f10, 0x8c($s0) +/* 07BF98 7F047428 240B001B */ li $t3, 27 +/* 07BF9C 7F04742C 4600503E */ c.le.s $f10, $f0 +/* 07BFA0 7F047430 00000000 */ nop +/* 07BFA4 7F047434 45020021 */ bc1fl .Ljp7F0474BC +/* 07BFA8 7F047438 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BFAC 7F04743C C6460010 */ lwc1 $f6, 0x10($s2) +/* 07BFB0 7F047440 8E650008 */ lw $a1, 8($s3) +/* 07BFB4 7F047444 8E660010 */ lw $a2, 0x10($s3) +/* 07BFB8 7F047448 8E470008 */ lw $a3, 8($s2) +/* 07BFBC 7F04744C AFAB0014 */ sw $t3, 0x14($sp) +/* 07BFC0 7F047450 E7A60010 */ swc1 $f6, 0x10($sp) +/* 07BFC4 7F047454 C660000C */ lwc1 $f0, 0xc($s3) +/* 07BFC8 7F047458 27A40494 */ addiu $a0, $sp, 0x494 +/* 07BFCC 7F04745C E7A00018 */ swc1 $f0, 0x18($sp) +/* 07BFD0 7F047460 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 07BFD4 7F047464 C642000C */ lwc1 $f2, 0xc($s2) +/* 07BFD8 7F047468 E7B004DC */ swc1 $f16, 0x4dc($sp) +/* 07BFDC 7F04746C E7A20020 */ swc1 $f2, 0x20($sp) +/* 07BFE0 7F047470 0FC2C675 */ jal sub_GAME_7F0B0E24 +/* 07BFE4 7F047474 E7A20024 */ swc1 $f2, 0x24($sp) +/* 07BFE8 7F047478 1040000F */ beqz $v0, .Ljp7F0474B8 +/* 07BFEC 7F04747C C7B004DC */ lwc1 $f16, 0x4dc($sp) +/* 07BFF0 7F047480 8FAC0494 */ lw $t4, 0x494($sp) +/* 07BFF4 7F047484 8E4E0014 */ lw $t6, 0x14($s2) +/* 07BFF8 7F047488 558E000C */ bnel $t4, $t6, .Ljp7F0474BC +/* 07BFFC 7F04748C 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07C000 7F047490 8E2A0008 */ lw $t2, 8($s1) +/* 07C004 7F047494 3C012000 */ lui $at, 0x2000 +/* 07C008 7F047498 240D0001 */ li $t5, 1 +/* 07C00C 7F04749C 01417825 */ or $t7, $t2, $at +/* 07C010 7F0474A0 AE2F0008 */ sw $t7, 8($s1) +/* 07C014 7F0474A4 C7A4049C */ lwc1 $f4, 0x49c($sp) +/* 07C018 7F0474A8 AFAD04A8 */ sw $t5, 0x4a8($sp) +/* 07C01C 7F0474AC C7B004A0 */ lwc1 $f16, 0x4a0($sp) +/* 07C020 7F0474B0 1000000F */ b .Ljp7F0474F0 +/* 07C024 7F0474B4 E7A404D8 */ swc1 $f4, 0x4d8($sp) +.Ljp7F0474B8: +/* 07C028 7F0474B8 8E0200B8 */ lw $v0, 0xb8($s0) +.Ljp7F0474BC: +/* 07C02C 7F0474BC 3C198005 */ lui $t9, %hi(global_timer) # $t9, 0x8005 +/* 07C030 7F0474C0 0442000B */ bltzl $v0, .Ljp7F0474F0 +/* 07C034 7F0474C4 AFA004B0 */ sw $zero, 0x4b0($sp) +/* 07C038 7F0474C8 8F3983AC */ lw $t9, %lo(global_timer)($t9) +/* 07C03C 7F0474CC 2738FF88 */ addiu $t8, $t9, -0x78 +/* 07C040 7F0474D0 0302082A */ slt $at, $t8, $v0 +/* 07C044 7F0474D4 50200006 */ beql $at, $zero, .Ljp7F0474F0 +/* 07C048 7F0474D8 AFA004B0 */ sw $zero, 0x4b0($sp) +/* 07C04C 7F0474DC C608009C */ lwc1 $f8, 0x9c($s0) +/* 07C050 7F0474E0 C6100090 */ lwc1 $f16, 0x90($s0) +/* 07C054 7F0474E4 10000002 */ b .Ljp7F0474F0 +/* 07C058 7F0474E8 E7A804D8 */ swc1 $f8, 0x4d8($sp) +/* 07C05C 7F0474EC AFA004B0 */ sw $zero, 0x4b0($sp) +.Ljp7F0474F0: +/* 07C060 7F0474F0 02402025 */ move $a0, $s2 +/* 07C064 7F0474F4 24050001 */ li $a1, 1 +/* 07C068 7F0474F8 0FC229DD */ jal sub_GAME_7F08A03C +/* 07C06C 7F0474FC E7B004DC */ swc1 $f16, 0x4dc($sp) +/* 07C070 7F047500 C7B004DC */ lwc1 $f16, 0x4dc($sp) +.Ljp7F047504: +/* 07C074 7F047504 8FA804B0 */ lw $t0, 0x4b0($sp) +.Ljp7F047508: +/* 07C078 7F047508 3C018005 */ lui $at, %hi(D_80052B20) # $at, 0x8005 +/* 07C07C 7F04750C C4342B50 */ lwc1 $f20, %lo(D_80052B20)($at) +/* 07C080 7F047510 51000007 */ beql $t0, $zero, .Ljp7F047530 +/* 07C084 7F047514 8E0900D0 */ lw $t1, 0xd0($s0) +/* 07C088 7F047518 C7AC04BC */ lwc1 $f12, 0x4bc($sp) +/* 07C08C 7F04751C 0FC0B553 */ jal sub_GAME_7F02D244 +/* 07C090 7F047520 E7B004DC */ swc1 $f16, 0x4dc($sp) +/* 07C094 7F047524 C7B004DC */ lwc1 $f16, 0x4dc($sp) +/* 07C098 7F047528 E7A004A4 */ swc1 $f0, 0x4a4($sp) +/* 07C09C 7F04752C 8E0900D0 */ lw $t1, 0xd0($s0) +.Ljp7F047530: +/* 07C0A0 7F047530 1120001F */ beqz $t1, .Ljp7F0475B0 +/* 07C0A4 7F047534 3C0B8005 */ lui $t3, %hi(global_timer) # $t3, 0x8005 +/* 07C0A8 7F047538 8D6B83AC */ lw $t3, %lo(global_timer)($t3) +/* 07C0AC 7F04753C 24010078 */ li $at, 120 +/* 07C0B0 7F047540 E7B004DC */ swc1 $f16, 0x4dc($sp) +/* 07C0B4 7F047544 0161001A */ div $zero, $t3, $at +/* 07C0B8 7F047548 00006010 */ mfhi $t4 +/* 07C0BC 7F04754C 448C5000 */ mtc1 $t4, $f10 +/* 07C0C0 7F047550 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 07C0C4 7F047554 44814000 */ mtc1 $at, $f8 +/* 07C0C8 7F047558 468051A0 */ cvt.s.w $f6, $f10 +/* 07C0CC 7F04755C 46143102 */ mul.s $f4, $f6, $f20 +/* 07C0D0 7F047560 0FC160F3 */ jal sinf +/* 07C0D4 7F047564 46082303 */ div.s $f12, $f4, $f8 +/* 07C0D8 7F047568 3C018005 */ lui $at, %hi(D_80052B24) # $at, 0x8005 +/* 07C0DC 7F04756C C4262B54 */ lwc1 $f6, %lo(D_80052B24)($at) +/* 07C0E0 7F047570 C7AA04A4 */ lwc1 $f10, 0x4a4($sp) +/* 07C0E4 7F047574 C7B004DC */ lwc1 $f16, 0x4dc($sp) +/* 07C0E8 7F047578 46065102 */ mul.s $f4, $f10, $f6 +/* 07C0EC 7F04757C 00000000 */ nop +/* 07C0F0 7F047580 46002202 */ mul.s $f8, $f4, $f0 +/* 07C0F4 7F047584 46088400 */ add.s $f16, $f16, $f8 +/* 07C0F8 7F047588 4616803C */ c.lt.s $f16, $f22 +/* 07C0FC 7F04758C 00000000 */ nop +/* 07C100 7F047590 45000002 */ bc1f .Ljp7F04759C +/* 07C104 7F047594 00000000 */ nop +/* 07C108 7F047598 46148400 */ add.s $f16, $f16, $f20 +.Ljp7F04759C: +/* 07C10C 7F04759C 4610A03E */ c.le.s $f20, $f16 +/* 07C110 7F0475A0 00000000 */ nop +/* 07C114 7F0475A4 45020003 */ bc1fl .Ljp7F0475B4 +/* 07C118 7F0475A8 C6020084 */ lwc1 $f2, 0x84($s0) +/* 07C11C 7F0475AC 46148401 */ sub.s $f16, $f16, $f20 +.Ljp7F0475B0: +/* 07C120 7F0475B0 C6020084 */ lwc1 $f2, 0x84($s0) +.Ljp7F0475B4: +/* 07C124 7F0475B4 3C018005 */ lui $at, %hi(D_80052B28) # $at, 0x8005 +/* 07C128 7F0475B8 C42A2B58 */ lwc1 $f10, %lo(D_80052B28)($at) +/* 07C12C 7F0475BC 46028001 */ sub.s $f0, $f16, $f2 +/* 07C130 7F0475C0 26040090 */ addiu $a0, $s0, 0x90 +/* 07C134 7F0475C4 460A003C */ c.lt.s $f0, $f10 +/* 07C138 7F0475C8 00000000 */ nop +/* 07C13C 7F0475CC 45000003 */ bc1f .Ljp7F0475DC +/* 07C140 7F0475D0 00000000 */ nop +/* 07C144 7F0475D4 10000008 */ b .Ljp7F0475F8 +/* 07C148 7F0475D8 46140000 */ add.s $f0, $f0, $f20 +.Ljp7F0475DC: +/* 07C14C 7F0475DC 3C018005 */ lui $at, %hi(D_80052B2C) # $at, 0x8005 +/* 07C150 7F0475E0 C4262B5C */ lwc1 $f6, %lo(D_80052B2C)($at) +/* 07C154 7F0475E4 4600303E */ c.le.s $f6, $f0 +/* 07C158 7F0475E8 00000000 */ nop +/* 07C15C 7F0475EC 45020003 */ bc1fl .Ljp7F0475FC +/* 07C160 7F0475F0 C60C0088 */ lwc1 $f12, 0x88($s0) +/* 07C164 7F0475F4 46140001 */ sub.s $f0, $f0, $f20 +.Ljp7F0475F8: +/* 07C168 7F0475F8 C60C0088 */ lwc1 $f12, 0x88($s0) +.Ljp7F0475FC: +/* 07C16C 7F0475FC 3C018005 */ lui $at, %hi(D_80052B30) # $at, 0x8005 +/* 07C170 7F047600 4600603C */ c.lt.s $f12, $f0 +/* 07C174 7F047604 00000000 */ nop +/* 07C178 7F047608 45020004 */ bc1fl .Ljp7F04761C +/* 07C17C 7F04760C C60C008C */ lwc1 $f12, 0x8c($s0) +/* 07C180 7F047610 10000007 */ b .Ljp7F047630 +/* 07C184 7F047614 460C1400 */ add.s $f16, $f2, $f12 +/* 07C188 7F047618 C60C008C */ lwc1 $f12, 0x8c($s0) +.Ljp7F04761C: +/* 07C18C 7F04761C 460C003C */ c.lt.s $f0, $f12 +/* 07C190 7F047620 00000000 */ nop +/* 07C194 7F047624 45020003 */ bc1fl .Ljp7F047634 +/* 07C198 7F047628 4616803C */ c.lt.s $f16, $f22 +/* 07C19C 7F04762C 460C1400 */ add.s $f16, $f2, $f12 +.Ljp7F047630: +/* 07C1A0 7F047630 4616803C */ c.lt.s $f16, $f22 +.Ljp7F047634: +/* 07C1A4 7F047634 00000000 */ nop +/* 07C1A8 7F047638 45020003 */ bc1fl .Ljp7F047648 +/* 07C1AC 7F04763C 4610A03E */ c.le.s $f20, $f16 +/* 07C1B0 7F047640 46148400 */ add.s $f16, $f16, $f20 +/* 07C1B4 7F047644 4610A03E */ c.le.s $f20, $f16 +.Ljp7F047648: +/* 07C1B8 7F047648 00000000 */ nop +/* 07C1BC 7F04764C 45000002 */ bc1f .Ljp7F047658 +/* 07C1C0 7F047650 00000000 */ nop +/* 07C1C4 7F047654 46148401 */ sub.s $f16, $f16, $f20 +.Ljp7F047658: +/* 07C1C8 7F047658 C4202B60 */ lwc1 $f0, %lo(D_80052B30)($at) +/* 07C1CC 7F04765C 44058000 */ mfc1 $a1, $f16 +/* 07C1D0 7F047660 26060094 */ addiu $a2, $s0, 0x94 +/* 07C1D4 7F047664 E7A00010 */ swc1 $f0, 0x10($sp) +/* 07C1D8 7F047668 C60400A4 */ lwc1 $f4, 0xa4($s0) +/* 07C1DC 7F04766C 44070000 */ mfc1 $a3, $f0 +/* 07C1E0 7F047670 E7B004DC */ swc1 $f16, 0x4dc($sp) +/* 07C1E4 7F047674 0FC10D03 */ jal sub_GAME_7F04310C +/* 07C1E8 7F047678 E7A40014 */ swc1 $f4, 0x14($sp) +/* 07C1EC 7F04767C 3C018005 */ lui $at, %hi(D_80052B34) # $at, 0x8005 +/* 07C1F0 7F047680 C4202B64 */ lwc1 $f0, %lo(D_80052B34)($at) +/* 07C1F4 7F047684 2604009C */ addiu $a0, $s0, 0x9c +/* 07C1F8 7F047688 8FA504D8 */ lw $a1, 0x4d8($sp) +/* 07C1FC 7F04768C E7A00010 */ swc1 $f0, 0x10($sp) +/* 07C200 7F047690 C60800A4 */ lwc1 $f8, 0xa4($s0) +/* 07C204 7F047694 44070000 */ mfc1 $a3, $f0 +/* 07C208 7F047698 260600A0 */ addiu $a2, $s0, 0xa0 +/* 07C20C 7F04769C 0FC10D03 */ jal sub_GAME_7F04310C +/* 07C210 7F0476A0 E7A80014 */ swc1 $f8, 0x14($sp) +/* 07C214 7F0476A4 C7B004DC */ lwc1 $f16, 0x4dc($sp) +/* 07C218 7F0476A8 C60A0090 */ lwc1 $f10, 0x90($s0) +/* 07C21C 7F0476AC 3C018005 */ lui $at, %hi(D_80052B38) # $at, 0x8005 +/* 07C220 7F0476B0 C7A604D8 */ lwc1 $f6, 0x4d8($sp) +/* 07C224 7F0476B4 460A8301 */ sub.s $f12, $f16, $f10 +/* 07C228 7F0476B8 4616603C */ c.lt.s $f12, $f22 +/* 07C22C 7F0476BC 00000000 */ nop +/* 07C230 7F0476C0 45000002 */ bc1f .Ljp7F0476CC +/* 07C234 7F0476C4 00000000 */ nop +/* 07C238 7F0476C8 46146300 */ add.s $f12, $f12, $f20 +.Ljp7F0476CC: +/* 07C23C 7F0476CC C4202B68 */ lwc1 $f0, %lo(D_80052B38)($at) +/* 07C240 7F0476D0 460C003C */ c.lt.s $f0, $f12 +/* 07C244 7F0476D4 00000000 */ nop +/* 07C248 7F0476D8 45020003 */ bc1fl .Ljp7F0476E8 +/* 07C24C 7F0476DC C604009C */ lwc1 $f4, 0x9c($s0) +/* 07C250 7F0476E0 46146301 */ sub.s $f12, $f12, $f20 +/* 07C254 7F0476E4 C604009C */ lwc1 $f4, 0x9c($s0) +.Ljp7F0476E8: +/* 07C258 7F0476E8 46043081 */ sub.s $f2, $f6, $f4 +/* 07C25C 7F0476EC 4616103C */ c.lt.s $f2, $f22 +/* 07C260 7F0476F0 00000000 */ nop +/* 07C264 7F0476F4 45020003 */ bc1fl .Ljp7F047704 +/* 07C268 7F0476F8 4602003C */ c.lt.s $f0, $f2 +/* 07C26C 7F0476FC 46141080 */ add.s $f2, $f2, $f20 +/* 07C270 7F047700 4602003C */ c.lt.s $f0, $f2 +.Ljp7F047704: +/* 07C274 7F047704 00000000 */ nop +/* 07C278 7F047708 45020003 */ bc1fl .Ljp7F047718 +/* 07C27C 7F04770C AE0000D0 */ sw $zero, 0xd0($s0) +/* 07C280 7F047710 46141081 */ sub.s $f2, $f2, $f20 +/* 07C284 7F047714 AE0000D0 */ sw $zero, 0xd0($s0) +.Ljp7F047718: +/* 07C288 7F047718 8FAE04B0 */ lw $t6, 0x4b0($sp) +/* 07C28C 7F04771C C7A804A4 */ lwc1 $f8, 0x4a4($sp) +/* 07C290 7F047720 51C00047 */ beql $t6, $zero, .Ljp7F047840 +/* 07C294 7F047724 8FB904AC */ lw $t9, 0x4ac($sp) +/* 07C298 7F047728 4608603C */ c.lt.s $f12, $f8 +/* 07C29C 7F04772C C7AA04A4 */ lwc1 $f10, 0x4a4($sp) +/* 07C2A0 7F047730 4502001B */ bc1fl .Ljp7F0477A0 +/* 07C2A4 7F047734 460A5000 */ add.s $f0, $f10, $f10 +/* 07C2A8 7F047738 46004007 */ neg.s $f0, $f8 +/* 07C2AC 7F04773C 460C003C */ c.lt.s $f0, $f12 +/* 07C2B0 7F047740 00000000 */ nop +/* 07C2B4 7F047744 45020016 */ bc1fl .Ljp7F0477A0 +/* 07C2B8 7F047748 460A5000 */ add.s $f0, $f10, $f10 +/* 07C2BC 7F04774C 4608103C */ c.lt.s $f2, $f8 +/* 07C2C0 7F047750 00000000 */ nop +/* 07C2C4 7F047754 45020012 */ bc1fl .Ljp7F0477A0 +/* 07C2C8 7F047758 460A5000 */ add.s $f0, $f10, $f10 +/* 07C2CC 7F04775C 4602003C */ c.lt.s $f0, $f2 +/* 07C2D0 7F047760 240A0001 */ li $t2, 1 +/* 07C2D4 7F047764 4502000E */ bc1fl .Ljp7F0477A0 +/* 07C2D8 7F047768 460A5000 */ add.s $f0, $f10, $f10 +/* 07C2DC 7F04776C AE0A00D0 */ sw $t2, 0xd0($s0) +/* 07C2E0 7F047770 8FAD04A8 */ lw $t5, 0x4a8($sp) +/* 07C2E4 7F047774 240F0001 */ li $t7, 1 +/* 07C2E8 7F047778 AFAF04AC */ sw $t7, 0x4ac($sp) +/* 07C2EC 7F04777C 11A0002F */ beqz $t5, .Ljp7F04783C +/* 07C2F0 7F047780 3C198005 */ lui $t9, %hi(global_timer) # $t9, 0x8005 +/* 07C2F4 7F047784 8F3983AC */ lw $t9, %lo(global_timer)($t9) +/* 07C2F8 7F047788 3C188005 */ lui $t8, %hi(global_timer) # $t8, 0x8005 +/* 07C2FC 7F04778C AE1900B8 */ sw $t9, 0xb8($s0) +/* 07C300 7F047790 8F1883AC */ lw $t8, %lo(global_timer)($t8) +/* 07C304 7F047794 10000029 */ b .Ljp7F04783C +/* 07C308 7F047798 AE1800BC */ sw $t8, 0xbc($s0) +/* 07C30C 7F04779C 460A5000 */ add.s $f0, $f10, $f10 +.Ljp7F0477A0: +/* 07C310 7F0477A0 4600603C */ c.lt.s $f12, $f0 +/* 07C314 7F0477A4 00000000 */ nop +/* 07C318 7F0477A8 45020018 */ bc1fl .Ljp7F04780C +/* 07C31C 7F0477AC 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07C320 7F0477B0 46000387 */ neg.s $f14, $f0 +/* 07C324 7F0477B4 460C703C */ c.lt.s $f14, $f12 +/* 07C328 7F0477B8 00000000 */ nop +/* 07C32C 7F0477BC 45020013 */ bc1fl .Ljp7F04780C +/* 07C330 7F0477C0 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07C334 7F0477C4 4600103C */ c.lt.s $f2, $f0 +/* 07C338 7F0477C8 00000000 */ nop +/* 07C33C 7F0477CC 4502000F */ bc1fl .Ljp7F04780C +/* 07C340 7F0477D0 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07C344 7F0477D4 4602703C */ c.lt.s $f14, $f2 +/* 07C348 7F0477D8 24080001 */ li $t0, 1 +/* 07C34C 7F0477DC 4502000B */ bc1fl .Ljp7F04780C +/* 07C350 7F0477E0 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07C354 7F0477E4 AE0800D0 */ sw $t0, 0xd0($s0) +/* 07C358 7F0477E8 8FAB04A8 */ lw $t3, 0x4a8($sp) +/* 07C35C 7F0477EC 24090001 */ li $t1, 1 +/* 07C360 7F0477F0 AFA904AC */ sw $t1, 0x4ac($sp) +/* 07C364 7F0477F4 11600011 */ beqz $t3, .Ljp7F04783C +/* 07C368 7F0477F8 3C0C8005 */ lui $t4, %hi(global_timer) # $t4, 0x8005 +/* 07C36C 7F0477FC 8D8C83AC */ lw $t4, %lo(global_timer)($t4) +/* 07C370 7F047800 1000000E */ b .Ljp7F04783C +/* 07C374 7F047804 AE0C00B8 */ sw $t4, 0xb8($s0) +/* 07C378 7F047808 8E0200B8 */ lw $v0, 0xb8($s0) +.Ljp7F04780C: +/* 07C37C 7F04780C 3C0E8005 */ lui $t6, %hi(global_timer) # $t6, 0x8005 +/* 07C380 7F047810 0442000B */ bltzl $v0, .Ljp7F047840 +/* 07C384 7F047814 8FB904AC */ lw $t9, 0x4ac($sp) +/* 07C388 7F047818 8DCE83AC */ lw $t6, %lo(global_timer)($t6) +/* 07C38C 7F04781C 240F0001 */ li $t7, 1 +/* 07C390 7F047820 240D0001 */ li $t5, 1 +/* 07C394 7F047824 25CAFF88 */ addiu $t2, $t6, -0x78 +/* 07C398 7F047828 0142082A */ slt $at, $t2, $v0 +/* 07C39C 7F04782C 50200004 */ beql $at, $zero, .Ljp7F047840 +/* 07C3A0 7F047830 8FB904AC */ lw $t9, 0x4ac($sp) +/* 07C3A4 7F047834 AE0F00D0 */ sw $t7, 0xd0($s0) +/* 07C3A8 7F047838 AFAD04AC */ sw $t5, 0x4ac($sp) +.Ljp7F04783C: +/* 07C3AC 7F04783C 8FB904AC */ lw $t9, 0x4ac($sp) +.Ljp7F047840: +/* 07C3B0 7F047840 3C018005 */ lui $at, %hi(D_80052B3C) # $at, 0x8005 +/* 07C3B4 7F047844 53200013 */ beql $t9, $zero, .Ljp7F047894 +/* 07C3B8 7F047848 C60200B0 */ lwc1 $f2, 0xb0($s0) +/* 07C3BC 7F04784C C4202B6C */ lwc1 $f0, %lo(D_80052B3C)($at) +/* 07C3C0 7F047850 3C018005 */ lui $at, %hi(D_80052B40) # $at, 0x8005 +/* 07C3C4 7F047854 C4262B70 */ lwc1 $f6, %lo(D_80052B40)($at) +/* 07C3C8 7F047858 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07C3CC 7F04785C C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07C3D0 7F047860 C60A00B0 */ lwc1 $f10, 0xb0($s0) +/* 07C3D4 7F047864 46043202 */ mul.s $f8, $f6, $f4 +/* 07C3D8 7F047868 46085180 */ add.s $f6, $f10, $f8 +/* 07C3DC 7F04786C E60600B0 */ swc1 $f6, 0xb0($s0) +/* 07C3E0 7F047870 C60200B0 */ lwc1 $f2, 0xb0($s0) +/* 07C3E4 7F047874 4602003C */ c.lt.s $f0, $f2 +/* 07C3E8 7F047878 00000000 */ nop +/* 07C3EC 7F04787C 45020023 */ bc1fl .Ljp7F04790C +/* 07C3F0 7F047880 4602B03C */ c.lt.s $f22, $f2 +/* 07C3F4 7F047884 E60000B0 */ swc1 $f0, 0xb0($s0) +/* 07C3F8 7F047888 1000001F */ b .Ljp7F047908 +/* 07C3FC 7F04788C C60200B0 */ lwc1 $f2, 0xb0($s0) +/* 07C400 7F047890 C60200B0 */ lwc1 $f2, 0xb0($s0) +.Ljp7F047894: +/* 07C404 7F047894 3C188005 */ lui $t8, %hi(clock_timer) # $t8, 0x8005 +/* 07C408 7F047898 4602B03C */ c.lt.s $f22, $f2 +/* 07C40C 7F04789C 00000000 */ nop +/* 07C410 7F0478A0 4502001A */ bc1fl .Ljp7F04790C +/* 07C414 7F0478A4 4602B03C */ c.lt.s $f22, $f2 +/* 07C418 7F0478A8 8F1883A4 */ lw $t8, %lo(clock_timer)($t8) +/* 07C41C 7F0478AC 00001025 */ move $v0, $zero +/* 07C420 7F0478B0 3C018005 */ lui $at, %hi(D_80052B44) # $at, 0x8005 +/* 07C424 7F0478B4 1B00000C */ blez $t8, .Ljp7F0478E8 +/* 07C428 7F0478B8 00000000 */ nop +/* 07C42C 7F0478BC C4202B74 */ lwc1 $f0, %lo(D_80052B44)($at) +/* 07C430 7F0478C0 C60400B0 */ lwc1 $f4, 0xb0($s0) +.Ljp7F0478C4: +/* 07C434 7F0478C4 3C088005 */ lui $t0, %hi(clock_timer) # $t0, 0x8005 +/* 07C438 7F0478C8 24420001 */ addiu $v0, $v0, 1 +/* 07C43C 7F0478CC 46002282 */ mul.s $f10, $f4, $f0 +/* 07C440 7F0478D0 E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 07C444 7F0478D4 8D0883A4 */ lw $t0, %lo(clock_timer)($t0) +/* 07C448 7F0478D8 0048082A */ slt $at, $v0, $t0 +/* 07C44C 7F0478DC 5420FFF9 */ bnezl $at, .Ljp7F0478C4 +/* 07C450 7F0478E0 C60400B0 */ lwc1 $f4, 0xb0($s0) +/* 07C454 7F0478E4 C60200B0 */ lwc1 $f2, 0xb0($s0) +.Ljp7F0478E8: +/* 07C458 7F0478E8 3C018005 */ lui $at, %hi(D_80052B48) # $at, 0x8005 +/* 07C45C 7F0478EC C4282B78 */ lwc1 $f8, %lo(D_80052B48)($at) +/* 07C460 7F0478F0 4608103E */ c.le.s $f2, $f8 +/* 07C464 7F0478F4 00000000 */ nop +/* 07C468 7F0478F8 45020004 */ bc1fl .Ljp7F04790C +/* 07C46C 7F0478FC 4602B03C */ c.lt.s $f22, $f2 +/* 07C470 7F047900 E61600B0 */ swc1 $f22, 0xb0($s0) +/* 07C474 7F047904 C60200B0 */ lwc1 $f2, 0xb0($s0) +.Ljp7F047908: +/* 07C478 7F047908 4602B03C */ c.lt.s $f22, $f2 +.Ljp7F04790C: +/* 07C47C 7F04790C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07C480 7F047910 45020348 */ bc1fl .Ljp7F048634 +/* 07C484 7F047914 92220003 */ lbu $v0, 3($s1) +/* 07C488 7F047918 C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07C48C 7F04791C C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07C490 7F047920 46041282 */ mul.s $f10, $f2, $f4 +/* 07C494 7F047924 460A3200 */ add.s $f8, $f6, $f10 +/* 07C498 7F047928 E60800B4 */ swc1 $f8, 0xb4($s0) +/* 07C49C 7F04792C C60000B4 */ lwc1 $f0, 0xb4($s0) +/* 07C4A0 7F047930 4600A03E */ c.le.s $f20, $f0 +/* 07C4A4 7F047934 00000000 */ nop +/* 07C4A8 7F047938 4502033E */ bc1fl .Ljp7F048634 +/* 07C4AC 7F04793C 92220003 */ lbu $v0, 3($s1) +/* 07C4B0 7F047940 46140101 */ sub.s $f4, $f0, $f20 +.Ljp7F047944: +/* 07C4B4 7F047944 E60400B4 */ swc1 $f4, 0xb4($s0) +/* 07C4B8 7F047948 C60000B4 */ lwc1 $f0, 0xb4($s0) +/* 07C4BC 7F04794C 4600A03E */ c.le.s $f20, $f0 +/* 07C4C0 7F047950 00000000 */ nop +/* 07C4C4 7F047954 4503FFFB */ bc1tl .Ljp7F047944 +/* 07C4C8 7F047958 46140101 */ sub.s $f4, $f0, $f20 +/* 07C4CC 7F04795C 10000335 */ b .Ljp7F048634 +/* 07C4D0 7F047960 92220003 */ lbu $v0, 3($s1) +/* 07C4D4 7F047964 24010027 */ li $at, 39 +.Ljp7F047968: +/* 07C4D8 7F047968 14410255 */ bne $v0, $at, .Ljp7F0482C0 +/* 07C4DC 7F04796C 02202025 */ move $a0, $s1 +/* 07C4E0 7F047970 C62600A0 */ lwc1 $f6, 0xa0($s1) +/* 07C4E4 7F047974 AFA0047C */ sw $zero, 0x47c($sp) +/* 07C4E8 7F047978 24050001 */ li $a1, 1 +/* 07C4EC 7F04797C 0FC0D5E1 */ jal parse_handle_actionblocks +/* 07C4F0 7F047980 E7A60480 */ swc1 $f6, 0x480($sp) +/* 07C4F4 7F047984 C62E0098 */ lwc1 $f14, 0x98($s1) +/* 07C4F8 7F047988 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07C4FC 7F04798C 460EB03E */ c.le.s $f22, $f14 +/* 07C500 7F047990 00000000 */ nop +/* 07C504 7F047994 45020016 */ bc1fl .Ljp7F0479F0 +/* 07C508 7F047998 8E29000C */ lw $t1, 0xc($s1) +/* 07C50C 7F04799C C42283B4 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07C510 7F0479A0 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07C514 7F0479A4 4602703E */ c.le.s $f14, $f2 +/* 07C518 7F0479A8 00000000 */ nop +/* 07C51C 7F0479AC 45020006 */ bc1fl .Ljp7F0479C8 +/* 07C520 7F0479B0 C6200088 */ lwc1 $f0, 0x88($s1) +/* 07C524 7F0479B4 C62A0094 */ lwc1 $f10, 0x94($s1) +/* 07C528 7F0479B8 C62E0098 */ lwc1 $f14, 0x98($s1) +/* 07C52C 7F0479BC 10000008 */ b .Ljp7F0479E0 +/* 07C530 7F0479C0 E62A0088 */ swc1 $f10, 0x88($s1) +/* 07C534 7F0479C4 C6200088 */ lwc1 $f0, 0x88($s1) +.Ljp7F0479C8: +/* 07C538 7F0479C8 C6280094 */ lwc1 $f8, 0x94($s1) +/* 07C53C 7F0479CC 46004101 */ sub.s $f4, $f8, $f0 +/* 07C540 7F0479D0 46022182 */ mul.s $f6, $f4, $f2 +/* 07C544 7F0479D4 460E3283 */ div.s $f10, $f6, $f14 +/* 07C548 7F0479D8 460A0200 */ add.s $f8, $f0, $f10 +/* 07C54C 7F0479DC E6280088 */ swc1 $f8, 0x88($s1) +.Ljp7F0479E0: +/* 07C550 7F0479E0 C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07C554 7F0479E4 46047181 */ sub.s $f6, $f14, $f4 +/* 07C558 7F0479E8 E6260098 */ swc1 $f6, 0x98($s1) +/* 07C55C 7F0479EC 8E29000C */ lw $t1, 0xc($s1) +.Ljp7F0479F0: +/* 07C560 7F0479F0 00008025 */ move $s0, $zero +/* 07C564 7F0479F4 00095B00 */ sll $t3, $t1, 0xc +/* 07C568 7F0479F8 05600014 */ bltz $t3, .Ljp7F047A4C +/* 07C56C 7F0479FC 00000000 */ nop +/* 07C570 7F047A00 0FC13CCE */ jal check_if_object_has_not_been_destroyed +/* 07C574 7F047A04 02202025 */ move $a0, $s1 +/* 07C578 7F047A08 10400010 */ beqz $v0, .Ljp7F047A4C +/* 07C57C 7F047A0C 00000000 */ nop +/* 07C580 7F047A10 C62A0088 */ lwc1 $f10, 0x88($s1) +/* 07C584 7F047A14 26240058 */ addiu $a0, $s1, 0x58 +/* 07C588 7F047A18 3C0544FA */ lui $a1, 0x44fa +/* 07C58C 7F047A1C 460AB03C */ c.lt.s $f22, $f10 +/* 07C590 7F047A20 3C06453B */ lui $a2, (0x453B8000 >> 16) # lui $a2, 0x453b +/* 07C594 7F047A24 45010006 */ bc1t .Ljp7F047A40 +/* 07C598 7F047A28 00000000 */ nop +/* 07C59C 7F047A2C C6280094 */ lwc1 $f8, 0x94($s1) +/* 07C5A0 7F047A30 4608B03C */ c.lt.s $f22, $f8 +/* 07C5A4 7F047A34 00000000 */ nop +/* 07C5A8 7F047A38 45000004 */ bc1f .Ljp7F047A4C +/* 07C5AC 7F047A3C 00000000 */ nop +.Ljp7F047A40: +/* 07C5B0 7F047A40 0FC14F64 */ jal sub_GAME_7F053894 +/* 07C5B4 7F047A44 34C68000 */ ori $a2, (0x453B8000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 07C5B8 7F047A48 00408025 */ move $s0, $v0 +.Ljp7F047A4C: +/* 07C5BC 7F047A4C 5A000019 */ blezl $s0, .Ljp7F047AB4 +/* 07C5C0 7F047A50 8E2400AC */ lw $a0, 0xac($s1) +/* 07C5C4 7F047A54 8E2400AC */ lw $a0, 0xac($s1) +/* 07C5C8 7F047A58 10800005 */ beqz $a0, .Ljp7F047A70 +/* 07C5CC 7F047A5C 00000000 */ nop +/* 07C5D0 7F047A60 0C002380 */ jal sfxGetArg0Unk3F +/* 07C5D4 7F047A64 00000000 */ nop +/* 07C5D8 7F047A68 5440000A */ bnezl $v0, .Ljp7F047A94 +/* 07C5DC 7F047A6C 8E2400AC */ lw $a0, 0xac($s1) +.Ljp7F047A70: +/* 07C5E0 7F047A70 0FC3021B */ jal get_controls_locked_flag +/* 07C5E4 7F047A74 00000000 */ nop +/* 07C5E8 7F047A78 14400005 */ bnez $v0, .Ljp7F047A90 +/* 07C5EC 7F047A7C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07C5F0 7F047A80 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07C5F4 7F047A84 24050041 */ li $a1, 65 +/* 07C5F8 7F047A88 0C002386 */ jal play_sfx_a1 +/* 07C5FC 7F047A8C 262600AC */ addiu $a2, $s1, 0xac +.Ljp7F047A90: +/* 07C600 7F047A90 8E2400AC */ lw $a0, 0xac($s1) +.Ljp7F047A94: +/* 07C604 7F047A94 24050008 */ li $a1, 8 +/* 07C608 7F047A98 5080000F */ beql $a0, $zero, .Ljp7F047AD8 +/* 07C60C 7F047A9C 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C610 7F047AA0 0C002465 */ jal sfx_c_70009184 +/* 07C614 7F047AA4 02003025 */ move $a2, $s0 +/* 07C618 7F047AA8 1000000B */ b .Ljp7F047AD8 +/* 07C61C 7F047AAC 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C620 7F047AB0 8E2400AC */ lw $a0, 0xac($s1) +.Ljp7F047AB4: +/* 07C624 7F047AB4 50800008 */ beql $a0, $zero, .Ljp7F047AD8 +/* 07C628 7F047AB8 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C62C 7F047ABC 0C002380 */ jal sfxGetArg0Unk3F +/* 07C630 7F047AC0 00000000 */ nop +/* 07C634 7F047AC4 50400004 */ beql $v0, $zero, .Ljp7F047AD8 +/* 07C638 7F047AC8 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C63C 7F047ACC 0C00240C */ jal sfxDeactivate +/* 07C640 7F047AD0 8E2400AC */ lw $a0, 0xac($s1) +/* 07C644 7F047AD4 8E2400A4 */ lw $a0, 0xa4($s1) +.Ljp7F047AD8: +/* 07C648 7F047AD8 3C058007 */ lui $a1, %hi(ptr_setup_path_tbl) # $a1, 0x8007 +/* 07C64C 7F047ADC 5080002A */ beql $a0, $zero, .Ljp7F047B88 +/* 07C650 7F047AE0 8E2F0008 */ lw $t7, 8($s1) +/* 07C654 7F047AE4 8E2E00A8 */ lw $t6, 0xa8($s1) +/* 07C658 7F047AE8 8C8C0000 */ lw $t4, ($a0) +/* 07C65C 7F047AEC 24A55D40 */ addiu $a1, %lo(ptr_setup_path_tbl) # addiu $a1, $a1, 0x5d40 +/* 07C660 7F047AF0 000E5080 */ sll $t2, $t6, 2 +/* 07C664 7F047AF4 018A1021 */ addu $v0, $t4, $t2 +/* 07C668 7F047AF8 8C4F0000 */ lw $t7, ($v0) +/* 07C66C 7F047AFC 8CB90000 */ lw $t9, ($a1) +/* 07C670 7F047B00 8CA90018 */ lw $t1, 0x18($a1) +/* 07C674 7F047B04 000F6900 */ sll $t5, $t7, 4 +/* 07C678 7F047B08 01B91821 */ addu $v1, $t5, $t9 +/* 07C67C 7F047B0C 8C780000 */ lw $t8, ($v1) +/* 07C680 7F047B10 C6260058 */ lwc1 $f6, 0x58($s1) +/* 07C684 7F047B14 C6280060 */ lwc1 $f8, 0x60($s1) +/* 07C688 7F047B18 00184080 */ sll $t0, $t8, 2 +/* 07C68C 7F047B1C 01184023 */ subu $t0, $t0, $t8 +/* 07C690 7F047B20 00084080 */ sll $t0, $t0, 2 +/* 07C694 7F047B24 01184023 */ subu $t0, $t0, $t8 +/* 07C698 7F047B28 00084080 */ sll $t0, $t0, 2 +/* 07C69C 7F047B2C 01093021 */ addu $a2, $t0, $t1 +/* 07C6A0 7F047B30 C4C40000 */ lwc1 $f4, ($a2) +/* 07C6A4 7F047B34 C4CA0008 */ lwc1 $f10, 8($a2) +/* 07C6A8 7F047B38 AFA6047C */ sw $a2, 0x47c($sp) +/* 07C6AC 7F047B3C 46062301 */ sub.s $f12, $f4, $f6 +/* 07C6B0 7F047B40 0FC16BD4 */ jal atan2f +/* 07C6B4 7F047B44 46085381 */ sub.s $f14, $f10, $f8 +/* 07C6B8 7F047B48 E7A00480 */ swc1 $f0, 0x480($sp) +/* 07C6BC 7F047B4C 8E2B0008 */ lw $t3, 8($s1) +/* 07C6C0 7F047B50 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff +/* 07C6C4 7F047B54 C7A40480 */ lwc1 $f4, 0x480($sp) +/* 07C6C8 7F047B58 000B7080 */ sll $t6, $t3, 2 +/* 07C6CC 7F047B5C 05C10018 */ bgez $t6, .Ljp7F047BC0 +/* 07C6D0 7F047B60 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 07C6D4 7F047B64 8E2C0008 */ lw $t4, 8($s1) +/* 07C6D8 7F047B68 E62400A0 */ swc1 $f4, 0xa0($s1) +/* 07C6DC 7F047B6C 02202025 */ move $a0, $s1 +/* 07C6E0 7F047B70 01815024 */ and $t2, $t4, $at +/* 07C6E4 7F047B74 0FC113C3 */ jal sub_GAME_7F044B38 +/* 07C6E8 7F047B78 AE2A0008 */ sw $t2, 8($s1) +/* 07C6EC 7F047B7C 10000011 */ b .Ljp7F047BC4 +/* 07C6F0 7F047B80 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07C6F4 7F047B84 8E2F0008 */ lw $t7, 8($s1) +.Ljp7F047B88: +/* 07C6F8 7F047B88 000F6880 */ sll $t5, $t7, 2 +/* 07C6FC 7F047B8C 05A3000D */ bgezl $t5, .Ljp7F047BC4 +/* 07C700 7F047B90 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07C704 7F047B94 C62C0038 */ lwc1 $f12, 0x38($s1) +/* 07C708 7F047B98 0FC16BD4 */ jal atan2f +/* 07C70C 7F047B9C C62E0040 */ lwc1 $f14, 0x40($s1) +/* 07C710 7F047BA0 8E390008 */ lw $t9, 8($s1) +/* 07C714 7F047BA4 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff +/* 07C718 7F047BA8 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 07C71C 7F047BAC 0321C024 */ and $t8, $t9, $at +/* 07C720 7F047BB0 E62000A0 */ swc1 $f0, 0xa0($s1) +/* 07C724 7F047BB4 AE380008 */ sw $t8, 8($s1) +/* 07C728 7F047BB8 0FC113C3 */ jal sub_GAME_7F044B38 +/* 07C72C 7F047BBC 02202025 */ move $a0, $s1 +.Ljp7F047BC0: +/* 07C730 7F047BC0 C6260088 */ lwc1 $f6, 0x88($s1) +.Ljp7F047BC4: +/* 07C734 7F047BC4 4606B03C */ c.lt.s $f22, $f6 +/* 07C738 7F047BC8 00000000 */ nop +/* 07C73C 7F047BCC 450201AC */ bc1fl .Ljp7F048280 +/* 07C740 7F047BD0 8E2A0008 */ lw $t2, 8($s1) +/* 07C744 7F047BD4 8E680014 */ lw $t0, 0x14($s3) +/* 07C748 7F047BD8 8FA9047C */ lw $t1, 0x47c($sp) +/* 07C74C 7F047BDC 4600B386 */ mov.s $f14, $f22 +/* 07C750 7F047BE0 AFA8046C */ sw $t0, 0x46c($sp) +/* 07C754 7F047BE4 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C758 7F047BE8 E7AC043C */ swc1 $f12, 0x43c($sp) +/* 07C75C 7F047BEC C62A009C */ lwc1 $f10, 0x9c($s1) +/* 07C760 7F047BF0 11200013 */ beqz $t1, .Ljp7F047C40 +/* 07C764 7F047BF4 E7AA0438 */ swc1 $f10, 0x438($sp) +/* 07C768 7F047BF8 262B0058 */ addiu $t3, $s1, 0x58 +/* 07C76C 7F047BFC AFAB0074 */ sw $t3, 0x74($sp) +/* 07C770 7F047C00 0FC160F3 */ jal sinf +/* 07C774 7F047C04 E7AE0434 */ swc1 $f14, 0x434($sp) +/* 07C778 7F047C08 E7A00440 */ swc1 $f0, 0x440($sp) +/* 07C77C 7F047C0C E7B60444 */ swc1 $f22, 0x444($sp) +/* 07C780 7F047C10 0FC160F0 */ jal cosf +/* 07C784 7F047C14 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C788 7F047C18 E7A00448 */ swc1 $f0, 0x448($sp) +/* 07C78C 7F047C1C 8FA40074 */ lw $a0, 0x74($sp) +/* 07C790 7F047C20 27A50440 */ addiu $a1, $sp, 0x440 +/* 07C794 7F047C24 8FA6047C */ lw $a2, 0x47c($sp) +/* 07C798 7F047C28 0FC0BFCD */ jal sub_GAME_7F02FC34 +/* 07C79C 7F047C2C 3C074120 */ lui $a3, 0x4120 +/* 07C7A0 7F047C30 10400003 */ beqz $v0, .Ljp7F047C40 +/* 07C7A4 7F047C34 C7AE0434 */ lwc1 $f14, 0x434($sp) +/* 07C7A8 7F047C38 C62800A0 */ lwc1 $f8, 0xa0($s1) +/* 07C7AC 7F047C3C E7A80480 */ swc1 $f8, 0x480($sp) +.Ljp7F047C40: +/* 07C7B0 7F047C40 3C018005 */ lui $at, %hi(D_80052B4C) # $at, 0x8005 +/* 07C7B4 7F047C44 C4242B7C */ lwc1 $f4, %lo(D_80052B4C)($at) +/* 07C7B8 7F047C48 3C018005 */ lui $at, %hi(D_80052B50) # $at, 0x8005 +/* 07C7BC 7F047C4C C4262B80 */ lwc1 $f6, %lo(D_80052B50)($at) +/* 07C7C0 7F047C50 3C0738E4 */ lui $a3, (0x38E4C389 >> 16) # lui $a3, 0x38e4 +/* 07C7C4 7F047C54 34E7C389 */ ori $a3, (0x38E4C389 & 0xFFFF) # ori $a3, $a3, 0xc389 +/* 07C7C8 7F047C58 262400A0 */ addiu $a0, $s1, 0xa0 +/* 07C7CC 7F047C5C 8FA50480 */ lw $a1, 0x480($sp) +/* 07C7D0 7F047C60 2626009C */ addiu $a2, $s1, 0x9c +/* 07C7D4 7F047C64 E7AE0434 */ swc1 $f14, 0x434($sp) +/* 07C7D8 7F047C68 E7A40010 */ swc1 $f4, 0x10($sp) +/* 07C7DC 7F047C6C 0FC10D03 */ jal sub_GAME_7F04310C +/* 07C7E0 7F047C70 E7A60014 */ swc1 $f6, 0x14($sp) +/* 07C7E4 7F047C74 3C018005 */ lui $at, %hi(D_80052B54) # $at, 0x8005 +/* 07C7E8 7F047C78 C4342B84 */ lwc1 $f20, %lo(D_80052B54)($at) +/* 07C7EC 7F047C7C C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C7F0 7F047C80 C7AE0434 */ lwc1 $f14, 0x434($sp) +/* 07C7F4 7F047C84 3C018005 */ lui $at, %hi(D_80052B58) # $at, 0x8005 +/* 07C7F8 7F047C88 460CA03E */ c.le.s $f20, $f12 +/* 07C7FC 7F047C8C 00000000 */ nop +/* 07C800 7F047C90 45020009 */ bc1fl .Ljp7F047CB8 +/* 07C804 7F047C94 4616603C */ c.lt.s $f12, $f22 +/* 07C808 7F047C98 46146281 */ sub.s $f10, $f12, $f20 +.Ljp7F047C9C: +/* 07C80C 7F047C9C E62A00A0 */ swc1 $f10, 0xa0($s1) +/* 07C810 7F047CA0 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C814 7F047CA4 460CA03E */ c.le.s $f20, $f12 +/* 07C818 7F047CA8 00000000 */ nop +/* 07C81C 7F047CAC 4503FFFB */ bc1tl .Ljp7F047C9C +/* 07C820 7F047CB0 46146281 */ sub.s $f10, $f12, $f20 +/* 07C824 7F047CB4 4616603C */ c.lt.s $f12, $f22 +.Ljp7F047CB8: +/* 07C828 7F047CB8 00000000 */ nop +/* 07C82C 7F047CBC 45020009 */ bc1fl .Ljp7F047CE4 +/* 07C830 7F047CC0 C7A40480 */ lwc1 $f4, 0x480($sp) +/* 07C834 7F047CC4 46146200 */ add.s $f8, $f12, $f20 +.Ljp7F047CC8: +/* 07C838 7F047CC8 E62800A0 */ swc1 $f8, 0xa0($s1) +/* 07C83C 7F047CCC C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C840 7F047CD0 4616603C */ c.lt.s $f12, $f22 +/* 07C844 7F047CD4 00000000 */ nop +/* 07C848 7F047CD8 4503FFFB */ bc1tl .Ljp7F047CC8 +/* 07C84C 7F047CDC 46146200 */ add.s $f8, $f12, $f20 +/* 07C850 7F047CE0 C7A40480 */ lwc1 $f4, 0x480($sp) +.Ljp7F047CE4: +/* 07C854 7F047CE4 460C2032 */ c.eq.s $f4, $f12 +/* 07C858 7F047CE8 00000000 */ nop +/* 07C85C 7F047CEC 4502000F */ bc1fl .Ljp7F047D2C +/* 07C860 7F047CF0 8E8E0008 */ lw $t6, 8($s4) +/* 07C864 7F047CF4 C620009C */ lwc1 $f0, 0x9c($s1) +/* 07C868 7F047CF8 C4262B88 */ lwc1 $f6, %lo(D_80052B58)($at) +/* 07C86C 7F047CFC 3C018005 */ lui $at, %hi(D_80052B5C) # $at, 0x8005 +/* 07C870 7F047D00 4606003E */ c.le.s $f0, $f6 +/* 07C874 7F047D04 00000000 */ nop +/* 07C878 7F047D08 45020008 */ bc1fl .Ljp7F047D2C +/* 07C87C 7F047D0C 8E8E0008 */ lw $t6, 8($s4) +/* 07C880 7F047D10 C42A2B8C */ lwc1 $f10, %lo(D_80052B5C)($at) +/* 07C884 7F047D14 4600503E */ c.le.s $f10, $f0 +/* 07C888 7F047D18 00000000 */ nop +/* 07C88C 7F047D1C 45020003 */ bc1fl .Ljp7F047D2C +/* 07C890 7F047D20 8E8E0008 */ lw $t6, 8($s4) +/* 07C894 7F047D24 E636009C */ swc1 $f22, 0x9c($s1) +/* 07C898 7F047D28 8E8E0008 */ lw $t6, 8($s4) +.Ljp7F047D2C: +/* 07C89C 7F047D2C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07C8A0 7F047D30 C42283B4 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07C8A4 7F047D34 8DCC0008 */ lw $t4, 8($t6) +/* 07C8A8 7F047D38 C7A4043C */ lwc1 $f4, 0x43c($sp) +/* 07C8AC 7F047D3C 4602B03C */ c.lt.s $f22, $f2 +/* 07C8B0 7F047D40 8D8A000C */ lw $t2, 0xc($t4) +/* 07C8B4 7F047D44 45000004 */ bc1f .Ljp7F047D58 +/* 07C8B8 7F047D48 8D500004 */ lw $s0, 4($t2) +/* 07C8BC 7F047D4C C62800A0 */ lwc1 $f8, 0xa0($s1) +/* 07C8C0 7F047D50 46044181 */ sub.s $f6, $f8, $f4 +/* 07C8C4 7F047D54 46023383 */ div.s $f14, $f6, $f2 +.Ljp7F047D58: +/* 07C8C8 7F047D58 4616703C */ c.lt.s $f14, $f22 +/* 07C8CC 7F047D5C 00000000 */ nop +/* 07C8D0 7F047D60 45000002 */ bc1f .Ljp7F047D6C +/* 07C8D4 7F047D64 00000000 */ nop +/* 07C8D8 7F047D68 46147380 */ add.s $f14, $f14, $f20 +.Ljp7F047D6C: +/* 07C8DC 7F047D6C 0FC160F3 */ jal sinf +/* 07C8E0 7F047D70 46007306 */ mov.s $f12, $f14 +/* 07C8E4 7F047D74 C60A0008 */ lwc1 $f10, 8($s0) +/* 07C8E8 7F047D78 C6880014 */ lwc1 $f8, 0x14($s4) +/* 07C8EC 7F047D7C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07C8F0 7F047D80 46085102 */ mul.s $f4, $f10, $f8 +/* 07C8F4 7F047D84 C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07C8F8 7F047D88 46040182 */ mul.s $f6, $f0, $f4 +/* 07C8FC 7F047D8C 00000000 */ nop +/* 07C900 7F047D90 460A3202 */ mul.s $f8, $f6, $f10 +/* 07C904 7F047D94 E7A80464 */ swc1 $f8, 0x464($sp) +/* 07C908 7F047D98 0FC160F3 */ jal sinf +/* 07C90C 7F047D9C C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C910 7F047DA0 E7A00440 */ swc1 $f0, 0x440($sp) +/* 07C914 7F047DA4 E7B60444 */ swc1 $f22, 0x444($sp) +/* 07C918 7F047DA8 0FC160F0 */ jal cosf +/* 07C91C 7F047DAC C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C920 7F047DB0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07C924 7F047DB4 44817000 */ mtc1 $at, $f14 +/* 07C928 7F047DB8 E7A00448 */ swc1 $f0, 0x448($sp) +/* 07C92C 7F047DBC 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07C930 7F047DC0 C42283B4 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07C934 7F047DC4 C6240088 */ lwc1 $f4, 0x88($s1) +/* 07C938 7F047DC8 C7AA0440 */ lwc1 $f10, 0x440($sp) +/* 07C93C 7F047DCC C7AC0464 */ lwc1 $f12, 0x464($sp) +/* 07C940 7F047DD0 46022182 */ mul.s $f6, $f4, $f2 +/* 07C944 7F047DD4 C6240058 */ lwc1 $f4, 0x58($s1) +/* 07C948 7F047DD8 27B0046C */ addiu $s0, $sp, 0x46c +/* 07C94C 7F047DDC 240F001F */ li $t7, 31 +/* 07C950 7F047DE0 02002025 */ move $a0, $s0 +/* 07C954 7F047DE4 460A3202 */ mul.s $f8, $f6, $f10 +/* 07C958 7F047DE8 46082180 */ add.s $f6, $f4, $f8 +/* 07C95C 7F047DEC C7A40448 */ lwc1 $f4, 0x448($sp) +/* 07C960 7F047DF0 460C2202 */ mul.s $f8, $f4, $f12 +/* 07C964 7F047DF4 46083181 */ sub.s $f6, $f6, $f8 +/* 07C968 7F047DF8 E7A6069C */ swc1 $f6, 0x69c($sp) +/* 07C96C 7F047DFC C628005C */ lwc1 $f8, 0x5c($s1) +/* 07C970 7F047E00 44073000 */ mfc1 $a3, $f6 +/* 07C974 7F047E04 E7A806A0 */ swc1 $f8, 0x6a0($sp) +/* 07C978 7F047E08 C6280088 */ lwc1 $f8, 0x88($s1) +/* 07C97C 7F047E0C 46024202 */ mul.s $f8, $f8, $f2 +/* 07C980 7F047E10 00000000 */ nop +/* 07C984 7F047E14 46044202 */ mul.s $f8, $f8, $f4 +/* 07C988 7F047E18 C6240060 */ lwc1 $f4, 0x60($s1) +/* 07C98C 7F047E1C 46082100 */ add.s $f4, $f4, $f8 +/* 07C990 7F047E20 460C5202 */ mul.s $f8, $f10, $f12 +/* 07C994 7F047E24 46044280 */ add.s $f10, $f8, $f4 +/* 07C998 7F047E28 E7AA06A4 */ swc1 $f10, 0x6a4($sp) +/* 07C99C 7F047E2C 8E660010 */ lw $a2, 0x10($s3) +/* 07C9A0 7F047E30 8E650008 */ lw $a1, 8($s3) +/* 07C9A4 7F047E34 E7B60020 */ swc1 $f22, 0x20($sp) +/* 07C9A8 7F047E38 E7B60018 */ swc1 $f22, 0x18($sp) +/* 07C9AC 7F047E3C AFAF0014 */ sw $t7, 0x14($sp) +/* 07C9B0 7F047E40 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C9B4 7F047E44 E7AE0024 */ swc1 $f14, 0x24($sp) +/* 07C9B8 7F047E48 0FC2C675 */ jal sub_GAME_7F0B0E24 +/* 07C9BC 7F047E4C E7AE001C */ swc1 $f14, 0x1c($sp) +/* 07C9C0 7F047E50 104000FA */ beqz $v0, .Ljp7F04823C +/* 07C9C4 7F047E54 02002025 */ move $a0, $s0 +/* 07C9C8 7F047E58 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07C9CC 7F047E5C 44814000 */ mtc1 $at, $f8 +/* 07C9D0 7F047E60 240D001F */ li $t5, 31 +/* 07C9D4 7F047E64 AFAD0010 */ sw $t5, 0x10($sp) +/* 07C9D8 7F047E68 8FA5069C */ lw $a1, 0x69c($sp) +/* 07C9DC 7F047E6C 8FA606A4 */ lw $a2, 0x6a4($sp) +/* 07C9E0 7F047E70 3C074120 */ lui $a3, 0x4120 +/* 07C9E4 7F047E74 E7B60014 */ swc1 $f22, 0x14($sp) +/* 07C9E8 7F047E78 0FC2C91A */ jal sub_GAME_7F0B18B8 +/* 07C9EC 7F047E7C E7A80018 */ swc1 $f8, 0x18($sp) +/* 07C9F0 7F047E80 044300EF */ bgezl $v0, .Ljp7F048240 +/* 07C9F4 7F047E84 C6260098 */ lwc1 $f6, 0x98($s1) +/* 07C9F8 7F047E88 8E790014 */ lw $t9, 0x14($s3) +/* 07C9FC 7F047E8C 8FB8046C */ lw $t8, 0x46c($sp) +/* 07CA00 7F047E90 02202025 */ move $a0, $s1 +/* 07CA04 7F047E94 AFB90450 */ sw $t9, 0x450($sp) +/* 07CA08 7F047E98 C6640008 */ lwc1 $f4, 8($s3) +/* 07CA0C 7F047E9C E7A40454 */ swc1 $f4, 0x454($sp) +/* 07CA10 7F047EA0 C666000C */ lwc1 $f6, 0xc($s3) +/* 07CA14 7F047EA4 E7A60458 */ swc1 $f6, 0x458($sp) +/* 07CA18 7F047EA8 C66A0010 */ lwc1 $f10, 0x10($s3) +/* 07CA1C 7F047EAC E7AA045C */ swc1 $f10, 0x45c($sp) +/* 07CA20 7F047EB0 AE780014 */ sw $t8, 0x14($s3) +/* 07CA24 7F047EB4 C7A2069C */ lwc1 $f2, 0x69c($sp) +/* 07CA28 7F047EB8 E6620008 */ swc1 $f2, 8($s3) +/* 07CA2C 7F047EBC E6220058 */ swc1 $f2, 0x58($s1) +/* 07CA30 7F047EC0 C7A206A4 */ lwc1 $f2, 0x6a4($sp) +/* 07CA34 7F047EC4 E6620010 */ swc1 $f2, 0x10($s3) +/* 07CA38 7F047EC8 0FC101E1 */ jal sub_GAME_7F040484 +/* 07CA3C 7F047ECC E6220060 */ swc1 $f2, 0x60($s1) +/* 07CA40 7F047ED0 0FC15C68 */ jal sub_GAME_7F056CA0 +/* 07CA44 7F047ED4 02202025 */ move $a0, $s1 +/* 07CA48 7F047ED8 0FC1131F */ jal sub_GAME_7F0448A8 +/* 07CA4C 7F047EDC 02602025 */ move $a0, $s3 +/* 07CA50 7F047EE0 10400092 */ beqz $v0, .Ljp7F04812C +/* 07CA54 7F047EE4 00409025 */ move $s2, $v0 +/* 07CA58 7F047EE8 8E880008 */ lw $t0, 8($s4) +/* 07CA5C 7F047EEC C6280018 */ lwc1 $f8, 0x18($s1) +/* 07CA60 7F047EF0 02002025 */ move $a0, $s0 +/* 07CA64 7F047EF4 8D090008 */ lw $t1, 8($t0) +/* 07CA68 7F047EF8 8D2B0028 */ lw $t3, 0x28($t1) +/* 07CA6C 7F047EFC 8D620004 */ lw $v0, 4($t3) +/* 07CA70 7F047F00 C4440004 */ lwc1 $f4, 4($v0) +/* 07CA74 7F047F04 46044182 */ mul.s $f6, $f8, $f4 +/* 07CA78 7F047F08 E7A60428 */ swc1 $f6, 0x428($sp) +/* 07CA7C 7F047F0C C62A0020 */ lwc1 $f10, 0x20($s1) +/* 07CA80 7F047F10 C4480004 */ lwc1 $f8, 4($v0) +/* 07CA84 7F047F14 46085102 */ mul.s $f4, $f10, $f8 +/* 07CA88 7F047F18 E7A40430 */ swc1 $f4, 0x430($sp) +/* 07CA8C 7F047F1C C6260018 */ lwc1 $f6, 0x18($s1) +/* 07CA90 7F047F20 C44A0008 */ lwc1 $f10, 8($v0) +/* 07CA94 7F047F24 460A3202 */ mul.s $f8, $f6, $f10 +/* 07CA98 7F047F28 E7A8041C */ swc1 $f8, 0x41c($sp) +/* 07CA9C 7F047F2C C6240020 */ lwc1 $f4, 0x20($s1) +/* 07CAA0 7F047F30 C4460008 */ lwc1 $f6, 8($v0) +/* 07CAA4 7F047F34 46062282 */ mul.s $f10, $f4, $f6 +/* 07CAA8 7F047F38 E7AA0424 */ swc1 $f10, 0x424($sp) +/* 07CAAC 7F047F3C C6280038 */ lwc1 $f8, 0x38($s1) +/* 07CAB0 7F047F40 C4440014 */ lwc1 $f4, 0x14($v0) +/* 07CAB4 7F047F44 46044182 */ mul.s $f6, $f8, $f4 +/* 07CAB8 7F047F48 E7A60410 */ swc1 $f6, 0x410($sp) +/* 07CABC 7F047F4C C62A0040 */ lwc1 $f10, 0x40($s1) +/* 07CAC0 7F047F50 C4480014 */ lwc1 $f8, 0x14($v0) +/* 07CAC4 7F047F54 46085102 */ mul.s $f4, $f10, $f8 +/* 07CAC8 7F047F58 E7A40418 */ swc1 $f4, 0x418($sp) +/* 07CACC 7F047F5C C6260038 */ lwc1 $f6, 0x38($s1) +/* 07CAD0 7F047F60 C44A0018 */ lwc1 $f10, 0x18($v0) +/* 07CAD4 7F047F64 460A3202 */ mul.s $f8, $f6, $f10 +/* 07CAD8 7F047F68 E7A80404 */ swc1 $f8, 0x404($sp) +/* 07CADC 7F047F6C C6240040 */ lwc1 $f4, 0x40($s1) +/* 07CAE0 7F047F70 C4460018 */ lwc1 $f6, 0x18($v0) +/* 07CAE4 7F047F74 C7A80410 */ lwc1 $f8, 0x410($sp) +/* 07CAE8 7F047F78 46062282 */ mul.s $f10, $f4, $f6 +/* 07CAEC 7F047F7C C7A40428 */ lwc1 $f4, 0x428($sp) +/* 07CAF0 7F047F80 E7AA040C */ swc1 $f10, 0x40c($sp) +/* 07CAF4 7F047F84 8E6E0014 */ lw $t6, 0x14($s3) +/* 07CAF8 7F047F88 AFAE046C */ sw $t6, 0x46c($sp) +/* 07CAFC 7F047F8C C6600008 */ lwc1 $f0, 8($s3) +/* 07CB00 7F047F90 C6620010 */ lwc1 $f2, 0x10($s3) +/* 07CB04 7F047F94 46040180 */ add.s $f6, $f0, $f4 +/* 07CB08 7F047F98 C7A40418 */ lwc1 $f4, 0x418($sp) +/* 07CB0C 7F047F9C 44050000 */ mfc1 $a1, $f0 +/* 07CB10 7F047FA0 44061000 */ mfc1 $a2, $f2 +/* 07CB14 7F047FA4 46064280 */ add.s $f10, $f8, $f6 +/* 07CB18 7F047FA8 C7A80430 */ lwc1 $f8, 0x430($sp) +/* 07CB1C 7F047FAC 46081180 */ add.s $f6, $f2, $f8 +/* 07CB20 7F047FB0 44075000 */ mfc1 $a3, $f10 +/* 07CB24 7F047FB4 46062280 */ add.s $f10, $f4, $f6 +/* 07CB28 7F047FB8 0FC2C5E5 */ jal sub_GAME_7F0B0BE4 +/* 07CB2C 7F047FBC E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07CB30 7F047FC0 10400059 */ beqz $v0, .Ljp7F048128 +/* 07CB34 7F047FC4 C7A40428 */ lwc1 $f4, 0x428($sp) +/* 07CB38 7F047FC8 C6600008 */ lwc1 $f0, 8($s3) +/* 07CB3C 7F047FCC C7A80410 */ lwc1 $f8, 0x410($sp) +/* 07CB40 7F047FD0 C6620010 */ lwc1 $f2, 0x10($s3) +/* 07CB44 7F047FD4 46040180 */ add.s $f6, $f0, $f4 +/* 07CB48 7F047FD8 C7A40418 */ lwc1 $f4, 0x418($sp) +/* 07CB4C 7F047FDC 02002025 */ move $a0, $s0 +/* 07CB50 7F047FE0 46064280 */ add.s $f10, $f8, $f6 +/* 07CB54 7F047FE4 C7A60430 */ lwc1 $f6, 0x430($sp) +/* 07CB58 7F047FE8 44055000 */ mfc1 $a1, $f10 +/* 07CB5C 7F047FEC 46061280 */ add.s $f10, $f2, $f6 +/* 07CB60 7F047FF0 460A2180 */ add.s $f6, $f4, $f10 +/* 07CB64 7F047FF4 C7AA041C */ lwc1 $f10, 0x41c($sp) +/* 07CB68 7F047FF8 44063000 */ mfc1 $a2, $f6 +/* 07CB6C 7F047FFC 460A0180 */ add.s $f6, $f0, $f10 +/* 07CB70 7F048000 46064280 */ add.s $f10, $f8, $f6 +/* 07CB74 7F048004 C7A80424 */ lwc1 $f8, 0x424($sp) +/* 07CB78 7F048008 46081180 */ add.s $f6, $f2, $f8 +/* 07CB7C 7F04800C 44075000 */ mfc1 $a3, $f10 +/* 07CB80 7F048010 46062280 */ add.s $f10, $f4, $f6 +/* 07CB84 7F048014 0FC2C5E5 */ jal sub_GAME_7F0B0BE4 +/* 07CB88 7F048018 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07CB8C 7F04801C 10400042 */ beqz $v0, .Ljp7F048128 +/* 07CB90 7F048020 C7A4041C */ lwc1 $f4, 0x41c($sp) +/* 07CB94 7F048024 C6680008 */ lwc1 $f8, 8($s3) +/* 07CB98 7F048028 C7A60410 */ lwc1 $f6, 0x410($sp) +/* 07CB9C 7F04802C 02002025 */ move $a0, $s0 +/* 07CBA0 7F048030 46044000 */ add.s $f0, $f8, $f4 +/* 07CBA4 7F048034 C7A40424 */ lwc1 $f4, 0x424($sp) +/* 07CBA8 7F048038 C6680010 */ lwc1 $f8, 0x10($s3) +/* 07CBAC 7F04803C 46003280 */ add.s $f10, $f6, $f0 +/* 07CBB0 7F048040 C7A60418 */ lwc1 $f6, 0x418($sp) +/* 07CBB4 7F048044 46044080 */ add.s $f2, $f8, $f4 +/* 07CBB8 7F048048 44055000 */ mfc1 $a1, $f10 +/* 07CBBC 7F04804C C7A80404 */ lwc1 $f8, 0x404($sp) +/* 07CBC0 7F048050 46023280 */ add.s $f10, $f6, $f2 +/* 07CBC4 7F048054 C7A6040C */ lwc1 $f6, 0x40c($sp) +/* 07CBC8 7F048058 46004100 */ add.s $f4, $f8, $f0 +/* 07CBCC 7F04805C 44065000 */ mfc1 $a2, $f10 +/* 07CBD0 7F048060 46023280 */ add.s $f10, $f6, $f2 +/* 07CBD4 7F048064 44072000 */ mfc1 $a3, $f4 +/* 07CBD8 7F048068 0FC2C5E5 */ jal sub_GAME_7F0B0BE4 +/* 07CBDC 7F04806C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07CBE0 7F048070 1040002D */ beqz $v0, .Ljp7F048128 +/* 07CBE4 7F048074 C7A4041C */ lwc1 $f4, 0x41c($sp) +/* 07CBE8 7F048078 C6600008 */ lwc1 $f0, 8($s3) +/* 07CBEC 7F04807C C7A80404 */ lwc1 $f8, 0x404($sp) +/* 07CBF0 7F048080 C6620010 */ lwc1 $f2, 0x10($s3) +/* 07CBF4 7F048084 46040180 */ add.s $f6, $f0, $f4 +/* 07CBF8 7F048088 C7A4040C */ lwc1 $f4, 0x40c($sp) +/* 07CBFC 7F04808C 02002025 */ move $a0, $s0 +/* 07CC00 7F048090 46064280 */ add.s $f10, $f8, $f6 +/* 07CC04 7F048094 C7A60424 */ lwc1 $f6, 0x424($sp) +/* 07CC08 7F048098 44055000 */ mfc1 $a1, $f10 +/* 07CC0C 7F04809C 46061280 */ add.s $f10, $f2, $f6 +/* 07CC10 7F0480A0 460A2180 */ add.s $f6, $f4, $f10 +/* 07CC14 7F0480A4 C7AA0428 */ lwc1 $f10, 0x428($sp) +/* 07CC18 7F0480A8 44063000 */ mfc1 $a2, $f6 +/* 07CC1C 7F0480AC 460A0180 */ add.s $f6, $f0, $f10 +/* 07CC20 7F0480B0 46064280 */ add.s $f10, $f8, $f6 +/* 07CC24 7F0480B4 C7A80430 */ lwc1 $f8, 0x430($sp) +/* 07CC28 7F0480B8 46081180 */ add.s $f6, $f2, $f8 +/* 07CC2C 7F0480BC 44075000 */ mfc1 $a3, $f10 +/* 07CC30 7F0480C0 46062280 */ add.s $f10, $f4, $f6 +/* 07CC34 7F0480C4 0FC2C5E5 */ jal sub_GAME_7F0B0BE4 +/* 07CC38 7F0480C8 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07CC3C 7F0480CC 10400016 */ beqz $v0, .Ljp7F048128 +/* 07CC40 7F0480D0 C7A40428 */ lwc1 $f4, 0x428($sp) +/* 07CC44 7F0480D4 C6680008 */ lwc1 $f8, 8($s3) +/* 07CC48 7F0480D8 C7A60404 */ lwc1 $f6, 0x404($sp) +/* 07CC4C 7F0480DC 02002025 */ move $a0, $s0 +/* 07CC50 7F0480E0 46044000 */ add.s $f0, $f8, $f4 +/* 07CC54 7F0480E4 C7A40430 */ lwc1 $f4, 0x430($sp) +/* 07CC58 7F0480E8 C6680010 */ lwc1 $f8, 0x10($s3) +/* 07CC5C 7F0480EC 46003280 */ add.s $f10, $f6, $f0 +/* 07CC60 7F0480F0 C7A6040C */ lwc1 $f6, 0x40c($sp) +/* 07CC64 7F0480F4 46044080 */ add.s $f2, $f8, $f4 +/* 07CC68 7F0480F8 44055000 */ mfc1 $a1, $f10 +/* 07CC6C 7F0480FC C7A80410 */ lwc1 $f8, 0x410($sp) +/* 07CC70 7F048100 46023280 */ add.s $f10, $f6, $f2 +/* 07CC74 7F048104 C7A60418 */ lwc1 $f6, 0x418($sp) +/* 07CC78 7F048108 46004100 */ add.s $f4, $f8, $f0 +/* 07CC7C 7F04810C 44065000 */ mfc1 $a2, $f10 +/* 07CC80 7F048110 46023280 */ add.s $f10, $f6, $f2 +/* 07CC84 7F048114 44072000 */ mfc1 $a3, $f4 +/* 07CC88 7F048118 0FC2C5E5 */ jal sub_GAME_7F0B0BE4 +/* 07CC8C 7F04811C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07CC90 7F048120 14400002 */ bnez $v0, .Ljp7F04812C +/* 07CC94 7F048124 00000000 */ nop +.Ljp7F048128: +/* 07CC98 7F048128 00009025 */ move $s2, $zero +.Ljp7F04812C: +/* 07CC9C 7F04812C 12400023 */ beqz $s2, .Ljp7F0481BC +/* 07CCA0 7F048130 02202025 */ move $a0, $s1 +/* 07CCA4 7F048134 262C0058 */ addiu $t4, $s1, 0x58 +/* 07CCA8 7F048138 AFAC0074 */ sw $t4, 0x74($sp) +/* 07CCAC 7F04813C 0FC113C3 */ jal sub_GAME_7F044B38 +/* 07CCB0 7F048140 2630007C */ addiu $s0, $s1, 0x7c +/* 07CCB4 7F048144 02602025 */ move $a0, $s3 +/* 07CCB8 7F048148 0FC1016D */ jal sub_GAME_7F0402B4 +/* 07CCBC 7F04814C 02002825 */ move $a1, $s0 +/* 07CCC0 7F048150 0FC14832 */ jal detonate_proxmine_In_range +/* 07CCC4 7F048154 8FA40074 */ lw $a0, 0x74($sp) +/* 07CCC8 7F048158 8FAA047C */ lw $t2, 0x47c($sp) +/* 07CCCC 7F04815C 27A40454 */ addiu $a0, $sp, 0x454 +/* 07CCD0 7F048160 27A5069C */ addiu $a1, $sp, 0x69c +/* 07CCD4 7F048164 11400054 */ beqz $t2, .Ljp7F0482B8 +/* 07CCD8 7F048168 01403025 */ move $a2, $t2 +/* 07CCDC 7F04816C 0FC0C014 */ jal sub_GAME_7F02FD50 +/* 07CCE0 7F048170 3C0742C8 */ lui $a3, 0x42c8 +/* 07CCE4 7F048174 10400050 */ beqz $v0, .Ljp7F0482B8 +/* 07CCE8 7F048178 00000000 */ nop +/* 07CCEC 7F04817C 8E2F00A8 */ lw $t7, 0xa8($s1) +/* 07CCF0 7F048180 8E3900A4 */ lw $t9, 0xa4($s1) +/* 07CCF4 7F048184 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 07CCF8 7F048188 25ED0001 */ addiu $t5, $t7, 1 +/* 07CCFC 7F04818C AE2D00A8 */ sw $t5, 0xa8($s1) +/* 07CD00 7F048190 8F380000 */ lw $t8, ($t9) +/* 07CD04 7F048194 000D4880 */ sll $t1, $t5, 2 +/* 07CD08 7F048198 03095821 */ addu $t3, $t8, $t1 +/* 07CD0C 7F04819C 8D6E0000 */ lw $t6, ($t3) +/* 07CD10 7F0481A0 05C10045 */ bgez $t6, .Ljp7F0482B8 +/* 07CD14 7F0481A4 00000000 */ nop +/* 07CD18 7F0481A8 44814000 */ mtc1 $at, $f8 +/* 07CD1C 7F0481AC AE2000A4 */ sw $zero, 0xa4($s1) +/* 07CD20 7F0481B0 E6360094 */ swc1 $f22, 0x94($s1) +/* 07CD24 7F0481B4 10000040 */ b .Ljp7F0482B8 +/* 07CD28 7F0481B8 E6280098 */ swc1 $f8, 0x98($s1) +.Ljp7F0481BC: +/* 07CD2C 7F0481BC C6240098 */ lwc1 $f4, 0x98($s1) +/* 07CD30 7F0481C0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 07CD34 7F0481C4 4616203C */ c.lt.s $f4, $f22 +/* 07CD38 7F0481C8 00000000 */ nop +/* 07CD3C 7F0481CC 45020006 */ bc1fl .Ljp7F0481E8 +/* 07CD40 7F0481D0 E6360088 */ swc1 $f22, 0x88($s1) +/* 07CD44 7F0481D4 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07CD48 7F0481D8 44815000 */ mtc1 $at, $f10 +/* 07CD4C 7F0481DC E6260094 */ swc1 $f6, 0x94($s1) +/* 07CD50 7F0481E0 E62A0098 */ swc1 $f10, 0x98($s1) +/* 07CD54 7F0481E4 E6360088 */ swc1 $f22, 0x88($s1) +.Ljp7F0481E8: +/* 07CD58 7F0481E8 C7A8043C */ lwc1 $f8, 0x43c($sp) +/* 07CD5C 7F0481EC 02202025 */ move $a0, $s1 +/* 07CD60 7F0481F0 E62800A0 */ swc1 $f8, 0xa0($s1) +/* 07CD64 7F0481F4 C7A40438 */ lwc1 $f4, 0x438($sp) +/* 07CD68 7F0481F8 E624009C */ swc1 $f4, 0x9c($s1) +/* 07CD6C 7F0481FC 8FAC0450 */ lw $t4, 0x450($sp) +/* 07CD70 7F048200 AE6C0014 */ sw $t4, 0x14($s3) +/* 07CD74 7F048204 C7A20454 */ lwc1 $f2, 0x454($sp) +/* 07CD78 7F048208 E6620008 */ swc1 $f2, 8($s3) +/* 07CD7C 7F04820C E6220058 */ swc1 $f2, 0x58($s1) +/* 07CD80 7F048210 C7A20458 */ lwc1 $f2, 0x458($sp) +/* 07CD84 7F048214 E662000C */ swc1 $f2, 0xc($s3) +/* 07CD88 7F048218 E622005C */ swc1 $f2, 0x5c($s1) +/* 07CD8C 7F04821C C7A2045C */ lwc1 $f2, 0x45c($sp) +/* 07CD90 7F048220 E6620010 */ swc1 $f2, 0x10($s3) +/* 07CD94 7F048224 0FC101E1 */ jal sub_GAME_7F040484 +/* 07CD98 7F048228 E6220060 */ swc1 $f2, 0x60($s1) +/* 07CD9C 7F04822C 0FC15C68 */ jal sub_GAME_7F056CA0 +/* 07CDA0 7F048230 02202025 */ move $a0, $s1 +/* 07CDA4 7F048234 10000020 */ b .Ljp7F0482B8 +/* 07CDA8 7F048238 00000000 */ nop +.Ljp7F04823C: +/* 07CDAC 7F04823C C6260098 */ lwc1 $f6, 0x98($s1) +.Ljp7F048240: +/* 07CDB0 7F048240 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 07CDB4 7F048244 4616303C */ c.lt.s $f6, $f22 +/* 07CDB8 7F048248 00000000 */ nop +/* 07CDBC 7F04824C 45020006 */ bc1fl .Ljp7F048268 +/* 07CDC0 7F048250 E6360088 */ swc1 $f22, 0x88($s1) +/* 07CDC4 7F048254 C62A0088 */ lwc1 $f10, 0x88($s1) +/* 07CDC8 7F048258 44814000 */ mtc1 $at, $f8 +/* 07CDCC 7F04825C E62A0094 */ swc1 $f10, 0x94($s1) +/* 07CDD0 7F048260 E6280098 */ swc1 $f8, 0x98($s1) +/* 07CDD4 7F048264 E6360088 */ swc1 $f22, 0x88($s1) +.Ljp7F048268: +/* 07CDD8 7F048268 C7A4043C */ lwc1 $f4, 0x43c($sp) +/* 07CDDC 7F04826C E62400A0 */ swc1 $f4, 0xa0($s1) +/* 07CDE0 7F048270 C7A60438 */ lwc1 $f6, 0x438($sp) +/* 07CDE4 7F048274 10000010 */ b .Ljp7F0482B8 +/* 07CDE8 7F048278 E626009C */ swc1 $f6, 0x9c($s1) +/* 07CDEC 7F04827C 8E2A0008 */ lw $t2, 8($s1) +.Ljp7F048280: +/* 07CDF0 7F048280 000A7880 */ sll $t7, $t2, 2 +/* 07CDF4 7F048284 05E1000C */ bgez $t7, .Ljp7F0482B8 +/* 07CDF8 7F048288 00000000 */ nop +/* 07CDFC 7F04828C C62C0038 */ lwc1 $f12, 0x38($s1) +/* 07CE00 7F048290 0FC16BD4 */ jal atan2f +/* 07CE04 7F048294 C62E0040 */ lwc1 $f14, 0x40($s1) +/* 07CE08 7F048298 8E2D0008 */ lw $t5, 8($s1) +/* 07CE0C 7F04829C 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff +/* 07CE10 7F0482A0 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 07CE14 7F0482A4 01A1C824 */ and $t9, $t5, $at +/* 07CE18 7F0482A8 E62000A0 */ swc1 $f0, 0xa0($s1) +/* 07CE1C 7F0482AC AE390008 */ sw $t9, 8($s1) +/* 07CE20 7F0482B0 0FC113C3 */ jal sub_GAME_7F044B38 +/* 07CE24 7F0482B4 02202025 */ move $a0, $s1 +.Ljp7F0482B8: +/* 07CE28 7F0482B8 100000DE */ b .Ljp7F048634 +/* 07CE2C 7F0482BC 92220003 */ lbu $v0, 3($s1) +.Ljp7F0482C0: +/* 07CE30 7F0482C0 24010028 */ li $at, 40 +/* 07CE34 7F0482C4 144100DA */ bne $v0, $at, .Ljp7F048630 +/* 07CE38 7F0482C8 02202025 */ move $a0, $s1 +/* 07CE3C 7F0482CC 0FC0D5E1 */ jal parse_handle_actionblocks +/* 07CE40 7F0482D0 24050001 */ li $a1, 1 +/* 07CE44 7F0482D4 8E300014 */ lw $s0, 0x14($s1) +/* 07CE48 7F0482D8 26250058 */ addiu $a1, $s1, 0x58 +/* 07CE4C 7F0482DC 8E080020 */ lw $t0, 0x20($s0) +/* 07CE50 7F0482E0 02002025 */ move $a0, $s0 +/* 07CE54 7F0482E4 51000065 */ beql $t0, $zero, .Ljp7F04847C +/* 07CE58 7F0482E8 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07CE5C 7F0482EC 0FC1B47F */ jal setsuboffset +/* 07CE60 7F0482F0 AFA50074 */ sw $a1, 0x74($sp) +/* 07CE64 7F0482F4 8E300014 */ lw $s0, 0x14($s1) +/* 07CE68 7F0482F8 3C098003 */ lui $t1, %hi(animation_table_ptrs2+4) # $t1, 0x8003 +/* 07CE6C 7F0482FC 8D29A090 */ lw $t1, %lo(animation_table_ptrs2+4)($t1) +/* 07CE70 7F048300 8E180020 */ lw $t8, 0x20($s0) +/* 07CE74 7F048304 3C054127 */ lui $a1, (0x4127020C >> 16) # lui $a1, 0x4127 +/* 07CE78 7F048308 02002025 */ move $a0, $s0 +/* 07CE7C 7F04830C 17090009 */ bne $t8, $t1, .Ljp7F048334 +/* 07CE80 7F048310 00000000 */ nop +/* 07CE84 7F048314 0FC1B51D */ jal sub_GAME_7F06CE84 +/* 07CE88 7F048318 34A5020C */ ori $a1, (0x4127020C & 0xFFFF) # ori $a1, $a1, 0x20c +/* 07CE8C 7F04831C 3C054049 */ lui $a1, (0x40490FDB >> 16) # lui $a1, 0x4049 +/* 07CE90 7F048320 34A50FDB */ ori $a1, (0x40490FDB & 0xFFFF) # ori $a1, $a1, 0xfdb +/* 07CE94 7F048324 0FC1B4CB */ jal setsubroty +/* 07CE98 7F048328 8E240014 */ lw $a0, 0x14($s1) +/* 07CE9C 7F04832C 10000024 */ b .Ljp7F0483C0 +/* 07CEA0 7F048330 00000000 */ nop +.Ljp7F048334: +/* 07CEA4 7F048334 0C001A57 */ jal get_stage_num +/* 07CEA8 7F048338 00000000 */ nop +/* 07CEAC 7F04833C 24010016 */ li $at, 22 +/* 07CEB0 7F048340 1441000A */ bne $v0, $at, .Ljp7F04836C +/* 07CEB4 7F048344 3C053F85 */ lui $a1, (0x3F859B3D >> 16) # lui $a1, 0x3f85 +/* 07CEB8 7F048348 8E240014 */ lw $a0, 0x14($s1) +/* 07CEBC 7F04834C 0FC1B51D */ jal sub_GAME_7F06CE84 +/* 07CEC0 7F048350 34A59B3D */ ori $a1, (0x3F859B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d +/* 07CEC4 7F048354 3C054016 */ lui $a1, (0x4016CBE4 >> 16) # lui $a1, 0x4016 +/* 07CEC8 7F048358 34A5CBE4 */ ori $a1, (0x4016CBE4 & 0xFFFF) # ori $a1, $a1, 0xcbe4 +/* 07CECC 7F04835C 0FC1B4CB */ jal setsubroty +/* 07CED0 7F048360 8E240014 */ lw $a0, 0x14($s1) +/* 07CED4 7F048364 10000016 */ b .Ljp7F0483C0 +/* 07CED8 7F048368 00000000 */ nop +.Ljp7F04836C: +/* 07CEDC 7F04836C 0C001A57 */ jal get_stage_num +/* 07CEE0 7F048370 00000000 */ nop +/* 07CEE4 7F048374 2401001A */ li $at, 26 +/* 07CEE8 7F048378 1441000B */ bne $v0, $at, .Ljp7F0483A8 +/* 07CEEC 7F04837C 3C053F85 */ lui $a1, 0x3f85 +/* 07CEF0 7F048380 3C053F85 */ lui $a1, (0x3F859B3D >> 16) # lui $a1, 0x3f85 +/* 07CEF4 7F048384 34A59B3D */ ori $a1, (0x3F859B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d +/* 07CEF8 7F048388 0FC1B51D */ jal sub_GAME_7F06CE84 +/* 07CEFC 7F04838C 8E240014 */ lw $a0, 0x14($s1) +/* 07CF00 7F048390 3C05407B */ lui $a1, (0x407B9B3D >> 16) # lui $a1, 0x407b +/* 07CF04 7F048394 34A553D1 */ ori $a1, (0x407B53D1 & 0xFFFF) # ori $a1, $a1, 0x53d1 +/* 07CF08 7F048398 0FC1B4CB */ jal setsubroty +/* 07CF0C 7F04839C 8E240014 */ lw $a0, 0x14($s1) +/* 07CF10 7F0483A0 10000007 */ b .Ljp7F0483C0 +/* 07CF14 7F0483A4 00000000 */ nop +.Ljp7F0483A8: +/* 07CF18 7F0483A8 8E240014 */ lw $a0, 0x14($s1) +/* 07CF1C 7F0483AC 0FC1B51D */ jal sub_GAME_7F06CE84 +/* 07CF20 7F0483B0 34A59B3D */ ori $a1, (0x407B9B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d +/* 07CF24 7F0483B4 4405B000 */ mfc1 $a1, $f22 +/* 07CF28 7F0483B8 0FC1B4CB */ jal setsubroty +/* 07CF2C 7F0483BC 8E240014 */ lw $a0, 0x14($s1) +.Ljp7F0483C0: +/* 07CF30 7F0483C0 3C058005 */ lui $a1, %hi(clock_timer) # $a1, 0x8005 +/* 07CF34 7F0483C4 8CA583A4 */ lw $a1, %lo(clock_timer)($a1) +/* 07CF38 7F0483C8 8E240014 */ lw $a0, 0x14($s1) +/* 07CF3C 7F0483CC 0FC1C437 */ jal sub_GAME_7F070AEC +/* 07CF40 7F0483D0 24060001 */ li $a2, 1 +/* 07CF44 7F0483D4 0FC1B728 */ jal subcalcpos +/* 07CF48 7F0483D8 8E240014 */ lw $a0, 0x14($s1) +/* 07CF4C 7F0483DC 8E240014 */ lw $a0, 0x14($s1) +/* 07CF50 7F0483E0 0FC1B462 */ jal getsuboffset +/* 07CF54 7F0483E4 8FA50074 */ lw $a1, 0x74($sp) +/* 07CF58 7F0483E8 C62A0058 */ lwc1 $f10, 0x58($s1) +/* 07CF5C 7F0483EC 3C058007 */ lui $a1, %hi(ptr_setup_path_tbl) # $a1, 0x8007 +/* 07CF60 7F0483F0 24A55D40 */ addiu $a1, %lo(ptr_setup_path_tbl) # addiu $a1, $a1, 0x5d40 +/* 07CF64 7F0483F4 E66A0008 */ swc1 $f10, 8($s3) +/* 07CF68 7F0483F8 C6280060 */ lwc1 $f8, 0x60($s1) +/* 07CF6C 7F0483FC E6680010 */ swc1 $f8, 0x10($s3) +/* 07CF70 7F048400 86220006 */ lh $v0, 6($s1) +/* 07CF74 7F048404 28412710 */ slti $at, $v0, 0x2710 +/* 07CF78 7F048408 1020000B */ beqz $at, .Ljp7F048438 +/* 07CF7C 7F04840C 00026100 */ sll $t4, $v0, 4 +/* 07CF80 7F048410 00025880 */ sll $t3, $v0, 2 +/* 07CF84 7F048414 3C058007 */ lui $a1, %hi(ptr_setup_path_tbl) # $a1, 0x8007 +/* 07CF88 7F048418 01625823 */ subu $t3, $t3, $v0 +/* 07CF8C 7F04841C 24A55D40 */ addiu $a1, %lo(ptr_setup_path_tbl) # addiu $a1, $a1, 0x5d40 +/* 07CF90 7F048420 000B5880 */ sll $t3, $t3, 2 +/* 07CF94 7F048424 8CAE0018 */ lw $t6, 0x18($a1) +/* 07CF98 7F048428 01625823 */ subu $t3, $t3, $v0 +/* 07CF9C 7F04842C 000B5880 */ sll $t3, $t3, 2 +/* 07CFA0 7F048430 10000008 */ b .Ljp7F048454 +/* 07CFA4 7F048434 016E1821 */ addu $v1, $t3, $t6 +.Ljp7F048438: +/* 07CFA8 7F048438 8CAA001C */ lw $t2, 0x1c($a1) +/* 07CFAC 7F04843C 01826021 */ addu $t4, $t4, $v0 +/* 07CFB0 7F048440 000C6080 */ sll $t4, $t4, 2 +/* 07CFB4 7F048444 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 07CFB8 7F048448 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 07CFBC 7F04844C 018A1821 */ addu $v1, $t4, $t2 +/* 07CFC0 7F048450 00611821 */ addu $v1, $v1, $at +.Ljp7F048454: +/* 07CFC4 7F048454 C624005C */ lwc1 $f4, 0x5c($s1) +/* 07CFC8 7F048458 C4660004 */ lwc1 $f6, 4($v1) +/* 07CFCC 7F04845C 46062280 */ add.s $f10, $f4, $f6 +/* 07CFD0 7F048460 E66A000C */ swc1 $f10, 0xc($s3) +/* 07CFD4 7F048464 C668000C */ lwc1 $f8, 0xc($s3) +/* 07CFD8 7F048468 8E240014 */ lw $a0, 0x14($s1) +/* 07CFDC 7F04846C E628005C */ swc1 $f8, 0x5c($s1) +/* 07CFE0 7F048470 0FC1B47F */ jal setsuboffset +/* 07CFE4 7F048474 8FA50074 */ lw $a1, 0x74($sp) +/* 07CFE8 7F048478 C62C00A0 */ lwc1 $f12, 0xa0($s1) +.Ljp7F04847C: +/* 07CFEC 7F04847C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07CFF0 7F048480 460CB03E */ c.le.s $f22, $f12 +/* 07CFF4 7F048484 00000000 */ nop +/* 07CFF8 7F048488 45020016 */ bc1fl .Ljp7F0484E4 +/* 07CFFC 7F04848C C6200094 */ lwc1 $f0, 0x94($s1) +/* 07D000 7F048490 C42283B4 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07D004 7F048494 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07D008 7F048498 4602603E */ c.le.s $f12, $f2 +/* 07D00C 7F04849C 00000000 */ nop +/* 07D010 7F0484A0 45020006 */ bc1fl .Ljp7F0484BC +/* 07D014 7F0484A4 C62E0098 */ lwc1 $f14, 0x98($s1) +/* 07D018 7F0484A8 C624009C */ lwc1 $f4, 0x9c($s1) +/* 07D01C 7F0484AC C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07D020 7F0484B0 10000008 */ b .Ljp7F0484D4 +/* 07D024 7F0484B4 E6240098 */ swc1 $f4, 0x98($s1) +/* 07D028 7F0484B8 C62E0098 */ lwc1 $f14, 0x98($s1) +.Ljp7F0484BC: +/* 07D02C 7F0484BC C626009C */ lwc1 $f6, 0x9c($s1) +/* 07D030 7F0484C0 460E3281 */ sub.s $f10, $f6, $f14 +/* 07D034 7F0484C4 46025202 */ mul.s $f8, $f10, $f2 +/* 07D038 7F0484C8 460C4103 */ div.s $f4, $f8, $f12 +/* 07D03C 7F0484CC 46047180 */ add.s $f6, $f14, $f4 +/* 07D040 7F0484D0 E6260098 */ swc1 $f6, 0x98($s1) +.Ljp7F0484D4: +/* 07D044 7F0484D4 C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07D048 7F0484D8 460A6201 */ sub.s $f8, $f12, $f10 +/* 07D04C 7F0484DC E62800A0 */ swc1 $f8, 0xa0($s1) +/* 07D050 7F0484E0 C6200094 */ lwc1 $f0, 0x94($s1) +.Ljp7F0484E4: +/* 07D054 7F0484E4 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07D058 7F0484E8 4600B03E */ c.le.s $f22, $f0 +/* 07D05C 7F0484EC 00000000 */ nop +/* 07D060 7F0484F0 45020016 */ bc1fl .Ljp7F04854C +/* 07D064 7F0484F4 8E2F000C */ lw $t7, 0xc($s1) +/* 07D068 7F0484F8 C42283B4 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07D06C 7F0484FC 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07D070 7F048500 4602003E */ c.le.s $f0, $f2 +/* 07D074 7F048504 00000000 */ nop +/* 07D078 7F048508 45020006 */ bc1fl .Ljp7F048524 +/* 07D07C 7F04850C C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D080 7F048510 C6240090 */ lwc1 $f4, 0x90($s1) +/* 07D084 7F048514 C6200094 */ lwc1 $f0, 0x94($s1) +/* 07D088 7F048518 10000008 */ b .Ljp7F04853C +/* 07D08C 7F04851C E624008C */ swc1 $f4, 0x8c($s1) +/* 07D090 7F048520 C62C008C */ lwc1 $f12, 0x8c($s1) +.Ljp7F048524: +/* 07D094 7F048524 C6260090 */ lwc1 $f6, 0x90($s1) +/* 07D098 7F048528 460C3281 */ sub.s $f10, $f6, $f12 +/* 07D09C 7F04852C 46025202 */ mul.s $f8, $f10, $f2 +/* 07D0A0 7F048530 46004103 */ div.s $f4, $f8, $f0 +/* 07D0A4 7F048534 46046180 */ add.s $f6, $f12, $f4 +/* 07D0A8 7F048538 E626008C */ swc1 $f6, 0x8c($s1) +.Ljp7F04853C: +/* 07D0AC 7F04853C C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07D0B0 7F048540 460A0201 */ sub.s $f8, $f0, $f10 +/* 07D0B4 7F048544 E6280094 */ swc1 $f8, 0x94($s1) +/* 07D0B8 7F048548 8E2F000C */ lw $t7, 0xc($s1) +.Ljp7F04854C: +/* 07D0BC 7F04854C 00008025 */ move $s0, $zero +/* 07D0C0 7F048550 000F6B00 */ sll $t5, $t7, 0xc +/* 07D0C4 7F048554 05A00014 */ bltz $t5, .Ljp7F0485A8 +/* 07D0C8 7F048558 00000000 */ nop +/* 07D0CC 7F04855C 0FC13CCE */ jal check_if_object_has_not_been_destroyed +/* 07D0D0 7F048560 02202025 */ move $a0, $s1 +/* 07D0D4 7F048564 10400010 */ beqz $v0, .Ljp7F0485A8 +/* 07D0D8 7F048568 00000000 */ nop +/* 07D0DC 7F04856C C624008C */ lwc1 $f4, 0x8c($s1) +/* 07D0E0 7F048570 4604B032 */ c.eq.s $f22, $f4 +/* 07D0E4 7F048574 00000000 */ nop +/* 07D0E8 7F048578 4501000B */ bc1t .Ljp7F0485A8 +/* 07D0EC 7F04857C 00000000 */ nop +/* 07D0F0 7F048580 8E390008 */ lw $t9, 8($s1) +/* 07D0F4 7F048584 3C05459C */ lui $a1, (0x459C4000 >> 16) # lui $a1, 0x459c +/* 07D0F8 7F048588 34A54000 */ ori $a1, (0x459C4000 & 0xFFFF) # ori $a1, $a1, 0x4000 +/* 07D0FC 7F04858C 00194080 */ sll $t0, $t9, 2 +/* 07D100 7F048590 05000005 */ bltz $t0, .Ljp7F0485A8 +/* 07D104 7F048594 26240058 */ addiu $a0, $s1, 0x58 +/* 07D108 7F048598 3C0645BB */ lui $a2, (0x45BB8000 >> 16) # lui $a2, 0x45bb +/* 07D10C 7F04859C 0FC14F64 */ jal sub_GAME_7F053894 +/* 07D110 7F0485A0 34C68000 */ ori $a2, (0x45BB8000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 07D114 7F0485A4 00408025 */ move $s0, $v0 +.Ljp7F0485A8: +/* 07D118 7F0485A8 5A000019 */ blezl $s0, .Ljp7F048610 +/* 07D11C 7F0485AC 8E2400B0 */ lw $a0, 0xb0($s1) +/* 07D120 7F0485B0 8E2400B0 */ lw $a0, 0xb0($s1) +/* 07D124 7F0485B4 10800005 */ beqz $a0, .Ljp7F0485CC +/* 07D128 7F0485B8 00000000 */ nop +/* 07D12C 7F0485BC 0C002380 */ jal sfxGetArg0Unk3F +/* 07D130 7F0485C0 00000000 */ nop +/* 07D134 7F0485C4 5440000A */ bnezl $v0, .Ljp7F0485F0 +/* 07D138 7F0485C8 8E2400B0 */ lw $a0, 0xb0($s1) +.Ljp7F0485CC: +/* 07D13C 7F0485CC 0FC3021B */ jal get_controls_locked_flag +/* 07D140 7F0485D0 00000000 */ nop +/* 07D144 7F0485D4 14400005 */ bnez $v0, .Ljp7F0485EC +/* 07D148 7F0485D8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07D14C 7F0485DC 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07D150 7F0485E0 2405003A */ li $a1, 58 +/* 07D154 7F0485E4 0C002386 */ jal play_sfx_a1 +/* 07D158 7F0485E8 262600B0 */ addiu $a2, $s1, 0xb0 +.Ljp7F0485EC: +/* 07D15C 7F0485EC 8E2400B0 */ lw $a0, 0xb0($s1) +.Ljp7F0485F0: +/* 07D160 7F0485F0 24050008 */ li $a1, 8 +/* 07D164 7F0485F4 5080000F */ beql $a0, $zero, .Ljp7F048634 +/* 07D168 7F0485F8 92220003 */ lbu $v0, 3($s1) +/* 07D16C 7F0485FC 0C002465 */ jal sfx_c_70009184 +/* 07D170 7F048600 02003025 */ move $a2, $s0 +/* 07D174 7F048604 1000000B */ b .Ljp7F048634 +/* 07D178 7F048608 92220003 */ lbu $v0, 3($s1) +/* 07D17C 7F04860C 8E2400B0 */ lw $a0, 0xb0($s1) +.Ljp7F048610: +/* 07D180 7F048610 50800008 */ beql $a0, $zero, .Ljp7F048634 +/* 07D184 7F048614 92220003 */ lbu $v0, 3($s1) +/* 07D188 7F048618 0C002380 */ jal sfxGetArg0Unk3F +/* 07D18C 7F04861C 00000000 */ nop +/* 07D190 7F048620 50400004 */ beql $v0, $zero, .Ljp7F048634 +/* 07D194 7F048624 92220003 */ lbu $v0, 3($s1) +/* 07D198 7F048628 0C00240C */ jal sfxDeactivate +/* 07D19C 7F04862C 8E2400B0 */ lw $a0, 0xb0($s1) +.Ljp7F048630: +/* 07D1A0 7F048630 92220003 */ lbu $v0, 3($s1) +.Ljp7F048634: +/* 07D1A4 7F048634 3C018005 */ lui $at, %hi(D_80052B64) # $at, 0x8005 +/* 07D1A8 7F048638 C4342B94 */ lwc1 $f20, %lo(D_80052B64)($at) +/* 07D1AC 7F04863C 2401002F */ li $at, 47 +/* 07D1B0 7F048640 54410020 */ bnel $v0, $at, .Ljp7F0486C4 +/* 07D1B4 7F048644 24010001 */ li $at, 1 +/* 07D1B8 7F048648 8E700004 */ lw $s0, 4($s3) +/* 07D1BC 7F04864C 26240058 */ addiu $a0, $s1, 0x58 +/* 07D1C0 7F048650 8E180080 */ lw $t8, 0x80($s0) +/* 07D1C4 7F048654 8E090084 */ lw $t1, 0x84($s0) +/* 07D1C8 7F048658 8E070090 */ lw $a3, 0x90($s0) +/* 07D1CC 7F04865C 44983000 */ mtc1 $t8, $f6 +/* 07D1D0 7F048660 44895000 */ mtc1 $t1, $f10 +/* 07D1D4 7F048664 468031A0 */ cvt.s.w $f6, $f6 +/* 07D1D8 7F048668 468052A0 */ cvt.s.w $f10, $f10 +/* 07D1DC 7F04866C 44053000 */ mfc1 $a1, $f6 +/* 07D1E0 7F048670 44065000 */ mfc1 $a2, $f10 +/* 07D1E4 7F048674 0FC1156C */ jal sub_GAME_7F0451DC +/* 07D1E8 7F048678 00000000 */ nop +/* 07D1EC 7F04867C 8E04008C */ lw $a0, 0x8c($s0) +/* 07D1F0 7F048680 AE020088 */ sw $v0, 0x88($s0) +/* 07D1F4 7F048684 8FAB067C */ lw $t3, 0x67c($sp) +/* 07D1F8 7F048688 0480000B */ bltz $a0, .Ljp7F0486B8 +/* 07D1FC 7F04868C 24010001 */ li $at, 1 +/* 07D200 7F048690 15610009 */ bne $t3, $at, .Ljp7F0486B8 +/* 07D204 7F048694 240100FF */ li $at, 255 +/* 07D208 7F048698 14410005 */ bne $v0, $at, .Ljp7F0486B0 +/* 07D20C 7F04869C 00000000 */ nop +/* 07D210 7F0486A0 0FC2EA5B */ jal sub_GAME_7F0B9DBC +/* 07D214 7F0486A4 00002825 */ move $a1, $zero +/* 07D218 7F0486A8 10000003 */ b .Ljp7F0486B8 +/* 07D21C 7F0486AC 00000000 */ nop +.Ljp7F0486B0: +/* 07D220 7F0486B0 0FC2EA5B */ jal sub_GAME_7F0B9DBC +/* 07D224 7F0486B4 24050001 */ li $a1, 1 +.Ljp7F0486B8: +/* 07D228 7F0486B8 1000003B */ b .Ljp7F0487A8 +/* 07D22C 7F0486BC AFA00678 */ sw $zero, 0x678($sp) +/* 07D230 7F0486C0 24010001 */ li $at, 1 +.Ljp7F0486C4: +/* 07D234 7F0486C4 54410039 */ bnel $v0, $at, .Ljp7F0487AC +/* 07D238 7F0486C8 922C0003 */ lbu $t4, 3($s1) +/* 07D23C 7F0486CC 962C0098 */ lhu $t4, 0x98($s1) +/* 07D240 7F0486D0 318A0002 */ andi $t2, $t4, 2 +/* 07D244 7F0486D4 51400035 */ beql $t2, $zero, .Ljp7F0487AC +/* 07D248 7F0486D8 922C0003 */ lbu $t4, 3($s1) +/* 07D24C 7F0486DC 8E700004 */ lw $s0, 4($s3) +/* 07D250 7F0486E0 4407B000 */ mfc1 $a3, $f22 +/* 07D254 7F0486E4 24120001 */ li $s2, 1 +/* 07D258 7F0486E8 8E0F00C0 */ lw $t7, 0xc0($s0) +/* 07D25C 7F0486EC 8E0D00C4 */ lw $t5, 0xc4($s0) +/* 07D260 7F0486F0 26240058 */ addiu $a0, $s1, 0x58 +/* 07D264 7F0486F4 448F4000 */ mtc1 $t7, $f8 +/* 07D268 7F0486F8 448D2000 */ mtc1 $t5, $f4 +/* 07D26C 7F0486FC 46804220 */ cvt.s.w $f8, $f8 +/* 07D270 7F048700 46802120 */ cvt.s.w $f4, $f4 +/* 07D274 7F048704 44054000 */ mfc1 $a1, $f8 +/* 07D278 7F048708 44062000 */ mfc1 $a2, $f4 +/* 07D27C 7F04870C 0FC1156C */ jal sub_GAME_7F0451DC +/* 07D280 7F048710 00000000 */ nop +/* 07D284 7F048714 A60200BE */ sh $v0, 0xbe($s0) +/* 07D288 7F048718 8FB9067C */ lw $t9, 0x67c($sp) +/* 07D28C 7F04871C 24010001 */ li $at, 1 +/* 07D290 7F048720 57210022 */ bnel $t9, $at, .Ljp7F0487AC +/* 07D294 7F048724 922C0003 */ lbu $t4, 3($s1) +/* 07D298 7F048728 860800BE */ lh $t0, 0xbe($s0) +/* 07D29C 7F04872C 240100FF */ li $at, 255 +/* 07D2A0 7F048730 55010007 */ bnel $t0, $at, .Ljp7F048750 +/* 07D2A4 7F048734 00009025 */ move $s2, $zero +/* 07D2A8 7F048738 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07D2AC 7F04873C 4606B03C */ c.lt.s $f22, $f6 +/* 07D2B0 7F048740 00000000 */ nop +/* 07D2B4 7F048744 45020003 */ bc1fl .Ljp7F048754 +/* 07D2B8 7F048748 8E820008 */ lw $v0, 8($s4) +/* 07D2BC 7F04874C 00009025 */ move $s2, $zero +.Ljp7F048750: +/* 07D2C0 7F048750 8E820008 */ lw $v0, 8($s4) +.Ljp7F048754: +/* 07D2C4 7F048754 3C188004 */ lui $t8, %hi(prop_door_related) # $t8, 0x8004 +/* 07D2C8 7F048758 2718A20C */ addiu $t8, %lo(prop_door_related) # addiu $t8, $t8, -0x5df4 +/* 07D2CC 7F04875C 8C490004 */ lw $t1, 4($v0) +/* 07D2D0 7F048760 17090009 */ bne $t8, $t1, .Ljp7F048788 +/* 07D2D4 7F048764 00000000 */ nop +/* 07D2D8 7F048768 8C4B0008 */ lw $t3, 8($v0) +/* 07D2DC 7F04876C 02802025 */ move $a0, $s4 +/* 07D2E0 7F048770 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 07D2E4 7F048774 8D650004 */ lw $a1, 4($t3) +/* 07D2E8 7F048778 8C4E0000 */ lw $t6, ($v0) +/* 07D2EC 7F04877C 15C00002 */ bnez $t6, .Ljp7F048788 +/* 07D2F0 7F048780 00000000 */ nop +/* 07D2F4 7F048784 00009025 */ move $s2, $zero +.Ljp7F048788: +/* 07D2F8 7F048788 12400005 */ beqz $s2, .Ljp7F0487A0 +/* 07D2FC 7F04878C 00000000 */ nop +/* 07D300 7F048790 0FC14EB0 */ jal sub_GAME_7F0535C4 +/* 07D304 7F048794 02002025 */ move $a0, $s0 +/* 07D308 7F048798 10000004 */ b .Ljp7F0487AC +/* 07D30C 7F04879C 922C0003 */ lbu $t4, 3($s1) +.Ljp7F0487A0: +/* 07D310 7F0487A0 0FC14EA5 */ jal sub_GAME_7F053598 +/* 07D314 7F0487A4 02002025 */ move $a0, $s0 +.Ljp7F0487A8: +/* 07D318 7F0487A8 922C0003 */ lbu $t4, 3($s1) +.Ljp7F0487AC: +/* 07D31C 7F0487AC 2410002D */ li $s0, 45 +/* 07D320 7F0487B0 560C0008 */ bnel $s0, $t4, .Ljp7F0487D4 +/* 07D324 7F0487B4 8E23000C */ lw $v1, 0xc($s1) +/* 07D328 7F0487B8 0FC1F52A */ jal get_ptr_for_players_tank +/* 07D32C 7F0487BC 00000000 */ nop +/* 07D330 7F0487C0 54530004 */ bnel $v0, $s3, .Ljp7F0487D4 +/* 07D334 7F0487C4 8E23000C */ lw $v1, 0xc($s1) +/* 07D338 7F0487C8 10000019 */ b .Ljp7F048830 +/* 07D33C 7F0487CC 24030001 */ li $v1, 1 +/* 07D340 7F0487D0 8E23000C */ lw $v1, 0xc($s1) +.Ljp7F0487D4: +/* 07D344 7F0487D4 00035140 */ sll $t2, $v1, 5 +/* 07D348 7F0487D8 05430004 */ bgezl $t2, .Ljp7F0487EC +/* 07D34C 7F0487DC 8E2F0064 */ lw $t7, 0x64($s1) +/* 07D350 7F0487E0 10000013 */ b .Ljp7F048830 +/* 07D354 7F0487E4 24030001 */ li $v1, 1 +/* 07D358 7F0487E8 8E2F0064 */ lw $t7, 0x64($s1) +.Ljp7F0487EC: +/* 07D35C 7F0487EC 0003CB00 */ sll $t9, $v1, 0xc +/* 07D360 7F0487F0 00001825 */ move $v1, $zero +/* 07D364 7F0487F4 31ED0800 */ andi $t5, $t7, 0x800 +/* 07D368 7F0487F8 15A0000D */ bnez $t5, .Ljp7F048830 +/* 07D36C 7F0487FC 00000000 */ nop +/* 07D370 7F048800 0720000B */ bltz $t9, .Ljp7F048830 +/* 07D374 7F048804 02802025 */ move $a0, $s4 +/* 07D378 7F048808 26280058 */ addiu $t0, $s1, 0x58 +/* 07D37C 7F04880C 0FC1B57F */ jal getinstsize +/* 07D380 7F048810 AFA80074 */ sw $t0, 0x74($sp) +/* 07D384 7F048814 44060000 */ mfc1 $a2, $f0 +/* 07D388 7F048818 02602025 */ move $a0, $s3 +/* 07D38C 7F04881C 8FA50074 */ lw $a1, 0x74($sp) +/* 07D390 7F048820 0FC1549A */ jal sub_GAME_7F054D6C +/* 07D394 7F048824 8FA70678 */ lw $a3, 0x678($sp) +/* 07D398 7F048828 10000001 */ b .Ljp7F048830 +/* 07D39C 7F04882C 00401825 */ move $v1, $v0 +.Ljp7F048830: +/* 07D3A0 7F048830 1060037A */ beqz $v1, .Ljp7F04961C +/* 07D3A4 7F048834 8FB80680 */ lw $t8, 0x680($sp) +/* 07D3A8 7F048838 13000003 */ beqz $t8, .Ljp7F048848 +/* 07D3AC 7F04883C 26240078 */ addiu $a0, $s1, 0x78 +/* 07D3B0 7F048840 0FC10184 */ jal update_color_shading +/* 07D3B4 7F048844 2625007C */ addiu $a1, $s1, 0x7c +.Ljp7F048848: +/* 07D3B8 7F048848 92690001 */ lbu $t1, 1($s3) +/* 07D3BC 7F04884C 352B0002 */ ori $t3, $t1, 2 +/* 07D3C0 7F048850 A26B0001 */ sb $t3, 1($s3) +/* 07D3C4 7F048854 8E8E0008 */ lw $t6, 8($s4) +/* 07D3C8 7F048858 85C4000E */ lh $a0, 0xe($t6) +/* 07D3CC 7F04885C 00046180 */ sll $t4, $a0, 6 +/* 07D3D0 7F048860 0FC2F8B1 */ jal sub_GAME_7F0BD714 +/* 07D3D4 7F048864 01802025 */ move $a0, $t4 +/* 07D3D8 7F048868 AE82000C */ sw $v0, 0xc($s4) +/* 07D3DC 7F04886C 922A0003 */ lbu $t2, 3($s1) +/* 07D3E0 7F048870 24010001 */ li $at, 1 +/* 07D3E4 7F048874 00409025 */ move $s2, $v0 +/* 07D3E8 7F048878 154100AD */ bne $t2, $at, .Ljp7F048B30 +/* 07D3EC 7F04887C 26240018 */ addiu $a0, $s1, 0x18 +/* 07D3F0 7F048880 8E640004 */ lw $a0, 4($s3) +/* 07D3F4 7F048884 00402825 */ move $a1, $v0 +/* 07D3F8 7F048888 0FC14AFA */ jal sub_GAME_7F0526EC +/* 07D3FC 7F04888C AFA403A0 */ sw $a0, 0x3a0($sp) +/* 07D400 7F048890 0FC1E26D */ jal get_BONDdata_field_10CC +/* 07D404 7F048894 00000000 */ nop +/* 07D408 7F048898 00402025 */ move $a0, $v0 +/* 07D40C 7F04889C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D410 7F0488A0 02402825 */ move $a1, $s2 +/* 07D414 7F0488A4 8E820008 */ lw $v0, 8($s4) +/* 07D418 7F0488A8 3C0F8004 */ lui $t7, %hi(prop_eyelid_door_related) # $t7, 0x8004 +/* 07D41C 7F0488AC 25EFA130 */ addiu $t7, %lo(prop_eyelid_door_related) # addiu $t7, $t7, -0x5ed0 +/* 07D420 7F0488B0 8C430004 */ lw $v1, 4($v0) +/* 07D424 7F0488B4 3C0B8004 */ lui $t3, %hi(prop_iris_door_related) # $t3, 0x8004 +/* 07D428 7F0488B8 8FA603A0 */ lw $a2, 0x3a0($sp) +/* 07D42C 7F0488BC 15E30025 */ bne $t7, $v1, .Ljp7F048954 +/* 07D430 7F0488C0 256BA18C */ addiu $t3, %lo(prop_iris_door_related) # addiu $t3, $t3, -0x5e74 +/* 07D434 7F0488C4 C4CA00B4 */ lwc1 $f10, 0xb4($a2) +/* 07D438 7F0488C8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07D43C 7F0488CC 44812000 */ mtc1 $at, $f4 +/* 07D440 7F0488D0 46145202 */ mul.s $f8, $f10, $f20 +/* 07D444 7F0488D4 8C4D0008 */ lw $t5, 8($v0) +/* 07D448 7F0488D8 26450040 */ addiu $a1, $s2, 0x40 +/* 07D44C 7F0488DC 8DB90004 */ lw $t9, 4($t5) +/* 07D450 7F0488E0 46044183 */ div.s $f6, $f8, $f4 +/* 07D454 7F0488E4 8F300004 */ lw $s0, 4($t9) +/* 07D458 7F0488E8 AFA50070 */ sw $a1, 0x70($sp) +/* 07D45C 7F0488EC 4606A301 */ sub.s $f12, $f20, $f6 +/* 07D460 7F0488F0 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 07D464 7F0488F4 E7AC0398 */ swc1 $f12, 0x398($sp) +/* 07D468 7F0488F8 02002025 */ move $a0, $s0 +/* 07D46C 7F0488FC 0FC163AE */ jal matrix_4x4_set_position +/* 07D470 7F048900 8FA50070 */ lw $a1, 0x70($sp) +/* 07D474 7F048904 02402025 */ move $a0, $s2 +/* 07D478 7F048908 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 07D47C 7F04890C 8FA50070 */ lw $a1, 0x70($sp) +/* 07D480 7F048910 8E880008 */ lw $t0, 8($s4) +/* 07D484 7F048914 C7AA0398 */ lwc1 $f10, 0x398($sp) +/* 07D488 7F048918 26450080 */ addiu $a1, $s2, 0x80 +/* 07D48C 7F04891C 8D180008 */ lw $t8, 8($t0) +/* 07D490 7F048920 460AA301 */ sub.s $f12, $f20, $f10 +/* 07D494 7F048924 8F090008 */ lw $t1, 8($t8) +/* 07D498 7F048928 8D300004 */ lw $s0, 4($t1) +/* 07D49C 7F04892C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 07D4A0 7F048930 AFA5006C */ sw $a1, 0x6c($sp) +/* 07D4A4 7F048934 02002025 */ move $a0, $s0 +/* 07D4A8 7F048938 0FC163AE */ jal matrix_4x4_set_position +/* 07D4AC 7F04893C 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D4B0 7F048940 02402025 */ move $a0, $s2 +/* 07D4B4 7F048944 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 07D4B8 7F048948 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D4BC 7F04894C 1000031F */ b .Ljp7F0495CC +/* 07D4C0 7F048950 8E8C0008 */ lw $t4, 8($s4) +.Ljp7F048954: +/* 07D4C4 7F048954 5563031D */ bnel $t3, $v1, .Ljp7F0495CC +/* 07D4C8 7F048958 8E8C0008 */ lw $t4, 8($s4) +/* 07D4CC 7F04895C C4C200B4 */ lwc1 $f2, 0xb4($a2) +/* 07D4D0 7F048960 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07D4D4 7F048964 44812000 */ mtc1 $at, $f4 +/* 07D4D8 7F048968 46141202 */ mul.s $f8, $f2, $f20 +/* 07D4DC 7F04896C 3C018005 */ lui $at, %hi(D_80052B68) # $at, 0x8005 +/* 07D4E0 7F048970 C42A2B98 */ lwc1 $f10, %lo(D_80052B68)($at) +/* 07D4E4 7F048974 4600B386 */ mov.s $f14, $f22 +/* 07D4E8 7F048978 46044183 */ div.s $f6, $f8, $f4 +/* 07D4EC 7F04897C E7A60388 */ swc1 $f6, 0x388($sp) +/* 07D4F0 7F048980 C4CC0084 */ lwc1 $f12, 0x84($a2) +/* 07D4F4 7F048984 460A6002 */ mul.s $f0, $f12, $f10 +/* 07D4F8 7F048988 4602003C */ c.lt.s $f0, $f2 +/* 07D4FC 7F04898C 00000000 */ nop +/* 07D500 7F048990 4502001F */ bc1fl .Ljp7F048A10 +/* 07D504 7F048994 8FAA0680 */ lw $t2, 0x680($sp) +/* 07D508 7F048998 46001201 */ sub.s $f8, $f2, $f0 +/* 07D50C 7F04899C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07D510 7F0489A0 8FAE0680 */ lw $t6, 0x680($sp) +/* 07D514 7F0489A4 46006181 */ sub.s $f6, $f12, $f0 +/* 07D518 7F0489A8 46086102 */ mul.s $f4, $f12, $f8 +/* 07D51C 7F0489AC 46062283 */ div.s $f10, $f4, $f6 +/* 07D520 7F0489B0 44812000 */ mtc1 $at, $f4 +/* 07D524 7F0489B4 46145202 */ mul.s $f8, $f10, $f20 +/* 07D528 7F0489B8 46044383 */ div.s $f14, $f8, $f4 +/* 07D52C 7F0489BC 11C00011 */ beqz $t6, .Ljp7F048A04 +/* 07D530 7F0489C0 E7AE0384 */ swc1 $f14, 0x384($sp) +/* 07D534 7F0489C4 C7A60684 */ lwc1 $f6, 0x684($sp) +/* 07D538 7F0489C8 E7AE0384 */ swc1 $f14, 0x384($sp) +/* 07D53C 7F0489CC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07D540 7F0489D0 4600303E */ c.le.s $f6, $f0 +/* 07D544 7F0489D4 240500CA */ li $a1, 202 +/* 07D548 7F0489D8 00003025 */ move $a2, $zero +/* 07D54C 7F0489DC 266C0008 */ addiu $t4, $s3, 8 +/* 07D550 7F0489E0 45000008 */ bc1f .Ljp7F048A04 +/* 07D554 7F0489E4 00000000 */ nop +/* 07D558 7F0489E8 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07D55C 7F0489EC AFAC0074 */ sw $t4, 0x74($sp) +/* 07D560 7F0489F0 0C002386 */ jal play_sfx_a1 +/* 07D564 7F0489F4 E7AE0384 */ swc1 $f14, 0x384($sp) +/* 07D568 7F0489F8 00402025 */ move $a0, $v0 +/* 07D56C 7F0489FC 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 07D570 7F048A00 8FA50074 */ lw $a1, 0x74($sp) +.Ljp7F048A04: +/* 07D574 7F048A04 10000016 */ b .Ljp7F048A60 +/* 07D578 7F048A08 AFA00390 */ sw $zero, 0x390($sp) +/* 07D57C 7F048A0C 8FAA0680 */ lw $t2, 0x680($sp) +.Ljp7F048A10: +/* 07D580 7F048A10 E7AE0384 */ swc1 $f14, 0x384($sp) +/* 07D584 7F048A14 51400012 */ beql $t2, $zero, .Ljp7F048A60 +/* 07D588 7F048A18 AFA00390 */ sw $zero, 0x390($sp) +/* 07D58C 7F048A1C C7AA0684 */ lwc1 $f10, 0x684($sp) +/* 07D590 7F048A20 E7AE0384 */ swc1 $f14, 0x384($sp) +/* 07D594 7F048A24 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07D598 7F048A28 460A003C */ c.lt.s $f0, $f10 +/* 07D59C 7F048A2C 240500CB */ li $a1, 203 +/* 07D5A0 7F048A30 00003025 */ move $a2, $zero +/* 07D5A4 7F048A34 266F0008 */ addiu $t7, $s3, 8 +/* 07D5A8 7F048A38 45020009 */ bc1fl .Ljp7F048A60 +/* 07D5AC 7F048A3C AFA00390 */ sw $zero, 0x390($sp) +/* 07D5B0 7F048A40 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07D5B4 7F048A44 AFAF0074 */ sw $t7, 0x74($sp) +/* 07D5B8 7F048A48 0C002386 */ jal play_sfx_a1 +/* 07D5BC 7F048A4C E7AE0384 */ swc1 $f14, 0x384($sp) +/* 07D5C0 7F048A50 00402025 */ move $a0, $v0 +/* 07D5C4 7F048A54 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 07D5C8 7F048A58 8FA50074 */ lw $a1, 0x74($sp) +/* 07D5CC 7F048A5C AFA00390 */ sw $zero, 0x390($sp) +.Ljp7F048A60: +/* 07D5D0 7F048A60 8E8D0008 */ lw $t5, 8($s4) +/* 07D5D4 7F048A64 8FA30390 */ lw $v1, 0x390($sp) +/* 07D5D8 7F048A68 C7AC0384 */ lwc1 $f12, 0x384($sp) +/* 07D5DC 7F048A6C 8DB90008 */ lw $t9, 8($t5) +/* 07D5E0 7F048A70 00031040 */ sll $v0, $v1, 1 +/* 07D5E4 7F048A74 00024080 */ sll $t0, $v0, 2 +/* 07D5E8 7F048A78 0328C021 */ addu $t8, $t9, $t0 +/* 07D5EC 7F048A7C 8F090004 */ lw $t1, 4($t8) +/* 07D5F0 7F048A80 00027180 */ sll $t6, $v0, 6 +/* 07D5F4 7F048A84 024E2821 */ addu $a1, $s2, $t6 +/* 07D5F8 7F048A88 8D2B0004 */ lw $t3, 4($t1) +/* 07D5FC 7F048A8C AFA20078 */ sw $v0, 0x78($sp) +/* 07D600 7F048A90 24A50040 */ addiu $a1, $a1, 0x40 +/* 07D604 7F048A94 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 07D608 7F048A98 AFAB0394 */ sw $t3, 0x394($sp) +/* 07D60C 7F048A9C 8FAC0078 */ lw $t4, 0x78($sp) +/* 07D610 7F048AA0 8FB00390 */ lw $s0, 0x390($sp) +/* 07D614 7F048AA4 8FA40394 */ lw $a0, 0x394($sp) +/* 07D618 7F048AA8 000C5180 */ sll $t2, $t4, 6 +/* 07D61C 7F048AAC 024A2821 */ addu $a1, $s2, $t2 +/* 07D620 7F048AB0 24A50040 */ addiu $a1, $a1, 0x40 +/* 07D624 7F048AB4 0FC163AE */ jal matrix_4x4_set_position +/* 07D628 7F048AB8 AFA50074 */ sw $a1, 0x74($sp) +/* 07D62C 7F048ABC 02402025 */ move $a0, $s2 +/* 07D630 7F048AC0 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 07D634 7F048AC4 8FA50074 */ lw $a1, 0x74($sp) +/* 07D638 7F048AC8 8E8F0008 */ lw $t7, 8($s4) +/* 07D63C 7F048ACC 8FA20078 */ lw $v0, 0x78($sp) +/* 07D640 7F048AD0 C7AC0388 */ lwc1 $f12, 0x388($sp) +/* 07D644 7F048AD4 8DED0008 */ lw $t5, 8($t7) +/* 07D648 7F048AD8 24420002 */ addiu $v0, $v0, 2 +/* 07D64C 7F048ADC 0002C880 */ sll $t9, $v0, 2 +/* 07D650 7F048AE0 01B94021 */ addu $t0, $t5, $t9 +/* 07D654 7F048AE4 8D180000 */ lw $t8, ($t0) +/* 07D658 7F048AE8 00025980 */ sll $t3, $v0, 6 +/* 07D65C 7F048AEC 024B2821 */ addu $a1, $s2, $t3 +/* 07D660 7F048AF0 8F090004 */ lw $t1, 4($t8) +/* 07D664 7F048AF4 AFA50070 */ sw $a1, 0x70($sp) +/* 07D668 7F048AF8 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 07D66C 7F048AFC AFA90394 */ sw $t1, 0x394($sp) +/* 07D670 7F048B00 8FA40394 */ lw $a0, 0x394($sp) +/* 07D674 7F048B04 0FC163AE */ jal matrix_4x4_set_position +/* 07D678 7F048B08 8FA50070 */ lw $a1, 0x70($sp) +/* 07D67C 7F048B0C 8FA40074 */ lw $a0, 0x74($sp) +/* 07D680 7F048B10 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 07D684 7F048B14 8FA50070 */ lw $a1, 0x70($sp) +/* 07D688 7F048B18 26100001 */ addiu $s0, $s0, 1 +/* 07D68C 7F048B1C 24010006 */ li $at, 6 +/* 07D690 7F048B20 1601FFCF */ bne $s0, $at, .Ljp7F048A60 +/* 07D694 7F048B24 AFB00390 */ sw $s0, 0x390($sp) +/* 07D698 7F048B28 100002A8 */ b .Ljp7F0495CC +/* 07D69C 7F048B2C 8E8C0008 */ lw $t4, 8($s4) +.Ljp7F048B30: +/* 07D6A0 7F048B30 262E0058 */ addiu $t6, $s1, 0x58 +/* 07D6A4 7F048B34 AFAE0074 */ sw $t6, 0x74($sp) +/* 07D6A8 7F048B38 0FC16150 */ jal matrix_4x4_copy +/* 07D6AC 7F048B3C 27A503A8 */ addiu $a1, $sp, 0x3a8 +/* 07D6B0 7F048B40 8FA40074 */ lw $a0, 0x74($sp) +/* 07D6B4 7F048B44 0FC163AE */ jal matrix_4x4_set_position +/* 07D6B8 7F048B48 27A503A8 */ addiu $a1, $sp, 0x3a8 +/* 07D6BC 7F048B4C 0FC1E26D */ jal get_BONDdata_field_10CC +/* 07D6C0 7F048B50 00000000 */ nop +/* 07D6C4 7F048B54 00402025 */ move $a0, $v0 +/* 07D6C8 7F048B58 27A503A8 */ addiu $a1, $sp, 0x3a8 +/* 07D6CC 7F048B5C 0FC161AB */ jal matrix_4x4_multiply_homogeneous +/* 07D6D0 7F048B60 02403025 */ move $a2, $s2 +/* 07D6D4 7F048B64 92220003 */ lbu $v0, 3($s1) +/* 07D6D8 7F048B68 24010006 */ li $at, 6 +/* 07D6DC 7F048B6C 27A50324 */ addiu $a1, $sp, 0x324 +/* 07D6E0 7F048B70 5441002D */ bnel $v0, $at, .Ljp7F048C28 +/* 07D6E4 7F048B74 2401000D */ li $at, 13 +/* 07D6E8 7F048B78 8E620004 */ lw $v0, 4($s3) +/* 07D6EC 7F048B7C 8E8C0008 */ lw $t4, 8($s4) +/* 07D6F0 7F048B80 C44C00C8 */ lwc1 $f12, 0xc8($v0) +/* 07D6F4 7F048B84 8D8A0008 */ lw $t2, 8($t4) +/* 07D6F8 7F048B88 4616603C */ c.lt.s $f12, $f22 +/* 07D6FC 7F048B8C 8D4F0000 */ lw $t7, ($t2) +/* 07D700 7F048B90 45000003 */ bc1f .Ljp7F048BA0 +/* 07D704 7F048B94 8DF00004 */ lw $s0, 4($t7) +/* 07D708 7F048B98 10000006 */ b .Ljp7F048BB4 +/* 07D70C 7F048B9C 46146300 */ add.s $f12, $f12, $f20 +.Ljp7F048BA0: +/* 07D710 7F048BA0 460CA03E */ c.le.s $f20, $f12 +/* 07D714 7F048BA4 00000000 */ nop +/* 07D718 7F048BA8 45000002 */ bc1f .Ljp7F048BB4 +/* 07D71C 7F048BAC 00000000 */ nop +/* 07D720 7F048BB0 46146301 */ sub.s $f12, $f12, $f20 +.Ljp7F048BB4: +/* 07D724 7F048BB4 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 07D728 7F048BB8 AFA20374 */ sw $v0, 0x374($sp) +/* 07D72C 7F048BBC 8FA20374 */ lw $v0, 0x374($sp) +/* 07D730 7F048BC0 26460040 */ addiu $a2, $s2, 0x40 +/* 07D734 7F048BC4 AFA60070 */ sw $a2, 0x70($sp) +/* 07D738 7F048BC8 27A40324 */ addiu $a0, $sp, 0x324 +/* 07D73C 7F048BCC 0FC1617A */ jal matrix_4x4_multiply +/* 07D740 7F048BD0 24450084 */ addiu $a1, $v0, 0x84 +/* 07D744 7F048BD4 C6080000 */ lwc1 $f8, ($s0) +/* 07D748 7F048BD8 27B20364 */ addiu $s2, $sp, 0x364 +/* 07D74C 7F048BDC 02402825 */ move $a1, $s2 +/* 07D750 7F048BE0 E7A80364 */ swc1 $f8, 0x364($sp) +/* 07D754 7F048BE4 C6040004 */ lwc1 $f4, 4($s0) +/* 07D758 7F048BE8 27A403A8 */ addiu $a0, $sp, 0x3a8 +/* 07D75C 7F048BEC E7A40368 */ swc1 $f4, 0x368($sp) +/* 07D760 7F048BF0 C6060008 */ lwc1 $f6, 8($s0) +/* 07D764 7F048BF4 0FC16265 */ jal matrix_4x4_transform_vector_in_place +/* 07D768 7F048BF8 E7A6036C */ swc1 $f6, 0x36c($sp) +/* 07D76C 7F048BFC 02402025 */ move $a0, $s2 +/* 07D770 7F048C00 0FC163AE */ jal matrix_4x4_set_position +/* 07D774 7F048C04 8FA50070 */ lw $a1, 0x70($sp) +/* 07D778 7F048C08 0FC1E26D */ jal get_BONDdata_field_10CC +/* 07D77C 7F048C0C 00000000 */ nop +/* 07D780 7F048C10 00402025 */ move $a0, $v0 +/* 07D784 7F048C14 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D788 7F048C18 8FA50070 */ lw $a1, 0x70($sp) +/* 07D78C 7F048C1C 1000026B */ b .Ljp7F0495CC +/* 07D790 7F048C20 8E8C0008 */ lw $t4, 8($s4) +/* 07D794 7F048C24 2401000D */ li $at, 13 +.Ljp7F048C28: +/* 07D798 7F048C28 5441007F */ bnel $v0, $at, .Ljp7F048E28 +/* 07D79C 7F048C2C 24010008 */ li $at, 8 +/* 07D7A0 7F048C30 8E620004 */ lw $v0, 4($s3) +/* 07D7A4 7F048C34 3C018005 */ lui $at, %hi(D_80052B6C) # $at, 0x8005 +/* 07D7A8 7F048C38 C4282B9C */ lwc1 $f8, %lo(D_80052B6C)($at) +/* 07D7AC 7F048C3C C44A0090 */ lwc1 $f10, 0x90($v0) +/* 07D7B0 7F048C40 C444009C */ lwc1 $f4, 0x9c($v0) +/* 07D7B4 7F048C44 46085300 */ add.s $f12, $f10, $f8 +/* 07D7B8 7F048C48 46002187 */ neg.s $f6, $f4 +/* 07D7BC 7F048C4C 460CA03E */ c.le.s $f20, $f12 +/* 07D7C0 7F048C50 E7A60304 */ swc1 $f6, 0x304($sp) +/* 07D7C4 7F048C54 45020003 */ bc1fl .Ljp7F048C64 +/* 07D7C8 7F048C58 8E8D0008 */ lw $t5, 8($s4) +/* 07D7CC 7F048C5C 46146301 */ sub.s $f12, $f12, $f20 +/* 07D7D0 7F048C60 8E8D0008 */ lw $t5, 8($s4) +.Ljp7F048C64: +/* 07D7D4 7F048C64 27A403A8 */ addiu $a0, $sp, 0x3a8 +/* 07D7D8 7F048C68 27A5030C */ addiu $a1, $sp, 0x30c +/* 07D7DC 7F048C6C 8DB90008 */ lw $t9, 8($t5) +/* 07D7E0 7F048C70 8F280004 */ lw $t0, 4($t9) +/* 07D7E4 7F048C74 8D100004 */ lw $s0, 4($t0) +/* 07D7E8 7F048C78 C60A0000 */ lwc1 $f10, ($s0) +/* 07D7EC 7F048C7C E7AA030C */ swc1 $f10, 0x30c($sp) +/* 07D7F0 7F048C80 C6080004 */ lwc1 $f8, 4($s0) +/* 07D7F4 7F048C84 E7A80310 */ swc1 $f8, 0x310($sp) +/* 07D7F8 7F048C88 C6040008 */ lwc1 $f4, 8($s0) +/* 07D7FC 7F048C8C E7AC0308 */ swc1 $f12, 0x308($sp) +/* 07D800 7F048C90 AFA2031C */ sw $v0, 0x31c($sp) +/* 07D804 7F048C94 0FC16265 */ jal matrix_4x4_transform_vector_in_place +/* 07D808 7F048C98 E7A40314 */ swc1 $f4, 0x314($sp) +/* 07D80C 7F048C9C 26450040 */ addiu $a1, $s2, 0x40 +/* 07D810 7F048CA0 C7AC0308 */ lwc1 $f12, 0x308($sp) +/* 07D814 7F048CA4 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 07D818 7F048CA8 AFA50070 */ sw $a1, 0x70($sp) +/* 07D81C 7F048CAC 27A4030C */ addiu $a0, $sp, 0x30c +/* 07D820 7F048CB0 0FC163AE */ jal matrix_4x4_set_position +/* 07D824 7F048CB4 8FA50070 */ lw $a1, 0x70($sp) +/* 07D828 7F048CB8 8FB8031C */ lw $t8, 0x31c($sp) +/* 07D82C 7F048CBC 8FA50070 */ lw $a1, 0x70($sp) +/* 07D830 7F048CC0 8F090014 */ lw $t1, 0x14($t8) +/* 07D834 7F048CC4 0FC163E7 */ jal matrix_scalar_multiply +/* 07D838 7F048CC8 C52C0014 */ lwc1 $f12, 0x14($t1) +/* 07D83C 7F048CCC 0FC1E26D */ jal get_BONDdata_field_10CC +/* 07D840 7F048CD0 00000000 */ nop +/* 07D844 7F048CD4 00402025 */ move $a0, $v0 +/* 07D848 7F048CD8 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D84C 7F048CDC 8FA50070 */ lw $a1, 0x70($sp) +/* 07D850 7F048CE0 8E8B0008 */ lw $t3, 8($s4) +/* 07D854 7F048CE4 26450080 */ addiu $a1, $s2, 0x80 +/* 07D858 7F048CE8 C7AC0304 */ lwc1 $f12, 0x304($sp) +/* 07D85C 7F048CEC 8D6E0008 */ lw $t6, 8($t3) +/* 07D860 7F048CF0 8DCC0008 */ lw $t4, 8($t6) +/* 07D864 7F048CF4 8D900004 */ lw $s0, 4($t4) +/* 07D868 7F048CF8 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 07D86C 7F048CFC AFA5006C */ sw $a1, 0x6c($sp) +/* 07D870 7F048D00 02002025 */ move $a0, $s0 +/* 07D874 7F048D04 0FC163AE */ jal matrix_4x4_set_position +/* 07D878 7F048D08 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D87C 7F048D0C 8FA40070 */ lw $a0, 0x70($sp) +/* 07D880 7F048D10 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D884 7F048D14 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D888 7F048D18 8E8A0008 */ lw $t2, 8($s4) +/* 07D88C 7F048D1C 02802025 */ move $a0, $s4 +/* 07D890 7F048D20 8D430008 */ lw $v1, 8($t2) +/* 07D894 7F048D24 8C65000C */ lw $a1, 0xc($v1) +/* 07D898 7F048D28 50A00016 */ beql $a1, $zero, .Ljp7F048D84 +/* 07D89C 7F048D2C 8C650010 */ lw $a1, 0x10($v1) +/* 07D8A0 7F048D30 0FC1B314 */ jal sub_GAME_7F06C660 +/* 07D8A4 7F048D34 00003025 */ move $a2, $zero +/* 07D8A8 7F048D38 AFA20300 */ sw $v0, 0x300($sp) +/* 07D8AC 7F048D3C 8E8F0008 */ lw $t7, 8($s4) +/* 07D8B0 7F048D40 8FA8031C */ lw $t0, 0x31c($sp) +/* 07D8B4 7F048D44 00402825 */ move $a1, $v0 +/* 07D8B8 7F048D48 8DED0008 */ lw $t5, 8($t7) +/* 07D8BC 7F048D4C C50C00B4 */ lwc1 $f12, 0xb4($t0) +/* 07D8C0 7F048D50 8DB9000C */ lw $t9, 0xc($t5) +/* 07D8C4 7F048D54 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 07D8C8 7F048D58 8F300004 */ lw $s0, 4($t9) +/* 07D8CC 7F048D5C 8FB20300 */ lw $s2, 0x300($sp) +/* 07D8D0 7F048D60 02002025 */ move $a0, $s0 +/* 07D8D4 7F048D64 0FC163AE */ jal matrix_4x4_set_position +/* 07D8D8 7F048D68 02402825 */ move $a1, $s2 +/* 07D8DC 7F048D6C 8FA4006C */ lw $a0, 0x6c($sp) +/* 07D8E0 7F048D70 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D8E4 7F048D74 02402825 */ move $a1, $s2 +/* 07D8E8 7F048D78 8E980008 */ lw $t8, 8($s4) +/* 07D8EC 7F048D7C 8F030008 */ lw $v1, 8($t8) +/* 07D8F0 7F048D80 8C650010 */ lw $a1, 0x10($v1) +.Ljp7F048D84: +/* 07D8F4 7F048D84 02802025 */ move $a0, $s4 +/* 07D8F8 7F048D88 50A00010 */ beql $a1, $zero, .Ljp7F048DCC +/* 07D8FC 7F048D8C 8C650018 */ lw $a1, 0x18($v1) +/* 07D900 7F048D90 0FC1B314 */ jal sub_GAME_7F06C660 +/* 07D904 7F048D94 00003025 */ move $a2, $zero +/* 07D908 7F048D98 8E890008 */ lw $t1, 8($s4) +/* 07D90C 7F048D9C 00409025 */ move $s2, $v0 +/* 07D910 7F048DA0 00402825 */ move $a1, $v0 +/* 07D914 7F048DA4 8D2B0008 */ lw $t3, 8($t1) +/* 07D918 7F048DA8 8D6E0010 */ lw $t6, 0x10($t3) +/* 07D91C 7F048DAC 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 07D920 7F048DB0 8DC40004 */ lw $a0, 4($t6) +/* 07D924 7F048DB4 8FA4006C */ lw $a0, 0x6c($sp) +/* 07D928 7F048DB8 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D92C 7F048DBC 02402825 */ move $a1, $s2 +/* 07D930 7F048DC0 8E8C0008 */ lw $t4, 8($s4) +/* 07D934 7F048DC4 8D830008 */ lw $v1, 8($t4) +/* 07D938 7F048DC8 8C650018 */ lw $a1, 0x18($v1) +.Ljp7F048DCC: +/* 07D93C 7F048DCC 02802025 */ move $a0, $s4 +/* 07D940 7F048DD0 50A001FE */ beql $a1, $zero, .Ljp7F0495CC +/* 07D944 7F048DD4 8E8C0008 */ lw $t4, 8($s4) +/* 07D948 7F048DD8 0FC1B314 */ jal sub_GAME_7F06C660 +/* 07D94C 7F048DDC 00003025 */ move $a2, $zero +/* 07D950 7F048DE0 8E8A0008 */ lw $t2, 8($s4) +/* 07D954 7F048DE4 8FB9031C */ lw $t9, 0x31c($sp) +/* 07D958 7F048DE8 00409025 */ move $s2, $v0 +/* 07D95C 7F048DEC 8D4F0008 */ lw $t7, 8($t2) +/* 07D960 7F048DF0 00402825 */ move $a1, $v0 +/* 07D964 7F048DF4 C72C00B4 */ lwc1 $f12, 0xb4($t9) +/* 07D968 7F048DF8 8DED0018 */ lw $t5, 0x18($t7) +/* 07D96C 7F048DFC 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 07D970 7F048E00 8DB00004 */ lw $s0, 4($t5) +/* 07D974 7F048E04 02002025 */ move $a0, $s0 +/* 07D978 7F048E08 0FC163AE */ jal matrix_4x4_set_position +/* 07D97C 7F048E0C 02402825 */ move $a1, $s2 +/* 07D980 7F048E10 8FA4006C */ lw $a0, 0x6c($sp) +/* 07D984 7F048E14 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D988 7F048E18 02402825 */ move $a1, $s2 +/* 07D98C 7F048E1C 100001EB */ b .Ljp7F0495CC +/* 07D990 7F048E20 8E8C0008 */ lw $t4, 8($s4) +/* 07D994 7F048E24 24010008 */ li $at, 8 +.Ljp7F048E28: +/* 07D998 7F048E28 54410017 */ bnel $v0, $at, .Ljp7F048E88 +/* 07D99C 7F048E2C 2401000C */ li $at, 12 +/* 07D9A0 7F048E30 8E880008 */ lw $t0, 8($s4) +/* 07D9A4 7F048E34 24020001 */ li $v0, 1 +/* 07D9A8 7F048E38 26440040 */ addiu $a0, $s2, 0x40 +/* 07D9AC 7F048E3C 8518000E */ lh $t8, 0xe($t0) +/* 07D9B0 7F048E40 2B010002 */ slti $at, $t8, 2 +/* 07D9B4 7F048E44 542001E1 */ bnezl $at, .Ljp7F0495CC +/* 07D9B8 7F048E48 8E8C0008 */ lw $t4, 8($s4) +/* 07D9BC 7F048E4C AFA202FC */ sw $v0, 0x2fc($sp) +.Ljp7F048E50: +/* 07D9C0 7F048E50 0FC1613C */ jal matrix_4x4_set_identity +/* 07D9C4 7F048E54 AFA40078 */ sw $a0, 0x78($sp) +/* 07D9C8 7F048E58 8E890008 */ lw $t1, 8($s4) +/* 07D9CC 7F048E5C 8FA202FC */ lw $v0, 0x2fc($sp) +/* 07D9D0 7F048E60 8FA40078 */ lw $a0, 0x78($sp) +/* 07D9D4 7F048E64 852B000E */ lh $t3, 0xe($t1) +/* 07D9D8 7F048E68 24420001 */ addiu $v0, $v0, 1 +/* 07D9DC 7F048E6C 24840040 */ addiu $a0, $a0, 0x40 +/* 07D9E0 7F048E70 004B082A */ slt $at, $v0, $t3 +/* 07D9E4 7F048E74 5420FFF6 */ bnezl $at, .Ljp7F048E50 +/* 07D9E8 7F048E78 AFA202FC */ sw $v0, 0x2fc($sp) +/* 07D9EC 7F048E7C 100001D3 */ b .Ljp7F0495CC +/* 07D9F0 7F048E80 8E8C0008 */ lw $t4, 8($s4) +/* 07D9F4 7F048E84 2401000C */ li $at, 12 +.Ljp7F048E88: +/* 07D9F8 7F048E88 5441002C */ bnel $v0, $at, .Ljp7F048F3C +/* 07D9FC 7F048E8C 24010027 */ li $at, 39 +/* 07DA00 7F048E90 8E8E0008 */ lw $t6, 8($s4) +/* 07DA04 7F048E94 26450040 */ addiu $a1, $s2, 0x40 +/* 07DA08 7F048E98 8DCC0008 */ lw $t4, 8($t6) +/* 07DA0C 7F048E9C 8D8A0000 */ lw $t2, ($t4) +/* 07DA10 7F048EA0 8D440004 */ lw $a0, 4($t2) +/* 07DA14 7F048EA4 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 07DA18 7F048EA8 AFA50070 */ sw $a1, 0x70($sp) +/* 07DA1C 7F048EAC 02402025 */ move $a0, $s2 +/* 07DA20 7F048EB0 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DA24 7F048EB4 8FA50070 */ lw $a1, 0x70($sp) +/* 07DA28 7F048EB8 8E8F0008 */ lw $t7, 8($s4) +/* 07DA2C 7F048EBC 26450080 */ addiu $a1, $s2, 0x80 +/* 07DA30 7F048EC0 8DED0008 */ lw $t5, 8($t7) +/* 07DA34 7F048EC4 8DB90004 */ lw $t9, 4($t5) +/* 07DA38 7F048EC8 8F240004 */ lw $a0, 4($t9) +/* 07DA3C 7F048ECC 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 07DA40 7F048ED0 AFA5006C */ sw $a1, 0x6c($sp) +/* 07DA44 7F048ED4 02402025 */ move $a0, $s2 +/* 07DA48 7F048ED8 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DA4C 7F048EDC 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DA50 7F048EE0 8E880008 */ lw $t0, 8($s4) +/* 07DA54 7F048EE4 264500C0 */ addiu $a1, $s2, 0xc0 +/* 07DA58 7F048EE8 8D180008 */ lw $t8, 8($t0) +/* 07DA5C 7F048EEC 8F090008 */ lw $t1, 8($t8) +/* 07DA60 7F048EF0 8D240004 */ lw $a0, 4($t1) +/* 07DA64 7F048EF4 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 07DA68 7F048EF8 AFA50078 */ sw $a1, 0x78($sp) +/* 07DA6C 7F048EFC 02402025 */ move $a0, $s2 +/* 07DA70 7F048F00 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DA74 7F048F04 8FA50078 */ lw $a1, 0x78($sp) +/* 07DA78 7F048F08 8E8B0008 */ lw $t3, 8($s4) +/* 07DA7C 7F048F0C 26500100 */ addiu $s0, $s2, 0x100 +/* 07DA80 7F048F10 02002825 */ move $a1, $s0 +/* 07DA84 7F048F14 8D6E0008 */ lw $t6, 8($t3) +/* 07DA88 7F048F18 8DCC000C */ lw $t4, 0xc($t6) +/* 07DA8C 7F048F1C 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 07DA90 7F048F20 8D840004 */ lw $a0, 4($t4) +/* 07DA94 7F048F24 02402025 */ move $a0, $s2 +/* 07DA98 7F048F28 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DA9C 7F048F2C 02002825 */ move $a1, $s0 +/* 07DAA0 7F048F30 100001A6 */ b .Ljp7F0495CC +/* 07DAA4 7F048F34 8E8C0008 */ lw $t4, 8($s4) +/* 07DAA8 7F048F38 24010027 */ li $at, 39 +.Ljp7F048F3C: +/* 07DAAC 7F048F3C 544100B9 */ bnel $v0, $at, .Ljp7F049224 +/* 07DAB0 7F048F40 24010028 */ li $at, 40 +/* 07DAB4 7F048F44 8E8A0008 */ lw $t2, 8($s4) +/* 07DAB8 7F048F48 8FAC0680 */ lw $t4, 0x680($sp) +/* 07DABC 7F048F4C 4600B006 */ mov.s $f0, $f22 +/* 07DAC0 7F048F50 8D430008 */ lw $v1, 8($t2) +/* 07DAC4 7F048F54 8C6F0004 */ lw $t7, 4($v1) +/* 07DAC8 7F048F58 8DED0004 */ lw $t5, 4($t7) +/* 07DACC 7F048F5C AFAD0264 */ sw $t5, 0x264($sp) +/* 07DAD0 7F048F60 8C790008 */ lw $t9, 8($v1) +/* 07DAD4 7F048F64 8F280004 */ lw $t0, 4($t9) +/* 07DAD8 7F048F68 AFA80260 */ sw $t0, 0x260($sp) +/* 07DADC 7F048F6C 8C690010 */ lw $t1, 0x10($v1) +/* 07DAE0 7F048F70 8C78000C */ lw $t8, 0xc($v1) +/* 07DAE4 7F048F74 8D2B0004 */ lw $t3, 4($t1) +/* 07DAE8 7F048F78 8F100004 */ lw $s0, 4($t8) +/* 07DAEC 7F048F7C AFAB0258 */ sw $t3, 0x258($sp) +/* 07DAF0 7F048F80 8C6E0018 */ lw $t6, 0x18($v1) +/* 07DAF4 7F048F84 C6840014 */ lwc1 $f4, 0x14($s4) +/* 07DAF8 7F048F88 8DC20004 */ lw $v0, 4($t6) +/* 07DAFC 7F048F8C C4460010 */ lwc1 $f6, 0x10($v0) +/* 07DB00 7F048F90 C44A000C */ lwc1 $f10, 0xc($v0) +/* 07DB04 7F048F94 460A3201 */ sub.s $f8, $f6, $f10 +/* 07DB08 7F048F98 46044082 */ mul.s $f2, $f8, $f4 +/* 07DB0C 7F048F9C 11800026 */ beqz $t4, .Ljp7F049038 +/* 07DB10 7F048FA0 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 07DB14 7F048FA4 C42A83B4 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07DB18 7F048FA8 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07DB1C 7F048FAC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07DB20 7F048FB0 460A3202 */ mul.s $f8, $f6, $f10 +/* 07DB24 7F048FB4 44815000 */ mtc1 $at, $f10 +/* 07DB28 7F048FB8 46144102 */ mul.s $f4, $f8, $f20 +/* 07DB2C 7F048FBC 00000000 */ nop +/* 07DB30 7F048FC0 46141182 */ mul.s $f6, $f2, $f20 +/* 07DB34 7F048FC4 00000000 */ nop +/* 07DB38 7F048FC8 460A3202 */ mul.s $f8, $f6, $f10 +/* 07DB3C 7F048FCC C626008C */ lwc1 $f6, 0x8c($s1) +/* 07DB40 7F048FD0 46082003 */ div.s $f0, $f4, $f8 +/* 07DB44 7F048FD4 46003280 */ add.s $f10, $f6, $f0 +/* 07DB48 7F048FD8 E62A008C */ swc1 $f10, 0x8c($s1) +/* 07DB4C 7F048FDC C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07DB50 7F048FE0 460CA03E */ c.le.s $f20, $f12 +/* 07DB54 7F048FE4 00000000 */ nop +/* 07DB58 7F048FE8 45000008 */ bc1f .Ljp7F04900C +/* 07DB5C 7F048FEC 00000000 */ nop +/* 07DB60 7F048FF0 46146101 */ sub.s $f4, $f12, $f20 +.Ljp7F048FF4: +/* 07DB64 7F048FF4 E624008C */ swc1 $f4, 0x8c($s1) +/* 07DB68 7F048FF8 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07DB6C 7F048FFC 460CA03E */ c.le.s $f20, $f12 +/* 07DB70 7F049000 00000000 */ nop +/* 07DB74 7F049004 4503FFFB */ bc1tl .Ljp7F048FF4 +/* 07DB78 7F049008 46146101 */ sub.s $f4, $f12, $f20 +.Ljp7F04900C: +/* 07DB7C 7F04900C 4616603C */ c.lt.s $f12, $f22 +/* 07DB80 7F049010 00000000 */ nop +/* 07DB84 7F049014 45020009 */ bc1fl .Ljp7F04903C +/* 07DB88 7F049018 C626008C */ lwc1 $f6, 0x8c($s1) +/* 07DB8C 7F04901C 46146200 */ add.s $f8, $f12, $f20 +.Ljp7F049020: +/* 07DB90 7F049020 E628008C */ swc1 $f8, 0x8c($s1) +/* 07DB94 7F049024 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07DB98 7F049028 4616603C */ c.lt.s $f12, $f22 +/* 07DB9C 7F04902C 00000000 */ nop +/* 07DBA0 7F049030 4503FFFB */ bc1tl .Ljp7F049020 +/* 07DBA4 7F049034 46146200 */ add.s $f8, $f12, $f20 +.Ljp7F049038: +/* 07DBA8 7F049038 C626008C */ lwc1 $f6, 0x8c($s1) +.Ljp7F04903C: +/* 07DBAC 7F04903C 46003280 */ add.s $f10, $f6, $f0 +/* 07DBB0 7F049040 E62A008C */ swc1 $f10, 0x8c($s1) +/* 07DBB4 7F049044 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07DBB8 7F049048 460CA03E */ c.le.s $f20, $f12 +/* 07DBBC 7F04904C 00000000 */ nop +/* 07DBC0 7F049050 45020009 */ bc1fl .Ljp7F049078 +/* 07DBC4 7F049054 4616603C */ c.lt.s $f12, $f22 +/* 07DBC8 7F049058 46146101 */ sub.s $f4, $f12, $f20 +.Ljp7F04905C: +/* 07DBCC 7F04905C E624008C */ swc1 $f4, 0x8c($s1) +/* 07DBD0 7F049060 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07DBD4 7F049064 460CA03E */ c.le.s $f20, $f12 +/* 07DBD8 7F049068 00000000 */ nop +/* 07DBDC 7F04906C 4503FFFB */ bc1tl .Ljp7F04905C +/* 07DBE0 7F049070 46146101 */ sub.s $f4, $f12, $f20 +/* 07DBE4 7F049074 4616603C */ c.lt.s $f12, $f22 +.Ljp7F049078: +/* 07DBE8 7F049078 00000000 */ nop +/* 07DBEC 7F04907C 45000008 */ bc1f .Ljp7F0490A0 +/* 07DBF0 7F049080 00000000 */ nop +/* 07DBF4 7F049084 46146200 */ add.s $f8, $f12, $f20 +.Ljp7F049088: +/* 07DBF8 7F049088 E628008C */ swc1 $f8, 0x8c($s1) +/* 07DBFC 7F04908C C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07DC00 7F049090 4616603C */ c.lt.s $f12, $f22 +/* 07DC04 7F049094 00000000 */ nop +/* 07DC08 7F049098 4503FFFB */ bc1tl .Ljp7F049088 +/* 07DC0C 7F04909C 46146200 */ add.s $f8, $f12, $f20 +.Ljp7F0490A0: +/* 07DC10 7F0490A0 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 07DC14 7F0490A4 27A502B0 */ addiu $a1, $sp, 0x2b0 +/* 07DC18 7F0490A8 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07DC1C 7F0490AC 4606B03C */ c.lt.s $f22, $f6 +/* 07DC20 7F0490B0 00000000 */ nop +/* 07DC24 7F0490B4 4502002B */ bc1fl .Ljp7F049164 +/* 07DC28 7F0490B8 C62C0090 */ lwc1 $f12, 0x90($s1) +/* 07DC2C 7F0490BC 8FAA0264 */ lw $t2, 0x264($sp) +/* 07DC30 7F0490C0 C60A0008 */ lwc1 $f10, 8($s0) +/* 07DC34 7F0490C4 C62C009C */ lwc1 $f12, 0x9c($s1) +/* 07DC38 7F0490C8 C5440008 */ lwc1 $f4, 8($t2) +/* 07DC3C 7F0490CC C6860014 */ lwc1 $f6, 0x14($s4) +/* 07DC40 7F0490D0 4616603C */ c.lt.s $f12, $f22 +/* 07DC44 7F0490D4 46045201 */ sub.s $f8, $f10, $f4 +/* 07DC48 7F0490D8 46064082 */ mul.s $f2, $f8, $f6 +/* 07DC4C 7F0490DC 45020003 */ bc1fl .Ljp7F0490EC +/* 07DC50 7F0490E0 E7A20254 */ swc1 $f2, 0x254($sp) +/* 07DC54 7F0490E4 46006307 */ neg.s $f12, $f12 +/* 07DC58 7F0490E8 E7A20254 */ swc1 $f2, 0x254($sp) +.Ljp7F0490EC: +/* 07DC5C 7F0490EC 0FC160F3 */ jal sinf +/* 07DC60 7F0490F0 E7AC0250 */ swc1 $f12, 0x250($sp) +/* 07DC64 7F0490F4 C7A20254 */ lwc1 $f2, 0x254($sp) +/* 07DC68 7F0490F8 C7AC0250 */ lwc1 $f12, 0x250($sp) +/* 07DC6C 7F0490FC 46020282 */ mul.s $f10, $f0, $f2 +/* 07DC70 7F049100 0FC160F0 */ jal cosf +/* 07DC74 7F049104 E7AA024C */ swc1 $f10, 0x24c($sp) +/* 07DC78 7F049108 C7A20254 */ lwc1 $f2, 0x254($sp) +/* 07DC7C 7F04910C C6280088 */ lwc1 $f8, 0x88($s1) +/* 07DC80 7F049110 C7AC024C */ lwc1 $f12, 0x24c($sp) +/* 07DC84 7F049114 46020102 */ mul.s $f4, $f0, $f2 +/* 07DC88 7F049118 46081181 */ sub.s $f6, $f2, $f8 +/* 07DC8C 7F04911C 0FC16BD4 */ jal atan2f +/* 07DC90 7F049120 46062381 */ sub.s $f14, $f4, $f6 +/* 07DC94 7F049124 C7A20250 */ lwc1 $f2, 0x250($sp) +/* 07DC98 7F049128 E6200090 */ swc1 $f0, 0x90($s1) +/* 07DC9C 7F04912C 4602003C */ c.lt.s $f0, $f2 +/* 07DCA0 7F049130 00000000 */ nop +/* 07DCA4 7F049134 45020003 */ bc1fl .Ljp7F049144 +/* 07DCA8 7F049138 C62A009C */ lwc1 $f10, 0x9c($s1) +/* 07DCAC 7F04913C E6220090 */ swc1 $f2, 0x90($s1) +/* 07DCB0 7F049140 C62A009C */ lwc1 $f10, 0x9c($s1) +.Ljp7F049144: +/* 07DCB4 7F049144 460AB03C */ c.lt.s $f22, $f10 +/* 07DCB8 7F049148 00000000 */ nop +/* 07DCBC 7F04914C 45020005 */ bc1fl .Ljp7F049164 +/* 07DCC0 7F049150 C62C0090 */ lwc1 $f12, 0x90($s1) +/* 07DCC4 7F049154 C6280090 */ lwc1 $f8, 0x90($s1) +/* 07DCC8 7F049158 4608A101 */ sub.s $f4, $f20, $f8 +/* 07DCCC 7F04915C E6240090 */ swc1 $f4, 0x90($s1) +/* 07DCD0 7F049160 C62C0090 */ lwc1 $f12, 0x90($s1) +.Ljp7F049164: +/* 07DCD4 7F049164 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 07DCD8 7F049168 27A50270 */ addiu $a1, $sp, 0x270 +/* 07DCDC 7F04916C 264500C0 */ addiu $a1, $s2, 0xc0 +/* 07DCE0 7F049170 AFA50078 */ sw $a1, 0x78($sp) +/* 07DCE4 7F049174 0FC16150 */ jal matrix_4x4_copy +/* 07DCE8 7F049178 27A402B0 */ addiu $a0, $sp, 0x2b0 +/* 07DCEC 7F04917C 02002025 */ move $a0, $s0 +/* 07DCF0 7F049180 0FC163AE */ jal matrix_4x4_set_position +/* 07DCF4 7F049184 8FA50078 */ lw $a1, 0x78($sp) +/* 07DCF8 7F049188 02402025 */ move $a0, $s2 +/* 07DCFC 7F04918C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DD00 7F049190 8FA50078 */ lw $a1, 0x78($sp) +/* 07DD04 7F049194 26500100 */ addiu $s0, $s2, 0x100 +/* 07DD08 7F049198 02002825 */ move $a1, $s0 +/* 07DD0C 7F04919C 0FC16150 */ jal matrix_4x4_copy +/* 07DD10 7F0491A0 27A402B0 */ addiu $a0, $sp, 0x2b0 +/* 07DD14 7F0491A4 8FA40258 */ lw $a0, 0x258($sp) +/* 07DD18 7F0491A8 0FC163AE */ jal matrix_4x4_set_position +/* 07DD1C 7F0491AC 02002825 */ move $a1, $s0 +/* 07DD20 7F0491B0 02402025 */ move $a0, $s2 +/* 07DD24 7F0491B4 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DD28 7F0491B8 02002825 */ move $a1, $s0 +/* 07DD2C 7F0491BC 27A40270 */ addiu $a0, $sp, 0x270 +/* 07DD30 7F0491C0 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DD34 7F0491C4 27A502B0 */ addiu $a1, $sp, 0x2b0 +/* 07DD38 7F0491C8 26450040 */ addiu $a1, $s2, 0x40 +/* 07DD3C 7F0491CC AFA50070 */ sw $a1, 0x70($sp) +/* 07DD40 7F0491D0 0FC16150 */ jal matrix_4x4_copy +/* 07DD44 7F0491D4 27A402B0 */ addiu $a0, $sp, 0x2b0 +/* 07DD48 7F0491D8 8FA40264 */ lw $a0, 0x264($sp) +/* 07DD4C 7F0491DC 0FC163AE */ jal matrix_4x4_set_position +/* 07DD50 7F0491E0 8FA50070 */ lw $a1, 0x70($sp) +/* 07DD54 7F0491E4 02402025 */ move $a0, $s2 +/* 07DD58 7F0491E8 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DD5C 7F0491EC 8FA50070 */ lw $a1, 0x70($sp) +/* 07DD60 7F0491F0 26450080 */ addiu $a1, $s2, 0x80 +/* 07DD64 7F0491F4 AFA5006C */ sw $a1, 0x6c($sp) +/* 07DD68 7F0491F8 0FC16150 */ jal matrix_4x4_copy +/* 07DD6C 7F0491FC 27A402B0 */ addiu $a0, $sp, 0x2b0 +/* 07DD70 7F049200 8FA40260 */ lw $a0, 0x260($sp) +/* 07DD74 7F049204 0FC163AE */ jal matrix_4x4_set_position +/* 07DD78 7F049208 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DD7C 7F04920C 02402025 */ move $a0, $s2 +/* 07DD80 7F049210 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DD84 7F049214 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DD88 7F049218 100000EC */ b .Ljp7F0495CC +/* 07DD8C 7F04921C 8E8C0008 */ lw $t4, 8($s4) +/* 07DD90 7F049220 24010028 */ li $at, 40 +.Ljp7F049224: +/* 07DD94 7F049224 14410086 */ bne $v0, $at, .Ljp7F049440 +/* 07DD98 7F049228 00000000 */ nop +/* 07DD9C 7F04922C 8E8F0008 */ lw $t7, 8($s4) +/* 07DDA0 7F049230 3C188005 */ lui $t8, %hi(clock_timer) # $t8, 0x8005 +/* 07DDA4 7F049234 8F1883A4 */ lw $t8, %lo(clock_timer)($t8) +/* 07DDA8 7F049238 8DED0008 */ lw $t5, 8($t7) +/* 07DDAC 7F04923C 8FA90680 */ lw $t1, 0x680($sp) +/* 07DDB0 7F049240 27B001B4 */ addiu $s0, $sp, 0x1b4 +/* 07DDB4 7F049244 8DB90008 */ lw $t9, 8($t5) +/* 07DDB8 7F049248 3C0C8003 */ lui $t4, %hi(D_80030B34) # $t4, 0x8003 +/* 07DDBC 7F04924C 02402025 */ move $a0, $s2 +/* 07DDC0 7F049250 8F280004 */ lw $t0, 4($t9) +/* 07DDC4 7F049254 26450040 */ addiu $a1, $s2, 0x40 +/* 07DDC8 7F049258 1B00001E */ blez $t8, .Ljp7F0492D4 +/* 07DDCC 7F04925C AFA80200 */ sw $t0, 0x200($sp) +/* 07DDD0 7F049260 5120001D */ beql $t1, $zero, .Ljp7F0492D8 +/* 07DDD4 7F049264 8E2B0014 */ lw $t3, 0x14($s1) +/* 07DDD8 7F049268 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07DDDC 7F04926C C62A008C */ lwc1 $f10, 0x8c($s1) +/* 07DDE0 7F049270 460A3200 */ add.s $f8, $f6, $f10 +/* 07DDE4 7F049274 E6280088 */ swc1 $f8, 0x88($s1) +/* 07DDE8 7F049278 C6200088 */ lwc1 $f0, 0x88($s1) +/* 07DDEC 7F04927C 4600A03E */ c.le.s $f20, $f0 +/* 07DDF0 7F049280 00000000 */ nop +/* 07DDF4 7F049284 45020009 */ bc1fl .Ljp7F0492AC +/* 07DDF8 7F049288 4616003C */ c.lt.s $f0, $f22 +/* 07DDFC 7F04928C 46140101 */ sub.s $f4, $f0, $f20 +.Ljp7F049290: +/* 07DE00 7F049290 E6240088 */ swc1 $f4, 0x88($s1) +/* 07DE04 7F049294 C6200088 */ lwc1 $f0, 0x88($s1) +/* 07DE08 7F049298 4600A03E */ c.le.s $f20, $f0 +/* 07DE0C 7F04929C 00000000 */ nop +/* 07DE10 7F0492A0 4503FFFB */ bc1tl .Ljp7F049290 +/* 07DE14 7F0492A4 46140101 */ sub.s $f4, $f0, $f20 +/* 07DE18 7F0492A8 4616003C */ c.lt.s $f0, $f22 +.Ljp7F0492AC: +/* 07DE1C 7F0492AC 00000000 */ nop +/* 07DE20 7F0492B0 45020009 */ bc1fl .Ljp7F0492D8 +/* 07DE24 7F0492B4 8E2B0014 */ lw $t3, 0x14($s1) +/* 07DE28 7F0492B8 46140180 */ add.s $f6, $f0, $f20 +.Ljp7F0492BC: +/* 07DE2C 7F0492BC E6260088 */ swc1 $f6, 0x88($s1) +/* 07DE30 7F0492C0 C6200088 */ lwc1 $f0, 0x88($s1) +/* 07DE34 7F0492C4 4616003C */ c.lt.s $f0, $f22 +/* 07DE38 7F0492C8 00000000 */ nop +/* 07DE3C 7F0492CC 4503FFFB */ bc1tl .Ljp7F0492BC +/* 07DE40 7F0492D0 46140180 */ add.s $f6, $f0, $f20 +.Ljp7F0492D4: +/* 07DE44 7F0492D4 8E2B0014 */ lw $t3, 0x14($s1) +.Ljp7F0492D8: +/* 07DE48 7F0492D8 258C0B74 */ addiu $t4, %lo(D_80030B34) # addiu $t4, $t4, 0xb74 +/* 07DE4C 7F0492DC 258F003C */ addiu $t7, $t4, 0x3c +/* 07DE50 7F0492E0 8D6E0020 */ lw $t6, 0x20($t3) +/* 07DE54 7F0492E4 02006825 */ move $t5, $s0 +/* 07DE58 7F0492E8 11C00015 */ beqz $t6, .Ljp7F049340 +/* 07DE5C 7F0492EC 00000000 */ nop +.Ljp7F0492F0: +/* 07DE60 7F0492F0 8D810000 */ lw $at, ($t4) +/* 07DE64 7F0492F4 258C000C */ addiu $t4, $t4, 0xc +/* 07DE68 7F0492F8 25AD000C */ addiu $t5, $t5, 0xc +/* 07DE6C 7F0492FC ADA1FFF4 */ sw $at, -0xc($t5) +/* 07DE70 7F049300 8D81FFF8 */ lw $at, -8($t4) +/* 07DE74 7F049304 ADA1FFF8 */ sw $at, -8($t5) +/* 07DE78 7F049308 8D81FFFC */ lw $at, -4($t4) +/* 07DE7C 7F04930C 158FFFF8 */ bne $t4, $t7, .Ljp7F0492F0 +/* 07DE80 7F049310 ADA1FFFC */ sw $at, -4($t5) +/* 07DE84 7F049314 8D810000 */ lw $at, ($t4) +/* 07DE88 7F049318 0FC1E26D */ jal get_BONDdata_field_10CC +/* 07DE8C 7F04931C ADA10000 */ sw $at, ($t5) +/* 07DE90 7F049320 AFA201B4 */ sw $v0, 0x1b4($sp) +/* 07DE94 7F049324 AFB201C4 */ sw $s2, 0x1c4($sp) +/* 07DE98 7F049328 8E250014 */ lw $a1, 0x14($s1) +/* 07DE9C 7F04932C 0FC1BE3A */ jal subcalcmatrices +/* 07DEA0 7F049330 02002025 */ move $a0, $s0 +/* 07DEA4 7F049334 26590040 */ addiu $t9, $s2, 0x40 +/* 07DEA8 7F049338 10000003 */ b .Ljp7F049348 +/* 07DEAC 7F04933C AFB90070 */ sw $t9, 0x70($sp) +.Ljp7F049340: +/* 07DEB0 7F049340 0FC16150 */ jal matrix_4x4_copy +/* 07DEB4 7F049344 AFA50070 */ sw $a1, 0x70($sp) +.Ljp7F049348: +/* 07DEB8 7F049348 8E280008 */ lw $t0, 8($s1) +/* 07DEBC 7F04934C 27A50204 */ addiu $a1, $sp, 0x204 +/* 07DEC0 7F049350 0008C080 */ sll $t8, $t0, 2 +/* 07DEC4 7F049354 07010006 */ bgez $t8, .Ljp7F049370 +/* 07DEC8 7F049358 00000000 */ nop +/* 07DECC 7F04935C C62C0088 */ lwc1 $f12, 0x88($s1) +/* 07DED0 7F049360 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 07DED4 7F049364 27A50204 */ addiu $a1, $sp, 0x204 +/* 07DED8 7F049368 10000004 */ b .Ljp7F04937C +/* 07DEDC 7F04936C 26450080 */ addiu $a1, $s2, 0x80 +.Ljp7F049370: +/* 07DEE0 7F049370 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 07DEE4 7F049374 C62C0088 */ lwc1 $f12, 0x88($s1) +/* 07DEE8 7F049378 26450080 */ addiu $a1, $s2, 0x80 +.Ljp7F04937C: +/* 07DEEC 7F04937C AFA5006C */ sw $a1, 0x6c($sp) +/* 07DEF0 7F049380 0FC16150 */ jal matrix_4x4_copy +/* 07DEF4 7F049384 27A40204 */ addiu $a0, $sp, 0x204 +/* 07DEF8 7F049388 8FA40200 */ lw $a0, 0x200($sp) +/* 07DEFC 7F04938C 0FC163AE */ jal matrix_4x4_set_position +/* 07DF00 7F049390 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DF04 7F049394 8FA40070 */ lw $a0, 0x70($sp) +/* 07DF08 7F049398 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DF0C 7F04939C 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DF10 7F0493A0 8E890008 */ lw $t1, 8($s4) +/* 07DF14 7F0493A4 02802025 */ move $a0, $s4 +/* 07DF18 7F0493A8 00003025 */ move $a2, $zero +/* 07DF1C 7F0493AC 8D230008 */ lw $v1, 8($t1) +/* 07DF20 7F0493B0 8C65000C */ lw $a1, 0xc($v1) +/* 07DF24 7F0493B4 50A00013 */ beql $a1, $zero, .Ljp7F049404 +/* 07DF28 7F0493B8 8C650010 */ lw $a1, 0x10($v1) +/* 07DF2C 7F0493BC 0FC1B314 */ jal sub_GAME_7F06C660 +/* 07DF30 7F0493C0 8CB20004 */ lw $s2, 4($a1) +/* 07DF34 7F0493C4 00408025 */ move $s0, $v0 +/* 07DF38 7F0493C8 C62C0088 */ lwc1 $f12, 0x88($s1) +/* 07DF3C 7F0493CC 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 07DF40 7F0493D0 27A50204 */ addiu $a1, $sp, 0x204 +/* 07DF44 7F0493D4 27A40204 */ addiu $a0, $sp, 0x204 +/* 07DF48 7F0493D8 0FC16150 */ jal matrix_4x4_copy +/* 07DF4C 7F0493DC 02002825 */ move $a1, $s0 +/* 07DF50 7F0493E0 02402025 */ move $a0, $s2 +/* 07DF54 7F0493E4 0FC163AE */ jal matrix_4x4_set_position +/* 07DF58 7F0493E8 02002825 */ move $a1, $s0 +/* 07DF5C 7F0493EC 8FA40070 */ lw $a0, 0x70($sp) +/* 07DF60 7F0493F0 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DF64 7F0493F4 02002825 */ move $a1, $s0 +/* 07DF68 7F0493F8 8E8B0008 */ lw $t3, 8($s4) +/* 07DF6C 7F0493FC 8D630008 */ lw $v1, 8($t3) +/* 07DF70 7F049400 8C650010 */ lw $a1, 0x10($v1) +.Ljp7F049404: +/* 07DF74 7F049404 02802025 */ move $a0, $s4 +/* 07DF78 7F049408 00003025 */ move $a2, $zero +/* 07DF7C 7F04940C 50A0006F */ beql $a1, $zero, .Ljp7F0495CC +/* 07DF80 7F049410 8E8C0008 */ lw $t4, 8($s4) +/* 07DF84 7F049414 0FC1B314 */ jal sub_GAME_7F06C660 +/* 07DF88 7F049418 8CB20004 */ lw $s2, 4($a1) +/* 07DF8C 7F04941C 00408025 */ move $s0, $v0 +/* 07DF90 7F049420 02402025 */ move $a0, $s2 +/* 07DF94 7F049424 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 07DF98 7F049428 00402825 */ move $a1, $v0 +/* 07DF9C 7F04942C 8FA40070 */ lw $a0, 0x70($sp) +/* 07DFA0 7F049430 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DFA4 7F049434 02002825 */ move $a1, $s0 +/* 07DFA8 7F049438 10000064 */ b .Ljp7F0495CC +/* 07DFAC 7F04943C 8E8C0008 */ lw $t4, 8($s4) +.Ljp7F049440: +/* 07DFB0 7F049440 16020061 */ bne $s0, $v0, .Ljp7F0495C8 +/* 07DFB4 7F049444 26450040 */ addiu $a1, $s2, 0x40 +/* 07DFB8 7F049448 8E8E0008 */ lw $t6, 8($s4) +/* 07DFBC 7F04944C 8DC30008 */ lw $v1, 8($t6) +/* 07DFC0 7F049450 8C6F000C */ lw $t7, 0xc($v1) +/* 07DFC4 7F049454 8C6A0004 */ lw $t2, 4($v1) +/* 07DFC8 7F049458 8DEC0004 */ lw $t4, 4($t7) +/* 07DFCC 7F04945C 8D500004 */ lw $s0, 4($t2) +/* 07DFD0 7F049460 AFAC0168 */ sw $t4, 0x168($sp) +/* 07DFD4 7F049464 8C6D0010 */ lw $t5, 0x10($v1) +/* 07DFD8 7F049468 8DB90004 */ lw $t9, 4($t5) +/* 07DFDC 7F04946C AFB90164 */ sw $t9, 0x164($sp) +/* 07DFE0 7F049470 8C680008 */ lw $t0, 8($v1) +/* 07DFE4 7F049474 8D180004 */ lw $t8, 4($t0) +/* 07DFE8 7F049478 AFB80160 */ sw $t8, 0x160($sp) +/* 07DFEC 7F04947C 8C690018 */ lw $t1, 0x18($v1) +/* 07DFF0 7F049480 8D2B0004 */ lw $t3, 4($t1) +/* 07DFF4 7F049484 AFAB015C */ sw $t3, 0x15c($sp) +/* 07DFF8 7F049488 C62E00C8 */ lwc1 $f14, 0xc8($s1) +/* 07DFFC 7F04948C 46007387 */ neg.s $f14, $f14 +/* 07E000 7F049490 4616703C */ c.lt.s $f14, $f22 +/* 07E004 7F049494 00000000 */ nop +/* 07E008 7F049498 45020003 */ bc1fl .Ljp7F0494A8 +/* 07E00C 7F04949C C62C00CC */ lwc1 $f12, 0xcc($s1) +/* 07E010 7F0494A0 46147380 */ add.s $f14, $f14, $f20 +/* 07E014 7F0494A4 C62C00CC */ lwc1 $f12, 0xcc($s1) +.Ljp7F0494A8: +/* 07E018 7F0494A8 46006307 */ neg.s $f12, $f12 +/* 07E01C 7F0494AC 4616603C */ c.lt.s $f12, $f22 +/* 07E020 7F0494B0 00000000 */ nop +/* 07E024 7F0494B4 45020003 */ bc1fl .Ljp7F0494C4 +/* 07E028 7F0494B8 AFA50070 */ sw $a1, 0x70($sp) +/* 07E02C 7F0494BC 46146300 */ add.s $f12, $f12, $f20 +/* 07E030 7F0494C0 AFA50070 */ sw $a1, 0x70($sp) +.Ljp7F0494C4: +/* 07E034 7F0494C4 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 07E038 7F0494C8 E7AE0158 */ swc1 $f14, 0x158($sp) +/* 07E03C 7F0494CC 02002025 */ move $a0, $s0 +/* 07E040 7F0494D0 0FC163AE */ jal matrix_4x4_set_position +/* 07E044 7F0494D4 8FA50070 */ lw $a1, 0x70($sp) +/* 07E048 7F0494D8 02402025 */ move $a0, $s2 +/* 07E04C 7F0494DC 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07E050 7F0494E0 8FA50070 */ lw $a1, 0x70($sp) +/* 07E054 7F0494E4 264500C0 */ addiu $a1, $s2, 0xc0 +/* 07E058 7F0494E8 C7AC0158 */ lwc1 $f12, 0x158($sp) +/* 07E05C 7F0494EC 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 07E060 7F0494F0 AFA50078 */ sw $a1, 0x78($sp) +/* 07E064 7F0494F4 8FA40168 */ lw $a0, 0x168($sp) +/* 07E068 7F0494F8 0FC163AE */ jal matrix_4x4_set_position +/* 07E06C 7F0494FC 8FA50078 */ lw $a1, 0x78($sp) +/* 07E070 7F049500 8FA40070 */ lw $a0, 0x70($sp) +/* 07E074 7F049504 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07E078 7F049508 8FA50078 */ lw $a1, 0x78($sp) +/* 07E07C 7F04950C 3C018005 */ lui $at, %hi(D_80052B70) # $at, 0x8005 +/* 07E080 7F049510 26500100 */ addiu $s0, $s2, 0x100 +/* 07E084 7F049514 02002825 */ move $a1, $s0 +/* 07E088 7F049518 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 07E08C 7F04951C C42C2BA0 */ lwc1 $f12, %lo(D_80052B70)($at) +/* 07E090 7F049520 8FA40164 */ lw $a0, 0x164($sp) +/* 07E094 7F049524 0FC163AE */ jal matrix_4x4_set_position +/* 07E098 7F049528 02002825 */ move $a1, $s0 +/* 07E09C 7F04952C 8FA40078 */ lw $a0, 0x78($sp) +/* 07E0A0 7F049530 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07E0A4 7F049534 02002825 */ move $a1, $s0 +/* 07E0A8 7F049538 26450080 */ addiu $a1, $s2, 0x80 +/* 07E0AC 7F04953C AFA5006C */ sw $a1, 0x6c($sp) +/* 07E0B0 7F049540 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 07E0B4 7F049544 8FA40160 */ lw $a0, 0x160($sp) +/* 07E0B8 7F049548 8FA40070 */ lw $a0, 0x70($sp) +/* 07E0BC 7F04954C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07E0C0 7F049550 8FA5006C */ lw $a1, 0x6c($sp) +/* 07E0C4 7F049554 0FC1E28D */ jal sub_GAME_7F078444 +/* 07E0C8 7F049558 00000000 */ nop +/* 07E0CC 7F04955C 27B00170 */ addiu $s0, $sp, 0x170 +/* 07E0D0 7F049560 02003025 */ move $a2, $s0 +/* 07E0D4 7F049564 00402025 */ move $a0, $v0 +/* 07E0D8 7F049568 0FC161AB */ jal matrix_4x4_multiply_homogeneous +/* 07E0DC 7F04956C 8FA50070 */ lw $a1, 0x70($sp) +/* 07E0E0 7F049570 8FA4015C */ lw $a0, 0x15c($sp) +/* 07E0E4 7F049574 02002825 */ move $a1, $s0 +/* 07E0E8 7F049578 26260084 */ addiu $a2, $s1, 0x84 +/* 07E0EC 7F04957C 0FC0FE10 */ jal sub_GAME_7F03F540 +/* 07E0F0 7F049580 26270080 */ addiu $a3, $s1, 0x80 +/* 07E0F4 7F049584 8E8E0008 */ lw $t6, 8($s4) +/* 07E0F8 7F049588 8DC30008 */ lw $v1, 8($t6) +/* 07E0FC 7F04958C 8C65001C */ lw $a1, 0x1c($v1) +/* 07E100 7F049590 50A00008 */ beql $a1, $zero, .Ljp7F0495B4 +/* 07E104 7F049594 8C650020 */ lw $a1, 0x20($v1) +/* 07E108 7F049598 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 07E10C 7F04959C 02802025 */ move $a0, $s4 +/* 07E110 7F0495A0 8E2A00C4 */ lw $t2, 0xc4($s1) +/* 07E114 7F0495A4 A44A0000 */ sh $t2, ($v0) +/* 07E118 7F0495A8 8E8F0008 */ lw $t7, 8($s4) +/* 07E11C 7F0495AC 8DE30008 */ lw $v1, 8($t7) +/* 07E120 7F0495B0 8C650020 */ lw $a1, 0x20($v1) +.Ljp7F0495B4: +/* 07E124 7F0495B4 50A00005 */ beql $a1, $zero, .Ljp7F0495CC +/* 07E128 7F0495B8 8E8C0008 */ lw $t4, 8($s4) +/* 07E12C 7F0495BC 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 07E130 7F0495C0 02802025 */ move $a0, $s4 +/* 07E134 7F0495C4 AC400000 */ sw $zero, ($v0) +.Ljp7F0495C8: +/* 07E138 7F0495C8 8E8C0008 */ lw $t4, 8($s4) +.Ljp7F0495CC: +/* 07E13C 7F0495CC 02802025 */ move $a0, $s4 +/* 07E140 7F0495D0 0FC1BD25 */ jal sub_GAME_7F06EEA4 +/* 07E144 7F0495D4 8D850000 */ lw $a1, ($t4) +/* 07E148 7F0495D8 8E8D000C */ lw $t5, 0xc($s4) +/* 07E14C 7F0495DC 02602025 */ move $a0, $s3 +/* 07E150 7F0495E0 C5AA0038 */ lwc1 $f10, 0x38($t5) +/* 07E154 7F0495E4 46005207 */ neg.s $f8, $f10 +/* 07E158 7F0495E8 0FC1101D */ jal handle_thrown_explosive_detonation +/* 07E15C 7F0495EC E6680018 */ swc1 $f8, 0x18($s3) +/* 07E160 7F0495F0 8E640020 */ lw $a0, 0x20($s3) +/* 07E164 7F0495F4 50800018 */ beql $a0, $zero, .Ljp7F049658 +/* 07E168 7F0495F8 8E230064 */ lw $v1, 0x64($s1) +/* 07E16C 7F0495FC 8C820024 */ lw $v0, 0x24($a0) +.Ljp7F049600: +/* 07E170 7F049600 0FC11171 */ jal sub_GAME_7F0442DC +/* 07E174 7F049604 AFA2068C */ sw $v0, 0x68c($sp) +/* 07E178 7F049608 8FA4068C */ lw $a0, 0x68c($sp) +/* 07E17C 7F04960C 5480FFFC */ bnezl $a0, .Ljp7F049600 +/* 07E180 7F049610 8C820024 */ lw $v0, 0x24($a0) +/* 07E184 7F049614 10000010 */ b .Ljp7F049658 +/* 07E188 7F049618 8E230064 */ lw $v1, 0x64($s1) +.Ljp7F04961C: +/* 07E18C 7F04961C 92790001 */ lbu $t9, 1($s3) +/* 07E190 7F049620 02602025 */ move $a0, $s3 +/* 07E194 7F049624 3328FFFD */ andi $t0, $t9, 0xfffd +/* 07E198 7F049628 0FC1101D */ jal handle_thrown_explosive_detonation +/* 07E19C 7F04962C A2680001 */ sb $t0, 1($s3) +/* 07E1A0 7F049630 8E640020 */ lw $a0, 0x20($s3) +/* 07E1A4 7F049634 50800008 */ beql $a0, $zero, .Ljp7F049658 +/* 07E1A8 7F049638 8E230064 */ lw $v1, 0x64($s1) +/* 07E1AC 7F04963C 8C820024 */ lw $v0, 0x24($a0) +.Ljp7F049640: +/* 07E1B0 7F049640 0FC1114D */ jal sub_GAME_7F04424C +/* 07E1B4 7F049644 AFA2068C */ sw $v0, 0x68c($sp) +/* 07E1B8 7F049648 8FA4068C */ lw $a0, 0x68c($sp) +/* 07E1BC 7F04964C 5480FFFC */ bnezl $a0, .Ljp7F049640 +/* 07E1C0 7F049650 8C820024 */ lw $v0, 0x24($a0) +/* 07E1C4 7F049654 8E230064 */ lw $v1, 0x64($s1) +.Ljp7F049658: +/* 07E1C8 7F049658 2401FEFF */ li $at, -257 +/* 07E1CC 7F04965C 266B0008 */ addiu $t3, $s3, 8 +/* 07E1D0 7F049660 30780100 */ andi $t8, $v1, 0x100 +/* 07E1D4 7F049664 1300001F */ beqz $t8, .Ljp7F0496E4 +/* 07E1D8 7F049668 00614824 */ and $t1, $v1, $at +/* 07E1DC 7F04966C AE290064 */ sw $t1, 0x64($s1) +/* 07E1E0 7F049670 0C002918 */ jal get_random_value +/* 07E1E4 7F049674 AFAB0074 */ sw $t3, 0x74($sp) +/* 07E1E8 7F049678 44822000 */ mtc1 $v0, $f4 +/* 07E1EC 7F04967C 02202025 */ move $a0, $s1 +/* 07E1F0 7F049680 04410005 */ bgez $v0, .Ljp7F049698 +/* 07E1F4 7F049684 468021A0 */ cvt.s.w $f6, $f4 +/* 07E1F8 7F049688 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07E1FC 7F04968C 44815000 */ mtc1 $at, $f10 +/* 07E200 7F049690 00000000 */ nop +/* 07E204 7F049694 460A3180 */ add.s $f6, $f6, $f10 +.Ljp7F049698: +/* 07E208 7F049698 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07E20C 7F04969C 44814000 */ mtc1 $at, $f8 +/* 07E210 7F0496A0 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07E214 7F0496A4 44815000 */ mtc1 $at, $f10 +/* 07E218 7F0496A8 46083102 */ mul.s $f4, $f6, $f8 +/* 07E21C 7F0496AC 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 07E220 7F0496B0 44814000 */ mtc1 $at, $f8 +/* 07E224 7F0496B4 8E2E0064 */ lw $t6, 0x64($s1) +/* 07E228 7F0496B8 3C010006 */ lui $at, 6 +/* 07E22C 7F0496BC 8FA60074 */ lw $a2, 0x74($sp) +/* 07E230 7F0496C0 01C15024 */ and $t2, $t6, $at +/* 07E234 7F0496C4 460A2182 */ mul.s $f6, $f4, $f10 +/* 07E238 7F0496C8 00003825 */ move $a3, $zero +/* 07E23C 7F0496CC 000A7C42 */ srl $t7, $t2, 0x11 +/* 07E240 7F0496D0 AFAF0010 */ sw $t7, 0x10($sp) +/* 07E244 7F0496D4 46083100 */ add.s $f4, $f6, $f8 +/* 07E248 7F0496D8 44052000 */ mfc1 $a1, $f4 +/* 07E24C 7F0496DC 0FC13943 */ jal maybe_detonate_object +/* 07E250 7F0496E0 00000000 */ nop +.Ljp7F0496E4: +/* 07E254 7F0496E4 8FAC0680 */ lw $t4, 0x680($sp) +/* 07E258 7F0496E8 5180020D */ beql $t4, $zero, .Ljp7F049F20 +/* 07E25C 7F0496EC 8FAD0688 */ lw $t5, 0x688($sp) +/* 07E260 7F0496F0 92220003 */ lbu $v0, 3($s1) +/* 07E264 7F0496F4 24010001 */ li $at, 1 +/* 07E268 7F0496F8 54410006 */ bnel $v0, $at, .Ljp7F049714 +/* 07E26C 7F0496FC 2401000D */ li $at, 13 +/* 07E270 7F049700 0FC14FCE */ jal sub_GAME_7F053A3C +/* 07E274 7F049704 8E640004 */ lw $a0, 4($s3) +/* 07E278 7F049708 10000202 */ b .Ljp7F049F14 +/* 07E27C 7F04970C 00000000 */ nop +/* 07E280 7F049710 2401000D */ li $at, 13 +.Ljp7F049714: +/* 07E284 7F049714 144101FF */ bne $v0, $at, .Ljp7F049F14 +/* 07E288 7F049718 00000000 */ nop +/* 07E28C 7F04971C 0FC3021B */ jal get_controls_locked_flag +/* 07E290 7F049720 00000000 */ nop +/* 07E294 7F049724 144001FB */ bnez $v0, .Ljp7F049F14 +/* 07E298 7F049728 00000000 */ nop +/* 07E29C 7F04972C 8E700004 */ lw $s0, 4($s3) +/* 07E2A0 7F049730 AFA00140 */ sw $zero, 0x140($sp) +/* 07E2A4 7F049734 AFA0013C */ sw $zero, 0x13c($sp) +/* 07E2A8 7F049738 8E0D00D0 */ lw $t5, 0xd0($s0) +/* 07E2AC 7F04973C 51A001E4 */ beql $t5, $zero, .Ljp7F049ED0 +/* 07E2B0 7F049740 8E8E0008 */ lw $t6, 8($s4) +/* 07E2B4 7F049744 8E390008 */ lw $t9, 8($s1) +/* 07E2B8 7F049748 001940C0 */ sll $t0, $t9, 3 +/* 07E2BC 7F04974C 050201E0 */ bltzl $t0, .Ljp7F049ED0 +/* 07E2C0 7F049750 8E8E0008 */ lw $t6, 8($s4) +/* 07E2C4 7F049754 8E1800AC */ lw $t8, 0xac($s0) +/* 07E2C8 7F049758 3C088005 */ lui $t0, %hi(global_timer) # $t0, 0x8005 +/* 07E2CC 7F04975C 27090001 */ addiu $t1, $t8, 1 +/* 07E2D0 7F049760 312B0001 */ andi $t3, $t1, 1 +/* 07E2D4 7F049764 AE0900AC */ sw $t1, 0xac($s0) +/* 07E2D8 7F049768 2D6E0001 */ sltiu $t6, $t3, 1 +/* 07E2DC 7F04976C AFAE0140 */ sw $t6, 0x140($sp) +/* 07E2E0 7F049770 8E8A0008 */ lw $t2, 8($s4) +/* 07E2E4 7F049774 396D0001 */ xori $t5, $t3, 1 +/* 07E2E8 7F049778 2DAD0001 */ sltiu $t5, $t5, 1 +/* 07E2EC 7F04977C 8D4F0008 */ lw $t7, 8($t2) +/* 07E2F0 7F049780 8DEC0014 */ lw $t4, 0x14($t7) +/* 07E2F4 7F049784 51800003 */ beql $t4, $zero, .Ljp7F049794 +/* 07E2F8 7F049788 8E1900C0 */ lw $t9, 0xc0($s0) +/* 07E2FC 7F04978C AFAD013C */ sw $t5, 0x13c($sp) +/* 07E300 7F049790 8E1900C0 */ lw $t9, 0xc0($s0) +.Ljp7F049794: +/* 07E304 7F049794 8D0883AC */ lw $t0, %lo(global_timer)($t0) +/* 07E308 7F049798 0328082A */ slt $at, $t9, $t0 +/* 07E30C 7F04979C 50200032 */ beql $at, $zero, .Ljp7F049868 +/* 07E310 7F0497A0 8FAC0140 */ lw $t4, 0x140($sp) +/* 07E314 7F0497A4 8E0400C4 */ lw $a0, 0xc4($s0) +/* 07E318 7F0497A8 50800008 */ beql $a0, $zero, .Ljp7F0497CC +/* 07E31C 7F0497AC 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07E320 7F0497B0 0C002380 */ jal sfxGetArg0Unk3F +/* 07E324 7F0497B4 00000000 */ nop +/* 07E328 7F0497B8 50400004 */ beql $v0, $zero, .Ljp7F0497CC +/* 07E32C 7F0497BC 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07E330 7F0497C0 0C00240C */ jal sfxDeactivate +/* 07E334 7F0497C4 8E0400C4 */ lw $a0, 0xc4($s0) +/* 07E338 7F0497C8 8E0400C8 */ lw $a0, 0xc8($s0) +.Ljp7F0497CC: +/* 07E33C 7F0497CC 50800008 */ beql $a0, $zero, .Ljp7F0497F0 +/* 07E340 7F0497D0 8E1800C4 */ lw $t8, 0xc4($s0) +/* 07E344 7F0497D4 0C002380 */ jal sfxGetArg0Unk3F +/* 07E348 7F0497D8 00000000 */ nop +/* 07E34C 7F0497DC 50400004 */ beql $v0, $zero, .Ljp7F0497F0 +/* 07E350 7F0497E0 8E1800C4 */ lw $t8, 0xc4($s0) +/* 07E354 7F0497E4 0C00240C */ jal sfxDeactivate +/* 07E358 7F0497E8 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07E35C 7F0497EC 8E1800C4 */ lw $t8, 0xc4($s0) +.Ljp7F0497F0: +/* 07E360 7F0497F0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07E364 7F0497F4 240500FD */ li $a1, 253 +/* 07E368 7F0497F8 1700000A */ bnez $t8, .Ljp7F049824 +/* 07E36C 7F0497FC 260600C4 */ addiu $a2, $s0, 0xc4 +/* 07E370 7F049800 26690008 */ addiu $t1, $s3, 8 +/* 07E374 7F049804 AFA90074 */ sw $t1, 0x74($sp) +/* 07E378 7F049808 0C002386 */ jal play_sfx_a1 +/* 07E37C 7F04980C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07E380 7F049810 8E0400C4 */ lw $a0, 0xc4($s0) +/* 07E384 7F049814 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 07E388 7F049818 8FA50074 */ lw $a1, 0x74($sp) +/* 07E38C 7F04981C 1000000D */ b .Ljp7F049854 +/* 07E390 7F049820 00000000 */ nop +.Ljp7F049824: +/* 07E394 7F049824 8E0B00C8 */ lw $t3, 0xc8($s0) +/* 07E398 7F049828 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07E39C 7F04982C 240500FD */ li $a1, 253 +/* 07E3A0 7F049830 15600008 */ bnez $t3, .Ljp7F049854 +/* 07E3A4 7F049834 260600C8 */ addiu $a2, $s0, 0xc8 +/* 07E3A8 7F049838 266E0008 */ addiu $t6, $s3, 8 +/* 07E3AC 7F04983C AFAE0074 */ sw $t6, 0x74($sp) +/* 07E3B0 7F049840 0C002386 */ jal play_sfx_a1 +/* 07E3B4 7F049844 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07E3B8 7F049848 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07E3BC 7F04984C 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 07E3C0 7F049850 8FA50074 */ lw $a1, 0x74($sp) +.Ljp7F049854: +/* 07E3C4 7F049854 3C0A8005 */ lui $t2, %hi(global_timer) # $t2, 0x8005 +/* 07E3C8 7F049858 8D4A83AC */ lw $t2, %lo(global_timer)($t2) +/* 07E3CC 7F04985C 254F0002 */ addiu $t7, $t2, 2 +/* 07E3D0 7F049860 AE0F00C0 */ sw $t7, 0xc0($s0) +/* 07E3D4 7F049864 8FAC0140 */ lw $t4, 0x140($sp) +.Ljp7F049868: +/* 07E3D8 7F049868 8FAD013C */ lw $t5, 0x13c($sp) +/* 07E3DC 7F04986C 24190001 */ li $t9, 1 +/* 07E3E0 7F049870 55800004 */ bnezl $t4, .Ljp7F049884 +/* 07E3E4 7F049874 AFB90120 */ sw $t9, 0x120($sp) +/* 07E3E8 7F049878 51A00195 */ beql $t5, $zero, .Ljp7F049ED0 +/* 07E3EC 7F04987C 8E8E0008 */ lw $t6, 8($s4) +/* 07E3F0 7F049880 AFB90120 */ sw $t9, 0x120($sp) +.Ljp7F049884: +/* 07E3F4 7F049884 AFA00110 */ sw $zero, 0x110($sp) +/* 07E3F8 7F049888 8E680014 */ lw $t0, 0x14($s3) +/* 07E3FC 7F04988C AFA8010C */ sw $t0, 0x10c($sp) +/* 07E400 7F049890 8E1800AC */ lw $t8, 0xac($s0) +/* 07E404 7F049894 33090003 */ andi $t1, $t8, 3 +/* 07E408 7F049898 2D2B0001 */ sltiu $t3, $t1, 1 +/* 07E40C 7F04989C 0FC2279B */ jal get_curplayer_positiondata +/* 07E410 7F0498A0 AFAB0108 */ sw $t3, 0x108($sp) +/* 07E414 7F0498A4 AFA20104 */ sw $v0, 0x104($sp) +/* 07E418 7F0498A8 8E8E0008 */ lw $t6, 8($s4) +/* 07E41C 7F0498AC 24040005 */ li $a0, 5 +/* 07E420 7F0498B0 8DC30008 */ lw $v1, 8($t6) +/* 07E424 7F0498B4 8C6A001C */ lw $t2, 0x1c($v1) +/* 07E428 7F0498B8 51400007 */ beql $t2, $zero, .Ljp7F0498D8 +/* 07E42C 7F0498BC 926D0001 */ lbu $t5, 1($s3) +/* 07E430 7F0498C0 8E0F00AC */ lw $t7, 0xac($s0) +/* 07E434 7F0498C4 31EC0007 */ andi $t4, $t7, 7 +/* 07E438 7F0498C8 55800003 */ bnezl $t4, .Ljp7F0498D8 +/* 07E43C 7F0498CC 926D0001 */ lbu $t5, 1($s3) +/* 07E440 7F0498D0 24040007 */ li $a0, 7 +/* 07E444 7F0498D4 926D0001 */ lbu $t5, 1($s3) +.Ljp7F0498D8: +/* 07E448 7F0498D8 31B90002 */ andi $t9, $t5, 2 +/* 07E44C 7F0498DC 1320002D */ beqz $t9, .Ljp7F049994 +/* 07E450 7F0498E0 00048880 */ sll $s1, $a0, 2 +/* 07E454 7F0498E4 00714021 */ addu $t0, $v1, $s1 +/* 07E458 7F0498E8 8D050000 */ lw $a1, ($t0) +/* 07E45C 7F0498EC 02802025 */ move $a0, $s4 +/* 07E460 7F0498F0 50A00029 */ beql $a1, $zero, .Ljp7F049998 +/* 07E464 7F0498F4 C6640008 */ lwc1 $f4, 8($s3) +/* 07E468 7F0498F8 0FC1B314 */ jal sub_GAME_7F06C660 +/* 07E46C 7F0498FC 00003025 */ move $a2, $zero +/* 07E470 7F049900 8E980008 */ lw $t8, 8($s4) +/* 07E474 7F049904 00409025 */ move $s2, $v0 +/* 07E478 7F049908 8F090008 */ lw $t1, 8($t8) +/* 07E47C 7F04990C 01315821 */ addu $t3, $t1, $s1 +/* 07E480 7F049910 8D6E0000 */ lw $t6, ($t3) +/* 07E484 7F049914 8DC30004 */ lw $v1, 4($t6) +/* 07E488 7F049918 C46A0000 */ lwc1 $f10, ($v1) +/* 07E48C 7F04991C E7AA0130 */ swc1 $f10, 0x130($sp) +/* 07E490 7F049920 C4660004 */ lwc1 $f6, 4($v1) +/* 07E494 7F049924 E7A60134 */ swc1 $f6, 0x134($sp) +/* 07E498 7F049928 C4680008 */ lwc1 $f8, 8($v1) +/* 07E49C 7F04992C 0FC1E28D */ jal sub_GAME_7F078444 +/* 07E4A0 7F049930 E7A80138 */ swc1 $f8, 0x138($sp) +/* 07E4A4 7F049934 27B100BC */ addiu $s1, $sp, 0xbc +/* 07E4A8 7F049938 02203025 */ move $a2, $s1 +/* 07E4AC 7F04993C 00402025 */ move $a0, $v0 +/* 07E4B0 7F049940 0FC161AB */ jal matrix_4x4_multiply_homogeneous +/* 07E4B4 7F049944 02402825 */ move $a1, $s2 +/* 07E4B8 7F049948 02202025 */ move $a0, $s1 +/* 07E4BC 7F04994C 0FC16265 */ jal matrix_4x4_transform_vector_in_place +/* 07E4C0 7F049950 27A50130 */ addiu $a1, $sp, 0x130 +/* 07E4C4 7F049954 C7A40138 */ lwc1 $f4, 0x138($sp) +/* 07E4C8 7F049958 8E650008 */ lw $a1, 8($s3) +/* 07E4CC 7F04995C 8E660010 */ lw $a2, 0x10($s3) +/* 07E4D0 7F049960 27A4010C */ addiu $a0, $sp, 0x10c +/* 07E4D4 7F049964 8FA70130 */ lw $a3, 0x130($sp) +/* 07E4D8 7F049968 0FC2C5E5 */ jal sub_GAME_7F0B0BE4 +/* 07E4DC 7F04996C E7A40010 */ swc1 $f4, 0x10($sp) +/* 07E4E0 7F049970 1440000E */ bnez $v0, .Ljp7F0499AC +/* 07E4E4 7F049974 00000000 */ nop +/* 07E4E8 7F049978 C66A0008 */ lwc1 $f10, 8($s3) +/* 07E4EC 7F04997C E7AA0130 */ swc1 $f10, 0x130($sp) +/* 07E4F0 7F049980 C666000C */ lwc1 $f6, 0xc($s3) +/* 07E4F4 7F049984 E7A60134 */ swc1 $f6, 0x134($sp) +/* 07E4F8 7F049988 C6680010 */ lwc1 $f8, 0x10($s3) +/* 07E4FC 7F04998C 10000007 */ b .Ljp7F0499AC +/* 07E500 7F049990 E7A80138 */ swc1 $f8, 0x138($sp) +.Ljp7F049994: +/* 07E504 7F049994 C6640008 */ lwc1 $f4, 8($s3) +.Ljp7F049998: +/* 07E508 7F049998 E7A40130 */ swc1 $f4, 0x130($sp) +/* 07E50C 7F04999C C66A000C */ lwc1 $f10, 0xc($s3) +/* 07E510 7F0499A0 E7AA0134 */ swc1 $f10, 0x134($sp) +/* 07E514 7F0499A4 C6660010 */ lwc1 $f6, 0x10($s3) +/* 07E518 7F0499A8 E7A60138 */ swc1 $f6, 0x138($sp) +.Ljp7F0499AC: +/* 07E51C 7F0499AC 0FC160F0 */ jal cosf +/* 07E520 7F0499B0 C60C009C */ lwc1 $f12, 0x9c($s0) +/* 07E524 7F0499B4 C60C0090 */ lwc1 $f12, 0x90($s0) +/* 07E528 7F0499B8 0FC160F3 */ jal sinf +/* 07E52C 7F0499BC E7A00080 */ swc1 $f0, 0x80($sp) +/* 07E530 7F0499C0 C7A20080 */ lwc1 $f2, 0x80($sp) +/* 07E534 7F0499C4 46020202 */ mul.s $f8, $f0, $f2 +/* 07E538 7F0499C8 E7A80124 */ swc1 $f8, 0x124($sp) +/* 07E53C 7F0499CC 0FC160F3 */ jal sinf +/* 07E540 7F0499D0 C60C009C */ lwc1 $f12, 0x9c($s0) +/* 07E544 7F0499D4 E7A00128 */ swc1 $f0, 0x128($sp) +/* 07E548 7F0499D8 0FC160F0 */ jal cosf +/* 07E54C 7F0499DC C60C009C */ lwc1 $f12, 0x9c($s0) +/* 07E550 7F0499E0 C60C0090 */ lwc1 $f12, 0x90($s0) +/* 07E554 7F0499E4 0FC160F0 */ jal cosf +/* 07E558 7F0499E8 E7A00080 */ swc1 $f0, 0x80($sp) +/* 07E55C 7F0499EC C7A20080 */ lwc1 $f2, 0x80($sp) +/* 07E560 7F0499F0 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07E564 7F0499F4 44816000 */ mtc1 $at, $f12 +/* 07E568 7F0499F8 46020382 */ mul.s $f14, $f0, $f2 +/* 07E56C 7F0499FC C7A40124 */ lwc1 $f4, 0x124($sp) +/* 07E570 7F049A00 C7A60130 */ lwc1 $f6, 0x130($sp) +/* 07E574 7F049A04 460C2282 */ mul.s $f10, $f4, $f12 +/* 07E578 7F049A08 C7A40128 */ lwc1 $f4, 0x128($sp) +/* 07E57C 7F049A0C E7AE012C */ swc1 $f14, 0x12c($sp) +/* 07E580 7F049A10 46065200 */ add.s $f8, $f10, $f6 +/* 07E584 7F049A14 460C2282 */ mul.s $f10, $f4, $f12 +/* 07E588 7F049A18 C7A60134 */ lwc1 $f6, 0x134($sp) +/* 07E58C 7F049A1C 460C7102 */ mul.s $f4, $f14, $f12 +/* 07E590 7F049A20 E7A80114 */ swc1 $f8, 0x114($sp) +/* 07E594 7F049A24 46065200 */ add.s $f8, $f10, $f6 +/* 07E598 7F049A28 C7AA0138 */ lwc1 $f10, 0x138($sp) +/* 07E59C 7F049A2C 460A2180 */ add.s $f6, $f4, $f10 +/* 07E5A0 7F049A30 E7A80118 */ swc1 $f8, 0x118($sp) +/* 07E5A4 7F049A34 0FC2CA1D */ jal sub_GAME_7F0B1CC4 +/* 07E5A8 7F049A38 E7A6011C */ swc1 $f6, 0x11c($sp) +/* 07E5AC 7F049A3C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 07E5B0 7F049A40 44810000 */ mtc1 $at, $f0 +/* 07E5B4 7F049A44 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07E5B8 7F049A48 44812000 */ mtc1 $at, $f4 +/* 07E5BC 7F049A4C C7A8011C */ lwc1 $f8, 0x11c($sp) +/* 07E5C0 7F049A50 240A0002 */ li $t2, 2 +/* 07E5C4 7F049A54 AFAA0014 */ sw $t2, 0x14($sp) +/* 07E5C8 7F049A58 27A4010C */ addiu $a0, $sp, 0x10c +/* 07E5CC 7F049A5C 8FA50130 */ lw $a1, 0x130($sp) +/* 07E5D0 7F049A60 8FA60138 */ lw $a2, 0x138($sp) +/* 07E5D4 7F049A64 8FA70114 */ lw $a3, 0x114($sp) +/* 07E5D8 7F049A68 E7B60020 */ swc1 $f22, 0x20($sp) +/* 07E5DC 7F049A6C E7A00018 */ swc1 $f0, 0x18($sp) +/* 07E5E0 7F049A70 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 07E5E4 7F049A74 E7A80010 */ swc1 $f8, 0x10($sp) +/* 07E5E8 7F049A78 0FC2C675 */ jal sub_GAME_7F0B0E24 +/* 07E5EC 7F049A7C E7A40024 */ swc1 $f4, 0x24($sp) +/* 07E5F0 7F049A80 14400017 */ bnez $v0, .Ljp7F049AE0 +/* 07E5F4 7F049A84 27A60114 */ addiu $a2, $sp, 0x114 +/* 07E5F8 7F049A88 27A40130 */ addiu $a0, $sp, 0x130 +/* 07E5FC 7F049A8C 0FC09955 */ jal sub_GAME_7F02624C +/* 07E600 7F049A90 27A50124 */ addiu $a1, $sp, 0x124 +/* 07E604 7F049A94 3C0141D0 */ li $at, 0x41D00000 # 26.000000 +/* 07E608 7F049A98 44818000 */ mtc1 $at, $f16 +/* 07E60C 7F049A9C C7A60124 */ lwc1 $f6, 0x124($sp) +/* 07E610 7F049AA0 C7AA0114 */ lwc1 $f10, 0x114($sp) +/* 07E614 7F049AA4 C7AE012C */ lwc1 $f14, 0x12c($sp) +/* 07E618 7F049AA8 46068202 */ mul.s $f8, $f16, $f6 +/* 07E61C 7F049AAC C7A60118 */ lwc1 $f6, 0x118($sp) +/* 07E620 7F049AB0 8FAF010C */ lw $t7, 0x10c($sp) +/* 07E624 7F049AB4 AFAF0110 */ sw $t7, 0x110($sp) +/* 07E628 7F049AB8 46085101 */ sub.s $f4, $f10, $f8 +/* 07E62C 7F049ABC C7AA0128 */ lwc1 $f10, 0x128($sp) +/* 07E630 7F049AC0 460A8202 */ mul.s $f8, $f16, $f10 +/* 07E634 7F049AC4 E7A40114 */ swc1 $f4, 0x114($sp) +/* 07E638 7F049AC8 C7AA011C */ lwc1 $f10, 0x11c($sp) +/* 07E63C 7F049ACC 46083101 */ sub.s $f4, $f6, $f8 +/* 07E640 7F049AD0 460E8182 */ mul.s $f6, $f16, $f14 +/* 07E644 7F049AD4 E7A40118 */ swc1 $f4, 0x118($sp) +/* 07E648 7F049AD8 46065201 */ sub.s $f8, $f10, $f6 +/* 07E64C 7F049ADC E7A8011C */ swc1 $f8, 0x11c($sp) +.Ljp7F049AE0: +/* 07E650 7F049AE0 3C0C8005 */ lui $t4, %hi(global_timer) # $t4, 0x8005 +/* 07E654 7F049AE4 8D8C83AC */ lw $t4, %lo(global_timer)($t4) +/* 07E658 7F049AE8 8E0D00BC */ lw $t5, 0xbc($s0) +/* 07E65C 7F049AEC 27B10114 */ addiu $s1, $sp, 0x114 +/* 07E660 7F049AF0 8FA50104 */ lw $a1, 0x104($sp) +/* 07E664 7F049AF4 158D0052 */ bne $t4, $t5, .Ljp7F049C40 +/* 07E668 7F049AF8 C7AA0130 */ lwc1 $f10, 0x130($sp) +/* 07E66C 7F049AFC C4A40008 */ lwc1 $f4, 8($a1) +/* 07E670 7F049B00 C4A6000C */ lwc1 $f6, 0xc($a1) +/* 07E674 7F049B04 C7A80134 */ lwc1 $f8, 0x134($sp) +/* 07E678 7F049B08 460A2001 */ sub.s $f0, $f4, $f10 +/* 07E67C 7F049B0C C4A40010 */ lwc1 $f4, 0x10($a1) +/* 07E680 7F049B10 E7AA0058 */ swc1 $f10, 0x58($sp) +/* 07E684 7F049B14 46083081 */ sub.s $f2, $f6, $f8 +/* 07E688 7F049B18 C7A60138 */ lwc1 $f6, 0x138($sp) +/* 07E68C 7F049B1C 46062301 */ sub.s $f12, $f4, $f6 +/* 07E690 7F049B20 46000102 */ mul.s $f4, $f0, $f0 +/* 07E694 7F049B24 00000000 */ nop +/* 07E698 7F049B28 46021282 */ mul.s $f10, $f2, $f2 +/* 07E69C 7F049B2C 460A2100 */ add.s $f4, $f4, $f10 +/* 07E6A0 7F049B30 460C6282 */ mul.s $f10, $f12, $f12 +/* 07E6A4 7F049B34 460A2500 */ add.s $f20, $f4, $f10 +/* 07E6A8 7F049B38 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 07E6AC 7F049B3C C7A40114 */ lwc1 $f4, 0x114($sp) +/* 07E6B0 7F049B40 460A2001 */ sub.s $f0, $f4, $f10 +/* 07E6B4 7F049B44 C7A40118 */ lwc1 $f4, 0x118($sp) +/* 07E6B8 7F049B48 C7AA011C */ lwc1 $f10, 0x11c($sp) +/* 07E6BC 7F049B4C 46082081 */ sub.s $f2, $f4, $f8 +/* 07E6C0 7F049B50 46000102 */ mul.s $f4, $f0, $f0 +/* 07E6C4 7F049B54 46065301 */ sub.s $f12, $f10, $f6 +/* 07E6C8 7F049B58 46021202 */ mul.s $f8, $f2, $f2 +/* 07E6CC 7F049B5C 46082280 */ add.s $f10, $f4, $f8 +/* 07E6D0 7F049B60 460C6182 */ mul.s $f6, $f12, $f12 +/* 07E6D4 7F049B64 46065100 */ add.s $f4, $f10, $f6 +/* 07E6D8 7F049B68 4604A03E */ c.le.s $f20, $f4 +/* 07E6DC 7F049B6C 00000000 */ nop +/* 07E6E0 7F049B70 45000033 */ bc1f .Ljp7F049C40 +/* 07E6E4 7F049B74 00000000 */ nop +/* 07E6E8 7F049B78 0FC2296B */ jal check_if_bond_is_invincible +/* 07E6EC 7F049B7C 00000000 */ nop +/* 07E6F0 7F049B80 54400030 */ bnezl $v0, .Ljp7F049C44 +/* 07E6F4 7F049B84 8FB90120 */ lw $t9, 0x120($sp) +/* 07E6F8 7F049B88 0C007E08 */ jal sqrtf +/* 07E6FC 7F049B8C 4600A306 */ mov.s $f12, $f20 +/* 07E700 7F049B90 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 07E704 7F049B94 44816000 */ mtc1 $at, $f12 +/* 07E708 7F049B98 3C018005 */ lui $at, %hi(D_80052B74) # $at, 0x8005 +/* 07E70C 7F049B9C C4282BA4 */ lwc1 $f8, %lo(D_80052B74)($at) +/* 07E710 7F049BA0 3C018005 */ lui $at, %hi(jp_global_timer_delta) # $at, 0x8005 +/* 07E714 7F049BA4 C42A83A8 */ lwc1 $f10, %lo(jp_global_timer_delta)($at) +/* 07E718 7F049BA8 3C018003 */ lui $at, %hi(D_80030B1C) # $at, 0x8003 +/* 07E71C 7F049BAC 4600603C */ c.lt.s $f12, $f0 +/* 07E720 7F049BB0 460A4182 */ mul.s $f6, $f8, $f10 +/* 07E724 7F049BB4 C4240B5C */ lwc1 $f4, %lo(D_80030B1C)($at) +/* 07E728 7F049BB8 46043082 */ mul.s $f2, $f6, $f4 +/* 07E72C 7F049BBC 45020005 */ bc1fl .Ljp7F049BD4 +/* 07E730 7F049BC0 C60A00D4 */ lwc1 $f10, 0xd4($s0) +/* 07E734 7F049BC4 46006203 */ div.s $f8, $f12, $f0 +/* 07E738 7F049BC8 46081082 */ mul.s $f2, $f2, $f8 +/* 07E73C 7F049BCC 00000000 */ nop +/* 07E740 7F049BD0 C60A00D4 */ lwc1 $f10, 0xd4($s0) +.Ljp7F049BD4: +/* 07E744 7F049BD4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07E748 7F049BD8 44814000 */ mtc1 $at, $f8 +/* 07E74C 7F049BDC 46025180 */ add.s $f6, $f10, $f2 +/* 07E750 7F049BE0 E60600D4 */ swc1 $f6, 0xd4($s0) +/* 07E754 7F049BE4 C60400D4 */ lwc1 $f4, 0xd4($s0) +/* 07E758 7F049BE8 4604403E */ c.le.s $f8, $f4 +/* 07E75C 7F049BEC 00000000 */ nop +/* 07E760 7F049BF0 45020014 */ bc1fl .Ljp7F049C44 +/* 07E764 7F049BF4 8FB90120 */ lw $t9, 0x120($sp) +/* 07E768 7F049BF8 0FC17929 */ jal bondwalkGetItemDestructionAmount +/* 07E76C 7F049BFC 2404000E */ li $a0, 14 +/* 07E770 7F049C00 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 07E774 7F049C04 44815000 */ mtc1 $at, $f10 +/* 07E778 7F049C08 3C018003 */ lui $at, %hi(D_80030B20) # $at, 0x8003 +/* 07E77C 7F049C0C C4240B60 */ lwc1 $f4, %lo(D_80030B20)($at) +/* 07E780 7F049C10 460A0182 */ mul.s $f6, $f0, $f10 +/* 07E784 7F049C14 C60E0090 */ lwc1 $f14, 0x90($s0) +/* 07E788 7F049C18 2406FFFF */ li $a2, -1 +/* 07E78C 7F049C1C 24070001 */ li $a3, 1 +/* 07E790 7F049C20 46043302 */ mul.s $f12, $f6, $f4 +/* 07E794 7F049C24 0FC22955 */ jal sub_GAME_7F089E4C +/* 07E798 7F049C28 00000000 */ nop +/* 07E79C 7F049C2C 0FC2296B */ jal check_if_bond_is_invincible +/* 07E7A0 7F049C30 E61600D4 */ swc1 $f22, 0xd4($s0) +/* 07E7A4 7F049C34 50400003 */ beql $v0, $zero, .Ljp7F049C44 +/* 07E7A8 7F049C38 8FB90120 */ lw $t9, 0x120($sp) +/* 07E7AC 7F049C3C AFA00120 */ sw $zero, 0x120($sp) +.Ljp7F049C40: +/* 07E7B0 7F049C40 8FB90120 */ lw $t9, 0x120($sp) +.Ljp7F049C44: +/* 07E7B4 7F049C44 3C0141D0 */ li $at, 0x41D00000 # 26.000000 +/* 07E7B8 7F049C48 44818000 */ mtc1 $at, $f16 +/* 07E7BC 7F049C4C 1320000F */ beqz $t9, .Ljp7F049C8C +/* 07E7C0 7F049C50 8FA50104 */ lw $a1, 0x104($sp) +/* 07E7C4 7F049C54 8FA80110 */ lw $t0, 0x110($sp) +/* 07E7C8 7F049C58 02202025 */ move $a0, $s1 +/* 07E7CC 7F049C5C 24050001 */ li $a1, 1 +/* 07E7D0 7F049C60 51000005 */ beql $t0, $zero, .Ljp7F049C78 +/* 07E7D4 7F049C64 2404000E */ li $a0, 14 +/* 07E7D8 7F049C68 44068000 */ mfc1 $a2, $f16 +/* 07E7DC 7F049C6C 0FC2926F */ jal sub_GAME_7F0A3E1C +/* 07E7E0 7F049C70 91070003 */ lbu $a3, 3($t0) +/* 07E7E4 7F049C74 2404000E */ li $a0, 14 +.Ljp7F049C78: +/* 07E7E8 7F049C78 02202825 */ move $a1, $s1 +/* 07E7EC 7F049C7C 0FC1932F */ jal recall_joy2_hits_edit_flag +/* 07E7F0 7F049C80 2406FFFF */ li $a2, -1 +/* 07E7F4 7F049C84 1000000B */ b .Ljp7F049CB4 +/* 07E7F8 7F049C88 8FB80108 */ lw $t8, 0x108($sp) +.Ljp7F049C8C: +/* 07E7FC 7F049C8C C4A80008 */ lwc1 $f8, 8($a1) +/* 07E800 7F049C90 2404000E */ li $a0, 14 +/* 07E804 7F049C94 2406FFFF */ li $a2, -1 +/* 07E808 7F049C98 E7A80114 */ swc1 $f8, 0x114($sp) +/* 07E80C 7F049C9C C4AA000C */ lwc1 $f10, 0xc($a1) +/* 07E810 7F049CA0 E7AA0118 */ swc1 $f10, 0x118($sp) +/* 07E814 7F049CA4 C4A60010 */ lwc1 $f6, 0x10($a1) +/* 07E818 7F049CA8 0FC19252 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 07E81C 7F049CAC E7A6011C */ swc1 $f6, 0x11c($sp) +/* 07E820 7F049CB0 8FB80108 */ lw $t8, 0x108($sp) +.Ljp7F049CB4: +/* 07E824 7F049CB4 C7A40130 */ lwc1 $f4, 0x130($sp) +/* 07E828 7F049CB8 53000085 */ beql $t8, $zero, .Ljp7F049ED0 +/* 07E82C 7F049CBC 8E8E0008 */ lw $t6, 8($s4) +/* 07E830 7F049CC0 8E0300CC */ lw $v1, 0xcc($s0) +/* 07E834 7F049CC4 E4640004 */ swc1 $f4, 4($v1) +/* 07E838 7F049CC8 C7A80134 */ lwc1 $f8, 0x134($sp) +/* 07E83C 7F049CCC C4640004 */ lwc1 $f4, 4($v1) +/* 07E840 7F049CD0 E4680008 */ swc1 $f8, 8($v1) +/* 07E844 7F049CD4 C7AA0138 */ lwc1 $f10, 0x138($sp) +/* 07E848 7F049CD8 E46A000C */ swc1 $f10, 0xc($v1) +/* 07E84C 7F049CDC C7A60114 */ lwc1 $f6, 0x114($sp) +/* 07E850 7F049CE0 46043201 */ sub.s $f8, $f6, $f4 +/* 07E854 7F049CE4 C4660008 */ lwc1 $f6, 8($v1) +/* 07E858 7F049CE8 E4680010 */ swc1 $f8, 0x10($v1) +/* 07E85C 7F049CEC C7AA0118 */ lwc1 $f10, 0x118($sp) +/* 07E860 7F049CF0 C4620010 */ lwc1 $f2, 0x10($v1) +/* 07E864 7F049CF4 46065101 */ sub.s $f4, $f10, $f6 +/* 07E868 7F049CF8 C46A000C */ lwc1 $f10, 0xc($v1) +/* 07E86C 7F049CFC E4640014 */ swc1 $f4, 0x14($v1) +/* 07E870 7F049D00 C7A8011C */ lwc1 $f8, 0x11c($sp) +/* 07E874 7F049D04 46021102 */ mul.s $f4, $f2, $f2 +/* 07E878 7F049D08 C46E0014 */ lwc1 $f14, 0x14($v1) +/* 07E87C 7F049D0C 460A4181 */ sub.s $f6, $f8, $f10 +/* 07E880 7F049D10 460E7202 */ mul.s $f8, $f14, $f14 +/* 07E884 7F049D14 E4660018 */ swc1 $f6, 0x18($v1) +/* 07E888 7F049D18 C4600018 */ lwc1 $f0, 0x18($v1) +/* 07E88C 7F049D1C AFA30094 */ sw $v1, 0x94($sp) +/* 07E890 7F049D20 46000182 */ mul.s $f6, $f0, $f0 +/* 07E894 7F049D24 46082280 */ add.s $f10, $f4, $f8 +/* 07E898 7F049D28 0C007E08 */ jal sqrtf +/* 07E89C 7F049D2C 460A3300 */ add.s $f12, $f6, $f10 +/* 07E8A0 7F049D30 3C018005 */ lui $at, %hi(D_80052B78) # $at, 0x8005 +/* 07E8A4 7F049D34 C42E2BA8 */ lwc1 $f14, %lo(D_80052B78)($at) +/* 07E8A8 7F049D38 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07E8AC 7F049D3C 44812000 */ mtc1 $at, $f4 +/* 07E8B0 7F049D40 8FA30094 */ lw $v1, 0x94($sp) +/* 07E8B4 7F049D44 4600703C */ c.lt.s $f14, $f0 +/* 07E8B8 7F049D48 46000306 */ mov.s $f12, $f0 +/* 07E8BC 7F049D4C 46002083 */ div.s $f2, $f4, $f0 +/* 07E8C0 7F049D50 C4680010 */ lwc1 $f8, 0x10($v1) +/* 07E8C4 7F049D54 C46A0014 */ lwc1 $f10, 0x14($v1) +/* 07E8C8 7F049D58 3C0143FA */ li $at, 0x43FA0000 # 500.000000 +/* 07E8CC 7F049D5C 44810000 */ mtc1 $at, $f0 +/* 07E8D0 7F049D60 46024182 */ mul.s $f6, $f8, $f2 +/* 07E8D4 7F049D64 C4680018 */ lwc1 $f8, 0x18($v1) +/* 07E8D8 7F049D68 46025102 */ mul.s $f4, $f10, $f2 +/* 07E8DC 7F049D6C E4660010 */ swc1 $f6, 0x10($v1) +/* 07E8E0 7F049D70 46024182 */ mul.s $f6, $f8, $f2 +/* 07E8E4 7F049D74 E4640014 */ swc1 $f4, 0x14($v1) +/* 07E8E8 7F049D78 45000002 */ bc1f .Ljp7F049D84 +/* 07E8EC 7F049D7C E4660018 */ swc1 $f6, 0x18($v1) +/* 07E8F0 7F049D80 46007306 */ mov.s $f12, $f14 +.Ljp7F049D84: +/* 07E8F4 7F049D84 4600603C */ c.lt.s $f12, $f0 +/* 07E8F8 7F049D88 2409000E */ li $t1, 14 +/* 07E8FC 7F049D8C A0600000 */ sb $zero, ($v1) +/* 07E900 7F049D90 A0690001 */ sb $t1, 1($v1) +/* 07E904 7F049D94 45000002 */ bc1f .Ljp7F049DA0 +/* 07E908 7F049D98 E46C001C */ swc1 $f12, 0x1c($v1) +/* 07E90C 7F049D9C 46000306 */ mov.s $f12, $f0 +.Ljp7F049DA0: +/* 07E910 7F049DA0 806B0001 */ lb $t3, 1($v1) +/* 07E914 7F049DA4 24010016 */ li $at, 22 +/* 07E918 7F049DA8 15610026 */ bne $t3, $at, .Ljp7F049E44 +/* 07E91C 7F049DAC 3C018005 */ lui $at, %hi(D_80052B7C) # $at, 0x8005 +/* 07E920 7F049DB0 C4222BAC */ lwc1 $f2, %lo(D_80052B7C)($at) +/* 07E924 7F049DB4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 07E928 7F049DB8 44815000 */ mtc1 $at, $f10 +/* 07E92C 7F049DBC 3C018005 */ lui $at, %hi(D_80052B80) # $at, 0x8005 +/* 07E930 7F049DC0 460C5102 */ mul.s $f4, $f10, $f12 +/* 07E934 7F049DC4 E4640020 */ swc1 $f4, 0x20($v1) +/* 07E938 7F049DC8 C4282BB0 */ lwc1 $f8, %lo(D_80052B80)($at) +/* 07E93C 7F049DCC 460C4002 */ mul.s $f0, $f8, $f12 +/* 07E940 7F049DD0 4600103C */ c.lt.s $f2, $f0 +/* 07E944 7F049DD4 E4600024 */ swc1 $f0, 0x24($v1) +/* 07E948 7F049DD8 45020003 */ bc1fl .Ljp7F049DE8 +/* 07E94C 7F049DDC AFA30094 */ sw $v1, 0x94($sp) +/* 07E950 7F049DE0 E4620024 */ swc1 $f2, 0x24($v1) +/* 07E954 7F049DE4 AFA30094 */ sw $v1, 0x94($sp) +.Ljp7F049DE8: +/* 07E958 7F049DE8 0C002918 */ jal get_random_value +/* 07E95C 7F049DEC E7AC0098 */ swc1 $f12, 0x98($sp) +/* 07E960 7F049DF0 44823000 */ mtc1 $v0, $f6 +/* 07E964 7F049DF4 8FA30094 */ lw $v1, 0x94($sp) +/* 07E968 7F049DF8 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 07E96C 7F049DFC 04410005 */ bgez $v0, .Ljp7F049E14 +/* 07E970 7F049E00 468032A0 */ cvt.s.w $f10, $f6 +/* 07E974 7F049E04 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07E978 7F049E08 44812000 */ mtc1 $at, $f4 +/* 07E97C 7F049E0C 00000000 */ nop +/* 07E980 7F049E10 46045280 */ add.s $f10, $f10, $f4 +.Ljp7F049E14: +/* 07E984 7F049E14 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07E988 7F049E18 44814000 */ mtc1 $at, $f8 +/* 07E98C 7F049E1C 3C018005 */ lui $at, %hi(D_80052B84) # $at, 0x8005 +/* 07E990 7F049E20 C4242BB4 */ lwc1 $f4, %lo(D_80052B84)($at) +/* 07E994 7F049E24 46085182 */ mul.s $f6, $f10, $f8 +/* 07E998 7F049E28 3C018005 */ lui $at, %hi(D_80052B88) # $at, 0x8005 +/* 07E99C 7F049E2C C4282BB8 */ lwc1 $f8, %lo(D_80052B88)($at) +/* 07E9A0 7F049E30 46043282 */ mul.s $f10, $f6, $f4 +/* 07E9A4 7F049E34 460A4181 */ sub.s $f6, $f8, $f10 +/* 07E9A8 7F049E38 460C3102 */ mul.s $f4, $f6, $f12 +/* 07E9AC 7F049E3C 10000023 */ b .Ljp7F049ECC +/* 07E9B0 7F049E40 E4640028 */ swc1 $f4, 0x28($v1) +.Ljp7F049E44: +/* 07E9B4 7F049E44 3C018005 */ lui $at, %hi(D_80052B8C) # $at, 0x8005 +/* 07E9B8 7F049E48 C4282BBC */ lwc1 $f8, %lo(D_80052B8C)($at) +/* 07E9BC 7F049E4C 3C018005 */ lui $at, %hi(D_80052B90) # $at, 0x8005 +/* 07E9C0 7F049E50 460C4002 */ mul.s $f0, $f8, $f12 +/* 07E9C4 7F049E54 E4600020 */ swc1 $f0, 0x20($v1) +/* 07E9C8 7F049E58 E4600024 */ swc1 $f0, 0x24($v1) +/* 07E9CC 7F049E5C C42A2BC0 */ lwc1 $f10, %lo(D_80052B90)($at) +/* 07E9D0 7F049E60 3C018005 */ lui $at, %hi(D_80052B94) # $at, 0x8005 +/* 07E9D4 7F049E64 4600503C */ c.lt.s $f10, $f0 +/* 07E9D8 7F049E68 00000000 */ nop +/* 07E9DC 7F049E6C 45000003 */ bc1f .Ljp7F049E7C +/* 07E9E0 7F049E70 00000000 */ nop +/* 07E9E4 7F049E74 C4262BC4 */ lwc1 $f6, %lo(D_80052B94)($at) +/* 07E9E8 7F049E78 E4660024 */ swc1 $f6, 0x24($v1) +.Ljp7F049E7C: +/* 07E9EC 7F049E7C 0C002918 */ jal get_random_value +/* 07E9F0 7F049E80 AFA30094 */ sw $v1, 0x94($sp) +/* 07E9F4 7F049E84 44822000 */ mtc1 $v0, $f4 +/* 07E9F8 7F049E88 8FA30094 */ lw $v1, 0x94($sp) +/* 07E9FC 7F049E8C 04410005 */ bgez $v0, .Ljp7F049EA4 +/* 07EA00 7F049E90 46802220 */ cvt.s.w $f8, $f4 +/* 07EA04 7F049E94 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EA08 7F049E98 44815000 */ mtc1 $at, $f10 +/* 07EA0C 7F049E9C 00000000 */ nop +/* 07EA10 7F049EA0 460A4200 */ add.s $f8, $f8, $f10 +.Ljp7F049EA4: +/* 07EA14 7F049EA4 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07EA18 7F049EA8 44813000 */ mtc1 $at, $f6 +/* 07EA1C 7F049EAC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07EA20 7F049EB0 44815000 */ mtc1 $at, $f10 +/* 07EA24 7F049EB4 46064002 */ mul.s $f0, $f8, $f6 +/* 07EA28 7F049EB8 C4660020 */ lwc1 $f6, 0x20($v1) +/* 07EA2C 7F049EBC 46000100 */ add.s $f4, $f0, $f0 +/* 07EA30 7F049EC0 460A2201 */ sub.s $f8, $f4, $f10 +/* 07EA34 7F049EC4 46064102 */ mul.s $f4, $f8, $f6 +/* 07EA38 7F049EC8 E4640028 */ swc1 $f4, 0x28($v1) +.Ljp7F049ECC: +/* 07EA3C 7F049ECC 8E8E0008 */ lw $t6, 8($s4) +.Ljp7F049ED0: +/* 07EA40 7F049ED0 8DC30008 */ lw $v1, 8($t6) +/* 07EA44 7F049ED4 8C650014 */ lw $a1, 0x14($v1) +/* 07EA48 7F049ED8 50A00008 */ beql $a1, $zero, .Ljp7F049EFC +/* 07EA4C 7F049EDC 8C65001C */ lw $a1, 0x1c($v1) +/* 07EA50 7F049EE0 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 07EA54 7F049EE4 02802025 */ move $a0, $s4 +/* 07EA58 7F049EE8 8FAA0140 */ lw $t2, 0x140($sp) +/* 07EA5C 7F049EEC A44A0000 */ sh $t2, ($v0) +/* 07EA60 7F049EF0 8E8F0008 */ lw $t7, 8($s4) +/* 07EA64 7F049EF4 8DE30008 */ lw $v1, 8($t7) +/* 07EA68 7F049EF8 8C65001C */ lw $a1, 0x1c($v1) +.Ljp7F049EFC: +/* 07EA6C 7F049EFC 10A00005 */ beqz $a1, .Ljp7F049F14 +/* 07EA70 7F049F00 00000000 */ nop +/* 07EA74 7F049F04 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 07EA78 7F049F08 02802025 */ move $a0, $s4 +/* 07EA7C 7F049F0C 8FAC013C */ lw $t4, 0x13c($sp) +/* 07EA80 7F049F10 A44C0000 */ sh $t4, ($v0) +.Ljp7F049F14: +/* 07EA84 7F049F14 0FC1113A */ jal sub_GAME_7F044200 +/* 07EA88 7F049F18 02602025 */ move $a0, $s3 +/* 07EA8C 7F049F1C 8FAD0688 */ lw $t5, 0x688($sp) +.Ljp7F049F20: +/* 07EA90 7F049F20 24010005 */ li $at, 5 +/* 07EA94 7F049F24 55A10003 */ bnel $t5, $at, .Ljp7F049F34 +/* 07EA98 7F049F28 8FA20688 */ lw $v0, 0x688($sp) +/* 07EA9C 7F049F2C AE600014 */ sw $zero, 0x14($s3) +/* 07EAA0 7F049F30 8FA20688 */ lw $v0, 0x688($sp) +.Ljp7F049F34: +/* 07EAA4 7F049F34 8FBF0054 */ lw $ra, 0x54($sp) +/* 07EAA8 7F049F38 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 07EAAC 7F049F3C D7B60038 */ ldc1 $f22, 0x38($sp) +/* 07EAB0 7F049F40 8FB00040 */ lw $s0, 0x40($sp) +/* 07EAB4 7F049F44 8FB10044 */ lw $s1, 0x44($sp) +/* 07EAB8 7F049F48 8FB20048 */ lw $s2, 0x48($sp) +/* 07EABC 7F049F4C 8FB3004C */ lw $s3, 0x4c($sp) +/* 07EAC0 7F049F50 8FB40050 */ lw $s4, 0x50($sp) +/* 07EAC4 7F049F54 03E00008 */ jr $ra +/* 07EAC8 7F049F58 27BD06B0 */ addiu $sp, $sp, 0x6b0 +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F049B58(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F049B58 +/* 07E688 7F049B58 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 07E68C 7F049B5C AFBF0034 */ sw $ra, 0x34($sp) +/* 07E690 7F049B60 AFB20020 */ sw $s2, 0x20($sp) +/* 07E694 7F049B64 00809025 */ move $s2, $a0 +/* 07E698 7F049B68 AFB60030 */ sw $s6, 0x30($sp) +/* 07E69C 7F049B6C AFB5002C */ sw $s5, 0x2c($sp) +/* 07E6A0 7F049B70 AFB40028 */ sw $s4, 0x28($sp) +/* 07E6A4 7F049B74 AFB30024 */ sw $s3, 0x24($sp) +/* 07E6A8 7F049B78 AFB1001C */ sw $s1, 0x1c($sp) +/* 07E6AC 7F049B7C 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 07E6B0 7F049B80 AFB00018 */ sw $s0, 0x18($sp) +/* 07E6B4 7F049B84 10400036 */ beqz $v0, .L7F049C60 +/* 07E6B8 7F049B88 00408025 */ move $s0, $v0 +/* 07E6BC 7F049B8C 24160006 */ li $s6, 6 +/* 07E6C0 7F049B90 2415000D */ li $s5, 13 +/* 07E6C4 7F049B94 24140001 */ li $s4, 1 +/* 07E6C8 7F049B98 24130003 */ li $s3, 3 +/* 07E6CC 7F049B9C 92020000 */ lbu $v0, ($s0) +.L7F049BA0: +/* 07E6D0 7F049BA0 02402025 */ move $a0, $s2 +/* 07E6D4 7F049BA4 1662000B */ bne $s3, $v0, .L7F049BD4 +/* 07E6D8 7F049BA8 00000000 */ nop +/* 07E6DC 7F049BAC 8E110004 */ lw $s1, 4($s0) +/* 07E6E0 7F049BB0 02803025 */ move $a2, $s4 +/* 07E6E4 7F049BB4 0FC18786 */ jal sub_GAME_7F061E18 +/* 07E6E8 7F049BB8 26250180 */ addiu $a1, $s1, 0x180 +/* 07E6EC 7F049BBC 00402025 */ move $a0, $v0 +/* 07E6F0 7F049BC0 262501AC */ addiu $a1, $s1, 0x1ac +/* 07E6F4 7F049BC4 0FC18786 */ jal sub_GAME_7F061E18 +/* 07E6F8 7F049BC8 02803025 */ move $a2, $s4 +/* 07E6FC 7F049BCC 10000021 */ b .L7F049C54 +/* 07E700 7F049BD0 00409025 */ move $s2, $v0 +.L7F049BD4: +/* 07E704 7F049BD4 1682000B */ bne $s4, $v0, .L7F049C04 +/* 07E708 7F049BD8 00000000 */ nop +/* 07E70C 7F049BDC 8E030004 */ lw $v1, 4($s0) +/* 07E710 7F049BE0 02402025 */ move $a0, $s2 +/* 07E714 7F049BE4 02803025 */ move $a2, $s4 +/* 07E718 7F049BE8 906E0003 */ lbu $t6, 3($v1) +/* 07E71C 7F049BEC 56AE001A */ bnel $s5, $t6, .L7F049C58 +/* 07E720 7F049BF0 8E100024 */ lw $s0, 0x24($s0) +/* 07E724 7F049BF4 0FC18786 */ jal sub_GAME_7F061E18 +/* 07E728 7F049BF8 8C6500CC */ lw $a1, 0xcc($v1) +/* 07E72C 7F049BFC 10000015 */ b .L7F049C54 +/* 07E730 7F049C00 00409025 */ move $s2, $v0 +.L7F049C04: +/* 07E734 7F049C04 56C20014 */ bnel $s6, $v0, .L7F049C58 +/* 07E738 7F049C08 8E100024 */ lw $s0, 0x24($s0) +/* 07E73C 7F049C0C 8E0F0004 */ lw $t7, 4($s0) +/* 07E740 7F049C10 51E00011 */ beql $t7, $zero, .L7F049C58 +/* 07E744 7F049C14 8E100024 */ lw $s0, 0x24($s0) +/* 07E748 7F049C18 0FC26C57 */ jal sub_GAME_7F09B15C +/* 07E74C 7F049C1C 02002025 */ move $a0, $s0 +/* 07E750 7F049C20 0FC26C54 */ jal get_cur_playernum +/* 07E754 7F049C24 00408825 */ move $s1, $v0 +/* 07E758 7F049C28 1051000A */ beq $v0, $s1, .L7F049C54 +/* 07E75C 7F049C2C 02402025 */ move $a0, $s2 +/* 07E760 7F049C30 8E110004 */ lw $s1, 4($s0) +/* 07E764 7F049C34 02803025 */ move $a2, $s4 +/* 07E768 7F049C38 0FC18786 */ jal sub_GAME_7F061E18 +/* 07E76C 7F049C3C 26250180 */ addiu $a1, $s1, 0x180 +/* 07E770 7F049C40 00402025 */ move $a0, $v0 +/* 07E774 7F049C44 262501AC */ addiu $a1, $s1, 0x1ac +/* 07E778 7F049C48 0FC18786 */ jal sub_GAME_7F061E18 +/* 07E77C 7F049C4C 02803025 */ move $a2, $s4 +/* 07E780 7F049C50 00409025 */ move $s2, $v0 +.L7F049C54: +/* 07E784 7F049C54 8E100024 */ lw $s0, 0x24($s0) +.L7F049C58: +/* 07E788 7F049C58 5600FFD1 */ bnezl $s0, .L7F049BA0 +/* 07E78C 7F049C5C 92020000 */ lbu $v0, ($s0) +.L7F049C60: +/* 07E790 7F049C60 8FBF0034 */ lw $ra, 0x34($sp) +/* 07E794 7F049C64 02401025 */ move $v0, $s2 +/* 07E798 7F049C68 8FB20020 */ lw $s2, 0x20($sp) +/* 07E79C 7F049C6C 8FB00018 */ lw $s0, 0x18($sp) +/* 07E7A0 7F049C70 8FB1001C */ lw $s1, 0x1c($sp) +/* 07E7A4 7F049C74 8FB30024 */ lw $s3, 0x24($sp) +/* 07E7A8 7F049C78 8FB40028 */ lw $s4, 0x28($sp) +/* 07E7AC 7F049C7C 8FB5002C */ lw $s5, 0x2c($sp) +/* 07E7B0 7F049C80 8FB60030 */ lw $s6, 0x30($sp) +/* 07E7B4 7F049C84 03E00008 */ jr $ra +/* 07E7B8 7F049C88 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void save_ptr_monitor_ani_code_to_obj_ani_slot(void) { + +} +#else +GLOBAL_ASM( +.text +glabel save_ptr_monitor_ani_code_to_obj_ani_slot +/* 07E7BC 7F049C8C AC850000 */ sw $a1, ($a0) +/* 07E7C0 7F049C90 03E00008 */ jr $ra +/* 07E7C4 7F049C94 A4800004 */ sh $zero, 4($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void set_ptr_monitor_img_to_obj_ani_slot(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80052B98*/ +glabel jpt_80052B98 +.word def_7F049CC0 +.word .L7F049CC8 +.word .L7F049CD4 +.word .L7F049CE0 +.word .L7F049CEC +.word .L7F049CF8 +.word .L7F049D04 +.word .L7F049D10 +.word .L7F049D1C +.word .L7F049D28 +.word .L7F049D34 +.word .L7F049D40 +.word .L7F049D4C +.word .L7F049D58 +.word .L7F049D64 +.word .L7F049D70 +.word .L7F049D7C +.word .L7F049D88 +.word .L7F049D94 +.word .L7F049DA0 +.word .L7F049DAC +.word .L7F049DB8 +.word .L7F049DC4 +.word .L7F049DD0 +.word .L7F049DDC +.word .L7F049DE8 +.word .L7F049DF4 +.word .L7F049E00 +.word .L7F049E0C +.word .L7F049E18 +.word .L7F049E24 +.word .L7F049E30 +.word .L7F049E3C +.word .L7F049E48 +.word .L7F049E54 +.word .L7F049E60 +.word .L7F049E6C +.word .L7F049E78 +.word .L7F049E84 +.word .L7F049E90 +.word .L7F049E9C +.word .L7F049EA8 +.word .L7F049EB4 +.word .L7F049EC0 +.word .L7F049ECC +.word .L7F049ED8 +.word .L7F049EE4 +.word .L7F049EF0 +.word .L7F049EFC +.word .L7F049F08 +.word .L7F049F14 +.word .L7F049F20 + +.text +glabel set_ptr_monitor_img_to_obj_ani_slot +/* 07E7C8 7F049C98 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 07E7CC 7F049C9C 3C068003 */ lui $a2, %hi(monitor_animation_microcode) +/* 07E7D0 7F049CA0 2CA10034 */ sltiu $at, $a1, 0x34 +/* 07E7D4 7F049CA4 AFBF0014 */ sw $ra, 0x14($sp) +/* 07E7D8 7F049CA8 1020009F */ beqz $at, .L7F049F28 +/* 07E7DC 7F049CAC 24C60B74 */ addiu $a2, %lo(monitor_animation_microcode) # addiu $a2, $a2, 0xb74 +/* 07E7E0 7F049CB0 00057080 */ sll $t6, $a1, 2 +/* 07E7E4 7F049CB4 3C018005 */ lui $at, %hi(jpt_80052B98) +/* 07E7E8 7F049CB8 002E0821 */ addu $at, $at, $t6 +/* 07E7EC 7F049CBC 8C2E2B98 */ lw $t6, %lo(jpt_80052B98)($at) +/* 07E7F0 7F049CC0 01C00008 */ jr $t6 +/* 07E7F4 7F049CC4 00000000 */ nop +.L7F049CC8: +/* 07E7F8 7F049CC8 3C068003 */ lui $a2, %hi(D_80030C00) +/* 07E7FC 7F049CCC 10000096 */ b .L7F049F28 +/* 07E800 7F049CD0 24C60C00 */ addiu $a2, %lo(D_80030C00) # addiu $a2, $a2, 0xc00 +.L7F049CD4: +/* 07E804 7F049CD4 3C068003 */ lui $a2, %hi(D_80030E24) +/* 07E808 7F049CD8 10000093 */ b .L7F049F28 +/* 07E80C 7F049CDC 24C60E24 */ addiu $a2, %lo(D_80030E24) # addiu $a2, $a2, 0xe24 +.L7F049CE0: +/* 07E810 7F049CE0 3C068003 */ lui $a2, %hi(D_80030F44) +/* 07E814 7F049CE4 10000090 */ b .L7F049F28 +/* 07E818 7F049CE8 24C60F44 */ addiu $a2, %lo(D_80030F44) # addiu $a2, $a2, 0xf44 +.L7F049CEC: +/* 07E81C 7F049CEC 3C068003 */ lui $a2, %hi(D_80031018) +/* 07E820 7F049CF0 1000008D */ b .L7F049F28 +/* 07E824 7F049CF4 24C61018 */ addiu $a2, %lo(D_80031018) # addiu $a2, $a2, 0x1018 +.L7F049CF8: +/* 07E828 7F049CF8 3C068003 */ lui $a2, %hi(D_80031074) +/* 07E82C 7F049CFC 1000008A */ b .L7F049F28 +/* 07E830 7F049D00 24C61074 */ addiu $a2, %lo(D_80031074) # addiu $a2, $a2, 0x1074 +.L7F049D04: +/* 07E834 7F049D04 3C068003 */ lui $a2, %hi(D_800310F0) +/* 07E838 7F049D08 10000087 */ b .L7F049F28 +/* 07E83C 7F049D0C 24C610F0 */ addiu $a2, %lo(D_800310F0) # addiu $a2, $a2, 0x10f0 +.L7F049D10: +/* 07E840 7F049D10 3C068003 */ lui $a2, %hi(D_8003118C) +/* 07E844 7F049D14 10000084 */ b .L7F049F28 +/* 07E848 7F049D18 24C6118C */ addiu $a2, %lo(D_8003118C) # addiu $a2, $a2, 0x118c +.L7F049D1C: +/* 07E84C 7F049D1C 3C068003 */ lui $a2, %hi(D_8003121C) +/* 07E850 7F049D20 10000081 */ b .L7F049F28 +/* 07E854 7F049D24 24C6121C */ addiu $a2, %lo(D_8003121C) # addiu $a2, $a2, 0x121c +.L7F049D28: +/* 07E858 7F049D28 3C068003 */ lui $a2, %hi(D_80031248) +/* 07E85C 7F049D2C 1000007E */ b .L7F049F28 +/* 07E860 7F049D30 24C61248 */ addiu $a2, %lo(D_80031248) # addiu $a2, $a2, 0x1248 +.L7F049D34: +/* 07E864 7F049D34 3C068003 */ lui $a2, %hi(D_80031274) +/* 07E868 7F049D38 1000007B */ b .L7F049F28 +/* 07E86C 7F049D3C 24C61274 */ addiu $a2, %lo(D_80031274) # addiu $a2, $a2, 0x1274 +.L7F049D40: +/* 07E870 7F049D40 3C068003 */ lui $a2, %hi(D_800312F4) +/* 07E874 7F049D44 10000078 */ b .L7F049F28 +/* 07E878 7F049D48 24C612F4 */ addiu $a2, %lo(D_800312F4) # addiu $a2, $a2, 0x12f4 +.L7F049D4C: +/* 07E87C 7F049D4C 3C068003 */ lui $a2, %hi(D_80031310) +/* 07E880 7F049D50 10000075 */ b .L7F049F28 +/* 07E884 7F049D54 24C61310 */ addiu $a2, %lo(D_80031310) # addiu $a2, $a2, 0x1310 +.L7F049D58: +/* 07E888 7F049D58 3C068003 */ lui $a2, %hi(D_80031490) +/* 07E88C 7F049D5C 10000072 */ b .L7F049F28 +/* 07E890 7F049D60 24C61490 */ addiu $a2, %lo(D_80031490) # addiu $a2, $a2, 0x1490 +.L7F049D64: +/* 07E894 7F049D64 3C068003 */ lui $a2, %hi(D_800314F8) +/* 07E898 7F049D68 1000006F */ b .L7F049F28 +/* 07E89C 7F049D6C 24C614F8 */ addiu $a2, %lo(D_800314F8) # addiu $a2, $a2, 0x14f8 +.L7F049D70: +/* 07E8A0 7F049D70 3C068003 */ lui $a2, %hi(D_80030EC8) +/* 07E8A4 7F049D74 1000006C */ b .L7F049F28 +/* 07E8A8 7F049D78 24C60EC8 */ addiu $a2, %lo(D_80030EC8) # addiu $a2, $a2, 0xec8 +.L7F049D7C: +/* 07E8AC 7F049D7C 3C068003 */ lui $a2, %hi(D_80031360) +/* 07E8B0 7F049D80 10000069 */ b .L7F049F28 +/* 07E8B4 7F049D84 24C61360 */ addiu $a2, %lo(D_80031360) # addiu $a2, $a2, 0x1360 +.L7F049D88: +/* 07E8B8 7F049D88 3C068003 */ lui $a2, %hi(D_8003156C) +/* 07E8BC 7F049D8C 10000066 */ b .L7F049F28 +/* 07E8C0 7F049D90 24C6156C */ addiu $a2, %lo(D_8003156C) # addiu $a2, $a2, 0x156c +.L7F049D94: +/* 07E8C4 7F049D94 3C068003 */ lui $a2, %hi(D_800315CC) +/* 07E8C8 7F049D98 10000063 */ b .L7F049F28 +/* 07E8CC 7F049D9C 24C615CC */ addiu $a2, %lo(D_800315CC) # addiu $a2, $a2, 0x15cc +.L7F049DA0: +/* 07E8D0 7F049DA0 3C068003 */ lui $a2, %hi(D_80031848) +/* 07E8D4 7F049DA4 10000060 */ b .L7F049F28 +/* 07E8D8 7F049DA8 24C61848 */ addiu $a2, %lo(D_80031848) # addiu $a2, $a2, 0x1848 +.L7F049DAC: +/* 07E8DC 7F049DAC 3C068003 */ lui $a2, %hi(D_80031898) +/* 07E8E0 7F049DB0 1000005D */ b .L7F049F28 +/* 07E8E4 7F049DB4 24C61898 */ addiu $a2, %lo(D_80031898) # addiu $a2, $a2, 0x1898 +.L7F049DB8: +/* 07E8E8 7F049DB8 3C068003 */ lui $a2, %hi(D_800318B8) +/* 07E8EC 7F049DBC 1000005A */ b .L7F049F28 +/* 07E8F0 7F049DC0 24C618B8 */ addiu $a2, %lo(D_800318B8) # addiu $a2, $a2, 0x18b8 +.L7F049DC4: +/* 07E8F4 7F049DC4 3C068003 */ lui $a2, %hi(D_8003191C) +/* 07E8F8 7F049DC8 10000057 */ b .L7F049F28 +/* 07E8FC 7F049DCC 24C6191C */ addiu $a2, %lo(D_8003191C) # addiu $a2, $a2, 0x191c +.L7F049DD0: +/* 07E900 7F049DD0 3C068003 */ lui $a2, %hi(D_80031950) +/* 07E904 7F049DD4 10000054 */ b .L7F049F28 +/* 07E908 7F049DD8 24C61950 */ addiu $a2, %lo(D_80031950) # addiu $a2, $a2, 0x1950 +.L7F049DDC: +/* 07E90C 7F049DDC 3C068003 */ lui $a2, %hi(D_800319D4) +/* 07E910 7F049DE0 10000051 */ b .L7F049F28 +/* 07E914 7F049DE4 24C619D4 */ addiu $a2, %lo(D_800319D4) # addiu $a2, $a2, 0x19d4 +.L7F049DE8: +/* 07E918 7F049DE8 3C068003 */ lui $a2, %hi(D_800319F0) +/* 07E91C 7F049DEC 1000004E */ b .L7F049F28 +/* 07E920 7F049DF0 24C619F0 */ addiu $a2, %lo(D_800319F0) # addiu $a2, $a2, 0x19f0 +.L7F049DF4: +/* 07E924 7F049DF4 3C068003 */ lui $a2, %hi(D_80031A0C) +/* 07E928 7F049DF8 1000004B */ b .L7F049F28 +/* 07E92C 7F049DFC 24C61A0C */ addiu $a2, %lo(D_80031A0C) # addiu $a2, $a2, 0x1a0c +.L7F049E00: +/* 07E930 7F049E00 3C068003 */ lui $a2, %hi(D_80031A28) +/* 07E934 7F049E04 10000048 */ b .L7F049F28 +/* 07E938 7F049E08 24C61A28 */ addiu $a2, %lo(D_80031A28) # addiu $a2, $a2, 0x1a28 +.L7F049E0C: +/* 07E93C 7F049E0C 3C068003 */ lui $a2, %hi(D_80031A44) +/* 07E940 7F049E10 10000045 */ b .L7F049F28 +/* 07E944 7F049E14 24C61A44 */ addiu $a2, %lo(D_80031A44) # addiu $a2, $a2, 0x1a44 +.L7F049E18: +/* 07E948 7F049E18 3C068003 */ lui $a2, %hi(D_80031A60) +/* 07E94C 7F049E1C 10000042 */ b .L7F049F28 +/* 07E950 7F049E20 24C61A60 */ addiu $a2, %lo(D_80031A60) # addiu $a2, $a2, 0x1a60 +.L7F049E24: +/* 07E954 7F049E24 3C068003 */ lui $a2, %hi(D_80031A7C) +/* 07E958 7F049E28 1000003F */ b .L7F049F28 +/* 07E95C 7F049E2C 24C61A7C */ addiu $a2, %lo(D_80031A7C) # addiu $a2, $a2, 0x1a7c +.L7F049E30: +/* 07E960 7F049E30 3C068003 */ lui $a2, %hi(D_80031A98) +/* 07E964 7F049E34 1000003C */ b .L7F049F28 +/* 07E968 7F049E38 24C61A98 */ addiu $a2, %lo(D_80031A98) # addiu $a2, $a2, 0x1a98 +.L7F049E3C: +/* 07E96C 7F049E3C 3C068003 */ lui $a2, %hi(D_80031AB4) +/* 07E970 7F049E40 10000039 */ b .L7F049F28 +/* 07E974 7F049E44 24C61AB4 */ addiu $a2, %lo(D_80031AB4) # addiu $a2, $a2, 0x1ab4 +.L7F049E48: +/* 07E978 7F049E48 3C068003 */ lui $a2, %hi(D_80031AD0) +/* 07E97C 7F049E4C 10000036 */ b .L7F049F28 +/* 07E980 7F049E50 24C61AD0 */ addiu $a2, %lo(D_80031AD0) # addiu $a2, $a2, 0x1ad0 +.L7F049E54: +/* 07E984 7F049E54 3C068003 */ lui $a2, %hi(D_80031AEC) +/* 07E988 7F049E58 10000033 */ b .L7F049F28 +/* 07E98C 7F049E5C 24C61AEC */ addiu $a2, %lo(D_80031AEC) # addiu $a2, $a2, 0x1aec +.L7F049E60: +/* 07E990 7F049E60 3C068003 */ lui $a2, %hi(D_80031B24) +/* 07E994 7F049E64 10000030 */ b .L7F049F28 +/* 07E998 7F049E68 24C61B24 */ addiu $a2, %lo(D_80031B24) # addiu $a2, $a2, 0x1b24 +.L7F049E6C: +/* 07E99C 7F049E6C 3C068003 */ lui $a2, %hi(D_80031B38) +/* 07E9A0 7F049E70 1000002D */ b .L7F049F28 +/* 07E9A4 7F049E74 24C61B38 */ addiu $a2, %lo(D_80031B38) # addiu $a2, $a2, 0x1b38 +.L7F049E78: +/* 07E9A8 7F049E78 3C068003 */ lui $a2, %hi(D_80031B4C) +/* 07E9AC 7F049E7C 1000002A */ b .L7F049F28 +/* 07E9B0 7F049E80 24C61B4C */ addiu $a2, %lo(D_80031B4C) # addiu $a2, $a2, 0x1b4c +.L7F049E84: +/* 07E9B4 7F049E84 3C068003 */ lui $a2, %hi(D_80031B60) +/* 07E9B8 7F049E88 10000027 */ b .L7F049F28 +/* 07E9BC 7F049E8C 24C61B60 */ addiu $a2, %lo(D_80031B60) # addiu $a2, $a2, 0x1b60 +.L7F049E90: +/* 07E9C0 7F049E90 3C068003 */ lui $a2, %hi(D_80031BB4) +/* 07E9C4 7F049E94 10000024 */ b .L7F049F28 +/* 07E9C8 7F049E98 24C61BB4 */ addiu $a2, %lo(D_80031BB4) # addiu $a2, $a2, 0x1bb4 +.L7F049E9C: +/* 07E9CC 7F049E9C 3C068003 */ lui $a2, %hi(D_80031BD0) +/* 07E9D0 7F049EA0 10000021 */ b .L7F049F28 +/* 07E9D4 7F049EA4 24C61BD0 */ addiu $a2, %lo(D_80031BD0) # addiu $a2, $a2, 0x1bd0 +.L7F049EA8: +/* 07E9D8 7F049EA8 3C068003 */ lui $a2, %hi(D_80031BEC) +/* 07E9DC 7F049EAC 1000001E */ b .L7F049F28 +/* 07E9E0 7F049EB0 24C61BEC */ addiu $a2, %lo(D_80031BEC) # addiu $a2, $a2, 0x1bec +.L7F049EB4: +/* 07E9E4 7F049EB4 3C068003 */ lui $a2, %hi(D_80031C08) +/* 07E9E8 7F049EB8 1000001B */ b .L7F049F28 +/* 07E9EC 7F049EBC 24C61C08 */ addiu $a2, %lo(D_80031C08) # addiu $a2, $a2, 0x1c08 +.L7F049EC0: +/* 07E9F0 7F049EC0 3C068003 */ lui $a2, %hi(D_80031C80) +/* 07E9F4 7F049EC4 10000018 */ b .L7F049F28 +/* 07E9F8 7F049EC8 24C61C80 */ addiu $a2, %lo(D_80031C80) # addiu $a2, $a2, 0x1c80 +.L7F049ECC: +/* 07E9FC 7F049ECC 3C068003 */ lui $a2, %hi(D_80031D30) +/* 07EA00 7F049ED0 10000015 */ b .L7F049F28 +/* 07EA04 7F049ED4 24C61D30 */ addiu $a2, %lo(D_80031D30) # addiu $a2, $a2, 0x1d30 +.L7F049ED8: +/* 07EA08 7F049ED8 3C068003 */ lui $a2, %hi(D_80031D58) +/* 07EA0C 7F049EDC 10000012 */ b .L7F049F28 +/* 07EA10 7F049EE0 24C61D58 */ addiu $a2, %lo(D_80031D58) # addiu $a2, $a2, 0x1d58 +.L7F049EE4: +/* 07EA14 7F049EE4 3C068003 */ lui $a2, %hi(D_80031DA8) +/* 07EA18 7F049EE8 1000000F */ b .L7F049F28 +/* 07EA1C 7F049EEC 24C61DA8 */ addiu $a2, %lo(D_80031DA8) # addiu $a2, $a2, 0x1da8 +.L7F049EF0: +/* 07EA20 7F049EF0 3C068003 */ lui $a2, %hi(D_80031DF4) +/* 07EA24 7F049EF4 1000000C */ b .L7F049F28 +/* 07EA28 7F049EF8 24C61DF4 */ addiu $a2, %lo(D_80031DF4) # addiu $a2, $a2, 0x1df4 +.L7F049EFC: +/* 07EA2C 7F049EFC 3C068003 */ lui $a2, %hi(D_80031E40) +/* 07EA30 7F049F00 10000009 */ b .L7F049F28 +/* 07EA34 7F049F04 24C61E40 */ addiu $a2, %lo(D_80031E40) # addiu $a2, $a2, 0x1e40 +.L7F049F08: +/* 07EA38 7F049F08 3C068003 */ lui $a2, %hi(D_80031E78) +/* 07EA3C 7F049F0C 10000006 */ b .L7F049F28 +/* 07EA40 7F049F10 24C61E78 */ addiu $a2, %lo(D_80031E78) # addiu $a2, $a2, 0x1e78 +.L7F049F14: +/* 07EA44 7F049F14 3C068003 */ lui $a2, %hi(D_80031EB0) +/* 07EA48 7F049F18 10000003 */ b .L7F049F28 +/* 07EA4C 7F049F1C 24C61EB0 */ addiu $a2, %lo(D_80031EB0) # addiu $a2, $a2, 0x1eb0 +.L7F049F20: +/* 07EA50 7F049F20 3C068003 */ lui $a2, %hi(D_80031EE8) +/* 07EA54 7F049F24 24C61EE8 */ addiu $a2, %lo(D_80031EE8) # addiu $a2, $a2, 0x1ee8 +def_7F049CC0: +.L7F049F28: +/* 07EA58 7F049F28 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 07EA5C 7F049F2C 00C02825 */ move $a1, $a2 +/* 07EA60 7F049F30 8FBF0014 */ lw $ra, 0x14($sp) +/* 07EA64 7F049F34 27BD0018 */ addiu $sp, $sp, 0x18 +/* 07EA68 7F049F38 03E00008 */ jr $ra +/* 07EA6C 7F049F3C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void save_img_index_to_obj_ani_slot(void) { + +} +#else +GLOBAL_ASM( +.text +glabel save_img_index_to_obj_ani_slot +/* 07EA70 7F049F40 03E00008 */ jr $ra +/* 07EA74 7F049F44 AC850008 */ sw $a1, 8($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void process_monitor_animation_microcode(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80052C68 +.word 0x40c90fdb /*6.2831855*/ +/*D:80052C6C*/ +glabel jpt_80052C6C +.word command00_reset_scroll_shift +.word command01_horizontal_scroll +.word command02_vertical_scroll +.word command03_horizontal_pos +.word command04_vertical_pos +.word command05_zoomx +.word command06_zoomy +.word command07_use_image_from_global_monitor_table +.word command08_halt_processing_for_time +.word command09_jump +.word command0A_jump_conditional +.word command0B_restart +.word command0C_break +.word command0D_colour_transition +.word command0E_set_rotation +.word command0F_rotate + +glabel D_80052CAC +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80052CB0 +.word 0x3fb50481 /*1.4141999*/ +glabel D_80052CB4 +.word 0x3f59999a /*0.85000002*/ +glabel D_80052CB8 +.word 0x3e19999a /*0.15000001*/ +glabel D_80052CBC +.word 0x3e19999a /*0.15000001*/ +glabel D_80052CC0 +.word 0x3f666666 /*0.89999998*/ +.text +glabel process_monitor_animation_microcode +/* 07EA78 7F049F48 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 07EA7C 7F049F4C AFB10044 */ sw $s1, 0x44($sp) +/* 07EA80 7F049F50 AFB00040 */ sw $s0, 0x40($sp) +/* 07EA84 7F049F54 00C08025 */ move $s0, $a2 +/* 07EA88 7F049F58 00A08825 */ move $s1, $a1 +/* 07EA8C 7F049F5C AFBF004C */ sw $ra, 0x4c($sp) +/* 07EA90 7F049F60 AFB20048 */ sw $s2, 0x48($sp) +/* 07EA94 7F049F64 F7BA0038 */ sdc1 $f26, 0x38($sp) +/* 07EA98 7F049F68 F7B80030 */ sdc1 $f24, 0x30($sp) +/* 07EA9C 7F049F6C F7B60028 */ sdc1 $f22, 0x28($sp) +/* 07EAA0 7F049F70 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 07EAA4 7F049F74 AFA400B0 */ sw $a0, 0xb0($sp) +/* 07EAA8 7F049F78 10A0031E */ beqz $a1, .L7F04ABF4 +/* 07EAAC 7F049F7C AFA700BC */ sw $a3, 0xbc($sp) +/* 07EAB0 7F049F80 94AE0000 */ lhu $t6, ($a1) +/* 07EAB4 7F049F84 24010018 */ li $at, 24 +/* 07EAB8 7F049F88 31CF00FF */ andi $t7, $t6, 0xff +/* 07EABC 7F049F8C 55E1031A */ bnel $t7, $at, .L7F04ABF8 +/* 07EAC0 7F049F90 8FBF004C */ lw $ra, 0x4c($sp) +/* 07EAC4 7F049F94 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 07EAC8 7F049F98 24040004 */ li $a0, 4 +/* 07EACC 7F049F9C 8FB800BC */ lw $t8, 0xbc($sp) +/* 07EAD0 7F049FA0 00409025 */ move $s2, $v0 +/* 07EAD4 7F049FA4 8FA400B0 */ lw $a0, 0xb0($sp) +/* 07EAD8 7F049FA8 27190008 */ addiu $t9, $t8, 8 +/* 07EADC 7F049FAC AFB900BC */ sw $t9, 0xbc($sp) +/* 07EAE0 7F049FB0 AFB800A8 */ sw $t8, 0xa8($sp) +/* 07EAE4 7F049FB4 8E280004 */ lw $t0, 4($s1) +/* 07EAE8 7F049FB8 02202825 */ move $a1, $s1 +/* 07EAEC 7F049FBC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07EAF0 7F049FC0 AFA800A4 */ sw $t0, 0xa4($sp) +/* 07EAF4 7F049FC4 3C018005 */ lui $at, %hi(D_80052C68) +/* 07EAF8 7F049FC8 C43A2C68 */ lwc1 $f26, %lo(D_80052C68)($at) +/* 07EAFC 7F049FCC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07EB00 7F049FD0 4481C000 */ mtc1 $at, $f24 +/* 07EB04 7F049FD4 3C013A80 */ li $at, 0x3A800000 # 0.000977 +/* 07EB08 7F049FD8 4481B000 */ mtc1 $at, $f22 +/* 07EB0C 7F049FDC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EB10 7F049FE0 44811000 */ mtc1 $at, $f2 +/* 07EB14 7F049FE4 4480A000 */ mtc1 $zero, $f20 +/* 07EB18 7F049FE8 AFA200A0 */ sw $v0, 0xa0($sp) +/* 07EB1C 7F049FEC 00008825 */ move $s1, $zero +/* 07EB20 7F049FF0 96020004 */ lhu $v0, 4($s0) +.L7F049FF4: +/* 07EB24 7F049FF4 8E090000 */ lw $t1, ($s0) +/* 07EB28 7F049FF8 00025080 */ sll $t2, $v0, 2 +/* 07EB2C 7F049FFC 012A1821 */ addu $v1, $t1, $t2 +/* 07EB30 7F04A000 8C6B0000 */ lw $t3, ($v1) +/* 07EB34 7F04A004 2D610010 */ sltiu $at, $t3, 0x10 +/* 07EB38 7F04A008 10200117 */ beqz $at, .L7F04A468 +/* 07EB3C 7F04A00C 000B5880 */ sll $t3, $t3, 2 +/* 07EB40 7F04A010 3C018005 */ lui $at, %hi(jpt_80052C6C) +/* 07EB44 7F04A014 002B0821 */ addu $at, $at, $t3 +/* 07EB48 7F04A018 8C2B2C6C */ lw $t3, %lo(jpt_80052C6C)($at) +/* 07EB4C 7F04A01C 01600008 */ jr $t3 +/* 07EB50 7F04A020 00000000 */ nop +command00_reset_scroll_shift: +/* 07EB54 7F04A024 244C0001 */ addiu $t4, $v0, 1 +/* 07EB58 7F04A028 E6140040 */ swc1 $f20, 0x40($s0) +/* 07EB5C 7F04A02C E6140054 */ swc1 $f20, 0x54($s0) +/* 07EB60 7F04A030 1000010D */ b .L7F04A468 +/* 07EB64 7F04A034 A60C0004 */ sh $t4, 4($s0) +command01_horizontal_scroll: +/* 07EB68 7F04A038 E614003C */ swc1 $f20, 0x3c($s0) +/* 07EB6C 7F04A03C 8C6D0008 */ lw $t5, 8($v1) +/* 07EB70 7F04A040 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EB74 7F04A044 448D2000 */ mtc1 $t5, $f4 +/* 07EB78 7F04A048 05A10004 */ bgez $t5, .L7F04A05C +/* 07EB7C 7F04A04C 468021A0 */ cvt.s.w $f6, $f4 +/* 07EB80 7F04A050 44814000 */ mtc1 $at, $f8 +/* 07EB84 7F04A054 00000000 */ nop +/* 07EB88 7F04A058 46083180 */ add.s $f6, $f6, $f8 +.L7F04A05C: +/* 07EB8C 7F04A05C 4606C283 */ div.s $f10, $f24, $f6 +/* 07EB90 7F04A060 C6000038 */ lwc1 $f0, 0x38($s0) +/* 07EB94 7F04A064 244F0003 */ addiu $t7, $v0, 3 +/* 07EB98 7F04A068 E6000044 */ swc1 $f0, 0x44($s0) +/* 07EB9C 7F04A06C E60A0040 */ swc1 $f10, 0x40($s0) +/* 07EBA0 7F04A070 8C6E0004 */ lw $t6, 4($v1) +/* 07EBA4 7F04A074 A60F0004 */ sh $t7, 4($s0) +/* 07EBA8 7F04A078 448E9000 */ mtc1 $t6, $f18 +/* 07EBAC 7F04A07C 00000000 */ nop +/* 07EBB0 7F04A080 46809120 */ cvt.s.w $f4, $f18 +/* 07EBB4 7F04A084 46162202 */ mul.s $f8, $f4, $f22 +/* 07EBB8 7F04A088 46080180 */ add.s $f6, $f0, $f8 +/* 07EBBC 7F04A08C 100000F6 */ b .L7F04A468 +/* 07EBC0 7F04A090 E6060048 */ swc1 $f6, 0x48($s0) +command02_vertical_scroll: +/* 07EBC4 7F04A094 E6140050 */ swc1 $f20, 0x50($s0) +/* 07EBC8 7F04A098 8C780008 */ lw $t8, 8($v1) +/* 07EBCC 7F04A09C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EBD0 7F04A0A0 44985000 */ mtc1 $t8, $f10 +/* 07EBD4 7F04A0A4 07010004 */ bgez $t8, .L7F04A0B8 +/* 07EBD8 7F04A0A8 468054A0 */ cvt.s.w $f18, $f10 +/* 07EBDC 7F04A0AC 44812000 */ mtc1 $at, $f4 +/* 07EBE0 7F04A0B0 00000000 */ nop +/* 07EBE4 7F04A0B4 46049480 */ add.s $f18, $f18, $f4 +.L7F04A0B8: +/* 07EBE8 7F04A0B8 4612C203 */ div.s $f8, $f24, $f18 +/* 07EBEC 7F04A0BC C600004C */ lwc1 $f0, 0x4c($s0) +/* 07EBF0 7F04A0C0 24480003 */ addiu $t0, $v0, 3 +/* 07EBF4 7F04A0C4 E6000058 */ swc1 $f0, 0x58($s0) +/* 07EBF8 7F04A0C8 E6080054 */ swc1 $f8, 0x54($s0) +/* 07EBFC 7F04A0CC 8C790004 */ lw $t9, 4($v1) +/* 07EC00 7F04A0D0 A6080004 */ sh $t0, 4($s0) +/* 07EC04 7F04A0D4 44993000 */ mtc1 $t9, $f6 +/* 07EC08 7F04A0D8 00000000 */ nop +/* 07EC0C 7F04A0DC 468032A0 */ cvt.s.w $f10, $f6 +/* 07EC10 7F04A0E0 46165102 */ mul.s $f4, $f10, $f22 +/* 07EC14 7F04A0E4 46040480 */ add.s $f18, $f0, $f4 +/* 07EC18 7F04A0E8 100000DF */ b .L7F04A468 +/* 07EC1C 7F04A0EC E612005C */ swc1 $f18, 0x5c($s0) +command03_horizontal_pos: +/* 07EC20 7F04A0F0 E614003C */ swc1 $f20, 0x3c($s0) +/* 07EC24 7F04A0F4 8C690008 */ lw $t1, 8($v1) +/* 07EC28 7F04A0F8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EC2C 7F04A0FC 44894000 */ mtc1 $t1, $f8 +/* 07EC30 7F04A100 05210004 */ bgez $t1, .L7F04A114 +/* 07EC34 7F04A104 468041A0 */ cvt.s.w $f6, $f8 +/* 07EC38 7F04A108 44815000 */ mtc1 $at, $f10 +/* 07EC3C 7F04A10C 00000000 */ nop +/* 07EC40 7F04A110 460A3180 */ add.s $f6, $f6, $f10 +.L7F04A114: +/* 07EC44 7F04A114 4606C103 */ div.s $f4, $f24, $f6 +/* 07EC48 7F04A118 C6120038 */ lwc1 $f18, 0x38($s0) +/* 07EC4C 7F04A11C 244B0003 */ addiu $t3, $v0, 3 +/* 07EC50 7F04A120 E6120044 */ swc1 $f18, 0x44($s0) +/* 07EC54 7F04A124 E6040040 */ swc1 $f4, 0x40($s0) +/* 07EC58 7F04A128 8C6A0004 */ lw $t2, 4($v1) +/* 07EC5C 7F04A12C A60B0004 */ sh $t3, 4($s0) +/* 07EC60 7F04A130 448A4000 */ mtc1 $t2, $f8 +/* 07EC64 7F04A134 00000000 */ nop +/* 07EC68 7F04A138 468042A0 */ cvt.s.w $f10, $f8 +/* 07EC6C 7F04A13C 46165182 */ mul.s $f6, $f10, $f22 +/* 07EC70 7F04A140 100000C9 */ b .L7F04A468 +/* 07EC74 7F04A144 E6060048 */ swc1 $f6, 0x48($s0) +command04_vertical_pos: +/* 07EC78 7F04A148 E6140050 */ swc1 $f20, 0x50($s0) +/* 07EC7C 7F04A14C 8C6C0008 */ lw $t4, 8($v1) +/* 07EC80 7F04A150 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EC84 7F04A154 448C2000 */ mtc1 $t4, $f4 +/* 07EC88 7F04A158 05810004 */ bgez $t4, .L7F04A16C +/* 07EC8C 7F04A15C 468024A0 */ cvt.s.w $f18, $f4 +/* 07EC90 7F04A160 44814000 */ mtc1 $at, $f8 +/* 07EC94 7F04A164 00000000 */ nop +/* 07EC98 7F04A168 46089480 */ add.s $f18, $f18, $f8 +.L7F04A16C: +/* 07EC9C 7F04A16C 4612C283 */ div.s $f10, $f24, $f18 +/* 07ECA0 7F04A170 C606004C */ lwc1 $f6, 0x4c($s0) +/* 07ECA4 7F04A174 244E0003 */ addiu $t6, $v0, 3 +/* 07ECA8 7F04A178 E6060058 */ swc1 $f6, 0x58($s0) +/* 07ECAC 7F04A17C E60A0054 */ swc1 $f10, 0x54($s0) +/* 07ECB0 7F04A180 8C6D0004 */ lw $t5, 4($v1) +/* 07ECB4 7F04A184 A60E0004 */ sh $t6, 4($s0) +/* 07ECB8 7F04A188 448D2000 */ mtc1 $t5, $f4 +/* 07ECBC 7F04A18C 00000000 */ nop +/* 07ECC0 7F04A190 46802220 */ cvt.s.w $f8, $f4 +/* 07ECC4 7F04A194 46164482 */ mul.s $f18, $f8, $f22 +/* 07ECC8 7F04A198 100000B3 */ b .L7F04A468 +/* 07ECCC 7F04A19C E612005C */ swc1 $f18, 0x5c($s0) +command05_zoomx: +/* 07ECD0 7F04A1A0 E6140014 */ swc1 $f20, 0x14($s0) +/* 07ECD4 7F04A1A4 8C6F0008 */ lw $t7, 8($v1) +/* 07ECD8 7F04A1A8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07ECDC 7F04A1AC 448F5000 */ mtc1 $t7, $f10 +/* 07ECE0 7F04A1B0 05E10004 */ bgez $t7, .L7F04A1C4 +/* 07ECE4 7F04A1B4 468051A0 */ cvt.s.w $f6, $f10 +/* 07ECE8 7F04A1B8 44812000 */ mtc1 $at, $f4 +/* 07ECEC 7F04A1BC 00000000 */ nop +/* 07ECF0 7F04A1C0 46043180 */ add.s $f6, $f6, $f4 +.L7F04A1C4: +/* 07ECF4 7F04A1C4 4606C203 */ div.s $f8, $f24, $f6 +/* 07ECF8 7F04A1C8 C6120010 */ lwc1 $f18, 0x10($s0) +/* 07ECFC 7F04A1CC 24590003 */ addiu $t9, $v0, 3 +/* 07ED00 7F04A1D0 E612001C */ swc1 $f18, 0x1c($s0) +/* 07ED04 7F04A1D4 E6080018 */ swc1 $f8, 0x18($s0) +/* 07ED08 7F04A1D8 8C780004 */ lw $t8, 4($v1) +/* 07ED0C 7F04A1DC A6190004 */ sh $t9, 4($s0) +/* 07ED10 7F04A1E0 44985000 */ mtc1 $t8, $f10 +/* 07ED14 7F04A1E4 00000000 */ nop +/* 07ED18 7F04A1E8 46805120 */ cvt.s.w $f4, $f10 +/* 07ED1C 7F04A1EC 46162182 */ mul.s $f6, $f4, $f22 +/* 07ED20 7F04A1F0 1000009D */ b .L7F04A468 +/* 07ED24 7F04A1F4 E6060020 */ swc1 $f6, 0x20($s0) +command06_zoomy: +/* 07ED28 7F04A1F8 E6140028 */ swc1 $f20, 0x28($s0) +/* 07ED2C 7F04A1FC 8C680008 */ lw $t0, 8($v1) +/* 07ED30 7F04A200 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07ED34 7F04A204 44884000 */ mtc1 $t0, $f8 +/* 07ED38 7F04A208 05010004 */ bgez $t0, .L7F04A21C +/* 07ED3C 7F04A20C 468044A0 */ cvt.s.w $f18, $f8 +/* 07ED40 7F04A210 44815000 */ mtc1 $at, $f10 +/* 07ED44 7F04A214 00000000 */ nop +/* 07ED48 7F04A218 460A9480 */ add.s $f18, $f18, $f10 +.L7F04A21C: +/* 07ED4C 7F04A21C 4612C103 */ div.s $f4, $f24, $f18 +/* 07ED50 7F04A220 C6060024 */ lwc1 $f6, 0x24($s0) +/* 07ED54 7F04A224 244A0003 */ addiu $t2, $v0, 3 +/* 07ED58 7F04A228 E6060030 */ swc1 $f6, 0x30($s0) +/* 07ED5C 7F04A22C E604002C */ swc1 $f4, 0x2c($s0) +/* 07ED60 7F04A230 8C690004 */ lw $t1, 4($v1) +/* 07ED64 7F04A234 A60A0004 */ sh $t2, 4($s0) +/* 07ED68 7F04A238 44894000 */ mtc1 $t1, $f8 +/* 07ED6C 7F04A23C 00000000 */ nop +/* 07ED70 7F04A240 468042A0 */ cvt.s.w $f10, $f8 +/* 07ED74 7F04A244 46165482 */ mul.s $f18, $f10, $f22 +/* 07ED78 7F04A248 10000087 */ b .L7F04A468 +/* 07ED7C 7F04A24C E6120034 */ swc1 $f18, 0x34($s0) +command07_use_image_from_global_monitor_table: +/* 07ED80 7F04A250 02002025 */ move $a0, $s0 +/* 07ED84 7F04A254 0FC127D0 */ jal save_img_index_to_obj_ani_slot +/* 07ED88 7F04A258 8C650004 */ lw $a1, 4($v1) +/* 07ED8C 7F04A25C 960B0004 */ lhu $t3, 4($s0) +/* 07ED90 7F04A260 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07ED94 7F04A264 44811000 */ mtc1 $at, $f2 +/* 07ED98 7F04A268 256C0002 */ addiu $t4, $t3, 2 +/* 07ED9C 7F04A26C 1000007E */ b .L7F04A468 +/* 07EDA0 7F04A270 A60C0004 */ sh $t4, 4($s0) +command08_halt_processing_for_time: +/* 07EDA4 7F04A274 86020006 */ lh $v0, 6($s0) +/* 07EDA8 7F04A278 3C0D8005 */ lui $t5, %hi(clock_timer) +/* 07EDAC 7F04A27C 0442000E */ bltzl $v0, .L7F04A2B8 +/* 07EDB0 7F04A280 8C680004 */ lw $t0, 4($v1) +/* 07EDB4 7F04A284 8DAD8374 */ lw $t5, %lo(clock_timer)($t5) +/* 07EDB8 7F04A288 004D7023 */ subu $t6, $v0, $t5 +/* 07EDBC 7F04A28C A60E0006 */ sh $t6, 6($s0) +/* 07EDC0 7F04A290 860F0006 */ lh $t7, 6($s0) +/* 07EDC4 7F04A294 05E20004 */ bltzl $t7, .L7F04A2A8 +/* 07EDC8 7F04A298 96180004 */ lhu $t8, 4($s0) +/* 07EDCC 7F04A29C 10000072 */ b .L7F04A468 +/* 07EDD0 7F04A2A0 24110001 */ li $s1, 1 +/* 07EDD4 7F04A2A4 96180004 */ lhu $t8, 4($s0) +.L7F04A2A8: +/* 07EDD8 7F04A2A8 27190002 */ addiu $t9, $t8, 2 +/* 07EDDC 7F04A2AC 1000006E */ b .L7F04A468 +/* 07EDE0 7F04A2B0 A6190004 */ sh $t9, 4($s0) +/* 07EDE4 7F04A2B4 8C680004 */ lw $t0, 4($v1) +.L7F04A2B8: +/* 07EDE8 7F04A2B8 24110001 */ li $s1, 1 +/* 07EDEC 7F04A2BC 1000006A */ b .L7F04A468 +/* 07EDF0 7F04A2C0 A6080006 */ sh $t0, 6($s0) +command09_jump: +/* 07EDF4 7F04A2C4 02002025 */ move $a0, $s0 +/* 07EDF8 7F04A2C8 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 07EDFC 7F04A2CC 8C650004 */ lw $a1, 4($v1) +/* 07EE00 7F04A2D0 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EE04 7F04A2D4 44811000 */ mtc1 $at, $f2 +/* 07EE08 7F04A2D8 10000063 */ b .L7F04A468 +/* 07EE0C 7F04A2DC 00000000 */ nop +command0A_jump_conditional: +/* 07EE10 7F04A2E0 0C002914 */ jal get_random_value +/* 07EE14 7F04A2E4 AFA30094 */ sw $v1, 0x94($sp) +/* 07EE18 7F04A2E8 8FA30094 */ lw $v1, 0x94($sp) +/* 07EE1C 7F04A2EC 00024C02 */ srl $t1, $v0, 0x10 +/* 07EE20 7F04A2F0 02002025 */ move $a0, $s0 +/* 07EE24 7F04A2F4 8C6A0008 */ lw $t2, 8($v1) +/* 07EE28 7F04A2F8 012A082B */ sltu $at, $t1, $t2 +/* 07EE2C 7F04A2FC 50200008 */ beql $at, $zero, .L7F04A320 +/* 07EE30 7F04A300 960B0004 */ lhu $t3, 4($s0) +/* 07EE34 7F04A304 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 07EE38 7F04A308 8C650004 */ lw $a1, 4($v1) +/* 07EE3C 7F04A30C 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EE40 7F04A310 44811000 */ mtc1 $at, $f2 +/* 07EE44 7F04A314 10000054 */ b .L7F04A468 +/* 07EE48 7F04A318 00000000 */ nop +/* 07EE4C 7F04A31C 960B0004 */ lhu $t3, 4($s0) +.L7F04A320: +/* 07EE50 7F04A320 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EE54 7F04A324 44811000 */ mtc1 $at, $f2 +/* 07EE58 7F04A328 256C0003 */ addiu $t4, $t3, 3 +/* 07EE5C 7F04A32C A60C0004 */ sh $t4, 4($s0) +/* 07EE60 7F04A330 1000004D */ b .L7F04A468 +/* 07EE64 7F04A334 00000000 */ nop +command0B_restart: +/* 07EE68 7F04A338 1000004B */ b .L7F04A468 +/* 07EE6C 7F04A33C A6000004 */ sh $zero, 4($s0) +command0C_break: +/* 07EE70 7F04A340 10000049 */ b .L7F04A468 +/* 07EE74 7F04A344 24110001 */ li $s1, 1 +command0D_colour_transition: +/* 07EE78 7F04A348 E614006C */ swc1 $f20, 0x6c($s0) +/* 07EE7C 7F04A34C 8C6D0008 */ lw $t5, 8($v1) +/* 07EE80 7F04A350 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EE84 7F04A354 448D2000 */ mtc1 $t5, $f4 +/* 07EE88 7F04A358 05A10004 */ bgez $t5, .L7F04A36C +/* 07EE8C 7F04A35C 468021A0 */ cvt.s.w $f6, $f4 +/* 07EE90 7F04A360 44814000 */ mtc1 $at, $f8 +/* 07EE94 7F04A364 00000000 */ nop +/* 07EE98 7F04A368 46083180 */ add.s $f6, $f6, $f8 +.L7F04A36C: +/* 07EE9C 7F04A36C 4606C283 */ div.s $f10, $f24, $f6 +/* 07EEA0 7F04A370 920E0060 */ lbu $t6, 0x60($s0) +/* 07EEA4 7F04A374 92080063 */ lbu $t0, 0x63($s0) +/* 07EEA8 7F04A378 920C0066 */ lbu $t4, 0x66($s0) +/* 07EEAC 7F04A37C A20E0061 */ sb $t6, 0x61($s0) +/* 07EEB0 7F04A380 92180069 */ lbu $t8, 0x69($s0) +/* 07EEB4 7F04A384 E60A0070 */ swc1 $f10, 0x70($s0) +/* 07EEB8 7F04A388 8C6F0004 */ lw $t7, 4($v1) +/* 07EEBC 7F04A38C A2080064 */ sb $t0, 0x64($s0) +/* 07EEC0 7F04A390 000FCE02 */ srl $t9, $t7, 0x18 +/* 07EEC4 7F04A394 A2190062 */ sb $t9, 0x62($s0) +/* 07EEC8 7F04A398 8C690004 */ lw $t1, 4($v1) +/* 07EECC 7F04A39C A20C0067 */ sb $t4, 0x67($s0) +/* 07EED0 7F04A3A0 00095C02 */ srl $t3, $t1, 0x10 +/* 07EED4 7F04A3A4 A20B0065 */ sb $t3, 0x65($s0) +/* 07EED8 7F04A3A8 8C6D0004 */ lw $t5, 4($v1) +/* 07EEDC 7F04A3AC A218006A */ sb $t8, 0x6a($s0) +/* 07EEE0 7F04A3B0 24490003 */ addiu $t1, $v0, 3 +/* 07EEE4 7F04A3B4 000D7A02 */ srl $t7, $t5, 8 +/* 07EEE8 7F04A3B8 A20F0068 */ sb $t7, 0x68($s0) +/* 07EEEC 7F04A3BC 8C680004 */ lw $t0, 4($v1) +/* 07EEF0 7F04A3C0 A6090004 */ sh $t1, 4($s0) +/* 07EEF4 7F04A3C4 10000028 */ b .L7F04A468 +/* 07EEF8 7F04A3C8 A208006B */ sb $t0, 0x6b($s0) +command0E_set_rotation: +/* 07EEFC 7F04A3CC 8C6A0004 */ lw $t2, 4($v1) +/* 07EF00 7F04A3D0 244B0002 */ addiu $t3, $v0, 2 +/* 07EF04 7F04A3D4 A60B0004 */ sh $t3, 4($s0) +/* 07EF08 7F04A3D8 448A9000 */ mtc1 $t2, $f18 +/* 07EF0C 7F04A3DC 00000000 */ nop +/* 07EF10 7F04A3E0 46809120 */ cvt.s.w $f4, $f18 +/* 07EF14 7F04A3E4 461A2202 */ mul.s $f8, $f4, $f26 +/* 07EF18 7F04A3E8 46024183 */ div.s $f6, $f8, $f2 +/* 07EF1C 7F04A3EC 1000001E */ b .L7F04A468 +/* 07EF20 7F04A3F0 E606000C */ swc1 $f6, 0xc($s0) +command0F_rotate: +/* 07EF24 7F04A3F4 8C6C0004 */ lw $t4, 4($v1) +/* 07EF28 7F04A3F8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07EF2C 7F04A3FC C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07EF30 7F04A400 448C9000 */ mtc1 $t4, $f18 +/* 07EF34 7F04A404 00000000 */ nop +/* 07EF38 7F04A408 46809120 */ cvt.s.w $f4, $f18 +/* 07EF3C 7F04A40C 46045202 */ mul.s $f8, $f10, $f4 +/* 07EF40 7F04A410 C60A000C */ lwc1 $f10, 0xc($s0) +/* 07EF44 7F04A414 461A4182 */ mul.s $f6, $f8, $f26 +/* 07EF48 7F04A418 46023483 */ div.s $f18, $f6, $f2 +/* 07EF4C 7F04A41C 46125100 */ add.s $f4, $f10, $f18 +/* 07EF50 7F04A420 E604000C */ swc1 $f4, 0xc($s0) +/* 07EF54 7F04A424 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07EF58 7F04A428 460CD03E */ c.le.s $f26, $f12 +/* 07EF5C 7F04A42C 00000000 */ nop +/* 07EF60 7F04A430 45020005 */ bc1fl .L7F04A448 +/* 07EF64 7F04A434 4614603C */ c.lt.s $f12, $f20 +/* 07EF68 7F04A438 461A6201 */ sub.s $f8, $f12, $f26 +/* 07EF6C 7F04A43C E608000C */ swc1 $f8, 0xc($s0) +/* 07EF70 7F04A440 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07EF74 7F04A444 4614603C */ c.lt.s $f12, $f20 +.L7F04A448: +/* 07EF78 7F04A448 00000000 */ nop +/* 07EF7C 7F04A44C 45020004 */ bc1fl .L7F04A460 +/* 07EF80 7F04A450 960D0004 */ lhu $t5, 4($s0) +/* 07EF84 7F04A454 461A6180 */ add.s $f6, $f12, $f26 +/* 07EF88 7F04A458 E606000C */ swc1 $f6, 0xc($s0) +/* 07EF8C 7F04A45C 960D0004 */ lhu $t5, 4($s0) +.L7F04A460: +/* 07EF90 7F04A460 25AE0002 */ addiu $t6, $t5, 2 +/* 07EF94 7F04A464 A60E0004 */ sh $t6, 4($s0) +def_7F04A01C: +.L7F04A468: +/* 07EF98 7F04A468 5220FEE2 */ beql $s1, $zero, .L7F049FF4 +/* 07EF9C 7F04A46C 96020004 */ lhu $v0, 4($s0) +/* 07EFA0 7F04A470 C6000018 */ lwc1 $f0, 0x18($s0) +/* 07EFA4 7F04A474 4600A03C */ c.lt.s $f20, $f0 +/* 07EFA8 7F04A478 00000000 */ nop +/* 07EFAC 7F04A47C 45000017 */ bc1f .L7F04A4DC +/* 07EFB0 7F04A480 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 07EFB4 7F04A484 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 07EFB8 7F04A488 C4520000 */ lwc1 $f18, ($v0) +/* 07EFBC 7F04A48C C60A0014 */ lwc1 $f10, 0x14($s0) +/* 07EFC0 7F04A490 46120102 */ mul.s $f4, $f0, $f18 +/* 07EFC4 7F04A494 46045200 */ add.s $f8, $f10, $f4 +/* 07EFC8 7F04A498 E6080014 */ swc1 $f8, 0x14($s0) +/* 07EFCC 7F04A49C C6020014 */ lwc1 $f2, 0x14($s0) +/* 07EFD0 7F04A4A0 4618103C */ c.lt.s $f2, $f24 +/* 07EFD4 7F04A4A4 00000000 */ nop +/* 07EFD8 7F04A4A8 45020009 */ bc1fl .L7F04A4D0 +/* 07EFDC 7F04A4AC C6080020 */ lwc1 $f8, 0x20($s0) +/* 07EFE0 7F04A4B0 C600001C */ lwc1 $f0, 0x1c($s0) +/* 07EFE4 7F04A4B4 C6060020 */ lwc1 $f6, 0x20($s0) +/* 07EFE8 7F04A4B8 46003481 */ sub.s $f18, $f6, $f0 +/* 07EFEC 7F04A4BC 46029282 */ mul.s $f10, $f18, $f2 +/* 07EFF0 7F04A4C0 460A0100 */ add.s $f4, $f0, $f10 +/* 07EFF4 7F04A4C4 10000005 */ b .L7F04A4DC +/* 07EFF8 7F04A4C8 E6040010 */ swc1 $f4, 0x10($s0) +/* 07EFFC 7F04A4CC C6080020 */ lwc1 $f8, 0x20($s0) +.L7F04A4D0: +/* 07F000 7F04A4D0 E6180014 */ swc1 $f24, 0x14($s0) +/* 07F004 7F04A4D4 E6140018 */ swc1 $f20, 0x18($s0) +/* 07F008 7F04A4D8 E6080010 */ swc1 $f8, 0x10($s0) +.L7F04A4DC: +/* 07F00C 7F04A4DC C600002C */ lwc1 $f0, 0x2c($s0) +/* 07F010 7F04A4E0 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 07F014 7F04A4E4 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 07F018 7F04A4E8 4600A03C */ c.lt.s $f20, $f0 +/* 07F01C 7F04A4EC 00000000 */ nop +/* 07F020 7F04A4F0 45020017 */ bc1fl .L7F04A550 +/* 07F024 7F04A4F4 C6000040 */ lwc1 $f0, 0x40($s0) +/* 07F028 7F04A4F8 C4520000 */ lwc1 $f18, ($v0) +/* 07F02C 7F04A4FC C6060028 */ lwc1 $f6, 0x28($s0) +/* 07F030 7F04A500 46120282 */ mul.s $f10, $f0, $f18 +/* 07F034 7F04A504 460A3100 */ add.s $f4, $f6, $f10 +/* 07F038 7F04A508 E6040028 */ swc1 $f4, 0x28($s0) +/* 07F03C 7F04A50C C6020028 */ lwc1 $f2, 0x28($s0) +/* 07F040 7F04A510 4618103C */ c.lt.s $f2, $f24 +/* 07F044 7F04A514 00000000 */ nop +/* 07F048 7F04A518 45020009 */ bc1fl .L7F04A540 +/* 07F04C 7F04A51C C6040034 */ lwc1 $f4, 0x34($s0) +/* 07F050 7F04A520 C6000030 */ lwc1 $f0, 0x30($s0) +/* 07F054 7F04A524 C6080034 */ lwc1 $f8, 0x34($s0) +/* 07F058 7F04A528 46004481 */ sub.s $f18, $f8, $f0 +/* 07F05C 7F04A52C 46029182 */ mul.s $f6, $f18, $f2 +/* 07F060 7F04A530 46060280 */ add.s $f10, $f0, $f6 +/* 07F064 7F04A534 10000005 */ b .L7F04A54C +/* 07F068 7F04A538 E60A0024 */ swc1 $f10, 0x24($s0) +/* 07F06C 7F04A53C C6040034 */ lwc1 $f4, 0x34($s0) +.L7F04A540: +/* 07F070 7F04A540 E6180028 */ swc1 $f24, 0x28($s0) +/* 07F074 7F04A544 E614002C */ swc1 $f20, 0x2c($s0) +/* 07F078 7F04A548 E6040024 */ swc1 $f4, 0x24($s0) +.L7F04A54C: +/* 07F07C 7F04A54C C6000040 */ lwc1 $f0, 0x40($s0) +.L7F04A550: +/* 07F080 7F04A550 4600A03C */ c.lt.s $f20, $f0 +/* 07F084 7F04A554 00000000 */ nop +/* 07F088 7F04A558 45020017 */ bc1fl .L7F04A5B8 +/* 07F08C 7F04A55C C6000054 */ lwc1 $f0, 0x54($s0) +/* 07F090 7F04A560 C4520000 */ lwc1 $f18, ($v0) +/* 07F094 7F04A564 C608003C */ lwc1 $f8, 0x3c($s0) +/* 07F098 7F04A568 46120182 */ mul.s $f6, $f0, $f18 +/* 07F09C 7F04A56C 46064280 */ add.s $f10, $f8, $f6 +/* 07F0A0 7F04A570 E60A003C */ swc1 $f10, 0x3c($s0) +/* 07F0A4 7F04A574 C602003C */ lwc1 $f2, 0x3c($s0) +/* 07F0A8 7F04A578 4618103C */ c.lt.s $f2, $f24 +/* 07F0AC 7F04A57C 00000000 */ nop +/* 07F0B0 7F04A580 45020009 */ bc1fl .L7F04A5A8 +/* 07F0B4 7F04A584 C60A0048 */ lwc1 $f10, 0x48($s0) +/* 07F0B8 7F04A588 C6000044 */ lwc1 $f0, 0x44($s0) +/* 07F0BC 7F04A58C C6040048 */ lwc1 $f4, 0x48($s0) +/* 07F0C0 7F04A590 46002481 */ sub.s $f18, $f4, $f0 +/* 07F0C4 7F04A594 46029202 */ mul.s $f8, $f18, $f2 +/* 07F0C8 7F04A598 46080180 */ add.s $f6, $f0, $f8 +/* 07F0CC 7F04A59C 10000005 */ b .L7F04A5B4 +/* 07F0D0 7F04A5A0 E6060038 */ swc1 $f6, 0x38($s0) +/* 07F0D4 7F04A5A4 C60A0048 */ lwc1 $f10, 0x48($s0) +.L7F04A5A8: +/* 07F0D8 7F04A5A8 E618003C */ swc1 $f24, 0x3c($s0) +/* 07F0DC 7F04A5AC E6140040 */ swc1 $f20, 0x40($s0) +/* 07F0E0 7F04A5B0 E60A0038 */ swc1 $f10, 0x38($s0) +.L7F04A5B4: +/* 07F0E4 7F04A5B4 C6000054 */ lwc1 $f0, 0x54($s0) +.L7F04A5B8: +/* 07F0E8 7F04A5B8 4600A03C */ c.lt.s $f20, $f0 +/* 07F0EC 7F04A5BC 00000000 */ nop +/* 07F0F0 7F04A5C0 45020017 */ bc1fl .L7F04A620 +/* 07F0F4 7F04A5C4 C6020070 */ lwc1 $f2, 0x70($s0) +/* 07F0F8 7F04A5C8 C4520000 */ lwc1 $f18, ($v0) +/* 07F0FC 7F04A5CC C6040050 */ lwc1 $f4, 0x50($s0) +/* 07F100 7F04A5D0 46120202 */ mul.s $f8, $f0, $f18 +/* 07F104 7F04A5D4 46082180 */ add.s $f6, $f4, $f8 +/* 07F108 7F04A5D8 E6060050 */ swc1 $f6, 0x50($s0) +/* 07F10C 7F04A5DC C6020050 */ lwc1 $f2, 0x50($s0) +/* 07F110 7F04A5E0 4618103C */ c.lt.s $f2, $f24 +/* 07F114 7F04A5E4 00000000 */ nop +/* 07F118 7F04A5E8 45020009 */ bc1fl .L7F04A610 +/* 07F11C 7F04A5EC C606005C */ lwc1 $f6, 0x5c($s0) +/* 07F120 7F04A5F0 C6000058 */ lwc1 $f0, 0x58($s0) +/* 07F124 7F04A5F4 C60A005C */ lwc1 $f10, 0x5c($s0) +/* 07F128 7F04A5F8 46005481 */ sub.s $f18, $f10, $f0 +/* 07F12C 7F04A5FC 46029102 */ mul.s $f4, $f18, $f2 +/* 07F130 7F04A600 46040200 */ add.s $f8, $f0, $f4 +/* 07F134 7F04A604 10000005 */ b .L7F04A61C +/* 07F138 7F04A608 E608004C */ swc1 $f8, 0x4c($s0) +/* 07F13C 7F04A60C C606005C */ lwc1 $f6, 0x5c($s0) +.L7F04A610: +/* 07F140 7F04A610 E6180050 */ swc1 $f24, 0x50($s0) +/* 07F144 7F04A614 E6140054 */ swc1 $f20, 0x54($s0) +/* 07F148 7F04A618 E606004C */ swc1 $f6, 0x4c($s0) +.L7F04A61C: +/* 07F14C 7F04A61C C6020070 */ lwc1 $f2, 0x70($s0) +.L7F04A620: +/* 07F150 7F04A620 4602A03C */ c.lt.s $f20, $f2 +/* 07F154 7F04A624 00000000 */ nop +/* 07F158 7F04A628 4502003F */ bc1fl .L7F04A728 +/* 07F15C 7F04A62C 8FAA00A0 */ lw $t2, 0xa0($sp) +/* 07F160 7F04A630 C4520000 */ lwc1 $f18, ($v0) +/* 07F164 7F04A634 C60A006C */ lwc1 $f10, 0x6c($s0) +/* 07F168 7F04A638 46121102 */ mul.s $f4, $f2, $f18 +/* 07F16C 7F04A63C 46045200 */ add.s $f8, $f10, $f4 +/* 07F170 7F04A640 E608006C */ swc1 $f8, 0x6c($s0) +/* 07F174 7F04A644 C600006C */ lwc1 $f0, 0x6c($s0) +/* 07F178 7F04A648 4618003C */ c.lt.s $f0, $f24 +/* 07F17C 7F04A64C 00000000 */ nop +/* 07F180 7F04A650 4502002B */ bc1fl .L7F04A700 +/* 07F184 7F04A654 920F0062 */ lbu $t7, 0x62($s0) +/* 07F188 7F04A658 92020061 */ lbu $v0, 0x61($s0) +/* 07F18C 7F04A65C 920F0062 */ lbu $t7, 0x62($s0) +/* 07F190 7F04A660 92030064 */ lbu $v1, 0x64($s0) +/* 07F194 7F04A664 920A0065 */ lbu $t2, 0x65($s0) +/* 07F198 7F04A668 01E2C023 */ subu $t8, $t7, $v0 +/* 07F19C 7F04A66C 44983000 */ mtc1 $t8, $f6 +/* 07F1A0 7F04A670 01435823 */ subu $t3, $t2, $v1 +/* 07F1A4 7F04A674 448B4000 */ mtc1 $t3, $f8 +/* 07F1A8 7F04A678 468034A0 */ cvt.s.w $f18, $f6 +/* 07F1AC 7F04A67C 920F0068 */ lbu $t7, 0x68($s0) +/* 07F1B0 7F04A680 92040067 */ lbu $a0, 0x67($s0) +/* 07F1B4 7F04A684 920A006B */ lbu $t2, 0x6b($s0) +/* 07F1B8 7F04A688 9205006A */ lbu $a1, 0x6a($s0) +/* 07F1BC 7F04A68C 468041A0 */ cvt.s.w $f6, $f8 +/* 07F1C0 7F04A690 46009282 */ mul.s $f10, $f18, $f0 +/* 07F1C4 7F04A694 01E4C023 */ subu $t8, $t7, $a0 +/* 07F1C8 7F04A698 01455823 */ subu $t3, $t2, $a1 +/* 07F1CC 7F04A69C 46003482 */ mul.s $f18, $f6, $f0 +/* 07F1D0 7F04A6A0 4600510D */ trunc.w.s $f4, $f10 +/* 07F1D4 7F04A6A4 4600928D */ trunc.w.s $f10, $f18 +/* 07F1D8 7F04A6A8 44082000 */ mfc1 $t0, $f4 +/* 07F1DC 7F04A6AC 44982000 */ mtc1 $t8, $f4 +/* 07F1E0 7F04A6B0 440D5000 */ mfc1 $t5, $f10 +/* 07F1E4 7F04A6B4 46802220 */ cvt.s.w $f8, $f4 +/* 07F1E8 7F04A6B8 448B5000 */ mtc1 $t3, $f10 +/* 07F1EC 7F04A6BC 00484821 */ addu $t1, $v0, $t0 +/* 07F1F0 7F04A6C0 006D7021 */ addu $t6, $v1, $t5 +/* 07F1F4 7F04A6C4 A2090060 */ sb $t1, 0x60($s0) +/* 07F1F8 7F04A6C8 46805120 */ cvt.s.w $f4, $f10 +/* 07F1FC 7F04A6CC 46004182 */ mul.s $f6, $f8, $f0 +/* 07F200 7F04A6D0 A20E0063 */ sb $t6, 0x63($s0) +/* 07F204 7F04A6D4 46002202 */ mul.s $f8, $f4, $f0 +/* 07F208 7F04A6D8 4600348D */ trunc.w.s $f18, $f6 +/* 07F20C 7F04A6DC 4600418D */ trunc.w.s $f6, $f8 +/* 07F210 7F04A6E0 44089000 */ mfc1 $t0, $f18 +/* 07F214 7F04A6E4 440D3000 */ mfc1 $t5, $f6 +/* 07F218 7F04A6E8 00884821 */ addu $t1, $a0, $t0 +/* 07F21C 7F04A6EC A2090066 */ sb $t1, 0x66($s0) +/* 07F220 7F04A6F0 00AD7021 */ addu $t6, $a1, $t5 +/* 07F224 7F04A6F4 1000000B */ b .L7F04A724 +/* 07F228 7F04A6F8 A20E0069 */ sb $t6, 0x69($s0) +/* 07F22C 7F04A6FC 920F0062 */ lbu $t7, 0x62($s0) +.L7F04A700: +/* 07F230 7F04A700 92180065 */ lbu $t8, 0x65($s0) +/* 07F234 7F04A704 92190068 */ lbu $t9, 0x68($s0) +/* 07F238 7F04A708 9208006B */ lbu $t0, 0x6b($s0) +/* 07F23C 7F04A70C E618006C */ swc1 $f24, 0x6c($s0) +/* 07F240 7F04A710 E6140070 */ swc1 $f20, 0x70($s0) +/* 07F244 7F04A714 A20F0060 */ sb $t7, 0x60($s0) +/* 07F248 7F04A718 A2180063 */ sb $t8, 0x63($s0) +/* 07F24C 7F04A71C A2190066 */ sb $t9, 0x66($s0) +/* 07F250 7F04A720 A2080069 */ sb $t0, 0x69($s0) +.L7F04A724: +/* 07F254 7F04A724 8FAA00A0 */ lw $t2, 0xa0($sp) +.L7F04A728: +/* 07F258 7F04A728 8FA300A4 */ lw $v1, 0xa4($sp) +/* 07F25C 7F04A72C 8FA900BC */ lw $t1, 0xbc($sp) +/* 07F260 7F04A730 AD520000 */ sw $s2, ($t2) +/* 07F264 7F04A734 3C0F8009 */ lui $t7, %hi(monitorimages) +/* 07F268 7F04A738 AD490004 */ sw $t1, 4($t2) +/* 07F26C 7F04A73C 8C6B0008 */ lw $t3, 8($v1) +/* 07F270 7F04A740 8D610000 */ lw $at, ($t3) +/* 07F274 7F04A744 AE410000 */ sw $at, ($s2) +/* 07F278 7F04A748 8D6D0004 */ lw $t5, 4($t3) +/* 07F27C 7F04A74C AE4D0004 */ sw $t5, 4($s2) +/* 07F280 7F04A750 8D610008 */ lw $at, 8($t3) +/* 07F284 7F04A754 AE410008 */ sw $at, 8($s2) +/* 07F288 7F04A758 8D6D000C */ lw $t5, 0xc($t3) +/* 07F28C 7F04A75C AE4D000C */ sw $t5, 0xc($s2) +/* 07F290 7F04A760 8C6E0008 */ lw $t6, 8($v1) +/* 07F294 7F04A764 8DC10010 */ lw $at, 0x10($t6) +/* 07F298 7F04A768 AE410010 */ sw $at, 0x10($s2) +/* 07F29C 7F04A76C 8DD80014 */ lw $t8, 0x14($t6) +/* 07F2A0 7F04A770 AE580014 */ sw $t8, 0x14($s2) +/* 07F2A4 7F04A774 8DC10018 */ lw $at, 0x18($t6) +/* 07F2A8 7F04A778 AE410018 */ sw $at, 0x18($s2) +/* 07F2AC 7F04A77C 8DD8001C */ lw $t8, 0x1c($t6) +/* 07F2B0 7F04A780 AE58001C */ sw $t8, 0x1c($s2) +/* 07F2B4 7F04A784 8C790008 */ lw $t9, 8($v1) +/* 07F2B8 7F04A788 8F210020 */ lw $at, 0x20($t9) +/* 07F2BC 7F04A78C AE410020 */ sw $at, 0x20($s2) +/* 07F2C0 7F04A790 8F290024 */ lw $t1, 0x24($t9) +/* 07F2C4 7F04A794 AE490024 */ sw $t1, 0x24($s2) +/* 07F2C8 7F04A798 8F210028 */ lw $at, 0x28($t9) +/* 07F2CC 7F04A79C AE410028 */ sw $at, 0x28($s2) +/* 07F2D0 7F04A7A0 8F29002C */ lw $t1, 0x2c($t9) +/* 07F2D4 7F04A7A4 AE49002C */ sw $t1, 0x2c($s2) +/* 07F2D8 7F04A7A8 8C6A0008 */ lw $t2, 8($v1) +/* 07F2DC 7F04A7AC 8D410030 */ lw $at, 0x30($t2) +/* 07F2E0 7F04A7B0 AE410030 */ sw $at, 0x30($s2) +/* 07F2E4 7F04A7B4 8D4B0034 */ lw $t3, 0x34($t2) +/* 07F2E8 7F04A7B8 AE4B0034 */ sw $t3, 0x34($s2) +/* 07F2EC 7F04A7BC 8D410038 */ lw $at, 0x38($t2) +/* 07F2F0 7F04A7C0 AE410038 */ sw $at, 0x38($s2) +/* 07F2F4 7F04A7C4 8D4B003C */ lw $t3, 0x3c($t2) +/* 07F2F8 7F04A7C8 AE4B003C */ sw $t3, 0x3c($s2) +/* 07F2FC 7F04A7CC 8E020008 */ lw $v0, 8($s0) +/* 07F300 7F04A7D0 2C410064 */ sltiu $at, $v0, 0x64 +/* 07F304 7F04A7D4 10200007 */ beqz $at, .L7F04A7F4 +/* 07F308 7F04A7D8 00408825 */ move $s1, $v0 +/* 07F30C 7F04A7DC 00026880 */ sll $t5, $v0, 2 +/* 07F310 7F04A7E0 8DEFD120 */ lw $t7, %lo(monitorimages)($t7) +/* 07F314 7F04A7E4 01A26823 */ subu $t5, $t5, $v0 +/* 07F318 7F04A7E8 000D6880 */ sll $t5, $t5, 2 +/* 07F31C 7F04A7EC 10000001 */ b .L7F04A7F4 +/* 07F320 7F04A7F0 01AF8821 */ addu $s1, $t5, $t7 +.L7F04A7F4: +/* 07F324 7F04A7F4 122000A9 */ beqz $s1, .L7F04AA9C +/* 07F328 7F04A7F8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07F32C 7F04A7FC 44810000 */ mtc1 $at, $f0 +/* 07F330 7F04A800 C6120010 */ lwc1 $f18, 0x10($s0) +/* 07F334 7F04A804 C60A0024 */ lwc1 $f10, 0x24($s0) +/* 07F338 7F04A808 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07F33C 7F04A80C 46009582 */ mul.s $f22, $f18, $f0 +/* 07F340 7F04A810 460CA032 */ c.eq.s $f20, $f12 +/* 07F344 7F04A814 46005602 */ mul.s $f24, $f10, $f0 +/* 07F348 7F04A818 4600B386 */ mov.s $f14, $f22 +/* 07F34C 7F04A81C 45010015 */ bc1t .L7F04A874 +/* 07F350 7F04A820 4600C406 */ mov.s $f16, $f24 +/* 07F354 7F04A824 E7AE0054 */ swc1 $f14, 0x54($sp) +/* 07F358 7F04A828 0FC15FA8 */ jal cosf +/* 07F35C 7F04A82C E7B00050 */ swc1 $f16, 0x50($sp) +/* 07F360 7F04A830 3C018005 */ lui $at, %hi(D_80052CB0) +/* 07F364 7F04A834 C43A2CB0 */ lwc1 $f26, %lo(D_80052CB0)($at) +/* 07F368 7F04A838 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07F36C 7F04A83C 461A0502 */ mul.s $f20, $f0, $f26 +/* 07F370 7F04A840 0FC15FAB */ jal sinf +/* 07F374 7F04A844 00000000 */ nop +/* 07F378 7F04A848 4614B582 */ mul.s $f22, $f22, $f20 +/* 07F37C 7F04A84C C7AE0054 */ lwc1 $f14, 0x54($sp) +/* 07F380 7F04A850 C7B00050 */ lwc1 $f16, 0x50($sp) +/* 07F384 7F04A854 461A0082 */ mul.s $f2, $f0, $f26 +/* 07F388 7F04A858 00000000 */ nop +/* 07F38C 7F04A85C 4602C602 */ mul.s $f24, $f24, $f2 +/* 07F390 7F04A860 00000000 */ nop +/* 07F394 7F04A864 46027382 */ mul.s $f14, $f14, $f2 +/* 07F398 7F04A868 00000000 */ nop +/* 07F39C 7F04A86C 46148402 */ mul.s $f16, $f16, $f20 +/* 07F3A0 7F04A870 00000000 */ nop +.L7F04A874: +/* 07F3A4 7F04A874 922E0004 */ lbu $t6, 4($s1) +/* 07F3A8 7F04A878 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 07F3AC 7F04A87C 44810000 */ mtc1 $at, $f0 +/* 07F3B0 7F04A880 448E4000 */ mtc1 $t6, $f8 +/* 07F3B4 7F04A884 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F3B8 7F04A888 05C10004 */ bgez $t6, .L7F04A89C +/* 07F3BC 7F04A88C 468041A0 */ cvt.s.w $f6, $f8 +/* 07F3C0 7F04A890 44819000 */ mtc1 $at, $f18 +/* 07F3C4 7F04A894 00000000 */ nop +/* 07F3C8 7F04A898 46123180 */ add.s $f6, $f6, $f18 +.L7F04A89C: +/* 07F3CC 7F04A89C C60A0038 */ lwc1 $f10, 0x38($s0) +/* 07F3D0 7F04A8A0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F3D4 7F04A8A4 46165100 */ add.s $f4, $f10, $f22 +/* 07F3D8 7F04A8A8 46043202 */ mul.s $f8, $f6, $f4 +/* 07F3DC 7F04A8AC 00000000 */ nop +/* 07F3E0 7F04A8B0 46004482 */ mul.s $f18, $f8, $f0 +/* 07F3E4 7F04A8B4 4600928D */ trunc.w.s $f10, $f18 +/* 07F3E8 7F04A8B8 44085000 */ mfc1 $t0, $f10 +/* 07F3EC 7F04A8BC 00000000 */ nop +/* 07F3F0 7F04A8C0 A6480008 */ sh $t0, 8($s2) +/* 07F3F4 7F04A8C4 92390005 */ lbu $t9, 5($s1) +/* 07F3F8 7F04A8C8 44993000 */ mtc1 $t9, $f6 +/* 07F3FC 7F04A8CC 07210004 */ bgez $t9, .L7F04A8E0 +/* 07F400 7F04A8D0 46803120 */ cvt.s.w $f4, $f6 +/* 07F404 7F04A8D4 44814000 */ mtc1 $at, $f8 +/* 07F408 7F04A8D8 00000000 */ nop +/* 07F40C 7F04A8DC 46082100 */ add.s $f4, $f4, $f8 +.L7F04A8E0: +/* 07F410 7F04A8E0 C612004C */ lwc1 $f18, 0x4c($s0) +/* 07F414 7F04A8E4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F418 7F04A8E8 46189280 */ add.s $f10, $f18, $f24 +/* 07F41C 7F04A8EC 460A2182 */ mul.s $f6, $f4, $f10 +/* 07F420 7F04A8F0 00000000 */ nop +/* 07F424 7F04A8F4 46003202 */ mul.s $f8, $f6, $f0 +/* 07F428 7F04A8F8 4600448D */ trunc.w.s $f18, $f8 +/* 07F42C 7F04A8FC 440C9000 */ mfc1 $t4, $f18 +/* 07F430 7F04A900 00000000 */ nop +/* 07F434 7F04A904 A64C000A */ sh $t4, 0xa($s2) +/* 07F438 7F04A908 922A0004 */ lbu $t2, 4($s1) +/* 07F43C 7F04A90C 448A2000 */ mtc1 $t2, $f4 +/* 07F440 7F04A910 05410004 */ bgez $t2, .L7F04A924 +/* 07F444 7F04A914 468022A0 */ cvt.s.w $f10, $f4 +/* 07F448 7F04A918 44813000 */ mtc1 $at, $f6 +/* 07F44C 7F04A91C 00000000 */ nop +/* 07F450 7F04A920 46065280 */ add.s $f10, $f10, $f6 +.L7F04A924: +/* 07F454 7F04A924 C6080038 */ lwc1 $f8, 0x38($s0) +/* 07F458 7F04A928 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F45C 7F04A92C 460E4481 */ sub.s $f18, $f8, $f14 +/* 07F460 7F04A930 46125102 */ mul.s $f4, $f10, $f18 +/* 07F464 7F04A934 00000000 */ nop +/* 07F468 7F04A938 46002182 */ mul.s $f6, $f4, $f0 +/* 07F46C 7F04A93C 4600320D */ trunc.w.s $f8, $f6 +/* 07F470 7F04A940 440D4000 */ mfc1 $t5, $f8 +/* 07F474 7F04A944 00000000 */ nop +/* 07F478 7F04A948 A64D0018 */ sh $t5, 0x18($s2) +/* 07F47C 7F04A94C 922F0005 */ lbu $t7, 5($s1) +/* 07F480 7F04A950 448F5000 */ mtc1 $t7, $f10 +/* 07F484 7F04A954 05E10004 */ bgez $t7, .L7F04A968 +/* 07F488 7F04A958 468054A0 */ cvt.s.w $f18, $f10 +/* 07F48C 7F04A95C 44812000 */ mtc1 $at, $f4 +/* 07F490 7F04A960 00000000 */ nop +/* 07F494 7F04A964 46049480 */ add.s $f18, $f18, $f4 +.L7F04A968: +/* 07F498 7F04A968 C606004C */ lwc1 $f6, 0x4c($s0) +/* 07F49C 7F04A96C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F4A0 7F04A970 46103200 */ add.s $f8, $f6, $f16 +/* 07F4A4 7F04A974 46089282 */ mul.s $f10, $f18, $f8 +/* 07F4A8 7F04A978 00000000 */ nop +/* 07F4AC 7F04A97C 46005102 */ mul.s $f4, $f10, $f0 +/* 07F4B0 7F04A980 4600218D */ trunc.w.s $f6, $f4 +/* 07F4B4 7F04A984 44183000 */ mfc1 $t8, $f6 +/* 07F4B8 7F04A988 00000000 */ nop +/* 07F4BC 7F04A98C A658001A */ sh $t8, 0x1a($s2) +/* 07F4C0 7F04A990 92280004 */ lbu $t0, 4($s1) +/* 07F4C4 7F04A994 44889000 */ mtc1 $t0, $f18 +/* 07F4C8 7F04A998 05010004 */ bgez $t0, .L7F04A9AC +/* 07F4CC 7F04A99C 46809220 */ cvt.s.w $f8, $f18 +/* 07F4D0 7F04A9A0 44815000 */ mtc1 $at, $f10 +/* 07F4D4 7F04A9A4 00000000 */ nop +/* 07F4D8 7F04A9A8 460A4200 */ add.s $f8, $f8, $f10 +.L7F04A9AC: +/* 07F4DC 7F04A9AC C6040038 */ lwc1 $f4, 0x38($s0) +/* 07F4E0 7F04A9B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F4E4 7F04A9B4 46162181 */ sub.s $f6, $f4, $f22 +/* 07F4E8 7F04A9B8 46064482 */ mul.s $f18, $f8, $f6 +/* 07F4EC 7F04A9BC 00000000 */ nop +/* 07F4F0 7F04A9C0 46009282 */ mul.s $f10, $f18, $f0 +/* 07F4F4 7F04A9C4 4600510D */ trunc.w.s $f4, $f10 +/* 07F4F8 7F04A9C8 44092000 */ mfc1 $t1, $f4 +/* 07F4FC 7F04A9CC 00000000 */ nop +/* 07F500 7F04A9D0 A6490028 */ sh $t1, 0x28($s2) +/* 07F504 7F04A9D4 922C0005 */ lbu $t4, 5($s1) +/* 07F508 7F04A9D8 448C4000 */ mtc1 $t4, $f8 +/* 07F50C 7F04A9DC 05810004 */ bgez $t4, .L7F04A9F0 +/* 07F510 7F04A9E0 468041A0 */ cvt.s.w $f6, $f8 +/* 07F514 7F04A9E4 44819000 */ mtc1 $at, $f18 +/* 07F518 7F04A9E8 00000000 */ nop +/* 07F51C 7F04A9EC 46123180 */ add.s $f6, $f6, $f18 +.L7F04A9F0: +/* 07F520 7F04A9F0 C60A004C */ lwc1 $f10, 0x4c($s0) +/* 07F524 7F04A9F4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F528 7F04A9F8 46185101 */ sub.s $f4, $f10, $f24 +/* 07F52C 7F04A9FC 46043202 */ mul.s $f8, $f6, $f4 +/* 07F530 7F04AA00 00000000 */ nop +/* 07F534 7F04AA04 46004482 */ mul.s $f18, $f8, $f0 +/* 07F538 7F04AA08 4600928D */ trunc.w.s $f10, $f18 +/* 07F53C 7F04AA0C 440B5000 */ mfc1 $t3, $f10 +/* 07F540 7F04AA10 00000000 */ nop +/* 07F544 7F04AA14 A64B002A */ sh $t3, 0x2a($s2) +/* 07F548 7F04AA18 922D0004 */ lbu $t5, 4($s1) +/* 07F54C 7F04AA1C 448D3000 */ mtc1 $t5, $f6 +/* 07F550 7F04AA20 05A10004 */ bgez $t5, .L7F04AA34 +/* 07F554 7F04AA24 46803120 */ cvt.s.w $f4, $f6 +/* 07F558 7F04AA28 44814000 */ mtc1 $at, $f8 +/* 07F55C 7F04AA2C 00000000 */ nop +/* 07F560 7F04AA30 46082100 */ add.s $f4, $f4, $f8 +.L7F04AA34: +/* 07F564 7F04AA34 C6120038 */ lwc1 $f18, 0x38($s0) +/* 07F568 7F04AA38 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F56C 7F04AA3C 460E9280 */ add.s $f10, $f18, $f14 +/* 07F570 7F04AA40 460A2182 */ mul.s $f6, $f4, $f10 +/* 07F574 7F04AA44 00000000 */ nop +/* 07F578 7F04AA48 46003202 */ mul.s $f8, $f6, $f0 +/* 07F57C 7F04AA4C 4600448D */ trunc.w.s $f18, $f8 +/* 07F580 7F04AA50 440E9000 */ mfc1 $t6, $f18 +/* 07F584 7F04AA54 00000000 */ nop +/* 07F588 7F04AA58 A64E0038 */ sh $t6, 0x38($s2) +/* 07F58C 7F04AA5C 92380005 */ lbu $t8, 5($s1) +/* 07F590 7F04AA60 44982000 */ mtc1 $t8, $f4 +/* 07F594 7F04AA64 07010004 */ bgez $t8, .L7F04AA78 +/* 07F598 7F04AA68 468022A0 */ cvt.s.w $f10, $f4 +/* 07F59C 7F04AA6C 44813000 */ mtc1 $at, $f6 +/* 07F5A0 7F04AA70 00000000 */ nop +/* 07F5A4 7F04AA74 46065280 */ add.s $f10, $f10, $f6 +.L7F04AA78: +/* 07F5A8 7F04AA78 C608004C */ lwc1 $f8, 0x4c($s0) +/* 07F5AC 7F04AA7C 46104481 */ sub.s $f18, $f8, $f16 +/* 07F5B0 7F04AA80 46125102 */ mul.s $f4, $f10, $f18 +/* 07F5B4 7F04AA84 00000000 */ nop +/* 07F5B8 7F04AA88 46002182 */ mul.s $f6, $f4, $f0 +/* 07F5BC 7F04AA8C 4600320D */ trunc.w.s $f8, $f6 +/* 07F5C0 7F04AA90 44194000 */ mfc1 $t9, $f8 +/* 07F5C4 7F04AA94 00000000 */ nop +/* 07F5C8 7F04AA98 A659003A */ sh $t9, 0x3a($s2) +.L7F04AA9C: +/* 07F5CC 7F04AA9C 92020060 */ lbu $v0, 0x60($s0) +/* 07F5D0 7F04AAA0 240C0002 */ li $t4, 2 +/* 07F5D4 7F04AAA4 3C0DB700 */ lui $t5, 0xb700 +/* 07F5D8 7F04AAA8 A242003C */ sb $v0, 0x3c($s2) +/* 07F5DC 7F04AAAC A242002C */ sb $v0, 0x2c($s2) +/* 07F5E0 7F04AAB0 A242001C */ sb $v0, 0x1c($s2) +/* 07F5E4 7F04AAB4 A242000C */ sb $v0, 0xc($s2) +/* 07F5E8 7F04AAB8 92020063 */ lbu $v0, 0x63($s0) +/* 07F5EC 7F04AABC 240F2000 */ li $t7, 8192 +/* 07F5F0 7F04AAC0 27A400BC */ addiu $a0, $sp, 0xbc +/* 07F5F4 7F04AAC4 A242003D */ sb $v0, 0x3d($s2) +/* 07F5F8 7F04AAC8 A242002D */ sb $v0, 0x2d($s2) +/* 07F5FC 7F04AACC A242001D */ sb $v0, 0x1d($s2) +/* 07F600 7F04AAD0 A242000D */ sb $v0, 0xd($s2) +/* 07F604 7F04AAD4 92030066 */ lbu $v1, 0x66($s0) +/* 07F608 7F04AAD8 A243003E */ sb $v1, 0x3e($s2) +/* 07F60C 7F04AADC A243002E */ sb $v1, 0x2e($s2) +/* 07F610 7F04AAE0 A243001E */ sb $v1, 0x1e($s2) +/* 07F614 7F04AAE4 A243000E */ sb $v1, 0xe($s2) +/* 07F618 7F04AAE8 92020069 */ lbu $v0, 0x69($s0) +/* 07F61C 7F04AAEC A242003F */ sb $v0, 0x3f($s2) +/* 07F620 7F04AAF0 A242002F */ sb $v0, 0x2f($s2) +/* 07F624 7F04AAF4 A242001F */ sb $v0, 0x1f($s2) +/* 07F628 7F04AAF8 A242000F */ sb $v0, 0xf($s2) +/* 07F62C 7F04AAFC 92090069 */ lbu $t1, 0x69($s0) +/* 07F630 7F04AB00 292100FF */ slti $at, $t1, 0xff +/* 07F634 7F04AB04 50200003 */ beql $at, $zero, .L7F04AB14 +/* 07F638 7F04AB08 8FAA00BC */ lw $t2, 0xbc($sp) +/* 07F63C 7F04AB0C AFAC00C4 */ sw $t4, 0xc4($sp) +/* 07F640 7F04AB10 8FAA00BC */ lw $t2, 0xbc($sp) +.L7F04AB14: +/* 07F644 7F04AB14 240E0002 */ li $t6, 2 +/* 07F648 7F04AB18 02202825 */ move $a1, $s1 +/* 07F64C 7F04AB1C 254B0008 */ addiu $t3, $t2, 8 +/* 07F650 7F04AB20 AFAB00BC */ sw $t3, 0xbc($sp) +/* 07F654 7F04AB24 AD4F0004 */ sw $t7, 4($t2) +/* 07F658 7F04AB28 AD4D0000 */ sw $t5, ($t2) +/* 07F65C 7F04AB2C AFAE0010 */ sw $t6, 0x10($sp) +/* 07F660 7F04AB30 8FA700C0 */ lw $a3, 0xc0($sp) +/* 07F664 7F04AB34 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 07F668 7F04AB38 8FA600C4 */ lw $a2, 0xc4($sp) +/* 07F66C 7F04AB3C 8FB000BC */ lw $s0, 0xbc($sp) +/* 07F670 7F04AB40 3C190102 */ lui $t9, (0x01020040 >> 16) # lui $t9, 0x102 +/* 07F674 7F04AB44 37390040 */ ori $t9, (0x01020040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 07F678 7F04AB48 26080008 */ addiu $t0, $s0, 8 +/* 07F67C 7F04AB4C AFA800BC */ sw $t0, 0xbc($sp) +/* 07F680 7F04AB50 AE190000 */ sw $t9, ($s0) +/* 07F684 7F04AB54 8FA900B0 */ lw $t1, 0xb0($sp) +/* 07F688 7F04AB58 0C003A2C */ jal osVirtualToPhysical +/* 07F68C 7F04AB5C 8D24000C */ lw $a0, 0xc($t1) +/* 07F690 7F04AB60 AE020004 */ sw $v0, 4($s0) +/* 07F694 7F04AB64 8FB100BC */ lw $s1, 0xbc($sp) +/* 07F698 7F04AB68 3C0BBC00 */ lui $t3, (0xBC001006 >> 16) # lui $t3, 0xbc00 +/* 07F69C 7F04AB6C 356B1006 */ ori $t3, (0xBC001006 & 0xFFFF) # ori $t3, $t3, 0x1006 +/* 07F6A0 7F04AB70 262A0008 */ addiu $t2, $s1, 8 +/* 07F6A4 7F04AB74 AFAA00BC */ sw $t2, 0xbc($sp) +/* 07F6A8 7F04AB78 02402025 */ move $a0, $s2 +/* 07F6AC 7F04AB7C 0C003A2C */ jal osVirtualToPhysical +/* 07F6B0 7F04AB80 AE2B0000 */ sw $t3, ($s1) +/* 07F6B4 7F04AB84 AE220004 */ sw $v0, 4($s1) +/* 07F6B8 7F04AB88 8FAD00BC */ lw $t5, 0xbc($sp) +/* 07F6BC 7F04AB8C 3C0E0430 */ lui $t6, (0x04300040 >> 16) # lui $t6, 0x430 +/* 07F6C0 7F04AB90 35CE0040 */ ori $t6, (0x04300040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 07F6C4 7F04AB94 25AF0008 */ addiu $t7, $t5, 8 +/* 07F6C8 7F04AB98 AFAF00BC */ sw $t7, 0xbc($sp) +/* 07F6CC 7F04AB9C 3C180400 */ lui $t8, 0x400 +/* 07F6D0 7F04ABA0 ADB80004 */ sw $t8, 4($t5) +/* 07F6D4 7F04ABA4 ADAE0000 */ sw $t6, ($t5) +/* 07F6D8 7F04ABA8 8FA800BC */ lw $t0, 0xbc($sp) +/* 07F6DC 7F04ABAC 3C09B100 */ lui $t1, (0xB1000032 >> 16) # lui $t1, 0xb100 +/* 07F6E0 7F04ABB0 35290032 */ ori $t1, (0xB1000032 & 0xFFFF) # ori $t1, $t1, 0x32 +/* 07F6E4 7F04ABB4 25190008 */ addiu $t9, $t0, 8 +/* 07F6E8 7F04ABB8 AFB900BC */ sw $t9, 0xbc($sp) +/* 07F6EC 7F04ABBC 240C2010 */ li $t4, 8208 +/* 07F6F0 7F04ABC0 AD0C0004 */ sw $t4, 4($t0) +/* 07F6F4 7F04ABC4 AD090000 */ sw $t1, ($t0) +/* 07F6F8 7F04ABC8 8FAA00BC */ lw $t2, 0xbc($sp) +/* 07F6FC 7F04ABCC 3C0DB800 */ lui $t5, 0xb800 +/* 07F700 7F04ABD0 3C0F0601 */ lui $t7, 0x601 +/* 07F704 7F04ABD4 254B0008 */ addiu $t3, $t2, 8 +/* 07F708 7F04ABD8 AFAB00BC */ sw $t3, 0xbc($sp) +/* 07F70C 7F04ABDC AD400004 */ sw $zero, 4($t2) +/* 07F710 7F04ABE0 AD4D0000 */ sw $t5, ($t2) +/* 07F714 7F04ABE4 8FA600A8 */ lw $a2, 0xa8($sp) +/* 07F718 7F04ABE8 ACCF0000 */ sw $t7, ($a2) +/* 07F71C 7F04ABEC 8FAE00BC */ lw $t6, 0xbc($sp) +/* 07F720 7F04ABF0 ACCE0004 */ sw $t6, 4($a2) +.L7F04ABF4: +/* 07F724 7F04ABF4 8FBF004C */ lw $ra, 0x4c($sp) +.L7F04ABF8: +/* 07F728 7F04ABF8 8FA200BC */ lw $v0, 0xbc($sp) +/* 07F72C 7F04ABFC D7B40020 */ ldc1 $f20, 0x20($sp) +/* 07F730 7F04AC00 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 07F734 7F04AC04 D7B80030 */ ldc1 $f24, 0x30($sp) +/* 07F738 7F04AC08 D7BA0038 */ ldc1 $f26, 0x38($sp) +/* 07F73C 7F04AC0C 8FB00040 */ lw $s0, 0x40($sp) +/* 07F740 7F04AC10 8FB10044 */ lw $s1, 0x44($sp) +/* 07F744 7F04AC14 8FB20048 */ lw $s2, 0x48($sp) +/* 07F748 7F04AC18 03E00008 */ jr $ra +/* 07F74C 7F04AC1C 27BD00B0 */ addiu $sp, $sp, 0xb0 +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80052C68 +.word 0x40c90fdb /*6.2831855*/ +/*D:80052C6C*/ +glabel jpt_80052C6C +.word command00_reset_scroll_shift +.word command01_horizontal_scroll +.word command02_vertical_scroll +.word command03_horizontal_pos +.word command04_vertical_pos +.word command05_zoomx +.word command06_zoomy +.word command07_use_image_from_global_monitor_table +.word command08_halt_processing_for_time +.word command09_jump +.word command0A_jump_conditional +.word command0B_restart +.word command0C_break +.word command0D_colour_transition +.word command0E_set_rotation +.word command0F_rotate + +glabel D_80052CAC +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80052CB0 +.word 0x3fb50481 /*1.4141999*/ +glabel D_80052CB4 +.word 0x3f59999a /*0.85000002*/ +glabel D_80052CB8 +.word 0x3e19999a /*0.15000001*/ +glabel D_80052CBC +.word 0x3e19999a /*0.15000001*/ +glabel D_80052CC0 +.word 0x3f666666 /*0.89999998*/ +.text +glabel process_monitor_animation_microcode +/* 07EA78 7F049F48 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 07EA7C 7F049F4C AFB10044 */ sw $s1, 0x44($sp) +/* 07EA80 7F049F50 AFB00040 */ sw $s0, 0x40($sp) +/* 07EA84 7F049F54 00C08025 */ move $s0, $a2 +/* 07EA88 7F049F58 00A08825 */ move $s1, $a1 +/* 07EA8C 7F049F5C AFBF004C */ sw $ra, 0x4c($sp) +/* 07EA90 7F049F60 AFB20048 */ sw $s2, 0x48($sp) +/* 07EA94 7F049F64 F7BA0038 */ sdc1 $f26, 0x38($sp) +/* 07EA98 7F049F68 F7B80030 */ sdc1 $f24, 0x30($sp) +/* 07EA9C 7F049F6C F7B60028 */ sdc1 $f22, 0x28($sp) +/* 07EAA0 7F049F70 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 07EAA4 7F049F74 AFA400B0 */ sw $a0, 0xb0($sp) +/* 07EAA8 7F049F78 10A0031E */ beqz $a1, .L7F04ABF4 +/* 07EAAC 7F049F7C AFA700BC */ sw $a3, 0xbc($sp) +/* 07EAB0 7F049F80 94AE0000 */ lhu $t6, ($a1) +/* 07EAB4 7F049F84 24010018 */ li $at, 24 +/* 07EAB8 7F049F88 31CF00FF */ andi $t7, $t6, 0xff +/* 07EABC 7F049F8C 55E1031A */ bnel $t7, $at, .L7F04ABF8 +/* 07EAC0 7F049F90 8FBF004C */ lw $ra, 0x4c($sp) +/* 07EAC4 7F049F94 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 07EAC8 7F049F98 24040004 */ li $a0, 4 +/* 07EACC 7F049F9C 8FB800BC */ lw $t8, 0xbc($sp) +/* 07EAD0 7F049FA0 00409025 */ move $s2, $v0 +/* 07EAD4 7F049FA4 8FA400B0 */ lw $a0, 0xb0($sp) +/* 07EAD8 7F049FA8 27190008 */ addiu $t9, $t8, 8 +/* 07EADC 7F049FAC AFB900BC */ sw $t9, 0xbc($sp) +/* 07EAE0 7F049FB0 AFB800A8 */ sw $t8, 0xa8($sp) +/* 07EAE4 7F049FB4 8E280004 */ lw $t0, 4($s1) +/* 07EAE8 7F049FB8 02202825 */ move $a1, $s1 +/* 07EAEC 7F049FBC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07EAF0 7F049FC0 AFA800A4 */ sw $t0, 0xa4($sp) +/* 07EAF4 7F049FC4 3C018005 */ lui $at, %hi(D_80052C68) +/* 07EAF8 7F049FC8 C43A2C68 */ lwc1 $f26, %lo(D_80052C68)($at) +/* 07EAFC 7F049FCC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07EB00 7F049FD0 4481C000 */ mtc1 $at, $f24 +/* 07EB04 7F049FD4 3C013A80 */ li $at, 0x3A800000 # 0.000977 +/* 07EB08 7F049FD8 4481B000 */ mtc1 $at, $f22 +/* 07EB0C 7F049FDC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EB10 7F049FE0 44811000 */ mtc1 $at, $f2 +/* 07EB14 7F049FE4 4480A000 */ mtc1 $zero, $f20 +/* 07EB18 7F049FE8 AFA200A0 */ sw $v0, 0xa0($sp) +/* 07EB1C 7F049FEC 00008825 */ move $s1, $zero +/* 07EB20 7F049FF0 96020004 */ lhu $v0, 4($s0) +.L7F049FF4: +/* 07EB24 7F049FF4 8E090000 */ lw $t1, ($s0) +/* 07EB28 7F049FF8 00025080 */ sll $t2, $v0, 2 +/* 07EB2C 7F049FFC 012A1821 */ addu $v1, $t1, $t2 +/* 07EB30 7F04A000 8C6B0000 */ lw $t3, ($v1) +/* 07EB34 7F04A004 2D610010 */ sltiu $at, $t3, 0x10 +/* 07EB38 7F04A008 10200117 */ beqz $at, .L7F04A468 +/* 07EB3C 7F04A00C 000B5880 */ sll $t3, $t3, 2 +/* 07EB40 7F04A010 3C018005 */ lui $at, %hi(jpt_80052C6C) +/* 07EB44 7F04A014 002B0821 */ addu $at, $at, $t3 +/* 07EB48 7F04A018 8C2B2C6C */ lw $t3, %lo(jpt_80052C6C)($at) +/* 07EB4C 7F04A01C 01600008 */ jr $t3 +/* 07EB50 7F04A020 00000000 */ nop +command00_reset_scroll_shift: +/* 07EB54 7F04A024 244C0001 */ addiu $t4, $v0, 1 +/* 07EB58 7F04A028 E6140040 */ swc1 $f20, 0x40($s0) +/* 07EB5C 7F04A02C E6140054 */ swc1 $f20, 0x54($s0) +/* 07EB60 7F04A030 1000010D */ b .L7F04A468 +/* 07EB64 7F04A034 A60C0004 */ sh $t4, 4($s0) +command01_horizontal_scroll: +/* 07EB68 7F04A038 E614003C */ swc1 $f20, 0x3c($s0) +/* 07EB6C 7F04A03C 8C6D0008 */ lw $t5, 8($v1) +/* 07EB70 7F04A040 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EB74 7F04A044 448D2000 */ mtc1 $t5, $f4 +/* 07EB78 7F04A048 05A10004 */ bgez $t5, .L7F04A05C +/* 07EB7C 7F04A04C 468021A0 */ cvt.s.w $f6, $f4 +/* 07EB80 7F04A050 44814000 */ mtc1 $at, $f8 +/* 07EB84 7F04A054 00000000 */ nop +/* 07EB88 7F04A058 46083180 */ add.s $f6, $f6, $f8 +.L7F04A05C: +/* 07EB8C 7F04A05C 4606C283 */ div.s $f10, $f24, $f6 +/* 07EB90 7F04A060 C6000038 */ lwc1 $f0, 0x38($s0) +/* 07EB94 7F04A064 244F0003 */ addiu $t7, $v0, 3 +/* 07EB98 7F04A068 E6000044 */ swc1 $f0, 0x44($s0) +/* 07EB9C 7F04A06C E60A0040 */ swc1 $f10, 0x40($s0) +/* 07EBA0 7F04A070 8C6E0004 */ lw $t6, 4($v1) +/* 07EBA4 7F04A074 A60F0004 */ sh $t7, 4($s0) +/* 07EBA8 7F04A078 448E9000 */ mtc1 $t6, $f18 +/* 07EBAC 7F04A07C 00000000 */ nop +/* 07EBB0 7F04A080 46809120 */ cvt.s.w $f4, $f18 +/* 07EBB4 7F04A084 46162202 */ mul.s $f8, $f4, $f22 +/* 07EBB8 7F04A088 46080180 */ add.s $f6, $f0, $f8 +/* 07EBBC 7F04A08C 100000F6 */ b .L7F04A468 +/* 07EBC0 7F04A090 E6060048 */ swc1 $f6, 0x48($s0) +command02_vertical_scroll: +/* 07EBC4 7F04A094 E6140050 */ swc1 $f20, 0x50($s0) +/* 07EBC8 7F04A098 8C780008 */ lw $t8, 8($v1) +/* 07EBCC 7F04A09C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EBD0 7F04A0A0 44985000 */ mtc1 $t8, $f10 +/* 07EBD4 7F04A0A4 07010004 */ bgez $t8, .L7F04A0B8 +/* 07EBD8 7F04A0A8 468054A0 */ cvt.s.w $f18, $f10 +/* 07EBDC 7F04A0AC 44812000 */ mtc1 $at, $f4 +/* 07EBE0 7F04A0B0 00000000 */ nop +/* 07EBE4 7F04A0B4 46049480 */ add.s $f18, $f18, $f4 +.L7F04A0B8: +/* 07EBE8 7F04A0B8 4612C203 */ div.s $f8, $f24, $f18 +/* 07EBEC 7F04A0BC C600004C */ lwc1 $f0, 0x4c($s0) +/* 07EBF0 7F04A0C0 24480003 */ addiu $t0, $v0, 3 +/* 07EBF4 7F04A0C4 E6000058 */ swc1 $f0, 0x58($s0) +/* 07EBF8 7F04A0C8 E6080054 */ swc1 $f8, 0x54($s0) +/* 07EBFC 7F04A0CC 8C790004 */ lw $t9, 4($v1) +/* 07EC00 7F04A0D0 A6080004 */ sh $t0, 4($s0) +/* 07EC04 7F04A0D4 44993000 */ mtc1 $t9, $f6 +/* 07EC08 7F04A0D8 00000000 */ nop +/* 07EC0C 7F04A0DC 468032A0 */ cvt.s.w $f10, $f6 +/* 07EC10 7F04A0E0 46165102 */ mul.s $f4, $f10, $f22 +/* 07EC14 7F04A0E4 46040480 */ add.s $f18, $f0, $f4 +/* 07EC18 7F04A0E8 100000DF */ b .L7F04A468 +/* 07EC1C 7F04A0EC E612005C */ swc1 $f18, 0x5c($s0) +command03_horizontal_pos: +/* 07EC20 7F04A0F0 E614003C */ swc1 $f20, 0x3c($s0) +/* 07EC24 7F04A0F4 8C690008 */ lw $t1, 8($v1) +/* 07EC28 7F04A0F8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EC2C 7F04A0FC 44894000 */ mtc1 $t1, $f8 +/* 07EC30 7F04A100 05210004 */ bgez $t1, .L7F04A114 +/* 07EC34 7F04A104 468041A0 */ cvt.s.w $f6, $f8 +/* 07EC38 7F04A108 44815000 */ mtc1 $at, $f10 +/* 07EC3C 7F04A10C 00000000 */ nop +/* 07EC40 7F04A110 460A3180 */ add.s $f6, $f6, $f10 +.L7F04A114: +/* 07EC44 7F04A114 4606C103 */ div.s $f4, $f24, $f6 +/* 07EC48 7F04A118 C6120038 */ lwc1 $f18, 0x38($s0) +/* 07EC4C 7F04A11C 244B0003 */ addiu $t3, $v0, 3 +/* 07EC50 7F04A120 E6120044 */ swc1 $f18, 0x44($s0) +/* 07EC54 7F04A124 E6040040 */ swc1 $f4, 0x40($s0) +/* 07EC58 7F04A128 8C6A0004 */ lw $t2, 4($v1) +/* 07EC5C 7F04A12C A60B0004 */ sh $t3, 4($s0) +/* 07EC60 7F04A130 448A4000 */ mtc1 $t2, $f8 +/* 07EC64 7F04A134 00000000 */ nop +/* 07EC68 7F04A138 468042A0 */ cvt.s.w $f10, $f8 +/* 07EC6C 7F04A13C 46165182 */ mul.s $f6, $f10, $f22 +/* 07EC70 7F04A140 100000C9 */ b .L7F04A468 +/* 07EC74 7F04A144 E6060048 */ swc1 $f6, 0x48($s0) +command04_vertical_pos: +/* 07EC78 7F04A148 E6140050 */ swc1 $f20, 0x50($s0) +/* 07EC7C 7F04A14C 8C6C0008 */ lw $t4, 8($v1) +/* 07EC80 7F04A150 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EC84 7F04A154 448C2000 */ mtc1 $t4, $f4 +/* 07EC88 7F04A158 05810004 */ bgez $t4, .L7F04A16C +/* 07EC8C 7F04A15C 468024A0 */ cvt.s.w $f18, $f4 +/* 07EC90 7F04A160 44814000 */ mtc1 $at, $f8 +/* 07EC94 7F04A164 00000000 */ nop +/* 07EC98 7F04A168 46089480 */ add.s $f18, $f18, $f8 +.L7F04A16C: +/* 07EC9C 7F04A16C 4612C283 */ div.s $f10, $f24, $f18 +/* 07ECA0 7F04A170 C606004C */ lwc1 $f6, 0x4c($s0) +/* 07ECA4 7F04A174 244E0003 */ addiu $t6, $v0, 3 +/* 07ECA8 7F04A178 E6060058 */ swc1 $f6, 0x58($s0) +/* 07ECAC 7F04A17C E60A0054 */ swc1 $f10, 0x54($s0) +/* 07ECB0 7F04A180 8C6D0004 */ lw $t5, 4($v1) +/* 07ECB4 7F04A184 A60E0004 */ sh $t6, 4($s0) +/* 07ECB8 7F04A188 448D2000 */ mtc1 $t5, $f4 +/* 07ECBC 7F04A18C 00000000 */ nop +/* 07ECC0 7F04A190 46802220 */ cvt.s.w $f8, $f4 +/* 07ECC4 7F04A194 46164482 */ mul.s $f18, $f8, $f22 +/* 07ECC8 7F04A198 100000B3 */ b .L7F04A468 +/* 07ECCC 7F04A19C E612005C */ swc1 $f18, 0x5c($s0) +command05_zoomx: +/* 07ECD0 7F04A1A0 E6140014 */ swc1 $f20, 0x14($s0) +/* 07ECD4 7F04A1A4 8C6F0008 */ lw $t7, 8($v1) +/* 07ECD8 7F04A1A8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07ECDC 7F04A1AC 448F5000 */ mtc1 $t7, $f10 +/* 07ECE0 7F04A1B0 05E10004 */ bgez $t7, .L7F04A1C4 +/* 07ECE4 7F04A1B4 468051A0 */ cvt.s.w $f6, $f10 +/* 07ECE8 7F04A1B8 44812000 */ mtc1 $at, $f4 +/* 07ECEC 7F04A1BC 00000000 */ nop +/* 07ECF0 7F04A1C0 46043180 */ add.s $f6, $f6, $f4 +.L7F04A1C4: +/* 07ECF4 7F04A1C4 4606C203 */ div.s $f8, $f24, $f6 +/* 07ECF8 7F04A1C8 C6120010 */ lwc1 $f18, 0x10($s0) +/* 07ECFC 7F04A1CC 24590003 */ addiu $t9, $v0, 3 +/* 07ED00 7F04A1D0 E612001C */ swc1 $f18, 0x1c($s0) +/* 07ED04 7F04A1D4 E6080018 */ swc1 $f8, 0x18($s0) +/* 07ED08 7F04A1D8 8C780004 */ lw $t8, 4($v1) +/* 07ED0C 7F04A1DC A6190004 */ sh $t9, 4($s0) +/* 07ED10 7F04A1E0 44985000 */ mtc1 $t8, $f10 +/* 07ED14 7F04A1E4 00000000 */ nop +/* 07ED18 7F04A1E8 46805120 */ cvt.s.w $f4, $f10 +/* 07ED1C 7F04A1EC 46162182 */ mul.s $f6, $f4, $f22 +/* 07ED20 7F04A1F0 1000009D */ b .L7F04A468 +/* 07ED24 7F04A1F4 E6060020 */ swc1 $f6, 0x20($s0) +command06_zoomy: +/* 07ED28 7F04A1F8 E6140028 */ swc1 $f20, 0x28($s0) +/* 07ED2C 7F04A1FC 8C680008 */ lw $t0, 8($v1) +/* 07ED30 7F04A200 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07ED34 7F04A204 44884000 */ mtc1 $t0, $f8 +/* 07ED38 7F04A208 05010004 */ bgez $t0, .L7F04A21C +/* 07ED3C 7F04A20C 468044A0 */ cvt.s.w $f18, $f8 +/* 07ED40 7F04A210 44815000 */ mtc1 $at, $f10 +/* 07ED44 7F04A214 00000000 */ nop +/* 07ED48 7F04A218 460A9480 */ add.s $f18, $f18, $f10 +.L7F04A21C: +/* 07ED4C 7F04A21C 4612C103 */ div.s $f4, $f24, $f18 +/* 07ED50 7F04A220 C6060024 */ lwc1 $f6, 0x24($s0) +/* 07ED54 7F04A224 244A0003 */ addiu $t2, $v0, 3 +/* 07ED58 7F04A228 E6060030 */ swc1 $f6, 0x30($s0) +/* 07ED5C 7F04A22C E604002C */ swc1 $f4, 0x2c($s0) +/* 07ED60 7F04A230 8C690004 */ lw $t1, 4($v1) +/* 07ED64 7F04A234 A60A0004 */ sh $t2, 4($s0) +/* 07ED68 7F04A238 44894000 */ mtc1 $t1, $f8 +/* 07ED6C 7F04A23C 00000000 */ nop +/* 07ED70 7F04A240 468042A0 */ cvt.s.w $f10, $f8 +/* 07ED74 7F04A244 46165482 */ mul.s $f18, $f10, $f22 +/* 07ED78 7F04A248 10000087 */ b .L7F04A468 +/* 07ED7C 7F04A24C E6120034 */ swc1 $f18, 0x34($s0) +command07_use_image_from_global_monitor_table: +/* 07ED80 7F04A250 02002025 */ move $a0, $s0 +/* 07ED84 7F04A254 0FC127D0 */ jal save_img_index_to_obj_ani_slot +/* 07ED88 7F04A258 8C650004 */ lw $a1, 4($v1) +/* 07ED8C 7F04A25C 960B0004 */ lhu $t3, 4($s0) +/* 07ED90 7F04A260 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07ED94 7F04A264 44811000 */ mtc1 $at, $f2 +/* 07ED98 7F04A268 256C0002 */ addiu $t4, $t3, 2 +/* 07ED9C 7F04A26C 1000007E */ b .L7F04A468 +/* 07EDA0 7F04A270 A60C0004 */ sh $t4, 4($s0) +command08_halt_processing_for_time: +/* 07EDA4 7F04A274 86020006 */ lh $v0, 6($s0) +/* 07EDA8 7F04A278 3C0D8005 */ lui $t5, %hi(clock_timer) +/* 07EDAC 7F04A27C 0442000E */ bltzl $v0, .L7F04A2B8 +/* 07EDB0 7F04A280 8C680004 */ lw $t0, 4($v1) +/* 07EDB4 7F04A284 8DAD8374 */ lw $t5, %lo(clock_timer)($t5) +/* 07EDB8 7F04A288 004D7023 */ subu $t6, $v0, $t5 +/* 07EDBC 7F04A28C A60E0006 */ sh $t6, 6($s0) +/* 07EDC0 7F04A290 860F0006 */ lh $t7, 6($s0) +/* 07EDC4 7F04A294 05E20004 */ bltzl $t7, .L7F04A2A8 +/* 07EDC8 7F04A298 96180004 */ lhu $t8, 4($s0) +/* 07EDCC 7F04A29C 10000072 */ b .L7F04A468 +/* 07EDD0 7F04A2A0 24110001 */ li $s1, 1 +/* 07EDD4 7F04A2A4 96180004 */ lhu $t8, 4($s0) +.L7F04A2A8: +/* 07EDD8 7F04A2A8 27190002 */ addiu $t9, $t8, 2 +/* 07EDDC 7F04A2AC 1000006E */ b .L7F04A468 +/* 07EDE0 7F04A2B0 A6190004 */ sh $t9, 4($s0) +/* 07EDE4 7F04A2B4 8C680004 */ lw $t0, 4($v1) +.L7F04A2B8: +/* 07EDE8 7F04A2B8 24110001 */ li $s1, 1 +/* 07EDEC 7F04A2BC 1000006A */ b .L7F04A468 +/* 07EDF0 7F04A2C0 A6080006 */ sh $t0, 6($s0) +command09_jump: +/* 07EDF4 7F04A2C4 02002025 */ move $a0, $s0 +/* 07EDF8 7F04A2C8 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 07EDFC 7F04A2CC 8C650004 */ lw $a1, 4($v1) +/* 07EE00 7F04A2D0 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EE04 7F04A2D4 44811000 */ mtc1 $at, $f2 +/* 07EE08 7F04A2D8 10000063 */ b .L7F04A468 +/* 07EE0C 7F04A2DC 00000000 */ nop +command0A_jump_conditional: +/* 07EE10 7F04A2E0 0C002914 */ jal get_random_value +/* 07EE14 7F04A2E4 AFA30094 */ sw $v1, 0x94($sp) +/* 07EE18 7F04A2E8 8FA30094 */ lw $v1, 0x94($sp) +/* 07EE1C 7F04A2EC 00024C02 */ srl $t1, $v0, 0x10 +/* 07EE20 7F04A2F0 02002025 */ move $a0, $s0 +/* 07EE24 7F04A2F4 8C6A0008 */ lw $t2, 8($v1) +/* 07EE28 7F04A2F8 012A082B */ sltu $at, $t1, $t2 +/* 07EE2C 7F04A2FC 50200008 */ beql $at, $zero, .L7F04A320 +/* 07EE30 7F04A300 960B0004 */ lhu $t3, 4($s0) +/* 07EE34 7F04A304 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 07EE38 7F04A308 8C650004 */ lw $a1, 4($v1) +/* 07EE3C 7F04A30C 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EE40 7F04A310 44811000 */ mtc1 $at, $f2 +/* 07EE44 7F04A314 10000054 */ b .L7F04A468 +/* 07EE48 7F04A318 00000000 */ nop +/* 07EE4C 7F04A31C 960B0004 */ lhu $t3, 4($s0) +.L7F04A320: +/* 07EE50 7F04A320 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EE54 7F04A324 44811000 */ mtc1 $at, $f2 +/* 07EE58 7F04A328 256C0003 */ addiu $t4, $t3, 3 +/* 07EE5C 7F04A32C A60C0004 */ sh $t4, 4($s0) +/* 07EE60 7F04A330 1000004D */ b .L7F04A468 +/* 07EE64 7F04A334 00000000 */ nop +command0B_restart: +/* 07EE68 7F04A338 1000004B */ b .L7F04A468 +/* 07EE6C 7F04A33C A6000004 */ sh $zero, 4($s0) +command0C_break: +/* 07EE70 7F04A340 10000049 */ b .L7F04A468 +/* 07EE74 7F04A344 24110001 */ li $s1, 1 +command0D_colour_transition: +/* 07EE78 7F04A348 E614006C */ swc1 $f20, 0x6c($s0) +/* 07EE7C 7F04A34C 8C6D0008 */ lw $t5, 8($v1) +/* 07EE80 7F04A350 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EE84 7F04A354 448D2000 */ mtc1 $t5, $f4 +/* 07EE88 7F04A358 05A10004 */ bgez $t5, .L7F04A36C +/* 07EE8C 7F04A35C 468021A0 */ cvt.s.w $f6, $f4 +/* 07EE90 7F04A360 44814000 */ mtc1 $at, $f8 +/* 07EE94 7F04A364 00000000 */ nop +/* 07EE98 7F04A368 46083180 */ add.s $f6, $f6, $f8 +.L7F04A36C: +/* 07EE9C 7F04A36C 4606C283 */ div.s $f10, $f24, $f6 +/* 07EEA0 7F04A370 920E0060 */ lbu $t6, 0x60($s0) +/* 07EEA4 7F04A374 92080063 */ lbu $t0, 0x63($s0) +/* 07EEA8 7F04A378 920C0066 */ lbu $t4, 0x66($s0) +/* 07EEAC 7F04A37C A20E0061 */ sb $t6, 0x61($s0) +/* 07EEB0 7F04A380 92180069 */ lbu $t8, 0x69($s0) +/* 07EEB4 7F04A384 E60A0070 */ swc1 $f10, 0x70($s0) +/* 07EEB8 7F04A388 8C6F0004 */ lw $t7, 4($v1) +/* 07EEBC 7F04A38C A2080064 */ sb $t0, 0x64($s0) +/* 07EEC0 7F04A390 000FCE02 */ srl $t9, $t7, 0x18 +/* 07EEC4 7F04A394 A2190062 */ sb $t9, 0x62($s0) +/* 07EEC8 7F04A398 8C690004 */ lw $t1, 4($v1) +/* 07EECC 7F04A39C A20C0067 */ sb $t4, 0x67($s0) +/* 07EED0 7F04A3A0 00095C02 */ srl $t3, $t1, 0x10 +/* 07EED4 7F04A3A4 A20B0065 */ sb $t3, 0x65($s0) +/* 07EED8 7F04A3A8 8C6D0004 */ lw $t5, 4($v1) +/* 07EEDC 7F04A3AC A218006A */ sb $t8, 0x6a($s0) +/* 07EEE0 7F04A3B0 24490003 */ addiu $t1, $v0, 3 +/* 07EEE4 7F04A3B4 000D7A02 */ srl $t7, $t5, 8 +/* 07EEE8 7F04A3B8 A20F0068 */ sb $t7, 0x68($s0) +/* 07EEEC 7F04A3BC 8C680004 */ lw $t0, 4($v1) +/* 07EEF0 7F04A3C0 A6090004 */ sh $t1, 4($s0) +/* 07EEF4 7F04A3C4 10000028 */ b .L7F04A468 +/* 07EEF8 7F04A3C8 A208006B */ sb $t0, 0x6b($s0) +command0E_set_rotation: +/* 07EEFC 7F04A3CC 8C6A0004 */ lw $t2, 4($v1) +/* 07EF00 7F04A3D0 244B0002 */ addiu $t3, $v0, 2 +/* 07EF04 7F04A3D4 A60B0004 */ sh $t3, 4($s0) +/* 07EF08 7F04A3D8 448A9000 */ mtc1 $t2, $f18 +/* 07EF0C 7F04A3DC 00000000 */ nop +/* 07EF10 7F04A3E0 46809120 */ cvt.s.w $f4, $f18 +/* 07EF14 7F04A3E4 461A2202 */ mul.s $f8, $f4, $f26 +/* 07EF18 7F04A3E8 46024183 */ div.s $f6, $f8, $f2 +/* 07EF1C 7F04A3EC 1000001E */ b .L7F04A468 +/* 07EF20 7F04A3F0 E606000C */ swc1 $f6, 0xc($s0) +command0F_rotate: +/* 07EF24 7F04A3F4 8C6C0004 */ lw $t4, 4($v1) +/* 07EF28 7F04A3F8 3C018005 */ lui $at, %hi(jp_global_timer_delta) +/* 07EF2C 7F04A3FC C42A8378 */ lwc1 $f10, %lo(jp_global_timer_delta)($at) +/* 07EF30 7F04A400 448C9000 */ mtc1 $t4, $f18 +/* 07EF34 7F04A404 00000000 */ nop +/* 07EF38 7F04A408 46809120 */ cvt.s.w $f4, $f18 +/* 07EF3C 7F04A40C 46045202 */ mul.s $f8, $f10, $f4 +/* 07EF40 7F04A410 C60A000C */ lwc1 $f10, 0xc($s0) +/* 07EF44 7F04A414 461A4182 */ mul.s $f6, $f8, $f26 +/* 07EF48 7F04A418 46023483 */ div.s $f18, $f6, $f2 +/* 07EF4C 7F04A41C 46125100 */ add.s $f4, $f10, $f18 +/* 07EF50 7F04A420 E604000C */ swc1 $f4, 0xc($s0) +/* 07EF54 7F04A424 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07EF58 7F04A428 460CD03E */ c.le.s $f26, $f12 +/* 07EF5C 7F04A42C 00000000 */ nop +/* 07EF60 7F04A430 45020005 */ bc1fl .L7F04A448 +/* 07EF64 7F04A434 4614603C */ c.lt.s $f12, $f20 +/* 07EF68 7F04A438 461A6201 */ sub.s $f8, $f12, $f26 +/* 07EF6C 7F04A43C E608000C */ swc1 $f8, 0xc($s0) +/* 07EF70 7F04A440 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07EF74 7F04A444 4614603C */ c.lt.s $f12, $f20 +.L7F04A448: +/* 07EF78 7F04A448 00000000 */ nop +/* 07EF7C 7F04A44C 45020004 */ bc1fl .L7F04A460 +/* 07EF80 7F04A450 960D0004 */ lhu $t5, 4($s0) +/* 07EF84 7F04A454 461A6180 */ add.s $f6, $f12, $f26 +/* 07EF88 7F04A458 E606000C */ swc1 $f6, 0xc($s0) +/* 07EF8C 7F04A45C 960D0004 */ lhu $t5, 4($s0) +.L7F04A460: +/* 07EF90 7F04A460 25AE0002 */ addiu $t6, $t5, 2 +/* 07EF94 7F04A464 A60E0004 */ sh $t6, 4($s0) +def_7F04A01C: +.L7F04A468: +/* 07EF98 7F04A468 5220FEE2 */ beql $s1, $zero, .L7F049FF4 +/* 07EF9C 7F04A46C 96020004 */ lhu $v0, 4($s0) +/* 07EFA0 7F04A470 C6000018 */ lwc1 $f0, 0x18($s0) +/* 07EFA4 7F04A474 4600A03C */ c.lt.s $f20, $f0 +/* 07EFA8 7F04A478 00000000 */ nop +/* 07EFAC 7F04A47C 45000017 */ bc1f .L7F04A4DC +/* 07EFB0 7F04A480 3C028005 */ lui $v0, %hi(jp_global_timer_delta) +/* 07EFB4 7F04A484 24428378 */ addiu $v0, %lo(jp_global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 07EFB8 7F04A488 C4520000 */ lwc1 $f18, ($v0) +/* 07EFBC 7F04A48C C60A0014 */ lwc1 $f10, 0x14($s0) +/* 07EFC0 7F04A490 46120102 */ mul.s $f4, $f0, $f18 +/* 07EFC4 7F04A494 46045200 */ add.s $f8, $f10, $f4 +/* 07EFC8 7F04A498 E6080014 */ swc1 $f8, 0x14($s0) +/* 07EFCC 7F04A49C C6020014 */ lwc1 $f2, 0x14($s0) +/* 07EFD0 7F04A4A0 4618103C */ c.lt.s $f2, $f24 +/* 07EFD4 7F04A4A4 00000000 */ nop +/* 07EFD8 7F04A4A8 45020009 */ bc1fl .L7F04A4D0 +/* 07EFDC 7F04A4AC C6080020 */ lwc1 $f8, 0x20($s0) +/* 07EFE0 7F04A4B0 C600001C */ lwc1 $f0, 0x1c($s0) +/* 07EFE4 7F04A4B4 C6060020 */ lwc1 $f6, 0x20($s0) +/* 07EFE8 7F04A4B8 46003481 */ sub.s $f18, $f6, $f0 +/* 07EFEC 7F04A4BC 46029282 */ mul.s $f10, $f18, $f2 +/* 07EFF0 7F04A4C0 460A0100 */ add.s $f4, $f0, $f10 +/* 07EFF4 7F04A4C4 10000005 */ b .L7F04A4DC +/* 07EFF8 7F04A4C8 E6040010 */ swc1 $f4, 0x10($s0) +/* 07EFFC 7F04A4CC C6080020 */ lwc1 $f8, 0x20($s0) +.L7F04A4D0: +/* 07F000 7F04A4D0 E6180014 */ swc1 $f24, 0x14($s0) +/* 07F004 7F04A4D4 E6140018 */ swc1 $f20, 0x18($s0) +/* 07F008 7F04A4D8 E6080010 */ swc1 $f8, 0x10($s0) +.L7F04A4DC: +/* 07F00C 7F04A4DC C600002C */ lwc1 $f0, 0x2c($s0) +/* 07F010 7F04A4E0 3C028005 */ lui $v0, %hi(jp_global_timer_delta) +/* 07F014 7F04A4E4 24428378 */ addiu $v0, %lo(jp_global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 07F018 7F04A4E8 4600A03C */ c.lt.s $f20, $f0 +/* 07F01C 7F04A4EC 00000000 */ nop +/* 07F020 7F04A4F0 45020017 */ bc1fl .L7F04A550 +/* 07F024 7F04A4F4 C6000040 */ lwc1 $f0, 0x40($s0) +/* 07F028 7F04A4F8 C4520000 */ lwc1 $f18, ($v0) +/* 07F02C 7F04A4FC C6060028 */ lwc1 $f6, 0x28($s0) +/* 07F030 7F04A500 46120282 */ mul.s $f10, $f0, $f18 +/* 07F034 7F04A504 460A3100 */ add.s $f4, $f6, $f10 +/* 07F038 7F04A508 E6040028 */ swc1 $f4, 0x28($s0) +/* 07F03C 7F04A50C C6020028 */ lwc1 $f2, 0x28($s0) +/* 07F040 7F04A510 4618103C */ c.lt.s $f2, $f24 +/* 07F044 7F04A514 00000000 */ nop +/* 07F048 7F04A518 45020009 */ bc1fl .L7F04A540 +/* 07F04C 7F04A51C C6040034 */ lwc1 $f4, 0x34($s0) +/* 07F050 7F04A520 C6000030 */ lwc1 $f0, 0x30($s0) +/* 07F054 7F04A524 C6080034 */ lwc1 $f8, 0x34($s0) +/* 07F058 7F04A528 46004481 */ sub.s $f18, $f8, $f0 +/* 07F05C 7F04A52C 46029182 */ mul.s $f6, $f18, $f2 +/* 07F060 7F04A530 46060280 */ add.s $f10, $f0, $f6 +/* 07F064 7F04A534 10000005 */ b .L7F04A54C +/* 07F068 7F04A538 E60A0024 */ swc1 $f10, 0x24($s0) +/* 07F06C 7F04A53C C6040034 */ lwc1 $f4, 0x34($s0) +.L7F04A540: +/* 07F070 7F04A540 E6180028 */ swc1 $f24, 0x28($s0) +/* 07F074 7F04A544 E614002C */ swc1 $f20, 0x2c($s0) +/* 07F078 7F04A548 E6040024 */ swc1 $f4, 0x24($s0) +.L7F04A54C: +/* 07F07C 7F04A54C C6000040 */ lwc1 $f0, 0x40($s0) +.L7F04A550: +/* 07F080 7F04A550 4600A03C */ c.lt.s $f20, $f0 +/* 07F084 7F04A554 00000000 */ nop +/* 07F088 7F04A558 45020017 */ bc1fl .L7F04A5B8 +/* 07F08C 7F04A55C C6000054 */ lwc1 $f0, 0x54($s0) +/* 07F090 7F04A560 C4520000 */ lwc1 $f18, ($v0) +/* 07F094 7F04A564 C608003C */ lwc1 $f8, 0x3c($s0) +/* 07F098 7F04A568 46120182 */ mul.s $f6, $f0, $f18 +/* 07F09C 7F04A56C 46064280 */ add.s $f10, $f8, $f6 +/* 07F0A0 7F04A570 E60A003C */ swc1 $f10, 0x3c($s0) +/* 07F0A4 7F04A574 C602003C */ lwc1 $f2, 0x3c($s0) +/* 07F0A8 7F04A578 4618103C */ c.lt.s $f2, $f24 +/* 07F0AC 7F04A57C 00000000 */ nop +/* 07F0B0 7F04A580 45020009 */ bc1fl .L7F04A5A8 +/* 07F0B4 7F04A584 C60A0048 */ lwc1 $f10, 0x48($s0) +/* 07F0B8 7F04A588 C6000044 */ lwc1 $f0, 0x44($s0) +/* 07F0BC 7F04A58C C6040048 */ lwc1 $f4, 0x48($s0) +/* 07F0C0 7F04A590 46002481 */ sub.s $f18, $f4, $f0 +/* 07F0C4 7F04A594 46029202 */ mul.s $f8, $f18, $f2 +/* 07F0C8 7F04A598 46080180 */ add.s $f6, $f0, $f8 +/* 07F0CC 7F04A59C 10000005 */ b .L7F04A5B4 +/* 07F0D0 7F04A5A0 E6060038 */ swc1 $f6, 0x38($s0) +/* 07F0D4 7F04A5A4 C60A0048 */ lwc1 $f10, 0x48($s0) +.L7F04A5A8: +/* 07F0D8 7F04A5A8 E618003C */ swc1 $f24, 0x3c($s0) +/* 07F0DC 7F04A5AC E6140040 */ swc1 $f20, 0x40($s0) +/* 07F0E0 7F04A5B0 E60A0038 */ swc1 $f10, 0x38($s0) +.L7F04A5B4: +/* 07F0E4 7F04A5B4 C6000054 */ lwc1 $f0, 0x54($s0) +.L7F04A5B8: +/* 07F0E8 7F04A5B8 4600A03C */ c.lt.s $f20, $f0 +/* 07F0EC 7F04A5BC 00000000 */ nop +/* 07F0F0 7F04A5C0 45020017 */ bc1fl .L7F04A620 +/* 07F0F4 7F04A5C4 C6020070 */ lwc1 $f2, 0x70($s0) +/* 07F0F8 7F04A5C8 C4520000 */ lwc1 $f18, ($v0) +/* 07F0FC 7F04A5CC C6040050 */ lwc1 $f4, 0x50($s0) +/* 07F100 7F04A5D0 46120202 */ mul.s $f8, $f0, $f18 +/* 07F104 7F04A5D4 46082180 */ add.s $f6, $f4, $f8 +/* 07F108 7F04A5D8 E6060050 */ swc1 $f6, 0x50($s0) +/* 07F10C 7F04A5DC C6020050 */ lwc1 $f2, 0x50($s0) +/* 07F110 7F04A5E0 4618103C */ c.lt.s $f2, $f24 +/* 07F114 7F04A5E4 00000000 */ nop +/* 07F118 7F04A5E8 45020009 */ bc1fl .L7F04A610 +/* 07F11C 7F04A5EC C606005C */ lwc1 $f6, 0x5c($s0) +/* 07F120 7F04A5F0 C6000058 */ lwc1 $f0, 0x58($s0) +/* 07F124 7F04A5F4 C60A005C */ lwc1 $f10, 0x5c($s0) +/* 07F128 7F04A5F8 46005481 */ sub.s $f18, $f10, $f0 +/* 07F12C 7F04A5FC 46029102 */ mul.s $f4, $f18, $f2 +/* 07F130 7F04A600 46040200 */ add.s $f8, $f0, $f4 +/* 07F134 7F04A604 10000005 */ b .L7F04A61C +/* 07F138 7F04A608 E608004C */ swc1 $f8, 0x4c($s0) +/* 07F13C 7F04A60C C606005C */ lwc1 $f6, 0x5c($s0) +.L7F04A610: +/* 07F140 7F04A610 E6180050 */ swc1 $f24, 0x50($s0) +/* 07F144 7F04A614 E6140054 */ swc1 $f20, 0x54($s0) +/* 07F148 7F04A618 E606004C */ swc1 $f6, 0x4c($s0) +.L7F04A61C: +/* 07F14C 7F04A61C C6020070 */ lwc1 $f2, 0x70($s0) +.L7F04A620: +/* 07F150 7F04A620 4602A03C */ c.lt.s $f20, $f2 +/* 07F154 7F04A624 00000000 */ nop +/* 07F158 7F04A628 4502003F */ bc1fl .L7F04A728 +/* 07F15C 7F04A62C 8FAA00A0 */ lw $t2, 0xa0($sp) +/* 07F160 7F04A630 C4520000 */ lwc1 $f18, ($v0) +/* 07F164 7F04A634 C60A006C */ lwc1 $f10, 0x6c($s0) +/* 07F168 7F04A638 46121102 */ mul.s $f4, $f2, $f18 +/* 07F16C 7F04A63C 46045200 */ add.s $f8, $f10, $f4 +/* 07F170 7F04A640 E608006C */ swc1 $f8, 0x6c($s0) +/* 07F174 7F04A644 C600006C */ lwc1 $f0, 0x6c($s0) +/* 07F178 7F04A648 4618003C */ c.lt.s $f0, $f24 +/* 07F17C 7F04A64C 00000000 */ nop +/* 07F180 7F04A650 4502002B */ bc1fl .L7F04A700 +/* 07F184 7F04A654 920F0062 */ lbu $t7, 0x62($s0) +/* 07F188 7F04A658 92020061 */ lbu $v0, 0x61($s0) +/* 07F18C 7F04A65C 920F0062 */ lbu $t7, 0x62($s0) +/* 07F190 7F04A660 92030064 */ lbu $v1, 0x64($s0) +/* 07F194 7F04A664 920A0065 */ lbu $t2, 0x65($s0) +/* 07F198 7F04A668 01E2C023 */ subu $t8, $t7, $v0 +/* 07F19C 7F04A66C 44983000 */ mtc1 $t8, $f6 +/* 07F1A0 7F04A670 01435823 */ subu $t3, $t2, $v1 +/* 07F1A4 7F04A674 448B4000 */ mtc1 $t3, $f8 +/* 07F1A8 7F04A678 468034A0 */ cvt.s.w $f18, $f6 +/* 07F1AC 7F04A67C 920F0068 */ lbu $t7, 0x68($s0) +/* 07F1B0 7F04A680 92040067 */ lbu $a0, 0x67($s0) +/* 07F1B4 7F04A684 920A006B */ lbu $t2, 0x6b($s0) +/* 07F1B8 7F04A688 9205006A */ lbu $a1, 0x6a($s0) +/* 07F1BC 7F04A68C 468041A0 */ cvt.s.w $f6, $f8 +/* 07F1C0 7F04A690 46009282 */ mul.s $f10, $f18, $f0 +/* 07F1C4 7F04A694 01E4C023 */ subu $t8, $t7, $a0 +/* 07F1C8 7F04A698 01455823 */ subu $t3, $t2, $a1 +/* 07F1CC 7F04A69C 46003482 */ mul.s $f18, $f6, $f0 +/* 07F1D0 7F04A6A0 4600510D */ trunc.w.s $f4, $f10 +/* 07F1D4 7F04A6A4 4600928D */ trunc.w.s $f10, $f18 +/* 07F1D8 7F04A6A8 44082000 */ mfc1 $t0, $f4 +/* 07F1DC 7F04A6AC 44982000 */ mtc1 $t8, $f4 +/* 07F1E0 7F04A6B0 440D5000 */ mfc1 $t5, $f10 +/* 07F1E4 7F04A6B4 46802220 */ cvt.s.w $f8, $f4 +/* 07F1E8 7F04A6B8 448B5000 */ mtc1 $t3, $f10 +/* 07F1EC 7F04A6BC 00484821 */ addu $t1, $v0, $t0 +/* 07F1F0 7F04A6C0 006D7021 */ addu $t6, $v1, $t5 +/* 07F1F4 7F04A6C4 A2090060 */ sb $t1, 0x60($s0) +/* 07F1F8 7F04A6C8 46805120 */ cvt.s.w $f4, $f10 +/* 07F1FC 7F04A6CC 46004182 */ mul.s $f6, $f8, $f0 +/* 07F200 7F04A6D0 A20E0063 */ sb $t6, 0x63($s0) +/* 07F204 7F04A6D4 46002202 */ mul.s $f8, $f4, $f0 +/* 07F208 7F04A6D8 4600348D */ trunc.w.s $f18, $f6 +/* 07F20C 7F04A6DC 4600418D */ trunc.w.s $f6, $f8 +/* 07F210 7F04A6E0 44089000 */ mfc1 $t0, $f18 +/* 07F214 7F04A6E4 440D3000 */ mfc1 $t5, $f6 +/* 07F218 7F04A6E8 00884821 */ addu $t1, $a0, $t0 +/* 07F21C 7F04A6EC A2090066 */ sb $t1, 0x66($s0) +/* 07F220 7F04A6F0 00AD7021 */ addu $t6, $a1, $t5 +/* 07F224 7F04A6F4 1000000B */ b .L7F04A724 +/* 07F228 7F04A6F8 A20E0069 */ sb $t6, 0x69($s0) +/* 07F22C 7F04A6FC 920F0062 */ lbu $t7, 0x62($s0) +.L7F04A700: +/* 07F230 7F04A700 92180065 */ lbu $t8, 0x65($s0) +/* 07F234 7F04A704 92190068 */ lbu $t9, 0x68($s0) +/* 07F238 7F04A708 9208006B */ lbu $t0, 0x6b($s0) +/* 07F23C 7F04A70C E618006C */ swc1 $f24, 0x6c($s0) +/* 07F240 7F04A710 E6140070 */ swc1 $f20, 0x70($s0) +/* 07F244 7F04A714 A20F0060 */ sb $t7, 0x60($s0) +/* 07F248 7F04A718 A2180063 */ sb $t8, 0x63($s0) +/* 07F24C 7F04A71C A2190066 */ sb $t9, 0x66($s0) +/* 07F250 7F04A720 A2080069 */ sb $t0, 0x69($s0) +.L7F04A724: +/* 07F254 7F04A724 8FAA00A0 */ lw $t2, 0xa0($sp) +.L7F04A728: +/* 07F258 7F04A728 8FA300A4 */ lw $v1, 0xa4($sp) +/* 07F25C 7F04A72C 8FA900BC */ lw $t1, 0xbc($sp) +/* 07F260 7F04A730 AD520000 */ sw $s2, ($t2) +/* 07F264 7F04A734 3C0F8009 */ lui $t7, %hi(monitorimages) +/* 07F268 7F04A738 AD490004 */ sw $t1, 4($t2) +/* 07F26C 7F04A73C 8C6B0008 */ lw $t3, 8($v1) +/* 07F270 7F04A740 8D610000 */ lw $at, ($t3) +/* 07F274 7F04A744 AE410000 */ sw $at, ($s2) +/* 07F278 7F04A748 8D6D0004 */ lw $t5, 4($t3) +/* 07F27C 7F04A74C AE4D0004 */ sw $t5, 4($s2) +/* 07F280 7F04A750 8D610008 */ lw $at, 8($t3) +/* 07F284 7F04A754 AE410008 */ sw $at, 8($s2) +/* 07F288 7F04A758 8D6D000C */ lw $t5, 0xc($t3) +/* 07F28C 7F04A75C AE4D000C */ sw $t5, 0xc($s2) +/* 07F290 7F04A760 8C6E0008 */ lw $t6, 8($v1) +/* 07F294 7F04A764 8DC10010 */ lw $at, 0x10($t6) +/* 07F298 7F04A768 AE410010 */ sw $at, 0x10($s2) +/* 07F29C 7F04A76C 8DD80014 */ lw $t8, 0x14($t6) +/* 07F2A0 7F04A770 AE580014 */ sw $t8, 0x14($s2) +/* 07F2A4 7F04A774 8DC10018 */ lw $at, 0x18($t6) +/* 07F2A8 7F04A778 AE410018 */ sw $at, 0x18($s2) +/* 07F2AC 7F04A77C 8DD8001C */ lw $t8, 0x1c($t6) +/* 07F2B0 7F04A780 AE58001C */ sw $t8, 0x1c($s2) +/* 07F2B4 7F04A784 8C790008 */ lw $t9, 8($v1) +/* 07F2B8 7F04A788 8F210020 */ lw $at, 0x20($t9) +/* 07F2BC 7F04A78C AE410020 */ sw $at, 0x20($s2) +/* 07F2C0 7F04A790 8F290024 */ lw $t1, 0x24($t9) +/* 07F2C4 7F04A794 AE490024 */ sw $t1, 0x24($s2) +/* 07F2C8 7F04A798 8F210028 */ lw $at, 0x28($t9) +/* 07F2CC 7F04A79C AE410028 */ sw $at, 0x28($s2) +/* 07F2D0 7F04A7A0 8F29002C */ lw $t1, 0x2c($t9) +/* 07F2D4 7F04A7A4 AE49002C */ sw $t1, 0x2c($s2) +/* 07F2D8 7F04A7A8 8C6A0008 */ lw $t2, 8($v1) +/* 07F2DC 7F04A7AC 8D410030 */ lw $at, 0x30($t2) +/* 07F2E0 7F04A7B0 AE410030 */ sw $at, 0x30($s2) +/* 07F2E4 7F04A7B4 8D4B0034 */ lw $t3, 0x34($t2) +/* 07F2E8 7F04A7B8 AE4B0034 */ sw $t3, 0x34($s2) +/* 07F2EC 7F04A7BC 8D410038 */ lw $at, 0x38($t2) +/* 07F2F0 7F04A7C0 AE410038 */ sw $at, 0x38($s2) +/* 07F2F4 7F04A7C4 8D4B003C */ lw $t3, 0x3c($t2) +/* 07F2F8 7F04A7C8 AE4B003C */ sw $t3, 0x3c($s2) +/* 07F2FC 7F04A7CC 8E020008 */ lw $v0, 8($s0) +/* 07F300 7F04A7D0 2C410064 */ sltiu $at, $v0, 0x64 +/* 07F304 7F04A7D4 10200007 */ beqz $at, .L7F04A7F4 +/* 07F308 7F04A7D8 00408825 */ move $s1, $v0 +/* 07F30C 7F04A7DC 00026880 */ sll $t5, $v0, 2 +/* 07F310 7F04A7E0 8DEFD120 */ lw $t7, %lo(monitorimages)($t7) +/* 07F314 7F04A7E4 01A26823 */ subu $t5, $t5, $v0 +/* 07F318 7F04A7E8 000D6880 */ sll $t5, $t5, 2 +/* 07F31C 7F04A7EC 10000001 */ b .L7F04A7F4 +/* 07F320 7F04A7F0 01AF8821 */ addu $s1, $t5, $t7 +.L7F04A7F4: +/* 07F324 7F04A7F4 122000A9 */ beqz $s1, .L7F04AA9C +/* 07F328 7F04A7F8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07F32C 7F04A7FC 44810000 */ mtc1 $at, $f0 +/* 07F330 7F04A800 C6120010 */ lwc1 $f18, 0x10($s0) +/* 07F334 7F04A804 C60A0024 */ lwc1 $f10, 0x24($s0) +/* 07F338 7F04A808 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07F33C 7F04A80C 46009582 */ mul.s $f22, $f18, $f0 +/* 07F340 7F04A810 460CA032 */ c.eq.s $f20, $f12 +/* 07F344 7F04A814 46005602 */ mul.s $f24, $f10, $f0 +/* 07F348 7F04A818 4600B386 */ mov.s $f14, $f22 +/* 07F34C 7F04A81C 45010015 */ bc1t .L7F04A874 +/* 07F350 7F04A820 4600C406 */ mov.s $f16, $f24 +/* 07F354 7F04A824 E7AE0054 */ swc1 $f14, 0x54($sp) +/* 07F358 7F04A828 0FC15FA8 */ jal cosf +/* 07F35C 7F04A82C E7B00050 */ swc1 $f16, 0x50($sp) +/* 07F360 7F04A830 3C018005 */ lui $at, %hi(D_80052CB0) +/* 07F364 7F04A834 C43A2CB0 */ lwc1 $f26, %lo(D_80052CB0)($at) +/* 07F368 7F04A838 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07F36C 7F04A83C 461A0502 */ mul.s $f20, $f0, $f26 +/* 07F370 7F04A840 0FC15FAB */ jal sinf +/* 07F374 7F04A844 00000000 */ nop +/* 07F378 7F04A848 4614B582 */ mul.s $f22, $f22, $f20 +/* 07F37C 7F04A84C C7AE0054 */ lwc1 $f14, 0x54($sp) +/* 07F380 7F04A850 C7B00050 */ lwc1 $f16, 0x50($sp) +/* 07F384 7F04A854 461A0082 */ mul.s $f2, $f0, $f26 +/* 07F388 7F04A858 00000000 */ nop +/* 07F38C 7F04A85C 4602C602 */ mul.s $f24, $f24, $f2 +/* 07F390 7F04A860 00000000 */ nop +/* 07F394 7F04A864 46027382 */ mul.s $f14, $f14, $f2 +/* 07F398 7F04A868 00000000 */ nop +/* 07F39C 7F04A86C 46148402 */ mul.s $f16, $f16, $f20 +/* 07F3A0 7F04A870 00000000 */ nop +.L7F04A874: +/* 07F3A4 7F04A874 922E0004 */ lbu $t6, 4($s1) +/* 07F3A8 7F04A878 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 07F3AC 7F04A87C 44810000 */ mtc1 $at, $f0 +/* 07F3B0 7F04A880 448E4000 */ mtc1 $t6, $f8 +/* 07F3B4 7F04A884 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F3B8 7F04A888 05C10004 */ bgez $t6, .L7F04A89C +/* 07F3BC 7F04A88C 468041A0 */ cvt.s.w $f6, $f8 +/* 07F3C0 7F04A890 44819000 */ mtc1 $at, $f18 +/* 07F3C4 7F04A894 00000000 */ nop +/* 07F3C8 7F04A898 46123180 */ add.s $f6, $f6, $f18 +.L7F04A89C: +/* 07F3CC 7F04A89C C60A0038 */ lwc1 $f10, 0x38($s0) +/* 07F3D0 7F04A8A0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F3D4 7F04A8A4 46165100 */ add.s $f4, $f10, $f22 +/* 07F3D8 7F04A8A8 46043202 */ mul.s $f8, $f6, $f4 +/* 07F3DC 7F04A8AC 00000000 */ nop +/* 07F3E0 7F04A8B0 46004482 */ mul.s $f18, $f8, $f0 +/* 07F3E4 7F04A8B4 4600928D */ trunc.w.s $f10, $f18 +/* 07F3E8 7F04A8B8 44085000 */ mfc1 $t0, $f10 +/* 07F3EC 7F04A8BC 00000000 */ nop +/* 07F3F0 7F04A8C0 A6480008 */ sh $t0, 8($s2) +/* 07F3F4 7F04A8C4 92390005 */ lbu $t9, 5($s1) +/* 07F3F8 7F04A8C8 44993000 */ mtc1 $t9, $f6 +/* 07F3FC 7F04A8CC 07210004 */ bgez $t9, .L7F04A8E0 +/* 07F400 7F04A8D0 46803120 */ cvt.s.w $f4, $f6 +/* 07F404 7F04A8D4 44814000 */ mtc1 $at, $f8 +/* 07F408 7F04A8D8 00000000 */ nop +/* 07F40C 7F04A8DC 46082100 */ add.s $f4, $f4, $f8 +.L7F04A8E0: +/* 07F410 7F04A8E0 C612004C */ lwc1 $f18, 0x4c($s0) +/* 07F414 7F04A8E4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F418 7F04A8E8 46189280 */ add.s $f10, $f18, $f24 +/* 07F41C 7F04A8EC 460A2182 */ mul.s $f6, $f4, $f10 +/* 07F420 7F04A8F0 00000000 */ nop +/* 07F424 7F04A8F4 46003202 */ mul.s $f8, $f6, $f0 +/* 07F428 7F04A8F8 4600448D */ trunc.w.s $f18, $f8 +/* 07F42C 7F04A8FC 440C9000 */ mfc1 $t4, $f18 +/* 07F430 7F04A900 00000000 */ nop +/* 07F434 7F04A904 A64C000A */ sh $t4, 0xa($s2) +/* 07F438 7F04A908 922A0004 */ lbu $t2, 4($s1) +/* 07F43C 7F04A90C 448A2000 */ mtc1 $t2, $f4 +/* 07F440 7F04A910 05410004 */ bgez $t2, .L7F04A924 +/* 07F444 7F04A914 468022A0 */ cvt.s.w $f10, $f4 +/* 07F448 7F04A918 44813000 */ mtc1 $at, $f6 +/* 07F44C 7F04A91C 00000000 */ nop +/* 07F450 7F04A920 46065280 */ add.s $f10, $f10, $f6 +.L7F04A924: +/* 07F454 7F04A924 C6080038 */ lwc1 $f8, 0x38($s0) +/* 07F458 7F04A928 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F45C 7F04A92C 460E4481 */ sub.s $f18, $f8, $f14 +/* 07F460 7F04A930 46125102 */ mul.s $f4, $f10, $f18 +/* 07F464 7F04A934 00000000 */ nop +/* 07F468 7F04A938 46002182 */ mul.s $f6, $f4, $f0 +/* 07F46C 7F04A93C 4600320D */ trunc.w.s $f8, $f6 +/* 07F470 7F04A940 440D4000 */ mfc1 $t5, $f8 +/* 07F474 7F04A944 00000000 */ nop +/* 07F478 7F04A948 A64D0018 */ sh $t5, 0x18($s2) +/* 07F47C 7F04A94C 922F0005 */ lbu $t7, 5($s1) +/* 07F480 7F04A950 448F5000 */ mtc1 $t7, $f10 +/* 07F484 7F04A954 05E10004 */ bgez $t7, .L7F04A968 +/* 07F488 7F04A958 468054A0 */ cvt.s.w $f18, $f10 +/* 07F48C 7F04A95C 44812000 */ mtc1 $at, $f4 +/* 07F490 7F04A960 00000000 */ nop +/* 07F494 7F04A964 46049480 */ add.s $f18, $f18, $f4 +.L7F04A968: +/* 07F498 7F04A968 C606004C */ lwc1 $f6, 0x4c($s0) +/* 07F49C 7F04A96C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F4A0 7F04A970 46103200 */ add.s $f8, $f6, $f16 +/* 07F4A4 7F04A974 46089282 */ mul.s $f10, $f18, $f8 +/* 07F4A8 7F04A978 00000000 */ nop +/* 07F4AC 7F04A97C 46005102 */ mul.s $f4, $f10, $f0 +/* 07F4B0 7F04A980 4600218D */ trunc.w.s $f6, $f4 +/* 07F4B4 7F04A984 44183000 */ mfc1 $t8, $f6 +/* 07F4B8 7F04A988 00000000 */ nop +/* 07F4BC 7F04A98C A658001A */ sh $t8, 0x1a($s2) +/* 07F4C0 7F04A990 92280004 */ lbu $t0, 4($s1) +/* 07F4C4 7F04A994 44889000 */ mtc1 $t0, $f18 +/* 07F4C8 7F04A998 05010004 */ bgez $t0, .L7F04A9AC +/* 07F4CC 7F04A99C 46809220 */ cvt.s.w $f8, $f18 +/* 07F4D0 7F04A9A0 44815000 */ mtc1 $at, $f10 +/* 07F4D4 7F04A9A4 00000000 */ nop +/* 07F4D8 7F04A9A8 460A4200 */ add.s $f8, $f8, $f10 +.L7F04A9AC: +/* 07F4DC 7F04A9AC C6040038 */ lwc1 $f4, 0x38($s0) +/* 07F4E0 7F04A9B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F4E4 7F04A9B4 46162181 */ sub.s $f6, $f4, $f22 +/* 07F4E8 7F04A9B8 46064482 */ mul.s $f18, $f8, $f6 +/* 07F4EC 7F04A9BC 00000000 */ nop +/* 07F4F0 7F04A9C0 46009282 */ mul.s $f10, $f18, $f0 +/* 07F4F4 7F04A9C4 4600510D */ trunc.w.s $f4, $f10 +/* 07F4F8 7F04A9C8 44092000 */ mfc1 $t1, $f4 +/* 07F4FC 7F04A9CC 00000000 */ nop +/* 07F500 7F04A9D0 A6490028 */ sh $t1, 0x28($s2) +/* 07F504 7F04A9D4 922C0005 */ lbu $t4, 5($s1) +/* 07F508 7F04A9D8 448C4000 */ mtc1 $t4, $f8 +/* 07F50C 7F04A9DC 05810004 */ bgez $t4, .L7F04A9F0 +/* 07F510 7F04A9E0 468041A0 */ cvt.s.w $f6, $f8 +/* 07F514 7F04A9E4 44819000 */ mtc1 $at, $f18 +/* 07F518 7F04A9E8 00000000 */ nop +/* 07F51C 7F04A9EC 46123180 */ add.s $f6, $f6, $f18 +.L7F04A9F0: +/* 07F520 7F04A9F0 C60A004C */ lwc1 $f10, 0x4c($s0) +/* 07F524 7F04A9F4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F528 7F04A9F8 46185101 */ sub.s $f4, $f10, $f24 +/* 07F52C 7F04A9FC 46043202 */ mul.s $f8, $f6, $f4 +/* 07F530 7F04AA00 00000000 */ nop +/* 07F534 7F04AA04 46004482 */ mul.s $f18, $f8, $f0 +/* 07F538 7F04AA08 4600928D */ trunc.w.s $f10, $f18 +/* 07F53C 7F04AA0C 440B5000 */ mfc1 $t3, $f10 +/* 07F540 7F04AA10 00000000 */ nop +/* 07F544 7F04AA14 A64B002A */ sh $t3, 0x2a($s2) +/* 07F548 7F04AA18 922D0004 */ lbu $t5, 4($s1) +/* 07F54C 7F04AA1C 448D3000 */ mtc1 $t5, $f6 +/* 07F550 7F04AA20 05A10004 */ bgez $t5, .L7F04AA34 +/* 07F554 7F04AA24 46803120 */ cvt.s.w $f4, $f6 +/* 07F558 7F04AA28 44814000 */ mtc1 $at, $f8 +/* 07F55C 7F04AA2C 00000000 */ nop +/* 07F560 7F04AA30 46082100 */ add.s $f4, $f4, $f8 +.L7F04AA34: +/* 07F564 7F04AA34 C6120038 */ lwc1 $f18, 0x38($s0) +/* 07F568 7F04AA38 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F56C 7F04AA3C 460E9280 */ add.s $f10, $f18, $f14 +/* 07F570 7F04AA40 460A2182 */ mul.s $f6, $f4, $f10 +/* 07F574 7F04AA44 00000000 */ nop +/* 07F578 7F04AA48 46003202 */ mul.s $f8, $f6, $f0 +/* 07F57C 7F04AA4C 4600448D */ trunc.w.s $f18, $f8 +/* 07F580 7F04AA50 440E9000 */ mfc1 $t6, $f18 +/* 07F584 7F04AA54 00000000 */ nop +/* 07F588 7F04AA58 A64E0038 */ sh $t6, 0x38($s2) +/* 07F58C 7F04AA5C 92380005 */ lbu $t8, 5($s1) +/* 07F590 7F04AA60 44982000 */ mtc1 $t8, $f4 +/* 07F594 7F04AA64 07010004 */ bgez $t8, .L7F04AA78 +/* 07F598 7F04AA68 468022A0 */ cvt.s.w $f10, $f4 +/* 07F59C 7F04AA6C 44813000 */ mtc1 $at, $f6 +/* 07F5A0 7F04AA70 00000000 */ nop +/* 07F5A4 7F04AA74 46065280 */ add.s $f10, $f10, $f6 +.L7F04AA78: +/* 07F5A8 7F04AA78 C608004C */ lwc1 $f8, 0x4c($s0) +/* 07F5AC 7F04AA7C 46104481 */ sub.s $f18, $f8, $f16 +/* 07F5B0 7F04AA80 46125102 */ mul.s $f4, $f10, $f18 +/* 07F5B4 7F04AA84 00000000 */ nop +/* 07F5B8 7F04AA88 46002182 */ mul.s $f6, $f4, $f0 +/* 07F5BC 7F04AA8C 4600320D */ trunc.w.s $f8, $f6 +/* 07F5C0 7F04AA90 44194000 */ mfc1 $t9, $f8 +/* 07F5C4 7F04AA94 00000000 */ nop +/* 07F5C8 7F04AA98 A659003A */ sh $t9, 0x3a($s2) +.L7F04AA9C: +/* 07F5CC 7F04AA9C 92020060 */ lbu $v0, 0x60($s0) +/* 07F5D0 7F04AAA0 240C0002 */ li $t4, 2 +/* 07F5D4 7F04AAA4 3C0DB700 */ lui $t5, 0xb700 +/* 07F5D8 7F04AAA8 A242003C */ sb $v0, 0x3c($s2) +/* 07F5DC 7F04AAAC A242002C */ sb $v0, 0x2c($s2) +/* 07F5E0 7F04AAB0 A242001C */ sb $v0, 0x1c($s2) +/* 07F5E4 7F04AAB4 A242000C */ sb $v0, 0xc($s2) +/* 07F5E8 7F04AAB8 92020063 */ lbu $v0, 0x63($s0) +/* 07F5EC 7F04AABC 240F2000 */ li $t7, 8192 +/* 07F5F0 7F04AAC0 27A400BC */ addiu $a0, $sp, 0xbc +/* 07F5F4 7F04AAC4 A242003D */ sb $v0, 0x3d($s2) +/* 07F5F8 7F04AAC8 A242002D */ sb $v0, 0x2d($s2) +/* 07F5FC 7F04AACC A242001D */ sb $v0, 0x1d($s2) +/* 07F600 7F04AAD0 A242000D */ sb $v0, 0xd($s2) +/* 07F604 7F04AAD4 92030066 */ lbu $v1, 0x66($s0) +/* 07F608 7F04AAD8 A243003E */ sb $v1, 0x3e($s2) +/* 07F60C 7F04AADC A243002E */ sb $v1, 0x2e($s2) +/* 07F610 7F04AAE0 A243001E */ sb $v1, 0x1e($s2) +/* 07F614 7F04AAE4 A243000E */ sb $v1, 0xe($s2) +/* 07F618 7F04AAE8 92020069 */ lbu $v0, 0x69($s0) +/* 07F61C 7F04AAEC A242003F */ sb $v0, 0x3f($s2) +/* 07F620 7F04AAF0 A242002F */ sb $v0, 0x2f($s2) +/* 07F624 7F04AAF4 A242001F */ sb $v0, 0x1f($s2) +/* 07F628 7F04AAF8 A242000F */ sb $v0, 0xf($s2) +/* 07F62C 7F04AAFC 92090069 */ lbu $t1, 0x69($s0) +/* 07F630 7F04AB00 292100FF */ slti $at, $t1, 0xff +/* 07F634 7F04AB04 50200003 */ beql $at, $zero, .L7F04AB14 +/* 07F638 7F04AB08 8FAA00BC */ lw $t2, 0xbc($sp) +/* 07F63C 7F04AB0C AFAC00C4 */ sw $t4, 0xc4($sp) +/* 07F640 7F04AB10 8FAA00BC */ lw $t2, 0xbc($sp) +.L7F04AB14: +/* 07F644 7F04AB14 240E0002 */ li $t6, 2 +/* 07F648 7F04AB18 02202825 */ move $a1, $s1 +/* 07F64C 7F04AB1C 254B0008 */ addiu $t3, $t2, 8 +/* 07F650 7F04AB20 AFAB00BC */ sw $t3, 0xbc($sp) +/* 07F654 7F04AB24 AD4F0004 */ sw $t7, 4($t2) +/* 07F658 7F04AB28 AD4D0000 */ sw $t5, ($t2) +/* 07F65C 7F04AB2C AFAE0010 */ sw $t6, 0x10($sp) +/* 07F660 7F04AB30 8FA700C0 */ lw $a3, 0xc0($sp) +/* 07F664 7F04AB34 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 07F668 7F04AB38 8FA600C4 */ lw $a2, 0xc4($sp) +/* 07F66C 7F04AB3C 8FB000BC */ lw $s0, 0xbc($sp) +/* 07F670 7F04AB40 3C190102 */ lui $t9, (0x01020040 >> 16) # lui $t9, 0x102 +/* 07F674 7F04AB44 37390040 */ ori $t9, (0x01020040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 07F678 7F04AB48 26080008 */ addiu $t0, $s0, 8 +/* 07F67C 7F04AB4C AFA800BC */ sw $t0, 0xbc($sp) +/* 07F680 7F04AB50 AE190000 */ sw $t9, ($s0) +/* 07F684 7F04AB54 8FA900B0 */ lw $t1, 0xb0($sp) +/* 07F688 7F04AB58 0C003A2C */ jal osVirtualToPhysical +/* 07F68C 7F04AB5C 8D24000C */ lw $a0, 0xc($t1) +/* 07F690 7F04AB60 AE020004 */ sw $v0, 4($s0) +/* 07F694 7F04AB64 8FB100BC */ lw $s1, 0xbc($sp) +/* 07F698 7F04AB68 3C0BBC00 */ lui $t3, (0xBC001006 >> 16) # lui $t3, 0xbc00 +/* 07F69C 7F04AB6C 356B1006 */ ori $t3, (0xBC001006 & 0xFFFF) # ori $t3, $t3, 0x1006 +/* 07F6A0 7F04AB70 262A0008 */ addiu $t2, $s1, 8 +/* 07F6A4 7F04AB74 AFAA00BC */ sw $t2, 0xbc($sp) +/* 07F6A8 7F04AB78 02402025 */ move $a0, $s2 +/* 07F6AC 7F04AB7C 0C003A2C */ jal osVirtualToPhysical +/* 07F6B0 7F04AB80 AE2B0000 */ sw $t3, ($s1) +/* 07F6B4 7F04AB84 AE220004 */ sw $v0, 4($s1) +/* 07F6B8 7F04AB88 8FAD00BC */ lw $t5, 0xbc($sp) +/* 07F6BC 7F04AB8C 3C0E0430 */ lui $t6, (0x04300040 >> 16) # lui $t6, 0x430 +/* 07F6C0 7F04AB90 35CE0040 */ ori $t6, (0x04300040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 07F6C4 7F04AB94 25AF0008 */ addiu $t7, $t5, 8 +/* 07F6C8 7F04AB98 AFAF00BC */ sw $t7, 0xbc($sp) +/* 07F6CC 7F04AB9C 3C180400 */ lui $t8, 0x400 +/* 07F6D0 7F04ABA0 ADB80004 */ sw $t8, 4($t5) +/* 07F6D4 7F04ABA4 ADAE0000 */ sw $t6, ($t5) +/* 07F6D8 7F04ABA8 8FA800BC */ lw $t0, 0xbc($sp) +/* 07F6DC 7F04ABAC 3C09B100 */ lui $t1, (0xB1000032 >> 16) # lui $t1, 0xb100 +/* 07F6E0 7F04ABB0 35290032 */ ori $t1, (0xB1000032 & 0xFFFF) # ori $t1, $t1, 0x32 +/* 07F6E4 7F04ABB4 25190008 */ addiu $t9, $t0, 8 +/* 07F6E8 7F04ABB8 AFB900BC */ sw $t9, 0xbc($sp) +/* 07F6EC 7F04ABBC 240C2010 */ li $t4, 8208 +/* 07F6F0 7F04ABC0 AD0C0004 */ sw $t4, 4($t0) +/* 07F6F4 7F04ABC4 AD090000 */ sw $t1, ($t0) +/* 07F6F8 7F04ABC8 8FAA00BC */ lw $t2, 0xbc($sp) +/* 07F6FC 7F04ABCC 3C0DB800 */ lui $t5, 0xb800 +/* 07F700 7F04ABD0 3C0F0601 */ lui $t7, 0x601 +/* 07F704 7F04ABD4 254B0008 */ addiu $t3, $t2, 8 +/* 07F708 7F04ABD8 AFAB00BC */ sw $t3, 0xbc($sp) +/* 07F70C 7F04ABDC AD400004 */ sw $zero, 4($t2) +/* 07F710 7F04ABE0 AD4D0000 */ sw $t5, ($t2) +/* 07F714 7F04ABE4 8FA600A8 */ lw $a2, 0xa8($sp) +/* 07F718 7F04ABE8 ACCF0000 */ sw $t7, ($a2) +/* 07F71C 7F04ABEC 8FAE00BC */ lw $t6, 0xbc($sp) +/* 07F720 7F04ABF0 ACCE0004 */ sw $t6, 4($a2) +.L7F04ABF4: +/* 07F724 7F04ABF4 8FBF004C */ lw $ra, 0x4c($sp) +.L7F04ABF8: +/* 07F728 7F04ABF8 8FA200BC */ lw $v0, 0xbc($sp) +/* 07F72C 7F04ABFC D7B40020 */ ldc1 $f20, 0x20($sp) +/* 07F730 7F04AC00 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 07F734 7F04AC04 D7B80030 */ ldc1 $f24, 0x30($sp) +/* 07F738 7F04AC08 D7BA0038 */ ldc1 $f26, 0x38($sp) +/* 07F73C 7F04AC0C 8FB00040 */ lw $s0, 0x40($sp) +/* 07F740 7F04AC10 8FB10044 */ lw $s1, 0x44($sp) +/* 07F744 7F04AC14 8FB20048 */ lw $s2, 0x48($sp) +/* 07F748 7F04AC18 03E00008 */ jr $ra +/* 07F74C 7F04AC1C 27BD00B0 */ addiu $sp, $sp, 0xb0 +) +#endif +#endif + + + + +#ifdef NONMATCHING +void sub_GAME_7F04AC20(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04AC20 +/* 07F750 7F04AC20 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 07F754 7F04AC24 AFBF0024 */ sw $ra, 0x24($sp) +/* 07F758 7F04AC28 AFB00020 */ sw $s0, 0x20($sp) +/* 07F75C 7F04AC2C AFA40078 */ sw $a0, 0x78($sp) +/* 07F760 7F04AC30 AFA60080 */ sw $a2, 0x80($sp) +/* 07F764 7F04AC34 908F0001 */ lbu $t7, 1($a0) +/* 07F768 7F04AC38 00A08025 */ move $s0, $a1 +/* 07F76C 7F04AC3C 31F80002 */ andi $t8, $t7, 2 +/* 07F770 7F04AC40 5300013F */ beql $t8, $zero, .L7F04B140 +/* 07F774 7F04AC44 8FBF0024 */ lw $ra, 0x24($sp) +/* 07F778 7F04AC48 8C990004 */ lw $t9, 4($a0) +/* 07F77C 7F04AC4C AFB90074 */ sw $t9, 0x74($sp) +/* 07F780 7F04AC50 8F280014 */ lw $t0, 0x14($t9) +/* 07F784 7F04AC54 AFA80070 */ sw $t0, 0x70($sp) +/* 07F788 7F04AC58 8F290008 */ lw $t1, 8($t9) +/* 07F78C 7F04AC5C 312A0200 */ andi $t2, $t1, 0x200 +/* 07F790 7F04AC60 000A582B */ sltu $t3, $zero, $t2 +/* 07F794 7F04AC64 11600005 */ beqz $t3, .L7F04AC7C +/* 07F798 7F04AC68 AFAB0028 */ sw $t3, 0x28($sp) +/* 07F79C 7F04AC6C 0FC1E0E5 */ jal get_BONDdata_field_10E0 +/* 07F7A0 7F04AC70 00000000 */ nop +/* 07F7A4 7F04AC74 0002602B */ sltu $t4, $zero, $v0 +/* 07F7A8 7F04AC78 AFAC0028 */ sw $t4, 0x28($sp) +.L7F04AC7C: +/* 07F7AC 7F04AC7C 8FAD0074 */ lw $t5, 0x74($sp) +/* 07F7B0 7F04AC80 2401000A */ li $at, 10 +/* 07F7B4 7F04AC84 8E07000C */ lw $a3, 0xc($s0) +/* 07F7B8 7F04AC88 91A30003 */ lbu $v1, 3($t5) +/* 07F7BC 7F04AC8C 54610022 */ bnel $v1, $at, .L7F04AD18 +/* 07F7C0 7F04AC90 2401000B */ li $at, 11 +/* 07F7C4 7F04AC94 8E0F0008 */ lw $t7, 8($s0) +/* 07F7C8 7F04AC98 8FA40070 */ lw $a0, 0x70($sp) +/* 07F7CC 7F04AC9C 31F80001 */ andi $t8, $t7, 1 +/* 07F7D0 7F04ACA0 53000075 */ beql $t8, $zero, .L7F04AE78 +/* 07F7D4 7F04ACA4 24010001 */ li $at, 1 +/* 07F7D8 7F04ACA8 8DA8000C */ lw $t0, 0xc($t5) +/* 07F7DC 7F04ACAC 8FAE0078 */ lw $t6, 0x78($sp) +/* 07F7E0 7F04ACB0 8FA90074 */ lw $t1, 0x74($sp) +/* 07F7E4 7F04ACB4 0008CBC0 */ sll $t9, $t0, 0xf +/* 07F7E8 7F04ACB8 07210003 */ bgez $t9, .L7F04ACC8 +/* 07F7EC 7F04ACBC 8DC20004 */ lw $v0, 4($t6) +/* 07F7F0 7F04ACC0 10000008 */ b .L7F04ACE4 +/* 07F7F4 7F04ACC4 00001825 */ move $v1, $zero +.L7F04ACC8: +/* 07F7F8 7F04ACC8 8D2A0008 */ lw $t2, 8($t1) +/* 07F7FC 7F04ACCC 24030001 */ li $v1, 1 +/* 07F800 7F04ACD0 000A58C0 */ sll $t3, $t2, 3 +/* 07F804 7F04ACD4 05610003 */ bgez $t3, .L7F04ACE4 +/* 07F808 7F04ACD8 00000000 */ nop +/* 07F80C 7F04ACDC 10000001 */ b .L7F04ACE4 +/* 07F810 7F04ACE0 24030008 */ li $v1, 8 +.L7F04ACE4: +/* 07F814 7F04ACE4 8C8F0008 */ lw $t7, 8($a0) +/* 07F818 7F04ACE8 240E0001 */ li $t6, 1 +/* 07F81C 7F04ACEC 24460080 */ addiu $a2, $v0, 0x80 +/* 07F820 7F04ACF0 8DF80008 */ lw $t8, 8($t7) +/* 07F824 7F04ACF4 8F050000 */ lw $a1, ($t8) +/* 07F828 7F04ACF8 AFAE0014 */ sw $t6, 0x14($sp) +/* 07F82C 7F04ACFC 0FC127D2 */ jal process_monitor_animation_microcode +/* 07F830 7F04AD00 AFA30010 */ sw $v1, 0x10($sp) +/* 07F834 7F04AD04 8FAD0074 */ lw $t5, 0x74($sp) +/* 07F838 7F04AD08 00403825 */ move $a3, $v0 +/* 07F83C 7F04AD0C 10000059 */ b .L7F04AE74 +/* 07F840 7F04AD10 91A30003 */ lbu $v1, 3($t5) +/* 07F844 7F04AD14 2401000B */ li $at, 11 +.L7F04AD18: +/* 07F848 7F04AD18 54610057 */ bnel $v1, $at, .L7F04AE78 +/* 07F84C 7F04AD1C 24010001 */ li $at, 1 +/* 07F850 7F04AD20 8E080008 */ lw $t0, 8($s0) +/* 07F854 7F04AD24 8FAA0074 */ lw $t2, 0x74($sp) +/* 07F858 7F04AD28 8FA40070 */ lw $a0, 0x70($sp) +/* 07F85C 7F04AD2C 31190001 */ andi $t9, $t0, 1 +/* 07F860 7F04AD30 53200051 */ beql $t9, $zero, .L7F04AE78 +/* 07F864 7F04AD34 24010001 */ li $at, 1 +/* 07F868 7F04AD38 8D4B000C */ lw $t3, 0xc($t2) +/* 07F86C 7F04AD3C 8FA90078 */ lw $t1, 0x78($sp) +/* 07F870 7F04AD40 8FAF0074 */ lw $t7, 0x74($sp) +/* 07F874 7F04AD44 000B63C0 */ sll $t4, $t3, 0xf +/* 07F878 7F04AD48 05810003 */ bgez $t4, .L7F04AD58 +/* 07F87C 7F04AD4C 8D220004 */ lw $v0, 4($t1) +/* 07F880 7F04AD50 10000008 */ b .L7F04AD74 +/* 07F884 7F04AD54 00001825 */ move $v1, $zero +.L7F04AD58: +/* 07F888 7F04AD58 8DF80008 */ lw $t8, 8($t7) +/* 07F88C 7F04AD5C 24030001 */ li $v1, 1 +/* 07F890 7F04AD60 001870C0 */ sll $t6, $t8, 3 +/* 07F894 7F04AD64 05C10003 */ bgez $t6, .L7F04AD74 +/* 07F898 7F04AD68 00000000 */ nop +/* 07F89C 7F04AD6C 10000001 */ b .L7F04AD74 +/* 07F8A0 7F04AD70 24030008 */ li $v1, 8 +.L7F04AD74: +/* 07F8A4 7F04AD74 8C880008 */ lw $t0, 8($a0) +/* 07F8A8 7F04AD78 24090001 */ li $t1, 1 +/* 07F8AC 7F04AD7C 24460080 */ addiu $a2, $v0, 0x80 +/* 07F8B0 7F04AD80 8D190008 */ lw $t9, 8($t0) +/* 07F8B4 7F04AD84 8F250000 */ lw $a1, ($t9) +/* 07F8B8 7F04AD88 AFA20058 */ sw $v0, 0x58($sp) +/* 07F8BC 7F04AD8C AFA90014 */ sw $t1, 0x14($sp) +/* 07F8C0 7F04AD90 0FC127D2 */ jal process_monitor_animation_microcode +/* 07F8C4 7F04AD94 AFA30010 */ sw $v1, 0x10($sp) +/* 07F8C8 7F04AD98 8FAA0074 */ lw $t2, 0x74($sp) +/* 07F8CC 7F04AD9C 00403825 */ move $a3, $v0 +/* 07F8D0 7F04ADA0 8FAF0074 */ lw $t7, 0x74($sp) +/* 07F8D4 7F04ADA4 8D4B000C */ lw $t3, 0xc($t2) +/* 07F8D8 7F04ADA8 8FA40070 */ lw $a0, 0x70($sp) +/* 07F8DC 7F04ADAC 000B63C0 */ sll $t4, $t3, 0xf +/* 07F8E0 7F04ADB0 05830004 */ bgezl $t4, .L7F04ADC4 +/* 07F8E4 7F04ADB4 8DF80008 */ lw $t8, 8($t7) +/* 07F8E8 7F04ADB8 10000009 */ b .L7F04ADE0 +/* 07F8EC 7F04ADBC 00001825 */ move $v1, $zero +/* 07F8F0 7F04ADC0 8DF80008 */ lw $t8, 8($t7) +.L7F04ADC4: +/* 07F8F4 7F04ADC4 3C013000 */ lui $at, 0x3000 +/* 07F8F8 7F04ADC8 24030001 */ li $v1, 1 +/* 07F8FC 7F04ADCC 03017024 */ and $t6, $t8, $at +/* 07F900 7F04ADD0 11C00003 */ beqz $t6, .L7F04ADE0 +/* 07F904 7F04ADD4 00000000 */ nop +/* 07F908 7F04ADD8 10000001 */ b .L7F04ADE0 +/* 07F90C 7F04ADDC 24030008 */ li $v1, 8 +.L7F04ADE0: +/* 07F910 7F04ADE0 8C880008 */ lw $t0, 8($a0) +/* 07F914 7F04ADE4 8FA60058 */ lw $a2, 0x58($sp) +/* 07F918 7F04ADE8 24090001 */ li $t1, 1 +/* 07F91C 7F04ADEC 8D190008 */ lw $t9, 8($t0) +/* 07F920 7F04ADF0 24C600F4 */ addiu $a2, $a2, 0xf4 +/* 07F924 7F04ADF4 8F250004 */ lw $a1, 4($t9) +/* 07F928 7F04ADF8 AFA30060 */ sw $v1, 0x60($sp) +/* 07F92C 7F04ADFC AFA90014 */ sw $t1, 0x14($sp) +/* 07F930 7F04AE00 0FC127D2 */ jal process_monitor_animation_microcode +/* 07F934 7F04AE04 AFA30010 */ sw $v1, 0x10($sp) +/* 07F938 7F04AE08 8FA40070 */ lw $a0, 0x70($sp) +/* 07F93C 7F04AE0C 8FA30060 */ lw $v1, 0x60($sp) +/* 07F940 7F04AE10 8FA60058 */ lw $a2, 0x58($sp) +/* 07F944 7F04AE14 8C8B0008 */ lw $t3, 8($a0) +/* 07F948 7F04AE18 240F0001 */ li $t7, 1 +/* 07F94C 7F04AE1C 00403825 */ move $a3, $v0 +/* 07F950 7F04AE20 8D6C0008 */ lw $t4, 8($t3) +/* 07F954 7F04AE24 24C60168 */ addiu $a2, $a2, 0x168 +/* 07F958 7F04AE28 8D850008 */ lw $a1, 8($t4) +/* 07F95C 7F04AE2C AFAF0014 */ sw $t7, 0x14($sp) +/* 07F960 7F04AE30 0FC127D2 */ jal process_monitor_animation_microcode +/* 07F964 7F04AE34 AFA30010 */ sw $v1, 0x10($sp) +/* 07F968 7F04AE38 8FA40070 */ lw $a0, 0x70($sp) +/* 07F96C 7F04AE3C 8FA30060 */ lw $v1, 0x60($sp) +/* 07F970 7F04AE40 8FA60058 */ lw $a2, 0x58($sp) +/* 07F974 7F04AE44 8C8E0008 */ lw $t6, 8($a0) +/* 07F978 7F04AE48 24080001 */ li $t0, 1 +/* 07F97C 7F04AE4C 00403825 */ move $a3, $v0 +/* 07F980 7F04AE50 8DCD0008 */ lw $t5, 8($t6) +/* 07F984 7F04AE54 24C601DC */ addiu $a2, $a2, 0x1dc +/* 07F988 7F04AE58 8DA5000C */ lw $a1, 0xc($t5) +/* 07F98C 7F04AE5C AFA80014 */ sw $t0, 0x14($sp) +/* 07F990 7F04AE60 0FC127D2 */ jal process_monitor_animation_microcode +/* 07F994 7F04AE64 AFA30010 */ sw $v1, 0x10($sp) +/* 07F998 7F04AE68 8FB90074 */ lw $t9, 0x74($sp) +/* 07F99C 7F04AE6C 00403825 */ move $a3, $v0 +/* 07F9A0 7F04AE70 93230003 */ lbu $v1, 3($t9) +.L7F04AE74: +/* 07F9A4 7F04AE74 24010001 */ li $at, 1 +.L7F04AE78: +/* 07F9A8 7F04AE78 1461001A */ bne $v1, $at, .L7F04AEE4 +/* 07F9AC 7F04AE7C 8FA40074 */ lw $a0, 0x74($sp) +/* 07F9B0 7F04AE80 8FA90078 */ lw $t1, 0x78($sp) +/* 07F9B4 7F04AE84 00E01025 */ move $v0, $a3 +/* 07F9B8 7F04AE88 3C0AB600 */ lui $t2, 0xb600 +/* 07F9BC 7F04AE8C 8D230004 */ lw $v1, 4($t1) +/* 07F9C0 7F04AE90 240B3000 */ li $t3, 12288 +/* 07F9C4 7F04AE94 AC4B0004 */ sw $t3, 4($v0) +/* 07F9C8 7F04AE98 AC4A0000 */ sw $t2, ($v0) +/* 07F9CC 7F04AE9C 946C0098 */ lhu $t4, 0x98($v1) +/* 07F9D0 7F04AEA0 24E70008 */ addiu $a3, $a3, 8 +/* 07F9D4 7F04AEA4 24180002 */ li $t8, 2 +/* 07F9D8 7F04AEA8 318F0008 */ andi $t7, $t4, 8 +/* 07F9DC 7F04AEAC 11E00003 */ beqz $t7, .L7F04AEBC +/* 07F9E0 7F04AEB0 240E0003 */ li $t6, 3 +/* 07F9E4 7F04AEB4 10000002 */ b .L7F04AEC0 +/* 07F9E8 7F04AEB8 AE18003C */ sw $t8, 0x3c($s0) +.L7F04AEBC: +/* 07F9EC 7F04AEBC AE0E003C */ sw $t6, 0x3c($s0) +.L7F04AEC0: +/* 07F9F0 7F04AEC0 8E0D0030 */ lw $t5, 0x30($s0) +/* 07F9F4 7F04AEC4 24010009 */ li $at, 9 +/* 07F9F8 7F04AEC8 55A1004B */ bnel $t5, $at, .L7F04AFF8 +/* 07F9FC 7F04AECC 8FB90028 */ lw $t9, 0x28($sp) +/* 07FA00 7F04AED0 8E080034 */ lw $t0, 0x34($s0) +/* 07FA04 7F04AED4 2401FF00 */ li $at, -256 +/* 07FA08 7F04AED8 0101C824 */ and $t9, $t0, $at +/* 07FA0C 7F04AEDC 10000045 */ b .L7F04AFF4 +/* 07FA10 7F04AEE0 AE190034 */ sw $t9, 0x34($s0) +.L7F04AEE4: +/* 07FA14 7F04AEE4 0FC12D1E */ jal sub_GAME_7F04B478 +/* 07FA18 7F04AEE8 AFA70064 */ sw $a3, 0x64($sp) +/* 07FA1C 7F04AEEC 8FA70064 */ lw $a3, 0x64($sp) +/* 07FA20 7F04AEF0 1040000F */ beqz $v0, .L7F04AF30 +/* 07FA24 7F04AEF4 00002825 */ move $a1, $zero +/* 07FA28 7F04AEF8 8C430004 */ lw $v1, 4($v0) +/* 07FA2C 7F04AEFC 8FA90074 */ lw $t1, 0x74($sp) +/* 07FA30 7F04AF00 5060000C */ beql $v1, $zero, .L7F04AF34 +/* 07FA34 7F04AF04 8FA40074 */ lw $a0, 0x74($sp) +/* 07FA38 7F04AF08 8D2A0014 */ lw $t2, 0x14($t1) +/* 07FA3C 7F04AF0C 946C001A */ lhu $t4, 0x1a($v1) +/* 07FA40 7F04AF10 8C780008 */ lw $t8, 8($v1) +/* 07FA44 7F04AF14 8D4B0010 */ lw $t3, 0x10($t2) +/* 07FA48 7F04AF18 000C7880 */ sll $t7, $t4, 2 +/* 07FA4C 7F04AF1C 016F1021 */ addu $v0, $t3, $t7 +/* 07FA50 7F04AF20 8C4E0000 */ lw $t6, ($v0) +/* 07FA54 7F04AF24 530E0003 */ beql $t8, $t6, .L7F04AF34 +/* 07FA58 7F04AF28 8FA40074 */ lw $a0, 0x74($sp) +/* 07FA5C 7F04AF2C 24050001 */ li $a1, 1 +.L7F04AF30: +/* 07FA60 7F04AF30 8FA40074 */ lw $a0, 0x74($sp) +.L7F04AF34: +/* 07FA64 7F04AF34 AFA50040 */ sw $a1, 0x40($sp) +/* 07FA68 7F04AF38 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 07FA6C 7F04AF3C AFA70064 */ sw $a3, 0x64($sp) +/* 07FA70 7F04AF40 8FA50040 */ lw $a1, 0x40($sp) +/* 07FA74 7F04AF44 10400003 */ beqz $v0, .L7F04AF54 +/* 07FA78 7F04AF48 8FA70064 */ lw $a3, 0x64($sp) +/* 07FA7C 7F04AF4C 14A0000B */ bnez $a1, .L7F04AF7C +/* 07FA80 7F04AF50 8FA40074 */ lw $a0, 0x74($sp) +.L7F04AF54: +/* 07FA84 7F04AF54 8E080030 */ lw $t0, 0x30($s0) +/* 07FA88 7F04AF58 240D0003 */ li $t5, 3 +/* 07FA8C 7F04AF5C 24010009 */ li $at, 9 +/* 07FA90 7F04AF60 15010024 */ bne $t0, $at, .L7F04AFF4 +/* 07FA94 7F04AF64 AE0D003C */ sw $t5, 0x3c($s0) +/* 07FA98 7F04AF68 8E190034 */ lw $t9, 0x34($s0) +/* 07FA9C 7F04AF6C 2401FF00 */ li $at, -256 +/* 07FAA0 7F04AF70 03214824 */ and $t1, $t9, $at +/* 07FAA4 7F04AF74 1000001F */ b .L7F04AFF4 +/* 07FAA8 7F04AF78 AE090034 */ sw $t1, 0x34($s0) +.L7F04AF7C: +/* 07FAAC 7F04AF7C 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 07FAB0 7F04AF80 AFA70064 */ sw $a3, 0x64($sp) +/* 07FAB4 7F04AF84 8E0C0030 */ lw $t4, 0x30($s0) +/* 07FAB8 7F04AF88 8FA70064 */ lw $a3, 0x64($sp) +/* 07FABC 7F04AF8C 240A0001 */ li $t2, 1 +/* 07FAC0 7F04AF90 24010009 */ li $at, 9 +/* 07FAC4 7F04AF94 15810012 */ bne $t4, $at, .L7F04AFE0 +/* 07FAC8 7F04AF98 AE0A003C */ sw $t2, 0x3c($s0) +/* 07FACC 7F04AF9C 00021880 */ sll $v1, $v0, 2 +/* 07FAD0 7F04AFA0 00621823 */ subu $v1, $v1, $v0 +/* 07FAD4 7F04AFA4 000318C0 */ sll $v1, $v1, 3 +/* 07FAD8 7F04AFA8 00621821 */ addu $v1, $v1, $v0 +/* 07FADC 7F04AFAC 00031840 */ sll $v1, $v1, 1 +/* 07FAE0 7F04AFB0 24640064 */ addiu $a0, $v1, 0x64 +/* 07FAE4 7F04AFB4 28810100 */ slti $at, $a0, 0x100 +/* 07FAE8 7F04AFB8 54200003 */ bnezl $at, .L7F04AFC8 +/* 07FAEC 7F04AFBC 8E0B0034 */ lw $t3, 0x34($s0) +/* 07FAF0 7F04AFC0 240400FF */ li $a0, 255 +/* 07FAF4 7F04AFC4 8E0B0034 */ lw $t3, 0x34($s0) +.L7F04AFC8: +/* 07FAF8 7F04AFC8 2401FF00 */ li $at, -256 +/* 07FAFC 7F04AFCC 01617824 */ and $t7, $t3, $at +/* 07FB00 7F04AFD0 AE0F0034 */ sw $t7, 0x34($s0) +/* 07FB04 7F04AFD4 01E47025 */ or $t6, $t7, $a0 +/* 07FB08 7F04AFD8 10000006 */ b .L7F04AFF4 +/* 07FB0C 7F04AFDC AE0E0034 */ sw $t6, 0x34($s0) +.L7F04AFE0: +/* 07FB10 7F04AFE0 58400005 */ blezl $v0, .L7F04AFF8 +/* 07FB14 7F04AFE4 8FB90028 */ lw $t9, 0x28($sp) +/* 07FB18 7F04AFE8 8E0D0034 */ lw $t5, 0x34($s0) +/* 07FB1C 7F04AFEC 35A8FF00 */ ori $t0, $t5, 0xff00 +/* 07FB20 7F04AFF0 AE080034 */ sw $t0, 0x34($s0) +.L7F04AFF4: +/* 07FB24 7F04AFF4 8FB90028 */ lw $t9, 0x28($sp) +.L7F04AFF8: +/* 07FB28 7F04AFF8 3C090103 */ lui $t1, (0x01030040 >> 16) # lui $t1, 0x103 +/* 07FB2C 7F04AFFC 35290040 */ ori $t1, (0x01030040 & 0xFFFF) # ori $t1, $t1, 0x40 +/* 07FB30 7F04B000 13200009 */ beqz $t9, .L7F04B028 +/* 07FB34 7F04B004 00E01825 */ move $v1, $a3 +/* 07FB38 7F04B008 24E70008 */ addiu $a3, $a3, 8 +/* 07FB3C 7F04B00C AC690000 */ sw $t1, ($v1) +/* 07FB40 7F04B010 AFA70064 */ sw $a3, 0x64($sp) +/* 07FB44 7F04B014 0FC1E0E5 */ jal get_BONDdata_field_10E0 +/* 07FB48 7F04B018 AFA30034 */ sw $v1, 0x34($sp) +/* 07FB4C 7F04B01C 8FA30034 */ lw $v1, 0x34($sp) +/* 07FB50 7F04B020 8FA70064 */ lw $a3, 0x64($sp) +/* 07FB54 7F04B024 AC620004 */ sw $v0, 4($v1) +.L7F04B028: +/* 07FB58 7F04B028 AE07000C */ sw $a3, 0xc($s0) +/* 07FB5C 7F04B02C 8FA50070 */ lw $a1, 0x70($sp) +/* 07FB60 7F04B030 0FC1D1A1 */ jal subdraw +/* 07FB64 7F04B034 02002025 */ move $a0, $s0 +/* 07FB68 7F04B038 8FA30074 */ lw $v1, 0x74($sp) +/* 07FB6C 7F04B03C 8E07000C */ lw $a3, 0xc($s0) +/* 07FB70 7F04B040 24010001 */ li $at, 1 +/* 07FB74 7F04B044 906A0003 */ lbu $t2, 3($v1) +/* 07FB78 7F04B048 3C0CB600 */ lui $t4, 0xb600 +/* 07FB7C 7F04B04C 240B3000 */ li $t3, 12288 +/* 07FB80 7F04B050 15410004 */ bne $t2, $at, .L7F04B064 +/* 07FB84 7F04B054 00E01025 */ move $v0, $a3 +/* 07FB88 7F04B058 24E70008 */ addiu $a3, $a3, 8 +/* 07FB8C 7F04B05C AC4C0000 */ sw $t4, ($v0) +/* 07FB90 7F04B060 AC4B0004 */ sw $t3, 4($v0) +.L7F04B064: +/* 07FB94 7F04B064 8FA60080 */ lw $a2, 0x80($sp) +/* 07FB98 7F04B068 906F0002 */ lbu $t7, 2($v1) +/* 07FB9C 7F04B06C 24180001 */ li $t8, 1 +/* 07FBA0 7F04B070 00D87004 */ sllv $t6, $t8, $a2 +/* 07FBA4 7F04B074 01EE6824 */ and $t5, $t7, $t6 +/* 07FBA8 7F04B078 11A00005 */ beqz $t5, .L7F04B090 +/* 07FBAC 7F04B07C 00E02025 */ move $a0, $a3 +/* 07FBB0 7F04B080 0FC286A5 */ jal sub_GAME_7F0A1A94 +/* 07FBB4 7F04B084 8FA50078 */ lw $a1, 0x78($sp) +/* 07FBB8 7F04B088 00403825 */ move $a3, $v0 +/* 07FBBC 7F04B08C 8FA60080 */ lw $a2, 0x80($sp) +.L7F04B090: +/* 07FBC0 7F04B090 8FA80028 */ lw $t0, 0x28($sp) +/* 07FBC4 7F04B094 3C190103 */ lui $t9, (0x01030040 >> 16) # lui $t9, 0x103 +/* 07FBC8 7F04B098 37390040 */ ori $t9, (0x01030040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 07FBCC 7F04B09C 1100000A */ beqz $t0, .L7F04B0C8 +/* 07FBD0 7F04B0A0 00E01825 */ move $v1, $a3 +/* 07FBD4 7F04B0A4 24E70008 */ addiu $a3, $a3, 8 +/* 07FBD8 7F04B0A8 AC790000 */ sw $t9, ($v1) +/* 07FBDC 7F04B0AC AFA70064 */ sw $a3, 0x64($sp) +/* 07FBE0 7F04B0B0 0FC1E0DD */ jal get_BONDdata_field_10D8 +/* 07FBE4 7F04B0B4 AFA3002C */ sw $v1, 0x2c($sp) +/* 07FBE8 7F04B0B8 8FA3002C */ lw $v1, 0x2c($sp) +/* 07FBEC 7F04B0BC 8FA70064 */ lw $a3, 0x64($sp) +/* 07FBF0 7F04B0C0 AC620004 */ sw $v0, 4($v1) +/* 07FBF4 7F04B0C4 8FA60080 */ lw $a2, 0x80($sp) +.L7F04B0C8: +/* 07FBF8 7F04B0C8 AE07000C */ sw $a3, 0xc($s0) +/* 07FBFC 7F04B0CC 8FA90078 */ lw $t1, 0x78($sp) +/* 07FC00 7F04B0D0 8D240020 */ lw $a0, 0x20($t1) +/* 07FC04 7F04B0D4 1080000A */ beqz $a0, .L7F04B100 +/* 07FC08 7F04B0D8 00000000 */ nop +/* 07FC0C 7F04B0DC 8FA60080 */ lw $a2, 0x80($sp) +.L7F04B0E0: +/* 07FC10 7F04B0E0 02002825 */ move $a1, $s0 +/* 07FC14 7F04B0E4 0FC12B08 */ jal sub_GAME_7F04AC20 +/* 07FC18 7F04B0E8 AFA40068 */ sw $a0, 0x68($sp) +/* 07FC1C 7F04B0EC 8FA40068 */ lw $a0, 0x68($sp) +/* 07FC20 7F04B0F0 8C840024 */ lw $a0, 0x24($a0) +/* 07FC24 7F04B0F4 5480FFFA */ bnezl $a0, .L7F04B0E0 +/* 07FC28 7F04B0F8 8FA60080 */ lw $a2, 0x80($sp) +/* 07FC2C 7F04B0FC 8FA60080 */ lw $a2, 0x80($sp) +.L7F04B100: +/* 07FC30 7F04B100 10C0000E */ beqz $a2, .L7F04B13C +/* 07FC34 7F04B104 8FAA0028 */ lw $t2, 0x28($sp) +/* 07FC38 7F04B108 11400008 */ beqz $t2, .L7F04B12C +/* 07FC3C 7F04B10C 8FA20070 */ lw $v0, 0x70($sp) +/* 07FC40 7F04B110 8FA20070 */ lw $v0, 0x70($sp) +/* 07FC44 7F04B114 8C4C0008 */ lw $t4, 8($v0) +/* 07FC48 7F04B118 8C44000C */ lw $a0, 0xc($v0) +/* 07FC4C 7F04B11C 0FC22FBB */ jal sub_GAME_7F08BEEC +/* 07FC50 7F04B120 8585000E */ lh $a1, 0xe($t4) +/* 07FC54 7F04B124 10000006 */ b .L7F04B140 +/* 07FC58 7F04B128 8FBF0024 */ lw $ra, 0x24($sp) +.L7F04B12C: +/* 07FC5C 7F04B12C 8C4B0008 */ lw $t3, 8($v0) +/* 07FC60 7F04B130 8C44000C */ lw $a0, 0xc($v0) +/* 07FC64 7F04B134 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 07FC68 7F04B138 8565000E */ lh $a1, 0xe($t3) +.L7F04B13C: +/* 07FC6C 7F04B13C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F04B140: +/* 07FC70 7F04B140 8FB00020 */ lw $s0, 0x20($sp) +/* 07FC74 7F04B144 27BD0078 */ addiu $sp, $sp, 0x78 +/* 07FC78 7F04B148 03E00008 */ jr $ra +/* 07FC7C 7F04B14C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04B150(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04B150 +/* 07FC80 7F04B150 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 07FC84 7F04B154 3C0F8003 */ lui $t7, %hi(D_80031FD0) +/* 07FC88 7F04B158 AFBF0024 */ sw $ra, 0x24($sp) +/* 07FC8C 7F04B15C AFB00020 */ sw $s0, 0x20($sp) +/* 07FC90 7F04B160 AFA500C4 */ sw $a1, 0xc4($sp) +/* 07FC94 7F04B164 AFA600C8 */ sw $a2, 0xc8($sp) +/* 07FC98 7F04B168 25EF1FD0 */ addiu $t7, %lo(D_80031FD0) # addiu $t7, $t7, 0x1fd0 +/* 07FC9C 7F04B16C 8C900004 */ lw $s0, 4($a0) +/* 07FCA0 7F04B170 25E8003C */ addiu $t0, $t7, 0x3c +/* 07FCA4 7F04B174 27AE0068 */ addiu $t6, $sp, 0x68 +.L7F04B178: +/* 07FCA8 7F04B178 8DE10000 */ lw $at, ($t7) +/* 07FCAC 7F04B17C 25EF000C */ addiu $t7, $t7, 0xc +/* 07FCB0 7F04B180 25CE000C */ addiu $t6, $t6, 0xc +/* 07FCB4 7F04B184 ADC1FFF4 */ sw $at, -0xc($t6) +/* 07FCB8 7F04B188 8DE1FFF8 */ lw $at, -8($t7) +/* 07FCBC 7F04B18C ADC1FFF8 */ sw $at, -8($t6) +/* 07FCC0 7F04B190 8DE1FFFC */ lw $at, -4($t7) +/* 07FCC4 7F04B194 15E8FFF8 */ bne $t7, $t0, .L7F04B178 +/* 07FCC8 7F04B198 ADC1FFFC */ sw $at, -4($t6) +/* 07FCCC 7F04B19C 8DE10000 */ lw $at, ($t7) +/* 07FCD0 7F04B1A0 240900FF */ li $t1, 255 +/* 07FCD4 7F04B1A4 27A500B0 */ addiu $a1, $sp, 0xb0 +/* 07FCD8 7F04B1A8 ADC10000 */ sw $at, ($t6) +/* 07FCDC 7F04B1AC AFA9003C */ sw $t1, 0x3c($sp) +/* 07FCE0 7F04B1B0 0FC2ECE9 */ jal if_sky_present_convert_values +/* 07FCE4 7F04B1B4 AFA400C0 */ sw $a0, 0xc0($sp) +/* 07FCE8 7F04B1B8 14400003 */ bnez $v0, .L7F04B1C8 +/* 07FCEC 7F04B1BC AFA200AC */ sw $v0, 0xac($sp) +/* 07FCF0 7F04B1C0 100000A8 */ b .L7F04B464 +/* 07FCF4 7F04B1C4 8FA200C4 */ lw $v0, 0xc4($sp) +.L7F04B1C8: +/* 07FCF8 7F04B1C8 920A0003 */ lbu $t2, 3($s0) +/* 07FCFC 7F04B1CC 2401002F */ li $at, 47 +/* 07FD00 7F04B1D0 51410021 */ beql $t2, $at, .L7F04B258 +/* 07FD04 7F04B1D4 8FAD003C */ lw $t5, 0x3c($sp) +/* 07FD08 7F04B1D8 0FC1B403 */ jal getinstsize +/* 07FD0C 7F04B1DC 8E040014 */ lw $a0, 0x14($s0) +/* 07FD10 7F04B1E0 44050000 */ mfc1 $a1, $f0 +/* 07FD14 7F04B1E4 0FC152E0 */ jal sub_GAME_7F054B80 +/* 07FD18 7F04B1E8 8FA400C0 */ lw $a0, 0xc0($sp) +/* 07FD1C 7F04B1EC 8FAB00C0 */ lw $t3, 0xc0($sp) +/* 07FD20 7F04B1F0 46000086 */ mov.s $f2, $f0 +/* 07FD24 7F04B1F4 85620002 */ lh $v0, 2($t3) +/* 07FD28 7F04B1F8 1840000B */ blez $v0, .L7F04B228 +/* 07FD2C 7F04B1FC 2841003C */ slti $at, $v0, 0x3c +/* 07FD30 7F04B200 5020000A */ beql $at, $zero, .L7F04B22C +/* 07FD34 7F04B204 3C01437F */ lui $at, 0x437f +/* 07FD38 7F04B208 44822000 */ mtc1 $v0, $f4 +/* 07FD3C 7F04B20C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 07FD40 7F04B210 44816000 */ mtc1 $at, $f12 +/* 07FD44 7F04B214 468021A0 */ cvt.s.w $f6, $f4 +/* 07FD48 7F04B218 46066201 */ sub.s $f8, $f12, $f6 +/* 07FD4C 7F04B21C 460C4283 */ div.s $f10, $f8, $f12 +/* 07FD50 7F04B220 460A0082 */ mul.s $f2, $f0, $f10 +/* 07FD54 7F04B224 00000000 */ nop +.L7F04B228: +/* 07FD58 7F04B228 3C01437F */ li $at, 0x437F0000 # 255.000000 +.L7F04B22C: +/* 07FD5C 7F04B22C 44818000 */ mtc1 $at, $f16 +/* 07FD60 7F04B230 00000000 */ nop +/* 07FD64 7F04B234 46101482 */ mul.s $f18, $f2, $f16 +/* 07FD68 7F04B238 4600910D */ trunc.w.s $f4, $f18 +/* 07FD6C 7F04B23C 44022000 */ mfc1 $v0, $f4 +/* 07FD70 7F04B240 00000000 */ nop +/* 07FD74 7F04B244 1C400003 */ bgtz $v0, .L7F04B254 +/* 07FD78 7F04B248 AFA2003C */ sw $v0, 0x3c($sp) +/* 07FD7C 7F04B24C 10000085 */ b .L7F04B464 +/* 07FD80 7F04B250 8FA200C4 */ lw $v0, 0xc4($sp) +.L7F04B254: +/* 07FD84 7F04B254 8FAD003C */ lw $t5, 0x3c($sp) +.L7F04B258: +/* 07FD88 7F04B258 8FA800C8 */ lw $t0, 0xc8($sp) +/* 07FD8C 7F04B25C 8FA400C0 */ lw $a0, 0xc0($sp) +/* 07FD90 7F04B260 29A100FF */ slti $at, $t5, 0xff +/* 07FD94 7F04B264 14200006 */ bnez $at, .L7F04B280 +/* 07FD98 7F04B268 27A50058 */ addiu $a1, $sp, 0x58 +/* 07FD9C 7F04B26C 8E19000C */ lw $t9, 0xc($s0) +/* 07FDA0 7F04B270 8FAF00C8 */ lw $t7, 0xc8($sp) +/* 07FDA4 7F04B274 0019C3C0 */ sll $t8, $t9, 0xf +/* 07FDA8 7F04B278 07010007 */ bgez $t8, .L7F04B298 +/* 07FDAC 7F04B27C 00000000 */ nop +.L7F04B280: +/* 07FDB0 7F04B280 15000003 */ bnez $t0, .L7F04B290 +/* 07FDB4 7F04B284 00000000 */ nop +/* 07FDB8 7F04B288 10000076 */ b .L7F04B464 +/* 07FDBC 7F04B28C 8FA200C4 */ lw $v0, 0xc4($sp) +.L7F04B290: +/* 07FDC0 7F04B290 10000005 */ b .L7F04B2A8 +/* 07FDC4 7F04B294 24030003 */ li $v1, 3 +.L7F04B298: +/* 07FDC8 7F04B298 15E00003 */ bnez $t7, .L7F04B2A8 +/* 07FDCC 7F04B29C 24030002 */ li $v1, 2 +/* 07FDD0 7F04B2A0 10000001 */ b .L7F04B2A8 +/* 07FDD4 7F04B2A4 24030001 */ li $v1, 1 +.L7F04B2A8: +/* 07FDD8 7F04B2A8 0FC15299 */ jal sub_GAME_7F054A64 +/* 07FDDC 7F04B2AC AFA30044 */ sw $v1, 0x44($sp) +/* 07FDE0 7F04B2B0 1840000E */ blez $v0, .L7F04B2EC +/* 07FDE4 7F04B2B4 8FA30044 */ lw $v1, 0x44($sp) +/* 07FDE8 7F04B2B8 8E0E000C */ lw $t6, 0xc($s0) +/* 07FDEC 7F04B2BC 8FA400C4 */ lw $a0, 0xc4($sp) +/* 07FDF0 7F04B2C0 8FA50058 */ lw $a1, 0x58($sp) +/* 07FDF4 7F04B2C4 000E4940 */ sll $t1, $t6, 5 +/* 07FDF8 7F04B2C8 05200008 */ bltz $t1, .L7F04B2EC +/* 07FDFC 7F04B2CC 8FA6005C */ lw $a2, 0x5c($sp) +/* 07FE00 7F04B2D0 C7A60064 */ lwc1 $f6, 0x64($sp) +/* 07FE04 7F04B2D4 8FA70060 */ lw $a3, 0x60($sp) +/* 07FE08 7F04B2D8 AFA30044 */ sw $v1, 0x44($sp) +/* 07FE0C 7F04B2DC 0FC2D3FD */ jal sub_GAME_7F0B4FF4 +/* 07FE10 7F04B2E0 E7A60010 */ swc1 $f6, 0x10($sp) +/* 07FE14 7F04B2E4 10000005 */ b .L7F04B2FC +/* 07FE18 7F04B2E8 8FA30044 */ lw $v1, 0x44($sp) +.L7F04B2EC: +/* 07FE1C 7F04B2EC 8FA400C4 */ lw $a0, 0xc4($sp) +/* 07FE20 7F04B2F0 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 07FE24 7F04B2F4 AFA30044 */ sw $v1, 0x44($sp) +/* 07FE28 7F04B2F8 8FA30044 */ lw $v1, 0x44($sp) +.L7F04B2FC: +/* 07FE2C 7F04B2FC AFA30070 */ sw $v1, 0x70($sp) +/* 07FE30 7F04B300 8E0A000C */ lw $t2, 0xc($s0) +/* 07FE34 7F04B304 8FAD003C */ lw $t5, 0x3c($sp) +/* 07FE38 7F04B308 3C010001 */ lui $at, 1 +/* 07FE3C 7F04B30C 01415824 */ and $t3, $t2, $at +/* 07FE40 7F04B310 2D6C0001 */ sltiu $t4, $t3, 1 +/* 07FE44 7F04B314 29A100FF */ slti $at, $t5, 0xff +/* 07FE48 7F04B318 AFAC006C */ sw $t4, 0x6c($sp) +/* 07FE4C 7F04B31C 10200005 */ beqz $at, .L7F04B334 +/* 07FE50 7F04B320 AFA20074 */ sw $v0, 0x74($sp) +/* 07FE54 7F04B324 24190005 */ li $t9, 5 +/* 07FE58 7F04B328 AFB90098 */ sw $t9, 0x98($sp) +/* 07FE5C 7F04B32C 10000017 */ b .L7F04B38C +/* 07FE60 7F04B330 AFAD009C */ sw $t5, 0x9c($sp) +.L7F04B334: +/* 07FE64 7F04B334 24180009 */ li $t8, 9 +/* 07FE68 7F04B338 AFB80098 */ sw $t8, 0x98($sp) +/* 07FE6C 7F04B33C 92020003 */ lbu $v0, 3($s0) +/* 07FE70 7F04B340 2401002F */ li $at, 47 +/* 07FE74 7F04B344 54410006 */ bnel $v0, $at, .L7F04B360 +/* 07FE78 7F04B348 24010001 */ li $at, 1 +/* 07FE7C 7F04B34C 8E080088 */ lw $t0, 0x88($s0) +/* 07FE80 7F04B350 00087A00 */ sll $t7, $t0, 8 +/* 07FE84 7F04B354 1000000D */ b .L7F04B38C +/* 07FE88 7F04B358 AFAF009C */ sw $t7, 0x9c($sp) +/* 07FE8C 7F04B35C 24010001 */ li $at, 1 +.L7F04B360: +/* 07FE90 7F04B360 5441000A */ bnel $v0, $at, .L7F04B38C +/* 07FE94 7F04B364 AFA0009C */ sw $zero, 0x9c($sp) +/* 07FE98 7F04B368 960E0098 */ lhu $t6, 0x98($s0) +/* 07FE9C 7F04B36C 31C90002 */ andi $t1, $t6, 2 +/* 07FEA0 7F04B370 51200006 */ beql $t1, $zero, .L7F04B38C +/* 07FEA4 7F04B374 AFA0009C */ sw $zero, 0x9c($sp) +/* 07FEA8 7F04B378 860A00BE */ lh $t2, 0xbe($s0) +/* 07FEAC 7F04B37C 000A5A00 */ sll $t3, $t2, 8 +/* 07FEB0 7F04B380 10000002 */ b .L7F04B38C +/* 07FEB4 7F04B384 AFAB009C */ sw $t3, 0x9c($sp) +/* 07FEB8 7F04B388 AFA0009C */ sw $zero, 0x9c($sp) +.L7F04B38C: +/* 07FEBC 7F04B38C 0FC0FFD8 */ jal sub_GAME_7F03FF60 +/* 07FEC0 7F04B390 02002025 */ move $a0, $s0 +/* 07FEC4 7F04B394 00026080 */ sll $t4, $v0, 2 +/* 07FEC8 7F04B398 01826021 */ addu $t4, $t4, $v0 +/* 07FECC 7F04B39C 000C6080 */ sll $t4, $t4, 2 +/* 07FED0 7F04B3A0 01826021 */ addu $t4, $t4, $v0 +/* 07FED4 7F04B3A4 241900FF */ li $t9, 255 +/* 07FED8 7F04B3A8 032C2023 */ subu $a0, $t9, $t4 +/* 07FEDC 7F04B3AC 04810002 */ bgez $a0, .L7F04B3B8 +/* 07FEE0 7F04B3B0 27A600B0 */ addiu $a2, $sp, 0xb0 +/* 07FEE4 7F04B3B4 00002025 */ move $a0, $zero +.L7F04B3B8: +/* 07FEE8 7F04B3B8 920D0078 */ lbu $t5, 0x78($s0) +/* 07FEEC 7F04B3BC 01A40019 */ multu $t5, $a0 +/* 07FEF0 7F04B3C0 00026900 */ sll $t5, $v0, 4 +/* 07FEF4 7F04B3C4 01A26823 */ subu $t5, $t5, $v0 +/* 07FEF8 7F04B3C8 0000C012 */ mflo $t8 +/* 07FEFC 7F04B3CC 00184203 */ sra $t0, $t8, 8 +/* 07FF00 7F04B3D0 AFA80048 */ sw $t0, 0x48($sp) +/* 07FF04 7F04B3D4 920F0079 */ lbu $t7, 0x79($s0) +/* 07FF08 7F04B3D8 01E40019 */ multu $t7, $a0 +/* 07FF0C 7F04B3DC 240F00FF */ li $t7, 255 +/* 07FF10 7F04B3E0 00007012 */ mflo $t6 +/* 07FF14 7F04B3E4 000E4A03 */ sra $t1, $t6, 8 +/* 07FF18 7F04B3E8 AFA9004C */ sw $t1, 0x4c($sp) +/* 07FF1C 7F04B3EC 920A007A */ lbu $t2, 0x7a($s0) +/* 07FF20 7F04B3F0 01440019 */ multu $t2, $a0 +/* 07FF24 7F04B3F4 27A40048 */ addiu $a0, $sp, 0x48 +/* 07FF28 7F04B3F8 00005812 */ mflo $t3 +/* 07FF2C 7F04B3FC 000BCA03 */ sra $t9, $t3, 8 +/* 07FF30 7F04B400 AFB90050 */ sw $t9, 0x50($sp) +/* 07FF34 7F04B404 920C007B */ lbu $t4, 0x7b($s0) +/* 07FF38 7F04B408 018DC021 */ addu $t8, $t4, $t5 +/* 07FF3C 7F04B40C 2B010100 */ slti $at, $t8, 0x100 +/* 07FF40 7F04B410 14200002 */ bnez $at, .L7F04B41C +/* 07FF44 7F04B414 AFB80054 */ sw $t8, 0x54($sp) +/* 07FF48 7F04B418 AFAF0054 */ sw $t7, 0x54($sp) +.L7F04B41C: +/* 07FF4C 7F04B41C 0FC100E1 */ jal sub_GAME_7F040384 +/* 07FF50 7F04B420 8FA500AC */ lw $a1, 0xac($sp) +/* 07FF54 7F04B424 8FA90048 */ lw $t1, 0x48($sp) +/* 07FF58 7F04B428 8FAE0054 */ lw $t6, 0x54($sp) +/* 07FF5C 7F04B42C 8FB9004C */ lw $t9, 0x4c($sp) +/* 07FF60 7F04B430 8FB80050 */ lw $t8, 0x50($sp) +/* 07FF64 7F04B434 00095600 */ sll $t2, $t1, 0x18 +/* 07FF68 7F04B438 01CA5825 */ or $t3, $t6, $t2 +/* 07FF6C 7F04B43C 00196400 */ sll $t4, $t9, 0x10 +/* 07FF70 7F04B440 016C6825 */ or $t5, $t3, $t4 +/* 07FF74 7F04B444 00184200 */ sll $t0, $t8, 8 +/* 07FF78 7F04B448 01A87825 */ or $t7, $t5, $t0 +/* 07FF7C 7F04B44C AFAF00A0 */ sw $t7, 0xa0($sp) +/* 07FF80 7F04B450 8FA400C0 */ lw $a0, 0xc0($sp) +/* 07FF84 7F04B454 27A50068 */ addiu $a1, $sp, 0x68 +/* 07FF88 7F04B458 0FC12B08 */ jal sub_GAME_7F04AC20 +/* 07FF8C 7F04B45C 8FA600C8 */ lw $a2, 0xc8($sp) +/* 07FF90 7F04B460 8FA20074 */ lw $v0, 0x74($sp) +.L7F04B464: +/* 07FF94 7F04B464 8FBF0024 */ lw $ra, 0x24($sp) +/* 07FF98 7F04B468 8FB00020 */ lw $s0, 0x20($sp) +/* 07FF9C 7F04B46C 27BD00C0 */ addiu $sp, $sp, 0xc0 +/* 07FFA0 7F04B470 03E00008 */ jr $ra +/* 07FFA4 7F04B474 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04B478(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04B478 +/* 07FFA8 7F04B478 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 07FFAC 7F04B47C AFBF002C */ sw $ra, 0x2c($sp) +/* 07FFB0 7F04B480 AFB50028 */ sw $s5, 0x28($sp) +/* 07FFB4 7F04B484 AFB40024 */ sw $s4, 0x24($sp) +/* 07FFB8 7F04B488 AFB30020 */ sw $s3, 0x20($sp) +/* 07FFBC 7F04B48C AFB2001C */ sw $s2, 0x1c($sp) +/* 07FFC0 7F04B490 AFB10018 */ sw $s1, 0x18($sp) +/* 07FFC4 7F04B494 AFB00014 */ sw $s0, 0x14($sp) +/* 07FFC8 7F04B498 8C8E0014 */ lw $t6, 0x14($a0) +/* 07FFCC 7F04B49C 00808825 */ move $s1, $a0 +/* 07FFD0 7F04B4A0 24120008 */ li $s2, 8 +/* 07FFD4 7F04B4A4 8DC20008 */ lw $v0, 8($t6) +/* 07FFD8 7F04B4A8 24130012 */ li $s3, 18 +/* 07FFDC 7F04B4AC 24140017 */ li $s4, 23 +/* 07FFE0 7F04B4B0 8C500000 */ lw $s0, ($v0) +/* 07FFE4 7F04B4B4 24150018 */ li $s5, 24 +/* 07FFE8 7F04B4B8 5200002C */ beql $s0, $zero, .L7F04B56C +/* 07FFEC 7F04B4BC 00001025 */ move $v0, $zero +/* 07FFF0 7F04B4C0 96020000 */ lhu $v0, ($s0) +.L7F04B4C4: +/* 07FFF4 7F04B4C4 02002825 */ move $a1, $s0 +/* 07FFF8 7F04B4C8 304F00FF */ andi $t7, $v0, 0xff +/* 07FFFC 7F04B4CC 11F2000B */ beq $t7, $s2, .L7F04B4FC +/* 080000 7F04B4D0 00000000 */ nop +/* 080004 7F04B4D4 11F3000D */ beq $t7, $s3, .L7F04B50C +/* 080008 7F04B4D8 02002825 */ move $a1, $s0 +/* 08000C 7F04B4DC 11F4000F */ beq $t7, $s4, .L7F04B51C +/* 080010 7F04B4E0 02002825 */ move $a1, $s0 +/* 080014 7F04B4E4 11F50003 */ beq $t7, $s5, .L7F04B4F4 +/* 080018 7F04B4E8 00000000 */ nop +/* 08001C 7F04B4EC 1000000E */ b .L7F04B528 +/* 080020 7F04B4F0 8E020014 */ lw $v0, 0x14($s0) +.L7F04B4F4: +/* 080024 7F04B4F4 1000001D */ b .L7F04B56C +/* 080028 7F04B4F8 02001025 */ move $v0, $s0 +.L7F04B4FC: +/* 08002C 7F04B4FC 0FC1BA5C */ jal sub_GAME_7F06E970 +/* 080030 7F04B500 8E240014 */ lw $a0, 0x14($s1) +/* 080034 7F04B504 10000008 */ b .L7F04B528 +/* 080038 7F04B508 8E020014 */ lw $v0, 0x14($s0) +.L7F04B50C: +/* 08003C 7F04B50C 0FC1BA6F */ jal process_12_handle_switch +/* 080040 7F04B510 8E240014 */ lw $a0, 0x14($s1) +/* 080044 7F04B514 10000004 */ b .L7F04B528 +/* 080048 7F04B518 8E020014 */ lw $v0, 0x14($s0) +.L7F04B51C: +/* 08004C 7F04B51C 0FC1BA82 */ jal process_17_pointer_to_head +/* 080050 7F04B520 8E240014 */ lw $a0, 0x14($s1) +/* 080054 7F04B524 8E020014 */ lw $v0, 0x14($s0) +.L7F04B528: +/* 080058 7F04B528 10400003 */ beqz $v0, .L7F04B538 +/* 08005C 7F04B52C 00000000 */ nop +/* 080060 7F04B530 1000000B */ b .L7F04B560 +/* 080064 7F04B534 00408025 */ move $s0, $v0 +.L7F04B538: +/* 080068 7F04B538 12000009 */ beqz $s0, .L7F04B560 +/* 08006C 7F04B53C 00000000 */ nop +/* 080070 7F04B540 8E02000C */ lw $v0, 0xc($s0) +.L7F04B544: +/* 080074 7F04B544 50400004 */ beql $v0, $zero, .L7F04B558 +/* 080078 7F04B548 8E100008 */ lw $s0, 8($s0) +/* 08007C 7F04B54C 10000004 */ b .L7F04B560 +/* 080080 7F04B550 00408025 */ move $s0, $v0 +/* 080084 7F04B554 8E100008 */ lw $s0, 8($s0) +.L7F04B558: +/* 080088 7F04B558 5600FFFA */ bnezl $s0, .L7F04B544 +/* 08008C 7F04B55C 8E02000C */ lw $v0, 0xc($s0) +.L7F04B560: +/* 080090 7F04B560 5600FFD8 */ bnezl $s0, .L7F04B4C4 +/* 080094 7F04B564 96020000 */ lhu $v0, ($s0) +/* 080098 7F04B568 00001025 */ move $v0, $zero +.L7F04B56C: +/* 08009C 7F04B56C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0800A0 7F04B570 8FB00014 */ lw $s0, 0x14($sp) +/* 0800A4 7F04B574 8FB10018 */ lw $s1, 0x18($sp) +/* 0800A8 7F04B578 8FB2001C */ lw $s2, 0x1c($sp) +/* 0800AC 7F04B57C 8FB30020 */ lw $s3, 0x20($sp) +/* 0800B0 7F04B580 8FB40024 */ lw $s4, 0x24($sp) +/* 0800B4 7F04B584 8FB50028 */ lw $s5, 0x28($sp) +/* 0800B8 7F04B588 03E00008 */ jr $ra +/* 0800BC 7F04B58C 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04B590(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04B590 +/* 0800C0 7F04B590 8C820004 */ lw $v0, 4($a0) +/* 0800C4 7F04B594 3C0E8004 */ lui $t6, %hi(prop_console_one_screen_related) +/* 0800C8 7F04B598 25CEA070 */ addiu $t6, %lo(prop_console_one_screen_related) # addiu $t6, $t6, -0x5f90 +/* 0800CC 7F04B59C 15C20007 */ bne $t6, $v0, .L7F04B5BC +/* 0800D0 7F04B5A0 3C198004 */ lui $t9, %hi(prop_console_four_screen_related) +/* 0800D4 7F04B5A4 8C8F0008 */ lw $t7, 8($a0) +/* 0800D8 7F04B5A8 8DF80000 */ lw $t8, ($t7) +/* 0800DC 7F04B5AC 14B80003 */ bne $a1, $t8, .L7F04B5BC +/* 0800E0 7F04B5B0 00000000 */ nop +/* 0800E4 7F04B5B4 03E00008 */ jr $ra +/* 0800E8 7F04B5B8 00001025 */ move $v0, $zero + +.L7F04B5BC: +/* 0800EC 7F04B5BC 2739A084 */ addiu $t9, $t9, %lo(prop_console_four_screen_related) +/* 0800F0 7F04B5C0 57220011 */ bnel $t9, $v0, .L7F04B608 +/* 0800F4 7F04B5C4 24020001 */ li $v0, 1 +/* 0800F8 7F04B5C8 8C820008 */ lw $v0, 8($a0) +/* 0800FC 7F04B5CC 8C480000 */ lw $t0, ($v0) +/* 080100 7F04B5D0 10A8000A */ beq $a1, $t0, .L7F04B5FC +/* 080104 7F04B5D4 00000000 */ nop +/* 080108 7F04B5D8 8C490004 */ lw $t1, 4($v0) +/* 08010C 7F04B5DC 10A90007 */ beq $a1, $t1, .L7F04B5FC +/* 080110 7F04B5E0 00000000 */ nop +/* 080114 7F04B5E4 8C4A0008 */ lw $t2, 8($v0) +/* 080118 7F04B5E8 10AA0004 */ beq $a1, $t2, .L7F04B5FC +/* 08011C 7F04B5EC 00000000 */ nop +/* 080120 7F04B5F0 8C4B000C */ lw $t3, 0xc($v0) +/* 080124 7F04B5F4 54AB0004 */ bnel $a1, $t3, .L7F04B608 +/* 080128 7F04B5F8 24020001 */ li $v0, 1 +.L7F04B5FC: +/* 08012C 7F04B5FC 03E00008 */ jr $ra +/* 080130 7F04B600 00001025 */ move $v0, $zero + +/* 080134 7F04B604 24020001 */ li $v0, 1 +.L7F04B608: +/* 080138 7F04B608 03E00008 */ jr $ra +/* 08013C 7F04B60C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04B610(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04B610 +/* 080140 7F04B610 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 080144 7F04B614 AFB60030 */ sw $s6, 0x30($sp) +/* 080148 7F04B618 AFB40028 */ sw $s4, 0x28($sp) +/* 08014C 7F04B61C AFBF003C */ sw $ra, 0x3c($sp) +/* 080150 7F04B620 AFBE0038 */ sw $fp, 0x38($sp) +/* 080154 7F04B624 AFB70034 */ sw $s7, 0x34($sp) +/* 080158 7F04B628 AFB5002C */ sw $s5, 0x2c($sp) +/* 08015C 7F04B62C AFB30024 */ sw $s3, 0x24($sp) +/* 080160 7F04B630 AFB20020 */ sw $s2, 0x20($sp) +/* 080164 7F04B634 AFB1001C */ sw $s1, 0x1c($sp) +/* 080168 7F04B638 AFB00018 */ sw $s0, 0x18($sp) +/* 08016C 7F04B63C 3C14FFFE */ lui $s4, (0xFFFE7961 >> 16) # lui $s4, 0xfffe +/* 080170 7F04B640 3C160001 */ li $s6, 0x00010000 # 0.000000 +/* 080174 7F04B644 00A08025 */ move $s0, $a1 +/* 080178 7F04B648 0080F025 */ move $fp, $a0 +/* 08017C 7F04B64C 8C910014 */ lw $s1, 0x14($a0) +/* 080180 7F04B650 36D6869F */ ori $s6, (0x0001869F & 0xFFFF) # ori $s6, $s6, 0x869f +/* 080184 7F04B654 0FC12D1E */ jal sub_GAME_7F04B478 +/* 080188 7F04B658 36947961 */ ori $s4, (0xFFFE7961 & 0xFFFF) # ori $s4, $s4, 0x7961 +/* 08018C 7F04B65C 10400193 */ beqz $v0, .L7F04BCAC +/* 080190 7F04B660 00402825 */ move $a1, $v0 +/* 080194 7F04B664 8C550004 */ lw $s5, 4($v0) +/* 080198 7F04B668 52A00191 */ beql $s5, $zero, .L7F04BCB0 +/* 08019C 7F04B66C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0801A0 7F04B670 8FCE0014 */ lw $t6, 0x14($fp) +/* 0801A4 7F04B674 0FC12D64 */ jal sub_GAME_7F04B590 +/* 0801A8 7F04B678 8DC40008 */ lw $a0, 8($t6) +/* 0801AC 7F04B67C 5040018C */ beql $v0, $zero, .L7F04BCB0 +/* 0801B0 7F04B680 8FBF003C */ lw $ra, 0x3c($sp) +/* 0801B4 7F04B684 96B8001A */ lhu $t8, 0x1a($s5) +/* 0801B8 7F04B688 8E2F0010 */ lw $t7, 0x10($s1) +/* 0801BC 7F04B68C 0018C880 */ sll $t9, $t8, 2 +/* 0801C0 7F04B690 0C002914 */ jal get_random_value +/* 0801C4 7F04B694 01F99821 */ addu $s3, $t7, $t9 +/* 0801C8 7F04B698 30480001 */ andi $t0, $v0, 1 +/* 0801CC 7F04B69C 1100000C */ beqz $t0, .L7F04B6D0 +/* 0801D0 7F04B6A0 00104840 */ sll $t1, $s0, 1 +/* 0801D4 7F04B6A4 AFA90040 */ sw $t1, 0x40($sp) +/* 0801D8 7F04B6A8 87CA0004 */ lh $t2, 4($fp) +/* 0801DC 7F04B6AC 3C0E8004 */ lui $t6, %hi(object_explosion_details+2) +/* 0801E0 7F04B6B0 000A58C0 */ sll $t3, $t2, 3 +/* 0801E4 7F04B6B4 016A5823 */ subu $t3, $t3, $t2 +/* 0801E8 7F04B6B8 000B5840 */ sll $t3, $t3, 1 +/* 0801EC 7F04B6BC 01696821 */ addu $t5, $t3, $t1 +/* 0801F0 7F04B6C0 01CD7021 */ addu $t6, $t6, $t5 +/* 0801F4 7F04B6C4 95CEB226 */ lhu $t6, %lo(object_explosion_details+2)($t6) +/* 0801F8 7F04B6C8 1000000C */ b .L7F04B6FC +/* 0801FC 7F04B6CC AFAE0078 */ sw $t6, 0x78($sp) +.L7F04B6D0: +/* 080200 7F04B6D0 87D80004 */ lh $t8, 4($fp) +/* 080204 7F04B6D4 00101040 */ sll $v0, $s0, 1 +/* 080208 7F04B6D8 3C088004 */ lui $t0, %hi(object_explosion_details+8) +/* 08020C 7F04B6DC 001878C0 */ sll $t7, $t8, 3 +/* 080210 7F04B6E0 01F87823 */ subu $t7, $t7, $t8 +/* 080214 7F04B6E4 000F7840 */ sll $t7, $t7, 1 +/* 080218 7F04B6E8 01E2C821 */ addu $t9, $t7, $v0 +/* 08021C 7F04B6EC 01194021 */ addu $t0, $t0, $t9 +/* 080220 7F04B6F0 9508B22C */ lhu $t0, %lo(object_explosion_details+8)($t0) +/* 080224 7F04B6F4 AFA20040 */ sw $v0, 0x40($sp) +/* 080228 7F04B6F8 AFA80078 */ sw $t0, 0x78($sp) +.L7F04B6FC: +/* 08022C 7F04B6FC 0FC243F1 */ jal get_debug_explosioninfo_flag +/* 080230 7F04B700 00000000 */ nop +/* 080234 7F04B704 14400003 */ bnez $v0, .L7F04B714 +/* 080238 7F04B708 8FA90078 */ lw $t1, 0x78($sp) +/* 08023C 7F04B70C 1520000B */ bnez $t1, .L7F04B73C +/* 080240 7F04B710 00000000 */ nop +.L7F04B714: +/* 080244 7F04B714 0FC243F1 */ jal get_debug_explosioninfo_flag +/* 080248 7F04B718 00000000 */ nop +/* 08024C 7F04B71C 0C002914 */ jal get_random_value +/* 080250 7F04B720 00000000 */ nop +/* 080254 7F04B724 0FC243F1 */ jal get_debug_explosioninfo_flag +/* 080258 7F04B728 AFA20078 */ sw $v0, 0x78($sp) +/* 08025C 7F04B72C 10400003 */ beqz $v0, .L7F04B73C +/* 080260 7F04B730 8FAA0078 */ lw $t2, 0x78($sp) +/* 080264 7F04B734 314BFFFF */ andi $t3, $t2, 0xffff +/* 080268 7F04B738 AFAB0078 */ sw $t3, 0x78($sp) +.L7F04B73C: +/* 08026C 7F04B73C 0FC28364 */ jal sub_GAME_7F0A0D90 +/* 080270 7F04B740 8FC40010 */ lw $a0, 0x10($fp) +/* 080274 7F04B744 87CC0004 */ lh $t4, 4($fp) +/* 080278 7F04B748 2401004C */ li $at, 76 +/* 08027C 7F04B74C 24170001 */ li $s7, 1 +/* 080280 7F04B750 15810003 */ bne $t4, $at, .L7F04B760 +/* 080284 7F04B754 00000000 */ nop +/* 080288 7F04B758 10000001 */ b .L7F04B760 +/* 08028C 7F04B75C 0000B825 */ move $s7, $zero +.L7F04B760: +/* 080290 7F04B760 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 080294 7F04B764 03C02025 */ move $a0, $fp +/* 080298 7F04B768 86A4000C */ lh $a0, 0xc($s5) +/* 08029C 7F04B76C 24050B0B */ li $a1, 2827 +/* 0802A0 7F04B770 8E260008 */ lw $a2, 8($s1) +/* 0802A4 7F04B774 0FC26F93 */ jal sub_GAME_7F09BE4C +/* 0802A8 7F04B778 00403825 */ move $a3, $v0 +/* 0802AC 7F04B77C 1040003A */ beqz $v0, .L7F04B868 +/* 0802B0 7F04B780 00408025 */ move $s0, $v0 +/* 0802B4 7F04B784 8E640000 */ lw $a0, ($s3) +/* 0802B8 7F04B788 8EAD0008 */ lw $t5, 8($s5) +/* 0802BC 7F04B78C 51A4001E */ beql $t5, $a0, .L7F04B808 +/* 0802C0 7F04B790 86AA000C */ lh $t2, 0xc($s5) +/* 0802C4 7F04B794 86AE000C */ lh $t6, 0xc($s5) +/* 0802C8 7F04B798 00009025 */ move $s2, $zero +/* 0802CC 7F04B79C 00008825 */ move $s1, $zero +/* 0802D0 7F04B7A0 19C00014 */ blez $t6, .L7F04B7F4 +/* 0802D4 7F04B7A4 00401825 */ move $v1, $v0 +/* 0802D8 7F04B7A8 8E780000 */ lw $t8, ($s3) +.L7F04B7AC: +/* 0802DC 7F04B7AC 26520001 */ addiu $s2, $s2, 1 +/* 0802E0 7F04B7B0 24630010 */ addiu $v1, $v1, 0x10 +/* 0802E4 7F04B7B4 03117821 */ addu $t7, $t8, $s1 +/* 0802E8 7F04B7B8 8DE10000 */ lw $at, ($t7) +/* 0802EC 7F04B7BC 26310010 */ addiu $s1, $s1, 0x10 +/* 0802F0 7F04B7C0 AC61FFF0 */ sw $at, -0x10($v1) +/* 0802F4 7F04B7C4 8DE80004 */ lw $t0, 4($t7) +/* 0802F8 7F04B7C8 AC68FFF4 */ sw $t0, -0xc($v1) +/* 0802FC 7F04B7CC 8DE10008 */ lw $at, 8($t7) +/* 080300 7F04B7D0 AC61FFF8 */ sw $at, -8($v1) +/* 080304 7F04B7D4 8DE8000C */ lw $t0, 0xc($t7) +/* 080308 7F04B7D8 AC68FFFC */ sw $t0, -4($v1) +/* 08030C 7F04B7DC 86A9000C */ lh $t1, 0xc($s5) +/* 080310 7F04B7E0 0249082A */ slt $at, $s2, $t1 +/* 080314 7F04B7E4 5420FFF1 */ bnezl $at, .L7F04B7AC +/* 080318 7F04B7E8 8E780000 */ lw $t8, ($s3) +/* 08031C 7F04B7EC 8E640000 */ lw $a0, ($s3) +/* 080320 7F04B7F0 00009025 */ move $s2, $zero +.L7F04B7F4: +/* 080324 7F04B7F4 0FC27011 */ jal sub_GAME_7F09C044 +/* 080328 7F04B7F8 00000000 */ nop +/* 08032C 7F04B7FC 10000018 */ b .L7F04B860 +/* 080330 7F04B800 00000000 */ nop +/* 080334 7F04B804 86AA000C */ lh $t2, 0xc($s5) +.L7F04B808: +/* 080338 7F04B808 00009025 */ move $s2, $zero +/* 08033C 7F04B80C 00008825 */ move $s1, $zero +/* 080340 7F04B810 19400013 */ blez $t2, .L7F04B860 +/* 080344 7F04B814 00401825 */ move $v1, $v0 +/* 080348 7F04B818 8EAB0008 */ lw $t3, 8($s5) +.L7F04B81C: +/* 08034C 7F04B81C 26520001 */ addiu $s2, $s2, 1 +/* 080350 7F04B820 24630010 */ addiu $v1, $v1, 0x10 +/* 080354 7F04B824 01716021 */ addu $t4, $t3, $s1 +/* 080358 7F04B828 8D810000 */ lw $at, ($t4) +/* 08035C 7F04B82C 26310010 */ addiu $s1, $s1, 0x10 +/* 080360 7F04B830 AC61FFF0 */ sw $at, -0x10($v1) +/* 080364 7F04B834 8D8E0004 */ lw $t6, 4($t4) +/* 080368 7F04B838 AC6EFFF4 */ sw $t6, -0xc($v1) +/* 08036C 7F04B83C 8D810008 */ lw $at, 8($t4) +/* 080370 7F04B840 AC61FFF8 */ sw $at, -8($v1) +/* 080374 7F04B844 8D8E000C */ lw $t6, 0xc($t4) +/* 080378 7F04B848 AC6EFFFC */ sw $t6, -4($v1) +/* 08037C 7F04B84C 86B8000C */ lh $t8, 0xc($s5) +/* 080380 7F04B850 0258082A */ slt $at, $s2, $t8 +/* 080384 7F04B854 5420FFF1 */ bnezl $at, .L7F04B81C +/* 080388 7F04B858 8EAB0008 */ lw $t3, 8($s5) +/* 08038C 7F04B85C 00009025 */ move $s2, $zero +.L7F04B860: +/* 080390 7F04B860 10000036 */ b .L7F04B93C +/* 080394 7F04B864 AE700000 */ sw $s0, ($s3) +.L7F04B868: +/* 080398 7F04B868 8E640000 */ lw $a0, ($s3) +/* 08039C 7F04B86C 8EB90008 */ lw $t9, 8($s5) +/* 0803A0 7F04B870 13240008 */ beq $t9, $a0, .L7F04B894 +/* 0803A4 7F04B874 00000000 */ nop +/* 0803A8 7F04B878 0FC27011 */ jal sub_GAME_7F09C044 +/* 0803AC 7F04B87C 00000000 */ nop +/* 0803B0 7F04B880 8EAF0008 */ lw $t7, 8($s5) +/* 0803B4 7F04B884 AE6F0000 */ sw $t7, ($s3) +/* 0803B8 7F04B888 8FC80064 */ lw $t0, 0x64($fp) +/* 0803BC 7F04B88C 35090004 */ ori $t1, $t0, 4 +/* 0803C0 7F04B890 AFC90064 */ sw $t1, 0x64($fp) +.L7F04B894: +/* 0803C4 7F04B894 3C018005 */ lui $at, %hi(D_80052CB4) +/* 0803C8 7F04B898 C4202CB4 */ lwc1 $f0, %lo(D_80052CB4)($at) +/* 0803CC 7F04B89C C7C40028 */ lwc1 $f4, 0x28($fp) +/* 0803D0 7F04B8A0 C7C8002C */ lwc1 $f8, 0x2c($fp) +/* 0803D4 7F04B8A4 C7D00030 */ lwc1 $f16, 0x30($fp) +/* 0803D8 7F04B8A8 46002182 */ mul.s $f6, $f4, $f0 +/* 0803DC 7F04B8AC 00000000 */ nop +/* 0803E0 7F04B8B0 46004282 */ mul.s $f10, $f8, $f0 +/* 0803E4 7F04B8B4 00000000 */ nop +/* 0803E8 7F04B8B8 46008482 */ mul.s $f18, $f16, $f0 +/* 0803EC 7F04B8BC E7C60028 */ swc1 $f6, 0x28($fp) +/* 0803F0 7F04B8C0 E7CA002C */ swc1 $f10, 0x2c($fp) +/* 0803F4 7F04B8C4 12E000F9 */ beqz $s7, .L7F04BCAC +/* 0803F8 7F04B8C8 E7D20030 */ swc1 $f18, 0x30($fp) +/* 0803FC 7F04B8CC 8FC20014 */ lw $v0, 0x14($fp) +/* 080400 7F04B8D0 C4440014 */ lwc1 $f4, 0x14($v0) +/* 080404 7F04B8D4 8C440008 */ lw $a0, 8($v0) +/* 080408 7F04B8D8 0FC0FFFE */ jal sub_GAME_7F03FFF8 +/* 08040C 7F04B8DC E7A4005C */ swc1 $f4, 0x5c($sp) +/* 080410 7F04B8E0 00408025 */ move $s0, $v0 +/* 080414 7F04B8E4 0FC0FA19 */ jal sub_GAME_7F03E864 +/* 080418 7F04B8E8 00402025 */ move $a0, $v0 +/* 08041C 7F04B8EC C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 080420 7F04B8F0 3C018005 */ lui $at, %hi(D_80052CB8) +/* 080424 7F04B8F4 C42A2CB8 */ lwc1 $f10, %lo(D_80052CB8)($at) +/* 080428 7F04B8F8 46003202 */ mul.s $f8, $f6, $f0 +/* 08042C 7F04B8FC 8FC20010 */ lw $v0, 0x10($fp) +/* 080430 7F04B900 02002025 */ move $a0, $s0 +/* 080434 7F04B904 C452000C */ lwc1 $f18, 0xc($v0) +/* 080438 7F04B908 460A4402 */ mul.s $f16, $f8, $f10 +/* 08043C 7F04B90C 46109100 */ add.s $f4, $f18, $f16 +/* 080440 7F04B910 0FC0FA19 */ jal sub_GAME_7F03E864 +/* 080444 7F04B914 E444000C */ swc1 $f4, 0xc($v0) +/* 080448 7F04B918 C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 08044C 7F04B91C 3C018005 */ lui $at, %hi(D_80052CBC) +/* 080450 7F04B920 C42A2CBC */ lwc1 $f10, %lo(D_80052CBC)($at) +/* 080454 7F04B924 46003202 */ mul.s $f8, $f6, $f0 +/* 080458 7F04B928 C7D0005C */ lwc1 $f16, 0x5c($fp) +/* 08045C 7F04B92C 460A4482 */ mul.s $f18, $f8, $f10 +/* 080460 7F04B930 46128100 */ add.s $f4, $f16, $f18 +/* 080464 7F04B934 100000DD */ b .L7F04BCAC +/* 080468 7F04B938 E7C4005C */ swc1 $f4, 0x5c($fp) +.L7F04B93C: +/* 08046C 7F04B93C 87C20004 */ lh $v0, 4($fp) +/* 080470 7F04B940 24010026 */ li $at, 38 +/* 080474 7F04B944 00008825 */ move $s1, $zero +/* 080478 7F04B948 10410005 */ beq $v0, $at, .L7F04B960 +/* 08047C 7F04B94C 24010027 */ li $at, 39 +/* 080480 7F04B950 10410003 */ beq $v0, $at, .L7F04B960 +/* 080484 7F04B954 24010055 */ li $at, 85 +/* 080488 7F04B958 14410003 */ bne $v0, $at, .L7F04B968 +/* 08048C 7F04B95C 240A0001 */ li $t2, 1 +.L7F04B960: +/* 080490 7F04B960 10000002 */ b .L7F04B96C +/* 080494 7F04B964 AFA00070 */ sw $zero, 0x70($sp) +.L7F04B968: +/* 080498 7F04B968 AFAA0070 */ sw $t2, 0x70($sp) +.L7F04B96C: +/* 08049C 7F04B96C 86A4000C */ lh $a0, 0xc($s5) +/* 0804A0 7F04B970 8FA50040 */ lw $a1, 0x40($sp) +/* 0804A4 7F04B974 18800010 */ blez $a0, .L7F04B9B8 +/* 0804A8 7F04B978 00041900 */ sll $v1, $a0, 4 +/* 0804AC 7F04B97C 8E700000 */ lw $s0, ($s3) +.L7F04B980: +/* 0804B0 7F04B980 86020002 */ lh $v0, 2($s0) +/* 0804B4 7F04B984 26310010 */ addiu $s1, $s1, 0x10 +/* 0804B8 7F04B988 0056082A */ slt $at, $v0, $s6 +/* 0804BC 7F04B98C 50200003 */ beql $at, $zero, .L7F04B99C +/* 0804C0 7F04B990 0282082A */ slt $at, $s4, $v0 +/* 0804C4 7F04B994 0040B025 */ move $s6, $v0 +/* 0804C8 7F04B998 0282082A */ slt $at, $s4, $v0 +.L7F04B99C: +/* 0804CC 7F04B99C 50200003 */ beql $at, $zero, .L7F04B9AC +/* 0804D0 7F04B9A0 0223082A */ slt $at, $s1, $v1 +/* 0804D4 7F04B9A4 0040A025 */ move $s4, $v0 +/* 0804D8 7F04B9A8 0223082A */ slt $at, $s1, $v1 +.L7F04B9AC: +/* 0804DC 7F04B9AC 1420FFF4 */ bnez $at, .L7F04B980 +/* 0804E0 7F04B9B0 26100010 */ addiu $s0, $s0, 0x10 +/* 0804E4 7F04B9B4 00009025 */ move $s2, $zero +.L7F04B9B8: +/* 0804E8 7F04B9B8 02D41021 */ addu $v0, $s6, $s4 +/* 0804EC 7F04B9BC 00025843 */ sra $t3, $v0, 1 +/* 0804F0 7F04B9C0 24010006 */ li $at, 6 +/* 0804F4 7F04B9C4 14A10006 */ bne $a1, $at, .L7F04B9E0 +/* 0804F8 7F04B9C8 01601825 */ move $v1, $t3 +/* 0804FC 7F04B9CC 01766823 */ subu $t5, $t3, $s6 +/* 080500 7F04B9D0 29A10029 */ slti $at, $t5, 0x29 +/* 080504 7F04B9D4 54200003 */ bnezl $at, .L7F04B9E4 +/* 080508 7F04B9D8 02961023 */ subu $v0, $s4, $s6 +/* 08050C 7F04B9DC 26C30028 */ addiu $v1, $s6, 0x28 +.L7F04B9E0: +/* 080510 7F04B9E0 02961023 */ subu $v0, $s4, $s6 +.L7F04B9E4: +/* 080514 7F04B9E4 2841003D */ slti $at, $v0, 0x3d +/* 080518 7F04B9E8 1420000E */ bnez $at, .L7F04BA24 +/* 08051C 7F04B9EC 28A10006 */ slti $at, $a1, 6 +/* 080520 7F04B9F0 10200005 */ beqz $at, .L7F04BA08 +/* 080524 7F04B9F4 244CFFC4 */ addiu $t4, $v0, -0x3c +/* 080528 7F04B9F8 3C018005 */ lui $at, %hi(D_80052CC0) +/* 08052C 7F04B9FC C4262CC0 */ lwc1 $f6, %lo(D_80052CC0)($at) +/* 080530 7F04BA00 1000000C */ b .L7F04BA34 +/* 080534 7F04BA04 E7A60068 */ swc1 $f6, 0x68($sp) +.L7F04BA08: +/* 080538 7F04BA08 448C4000 */ mtc1 $t4, $f8 +/* 08053C 7F04BA0C 44828000 */ mtc1 $v0, $f16 +/* 080540 7F04BA10 468042A0 */ cvt.s.w $f10, $f8 +/* 080544 7F04BA14 468084A0 */ cvt.s.w $f18, $f16 +/* 080548 7F04BA18 46125103 */ div.s $f4, $f10, $f18 +/* 08054C 7F04BA1C 10000005 */ b .L7F04BA34 +/* 080550 7F04BA20 E7A40068 */ swc1 $f4, 0x68($sp) +.L7F04BA24: +/* 080554 7F04BA24 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 080558 7F04BA28 44813000 */ mtc1 $at, $f6 +/* 08055C 7F04BA2C 00000000 */ nop +/* 080560 7F04BA30 E7A60068 */ swc1 $f6, 0x68($sp) +.L7F04BA34: +/* 080564 7F04BA34 5880009E */ blezl $a0, .L7F04BCB0 +/* 080568 7F04BA38 8FBF003C */ lw $ra, 0x3c($sp) +/* 08056C 7F04BA3C 44964000 */ mtc1 $s6, $f8 +/* 080570 7F04BA40 00008825 */ move $s1, $zero +/* 080574 7F04BA44 AFA3007C */ sw $v1, 0x7c($sp) +/* 080578 7F04BA48 46804420 */ cvt.s.w $f16, $f8 +/* 08057C 7F04BA4C 24140050 */ li $s4, 80 +/* 080580 7F04BA50 E7B00044 */ swc1 $f16, 0x44($sp) +/* 080584 7F04BA54 8EAE0008 */ lw $t6, 8($s5) +.L7F04BA58: +/* 080588 7F04BA58 8FAA0078 */ lw $t2, 0x78($sp) +/* 08058C 7F04BA5C 01D11021 */ addu $v0, $t6, $s1 +/* 080590 7F04BA60 84580004 */ lh $t8, 4($v0) +/* 080594 7F04BA64 84590000 */ lh $t9, ($v0) +/* 080598 7F04BA68 84480002 */ lh $t0, 2($v0) +/* 08059C 7F04BA6C 03197821 */ addu $t7, $t8, $t9 +/* 0805A0 7F04BA70 01E84821 */ addu $t1, $t7, $t0 +/* 0805A4 7F04BA74 0FC26DE2 */ jal sub_GAME_7F09B788 +/* 0805A8 7F04BA78 012A2021 */ addu $a0, $t1, $t2 +/* 0805AC 7F04BA7C 8FAB0070 */ lw $t3, 0x70($sp) +/* 0805B0 7F04BA80 00008025 */ move $s0, $zero +/* 0805B4 7F04BA84 1160002E */ beqz $t3, .L7F04BB40 +/* 0805B8 7F04BA88 00000000 */ nop +/* 0805BC 7F04BA8C C7CA002C */ lwc1 $f10, 0x2c($fp) +/* 0805C0 7F04BA90 44809000 */ mtc1 $zero, $f18 +/* 0805C4 7F04BA94 00000000 */ nop +/* 0805C8 7F04BA98 460A903E */ c.le.s $f18, $f10 +/* 0805CC 7F04BA9C 00000000 */ nop +/* 0805D0 7F04BAA0 45020015 */ bc1fl .L7F04BAF8 +/* 0805D4 7F04BAA4 8E6F0000 */ lw $t7, ($s3) +/* 0805D8 7F04BAA8 8E6D0000 */ lw $t5, ($s3) +/* 0805DC 7F04BAAC 8FB8007C */ lw $t8, 0x7c($sp) +/* 0805E0 7F04BAB0 01B16021 */ addu $t4, $t5, $s1 +/* 0805E4 7F04BAB4 858E0002 */ lh $t6, 2($t4) +/* 0805E8 7F04BAB8 01D8082A */ slt $at, $t6, $t8 +/* 0805EC 7F04BABC 14200007 */ bnez $at, .L7F04BADC +/* 0805F0 7F04BAC0 00000000 */ nop +/* 0805F4 7F04BAC4 12E00003 */ beqz $s7, .L7F04BAD4 +/* 0805F8 7F04BAC8 00000000 */ nop +/* 0805FC 7F04BACC 1000001C */ b .L7F04BB40 +/* 080600 7F04BAD0 2410005A */ li $s0, 90 +.L7F04BAD4: +/* 080604 7F04BAD4 1000001A */ b .L7F04BB40 +/* 080608 7F04BAD8 24100014 */ li $s0, 20 +.L7F04BADC: +/* 08060C 7F04BADC 12E00003 */ beqz $s7, .L7F04BAEC +/* 080610 7F04BAE0 00000000 */ nop +/* 080614 7F04BAE4 10000016 */ b .L7F04BB40 +/* 080618 7F04BAE8 24100014 */ li $s0, 20 +.L7F04BAEC: +/* 08061C 7F04BAEC 10000014 */ b .L7F04BB40 +/* 080620 7F04BAF0 2410005A */ li $s0, 90 +/* 080624 7F04BAF4 8E6F0000 */ lw $t7, ($s3) +.L7F04BAF8: +/* 080628 7F04BAF8 8FB9007C */ lw $t9, 0x7c($sp) +/* 08062C 7F04BAFC 01F14021 */ addu $t0, $t7, $s1 +/* 080630 7F04BB00 85090002 */ lh $t1, 2($t0) +/* 080634 7F04BB04 0329082A */ slt $at, $t9, $t1 +/* 080638 7F04BB08 14200007 */ bnez $at, .L7F04BB28 +/* 08063C 7F04BB0C 00000000 */ nop +/* 080640 7F04BB10 12E00003 */ beqz $s7, .L7F04BB20 +/* 080644 7F04BB14 00000000 */ nop +/* 080648 7F04BB18 10000009 */ b .L7F04BB40 +/* 08064C 7F04BB1C 2410005A */ li $s0, 90 +.L7F04BB20: +/* 080650 7F04BB20 10000007 */ b .L7F04BB40 +/* 080654 7F04BB24 24100014 */ li $s0, 20 +.L7F04BB28: +/* 080658 7F04BB28 12E00003 */ beqz $s7, .L7F04BB38 +/* 08065C 7F04BB2C 00000000 */ nop +/* 080660 7F04BB30 10000003 */ b .L7F04BB40 +/* 080664 7F04BB34 24100014 */ li $s0, 20 +.L7F04BB38: +/* 080668 7F04BB38 10000001 */ b .L7F04BB40 +/* 08066C 7F04BB3C 2410005A */ li $s0, 90 +.L7F04BB40: +/* 080670 7F04BB40 0FC26DD0 */ jal sub_GAME_7F09B740 +/* 080674 7F04BB44 00000000 */ nop +/* 080678 7F04BB48 24010064 */ li $at, 100 +/* 08067C 7F04BB4C 0041001B */ divu $zero, $v0, $at +/* 080680 7F04BB50 00005010 */ mfhi $t2 +/* 080684 7F04BB54 0150082A */ slt $at, $t2, $s0 +/* 080688 7F04BB58 1020000F */ beqz $at, .L7F04BB98 +/* 08068C 7F04BB5C 8FAA0040 */ lw $t2, 0x40($sp) +/* 080690 7F04BB60 8E6B0000 */ lw $t3, ($s3) +/* 080694 7F04BB64 240800FF */ li $t0, 255 +/* 080698 7F04BB68 01716821 */ addu $t5, $t3, $s1 +/* 08069C 7F04BB6C A1A0000C */ sb $zero, 0xc($t5) +/* 0806A0 7F04BB70 8E6C0000 */ lw $t4, ($s3) +/* 0806A4 7F04BB74 01917021 */ addu $t6, $t4, $s1 +/* 0806A8 7F04BB78 A1C0000D */ sb $zero, 0xd($t6) +/* 0806AC 7F04BB7C 8E780000 */ lw $t8, ($s3) +/* 0806B0 7F04BB80 03117821 */ addu $t7, $t8, $s1 +/* 0806B4 7F04BB84 A1E0000E */ sb $zero, 0xe($t7) +/* 0806B8 7F04BB88 8E790000 */ lw $t9, ($s3) +/* 0806BC 7F04BB8C 03314821 */ addu $t1, $t9, $s1 +/* 0806C0 7F04BB90 10000007 */ b .L7F04BBB0 +/* 0806C4 7F04BB94 A128000F */ sb $t0, 0xf($t1) +.L7F04BB98: +/* 0806C8 7F04BB98 24010002 */ li $at, 2 +/* 0806CC 7F04BB9C 55410005 */ bnel $t2, $at, .L7F04BBB4 +/* 0806D0 7F04BBA0 8E6C0000 */ lw $t4, ($s3) +/* 0806D4 7F04BBA4 8E6B0000 */ lw $t3, ($s3) +/* 0806D8 7F04BBA8 01716821 */ addu $t5, $t3, $s1 +/* 0806DC 7F04BBAC A1A0000F */ sb $zero, 0xf($t5) +.L7F04BBB0: +/* 0806E0 7F04BBB0 8E6C0000 */ lw $t4, ($s3) +.L7F04BBB4: +/* 0806E4 7F04BBB4 C7A80068 */ lwc1 $f8, 0x68($sp) +/* 0806E8 7F04BBB8 C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 0806EC 7F04BBBC 01918021 */ addu $s0, $t4, $s1 +/* 0806F0 7F04BBC0 860E0002 */ lh $t6, 2($s0) +/* 0806F4 7F04BBC4 01D6C023 */ subu $t8, $t6, $s6 +/* 0806F8 7F04BBC8 44982000 */ mtc1 $t8, $f4 +/* 0806FC 7F04BBCC 00000000 */ nop +/* 080700 7F04BBD0 468021A0 */ cvt.s.w $f6, $f4 +/* 080704 7F04BBD4 46083402 */ mul.s $f16, $f6, $f8 +/* 080708 7F04BBD8 460A8480 */ add.s $f18, $f16, $f10 +/* 08070C 7F04BBDC 4600910D */ trunc.w.s $f4, $f18 +/* 080710 7F04BBE0 44192000 */ mfc1 $t9, $f4 +/* 080714 7F04BBE4 0FC26DD0 */ jal sub_GAME_7F09B740 +/* 080718 7F04BBE8 A6190002 */ sh $t9, 2($s0) +/* 08071C 7F04BBEC 0054001B */ divu $zero, $v0, $s4 +/* 080720 7F04BBF0 8E680000 */ lw $t0, ($s3) +/* 080724 7F04BBF4 00005010 */ mfhi $t2 +/* 080728 7F04BBF8 01118021 */ addu $s0, $t0, $s1 +/* 08072C 7F04BBFC 86090000 */ lh $t1, ($s0) +/* 080730 7F04BC00 16800002 */ bnez $s4, .L7F04BC0C +/* 080734 7F04BC04 00000000 */ nop +/* 080738 7F04BC08 0007000D */ break 7 +.L7F04BC0C: +/* 08073C 7F04BC0C 012A5821 */ addu $t3, $t1, $t2 +/* 080740 7F04BC10 256DFFD8 */ addiu $t5, $t3, -0x28 +/* 080744 7F04BC14 0FC26DD0 */ jal sub_GAME_7F09B740 +/* 080748 7F04BC18 A60D0000 */ sh $t5, ($s0) +/* 08074C 7F04BC1C 0054001B */ divu $zero, $v0, $s4 +/* 080750 7F04BC20 8E6C0000 */ lw $t4, ($s3) +/* 080754 7F04BC24 0000C010 */ mfhi $t8 +/* 080758 7F04BC28 01918021 */ addu $s0, $t4, $s1 +/* 08075C 7F04BC2C 860E0002 */ lh $t6, 2($s0) +/* 080760 7F04BC30 16800002 */ bnez $s4, .L7F04BC3C +/* 080764 7F04BC34 00000000 */ nop +/* 080768 7F04BC38 0007000D */ break 7 +.L7F04BC3C: +/* 08076C 7F04BC3C 01D87821 */ addu $t7, $t6, $t8 +/* 080770 7F04BC40 25F9FFD8 */ addiu $t9, $t7, -0x28 +/* 080774 7F04BC44 0FC26DD0 */ jal sub_GAME_7F09B740 +/* 080778 7F04BC48 A6190002 */ sh $t9, 2($s0) +/* 08077C 7F04BC4C 0054001B */ divu $zero, $v0, $s4 +/* 080780 7F04BC50 8E680000 */ lw $t0, ($s3) +/* 080784 7F04BC54 00005010 */ mfhi $t2 +/* 080788 7F04BC58 01118021 */ addu $s0, $t0, $s1 +/* 08078C 7F04BC5C 86090004 */ lh $t1, 4($s0) +/* 080790 7F04BC60 16800002 */ bnez $s4, .L7F04BC6C +/* 080794 7F04BC64 00000000 */ nop +/* 080798 7F04BC68 0007000D */ break 7 +.L7F04BC6C: +/* 08079C 7F04BC6C 012A5821 */ addu $t3, $t1, $t2 +/* 0807A0 7F04BC70 256DFFD8 */ addiu $t5, $t3, -0x28 +/* 0807A4 7F04BC74 A60D0004 */ sh $t5, 4($s0) +/* 0807A8 7F04BC78 8E6C0000 */ lw $t4, ($s3) +/* 0807AC 7F04BC7C 01918021 */ addu $s0, $t4, $s1 +/* 0807B0 7F04BC80 860E0002 */ lh $t6, 2($s0) +/* 0807B4 7F04BC84 01D6082A */ slt $at, $t6, $s6 +/* 0807B8 7F04BC88 50200003 */ beql $at, $zero, .L7F04BC98 +/* 0807BC 7F04BC8C 86B8000C */ lh $t8, 0xc($s5) +/* 0807C0 7F04BC90 A6160002 */ sh $s6, 2($s0) +/* 0807C4 7F04BC94 86B8000C */ lh $t8, 0xc($s5) +.L7F04BC98: +/* 0807C8 7F04BC98 26520001 */ addiu $s2, $s2, 1 +/* 0807CC 7F04BC9C 26310010 */ addiu $s1, $s1, 0x10 +/* 0807D0 7F04BCA0 0258082A */ slt $at, $s2, $t8 +/* 0807D4 7F04BCA4 5420FF6C */ bnezl $at, .L7F04BA58 +/* 0807D8 7F04BCA8 8EAE0008 */ lw $t6, 8($s5) +.L7F04BCAC: +/* 0807DC 7F04BCAC 8FBF003C */ lw $ra, 0x3c($sp) +.L7F04BCB0: +/* 0807E0 7F04BCB0 8FB00018 */ lw $s0, 0x18($sp) +/* 0807E4 7F04BCB4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0807E8 7F04BCB8 8FB20020 */ lw $s2, 0x20($sp) +/* 0807EC 7F04BCBC 8FB30024 */ lw $s3, 0x24($sp) +/* 0807F0 7F04BCC0 8FB40028 */ lw $s4, 0x28($sp) +/* 0807F4 7F04BCC4 8FB5002C */ lw $s5, 0x2c($sp) +/* 0807F8 7F04BCC8 8FB60030 */ lw $s6, 0x30($sp) +/* 0807FC 7F04BCCC 8FB70034 */ lw $s7, 0x34($sp) +/* 080800 7F04BCD0 8FBE0038 */ lw $fp, 0x38($sp) +/* 080804 7F04BCD4 03E00008 */ jr $ra +/* 080808 7F04BCD8 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04BCDC(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052CC4 +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052CC8 +.word 0x40555555 /*3.3333333*/ +glabel D_80052CCC +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052CD0 +.word 0x40555555 /*3.3333333*/ +glabel D_80052CD4 +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052CD8 +.word 0x40555555 /*3.3333333*/ +glabel D_80052CDC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052CE0 +.word 0x3d490fdb /*0.049087387*/ +glabel D_80052CE4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052CE8 +.word 0x3d490fdb /*0.049087387*/ +glabel D_80052CEC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052CF0 +.word 0x3d490fdb /*0.049087387*/ +glabel D_80052CF4 +.word 0x40555555 /*3.3333333*/ +.text +glabel sub_GAME_7F04BCDC +/* 08080C 7F04BCDC 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 080810 7F04BCE0 3C0F8003 */ lui $t7, %hi(D_80032010) +/* 080814 7F04BCE4 AFBF0024 */ sw $ra, 0x24($sp) +/* 080818 7F04BCE8 AFB00020 */ sw $s0, 0x20($sp) +/* 08081C 7F04BCEC F7B40018 */ sdc1 $f20, 0x18($sp) +/* 080820 7F04BCF0 AFA50054 */ sw $a1, 0x54($sp) +/* 080824 7F04BCF4 25EF2010 */ addiu $t7, %lo(D_80032010) # addiu $t7, $t7, 0x2010 +/* 080828 7F04BCF8 8DE10000 */ lw $at, ($t7) +/* 08082C 7F04BCFC 27AE0038 */ addiu $t6, $sp, 0x38 +/* 080830 7F04BD00 8DE80004 */ lw $t0, 4($t7) +/* 080834 7F04BD04 ADC10000 */ sw $at, ($t6) +/* 080838 7F04BD08 8DE10008 */ lw $at, 8($t7) +/* 08083C 7F04BD0C 00803025 */ move $a2, $a0 +/* 080840 7F04BD10 ADC80004 */ sw $t0, 4($t6) +/* 080844 7F04BD14 ADC10008 */ sw $at, 8($t6) +/* 080848 7F04BD18 8C840010 */ lw $a0, 0x10($a0) +/* 08084C 7F04BD1C 00008025 */ move $s0, $zero +/* 080850 7F04BD20 0FC0FF6A */ jal sub_GAME_7F03FDA8 +/* 080854 7F04BD24 AFA60050 */ sw $a2, 0x50($sp) +/* 080858 7F04BD28 8FA60050 */ lw $a2, 0x50($sp) +/* 08085C 7F04BD2C 8CC20064 */ lw $v0, 0x64($a2) +/* 080860 7F04BD30 30490040 */ andi $t1, $v0, 0x40 +/* 080864 7F04BD34 11200004 */ beqz $t1, .L7F04BD48 +/* 080868 7F04BD38 304B0080 */ andi $t3, $v0, 0x80 +/* 08086C 7F04BD3C 8CCA006C */ lw $t2, 0x6c($a2) +/* 080870 7F04BD40 10000004 */ b .L7F04BD54 +/* 080874 7F04BD44 8D500044 */ lw $s0, 0x44($t2) +.L7F04BD48: +/* 080878 7F04BD48 11600002 */ beqz $t3, .L7F04BD54 +/* 08087C 7F04BD4C 00000000 */ nop +/* 080880 7F04BD50 8CD0006C */ lw $s0, 0x6c($a2) +.L7F04BD54: +/* 080884 7F04BD54 5200009A */ beql $s0, $zero, .L7F04BFC0 +/* 080888 7F04BD58 8FBF0024 */ lw $ra, 0x24($sp) +/* 08088C 7F04BD5C 0C002914 */ jal get_random_value +/* 080890 7F04BD60 00000000 */ nop +/* 080894 7F04BD64 44822000 */ mtc1 $v0, $f4 +/* 080898 7F04BD68 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 08089C 7F04BD6C 4481A000 */ mtc1 $at, $f20 +/* 0808A0 7F04BD70 04410005 */ bgez $v0, .L7F04BD88 +/* 0808A4 7F04BD74 468021A0 */ cvt.s.w $f6, $f4 +/* 0808A8 7F04BD78 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0808AC 7F04BD7C 44814000 */ mtc1 $at, $f8 +/* 0808B0 7F04BD80 00000000 */ nop +/* 0808B4 7F04BD84 46083180 */ add.s $f6, $f6, $f8 +.L7F04BD88: +/* 0808B8 7F04BD88 46143282 */ mul.s $f10, $f6, $f20 +/* 0808BC 7F04BD8C 3C018005 */ lui $at, %hi(D_80052CC4) +/* 0808C0 7F04BD90 C4302CC4 */ lwc1 $f16, %lo(D_80052CC4)($at) +/* 0808C4 7F04BD94 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0808C8 7F04BD98 44812000 */ mtc1 $at, $f4 +/* 0808CC 7F04BD9C 3C018005 */ lui $at, %hi(D_80052CC8) +/* 0808D0 7F04BDA0 C4262CC8 */ lwc1 $f6, %lo(D_80052CC8)($at) +/* 0808D4 7F04BDA4 46105482 */ mul.s $f18, $f10, $f16 +/* 0808D8 7F04BDA8 00000000 */ nop +/* 0808DC 7F04BDAC 46049202 */ mul.s $f8, $f18, $f4 +/* 0808E0 7F04BDB0 46064281 */ sub.s $f10, $f8, $f6 +/* 0808E4 7F04BDB4 0C002914 */ jal get_random_value +/* 0808E8 7F04BDB8 E60A0004 */ swc1 $f10, 4($s0) +/* 0808EC 7F04BDBC 44828000 */ mtc1 $v0, $f16 +/* 0808F0 7F04BDC0 04410005 */ bgez $v0, .L7F04BDD8 +/* 0808F4 7F04BDC4 468084A0 */ cvt.s.w $f18, $f16 +/* 0808F8 7F04BDC8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0808FC 7F04BDCC 44812000 */ mtc1 $at, $f4 +/* 080900 7F04BDD0 00000000 */ nop +/* 080904 7F04BDD4 46049480 */ add.s $f18, $f18, $f4 +.L7F04BDD8: +/* 080908 7F04BDD8 46149202 */ mul.s $f8, $f18, $f20 +/* 08090C 7F04BDDC 3C018005 */ lui $at, %hi(D_80052CCC) +/* 080910 7F04BDE0 C4262CCC */ lwc1 $f6, %lo(D_80052CCC)($at) +/* 080914 7F04BDE4 3C018005 */ lui $at, %hi(D_80052CD0) +/* 080918 7F04BDE8 C4302CD0 */ lwc1 $f16, %lo(D_80052CD0)($at) +/* 08091C 7F04BDEC 46064002 */ mul.s $f0, $f8, $f6 +/* 080920 7F04BDF0 46000280 */ add.s $f10, $f0, $f0 +/* 080924 7F04BDF4 46105100 */ add.s $f4, $f10, $f16 +/* 080928 7F04BDF8 0C002914 */ jal get_random_value +/* 08092C 7F04BDFC E6040008 */ swc1 $f4, 8($s0) +/* 080930 7F04BE00 44829000 */ mtc1 $v0, $f18 +/* 080934 7F04BE04 04410005 */ bgez $v0, .L7F04BE1C +/* 080938 7F04BE08 46809220 */ cvt.s.w $f8, $f18 +/* 08093C 7F04BE0C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 080940 7F04BE10 44813000 */ mtc1 $at, $f6 +/* 080944 7F04BE14 00000000 */ nop +/* 080948 7F04BE18 46064200 */ add.s $f8, $f8, $f6 +.L7F04BE1C: +/* 08094C 7F04BE1C 46144282 */ mul.s $f10, $f8, $f20 +/* 080950 7F04BE20 3C018005 */ lui $at, %hi(D_80052CD4) +/* 080954 7F04BE24 C4302CD4 */ lwc1 $f16, %lo(D_80052CD4)($at) +/* 080958 7F04BE28 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 08095C 7F04BE2C 44819000 */ mtc1 $at, $f18 +/* 080960 7F04BE30 3C018005 */ lui $at, %hi(D_80052CD8) +/* 080964 7F04BE34 C4282CD8 */ lwc1 $f8, %lo(D_80052CD8)($at) +/* 080968 7F04BE38 46105102 */ mul.s $f4, $f10, $f16 +/* 08096C 7F04BE3C 00000000 */ nop +/* 080970 7F04BE40 46122182 */ mul.s $f6, $f4, $f18 +/* 080974 7F04BE44 46083281 */ sub.s $f10, $f6, $f8 +/* 080978 7F04BE48 0C002914 */ jal get_random_value +/* 08097C 7F04BE4C E60A000C */ swc1 $f10, 0xc($s0) +/* 080980 7F04BE50 44828000 */ mtc1 $v0, $f16 +/* 080984 7F04BE54 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 080988 7F04BE58 04410004 */ bgez $v0, .L7F04BE6C +/* 08098C 7F04BE5C 46808120 */ cvt.s.w $f4, $f16 +/* 080990 7F04BE60 44819000 */ mtc1 $at, $f18 +/* 080994 7F04BE64 00000000 */ nop +/* 080998 7F04BE68 46122100 */ add.s $f4, $f4, $f18 +.L7F04BE6C: +/* 08099C 7F04BE6C 46142182 */ mul.s $f6, $f4, $f20 +/* 0809A0 7F04BE70 3C018005 */ lui $at, %hi(D_80052CDC) +/* 0809A4 7F04BE74 C4282CDC */ lwc1 $f8, %lo(D_80052CDC)($at) +/* 0809A8 7F04BE78 3C013C80 */ li $at, 0x3C800000 # 0.015625 +/* 0809AC 7F04BE7C 44818000 */ mtc1 $at, $f16 +/* 0809B0 7F04BE80 3C018005 */ lui $at, %hi(D_80052CE0) +/* 0809B4 7F04BE84 C4242CE0 */ lwc1 $f4, %lo(D_80052CE0)($at) +/* 0809B8 7F04BE88 46083282 */ mul.s $f10, $f6, $f8 +/* 0809BC 7F04BE8C 00000000 */ nop +/* 0809C0 7F04BE90 46105482 */ mul.s $f18, $f10, $f16 +/* 0809C4 7F04BE94 46049181 */ sub.s $f6, $f18, $f4 +/* 0809C8 7F04BE98 0C002914 */ jal get_random_value +/* 0809CC 7F04BE9C E7A60038 */ swc1 $f6, 0x38($sp) +/* 0809D0 7F04BEA0 44824000 */ mtc1 $v0, $f8 +/* 0809D4 7F04BEA4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0809D8 7F04BEA8 04410004 */ bgez $v0, .L7F04BEBC +/* 0809DC 7F04BEAC 468042A0 */ cvt.s.w $f10, $f8 +/* 0809E0 7F04BEB0 44818000 */ mtc1 $at, $f16 +/* 0809E4 7F04BEB4 00000000 */ nop +/* 0809E8 7F04BEB8 46105280 */ add.s $f10, $f10, $f16 +.L7F04BEBC: +/* 0809EC 7F04BEBC 46145482 */ mul.s $f18, $f10, $f20 +/* 0809F0 7F04BEC0 3C018005 */ lui $at, %hi(D_80052CE4) +/* 0809F4 7F04BEC4 C4242CE4 */ lwc1 $f4, %lo(D_80052CE4)($at) +/* 0809F8 7F04BEC8 3C013C80 */ li $at, 0x3C800000 # 0.015625 +/* 0809FC 7F04BECC 44814000 */ mtc1 $at, $f8 +/* 080A00 7F04BED0 3C018005 */ lui $at, %hi(D_80052CE8) +/* 080A04 7F04BED4 C42A2CE8 */ lwc1 $f10, %lo(D_80052CE8)($at) +/* 080A08 7F04BED8 46049182 */ mul.s $f6, $f18, $f4 +/* 080A0C 7F04BEDC 00000000 */ nop +/* 080A10 7F04BEE0 46083402 */ mul.s $f16, $f6, $f8 +/* 080A14 7F04BEE4 460A8481 */ sub.s $f18, $f16, $f10 +/* 080A18 7F04BEE8 0C002914 */ jal get_random_value +/* 080A1C 7F04BEEC E7B2003C */ swc1 $f18, 0x3c($sp) +/* 080A20 7F04BEF0 44822000 */ mtc1 $v0, $f4 +/* 080A24 7F04BEF4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 080A28 7F04BEF8 04410004 */ bgez $v0, .L7F04BF0C +/* 080A2C 7F04BEFC 468021A0 */ cvt.s.w $f6, $f4 +/* 080A30 7F04BF00 44814000 */ mtc1 $at, $f8 +/* 080A34 7F04BF04 00000000 */ nop +/* 080A38 7F04BF08 46083180 */ add.s $f6, $f6, $f8 +.L7F04BF0C: +/* 080A3C 7F04BF0C 46143402 */ mul.s $f16, $f6, $f20 +/* 080A40 7F04BF10 3C018005 */ lui $at, %hi(D_80052CEC) +/* 080A44 7F04BF14 C42A2CEC */ lwc1 $f10, %lo(D_80052CEC)($at) +/* 080A48 7F04BF18 3C013C80 */ li $at, 0x3C800000 # 0.015625 +/* 080A4C 7F04BF1C 44812000 */ mtc1 $at, $f4 +/* 080A50 7F04BF20 3C018005 */ lui $at, %hi(D_80052CF0) +/* 080A54 7F04BF24 C4262CF0 */ lwc1 $f6, %lo(D_80052CF0)($at) +/* 080A58 7F04BF28 460A8482 */ mul.s $f18, $f16, $f10 +/* 080A5C 7F04BF2C 27A40038 */ addiu $a0, $sp, 0x38 +/* 080A60 7F04BF30 26050020 */ addiu $a1, $s0, 0x20 +/* 080A64 7F04BF34 46049202 */ mul.s $f8, $f18, $f4 +/* 080A68 7F04BF38 46064401 */ sub.s $f16, $f8, $f6 +/* 080A6C 7F04BF3C 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 080A70 7F04BF40 E7B00040 */ swc1 $f16, 0x40($sp) +/* 080A74 7F04BF44 8E0C0000 */ lw $t4, ($s0) +/* 080A78 7F04BF48 8FA20054 */ lw $v0, 0x54($sp) +/* 080A7C 7F04BF4C 358D0001 */ ori $t5, $t4, 1 +/* 080A80 7F04BF50 AE0D0000 */ sw $t5, ($s0) +/* 080A84 7F04BF54 C44A0000 */ lwc1 $f10, ($v0) +/* 080A88 7F04BF58 E7AA0044 */ swc1 $f10, 0x44($sp) +/* 080A8C 7F04BF5C C4520004 */ lwc1 $f18, 4($v0) +/* 080A90 7F04BF60 E7B20048 */ swc1 $f18, 0x48($sp) +/* 080A94 7F04BF64 C4440008 */ lwc1 $f4, 8($v0) +/* 080A98 7F04BF68 0FC1E111 */ jal sub_GAME_7F078444 +/* 080A9C 7F04BF6C E7A4004C */ swc1 $f4, 0x4c($sp) +/* 080AA0 7F04BF70 00402025 */ move $a0, $v0 +/* 080AA4 7F04BF74 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 080AA8 7F04BF78 27A50044 */ addiu $a1, $sp, 0x44 +/* 080AAC 7F04BF7C 3C018005 */ lui $at, %hi(D_80052CF4) +/* 080AB0 7F04BF80 C4202CF4 */ lwc1 $f0, %lo(D_80052CF4)($at) +/* 080AB4 7F04BF84 C7A60044 */ lwc1 $f6, 0x44($sp) +/* 080AB8 7F04BF88 C6080004 */ lwc1 $f8, 4($s0) +/* 080ABC 7F04BF8C C612000C */ lwc1 $f18, 0xc($s0) +/* 080AC0 7F04BF90 46060402 */ mul.s $f16, $f0, $f6 +/* 080AC4 7F04BF94 46104280 */ add.s $f10, $f8, $f16 +/* 080AC8 7F04BF98 E60A0004 */ swc1 $f10, 4($s0) +/* 080ACC 7F04BF9C C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 080AD0 7F04BFA0 46040182 */ mul.s $f6, $f0, $f4 +/* 080AD4 7F04BFA4 46069200 */ add.s $f8, $f18, $f6 +/* 080AD8 7F04BFA8 0FC225E6 */ jal get_curplayer_positiondata +/* 080ADC 7F04BFAC E608000C */ swc1 $f8, 0xc($s0) +/* 080AE0 7F04BFB0 24190001 */ li $t9, 1 +/* 080AE4 7F04BFB4 AE020088 */ sw $v0, 0x88($s0) +/* 080AE8 7F04BFB8 AE190090 */ sw $t9, 0x90($s0) +/* 080AEC 7F04BFBC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F04BFC0: +/* 080AF0 7F04BFC0 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 080AF4 7F04BFC4 8FB00020 */ lw $s0, 0x20($sp) +/* 080AF8 7F04BFC8 03E00008 */ jr $ra +/* 080AFC 7F04BFCC 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04BFD0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04BFD0 +/* 080B00 7F04BFD0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 080B04 7F04BFD4 AFBF0014 */ sw $ra, 0x14($sp) +/* 080B08 7F04BFD8 8C82001C */ lw $v0, 0x1c($a0) +/* 080B0C 7F04BFDC 50400016 */ beql $v0, $zero, .L7F04C038 +/* 080B10 7F04BFE0 8FBF0014 */ lw $ra, 0x14($sp) +/* 080B14 7F04BFE4 8C820004 */ lw $v0, 4($a0) +/* 080B18 7F04BFE8 AFA50024 */ sw $a1, 0x24($sp) +/* 080B1C 7F04BFEC 0FC0FF6A */ jal sub_GAME_7F03FDA8 +/* 080B20 7F04BFF0 AFA20018 */ sw $v0, 0x18($sp) +/* 080B24 7F04BFF4 8FA20018 */ lw $v0, 0x18($sp) +/* 080B28 7F04BFF8 8FA50024 */ lw $a1, 0x24($sp) +/* 080B2C 7F04BFFC 8C430064 */ lw $v1, 0x64($v0) +/* 080B30 7F04C000 306E0040 */ andi $t6, $v1, 0x40 +/* 080B34 7F04C004 11C00007 */ beqz $t6, .L7F04C024 +/* 080B38 7F04C008 30780080 */ andi $t8, $v1, 0x80 +/* 080B3C 7F04C00C 8C4F006C */ lw $t7, 0x6c($v0) +/* 080B40 7F04C010 8DE40044 */ lw $a0, 0x44($t7) +/* 080B44 7F04C014 10800003 */ beqz $a0, .L7F04C024 +/* 080B48 7F04C018 00000000 */ nop +/* 080B4C 7F04C01C 10000005 */ b .L7F04C034 +/* 080B50 7F04C020 AC8500B8 */ sw $a1, 0xb8($a0) +.L7F04C024: +/* 080B54 7F04C024 53000004 */ beql $t8, $zero, .L7F04C038 +/* 080B58 7F04C028 8FBF0014 */ lw $ra, 0x14($sp) +/* 080B5C 7F04C02C 8C59006C */ lw $t9, 0x6c($v0) +/* 080B60 7F04C030 AF2500B8 */ sw $a1, 0xb8($t9) +.L7F04C034: +/* 080B64 7F04C034 8FBF0014 */ lw $ra, 0x14($sp) +.L7F04C038: +/* 080B68 7F04C038 27BD0020 */ addiu $sp, $sp, 0x20 +/* 080B6C 7F04C03C 03E00008 */ jr $ra +/* 080B70 7F04C040 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04C044(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04C044 +/* 080B74 7F04C044 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 080B78 7F04C048 AFBF0014 */ sw $ra, 0x14($sp) +/* 080B7C 7F04C04C 8C86001C */ lw $a2, 0x1c($a0) +/* 080B80 7F04C050 00802825 */ move $a1, $a0 +/* 080B84 7F04C054 50C00033 */ beql $a2, $zero, .L7F04C124 +/* 080B88 7F04C058 8FBF0014 */ lw $ra, 0x14($sp) +/* 080B8C 7F04C05C 8C820004 */ lw $v0, 4($a0) +/* 080B90 7F04C060 8C4E0014 */ lw $t6, 0x14($v0) +/* 080B94 7F04C064 AFA60024 */ sw $a2, 0x24($sp) +/* 080B98 7F04C068 AFA50028 */ sw $a1, 0x28($sp) +/* 080B9C 7F04C06C AFA20020 */ sw $v0, 0x20($sp) +/* 080BA0 7F04C070 0FC0E974 */ jal sub_GAME_7F03A5D0 +/* 080BA4 7F04C074 AFAE001C */ sw $t6, 0x1c($sp) +/* 080BA8 7F04C078 8FAF001C */ lw $t7, 0x1c($sp) +/* 080BAC 7F04C07C 8FA20020 */ lw $v0, 0x20($sp) +/* 080BB0 7F04C080 8FA60024 */ lw $a2, 0x24($sp) +/* 080BB4 7F04C084 8FA50028 */ lw $a1, 0x28($sp) +/* 080BB8 7F04C088 ADE0001C */ sw $zero, 0x1c($t7) +/* 080BBC 7F04C08C 8C580064 */ lw $t8, 0x64($v0) +/* 080BC0 7F04C090 3C01FFF7 */ lui $at, (0xFFF7FFFF >> 16) # lui $at, 0xfff7 +/* 080BC4 7F04C094 3421FFFF */ ori $at, (0xFFF7FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 080BC8 7F04C098 0301C824 */ and $t9, $t8, $at +/* 080BCC 7F04C09C AC590064 */ sw $t9, 0x64($v0) +/* 080BD0 7F04C0A0 90C30000 */ lbu $v1, ($a2) +/* 080BD4 7F04C0A4 24010003 */ li $at, 3 +/* 080BD8 7F04C0A8 10610003 */ beq $v1, $at, .L7F04C0B8 +/* 080BDC 7F04C0AC 24010006 */ li $at, 6 +/* 080BE0 7F04C0B0 5461001C */ bnel $v1, $at, .L7F04C124 +/* 080BE4 7F04C0B4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F04C0B8: +/* 080BE8 7F04C0B8 8CC40004 */ lw $a0, 4($a2) +/* 080BEC 7F04C0BC 50800019 */ beql $a0, $zero, .L7F04C124 +/* 080BF0 7F04C0C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 080BF4 7F04C0C4 8C8801D8 */ lw $t0, 0x1d8($a0) +/* 080BF8 7F04C0C8 54A80004 */ bnel $a1, $t0, .L7F04C0DC +/* 080BFC 7F04C0CC 8C890160 */ lw $t1, 0x160($a0) +/* 080C00 7F04C0D0 10000013 */ b .L7F04C120 +/* 080C04 7F04C0D4 AC8001D8 */ sw $zero, 0x1d8($a0) +/* 080C08 7F04C0D8 8C890160 */ lw $t1, 0x160($a0) +.L7F04C0DC: +/* 080C0C 7F04C0DC 00003025 */ move $a2, $zero +/* 080C10 7F04C0E0 54A90008 */ bnel $a1, $t1, .L7F04C104 +/* 080C14 7F04C0E4 8C8A0164 */ lw $t2, 0x164($a0) +/* 080C18 7F04C0E8 00002825 */ move $a1, $zero +/* 080C1C 7F04C0EC 0FC0B446 */ jal sub_GAME_7F02D118 +/* 080C20 7F04C0F0 AFA40018 */ sw $a0, 0x18($sp) +/* 080C24 7F04C0F4 8FA40018 */ lw $a0, 0x18($sp) +/* 080C28 7F04C0F8 10000009 */ b .L7F04C120 +/* 080C2C 7F04C0FC AC800160 */ sw $zero, 0x160($a0) +/* 080C30 7F04C100 8C8A0164 */ lw $t2, 0x164($a0) +.L7F04C104: +/* 080C34 7F04C104 00003025 */ move $a2, $zero +/* 080C38 7F04C108 14AA0005 */ bne $a1, $t2, .L7F04C120 +/* 080C3C 7F04C10C 24050001 */ li $a1, 1 +/* 080C40 7F04C110 0FC0B446 */ jal sub_GAME_7F02D118 +/* 080C44 7F04C114 AFA40018 */ sw $a0, 0x18($sp) +/* 080C48 7F04C118 8FA40018 */ lw $a0, 0x18($sp) +/* 080C4C 7F04C11C AC800164 */ sw $zero, 0x164($a0) +.L7F04C120: +/* 080C50 7F04C120 8FBF0014 */ lw $ra, 0x14($sp) +.L7F04C124: +/* 080C54 7F04C124 27BD0028 */ addiu $sp, $sp, 0x28 +/* 080C58 7F04C128 03E00008 */ jr $ra +/* 080C5C 7F04C12C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04C130(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052CF8 +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052CFC +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052D00 +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052D04 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D08 +.word 0x3cc90fdb /*0.024543693*/ +glabel D_80052D0C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D10 +.word 0x3cc90fdb /*0.024543693*/ +glabel D_80052D14 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D18 +.word 0x3cc90fdb /*0.024543693*/ +glabel D_80052D1C +.word 0x41555555 /*13.333333*/ +glabel D_80052D20 +.word 0x40d55555 /*6.6666665*/ +glabel D_80052D24 +.word 0x41555555 /*13.333333*/ +glabel D_80052D28 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D2C +.word 0x3cc90fdb /*0.024543693*/ +glabel D_80052D30 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D34 +.word 0x3cc90fdb /*0.024543693*/ +glabel D_80052D38 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D3C +.word 0x3cc90fdb /*0.024543693*/ +glabel D_80052D40 +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052D44 +.word 0x40555555 /*3.3333333*/ +glabel D_80052D48 +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052D4C +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052D50 +.word 0x40555555 /*3.3333333*/ +glabel D_80052D54 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D58 +.word 0x3dc90fdb /*0.098174773*/ +glabel D_80052D5C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D60 +.word 0x3dc90fdb /*0.098174773*/ +glabel D_80052D64 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D68 +.word 0x3dc90fdb /*0.098174773*/ +.text +glabel sub_GAME_7F04C130 +/* 080C60 7F04C130 27BDFEF8 */ addiu $sp, $sp, -0x108 +/* 080C64 7F04C134 AFBF003C */ sw $ra, 0x3c($sp) +/* 080C68 7F04C138 AFB20038 */ sw $s2, 0x38($sp) +/* 080C6C 7F04C13C AFB10034 */ sw $s1, 0x34($sp) +/* 080C70 7F04C140 AFB00030 */ sw $s0, 0x30($sp) +/* 080C74 7F04C144 AFA40108 */ sw $a0, 0x108($sp) +/* 080C78 7F04C148 8C8F001C */ lw $t7, 0x1c($a0) +/* 080C7C 7F04C14C AFAF0104 */ sw $t7, 0x104($sp) +/* 080C80 7F04C150 8C920004 */ lw $s2, 4($a0) +/* 080C84 7F04C154 8E580064 */ lw $t8, 0x64($s2) +/* 080C88 7F04C158 33190040 */ andi $t9, $t8, 0x40 +/* 080C8C 7F04C15C 5320000F */ beql $t9, $zero, .L7F04C19C +/* 080C90 7F04C160 8FAC0104 */ lw $t4, 0x104($sp) +/* 080C94 7F04C164 8E44006C */ lw $a0, 0x6c($s2) +/* 080C98 7F04C168 8C820044 */ lw $v0, 0x44($a0) +/* 080C9C 7F04C16C 5040000B */ beql $v0, $zero, .L7F04C19C +/* 080CA0 7F04C170 8FAC0104 */ lw $t4, 0x104($sp) +/* 080CA4 7F04C174 0FC0FFA2 */ jal sub_GAME_7F03FE88 +/* 080CA8 7F04C178 00408025 */ move $s0, $v0 +/* 080CAC 7F04C17C 8E480064 */ lw $t0, 0x64($s2) +/* 080CB0 7F04C180 2401FFBF */ li $at, -65 +/* 080CB4 7F04C184 AE50006C */ sw $s0, 0x6c($s2) +/* 080CB8 7F04C188 01014824 */ and $t1, $t0, $at +/* 080CBC 7F04C18C AE490064 */ sw $t1, 0x64($s2) +/* 080CC0 7F04C190 352B0080 */ ori $t3, $t1, 0x80 +/* 080CC4 7F04C194 AE4B0064 */ sw $t3, 0x64($s2) +/* 080CC8 7F04C198 8FAC0104 */ lw $t4, 0x104($sp) +.L7F04C19C: +/* 080CCC 7F04C19C 00001025 */ move $v0, $zero +/* 080CD0 7F04C1A0 11800222 */ beqz $t4, .L7F04CA2C +/* 080CD4 7F04C1A4 00000000 */ nop +/* 080CD8 7F04C1A8 8E4D0064 */ lw $t5, 0x64($s2) +/* 080CDC 7F04C1AC 31AF0080 */ andi $t7, $t5, 0x80 +/* 080CE0 7F04C1B0 11E0021E */ beqz $t7, .L7F04CA2C +/* 080CE4 7F04C1B4 00000000 */ nop +/* 080CE8 7F04C1B8 8E4E0014 */ lw $t6, 0x14($s2) +/* 080CEC 7F04C1BC 24010002 */ li $at, 2 +/* 080CF0 7F04C1C0 01808025 */ move $s0, $t4 +/* 080CF4 7F04C1C4 AFAE00F8 */ sw $t6, 0xf8($sp) +/* 080CF8 7F04C1C8 8E51006C */ lw $s1, 0x6c($s2) +/* 080CFC 7F04C1CC 8E380000 */ lw $t8, ($s1) +/* 080D00 7F04C1D0 8E2200B8 */ lw $v0, 0xb8($s1) +/* 080D04 7F04C1D4 37190001 */ ori $t9, $t8, 1 +/* 080D08 7F04C1D8 AE390000 */ sw $t9, ($s1) +/* 080D0C 7F04C1DC 8FA80104 */ lw $t0, 0x104($sp) +/* 080D10 7F04C1E0 1441007A */ bne $v0, $at, .L7F04C3CC +/* 080D14 7F04C1E4 AE280088 */ sw $t0, 0x88($s1) +/* 080D18 7F04C1E8 8FA90104 */ lw $t1, 0x104($sp) +/* 080D1C 7F04C1EC 24030003 */ li $v1, 3 +/* 080D20 7F04C1F0 3C0D8003 */ lui $t5, %hi(D_8003201C) +/* 080D24 7F04C1F4 912A0000 */ lbu $t2, ($t1) +/* 080D28 7F04C1F8 25AD201C */ addiu $t5, %lo(D_8003201C) # addiu $t5, $t5, 0x201c +/* 080D2C 7F04C1FC 27AB0098 */ addiu $t3, $sp, 0x98 +/* 080D30 7F04C200 546A0073 */ bnel $v1, $t2, .L7F04C3D0 +/* 080D34 7F04C204 24030003 */ li $v1, 3 +/* 080D38 7F04C208 8D220004 */ lw $v0, 4($t1) +/* 080D3C 7F04C20C 8DA10000 */ lw $at, ($t5) +/* 080D40 7F04C210 8DAE0004 */ lw $t6, 4($t5) +/* 080D44 7F04C214 8C44001C */ lw $a0, 0x1c($v0) +/* 080D48 7F04C218 AD610000 */ sw $at, ($t3) +/* 080D4C 7F04C21C 8DA10008 */ lw $at, 8($t5) +/* 080D50 7F04C220 AD6E0004 */ sw $t6, 4($t3) +/* 080D54 7F04C224 0FC1B320 */ jal getsubroty +/* 080D58 7F04C228 AD610008 */ sw $at, 8($t3) +/* 080D5C 7F04C22C E7A00094 */ swc1 $f0, 0x94($sp) +/* 080D60 7F04C230 0FC15FAB */ jal sinf +/* 080D64 7F04C234 46000306 */ mov.s $f12, $f0 +/* 080D68 7F04C238 3C018005 */ lui $at, %hi(D_80052CF8) +/* 080D6C 7F04C23C C4242CF8 */ lwc1 $f4, %lo(D_80052CF8)($at) +/* 080D70 7F04C240 46040182 */ mul.s $f6, $f0, $f4 +/* 080D74 7F04C244 0C002914 */ jal get_random_value +/* 080D78 7F04C248 E6260004 */ swc1 $f6, 4($s1) +/* 080D7C 7F04C24C 44824000 */ mtc1 $v0, $f8 +/* 080D80 7F04C250 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 080D84 7F04C254 04410004 */ bgez $v0, .L7F04C268 +/* 080D88 7F04C258 468042A0 */ cvt.s.w $f10, $f8 +/* 080D8C 7F04C25C 44818000 */ mtc1 $at, $f16 +/* 080D90 7F04C260 00000000 */ nop +/* 080D94 7F04C264 46105280 */ add.s $f10, $f10, $f16 +.L7F04C268: +/* 080D98 7F04C268 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 080D9C 7F04C26C 44819000 */ mtc1 $at, $f18 +/* 080DA0 7F04C270 3C018005 */ lui $at, %hi(D_80052CFC) +/* 080DA4 7F04C274 C4282CFC */ lwc1 $f8, %lo(D_80052CFC)($at) +/* 080DA8 7F04C278 46125102 */ mul.s $f4, $f10, $f18 +/* 080DAC 7F04C27C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 080DB0 7F04C280 44815000 */ mtc1 $at, $f10 +/* 080DB4 7F04C284 46002187 */ neg.s $f6, $f4 +/* 080DB8 7F04C288 46083402 */ mul.s $f16, $f6, $f8 +/* 080DBC 7F04C28C 00000000 */ nop +/* 080DC0 7F04C290 460A8482 */ mul.s $f18, $f16, $f10 +/* 080DC4 7F04C294 E6320008 */ swc1 $f18, 8($s1) +/* 080DC8 7F04C298 0FC15FA8 */ jal cosf +/* 080DCC 7F04C29C C7AC0094 */ lwc1 $f12, 0x94($sp) +/* 080DD0 7F04C2A0 3C018005 */ lui $at, %hi(D_80052D00) +/* 080DD4 7F04C2A4 C4242D00 */ lwc1 $f4, %lo(D_80052D00)($at) +/* 080DD8 7F04C2A8 46040182 */ mul.s $f6, $f0, $f4 +/* 080DDC 7F04C2AC 0C002914 */ jal get_random_value +/* 080DE0 7F04C2B0 E626000C */ swc1 $f6, 0xc($s1) +/* 080DE4 7F04C2B4 44824000 */ mtc1 $v0, $f8 +/* 080DE8 7F04C2B8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 080DEC 7F04C2BC 04410004 */ bgez $v0, .L7F04C2D0 +/* 080DF0 7F04C2C0 46804420 */ cvt.s.w $f16, $f8 +/* 080DF4 7F04C2C4 44815000 */ mtc1 $at, $f10 +/* 080DF8 7F04C2C8 00000000 */ nop +/* 080DFC 7F04C2CC 460A8400 */ add.s $f16, $f16, $f10 +.L7F04C2D0: +/* 080E00 7F04C2D0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 080E04 7F04C2D4 44819000 */ mtc1 $at, $f18 +/* 080E08 7F04C2D8 3C018005 */ lui $at, %hi(D_80052D04) +/* 080E0C 7F04C2DC C4262D04 */ lwc1 $f6, %lo(D_80052D04)($at) +/* 080E10 7F04C2E0 46128102 */ mul.s $f4, $f16, $f18 +/* 080E14 7F04C2E4 3C013C00 */ li $at, 0x3C000000 # 0.007812 +/* 080E18 7F04C2E8 44815000 */ mtc1 $at, $f10 +/* 080E1C 7F04C2EC 3C018005 */ lui $at, %hi(D_80052D08) +/* 080E20 7F04C2F0 C4322D08 */ lwc1 $f18, %lo(D_80052D08)($at) +/* 080E24 7F04C2F4 46062202 */ mul.s $f8, $f4, $f6 +/* 080E28 7F04C2F8 00000000 */ nop +/* 080E2C 7F04C2FC 460A4402 */ mul.s $f16, $f8, $f10 +/* 080E30 7F04C300 46128101 */ sub.s $f4, $f16, $f18 +/* 080E34 7F04C304 0C002914 */ jal get_random_value +/* 080E38 7F04C308 E7A40098 */ swc1 $f4, 0x98($sp) +/* 080E3C 7F04C30C 44823000 */ mtc1 $v0, $f6 +/* 080E40 7F04C310 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 080E44 7F04C314 04410004 */ bgez $v0, .L7F04C328 +/* 080E48 7F04C318 46803220 */ cvt.s.w $f8, $f6 +/* 080E4C 7F04C31C 44815000 */ mtc1 $at, $f10 +/* 080E50 7F04C320 00000000 */ nop +/* 080E54 7F04C324 460A4200 */ add.s $f8, $f8, $f10 +.L7F04C328: +/* 080E58 7F04C328 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 080E5C 7F04C32C 44818000 */ mtc1 $at, $f16 +/* 080E60 7F04C330 3C018005 */ lui $at, %hi(D_80052D0C) +/* 080E64 7F04C334 C4242D0C */ lwc1 $f4, %lo(D_80052D0C)($at) +/* 080E68 7F04C338 46104482 */ mul.s $f18, $f8, $f16 +/* 080E6C 7F04C33C 3C013C00 */ li $at, 0x3C000000 # 0.007812 +/* 080E70 7F04C340 44815000 */ mtc1 $at, $f10 +/* 080E74 7F04C344 3C018005 */ lui $at, %hi(D_80052D10) +/* 080E78 7F04C348 C4302D10 */ lwc1 $f16, %lo(D_80052D10)($at) +/* 080E7C 7F04C34C 46049182 */ mul.s $f6, $f18, $f4 +/* 080E80 7F04C350 00000000 */ nop +/* 080E84 7F04C354 460A3202 */ mul.s $f8, $f6, $f10 +/* 080E88 7F04C358 46104481 */ sub.s $f18, $f8, $f16 +/* 080E8C 7F04C35C 0C002914 */ jal get_random_value +/* 080E90 7F04C360 E7B2009C */ swc1 $f18, 0x9c($sp) +/* 080E94 7F04C364 44822000 */ mtc1 $v0, $f4 +/* 080E98 7F04C368 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 080E9C 7F04C36C 04410004 */ bgez $v0, .L7F04C380 +/* 080EA0 7F04C370 468021A0 */ cvt.s.w $f6, $f4 +/* 080EA4 7F04C374 44815000 */ mtc1 $at, $f10 +/* 080EA8 7F04C378 00000000 */ nop +/* 080EAC 7F04C37C 460A3180 */ add.s $f6, $f6, $f10 +.L7F04C380: +/* 080EB0 7F04C380 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 080EB4 7F04C384 44814000 */ mtc1 $at, $f8 +/* 080EB8 7F04C388 3C018005 */ lui $at, %hi(D_80052D14) +/* 080EBC 7F04C38C C4322D14 */ lwc1 $f18, %lo(D_80052D14)($at) +/* 080EC0 7F04C390 46083402 */ mul.s $f16, $f6, $f8 +/* 080EC4 7F04C394 3C013C00 */ li $at, 0x3C000000 # 0.007812 +/* 080EC8 7F04C398 44815000 */ mtc1 $at, $f10 +/* 080ECC 7F04C39C 3C018005 */ lui $at, %hi(D_80052D18) +/* 080ED0 7F04C3A0 C4282D18 */ lwc1 $f8, %lo(D_80052D18)($at) +/* 080ED4 7F04C3A4 27A40098 */ addiu $a0, $sp, 0x98 +/* 080ED8 7F04C3A8 26250020 */ addiu $a1, $s1, 0x20 +/* 080EDC 7F04C3AC 46128102 */ mul.s $f4, $f16, $f18 +/* 080EE0 7F04C3B0 00000000 */ nop +/* 080EE4 7F04C3B4 460A2182 */ mul.s $f6, $f4, $f10 +/* 080EE8 7F04C3B8 46083401 */ sub.s $f16, $f6, $f8 +/* 080EEC 7F04C3BC 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 080EF0 7F04C3C0 E7B000A0 */ swc1 $f16, 0xa0($sp) +/* 080EF4 7F04C3C4 1000010C */ b .L7F04C7F8 +/* 080EF8 7F04C3C8 8FA90104 */ lw $t1, 0x104($sp) +.L7F04C3CC: +/* 080EFC 7F04C3CC 24030003 */ li $v1, 3 +.L7F04C3D0: +/* 080F00 7F04C3D0 14620068 */ bne $v1, $v0, .L7F04C574 +/* 080F04 7F04C3D4 8FAC0104 */ lw $t4, 0x104($sp) +/* 080F08 7F04C3D8 91980000 */ lbu $t8, ($t4) +/* 080F0C 7F04C3DC 3C088003 */ lui $t0, %hi(D_80032028) +/* 080F10 7F04C3E0 25082028 */ addiu $t0, %lo(D_80032028) # addiu $t0, $t0, 0x2028 +/* 080F14 7F04C3E4 14780063 */ bne $v1, $t8, .L7F04C574 +/* 080F18 7F04C3E8 27B90080 */ addiu $t9, $sp, 0x80 +/* 080F1C 7F04C3EC 8D820004 */ lw $v0, 4($t4) +/* 080F20 7F04C3F0 8D010000 */ lw $at, ($t0) +/* 080F24 7F04C3F4 8D090004 */ lw $t1, 4($t0) +/* 080F28 7F04C3F8 8C44001C */ lw $a0, 0x1c($v0) +/* 080F2C 7F04C3FC AF210000 */ sw $at, ($t9) +/* 080F30 7F04C400 8D010008 */ lw $at, 8($t0) +/* 080F34 7F04C404 AF290004 */ sw $t1, 4($t9) +/* 080F38 7F04C408 0FC1B320 */ jal getsubroty +/* 080F3C 7F04C40C AF210008 */ sw $at, 8($t9) +/* 080F40 7F04C410 E7A0007C */ swc1 $f0, 0x7c($sp) +/* 080F44 7F04C414 0FC15FAB */ jal sinf +/* 080F48 7F04C418 46000306 */ mov.s $f12, $f0 +/* 080F4C 7F04C41C 3C018005 */ lui $at, %hi(D_80052D1C) +/* 080F50 7F04C420 C4322D1C */ lwc1 $f18, %lo(D_80052D1C)($at) +/* 080F54 7F04C424 3C018005 */ lui $at, %hi(D_80052D20) +/* 080F58 7F04C428 46120102 */ mul.s $f4, $f0, $f18 +/* 080F5C 7F04C42C E6240004 */ swc1 $f4, 4($s1) +/* 080F60 7F04C430 C42A2D20 */ lwc1 $f10, %lo(D_80052D20)($at) +/* 080F64 7F04C434 E62A0008 */ swc1 $f10, 8($s1) +/* 080F68 7F04C438 0FC15FA8 */ jal cosf +/* 080F6C 7F04C43C C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 080F70 7F04C440 3C018005 */ lui $at, %hi(D_80052D24) +/* 080F74 7F04C444 C4262D24 */ lwc1 $f6, %lo(D_80052D24)($at) +/* 080F78 7F04C448 46060202 */ mul.s $f8, $f0, $f6 +/* 080F7C 7F04C44C 0C002914 */ jal get_random_value +/* 080F80 7F04C450 E628000C */ swc1 $f8, 0xc($s1) +/* 080F84 7F04C454 44828000 */ mtc1 $v0, $f16 +/* 080F88 7F04C458 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 080F8C 7F04C45C 04410004 */ bgez $v0, .L7F04C470 +/* 080F90 7F04C460 468084A0 */ cvt.s.w $f18, $f16 +/* 080F94 7F04C464 44812000 */ mtc1 $at, $f4 +/* 080F98 7F04C468 00000000 */ nop +/* 080F9C 7F04C46C 46049480 */ add.s $f18, $f18, $f4 +.L7F04C470: +/* 080FA0 7F04C470 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 080FA4 7F04C474 44815000 */ mtc1 $at, $f10 +/* 080FA8 7F04C478 3C018005 */ lui $at, %hi(D_80052D28) +/* 080FAC 7F04C47C C4282D28 */ lwc1 $f8, %lo(D_80052D28)($at) +/* 080FB0 7F04C480 460A9182 */ mul.s $f6, $f18, $f10 +/* 080FB4 7F04C484 3C013C00 */ li $at, 0x3C000000 # 0.007812 +/* 080FB8 7F04C488 44812000 */ mtc1 $at, $f4 +/* 080FBC 7F04C48C 3C018005 */ lui $at, %hi(D_80052D2C) +/* 080FC0 7F04C490 C42A2D2C */ lwc1 $f10, %lo(D_80052D2C)($at) +/* 080FC4 7F04C494 46083402 */ mul.s $f16, $f6, $f8 +/* 080FC8 7F04C498 00000000 */ nop +/* 080FCC 7F04C49C 46048482 */ mul.s $f18, $f16, $f4 +/* 080FD0 7F04C4A0 460A9181 */ sub.s $f6, $f18, $f10 +/* 080FD4 7F04C4A4 0C002914 */ jal get_random_value +/* 080FD8 7F04C4A8 E7A60080 */ swc1 $f6, 0x80($sp) +/* 080FDC 7F04C4AC 44824000 */ mtc1 $v0, $f8 +/* 080FE0 7F04C4B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 080FE4 7F04C4B4 04410004 */ bgez $v0, .L7F04C4C8 +/* 080FE8 7F04C4B8 46804420 */ cvt.s.w $f16, $f8 +/* 080FEC 7F04C4BC 44812000 */ mtc1 $at, $f4 +/* 080FF0 7F04C4C0 00000000 */ nop +/* 080FF4 7F04C4C4 46048400 */ add.s $f16, $f16, $f4 +.L7F04C4C8: +/* 080FF8 7F04C4C8 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 080FFC 7F04C4CC 44819000 */ mtc1 $at, $f18 +/* 081000 7F04C4D0 3C018005 */ lui $at, %hi(D_80052D30) +/* 081004 7F04C4D4 C4262D30 */ lwc1 $f6, %lo(D_80052D30)($at) +/* 081008 7F04C4D8 46128282 */ mul.s $f10, $f16, $f18 +/* 08100C 7F04C4DC 3C013C00 */ li $at, 0x3C000000 # 0.007812 +/* 081010 7F04C4E0 44812000 */ mtc1 $at, $f4 +/* 081014 7F04C4E4 3C018005 */ lui $at, %hi(D_80052D34) +/* 081018 7F04C4E8 C4322D34 */ lwc1 $f18, %lo(D_80052D34)($at) +/* 08101C 7F04C4EC 46065202 */ mul.s $f8, $f10, $f6 +/* 081020 7F04C4F0 00000000 */ nop +/* 081024 7F04C4F4 46044402 */ mul.s $f16, $f8, $f4 +/* 081028 7F04C4F8 46128281 */ sub.s $f10, $f16, $f18 +/* 08102C 7F04C4FC 0C002914 */ jal get_random_value +/* 081030 7F04C500 E7AA0084 */ swc1 $f10, 0x84($sp) +/* 081034 7F04C504 44823000 */ mtc1 $v0, $f6 +/* 081038 7F04C508 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 08103C 7F04C50C 04410004 */ bgez $v0, .L7F04C520 +/* 081040 7F04C510 46803220 */ cvt.s.w $f8, $f6 +/* 081044 7F04C514 44812000 */ mtc1 $at, $f4 +/* 081048 7F04C518 00000000 */ nop +/* 08104C 7F04C51C 46044200 */ add.s $f8, $f8, $f4 +.L7F04C520: +/* 081050 7F04C520 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 081054 7F04C524 44818000 */ mtc1 $at, $f16 +/* 081058 7F04C528 3C018005 */ lui $at, %hi(D_80052D38) +/* 08105C 7F04C52C C42A2D38 */ lwc1 $f10, %lo(D_80052D38)($at) +/* 081060 7F04C530 46104482 */ mul.s $f18, $f8, $f16 +/* 081064 7F04C534 3C013C00 */ li $at, 0x3C000000 # 0.007812 +/* 081068 7F04C538 44812000 */ mtc1 $at, $f4 +/* 08106C 7F04C53C 3C018005 */ lui $at, %hi(D_80052D3C) +/* 081070 7F04C540 C4302D3C */ lwc1 $f16, %lo(D_80052D3C)($at) +/* 081074 7F04C544 27A40080 */ addiu $a0, $sp, 0x80 +/* 081078 7F04C548 26250020 */ addiu $a1, $s1, 0x20 +/* 08107C 7F04C54C 460A9182 */ mul.s $f6, $f18, $f10 +/* 081080 7F04C550 00000000 */ nop +/* 081084 7F04C554 46043202 */ mul.s $f8, $f6, $f4 +/* 081088 7F04C558 46104481 */ sub.s $f18, $f8, $f16 +/* 08108C 7F04C55C 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 081090 7F04C560 E7B20088 */ swc1 $f18, 0x88($sp) +/* 081094 7F04C564 8E2F0000 */ lw $t7, ($s1) +/* 081098 7F04C568 35EB0040 */ ori $t3, $t7, 0x40 +/* 08109C 7F04C56C 100000A1 */ b .L7F04C7F4 +/* 0810A0 7F04C570 AE2B0000 */ sw $t3, ($s1) +.L7F04C574: +/* 0810A4 7F04C574 24010004 */ li $at, 4 +/* 0810A8 7F04C578 1441009C */ bne $v0, $at, .L7F04C7EC +/* 0810AC 7F04C57C 26240004 */ addiu $a0, $s1, 4 +/* 0810B0 7F04C580 3C0E8003 */ lui $t6, %hi(D_80032034) +/* 0810B4 7F04C584 25CE2034 */ addiu $t6, %lo(D_80032034) # addiu $t6, $t6, 0x2034 +/* 0810B8 7F04C588 8DC10000 */ lw $at, ($t6) +/* 0810BC 7F04C58C 27AD0070 */ addiu $t5, $sp, 0x70 +/* 0810C0 7F04C590 8DCC0004 */ lw $t4, 4($t6) +/* 0810C4 7F04C594 ADA10000 */ sw $at, ($t5) +/* 0810C8 7F04C598 8DC10008 */ lw $at, 8($t6) +/* 0810CC 7F04C59C ADAC0004 */ sw $t4, 4($t5) +/* 0810D0 7F04C5A0 0FC225E6 */ jal get_curplayer_positiondata +/* 0810D4 7F04C5A4 ADA10008 */ sw $at, 8($t5) +/* 0810D8 7F04C5A8 8FAA0104 */ lw $t2, 0x104($sp) +/* 0810DC 7F04C5AC C4460008 */ lwc1 $f6, 8($v0) +/* 0810E0 7F04C5B0 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0810E4 7F04C5B4 C54A0008 */ lwc1 $f10, 8($t2) +/* 0810E8 7F04C5B8 C5440010 */ lwc1 $f4, 0x10($t2) +/* 0810EC 7F04C5BC 46065301 */ sub.s $f12, $f10, $f6 +/* 0810F0 7F04C5C0 0FC16A8C */ jal atan2f +/* 0810F4 7F04C5C4 46082381 */ sub.s $f14, $f4, $f8 +/* 0810F8 7F04C5C8 0C002914 */ jal get_random_value +/* 0810FC 7F04C5CC E7A00060 */ swc1 $f0, 0x60($sp) +/* 081100 7F04C5D0 AFA20050 */ sw $v0, 0x50($sp) +/* 081104 7F04C5D4 0FC15FAB */ jal sinf +/* 081108 7F04C5D8 C7AC0060 */ lwc1 $f12, 0x60($sp) +/* 08110C 7F04C5DC 8FB90050 */ lw $t9, 0x50($sp) +/* 081110 7F04C5E0 44998000 */ mtc1 $t9, $f16 +/* 081114 7F04C5E4 07210005 */ bgez $t9, .L7F04C5FC +/* 081118 7F04C5E8 468084A0 */ cvt.s.w $f18, $f16 +/* 08111C 7F04C5EC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 081120 7F04C5F0 44815000 */ mtc1 $at, $f10 +/* 081124 7F04C5F4 00000000 */ nop +/* 081128 7F04C5F8 460A9480 */ add.s $f18, $f18, $f10 +.L7F04C5FC: +/* 08112C 7F04C5FC 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 081130 7F04C600 44813000 */ mtc1 $at, $f6 +/* 081134 7F04C604 3C018005 */ lui $at, %hi(D_80052D40) +/* 081138 7F04C608 C4282D40 */ lwc1 $f8, %lo(D_80052D40)($at) +/* 08113C 7F04C60C 46069102 */ mul.s $f4, $f18, $f6 +/* 081140 7F04C610 3C018005 */ lui $at, %hi(D_80052D44) +/* 081144 7F04C614 C42A2D44 */ lwc1 $f10, %lo(D_80052D44)($at) +/* 081148 7F04C618 46082082 */ mul.s $f2, $f4, $f8 +/* 08114C 7F04C61C 46021400 */ add.s $f16, $f2, $f2 +/* 081150 7F04C620 460A8480 */ add.s $f18, $f16, $f10 +/* 081154 7F04C624 46120182 */ mul.s $f6, $f0, $f18 +/* 081158 7F04C628 0C002914 */ jal get_random_value +/* 08115C 7F04C62C E6260004 */ swc1 $f6, 4($s1) +/* 081160 7F04C630 44822000 */ mtc1 $v0, $f4 +/* 081164 7F04C634 04410005 */ bgez $v0, .L7F04C64C +/* 081168 7F04C638 46802220 */ cvt.s.w $f8, $f4 +/* 08116C 7F04C63C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 081170 7F04C640 44818000 */ mtc1 $at, $f16 +/* 081174 7F04C644 00000000 */ nop +/* 081178 7F04C648 46104200 */ add.s $f8, $f8, $f16 +.L7F04C64C: +/* 08117C 7F04C64C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 081180 7F04C650 44815000 */ mtc1 $at, $f10 +/* 081184 7F04C654 3C018005 */ lui $at, %hi(D_80052D48) +/* 081188 7F04C658 C4262D48 */ lwc1 $f6, %lo(D_80052D48)($at) +/* 08118C 7F04C65C 460A4482 */ mul.s $f18, $f8, $f10 +/* 081190 7F04C660 00000000 */ nop +/* 081194 7F04C664 46069002 */ mul.s $f0, $f18, $f6 +/* 081198 7F04C668 46000100 */ add.s $f4, $f0, $f0 +/* 08119C 7F04C66C 0C002914 */ jal get_random_value +/* 0811A0 7F04C670 E6240008 */ swc1 $f4, 8($s1) +/* 0811A4 7F04C674 AFA20050 */ sw $v0, 0x50($sp) +/* 0811A8 7F04C678 0FC15FA8 */ jal cosf +/* 0811AC 7F04C67C C7AC0060 */ lwc1 $f12, 0x60($sp) +/* 0811B0 7F04C680 8FA80050 */ lw $t0, 0x50($sp) +/* 0811B4 7F04C684 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0811B8 7F04C688 44888000 */ mtc1 $t0, $f16 +/* 0811BC 7F04C68C 05010004 */ bgez $t0, .L7F04C6A0 +/* 0811C0 7F04C690 46808220 */ cvt.s.w $f8, $f16 +/* 0811C4 7F04C694 44815000 */ mtc1 $at, $f10 +/* 0811C8 7F04C698 00000000 */ nop +/* 0811CC 7F04C69C 460A4200 */ add.s $f8, $f8, $f10 +.L7F04C6A0: +/* 0811D0 7F04C6A0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0811D4 7F04C6A4 44819000 */ mtc1 $at, $f18 +/* 0811D8 7F04C6A8 3C018005 */ lui $at, %hi(D_80052D4C) +/* 0811DC 7F04C6AC C4242D4C */ lwc1 $f4, %lo(D_80052D4C)($at) +/* 0811E0 7F04C6B0 46124182 */ mul.s $f6, $f8, $f18 +/* 0811E4 7F04C6B4 3C018005 */ lui $at, %hi(D_80052D50) +/* 0811E8 7F04C6B8 C42A2D50 */ lwc1 $f10, %lo(D_80052D50)($at) +/* 0811EC 7F04C6BC 46043082 */ mul.s $f2, $f6, $f4 +/* 0811F0 7F04C6C0 46021400 */ add.s $f16, $f2, $f2 +/* 0811F4 7F04C6C4 460A8200 */ add.s $f8, $f16, $f10 +/* 0811F8 7F04C6C8 46080482 */ mul.s $f18, $f0, $f8 +/* 0811FC 7F04C6CC 0C002914 */ jal get_random_value +/* 081200 7F04C6D0 E632000C */ swc1 $f18, 0xc($s1) +/* 081204 7F04C6D4 44823000 */ mtc1 $v0, $f6 +/* 081208 7F04C6D8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 08120C 7F04C6DC 04410004 */ bgez $v0, .L7F04C6F0 +/* 081210 7F04C6E0 46803120 */ cvt.s.w $f4, $f6 +/* 081214 7F04C6E4 44818000 */ mtc1 $at, $f16 +/* 081218 7F04C6E8 00000000 */ nop +/* 08121C 7F04C6EC 46102100 */ add.s $f4, $f4, $f16 +.L7F04C6F0: +/* 081220 7F04C6F0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 081224 7F04C6F4 44815000 */ mtc1 $at, $f10 +/* 081228 7F04C6F8 3C018005 */ lui $at, %hi(D_80052D54) +/* 08122C 7F04C6FC C4322D54 */ lwc1 $f18, %lo(D_80052D54)($at) +/* 081230 7F04C700 460A2202 */ mul.s $f8, $f4, $f10 +/* 081234 7F04C704 3C013D00 */ li $at, 0x3D000000 # 0.031250 +/* 081238 7F04C708 44818000 */ mtc1 $at, $f16 +/* 08123C 7F04C70C 3C018005 */ lui $at, %hi(D_80052D58) +/* 081240 7F04C710 C42A2D58 */ lwc1 $f10, %lo(D_80052D58)($at) +/* 081244 7F04C714 46124182 */ mul.s $f6, $f8, $f18 +/* 081248 7F04C718 00000000 */ nop +/* 08124C 7F04C71C 46103102 */ mul.s $f4, $f6, $f16 +/* 081250 7F04C720 460A2201 */ sub.s $f8, $f4, $f10 +/* 081254 7F04C724 0C002914 */ jal get_random_value +/* 081258 7F04C728 E7A80070 */ swc1 $f8, 0x70($sp) +/* 08125C 7F04C72C 44829000 */ mtc1 $v0, $f18 +/* 081260 7F04C730 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 081264 7F04C734 04410004 */ bgez $v0, .L7F04C748 +/* 081268 7F04C738 468091A0 */ cvt.s.w $f6, $f18 +/* 08126C 7F04C73C 44818000 */ mtc1 $at, $f16 +/* 081270 7F04C740 00000000 */ nop +/* 081274 7F04C744 46103180 */ add.s $f6, $f6, $f16 +.L7F04C748: +/* 081278 7F04C748 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 08127C 7F04C74C 44812000 */ mtc1 $at, $f4 +/* 081280 7F04C750 3C018005 */ lui $at, %hi(D_80052D5C) +/* 081284 7F04C754 C4282D5C */ lwc1 $f8, %lo(D_80052D5C)($at) +/* 081288 7F04C758 46043282 */ mul.s $f10, $f6, $f4 +/* 08128C 7F04C75C 3C013D00 */ li $at, 0x3D000000 # 0.031250 +/* 081290 7F04C760 44818000 */ mtc1 $at, $f16 +/* 081294 7F04C764 3C018005 */ lui $at, %hi(D_80052D60) +/* 081298 7F04C768 C4242D60 */ lwc1 $f4, %lo(D_80052D60)($at) +/* 08129C 7F04C76C 46085482 */ mul.s $f18, $f10, $f8 +/* 0812A0 7F04C770 00000000 */ nop +/* 0812A4 7F04C774 46109182 */ mul.s $f6, $f18, $f16 +/* 0812A8 7F04C778 46043281 */ sub.s $f10, $f6, $f4 +/* 0812AC 7F04C77C 0C002914 */ jal get_random_value +/* 0812B0 7F04C780 E7AA0074 */ swc1 $f10, 0x74($sp) +/* 0812B4 7F04C784 44824000 */ mtc1 $v0, $f8 +/* 0812B8 7F04C788 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0812BC 7F04C78C 04410004 */ bgez $v0, .L7F04C7A0 +/* 0812C0 7F04C790 468044A0 */ cvt.s.w $f18, $f8 +/* 0812C4 7F04C794 44818000 */ mtc1 $at, $f16 +/* 0812C8 7F04C798 00000000 */ nop +/* 0812CC 7F04C79C 46109480 */ add.s $f18, $f18, $f16 +.L7F04C7A0: +/* 0812D0 7F04C7A0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0812D4 7F04C7A4 44813000 */ mtc1 $at, $f6 +/* 0812D8 7F04C7A8 3C018005 */ lui $at, %hi(D_80052D64) +/* 0812DC 7F04C7AC C42A2D64 */ lwc1 $f10, %lo(D_80052D64)($at) +/* 0812E0 7F04C7B0 46069102 */ mul.s $f4, $f18, $f6 +/* 0812E4 7F04C7B4 3C013D00 */ li $at, 0x3D000000 # 0.031250 +/* 0812E8 7F04C7B8 44818000 */ mtc1 $at, $f16 +/* 0812EC 7F04C7BC 3C018005 */ lui $at, %hi(D_80052D68) +/* 0812F0 7F04C7C0 C4262D68 */ lwc1 $f6, %lo(D_80052D68)($at) +/* 0812F4 7F04C7C4 27A40070 */ addiu $a0, $sp, 0x70 +/* 0812F8 7F04C7C8 26250020 */ addiu $a1, $s1, 0x20 +/* 0812FC 7F04C7CC 460A2202 */ mul.s $f8, $f4, $f10 +/* 081300 7F04C7D0 00000000 */ nop +/* 081304 7F04C7D4 46104482 */ mul.s $f18, $f8, $f16 +/* 081308 7F04C7D8 46069101 */ sub.s $f4, $f18, $f6 +/* 08130C 7F04C7DC 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 081310 7F04C7E0 E7A40078 */ swc1 $f4, 0x78($sp) +/* 081314 7F04C7E4 10000004 */ b .L7F04C7F8 +/* 081318 7F04C7E8 8FA90104 */ lw $t1, 0x104($sp) +.L7F04C7EC: +/* 08131C 7F04C7EC 0FC15F05 */ jal sub_GAME_7F057C14 +/* 081320 7F04C7F0 26250020 */ addiu $a1, $s1, 0x20 +.L7F04C7F4: +/* 081324 7F04C7F4 8FA90104 */ lw $t1, 0x104($sp) +.L7F04C7F8: +/* 081328 7F04C7F8 8D2F001C */ lw $t7, 0x1c($t1) +/* 08132C 7F04C7FC 51E00007 */ beql $t7, $zero, .L7F04C81C +/* 081330 7F04C800 8E0B0014 */ lw $t3, 0x14($s0) +/* 081334 7F04C804 8E02001C */ lw $v0, 0x1c($s0) +/* 081338 7F04C808 00408025 */ move $s0, $v0 +.L7F04C80C: +/* 08133C 7F04C80C 8C42001C */ lw $v0, 0x1c($v0) +/* 081340 7F04C810 5440FFFE */ bnezl $v0, .L7F04C80C +/* 081344 7F04C814 00408025 */ move $s0, $v0 +/* 081348 7F04C818 8E0B0014 */ lw $t3, 0x14($s0) +.L7F04C81C: +/* 08134C 7F04C81C 8FA20108 */ lw $v0, 0x108($sp) +/* 081350 7F04C820 AFAB00B0 */ sw $t3, 0xb0($sp) +/* 081354 7F04C824 90580001 */ lbu $t8, 1($v0) +/* 081358 7F04C828 330D0002 */ andi $t5, $t8, 2 +/* 08135C 7F04C82C 51A0004B */ beql $t5, $zero, .L7F04C95C +/* 081360 7F04C830 8E0A0014 */ lw $t2, 0x14($s0) +/* 081364 7F04C834 0FC10411 */ jal if_a0_plus_3_is_4_then_10_else_20 +/* 081368 7F04C838 02402025 */ move $a0, $s2 +/* 08136C 7F04C83C E7A0005C */ swc1 $f0, 0x5c($sp) +/* 081370 7F04C840 0FC1B1A8 */ jal getsubmatrix +/* 081374 7F04C844 8FA400F8 */ lw $a0, 0xf8($sp) +/* 081378 7F04C848 240E001F */ li $t6, 31 +/* 08137C 7F04C84C AFA20058 */ sw $v0, 0x58($sp) +/* 081380 7F04C850 0FC1E111 */ jal sub_GAME_7F078444 +/* 081384 7F04C854 AFAE0054 */ sw $t6, 0x54($sp) +/* 081388 7F04C858 00402025 */ move $a0, $v0 +/* 08138C 7F04C85C 8FA50058 */ lw $a1, 0x58($sp) +/* 081390 7F04C860 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 081394 7F04C864 27A600B8 */ addiu $a2, $sp, 0xb8 +/* 081398 7F04C868 8E2C0000 */ lw $t4, ($s1) +/* 08139C 7F04C86C 2419001D */ li $t9, 29 +/* 0813A0 7F04C870 02002025 */ move $a0, $s0 +/* 0813A4 7F04C874 318A0040 */ andi $t2, $t4, 0x40 +/* 0813A8 7F04C878 11400002 */ beqz $t2, .L7F04C884 +/* 0813AC 7F04C87C 00000000 */ nop +/* 0813B0 7F04C880 AFB90054 */ sw $t9, 0x54($sp) +.L7F04C884: +/* 0813B4 7F04C884 0FC0F416 */ jal sub_GAME_7F03D058 +/* 0813B8 7F04C888 00002825 */ move $a1, $zero +/* 0813BC 7F04C88C 8E050008 */ lw $a1, 8($s0) +/* 0813C0 7F04C890 8E060010 */ lw $a2, 0x10($s0) +/* 0813C4 7F04C894 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0813C8 7F04C898 44811000 */ mtc1 $at, $f2 +/* 0813CC 7F04C89C 44800000 */ mtc1 $zero, $f0 +/* 0813D0 7F04C8A0 C7AA00F0 */ lwc1 $f10, 0xf0($sp) +/* 0813D4 7F04C8A4 8FA80054 */ lw $t0, 0x54($sp) +/* 0813D8 7F04C8A8 27B100B0 */ addiu $s1, $sp, 0xb0 +/* 0813DC 7F04C8AC 02202025 */ move $a0, $s1 +/* 0813E0 7F04C8B0 8FA700E8 */ lw $a3, 0xe8($sp) +/* 0813E4 7F04C8B4 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0813E8 7F04C8B8 E7A20024 */ swc1 $f2, 0x24($sp) +/* 0813EC 7F04C8BC E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0813F0 7F04C8C0 E7A00018 */ swc1 $f0, 0x18($sp) +/* 0813F4 7F04C8C4 E7A00020 */ swc1 $f0, 0x20($sp) +/* 0813F8 7F04C8C8 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0813FC 7F04C8CC AFA80014 */ sw $t0, 0x14($sp) +/* 081400 7F04C8D0 10400011 */ beqz $v0, .L7F04C918 +/* 081404 7F04C8D4 02202025 */ move $a0, $s1 +/* 081408 7F04C8D8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 08140C 7F04C8DC 44818000 */ mtc1 $at, $f16 +/* 081410 7F04C8E0 8FA90054 */ lw $t1, 0x54($sp) +/* 081414 7F04C8E4 44804000 */ mtc1 $zero, $f8 +/* 081418 7F04C8E8 8FA500E8 */ lw $a1, 0xe8($sp) +/* 08141C 7F04C8EC 8FA600F0 */ lw $a2, 0xf0($sp) +/* 081420 7F04C8F0 8FA7005C */ lw $a3, 0x5c($sp) +/* 081424 7F04C8F4 AFA90010 */ sw $t1, 0x10($sp) +/* 081428 7F04C8F8 E7B00018 */ swc1 $f16, 0x18($sp) +/* 08142C 7F04C8FC 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 081430 7F04C900 E7A80014 */ swc1 $f8, 0x14($sp) +/* 081434 7F04C904 04410004 */ bgez $v0, .L7F04C918 +/* 081438 7F04C908 8FAF00B0 */ lw $t7, 0xb0($sp) +/* 08143C 7F04C90C 8FAB0108 */ lw $t3, 0x108($sp) +/* 081440 7F04C910 10000008 */ b .L7F04C934 +/* 081444 7F04C914 AD6F0014 */ sw $t7, 0x14($t3) +.L7F04C918: +/* 081448 7F04C918 8E180014 */ lw $t8, 0x14($s0) +/* 08144C 7F04C91C 8FAD0108 */ lw $t5, 0x108($sp) +/* 081450 7F04C920 ADB80014 */ sw $t8, 0x14($t5) +/* 081454 7F04C924 C6120008 */ lwc1 $f18, 8($s0) +/* 081458 7F04C928 E7B200E8 */ swc1 $f18, 0xe8($sp) +/* 08145C 7F04C92C C6060010 */ lwc1 $f6, 0x10($s0) +/* 081460 7F04C930 E7A600F0 */ swc1 $f6, 0xf0($sp) +.L7F04C934: +/* 081464 7F04C934 02002025 */ move $a0, $s0 +/* 081468 7F04C938 0FC0F416 */ jal sub_GAME_7F03D058 +/* 08146C 7F04C93C 24050001 */ li $a1, 1 +/* 081470 7F04C940 8FAE0058 */ lw $t6, 0x58($sp) +/* 081474 7F04C944 8FAC0108 */ lw $t4, 0x108($sp) +/* 081478 7F04C948 C5C40038 */ lwc1 $f4, 0x38($t6) +/* 08147C 7F04C94C 46002287 */ neg.s $f10, $f4 +/* 081480 7F04C950 1000000C */ b .L7F04C984 +/* 081484 7F04C954 E58A0018 */ swc1 $f10, 0x18($t4) +/* 081488 7F04C958 8E0A0014 */ lw $t2, 0x14($s0) +.L7F04C95C: +/* 08148C 7F04C95C 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 081490 7F04C960 0FC15FF4 */ jal matrix_4x4_set_identity +/* 081494 7F04C964 AC4A0014 */ sw $t2, 0x14($v0) +/* 081498 7F04C968 8FB900F8 */ lw $t9, 0xf8($sp) +/* 08149C 7F04C96C 27A500B8 */ addiu $a1, $sp, 0xb8 +/* 0814A0 7F04C970 0FC1629F */ jal matrix_scalar_multiply +/* 0814A4 7F04C974 C72C0014 */ lwc1 $f12, 0x14($t9) +/* 0814A8 7F04C978 26040008 */ addiu $a0, $s0, 8 +/* 0814AC 7F04C97C 0FC16266 */ jal matrix_4x4_set_position +/* 0814B0 7F04C980 27A500B8 */ addiu $a1, $sp, 0xb8 +.L7F04C984: +/* 0814B4 7F04C984 0FC13011 */ jal sub_GAME_7F04C044 +/* 0814B8 7F04C988 8FA40108 */ lw $a0, 0x108($sp) +/* 0814BC 7F04C98C 0FC0E929 */ jal set_current_objposdata_plus_0x28 +/* 0814C0 7F04C990 8FA40108 */ lw $a0, 0x108($sp) +/* 0814C4 7F04C994 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 0814C8 7F04C998 8FA40108 */ lw $a0, 0x108($sp) +/* 0814CC 7F04C99C C7A000E8 */ lwc1 $f0, 0xe8($sp) +/* 0814D0 7F04C9A0 8FA80108 */ lw $t0, 0x108($sp) +/* 0814D4 7F04C9A4 44804000 */ mtc1 $zero, $f8 +/* 0814D8 7F04C9A8 44808000 */ mtc1 $zero, $f16 +/* 0814DC 7F04C9AC E5000008 */ swc1 $f0, 8($t0) +/* 0814E0 7F04C9B0 E6400058 */ swc1 $f0, 0x58($s2) +/* 0814E4 7F04C9B4 C7A000EC */ lwc1 $f0, 0xec($sp) +/* 0814E8 7F04C9B8 8FA90108 */ lw $t1, 0x108($sp) +/* 0814EC 7F04C9BC 44809000 */ mtc1 $zero, $f18 +/* 0814F0 7F04C9C0 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 0814F4 7F04C9C4 E520000C */ swc1 $f0, 0xc($t1) +/* 0814F8 7F04C9C8 E640005C */ swc1 $f0, 0x5c($s2) +/* 0814FC 7F04C9CC C7A000F0 */ lwc1 $f0, 0xf0($sp) +/* 081500 7F04C9D0 8FAF0108 */ lw $t7, 0x108($sp) +/* 081504 7F04C9D4 26450018 */ addiu $a1, $s2, 0x18 +/* 081508 7F04C9D8 E5E00010 */ swc1 $f0, 0x10($t7) +/* 08150C 7F04C9DC E6400060 */ swc1 $f0, 0x60($s2) +/* 081510 7F04C9E0 E7A800E8 */ swc1 $f8, 0xe8($sp) +/* 081514 7F04C9E4 E7B000EC */ swc1 $f16, 0xec($sp) +/* 081518 7F04C9E8 0FC16008 */ jal matrix_4x4_copy +/* 08151C 7F04C9EC E7B200F0 */ swc1 $f18, 0xf0($sp) +/* 081520 7F04C9F0 8E440010 */ lw $a0, 0x10($s2) +/* 081524 7F04C9F4 0FC100AD */ jal sub_GAME_7F0402B4 +/* 081528 7F04C9F8 2645007C */ addiu $a1, $s2, 0x7c +/* 08152C 7F04C9FC 924B007C */ lbu $t3, 0x7c($s2) +/* 081530 7F04CA00 9258007D */ lbu $t8, 0x7d($s2) +/* 081534 7F04CA04 924D007E */ lbu $t5, 0x7e($s2) +/* 081538 7F04CA08 924E007F */ lbu $t6, 0x7f($s2) +/* 08153C 7F04CA0C 02402025 */ move $a0, $s2 +/* 081540 7F04CA10 A24B0078 */ sb $t3, 0x78($s2) +/* 081544 7F04CA14 A2580079 */ sb $t8, 0x79($s2) +/* 081548 7F04CA18 A24D007A */ sb $t5, 0x7a($s2) +/* 08154C 7F04CA1C 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 081550 7F04CA20 A24E007B */ sb $t6, 0x7b($s2) +/* 081554 7F04CA24 10000001 */ b .L7F04CA2C +/* 081558 7F04CA28 24020001 */ li $v0, 1 +.L7F04CA2C: +/* 08155C 7F04CA2C 8FBF003C */ lw $ra, 0x3c($sp) +/* 081560 7F04CA30 8FB00030 */ lw $s0, 0x30($sp) +/* 081564 7F04CA34 8FB10034 */ lw $s1, 0x34($sp) +/* 081568 7F04CA38 8FB20038 */ lw $s2, 0x38($sp) +/* 08156C 7F04CA3C 03E00008 */ jr $ra +/* 081570 7F04CA40 27BD0108 */ addiu $sp, $sp, 0x108 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04CA44(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052D6C +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052D70 +.word 0x3f555555 /*0.83333331*/ +glabel D_80052D74 +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052D78 +.word 0x3fd55555 /*1.6666666*/ +glabel D_80052D7C +.word 0x3f555555 /*0.83333331*/ +glabel D_80052D80 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D84 +.word 0x3C20D97C /*0.009817477*/ +glabel D_80052D88 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D8C +.word 0x3C20D97C /*0.009817477*/ +glabel D_80052D90 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052D94 +.word 0x3C20D97C /*0.009817477*/ +.text +glabel sub_GAME_7F04CA44 +/* 081574 7F04CA44 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 081578 7F04CA48 AFBF0024 */ sw $ra, 0x24($sp) +/* 08157C 7F04CA4C AFB10020 */ sw $s1, 0x20($sp) +/* 081580 7F04CA50 AFB0001C */ sw $s0, 0x1c($sp) +/* 081584 7F04CA54 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 081588 7F04CA58 8C8E0064 */ lw $t6, 0x64($a0) +/* 08158C 7F04CA5C 3C01FFF9 */ lui $at, (0xFFF9FFFF >> 16) # lui $at, 0xfff9 +/* 081590 7F04CA60 8C89000C */ lw $t1, 0xc($a0) +/* 081594 7F04CA64 3421FFFF */ ori $at, (0xFFF9FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 081598 7F04CA68 01C17824 */ and $t7, $t6, $at +/* 08159C 7F04CA6C 0005CC40 */ sll $t9, $a1, 0x11 +/* 0815A0 7F04CA70 AC8F0064 */ sw $t7, 0x64($a0) +/* 0815A4 7F04CA74 01F94025 */ or $t0, $t7, $t9 +/* 0815A8 7F04CA78 312A0100 */ andi $t2, $t1, 0x100 +/* 0815AC 7F04CA7C 00808025 */ move $s0, $a0 +/* 0815B0 7F04CA80 1540009A */ bnez $t2, .L7F04CCEC +/* 0815B4 7F04CA84 AC880064 */ sw $t0, 0x64($a0) +/* 0815B8 7F04CA88 8C8B0008 */ lw $t3, 8($a0) +/* 0815BC 7F04CA8C 310E00C0 */ andi $t6, $t0, 0xc0 +/* 0815C0 7F04CA90 316C0001 */ andi $t4, $t3, 1 +/* 0815C4 7F04CA94 51800096 */ beql $t4, $zero, .L7F04CCF0 +/* 0815C8 7F04CA98 8FBF0024 */ lw $ra, 0x24($sp) +/* 0815CC 7F04CA9C 15C00093 */ bnez $t6, .L7F04CCEC +/* 0815D0 7F04CAA0 3C188003 */ lui $t8, %hi(D_80032040) +/* 0815D4 7F04CAA4 27182040 */ addiu $t8, %lo(D_80032040) # addiu $t8, $t8, 0x2040 +/* 0815D8 7F04CAA8 8F010000 */ lw $at, ($t8) +/* 0815DC 7F04CAAC 27AF0034 */ addiu $t7, $sp, 0x34 +/* 0815E0 7F04CAB0 8F080004 */ lw $t0, 4($t8) +/* 0815E4 7F04CAB4 ADE10000 */ sw $at, ($t7) +/* 0815E8 7F04CAB8 8F010008 */ lw $at, 8($t8) +/* 0815EC 7F04CABC ADE80004 */ sw $t0, 4($t7) +/* 0815F0 7F04CAC0 00008825 */ move $s1, $zero +/* 0815F4 7F04CAC4 ADE10008 */ sw $at, 8($t7) +/* 0815F8 7F04CAC8 0FC0FF6A */ jal sub_GAME_7F03FDA8 +/* 0815FC 7F04CACC 8C840010 */ lw $a0, 0x10($a0) +/* 081600 7F04CAD0 8E090064 */ lw $t1, 0x64($s0) +/* 081604 7F04CAD4 312A0080 */ andi $t2, $t1, 0x80 +/* 081608 7F04CAD8 11400002 */ beqz $t2, .L7F04CAE4 +/* 08160C 7F04CADC 00000000 */ nop +/* 081610 7F04CAE0 8E11006C */ lw $s1, 0x6c($s0) +.L7F04CAE4: +/* 081614 7F04CAE4 52200082 */ beql $s1, $zero, .L7F04CCF0 +/* 081618 7F04CAE8 8FBF0024 */ lw $ra, 0x24($sp) +/* 08161C 7F04CAEC 0C002914 */ jal get_random_value +/* 081620 7F04CAF0 00000000 */ nop +/* 081624 7F04CAF4 44822000 */ mtc1 $v0, $f4 +/* 081628 7F04CAF8 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 08162C 7F04CAFC 4481A000 */ mtc1 $at, $f20 +/* 081630 7F04CB00 04410005 */ bgez $v0, .L7F04CB18 +/* 081634 7F04CB04 468021A0 */ cvt.s.w $f6, $f4 +/* 081638 7F04CB08 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 08163C 7F04CB0C 44814000 */ mtc1 $at, $f8 +/* 081640 7F04CB10 00000000 */ nop +/* 081644 7F04CB14 46083180 */ add.s $f6, $f6, $f8 +.L7F04CB18: +/* 081648 7F04CB18 46143282 */ mul.s $f10, $f6, $f20 +/* 08164C 7F04CB1C 3C018005 */ lui $at, %hi(D_80052D6C) +/* 081650 7F04CB20 C4302D6C */ lwc1 $f16, %lo(D_80052D6C)($at) +/* 081654 7F04CB24 3C018005 */ lui $at, %hi(D_80052D70) +/* 081658 7F04CB28 C4242D70 */ lwc1 $f4, %lo(D_80052D70)($at) +/* 08165C 7F04CB2C 46105482 */ mul.s $f18, $f10, $f16 +/* 081660 7F04CB30 46049201 */ sub.s $f8, $f18, $f4 +/* 081664 7F04CB34 0C002914 */ jal get_random_value +/* 081668 7F04CB38 E6280004 */ swc1 $f8, 4($s1) +/* 08166C 7F04CB3C 44823000 */ mtc1 $v0, $f6 +/* 081670 7F04CB40 3C018005 */ lui $at, %hi(D_80052D74) +/* 081674 7F04CB44 C4222D74 */ lwc1 $f2, %lo(D_80052D74)($at) +/* 081678 7F04CB48 04410005 */ bgez $v0, .L7F04CB60 +/* 08167C 7F04CB4C 468032A0 */ cvt.s.w $f10, $f6 +/* 081680 7F04CB50 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 081684 7F04CB54 44818000 */ mtc1 $at, $f16 +/* 081688 7F04CB58 00000000 */ nop +/* 08168C 7F04CB5C 46105280 */ add.s $f10, $f10, $f16 +.L7F04CB60: +/* 081690 7F04CB60 46145482 */ mul.s $f18, $f10, $f20 +/* 081694 7F04CB64 00000000 */ nop +/* 081698 7F04CB68 46029002 */ mul.s $f0, $f18, $f2 +/* 08169C 7F04CB6C 46000100 */ add.s $f4, $f0, $f0 +/* 0816A0 7F04CB70 46022200 */ add.s $f8, $f4, $f2 +/* 0816A4 7F04CB74 0C002914 */ jal get_random_value +/* 0816A8 7F04CB78 E6280008 */ swc1 $f8, 8($s1) +/* 0816AC 7F04CB7C 44823000 */ mtc1 $v0, $f6 +/* 0816B0 7F04CB80 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0816B4 7F04CB84 04410004 */ bgez $v0, .L7F04CB98 +/* 0816B8 7F04CB88 46803420 */ cvt.s.w $f16, $f6 +/* 0816BC 7F04CB8C 44815000 */ mtc1 $at, $f10 +/* 0816C0 7F04CB90 00000000 */ nop +/* 0816C4 7F04CB94 460A8400 */ add.s $f16, $f16, $f10 +.L7F04CB98: +/* 0816C8 7F04CB98 46148482 */ mul.s $f18, $f16, $f20 +/* 0816CC 7F04CB9C 3C018005 */ lui $at, %hi(D_80052D78) +/* 0816D0 7F04CBA0 C4242D78 */ lwc1 $f4, %lo(D_80052D78)($at) +/* 0816D4 7F04CBA4 3C018005 */ lui $at, %hi(D_80052D7C) +/* 0816D8 7F04CBA8 C4262D7C */ lwc1 $f6, %lo(D_80052D7C)($at) +/* 0816DC 7F04CBAC 46049202 */ mul.s $f8, $f18, $f4 +/* 0816E0 7F04CBB0 46064281 */ sub.s $f10, $f8, $f6 +/* 0816E4 7F04CBB4 E62A000C */ swc1 $f10, 0xc($s1) +/* 0816E8 7F04CBB8 8E0B000C */ lw $t3, 0xc($s0) +/* 0816EC 7F04CBBC 316C0200 */ andi $t4, $t3, 0x200 +/* 0816F0 7F04CBC0 5580003C */ bnezl $t4, .L7F04CCB4 +/* 0816F4 7F04CBC4 27A40034 */ addiu $a0, $sp, 0x34 +/* 0816F8 7F04CBC8 0C002914 */ jal get_random_value +/* 0816FC 7F04CBCC 00000000 */ nop +/* 081700 7F04CBD0 44828000 */ mtc1 $v0, $f16 +/* 081704 7F04CBD4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 081708 7F04CBD8 04410004 */ bgez $v0, .L7F04CBEC +/* 08170C 7F04CBDC 468084A0 */ cvt.s.w $f18, $f16 +/* 081710 7F04CBE0 44812000 */ mtc1 $at, $f4 +/* 081714 7F04CBE4 00000000 */ nop +/* 081718 7F04CBE8 46049480 */ add.s $f18, $f18, $f4 +.L7F04CBEC: +/* 08171C 7F04CBEC 46149202 */ mul.s $f8, $f18, $f20 +/* 081720 7F04CBF0 3C018005 */ lui $at, %hi(D_80052D80) +/* 081724 7F04CBF4 C4262D80 */ lwc1 $f6, %lo(D_80052D80)($at) +/* 081728 7F04CBF8 3C0143A0 */ li $at, 0x43A00000 # 320.000000 +/* 08172C 7F04CBFC 44818000 */ mtc1 $at, $f16 +/* 081730 7F04CC00 3C018005 */ lui $at, %hi(D_80052D84) +/* 081734 7F04CC04 C4322D84 */ lwc1 $f18, %lo(D_80052D84)($at) +/* 081738 7F04CC08 46064282 */ mul.s $f10, $f8, $f6 +/* 08173C 7F04CC0C 46105103 */ div.s $f4, $f10, $f16 +/* 081740 7F04CC10 46122201 */ sub.s $f8, $f4, $f18 +/* 081744 7F04CC14 0C002914 */ jal get_random_value +/* 081748 7F04CC18 E7A80034 */ swc1 $f8, 0x34($sp) +/* 08174C 7F04CC1C 44823000 */ mtc1 $v0, $f6 +/* 081750 7F04CC20 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 081754 7F04CC24 04410004 */ bgez $v0, .L7F04CC38 +/* 081758 7F04CC28 468032A0 */ cvt.s.w $f10, $f6 +/* 08175C 7F04CC2C 44818000 */ mtc1 $at, $f16 +/* 081760 7F04CC30 00000000 */ nop +/* 081764 7F04CC34 46105280 */ add.s $f10, $f10, $f16 +.L7F04CC38: +/* 081768 7F04CC38 46145102 */ mul.s $f4, $f10, $f20 +/* 08176C 7F04CC3C 3C018005 */ lui $at, %hi(D_80052D88) +/* 081770 7F04CC40 C4322D88 */ lwc1 $f18, %lo(D_80052D88)($at) +/* 081774 7F04CC44 3C0143A0 */ li $at, 0x43A00000 # 320.000000 +/* 081778 7F04CC48 44813000 */ mtc1 $at, $f6 +/* 08177C 7F04CC4C 3C018005 */ lui $at, %hi(D_80052D8C) +/* 081780 7F04CC50 C42A2D8C */ lwc1 $f10, %lo(D_80052D8C)($at) +/* 081784 7F04CC54 46122202 */ mul.s $f8, $f4, $f18 +/* 081788 7F04CC58 46064403 */ div.s $f16, $f8, $f6 +/* 08178C 7F04CC5C 460A8101 */ sub.s $f4, $f16, $f10 +/* 081790 7F04CC60 0C002914 */ jal get_random_value +/* 081794 7F04CC64 E7A40038 */ swc1 $f4, 0x38($sp) +/* 081798 7F04CC68 44829000 */ mtc1 $v0, $f18 +/* 08179C 7F04CC6C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0817A0 7F04CC70 04410004 */ bgez $v0, .L7F04CC84 +/* 0817A4 7F04CC74 46809220 */ cvt.s.w $f8, $f18 +/* 0817A8 7F04CC78 44813000 */ mtc1 $at, $f6 +/* 0817AC 7F04CC7C 00000000 */ nop +/* 0817B0 7F04CC80 46064200 */ add.s $f8, $f8, $f6 +.L7F04CC84: +/* 0817B4 7F04CC84 46144402 */ mul.s $f16, $f8, $f20 +/* 0817B8 7F04CC88 3C018005 */ lui $at, %hi(D_80052D90) +/* 0817BC 7F04CC8C C42A2D90 */ lwc1 $f10, %lo(D_80052D90)($at) +/* 0817C0 7F04CC90 3C0143A0 */ li $at, 0x43A00000 # 320.000000 +/* 0817C4 7F04CC94 44819000 */ mtc1 $at, $f18 +/* 0817C8 7F04CC98 3C018005 */ lui $at, %hi(D_80052D94) +/* 0817CC 7F04CC9C C4282D94 */ lwc1 $f8, %lo(D_80052D94)($at) +/* 0817D0 7F04CCA0 460A8102 */ mul.s $f4, $f16, $f10 +/* 0817D4 7F04CCA4 46122183 */ div.s $f6, $f4, $f18 +/* 0817D8 7F04CCA8 46083401 */ sub.s $f16, $f6, $f8 +/* 0817DC 7F04CCAC E7B0003C */ swc1 $f16, 0x3c($sp) +/* 0817E0 7F04CCB0 27A40034 */ addiu $a0, $sp, 0x34 +.L7F04CCB4: +/* 0817E4 7F04CCB4 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 0817E8 7F04CCB8 26250020 */ addiu $a1, $s1, 0x20 +/* 0817EC 7F04CCBC 8E2D0000 */ lw $t5, ($s1) +/* 0817F0 7F04CCC0 2401FEFF */ li $at, -257 +/* 0817F4 7F04CCC4 35AE0001 */ ori $t6, $t5, 1 +/* 0817F8 7F04CCC8 AE2E0000 */ sw $t6, ($s1) +/* 0817FC 7F04CCCC 8E190008 */ lw $t9, 8($s0) +/* 081800 7F04CCD0 8E180064 */ lw $t8, 0x64($s0) +/* 081804 7F04CCD4 03217824 */ and $t7, $t9, $at +/* 081808 7F04CCD8 3C01FFFF */ lui $at, (0xFFFF7FFF >> 16) # lui $at, 0xffff +/* 08180C 7F04CCDC 34217FFF */ ori $at, (0xFFFF7FFF & 0xFFFF) # ori $at, $at, 0x7fff +/* 081810 7F04CCE0 03014024 */ and $t0, $t8, $at +/* 081814 7F04CCE4 AE0F0008 */ sw $t7, 8($s0) +/* 081818 7F04CCE8 AE080064 */ sw $t0, 0x64($s0) +.L7F04CCEC: +/* 08181C 7F04CCEC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F04CCF0: +/* 081820 7F04CCF0 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 081824 7F04CCF4 8FB0001C */ lw $s0, 0x1c($sp) +/* 081828 7F04CCF8 8FB10020 */ lw $s1, 0x20($sp) +/* 08182C 7F04CCFC 03E00008 */ jr $ra +/* 081830 7F04CD00 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04CD04(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04CD04 +/* 081834 7F04CD04 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 081838 7F04CD08 AFBF0034 */ sw $ra, 0x34($sp) +/* 08183C 7F04CD0C AFB60030 */ sw $s6, 0x30($sp) +/* 081840 7F04CD10 AFB5002C */ sw $s5, 0x2c($sp) +/* 081844 7F04CD14 AFB40028 */ sw $s4, 0x28($sp) +/* 081848 7F04CD18 AFB30024 */ sw $s3, 0x24($sp) +/* 08184C 7F04CD1C AFB20020 */ sw $s2, 0x20($sp) +/* 081850 7F04CD20 AFB1001C */ sw $s1, 0x1c($sp) +/* 081854 7F04CD24 AFB00018 */ sw $s0, 0x18($sp) +/* 081858 7F04CD28 8C8E0014 */ lw $t6, 0x14($a0) +/* 08185C 7F04CD2C 00A0B025 */ move $s6, $a1 +/* 081860 7F04CD30 8C940004 */ lw $s4, 4($a0) +/* 081864 7F04CD34 27A50048 */ addiu $a1, $sp, 0x48 +/* 081868 7F04CD38 27A60044 */ addiu $a2, $sp, 0x44 +/* 08186C 7F04CD3C 0FC0F32C */ jal sub_GAME_7F03CCB0 +/* 081870 7F04CD40 91D50003 */ lbu $s5, 3($t6) +/* 081874 7F04CD44 8FAF0044 */ lw $t7, 0x44($sp) +/* 081878 7F04CD48 59E00027 */ blezl $t7, .L7F04CDE8 +/* 08187C 7F04CD4C 8FBF0034 */ lw $ra, 0x34($sp) +/* 081880 7F04CD50 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 081884 7F04CD54 00000000 */ nop +/* 081888 7F04CD58 10400022 */ beqz $v0, .L7F04CDE4 +/* 08188C 7F04CD5C 00408825 */ move $s1, $v0 +/* 081890 7F04CD60 24130004 */ li $s3, 4 +/* 081894 7F04CD64 24120001 */ li $s2, 1 +/* 081898 7F04CD68 92220000 */ lbu $v0, ($s1) +.L7F04CD6C: +/* 08189C 7F04CD6C 52420004 */ beql $s2, $v0, .L7F04CD80 +/* 0818A0 7F04CD70 8E380014 */ lw $t8, 0x14($s1) +/* 0818A4 7F04CD74 56620019 */ bnel $s3, $v0, .L7F04CDDC +/* 0818A8 7F04CD78 8E310024 */ lw $s1, 0x24($s1) +/* 0818AC 7F04CD7C 8E380014 */ lw $t8, 0x14($s1) +.L7F04CD80: +/* 0818B0 7F04CD80 93190003 */ lbu $t9, 3($t8) +/* 0818B4 7F04CD84 56B90015 */ bnel $s5, $t9, .L7F04CDDC +/* 0818B8 7F04CD88 8E310024 */ lw $s1, 0x24($s1) +/* 0818BC 7F04CD8C 8E300004 */ lw $s0, 4($s1) +/* 0818C0 7F04CD90 C684005C */ lwc1 $f4, 0x5c($s4) +/* 0818C4 7F04CD94 C606005C */ lwc1 $f6, 0x5c($s0) +/* 0818C8 7F04CD98 4606203C */ c.lt.s $f4, $f6 +/* 0818CC 7F04CD9C 00000000 */ nop +/* 0818D0 7F04CDA0 4502000E */ bc1fl .L7F04CDDC +/* 0818D4 7F04CDA4 8E310024 */ lw $s1, 0x24($s1) +/* 0818D8 7F04CDA8 8E080064 */ lw $t0, 0x64($s0) +/* 0818DC 7F04CDAC 26040058 */ addiu $a0, $s0, 0x58 +/* 0818E0 7F04CDB0 8FA50048 */ lw $a1, 0x48($sp) +/* 0818E4 7F04CDB4 31098000 */ andi $t1, $t0, 0x8000 +/* 0818E8 7F04CDB8 51200008 */ beql $t1, $zero, .L7F04CDDC +/* 0818EC 7F04CDBC 8E310024 */ lw $s1, 0x24($s1) +/* 0818F0 7F04CDC0 0FC0F336 */ jal sub_GAME_7F03CCD8 +/* 0818F4 7F04CDC4 8FA60044 */ lw $a2, 0x44($sp) +/* 0818F8 7F04CDC8 10400003 */ beqz $v0, .L7F04CDD8 +/* 0818FC 7F04CDCC 02002025 */ move $a0, $s0 +/* 081900 7F04CDD0 0FC13291 */ jal sub_GAME_7F04CA44 +/* 081904 7F04CDD4 02C02825 */ move $a1, $s6 +.L7F04CDD8: +/* 081908 7F04CDD8 8E310024 */ lw $s1, 0x24($s1) +.L7F04CDDC: +/* 08190C 7F04CDDC 5620FFE3 */ bnezl $s1, .L7F04CD6C +/* 081910 7F04CDE0 92220000 */ lbu $v0, ($s1) +.L7F04CDE4: +/* 081914 7F04CDE4 8FBF0034 */ lw $ra, 0x34($sp) +.L7F04CDE8: +/* 081918 7F04CDE8 8FB00018 */ lw $s0, 0x18($sp) +/* 08191C 7F04CDEC 8FB1001C */ lw $s1, 0x1c($sp) +/* 081920 7F04CDF0 8FB20020 */ lw $s2, 0x20($sp) +/* 081924 7F04CDF4 8FB30024 */ lw $s3, 0x24($sp) +/* 081928 7F04CDF8 8FB40028 */ lw $s4, 0x28($sp) +/* 08192C 7F04CDFC 8FB5002C */ lw $s5, 0x2c($sp) +/* 081930 7F04CE00 8FB60030 */ lw $s6, 0x30($sp) +/* 081934 7F04CE04 03E00008 */ jr $ra +/* 081938 7F04CE08 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void object_explosion_related(void) { + +} +#else +GLOBAL_ASM( +.text +glabel object_explosion_related +/* 08193C 7F04CE0C 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 081940 7F04CE10 AFBF002C */ sw $ra, 0x2c($sp) +/* 081944 7F04CE14 AFB10028 */ sw $s1, 0x28($sp) +/* 081948 7F04CE18 AFB00024 */ sw $s0, 0x24($sp) +/* 08194C 7F04CE1C AFA5004C */ sw $a1, 0x4c($sp) +/* 081950 7F04CE20 AFA60050 */ sw $a2, 0x50($sp) +/* 081954 7F04CE24 C4860070 */ lwc1 $f6, 0x70($a0) +/* 081958 7F04CE28 C4840074 */ lwc1 $f4, 0x74($a0) +/* 08195C 7F04CE2C 00808825 */ move $s1, $a0 +/* 081960 7F04CE30 4606203C */ c.lt.s $f4, $f6 +/* 081964 7F04CE34 00000000 */ nop +/* 081968 7F04CE38 45030006 */ bc1tl .L7F04CE54 +/* 08196C 7F04CE3C 862E0004 */ lh $t6, 4($s1) +/* 081970 7F04CE40 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 081974 7F04CE44 00000000 */ nop +/* 081978 7F04CE48 504000C4 */ beql $v0, $zero, .L7F04D15C +/* 08197C 7F04CE4C 8FBF002C */ lw $ra, 0x2c($sp) +/* 081980 7F04CE50 862E0004 */ lh $t6, 4($s1) +.L7F04CE54: +/* 081984 7F04CE54 3C188004 */ lui $t8, %hi(object_explosion_details) +/* 081988 7F04CE58 8E230010 */ lw $v1, 0x10($s1) +/* 08198C 7F04CE5C 000E78C0 */ sll $t7, $t6, 3 +/* 081990 7F04CE60 01EE7823 */ subu $t7, $t7, $t6 +/* 081994 7F04CE64 000F7840 */ sll $t7, $t7, 1 +/* 081998 7F04CE68 030FC021 */ addu $t8, $t8, $t7 +/* 08199C 7F04CE6C 8718B224 */ lh $t8, %lo(object_explosion_details)($t8) +/* 0819A0 7F04CE70 02202025 */ move $a0, $s1 +/* 0819A4 7F04CE74 00608025 */ move $s0, $v1 +/* 0819A8 7F04CE78 A7B8003E */ sh $t8, 0x3e($sp) +/* 0819AC 7F04CE7C 8C79001C */ lw $t9, 0x1c($v1) +/* 0819B0 7F04CE80 53200007 */ beql $t9, $zero, .L7F04CEA0 +/* 0819B4 7F04CE84 8E080014 */ lw $t0, 0x14($s0) +/* 0819B8 7F04CE88 8E02001C */ lw $v0, 0x1c($s0) +/* 0819BC 7F04CE8C 00408025 */ move $s0, $v0 +.L7F04CE90: +/* 0819C0 7F04CE90 8C42001C */ lw $v0, 0x1c($v0) +/* 0819C4 7F04CE94 5440FFFE */ bnezl $v0, .L7F04CE90 +/* 0819C8 7F04CE98 00408025 */ move $s0, $v0 +/* 0819CC 7F04CE9C 8E080014 */ lw $t0, 0x14($s0) +.L7F04CEA0: +/* 0819D0 7F04CEA0 AFA30044 */ sw $v1, 0x44($sp) +/* 0819D4 7F04CEA4 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 0819D8 7F04CEA8 AFA80038 */ sw $t0, 0x38($sp) +/* 0819DC 7F04CEAC 14400056 */ bnez $v0, .L7F04D008 +/* 0819E0 7F04CEB0 00000000 */ nop +/* 0819E4 7F04CEB4 92290002 */ lbu $t1, 2($s1) +/* 0819E8 7F04CEB8 44804000 */ mtc1 $zero, $f8 +/* 0819EC 7F04CEBC 352A0080 */ ori $t2, $t1, 0x80 +/* 0819F0 7F04CEC0 A22A0002 */ sb $t2, 2($s1) +/* 0819F4 7F04CEC4 E6280070 */ swc1 $f8, 0x70($s1) +/* 0819F8 7F04CEC8 8FAB0038 */ lw $t3, 0x38($sp) +/* 0819FC 7F04CECC 5160002B */ beql $t3, $zero, .L7F04CF7C +/* 081A00 7F04CED0 8E2C000C */ lw $t4, 0xc($s1) +/* 081A04 7F04CED4 920C0001 */ lbu $t4, 1($s0) +/* 081A08 7F04CED8 8FA2004C */ lw $v0, 0x4c($sp) +/* 081A0C 7F04CEDC 27A40038 */ addiu $a0, $sp, 0x38 +/* 081A10 7F04CEE0 318D0008 */ andi $t5, $t4, 8 +/* 081A14 7F04CEE4 55A00019 */ bnezl $t5, .L7F04CF4C +/* 081A18 7F04CEE8 8E060014 */ lw $a2, 0x14($s0) +/* 081A1C 7F04CEEC C44A0008 */ lwc1 $f10, 8($v0) +/* 081A20 7F04CEF0 8E050008 */ lw $a1, 8($s0) +/* 081A24 7F04CEF4 8E060010 */ lw $a2, 0x10($s0) +/* 081A28 7F04CEF8 8C470000 */ lw $a3, ($v0) +/* 081A2C 7F04CEFC 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 081A30 7F04CF00 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 081A34 7F04CF04 10400010 */ beqz $v0, .L7F04CF48 +/* 081A38 7F04CF08 8FA40044 */ lw $a0, 0x44($sp) +/* 081A3C 7F04CF0C 8E2E0008 */ lw $t6, 8($s1) +/* 081A40 7F04CF10 8FB90050 */ lw $t9, 0x50($sp) +/* 081A44 7F04CF14 2608002C */ addiu $t0, $s0, 0x2c +/* 081A48 7F04CF18 31CF000E */ andi $t7, $t6, 0xe +/* 081A4C 7F04CF1C 2DF80001 */ sltiu $t8, $t7, 1 +/* 081A50 7F04CF20 AFB80010 */ sw $t8, 0x10($sp) +/* 081A54 7F04CF24 AFA80018 */ sw $t0, 0x18($sp) +/* 081A58 7F04CF28 AFA0001C */ sw $zero, 0x1c($sp) +/* 081A5C 7F04CF2C 8FA5004C */ lw $a1, 0x4c($sp) +/* 081A60 7F04CF30 8FA60038 */ lw $a2, 0x38($sp) +/* 081A64 7F04CF34 87A7003E */ lh $a3, 0x3e($sp) +/* 081A68 7F04CF38 0FC27094 */ jal sub_GAME_7F09C250 +/* 081A6C 7F04CF3C AFB90014 */ sw $t9, 0x14($sp) +/* 081A70 7F04CF40 1000000E */ b .L7F04CF7C +/* 081A74 7F04CF44 8E2C000C */ lw $t4, 0xc($s1) +.L7F04CF48: +/* 081A78 7F04CF48 8E060014 */ lw $a2, 0x14($s0) +.L7F04CF4C: +/* 081A7C 7F04CF4C 8FA90050 */ lw $t1, 0x50($sp) +/* 081A80 7F04CF50 260A002C */ addiu $t2, $s0, 0x2c +/* 081A84 7F04CF54 240B0001 */ li $t3, 1 +/* 081A88 7F04CF58 AFAB001C */ sw $t3, 0x1c($sp) +/* 081A8C 7F04CF5C AFAA0018 */ sw $t2, 0x18($sp) +/* 081A90 7F04CF60 AFA00010 */ sw $zero, 0x10($sp) +/* 081A94 7F04CF64 8FA40044 */ lw $a0, 0x44($sp) +/* 081A98 7F04CF68 8FA5004C */ lw $a1, 0x4c($sp) +/* 081A9C 7F04CF6C 87A7003E */ lh $a3, 0x3e($sp) +/* 081AA0 7F04CF70 0FC27094 */ jal sub_GAME_7F09C250 +/* 081AA4 7F04CF74 AFA90014 */ sw $t1, 0x14($sp) +/* 081AA8 7F04CF78 8E2C000C */ lw $t4, 0xc($s1) +.L7F04CF7C: +/* 081AAC 7F04CF7C 02202025 */ move $a0, $s1 +/* 081AB0 7F04CF80 318D2000 */ andi $t5, $t4, 0x2000 +/* 081AB4 7F04CF84 11A00005 */ beqz $t5, .L7F04CF9C +/* 081AB8 7F04CF88 00000000 */ nop +/* 081ABC 7F04CF8C 8E2E0064 */ lw $t6, 0x64($s1) +/* 081AC0 7F04CF90 35CF0004 */ ori $t7, $t6, 4 +/* 081AC4 7F04CF94 10000070 */ b .L7F04D158 +/* 081AC8 7F04CF98 AE2F0064 */ sw $t7, 0x64($s1) +.L7F04CF9C: +/* 081ACC 7F04CF9C 0FC12D84 */ jal sub_GAME_7F04B610 +/* 081AD0 7F04CFA0 24050001 */ li $a1, 1 +/* 081AD4 7F04CFA4 8FA40044 */ lw $a0, 0x44($sp) +/* 081AD8 7F04CFA8 5604006C */ bnel $s0, $a0, .L7F04D15C +/* 081ADC 7F04CFAC 8FBF002C */ lw $ra, 0x2c($sp) +/* 081AE0 7F04CFB0 0FC13341 */ jal sub_GAME_7F04CD04 +/* 081AE4 7F04CFB4 8FA50050 */ lw $a1, 0x50($sp) +/* 081AE8 7F04CFB8 8E220064 */ lw $v0, 0x64($s1) +/* 081AEC 7F04CFBC 30588000 */ andi $t8, $v0, 0x8000 +/* 081AF0 7F04CFC0 5300000A */ beql $t8, $zero, .L7F04CFEC +/* 081AF4 7F04CFC4 3C010001 */ lui $at, 1 +/* 081AF8 7F04CFC8 0C002914 */ jal get_random_value +/* 081AFC 7F04CFCC 00000000 */ nop +/* 081B00 7F04CFD0 24010003 */ li $at, 3 +/* 081B04 7F04CFD4 0041001B */ divu $zero, $v0, $at +/* 081B08 7F04CFD8 0000C810 */ mfhi $t9 +/* 081B0C 7F04CFDC 5720005F */ bnezl $t9, .L7F04D15C +/* 081B10 7F04CFE0 8FBF002C */ lw $ra, 0x2c($sp) +/* 081B14 7F04CFE4 8E220064 */ lw $v0, 0x64($s1) +/* 081B18 7F04CFE8 3C010001 */ lui $at, 1 +.L7F04CFEC: +/* 081B1C 7F04CFEC 00414025 */ or $t0, $v0, $at +/* 081B20 7F04CFF0 AE280064 */ sw $t0, 0x64($s1) +/* 081B24 7F04CFF4 8FA50050 */ lw $a1, 0x50($sp) +/* 081B28 7F04CFF8 0FC13291 */ jal sub_GAME_7F04CA44 +/* 081B2C 7F04CFFC 02202025 */ move $a0, $s1 +/* 081B30 7F04D000 10000056 */ b .L7F04D15C +/* 081B34 7F04D004 8FBF002C */ lw $ra, 0x2c($sp) +.L7F04D008: +/* 081B38 7F04D008 0FC0FFD8 */ jal sub_GAME_7F03FF60 +/* 081B3C 7F04D00C 02202025 */ move $a0, $s1 +/* 081B40 7F04D010 30490003 */ andi $t1, $v0, 3 +/* 081B44 7F04D014 15200031 */ bnez $t1, .L7F04D0DC +/* 081B48 7F04D018 AFA20034 */ sw $v0, 0x34($sp) +/* 081B4C 7F04D01C 00025083 */ sra $t2, $v0, 2 +/* 081B50 7F04D020 25450001 */ addiu $a1, $t2, 1 +/* 081B54 7F04D024 0FC12D84 */ jal sub_GAME_7F04B610 +/* 081B58 7F04D028 02202025 */ move $a0, $s1 +/* 081B5C 7F04D02C 8FAB0038 */ lw $t3, 0x38($sp) +/* 081B60 7F04D030 1160002A */ beqz $t3, .L7F04D0DC +/* 081B64 7F04D034 00000000 */ nop +/* 081B68 7F04D038 920C0001 */ lbu $t4, 1($s0) +/* 081B6C 7F04D03C 8FA2004C */ lw $v0, 0x4c($sp) +/* 081B70 7F04D040 27A40038 */ addiu $a0, $sp, 0x38 +/* 081B74 7F04D044 318D0008 */ andi $t5, $t4, 8 +/* 081B78 7F04D048 55A00019 */ bnezl $t5, .L7F04D0B0 +/* 081B7C 7F04D04C 8E060014 */ lw $a2, 0x14($s0) +/* 081B80 7F04D050 C4500008 */ lwc1 $f16, 8($v0) +/* 081B84 7F04D054 8E050008 */ lw $a1, 8($s0) +/* 081B88 7F04D058 8E060010 */ lw $a2, 0x10($s0) +/* 081B8C 7F04D05C 8C470000 */ lw $a3, ($v0) +/* 081B90 7F04D060 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 081B94 7F04D064 E7B00010 */ swc1 $f16, 0x10($sp) +/* 081B98 7F04D068 10400010 */ beqz $v0, .L7F04D0AC +/* 081B9C 7F04D06C 8FA40044 */ lw $a0, 0x44($sp) +/* 081BA0 7F04D070 8E2E0008 */ lw $t6, 8($s1) +/* 081BA4 7F04D074 8FB90050 */ lw $t9, 0x50($sp) +/* 081BA8 7F04D078 2608002C */ addiu $t0, $s0, 0x2c +/* 081BAC 7F04D07C 31CF000E */ andi $t7, $t6, 0xe +/* 081BB0 7F04D080 2DF80001 */ sltiu $t8, $t7, 1 +/* 081BB4 7F04D084 AFB80010 */ sw $t8, 0x10($sp) +/* 081BB8 7F04D088 AFA80018 */ sw $t0, 0x18($sp) +/* 081BBC 7F04D08C AFA0001C */ sw $zero, 0x1c($sp) +/* 081BC0 7F04D090 8FA5004C */ lw $a1, 0x4c($sp) +/* 081BC4 7F04D094 8FA60038 */ lw $a2, 0x38($sp) +/* 081BC8 7F04D098 24070010 */ li $a3, 16 +/* 081BCC 7F04D09C 0FC27094 */ jal sub_GAME_7F09C250 +/* 081BD0 7F04D0A0 AFB90014 */ sw $t9, 0x14($sp) +/* 081BD4 7F04D0A4 1000000D */ b .L7F04D0DC +/* 081BD8 7F04D0A8 00000000 */ nop +.L7F04D0AC: +/* 081BDC 7F04D0AC 8E060014 */ lw $a2, 0x14($s0) +.L7F04D0B0: +/* 081BE0 7F04D0B0 8FA90050 */ lw $t1, 0x50($sp) +/* 081BE4 7F04D0B4 260A002C */ addiu $t2, $s0, 0x2c +/* 081BE8 7F04D0B8 240B0001 */ li $t3, 1 +/* 081BEC 7F04D0BC AFAB001C */ sw $t3, 0x1c($sp) +/* 081BF0 7F04D0C0 AFAA0018 */ sw $t2, 0x18($sp) +/* 081BF4 7F04D0C4 AFA00010 */ sw $zero, 0x10($sp) +/* 081BF8 7F04D0C8 8FA40044 */ lw $a0, 0x44($sp) +/* 081BFC 7F04D0CC 8FA5004C */ lw $a1, 0x4c($sp) +/* 081C00 7F04D0D0 24070010 */ li $a3, 16 +/* 081C04 7F04D0D4 0FC27094 */ jal sub_GAME_7F09C250 +/* 081C08 7F04D0D8 AFA90014 */ sw $t1, 0x14($sp) +.L7F04D0DC: +/* 081C0C 7F04D0DC 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 081C10 7F04D0E0 02202025 */ move $a0, $s1 +/* 081C14 7F04D0E4 58400012 */ blezl $v0, .L7F04D130 +/* 081C18 7F04D0E8 8FA90034 */ lw $t1, 0x34($sp) +/* 081C1C 7F04D0EC 92220002 */ lbu $v0, 2($s1) +/* 081C20 7F04D0F0 304C0004 */ andi $t4, $v0, 4 +/* 081C24 7F04D0F4 5180000E */ beql $t4, $zero, .L7F04D130 +/* 081C28 7F04D0F8 8FA90034 */ lw $t1, 0x34($sp) +/* 081C2C 7F04D0FC 8E2D0064 */ lw $t5, 0x64($s1) +/* 081C30 7F04D100 344F0010 */ ori $t7, $v0, 0x10 +/* 081C34 7F04D104 3058FFEF */ andi $t8, $v0, 0xffef +/* 081C38 7F04D108 31AE1000 */ andi $t6, $t5, 0x1000 +/* 081C3C 7F04D10C 51C00004 */ beql $t6, $zero, .L7F04D120 +/* 081C40 7F04D110 A2380002 */ sb $t8, 2($s1) +/* 081C44 7F04D114 10000002 */ b .L7F04D120 +/* 081C48 7F04D118 A22F0002 */ sb $t7, 2($s1) +/* 081C4C 7F04D11C A2380002 */ sb $t8, 2($s1) +.L7F04D120: +/* 081C50 7F04D120 8FA80044 */ lw $t0, 0x44($sp) +/* 081C54 7F04D124 241904B0 */ li $t9, 1200 +/* 081C58 7F04D128 A5190002 */ sh $t9, 2($t0) +/* 081C5C 7F04D12C 8FA90034 */ lw $t1, 0x34($sp) +.L7F04D130: +/* 081C60 7F04D130 2921000C */ slti $at, $t1, 0xc +/* 081C64 7F04D134 54200009 */ bnezl $at, .L7F04D15C +/* 081C68 7F04D138 8FBF002C */ lw $ra, 0x2c($sp) +/* 081C6C 7F04D13C 8E2A0064 */ lw $t2, 0x64($s1) +/* 081C70 7F04D140 8E2C0008 */ lw $t4, 8($s1) +/* 081C74 7F04D144 2401FEFF */ li $at, -257 +/* 081C78 7F04D148 354B1000 */ ori $t3, $t2, 0x1000 +/* 081C7C 7F04D14C 01816824 */ and $t5, $t4, $at +/* 081C80 7F04D150 AE2B0064 */ sw $t3, 0x64($s1) +/* 081C84 7F04D154 AE2D0008 */ sw $t5, 8($s1) +.L7F04D158: +/* 081C88 7F04D158 8FBF002C */ lw $ra, 0x2c($sp) +.L7F04D15C: +/* 081C8C 7F04D15C 8FB00024 */ lw $s0, 0x24($sp) +/* 081C90 7F04D160 8FB10028 */ lw $s1, 0x28($sp) +/* 081C94 7F04D164 03E00008 */ jr $ra +/* 081C98 7F04D168 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04D16C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04D16C +/* 081C9C 7F04D16C 27BDFEB0 */ addiu $sp, $sp, -0x150 +/* 081CA0 7F04D170 F7B40028 */ sdc1 $f20, 0x28($sp) +/* 081CA4 7F04D174 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 081CA8 7F04D178 AFBE0050 */ sw $fp, 0x50($sp) +/* 081CAC 7F04D17C AFB7004C */ sw $s7, 0x4c($sp) +/* 081CB0 7F04D180 AFB60048 */ sw $s6, 0x48($sp) +/* 081CB4 7F04D184 AFB50044 */ sw $s5, 0x44($sp) +/* 081CB8 7F04D188 AFB40040 */ sw $s4, 0x40($sp) +/* 081CBC 7F04D18C AFB3003C */ sw $s3, 0x3c($sp) +/* 081CC0 7F04D190 AFB10034 */ sw $s1, 0x34($sp) +/* 081CC4 7F04D194 AFB00030 */ sw $s0, 0x30($sp) +/* 081CC8 7F04D198 4481A000 */ mtc1 $at, $f20 +/* 081CCC 7F04D19C 00E08825 */ move $s1, $a3 +/* 081CD0 7F04D1A0 0080B825 */ move $s7, $a0 +/* 081CD4 7F04D1A4 00C0F025 */ move $fp, $a2 +/* 081CD8 7F04D1A8 AFBF0054 */ sw $ra, 0x54($sp) +/* 081CDC 7F04D1AC AFB20038 */ sw $s2, 0x38($sp) +/* 081CE0 7F04D1B0 AFA50154 */ sw $a1, 0x154($sp) +/* 081CE4 7F04D1B4 AFA00110 */ sw $zero, 0x110($sp) +/* 081CE8 7F04D1B8 00E09825 */ move $s3, $a3 +/* 081CEC 7F04D1BC 8FB0014C */ lw $s0, 0x14c($sp) +/* 081CF0 7F04D1C0 8FB40168 */ lw $s4, 0x168($sp) +/* 081CF4 7F04D1C4 241500FD */ li $s5, 253 +/* 081CF8 7F04D1C8 27B600B0 */ addiu $s6, $sp, 0xb0 +.L7F04D1CC: +/* 081CFC 7F04D1CC 82220000 */ lb $v0, ($s1) +/* 081D00 7F04D1D0 2401FFB8 */ li $at, -72 +/* 081D04 7F04D1D4 8FAE0160 */ lw $t6, 0x160($sp) +/* 081D08 7F04D1D8 54410007 */ bnel $v0, $at, .L7F04D1F8 +/* 081D0C 7F04D1DC 24010004 */ li $at, 4 +/* 081D10 7F04D1E0 11C001E5 */ beqz $t6, .L7F04D978 +/* 081D14 7F04D1E4 01C09825 */ move $s3, $t6 +/* 081D18 7F04D1E8 01C08825 */ move $s1, $t6 +/* 081D1C 7F04D1EC 1000FFF7 */ b .L7F04D1CC +/* 081D20 7F04D1F0 AFA00160 */ sw $zero, 0x160($sp) +/* 081D24 7F04D1F4 24010004 */ li $at, 4 +.L7F04D1F8: +/* 081D28 7F04D1F8 1441000C */ bne $v0, $at, .L7F04D22C +/* 081D2C 7F04D1FC 8FB90164 */ lw $t9, 0x164($sp) +/* 081D30 7F04D200 92220001 */ lbu $v0, 1($s1) +/* 081D34 7F04D204 8E230004 */ lw $v1, 4($s1) +/* 081D38 7F04D208 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 081D3C 7F04D20C 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 081D40 7F04D210 304F000F */ andi $t7, $v0, 0xf +/* 081D44 7F04D214 0061C024 */ and $t8, $v1, $at +/* 081D48 7F04D218 03384021 */ addu $t0, $t9, $t8 +/* 081D4C 7F04D21C 000F4900 */ sll $t1, $t7, 4 +/* 081D50 7F04D220 01098023 */ subu $s0, $t0, $t1 +/* 081D54 7F04D224 1000FFE9 */ b .L7F04D1CC +/* 081D58 7F04D228 26310008 */ addiu $s1, $s1, 8 +.L7F04D22C: +/* 081D5C 7F04D22C 2401FFBF */ li $at, -65 +/* 081D60 7F04D230 144100E2 */ bne $v0, $at, .L7F04D5BC +/* 081D64 7F04D234 2403000A */ li $v1, 10 +/* 081D68 7F04D238 3C0B8003 */ lui $t3, %hi(D_8003204C) +/* 081D6C 7F04D23C 256B204C */ addiu $t3, %lo(D_8003204C) # addiu $t3, $t3, 0x204c +/* 081D70 7F04D240 8D610000 */ lw $at, ($t3) +/* 081D74 7F04D244 27AA00E8 */ addiu $t2, $sp, 0xe8 +/* 081D78 7F04D248 8D6D0004 */ lw $t5, 4($t3) +/* 081D7C 7F04D24C AD410000 */ sw $at, ($t2) +/* 081D80 7F04D250 8D610008 */ lw $at, 8($t3) +/* 081D84 7F04D254 3C0F8003 */ lui $t7, %hi(D_80032058) +/* 081D88 7F04D258 25EF2058 */ addiu $t7, %lo(D_80032058) # addiu $t7, $t7, 0x2058 +/* 081D8C 7F04D25C AD4D0004 */ sw $t5, 4($t2) +/* 081D90 7F04D260 AD410008 */ sw $at, 8($t2) +/* 081D94 7F04D264 8DE10000 */ lw $at, ($t7) +/* 081D98 7F04D268 27AE00DC */ addiu $t6, $sp, 0xdc +/* 081D9C 7F04D26C 8DF90004 */ lw $t9, 4($t7) +/* 081DA0 7F04D270 ADC10000 */ sw $at, ($t6) +/* 081DA4 7F04D274 8DE10008 */ lw $at, 8($t7) +/* 081DA8 7F04D278 ADD90004 */ sw $t9, 4($t6) +/* 081DAC 7F04D27C 00001025 */ move $v0, $zero +/* 081DB0 7F04D280 ADC10008 */ sw $at, 8($t6) +/* 081DB4 7F04D284 92280005 */ lbu $t0, 5($s1) +/* 081DB8 7F04D288 27A400F8 */ addiu $a0, $sp, 0xf8 +/* 081DBC 7F04D28C 03C02825 */ move $a1, $fp +/* 081DC0 7F04D290 0103001A */ div $zero, $t0, $v1 +/* 081DC4 7F04D294 00004812 */ mflo $t1 +/* 081DC8 7F04D298 AFA900F8 */ sw $t1, 0xf8($sp) +/* 081DCC 7F04D29C 922C0006 */ lbu $t4, 6($s1) +/* 081DD0 7F04D2A0 14600002 */ bnez $v1, .L7F04D2AC +/* 081DD4 7F04D2A4 00000000 */ nop +/* 081DD8 7F04D2A8 0007000D */ break 7 +.L7F04D2AC: +/* 081DDC 7F04D2AC 2401FFFF */ li $at, -1 +/* 081DE0 7F04D2B0 14610004 */ bne $v1, $at, .L7F04D2C4 +/* 081DE4 7F04D2B4 3C018000 */ lui $at, 0x8000 +/* 081DE8 7F04D2B8 15010002 */ bne $t0, $at, .L7F04D2C4 +/* 081DEC 7F04D2BC 00000000 */ nop +/* 081DF0 7F04D2C0 0006000D */ break 6 +.L7F04D2C4: +/* 081DF4 7F04D2C4 0183001A */ div $zero, $t4, $v1 +/* 081DF8 7F04D2C8 00005012 */ mflo $t2 +/* 081DFC 7F04D2CC AFAA00FC */ sw $t2, 0xfc($sp) +/* 081E00 7F04D2D0 922B0007 */ lbu $t3, 7($s1) +/* 081E04 7F04D2D4 14600002 */ bnez $v1, .L7F04D2E0 +/* 081E08 7F04D2D8 00000000 */ nop +/* 081E0C 7F04D2DC 0007000D */ break 7 +.L7F04D2E0: +/* 081E10 7F04D2E0 2401FFFF */ li $at, -1 +/* 081E14 7F04D2E4 14610004 */ bne $v1, $at, .L7F04D2F8 +/* 081E18 7F04D2E8 3C018000 */ lui $at, 0x8000 +/* 081E1C 7F04D2EC 15810002 */ bne $t4, $at, .L7F04D2F8 +/* 081E20 7F04D2F0 00000000 */ nop +/* 081E24 7F04D2F4 0006000D */ break 6 +.L7F04D2F8: +/* 081E28 7F04D2F8 0163001A */ div $zero, $t3, $v1 +/* 081E2C 7F04D2FC 00006812 */ mflo $t5 +/* 081E30 7F04D300 AFAD0100 */ sw $t5, 0x100($sp) +/* 081E34 7F04D304 14600002 */ bnez $v1, .L7F04D310 +/* 081E38 7F04D308 00000000 */ nop +/* 081E3C 7F04D30C 0007000D */ break 7 +.L7F04D310: +/* 081E40 7F04D310 2401FFFF */ li $at, -1 +/* 081E44 7F04D314 14610004 */ bne $v1, $at, .L7F04D328 +/* 081E48 7F04D318 3C018000 */ lui $at, 0x8000 +/* 081E4C 7F04D31C 15610002 */ bne $t3, $at, .L7F04D328 +/* 081E50 7F04D320 00000000 */ nop +/* 081E54 7F04D324 0006000D */ break 6 +.L7F04D328: +/* 081E58 7F04D328 8C980000 */ lw $t8, ($a0) +.L7F04D32C: +/* 081E5C 7F04D32C 8FAF00E8 */ lw $t7, 0xe8($sp) +/* 081E60 7F04D330 24840004 */ addiu $a0, $a0, 4 +/* 081E64 7F04D334 00187100 */ sll $t6, $t8, 4 +/* 081E68 7F04D338 020E1821 */ addu $v1, $s0, $t6 +/* 081E6C 7F04D33C 84620000 */ lh $v0, ($v1) +/* 081E70 7F04D340 27AB0104 */ addiu $t3, $sp, 0x104 +/* 081E74 7F04D344 004F082A */ slt $at, $v0, $t7 +/* 081E78 7F04D348 50200004 */ beql $at, $zero, .L7F04D35C +/* 081E7C 7F04D34C 8FB900DC */ lw $t9, 0xdc($sp) +/* 081E80 7F04D350 AFA200E8 */ sw $v0, 0xe8($sp) +/* 081E84 7F04D354 84620000 */ lh $v0, ($v1) +/* 081E88 7F04D358 8FB900DC */ lw $t9, 0xdc($sp) +.L7F04D35C: +/* 081E8C 7F04D35C 0322082A */ slt $at, $t9, $v0 +/* 081E90 7F04D360 50200003 */ beql $at, $zero, .L7F04D370 +/* 081E94 7F04D364 84620002 */ lh $v0, 2($v1) +/* 081E98 7F04D368 AFA200DC */ sw $v0, 0xdc($sp) +/* 081E9C 7F04D36C 84620002 */ lh $v0, 2($v1) +.L7F04D370: +/* 081EA0 7F04D370 8FA800EC */ lw $t0, 0xec($sp) +/* 081EA4 7F04D374 0048082A */ slt $at, $v0, $t0 +/* 081EA8 7F04D378 50200004 */ beql $at, $zero, .L7F04D38C +/* 081EAC 7F04D37C 8FA900E0 */ lw $t1, 0xe0($sp) +/* 081EB0 7F04D380 AFA200EC */ sw $v0, 0xec($sp) +/* 081EB4 7F04D384 84620002 */ lh $v0, 2($v1) +/* 081EB8 7F04D388 8FA900E0 */ lw $t1, 0xe0($sp) +.L7F04D38C: +/* 081EBC 7F04D38C 0122082A */ slt $at, $t1, $v0 +/* 081EC0 7F04D390 50200003 */ beql $at, $zero, .L7F04D3A0 +/* 081EC4 7F04D394 84620004 */ lh $v0, 4($v1) +/* 081EC8 7F04D398 AFA200E0 */ sw $v0, 0xe0($sp) +/* 081ECC 7F04D39C 84620004 */ lh $v0, 4($v1) +.L7F04D3A0: +/* 081ED0 7F04D3A0 8FAC00F0 */ lw $t4, 0xf0($sp) +/* 081ED4 7F04D3A4 004C082A */ slt $at, $v0, $t4 +/* 081ED8 7F04D3A8 50200004 */ beql $at, $zero, .L7F04D3BC +/* 081EDC 7F04D3AC 8FAA00E4 */ lw $t2, 0xe4($sp) +/* 081EE0 7F04D3B0 AFA200F0 */ sw $v0, 0xf0($sp) +/* 081EE4 7F04D3B4 84620004 */ lh $v0, 4($v1) +/* 081EE8 7F04D3B8 8FAA00E4 */ lw $t2, 0xe4($sp) +.L7F04D3BC: +/* 081EEC 7F04D3BC 0142082A */ slt $at, $t2, $v0 +/* 081EF0 7F04D3C0 10200002 */ beqz $at, .L7F04D3CC +/* 081EF4 7F04D3C4 00000000 */ nop +/* 081EF8 7F04D3C8 AFA200E4 */ sw $v0, 0xe4($sp) +.L7F04D3CC: +/* 081EFC 7F04D3CC 548BFFD7 */ bnel $a0, $t3, .L7F04D32C +/* 081F00 7F04D3D0 8C980000 */ lw $t8, ($a0) +/* 081F04 7F04D3D4 02E02025 */ move $a0, $s7 +/* 081F08 7F04D3D8 27A600E8 */ addiu $a2, $sp, 0xe8 +/* 081F0C 7F04D3DC 0FC2DB3B */ jal sub_GAME_7F0B6CEC +/* 081F10 7F04D3E0 27A700DC */ addiu $a3, $sp, 0xdc +/* 081F14 7F04D3E4 10400162 */ beqz $v0, .L7F04D970 +/* 081F18 7F04D3E8 3C0D8003 */ lui $t5, %hi(D_80032064) +/* 081F1C 7F04D3EC 25AD2064 */ addiu $t5, %lo(D_80032064) # addiu $t5, $t5, 0x2064 +/* 081F20 7F04D3F0 8DA10000 */ lw $at, ($t5) +/* 081F24 7F04D3F4 27A700C4 */ addiu $a3, $sp, 0xc4 +/* 081F28 7F04D3F8 27B8011C */ addiu $t8, $sp, 0x11c +/* 081F2C 7F04D3FC ACE10000 */ sw $at, ($a3) +/* 081F30 7F04D400 8DAE0004 */ lw $t6, 4($t5) +/* 081F34 7F04D404 ACEE0004 */ sw $t6, 4($a3) +/* 081F38 7F04D408 8DA10008 */ lw $at, 8($t5) +/* 081F3C 7F04D40C ACE10008 */ sw $at, 8($a3) +/* 081F40 7F04D410 8FAC0100 */ lw $t4, 0x100($sp) +/* 081F44 7F04D414 8FA800FC */ lw $t0, 0xfc($sp) +/* 081F48 7F04D418 8FAF00F8 */ lw $t7, 0xf8($sp) +/* 081F4C 7F04D41C 8FAB0154 */ lw $t3, 0x154($sp) +/* 081F50 7F04D420 000C5100 */ sll $t2, $t4, 4 +/* 081F54 7F04D424 00084900 */ sll $t1, $t0, 4 +/* 081F58 7F04D428 000FC900 */ sll $t9, $t7, 4 +/* 081F5C 7F04D42C 02192021 */ addu $a0, $s0, $t9 +/* 081F60 7F04D430 02092821 */ addu $a1, $s0, $t1 +/* 081F64 7F04D434 020A3021 */ addu $a2, $s0, $t2 +/* 081F68 7F04D438 AFB8001C */ sw $t8, 0x1c($sp) +/* 081F6C 7F04D43C AFBE0018 */ sw $fp, 0x18($sp) +/* 081F70 7F04D440 AFB70010 */ sw $s7, 0x10($sp) +/* 081F74 7F04D444 0FC24A24 */ jal sub_GAME_7F092890 +/* 081F78 7F04D448 AFAB0014 */ sw $t3, 0x14($sp) +/* 081F7C 7F04D44C 10400148 */ beqz $v0, .L7F04D970 +/* 081F80 7F04D450 00000000 */ nop +/* 081F84 7F04D454 C7A4011C */ lwc1 $f4, 0x11c($sp) +/* 081F88 7F04D458 C6E80000 */ lwc1 $f8, ($s7) +/* 081F8C 7F04D45C C7B20120 */ lwc1 $f18, 0x120($sp) +/* 081F90 7F04D460 4600218D */ trunc.w.s $f6, $f4 +/* 081F94 7F04D464 92290000 */ lbu $t1, ($s1) +/* 081F98 7F04D468 02201025 */ move $v0, $s1 +/* 081F9C 7F04D46C 4600428D */ trunc.w.s $f10, $f8 +/* 081FA0 7F04D470 440E3000 */ mfc1 $t6, $f6 +/* 081FA4 7F04D474 C6E60004 */ lwc1 $f6, 4($s7) +/* 081FA8 7F04D478 4600910D */ trunc.w.s $f4, $f18 +/* 081FAC 7F04D47C 44195000 */ mfc1 $t9, $f10 +/* 081FB0 7F04D480 0271082B */ sltu $at, $s3, $s1 +/* 081FB4 7F04D484 4600320D */ trunc.w.s $f8, $f6 +/* 081FB8 7F04D488 01D94023 */ subu $t0, $t6, $t9 +/* 081FBC 7F04D48C 44888000 */ mtc1 $t0, $f16 +/* 081FC0 7F04D490 440C2000 */ mfc1 $t4, $f4 +/* 081FC4 7F04D494 440B4000 */ mfc1 $t3, $f8 +/* 081FC8 7F04D498 468080A0 */ cvt.s.w $f2, $f16 +/* 081FCC 7F04D49C C7B00124 */ lwc1 $f16, 0x124($sp) +/* 081FD0 7F04D4A0 C6E40008 */ lwc1 $f4, 8($s7) +/* 081FD4 7F04D4A4 018BC023 */ subu $t8, $t4, $t3 +/* 081FD8 7F04D4A8 44985000 */ mtc1 $t8, $f10 +/* 081FDC 7F04D4AC 4600848D */ trunc.w.s $f18, $f16 +/* 081FE0 7F04D4B0 4600218D */ trunc.w.s $f6, $f4 +/* 081FE4 7F04D4B4 440F9000 */ mfc1 $t7, $f18 +/* 081FE8 7F04D4B8 46805320 */ cvt.s.w $f12, $f10 +/* 081FEC 7F04D4BC 44193000 */ mfc1 $t9, $f6 +/* 081FF0 7F04D4C0 46021282 */ mul.s $f10, $f2, $f2 +/* 081FF4 7F04D4C4 01F94023 */ subu $t0, $t7, $t9 +/* 081FF8 7F04D4C8 44884000 */ mtc1 $t0, $f8 +/* 081FFC 7F04D4CC 460C6402 */ mul.s $f16, $f12, $f12 +/* 082000 7F04D4D0 12A9000A */ beq $s5, $t1, .L7F04D4FC +/* 082004 7F04D4D4 468043A0 */ cvt.s.w $f14, $f8 +/* 082008 7F04D4D8 10200008 */ beqz $at, .L7F04D4FC +/* 08200C 7F04D4DC 00000000 */ nop +/* 082010 7F04D4E0 904AFFF8 */ lbu $t2, -8($v0) +.L7F04D4E4: +/* 082014 7F04D4E4 2442FFF8 */ addiu $v0, $v0, -8 +/* 082018 7F04D4E8 0262082B */ sltu $at, $s3, $v0 +/* 08201C 7F04D4EC 12AA0003 */ beq $s5, $t2, .L7F04D4FC +/* 082020 7F04D4F0 00000000 */ nop +/* 082024 7F04D4F4 5420FFFB */ bnezl $at, .L7F04D4E4 +/* 082028 7F04D4F8 904AFFF8 */ lbu $t2, -8($v0) +.L7F04D4FC: +/* 08202C 7F04D4FC 460E7102 */ mul.s $f4, $f14, $f14 +/* 082030 7F04D500 54530004 */ bnel $v0, $s3, .L7F04D514 +/* 082034 7F04D504 8C430004 */ lw $v1, 4($v0) +/* 082038 7F04D508 10000006 */ b .L7F04D524 +/* 08203C 7F04D50C 2404FFFF */ li $a0, -1 +/* 082040 7F04D510 8C430004 */ lw $v1, 4($v0) +.L7F04D514: +/* 082044 7F04D514 3C018000 */ lui $at, 0x8000 +/* 082048 7F04D518 2463FFF8 */ addiu $v1, $v1, -8 +/* 08204C 7F04D51C 00616025 */ or $t4, $v1, $at +/* 082050 7F04D520 95840000 */ lhu $a0, ($t4) +.L7F04D524: +/* 082054 7F04D524 46105480 */ add.s $f18, $f10, $f16 +/* 082058 7F04D528 46049000 */ add.s $f0, $f18, $f4 +/* 08205C 7F04D52C 4614003C */ c.lt.s $f0, $f20 +/* 082060 7F04D530 00000000 */ nop +/* 082064 7F04D534 4500010E */ bc1f .L7F04D970 +/* 082068 7F04D538 00000000 */ nop +/* 08206C 7F04D53C C7A6011C */ lwc1 $f6, 0x11c($sp) +/* 082070 7F04D540 240C0001 */ li $t4, 1 +/* 082074 7F04D544 46000506 */ mov.s $f20, $f0 +/* 082078 7F04D548 E6860000 */ swc1 $f6, ($s4) +/* 08207C 7F04D54C C7A80120 */ lwc1 $f8, 0x120($sp) +/* 082080 7F04D550 E6880004 */ swc1 $f8, 4($s4) +/* 082084 7F04D554 C7AA0124 */ lwc1 $f10, 0x124($sp) +/* 082088 7F04D558 E68A0008 */ swc1 $f10, 8($s4) +/* 08208C 7F04D55C C7B00128 */ lwc1 $f16, 0x128($sp) +/* 082090 7F04D560 E690000C */ swc1 $f16, 0xc($s4) +/* 082094 7F04D564 C7B2012C */ lwc1 $f18, 0x12c($sp) +/* 082098 7F04D568 E6920010 */ swc1 $f18, 0x10($s4) +/* 08209C 7F04D56C C7A40130 */ lwc1 $f4, 0x130($sp) +/* 0820A0 7F04D570 E6840014 */ swc1 $f4, 0x14($s4) +/* 0820A4 7F04D574 8FAB00F8 */ lw $t3, 0xf8($sp) +/* 0820A8 7F04D578 000BC100 */ sll $t8, $t3, 4 +/* 0820AC 7F04D57C 03106821 */ addu $t5, $t8, $s0 +/* 0820B0 7F04D580 AE8D0018 */ sw $t5, 0x18($s4) +/* 0820B4 7F04D584 8FAE00FC */ lw $t6, 0xfc($sp) +/* 0820B8 7F04D588 000E7900 */ sll $t7, $t6, 4 +/* 0820BC 7F04D58C 01F0C821 */ addu $t9, $t7, $s0 +/* 0820C0 7F04D590 AE99001C */ sw $t9, 0x1c($s4) +/* 0820C4 7F04D594 8FA80100 */ lw $t0, 0x100($sp) +/* 0820C8 7F04D598 A684002A */ sh $a0, 0x2a($s4) +/* 0820CC 7F04D59C AE910024 */ sw $s1, 0x24($s4) +/* 0820D0 7F04D5A0 00084900 */ sll $t1, $t0, 4 +/* 0820D4 7F04D5A4 01305021 */ addu $t2, $t1, $s0 +/* 0820D8 7F04D5A8 AE8A0020 */ sw $t2, 0x20($s4) +/* 0820DC 7F04D5AC A6800028 */ sh $zero, 0x28($s4) +/* 0820E0 7F04D5B0 AFAC0110 */ sw $t4, 0x110($sp) +/* 0820E4 7F04D5B4 1000FF05 */ b .L7F04D1CC +/* 0820E8 7F04D5B8 26310008 */ addiu $s1, $s1, 8 +.L7F04D5BC: +/* 0820EC 7F04D5BC 2401FFB1 */ li $at, -79 +/* 0820F0 7F04D5C0 144100EB */ bne $v0, $at, .L7F04D970 +/* 0820F4 7F04D5C4 00000000 */ nop +/* 0820F8 7F04D5C8 00009025 */ move $s2, $zero +.L7F04D5CC: +/* 0820FC 7F04D5CC 3C188003 */ lui $t8, %hi(D_80032070) +/* 082100 7F04D5D0 27182070 */ addiu $t8, %lo(D_80032070) # addiu $t8, $t8, 0x2070 +/* 082104 7F04D5D4 8F010000 */ lw $at, ($t8) +/* 082108 7F04D5D8 27AB0094 */ addiu $t3, $sp, 0x94 +/* 08210C 7F04D5DC 8F0E0004 */ lw $t6, 4($t8) +/* 082110 7F04D5E0 AD610000 */ sw $at, ($t3) +/* 082114 7F04D5E4 8F010008 */ lw $at, 8($t8) +/* 082118 7F04D5E8 3C198003 */ lui $t9, %hi(D_8003207C) +/* 08211C 7F04D5EC 2739207C */ addiu $t9, %lo(D_8003207C) # addiu $t9, $t9, 0x207c +/* 082120 7F04D5F0 AD6E0004 */ sw $t6, 4($t3) +/* 082124 7F04D5F4 AD610008 */ sw $at, 8($t3) +/* 082128 7F04D5F8 8F210000 */ lw $at, ($t9) +/* 08212C 7F04D5FC 27AF0088 */ addiu $t7, $sp, 0x88 +/* 082130 7F04D600 8F290004 */ lw $t1, 4($t9) +/* 082134 7F04D604 ADE10000 */ sw $at, ($t7) +/* 082138 7F04D608 8F210008 */ lw $at, 8($t9) +/* 08213C 7F04D60C ADE90004 */ sw $t1, 4($t7) +/* 082140 7F04D610 1640000B */ bnez $s2, .L7F04D640 +/* 082144 7F04D614 ADE10008 */ sw $at, 8($t7) +/* 082148 7F04D618 8E2A0004 */ lw $t2, 4($s1) +/* 08214C 7F04D61C 314C000F */ andi $t4, $t2, 0xf +/* 082150 7F04D620 AFAC00A4 */ sw $t4, 0xa4($sp) +/* 082154 7F04D624 922D0007 */ lbu $t5, 7($s1) +/* 082158 7F04D628 000D5902 */ srl $t3, $t5, 4 +/* 08215C 7F04D62C AFAB00A8 */ sw $t3, 0xa8($sp) +/* 082160 7F04D630 8E380000 */ lw $t8, ($s1) +/* 082164 7F04D634 330E000F */ andi $t6, $t8, 0xf +/* 082168 7F04D638 10000024 */ b .L7F04D6CC +/* 08216C 7F04D63C AFAE00AC */ sw $t6, 0xac($sp) +.L7F04D640: +/* 082170 7F04D640 24010001 */ li $at, 1 +/* 082174 7F04D644 5641000C */ bnel $s2, $at, .L7F04D678 +/* 082178 7F04D648 24010002 */ li $at, 2 +/* 08217C 7F04D64C 92280006 */ lbu $t0, 6($s1) +/* 082180 7F04D650 310F000F */ andi $t7, $t0, 0xf +/* 082184 7F04D654 AFAF00A4 */ sw $t7, 0xa4($sp) +/* 082188 7F04D658 96390006 */ lhu $t9, 6($s1) +/* 08218C 7F04D65C 00194B02 */ srl $t1, $t9, 0xc +/* 082190 7F04D660 AFA900A8 */ sw $t1, 0xa8($sp) +/* 082194 7F04D664 922A0003 */ lbu $t2, 3($s1) +/* 082198 7F04D668 000A6102 */ srl $t4, $t2, 4 +/* 08219C 7F04D66C 10000017 */ b .L7F04D6CC +/* 0821A0 7F04D670 AFAC00AC */ sw $t4, 0xac($sp) +/* 0821A4 7F04D674 24010002 */ li $at, 2 +.L7F04D678: +/* 0821A8 7F04D678 5641000C */ bnel $s2, $at, .L7F04D6AC +/* 0821AC 7F04D67C 92390004 */ lbu $t9, 4($s1) +/* 0821B0 7F04D680 962D0004 */ lhu $t5, 4($s1) +/* 0821B4 7F04D684 31AB000F */ andi $t3, $t5, 0xf +/* 0821B8 7F04D688 AFAB00A4 */ sw $t3, 0xa4($sp) +/* 0821BC 7F04D68C 92380005 */ lbu $t8, 5($s1) +/* 0821C0 7F04D690 00187102 */ srl $t6, $t8, 4 +/* 0821C4 7F04D694 AFAE00A8 */ sw $t6, 0xa8($sp) +/* 0821C8 7F04D698 92280002 */ lbu $t0, 2($s1) +/* 0821CC 7F04D69C 310F000F */ andi $t7, $t0, 0xf +/* 0821D0 7F04D6A0 1000000A */ b .L7F04D6CC +/* 0821D4 7F04D6A4 AFAF00AC */ sw $t7, 0xac($sp) +/* 0821D8 7F04D6A8 92390004 */ lbu $t9, 4($s1) +.L7F04D6AC: +/* 0821DC 7F04D6AC 3329000F */ andi $t1, $t9, 0xf +/* 0821E0 7F04D6B0 AFA900A4 */ sw $t1, 0xa4($sp) +/* 0821E4 7F04D6B4 8E2A0004 */ lw $t2, 4($s1) +/* 0821E8 7F04D6B8 000A6702 */ srl $t4, $t2, 0x1c +/* 0821EC 7F04D6BC AFAC00A8 */ sw $t4, 0xa8($sp) +/* 0821F0 7F04D6C0 962D0002 */ lhu $t5, 2($s1) +/* 0821F4 7F04D6C4 000D5B02 */ srl $t3, $t5, 0xc +/* 0821F8 7F04D6C8 AFAB00AC */ sw $t3, 0xac($sp) +.L7F04D6CC: +/* 0821FC 7F04D6CC 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 082200 7F04D6D0 8C980000 */ lw $t8, ($a0) +.L7F04D6D4: +/* 082204 7F04D6D4 8FA80094 */ lw $t0, 0x94($sp) +/* 082208 7F04D6D8 24840004 */ addiu $a0, $a0, 4 +/* 08220C 7F04D6DC 00187100 */ sll $t6, $t8, 4 +/* 082210 7F04D6E0 020E1821 */ addu $v1, $s0, $t6 +/* 082214 7F04D6E4 84620000 */ lh $v0, ($v1) +/* 082218 7F04D6E8 0048082A */ slt $at, $v0, $t0 +/* 08221C 7F04D6EC 50200004 */ beql $at, $zero, .L7F04D700 +/* 082220 7F04D6F0 8FAF0088 */ lw $t7, 0x88($sp) +/* 082224 7F04D6F4 AFA20094 */ sw $v0, 0x94($sp) +/* 082228 7F04D6F8 84620000 */ lh $v0, ($v1) +/* 08222C 7F04D6FC 8FAF0088 */ lw $t7, 0x88($sp) +.L7F04D700: +/* 082230 7F04D700 01E2082A */ slt $at, $t7, $v0 +/* 082234 7F04D704 50200003 */ beql $at, $zero, .L7F04D714 +/* 082238 7F04D708 84620002 */ lh $v0, 2($v1) +/* 08223C 7F04D70C AFA20088 */ sw $v0, 0x88($sp) +/* 082240 7F04D710 84620002 */ lh $v0, 2($v1) +.L7F04D714: +/* 082244 7F04D714 8FB90098 */ lw $t9, 0x98($sp) +/* 082248 7F04D718 0059082A */ slt $at, $v0, $t9 +/* 08224C 7F04D71C 50200004 */ beql $at, $zero, .L7F04D730 +/* 082250 7F04D720 8FA9008C */ lw $t1, 0x8c($sp) +/* 082254 7F04D724 AFA20098 */ sw $v0, 0x98($sp) +/* 082258 7F04D728 84620002 */ lh $v0, 2($v1) +/* 08225C 7F04D72C 8FA9008C */ lw $t1, 0x8c($sp) +.L7F04D730: +/* 082260 7F04D730 0122082A */ slt $at, $t1, $v0 +/* 082264 7F04D734 50200003 */ beql $at, $zero, .L7F04D744 +/* 082268 7F04D738 84620004 */ lh $v0, 4($v1) +/* 08226C 7F04D73C AFA2008C */ sw $v0, 0x8c($sp) +/* 082270 7F04D740 84620004 */ lh $v0, 4($v1) +.L7F04D744: +/* 082274 7F04D744 8FAA009C */ lw $t2, 0x9c($sp) +/* 082278 7F04D748 004A082A */ slt $at, $v0, $t2 +/* 08227C 7F04D74C 50200004 */ beql $at, $zero, .L7F04D760 +/* 082280 7F04D750 8FAC0090 */ lw $t4, 0x90($sp) +/* 082284 7F04D754 AFA2009C */ sw $v0, 0x9c($sp) +/* 082288 7F04D758 84620004 */ lh $v0, 4($v1) +/* 08228C 7F04D75C 8FAC0090 */ lw $t4, 0x90($sp) +.L7F04D760: +/* 082290 7F04D760 0182082A */ slt $at, $t4, $v0 +/* 082294 7F04D764 10200002 */ beqz $at, .L7F04D770 +/* 082298 7F04D768 00000000 */ nop +/* 08229C 7F04D76C AFA20090 */ sw $v0, 0x90($sp) +.L7F04D770: +/* 0822A0 7F04D770 5496FFD8 */ bnel $a0, $s6, .L7F04D6D4 +/* 0822A4 7F04D774 8C980000 */ lw $t8, ($a0) +/* 0822A8 7F04D778 02E02025 */ move $a0, $s7 +/* 0822AC 7F04D77C 03C02825 */ move $a1, $fp +/* 0822B0 7F04D780 27A60094 */ addiu $a2, $sp, 0x94 +/* 0822B4 7F04D784 0FC2DB3B */ jal sub_GAME_7F0B6CEC +/* 0822B8 7F04D788 27A70088 */ addiu $a3, $sp, 0x88 +/* 0822BC 7F04D78C 10400074 */ beqz $v0, .L7F04D960 +/* 0822C0 7F04D790 3C0D8003 */ lui $t5, %hi(D_80032088) +/* 0822C4 7F04D794 25AD2088 */ addiu $t5, %lo(D_80032088) # addiu $t5, $t5, 0x2088 +/* 0822C8 7F04D798 8DA10000 */ lw $at, ($t5) +/* 0822CC 7F04D79C 27A70070 */ addiu $a3, $sp, 0x70 +/* 0822D0 7F04D7A0 27AB011C */ addiu $t3, $sp, 0x11c +/* 0822D4 7F04D7A4 ACE10000 */ sw $at, ($a3) +/* 0822D8 7F04D7A8 8DB80004 */ lw $t8, 4($t5) +/* 0822DC 7F04D7AC ACF80004 */ sw $t8, 4($a3) +/* 0822E0 7F04D7B0 8DA10008 */ lw $at, 8($t5) +/* 0822E4 7F04D7B4 ACE10008 */ sw $at, 8($a3) +/* 0822E8 7F04D7B8 8FA900AC */ lw $t1, 0xac($sp) +/* 0822EC 7F04D7BC 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0822F0 7F04D7C0 8FAE00A4 */ lw $t6, 0xa4($sp) +/* 0822F4 7F04D7C4 8FAC0154 */ lw $t4, 0x154($sp) +/* 0822F8 7F04D7C8 00095100 */ sll $t2, $t1, 4 +/* 0822FC 7F04D7CC 000FC900 */ sll $t9, $t7, 4 +/* 082300 7F04D7D0 000E4100 */ sll $t0, $t6, 4 +/* 082304 7F04D7D4 02082021 */ addu $a0, $s0, $t0 +/* 082308 7F04D7D8 02192821 */ addu $a1, $s0, $t9 +/* 08230C 7F04D7DC 020A3021 */ addu $a2, $s0, $t2 +/* 082310 7F04D7E0 AFAB001C */ sw $t3, 0x1c($sp) +/* 082314 7F04D7E4 AFBE0018 */ sw $fp, 0x18($sp) +/* 082318 7F04D7E8 AFB70010 */ sw $s7, 0x10($sp) +/* 08231C 7F04D7EC 0FC24A24 */ jal sub_GAME_7F092890 +/* 082320 7F04D7F0 AFAC0014 */ sw $t4, 0x14($sp) +/* 082324 7F04D7F4 5040005B */ beql $v0, $zero, .L7F04D964 +/* 082328 7F04D7F8 26520001 */ addiu $s2, $s2, 1 +/* 08232C 7F04D7FC C7A6011C */ lwc1 $f6, 0x11c($sp) +/* 082330 7F04D800 C6EA0000 */ lwc1 $f10, ($s7) +/* 082334 7F04D804 C7A40120 */ lwc1 $f4, 0x120($sp) +/* 082338 7F04D808 4600320D */ trunc.w.s $f8, $f6 +/* 08233C 7F04D80C 92390000 */ lbu $t9, ($s1) +/* 082340 7F04D810 02201025 */ move $v0, $s1 +/* 082344 7F04D814 4600540D */ trunc.w.s $f16, $f10 +/* 082348 7F04D818 44184000 */ mfc1 $t8, $f8 +/* 08234C 7F04D81C C6E80004 */ lwc1 $f8, 4($s7) +/* 082350 7F04D820 4600218D */ trunc.w.s $f6, $f4 +/* 082354 7F04D824 44088000 */ mfc1 $t0, $f16 +/* 082358 7F04D828 0271082B */ sltu $at, $s3, $s1 +/* 08235C 7F04D82C 4600428D */ trunc.w.s $f10, $f8 +/* 082360 7F04D830 03087823 */ subu $t7, $t8, $t0 +/* 082364 7F04D834 448F9000 */ mtc1 $t7, $f18 +/* 082368 7F04D838 44093000 */ mfc1 $t1, $f6 +/* 08236C 7F04D83C 440C5000 */ mfc1 $t4, $f10 +/* 082370 7F04D840 468090A0 */ cvt.s.w $f2, $f18 +/* 082374 7F04D844 C7B20124 */ lwc1 $f18, 0x124($sp) +/* 082378 7F04D848 C6E60008 */ lwc1 $f6, 8($s7) +/* 08237C 7F04D84C 012C5823 */ subu $t3, $t1, $t4 +/* 082380 7F04D850 448B8000 */ mtc1 $t3, $f16 +/* 082384 7F04D854 4600910D */ trunc.w.s $f4, $f18 +/* 082388 7F04D858 4600320D */ trunc.w.s $f8, $f6 +/* 08238C 7F04D85C 440E2000 */ mfc1 $t6, $f4 +/* 082390 7F04D860 46808320 */ cvt.s.w $f12, $f16 +/* 082394 7F04D864 44084000 */ mfc1 $t0, $f8 +/* 082398 7F04D868 46021402 */ mul.s $f16, $f2, $f2 +/* 08239C 7F04D86C 01C87823 */ subu $t7, $t6, $t0 +/* 0823A0 7F04D870 448F5000 */ mtc1 $t7, $f10 +/* 0823A4 7F04D874 460C6482 */ mul.s $f18, $f12, $f12 +/* 0823A8 7F04D878 12B9000A */ beq $s5, $t9, .L7F04D8A4 +/* 0823AC 7F04D87C 468053A0 */ cvt.s.w $f14, $f10 +/* 0823B0 7F04D880 10200008 */ beqz $at, .L7F04D8A4 +/* 0823B4 7F04D884 00000000 */ nop +/* 0823B8 7F04D888 904AFFF8 */ lbu $t2, -8($v0) +.L7F04D88C: +/* 0823BC 7F04D88C 2442FFF8 */ addiu $v0, $v0, -8 +/* 0823C0 7F04D890 0262082B */ sltu $at, $s3, $v0 +/* 0823C4 7F04D894 12AA0003 */ beq $s5, $t2, .L7F04D8A4 +/* 0823C8 7F04D898 00000000 */ nop +/* 0823CC 7F04D89C 5420FFFB */ bnezl $at, .L7F04D88C +/* 0823D0 7F04D8A0 904AFFF8 */ lbu $t2, -8($v0) +.L7F04D8A4: +/* 0823D4 7F04D8A4 460E7182 */ mul.s $f6, $f14, $f14 +/* 0823D8 7F04D8A8 54530004 */ bnel $v0, $s3, .L7F04D8BC +/* 0823DC 7F04D8AC 8C430004 */ lw $v1, 4($v0) +/* 0823E0 7F04D8B0 10000006 */ b .L7F04D8CC +/* 0823E4 7F04D8B4 2404FFFF */ li $a0, -1 +/* 0823E8 7F04D8B8 8C430004 */ lw $v1, 4($v0) +.L7F04D8BC: +/* 0823EC 7F04D8BC 3C018000 */ lui $at, 0x8000 +/* 0823F0 7F04D8C0 2463FFF8 */ addiu $v1, $v1, -8 +/* 0823F4 7F04D8C4 00614825 */ or $t1, $v1, $at +/* 0823F8 7F04D8C8 95240000 */ lhu $a0, ($t1) +.L7F04D8CC: +/* 0823FC 7F04D8CC 46128100 */ add.s $f4, $f16, $f18 +/* 082400 7F04D8D0 46062000 */ add.s $f0, $f4, $f6 +/* 082404 7F04D8D4 4614003C */ c.lt.s $f0, $f20 +/* 082408 7F04D8D8 00000000 */ nop +/* 08240C 7F04D8DC 45020021 */ bc1fl .L7F04D964 +/* 082410 7F04D8E0 26520001 */ addiu $s2, $s2, 1 +/* 082414 7F04D8E4 C7A8011C */ lwc1 $f8, 0x11c($sp) +/* 082418 7F04D8E8 26490001 */ addiu $t1, $s2, 1 +/* 08241C 7F04D8EC 46000506 */ mov.s $f20, $f0 +/* 082420 7F04D8F0 E6880000 */ swc1 $f8, ($s4) +/* 082424 7F04D8F4 C7AA0120 */ lwc1 $f10, 0x120($sp) +/* 082428 7F04D8F8 E68A0004 */ swc1 $f10, 4($s4) +/* 08242C 7F04D8FC C7B00124 */ lwc1 $f16, 0x124($sp) +/* 082430 7F04D900 E6900008 */ swc1 $f16, 8($s4) +/* 082434 7F04D904 C7B20128 */ lwc1 $f18, 0x128($sp) +/* 082438 7F04D908 E692000C */ swc1 $f18, 0xc($s4) +/* 08243C 7F04D90C C7A4012C */ lwc1 $f4, 0x12c($sp) +/* 082440 7F04D910 E6840010 */ swc1 $f4, 0x10($s4) +/* 082444 7F04D914 C7A60130 */ lwc1 $f6, 0x130($sp) +/* 082448 7F04D918 E6860014 */ swc1 $f6, 0x14($s4) +/* 08244C 7F04D91C 8FAC00A4 */ lw $t4, 0xa4($sp) +/* 082450 7F04D920 000C5900 */ sll $t3, $t4, 4 +/* 082454 7F04D924 01706821 */ addu $t5, $t3, $s0 +/* 082458 7F04D928 AE8D0018 */ sw $t5, 0x18($s4) +/* 08245C 7F04D92C 8FB800A8 */ lw $t8, 0xa8($sp) +/* 082460 7F04D930 240C0001 */ li $t4, 1 +/* 082464 7F04D934 00187100 */ sll $t6, $t8, 4 +/* 082468 7F04D938 01D04021 */ addu $t0, $t6, $s0 +/* 08246C 7F04D93C AE88001C */ sw $t0, 0x1c($s4) +/* 082470 7F04D940 8FAF00AC */ lw $t7, 0xac($sp) +/* 082474 7F04D944 A684002A */ sh $a0, 0x2a($s4) +/* 082478 7F04D948 AE910024 */ sw $s1, 0x24($s4) +/* 08247C 7F04D94C 000FC900 */ sll $t9, $t7, 4 +/* 082480 7F04D950 03305021 */ addu $t2, $t9, $s0 +/* 082484 7F04D954 AE8A0020 */ sw $t2, 0x20($s4) +/* 082488 7F04D958 A6890028 */ sh $t1, 0x28($s4) +/* 08248C 7F04D95C AFAC0110 */ sw $t4, 0x110($sp) +.L7F04D960: +/* 082490 7F04D960 26520001 */ addiu $s2, $s2, 1 +.L7F04D964: +/* 082494 7F04D964 24010004 */ li $at, 4 +/* 082498 7F04D968 1641FF18 */ bne $s2, $at, .L7F04D5CC +/* 08249C 7F04D96C 00000000 */ nop +.L7F04D970: +/* 0824A0 7F04D970 1000FE16 */ b .L7F04D1CC +/* 0824A4 7F04D974 26310008 */ addiu $s1, $s1, 8 +.L7F04D978: +/* 0824A8 7F04D978 8FBF0054 */ lw $ra, 0x54($sp) +/* 0824AC 7F04D97C 8FA20110 */ lw $v0, 0x110($sp) +/* 0824B0 7F04D980 D7B40028 */ ldc1 $f20, 0x28($sp) +/* 0824B4 7F04D984 8FB00030 */ lw $s0, 0x30($sp) +/* 0824B8 7F04D988 8FB10034 */ lw $s1, 0x34($sp) +/* 0824BC 7F04D98C 8FB20038 */ lw $s2, 0x38($sp) +/* 0824C0 7F04D990 8FB3003C */ lw $s3, 0x3c($sp) +/* 0824C4 7F04D994 8FB40040 */ lw $s4, 0x40($sp) +/* 0824C8 7F04D998 8FB50044 */ lw $s5, 0x44($sp) +/* 0824CC 7F04D99C 8FB60048 */ lw $s6, 0x48($sp) +/* 0824D0 7F04D9A0 8FB7004C */ lw $s7, 0x4c($sp) +/* 0824D4 7F04D9A4 8FBE0050 */ lw $fp, 0x50($sp) +/* 0824D8 7F04D9A8 03E00008 */ jr $ra +/* 0824DC 7F04D9AC 27BD0150 */ addiu $sp, $sp, 0x150 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04D9B0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052D98 +.word 0x46fffe00 /*32767.0*/ +/*D:80052D9C*/ +glabel jpt_80052D9C +.word loc_CODE_7F04DAA4 +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word loc_CODE_7F04DAD8 +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word loc_CODE_7F04DAEC +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word def_7F04DA40 +.word loc_CODE_7F04DB00 +.word loc_CODE_7F04DA48 + +/*D:80052DF0*/ +/*hack, doesn't fit in own function*/ +glabel jpt_80052DF0 +.word destroyable_object +.word nondestroyable_object +.word destroyable_object +.word nondestroyable_object +.word destroyable_object +.word destroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word destroyable_object +.word destroyable_object +.word destroyable_object +.word destroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word nondestroyable_object +.word destroyable_object +.word nondestroyable_object +.word nondestroyable_object + + +.text +glabel sub_GAME_7F04D9B0 +/* 0824E0 7F04D9B0 27BDFF08 */ addiu $sp, $sp, -0xf8 +/* 0824E4 7F04D9B4 AFBE0050 */ sw $fp, 0x50($sp) +/* 0824E8 7F04D9B8 AFB60048 */ sw $s6, 0x48($sp) +/* 0824EC 7F04D9BC AFB20038 */ sw $s2, 0x38($sp) +/* 0824F0 7F04D9C0 AFB00030 */ sw $s0, 0x30($sp) +/* 0824F4 7F04D9C4 00A09025 */ move $s2, $a1 +/* 0824F8 7F04D9C8 0080B025 */ move $s6, $a0 +/* 0824FC 7F04D9CC AFBF0054 */ sw $ra, 0x54($sp) +/* 082500 7F04D9D0 AFB7004C */ sw $s7, 0x4c($sp) +/* 082504 7F04D9D4 AFB50044 */ sw $s5, 0x44($sp) +/* 082508 7F04D9D8 AFB40040 */ sw $s4, 0x40($sp) +/* 08250C 7F04D9DC AFB3003C */ sw $s3, 0x3c($sp) +/* 082510 7F04D9E0 AFB10034 */ sw $s1, 0x34($sp) +/* 082514 7F04D9E4 F7B40028 */ sdc1 $f20, 0x28($sp) +/* 082518 7F04D9E8 AFA60100 */ sw $a2, 0x100($sp) +/* 08251C 7F04D9EC AFA70104 */ sw $a3, 0x104($sp) +/* 082520 7F04D9F0 AFA000D0 */ sw $zero, 0xd0($sp) +/* 082524 7F04D9F4 AFA000CC */ sw $zero, 0xcc($sp) +/* 082528 7F04D9F8 00A08025 */ move $s0, $a1 +/* 08252C 7F04D9FC 10A0009F */ beqz $a1, .L7F04DC7C +/* 082530 7F04DA00 0000F025 */ move $fp, $zero +/* 082534 7F04DA04 3C018005 */ lui $at, %hi(D_80052D98) +/* 082538 7F04DA08 3C1700FF */ lui $s7, (0x00FFFFFF >> 16) # lui $s7, 0xff +/* 08253C 7F04DA0C 36F7FFFF */ ori $s7, (0x00FFFFFF & 0xFFFF) # ori $s7, $s7, 0xffff +/* 082540 7F04DA10 C4342D98 */ lwc1 $f20, %lo(D_80052D98)($at) +/* 082544 7F04DA14 96020000 */ lhu $v0, ($s0) +.L7F04DA18: +/* 082548 7F04DA18 00009825 */ move $s3, $zero +/* 08254C 7F04DA1C 0000A825 */ move $s5, $zero +/* 082550 7F04DA20 304E00FF */ andi $t6, $v0, 0xff +/* 082554 7F04DA24 25CFFFFC */ addiu $t7, $t6, -4 +/* 082558 7F04DA28 2DE10015 */ sltiu $at, $t7, 0x15 +/* 08255C 7F04DA2C 10200037 */ beqz $at, .L7F04DB0C +/* 082560 7F04DA30 000F7880 */ sll $t7, $t7, 2 +/* 082564 7F04DA34 3C018005 */ lui $at, %hi(jpt_80052D9C) +/* 082568 7F04DA38 002F0821 */ addu $at, $at, $t7 +/* 08256C 7F04DA3C 8C2F2D9C */ lw $t7, %lo(jpt_80052D9C)($at) +/* 082570 7F04DA40 01E00008 */ jr $t7 +/* 082574 7F04DA44 00000000 */ nop +loc_CODE_7F04DA48: +/* 082578 7F04DA48 8E110004 */ lw $s1, 4($s0) +/* 08257C 7F04DA4C 02C02025 */ move $a0, $s6 +/* 082580 7F04DA50 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 082584 7F04DA54 02002825 */ move $a1, $s0 +/* 082588 7F04DA58 8C430004 */ lw $v1, 4($v0) +/* 08258C 7F04DA5C 1060002B */ beqz $v1, .L7F04DB0C +/* 082590 7F04DA60 00000000 */ nop +/* 082594 7F04DA64 8E240000 */ lw $a0, ($s1) +/* 082598 7F04DA68 00609825 */ move $s3, $v1 +/* 08259C 7F04DA6C 14830005 */ bne $a0, $v1, .L7F04DA84 +/* 0825A0 7F04DA70 00000000 */ nop +/* 0825A4 7F04DA74 8E38001C */ lw $t8, 0x1c($s1) +/* 0825A8 7F04DA78 0097C824 */ and $t9, $a0, $s7 +/* 0825AC 7F04DA7C 10000001 */ b .L7F04DA84 +/* 0825B0 7F04DA80 03199821 */ addu $s3, $t8, $t9 +.L7F04DA84: +/* 0825B4 7F04DA84 8E230004 */ lw $v1, 4($s1) +/* 0825B8 7F04DA88 10600004 */ beqz $v1, .L7F04DA9C +/* 0825BC 7F04DA8C 00000000 */ nop +/* 0825C0 7F04DA90 8E28001C */ lw $t0, 0x1c($s1) +/* 0825C4 7F04DA94 00774824 */ and $t1, $v1, $s7 +/* 0825C8 7F04DA98 0109A821 */ addu $s5, $t0, $t1 +.L7F04DA9C: +/* 0825CC 7F04DA9C 1000001B */ b .L7F04DB0C +/* 0825D0 7F04DAA0 8C5E0000 */ lw $fp, ($v0) +loc_CODE_7F04DAA4: +/* 0825D4 7F04DAA4 8E020004 */ lw $v0, 4($s0) +/* 0825D8 7F04DAA8 8C440000 */ lw $a0, ($v0) +/* 0825DC 7F04DAAC 10800017 */ beqz $a0, .L7F04DB0C +/* 0825E0 7F04DAB0 00000000 */ nop +/* 0825E4 7F04DAB4 8C450004 */ lw $a1, 4($v0) +/* 0825E8 7F04DAB8 8C430008 */ lw $v1, 8($v0) +/* 0825EC 7F04DABC 00975024 */ and $t2, $a0, $s7 +/* 0825F0 7F04DAC0 10A00003 */ beqz $a1, .L7F04DAD0 +/* 0825F4 7F04DAC4 006A9821 */ addu $s3, $v1, $t2 +/* 0825F8 7F04DAC8 00B75824 */ and $t3, $a1, $s7 +/* 0825FC 7F04DACC 006BA821 */ addu $s5, $v1, $t3 +.L7F04DAD0: +/* 082600 7F04DAD0 1000000E */ b .L7F04DB0C +/* 082604 7F04DAD4 0060F025 */ move $fp, $v1 +loc_CODE_7F04DAD8: +/* 082608 7F04DAD8 02C02025 */ move $a0, $s6 +/* 08260C 7F04DADC 0FC1BA5C */ jal sub_GAME_7F06E970 +/* 082610 7F04DAE0 02002825 */ move $a1, $s0 +/* 082614 7F04DAE4 10000009 */ b .L7F04DB0C +/* 082618 7F04DAE8 00000000 */ nop +loc_CODE_7F04DAEC: +/* 08261C 7F04DAEC 02C02025 */ move $a0, $s6 +/* 082620 7F04DAF0 0FC1BA6F */ jal process_12_handle_switch +/* 082624 7F04DAF4 02002825 */ move $a1, $s0 +/* 082628 7F04DAF8 10000004 */ b .L7F04DB0C +/* 08262C 7F04DAFC 00000000 */ nop +loc_CODE_7F04DB00: +/* 082630 7F04DB00 02C02025 */ move $a0, $s6 +/* 082634 7F04DB04 0FC1BA82 */ jal process_17_pointer_to_head +/* 082638 7F04DB08 02002825 */ move $a1, $s0 +def_7F04DA40: +.L7F04DB0C: +/* 08263C 7F04DB0C 12600043 */ beqz $s3, .L7F04DC1C +/* 082640 7F04DB10 02002025 */ move $a0, $s0 +/* 082644 7F04DB14 00002825 */ move $a1, $zero +/* 082648 7F04DB18 0FC1B15C */ jal sub_GAME_7F06C570 +/* 08264C 7F04DB1C 00008825 */ move $s1, $zero +/* 082650 7F04DB20 04400004 */ bltz $v0, .L7F04DB34 +/* 082654 7F04DB24 0040A025 */ move $s4, $v0 +/* 082658 7F04DB28 8ECC000C */ lw $t4, 0xc($s6) +/* 08265C 7F04DB2C 00026980 */ sll $t5, $v0, 6 +/* 082660 7F04DB30 018D8821 */ addu $s1, $t4, $t5 +.L7F04DB34: +/* 082664 7F04DB34 12200029 */ beqz $s1, .L7F04DBDC +/* 082668 7F04DB38 8FAE00D0 */ lw $t6, 0xd0($sp) +/* 08266C 7F04DB3C 122E0027 */ beq $s1, $t6, .L7F04DBDC +/* 082670 7F04DB40 02202025 */ move $a0, $s1 +/* 082674 7F04DB44 AFB100D0 */ sw $s1, 0xd0($sp) +/* 082678 7F04DB48 0FC167EE */ jal sub_GAME_7F059FB8 +/* 08267C 7F04DB4C 27A50064 */ addiu $a1, $sp, 0x64 +/* 082680 7F04DB50 8FAF0100 */ lw $t7, 0x100($sp) +/* 082684 7F04DB54 27A40064 */ addiu $a0, $sp, 0x64 +/* 082688 7F04DB58 27A500EC */ addiu $a1, $sp, 0xec +/* 08268C 7F04DB5C C5E40000 */ lwc1 $f4, ($t7) +/* 082690 7F04DB60 E7A400EC */ swc1 $f4, 0xec($sp) +/* 082694 7F04DB64 C5E60004 */ lwc1 $f6, 4($t7) +/* 082698 7F04DB68 E7A600F0 */ swc1 $f6, 0xf0($sp) +/* 08269C 7F04DB6C C5E80008 */ lwc1 $f8, 8($t7) +/* 0826A0 7F04DB70 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 0826A4 7F04DB74 E7A800F4 */ swc1 $f8, 0xf4($sp) +/* 0826A8 7F04DB78 8FB80104 */ lw $t8, 0x104($sp) +/* 0826AC 7F04DB7C 27A40064 */ addiu $a0, $sp, 0x64 +/* 0826B0 7F04DB80 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 0826B4 7F04DB84 C70A0000 */ lwc1 $f10, ($t8) +/* 0826B8 7F04DB88 E7AA00D4 */ swc1 $f10, 0xd4($sp) +/* 0826BC 7F04DB8C C7100004 */ lwc1 $f16, 4($t8) +/* 0826C0 7F04DB90 E7B000D8 */ swc1 $f16, 0xd8($sp) +/* 0826C4 7F04DB94 C7120008 */ lwc1 $f18, 8($t8) +/* 0826C8 7F04DB98 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0826CC 7F04DB9C E7B200DC */ swc1 $f18, 0xdc($sp) +/* 0826D0 7F04DBA0 C7A400D4 */ lwc1 $f4, 0xd4($sp) +/* 0826D4 7F04DBA4 C7A800EC */ lwc1 $f8, 0xec($sp) +/* 0826D8 7F04DBA8 C7B000D8 */ lwc1 $f16, 0xd8($sp) +/* 0826DC 7F04DBAC 46142182 */ mul.s $f6, $f4, $f20 +/* 0826E0 7F04DBB0 C7A400F0 */ lwc1 $f4, 0xf0($sp) +/* 0826E4 7F04DBB4 46148482 */ mul.s $f18, $f16, $f20 +/* 0826E8 7F04DBB8 C7B000F4 */ lwc1 $f16, 0xf4($sp) +/* 0826EC 7F04DBBC 46083280 */ add.s $f10, $f6, $f8 +/* 0826F0 7F04DBC0 C7A800DC */ lwc1 $f8, 0xdc($sp) +/* 0826F4 7F04DBC4 46049180 */ add.s $f6, $f18, $f4 +/* 0826F8 7F04DBC8 E7AA00E0 */ swc1 $f10, 0xe0($sp) +/* 0826FC 7F04DBCC 46144282 */ mul.s $f10, $f8, $f20 +/* 082700 7F04DBD0 E7A600E4 */ swc1 $f6, 0xe4($sp) +/* 082704 7F04DBD4 46105480 */ add.s $f18, $f10, $f16 +/* 082708 7F04DBD8 E7B200E8 */ swc1 $f18, 0xe8($sp) +.L7F04DBDC: +/* 08270C 7F04DBDC 8FB90108 */ lw $t9, 0x108($sp) +/* 082710 7F04DBE0 27A400EC */ addiu $a0, $sp, 0xec +/* 082714 7F04DBE4 27A500E0 */ addiu $a1, $sp, 0xe0 +/* 082718 7F04DBE8 27A600D4 */ addiu $a2, $sp, 0xd4 +/* 08271C 7F04DBEC 02603825 */ move $a3, $s3 +/* 082720 7F04DBF0 AFB50010 */ sw $s5, 0x10($sp) +/* 082724 7F04DBF4 AFBE0014 */ sw $fp, 0x14($sp) +/* 082728 7F04DBF8 0FC1345B */ jal sub_GAME_7F04D16C +/* 08272C 7F04DBFC AFB90018 */ sw $t9, 0x18($sp) +/* 082730 7F04DC00 10400006 */ beqz $v0, .L7F04DC1C +/* 082734 7F04DC04 8FA8010C */ lw $t0, 0x10c($sp) +/* 082738 7F04DC08 AD140000 */ sw $s4, ($t0) +/* 08273C 7F04DC0C 8FA90110 */ lw $t1, 0x110($sp) +/* 082740 7F04DC10 240A0001 */ li $t2, 1 +/* 082744 7F04DC14 AD300000 */ sw $s0, ($t1) +/* 082748 7F04DC18 AFAA00CC */ sw $t2, 0xcc($sp) +.L7F04DC1C: +/* 08274C 7F04DC1C 8E020014 */ lw $v0, 0x14($s0) +/* 082750 7F04DC20 8FAB00CC */ lw $t3, 0xcc($sp) +/* 082754 7F04DC24 10400003 */ beqz $v0, .L7F04DC34 +/* 082758 7F04DC28 00000000 */ nop +/* 08275C 7F04DC2C 1000000F */ b .L7F04DC6C +/* 082760 7F04DC30 00408025 */ move $s0, $v0 +.L7F04DC34: +/* 082764 7F04DC34 1200000D */ beqz $s0, .L7F04DC6C +/* 082768 7F04DC38 00000000 */ nop +.L7F04DC3C: +/* 08276C 7F04DC3C 56120004 */ bnel $s0, $s2, .L7F04DC50 +/* 082770 7F04DC40 8E02000C */ lw $v0, 0xc($s0) +/* 082774 7F04DC44 10000009 */ b .L7F04DC6C +/* 082778 7F04DC48 00008025 */ move $s0, $zero +/* 08277C 7F04DC4C 8E02000C */ lw $v0, 0xc($s0) +.L7F04DC50: +/* 082780 7F04DC50 50400004 */ beql $v0, $zero, .L7F04DC64 +/* 082784 7F04DC54 8E100008 */ lw $s0, 8($s0) +/* 082788 7F04DC58 10000004 */ b .L7F04DC6C +/* 08278C 7F04DC5C 00408025 */ move $s0, $v0 +/* 082790 7F04DC60 8E100008 */ lw $s0, 8($s0) +.L7F04DC64: +/* 082794 7F04DC64 1600FFF5 */ bnez $s0, .L7F04DC3C +/* 082798 7F04DC68 00000000 */ nop +.L7F04DC6C: +/* 08279C 7F04DC6C 52000004 */ beql $s0, $zero, .L7F04DC80 +/* 0827A0 7F04DC70 8FBF0054 */ lw $ra, 0x54($sp) +/* 0827A4 7F04DC74 5160FF68 */ beql $t3, $zero, .L7F04DA18 +/* 0827A8 7F04DC78 96020000 */ lhu $v0, ($s0) +.L7F04DC7C: +/* 0827AC 7F04DC7C 8FBF0054 */ lw $ra, 0x54($sp) +.L7F04DC80: +/* 0827B0 7F04DC80 8FA200CC */ lw $v0, 0xcc($sp) +/* 0827B4 7F04DC84 D7B40028 */ ldc1 $f20, 0x28($sp) +/* 0827B8 7F04DC88 8FB00030 */ lw $s0, 0x30($sp) +/* 0827BC 7F04DC8C 8FB10034 */ lw $s1, 0x34($sp) +/* 0827C0 7F04DC90 8FB20038 */ lw $s2, 0x38($sp) +/* 0827C4 7F04DC94 8FB3003C */ lw $s3, 0x3c($sp) +/* 0827C8 7F04DC98 8FB40040 */ lw $s4, 0x40($sp) +/* 0827CC 7F04DC9C 8FB50044 */ lw $s5, 0x44($sp) +/* 0827D0 7F04DCA0 8FB60048 */ lw $s6, 0x48($sp) +/* 0827D4 7F04DCA4 8FB7004C */ lw $s7, 0x4c($sp) +/* 0827D8 7F04DCA8 8FBE0050 */ lw $fp, 0x50($sp) +/* 0827DC 7F04DCAC 03E00008 */ jr $ra +/* 0827E0 7F04DCB0 27BD00F8 */ addiu $sp, $sp, 0xf8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04DCB4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*hack, doesnt fit in own data above*/ +.word destroyable_object +.word destroyable_object +.word destroyable_object +.word destroyable_object +.word destroyable_object +.word nondestroyable_object +.word destroyable_object +.word nondestroyable_object +.word destroyable_object + +.text +glabel sub_GAME_7F04DCB4 +/* 0827E4 7F04DCB4 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0827E8 7F04DCB8 AFBF0034 */ sw $ra, 0x34($sp) +/* 0827EC 7F04DCBC AFB00030 */ sw $s0, 0x30($sp) +/* 0827F0 7F04DCC0 8C8E0010 */ lw $t6, 0x10($a0) +/* 0827F4 7F04DCC4 00808025 */ move $s0, $a0 +/* 0827F8 7F04DCC8 0FC1001E */ jal sub_GAME_7F040078 +/* 0827FC 7F04DCCC AFAE003C */ sw $t6, 0x3c($sp) +/* 082800 7F04DCD0 8FA4003C */ lw $a0, 0x3c($sp) +/* 082804 7F04DCD4 00002825 */ move $a1, $zero +/* 082808 7F04DCD8 0FC28333 */ jal sub_GAME_7F0A0CCC +/* 08280C 7F04DCDC AFA20038 */ sw $v0, 0x38($sp) +/* 082810 7F04DCE0 8FA4003C */ lw $a0, 0x3c($sp) +/* 082814 7F04DCE4 0FC28333 */ jal sub_GAME_7F0A0CCC +/* 082818 7F04DCE8 24050001 */ li $a1, 1 +/* 08281C 7F04DCEC 8FA30038 */ lw $v1, 0x38($sp) +/* 082820 7F04DCF0 26040058 */ addiu $a0, $s0, 0x58 +/* 082824 7F04DCF4 26050018 */ addiu $a1, $s0, 0x18 +/* 082828 7F04DCF8 C4640004 */ lwc1 $f4, 4($v1) +/* 08282C 7F04DCFC 26060028 */ addiu $a2, $s0, 0x28 +/* 082830 7F04DD00 26070038 */ addiu $a3, $s0, 0x38 +/* 082834 7F04DD04 E7A40010 */ swc1 $f4, 0x10($sp) +/* 082838 7F04DD08 C4660008 */ lwc1 $f6, 8($v1) +/* 08283C 7F04DD0C E7A60014 */ swc1 $f6, 0x14($sp) +/* 082840 7F04DD10 C468000C */ lwc1 $f8, 0xc($v1) +/* 082844 7F04DD14 E7A80018 */ swc1 $f8, 0x18($sp) +/* 082848 7F04DD18 C46A0010 */ lwc1 $f10, 0x10($v1) +/* 08284C 7F04DD1C E7AA001C */ swc1 $f10, 0x1c($sp) +/* 082850 7F04DD20 C4700014 */ lwc1 $f16, 0x14($v1) +/* 082854 7F04DD24 E7B00020 */ swc1 $f16, 0x20($sp) +/* 082858 7F04DD28 C4720018 */ lwc1 $f18, 0x18($v1) +/* 08285C 7F04DD2C 0FC28768 */ jal sub_GAME_7F0A1DA0 +/* 082860 7F04DD30 E7B20024 */ swc1 $f18, 0x24($sp) +/* 082864 7F04DD34 8E0F0064 */ lw $t7, 0x64($s0) +/* 082868 7F04DD38 92190002 */ lbu $t9, 2($s0) +/* 08286C 7F04DD3C 44802000 */ mtc1 $zero, $f4 +/* 082870 7F04DD40 35F80004 */ ori $t8, $t7, 4 +/* 082874 7F04DD44 37280080 */ ori $t0, $t9, 0x80 +/* 082878 7F04DD48 AE180064 */ sw $t8, 0x64($s0) +/* 08287C 7F04DD4C A2080002 */ sb $t0, 2($s0) +/* 082880 7F04DD50 E6040070 */ swc1 $f4, 0x70($s0) +/* 082884 7F04DD54 8FBF0034 */ lw $ra, 0x34($sp) +/* 082888 7F04DD58 8FB00030 */ lw $s0, 0x30($sp) +/* 08288C 7F04DD5C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 082890 7F04DD60 03E00008 */ jr $ra +/* 082894 7F04DD64 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04DD68(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04DD68 +/* 082898 7F04DD68 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 08289C 7F04DD6C AFBF002C */ sw $ra, 0x2c($sp) +/* 0828A0 7F04DD70 8C8E0010 */ lw $t6, 0x10($a0) +/* 0828A4 7F04DD74 27A50030 */ addiu $a1, $sp, 0x30 +/* 0828A8 7F04DD78 AFAE007C */ sw $t6, 0x7c($sp) +/* 0828AC 7F04DD7C 8C830014 */ lw $v1, 0x14($a0) +/* 0828B0 7F04DD80 8C6F0008 */ lw $t7, 8($v1) +/* 0828B4 7F04DD84 8DF80008 */ lw $t8, 8($t7) +/* 0828B8 7F04DD88 8F190008 */ lw $t9, 8($t8) +/* 0828BC 7F04DD8C 8F220004 */ lw $v0, 4($t9) +/* 0828C0 7F04DD90 AFA30078 */ sw $v1, 0x78($sp) +/* 0828C4 7F04DD94 0FC149BB */ jal sub_GAME_7F0526EC +/* 0828C8 7F04DD98 AFA20074 */ sw $v0, 0x74($sp) +/* 0828CC 7F04DD9C 8FA20074 */ lw $v0, 0x74($sp) +/* 0828D0 7F04DDA0 27A40060 */ addiu $a0, $sp, 0x60 +/* 0828D4 7F04DDA4 27A50030 */ addiu $a1, $sp, 0x30 +/* 0828D8 7F04DDA8 C4440004 */ lwc1 $f4, 4($v0) +/* 0828DC 7F04DDAC 27A60040 */ addiu $a2, $sp, 0x40 +/* 0828E0 7F04DDB0 27A70050 */ addiu $a3, $sp, 0x50 +/* 0828E4 7F04DDB4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0828E8 7F04DDB8 C4460008 */ lwc1 $f6, 8($v0) +/* 0828EC 7F04DDBC E7A60014 */ swc1 $f6, 0x14($sp) +/* 0828F0 7F04DDC0 C448000C */ lwc1 $f8, 0xc($v0) +/* 0828F4 7F04DDC4 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0828F8 7F04DDC8 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 0828FC 7F04DDCC E7AA001C */ swc1 $f10, 0x1c($sp) +/* 082900 7F04DDD0 C4500014 */ lwc1 $f16, 0x14($v0) +/* 082904 7F04DDD4 E7B00020 */ swc1 $f16, 0x20($sp) +/* 082908 7F04DDD8 C4520018 */ lwc1 $f18, 0x18($v0) +/* 08290C 7F04DDDC 0FC28768 */ jal sub_GAME_7F0A1DA0 +/* 082910 7F04DDE0 E7B20024 */ swc1 $f18, 0x24($sp) +/* 082914 7F04DDE4 8FA4007C */ lw $a0, 0x7c($sp) +/* 082918 7F04DDE8 0FC28333 */ jal sub_GAME_7F0A0CCC +/* 08291C 7F04DDEC 24050001 */ li $a1, 1 +/* 082920 7F04DDF0 8FA40078 */ lw $a0, 0x78($sp) +/* 082924 7F04DDF4 8C880008 */ lw $t0, 8($a0) +/* 082928 7F04DDF8 8D090008 */ lw $t1, 8($t0) +/* 08292C 7F04DDFC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 082930 7F04DE00 8D250004 */ lw $a1, 4($t1) +/* 082934 7F04DE04 AC400000 */ sw $zero, ($v0) +/* 082938 7F04DE08 8FBF002C */ lw $ra, 0x2c($sp) +/* 08293C 7F04DE0C 27BD0080 */ addiu $sp, $sp, 0x80 +/* 082940 7F04DE10 03E00008 */ jr $ra +/* 082944 7F04DE14 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04DE18(void) { + +} +#else +GLOBAL_ASM( + .late_rodata +/*hack, part of check_if_collectable_object*/ +/*D:80052EAC*/ +glabel jpt_80052EAC +.word collectable_object +.word notcollectable_object +.word notcollectable_object +.word collectable_object +.word collectable_object +.word notcollectable_object +.word notcollectable_object +.word notcollectable_object +.word notcollectable_object +.word notcollectable_object +.word notcollectable_object +.word notcollectable_object +.word notcollectable_object +.word collectable_object +.word notcollectable_object +.word notcollectable_object +.word collectable_object +.word collectable_object +.text +glabel sub_GAME_7F04DE18 +/* 082948 7F04DE18 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 08294C 7F04DE1C AFBF0034 */ sw $ra, 0x34($sp) +/* 082950 7F04DE20 AFB00030 */ sw $s0, 0x30($sp) +/* 082954 7F04DE24 8C8E0010 */ lw $t6, 0x10($a0) +/* 082958 7F04DE28 AFAE0094 */ sw $t6, 0x94($sp) +/* 08295C 7F04DE2C 91D80001 */ lbu $t8, 1($t6) +/* 082960 7F04DE30 8C900014 */ lw $s0, 0x14($a0) +/* 082964 7F04DE34 33190002 */ andi $t9, $t8, 2 +/* 082968 7F04DE38 53200023 */ beql $t9, $zero, .L7F04DEC8 +/* 08296C 7F04DE3C 8FA40094 */ lw $a0, 0x94($sp) +/* 082970 7F04DE40 8E080008 */ lw $t0, 8($s0) +/* 082974 7F04DE44 02002025 */ move $a0, $s0 +/* 082978 7F04DE48 00003025 */ move $a2, $zero +/* 08297C 7F04DE4C 8D020008 */ lw $v0, 8($t0) +/* 082980 7F04DE50 8C490008 */ lw $t1, 8($v0) +/* 082984 7F04DE54 8C450004 */ lw $a1, 4($v0) +/* 082988 7F04DE58 8D230004 */ lw $v1, 4($t1) +/* 08298C 7F04DE5C 0FC1B198 */ jal sub_GAME_7F06C660 +/* 082990 7F04DE60 AFA30088 */ sw $v1, 0x88($sp) +/* 082994 7F04DE64 0FC1E111 */ jal sub_GAME_7F078444 +/* 082998 7F04DE68 AFA20084 */ sw $v0, 0x84($sp) +/* 08299C 7F04DE6C 00402025 */ move $a0, $v0 +/* 0829A0 7F04DE70 8FA50084 */ lw $a1, 0x84($sp) +/* 0829A4 7F04DE74 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0829A8 7F04DE78 27A60044 */ addiu $a2, $sp, 0x44 +/* 0829AC 7F04DE7C 8FA30088 */ lw $v1, 0x88($sp) +/* 0829B0 7F04DE80 27A40074 */ addiu $a0, $sp, 0x74 +/* 0829B4 7F04DE84 27A50044 */ addiu $a1, $sp, 0x44 +/* 0829B8 7F04DE88 C4640004 */ lwc1 $f4, 4($v1) +/* 0829BC 7F04DE8C 27A60054 */ addiu $a2, $sp, 0x54 +/* 0829C0 7F04DE90 27A70064 */ addiu $a3, $sp, 0x64 +/* 0829C4 7F04DE94 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0829C8 7F04DE98 C4660008 */ lwc1 $f6, 8($v1) +/* 0829CC 7F04DE9C E7A60014 */ swc1 $f6, 0x14($sp) +/* 0829D0 7F04DEA0 C468000C */ lwc1 $f8, 0xc($v1) +/* 0829D4 7F04DEA4 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0829D8 7F04DEA8 C46A0010 */ lwc1 $f10, 0x10($v1) +/* 0829DC 7F04DEAC E7AA001C */ swc1 $f10, 0x1c($sp) +/* 0829E0 7F04DEB0 C4700014 */ lwc1 $f16, 0x14($v1) +/* 0829E4 7F04DEB4 E7B00020 */ swc1 $f16, 0x20($sp) +/* 0829E8 7F04DEB8 C4720018 */ lwc1 $f18, 0x18($v1) +/* 0829EC 7F04DEBC 0FC28768 */ jal sub_GAME_7F0A1DA0 +/* 0829F0 7F04DEC0 E7B20024 */ swc1 $f18, 0x24($sp) +/* 0829F4 7F04DEC4 8FA40094 */ lw $a0, 0x94($sp) +.L7F04DEC8: +/* 0829F8 7F04DEC8 0FC28333 */ jal sub_GAME_7F0A0CCC +/* 0829FC 7F04DECC 24050001 */ li $a1, 1 +/* 082A00 7F04DED0 8E0A0008 */ lw $t2, 8($s0) +/* 082A04 7F04DED4 02002025 */ move $a0, $s0 +/* 082A08 7F04DED8 8D4B0008 */ lw $t3, 8($t2) +/* 082A0C 7F04DEDC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 082A10 7F04DEE0 8D65000C */ lw $a1, 0xc($t3) +/* 082A14 7F04DEE4 AC400000 */ sw $zero, ($v0) +/* 082A18 7F04DEE8 8FBF0034 */ lw $ra, 0x34($sp) +/* 082A1C 7F04DEEC 8FB00030 */ lw $s0, 0x30($sp) +/* 082A20 7F04DEF0 27BD0098 */ addiu $sp, $sp, 0x98 +/* 082A24 7F04DEF4 03E00008 */ jr $ra +/* 082A28 7F04DEF8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04DEFC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04DEFC +/* 082A2C 7F04DEFC 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 082A30 7F04DF00 AFBF003C */ sw $ra, 0x3c($sp) +/* 082A34 7F04DF04 AFB40038 */ sw $s4, 0x38($sp) +/* 082A38 7F04DF08 AFB30034 */ sw $s3, 0x34($sp) +/* 082A3C 7F04DF0C AFB20030 */ sw $s2, 0x30($sp) +/* 082A40 7F04DF10 AFB1002C */ sw $s1, 0x2c($sp) +/* 082A44 7F04DF14 AFB00028 */ sw $s0, 0x28($sp) +/* 082A48 7F04DF18 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 082A4C 7F04DF1C AFA40040 */ sw $a0, 0x40($sp) +/* 082A50 7F04DF20 8C820004 */ lw $v0, 4($a0) +/* 082A54 7F04DF24 8FB20050 */ lw $s2, 0x50($sp) +/* 082A58 7F04DF28 3C01FFF9 */ lui $at, (0xFFF9FFFF >> 16) # lui $at, 0xfff9 +/* 082A5C 7F04DF2C 8C4F0064 */ lw $t7, 0x64($v0) +/* 082A60 7F04DF30 3421FFFF */ ori $at, (0xFFF9FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 082A64 7F04DF34 00124440 */ sll $t0, $s2, 0x11 +/* 082A68 7F04DF38 01E1C024 */ and $t8, $t7, $at +/* 082A6C 7F04DF3C 03084825 */ or $t1, $t8, $t0 +/* 082A70 7F04DF40 4485A000 */ mtc1 $a1, $f20 +/* 082A74 7F04DF44 00095B00 */ sll $t3, $t1, 0xc +/* 082A78 7F04DF48 AC580064 */ sw $t8, 0x64($v0) +/* 082A7C 7F04DF4C 00C09825 */ move $s3, $a2 +/* 082A80 7F04DF50 00E0A025 */ move $s4, $a3 +/* 082A84 7F04DF54 05600015 */ bltz $t3, .L7F04DFAC +/* 082A88 7F04DF58 AC490064 */ sw $t1, 0x64($v0) +/* 082A8C 7F04DF5C 8FAC0040 */ lw $t4, 0x40($sp) +/* 082A90 7F04DF60 8D900020 */ lw $s0, 0x20($t4) +/* 082A94 7F04DF64 5200000B */ beql $s0, $zero, .L7F04DF94 +/* 082A98 7F04DF68 8FAD0040 */ lw $t5, 0x40($sp) +.L7F04DF6C: +/* 082A9C 7F04DF6C 8E110024 */ lw $s1, 0x24($s0) +/* 082AA0 7F04DF70 4405A000 */ mfc1 $a1, $f20 +/* 082AA4 7F04DF74 AFB20010 */ sw $s2, 0x10($sp) +/* 082AA8 7F04DF78 02002025 */ move $a0, $s0 +/* 082AAC 7F04DF7C 02603025 */ move $a2, $s3 +/* 082AB0 7F04DF80 0FC137BF */ jal sub_GAME_7F04DEFC +/* 082AB4 7F04DF84 02803825 */ move $a3, $s4 +/* 082AB8 7F04DF88 1620FFF8 */ bnez $s1, .L7F04DF6C +/* 082ABC 7F04DF8C 02208025 */ move $s0, $s1 +/* 082AC0 7F04DF90 8FAD0040 */ lw $t5, 0x40($sp) +.L7F04DF94: +/* 082AC4 7F04DF94 4405A000 */ mfc1 $a1, $f20 +/* 082AC8 7F04DF98 02603025 */ move $a2, $s3 +/* 082ACC 7F04DF9C 8DA40004 */ lw $a0, 4($t5) +/* 082AD0 7F04DFA0 AFB20010 */ sw $s2, 0x10($sp) +/* 082AD4 7F04DFA4 0FC13842 */ jal maybe_detonate_object +/* 082AD8 7F04DFA8 02803825 */ move $a3, $s4 +.L7F04DFAC: +/* 082ADC 7F04DFAC 8FBF003C */ lw $ra, 0x3c($sp) +/* 082AE0 7F04DFB0 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 082AE4 7F04DFB4 8FB00028 */ lw $s0, 0x28($sp) +/* 082AE8 7F04DFB8 8FB1002C */ lw $s1, 0x2c($sp) +/* 082AEC 7F04DFBC 8FB20030 */ lw $s2, 0x30($sp) +/* 082AF0 7F04DFC0 8FB30034 */ lw $s3, 0x34($sp) +/* 082AF4 7F04DFC4 8FB40038 */ lw $s4, 0x38($sp) +/* 082AF8 7F04DFC8 03E00008 */ jr $ra +/* 082AFC 7F04DFCC 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void check_if_destroyable_object_type(void) { + +} +#else +GLOBAL_ASM( +.late_rodata + + +.text +glabel check_if_destroyable_object_type +/* 082B00 7F04DFD0 908E0003 */ lbu $t6, 3($a0) +/* 082B04 7F04DFD4 25CFFFFF */ addiu $t7, $t6, -1 +/* 082B08 7F04DFD8 2DE1002F */ sltiu $at, $t7, 0x2f +/* 082B0C 7F04DFDC 10200008 */ beqz $at, .L7F04E000 +/* 082B10 7F04DFE0 000F7880 */ sll $t7, $t7, 2 +/* 082B14 7F04DFE4 3C018005 */ lui $at, %hi(jpt_80052DF0) +/* 082B18 7F04DFE8 002F0821 */ addu $at, $at, $t7 +/* 082B1C 7F04DFEC 8C2F2DF0 */ lw $t7, %lo(jpt_80052DF0)($at) +/* 082B20 7F04DFF0 01E00008 */ jr $t7 +/* 082B24 7F04DFF4 00000000 */ nop +destroyable_object: +/* 082B28 7F04DFF8 03E00008 */ jr $ra +/* 082B2C 7F04DFFC 24020001 */ li $v0, 1 + +nondestroyable_object: +.L7F04E000: +/* 082B30 7F04E000 00001025 */ move $v0, $zero +/* 082B34 7F04E004 03E00008 */ jr $ra +/* 082B38 7F04E008 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void check_if_collectable_object(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_collectable_object +/* 082B3C 7F04E00C 908E0003 */ lbu $t6, 3($a0) +/* 082B40 7F04E010 25CFFFFC */ addiu $t7, $t6, -4 +/* 082B44 7F04E014 2DE10012 */ sltiu $at, $t7, 0x12 +/* 082B48 7F04E018 10200008 */ beqz $at, .L7F04E03C +/* 082B4C 7F04E01C 000F7880 */ sll $t7, $t7, 2 +/* 082B50 7F04E020 3C018005 */ lui $at, %hi(jpt_80052EAC) +/* 082B54 7F04E024 002F0821 */ addu $at, $at, $t7 +/* 082B58 7F04E028 8C2F2EAC */ lw $t7, %lo(jpt_80052EAC)($at) +/* 082B5C 7F04E02C 01E00008 */ jr $t7 +/* 082B60 7F04E030 00000000 */ nop +collectable_object: +/* 082B64 7F04E034 03E00008 */ jr $ra +/* 082B68 7F04E038 24020001 */ li $v0, 1 + +notcollectable_object: +.L7F04E03C: +/* 082B6C 7F04E03C 00001025 */ move $v0, $zero +/* 082B70 7F04E040 03E00008 */ jr $ra +/* 082B74 7F04E044 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void check_if_destroyable_not_invincible(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_destroyable_not_invincible +/* 082B78 7F04E048 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 082B7C 7F04E04C AFBF0014 */ sw $ra, 0x14($sp) +/* 082B80 7F04E050 908E0003 */ lbu $t6, 3($a0) +/* 082B84 7F04E054 24010001 */ li $at, 1 +/* 082B88 7F04E058 15C10003 */ bne $t6, $at, .L7F04E068 +/* 082B8C 7F04E05C 00000000 */ nop +/* 082B90 7F04E060 10000016 */ b .L7F04E0BC +/* 082B94 7F04E064 00001025 */ move $v0, $zero +.L7F04E068: +/* 082B98 7F04E068 0FC13803 */ jal check_if_collectable_object +/* 082B9C 7F04E06C AFA40018 */ sw $a0, 0x18($sp) +/* 082BA0 7F04E070 1040000B */ beqz $v0, .L7F04E0A0 +/* 082BA4 7F04E074 8FA40018 */ lw $a0, 0x18($sp) +/* 082BA8 7F04E078 908F0003 */ lbu $t7, 3($a0) +/* 082BAC 7F04E07C 24010015 */ li $at, 21 +/* 082BB0 7F04E080 51E10008 */ beql $t7, $at, .L7F04E0A4 +/* 082BB4 7F04E084 8C880008 */ lw $t0, 8($a0) +/* 082BB8 7F04E088 8C980008 */ lw $t8, 8($a0) +/* 082BBC 7F04E08C 0018CBC0 */ sll $t9, $t8, 0xf +/* 082BC0 7F04E090 0722000A */ bltzl $t9, .L7F04E0BC +/* 082BC4 7F04E094 24020001 */ li $v0, 1 +/* 082BC8 7F04E098 10000008 */ b .L7F04E0BC +/* 082BCC 7F04E09C 00001025 */ move $v0, $zero +.L7F04E0A0: +/* 082BD0 7F04E0A0 8C880008 */ lw $t0, 8($a0) +.L7F04E0A4: +/* 082BD4 7F04E0A4 00084B80 */ sll $t1, $t0, 0xe +/* 082BD8 7F04E0A8 05230004 */ bgezl $t1, .L7F04E0BC +/* 082BDC 7F04E0AC 24020001 */ li $v0, 1 +/* 082BE0 7F04E0B0 10000002 */ b .L7F04E0BC +/* 082BE4 7F04E0B4 00001025 */ move $v0, $zero +/* 082BE8 7F04E0B8 24020001 */ li $v0, 1 +.L7F04E0BC: +/* 082BEC 7F04E0BC 8FBF0014 */ lw $ra, 0x14($sp) +/* 082BF0 7F04E0C0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 082BF4 7F04E0C4 03E00008 */ jr $ra +/* 082BF8 7F04E0C8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04E0CC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04E0CC +/* 082BFC 7F04E0CC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 082C00 7F04E0D0 AFBF001C */ sw $ra, 0x1c($sp) +/* 082C04 7F04E0D4 8C8E000C */ lw $t6, 0xc($a0) +/* 082C08 7F04E0D8 44856000 */ mtc1 $a1, $f12 +/* 082C0C 7F04E0DC 8FB80030 */ lw $t8, 0x30($sp) +/* 082C10 7F04E0E0 31CF4000 */ andi $t7, $t6, 0x4000 +/* 082C14 7F04E0E4 55E00005 */ bnezl $t7, .L7F04E0FC +/* 082C18 7F04E0E8 8FBF001C */ lw $ra, 0x1c($sp) +/* 082C1C 7F04E0EC 44056000 */ mfc1 $a1, $f12 +/* 082C20 7F04E0F0 0FC13842 */ jal maybe_detonate_object +/* 082C24 7F04E0F4 AFB80010 */ sw $t8, 0x10($sp) +/* 082C28 7F04E0F8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04E0FC: +/* 082C2C 7F04E0FC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 082C30 7F04E100 03E00008 */ jr $ra +/* 082C34 7F04E104 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void maybe_detonate_object(void) { + +} +#else +GLOBAL_ASM( +.text +glabel maybe_detonate_object +/* 082C38 7F04E108 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 082C3C 7F04E10C AFBF001C */ sw $ra, 0x1c($sp) +/* 082C40 7F04E110 AFB00018 */ sw $s0, 0x18($sp) +/* 082C44 7F04E114 AFA600E8 */ sw $a2, 0xe8($sp) +/* 082C48 7F04E118 AFA700EC */ sw $a3, 0xec($sp) +/* 082C4C 7F04E11C 8C8E0064 */ lw $t6, 0x64($a0) +/* 082C50 7F04E120 3C01FFF9 */ lui $at, (0xFFF9FFFF >> 16) # lui $at, 0xfff9 +/* 082C54 7F04E124 3421FFFF */ ori $at, (0xFFF9FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 082C58 7F04E128 01C17824 */ and $t7, $t6, $at +/* 082C5C 7F04E12C AC8F0064 */ sw $t7, 0x64($a0) +/* 082C60 7F04E130 8FB900F0 */ lw $t9, 0xf0($sp) +/* 082C64 7F04E134 908B0003 */ lbu $t3, 3($a0) +/* 082C68 7F04E138 44856000 */ mtc1 $a1, $f12 +/* 082C6C 7F04E13C 00194C40 */ sll $t1, $t9, 0x11 +/* 082C70 7F04E140 01E95025 */ or $t2, $t7, $t1 +/* 082C74 7F04E144 24010024 */ li $at, 36 +/* 082C78 7F04E148 00808025 */ move $s0, $a0 +/* 082C7C 7F04E14C 15610006 */ bne $t3, $at, .L7F04E168 +/* 082C80 7F04E150 AC8A0064 */ sw $t2, 0x64($a0) +/* 082C84 7F04E154 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 082C88 7F04E158 E7AC00E4 */ swc1 $f12, 0xe4($sp) +/* 082C8C 7F04E15C 24010001 */ li $at, 1 +/* 082C90 7F04E160 1041016A */ beq $v0, $at, .L7F04E70C +/* 082C94 7F04E164 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +.L7F04E168: +/* 082C98 7F04E168 8FAC00EC */ lw $t4, 0xec($sp) +/* 082C9C 7F04E16C 02002025 */ move $a0, $s0 +/* 082CA0 7F04E170 55800012 */ bnezl $t4, .L7F04E1BC +/* 082CA4 7F04E174 8E030008 */ lw $v1, 8($s0) +/* 082CA8 7F04E178 0FC13803 */ jal check_if_collectable_object +/* 082CAC 7F04E17C E7AC00E4 */ swc1 $f12, 0xe4($sp) +/* 082CB0 7F04E180 10400007 */ beqz $v0, .L7F04E1A0 +/* 082CB4 7F04E184 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 082CB8 7F04E188 8E0D0008 */ lw $t5, 8($s0) +/* 082CBC 7F04E18C 000D7200 */ sll $t6, $t5, 8 +/* 082CC0 7F04E190 05C20045 */ bltzl $t6, .L7F04E2A8 +/* 082CC4 7F04E194 02002025 */ move $a0, $s0 +/* 082CC8 7F04E198 1000015D */ b .L7F04E710 +/* 082CCC 7F04E19C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04E1A0: +/* 082CD0 7F04E1A0 8E0F0008 */ lw $t7, 8($s0) +/* 082CD4 7F04E1A4 000FC9C0 */ sll $t9, $t7, 7 +/* 082CD8 7F04E1A8 0723003F */ bgezl $t9, .L7F04E2A8 +/* 082CDC 7F04E1AC 02002025 */ move $a0, $s0 +/* 082CE0 7F04E1B0 10000157 */ b .L7F04E710 +/* 082CE4 7F04E1B4 8FBF001C */ lw $ra, 0x1c($sp) +/* 082CE8 7F04E1B8 8E030008 */ lw $v1, 8($s0) +.L7F04E1BC: +/* 082CEC 7F04E1BC 0003C380 */ sll $t8, $v1, 0xe +/* 082CF0 7F04E1C0 07020153 */ bltzl $t8, .L7F04E710 +/* 082CF4 7F04E1C4 8FBF001C */ lw $ra, 0x1c($sp) +/* 082CF8 7F04E1C8 92020003 */ lbu $v0, 3($s0) +/* 082CFC 7F04E1CC 24050008 */ li $a1, 8 +/* 082D00 7F04E1D0 24040007 */ li $a0, 7 +/* 082D04 7F04E1D4 14A20015 */ bne $a1, $v0, .L7F04E22C +/* 082D08 7F04E1D8 00000000 */ nop +/* 082D0C 7F04E1DC 82020080 */ lb $v0, 0x80($s0) +/* 082D10 7F04E1E0 2401001A */ li $at, 26 +/* 082D14 7F04E1E4 1041000F */ beq $v0, $at, .L7F04E224 +/* 082D18 7F04E1E8 2401001B */ li $at, 27 +/* 082D1C 7F04E1EC 1041000D */ beq $v0, $at, .L7F04E224 +/* 082D20 7F04E1F0 2401001D */ li $at, 29 +/* 082D24 7F04E1F4 1041000B */ beq $v0, $at, .L7F04E224 +/* 082D28 7F04E1F8 2401001C */ li $at, 28 +/* 082D2C 7F04E1FC 10410009 */ beq $v0, $at, .L7F04E224 +/* 082D30 7F04E200 24010056 */ li $at, 86 +/* 082D34 7F04E204 10410007 */ beq $v0, $at, .L7F04E224 +/* 082D38 7F04E208 24010057 */ li $at, 87 +/* 082D3C 7F04E20C 10410005 */ beq $v0, $at, .L7F04E224 +/* 082D40 7F04E210 24010021 */ li $at, 33 +/* 082D44 7F04E214 10410003 */ beq $v0, $at, .L7F04E224 +/* 082D48 7F04E218 24010022 */ li $at, 34 +/* 082D4C 7F04E21C 5441013C */ bnel $v0, $at, .L7F04E710 +/* 082D50 7F04E220 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04E224: +/* 082D54 7F04E224 10000139 */ b .L7F04E70C +/* 082D58 7F04E228 A6000082 */ sh $zero, 0x82($s0) +.L7F04E22C: +/* 082D5C 7F04E22C 54820019 */ bnel $a0, $v0, .L7F04E294 +/* 082D60 7F04E230 02002025 */ move $a0, $s0 +/* 082D64 7F04E234 8E020080 */ lw $v0, 0x80($s0) +/* 082D68 7F04E238 24010005 */ li $at, 5 +/* 082D6C 7F04E23C 10410010 */ beq $v0, $at, .L7F04E280 +/* 082D70 7F04E240 24010006 */ li $at, 6 +/* 082D74 7F04E244 5041000F */ beql $v0, $at, .L7F04E284 +/* 082D78 7F04E248 3C011000 */ lui $at, 0x1000 +/* 082D7C 7F04E24C 5082000D */ beql $a0, $v0, .L7F04E284 +/* 082D80 7F04E250 3C011000 */ lui $at, 0x1000 +/* 082D84 7F04E254 10A2000A */ beq $a1, $v0, .L7F04E280 +/* 082D88 7F04E258 24010009 */ li $at, 9 +/* 082D8C 7F04E25C 10410008 */ beq $v0, $at, .L7F04E280 +/* 082D90 7F04E260 2401000B */ li $at, 11 +/* 082D94 7F04E264 10410006 */ beq $v0, $at, .L7F04E280 +/* 082D98 7F04E268 2401000F */ li $at, 15 +/* 082D9C 7F04E26C 10410004 */ beq $v0, $at, .L7F04E280 +/* 082DA0 7F04E270 24010010 */ li $at, 16 +/* 082DA4 7F04E274 10410002 */ beq $v0, $at, .L7F04E280 +/* 082DA8 7F04E278 24010013 */ li $at, 19 +/* 082DAC 7F04E27C 14410123 */ bne $v0, $at, .L7F04E70C +.L7F04E280: +/* 082DB0 7F04E280 3C011000 */ li $at, 0x10000000 # 0.000000 +.L7F04E284: +/* 082DB4 7F04E284 00614825 */ or $t1, $v1, $at +/* 082DB8 7F04E288 10000120 */ b .L7F04E70C +/* 082DBC 7F04E28C AE090008 */ sw $t1, 8($s0) +/* 082DC0 7F04E290 02002025 */ move $a0, $s0 +.L7F04E294: +/* 082DC4 7F04E294 0FC13812 */ jal check_if_destroyable_not_invincible +/* 082DC8 7F04E298 E7AC00E4 */ swc1 $f12, 0xe4($sp) +/* 082DCC 7F04E29C 1040011B */ beqz $v0, .L7F04E70C +/* 082DD0 7F04E2A0 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 082DD4 7F04E2A4 02002025 */ move $a0, $s0 +.L7F04E2A8: +/* 082DD8 7F04E2A8 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 082DDC 7F04E2AC E7AC00E4 */ swc1 $f12, 0xe4($sp) +/* 082DE0 7F04E2B0 14400008 */ bnez $v0, .L7F04E2D4 +/* 082DE4 7F04E2B4 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 082DE8 7F04E2B8 3C01437A */ li $at, 0x437A0000 # 250.000000 +/* 082DEC 7F04E2BC 44813000 */ mtc1 $at, $f6 +/* 082DF0 7F04E2C0 C6040070 */ lwc1 $f4, 0x70($s0) +/* 082DF4 7F04E2C4 46066202 */ mul.s $f8, $f12, $f6 +/* 082DF8 7F04E2C8 46082280 */ add.s $f10, $f4, $f8 +/* 082DFC 7F04E2CC 1000001F */ b .L7F04E34C +/* 082E00 7F04E2D0 E60A0070 */ swc1 $f10, 0x70($s0) +.L7F04E2D4: +/* 082E04 7F04E2D4 02002025 */ move $a0, $s0 +/* 082E08 7F04E2D8 0FC0FFD8 */ jal sub_GAME_7F03FF60 +/* 082E0C 7F04E2DC E7AC00E4 */ swc1 $f12, 0xe4($sp) +/* 082E10 7F04E2E0 240B0004 */ li $t3, 4 +/* 082E14 7F04E2E4 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 082E18 7F04E2E8 04410004 */ bgez $v0, .L7F04E2FC +/* 082E1C 7F04E2EC 304A0003 */ andi $t2, $v0, 3 +/* 082E20 7F04E2F0 11400002 */ beqz $t2, .L7F04E2FC +/* 082E24 7F04E2F4 00000000 */ nop +/* 082E28 7F04E2F8 254AFFFC */ addiu $t2, $t2, -4 +.L7F04E2FC: +/* 082E2C 7F04E2FC 016A6023 */ subu $t4, $t3, $t2 +/* 082E30 7F04E300 448C8000 */ mtc1 $t4, $f16 +/* 082E34 7F04E304 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 082E38 7F04E308 46808020 */ cvt.s.w $f0, $f16 +/* 082E3C 7F04E30C 460C003C */ c.lt.s $f0, $f12 +/* 082E40 7F04E310 00000000 */ nop +/* 082E44 7F04E314 45020004 */ bc1fl .L7F04E328 +/* 082E48 7F04E318 44810000 */ mtc1 $at, $f0 +/* 082E4C 7F04E31C 10000008 */ b .L7F04E340 +/* 082E50 7F04E320 46000306 */ mov.s $f12, $f0 +/* 082E54 7F04E324 44810000 */ mtc1 $at, $f0 +.L7F04E328: +/* 082E58 7F04E328 00000000 */ nop +/* 082E5C 7F04E32C 4600603C */ c.lt.s $f12, $f0 +/* 082E60 7F04E330 00000000 */ nop +/* 082E64 7F04E334 45020003 */ bc1fl .L7F04E344 +/* 082E68 7F04E338 C6120070 */ lwc1 $f18, 0x70($s0) +/* 082E6C 7F04E33C 46000306 */ mov.s $f12, $f0 +.L7F04E340: +/* 082E70 7F04E340 C6120070 */ lwc1 $f18, 0x70($s0) +.L7F04E344: +/* 082E74 7F04E344 460C9180 */ add.s $f6, $f18, $f12 +/* 082E78 7F04E348 E6060070 */ swc1 $f6, 0x70($s0) +.L7F04E34C: +/* 082E7C 7F04E34C 92020003 */ lbu $v0, 3($s0) +/* 082E80 7F04E350 2401002A */ li $at, 42 +/* 082E84 7F04E354 10410003 */ beq $v0, $at, .L7F04E364 +/* 082E88 7F04E358 2401002F */ li $at, 47 +/* 082E8C 7F04E35C 1441000B */ bne $v0, $at, .L7F04E38C +/* 082E90 7F04E360 24050001 */ li $a1, 1 +.L7F04E364: +/* 082E94 7F04E364 C6040070 */ lwc1 $f4, 0x70($s0) +/* 082E98 7F04E368 C6080074 */ lwc1 $f8, 0x74($s0) +/* 082E9C 7F04E36C 4604403E */ c.le.s $f8, $f4 +/* 082EA0 7F04E370 00000000 */ nop +/* 082EA4 7F04E374 4502000D */ bc1fl .L7F04E3AC +/* 082EA8 7F04E378 24010014 */ li $at, 20 +/* 082EAC 7F04E37C 0FC1372D */ jal sub_GAME_7F04DCB4 +/* 082EB0 7F04E380 02002025 */ move $a0, $s0 +/* 082EB4 7F04E384 10000008 */ b .L7F04E3A8 +/* 082EB8 7F04E388 92020003 */ lbu $v0, 3($s0) +.L7F04E38C: +/* 082EBC 7F04E38C 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 082EC0 7F04E390 8E040010 */ lw $a0, 0x10($s0) +/* 082EC4 7F04E394 02002025 */ move $a0, $s0 +/* 082EC8 7F04E398 8FA500E8 */ lw $a1, 0xe8($sp) +/* 082ECC 7F04E39C 0FC13383 */ jal object_explosion_related +/* 082ED0 7F04E3A0 8FA600F0 */ lw $a2, 0xf0($sp) +/* 082ED4 7F04E3A4 92020003 */ lbu $v0, 3($s0) +.L7F04E3A8: +/* 082ED8 7F04E3A8 24010014 */ li $at, 20 +.L7F04E3AC: +/* 082EDC 7F04E3AC 54410065 */ bnel $v0, $at, .L7F04E544 +/* 082EE0 7F04E3B0 92020003 */ lbu $v0, 3($s0) +/* 082EE4 7F04E3B4 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 082EE8 7F04E3B8 02002025 */ move $a0, $s0 +/* 082EEC 7F04E3BC 24010001 */ li $at, 1 +/* 082EF0 7F04E3C0 54410060 */ bnel $v0, $at, .L7F04E544 +/* 082EF4 7F04E3C4 92020003 */ lbu $v0, 3($s0) +/* 082EF8 7F04E3C8 0C002914 */ jal get_random_value +/* 082EFC 7F04E3CC 00000000 */ nop +/* 082F00 7F04E3D0 2401000D */ li $at, 13 +/* 082F04 7F04E3D4 0041001B */ divu $zero, $v0, $at +/* 082F08 7F04E3D8 00002010 */ mfhi $a0 +/* 082F0C 7F04E3DC 00802825 */ move $a1, $a0 +/* 082F10 7F04E3E0 00000000 */ nop +/* 082F14 7F04E3E4 00046880 */ sll $t5, $a0, 2 +.L7F04E3E8: +/* 082F18 7F04E3E8 020D1821 */ addu $v1, $s0, $t5 +/* 082F1C 7F04E3EC 946E0082 */ lhu $t6, 0x82($v1) +/* 082F20 7F04E3F0 59C0004E */ blezl $t6, .L7F04E52C +/* 082F24 7F04E3F4 24840001 */ addiu $a0, $a0, 1 +/* 082F28 7F04E3F8 946F0080 */ lhu $t7, 0x80($v1) +/* 082F2C 7F04E3FC 3401FFFF */ li $at, 65535 +/* 082F30 7F04E400 51E1004A */ beql $t7, $at, .L7F04E52C +/* 082F34 7F04E404 24840001 */ addiu $a0, $a0, 1 +/* 082F38 7F04E408 AFA30024 */ sw $v1, 0x24($sp) +/* 082F3C 7F04E40C AFA400C4 */ sw $a0, 0xc4($sp) +/* 082F40 7F04E410 0FC14634 */ jal sub_GAME_7F0518D0 +/* 082F44 7F04E414 AFA500C8 */ sw $a1, 0xc8($sp) +/* 082F48 7F04E418 8FA30024 */ lw $v1, 0x24($sp) +/* 082F4C 7F04E41C 8FA400C4 */ lw $a0, 0xc4($sp) +/* 082F50 7F04E420 8FA500C8 */ lw $a1, 0xc8($sp) +/* 082F54 7F04E424 10400040 */ beqz $v0, .L7F04E528 +/* 082F58 7F04E428 00403025 */ move $a2, $v0 +/* 082F5C 7F04E42C 3C198003 */ lui $t9, %hi(blank_07_object) +/* 082F60 7F04E430 27A8003C */ addiu $t0, $sp, 0x3c +/* 082F64 7F04E434 27392094 */ addiu $t9, %lo(blank_07_object) # addiu $t9, $t9, 0x2094 +/* 082F68 7F04E438 94670080 */ lhu $a3, 0x80($v1) +/* 082F6C 7F04E43C 27290078 */ addiu $t1, $t9, 0x78 +/* 082F70 7F04E440 01005825 */ move $t3, $t0 +.L7F04E444: +/* 082F74 7F04E444 8F210000 */ lw $at, ($t9) +/* 082F78 7F04E448 2739000C */ addiu $t9, $t9, 0xc +/* 082F7C 7F04E44C 256B000C */ addiu $t3, $t3, 0xc +/* 082F80 7F04E450 AD61FFF4 */ sw $at, -0xc($t3) +/* 082F84 7F04E454 8F21FFF8 */ lw $at, -8($t9) +/* 082F88 7F04E458 AD61FFF8 */ sw $at, -8($t3) +/* 082F8C 7F04E45C 8F21FFFC */ lw $at, -4($t9) +/* 082F90 7F04E460 1729FFF8 */ bne $t9, $t1, .L7F04E444 +/* 082F94 7F04E464 AD61FFFC */ sw $at, -4($t3) +/* 082F98 7F04E468 8F210000 */ lw $at, ($t9) +/* 082F9C 7F04E46C 01006825 */ move $t5, $t0 +/* 082FA0 7F04E470 00407025 */ move $t6, $v0 +/* 082FA4 7F04E474 AD610000 */ sw $at, ($t3) +/* 082FA8 7F04E478 8F290004 */ lw $t1, 4($t9) +/* 082FAC 7F04E47C 250C0078 */ addiu $t4, $t0, 0x78 +/* 082FB0 7F04E480 0007C080 */ sll $t8, $a3, 2 +/* 082FB4 7F04E484 AD690004 */ sw $t1, 4($t3) +.L7F04E488: +/* 082FB8 7F04E488 8DA10000 */ lw $at, ($t5) +/* 082FBC 7F04E48C 25AD000C */ addiu $t5, $t5, 0xc +/* 082FC0 7F04E490 25CE000C */ addiu $t6, $t6, 0xc +/* 082FC4 7F04E494 ADC1FFF4 */ sw $at, -0xc($t6) +/* 082FC8 7F04E498 8DA1FFF8 */ lw $at, -8($t5) +/* 082FCC 7F04E49C ADC1FFF8 */ sw $at, -8($t6) +/* 082FD0 7F04E4A0 8DA1FFFC */ lw $at, -4($t5) +/* 082FD4 7F04E4A4 15ACFFF8 */ bne $t5, $t4, .L7F04E488 +/* 082FD8 7F04E4A8 ADC1FFFC */ sw $at, -4($t6) +/* 082FDC 7F04E4AC 8DA10000 */ lw $at, ($t5) +/* 082FE0 7F04E4B0 24850001 */ addiu $a1, $a0, 1 +/* 082FE4 7F04E4B4 00C02025 */ move $a0, $a2 +/* 082FE8 7F04E4B8 ADC10000 */ sw $at, ($t6) +/* 082FEC 7F04E4BC 8DAC0004 */ lw $t4, 4($t5) +/* 082FF0 7F04E4C0 24010002 */ li $at, 2 +/* 082FF4 7F04E4C4 0307C023 */ subu $t8, $t8, $a3 +/* 082FF8 7F04E4C8 ADCC0004 */ sw $t4, 4($t6) +/* 082FFC 7F04E4CC A4470004 */ sh $a3, 4($v0) +/* 083000 7F04E4D0 14A10003 */ bne $a1, $at, .L7F04E4E0 +/* 083004 7F04E4D4 AC450080 */ sw $a1, 0x80($v0) +/* 083008 7F04E4D8 240F0001 */ li $t7, 1 +/* 08300C 7F04E4DC AC4F0080 */ sw $t7, 0x80($v0) +.L7F04E4E0: +/* 083010 7F04E4E0 0018C080 */ sll $t8, $t8, 2 +/* 083014 7F04E4E4 3C058004 */ lui $a1, %hi(PitemZ_entries) +/* 083018 7F04E4E8 00B82821 */ addu $a1, $a1, $t8 +/* 08301C 7F04E4EC 8CA5A228 */ lw $a1, %lo(PitemZ_entries)($a1) +/* 083020 7F04E4F0 0FC101BE */ jal sub_GAME_7F0406F8 +/* 083024 7F04E4F4 AFA600C0 */ sw $a2, 0xc0($sp) +/* 083028 7F04E4F8 10400011 */ beqz $v0, .L7F04E540 +/* 08302C 7F04E4FC 8FA600C0 */ lw $a2, 0xc0($sp) +/* 083030 7F04E500 8CC40014 */ lw $a0, 0x14($a2) +/* 083034 7F04E504 8C850014 */ lw $a1, 0x14($a0) +/* 083038 7F04E508 0FC1B39E */ jal set_obj_instance_controller_scale +/* 08303C 7F04E50C AFA600C0 */ sw $a2, 0xc0($sp) +/* 083040 7F04E510 8FA600C0 */ lw $a2, 0xc0($sp) +/* 083044 7F04E514 8E050010 */ lw $a1, 0x10($s0) +/* 083048 7F04E518 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 08304C 7F04E51C 8CC40010 */ lw $a0, 0x10($a2) +/* 083050 7F04E520 10000008 */ b .L7F04E544 +/* 083054 7F04E524 92020003 */ lbu $v0, 3($s0) +.L7F04E528: +/* 083058 7F04E528 24840001 */ addiu $a0, $a0, 1 +.L7F04E52C: +/* 08305C 7F04E52C 2401000D */ li $at, 13 +/* 083060 7F04E530 0081001A */ div $zero, $a0, $at +/* 083064 7F04E534 00002010 */ mfhi $a0 +/* 083068 7F04E538 5485FFAB */ bnel $a0, $a1, .L7F04E3E8 +/* 08306C 7F04E53C 00046880 */ sll $t5, $a0, 2 +.L7F04E540: +/* 083070 7F04E540 92020003 */ lbu $v0, 3($s0) +.L7F04E544: +/* 083074 7F04E544 2401000D */ li $at, 13 +/* 083078 7F04E548 54410010 */ bnel $v0, $at, .L7F04E58C +/* 08307C 7F04E54C 24010006 */ li $at, 6 +/* 083080 7F04E550 8E190008 */ lw $t9, 8($s0) +/* 083084 7F04E554 3C014000 */ lui $at, 0x4000 +/* 083088 7F04E558 02002025 */ move $a0, $s0 +/* 08308C 7F04E55C 03215825 */ or $t3, $t9, $at +/* 083090 7F04E560 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 083094 7F04E564 AE0B0008 */ sw $t3, 8($s0) +/* 083098 7F04E568 24010001 */ li $at, 1 +/* 08309C 7F04E56C 14410057 */ bne $v0, $at, .L7F04E6CC +/* 0830A0 7F04E570 00000000 */ nop +/* 0830A4 7F04E574 8E0A0008 */ lw $t2, 8($s0) +/* 0830A8 7F04E578 3C011000 */ lui $at, 0x1000 +/* 0830AC 7F04E57C 01416025 */ or $t4, $t2, $at +/* 0830B0 7F04E580 10000052 */ b .L7F04E6CC +/* 0830B4 7F04E584 AE0C0008 */ sw $t4, 8($s0) +/* 0830B8 7F04E588 24010006 */ li $at, 6 +.L7F04E58C: +/* 0830BC 7F04E58C 5441000C */ bnel $v0, $at, .L7F04E5C0 +/* 0830C0 7F04E590 2401000A */ li $at, 10 +/* 0830C4 7F04E594 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 0830C8 7F04E598 02002025 */ move $a0, $s0 +/* 0830CC 7F04E59C 24010001 */ li $at, 1 +/* 0830D0 7F04E5A0 1441004A */ bne $v0, $at, .L7F04E6CC +/* 0830D4 7F04E5A4 00000000 */ nop +/* 0830D8 7F04E5A8 8E0D0008 */ lw $t5, 8($s0) +/* 0830DC 7F04E5AC 3C011000 */ lui $at, 0x1000 +/* 0830E0 7F04E5B0 01A17025 */ or $t6, $t5, $at +/* 0830E4 7F04E5B4 10000045 */ b .L7F04E6CC +/* 0830E8 7F04E5B8 AE0E0008 */ sw $t6, 8($s0) +/* 0830EC 7F04E5BC 2401000A */ li $at, 10 +.L7F04E5C0: +/* 0830F0 7F04E5C0 5441000C */ bnel $v0, $at, .L7F04E5F4 +/* 0830F4 7F04E5C4 2401000B */ li $at, 11 +/* 0830F8 7F04E5C8 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 0830FC 7F04E5CC 02002025 */ move $a0, $s0 +/* 083100 7F04E5D0 24010001 */ li $at, 1 +/* 083104 7F04E5D4 1441003D */ bne $v0, $at, .L7F04E6CC +/* 083108 7F04E5D8 26040080 */ addiu $a0, $s0, 0x80 +/* 08310C 7F04E5DC 3C058003 */ lui $a1, %hi(D_80031EE8) +/* 083110 7F04E5E0 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 083114 7F04E5E4 24A51EE8 */ addiu $a1, %lo(D_80031EE8) # addiu $a1, $a1, 0x1ee8 +/* 083118 7F04E5E8 10000038 */ b .L7F04E6CC +/* 08311C 7F04E5EC 00000000 */ nop +/* 083120 7F04E5F0 2401000B */ li $at, 11 +.L7F04E5F4: +/* 083124 7F04E5F4 54410018 */ bnel $v0, $at, .L7F04E658 +/* 083128 7F04E5F8 24010024 */ li $at, 36 +/* 08312C 7F04E5FC 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 083130 7F04E600 02002025 */ move $a0, $s0 +/* 083134 7F04E604 24010001 */ li $at, 1 +/* 083138 7F04E608 14410030 */ bne $v0, $at, .L7F04E6CC +/* 08313C 7F04E60C 26040080 */ addiu $a0, $s0, 0x80 +/* 083140 7F04E610 3C058003 */ lui $a1, %hi(D_80031EE8) +/* 083144 7F04E614 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 083148 7F04E618 24A51EE8 */ addiu $a1, %lo(D_80031EE8) # addiu $a1, $a1, 0x1ee8 +/* 08314C 7F04E61C 3C058003 */ lui $a1, %hi(D_80031EE8) +/* 083150 7F04E620 24A51EE8 */ addiu $a1, %lo(D_80031EE8) # addiu $a1, $a1, 0x1ee8 +/* 083154 7F04E624 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 083158 7F04E628 260400F4 */ addiu $a0, $s0, 0xf4 +/* 08315C 7F04E62C 3C058003 */ lui $a1, %hi(D_80031EE8) +/* 083160 7F04E630 24A51EE8 */ addiu $a1, %lo(D_80031EE8) # addiu $a1, $a1, 0x1ee8 +/* 083164 7F04E634 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 083168 7F04E638 26040168 */ addiu $a0, $s0, 0x168 +/* 08316C 7F04E63C 3C058003 */ lui $a1, %hi(D_80031EE8) +/* 083170 7F04E640 24A51EE8 */ addiu $a1, %lo(D_80031EE8) # addiu $a1, $a1, 0x1ee8 +/* 083174 7F04E644 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 083178 7F04E648 260401DC */ addiu $a0, $s0, 0x1dc +/* 08317C 7F04E64C 1000001F */ b .L7F04E6CC +/* 083180 7F04E650 00000000 */ nop +/* 083184 7F04E654 24010024 */ li $at, 36 +.L7F04E658: +/* 083188 7F04E658 5441000B */ bnel $v0, $at, .L7F04E688 +/* 08318C 7F04E65C 24010015 */ li $at, 21 +/* 083190 7F04E660 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 083194 7F04E664 02002025 */ move $a0, $s0 +/* 083198 7F04E668 24010001 */ li $at, 1 +/* 08319C 7F04E66C 14410017 */ bne $v0, $at, .L7F04E6CC +/* 0831A0 7F04E670 00000000 */ nop +/* 0831A4 7F04E674 0FC15799 */ jal init_trigger_toxic_gas_effect +/* 0831A8 7F04E678 26040058 */ addiu $a0, $s0, 0x58 +/* 0831AC 7F04E67C 10000013 */ b .L7F04E6CC +/* 0831B0 7F04E680 00000000 */ nop +/* 0831B4 7F04E684 24010015 */ li $at, 21 +.L7F04E688: +/* 0831B8 7F04E688 14410010 */ bne $v0, $at, .L7F04E6CC +/* 0831BC 7F04E68C 00000000 */ nop +/* 0831C0 7F04E690 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 0831C4 7F04E694 02002025 */ move $a0, $s0 +/* 0831C8 7F04E698 5440000A */ bnezl $v0, .L7F04E6C4 +/* 0831CC 7F04E69C 44804000 */ mtc1 $zero, $f8 +/* 0831D0 7F04E6A0 C6000074 */ lwc1 $f0, 0x74($s0) +/* 0831D4 7F04E6A4 C6100070 */ lwc1 $f16, 0x70($s0) +/* 0831D8 7F04E6A8 C60A0080 */ lwc1 $f10, 0x80($s0) +/* 0831DC 7F04E6AC 46100481 */ sub.s $f18, $f0, $f16 +/* 0831E0 7F04E6B0 46125182 */ mul.s $f6, $f10, $f18 +/* 0831E4 7F04E6B4 46003103 */ div.s $f4, $f6, $f0 +/* 0831E8 7F04E6B8 10000004 */ b .L7F04E6CC +/* 0831EC 7F04E6BC E6040084 */ swc1 $f4, 0x84($s0) +/* 0831F0 7F04E6C0 44804000 */ mtc1 $zero, $f8 +.L7F04E6C4: +/* 0831F4 7F04E6C4 00000000 */ nop +/* 0831F8 7F04E6C8 E6080084 */ swc1 $f8, 0x84($s0) +.L7F04E6CC: +/* 0831FC 7F04E6CC 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 083200 7F04E6D0 02002025 */ move $a0, $s0 +/* 083204 7F04E6D4 24010001 */ li $at, 1 +/* 083208 7F04E6D8 5441000D */ bnel $v0, $at, .L7F04E710 +/* 08320C 7F04E6DC 8FBF001C */ lw $ra, 0x1c($sp) +/* 083210 7F04E6E0 8E0F0010 */ lw $t7, 0x10($s0) +/* 083214 7F04E6E4 8DE40020 */ lw $a0, 0x20($t7) +/* 083218 7F04E6E8 50800009 */ beql $a0, $zero, .L7F04E710 +/* 08321C 7F04E6EC 8FBF001C */ lw $ra, 0x1c($sp) +/* 083220 7F04E6F0 8C820024 */ lw $v0, 0x24($a0) +.L7F04E6F4: +/* 083224 7F04E6F4 24050001 */ li $a1, 1 +/* 083228 7F04E6F8 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 08322C 7F04E6FC AFA20028 */ sw $v0, 0x28($sp) +/* 083230 7F04E700 8FA40028 */ lw $a0, 0x28($sp) +/* 083234 7F04E704 5480FFFB */ bnezl $a0, .L7F04E6F4 +/* 083238 7F04E708 8C820024 */ lw $v0, 0x24($a0) +.L7F04E70C: +/* 08323C 7F04E70C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04E710: +/* 083240 7F04E710 8FB00018 */ lw $s0, 0x18($sp) +/* 083244 7F04E714 27BD00E0 */ addiu $sp, $sp, 0xe0 +/* 083248 7F04E718 03E00008 */ jr $ra +/* 08324C 7F04E71C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04E720(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04E720 +/* 083250 7F04E720 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 083254 7F04E724 AFBF004C */ sw $ra, 0x4c($sp) +/* 083258 7F04E728 AFB50048 */ sw $s5, 0x48($sp) +/* 08325C 7F04E72C AFB40044 */ sw $s4, 0x44($sp) +/* 083260 7F04E730 AFB30040 */ sw $s3, 0x40($sp) +/* 083264 7F04E734 AFB2003C */ sw $s2, 0x3c($sp) +/* 083268 7F04E738 AFB10038 */ sw $s1, 0x38($sp) +/* 08326C 7F04E73C AFB00034 */ sw $s0, 0x34($sp) +/* 083270 7F04E740 AFA400C0 */ sw $a0, 0xc0($sp) +/* 083274 7F04E744 8C950004 */ lw $s5, 4($a0) +/* 083278 7F04E748 00A09825 */ move $s3, $a1 +/* 08327C 7F04E74C 8EAF0064 */ lw $t7, 0x64($s5) +/* 083280 7F04E750 31F81000 */ andi $t8, $t7, 0x1000 +/* 083284 7F04E754 57000091 */ bnezl $t8, .L7F04E99C +/* 083288 7F04E758 8FBF004C */ lw $ra, 0x4c($sp) +/* 08328C 7F04E75C 90880001 */ lbu $t0, 1($a0) +/* 083290 7F04E760 31090002 */ andi $t1, $t0, 2 +/* 083294 7F04E764 5120008D */ beql $t1, $zero, .L7F04E99C +/* 083298 7F04E768 8FBF004C */ lw $ra, 0x4c($sp) +/* 08329C 7F04E76C 8C900020 */ lw $s0, 0x20($a0) +/* 0832A0 7F04E770 52000008 */ beql $s0, $zero, .L7F04E794 +/* 0832A4 7F04E774 8EB40014 */ lw $s4, 0x14($s5) +.L7F04E778: +/* 0832A8 7F04E778 8E110024 */ lw $s1, 0x24($s0) +/* 0832AC 7F04E77C 02002025 */ move $a0, $s0 +/* 0832B0 7F04E780 0FC139C8 */ jal sub_GAME_7F04E720 +/* 0832B4 7F04E784 02602825 */ move $a1, $s3 +/* 0832B8 7F04E788 1620FFFB */ bnez $s1, .L7F04E778 +/* 0832BC 7F04E78C 02208025 */ move $s0, $s1 +/* 0832C0 7F04E790 8EB40014 */ lw $s4, 0x14($s5) +.L7F04E794: +/* 0832C4 7F04E794 AFA000A8 */ sw $zero, 0xa8($sp) +/* 0832C8 7F04E798 92AB0003 */ lbu $t3, 3($s5) +/* 0832CC 7F04E79C 24010001 */ li $at, 1 +/* 0832D0 7F04E7A0 2670000C */ addiu $s0, $s3, 0xc +/* 0832D4 7F04E7A4 15610025 */ bne $t3, $at, .L7F04E83C +/* 0832D8 7F04E7A8 27B100A8 */ addiu $s1, $sp, 0xa8 +/* 0832DC 7F04E7AC 96AC0098 */ lhu $t4, 0x98($s5) +/* 0832E0 7F04E7B0 26A400D0 */ addiu $a0, $s5, 0xd0 +/* 0832E4 7F04E7B4 02603025 */ move $a2, $s3 +/* 0832E8 7F04E7B8 318D0004 */ andi $t5, $t4, 4 +/* 0832EC 7F04E7BC 55A00008 */ bnezl $t5, .L7F04E7E0 +/* 0832F0 7F04E7C0 2670000C */ addiu $s0, $s3, 0xc +/* 0832F4 7F04E7C4 96A2009A */ lhu $v0, 0x9a($s5) +/* 0832F8 7F04E7C8 24010006 */ li $at, 6 +/* 0832FC 7F04E7CC 10410003 */ beq $v0, $at, .L7F04E7DC +/* 083300 7F04E7D0 24010007 */ li $at, 7 +/* 083304 7F04E7D4 14410019 */ bne $v0, $at, .L7F04E83C +/* 083308 7F04E7D8 00000000 */ nop +.L7F04E7DC: +/* 08330C 7F04E7DC 2670000C */ addiu $s0, $s3, 0xc +.L7F04E7E0: +/* 083310 7F04E7E0 02003825 */ move $a3, $s0 +/* 083314 7F04E7E4 0FC1D1F4 */ jal sub_GAME_7F0747D0 +/* 083318 7F04E7E8 8E85000C */ lw $a1, 0xc($s4) +/* 08331C 7F04E7EC 8E8E0008 */ lw $t6, 8($s4) +/* 083320 7F04E7F0 00409025 */ move $s2, $v0 +/* 083324 7F04E7F4 02802025 */ move $a0, $s4 +/* 083328 7F04E7F8 8DCF0000 */ lw $t7, ($t6) +/* 08332C 7F04E7FC 02603025 */ move $a2, $s3 +/* 083330 7F04E800 18400024 */ blez $v0, .L7F04E894 +/* 083334 7F04E804 AFAF00A8 */ sw $t7, 0xa8($sp) +/* 083338 7F04E808 27B80078 */ addiu $t8, $sp, 0x78 +/* 08333C 7F04E80C 27B90074 */ addiu $t9, $sp, 0x74 +/* 083340 7F04E810 27A80060 */ addiu $t0, $sp, 0x60 +/* 083344 7F04E814 AFA80018 */ sw $t0, 0x18($sp) +/* 083348 7F04E818 AFB90014 */ sw $t9, 0x14($sp) +/* 08334C 7F04E81C AFB80010 */ sw $t8, 0x10($sp) +/* 083350 7F04E820 01E02825 */ move $a1, $t7 +/* 083354 7F04E824 0FC1366C */ jal sub_GAME_7F04D9B0 +/* 083358 7F04E828 02003825 */ move $a3, $s0 +/* 08335C 7F04E82C 14400019 */ bnez $v0, .L7F04E894 +/* 083360 7F04E830 00000000 */ nop +/* 083364 7F04E834 10000017 */ b .L7F04E894 +/* 083368 7F04E838 00009025 */ move $s2, $zero +.L7F04E83C: +/* 08336C 7F04E83C 02802025 */ move $a0, $s4 +.L7F04E840: +/* 083370 7F04E840 02602825 */ move $a1, $s3 +/* 083374 7F04E844 02003025 */ move $a2, $s0 +/* 083378 7F04E848 0FC1D4BF */ jal sub_GAME_7F0752FC +/* 08337C 7F04E84C 02203825 */ move $a3, $s1 +/* 083380 7F04E850 1840000E */ blez $v0, .L7F04E88C +/* 083384 7F04E854 00409025 */ move $s2, $v0 +/* 083388 7F04E858 27A90078 */ addiu $t1, $sp, 0x78 +/* 08338C 7F04E85C 27AA0074 */ addiu $t2, $sp, 0x74 +/* 083390 7F04E860 27AB0060 */ addiu $t3, $sp, 0x60 +/* 083394 7F04E864 AFAB0018 */ sw $t3, 0x18($sp) +/* 083398 7F04E868 AFAA0014 */ sw $t2, 0x14($sp) +/* 08339C 7F04E86C AFA90010 */ sw $t1, 0x10($sp) +/* 0833A0 7F04E870 02802025 */ move $a0, $s4 +/* 0833A4 7F04E874 8FA500A8 */ lw $a1, 0xa8($sp) +/* 0833A8 7F04E878 02603025 */ move $a2, $s3 +/* 0833AC 7F04E87C 0FC1366C */ jal sub_GAME_7F04D9B0 +/* 0833B0 7F04E880 02003825 */ move $a3, $s0 +/* 0833B4 7F04E884 14400003 */ bnez $v0, .L7F04E894 +/* 0833B8 7F04E888 00000000 */ nop +.L7F04E88C: +/* 0833BC 7F04E88C 5E40FFEC */ bgtzl $s2, .L7F04E840 +/* 0833C0 7F04E890 02802025 */ move $a0, $s4 +.L7F04E894: +/* 0833C4 7F04E894 1A400040 */ blez $s2, .L7F04E998 +/* 0833C8 7F04E898 8FAD0074 */ lw $t5, 0x74($sp) +/* 0833CC 7F04E89C 8E8C000C */ lw $t4, 0xc($s4) +/* 0833D0 7F04E8A0 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 0833D4 7F04E8A4 C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 0833D8 7F04E8A8 C7A80080 */ lwc1 $f8, 0x80($sp) +/* 0833DC 7F04E8AC 000D7180 */ sll $t6, $t5, 6 +/* 0833E0 7F04E8B0 27A50068 */ addiu $a1, $sp, 0x68 +/* 0833E4 7F04E8B4 018E2021 */ addu $a0, $t4, $t6 +/* 0833E8 7F04E8B8 E7A40068 */ swc1 $f4, 0x68($sp) +/* 0833EC 7F04E8BC E7A6006C */ swc1 $f6, 0x6c($sp) +/* 0833F0 7F04E8C0 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 0833F4 7F04E8C4 E7A80070 */ swc1 $f8, 0x70($sp) +/* 0833F8 7F04E8C8 C7A00070 */ lwc1 $f0, 0x70($sp) +/* 0833FC 7F04E8CC C66A0034 */ lwc1 $f10, 0x34($s3) +/* 083400 7F04E8D0 02602025 */ move $a0, $s3 +/* 083404 7F04E8D4 46000007 */ neg.s $f0, $f0 +/* 083408 7F04E8D8 8FA500C0 */ lw $a1, 0xc0($sp) +/* 08340C 7F04E8DC 460A003E */ c.le.s $f0, $f10 +/* 083410 7F04E8E0 02403825 */ move $a3, $s2 +/* 083414 7F04E8E4 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 083418 7F04E8E8 27AE0078 */ addiu $t6, $sp, 0x78 +/* 08341C 7F04E8EC 4502002B */ bc1fl .L7F04E99C +/* 083420 7F04E8F0 8FBF004C */ lw $ra, 0x4c($sp) +/* 083424 7F04E8F4 8EAF0008 */ lw $t7, 8($s5) +/* 083428 7F04E8F8 24030001 */ li $v1, 1 +/* 08342C 7F04E8FC 000FC380 */ sll $t8, $t7, 0xe +/* 083430 7F04E900 07020017 */ bltzl $t8, .L7F04E960 +/* 083434 7F04E904 8FAF0074 */ lw $t7, 0x74($sp) +/* 083438 7F04E908 92A20003 */ lbu $v0, 3($s5) +/* 08343C 7F04E90C 2401002A */ li $at, 42 +/* 083440 7F04E910 10410003 */ beq $v0, $at, .L7F04E920 +/* 083444 7F04E914 2401002F */ li $at, 47 +/* 083448 7F04E918 54410004 */ bnel $v0, $at, .L7F04E92C +/* 08344C 7F04E91C 8EB90014 */ lw $t9, 0x14($s5) +.L7F04E920: +/* 083450 7F04E920 1000000E */ b .L7F04E95C +/* 083454 7F04E924 00001825 */ move $v1, $zero +/* 083458 7F04E928 8EB90014 */ lw $t9, 0x14($s5) +.L7F04E92C: +/* 08345C 7F04E92C 3C088004 */ lui $t0, %hi(prop_door_related) +/* 083460 7F04E930 2508A1DC */ addiu $t0, %lo(prop_door_related) # addiu $t0, $t0, -0x5e24 +/* 083464 7F04E934 8F220008 */ lw $v0, 8($t9) +/* 083468 7F04E938 8C490004 */ lw $t1, 4($v0) +/* 08346C 7F04E93C 55090008 */ bnel $t0, $t1, .L7F04E960 +/* 083470 7F04E940 8FAF0074 */ lw $t7, 0x74($sp) +/* 083474 7F04E944 8C4B0008 */ lw $t3, 8($v0) +/* 083478 7F04E948 8FAA0060 */ lw $t2, 0x60($sp) +/* 08347C 7F04E94C 8D6D000C */ lw $t5, 0xc($t3) +/* 083480 7F04E950 554D0003 */ bnel $t2, $t5, .L7F04E960 +/* 083484 7F04E954 8FAF0074 */ lw $t7, 0x74($sp) +/* 083488 7F04E958 00001825 */ move $v1, $zero +.L7F04E95C: +/* 08348C 7F04E95C 8FAF0074 */ lw $t7, 0x74($sp) +.L7F04E960: +/* 083490 7F04E960 8FB80060 */ lw $t8, 0x60($sp) +/* 083494 7F04E964 AFAC0010 */ sw $t4, 0x10($sp) +/* 083498 7F04E968 AFAE0014 */ sw $t6, 0x14($sp) +/* 08349C 7F04E96C AFB40020 */ sw $s4, 0x20($sp) +/* 0834A0 7F04E970 AFA30024 */ sw $v1, 0x24($sp) +/* 0834A4 7F04E974 AFAF0018 */ sw $t7, 0x18($sp) +/* 0834A8 7F04E978 AFB8001C */ sw $t8, 0x1c($sp) +/* 0834AC 7F04E97C 8EB9000C */ lw $t9, 0xc($s5) +/* 0834B0 7F04E980 3C010010 */ lui $at, 0x10 +/* 0834B4 7F04E984 44060000 */ mfc1 $a2, $f0 +/* 0834B8 7F04E988 03214024 */ and $t0, $t9, $at +/* 0834BC 7F04E98C 0008482B */ sltu $t1, $zero, $t0 +/* 0834C0 7F04E990 0FC0EE70 */ jal sub_GAME_7F03B9C0 +/* 0834C4 7F04E994 AFA90028 */ sw $t1, 0x28($sp) +.L7F04E998: +/* 0834C8 7F04E998 8FBF004C */ lw $ra, 0x4c($sp) +.L7F04E99C: +/* 0834CC 7F04E99C 8FB00034 */ lw $s0, 0x34($sp) +/* 0834D0 7F04E9A0 8FB10038 */ lw $s1, 0x38($sp) +/* 0834D4 7F04E9A4 8FB2003C */ lw $s2, 0x3c($sp) +/* 0834D8 7F04E9A8 8FB30040 */ lw $s3, 0x40($sp) +/* 0834DC 7F04E9AC 8FB40044 */ lw $s4, 0x44($sp) +/* 0834E0 7F04E9B0 8FB50048 */ lw $s5, 0x48($sp) +/* 0834E4 7F04E9B4 03E00008 */ jr $ra +/* 0834E8 7F04E9B8 27BD00C0 */ addiu $sp, $sp, 0xc0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04E9BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04E9BC +/* 0834EC 7F04E9BC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0834F0 7F04E9C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0834F4 7F04E9C4 AFA40028 */ sw $a0, 0x28($sp) +/* 0834F8 7F04E9C8 AFA5002C */ sw $a1, 0x2c($sp) +/* 0834FC 7F04E9CC 8C840004 */ lw $a0, 4($a0) +/* 083500 7F04E9D0 8C8F0014 */ lw $t7, 0x14($a0) +/* 083504 7F04E9D4 AFA40024 */ sw $a0, 0x24($sp) +/* 083508 7F04E9D8 0FC1001E */ jal sub_GAME_7F040078 +/* 08350C 7F04E9DC AFAF001C */ sw $t7, 0x1c($sp) +/* 083510 7F04E9E0 8FB80028 */ lw $t8, 0x28($sp) +/* 083514 7F04E9E4 8FA40024 */ lw $a0, 0x24($sp) +/* 083518 7F04E9E8 93190001 */ lbu $t9, 1($t8) +/* 08351C 7F04E9EC 33280002 */ andi $t0, $t9, 2 +/* 083520 7F04E9F0 5100001A */ beql $t0, $zero, .L7F04EA5C +/* 083524 7F04E9F4 8FBF0014 */ lw $ra, 0x14($sp) +/* 083528 7F04E9F8 8C890064 */ lw $t1, 0x64($a0) +/* 08352C 7F04E9FC 312A1000 */ andi $t2, $t1, 0x1000 +/* 083530 7F04EA00 55400016 */ bnezl $t2, .L7F04EA5C +/* 083534 7F04EA04 8FBF0014 */ lw $ra, 0x14($sp) +/* 083538 7F04EA08 8C8B000C */ lw $t3, 0xc($a0) +/* 08353C 7F04EA0C 8FAD001C */ lw $t5, 0x1c($sp) +/* 083540 7F04EA10 316C8000 */ andi $t4, $t3, 0x8000 +/* 083544 7F04EA14 15800010 */ bnez $t4, .L7F04EA58 +/* 083548 7F04EA18 00402025 */ move $a0, $v0 +/* 08354C 7F04EA1C 0FC0FAE7 */ jal sub_GAME_7F03EB9C +/* 083550 7F04EA20 8DA5000C */ lw $a1, 0xc($t5) +/* 083554 7F04EA24 8FAE001C */ lw $t6, 0x1c($sp) +/* 083558 7F04EA28 8FA5002C */ lw $a1, 0x2c($sp) +/* 08355C 7F04EA2C 8DCF000C */ lw $t7, 0xc($t6) +/* 083560 7F04EA30 C4A60034 */ lwc1 $f6, 0x34($a1) +/* 083564 7F04EA34 C5E40038 */ lwc1 $f4, 0x38($t7) +/* 083568 7F04EA38 46040080 */ add.s $f2, $f0, $f4 +/* 08356C 7F04EA3C 46001087 */ neg.s $f2, $f2 +/* 083570 7F04EA40 4606103E */ c.le.s $f2, $f6 +/* 083574 7F04EA44 00000000 */ nop +/* 083578 7F04EA48 45020004 */ bc1fl .L7F04EA5C +/* 08357C 7F04EA4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 083580 7F04EA50 0FC139C8 */ jal sub_GAME_7F04E720 +/* 083584 7F04EA54 8FA40028 */ lw $a0, 0x28($sp) +.L7F04EA58: +/* 083588 7F04EA58 8FBF0014 */ lw $ra, 0x14($sp) +.L7F04EA5C: +/* 08358C 7F04EA5C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 083590 7F04EA60 03E00008 */ jr $ra +/* 083594 7F04EA64 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04EA68(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04EA68 +/* 083598 7F04EA68 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 08359C 7F04EA6C AFBF002C */ sw $ra, 0x2c($sp) +/* 0835A0 7F04EA70 AFB10028 */ sw $s1, 0x28($sp) +/* 0835A4 7F04EA74 AFB00024 */ sw $s0, 0x24($sp) +/* 0835A8 7F04EA78 8CA60004 */ lw $a2, 4($a1) +/* 0835AC 7F04EA7C 00A08025 */ move $s0, $a1 +/* 0835B0 7F04EA80 8CC2001C */ lw $v0, 0x1c($a2) +/* 0835B4 7F04EA84 00C01825 */ move $v1, $a2 +/* 0835B8 7F04EA88 50400006 */ beql $v0, $zero, .L7F04EAA4 +/* 0835BC 7F04EA8C C6040000 */ lwc1 $f4, ($s0) +/* 0835C0 7F04EA90 00401825 */ move $v1, $v0 +.L7F04EA94: +/* 0835C4 7F04EA94 8C42001C */ lw $v0, 0x1c($v0) +/* 0835C8 7F04EA98 5440FFFE */ bnezl $v0, .L7F04EA94 +/* 0835CC 7F04EA9C 00401825 */ move $v1, $v0 +/* 0835D0 7F04EAA0 C6040000 */ lwc1 $f4, ($s0) +.L7F04EAA4: +/* 0835D4 7F04EAA4 C486000C */ lwc1 $f6, 0xc($a0) +/* 0835D8 7F04EAA8 C48A0014 */ lwc1 $f10, 0x14($a0) +/* 0835DC 7F04EAAC C4920000 */ lwc1 $f18, ($a0) +/* 0835E0 7F04EAB0 46062202 */ mul.s $f8, $f4, $f6 +/* 0835E4 7F04EAB4 8CD10004 */ lw $s1, 4($a2) +/* 0835E8 7F04EAB8 3C0141D0 */ li $at, 0x41D00000 # 26.000000 +/* 0835EC 7F04EABC 44810000 */ mtc1 $at, $f0 +/* 0835F0 7F04EAC0 460A4403 */ div.s $f16, $f8, $f10 +/* 0835F4 7F04EAC4 46109101 */ sub.s $f4, $f18, $f16 +/* 0835F8 7F04EAC8 E7A40060 */ swc1 $f4, 0x60($sp) +/* 0835FC 7F04EACC C4880010 */ lwc1 $f8, 0x10($a0) +/* 083600 7F04EAD0 C6060000 */ lwc1 $f6, ($s0) +/* 083604 7F04EAD4 C4920014 */ lwc1 $f18, 0x14($a0) +/* 083608 7F04EAD8 C4840004 */ lwc1 $f4, 4($a0) +/* 08360C 7F04EADC 46083282 */ mul.s $f10, $f6, $f8 +/* 083610 7F04EAE0 46125403 */ div.s $f16, $f10, $f18 +/* 083614 7F04EAE4 46102181 */ sub.s $f6, $f4, $f16 +/* 083618 7F04EAE8 C7A40060 */ lwc1 $f4, 0x60($sp) +/* 08361C 7F04EAEC E7A60064 */ swc1 $f6, 0x64($sp) +/* 083620 7F04EAF0 C60A0000 */ lwc1 $f10, ($s0) +/* 083624 7F04EAF4 C4880008 */ lwc1 $f8, 8($a0) +/* 083628 7F04EAF8 460A4481 */ sub.s $f18, $f8, $f10 +/* 08362C 7F04EAFC C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 083630 7F04EB00 E7B20068 */ swc1 $f18, 0x68($sp) +/* 083634 7F04EB04 C490000C */ lwc1 $f16, 0xc($a0) +/* 083638 7F04EB08 46100182 */ mul.s $f6, $f0, $f16 +/* 08363C 7F04EB0C 46062201 */ sub.s $f8, $f4, $f6 +/* 083640 7F04EB10 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 083644 7F04EB14 E7A80060 */ swc1 $f8, 0x60($sp) +/* 083648 7F04EB18 C4920010 */ lwc1 $f18, 0x10($a0) +/* 08364C 7F04EB1C 46120402 */ mul.s $f16, $f0, $f18 +/* 083650 7F04EB20 46105101 */ sub.s $f4, $f10, $f16 +/* 083654 7F04EB24 E7A40064 */ swc1 $f4, 0x64($sp) +/* 083658 7F04EB28 C4880014 */ lwc1 $f8, 0x14($a0) +/* 08365C 7F04EB2C AFA40070 */ sw $a0, 0x70($sp) +/* 083660 7F04EB30 AFA3005C */ sw $v1, 0x5c($sp) +/* 083664 7F04EB34 46080482 */ mul.s $f18, $f0, $f8 +/* 083668 7F04EB38 46123281 */ sub.s $f10, $f6, $f18 +/* 08366C 7F04EB3C 0FC1E111 */ jal sub_GAME_7F078444 +/* 083670 7F04EB40 E7AA0068 */ swc1 $f10, 0x68($sp) +/* 083674 7F04EB44 00402025 */ move $a0, $v0 +/* 083678 7F04EB48 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 08367C 7F04EB4C 27A50060 */ addiu $a1, $sp, 0x60 +/* 083680 7F04EB50 8E0E004C */ lw $t6, 0x4c($s0) +/* 083684 7F04EB54 8FA3005C */ lw $v1, 0x5c($sp) +/* 083688 7F04EB58 11C00004 */ beqz $t6, .L7F04EB6C +/* 08368C 7F04EB5C 27A40060 */ addiu $a0, $sp, 0x60 +/* 083690 7F04EB60 0FC19ED3 */ jal sub_GAME_7F067B4C +/* 083694 7F04EB64 AFA3005C */ sw $v1, 0x5c($sp) +/* 083698 7F04EB68 8FA3005C */ lw $v1, 0x5c($sp) +.L7F04EB6C: +/* 08369C 7F04EB6C 8C6F0014 */ lw $t7, 0x14($v1) +/* 0836A0 7F04EB70 27A40060 */ addiu $a0, $sp, 0x60 +/* 0836A4 7F04EB74 24050001 */ li $a1, 1 +/* 0836A8 7F04EB78 3C0641D0 */ lui $a2, 0x41d0 +/* 0836AC 7F04EB7C 0FC28F87 */ jal sub_GAME_7F0A3E1C +/* 0836B0 7F04EB80 91E70003 */ lbu $a3, 3($t7) +/* 0836B4 7F04EB84 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 0836B8 7F04EB88 02202025 */ move $a0, $s1 +/* 0836BC 7F04EB8C 5040000D */ beql $v0, $zero, .L7F04EBC4 +/* 0836C0 7F04EB90 8E0B004C */ lw $t3, 0x4c($s0) +/* 0836C4 7F04EB94 0FC13812 */ jal check_if_destroyable_not_invincible +/* 0836C8 7F04EB98 02202025 */ move $a0, $s1 +/* 0836CC 7F04EB9C 50400009 */ beql $v0, $zero, .L7F04EBC4 +/* 0836D0 7F04EBA0 8E0B004C */ lw $t3, 0x4c($s0) +/* 0836D4 7F04EBA4 8E18004C */ lw $t8, 0x4c($s0) +/* 0836D8 7F04EBA8 8FB90070 */ lw $t9, 0x70($sp) +/* 0836DC 7F04EBAC 24050006 */ li $a1, 6 +/* 0836E0 7F04EBB0 53000004 */ beql $t8, $zero, .L7F04EBC4 +/* 0836E4 7F04EBB4 8E0B004C */ lw $t3, 0x4c($s0) +/* 0836E8 7F04EBB8 0FC1A9BE */ jal inc_curplayer_hitcount_with_weapon +/* 0836EC 7F04EBBC 8F240018 */ lw $a0, 0x18($t9) +/* 0836F0 7F04EBC0 8E0B004C */ lw $t3, 0x4c($s0) +.L7F04EBC4: +/* 0836F4 7F04EBC4 55600007 */ bnezl $t3, .L7F04EBE4 +/* 0836F8 7F04EBC8 8FAC0070 */ lw $t4, 0x70($sp) +/* 0836FC 7F04EBCC 8E040004 */ lw $a0, 4($s0) +/* 083700 7F04EBD0 0FC191C8 */ jal sub_GAME_7F064720 +/* 083704 7F04EBD4 24840008 */ addiu $a0, $a0, 8 +/* 083708 7F04EBD8 10000007 */ b .L7F04EBF8 +/* 08370C 7F04EBDC 8FAD0070 */ lw $t5, 0x70($sp) +/* 083710 7F04EBE0 8FAC0070 */ lw $t4, 0x70($sp) +.L7F04EBE4: +/* 083714 7F04EBE4 8E050004 */ lw $a1, 4($s0) +/* 083718 7F04EBE8 8606003A */ lh $a2, 0x3a($s0) +/* 08371C 7F04EBEC 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 083720 7F04EBF0 8D840018 */ lw $a0, 0x18($t4) +/* 083724 7F04EBF4 8FAD0070 */ lw $t5, 0x70($sp) +.L7F04EBF8: +/* 083728 7F04EBF8 24010017 */ li $at, 23 +/* 08372C 7F04EBFC 8DA40018 */ lw $a0, 0x18($t5) +/* 083730 7F04EC00 10810060 */ beq $a0, $at, .L7F04ED84 +/* 083734 7F04EC04 00000000 */ nop +/* 083738 7F04EC08 8E0E004C */ lw $t6, 0x4c($s0) +/* 08373C 7F04EC0C 55C00022 */ bnezl $t6, .L7F04EC98 +/* 083740 7F04EC10 8602003A */ lh $v0, 0x3a($s0) +/* 083744 7F04EC14 8E380014 */ lw $t8, 0x14($s1) +/* 083748 7F04EC18 3C0F8004 */ lui $t7, %hi(prop_door_related) +/* 08374C 7F04EC1C 25EFA1DC */ addiu $t7, %lo(prop_door_related) # addiu $t7, $t7, -0x5e24 +/* 083750 7F04EC20 8F190008 */ lw $t9, 8($t8) +/* 083754 7F04EC24 8E080004 */ lw $t0, 4($s0) +/* 083758 7F04EC28 00001825 */ move $v1, $zero +/* 08375C 7F04EC2C 8F2B0004 */ lw $t3, 4($t9) +/* 083760 7F04EC30 55EB0003 */ bnel $t7, $t3, .L7F04EC40 +/* 083764 7F04EC34 A3A30057 */ sb $v1, 0x57($sp) +/* 083768 7F04EC38 24030001 */ li $v1, 1 +/* 08376C 7F04EC3C A3A30057 */ sb $v1, 0x57($sp) +.L7F04EC40: +/* 083770 7F04EC40 0C002914 */ jal get_random_value +/* 083774 7F04EC44 AFA80058 */ sw $t0, 0x58($sp) +/* 083778 7F04EC48 24010003 */ li $at, 3 +/* 08377C 7F04EC4C 0041001B */ divu $zero, $v0, $at +/* 083780 7F04EC50 8FA80058 */ lw $t0, 0x58($sp) +/* 083784 7F04EC54 00003010 */ mfhi $a2 +/* 083788 7F04EC58 83A30057 */ lb $v1, 0x57($sp) +/* 08378C 7F04EC5C AFA80010 */ sw $t0, 0x10($sp) +/* 083790 7F04EC60 8E0E0040 */ lw $t6, 0x40($s0) +/* 083794 7F04EC64 24C60011 */ addiu $a2, $a2, 0x11 +/* 083798 7F04EC68 00066400 */ sll $t4, $a2, 0x10 +/* 08379C 7F04EC6C 000C3403 */ sra $a2, $t4, 0x10 +/* 0837A0 7F04EC70 26040010 */ addiu $a0, $s0, 0x10 +/* 0837A4 7F04EC74 2605001C */ addiu $a1, $s0, 0x1c +/* 0837A8 7F04EC78 24070001 */ li $a3, 1 +/* 0837AC 7F04EC7C AFA30018 */ sw $v1, 0x18($sp) +/* 0837B0 7F04EC80 0FC28423 */ jal sub_GAME_7F0A108C +/* 0837B4 7F04EC84 AFAE0014 */ sw $t6, 0x14($sp) +/* 0837B8 7F04EC88 8FB80070 */ lw $t8, 0x70($sp) +/* 0837BC 7F04EC8C 1000003D */ b .L7F04ED84 +/* 0837C0 7F04EC90 8F040018 */ lw $a0, 0x18($t8) +/* 0837C4 7F04EC94 8602003A */ lh $v0, 0x3a($s0) +.L7F04EC98: +/* 0837C8 7F04EC98 00004825 */ move $t1, $zero +/* 0837CC 7F04EC9C 3C0F8005 */ lui $t7, %hi(image_entries) +/* 0837D0 7F04ECA0 04410004 */ bgez $v0, .L7F04ECB4 +/* 0837D4 7F04ECA4 0002C8C0 */ sll $t9, $v0, 3 +/* 0837D8 7F04ECA8 3C088005 */ lui $t0, %hi(D_8004E86C) +/* 0837DC 7F04ECAC 10000008 */ b .L7F04ECD0 +/* 0837E0 7F04ECB0 8D08E86C */ lw $t0, %lo(D_8004E86C)($t0) +.L7F04ECB4: +/* 0837E4 7F04ECB4 01F97821 */ addu $t7, $t7, $t9 +/* 0837E8 7F04ECB8 91EF9300 */ lbu $t7, %lo(image_entries)($t7) +/* 0837EC 7F04ECBC 3C088005 */ lui $t0, %hi(D_8004E86C) +/* 0837F0 7F04ECC0 31EB000F */ andi $t3, $t7, 0xf +/* 0837F4 7F04ECC4 000B6080 */ sll $t4, $t3, 2 +/* 0837F8 7F04ECC8 010C4021 */ addu $t0, $t0, $t4 +/* 0837FC 7F04ECCC 8D08E86C */ lw $t0, %lo(D_8004E86C)($t0) +.L7F04ECD0: +/* 083800 7F04ECD0 AFA80050 */ sw $t0, 0x50($sp) +/* 083804 7F04ECD4 0C002914 */ jal get_random_value +/* 083808 7F04ECD8 A3A9004B */ sb $t1, 0x4b($sp) +/* 08380C 7F04ECDC 8FA80050 */ lw $t0, 0x50($sp) +/* 083810 7F04ECE0 8E2E0014 */ lw $t6, 0x14($s1) +/* 083814 7F04ECE4 3C188004 */ lui $t8, %hi(prop_door_related) +/* 083818 7F04ECE8 850D000A */ lh $t5, 0xa($t0) +/* 08381C 7F04ECEC 8DC30008 */ lw $v1, 8($t6) +/* 083820 7F04ECF0 2718A1DC */ addiu $t8, %lo(prop_door_related) # addiu $t8, $t8, -0x5e24 +/* 083824 7F04ECF4 004D001B */ divu $zero, $v0, $t5 +/* 083828 7F04ECF8 8C640004 */ lw $a0, 4($v1) +/* 08382C 7F04ECFC 00005010 */ mfhi $t2 +/* 083830 7F04ED00 83A9004B */ lb $t1, 0x4b($sp) +/* 083834 7F04ED04 15A00002 */ bnez $t5, .L7F04ED10 +/* 083838 7F04ED08 00000000 */ nop +/* 08383C 7F04ED0C 0007000D */ break 7 +.L7F04ED10: +/* 083840 7F04ED10 2605001C */ addiu $a1, $s0, 0x1c +/* 083844 7F04ED14 17040005 */ bne $t8, $a0, .L7F04ED2C +/* 083848 7F04ED18 24070001 */ li $a3, 1 +/* 08384C 7F04ED1C 8C6F0008 */ lw $t7, 8($v1) +/* 083850 7F04ED20 8E190044 */ lw $t9, 0x44($s0) +/* 083854 7F04ED24 8DEB000C */ lw $t3, 0xc($t7) +/* 083858 7F04ED28 132B0009 */ beq $t9, $t3, .L7F04ED50 +.L7F04ED2C: +/* 08385C 7F04ED2C 3C0C8004 */ lui $t4, %hi(prop_cctv_related) +/* 083860 7F04ED30 258CA05C */ addiu $t4, %lo(prop_cctv_related) # addiu $t4, $t4, -0x5fa4 +/* 083864 7F04ED34 55840008 */ bnel $t4, $a0, .L7F04ED58 +/* 083868 7F04ED38 8D0F0004 */ lw $t7, 4($t0) +/* 08386C 7F04ED3C 8C6E0008 */ lw $t6, 8($v1) +/* 083870 7F04ED40 8E0D0044 */ lw $t5, 0x44($s0) +/* 083874 7F04ED44 8DD80004 */ lw $t8, 4($t6) +/* 083878 7F04ED48 55B80003 */ bnel $t5, $t8, .L7F04ED58 +/* 08387C 7F04ED4C 8D0F0004 */ lw $t7, 4($t0) +.L7F04ED50: +/* 083880 7F04ED50 24090001 */ li $t1, 1 +/* 083884 7F04ED54 8D0F0004 */ lw $t7, 4($t0) +.L7F04ED58: +/* 083888 7F04ED58 8E0B0004 */ lw $t3, 4($s0) +/* 08388C 7F04ED5C 26040010 */ addiu $a0, $s0, 0x10 +/* 083890 7F04ED60 01EAC821 */ addu $t9, $t7, $t2 +/* 083894 7F04ED64 93260000 */ lbu $a2, ($t9) +/* 083898 7F04ED68 AFAB0010 */ sw $t3, 0x10($sp) +/* 08389C 7F04ED6C 8E0C0040 */ lw $t4, 0x40($s0) +/* 0838A0 7F04ED70 AFA90018 */ sw $t1, 0x18($sp) +/* 0838A4 7F04ED74 0FC28423 */ jal sub_GAME_7F0A108C +/* 0838A8 7F04ED78 AFAC0014 */ sw $t4, 0x14($sp) +/* 0838AC 7F04ED7C 8FAE0070 */ lw $t6, 0x70($sp) +/* 0838B0 7F04ED80 8DC40018 */ lw $a0, 0x18($t6) +.L7F04ED84: +/* 0838B4 7F04ED84 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 0838B8 7F04ED88 00000000 */ nop +/* 0838BC 7F04ED8C 92220003 */ lbu $v0, 3($s1) +/* 0838C0 7F04ED90 2401000D */ li $at, 13 +/* 0838C4 7F04ED94 46000086 */ mov.s $f2, $f0 +/* 0838C8 7F04ED98 14410005 */ bne $v0, $at, .L7F04EDB0 +/* 0838CC 7F04ED9C 3C018003 */ lui $at, %hi(D_80030B24) +/* 0838D0 7F04EDA0 C4300B24 */ lwc1 $f16, %lo(D_80030B24)($at) +/* 0838D4 7F04EDA4 46100082 */ mul.s $f2, $f0, $f16 +/* 0838D8 7F04EDA8 1000001B */ b .L7F04EE18 +/* 0838DC 7F04EDAC 00000000 */ nop +.L7F04EDB0: +/* 0838E0 7F04EDB0 24010006 */ li $at, 6 +/* 0838E4 7F04EDB4 14410018 */ bne $v0, $at, .L7F04EE18 +/* 0838E8 7F04EDB8 00000000 */ nop +/* 0838EC 7F04EDBC 8E2D0014 */ lw $t5, 0x14($s1) +/* 0838F0 7F04EDC0 3C188004 */ lui $t8, %hi(prop_cctv_related) +/* 0838F4 7F04EDC4 2718A05C */ addiu $t8, %lo(prop_cctv_related) # addiu $t8, $t8, -0x5fa4 +/* 0838F8 7F04EDC8 8DA30008 */ lw $v1, 8($t5) +/* 0838FC 7F04EDCC 8C6F0004 */ lw $t7, 4($v1) +/* 083900 7F04EDD0 170F000D */ bne $t8, $t7, .L7F04EE08 +/* 083904 7F04EDD4 00000000 */ nop +/* 083908 7F04EDD8 8C6B0008 */ lw $t3, 8($v1) +/* 08390C 7F04EDDC 8E190044 */ lw $t9, 0x44($s0) +/* 083910 7F04EDE0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 083914 7F04EDE4 8D6C0004 */ lw $t4, 4($t3) +/* 083918 7F04EDE8 172C0007 */ bne $t9, $t4, .L7F04EE08 +/* 08391C 7F04EDEC 00000000 */ nop +/* 083920 7F04EDF0 44812000 */ mtc1 $at, $f4 +/* 083924 7F04EDF4 02202025 */ move $a0, $s1 +/* 083928 7F04EDF8 46041082 */ mul.s $f2, $f2, $f4 +/* 08392C 7F04EDFC 0FC13786 */ jal sub_GAME_7F04DE18 +/* 083930 7F04EE00 E7A20044 */ swc1 $f2, 0x44($sp) +/* 083934 7F04EE04 C7A20044 */ lwc1 $f2, 0x44($sp) +.L7F04EE08: +/* 083938 7F04EE08 3C018003 */ lui $at, %hi(D_80030B18) +/* 08393C 7F04EE0C C4280B18 */ lwc1 $f8, %lo(D_80030B18)($at) +/* 083940 7F04EE10 46081082 */ mul.s $f2, $f2, $f8 +/* 083944 7F04EE14 00000000 */ nop +.L7F04EE18: +/* 083948 7F04EE18 0FC26C54 */ jal get_cur_playernum +/* 08394C 7F04EE1C E7A20044 */ swc1 $f2, 0x44($sp) +/* 083950 7F04EE20 C7A20044 */ lwc1 $f2, 0x44($sp) +/* 083954 7F04EE24 8FAE0070 */ lw $t6, 0x70($sp) +/* 083958 7F04EE28 02202025 */ move $a0, $s1 +/* 08395C 7F04EE2C 44051000 */ mfc1 $a1, $f2 +/* 083960 7F04EE30 8DC70018 */ lw $a3, 0x18($t6) +/* 083964 7F04EE34 AFA20010 */ sw $v0, 0x10($sp) +/* 083968 7F04EE38 0FC13833 */ jal sub_GAME_7F04E0CC +/* 08396C 7F04EE3C 27A60060 */ addiu $a2, $sp, 0x60 +/* 083970 7F04EE40 8E380014 */ lw $t8, 0x14($s1) +/* 083974 7F04EE44 3C0D8004 */ lui $t5, %hi(prop_door_related) +/* 083978 7F04EE48 25ADA1DC */ addiu $t5, %lo(prop_door_related) # addiu $t5, $t5, -0x5e24 +/* 08397C 7F04EE4C 8F0F0008 */ lw $t7, 8($t8) +/* 083980 7F04EE50 8DEB0004 */ lw $t3, 4($t7) +/* 083984 7F04EE54 15AB000D */ bne $t5, $t3, .L7F04EE8C +/* 083988 7F04EE58 00000000 */ nop +/* 08398C 7F04EE5C 8E19004C */ lw $t9, 0x4c($s0) +/* 083990 7F04EE60 1720000A */ bnez $t9, .L7F04EE8C +/* 083994 7F04EE64 00000000 */ nop +/* 083998 7F04EE68 822C00BD */ lb $t4, 0xbd($s1) +/* 08399C 7F04EE6C 258E0001 */ addiu $t6, $t4, 1 +/* 0839A0 7F04EE70 A22E00BD */ sb $t6, 0xbd($s1) +/* 0839A4 7F04EE74 823800BD */ lb $t8, 0xbd($s1) +/* 0839A8 7F04EE78 2B010003 */ slti $at, $t8, 3 +/* 0839AC 7F04EE7C 14200003 */ bnez $at, .L7F04EE8C +/* 0839B0 7F04EE80 00000000 */ nop +/* 0839B4 7F04EE84 0FC1375A */ jal sub_GAME_7F04DD68 +/* 0839B8 7F04EE88 02202025 */ move $a0, $s1 +.L7F04EE8C: +/* 0839BC 7F04EE8C 0FC11080 */ jal sub_GAME_7F044200 +/* 0839C0 7F04EE90 8E040004 */ lw $a0, 4($s0) +/* 0839C4 7F04EE94 00008025 */ move $s0, $zero +/* 0839C8 7F04EE98 0FC13803 */ jal check_if_collectable_object +/* 0839CC 7F04EE9C 02202025 */ move $a0, $s1 +/* 0839D0 7F04EEA0 50400008 */ beql $v0, $zero, .L7F04EEC4 +/* 0839D4 7F04EEA4 8E2B0008 */ lw $t3, 8($s1) +/* 0839D8 7F04EEA8 8E2F0008 */ lw $t7, 8($s1) +/* 0839DC 7F04EEAC 000F6A40 */ sll $t5, $t7, 9 +/* 0839E0 7F04EEB0 05A20009 */ bltzl $t5, .L7F04EED8 +/* 0839E4 7F04EEB4 8E2C000C */ lw $t4, 0xc($s1) +/* 0839E8 7F04EEB8 10000006 */ b .L7F04EED4 +/* 0839EC 7F04EEBC 24100001 */ li $s0, 1 +/* 0839F0 7F04EEC0 8E2B0008 */ lw $t3, 8($s1) +.L7F04EEC4: +/* 0839F4 7F04EEC4 000BCA80 */ sll $t9, $t3, 0xa +/* 0839F8 7F04EEC8 07230003 */ bgezl $t9, .L7F04EED8 +/* 0839FC 7F04EECC 8E2C000C */ lw $t4, 0xc($s1) +/* 083A00 7F04EED0 24100001 */ li $s0, 1 +.L7F04EED4: +/* 083A04 7F04EED4 8E2C000C */ lw $t4, 0xc($s1) +.L7F04EED8: +/* 083A08 7F04EED8 318E0002 */ andi $t6, $t4, 2 +/* 083A0C 7F04EEDC 51C00007 */ beql $t6, $zero, .L7F04EEFC +/* 083A10 7F04EEE0 8E38000C */ lw $t8, 0xc($s1) +/* 083A14 7F04EEE4 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 083A18 7F04EEE8 02202025 */ move $a0, $s1 +/* 083A1C 7F04EEEC 54400003 */ bnezl $v0, .L7F04EEFC +/* 083A20 7F04EEF0 8E38000C */ lw $t8, 0xc($s1) +/* 083A24 7F04EEF4 24100001 */ li $s0, 1 +/* 083A28 7F04EEF8 8E38000C */ lw $t8, 0xc($s1) +.L7F04EEFC: +/* 083A2C 7F04EEFC 8FA50070 */ lw $a1, 0x70($sp) +/* 083A30 7F04EF00 330F0400 */ andi $t7, $t8, 0x400 +/* 083A34 7F04EF04 11E00002 */ beqz $t7, .L7F04EF10 +/* 083A38 7F04EF08 24A5000C */ addiu $a1, $a1, 0xc +/* 083A3C 7F04EF0C 00008025 */ move $s0, $zero +.L7F04EF10: +/* 083A40 7F04EF10 52000004 */ beql $s0, $zero, .L7F04EF24 +/* 083A44 7F04EF14 8FBF002C */ lw $ra, 0x2c($sp) +/* 083A48 7F04EF18 0FC12F37 */ jal sub_GAME_7F04BCDC +/* 083A4C 7F04EF1C 02202025 */ move $a0, $s1 +/* 083A50 7F04EF20 8FBF002C */ lw $ra, 0x2c($sp) +.L7F04EF24: +/* 083A54 7F04EF24 8FB00024 */ lw $s0, 0x24($sp) +/* 083A58 7F04EF28 8FB10028 */ lw $s1, 0x28($sp) +/* 083A5C 7F04EF2C 03E00008 */ jr $ra +/* 083A60 7F04EF30 27BD0070 */ addiu $sp, $sp, 0x70 +) +#endif + + + + + +#ifdef NONMATCHING +void check_if_object_has_not_been_destroyed(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_object_has_not_been_destroyed +/* 083A64 7F04EF34 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 083A68 7F04EF38 AFBF0014 */ sw $ra, 0x14($sp) +/* 083A6C 7F04EF3C 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 083A70 7F04EF40 00000000 */ nop +/* 083A74 7F04EF44 8FBF0014 */ lw $ra, 0x14($sp) +/* 083A78 7F04EF48 2C4E0001 */ sltiu $t6, $v0, 1 +/* 083A7C 7F04EF4C 01C01025 */ move $v0, $t6 +/* 083A80 7F04EF50 03E00008 */ jr $ra +/* 083A84 7F04EF54 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04EF58(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80052EF4 +.word 0x481c4000 /*160000.0*/ +glabel D_80052EF8 +.word 0x40060a92 /*2.0943952*/ +glabel D_80052EFC +.word 0x471c4000 /*40000.0*/ +glabel D_80052F00 +.word 0x3ec90fdb /*0.39269909*/ +glabel D_80052F04 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052F08 +.word 0x40490fdb /*3.1415927*/ +glabel D_80052F0C +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F04EF58 +/* 083A88 7F04EF58 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 083A8C 7F04EF5C AFBF001C */ sw $ra, 0x1c($sp) +/* 083A90 7F04EF60 8C850004 */ lw $a1, 4($a0) +/* 083A94 7F04EF64 24010005 */ li $at, 5 +/* 083A98 7F04EF68 00803025 */ move $a2, $a0 +/* 083A9C 7F04EF6C 90AE0003 */ lbu $t6, 3($a1) +/* 083AA0 7F04EF70 51C1000A */ beql $t6, $at, .L7F04EF9C +/* 083AA4 7F04EF74 90C90001 */ lbu $t1, 1($a2) +/* 083AA8 7F04EF78 8CAF0008 */ lw $t7, 8($a1) +/* 083AAC 7F04EF7C 000FC300 */ sll $t8, $t7, 0xc +/* 083AB0 7F04EF80 07020006 */ bltzl $t8, .L7F04EF9C +/* 083AB4 7F04EF84 90C90001 */ lbu $t1, 1($a2) +/* 083AB8 7F04EF88 8CB90064 */ lw $t9, 0x64($a1) +/* 083ABC 7F04EF8C 33280013 */ andi $t0, $t9, 0x13 +/* 083AC0 7F04EF90 51000073 */ beql $t0, $zero, .L7F04F160 +/* 083AC4 7F04EF94 8FBF001C */ lw $ra, 0x1c($sp) +/* 083AC8 7F04EF98 90C90001 */ lbu $t1, 1($a2) +.L7F04EF9C: +/* 083ACC 7F04EF9C 00A02025 */ move $a0, $a1 +/* 083AD0 7F04EFA0 312A0002 */ andi $t2, $t1, 2 +/* 083AD4 7F04EFA4 5140006E */ beql $t2, $zero, .L7F04F160 +/* 083AD8 7F04EFA8 8FBF001C */ lw $ra, 0x1c($sp) +/* 083ADC 7F04EFAC AFA50050 */ sw $a1, 0x50($sp) +/* 083AE0 7F04EFB0 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 083AE4 7F04EFB4 AFA60058 */ sw $a2, 0x58($sp) +/* 083AE8 7F04EFB8 10400068 */ beqz $v0, .L7F04F15C +/* 083AEC 7F04EFBC 8FA50050 */ lw $a1, 0x50($sp) +/* 083AF0 7F04EFC0 8CAB0008 */ lw $t3, 8($a1) +/* 083AF4 7F04EFC4 000B6180 */ sll $t4, $t3, 6 +/* 083AF8 7F04EFC8 05820065 */ bltzl $t4, .L7F04F160 +/* 083AFC 7F04EFCC 8FBF001C */ lw $ra, 0x1c($sp) +/* 083B00 7F04EFD0 0FC225E6 */ jal get_curplayer_positiondata +/* 083B04 7F04EFD4 AFA50050 */ sw $a1, 0x50($sp) +/* 083B08 7F04EFD8 8FA50050 */ lw $a1, 0x50($sp) +/* 083B0C 7F04EFDC C4460008 */ lwc1 $f6, 8($v0) +/* 083B10 7F04EFE0 C44A000C */ lwc1 $f10, 0xc($v0) +/* 083B14 7F04EFE4 C4A40058 */ lwc1 $f4, 0x58($a1) +/* 083B18 7F04EFE8 C4A8005C */ lwc1 $f8, 0x5c($a1) +/* 083B1C 7F04EFEC 8C4D0014 */ lw $t5, 0x14($v0) +/* 083B20 7F04EFF0 46062301 */ sub.s $f12, $f4, $f6 +/* 083B24 7F04EFF4 C4460010 */ lwc1 $f6, 0x10($v0) +/* 083B28 7F04EFF8 C4A40060 */ lwc1 $f4, 0x60($a1) +/* 083B2C 7F04EFFC 460A4401 */ sub.s $f16, $f8, $f10 +/* 083B30 7F04F000 460C6202 */ mul.s $f8, $f12, $f12 +/* 083B34 7F04F004 AFAD002C */ sw $t5, 0x2c($sp) +/* 083B38 7F04F008 46062381 */ sub.s $f14, $f4, $f6 +/* 083B3C 7F04F00C 90AE0003 */ lbu $t6, 3($a1) +/* 083B40 7F04F010 24010028 */ li $at, 40 +/* 083B44 7F04F014 00401825 */ move $v1, $v0 +/* 083B48 7F04F018 460E7282 */ mul.s $f10, $f14, $f14 +/* 083B4C 7F04F01C 55C1000D */ bnel $t6, $at, .L7F04F054 +/* 083B50 7F04F020 3C014348 */ lui $at, 0x4348 +/* 083B54 7F04F024 8CAF0008 */ lw $t7, 8($a1) +/* 083B58 7F04F028 3C0143C8 */ lui $at, 0x43c8 +/* 083B5C 7F04F02C 000FC080 */ sll $t8, $t7, 2 +/* 083B60 7F04F030 07030008 */ bgezl $t8, .L7F04F054 +/* 083B64 7F04F034 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 083B68 7F04F038 44810000 */ mtc1 $at, $f0 +/* 083B6C 7F04F03C 3C018005 */ lui $at, %hi(D_80052EF4) +/* 083B70 7F04F040 C4222EF4 */ lwc1 $f2, %lo(D_80052EF4)($at) +/* 083B74 7F04F044 3C018005 */ lui $at, %hi(D_80052EF8) +/* 083B78 7F04F048 10000007 */ b .L7F04F068 +/* 083B7C 7F04F04C C4322EF8 */ lwc1 $f18, %lo(D_80052EF8)($at) +/* 083B80 7F04F050 3C014348 */ li $at, 0x43480000 # 200.000000 +.L7F04F054: +/* 083B84 7F04F054 44810000 */ mtc1 $at, $f0 +/* 083B88 7F04F058 3C018005 */ lui $at, %hi(D_80052EFC) +/* 083B8C 7F04F05C C4222EFC */ lwc1 $f2, %lo(D_80052EFC)($at) +/* 083B90 7F04F060 3C018005 */ lui $at, %hi(D_80052F00) +/* 083B94 7F04F064 C4322F00 */ lwc1 $f18, %lo(D_80052F00)($at) +.L7F04F068: +/* 083B98 7F04F068 460A4100 */ add.s $f4, $f8, $f10 +/* 083B9C 7F04F06C 4602203C */ c.lt.s $f4, $f2 +/* 083BA0 7F04F070 00000000 */ nop +/* 083BA4 7F04F074 4502003A */ bc1fl .L7F04F160 +/* 083BA8 7F04F078 8FBF001C */ lw $ra, 0x1c($sp) +/* 083BAC 7F04F07C 4600803C */ c.lt.s $f16, $f0 +/* 083BB0 7F04F080 00000000 */ nop +/* 083BB4 7F04F084 45020036 */ bc1fl .L7F04F160 +/* 083BB8 7F04F088 8FBF001C */ lw $ra, 0x1c($sp) +/* 083BBC 7F04F08C 46000187 */ neg.s $f6, $f0 +/* 083BC0 7F04F090 4610303C */ c.lt.s $f6, $f16 +/* 083BC4 7F04F094 00000000 */ nop +/* 083BC8 7F04F098 45020031 */ bc1fl .L7F04F160 +/* 083BCC 7F04F09C 8FBF001C */ lw $ra, 0x1c($sp) +/* 083BD0 7F04F0A0 AFA3004C */ sw $v1, 0x4c($sp) +/* 083BD4 7F04F0A4 AFA50050 */ sw $a1, 0x50($sp) +/* 083BD8 7F04F0A8 0FC16A8C */ jal atan2f +/* 083BDC 7F04F0AC E7B20030 */ swc1 $f18, 0x30($sp) +/* 083BE0 7F04F0B0 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 083BE4 7F04F0B4 E7A00024 */ swc1 $f0, 0x24($sp) +/* 083BE8 7F04F0B8 C7AC0024 */ lwc1 $f12, 0x24($sp) +/* 083BEC 7F04F0BC 8FA3004C */ lw $v1, 0x4c($sp) +/* 083BF0 7F04F0C0 8FA50050 */ lw $a1, 0x50($sp) +/* 083BF4 7F04F0C4 4600603C */ c.lt.s $f12, $f0 +/* 083BF8 7F04F0C8 C7B20030 */ lwc1 $f18, 0x30($sp) +/* 083BFC 7F04F0CC 46006381 */ sub.s $f14, $f12, $f0 +/* 083C00 7F04F0D0 3C018005 */ lui $at, %hi(D_80052F04) +/* 083C04 7F04F0D4 45000003 */ bc1f .L7F04F0E4 +/* 083C08 7F04F0D8 46007086 */ mov.s $f2, $f14 +/* 083C0C 7F04F0DC C4282F04 */ lwc1 $f8, %lo(D_80052F04)($at) +/* 083C10 7F04F0E0 46087080 */ add.s $f2, $f14, $f8 +.L7F04F0E4: +/* 083C14 7F04F0E4 3C018005 */ lui $at, %hi(D_80052F08) +/* 083C18 7F04F0E8 C42A2F08 */ lwc1 $f10, %lo(D_80052F08)($at) +/* 083C1C 7F04F0EC 3C018005 */ lui $at, %hi(D_80052F0C) +/* 083C20 7F04F0F0 4602503C */ c.lt.s $f10, $f2 +/* 083C24 7F04F0F4 00000000 */ nop +/* 083C28 7F04F0F8 45020004 */ bc1fl .L7F04F10C +/* 083C2C 7F04F0FC 4612103E */ c.le.s $f2, $f18 +/* 083C30 7F04F100 C4242F0C */ lwc1 $f4, %lo(D_80052F0C)($at) +/* 083C34 7F04F104 46022081 */ sub.s $f2, $f4, $f2 +/* 083C38 7F04F108 4612103E */ c.le.s $f2, $f18 +.L7F04F10C: +/* 083C3C 7F04F10C 00000000 */ nop +/* 083C40 7F04F110 45020013 */ bc1fl .L7F04F160 +/* 083C44 7F04F114 8FBF001C */ lw $ra, 0x1c($sp) +/* 083C48 7F04F118 8CB9000C */ lw $t9, 0xc($a1) +/* 083C4C 7F04F11C 8FA20058 */ lw $v0, 0x58($sp) +/* 083C50 7F04F120 27A4002C */ addiu $a0, $sp, 0x2c +/* 083C54 7F04F124 33280800 */ andi $t0, $t9, 0x800 +/* 083C58 7F04F128 5100000A */ beql $t0, $zero, .L7F04F154 +/* 083C5C 7F04F12C 8FA90058 */ lw $t1, 0x58($sp) +/* 083C60 7F04F130 C4460010 */ lwc1 $f6, 0x10($v0) +/* 083C64 7F04F134 8C650008 */ lw $a1, 8($v1) +/* 083C68 7F04F138 8C660010 */ lw $a2, 0x10($v1) +/* 083C6C 7F04F13C 8C470008 */ lw $a3, 8($v0) +/* 083C70 7F04F140 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 083C74 7F04F144 E7A60010 */ swc1 $f6, 0x10($sp) +/* 083C78 7F04F148 50400005 */ beql $v0, $zero, .L7F04F160 +/* 083C7C 7F04F14C 8FBF001C */ lw $ra, 0x1c($sp) +/* 083C80 7F04F150 8FA90058 */ lw $t1, 0x58($sp) +.L7F04F154: +/* 083C84 7F04F154 3C018007 */ lui $at, %hi(dword_CODE_bss_80071DF8) +/* 083C88 7F04F158 AC291DF8 */ sw $t1, %lo(dword_CODE_bss_80071DF8)($at) +.L7F04F15C: +/* 083C8C 7F04F15C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04F160: +/* 083C90 7F04F160 27BD0058 */ addiu $sp, $sp, 0x58 +/* 083C94 7F04F164 24020001 */ li $v0, 1 +/* 083C98 7F04F168 03E00008 */ jr $ra +/* 083C9C 7F04F16C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04F170(void) { + +} +#else +GLOBAL_ASM( +.late_rodata + + +.text +glabel sub_GAME_7F04F170 +/* 083CA0 7F04F170 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 083CA4 7F04F174 AFBF001C */ sw $ra, 0x1c($sp) +/* 083CA8 7F04F178 AFB00018 */ sw $s0, 0x18($sp) +/* 083CAC 7F04F17C AFA40028 */ sw $a0, 0x28($sp) +/* 083CB0 7F04F180 8C900004 */ lw $s0, 4($a0) +/* 083CB4 7F04F184 AFA00020 */ sw $zero, 0x20($sp) +/* 083CB8 7F04F188 24010005 */ li $at, 5 +/* 083CBC 7F04F18C 920F0003 */ lbu $t7, 3($s0) +/* 083CC0 7F04F190 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 083CC4 7F04F194 240500BA */ li $a1, 186 +/* 083CC8 7F04F198 15E1000D */ bne $t7, $at, .L7F04F1D0 +/* 083CCC 7F04F19C 00003025 */ move $a2, $zero +/* 083CD0 7F04F1A0 0C002382 */ jal play_sfx_a1 +/* 083CD4 7F04F1A4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 083CD8 7F04F1A8 0FC15794 */ jal is_alarm_on +/* 083CDC 7F04F1AC 00000000 */ nop +/* 083CE0 7F04F1B0 10400005 */ beqz $v0, .L7F04F1C8 +/* 083CE4 7F04F1B4 00000000 */ nop +/* 083CE8 7F04F1B8 0FC1578B */ jal stop_alarm +/* 083CEC 7F04F1BC 00000000 */ nop +/* 083CF0 7F04F1C0 10000004 */ b .L7F04F1D4 +/* 083CF4 7F04F1C4 8E180008 */ lw $t8, 8($s0) +.L7F04F1C8: +/* 083CF8 7F04F1C8 0FC15772 */ jal start_alarm +/* 083CFC 7F04F1CC 00000000 */ nop +.L7F04F1D0: +/* 083D00 7F04F1D0 8E180008 */ lw $t8, 8($s0) +.L7F04F1D4: +/* 083D04 7F04F1D4 8FA40028 */ lw $a0, 0x28($sp) +/* 083D08 7F04F1D8 0018CB00 */ sll $t9, $t8, 0xc +/* 083D0C 7F04F1DC 07230005 */ bgezl $t9, .L7F04F1F4 +/* 083D10 7F04F1E0 8E080064 */ lw $t0, 0x64($s0) +/* 083D14 7F04F1E4 0FC14094 */ jal collect_or_interact_object +/* 083D18 7F04F1E8 24050001 */ li $a1, 1 +/* 083D1C 7F04F1EC AFA20020 */ sw $v0, 0x20($sp) +/* 083D20 7F04F1F0 8E080064 */ lw $t0, 0x64($s0) +.L7F04F1F4: +/* 083D24 7F04F1F4 35094000 */ ori $t1, $t0, 0x4000 +/* 083D28 7F04F1F8 AE090064 */ sw $t1, 0x64($s0) +/* 083D2C 7F04F1FC 0FC0F9A8 */ jal sub_GAME_7F03E6A0 +/* 083D30 7F04F200 8FA40028 */ lw $a0, 0x28($sp) +/* 083D34 7F04F204 8FBF001C */ lw $ra, 0x1c($sp) +/* 083D38 7F04F208 8FA20020 */ lw $v0, 0x20($sp) +/* 083D3C 7F04F20C 8FB00018 */ lw $s0, 0x18($sp) +/* 083D40 7F04F210 03E00008 */ jr $ra +/* 083D44 7F04F214 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04F218(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04F218 +/* 083D48 7F04F218 10A00005 */ beqz $a1, .L7F04F230 +/* 083D4C 7F04F21C 8C820004 */ lw $v0, 4($a0) +/* 083D50 7F04F220 904E0002 */ lbu $t6, 2($v0) +/* 083D54 7F04F224 31CFFFDF */ andi $t7, $t6, 0xffdf +/* 083D58 7F04F228 03E00008 */ jr $ra +/* 083D5C 7F04F22C A04F0002 */ sb $t7, 2($v0) + +.L7F04F230: +/* 083D60 7F04F230 90580002 */ lbu $t8, 2($v0) +/* 083D64 7F04F234 37190020 */ ori $t9, $t8, 0x20 +/* 083D68 7F04F238 A0590002 */ sb $t9, 2($v0) +/* 083D6C 7F04F23C 03E00008 */ jr $ra +/* 083D70 7F04F240 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F04F244(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F04F244 +/* 083D74 7F04F244 8C820004 */ lw $v0, 4($a0) +/* 083D78 7F04F248 8C430068 */ lw $v1, 0x68($v0) +/* 083D7C 7F04F24C 50600017 */ beql $v1, $zero, .L7F04F2AC +/* 083D80 7F04F250 ACC00000 */ sw $zero, ($a2) +/* 083D84 7F04F254 8C4E0008 */ lw $t6, 8($v0) +/* 083D88 7F04F258 31CF0100 */ andi $t7, $t6, 0x100 +/* 083D8C 7F04F25C 51E00013 */ beql $t7, $zero, .L7F04F2AC +/* 083D90 7F04F260 ACC00000 */ sw $zero, ($a2) +/* 083D94 7F04F264 90580002 */ lbu $t8, 2($v0) +/* 083D98 7F04F268 33190020 */ andi $t9, $t8, 0x20 +/* 083D9C 7F04F26C 5720000F */ bnezl $t9, .L7F04F2AC +/* 083DA0 7F04F270 ACC00000 */ sw $zero, ($a2) +/* 083DA4 7F04F274 8C680000 */ lw $t0, ($v1) +/* 083DA8 7F04F278 ACC80000 */ sw $t0, ($a2) +/* 083DAC 7F04F27C 8C490068 */ lw $t1, 0x68($v0) +/* 083DB0 7F04F280 252A0004 */ addiu $t2, $t1, 4 +/* 083DB4 7F04F284 ACAA0000 */ sw $t2, ($a1) +/* 083DB8 7F04F288 8C4B0068 */ lw $t3, 0x68($v0) +/* 083DBC 7F04F28C 8FAC0010 */ lw $t4, 0x10($sp) +/* 083DC0 7F04F290 C5640048 */ lwc1 $f4, 0x48($t3) +/* 083DC4 7F04F294 E5840000 */ swc1 $f4, ($t4) +/* 083DC8 7F04F298 8C4D0068 */ lw $t5, 0x68($v0) +/* 083DCC 7F04F29C C5A60044 */ lwc1 $f6, 0x44($t5) +/* 083DD0 7F04F2A0 03E00008 */ jr $ra +/* 083DD4 7F04F2A4 E4E60000 */ swc1 $f6, ($a3) + +/* 083DD8 7F04F2A8 ACC00000 */ sw $zero, ($a2) +.L7F04F2AC: +/* 083DDC 7F04F2AC 03E00008 */ jr $ra +/* 083DE0 7F04F2B0 00000000 */ nop +) +#endif + + + + + + +void append_text_picked_up(u8 *buffer,u8 * param2,u8 * param3) +{ + u8 *puVar1; + + puVar1 = get_textptr_for_textID(0xa400); + string_append_from_obseg_textbank(buffer,puVar1); + return; +} + + + + + +void append_text_ammo_amount_word(u8 *buffer,AMMOTYPES ammotype,u32 amount) + +{ + u8 *textfiletext; + + switch(ammotype) { + case AMMO_9MM: + case AMMO_9MM_2: + case AMMO_RIFLE: + case AMMO_PLASTIQUE: + textfiletext = get_textptr_for_textID(0xa401); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_SHOTGUN: + case AMMO_GRENADE: + case AMMO_ROCKETS: + case AMMO_REMOTEMINE: + case AMMO_PROXMINE: + case AMMO_TIMEDMINE: + case AMMO_KNIFE: + case AMMO_GRENADEROUND: + case AMMO_MAGNUM: + case AMMO_GGUN: + case AMMO_DARTS: + case AMMO_FLARE: + case AMMO_PITON: + case AMMO_DYNAMITE: + case AMMO_BUG: + case AMMO_MICRO_CAMERA: + if (amount == 1) { + textfiletext = get_textptr_for_textID(0xa402); + string_append_from_obseg_textbank(buffer,textfiletext); + } + else { + textfiletext = get_textptr_for_textID(0xa401); + string_append_from_obseg_textbank(buffer,textfiletext); + } + break; + case AMMO_EXPLOSIVEPEN: + case AMMO_BOMBCASE: + if (amount == 1) { + textfiletext = get_textptr_for_textID(0xa403); + string_append_from_obseg_textbank(buffer,textfiletext); + } + else { + textfiletext = get_textptr_for_textID(0xa401); + string_append_from_obseg_textbank(buffer,textfiletext); + } + break; + case AMMO_GEKEY: + case AMMO_TOKEN: + if (amount == 1) { + textfiletext = get_textptr_for_textID(0xa404); + string_append_from_obseg_textbank(buffer,textfiletext); + } + else { + textfiletext = get_textptr_for_textID(0xa401); + string_append_from_obseg_textbank(buffer,textfiletext); + } + } + return; +} + + + + + + + +#ifdef NONMATCHING// +void apped_text_ammotype(u8 *buffer,AMMOTYPES ammotype,u32 amount) +{ + u8 *textfiletext; + + if (((ammotype == AMMO_9MM) || (ammotype == AMMO_9MM_2)) || (ammotype == AMMO_RIFLE)) { + textfiletext = get_textptr_for_textID(0xa405); + string_append_from_obseg_textbank(buffer,textfiletext); + } + else { + if (ammotype == AMMO_KNIFE) { + textfiletext = get_textptr_for_textID(41999); + string_append_from_obseg_textbank(buffer,textfiletext); + if (amount == 1) { + textfiletext = get_textptr_for_textID(42000); + string_append_from_obseg_textbank(buffer,textfiletext); + } + else { + textfiletext = get_textptr_for_textID(0xa411); + string_append_from_obseg_textbank(buffer,textfiletext); + } + } + else { + if (ammotype == AMMO_DYNAMITE) { + if (amount == 1) { + textfiletext = get_textptr_for_textID(0xa419); + string_append_from_obseg_textbank(buffer,textfiletext); + } + else { + textfiletext = get_textptr_for_textID(0xa41a); + string_append_from_obseg_textbank(buffer,textfiletext); + } + textfiletext = get_textptr_for_textID(0xa418); + string_append_from_obseg_textbank(buffer,textfiletext); + } + else { + switch(ammotype) { + case AMMO_SHOTGUN: + textfiletext = get_textptr_for_textID(0xa406); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_GRENADE: + textfiletext = get_textptr_for_textID(0xa409); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_ROCKETS: + textfiletext = get_textptr_for_textID(0xa40b); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_REMOTEMINE: + textfiletext = get_textptr_for_textID(0xa40c); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_PROXMINE: + textfiletext = get_textptr_for_textID(0xa40d); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_TIMEDMINE: + textfiletext = get_textptr_for_textID(0xa40e); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_GRENADEROUND: + textfiletext = get_textptr_for_textID(0xa40a); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_MAGNUM: + textfiletext = get_textptr_for_textID(0xa407); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_GGUN: + textfiletext = get_textptr_for_textID(0xa408); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_DARTS: + textfiletext = get_textptr_for_textID(0xa413); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_EXPLOSIVEPEN: + textfiletext = get_textptr_for_textID(0xa414); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_BOMBCASE: + textfiletext = get_textptr_for_textID(0xa415); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_FLARE: + textfiletext = get_textptr_for_textID(0xa416); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_PITON: + textfiletext = get_textptr_for_textID(0xa417); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_BUG: + textfiletext = get_textptr_for_textID(0xa41b); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_MICRO_CAMERA: + textfiletext = get_textptr_for_textID(0xa41c); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_GEKEY: + textfiletext = get_textptr_for_textID(0xa41d); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_PLASTIQUE: + textfiletext = get_textptr_for_textID(0xa41f); + string_append_from_obseg_textbank(buffer,textfiletext); + break; + case AMMO_TOKEN: + textfiletext = get_textptr_for_textID(0xa41e); + string_append_from_obseg_textbank(buffer,textfiletext); + } + if (1 < (int)amount) { + textfiletext = get_textptr_for_textID(0xa412); + string_append_from_obseg_textbank(buffer,textfiletext); + } + } + } + } + return; +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80052F84*/ +glabel jpt_80052F84 +.word text_pickup_shotgun_cartridge +.word text_pickup_hand_grenade +.word text_pickup_rocket +.word text_pickup_remote_mine +.word text_pickup_proximity_mine +.word text_pickup_timed_mine +.word pluralize_multiples +.word text_pickup_grenade_round +.word text_pickup_magnum_bullet +.word text_pickup_golden_bullet +.word text_pickup_dart +.word text_pickup_explosive_pen +.word text_pickup_explosive_case +.word text_pickup_flare +.word text_pickup_piton +.word pluralize_multiples +.word text_pickup_bug +.word text_pickup_micro_camera +.word text_pickup_goldeneye_key +.word text_pickup_plastique +.word pluralize_multiples +.word pluralize_multiples +.word pluralize_multiples +.word pluralize_multiples +.word pluralize_multiples +.word text_pickup_token + + + +.text +glabel apped_text_ammotype +/* 083F3C 7F04F40C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 083F40 7F04F410 AFB00018 */ sw $s0, 0x18($sp) +/* 083F44 7F04F414 24020001 */ li $v0, 1 +/* 083F48 7F04F418 00808025 */ move $s0, $a0 +/* 083F4C 7F04F41C AFBF001C */ sw $ra, 0x1c($sp) +/* 083F50 7F04F420 10A20006 */ beq $a1, $v0, .L7F04F43C +/* 083F54 7F04F424 AFA60028 */ sw $a2, 0x28($sp) +/* 083F58 7F04F428 24010002 */ li $at, 2 +/* 083F5C 7F04F42C 10A10003 */ beq $a1, $at, .L7F04F43C +/* 083F60 7F04F430 24010003 */ li $at, 3 +/* 083F64 7F04F434 54A10009 */ bnel $a1, $at, .L7F04F45C +/* 083F68 7F04F438 2401000A */ li $at, 10 +.L7F04F43C: +/* 083F6C 7F04F43C 0FC30776 */ jal get_textptr_for_textID +/* 083F70 7F04F440 3404A405 */ li $a0, 41989 +/* 083F74 7F04F444 02002025 */ move $a0, $s0 +/* 083F78 7F04F448 0C0029FF */ jal string_append_from_obseg_textbank +/* 083F7C 7F04F44C 00402825 */ move $a1, $v0 +/* 083F80 7F04F450 100000C9 */ b .L7F04F778 +/* 083F84 7F04F454 8FBF001C */ lw $ra, 0x1c($sp) +/* 083F88 7F04F458 2401000A */ li $at, 10 +.L7F04F45C: +/* 083F8C 7F04F45C 54A10019 */ bnel $a1, $at, .L7F04F4C4 +/* 083F90 7F04F460 24010013 */ li $at, 19 +/* 083F94 7F04F464 0FC30776 */ jal get_textptr_for_textID +/* 083F98 7F04F468 3404A40F */ li $a0, 41999 +/* 083F9C 7F04F46C 02002025 */ move $a0, $s0 +/* 083FA0 7F04F470 0C0029FF */ jal string_append_from_obseg_textbank +/* 083FA4 7F04F474 00402825 */ move $a1, $v0 +/* 083FA8 7F04F478 8FAE0028 */ lw $t6, 0x28($sp) +/* 083FAC 7F04F47C 24010001 */ li $at, 1 +/* 083FB0 7F04F480 15C10008 */ bne $t6, $at, .L7F04F4A4 +/* 083FB4 7F04F484 00000000 */ nop +/* 083FB8 7F04F488 0FC30776 */ jal get_textptr_for_textID +/* 083FBC 7F04F48C 3404A410 */ li $a0, 42000 +/* 083FC0 7F04F490 02002025 */ move $a0, $s0 +/* 083FC4 7F04F494 0C0029FF */ jal string_append_from_obseg_textbank +/* 083FC8 7F04F498 00402825 */ move $a1, $v0 +/* 083FCC 7F04F49C 100000B6 */ b .L7F04F778 +/* 083FD0 7F04F4A0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04F4A4: +/* 083FD4 7F04F4A4 0FC30776 */ jal get_textptr_for_textID +/* 083FD8 7F04F4A8 3404A411 */ li $a0, 42001 +/* 083FDC 7F04F4AC 02002025 */ move $a0, $s0 +/* 083FE0 7F04F4B0 0C0029FF */ jal string_append_from_obseg_textbank +/* 083FE4 7F04F4B4 00402825 */ move $a1, $v0 +/* 083FE8 7F04F4B8 100000AF */ b .L7F04F778 +/* 083FEC 7F04F4BC 8FBF001C */ lw $ra, 0x1c($sp) +/* 083FF0 7F04F4C0 24010013 */ li $at, 19 +.L7F04F4C4: +/* 083FF4 7F04F4C4 14A10017 */ bne $a1, $at, .L7F04F524 +/* 083FF8 7F04F4C8 24B8FFFC */ addiu $t8, $a1, -4 +/* 083FFC 7F04F4CC 8FAF0028 */ lw $t7, 0x28($sp) +/* 084000 7F04F4D0 15E20008 */ bne $t7, $v0, .L7F04F4F4 +/* 084004 7F04F4D4 00000000 */ nop +/* 084008 7F04F4D8 0FC30776 */ jal get_textptr_for_textID +/* 08400C 7F04F4DC 3404A419 */ li $a0, 42009 +/* 084010 7F04F4E0 02002025 */ move $a0, $s0 +/* 084014 7F04F4E4 0C0029FF */ jal string_append_from_obseg_textbank +/* 084018 7F04F4E8 00402825 */ move $a1, $v0 +/* 08401C 7F04F4EC 10000006 */ b .L7F04F508 +/* 084020 7F04F4F0 00000000 */ nop +.L7F04F4F4: +/* 084024 7F04F4F4 0FC30776 */ jal get_textptr_for_textID +/* 084028 7F04F4F8 3404A41A */ li $a0, 42010 +/* 08402C 7F04F4FC 02002025 */ move $a0, $s0 +/* 084030 7F04F500 0C0029FF */ jal string_append_from_obseg_textbank +/* 084034 7F04F504 00402825 */ move $a1, $v0 +.L7F04F508: +/* 084038 7F04F508 0FC30776 */ jal get_textptr_for_textID +/* 08403C 7F04F50C 3404A418 */ li $a0, 42008 +/* 084040 7F04F510 02002025 */ move $a0, $s0 +/* 084044 7F04F514 0C0029FF */ jal string_append_from_obseg_textbank +/* 084048 7F04F518 00402825 */ move $a1, $v0 +/* 08404C 7F04F51C 10000096 */ b .L7F04F778 +/* 084050 7F04F520 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04F524: +/* 084054 7F04F524 2F01001A */ sltiu $at, $t8, 0x1a +/* 084058 7F04F528 10200089 */ beqz $at, .L7F04F750 +/* 08405C 7F04F52C 0018C080 */ sll $t8, $t8, 2 +/* 084060 7F04F530 3C018005 */ lui $at, %hi(jpt_80052F84) +/* 084064 7F04F534 00380821 */ addu $at, $at, $t8 +/* 084068 7F04F538 8C382F84 */ lw $t8, %lo(jpt_80052F84)($at) +/* 08406C 7F04F53C 03000008 */ jr $t8 +/* 084070 7F04F540 00000000 */ nop +text_pickup_shotgun_cartridge: +/* 084074 7F04F544 0FC30776 */ jal get_textptr_for_textID +/* 084078 7F04F548 3404A406 */ li $a0, 41990 +/* 08407C 7F04F54C 02002025 */ move $a0, $s0 +/* 084080 7F04F550 0C0029FF */ jal string_append_from_obseg_textbank +/* 084084 7F04F554 00402825 */ move $a1, $v0 +/* 084088 7F04F558 1000007E */ b .L7F04F754 +/* 08408C 7F04F55C 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_magnum_bullet: +/* 084090 7F04F560 0FC30776 */ jal get_textptr_for_textID +/* 084094 7F04F564 3404A407 */ li $a0, 41991 +/* 084098 7F04F568 02002025 */ move $a0, $s0 +/* 08409C 7F04F56C 0C0029FF */ jal string_append_from_obseg_textbank +/* 0840A0 7F04F570 00402825 */ move $a1, $v0 +/* 0840A4 7F04F574 10000077 */ b .L7F04F754 +/* 0840A8 7F04F578 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_golden_bullet: +/* 0840AC 7F04F57C 0FC30776 */ jal get_textptr_for_textID +/* 0840B0 7F04F580 3404A408 */ li $a0, 41992 +/* 0840B4 7F04F584 02002025 */ move $a0, $s0 +/* 0840B8 7F04F588 0C0029FF */ jal string_append_from_obseg_textbank +/* 0840BC 7F04F58C 00402825 */ move $a1, $v0 +/* 0840C0 7F04F590 10000070 */ b .L7F04F754 +/* 0840C4 7F04F594 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_hand_grenade: +/* 0840C8 7F04F598 0FC30776 */ jal get_textptr_for_textID +/* 0840CC 7F04F59C 3404A409 */ li $a0, 41993 +/* 0840D0 7F04F5A0 02002025 */ move $a0, $s0 +/* 0840D4 7F04F5A4 0C0029FF */ jal string_append_from_obseg_textbank +/* 0840D8 7F04F5A8 00402825 */ move $a1, $v0 +/* 0840DC 7F04F5AC 10000069 */ b .L7F04F754 +/* 0840E0 7F04F5B0 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_grenade_round: +/* 0840E4 7F04F5B4 0FC30776 */ jal get_textptr_for_textID +/* 0840E8 7F04F5B8 3404A40A */ li $a0, 41994 +/* 0840EC 7F04F5BC 02002025 */ move $a0, $s0 +/* 0840F0 7F04F5C0 0C0029FF */ jal string_append_from_obseg_textbank +/* 0840F4 7F04F5C4 00402825 */ move $a1, $v0 +/* 0840F8 7F04F5C8 10000062 */ b .L7F04F754 +/* 0840FC 7F04F5CC 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_rocket: +/* 084100 7F04F5D0 0FC30776 */ jal get_textptr_for_textID +/* 084104 7F04F5D4 3404A40B */ li $a0, 41995 +/* 084108 7F04F5D8 02002025 */ move $a0, $s0 +/* 08410C 7F04F5DC 0C0029FF */ jal string_append_from_obseg_textbank +/* 084110 7F04F5E0 00402825 */ move $a1, $v0 +/* 084114 7F04F5E4 1000005B */ b .L7F04F754 +/* 084118 7F04F5E8 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_remote_mine: +/* 08411C 7F04F5EC 0FC30776 */ jal get_textptr_for_textID +/* 084120 7F04F5F0 3404A40C */ li $a0, 41996 +/* 084124 7F04F5F4 02002025 */ move $a0, $s0 +/* 084128 7F04F5F8 0C0029FF */ jal string_append_from_obseg_textbank +/* 08412C 7F04F5FC 00402825 */ move $a1, $v0 +/* 084130 7F04F600 10000054 */ b .L7F04F754 +/* 084134 7F04F604 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_proximity_mine: +/* 084138 7F04F608 0FC30776 */ jal get_textptr_for_textID +/* 08413C 7F04F60C 3404A40D */ li $a0, 41997 +/* 084140 7F04F610 02002025 */ move $a0, $s0 +/* 084144 7F04F614 0C0029FF */ jal string_append_from_obseg_textbank +/* 084148 7F04F618 00402825 */ move $a1, $v0 +/* 08414C 7F04F61C 1000004D */ b .L7F04F754 +/* 084150 7F04F620 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_timed_mine: +/* 084154 7F04F624 0FC30776 */ jal get_textptr_for_textID +/* 084158 7F04F628 3404A40E */ li $a0, 41998 +/* 08415C 7F04F62C 02002025 */ move $a0, $s0 +/* 084160 7F04F630 0C0029FF */ jal string_append_from_obseg_textbank +/* 084164 7F04F634 00402825 */ move $a1, $v0 +/* 084168 7F04F638 10000046 */ b .L7F04F754 +/* 08416C 7F04F63C 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_dart: +/* 084170 7F04F640 0FC30776 */ jal get_textptr_for_textID +/* 084174 7F04F644 3404A413 */ li $a0, 42003 +/* 084178 7F04F648 02002025 */ move $a0, $s0 +/* 08417C 7F04F64C 0C0029FF */ jal string_append_from_obseg_textbank +/* 084180 7F04F650 00402825 */ move $a1, $v0 +/* 084184 7F04F654 1000003F */ b .L7F04F754 +/* 084188 7F04F658 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_explosive_pen: +/* 08418C 7F04F65C 0FC30776 */ jal get_textptr_for_textID +/* 084190 7F04F660 3404A414 */ li $a0, 42004 +/* 084194 7F04F664 02002025 */ move $a0, $s0 +/* 084198 7F04F668 0C0029FF */ jal string_append_from_obseg_textbank +/* 08419C 7F04F66C 00402825 */ move $a1, $v0 +/* 0841A0 7F04F670 10000038 */ b .L7F04F754 +/* 0841A4 7F04F674 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_explosive_case: +/* 0841A8 7F04F678 0FC30776 */ jal get_textptr_for_textID +/* 0841AC 7F04F67C 3404A415 */ li $a0, 42005 +/* 0841B0 7F04F680 02002025 */ move $a0, $s0 +/* 0841B4 7F04F684 0C0029FF */ jal string_append_from_obseg_textbank +/* 0841B8 7F04F688 00402825 */ move $a1, $v0 +/* 0841BC 7F04F68C 10000031 */ b .L7F04F754 +/* 0841C0 7F04F690 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_flare: +/* 0841C4 7F04F694 0FC30776 */ jal get_textptr_for_textID +/* 0841C8 7F04F698 3404A416 */ li $a0, 42006 +/* 0841CC 7F04F69C 02002025 */ move $a0, $s0 +/* 0841D0 7F04F6A0 0C0029FF */ jal string_append_from_obseg_textbank +/* 0841D4 7F04F6A4 00402825 */ move $a1, $v0 +/* 0841D8 7F04F6A8 1000002A */ b .L7F04F754 +/* 0841DC 7F04F6AC 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_piton: +/* 0841E0 7F04F6B0 0FC30776 */ jal get_textptr_for_textID +/* 0841E4 7F04F6B4 3404A417 */ li $a0, 42007 +/* 0841E8 7F04F6B8 02002025 */ move $a0, $s0 +/* 0841EC 7F04F6BC 0C0029FF */ jal string_append_from_obseg_textbank +/* 0841F0 7F04F6C0 00402825 */ move $a1, $v0 +/* 0841F4 7F04F6C4 10000023 */ b .L7F04F754 +/* 0841F8 7F04F6C8 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_bug: +/* 0841FC 7F04F6CC 0FC30776 */ jal get_textptr_for_textID +/* 084200 7F04F6D0 3404A41B */ li $a0, 42011 +/* 084204 7F04F6D4 02002025 */ move $a0, $s0 +/* 084208 7F04F6D8 0C0029FF */ jal string_append_from_obseg_textbank +/* 08420C 7F04F6DC 00402825 */ move $a1, $v0 +/* 084210 7F04F6E0 1000001C */ b .L7F04F754 +/* 084214 7F04F6E4 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_micro_camera: +/* 084218 7F04F6E8 0FC30776 */ jal get_textptr_for_textID +/* 08421C 7F04F6EC 3404A41C */ li $a0, 42012 +/* 084220 7F04F6F0 02002025 */ move $a0, $s0 +/* 084224 7F04F6F4 0C0029FF */ jal string_append_from_obseg_textbank +/* 084228 7F04F6F8 00402825 */ move $a1, $v0 +/* 08422C 7F04F6FC 10000015 */ b .L7F04F754 +/* 084230 7F04F700 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_goldeneye_key: +/* 084234 7F04F704 0FC30776 */ jal get_textptr_for_textID +/* 084238 7F04F708 3404A41D */ li $a0, 42013 +/* 08423C 7F04F70C 02002025 */ move $a0, $s0 +/* 084240 7F04F710 0C0029FF */ jal string_append_from_obseg_textbank +/* 084244 7F04F714 00402825 */ move $a1, $v0 +/* 084248 7F04F718 1000000E */ b .L7F04F754 +/* 08424C 7F04F71C 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_token: +/* 084250 7F04F720 0FC30776 */ jal get_textptr_for_textID +/* 084254 7F04F724 3404A41E */ li $a0, 42014 +/* 084258 7F04F728 02002025 */ move $a0, $s0 +/* 08425C 7F04F72C 0C0029FF */ jal string_append_from_obseg_textbank +/* 084260 7F04F730 00402825 */ move $a1, $v0 +/* 084264 7F04F734 10000007 */ b .L7F04F754 +/* 084268 7F04F738 8FB90028 */ lw $t9, 0x28($sp) +text_pickup_plastique: +/* 08426C 7F04F73C 0FC30776 */ jal get_textptr_for_textID +/* 084270 7F04F740 3404A41F */ li $a0, 42015 +/* 084274 7F04F744 02002025 */ move $a0, $s0 +/* 084278 7F04F748 0C0029FF */ jal string_append_from_obseg_textbank +/* 08427C 7F04F74C 00402825 */ move $a1, $v0 +pluralize_multiples: +.L7F04F750: +/* 084280 7F04F750 8FB90028 */ lw $t9, 0x28($sp) +.L7F04F754: +/* 084284 7F04F754 2B210002 */ slti $at, $t9, 2 +/* 084288 7F04F758 54200007 */ bnezl $at, .L7F04F778 +/* 08428C 7F04F75C 8FBF001C */ lw $ra, 0x1c($sp) +/* 084290 7F04F760 0FC30776 */ jal get_textptr_for_textID +/* 084294 7F04F764 3404A412 */ li $a0, 42002 +/* 084298 7F04F768 02002025 */ move $a0, $s0 +/* 08429C 7F04F76C 0C0029FF */ jal string_append_from_obseg_textbank +/* 0842A0 7F04F770 00402825 */ move $a1, $v0 +/* 0842A4 7F04F774 8FBF001C */ lw $ra, 0x1c($sp) +.L7F04F778: +/* 0842A8 7F04F778 8FB00018 */ lw $s0, 0x18($sp) +/* 0842AC 7F04F77C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0842B0 7F04F780 03E00008 */ jr $ra +/* 0842B4 7F04F784 00000000 */ nop +) +#endif + + + + + + +void set_sound_effect_for_ammo_collection(AMMOTYPES ammotype) + +{ + switch(ammotype) { + case AMMO_9MM: + case AMMO_9MM_2: + case AMMO_RIFLE: + case AMMO_SHOTGUN: + case AMMO_GRENADE: + case AMMO_ROCKETS: + case AMMO_GRENADEROUND: + case AMMO_MAGNUM: + case AMMO_GGUN: + case AMMO_DARTS: + case AMMO_EXPLOSIVEPEN: + case AMMO_FLARE: + case AMMO_PITON: + case AMMO_DYNAMITE: + case AMMO_GEKEY: + case AMMO_TOKEN: + play_sfx_a1(ptr_sfx_buf,0xea,0); + break; + case AMMO_REMOTEMINE: + case AMMO_PROXMINE: + case AMMO_TIMEDMINE: + case AMMO_BOMBCASE: + case AMMO_BUG: + case AMMO_MICRO_CAMERA: + case AMMO_PLASTIQUE: + play_sfx_a1(ptr_sfx_buf,0xeb,0); + break; + case AMMO_KNIFE: + play_sfx_a1(ptr_sfx_buf,0xe9,0); + } + return; +} + + + + + + +void set_sound_effect_for_weapontype_collection(ITEM_IDS weapontype) +{ + if ((weapontype == ITEM_KNIFE) || (weapontype == ITEM_THROWKNIFE)) { + play_sfx_a1(ptr_sfx_buf,0xe9,0); + } + else { + if (((((weapontype == ITEM_REMOTEMINE) || (weapontype == ITEM_PROXIMITYMINE)) || + (weapontype == ITEM_TIMEDMINE)) || + ((weapontype == ITEM_BOMBCASE || (weapontype == ITEM_BUG)))) || + ((weapontype == ITEM_MICROCAMERA || (weapontype == ITEM_PLASTIQUE)))) { + play_sfx_a1(ptr_sfx_buf,0xeb,0); + } + else { + if (((weapontype == ITEM_GRENADE) || (weapontype == ITEM_57)) || (weapontype == ITEM_56) + ) { + play_sfx_a1(ptr_sfx_buf,0xea,0); + } + else { + if (weapontype == ITEM_LASER) { + play_sfx_a1(ptr_sfx_buf,0xf2,0); + } + else { + play_sfx_a1(ptr_sfx_buf,0xe8,0); + } + } + } + } + return; +} + + + +//!FIXME, i need to be properly split from chrai.c +#ifdef NONMATCHING +extern char * D_800529D0; +extern char * D_800529D4; + +void prepare_ammo_type_collection_text(u8 *finaltext, AMMOTYPES ammotype, u32 quantity) +{ + *finaltext = 0; + if (j_text_trigger != 0) + { + apped_text_ammotype(finaltext,ammotype,quantity); + if (get_num_players() < 3) + { + append_text_picked_up(finaltext, ammotype, quantity); + } + string_append_from_obseg_textbank(finaltext, (char *)D_800529D0); + return; + } + if (get_num_players() < 3) + { + append_text_picked_up(finaltext, ammotype, quantity); + append_text_ammo_amount_word(finaltext, ammotype, quantity); + } + apped_text_ammotype(finaltext, ammotype, quantity); + string_append_from_obseg_textbank(finaltext, (char *)D_800529D4); +} +#else +GLOBAL_ASM( +.late_rodata + +.text +glabel prepare_ammo_type_collection_text +/* 084450 7F04F920 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 084454 7F04F924 AFBF0024 */ sw $ra, 0x24($sp) +/* 084458 7F04F928 AFB20020 */ sw $s2, 0x20($sp) +/* 08445C 7F04F92C AFB1001C */ sw $s1, 0x1c($sp) +/* 084460 7F04F930 AFB00018 */ sw $s0, 0x18($sp) +/* 084464 7F04F934 A0800000 */ sb $zero, ($a0) +/* 084468 7F04F938 3C0E8005 */ lui $t6, %hi(j_text_trigger) +/* 08446C 7F04F93C 8DCE84D0 */ lw $t6, %lo(j_text_trigger)($t6) +/* 084470 7F04F940 00808025 */ move $s0, $a0 +/* 084474 7F04F944 00A08825 */ move $s1, $a1 +/* 084478 7F04F948 11C00011 */ beqz $t6, .L7F04F990 +/* 08447C 7F04F94C 00C09025 */ move $s2, $a2 +/* 084480 7F04F950 0FC13D03 */ jal apped_text_ammotype +/* 084484 7F04F954 00000000 */ nop +/* 084488 7F04F958 0FC26919 */ jal get_num_players +/* 08448C 7F04F95C 00000000 */ nop +/* 084490 7F04F960 28410003 */ slti $at, $v0, 3 +/* 084494 7F04F964 10200004 */ beqz $at, .L7F04F978 +/* 084498 7F04F968 02002025 */ move $a0, $s0 +/* 08449C 7F04F96C 02202825 */ move $a1, $s1 +/* 0844A0 7F04F970 0FC13CAD */ jal append_text_picked_up +/* 0844A4 7F04F974 02403025 */ move $a2, $s2 +.L7F04F978: +/* 0844A8 7F04F978 3C058005 */ lui $a1, %hi(D_800529D0) +/* 0844AC 7F04F97C 24A529D0 */ addiu $a1, %lo(D_800529D0) # addiu $a1, $a1, 0x29d0 +/* 0844B0 7F04F980 0C0029FF */ jal string_append_from_obseg_textbank +/* 0844B4 7F04F984 02002025 */ move $a0, $s0 +/* 0844B8 7F04F988 10000016 */ b .L7F04F9E4 +/* 0844BC 7F04F98C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F04F990: +/* 0844C0 7F04F990 0FC26919 */ jal get_num_players +/* 0844C4 7F04F994 00000000 */ nop +/* 0844C8 7F04F998 28410003 */ slti $at, $v0, 3 +/* 0844CC 7F04F99C 10200008 */ beqz $at, .L7F04F9C0 +/* 0844D0 7F04F9A0 02002025 */ move $a0, $s0 +/* 0844D4 7F04F9A4 02202825 */ move $a1, $s1 +/* 0844D8 7F04F9A8 0FC13CAD */ jal append_text_picked_up +/* 0844DC 7F04F9AC 02403025 */ move $a2, $s2 +/* 0844E0 7F04F9B0 02002025 */ move $a0, $s0 +/* 0844E4 7F04F9B4 02202825 */ move $a1, $s1 +/* 0844E8 7F04F9B8 0FC13CBB */ jal append_text_ammo_amount_word +/* 0844EC 7F04F9BC 02403025 */ move $a2, $s2 +.L7F04F9C0: +/* 0844F0 7F04F9C0 02002025 */ move $a0, $s0 +/* 0844F4 7F04F9C4 02202825 */ move $a1, $s1 +/* 0844F8 7F04F9C8 0FC13D03 */ jal apped_text_ammotype +/* 0844FC 7F04F9CC 02403025 */ move $a2, $s2 +/* 084500 7F04F9D0 3C058005 */ lui $a1, %hi(D_800529D4) +/* 084504 7F04F9D4 24A529D4 */ addiu $a1, %lo(D_800529D4) # addiu $a1, $a1, 0x29d4 +/* 084508 7F04F9D8 0C0029FF */ jal string_append_from_obseg_textbank +/* 08450C 7F04F9DC 02002025 */ move $a0, $s0 +/* 084510 7F04F9E0 8FBF0024 */ lw $ra, 0x24($sp) +.L7F04F9E4: +/* 084514 7F04F9E4 8FB00018 */ lw $s0, 0x18($sp) +/* 084518 7F04F9E8 8FB1001C */ lw $s1, 0x1c($sp) +/* 08451C 7F04F9EC 8FB20020 */ lw $s2, 0x20($sp) +/* 084520 7F04F9F0 03E00008 */ jr $ra +/* 084524 7F04F9F4 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void display_text_when_ammo_collected(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata + + +.text +glabel display_text_when_ammo_collected +/* 084528 7F04F9F8 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 08452C 7F04F9FC AFA40080 */ sw $a0, 0x80($sp) +/* 084530 7F04FA00 3C0E8005 */ lui $t6, %hi(D_800529D8) +/* 084534 7F04FA04 27A4001C */ addiu $a0, $sp, 0x1c +/* 084538 7F04FA08 00A03025 */ move $a2, $a1 +/* 08453C 7F04FA0C 25CE29D8 */ addiu $t6, %lo(D_800529D8) # addiu $t6, $t6, 0x29d8 +/* 084540 7F04FA10 8FA50080 */ lw $a1, 0x80($sp) +/* 084544 7F04FA14 AFBF0014 */ sw $ra, 0x14($sp) +/* 084548 7F04FA18 25D90060 */ addiu $t9, $t6, 0x60 +/* 08454C 7F04FA1C 00804025 */ move $t0, $a0 +.L7F04FA20: +/* 084550 7F04FA20 8DC10000 */ lw $at, ($t6) +/* 084554 7F04FA24 25CE000C */ addiu $t6, $t6, 0xc +/* 084558 7F04FA28 2508000C */ addiu $t0, $t0, 0xc +/* 08455C 7F04FA2C AD01FFF4 */ sw $at, -0xc($t0) +/* 084560 7F04FA30 8DC1FFF8 */ lw $at, -8($t6) +/* 084564 7F04FA34 AD01FFF8 */ sw $at, -8($t0) +/* 084568 7F04FA38 8DC1FFFC */ lw $at, -4($t6) +/* 08456C 7F04FA3C 15D9FFF8 */ bne $t6, $t9, .L7F04FA20 +/* 084570 7F04FA40 AD01FFFC */ sw $at, -4($t0) +/* 084574 7F04FA44 8DC10000 */ lw $at, ($t6) +/* 084578 7F04FA48 0FC13E48 */ jal prepare_ammo_type_collection_text +/* 08457C 7F04FA4C AD010000 */ sw $at, ($t0) +/* 084580 7F04FA50 0FC228F2 */ jal display_string_in_lower_left_corner +/* 084584 7F04FA54 27A4001C */ addiu $a0, $sp, 0x1c +/* 084588 7F04FA58 8FBF0014 */ lw $ra, 0x14($sp) +/* 08458C 7F04FA5C 27BD0080 */ addiu $sp, $sp, 0x80 +/* 084590 7F04FA60 03E00008 */ jr $ra +/* 084594 7F04FA64 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata + + +.text +glabel display_text_when_ammo_collected +/* 084528 7F04F9F8 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 08452C 7F04F9FC AFA40080 */ sw $a0, 0x80($sp) +/* 084530 7F04FA00 3C0E8005 */ lui $t6, %hi(D_800529D8) +/* 084534 7F04FA04 27A4001C */ addiu $a0, $sp, 0x1c +/* 084538 7F04FA08 00A03025 */ move $a2, $a1 +/* 08453C 7F04FA0C 25CE29D8 */ addiu $t6, %lo(D_800529D8) # addiu $t6, $t6, 0x29d8 +/* 084540 7F04FA10 8FA50080 */ lw $a1, 0x80($sp) +/* 084544 7F04FA14 AFBF0014 */ sw $ra, 0x14($sp) +/* 084548 7F04FA18 25D90060 */ addiu $t9, $t6, 0x60 +/* 08454C 7F04FA1C 00804025 */ move $t0, $a0 +.L7F04FA20: +/* 084550 7F04FA20 8DC10000 */ lw $at, ($t6) +/* 084554 7F04FA24 25CE000C */ addiu $t6, $t6, 0xc +/* 084558 7F04FA28 2508000C */ addiu $t0, $t0, 0xc +/* 08455C 7F04FA2C AD01FFF4 */ sw $at, -0xc($t0) +/* 084560 7F04FA30 8DC1FFF8 */ lw $at, -8($t6) +/* 084564 7F04FA34 AD01FFF8 */ sw $at, -8($t0) +/* 084568 7F04FA38 8DC1FFFC */ lw $at, -4($t6) +/* 08456C 7F04FA3C 15D9FFF8 */ bne $t6, $t9, .L7F04FA20 +/* 084570 7F04FA40 AD01FFFC */ sw $at, -4($t0) +/* 084574 7F04FA44 8DC10000 */ lw $at, ($t6) +/* 084578 7F04FA48 0FC13E48 */ jal prepare_ammo_type_collection_text +/* 08457C 7F04FA4C AD010000 */ sw $at, ($t0) +/* 084580 7F04FA50 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 084584 7F04FA54 27A4001C */ addiu $a0, $sp, 0x1c +/* 084588 7F04FA58 8FBF0014 */ lw $ra, 0x14($sp) +/* 08458C 7F04FA5C 27BD0080 */ addiu $sp, $sp, 0x80 +/* 084590 7F04FA60 03E00008 */ jr $ra +/* 084594 7F04FA64 00000000 */ nop +) +#endif +#endif + + + + +void add_ammo_to_inventory(AMMOTYPES ammotype,int amount,int doplaysound,int dodisplaytext) +{ + int curammo; + int maxammo; + + if (0 < amount) { + curammo = check_cur_player_ammo_amount_in_inventory(ammotype); + maxammo = get_max_ammo_for_type(ammotype); + if (curammo < maxammo) { + curammo = check_cur_player_ammo_amount_in_inventory(ammotype); + give_cur_player_ammo(ammotype,curammo + amount); + #ifdef VERSION_JP + } + #endif + if (dodisplaytext != 0) { + display_text_when_ammo_collected(ammotype,amount); + } + if (doplaysound != 0) { + set_sound_effect_for_ammo_collection(ammotype); + } + if (ammotype == AMMO_GRENADE) { + add_item_to_inventory(ITEM_GRENADE); + } + else if (ammotype == AMMO_REMOTEMINE) { + add_item_to_inventory(ITEM_REMOTEMINE); + add_item_to_inventory(ITEM_TRIGGER); + } + else if (ammotype == AMMO_PROXMINE) { + add_item_to_inventory(ITEM_PROXIMITYMINE); + } + else if (ammotype == AMMO_TIMEDMINE) { + add_item_to_inventory(ITEM_TIMEDMINE); + } + else if (ammotype == AMMO_KNIFE) { + add_item_to_inventory(ITEM_THROWKNIFE); + } + else if (ammotype == AMMO_BOMBCASE) { + add_item_to_inventory(ITEM_BOMBCASE); + } + else if (ammotype == AMMO_BUG) { + add_item_to_inventory(ITEM_BUG); + } + else if (ammotype == AMMO_MICRO_CAMERA) { + add_item_to_inventory(ITEM_MICROCAMERA); + } + else if (ammotype == AMMO_GEKEY) { + add_item_to_inventory(ITEM_GOLDENEYEKEY); + } + else if (ammotype == AMMO_TOKEN) { + add_item_to_inventory(ITEM_TOKEN); + } + else if (ammotype == AMMO_PLASTIQUE) { + add_item_to_inventory(ITEM_PLASTIQUE); + } + #ifndef VERSION_JP + } + #endif + } +} + + + + +#ifdef NONMATCHING +void get_ammo_in_magazine(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80053060*/ +glabel ammo_collected_from_magazine +.word magazine_has_10_rounds_type1 +.word magazine_has_10_rounds_type2 +.word magazine_has_10_rounds_type3 +.word magazine_has_5_rounds_type4 +.word magazine_has_default_ammo_rounds +.word magazine_has_default_ammo_rounds +.word magazine_has_default_ammo_rounds +.word magazine_has_default_ammo_rounds +.word magazine_has_default_ammo_rounds +.word magazine_has_default_ammo_rounds +.word magazine_has_default_ammo_rounds +.word magazine_has_5_rounds_typeC +.word magazine_has_3_rounds_typeD +.word magazine_has_4_rounds_typeE + +.text +glabel get_ammo_in_magazine +/* 08476C 7F04FC3C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 084770 7F04FC40 AFBF0014 */ sw $ra, 0x14($sp) +/* 084774 7F04FC44 8C8E0080 */ lw $t6, 0x80($a0) +/* 084778 7F04FC48 24030001 */ li $v1, 1 +/* 08477C 7F04FC4C 25CFFFFF */ addiu $t7, $t6, -1 +/* 084780 7F04FC50 2DE1000E */ sltiu $at, $t7, 0xe +/* 084784 7F04FC54 10200013 */ beqz $at, .L7F04FCA4 +/* 084788 7F04FC58 000F7880 */ sll $t7, $t7, 2 +/* 08478C 7F04FC5C 3C018005 */ lui $at, %hi(ammo_collected_from_magazine) +/* 084790 7F04FC60 002F0821 */ addu $at, $at, $t7 +/* 084794 7F04FC64 8C2F3060 */ lw $t7, %lo(ammo_collected_from_magazine)($at) +/* 084798 7F04FC68 01E00008 */ jr $t7 +/* 08479C 7F04FC6C 00000000 */ nop +magazine_has_10_rounds_type1: +/* 0847A0 7F04FC70 1000000C */ b .L7F04FCA4 +/* 0847A4 7F04FC74 2403000A */ li $v1, 10 +magazine_has_10_rounds_type2: +/* 0847A8 7F04FC78 1000000A */ b .L7F04FCA4 +/* 0847AC 7F04FC7C 2403000A */ li $v1, 10 +magazine_has_10_rounds_type3: +/* 0847B0 7F04FC80 10000008 */ b .L7F04FCA4 +/* 0847B4 7F04FC84 2403000A */ li $v1, 10 +magazine_has_5_rounds_type4: +/* 0847B8 7F04FC88 10000006 */ b .L7F04FCA4 +/* 0847BC 7F04FC8C 24030005 */ li $v1, 5 +magazine_has_5_rounds_typeC: +/* 0847C0 7F04FC90 10000004 */ b .L7F04FCA4 +/* 0847C4 7F04FC94 24030005 */ li $v1, 5 +magazine_has_3_rounds_typeD: +/* 0847C8 7F04FC98 10000002 */ b .L7F04FCA4 +/* 0847CC 7F04FC9C 24030003 */ li $v1, 3 +magazine_has_4_rounds_typeE: +/* 0847D0 7F04FCA0 24030004 */ li $v1, 4 +magazine_has_default_ammo_rounds: +.L7F04FCA4: +/* 0847D4 7F04FCA4 28610002 */ slti $at, $v1, 2 +/* 0847D8 7F04FCA8 5420000F */ bnezl $at, .L7F04FCE8 +/* 0847DC 7F04FCAC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0847E0 7F04FCB0 0FC26919 */ jal get_num_players +/* 0847E4 7F04FCB4 AFA3001C */ sw $v1, 0x1c($sp) +/* 0847E8 7F04FCB8 24010001 */ li $at, 1 +/* 0847EC 7F04FCBC 14410009 */ bne $v0, $at, .L7F04FCE4 +/* 0847F0 7F04FCC0 8FA3001C */ lw $v1, 0x1c($sp) +/* 0847F4 7F04FCC4 44832000 */ mtc1 $v1, $f4 +/* 0847F8 7F04FCC8 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 0847FC 7F04FCCC C4280B28 */ lwc1 $f8, %lo(solo_ammo_multiplier)($at) +/* 084800 7F04FCD0 468021A0 */ cvt.s.w $f6, $f4 +/* 084804 7F04FCD4 46083282 */ mul.s $f10, $f6, $f8 +/* 084808 7F04FCD8 4600540D */ trunc.w.s $f16, $f10 +/* 08480C 7F04FCDC 44038000 */ mfc1 $v1, $f16 +/* 084810 7F04FCE0 00000000 */ nop +.L7F04FCE4: +/* 084814 7F04FCE4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F04FCE8: +/* 084818 7F04FCE8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 08481C 7F04FCEC 00601025 */ move $v0, $v1 +/* 084820 7F04FCF0 03E00008 */ jr $ra +/* 084824 7F04FCF4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void ammo_collected_from_weapon(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80053098*/ +glabel ammo_in_weapon +.word weapon_has_10_rounds_type1 +.word weapon_has_10_rounds_type2 +.word weapon_has_10_rounds_type3 +.word weapon_has_5_rounds_type4 +.word weapon_has_default_ammo +.word weapon_has_default_ammo +.word weapon_has_default_ammo +.word weapon_has_default_ammo +.word weapon_has_default_ammo +.word weapon_has_default_ammo +.word weapon_has_3_rounds_typeB +.word weapon_has_5_rounds_typeC +.word weapon_has_3_rounds_typeD +.word weapon_has_4_rounds_typeE + +.text +glabel ammo_collected_from_weapon +/* 084828 7F04FCF8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 08482C 7F04FCFC AFBF0014 */ sw $ra, 0x14($sp) +/* 084830 7F04FD00 AFA40020 */ sw $a0, 0x20($sp) +/* 084834 7F04FD04 0FC1A50B */ jal get_ammo_type_for_weapon +/* 084838 7F04FD08 80840080 */ lb $a0, 0x80($a0) +/* 08483C 7F04FD0C 8FAF0020 */ lw $t7, 0x20($sp) +/* 084840 7F04FD10 2448FFFF */ addiu $t0, $v0, -1 +/* 084844 7F04FD14 24030001 */ li $v1, 1 +/* 084848 7F04FD18 8DF80008 */ lw $t8, 8($t7) +/* 08484C 7F04FD1C 2D01000E */ sltiu $at, $t0, 0xe +/* 084850 7F04FD20 0018C840 */ sll $t9, $t8, 1 +/* 084854 7F04FD24 07210003 */ bgez $t9, .L7F04FD34 +/* 084858 7F04FD28 00000000 */ nop +/* 08485C 7F04FD2C 10000028 */ b .L7F04FDD0 +/* 084860 7F04FD30 00001025 */ move $v0, $zero +.L7F04FD34: +/* 084864 7F04FD34 10200015 */ beqz $at, .L7F04FD8C +/* 084868 7F04FD38 00084080 */ sll $t0, $t0, 2 +/* 08486C 7F04FD3C 3C018005 */ lui $at, %hi(ammo_in_weapon) +/* 084870 7F04FD40 00280821 */ addu $at, $at, $t0 +/* 084874 7F04FD44 8C283098 */ lw $t0, %lo(ammo_in_weapon)($at) +/* 084878 7F04FD48 01000008 */ jr $t0 +/* 08487C 7F04FD4C 00000000 */ nop +weapon_has_10_rounds_type1: +/* 084880 7F04FD50 1000000E */ b .L7F04FD8C +/* 084884 7F04FD54 2403000A */ li $v1, 10 +weapon_has_10_rounds_type2: +/* 084888 7F04FD58 1000000C */ b .L7F04FD8C +/* 08488C 7F04FD5C 2403000A */ li $v1, 10 +weapon_has_10_rounds_type3: +/* 084890 7F04FD60 1000000A */ b .L7F04FD8C +/* 084894 7F04FD64 2403000A */ li $v1, 10 +weapon_has_5_rounds_type4: +/* 084898 7F04FD68 10000008 */ b .L7F04FD8C +/* 08489C 7F04FD6C 24030005 */ li $v1, 5 +weapon_has_5_rounds_typeC: +/* 0848A0 7F04FD70 10000006 */ b .L7F04FD8C +/* 0848A4 7F04FD74 24030005 */ li $v1, 5 +weapon_has_3_rounds_typeD: +/* 0848A8 7F04FD78 10000004 */ b .L7F04FD8C +/* 0848AC 7F04FD7C 24030003 */ li $v1, 3 +weapon_has_4_rounds_typeE: +/* 0848B0 7F04FD80 10000002 */ b .L7F04FD8C +/* 0848B4 7F04FD84 24030004 */ li $v1, 4 +weapon_has_3_rounds_typeB: +/* 0848B8 7F04FD88 24030003 */ li $v1, 3 +weapon_has_default_ammo: +.L7F04FD8C: +/* 0848BC 7F04FD8C 28610002 */ slti $at, $v1, 2 +/* 0848C0 7F04FD90 5420000F */ bnezl $at, .L7F04FDD0 +/* 0848C4 7F04FD94 00601025 */ move $v0, $v1 +/* 0848C8 7F04FD98 0FC26919 */ jal get_num_players +/* 0848CC 7F04FD9C AFA30018 */ sw $v1, 0x18($sp) +/* 0848D0 7F04FDA0 24010001 */ li $at, 1 +/* 0848D4 7F04FDA4 14410009 */ bne $v0, $at, .L7F04FDCC +/* 0848D8 7F04FDA8 8FA30018 */ lw $v1, 0x18($sp) +/* 0848DC 7F04FDAC 44832000 */ mtc1 $v1, $f4 +/* 0848E0 7F04FDB0 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 0848E4 7F04FDB4 C4280B28 */ lwc1 $f8, %lo(solo_ammo_multiplier)($at) +/* 0848E8 7F04FDB8 468021A0 */ cvt.s.w $f6, $f4 +/* 0848EC 7F04FDBC 46083282 */ mul.s $f10, $f6, $f8 +/* 0848F0 7F04FDC0 4600540D */ trunc.w.s $f16, $f10 +/* 0848F4 7F04FDC4 44038000 */ mfc1 $v1, $f16 +/* 0848F8 7F04FDC8 00000000 */ nop +.L7F04FDCC: +/* 0848FC 7F04FDCC 00601025 */ move $v0, $v1 +.L7F04FDD0: +/* 084900 7F04FDD0 8FBF0014 */ lw $ra, 0x14($sp) +/* 084904 7F04FDD4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 084908 7F04FDD8 03E00008 */ jr $ra +/* 08490C 7F04FDDC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void generate_language_specific_text_for_weapon(char *finalstring,ITEM_IDS itemtype) +{ + bool morethan2players; + u32 numplayers; + AMMOTYPES ammotype; + char *textfiletext; + size_t strlen; + + morethan2players = false; + if (j_text_trigger == 0) { + numplayers = get_num_players(); + if ((int)numplayers < 3) { + textfiletext = get_textptr_for_textID(0xa400); + textpointer_load_parse_something(finalstring,textfiletext); + } + } + else { + textpointer_load_parse_something(finalstring,""); + numplayers = get_num_players(); + if (2 < (int)numplayers) { + morethan2players = true; + } + } + switch(itemtype) { + case ITEM_KNIFE: + textfiletext = get_textptr_for_textID(0xa420); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_THROWKNIFE: + case ITEM_GRENADE: + case ITEM_TIMEDMINE: + case ITEM_PROXIMITYMINE: + case ITEM_REMOTEMINE: + case ITEM_BOMBCASE: + case ITEM_PLASTIQUE: + case ITEM_BUG: + case ITEM_MICROCAMERA: + case ITEM_GOLDENEYEKEY: + case ITEM_56: + case ITEM_57: + case ITEM_TOKEN: + ammotype = get_ammo_type_for_weapon(itemtype); + prepare_ammo_type_collection_text((u8 *)finalstring,ammotype,1); + return; + case ITEM_WPPK: + textfiletext = get_textptr_for_textID(0xa421); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_WPPKSIL: + textfiletext = get_textptr_for_textID(0xa422); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_TT33: + textfiletext = get_textptr_for_textID(0xa423); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_SKORPION: + textfiletext = get_textptr_for_textID(0xa424); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_AK47: + textfiletext = get_textptr_for_textID(0xa425); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_UZI: + textfiletext = get_textptr_for_textID(0xa426); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_MP5K: + textfiletext = get_textptr_for_textID(0xa427); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_MP5KSIL: + textfiletext = get_textptr_for_textID(0xa428); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_SPECTRE: + textfiletext = get_textptr_for_textID(0xa429); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_M16: + textfiletext = get_textptr_for_textID(0xa42a); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_FNP90: + textfiletext = get_textptr_for_textID(0xa42b); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_SHOTGUN: + textfiletext = get_textptr_for_textID(0xa42c); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_AUTOSHOT: + textfiletext = get_textptr_for_textID(0xa42d); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_SNIPERRIFLE: + textfiletext = get_textptr_for_textID(0xa42e); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_RUGER: + textfiletext = get_textptr_for_textID(0xa431); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_GOLDENGUN: + textfiletext = get_textptr_for_textID(0xa432); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_SILVERWPPK: + textfiletext = get_textptr_for_textID(0xa436); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_GOLDWPPK: + textfiletext = get_textptr_for_textID(0xa437); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_LASER: + textfiletext = get_textptr_for_textID(0xa433); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + default: + textfiletext = get_textptr_for_textID(0xa43b); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_GRENADELAUNCH: + textfiletext = get_textptr_for_textID(0xa42f); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_ROCKETLAUNCH: + textfiletext = get_textptr_for_textID(0xa430); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_FLAREPISTOL: + textfiletext = get_textptr_for_textID(0xa434); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_PITONGUN: + textfiletext = get_textptr_for_textID(0xa435); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_KEYCARD: + textfiletext = get_textptr_for_textID(0xa438); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_KEYYALE: + textfiletext = get_textptr_for_textID(0xa439); + string_append_from_obseg_textbank(finalstring,textfiletext); + break; + case ITEM_KEYBOLT: + textfiletext = get_textptr_for_textID(0xa43a); + string_append_from_obseg_textbank(finalstring,textfiletext); + } + if ((j_text_trigger != 0) && (!morethan2players)) { + strlen = strlen(finalstring); + if (finalstring[strlen - 1] == '\n') { + strlen = strlen(finalstring); + finalstring[strlen - 1] = '\0'; + } + textfiletext = get_textptr_for_textID(0xa400); + string_append_from_obseg_textbank(finalstring,textfiletext); + string_append_from_obseg_textbank(finalstring,"\n"); + } + return; +} +#else +GLOBAL_ASM( +.late_rodata +/*D:800530D0*/ +glabel jpt_800530D0 +.word weapon_collect_msg_a_hunting_knife +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_a_pp7 +.word weapon_collect_msg_a_silenced_pp7 +.word weapon_collect_msg_a_dd44 +.word weapon_collect_msg_a_klobb +.word weapon_collect_msg_a_kf7 +.word weapon_collect_msg_a_zmg +.word weapon_collect_msg_a_d5k +.word weapon_collect_msg_a_silenced_d5k +.word weapon_collect_msg_a_phantom +.word weapon_collect_msg_a_ar33 +.word weapon_collect_msg_a_rcp90 +.word weapon_collect_msg_a_shotgun +.word weapon_collect_msg_an_auto_shotgun +.word weapon_collect_msg_a_sniper +.word weapon_collect_msg_a_cougar_magnum +.word weapon_collect_msg_a_golden_gun +.word weapon_collect_msg_a_silver_pp7 +.word weapon_collect_msg_a_gold_pp7 +.word weapon_collect_msg_a_moonraker_laser +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_grenade_launcher +.word weapon_collect_msg_a_rocket_launcher +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_a_flare_pistol +.word weapon_collect_msg_a_piton_gun +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_keycard +.word weapon_collect_msg_a_yale_key +.word weapon_collect_msg_a_bolt_key +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_a_new_weapon +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_BLANK +.word weapon_collect_msg_BLANK + +.text +glabel generate_language_specific_text_for_weapon +/* 084910 7F04FDE0 3C0E8005 */ lui $t6, %hi(j_text_trigger) +/* 084914 7F04FDE4 8DCE84D0 */ lw $t6, %lo(j_text_trigger)($t6) +/* 084918 7F04FDE8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 08491C 7F04FDEC AFB00018 */ sw $s0, 0x18($sp) +/* 084920 7F04FDF0 00808025 */ move $s0, $a0 +/* 084924 7F04FDF4 AFBF001C */ sw $ra, 0x1c($sp) +/* 084928 7F04FDF8 AFA5002C */ sw $a1, 0x2c($sp) +/* 08492C 7F04FDFC 11C0000B */ beqz $t6, .L7F04FE2C +/* 084930 7F04FE00 AFA00024 */ sw $zero, 0x24($sp) +/* 084934 7F04FE04 3C058005 */ lui $a1, %hi(D_80052A3C) +/* 084938 7F04FE08 0C0029DC */ jal textpointer_load_parse_something +/* 08493C 7F04FE0C 24A52A3C */ addiu $a1, %lo(D_80052A3C) # addiu $a1, $a1, 0x2a3c +/* 084940 7F04FE10 0FC26919 */ jal get_num_players +/* 084944 7F04FE14 00000000 */ nop +/* 084948 7F04FE18 28410003 */ slti $at, $v0, 3 +/* 08494C 7F04FE1C 1420000D */ bnez $at, .L7F04FE54 +/* 084950 7F04FE20 240F0001 */ li $t7, 1 +/* 084954 7F04FE24 1000000B */ b .L7F04FE54 +/* 084958 7F04FE28 AFAF0024 */ sw $t7, 0x24($sp) +.L7F04FE2C: +/* 08495C 7F04FE2C 0FC26919 */ jal get_num_players +/* 084960 7F04FE30 00000000 */ nop +/* 084964 7F04FE34 28410003 */ slti $at, $v0, 3 +/* 084968 7F04FE38 50200007 */ beql $at, $zero, .L7F04FE58 +/* 08496C 7F04FE3C 8FB8002C */ lw $t8, 0x2c($sp) +/* 084970 7F04FE40 0FC30776 */ jal get_textptr_for_textID +/* 084974 7F04FE44 3404A400 */ li $a0, 41984 +/* 084978 7F04FE48 02002025 */ move $a0, $s0 +/* 08497C 7F04FE4C 0C0029DC */ jal textpointer_load_parse_something +/* 084980 7F04FE50 00402825 */ move $a1, $v0 +.L7F04FE54: +/* 084984 7F04FE54 8FB8002C */ lw $t8, 0x2c($sp) +.L7F04FE58: +/* 084988 7F04FE58 2719FFFE */ addiu $t9, $t8, -2 +/* 08498C 7F04FE5C 2F210057 */ sltiu $at, $t9, 0x57 +/* 084990 7F04FE60 102000CB */ beqz $at, .L7F050190 +/* 084994 7F04FE64 0019C880 */ sll $t9, $t9, 2 +/* 084998 7F04FE68 3C018005 */ lui $at, %hi(jpt_800530D0) +/* 08499C 7F04FE6C 00390821 */ addu $at, $at, $t9 +/* 0849A0 7F04FE70 8C3930D0 */ lw $t9, %lo(jpt_800530D0)($at) +/* 0849A4 7F04FE74 03200008 */ jr $t9 +/* 0849A8 7F04FE78 00000000 */ nop +weapon_collect_msg_BLANK: +/* 0849AC 7F04FE7C 0FC1A50B */ jal get_ammo_type_for_weapon +/* 0849B0 7F04FE80 8FA4002C */ lw $a0, 0x2c($sp) +/* 0849B4 7F04FE84 02002025 */ move $a0, $s0 +/* 0849B8 7F04FE88 00402825 */ move $a1, $v0 +/* 0849BC 7F04FE8C 0FC13E48 */ jal prepare_ammo_type_collection_text +/* 0849C0 7F04FE90 24060001 */ li $a2, 1 +/* 0849C4 7F04FE94 100000DF */ b .L7F050214 +/* 0849C8 7F04FE98 8FBF001C */ lw $ra, 0x1c($sp) +weapon_collect_msg_a_hunting_knife: +/* 0849CC 7F04FE9C 0FC30776 */ jal get_textptr_for_textID +/* 0849D0 7F04FEA0 3404A420 */ li $a0, 42016 +/* 0849D4 7F04FEA4 02002025 */ move $a0, $s0 +/* 0849D8 7F04FEA8 0C0029FF */ jal string_append_from_obseg_textbank +/* 0849DC 7F04FEAC 00402825 */ move $a1, $v0 +/* 0849E0 7F04FEB0 100000BC */ b .L7F0501A4 +/* 0849E4 7F04FEB4 00000000 */ nop +weapon_collect_msg_a_pp7: +/* 0849E8 7F04FEB8 0FC30776 */ jal get_textptr_for_textID +/* 0849EC 7F04FEBC 3404A421 */ li $a0, 42017 +/* 0849F0 7F04FEC0 02002025 */ move $a0, $s0 +/* 0849F4 7F04FEC4 0C0029FF */ jal string_append_from_obseg_textbank +/* 0849F8 7F04FEC8 00402825 */ move $a1, $v0 +/* 0849FC 7F04FECC 100000B5 */ b .L7F0501A4 +/* 084A00 7F04FED0 00000000 */ nop +weapon_collect_msg_a_silenced_pp7: +/* 084A04 7F04FED4 0FC30776 */ jal get_textptr_for_textID +/* 084A08 7F04FED8 3404A422 */ li $a0, 42018 +/* 084A0C 7F04FEDC 02002025 */ move $a0, $s0 +/* 084A10 7F04FEE0 0C0029FF */ jal string_append_from_obseg_textbank +/* 084A14 7F04FEE4 00402825 */ move $a1, $v0 +/* 084A18 7F04FEE8 100000AE */ b .L7F0501A4 +/* 084A1C 7F04FEEC 00000000 */ nop +weapon_collect_msg_a_dd44: +/* 084A20 7F04FEF0 0FC30776 */ jal get_textptr_for_textID +/* 084A24 7F04FEF4 3404A423 */ li $a0, 42019 +/* 084A28 7F04FEF8 02002025 */ move $a0, $s0 +/* 084A2C 7F04FEFC 0C0029FF */ jal string_append_from_obseg_textbank +/* 084A30 7F04FF00 00402825 */ move $a1, $v0 +/* 084A34 7F04FF04 100000A7 */ b .L7F0501A4 +/* 084A38 7F04FF08 00000000 */ nop +weapon_collect_msg_a_klobb: +/* 084A3C 7F04FF0C 0FC30776 */ jal get_textptr_for_textID +/* 084A40 7F04FF10 3404A424 */ li $a0, 42020 +/* 084A44 7F04FF14 02002025 */ move $a0, $s0 +/* 084A48 7F04FF18 0C0029FF */ jal string_append_from_obseg_textbank +/* 084A4C 7F04FF1C 00402825 */ move $a1, $v0 +/* 084A50 7F04FF20 100000A0 */ b .L7F0501A4 +/* 084A54 7F04FF24 00000000 */ nop +weapon_collect_msg_a_kf7: +/* 084A58 7F04FF28 0FC30776 */ jal get_textptr_for_textID +/* 084A5C 7F04FF2C 3404A425 */ li $a0, 42021 +/* 084A60 7F04FF30 02002025 */ move $a0, $s0 +/* 084A64 7F04FF34 0C0029FF */ jal string_append_from_obseg_textbank +/* 084A68 7F04FF38 00402825 */ move $a1, $v0 +/* 084A6C 7F04FF3C 10000099 */ b .L7F0501A4 +/* 084A70 7F04FF40 00000000 */ nop +weapon_collect_msg_a_zmg: +/* 084A74 7F04FF44 0FC30776 */ jal get_textptr_for_textID +/* 084A78 7F04FF48 3404A426 */ li $a0, 42022 +/* 084A7C 7F04FF4C 02002025 */ move $a0, $s0 +/* 084A80 7F04FF50 0C0029FF */ jal string_append_from_obseg_textbank +/* 084A84 7F04FF54 00402825 */ move $a1, $v0 +/* 084A88 7F04FF58 10000092 */ b .L7F0501A4 +/* 084A8C 7F04FF5C 00000000 */ nop +weapon_collect_msg_a_d5k: +/* 084A90 7F04FF60 0FC30776 */ jal get_textptr_for_textID +/* 084A94 7F04FF64 3404A427 */ li $a0, 42023 +/* 084A98 7F04FF68 02002025 */ move $a0, $s0 +/* 084A9C 7F04FF6C 0C0029FF */ jal string_append_from_obseg_textbank +/* 084AA0 7F04FF70 00402825 */ move $a1, $v0 +/* 084AA4 7F04FF74 1000008B */ b .L7F0501A4 +/* 084AA8 7F04FF78 00000000 */ nop +weapon_collect_msg_a_silenced_d5k: +/* 084AAC 7F04FF7C 0FC30776 */ jal get_textptr_for_textID +/* 084AB0 7F04FF80 3404A428 */ li $a0, 42024 +/* 084AB4 7F04FF84 02002025 */ move $a0, $s0 +/* 084AB8 7F04FF88 0C0029FF */ jal string_append_from_obseg_textbank +/* 084ABC 7F04FF8C 00402825 */ move $a1, $v0 +/* 084AC0 7F04FF90 10000084 */ b .L7F0501A4 +/* 084AC4 7F04FF94 00000000 */ nop +weapon_collect_msg_a_phantom: +/* 084AC8 7F04FF98 0FC30776 */ jal get_textptr_for_textID +/* 084ACC 7F04FF9C 3404A429 */ li $a0, 42025 +/* 084AD0 7F04FFA0 02002025 */ move $a0, $s0 +/* 084AD4 7F04FFA4 0C0029FF */ jal string_append_from_obseg_textbank +/* 084AD8 7F04FFA8 00402825 */ move $a1, $v0 +/* 084ADC 7F04FFAC 1000007D */ b .L7F0501A4 +/* 084AE0 7F04FFB0 00000000 */ nop +weapon_collect_msg_a_ar33: +/* 084AE4 7F04FFB4 0FC30776 */ jal get_textptr_for_textID +/* 084AE8 7F04FFB8 3404A42A */ li $a0, 42026 +/* 084AEC 7F04FFBC 02002025 */ move $a0, $s0 +/* 084AF0 7F04FFC0 0C0029FF */ jal string_append_from_obseg_textbank +/* 084AF4 7F04FFC4 00402825 */ move $a1, $v0 +/* 084AF8 7F04FFC8 10000076 */ b .L7F0501A4 +/* 084AFC 7F04FFCC 00000000 */ nop +weapon_collect_msg_a_rcp90: +/* 084B00 7F04FFD0 0FC30776 */ jal get_textptr_for_textID +/* 084B04 7F04FFD4 3404A42B */ li $a0, 42027 +/* 084B08 7F04FFD8 02002025 */ move $a0, $s0 +/* 084B0C 7F04FFDC 0C0029FF */ jal string_append_from_obseg_textbank +/* 084B10 7F04FFE0 00402825 */ move $a1, $v0 +/* 084B14 7F04FFE4 1000006F */ b .L7F0501A4 +/* 084B18 7F04FFE8 00000000 */ nop +weapon_collect_msg_a_shotgun: +/* 084B1C 7F04FFEC 0FC30776 */ jal get_textptr_for_textID +/* 084B20 7F04FFF0 3404A42C */ li $a0, 42028 +/* 084B24 7F04FFF4 02002025 */ move $a0, $s0 +/* 084B28 7F04FFF8 0C0029FF */ jal string_append_from_obseg_textbank +/* 084B2C 7F04FFFC 00402825 */ move $a1, $v0 +/* 084B30 7F050000 10000068 */ b .L7F0501A4 +/* 084B34 7F050004 00000000 */ nop +weapon_collect_msg_an_auto_shotgun: +/* 084B38 7F050008 0FC30776 */ jal get_textptr_for_textID +/* 084B3C 7F05000C 3404A42D */ li $a0, 42029 +/* 084B40 7F050010 02002025 */ move $a0, $s0 +/* 084B44 7F050014 0C0029FF */ jal string_append_from_obseg_textbank +/* 084B48 7F050018 00402825 */ move $a1, $v0 +/* 084B4C 7F05001C 10000061 */ b .L7F0501A4 +/* 084B50 7F050020 00000000 */ nop +weapon_collect_msg_a_sniper: +/* 084B54 7F050024 0FC30776 */ jal get_textptr_for_textID +/* 084B58 7F050028 3404A42E */ li $a0, 42030 +/* 084B5C 7F05002C 02002025 */ move $a0, $s0 +/* 084B60 7F050030 0C0029FF */ jal string_append_from_obseg_textbank +/* 084B64 7F050034 00402825 */ move $a1, $v0 +/* 084B68 7F050038 1000005A */ b .L7F0501A4 +/* 084B6C 7F05003C 00000000 */ nop +weapon_collect_msg_a_grenade_launcher: +/* 084B70 7F050040 0FC30776 */ jal get_textptr_for_textID +/* 084B74 7F050044 3404A42F */ li $a0, 42031 +/* 084B78 7F050048 02002025 */ move $a0, $s0 +/* 084B7C 7F05004C 0C0029FF */ jal string_append_from_obseg_textbank +/* 084B80 7F050050 00402825 */ move $a1, $v0 +/* 084B84 7F050054 10000053 */ b .L7F0501A4 +/* 084B88 7F050058 00000000 */ nop +weapon_collect_msg_a_rocket_launcher: +/* 084B8C 7F05005C 0FC30776 */ jal get_textptr_for_textID +/* 084B90 7F050060 3404A430 */ li $a0, 42032 +/* 084B94 7F050064 02002025 */ move $a0, $s0 +/* 084B98 7F050068 0C0029FF */ jal string_append_from_obseg_textbank +/* 084B9C 7F05006C 00402825 */ move $a1, $v0 +/* 084BA0 7F050070 1000004C */ b .L7F0501A4 +/* 084BA4 7F050074 00000000 */ nop +weapon_collect_msg_a_cougar_magnum: +/* 084BA8 7F050078 0FC30776 */ jal get_textptr_for_textID +/* 084BAC 7F05007C 3404A431 */ li $a0, 42033 +/* 084BB0 7F050080 02002025 */ move $a0, $s0 +/* 084BB4 7F050084 0C0029FF */ jal string_append_from_obseg_textbank +/* 084BB8 7F050088 00402825 */ move $a1, $v0 +/* 084BBC 7F05008C 10000045 */ b .L7F0501A4 +/* 084BC0 7F050090 00000000 */ nop +weapon_collect_msg_a_golden_gun: +/* 084BC4 7F050094 0FC30776 */ jal get_textptr_for_textID +/* 084BC8 7F050098 3404A432 */ li $a0, 42034 +/* 084BCC 7F05009C 02002025 */ move $a0, $s0 +/* 084BD0 7F0500A0 0C0029FF */ jal string_append_from_obseg_textbank +/* 084BD4 7F0500A4 00402825 */ move $a1, $v0 +/* 084BD8 7F0500A8 1000003E */ b .L7F0501A4 +/* 084BDC 7F0500AC 00000000 */ nop +weapon_collect_msg_a_moonraker_laser: +/* 084BE0 7F0500B0 0FC30776 */ jal get_textptr_for_textID +/* 084BE4 7F0500B4 3404A433 */ li $a0, 42035 +/* 084BE8 7F0500B8 02002025 */ move $a0, $s0 +/* 084BEC 7F0500BC 0C0029FF */ jal string_append_from_obseg_textbank +/* 084BF0 7F0500C0 00402825 */ move $a1, $v0 +/* 084BF4 7F0500C4 10000037 */ b .L7F0501A4 +/* 084BF8 7F0500C8 00000000 */ nop +weapon_collect_msg_a_flare_pistol: +/* 084BFC 7F0500CC 0FC30776 */ jal get_textptr_for_textID +/* 084C00 7F0500D0 3404A434 */ li $a0, 42036 +/* 084C04 7F0500D4 02002025 */ move $a0, $s0 +/* 084C08 7F0500D8 0C0029FF */ jal string_append_from_obseg_textbank +/* 084C0C 7F0500DC 00402825 */ move $a1, $v0 +/* 084C10 7F0500E0 10000030 */ b .L7F0501A4 +/* 084C14 7F0500E4 00000000 */ nop +weapon_collect_msg_a_piton_gun: +/* 084C18 7F0500E8 0FC30776 */ jal get_textptr_for_textID +/* 084C1C 7F0500EC 3404A435 */ li $a0, 42037 +/* 084C20 7F0500F0 02002025 */ move $a0, $s0 +/* 084C24 7F0500F4 0C0029FF */ jal string_append_from_obseg_textbank +/* 084C28 7F0500F8 00402825 */ move $a1, $v0 +/* 084C2C 7F0500FC 10000029 */ b .L7F0501A4 +/* 084C30 7F050100 00000000 */ nop +weapon_collect_msg_a_silver_pp7: +/* 084C34 7F050104 0FC30776 */ jal get_textptr_for_textID +/* 084C38 7F050108 3404A436 */ li $a0, 42038 +/* 084C3C 7F05010C 02002025 */ move $a0, $s0 +/* 084C40 7F050110 0C0029FF */ jal string_append_from_obseg_textbank +/* 084C44 7F050114 00402825 */ move $a1, $v0 +/* 084C48 7F050118 10000022 */ b .L7F0501A4 +/* 084C4C 7F05011C 00000000 */ nop +weapon_collect_msg_a_gold_pp7: +/* 084C50 7F050120 0FC30776 */ jal get_textptr_for_textID +/* 084C54 7F050124 3404A437 */ li $a0, 42039 +/* 084C58 7F050128 02002025 */ move $a0, $s0 +/* 084C5C 7F05012C 0C0029FF */ jal string_append_from_obseg_textbank +/* 084C60 7F050130 00402825 */ move $a1, $v0 +/* 084C64 7F050134 1000001B */ b .L7F0501A4 +/* 084C68 7F050138 00000000 */ nop +weapon_collect_msg_a_keycard: +/* 084C6C 7F05013C 0FC30776 */ jal get_textptr_for_textID +/* 084C70 7F050140 3404A438 */ li $a0, 42040 +/* 084C74 7F050144 02002025 */ move $a0, $s0 +/* 084C78 7F050148 0C0029FF */ jal string_append_from_obseg_textbank +/* 084C7C 7F05014C 00402825 */ move $a1, $v0 +/* 084C80 7F050150 10000014 */ b .L7F0501A4 +/* 084C84 7F050154 00000000 */ nop +weapon_collect_msg_a_yale_key: +/* 084C88 7F050158 0FC30776 */ jal get_textptr_for_textID +/* 084C8C 7F05015C 3404A439 */ li $a0, 42041 +/* 084C90 7F050160 02002025 */ move $a0, $s0 +/* 084C94 7F050164 0C0029FF */ jal string_append_from_obseg_textbank +/* 084C98 7F050168 00402825 */ move $a1, $v0 +/* 084C9C 7F05016C 1000000D */ b .L7F0501A4 +/* 084CA0 7F050170 00000000 */ nop +weapon_collect_msg_a_bolt_key: +/* 084CA4 7F050174 0FC30776 */ jal get_textptr_for_textID +/* 084CA8 7F050178 3404A43A */ li $a0, 42042 +/* 084CAC 7F05017C 02002025 */ move $a0, $s0 +/* 084CB0 7F050180 0C0029FF */ jal string_append_from_obseg_textbank +/* 084CB4 7F050184 00402825 */ move $a1, $v0 +/* 084CB8 7F050188 10000006 */ b .L7F0501A4 +/* 084CBC 7F05018C 00000000 */ nop +weapon_collect_msg_a_new_weapon: +.L7F050190: +/* 084CC0 7F050190 0FC30776 */ jal get_textptr_for_textID +/* 084CC4 7F050194 3404A43B */ li $a0, 42043 +/* 084CC8 7F050198 02002025 */ move $a0, $s0 +/* 084CCC 7F05019C 0C0029FF */ jal string_append_from_obseg_textbank +/* 084CD0 7F0501A0 00402825 */ move $a1, $v0 +.L7F0501A4: +/* 084CD4 7F0501A4 3C088005 */ lui $t0, %hi(j_text_trigger) +/* 084CD8 7F0501A8 8D0884D0 */ lw $t0, %lo(j_text_trigger)($t0) +/* 084CDC 7F0501AC 8FA90024 */ lw $t1, 0x24($sp) +/* 084CE0 7F0501B0 51000018 */ beql $t0, $zero, .L7F050214 +/* 084CE4 7F0501B4 8FBF001C */ lw $ra, 0x1c($sp) +/* 084CE8 7F0501B8 55200016 */ bnezl $t1, .L7F050214 +/* 084CEC 7F0501BC 8FBF001C */ lw $ra, 0x1c($sp) +/* 084CF0 7F0501C0 0C004E1F */ jal strlen +/* 084CF4 7F0501C4 02002025 */ move $a0, $s0 +/* 084CF8 7F0501C8 00505021 */ addu $t2, $v0, $s0 +/* 084CFC 7F0501CC 914BFFFF */ lbu $t3, -1($t2) +/* 084D00 7F0501D0 2401000A */ li $at, 10 +/* 084D04 7F0501D4 15610005 */ bne $t3, $at, .L7F0501EC +/* 084D08 7F0501D8 00000000 */ nop +/* 084D0C 7F0501DC 0C004E1F */ jal strlen +/* 084D10 7F0501E0 02002025 */ move $a0, $s0 +/* 084D14 7F0501E4 02026021 */ addu $t4, $s0, $v0 +/* 084D18 7F0501E8 A180FFFF */ sb $zero, -1($t4) +.L7F0501EC: +/* 084D1C 7F0501EC 0FC30776 */ jal get_textptr_for_textID +/* 084D20 7F0501F0 3404A400 */ li $a0, 41984 +/* 084D24 7F0501F4 02002025 */ move $a0, $s0 +/* 084D28 7F0501F8 0C0029FF */ jal string_append_from_obseg_textbank +/* 084D2C 7F0501FC 00402825 */ move $a1, $v0 +/* 084D30 7F050200 3C058005 */ lui $a1, %hi(D_80052A40) +/* 084D34 7F050204 24A52A40 */ addiu $a1, %lo(D_80052A40) # addiu $a1, $a1, 0x2a40 +/* 084D38 7F050208 0C0029FF */ jal string_append_from_obseg_textbank +/* 084D3C 7F05020C 02002025 */ move $a0, $s0 +/* 084D40 7F050210 8FBF001C */ lw $ra, 0x1c($sp) +.L7F050214: +/* 084D44 7F050214 8FB00018 */ lw $s0, 0x18($sp) +/* 084D48 7F050218 27BD0028 */ addiu $sp, $sp, 0x28 +/* 084D4C 7F05021C 03E00008 */ jr $ra +/* 084D50 7F050220 00000000 */ nop +) +#endif + + + + + + +void display_text_for_weapon_in_lower_left_corner(ITEM_IDS weaponid) +{ + char acStack100 [100]; + + generate_language_specific_text_for_weapon(acStack100,weaponid); +#ifdef VERSION_JP + jp_display_string_in_lower_left_corner(acStack100); +#else + display_string_in_lower_left_corner(acStack100); +#endif + return; +} + + + + + + +#ifdef NONMATCHING +void collect_or_interact_object(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +/*D:8005322C*/ +glabel object_interaction_table +.word interact_default_object +.word interact_key_object +.word interact_default_object +.word interact_default_object +.word interact_magazine_object +.word interact_weapon_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_ammobox_object +.word interact_bodyarmor_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object + +.text +glabel collect_or_interact_object +/* 084D80 7F050250 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 084D84 7F050254 AFBF001C */ sw $ra, 0x1c($sp) +/* 084D88 7F050258 AFB00018 */ sw $s0, 0x18($sp) +/* 084D8C 7F05025C AFA40070 */ sw $a0, 0x70($sp) +/* 084D90 7F050260 AFA50074 */ sw $a1, 0x74($sp) +/* 084D94 7F050264 8C830004 */ lw $v1, 4($a0) +/* 084D98 7F050268 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 084D9C 7F05026C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 084DA0 7F050270 AFA3006C */ sw $v1, 0x6c($sp) +/* 084DA4 7F050274 3C198005 */ lui $t9, %hi(clock_timer) +/* 084DA8 7F050278 8DF800D8 */ lw $t8, 0xd8($t7) +/* 084DAC 7F05027C 17000005 */ bnez $t8, .L7F050294 +/* 084DB0 7F050280 00000000 */ nop +/* 084DB4 7F050284 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 084DB8 7F050288 8FA8006C */ lw $t0, 0x6c($sp) +/* 084DBC 7F05028C 57200004 */ bnezl $t9, .L7F0502A0 +/* 084DC0 7F050290 91090003 */ lbu $t1, 3($t0) +.L7F050294: +/* 084DC4 7F050294 1000010C */ b .L7F0506C8 +/* 084DC8 7F050298 00001025 */ move $v0, $zero +/* 084DCC 7F05029C 91090003 */ lbu $t1, 3($t0) +.L7F0502A0: +/* 084DD0 7F0502A0 252AFFFD */ addiu $t2, $t1, -3 +/* 084DD4 7F0502A4 2D41002D */ sltiu $at, $t2, 0x2d +/* 084DD8 7F0502A8 102000E0 */ beqz $at, .L7F05062C +/* 084DDC 7F0502AC 000A5080 */ sll $t2, $t2, 2 +/* 084DE0 7F0502B0 3C018005 */ lui $at, %hi(object_interaction_table) +/* 084DE4 7F0502B4 002A0821 */ addu $at, $at, $t2 +/* 084DE8 7F0502B8 8C2A322C */ lw $t2, %lo(object_interaction_table)($at) +/* 084DEC 7F0502BC 01400008 */ jr $t2 +/* 084DF0 7F0502C0 00000000 */ nop +interact_key_object: +/* 084DF4 7F0502C4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 084DF8 7F0502C8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 084DFC 7F0502CC 240500E5 */ li $a1, 229 +/* 084E00 7F0502D0 0C002382 */ jal play_sfx_a1 +/* 084E04 7F0502D4 00003025 */ move $a2, $zero +/* 084E08 7F0502D8 8FAB0074 */ lw $t3, 0x74($sp) +/* 084E0C 7F0502DC 1160000A */ beqz $t3, .L7F050308 +/* 084E10 7F0502E0 00000000 */ nop +/* 084E14 7F0502E4 0FC23657 */ jal obj_get_activated_text +/* 084E18 7F0502E8 8FA4006C */ lw $a0, 0x6c($sp) +/* 084E1C 7F0502EC 14400004 */ bnez $v0, .L7F050300 +/* 084E20 7F0502F0 00402025 */ move $a0, $v0 +/* 084E24 7F0502F4 0FC30776 */ jal get_textptr_for_textID +/* 084E28 7F0502F8 3404A43C */ li $a0, 42044 +/* 084E2C 7F0502FC 00402025 */ move $a0, $v0 +.L7F050300: +/* 084E30 7F050300 0FC228F2 */ jal display_string_in_lower_left_corner +/* 084E34 7F050304 00000000 */ nop +.L7F050308: +/* 084E38 7F050308 100000DA */ b .L7F050674 +/* 084E3C 7F05030C 24030004 */ li $v1, 4 +interact_magazine_object: +/* 084E40 7F050310 00608025 */ move $s0, $v1 +/* 084E44 7F050314 0FC13F0F */ jal get_ammo_in_magazine +/* 084E48 7F050318 00602025 */ move $a0, $v1 +/* 084E4C 7F05031C 8E040080 */ lw $a0, 0x80($s0) +/* 084E50 7F050320 00402825 */ move $a1, $v0 +/* 084E54 7F050324 24060001 */ li $a2, 1 +/* 084E58 7F050328 0FC13E9A */ jal add_ammo_to_inventory +/* 084E5C 7F05032C 8FA70074 */ lw $a3, 0x74($sp) +/* 084E60 7F050330 100000D0 */ b .L7F050674 +/* 084E64 7F050334 24030001 */ li $v1, 1 +interact_ammobox_object: +/* 084E68 7F050338 00001025 */ move $v0, $zero +/* 084E6C 7F05033C 00608025 */ move $s0, $v1 +/* 084E70 7F050340 24430001 */ addiu $v1, $v0, 1 +.L7F050344: +/* 084E74 7F050344 24010001 */ li $at, 1 +/* 084E78 7F050348 14410002 */ bne $v0, $at, .L7F050354 +/* 084E7C 7F05034C 00602025 */ move $a0, $v1 +/* 084E80 7F050350 24040001 */ li $a0, 1 +.L7F050354: +/* 084E84 7F050354 96050082 */ lhu $a1, 0x82($s0) +/* 084E88 7F050358 AFA4004C */ sw $a0, 0x4c($sp) +/* 084E8C 7F05035C AFA30020 */ sw $v1, 0x20($sp) +/* 084E90 7F050360 0FC26919 */ jal get_num_players +/* 084E94 7F050364 AFA50050 */ sw $a1, 0x50($sp) +/* 084E98 7F050368 24010001 */ li $at, 1 +/* 084E9C 7F05036C 8FA30020 */ lw $v1, 0x20($sp) +/* 084EA0 7F050370 8FA4004C */ lw $a0, 0x4c($sp) +/* 084EA4 7F050374 14410009 */ bne $v0, $at, .L7F05039C +/* 084EA8 7F050378 8FA50050 */ lw $a1, 0x50($sp) +/* 084EAC 7F05037C 44852000 */ mtc1 $a1, $f4 +/* 084EB0 7F050380 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 084EB4 7F050384 C4280B28 */ lwc1 $f8, %lo(solo_ammo_multiplier)($at) +/* 084EB8 7F050388 468021A0 */ cvt.s.w $f6, $f4 +/* 084EBC 7F05038C 46083282 */ mul.s $f10, $f6, $f8 +/* 084EC0 7F050390 4600540D */ trunc.w.s $f16, $f10 +/* 084EC4 7F050394 44058000 */ mfc1 $a1, $f16 +/* 084EC8 7F050398 00000000 */ nop +.L7F05039C: +/* 084ECC 7F05039C 00003025 */ move $a2, $zero +/* 084ED0 7F0503A0 8FA70074 */ lw $a3, 0x74($sp) +/* 084ED4 7F0503A4 0FC13E9A */ jal add_ammo_to_inventory +/* 084ED8 7F0503A8 AFA30020 */ sw $v1, 0x20($sp) +/* 084EDC 7F0503AC 8FA20020 */ lw $v0, 0x20($sp) +/* 084EE0 7F0503B0 2401000D */ li $at, 13 +/* 084EE4 7F0503B4 26100004 */ addiu $s0, $s0, 4 +/* 084EE8 7F0503B8 5441FFE2 */ bnel $v0, $at, .L7F050344 +/* 084EEC 7F0503BC 24430001 */ addiu $v1, $v0, 1 +/* 084EF0 7F0503C0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 084EF4 7F0503C4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 084EF8 7F0503C8 240500EA */ li $a1, 234 +/* 084EFC 7F0503CC 0C002382 */ jal play_sfx_a1 +/* 084F00 7F0503D0 00003025 */ move $a2, $zero +/* 084F04 7F0503D4 100000A7 */ b .L7F050674 +/* 084F08 7F0503D8 24030001 */ li $v1, 1 +interact_weapon_object: +/* 084F0C 7F0503DC AFA00044 */ sw $zero, 0x44($sp) +/* 084F10 7F0503E0 80640080 */ lb $a0, 0x80($v1) +/* 084F14 7F0503E4 0FC13E04 */ jal set_sound_effect_for_weapontype_collection +/* 084F18 7F0503E8 AFA30048 */ sw $v1, 0x48($sp) +/* 084F1C 7F0503EC 8FAD0048 */ lw $t5, 0x48($sp) +/* 084F20 7F0503F0 2401001D */ li $at, 29 +/* 084F24 7F0503F4 81A40080 */ lb $a0, 0x80($t5) +/* 084F28 7F0503F8 54810006 */ bnel $a0, $at, .L7F050414 +/* 084F2C 7F0503FC 24010058 */ li $at, 88 +/* 084F30 7F050400 0FC23122 */ jal add_item_to_inventory +/* 084F34 7F050404 2404001E */ li $a0, 30 +/* 084F38 7F050408 10000007 */ b .L7F050428 +/* 084F3C 7F05040C 8FAE006C */ lw $t6, 0x6c($sp) +/* 084F40 7F050410 24010058 */ li $at, 88 +.L7F050414: +/* 084F44 7F050414 14810003 */ bne $a0, $at, .L7F050424 +/* 084F48 7F050418 24050058 */ li $a1, 88 +/* 084F4C 7F05041C 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 084F50 7F050420 00002025 */ move $a0, $zero +.L7F050424: +/* 084F54 7F050424 8FAE006C */ lw $t6, 0x6c($sp) +.L7F050428: +/* 084F58 7F050428 8FB90048 */ lw $t9, 0x48($sp) +/* 084F5C 7F05042C 8DCF0064 */ lw $t7, 0x64($t6) +/* 084F60 7F050430 31F80400 */ andi $t8, $t7, 0x400 +/* 084F64 7F050434 1300001B */ beqz $t8, .L7F0504A4 +/* 084F68 7F050438 00000000 */ nop +/* 084F6C 7F05043C 83280080 */ lb $t0, 0x80($t9) +/* 084F70 7F050440 29010021 */ slti $at, $t0, 0x21 +/* 084F74 7F050444 50200004 */ beql $at, $zero, .L7F050458 +/* 084F78 7F050448 8FA90074 */ lw $t1, 0x74($sp) +/* 084F7C 7F05044C 0FC231D9 */ jal sub_GAME_7F08C764 +/* 084F80 7F050450 8FA40070 */ lw $a0, 0x70($sp) +/* 084F84 7F050454 8FA90074 */ lw $t1, 0x74($sp) +.L7F050458: +/* 084F88 7F050458 5120000F */ beql $t1, $zero, .L7F050498 +/* 084F8C 7F05045C 8FAC0048 */ lw $t4, 0x48($sp) +/* 084F90 7F050460 0FC23657 */ jal obj_get_activated_text +/* 084F94 7F050464 8FA4006C */ lw $a0, 0x6c($sp) +/* 084F98 7F050468 10400005 */ beqz $v0, .L7F050480 +/* 084F9C 7F05046C 00402025 */ move $a0, $v0 +/* 084FA0 7F050470 0FC228F2 */ jal display_string_in_lower_left_corner +/* 084FA4 7F050474 00000000 */ nop +/* 084FA8 7F050478 10000005 */ b .L7F050490 +/* 084FAC 7F05047C 240B0001 */ li $t3, 1 +.L7F050480: +/* 084FB0 7F050480 8FAA0048 */ lw $t2, 0x48($sp) +/* 084FB4 7F050484 0FC14089 */ jal display_text_for_weapon_in_lower_left_corner +/* 084FB8 7F050488 81440080 */ lb $a0, 0x80($t2) +/* 084FBC 7F05048C 240B0001 */ li $t3, 1 +.L7F050490: +/* 084FC0 7F050490 AFAB0044 */ sw $t3, 0x44($sp) +/* 084FC4 7F050494 8FAC0048 */ lw $t4, 0x48($sp) +.L7F050498: +/* 084FC8 7F050498 24030004 */ li $v1, 4 +/* 084FCC 7F05049C 1000001C */ b .L7F050510 +/* 084FD0 7F0504A0 81840080 */ lb $a0, 0x80($t4) +.L7F0504A4: +/* 084FD4 7F0504A4 0FC231D9 */ jal sub_GAME_7F08C764 +/* 084FD8 7F0504A8 8FA40070 */ lw $a0, 0x70($sp) +/* 084FDC 7F0504AC 10400002 */ beqz $v0, .L7F0504B8 +/* 084FE0 7F0504B0 240D0001 */ li $t5, 1 +/* 084FE4 7F0504B4 AFAD0044 */ sw $t5, 0x44($sp) +.L7F0504B8: +/* 084FE8 7F0504B8 8FAE0074 */ lw $t6, 0x74($sp) +/* 084FEC 7F0504BC 8FAF0048 */ lw $t7, 0x48($sp) +/* 084FF0 7F0504C0 51C00011 */ beql $t6, $zero, .L7F050508 +/* 084FF4 7F0504C4 8FA90048 */ lw $t1, 0x48($sp) +/* 084FF8 7F0504C8 0FC23669 */ jal weapon_get_activated_text +/* 084FFC 7F0504CC 81E40080 */ lb $a0, 0x80($t7) +/* 085000 7F0504D0 10400006 */ beqz $v0, .L7F0504EC +/* 085004 7F0504D4 00402025 */ move $a0, $v0 +/* 085008 7F0504D8 24180001 */ li $t8, 1 +/* 08500C 7F0504DC 0FC228F2 */ jal display_string_in_lower_left_corner +/* 085010 7F0504E0 AFB80044 */ sw $t8, 0x44($sp) +/* 085014 7F0504E4 10000008 */ b .L7F050508 +/* 085018 7F0504E8 8FA90048 */ lw $t1, 0x48($sp) +.L7F0504EC: +/* 08501C 7F0504EC 8FB90044 */ lw $t9, 0x44($sp) +/* 085020 7F0504F0 8FA80048 */ lw $t0, 0x48($sp) +/* 085024 7F0504F4 53200004 */ beql $t9, $zero, .L7F050508 +/* 085028 7F0504F8 8FA90048 */ lw $t1, 0x48($sp) +/* 08502C 7F0504FC 0FC14089 */ jal display_text_for_weapon_in_lower_left_corner +/* 085030 7F050500 81040080 */ lb $a0, 0x80($t0) +/* 085034 7F050504 8FA90048 */ lw $t1, 0x48($sp) +.L7F050508: +/* 085038 7F050508 24030001 */ li $v1, 1 +/* 08503C 7F05050C 81240080 */ lb $a0, 0x80($t1) +.L7F050510: +/* 085040 7F050510 0FC1A50B */ jal get_ammo_type_for_weapon +/* 085044 7F050514 AFA30068 */ sw $v1, 0x68($sp) +/* 085048 7F050518 8FA30068 */ lw $v1, 0x68($sp) +/* 08504C 7F05051C 10400055 */ beqz $v0, .L7F050674 +/* 085050 7F050520 00408025 */ move $s0, $v0 +/* 085054 7F050524 8FA40048 */ lw $a0, 0x48($sp) +/* 085058 7F050528 0FC13F3E */ jal ammo_collected_from_weapon +/* 08505C 7F05052C AFA30068 */ sw $v1, 0x68($sp) +/* 085060 7F050530 8FA30068 */ lw $v1, 0x68($sp) +/* 085064 7F050534 1840004F */ blez $v0, .L7F050674 +/* 085068 7F050538 AFA20034 */ sw $v0, 0x34($sp) +/* 08506C 7F05053C 02002025 */ move $a0, $s0 +/* 085070 7F050540 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory +/* 085074 7F050544 AFA30068 */ sw $v1, 0x68($sp) +/* 085078 7F050548 AFA20024 */ sw $v0, 0x24($sp) +/* 08507C 7F05054C 0FC1A4B5 */ jal get_max_ammo_for_type +/* 085080 7F050550 02002025 */ move $a0, $s0 +/* 085084 7F050554 8FAA0024 */ lw $t2, 0x24($sp) +/* 085088 7F050558 8FA30068 */ lw $v1, 0x68($sp) +/* 08508C 7F05055C 02002025 */ move $a0, $s0 +/* 085090 7F050560 0142082A */ slt $at, $t2, $v0 +/* 085094 7F050564 50200044 */ beql $at, $zero, .L7F050678 +/* 085098 7F050568 24010001 */ li $at, 1 +/* 08509C 7F05056C 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory +/* 0850A0 7F050570 AFA30068 */ sw $v1, 0x68($sp) +/* 0850A4 7F050574 8FAB0034 */ lw $t3, 0x34($sp) +/* 0850A8 7F050578 02002025 */ move $a0, $s0 +/* 0850AC 7F05057C 0FC1A44C */ jal give_cur_player_ammo +/* 0850B0 7F050580 004B2821 */ addu $a1, $v0, $t3 +/* 0850B4 7F050584 8FAC0044 */ lw $t4, 0x44($sp) +/* 0850B8 7F050588 8FA30068 */ lw $v1, 0x68($sp) +/* 0850BC 7F05058C 8FAD0074 */ lw $t5, 0x74($sp) +/* 0850C0 7F050590 55800039 */ bnezl $t4, .L7F050678 +/* 0850C4 7F050594 24010001 */ li $at, 1 +/* 0850C8 7F050598 11A00036 */ beqz $t5, .L7F050674 +/* 0850CC 7F05059C 02002025 */ move $a0, $s0 +/* 0850D0 7F0505A0 8FA50034 */ lw $a1, 0x34($sp) +/* 0850D4 7F0505A4 0FC13E7E */ jal display_text_when_ammo_collected +/* 0850D8 7F0505A8 AFA30068 */ sw $v1, 0x68($sp) +/* 0850DC 7F0505AC 10000031 */ b .L7F050674 +/* 0850E0 7F0505B0 8FA30068 */ lw $v1, 0x68($sp) +interact_bodyarmor_object: +/* 0850E4 7F0505B4 0FC228C3 */ jal add_BONDdata_watch_armor +/* 0850E8 7F0505B8 C46C0084 */ lwc1 $f12, 0x84($v1) +/* 0850EC 7F0505BC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0850F0 7F0505C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0850F4 7F0505C4 24050051 */ li $a1, 81 +/* 0850F8 7F0505C8 0C002382 */ jal play_sfx_a1 +/* 0850FC 7F0505CC 00003025 */ move $a2, $zero +/* 085100 7F0505D0 8FAE0074 */ lw $t6, 0x74($sp) +/* 085104 7F0505D4 11C00013 */ beqz $t6, .L7F050624 +/* 085108 7F0505D8 00000000 */ nop +/* 08510C 7F0505DC 0FC23657 */ jal obj_get_activated_text +/* 085110 7F0505E0 8FA4006C */ lw $a0, 0x6c($sp) +/* 085114 7F0505E4 1440000D */ bnez $v0, .L7F05061C +/* 085118 7F0505E8 00402025 */ move $a0, $v0 +/* 08511C 7F0505EC 0FC26919 */ jal get_num_players +/* 085120 7F0505F0 00000000 */ nop +/* 085124 7F0505F4 28410003 */ slti $at, $v0, 3 +/* 085128 7F0505F8 10200005 */ beqz $at, .L7F050610 +/* 08512C 7F0505FC 00000000 */ nop +/* 085130 7F050600 0FC30776 */ jal get_textptr_for_textID +/* 085134 7F050604 3404A43D */ li $a0, 42045 +/* 085138 7F050608 10000004 */ b .L7F05061C +/* 08513C 7F05060C 00402025 */ move $a0, $v0 +.L7F050610: +/* 085140 7F050610 0FC30776 */ jal get_textptr_for_textID +/* 085144 7F050614 3404A43E */ li $a0, 42046 +/* 085148 7F050618 00402025 */ move $a0, $v0 +.L7F05061C: +/* 08514C 7F05061C 0FC228F2 */ jal display_string_in_lower_left_corner +/* 085150 7F050620 00000000 */ nop +.L7F050624: +/* 085154 7F050624 10000013 */ b .L7F050674 +/* 085158 7F050628 24030001 */ li $v1, 1 +interact_default_object: +.L7F05062C: +/* 08515C 7F05062C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 085160 7F050630 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 085164 7F050634 240500E5 */ li $a1, 229 +/* 085168 7F050638 0C002382 */ jal play_sfx_a1 +/* 08516C 7F05063C 00003025 */ move $a2, $zero +/* 085170 7F050640 8FAF0074 */ lw $t7, 0x74($sp) +/* 085174 7F050644 51E0000B */ beql $t7, $zero, .L7F050674 +/* 085178 7F050648 24030004 */ li $v1, 4 +/* 08517C 7F05064C 0FC23657 */ jal obj_get_activated_text +/* 085180 7F050650 8FA4006C */ lw $a0, 0x6c($sp) +/* 085184 7F050654 14400004 */ bnez $v0, .L7F050668 +/* 085188 7F050658 00402025 */ move $a0, $v0 +/* 08518C 7F05065C 0FC30776 */ jal get_textptr_for_textID +/* 085190 7F050660 3404A43F */ li $a0, 42047 +/* 085194 7F050664 00402025 */ move $a0, $v0 +.L7F050668: +/* 085198 7F050668 0FC228F2 */ jal display_string_in_lower_left_corner +/* 08519C 7F05066C 00000000 */ nop +/* 0851A0 7F050670 24030004 */ li $v1, 4 +.L7F050674: +/* 0851A4 7F050674 24010001 */ li $at, 1 +.L7F050678: +/* 0851A8 7F050678 1461000D */ bne $v1, $at, .L7F0506B0 +/* 0851AC 7F05067C 8FB8006C */ lw $t8, 0x6c($sp) +/* 0851B0 7F050680 8F190064 */ lw $t9, 0x64($t8) +/* 0851B4 7F050684 33280010 */ andi $t0, $t9, 0x10 +/* 0851B8 7F050688 15000009 */ bnez $t0, .L7F0506B0 +/* 0851BC 7F05068C 00000000 */ nop +/* 0851C0 7F050690 93060002 */ lbu $a2, 2($t8) +/* 0851C4 7F050694 03002025 */ move $a0, $t8 +/* 0851C8 7F050698 00002825 */ move $a1, $zero +/* 0851CC 7F05069C 30C90004 */ andi $t1, $a2, 4 +/* 0851D0 7F0506A0 0FC10366 */ jal sub_GAME_7F040D98 +/* 0851D4 7F0506A4 01203025 */ move $a2, $t1 +/* 0851D8 7F0506A8 10000007 */ b .L7F0506C8 +/* 0851DC 7F0506AC 24020001 */ li $v0, 1 +.L7F0506B0: +/* 0851E0 7F0506B0 10600005 */ beqz $v1, .L7F0506C8 +/* 0851E4 7F0506B4 00001025 */ move $v0, $zero +/* 0851E8 7F0506B8 0FC231C9 */ jal add_prop_to_inventory +/* 0851EC 7F0506BC 8FA40070 */ lw $a0, 0x70($sp) +/* 0851F0 7F0506C0 10000001 */ b .L7F0506C8 +/* 0851F4 7F0506C4 24020004 */ li $v0, 4 +.L7F0506C8: +/* 0851F8 7F0506C8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0851FC 7F0506CC 8FB00018 */ lw $s0, 0x18($sp) +/* 085200 7F0506D0 27BD0070 */ addiu $sp, $sp, 0x70 +/* 085204 7F0506D4 03E00008 */ jr $ra +/* 085208 7F0506D8 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +/*D:8005322C*/ +glabel object_interaction_table +.word interact_default_object +.word interact_key_object +.word interact_default_object +.word interact_default_object +.word interact_magazine_object +.word interact_weapon_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_ammobox_object +.word interact_bodyarmor_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object + +.text +glabel collect_or_interact_object +/* 084D80 7F050250 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 084D84 7F050254 AFBF001C */ sw $ra, 0x1c($sp) +/* 084D88 7F050258 AFB00018 */ sw $s0, 0x18($sp) +/* 084D8C 7F05025C AFA40070 */ sw $a0, 0x70($sp) +/* 084D90 7F050260 AFA50074 */ sw $a1, 0x74($sp) +/* 084D94 7F050264 8C830004 */ lw $v1, 4($a0) +/* 084D98 7F050268 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 084D9C 7F05026C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 084DA0 7F050270 AFA3006C */ sw $v1, 0x6c($sp) +/* 084DA4 7F050274 3C198005 */ lui $t9, %hi(clock_timer) +/* 084DA8 7F050278 8DF800D8 */ lw $t8, 0xd8($t7) +/* 084DAC 7F05027C 17000005 */ bnez $t8, .L7F050294 +/* 084DB0 7F050280 00000000 */ nop +/* 084DB4 7F050284 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 084DB8 7F050288 8FA8006C */ lw $t0, 0x6c($sp) +/* 084DBC 7F05028C 57200004 */ bnezl $t9, .L7F0502A0 +/* 084DC0 7F050290 91090003 */ lbu $t1, 3($t0) +.L7F050294: +/* 084DC4 7F050294 1000010C */ b .L7F0506C8 +/* 084DC8 7F050298 00001025 */ move $v0, $zero +/* 084DCC 7F05029C 91090003 */ lbu $t1, 3($t0) +.L7F0502A0: +/* 084DD0 7F0502A0 252AFFFD */ addiu $t2, $t1, -3 +/* 084DD4 7F0502A4 2D41002D */ sltiu $at, $t2, 0x2d +/* 084DD8 7F0502A8 102000E0 */ beqz $at, .L7F05062C +/* 084DDC 7F0502AC 000A5080 */ sll $t2, $t2, 2 +/* 084DE0 7F0502B0 3C018005 */ lui $at, %hi(object_interaction_table) +/* 084DE4 7F0502B4 002A0821 */ addu $at, $at, $t2 +/* 084DE8 7F0502B8 8C2A322C */ lw $t2, %lo(object_interaction_table)($at) +/* 084DEC 7F0502BC 01400008 */ jr $t2 +/* 084DF0 7F0502C0 00000000 */ nop +interact_key_object: +/* 084DF4 7F0502C4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 084DF8 7F0502C8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 084DFC 7F0502CC 240500E5 */ li $a1, 229 +/* 084E00 7F0502D0 0C002382 */ jal play_sfx_a1 +/* 084E04 7F0502D4 00003025 */ move $a2, $zero +/* 084E08 7F0502D8 8FAB0074 */ lw $t3, 0x74($sp) +/* 084E0C 7F0502DC 1160000A */ beqz $t3, .L7F050308 +/* 084E10 7F0502E0 00000000 */ nop +/* 084E14 7F0502E4 0FC23657 */ jal obj_get_activated_text +/* 084E18 7F0502E8 8FA4006C */ lw $a0, 0x6c($sp) +/* 084E1C 7F0502EC 14400004 */ bnez $v0, .L7F050300 +/* 084E20 7F0502F0 00402025 */ move $a0, $v0 +/* 084E24 7F0502F4 0FC30776 */ jal get_textptr_for_textID +/* 084E28 7F0502F8 3404A43C */ li $a0, 42044 +/* 084E2C 7F0502FC 00402025 */ move $a0, $v0 +.L7F050300: +/* 084E30 7F050300 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 084E34 7F050304 00000000 */ nop +.L7F050308: +/* 084E38 7F050308 100000DA */ b .L7F050674 +/* 084E3C 7F05030C 24030004 */ li $v1, 4 +interact_magazine_object: +/* 084E40 7F050310 00608025 */ move $s0, $v1 +/* 084E44 7F050314 0FC13F0F */ jal get_ammo_in_magazine +/* 084E48 7F050318 00602025 */ move $a0, $v1 +/* 084E4C 7F05031C 8E040080 */ lw $a0, 0x80($s0) +/* 084E50 7F050320 00402825 */ move $a1, $v0 +/* 084E54 7F050324 24060001 */ li $a2, 1 +/* 084E58 7F050328 0FC13E9A */ jal add_ammo_to_inventory +/* 084E5C 7F05032C 8FA70074 */ lw $a3, 0x74($sp) +/* 084E60 7F050330 100000D0 */ b .L7F050674 +/* 084E64 7F050334 24030001 */ li $v1, 1 +interact_ammobox_object: +/* 084E68 7F050338 00001025 */ move $v0, $zero +/* 084E6C 7F05033C 00608025 */ move $s0, $v1 +/* 084E70 7F050340 24430001 */ addiu $v1, $v0, 1 +.L7F050344: +/* 084E74 7F050344 24010001 */ li $at, 1 +/* 084E78 7F050348 14410002 */ bne $v0, $at, .L7F050354 +/* 084E7C 7F05034C 00602025 */ move $a0, $v1 +/* 084E80 7F050350 24040001 */ li $a0, 1 +.L7F050354: +/* 084E84 7F050354 96050082 */ lhu $a1, 0x82($s0) +/* 084E88 7F050358 AFA4004C */ sw $a0, 0x4c($sp) +/* 084E8C 7F05035C AFA30020 */ sw $v1, 0x20($sp) +/* 084E90 7F050360 0FC26919 */ jal get_num_players +/* 084E94 7F050364 AFA50050 */ sw $a1, 0x50($sp) +/* 084E98 7F050368 24010001 */ li $at, 1 +/* 084E9C 7F05036C 8FA30020 */ lw $v1, 0x20($sp) +/* 084EA0 7F050370 8FA4004C */ lw $a0, 0x4c($sp) +/* 084EA4 7F050374 14410009 */ bne $v0, $at, .L7F05039C +/* 084EA8 7F050378 8FA50050 */ lw $a1, 0x50($sp) +/* 084EAC 7F05037C 44852000 */ mtc1 $a1, $f4 +/* 084EB0 7F050380 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 084EB4 7F050384 C4280B28 */ lwc1 $f8, %lo(solo_ammo_multiplier)($at) +/* 084EB8 7F050388 468021A0 */ cvt.s.w $f6, $f4 +/* 084EBC 7F05038C 46083282 */ mul.s $f10, $f6, $f8 +/* 084EC0 7F050390 4600540D */ trunc.w.s $f16, $f10 +/* 084EC4 7F050394 44058000 */ mfc1 $a1, $f16 +/* 084EC8 7F050398 00000000 */ nop +.L7F05039C: +/* 084ECC 7F05039C 00003025 */ move $a2, $zero +/* 084ED0 7F0503A0 8FA70074 */ lw $a3, 0x74($sp) +/* 084ED4 7F0503A4 0FC13E9A */ jal add_ammo_to_inventory +/* 084ED8 7F0503A8 AFA30020 */ sw $v1, 0x20($sp) +/* 084EDC 7F0503AC 8FA20020 */ lw $v0, 0x20($sp) +/* 084EE0 7F0503B0 2401000D */ li $at, 13 +/* 084EE4 7F0503B4 26100004 */ addiu $s0, $s0, 4 +/* 084EE8 7F0503B8 5441FFE2 */ bnel $v0, $at, .L7F050344 +/* 084EEC 7F0503BC 24430001 */ addiu $v1, $v0, 1 +/* 084EF0 7F0503C0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 084EF4 7F0503C4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 084EF8 7F0503C8 240500EA */ li $a1, 234 +/* 084EFC 7F0503CC 0C002382 */ jal play_sfx_a1 +/* 084F00 7F0503D0 00003025 */ move $a2, $zero +/* 084F04 7F0503D4 100000A7 */ b .L7F050674 +/* 084F08 7F0503D8 24030001 */ li $v1, 1 +interact_weapon_object: +/* 084F0C 7F0503DC AFA00044 */ sw $zero, 0x44($sp) +/* 084F10 7F0503E0 80640080 */ lb $a0, 0x80($v1) +/* 084F14 7F0503E4 0FC13E04 */ jal set_sound_effect_for_weapontype_collection +/* 084F18 7F0503E8 AFA30048 */ sw $v1, 0x48($sp) +/* 084F1C 7F0503EC 8FAD0048 */ lw $t5, 0x48($sp) +/* 084F20 7F0503F0 2401001D */ li $at, 29 +/* 084F24 7F0503F4 81A40080 */ lb $a0, 0x80($t5) +/* 084F28 7F0503F8 54810006 */ bnel $a0, $at, .L7F050414 +/* 084F2C 7F0503FC 24010058 */ li $at, 88 +/* 084F30 7F050400 0FC23122 */ jal add_item_to_inventory +/* 084F34 7F050404 2404001E */ li $a0, 30 +/* 084F38 7F050408 10000007 */ b .L7F050428 +/* 084F3C 7F05040C 8FAE006C */ lw $t6, 0x6c($sp) +/* 084F40 7F050410 24010058 */ li $at, 88 +.L7F050414: +/* 084F44 7F050414 14810003 */ bne $a0, $at, .L7F050424 +/* 084F48 7F050418 24050058 */ li $a1, 88 +/* 084F4C 7F05041C 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 084F50 7F050420 00002025 */ move $a0, $zero +.L7F050424: +/* 084F54 7F050424 8FAE006C */ lw $t6, 0x6c($sp) +.L7F050428: +/* 084F58 7F050428 8FB90048 */ lw $t9, 0x48($sp) +/* 084F5C 7F05042C 8DCF0064 */ lw $t7, 0x64($t6) +/* 084F60 7F050430 31F80400 */ andi $t8, $t7, 0x400 +/* 084F64 7F050434 1300001B */ beqz $t8, .L7F0504A4 +/* 084F68 7F050438 00000000 */ nop +/* 084F6C 7F05043C 83280080 */ lb $t0, 0x80($t9) +/* 084F70 7F050440 29010021 */ slti $at, $t0, 0x21 +/* 084F74 7F050444 50200004 */ beql $at, $zero, .L7F050458 +/* 084F78 7F050448 8FA90074 */ lw $t1, 0x74($sp) +/* 084F7C 7F05044C 0FC231D9 */ jal sub_GAME_7F08C764 +/* 084F80 7F050450 8FA40070 */ lw $a0, 0x70($sp) +/* 084F84 7F050454 8FA90074 */ lw $t1, 0x74($sp) +.L7F050458: +/* 084F88 7F050458 5120000F */ beql $t1, $zero, .L7F050498 +/* 084F8C 7F05045C 8FAC0048 */ lw $t4, 0x48($sp) +/* 084F90 7F050460 0FC23657 */ jal obj_get_activated_text +/* 084F94 7F050464 8FA4006C */ lw $a0, 0x6c($sp) +/* 084F98 7F050468 10400005 */ beqz $v0, .L7F050480 +/* 084F9C 7F05046C 00402025 */ move $a0, $v0 +/* 084FA0 7F050470 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 084FA4 7F050474 00000000 */ nop +/* 084FA8 7F050478 10000005 */ b .L7F050490 +/* 084FAC 7F05047C 240B0001 */ li $t3, 1 +.L7F050480: +/* 084FB0 7F050480 8FAA0048 */ lw $t2, 0x48($sp) +/* 084FB4 7F050484 0FC14089 */ jal display_text_for_weapon_in_lower_left_corner +/* 084FB8 7F050488 81440080 */ lb $a0, 0x80($t2) +/* 084FBC 7F05048C 240B0001 */ li $t3, 1 +.L7F050490: +/* 084FC0 7F050490 AFAB0044 */ sw $t3, 0x44($sp) +/* 084FC4 7F050494 8FAC0048 */ lw $t4, 0x48($sp) +.L7F050498: +/* 084FC8 7F050498 24030004 */ li $v1, 4 +/* 084FCC 7F05049C 1000001C */ b .L7F050510 +/* 084FD0 7F0504A0 81840080 */ lb $a0, 0x80($t4) +.L7F0504A4: +/* 084FD4 7F0504A4 0FC231D9 */ jal sub_GAME_7F08C764 +/* 084FD8 7F0504A8 8FA40070 */ lw $a0, 0x70($sp) +/* 084FDC 7F0504AC 10400002 */ beqz $v0, .L7F0504B8 +/* 084FE0 7F0504B0 240D0001 */ li $t5, 1 +/* 084FE4 7F0504B4 AFAD0044 */ sw $t5, 0x44($sp) +.L7F0504B8: +/* 084FE8 7F0504B8 8FAE0074 */ lw $t6, 0x74($sp) +/* 084FEC 7F0504BC 8FAF0048 */ lw $t7, 0x48($sp) +/* 084FF0 7F0504C0 51C00011 */ beql $t6, $zero, .L7F050508 +/* 084FF4 7F0504C4 8FA90048 */ lw $t1, 0x48($sp) +/* 084FF8 7F0504C8 0FC23669 */ jal weapon_get_activated_text +/* 084FFC 7F0504CC 81E40080 */ lb $a0, 0x80($t7) +/* 085000 7F0504D0 10400006 */ beqz $v0, .L7F0504EC +/* 085004 7F0504D4 00402025 */ move $a0, $v0 +/* 085008 7F0504D8 24180001 */ li $t8, 1 +/* 08500C 7F0504DC 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 085010 7F0504E0 AFB80044 */ sw $t8, 0x44($sp) +/* 085014 7F0504E4 10000008 */ b .L7F050508 +/* 085018 7F0504E8 8FA90048 */ lw $t1, 0x48($sp) +.L7F0504EC: +/* 08501C 7F0504EC 8FB90044 */ lw $t9, 0x44($sp) +/* 085020 7F0504F0 8FA80048 */ lw $t0, 0x48($sp) +/* 085024 7F0504F4 53200004 */ beql $t9, $zero, .L7F050508 +/* 085028 7F0504F8 8FA90048 */ lw $t1, 0x48($sp) +/* 08502C 7F0504FC 0FC14089 */ jal display_text_for_weapon_in_lower_left_corner +/* 085030 7F050500 81040080 */ lb $a0, 0x80($t0) +/* 085034 7F050504 8FA90048 */ lw $t1, 0x48($sp) +.L7F050508: +/* 085038 7F050508 24030001 */ li $v1, 1 +/* 08503C 7F05050C 81240080 */ lb $a0, 0x80($t1) +.L7F050510: +/* 085040 7F050510 0FC1A50B */ jal get_ammo_type_for_weapon +/* 085044 7F050514 AFA30068 */ sw $v1, 0x68($sp) +/* 085048 7F050518 8FA30068 */ lw $v1, 0x68($sp) +/* 08504C 7F05051C 10400055 */ beqz $v0, .L7F050674 +/* 085050 7F050520 00408025 */ move $s0, $v0 +/* 085054 7F050524 8FA40048 */ lw $a0, 0x48($sp) +/* 085058 7F050528 0FC13F3E */ jal ammo_collected_from_weapon +/* 08505C 7F05052C AFA30068 */ sw $v1, 0x68($sp) +/* 085060 7F050530 8FA30068 */ lw $v1, 0x68($sp) +/* 085064 7F050534 1840004F */ blez $v0, .L7F050674 +/* 085068 7F050538 AFA20034 */ sw $v0, 0x34($sp) +/* 08506C 7F05053C 02002025 */ move $a0, $s0 +/* 085070 7F050540 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory +/* 085074 7F050544 AFA30068 */ sw $v1, 0x68($sp) +/* 085078 7F050548 AFA20024 */ sw $v0, 0x24($sp) +/* 08507C 7F05054C 0FC1A4B5 */ jal get_max_ammo_for_type +/* 085080 7F050550 02002025 */ move $a0, $s0 +/* 085084 7F050554 8FAA0024 */ lw $t2, 0x24($sp) +/* 085088 7F050558 8FA30068 */ lw $v1, 0x68($sp) +/* 08508C 7F05055C 02002025 */ move $a0, $s0 +/* 085090 7F050560 0142082A */ slt $at, $t2, $v0 +/* 085094 7F050564 50200044 */ beql $at, $zero, .L7F050678 +/* 085098 7F050568 24010001 */ li $at, 1 +/* 08509C 7F05056C 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory +/* 0850A0 7F050570 AFA30068 */ sw $v1, 0x68($sp) +/* 0850A4 7F050574 8FAB0034 */ lw $t3, 0x34($sp) +/* 0850A8 7F050578 02002025 */ move $a0, $s0 +/* 0850AC 7F05057C 0FC1A44C */ jal give_cur_player_ammo +/* 0850B0 7F050580 004B2821 */ addu $a1, $v0, $t3 +/* 0850B4 7F050584 8FAC0044 */ lw $t4, 0x44($sp) +/* 0850B8 7F050588 8FA30068 */ lw $v1, 0x68($sp) +/* 0850BC 7F05058C 8FAD0074 */ lw $t5, 0x74($sp) +/* 0850C0 7F050590 55800039 */ bnezl $t4, .L7F050678 +/* 0850C4 7F050594 24010001 */ li $at, 1 +/* 0850C8 7F050598 11A00036 */ beqz $t5, .L7F050674 +/* 0850CC 7F05059C 02002025 */ move $a0, $s0 +/* 0850D0 7F0505A0 8FA50034 */ lw $a1, 0x34($sp) +/* 0850D4 7F0505A4 0FC13E7E */ jal display_text_when_ammo_collected +/* 0850D8 7F0505A8 AFA30068 */ sw $v1, 0x68($sp) +/* 0850DC 7F0505AC 10000031 */ b .L7F050674 +/* 0850E0 7F0505B0 8FA30068 */ lw $v1, 0x68($sp) +interact_bodyarmor_object: +/* 0850E4 7F0505B4 0FC228C3 */ jal add_BONDdata_watch_armor +/* 0850E8 7F0505B8 C46C0084 */ lwc1 $f12, 0x84($v1) +/* 0850EC 7F0505BC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0850F0 7F0505C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0850F4 7F0505C4 24050051 */ li $a1, 81 +/* 0850F8 7F0505C8 0C002382 */ jal play_sfx_a1 +/* 0850FC 7F0505CC 00003025 */ move $a2, $zero +/* 085100 7F0505D0 8FAE0074 */ lw $t6, 0x74($sp) +/* 085104 7F0505D4 11C00013 */ beqz $t6, .L7F050624 +/* 085108 7F0505D8 00000000 */ nop +/* 08510C 7F0505DC 0FC23657 */ jal obj_get_activated_text +/* 085110 7F0505E0 8FA4006C */ lw $a0, 0x6c($sp) +/* 085114 7F0505E4 1440000D */ bnez $v0, .L7F05061C +/* 085118 7F0505E8 00402025 */ move $a0, $v0 +/* 08511C 7F0505EC 0FC26919 */ jal get_num_players +/* 085120 7F0505F0 00000000 */ nop +/* 085124 7F0505F4 28410003 */ slti $at, $v0, 3 +/* 085128 7F0505F8 10200005 */ beqz $at, .L7F050610 +/* 08512C 7F0505FC 00000000 */ nop +/* 085130 7F050600 0FC30776 */ jal get_textptr_for_textID +/* 085134 7F050604 3404A43D */ li $a0, 42045 +/* 085138 7F050608 10000004 */ b .L7F05061C +/* 08513C 7F05060C 00402025 */ move $a0, $v0 +.L7F050610: +/* 085140 7F050610 0FC30776 */ jal get_textptr_for_textID +/* 085144 7F050614 3404A43E */ li $a0, 42046 +/* 085148 7F050618 00402025 */ move $a0, $v0 +.L7F05061C: +/* 08514C 7F05061C 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 085150 7F050620 00000000 */ nop +.L7F050624: +/* 085154 7F050624 10000013 */ b .L7F050674 +/* 085158 7F050628 24030001 */ li $v1, 1 +interact_default_object: +.L7F05062C: +/* 08515C 7F05062C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 085160 7F050630 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 085164 7F050634 240500E5 */ li $a1, 229 +/* 085168 7F050638 0C002382 */ jal play_sfx_a1 +/* 08516C 7F05063C 00003025 */ move $a2, $zero +/* 085170 7F050640 8FAF0074 */ lw $t7, 0x74($sp) +/* 085174 7F050644 51E0000B */ beql $t7, $zero, .L7F050674 +/* 085178 7F050648 24030004 */ li $v1, 4 +/* 08517C 7F05064C 0FC23657 */ jal obj_get_activated_text +/* 085180 7F050650 8FA4006C */ lw $a0, 0x6c($sp) +/* 085184 7F050654 14400004 */ bnez $v0, .L7F050668 +/* 085188 7F050658 00402025 */ move $a0, $v0 +/* 08518C 7F05065C 0FC30776 */ jal get_textptr_for_textID +/* 085190 7F050660 3404A43F */ li $a0, 42047 +/* 085194 7F050664 00402025 */ move $a0, $v0 +.L7F050668: +/* 085198 7F050668 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 08519C 7F05066C 00000000 */ nop +/* 0851A0 7F050670 24030004 */ li $v1, 4 +.L7F050674: +/* 0851A4 7F050674 24010001 */ li $at, 1 +.L7F050678: +/* 0851A8 7F050678 1461000D */ bne $v1, $at, .L7F0506B0 +/* 0851AC 7F05067C 8FB8006C */ lw $t8, 0x6c($sp) +/* 0851B0 7F050680 8F190064 */ lw $t9, 0x64($t8) +/* 0851B4 7F050684 33280010 */ andi $t0, $t9, 0x10 +/* 0851B8 7F050688 15000009 */ bnez $t0, .L7F0506B0 +/* 0851BC 7F05068C 00000000 */ nop +/* 0851C0 7F050690 93060002 */ lbu $a2, 2($t8) +/* 0851C4 7F050694 03002025 */ move $a0, $t8 +/* 0851C8 7F050698 00002825 */ move $a1, $zero +/* 0851CC 7F05069C 30C90004 */ andi $t1, $a2, 4 +/* 0851D0 7F0506A0 0FC10366 */ jal sub_GAME_7F040D98 +/* 0851D4 7F0506A4 01203025 */ move $a2, $t1 +/* 0851D8 7F0506A8 10000007 */ b .L7F0506C8 +/* 0851DC 7F0506AC 24020001 */ li $v0, 1 +.L7F0506B0: +/* 0851E0 7F0506B0 10600005 */ beqz $v1, .L7F0506C8 +/* 0851E4 7F0506B4 00001025 */ move $v0, $zero +/* 0851E8 7F0506B8 0FC231C9 */ jal add_prop_to_inventory +/* 0851EC 7F0506BC 8FA40070 */ lw $a0, 0x70($sp) +/* 0851F0 7F0506C0 10000001 */ b .L7F0506C8 +/* 0851F4 7F0506C4 24020004 */ li $v0, 4 +.L7F0506C8: +/* 0851F8 7F0506C8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0851FC 7F0506CC 8FB00018 */ lw $s0, 0x18($sp) +/* 085200 7F0506D0 27BD0070 */ addiu $sp, $sp, 0x70 +/* 085204 7F0506D4 03E00008 */ jr $ra +/* 085208 7F0506D8 00000000 */ nop +) +#endif +#endif + + + + +#ifdef NONMATCHING +void object_collectability_routines(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_800532E0 +.word 0xbf490fdb /*-0.78539819*/ +glabel D_800532E4 +.word 0x47ef4200 /*122500.0*/ +glabel D_800532E8 +.word 0x461c4000 /*10000.0*/ +glabel D_800532EC +.word 0x47742400 /*62500.0*/ +glabel D_800532F0 +.word 0x40490fdb /*3.1415927*/ +.text +glabel object_collectability_routines +/* 08520C 7F0506DC 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 085210 7F0506E0 AFBF002C */ sw $ra, 0x2c($sp) +/* 085214 7F0506E4 AFA40088 */ sw $a0, 0x88($sp) +/* 085218 7F0506E8 8C840004 */ lw $a0, 4($a0) +/* 08521C 7F0506EC 0FC13803 */ jal check_if_collectable_object +/* 085220 7F0506F0 AFA40084 */ sw $a0, 0x84($sp) +/* 085224 7F0506F4 1040000B */ beqz $v0, .L7F050724 +/* 085228 7F0506F8 8FA40084 */ lw $a0, 0x84($sp) +/* 08522C 7F0506FC 908F0003 */ lbu $t7, 3($a0) +/* 085230 7F050700 24010011 */ li $at, 17 +/* 085234 7F050704 51E10008 */ beql $t7, $at, .L7F050728 +/* 085238 7F050708 8FA40084 */ lw $a0, 0x84($sp) +/* 08523C 7F05070C 8C820008 */ lw $v0, 8($a0) +/* 085240 7F050710 0002C2C0 */ sll $t8, $v0, 0xb +/* 085244 7F050714 0703000B */ bgezl $t8, .L7F050744 +/* 085248 7F050718 00024B00 */ sll $t1, $v0, 0xc +/* 08524C 7F05071C 10000180 */ b .L7F050D20 +/* 085250 7F050720 00001025 */ move $v0, $zero +.L7F050724: +/* 085254 7F050724 8FA40084 */ lw $a0, 0x84($sp) +.L7F050728: +/* 085258 7F050728 8C820008 */ lw $v0, 8($a0) +/* 08525C 7F05072C 0002CB40 */ sll $t9, $v0, 0xd +/* 085260 7F050730 07220004 */ bltzl $t9, .L7F050744 +/* 085264 7F050734 00024B00 */ sll $t1, $v0, 0xc +/* 085268 7F050738 10000179 */ b .L7F050D20 +/* 08526C 7F05073C 00001025 */ move $v0, $zero +/* 085270 7F050740 00024B00 */ sll $t1, $v0, 0xc +.L7F050744: +/* 085274 7F050744 05230004 */ bgezl $t1, .L7F050758 +/* 085278 7F050748 8C8A0064 */ lw $t2, 0x64($a0) +/* 08527C 7F05074C 10000174 */ b .L7F050D20 +/* 085280 7F050750 00001025 */ move $v0, $zero +/* 085284 7F050754 8C8A0064 */ lw $t2, 0x64($a0) +.L7F050758: +/* 085288 7F050758 314B0080 */ andi $t3, $t2, 0x80 +/* 08528C 7F05075C 1160000A */ beqz $t3, .L7F050788 +/* 085290 7F050760 00000000 */ nop +/* 085294 7F050764 8C82006C */ lw $v0, 0x6c($a0) +/* 085298 7F050768 8C4C00BC */ lw $t4, 0xbc($v0) +/* 08529C 7F05076C 19800006 */ blez $t4, .L7F050788 +/* 0852A0 7F050770 00000000 */ nop +/* 0852A4 7F050774 8C4D0090 */ lw $t5, 0x90($v0) +/* 0852A8 7F050778 15A00003 */ bnez $t5, .L7F050788 +/* 0852AC 7F05077C 00000000 */ nop +/* 0852B0 7F050780 10000167 */ b .L7F050D20 +/* 0852B4 7F050784 00001025 */ move $v0, $zero +.L7F050788: +/* 0852B8 7F050788 0FC0F9EB */ jal sub_GAME_7F03E7AC +/* 0852BC 7F05078C 00000000 */ nop +/* 0852C0 7F050790 14400003 */ bnez $v0, .L7F0507A0 +/* 0852C4 7F050794 8FA50084 */ lw $a1, 0x84($sp) +/* 0852C8 7F050798 10000161 */ b .L7F050D20 +/* 0852CC 7F05079C 00001025 */ move $v0, $zero +.L7F0507A0: +/* 0852D0 7F0507A0 90A20003 */ lbu $v0, 3($a1) +/* 0852D4 7F0507A4 24010008 */ li $at, 8 +/* 0852D8 7F0507A8 8FAE0088 */ lw $t6, 0x88($sp) +/* 0852DC 7F0507AC 54410064 */ bnel $v0, $at, .L7F050940 +/* 0852E0 7F0507B0 24010007 */ li $at, 7 +/* 0852E4 7F0507B4 8DC30004 */ lw $v1, 4($t6) +/* 0852E8 7F0507B8 2401001A */ li $at, 26 +/* 0852EC 7F0507BC 80640080 */ lb $a0, 0x80($v1) +/* 0852F0 7F0507C0 10810003 */ beq $a0, $at, .L7F0507D0 +/* 0852F4 7F0507C4 24010057 */ li $at, 87 +/* 0852F8 7F0507C8 5481000B */ bnel $a0, $at, .L7F0507F8 +/* 0852FC 7F0507CC 2401001D */ li $at, 29 +.L7F0507D0: +/* 085300 7F0507D0 846F0082 */ lh $t7, 0x82($v1) +/* 085304 7F0507D4 05E10005 */ bgez $t7, .L7F0507EC +/* 085308 7F0507D8 00000000 */ nop +/* 08530C 7F0507DC 8CB80064 */ lw $t8, 0x64($a1) +/* 085310 7F0507E0 33190004 */ andi $t9, $t8, 4 +/* 085314 7F0507E4 53200004 */ beql $t9, $zero, .L7F0507F8 +/* 085318 7F0507E8 2401001D */ li $at, 29 +.L7F0507EC: +/* 08531C 7F0507EC 1000014C */ b .L7F050D20 +/* 085320 7F0507F0 00001025 */ move $v0, $zero +/* 085324 7F0507F4 2401001D */ li $at, 29 +.L7F0507F8: +/* 085328 7F0507F8 1081000D */ beq $a0, $at, .L7F050830 +/* 08532C 7F0507FC 2401001C */ li $at, 28 +/* 085330 7F050800 1081000B */ beq $a0, $at, .L7F050830 +/* 085334 7F050804 2401001B */ li $at, 27 +/* 085338 7F050808 10810009 */ beq $a0, $at, .L7F050830 +/* 08533C 7F05080C 24010021 */ li $at, 33 +/* 085340 7F050810 10810007 */ beq $a0, $at, .L7F050830 +/* 085344 7F050814 2401002F */ li $at, 47 +/* 085348 7F050818 10810005 */ beq $a0, $at, .L7F050830 +/* 08534C 7F05081C 24010030 */ li $at, 48 +/* 085350 7F050820 10810003 */ beq $a0, $at, .L7F050830 +/* 085354 7F050824 24010022 */ li $at, 34 +/* 085358 7F050828 5481000B */ bnel $a0, $at, .L7F050858 +/* 08535C 7F05082C 24010056 */ li $at, 86 +.L7F050830: +/* 085360 7F050830 84690082 */ lh $t1, 0x82($v1) +/* 085364 7F050834 05210005 */ bgez $t1, .L7F05084C +/* 085368 7F050838 00000000 */ nop +/* 08536C 7F05083C 8CAA0064 */ lw $t2, 0x64($a1) +/* 085370 7F050840 314B0004 */ andi $t3, $t2, 4 +/* 085374 7F050844 51600004 */ beql $t3, $zero, .L7F050858 +/* 085378 7F050848 24010056 */ li $at, 86 +.L7F05084C: +/* 08537C 7F05084C 10000134 */ b .L7F050D20 +/* 085380 7F050850 00001025 */ move $v0, $zero +/* 085384 7F050854 24010056 */ li $at, 86 +.L7F050858: +/* 085388 7F050858 14810007 */ bne $a0, $at, .L7F050878 +/* 08538C 7F05085C 00000000 */ nop +/* 085390 7F050860 8CAC0064 */ lw $t4, 0x64($a1) +/* 085394 7F050864 318D0080 */ andi $t5, $t4, 0x80 +/* 085398 7F050868 11A00003 */ beqz $t5, .L7F050878 +/* 08539C 7F05086C 00000000 */ nop +/* 0853A0 7F050870 1000012B */ b .L7F050D20 +/* 0853A4 7F050874 00001025 */ move $v0, $zero +.L7F050878: +/* 0853A8 7F050878 0FC230C5 */ jal is_weapon_in_inv +/* 0853AC 7F05087C AFA30080 */ sw $v1, 0x80($sp) +/* 0853B0 7F050880 1040009B */ beqz $v0, .L7F050AF0 +/* 0853B4 7F050884 8FA30080 */ lw $v1, 0x80($sp) +/* 0853B8 7F050888 80640080 */ lb $a0, 0x80($v1) +/* 0853BC 7F05088C 0FC1A50B */ jal get_ammo_type_for_weapon +/* 0853C0 7F050890 AFA30080 */ sw $v1, 0x80($sp) +/* 0853C4 7F050894 10400096 */ beqz $v0, .L7F050AF0 +/* 0853C8 7F050898 8FA30080 */ lw $v1, 0x80($sp) +/* 0853CC 7F05089C 80640080 */ lb $a0, 0x80($v1) +/* 0853D0 7F0508A0 0FC1A514 */ jal get_ammo_count_for_weapon +/* 0853D4 7F0508A4 AFA30080 */ sw $v1, 0x80($sp) +/* 0853D8 7F0508A8 8FA30080 */ lw $v1, 0x80($sp) +/* 0853DC 7F0508AC 80640080 */ lb $a0, 0x80($v1) +/* 0853E0 7F0508B0 0FC1A52C */ jal get_max_ammo_for_weapon +/* 0853E4 7F0508B4 AFA20038 */ sw $v0, 0x38($sp) +/* 0853E8 7F0508B8 8FA60038 */ lw $a2, 0x38($sp) +/* 0853EC 7F0508BC 8FA30080 */ lw $v1, 0x80($sp) +/* 0853F0 7F0508C0 00C2082A */ slt $at, $a2, $v0 +/* 0853F4 7F0508C4 1420008A */ bnez $at, .L7F050AF0 +/* 0853F8 7F0508C8 00000000 */ nop +/* 0853FC 7F0508CC 8C620084 */ lw $v0, 0x84($v1) +/* 085400 7F0508D0 14400004 */ bnez $v0, .L7F0508E4 +/* 085404 7F0508D4 00000000 */ nop +/* 085408 7F0508D8 806E0081 */ lb $t6, 0x81($v1) +/* 08540C 7F0508DC 05C00015 */ bltz $t6, .L7F050934 +/* 085410 7F0508E0 00000000 */ nop +.L7F0508E4: +/* 085414 7F0508E4 50400005 */ beql $v0, $zero, .L7F0508FC +/* 085418 7F0508E8 80650081 */ lb $a1, 0x81($v1) +/* 08541C 7F0508EC 80450080 */ lb $a1, 0x80($v0) +/* 085420 7F0508F0 10000003 */ b .L7F050900 +/* 085424 7F0508F4 00A02025 */ move $a0, $a1 +/* 085428 7F0508F8 80650081 */ lb $a1, 0x81($v1) +.L7F0508FC: +/* 08542C 7F0508FC 00A02025 */ move $a0, $a1 +.L7F050900: +/* 085430 7F050900 8C6F0008 */ lw $t7, 8($v1) +/* 085434 7F050904 000FC0C0 */ sll $t8, $t7, 3 +/* 085438 7F050908 07030004 */ bgezl $t8, .L7F05091C +/* 08543C 7F05090C 80640080 */ lb $a0, 0x80($v1) +/* 085440 7F050910 10000002 */ b .L7F05091C +/* 085444 7F050914 80650080 */ lb $a1, 0x80($v1) +/* 085448 7F050918 80640080 */ lb $a0, 0x80($v1) +.L7F05091C: +/* 08544C 7F05091C 0FC230E7 */ jal is_item_for_hand_in_inventory +/* 085450 7F050920 00000000 */ nop +/* 085454 7F050924 10400072 */ beqz $v0, .L7F050AF0 +/* 085458 7F050928 00000000 */ nop +/* 08545C 7F05092C 100000FC */ b .L7F050D20 +/* 085460 7F050930 00001025 */ move $v0, $zero +.L7F050934: +/* 085464 7F050934 100000FA */ b .L7F050D20 +/* 085468 7F050938 00001025 */ move $v0, $zero +/* 08546C 7F05093C 24010007 */ li $at, 7 +.L7F050940: +/* 085470 7F050940 1441000F */ bne $v0, $at, .L7F050980 +/* 085474 7F050944 8FB90088 */ lw $t9, 0x88($sp) +/* 085478 7F050948 8F230004 */ lw $v1, 4($t9) +/* 08547C 7F05094C 8C640080 */ lw $a0, 0x80($v1) +/* 085480 7F050950 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory +/* 085484 7F050954 AFA30074 */ sw $v1, 0x74($sp) +/* 085488 7F050958 8FA30074 */ lw $v1, 0x74($sp) +/* 08548C 7F05095C 8C640080 */ lw $a0, 0x80($v1) +/* 085490 7F050960 0FC1A4B5 */ jal get_max_ammo_for_type +/* 085494 7F050964 AFA20038 */ sw $v0, 0x38($sp) +/* 085498 7F050968 8FA60038 */ lw $a2, 0x38($sp) +/* 08549C 7F05096C 00C2082A */ slt $at, $a2, $v0 +/* 0854A0 7F050970 1420005F */ bnez $at, .L7F050AF0 +/* 0854A4 7F050974 00000000 */ nop +/* 0854A8 7F050978 100000E9 */ b .L7F050D20 +/* 0854AC 7F05097C 00001025 */ move $v0, $zero +.L7F050980: +/* 0854B0 7F050980 24010014 */ li $at, 20 +/* 0854B4 7F050984 1441002C */ bne $v0, $at, .L7F050A38 +/* 0854B8 7F050988 8FA90088 */ lw $t1, 0x88($sp) +/* 0854BC 7F05098C 8D2A0004 */ lw $t2, 4($t1) +/* 0854C0 7F050990 240B0001 */ li $t3, 1 +/* 0854C4 7F050994 AFAB006C */ sw $t3, 0x6c($sp) +/* 0854C8 7F050998 00A02025 */ move $a0, $a1 +/* 0854CC 7F05099C 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 0854D0 7F0509A0 AFAA0070 */ sw $t2, 0x70($sp) +/* 0854D4 7F0509A4 10400003 */ beqz $v0, .L7F0509B4 +/* 0854D8 7F0509A8 8FA30070 */ lw $v1, 0x70($sp) +/* 0854DC 7F0509AC 100000DC */ b .L7F050D20 +/* 0854E0 7F0509B0 00001025 */ move $v0, $zero +.L7F0509B4: +/* 0854E4 7F0509B4 00001025 */ move $v0, $zero +.L7F0509B8: +/* 0854E8 7F0509B8 24450001 */ addiu $a1, $v0, 1 +/* 0854EC 7F0509BC 24010001 */ li $at, 1 +/* 0854F0 7F0509C0 14410002 */ bne $v0, $at, .L7F0509CC +/* 0854F4 7F0509C4 00A02025 */ move $a0, $a1 +/* 0854F8 7F0509C8 24040001 */ li $a0, 1 +.L7F0509CC: +/* 0854FC 7F0509CC 946C0082 */ lhu $t4, 0x82($v1) +/* 085500 7F0509D0 59800011 */ blezl $t4, .L7F050A18 +/* 085504 7F0509D4 2401000D */ li $at, 13 +/* 085508 7F0509D8 AFA30030 */ sw $v1, 0x30($sp) +/* 08550C 7F0509DC AFA40064 */ sw $a0, 0x64($sp) +/* 085510 7F0509E0 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory +/* 085514 7F0509E4 AFA50034 */ sw $a1, 0x34($sp) +/* 085518 7F0509E8 8FA40064 */ lw $a0, 0x64($sp) +/* 08551C 7F0509EC 0FC1A4B5 */ jal get_max_ammo_for_type +/* 085520 7F0509F0 AFA20038 */ sw $v0, 0x38($sp) +/* 085524 7F0509F4 8FA60038 */ lw $a2, 0x38($sp) +/* 085528 7F0509F8 8FA30030 */ lw $v1, 0x30($sp) +/* 08552C 7F0509FC 8FA50034 */ lw $a1, 0x34($sp) +/* 085530 7F050A00 00C2082A */ slt $at, $a2, $v0 +/* 085534 7F050A04 50200004 */ beql $at, $zero, .L7F050A18 +/* 085538 7F050A08 2401000D */ li $at, 13 +/* 08553C 7F050A0C 10000005 */ b .L7F050A24 +/* 085540 7F050A10 AFA0006C */ sw $zero, 0x6c($sp) +/* 085544 7F050A14 2401000D */ li $at, 13 +.L7F050A18: +/* 085548 7F050A18 00A01025 */ move $v0, $a1 +/* 08554C 7F050A1C 14A1FFE6 */ bne $a1, $at, .L7F0509B8 +/* 085550 7F050A20 24630004 */ addiu $v1, $v1, 4 +.L7F050A24: +/* 085554 7F050A24 8FAD006C */ lw $t5, 0x6c($sp) +/* 085558 7F050A28 11A00031 */ beqz $t5, .L7F050AF0 +/* 08555C 7F050A2C 00000000 */ nop +/* 085560 7F050A30 100000BB */ b .L7F050D20 +/* 085564 7F050A34 00001025 */ move $v0, $zero +.L7F050A38: +/* 085568 7F050A38 24010015 */ li $at, 21 +/* 08556C 7F050A3C 1441002C */ bne $v0, $at, .L7F050AF0 +/* 085570 7F050A40 8FAE0088 */ lw $t6, 0x88($sp) +/* 085574 7F050A44 8DCF0004 */ lw $t7, 4($t6) +/* 085578 7F050A48 AFA0005C */ sw $zero, 0x5c($sp) +/* 08557C 7F050A4C 0FC228BF */ jal get_BONDdata_watch_armor +/* 085580 7F050A50 AFAF0060 */ sw $t7, 0x60($sp) +/* 085584 7F050A54 8FB80060 */ lw $t8, 0x60($sp) +/* 085588 7F050A58 24190001 */ li $t9, 1 +/* 08558C 7F050A5C C7040084 */ lwc1 $f4, 0x84($t8) +/* 085590 7F050A60 4600203E */ c.le.s $f4, $f0 +/* 085594 7F050A64 00000000 */ nop +/* 085598 7F050A68 45000003 */ bc1f .L7F050A78 +/* 08559C 7F050A6C 00000000 */ nop +/* 0855A0 7F050A70 1000001A */ b .L7F050ADC +/* 0855A4 7F050A74 AFB9005C */ sw $t9, 0x5c($sp) +.L7F050A78: +/* 0855A8 7F050A78 0FC26919 */ jal get_num_players +/* 0855AC 7F050A7C 00000000 */ nop +/* 0855B0 7F050A80 28410002 */ slti $at, $v0, 2 +/* 0855B4 7F050A84 54200016 */ bnezl $at, .L7F050AE0 +/* 0855B8 7F050A88 8FAB005C */ lw $t3, 0x5c($sp) +/* 0855BC 7F050A8C 0FC051D6 */ jal get_scenario +/* 0855C0 7F050A90 00000000 */ nop +/* 0855C4 7F050A94 24010002 */ li $at, 2 +/* 0855C8 7F050A98 14410008 */ bne $v0, $at, .L7F050ABC +/* 0855CC 7F050A9C 00401825 */ move $v1, $v0 +/* 0855D0 7F050AA0 0FC233E0 */ jal bondinvIsAliveWithFlag +/* 0855D4 7F050AA4 AFA20058 */ sw $v0, 0x58($sp) +/* 0855D8 7F050AA8 10400004 */ beqz $v0, .L7F050ABC +/* 0855DC 7F050AAC 8FA30058 */ lw $v1, 0x58($sp) +/* 0855E0 7F050AB0 24090001 */ li $t1, 1 +/* 0855E4 7F050AB4 10000009 */ b .L7F050ADC +/* 0855E8 7F050AB8 AFA9005C */ sw $t1, 0x5c($sp) +.L7F050ABC: +/* 0855EC 7F050ABC 24010003 */ li $at, 3 +/* 0855F0 7F050AC0 54610007 */ bnel $v1, $at, .L7F050AE0 +/* 0855F4 7F050AC4 8FAB005C */ lw $t3, 0x5c($sp) +/* 0855F8 7F050AC8 0FC233F0 */ jal checkforgoldengun +/* 0855FC 7F050ACC 00000000 */ nop +/* 085600 7F050AD0 10400002 */ beqz $v0, .L7F050ADC +/* 085604 7F050AD4 240A0001 */ li $t2, 1 +/* 085608 7F050AD8 AFAA005C */ sw $t2, 0x5c($sp) +.L7F050ADC: +/* 08560C 7F050ADC 8FAB005C */ lw $t3, 0x5c($sp) +.L7F050AE0: +/* 085610 7F050AE0 11600003 */ beqz $t3, .L7F050AF0 +/* 085614 7F050AE4 00000000 */ nop +/* 085618 7F050AE8 1000008D */ b .L7F050D20 +/* 08561C 7F050AEC 00001025 */ move $v0, $zero +.L7F050AF0: +/* 085620 7F050AF0 0FC227C4 */ jal get_curplay_vertical_rotation_in_degrees +/* 085624 7F050AF4 00000000 */ nop +/* 085628 7F050AF8 3C018005 */ lui $at, %hi(D_800532E0) +/* 08562C 7F050AFC C42632E0 */ lwc1 $f6, %lo(D_800532E0)($at) +/* 085630 7F050B00 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 085634 7F050B04 4606003C */ c.lt.s $f0, $f6 +/* 085638 7F050B08 00000000 */ nop +/* 08563C 7F050B0C 45000007 */ bc1f .L7F050B2C +/* 085640 7F050B10 00000000 */ nop +/* 085644 7F050B14 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 085648 7F050B18 8D8D1270 */ lw $t5, 0x1270($t4) +/* 08564C 7F050B1C 05A10003 */ bgez $t5, .L7F050B2C +/* 085650 7F050B20 00000000 */ nop +/* 085654 7F050B24 1000007E */ b .L7F050D20 +/* 085658 7F050B28 00001025 */ move $v0, $zero +.L7F050B2C: +/* 08565C 7F050B2C 0FC225E6 */ jal get_curplayer_positiondata +/* 085660 7F050B30 00000000 */ nop +/* 085664 7F050B34 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 085668 7F050B38 8FAE0084 */ lw $t6, 0x84($sp) +/* 08566C 7F050B3C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 085670 7F050B40 C44A0008 */ lwc1 $f10, 8($v0) +/* 085674 7F050B44 C452000C */ lwc1 $f18, 0xc($v0) +/* 085678 7F050B48 8DF81270 */ lw $t8, 0x1270($t7) +/* 08567C 7F050B4C C4460010 */ lwc1 $f6, 0x10($v0) +/* 085680 7F050B50 C5C80058 */ lwc1 $f8, 0x58($t6) +/* 085684 7F050B54 C5D0005C */ lwc1 $f16, 0x5c($t6) +/* 085688 7F050B58 C5C40060 */ lwc1 $f4, 0x60($t6) +/* 08568C 7F050B5C 2B01003C */ slti $at, $t8, 0x3c +/* 085690 7F050B60 00404025 */ move $t0, $v0 +/* 085694 7F050B64 460A4001 */ sub.s $f0, $f8, $f10 +/* 085698 7F050B68 46128301 */ sub.s $f12, $f16, $f18 +/* 08569C 7F050B6C 14200022 */ bnez $at, .L7F050BF8 +/* 0856A0 7F050B70 46062081 */ sub.s $f2, $f4, $f6 +/* 0856A4 7F050B74 46000202 */ mul.s $f8, $f0, $f0 +/* 0856A8 7F050B78 3C018005 */ lui $at, %hi(D_800532E4) +/* 0856AC 7F050B7C C43232E4 */ lwc1 $f18, %lo(D_800532E4)($at) +/* 0856B0 7F050B80 46021282 */ mul.s $f10, $f2, $f2 +/* 0856B4 7F050B84 3C01C3FA */ li $at, 0xC3FA0000 # -500.000000 +/* 0856B8 7F050B88 00001025 */ move $v0, $zero +/* 0856BC 7F050B8C 460A4400 */ add.s $f16, $f8, $f10 +/* 0856C0 7F050B90 4612803E */ c.le.s $f16, $f18 +/* 0856C4 7F050B94 00000000 */ nop +/* 0856C8 7F050B98 45000002 */ bc1f .L7F050BA4 +/* 0856CC 7F050B9C 00000000 */ nop +/* 0856D0 7F050BA0 24020001 */ li $v0, 1 +.L7F050BA4: +/* 0856D4 7F050BA4 10400012 */ beqz $v0, .L7F050BF0 +/* 0856D8 7F050BA8 00403025 */ move $a2, $v0 +/* 0856DC 7F050BAC 44812000 */ mtc1 $at, $f4 +/* 0856E0 7F050BB0 3C0143FA */ li $at, 0x43FA0000 # 500.000000 +/* 0856E4 7F050BB4 00001025 */ move $v0, $zero +/* 0856E8 7F050BB8 460C203E */ c.le.s $f4, $f12 +/* 0856EC 7F050BBC 00000000 */ nop +/* 0856F0 7F050BC0 45000002 */ bc1f .L7F050BCC +/* 0856F4 7F050BC4 00000000 */ nop +/* 0856F8 7F050BC8 24020001 */ li $v0, 1 +.L7F050BCC: +/* 0856FC 7F050BCC 10400008 */ beqz $v0, .L7F050BF0 +/* 085700 7F050BD0 00403025 */ move $a2, $v0 +/* 085704 7F050BD4 44813000 */ mtc1 $at, $f6 +/* 085708 7F050BD8 00003025 */ move $a2, $zero +/* 08570C 7F050BDC 4606603E */ c.le.s $f12, $f6 +/* 085710 7F050BE0 00000000 */ nop +/* 085714 7F050BE4 45000002 */ bc1f .L7F050BF0 +/* 085718 7F050BE8 00000000 */ nop +/* 08571C 7F050BEC 24060001 */ li $a2, 1 +.L7F050BF0: +/* 085720 7F050BF0 10000021 */ b .L7F050C78 +/* 085724 7F050BF4 00C01825 */ move $v1, $a2 +.L7F050BF8: +/* 085728 7F050BF8 46000202 */ mul.s $f8, $f0, $f0 +/* 08572C 7F050BFC 3C018005 */ lui $at, %hi(D_800532E8) +/* 085730 7F050C00 C43032E8 */ lwc1 $f16, %lo(D_800532E8)($at) +/* 085734 7F050C04 46021282 */ mul.s $f10, $f2, $f2 +/* 085738 7F050C08 3C01C348 */ li $at, 0xC3480000 # -200.000000 +/* 08573C 7F050C0C 00001025 */ move $v0, $zero +/* 085740 7F050C10 460A4480 */ add.s $f18, $f8, $f10 +/* 085744 7F050C14 4610903E */ c.le.s $f18, $f16 +/* 085748 7F050C18 00000000 */ nop +/* 08574C 7F050C1C 45000002 */ bc1f .L7F050C28 +/* 085750 7F050C20 00000000 */ nop +/* 085754 7F050C24 24020001 */ li $v0, 1 +.L7F050C28: +/* 085758 7F050C28 10400012 */ beqz $v0, .L7F050C74 +/* 08575C 7F050C2C 00403025 */ move $a2, $v0 +/* 085760 7F050C30 44812000 */ mtc1 $at, $f4 +/* 085764 7F050C34 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 085768 7F050C38 00001025 */ move $v0, $zero +/* 08576C 7F050C3C 460C203E */ c.le.s $f4, $f12 +/* 085770 7F050C40 00000000 */ nop +/* 085774 7F050C44 45000002 */ bc1f .L7F050C50 +/* 085778 7F050C48 00000000 */ nop +/* 08577C 7F050C4C 24020001 */ li $v0, 1 +.L7F050C50: +/* 085780 7F050C50 10400008 */ beqz $v0, .L7F050C74 +/* 085784 7F050C54 00403025 */ move $a2, $v0 +/* 085788 7F050C58 44813000 */ mtc1 $at, $f6 +/* 08578C 7F050C5C 00003025 */ move $a2, $zero +/* 085790 7F050C60 4606603E */ c.le.s $f12, $f6 +/* 085794 7F050C64 00000000 */ nop +/* 085798 7F050C68 45020003 */ bc1fl .L7F050C78 +/* 08579C 7F050C6C 00C01825 */ move $v1, $a2 +/* 0857A0 7F050C70 24060001 */ li $a2, 1 +.L7F050C74: +/* 0857A4 7F050C74 00C01825 */ move $v1, $a2 +.L7F050C78: +/* 0857A8 7F050C78 10C00022 */ beqz $a2, .L7F050D04 +/* 0857AC 7F050C7C 8FB90084 */ lw $t9, 0x84($sp) +/* 0857B0 7F050C80 8F29000C */ lw $t1, 0xc($t9) +/* 0857B4 7F050C84 8FA20088 */ lw $v0, 0x88($sp) +/* 0857B8 7F050C88 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0857BC 7F050C8C 312A1000 */ andi $t2, $t1, 0x1000 +/* 0857C0 7F050C90 1540001C */ bnez $t2, .L7F050D04 +/* 0857C4 7F050C94 27A4003C */ addiu $a0, $sp, 0x3c +/* 0857C8 7F050C98 8D0B0014 */ lw $t3, 0x14($t0) +/* 0857CC 7F050C9C 44810000 */ mtc1 $at, $f0 +/* 0857D0 7F050CA0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0857D4 7F050CA4 AFAB003C */ sw $t3, 0x3c($sp) +/* 0857D8 7F050CA8 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0857DC 7F050CAC 8C470008 */ lw $a3, 8($v0) +/* 0857E0 7F050CB0 8D060010 */ lw $a2, 0x10($t0) +/* 0857E4 7F050CB4 8D050008 */ lw $a1, 8($t0) +/* 0857E8 7F050CB8 44818000 */ mtc1 $at, $f16 +/* 0857EC 7F050CBC 44805000 */ mtc1 $zero, $f10 +/* 0857F0 7F050CC0 240C0002 */ li $t4, 2 +/* 0857F4 7F050CC4 AFAC0014 */ sw $t4, 0x14($sp) +/* 0857F8 7F050CC8 AFA30040 */ sw $v1, 0x40($sp) +/* 0857FC 7F050CCC E7A0001C */ swc1 $f0, 0x1c($sp) +/* 085800 7F050CD0 E7A00018 */ swc1 $f0, 0x18($sp) +/* 085804 7F050CD4 E7A80010 */ swc1 $f8, 0x10($sp) +/* 085808 7F050CD8 E7B00024 */ swc1 $f16, 0x24($sp) +/* 08580C 7F050CDC 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 085810 7F050CE0 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 085814 7F050CE4 10400006 */ beqz $v0, .L7F050D00 +/* 085818 7F050CE8 8FA30040 */ lw $v1, 0x40($sp) +/* 08581C 7F050CEC 8FAE0088 */ lw $t6, 0x88($sp) +/* 085820 7F050CF0 8FAD003C */ lw $t5, 0x3c($sp) +/* 085824 7F050CF4 8DCF0014 */ lw $t7, 0x14($t6) +/* 085828 7F050CF8 11AF0002 */ beq $t5, $t7, .L7F050D04 +/* 08582C 7F050CFC 00000000 */ nop +.L7F050D00: +/* 085830 7F050D00 00001825 */ move $v1, $zero +.L7F050D04: +/* 085834 7F050D04 10600006 */ beqz $v1, .L7F050D20 +/* 085838 7F050D08 00001025 */ move $v0, $zero +/* 08583C 7F050D0C 8FA40088 */ lw $a0, 0x88($sp) +/* 085840 7F050D10 0FC14094 */ jal collect_or_interact_object +/* 085844 7F050D14 24050001 */ li $a1, 1 +/* 085848 7F050D18 10000002 */ b .L7F050D24 +/* 08584C 7F050D1C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F050D20: +/* 085850 7F050D20 8FBF002C */ lw $ra, 0x2c($sp) +.L7F050D24: +/* 085854 7F050D24 27BD0088 */ addiu $sp, $sp, 0x88 +/* 085858 7F050D28 03E00008 */ jr $ra +/* 08585C 7F050D2C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_800532E0 +.word 0xbf490fdb /*-0.78539819*/ +glabel D_800532E4 +.word 0x47ef4200 /*122500.0*/ +glabel D_800532E8 +.word 0x461c4000 /*10000.0*/ +glabel D_800532EC +.word 0x47742400 /*62500.0*/ +glabel D_800532F0 +.word 0x40490fdb /*3.1415927*/ +.text +glabel object_collectability_routines +/* 085650 7F050AE0 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 085654 7F050AE4 AFBF0034 */ sw $ra, 0x34($sp) +/* 085658 7F050AE8 AFB00030 */ sw $s0, 0x30($sp) +/* 08565C 7F050AEC AFA40090 */ sw $a0, 0x90($sp) +/* 085660 7F050AF0 8C840004 */ lw $a0, 4($a0) +/* 085664 7F050AF4 0FC13904 */ jal check_if_collectable_object +/* 085668 7F050AF8 AFA4008C */ sw $a0, 0x8c($sp) +/* 08566C 7F050AFC 1040000B */ beqz $v0, .Ljp7F050B2C +/* 085670 7F050B00 8FA4008C */ lw $a0, 0x8c($sp) +/* 085674 7F050B04 908F0003 */ lbu $t7, 3($a0) +/* 085678 7F050B08 24010011 */ li $at, 17 +/* 08567C 7F050B0C 51E10008 */ beql $t7, $at, .Ljp7F050B30 +/* 085680 7F050B10 8FA4008C */ lw $a0, 0x8c($sp) +/* 085684 7F050B14 8C820008 */ lw $v0, 8($a0) +/* 085688 7F050B18 0002C2C0 */ sll $t8, $v0, 0xb +/* 08568C 7F050B1C 0703000B */ bgezl $t8, .Ljp7F050B4C +/* 085690 7F050B20 00024B00 */ sll $t1, $v0, 0xc +/* 085694 7F050B24 100001BC */ b .Ljp7F051218 +/* 085698 7F050B28 00001025 */ move $v0, $zero +.Ljp7F050B2C: +/* 08569C 7F050B2C 8FA4008C */ lw $a0, 0x8c($sp) +.Ljp7F050B30: +/* 0856A0 7F050B30 8C820008 */ lw $v0, 8($a0) +/* 0856A4 7F050B34 0002CB40 */ sll $t9, $v0, 0xd +/* 0856A8 7F050B38 07220004 */ bltzl $t9, .Ljp7F050B4C +/* 0856AC 7F050B3C 00024B00 */ sll $t1, $v0, 0xc +/* 0856B0 7F050B40 100001B5 */ b .Ljp7F051218 +/* 0856B4 7F050B44 00001025 */ move $v0, $zero +/* 0856B8 7F050B48 00024B00 */ sll $t1, $v0, 0xc +.Ljp7F050B4C: +/* 0856BC 7F050B4C 05230004 */ bgezl $t1, .Ljp7F050B60 +/* 0856C0 7F050B50 8C8A0064 */ lw $t2, 0x64($a0) +/* 0856C4 7F050B54 100001B0 */ b .Ljp7F051218 +/* 0856C8 7F050B58 00001025 */ move $v0, $zero +/* 0856CC 7F050B5C 8C8A0064 */ lw $t2, 0x64($a0) +.Ljp7F050B60: +/* 0856D0 7F050B60 314B0080 */ andi $t3, $t2, 0x80 +/* 0856D4 7F050B64 1160000A */ beqz $t3, .Ljp7F050B90 +/* 0856D8 7F050B68 00000000 */ nop +/* 0856DC 7F050B6C 8C82006C */ lw $v0, 0x6c($a0) +/* 0856E0 7F050B70 8C4C00BC */ lw $t4, 0xbc($v0) +/* 0856E4 7F050B74 19800006 */ blez $t4, .Ljp7F050B90 +/* 0856E8 7F050B78 00000000 */ nop +/* 0856EC 7F050B7C 8C4D0090 */ lw $t5, 0x90($v0) +/* 0856F0 7F050B80 15A00003 */ bnez $t5, .Ljp7F050B90 +/* 0856F4 7F050B84 00000000 */ nop +/* 0856F8 7F050B88 100001A3 */ b .Ljp7F051218 +/* 0856FC 7F050B8C 00001025 */ move $v0, $zero +.Ljp7F050B90: +/* 085700 7F050B90 0FC0FAAB */ jal sub_GAME_7F03E7AC +/* 085704 7F050B94 00000000 */ nop +/* 085708 7F050B98 14400003 */ bnez $v0, .Ljp7F050BA8 +/* 08570C 7F050B9C 8FA5008C */ lw $a1, 0x8c($sp) +/* 085710 7F050BA0 1000019D */ b .Ljp7F051218 +/* 085714 7F050BA4 00001025 */ move $v0, $zero +.Ljp7F050BA8: +/* 085718 7F050BA8 90A20003 */ lbu $v0, 3($a1) +/* 08571C 7F050BAC 24010008 */ li $at, 8 +/* 085720 7F050BB0 8FAE0090 */ lw $t6, 0x90($sp) +/* 085724 7F050BB4 54410060 */ bnel $v0, $at, .Ljp7F050D38 +/* 085728 7F050BB8 24010007 */ li $at, 7 +/* 08572C 7F050BBC 8DD00004 */ lw $s0, 4($t6) +/* 085730 7F050BC0 2401001A */ li $at, 26 +/* 085734 7F050BC4 82040080 */ lb $a0, 0x80($s0) +/* 085738 7F050BC8 10810003 */ beq $a0, $at, .Ljp7F050BD8 +/* 08573C 7F050BCC 24010057 */ li $at, 87 +/* 085740 7F050BD0 5481000B */ bnel $a0, $at, .Ljp7F050C00 +/* 085744 7F050BD4 2401001D */ li $at, 29 +.Ljp7F050BD8: +/* 085748 7F050BD8 860F0082 */ lh $t7, 0x82($s0) +/* 08574C 7F050BDC 05E10005 */ bgez $t7, .Ljp7F050BF4 +/* 085750 7F050BE0 00000000 */ nop +/* 085754 7F050BE4 8CB80064 */ lw $t8, 0x64($a1) +/* 085758 7F050BE8 33190004 */ andi $t9, $t8, 4 +/* 08575C 7F050BEC 53200004 */ beql $t9, $zero, .Ljp7F050C00 +/* 085760 7F050BF0 2401001D */ li $at, 29 +.Ljp7F050BF4: +/* 085764 7F050BF4 10000188 */ b .Ljp7F051218 +/* 085768 7F050BF8 00001025 */ move $v0, $zero +/* 08576C 7F050BFC 2401001D */ li $at, 29 +.Ljp7F050C00: +/* 085770 7F050C00 1081000D */ beq $a0, $at, .Ljp7F050C38 +/* 085774 7F050C04 2401001C */ li $at, 28 +/* 085778 7F050C08 1081000B */ beq $a0, $at, .Ljp7F050C38 +/* 08577C 7F050C0C 2401001B */ li $at, 27 +/* 085780 7F050C10 10810009 */ beq $a0, $at, .Ljp7F050C38 +/* 085784 7F050C14 24010021 */ li $at, 33 +/* 085788 7F050C18 10810007 */ beq $a0, $at, .Ljp7F050C38 +/* 08578C 7F050C1C 2401002F */ li $at, 47 +/* 085790 7F050C20 10810005 */ beq $a0, $at, .Ljp7F050C38 +/* 085794 7F050C24 24010030 */ li $at, 48 +/* 085798 7F050C28 10810003 */ beq $a0, $at, .Ljp7F050C38 +/* 08579C 7F050C2C 24010022 */ li $at, 34 +/* 0857A0 7F050C30 5481000B */ bnel $a0, $at, .Ljp7F050C60 +/* 0857A4 7F050C34 24010056 */ li $at, 86 +.Ljp7F050C38: +/* 0857A8 7F050C38 86090082 */ lh $t1, 0x82($s0) +/* 0857AC 7F050C3C 05210005 */ bgez $t1, .Ljp7F050C54 +/* 0857B0 7F050C40 00000000 */ nop +/* 0857B4 7F050C44 8CAA0064 */ lw $t2, 0x64($a1) +/* 0857B8 7F050C48 314B0004 */ andi $t3, $t2, 4 +/* 0857BC 7F050C4C 51600004 */ beql $t3, $zero, .Ljp7F050C60 +/* 0857C0 7F050C50 24010056 */ li $at, 86 +.Ljp7F050C54: +/* 0857C4 7F050C54 10000170 */ b .Ljp7F051218 +/* 0857C8 7F050C58 00001025 */ move $v0, $zero +/* 0857CC 7F050C5C 24010056 */ li $at, 86 +.Ljp7F050C60: +/* 0857D0 7F050C60 14810007 */ bne $a0, $at, .Ljp7F050C80 +/* 0857D4 7F050C64 00000000 */ nop +/* 0857D8 7F050C68 8CAC0064 */ lw $t4, 0x64($a1) +/* 0857DC 7F050C6C 318D0080 */ andi $t5, $t4, 0x80 +/* 0857E0 7F050C70 11A00003 */ beqz $t5, .Ljp7F050C80 +/* 0857E4 7F050C74 00000000 */ nop +/* 0857E8 7F050C78 10000167 */ b .Ljp7F051218 +/* 0857EC 7F050C7C 00001025 */ move $v0, $zero +.Ljp7F050C80: +/* 0857F0 7F050C80 0FC232E9 */ jal is_weapon_in_inv +/* 0857F4 7F050C84 00000000 */ nop +/* 0857F8 7F050C88 104000D9 */ beqz $v0, .Ljp7F050FF0 +/* 0857FC 7F050C8C 00000000 */ nop +/* 085800 7F050C90 0FC1A686 */ jal get_ammo_type_for_weapon +/* 085804 7F050C94 82040080 */ lb $a0, 0x80($s0) +/* 085808 7F050C98 104000D5 */ beqz $v0, .Ljp7F050FF0 +/* 08580C 7F050C9C 00000000 */ nop +/* 085810 7F050CA0 0FC1A68F */ jal get_ammo_count_for_weapon +/* 085814 7F050CA4 82040080 */ lb $a0, 0x80($s0) +/* 085818 7F050CA8 82040080 */ lb $a0, 0x80($s0) +/* 08581C 7F050CAC 0FC1A6A7 */ jal get_max_ammo_for_weapon +/* 085820 7F050CB0 AFA20040 */ sw $v0, 0x40($sp) +/* 085824 7F050CB4 8FA30040 */ lw $v1, 0x40($sp) +/* 085828 7F050CB8 0062082A */ slt $at, $v1, $v0 +/* 08582C 7F050CBC 142000CC */ bnez $at, .Ljp7F050FF0 +/* 085830 7F050CC0 00000000 */ nop +/* 085834 7F050CC4 8E020084 */ lw $v0, 0x84($s0) +/* 085838 7F050CC8 14400004 */ bnez $v0, .Ljp7F050CDC +/* 08583C 7F050CCC 00000000 */ nop +/* 085840 7F050CD0 820E0081 */ lb $t6, 0x81($s0) +/* 085844 7F050CD4 05C00015 */ bltz $t6, .Ljp7F050D2C +/* 085848 7F050CD8 00000000 */ nop +.Ljp7F050CDC: +/* 08584C 7F050CDC 50400005 */ beql $v0, $zero, .Ljp7F050CF4 +/* 085850 7F050CE0 82050081 */ lb $a1, 0x81($s0) +/* 085854 7F050CE4 80450080 */ lb $a1, 0x80($v0) +/* 085858 7F050CE8 10000003 */ b .Ljp7F050CF8 +/* 08585C 7F050CEC 00A02025 */ move $a0, $a1 +/* 085860 7F050CF0 82050081 */ lb $a1, 0x81($s0) +.Ljp7F050CF4: +/* 085864 7F050CF4 00A02025 */ move $a0, $a1 +.Ljp7F050CF8: +/* 085868 7F050CF8 8E0F0008 */ lw $t7, 8($s0) +/* 08586C 7F050CFC 000FC0C0 */ sll $t8, $t7, 3 +/* 085870 7F050D00 07030004 */ bgezl $t8, .Ljp7F050D14 +/* 085874 7F050D04 82040080 */ lb $a0, 0x80($s0) +/* 085878 7F050D08 10000002 */ b .Ljp7F050D14 +/* 08587C 7F050D0C 82050080 */ lb $a1, 0x80($s0) +/* 085880 7F050D10 82040080 */ lb $a0, 0x80($s0) +.Ljp7F050D14: +/* 085884 7F050D14 0FC2330B */ jal is_item_for_hand_in_inventory +/* 085888 7F050D18 00000000 */ nop +/* 08588C 7F050D1C 104000B4 */ beqz $v0, .Ljp7F050FF0 +/* 085890 7F050D20 00000000 */ nop +/* 085894 7F050D24 1000013C */ b .Ljp7F051218 +/* 085898 7F050D28 00001025 */ move $v0, $zero +.Ljp7F050D2C: +/* 08589C 7F050D2C 1000013A */ b .Ljp7F051218 +/* 0858A0 7F050D30 00001025 */ move $v0, $zero +/* 0858A4 7F050D34 24010007 */ li $at, 7 +.Ljp7F050D38: +/* 0858A8 7F050D38 14410035 */ bne $v0, $at, .Ljp7F050E10 +/* 0858AC 7F050D3C 8FB90090 */ lw $t9, 0x90($sp) +/* 0858B0 7F050D40 8F300004 */ lw $s0, 4($t9) +/* 0858B4 7F050D44 0FC1A60B */ jal check_cur_player_ammo_amount_in_inventory +/* 0858B8 7F050D48 8E040080 */ lw $a0, 0x80($s0) +/* 0858BC 7F050D4C 8E040080 */ lw $a0, 0x80($s0) +/* 0858C0 7F050D50 0FC1A630 */ jal get_max_ammo_for_type +/* 0858C4 7F050D54 AFA20040 */ sw $v0, 0x40($sp) +/* 0858C8 7F050D58 8FA30040 */ lw $v1, 0x40($sp) +/* 0858CC 7F050D5C 0062082A */ slt $at, $v1, $v0 +/* 0858D0 7F050D60 142000A3 */ bnez $at, .Ljp7F050FF0 +/* 0858D4 7F050D64 00000000 */ nop +/* 0858D8 7F050D68 8E020080 */ lw $v0, 0x80($s0) +/* 0858DC 7F050D6C 24010005 */ li $at, 5 +/* 0858E0 7F050D70 54410007 */ bnel $v0, $at, .Ljp7F050D90 +/* 0858E4 7F050D74 24010007 */ li $at, 7 +/* 0858E8 7F050D78 0FC232E9 */ jal is_weapon_in_inv +/* 0858EC 7F050D7C 2404001A */ li $a0, 26 +/* 0858F0 7F050D80 1040009B */ beqz $v0, .Ljp7F050FF0 +/* 0858F4 7F050D84 00000000 */ nop +/* 0858F8 7F050D88 8E020080 */ lw $v0, 0x80($s0) +/* 0858FC 7F050D8C 24010007 */ li $at, 7 +.Ljp7F050D90: +/* 085900 7F050D90 54410007 */ bnel $v0, $at, .Ljp7F050DB0 +/* 085904 7F050D94 24010008 */ li $at, 8 +/* 085908 7F050D98 0FC232E9 */ jal is_weapon_in_inv +/* 08590C 7F050D9C 2404001D */ li $a0, 29 +/* 085910 7F050DA0 10400093 */ beqz $v0, .Ljp7F050FF0 +/* 085914 7F050DA4 00000000 */ nop +/* 085918 7F050DA8 8E020080 */ lw $v0, 0x80($s0) +/* 08591C 7F050DAC 24010008 */ li $at, 8 +.Ljp7F050DB0: +/* 085920 7F050DB0 54410007 */ bnel $v0, $at, .Ljp7F050DD0 +/* 085924 7F050DB4 24010009 */ li $at, 9 +/* 085928 7F050DB8 0FC232E9 */ jal is_weapon_in_inv +/* 08592C 7F050DBC 2404001C */ li $a0, 28 +/* 085930 7F050DC0 1040008B */ beqz $v0, .Ljp7F050FF0 +/* 085934 7F050DC4 00000000 */ nop +/* 085938 7F050DC8 8E020080 */ lw $v0, 0x80($s0) +/* 08593C 7F050DCC 24010009 */ li $at, 9 +.Ljp7F050DD0: +/* 085940 7F050DD0 54410007 */ bnel $v0, $at, .Ljp7F050DF0 +/* 085944 7F050DD4 2401000A */ li $at, 10 +/* 085948 7F050DD8 0FC232E9 */ jal is_weapon_in_inv +/* 08594C 7F050DDC 2404001B */ li $a0, 27 +/* 085950 7F050DE0 10400083 */ beqz $v0, .Ljp7F050FF0 +/* 085954 7F050DE4 00000000 */ nop +/* 085958 7F050DE8 8E020080 */ lw $v0, 0x80($s0) +/* 08595C 7F050DEC 2401000A */ li $at, 10 +.Ljp7F050DF0: +/* 085960 7F050DF0 14410005 */ bne $v0, $at, .Ljp7F050E08 +/* 085964 7F050DF4 00000000 */ nop +/* 085968 7F050DF8 0FC232E9 */ jal is_weapon_in_inv +/* 08596C 7F050DFC 24040003 */ li $a0, 3 +/* 085970 7F050E00 1040007B */ beqz $v0, .Ljp7F050FF0 +/* 085974 7F050E04 00000000 */ nop +.Ljp7F050E08: +/* 085978 7F050E08 10000103 */ b .Ljp7F051218 +/* 08597C 7F050E0C 00001025 */ move $v0, $zero +.Ljp7F050E10: +/* 085980 7F050E10 24010014 */ li $at, 20 +/* 085984 7F050E14 1441004B */ bne $v0, $at, .Ljp7F050F44 +/* 085988 7F050E18 8FA90090 */ lw $t1, 0x90($sp) +/* 08598C 7F050E1C 8D300004 */ lw $s0, 4($t1) +/* 085990 7F050E20 240A0001 */ li $t2, 1 +/* 085994 7F050E24 AFAA0074 */ sw $t2, 0x74($sp) +/* 085998 7F050E28 0FC100B0 */ jal do_something_if_object_destroyed +/* 08599C 7F050E2C 00A02025 */ move $a0, $a1 +/* 0859A0 7F050E30 10400003 */ beqz $v0, .Ljp7F050E40 +/* 0859A4 7F050E34 02001825 */ move $v1, $s0 +/* 0859A8 7F050E38 100000F7 */ b .Ljp7F051218 +/* 0859AC 7F050E3C 00001025 */ move $v0, $zero +.Ljp7F050E40: +/* 0859B0 7F050E40 00001025 */ move $v0, $zero +.Ljp7F050E44: +/* 0859B4 7F050E44 24500001 */ addiu $s0, $v0, 1 +/* 0859B8 7F050E48 24010001 */ li $at, 1 +/* 0859BC 7F050E4C 14410002 */ bne $v0, $at, .Ljp7F050E58 +/* 0859C0 7F050E50 AFB0003C */ sw $s0, 0x3c($sp) +/* 0859C4 7F050E54 24100001 */ li $s0, 1 +.Ljp7F050E58: +/* 0859C8 7F050E58 AFA30038 */ sw $v1, 0x38($sp) +/* 0859CC 7F050E5C 946C0082 */ lhu $t4, 0x82($v1) +/* 0859D0 7F050E60 02002025 */ move $a0, $s0 +/* 0859D4 7F050E64 5980002E */ blezl $t4, .Ljp7F050F20 +/* 0859D8 7F050E68 8FA2003C */ lw $v0, 0x3c($sp) +/* 0859DC 7F050E6C 0FC1A60B */ jal check_cur_player_ammo_amount_in_inventory +/* 0859E0 7F050E70 AFA30038 */ sw $v1, 0x38($sp) +/* 0859E4 7F050E74 02002025 */ move $a0, $s0 +/* 0859E8 7F050E78 0FC1A630 */ jal get_max_ammo_for_type +/* 0859EC 7F050E7C AFA20040 */ sw $v0, 0x40($sp) +/* 0859F0 7F050E80 8FA30040 */ lw $v1, 0x40($sp) +/* 0859F4 7F050E84 0062082A */ slt $at, $v1, $v0 +/* 0859F8 7F050E88 50200004 */ beql $at, $zero, .Ljp7F050E9C +/* 0859FC 7F050E8C 24010005 */ li $at, 5 +/* 085A00 7F050E90 10000027 */ b .Ljp7F050F30 +/* 085A04 7F050E94 AFA00074 */ sw $zero, 0x74($sp) +/* 085A08 7F050E98 24010005 */ li $at, 5 +.Ljp7F050E9C: +/* 085A0C 7F050E9C 56010005 */ bnel $s0, $at, .Ljp7F050EB4 +/* 085A10 7F050EA0 24010007 */ li $at, 7 +/* 085A14 7F050EA4 0FC232E9 */ jal is_weapon_in_inv +/* 085A18 7F050EA8 2404001A */ li $a0, 26 +/* 085A1C 7F050EAC 10400019 */ beqz $v0, .Ljp7F050F14 +/* 085A20 7F050EB0 24010007 */ li $at, 7 +.Ljp7F050EB4: +/* 085A24 7F050EB4 56010005 */ bnel $s0, $at, .Ljp7F050ECC +/* 085A28 7F050EB8 24010008 */ li $at, 8 +/* 085A2C 7F050EBC 0FC232E9 */ jal is_weapon_in_inv +/* 085A30 7F050EC0 2404001D */ li $a0, 29 +/* 085A34 7F050EC4 10400013 */ beqz $v0, .Ljp7F050F14 +/* 085A38 7F050EC8 24010008 */ li $at, 8 +.Ljp7F050ECC: +/* 085A3C 7F050ECC 56010005 */ bnel $s0, $at, .Ljp7F050EE4 +/* 085A40 7F050ED0 24010009 */ li $at, 9 +/* 085A44 7F050ED4 0FC232E9 */ jal is_weapon_in_inv +/* 085A48 7F050ED8 2404001C */ li $a0, 28 +/* 085A4C 7F050EDC 1040000D */ beqz $v0, .Ljp7F050F14 +/* 085A50 7F050EE0 24010009 */ li $at, 9 +.Ljp7F050EE4: +/* 085A54 7F050EE4 56010005 */ bnel $s0, $at, .Ljp7F050EFC +/* 085A58 7F050EE8 2401000A */ li $at, 10 +/* 085A5C 7F050EEC 0FC232E9 */ jal is_weapon_in_inv +/* 085A60 7F050EF0 2404001B */ li $a0, 27 +/* 085A64 7F050EF4 10400007 */ beqz $v0, .Ljp7F050F14 +/* 085A68 7F050EF8 2401000A */ li $at, 10 +.Ljp7F050EFC: +/* 085A6C 7F050EFC 56010008 */ bnel $s0, $at, .Ljp7F050F20 +/* 085A70 7F050F00 8FA2003C */ lw $v0, 0x3c($sp) +/* 085A74 7F050F04 0FC232E9 */ jal is_weapon_in_inv +/* 085A78 7F050F08 24040003 */ li $a0, 3 +/* 085A7C 7F050F0C 54400004 */ bnezl $v0, .Ljp7F050F20 +/* 085A80 7F050F10 8FA2003C */ lw $v0, 0x3c($sp) +.Ljp7F050F14: +/* 085A84 7F050F14 10000006 */ b .Ljp7F050F30 +/* 085A88 7F050F18 AFA00074 */ sw $zero, 0x74($sp) +/* 085A8C 7F050F1C 8FA2003C */ lw $v0, 0x3c($sp) +.Ljp7F050F20: +/* 085A90 7F050F20 8FA30038 */ lw $v1, 0x38($sp) +/* 085A94 7F050F24 2401000D */ li $at, 13 +/* 085A98 7F050F28 1441FFC6 */ bne $v0, $at, .Ljp7F050E44 +/* 085A9C 7F050F2C 24630004 */ addiu $v1, $v1, 4 +.Ljp7F050F30: +/* 085AA0 7F050F30 8FAD0074 */ lw $t5, 0x74($sp) +/* 085AA4 7F050F34 11A0002E */ beqz $t5, .Ljp7F050FF0 +/* 085AA8 7F050F38 00000000 */ nop +/* 085AAC 7F050F3C 100000B6 */ b .Ljp7F051218 +/* 085AB0 7F050F40 00001025 */ move $v0, $zero +.Ljp7F050F44: +/* 085AB4 7F050F44 24010015 */ li $at, 21 +/* 085AB8 7F050F48 14410029 */ bne $v0, $at, .Ljp7F050FF0 +/* 085ABC 7F050F4C 8FAE0090 */ lw $t6, 0x90($sp) +/* 085AC0 7F050F50 8DD00004 */ lw $s0, 4($t6) +/* 085AC4 7F050F54 0FC22A8D */ jal get_BONDdata_watch_armor +/* 085AC8 7F050F58 AFA00064 */ sw $zero, 0x64($sp) +/* 085ACC 7F050F5C C6040084 */ lwc1 $f4, 0x84($s0) +/* 085AD0 7F050F60 240F0001 */ li $t7, 1 +/* 085AD4 7F050F64 4600203E */ c.le.s $f4, $f0 +/* 085AD8 7F050F68 00000000 */ nop +/* 085ADC 7F050F6C 45000003 */ bc1f .Ljp7F050F7C +/* 085AE0 7F050F70 00000000 */ nop +/* 085AE4 7F050F74 10000019 */ b .Ljp7F050FDC +/* 085AE8 7F050F78 AFAF0064 */ sw $t7, 0x64($sp) +.Ljp7F050F7C: +/* 085AEC 7F050F7C 0FC26C01 */ jal get_num_players +/* 085AF0 7F050F80 00000000 */ nop +/* 085AF4 7F050F84 28410002 */ slti $at, $v0, 2 +/* 085AF8 7F050F88 54200015 */ bnezl $at, .Ljp7F050FE0 +/* 085AFC 7F050F8C 8FA90064 */ lw $t1, 0x64($sp) +/* 085B00 7F050F90 0FC05202 */ jal get_scenario +/* 085B04 7F050F94 00000000 */ nop +/* 085B08 7F050F98 24010002 */ li $at, 2 +/* 085B0C 7F050F9C 14410007 */ bne $v0, $at, .Ljp7F050FBC +/* 085B10 7F050FA0 00408025 */ move $s0, $v0 +/* 085B14 7F050FA4 0FC23639 */ jal bondinvIsAliveWithFlag +/* 085B18 7F050FA8 00000000 */ nop +/* 085B1C 7F050FAC 10400003 */ beqz $v0, .Ljp7F050FBC +/* 085B20 7F050FB0 24180001 */ li $t8, 1 +/* 085B24 7F050FB4 10000009 */ b .Ljp7F050FDC +/* 085B28 7F050FB8 AFB80064 */ sw $t8, 0x64($sp) +.Ljp7F050FBC: +/* 085B2C 7F050FBC 24010003 */ li $at, 3 +/* 085B30 7F050FC0 56010007 */ bnel $s0, $at, .Ljp7F050FE0 +/* 085B34 7F050FC4 8FA90064 */ lw $t1, 0x64($sp) +/* 085B38 7F050FC8 0FC23649 */ jal checkforgoldengun +/* 085B3C 7F050FCC 00000000 */ nop +/* 085B40 7F050FD0 10400002 */ beqz $v0, .Ljp7F050FDC +/* 085B44 7F050FD4 24190001 */ li $t9, 1 +/* 085B48 7F050FD8 AFB90064 */ sw $t9, 0x64($sp) +.Ljp7F050FDC: +/* 085B4C 7F050FDC 8FA90064 */ lw $t1, 0x64($sp) +.Ljp7F050FE0: +/* 085B50 7F050FE0 11200003 */ beqz $t1, .Ljp7F050FF0 +/* 085B54 7F050FE4 00000000 */ nop +/* 085B58 7F050FE8 1000008B */ b .Ljp7F051218 +/* 085B5C 7F050FEC 00001025 */ move $v0, $zero +.Ljp7F050FF0: +/* 085B60 7F050FF0 0FC22992 */ jal get_curplay_vertical_rotation_in_degrees +/* 085B64 7F050FF4 00000000 */ nop +/* 085B68 7F050FF8 3C018005 */ lui $at, %hi(D_800532E0) # $at, 0x8005 +/* 085B6C 7F050FFC C4263310 */ lwc1 $f6, %lo(D_800532E0)($at) +/* 085B70 7F051000 3C0A8008 */ lui $t2, %hi(pPlayer) # $t2, 0x8008 +/* 085B74 7F051004 4606003C */ c.lt.s $f0, $f6 +/* 085B78 7F051008 00000000 */ nop +/* 085B7C 7F05100C 45000007 */ bc1f .Ljp7F05102C +/* 085B80 7F051010 00000000 */ nop +/* 085B84 7F051014 8D4AA120 */ lw $t2, %lo(pPlayer)($t2) +/* 085B88 7F051018 8D4B1270 */ lw $t3, 0x1270($t2) +/* 085B8C 7F05101C 05610003 */ bgez $t3, .Ljp7F05102C +/* 085B90 7F051020 00000000 */ nop +/* 085B94 7F051024 1000007C */ b .Ljp7F051218 +/* 085B98 7F051028 00001025 */ move $v0, $zero +.Ljp7F05102C: +/* 085B9C 7F05102C 0FC2279B */ jal get_curplayer_positiondata +/* 085BA0 7F051030 00000000 */ nop +/* 085BA4 7F051034 3C0D8008 */ lui $t5, %hi(pPlayer) # $t5, 0x8008 +/* 085BA8 7F051038 8FAC008C */ lw $t4, 0x8c($sp) +/* 085BAC 7F05103C 8DADA120 */ lw $t5, %lo(pPlayer)($t5) +/* 085BB0 7F051040 C44A0008 */ lwc1 $f10, 8($v0) +/* 085BB4 7F051044 C452000C */ lwc1 $f18, 0xc($v0) +/* 085BB8 7F051048 8DAE1270 */ lw $t6, 0x1270($t5) +/* 085BBC 7F05104C C4460010 */ lwc1 $f6, 0x10($v0) +/* 085BC0 7F051050 C5880058 */ lwc1 $f8, 0x58($t4) +/* 085BC4 7F051054 C590005C */ lwc1 $f16, 0x5c($t4) +/* 085BC8 7F051058 C5840060 */ lwc1 $f4, 0x60($t4) +/* 085BCC 7F05105C 29C1003C */ slti $at, $t6, 0x3c +/* 085BD0 7F051060 00404025 */ move $t0, $v0 +/* 085BD4 7F051064 460A4001 */ sub.s $f0, $f8, $f10 +/* 085BD8 7F051068 46128301 */ sub.s $f12, $f16, $f18 +/* 085BDC 7F05106C 14200022 */ bnez $at, .Ljp7F0510F8 +/* 085BE0 7F051070 46062081 */ sub.s $f2, $f4, $f6 +/* 085BE4 7F051074 46000202 */ mul.s $f8, $f0, $f0 +/* 085BE8 7F051078 3C018005 */ lui $at, %hi(D_800532E4) # $at, 0x8005 +/* 085BEC 7F05107C C4323314 */ lwc1 $f18, %lo(D_800532E4)($at) +/* 085BF0 7F051080 46021282 */ mul.s $f10, $f2, $f2 +/* 085BF4 7F051084 3C01C3FA */ li $at, 0xC3FA0000 # -500.000000 +/* 085BF8 7F051088 00001025 */ move $v0, $zero +/* 085BFC 7F05108C 460A4400 */ add.s $f16, $f8, $f10 +/* 085C00 7F051090 4612803E */ c.le.s $f16, $f18 +/* 085C04 7F051094 00000000 */ nop +/* 085C08 7F051098 45000002 */ bc1f .Ljp7F0510A4 +/* 085C0C 7F05109C 00000000 */ nop +/* 085C10 7F0510A0 24020001 */ li $v0, 1 +.Ljp7F0510A4: +/* 085C14 7F0510A4 10400012 */ beqz $v0, .Ljp7F0510F0 +/* 085C18 7F0510A8 00401825 */ move $v1, $v0 +/* 085C1C 7F0510AC 44812000 */ mtc1 $at, $f4 +/* 085C20 7F0510B0 3C0143FA */ li $at, 0x43FA0000 # 500.000000 +/* 085C24 7F0510B4 00001025 */ move $v0, $zero +/* 085C28 7F0510B8 460C203E */ c.le.s $f4, $f12 +/* 085C2C 7F0510BC 00000000 */ nop +/* 085C30 7F0510C0 45000002 */ bc1f .Ljp7F0510CC +/* 085C34 7F0510C4 00000000 */ nop +/* 085C38 7F0510C8 24020001 */ li $v0, 1 +.Ljp7F0510CC: +/* 085C3C 7F0510CC 10400008 */ beqz $v0, .Ljp7F0510F0 +/* 085C40 7F0510D0 00401825 */ move $v1, $v0 +/* 085C44 7F0510D4 44813000 */ mtc1 $at, $f6 +/* 085C48 7F0510D8 00001825 */ move $v1, $zero +/* 085C4C 7F0510DC 4606603E */ c.le.s $f12, $f6 +/* 085C50 7F0510E0 00000000 */ nop +/* 085C54 7F0510E4 45000002 */ bc1f .Ljp7F0510F0 +/* 085C58 7F0510E8 00000000 */ nop +/* 085C5C 7F0510EC 24030001 */ li $v1, 1 +.Ljp7F0510F0: +/* 085C60 7F0510F0 10000021 */ b .Ljp7F051178 +/* 085C64 7F0510F4 00608025 */ move $s0, $v1 +.Ljp7F0510F8: +/* 085C68 7F0510F8 46000202 */ mul.s $f8, $f0, $f0 +/* 085C6C 7F0510FC 3C018005 */ lui $at, %hi(D_800532E8) # $at, 0x8005 +/* 085C70 7F051100 C4303318 */ lwc1 $f16, %lo(D_800532E8)($at) +/* 085C74 7F051104 46021282 */ mul.s $f10, $f2, $f2 +/* 085C78 7F051108 3C01C348 */ li $at, 0xC3480000 # -200.000000 +/* 085C7C 7F05110C 00001025 */ move $v0, $zero +/* 085C80 7F051110 460A4480 */ add.s $f18, $f8, $f10 +/* 085C84 7F051114 4610903E */ c.le.s $f18, $f16 +/* 085C88 7F051118 00000000 */ nop +/* 085C8C 7F05111C 45000002 */ bc1f .Ljp7F051128 +/* 085C90 7F051120 00000000 */ nop +/* 085C94 7F051124 24020001 */ li $v0, 1 +.Ljp7F051128: +/* 085C98 7F051128 10400012 */ beqz $v0, .Ljp7F051174 +/* 085C9C 7F05112C 00401825 */ move $v1, $v0 +/* 085CA0 7F051130 44812000 */ mtc1 $at, $f4 +/* 085CA4 7F051134 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 085CA8 7F051138 00001025 */ move $v0, $zero +/* 085CAC 7F05113C 460C203E */ c.le.s $f4, $f12 +/* 085CB0 7F051140 00000000 */ nop +/* 085CB4 7F051144 45000002 */ bc1f .Ljp7F051150 +/* 085CB8 7F051148 00000000 */ nop +/* 085CBC 7F05114C 24020001 */ li $v0, 1 +.Ljp7F051150: +/* 085CC0 7F051150 10400008 */ beqz $v0, .Ljp7F051174 +/* 085CC4 7F051154 00401825 */ move $v1, $v0 +/* 085CC8 7F051158 44813000 */ mtc1 $at, $f6 +/* 085CCC 7F05115C 00001825 */ move $v1, $zero +/* 085CD0 7F051160 4606603E */ c.le.s $f12, $f6 +/* 085CD4 7F051164 00000000 */ nop +/* 085CD8 7F051168 45020003 */ bc1fl .Ljp7F051178 +/* 085CDC 7F05116C 00608025 */ move $s0, $v1 +/* 085CE0 7F051170 24030001 */ li $v1, 1 +.Ljp7F051174: +/* 085CE4 7F051174 00608025 */ move $s0, $v1 +.Ljp7F051178: +/* 085CE8 7F051178 10600020 */ beqz $v1, .Ljp7F0511FC +/* 085CEC 7F05117C 8FAF008C */ lw $t7, 0x8c($sp) +/* 085CF0 7F051180 8DF8000C */ lw $t8, 0xc($t7) +/* 085CF4 7F051184 8FA20090 */ lw $v0, 0x90($sp) +/* 085CF8 7F051188 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 085CFC 7F05118C 33191000 */ andi $t9, $t8, 0x1000 +/* 085D00 7F051190 1720001A */ bnez $t9, .Ljp7F0511FC +/* 085D04 7F051194 27A40044 */ addiu $a0, $sp, 0x44 +/* 085D08 7F051198 8D090014 */ lw $t1, 0x14($t0) +/* 085D0C 7F05119C 44810000 */ mtc1 $at, $f0 +/* 085D10 7F0511A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 085D14 7F0511A4 AFA90044 */ sw $t1, 0x44($sp) +/* 085D18 7F0511A8 C4480010 */ lwc1 $f8, 0x10($v0) +/* 085D1C 7F0511AC 8C470008 */ lw $a3, 8($v0) +/* 085D20 7F0511B0 8D060010 */ lw $a2, 0x10($t0) +/* 085D24 7F0511B4 8D050008 */ lw $a1, 8($t0) +/* 085D28 7F0511B8 44818000 */ mtc1 $at, $f16 +/* 085D2C 7F0511BC 44805000 */ mtc1 $zero, $f10 +/* 085D30 7F0511C0 240A0002 */ li $t2, 2 +/* 085D34 7F0511C4 AFAA0014 */ sw $t2, 0x14($sp) +/* 085D38 7F0511C8 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 085D3C 7F0511CC E7A00018 */ swc1 $f0, 0x18($sp) +/* 085D40 7F0511D0 E7A80010 */ swc1 $f8, 0x10($sp) +/* 085D44 7F0511D4 E7B00024 */ swc1 $f16, 0x24($sp) +/* 085D48 7F0511D8 0FC2C675 */ jal sub_GAME_7F0B0E24 +/* 085D4C 7F0511DC E7AA0020 */ swc1 $f10, 0x20($sp) +/* 085D50 7F0511E0 10400005 */ beqz $v0, .Ljp7F0511F8 +/* 085D54 7F0511E4 8FAC0090 */ lw $t4, 0x90($sp) +/* 085D58 7F0511E8 8FAB0044 */ lw $t3, 0x44($sp) +/* 085D5C 7F0511EC 8D8D0014 */ lw $t5, 0x14($t4) +/* 085D60 7F0511F0 116D0002 */ beq $t3, $t5, .Ljp7F0511FC +/* 085D64 7F0511F4 00000000 */ nop +.Ljp7F0511F8: +/* 085D68 7F0511F8 00008025 */ move $s0, $zero +.Ljp7F0511FC: +/* 085D6C 7F0511FC 12000006 */ beqz $s0, .Ljp7F051218 +/* 085D70 7F051200 00001025 */ move $v0, $zero +/* 085D74 7F051204 8FA40090 */ lw $a0, 0x90($sp) +/* 085D78 7F051208 0FC14195 */ jal collect_or_interact_object +/* 085D7C 7F05120C 24050001 */ li $a1, 1 +/* 085D80 7F051210 10000002 */ b .Ljp7F05121C +/* 085D84 7F051214 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F051218: +/* 085D88 7F051218 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F05121C: +/* 085D8C 7F05121C 8FB00030 */ lw $s0, 0x30($sp) +/* 085D90 7F051220 27BD0090 */ addiu $sp, $sp, 0x90 +/* 085D94 7F051224 03E00008 */ jr $ra +/* 085D98 7F051228 00000000 */ nop +) +#endif + +#endif + +#ifdef NONMATCHING +void sub_GAME_7F050D30(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F050D30 +/* 085860 7F050D30 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 085864 7F050D34 AFBF001C */ sw $ra, 0x1c($sp) +/* 085868 7F050D38 AFA40028 */ sw $a0, 0x28($sp) +/* 08586C 7F050D3C AFA5002C */ sw $a1, 0x2c($sp) +/* 085870 7F050D40 AFA70034 */ sw $a3, 0x34($sp) +/* 085874 7F050D44 908F0001 */ lbu $t7, 1($a0) +/* 085878 7F050D48 31F80002 */ andi $t8, $t7, 2 +/* 08587C 7F050D4C 53000022 */ beql $t8, $zero, .L7F050DD8 +/* 085880 7F050D50 00001025 */ move $v0, $zero +/* 085884 7F050D54 8C830004 */ lw $v1, 4($a0) +/* 085888 7F050D58 8C640014 */ lw $a0, 0x14($v1) +/* 08588C 7F050D5C AFA60030 */ sw $a2, 0x30($sp) +/* 085890 7F050D60 0FC1B1A8 */ jal getsubmatrix +/* 085894 7F050D64 AFA30024 */ sw $v1, 0x24($sp) +/* 085898 7F050D68 8FA9002C */ lw $t1, 0x2c($sp) +/* 08589C 7F050D6C C4440038 */ lwc1 $f4, 0x38($v0) +/* 0858A0 7F050D70 8FA30024 */ lw $v1, 0x24($sp) +/* 0858A4 7F050D74 8FA60030 */ lw $a2, 0x30($sp) +/* 0858A8 7F050D78 8FAA0034 */ lw $t2, 0x34($sp) +/* 0858AC 7F050D7C E5240008 */ swc1 $f4, 8($t1) +/* 0858B0 7F050D80 44800000 */ mtc1 $zero, $f0 +/* 0858B4 7F050D84 C5260008 */ lwc1 $f6, 8($t1) +/* 0858B8 7F050D88 4600303C */ c.lt.s $f6, $f0 +/* 0858BC 7F050D8C 00000000 */ nop +/* 0858C0 7F050D90 45020011 */ bc1fl .L7F050DD8 +/* 0858C4 7F050D94 00001025 */ move $v0, $zero +/* 0858C8 7F050D98 C4480030 */ lwc1 $f8, 0x30($v0) +/* 0858CC 7F050D9C 24C50004 */ addiu $a1, $a2, 4 +/* 0858D0 7F050DA0 25470004 */ addiu $a3, $t2, 4 +/* 0858D4 7F050DA4 E5280000 */ swc1 $f8, ($t1) +/* 0858D8 7F050DA8 C44A0034 */ lwc1 $f10, 0x34($v0) +/* 0858DC 7F050DAC E52A0004 */ swc1 $f10, 4($t1) +/* 0858E0 7F050DB0 E5400000 */ swc1 $f0, ($t2) +/* 0858E4 7F050DB4 E5400004 */ swc1 $f0, 4($t2) +/* 0858E8 7F050DB8 E4C00000 */ swc1 $f0, ($a2) +/* 0858EC 7F050DBC E4C00004 */ swc1 $f0, 4($a2) +/* 0858F0 7F050DC0 8C640014 */ lw $a0, 0x14($v1) +/* 0858F4 7F050DC4 0FC0FE43 */ jal sub_GAME_7F03F90C +/* 0858F8 7F050DC8 AFAA0010 */ sw $t2, 0x10($sp) +/* 0858FC 7F050DCC 10000002 */ b .L7F050DD8 +/* 085900 7F050DD0 24020001 */ li $v0, 1 +/* 085904 7F050DD4 00001025 */ move $v0, $zero +.L7F050DD8: +/* 085908 7F050DD8 8FBF001C */ lw $ra, 0x1c($sp) +/* 08590C 7F050DDC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 085910 7F050DE0 03E00008 */ jr $ra +/* 085914 7F050DE4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F050DE8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F050DE8 +/* 085918 7F050DE8 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 08591C 7F050DEC AFBF003C */ sw $ra, 0x3c($sp) +/* 085920 7F050DF0 AFBE0038 */ sw $fp, 0x38($sp) +/* 085924 7F050DF4 AFB70034 */ sw $s7, 0x34($sp) +/* 085928 7F050DF8 AFB60030 */ sw $s6, 0x30($sp) +/* 08592C 7F050DFC AFB5002C */ sw $s5, 0x2c($sp) +/* 085930 7F050E00 AFB40028 */ sw $s4, 0x28($sp) +/* 085934 7F050E04 AFB30024 */ sw $s3, 0x24($sp) +/* 085938 7F050E08 AFB20020 */ sw $s2, 0x20($sp) +/* 08593C 7F050E0C AFB1001C */ sw $s1, 0x1c($sp) +/* 085940 7F050E10 AFB00018 */ sw $s0, 0x18($sp) +/* 085944 7F050E14 8C940008 */ lw $s4, 8($a0) +/* 085948 7F050E18 00809825 */ move $s3, $a0 +/* 08594C 7F050E1C 24150008 */ li $s5, 8 +/* 085950 7F050E20 8E900000 */ lw $s0, ($s4) +/* 085954 7F050E24 24160012 */ li $s6, 18 +/* 085958 7F050E28 24170017 */ li $s7, 23 +/* 08595C 7F050E2C 1200003C */ beqz $s0, .L7F050F20 +/* 085960 7F050E30 241E0018 */ li $fp, 24 +/* 085964 7F050E34 96020000 */ lhu $v0, ($s0) +.L7F050E38: +/* 085968 7F050E38 02602025 */ move $a0, $s3 +/* 08596C 7F050E3C 304E00FF */ andi $t6, $v0, 0xff +/* 085970 7F050E40 11D5001C */ beq $t6, $s5, .L7F050EB4 +/* 085974 7F050E44 00000000 */ nop +/* 085978 7F050E48 11D6001E */ beq $t6, $s6, .L7F050EC4 +/* 08597C 7F050E4C 02602025 */ move $a0, $s3 +/* 085980 7F050E50 11D70020 */ beq $t6, $s7, .L7F050ED4 +/* 085984 7F050E54 02602025 */ move $a0, $s3 +/* 085988 7F050E58 11DE0003 */ beq $t6, $fp, .L7F050E68 +/* 08598C 7F050E5C 02602025 */ move $a0, $s3 +/* 085990 7F050E60 1000001F */ b .L7F050EE0 +/* 085994 7F050E64 8E020014 */ lw $v0, 0x14($s0) +.L7F050E68: +/* 085998 7F050E68 8E120004 */ lw $s2, 4($s0) +/* 08599C 7F050E6C 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0859A0 7F050E70 02002825 */ move $a1, $s0 +/* 0859A4 7F050E74 8E4F0008 */ lw $t7, 8($s2) +/* 0859A8 7F050E78 8C580000 */ lw $t8, ($v0) +/* 0859AC 7F050E7C 00408825 */ move $s1, $v0 +/* 0859B0 7F050E80 02802025 */ move $a0, $s4 +/* 0859B4 7F050E84 11F80009 */ beq $t7, $t8, .L7F050EAC +/* 0859B8 7F050E88 00000000 */ nop +/* 0859BC 7F050E8C 0FC12D64 */ jal sub_GAME_7F04B590 +/* 0859C0 7F050E90 02002825 */ move $a1, $s0 +/* 0859C4 7F050E94 10400005 */ beqz $v0, .L7F050EAC +/* 0859C8 7F050E98 00000000 */ nop +/* 0859CC 7F050E9C 0FC27011 */ jal sub_GAME_7F09C044 +/* 0859D0 7F050EA0 8E240000 */ lw $a0, ($s1) +/* 0859D4 7F050EA4 8E590008 */ lw $t9, 8($s2) +/* 0859D8 7F050EA8 AE390000 */ sw $t9, ($s1) +.L7F050EAC: +/* 0859DC 7F050EAC 1000000C */ b .L7F050EE0 +/* 0859E0 7F050EB0 8E020014 */ lw $v0, 0x14($s0) +.L7F050EB4: +/* 0859E4 7F050EB4 0FC1BA5C */ jal sub_GAME_7F06E970 +/* 0859E8 7F050EB8 02002825 */ move $a1, $s0 +/* 0859EC 7F050EBC 10000008 */ b .L7F050EE0 +/* 0859F0 7F050EC0 8E020014 */ lw $v0, 0x14($s0) +.L7F050EC4: +/* 0859F4 7F050EC4 0FC1BA6F */ jal process_12_handle_switch +/* 0859F8 7F050EC8 02002825 */ move $a1, $s0 +/* 0859FC 7F050ECC 10000004 */ b .L7F050EE0 +/* 085A00 7F050ED0 8E020014 */ lw $v0, 0x14($s0) +.L7F050ED4: +/* 085A04 7F050ED4 0FC1BA82 */ jal process_17_pointer_to_head +/* 085A08 7F050ED8 02002825 */ move $a1, $s0 +/* 085A0C 7F050EDC 8E020014 */ lw $v0, 0x14($s0) +.L7F050EE0: +/* 085A10 7F050EE0 10400003 */ beqz $v0, .L7F050EF0 +/* 085A14 7F050EE4 00000000 */ nop +/* 085A18 7F050EE8 1000000B */ b .L7F050F18 +/* 085A1C 7F050EEC 00408025 */ move $s0, $v0 +.L7F050EF0: +/* 085A20 7F050EF0 12000009 */ beqz $s0, .L7F050F18 +/* 085A24 7F050EF4 00000000 */ nop +/* 085A28 7F050EF8 8E02000C */ lw $v0, 0xc($s0) +.L7F050EFC: +/* 085A2C 7F050EFC 50400004 */ beql $v0, $zero, .L7F050F10 +/* 085A30 7F050F00 8E100008 */ lw $s0, 8($s0) +/* 085A34 7F050F04 10000004 */ b .L7F050F18 +/* 085A38 7F050F08 00408025 */ move $s0, $v0 +/* 085A3C 7F050F0C 8E100008 */ lw $s0, 8($s0) +.L7F050F10: +/* 085A40 7F050F10 5600FFFA */ bnezl $s0, .L7F050EFC +/* 085A44 7F050F14 8E02000C */ lw $v0, 0xc($s0) +.L7F050F18: +/* 085A48 7F050F18 5600FFC7 */ bnezl $s0, .L7F050E38 +/* 085A4C 7F050F1C 96020000 */ lhu $v0, ($s0) +.L7F050F20: +/* 085A50 7F050F20 8FBF003C */ lw $ra, 0x3c($sp) +/* 085A54 7F050F24 8FB00018 */ lw $s0, 0x18($sp) +/* 085A58 7F050F28 8FB1001C */ lw $s1, 0x1c($sp) +/* 085A5C 7F050F2C 8FB20020 */ lw $s2, 0x20($sp) +/* 085A60 7F050F30 8FB30024 */ lw $s3, 0x24($sp) +/* 085A64 7F050F34 8FB40028 */ lw $s4, 0x28($sp) +/* 085A68 7F050F38 8FB5002C */ lw $s5, 0x2c($sp) +/* 085A6C 7F050F3C 8FB60030 */ lw $s6, 0x30($sp) +/* 085A70 7F050F40 8FB70034 */ lw $s7, 0x34($sp) +/* 085A74 7F050F44 8FBE0038 */ lw $fp, 0x38($sp) +/* 085A78 7F050F48 03E00008 */ jr $ra +/* 085A7C 7F050F4C 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F050F50(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F050F50 +/* 085A80 7F050F50 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 085A84 7F050F54 AFA50024 */ sw $a1, 0x24($sp) +/* 085A88 7F050F58 AFA60028 */ sw $a2, 0x28($sp) +/* 085A8C 7F050F5C 00C02825 */ move $a1, $a2 +/* 085A90 7F050F60 AFBF001C */ sw $ra, 0x1c($sp) +/* 085A94 7F050F64 AFB00014 */ sw $s0, 0x14($sp) +/* 085A98 7F050F68 00E03025 */ move $a2, $a3 +/* 085A9C 7F050F6C 00808025 */ move $s0, $a0 +/* 085AA0 7F050F70 AFB10018 */ sw $s1, 0x18($sp) +/* 085AA4 7F050F74 0FC10153 */ jal init_standard_object +/* 085AA8 7F050F78 8FA70030 */ lw $a3, 0x30($sp) +/* 085AAC 7F050F7C 10400024 */ beqz $v0, .L7F051010 +/* 085AB0 7F050F80 00408825 */ move $s1, $v0 +/* 085AB4 7F050F84 8E040014 */ lw $a0, 0x14($s0) +/* 085AB8 7F050F88 50800022 */ beql $a0, $zero, .L7F051014 +/* 085ABC 7F050F8C 8FBF001C */ lw $ra, 0x1c($sp) +/* 085AC0 7F050F90 960E0000 */ lhu $t6, ($s0) +/* 085AC4 7F050F94 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 085AC8 7F050F98 448E2000 */ mtc1 $t6, $f4 +/* 085ACC 7F050F9C 05C10004 */ bgez $t6, .L7F050FB0 +/* 085AD0 7F050FA0 468021A0 */ cvt.s.w $f6, $f4 +/* 085AD4 7F050FA4 44814000 */ mtc1 $at, $f8 +/* 085AD8 7F050FA8 00000000 */ nop +/* 085ADC 7F050FAC 46083180 */ add.s $f6, $f6, $f8 +.L7F050FB0: +/* 085AE0 7F050FB0 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 085AE4 7F050FB4 44815000 */ mtc1 $at, $f10 +/* 085AE8 7F050FB8 C4900014 */ lwc1 $f16, 0x14($a0) +/* 085AEC 7F050FBC 460A3002 */ mul.s $f0, $f6, $f10 +/* 085AF0 7F050FC0 00000000 */ nop +/* 085AF4 7F050FC4 46008482 */ mul.s $f18, $f16, $f0 +/* 085AF8 7F050FC8 44059000 */ mfc1 $a1, $f18 +/* 085AFC 7F050FCC 0FC1B39E */ jal set_obj_instance_controller_scale +/* 085B00 7F050FD0 00000000 */ nop +/* 085B04 7F050FD4 8FA20024 */ lw $v0, 0x24($sp) +/* 085B08 7F050FD8 8E180014 */ lw $t8, 0x14($s0) +/* 085B0C 7F050FDC 02202025 */ move $a0, $s1 +/* 085B10 7F050FE0 8C4F001C */ lw $t7, 0x1c($v0) +/* 085B14 7F050FE4 AF0F0018 */ sw $t7, 0x18($t8) +/* 085B18 7F050FE8 8C59001C */ lw $t9, 0x1c($v0) +/* 085B1C 7F050FEC 8E0B0014 */ lw $t3, 0x14($s0) +/* 085B20 7F050FF0 8F280008 */ lw $t0, 8($t9) +/* 085B24 7F050FF4 8D090008 */ lw $t1, 8($t0) +/* 085B28 7F050FF8 8D2A0018 */ lw $t2, 0x18($t1) +/* 085B2C 7F050FFC AD6A001C */ sw $t2, 0x1c($t3) +/* 085B30 7F051000 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 085B34 7F051004 8C450018 */ lw $a1, 0x18($v0) +/* 085B38 7F051008 8FAC0024 */ lw $t4, 0x24($sp) +/* 085B3C 7F05100C AD9101D8 */ sw $s1, 0x1d8($t4) +.L7F051010: +/* 085B40 7F051010 8FBF001C */ lw $ra, 0x1c($sp) +.L7F051014: +/* 085B44 7F051014 02201025 */ move $v0, $s1 +/* 085B48 7F051018 8FB10018 */ lw $s1, 0x18($sp) +/* 085B4C 7F05101C 8FB00014 */ lw $s0, 0x14($sp) +/* 085B50 7F051020 03E00008 */ jr $ra +/* 085B54 7F051024 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F051028(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F051028 +/* 085B58 7F051028 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 085B5C 7F05102C AFBF001C */ sw $ra, 0x1c($sp) +/* 085B60 7F051030 AFA40028 */ sw $a0, 0x28($sp) +/* 085B64 7F051034 AFA5002C */ sw $a1, 0x2c($sp) +/* 085B68 7F051038 84840004 */ lh $a0, 4($a0) +/* 085B6C 7F05103C 0FC15B0E */ jal load_model +/* 085B70 7F051040 AFA40020 */ sw $a0, 0x20($sp) +/* 085B74 7F051044 8FAF0020 */ lw $t7, 0x20($sp) +/* 085B78 7F051048 3C068004 */ lui $a2, %hi(PitemZ_entries) +/* 085B7C 7F05104C 8FA40028 */ lw $a0, 0x28($sp) +/* 085B80 7F051050 000FC080 */ sll $t8, $t7, 2 +/* 085B84 7F051054 030FC023 */ subu $t8, $t8, $t7 +/* 085B88 7F051058 0018C080 */ sll $t8, $t8, 2 +/* 085B8C 7F05105C 00D83021 */ addu $a2, $a2, $t8 +/* 085B90 7F051060 8CC6A228 */ lw $a2, %lo(PitemZ_entries)($a2) +/* 085B94 7F051064 8FA5002C */ lw $a1, 0x2c($sp) +/* 085B98 7F051068 00003825 */ move $a3, $zero +/* 085B9C 7F05106C 0FC143D4 */ jal sub_GAME_7F050F50 +/* 085BA0 7F051070 AFA00010 */ sw $zero, 0x10($sp) +/* 085BA4 7F051074 8FBF001C */ lw $ra, 0x1c($sp) +/* 085BA8 7F051078 27BD0028 */ addiu $sp, $sp, 0x28 +/* 085BAC 7F05107C 03E00008 */ jr $ra +/* 085BB0 7F051080 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F051084(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F051084 +/* 085BB4 7F051084 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 085BB8 7F051088 AFBF0014 */ sw $ra, 0x14($sp) +/* 085BBC 7F05108C 8C8E0074 */ lw $t6, 0x74($a0) +/* 085BC0 7F051090 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 085BC4 7F051094 44814000 */ mtc1 $at, $f8 +/* 085BC8 7F051098 448E2000 */ mtc1 $t6, $f4 +/* 085BCC 7F05109C 00000000 */ nop +/* 085BD0 7F0510A0 468021A0 */ cvt.s.w $f6, $f4 +/* 085BD4 7F0510A4 46083283 */ div.s $f10, $f6, $f8 +/* 085BD8 7F0510A8 0FC1440A */ jal sub_GAME_7F051028 +/* 085BDC 7F0510AC E48A0074 */ swc1 $f10, 0x74($a0) +/* 085BE0 7F0510B0 8FBF0014 */ lw $ra, 0x14($sp) +/* 085BE4 7F0510B4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 085BE8 7F0510B8 03E00008 */ jr $ra +/* 085BEC 7F0510BC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0510C0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0510C0 +/* 085BF0 7F0510C0 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 085BF4 7F0510C4 00057080 */ sll $t6, $a1, 2 +/* 085BF8 7F0510C8 01C57023 */ subu $t6, $t6, $a1 +/* 085BFC 7F0510CC 000E7080 */ sll $t6, $t6, 2 +/* 085C00 7F0510D0 3C0F8004 */ lui $t7, %hi(PitemZ_entries) +/* 085C04 7F0510D4 01EE7821 */ addu $t7, $t7, $t6 +/* 085C08 7F0510D8 8DEFA228 */ lw $t7, %lo(PitemZ_entries)($t7) +/* 085C0C 7F0510DC AFBF002C */ sw $ra, 0x2c($sp) +/* 085C10 7F0510E0 AFA400C0 */ sw $a0, 0xc0($sp) +/* 085C14 7F0510E4 AFB20028 */ sw $s2, 0x28($sp) +/* 085C18 7F0510E8 AFB10024 */ sw $s1, 0x24($sp) +/* 085C1C 7F0510EC AFB00020 */ sw $s0, 0x20($sp) +/* 085C20 7F0510F0 AFA600C8 */ sw $a2, 0xc8($sp) +/* 085C24 7F0510F4 00A02025 */ move $a0, $a1 +/* 085C28 7F0510F8 AFA500C4 */ sw $a1, 0xc4($sp) +/* 085C2C 7F0510FC 0FC15B0E */ jal load_model +/* 085C30 7F051100 AFAF00BC */ sw $t7, 0xbc($sp) +/* 085C34 7F051104 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 085C38 7F051108 00000000 */ nop +/* 085C3C 7F05110C 00408025 */ move $s0, $v0 +/* 085C40 7F051110 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 085C44 7F051114 8FA400BC */ lw $a0, 0xbc($sp) +/* 085C48 7F051118 00408825 */ move $s1, $v0 +/* 085C4C 7F05111C 2E040001 */ sltiu $a0, $s0, 1 +/* 085C50 7F051120 2C450001 */ sltiu $a1, $v0, 1 +/* 085C54 7F051124 0FC1456C */ jal sub_GAME_7F0515B0 +/* 085C58 7F051128 8FA600BC */ lw $a2, 0xbc($sp) +/* 085C5C 7F05112C 16000004 */ bnez $s0, .L7F051140 +/* 085C60 7F051130 00409025 */ move $s2, $v0 +/* 085C64 7F051134 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 085C68 7F051138 00000000 */ nop +/* 085C6C 7F05113C 00408025 */ move $s0, $v0 +.L7F051140: +/* 085C70 7F051140 16200004 */ bnez $s1, .L7F051154 +/* 085C74 7F051144 00000000 */ nop +/* 085C78 7F051148 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 085C7C 7F05114C 8FA400BC */ lw $a0, 0xbc($sp) +/* 085C80 7F051150 00408825 */ move $s1, $v0 +.L7F051154: +/* 085C84 7F051154 12400035 */ beqz $s2, .L7F05122C +/* 085C88 7F051158 00000000 */ nop +/* 085C8C 7F05115C 12000033 */ beqz $s0, .L7F05122C +/* 085C90 7F051160 00000000 */ nop +/* 085C94 7F051164 12200031 */ beqz $s1, .L7F05122C +/* 085C98 7F051168 27A20030 */ addiu $v0, $sp, 0x30 +/* 085C9C 7F05116C 3C188003 */ lui $t8, %hi(blank_11_object) +/* 085CA0 7F051170 27182114 */ addiu $t8, %lo(blank_11_object) # addiu $t8, $t8, 0x2114 +/* 085CA4 7F051174 8FA500C0 */ lw $a1, 0xc0($sp) +/* 085CA8 7F051178 27080078 */ addiu $t0, $t8, 0x78 +/* 085CAC 7F05117C 00404825 */ move $t1, $v0 +.L7F051180: +/* 085CB0 7F051180 8F010000 */ lw $at, ($t8) +/* 085CB4 7F051184 2718000C */ addiu $t8, $t8, 0xc +/* 085CB8 7F051188 2529000C */ addiu $t1, $t1, 0xc +/* 085CBC 7F05118C AD21FFF4 */ sw $at, -0xc($t1) +/* 085CC0 7F051190 8F01FFF8 */ lw $at, -8($t8) +/* 085CC4 7F051194 AD21FFF8 */ sw $at, -8($t1) +/* 085CC8 7F051198 8F01FFFC */ lw $at, -4($t8) +/* 085CCC 7F05119C 1708FFF8 */ bne $t8, $t0, .L7F051180 +/* 085CD0 7F0511A0 AD21FFFC */ sw $at, -4($t1) +/* 085CD4 7F0511A4 8F010000 */ lw $at, ($t8) +/* 085CD8 7F0511A8 00406025 */ move $t4, $v0 +/* 085CDC 7F0511AC 02406825 */ move $t5, $s2 +/* 085CE0 7F0511B0 AD210000 */ sw $at, ($t1) +/* 085CE4 7F0511B4 8F080004 */ lw $t0, 4($t8) +/* 085CE8 7F0511B8 244B0078 */ addiu $t3, $v0, 0x78 +/* 085CEC 7F0511BC AD280004 */ sw $t0, 4($t1) +.L7F0511C0: +/* 085CF0 7F0511C0 8D810000 */ lw $at, ($t4) +/* 085CF4 7F0511C4 258C000C */ addiu $t4, $t4, 0xc +/* 085CF8 7F0511C8 25AD000C */ addiu $t5, $t5, 0xc +/* 085CFC 7F0511CC ADA1FFF4 */ sw $at, -0xc($t5) +/* 085D00 7F0511D0 8D81FFF8 */ lw $at, -8($t4) +/* 085D04 7F0511D4 ADA1FFF8 */ sw $at, -8($t5) +/* 085D08 7F0511D8 8D81FFFC */ lw $at, -4($t4) +/* 085D0C 7F0511DC 158BFFF8 */ bne $t4, $t3, .L7F0511C0 +/* 085D10 7F0511E0 ADA1FFFC */ sw $at, -4($t5) +/* 085D14 7F0511E4 8D810000 */ lw $at, ($t4) +/* 085D18 7F0511E8 02402025 */ move $a0, $s2 +/* 085D1C 7F0511EC 02003825 */ move $a3, $s0 +/* 085D20 7F0511F0 ADA10000 */ sw $at, ($t5) +/* 085D24 7F0511F4 8D8B0004 */ lw $t3, 4($t4) +/* 085D28 7F0511F8 ADAB0004 */ sw $t3, 4($t5) +/* 085D2C 7F0511FC 8FAE00C4 */ lw $t6, 0xc4($sp) +/* 085D30 7F051200 A64E0004 */ sh $t6, 4($s2) +/* 085D34 7F051204 8FAF00C8 */ lw $t7, 0xc8($sp) +/* 085D38 7F051208 35F94000 */ ori $t9, $t7, 0x4000 +/* 085D3C 7F05120C AE590008 */ sw $t9, 8($s2) +/* 085D40 7F051210 84A80000 */ lh $t0, ($a1) +/* 085D44 7F051214 A6480006 */ sh $t0, 6($s2) +/* 085D48 7F051218 AFB10010 */ sw $s1, 0x10($sp) +/* 085D4C 7F05121C 0FC143D4 */ jal sub_GAME_7F050F50 +/* 085D50 7F051220 8FA600BC */ lw $a2, 0xbc($sp) +/* 085D54 7F051224 1000000A */ b .L7F051250 +/* 085D58 7F051228 00408025 */ move $s0, $v0 +.L7F05122C: +/* 085D5C 7F05122C 12200003 */ beqz $s1, .L7F05123C +/* 085D60 7F051230 00000000 */ nop +/* 085D64 7F051234 0FC1B08D */ jal set_obj_instance_scale_to_zero +/* 085D68 7F051238 02202025 */ move $a0, $s1 +.L7F05123C: +/* 085D6C 7F05123C 52000005 */ beql $s0, $zero, .L7F051254 +/* 085D70 7F051240 8FBF002C */ lw $ra, 0x2c($sp) +/* 085D74 7F051244 0FC0E921 */ jal set_last_obj_pos_data +/* 085D78 7F051248 02002025 */ move $a0, $s0 +/* 085D7C 7F05124C 00008025 */ move $s0, $zero +.L7F051250: +/* 085D80 7F051250 8FBF002C */ lw $ra, 0x2c($sp) +.L7F051254: +/* 085D84 7F051254 02001025 */ move $v0, $s0 +/* 085D88 7F051258 8FB00020 */ lw $s0, 0x20($sp) +/* 085D8C 7F05125C 8FB10024 */ lw $s1, 0x24($sp) +/* 085D90 7F051260 8FB20028 */ lw $s2, 0x28($sp) +/* 085D94 7F051264 03E00008 */ jr $ra +/* 085D98 7F051268 27BD00C0 */ addiu $sp, $sp, 0xc0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05126C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05126C +/* 085D9C 7F05126C 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 085DA0 7F051270 AFB10020 */ sw $s1, 0x20($sp) +/* 085DA4 7F051274 240EFFFF */ li $t6, -1 +/* 085DA8 7F051278 3C078003 */ lui $a3, %hi(D_80030AF8) +/* 085DAC 7F05127C 3C0B8007 */ lui $t3, %hi(ProjectileData_start_address) +/* 085DB0 7F051280 00A08825 */ move $s1, $a1 +/* 085DB4 7F051284 AFBF0024 */ sw $ra, 0x24($sp) +/* 085DB8 7F051288 AFB0001C */ sw $s0, 0x1c($sp) +/* 085DBC 7F05128C AFA40058 */ sw $a0, 0x58($sp) +/* 085DC0 7F051290 AFA60060 */ sw $a2, 0x60($sp) +/* 085DC4 7F051294 AFA0004C */ sw $zero, 0x4c($sp) +/* 085DC8 7F051298 AFA00048 */ sw $zero, 0x48($sp) +/* 085DCC 7F05129C AFAE0044 */ sw $t6, 0x44($sp) +/* 085DD0 7F0512A0 2408FFFF */ li $t0, -1 +/* 085DD4 7F0512A4 2409FFFF */ li $t1, -1 +/* 085DD8 7F0512A8 256B1E80 */ addiu $t3, %lo(ProjectileData_start_address) # addiu $t3, $t3, 0x1e80 +/* 085DDC 7F0512AC 8CE70AF8 */ lw $a3, %lo(D_80030AF8)($a3) +/* 085DE0 7F0512B0 240A0088 */ li $t2, 136 +.L7F0512B4: +/* 085DE4 7F0512B4 00EA0019 */ multu $a3, $t2 +/* 085DE8 7F0512B8 8FB80058 */ lw $t8, 0x58($sp) +/* 085DEC 7F0512BC 00007812 */ mflo $t7 +/* 085DF0 7F0512C0 016F8021 */ addu $s0, $t3, $t7 +/* 085DF4 7F0512C4 8E040010 */ lw $a0, 0x10($s0) +/* 085DF8 7F0512C8 54800008 */ bnezl $a0, .L7F0512EC +/* 085DFC 7F0512CC 8E190064 */ lw $t9, 0x64($s0) +/* 085E00 7F0512D0 57000040 */ bnezl $t8, .L7F0513D4 +/* 085E04 7F0512D4 24E70001 */ addiu $a3, $a3, 1 +/* 085E08 7F0512D8 5620003E */ bnezl $s1, .L7F0513D4 +/* 085E0C 7F0512DC 24E70001 */ addiu $a3, $a3, 1 +/* 085E10 7F0512E0 10000043 */ b .L7F0513F0 +/* 085E14 7F0512E4 AFA70044 */ sw $a3, 0x44($sp) +/* 085E18 7F0512E8 8E190064 */ lw $t9, 0x64($s0) +.L7F0512EC: +/* 085E1C 7F0512EC 332C0080 */ andi $t4, $t9, 0x80 +/* 085E20 7F0512F0 55800038 */ bnezl $t4, .L7F0513D4 +/* 085E24 7F0512F4 24E70001 */ addiu $a3, $a3, 1 +/* 085E28 7F0512F8 920D0002 */ lbu $t5, 2($s0) +/* 085E2C 7F0512FC 31AE0004 */ andi $t6, $t5, 4 +/* 085E30 7F051300 55C00034 */ bnezl $t6, .L7F0513D4 +/* 085E34 7F051304 24E70001 */ addiu $a3, $a3, 1 +/* 085E38 7F051308 860F0082 */ lh $t7, 0x82($s0) +/* 085E3C 7F05130C 5DE00005 */ bgtzl $t7, .L7F051324 +/* 085E40 7F051310 82020080 */ lb $v0, 0x80($s0) +/* 085E44 7F051314 8C98001C */ lw $t8, 0x1c($a0) +/* 085E48 7F051318 13000014 */ beqz $t8, .L7F05136C +/* 085E4C 7F05131C 00000000 */ nop +/* 085E50 7F051320 82020080 */ lb $v0, 0x80($s0) +.L7F051324: +/* 085E54 7F051324 2401001D */ li $at, 29 +/* 085E58 7F051328 10410005 */ beq $v0, $at, .L7F051340 +/* 085E5C 7F05132C 2401001C */ li $at, 28 +/* 085E60 7F051330 10410003 */ beq $v0, $at, .L7F051340 +/* 085E64 7F051334 2401001B */ li $at, 27 +/* 085E68 7F051338 54410026 */ bnel $v0, $at, .L7F0513D4 +/* 085E6C 7F05133C 24E70001 */ addiu $a3, $a3, 1 +.L7F051340: +/* 085E70 7F051340 8C83001C */ lw $v1, 0x1c($a0) +/* 085E74 7F051344 10600009 */ beqz $v1, .L7F05136C +/* 085E78 7F051348 00000000 */ nop +/* 085E7C 7F05134C 90620000 */ lbu $v0, ($v1) +/* 085E80 7F051350 24010001 */ li $at, 1 +/* 085E84 7F051354 10410005 */ beq $v0, $at, .L7F05136C +/* 085E88 7F051358 24010002 */ li $at, 2 +/* 085E8C 7F05135C 10410003 */ beq $v0, $at, .L7F05136C +/* 085E90 7F051360 24010004 */ li $at, 4 +/* 085E94 7F051364 5441001B */ bnel $v0, $at, .L7F0513D4 +/* 085E98 7F051368 24E70001 */ addiu $a3, $a3, 1 +.L7F05136C: +/* 085E9C 7F05136C 1220000E */ beqz $s1, .L7F0513A8 +/* 085EA0 7F051370 8FA50060 */ lw $a1, 0x60($sp) +/* 085EA4 7F051374 8E040014 */ lw $a0, 0x14($s0) +/* 085EA8 7F051378 AFA70054 */ sw $a3, 0x54($sp) +/* 085EAC 7F05137C AFA80040 */ sw $t0, 0x40($sp) +/* 085EB0 7F051380 0FC1B018 */ jal sub_GAME_7F06C060 +/* 085EB4 7F051384 AFA9003C */ sw $t1, 0x3c($sp) +/* 085EB8 7F051388 3C0B8007 */ lui $t3, %hi(ProjectileData_start_address) +/* 085EBC 7F05138C 256B1E80 */ addiu $t3, %lo(ProjectileData_start_address) # addiu $t3, $t3, 0x1e80 +/* 085EC0 7F051390 8FA70054 */ lw $a3, 0x54($sp) +/* 085EC4 7F051394 8FA80040 */ lw $t0, 0x40($sp) +/* 085EC8 7F051398 8FA9003C */ lw $t1, 0x3c($sp) +/* 085ECC 7F05139C 1040000C */ beqz $v0, .L7F0513D0 +/* 085ED0 7F0513A0 240A0088 */ li $t2, 136 +/* 085ED4 7F0513A4 8E040010 */ lw $a0, 0x10($s0) +.L7F0513A8: +/* 085ED8 7F0513A8 90990001 */ lbu $t9, 1($a0) +/* 085EDC 7F0513AC 332C0002 */ andi $t4, $t9, 2 +/* 085EE0 7F0513B0 15800004 */ bnez $t4, .L7F0513C4 +/* 085EE4 7F0513B4 00000000 */ nop +/* 085EE8 7F0513B8 05010002 */ bgez $t0, .L7F0513C4 +/* 085EEC 7F0513BC 00000000 */ nop +/* 085EF0 7F0513C0 00E04025 */ move $t0, $a3 +.L7F0513C4: +/* 085EF4 7F0513C4 05230003 */ bgezl $t1, .L7F0513D4 +/* 085EF8 7F0513C8 24E70001 */ addiu $a3, $a3, 1 +/* 085EFC 7F0513CC 00E04825 */ move $t1, $a3 +.L7F0513D0: +/* 085F00 7F0513D0 24E70001 */ addiu $a3, $a3, 1 +.L7F0513D4: +/* 085F04 7F0513D4 2401001E */ li $at, 30 +/* 085F08 7F0513D8 00E1001A */ div $zero, $a3, $at +/* 085F0C 7F0513DC 3C0E8003 */ lui $t6, %hi(D_80030AF8) +/* 085F10 7F0513E0 8DCE0AF8 */ lw $t6, %lo(D_80030AF8)($t6) +/* 085F14 7F0513E4 00003810 */ mfhi $a3 +/* 085F18 7F0513E8 14EEFFB2 */ bne $a3, $t6, .L7F0512B4 +/* 085F1C 7F0513EC 00000000 */ nop +.L7F0513F0: +/* 085F20 7F0513F0 8FAF0044 */ lw $t7, 0x44($sp) +/* 085F24 7F0513F4 24040008 */ li $a0, 8 +/* 085F28 7F0513F8 27A5004C */ addiu $a1, $sp, 0x4c +/* 085F2C 7F0513FC 05E0000C */ bltz $t7, .L7F051430 +/* 085F30 7F051400 27A60048 */ addiu $a2, $sp, 0x48 +/* 085F34 7F051404 25F80001 */ addiu $t8, $t7, 1 +/* 085F38 7F051408 2401001E */ li $at, 30 +/* 085F3C 7F05140C 0301001A */ div $zero, $t8, $at +/* 085F40 7F051410 0000C810 */ mfhi $t9 +/* 085F44 7F051414 3C018003 */ lui $at, %hi(D_80030AF8) +/* 085F48 7F051418 AC390AF8 */ sw $t9, %lo(D_80030AF8)($at) +/* 085F4C 7F05141C 01EA0019 */ multu $t7, $t2 +/* 085F50 7F051420 00006012 */ mflo $t4 +/* 085F54 7F051424 016C1021 */ addu $v0, $t3, $t4 +/* 085F58 7F051428 10000053 */ b .L7F051578 +/* 085F5C 7F05142C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F051430: +/* 085F60 7F051430 8FAD0060 */ lw $t5, 0x60($sp) +/* 085F64 7F051434 8FA70058 */ lw $a3, 0x58($sp) +/* 085F68 7F051438 AFB10010 */ sw $s1, 0x10($sp) +/* 085F6C 7F05143C AFA80040 */ sw $t0, 0x40($sp) +/* 085F70 7F051440 AFA9003C */ sw $t1, 0x3c($sp) +/* 085F74 7F051444 0FC15BC2 */ jal sub_GAME_7F056F08 +/* 085F78 7F051448 AFAD0014 */ sw $t5, 0x14($sp) +/* 085F7C 7F05144C 3C0B8007 */ lui $t3, %hi(ProjectileData_start_address) +/* 085F80 7F051450 256B1E80 */ addiu $t3, %lo(ProjectileData_start_address) # addiu $t3, $t3, 0x1e80 +/* 085F84 7F051454 8FA80040 */ lw $t0, 0x40($sp) +/* 085F88 7F051458 8FA9003C */ lw $t1, 0x3c($sp) +/* 085F8C 7F05145C 10400003 */ beqz $v0, .L7F05146C +/* 085F90 7F051460 240A0088 */ li $t2, 136 +/* 085F94 7F051464 10000044 */ b .L7F051578 +/* 085F98 7F051468 8FBF0024 */ lw $ra, 0x24($sp) +.L7F05146C: +/* 085F9C 7F05146C 05000015 */ bltz $t0, .L7F0514C4 +/* 085FA0 7F051470 8FAF004C */ lw $t7, 0x4c($sp) +/* 085FA4 7F051474 010A0019 */ multu $t0, $t2 +/* 085FA8 7F051478 24050001 */ li $a1, 1 +/* 085FAC 7F05147C 00008012 */ mflo $s0 +/* 085FB0 7F051480 01702021 */ addu $a0, $t3, $s0 +/* 085FB4 7F051484 8C8E0010 */ lw $t6, 0x10($a0) +/* 085FB8 7F051488 51C00007 */ beql $t6, $zero, .L7F0514A8 +/* 085FBC 7F05148C 25180001 */ addiu $t8, $t0, 1 +/* 085FC0 7F051490 0FC10409 */ jal sub_GAME_7F041024 +/* 085FC4 7F051494 AFA80040 */ sw $t0, 0x40($sp) +/* 085FC8 7F051498 3C0B8007 */ lui $t3, %hi(ProjectileData_start_address) +/* 085FCC 7F05149C 256B1E80 */ addiu $t3, %lo(ProjectileData_start_address) # addiu $t3, $t3, 0x1e80 +/* 085FD0 7F0514A0 8FA80040 */ lw $t0, 0x40($sp) +/* 085FD4 7F0514A4 25180001 */ addiu $t8, $t0, 1 +.L7F0514A8: +/* 085FD8 7F0514A8 2401001E */ li $at, 30 +/* 085FDC 7F0514AC 0301001A */ div $zero, $t8, $at +/* 085FE0 7F0514B0 0000C810 */ mfhi $t9 +/* 085FE4 7F0514B4 3C018003 */ lui $at, %hi(D_80030AF8) +/* 085FE8 7F0514B8 AC390AF8 */ sw $t9, %lo(D_80030AF8)($at) +/* 085FEC 7F0514BC 1000002D */ b .L7F051574 +/* 085FF0 7F0514C0 01701021 */ addu $v0, $t3, $s0 +.L7F0514C4: +/* 085FF4 7F0514C4 11E00009 */ beqz $t7, .L7F0514EC +/* 085FF8 7F0514C8 00000000 */ nop +/* 085FFC 7F0514CC 8DEC0010 */ lw $t4, 0x10($t7) +/* 086000 7F0514D0 01E02025 */ move $a0, $t7 +/* 086004 7F0514D4 11800003 */ beqz $t4, .L7F0514E4 +/* 086008 7F0514D8 00000000 */ nop +/* 08600C 7F0514DC 0FC10409 */ jal sub_GAME_7F041024 +/* 086010 7F0514E0 24050001 */ li $a1, 1 +.L7F0514E4: +/* 086014 7F0514E4 10000023 */ b .L7F051574 +/* 086018 7F0514E8 8FA2004C */ lw $v0, 0x4c($sp) +.L7F0514EC: +/* 08601C 7F0514EC 05220016 */ bltzl $t1, .L7F051548 +/* 086020 7F0514F0 8FB90048 */ lw $t9, 0x48($sp) +/* 086024 7F0514F4 012A0019 */ multu $t1, $t2 +/* 086028 7F0514F8 24050001 */ li $a1, 1 +/* 08602C 7F0514FC 00008012 */ mflo $s0 +/* 086030 7F051500 01702021 */ addu $a0, $t3, $s0 +/* 086034 7F051504 8C8D0010 */ lw $t5, 0x10($a0) +/* 086038 7F051508 51A00007 */ beql $t5, $zero, .L7F051528 +/* 08603C 7F05150C 252E0001 */ addiu $t6, $t1, 1 +/* 086040 7F051510 0FC10409 */ jal sub_GAME_7F041024 +/* 086044 7F051514 AFA9003C */ sw $t1, 0x3c($sp) +/* 086048 7F051518 3C0B8007 */ lui $t3, %hi(ProjectileData_start_address) +/* 08604C 7F05151C 256B1E80 */ addiu $t3, %lo(ProjectileData_start_address) # addiu $t3, $t3, 0x1e80 +/* 086050 7F051520 8FA9003C */ lw $t1, 0x3c($sp) +/* 086054 7F051524 252E0001 */ addiu $t6, $t1, 1 +.L7F051528: +/* 086058 7F051528 2401001E */ li $at, 30 +/* 08605C 7F05152C 01C1001A */ div $zero, $t6, $at +/* 086060 7F051530 0000C010 */ mfhi $t8 +/* 086064 7F051534 3C018003 */ lui $at, %hi(D_80030AF8) +/* 086068 7F051538 AC380AF8 */ sw $t8, %lo(D_80030AF8)($at) +/* 08606C 7F05153C 1000000D */ b .L7F051574 +/* 086070 7F051540 01701021 */ addu $v0, $t3, $s0 +/* 086074 7F051544 8FB90048 */ lw $t9, 0x48($sp) +.L7F051548: +/* 086078 7F051548 5320000A */ beql $t9, $zero, .L7F051574 +/* 08607C 7F05154C 00001025 */ move $v0, $zero +/* 086080 7F051550 8F2C0010 */ lw $t4, 0x10($t9) +/* 086084 7F051554 03202025 */ move $a0, $t9 +/* 086088 7F051558 11800003 */ beqz $t4, .L7F051568 +/* 08608C 7F05155C 00000000 */ nop +/* 086090 7F051560 0FC10409 */ jal sub_GAME_7F041024 +/* 086094 7F051564 24050001 */ li $a1, 1 +.L7F051568: +/* 086098 7F051568 10000002 */ b .L7F051574 +/* 08609C 7F05156C 8FA20048 */ lw $v0, 0x48($sp) +/* 0860A0 7F051570 00001025 */ move $v0, $zero +.L7F051574: +/* 0860A4 7F051574 8FBF0024 */ lw $ra, 0x24($sp) +.L7F051578: +/* 0860A8 7F051578 8FB0001C */ lw $s0, 0x1c($sp) +/* 0860AC 7F05157C 8FB10020 */ lw $s1, 0x20($sp) +/* 0860B0 7F051580 03E00008 */ jr $ra +/* 0860B4 7F051584 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F051588(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F051588 +/* 0860B8 7F051588 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0860BC 7F05158C AFBF0014 */ sw $ra, 0x14($sp) +/* 0860C0 7F051590 00002025 */ move $a0, $zero +/* 0860C4 7F051594 00002825 */ move $a1, $zero +/* 0860C8 7F051598 0FC1449B */ jal sub_GAME_7F05126C +/* 0860CC 7F05159C 00003025 */ move $a2, $zero +/* 0860D0 7F0515A0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0860D4 7F0515A4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0860D8 7F0515A8 03E00008 */ jr $ra +/* 0860DC 7F0515AC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0515B0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0515B0 +/* 0860E0 7F0515B0 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0860E4 7F0515B4 AFB50034 */ sw $s5, 0x34($sp) +/* 0860E8 7F0515B8 3C158003 */ lui $s5, %hi(D_80030AFC) +/* 0860EC 7F0515BC AFB40030 */ sw $s4, 0x30($sp) +/* 0860F0 7F0515C0 26B50AFC */ addiu $s5, %lo(D_80030AFC) # addiu $s5, $s5, 0xafc +/* 0860F4 7F0515C4 AFB60038 */ sw $s6, 0x38($sp) +/* 0860F8 7F0515C8 AFB3002C */ sw $s3, 0x2c($sp) +/* 0860FC 7F0515CC AFB20028 */ sw $s2, 0x28($sp) +/* 086100 7F0515D0 AFB10024 */ sw $s1, 0x24($sp) +/* 086104 7F0515D4 240EFFFF */ li $t6, -1 +/* 086108 7F0515D8 3C148007 */ lui $s4, %hi(dword_CODE_bss_80072E70) +/* 08610C 7F0515DC 00A09025 */ move $s2, $a1 +/* 086110 7F0515E0 AFBF003C */ sw $ra, 0x3c($sp) +/* 086114 7F0515E4 AFB00020 */ sw $s0, 0x20($sp) +/* 086118 7F0515E8 AFA60070 */ sw $a2, 0x70($sp) +/* 08611C 7F0515EC 00803825 */ move $a3, $a0 +/* 086120 7F0515F0 AFA0005C */ sw $zero, 0x5c($sp) +/* 086124 7F0515F4 AFA00058 */ sw $zero, 0x58($sp) +/* 086128 7F0515F8 AFAE0054 */ sw $t6, 0x54($sp) +/* 08612C 7F0515FC 2411FFFF */ li $s1, -1 +/* 086130 7F051600 2413FFFF */ li $s3, -1 +/* 086134 7F051604 26942E70 */ addiu $s4, %lo(dword_CODE_bss_80072E70) # addiu $s4, $s4, 0x2e70 +/* 086138 7F051608 2416000A */ li $s6, 10 +/* 08613C 7F05160C 8EA30000 */ lw $v1, ($s5) +/* 086140 7F051610 000379C0 */ sll $t7, $v1, 7 +.L7F051614: +/* 086144 7F051614 028F8021 */ addu $s0, $s4, $t7 +/* 086148 7F051618 8E020010 */ lw $v0, 0x10($s0) +/* 08614C 7F05161C 54400008 */ bnezl $v0, .L7F051640 +/* 086150 7F051620 8E180064 */ lw $t8, 0x64($s0) +/* 086154 7F051624 54E00022 */ bnezl $a3, .L7F0516B0 +/* 086158 7F051628 246B0001 */ addiu $t3, $v1, 1 +/* 08615C 7F05162C 56400020 */ bnezl $s2, .L7F0516B0 +/* 086160 7F051630 246B0001 */ addiu $t3, $v1, 1 +/* 086164 7F051634 1000002C */ b .L7F0516E8 +/* 086168 7F051638 AFA30054 */ sw $v1, 0x54($sp) +/* 08616C 7F05163C 8E180064 */ lw $t8, 0x64($s0) +.L7F051640: +/* 086170 7F051640 33190080 */ andi $t9, $t8, 0x80 +/* 086174 7F051644 5720001A */ bnezl $t9, .L7F0516B0 +/* 086178 7F051648 246B0001 */ addiu $t3, $v1, 1 +/* 08617C 7F05164C 8C48001C */ lw $t0, 0x1c($v0) +/* 086180 7F051650 55000017 */ bnezl $t0, .L7F0516B0 +/* 086184 7F051654 246B0001 */ addiu $t3, $v1, 1 +/* 086188 7F051658 5240000B */ beql $s2, $zero, .L7F051688 +/* 08618C 7F05165C 90490001 */ lbu $t1, 1($v0) +/* 086190 7F051660 8E040014 */ lw $a0, 0x14($s0) +/* 086194 7F051664 8FA50070 */ lw $a1, 0x70($sp) +/* 086198 7F051668 AFA30064 */ sw $v1, 0x64($sp) +/* 08619C 7F05166C 0FC1B018 */ jal sub_GAME_7F06C060 +/* 0861A0 7F051670 AFA70068 */ sw $a3, 0x68($sp) +/* 0861A4 7F051674 8FA30064 */ lw $v1, 0x64($sp) +/* 0861A8 7F051678 1040000C */ beqz $v0, .L7F0516AC +/* 0861AC 7F05167C 8FA70068 */ lw $a3, 0x68($sp) +/* 0861B0 7F051680 8E020010 */ lw $v0, 0x10($s0) +/* 0861B4 7F051684 90490001 */ lbu $t1, 1($v0) +.L7F051688: +/* 0861B8 7F051688 312A0002 */ andi $t2, $t1, 2 +/* 0861BC 7F05168C 15400004 */ bnez $t2, .L7F0516A0 +/* 0861C0 7F051690 00000000 */ nop +/* 0861C4 7F051694 06210002 */ bgez $s1, .L7F0516A0 +/* 0861C8 7F051698 00000000 */ nop +/* 0861CC 7F05169C 00608825 */ move $s1, $v1 +.L7F0516A0: +/* 0861D0 7F0516A0 06630003 */ bgezl $s3, .L7F0516B0 +/* 0861D4 7F0516A4 246B0001 */ addiu $t3, $v1, 1 +/* 0861D8 7F0516A8 00609825 */ move $s3, $v1 +.L7F0516AC: +/* 0861DC 7F0516AC 246B0001 */ addiu $t3, $v1, 1 +.L7F0516B0: +/* 0861E0 7F0516B0 0176001A */ div $zero, $t3, $s6 +/* 0861E4 7F0516B4 8EAC0000 */ lw $t4, ($s5) +/* 0861E8 7F0516B8 00001810 */ mfhi $v1 +/* 0861EC 7F0516BC 16C00002 */ bnez $s6, .L7F0516C8 +/* 0861F0 7F0516C0 00000000 */ nop +/* 0861F4 7F0516C4 0007000D */ break 7 +.L7F0516C8: +/* 0861F8 7F0516C8 2401FFFF */ li $at, -1 +/* 0861FC 7F0516CC 16C10004 */ bne $s6, $at, .L7F0516E0 +/* 086200 7F0516D0 3C018000 */ lui $at, 0x8000 +/* 086204 7F0516D4 15610002 */ bne $t3, $at, .L7F0516E0 +/* 086208 7F0516D8 00000000 */ nop +/* 08620C 7F0516DC 0006000D */ break 6 +.L7F0516E0: +/* 086210 7F0516E0 546CFFCC */ bnel $v1, $t4, .L7F051614 +/* 086214 7F0516E4 000379C0 */ sll $t7, $v1, 7 +.L7F0516E8: +/* 086218 7F0516E8 8FAD0054 */ lw $t5, 0x54($sp) +/* 08621C 7F0516EC 05A00011 */ bltz $t5, .L7F051734 +/* 086220 7F0516F0 25AE0001 */ addiu $t6, $t5, 1 +/* 086224 7F0516F4 01D6001A */ div $zero, $t6, $s6 +/* 086228 7F0516F8 8FB80054 */ lw $t8, 0x54($sp) +/* 08622C 7F0516FC 00007810 */ mfhi $t7 +/* 086230 7F051700 AEAF0000 */ sw $t7, ($s5) +/* 086234 7F051704 16C00002 */ bnez $s6, .L7F051710 +/* 086238 7F051708 00000000 */ nop +/* 08623C 7F05170C 0007000D */ break 7 +.L7F051710: +/* 086240 7F051710 2401FFFF */ li $at, -1 +/* 086244 7F051714 16C10004 */ bne $s6, $at, .L7F051728 +/* 086248 7F051718 3C018000 */ lui $at, 0x8000 +/* 08624C 7F05171C 15C10002 */ bne $t6, $at, .L7F051728 +/* 086250 7F051720 00000000 */ nop +/* 086254 7F051724 0006000D */ break 6 +.L7F051728: +/* 086258 7F051728 0018C9C0 */ sll $t9, $t8, 7 +/* 08625C 7F05172C 10000054 */ b .L7F051880 +/* 086260 7F051730 02991021 */ addu $v0, $s4, $t9 +.L7F051734: +/* 086264 7F051734 8FA80070 */ lw $t0, 0x70($sp) +/* 086268 7F051738 24040011 */ li $a0, 17 +/* 08626C 7F05173C 27A5005C */ addiu $a1, $sp, 0x5c +/* 086270 7F051740 27A60058 */ addiu $a2, $sp, 0x58 +/* 086274 7F051744 AFB20010 */ sw $s2, 0x10($sp) +/* 086278 7F051748 0FC15BC2 */ jal sub_GAME_7F056F08 +/* 08627C 7F05174C AFA80014 */ sw $t0, 0x14($sp) +/* 086280 7F051750 10400003 */ beqz $v0, .L7F051760 +/* 086284 7F051754 00401825 */ move $v1, $v0 +/* 086288 7F051758 10000049 */ b .L7F051880 +/* 08628C 7F05175C 00601025 */ move $v0, $v1 +.L7F051760: +/* 086290 7F051760 06220019 */ bltzl $s1, .L7F0517C8 +/* 086294 7F051764 8FAE005C */ lw $t6, 0x5c($sp) +/* 086298 7F051768 001149C0 */ sll $t1, $s1, 7 +/* 08629C 7F05176C 02892021 */ addu $a0, $s4, $t1 +/* 0862A0 7F051770 8C8A0010 */ lw $t2, 0x10($a0) +/* 0862A4 7F051774 51400004 */ beql $t2, $zero, .L7F051788 +/* 0862A8 7F051778 262B0001 */ addiu $t3, $s1, 1 +/* 0862AC 7F05177C 0FC10409 */ jal sub_GAME_7F041024 +/* 0862B0 7F051780 24050001 */ li $a1, 1 +/* 0862B4 7F051784 262B0001 */ addiu $t3, $s1, 1 +.L7F051788: +/* 0862B8 7F051788 0176001A */ div $zero, $t3, $s6 +/* 0862BC 7F05178C 00006010 */ mfhi $t4 +/* 0862C0 7F051790 001169C0 */ sll $t5, $s1, 7 +/* 0862C4 7F051794 16C00002 */ bnez $s6, .L7F0517A0 +/* 0862C8 7F051798 00000000 */ nop +/* 0862CC 7F05179C 0007000D */ break 7 +.L7F0517A0: +/* 0862D0 7F0517A0 2401FFFF */ li $at, -1 +/* 0862D4 7F0517A4 16C10004 */ bne $s6, $at, .L7F0517B8 +/* 0862D8 7F0517A8 3C018000 */ lui $at, 0x8000 +/* 0862DC 7F0517AC 15610002 */ bne $t3, $at, .L7F0517B8 +/* 0862E0 7F0517B0 00000000 */ nop +/* 0862E4 7F0517B4 0006000D */ break 6 +.L7F0517B8: +/* 0862E8 7F0517B8 AEAC0000 */ sw $t4, ($s5) +/* 0862EC 7F0517BC 10000030 */ b .L7F051880 +/* 0862F0 7F0517C0 028D1021 */ addu $v0, $s4, $t5 +/* 0862F4 7F0517C4 8FAE005C */ lw $t6, 0x5c($sp) +.L7F0517C8: +/* 0862F8 7F0517C8 11C00009 */ beqz $t6, .L7F0517F0 +/* 0862FC 7F0517CC 00000000 */ nop +/* 086300 7F0517D0 8DCF0010 */ lw $t7, 0x10($t6) +/* 086304 7F0517D4 01C02025 */ move $a0, $t6 +/* 086308 7F0517D8 11E00003 */ beqz $t7, .L7F0517E8 +/* 08630C 7F0517DC 00000000 */ nop +/* 086310 7F0517E0 0FC10409 */ jal sub_GAME_7F041024 +/* 086314 7F0517E4 24050001 */ li $a1, 1 +.L7F0517E8: +/* 086318 7F0517E8 10000025 */ b .L7F051880 +/* 08631C 7F0517EC 8FA2005C */ lw $v0, 0x5c($sp) +.L7F0517F0: +/* 086320 7F0517F0 06600017 */ bltz $s3, .L7F051850 +/* 086324 7F0517F4 0013C1C0 */ sll $t8, $s3, 7 +/* 086328 7F0517F8 02982021 */ addu $a0, $s4, $t8 +/* 08632C 7F0517FC 8C990010 */ lw $t9, 0x10($a0) +/* 086330 7F051800 53200004 */ beql $t9, $zero, .L7F051814 +/* 086334 7F051804 26680001 */ addiu $t0, $s3, 1 +/* 086338 7F051808 0FC10409 */ jal sub_GAME_7F041024 +/* 08633C 7F05180C 24050001 */ li $a1, 1 +/* 086340 7F051810 26680001 */ addiu $t0, $s3, 1 +.L7F051814: +/* 086344 7F051814 0116001A */ div $zero, $t0, $s6 +/* 086348 7F051818 00004810 */ mfhi $t1 +/* 08634C 7F05181C 001351C0 */ sll $t2, $s3, 7 +/* 086350 7F051820 16C00002 */ bnez $s6, .L7F05182C +/* 086354 7F051824 00000000 */ nop +/* 086358 7F051828 0007000D */ break 7 +.L7F05182C: +/* 08635C 7F05182C 2401FFFF */ li $at, -1 +/* 086360 7F051830 16C10004 */ bne $s6, $at, .L7F051844 +/* 086364 7F051834 3C018000 */ lui $at, 0x8000 +/* 086368 7F051838 15010002 */ bne $t0, $at, .L7F051844 +/* 08636C 7F05183C 00000000 */ nop +/* 086370 7F051840 0006000D */ break 6 +.L7F051844: +/* 086374 7F051844 AEA90000 */ sw $t1, ($s5) +/* 086378 7F051848 1000000D */ b .L7F051880 +/* 08637C 7F05184C 028A1021 */ addu $v0, $s4, $t2 +.L7F051850: +/* 086380 7F051850 8FAB0058 */ lw $t3, 0x58($sp) +/* 086384 7F051854 5160000A */ beql $t3, $zero, .L7F051880 +/* 086388 7F051858 00001025 */ move $v0, $zero +/* 08638C 7F05185C 8D6C0010 */ lw $t4, 0x10($t3) +/* 086390 7F051860 01602025 */ move $a0, $t3 +/* 086394 7F051864 11800003 */ beqz $t4, .L7F051874 +/* 086398 7F051868 00000000 */ nop +/* 08639C 7F05186C 0FC10409 */ jal sub_GAME_7F041024 +/* 0863A0 7F051870 24050001 */ li $a1, 1 +.L7F051874: +/* 0863A4 7F051874 10000002 */ b .L7F051880 +/* 0863A8 7F051878 8FA20058 */ lw $v0, 0x58($sp) +/* 0863AC 7F05187C 00001025 */ move $v0, $zero +.L7F051880: +/* 0863B0 7F051880 8FBF003C */ lw $ra, 0x3c($sp) +/* 0863B4 7F051884 8FB00020 */ lw $s0, 0x20($sp) +/* 0863B8 7F051888 8FB10024 */ lw $s1, 0x24($sp) +/* 0863BC 7F05188C 8FB20028 */ lw $s2, 0x28($sp) +/* 0863C0 7F051890 8FB3002C */ lw $s3, 0x2c($sp) +/* 0863C4 7F051894 8FB40030 */ lw $s4, 0x30($sp) +/* 0863C8 7F051898 8FB50034 */ lw $s5, 0x34($sp) +/* 0863CC 7F05189C 8FB60038 */ lw $s6, 0x38($sp) +/* 0863D0 7F0518A0 03E00008 */ jr $ra +/* 0863D4 7F0518A4 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0518A8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0518A8 +/* 0863D8 7F0518A8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0863DC 7F0518AC AFBF0014 */ sw $ra, 0x14($sp) +/* 0863E0 7F0518B0 00002025 */ move $a0, $zero +/* 0863E4 7F0518B4 00002825 */ move $a1, $zero +/* 0863E8 7F0518B8 0FC1456C */ jal sub_GAME_7F0515B0 +/* 0863EC 7F0518BC 00003025 */ move $a2, $zero +/* 0863F0 7F0518C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0863F4 7F0518C4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0863F8 7F0518C8 03E00008 */ jr $ra +/* 0863FC 7F0518CC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0518D0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0518D0 +/* 086400 7F0518D0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 086404 7F0518D4 3C048007 */ lui $a0, %hi(dword_CODE_bss_80073370) +/* 086408 7F0518D8 3C028007 */ lui $v0, %hi(dword_CODE_bss_80073DC0) +/* 08640C 7F0518DC AFBF0014 */ sw $ra, 0x14($sp) +/* 086410 7F0518E0 24423DC0 */ addiu $v0, %lo(dword_CODE_bss_80073DC0) # addiu $v0, $v0, 0x3dc0 +/* 086414 7F0518E4 24843370 */ addiu $a0, %lo(dword_CODE_bss_80073370) # addiu $a0, $a0, 0x3370 +/* 086418 7F0518E8 00001825 */ move $v1, $zero +.L7F0518EC: +/* 08641C 7F0518EC 8C8E0010 */ lw $t6, 0x10($a0) +/* 086420 7F0518F0 24840084 */ addiu $a0, $a0, 0x84 +/* 086424 7F0518F4 0082082B */ sltu $at, $a0, $v0 +/* 086428 7F0518F8 15C00004 */ bnez $t6, .L7F05190C +/* 08642C 7F0518FC 3C0F8007 */ lui $t7, %hi(dword_CODE_bss_80073370) +/* 086430 7F051900 25EF3370 */ addiu $t7, %lo(dword_CODE_bss_80073370) # addiu $t7, $t7, 0x3370 +/* 086434 7F051904 10000040 */ b .L7F051A08 +/* 086438 7F051908 006F1021 */ addu $v0, $v1, $t7 +.L7F05190C: +/* 08643C 7F05190C 1420FFF7 */ bnez $at, .L7F0518EC +/* 086440 7F051910 24630084 */ addiu $v1, $v1, 0x84 +/* 086444 7F051914 3C048007 */ lui $a0, %hi(dword_CODE_bss_80073370) +/* 086448 7F051918 3C058007 */ lui $a1, %hi(dword_CODE_bss_80073DC0) +/* 08644C 7F05191C 24A53DC0 */ addiu $a1, %lo(dword_CODE_bss_80073DC0) # addiu $a1, $a1, 0x3dc0 +/* 086450 7F051920 24843370 */ addiu $a0, %lo(dword_CODE_bss_80073370) # addiu $a0, $a0, 0x3370 +/* 086454 7F051924 00001825 */ move $v1, $zero +.L7F051928: +/* 086458 7F051928 8C980064 */ lw $t8, 0x64($a0) +/* 08645C 7F05192C 33190080 */ andi $t9, $t8, 0x80 +/* 086460 7F051930 57200016 */ bnezl $t9, .L7F05198C +/* 086464 7F051934 24840084 */ addiu $a0, $a0, 0x84 +/* 086468 7F051938 90880002 */ lbu $t0, 2($a0) +/* 08646C 7F05193C 31090004 */ andi $t1, $t0, 4 +/* 086470 7F051940 55200012 */ bnezl $t1, .L7F05198C +/* 086474 7F051944 24840084 */ addiu $a0, $a0, 0x84 +/* 086478 7F051948 8C820010 */ lw $v0, 0x10($a0) +/* 08647C 7F05194C 8C4A001C */ lw $t2, 0x1c($v0) +/* 086480 7F051950 5540000E */ bnezl $t2, .L7F05198C +/* 086484 7F051954 24840084 */ addiu $a0, $a0, 0x84 +/* 086488 7F051958 904B0001 */ lbu $t3, 1($v0) +/* 08648C 7F05195C 316C0002 */ andi $t4, $t3, 2 +/* 086490 7F051960 5580000A */ bnezl $t4, .L7F05198C +/* 086494 7F051964 24840084 */ addiu $a0, $a0, 0x84 +/* 086498 7F051968 24050001 */ li $a1, 1 +/* 08649C 7F05196C 0FC10409 */ jal sub_GAME_7F041024 +/* 0864A0 7F051970 AFA30018 */ sw $v1, 0x18($sp) +/* 0864A4 7F051974 8FA30018 */ lw $v1, 0x18($sp) +/* 0864A8 7F051978 3C0D8007 */ lui $t5, %hi(dword_CODE_bss_80073370) +/* 0864AC 7F05197C 25AD3370 */ addiu $t5, %lo(dword_CODE_bss_80073370) # addiu $t5, $t5, 0x3370 +/* 0864B0 7F051980 10000021 */ b .L7F051A08 +/* 0864B4 7F051984 006D1021 */ addu $v0, $v1, $t5 +/* 0864B8 7F051988 24840084 */ addiu $a0, $a0, 0x84 +.L7F05198C: +/* 0864BC 7F05198C 0085082B */ sltu $at, $a0, $a1 +/* 0864C0 7F051990 1420FFE5 */ bnez $at, .L7F051928 +/* 0864C4 7F051994 24630084 */ addiu $v1, $v1, 0x84 +/* 0864C8 7F051998 3C048007 */ lui $a0, %hi(dword_CODE_bss_80073370) +/* 0864CC 7F05199C 3C028007 */ lui $v0, %hi(dword_CODE_bss_80073DC0) +/* 0864D0 7F0519A0 24423DC0 */ addiu $v0, %lo(dword_CODE_bss_80073DC0) # addiu $v0, $v0, 0x3dc0 +/* 0864D4 7F0519A4 24843370 */ addiu $a0, %lo(dword_CODE_bss_80073370) # addiu $a0, $a0, 0x3370 +/* 0864D8 7F0519A8 00001825 */ move $v1, $zero +.L7F0519AC: +/* 0864DC 7F0519AC 8C8E0064 */ lw $t6, 0x64($a0) +/* 0864E0 7F0519B0 31CF0080 */ andi $t7, $t6, 0x80 +/* 0864E4 7F0519B4 55E00011 */ bnezl $t7, .L7F0519FC +/* 0864E8 7F0519B8 24840084 */ addiu $a0, $a0, 0x84 +/* 0864EC 7F0519BC 90980002 */ lbu $t8, 2($a0) +/* 0864F0 7F0519C0 33190004 */ andi $t9, $t8, 4 +/* 0864F4 7F0519C4 5720000D */ bnezl $t9, .L7F0519FC +/* 0864F8 7F0519C8 24840084 */ addiu $a0, $a0, 0x84 +/* 0864FC 7F0519CC 8C880010 */ lw $t0, 0x10($a0) +/* 086500 7F0519D0 8D09001C */ lw $t1, 0x1c($t0) +/* 086504 7F0519D4 15200008 */ bnez $t1, .L7F0519F8 +/* 086508 7F0519D8 24050001 */ li $a1, 1 +/* 08650C 7F0519DC 0FC10409 */ jal sub_GAME_7F041024 +/* 086510 7F0519E0 AFA30018 */ sw $v1, 0x18($sp) +/* 086514 7F0519E4 8FA30018 */ lw $v1, 0x18($sp) +/* 086518 7F0519E8 3C0A8007 */ lui $t2, %hi(dword_CODE_bss_80073370) +/* 08651C 7F0519EC 254A3370 */ addiu $t2, %lo(dword_CODE_bss_80073370) # addiu $t2, $t2, 0x3370 +/* 086520 7F0519F0 10000005 */ b .L7F051A08 +/* 086524 7F0519F4 006A1021 */ addu $v0, $v1, $t2 +.L7F0519F8: +/* 086528 7F0519F8 24840084 */ addiu $a0, $a0, 0x84 +.L7F0519FC: +/* 08652C 7F0519FC 1482FFEB */ bne $a0, $v0, .L7F0519AC +/* 086530 7F051A00 24630084 */ addiu $v1, $v1, 0x84 +/* 086534 7F051A04 00001025 */ move $v0, $zero +.L7F051A08: +/* 086538 7F051A08 8FBF0014 */ lw $ra, 0x14($sp) +/* 08653C 7F051A0C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 086540 7F051A10 03E00008 */ jr $ra +/* 086544 7F051A14 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void trigger_remote_mine_detonation(void) +{ + u32 uVar1; + + uVar1 = get_cur_playernum(); + D_80030AF4 = D_80030AF4 | 1 << (uVar1 & 0x1f); + play_sfx_a1(ptr_sfx_buf,0xf3,0x0); +} +#else +GLOBAL_ASM( +.text +glabel trigger_remote_mine_detonation +/* 086548 7F051A18 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08654C 7F051A1C AFBF0014 */ sw $ra, 0x14($sp) +/* 086550 7F051A20 0FC26C54 */ jal get_cur_playernum +/* 086554 7F051A24 00000000 */ nop +/* 086558 7F051A28 3C038003 */ lui $v1, %hi(D_80030AF4) +/* 08655C 7F051A2C 24630AF4 */ addiu $v1, %lo(D_80030AF4) # addiu $v1, $v1, 0xaf4 +/* 086560 7F051A30 8C6E0000 */ lw $t6, ($v1) +/* 086564 7F051A34 240F0001 */ li $t7, 1 +/* 086568 7F051A38 004FC004 */ sllv $t8, $t7, $v0 +/* 08656C 7F051A3C 01D8C825 */ or $t9, $t6, $t8 +/* 086570 7F051A40 AC790000 */ sw $t9, ($v1) +/* 086574 7F051A44 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 086578 7F051A48 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08657C 7F051A4C 240500F3 */ li $a1, 243 +/* 086580 7F051A50 0C002382 */ jal play_sfx_a1 +/* 086584 7F051A54 00003025 */ move $a2, $zero +/* 086588 7F051A58 8FBF0014 */ lw $ra, 0x14($sp) +/* 08658C 7F051A5C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 086590 7F051A60 03E00008 */ jr $ra +/* 086594 7F051A64 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void check_if_entry_is_collectable(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_entry_is_collectable +/* 086598 7F051A68 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 08659C 7F051A6C AFBF001C */ sw $ra, 0x1c($sp) +/* 0865A0 7F051A70 AFB10018 */ sw $s1, 0x18($sp) +/* 0865A4 7F051A74 AFB00014 */ sw $s0, 0x14($sp) +/* 0865A8 7F051A78 90AE0000 */ lbu $t6, ($a1) +/* 0865AC 7F051A7C 24010004 */ li $at, 4 +/* 0865B0 7F051A80 00808825 */ move $s1, $a0 +/* 0865B4 7F051A84 55C10008 */ bnel $t6, $at, .L7F051AA8 +/* 0865B8 7F051A88 8CB00020 */ lw $s0, 0x20($a1) +/* 0865BC 7F051A8C 8CA30004 */ lw $v1, 4($a1) +/* 0865C0 7F051A90 806F0080 */ lb $t7, 0x80($v1) +/* 0865C4 7F051A94 548F0004 */ bnel $a0, $t7, .L7F051AA8 +/* 0865C8 7F051A98 8CB00020 */ lw $s0, 0x20($a1) +/* 0865CC 7F051A9C 1000000E */ b .L7F051AD8 +/* 0865D0 7F051AA0 00601025 */ move $v0, $v1 +/* 0865D4 7F051AA4 8CB00020 */ lw $s0, 0x20($a1) +.L7F051AA8: +/* 0865D8 7F051AA8 1200000A */ beqz $s0, .L7F051AD4 +/* 0865DC 7F051AAC 02202025 */ move $a0, $s1 +.L7F051AB0: +/* 0865E0 7F051AB0 0FC1469A */ jal check_if_entry_is_collectable +/* 0865E4 7F051AB4 02002825 */ move $a1, $s0 +/* 0865E8 7F051AB8 50400004 */ beql $v0, $zero, .L7F051ACC +/* 0865EC 7F051ABC 8E100024 */ lw $s0, 0x24($s0) +/* 0865F0 7F051AC0 10000006 */ b .L7F051ADC +/* 0865F4 7F051AC4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0865F8 7F051AC8 8E100024 */ lw $s0, 0x24($s0) +.L7F051ACC: +/* 0865FC 7F051ACC 5600FFF8 */ bnezl $s0, .L7F051AB0 +/* 086600 7F051AD0 02202025 */ move $a0, $s1 +.L7F051AD4: +/* 086604 7F051AD4 00001025 */ move $v0, $zero +.L7F051AD8: +/* 086608 7F051AD8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F051ADC: +/* 08660C 7F051ADC 8FB00014 */ lw $s0, 0x14($sp) +/* 086610 7F051AE0 8FB10018 */ lw $s1, 0x18($sp) +/* 086614 7F051AE4 03E00008 */ jr $ra +/* 086618 7F051AE8 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void check_if_item_deposited(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_item_deposited +/* 08661C 7F051AEC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 086620 7F051AF0 AFBF001C */ sw $ra, 0x1c($sp) +/* 086624 7F051AF4 AFB10018 */ sw $s1, 0x18($sp) +/* 086628 7F051AF8 00808825 */ move $s1, $a0 +/* 08662C 7F051AFC 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 086630 7F051B00 AFB00014 */ sw $s0, 0x14($sp) +/* 086634 7F051B04 1040000F */ beqz $v0, .L7F051B44 +/* 086638 7F051B08 00408025 */ move $s0, $v0 +/* 08663C 7F051B0C 02202025 */ move $a0, $s1 +.L7F051B10: +/* 086640 7F051B10 0FC1469A */ jal check_if_entry_is_collectable +/* 086644 7F051B14 02002825 */ move $a1, $s0 +/* 086648 7F051B18 50400008 */ beql $v0, $zero, .L7F051B3C +/* 08664C 7F051B1C 8E100024 */ lw $s0, 0x24($s0) +/* 086650 7F051B20 8C4E0064 */ lw $t6, 0x64($v0) +/* 086654 7F051B24 31CF0080 */ andi $t7, $t6, 0x80 +/* 086658 7F051B28 55E00004 */ bnezl $t7, .L7F051B3C +/* 08665C 7F051B2C 8E100024 */ lw $s0, 0x24($s0) +/* 086660 7F051B30 10000006 */ b .L7F051B4C +/* 086664 7F051B34 8FBF001C */ lw $ra, 0x1c($sp) +/* 086668 7F051B38 8E100024 */ lw $s0, 0x24($s0) +.L7F051B3C: +/* 08666C 7F051B3C 5600FFF4 */ bnezl $s0, .L7F051B10 +/* 086670 7F051B40 02202025 */ move $a0, $s1 +.L7F051B44: +/* 086674 7F051B44 00001025 */ move $v0, $zero +/* 086678 7F051B48 8FBF001C */ lw $ra, 0x1c($sp) +.L7F051B4C: +/* 08667C 7F051B4C 8FB00014 */ lw $s0, 0x14($sp) +/* 086680 7F051B50 8FB10018 */ lw $s1, 0x18($sp) +/* 086684 7F051B54 03E00008 */ jr $ra +/* 086688 7F051B58 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void add_obj_to_temp_proxmine_table(void) { + +} +#else +GLOBAL_ASM( +.text +glabel add_obj_to_temp_proxmine_table +/* 08668C 7F051B5C 3C038007 */ lui $v1, %hi(temp_mine_table) +/* 086690 7F051B60 3C028007 */ lui $v0, %hi(gas_damage_flag) +/* 086694 7F051B64 24421E78 */ addiu $v0, %lo(gas_damage_flag) # addiu $v0, $v0, 0x1e78 +/* 086698 7F051B68 24631E00 */ addiu $v1, %lo(temp_mine_table) # addiu $v1, $v1, 0x1e00 +/* 08669C 7F051B6C 8C6E0000 */ lw $t6, ($v1) +.L7F051B70: +/* 0866A0 7F051B70 55C00004 */ bnezl $t6, .L7F051B84 +/* 0866A4 7F051B74 24630004 */ addiu $v1, $v1, 4 +/* 0866A8 7F051B78 03E00008 */ jr $ra +/* 0866AC 7F051B7C AC640000 */ sw $a0, ($v1) + +/* 0866B0 7F051B80 24630004 */ addiu $v1, $v1, 4 +.L7F051B84: +/* 0866B4 7F051B84 5462FFFA */ bnel $v1, $v0, .L7F051B70 +/* 0866B8 7F051B88 8C6E0000 */ lw $t6, ($v1) +/* 0866BC 7F051B8C 03E00008 */ jr $ra +/* 0866C0 7F051B90 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void remove_obj_from_temp_proxmine_table(void) { + +} +#else +GLOBAL_ASM( +.text +glabel remove_obj_from_temp_proxmine_table +/* 0866C4 7F051B94 3C038007 */ lui $v1, %hi(temp_mine_table) +/* 0866C8 7F051B98 3C028007 */ lui $v0, %hi(gas_damage_flag) +/* 0866CC 7F051B9C 24421E78 */ addiu $v0, %lo(gas_damage_flag) # addiu $v0, $v0, 0x1e78 +/* 0866D0 7F051BA0 24631E00 */ addiu $v1, %lo(temp_mine_table) # addiu $v1, $v1, 0x1e00 +/* 0866D4 7F051BA4 8C6E0000 */ lw $t6, ($v1) +.L7F051BA8: +/* 0866D8 7F051BA8 548E0004 */ bnel $a0, $t6, .L7F051BBC +/* 0866DC 7F051BAC 24630004 */ addiu $v1, $v1, 4 +/* 0866E0 7F051BB0 03E00008 */ jr $ra +/* 0866E4 7F051BB4 AC600000 */ sw $zero, ($v1) + +/* 0866E8 7F051BB8 24630004 */ addiu $v1, $v1, 4 +.L7F051BBC: +/* 0866EC 7F051BBC 5462FFFA */ bnel $v1, $v0, .L7F051BA8 +/* 0866F0 7F051BC0 8C6E0000 */ lw $t6, ($v1) +/* 0866F4 7F051BC4 03E00008 */ jr $ra +/* 0866F8 7F051BC8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void detonate_proxmine_In_range(void) { + +} +#else +GLOBAL_ASM( +.text +glabel detonate_proxmine_In_range +/* 0866FC 7F051BCC 3C038007 */ lui $v1, %hi(temp_mine_table) +/* 086700 7F051BD0 3C018005 */ lui $at, %hi(D_800532EC) +/* 086704 7F051BD4 3C078007 */ lui $a3, %hi(gas_damage_flag) +/* 086708 7F051BD8 00802825 */ move $a1, $a0 +/* 08670C 7F051BDC 24E71E78 */ addiu $a3, %lo(gas_damage_flag) # addiu $a3, $a3, 0x1e78 +/* 086710 7F051BE0 C42E32EC */ lwc1 $f14, %lo(D_800532EC)($at) +/* 086714 7F051BE4 24631E00 */ addiu $v1, %lo(temp_mine_table) # addiu $v1, $v1, 0x1e00 +/* 086718 7F051BE8 24060001 */ li $a2, 1 +/* 08671C 7F051BEC 8C640000 */ lw $a0, ($v1) +.L7F051BF0: +/* 086720 7F051BF0 50800018 */ beql $a0, $zero, .L7F051C54 +/* 086724 7F051BF4 8C620004 */ lw $v0, 4($v1) +/* 086728 7F051BF8 848E0082 */ lh $t6, 0x82($a0) +/* 08672C 7F051BFC 54CE0015 */ bnel $a2, $t6, .L7F051C54 +/* 086730 7F051C00 8C620004 */ lw $v0, 4($v1) +/* 086734 7F051C04 C4A40000 */ lwc1 $f4, ($a1) +/* 086738 7F051C08 C4860058 */ lwc1 $f6, 0x58($a0) +/* 08673C 7F051C0C C4A80004 */ lwc1 $f8, 4($a1) +/* 086740 7F051C10 C48A005C */ lwc1 $f10, 0x5c($a0) +/* 086744 7F051C14 46062001 */ sub.s $f0, $f4, $f6 +/* 086748 7F051C18 C4B00008 */ lwc1 $f16, 8($a1) +/* 08674C 7F051C1C C4920060 */ lwc1 $f18, 0x60($a0) +/* 086750 7F051C20 460A4081 */ sub.s $f2, $f8, $f10 +/* 086754 7F051C24 46000102 */ mul.s $f4, $f0, $f0 +/* 086758 7F051C28 46128301 */ sub.s $f12, $f16, $f18 +/* 08675C 7F051C2C 46021182 */ mul.s $f6, $f2, $f2 +/* 086760 7F051C30 46062200 */ add.s $f8, $f4, $f6 +/* 086764 7F051C34 460C6282 */ mul.s $f10, $f12, $f12 +/* 086768 7F051C38 460A4400 */ add.s $f16, $f8, $f10 +/* 08676C 7F051C3C 460E803C */ c.lt.s $f16, $f14 +/* 086770 7F051C40 00000000 */ nop +/* 086774 7F051C44 45020003 */ bc1fl .L7F051C54 +/* 086778 7F051C48 8C620004 */ lw $v0, 4($v1) +/* 08677C 7F051C4C A4800082 */ sh $zero, 0x82($a0) +/* 086780 7F051C50 8C620004 */ lw $v0, 4($v1) +.L7F051C54: +/* 086784 7F051C54 24630008 */ addiu $v1, $v1, 8 +/* 086788 7F051C58 10400017 */ beqz $v0, .L7F051CB8 +/* 08678C 7F051C5C 00000000 */ nop +/* 086790 7F051C60 844F0082 */ lh $t7, 0x82($v0) +/* 086794 7F051C64 14CF0014 */ bne $a2, $t7, .L7F051CB8 +/* 086798 7F051C68 00000000 */ nop +/* 08679C 7F051C6C C4B20000 */ lwc1 $f18, ($a1) +/* 0867A0 7F051C70 C4440058 */ lwc1 $f4, 0x58($v0) +/* 0867A4 7F051C74 C4A60004 */ lwc1 $f6, 4($a1) +/* 0867A8 7F051C78 C448005C */ lwc1 $f8, 0x5c($v0) +/* 0867AC 7F051C7C 46049001 */ sub.s $f0, $f18, $f4 +/* 0867B0 7F051C80 C4AA0008 */ lwc1 $f10, 8($a1) +/* 0867B4 7F051C84 C4500060 */ lwc1 $f16, 0x60($v0) +/* 0867B8 7F051C88 46083081 */ sub.s $f2, $f6, $f8 +/* 0867BC 7F051C8C 46000482 */ mul.s $f18, $f0, $f0 +/* 0867C0 7F051C90 46105301 */ sub.s $f12, $f10, $f16 +/* 0867C4 7F051C94 46021102 */ mul.s $f4, $f2, $f2 +/* 0867C8 7F051C98 46049180 */ add.s $f6, $f18, $f4 +/* 0867CC 7F051C9C 460C6202 */ mul.s $f8, $f12, $f12 +/* 0867D0 7F051CA0 46083280 */ add.s $f10, $f6, $f8 +/* 0867D4 7F051CA4 460E503C */ c.lt.s $f10, $f14 +/* 0867D8 7F051CA8 00000000 */ nop +/* 0867DC 7F051CAC 45000002 */ bc1f .L7F051CB8 +/* 0867E0 7F051CB0 00000000 */ nop +/* 0867E4 7F051CB4 A4400082 */ sh $zero, 0x82($v0) +.L7F051CB8: +/* 0867E8 7F051CB8 5467FFCD */ bnel $v1, $a3, .L7F051BF0 +/* 0867EC 7F051CBC 8C640000 */ lw $a0, ($v1) +/* 0867F0 7F051CC0 03E00008 */ jr $ra +/* 0867F4 7F051CC4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void check_guard_detonate_proxmine(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_guard_detonate_proxmine +/* 0867F8 7F051CC8 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0867FC 7F051CCC AFBF002C */ sw $ra, 0x2c($sp) +/* 086800 7F051CD0 AFB40028 */ sw $s4, 0x28($sp) +/* 086804 7F051CD4 AFB30024 */ sw $s3, 0x24($sp) +/* 086808 7F051CD8 AFB20020 */ sw $s2, 0x20($sp) +/* 08680C 7F051CDC AFB1001C */ sw $s1, 0x1c($sp) +/* 086810 7F051CE0 0FC07D4C */ jal get_numguards +/* 086814 7F051CE4 AFB00018 */ sw $s0, 0x18($sp) +/* 086818 7F051CE8 1840001A */ blez $v0, .L7F051D54 +/* 08681C 7F051CEC 00008025 */ move $s0, $zero +/* 086820 7F051CF0 00029900 */ sll $s3, $v0, 4 +/* 086824 7F051CF4 02629823 */ subu $s3, $s3, $v0 +/* 086828 7F051CF8 001398C0 */ sll $s3, $s3, 3 +/* 08682C 7F051CFC 02629823 */ subu $s3, $s3, $v0 +/* 086830 7F051D00 3C148003 */ lui $s4, %hi(ptr_guard_data) +/* 086834 7F051D04 2694CC64 */ addiu $s4, %lo(ptr_guard_data) # addiu $s4, $s4, -0x339c +/* 086838 7F051D08 00139880 */ sll $s3, $s3, 2 +/* 08683C 7F051D0C 27B10038 */ addiu $s1, $sp, 0x38 +/* 086840 7F051D10 8E8E0000 */ lw $t6, ($s4) +.L7F051D14: +/* 086844 7F051D14 020E2021 */ addu $a0, $s0, $t6 +/* 086848 7F051D18 8C8F001C */ lw $t7, 0x1c($a0) +/* 08684C 7F051D1C 51E0000A */ beql $t7, $zero, .L7F051D48 +/* 086850 7F051D20 261001DC */ addiu $s0, $s0, 0x1dc +/* 086854 7F051D24 94980012 */ lhu $t8, 0x12($a0) +/* 086858 7F051D28 33190200 */ andi $t9, $t8, 0x200 +/* 08685C 7F051D2C 53200006 */ beql $t9, $zero, .L7F051D48 +/* 086860 7F051D30 261001DC */ addiu $s0, $s0, 0x1dc +/* 086864 7F051D34 0FC0A225 */ jal sub_GAME_7F028894 +/* 086868 7F051D38 02202825 */ move $a1, $s1 +/* 08686C 7F051D3C 0FC146F3 */ jal detonate_proxmine_In_range +/* 086870 7F051D40 02202025 */ move $a0, $s1 +/* 086874 7F051D44 261001DC */ addiu $s0, $s0, 0x1dc +.L7F051D48: +/* 086878 7F051D48 0213082A */ slt $at, $s0, $s3 +/* 08687C 7F051D4C 5420FFF1 */ bnezl $at, .L7F051D14 +/* 086880 7F051D50 8E8E0000 */ lw $t6, ($s4) +.L7F051D54: +/* 086884 7F051D54 8FBF002C */ lw $ra, 0x2c($sp) +/* 086888 7F051D58 8FB00018 */ lw $s0, 0x18($sp) +/* 08688C 7F051D5C 8FB1001C */ lw $s1, 0x1c($sp) +/* 086890 7F051D60 8FB20020 */ lw $s2, 0x20($sp) +/* 086894 7F051D64 8FB30024 */ lw $s3, 0x24($sp) +/* 086898 7F051D68 8FB40028 */ lw $s4, 0x28($sp) +/* 08689C 7F051D6C 03E00008 */ jr $ra +/* 0868A0 7F051D70 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + +#ifdef NONMATCHING +void link_objects(void) { + +} +#else +GLOBAL_ASM( +.text +glabel link_objects +/* 0868A4 7F051D74 80AE0080 */ lb $t6, 0x80($a1) +/* 0868A8 7F051D78 808F0080 */ lb $t7, 0x80($a0) +/* 0868AC 7F051D7C AC850084 */ sw $a1, 0x84($a0) +/* 0868B0 7F051D80 A08E0081 */ sb $t6, 0x81($a0) +/* 0868B4 7F051D84 ACA40084 */ sw $a0, 0x84($a1) +/* 0868B8 7F051D88 03E00008 */ jr $ra +/* 0868BC 7F051D8C A0AF0081 */ sb $t7, 0x81($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void complete_object_data_block_return_position_entry(void) { + +} +#else +GLOBAL_ASM( +.text +glabel complete_object_data_block_return_position_entry +/* 0868C0 7F051D90 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0868C4 7F051D94 AFBF0014 */ sw $ra, 0x14($sp) +/* 0868C8 7F051D98 0FC10153 */ jal init_standard_object +/* 0868CC 7F051D9C 00000000 */ nop +/* 0868D0 7F051DA0 10400008 */ beqz $v0, .L7F051DC4 +/* 0868D4 7F051DA4 00403025 */ move $a2, $v0 +/* 0868D8 7F051DA8 240E0004 */ li $t6, 4 +/* 0868DC 7F051DAC A04E0000 */ sb $t6, ($v0) +/* 0868E0 7F051DB0 AFA20020 */ sw $v0, 0x20($sp) +/* 0868E4 7F051DB4 00402025 */ move $a0, $v0 +/* 0868E8 7F051DB8 0FC1495D */ jal sub_GAME_7F052574 +/* 0868EC 7F051DBC 00002825 */ move $a1, $zero +/* 0868F0 7F051DC0 8FA60020 */ lw $a2, 0x20($sp) +.L7F051DC4: +/* 0868F4 7F051DC4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0868F8 7F051DC8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0868FC 7F051DCC 00C01025 */ move $v0, $a2 +/* 086900 7F051DD0 03E00008 */ jr $ra +/* 086904 7F051DD4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F051DD8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F051DD8 +/* 086908 7F051DD8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 08690C 7F051DDC AFBF0014 */ sw $ra, 0x14($sp) +/* 086910 7F051DE0 0FC101BE */ jal sub_GAME_7F0406F8 +/* 086914 7F051DE4 00000000 */ nop +/* 086918 7F051DE8 10400007 */ beqz $v0, .L7F051E08 +/* 08691C 7F051DEC 00402025 */ move $a0, $v0 +/* 086920 7F051DF0 240E0004 */ li $t6, 4 +/* 086924 7F051DF4 A04E0000 */ sb $t6, ($v0) +/* 086928 7F051DF8 AFA2001C */ sw $v0, 0x1c($sp) +/* 08692C 7F051DFC 0FC1495D */ jal sub_GAME_7F052574 +/* 086930 7F051E00 00002825 */ move $a1, $zero +/* 086934 7F051E04 8FA4001C */ lw $a0, 0x1c($sp) +.L7F051E08: +/* 086938 7F051E08 8FBF0014 */ lw $ra, 0x14($sp) +/* 08693C 7F051E0C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 086940 7F051E10 00801025 */ move $v0, $a0 +/* 086944 7F051E14 03E00008 */ jr $ra +/* 086948 7F051E18 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F051E1C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F051E1C +/* 08694C 7F051E1C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 086950 7F051E20 AFBF0014 */ sw $ra, 0x14($sp) +/* 086954 7F051E24 8C820008 */ lw $v0, 8($a0) +/* 086958 7F051E28 00A03825 */ move $a3, $a1 +/* 08695C 7F051E2C 00803025 */ move $a2, $a0 +/* 086960 7F051E30 000270C0 */ sll $t6, $v0, 3 +/* 086964 7F051E34 05C10003 */ bgez $t6, .L7F051E44 +/* 086968 7F051E38 00002825 */ move $a1, $zero +/* 08696C 7F051E3C 10000001 */ b .L7F051E44 +/* 086970 7F051E40 24050001 */ li $a1, 1 +.L7F051E44: +/* 086974 7F051E44 8CC40010 */ lw $a0, 0x10($a2) +/* 086978 7F051E48 50800035 */ beql $a0, $zero, .L7F051F20 +/* 08697C 7F051E4C 24020001 */ li $v0, 1 +/* 086980 7F051E50 8CC30014 */ lw $v1, 0x14($a2) +/* 086984 7F051E54 00027880 */ sll $t7, $v0, 2 +/* 086988 7F051E58 50600031 */ beql $v1, $zero, .L7F051F20 +/* 08698C 7F051E5C 24020001 */ li $v0, 1 +/* 086990 7F051E60 05E0002C */ bltz $t7, .L7F051F14 +/* 086994 7F051E64 00000000 */ nop +/* 086998 7F051E68 00052080 */ sll $a0, $a1, 2 +/* 08699C 7F051E6C 00E41021 */ addu $v0, $a3, $a0 +/* 0869A0 7F051E70 8C580160 */ lw $t8, 0x160($v0) +/* 0869A4 7F051E74 17000025 */ bnez $t8, .L7F051F0C +/* 0869A8 7F051E78 00000000 */ nop +/* 0869AC 7F051E7C 8CF9001C */ lw $t9, 0x1c($a3) +/* 0869B0 7F051E80 14800008 */ bnez $a0, .L7F051EA4 +/* 0869B4 7F051E84 AC790018 */ sw $t9, 0x18($v1) +/* 0869B8 7F051E88 8CE8001C */ lw $t0, 0x1c($a3) +/* 0869BC 7F051E8C 8CCC0014 */ lw $t4, 0x14($a2) +/* 0869C0 7F051E90 8D090008 */ lw $t1, 8($t0) +/* 0869C4 7F051E94 8D2A0008 */ lw $t2, 8($t1) +/* 0869C8 7F051E98 8D4B000C */ lw $t3, 0xc($t2) +/* 0869CC 7F051E9C 10000007 */ b .L7F051EBC +/* 0869D0 7F051EA0 AD8B001C */ sw $t3, 0x1c($t4) +.L7F051EA4: +/* 0869D4 7F051EA4 8CED001C */ lw $t5, 0x1c($a3) +/* 0869D8 7F051EA8 8CD90014 */ lw $t9, 0x14($a2) +/* 0869DC 7F051EAC 8DAE0008 */ lw $t6, 8($t5) +/* 0869E0 7F051EB0 8DCF0008 */ lw $t7, 8($t6) +/* 0869E4 7F051EB4 8DF80014 */ lw $t8, 0x14($t7) +/* 0869E8 7F051EB8 AF38001C */ sw $t8, 0x1c($t9) +.L7F051EBC: +/* 0869EC 7F051EBC 8CC80010 */ lw $t0, 0x10($a2) +/* 0869F0 7F051EC0 00045823 */ negu $t3, $a0 +/* 0869F4 7F051EC4 00EB6021 */ addu $t4, $a3, $t3 +/* 0869F8 7F051EC8 AC480160 */ sw $t0, 0x160($v0) +/* 0869FC 7F051ECC 8CC90008 */ lw $t1, 8($a2) +/* 086A00 7F051ED0 00095000 */ sll $t2, $t1, 0 +/* 086A04 7F051ED4 0541000B */ bgez $t2, .L7F051F04 +/* 086A08 7F051ED8 00000000 */ nop +/* 086A0C 7F051EDC 8D820164 */ lw $v0, 0x164($t4) +/* 086A10 7F051EE0 00C02025 */ move $a0, $a2 +/* 086A14 7F051EE4 10400007 */ beqz $v0, .L7F051F04 +/* 086A18 7F051EE8 00000000 */ nop +/* 086A1C 7F051EEC 8C450004 */ lw $a1, 4($v0) +/* 086A20 7F051EF0 AFA7001C */ sw $a3, 0x1c($sp) +/* 086A24 7F051EF4 0FC1475D */ jal link_objects +/* 086A28 7F051EF8 AFA60018 */ sw $a2, 0x18($sp) +/* 086A2C 7F051EFC 8FA60018 */ lw $a2, 0x18($sp) +/* 086A30 7F051F00 8FA7001C */ lw $a3, 0x1c($sp) +.L7F051F04: +/* 086A34 7F051F04 10000003 */ b .L7F051F14 +/* 086A38 7F051F08 8CC40010 */ lw $a0, 0x10($a2) +.L7F051F0C: +/* 086A3C 7F051F0C 10000004 */ b .L7F051F20 +/* 086A40 7F051F10 00001025 */ move $v0, $zero +.L7F051F14: +/* 086A44 7F051F14 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 086A48 7F051F18 8CE50018 */ lw $a1, 0x18($a3) +/* 086A4C 7F051F1C 24020001 */ li $v0, 1 +.L7F051F20: +/* 086A50 7F051F20 8FBF0014 */ lw $ra, 0x14($sp) +/* 086A54 7F051F24 27BD0018 */ addiu $sp, $sp, 0x18 +/* 086A58 7F051F28 03E00008 */ jr $ra +/* 086A5C 7F051F2C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F051F30(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F051F30 +/* 086A60 7F051F30 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 086A64 7F051F34 AFA50024 */ sw $a1, 0x24($sp) +/* 086A68 7F051F38 AFA60028 */ sw $a2, 0x28($sp) +/* 086A6C 7F051F3C 00C02825 */ move $a1, $a2 +/* 086A70 7F051F40 AFBF001C */ sw $ra, 0x1c($sp) +/* 086A74 7F051F44 AFB00018 */ sw $s0, 0x18($sp) +/* 086A78 7F051F48 AFA7002C */ sw $a3, 0x2c($sp) +/* 086A7C 7F051F4C 00E03025 */ move $a2, $a3 +/* 086A80 7F051F50 00808025 */ move $s0, $a0 +/* 086A84 7F051F54 0FC14764 */ jal complete_object_data_block_return_position_entry +/* 086A88 7F051F58 8FA70030 */ lw $a3, 0x30($sp) +/* 086A8C 7F051F5C 10400018 */ beqz $v0, .L7F051FC0 +/* 086A90 7F051F60 AFA2002C */ sw $v0, 0x2c($sp) +/* 086A94 7F051F64 8E040014 */ lw $a0, 0x14($s0) +/* 086A98 7F051F68 50800016 */ beql $a0, $zero, .L7F051FC4 +/* 086A9C 7F051F6C 8FBF001C */ lw $ra, 0x1c($sp) +/* 086AA0 7F051F70 960E0000 */ lhu $t6, ($s0) +/* 086AA4 7F051F74 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 086AA8 7F051F78 448E2000 */ mtc1 $t6, $f4 +/* 086AAC 7F051F7C 05C10004 */ bgez $t6, .L7F051F90 +/* 086AB0 7F051F80 468021A0 */ cvt.s.w $f6, $f4 +/* 086AB4 7F051F84 44814000 */ mtc1 $at, $f8 +/* 086AB8 7F051F88 00000000 */ nop +/* 086ABC 7F051F8C 46083180 */ add.s $f6, $f6, $f8 +.L7F051F90: +/* 086AC0 7F051F90 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 086AC4 7F051F94 44815000 */ mtc1 $at, $f10 +/* 086AC8 7F051F98 C4900014 */ lwc1 $f16, 0x14($a0) +/* 086ACC 7F051F9C 460A3002 */ mul.s $f0, $f6, $f10 +/* 086AD0 7F051FA0 00000000 */ nop +/* 086AD4 7F051FA4 46008482 */ mul.s $f18, $f16, $f0 +/* 086AD8 7F051FA8 44059000 */ mfc1 $a1, $f18 +/* 086ADC 7F051FAC 0FC1B39E */ jal set_obj_instance_controller_scale +/* 086AE0 7F051FB0 00000000 */ nop +/* 086AE4 7F051FB4 02002025 */ move $a0, $s0 +/* 086AE8 7F051FB8 0FC14787 */ jal sub_GAME_7F051E1C +/* 086AEC 7F051FBC 8FA50024 */ lw $a1, 0x24($sp) +.L7F051FC0: +/* 086AF0 7F051FC0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F051FC4: +/* 086AF4 7F051FC4 8FA2002C */ lw $v0, 0x2c($sp) +/* 086AF8 7F051FC8 8FB00018 */ lw $s0, 0x18($sp) +/* 086AFC 7F051FCC 03E00008 */ jr $ra +/* 086B00 7F051FD0 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F051FD4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F051FD4 +/* 086B04 7F051FD4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 086B08 7F051FD8 AFBF001C */ sw $ra, 0x1c($sp) +/* 086B0C 7F051FDC AFA40028 */ sw $a0, 0x28($sp) +/* 086B10 7F051FE0 AFA5002C */ sw $a1, 0x2c($sp) +/* 086B14 7F051FE4 84840004 */ lh $a0, 4($a0) +/* 086B18 7F051FE8 0FC15B0E */ jal load_model +/* 086B1C 7F051FEC AFA40020 */ sw $a0, 0x20($sp) +/* 086B20 7F051FF0 8FAF0020 */ lw $t7, 0x20($sp) +/* 086B24 7F051FF4 3C068004 */ lui $a2, %hi(PitemZ_entries) +/* 086B28 7F051FF8 8FA40028 */ lw $a0, 0x28($sp) +/* 086B2C 7F051FFC 000FC080 */ sll $t8, $t7, 2 +/* 086B30 7F052000 030FC023 */ subu $t8, $t8, $t7 +/* 086B34 7F052004 0018C080 */ sll $t8, $t8, 2 +/* 086B38 7F052008 00D83021 */ addu $a2, $a2, $t8 +/* 086B3C 7F05200C 8CC6A228 */ lw $a2, %lo(PitemZ_entries)($a2) +/* 086B40 7F052010 8FA5002C */ lw $a1, 0x2c($sp) +/* 086B44 7F052014 00003825 */ move $a3, $zero +/* 086B48 7F052018 0FC147CC */ jal sub_GAME_7F051F30 +/* 086B4C 7F05201C AFA00010 */ sw $zero, 0x10($sp) +/* 086B50 7F052020 8FBF001C */ lw $ra, 0x1c($sp) +/* 086B54 7F052024 27BD0028 */ addiu $sp, $sp, 0x28 +/* 086B58 7F052028 03E00008 */ jr $ra +/* 086B5C 7F05202C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F052030(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F052030 +/* 086B60 7F052030 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 086B64 7F052034 AFBF0014 */ sw $ra, 0x14($sp) +/* 086B68 7F052038 8C8E0074 */ lw $t6, 0x74($a0) +/* 086B6C 7F05203C 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 086B70 7F052040 44814000 */ mtc1 $at, $f8 +/* 086B74 7F052044 448E2000 */ mtc1 $t6, $f4 +/* 086B78 7F052048 00000000 */ nop +/* 086B7C 7F05204C 468021A0 */ cvt.s.w $f6, $f4 +/* 086B80 7F052050 46083283 */ div.s $f10, $f6, $f8 +/* 086B84 7F052054 0FC147F5 */ jal sub_GAME_7F051FD4 +/* 086B88 7F052058 E48A0074 */ swc1 $f10, 0x74($a0) +/* 086B8C 7F05205C 8FBF0014 */ lw $ra, 0x14($sp) +/* 086B90 7F052060 27BD0018 */ addiu $sp, $sp, 0x18 +/* 086B94 7F052064 03E00008 */ jr $ra +/* 086B98 7F052068 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void create_new_item_instance_of_model(void) { + +} +#else +GLOBAL_ASM( +.text +glabel create_new_item_instance_of_model +/* 086B9C 7F05206C 00047080 */ sll $t6, $a0, 2 +/* 086BA0 7F052070 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 086BA4 7F052074 01C47023 */ subu $t6, $t6, $a0 +/* 086BA8 7F052078 000E7080 */ sll $t6, $t6, 2 +/* 086BAC 7F05207C 3C0F8004 */ lui $t7, %hi(PitemZ_entries) +/* 086BB0 7F052080 01EE7821 */ addu $t7, $t7, $t6 +/* 086BB4 7F052084 8DEFA228 */ lw $t7, %lo(PitemZ_entries)($t7) +/* 086BB8 7F052088 AFBF001C */ sw $ra, 0x1c($sp) +/* 086BBC 7F05208C AFB10018 */ sw $s1, 0x18($sp) +/* 086BC0 7F052090 AFB00014 */ sw $s0, 0x14($sp) +/* 086BC4 7F052094 AFA500BC */ sw $a1, 0xbc($sp) +/* 086BC8 7F052098 AFA400B8 */ sw $a0, 0xb8($sp) +/* 086BCC 7F05209C 0FC15B0E */ jal load_model +/* 086BD0 7F0520A0 AFAF00B4 */ sw $t7, 0xb4($sp) +/* 086BD4 7F0520A4 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 086BD8 7F0520A8 00000000 */ nop +/* 086BDC 7F0520AC 00408025 */ move $s0, $v0 +/* 086BE0 7F0520B0 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 086BE4 7F0520B4 8FA400B4 */ lw $a0, 0xb4($sp) +/* 086BE8 7F0520B8 2E040001 */ sltiu $a0, $s0, 1 +/* 086BEC 7F0520BC 2C450001 */ sltiu $a1, $v0, 1 +/* 086BF0 7F0520C0 8FA600B4 */ lw $a2, 0xb4($sp) +/* 086BF4 7F0520C4 0FC1449B */ jal sub_GAME_7F05126C +/* 086BF8 7F0520C8 AFA200AC */ sw $v0, 0xac($sp) +/* 086BFC 7F0520CC 8FA700AC */ lw $a3, 0xac($sp) +/* 086C00 7F0520D0 16000005 */ bnez $s0, .L7F0520E8 +/* 086C04 7F0520D4 00408825 */ move $s1, $v0 +/* 086C08 7F0520D8 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 086C0C 7F0520DC AFA700AC */ sw $a3, 0xac($sp) +/* 086C10 7F0520E0 8FA700AC */ lw $a3, 0xac($sp) +/* 086C14 7F0520E4 00408025 */ move $s0, $v0 +.L7F0520E8: +/* 086C18 7F0520E8 14E00004 */ bnez $a3, .L7F0520FC +/* 086C1C 7F0520EC 00000000 */ nop +/* 086C20 7F0520F0 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 086C24 7F0520F4 8FA400B4 */ lw $a0, 0xb4($sp) +/* 086C28 7F0520F8 00403825 */ move $a3, $v0 +.L7F0520FC: +/* 086C2C 7F0520FC 1220002C */ beqz $s1, .L7F0521B0 +/* 086C30 7F052100 00000000 */ nop +/* 086C34 7F052104 1200002A */ beqz $s0, .L7F0521B0 +/* 086C38 7F052108 00000000 */ nop +/* 086C3C 7F05210C 10E00028 */ beqz $a3, .L7F0521B0 +/* 086C40 7F052110 27A20020 */ addiu $v0, $sp, 0x20 +/* 086C44 7F052114 3C188003 */ lui $t8, %hi(blank_08_object_preset_1) +/* 086C48 7F052118 27182194 */ addiu $t8, %lo(blank_08_object_preset_1) # addiu $t8, $t8, 0x2194 +/* 086C4C 7F05211C 27080084 */ addiu $t0, $t8, 0x84 +/* 086C50 7F052120 00404825 */ move $t1, $v0 +.L7F052124: +/* 086C54 7F052124 8F010000 */ lw $at, ($t8) +/* 086C58 7F052128 2718000C */ addiu $t8, $t8, 0xc +/* 086C5C 7F05212C 2529000C */ addiu $t1, $t1, 0xc +/* 086C60 7F052130 AD21FFF4 */ sw $at, -0xc($t1) +/* 086C64 7F052134 8F01FFF8 */ lw $at, -8($t8) +/* 086C68 7F052138 AD21FFF8 */ sw $at, -8($t1) +/* 086C6C 7F05213C 8F01FFFC */ lw $at, -4($t8) +/* 086C70 7F052140 1708FFF8 */ bne $t8, $t0, .L7F052124 +/* 086C74 7F052144 AD21FFFC */ sw $at, -4($t1) +/* 086C78 7F052148 8F010000 */ lw $at, ($t8) +/* 086C7C 7F05214C 00406025 */ move $t4, $v0 +/* 086C80 7F052150 02206825 */ move $t5, $s1 +/* 086C84 7F052154 244B0084 */ addiu $t3, $v0, 0x84 +/* 086C88 7F052158 AD210000 */ sw $at, ($t1) +.L7F05215C: +/* 086C8C 7F05215C 8D810000 */ lw $at, ($t4) +/* 086C90 7F052160 258C000C */ addiu $t4, $t4, 0xc +/* 086C94 7F052164 25AD000C */ addiu $t5, $t5, 0xc +/* 086C98 7F052168 ADA1FFF4 */ sw $at, -0xc($t5) +/* 086C9C 7F05216C 8D81FFF8 */ lw $at, -8($t4) +/* 086CA0 7F052170 ADA1FFF8 */ sw $at, -8($t5) +/* 086CA4 7F052174 8D81FFFC */ lw $at, -4($t4) +/* 086CA8 7F052178 158BFFF8 */ bne $t4, $t3, .L7F05215C +/* 086CAC 7F05217C ADA1FFFC */ sw $at, -4($t5) +/* 086CB0 7F052180 8D810000 */ lw $at, ($t4) +/* 086CB4 7F052184 02202025 */ move $a0, $s1 +/* 086CB8 7F052188 02003025 */ move $a2, $s0 +/* 086CBC 7F05218C ADA10000 */ sw $at, ($t5) +/* 086CC0 7F052190 8FAE00BC */ lw $t6, 0xbc($sp) +/* 086CC4 7F052194 A22E0080 */ sb $t6, 0x80($s1) +/* 086CC8 7F052198 8FAF00B8 */ lw $t7, 0xb8($sp) +/* 086CCC 7F05219C A62F0004 */ sh $t7, 4($s1) +/* 086CD0 7F0521A0 0FC14764 */ jal complete_object_data_block_return_position_entry +/* 086CD4 7F0521A4 8FA500B4 */ lw $a1, 0xb4($sp) +/* 086CD8 7F0521A8 1000000A */ b .L7F0521D4 +/* 086CDC 7F0521AC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0521B0: +/* 086CE0 7F0521B0 10E00003 */ beqz $a3, .L7F0521C0 +/* 086CE4 7F0521B4 00008825 */ move $s1, $zero +/* 086CE8 7F0521B8 0FC1B08D */ jal set_obj_instance_scale_to_zero +/* 086CEC 7F0521BC 00E02025 */ move $a0, $a3 +.L7F0521C0: +/* 086CF0 7F0521C0 52000004 */ beql $s0, $zero, .L7F0521D4 +/* 086CF4 7F0521C4 8FBF001C */ lw $ra, 0x1c($sp) +/* 086CF8 7F0521C8 0FC0E921 */ jal set_last_obj_pos_data +/* 086CFC 7F0521CC 02002025 */ move $a0, $s0 +/* 086D00 7F0521D0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0521D4: +/* 086D04 7F0521D4 02201025 */ move $v0, $s1 +/* 086D08 7F0521D8 8FB10018 */ lw $s1, 0x18($sp) +/* 086D0C 7F0521DC 8FB00014 */ lw $s0, 0x14($sp) +/* 086D10 7F0521E0 03E00008 */ jr $ra +/* 086D14 7F0521E4 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + +#ifdef NONMATCHING +void set_0x4_in_runtime_flags_for_item_in_guards_hand(PCHRdata chr, int hand_index) { + // BROKEN: we need to first identify the struct assigned to handle_positiondata ptr + // function used to remove item from right/left hand or something, maybe position holding data? + void **item_in_hand_ptr; + + if (chr->handle_positiondata[hand_index] != 0) + { + item_in_hand_ptr = chr->handle_positiondata[hand_index] + 4; + item_in_hand_ptr[0x19] = (s32)(item_in_hand_ptr[0x19]) | 4; + } +} +#else +GLOBAL_ASM( +.text +glabel set_0x4_in_runtime_flags_for_item_in_guards_hand +/* 086D18 7F0521E8 00057080 */ sll $t6, $a1, 2 +/* 086D1C 7F0521EC 008E7821 */ addu $t7, $a0, $t6 +/* 086D20 7F0521F0 8DE20160 */ lw $v0, 0x160($t7) +/* 086D24 7F0521F4 10400005 */ beqz $v0, .L7F05220C +/* 086D28 7F0521F8 00000000 */ nop +/* 086D2C 7F0521FC 8C430004 */ lw $v1, 4($v0) +/* 086D30 7F052200 8C780064 */ lw $t8, 0x64($v1) +/* 086D34 7F052204 37190004 */ ori $t9, $t8, 4 +/* 086D38 7F052208 AC790064 */ sw $t9, 0x64($v1) +.L7F05220C: +/* 086D3C 7F05220C 03E00008 */ jr $ra +/* 086D40 7F052210 00000000 */ nop +) +#endif + + + + +#ifdef NONMATCHING +void something_with_generating_object(void) { + +} +#else +GLOBAL_ASM( +.text +glabel something_with_generating_object +/* 086D44 7F052214 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 086D48 7F052218 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 086D4C 7F05221C AFBF002C */ sw $ra, 0x2c($sp) +/* 086D50 7F052220 AFB20028 */ sw $s2, 0x28($sp) +/* 086D54 7F052224 AFB10024 */ sw $s1, 0x24($sp) +/* 086D58 7F052228 AFB00020 */ sw $s0, 0x20($sp) +/* 086D5C 7F05222C AFA400C0 */ sw $a0, 0xc0($sp) +/* 086D60 7F052230 AFA500C4 */ sw $a1, 0xc4($sp) +/* 086D64 7F052234 AFA600C8 */ sw $a2, 0xc8($sp) +/* 086D68 7F052238 15C0000A */ bnez $t6, .L7F052264 +/* 086D6C 7F05223C AFA700CC */ sw $a3, 0xcc($sp) +/* 086D70 7F052240 0005C080 */ sll $t8, $a1, 2 +/* 086D74 7F052244 0305C023 */ subu $t8, $t8, $a1 +/* 086D78 7F052248 0018C080 */ sll $t8, $t8, 2 +/* 086D7C 7F05224C 3C198004 */ lui $t9, %hi(PitemZ_entries) +/* 086D80 7F052250 0338C821 */ addu $t9, $t9, $t8 +/* 086D84 7F052254 8F39A228 */ lw $t9, %lo(PitemZ_entries)($t9) +/* 086D88 7F052258 00A02025 */ move $a0, $a1 +/* 086D8C 7F05225C 0FC15B0E */ jal load_model +/* 086D90 7F052260 AFB900D4 */ sw $t9, 0xd4($sp) +.L7F052264: +/* 086D94 7F052264 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 086D98 7F052268 00000000 */ nop +/* 086D9C 7F05226C 00408825 */ move $s1, $v0 +/* 086DA0 7F052270 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 086DA4 7F052274 8FA400D4 */ lw $a0, 0xd4($sp) +/* 086DA8 7F052278 8FB000D0 */ lw $s0, 0xd0($sp) +/* 086DAC 7F05227C 00409025 */ move $s2, $v0 +/* 086DB0 7F052280 2E240001 */ sltiu $a0, $s1, 1 +/* 086DB4 7F052284 16000004 */ bnez $s0, .L7F052298 +/* 086DB8 7F052288 2C450001 */ sltiu $a1, $v0, 1 +/* 086DBC 7F05228C 0FC1449B */ jal sub_GAME_7F05126C +/* 086DC0 7F052290 8FA600D4 */ lw $a2, 0xd4($sp) +/* 086DC4 7F052294 00408025 */ move $s0, $v0 +.L7F052298: +/* 086DC8 7F052298 16200004 */ bnez $s1, .L7F0522AC +/* 086DCC 7F05229C 00000000 */ nop +/* 086DD0 7F0522A0 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 086DD4 7F0522A4 00000000 */ nop +/* 086DD8 7F0522A8 00408825 */ move $s1, $v0 +.L7F0522AC: +/* 086DDC 7F0522AC 16400004 */ bnez $s2, .L7F0522C0 +/* 086DE0 7F0522B0 00000000 */ nop +/* 086DE4 7F0522B4 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 086DE8 7F0522B8 8FA400D4 */ lw $a0, 0xd4($sp) +/* 086DEC 7F0522BC 00409025 */ move $s2, $v0 +.L7F0522C0: +/* 086DF0 7F0522C0 12000034 */ beqz $s0, .L7F052394 +/* 086DF4 7F0522C4 00000000 */ nop +/* 086DF8 7F0522C8 12200032 */ beqz $s1, .L7F052394 +/* 086DFC 7F0522CC 00000000 */ nop +/* 086E00 7F0522D0 12400030 */ beqz $s2, .L7F052394 +/* 086E04 7F0522D4 27A20030 */ addiu $v0, $sp, 0x30 +/* 086E08 7F0522D8 3C088003 */ lui $t0, %hi(blank_08_object_preset_4001) +/* 086E0C 7F0522DC 2508221C */ addiu $t0, %lo(blank_08_object_preset_4001) # addiu $t0, $t0, 0x221c +/* 086E10 7F0522E0 250A0084 */ addiu $t2, $t0, 0x84 +/* 086E14 7F0522E4 00405825 */ move $t3, $v0 +.L7F0522E8: +/* 086E18 7F0522E8 8D010000 */ lw $at, ($t0) +/* 086E1C 7F0522EC 2508000C */ addiu $t0, $t0, 0xc +/* 086E20 7F0522F0 256B000C */ addiu $t3, $t3, 0xc +/* 086E24 7F0522F4 AD61FFF4 */ sw $at, -0xc($t3) +/* 086E28 7F0522F8 8D01FFF8 */ lw $at, -8($t0) +/* 086E2C 7F0522FC AD61FFF8 */ sw $at, -8($t3) +/* 086E30 7F052300 8D01FFFC */ lw $at, -4($t0) +/* 086E34 7F052304 150AFFF8 */ bne $t0, $t2, .L7F0522E8 +/* 086E38 7F052308 AD61FFFC */ sw $at, -4($t3) +/* 086E3C 7F05230C 8D010000 */ lw $at, ($t0) +/* 086E40 7F052310 00407025 */ move $t6, $v0 +/* 086E44 7F052314 0200C025 */ move $t8, $s0 +/* 086E48 7F052318 244D0084 */ addiu $t5, $v0, 0x84 +/* 086E4C 7F05231C AD610000 */ sw $at, ($t3) +.L7F052320: +/* 086E50 7F052320 8DC10000 */ lw $at, ($t6) +/* 086E54 7F052324 25CE000C */ addiu $t6, $t6, 0xc +/* 086E58 7F052328 2718000C */ addiu $t8, $t8, 0xc +/* 086E5C 7F05232C AF01FFF4 */ sw $at, -0xc($t8) +/* 086E60 7F052330 8DC1FFF8 */ lw $at, -8($t6) +/* 086E64 7F052334 AF01FFF8 */ sw $at, -8($t8) +/* 086E68 7F052338 8DC1FFFC */ lw $at, -4($t6) +/* 086E6C 7F05233C 15CDFFF8 */ bne $t6, $t5, .L7F052320 +/* 086E70 7F052340 AF01FFFC */ sw $at, -4($t8) +/* 086E74 7F052344 8DC10000 */ lw $at, ($t6) +/* 086E78 7F052348 02002025 */ move $a0, $s0 +/* 086E7C 7F05234C 02203825 */ move $a3, $s1 +/* 086E80 7F052350 AF010000 */ sw $at, ($t8) +/* 086E84 7F052354 8FB900C8 */ lw $t9, 0xc8($sp) +/* 086E88 7F052358 A2190080 */ sb $t9, 0x80($s0) +/* 086E8C 7F05235C 8FAF00C4 */ lw $t7, 0xc4($sp) +/* 086E90 7F052360 A60F0004 */ sh $t7, 4($s0) +/* 086E94 7F052364 8FA900CC */ lw $t1, 0xcc($sp) +/* 086E98 7F052368 352A4000 */ ori $t2, $t1, 0x4000 +/* 086E9C 7F05236C AE0A0008 */ sw $t2, 8($s0) +/* 086EA0 7F052370 8FA800C0 */ lw $t0, 0xc0($sp) +/* 086EA4 7F052374 850B0000 */ lh $t3, ($t0) +/* 086EA8 7F052378 A60B0006 */ sh $t3, 6($s0) +/* 086EAC 7F05237C AFB20010 */ sw $s2, 0x10($sp) +/* 086EB0 7F052380 8FA600D4 */ lw $a2, 0xd4($sp) +/* 086EB4 7F052384 0FC147CC */ jal sub_GAME_7F051F30 +/* 086EB8 7F052388 8FA500C0 */ lw $a1, 0xc0($sp) +/* 086EBC 7F05238C 1000000A */ b .L7F0523B8 +/* 086EC0 7F052390 00408825 */ move $s1, $v0 +.L7F052394: +/* 086EC4 7F052394 12400003 */ beqz $s2, .L7F0523A4 +/* 086EC8 7F052398 00000000 */ nop +/* 086ECC 7F05239C 0FC1B08D */ jal set_obj_instance_scale_to_zero +/* 086ED0 7F0523A0 02402025 */ move $a0, $s2 +.L7F0523A4: +/* 086ED4 7F0523A4 52200005 */ beql $s1, $zero, .L7F0523BC +/* 086ED8 7F0523A8 8FBF002C */ lw $ra, 0x2c($sp) +/* 086EDC 7F0523AC 0FC0E921 */ jal set_last_obj_pos_data +/* 086EE0 7F0523B0 02202025 */ move $a0, $s1 +/* 086EE4 7F0523B4 00008825 */ move $s1, $zero +.L7F0523B8: +/* 086EE8 7F0523B8 8FBF002C */ lw $ra, 0x2c($sp) +.L7F0523BC: +/* 086EEC 7F0523BC 02201025 */ move $v0, $s1 +/* 086EF0 7F0523C0 8FB10024 */ lw $s1, 0x24($sp) +/* 086EF4 7F0523C4 8FB00020 */ lw $s0, 0x20($sp) +/* 086EF8 7F0523C8 8FB20028 */ lw $s2, 0x28($sp) +/* 086EFC 7F0523CC 03E00008 */ jr $ra +/* 086F00 7F0523D0 27BD00C0 */ addiu $sp, $sp, 0xc0 +) +#endif + + + + + +#ifdef NONMATCHING +void actor_draws_weapon_with_model(void) { + +} +#else +GLOBAL_ASM( +.text +glabel actor_draws_weapon_with_model +/* 086F04 7F0523D4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 086F08 7F0523D8 AFBF001C */ sw $ra, 0x1c($sp) +/* 086F0C 7F0523DC AFA00010 */ sw $zero, 0x10($sp) +/* 086F10 7F0523E0 0FC14885 */ jal something_with_generating_object +/* 086F14 7F0523E4 AFA00014 */ sw $zero, 0x14($sp) +/* 086F18 7F0523E8 8FBF001C */ lw $ra, 0x1c($sp) +/* 086F1C 7F0523EC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 086F20 7F0523F0 03E00008 */ jr $ra +/* 086F24 7F0523F4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0523F8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0523F8 +/* 086F28 7F0523F8 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 086F2C 7F0523FC AFBF001C */ sw $ra, 0x1c($sp) +/* 086F30 7F052400 AFB10018 */ sw $s1, 0x18($sp) +/* 086F34 7F052404 AFB00014 */ sw $s0, 0x14($sp) +/* 086F38 7F052408 AFA500BC */ sw $a1, 0xbc($sp) +/* 086F3C 7F05240C AFA600C0 */ sw $a2, 0xc0($sp) +/* 086F40 7F052410 8C870004 */ lw $a3, 4($a0) +/* 086F44 7F052414 00E02025 */ move $a0, $a3 +/* 086F48 7F052418 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 086F4C 7F05241C AFA700B4 */ sw $a3, 0xb4($sp) +/* 086F50 7F052420 8FA700B4 */ lw $a3, 0xb4($sp) +/* 086F54 7F052424 10400046 */ beqz $v0, .L7F052540 +/* 086F58 7F052428 00401825 */ move $v1, $v0 +/* 086F5C 7F05242C 8C500004 */ lw $s0, 4($v0) +/* 086F60 7F052430 8E0E0064 */ lw $t6, 0x64($s0) +/* 086F64 7F052434 31CF0800 */ andi $t7, $t6, 0x800 +/* 086F68 7F052438 55E0003F */ bnezl $t7, .L7F052538 +/* 086F6C 7F05243C 90480001 */ lbu $t0, 1($v0) +/* 086F70 7F052440 8E18000C */ lw $t8, 0xc($s0) +/* 086F74 7F052444 3C098003 */ lui $t1, %hi(D_800322A4) +/* 086F78 7F052448 252922A4 */ addiu $t1, %lo(D_800322A4) # addiu $t1, $t1, 0x22a4 +/* 086F7C 7F05244C 0018CB00 */ sll $t9, $t8, 0xc +/* 086F80 7F052450 07200038 */ bltz $t9, .L7F052534 +/* 086F84 7F052454 27A80068 */ addiu $t0, $sp, 0x68 +/* 086F88 7F052458 8E110014 */ lw $s1, 0x14($s0) +/* 086F8C 7F05245C 252B003C */ addiu $t3, $t1, 0x3c +.L7F052460: +/* 086F90 7F052460 8D210000 */ lw $at, ($t1) +/* 086F94 7F052464 2529000C */ addiu $t1, $t1, 0xc +/* 086F98 7F052468 2508000C */ addiu $t0, $t0, 0xc +/* 086F9C 7F05246C AD01FFF4 */ sw $at, -0xc($t0) +/* 086FA0 7F052470 8D21FFF8 */ lw $at, -8($t1) +/* 086FA4 7F052474 AD01FFF8 */ sw $at, -8($t0) +/* 086FA8 7F052478 8D21FFFC */ lw $at, -4($t1) +/* 086FAC 7F05247C 152BFFF8 */ bne $t1, $t3, .L7F052460 +/* 086FB0 7F052480 AD01FFFC */ sw $at, -4($t0) +/* 086FB4 7F052484 8D210000 */ lw $at, ($t1) +/* 086FB8 7F052488 00003025 */ move $a2, $zero +/* 086FBC 7F05248C AD010000 */ sw $at, ($t0) +/* 086FC0 7F052490 906C0001 */ lbu $t4, 1($v1) +/* 086FC4 7F052494 8CE4001C */ lw $a0, 0x1c($a3) +/* 086FC8 7F052498 358D0002 */ ori $t5, $t4, 2 +/* 086FCC 7F05249C A06D0001 */ sb $t5, 1($v1) +/* 086FD0 7F0524A0 0FC1B198 */ jal sub_GAME_7F06C660 +/* 086FD4 7F0524A4 8E25001C */ lw $a1, 0x1c($s1) +/* 086FD8 7F0524A8 8FAE00BC */ lw $t6, 0xbc($sp) +/* 086FDC 7F0524AC 24010001 */ li $at, 1 +/* 086FE0 7F0524B0 AFA20068 */ sw $v0, 0x68($sp) +/* 086FE4 7F0524B4 15C10009 */ bne $t6, $at, .L7F0524DC +/* 086FE8 7F0524B8 27A50020 */ addiu $a1, $sp, 0x20 +/* 086FEC 7F0524BC 3C018005 */ lui $at, %hi(D_800532F0) +/* 086FF0 7F0524C0 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 086FF4 7F0524C4 C42C32F0 */ lwc1 $f12, %lo(D_800532F0)($at) +/* 086FF8 7F0524C8 8FA40068 */ lw $a0, 0x68($sp) +/* 086FFC 7F0524CC 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 087000 7F0524D0 27A50020 */ addiu $a1, $sp, 0x20 +/* 087004 7F0524D4 27AF0020 */ addiu $t7, $sp, 0x20 +/* 087008 7F0524D8 AFAF0068 */ sw $t7, 0x68($sp) +.L7F0524DC: +/* 08700C 7F0524DC 8E380008 */ lw $t8, 8($s1) +/* 087010 7F0524E0 8704000E */ lh $a0, 0xe($t8) +/* 087014 7F0524E4 0004C980 */ sll $t9, $a0, 6 +/* 087018 7F0524E8 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 08701C 7F0524EC 03202025 */ move $a0, $t9 +/* 087020 7F0524F0 AFA20078 */ sw $v0, 0x78($sp) +/* 087024 7F0524F4 27A40068 */ addiu $a0, $sp, 0x68 +/* 087028 7F0524F8 0FC1BC92 */ jal instcalcmatrices +/* 08702C 7F0524FC 02202825 */ move $a1, $s1 +/* 087030 7F052500 8FA200C0 */ lw $v0, 0xc0($sp) +/* 087034 7F052504 5040000F */ beql $v0, $zero, .L7F052544 +/* 087038 7F052508 8FBF001C */ lw $ra, 0x1c($sp) +/* 08703C 7F05250C 8E0A0064 */ lw $t2, 0x64($s0) +/* 087040 7F052510 02202825 */ move $a1, $s1 +/* 087044 7F052514 314B0080 */ andi $t3, $t2, 0x80 +/* 087048 7F052518 5560000A */ bnezl $t3, .L7F052544 +/* 08704C 7F05251C 8FBF001C */ lw $ra, 0x1c($sp) +/* 087050 7F052520 0FC1AC48 */ jal sub_GAME_7F06B120 +/* 087054 7F052524 8C440000 */ lw $a0, ($v0) +/* 087058 7F052528 8FA900C0 */ lw $t1, 0xc0($sp) +/* 08705C 7F05252C 10000004 */ b .L7F052540 +/* 087060 7F052530 AD220000 */ sw $v0, ($t1) +.L7F052534: +/* 087064 7F052534 90480001 */ lbu $t0, 1($v0) +.L7F052538: +/* 087068 7F052538 310CFFFD */ andi $t4, $t0, 0xfffd +/* 08706C 7F05253C A04C0001 */ sb $t4, 1($v0) +.L7F052540: +/* 087070 7F052540 8FBF001C */ lw $ra, 0x1c($sp) +.L7F052544: +/* 087074 7F052544 8FB00014 */ lw $s0, 0x14($sp) +/* 087078 7F052548 8FB10018 */ lw $s1, 0x18($sp) +/* 08707C 7F05254C 03E00008 */ jr $ra +/* 087080 7F052550 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void redirect_object_collectability_routines(void) { + +} +#else +GLOBAL_ASM( +.text +glabel redirect_object_collectability_routines +/* 087084 7F052554 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 087088 7F052558 AFBF0014 */ sw $ra, 0x14($sp) +/* 08708C 7F05255C 0FC141B7 */ jal object_collectability_routines +/* 087090 7F052560 00000000 */ nop +/* 087094 7F052564 8FBF0014 */ lw $ra, 0x14($sp) +/* 087098 7F052568 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08709C 7F05256C 03E00008 */ jr $ra +/* 0870A0 7F052570 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F052574(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F052574 +/* 0870A4 7F052574 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0870A8 7F052578 AFBF0014 */ sw $ra, 0x14($sp) +/* 0870AC 7F05257C AFA50024 */ sw $a1, 0x24($sp) +/* 0870B0 7F052580 8C820004 */ lw $v0, 4($a0) +/* 0870B4 7F052584 8C460014 */ lw $a2, 0x14($v0) +/* 0870B8 7F052588 50C0001B */ beql $a2, $zero, .L7F0525F8 +/* 0870BC 7F05258C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0870C0 7F052590 8CC20008 */ lw $v0, 8($a2) +/* 0870C4 7F052594 3C0E8004 */ lui $t6, %hi(prop_weapon_related) +/* 0870C8 7F052598 25CEC4FC */ addiu $t6, %lo(prop_weapon_related) # addiu $t6, $t6, -0x3b04 +/* 0870CC 7F05259C 8C4F0004 */ lw $t7, 4($v0) +/* 0870D0 7F0525A0 55CF0015 */ bnel $t6, $t7, .L7F0525F8 +/* 0870D4 7F0525A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0870D8 7F0525A8 8C430008 */ lw $v1, 8($v0) +/* 0870DC 7F0525AC 00C02025 */ move $a0, $a2 +/* 0870E0 7F0525B0 8C650000 */ lw $a1, ($v1) +/* 0870E4 7F0525B4 50A00009 */ beql $a1, $zero, .L7F0525DC +/* 0870E8 7F0525B8 8C650008 */ lw $a1, 8($v1) +/* 0870EC 7F0525BC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0870F0 7F0525C0 AFA60018 */ sw $a2, 0x18($sp) +/* 0870F4 7F0525C4 8FB80024 */ lw $t8, 0x24($sp) +/* 0870F8 7F0525C8 8FA60018 */ lw $a2, 0x18($sp) +/* 0870FC 7F0525CC A4580000 */ sh $t8, ($v0) +/* 087100 7F0525D0 8CD90008 */ lw $t9, 8($a2) +/* 087104 7F0525D4 8F230008 */ lw $v1, 8($t9) +/* 087108 7F0525D8 8C650008 */ lw $a1, 8($v1) +.L7F0525DC: +/* 08710C 7F0525DC 50A00006 */ beql $a1, $zero, .L7F0525F8 +/* 087110 7F0525E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 087114 7F0525E4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 087118 7F0525E8 00C02025 */ move $a0, $a2 +/* 08711C 7F0525EC 8FA80024 */ lw $t0, 0x24($sp) +/* 087120 7F0525F0 AC480000 */ sw $t0, ($v0) +/* 087124 7F0525F4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0525F8: +/* 087128 7F0525F8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 08712C 7F0525FC 03E00008 */ jr $ra +/* 087130 7F052600 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F052604(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*HACK*/ +/*D:800532F4*/ +glabel jpt_hat_worn +.word model_hat_fur +.word model_hat_fur +.word model_hat_fur +.word model_hat_greencap +.word model_hat_greencap +.text +glabel sub_GAME_7F052604 +/* 087134 7F052604 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 087138 7F052608 AFBF0014 */ sw $ra, 0x14($sp) +/* 08713C 7F05260C 8C820004 */ lw $v0, 4($a0) +/* 087140 7F052610 8C460014 */ lw $a2, 0x14($v0) +/* 087144 7F052614 50C00017 */ beql $a2, $zero, .L7F052674 +/* 087148 7F052618 00001025 */ move $v0, $zero +/* 08714C 7F05261C 8CC20008 */ lw $v0, 8($a2) +/* 087150 7F052620 3C0E8004 */ lui $t6, %hi(prop_weapon_related) +/* 087154 7F052624 25CEC4FC */ addiu $t6, %lo(prop_weapon_related) # addiu $t6, $t6, -0x3b04 +/* 087158 7F052628 8C4F0004 */ lw $t7, 4($v0) +/* 08715C 7F05262C 55CF0011 */ bnel $t6, $t7, .L7F052674 +/* 087160 7F052630 00001025 */ move $v0, $zero +/* 087164 7F052634 8C430008 */ lw $v1, 8($v0) +/* 087168 7F052638 8C650000 */ lw $a1, ($v1) +/* 08716C 7F05263C 50A00006 */ beql $a1, $zero, .L7F052658 +/* 087170 7F052640 8C650008 */ lw $a1, 8($v1) +/* 087174 7F052644 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 087178 7F052648 00C02025 */ move $a0, $a2 +/* 08717C 7F05264C 10000009 */ b .L7F052674 +/* 087180 7F052650 84420000 */ lh $v0, ($v0) +/* 087184 7F052654 8C650008 */ lw $a1, 8($v1) +.L7F052658: +/* 087188 7F052658 50A00006 */ beql $a1, $zero, .L7F052674 +/* 08718C 7F05265C 00001025 */ move $v0, $zero +/* 087190 7F052660 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 087194 7F052664 00C02025 */ move $a0, $a2 +/* 087198 7F052668 10000002 */ b .L7F052674 +/* 08719C 7F05266C 8C420000 */ lw $v0, ($v0) +/* 0871A0 7F052670 00001025 */ move $v0, $zero +.L7F052674: +/* 0871A4 7F052674 8FBF0014 */ lw $ra, 0x14($sp) +/* 0871A8 7F052678 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0871AC 7F05267C 03E00008 */ jr $ra +/* 0871B0 7F052680 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_hat_model(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:800532F4*/ +/*glabel jpt_hat_worn*/ +/*.word model_hat_fur*/ +/*.word model_hat_fur*/ +/*.word model_hat_fur*/ +/*.word model_hat_greencap*/ +/*.word model_hat_greencap*/ +.word model_hat_combat_helmet +.word model_hat_combat_helmet +.word model_hat_moonraker_headgear +.word model_hat_beret +.word model_hat_beret +.word model_hat_beret +.word model_hat_officerhat + +.text +glabel get_hat_model +/* 0871B4 7F052684 8C820004 */ lw $v0, 4($a0) +/* 0871B8 7F052688 844E0004 */ lh $t6, 4($v0) +/* 0871BC 7F05268C 2402FFFF */ li $v0, -1 +/* 0871C0 7F052690 25CFFF2C */ addiu $t7, $t6, -0xd4 +/* 0871C4 7F052694 2DE1000C */ sltiu $at, $t7, 0xc +/* 0871C8 7F052698 10200012 */ beqz $at, .L7F0526E4 +/* 0871CC 7F05269C 000F7880 */ sll $t7, $t7, 2 +/* 0871D0 7F0526A0 3C018005 */ lui $at, %hi(jpt_hat_worn) +/* 0871D4 7F0526A4 002F0821 */ addu $at, $at, $t7 +/* 0871D8 7F0526A8 8C2F32F4 */ lw $t7, %lo(jpt_hat_worn)($at) +/* 0871DC 7F0526AC 01E00008 */ jr $t7 +/* 0871E0 7F0526B0 00000000 */ nop +model_hat_fur: +/* 0871E4 7F0526B4 03E00008 */ jr $ra +/* 0871E8 7F0526B8 24020004 */ li $v0, 4 + +model_hat_greencap: +/* 0871EC 7F0526BC 03E00008 */ jr $ra +/* 0871F0 7F0526C0 24020001 */ li $v0, 1 + +model_hat_combat_helmet: +/* 0871F4 7F0526C4 03E00008 */ jr $ra +/* 0871F8 7F0526C8 24020003 */ li $v0, 3 + +model_hat_moonraker_headgear: +/* 0871FC 7F0526CC 03E00008 */ jr $ra +/* 087200 7F0526D0 24020005 */ li $v0, 5 + +model_hat_beret: +/* 087204 7F0526D4 03E00008 */ jr $ra +/* 087208 7F0526D8 00001025 */ move $v0, $zero + +model_hat_officerhat: +/* 08720C 7F0526DC 03E00008 */ jr $ra +/* 087210 7F0526E0 24020002 */ li $v0, 2 + +model_hat_default: +.L7F0526E4: +/* 087214 7F0526E4 03E00008 */ jr $ra +/* 087218 7F0526E8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0526EC(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053324 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053328 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005332C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053330 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053334 +.word 0x461c4000 /*10000.0*/ +glabel D_80053338 +.word 0x3ecccccd /*0.40000001*/ +glabel D_8005333C +.word 0x3ecccccd /*0.40000001*/ +glabel D_80053340 +.word 0x461c4000 /*10000.0*/ +glabel D_80053344 +.word 0x46b1de00 /*22767.0*/ +glabel D_80053348 +.word 0x459c4000 /*5000.0*/ +.text +glabel sub_GAME_7F0526EC +/* 08721C 7F0526EC 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 087220 7F0526F0 AFBF001C */ sw $ra, 0x1c($sp) +/* 087224 7F0526F4 AFB00018 */ sw $s0, 0x18($sp) +/* 087228 7F0526F8 AFA500A4 */ sw $a1, 0xa4($sp) +/* 08722C 7F0526FC 9482009A */ lhu $v0, 0x9a($a0) +/* 087230 7F052700 24010005 */ li $at, 5 +/* 087234 7F052704 00808025 */ move $s0, $a0 +/* 087238 7F052708 10410003 */ beq $v0, $at, .L7F052718 +/* 08723C 7F05270C 24010009 */ li $at, 9 +/* 087240 7F052710 544100CA */ bnel $v0, $at, .L7F052A3C +/* 087244 7F052714 24010006 */ li $at, 6 +.L7F052718: +/* 087248 7F052718 86190006 */ lh $t9, 6($s0) +/* 08724C 7F05271C 3C098007 */ lui $t1, %hi(ptr_2xxxpresets) +/* 087250 7F052720 8D295D1C */ lw $t1, %lo(ptr_2xxxpresets)($t1) +/* 087254 7F052724 00194100 */ sll $t0, $t9, 4 +/* 087258 7F052728 01194021 */ addu $t0, $t0, $t9 +/* 08725C 7F05272C 00084080 */ sll $t0, $t0, 2 +/* 087260 7F052730 01091021 */ addu $v0, $t0, $t1 +/* 087264 7F052734 C4460010 */ lwc1 $f6, 0x10($v0) +/* 087268 7F052738 C4480020 */ lwc1 $f8, 0x20($v0) +/* 08726C 7F05273C C452001C */ lwc1 $f18, 0x1c($v0) +/* 087270 7F052740 C44A0014 */ lwc1 $f10, 0x14($v0) +/* 087274 7F052744 46083102 */ mul.s $f4, $f6, $f8 +/* 087278 7F052748 24010009 */ li $at, 9 +/* 08727C 7F05274C 460A9402 */ mul.s $f16, $f18, $f10 +/* 087280 7F052750 46102181 */ sub.s $f6, $f4, $f16 +/* 087284 7F052754 E7A60038 */ swc1 $f6, 0x38($sp) +/* 087288 7F052758 C4480014 */ lwc1 $f8, 0x14($v0) +/* 08728C 7F05275C C4520018 */ lwc1 $f18, 0x18($v0) +/* 087290 7F052760 C450000C */ lwc1 $f16, 0xc($v0) +/* 087294 7F052764 C4440020 */ lwc1 $f4, 0x20($v0) +/* 087298 7F052768 46124282 */ mul.s $f10, $f8, $f18 +/* 08729C 7F05276C 00000000 */ nop +/* 0872A0 7F052770 46102202 */ mul.s $f8, $f4, $f16 +/* 0872A4 7F052774 46085481 */ sub.s $f18, $f10, $f8 +/* 0872A8 7F052778 E7B2003C */ swc1 $f18, 0x3c($sp) +/* 0872AC 7F05277C C444000C */ lwc1 $f4, 0xc($v0) +/* 0872B0 7F052780 C450001C */ lwc1 $f16, 0x1c($v0) +/* 0872B4 7F052784 C4480018 */ lwc1 $f8, 0x18($v0) +/* 0872B8 7F052788 46102282 */ mul.s $f10, $f4, $f16 +/* 0872BC 7F05278C C4440010 */ lwc1 $f4, 0x10($v0) +/* 0872C0 7F052790 46044402 */ mul.s $f16, $f8, $f4 +/* 0872C4 7F052794 46105201 */ sub.s $f8, $f10, $f16 +/* 0872C8 7F052798 E7A80040 */ swc1 $f8, 0x40($sp) +/* 0872CC 7F05279C C44A0034 */ lwc1 $f10, 0x34($v0) +/* 0872D0 7F0527A0 C444000C */ lwc1 $f4, 0xc($v0) +/* 0872D4 7F0527A4 460A2402 */ mul.s $f16, $f4, $f10 +/* 0872D8 7F0527A8 C4440000 */ lwc1 $f4, ($v0) +/* 0872DC 7F0527AC 46048280 */ add.s $f10, $f16, $f4 +/* 0872E0 7F0527B0 E7AA0054 */ swc1 $f10, 0x54($sp) +/* 0872E4 7F0527B4 C4440034 */ lwc1 $f4, 0x34($v0) +/* 0872E8 7F0527B8 C4500010 */ lwc1 $f16, 0x10($v0) +/* 0872EC 7F0527BC 46048402 */ mul.s $f16, $f16, $f4 +/* 0872F0 7F0527C0 C4440004 */ lwc1 $f4, 4($v0) +/* 0872F4 7F0527C4 46048400 */ add.s $f16, $f16, $f4 +/* 0872F8 7F0527C8 E7B00058 */ swc1 $f16, 0x58($sp) +/* 0872FC 7F0527CC C4440014 */ lwc1 $f4, 0x14($v0) +/* 087300 7F0527D0 E7A60020 */ swc1 $f6, 0x20($sp) +/* 087304 7F0527D4 C4460034 */ lwc1 $f6, 0x34($v0) +/* 087308 7F0527D8 46062102 */ mul.s $f4, $f4, $f6 +/* 08730C 7F0527DC C4460008 */ lwc1 $f6, 8($v0) +/* 087310 7F0527E0 46062100 */ add.s $f4, $f4, $f6 +/* 087314 7F0527E4 C7A60020 */ lwc1 $f6, 0x20($sp) +/* 087318 7F0527E8 E7A4005C */ swc1 $f4, 0x5c($sp) +/* 08731C 7F0527EC 960A009A */ lhu $t2, 0x9a($s0) +/* 087320 7F0527F0 15410010 */ bne $t2, $at, .L7F052834 +/* 087324 7F0527F4 00000000 */ nop +/* 087328 7F0527F8 E7B20020 */ swc1 $f18, 0x20($sp) +/* 08732C 7F0527FC C4520030 */ lwc1 $f18, 0x30($v0) +/* 087330 7F052800 46123182 */ mul.s $f6, $f6, $f18 +/* 087334 7F052804 46065480 */ add.s $f18, $f10, $f6 +/* 087338 7F052808 C7AA0020 */ lwc1 $f10, 0x20($sp) +/* 08733C 7F05280C E7B20054 */ swc1 $f18, 0x54($sp) +/* 087340 7F052810 C4460030 */ lwc1 $f6, 0x30($v0) +/* 087344 7F052814 46065482 */ mul.s $f18, $f10, $f6 +/* 087348 7F052818 46128280 */ add.s $f10, $f16, $f18 +/* 08734C 7F05281C E7AA0058 */ swc1 $f10, 0x58($sp) +/* 087350 7F052820 C4460030 */ lwc1 $f6, 0x30($v0) +/* 087354 7F052824 46064402 */ mul.s $f16, $f8, $f6 +/* 087358 7F052828 46102480 */ add.s $f18, $f4, $f16 +/* 08735C 7F05282C 1000002A */ b .L7F0528D8 +/* 087360 7F052830 E7B2005C */ swc1 $f18, 0x5c($sp) +.L7F052834: +/* 087364 7F052834 8E0B0008 */ lw $t3, 8($s0) +/* 087368 7F052838 C7AA0038 */ lwc1 $f10, 0x38($sp) +/* 08736C 7F05283C C7A60038 */ lwc1 $f6, 0x38($sp) +/* 087370 7F052840 000B6080 */ sll $t4, $t3, 2 +/* 087374 7F052844 05830014 */ bgezl $t4, .L7F052898 +/* 087378 7F052848 C450002C */ lwc1 $f16, 0x2c($v0) +/* 08737C 7F05284C C4480030 */ lwc1 $f8, 0x30($v0) +/* 087380 7F052850 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 087384 7F052854 C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 087388 7F052858 46085182 */ mul.s $f6, $f10, $f8 +/* 08738C 7F05285C 46062400 */ add.s $f16, $f4, $f6 +/* 087390 7F052860 C7A40058 */ lwc1 $f4, 0x58($sp) +/* 087394 7F052864 E7B00054 */ swc1 $f16, 0x54($sp) +/* 087398 7F052868 C44A0030 */ lwc1 $f10, 0x30($v0) +/* 08739C 7F05286C C7B00040 */ lwc1 $f16, 0x40($sp) +/* 0873A0 7F052870 460A9202 */ mul.s $f8, $f18, $f10 +/* 0873A4 7F052874 46082180 */ add.s $f6, $f4, $f8 +/* 0873A8 7F052878 C7A4005C */ lwc1 $f4, 0x5c($sp) +/* 0873AC 7F05287C E7A60058 */ swc1 $f6, 0x58($sp) +/* 0873B0 7F052880 C4520030 */ lwc1 $f18, 0x30($v0) +/* 0873B4 7F052884 46128282 */ mul.s $f10, $f16, $f18 +/* 0873B8 7F052888 460A2200 */ add.s $f8, $f4, $f10 +/* 0873BC 7F05288C 10000012 */ b .L7F0528D8 +/* 0873C0 7F052890 E7A8005C */ swc1 $f8, 0x5c($sp) +/* 0873C4 7F052894 C450002C */ lwc1 $f16, 0x2c($v0) +.L7F052898: +/* 0873C8 7F052898 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 0873CC 7F05289C C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0873D0 7F0528A0 46103482 */ mul.s $f18, $f6, $f16 +/* 0873D4 7F0528A4 46122280 */ add.s $f10, $f4, $f18 +/* 0873D8 7F0528A8 C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0873DC 7F0528AC E7AA0054 */ swc1 $f10, 0x54($sp) +/* 0873E0 7F0528B0 C446002C */ lwc1 $f6, 0x2c($v0) +/* 0873E4 7F0528B4 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 0873E8 7F0528B8 46064402 */ mul.s $f16, $f8, $f6 +/* 0873EC 7F0528BC 46102480 */ add.s $f18, $f4, $f16 +/* 0873F0 7F0528C0 C7A4005C */ lwc1 $f4, 0x5c($sp) +/* 0873F4 7F0528C4 E7B20058 */ swc1 $f18, 0x58($sp) +/* 0873F8 7F0528C8 C448002C */ lwc1 $f8, 0x2c($v0) +/* 0873FC 7F0528CC 46085182 */ mul.s $f6, $f10, $f8 +/* 087400 7F0528D0 46062400 */ add.s $f16, $f4, $f6 +/* 087404 7F0528D4 E7B0005C */ swc1 $f16, 0x5c($sp) +.L7F0528D8: +/* 087408 7F0528D8 C6120058 */ lwc1 $f18, 0x58($s0) +/* 08740C 7F0528DC C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 087410 7F0528E0 C7A60058 */ lwc1 $f6, 0x58($sp) +/* 087414 7F0528E4 26040018 */ addiu $a0, $s0, 0x18 +/* 087418 7F0528E8 460A9201 */ sub.s $f8, $f18, $f10 +/* 08741C 7F0528EC C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 087420 7F0528F0 8FA500A4 */ lw $a1, 0xa4($sp) +/* 087424 7F0528F4 E7A80048 */ swc1 $f8, 0x48($sp) +/* 087428 7F0528F8 C604005C */ lwc1 $f4, 0x5c($s0) +/* 08742C 7F0528FC 46062401 */ sub.s $f16, $f4, $f6 +/* 087430 7F052900 E7B0004C */ swc1 $f16, 0x4c($sp) +/* 087434 7F052904 C6120060 */ lwc1 $f18, 0x60($s0) +/* 087438 7F052908 460A9201 */ sub.s $f8, $f18, $f10 +/* 08743C 7F05290C 0FC16008 */ jal matrix_4x4_copy +/* 087440 7F052910 E7A80050 */ swc1 $f8, 0x50($sp) +/* 087444 7F052914 27A40048 */ addiu $a0, $sp, 0x48 +/* 087448 7F052918 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 08744C 7F05291C 27A50060 */ addiu $a1, $sp, 0x60 +/* 087450 7F052920 27A40060 */ addiu $a0, $sp, 0x60 +/* 087454 7F052924 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 087458 7F052928 8FA500A4 */ lw $a1, 0xa4($sp) +/* 08745C 7F05292C 960D009A */ lhu $t5, 0x9a($s0) +/* 087460 7F052930 24010009 */ li $at, 9 +/* 087464 7F052934 55A1001D */ bnel $t5, $at, .L7F0529AC +/* 087468 7F052938 8E180008 */ lw $t8, 8($s0) +/* 08746C 7F05293C 8E0E0008 */ lw $t6, 8($s0) +/* 087470 7F052940 3C018005 */ lui $at, %hi(D_80053328) +/* 087474 7F052944 000E7880 */ sll $t7, $t6, 2 +/* 087478 7F052948 05E1000D */ bgez $t7, .L7F052980 +/* 08747C 7F05294C 00000000 */ nop +/* 087480 7F052950 3C018005 */ lui $at, %hi(D_80053324) +/* 087484 7F052954 C4203324 */ lwc1 $f0, %lo(D_80053324)($at) +/* 087488 7F052958 C60400B4 */ lwc1 $f4, 0xb4($s0) +/* 08748C 7F05295C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 087490 7F052960 44818000 */ mtc1 $at, $f16 +/* 087494 7F052964 46002182 */ mul.s $f6, $f4, $f0 +/* 087498 7F052968 27A50060 */ addiu $a1, $sp, 0x60 +/* 08749C 7F05296C 46103483 */ div.s $f18, $f6, $f16 +/* 0874A0 7F052970 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 0874A4 7F052974 46120301 */ sub.s $f12, $f0, $f18 +/* 0874A8 7F052978 10000025 */ b .L7F052A10 +/* 0874AC 7F05297C 27A40060 */ addiu $a0, $sp, 0x60 +.L7F052980: +/* 0874B0 7F052980 C4203328 */ lwc1 $f0, %lo(D_80053328)($at) +/* 0874B4 7F052984 C60A00B4 */ lwc1 $f10, 0xb4($s0) +/* 0874B8 7F052988 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0874BC 7F05298C 44812000 */ mtc1 $at, $f4 +/* 0874C0 7F052990 46005202 */ mul.s $f8, $f10, $f0 +/* 0874C4 7F052994 27A50060 */ addiu $a1, $sp, 0x60 +/* 0874C8 7F052998 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 0874CC 7F05299C 46044303 */ div.s $f12, $f8, $f4 +/* 0874D0 7F0529A0 1000001B */ b .L7F052A10 +/* 0874D4 7F0529A4 27A40060 */ addiu $a0, $sp, 0x60 +/* 0874D8 7F0529A8 8E180008 */ lw $t8, 8($s0) +.L7F0529AC: +/* 0874DC 7F0529AC 3C018005 */ lui $at, %hi(D_80053330) +/* 0874E0 7F0529B0 0018C880 */ sll $t9, $t8, 2 +/* 0874E4 7F0529B4 0721000D */ bgez $t9, .L7F0529EC +/* 0874E8 7F0529B8 00000000 */ nop +/* 0874EC 7F0529BC 3C018005 */ lui $at, %hi(D_8005332C) +/* 0874F0 7F0529C0 C420332C */ lwc1 $f0, %lo(D_8005332C)($at) +/* 0874F4 7F0529C4 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 0874F8 7F0529C8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0874FC 7F0529CC 44819000 */ mtc1 $at, $f18 +/* 087500 7F0529D0 46003402 */ mul.s $f16, $f6, $f0 +/* 087504 7F0529D4 27A50060 */ addiu $a1, $sp, 0x60 +/* 087508 7F0529D8 46128283 */ div.s $f10, $f16, $f18 +/* 08750C 7F0529DC 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 087510 7F0529E0 460A0301 */ sub.s $f12, $f0, $f10 +/* 087514 7F0529E4 1000000A */ b .L7F052A10 +/* 087518 7F0529E8 27A40060 */ addiu $a0, $sp, 0x60 +.L7F0529EC: +/* 08751C 7F0529EC C4203330 */ lwc1 $f0, %lo(D_80053330)($at) +/* 087520 7F0529F0 C60800B4 */ lwc1 $f8, 0xb4($s0) +/* 087524 7F0529F4 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 087528 7F0529F8 44813000 */ mtc1 $at, $f6 +/* 08752C 7F0529FC 46004102 */ mul.s $f4, $f8, $f0 +/* 087530 7F052A00 27A50060 */ addiu $a1, $sp, 0x60 +/* 087534 7F052A04 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 087538 7F052A08 46062303 */ div.s $f12, $f4, $f6 +/* 08753C 7F052A0C 27A40060 */ addiu $a0, $sp, 0x60 +.L7F052A10: +/* 087540 7F052A10 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 087544 7F052A14 8FA500A4 */ lw $a1, 0xa4($sp) +/* 087548 7F052A18 27A40054 */ addiu $a0, $sp, 0x54 +/* 08754C 7F052A1C 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 087550 7F052A20 27A50060 */ addiu $a1, $sp, 0x60 +/* 087554 7F052A24 27A40060 */ addiu $a0, $sp, 0x60 +/* 087558 7F052A28 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 08755C 7F052A2C 8FA500A4 */ lw $a1, 0xa4($sp) +/* 087560 7F052A30 10000027 */ b .L7F052AD0 +/* 087564 7F052A34 96080098 */ lhu $t0, 0x98($s0) +/* 087568 7F052A38 24010006 */ li $at, 6 +.L7F052A3C: +/* 08756C 7F052A3C 10410004 */ beq $v0, $at, .L7F052A50 +/* 087570 7F052A40 26040018 */ addiu $a0, $s0, 0x18 +/* 087574 7F052A44 24010007 */ li $at, 7 +/* 087578 7F052A48 54410009 */ bnel $v0, $at, .L7F052A70 +/* 08757C 7F052A4C C61000A8 */ lwc1 $f16, 0xa8($s0) +.L7F052A50: +/* 087580 7F052A50 0FC16008 */ jal matrix_4x4_copy +/* 087584 7F052A54 8FA500A4 */ lw $a1, 0xa4($sp) +/* 087588 7F052A58 26040058 */ addiu $a0, $s0, 0x58 +/* 08758C 7F052A5C 0FC16266 */ jal matrix_4x4_set_position +/* 087590 7F052A60 8FA500A4 */ lw $a1, 0xa4($sp) +/* 087594 7F052A64 1000001A */ b .L7F052AD0 +/* 087598 7F052A68 96080098 */ lhu $t0, 0x98($s0) +/* 08759C 7F052A6C C61000A8 */ lwc1 $f16, 0xa8($s0) +.L7F052A70: +/* 0875A0 7F052A70 C61200B4 */ lwc1 $f18, 0xb4($s0) +/* 0875A4 7F052A74 C6080058 */ lwc1 $f8, 0x58($s0) +/* 0875A8 7F052A78 26040018 */ addiu $a0, $s0, 0x18 +/* 0875AC 7F052A7C 46128282 */ mul.s $f10, $f16, $f18 +/* 0875B0 7F052A80 8FA500A4 */ lw $a1, 0xa4($sp) +/* 0875B4 7F052A84 46085100 */ add.s $f4, $f10, $f8 +/* 0875B8 7F052A88 E7A4002C */ swc1 $f4, 0x2c($sp) +/* 0875BC 7F052A8C C61000B4 */ lwc1 $f16, 0xb4($s0) +/* 0875C0 7F052A90 C60600AC */ lwc1 $f6, 0xac($s0) +/* 0875C4 7F052A94 C60A005C */ lwc1 $f10, 0x5c($s0) +/* 0875C8 7F052A98 46103482 */ mul.s $f18, $f6, $f16 +/* 0875CC 7F052A9C 460A9200 */ add.s $f8, $f18, $f10 +/* 0875D0 7F052AA0 E7A80030 */ swc1 $f8, 0x30($sp) +/* 0875D4 7F052AA4 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 0875D8 7F052AA8 C60400B0 */ lwc1 $f4, 0xb0($s0) +/* 0875DC 7F052AAC C6120060 */ lwc1 $f18, 0x60($s0) +/* 0875E0 7F052AB0 46062402 */ mul.s $f16, $f4, $f6 +/* 0875E4 7F052AB4 46128280 */ add.s $f10, $f16, $f18 +/* 0875E8 7F052AB8 0FC16008 */ jal matrix_4x4_copy +/* 0875EC 7F052ABC E7AA0034 */ swc1 $f10, 0x34($sp) +/* 0875F0 7F052AC0 27A4002C */ addiu $a0, $sp, 0x2c +/* 0875F4 7F052AC4 0FC16266 */ jal matrix_4x4_set_position +/* 0875F8 7F052AC8 8FA500A4 */ lw $a1, 0xa4($sp) +/* 0875FC 7F052ACC 96080098 */ lhu $t0, 0x98($s0) +.L7F052AD0: +/* 087600 7F052AD0 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 087604 7F052AD4 31090008 */ andi $t1, $t0, 8 +/* 087608 7F052AD8 51200005 */ beql $t1, $zero, .L7F052AF0 +/* 08760C 7F052ADC 8FBF001C */ lw $ra, 0x1c($sp) +/* 087610 7F052AE0 44816000 */ mtc1 $at, $f12 +/* 087614 7F052AE4 0FC16293 */ jal matrix_column_3_scalar_multiply_2 +/* 087618 7F052AE8 8FA500A4 */ lw $a1, 0xa4($sp) +/* 08761C 7F052AEC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F052AF0: +/* 087620 7F052AF0 8FB00018 */ lw $s0, 0x18($sp) +/* 087624 7F052AF4 27BD00A0 */ addiu $sp, $sp, 0xa0 +/* 087628 7F052AF8 03E00008 */ jr $ra +/* 08762C 7F052AFC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F052B00(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F052B00 +/* 087630 7F052B00 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 087634 7F052B04 AFBF001C */ sw $ra, 0x1c($sp) +/* 087638 7F052B08 AFB00018 */ sw $s0, 0x18($sp) +/* 08763C 7F052B0C 8C8E0014 */ lw $t6, 0x14($a0) +/* 087640 7F052B10 248300D0 */ addiu $v1, $a0, 0xd0 +/* 087644 7F052B14 00808025 */ move $s0, $a0 +/* 087648 7F052B18 8DCF0008 */ lw $t7, 8($t6) +/* 08764C 7F052B1C 27A5002C */ addiu $a1, $sp, 0x2c +/* 087650 7F052B20 8DF80000 */ lw $t8, ($t7) +/* 087654 7F052B24 8F190014 */ lw $t9, 0x14($t8) +/* 087658 7F052B28 8F220004 */ lw $v0, 4($t9) +/* 08765C 7F052B2C 8C410000 */ lw $at, ($v0) +/* 087660 7F052B30 AC610000 */ sw $at, ($v1) +/* 087664 7F052B34 8C4A0004 */ lw $t2, 4($v0) +/* 087668 7F052B38 AC6A0004 */ sw $t2, 4($v1) +/* 08766C 7F052B3C 8C410008 */ lw $at, 8($v0) +/* 087670 7F052B40 AC610008 */ sw $at, 8($v1) +/* 087674 7F052B44 8C4A000C */ lw $t2, 0xc($v0) +/* 087678 7F052B48 AC6A000C */ sw $t2, 0xc($v1) +/* 08767C 7F052B4C 8C410010 */ lw $at, 0x10($v0) +/* 087680 7F052B50 AC610010 */ sw $at, 0x10($v1) +/* 087684 7F052B54 8C4A0014 */ lw $t2, 0x14($v0) +/* 087688 7F052B58 AC6A0014 */ sw $t2, 0x14($v1) +/* 08768C 7F052B5C 8C410018 */ lw $at, 0x18($v0) +/* 087690 7F052B60 AC610018 */ sw $at, 0x18($v1) +/* 087694 7F052B64 948B0098 */ lhu $t3, 0x98($a0) +/* 087698 7F052B68 316C0004 */ andi $t4, $t3, 4 +/* 08769C 7F052B6C 51800015 */ beql $t4, $zero, .L7F052BC4 +/* 0876A0 7F052B70 C61000B4 */ lwc1 $f16, 0xb4($s0) +/* 0876A4 7F052B74 948D009A */ lhu $t5, 0x9a($a0) +/* 0876A8 7F052B78 24010004 */ li $at, 4 +/* 0876AC 7F052B7C 55A1000A */ bnel $t5, $at, .L7F052BA8 +/* 0876B0 7F052B80 C4400004 */ lwc1 $f0, 4($v0) +/* 0876B4 7F052B84 C4400010 */ lwc1 $f0, 0x10($v0) +/* 0876B8 7F052B88 C444000C */ lwc1 $f4, 0xc($v0) +/* 0876BC 7F052B8C C48800B4 */ lwc1 $f8, 0xb4($a0) +/* 0876C0 7F052B90 46002181 */ sub.s $f6, $f4, $f0 +/* 0876C4 7F052B94 46083282 */ mul.s $f10, $f6, $f8 +/* 0876C8 7F052B98 460A0400 */ add.s $f16, $f0, $f10 +/* 0876CC 7F052B9C 10000008 */ b .L7F052BC0 +/* 0876D0 7F052BA0 E49000E0 */ swc1 $f16, 0xe0($a0) +/* 0876D4 7F052BA4 C4400004 */ lwc1 $f0, 4($v0) +.L7F052BA8: +/* 0876D8 7F052BA8 C4520008 */ lwc1 $f18, 8($v0) +/* 0876DC 7F052BAC C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 0876E0 7F052BB0 46009101 */ sub.s $f4, $f18, $f0 +/* 0876E4 7F052BB4 46062202 */ mul.s $f8, $f4, $f6 +/* 0876E8 7F052BB8 46080280 */ add.s $f10, $f0, $f8 +/* 0876EC 7F052BBC E60A00D4 */ swc1 $f10, 0xd4($s0) +.L7F052BC0: +/* 0876F0 7F052BC0 C61000B4 */ lwc1 $f16, 0xb4($s0) +.L7F052BC4: +/* 0876F4 7F052BC4 C6120088 */ lwc1 $f18, 0x88($s0) +/* 0876F8 7F052BC8 02002025 */ move $a0, $s0 +/* 0876FC 7F052BCC 4610903E */ c.le.s $f18, $f16 +/* 087700 7F052BD0 00000000 */ nop +/* 087704 7F052BD4 45000004 */ bc1f .L7F052BE8 +/* 087708 7F052BD8 00000000 */ nop +/* 08770C 7F052BDC 8E0E0068 */ lw $t6, 0x68($s0) +/* 087710 7F052BE0 10000065 */ b .L7F052D78 +/* 087714 7F052BE4 ADC00000 */ sw $zero, ($t6) +.L7F052BE8: +/* 087718 7F052BE8 0FC149BB */ jal sub_GAME_7F0526EC +/* 08771C 7F052BEC AFA30028 */ sw $v1, 0x28($sp) +/* 087720 7F052BF0 8E070068 */ lw $a3, 0x68($s0) +/* 087724 7F052BF4 8FA40028 */ lw $a0, 0x28($sp) +/* 087728 7F052BF8 27A5002C */ addiu $a1, $sp, 0x2c +/* 08772C 7F052BFC 0FC0FD50 */ jal sub_GAME_7F03F540 +/* 087730 7F052C00 24E60004 */ addiu $a2, $a3, 4 +/* 087734 7F052C04 9602009A */ lhu $v0, 0x9a($s0) +/* 087738 7F052C08 24010004 */ li $at, 4 +/* 08773C 7F052C0C 8FA40028 */ lw $a0, 0x28($sp) +/* 087740 7F052C10 54410009 */ bnel $v0, $at, .L7F052C38 +/* 087744 7F052C14 24010008 */ li $at, 8 +/* 087748 7F052C18 0FC0FA6F */ jal sub_GAME_7F03E9BC +/* 08774C 7F052C1C 27A5002C */ addiu $a1, $sp, 0x2c +/* 087750 7F052C20 C604005C */ lwc1 $f4, 0x5c($s0) +/* 087754 7F052C24 8E0F0068 */ lw $t7, 0x68($s0) +/* 087758 7F052C28 46040180 */ add.s $f6, $f0, $f4 +/* 08775C 7F052C2C 1000001B */ b .L7F052C9C +/* 087760 7F052C30 E5E60048 */ swc1 $f6, 0x48($t7) +/* 087764 7F052C34 24010008 */ li $at, 8 +.L7F052C38: +/* 087768 7F052C38 14410008 */ bne $v0, $at, .L7F052C5C +/* 08776C 7F052C3C 8FA40028 */ lw $a0, 0x28($sp) +/* 087770 7F052C40 3C018005 */ lui $at, %hi(D_80053334) +/* 087774 7F052C44 C42A3334 */ lwc1 $f10, %lo(D_80053334)($at) +/* 087778 7F052C48 C608005C */ lwc1 $f8, 0x5c($s0) +/* 08777C 7F052C4C 8E180068 */ lw $t8, 0x68($s0) +/* 087780 7F052C50 460A4401 */ sub.s $f16, $f8, $f10 +/* 087784 7F052C54 10000011 */ b .L7F052C9C +/* 087788 7F052C58 E7100048 */ swc1 $f16, 0x48($t8) +.L7F052C5C: +/* 08778C 7F052C5C 0FC0FA6F */ jal sub_GAME_7F03E9BC +/* 087790 7F052C60 27A5002C */ addiu $a1, $sp, 0x2c +/* 087794 7F052C64 C7B20060 */ lwc1 $f18, 0x60($sp) +/* 087798 7F052C68 8E190068 */ lw $t9, 0x68($s0) +/* 08779C 7F052C6C 46120100 */ add.s $f4, $f0, $f18 +/* 0877A0 7F052C70 E7240048 */ swc1 $f4, 0x48($t9) +/* 0877A4 7F052C74 96090098 */ lhu $t1, 0x98($s0) +/* 0877A8 7F052C78 31280001 */ andi $t0, $t1, 1 +/* 0877AC 7F052C7C 51000008 */ beql $t0, $zero, .L7F052CA0 +/* 0877B0 7F052C80 9602009A */ lhu $v0, 0x9a($s0) +/* 0877B4 7F052C84 8E070068 */ lw $a3, 0x68($s0) +/* 0877B8 7F052C88 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0877BC 7F052C8C 44814000 */ mtc1 $at, $f8 +/* 0877C0 7F052C90 C4E60048 */ lwc1 $f6, 0x48($a3) +/* 0877C4 7F052C94 46083281 */ sub.s $f10, $f6, $f8 +/* 0877C8 7F052C98 E4EA0048 */ swc1 $f10, 0x48($a3) +.L7F052C9C: +/* 0877CC 7F052C9C 9602009A */ lhu $v0, 0x9a($s0) +.L7F052CA0: +/* 0877D0 7F052CA0 24010006 */ li $at, 6 +/* 0877D4 7F052CA4 14410008 */ bne $v0, $at, .L7F052CC8 +/* 0877D8 7F052CA8 3C018005 */ lui $at, %hi(D_80053338) +/* 0877DC 7F052CAC C4303338 */ lwc1 $f16, %lo(D_80053338)($at) +/* 0877E0 7F052CB0 C6120084 */ lwc1 $f18, 0x84($s0) +/* 0877E4 7F052CB4 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 0877E8 7F052CB8 46128102 */ mul.s $f4, $f16, $f18 +/* 0877EC 7F052CBC 4606203C */ c.lt.s $f4, $f6 +/* 0877F0 7F052CC0 00000000 */ nop +/* 0877F4 7F052CC4 4501000B */ bc1t .L7F052CF4 +.L7F052CC8: +/* 0877F8 7F052CC8 24010007 */ li $at, 7 +/* 0877FC 7F052CCC 14410010 */ bne $v0, $at, .L7F052D10 +/* 087800 7F052CD0 3C018005 */ lui $at, %hi(D_8005333C) +/* 087804 7F052CD4 C428333C */ lwc1 $f8, %lo(D_8005333C)($at) +/* 087808 7F052CD8 C60A0084 */ lwc1 $f10, 0x84($s0) +/* 08780C 7F052CDC C61200B4 */ lwc1 $f18, 0xb4($s0) +/* 087810 7F052CE0 460A4402 */ mul.s $f16, $f8, $f10 +/* 087814 7F052CE4 4612803C */ c.lt.s $f16, $f18 +/* 087818 7F052CE8 00000000 */ nop +/* 08781C 7F052CEC 45020009 */ bc1fl .L7F052D14 +/* 087820 7F052CF0 24010008 */ li $at, 8 +.L7F052CF4: +/* 087824 7F052CF4 8E070068 */ lw $a3, 0x68($s0) +/* 087828 7F052CF8 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 08782C 7F052CFC 44813000 */ mtc1 $at, $f6 +/* 087830 7F052D00 C4E40048 */ lwc1 $f4, 0x48($a3) +/* 087834 7F052D04 46062200 */ add.s $f8, $f4, $f6 +/* 087838 7F052D08 1000001B */ b .L7F052D78 +/* 08783C 7F052D0C E4E80044 */ swc1 $f8, 0x44($a3) +.L7F052D10: +/* 087840 7F052D10 24010008 */ li $at, 8 +.L7F052D14: +/* 087844 7F052D14 14410008 */ bne $v0, $at, .L7F052D38 +/* 087848 7F052D18 8FA40028 */ lw $a0, 0x28($sp) +/* 08784C 7F052D1C 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 087850 7F052D20 44818000 */ mtc1 $at, $f16 +/* 087854 7F052D24 C60A005C */ lwc1 $f10, 0x5c($s0) +/* 087858 7F052D28 8E0A0068 */ lw $t2, 0x68($s0) +/* 08785C 7F052D2C 46105480 */ add.s $f18, $f10, $f16 +/* 087860 7F052D30 10000011 */ b .L7F052D78 +/* 087864 7F052D34 E5520044 */ swc1 $f18, 0x44($t2) +.L7F052D38: +/* 087868 7F052D38 0FC0FA97 */ jal sub_GAME_7F03EA5C +/* 08786C 7F052D3C 27A5002C */ addiu $a1, $sp, 0x2c +/* 087870 7F052D40 C7A40060 */ lwc1 $f4, 0x60($sp) +/* 087874 7F052D44 8E0B0068 */ lw $t3, 0x68($s0) +/* 087878 7F052D48 46040180 */ add.s $f6, $f0, $f4 +/* 08787C 7F052D4C E5660044 */ swc1 $f6, 0x44($t3) +/* 087880 7F052D50 960C0098 */ lhu $t4, 0x98($s0) +/* 087884 7F052D54 318D0001 */ andi $t5, $t4, 1 +/* 087888 7F052D58 51A00008 */ beql $t5, $zero, .L7F052D7C +/* 08788C 7F052D5C 8FBF001C */ lw $ra, 0x1c($sp) +/* 087890 7F052D60 8E070068 */ lw $a3, 0x68($s0) +/* 087894 7F052D64 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 087898 7F052D68 44815000 */ mtc1 $at, $f10 +/* 08789C 7F052D6C C4E80044 */ lwc1 $f8, 0x44($a3) +/* 0878A0 7F052D70 460A4400 */ add.s $f16, $f8, $f10 +/* 0878A4 7F052D74 E4F00044 */ swc1 $f16, 0x44($a3) +.L7F052D78: +/* 0878A8 7F052D78 8FBF001C */ lw $ra, 0x1c($sp) +.L7F052D7C: +/* 0878AC 7F052D7C 8FB00018 */ lw $s0, 0x18($sp) +/* 0878B0 7F052D80 27BD0070 */ addiu $sp, $sp, 0x70 +/* 0878B4 7F052D84 03E00008 */ jr $ra +/* 0878B8 7F052D88 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F052D8C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F052D8C +/* 0878BC 7F052D8C 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0878C0 7F052D90 AFBF003C */ sw $ra, 0x3c($sp) +/* 0878C4 7F052D94 AFBE0038 */ sw $fp, 0x38($sp) +/* 0878C8 7F052D98 AFB70034 */ sw $s7, 0x34($sp) +/* 0878CC 7F052D9C AFB60030 */ sw $s6, 0x30($sp) +/* 0878D0 7F052DA0 AFB5002C */ sw $s5, 0x2c($sp) +/* 0878D4 7F052DA4 AFB40028 */ sw $s4, 0x28($sp) +/* 0878D8 7F052DA8 AFB30024 */ sw $s3, 0x24($sp) +/* 0878DC 7F052DAC AFB20020 */ sw $s2, 0x20($sp) +/* 0878E0 7F052DB0 AFB1001C */ sw $s1, 0x1c($sp) +/* 0878E4 7F052DB4 AFB00018 */ sw $s0, 0x18($sp) +/* 0878E8 7F052DB8 948E0098 */ lhu $t6, 0x98($a0) +/* 0878EC 7F052DBC 0080B025 */ move $s6, $a0 +/* 0878F0 7F052DC0 31CF0004 */ andi $t7, $t6, 4 +/* 0878F4 7F052DC4 51E001E9 */ beql $t7, $zero, .L7F05356C +/* 0878F8 7F052DC8 8FBF003C */ lw $ra, 0x3c($sp) +/* 0878FC 7F052DCC 8C840014 */ lw $a0, 0x14($a0) +/* 087900 7F052DD0 8C980008 */ lw $t8, 8($a0) +/* 087904 7F052DD4 8F190000 */ lw $t9, ($t8) +/* 087908 7F052DD8 8F2E0014 */ lw $t6, 0x14($t9) +/* 08790C 7F052DDC 8DC50014 */ lw $a1, 0x14($t6) +/* 087910 7F052DE0 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 087914 7F052DE4 8CB50004 */ lw $s5, 4($a1) +/* 087918 7F052DE8 96CF009A */ lhu $t7, 0x9a($s6) +/* 08791C 7F052DEC 24140004 */ li $s4, 4 +/* 087920 7F052DF0 0040B825 */ move $s7, $v0 +/* 087924 7F052DF4 168F000B */ bne $s4, $t7, .L7F052E24 +/* 087928 7F052DF8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 08792C 7F052DFC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 087930 7F052E00 44813000 */ mtc1 $at, $f6 +/* 087934 7F052E04 C6C400E0 */ lwc1 $f4, 0xe0($s6) +/* 087938 7F052E08 46062200 */ add.s $f8, $f4, $f6 +/* 08793C 7F052E0C 4600428D */ trunc.w.s $f10, $f8 +/* 087940 7F052E10 440D5000 */ mfc1 $t5, $f10 +/* 087944 7F052E14 00000000 */ nop +/* 087948 7F052E18 000DCC00 */ sll $t9, $t5, 0x10 +/* 08794C 7F052E1C 1000000A */ b .L7F052E48 +/* 087950 7F052E20 00196C03 */ sra $t5, $t9, 0x10 +.L7F052E24: +/* 087954 7F052E24 C6D000D4 */ lwc1 $f16, 0xd4($s6) +/* 087958 7F052E28 44819000 */ mtc1 $at, $f18 +/* 08795C 7F052E2C 00000000 */ nop +/* 087960 7F052E30 46128100 */ add.s $f4, $f16, $f18 +/* 087964 7F052E34 4600218D */ trunc.w.s $f6, $f4 +/* 087968 7F052E38 440D3000 */ mfc1 $t5, $f6 +/* 08796C 7F052E3C 00000000 */ nop +/* 087970 7F052E40 000DC400 */ sll $t8, $t5, 0x10 +/* 087974 7F052E44 00186C03 */ sra $t5, $t8, 0x10 +.L7F052E48: +/* 087978 7F052E48 86A4000C */ lh $a0, 0xc($s5) +/* 08797C 7F052E4C 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 087980 7F052E50 A7AD0042 */ sh $t5, 0x42($sp) +/* 087984 7F052E54 87AD0042 */ lh $t5, 0x42($sp) +/* 087988 7F052E58 AEE20000 */ sw $v0, ($s7) +/* 08798C 7F052E5C 86AE000C */ lh $t6, 0xc($s5) +/* 087990 7F052E60 00001825 */ move $v1, $zero +/* 087994 7F052E64 0000F025 */ move $fp, $zero +/* 087998 7F052E68 05C10003 */ bgez $t6, .L7F052E78 +/* 08799C 7F052E6C 000E7883 */ sra $t7, $t6, 2 +/* 0879A0 7F052E70 25C10003 */ addiu $at, $t6, 3 +/* 0879A4 7F052E74 00017883 */ sra $t7, $at, 2 +.L7F052E78: +/* 0879A8 7F052E78 19E001BB */ blez $t7, .L7F053568 +/* 0879AC 7F052E7C 00001825 */ move $v1, $zero +.L7F052E80: +/* 0879B0 7F052E80 001E9900 */ sll $s3, $fp, 4 +.L7F052E84: +/* 0879B4 7F052E84 8EF80000 */ lw $t8, ($s7) +/* 0879B8 7F052E88 24670002 */ addiu $a3, $v1, 2 +/* 0879BC 7F052E8C 246C0003 */ addiu $t4, $v1, 3 +/* 0879C0 7F052E90 03131021 */ addu $v0, $t8, $s3 +/* 0879C4 7F052E94 24720001 */ addiu $s2, $v1, 1 +/* 0879C8 7F052E98 00032100 */ sll $a0, $v1, 4 +/* 0879CC 7F052E9C 00445821 */ addu $t3, $v0, $a0 +/* 0879D0 7F052EA0 06410004 */ bgez $s2, .L7F052EB4 +/* 0879D4 7F052EA4 32450003 */ andi $a1, $s2, 3 +/* 0879D8 7F052EA8 10A00002 */ beqz $a1, .L7F052EB4 +/* 0879DC 7F052EAC 00000000 */ nop +/* 0879E0 7F052EB0 24A5FFFC */ addiu $a1, $a1, -4 +.L7F052EB4: +/* 0879E4 7F052EB4 0005C900 */ sll $t9, $a1, 4 +/* 0879E8 7F052EB8 03202825 */ move $a1, $t9 +/* 0879EC 7F052EBC 0059F821 */ addu $ra, $v0, $t9 +/* 0879F0 7F052EC0 04E10004 */ bgez $a3, .L7F052ED4 +/* 0879F4 7F052EC4 30EE0003 */ andi $t6, $a3, 3 +/* 0879F8 7F052EC8 11C00002 */ beqz $t6, .L7F052ED4 +/* 0879FC 7F052ECC 00000000 */ nop +/* 087A00 7F052ED0 25CEFFFC */ addiu $t6, $t6, -4 +.L7F052ED4: +/* 087A04 7F052ED4 000E7900 */ sll $t7, $t6, 4 +/* 087A08 7F052ED8 8EAE0008 */ lw $t6, 8($s5) +/* 087A0C 7F052EDC 01E03825 */ move $a3, $t7 +/* 087A10 7F052EE0 004F8021 */ addu $s0, $v0, $t7 +/* 087A14 7F052EE4 01D34821 */ addu $t1, $t6, $s3 +/* 087A18 7F052EE8 05810004 */ bgez $t4, .L7F052EFC +/* 087A1C 7F052EEC 31980003 */ andi $t8, $t4, 3 +/* 087A20 7F052EF0 13000002 */ beqz $t8, .L7F052EFC +/* 087A24 7F052EF4 00000000 */ nop +/* 087A28 7F052EF8 2718FFFC */ addiu $t8, $t8, -4 +.L7F052EFC: +/* 087A2C 7F052EFC 00186100 */ sll $t4, $t8, 4 +/* 087A30 7F052F00 01275021 */ addu $t2, $t1, $a3 +/* 087A34 7F052F04 004C8821 */ addu $s1, $v0, $t4 +/* 087A38 7F052F08 01243021 */ addu $a2, $t1, $a0 +/* 087A3C 7F052F0C 01254021 */ addu $t0, $t1, $a1 +/* 087A40 7F052F10 14600021 */ bnez $v1, .L7F052F98 +/* 087A44 7F052F14 012C3821 */ addu $a3, $t1, $t4 +/* 087A48 7F052F18 8CC10000 */ lw $at, ($a2) +/* 087A4C 7F052F1C AD610000 */ sw $at, ($t3) +/* 087A50 7F052F20 8CD80004 */ lw $t8, 4($a2) +/* 087A54 7F052F24 AD780004 */ sw $t8, 4($t3) +/* 087A58 7F052F28 8CC10008 */ lw $at, 8($a2) +/* 087A5C 7F052F2C AD610008 */ sw $at, 8($t3) +/* 087A60 7F052F30 8CD8000C */ lw $t8, 0xc($a2) +/* 087A64 7F052F34 AD78000C */ sw $t8, 0xc($t3) +/* 087A68 7F052F38 8D010000 */ lw $at, ($t0) +/* 087A6C 7F052F3C AFE10000 */ sw $at, ($ra) +/* 087A70 7F052F40 8D0E0004 */ lw $t6, 4($t0) +/* 087A74 7F052F44 AFEE0004 */ sw $t6, 4($ra) +/* 087A78 7F052F48 8D010008 */ lw $at, 8($t0) +/* 087A7C 7F052F4C AFE10008 */ sw $at, 8($ra) +/* 087A80 7F052F50 8D0E000C */ lw $t6, 0xc($t0) +/* 087A84 7F052F54 AFEE000C */ sw $t6, 0xc($ra) +/* 087A88 7F052F58 8D410000 */ lw $at, ($t2) +/* 087A8C 7F052F5C AE010000 */ sw $at, ($s0) +/* 087A90 7F052F60 8D580004 */ lw $t8, 4($t2) +/* 087A94 7F052F64 AE180004 */ sw $t8, 4($s0) +/* 087A98 7F052F68 8D410008 */ lw $at, 8($t2) +/* 087A9C 7F052F6C AE010008 */ sw $at, 8($s0) +/* 087AA0 7F052F70 8D58000C */ lw $t8, 0xc($t2) +/* 087AA4 7F052F74 AE18000C */ sw $t8, 0xc($s0) +/* 087AA8 7F052F78 8CE10000 */ lw $at, ($a3) +/* 087AAC 7F052F7C AE210000 */ sw $at, ($s1) +/* 087AB0 7F052F80 8CEE0004 */ lw $t6, 4($a3) +/* 087AB4 7F052F84 AE2E0004 */ sw $t6, 4($s1) +/* 087AB8 7F052F88 8CE10008 */ lw $at, 8($a3) +/* 087ABC 7F052F8C AE210008 */ sw $at, 8($s1) +/* 087AC0 7F052F90 8CEE000C */ lw $t6, 0xc($a3) +/* 087AC4 7F052F94 AE2E000C */ sw $t6, 0xc($s1) +.L7F052F98: +/* 087AC8 7F052F98 96CF009A */ lhu $t7, 0x9a($s6) +/* 087ACC 7F052F9C 568F00B5 */ bnel $s4, $t7, .L7F053274 +/* 087AD0 7F052FA0 84C50000 */ lh $a1, ($a2) +/* 087AD4 7F052FA4 84C40002 */ lh $a0, 2($a2) +/* 087AD8 7F052FA8 008D082A */ slt $at, $a0, $t5 +/* 087ADC 7F052FAC 14200162 */ bnez $at, .L7F053538 +/* 087AE0 7F052FB0 00000000 */ nop +/* 087AE4 7F052FB4 84C50000 */ lh $a1, ($a2) +/* 087AE8 7F052FB8 85180000 */ lh $t8, ($t0) +/* 087AEC 7F052FBC 57050039 */ bnel $t8, $a1, .L7F0530A4 +/* 087AF0 7F052FC0 85590000 */ lh $t9, ($t2) +/* 087AF4 7F052FC4 85190004 */ lh $t9, 4($t0) +/* 087AF8 7F052FC8 84CE0004 */ lh $t6, 4($a2) +/* 087AFC 7F052FCC 572E0035 */ bnel $t9, $t6, .L7F0530A4 +/* 087B00 7F052FD0 85590000 */ lh $t9, ($t2) +/* 087B04 7F052FD4 85090002 */ lh $t1, 2($t0) +/* 087B08 7F052FD8 51240032 */ beql $t1, $a0, .L7F0530A4 +/* 087B0C 7F052FDC 85590000 */ lh $t9, ($t2) +/* 087B10 7F052FE0 84C20008 */ lh $v0, 8($a2) +/* 087B14 7F052FE4 85180008 */ lh $t8, 8($t0) +/* 087B18 7F052FE8 008D7823 */ subu $t7, $a0, $t5 +/* 087B1C 7F052FEC 0302C823 */ subu $t9, $t8, $v0 +/* 087B20 7F052FF0 01F90019 */ multu $t7, $t9 +/* 087B24 7F052FF4 0089C023 */ subu $t8, $a0, $t1 +/* 087B28 7F052FF8 00007012 */ mflo $t6 +/* 087B2C 7F052FFC 00000000 */ nop +/* 087B30 7F053000 00000000 */ nop +/* 087B34 7F053004 01D8001A */ div $zero, $t6, $t8 +/* 087B38 7F053008 00007812 */ mflo $t7 +/* 087B3C 7F05300C 01E2C821 */ addu $t9, $t7, $v0 +/* 087B40 7F053010 A5790008 */ sh $t9, 8($t3) +/* 087B44 7F053014 17000002 */ bnez $t8, .L7F053020 +/* 087B48 7F053018 00000000 */ nop +/* 087B4C 7F05301C 0007000D */ break 7 +.L7F053020: +/* 087B50 7F053020 2401FFFF */ li $at, -1 +/* 087B54 7F053024 17010004 */ bne $t8, $at, .L7F053038 +/* 087B58 7F053028 3C018000 */ lui $at, 0x8000 +/* 087B5C 7F05302C 15C10002 */ bne $t6, $at, .L7F053038 +/* 087B60 7F053030 00000000 */ nop +/* 087B64 7F053034 0006000D */ break 6 +.L7F053038: +/* 087B68 7F053038 8518000A */ lh $t8, 0xa($t0) +/* 087B6C 7F05303C 84C3000A */ lh $v1, 0xa($a2) +/* 087B70 7F053040 84C40002 */ lh $a0, 2($a2) +/* 087B74 7F053044 03037823 */ subu $t7, $t8, $v1 +/* 087B78 7F053048 008D7023 */ subu $t6, $a0, $t5 +/* 087B7C 7F05304C 01CF0019 */ multu $t6, $t7 +/* 087B80 7F053050 85180002 */ lh $t8, 2($t0) +/* 087B84 7F053054 00987023 */ subu $t6, $a0, $t8 +/* 087B88 7F053058 0000C812 */ mflo $t9 +/* 087B8C 7F05305C 00000000 */ nop +/* 087B90 7F053060 00000000 */ nop +/* 087B94 7F053064 032E001A */ div $zero, $t9, $t6 +/* 087B98 7F053068 00007812 */ mflo $t7 +/* 087B9C 7F05306C 01E3C021 */ addu $t8, $t7, $v1 +/* 087BA0 7F053070 15C00002 */ bnez $t6, .L7F05307C +/* 087BA4 7F053074 00000000 */ nop +/* 087BA8 7F053078 0007000D */ break 7 +.L7F05307C: +/* 087BAC 7F05307C 2401FFFF */ li $at, -1 +/* 087BB0 7F053080 15C10004 */ bne $t6, $at, .L7F053094 +/* 087BB4 7F053084 3C018000 */ lui $at, 0x8000 +/* 087BB8 7F053088 17210002 */ bne $t9, $at, .L7F053094 +/* 087BBC 7F05308C 00000000 */ nop +/* 087BC0 7F053090 0006000D */ break 6 +.L7F053094: +/* 087BC4 7F053094 A578000A */ sh $t8, 0xa($t3) +/* 087BC8 7F053098 10000073 */ b .L7F053268 +/* 087BCC 7F05309C 00000000 */ nop +/* 087BD0 7F0530A0 85590000 */ lh $t9, ($t2) +.L7F0530A4: +/* 087BD4 7F0530A4 57250039 */ bnel $t9, $a1, .L7F05318C +/* 087BD8 7F0530A8 84EE0000 */ lh $t6, ($a3) +/* 087BDC 7F0530AC 854E0004 */ lh $t6, 4($t2) +/* 087BE0 7F0530B0 84CF0004 */ lh $t7, 4($a2) +/* 087BE4 7F0530B4 55CF0035 */ bnel $t6, $t7, .L7F05318C +/* 087BE8 7F0530B8 84EE0000 */ lh $t6, ($a3) +/* 087BEC 7F0530BC 85480002 */ lh $t0, 2($t2) +/* 087BF0 7F0530C0 51040032 */ beql $t0, $a0, .L7F05318C +/* 087BF4 7F0530C4 84EE0000 */ lh $t6, ($a3) +/* 087BF8 7F0530C8 84C20008 */ lh $v0, 8($a2) +/* 087BFC 7F0530CC 85590008 */ lh $t9, 8($t2) +/* 087C00 7F0530D0 008DC023 */ subu $t8, $a0, $t5 +/* 087C04 7F0530D4 03227023 */ subu $t6, $t9, $v0 +/* 087C08 7F0530D8 030E0019 */ multu $t8, $t6 +/* 087C0C 7F0530DC 0088C823 */ subu $t9, $a0, $t0 +/* 087C10 7F0530E0 00007812 */ mflo $t7 +/* 087C14 7F0530E4 00000000 */ nop +/* 087C18 7F0530E8 00000000 */ nop +/* 087C1C 7F0530EC 01F9001A */ div $zero, $t7, $t9 +/* 087C20 7F0530F0 0000C012 */ mflo $t8 +/* 087C24 7F0530F4 03027021 */ addu $t6, $t8, $v0 +/* 087C28 7F0530F8 A56E0008 */ sh $t6, 8($t3) +/* 087C2C 7F0530FC 17200002 */ bnez $t9, .L7F053108 +/* 087C30 7F053100 00000000 */ nop +/* 087C34 7F053104 0007000D */ break 7 +.L7F053108: +/* 087C38 7F053108 2401FFFF */ li $at, -1 +/* 087C3C 7F05310C 17210004 */ bne $t9, $at, .L7F053120 +/* 087C40 7F053110 3C018000 */ lui $at, 0x8000 +/* 087C44 7F053114 15E10002 */ bne $t7, $at, .L7F053120 +/* 087C48 7F053118 00000000 */ nop +/* 087C4C 7F05311C 0006000D */ break 6 +.L7F053120: +/* 087C50 7F053120 8559000A */ lh $t9, 0xa($t2) +/* 087C54 7F053124 84C3000A */ lh $v1, 0xa($a2) +/* 087C58 7F053128 84C40002 */ lh $a0, 2($a2) +/* 087C5C 7F05312C 0323C023 */ subu $t8, $t9, $v1 +/* 087C60 7F053130 008D7823 */ subu $t7, $a0, $t5 +/* 087C64 7F053134 01F80019 */ multu $t7, $t8 +/* 087C68 7F053138 85590002 */ lh $t9, 2($t2) +/* 087C6C 7F05313C 00997823 */ subu $t7, $a0, $t9 +/* 087C70 7F053140 00007012 */ mflo $t6 +/* 087C74 7F053144 00000000 */ nop +/* 087C78 7F053148 00000000 */ nop +/* 087C7C 7F05314C 01CF001A */ div $zero, $t6, $t7 +/* 087C80 7F053150 0000C012 */ mflo $t8 +/* 087C84 7F053154 0303C821 */ addu $t9, $t8, $v1 +/* 087C88 7F053158 15E00002 */ bnez $t7, .L7F053164 +/* 087C8C 7F05315C 00000000 */ nop +/* 087C90 7F053160 0007000D */ break 7 +.L7F053164: +/* 087C94 7F053164 2401FFFF */ li $at, -1 +/* 087C98 7F053168 15E10004 */ bne $t7, $at, .L7F05317C +/* 087C9C 7F05316C 3C018000 */ lui $at, 0x8000 +/* 087CA0 7F053170 15C10002 */ bne $t6, $at, .L7F05317C +/* 087CA4 7F053174 00000000 */ nop +/* 087CA8 7F053178 0006000D */ break 6 +.L7F05317C: +/* 087CAC 7F05317C A579000A */ sh $t9, 0xa($t3) +/* 087CB0 7F053180 10000039 */ b .L7F053268 +/* 087CB4 7F053184 00000000 */ nop +/* 087CB8 7F053188 84EE0000 */ lh $t6, ($a3) +.L7F05318C: +/* 087CBC 7F05318C 15C50036 */ bne $t6, $a1, .L7F053268 +/* 087CC0 7F053190 00000000 */ nop +/* 087CC4 7F053194 84EF0004 */ lh $t7, 4($a3) +/* 087CC8 7F053198 84D80004 */ lh $t8, 4($a2) +/* 087CCC 7F05319C 15F80032 */ bne $t7, $t8, .L7F053268 +/* 087CD0 7F0531A0 00000000 */ nop +/* 087CD4 7F0531A4 84E50002 */ lh $a1, 2($a3) +/* 087CD8 7F0531A8 10A4002F */ beq $a1, $a0, .L7F053268 +/* 087CDC 7F0531AC 00000000 */ nop +/* 087CE0 7F0531B0 84C20008 */ lh $v0, 8($a2) +/* 087CE4 7F0531B4 84EE0008 */ lh $t6, 8($a3) +/* 087CE8 7F0531B8 008DC823 */ subu $t9, $a0, $t5 +/* 087CEC 7F0531BC 01C27823 */ subu $t7, $t6, $v0 +/* 087CF0 7F0531C0 032F0019 */ multu $t9, $t7 +/* 087CF4 7F0531C4 00857023 */ subu $t6, $a0, $a1 +/* 087CF8 7F0531C8 0000C012 */ mflo $t8 +/* 087CFC 7F0531CC 00000000 */ nop +/* 087D00 7F0531D0 00000000 */ nop +/* 087D04 7F0531D4 030E001A */ div $zero, $t8, $t6 +/* 087D08 7F0531D8 0000C812 */ mflo $t9 +/* 087D0C 7F0531DC 03227821 */ addu $t7, $t9, $v0 +/* 087D10 7F0531E0 A56F0008 */ sh $t7, 8($t3) +/* 087D14 7F0531E4 15C00002 */ bnez $t6, .L7F0531F0 +/* 087D18 7F0531E8 00000000 */ nop +/* 087D1C 7F0531EC 0007000D */ break 7 +.L7F0531F0: +/* 087D20 7F0531F0 2401FFFF */ li $at, -1 +/* 087D24 7F0531F4 15C10004 */ bne $t6, $at, .L7F053208 +/* 087D28 7F0531F8 3C018000 */ lui $at, 0x8000 +/* 087D2C 7F0531FC 17010002 */ bne $t8, $at, .L7F053208 +/* 087D30 7F053200 00000000 */ nop +/* 087D34 7F053204 0006000D */ break 6 +.L7F053208: +/* 087D38 7F053208 84EE000A */ lh $t6, 0xa($a3) +/* 087D3C 7F05320C 84C3000A */ lh $v1, 0xa($a2) +/* 087D40 7F053210 84C40002 */ lh $a0, 2($a2) +/* 087D44 7F053214 01C3C823 */ subu $t9, $t6, $v1 +/* 087D48 7F053218 008DC023 */ subu $t8, $a0, $t5 +/* 087D4C 7F05321C 03190019 */ multu $t8, $t9 +/* 087D50 7F053220 84EE0002 */ lh $t6, 2($a3) +/* 087D54 7F053224 008EC023 */ subu $t8, $a0, $t6 +/* 087D58 7F053228 00007812 */ mflo $t7 +/* 087D5C 7F05322C 00000000 */ nop +/* 087D60 7F053230 00000000 */ nop +/* 087D64 7F053234 01F8001A */ div $zero, $t7, $t8 +/* 087D68 7F053238 0000C812 */ mflo $t9 +/* 087D6C 7F05323C 03237021 */ addu $t6, $t9, $v1 +/* 087D70 7F053240 A56E000A */ sh $t6, 0xa($t3) +/* 087D74 7F053244 17000002 */ bnez $t8, .L7F053250 +/* 087D78 7F053248 00000000 */ nop +/* 087D7C 7F05324C 0007000D */ break 7 +.L7F053250: +/* 087D80 7F053250 2401FFFF */ li $at, -1 +/* 087D84 7F053254 17010004 */ bne $t8, $at, .L7F053268 +/* 087D88 7F053258 3C018000 */ lui $at, 0x8000 +/* 087D8C 7F05325C 15E10002 */ bne $t7, $at, .L7F053268 +/* 087D90 7F053260 00000000 */ nop +/* 087D94 7F053264 0006000D */ break 6 +.L7F053268: +/* 087D98 7F053268 100000B3 */ b .L7F053538 +/* 087D9C 7F05326C A56D0002 */ sh $t5, 2($t3) +/* 087DA0 7F053270 84C50000 */ lh $a1, ($a2) +.L7F053274: +/* 087DA4 7F053274 01A5082A */ slt $at, $t5, $a1 +/* 087DA8 7F053278 142000AF */ bnez $at, .L7F053538 +/* 087DAC 7F05327C 00000000 */ nop +/* 087DB0 7F053280 84C40002 */ lh $a0, 2($a2) +/* 087DB4 7F053284 850F0002 */ lh $t7, 2($t0) +/* 087DB8 7F053288 55E40039 */ bnel $t7, $a0, .L7F053370 +/* 087DBC 7F05328C 85580002 */ lh $t8, 2($t2) +/* 087DC0 7F053290 85180004 */ lh $t8, 4($t0) +/* 087DC4 7F053294 84D90004 */ lh $t9, 4($a2) +/* 087DC8 7F053298 57190035 */ bnel $t8, $t9, .L7F053370 +/* 087DCC 7F05329C 85580002 */ lh $t8, 2($t2) +/* 087DD0 7F0532A0 85090000 */ lh $t1, ($t0) +/* 087DD4 7F0532A4 51250032 */ beql $t1, $a1, .L7F053370 +/* 087DD8 7F0532A8 85580002 */ lh $t8, 2($t2) +/* 087DDC 7F0532AC 84C20008 */ lh $v0, 8($a2) +/* 087DE0 7F0532B0 850F0008 */ lh $t7, 8($t0) +/* 087DE4 7F0532B4 01A57023 */ subu $t6, $t5, $a1 +/* 087DE8 7F0532B8 01E2C023 */ subu $t8, $t7, $v0 +/* 087DEC 7F0532BC 01D80019 */ multu $t6, $t8 +/* 087DF0 7F0532C0 01257823 */ subu $t7, $t1, $a1 +/* 087DF4 7F0532C4 0000C812 */ mflo $t9 +/* 087DF8 7F0532C8 00000000 */ nop +/* 087DFC 7F0532CC 00000000 */ nop +/* 087E00 7F0532D0 032F001A */ div $zero, $t9, $t7 +/* 087E04 7F0532D4 00007012 */ mflo $t6 +/* 087E08 7F0532D8 01C2C021 */ addu $t8, $t6, $v0 +/* 087E0C 7F0532DC A5780008 */ sh $t8, 8($t3) +/* 087E10 7F0532E0 15E00002 */ bnez $t7, .L7F0532EC +/* 087E14 7F0532E4 00000000 */ nop +/* 087E18 7F0532E8 0007000D */ break 7 +.L7F0532EC: +/* 087E1C 7F0532EC 2401FFFF */ li $at, -1 +/* 087E20 7F0532F0 15E10004 */ bne $t7, $at, .L7F053304 +/* 087E24 7F0532F4 3C018000 */ lui $at, 0x8000 +/* 087E28 7F0532F8 17210002 */ bne $t9, $at, .L7F053304 +/* 087E2C 7F0532FC 00000000 */ nop +/* 087E30 7F053300 0006000D */ break 6 +.L7F053304: +/* 087E34 7F053304 850F000A */ lh $t7, 0xa($t0) +/* 087E38 7F053308 84C3000A */ lh $v1, 0xa($a2) +/* 087E3C 7F05330C 84C50000 */ lh $a1, ($a2) +/* 087E40 7F053310 01E37023 */ subu $t6, $t7, $v1 +/* 087E44 7F053314 01A5C823 */ subu $t9, $t5, $a1 +/* 087E48 7F053318 032E0019 */ multu $t9, $t6 +/* 087E4C 7F05331C 850F0000 */ lh $t7, ($t0) +/* 087E50 7F053320 01E5C823 */ subu $t9, $t7, $a1 +/* 087E54 7F053324 0000C012 */ mflo $t8 +/* 087E58 7F053328 00000000 */ nop +/* 087E5C 7F05332C 00000000 */ nop +/* 087E60 7F053330 0319001A */ div $zero, $t8, $t9 +/* 087E64 7F053334 00007012 */ mflo $t6 +/* 087E68 7F053338 01C37821 */ addu $t7, $t6, $v1 +/* 087E6C 7F05333C 17200002 */ bnez $t9, .L7F053348 +/* 087E70 7F053340 00000000 */ nop +/* 087E74 7F053344 0007000D */ break 7 +.L7F053348: +/* 087E78 7F053348 2401FFFF */ li $at, -1 +/* 087E7C 7F05334C 17210004 */ bne $t9, $at, .L7F053360 +/* 087E80 7F053350 3C018000 */ lui $at, 0x8000 +/* 087E84 7F053354 17010002 */ bne $t8, $at, .L7F053360 +/* 087E88 7F053358 00000000 */ nop +/* 087E8C 7F05335C 0006000D */ break 6 +.L7F053360: +/* 087E90 7F053360 A56F000A */ sh $t7, 0xa($t3) +/* 087E94 7F053364 10000074 */ b .L7F053538 +/* 087E98 7F053368 A56D0000 */ sh $t5, ($t3) +/* 087E9C 7F05336C 85580002 */ lh $t8, 2($t2) +.L7F053370: +/* 087EA0 7F053370 57040039 */ bnel $t8, $a0, .L7F053458 +/* 087EA4 7F053374 84F90002 */ lh $t9, 2($a3) +/* 087EA8 7F053378 85590004 */ lh $t9, 4($t2) +/* 087EAC 7F05337C 84CE0004 */ lh $t6, 4($a2) +/* 087EB0 7F053380 572E0035 */ bnel $t9, $t6, .L7F053458 +/* 087EB4 7F053384 84F90002 */ lh $t9, 2($a3) +/* 087EB8 7F053388 85480000 */ lh $t0, ($t2) +/* 087EBC 7F05338C 51050032 */ beql $t0, $a1, .L7F053458 +/* 087EC0 7F053390 84F90002 */ lh $t9, 2($a3) +/* 087EC4 7F053394 84C20008 */ lh $v0, 8($a2) +/* 087EC8 7F053398 85580008 */ lh $t8, 8($t2) +/* 087ECC 7F05339C 01A57823 */ subu $t7, $t5, $a1 +/* 087ED0 7F0533A0 0302C823 */ subu $t9, $t8, $v0 +/* 087ED4 7F0533A4 01F90019 */ multu $t7, $t9 +/* 087ED8 7F0533A8 0105C023 */ subu $t8, $t0, $a1 +/* 087EDC 7F0533AC 00007012 */ mflo $t6 +/* 087EE0 7F0533B0 00000000 */ nop +/* 087EE4 7F0533B4 00000000 */ nop +/* 087EE8 7F0533B8 01D8001A */ div $zero, $t6, $t8 +/* 087EEC 7F0533BC 00007812 */ mflo $t7 +/* 087EF0 7F0533C0 01E2C821 */ addu $t9, $t7, $v0 +/* 087EF4 7F0533C4 A5790008 */ sh $t9, 8($t3) +/* 087EF8 7F0533C8 17000002 */ bnez $t8, .L7F0533D4 +/* 087EFC 7F0533CC 00000000 */ nop +/* 087F00 7F0533D0 0007000D */ break 7 +.L7F0533D4: +/* 087F04 7F0533D4 2401FFFF */ li $at, -1 +/* 087F08 7F0533D8 17010004 */ bne $t8, $at, .L7F0533EC +/* 087F0C 7F0533DC 3C018000 */ lui $at, 0x8000 +/* 087F10 7F0533E0 15C10002 */ bne $t6, $at, .L7F0533EC +/* 087F14 7F0533E4 00000000 */ nop +/* 087F18 7F0533E8 0006000D */ break 6 +.L7F0533EC: +/* 087F1C 7F0533EC 8558000A */ lh $t8, 0xa($t2) +/* 087F20 7F0533F0 84C3000A */ lh $v1, 0xa($a2) +/* 087F24 7F0533F4 84C50000 */ lh $a1, ($a2) +/* 087F28 7F0533F8 03037823 */ subu $t7, $t8, $v1 +/* 087F2C 7F0533FC 01A57023 */ subu $t6, $t5, $a1 +/* 087F30 7F053400 01CF0019 */ multu $t6, $t7 +/* 087F34 7F053404 85580000 */ lh $t8, ($t2) +/* 087F38 7F053408 03057023 */ subu $t6, $t8, $a1 +/* 087F3C 7F05340C 0000C812 */ mflo $t9 +/* 087F40 7F053410 00000000 */ nop +/* 087F44 7F053414 00000000 */ nop +/* 087F48 7F053418 032E001A */ div $zero, $t9, $t6 +/* 087F4C 7F05341C 00007812 */ mflo $t7 +/* 087F50 7F053420 01E3C021 */ addu $t8, $t7, $v1 +/* 087F54 7F053424 15C00002 */ bnez $t6, .L7F053430 +/* 087F58 7F053428 00000000 */ nop +/* 087F5C 7F05342C 0007000D */ break 7 +.L7F053430: +/* 087F60 7F053430 2401FFFF */ li $at, -1 +/* 087F64 7F053434 15C10004 */ bne $t6, $at, .L7F053448 +/* 087F68 7F053438 3C018000 */ lui $at, 0x8000 +/* 087F6C 7F05343C 17210002 */ bne $t9, $at, .L7F053448 +/* 087F70 7F053440 00000000 */ nop +/* 087F74 7F053444 0006000D */ break 6 +.L7F053448: +/* 087F78 7F053448 A578000A */ sh $t8, 0xa($t3) +/* 087F7C 7F05344C 1000003A */ b .L7F053538 +/* 087F80 7F053450 A56D0000 */ sh $t5, ($t3) +/* 087F84 7F053454 84F90002 */ lh $t9, 2($a3) +.L7F053458: +/* 087F88 7F053458 57240037 */ bnel $t9, $a0, .L7F053538 +/* 087F8C 7F05345C A56D0000 */ sh $t5, ($t3) +/* 087F90 7F053460 84EE0004 */ lh $t6, 4($a3) +/* 087F94 7F053464 84CF0004 */ lh $t7, 4($a2) +/* 087F98 7F053468 55CF0033 */ bnel $t6, $t7, .L7F053538 +/* 087F9C 7F05346C A56D0000 */ sh $t5, ($t3) +/* 087FA0 7F053470 84E40000 */ lh $a0, ($a3) +/* 087FA4 7F053474 50850030 */ beql $a0, $a1, .L7F053538 +/* 087FA8 7F053478 A56D0000 */ sh $t5, ($t3) +/* 087FAC 7F05347C 84C20008 */ lh $v0, 8($a2) +/* 087FB0 7F053480 84F90008 */ lh $t9, 8($a3) +/* 087FB4 7F053484 01A5C023 */ subu $t8, $t5, $a1 +/* 087FB8 7F053488 03227023 */ subu $t6, $t9, $v0 +/* 087FBC 7F05348C 030E0019 */ multu $t8, $t6 +/* 087FC0 7F053490 0085C823 */ subu $t9, $a0, $a1 +/* 087FC4 7F053494 00007812 */ mflo $t7 +/* 087FC8 7F053498 00000000 */ nop +/* 087FCC 7F05349C 00000000 */ nop +/* 087FD0 7F0534A0 01F9001A */ div $zero, $t7, $t9 +/* 087FD4 7F0534A4 0000C012 */ mflo $t8 +/* 087FD8 7F0534A8 03027021 */ addu $t6, $t8, $v0 +/* 087FDC 7F0534AC A56E0008 */ sh $t6, 8($t3) +/* 087FE0 7F0534B0 17200002 */ bnez $t9, .L7F0534BC +/* 087FE4 7F0534B4 00000000 */ nop +/* 087FE8 7F0534B8 0007000D */ break 7 +.L7F0534BC: +/* 087FEC 7F0534BC 2401FFFF */ li $at, -1 +/* 087FF0 7F0534C0 17210004 */ bne $t9, $at, .L7F0534D4 +/* 087FF4 7F0534C4 3C018000 */ lui $at, 0x8000 +/* 087FF8 7F0534C8 15E10002 */ bne $t7, $at, .L7F0534D4 +/* 087FFC 7F0534CC 00000000 */ nop +/* 088000 7F0534D0 0006000D */ break 6 +.L7F0534D4: +/* 088004 7F0534D4 84F9000A */ lh $t9, 0xa($a3) +/* 088008 7F0534D8 84C3000A */ lh $v1, 0xa($a2) +/* 08800C 7F0534DC 84C50000 */ lh $a1, ($a2) +/* 088010 7F0534E0 0323C023 */ subu $t8, $t9, $v1 +/* 088014 7F0534E4 01A57823 */ subu $t7, $t5, $a1 +/* 088018 7F0534E8 01F80019 */ multu $t7, $t8 +/* 08801C 7F0534EC 84F90000 */ lh $t9, ($a3) +/* 088020 7F0534F0 03257823 */ subu $t7, $t9, $a1 +/* 088024 7F0534F4 00007012 */ mflo $t6 +/* 088028 7F0534F8 00000000 */ nop +/* 08802C 7F0534FC 00000000 */ nop +/* 088030 7F053500 01CF001A */ div $zero, $t6, $t7 +/* 088034 7F053504 0000C012 */ mflo $t8 +/* 088038 7F053508 0303C821 */ addu $t9, $t8, $v1 +/* 08803C 7F05350C A579000A */ sh $t9, 0xa($t3) +/* 088040 7F053510 15E00002 */ bnez $t7, .L7F05351C +/* 088044 7F053514 00000000 */ nop +/* 088048 7F053518 0007000D */ break 7 +.L7F05351C: +/* 08804C 7F05351C 2401FFFF */ li $at, -1 +/* 088050 7F053520 15E10004 */ bne $t7, $at, .L7F053534 +/* 088054 7F053524 3C018000 */ lui $at, 0x8000 +/* 088058 7F053528 15C10002 */ bne $t6, $at, .L7F053534 +/* 08805C 7F05352C 00000000 */ nop +/* 088060 7F053530 0006000D */ break 6 +.L7F053534: +/* 088064 7F053534 A56D0000 */ sh $t5, ($t3) +.L7F053538: +/* 088068 7F053538 1654FE52 */ bne $s2, $s4, .L7F052E84 +/* 08806C 7F05353C 02401825 */ move $v1, $s2 +/* 088070 7F053540 86A2000C */ lh $v0, 0xc($s5) +/* 088074 7F053544 27DE0004 */ addiu $fp, $fp, 4 +/* 088078 7F053548 04410003 */ bgez $v0, .L7F053558 +/* 08807C 7F05354C 00027083 */ sra $t6, $v0, 2 +/* 088080 7F053550 24410003 */ addiu $at, $v0, 3 +/* 088084 7F053554 00017083 */ sra $t6, $at, 2 +.L7F053558: +/* 088088 7F053558 000E1880 */ sll $v1, $t6, 2 +/* 08808C 7F05355C 03C3082A */ slt $at, $fp, $v1 +/* 088090 7F053560 5420FE47 */ bnezl $at, .L7F052E80 +/* 088094 7F053564 00001825 */ move $v1, $zero +.L7F053568: +/* 088098 7F053568 8FBF003C */ lw $ra, 0x3c($sp) +.L7F05356C: +/* 08809C 7F05356C 8FB00018 */ lw $s0, 0x18($sp) +/* 0880A0 7F053570 8FB1001C */ lw $s1, 0x1c($sp) +/* 0880A4 7F053574 8FB20020 */ lw $s2, 0x20($sp) +/* 0880A8 7F053578 8FB30024 */ lw $s3, 0x24($sp) +/* 0880AC 7F05357C 8FB40028 */ lw $s4, 0x28($sp) +/* 0880B0 7F053580 8FB5002C */ lw $s5, 0x2c($sp) +/* 0880B4 7F053584 8FB60030 */ lw $s6, 0x30($sp) +/* 0880B8 7F053588 8FB70034 */ lw $s7, 0x34($sp) +/* 0880BC 7F05358C 8FBE0038 */ lw $fp, 0x38($sp) +/* 0880C0 7F053590 03E00008 */ jr $ra +/* 0880C4 7F053594 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F053598(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F053598 +/* 0880C8 7F053598 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0880CC 7F05359C AFBF0014 */ sw $ra, 0x14($sp) +/* 0880D0 7F0535A0 8C8600F0 */ lw $a2, 0xf0($a0) +/* 0880D4 7F0535A4 04C00003 */ bltz $a2, .L7F0535B4 +/* 0880D8 7F0535A8 00C02025 */ move $a0, $a2 +/* 0880DC 7F0535AC 0FC2E76F */ jal sub_GAME_7F0B9DBC +/* 0880E0 7F0535B0 24050001 */ li $a1, 1 +.L7F0535B4: +/* 0880E4 7F0535B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0880E8 7F0535B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0880EC 7F0535BC 03E00008 */ jr $ra +/* 0880F0 7F0535C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0535C4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0535C4 +/* 0880F4 7F0535C4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0880F8 7F0535C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0880FC 7F0535CC 8C8600F0 */ lw $a2, 0xf0($a0) +/* 088100 7F0535D0 04C00003 */ bltz $a2, .L7F0535E0 +/* 088104 7F0535D4 00C02025 */ move $a0, $a2 +/* 088108 7F0535D8 0FC2E76F */ jal sub_GAME_7F0B9DBC +/* 08810C 7F0535DC 00002825 */ move $a1, $zero +.L7F0535E0: +/* 088110 7F0535E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 088114 7F0535E4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 088118 7F0535E8 03E00008 */ jr $ra +/* 08811C 7F0535EC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void initialize_door(void) { + +} +#else +GLOBAL_ASM( +.text +glabel initialize_door +/* 088120 7F0535F0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 088124 7F0535F4 AFBF001C */ sw $ra, 0x1c($sp) +/* 088128 7F0535F8 AFB00014 */ sw $s0, 0x14($sp) +/* 08812C 7F0535FC 00808025 */ move $s0, $a0 +/* 088130 7F053600 AFB10018 */ sw $s1, 0x18($sp) +/* 088134 7F053604 AFA50034 */ sw $a1, 0x34($sp) +/* 088138 7F053608 AFA60038 */ sw $a2, 0x38($sp) +/* 08813C 7F05360C 0FC101C7 */ jal sub_GAME_7F04071C +/* 088140 7F053610 AFA7003C */ sw $a3, 0x3c($sp) +/* 088144 7F053614 860E0004 */ lh $t6, 4($s0) +/* 088148 7F053618 3C018004 */ lui $at, %hi(PitemZ_entries+8) +/* 08814C 7F05361C 00408825 */ move $s1, $v0 +/* 088150 7F053620 000E7880 */ sll $t7, $t6, 2 +/* 088154 7F053624 01EE7823 */ subu $t7, $t7, $t6 +/* 088158 7F053628 000F7880 */ sll $t7, $t7, 2 +/* 08815C 7F05362C 002F0821 */ addu $at, $at, $t7 +/* 088160 7F053630 C424A230 */ lwc1 $f4, %lo(PitemZ_entries+8)($at) +/* 088164 7F053634 24040050 */ li $a0, 80 +/* 088168 7F053638 24050004 */ li $a1, 4 +/* 08816C 7F05363C 0C0025C8 */ jal mempAllocBytesInBank +/* 088170 7F053640 E7A40028 */ swc1 $f4, 0x28($sp) +/* 088174 7F053644 AE020068 */ sw $v0, 0x68($s0) +/* 088178 7F053648 26050018 */ addiu $a1, $s0, 0x18 +/* 08817C 7F05364C AFA50020 */ sw $a1, 0x20($sp) +/* 088180 7F053650 0FC16008 */ jal matrix_4x4_copy +/* 088184 7F053654 8FA40038 */ lw $a0, 0x38($sp) +/* 088188 7F053658 8FA50020 */ lw $a1, 0x20($sp) +/* 08818C 7F05365C 0FC1629F */ jal matrix_scalar_multiply +/* 088190 7F053660 C7AC0028 */ lwc1 $f12, 0x28($sp) +/* 088194 7F053664 8FA20040 */ lw $v0, 0x40($sp) +/* 088198 7F053668 8E180008 */ lw $t8, 8($s0) +/* 08819C 7F05366C 44802000 */ mtc1 $zero, $f4 +/* 0881A0 7F053670 C4460000 */ lwc1 $f6, ($v0) +/* 0881A4 7F053674 0018C800 */ sll $t9, $t8, 0 +/* 0881A8 7F053678 E60600A8 */ swc1 $f6, 0xa8($s0) +/* 0881AC 7F05367C C4480004 */ lwc1 $f8, 4($v0) +/* 0881B0 7F053680 E60800AC */ swc1 $f8, 0xac($s0) +/* 0881B4 7F053684 C44A0008 */ lwc1 $f10, 8($v0) +/* 0881B8 7F053688 07210004 */ bgez $t9, .L7F05369C +/* 0881BC 7F05368C E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 0881C0 7F053690 C6100084 */ lwc1 $f16, 0x84($s0) +/* 0881C4 7F053694 10000004 */ b .L7F0536A8 +/* 0881C8 7F053698 E61000B4 */ swc1 $f16, 0xb4($s0) +.L7F05369C: +/* 0881CC 7F05369C 44809000 */ mtc1 $zero, $f18 +/* 0881D0 7F0536A0 00000000 */ nop +/* 0881D4 7F0536A4 E61200B4 */ swc1 $f18, 0xb4($s0) +.L7F0536A8: +/* 0881D8 7F0536A8 96080098 */ lhu $t0, 0x98($s0) +/* 0881DC 7F0536AC E60400B8 */ swc1 $f4, 0xb8($s0) +/* 0881E0 7F0536B0 A20000BC */ sb $zero, 0xbc($s0) +/* 0881E4 7F0536B4 31090004 */ andi $t1, $t0, 4 +/* 0881E8 7F0536B8 A20000BD */ sb $zero, 0xbd($s0) +/* 0881EC 7F0536BC 1120000E */ beqz $t1, .L7F0536F8 +/* 0881F0 7F0536C0 AE0000C8 */ sw $zero, 0xc8($s0) +/* 0881F4 7F0536C4 8E0A0014 */ lw $t2, 0x14($s0) +/* 0881F8 7F0536C8 24050004 */ li $a1, 4 +/* 0881FC 7F0536CC 8D4B0008 */ lw $t3, 8($t2) +/* 088200 7F0536D0 8D6C0000 */ lw $t4, ($t3) +/* 088204 7F0536D4 8D8D0014 */ lw $t5, 0x14($t4) +/* 088208 7F0536D8 8DAE0014 */ lw $t6, 0x14($t5) +/* 08820C 7F0536DC 8DC20004 */ lw $v0, 4($t6) +/* 088210 7F0536E0 8444000C */ lh $a0, 0xc($v0) +/* 088214 7F0536E4 00047900 */ sll $t7, $a0, 4 +/* 088218 7F0536E8 0C0025C8 */ jal mempAllocBytesInBank +/* 08821C 7F0536EC 01E02025 */ move $a0, $t7 +/* 088220 7F0536F0 10000002 */ b .L7F0536FC +/* 088224 7F0536F4 AE0200CC */ sw $v0, 0xcc($s0) +.L7F0536F8: +/* 088228 7F0536F8 AE0000CC */ sw $zero, 0xcc($s0) +.L7F0536FC: +/* 08822C 7F0536FC 8FA30034 */ lw $v1, 0x34($sp) +/* 088230 7F053700 8FA20044 */ lw $v0, 0x44($sp) +/* 088234 7F053704 2418FFFF */ li $t8, -1 +/* 088238 7F053708 AE1800F0 */ sw $t8, 0xf0($s0) +/* 08823C 7F05370C AE0000F4 */ sw $zero, 0xf4($s0) +/* 088240 7F053710 AE0000F8 */ sw $zero, 0xf8($s0) +/* 088244 7F053714 24190002 */ li $t9, 2 +/* 088248 7F053718 A2390000 */ sb $t9, ($s1) +/* 08824C 7F05371C AE300004 */ sw $s0, 4($s1) +/* 088250 7F053720 C4660000 */ lwc1 $f6, ($v1) +/* 088254 7F053724 02002025 */ move $a0, $s0 +/* 088258 7F053728 E6260008 */ swc1 $f6, 8($s1) +/* 08825C 7F05372C C4680004 */ lwc1 $f8, 4($v1) +/* 088260 7F053730 E628000C */ swc1 $f8, 0xc($s1) +/* 088264 7F053734 C46A0008 */ lwc1 $f10, 8($v1) +/* 088268 7F053738 E62A0010 */ swc1 $f10, 0x10($s1) +/* 08826C 7F05373C 8FA8003C */ lw $t0, 0x3c($sp) +/* 088270 7F053740 AE280014 */ sw $t0, 0x14($s1) +/* 088274 7F053744 C4500000 */ lwc1 $f16, ($v0) +/* 088278 7F053748 8E090008 */ lw $t1, 8($s0) +/* 08827C 7F05374C E6100058 */ swc1 $f16, 0x58($s0) +/* 088280 7F053750 C4520004 */ lwc1 $f18, 4($v0) +/* 088284 7F053754 352A0100 */ ori $t2, $t1, 0x100 +/* 088288 7F053758 E612005C */ swc1 $f18, 0x5c($s0) +/* 08828C 7F05375C C4440008 */ lwc1 $f4, 8($v0) +/* 088290 7F053760 AE0A0008 */ sw $t2, 8($s0) +/* 088294 7F053764 0FC14AC0 */ jal sub_GAME_7F052B00 +/* 088298 7F053768 E6040060 */ swc1 $f4, 0x60($s0) +/* 08829C 7F05376C 0FC14B63 */ jal sub_GAME_7F052D8C +/* 0882A0 7F053770 02002025 */ move $a0, $s0 +/* 0882A4 7F053774 8E040010 */ lw $a0, 0x10($s0) +/* 0882A8 7F053778 0FC100AD */ jal sub_GAME_7F0402B4 +/* 0882AC 7F05377C 2605007C */ addiu $a1, $s0, 0x7c +/* 0882B0 7F053780 920B007C */ lbu $t3, 0x7c($s0) +/* 0882B4 7F053784 920C007D */ lbu $t4, 0x7d($s0) +/* 0882B8 7F053788 920D007E */ lbu $t5, 0x7e($s0) +/* 0882BC 7F05378C 920E007F */ lbu $t6, 0x7f($s0) +/* 0882C0 7F053790 A20B0078 */ sb $t3, 0x78($s0) +/* 0882C4 7F053794 A20C0079 */ sb $t4, 0x79($s0) +/* 0882C8 7F053798 A20D007A */ sb $t5, 0x7a($s0) +/* 0882CC 7F05379C A20E007B */ sb $t6, 0x7b($s0) +/* 0882D0 7F0537A0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0882D4 7F0537A4 02201025 */ move $v0, $s1 +/* 0882D8 7F0537A8 8FB10018 */ lw $s1, 0x18($sp) +/* 0882DC 7F0537AC 8FB00014 */ lw $s0, 0x14($sp) +/* 0882E0 7F0537B0 03E00008 */ jr $ra +/* 0882E4 7F0537B4 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0537B8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0537B8 +/* 0882E8 7F0537B8 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 0882EC 7F0537BC 44810000 */ mtc1 $at, $f0 +/* 0882F0 7F0537C0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0882F4 7F0537C4 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0882F8 7F0537C8 4600603E */ c.le.s $f12, $f0 +/* 0882FC 7F0537CC AFA60028 */ sw $a2, 0x28($sp) +/* 088300 7F0537D0 46006506 */ mov.s $f20, $f12 +/* 088304 7F0537D4 AFBF001C */ sw $ra, 0x1c($sp) +/* 088308 7F0537D8 45000003 */ bc1f .L7F0537E8 +/* 08830C 7F0537DC C7A40028 */ lwc1 $f4, 0x28($sp) +/* 088310 7F0537E0 10000027 */ b .L7F053880 +/* 088314 7F0537E4 24037FFF */ li $v1, 32767 +.L7F0537E8: +/* 088318 7F0537E8 4614203E */ c.le.s $f4, $f20 +/* 08831C 7F0537EC 00000000 */ nop +/* 088320 7F0537F0 45020004 */ bc1fl .L7F053804 +/* 088324 7F0537F4 4614703E */ c.le.s $f14, $f20 +/* 088328 7F0537F8 10000021 */ b .L7F053880 +/* 08832C 7F0537FC 00001825 */ move $v1, $zero +/* 088330 7F053800 4614703E */ c.le.s $f14, $f20 +.L7F053804: +/* 088334 7F053804 C7A60028 */ lwc1 $f6, 0x28($sp) +/* 088338 7F053808 3C018005 */ lui $at, %hi(D_80053340) +/* 08833C 7F05380C 4502000B */ bc1fl .L7F05383C +/* 088340 7F053810 4600A301 */ sub.s $f12, $f20, $f0 +/* 088344 7F053814 46143201 */ sub.s $f8, $f6, $f20 +/* 088348 7F053818 C42A3340 */ lwc1 $f10, %lo(D_80053340)($at) +/* 08834C 7F05381C 460E3481 */ sub.s $f18, $f6, $f14 +/* 088350 7F053820 460A4402 */ mul.s $f16, $f8, $f10 +/* 088354 7F053824 46128103 */ div.s $f4, $f16, $f18 +/* 088358 7F053828 4600220D */ trunc.w.s $f8, $f4 +/* 08835C 7F05382C 44034000 */ mfc1 $v1, $f8 +/* 088360 7F053830 10000014 */ b .L7F053884 +/* 088364 7F053834 8FBF001C */ lw $ra, 0x1c($sp) +/* 088368 7F053838 4600A301 */ sub.s $f12, $f20, $f0 +.L7F05383C: +/* 08836C 7F05383C 0C007DF8 */ jal sqrtf +/* 088370 7F053840 E7AE0024 */ swc1 $f14, 0x24($sp) +/* 088374 7F053844 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 088378 7F053848 44815000 */ mtc1 $at, $f10 +/* 08837C 7F05384C C7AE0024 */ lwc1 $f14, 0x24($sp) +/* 088380 7F053850 46000506 */ mov.s $f20, $f0 +/* 088384 7F053854 0C007DF8 */ jal sqrtf +/* 088388 7F053858 460A7301 */ sub.s $f12, $f14, $f10 +/* 08838C 7F05385C 3C018005 */ lui $at, %hi(D_80053344) +/* 088390 7F053860 C4263344 */ lwc1 $f6, %lo(D_80053344)($at) +/* 088394 7F053864 24197FFF */ li $t9, 32767 +/* 088398 7F053868 4606A402 */ mul.s $f16, $f20, $f6 +/* 08839C 7F05386C 46008483 */ div.s $f18, $f16, $f0 +/* 0883A0 7F053870 4600910D */ trunc.w.s $f4, $f18 +/* 0883A4 7F053874 44182000 */ mfc1 $t8, $f4 +/* 0883A8 7F053878 00000000 */ nop +/* 0883AC 7F05387C 03381823 */ subu $v1, $t9, $t8 +.L7F053880: +/* 0883B0 7F053880 8FBF001C */ lw $ra, 0x1c($sp) +.L7F053884: +/* 0883B4 7F053884 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0883B8 7F053888 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0883BC 7F05388C 03E00008 */ jr $ra +/* 0883C0 7F053890 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F053894(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F053894 +/* 0883C4 7F053894 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0883C8 7F053898 AFBF002C */ sw $ra, 0x2c($sp) +/* 0883CC 7F05389C AFB10020 */ sw $s1, 0x20($sp) +/* 0883D0 7F0538A0 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0883D4 7F0538A4 AFA60038 */ sw $a2, 0x38($sp) +/* 0883D8 7F0538A8 00808825 */ move $s1, $a0 +/* 0883DC 7F0538AC AFB30028 */ sw $s3, 0x28($sp) +/* 0883E0 7F0538B0 AFB20024 */ sw $s2, 0x24($sp) +/* 0883E4 7F0538B4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0883E8 7F0538B8 AFA50034 */ sw $a1, 0x34($sp) +/* 0883EC 7F0538BC 0FC26919 */ jal get_num_players +/* 0883F0 7F0538C0 C7B40038 */ lwc1 $f20, 0x38($sp) +/* 0883F4 7F0538C4 1840001D */ blez $v0, .L7F05393C +/* 0883F8 7F0538C8 3C0E8008 */ lui $t6, %hi(ptr_BONDdata_p1) +/* 0883FC 7F0538CC 25D09EE0 */ addiu $s0, $t6, %lo(ptr_BONDdata_p1) +/* 088400 7F0538D0 00027880 */ sll $t7, $v0, 2 +/* 088404 7F0538D4 01F09021 */ addu $s2, $t7, $s0 +/* 088408 7F0538D8 8E180000 */ lw $t8, ($s0) +.L7F0538DC: +/* 08840C 7F0538DC C6260000 */ lwc1 $f6, ($s1) +/* 088410 7F0538E0 C62A0004 */ lwc1 $f10, 4($s1) +/* 088414 7F0538E4 8F0200A8 */ lw $v0, 0xa8($t8) +/* 088418 7F0538E8 C6320008 */ lwc1 $f18, 8($s1) +/* 08841C 7F0538EC C4440008 */ lwc1 $f4, 8($v0) +/* 088420 7F0538F0 C448000C */ lwc1 $f8, 0xc($v0) +/* 088424 7F0538F4 C4500010 */ lwc1 $f16, 0x10($v0) +/* 088428 7F0538F8 46062001 */ sub.s $f0, $f4, $f6 +/* 08842C 7F0538FC 460A4081 */ sub.s $f2, $f8, $f10 +/* 088430 7F053900 46000102 */ mul.s $f4, $f0, $f0 +/* 088434 7F053904 46128381 */ sub.s $f14, $f16, $f18 +/* 088438 7F053908 46021182 */ mul.s $f6, $f2, $f2 +/* 08843C 7F05390C 46062200 */ add.s $f8, $f4, $f6 +/* 088440 7F053910 460E7282 */ mul.s $f10, $f14, $f14 +/* 088444 7F053914 0C007DF8 */ jal sqrtf +/* 088448 7F053918 460A4300 */ add.s $f12, $f8, $f10 +/* 08844C 7F05391C 4614003C */ c.lt.s $f0, $f20 +/* 088450 7F053920 26100004 */ addiu $s0, $s0, 4 +/* 088454 7F053924 0212082B */ sltu $at, $s0, $s2 +/* 088458 7F053928 45000002 */ bc1f .L7F053934 +/* 08845C 7F05392C 00000000 */ nop +/* 088460 7F053930 46000506 */ mov.s $f20, $f0 +.L7F053934: +/* 088464 7F053934 5420FFE9 */ bnezl $at, .L7F0538DC +/* 088468 7F053938 8E180000 */ lw $t8, ($s0) +.L7F05393C: +/* 08846C 7F05393C 4600A306 */ mov.s $f12, $f20 +/* 088470 7F053940 C7AE0034 */ lwc1 $f14, 0x34($sp) +/* 088474 7F053944 0FC14DEE */ jal sub_GAME_7F0537B8 +/* 088478 7F053948 8FA60038 */ lw $a2, 0x38($sp) +/* 08847C 7F05394C 8FBF002C */ lw $ra, 0x2c($sp) +/* 088480 7F053950 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 088484 7F053954 8FB0001C */ lw $s0, 0x1c($sp) +/* 088488 7F053958 8FB10020 */ lw $s1, 0x20($sp) +/* 08848C 7F05395C 8FB20024 */ lw $s2, 0x24($sp) +/* 088490 7F053960 8FB30028 */ lw $s3, 0x28($sp) +/* 088494 7F053964 03E00008 */ jr $ra +/* 088498 7F053968 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05396C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05396C +/* 08849C 7F05396C 44866000 */ mtc1 $a2, $f12 +/* 0884A0 7F053970 44877000 */ mtc1 $a3, $f14 +/* 0884A4 7F053974 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0884A8 7F053978 AFA40018 */ sw $a0, 0x18($sp) +/* 0884AC 7F05397C AFA5001C */ sw $a1, 0x1c($sp) +/* 0884B0 7F053980 00A02025 */ move $a0, $a1 +/* 0884B4 7F053984 AFBF0014 */ sw $ra, 0x14($sp) +/* 0884B8 7F053988 44056000 */ mfc1 $a1, $f12 +/* 0884BC 7F05398C 44067000 */ mfc1 $a2, $f14 +/* 0884C0 7F053990 0FC14E25 */ jal sub_GAME_7F053894 +/* 0884C4 7F053994 00000000 */ nop +/* 0884C8 7F053998 8FA40018 */ lw $a0, 0x18($sp) +/* 0884CC 7F05399C 24050008 */ li $a1, 8 +/* 0884D0 7F0539A0 0C002461 */ jal sfx_c_70009184 +/* 0884D4 7F0539A4 00403025 */ move $a2, $v0 +/* 0884D8 7F0539A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0884DC 7F0539AC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0884E0 7F0539B0 03E00008 */ jr $ra +/* 0884E4 7F0539B4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0539B8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0539B8 +/* 0884E8 7F0539B8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0884EC 7F0539BC AFBF0014 */ sw $ra, 0x14($sp) +/* 0884F0 7F0539C0 3C018005 */ lui $at, %hi(D_80053348) +/* 0884F4 7F0539C4 3C0645BB */ lui $a2, (0x45BB8000 >> 16) # lui $a2, 0x45bb +/* 0884F8 7F0539C8 34C68000 */ ori $a2, (0x45BB8000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 0884FC 7F0539CC 0FC14DEE */ jal sub_GAME_7F0537B8 +/* 088500 7F0539D0 C42E3348 */ lwc1 $f14, %lo(D_80053348)($at) +/* 088504 7F0539D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 088508 7F0539D8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08850C 7F0539DC 03E00008 */ jr $ra +/* 088510 7F0539E0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0539E4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0539E4 +/* 088514 7F0539E4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 088518 7F0539E8 AFBF0014 */ sw $ra, 0x14($sp) +/* 08851C 7F0539EC 3C05459C */ lui $a1, (0x459C4000 >> 16) # lui $a1, 0x459c +/* 088520 7F0539F0 3C0645BB */ lui $a2, (0x45BB8000 >> 16) # lui $a2, 0x45bb +/* 088524 7F0539F4 34C68000 */ ori $a2, (0x45BB8000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 088528 7F0539F8 0FC14E25 */ jal sub_GAME_7F053894 +/* 08852C 7F0539FC 34A54000 */ ori $a1, (0x459C4000 & 0xFFFF) # ori $a1, $a1, 0x4000 +/* 088530 7F053A00 8FBF0014 */ lw $ra, 0x14($sp) +/* 088534 7F053A04 27BD0018 */ addiu $sp, $sp, 0x18 +/* 088538 7F053A08 03E00008 */ jr $ra +/* 08853C 7F053A0C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F053A10(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F053A10 +/* 088540 7F053A10 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 088544 7F053A14 AFBF0014 */ sw $ra, 0x14($sp) +/* 088548 7F053A18 3C06459C */ lui $a2, (0x459C4000 >> 16) # lui $a2, 0x459c +/* 08854C 7F053A1C 3C0745BB */ lui $a3, (0x45BB8000 >> 16) # lui $a3, 0x45bb +/* 088550 7F053A20 34E78000 */ ori $a3, (0x45BB8000 & 0xFFFF) # ori $a3, $a3, 0x8000 +/* 088554 7F053A24 0FC14E5B */ jal sub_GAME_7F05396C +/* 088558 7F053A28 34C64000 */ ori $a2, (0x459C4000 & 0xFFFF) # ori $a2, $a2, 0x4000 +/* 08855C 7F053A2C 8FBF0014 */ lw $ra, 0x14($sp) +/* 088560 7F053A30 27BD0018 */ addiu $sp, $sp, 0x18 +/* 088564 7F053A34 03E00008 */ jr $ra +/* 088568 7F053A38 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F053A3C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F053A3C +/* 08856C 7F053A3C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 088570 7F053A40 AFBF0014 */ sw $ra, 0x14($sp) +/* 088574 7F053A44 AFA40028 */ sw $a0, 0x28($sp) +/* 088578 7F053A48 8C8500F4 */ lw $a1, 0xf4($a0) +/* 08857C 7F053A4C 0005182B */ sltu $v1, $zero, $a1 +/* 088580 7F053A50 50600005 */ beql $v1, $zero, .L7F053A68 +/* 088584 7F053A54 8FAF0028 */ lw $t7, 0x28($sp) +/* 088588 7F053A58 0C00237C */ jal sfxGetArg0Unk3F +/* 08858C 7F053A5C 00A02025 */ move $a0, $a1 +/* 088590 7F053A60 0002182B */ sltu $v1, $zero, $v0 +/* 088594 7F053A64 8FAF0028 */ lw $t7, 0x28($sp) +.L7F053A68: +/* 088598 7F053A68 AFA30024 */ sw $v1, 0x24($sp) +/* 08859C 7F053A6C 8DE400F8 */ lw $a0, 0xf8($t7) +/* 0885A0 7F053A70 0004182B */ sltu $v1, $zero, $a0 +/* 0885A4 7F053A74 50600005 */ beql $v1, $zero, .L7F053A8C +/* 0885A8 7F053A78 8FB80024 */ lw $t8, 0x24($sp) +/* 0885AC 7F053A7C 0C00237C */ jal sfxGetArg0Unk3F +/* 0885B0 7F053A80 00000000 */ nop +/* 0885B4 7F053A84 0002182B */ sltu $v1, $zero, $v0 +/* 0885B8 7F053A88 8FB80024 */ lw $t8, 0x24($sp) +.L7F053A8C: +/* 0885BC 7F053A8C 8FB90028 */ lw $t9, 0x28($sp) +/* 0885C0 7F053A90 57000004 */ bnezl $t8, .L7F053AA4 +/* 0885C4 7F053A94 8F240010 */ lw $a0, 0x10($t9) +/* 0885C8 7F053A98 5060001A */ beql $v1, $zero, .L7F053B04 +/* 0885CC 7F053A9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0885D0 7F053AA0 8F240010 */ lw $a0, 0x10($t9) +.L7F053AA4: +/* 0885D4 7F053AA4 AFA30018 */ sw $v1, 0x18($sp) +/* 0885D8 7F053AA8 0FC14E79 */ jal sub_GAME_7F0539E4 +/* 0885DC 7F053AAC 24840008 */ addiu $a0, $a0, 8 +/* 0885E0 7F053AB0 0FC2FF01 */ jal get_controls_locked_flag +/* 0885E4 7F053AB4 AFA2001C */ sw $v0, 0x1c($sp) +/* 0885E8 7F053AB8 10400002 */ beqz $v0, .L7F053AC4 +/* 0885EC 7F053ABC 8FA30018 */ lw $v1, 0x18($sp) +/* 0885F0 7F053AC0 AFA0001C */ sw $zero, 0x1c($sp) +.L7F053AC4: +/* 0885F4 7F053AC4 8FA80024 */ lw $t0, 0x24($sp) +/* 0885F8 7F053AC8 8FA90028 */ lw $t1, 0x28($sp) +/* 0885FC 7F053ACC 24050008 */ li $a1, 8 +/* 088600 7F053AD0 11000005 */ beqz $t0, .L7F053AE8 +/* 088604 7F053AD4 8FA6001C */ lw $a2, 0x1c($sp) +/* 088608 7F053AD8 8D2400F4 */ lw $a0, 0xf4($t1) +/* 08860C 7F053ADC 0C002461 */ jal sfx_c_70009184 +/* 088610 7F053AE0 AFA30018 */ sw $v1, 0x18($sp) +/* 088614 7F053AE4 8FA30018 */ lw $v1, 0x18($sp) +.L7F053AE8: +/* 088618 7F053AE8 10600005 */ beqz $v1, .L7F053B00 +/* 08861C 7F053AEC 8FAA0028 */ lw $t2, 0x28($sp) +/* 088620 7F053AF0 8D4400F8 */ lw $a0, 0xf8($t2) +/* 088624 7F053AF4 24050008 */ li $a1, 8 +/* 088628 7F053AF8 0C002461 */ jal sfx_c_70009184 +/* 08862C 7F053AFC 8FA6001C */ lw $a2, 0x1c($sp) +.L7F053B00: +/* 088630 7F053B00 8FBF0014 */ lw $ra, 0x14($sp) +.L7F053B04: +/* 088634 7F053B04 27BD0028 */ addiu $sp, $sp, 0x28 +/* 088638 7F053B08 03E00008 */ jr $ra +/* 08863C 7F053B0C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F053B10(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F053B10 +/* 088640 7F053B10 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 088644 7F053B14 AFBF0014 */ sw $ra, 0x14($sp) +/* 088648 7F053B18 AFA40018 */ sw $a0, 0x18($sp) +/* 08864C 7F053B1C 8C8500F4 */ lw $a1, 0xf4($a0) +/* 088650 7F053B20 50A00008 */ beql $a1, $zero, .L7F053B44 +/* 088654 7F053B24 8FB80018 */ lw $t8, 0x18($sp) +/* 088658 7F053B28 0C00237C */ jal sfxGetArg0Unk3F +/* 08865C 7F053B2C 00A02025 */ move $a0, $a1 +/* 088660 7F053B30 10400003 */ beqz $v0, .L7F053B40 +/* 088664 7F053B34 8FAF0018 */ lw $t7, 0x18($sp) +/* 088668 7F053B38 0C002408 */ jal sfxDeactivate +/* 08866C 7F053B3C 8DE400F4 */ lw $a0, 0xf4($t7) +.L7F053B40: +/* 088670 7F053B40 8FB80018 */ lw $t8, 0x18($sp) +.L7F053B44: +/* 088674 7F053B44 8F0400F8 */ lw $a0, 0xf8($t8) +/* 088678 7F053B48 50800008 */ beql $a0, $zero, .L7F053B6C +/* 08867C 7F053B4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 088680 7F053B50 0C00237C */ jal sfxGetArg0Unk3F +/* 088684 7F053B54 00000000 */ nop +/* 088688 7F053B58 10400003 */ beqz $v0, .L7F053B68 +/* 08868C 7F053B5C 8FB90018 */ lw $t9, 0x18($sp) +/* 088690 7F053B60 0C002408 */ jal sfxDeactivate +/* 088694 7F053B64 8F2400F8 */ lw $a0, 0xf8($t9) +.L7F053B68: +/* 088698 7F053B68 8FBF0014 */ lw $ra, 0x14($sp) +.L7F053B6C: +/* 08869C 7F053B6C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0886A0 7F053B70 03E00008 */ jr $ra +/* 0886A4 7F053B74 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void play_door_opening_soundeffect_0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005334C*/ +glabel door_opening_sound_table_0 +.word .L7F053BEC +.word .L7F053C2C +.word .L7F053C6C +.word .L7F053CAC +.word .L7F053CEC +.word .L7F053D08 +.word .L7F053D24 +.word .L7F053D64 +.word .L7F053DA4 +.word .L7F053DC4 +.word .L7F053DE0 +.word .L7F053DFC +.word .L7F053E18 +.word .L7F053E58 +.word .L7F053E78 +.word .L7F053E98 +.word .L7F053EB4 + +.text +glabel play_door_opening_soundeffect_0 +/* 0886A8 7F053B78 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0886AC 7F053B7C AFBF0014 */ sw $ra, 0x14($sp) +/* 0886B0 7F053B80 AFA40020 */ sw $a0, 0x20($sp) +/* 0886B4 7F053B84 AFA0001C */ sw $zero, 0x1c($sp) +/* 0886B8 7F053B88 0FC14EC4 */ jal sub_GAME_7F053B10 +/* 0886BC 7F053B8C AFA00018 */ sw $zero, 0x18($sp) +/* 0886C0 7F053B90 8FAE0020 */ lw $t6, 0x20($sp) +/* 0886C4 7F053B94 8FA70018 */ lw $a3, 0x18($sp) +/* 0886C8 7F053B98 8FB80020 */ lw $t8, 0x20($sp) +/* 0886CC 7F053B9C 8DCF00F4 */ lw $t7, 0xf4($t6) +/* 0886D0 7F053BA0 8FA80020 */ lw $t0, 0x20($sp) +/* 0886D4 7F053BA4 55E00004 */ bnezl $t7, .L7F053BB8 +/* 0886D8 7F053BA8 8F1900F8 */ lw $t9, 0xf8($t8) +/* 0886DC 7F053BAC 10000005 */ b .L7F053BC4 +/* 0886E0 7F053BB0 25C700F4 */ addiu $a3, $t6, 0xf4 +/* 0886E4 7F053BB4 8F1900F8 */ lw $t9, 0xf8($t8) +.L7F053BB8: +/* 0886E8 7F053BB8 57200003 */ bnezl $t9, .L7F053BC8 +/* 0886EC 7F053BBC 8D0900A4 */ lw $t1, 0xa4($t0) +/* 0886F0 7F053BC0 270700F8 */ addiu $a3, $t8, 0xf8 +.L7F053BC4: +/* 0886F4 7F053BC4 8D0900A4 */ lw $t1, 0xa4($t0) +.L7F053BC8: +/* 0886F8 7F053BC8 252AFFFF */ addiu $t2, $t1, -1 +/* 0886FC 7F053BCC 2D410011 */ sltiu $at, $t2, 0x11 +/* 088700 7F053BD0 102000D6 */ beqz $at, .L7F053F2C +/* 088704 7F053BD4 000A5080 */ sll $t2, $t2, 2 +/* 088708 7F053BD8 3C018005 */ lui $at, %hi(door_opening_sound_table_0) +/* 08870C 7F053BDC 002A0821 */ addu $at, $at, $t2 +/* 088710 7F053BE0 8C2A334C */ lw $t2, %lo(door_opening_sound_table_0)($at) +/* 088714 7F053BE4 01400008 */ jr $t2 +/* 088718 7F053BE8 00000000 */ nop +.L7F053BEC: +/* 08871C 7F053BEC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088720 7F053BF0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088724 7F053BF4 240500D2 */ li $a1, 210 +/* 088728 7F053BF8 00003025 */ move $a2, $zero +/* 08872C 7F053BFC 0C002382 */ jal play_sfx_a1 +/* 088730 7F053C00 AFA70018 */ sw $a3, 0x18($sp) +/* 088734 7F053C04 8FA70018 */ lw $a3, 0x18($sp) +/* 088738 7F053C08 AFA2001C */ sw $v0, 0x1c($sp) +/* 08873C 7F053C0C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088740 7F053C10 10E000C6 */ beqz $a3, .L7F053F2C +/* 088744 7F053C14 240500D3 */ li $a1, 211 +/* 088748 7F053C18 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08874C 7F053C1C 0C002382 */ jal play_sfx_a1 +/* 088750 7F053C20 00E03025 */ move $a2, $a3 +/* 088754 7F053C24 100000C2 */ b .L7F053F30 +/* 088758 7F053C28 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053C2C: +/* 08875C 7F053C2C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088760 7F053C30 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088764 7F053C34 240500D2 */ li $a1, 210 +/* 088768 7F053C38 00003025 */ move $a2, $zero +/* 08876C 7F053C3C 0C002382 */ jal play_sfx_a1 +/* 088770 7F053C40 AFA70018 */ sw $a3, 0x18($sp) +/* 088774 7F053C44 8FA70018 */ lw $a3, 0x18($sp) +/* 088778 7F053C48 AFA2001C */ sw $v0, 0x1c($sp) +/* 08877C 7F053C4C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088780 7F053C50 10E000B6 */ beqz $a3, .L7F053F2C +/* 088784 7F053C54 24050007 */ li $a1, 7 +/* 088788 7F053C58 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08878C 7F053C5C 0C002382 */ jal play_sfx_a1 +/* 088790 7F053C60 00E03025 */ move $a2, $a3 +/* 088794 7F053C64 100000B2 */ b .L7F053F30 +/* 088798 7F053C68 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053C6C: +/* 08879C 7F053C6C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0887A0 7F053C70 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0887A4 7F053C74 240500CA */ li $a1, 202 +/* 0887A8 7F053C78 00003025 */ move $a2, $zero +/* 0887AC 7F053C7C 0C002382 */ jal play_sfx_a1 +/* 0887B0 7F053C80 AFA70018 */ sw $a3, 0x18($sp) +/* 0887B4 7F053C84 8FA70018 */ lw $a3, 0x18($sp) +/* 0887B8 7F053C88 AFA2001C */ sw $v0, 0x1c($sp) +/* 0887BC 7F053C8C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0887C0 7F053C90 10E000A6 */ beqz $a3, .L7F053F2C +/* 0887C4 7F053C94 240500CC */ li $a1, 204 +/* 0887C8 7F053C98 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0887CC 7F053C9C 0C002382 */ jal play_sfx_a1 +/* 0887D0 7F053CA0 00E03025 */ move $a2, $a3 +/* 0887D4 7F053CA4 100000A2 */ b .L7F053F30 +/* 0887D8 7F053CA8 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053CAC: +/* 0887DC 7F053CAC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0887E0 7F053CB0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0887E4 7F053CB4 240500D6 */ li $a1, 214 +/* 0887E8 7F053CB8 00003025 */ move $a2, $zero +/* 0887EC 7F053CBC 0C002382 */ jal play_sfx_a1 +/* 0887F0 7F053CC0 AFA70018 */ sw $a3, 0x18($sp) +/* 0887F4 7F053CC4 8FA70018 */ lw $a3, 0x18($sp) +/* 0887F8 7F053CC8 AFA2001C */ sw $v0, 0x1c($sp) +/* 0887FC 7F053CCC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088800 7F053CD0 10E00096 */ beqz $a3, .L7F053F2C +/* 088804 7F053CD4 240500D8 */ li $a1, 216 +/* 088808 7F053CD8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08880C 7F053CDC 0C002382 */ jal play_sfx_a1 +/* 088810 7F053CE0 00E03025 */ move $a2, $a3 +/* 088814 7F053CE4 10000092 */ b .L7F053F30 +/* 088818 7F053CE8 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053CEC: +/* 08881C 7F053CEC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088820 7F053CF0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088824 7F053CF4 240500BC */ li $a1, 188 +/* 088828 7F053CF8 0C002382 */ jal play_sfx_a1 +/* 08882C 7F053CFC 00003025 */ move $a2, $zero +/* 088830 7F053D00 1000008A */ b .L7F053F2C +/* 088834 7F053D04 AFA2001C */ sw $v0, 0x1c($sp) +.L7F053D08: +/* 088838 7F053D08 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 08883C 7F053D0C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088840 7F053D10 24050007 */ li $a1, 7 +/* 088844 7F053D14 0C002382 */ jal play_sfx_a1 +/* 088848 7F053D18 00003025 */ move $a2, $zero +/* 08884C 7F053D1C 10000083 */ b .L7F053F2C +/* 088850 7F053D20 AFA2001C */ sw $v0, 0x1c($sp) +.L7F053D24: +/* 088854 7F053D24 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088858 7F053D28 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08885C 7F053D2C 240500C0 */ li $a1, 192 +/* 088860 7F053D30 00003025 */ move $a2, $zero +/* 088864 7F053D34 0C002382 */ jal play_sfx_a1 +/* 088868 7F053D38 AFA70018 */ sw $a3, 0x18($sp) +/* 08886C 7F053D3C 8FA70018 */ lw $a3, 0x18($sp) +/* 088870 7F053D40 AFA2001C */ sw $v0, 0x1c($sp) +/* 088874 7F053D44 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088878 7F053D48 10E00078 */ beqz $a3, .L7F053F2C +/* 08887C 7F053D4C 240500BF */ li $a1, 191 +/* 088880 7F053D50 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088884 7F053D54 0C002382 */ jal play_sfx_a1 +/* 088888 7F053D58 00E03025 */ move $a2, $a3 +/* 08888C 7F053D5C 10000074 */ b .L7F053F30 +/* 088890 7F053D60 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053D64: +/* 088894 7F053D64 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088898 7F053D68 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08889C 7F053D6C 240500BC */ li $a1, 188 +/* 0888A0 7F053D70 00003025 */ move $a2, $zero +/* 0888A4 7F053D74 0C002382 */ jal play_sfx_a1 +/* 0888A8 7F053D78 AFA70018 */ sw $a3, 0x18($sp) +/* 0888AC 7F053D7C 8FA70018 */ lw $a3, 0x18($sp) +/* 0888B0 7F053D80 AFA2001C */ sw $v0, 0x1c($sp) +/* 0888B4 7F053D84 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0888B8 7F053D88 10E00068 */ beqz $a3, .L7F053F2C +/* 0888BC 7F053D8C 24050007 */ li $a1, 7 +/* 0888C0 7F053D90 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0888C4 7F053D94 0C002382 */ jal play_sfx_a1 +/* 0888C8 7F053D98 00E03025 */ move $a2, $a3 +/* 0888CC 7F053D9C 10000064 */ b .L7F053F30 +/* 0888D0 7F053DA0 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053DA4: +/* 0888D4 7F053DA4 10E00061 */ beqz $a3, .L7F053F2C +/* 0888D8 7F053DA8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0888DC 7F053DAC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0888E0 7F053DB0 240500C2 */ li $a1, 194 +/* 0888E4 7F053DB4 0C002382 */ jal play_sfx_a1 +/* 0888E8 7F053DB8 00E03025 */ move $a2, $a3 +/* 0888EC 7F053DBC 1000005C */ b .L7F053F30 +/* 0888F0 7F053DC0 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053DC4: +/* 0888F4 7F053DC4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0888F8 7F053DC8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0888FC 7F053DCC 240500C4 */ li $a1, 196 +/* 088900 7F053DD0 0C002382 */ jal play_sfx_a1 +/* 088904 7F053DD4 00003025 */ move $a2, $zero +/* 088908 7F053DD8 10000054 */ b .L7F053F2C +/* 08890C 7F053DDC AFA2001C */ sw $v0, 0x1c($sp) +.L7F053DE0: +/* 088910 7F053DE0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088914 7F053DE4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088918 7F053DE8 24050007 */ li $a1, 7 +/* 08891C 7F053DEC 0C002382 */ jal play_sfx_a1 +/* 088920 7F053DF0 00003025 */ move $a2, $zero +/* 088924 7F053DF4 1000004D */ b .L7F053F2C +/* 088928 7F053DF8 AFA2001C */ sw $v0, 0x1c($sp) +.L7F053DFC: +/* 08892C 7F053DFC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088930 7F053E00 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088934 7F053E04 240500C8 */ li $a1, 200 +/* 088938 7F053E08 0C002382 */ jal play_sfx_a1 +/* 08893C 7F053E0C 00003025 */ move $a2, $zero +/* 088940 7F053E10 10000046 */ b .L7F053F2C +/* 088944 7F053E14 AFA2001C */ sw $v0, 0x1c($sp) +.L7F053E18: +/* 088948 7F053E18 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 08894C 7F053E1C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088950 7F053E20 24050007 */ li $a1, 7 +/* 088954 7F053E24 00003025 */ move $a2, $zero +/* 088958 7F053E28 0C002382 */ jal play_sfx_a1 +/* 08895C 7F053E2C AFA70018 */ sw $a3, 0x18($sp) +/* 088960 7F053E30 8FA70018 */ lw $a3, 0x18($sp) +/* 088964 7F053E34 AFA2001C */ sw $v0, 0x1c($sp) +/* 088968 7F053E38 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 08896C 7F053E3C 10E0003B */ beqz $a3, .L7F053F2C +/* 088970 7F053E40 24050007 */ li $a1, 7 +/* 088974 7F053E44 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088978 7F053E48 0C002382 */ jal play_sfx_a1 +/* 08897C 7F053E4C 00E03025 */ move $a2, $a3 +/* 088980 7F053E50 10000037 */ b .L7F053F30 +/* 088984 7F053E54 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053E58: +/* 088988 7F053E58 10E00034 */ beqz $a3, .L7F053F2C +/* 08898C 7F053E5C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088990 7F053E60 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088994 7F053E64 240500DA */ li $a1, 218 +/* 088998 7F053E68 0C002382 */ jal play_sfx_a1 +/* 08899C 7F053E6C 00E03025 */ move $a2, $a3 +/* 0889A0 7F053E70 1000002F */ b .L7F053F30 +/* 0889A4 7F053E74 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053E78: +/* 0889A8 7F053E78 10E0002C */ beqz $a3, .L7F053F2C +/* 0889AC 7F053E7C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0889B0 7F053E80 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0889B4 7F053E84 240500E1 */ li $a1, 225 +/* 0889B8 7F053E88 0C002382 */ jal play_sfx_a1 +/* 0889BC 7F053E8C 00E03025 */ move $a2, $a3 +/* 0889C0 7F053E90 10000027 */ b .L7F053F30 +/* 0889C4 7F053E94 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053E98: +/* 0889C8 7F053E98 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0889CC 7F053E9C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0889D0 7F053EA0 240500D6 */ li $a1, 214 +/* 0889D4 7F053EA4 0C002382 */ jal play_sfx_a1 +/* 0889D8 7F053EA8 00003025 */ move $a2, $zero +/* 0889DC 7F053EAC 1000001F */ b .L7F053F2C +/* 0889E0 7F053EB0 AFA2001C */ sw $v0, 0x1c($sp) +.L7F053EB4: +/* 0889E4 7F053EB4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0889E8 7F053EB8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0889EC 7F053EBC 24050007 */ li $a1, 7 +/* 0889F0 7F053EC0 00003025 */ move $a2, $zero +/* 0889F4 7F053EC4 0C002382 */ jal play_sfx_a1 +/* 0889F8 7F053EC8 AFA70018 */ sw $a3, 0x18($sp) +/* 0889FC 7F053ECC 8FA70018 */ lw $a3, 0x18($sp) +/* 088A00 7F053ED0 10400008 */ beqz $v0, .L7F053EF4 +/* 088A04 7F053ED4 AFA2001C */ sw $v0, 0x1c($sp) +/* 088A08 7F053ED8 8FAB0020 */ lw $t3, 0x20($sp) +/* 088A0C 7F053EDC 00402025 */ move $a0, $v0 +/* 088A10 7F053EE0 8D650010 */ lw $a1, 0x10($t3) +/* 088A14 7F053EE4 AFA70018 */ sw $a3, 0x18($sp) +/* 088A18 7F053EE8 0FC14E84 */ jal sub_GAME_7F053A10 +/* 088A1C 7F053EEC 24A50008 */ addiu $a1, $a1, 8 +/* 088A20 7F053EF0 8FA70018 */ lw $a3, 0x18($sp) +.L7F053EF4: +/* 088A24 7F053EF4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088A28 7F053EF8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088A2C 7F053EFC 240500CA */ li $a1, 202 +/* 088A30 7F053F00 00003025 */ move $a2, $zero +/* 088A34 7F053F04 0C002382 */ jal play_sfx_a1 +/* 088A38 7F053F08 AFA70018 */ sw $a3, 0x18($sp) +/* 088A3C 7F053F0C 8FA70018 */ lw $a3, 0x18($sp) +/* 088A40 7F053F10 AFA2001C */ sw $v0, 0x1c($sp) +/* 088A44 7F053F14 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088A48 7F053F18 10E00004 */ beqz $a3, .L7F053F2C +/* 088A4C 7F053F1C 240500CC */ li $a1, 204 +/* 088A50 7F053F20 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088A54 7F053F24 0C002382 */ jal play_sfx_a1 +/* 088A58 7F053F28 00E03025 */ move $a2, $a3 +def_7F053BE4: +.L7F053F2C: +/* 088A5C 7F053F2C 8FAC001C */ lw $t4, 0x1c($sp) +.L7F053F30: +/* 088A60 7F053F30 8FAD0020 */ lw $t5, 0x20($sp) +/* 088A64 7F053F34 11800005 */ beqz $t4, .L7F053F4C +/* 088A68 7F053F38 00000000 */ nop +/* 088A6C 7F053F3C 8DA50010 */ lw $a1, 0x10($t5) +/* 088A70 7F053F40 01802025 */ move $a0, $t4 +/* 088A74 7F053F44 0FC14E84 */ jal sub_GAME_7F053A10 +/* 088A78 7F053F48 24A50008 */ addiu $a1, $a1, 8 +.L7F053F4C: +/* 088A7C 7F053F4C 0FC14E8F */ jal sub_GAME_7F053A3C +/* 088A80 7F053F50 8FA40020 */ lw $a0, 0x20($sp) +/* 088A84 7F053F54 8FBF0014 */ lw $ra, 0x14($sp) +/* 088A88 7F053F58 27BD0020 */ addiu $sp, $sp, 0x20 +/* 088A8C 7F053F5C 03E00008 */ jr $ra +/* 088A90 7F053F60 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void play_door_opening_soundeffect_1(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80053390*/ +glabel door_opening_sound_table_1 +.word .L7F053FD8 +.word .L7F054018 +.word .L7F054058 +.word .L7F054098 +.word .L7F05428C +.word .L7F05428C +.word .L7F0540D8 +.word .L7F054118 +.word .L7F054158 +.word .L7F05428C +.word .L7F05428C +.word .L7F05428C +.word .L7F054178 +.word .L7F0541B8 +.word .L7F0541D8 +.word .L7F0541F8 +.word .L7F054214 +.text +glabel play_door_opening_soundeffect_1 +/* 088A94 7F053F64 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 088A98 7F053F68 AFBF0014 */ sw $ra, 0x14($sp) +/* 088A9C 7F053F6C AFA40020 */ sw $a0, 0x20($sp) +/* 088AA0 7F053F70 AFA0001C */ sw $zero, 0x1c($sp) +/* 088AA4 7F053F74 0FC14EC4 */ jal sub_GAME_7F053B10 +/* 088AA8 7F053F78 AFA00018 */ sw $zero, 0x18($sp) +/* 088AAC 7F053F7C 8FAE0020 */ lw $t6, 0x20($sp) +/* 088AB0 7F053F80 8FA70018 */ lw $a3, 0x18($sp) +/* 088AB4 7F053F84 8FB80020 */ lw $t8, 0x20($sp) +/* 088AB8 7F053F88 8DCF00F4 */ lw $t7, 0xf4($t6) +/* 088ABC 7F053F8C 8FA80020 */ lw $t0, 0x20($sp) +/* 088AC0 7F053F90 55E00004 */ bnezl $t7, .L7F053FA4 +/* 088AC4 7F053F94 8F1900F8 */ lw $t9, 0xf8($t8) +/* 088AC8 7F053F98 10000005 */ b .L7F053FB0 +/* 088ACC 7F053F9C 25C700F4 */ addiu $a3, $t6, 0xf4 +/* 088AD0 7F053FA0 8F1900F8 */ lw $t9, 0xf8($t8) +.L7F053FA4: +/* 088AD4 7F053FA4 57200003 */ bnezl $t9, .L7F053FB4 +/* 088AD8 7F053FA8 8D0900A4 */ lw $t1, 0xa4($t0) +/* 088ADC 7F053FAC 270700F8 */ addiu $a3, $t8, 0xf8 +.L7F053FB0: +/* 088AE0 7F053FB0 8D0900A4 */ lw $t1, 0xa4($t0) +.L7F053FB4: +/* 088AE4 7F053FB4 252AFFFF */ addiu $t2, $t1, -1 +/* 088AE8 7F053FB8 2D410011 */ sltiu $at, $t2, 0x11 +/* 088AEC 7F053FBC 102000B3 */ beqz $at, .L7F05428C +/* 088AF0 7F053FC0 000A5080 */ sll $t2, $t2, 2 +/* 088AF4 7F053FC4 3C018005 */ lui $at, %hi(door_opening_sound_table_1) +/* 088AF8 7F053FC8 002A0821 */ addu $at, $at, $t2 +/* 088AFC 7F053FCC 8C2A3390 */ lw $t2, %lo(door_opening_sound_table_1)($at) +.L7F053FD0: +/* 088B00 7F053FD0 01400008 */ jr $t2 +/* 088B04 7F053FD4 00000000 */ nop +.L7F053FD8: +/* 088B08 7F053FD8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088B0C 7F053FDC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088B10 7F053FE0 240500D2 */ li $a1, 210 +/* 088B14 7F053FE4 00003025 */ move $a2, $zero +/* 088B18 7F053FE8 0C002382 */ jal play_sfx_a1 +/* 088B1C 7F053FEC AFA70018 */ sw $a3, 0x18($sp) +/* 088B20 7F053FF0 8FA70018 */ lw $a3, 0x18($sp) +/* 088B24 7F053FF4 AFA2001C */ sw $v0, 0x1c($sp) +/* 088B28 7F053FF8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088B2C 7F053FFC 10E000A3 */ beqz $a3, .L7F05428C +/* 088B30 7F054000 240500D3 */ li $a1, 211 +/* 088B34 7F054004 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088B38 7F054008 0C002382 */ jal play_sfx_a1 +/* 088B3C 7F05400C 00E03025 */ move $a2, $a3 +/* 088B40 7F054010 1000009F */ b .L7F054290 +/* 088B44 7F054014 8FAC001C */ lw $t4, 0x1c($sp) +.L7F054018: +/* 088B48 7F054018 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088B4C 7F05401C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088B50 7F054020 240500D2 */ li $a1, 210 +/* 088B54 7F054024 00003025 */ move $a2, $zero +/* 088B58 7F054028 0C002382 */ jal play_sfx_a1 +/* 088B5C 7F05402C AFA70018 */ sw $a3, 0x18($sp) +/* 088B60 7F054030 8FA70018 */ lw $a3, 0x18($sp) +/* 088B64 7F054034 AFA2001C */ sw $v0, 0x1c($sp) +/* 088B68 7F054038 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088B6C 7F05403C 10E00093 */ beqz $a3, .L7F05428C +/* 088B70 7F054040 24050007 */ li $a1, 7 +/* 088B74 7F054044 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088B78 7F054048 0C002382 */ jal play_sfx_a1 +/* 088B7C 7F05404C 00E03025 */ move $a2, $a3 +/* 088B80 7F054050 1000008F */ b .L7F054290 +/* 088B84 7F054054 8FAC001C */ lw $t4, 0x1c($sp) +.L7F054058: +/* 088B88 7F054058 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088B8C 7F05405C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088B90 7F054060 240500CA */ li $a1, 202 +/* 088B94 7F054064 00003025 */ move $a2, $zero +/* 088B98 7F054068 0C002382 */ jal play_sfx_a1 +/* 088B9C 7F05406C AFA70018 */ sw $a3, 0x18($sp) +/* 088BA0 7F054070 8FA70018 */ lw $a3, 0x18($sp) +/* 088BA4 7F054074 AFA2001C */ sw $v0, 0x1c($sp) +/* 088BA8 7F054078 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088BAC 7F05407C 10E00083 */ beqz $a3, .L7F05428C +/* 088BB0 7F054080 240500CC */ li $a1, 204 +/* 088BB4 7F054084 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088BB8 7F054088 0C002382 */ jal play_sfx_a1 +/* 088BBC 7F05408C 00E03025 */ move $a2, $a3 +/* 088BC0 7F054090 1000007F */ b .L7F054290 +/* 088BC4 7F054094 8FAC001C */ lw $t4, 0x1c($sp) +.L7F054098: +/* 088BC8 7F054098 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088BCC 7F05409C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088BD0 7F0540A0 240500D6 */ li $a1, 214 +/* 088BD4 7F0540A4 00003025 */ move $a2, $zero +/* 088BD8 7F0540A8 0C002382 */ jal play_sfx_a1 +/* 088BDC 7F0540AC AFA70018 */ sw $a3, 0x18($sp) +/* 088BE0 7F0540B0 8FA70018 */ lw $a3, 0x18($sp) +/* 088BE4 7F0540B4 AFA2001C */ sw $v0, 0x1c($sp) +/* 088BE8 7F0540B8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088BEC 7F0540BC 10E00073 */ beqz $a3, .L7F05428C +/* 088BF0 7F0540C0 240500D8 */ li $a1, 216 +/* 088BF4 7F0540C4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088BF8 7F0540C8 0C002382 */ jal play_sfx_a1 +/* 088BFC 7F0540CC 00E03025 */ move $a2, $a3 +/* 088C00 7F0540D0 1000006F */ b .L7F054290 +/* 088C04 7F0540D4 8FAC001C */ lw $t4, 0x1c($sp) +.L7F0540D8: +/* 088C08 7F0540D8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088C0C 7F0540DC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088C10 7F0540E0 240500C0 */ li $a1, 192 +/* 088C14 7F0540E4 00003025 */ move $a2, $zero +/* 088C18 7F0540E8 0C002382 */ jal play_sfx_a1 +/* 088C1C 7F0540EC AFA70018 */ sw $a3, 0x18($sp) +/* 088C20 7F0540F0 8FA70018 */ lw $a3, 0x18($sp) +/* 088C24 7F0540F4 AFA2001C */ sw $v0, 0x1c($sp) +/* 088C28 7F0540F8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088C2C 7F0540FC 10E00063 */ beqz $a3, .L7F05428C +/* 088C30 7F054100 240500BF */ li $a1, 191 +/* 088C34 7F054104 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088C38 7F054108 0C002382 */ jal play_sfx_a1 +/* 088C3C 7F05410C 00E03025 */ move $a2, $a3 +/* 088C40 7F054110 1000005F */ b .L7F054290 +/* 088C44 7F054114 8FAC001C */ lw $t4, 0x1c($sp) +.L7F054118: +/* 088C48 7F054118 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088C4C 7F05411C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088C50 7F054120 240500BC */ li $a1, 188 +/* 088C54 7F054124 00003025 */ move $a2, $zero +/* 088C58 7F054128 0C002382 */ jal play_sfx_a1 +/* 088C5C 7F05412C AFA70018 */ sw $a3, 0x18($sp) +/* 088C60 7F054130 8FA70018 */ lw $a3, 0x18($sp) +/* 088C64 7F054134 AFA2001C */ sw $v0, 0x1c($sp) +/* 088C68 7F054138 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088C6C 7F05413C 10E00053 */ beqz $a3, .L7F05428C +/* 088C70 7F054140 24050007 */ li $a1, 7 +/* 088C74 7F054144 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088C78 7F054148 0C002382 */ jal play_sfx_a1 +/* 088C7C 7F05414C 00E03025 */ move $a2, $a3 +/* 088C80 7F054150 1000004F */ b .L7F054290 +/* 088C84 7F054154 8FAC001C */ lw $t4, 0x1c($sp) +.L7F054158: +/* 088C88 7F054158 10E0004C */ beqz $a3, .L7F05428C +/* 088C8C 7F05415C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088C90 7F054160 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088C94 7F054164 240500C2 */ li $a1, 194 +/* 088C98 7F054168 0C002382 */ jal play_sfx_a1 +/* 088C9C 7F05416C 00E03025 */ move $a2, $a3 +/* 088CA0 7F054170 10000047 */ b .L7F054290 +/* 088CA4 7F054174 8FAC001C */ lw $t4, 0x1c($sp) +.L7F054178: +/* 088CA8 7F054178 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088CAC 7F05417C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088CB0 7F054180 24050007 */ li $a1, 7 +/* 088CB4 7F054184 00003025 */ move $a2, $zero +/* 088CB8 7F054188 0C002382 */ jal play_sfx_a1 +/* 088CBC 7F05418C AFA70018 */ sw $a3, 0x18($sp) +/* 088CC0 7F054190 8FA70018 */ lw $a3, 0x18($sp) +/* 088CC4 7F054194 AFA2001C */ sw $v0, 0x1c($sp) +/* 088CC8 7F054198 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088CCC 7F05419C 10E0003B */ beqz $a3, .L7F05428C +/* 088CD0 7F0541A0 24050007 */ li $a1, 7 +/* 088CD4 7F0541A4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088CD8 7F0541A8 0C002382 */ jal play_sfx_a1 +/* 088CDC 7F0541AC 00E03025 */ move $a2, $a3 +/* 088CE0 7F0541B0 10000037 */ b .L7F054290 +/* 088CE4 7F0541B4 8FAC001C */ lw $t4, 0x1c($sp) +.L7F0541B8: +/* 088CE8 7F0541B8 10E00034 */ beqz $a3, .L7F05428C +/* 088CEC 7F0541BC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088CF0 7F0541C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088CF4 7F0541C4 240500DA */ li $a1, 218 +/* 088CF8 7F0541C8 0C002382 */ jal play_sfx_a1 +/* 088CFC 7F0541CC 00E03025 */ move $a2, $a3 +/* 088D00 7F0541D0 1000002F */ b .L7F054290 +/* 088D04 7F0541D4 8FAC001C */ lw $t4, 0x1c($sp) +.L7F0541D8: +/* 088D08 7F0541D8 10E0002C */ beqz $a3, .L7F05428C +/* 088D0C 7F0541DC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088D10 7F0541E0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088D14 7F0541E4 240500E1 */ li $a1, 225 +/* 088D18 7F0541E8 0C002382 */ jal play_sfx_a1 +/* 088D1C 7F0541EC 00E03025 */ move $a2, $a3 +/* 088D20 7F0541F0 10000027 */ b .L7F054290 +/* 088D24 7F0541F4 8FAC001C */ lw $t4, 0x1c($sp) +.L7F0541F8: +/* 088D28 7F0541F8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088D2C 7F0541FC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088D30 7F054200 240500D6 */ li $a1, 214 +/* 088D34 7F054204 0C002382 */ jal play_sfx_a1 +/* 088D38 7F054208 00003025 */ move $a2, $zero +/* 088D3C 7F05420C 1000001F */ b .L7F05428C +/* 088D40 7F054210 AFA2001C */ sw $v0, 0x1c($sp) +.L7F054214: +/* 088D44 7F054214 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088D48 7F054218 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088D4C 7F05421C 24050007 */ li $a1, 7 +/* 088D50 7F054220 00003025 */ move $a2, $zero +/* 088D54 7F054224 0C002382 */ jal play_sfx_a1 +/* 088D58 7F054228 AFA70018 */ sw $a3, 0x18($sp) +/* 088D5C 7F05422C 8FA70018 */ lw $a3, 0x18($sp) +/* 088D60 7F054230 10400008 */ beqz $v0, .L7F054254 +/* 088D64 7F054234 AFA2001C */ sw $v0, 0x1c($sp) +/* 088D68 7F054238 8FAB0020 */ lw $t3, 0x20($sp) +/* 088D6C 7F05423C 00402025 */ move $a0, $v0 +/* 088D70 7F054240 8D650010 */ lw $a1, 0x10($t3) +/* 088D74 7F054244 AFA70018 */ sw $a3, 0x18($sp) +/* 088D78 7F054248 0FC14E84 */ jal sub_GAME_7F053A10 +/* 088D7C 7F05424C 24A50008 */ addiu $a1, $a1, 8 +/* 088D80 7F054250 8FA70018 */ lw $a3, 0x18($sp) +.L7F054254: +/* 088D84 7F054254 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088D88 7F054258 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088D8C 7F05425C 240500CA */ li $a1, 202 +/* 088D90 7F054260 00003025 */ move $a2, $zero +/* 088D94 7F054264 0C002382 */ jal play_sfx_a1 +/* 088D98 7F054268 AFA70018 */ sw $a3, 0x18($sp) +/* 088D9C 7F05426C 8FA70018 */ lw $a3, 0x18($sp) +/* 088DA0 7F054270 AFA2001C */ sw $v0, 0x1c($sp) +/* 088DA4 7F054274 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088DA8 7F054278 10E00004 */ beqz $a3, .L7F05428C +/* 088DAC 7F05427C 240500CC */ li $a1, 204 +/* 088DB0 7F054280 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088DB4 7F054284 0C002382 */ jal play_sfx_a1 +/* 088DB8 7F054288 00E03025 */ move $a2, $a3 +def_7F053FD0: +.L7F05428C: +/* 088DBC 7F05428C 8FAC001C */ lw $t4, 0x1c($sp) +.L7F054290: +/* 088DC0 7F054290 8FAD0020 */ lw $t5, 0x20($sp) +/* 088DC4 7F054294 11800005 */ beqz $t4, .L7F0542AC +/* 088DC8 7F054298 00000000 */ nop +/* 088DCC 7F05429C 8DA50010 */ lw $a1, 0x10($t5) +/* 088DD0 7F0542A0 01802025 */ move $a0, $t4 +/* 088DD4 7F0542A4 0FC14E84 */ jal sub_GAME_7F053A10 +/* 088DD8 7F0542A8 24A50008 */ addiu $a1, $a1, 8 +.L7F0542AC: +/* 088DDC 7F0542AC 0FC14E8F */ jal sub_GAME_7F053A3C +/* 088DE0 7F0542B0 8FA40020 */ lw $a0, 0x20($sp) +/* 088DE4 7F0542B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 088DE8 7F0542B8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 088DEC 7F0542BC 03E00008 */ jr $ra +/* 088DF0 7F0542C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void play_door_closing_soundeffect_0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:800533D4*/ +glabel door_closing_sound_table_0 +.word .L7F054308 +.word .L7F054328 +.word .L7F054348 +.word .L7F054368 +.word .L7F054484 +.word .L7F054484 +.word .L7F054388 +.word .L7F0543A8 +.word .L7F0543C8 +.word .L7F054484 +.word .L7F054484 +.word .L7F054484 +.word .L7F0543E8 +.word .L7F054408 +.word .L7F054428 +.word .L7F054448 +.word .L7F054468 +.text +glabel play_door_closing_soundeffect_0 +/* 088DF4 7F0542C4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 088DF8 7F0542C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 088DFC 7F0542CC AFA40020 */ sw $a0, 0x20($sp) +/* 088E00 7F0542D0 0FC14EC4 */ jal sub_GAME_7F053B10 +/* 088E04 7F0542D4 AFA0001C */ sw $zero, 0x1c($sp) +/* 088E08 7F0542D8 8FA70020 */ lw $a3, 0x20($sp) +/* 088E0C 7F0542DC 8FA6001C */ lw $a2, 0x1c($sp) +/* 088E10 7F0542E0 8CEE00A4 */ lw $t6, 0xa4($a3) +/* 088E14 7F0542E4 25CFFFFF */ addiu $t7, $t6, -1 +/* 088E18 7F0542E8 2DE10011 */ sltiu $at, $t7, 0x11 +/* 088E1C 7F0542EC 10200065 */ beqz $at, .L7F054484 +/* 088E20 7F0542F0 000F7880 */ sll $t7, $t7, 2 +/* 088E24 7F0542F4 3C018005 */ lui $at, %hi(door_closing_sound_table_0) +/* 088E28 7F0542F8 002F0821 */ addu $at, $at, $t7 +/* 088E2C 7F0542FC 8C2F33D4 */ lw $t7, %lo(door_closing_sound_table_0)($at) +.L7F054300: +/* 088E30 7F054300 01E00008 */ jr $t7 +/* 088E34 7F054304 00000000 */ nop +.L7F054308: +/* 088E38 7F054308 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088E3C 7F05430C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088E40 7F054310 240500D2 */ li $a1, 210 +/* 088E44 7F054314 0C002382 */ jal play_sfx_a1 +/* 088E48 7F054318 00003025 */ move $a2, $zero +/* 088E4C 7F05431C 00403025 */ move $a2, $v0 +/* 088E50 7F054320 10000058 */ b .L7F054484 +/* 088E54 7F054324 8FA70020 */ lw $a3, 0x20($sp) +.L7F054328: +/* 088E58 7F054328 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088E5C 7F05432C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088E60 7F054330 240500D2 */ li $a1, 210 +/* 088E64 7F054334 0C002382 */ jal play_sfx_a1 +/* 088E68 7F054338 00003025 */ move $a2, $zero +/* 088E6C 7F05433C 00403025 */ move $a2, $v0 +/* 088E70 7F054340 10000050 */ b .L7F054484 +/* 088E74 7F054344 8FA70020 */ lw $a3, 0x20($sp) +.L7F054348: +/* 088E78 7F054348 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088E7C 7F05434C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088E80 7F054350 240500CB */ li $a1, 203 +/* 088E84 7F054354 0C002382 */ jal play_sfx_a1 +/* 088E88 7F054358 00003025 */ move $a2, $zero +/* 088E8C 7F05435C 00403025 */ move $a2, $v0 +/* 088E90 7F054360 10000048 */ b .L7F054484 +/* 088E94 7F054364 8FA70020 */ lw $a3, 0x20($sp) +.L7F054368: +/* 088E98 7F054368 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088E9C 7F05436C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088EA0 7F054370 240500D7 */ li $a1, 215 +/* 088EA4 7F054374 0C002382 */ jal play_sfx_a1 +/* 088EA8 7F054378 00003025 */ move $a2, $zero +/* 088EAC 7F05437C 00403025 */ move $a2, $v0 +/* 088EB0 7F054380 10000040 */ b .L7F054484 +/* 088EB4 7F054384 8FA70020 */ lw $a3, 0x20($sp) +.L7F054388: +/* 088EB8 7F054388 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088EBC 7F05438C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088EC0 7F054390 240500D2 */ li $a1, 210 +/* 088EC4 7F054394 0C002382 */ jal play_sfx_a1 +/* 088EC8 7F054398 00003025 */ move $a2, $zero +/* 088ECC 7F05439C 00403025 */ move $a2, $v0 +/* 088ED0 7F0543A0 10000038 */ b .L7F054484 +/* 088ED4 7F0543A4 8FA70020 */ lw $a3, 0x20($sp) +.L7F0543A8: +/* 088ED8 7F0543A8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088EDC 7F0543AC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088EE0 7F0543B0 240500BB */ li $a1, 187 +/* 088EE4 7F0543B4 0C002382 */ jal play_sfx_a1 +/* 088EE8 7F0543B8 00003025 */ move $a2, $zero +/* 088EEC 7F0543BC 00403025 */ move $a2, $v0 +/* 088EF0 7F0543C0 10000030 */ b .L7F054484 +/* 088EF4 7F0543C4 8FA70020 */ lw $a3, 0x20($sp) +.L7F0543C8: +/* 088EF8 7F0543C8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088EFC 7F0543CC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088F00 7F0543D0 240500C3 */ li $a1, 195 +/* 088F04 7F0543D4 0C002382 */ jal play_sfx_a1 +/* 088F08 7F0543D8 00003025 */ move $a2, $zero +/* 088F0C 7F0543DC 00403025 */ move $a2, $v0 +/* 088F10 7F0543E0 10000028 */ b .L7F054484 +/* 088F14 7F0543E4 8FA70020 */ lw $a3, 0x20($sp) +.L7F0543E8: +/* 088F18 7F0543E8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088F1C 7F0543EC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088F20 7F0543F0 24050007 */ li $a1, 7 +/* 088F24 7F0543F4 0C002382 */ jal play_sfx_a1 +/* 088F28 7F0543F8 00003025 */ move $a2, $zero +/* 088F2C 7F0543FC 00403025 */ move $a2, $v0 +/* 088F30 7F054400 10000020 */ b .L7F054484 +/* 088F34 7F054404 8FA70020 */ lw $a3, 0x20($sp) +.L7F054408: +/* 088F38 7F054408 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088F3C 7F05440C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088F40 7F054410 240500DB */ li $a1, 219 +/* 088F44 7F054414 0C002382 */ jal play_sfx_a1 +/* 088F48 7F054418 00003025 */ move $a2, $zero +/* 088F4C 7F05441C 00403025 */ move $a2, $v0 +/* 088F50 7F054420 10000018 */ b .L7F054484 +/* 088F54 7F054424 8FA70020 */ lw $a3, 0x20($sp) +.L7F054428: +/* 088F58 7F054428 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088F5C 7F05442C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088F60 7F054430 240500E2 */ li $a1, 226 +/* 088F64 7F054434 0C002382 */ jal play_sfx_a1 +/* 088F68 7F054438 00003025 */ move $a2, $zero +/* 088F6C 7F05443C 00403025 */ move $a2, $v0 +/* 088F70 7F054440 10000010 */ b .L7F054484 +/* 088F74 7F054444 8FA70020 */ lw $a3, 0x20($sp) +.L7F054448: +/* 088F78 7F054448 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088F7C 7F05444C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088F80 7F054450 240500D7 */ li $a1, 215 +/* 088F84 7F054454 0C002382 */ jal play_sfx_a1 +/* 088F88 7F054458 00003025 */ move $a2, $zero +/* 088F8C 7F05445C 00403025 */ move $a2, $v0 +/* 088F90 7F054460 10000008 */ b .L7F054484 +/* 088F94 7F054464 8FA70020 */ lw $a3, 0x20($sp) +.L7F054468: +/* 088F98 7F054468 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088F9C 7F05446C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088FA0 7F054470 240500CB */ li $a1, 203 +/* 088FA4 7F054474 0C002382 */ jal play_sfx_a1 +/* 088FA8 7F054478 00003025 */ move $a2, $zero +/* 088FAC 7F05447C 00403025 */ move $a2, $v0 +/* 088FB0 7F054480 8FA70020 */ lw $a3, 0x20($sp) +def_7F054300: +.L7F054484: +/* 088FB4 7F054484 10C00006 */ beqz $a2, .L7F0544A0 +/* 088FB8 7F054488 00000000 */ nop +/* 088FBC 7F05448C 8CE50010 */ lw $a1, 0x10($a3) +/* 088FC0 7F054490 00C02025 */ move $a0, $a2 +/* 088FC4 7F054494 0FC14E84 */ jal sub_GAME_7F053A10 +/* 088FC8 7F054498 24A50008 */ addiu $a1, $a1, 8 +/* 088FCC 7F05449C 8FA70020 */ lw $a3, 0x20($sp) +.L7F0544A0: +/* 088FD0 7F0544A0 0FC14E8F */ jal sub_GAME_7F053A3C +/* 088FD4 7F0544A4 00E02025 */ move $a0, $a3 +/* 088FD8 7F0544A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 088FDC 7F0544AC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 088FE0 7F0544B0 03E00008 */ jr $ra +/* 088FE4 7F0544B4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void play_door_closing_soundeffect_1(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80053418*/ +glabel door_closing_sound_table_1 +.word .L7F0544FC +.word .L7F05451C +.word .L7F05453C +.word .L7F05455C +.word .L7F05457C +.word .L7F05459C +.word .L7F0545BC +.word .L7F0545DC +.word .L7F0545FC +.word .L7F05461C +.word .L7F05463C +.word .L7F05465C +.word .L7F05467C +.word .L7F05469C +.word .L7F0546BC +.word .L7F0546DC +.word .L7F0546FC + +.text +glabel play_door_closing_soundeffect_1 +/* 088FE8 7F0544B8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 088FEC 7F0544BC AFBF0014 */ sw $ra, 0x14($sp) +/* 088FF0 7F0544C0 AFA40020 */ sw $a0, 0x20($sp) +/* 088FF4 7F0544C4 0FC14EC4 */ jal sub_GAME_7F053B10 +/* 088FF8 7F0544C8 AFA0001C */ sw $zero, 0x1c($sp) +/* 088FFC 7F0544CC 8FA70020 */ lw $a3, 0x20($sp) +/* 089000 7F0544D0 8FA6001C */ lw $a2, 0x1c($sp) +/* 089004 7F0544D4 8CEE00A4 */ lw $t6, 0xa4($a3) +/* 089008 7F0544D8 25CFFFFF */ addiu $t7, $t6, -1 +/* 08900C 7F0544DC 2DE10011 */ sltiu $at, $t7, 0x11 +/* 089010 7F0544E0 1020008D */ beqz $at, .L7F054718 +/* 089014 7F0544E4 000F7880 */ sll $t7, $t7, 2 +/* 089018 7F0544E8 3C018005 */ lui $at, %hi(door_closing_sound_table_1) +/* 08901C 7F0544EC 002F0821 */ addu $at, $at, $t7 +/* 089020 7F0544F0 8C2F3418 */ lw $t7, %lo(door_closing_sound_table_1)($at) +/* 089024 7F0544F4 01E00008 */ jr $t7 +/* 089028 7F0544F8 00000000 */ nop +.L7F0544FC: +/* 08902C 7F0544FC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089030 7F054500 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089034 7F054504 240500D2 */ li $a1, 210 +/* 089038 7F054508 0C002382 */ jal play_sfx_a1 +/* 08903C 7F05450C 00003025 */ move $a2, $zero +/* 089040 7F054510 00403025 */ move $a2, $v0 +/* 089044 7F054514 10000080 */ b .L7F054718 +/* 089048 7F054518 8FA70020 */ lw $a3, 0x20($sp) +.L7F05451C: +/* 08904C 7F05451C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089050 7F054520 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089054 7F054524 240500D2 */ li $a1, 210 +/* 089058 7F054528 0C002382 */ jal play_sfx_a1 +/* 08905C 7F05452C 00003025 */ move $a2, $zero +/* 089060 7F054530 00403025 */ move $a2, $v0 +/* 089064 7F054534 10000078 */ b .L7F054718 +/* 089068 7F054538 8FA70020 */ lw $a3, 0x20($sp) +.L7F05453C: +/* 08906C 7F05453C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089070 7F054540 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089074 7F054544 240500CB */ li $a1, 203 +/* 089078 7F054548 0C002382 */ jal play_sfx_a1 +/* 08907C 7F05454C 00003025 */ move $a2, $zero +/* 089080 7F054550 00403025 */ move $a2, $v0 +/* 089084 7F054554 10000070 */ b .L7F054718 +/* 089088 7F054558 8FA70020 */ lw $a3, 0x20($sp) +.L7F05455C: +/* 08908C 7F05455C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089090 7F054560 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089094 7F054564 240500D7 */ li $a1, 215 +/* 089098 7F054568 0C002382 */ jal play_sfx_a1 +/* 08909C 7F05456C 00003025 */ move $a2, $zero +/* 0890A0 7F054570 00403025 */ move $a2, $v0 +/* 0890A4 7F054574 10000068 */ b .L7F054718 +/* 0890A8 7F054578 8FA70020 */ lw $a3, 0x20($sp) +.L7F05457C: +/* 0890AC 7F05457C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0890B0 7F054580 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0890B4 7F054584 240500BB */ li $a1, 187 +/* 0890B8 7F054588 0C002382 */ jal play_sfx_a1 +/* 0890BC 7F05458C 00003025 */ move $a2, $zero +/* 0890C0 7F054590 00403025 */ move $a2, $v0 +/* 0890C4 7F054594 10000060 */ b .L7F054718 +/* 0890C8 7F054598 8FA70020 */ lw $a3, 0x20($sp) +.L7F05459C: +/* 0890CC 7F05459C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0890D0 7F0545A0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0890D4 7F0545A4 24050007 */ li $a1, 7 +/* 0890D8 7F0545A8 0C002382 */ jal play_sfx_a1 +/* 0890DC 7F0545AC 00003025 */ move $a2, $zero +/* 0890E0 7F0545B0 00403025 */ move $a2, $v0 +/* 0890E4 7F0545B4 10000058 */ b .L7F054718 +/* 0890E8 7F0545B8 8FA70020 */ lw $a3, 0x20($sp) +.L7F0545BC: +/* 0890EC 7F0545BC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0890F0 7F0545C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0890F4 7F0545C4 240500D2 */ li $a1, 210 +/* 0890F8 7F0545C8 0C002382 */ jal play_sfx_a1 +/* 0890FC 7F0545CC 00003025 */ move $a2, $zero +/* 089100 7F0545D0 00403025 */ move $a2, $v0 +/* 089104 7F0545D4 10000050 */ b .L7F054718 +/* 089108 7F0545D8 8FA70020 */ lw $a3, 0x20($sp) +.L7F0545DC: +/* 08910C 7F0545DC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089110 7F0545E0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089114 7F0545E4 240500BB */ li $a1, 187 +/* 089118 7F0545E8 0C002382 */ jal play_sfx_a1 +/* 08911C 7F0545EC 00003025 */ move $a2, $zero +/* 089120 7F0545F0 00403025 */ move $a2, $v0 +/* 089124 7F0545F4 10000048 */ b .L7F054718 +/* 089128 7F0545F8 8FA70020 */ lw $a3, 0x20($sp) +.L7F0545FC: +/* 08912C 7F0545FC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089130 7F054600 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089134 7F054604 240500C3 */ li $a1, 195 +/* 089138 7F054608 0C002382 */ jal play_sfx_a1 +/* 08913C 7F05460C 00003025 */ move $a2, $zero +/* 089140 7F054610 00403025 */ move $a2, $v0 +/* 089144 7F054614 10000040 */ b .L7F054718 +/* 089148 7F054618 8FA70020 */ lw $a3, 0x20($sp) +.L7F05461C: +/* 08914C 7F05461C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089150 7F054620 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089154 7F054624 240500C5 */ li $a1, 197 +/* 089158 7F054628 0C002382 */ jal play_sfx_a1 +/* 08915C 7F05462C 00003025 */ move $a2, $zero +/* 089160 7F054630 00403025 */ move $a2, $v0 +/* 089164 7F054634 10000038 */ b .L7F054718 +/* 089168 7F054638 8FA70020 */ lw $a3, 0x20($sp) +.L7F05463C: +/* 08916C 7F05463C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089170 7F054640 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089174 7F054644 240500C7 */ li $a1, 199 +/* 089178 7F054648 0C002382 */ jal play_sfx_a1 +/* 08917C 7F05464C 00003025 */ move $a2, $zero +/* 089180 7F054650 00403025 */ move $a2, $v0 +/* 089184 7F054654 10000030 */ b .L7F054718 +/* 089188 7F054658 8FA70020 */ lw $a3, 0x20($sp) +.L7F05465C: +/* 08918C 7F05465C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089190 7F054660 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089194 7F054664 240500C9 */ li $a1, 201 +/* 089198 7F054668 0C002382 */ jal play_sfx_a1 +/* 08919C 7F05466C 00003025 */ move $a2, $zero +/* 0891A0 7F054670 00403025 */ move $a2, $v0 +/* 0891A4 7F054674 10000028 */ b .L7F054718 +/* 0891A8 7F054678 8FA70020 */ lw $a3, 0x20($sp) +.L7F05467C: +/* 0891AC 7F05467C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0891B0 7F054680 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0891B4 7F054684 24050007 */ li $a1, 7 +/* 0891B8 7F054688 0C002382 */ jal play_sfx_a1 +/* 0891BC 7F05468C 00003025 */ move $a2, $zero +/* 0891C0 7F054690 00403025 */ move $a2, $v0 +/* 0891C4 7F054694 10000020 */ b .L7F054718 +/* 0891C8 7F054698 8FA70020 */ lw $a3, 0x20($sp) +.L7F05469C: +/* 0891CC 7F05469C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0891D0 7F0546A0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0891D4 7F0546A4 240500DB */ li $a1, 219 +/* 0891D8 7F0546A8 0C002382 */ jal play_sfx_a1 +/* 0891DC 7F0546AC 00003025 */ move $a2, $zero +/* 0891E0 7F0546B0 00403025 */ move $a2, $v0 +/* 0891E4 7F0546B4 10000018 */ b .L7F054718 +/* 0891E8 7F0546B8 8FA70020 */ lw $a3, 0x20($sp) +.L7F0546BC: +/* 0891EC 7F0546BC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0891F0 7F0546C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0891F4 7F0546C4 240500E2 */ li $a1, 226 +/* 0891F8 7F0546C8 0C002382 */ jal play_sfx_a1 +/* 0891FC 7F0546CC 00003025 */ move $a2, $zero +/* 089200 7F0546D0 00403025 */ move $a2, $v0 +/* 089204 7F0546D4 10000010 */ b .L7F054718 +/* 089208 7F0546D8 8FA70020 */ lw $a3, 0x20($sp) +.L7F0546DC: +/* 08920C 7F0546DC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089210 7F0546E0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089214 7F0546E4 240500D7 */ li $a1, 215 +/* 089218 7F0546E8 0C002382 */ jal play_sfx_a1 +/* 08921C 7F0546EC 00003025 */ move $a2, $zero +/* 089220 7F0546F0 00403025 */ move $a2, $v0 +/* 089224 7F0546F4 10000008 */ b .L7F054718 +/* 089228 7F0546F8 8FA70020 */ lw $a3, 0x20($sp) +.L7F0546FC: +/* 08922C 7F0546FC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 089230 7F054700 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 089234 7F054704 240500CB */ li $a1, 203 +/* 089238 7F054708 0C002382 */ jal play_sfx_a1 +/* 08923C 7F05470C 00003025 */ move $a2, $zero +/* 089240 7F054710 00403025 */ move $a2, $v0 +/* 089244 7F054714 8FA70020 */ lw $a3, 0x20($sp) +def_7F0544F4: +.L7F054718: +/* 089248 7F054718 10C00006 */ beqz $a2, .L7F054734 +/* 08924C 7F05471C 00000000 */ nop +/* 089250 7F054720 8CE50010 */ lw $a1, 0x10($a3) +/* 089254 7F054724 00C02025 */ move $a0, $a2 +/* 089258 7F054728 0FC14E84 */ jal sub_GAME_7F053A10 +/* 08925C 7F05472C 24A50008 */ addiu $a1, $a1, 8 +/* 089260 7F054730 8FA70020 */ lw $a3, 0x20($sp) +.L7F054734: +/* 089264 7F054734 0FC14E8F */ jal sub_GAME_7F053A3C +/* 089268 7F054738 00E02025 */ move $a0, $a3 +/* 08926C 7F05473C 8FBF0014 */ lw $ra, 0x14($sp) +/* 089270 7F054740 27BD0020 */ addiu $sp, $sp, 0x20 +/* 089274 7F054744 03E00008 */ jr $ra +/* 089278 7F054748 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05474C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05474C +/* 08927C 7F05474C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 089280 7F054750 AFBF0014 */ sw $ra, 0x14($sp) +/* 089284 7F054754 8C8E0008 */ lw $t6, 8($a0) +/* 089288 7F054758 8C980064 */ lw $t8, 0x64($a0) +/* 08928C 7F05475C 3C017FFF */ lui $at, (0x7FFFFFFF >> 16) # lui $at, 0x7fff +/* 089290 7F054760 3421FFFF */ ori $at, (0x7FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 089294 7F054764 01C17824 */ and $t7, $t6, $at +/* 089298 7F054768 37190200 */ ori $t9, $t8, 0x200 +/* 08929C 7F05476C AC8F0008 */ sw $t7, 8($a0) +/* 0892A0 7F054770 AC990064 */ sw $t9, 0x64($a0) +/* 0892A4 7F054774 0FC14EDE */ jal play_door_opening_soundeffect_0 +/* 0892A8 7F054778 AFA40018 */ sw $a0, 0x18($sp) +/* 0892AC 7F05477C 0FC14D66 */ jal sub_GAME_7F053598 +/* 0892B0 7F054780 8FA40018 */ lw $a0, 0x18($sp) +/* 0892B4 7F054784 8FA40018 */ lw $a0, 0x18($sp) +/* 0892B8 7F054788 24010008 */ li $at, 8 +/* 0892BC 7F05478C 9488009A */ lhu $t0, 0x9a($a0) +/* 0892C0 7F054790 5501000F */ bnel $t0, $at, .L7F0547D0 +/* 0892C4 7F054794 8FBF0014 */ lw $ra, 0x14($sp) +/* 0892C8 7F054798 8C890008 */ lw $t1, 8($a0) +/* 0892CC 7F05479C 8C820068 */ lw $v0, 0x68($a0) +/* 0892D0 7F0547A0 44802000 */ mtc1 $zero, $f4 +/* 0892D4 7F0547A4 3C010200 */ lui $at, 0x200 +/* 0892D8 7F0547A8 01215025 */ or $t2, $t1, $at +/* 0892DC 7F0547AC AC8A0008 */ sw $t2, 8($a0) +/* 0892E0 7F0547B0 10400002 */ beqz $v0, .L7F0547BC +/* 0892E4 7F0547B4 E4840088 */ swc1 $f4, 0x88($a0) +/* 0892E8 7F0547B8 AC400000 */ sw $zero, ($v0) +.L7F0547BC: +/* 0892EC 7F0547BC 8C8B0008 */ lw $t3, 8($a0) +/* 0892F0 7F0547C0 2401FEFF */ li $at, -257 +/* 0892F4 7F0547C4 01616024 */ and $t4, $t3, $at +/* 0892F8 7F0547C8 AC8C0008 */ sw $t4, 8($a0) +/* 0892FC 7F0547CC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0547D0: +/* 089300 7F0547D0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 089304 7F0547D4 03E00008 */ jr $ra +/* 089308 7F0547D8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0547DC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0547DC +/* 08930C 7F0547DC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 089310 7F0547E0 AFBF0014 */ sw $ra, 0x14($sp) +/* 089314 7F0547E4 8C8E0008 */ lw $t6, 8($a0) +/* 089318 7F0547E8 3C017FFF */ lui $at, (0x7FFFFFFF >> 16) # lui $at, 0x7fff +/* 08931C 7F0547EC 3421FFFF */ ori $at, (0x7FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 089320 7F0547F0 01C17824 */ and $t7, $t6, $at +/* 089324 7F0547F4 0FC14FD9 */ jal play_door_opening_soundeffect_1 +/* 089328 7F0547F8 AC8F0008 */ sw $t7, 8($a0) +/* 08932C 7F0547FC 8FBF0014 */ lw $ra, 0x14($sp) +/* 089330 7F054800 27BD0018 */ addiu $sp, $sp, 0x18 +/* 089334 7F054804 03E00008 */ jr $ra +/* 089338 7F054808 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05480C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05480C +/* 08933C 7F05480C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 089340 7F054810 AFBF0014 */ sw $ra, 0x14($sp) +/* 089344 7F054814 0FC150B1 */ jal play_door_closing_soundeffect_0 +/* 089348 7F054818 AFA40018 */ sw $a0, 0x18($sp) +/* 08934C 7F05481C 8FA50018 */ lw $a1, 0x18($sp) +/* 089350 7F054820 24010008 */ li $at, 8 +/* 089354 7F054824 94AE009A */ lhu $t6, 0x9a($a1) +/* 089358 7F054828 55C10011 */ bnel $t6, $at, .L7F054870 +/* 08935C 7F05482C 8FBF0014 */ lw $ra, 0x14($sp) +/* 089360 7F054830 8CA40010 */ lw $a0, 0x10($a1) +/* 089364 7F054834 0FC0FF6A */ jal sub_GAME_7F03FDA8 +/* 089368 7F054838 AFA50018 */ sw $a1, 0x18($sp) +/* 08936C 7F05483C 8FA50018 */ lw $a1, 0x18($sp) +/* 089370 7F054840 8CAF0064 */ lw $t7, 0x64($a1) +/* 089374 7F054844 31F80080 */ andi $t8, $t7, 0x80 +/* 089378 7F054848 53000009 */ beql $t8, $zero, .L7F054870 +/* 08937C 7F05484C 8FBF0014 */ lw $ra, 0x14($sp) +/* 089380 7F054850 8CA2006C */ lw $v0, 0x6c($a1) +/* 089384 7F054854 8C590000 */ lw $t9, ($v0) +/* 089388 7F054858 37280001 */ ori $t0, $t9, 1 +/* 08938C 7F05485C AC480000 */ sw $t0, ($v0) +/* 089390 7F054860 8CA4006C */ lw $a0, 0x6c($a1) +/* 089394 7F054864 0FC15FF4 */ jal matrix_4x4_set_identity +/* 089398 7F054868 24840020 */ addiu $a0, $a0, 0x20 +/* 08939C 7F05486C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F054870: +/* 0893A0 7F054870 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0893A4 7F054874 03E00008 */ jr $ra +/* 0893A8 7F054878 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05487C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05487C +/* 0893AC 7F05487C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0893B0 7F054880 AFBF0014 */ sw $ra, 0x14($sp) +/* 0893B4 7F054884 0FC1512E */ jal play_door_closing_soundeffect_1 +/* 0893B8 7F054888 AFA40018 */ sw $a0, 0x18($sp) +/* 0893BC 7F05488C 0FC14D71 */ jal sub_GAME_7F0535C4 +/* 0893C0 7F054890 8FA40018 */ lw $a0, 0x18($sp) +/* 0893C4 7F054894 8FBF0014 */ lw $ra, 0x14($sp) +/* 0893C8 7F054898 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0893CC 7F05489C 03E00008 */ jr $ra +/* 0893D0 7F0548A0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0548A4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0548A4 +/* 0893D4 7F0548A4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0893D8 7F0548A8 24010001 */ li $at, 1 +/* 0893DC 7F0548AC 14A1000E */ bne $a1, $at, .L7F0548E8 +/* 0893E0 7F0548B0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0893E4 7F0548B4 808200BC */ lb $v0, 0xbc($a0) +/* 0893E8 7F0548B8 24010003 */ li $at, 3 +/* 0893EC 7F0548BC 50400004 */ beql $v0, $zero, .L7F0548D0 +/* 0893F0 7F0548C0 AFA40018 */ sw $a0, 0x18($sp) +/* 0893F4 7F0548C4 14410006 */ bne $v0, $at, .L7F0548E0 +/* 0893F8 7F0548C8 00000000 */ nop +/* 0893FC 7F0548CC AFA40018 */ sw $a0, 0x18($sp) +.L7F0548D0: +/* 089400 7F0548D0 0FC151D3 */ jal sub_GAME_7F05474C +/* 089404 7F0548D4 AFA5001C */ sw $a1, 0x1c($sp) +/* 089408 7F0548D8 8FA40018 */ lw $a0, 0x18($sp) +/* 08940C 7F0548DC 8FA5001C */ lw $a1, 0x1c($sp) +.L7F0548E0: +/* 089410 7F0548E0 10000025 */ b .L7F054978 +/* 089414 7F0548E4 A08500BC */ sb $a1, 0xbc($a0) +.L7F0548E8: +/* 089418 7F0548E8 24010002 */ li $at, 2 +/* 08941C 7F0548EC 54A10022 */ bnel $a1, $at, .L7F054978 +/* 089420 7F0548F0 A08500BC */ sb $a1, 0xbc($a0) +/* 089424 7F0548F4 808200BC */ lb $v0, 0xbc($a0) +/* 089428 7F0548F8 1440000D */ bnez $v0, .L7F054930 +/* 08942C 7F0548FC 00000000 */ nop +/* 089430 7F054900 44802000 */ mtc1 $zero, $f4 +/* 089434 7F054904 C48600B4 */ lwc1 $f6, 0xb4($a0) +/* 089438 7F054908 4606203C */ c.lt.s $f4, $f6 +/* 08943C 7F05490C 00000000 */ nop +/* 089440 7F054910 45000007 */ bc1f .L7F054930 +/* 089444 7F054914 00000000 */ nop +/* 089448 7F054918 AFA40018 */ sw $a0, 0x18($sp) +/* 08944C 7F05491C 0FC151F7 */ jal sub_GAME_7F0547DC +/* 089450 7F054920 AFA5001C */ sw $a1, 0x1c($sp) +/* 089454 7F054924 8FA40018 */ lw $a0, 0x18($sp) +/* 089458 7F054928 8FA5001C */ lw $a1, 0x1c($sp) +/* 08945C 7F05492C 808200BC */ lb $v0, 0xbc($a0) +.L7F054930: +/* 089460 7F054930 10400003 */ beqz $v0, .L7F054940 +/* 089464 7F054934 24010003 */ li $at, 3 +/* 089468 7F054938 14410008 */ bne $v0, $at, .L7F05495C +/* 08946C 7F05493C 00000000 */ nop +.L7F054940: +/* 089470 7F054940 44804000 */ mtc1 $zero, $f8 +/* 089474 7F054944 C48A00B4 */ lwc1 $f10, 0xb4($a0) +/* 089478 7F054948 24010003 */ li $at, 3 +/* 08947C 7F05494C 460A403C */ c.lt.s $f8, $f10 +/* 089480 7F054950 00000000 */ nop +/* 089484 7F054954 45000003 */ bc1f .L7F054964 +/* 089488 7F054958 00000000 */ nop +.L7F05495C: +/* 08948C 7F05495C 10000006 */ b .L7F054978 +/* 089490 7F054960 A08500BC */ sb $a1, 0xbc($a0) +.L7F054964: +/* 089494 7F054964 54410005 */ bnel $v0, $at, .L7F05497C +/* 089498 7F054968 8FBF0014 */ lw $ra, 0x14($sp) +/* 08949C 7F05496C 10000002 */ b .L7F054978 +/* 0894A0 7F054970 A08000BC */ sb $zero, 0xbc($a0) +/* 0894A4 7F054974 A08500BC */ sb $a1, 0xbc($a0) +.L7F054978: +/* 0894A8 7F054978 8FBF0014 */ lw $ra, 0x14($sp) +.L7F05497C: +/* 0894AC 7F05497C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0894B0 7F054980 03E00008 */ jr $ra +/* 0894B4 7F054984 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void set_door_state(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_door_state +/* 0894B8 7F054988 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0894BC 7F05498C AFBF0024 */ sw $ra, 0x24($sp) +/* 0894C0 7F054990 AFB20020 */ sw $s2, 0x20($sp) +/* 0894C4 7F054994 AFB1001C */ sw $s1, 0x1c($sp) +/* 0894C8 7F054998 AFB00018 */ sw $s0, 0x18($sp) +/* 0894CC 7F05499C 8C8E000C */ lw $t6, 0xc($a0) +/* 0894D0 7F0549A0 00808825 */ move $s1, $a0 +/* 0894D4 7F0549A4 00A09025 */ move $s2, $a1 +/* 0894D8 7F0549A8 000E7840 */ sll $t7, $t6, 1 +/* 0894DC 7F0549AC 05E10008 */ bgez $t7, .L7F0549D0 +/* 0894E0 7F0549B0 24010001 */ li $at, 1 +/* 0894E4 7F0549B4 14A10006 */ bne $a1, $at, .L7F0549D0 +/* 0894E8 7F0549B8 00000000 */ nop +/* 0894EC 7F0549BC 809800BC */ lb $t8, 0xbc($a0) +/* 0894F0 7F0549C0 24120002 */ li $s2, 2 +/* 0894F4 7F0549C4 17000002 */ bnez $t8, .L7F0549D0 +/* 0894F8 7F0549C8 00000000 */ nop +/* 0894FC 7F0549CC 24050003 */ li $a1, 3 +.L7F0549D0: +/* 089500 7F0549D0 0FC15229 */ jal sub_GAME_7F0548A4 +/* 089504 7F0549D4 02202025 */ move $a0, $s1 +/* 089508 7F0549D8 8E3000C8 */ lw $s0, 0xc8($s1) +/* 08950C 7F0549DC 5200000B */ beql $s0, $zero, .L7F054A0C +/* 089510 7F0549E0 8FBF0024 */ lw $ra, 0x24($sp) +/* 089514 7F0549E4 12110008 */ beq $s0, $s1, .L7F054A08 +/* 089518 7F0549E8 02002025 */ move $a0, $s0 +.L7F0549EC: +/* 08951C 7F0549EC 0FC15229 */ jal sub_GAME_7F0548A4 +/* 089520 7F0549F0 02402825 */ move $a1, $s2 +/* 089524 7F0549F4 8E1000C8 */ lw $s0, 0xc8($s0) +/* 089528 7F0549F8 52000004 */ beql $s0, $zero, .L7F054A0C +/* 08952C 7F0549FC 8FBF0024 */ lw $ra, 0x24($sp) +/* 089530 7F054A00 5611FFFA */ bnel $s0, $s1, .L7F0549EC +/* 089534 7F054A04 02002025 */ move $a0, $s0 +.L7F054A08: +/* 089538 7F054A08 8FBF0024 */ lw $ra, 0x24($sp) +.L7F054A0C: +/* 08953C 7F054A0C 8FB00018 */ lw $s0, 0x18($sp) +/* 089540 7F054A10 8FB1001C */ lw $s1, 0x1c($sp) +/* 089544 7F054A14 8FB20020 */ lw $s2, 0x20($sp) +/* 089548 7F054A18 03E00008 */ jr $ra +/* 08954C 7F054A1C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F054A20(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F054A20 +/* 089550 7F054A20 808300BC */ lb $v1, 0xbc($a0) +/* 089554 7F054A24 2C620001 */ sltiu $v0, $v1, 1 +/* 089558 7F054A28 14400004 */ bnez $v0, .L7F054A3C +/* 08955C 7F054A2C 38620003 */ xori $v0, $v1, 3 +/* 089560 7F054A30 2C420001 */ sltiu $v0, $v0, 1 +/* 089564 7F054A34 10400009 */ beqz $v0, .L7F054A5C +/* 089568 7F054A38 00000000 */ nop +.L7F054A3C: +/* 08956C 7F054A3C 44802000 */ mtc1 $zero, $f4 +/* 089570 7F054A40 C48600B4 */ lwc1 $f6, 0xb4($a0) +/* 089574 7F054A44 00001025 */ move $v0, $zero +/* 089578 7F054A48 4604303E */ c.le.s $f6, $f4 +/* 08957C 7F054A4C 00000000 */ nop +/* 089580 7F054A50 45000002 */ bc1f .L7F054A5C +/* 089584 7F054A54 00000000 */ nop +/* 089588 7F054A58 24020001 */ li $v0, 1 +.L7F054A5C: +/* 08958C 7F054A5C 03E00008 */ jr $ra +/* 089590 7F054A60 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F054A64(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F054A64 +/* 089594 7F054A64 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 089598 7F054A68 AFB30020 */ sw $s3, 0x20($sp) +/* 08959C 7F054A6C AFB00014 */ sw $s0, 0x14($sp) +/* 0895A0 7F054A70 00A08025 */ move $s0, $a1 +/* 0895A4 7F054A74 27B30048 */ addiu $s3, $sp, 0x48 +/* 0895A8 7F054A78 AFBF0024 */ sw $ra, 0x24($sp) +/* 0895AC 7F054A7C AFB2001C */ sw $s2, 0x1c($sp) +/* 0895B0 7F054A80 AFB10018 */ sw $s1, 0x18($sp) +/* 0895B4 7F054A84 00009025 */ move $s2, $zero +/* 0895B8 7F054A88 0FC0F2E3 */ jal sub_GAME_7F03CB8C +/* 0895BC 7F054A8C 02602825 */ move $a1, $s3 +/* 0895C0 7F054A90 8FA40048 */ lw $a0, 0x48($sp) +/* 0895C4 7F054A94 02608825 */ move $s1, $s3 +/* 0895C8 7F054A98 27B3002C */ addiu $s3, $sp, 0x2c +/* 0895CC 7F054A9C 04820031 */ bltzl $a0, .L7F054B64 +/* 0895D0 7F054AA0 8FBF0024 */ lw $ra, 0x24($sp) +.L7F054AA4: +/* 0895D4 7F054AA4 0FC2CF03 */ jal sub_GAME_7F0B3C0C +/* 0895D8 7F054AA8 02602825 */ move $a1, $s3 +/* 0895DC 7F054AAC 10400028 */ beqz $v0, .L7F054B50 +/* 0895E0 7F054AB0 0012102B */ sltu $v0, $zero, $s2 +/* 0895E4 7F054AB4 1040001E */ beqz $v0, .L7F054B30 +/* 0895E8 7F054AB8 24120001 */ li $s2, 1 +/* 0895EC 7F054ABC C7A4002C */ lwc1 $f4, 0x2c($sp) +/* 0895F0 7F054AC0 C6060000 */ lwc1 $f6, ($s0) +/* 0895F4 7F054AC4 4606203C */ c.lt.s $f4, $f6 +/* 0895F8 7F054AC8 00000000 */ nop +/* 0895FC 7F054ACC 45020003 */ bc1fl .L7F054ADC +/* 089600 7F054AD0 C7A80030 */ lwc1 $f8, 0x30($sp) +/* 089604 7F054AD4 E6040000 */ swc1 $f4, ($s0) +/* 089608 7F054AD8 C7A80030 */ lwc1 $f8, 0x30($sp) +.L7F054ADC: +/* 08960C 7F054ADC C60A0004 */ lwc1 $f10, 4($s0) +/* 089610 7F054AE0 460A403C */ c.lt.s $f8, $f10 +/* 089614 7F054AE4 00000000 */ nop +/* 089618 7F054AE8 45020003 */ bc1fl .L7F054AF8 +/* 08961C 7F054AEC C6100008 */ lwc1 $f16, 8($s0) +/* 089620 7F054AF0 E6080004 */ swc1 $f8, 4($s0) +/* 089624 7F054AF4 C6100008 */ lwc1 $f16, 8($s0) +.L7F054AF8: +/* 089628 7F054AF8 C7B20034 */ lwc1 $f18, 0x34($sp) +/* 08962C 7F054AFC 4612803C */ c.lt.s $f16, $f18 +/* 089630 7F054B00 00000000 */ nop +/* 089634 7F054B04 45020003 */ bc1fl .L7F054B14 +/* 089638 7F054B08 C606000C */ lwc1 $f6, 0xc($s0) +/* 08963C 7F054B0C E6120008 */ swc1 $f18, 8($s0) +/* 089640 7F054B10 C606000C */ lwc1 $f6, 0xc($s0) +.L7F054B14: +/* 089644 7F054B14 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 089648 7F054B18 4604303C */ c.lt.s $f6, $f4 +/* 08964C 7F054B1C 00000000 */ nop +/* 089650 7F054B20 4502000C */ bc1fl .L7F054B54 +/* 089654 7F054B24 8E240004 */ lw $a0, 4($s1) +/* 089658 7F054B28 10000009 */ b .L7F054B50 +/* 08965C 7F054B2C E604000C */ swc1 $f4, 0xc($s0) +.L7F054B30: +/* 089660 7F054B30 C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 089664 7F054B34 E60A0000 */ swc1 $f10, ($s0) +/* 089668 7F054B38 C7A80030 */ lwc1 $f8, 0x30($sp) +/* 08966C 7F054B3C E6080004 */ swc1 $f8, 4($s0) +/* 089670 7F054B40 C7B00034 */ lwc1 $f16, 0x34($sp) +/* 089674 7F054B44 E6100008 */ swc1 $f16, 8($s0) +/* 089678 7F054B48 C7B20038 */ lwc1 $f18, 0x38($sp) +/* 08967C 7F054B4C E612000C */ swc1 $f18, 0xc($s0) +.L7F054B50: +/* 089680 7F054B50 8E240004 */ lw $a0, 4($s1) +.L7F054B54: +/* 089684 7F054B54 26310004 */ addiu $s1, $s1, 4 +/* 089688 7F054B58 0481FFD2 */ bgez $a0, .L7F054AA4 +/* 08968C 7F054B5C 00000000 */ nop +/* 089690 7F054B60 8FBF0024 */ lw $ra, 0x24($sp) +.L7F054B64: +/* 089694 7F054B64 02401025 */ move $v0, $s2 +/* 089698 7F054B68 8FB2001C */ lw $s2, 0x1c($sp) +/* 08969C 7F054B6C 8FB00014 */ lw $s0, 0x14($sp) +/* 0896A0 7F054B70 8FB10018 */ lw $s1, 0x18($sp) +/* 0896A4 7F054B74 8FB30020 */ lw $s3, 0x20($sp) +/* 0896A8 7F054B78 03E00008 */ jr $ra +/* 0896AC 7F054B7C 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F054B80(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F054B80 +/* 0896B0 7F054B80 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0896B4 7F054B84 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0896B8 7F054B88 44818000 */ mtc1 $at, $f16 +/* 0896BC 7F054B8C AFBF0014 */ sw $ra, 0x14($sp) +/* 0896C0 7F054B90 AFA40020 */ sw $a0, 0x20($sp) +/* 0896C4 7F054B94 AFA50024 */ sw $a1, 0x24($sp) +/* 0896C8 7F054B98 0FC2ECE6 */ jal return_nearfog_values +/* 0896CC 7F054B9C E7B0001C */ swc1 $f16, 0x1c($sp) +/* 0896D0 7F054BA0 10400028 */ beqz $v0, .L7F054C44 +/* 0896D4 7F054BA4 C7B0001C */ lwc1 $f16, 0x1c($sp) +/* 0896D8 7F054BA8 8FAE0020 */ lw $t6, 0x20($sp) +/* 0896DC 7F054BAC C4440008 */ lwc1 $f4, 8($v0) +/* 0896E0 7F054BB0 C5C60018 */ lwc1 $f6, 0x18($t6) +/* 0896E4 7F054BB4 4606203C */ c.lt.s $f4, $f6 +/* 0896E8 7F054BB8 00000000 */ nop +/* 0896EC 7F054BBC 45020022 */ bc1fl .L7F054C48 +/* 0896F0 7F054BC0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0896F4 7F054BC4 AFA20018 */ sw $v0, 0x18($sp) +/* 0896F8 7F054BC8 0FC1E121 */ jal getPlayer_c_lodscalez +/* 0896FC 7F054BCC E7B0001C */ swc1 $f16, 0x1c($sp) +/* 089700 7F054BD0 8FA30018 */ lw $v1, 0x18($sp) +/* 089704 7F054BD4 8FAF0020 */ lw $t7, 0x20($sp) +/* 089708 7F054BD8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 08970C 7F054BDC C4620008 */ lwc1 $f2, 8($v1) +/* 089710 7F054BE0 C5E80018 */ lwc1 $f8, 0x18($t7) +/* 089714 7F054BE4 44819000 */ mtc1 $at, $f18 +/* 089718 7F054BE8 C7A60024 */ lwc1 $f6, 0x24($sp) +/* 08971C 7F054BEC 46024281 */ sub.s $f10, $f8, $f2 +/* 089720 7F054BF0 C46E0004 */ lwc1 $f14, 4($v1) +/* 089724 7F054BF4 C7B0001C */ lwc1 $f16, 0x1c($sp) +/* 089728 7F054BF8 46125102 */ mul.s $f4, $f10, $f18 +/* 08972C 7F054BFC 46062203 */ div.s $f8, $f4, $f6 +/* 089730 7F054C00 46024280 */ add.s $f10, $f8, $f2 +/* 089734 7F054C04 46005302 */ mul.s $f12, $f10, $f0 +/* 089738 7F054C08 460C703E */ c.le.s $f14, $f12 +/* 08973C 7F054C0C 00000000 */ nop +/* 089740 7F054C10 45020005 */ bc1fl .L7F054C28 +/* 089744 7F054C14 C4600000 */ lwc1 $f0, ($v1) +/* 089748 7F054C18 44808000 */ mtc1 $zero, $f16 +/* 08974C 7F054C1C 1000000A */ b .L7F054C48 +/* 089750 7F054C20 8FBF0014 */ lw $ra, 0x14($sp) +/* 089754 7F054C24 C4600000 */ lwc1 $f0, ($v1) +.L7F054C28: +/* 089758 7F054C28 460C003C */ c.lt.s $f0, $f12 +/* 08975C 7F054C2C 00000000 */ nop +/* 089760 7F054C30 45020005 */ bc1fl .L7F054C48 +/* 089764 7F054C34 8FBF0014 */ lw $ra, 0x14($sp) +/* 089768 7F054C38 460C7481 */ sub.s $f18, $f14, $f12 +/* 08976C 7F054C3C 46007101 */ sub.s $f4, $f14, $f0 +/* 089770 7F054C40 46049403 */ div.s $f16, $f18, $f4 +.L7F054C44: +/* 089774 7F054C44 8FBF0014 */ lw $ra, 0x14($sp) +.L7F054C48: +/* 089778 7F054C48 27BD0020 */ addiu $sp, $sp, 0x20 +/* 08977C 7F054C4C 46008006 */ mov.s $f0, $f16 +/* 089780 7F054C50 03E00008 */ jr $ra +/* 089784 7F054C54 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F054C58(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F054C58 +/* 089788 7F054C58 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 08978C 7F054C5C AFBF0014 */ sw $ra, 0x14($sp) +/* 089790 7F054C60 240E0001 */ li $t6, 1 +/* 089794 7F054C64 AFA40038 */ sw $a0, 0x38($sp) +/* 089798 7F054C68 AFA5003C */ sw $a1, 0x3c($sp) +/* 08979C 7F054C6C 0FC2ECE6 */ jal return_nearfog_values +/* 0897A0 7F054C70 AFAE0034 */ sw $t6, 0x34($sp) +/* 0897A4 7F054C74 50400039 */ beql $v0, $zero, .L7F054D5C +/* 0897A8 7F054C78 8FBF0014 */ lw $ra, 0x14($sp) +/* 0897AC 7F054C7C 0FC227F5 */ jal get_BONDdata_position +/* 0897B0 7F054C80 AFA20030 */ sw $v0, 0x30($sp) +/* 0897B4 7F054C84 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0897B8 7F054C88 AFA2001C */ sw $v0, 0x1c($sp) +/* 0897BC 7F054C8C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0897C0 7F054C90 8FA50038 */ lw $a1, 0x38($sp) +/* 0897C4 7F054C94 8FA40030 */ lw $a0, 0x30($sp) +/* 0897C8 7F054C98 C4660000 */ lwc1 $f6, ($v1) +/* 0897CC 7F054C9C C4A40000 */ lwc1 $f4, ($a1) +/* 0897D0 7F054CA0 46062201 */ sub.s $f8, $f4, $f6 +/* 0897D4 7F054CA4 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0897D8 7F054CA8 C4700004 */ lwc1 $f16, 4($v1) +/* 0897DC 7F054CAC C4AA0004 */ lwc1 $f10, 4($a1) +/* 0897E0 7F054CB0 46105481 */ sub.s $f18, $f10, $f16 +/* 0897E4 7F054CB4 C7AA0024 */ lwc1 $f10, 0x24($sp) +/* 0897E8 7F054CB8 E7B20028 */ swc1 $f18, 0x28($sp) +/* 0897EC 7F054CBC C4660008 */ lwc1 $f6, 8($v1) +/* 0897F0 7F054CC0 C4A40008 */ lwc1 $f4, 8($a1) +/* 0897F4 7F054CC4 46062201 */ sub.s $f8, $f4, $f6 +/* 0897F8 7F054CC8 C7A40028 */ lwc1 $f4, 0x28($sp) +/* 0897FC 7F054CCC E7A8002C */ swc1 $f8, 0x2c($sp) +/* 089800 7F054CD0 C4500000 */ lwc1 $f16, ($v0) +/* 089804 7F054CD4 C4460004 */ lwc1 $f6, 4($v0) +/* 089808 7F054CD8 46105482 */ mul.s $f18, $f10, $f16 +/* 08980C 7F054CDC C4500008 */ lwc1 $f16, 8($v0) +/* 089810 7F054CE0 46062202 */ mul.s $f8, $f4, $f6 +/* 089814 7F054CE4 C7A4002C */ lwc1 $f4, 0x2c($sp) +/* 089818 7F054CE8 46048182 */ mul.s $f6, $f16, $f4 +/* 08981C 7F054CEC 46089280 */ add.s $f10, $f18, $f8 +/* 089820 7F054CF0 C4920008 */ lwc1 $f18, 8($a0) +/* 089824 7F054CF4 460A3300 */ add.s $f12, $f6, $f10 +/* 089828 7F054CF8 460C903C */ c.lt.s $f18, $f12 +/* 08982C 7F054CFC 00000000 */ nop +/* 089830 7F054D00 45020016 */ bc1fl .L7F054D5C +/* 089834 7F054D04 8FBF0014 */ lw $ra, 0x14($sp) +/* 089838 7F054D08 AFA40030 */ sw $a0, 0x30($sp) +/* 08983C 7F054D0C 0FC1E121 */ jal getPlayer_c_lodscalez +/* 089840 7F054D10 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 089844 7F054D14 8FA40030 */ lw $a0, 0x30($sp) +/* 089848 7F054D18 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 08984C 7F054D1C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 089850 7F054D20 C4820008 */ lwc1 $f2, 8($a0) +/* 089854 7F054D24 44818000 */ mtc1 $at, $f16 +/* 089858 7F054D28 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 08985C 7F054D2C 46026201 */ sub.s $f8, $f12, $f2 +/* 089860 7F054D30 46104102 */ mul.s $f4, $f8, $f16 +/* 089864 7F054D34 C4880004 */ lwc1 $f8, 4($a0) +/* 089868 7F054D38 46062283 */ div.s $f10, $f4, $f6 +/* 08986C 7F054D3C 46025480 */ add.s $f18, $f10, $f2 +/* 089870 7F054D40 46009302 */ mul.s $f12, $f18, $f0 +/* 089874 7F054D44 460C403E */ c.le.s $f8, $f12 +/* 089878 7F054D48 00000000 */ nop +/* 08987C 7F054D4C 45020003 */ bc1fl .L7F054D5C +/* 089880 7F054D50 8FBF0014 */ lw $ra, 0x14($sp) +/* 089884 7F054D54 AFA00034 */ sw $zero, 0x34($sp) +/* 089888 7F054D58 8FBF0014 */ lw $ra, 0x14($sp) +.L7F054D5C: +/* 08988C 7F054D5C 8FA20034 */ lw $v0, 0x34($sp) +/* 089890 7F054D60 27BD0038 */ addiu $sp, $sp, 0x38 +/* 089894 7F054D64 03E00008 */ jr $ra +/* 089898 7F054D68 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F054D6C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005345C +.word 0x4e742400 /*1.024e9*/ +glabel D_80053460 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053464 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053468 +.word 0x40490fdb /*3.1415927*/ +glabel D_8005346C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053470 +.word 0x40490fdb /*3.1415927*/ +glabel D_80053474 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053478 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005347C +.word 0x40490fdb /*3.1415927*/ +glabel D_80053480 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053484 +.word 0x3eb2b8c3 /*0.34906587*/ +glabel D_80053488 +.word 0x40490fdb /*3.1415927*/ +glabel D_8005348C +.word 0x471c4000 /*40000.0*/ +.text +glabel sub_GAME_7F054D6C +/* 08989C 7F054D6C 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0898A0 7F054D70 AFB10018 */ sw $s1, 0x18($sp) +/* 0898A4 7F054D74 00A08825 */ move $s1, $a1 +/* 0898A8 7F054D78 AFBF001C */ sw $ra, 0x1c($sp) +/* 0898AC 7F054D7C AFB00014 */ sw $s0, 0x14($sp) +/* 0898B0 7F054D80 AFA40070 */ sw $a0, 0x70($sp) +/* 0898B4 7F054D84 AFA60078 */ sw $a2, 0x78($sp) +/* 0898B8 7F054D88 AFA7007C */ sw $a3, 0x7c($sp) +/* 0898BC 7F054D8C AFA00044 */ sw $zero, 0x44($sp) +/* 0898C0 7F054D90 0FC0F2E3 */ jal sub_GAME_7F03CB8C +/* 0898C4 7F054D94 27A50050 */ addiu $a1, $sp, 0x50 +/* 0898C8 7F054D98 8FA40050 */ lw $a0, 0x50($sp) +/* 0898CC 7F054D9C 27B00050 */ addiu $s0, $sp, 0x50 +/* 0898D0 7F054DA0 0482003C */ bltzl $a0, .L7F054E94 +/* 0898D4 7F054DA4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F054DA8: +/* 0898D8 7F054DA8 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 0898DC 7F054DAC 00000000 */ nop +/* 0898E0 7F054DB0 10400033 */ beqz $v0, .L7F054E80 +/* 0898E4 7F054DB4 02202025 */ move $a0, $s1 +/* 0898E8 7F054DB8 0FC2ECB2 */ jal sub_GAME_7F0BB2C8 +/* 0898EC 7F054DBC 8FA50078 */ lw $a1, 0x78($sp) +/* 0898F0 7F054DC0 10400033 */ beqz $v0, .L7F054E90 +/* 0898F4 7F054DC4 8FAE007C */ lw $t6, 0x7c($sp) +/* 0898F8 7F054DC8 11C00004 */ beqz $t6, .L7F054DDC +/* 0898FC 7F054DCC 02202025 */ move $a0, $s1 +/* 089900 7F054DD0 0FC15316 */ jal sub_GAME_7F054C58 +/* 089904 7F054DD4 8FA50078 */ lw $a1, 0x78($sp) +/* 089908 7F054DD8 1040002D */ beqz $v0, .L7F054E90 +.L7F054DDC: +/* 08990C 7F054DDC 27B00034 */ addiu $s0, $sp, 0x34 +/* 089910 7F054DE0 02002825 */ move $a1, $s0 +/* 089914 7F054DE4 0FC15299 */ jal sub_GAME_7F054A64 +/* 089918 7F054DE8 8FA40070 */ lw $a0, 0x70($sp) +/* 08991C 7F054DEC 10400007 */ beqz $v0, .L7F054E0C +/* 089920 7F054DF0 02202025 */ move $a0, $s1 +/* 089924 7F054DF4 02202025 */ move $a0, $s1 +/* 089928 7F054DF8 8FA50078 */ lw $a1, 0x78($sp) +/* 08992C 7F054DFC 0FC1E2FD */ jal sub_GAME_7F078BF4 +/* 089930 7F054E00 02003025 */ move $a2, $s0 +/* 089934 7F054E04 10000004 */ b .L7F054E18 +/* 089938 7F054E08 AFA20044 */ sw $v0, 0x44($sp) +.L7F054E0C: +/* 08993C 7F054E0C 0FC1E296 */ jal sub_GAME_7F078A58 +/* 089940 7F054E10 8FA50078 */ lw $a1, 0x78($sp) +/* 089944 7F054E14 AFA20044 */ sw $v0, 0x44($sp) +.L7F054E18: +/* 089948 7F054E18 5040001E */ beql $v0, $zero, .L7F054E94 +/* 08994C 7F054E1C 8FBF001C */ lw $ra, 0x1c($sp) +/* 089950 7F054E20 0FC227F5 */ jal get_BONDdata_position +/* 089954 7F054E24 00000000 */ nop +/* 089958 7F054E28 C6240000 */ lwc1 $f4, ($s1) +/* 08995C 7F054E2C C4460000 */ lwc1 $f6, ($v0) +/* 089960 7F054E30 C6280004 */ lwc1 $f8, 4($s1) +/* 089964 7F054E34 C44A0004 */ lwc1 $f10, 4($v0) +/* 089968 7F054E38 46062001 */ sub.s $f0, $f4, $f6 +/* 08996C 7F054E3C C6300008 */ lwc1 $f16, 8($s1) +/* 089970 7F054E40 C4520008 */ lwc1 $f18, 8($v0) +/* 089974 7F054E44 460A4081 */ sub.s $f2, $f8, $f10 +/* 089978 7F054E48 46000182 */ mul.s $f6, $f0, $f0 +/* 08997C 7F054E4C 3C018005 */ lui $at, %hi(D_8005345C) +/* 089980 7F054E50 46128301 */ sub.s $f12, $f16, $f18 +/* 089984 7F054E54 46021202 */ mul.s $f8, $f2, $f2 +/* 089988 7F054E58 C424345C */ lwc1 $f4, %lo(D_8005345C)($at) +/* 08998C 7F054E5C 460C6402 */ mul.s $f16, $f12, $f12 +/* 089990 7F054E60 46083280 */ add.s $f10, $f6, $f8 +/* 089994 7F054E64 46105480 */ add.s $f18, $f10, $f16 +/* 089998 7F054E68 4612203C */ c.lt.s $f4, $f18 +/* 08999C 7F054E6C 00000000 */ nop +/* 0899A0 7F054E70 45020008 */ bc1fl .L7F054E94 +/* 0899A4 7F054E74 8FBF001C */ lw $ra, 0x1c($sp) +/* 0899A8 7F054E78 10000005 */ b .L7F054E90 +/* 0899AC 7F054E7C AFA00044 */ sw $zero, 0x44($sp) +.L7F054E80: +/* 0899B0 7F054E80 8E040004 */ lw $a0, 4($s0) +/* 0899B4 7F054E84 26100004 */ addiu $s0, $s0, 4 +/* 0899B8 7F054E88 0481FFC7 */ bgez $a0, .L7F054DA8 +/* 0899BC 7F054E8C 00000000 */ nop +.L7F054E90: +/* 0899C0 7F054E90 8FBF001C */ lw $ra, 0x1c($sp) +.L7F054E94: +/* 0899C4 7F054E94 8FA20044 */ lw $v0, 0x44($sp) +/* 0899C8 7F054E98 8FB00014 */ lw $s0, 0x14($sp) +/* 0899CC 7F054E9C 8FB10018 */ lw $s1, 0x18($sp) +/* 0899D0 7F054EA0 03E00008 */ jr $ra +/* 0899D4 7F054EA4 27BD0070 */ addiu $sp, $sp, 0x70 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F054EA8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F054EA8 +/* 0899D8 7F054EA8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0899DC 7F054EAC AFBF0024 */ sw $ra, 0x24($sp) +/* 0899E0 7F054EB0 AFB00020 */ sw $s0, 0x20($sp) +/* 0899E4 7F054EB4 808200BC */ lb $v0, 0xbc($a0) +/* 0899E8 7F054EB8 24010001 */ li $at, 1 +/* 0899EC 7F054EBC 00808025 */ move $s0, $a0 +/* 0899F0 7F054EC0 1441001C */ bne $v0, $at, .L7F054F34 +/* 0899F4 7F054EC4 00001825 */ move $v1, $zero +/* 0899F8 7F054EC8 C6040090 */ lwc1 $f4, 0x90($s0) +/* 0899FC 7F054ECC 8E050084 */ lw $a1, 0x84($s0) +/* 089A00 7F054ED0 8E07008C */ lw $a3, 0x8c($s0) +/* 089A04 7F054ED4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 089A08 7F054ED8 C6060094 */ lwc1 $f6, 0x94($s0) +/* 089A0C 7F054EDC 248400B4 */ addiu $a0, $a0, 0xb4 +/* 089A10 7F054EE0 260600B8 */ addiu $a2, $s0, 0xb8 +/* 089A14 7F054EE4 0FC10BC6 */ jal sub_GAME_7F042F18 +/* 089A18 7F054EE8 E7A60014 */ swc1 $f6, 0x14($sp) +/* 089A1C 7F054EEC C60200B4 */ lwc1 $f2, 0xb4($s0) +/* 089A20 7F054EF0 C6000084 */ lwc1 $f0, 0x84($s0) +/* 089A24 7F054EF4 24030001 */ li $v1, 1 +/* 089A28 7F054EF8 4602003E */ c.le.s $f0, $f2 +/* 089A2C 7F054EFC 00000000 */ nop +/* 089A30 7F054F00 45020004 */ bc1fl .L7F054F14 +/* 089A34 7F054F04 44806000 */ mtc1 $zero, $f12 +/* 089A38 7F054F08 10000025 */ b .L7F054FA0 +/* 089A3C 7F054F0C E60000B4 */ swc1 $f0, 0xb4($s0) +/* 089A40 7F054F10 44806000 */ mtc1 $zero, $f12 +.L7F054F14: +/* 089A44 7F054F14 00000000 */ nop +/* 089A48 7F054F18 460C103E */ c.le.s $f2, $f12 +/* 089A4C 7F054F1C 00000000 */ nop +/* 089A50 7F054F20 45000002 */ bc1f .L7F054F2C +/* 089A54 7F054F24 00000000 */ nop +/* 089A58 7F054F28 E60C00B4 */ swc1 $f12, 0xb4($s0) +.L7F054F2C: +/* 089A5C 7F054F2C 1000001C */ b .L7F054FA0 +/* 089A60 7F054F30 24030001 */ li $v1, 1 +.L7F054F34: +/* 089A64 7F054F34 24010002 */ li $at, 2 +/* 089A68 7F054F38 14410019 */ bne $v0, $at, .L7F054FA0 +/* 089A6C 7F054F3C 260400B4 */ addiu $a0, $s0, 0xb4 +/* 089A70 7F054F40 C6080090 */ lwc1 $f8, 0x90($s0) +/* 089A74 7F054F44 44806000 */ mtc1 $zero, $f12 +/* 089A78 7F054F48 8E07008C */ lw $a3, 0x8c($s0) +/* 089A7C 7F054F4C E7A80010 */ swc1 $f8, 0x10($sp) +/* 089A80 7F054F50 C60A0094 */ lwc1 $f10, 0x94($s0) +/* 089A84 7F054F54 44056000 */ mfc1 $a1, $f12 +/* 089A88 7F054F58 260600B8 */ addiu $a2, $s0, 0xb8 +/* 089A8C 7F054F5C 0FC10BC6 */ jal sub_GAME_7F042F18 +/* 089A90 7F054F60 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 089A94 7F054F64 C60200B4 */ lwc1 $f2, 0xb4($s0) +/* 089A98 7F054F68 C6000084 */ lwc1 $f0, 0x84($s0) +/* 089A9C 7F054F6C 44806000 */ mtc1 $zero, $f12 +/* 089AA0 7F054F70 24030001 */ li $v1, 1 +/* 089AA4 7F054F74 4602003E */ c.le.s $f0, $f2 +/* 089AA8 7F054F78 00000000 */ nop +/* 089AAC 7F054F7C 45020004 */ bc1fl .L7F054F90 +/* 089AB0 7F054F80 460C103E */ c.le.s $f2, $f12 +/* 089AB4 7F054F84 10000006 */ b .L7F054FA0 +/* 089AB8 7F054F88 E60000B4 */ swc1 $f0, 0xb4($s0) +/* 089ABC 7F054F8C 460C103E */ c.le.s $f2, $f12 +.L7F054F90: +/* 089AC0 7F054F90 00000000 */ nop +/* 089AC4 7F054F94 45000002 */ bc1f .L7F054FA0 +/* 089AC8 7F054F98 00000000 */ nop +/* 089ACC 7F054F9C E60C00B4 */ swc1 $f12, 0xb4($s0) +.L7F054FA0: +/* 089AD0 7F054FA0 8FBF0024 */ lw $ra, 0x24($sp) +/* 089AD4 7F054FA4 8FB00020 */ lw $s0, 0x20($sp) +/* 089AD8 7F054FA8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 089ADC 7F054FAC 03E00008 */ jr $ra +/* 089AE0 7F054FB0 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F054FB4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F054FB4 +/* 089AE4 7F054FB4 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 089AE8 7F054FB8 AFB50030 */ sw $s5, 0x30($sp) +/* 089AEC 7F054FBC AFB4002C */ sw $s4, 0x2c($sp) +/* 089AF0 7F054FC0 AFB20024 */ sw $s2, 0x24($sp) +/* 089AF4 7F054FC4 AFB10020 */ sw $s1, 0x20($sp) +/* 089AF8 7F054FC8 00809025 */ move $s2, $a0 +/* 089AFC 7F054FCC AFBF0034 */ sw $ra, 0x34($sp) +/* 089B00 7F054FD0 AFB30028 */ sw $s3, 0x28($sp) +/* 089B04 7F054FD4 AFB0001C */ sw $s0, 0x1c($sp) +/* 089B08 7F054FD8 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 089B0C 7F054FDC 0000A025 */ move $s4, $zero +/* 089B10 7F054FE0 24150001 */ li $s5, 1 +/* 089B14 7F054FE4 10800010 */ beqz $a0, .L7F055028 +/* 089B18 7F054FE8 00808825 */ move $s1, $a0 +/* 089B1C 7F054FEC C62400B4 */ lwc1 $f4, 0xb4($s1) +.L7F054FF0: +/* 089B20 7F054FF0 02202025 */ move $a0, $s1 +/* 089B24 7F054FF4 0FC153AA */ jal sub_GAME_7F054EA8 +/* 089B28 7F054FF8 E62400FC */ swc1 $f4, 0xfc($s1) +/* 089B2C 7F054FFC 50400003 */ beql $v0, $zero, .L7F05500C +/* 089B30 7F055000 8E3100C8 */ lw $s1, 0xc8($s1) +/* 089B34 7F055004 24140001 */ li $s4, 1 +/* 089B38 7F055008 8E3100C8 */ lw $s1, 0xc8($s1) +.L7F05500C: +/* 089B3C 7F05500C 16320003 */ bne $s1, $s2, .L7F05501C +/* 089B40 7F055010 00000000 */ nop +/* 089B44 7F055014 10000004 */ b .L7F055028 +/* 089B48 7F055018 02408825 */ move $s1, $s2 +.L7F05501C: +/* 089B4C 7F05501C 5620FFF4 */ bnezl $s1, .L7F054FF0 +/* 089B50 7F055020 C62400B4 */ lwc1 $f4, 0xb4($s1) +/* 089B54 7F055024 02408825 */ move $s1, $s2 +.L7F055028: +/* 089B58 7F055028 12800013 */ beqz $s4, .L7F055078 +/* 089B5C 7F05502C 00000000 */ nop +/* 089B60 7F055030 12400011 */ beqz $s2, .L7F055078 +/* 089B64 7F055034 00000000 */ nop +.L7F055038: +/* 089B68 7F055038 0FC14AC0 */ jal sub_GAME_7F052B00 +/* 089B6C 7F05503C 02202025 */ move $a0, $s1 +/* 089B70 7F055040 0FC1122A */ jal sub_GAME_7F0448A8 +/* 089B74 7F055044 8E240010 */ lw $a0, 0x10($s1) +/* 089B78 7F055048 14400003 */ bnez $v0, .L7F055058 +/* 089B7C 7F05504C 0040A825 */ move $s5, $v0 +/* 089B80 7F055050 10000009 */ b .L7F055078 +/* 089B84 7F055054 02408825 */ move $s1, $s2 +.L7F055058: +/* 089B88 7F055058 8E3100C8 */ lw $s1, 0xc8($s1) +/* 089B8C 7F05505C 16320003 */ bne $s1, $s2, .L7F05506C +/* 089B90 7F055060 00000000 */ nop +/* 089B94 7F055064 10000004 */ b .L7F055078 +/* 089B98 7F055068 02408825 */ move $s1, $s2 +.L7F05506C: +/* 089B9C 7F05506C 1620FFF2 */ bnez $s1, .L7F055038 +/* 089BA0 7F055070 00000000 */ nop +/* 089BA4 7F055074 02408825 */ move $s1, $s2 +.L7F055078: +/* 089BA8 7F055078 12400062 */ beqz $s2, .L7F055204 +/* 089BAC 7F05507C 3C138005 */ lui $s3, %hi(global_timer) +/* 089BB0 7F055080 4480A000 */ mtc1 $zero, $f20 +/* 089BB4 7F055084 2673837C */ addiu $s3, %lo(global_timer) # addiu $s3, $s3, -0x7c84 +.L7F055088: +/* 089BB8 7F055088 52800030 */ beql $s4, $zero, .L7F05514C +/* 089BBC 7F05508C 962F0098 */ lhu $t7, 0x98($s1) +/* 089BC0 7F055090 12A00025 */ beqz $s5, .L7F055128 +/* 089BC4 7F055094 02202025 */ move $a0, $s1 +/* 089BC8 7F055098 822200BC */ lb $v0, 0xbc($s1) +/* 089BCC 7F05509C 24010001 */ li $at, 1 +/* 089BD0 7F0550A0 54410010 */ bnel $v0, $at, .L7F0550E4 +/* 089BD4 7F0550A4 24010002 */ li $at, 2 +/* 089BD8 7F0550A8 C62600B4 */ lwc1 $f6, 0xb4($s1) +/* 089BDC 7F0550AC C6280084 */ lwc1 $f8, 0x84($s1) +/* 089BE0 7F0550B0 4606403E */ c.le.s $f8, $f6 +/* 089BE4 7F0550B4 00000000 */ nop +/* 089BE8 7F0550B8 45020017 */ bc1fl .L7F055118 +/* 089BEC 7F0550BC 8E240010 */ lw $a0, 0x10($s1) +/* 089BF0 7F0550C0 A22000BC */ sb $zero, 0xbc($s1) +/* 089BF4 7F0550C4 E63400B8 */ swc1 $f20, 0xb8($s1) +/* 089BF8 7F0550C8 8E6E0000 */ lw $t6, ($s3) +/* 089BFC 7F0550CC 02202025 */ move $a0, $s1 +/* 089C00 7F0550D0 0FC15203 */ jal sub_GAME_7F05480C +/* 089C04 7F0550D4 AE2E00EC */ sw $t6, 0xec($s1) +/* 089C08 7F0550D8 1000000F */ b .L7F055118 +/* 089C0C 7F0550DC 8E240010 */ lw $a0, 0x10($s1) +/* 089C10 7F0550E0 24010002 */ li $at, 2 +.L7F0550E4: +/* 089C14 7F0550E4 5441000C */ bnel $v0, $at, .L7F055118 +/* 089C18 7F0550E8 8E240010 */ lw $a0, 0x10($s1) +/* 089C1C 7F0550EC C62A00B4 */ lwc1 $f10, 0xb4($s1) +/* 089C20 7F0550F0 02202025 */ move $a0, $s1 +/* 089C24 7F0550F4 4614503E */ c.le.s $f10, $f20 +/* 089C28 7F0550F8 00000000 */ nop +/* 089C2C 7F0550FC 45020006 */ bc1fl .L7F055118 +/* 089C30 7F055100 8E240010 */ lw $a0, 0x10($s1) +/* 089C34 7F055104 A22000BC */ sb $zero, 0xbc($s1) +/* 089C38 7F055108 E63400B8 */ swc1 $f20, 0xb8($s1) +/* 089C3C 7F05510C 0FC1521F */ jal sub_GAME_7F05487C +/* 089C40 7F055110 AE2000EC */ sw $zero, 0xec($s1) +/* 089C44 7F055114 8E240010 */ lw $a0, 0x10($s1) +.L7F055118: +/* 089C48 7F055118 0FC100AD */ jal sub_GAME_7F0402B4 +/* 089C4C 7F05511C 2625007C */ addiu $a1, $s1, 0x7c +/* 089C50 7F055120 10000005 */ b .L7F055138 +/* 089C54 7F055124 00000000 */ nop +.L7F055128: +/* 089C58 7F055128 C63000FC */ lwc1 $f16, 0xfc($s1) +/* 089C5C 7F05512C E63400B8 */ swc1 $f20, 0xb8($s1) +/* 089C60 7F055130 0FC14AC0 */ jal sub_GAME_7F052B00 +/* 089C64 7F055134 E63000B4 */ swc1 $f16, 0xb4($s1) +.L7F055138: +/* 089C68 7F055138 0FC14B63 */ jal sub_GAME_7F052D8C +/* 089C6C 7F05513C 02202025 */ move $a0, $s1 +/* 089C70 7F055140 1000002A */ b .L7F0551EC +/* 089C74 7F055144 8E690000 */ lw $t1, ($s3) +/* 089C78 7F055148 962F0098 */ lhu $t7, 0x98($s1) +.L7F05514C: +/* 089C7C 7F05514C 31F80004 */ andi $t8, $t7, 4 +/* 089C80 7F055150 53000026 */ beql $t8, $zero, .L7F0551EC +/* 089C84 7F055154 8E690000 */ lw $t1, ($s3) +/* 089C88 7F055158 8E240014 */ lw $a0, 0x14($s1) +/* 089C8C 7F05515C 8C990008 */ lw $t9, 8($a0) +/* 089C90 7F055160 8F280000 */ lw $t0, ($t9) +/* 089C94 7F055164 8D090014 */ lw $t1, 0x14($t0) +/* 089C98 7F055168 8D250014 */ lw $a1, 0x14($t1) +/* 089C9C 7F05516C 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 089CA0 7F055170 8CB00004 */ lw $s0, 4($a1) +/* 089CA4 7F055174 8E2300CC */ lw $v1, 0xcc($s1) +/* 089CA8 7F055178 8C4A0000 */ lw $t2, ($v0) +/* 089CAC 7F05517C 506A001A */ beql $v1, $t2, .L7F0551E8 +/* 089CB0 7F055180 AC430000 */ sw $v1, ($v0) +/* 089CB4 7F055184 860B000C */ lh $t3, 0xc($s0) +/* 089CB8 7F055188 00002025 */ move $a0, $zero +/* 089CBC 7F05518C 59600016 */ blezl $t3, .L7F0551E8 +/* 089CC0 7F055190 AC430000 */ sw $v1, ($v0) +/* 089CC4 7F055194 00001825 */ move $v1, $zero +/* 089CC8 7F055198 8C4E0000 */ lw $t6, ($v0) +.L7F05519C: +/* 089CCC 7F05519C 8E2C00CC */ lw $t4, 0xcc($s1) +/* 089CD0 7F0551A0 24840001 */ addiu $a0, $a0, 1 +/* 089CD4 7F0551A4 01C37821 */ addu $t7, $t6, $v1 +/* 089CD8 7F0551A8 8DE10000 */ lw $at, ($t7) +/* 089CDC 7F0551AC 01836821 */ addu $t5, $t4, $v1 +/* 089CE0 7F0551B0 24630010 */ addiu $v1, $v1, 0x10 +/* 089CE4 7F0551B4 ADA10000 */ sw $at, ($t5) +/* 089CE8 7F0551B8 8DF90004 */ lw $t9, 4($t7) +/* 089CEC 7F0551BC ADB90004 */ sw $t9, 4($t5) +/* 089CF0 7F0551C0 8DE10008 */ lw $at, 8($t7) +/* 089CF4 7F0551C4 ADA10008 */ sw $at, 8($t5) +/* 089CF8 7F0551C8 8DF9000C */ lw $t9, 0xc($t7) +/* 089CFC 7F0551CC ADB9000C */ sw $t9, 0xc($t5) +/* 089D00 7F0551D0 8608000C */ lh $t0, 0xc($s0) +/* 089D04 7F0551D4 0088082A */ slt $at, $a0, $t0 +/* 089D08 7F0551D8 5420FFF0 */ bnezl $at, .L7F05519C +/* 089D0C 7F0551DC 8C4E0000 */ lw $t6, ($v0) +/* 089D10 7F0551E0 8E2300CC */ lw $v1, 0xcc($s1) +/* 089D14 7F0551E4 AC430000 */ sw $v1, ($v0) +.L7F0551E8: +/* 089D18 7F0551E8 8E690000 */ lw $t1, ($s3) +.L7F0551EC: +/* 089D1C 7F0551EC AE2900FC */ sw $t1, 0xfc($s1) +/* 089D20 7F0551F0 8E3100C8 */ lw $s1, 0xc8($s1) +/* 089D24 7F0551F4 52320004 */ beql $s1, $s2, .L7F055208 +/* 089D28 7F0551F8 8FBF0034 */ lw $ra, 0x34($sp) +/* 089D2C 7F0551FC 1620FFA2 */ bnez $s1, .L7F055088 +/* 089D30 7F055200 00000000 */ nop +.L7F055204: +/* 089D34 7F055204 8FBF0034 */ lw $ra, 0x34($sp) +.L7F055208: +/* 089D38 7F055208 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 089D3C 7F05520C 8FB0001C */ lw $s0, 0x1c($sp) +/* 089D40 7F055210 8FB10020 */ lw $s1, 0x20($sp) +/* 089D44 7F055214 8FB20024 */ lw $s2, 0x24($sp) +/* 089D48 7F055218 8FB30028 */ lw $s3, 0x28($sp) +/* 089D4C 7F05521C 8FB4002C */ lw $s4, 0x2c($sp) +/* 089D50 7F055220 8FB50030 */ lw $s5, 0x30($sp) +/* 089D54 7F055224 03E00008 */ jr $ra +/* 089D58 7F055228 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05522C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05522C +/* 089D5C 7F05522C 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 089D60 7F055230 AFBF0014 */ sw $ra, 0x14($sp) +/* 089D64 7F055234 AFA40068 */ sw $a0, 0x68($sp) +/* 089D68 7F055238 AFA5006C */ sw $a1, 0x6c($sp) +/* 089D6C 7F05523C AFA60070 */ sw $a2, 0x70($sp) +/* 089D70 7F055240 AFA70074 */ sw $a3, 0x74($sp) +/* 089D74 7F055244 84990006 */ lh $t9, 6($a0) +/* 089D78 7F055248 3C098007 */ lui $t1, %hi(ptr_2xxxpresets) +/* 089D7C 7F05524C 8D295D1C */ lw $t1, %lo(ptr_2xxxpresets)($t1) +/* 089D80 7F055250 00194100 */ sll $t0, $t9, 4 +/* 089D84 7F055254 01194021 */ addu $t0, $t0, $t9 +/* 089D88 7F055258 00084080 */ sll $t0, $t0, 2 +/* 089D8C 7F05525C 01091821 */ addu $v1, $t0, $t1 +/* 089D90 7F055260 0FC225E6 */ jal get_curplayer_positiondata +/* 089D94 7F055264 AFA3005C */ sw $v1, 0x5c($sp) +/* 089D98 7F055268 3C048008 */ lui $a0, %hi(pPlayer) +/* 089D9C 7F05526C 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 089DA0 7F055270 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 089DA4 7F055274 44810000 */ mtc1 $at, $f0 +/* 089DA8 7F055278 C4840498 */ lwc1 $f4, 0x498($a0) +/* 089DAC 7F05527C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 089DB0 7F055280 44811000 */ mtc1 $at, $f2 +/* 089DB4 7F055284 46002282 */ mul.s $f10, $f4, $f0 +/* 089DB8 7F055288 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 089DBC 7F05528C 44816000 */ mtc1 $at, $f12 +/* 089DC0 7F055290 C4440008 */ lwc1 $f4, 8($v0) +/* 089DC4 7F055294 8FAA0074 */ lw $t2, 0x74($sp) +/* 089DC8 7F055298 8FA3005C */ lw $v1, 0x5c($sp) +/* 089DCC 7F05529C 46025202 */ mul.s $f8, $f10, $f2 +/* 089DD0 7F0552A0 00000000 */ nop +/* 089DD4 7F0552A4 460C4182 */ mul.s $f6, $f8, $f12 +/* 089DD8 7F0552A8 46043280 */ add.s $f10, $f6, $f4 +/* 089DDC 7F0552AC E7AA0030 */ swc1 $f10, 0x30($sp) +/* 089DE0 7F0552B0 C448000C */ lwc1 $f8, 0xc($v0) +/* 089DE4 7F0552B4 E7A80034 */ swc1 $f8, 0x34($sp) +/* 089DE8 7F0552B8 C48604A0 */ lwc1 $f6, 0x4a0($a0) +/* 089DEC 7F0552BC 46003102 */ mul.s $f4, $f6, $f0 +/* 089DF0 7F0552C0 C4460010 */ lwc1 $f6, 0x10($v0) +/* 089DF4 7F0552C4 46022282 */ mul.s $f10, $f4, $f2 +/* 089DF8 7F0552C8 00000000 */ nop +/* 089DFC 7F0552CC 460C5202 */ mul.s $f8, $f10, $f12 +/* 089E00 7F0552D0 46064100 */ add.s $f4, $f8, $f6 +/* 089E04 7F0552D4 1140001D */ beqz $t2, .L7F05534C +/* 089E08 7F0552D8 E7A40038 */ swc1 $f4, 0x38($sp) +/* 089E0C 7F0552DC C46A0030 */ lwc1 $f10, 0x30($v1) +/* 089E10 7F0552E0 C472002C */ lwc1 $f18, 0x2c($v1) +/* 089E14 7F0552E4 E7AA003C */ swc1 $f10, 0x3c($sp) +/* 089E18 7F0552E8 C4680010 */ lwc1 $f8, 0x10($v1) +/* 089E1C 7F0552EC C4660020 */ lwc1 $f6, 0x20($v1) +/* 089E20 7F0552F0 C46A001C */ lwc1 $f10, 0x1c($v1) +/* 089E24 7F0552F4 46064102 */ mul.s $f4, $f8, $f6 +/* 089E28 7F0552F8 C4680014 */ lwc1 $f8, 0x14($v1) +/* 089E2C 7F0552FC 46085182 */ mul.s $f6, $f10, $f8 +/* 089E30 7F055300 46062281 */ sub.s $f10, $f4, $f6 +/* 089E34 7F055304 E7AA0044 */ swc1 $f10, 0x44($sp) +/* 089E38 7F055308 C4640018 */ lwc1 $f4, 0x18($v1) +/* 089E3C 7F05530C C4680014 */ lwc1 $f8, 0x14($v1) +/* 089E40 7F055310 C46A0020 */ lwc1 $f10, 0x20($v1) +/* 089E44 7F055314 46044182 */ mul.s $f6, $f8, $f4 +/* 089E48 7F055318 C468000C */ lwc1 $f8, 0xc($v1) +/* 089E4C 7F05531C 46085102 */ mul.s $f4, $f10, $f8 +/* 089E50 7F055320 46043281 */ sub.s $f10, $f6, $f4 +/* 089E54 7F055324 E7AA0048 */ swc1 $f10, 0x48($sp) +/* 089E58 7F055328 C466001C */ lwc1 $f6, 0x1c($v1) +/* 089E5C 7F05532C C468000C */ lwc1 $f8, 0xc($v1) +/* 089E60 7F055330 C46A0018 */ lwc1 $f10, 0x18($v1) +/* 089E64 7F055334 46064102 */ mul.s $f4, $f8, $f6 +/* 089E68 7F055338 C4680010 */ lwc1 $f8, 0x10($v1) +/* 089E6C 7F05533C 46085182 */ mul.s $f6, $f10, $f8 +/* 089E70 7F055340 46062281 */ sub.s $f10, $f4, $f6 +/* 089E74 7F055344 1000000A */ b .L7F055370 +/* 089E78 7F055348 E7AA004C */ swc1 $f10, 0x4c($sp) +.L7F05534C: +/* 089E7C 7F05534C C4680038 */ lwc1 $f8, 0x38($v1) +/* 089E80 7F055350 C4720034 */ lwc1 $f18, 0x34($v1) +/* 089E84 7F055354 E7A8003C */ swc1 $f8, 0x3c($sp) +/* 089E88 7F055358 C464000C */ lwc1 $f4, 0xc($v1) +/* 089E8C 7F05535C E7A40044 */ swc1 $f4, 0x44($sp) +/* 089E90 7F055360 C4660010 */ lwc1 $f6, 0x10($v1) +/* 089E94 7F055364 E7A60048 */ swc1 $f6, 0x48($sp) +/* 089E98 7F055368 C46A0014 */ lwc1 $f10, 0x14($v1) +/* 089E9C 7F05536C E7AA004C */ swc1 $f10, 0x4c($sp) +.L7F055370: +/* 089EA0 7F055370 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 089EA4 7F055374 C4680000 */ lwc1 $f8, ($v1) +/* 089EA8 7F055378 46122182 */ mul.s $f6, $f4, $f18 +/* 089EAC 7F05537C C7A40030 */ lwc1 $f4, 0x30($sp) +/* 089EB0 7F055380 46064280 */ add.s $f10, $f8, $f6 +/* 089EB4 7F055384 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 089EB8 7F055388 C4680008 */ lwc1 $f8, 8($v1) +/* 089EBC 7F05538C E7B20040 */ swc1 $f18, 0x40($sp) +/* 089EC0 7F055390 46045301 */ sub.s $f12, $f10, $f4 +/* 089EC4 7F055394 46123282 */ mul.s $f10, $f6, $f18 +/* 089EC8 7F055398 C7A60038 */ lwc1 $f6, 0x38($sp) +/* 089ECC 7F05539C AFA3005C */ sw $v1, 0x5c($sp) +/* 089ED0 7F0553A0 460A4100 */ add.s $f4, $f8, $f10 +/* 089ED4 7F0553A4 0FC16A8C */ jal atan2f +/* 089ED8 7F0553A8 46062381 */ sub.s $f14, $f4, $f6 +/* 089EDC 7F0553AC 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 089EE0 7F0553B0 E7A00020 */ swc1 $f0, 0x20($sp) +/* 089EE4 7F0553B4 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 089EE8 7F0553B8 8FA3005C */ lw $v1, 0x5c($sp) +/* 089EEC 7F0553BC C7B20040 */ lwc1 $f18, 0x40($sp) +/* 089EF0 7F0553C0 4600603C */ c.lt.s $f12, $f0 +/* 089EF4 7F0553C4 3C018005 */ lui $at, %hi(D_80053460) +/* 089EF8 7F0553C8 46006381 */ sub.s $f14, $f12, $f0 +/* 089EFC 7F0553CC 8FA20068 */ lw $v0, 0x68($sp) +/* 089F00 7F0553D0 C7B0003C */ lwc1 $f16, 0x3c($sp) +/* 089F04 7F0553D4 45000003 */ bc1f .L7F0553E4 +/* 089F08 7F0553D8 46007086 */ mov.s $f2, $f14 +/* 089F0C 7F0553DC C4203460 */ lwc1 $f0, %lo(D_80053460)($at) +/* 089F10 7F0553E0 46007080 */ add.s $f2, $f14, $f0 +.L7F0553E4: +/* 089F14 7F0553E4 3C018005 */ lui $at, %hi(D_80053464) +/* 089F18 7F0553E8 C4203464 */ lwc1 $f0, %lo(D_80053464)($at) +/* 089F1C 7F0553EC 3C018005 */ lui $at, %hi(D_80053468) +/* 089F20 7F0553F0 C4283468 */ lwc1 $f8, %lo(D_80053468)($at) +/* 089F24 7F0553F4 C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 089F28 7F0553F8 4602403C */ c.lt.s $f8, $f2 +/* 089F2C 7F0553FC 00000000 */ nop +/* 089F30 7F055400 45020003 */ bc1fl .L7F055410 +/* 089F34 7F055404 944B009A */ lhu $t3, 0x9a($v0) +/* 089F38 7F055408 46001081 */ sub.s $f2, $f2, $f0 +/* 089F3C 7F05540C 944B009A */ lhu $t3, 0x9a($v0) +.L7F055410: +/* 089F40 7F055410 24010005 */ li $at, 5 +/* 089F44 7F055414 15610046 */ bne $t3, $at, .L7F055530 +/* 089F48 7F055418 00000000 */ nop +/* 089F4C 7F05541C C44A00B4 */ lwc1 $f10, 0xb4($v0) +/* 089F50 7F055420 8C4C0008 */ lw $t4, 8($v0) +/* 089F54 7F055424 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 089F58 7F055428 46005102 */ mul.s $f4, $f10, $f0 +/* 089F5C 7F05542C 44813000 */ mtc1 $at, $f6 +/* 089F60 7F055430 000C6880 */ sll $t5, $t4, 2 +/* 089F64 7F055434 05A10002 */ bgez $t5, .L7F055440 +/* 089F68 7F055438 46062303 */ div.s $f12, $f4, $f6 +/* 089F6C 7F05543C 460C0301 */ sub.s $f12, $f0, $f12 +.L7F055440: +/* 089F70 7F055440 AFA3005C */ sw $v1, 0x5c($sp) +/* 089F74 7F055444 E7A20064 */ swc1 $f2, 0x64($sp) +/* 089F78 7F055448 E7AC002C */ swc1 $f12, 0x2c($sp) +/* 089F7C 7F05544C 0FC15FA8 */ jal cosf +/* 089F80 7F055450 E7B20040 */ swc1 $f18, 0x40($sp) +/* 089F84 7F055454 C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 089F88 7F055458 0FC15FAB */ jal sinf +/* 089F8C 7F05545C E7A00028 */ swc1 $f0, 0x28($sp) +/* 089F90 7F055460 C7B20040 */ lwc1 $f18, 0x40($sp) +/* 089F94 7F055464 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 089F98 7F055468 8FA3005C */ lw $v1, 0x5c($sp) +/* 089F9C 7F05546C C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 089FA0 7F055470 46122182 */ mul.s $f6, $f4, $f18 +/* 089FA4 7F055474 C46A0000 */ lwc1 $f10, ($v1) +/* 089FA8 7F055478 46124081 */ sub.s $f2, $f8, $f18 +/* 089FAC 7F05547C C7B00028 */ lwc1 $f16, 0x28($sp) +/* 089FB0 7F055480 46065200 */ add.s $f8, $f10, $f6 +/* 089FB4 7F055484 46102282 */ mul.s $f10, $f4, $f16 +/* 089FB8 7F055488 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 089FBC 7F05548C E7A80018 */ swc1 $f8, 0x18($sp) +/* 089FC0 7F055490 46003202 */ mul.s $f8, $f6, $f0 +/* 089FC4 7F055494 46085280 */ add.s $f10, $f10, $f8 +/* 089FC8 7F055498 460A1202 */ mul.s $f8, $f2, $f10 +/* 089FCC 7F05549C C7AA0018 */ lwc1 $f10, 0x18($sp) +/* 089FD0 7F0554A0 46085280 */ add.s $f10, $f10, $f8 +/* 089FD4 7F0554A4 C7A80030 */ lwc1 $f8, 0x30($sp) +/* 089FD8 7F0554A8 46085301 */ sub.s $f12, $f10, $f8 +/* 089FDC 7F0554AC 46123202 */ mul.s $f8, $f6, $f18 +/* 089FE0 7F0554B0 C46A0008 */ lwc1 $f10, 8($v1) +/* 089FE4 7F0554B4 46085280 */ add.s $f10, $f10, $f8 +/* 089FE8 7F0554B8 46002207 */ neg.s $f8, $f4 +/* 089FEC 7F0554BC 46004102 */ mul.s $f4, $f8, $f0 +/* 089FF0 7F0554C0 00000000 */ nop +/* 089FF4 7F0554C4 46103202 */ mul.s $f8, $f6, $f16 +/* 089FF8 7F0554C8 46082180 */ add.s $f6, $f4, $f8 +/* 089FFC 7F0554CC 46061102 */ mul.s $f4, $f2, $f6 +/* 08A000 7F0554D0 C7A60038 */ lwc1 $f6, 0x38($sp) +/* 08A004 7F0554D4 46045200 */ add.s $f8, $f10, $f4 +/* 08A008 7F0554D8 0FC16A8C */ jal atan2f +/* 08A00C 7F0554DC 46064381 */ sub.s $f14, $f8, $f6 +/* 08A010 7F0554E0 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 08A014 7F0554E4 E7A00020 */ swc1 $f0, 0x20($sp) +/* 08A018 7F0554E8 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 08A01C 7F0554EC 3C018005 */ lui $at, %hi(D_8005346C) +/* 08A020 7F0554F0 4600603C */ c.lt.s $f12, $f0 +/* 08A024 7F0554F4 46006381 */ sub.s $f14, $f12, $f0 +/* 08A028 7F0554F8 45000003 */ bc1f .L7F055508 +/* 08A02C 7F0554FC 46007086 */ mov.s $f2, $f14 +/* 08A030 7F055500 C42A346C */ lwc1 $f10, %lo(D_8005346C)($at) +/* 08A034 7F055504 460A7080 */ add.s $f2, $f14, $f10 +.L7F055508: +/* 08A038 7F055508 3C018005 */ lui $at, %hi(D_80053470) +/* 08A03C 7F05550C C4243470 */ lwc1 $f4, %lo(D_80053470)($at) +/* 08A040 7F055510 3C018005 */ lui $at, %hi(D_80053474) +/* 08A044 7F055514 4602203C */ c.lt.s $f4, $f2 +/* 08A048 7F055518 00000000 */ nop +/* 08A04C 7F05551C 45020025 */ bc1fl .L7F0555B4 +/* 08A050 7F055520 C7A00064 */ lwc1 $f0, 0x64($sp) +/* 08A054 7F055524 C4283474 */ lwc1 $f8, %lo(D_80053474)($at) +/* 08A058 7F055528 10000021 */ b .L7F0555B0 +/* 08A05C 7F05552C 46081081 */ sub.s $f2, $f2, $f8 +.L7F055530: +/* 08A060 7F055530 46105102 */ mul.s $f4, $f10, $f16 +/* 08A064 7F055534 C4660000 */ lwc1 $f6, ($v1) +/* 08A068 7F055538 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 08A06C 7F05553C 46043200 */ add.s $f8, $f6, $f4 +/* 08A070 7F055540 C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 08A074 7F055544 C4660008 */ lwc1 $f6, 8($v1) +/* 08A078 7F055548 E7A20064 */ swc1 $f2, 0x64($sp) +/* 08A07C 7F05554C 460A4301 */ sub.s $f12, $f8, $f10 +/* 08A080 7F055550 46102202 */ mul.s $f8, $f4, $f16 +/* 08A084 7F055554 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 08A088 7F055558 46083280 */ add.s $f10, $f6, $f8 +/* 08A08C 7F05555C 0FC16A8C */ jal atan2f +/* 08A090 7F055560 46045381 */ sub.s $f14, $f10, $f4 +/* 08A094 7F055564 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 08A098 7F055568 E7A00020 */ swc1 $f0, 0x20($sp) +/* 08A09C 7F05556C C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 08A0A0 7F055570 3C018005 */ lui $at, %hi(D_80053478) +/* 08A0A4 7F055574 4600603C */ c.lt.s $f12, $f0 +/* 08A0A8 7F055578 46006381 */ sub.s $f14, $f12, $f0 +/* 08A0AC 7F05557C 45000003 */ bc1f .L7F05558C +/* 08A0B0 7F055580 46007086 */ mov.s $f2, $f14 +/* 08A0B4 7F055584 C4263478 */ lwc1 $f6, %lo(D_80053478)($at) +/* 08A0B8 7F055588 46067080 */ add.s $f2, $f14, $f6 +.L7F05558C: +/* 08A0BC 7F05558C 3C018005 */ lui $at, %hi(D_8005347C) +/* 08A0C0 7F055590 C428347C */ lwc1 $f8, %lo(D_8005347C)($at) +/* 08A0C4 7F055594 3C018005 */ lui $at, %hi(D_80053480) +/* 08A0C8 7F055598 4602403C */ c.lt.s $f8, $f2 +/* 08A0CC 7F05559C 00000000 */ nop +/* 08A0D0 7F0555A0 45020004 */ bc1fl .L7F0555B4 +/* 08A0D4 7F0555A4 C7A00064 */ lwc1 $f0, 0x64($sp) +/* 08A0D8 7F0555A8 C42A3480 */ lwc1 $f10, %lo(D_80053480)($at) +/* 08A0DC 7F0555AC 460A1081 */ sub.s $f2, $f2, $f10 +.L7F0555B0: +/* 08A0E0 7F0555B0 C7A00064 */ lwc1 $f0, 0x64($sp) +.L7F0555B4: +/* 08A0E4 7F0555B4 8FAE006C */ lw $t6, 0x6c($sp) +/* 08A0E8 7F0555B8 8FB8006C */ lw $t8, 0x6c($sp) +/* 08A0EC 7F0555BC 4602003C */ c.lt.s $f0, $f2 +/* 08A0F0 7F0555C0 00000000 */ nop +/* 08A0F4 7F0555C4 45020006 */ bc1fl .L7F0555E0 +/* 08A0F8 7F0555C8 E7020000 */ swc1 $f2, ($t8) +/* 08A0FC 7F0555CC E5C00000 */ swc1 $f0, ($t6) +/* 08A100 7F0555D0 8FAF0070 */ lw $t7, 0x70($sp) +/* 08A104 7F0555D4 10000004 */ b .L7F0555E8 +/* 08A108 7F0555D8 E5E20000 */ swc1 $f2, ($t7) +/* 08A10C 7F0555DC E7020000 */ swc1 $f2, ($t8) +.L7F0555E0: +/* 08A110 7F0555E0 8FB90070 */ lw $t9, 0x70($sp) +/* 08A114 7F0555E4 E7200000 */ swc1 $f0, ($t9) +.L7F0555E8: +/* 08A118 7F0555E8 8FBF0014 */ lw $ra, 0x14($sp) +/* 08A11C 7F0555EC 27BD0068 */ addiu $sp, $sp, 0x68 +/* 08A120 7F0555F0 03E00008 */ jr $ra +/* 08A124 7F0555F4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0555F8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0555F8 +/* 08A128 7F0555F8 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 08A12C 7F0555FC 3C0F8007 */ lui $t7, %hi(dword_CODE_bss_80071DF8) +/* 08A130 7F055600 8DEF1DF8 */ lw $t7, %lo(dword_CODE_bss_80071DF8)($t7) +/* 08A134 7F055604 AFB40030 */ sw $s4, 0x30($sp) +/* 08A138 7F055608 AFB3002C */ sw $s3, 0x2c($sp) +/* 08A13C 7F05560C 240E0001 */ li $t6, 1 +/* 08A140 7F055610 00809825 */ move $s3, $a0 +/* 08A144 7F055614 00A0A025 */ move $s4, $a1 +/* 08A148 7F055618 AFBF0034 */ sw $ra, 0x34($sp) +/* 08A14C 7F05561C AFB20028 */ sw $s2, 0x28($sp) +/* 08A150 7F055620 AFB10024 */ sw $s1, 0x24($sp) +/* 08A154 7F055624 AFB00020 */ sw $s0, 0x20($sp) +/* 08A158 7F055628 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 08A15C 7F05562C 15E0006B */ bnez $t7, .L7F0557DC +/* 08A160 7F055630 AFAE0054 */ sw $t6, 0x54($sp) +/* 08A164 7F055634 27A50050 */ addiu $a1, $sp, 0x50 +/* 08A168 7F055638 27A6004C */ addiu $a2, $sp, 0x4c +/* 08A16C 7F05563C 0FC1548B */ jal sub_GAME_7F05522C +/* 08A170 7F055640 02803825 */ move $a3, $s4 +/* 08A174 7F055644 3C018005 */ lui $at, %hi(D_80053484) +/* 08A178 7F055648 C4223484 */ lwc1 $f2, %lo(D_80053484)($at) +/* 08A17C 7F05564C C7A40050 */ lwc1 $f4, 0x50($sp) +/* 08A180 7F055650 46001007 */ neg.s $f0, $f2 +/* 08A184 7F055654 4604003E */ c.le.s $f0, $f4 +/* 08A188 7F055658 00000000 */ nop +/* 08A18C 7F05565C 45020012 */ bc1fl .L7F0556A8 +/* 08A190 7F055660 8E7000C8 */ lw $s0, 0xc8($s3) +/* 08A194 7F055664 4602203E */ c.le.s $f4, $f2 +/* 08A198 7F055668 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 08A19C 7F05566C 4502000E */ bc1fl .L7F0556A8 +/* 08A1A0 7F055670 8E7000C8 */ lw $s0, 0xc8($s3) +/* 08A1A4 7F055674 4606003E */ c.le.s $f0, $f6 +/* 08A1A8 7F055678 00000000 */ nop +/* 08A1AC 7F05567C 4502000A */ bc1fl .L7F0556A8 +/* 08A1B0 7F055680 8E7000C8 */ lw $s0, 0xc8($s3) +/* 08A1B4 7F055684 4602303E */ c.le.s $f6, $f2 +/* 08A1B8 7F055688 3C018007 */ lui $at, %hi(dword_CODE_bss_80071DF8) +/* 08A1BC 7F05568C 45020006 */ bc1fl .L7F0556A8 +/* 08A1C0 7F055690 8E7000C8 */ lw $s0, 0xc8($s3) +/* 08A1C4 7F055694 8E780010 */ lw $t8, 0x10($s3) +/* 08A1C8 7F055698 AFA00054 */ sw $zero, 0x54($sp) +/* 08A1CC 7F05569C 1000004F */ b .L7F0557DC +/* 08A1D0 7F0556A0 AC381DF8 */ sw $t8, %lo(dword_CODE_bss_80071DF8)($at) +/* 08A1D4 7F0556A4 8E7000C8 */ lw $s0, 0xc8($s3) +.L7F0556A8: +/* 08A1D8 7F0556A8 52000037 */ beql $s0, $zero, .L7F055788 +/* 08A1DC 7F0556AC C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 08A1E0 7F0556B0 12130034 */ beq $s0, $s3, .L7F055784 +/* 08A1E4 7F0556B4 C7A80050 */ lwc1 $f8, 0x50($sp) +/* 08A1E8 7F0556B8 4480A000 */ mtc1 $zero, $f20 +/* 08A1EC 7F0556BC C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 08A1F0 7F0556C0 4608A03E */ c.le.s $f20, $f8 +/* 08A1F4 7F0556C4 00000000 */ nop +/* 08A1F8 7F0556C8 45030005 */ bc1tl .L7F0556E0 +/* 08A1FC 7F0556CC 27A50040 */ addiu $a1, $sp, 0x40 +/* 08A200 7F0556D0 4614503C */ c.lt.s $f10, $f20 +/* 08A204 7F0556D4 00000000 */ nop +/* 08A208 7F0556D8 4500002A */ bc1f .L7F055784 +/* 08A20C 7F0556DC 27A50040 */ addiu $a1, $sp, 0x40 +.L7F0556E0: +/* 08A210 7F0556E0 27A6003C */ addiu $a2, $sp, 0x3c +/* 08A214 7F0556E4 02002025 */ move $a0, $s0 +/* 08A218 7F0556E8 0FC1548B */ jal sub_GAME_7F05522C +/* 08A21C 7F0556EC 02803825 */ move $a3, $s4 +/* 08A220 7F0556F0 C7B00050 */ lwc1 $f16, 0x50($sp) +/* 08A224 7F0556F4 C7A00040 */ lwc1 $f0, 0x40($sp) +/* 08A228 7F0556F8 4610A03C */ c.lt.s $f20, $f16 +/* 08A22C 7F0556FC 00000000 */ nop +/* 08A230 7F055700 45020007 */ bc1fl .L7F055720 +/* 08A234 7F055704 C7B2004C */ lwc1 $f18, 0x4c($sp) +/* 08A238 7F055708 4610003C */ c.lt.s $f0, $f16 +/* 08A23C 7F05570C 00000000 */ nop +/* 08A240 7F055710 45020003 */ bc1fl .L7F055720 +/* 08A244 7F055714 C7B2004C */ lwc1 $f18, 0x4c($sp) +/* 08A248 7F055718 E7A00050 */ swc1 $f0, 0x50($sp) +/* 08A24C 7F05571C C7B2004C */ lwc1 $f18, 0x4c($sp) +.L7F055720: +/* 08A250 7F055720 C7A0003C */ lwc1 $f0, 0x3c($sp) +/* 08A254 7F055724 4614903C */ c.lt.s $f18, $f20 +/* 08A258 7F055728 00000000 */ nop +/* 08A25C 7F05572C 45020007 */ bc1fl .L7F05574C +/* 08A260 7F055730 8E1000C8 */ lw $s0, 0xc8($s0) +/* 08A264 7F055734 4600903C */ c.lt.s $f18, $f0 +/* 08A268 7F055738 00000000 */ nop +/* 08A26C 7F05573C 45020003 */ bc1fl .L7F05574C +/* 08A270 7F055740 8E1000C8 */ lw $s0, 0xc8($s0) +/* 08A274 7F055744 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 08A278 7F055748 8E1000C8 */ lw $s0, 0xc8($s0) +.L7F05574C: +/* 08A27C 7F05574C C7A40050 */ lwc1 $f4, 0x50($sp) +/* 08A280 7F055750 5200000D */ beql $s0, $zero, .L7F055788 +/* 08A284 7F055754 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 08A288 7F055758 5213000B */ beql $s0, $s3, .L7F055788 +/* 08A28C 7F05575C C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 08A290 7F055760 4604A03E */ c.le.s $f20, $f4 +/* 08A294 7F055764 00000000 */ nop +/* 08A298 7F055768 4503FFDD */ bc1tl .L7F0556E0 +/* 08A29C 7F05576C 27A50040 */ addiu $a1, $sp, 0x40 +/* 08A2A0 7F055770 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 08A2A4 7F055774 4614303C */ c.lt.s $f6, $f20 +/* 08A2A8 7F055778 00000000 */ nop +/* 08A2AC 7F05577C 4503FFD8 */ bc1tl .L7F0556E0 +/* 08A2B0 7F055780 27A50040 */ addiu $a1, $sp, 0x40 +.L7F055784: +/* 08A2B4 7F055784 C7A8004C */ lwc1 $f8, 0x4c($sp) +.L7F055788: +/* 08A2B8 7F055788 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 08A2BC 7F05578C 3C018005 */ lui $at, %hi(D_80053488) +/* 08A2C0 7F055790 C4323488 */ lwc1 $f18, %lo(D_80053488)($at) +/* 08A2C4 7F055794 460A4401 */ sub.s $f16, $f8, $f10 +/* 08A2C8 7F055798 4480A000 */ mtc1 $zero, $f20 +/* 08A2CC 7F05579C 4612803C */ c.lt.s $f16, $f18 +/* 08A2D0 7F0557A0 00000000 */ nop +/* 08A2D4 7F0557A4 4502000E */ bc1fl .L7F0557E0 +/* 08A2D8 7F0557A8 8FBF0034 */ lw $ra, 0x34($sp) +/* 08A2DC 7F0557AC 4614503C */ c.lt.s $f10, $f20 +/* 08A2E0 7F0557B0 00000000 */ nop +/* 08A2E4 7F0557B4 4502000A */ bc1fl .L7F0557E0 +/* 08A2E8 7F0557B8 8FBF0034 */ lw $ra, 0x34($sp) +/* 08A2EC 7F0557BC 4608A03C */ c.lt.s $f20, $f8 +/* 08A2F0 7F0557C0 00000000 */ nop +/* 08A2F4 7F0557C4 45020006 */ bc1fl .L7F0557E0 +/* 08A2F8 7F0557C8 8FBF0034 */ lw $ra, 0x34($sp) +/* 08A2FC 7F0557CC 8E790010 */ lw $t9, 0x10($s3) +/* 08A300 7F0557D0 3C018007 */ lui $at, %hi(dword_CODE_bss_80071DF8) +/* 08A304 7F0557D4 AFA00054 */ sw $zero, 0x54($sp) +/* 08A308 7F0557D8 AC391DF8 */ sw $t9, %lo(dword_CODE_bss_80071DF8)($at) +.L7F0557DC: +/* 08A30C 7F0557DC 8FBF0034 */ lw $ra, 0x34($sp) +.L7F0557E0: +/* 08A310 7F0557E0 8FA20054 */ lw $v0, 0x54($sp) +/* 08A314 7F0557E4 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 08A318 7F0557E8 8FB00020 */ lw $s0, 0x20($sp) +/* 08A31C 7F0557EC 8FB10024 */ lw $s1, 0x24($sp) +/* 08A320 7F0557F0 8FB20028 */ lw $s2, 0x28($sp) +/* 08A324 7F0557F4 8FB3002C */ lw $s3, 0x2c($sp) +/* 08A328 7F0557F8 8FB40030 */ lw $s4, 0x30($sp) +/* 08A32C 7F0557FC 03E00008 */ jr $ra +/* 08A330 7F055800 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F055804(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F055804 +/* 08A334 7F055804 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 08A338 7F055808 240E0001 */ li $t6, 1 +/* 08A33C 7F05580C AFBF001C */ sw $ra, 0x1c($sp) +/* 08A340 7F055810 AFB00018 */ sw $s0, 0x18($sp) +/* 08A344 7F055814 AFAE0084 */ sw $t6, 0x84($sp) +/* 08A348 7F055818 8C900004 */ lw $s0, 4($a0) +/* 08A34C 7F05581C 8E0F0008 */ lw $t7, 8($s0) +/* 08A350 7F055820 000FC180 */ sll $t8, $t7, 6 +/* 08A354 7F055824 07020059 */ bltzl $t8, .L7F05598C +/* 08A358 7F055828 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A35C 7F05582C 44802000 */ mtc1 $zero, $f4 +/* 08A360 7F055830 C6060084 */ lwc1 $f6, 0x84($s0) +/* 08A364 7F055834 4606203C */ c.lt.s $f4, $f6 +/* 08A368 7F055838 00000000 */ nop +/* 08A36C 7F05583C 45020053 */ bc1fl .L7F05598C +/* 08A370 7F055840 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A374 7F055844 90990001 */ lbu $t9, 1($a0) +/* 08A378 7F055848 33280002 */ andi $t0, $t9, 2 +/* 08A37C 7F05584C 5100004F */ beql $t0, $zero, .L7F05598C +/* 08A380 7F055850 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A384 7F055854 AFA0007C */ sw $zero, 0x7c($sp) +/* 08A388 7F055858 0FC225E6 */ jal get_curplayer_positiondata +/* 08A38C 7F05585C AFA40088 */ sw $a0, 0x88($sp) +/* 08A390 7F055860 AFA20078 */ sw $v0, 0x78($sp) +/* 08A394 7F055864 C44A0008 */ lwc1 $f10, 8($v0) +/* 08A398 7F055868 C6080058 */ lwc1 $f8, 0x58($s0) +/* 08A39C 7F05586C C4460010 */ lwc1 $f6, 0x10($v0) +/* 08A3A0 7F055870 C6040060 */ lwc1 $f4, 0x60($s0) +/* 08A3A4 7F055874 460A4001 */ sub.s $f0, $f8, $f10 +/* 08A3A8 7F055878 C452000C */ lwc1 $f18, 0xc($v0) +/* 08A3AC 7F05587C C610005C */ lwc1 $f16, 0x5c($s0) +/* 08A3B0 7F055880 46062081 */ sub.s $f2, $f4, $f6 +/* 08A3B4 7F055884 46000202 */ mul.s $f8, $f0, $f0 +/* 08A3B8 7F055888 3C018005 */ lui $at, %hi(D_8005348C) +/* 08A3BC 7F05588C 46128301 */ sub.s $f12, $f16, $f18 +/* 08A3C0 7F055890 46021282 */ mul.s $f10, $f2, $f2 +/* 08A3C4 7F055894 C432348C */ lwc1 $f18, %lo(D_8005348C)($at) +/* 08A3C8 7F055898 8FA40088 */ lw $a0, 0x88($sp) +/* 08A3CC 7F05589C 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 08A3D0 7F0558A0 460A4400 */ add.s $f16, $f8, $f10 +/* 08A3D4 7F0558A4 4612803C */ c.lt.s $f16, $f18 +/* 08A3D8 7F0558A8 00000000 */ nop +/* 08A3DC 7F0558AC 4500000F */ bc1f .L7F0558EC +/* 08A3E0 7F0558B0 00000000 */ nop +/* 08A3E4 7F0558B4 44812000 */ mtc1 $at, $f4 +/* 08A3E8 7F0558B8 3C01C348 */ li $at, 0xC3480000 # -200.000000 +/* 08A3EC 7F0558BC 4604603C */ c.lt.s $f12, $f4 +/* 08A3F0 7F0558C0 00000000 */ nop +/* 08A3F4 7F0558C4 45000009 */ bc1f .L7F0558EC +/* 08A3F8 7F0558C8 00000000 */ nop +/* 08A3FC 7F0558CC 44813000 */ mtc1 $at, $f6 +/* 08A400 7F0558D0 24090001 */ li $t1, 1 +/* 08A404 7F0558D4 460C303C */ c.lt.s $f6, $f12 +/* 08A408 7F0558D8 00000000 */ nop +/* 08A40C 7F0558DC 45000003 */ bc1f .L7F0558EC +/* 08A410 7F0558E0 00000000 */ nop +/* 08A414 7F0558E4 10000018 */ b .L7F055948 +/* 08A418 7F0558E8 AFA9007C */ sw $t1, 0x7c($sp) +.L7F0558EC: +/* 08A41C 7F0558EC 0FC0F2E3 */ jal sub_GAME_7F03CB8C +/* 08A420 7F0558F0 27A50048 */ addiu $a1, $sp, 0x48 +/* 08A424 7F0558F4 8FA40078 */ lw $a0, 0x78($sp) +/* 08A428 7F0558F8 0FC0F2E3 */ jal sub_GAME_7F03CB8C +/* 08A42C 7F0558FC 27A50028 */ addiu $a1, $sp, 0x28 +/* 08A430 7F055900 27A40048 */ addiu $a0, $sp, 0x48 +/* 08A434 7F055904 0FC0F6DC */ jal sub_GAME_7F03DB70 +/* 08A438 7F055908 27A50028 */ addiu $a1, $sp, 0x28 +/* 08A43C 7F05590C 1040000E */ beqz $v0, .L7F055948 +/* 08A440 7F055910 3C0C8007 */ lui $t4, %hi(ptr_2xxxpresets) +/* 08A444 7F055914 860A0006 */ lh $t2, 6($s0) +/* 08A448 7F055918 8D8C5D1C */ lw $t4, %lo(ptr_2xxxpresets)($t4) +/* 08A44C 7F05591C 8FA40078 */ lw $a0, 0x78($sp) +/* 08A450 7F055920 000A5900 */ sll $t3, $t2, 4 +/* 08A454 7F055924 016A5821 */ addu $t3, $t3, $t2 +/* 08A458 7F055928 000B5880 */ sll $t3, $t3, 2 +/* 08A45C 7F05592C 3C054316 */ lui $a1, 0x4316 +/* 08A460 7F055930 016C3021 */ addu $a2, $t3, $t4 +/* 08A464 7F055934 0FC0FD66 */ jal sub_GAME_7F03F598 +/* 08A468 7F055938 24840008 */ addiu $a0, $a0, 8 +/* 08A46C 7F05593C 10400002 */ beqz $v0, .L7F055948 +/* 08A470 7F055940 240D0001 */ li $t5, 1 +/* 08A474 7F055944 AFAD007C */ sw $t5, 0x7c($sp) +.L7F055948: +/* 08A478 7F055948 8FAE007C */ lw $t6, 0x7c($sp) +/* 08A47C 7F05594C 02002025 */ move $a0, $s0 +/* 08A480 7F055950 51C0000E */ beql $t6, $zero, .L7F05598C +/* 08A484 7F055954 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A488 7F055958 0FC1557E */ jal sub_GAME_7F0555F8 +/* 08A48C 7F05595C 00002825 */ move $a1, $zero +/* 08A490 7F055960 10400009 */ beqz $v0, .L7F055988 +/* 08A494 7F055964 AFA20084 */ sw $v0, 0x84($sp) +/* 08A498 7F055968 8E0F000C */ lw $t7, 0xc($s0) +/* 08A49C 7F05596C 02002025 */ move $a0, $s0 +/* 08A4A0 7F055970 000FC000 */ sll $t8, $t7, 0 +/* 08A4A4 7F055974 07030005 */ bgezl $t8, .L7F05598C +/* 08A4A8 7F055978 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A4AC 7F05597C 0FC1557E */ jal sub_GAME_7F0555F8 +/* 08A4B0 7F055980 24050001 */ li $a1, 1 +/* 08A4B4 7F055984 AFA20084 */ sw $v0, 0x84($sp) +.L7F055988: +/* 08A4B8 7F055988 8FBF001C */ lw $ra, 0x1c($sp) +.L7F05598C: +/* 08A4BC 7F05598C 8FA20084 */ lw $v0, 0x84($sp) +/* 08A4C0 7F055990 8FB00018 */ lw $s0, 0x18($sp) +/* 08A4C4 7F055994 03E00008 */ jr $ra +/* 08A4C8 7F055998 27BD0088 */ addiu $sp, $sp, 0x88 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05599C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05599C +/* 08A4CC 7F05599C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 08A4D0 7F0559A0 AFBF001C */ sw $ra, 0x1c($sp) +/* 08A4D4 7F0559A4 AFB00018 */ sw $s0, 0x18($sp) +/* 08A4D8 7F0559A8 AFA40020 */ sw $a0, 0x20($sp) +/* 08A4DC 7F0559AC 8C900004 */ lw $s0, 4($a0) +/* 08A4E0 7F0559B0 24010001 */ li $at, 1 +/* 08A4E4 7F0559B4 820200BC */ lb $v0, 0xbc($s0) +/* 08A4E8 7F0559B8 02002025 */ move $a0, $s0 +/* 08A4EC 7F0559BC 10410003 */ beq $v0, $at, .L7F0559CC +/* 08A4F0 7F0559C0 24010003 */ li $at, 3 +/* 08A4F4 7F0559C4 54410006 */ bnel $v0, $at, .L7F0559E0 +/* 08A4F8 7F0559C8 24010002 */ li $at, 2 +.L7F0559CC: +/* 08A4FC 7F0559CC 0FC15262 */ jal set_door_state +/* 08A500 7F0559D0 24050002 */ li $a1, 2 +/* 08A504 7F0559D4 10000019 */ b .L7F055A3C +/* 08A508 7F0559D8 8E0F0064 */ lw $t7, 0x64($s0) +/* 08A50C 7F0559DC 24010002 */ li $at, 2 +.L7F0559E0: +/* 08A510 7F0559E0 14410005 */ bne $v0, $at, .L7F0559F8 +/* 08A514 7F0559E4 02002025 */ move $a0, $s0 +/* 08A518 7F0559E8 0FC15262 */ jal set_door_state +/* 08A51C 7F0559EC 24050001 */ li $a1, 1 +/* 08A520 7F0559F0 10000012 */ b .L7F055A3C +/* 08A524 7F0559F4 8E0F0064 */ lw $t7, 0x64($s0) +.L7F0559F8: +/* 08A528 7F0559F8 1440000F */ bnez $v0, .L7F055A38 +/* 08A52C 7F0559FC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 08A530 7F055A00 44812000 */ mtc1 $at, $f4 +/* 08A534 7F055A04 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 08A538 7F055A08 24050002 */ li $a1, 2 +/* 08A53C 7F055A0C 02002025 */ move $a0, $s0 +/* 08A540 7F055A10 4606203C */ c.lt.s $f4, $f6 +/* 08A544 7F055A14 00000000 */ nop +/* 08A548 7F055A18 45000005 */ bc1f .L7F055A30 +/* 08A54C 7F055A1C 00000000 */ nop +/* 08A550 7F055A20 0FC15262 */ jal set_door_state +/* 08A554 7F055A24 02002025 */ move $a0, $s0 +/* 08A558 7F055A28 10000004 */ b .L7F055A3C +/* 08A55C 7F055A2C 8E0F0064 */ lw $t7, 0x64($s0) +.L7F055A30: +/* 08A560 7F055A30 0FC15262 */ jal set_door_state +/* 08A564 7F055A34 24050001 */ li $a1, 1 +.L7F055A38: +/* 08A568 7F055A38 8E0F0064 */ lw $t7, 0x64($s0) +.L7F055A3C: +/* 08A56C 7F055A3C 8E19000C */ lw $t9, 0xc($s0) +/* 08A570 7F055A40 2401FFF7 */ li $at, -9 +/* 08A574 7F055A44 35F84000 */ ori $t8, $t7, 0x4000 +/* 08A578 7F055A48 03214024 */ and $t0, $t9, $at +/* 08A57C 7F055A4C AE180064 */ sw $t8, 0x64($s0) +/* 08A580 7F055A50 AE08000C */ sw $t0, 0xc($s0) +/* 08A584 7F055A54 0FC0F9A8 */ jal sub_GAME_7F03E6A0 +/* 08A588 7F055A58 8FA40020 */ lw $a0, 0x20($sp) +/* 08A58C 7F055A5C 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A590 7F055A60 8FB00018 */ lw $s0, 0x18($sp) +/* 08A594 7F055A64 27BD0020 */ addiu $sp, $sp, 0x20 +/* 08A598 7F055A68 03E00008 */ jr $ra +/* 08A59C 7F055A6C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F055A70(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F055A70 +/* 08A5A0 7F055A70 84AE0006 */ lh $t6, 6($a1) +/* 08A5A4 7F055A74 3C188007 */ lui $t8, %hi(ptr_2xxxpresets) +/* 08A5A8 7F055A78 8F185D1C */ lw $t8, %lo(ptr_2xxxpresets)($t8) +/* 08A5AC 7F055A7C 000E7900 */ sll $t7, $t6, 4 +/* 08A5B0 7F055A80 01EE7821 */ addu $t7, $t7, $t6 +/* 08A5B4 7F055A84 000F7880 */ sll $t7, $t7, 2 +/* 08A5B8 7F055A88 01F81021 */ addu $v0, $t7, $t8 +/* 08A5BC 7F055A8C C4440010 */ lwc1 $f4, 0x10($v0) +/* 08A5C0 7F055A90 C4460020 */ lwc1 $f6, 0x20($v0) +/* 08A5C4 7F055A94 C44A001C */ lwc1 $f10, 0x1c($v0) +/* 08A5C8 7F055A98 C4520014 */ lwc1 $f18, 0x14($v0) +/* 08A5CC 7F055A9C 46062202 */ mul.s $f8, $f4, $f6 +/* 08A5D0 7F055AA0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 08A5D4 7F055AA4 46125102 */ mul.s $f4, $f10, $f18 +/* 08A5D8 7F055AA8 46044181 */ sub.s $f6, $f8, $f4 +/* 08A5DC 7F055AAC E7A60004 */ swc1 $f6, 4($sp) +/* 08A5E0 7F055AB0 C4520018 */ lwc1 $f18, 0x18($v0) +/* 08A5E4 7F055AB4 C44A0014 */ lwc1 $f10, 0x14($v0) +/* 08A5E8 7F055AB8 C4440020 */ lwc1 $f4, 0x20($v0) +/* 08A5EC 7F055ABC 46125202 */ mul.s $f8, $f10, $f18 +/* 08A5F0 7F055AC0 C44A000C */ lwc1 $f10, 0xc($v0) +/* 08A5F4 7F055AC4 460A2482 */ mul.s $f18, $f4, $f10 +/* 08A5F8 7F055AC8 46124101 */ sub.s $f4, $f8, $f18 +/* 08A5FC 7F055ACC E7A40008 */ swc1 $f4, 8($sp) +/* 08A600 7F055AD0 C448001C */ lwc1 $f8, 0x1c($v0) +/* 08A604 7F055AD4 C44A000C */ lwc1 $f10, 0xc($v0) +/* 08A608 7F055AD8 46085482 */ mul.s $f18, $f10, $f8 +/* 08A60C 7F055ADC C4480010 */ lwc1 $f8, 0x10($v0) +/* 08A610 7F055AE0 C44A0018 */ lwc1 $f10, 0x18($v0) +/* 08A614 7F055AE4 46085282 */ mul.s $f10, $f10, $f8 +/* 08A618 7F055AE8 460A9201 */ sub.s $f8, $f18, $f10 +/* 08A61C 7F055AEC E7A8000C */ swc1 $f8, 0xc($sp) +/* 08A620 7F055AF0 C44A0000 */ lwc1 $f10, ($v0) +/* 08A624 7F055AF4 C4920008 */ lwc1 $f18, 8($a0) +/* 08A628 7F055AF8 94B90098 */ lhu $t9, 0x98($a1) +/* 08A62C 7F055AFC 460A9001 */ sub.s $f0, $f18, $f10 +/* 08A630 7F055B00 C44A0004 */ lwc1 $f10, 4($v0) +/* 08A634 7F055B04 C492000C */ lwc1 $f18, 0xc($a0) +/* 08A638 7F055B08 33280008 */ andi $t0, $t9, 8 +/* 08A63C 7F055B0C 460A9081 */ sub.s $f2, $f18, $f10 +/* 08A640 7F055B10 C44A0008 */ lwc1 $f10, 8($v0) +/* 08A644 7F055B14 C4920010 */ lwc1 $f18, 0x10($a0) +/* 08A648 7F055B18 460A9301 */ sub.s $f12, $f18, $f10 +/* 08A64C 7F055B1C 46060482 */ mul.s $f18, $f0, $f6 +/* 08A650 7F055B20 44800000 */ mtc1 $zero, $f0 +/* 08A654 7F055B24 46041282 */ mul.s $f10, $f2, $f4 +/* 08A658 7F055B28 460A9180 */ add.s $f6, $f18, $f10 +/* 08A65C 7F055B2C 460C4102 */ mul.s $f4, $f8, $f12 +/* 08A660 7F055B30 46062400 */ add.s $f16, $f4, $f6 +/* 08A664 7F055B34 11000002 */ beqz $t0, .L7F055B40 +/* 08A668 7F055B38 46008386 */ mov.s $f14, $f16 +/* 08A66C 7F055B3C 46008387 */ neg.s $f14, $f16 +.L7F055B40: +/* 08A670 7F055B40 4600703C */ c.lt.s $f14, $f0 +/* 08A674 7F055B44 00000000 */ nop +/* 08A678 7F055B48 45020004 */ bc1fl .L7F055B5C +/* 08A67C 7F055B4C 460E003C */ c.lt.s $f0, $f14 +/* 08A680 7F055B50 10000007 */ b .L7F055B70 +/* 08A684 7F055B54 00001025 */ move $v0, $zero +/* 08A688 7F055B58 460E003C */ c.lt.s $f0, $f14 +.L7F055B5C: +/* 08A68C 7F055B5C 24020001 */ li $v0, 1 +/* 08A690 7F055B60 45000003 */ bc1f .L7F055B70 +/* 08A694 7F055B64 00000000 */ nop +/* 08A698 7F055B68 10000001 */ b .L7F055B70 +/* 08A69C 7F055B6C 24020001 */ li $v0, 1 +.L7F055B70: +/* 08A6A0 7F055B70 03E00008 */ jr $ra +/* 08A6A4 7F055B74 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F055B78(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F055B78 +/* 08A6A8 7F055B78 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08A6AC 7F055B7C AFBF0014 */ sw $ra, 0x14($sp) +/* 08A6B0 7F055B80 8CAE0008 */ lw $t6, 8($a1) +/* 08A6B4 7F055B84 000E7900 */ sll $t7, $t6, 4 +/* 08A6B8 7F055B88 05E3002A */ bgezl $t7, .L7F055C34 +/* 08A6BC 7F055B8C 8FBF0014 */ lw $ra, 0x14($sp) +/* 08A6C0 7F055B90 80B800BC */ lb $t8, 0xbc($a1) +/* 08A6C4 7F055B94 57000027 */ bnezl $t8, .L7F055C34 +/* 08A6C8 7F055B98 8FBF0014 */ lw $ra, 0x14($sp) +/* 08A6CC 7F055B9C 44802000 */ mtc1 $zero, $f4 +/* 08A6D0 7F055BA0 C4A600B4 */ lwc1 $f6, 0xb4($a1) +/* 08A6D4 7F055BA4 46062032 */ c.eq.s $f4, $f6 +/* 08A6D8 7F055BA8 00000000 */ nop +/* 08A6DC 7F055BAC 45020021 */ bc1fl .L7F055C34 +/* 08A6E0 7F055BB0 8FBF0014 */ lw $ra, 0x14($sp) +/* 08A6E4 7F055BB4 0FC1569C */ jal sub_GAME_7F055A70 +/* 08A6E8 7F055BB8 AFA5001C */ sw $a1, 0x1c($sp) +/* 08A6EC 7F055BBC 8FA5001C */ lw $a1, 0x1c($sp) +/* 08A6F0 7F055BC0 00002025 */ move $a0, $zero +/* 08A6F4 7F055BC4 94B90098 */ lhu $t9, 0x98($a1) +/* 08A6F8 7F055BC8 33280008 */ andi $t0, $t9, 8 +/* 08A6FC 7F055BCC 15000006 */ bnez $t0, .L7F055BE8 +/* 08A700 7F055BD0 00000000 */ nop +/* 08A704 7F055BD4 14400002 */ bnez $v0, .L7F055BE0 +/* 08A708 7F055BD8 00000000 */ nop +/* 08A70C 7F055BDC 3C042000 */ lui $a0, 0x2000 +.L7F055BE0: +/* 08A710 7F055BE0 10000005 */ b .L7F055BF8 +/* 08A714 7F055BE4 8CA90008 */ lw $t1, 8($a1) +.L7F055BE8: +/* 08A718 7F055BE8 50400003 */ beql $v0, $zero, .L7F055BF8 +/* 08A71C 7F055BEC 8CA90008 */ lw $t1, 8($a1) +/* 08A720 7F055BF0 3C042000 */ lui $a0, 0x2000 +/* 08A724 7F055BF4 8CA90008 */ lw $t1, 8($a1) +.L7F055BF8: +/* 08A728 7F055BF8 3C032000 */ lui $v1, 0x2000 +/* 08A72C 7F055BFC 00A01025 */ move $v0, $a1 +/* 08A730 7F055C00 01245026 */ xor $t2, $t1, $a0 +/* 08A734 7F055C04 000A5880 */ sll $t3, $t2, 2 +/* 08A738 7F055C08 0563000A */ bgezl $t3, .L7F055C34 +/* 08A73C 7F055C0C 8FBF0014 */ lw $ra, 0x14($sp) +/* 08A740 7F055C10 8C4C0008 */ lw $t4, 8($v0) +.L7F055C14: +/* 08A744 7F055C14 01836826 */ xor $t5, $t4, $v1 +/* 08A748 7F055C18 AC4D0008 */ sw $t5, 8($v0) +/* 08A74C 7F055C1C 8C4200C8 */ lw $v0, 0xc8($v0) +/* 08A750 7F055C20 50400004 */ beql $v0, $zero, .L7F055C34 +/* 08A754 7F055C24 8FBF0014 */ lw $ra, 0x14($sp) +/* 08A758 7F055C28 5445FFFA */ bnel $v0, $a1, .L7F055C14 +/* 08A75C 7F055C2C 8C4C0008 */ lw $t4, 8($v0) +/* 08A760 7F055C30 8FBF0014 */ lw $ra, 0x14($sp) +.L7F055C34: +/* 08A764 7F055C34 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08A768 7F055C38 03E00008 */ jr $ra +/* 08A76C 7F055C3C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F055C40(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F055C40 +/* 08A770 7F055C40 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 08A774 7F055C44 AFBF001C */ sw $ra, 0x1c($sp) +/* 08A778 7F055C48 AFB00018 */ sw $s0, 0x18($sp) +/* 08A77C 7F055C4C AFA40030 */ sw $a0, 0x30($sp) +/* 08A780 7F055C50 8C900004 */ lw $s0, 4($a0) +/* 08A784 7F055C54 0FC225E6 */ jal get_curplayer_positiondata +/* 08A788 7F055C58 AFA00028 */ sw $zero, 0x28($sp) +/* 08A78C 7F055C5C AFA20024 */ sw $v0, 0x24($sp) +/* 08A790 7F055C60 8E04009C */ lw $a0, 0x9c($s0) +/* 08A794 7F055C64 8FA30028 */ lw $v1, 0x28($sp) +/* 08A798 7F055C68 14800003 */ bnez $a0, .L7F055C78 +/* 08A79C 7F055C6C 00000000 */ nop +/* 08A7A0 7F055C70 1000001C */ b .L7F055CE4 +/* 08A7A4 7F055C74 24030001 */ li $v1, 1 +.L7F055C78: +/* 08A7A8 7F055C78 0FC2339C */ jal sub_GAME_7F08CE70 +/* 08A7AC 7F055C7C AFA30028 */ sw $v1, 0x28($sp) +/* 08A7B0 7F055C80 10400003 */ beqz $v0, .L7F055C90 +/* 08A7B4 7F055C84 8FA30028 */ lw $v1, 0x28($sp) +/* 08A7B8 7F055C88 10000016 */ b .L7F055CE4 +/* 08A7BC 7F055C8C 24030001 */ li $v1, 1 +.L7F055C90: +/* 08A7C0 7F055C90 8FA40024 */ lw $a0, 0x24($sp) +/* 08A7C4 7F055C94 02002825 */ move $a1, $s0 +/* 08A7C8 7F055C98 0FC1569C */ jal sub_GAME_7F055A70 +/* 08A7CC 7F055C9C AFA30028 */ sw $v1, 0x28($sp) +/* 08A7D0 7F055CA0 10400009 */ beqz $v0, .L7F055CC8 +/* 08A7D4 7F055CA4 8FA30028 */ lw $v1, 0x28($sp) +/* 08A7D8 7F055CA8 8E02000C */ lw $v0, 0xc($s0) +/* 08A7DC 7F055CAC 000278C0 */ sll $t7, $v0, 3 +/* 08A7E0 7F055CB0 05E1000C */ bgez $t7, .L7F055CE4 +/* 08A7E4 7F055CB4 0002C100 */ sll $t8, $v0, 4 +/* 08A7E8 7F055CB8 0702000B */ bltzl $t8, .L7F055CE8 +/* 08A7EC 7F055CBC 02002025 */ move $a0, $s0 +/* 08A7F0 7F055CC0 10000008 */ b .L7F055CE4 +/* 08A7F4 7F055CC4 24030001 */ li $v1, 1 +.L7F055CC8: +/* 08A7F8 7F055CC8 8E02000C */ lw $v0, 0xc($s0) +/* 08A7FC 7F055CCC 0002C8C0 */ sll $t9, $v0, 3 +/* 08A800 7F055CD0 07200004 */ bltz $t9, .L7F055CE4 +/* 08A804 7F055CD4 00024100 */ sll $t0, $v0, 4 +/* 08A808 7F055CD8 05030003 */ bgezl $t0, .L7F055CE8 +/* 08A80C 7F055CDC 02002025 */ move $a0, $s0 +/* 08A810 7F055CE0 24030001 */ li $v1, 1 +.L7F055CE4: +/* 08A814 7F055CE4 02002025 */ move $a0, $s0 +.L7F055CE8: +/* 08A818 7F055CE8 0FC0F9C6 */ jal sub_GAME_7F03E718 +/* 08A81C 7F055CEC AFA30028 */ sw $v1, 0x28($sp) +/* 08A820 7F055CF0 14400002 */ bnez $v0, .L7F055CFC +/* 08A824 7F055CF4 8FA30028 */ lw $v1, 0x28($sp) +/* 08A828 7F055CF8 00001825 */ move $v1, $zero +.L7F055CFC: +/* 08A82C 7F055CFC 10600007 */ beqz $v1, .L7F055D1C +/* 08A830 7F055D00 8FA40024 */ lw $a0, 0x24($sp) +/* 08A834 7F055D04 0FC156DE */ jal sub_GAME_7F055B78 +/* 08A838 7F055D08 02002825 */ move $a1, $s0 +/* 08A83C 7F055D0C 0FC15667 */ jal sub_GAME_7F05599C +/* 08A840 7F055D10 8FA40030 */ lw $a0, 0x30($sp) +/* 08A844 7F055D14 10000028 */ b .L7F055DB8 +/* 08A848 7F055D18 8FBF001C */ lw $ra, 0x1c($sp) +.L7F055D1C: +/* 08A84C 7F055D1C 820900BC */ lb $t1, 0xbc($s0) +/* 08A850 7F055D20 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 08A854 7F055D24 55200024 */ bnezl $t1, .L7F055DB8 +/* 08A858 7F055D28 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A85C 7F055D2C C60400B4 */ lwc1 $f4, 0xb4($s0) +/* 08A860 7F055D30 44813000 */ mtc1 $at, $f6 +/* 08A864 7F055D34 00000000 */ nop +/* 08A868 7F055D38 4606203C */ c.lt.s $f4, $f6 +/* 08A86C 7F055D3C 00000000 */ nop +/* 08A870 7F055D40 4502001D */ bc1fl .L7F055DB8 +/* 08A874 7F055D44 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A878 7F055D48 8E02000C */ lw $v0, 0xc($s0) +/* 08A87C 7F055D4C 304A0004 */ andi $t2, $v0, 4 +/* 08A880 7F055D50 55400014 */ bnezl $t2, .L7F055DA4 +/* 08A884 7F055D54 8E0C0064 */ lw $t4, 0x64($s0) +/* 08A888 7F055D58 0FC23487 */ jal get_textoverride_by_obj +/* 08A88C 7F055D5C 02002025 */ move $a0, $s0 +/* 08A890 7F055D60 1040000A */ beqz $v0, .L7F055D8C +/* 08A894 7F055D64 00000000 */ nop +/* 08A898 7F055D68 8C4B001C */ lw $t3, 0x1c($v0) +/* 08A89C 7F055D6C 11600007 */ beqz $t3, .L7F055D8C +/* 08A8A0 7F055D70 00000000 */ nop +/* 08A8A4 7F055D74 0FC30776 */ jal get_textptr_for_textID +/* 08A8A8 7F055D78 8C44001C */ lw $a0, 0x1c($v0) +/* 08A8AC 7F055D7C 0FC228F2 */ jal display_string_in_lower_left_corner +/* 08A8B0 7F055D80 00402025 */ move $a0, $v0 +/* 08A8B4 7F055D84 10000006 */ b .L7F055DA0 +/* 08A8B8 7F055D88 8E02000C */ lw $v0, 0xc($s0) +.L7F055D8C: +/* 08A8BC 7F055D8C 0FC30776 */ jal get_textptr_for_textID +/* 08A8C0 7F055D90 3404A440 */ li $a0, 42048 +/* 08A8C4 7F055D94 0FC228F2 */ jal display_string_in_lower_left_corner +/* 08A8C8 7F055D98 00402025 */ move $a0, $v0 +/* 08A8CC 7F055D9C 8E02000C */ lw $v0, 0xc($s0) +.L7F055DA0: +/* 08A8D0 7F055DA0 8E0C0064 */ lw $t4, 0x64($s0) +.L7F055DA4: +/* 08A8D4 7F055DA4 344E0008 */ ori $t6, $v0, 8 +/* 08A8D8 7F055DA8 AE0E000C */ sw $t6, 0xc($s0) +/* 08A8DC 7F055DAC 358D4000 */ ori $t5, $t4, 0x4000 +/* 08A8E0 7F055DB0 AE0D0064 */ sw $t5, 0x64($s0) +/* 08A8E4 7F055DB4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F055DB8: +/* 08A8E8 7F055DB8 8FB00018 */ lw $s0, 0x18($sp) +/* 08A8EC 7F055DBC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 08A8F0 7F055DC0 03E00008 */ jr $ra +/* 08A8F4 7F055DC4 00001025 */ move $v0, $zero +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F055C40 +/* 08A770 7F055C40 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 08A774 7F055C44 AFBF001C */ sw $ra, 0x1c($sp) +/* 08A778 7F055C48 AFB00018 */ sw $s0, 0x18($sp) +/* 08A77C 7F055C4C AFA40030 */ sw $a0, 0x30($sp) +/* 08A780 7F055C50 8C900004 */ lw $s0, 4($a0) +/* 08A784 7F055C54 0FC225E6 */ jal get_curplayer_positiondata +/* 08A788 7F055C58 AFA00028 */ sw $zero, 0x28($sp) +/* 08A78C 7F055C5C AFA20024 */ sw $v0, 0x24($sp) +/* 08A790 7F055C60 8E04009C */ lw $a0, 0x9c($s0) +/* 08A794 7F055C64 8FA30028 */ lw $v1, 0x28($sp) +/* 08A798 7F055C68 14800003 */ bnez $a0, .L7F055C78 +/* 08A79C 7F055C6C 00000000 */ nop +/* 08A7A0 7F055C70 1000001C */ b .L7F055CE4 +/* 08A7A4 7F055C74 24030001 */ li $v1, 1 +.L7F055C78: +/* 08A7A8 7F055C78 0FC2339C */ jal sub_GAME_7F08CE70 +/* 08A7AC 7F055C7C AFA30028 */ sw $v1, 0x28($sp) +/* 08A7B0 7F055C80 10400003 */ beqz $v0, .L7F055C90 +/* 08A7B4 7F055C84 8FA30028 */ lw $v1, 0x28($sp) +/* 08A7B8 7F055C88 10000016 */ b .L7F055CE4 +/* 08A7BC 7F055C8C 24030001 */ li $v1, 1 +.L7F055C90: +/* 08A7C0 7F055C90 8FA40024 */ lw $a0, 0x24($sp) +/* 08A7C4 7F055C94 02002825 */ move $a1, $s0 +/* 08A7C8 7F055C98 0FC1569C */ jal sub_GAME_7F055A70 +/* 08A7CC 7F055C9C AFA30028 */ sw $v1, 0x28($sp) +/* 08A7D0 7F055CA0 10400009 */ beqz $v0, .L7F055CC8 +/* 08A7D4 7F055CA4 8FA30028 */ lw $v1, 0x28($sp) +/* 08A7D8 7F055CA8 8E02000C */ lw $v0, 0xc($s0) +/* 08A7DC 7F055CAC 000278C0 */ sll $t7, $v0, 3 +/* 08A7E0 7F055CB0 05E1000C */ bgez $t7, .L7F055CE4 +/* 08A7E4 7F055CB4 0002C100 */ sll $t8, $v0, 4 +/* 08A7E8 7F055CB8 0702000B */ bltzl $t8, .L7F055CE8 +/* 08A7EC 7F055CBC 02002025 */ move $a0, $s0 +/* 08A7F0 7F055CC0 10000008 */ b .L7F055CE4 +/* 08A7F4 7F055CC4 24030001 */ li $v1, 1 +.L7F055CC8: +/* 08A7F8 7F055CC8 8E02000C */ lw $v0, 0xc($s0) +/* 08A7FC 7F055CCC 0002C8C0 */ sll $t9, $v0, 3 +/* 08A800 7F055CD0 07200004 */ bltz $t9, .L7F055CE4 +/* 08A804 7F055CD4 00024100 */ sll $t0, $v0, 4 +/* 08A808 7F055CD8 05030003 */ bgezl $t0, .L7F055CE8 +/* 08A80C 7F055CDC 02002025 */ move $a0, $s0 +/* 08A810 7F055CE0 24030001 */ li $v1, 1 +.L7F055CE4: +/* 08A814 7F055CE4 02002025 */ move $a0, $s0 +.L7F055CE8: +/* 08A818 7F055CE8 0FC0F9C6 */ jal sub_GAME_7F03E718 +/* 08A81C 7F055CEC AFA30028 */ sw $v1, 0x28($sp) +/* 08A820 7F055CF0 14400002 */ bnez $v0, .L7F055CFC +/* 08A824 7F055CF4 8FA30028 */ lw $v1, 0x28($sp) +/* 08A828 7F055CF8 00001825 */ move $v1, $zero +.L7F055CFC: +/* 08A82C 7F055CFC 10600007 */ beqz $v1, .L7F055D1C +/* 08A830 7F055D00 8FA40024 */ lw $a0, 0x24($sp) +/* 08A834 7F055D04 0FC156DE */ jal sub_GAME_7F055B78 +/* 08A838 7F055D08 02002825 */ move $a1, $s0 +/* 08A83C 7F055D0C 0FC15667 */ jal sub_GAME_7F05599C +/* 08A840 7F055D10 8FA40030 */ lw $a0, 0x30($sp) +/* 08A844 7F055D14 10000028 */ b .L7F055DB8 +/* 08A848 7F055D18 8FBF001C */ lw $ra, 0x1c($sp) +.L7F055D1C: +/* 08A84C 7F055D1C 820900BC */ lb $t1, 0xbc($s0) +/* 08A850 7F055D20 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 08A854 7F055D24 55200024 */ bnezl $t1, .L7F055DB8 +/* 08A858 7F055D28 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A85C 7F055D2C C60400B4 */ lwc1 $f4, 0xb4($s0) +/* 08A860 7F055D30 44813000 */ mtc1 $at, $f6 +/* 08A864 7F055D34 00000000 */ nop +/* 08A868 7F055D38 4606203C */ c.lt.s $f4, $f6 +/* 08A86C 7F055D3C 00000000 */ nop +/* 08A870 7F055D40 4502001D */ bc1fl .L7F055DB8 +/* 08A874 7F055D44 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A878 7F055D48 8E02000C */ lw $v0, 0xc($s0) +/* 08A87C 7F055D4C 304A0004 */ andi $t2, $v0, 4 +/* 08A880 7F055D50 55400014 */ bnezl $t2, .L7F055DA4 +/* 08A884 7F055D54 8E0C0064 */ lw $t4, 0x64($s0) +/* 08A888 7F055D58 0FC23487 */ jal get_textoverride_by_obj +/* 08A88C 7F055D5C 02002025 */ move $a0, $s0 +/* 08A890 7F055D60 1040000A */ beqz $v0, .L7F055D8C +/* 08A894 7F055D64 00000000 */ nop +/* 08A898 7F055D68 8C4B001C */ lw $t3, 0x1c($v0) +/* 08A89C 7F055D6C 11600007 */ beqz $t3, .L7F055D8C +/* 08A8A0 7F055D70 00000000 */ nop +/* 08A8A4 7F055D74 0FC30776 */ jal get_textptr_for_textID +/* 08A8A8 7F055D78 8C44001C */ lw $a0, 0x1c($v0) +/* 08A8AC 7F055D7C 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 08A8B0 7F055D80 00402025 */ move $a0, $v0 +/* 08A8B4 7F055D84 10000006 */ b .L7F055DA0 +/* 08A8B8 7F055D88 8E02000C */ lw $v0, 0xc($s0) +.L7F055D8C: +/* 08A8BC 7F055D8C 0FC30776 */ jal get_textptr_for_textID +/* 08A8C0 7F055D90 3404A440 */ li $a0, 42048 +/* 08A8C4 7F055D94 0FC228F2 */ jal jp_display_string_in_lower_left_corner +/* 08A8C8 7F055D98 00402025 */ move $a0, $v0 +/* 08A8CC 7F055D9C 8E02000C */ lw $v0, 0xc($s0) +.L7F055DA0: +/* 08A8D0 7F055DA0 8E0C0064 */ lw $t4, 0x64($s0) +.L7F055DA4: +/* 08A8D4 7F055DA4 344E0008 */ ori $t6, $v0, 8 +/* 08A8D8 7F055DA8 AE0E000C */ sw $t6, 0xc($s0) +/* 08A8DC 7F055DAC 358D4000 */ ori $t5, $t4, 0x4000 +/* 08A8E0 7F055DB0 AE0D0064 */ sw $t5, 0x64($s0) +/* 08A8E4 7F055DB4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F055DB8: +/* 08A8E8 7F055DB8 8FB00018 */ lw $s0, 0x18($sp) +/* 08A8EC 7F055DBC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 08A8F0 7F055DC0 03E00008 */ jr $ra +/* 08A8F4 7F055DC4 00001025 */ move $v0, $zero +) +#endif +#endif + + + + + +void start_alarm(void) +{ + if (alarm_timer < 1) { + alarm_timer = 1; + } + return; +} + +void deactivate_alarm_sound_effect(void) +{ + if ((ptr_alarm_sfx != 0) && (sfxGetArg0Unk3F(ptr_alarm_sfx) != 0)) { + sfxDeactivate(ptr_alarm_sfx); + } + return; +} + +void stop_alarm(void) +{ + alarm_timer = 0; + deactivate_alarm_sound_effect(); + return; +} + +u32 is_alarm_on(void) +{ + return (0 < alarm_timer); +} + + + + + +#ifdef NONMATCHING +void init_trigger_toxic_gas_effect(void) { + +} +#else +GLOBAL_ASM( +.text +glabel init_trigger_toxic_gas_effect +/* 08A994 7F055E64 44802000 */ mtc1 $zero, $f4 +/* 08A998 7F055E68 240E0001 */ li $t6, 1 +/* 08A99C 7F055E6C 3C018003 */ lui $at, %hi(activate_gas_sound_timer) +/* 08A9A0 7F055E70 AC2E0ACC */ sw $t6, %lo(activate_gas_sound_timer)($at) +/* 08A9A4 7F055E74 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08A9A8 7F055E78 3C018003 */ lui $at, %hi(D_80030AE0) +/* 08A9AC 7F055E7C AFBF0014 */ sw $ra, 0x14($sp) +/* 08A9B0 7F055E80 E4240AE0 */ swc1 $f4, %lo(D_80030AE0)($at) +/* 08A9B4 7F055E84 C4860000 */ lwc1 $f6, ($a0) +/* 08A9B8 7F055E88 3C028003 */ lui $v0, %hi(D_80030AD0) +/* 08A9BC 7F055E8C 24420AD0 */ addiu $v0, %lo(D_80030AD0) # addiu $v0, $v0, 0xad0 +/* 08A9C0 7F055E90 E4460000 */ swc1 $f6, ($v0) +/* 08A9C4 7F055E94 C4880004 */ lwc1 $f8, 4($a0) +/* 08A9C8 7F055E98 E4480004 */ swc1 $f8, 4($v0) +/* 08A9CC 7F055E9C C48A0008 */ lwc1 $f10, 8($a0) +/* 08A9D0 7F055EA0 0C001A57 */ jal get_stage_num +/* 08A9D4 7F055EA4 E44A0008 */ swc1 $f10, 8($v0) +/* 08A9D8 7F055EA8 24010020 */ li $at, 32 +/* 08A9DC 7F055EAC 14410007 */ bne $v0, $at, .L7F055ECC +/* 08A9E0 7F055EB0 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 08A9E4 7F055EB4 44818000 */ mtc1 $at, $f16 +/* 08A9E8 7F055EB8 3C018007 */ lui $at, %hi(gas_damage_flag) +/* 08A9EC 7F055EBC E4301E78 */ swc1 $f16, %lo(gas_damage_flag)($at) +/* 08A9F0 7F055EC0 3C018007 */ lui $at, %hi(gas_cutoff_flag) +/* 08A9F4 7F055EC4 10000008 */ b .L7F055EE8 +/* 08A9F8 7F055EC8 AC201E7C */ sw $zero, %lo(gas_cutoff_flag)($at) +.L7F055ECC: +/* 08A9FC 7F055ECC 3C014561 */ li $at, 0x45610000 # 3600.000000 +/* 08AA00 7F055ED0 44819000 */ mtc1 $at, $f18 +/* 08AA04 7F055ED4 3C018007 */ lui $at, %hi(gas_damage_flag) +/* 08AA08 7F055ED8 240F0001 */ li $t7, 1 +/* 08AA0C 7F055EDC E4321E78 */ swc1 $f18, %lo(gas_damage_flag)($at) +/* 08AA10 7F055EE0 3C018007 */ lui $at, %hi(gas_cutoff_flag) +/* 08AA14 7F055EE4 AC2F1E7C */ sw $t7, %lo(gas_cutoff_flag)($at) +.L7F055EE8: +/* 08AA18 7F055EE8 8FBF0014 */ lw $ra, 0x14($sp) +/* 08AA1C 7F055EEC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08AA20 7F055EF0 03E00008 */ jr $ra +/* 08AA24 7F055EF4 00000000 */ nop +) +#endif + + + + + + +void check_deactivate_gas_sound(void) +{ + if ((ptr_gas_sound != 0) && (sfxGetArg0Unk3F(ptr_gas_sound) != 0)) { + sfxDeactivate(ptr_gas_sound); + } + return; +} + + + +//!FIXME +//Seriously why tf is this nopping: +///* 08AA74 7F055F44 00001025 */ move $v0, $zero +//it byte matches otherwise +#ifdef NONMATCHING +s32 check_if_toxic_gas_activated(void) +{ + if (0.0f < toxic_gas_sound_timer) { + return 1; + } + return ; +} +#else +GLOBAL_ASM( +.text +glabel check_if_toxic_gas_activated +/* 08AA68 7F055F38 3C018003 */ lui $at, %hi(toxic_gas_sound_timer) +/* 08AA6C 7F055F3C C4260AC8 */ lwc1 $f6, %lo(toxic_gas_sound_timer)($at) +/* 08AA70 7F055F40 44802000 */ mtc1 $zero, $f4 +/* 08AA74 7F055F44 00001025 */ move $v0, $zero +/* 08AA78 7F055F48 4606203C */ c.lt.s $f4, $f6 +/* 08AA7C 7F055F4C 00000000 */ nop +/* 08AA80 7F055F50 45000002 */ bc1f .L7F055F5C +/* 08AA84 7F055F54 00000000 */ nop +/* 08AA88 7F055F58 24020001 */ li $v0, 1 +.L7F055F5C: +/* 08AA8C 7F055F5C 03E00008 */ jr $ra +/* 08AA90 7F055F60 00000000 */ nop +) +#endif + + + + +#ifdef NONMATCHING +extern s32 disable_player_pickups_flag; +void handle_gas_damage(void) +{ + if (activate_gas_sound_timer) + { + toxic_gas_sound_timer = toxic_gas_sound_timer + global_timer_delta; + if (gas_damage_flag <= toxic_gas_sound_timer) + { + toxic_gas_sound_timer = (f32) gas_damage_flag; + activate_gas_sound_timer = 0; + } + } + if (0.0f < toxic_gas_sound_timer) + { + if (disable_player_pickups_flag == 0) + { + switch_to_solosky2(toxic_gas_sound_timer / gas_damage_flag); + if (gas_cutoff_flag != 0) + { + if (D_80030ADC < (global_timer - 0xe1)) + { + D_80030ADC = (s32) global_timer; + if (600.0f <= toxic_gas_sound_timer) + { + play_sfx_a1(ptr_sfx_buf, 0x62, 0); + } + if (1800.0f <= toxic_gas_sound_timer) + { + record_damage_kills(0x3e000000, 0, 0, -1, 0); + } + } + if (D_80030AE0 < gas_damage_flag) + { + D_80030AE0 = (f32) (D_80030AE0 + global_timer_delta); + if (ptr_gas_sound == 0) + { + if (get_controls_locked_flag(&ptr_gas_sound) == 0) + { + play_sfx_a1(ptr_sfx_buf, 0x66, &ptr_gas_sound); + } + } + if (ptr_gas_sound != 0) + { + sub_GAME_7F053A10(ptr_gas_sound, &D_80030AD0); + return; + } + } + else + { + if (ptr_gas_sound != 0) + { + if (sfxGetArg0Unk3F(ptr_gas_sound) != 0) + { + sfxDeactivate(ptr_gas_sound); + } + } + } + } + } + } +} +#else +GLOBAL_ASM( +.text +glabel handle_gas_damage +/* 08AA94 7F055F64 3C028003 */ lui $v0, %hi(activate_gas_sound_timer) +/* 08AA98 7F055F68 24420ACC */ addiu $v0, %lo(activate_gas_sound_timer) # addiu $v0, $v0, 0xacc +/* 08AA9C 7F055F6C 8C4E0000 */ lw $t6, ($v0) +/* 08AAA0 7F055F70 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 08AAA4 7F055F74 44808000 */ mtc1 $zero, $f16 +/* 08AAA8 7F055F78 11C00011 */ beqz $t6, .L7F055FC0 +/* 08AAAC 7F055F7C AFBF001C */ sw $ra, 0x1c($sp) +/* 08AAB0 7F055F80 3C038003 */ lui $v1, %hi(toxic_gas_sound_timer) +/* 08AAB4 7F055F84 24630AC8 */ addiu $v1, %lo(toxic_gas_sound_timer) # addiu $v1, $v1, 0xac8 +/* 08AAB8 7F055F88 3C018005 */ lui $at, %hi(global_timer_delta) +/* 08AABC 7F055F8C C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 08AAC0 7F055F90 C4640000 */ lwc1 $f4, ($v1) +/* 08AAC4 7F055F94 3C018007 */ lui $at, %hi(gas_damage_flag) +/* 08AAC8 7F055F98 46062200 */ add.s $f8, $f4, $f6 +/* 08AACC 7F055F9C E4680000 */ swc1 $f8, ($v1) +/* 08AAD0 7F055FA0 C46A0000 */ lwc1 $f10, ($v1) +/* 08AAD4 7F055FA4 C4201E78 */ lwc1 $f0, %lo(gas_damage_flag)($at) +/* 08AAD8 7F055FA8 460A003E */ c.le.s $f0, $f10 +/* 08AADC 7F055FAC 00000000 */ nop +/* 08AAE0 7F055FB0 45000003 */ bc1f .L7F055FC0 +/* 08AAE4 7F055FB4 00000000 */ nop +/* 08AAE8 7F055FB8 E4600000 */ swc1 $f0, ($v1) +/* 08AAEC 7F055FBC AC400000 */ sw $zero, ($v0) +.L7F055FC0: +/* 08AAF0 7F055FC0 3C038003 */ lui $v1, %hi(toxic_gas_sound_timer) +/* 08AAF4 7F055FC4 24630AC8 */ addiu $v1, %lo(toxic_gas_sound_timer) # addiu $v1, $v1, 0xac8 +/* 08AAF8 7F055FC8 C4600000 */ lwc1 $f0, ($v1) +/* 08AAFC 7F055FCC 3C0F8003 */ lui $t7, %hi(disable_player_pickups_flag) +/* 08AB00 7F055FD0 4600803C */ c.lt.s $f16, $f0 +/* 08AB04 7F055FD4 00000000 */ nop +/* 08AB08 7F055FD8 4502005E */ bc1fl .L7F056154 +/* 08AB0C 7F055FDC 8FBF001C */ lw $ra, 0x1c($sp) +/* 08AB10 7F055FE0 8DEF64B4 */ lw $t7, %lo(disable_player_pickups_flag)($t7) +/* 08AB14 7F055FE4 3C018007 */ lui $at, %hi(gas_damage_flag) +/* 08AB18 7F055FE8 55E0005A */ bnezl $t7, .L7F056154 +/* 08AB1C 7F055FEC 8FBF001C */ lw $ra, 0x1c($sp) +/* 08AB20 7F055FF0 C4321E78 */ lwc1 $f18, %lo(gas_damage_flag)($at) +/* 08AB24 7F055FF4 0FC2EB2A */ jal switch_to_solosky2 +/* 08AB28 7F055FF8 46120303 */ div.s $f12, $f0, $f18 +/* 08AB2C 7F055FFC 3C188007 */ lui $t8, %hi(gas_cutoff_flag) +/* 08AB30 7F056000 8F181E7C */ lw $t8, %lo(gas_cutoff_flag)($t8) +/* 08AB34 7F056004 3C038003 */ lui $v1, %hi(toxic_gas_sound_timer) +/* 08AB38 7F056008 24630AC8 */ addiu $v1, %lo(toxic_gas_sound_timer) # addiu $v1, $v1, 0xac8 +/* 08AB3C 7F05600C 13000050 */ beqz $t8, .L7F056150 +/* 08AB40 7F056010 3C048003 */ lui $a0, %hi(D_80030ADC) +/* 08AB44 7F056014 3C028005 */ lui $v0, %hi(global_timer) +/* 08AB48 7F056018 8C42837C */ lw $v0, %lo(global_timer)($v0) +/* 08AB4C 7F05601C 24840ADC */ addiu $a0, %lo(D_80030ADC) # addiu $a0, $a0, 0xadc +/* 08AB50 7F056020 8C990000 */ lw $t9, ($a0) +/* 08AB54 7F056024 2448FF1F */ addiu $t0, $v0, -0xe1 +/* 08AB58 7F056028 0328082A */ slt $at, $t9, $t0 +/* 08AB5C 7F05602C 1020001B */ beqz $at, .L7F05609C +/* 08AB60 7F056030 3C014416 */ li $at, 0x44160000 # 600.000000 +/* 08AB64 7F056034 44812000 */ mtc1 $at, $f4 +/* 08AB68 7F056038 C4600000 */ lwc1 $f0, ($v1) +/* 08AB6C 7F05603C AC820000 */ sw $v0, ($a0) +/* 08AB70 7F056040 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 08AB74 7F056044 4600203E */ c.le.s $f4, $f0 +/* 08AB78 7F056048 24050062 */ li $a1, 98 +/* 08AB7C 7F05604C 00003025 */ move $a2, $zero +/* 08AB80 7F056050 45020006 */ bc1fl .L7F05606C +/* 08AB84 7F056054 3C0144E1 */ lui $at, 0x44e1 +/* 08AB88 7F056058 0C002382 */ jal play_sfx_a1 +/* 08AB8C 7F05605C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08AB90 7F056060 3C018003 */ lui $at, %hi(toxic_gas_sound_timer) +/* 08AB94 7F056064 C4200AC8 */ lwc1 $f0, %lo(toxic_gas_sound_timer)($at) +/* 08AB98 7F056068 3C0144E1 */ li $at, 0x44E10000 # 1800.000000 +.L7F05606C: +/* 08AB9C 7F05606C 44813000 */ mtc1 $at, $f6 +/* 08ABA0 7F056070 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 08ABA4 7F056074 4600303E */ c.le.s $f6, $f0 +/* 08ABA8 7F056078 00000000 */ nop +/* 08ABAC 7F05607C 45000007 */ bc1f .L7F05609C +/* 08ABB0 7F056080 00000000 */ nop +/* 08ABB4 7F056084 44807000 */ mtc1 $zero, $f14 +/* 08ABB8 7F056088 44816000 */ mtc1 $at, $f12 +/* 08ABBC 7F05608C 2407FFFF */ li $a3, -1 +/* 08ABC0 7F056090 44067000 */ mfc1 $a2, $f14 +/* 08ABC4 7F056094 0FC22647 */ jal record_damage_kills +/* 08ABC8 7F056098 AFA00010 */ sw $zero, 0x10($sp) +.L7F05609C: +/* 08ABCC 7F05609C 3C028003 */ lui $v0, %hi(D_80030AE0) +/* 08ABD0 7F0560A0 24420AE0 */ addiu $v0, %lo(D_80030AE0) # addiu $v0, $v0, 0xae0 +/* 08ABD4 7F0560A4 3C018007 */ lui $at, %hi(gas_damage_flag) +/* 08ABD8 7F0560A8 C4281E78 */ lwc1 $f8, %lo(gas_damage_flag)($at) +/* 08ABDC 7F0560AC C4400000 */ lwc1 $f0, ($v0) +/* 08ABE0 7F0560B0 3C018005 */ lui $at, %hi(global_timer_delta) +/* 08ABE4 7F0560B4 3C048003 */ lui $a0, %hi(ptr_gas_sound) +/* 08ABE8 7F0560B8 4608003C */ c.lt.s $f0, $f8 +/* 08ABEC 7F0560BC 00000000 */ nop +/* 08ABF0 7F0560C0 4500001A */ bc1f .L7F05612C +/* 08ABF4 7F0560C4 00000000 */ nop +/* 08ABF8 7F0560C8 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 08ABFC 7F0560CC 3C098003 */ lui $t1, %hi(ptr_gas_sound) +/* 08AC00 7F0560D0 460A0400 */ add.s $f16, $f0, $f10 +/* 08AC04 7F0560D4 E4500000 */ swc1 $f16, ($v0) +/* 08AC08 7F0560D8 8D290AE4 */ lw $t1, %lo(ptr_gas_sound)($t1) +/* 08AC0C 7F0560DC 1520000A */ bnez $t1, .L7F056108 +/* 08AC10 7F0560E0 00000000 */ nop +/* 08AC14 7F0560E4 0FC2FF01 */ jal get_controls_locked_flag +/* 08AC18 7F0560E8 00000000 */ nop +/* 08AC1C 7F0560EC 14400006 */ bnez $v0, .L7F056108 +/* 08AC20 7F0560F0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 08AC24 7F0560F4 3C068003 */ lui $a2, %hi(ptr_gas_sound) +/* 08AC28 7F0560F8 24C60AE4 */ addiu $a2, %lo(ptr_gas_sound) # addiu $a2, $a2, 0xae4 +/* 08AC2C 7F0560FC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08AC30 7F056100 0C002382 */ jal play_sfx_a1 +/* 08AC34 7F056104 24050066 */ li $a1, 102 +.L7F056108: +/* 08AC38 7F056108 3C048003 */ lui $a0, %hi(ptr_gas_sound) +/* 08AC3C 7F05610C 8C840AE4 */ lw $a0, %lo(ptr_gas_sound)($a0) +/* 08AC40 7F056110 3C058003 */ lui $a1, %hi(D_80030AD0) +/* 08AC44 7F056114 5080000F */ beql $a0, $zero, .L7F056154 +/* 08AC48 7F056118 8FBF001C */ lw $ra, 0x1c($sp) +/* 08AC4C 7F05611C 0FC14E84 */ jal sub_GAME_7F053A10 +/* 08AC50 7F056120 24A50AD0 */ addiu $a1, %lo(D_80030AD0) # addiu $a1, $a1, 0xad0 +/* 08AC54 7F056124 1000000B */ b .L7F056154 +/* 08AC58 7F056128 8FBF001C */ lw $ra, 0x1c($sp) +.L7F05612C: +/* 08AC5C 7F05612C 8C840AE4 */ lw $a0, %lo(ptr_gas_sound)($a0) +/* 08AC60 7F056130 50800008 */ beql $a0, $zero, .L7F056154 +/* 08AC64 7F056134 8FBF001C */ lw $ra, 0x1c($sp) +/* 08AC68 7F056138 0C00237C */ jal sfxGetArg0Unk3F +/* 08AC6C 7F05613C 00000000 */ nop +/* 08AC70 7F056140 10400003 */ beqz $v0, .L7F056150 +/* 08AC74 7F056144 3C048003 */ lui $a0, %hi(ptr_gas_sound) +/* 08AC78 7F056148 0C002408 */ jal sfxDeactivate +/* 08AC7C 7F05614C 8C840AE4 */ lw $a0, %lo(ptr_gas_sound)($a0) +.L7F056150: +/* 08AC80 7F056150 8FBF001C */ lw $ra, 0x1c($sp) +.L7F056154: +/* 08AC84 7F056154 27BD0020 */ addiu $sp, $sp, 0x20 +/* 08AC88 7F056158 03E00008 */ jr $ra +/* 08AC8C 7F05615C 00000000 */ nop +) +#endif + + + + + + +void set_unset_clock_lock_bits(int clocklockbits,int flag) +{ + if (flag != 0) { + clock_drawn_flag &= ~clocklockbits; + return; + } + clock_drawn_flag |= clocklockbits; +} + +u32 is_clock_drawn_onscreen(void) +{ + return clock_drawn_flag == 0; +} + +void set_clock_time(f32 time) { + clock_time = time; +} + +f32 get_clock_time(void) { + return clock_time; +} + +void set_clock_enable(s32 enable) { + clock_enable = enable; +} + +s32 get_clock_enable(void) { + return clock_enable; +} + +void if_enabled_reset_clock(void) +{ + if (clock_enable != 0) { + clock_time = clock_time - global_timer_delta; + } +} + + +#ifdef NONMATCHING +void sub_GAME_7F056210(void) { + +} +#else +GLOBAL_ASM( +.late_rodata + +.text +glabel sub_GAME_7F056210 +/* 08AD40 7F056210 3C0E8003 */ lui $t6, %hi(clock_drawn_flag) +/* 08AD44 7F056214 8DCE0AE8 */ lw $t6, %lo(clock_drawn_flag)($t6) +/* 08AD48 7F056218 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 08AD4C 7F05621C AFB10028 */ sw $s1, 0x28($sp) +/* 08AD50 7F056220 00808825 */ move $s1, $a0 +/* 08AD54 7F056224 AFBF002C */ sw $ra, 0x2c($sp) +/* 08AD58 7F056228 15C000EB */ bnez $t6, .L7F0565D8 +/* 08AD5C 7F05622C AFB00024 */ sw $s0, 0x24($sp) +/* 08AD60 7F056230 3C018003 */ lui $at, %hi(clock_time) +/* 08AD64 7F056234 C4220AF0 */ lwc1 $f2, %lo(clock_time)($at) +/* 08AD68 7F056238 44802000 */ mtc1 $zero, $f4 +/* 08AD6C 7F05623C 3C014561 */ li $at, 0x45610000 # 3600.000000 +/* 08AD70 7F056240 44813000 */ mtc1 $at, $f6 +/* 08AD74 7F056244 4604103C */ c.lt.s $f2, $f4 +/* 08AD78 7F056248 00000000 */ nop +/* 08AD7C 7F05624C 45020003 */ bc1fl .L7F05625C +/* 08AD80 7F056250 46061303 */ div.s $f12, $f2, $f6 +/* 08AD84 7F056254 46001087 */ neg.s $f2, $f2 +/* 08AD88 7F056258 46061303 */ div.s $f12, $f2, $f6 +.L7F05625C: +/* 08AD8C 7F05625C 0FC170D8 */ jal truncf +/* 08AD90 7F056260 E7A20030 */ swc1 $f2, 0x30($sp) +/* 08AD94 7F056264 4600020D */ trunc.w.s $f8, $f0 +/* 08AD98 7F056268 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 08AD9C 7F05626C C7A20030 */ lwc1 $f2, 0x30($sp) +/* 08ADA0 7F056270 44815000 */ mtc1 $at, $f10 +/* 08ADA4 7F056274 44184000 */ mfc1 $t8, $f8 +/* 08ADA8 7F056278 460A1303 */ div.s $f12, $f2, $f10 +/* 08ADAC 7F05627C 0FC170D8 */ jal truncf +/* 08ADB0 7F056280 AFB80044 */ sw $t8, 0x44($sp) +/* 08ADB4 7F056284 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 08ADB8 7F056288 C7A20030 */ lwc1 $f2, 0x30($sp) +/* 08ADBC 7F05628C 44819000 */ mtc1 $at, $f18 +/* 08ADC0 7F056290 4600040D */ trunc.w.s $f16, $f0 +/* 08ADC4 7F056294 8FA90044 */ lw $t1, 0x44($sp) +/* 08ADC8 7F056298 46121102 */ mul.s $f4, $f2, $f18 +/* 08ADCC 7F05629C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 08ADD0 7F0562A0 44088000 */ mfc1 $t0, $f16 +/* 08ADD4 7F0562A4 00095100 */ sll $t2, $t1, 4 +/* 08ADD8 7F0562A8 01495023 */ subu $t2, $t2, $t1 +/* 08ADDC 7F0562AC 44813000 */ mtc1 $at, $f6 +/* 08ADE0 7F0562B0 000A5080 */ sll $t2, $t2, 2 +/* 08ADE4 7F0562B4 010A5823 */ subu $t3, $t0, $t2 +/* 08ADE8 7F0562B8 AFAB0040 */ sw $t3, 0x40($sp) +/* 08ADEC 7F0562BC 0FC170D8 */ jal truncf +/* 08ADF0 7F0562C0 46062303 */ div.s $f12, $f4, $f6 +/* 08ADF4 7F0562C4 8FAE0044 */ lw $t6, 0x44($sp) +/* 08ADF8 7F0562C8 4600020D */ trunc.w.s $f8, $f0 +/* 08ADFC 7F0562CC 8FB90040 */ lw $t9, 0x40($sp) +/* 08AE00 7F0562D0 000E7880 */ sll $t7, $t6, 2 +/* 08AE04 7F0562D4 01EE7823 */ subu $t7, $t7, $t6 +/* 08AE08 7F0562D8 000F7900 */ sll $t7, $t7, 4 +/* 08AE0C 7F0562DC 01EE7823 */ subu $t7, $t7, $t6 +/* 08AE10 7F0562E0 00194880 */ sll $t1, $t9, 2 +/* 08AE14 7F0562E4 440D4000 */ mfc1 $t5, $f8 +/* 08AE18 7F0562E8 000F78C0 */ sll $t7, $t7, 3 +/* 08AE1C 7F0562EC 01394823 */ subu $t1, $t1, $t9 +/* 08AE20 7F0562F0 000948C0 */ sll $t1, $t1, 3 +/* 08AE24 7F0562F4 01EE7823 */ subu $t7, $t7, $t6 +/* 08AE28 7F0562F8 000F7900 */ sll $t7, $t7, 4 +/* 08AE2C 7F0562FC 01394821 */ addu $t1, $t1, $t9 +/* 08AE30 7F056300 00094880 */ sll $t1, $t1, 2 +/* 08AE34 7F056304 01AFC023 */ subu $t8, $t5, $t7 +/* 08AE38 7F056308 03094023 */ subu $t0, $t8, $t1 +/* 08AE3C 7F05630C AFA8003C */ sw $t0, 0x3c($sp) +/* 08AE40 7F056310 0FC2B366 */ jal microcode_constructor +/* 08AE44 7F056314 02202025 */ move $a0, $s1 +/* 08AE48 7F056318 0C001149 */ jal get_video2_settings_uly +/* 08AE4C 7F05631C 00408825 */ move $s1, $v0 +/* 08AE50 7F056320 00028400 */ sll $s0, $v0, 0x10 +/* 08AE54 7F056324 00105403 */ sra $t2, $s0, 0x10 +/* 08AE58 7F056328 0C00112B */ jal get_video2_settings_height +/* 08AE5C 7F05632C 01408025 */ move $s0, $t2 +/* 08AE60 7F056330 8FA50044 */ lw $a1, 0x44($sp) +/* 08AE64 7F056334 24010064 */ li $at, 100 +/* 08AE68 7F056338 00507021 */ addu $t6, $v0, $s0 +/* 08AE6C 7F05633C 00A1001A */ div $zero, $a1, $at +/* 08AE70 7F056340 00005810 */ mfhi $t3 +/* 08AE74 7F056344 2401000A */ li $at, 10 +/* 08AE78 7F056348 25CDFFEE */ addiu $t5, $t6, -0x12 +/* 08AE7C 7F05634C 0161001A */ div $zero, $t3, $at +/* 08AE80 7F056350 00002812 */ mflo $a1 +/* 08AE84 7F056354 240F0002 */ li $t7, 2 +/* 08AE88 7F056358 24190001 */ li $t9, 1 +/* 08AE8C 7F05635C AFB90018 */ sw $t9, 0x18($sp) +/* 08AE90 7F056360 AFAF0014 */ sw $t7, 0x14($sp) +/* 08AE94 7F056364 AFAD0010 */ sw $t5, 0x10($sp) +/* 08AE98 7F056368 02202025 */ move $a0, $s1 +/* 08AE9C 7F05636C 24060082 */ li $a2, 130 +/* 08AEA0 7F056370 0FC1A723 */ jal display_ammo_total_in_a1 +/* 08AEA4 7F056374 24070002 */ li $a3, 2 +/* 08AEA8 7F056378 0C001149 */ jal get_video2_settings_uly +/* 08AEAC 7F05637C 00408825 */ move $s1, $v0 +/* 08AEB0 7F056380 00028400 */ sll $s0, $v0, 0x10 +/* 08AEB4 7F056384 0010C403 */ sra $t8, $s0, 0x10 +/* 08AEB8 7F056388 0C00112B */ jal get_video2_settings_height +/* 08AEBC 7F05638C 03008025 */ move $s0, $t8 +/* 08AEC0 7F056390 8FA50044 */ lw $a1, 0x44($sp) +/* 08AEC4 7F056394 2401000A */ li $at, 10 +/* 08AEC8 7F056398 00504021 */ addu $t0, $v0, $s0 +/* 08AECC 7F05639C 00A1001A */ div $zero, $a1, $at +/* 08AED0 7F0563A0 00002810 */ mfhi $a1 +/* 08AED4 7F0563A4 250AFFEE */ addiu $t2, $t0, -0x12 +/* 08AED8 7F0563A8 240B0002 */ li $t3, 2 +/* 08AEDC 7F0563AC 240C0001 */ li $t4, 1 +/* 08AEE0 7F0563B0 AFAC0018 */ sw $t4, 0x18($sp) +/* 08AEE4 7F0563B4 AFAB0014 */ sw $t3, 0x14($sp) +/* 08AEE8 7F0563B8 AFAA0010 */ sw $t2, 0x10($sp) +/* 08AEEC 7F0563BC 02202025 */ move $a0, $s1 +/* 08AEF0 7F0563C0 2406008A */ li $a2, 138 +/* 08AEF4 7F0563C4 0FC1A723 */ jal display_ammo_total_in_a1 +/* 08AEF8 7F0563C8 24070002 */ li $a3, 2 +/* 08AEFC 7F0563CC 0C001149 */ jal get_video2_settings_uly +/* 08AF00 7F0563D0 00408825 */ move $s1, $v0 +/* 08AF04 7F0563D4 00028400 */ sll $s0, $v0, 0x10 +/* 08AF08 7F0563D8 00107403 */ sra $t6, $s0, 0x10 +/* 08AF0C 7F0563DC 0C00112B */ jal get_video2_settings_height +/* 08AF10 7F0563E0 01C08025 */ move $s0, $t6 +/* 08AF14 7F0563E4 00506821 */ addu $t5, $v0, $s0 +/* 08AF18 7F0563E8 25AFFFEE */ addiu $t7, $t5, -0x12 +/* 08AF1C 7F0563EC 3C058005 */ lui $a1, %hi(D_80052A44) +/* 08AF20 7F0563F0 24190002 */ li $t9, 2 +/* 08AF24 7F0563F4 24180001 */ li $t8, 1 +/* 08AF28 7F0563F8 AFB80018 */ sw $t8, 0x18($sp) +/* 08AF2C 7F0563FC AFB90014 */ sw $t9, 0x14($sp) +/* 08AF30 7F056400 24A52A44 */ addiu $a1, %lo(D_80052A44) # addiu $a1, $a1, 0x2a44 +/* 08AF34 7F056404 AFAF0010 */ sw $t7, 0x10($sp) +/* 08AF38 7F056408 02202025 */ move $a0, $s1 +/* 08AF3C 7F05640C 24060093 */ li $a2, 147 +/* 08AF40 7F056410 0FC1A694 */ jal some_kind_of_display_routine +/* 08AF44 7F056414 24070002 */ li $a3, 2 +/* 08AF48 7F056418 0C001149 */ jal get_video2_settings_uly +/* 08AF4C 7F05641C 00408825 */ move $s1, $v0 +/* 08AF50 7F056420 00028400 */ sll $s0, $v0, 0x10 +/* 08AF54 7F056424 00104C03 */ sra $t1, $s0, 0x10 +/* 08AF58 7F056428 0C00112B */ jal get_video2_settings_height +/* 08AF5C 7F05642C 01208025 */ move $s0, $t1 +/* 08AF60 7F056430 8FA50040 */ lw $a1, 0x40($sp) +/* 08AF64 7F056434 2401003C */ li $at, 60 +/* 08AF68 7F056438 00505821 */ addu $t3, $v0, $s0 +/* 08AF6C 7F05643C 00A1001A */ div $zero, $a1, $at +/* 08AF70 7F056440 00004010 */ mfhi $t0 +/* 08AF74 7F056444 2401000A */ li $at, 10 +/* 08AF78 7F056448 256CFFEE */ addiu $t4, $t3, -0x12 +/* 08AF7C 7F05644C 0101001A */ div $zero, $t0, $at +/* 08AF80 7F056450 00002812 */ mflo $a1 +/* 08AF84 7F056454 240E0002 */ li $t6, 2 +/* 08AF88 7F056458 240D0001 */ li $t5, 1 +/* 08AF8C 7F05645C AFAD0018 */ sw $t5, 0x18($sp) +/* 08AF90 7F056460 AFAE0014 */ sw $t6, 0x14($sp) +/* 08AF94 7F056464 AFAC0010 */ sw $t4, 0x10($sp) +/* 08AF98 7F056468 02202025 */ move $a0, $s1 +/* 08AF9C 7F05646C 2406009C */ li $a2, 156 +/* 08AFA0 7F056470 0FC1A723 */ jal display_ammo_total_in_a1 +/* 08AFA4 7F056474 24070002 */ li $a3, 2 +/* 08AFA8 7F056478 0C001149 */ jal get_video2_settings_uly +/* 08AFAC 7F05647C 00408825 */ move $s1, $v0 +/* 08AFB0 7F056480 00028400 */ sll $s0, $v0, 0x10 +/* 08AFB4 7F056484 00107C03 */ sra $t7, $s0, 0x10 +/* 08AFB8 7F056488 0C00112B */ jal get_video2_settings_height +/* 08AFBC 7F05648C 01E08025 */ move $s0, $t7 +/* 08AFC0 7F056490 8FA50040 */ lw $a1, 0x40($sp) +/* 08AFC4 7F056494 2401000A */ li $at, 10 +/* 08AFC8 7F056498 0050C021 */ addu $t8, $v0, $s0 +/* 08AFCC 7F05649C 00A1001A */ div $zero, $a1, $at +/* 08AFD0 7F0564A0 00002810 */ mfhi $a1 +/* 08AFD4 7F0564A4 2709FFEE */ addiu $t1, $t8, -0x12 +/* 08AFD8 7F0564A8 24080002 */ li $t0, 2 +/* 08AFDC 7F0564AC 240A0001 */ li $t2, 1 +/* 08AFE0 7F0564B0 AFAA0018 */ sw $t2, 0x18($sp) +/* 08AFE4 7F0564B4 AFA80014 */ sw $t0, 0x14($sp) +/* 08AFE8 7F0564B8 AFA90010 */ sw $t1, 0x10($sp) +/* 08AFEC 7F0564BC 02202025 */ move $a0, $s1 +/* 08AFF0 7F0564C0 240600A4 */ li $a2, 164 +/* 08AFF4 7F0564C4 0FC1A723 */ jal display_ammo_total_in_a1 +/* 08AFF8 7F0564C8 24070002 */ li $a3, 2 +/* 08AFFC 7F0564CC 0C001149 */ jal get_video2_settings_uly +/* 08B000 7F0564D0 00408825 */ move $s1, $v0 +/* 08B004 7F0564D4 00028400 */ sll $s0, $v0, 0x10 +/* 08B008 7F0564D8 00105C03 */ sra $t3, $s0, 0x10 +/* 08B00C 7F0564DC 0C00112B */ jal get_video2_settings_height +/* 08B010 7F0564E0 01608025 */ move $s0, $t3 +/* 08B014 7F0564E4 00506021 */ addu $t4, $v0, $s0 +/* 08B018 7F0564E8 258EFFEE */ addiu $t6, $t4, -0x12 +/* 08B01C 7F0564EC 3C058005 */ lui $a1, %hi(D_80052A44) +/* 08B020 7F0564F0 240D0002 */ li $t5, 2 +/* 08B024 7F0564F4 240F0001 */ li $t7, 1 +/* 08B028 7F0564F8 AFAF0018 */ sw $t7, 0x18($sp) +/* 08B02C 7F0564FC AFAD0014 */ sw $t5, 0x14($sp) +/* 08B030 7F056500 24A52A44 */ addiu $a1, %lo(D_80052A44) # addiu $a1, $a1, 0x2a44 +/* 08B034 7F056504 AFAE0010 */ sw $t6, 0x10($sp) +/* 08B038 7F056508 02202025 */ move $a0, $s1 +/* 08B03C 7F05650C 240600AD */ li $a2, 173 +/* 08B040 7F056510 0FC1A694 */ jal some_kind_of_display_routine +/* 08B044 7F056514 24070002 */ li $a3, 2 +/* 08B048 7F056518 0C001149 */ jal get_video2_settings_uly +/* 08B04C 7F05651C 00408825 */ move $s1, $v0 +/* 08B050 7F056520 00028400 */ sll $s0, $v0, 0x10 +/* 08B054 7F056524 0010CC03 */ sra $t9, $s0, 0x10 +/* 08B058 7F056528 0C00112B */ jal get_video2_settings_height +/* 08B05C 7F05652C 03208025 */ move $s0, $t9 +/* 08B060 7F056530 8FA5003C */ lw $a1, 0x3c($sp) +/* 08B064 7F056534 24010064 */ li $at, 100 +/* 08B068 7F056538 00504021 */ addu $t0, $v0, $s0 +/* 08B06C 7F05653C 00A1001A */ div $zero, $a1, $at +/* 08B070 7F056540 0000C010 */ mfhi $t8 +/* 08B074 7F056544 2401000A */ li $at, 10 +/* 08B078 7F056548 250AFFEE */ addiu $t2, $t0, -0x12 +/* 08B07C 7F05654C 0301001A */ div $zero, $t8, $at +/* 08B080 7F056550 00002812 */ mflo $a1 +/* 08B084 7F056554 240B0002 */ li $t3, 2 +/* 08B088 7F056558 240C0001 */ li $t4, 1 +/* 08B08C 7F05655C AFAC0018 */ sw $t4, 0x18($sp) +/* 08B090 7F056560 AFAB0014 */ sw $t3, 0x14($sp) +/* 08B094 7F056564 AFAA0010 */ sw $t2, 0x10($sp) +/* 08B098 7F056568 02202025 */ move $a0, $s1 +/* 08B09C 7F05656C 240600B6 */ li $a2, 182 +/* 08B0A0 7F056570 0FC1A723 */ jal display_ammo_total_in_a1 +/* 08B0A4 7F056574 24070002 */ li $a3, 2 +/* 08B0A8 7F056578 0C001149 */ jal get_video2_settings_uly +/* 08B0AC 7F05657C 00408825 */ move $s1, $v0 +/* 08B0B0 7F056580 00028400 */ sll $s0, $v0, 0x10 +/* 08B0B4 7F056584 00107403 */ sra $t6, $s0, 0x10 +/* 08B0B8 7F056588 0C00112B */ jal get_video2_settings_height +/* 08B0BC 7F05658C 01C08025 */ move $s0, $t6 +/* 08B0C0 7F056590 8FA5003C */ lw $a1, 0x3c($sp) +/* 08B0C4 7F056594 2401000A */ li $at, 10 +/* 08B0C8 7F056598 00507821 */ addu $t7, $v0, $s0 +/* 08B0CC 7F05659C 00A1001A */ div $zero, $a1, $at +/* 08B0D0 7F0565A0 00002810 */ mfhi $a1 +/* 08B0D4 7F0565A4 25F9FFEE */ addiu $t9, $t7, -0x12 +/* 08B0D8 7F0565A8 24180002 */ li $t8, 2 +/* 08B0DC 7F0565AC 24090001 */ li $t1, 1 +/* 08B0E0 7F0565B0 AFA90018 */ sw $t1, 0x18($sp) +/* 08B0E4 7F0565B4 AFB80014 */ sw $t8, 0x14($sp) +/* 08B0E8 7F0565B8 AFB90010 */ sw $t9, 0x10($sp) +/* 08B0EC 7F0565BC 02202025 */ move $a0, $s1 +/* 08B0F0 7F0565C0 240600BE */ li $a2, 190 +/* 08B0F4 7F0565C4 0FC1A723 */ jal display_ammo_total_in_a1 +/* 08B0F8 7F0565C8 24070002 */ li $a3, 2 +/* 08B0FC 7F0565CC 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 08B100 7F0565D0 00402025 */ move $a0, $v0 +/* 08B104 7F0565D4 00408825 */ move $s1, $v0 +.L7F0565D8: +/* 08B108 7F0565D8 8FBF002C */ lw $ra, 0x2c($sp) +/* 08B10C 7F0565DC 02201025 */ move $v0, $s1 +/* 08B110 7F0565E0 8FB10028 */ lw $s1, 0x28($sp) +/* 08B114 7F0565E4 8FB00024 */ lw $s0, 0x24($sp) +/* 08B118 7F0565E8 03E00008 */ jr $ra +/* 08B11C 7F0565EC 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +void handle_alarm_gas_timer_calldamage(void) +{ + if (is_alarm_on() != 0) { + if ((ptr_alarm_sfx == 0) && (get_controls_locked_flag() == 0)) { + play_sfx_a1(ptr_sfx_buf,0xa3,&ptr_alarm_sfx); + } + alarm_timer = alarm_timer + clock_timer; + if (0x708 < alarm_timer) { + stop_alarm(); + } + } + handle_gas_damage(); + if_enabled_reset_clock(); + check_guard_detonate_proxmine(); + D_80030AF4 = 0; + return; +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F056690(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F056690 +/* 08B1C0 7F056690 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 08B1C4 7F056694 AFBF002C */ sw $ra, 0x2c($sp) +/* 08B1C8 7F056698 AFB40028 */ sw $s4, 0x28($sp) +/* 08B1CC 7F05669C AFB30024 */ sw $s3, 0x24($sp) +/* 08B1D0 7F0566A0 AFB20020 */ sw $s2, 0x20($sp) +/* 08B1D4 7F0566A4 AFB1001C */ sw $s1, 0x1c($sp) +/* 08B1D8 7F0566A8 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 08B1DC 7F0566AC AFB00018 */ sw $s0, 0x18($sp) +/* 08B1E0 7F0566B0 1040002A */ beqz $v0, .L7F05675C +/* 08B1E4 7F0566B4 00409025 */ move $s2, $v0 +/* 08B1E8 7F0566B8 24140001 */ li $s4, 1 +/* 08B1EC 7F0566BC 924E0000 */ lbu $t6, ($s2) +.L7F0566C0: +/* 08B1F0 7F0566C0 568E0024 */ bnel $s4, $t6, .L7F056754 +/* 08B1F4 7F0566C4 8E520024 */ lw $s2, 0x24($s2) +/* 08B1F8 7F0566C8 924F0001 */ lbu $t7, 1($s2) +/* 08B1FC 7F0566CC 31F80002 */ andi $t8, $t7, 2 +/* 08B200 7F0566D0 57000020 */ bnezl $t8, .L7F056754 +/* 08B204 7F0566D4 8E520024 */ lw $s2, 0x24($s2) +/* 08B208 7F0566D8 8E510004 */ lw $s1, 4($s2) +/* 08B20C 7F0566DC 92390002 */ lbu $t9, 2($s1) +/* 08B210 7F0566E0 02202025 */ move $a0, $s1 +/* 08B214 7F0566E4 33280080 */ andi $t0, $t9, 0x80 +/* 08B218 7F0566E8 5100001A */ beql $t0, $zero, .L7F056754 +/* 08B21C 7F0566EC 8E520024 */ lw $s2, 0x24($s2) +/* 08B220 7F0566F0 0FC12D1E */ jal sub_GAME_7F04B478 +/* 08B224 7F0566F4 8E330014 */ lw $s3, 0x14($s1) +/* 08B228 7F0566F8 10400018 */ beqz $v0, .L7F05675C +/* 08B22C 7F0566FC 00402825 */ move $a1, $v0 +/* 08B230 7F056700 8C500004 */ lw $s0, 4($v0) +/* 08B234 7F056704 52000016 */ beql $s0, $zero, .L7F056760 +/* 08B238 7F056708 8FBF002C */ lw $ra, 0x2c($sp) +/* 08B23C 7F05670C 8E290014 */ lw $t1, 0x14($s1) +/* 08B240 7F056710 0FC12D64 */ jal sub_GAME_7F04B590 +/* 08B244 7F056714 8D240008 */ lw $a0, 8($t1) +/* 08B248 7F056718 5040000E */ beql $v0, $zero, .L7F056754 +/* 08B24C 7F05671C 8E520024 */ lw $s2, 0x24($s2) +/* 08B250 7F056720 960B001A */ lhu $t3, 0x1a($s0) +/* 08B254 7F056724 8E6A0010 */ lw $t2, 0x10($s3) +/* 08B258 7F056728 8E0D0008 */ lw $t5, 8($s0) +/* 08B25C 7F05672C 000B6080 */ sll $t4, $t3, 2 +/* 08B260 7F056730 014C1021 */ addu $v0, $t2, $t4 +/* 08B264 7F056734 8C4E0000 */ lw $t6, ($v0) +/* 08B268 7F056738 11AE0005 */ beq $t5, $t6, .L7F056750 +/* 08B26C 7F05673C 02202025 */ move $a0, $s1 +/* 08B270 7F056740 0FC10409 */ jal sub_GAME_7F041024 +/* 08B274 7F056744 24050001 */ li $a1, 1 +/* 08B278 7F056748 10000005 */ b .L7F056760 +/* 08B27C 7F05674C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F056750: +/* 08B280 7F056750 8E520024 */ lw $s2, 0x24($s2) +.L7F056754: +/* 08B284 7F056754 5640FFDA */ bnezl $s2, .L7F0566C0 +/* 08B288 7F056758 924E0000 */ lbu $t6, ($s2) +.L7F05675C: +/* 08B28C 7F05675C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F056760: +/* 08B290 7F056760 8FB00018 */ lw $s0, 0x18($sp) +/* 08B294 7F056764 8FB1001C */ lw $s1, 0x1c($sp) +/* 08B298 7F056768 8FB20020 */ lw $s2, 0x20($sp) +/* 08B29C 7F05676C 8FB30024 */ lw $s3, 0x24($sp) +/* 08B2A0 7F056770 8FB40028 */ lw $s4, 0x28($sp) +/* 08B2A4 7F056774 03E00008 */ jr $ra +/* 08B2A8 7F056778 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void drop_inventory(void) { + +} +#else +GLOBAL_ASM( +.text +glabel drop_inventory +/* 08B2AC 7F05677C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 08B2B0 7F056780 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 08B2B4 7F056784 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 08B2B8 7F056788 AFBF0034 */ sw $ra, 0x34($sp) +/* 08B2BC 7F05678C AFB40030 */ sw $s4, 0x30($sp) +/* 08B2C0 7F056790 AFB3002C */ sw $s3, 0x2c($sp) +/* 08B2C4 7F056794 AFB20028 */ sw $s2, 0x28($sp) +/* 08B2C8 7F056798 AFB10024 */ sw $s1, 0x24($sp) +/* 08B2CC 7F05679C AFB00020 */ sw $s0, 0x20($sp) +/* 08B2D0 7F0567A0 8DCF00A8 */ lw $t7, 0xa8($t6) +/* 08B2D4 7F0567A4 00002825 */ move $a1, $zero +/* 08B2D8 7F0567A8 8DF20004 */ lw $s2, 4($t7) +/* 08B2DC 7F0567AC 0FC1487A */ jal set_0x4_in_runtime_flags_for_item_in_guards_hand +/* 08B2E0 7F0567B0 02402025 */ move $a0, $s2 +/* 08B2E4 7F0567B4 02402025 */ move $a0, $s2 +/* 08B2E8 7F0567B8 0FC1487A */ jal set_0x4_in_runtime_flags_for_item_in_guards_hand +/* 08B2EC 7F0567BC 24050001 */ li $a1, 1 +/* 08B2F0 7F0567C0 24100001 */ li $s0, 1 +/* 08B2F4 7F0567C4 24140059 */ li $s4, 89 +/* 08B2F8 7F0567C8 3C132000 */ lui $s3, 0x2000 +.L7F0567CC: +/* 08B2FC 7F0567CC 0FC26C91 */ jal sub_GAME_7F09B244 +/* 08B300 7F0567D0 02002025 */ move $a0, $s0 +/* 08B304 7F0567D4 04400012 */ bltz $v0, .L7F056820 +/* 08B308 7F0567D8 00408825 */ move $s1, $v0 +/* 08B30C 7F0567DC 0FC230C5 */ jal is_weapon_in_inv +/* 08B310 7F0567E0 02002025 */ move $a0, $s0 +/* 08B314 7F0567E4 1040000E */ beqz $v0, .L7F056820 +/* 08B318 7F0567E8 02402025 */ move $a0, $s2 +/* 08B31C 7F0567EC 02202825 */ move $a1, $s1 +/* 08B320 7F0567F0 02003025 */ move $a2, $s0 +/* 08B324 7F0567F4 02603825 */ move $a3, $s3 +/* 08B328 7F0567F8 AFA00010 */ sw $zero, 0x10($sp) +/* 08B32C 7F0567FC 0FC14885 */ jal something_with_generating_object +/* 08B330 7F056800 AFA00014 */ sw $zero, 0x14($sp) +/* 08B334 7F056804 10400006 */ beqz $v0, .L7F056820 +/* 08B338 7F056808 00408825 */ move $s1, $v0 +/* 08B33C 7F05680C 00402025 */ move $a0, $v0 +/* 08B340 7F056810 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 08B344 7F056814 24050001 */ li $a1, 1 +/* 08B348 7F056818 0FC1304C */ jal sub_GAME_7F04C130 +/* 08B34C 7F05681C 02202025 */ move $a0, $s1 +.L7F056820: +/* 08B350 7F056820 26100001 */ addiu $s0, $s0, 1 +/* 08B354 7F056824 1614FFE9 */ bne $s0, $s4, .L7F0567CC +/* 08B358 7F056828 00000000 */ nop +/* 08B35C 7F05682C 8FBF0034 */ lw $ra, 0x34($sp) +/* 08B360 7F056830 8FB00020 */ lw $s0, 0x20($sp) +/* 08B364 7F056834 8FB10024 */ lw $s1, 0x24($sp) +/* 08B368 7F056838 8FB20028 */ lw $s2, 0x28($sp) +/* 08B36C 7F05683C 8FB3002C */ lw $s3, 0x2c($sp) +/* 08B370 7F056840 8FB40030 */ lw $s4, 0x30($sp) +/* 08B374 7F056844 03E00008 */ jr $ra +/* 08B378 7F056848 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + diff --git a/src/game/cleanupSFXRelated.c b/src/game/cleanupSFXRelated.c new file mode 100644 index 0000000..e5ac9e7 --- /dev/null +++ b/src/game/cleanupSFXRelated.c @@ -0,0 +1,21 @@ +#include "ultra64.h" +#include "game/bond.h" + +void cleanupSFXRelated(void) { + if (SFX_80036458 != 0) + { + if (sfxGetArg0Unk3F(SFX_80036458) != 0) + { + sfxDeactivate(SFX_80036458); + } + } + + if (SFX_8003645C != 0) + { + if (sfxGetArg0Unk3F(SFX_8003645C) != 0) + { + sfxDeactivate(SFX_8003645C); + } + } + +} \ No newline at end of file diff --git a/src/game/cleanup_alarms.c b/src/game/cleanup_alarms.c new file mode 100644 index 0000000..e9891c8 --- /dev/null +++ b/src/game/cleanup_alarms.c @@ -0,0 +1,11 @@ +#include "ultra64.h" +#include "game/chrai.h" +#include "game/cleanup_alarms.h" + + +void cleanupAlarms(void) { + stop_alarm(); + check_deactivate_gas_sound(); +} + + diff --git a/src/game/cleanup_alarms.h b/src/game/cleanup_alarms.h new file mode 100644 index 0000000..3f4524a --- /dev/null +++ b/src/game/cleanup_alarms.h @@ -0,0 +1,6 @@ +#ifndef _CLEANUP_ALARMS_H_ +#define _CLEANUP_ALARMS_H_ +#include "ultra64.h" + +void cleanupAlarms(void); +#endif diff --git a/src/game/cleanup_objectives.c b/src/game/cleanup_objectives.c new file mode 100644 index 0000000..3cbde87 --- /dev/null +++ b/src/game/cleanup_objectives.c @@ -0,0 +1,113 @@ +#include "ultra64.h" + + + + +#ifdef NONMATCHING +void cleanupObjectives(s32 stage) { + +} +#else +GLOBAL_ASM( +.text +glabel cleanupObjectives +/* 03C0C0 7F007590 3C028007 */ lui $v0, %hi(objective_ptrs) +/* 03C0C4 7F007594 8C425D30 */ lw $v0, %lo(objective_ptrs)($v0) +/* 03C0C8 7F007598 3C048007 */ lui $a0, %hi(objective_ptrs+8) +/* 03C0CC 7F00759C 24845D38 */ addiu $a0, %lo(objective_ptrs+8) # addiu $a0, $a0, 0x5d38 +/* 03C0D0 7F0075A0 1040000C */ beqz $v0, .L7F0075D4 +/* 03C0D4 7F0075A4 24030008 */ li $v1, 8 +/* 03C0D8 7F0075A8 904E000E */ lbu $t6, 0xe($v0) +/* 03C0DC 7F0075AC 3C188007 */ lui $t8, %hi(dword_CODE_bss_80075D58) +/* 03C0E0 7F0075B0 31CF0001 */ andi $t7, $t6, 1 +/* 03C0E4 7F0075B4 11E00007 */ beqz $t7, .L7F0075D4 +/* 03C0E8 7F0075B8 00000000 */ nop +/* 03C0EC 7F0075BC 8F185D58 */ lw $t8, %lo(dword_CODE_bss_80075D58)($t8) +/* 03C0F0 7F0075C0 24050002 */ li $a1, 2 +/* 03C0F4 7F0075C4 24190001 */ li $t9, 1 +/* 03C0F8 7F0075C8 10B80002 */ beq $a1, $t8, .L7F0075D4 +/* 03C0FC 7F0075CC 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D58) +/* 03C100 7F0075D0 AC395D58 */ sw $t9, %lo(dword_CODE_bss_80075D58)($at) +.L7F0075D4: +/* 03C104 7F0075D4 3C028007 */ lui $v0, %hi(objective_ptrs+4) +/* 03C108 7F0075D8 8C425D34 */ lw $v0, %lo(objective_ptrs+4)($v0) +/* 03C10C 7F0075DC 3C088007 */ lui $t0, %hi(dword_CODE_bss_80075D58) +/* 03C110 7F0075E0 25085D58 */ addiu $t0, %lo(dword_CODE_bss_80075D58) # addiu $t0, $t0, 0x5d58 +/* 03C114 7F0075E4 1040000C */ beqz $v0, .L7F007618 +/* 03C118 7F0075E8 24050002 */ li $a1, 2 +/* 03C11C 7F0075EC 9049000E */ lbu $t1, 0xe($v0) +/* 03C120 7F0075F0 3C0B8007 */ lui $t3, %hi(dword_CODE_bss_80075D5C) +/* 03C124 7F0075F4 312A0001 */ andi $t2, $t1, 1 +/* 03C128 7F0075F8 11400007 */ beqz $t2, .L7F007618 +/* 03C12C 7F0075FC 00000000 */ nop +/* 03C130 7F007600 8D6B5D5C */ lw $t3, %lo(dword_CODE_bss_80075D5C)($t3) +/* 03C134 7F007604 240C0001 */ li $t4, 1 +/* 03C138 7F007608 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D5C) +/* 03C13C 7F00760C 10AB0002 */ beq $a1, $t3, .L7F007618 +/* 03C140 7F007610 00000000 */ nop +/* 03C144 7F007614 AC2C5D5C */ sw $t4, %lo(dword_CODE_bss_80075D5C)($at) +.L7F007618: +/* 03C148 7F007618 3C068007 */ lui $a2, %hi(dword_CODE_bss_80075D58) +/* 03C14C 7F00761C 24C65D58 */ addiu $a2, %lo(dword_CODE_bss_80075D58) # addiu $a2, $a2, 0x5d58 +/* 03C150 7F007620 24070001 */ li $a3, 1 +.L7F007624: +/* 03C154 7F007624 8C820000 */ lw $v0, ($a0) +/* 03C158 7F007628 5040000B */ beql $v0, $zero, .L7F007658 +/* 03C15C 7F00762C 8C820004 */ lw $v0, 4($a0) +/* 03C160 7F007630 904D000E */ lbu $t5, 0xe($v0) +/* 03C164 7F007634 00C31021 */ addu $v0, $a2, $v1 +/* 03C168 7F007638 31AE0001 */ andi $t6, $t5, 1 +/* 03C16C 7F00763C 51C00006 */ beql $t6, $zero, .L7F007658 +/* 03C170 7F007640 8C820004 */ lw $v0, 4($a0) +/* 03C174 7F007644 8C4F0000 */ lw $t7, ($v0) +/* 03C178 7F007648 50AF0003 */ beql $a1, $t7, .L7F007658 +/* 03C17C 7F00764C 8C820004 */ lw $v0, 4($a0) +/* 03C180 7F007650 AC470000 */ sw $a3, ($v0) +/* 03C184 7F007654 8C820004 */ lw $v0, 4($a0) +.L7F007658: +/* 03C188 7F007658 5040000B */ beql $v0, $zero, .L7F007688 +/* 03C18C 7F00765C 8C820008 */ lw $v0, 8($a0) +/* 03C190 7F007660 9058000E */ lbu $t8, 0xe($v0) +/* 03C194 7F007664 00C31021 */ addu $v0, $a2, $v1 +/* 03C198 7F007668 33190001 */ andi $t9, $t8, 1 +/* 03C19C 7F00766C 53200006 */ beql $t9, $zero, .L7F007688 +/* 03C1A0 7F007670 8C820008 */ lw $v0, 8($a0) +/* 03C1A4 7F007674 8C490004 */ lw $t1, 4($v0) +/* 03C1A8 7F007678 50A90003 */ beql $a1, $t1, .L7F007688 +/* 03C1AC 7F00767C 8C820008 */ lw $v0, 8($a0) +/* 03C1B0 7F007680 AC470004 */ sw $a3, 4($v0) +/* 03C1B4 7F007684 8C820008 */ lw $v0, 8($a0) +.L7F007688: +/* 03C1B8 7F007688 5040000B */ beql $v0, $zero, .L7F0076B8 +/* 03C1BC 7F00768C 8C82000C */ lw $v0, 0xc($a0) +/* 03C1C0 7F007690 904A000E */ lbu $t2, 0xe($v0) +/* 03C1C4 7F007694 00C31021 */ addu $v0, $a2, $v1 +/* 03C1C8 7F007698 314B0001 */ andi $t3, $t2, 1 +/* 03C1CC 7F00769C 51600006 */ beql $t3, $zero, .L7F0076B8 +/* 03C1D0 7F0076A0 8C82000C */ lw $v0, 0xc($a0) +/* 03C1D4 7F0076A4 8C4C0008 */ lw $t4, 8($v0) +/* 03C1D8 7F0076A8 50AC0003 */ beql $a1, $t4, .L7F0076B8 +/* 03C1DC 7F0076AC 8C82000C */ lw $v0, 0xc($a0) +/* 03C1E0 7F0076B0 AC470008 */ sw $a3, 8($v0) +/* 03C1E4 7F0076B4 8C82000C */ lw $v0, 0xc($a0) +.L7F0076B8: +/* 03C1E8 7F0076B8 24840010 */ addiu $a0, $a0, 0x10 +/* 03C1EC 7F0076BC 1040000A */ beqz $v0, .L7F0076E8 +/* 03C1F0 7F0076C0 00000000 */ nop +/* 03C1F4 7F0076C4 904D000E */ lbu $t5, 0xe($v0) +/* 03C1F8 7F0076C8 00C31021 */ addu $v0, $a2, $v1 +/* 03C1FC 7F0076CC 31AE0001 */ andi $t6, $t5, 1 +/* 03C200 7F0076D0 11C00005 */ beqz $t6, .L7F0076E8 +/* 03C204 7F0076D4 00000000 */ nop +/* 03C208 7F0076D8 8C4F000C */ lw $t7, 0xc($v0) +/* 03C20C 7F0076DC 10AF0002 */ beq $a1, $t7, .L7F0076E8 +/* 03C210 7F0076E0 00000000 */ nop +/* 03C214 7F0076E4 AC47000C */ sw $a3, 0xc($v0) +.L7F0076E8: +/* 03C218 7F0076E8 1488FFCE */ bne $a0, $t0, .L7F007624 +/* 03C21C 7F0076EC 24630010 */ addiu $v1, $v1, 0x10 +/* 03C220 7F0076F0 03E00008 */ jr $ra +/* 03C224 7F0076F4 00000000 */ nop +) +#endif + diff --git a/src/game/cleanup_objects.c b/src/game/cleanup_objects.c new file mode 100644 index 0000000..38b7793 --- /dev/null +++ b/src/game/cleanup_objects.c @@ -0,0 +1,107 @@ +#include "ultra64.h" + + +#ifdef NONMATCHING +void cleanupObjects(s32 stage) { + +} +#else +GLOBAL_ASM( +.rdata +glabel jpt_8004F210 + .word .L7F007550 + .word .L7F00755C + .word .L7F007550 + .word .L7F007550 + .word .L7F007550 + .word .L7F007550 + .word .L7F007550 + .word .L7F007550 + .word .L7F00755C + .word .L7F007550 + .word .L7F007550 + .word .L7F007550 + .word .L7F007550 + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F007550 + .word .L7F00755C + .word .L7F00755C + .word .L7F007550 + .word .L7F007550 + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F00755C + .word .L7F007550 + .word .L7F00755C + .word .L7F00755C + .word .L7F007550 + .word .L7F007550 + .word .L7F007550 + .word .L7F007550 + .word .L7F007550 + .word .L7F00755C + .word .L7F007550 + .word .L7F00755C + .word .L7F007550 +.text +glabel cleanupObjects +/* 03C030 7F007500 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 03C034 7F007504 AFB00018 */ sw $s0, 0x18($sp) +/* 03C038 7F007508 3C108007 */ lui $s0, %hi(ptr_setup_objects) +/* 03C03C 7F00750C 8E105D0C */ lw $s0, %lo(ptr_setup_objects)($s0) +/* 03C040 7F007510 AFBF001C */ sw $ra, 0x1c($sp) +/* 03C044 7F007514 AFA40020 */ sw $a0, 0x20($sp) +/* 03C048 7F007518 52000019 */ beql $s0, $zero, .L7F007580 +/* 03C04C 7F00751C 8FBF001C */ lw $ra, 0x1c($sp) +/* 03C050 7F007520 92030003 */ lbu $v1, 3($s0) +/* 03C054 7F007524 24010030 */ li $at, 48 +/* 03C058 7F007528 10610014 */ beq $v1, $at, .L7F00757C +/* 03C05C 7F00752C 246EFFFF */ addiu $t6, $v1, -1 +.L7F007530: +/* 03C060 7F007530 2DC1002F */ sltiu $at, $t6, 0x2f +/* 03C064 7F007534 10200009 */ beqz $at, .L7F00755C +/* 03C068 7F007538 000E7080 */ sll $t6, $t6, 2 +/* 03C06C 7F00753C 3C018005 */ lui $at, %hi(jpt_8004F210) +/* 03C070 7F007540 002E0821 */ addu $at, $at, $t6 +/* 03C074 7F007544 8C2EF210 */ lw $t6, %lo(jpt_8004F210)($at) +/* 03C078 7F007548 01C00008 */ jr $t6 +/* 03C07C 7F00754C 00000000 */ nop +.L7F007550: +/* 03C080 7F007550 02002025 */ move $a0, $s0 +/* 03C084 7F007554 0FC10409 */ jal sub_GAME_7F041024 +/* 03C088 7F007558 24050001 */ li $a1, 1 +.L7F00755C: +/* 03C08C 7F00755C 0FC15A3D */ jal get_size_of_setup_object_type +/* 03C090 7F007560 02002025 */ move $a0, $s0 +/* 03C094 7F007564 00027880 */ sll $t7, $v0, 2 +/* 03C098 7F007568 01F08021 */ addu $s0, $t7, $s0 +/* 03C09C 7F00756C 92030003 */ lbu $v1, 3($s0) +/* 03C0A0 7F007570 24010030 */ li $at, 48 +/* 03C0A4 7F007574 5461FFEE */ bnel $v1, $at, .L7F007530 +/* 03C0A8 7F007578 246EFFFF */ addiu $t6, $v1, -1 +.L7F00757C: +/* 03C0AC 7F00757C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F007580: +/* 03C0B0 7F007580 8FB00018 */ lw $s0, 0x18($sp) +/* 03C0B4 7F007584 27BD0020 */ addiu $sp, $sp, 0x20 +/* 03C0B8 7F007588 03E00008 */ jr $ra +/* 03C0BC 7F00758C 00000000 */ nop +) +#endif + + + + diff --git a/src/game/compiletime.c b/src/game/compiletime.c new file mode 100644 index 0000000..b412769 --- /dev/null +++ b/src/game/compiletime.c @@ -0,0 +1,15 @@ +#include "ultra64.h" +#include "game/compiletime.h" + +#ifdef VERSION_US +char *get_compile_time(void) { + return "Jun 29 1997 20:46:05"; +} +#endif + +#ifdef VERSION_JP +char *get_compile_time(void) { + return "Jul 10 1997 14:53:37"; +} +#endif + diff --git a/src/game/compiletime.h b/src/game/compiletime.h new file mode 100644 index 0000000..ec9e09a --- /dev/null +++ b/src/game/compiletime.h @@ -0,0 +1,10 @@ +#ifndef _COMPILETIME_H_ +#define _COMPILETIME_H_ + +#include "ultra64.h" + +char *get_compile_time(void); + +#endif + + diff --git a/src/game/convertangleusinginverse.c b/src/game/convertangleusinginverse.c new file mode 100644 index 0000000..fde2a5e --- /dev/null +++ b/src/game/convertangleusinginverse.c @@ -0,0 +1,43 @@ +#include "ultra64.h" + +#define M_PI 3.1415927f +#define M_HALF_PI M_PI / 2 +#define M_THREE_HALF_PI 3 * M_HALF_PI +#define M_TAU 2 * M_PI + +f32 acosf(f32); + +f32 atan2f(f32 y, f32 x) { + f32 angle; + if (y == 0.0f) { + if (0.0f <= x) { + angle = 0.0f; + } else { + angle = M_PI; + } + } else if (x == 0.0f) { + if (0.0f < y) { + angle = M_HALF_PI; + } else { + angle = M_THREE_HALF_PI; + } + } else { + angle = sqrtf((y * y) + (x * x)); + if (x < y) { + angle = acosf(x / angle); + if (y < 0.0f) { + angle = M_TAU - angle; + } + } else { + angle = M_HALF_PI - acosf(y / angle); + if (x < 0.0f) { + angle = M_PI - angle; + } + if (angle < 0.0f) { + angle += M_TAU; + } + } + } + return angle; +} + diff --git a/src/game/deb_loadallmodels.c b/src/game/deb_loadallmodels.c new file mode 100644 index 0000000..6b157ab --- /dev/null +++ b/src/game/deb_loadallmodels.c @@ -0,0 +1,393 @@ +#include "ultra64.h" + +//i belong in a header, probably to another file +#define PROJECTILES_MAX 0x2E +#define PROJECTILES_TYPE_KNIFE 0xBA +#define PROJECTILES_TYPE_GRENADE 0xC4 +#define PROJECTILES_TYPE_REMOTE_MINE 0xC7 +#define PROJECTILES_TYPE_PROX_MINE 0xC8 +#define PROJECTILES_TYPE_TIMED_MINE 0xC9 +#define PROJECTILES_TYPE_ROCKET_ROUND 0xCA +#define PROJECTILES_TYPE_ROCKET_ROUND2 0xCA +#define PROJECTILES_TYPE_GLAUNCH_ROUND 0xCB +#define PROJECTILES_TYPE_BOMBCASE 0xE2 +#define PROJECTILES_TYPE_BUG 0xF5 +#define PROJECTILES_TYPE_MICROCAMERA 0xF6 +#define PROJECTILES_TYPE_GE_KEY 0xF8 +#define PROJECTILES_TYPE_PLASTIQUE 0x111 + + + + + +u32 global_action_block_temp_buffer[119] = {0}; + +s32 weapon_models_for_weapon_load[] = { +PROJECTILES_TYPE_KNIFE, PROJECTILES_TYPE_GRENADE, PROJECTILES_TYPE_REMOTE_MINE, +PROJECTILES_TYPE_PROX_MINE, PROJECTILES_TYPE_TIMED_MINE, PROJECTILES_TYPE_ROCKET_ROUND, +PROJECTILES_TYPE_GLAUNCH_ROUND, 0xFFFFFFFF}; + + + +#ifdef NONMATCHING +void init_obj_register_difficulty_vals(void) { + objectiveregisters1 = 0; + ai_accuracy_modifier = 1.0f; + ai_damage_modifier = 1.0f; + ai_health_modifier = 1.0f; + ai_reaction_speed = 1.0f; + setting_007_5 = 0.0f; +} +#else +GLOBAL_ASM( +.text +glabel init_obj_register_difficulty_vals +/* 035B50 7F001020 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 035B54 7F001024 44810000 */ mtc1 $at, $f0 +/* 035B58 7F001028 3C018003 */ lui $at, %hi(objectiveregisters1) +/* 035B5C 7F00102C AC200978 */ sw $zero, %lo(objectiveregisters1)($at) +/* 035B60 7F001030 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 035B64 7F001034 E420CE40 */ swc1 $f0, %lo(ai_accuracy_modifier)($at) +/* 035B68 7F001038 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 035B6C 7F00103C E420CE44 */ swc1 $f0, %lo(ai_damage_modifier)($at) +/* 035B70 7F001040 3C018003 */ lui $at, %hi(ai_health_modifier) +/* 035B74 7F001044 E420CE48 */ swc1 $f0, %lo(ai_health_modifier)($at) +/* 035B78 7F001048 3C018003 */ lui $at, %hi(ai_reaction_speed) +/* 035B7C 7F00104C E420CE4C */ swc1 $f0, %lo(ai_reaction_speed)($at) +/* 035B80 7F001050 3C018003 */ lui $at, %hi(setting_007_5) +/* 035B84 7F001054 03E00008 */ jr $ra +/* 035B88 7F001058 AC20CE50 */ sw $zero, %lo(setting_007_5)($at) +) +#endif + + +#ifdef NONMATCHING +void alloc_false_GUARDdata_to_exec_global_action(void) { + +} +#else +GLOBAL_ASM( +.text +glabel alloc_false_GUARDdata_to_exec_global_action +/* 035B8C 7F00105C 3C0D8007 */ lui $t5, %hi(ptr_setup_path_tbl) +/* 035B90 7F001060 25AD5D00 */ addiu $t5, %lo(ptr_setup_path_tbl) # addiu $t5, $t5, 0x5d00 +/* 035B94 7F001064 8DA50014 */ lw $a1, 0x14($t5) +/* 035B98 7F001068 3C028003 */ lui $v0, %hi(objectiveregisters3) +/* 035B9C 7F00106C 3C068003 */ lui $a2, %hi(objectiveregisters2) +/* 035BA0 7F001070 24C6097C */ addiu $a2, %lo(objectiveregisters2) # addiu $a2, $a2, 0x97c +/* 035BA4 7F001074 24420980 */ addiu $v0, %lo(objectiveregisters3) # addiu $v0, $v0, 0x980 +/* 035BA8 7F001078 27BDFDF8 */ addiu $sp, $sp, -0x208 +/* 035BAC 7F00107C AFBF0014 */ sw $ra, 0x14($sp) +/* 035BB0 7F001080 ACC00000 */ sw $zero, ($a2) +/* 035BB4 7F001084 10A00070 */ beqz $a1, .L7F001248 +/* 035BB8 7F001088 AC400000 */ sw $zero, ($v0) +/* 035BBC 7F00108C 8CAE0000 */ lw $t6, ($a1) +/* 035BC0 7F001090 00A01825 */ move $v1, $a1 +/* 035BC4 7F001094 00003825 */ move $a3, $zero +/* 035BC8 7F001098 11C0000C */ beqz $t6, .L7F0010CC +/* 035BCC 7F00109C 24050004 */ li $a1, 4 +/* 035BD0 7F0010A0 8C6F0004 */ lw $t7, 4($v1) +.L7F0010A4: +/* 035BD4 7F0010A4 29E11000 */ slti $at, $t7, 0x1000 +/* 035BD8 7F0010A8 54200005 */ bnezl $at, .L7F0010C0 +/* 035BDC 7F0010AC 8C6E0008 */ lw $t6, 8($v1) +/* 035BE0 7F0010B0 8C580000 */ lw $t8, ($v0) +/* 035BE4 7F0010B4 27190001 */ addiu $t9, $t8, 1 +/* 035BE8 7F0010B8 AC590000 */ sw $t9, ($v0) +/* 035BEC 7F0010BC 8C6E0008 */ lw $t6, 8($v1) +.L7F0010C0: +/* 035BF0 7F0010C0 24630008 */ addiu $v1, $v1, 8 +/* 035BF4 7F0010C4 55C0FFF7 */ bnezl $t6, .L7F0010A4 +/* 035BF8 7F0010C8 8C6F0004 */ lw $t7, 4($v1) +.L7F0010CC: +/* 035BFC 7F0010CC 8C430000 */ lw $v1, ($v0) +/* 035C00 7F0010D0 00004025 */ move $t0, $zero +/* 035C04 7F0010D4 1860005C */ blez $v1, .L7F001248 +/* 035C08 7F0010D8 00032100 */ sll $a0, $v1, 4 +/* 035C0C 7F0010DC 00832023 */ subu $a0, $a0, $v1 +/* 035C10 7F0010E0 000420C0 */ sll $a0, $a0, 3 +/* 035C14 7F0010E4 00832023 */ subu $a0, $a0, $v1 +/* 035C18 7F0010E8 00042080 */ sll $a0, $a0, 2 +/* 035C1C 7F0010EC 2484000F */ addiu $a0, $a0, 0xf +/* 035C20 7F0010F0 348F000F */ ori $t7, $a0, 0xf +/* 035C24 7F0010F4 39E4000F */ xori $a0, $t7, 0xf +/* 035C28 7F0010F8 0C0025C8 */ jal mempAllocBytesInBank +/* 035C2C 7F0010FC AFA70200 */ sw $a3, 0x200($sp) +/* 035C30 7F001100 3C0D8007 */ lui $t5, %hi(ptr_setup_path_tbl) +/* 035C34 7F001104 25AD5D00 */ addiu $t5, %lo(ptr_setup_path_tbl) # addiu $t5, $t5, 0x5d00 +/* 035C38 7F001108 8DA50014 */ lw $a1, 0x14($t5) +/* 035C3C 7F00110C 3C068003 */ lui $a2, %hi(objectiveregisters2) +/* 035C40 7F001110 24C6097C */ addiu $a2, %lo(objectiveregisters2) # addiu $a2, $a2, 0x97c +/* 035C44 7F001114 ACC20000 */ sw $v0, ($a2) +/* 035C48 7F001118 8CB90000 */ lw $t9, ($a1) +/* 035C4C 7F00111C 8FA70200 */ lw $a3, 0x200($sp) +/* 035C50 7F001120 00002025 */ move $a0, $zero +/* 035C54 7F001124 13200048 */ beqz $t9, .L7F001248 +/* 035C58 7F001128 00A01825 */ move $v1, $a1 +/* 035C5C 7F00112C 3C088003 */ lui $t0, %hi(global_action_block_temp_buffer) +/* 035C60 7F001130 2508A060 */ addiu $t0, %lo(global_action_block_temp_buffer) # addiu $t0, $t0, -0x5fa0 +/* 035C64 7F001134 240C001A */ li $t4, 26 +/* 035C68 7F001138 240BFFFF */ li $t3, -1 +/* 035C6C 7F00113C 240A00FE */ li $t2, 254 +/* 035C70 7F001140 240901DC */ li $t1, 476 +/* 035C74 7F001144 27A50024 */ addiu $a1, $sp, 0x24 +/* 035C78 7F001148 8C6E0004 */ lw $t6, 4($v1) +.L7F00114C: +/* 035C7C 7F00114C 0100C825 */ move $t9, $t0 +/* 035C80 7F001150 251801D4 */ addiu $t8, $t0, 0x1d4 +/* 035C84 7F001154 29C11000 */ slti $at, $t6, 0x1000 +/* 035C88 7F001158 14200036 */ bnez $at, .L7F001234 +/* 035C8C 7F00115C 00A07025 */ move $t6, $a1 +.L7F001160: +/* 035C90 7F001160 8F210000 */ lw $at, ($t9) +/* 035C94 7F001164 2739000C */ addiu $t9, $t9, 0xc +/* 035C98 7F001168 25CE000C */ addiu $t6, $t6, 0xc +/* 035C9C 7F00116C ADC1FFF4 */ sw $at, -0xc($t6) +/* 035CA0 7F001170 8F21FFF8 */ lw $at, -8($t9) +/* 035CA4 7F001174 ADC1FFF8 */ sw $at, -8($t6) +/* 035CA8 7F001178 8F21FFFC */ lw $at, -4($t9) +/* 035CAC 7F00117C 1738FFF8 */ bne $t9, $t8, .L7F001160 +/* 035CB0 7F001180 ADC1FFFC */ sw $at, -4($t6) +/* 035CB4 7F001184 00E90019 */ multu $a3, $t1 +/* 035CB8 7F001188 8F210000 */ lw $at, ($t9) +/* 035CBC 7F00118C ADC10000 */ sw $at, ($t6) +/* 035CC0 7F001190 8F380004 */ lw $t8, 4($t9) +/* 035CC4 7F001194 ADD80004 */ sw $t8, 4($t6) +/* 035CC8 7F001198 8CCF0000 */ lw $t7, ($a2) +/* 035CCC 7F00119C 00001012 */ mflo $v0 +/* 035CD0 7F0011A0 24AE01D4 */ addiu $t6, $a1, 0x1d4 +/* 035CD4 7F0011A4 01E2C021 */ addu $t8, $t7, $v0 +/* 035CD8 7F0011A8 00A07825 */ move $t7, $a1 +.L7F0011AC: +/* 035CDC 7F0011AC 8DE10000 */ lw $at, ($t7) +/* 035CE0 7F0011B0 25EF000C */ addiu $t7, $t7, 0xc +/* 035CE4 7F0011B4 2718000C */ addiu $t8, $t8, 0xc +/* 035CE8 7F0011B8 AF01FFF4 */ sw $at, -0xc($t8) +/* 035CEC 7F0011BC 8DE1FFF8 */ lw $at, -8($t7) +/* 035CF0 7F0011C0 AF01FFF8 */ sw $at, -8($t8) +/* 035CF4 7F0011C4 8DE1FFFC */ lw $at, -4($t7) +/* 035CF8 7F0011C8 15EEFFF8 */ bne $t7, $t6, .L7F0011AC +/* 035CFC 7F0011CC AF01FFFC */ sw $at, -4($t8) +/* 035D00 7F0011D0 8DE10000 */ lw $at, ($t7) +/* 035D04 7F0011D4 24E70001 */ addiu $a3, $a3, 1 +/* 035D08 7F0011D8 AF010000 */ sw $at, ($t8) +/* 035D0C 7F0011DC 8DEE0004 */ lw $t6, 4($t7) +/* 035D10 7F0011E0 AF0E0004 */ sw $t6, 4($t8) +/* 035D14 7F0011E4 8CD90000 */ lw $t9, ($a2) +/* 035D18 7F0011E8 03227021 */ addu $t6, $t9, $v0 +/* 035D1C 7F0011EC A5CA0000 */ sh $t2, ($t6) +/* 035D20 7F0011F0 8DAF0014 */ lw $t7, 0x14($t5) +/* 035D24 7F0011F4 8CCE0000 */ lw $t6, ($a2) +/* 035D28 7F0011F8 01E4C021 */ addu $t8, $t7, $a0 +/* 035D2C 7F0011FC 8F190000 */ lw $t9, ($t8) +/* 035D30 7F001200 01C27821 */ addu $t7, $t6, $v0 +/* 035D34 7F001204 ADF90104 */ sw $t9, 0x104($t7) +/* 035D38 7F001208 8CD80000 */ lw $t8, ($a2) +/* 035D3C 7F00120C 03027021 */ addu $t6, $t8, $v0 +/* 035D40 7F001210 A5C00108 */ sh $zero, 0x108($t6) +/* 035D44 7F001214 8CD90000 */ lw $t9, ($a2) +/* 035D48 7F001218 03227821 */ addu $t7, $t9, $v0 +/* 035D4C 7F00121C A5EB010A */ sh $t3, 0x10a($t7) +/* 035D50 7F001220 8CD80000 */ lw $t8, ($a2) +/* 035D54 7F001224 03027021 */ addu $t6, $t8, $v0 +/* 035D58 7F001228 A1CC0007 */ sb $t4, 7($t6) +/* 035D5C 7F00122C 8DB90014 */ lw $t9, 0x14($t5) +/* 035D60 7F001230 03241821 */ addu $v1, $t9, $a0 +.L7F001234: +/* 035D64 7F001234 8C6F0008 */ lw $t7, 8($v1) +/* 035D68 7F001238 24840008 */ addiu $a0, $a0, 8 +/* 035D6C 7F00123C 24630008 */ addiu $v1, $v1, 8 +/* 035D70 7F001240 55E0FFC2 */ bnezl $t7, .L7F00114C +/* 035D74 7F001244 8C6E0004 */ lw $t6, 4($v1) +.L7F001248: +/* 035D78 7F001248 8FBF0014 */ lw $ra, 0x14($sp) +/* 035D7C 7F00124C 27BD0208 */ addiu $sp, $sp, 0x208 +/* 035D80 7F001250 03E00008 */ jr $ra +/* 035D84 7F001254 00000000 */ nop +) +#endif + +#ifdef NONMATCHING +void debug_object_load_all_models(void) { + +} +#else +GLOBAL_ASM( +.text +glabel debug_object_load_all_models +/* 035D88 7F001258 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 035D8C 7F00125C 3C0E8007 */ lui $t6, %hi(ptr_setup_actions) +/* 035D90 7F001260 8DCE5D14 */ lw $t6, %lo(ptr_setup_actions)($t6) +/* 035D94 7F001264 AFBF0034 */ sw $ra, 0x34($sp) +/* 035D98 7F001268 AFB70030 */ sw $s7, 0x30($sp) +/* 035D9C 7F00126C AFB6002C */ sw $s6, 0x2c($sp) +/* 035DA0 7F001270 AFB50028 */ sw $s5, 0x28($sp) +/* 035DA4 7F001274 AFB40024 */ sw $s4, 0x24($sp) +/* 035DA8 7F001278 AFB30020 */ sw $s3, 0x20($sp) +/* 035DAC 7F00127C AFB2001C */ sw $s2, 0x1c($sp) +/* 035DB0 7F001280 AFB10018 */ sw $s1, 0x18($sp) +/* 035DB4 7F001284 AFB00014 */ sw $s0, 0x14($sp) +/* 035DB8 7F001288 8DD00000 */ lw $s0, ($t6) +/* 035DBC 7F00128C 241500BF */ li $s5, 191 +/* 035DC0 7F001290 241600C0 */ li $s6, 192 +/* 035DC4 7F001294 12000052 */ beqz $s0, .L7F0013E0 +/* 035DC8 7F001298 0000B825 */ move $s7, $zero +/* 035DCC 7F00129C 241400BE */ li $s4, 190 +/* 035DD0 7F0012A0 241300BD */ li $s3, 189 +/* 035DD4 7F0012A4 2412001B */ li $s2, 27 +/* 035DD8 7F0012A8 24110004 */ li $s1, 4 +.L7F0012AC: +/* 035DDC 7F0012AC 92030000 */ lbu $v1, ($s0) +.L7F0012B0: +/* 035DE0 7F0012B0 3C0F8007 */ lui $t7, %hi(ptr_setup_actions) +/* 035DE4 7F0012B4 16230004 */ bne $s1, $v1, .L7F0012C8 +/* 035DE8 7F0012B8 00000000 */ nop +/* 035DEC 7F0012BC 8DEF5D14 */ lw $t7, %lo(ptr_setup_actions)($t7) +/* 035DF0 7F0012C0 10000042 */ b .L7F0013CC +/* 035DF4 7F0012C4 01F71021 */ addu $v0, $t7, $s7 +.L7F0012C8: +/* 035DF8 7F0012C8 5072000C */ beql $v1, $s2, .L7F0012FC +/* 035DFC 7F0012CC 92180001 */ lbu $t8, 1($s0) +/* 035E00 7F0012D0 10730013 */ beq $v1, $s3, .L7F001320 +/* 035E04 7F0012D4 00000000 */ nop +/* 035E08 7F0012D8 1074001C */ beq $v1, $s4, .L7F00134C +/* 035E0C 7F0012DC 00000000 */ nop +/* 035E10 7F0012E0 50750026 */ beql $v1, $s5, .L7F00137C +/* 035E14 7F0012E4 920A0001 */ lbu $t2, 1($s0) +/* 035E18 7F0012E8 5076002F */ beql $v1, $s6, .L7F0013A8 +/* 035E1C 7F0012EC 920D0001 */ lbu $t5, 1($s0) +/* 035E20 7F0012F0 10000032 */ b .L7F0013BC +/* 035E24 7F0012F4 02002025 */ move $a0, $s0 +/* 035E28 7F0012F8 92180001 */ lbu $t8, 1($s0) +.L7F0012FC: +/* 035E2C 7F0012FC 92080002 */ lbu $t0, 2($s0) +/* 035E30 7F001300 0018CA00 */ sll $t9, $t8, 8 +/* 035E34 7F001304 03281025 */ or $v0, $t9, $t0 +/* 035E38 7F001308 0FC15B0E */ jal load_model +/* 035E3C 7F00130C 3044FFFF */ andi $a0, $v0, 0xffff +/* 035E40 7F001310 5040002A */ beql $v0, $zero, .L7F0013BC +/* 035E44 7F001314 02002025 */ move $a0, $s0 +/* 035E48 7F001318 10000028 */ b .L7F0013BC +/* 035E4C 7F00131C 02002025 */ move $a0, $s0 +.L7F001320: +/* 035E50 7F001320 0FC08CA4 */ jal load_body_head_if_not_loaded +/* 035E54 7F001324 92040001 */ lbu $a0, 1($s0) +/* 035E58 7F001328 82040002 */ lb $a0, 2($s0) +/* 035E5C 7F00132C 04820023 */ bltzl $a0, .L7F0013BC +/* 035E60 7F001330 02002025 */ move $a0, $s0 +/* 035E64 7F001334 0FC08CA4 */ jal load_body_head_if_not_loaded +/* 035E68 7F001338 00000000 */ nop +/* 035E6C 7F00133C 5040001F */ beql $v0, $zero, .L7F0013BC +/* 035E70 7F001340 02002025 */ move $a0, $s0 +/* 035E74 7F001344 1000001D */ b .L7F0013BC +/* 035E78 7F001348 02002025 */ move $a0, $s0 +.L7F00134C: +/* 035E7C 7F00134C 0FC08CA4 */ jal load_body_head_if_not_loaded +/* 035E80 7F001350 92040001 */ lbu $a0, 1($s0) +/* 035E84 7F001354 82040002 */ lb $a0, 2($s0) +/* 035E88 7F001358 04820018 */ bltzl $a0, .L7F0013BC +/* 035E8C 7F00135C 02002025 */ move $a0, $s0 +/* 035E90 7F001360 0FC08CA4 */ jal load_body_head_if_not_loaded +/* 035E94 7F001364 00000000 */ nop +/* 035E98 7F001368 50400014 */ beql $v0, $zero, .L7F0013BC +/* 035E9C 7F00136C 02002025 */ move $a0, $s0 +/* 035EA0 7F001370 10000012 */ b .L7F0013BC +/* 035EA4 7F001374 02002025 */ move $a0, $s0 +/* 035EA8 7F001378 920A0001 */ lbu $t2, 1($s0) +.L7F00137C: +/* 035EAC 7F00137C 920C0002 */ lbu $t4, 2($s0) +/* 035EB0 7F001380 000A5A00 */ sll $t3, $t2, 8 +/* 035EB4 7F001384 0FC15B0E */ jal load_model +/* 035EB8 7F001388 016C2025 */ or $a0, $t3, $t4 +/* 035EBC 7F00138C 0FC015C4 */ jal set_weapon_model_generated_thrown_object +/* 035EC0 7F001390 92040003 */ lbu $a0, 3($s0) +/* 035EC4 7F001394 50400009 */ beql $v0, $zero, .L7F0013BC +/* 035EC8 7F001398 02002025 */ move $a0, $s0 +/* 035ECC 7F00139C 10000007 */ b .L7F0013BC +/* 035ED0 7F0013A0 02002025 */ move $a0, $s0 +/* 035ED4 7F0013A4 920D0001 */ lbu $t5, 1($s0) +.L7F0013A8: +/* 035ED8 7F0013A8 920F0002 */ lbu $t7, 2($s0) +/* 035EDC 7F0013AC 000D7200 */ sll $t6, $t5, 8 +/* 035EE0 7F0013B0 0FC15B0E */ jal load_model +/* 035EE4 7F0013B4 01CF2025 */ or $a0, $t6, $t7 +/* 035EE8 7F0013B8 02002025 */ move $a0, $s0 +.L7F0013BC: +/* 035EEC 7F0013BC 0FC0D27F */ jal get_length_of_action_block +/* 035EF0 7F0013C0 00002825 */ move $a1, $zero +/* 035EF4 7F0013C4 1000FFB9 */ b .L7F0012AC +/* 035EF8 7F0013C8 02028021 */ addu $s0, $s0, $v0 +.L7F0013CC: +/* 035EFC 7F0013CC 8C500008 */ lw $s0, 8($v0) +/* 035F00 7F0013D0 26F70008 */ addiu $s7, $s7, 8 +/* 035F04 7F0013D4 24420008 */ addiu $v0, $v0, 8 +/* 035F08 7F0013D8 5600FFB5 */ bnezl $s0, .L7F0012B0 +/* 035F0C 7F0013DC 92030000 */ lbu $v1, ($s0) +.L7F0013E0: +/* 035F10 7F0013E0 8FBF0034 */ lw $ra, 0x34($sp) +/* 035F14 7F0013E4 8FB00014 */ lw $s0, 0x14($sp) +/* 035F18 7F0013E8 8FB10018 */ lw $s1, 0x18($sp) +/* 035F1C 7F0013EC 8FB2001C */ lw $s2, 0x1c($sp) +/* 035F20 7F0013F0 8FB30020 */ lw $s3, 0x20($sp) +/* 035F24 7F0013F4 8FB40024 */ lw $s4, 0x24($sp) +/* 035F28 7F0013F8 8FB50028 */ lw $s5, 0x28($sp) +/* 035F2C 7F0013FC 8FB6002C */ lw $s6, 0x2c($sp) +/* 035F30 7F001400 8FB70030 */ lw $s7, 0x30($sp) +/* 035F34 7F001404 03E00008 */ jr $ra +/* 035F38 7F001408 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + +#ifdef NONMATCHING +void debug_weapon_load_table(void) { + +} +#else +GLOBAL_ASM( +.text +glabel debug_weapon_load_table +/* 035F3C 7F00140C 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 035F40 7F001410 3C0F8003 */ lui $t7, %hi(weapon_models_for_weapon_load) +/* 035F44 7F001414 AFBF001C */ sw $ra, 0x1c($sp) +/* 035F48 7F001418 AFB00018 */ sw $s0, 0x18($sp) +/* 035F4C 7F00141C 25EFA23C */ addiu $t7, %lo(weapon_models_for_weapon_load) # addiu $t7, $t7, -0x5dc4 +/* 035F50 7F001420 8DE10000 */ lw $at, ($t7) +/* 035F54 7F001424 8DE80004 */ lw $t0, 4($t7) +/* 035F58 7F001428 27AE0030 */ addiu $t6, $sp, 0x30 +/* 035F5C 7F00142C ADC10000 */ sw $at, ($t6) +/* 035F60 7F001430 ADC80004 */ sw $t0, 4($t6) +/* 035F64 7F001434 8DE8000C */ lw $t0, 0xc($t7) +/* 035F68 7F001438 8DE10008 */ lw $at, 8($t7) +/* 035F6C 7F00143C 27B00030 */ addiu $s0, $sp, 0x30 +/* 035F70 7F001440 ADC8000C */ sw $t0, 0xc($t6) +/* 035F74 7F001444 ADC10008 */ sw $at, 8($t6) +/* 035F78 7F001448 8DE10010 */ lw $at, 0x10($t7) +/* 035F7C 7F00144C 8DE80014 */ lw $t0, 0x14($t7) +/* 035F80 7F001450 ADC10010 */ sw $at, 0x10($t6) +/* 035F84 7F001454 ADC80014 */ sw $t0, 0x14($t6) +/* 035F88 7F001458 8DE8001C */ lw $t0, 0x1c($t7) +/* 035F8C 7F00145C 8DE10018 */ lw $at, 0x18($t7) +/* 035F90 7F001460 ADC8001C */ sw $t0, 0x1c($t6) +/* 035F94 7F001464 ADC10018 */ sw $at, 0x18($t6) +/* 035F98 7F001468 8FA90030 */ lw $t1, 0x30($sp) +/* 035F9C 7F00146C 05220009 */ bltzl $t1, .L7F001494 +/* 035FA0 7F001470 8FBF001C */ lw $ra, 0x1c($sp) +/* 035FA4 7F001474 8E040000 */ lw $a0, ($s0) +.L7F001478: +/* 035FA8 7F001478 0FC15B0E */ jal load_model +/* 035FAC 7F00147C 00000000 */ nop +/* 035FB0 7F001480 8E040004 */ lw $a0, 4($s0) +/* 035FB4 7F001484 26100004 */ addiu $s0, $s0, 4 +/* 035FB8 7F001488 0481FFFB */ bgez $a0, .L7F001478 +/* 035FBC 7F00148C 00000000 */ nop +/* 035FC0 7F001490 8FBF001C */ lw $ra, 0x1c($sp) +.L7F001494: +/* 035FC4 7F001494 8FB00018 */ lw $s0, 0x18($sp) +/* 035FC8 7F001498 27BD0050 */ addiu $sp, $sp, 0x50 +/* 035FCC 7F00149C 03E00008 */ jr $ra +/* 035FD0 7F0014A0 00000000 */ nop +) +#endif + + diff --git a/src/game/debugmenu_08FE00.c b/src/game/debugmenu_08FE00.c new file mode 100644 index 0000000..8af6f5f --- /dev/null +++ b/src/game/debugmenu_08FE00.c @@ -0,0 +1,613 @@ +#include "ultra64.h" + + +// data +//D:80036B70 +s32 highlighted_debug_option = 0; +//D:80036B74 +s32 ptr_last_debuggrp_cutoff = 0; +//D:80036B78 +s32 ptr_textptrs = 0; +//D:80036B7C +s32 ptr_positions = 0; +//D:80036B80 +s32 number_groups = 0; +//D:80036B84 +s32 ptr_groupings = 0; +//D:80036B88 +s32 num_mcm_something = 2; +//D:80036B8C +u32 mcm_xoffset_multiplier = 0x4040400; +//D:80036B90 +u32 mcm_yoffset_multiplier = 0x7070700; +/* +D:80036B94 .word 0 +D:80036B98 .word 0 +D:80036B9C .word 0 +*/ + +// rodata +//D:80055340 +const char aMenu_cErrorTriedToCallFont_makegt[] = "menu.c: ERROR! Tried to call font_makegt\n"; + + + + +void nullsub_32(void) { + return; +} + +void sub_GAME_7F08FE08(s32 param_1) { + num_mcm_something = param_1; +} + + + + + +#ifdef NONMATCHING +void init_debug_menu_values(void) { + +} +#else +GLOBAL_ASM( +.text +glabel init_debug_menu_values +/* 0C4944 7F08FE14 3C018003 */ lui $at, %hi(ptr_textptrs) +/* 0C4948 7F08FE18 AC246B78 */ sw $a0, %lo(ptr_textptrs)($at) +/* 0C494C 7F08FE1C 3C018003 */ lui $at, %hi(ptr_positions) +/* 0C4950 7F08FE20 AC256B7C */ sw $a1, %lo(ptr_positions)($at) +/* 0C4954 7F08FE24 3C018003 */ lui $at, %hi(ptr_groupings) +/* 0C4958 7F08FE28 AC266B84 */ sw $a2, %lo(ptr_groupings)($at) +/* 0C495C 7F08FE2C 8CCE0000 */ lw $t6, ($a2) +/* 0C4960 7F08FE30 00001025 */ move $v0, $zero +/* 0C4964 7F08FE34 00C01825 */ move $v1, $a2 +/* 0C4968 7F08FE38 05C20007 */ bltzl $t6, .L7F08FE58 +/* 0C496C 7F08FE3C 0002C080 */ sll $t8, $v0, 2 +/* 0C4970 7F08FE40 8C6F0004 */ lw $t7, 4($v1) +.L7F08FE44: +/* 0C4974 7F08FE44 24420001 */ addiu $v0, $v0, 1 +/* 0C4978 7F08FE48 24630004 */ addiu $v1, $v1, 4 +/* 0C497C 7F08FE4C 05E3FFFD */ bgezl $t7, .L7F08FE44 +/* 0C4980 7F08FE50 8C6F0004 */ lw $t7, 4($v1) +/* 0C4984 7F08FE54 0002C080 */ sll $t8, $v0, 2 +.L7F08FE58: +/* 0C4988 7F08FE58 00D8C821 */ addu $t9, $a2, $t8 +/* 0C498C 7F08FE5C 8F28FFFC */ lw $t0, -4($t9) +/* 0C4990 7F08FE60 3C018003 */ lui $at, %hi(ptr_last_debuggrp_cutoff) +/* 0C4994 7F08FE64 AC286B74 */ sw $t0, %lo(ptr_last_debuggrp_cutoff)($at) +/* 0C4998 7F08FE68 3C018003 */ lui $at, %hi(number_groups) +/* 0C499C 7F08FE6C 03E00008 */ jr $ra +/* 0C49A0 7F08FE70 AC226B80 */ sw $v0, %lo(number_groups)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void print_debug_mcm_to_stdout(void) { + +} +#else +GLOBAL_ASM( +.text +glabel print_debug_mcm_to_stdout +/* 0C49A4 7F08FE74 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0C49A8 7F08FE78 3C028003 */ lui $v0, %hi(num_mcm_something) +/* 0C49AC 7F08FE7C 8C426B88 */ lw $v0, %lo(num_mcm_something)($v0) +/* 0C49B0 7F08FE80 3C0E8003 */ lui $t6, %hi(ptr_last_debuggrp_cutoff) +/* 0C49B4 7F08FE84 8DCE6B74 */ lw $t6, %lo(ptr_last_debuggrp_cutoff)($t6) +/* 0C49B8 7F08FE88 AFBE0038 */ sw $fp, 0x38($sp) +/* 0C49BC 7F08FE8C AFB70034 */ sw $s7, 0x34($sp) +/* 0C49C0 7F08FE90 3C178003 */ lui $s7, %hi(mcm_xoffset_multiplier) +/* 0C49C4 7F08FE94 3C1E8003 */ lui $fp, %hi(mcm_yoffset_multiplier) +/* 0C49C8 7F08FE98 AFB00018 */ sw $s0, 0x18($sp) +/* 0C49CC 7F08FE9C 02E2B821 */ addu $s7, $s7, $v0 +/* 0C49D0 7F08FEA0 03C2F021 */ addu $fp, $fp, $v0 +/* 0C49D4 7F08FEA4 AFBF003C */ sw $ra, 0x3c($sp) +/* 0C49D8 7F08FEA8 AFB60030 */ sw $s6, 0x30($sp) +/* 0C49DC 7F08FEAC AFB5002C */ sw $s5, 0x2c($sp) +/* 0C49E0 7F08FEB0 AFB40028 */ sw $s4, 0x28($sp) +/* 0C49E4 7F08FEB4 AFB30024 */ sw $s3, 0x24($sp) +/* 0C49E8 7F08FEB8 AFB20020 */ sw $s2, 0x20($sp) +/* 0C49EC 7F08FEBC AFB1001C */ sw $s1, 0x1c($sp) +/* 0C49F0 7F08FEC0 AFA40040 */ sw $a0, 0x40($sp) +/* 0C49F4 7F08FEC4 92F76B8C */ lbu $s7, %lo(mcm_xoffset_multiplier)($s7) +/* 0C49F8 7F08FEC8 93DE6B90 */ lbu $fp, %lo(mcm_yoffset_multiplier)($fp) +/* 0C49FC 7F08FECC 19C00042 */ blez $t6, .L7F08FFD8 +/* 0C4A00 7F08FED0 00008025 */ move $s0, $zero +/* 0C4A04 7F08FED4 3C168003 */ lui $s6, %hi(ptr_textptrs) +/* 0C4A08 7F08FED8 3C148003 */ lui $s4, %hi(ptr_positions) +/* 0C4A0C 7F08FEDC 3C138003 */ lui $s3, %hi(highlighted_debug_option) +/* 0C4A10 7F08FEE0 26736B70 */ addiu $s3, %lo(highlighted_debug_option) # addiu $s3, $s3, 0x6b70 +/* 0C4A14 7F08FEE4 26946B7C */ addiu $s4, %lo(ptr_positions) # addiu $s4, $s4, 0x6b7c +/* 0C4A18 7F08FEE8 26D66B78 */ addiu $s6, %lo(ptr_textptrs) # addiu $s6, $s6, 0x6b78 +/* 0C4A1C 7F08FEEC 00008825 */ move $s1, $zero +/* 0C4A20 7F08FEF0 00009025 */ move $s2, $zero +/* 0C4A24 7F08FEF4 24150007 */ li $s5, 7 +.L7F08FEF8: +/* 0C4A28 7F08FEF8 0FC23F80 */ jal nullsub_32 +/* 0C4A2C 7F08FEFC 00000000 */ nop +/* 0C4A30 7F08FF00 8E6F0000 */ lw $t7, ($s3) +/* 0C4A34 7F08FF04 240400C0 */ li $a0, 192 +/* 0C4A38 7F08FF08 240500C0 */ li $a1, 192 +/* 0C4A3C 7F08FF0C 160F0008 */ bne $s0, $t7, .L7F08FF30 +/* 0C4A40 7F08FF10 240600C0 */ li $a2, 192 +/* 0C4A44 7F08FF14 240400C0 */ li $a0, 192 +/* 0C4A48 7F08FF18 00002825 */ move $a1, $zero +/* 0C4A4C 7F08FF1C 00003025 */ move $a2, $zero +/* 0C4A50 7F08FF20 0C002C1B */ jal set_debug_text_color +/* 0C4A54 7F08FF24 240700C0 */ li $a3, 192 +/* 0C4A58 7F08FF28 10000004 */ b .L7F08FF3C +/* 0C4A5C 7F08FF2C 8E980000 */ lw $t8, ($s4) +.L7F08FF30: +/* 0C4A60 7F08FF30 0C002C1B */ jal set_debug_text_color +/* 0C4A64 7F08FF34 240700C0 */ li $a3, 192 +/* 0C4A68 7F08FF38 8E980000 */ lw $t8, ($s4) +.L7F08FF3C: +/* 0C4A6C 7F08FF3C 03111021 */ addu $v0, $t8, $s1 +/* 0C4A70 7F08FF40 8C590000 */ lw $t9, ($v0) +/* 0C4A74 7F08FF44 8C490004 */ lw $t1, 4($v0) +/* 0C4A78 7F08FF48 03370019 */ multu $t9, $s7 +/* 0C4A7C 7F08FF4C 00002012 */ mflo $a0 +/* 0C4A80 7F08FF50 2484FFEC */ addiu $a0, $a0, -0x14 +/* 0C4A84 7F08FF54 04810003 */ bgez $a0, .L7F08FF64 +/* 0C4A88 7F08FF58 00044083 */ sra $t0, $a0, 2 +/* 0C4A8C 7F08FF5C 24810003 */ addiu $at, $a0, 3 +/* 0C4A90 7F08FF60 00014083 */ sra $t0, $at, 2 +.L7F08FF64: +/* 0C4A94 7F08FF64 013E0019 */ multu $t1, $fp +/* 0C4A98 7F08FF68 01002025 */ move $a0, $t0 +/* 0C4A9C 7F08FF6C 00005012 */ mflo $t2 +/* 0C4AA0 7F08FF70 254BFFF8 */ addiu $t3, $t2, -8 +/* 0C4AA4 7F08FF74 00000000 */ nop +/* 0C4AA8 7F08FF78 0175001A */ div $zero, $t3, $s5 +/* 0C4AAC 7F08FF7C 00002812 */ mflo $a1 +/* 0C4AB0 7F08FF80 16A00002 */ bnez $s5, .L7F08FF8C +/* 0C4AB4 7F08FF84 00000000 */ nop +/* 0C4AB8 7F08FF88 0007000D */ break 7 +.L7F08FF8C: +/* 0C4ABC 7F08FF8C 2401FFFF */ li $at, -1 +/* 0C4AC0 7F08FF90 16A10004 */ bne $s5, $at, .L7F08FFA4 +/* 0C4AC4 7F08FF94 3C018000 */ lui $at, 0x8000 +/* 0C4AC8 7F08FF98 15610002 */ bne $t3, $at, .L7F08FFA4 +/* 0C4ACC 7F08FF9C 00000000 */ nop +/* 0C4AD0 7F08FFA0 0006000D */ break 6 +.L7F08FFA4: +/* 0C4AD4 7F08FFA4 0C002C10 */ jal set_final_debug_text_positions +/* 0C4AD8 7F08FFA8 00000000 */ nop +/* 0C4ADC 7F08FFAC 8ECC0000 */ lw $t4, ($s6) +/* 0C4AE0 7F08FFB0 01926821 */ addu $t5, $t4, $s2 +/* 0C4AE4 7F08FFB4 0C002C7A */ jal write_string_stdout +/* 0C4AE8 7F08FFB8 8DA40000 */ lw $a0, ($t5) +/* 0C4AEC 7F08FFBC 3C0E8003 */ lui $t6, %hi(ptr_last_debuggrp_cutoff) +/* 0C4AF0 7F08FFC0 8DCE6B74 */ lw $t6, %lo(ptr_last_debuggrp_cutoff)($t6) +/* 0C4AF4 7F08FFC4 26100001 */ addiu $s0, $s0, 1 +/* 0C4AF8 7F08FFC8 26310008 */ addiu $s1, $s1, 8 +/* 0C4AFC 7F08FFCC 020E082A */ slt $at, $s0, $t6 +/* 0C4B00 7F08FFD0 1420FFC9 */ bnez $at, .L7F08FEF8 +/* 0C4B04 7F08FFD4 26520004 */ addiu $s2, $s2, 4 +.L7F08FFD8: +/* 0C4B08 7F08FFD8 8FBF003C */ lw $ra, 0x3c($sp) +/* 0C4B0C 7F08FFDC 8FA20040 */ lw $v0, 0x40($sp) +/* 0C4B10 7F08FFE0 8FB00018 */ lw $s0, 0x18($sp) +/* 0C4B14 7F08FFE4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C4B18 7F08FFE8 8FB20020 */ lw $s2, 0x20($sp) +/* 0C4B1C 7F08FFEC 8FB30024 */ lw $s3, 0x24($sp) +/* 0C4B20 7F08FFF0 8FB40028 */ lw $s4, 0x28($sp) +/* 0C4B24 7F08FFF4 8FB5002C */ lw $s5, 0x2c($sp) +/* 0C4B28 7F08FFF8 8FB60030 */ lw $s6, 0x30($sp) +/* 0C4B2C 7F08FFFC 8FB70034 */ lw $s7, 0x34($sp) +/* 0C4B30 7F090000 8FBE0038 */ lw $fp, 0x38($sp) +/* 0C4B34 7F090004 03E00008 */ jr $ra +/* 0C4B38 7F090008 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09000C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09000C +/* 0C4B3C 7F09000C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0C4B40 7F090010 AFB5002C */ sw $s5, 0x2c($sp) +/* 0C4B44 7F090014 3C028003 */ lui $v0, %hi(num_mcm_something) +/* 0C4B48 7F090018 8C426B88 */ lw $v0, %lo(num_mcm_something)($v0) +/* 0C4B4C 7F09001C 3C158003 */ lui $s5, %hi(ptr_last_debuggrp_cutoff) +/* 0C4B50 7F090020 26B56B74 */ addiu $s5, %lo(ptr_last_debuggrp_cutoff) # addiu $s5, $s5, 0x6b74 +/* 0C4B54 7F090024 8EAE0000 */ lw $t6, ($s5) +/* 0C4B58 7F090028 AFB40028 */ sw $s4, 0x28($sp) +/* 0C4B5C 7F09002C AFB30024 */ sw $s3, 0x24($sp) +/* 0C4B60 7F090030 3C138003 */ lui $s3, %hi(mcm_xoffset_multiplier) +/* 0C4B64 7F090034 3C148003 */ lui $s4, %hi(mcm_yoffset_multiplier) +/* 0C4B68 7F090038 AFB00018 */ sw $s0, 0x18($sp) +/* 0C4B6C 7F09003C 02629821 */ addu $s3, $s3, $v0 +/* 0C4B70 7F090040 0282A021 */ addu $s4, $s4, $v0 +/* 0C4B74 7F090044 AFBF003C */ sw $ra, 0x3c($sp) +/* 0C4B78 7F090048 AFBE0038 */ sw $fp, 0x38($sp) +/* 0C4B7C 7F09004C AFB70034 */ sw $s7, 0x34($sp) +/* 0C4B80 7F090050 AFB60030 */ sw $s6, 0x30($sp) +/* 0C4B84 7F090054 AFB20020 */ sw $s2, 0x20($sp) +/* 0C4B88 7F090058 AFB1001C */ sw $s1, 0x1c($sp) +/* 0C4B8C 7F09005C AFA40040 */ sw $a0, 0x40($sp) +/* 0C4B90 7F090060 AFA50044 */ sw $a1, 0x44($sp) +/* 0C4B94 7F090064 AFA60048 */ sw $a2, 0x48($sp) +/* 0C4B98 7F090068 92736B8C */ lbu $s3, %lo(mcm_xoffset_multiplier)($s3) +/* 0C4B9C 7F09006C 92946B90 */ lbu $s4, %lo(mcm_yoffset_multiplier)($s4) +/* 0C4BA0 7F090070 19C00043 */ blez $t6, .L7F090180 +/* 0C4BA4 7F090074 00008025 */ move $s0, $zero +/* 0C4BA8 7F090078 3C178003 */ lui $s7, %hi(ptr_positions) +/* 0C4BAC 7F09007C 3C168003 */ lui $s6, %hi(highlighted_debug_option) +/* 0C4BB0 7F090080 26D66B70 */ addiu $s6, %lo(highlighted_debug_option) # addiu $s6, $s6, 0x6b70 +/* 0C4BB4 7F090084 26F76B7C */ addiu $s7, %lo(ptr_positions) # addiu $s7, $s7, 0x6b7c +/* 0C4BB8 7F090088 00008825 */ move $s1, $zero +/* 0C4BBC 7F09008C 00009025 */ move $s2, $zero +/* 0C4BC0 7F090090 241E0007 */ li $fp, 7 +.L7F090094: +/* 0C4BC4 7F090094 0FC23F80 */ jal nullsub_32 +/* 0C4BC8 7F090098 00000000 */ nop +/* 0C4BCC 7F09009C 8ECF0000 */ lw $t7, ($s6) +/* 0C4BD0 7F0900A0 240400C0 */ li $a0, 192 +/* 0C4BD4 7F0900A4 240500C0 */ li $a1, 192 +/* 0C4BD8 7F0900A8 160F0008 */ bne $s0, $t7, .L7F0900CC +/* 0C4BDC 7F0900AC 240600C0 */ li $a2, 192 +/* 0C4BE0 7F0900B0 240400C0 */ li $a0, 192 +/* 0C4BE4 7F0900B4 00002825 */ move $a1, $zero +/* 0C4BE8 7F0900B8 00003025 */ move $a2, $zero +/* 0C4BEC 7F0900BC 0C002C1B */ jal set_debug_text_color +/* 0C4BF0 7F0900C0 240700C0 */ li $a3, 192 +/* 0C4BF4 7F0900C4 10000004 */ b .L7F0900D8 +/* 0C4BF8 7F0900C8 8EF80000 */ lw $t8, ($s7) +.L7F0900CC: +/* 0C4BFC 7F0900CC 0C002C1B */ jal set_debug_text_color +/* 0C4C00 7F0900D0 240700C0 */ li $a3, 192 +/* 0C4C04 7F0900D4 8EF80000 */ lw $t8, ($s7) +.L7F0900D8: +/* 0C4C08 7F0900D8 03111021 */ addu $v0, $t8, $s1 +/* 0C4C0C 7F0900DC 8C590000 */ lw $t9, ($v0) +/* 0C4C10 7F0900E0 8C490004 */ lw $t1, 4($v0) +/* 0C4C14 7F0900E4 03330019 */ multu $t9, $s3 +/* 0C4C18 7F0900E8 00002012 */ mflo $a0 +/* 0C4C1C 7F0900EC 2484FFEC */ addiu $a0, $a0, -0x14 +/* 0C4C20 7F0900F0 04810003 */ bgez $a0, .L7F090100 +/* 0C4C24 7F0900F4 00044083 */ sra $t0, $a0, 2 +/* 0C4C28 7F0900F8 24810003 */ addiu $at, $a0, 3 +/* 0C4C2C 7F0900FC 00014083 */ sra $t0, $at, 2 +.L7F090100: +/* 0C4C30 7F090100 01340019 */ multu $t1, $s4 +/* 0C4C34 7F090104 01002025 */ move $a0, $t0 +/* 0C4C38 7F090108 00005012 */ mflo $t2 +/* 0C4C3C 7F09010C 254BFFF8 */ addiu $t3, $t2, -8 +/* 0C4C40 7F090110 00000000 */ nop +/* 0C4C44 7F090114 017E001A */ div $zero, $t3, $fp +/* 0C4C48 7F090118 00002812 */ mflo $a1 +/* 0C4C4C 7F09011C 17C00002 */ bnez $fp, .L7F090128 +/* 0C4C50 7F090120 00000000 */ nop +/* 0C4C54 7F090124 0007000D */ break 7 +.L7F090128: +/* 0C4C58 7F090128 2401FFFF */ li $at, -1 +/* 0C4C5C 7F09012C 17C10004 */ bne $fp, $at, .L7F090140 +/* 0C4C60 7F090130 3C018000 */ lui $at, 0x8000 +/* 0C4C64 7F090134 15610002 */ bne $t3, $at, .L7F090140 +/* 0C4C68 7F090138 00000000 */ nop +/* 0C4C6C 7F09013C 0006000D */ break 6 +.L7F090140: +/* 0C4C70 7F090140 0C002C10 */ jal set_final_debug_text_positions +/* 0C4C74 7F090144 00000000 */ nop +/* 0C4C78 7F090148 3C0C8003 */ lui $t4, %hi(ptr_textptrs) +/* 0C4C7C 7F09014C 8D8C6B78 */ lw $t4, %lo(ptr_textptrs)($t4) +/* 0C4C80 7F090150 01926821 */ addu $t5, $t4, $s2 +/* 0C4C84 7F090154 0C002C7A */ jal write_string_stdout +/* 0C4C88 7F090158 8DA40000 */ lw $a0, ($t5) +/* 0C4C8C 7F09015C 3C048005 */ lui $a0, %hi(aMenu_cErrorTriedToCallFont_makegt) +/* 0C4C90 7F090160 0C0033D1 */ jal osSyncPrintf +/* 0C4C94 7F090164 24845340 */ addiu $a0, %lo(aMenu_cErrorTriedToCallFont_makegt) # addiu $a0, $a0, 0x5340 +/* 0C4C98 7F090168 8EAE0000 */ lw $t6, ($s5) +/* 0C4C9C 7F09016C 26100001 */ addiu $s0, $s0, 1 +/* 0C4CA0 7F090170 26310008 */ addiu $s1, $s1, 8 +/* 0C4CA4 7F090174 020E082A */ slt $at, $s0, $t6 +/* 0C4CA8 7F090178 1420FFC6 */ bnez $at, .L7F090094 +/* 0C4CAC 7F09017C 26520004 */ addiu $s2, $s2, 4 +.L7F090180: +/* 0C4CB0 7F090180 8FBF003C */ lw $ra, 0x3c($sp) +/* 0C4CB4 7F090184 8FB00018 */ lw $s0, 0x18($sp) +/* 0C4CB8 7F090188 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C4CBC 7F09018C 8FB20020 */ lw $s2, 0x20($sp) +/* 0C4CC0 7F090190 8FB30024 */ lw $s3, 0x24($sp) +/* 0C4CC4 7F090194 8FB40028 */ lw $s4, 0x28($sp) +/* 0C4CC8 7F090198 8FB5002C */ lw $s5, 0x2c($sp) +/* 0C4CCC 7F09019C 8FB60030 */ lw $s6, 0x30($sp) +/* 0C4CD0 7F0901A0 8FB70034 */ lw $s7, 0x34($sp) +/* 0C4CD4 7F0901A4 8FBE0038 */ lw $fp, 0x38($sp) +/* 0C4CD8 7F0901A8 03E00008 */ jr $ra +/* 0C4CDC 7F0901AC 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + +s32 get_highlighted_debug_option(void) { + return highlighted_debug_option; +} + +void sub_GAME_7F0901BC(s32 value) { + highlighted_debug_option = value; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0901C8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0901C8 +/* 0C4CF8 7F0901C8 3C068003 */ lui $a2, %hi(highlighted_debug_option) +/* 0C4CFC 7F0901CC 24C66B70 */ addiu $a2, %lo(highlighted_debug_option) # addiu $a2, $a2, 0x6b70 +/* 0C4D00 7F0901D0 8CCE0000 */ lw $t6, ($a2) +/* 0C4D04 7F0901D4 3C188003 */ lui $t8, %hi(ptr_groupings) +/* 0C4D08 7F0901D8 3C048003 */ lui $a0, %hi(number_groups) +/* 0C4D0C 7F0901DC 25C2FFFF */ addiu $v0, $t6, -1 +/* 0C4D10 7F0901E0 04410006 */ bgez $v0, .L7F0901FC +/* 0C4D14 7F0901E4 ACC20000 */ sw $v0, ($a2) +/* 0C4D18 7F0901E8 8F186B84 */ lw $t8, %lo(ptr_groupings)($t8) +/* 0C4D1C 7F0901EC 8F190000 */ lw $t9, ($t8) +/* 0C4D20 7F0901F0 2728FFFF */ addiu $t0, $t9, -1 +/* 0C4D24 7F0901F4 03E00008 */ jr $ra +/* 0C4D28 7F0901F8 ACC80000 */ sw $t0, ($a2) + +.L7F0901FC: +/* 0C4D2C 7F0901FC 8C846B80 */ lw $a0, %lo(number_groups)($a0) +/* 0C4D30 7F090200 00001825 */ move $v1, $zero +/* 0C4D34 7F090204 3C058003 */ lui $a1, %hi(ptr_groupings) +/* 0C4D38 7F090208 1880000D */ blez $a0, .L7F090240 +/* 0C4D3C 7F09020C 00000000 */ nop +/* 0C4D40 7F090210 8CA56B84 */ lw $a1, %lo(ptr_groupings)($a1) +.L7F090214: +/* 0C4D44 7F090214 8CAA0000 */ lw $t2, ($a1) +/* 0C4D48 7F090218 24630001 */ addiu $v1, $v1, 1 +/* 0C4D4C 7F09021C 24490001 */ addiu $t1, $v0, 1 +/* 0C4D50 7F090220 152A0005 */ bne $t1, $t2, .L7F090238 +/* 0C4D54 7F090224 0064082A */ slt $at, $v1, $a0 +/* 0C4D58 7F090228 8CAB0004 */ lw $t3, 4($a1) +/* 0C4D5C 7F09022C 256CFFFF */ addiu $t4, $t3, -1 +/* 0C4D60 7F090230 03E00008 */ jr $ra +/* 0C4D64 7F090234 ACCC0000 */ sw $t4, ($a2) + +.L7F090238: +/* 0C4D68 7F090238 1420FFF6 */ bnez $at, .L7F090214 +/* 0C4D6C 7F09023C 24A50004 */ addiu $a1, $a1, 4 +.L7F090240: +/* 0C4D70 7F090240 03E00008 */ jr $ra +/* 0C4D74 7F090244 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F090248(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F090248 +/* 0C4D78 7F090248 3C078003 */ lui $a3, %hi(highlighted_debug_option) +/* 0C4D7C 7F09024C 24E76B70 */ addiu $a3, %lo(highlighted_debug_option) # addiu $a3, $a3, 0x6b70 +/* 0C4D80 7F090250 8CEE0000 */ lw $t6, ($a3) +/* 0C4D84 7F090254 3C038003 */ lui $v1, %hi(ptr_groupings) +/* 0C4D88 7F090258 3C058003 */ lui $a1, %hi(number_groups) +/* 0C4D8C 7F09025C 25C20001 */ addiu $v0, $t6, 1 +/* 0C4D90 7F090260 ACE20000 */ sw $v0, ($a3) +/* 0C4D94 7F090264 8C636B84 */ lw $v1, %lo(ptr_groupings)($v1) +/* 0C4D98 7F090268 8C780000 */ lw $t8, ($v1) +/* 0C4D9C 7F09026C 14580003 */ bne $v0, $t8, .L7F09027C +/* 0C4DA0 7F090270 00000000 */ nop +/* 0C4DA4 7F090274 03E00008 */ jr $ra +/* 0C4DA8 7F090278 ACE00000 */ sw $zero, ($a3) + +.L7F09027C: +/* 0C4DAC 7F09027C 8CA56B80 */ lw $a1, %lo(number_groups)($a1) +/* 0C4DB0 7F090280 00002025 */ move $a0, $zero +/* 0C4DB4 7F090284 00603025 */ move $a2, $v1 +/* 0C4DB8 7F090288 18A0000B */ blez $a1, .L7F0902B8 +/* 0C4DBC 7F09028C 00000000 */ nop +.L7F090290: +/* 0C4DC0 7F090290 8CD90000 */ lw $t9, ($a2) +/* 0C4DC4 7F090294 24840001 */ addiu $a0, $a0, 1 +/* 0C4DC8 7F090298 0085082A */ slt $at, $a0, $a1 +/* 0C4DCC 7F09029C 14590004 */ bne $v0, $t9, .L7F0902B0 +/* 0C4DD0 7F0902A0 00000000 */ nop +/* 0C4DD4 7F0902A4 8CC8FFFC */ lw $t0, -4($a2) +/* 0C4DD8 7F0902A8 03E00008 */ jr $ra +/* 0C4DDC 7F0902AC ACE80000 */ sw $t0, ($a3) + +.L7F0902B0: +/* 0C4DE0 7F0902B0 1420FFF7 */ bnez $at, .L7F090290 +/* 0C4DE4 7F0902B4 24C60004 */ addiu $a2, $a2, 4 +.L7F0902B8: +/* 0C4DE8 7F0902B8 03E00008 */ jr $ra +/* 0C4DEC 7F0902BC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0902C0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0902C0 +/* 0C4DF0 7F0902C0 3C038003 */ lui $v1, %hi(ptr_groupings) +/* 0C4DF4 7F0902C4 8C636B84 */ lw $v1, %lo(ptr_groupings)($v1) +/* 0C4DF8 7F0902C8 3C088003 */ lui $t0, %hi(highlighted_debug_option) +/* 0C4DFC 7F0902CC 25086B70 */ addiu $t0, %lo(highlighted_debug_option) # addiu $t0, $t0, 0x6b70 +/* 0C4E00 7F0902D0 8D020000 */ lw $v0, ($t0) +/* 0C4E04 7F0902D4 8C640000 */ lw $a0, ($v1) +/* 0C4E08 7F0902D8 3C058003 */ lui $a1, %hi(number_groups) +/* 0C4E0C 7F0902DC 0044082A */ slt $at, $v0, $a0 +/* 0C4E10 7F0902E0 10200008 */ beqz $at, .L7F090304 +/* 0C4E14 7F0902E4 00447021 */ addu $t6, $v0, $a0 +/* 0C4E18 7F0902E8 AD0E0000 */ sw $t6, ($t0) +/* 0C4E1C 7F0902EC 8C650004 */ lw $a1, 4($v1) +/* 0C4E20 7F0902F0 01C5082A */ slt $at, $t6, $a1 +/* 0C4E24 7F0902F4 14200027 */ bnez $at, .L7F090394 +/* 0C4E28 7F0902F8 24B8FFFF */ addiu $t8, $a1, -1 +/* 0C4E2C 7F0902FC 03E00008 */ jr $ra +/* 0C4E30 7F090300 AD180000 */ sw $t8, ($t0) + +.L7F090304: +/* 0C4E34 7F090304 8CA56B80 */ lw $a1, %lo(number_groups)($a1) +/* 0C4E38 7F090308 00002025 */ move $a0, $zero +/* 0C4E3C 7F09030C 00603025 */ move $a2, $v1 +/* 0C4E40 7F090310 18A00020 */ blez $a1, .L7F090394 +/* 0C4E44 7F090314 00000000 */ nop +.L7F090318: +/* 0C4E48 7F090318 8CC70000 */ lw $a3, ($a2) +/* 0C4E4C 7F09031C 24840001 */ addiu $a0, $a0, 1 +/* 0C4E50 7F090320 0047082A */ slt $at, $v0, $a3 +/* 0C4E54 7F090324 50200019 */ beql $at, $zero, .L7F09038C +/* 0C4E58 7F090328 0085082A */ slt $at, $a0, $a1 +/* 0C4E5C 7F09032C 8CC9FFFC */ lw $t1, -4($a2) +/* 0C4E60 7F090330 0047C821 */ addu $t9, $v0, $a3 +/* 0C4E64 7F090334 03295023 */ subu $t2, $t9, $t1 +/* 0C4E68 7F090338 AD0A0000 */ sw $t2, ($t0) +/* 0C4E6C 7F09033C 8CC40004 */ lw $a0, 4($a2) +/* 0C4E70 7F090340 0483000B */ bgezl $a0, .L7F090370 +/* 0C4E74 7F090344 8D180000 */ lw $t8, ($t0) +/* 0C4E78 7F090348 8CCC0000 */ lw $t4, ($a2) +/* 0C4E7C 7F09034C 014C6823 */ subu $t5, $t2, $t4 +/* 0C4E80 7F090350 AD0D0000 */ sw $t5, ($t0) +/* 0C4E84 7F090354 8C640000 */ lw $a0, ($v1) +/* 0C4E88 7F090358 01A4082A */ slt $at, $t5, $a0 +/* 0C4E8C 7F09035C 1420000D */ bnez $at, .L7F090394 +/* 0C4E90 7F090360 248FFFFF */ addiu $t7, $a0, -1 +/* 0C4E94 7F090364 03E00008 */ jr $ra +/* 0C4E98 7F090368 AD0F0000 */ sw $t7, ($t0) + +/* 0C4E9C 7F09036C 8D180000 */ lw $t8, ($t0) +.L7F090370: +/* 0C4EA0 7F090370 2499FFFF */ addiu $t9, $a0, -1 +/* 0C4EA4 7F090374 0304082A */ slt $at, $t8, $a0 +/* 0C4EA8 7F090378 14200006 */ bnez $at, .L7F090394 +/* 0C4EAC 7F09037C 00000000 */ nop +/* 0C4EB0 7F090380 03E00008 */ jr $ra +/* 0C4EB4 7F090384 AD190000 */ sw $t9, ($t0) + +/* 0C4EB8 7F090388 0085082A */ slt $at, $a0, $a1 +.L7F09038C: +/* 0C4EBC 7F09038C 1420FFE2 */ bnez $at, .L7F090318 +/* 0C4EC0 7F090390 24C60004 */ addiu $a2, $a2, 4 +.L7F090394: +/* 0C4EC4 7F090394 03E00008 */ jr $ra +/* 0C4EC8 7F090398 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09039C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09039C +/* 0C4ECC 7F09039C 3C038003 */ lui $v1, %hi(ptr_groupings) +/* 0C4ED0 7F0903A0 8C636B84 */ lw $v1, %lo(ptr_groupings)($v1) +/* 0C4ED4 7F0903A4 3C078003 */ lui $a3, %hi(highlighted_debug_option) +/* 0C4ED8 7F0903A8 24E76B70 */ addiu $a3, %lo(highlighted_debug_option) # addiu $a3, $a3, 0x6b70 +/* 0C4EDC 7F0903AC 8CE20000 */ lw $v0, ($a3) +/* 0C4EE0 7F0903B0 8C640000 */ lw $a0, ($v1) +/* 0C4EE4 7F0903B4 3C058003 */ lui $a1, %hi(number_groups) +/* 0C4EE8 7F0903B8 0044082A */ slt $at, $v0, $a0 +/* 0C4EEC 7F0903BC 50200016 */ beql $at, $zero, .L7F090418 +/* 0C4EF0 7F0903C0 0044082A */ slt $at, $v0, $a0 +/* 0C4EF4 7F0903C4 8CA56B80 */ lw $a1, %lo(number_groups)($a1) +/* 0C4EF8 7F0903C8 00002025 */ move $a0, $zero +/* 0C4EFC 7F0903CC 24A5FFFF */ addiu $a1, $a1, -1 +/* 0C4F00 7F0903D0 58A00006 */ blezl $a1, .L7F0903EC +/* 0C4F04 7F0903D4 00047080 */ sll $t6, $a0, 2 +/* 0C4F08 7F0903D8 24840001 */ addiu $a0, $a0, 1 +.L7F0903DC: +/* 0C4F0C 7F0903DC 0085082A */ slt $at, $a0, $a1 +/* 0C4F10 7F0903E0 5420FFFE */ bnezl $at, .L7F0903DC +/* 0C4F14 7F0903E4 24840001 */ addiu $a0, $a0, 1 +/* 0C4F18 7F0903E8 00047080 */ sll $t6, $a0, 2 +.L7F0903EC: +/* 0C4F1C 7F0903EC 006E2821 */ addu $a1, $v1, $t6 +/* 0C4F20 7F0903F0 8CAFFFFC */ lw $t7, -4($a1) +/* 0C4F24 7F0903F4 004FC021 */ addu $t8, $v0, $t7 +/* 0C4F28 7F0903F8 ACF80000 */ sw $t8, ($a3) +/* 0C4F2C 7F0903FC 8CA60000 */ lw $a2, ($a1) +/* 0C4F30 7F090400 0306082A */ slt $at, $t8, $a2 +/* 0C4F34 7F090404 1420001E */ bnez $at, .L7F090480 +/* 0C4F38 7F090408 24C8FFFF */ addiu $t0, $a2, -1 +/* 0C4F3C 7F09040C 03E00008 */ jr $ra +/* 0C4F40 7F090410 ACE80000 */ sw $t0, ($a3) + +/* 0C4F44 7F090414 0044082A */ slt $at, $v0, $a0 +.L7F090418: +/* 0C4F48 7F090418 14200008 */ bnez $at, .L7F09043C +/* 0C4F4C 7F09041C 00002825 */ move $a1, $zero +/* 0C4F50 7F090420 00602025 */ move $a0, $v1 +/* 0C4F54 7F090424 8C890004 */ lw $t1, 4($a0) +.L7F090428: +/* 0C4F58 7F090428 24A50001 */ addiu $a1, $a1, 1 +/* 0C4F5C 7F09042C 24840004 */ addiu $a0, $a0, 4 +/* 0C4F60 7F090430 0049082A */ slt $at, $v0, $t1 +/* 0C4F64 7F090434 5020FFFC */ beql $at, $zero, .L7F090428 +/* 0C4F68 7F090438 8C890004 */ lw $t1, 4($a0) +.L7F09043C: +/* 0C4F6C 7F09043C 00055080 */ sll $t2, $a1, 2 +/* 0C4F70 7F090440 006A2021 */ addu $a0, $v1, $t2 +/* 0C4F74 7F090444 8C8BFFFC */ lw $t3, -4($a0) +/* 0C4F78 7F090448 24ADFFFE */ addiu $t5, $a1, -2 +/* 0C4F7C 7F09044C 004B6023 */ subu $t4, $v0, $t3 +/* 0C4F80 7F090450 05A00004 */ bltz $t5, .L7F090464 +/* 0C4F84 7F090454 ACEC0000 */ sw $t4, ($a3) +/* 0C4F88 7F090458 8C8FFFF8 */ lw $t7, -8($a0) +/* 0C4F8C 7F09045C 018FC021 */ addu $t8, $t4, $t7 +/* 0C4F90 7F090460 ACF80000 */ sw $t8, ($a3) +.L7F090464: +/* 0C4F94 7F090464 8C82FFFC */ lw $v0, -4($a0) +/* 0C4F98 7F090468 8CF90000 */ lw $t9, ($a3) +/* 0C4F9C 7F09046C 2448FFFF */ addiu $t0, $v0, -1 +/* 0C4FA0 7F090470 0322082A */ slt $at, $t9, $v0 +/* 0C4FA4 7F090474 14200002 */ bnez $at, .L7F090480 +/* 0C4FA8 7F090478 00000000 */ nop +/* 0C4FAC 7F09047C ACE80000 */ sw $t0, ($a3) +.L7F090480: +/* 0C4FB0 7F090480 03E00008 */ jr $ra +/* 0C4FB4 7F090484 00000000 */ nop +) +#endif + + + diff --git a/src/game/debugmenu_090490.c b/src/game/debugmenu_090490.c new file mode 100644 index 0000000..ff6d4d7 --- /dev/null +++ b/src/game/debugmenu_090490.c @@ -0,0 +1,1348 @@ +#include "ultra64.h" +#include "game/debugmenu_090490.h" +#include "game/initgamedata.h" + +// data +//D:80036BA0 +u32 D_80036BA0 = 0; +//D:80036BA4 +s32 mcm_column_groupings[] = {8, 0x13, 0x1E, 0x2B, 0x32, 0x39, 0x45, 0x4D, -1}; + +//D:80036BC8 +struct mcm_layout mcm_onscreen_positions[] = { + {8, 5}, + {8, 6}, + {8, 7}, + {8, 8}, + {8, 9}, + {8, 0xA}, + {8, 0xB}, + {8, 0xC}, + {0x19, 5}, + {0x19, 6}, + {0x19, 7}, + {0x19, 8}, + {0x19, 9}, + {0x19, 0xA}, + {0x19, 0xB}, + {0x19, 0xC}, + {0x19, 0xD}, + {0x19, 0xE}, + {0x19, 0xF}, + {0x28, 5}, + {0x28, 6}, + {0x28, 7}, + {0x28, 8}, + {0x28, 9}, + {0x28, 0xA}, + {0x28, 0xB}, + {0x28, 0xC}, + {0x28, 0xD}, + {0x28, 0xE}, + {0x28, 0xF}, + {0x39, 5}, + {0x39, 6}, + {0x39, 7}, + {0x39, 8}, + {0x39, 9}, + {0x39, 0xA}, + {0x39, 0xB}, + {0x39, 0xC}, + {0x39, 0xD}, + {0x39, 0xE}, + {0x39, 0xF}, + {0x39, 0x10}, + {0x39, 0x11}, + {8, 0x14}, + {8, 0x15}, + {8, 0x16}, + {8, 0x17}, + {8, 0x18}, + {8, 0x19}, + {8, 0x1A}, + {0x19, 0x14}, + {0x19, 0x15}, + {0x19, 0x16}, + {0x19, 0x17}, + {0x19, 0x18}, + {0x19, 0x19}, + {0x19, 0x1A}, + {0x28, 0x14}, + {0x28, 0x15}, + {0x28, 0x16}, + {0x28, 0x17}, + {0x28, 0x18}, + {0x28, 0x19}, + {0x28, 0x1A}, + {0x28, 0x1B}, + {0x28, 0x1C}, + {0x28, 0x1D}, + {0x28, 0x1E}, + {0x28, 0x1F}, + {0x39, 0x14}, + {0x39, 0x15}, + {0x39, 0x16}, + {0x39, 0x17}, + {0x39, 0x18}, + {0x39, 0x19}, + {0x39, 0x1A}, + {0x39, 0x1B} +}; + +//D:80036E30 +char *mcm_strings[] = { + "move view", + "stan view", + "bond view", + "level", + "region", + "scale", + "play title", + "bond die", + "select anim", + "gun pos", + "flash colour", + "hit colour", + "music", + "sfx", + "invincible", + "visible", + "collisions", + "all guns", + "max ammo", + "display speed", + "background", + "props", + "stan hit", + "stan region", + "stan problems", + "print man pos", + "port close", + "port inf", + "port approx", + "pr room loads", + "show mem use", + "show mem bars", + "grab rgb", + "grab jpeg", + "grab task", + "rnd walk", + "record ramrom", + "record 1", + "record 2", + "record 3", + "replay ramrom", + "save ramrom", + "load ramrom", + "auto y aim", + "auto x aim", + "007", + "agent", + "all", + "fast", + "objectives", + "marg top", + "marg bot", + "marg left", + "marg right", + "marg reset", + "screen size", + "screen pos", + "show patrols", + "intro", + "intro edit", + "intro pos", + "world pos", + "gun key pos", + "vis cvg", + "chr num", + "room blocks", + "profile", + "obj load", + "weapon load", + "joy2 sky edit", + "joy2 hits edit", + "joy2 detail edit", + "explosion info", + "magic fog", + "gun watch pos", + "testing man pos", + "fog" +}; + +//D:80036F64 +s32 debug_render_raster = 2; +//D:80036F68 +s32 debug_freeze_processing = 2; +//D:80036F6C +s32 debug_limit_controller_input = 2; +//D:80036F70 +s32 debug_unknown = 2; +//D:80036F74 +s32 memusage_display_flag = FALSE; +//D:80036F78 +s32 debug_do_draw_bg = TRUE; +//D:80036F7C +s32 debug_do_draw_obj = TRUE; +//D:80036F80 +s32 debug_unknown2 = 1; +//D:80036F84 +s32 debug_stanhit_flag = FALSE; +//D:80036F88 +s32 debug_stanregion_flag = FALSE; +//D:80036F8C +s32 turbo_mode_flag = FALSE; +//D:80036F90 +s32 debug_man_pos_flag = 0; +//D:80036F94 +s32 debug_prroomloads_flag = 0; +//D:80036F98 +s32 debug_joy2skyedit_flag = 0; +//D:80036F9C +s32 debug_joy2hitsedit_flag = 0; +//D:80036FA0 +s32 debug_joy2detailedit_flag = 0; +//D:80036FA4 +s32 debug_explosioninfo_flag = 0; +//D:80036FA8 +s32 debug_VisCVG_flag = 0; +//D:80036FAC +s32 debug_007_unlock_flag = 0; +//D:80036FB0 +s32 debug_enable_agent_levels_flag = 0; +//D:80036FB4 +s32 debug_enable_all_levels_flag = 0; +//D:80036FB8 +s32 debug_chrnum_flag = 0; + +//D:80036FBC +s32 debug_gunwatchpos_flags = 0; +//D:80036FC0 +s32 debug_profile_flag = 0; +//D:80036FC4 +s32 debug_enable_taskgrab_flag = 0; +//D:80036FC8 +s32 debug_testingmanpos_flag = 0; +//D:80036FCC +s32 debug_fast_bond_flag = 0; +//D:80036FD0 +s32 debug_all_obj_complete_flag = 0 ; +//D:80036FD4 +s32 debug_portal_flag = 0; + +//D:80036FD8 +u32 dword_D_80036FD8[] = { + 0x80500000, + 0x40000, + 0x7F000000, + 0x7F100000 +}; + +u32 dword_D_80036FE8[] = { + 0x80600000, + 0x40000, + 0x70000000, + 0x70100000 +}; + +//D:80036FF8 +s32 show_debug_menu_flag = 0; +//D:80036FFC +s32 grab_rgb_screenshot_flag = 0; +//D:80037000 +s32 grab_jpeg_screenshot_flag = 0; +//D:80037004 +s32 player_pos_x = 0; +//D:80037008 +s32 player_pos_y = 0; +//D:8003700C +s32 player_pos_z = 0; + + + +// rodata + + +#ifdef NONMATCHING +void display_debug_menu_text_onscreen(void) +{ + init_debug_menu_values((char *)mcm_strings,mcm_onscreen_positions,mcm_column_groupings); +} +#else +GLOBAL_ASM( +.text +glabel display_debug_menu_text_onscreen +/* 0C4FC0 7F090490 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C4FC4 7F090494 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C4FC8 7F090498 3C048003 */ lui $a0, %hi(mcm_strings) +/* 0C4FCC 7F09049C 3C058003 */ lui $a1, %hi(mcm_onscreen_positions) +/* 0C4FD0 7F0904A0 3C068003 */ lui $a2, %hi(mcm_column_groupings) +/* 0C4FD4 7F0904A4 24C66BA4 */ addiu $a2, %lo(mcm_column_groupings) # addiu $a2, $a2, 0x6ba4 +/* 0C4FD8 7F0904A8 24A56BC8 */ addiu $a1, %lo(mcm_onscreen_positions) # addiu $a1, $a1, 0x6bc8 +/* 0C4FDC 7F0904AC 0FC23F85 */ jal init_debug_menu_values +/* 0C4FE0 7F0904B0 24846E30 */ addiu $a0, %lo(mcm_strings) # addiu $a0, $a0, 0x6e30 +/* 0C4FE4 7F0904B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C4FE8 7F0904B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C4FEC 7F0904BC 03E00008 */ jr $ra +/* 0C4FF0 7F0904C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0904C4(void) { + ? temp_ret; + + // Node 0 + sub_GAME_7F0916F4(); + temp_ret = get_highlighted_debug_option(); + debug_unknown = temp_ret; + debug_freeze_processing = temp_ret; + debug_render_raster = temp_ret; + return temp_ret; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0904C4 +/* 0C4FF4 7F0904C4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C4FF8 7F0904C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C4FFC 7F0904CC 0FC245BD */ jal sub_GAME_7F0916F4 +/* 0C5000 7F0904D0 00000000 */ nop +/* 0C5004 7F0904D4 0FC2406C */ jal get_highlighted_debug_option +/* 0C5008 7F0904D8 00000000 */ nop +/* 0C500C 7F0904DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C5010 7F0904E0 3C038003 */ lui $v1, %hi(debug_unknown) +/* 0C5014 7F0904E4 3C048003 */ lui $a0, %hi(debug_freeze_processing) +/* 0C5018 7F0904E8 24846F68 */ addiu $a0, %lo(debug_freeze_processing) # addiu $a0, $a0, 0x6f68 +/* 0C501C 7F0904EC 24636F70 */ addiu $v1, %lo(debug_unknown) # addiu $v1, $v1, 0x6f70 +/* 0C5020 7F0904F0 AC620000 */ sw $v0, ($v1) +/* 0C5024 7F0904F4 AC820000 */ sw $v0, ($a0) +/* 0C5028 7F0904F8 3C018003 */ lui $at, %hi(debug_render_raster) +/* 0C502C 7F0904FC AC226F64 */ sw $v0, %lo(debug_render_raster)($at) +/* 0C5030 7F090500 03E00008 */ jr $ra +/* 0C5034 7F090504 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F090508(void) { + ? temp_ret; + + // Node 0 + maybe_solo_intro_camera_handler(); + temp_ret = get_highlighted_debug_option(); + debug_unknown = temp_ret; + debug_freeze_processing = temp_ret; + debug_render_raster = temp_ret; + return temp_ret; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F090508 +/* 0C5038 7F090508 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C503C 7F09050C AFBF0014 */ sw $ra, 0x14($sp) +/* 0C5040 7F090510 0FC1E928 */ jal maybe_solo_intro_camera_handler +/* 0C5044 7F090514 00000000 */ nop +/* 0C5048 7F090518 0FC2406C */ jal get_highlighted_debug_option +/* 0C504C 7F09051C 00000000 */ nop +/* 0C5050 7F090520 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C5054 7F090524 3C038003 */ lui $v1, %hi(debug_unknown) +/* 0C5058 7F090528 3C048003 */ lui $a0, %hi(debug_freeze_processing) +/* 0C505C 7F09052C 24846F68 */ addiu $a0, %lo(debug_freeze_processing) # addiu $a0, $a0, 0x6f68 +/* 0C5060 7F090530 24636F70 */ addiu $v1, %lo(debug_unknown) # addiu $v1, $v1, 0x6f70 +/* 0C5064 7F090534 AC620000 */ sw $v0, ($v1) +/* 0C5068 7F090538 AC820000 */ sw $v0, ($a0) +/* 0C506C 7F09053C 3C018003 */ lui $at, %hi(debug_render_raster) +/* 0C5070 7F090540 AC226F64 */ sw $v0, %lo(debug_render_raster)($at) +/* 0C5074 7F090544 03E00008 */ jr $ra +/* 0C5078 7F090548 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09054C(void) { + ? temp_ret; + + // Node 0 + maybe_solo_intro_camera_handler(); + temp_ret = get_highlighted_debug_option(); + debug_unknown = temp_ret; + debug_freeze_processing = temp_ret; + debug_render_raster = temp_ret; + return temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09054C +/* 0C507C 7F09054C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C5080 7F090550 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C5084 7F090554 0FC1E928 */ jal maybe_solo_intro_camera_handler +/* 0C5088 7F090558 00000000 */ nop +/* 0C508C 7F09055C 0FC2406C */ jal get_highlighted_debug_option +/* 0C5090 7F090560 00000000 */ nop +/* 0C5094 7F090564 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C5098 7F090568 3C038003 */ lui $v1, %hi(debug_unknown) +/* 0C509C 7F09056C 3C048003 */ lui $a0, %hi(debug_freeze_processing) +/* 0C50A0 7F090570 24846F68 */ addiu $a0, %lo(debug_freeze_processing) # addiu $a0, $a0, 0x6f68 +/* 0C50A4 7F090574 24636F70 */ addiu $v1, %lo(debug_unknown) # addiu $v1, $v1, 0x6f70 +/* 0C50A8 7F090578 AC620000 */ sw $v0, ($v1) +/* 0C50AC 7F09057C AC820000 */ sw $v0, ($a0) +/* 0C50B0 7F090580 3C018003 */ lui $at, %hi(debug_render_raster) +/* 0C50B4 7F090584 AC226F64 */ sw $v0, %lo(debug_render_raster)($at) +/* 0C50B8 7F090588 03E00008 */ jr $ra +/* 0C50BC 7F09058C 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + +void removed_do_debug_profile_flag_false(void) { + return; +} + +void removed_do_debug_profile_flag_true(void) { + return; +} + + + + + + +#ifdef NONMATCHING +void debug_menu_processor(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:800556FC*/ +glabel jpt_debug_menu_options +.word debug_stanview +.word debug_bondview +.word .L7F090798 +.word debug_level +.word .L7F0907BC +.word debug_scale +.word debug_playtitle +.word debug_bonddie +.word debug_selectanim +.word debug_gunpos +.word debug_flashcolor +.word debug_hitcolor +.word debug_music +.word debug_sfx +.word debug_invincible +.word debug_visible +.word debug_collisions +.word debug_allguns +.word debug_maxammo +.word debug_displayspeed +.word debug_dodrawbg +.word debug_dodrawobj +.word debug_stanhit +.word debug_stanregion +.word debug_turbo +.word debug_printmanpos +.word portal_close_inf_approx +.word portal_close_inf_approx +.word portal_close_inf_approx +.word debug_prroomloads +.word debug_showmemuse +.word debug_showmembars +.word debug_grabrgb +.word debug_grabjpeg +.word debug_taskgrab +.word def_7F090770 +.word debug_recordramrom +.word debug_ramrom_record1 +.word debug_ramrom_record2 +.word debug_ramrom_record3 +.word debug_replayramrom +.word debug_saveramrom +.word debug_loadramrom +.word debug_autoyaim +.word debug_autoxaim +.word debug_007 +.word debug_agent +.word debug_all +.word fast_bond_debug +.word debug_objectives +.word def_7F090770 +.word def_7F090770 +.word def_7F090770 +.word def_7F090770 +.word def_7F090770 +.word .L7F090834 +.word debug_screenpos +.word debug_showpatrols +.word debug_intro +.word debug_introedit +.word debug_intropos +.word debug_worldpos +.word debug_chrkeypos +.word debug_viscvg +.word debug_chrnum +.word debug_roomblocks +.word debug_profile +.word debug_objload +.word debug_weaponload +.word debug_joy2skyedit +.word debug_joy2hitsedit +.word debug_joy2detailedit +.word debug_explosioninfo +.word debug_magicfog +.word debug_gunwatchpos +.word debug_testingmanpos +.word debug_fog + +/*D:80055830*/ +glabel jpt_80055830 +.word def_7F090EA8 +.word def_7F090EA8 +.word def_7F090EA8 +.word def_7F090EA8 +.word def_7F090EA8 + +.text +glabel debug_menu_processor +/* 0C50D0 7F0905A0 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0C50D4 7F0905A4 3C038003 */ lui $v1, %hi(grab_rgb_screenshot_flag) +/* 0C50D8 7F0905A8 8C636FFC */ lw $v1, %lo(grab_rgb_screenshot_flag)($v1) +/* 0C50DC 7F0905AC AFBF0014 */ sw $ra, 0x14($sp) +/* 0C50E0 7F0905B0 AFA40060 */ sw $a0, 0x60($sp) +/* 0C50E4 7F0905B4 AFA50064 */ sw $a1, 0x64($sp) +/* 0C50E8 7F0905B8 AFA60068 */ sw $a2, 0x68($sp) +/* 0C50EC 7F0905BC 1060000D */ beqz $v1, .L7F0905F4 +/* 0C50F0 7F0905C0 AFA7006C */ sw $a3, 0x6c($sp) +/* 0C50F4 7F0905C4 38620003 */ xori $v0, $v1, 3 +/* 0C50F8 7F0905C8 24630001 */ addiu $v1, $v1, 1 +/* 0C50FC 7F0905CC 3C018003 */ lui $at, %hi(grab_rgb_screenshot_flag) +/* 0C5100 7F0905D0 14400008 */ bnez $v0, .L7F0905F4 +/* 0C5104 7F0905D4 AC236FFC */ sw $v1, %lo(grab_rgb_screenshot_flag)($at) +/* 0C5108 7F0905D8 0C0012ED */ jal indy_grab_rgb_32bit +/* 0C510C 7F0905DC 00000000 */ nop +/* 0C5110 7F0905E0 3C018003 */ lui $at, %hi(grab_rgb_screenshot_flag) +/* 0C5114 7F0905E4 0C000F00 */ jal set_coloroutputmode_16bit +/* 0C5118 7F0905E8 AC206FFC */ sw $zero, %lo(grab_rgb_screenshot_flag)($at) +/* 0C511C 7F0905EC 0C0038B4 */ jal osViBlack +/* 0C5120 7F0905F0 00002025 */ move $a0, $zero +.L7F0905F4: +/* 0C5124 7F0905F4 3C038003 */ lui $v1, %hi(grab_jpeg_screenshot_flag) +/* 0C5128 7F0905F8 8C637000 */ lw $v1, %lo(grab_jpeg_screenshot_flag)($v1) +/* 0C512C 7F0905FC 3C018003 */ lui $at, %hi(grab_jpeg_screenshot_flag) +/* 0C5130 7F090600 1060000B */ beqz $v1, .L7F090630 +/* 0C5134 7F090604 38620003 */ xori $v0, $v1, 3 +/* 0C5138 7F090608 24630001 */ addiu $v1, $v1, 1 +/* 0C513C 7F09060C 14400008 */ bnez $v0, .L7F090630 +/* 0C5140 7F090610 AC237000 */ sw $v1, %lo(grab_jpeg_screenshot_flag)($at) +/* 0C5144 7F090614 0C001235 */ jal indy_grab_jpg_32bit +/* 0C5148 7F090618 00000000 */ nop +/* 0C514C 7F09061C 3C018003 */ lui $at, %hi(grab_jpeg_screenshot_flag) +/* 0C5150 7F090620 0C000F00 */ jal set_coloroutputmode_16bit +/* 0C5154 7F090624 AC207000 */ sw $zero, %lo(grab_jpeg_screenshot_flag)($at) +/* 0C5158 7F090628 0C0038B4 */ jal osViBlack +/* 0C515C 7F09062C 00002025 */ move $a0, $zero +.L7F090630: +/* 0C5160 7F090630 3C0E8003 */ lui $t6, %hi(show_debug_menu_flag) +/* 0C5164 7F090634 8DCE6FF8 */ lw $t6, %lo(show_debug_menu_flag)($t6) +/* 0C5168 7F090638 3C048003 */ lui $a0, %hi(debug_limit_controller_input) +/* 0C516C 7F09063C 3C018003 */ lui $at, %hi(show_debug_menu_flag) +/* 0C5170 7F090640 15C00010 */ bnez $t6, .L7F090684 +/* 0C5174 7F090644 24846F6C */ addiu $a0, %lo(debug_limit_controller_input) # addiu $a0, $a0, 0x6f6c +/* 0C5178 7F090648 97A4006A */ lhu $a0, 0x6a($sp) +/* 0C517C 7F09064C 30830008 */ andi $v1, $a0, 8 +/* 0C5180 7F090650 0003102B */ sltu $v0, $zero, $v1 +/* 0C5184 7F090654 10400004 */ beqz $v0, .L7F090668 +/* 0C5188 7F090658 00000000 */ nop +/* 0C518C 7F09065C 30820004 */ andi $v0, $a0, 4 +/* 0C5190 7F090660 0002C02B */ sltu $t8, $zero, $v0 +/* 0C5194 7F090664 03001025 */ move $v0, $t8 +.L7F090668: +/* 0C5198 7F090668 10400003 */ beqz $v0, .L7F090678 +/* 0C519C 7F09066C AC226FF8 */ sw $v0, %lo(show_debug_menu_flag)($at) +/* 0C51A0 7F090670 0FC301F5 */ jal stop_recording_ramrom +/* 0C51A4 7F090674 00000000 */ nop +.L7F090678: +/* 0C51A8 7F090678 3C028003 */ lui $v0, %hi(show_debug_menu_flag) +/* 0C51AC 7F09067C 1000021B */ b .L7F090EEC +/* 0C51B0 7F090680 8C426FF8 */ lw $v0, %lo(show_debug_menu_flag)($v0) +.L7F090684: +/* 0C51B4 7F090684 8C820000 */ lw $v0, ($a0) +/* 0C51B8 7F090688 2403FFFE */ li $v1, -2 +/* 0C51BC 7F09068C 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C51C0 7F090690 50620004 */ beql $v1, $v0, .L7F0906A4 +/* 0C51C4 7F090694 97B9006E */ lhu $t9, 0x6e($sp) +/* 0C51C8 7F090698 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +/* 0C51CC 7F09069C AC830000 */ sw $v1, ($a0) +/* 0C51D0 7F0906A0 97B9006E */ lhu $t9, 0x6e($sp) +.L7F0906A4: +/* 0C51D4 7F0906A4 33280200 */ andi $t0, $t9, 0x200 +/* 0C51D8 7F0906A8 11000007 */ beqz $t0, .L7F0906C8 +/* 0C51DC 7F0906AC AFB90018 */ sw $t9, 0x18($sp) +/* 0C51E0 7F0906B0 0FC240E7 */ jal sub_GAME_7F09039C +/* 0C51E4 7F0906B4 00000000 */ nop +/* 0C51E8 7F0906B8 3C048003 */ lui $a0, %hi(debug_limit_controller_input) +/* 0C51EC 7F0906BC 24846F6C */ addiu $a0, %lo(debug_limit_controller_input) # addiu $a0, $a0, 0x6f6c +/* 0C51F0 7F0906C0 2403FFFE */ li $v1, -2 +/* 0C51F4 7F0906C4 AC830000 */ sw $v1, ($a0) +.L7F0906C8: +/* 0C51F8 7F0906C8 8FA90018 */ lw $t1, 0x18($sp) +/* 0C51FC 7F0906CC 312A0100 */ andi $t2, $t1, 0x100 +/* 0C5200 7F0906D0 51400008 */ beql $t2, $zero, .L7F0906F4 +/* 0C5204 7F0906D4 8FAB0018 */ lw $t3, 0x18($sp) +/* 0C5208 7F0906D8 0FC240B0 */ jal sub_GAME_7F0902C0 +/* 0C520C 7F0906DC 00000000 */ nop +/* 0C5210 7F0906E0 3C048003 */ lui $a0, %hi(debug_limit_controller_input) +/* 0C5214 7F0906E4 24846F6C */ addiu $a0, %lo(debug_limit_controller_input) # addiu $a0, $a0, 0x6f6c +/* 0C5218 7F0906E8 2403FFFE */ li $v1, -2 +/* 0C521C 7F0906EC AC830000 */ sw $v1, ($a0) +/* 0C5220 7F0906F0 8FAB0018 */ lw $t3, 0x18($sp) +.L7F0906F4: +/* 0C5224 7F0906F4 316C0800 */ andi $t4, $t3, 0x800 +/* 0C5228 7F0906F8 51800008 */ beql $t4, $zero, .L7F09071C +/* 0C522C 7F0906FC 8FAD0018 */ lw $t5, 0x18($sp) +/* 0C5230 7F090700 0FC24072 */ jal sub_GAME_7F0901C8 +/* 0C5234 7F090704 00000000 */ nop +/* 0C5238 7F090708 3C048003 */ lui $a0, %hi(debug_limit_controller_input) +/* 0C523C 7F09070C 24846F6C */ addiu $a0, %lo(debug_limit_controller_input) # addiu $a0, $a0, 0x6f6c +/* 0C5240 7F090710 2403FFFE */ li $v1, -2 +/* 0C5244 7F090714 AC830000 */ sw $v1, ($a0) +/* 0C5248 7F090718 8FAD0018 */ lw $t5, 0x18($sp) +.L7F09071C: +/* 0C524C 7F09071C 31AE0400 */ andi $t6, $t5, 0x400 +/* 0C5250 7F090720 51C00008 */ beql $t6, $zero, .L7F090744 +/* 0C5254 7F090724 8FAF0018 */ lw $t7, 0x18($sp) +/* 0C5258 7F090728 0FC24092 */ jal sub_GAME_7F090248 +/* 0C525C 7F09072C 00000000 */ nop +/* 0C5260 7F090730 3C048003 */ lui $a0, %hi(debug_limit_controller_input) +/* 0C5264 7F090734 24846F6C */ addiu $a0, %lo(debug_limit_controller_input) # addiu $a0, $a0, 0x6f6c +/* 0C5268 7F090738 2403FFFE */ li $v1, -2 +/* 0C526C 7F09073C AC830000 */ sw $v1, ($a0) +/* 0C5270 7F090740 8FAF0018 */ lw $t7, 0x18($sp) +.L7F090744: +/* 0C5274 7F090744 31F89000 */ andi $t8, $t7, 0x9000 +/* 0C5278 7F090748 530001CB */ beql $t8, $zero, .L7F090E78 +/* 0C527C 7F09074C 8FB80018 */ lw $t8, 0x18($sp) +/* 0C5280 7F090750 0FC2406C */ jal get_highlighted_debug_option +/* 0C5284 7F090754 00000000 */ nop +/* 0C5288 7F090758 2C41004D */ sltiu $at, $v0, 0x4d +/* 0C528C 7F09075C 102001C5 */ beqz $at, .L7F090E74 +/* 0C5290 7F090760 0002C880 */ sll $t9, $v0, 2 +/* 0C5294 7F090764 3C018005 */ lui $at, %hi(jpt_debug_menu_options) +/* 0C5298 7F090768 00390821 */ addu $at, $at, $t9 +/* 0C529C 7F09076C 8C3956FC */ lw $t9, %lo(jpt_debug_menu_options)($at) +/* 0C52A0 7F090770 03200008 */ jr $t9 +/* 0C52A4 7F090774 00000000 */ nop +debug_stanview: +/* 0C52A8 7F090778 0FC24131 */ jal sub_GAME_7F0904C4 +/* 0C52AC 7F09077C 00000000 */ nop +/* 0C52B0 7F090780 100001BD */ b .L7F090E78 +/* 0C52B4 7F090784 8FB80018 */ lw $t8, 0x18($sp) +debug_bondview: +/* 0C52B8 7F090788 0FC24142 */ jal sub_GAME_7F090508 +/* 0C52BC 7F09078C 00000000 */ nop +/* 0C52C0 7F090790 100001B9 */ b .L7F090E78 +/* 0C52C4 7F090794 8FB80018 */ lw $t8, 0x18($sp) +.L7F090798: +/* 0C52C8 7F090798 0FC24153 */ jal sub_GAME_7F09054C +/* 0C52CC 7F09079C 00000000 */ nop +/* 0C52D0 7F0907A0 100001B5 */ b .L7F090E78 +/* 0C52D4 7F0907A4 8FB80018 */ lw $t8, 0x18($sp) +debug_level: +/* 0C52D8 7F0907A8 0FC2406C */ jal get_highlighted_debug_option +/* 0C52DC 7F0907AC 00000000 */ nop +/* 0C52E0 7F0907B0 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C52E4 7F0907B4 100001AF */ b .L7F090E74 +/* 0C52E8 7F0907B8 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +.L7F0907BC: +/* 0C52EC 7F0907BC 0FC2406C */ jal get_highlighted_debug_option +/* 0C52F0 7F0907C0 00000000 */ nop +/* 0C52F4 7F0907C4 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C52F8 7F0907C8 100001AA */ b .L7F090E74 +/* 0C52FC 7F0907CC AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_scale: +/* 0C5300 7F0907D0 0FC2406C */ jal get_highlighted_debug_option +/* 0C5304 7F0907D4 00000000 */ nop +/* 0C5308 7F0907D8 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C530C 7F0907DC 100001A5 */ b .L7F090E74 +/* 0C5310 7F0907E0 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_selectanim: +/* 0C5314 7F0907E4 0FC2406C */ jal get_highlighted_debug_option +/* 0C5318 7F0907E8 00000000 */ nop +/* 0C531C 7F0907EC 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C5320 7F0907F0 100001A0 */ b .L7F090E74 +/* 0C5324 7F0907F4 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_gunpos: +/* 0C5328 7F0907F8 0FC2406C */ jal get_highlighted_debug_option +/* 0C532C 7F0907FC 00000000 */ nop +/* 0C5330 7F090800 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C5334 7F090804 1000019B */ b .L7F090E74 +/* 0C5338 7F090808 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_flashcolor: +/* 0C533C 7F09080C 0FC2406C */ jal get_highlighted_debug_option +/* 0C5340 7F090810 00000000 */ nop +/* 0C5344 7F090814 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C5348 7F090818 10000196 */ b .L7F090E74 +/* 0C534C 7F09081C AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_hitcolor: +/* 0C5350 7F090820 0FC2406C */ jal get_highlighted_debug_option +/* 0C5354 7F090824 00000000 */ nop +/* 0C5358 7F090828 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C535C 7F09082C 10000191 */ b .L7F090E74 +/* 0C5360 7F090830 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +.L7F090834: +/* 0C5364 7F090834 0FC2406C */ jal get_highlighted_debug_option +/* 0C5368 7F090838 00000000 */ nop +/* 0C536C 7F09083C 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C5370 7F090840 1000018C */ b .L7F090E74 +/* 0C5374 7F090844 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_screenpos: +/* 0C5378 7F090848 0FC2406C */ jal get_highlighted_debug_option +/* 0C537C 7F09084C 00000000 */ nop +/* 0C5380 7F090850 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C5384 7F090854 10000187 */ b .L7F090E74 +/* 0C5388 7F090858 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_music: +/* 0C538C 7F09085C 0FC2406C */ jal get_highlighted_debug_option +/* 0C5390 7F090860 00000000 */ nop +/* 0C5394 7F090864 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C5398 7F090868 10000182 */ b .L7F090E74 +/* 0C539C 7F09086C AC226F70 */ sw $v0, %lo(debug_unknown)($at) +portal_close_inf_approx: +/* 0C53A0 7F090870 3C028003 */ lui $v0, %hi(debug_portal_flag) +/* 0C53A4 7F090874 24426FD4 */ addiu $v0, %lo(debug_portal_flag) # addiu $v0, $v0, 0x6fd4 +/* 0C53A8 7F090878 8C480000 */ lw $t0, ($v0) +/* 0C53AC 7F09087C 39090001 */ xori $t1, $t0, 1 +/* 0C53B0 7F090880 1000017C */ b .L7F090E74 +/* 0C53B4 7F090884 AC490000 */ sw $t1, ($v0) +debug_sfx: +/* 0C53B8 7F090888 0FC2406C */ jal get_highlighted_debug_option +/* 0C53BC 7F09088C 00000000 */ nop +/* 0C53C0 7F090890 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C53C4 7F090894 10000177 */ b .L7F090E74 +/* 0C53C8 7F090898 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_invincible: +/* 0C53CC 7F09089C 0FC227D6 */ jal get_bondata_invincible_flag +/* 0C53D0 7F0908A0 00000000 */ nop +/* 0C53D4 7F0908A4 0FC227D2 */ jal set_bondata_invincible_flag +/* 0C53D8 7F0908A8 2C440001 */ sltiu $a0, $v0, 1 +/* 0C53DC 7F0908AC 10000172 */ b .L7F090E78 +/* 0C53E0 7F0908B0 8FB80018 */ lw $t8, 0x18($sp) +debug_visible: +/* 0C53E4 7F0908B4 0FC227DD */ jal get_invisible_to_guards_flag +/* 0C53E8 7F0908B8 00000000 */ nop +/* 0C53EC 7F0908BC 0FC227DA */ jal set_invisible_to_guards_flag +/* 0C53F0 7F0908C0 2C440001 */ sltiu $a0, $v0, 1 +/* 0C53F4 7F0908C4 1000016C */ b .L7F090E78 +/* 0C53F8 7F0908C8 8FB80018 */ lw $t8, 0x18($sp) +debug_collisions: +/* 0C53FC 7F0908CC 0FC227E3 */ jal get_obj_collision_flag +/* 0C5400 7F0908D0 00000000 */ nop +/* 0C5404 7F0908D4 0FC227E0 */ jal set_obj_collision_flag +/* 0C5408 7F0908D8 2C440001 */ sltiu $a0, $v0, 1 +/* 0C540C 7F0908DC 10000166 */ b .L7F090E78 +/* 0C5410 7F0908E0 8FB80018 */ lw $t8, 0x18($sp) +debug_allguns: +/* 0C5414 7F0908E4 0FC26919 */ jal get_num_players +/* 0C5418 7F0908E8 AFA0005C */ sw $zero, 0x5c($sp) +/* 0C541C 7F0908EC 58400162 */ blezl $v0, .L7F090E78 +/* 0C5420 7F0908F0 8FB80018 */ lw $t8, 0x18($sp) +.L7F0908F4: +/* 0C5424 7F0908F4 0FC26C43 */ jal set_cur_player +/* 0C5428 7F0908F8 8FA4005C */ lw $a0, 0x5c($sp) +/* 0C542C 7F0908FC 0FC230AB */ jal get_BONDdata_allguns_flag +/* 0C5430 7F090900 00000000 */ nop +/* 0C5434 7F090904 0FC230A7 */ jal set_BONDdata_allguns_flag +/* 0C5438 7F090908 2C440001 */ sltiu $a0, $v0, 1 +/* 0C543C 7F09090C 8FAA005C */ lw $t2, 0x5c($sp) +/* 0C5440 7F090910 254B0001 */ addiu $t3, $t2, 1 +/* 0C5444 7F090914 0FC26919 */ jal get_num_players +/* 0C5448 7F090918 AFAB005C */ sw $t3, 0x5c($sp) +/* 0C544C 7F09091C 8FAC005C */ lw $t4, 0x5c($sp) +/* 0C5450 7F090920 0182082A */ slt $at, $t4, $v0 +/* 0C5454 7F090924 1420FFF3 */ bnez $at, .L7F0908F4 +/* 0C5458 7F090928 00000000 */ nop +/* 0C545C 7F09092C 10000152 */ b .L7F090E78 +/* 0C5460 7F090930 8FB80018 */ lw $t8, 0x18($sp) +debug_maxammo: +/* 0C5464 7F090934 0FC26C54 */ jal get_cur_playernum +/* 0C5468 7F090938 00000000 */ nop +/* 0C546C 7F09093C AFA20054 */ sw $v0, 0x54($sp) +/* 0C5470 7F090940 0FC26919 */ jal get_num_players +/* 0C5474 7F090944 AFA00058 */ sw $zero, 0x58($sp) +/* 0C5478 7F090948 1840000D */ blez $v0, .L7F090980 +/* 0C547C 7F09094C 00000000 */ nop +.L7F090950: +/* 0C5480 7F090950 0FC26C43 */ jal set_cur_player +/* 0C5484 7F090954 8FA40058 */ lw $a0, 0x58($sp) +/* 0C5488 7F090958 0FC1A4BC */ jal set_max_ammo_for_cur_player +/* 0C548C 7F09095C 00000000 */ nop +/* 0C5490 7F090960 8FAD0058 */ lw $t5, 0x58($sp) +/* 0C5494 7F090964 25AE0001 */ addiu $t6, $t5, 1 +/* 0C5498 7F090968 0FC26919 */ jal get_num_players +/* 0C549C 7F09096C AFAE0058 */ sw $t6, 0x58($sp) +/* 0C54A0 7F090970 8FAF0058 */ lw $t7, 0x58($sp) +/* 0C54A4 7F090974 01E2082A */ slt $at, $t7, $v0 +/* 0C54A8 7F090978 1420FFF5 */ bnez $at, .L7F090950 +/* 0C54AC 7F09097C 00000000 */ nop +.L7F090980: +/* 0C54B0 7F090980 0FC26C43 */ jal set_cur_player +/* 0C54B4 7F090984 8FA40054 */ lw $a0, 0x54($sp) +/* 0C54B8 7F090988 1000013B */ b .L7F090E78 +/* 0C54BC 7F09098C 8FB80018 */ lw $t8, 0x18($sp) +debug_displayspeed: +/* 0C54C0 7F090990 3C028003 */ lui $v0, %hi(memusage_display_flag) +/* 0C54C4 7F090994 24426F74 */ addiu $v0, %lo(memusage_display_flag) # addiu $v0, $v0, 0x6f74 +/* 0C54C8 7F090998 8C580000 */ lw $t8, ($v0) +/* 0C54CC 7F09099C 3B190001 */ xori $t9, $t8, 1 +/* 0C54D0 7F0909A0 17200134 */ bnez $t9, .L7F090E74 +/* 0C54D4 7F0909A4 AC590000 */ sw $t9, ($v0) +/* 0C54D8 7F0909A8 0C002BC0 */ jal blank_debug_buffer_chars +/* 0C54DC 7F0909AC 00000000 */ nop +/* 0C54E0 7F0909B0 10000131 */ b .L7F090E78 +/* 0C54E4 7F0909B4 8FB80018 */ lw $t8, 0x18($sp) +debug_dodrawbg: +/* 0C54E8 7F0909B8 3C028003 */ lui $v0, %hi(debug_do_draw_bg) +/* 0C54EC 7F0909BC 24426F78 */ addiu $v0, %lo(debug_do_draw_bg) # addiu $v0, $v0, 0x6f78 +/* 0C54F0 7F0909C0 8C490000 */ lw $t1, ($v0) +/* 0C54F4 7F0909C4 392A0001 */ xori $t2, $t1, 1 +/* 0C54F8 7F0909C8 1000012A */ b .L7F090E74 +/* 0C54FC 7F0909CC AC4A0000 */ sw $t2, ($v0) +debug_dodrawobj: +/* 0C5500 7F0909D0 3C028003 */ lui $v0, %hi(debug_do_draw_obj) +/* 0C5504 7F0909D4 24426F7C */ addiu $v0, %lo(debug_do_draw_obj) # addiu $v0, $v0, 0x6f7c +/* 0C5508 7F0909D8 8C4B0000 */ lw $t3, ($v0) +/* 0C550C 7F0909DC 396C0001 */ xori $t4, $t3, 1 +/* 0C5510 7F0909E0 10000124 */ b .L7F090E74 +/* 0C5514 7F0909E4 AC4C0000 */ sw $t4, ($v0) +debug_stanhit: +/* 0C5518 7F0909E8 3C028003 */ lui $v0, %hi(debug_stanhit_flag) +/* 0C551C 7F0909EC 24426F84 */ addiu $v0, %lo(debug_stanhit_flag) # addiu $v0, $v0, 0x6f84 +/* 0C5520 7F0909F0 8C4D0000 */ lw $t5, ($v0) +/* 0C5524 7F0909F4 39AE0001 */ xori $t6, $t5, 1 +/* 0C5528 7F0909F8 1000011E */ b .L7F090E74 +/* 0C552C 7F0909FC AC4E0000 */ sw $t6, ($v0) +debug_stanregion: +/* 0C5530 7F090A00 3C028003 */ lui $v0, %hi(debug_stanregion_flag) +/* 0C5534 7F090A04 24426F88 */ addiu $v0, %lo(debug_stanregion_flag) # addiu $v0, $v0, 0x6f88 +/* 0C5538 7F090A08 8C4F0000 */ lw $t7, ($v0) +/* 0C553C 7F090A0C 39F80001 */ xori $t8, $t7, 1 +/* 0C5540 7F090A10 10000118 */ b .L7F090E74 +/* 0C5544 7F090A14 AC580000 */ sw $t8, ($v0) +debug_turbo: +/* 0C5548 7F090A18 3C028003 */ lui $v0, %hi(turbo_mode_flag) +/* 0C554C 7F090A1C 24426F8C */ addiu $v0, %lo(turbo_mode_flag) # addiu $v0, $v0, 0x6f8c +/* 0C5550 7F090A20 8C590000 */ lw $t9, ($v0) +/* 0C5554 7F090A24 3B280001 */ xori $t0, $t9, 1 +/* 0C5558 7F090A28 10000112 */ b .L7F090E74 +/* 0C555C 7F090A2C AC480000 */ sw $t0, ($v0) +debug_printmanpos: +/* 0C5560 7F090A30 3C028003 */ lui $v0, %hi(debug_man_pos_flag) +/* 0C5564 7F090A34 24426F90 */ addiu $v0, %lo(debug_man_pos_flag) # addiu $v0, $v0, 0x6f90 +/* 0C5568 7F090A38 8C490000 */ lw $t1, ($v0) +/* 0C556C 7F090A3C 392A0001 */ xori $t2, $t1, 1 +/* 0C5570 7F090A40 1000010C */ b .L7F090E74 +/* 0C5574 7F090A44 AC4A0000 */ sw $t2, ($v0) +debug_testingmanpos: +/* 0C5578 7F090A48 3C028003 */ lui $v0, %hi(debug_testingmanpos_flag) +/* 0C557C 7F090A4C 24426FC8 */ addiu $v0, %lo(debug_testingmanpos_flag) # addiu $v0, $v0, 0x6fc8 +/* 0C5580 7F090A50 8C4B0000 */ lw $t3, ($v0) +/* 0C5584 7F090A54 396C0001 */ xori $t4, $t3, 1 +/* 0C5588 7F090A58 10000106 */ b .L7F090E74 +/* 0C558C 7F090A5C AC4C0000 */ sw $t4, ($v0) +debug_playtitle: +/* 0C5590 7F090A60 0C001A54 */ jal set_loaded_stage +/* 0C5594 7F090A64 2404005A */ li $a0, 90 +/* 0C5598 7F090A68 10000103 */ b .L7F090E78 +/* 0C559C 7F090A6C 8FB80018 */ lw $t8, 0x18($sp) +debug_bonddie: +/* 0C55A0 7F090A70 0FC225EA */ jal kill_current_player +/* 0C55A4 7F090A74 00000000 */ nop +/* 0C55A8 7F090A78 100000FF */ b .L7F090E78 +/* 0C55AC 7F090A7C 8FB80018 */ lw $t8, 0x18($sp) +debug_prroomloads: +/* 0C55B0 7F090A80 3C028003 */ lui $v0, %hi(debug_prroomloads_flag) +/* 0C55B4 7F090A84 24426F94 */ addiu $v0, %lo(debug_prroomloads_flag) # addiu $v0, $v0, 0x6f94 +/* 0C55B8 7F090A88 8C4D0000 */ lw $t5, ($v0) +/* 0C55BC 7F090A8C 39AE0001 */ xori $t6, $t5, 1 +/* 0C55C0 7F090A90 100000F8 */ b .L7F090E74 +/* 0C55C4 7F090A94 AC4E0000 */ sw $t6, ($v0) +debug_showmemuse: +/* 0C55C8 7F090A98 0C0017FD */ jal enable_show_mem_use_flag +/* 0C55CC 7F090A9C 00000000 */ nop +/* 0C55D0 7F090AA0 100000F5 */ b .L7F090E78 +/* 0C55D4 7F090AA4 8FB80018 */ lw $t8, 0x18($sp) +debug_showmembars: +/* 0C55D8 7F090AA8 0C001801 */ jal mem_bars_flag_toggle +/* 0C55DC 7F090AAC 00000000 */ nop +/* 0C55E0 7F090AB0 100000F1 */ b .L7F090E78 +/* 0C55E4 7F090AB4 8FB80018 */ lw $t8, 0x18($sp) +debug_grabrgb: +/* 0C55E8 7F090AB8 24030001 */ li $v1, 1 +/* 0C55EC 7F090ABC 3C018003 */ lui $at, %hi(grab_rgb_screenshot_flag) +/* 0C55F0 7F090AC0 AC236FFC */ sw $v1, %lo(grab_rgb_screenshot_flag)($at) +/* 0C55F4 7F090AC4 0C0038B4 */ jal osViBlack +/* 0C55F8 7F090AC8 24040001 */ li $a0, 1 +/* 0C55FC 7F090ACC 0C000F04 */ jal set_coloroutputmode_32bit +/* 0C5600 7F090AD0 00000000 */ nop +/* 0C5604 7F090AD4 100000E8 */ b .L7F090E78 +/* 0C5608 7F090AD8 8FB80018 */ lw $t8, 0x18($sp) +debug_grabjpeg: +/* 0C560C 7F090ADC 24030001 */ li $v1, 1 +/* 0C5610 7F090AE0 3C018003 */ lui $at, %hi(grab_jpeg_screenshot_flag) +/* 0C5614 7F090AE4 AC237000 */ sw $v1, %lo(grab_jpeg_screenshot_flag)($at) +/* 0C5618 7F090AE8 0C0038B4 */ jal osViBlack +/* 0C561C 7F090AEC 24040001 */ li $a0, 1 +/* 0C5620 7F090AF0 0C000F04 */ jal set_coloroutputmode_32bit +/* 0C5624 7F090AF4 00000000 */ nop +/* 0C5628 7F090AF8 100000DF */ b .L7F090E78 +/* 0C562C 7F090AFC 8FB80018 */ lw $t8, 0x18($sp) +debug_taskgrab: +/* 0C5630 7F090B00 3C028003 */ lui $v0, %hi(debug_enable_taskgrab_flag) +/* 0C5634 7F090B04 24426FC4 */ addiu $v0, %lo(debug_enable_taskgrab_flag) # addiu $v0, $v0, 0x6fc4 +/* 0C5638 7F090B08 8C4F0000 */ lw $t7, ($v0) +/* 0C563C 7F090B0C 39F80001 */ xori $t8, $t7, 1 +/* 0C5640 7F090B10 100000D8 */ b .L7F090E74 +/* 0C5644 7F090B14 AC580000 */ sw $t8, ($v0) +debug_recordramrom: +/* 0C5648 7F090B18 0FC301EF */ jal setRamRomRecordSlot +/* 0C564C 7F090B1C 00002025 */ move $a0, $zero +/* 0C5650 7F090B20 100000D5 */ b .L7F090E78 +/* 0C5654 7F090B24 8FB80018 */ lw $t8, 0x18($sp) +debug_ramrom_record1: +/* 0C5658 7F090B28 0FC301EF */ jal setRamRomRecordSlot +/* 0C565C 7F090B2C 24040001 */ li $a0, 1 +/* 0C5660 7F090B30 100000D1 */ b .L7F090E78 +/* 0C5664 7F090B34 8FB80018 */ lw $t8, 0x18($sp) +debug_ramrom_record2: +/* 0C5668 7F090B38 0FC301EF */ jal setRamRomRecordSlot +/* 0C566C 7F090B3C 24040002 */ li $a0, 2 +/* 0C5670 7F090B40 100000CD */ b .L7F090E78 +/* 0C5674 7F090B44 8FB80018 */ lw $t8, 0x18($sp) +debug_ramrom_record3: +/* 0C5678 7F090B48 0FC301EF */ jal setRamRomRecordSlot +/* 0C567C 7F090B4C 24040003 */ li $a0, 3 +/* 0C5680 7F090B50 100000C9 */ b .L7F090E78 +/* 0C5684 7F090B54 8FB80018 */ lw $t8, 0x18($sp) +debug_replayramrom: +/* 0C5688 7F090B58 0FC3022A */ jal replay_recorded_ramrom_from_indy +/* 0C568C 7F090B5C 00000000 */ nop +/* 0C5690 7F090B60 100000C5 */ b .L7F090E78 +/* 0C5694 7F090B64 8FB80018 */ lw $t8, 0x18($sp) +debug_saveramrom: +/* 0C5698 7F090B68 0FC2FF58 */ jal save_ramrom_to_devtool +/* 0C569C 7F090B6C 00000000 */ nop +/* 0C56A0 7F090B70 100000C1 */ b .L7F090E78 +/* 0C56A4 7F090B74 8FB80018 */ lw $t8, 0x18($sp) +debug_loadramrom: +/* 0C56A8 7F090B78 0FC2FF80 */ jal load_ramrom_from_devtool +/* 0C56AC 7F090B7C 00000000 */ nop +/* 0C56B0 7F090B80 100000BD */ b .L7F090E78 +/* 0C56B4 7F090B84 8FB80018 */ lw $t8, 0x18($sp) +debug_autoyaim: +/* 0C56B8 7F090B88 0FC1F160 */ jal get_BONDdata_autoaim_y +/* 0C56BC 7F090B8C 00000000 */ nop +/* 0C56C0 7F090B90 0FC1F15C */ jal set_BONDdata_autoaim_y +/* 0C56C4 7F090B94 2C440001 */ sltiu $a0, $v0, 1 +/* 0C56C8 7F090B98 100000B7 */ b .L7F090E78 +/* 0C56CC 7F090B9C 8FB80018 */ lw $t8, 0x18($sp) +debug_autoxaim: +/* 0C56D0 7F090BA0 0FC1F19A */ jal get_BONDdata_autoaim_x +/* 0C56D4 7F090BA4 00000000 */ nop +/* 0C56D8 7F090BA8 0FC1F196 */ jal set_BONDdata_autoaim_x +/* 0C56DC 7F090BAC 2C440001 */ sltiu $a0, $v0, 1 +/* 0C56E0 7F090BB0 100000B1 */ b .L7F090E78 +/* 0C56E4 7F090BB4 8FB80018 */ lw $t8, 0x18($sp) +debug_007: +/* 0C56E8 7F090BB8 3C028003 */ lui $v0, %hi(debug_007_unlock_flag) +/* 0C56EC 7F090BBC 24426FAC */ addiu $v0, %lo(debug_007_unlock_flag) # addiu $v0, $v0, 0x6fac +/* 0C56F0 7F090BC0 8C590000 */ lw $t9, ($v0) +/* 0C56F4 7F090BC4 3B280001 */ xori $t0, $t9, 1 +/* 0C56F8 7F090BC8 100000AA */ b .L7F090E74 +/* 0C56FC 7F090BCC AC480000 */ sw $t0, ($v0) +debug_agent: +/* 0C5700 7F090BD0 3C028003 */ lui $v0, %hi(debug_enable_agent_levels_flag) +/* 0C5704 7F090BD4 24426FB0 */ addiu $v0, %lo(debug_enable_agent_levels_flag) # addiu $v0, $v0, 0x6fb0 +/* 0C5708 7F090BD8 8C490000 */ lw $t1, ($v0) +/* 0C570C 7F090BDC 392A0001 */ xori $t2, $t1, 1 +/* 0C5710 7F090BE0 100000A4 */ b .L7F090E74 +/* 0C5714 7F090BE4 AC4A0000 */ sw $t2, ($v0) +debug_all: +/* 0C5718 7F090BE8 3C028003 */ lui $v0, %hi(debug_enable_all_levels_flag) +/* 0C571C 7F090BEC 24426FB4 */ addiu $v0, %lo(debug_enable_all_levels_flag) # addiu $v0, $v0, 0x6fb4 +/* 0C5720 7F090BF0 8C4B0000 */ lw $t3, ($v0) +/* 0C5724 7F090BF4 396C0001 */ xori $t4, $t3, 1 +/* 0C5728 7F090BF8 1000009E */ b .L7F090E74 +/* 0C572C 7F090BFC AC4C0000 */ sw $t4, ($v0) +fast_bond_debug: +/* 0C5730 7F090C00 3C028003 */ lui $v0, %hi(debug_fast_bond_flag) +/* 0C5734 7F090C04 24426FCC */ addiu $v0, %lo(debug_fast_bond_flag) # addiu $v0, $v0, 0x6fcc +/* 0C5738 7F090C08 8C4D0000 */ lw $t5, ($v0) +/* 0C573C 7F090C0C 39AE0001 */ xori $t6, $t5, 1 +/* 0C5740 7F090C10 10000098 */ b .L7F090E74 +/* 0C5744 7F090C14 AC4E0000 */ sw $t6, ($v0) +debug_objectives: +/* 0C5748 7F090C18 3C028003 */ lui $v0, %hi(debug_all_obj_complete_flag) +/* 0C574C 7F090C1C 24426FD0 */ addiu $v0, %lo(debug_all_obj_complete_flag) # addiu $v0, $v0, 0x6fd0 +/* 0C5750 7F090C20 8C4F0000 */ lw $t7, ($v0) +/* 0C5754 7F090C24 39F80001 */ xori $t8, $t7, 1 +/* 0C5758 7F090C28 10000092 */ b .L7F090E74 +/* 0C575C 7F090C2C AC580000 */ sw $t8, ($v0) +debug_showpatrols: +/* 0C5760 7F090C30 0FC07D5A */ jal get_show_patrols_flag +/* 0C5764 7F090C34 00000000 */ nop +/* 0C5768 7F090C38 0FC07D57 */ jal set_show_patrols_flag +/* 0C576C 7F090C3C 2C440001 */ sltiu $a0, $v0, 1 +/* 0C5770 7F090C40 1000008D */ b .L7F090E78 +/* 0C5774 7F090C44 8FB80018 */ lw $t8, 0x18($sp) +debug_intro: +/* 0C5778 7F090C48 0FC1EA6E */ jal set_camera_mode +/* 0C577C 7F090C4C 24040003 */ li $a0, 3 +/* 0C5780 7F090C50 10000089 */ b .L7F090E78 +/* 0C5784 7F090C54 8FB80018 */ lw $t8, 0x18($sp) +debug_intropos: +/* 0C5788 7F090C58 3C198003 */ lui $t9, %hi(debug_render_raster) +/* 0C578C 7F090C5C 8F396F64 */ lw $t9, %lo(debug_render_raster)($t9) +/* 0C5790 7F090C60 57200085 */ bnezl $t9, .L7F090E78 +/* 0C5794 7F090C64 8FB80018 */ lw $t8, 0x18($sp) +/* 0C5798 7F090C68 0FC24586 */ jal sub_GAME_7F091618 +/* 0C579C 7F090C6C 00000000 */ nop +/* 0C57A0 7F090C70 10000081 */ b .L7F090E78 +/* 0C57A4 7F090C74 8FB80018 */ lw $t8, 0x18($sp) +debug_worldpos: +/* 0C57A8 7F090C78 3C088003 */ lui $t0, %hi(debug_render_raster) +/* 0C57AC 7F090C7C 8D086F64 */ lw $t0, %lo(debug_render_raster)($t0) +/* 0C57B0 7F090C80 15000005 */ bnez $t0, .L7F090C98 +/* 0C57B4 7F090C84 00000000 */ nop +/* 0C57B8 7F090C88 0FC2459B */ jal sub_GAME_7F09166C +/* 0C57BC 7F090C8C 00000000 */ nop +/* 0C57C0 7F090C90 10000079 */ b .L7F090E78 +/* 0C57C4 7F090C94 8FB80018 */ lw $t8, 0x18($sp) +.L7F090C98: +/* 0C57C8 7F090C98 0FC225E6 */ jal get_curplayer_positiondata +/* 0C57CC 7F090C9C 00000000 */ nop +/* 0C57D0 7F090CA0 10400074 */ beqz $v0, .L7F090E74 +/* 0C57D4 7F090CA4 00401825 */ move $v1, $v0 +/* 0C57D8 7F090CA8 3C028003 */ lui $v0, %hi(player_pos_x) +/* 0C57DC 7F090CAC 24427004 */ addiu $v0, %lo(player_pos_x) # addiu $v0, $v0, 0x7004 +/* 0C57E0 7F090CB0 C4460000 */ lwc1 $f6, ($v0) +/* 0C57E4 7F090CB4 C4640008 */ lwc1 $f4, 8($v1) +/* 0C57E8 7F090CB8 C44A0004 */ lwc1 $f10, 4($v0) +/* 0C57EC 7F090CBC C468000C */ lwc1 $f8, 0xc($v1) +/* 0C57F0 7F090CC0 46062001 */ sub.s $f0, $f4, $f6 +/* 0C57F4 7F090CC4 C4520008 */ lwc1 $f18, 8($v0) +/* 0C57F8 7F090CC8 C4700010 */ lwc1 $f16, 0x10($v1) +/* 0C57FC 7F090CCC 460A4081 */ sub.s $f2, $f8, $f10 +/* 0C5800 7F090CD0 46000102 */ mul.s $f4, $f0, $f0 +/* 0C5804 7F090CD4 AFA30050 */ sw $v1, 0x50($sp) +/* 0C5808 7F090CD8 46128381 */ sub.s $f14, $f16, $f18 +/* 0C580C 7F090CDC 46021182 */ mul.s $f6, $f2, $f2 +/* 0C5810 7F090CE0 46062200 */ add.s $f8, $f4, $f6 +/* 0C5814 7F090CE4 460E7282 */ mul.s $f10, $f14, $f14 +/* 0C5818 7F090CE8 0C007DF8 */ jal sqrtf +/* 0C581C 7F090CEC 460A4300 */ add.s $f12, $f8, $f10 +/* 0C5820 7F090CF0 8FA30050 */ lw $v1, 0x50($sp) +/* 0C5824 7F090CF4 3C028003 */ lui $v0, %hi(player_pos_x) +/* 0C5828 7F090CF8 24427004 */ addiu $v0, %lo(player_pos_x) # addiu $v0, $v0, 0x7004 +/* 0C582C 7F090CFC C4700008 */ lwc1 $f16, 8($v1) +/* 0C5830 7F090D00 E4500000 */ swc1 $f16, ($v0) +/* 0C5834 7F090D04 C472000C */ lwc1 $f18, 0xc($v1) +/* 0C5838 7F090D08 E4520004 */ swc1 $f18, 4($v0) +/* 0C583C 7F090D0C C4640010 */ lwc1 $f4, 0x10($v1) +/* 0C5840 7F090D10 10000058 */ b .L7F090E74 +/* 0C5844 7F090D14 E4440008 */ swc1 $f4, 8($v0) +debug_chrkeypos: +/* 0C5848 7F090D18 0FC2406C */ jal get_highlighted_debug_option +/* 0C584C 7F090D1C 00000000 */ nop +/* 0C5850 7F090D20 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C5854 7F090D24 10000053 */ b .L7F090E74 +/* 0C5858 7F090D28 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_chrnum: +/* 0C585C 7F090D2C 3C028003 */ lui $v0, %hi(debug_chrnum_flag) +/* 0C5860 7F090D30 24426FB8 */ addiu $v0, %lo(debug_chrnum_flag) # addiu $v0, $v0, 0x6fb8 +/* 0C5864 7F090D34 8C490000 */ lw $t1, ($v0) +/* 0C5868 7F090D38 392A0001 */ xori $t2, $t1, 1 +/* 0C586C 7F090D3C 1000004D */ b .L7F090E74 +/* 0C5870 7F090D40 AC4A0000 */ sw $t2, ($v0) +debug_viscvg: +/* 0C5874 7F090D44 3C028003 */ lui $v0, %hi(debug_VisCVG_flag) +/* 0C5878 7F090D48 24426FA8 */ addiu $v0, %lo(debug_VisCVG_flag) # addiu $v0, $v0, 0x6fa8 +/* 0C587C 7F090D4C 8C4B0000 */ lw $t3, ($v0) +/* 0C5880 7F090D50 396C0001 */ xori $t4, $t3, 1 +/* 0C5884 7F090D54 10000047 */ b .L7F090E74 +/* 0C5888 7F090D58 AC4C0000 */ sw $t4, ($v0) +debug_joy2skyedit: +/* 0C588C 7F090D5C 3C028003 */ lui $v0, %hi(debug_joy2skyedit_flag) +/* 0C5890 7F090D60 24426F98 */ addiu $v0, %lo(debug_joy2skyedit_flag) # addiu $v0, $v0, 0x6f98 +/* 0C5894 7F090D64 8C4D0000 */ lw $t5, ($v0) +/* 0C5898 7F090D68 39AE0001 */ xori $t6, $t5, 1 +/* 0C589C 7F090D6C 10000041 */ b .L7F090E74 +/* 0C58A0 7F090D70 AC4E0000 */ sw $t6, ($v0) +debug_joy2hitsedit: +/* 0C58A4 7F090D74 3C028003 */ lui $v0, %hi(debug_joy2hitsedit_flag) +/* 0C58A8 7F090D78 24426F9C */ addiu $v0, %lo(debug_joy2hitsedit_flag) # addiu $v0, $v0, 0x6f9c +/* 0C58AC 7F090D7C 8C4F0000 */ lw $t7, ($v0) +/* 0C58B0 7F090D80 39F80001 */ xori $t8, $t7, 1 +/* 0C58B4 7F090D84 1000003B */ b .L7F090E74 +/* 0C58B8 7F090D88 AC580000 */ sw $t8, ($v0) +debug_joy2detailedit: +/* 0C58BC 7F090D8C 3C028003 */ lui $v0, %hi(debug_joy2detailedit_flag) +/* 0C58C0 7F090D90 24426FA0 */ addiu $v0, %lo(debug_joy2detailedit_flag) # addiu $v0, $v0, 0x6fa0 +/* 0C58C4 7F090D94 8C590000 */ lw $t9, ($v0) +/* 0C58C8 7F090D98 3B280001 */ xori $t0, $t9, 1 +/* 0C58CC 7F090D9C 10000035 */ b .L7F090E74 +/* 0C58D0 7F090DA0 AC480000 */ sw $t0, ($v0) +debug_explosioninfo: +/* 0C58D4 7F090DA4 3C028003 */ lui $v0, %hi(debug_explosioninfo_flag) +/* 0C58D8 7F090DA8 24426FA4 */ addiu $v0, %lo(debug_explosioninfo_flag) # addiu $v0, $v0, 0x6fa4 +/* 0C58DC 7F090DAC 8C490000 */ lw $t1, ($v0) +/* 0C58E0 7F090DB0 392A0001 */ xori $t2, $t1, 1 +/* 0C58E4 7F090DB4 1000002F */ b .L7F090E74 +/* 0C58E8 7F090DB8 AC4A0000 */ sw $t2, ($v0) +debug_magicfog: +/* 0C58EC 7F090DBC 0FC2406C */ jal get_highlighted_debug_option +/* 0C58F0 7F090DC0 00000000 */ nop +/* 0C58F4 7F090DC4 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C58F8 7F090DC8 1000002A */ b .L7F090E74 +/* 0C58FC 7F090DCC AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_fog: +/* 0C5900 7F090DD0 0FC2406C */ jal get_highlighted_debug_option +/* 0C5904 7F090DD4 00000000 */ nop +/* 0C5908 7F090DD8 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C590C 7F090DDC 10000025 */ b .L7F090E74 +/* 0C5910 7F090DE0 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +debug_gunwatchpos: +/* 0C5914 7F090DE4 3C028003 */ lui $v0, %hi(debug_gunwatchpos_flags) +/* 0C5918 7F090DE8 24426FBC */ addiu $v0, %lo(debug_gunwatchpos_flags) # addiu $v0, $v0, 0x6fbc +/* 0C591C 7F090DEC 8C4B0000 */ lw $t3, ($v0) +/* 0C5920 7F090DF0 396C0001 */ xori $t4, $t3, 1 +/* 0C5924 7F090DF4 1000001F */ b .L7F090E74 +/* 0C5928 7F090DF8 AC4C0000 */ sw $t4, ($v0) +debug_roomblocks: +/* 0C592C 7F090DFC 0FC0F9A6 */ jal removed_debug_roomblocks_feature +/* 0C5930 7F090E00 00000000 */ nop +/* 0C5934 7F090E04 1000001C */ b .L7F090E78 +/* 0C5938 7F090E08 8FB80018 */ lw $t8, 0x18($sp) +debug_profile: +/* 0C593C 7F090E0C 3C028003 */ lui $v0, %hi(debug_profile_flag) +/* 0C5940 7F090E10 24426FC0 */ addiu $v0, %lo(debug_profile_flag) # addiu $v0, $v0, 0x6fc0 +/* 0C5944 7F090E14 8C4D0000 */ lw $t5, ($v0) +/* 0C5948 7F090E18 39AE0001 */ xori $t6, $t5, 1 +/* 0C594C 7F090E1C 11C00005 */ beqz $t6, .L7F090E34 +/* 0C5950 7F090E20 AC4E0000 */ sw $t6, ($v0) +/* 0C5954 7F090E24 0FC24164 */ jal removed_do_debug_profile_flag_false +/* 0C5958 7F090E28 00000000 */ nop +/* 0C595C 7F090E2C 10000012 */ b .L7F090E78 +/* 0C5960 7F090E30 8FB80018 */ lw $t8, 0x18($sp) +.L7F090E34: +/* 0C5964 7F090E34 0FC24166 */ jal removed_do_debug_profile_flag_true +/* 0C5968 7F090E38 00000000 */ nop +/* 0C596C 7F090E3C 1000000E */ b .L7F090E78 +/* 0C5970 7F090E40 8FB80018 */ lw $t8, 0x18($sp) +debug_objload: +/* 0C5974 7F090E44 0FC00496 */ jal debug_object_load_all_models +/* 0C5978 7F090E48 00000000 */ nop +/* 0C597C 7F090E4C 1000000A */ b .L7F090E78 +/* 0C5980 7F090E50 8FB80018 */ lw $t8, 0x18($sp) +debug_weaponload: +/* 0C5984 7F090E54 0FC00503 */ jal debug_weapon_load_table +/* 0C5988 7F090E58 00000000 */ nop +/* 0C598C 7F090E5C 10000006 */ b .L7F090E78 +/* 0C5990 7F090E60 8FB80018 */ lw $t8, 0x18($sp) +debug_introedit: +/* 0C5994 7F090E64 0FC2406C */ jal get_highlighted_debug_option +/* 0C5998 7F090E68 00000000 */ nop +/* 0C599C 7F090E6C 3C018003 */ lui $at, %hi(debug_unknown) +/* 0C59A0 7F090E70 AC226F70 */ sw $v0, %lo(debug_unknown)($at) +def_7F090770: +.L7F090E74: +/* 0C59A4 7F090E74 8FB80018 */ lw $t8, 0x18($sp) +.L7F090E78: +/* 0C59A8 7F090E78 33190003 */ andi $t9, $t8, 3 +/* 0C59AC 7F090E7C 5320000D */ beql $t9, $zero, .L7F090EB4 +/* 0C59B0 7F090E80 8FA90018 */ lw $t1, 0x18($sp) +/* 0C59B4 7F090E84 0FC2406C */ jal get_highlighted_debug_option +/* 0C59B8 7F090E88 00000000 */ nop +/* 0C59BC 7F090E8C 2448FFCE */ addiu $t0, $v0, -0x32 +/* 0C59C0 7F090E90 2D010005 */ sltiu $at, $t0, 5 +/* 0C59C4 7F090E94 10200006 */ beqz $at, .L7F090EB0 +/* 0C59C8 7F090E98 00084080 */ sll $t0, $t0, 2 +/* 0C59CC 7F090E9C 3C018005 */ lui $at, %hi(jpt_80055830) +/* 0C59D0 7F090EA0 00280821 */ addu $at, $at, $t0 +/* 0C59D4 7F090EA4 8C285830 */ lw $t0, %lo(jpt_80055830)($at) +/* 0C59D8 7F090EA8 01000008 */ jr $t0 +/* 0C59DC 7F090EAC 00000000 */ nop +def_7F090EA8: +.L7F090EB0: +/* 0C59E0 7F090EB0 8FA90018 */ lw $t1, 0x18($sp) +.L7F090EB4: +/* 0C59E4 7F090EB4 3C0B8003 */ lui $t3, %hi(show_debug_menu_flag) +/* 0C59E8 7F090EB8 312A1000 */ andi $t2, $t1, 0x1000 +/* 0C59EC 7F090EBC 11400009 */ beqz $t2, .L7F090EE4 +/* 0C59F0 7F090EC0 00000000 */ nop +/* 0C59F4 7F090EC4 8D6B6FF8 */ lw $t3, %lo(show_debug_menu_flag)($t3) +/* 0C59F8 7F090EC8 24010001 */ li $at, 1 +/* 0C59FC 7F090ECC 15610003 */ bne $t3, $at, .L7F090EDC +/* 0C5A00 7F090ED0 00000000 */ nop +/* 0C5A04 7F090ED4 0C002BC0 */ jal blank_debug_buffer_chars +/* 0C5A08 7F090ED8 00000000 */ nop +.L7F090EDC: +/* 0C5A0C 7F090EDC 3C018003 */ lui $at, %hi(show_debug_menu_flag) +/* 0C5A10 7F090EE0 AC206FF8 */ sw $zero, %lo(show_debug_menu_flag)($at) +.L7F090EE4: +/* 0C5A14 7F090EE4 3C028003 */ lui $v0, %hi(show_debug_menu_flag) +/* 0C5A18 7F090EE8 8C426FF8 */ lw $v0, %lo(show_debug_menu_flag)($v0) +.L7F090EEC: +/* 0C5A1C 7F090EEC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C5A20 7F090EF0 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0C5A24 7F090EF4 03E00008 */ jr $ra +/* 0C5A28 7F090EF8 00000000 */ nop +) +#endif + +s32 get_debug_render_raster(void) { + return debug_render_raster; +} + +s32 get_debug_freeze_processing(void) { + return debug_freeze_processing; +} + +s32 get_debug_limit_controller_input(void) { + return debug_limit_controller_input; +} + +void set_debug_limit_controller_input(void) { + debug_limit_controller_input = debug_unknown; +} + +s32 get_memusage_display_flag(void) { + return memusage_display_flag; +} + +s32 get_debug_do_draw_bg(void) { + return debug_do_draw_bg; +} + +s32 get_debug_do_draw_obj(void) { + return debug_do_draw_obj; +} + +s32 get_debug_stanhit_flag(void) { + return debug_stanhit_flag; +} + +s32 get_debug_stanregion_flag(void) { + return debug_stanregion_flag; +} + +s32 get_turbo_mode_flag(void) { + return turbo_mode_flag; +} + +s32 get_debug_man_pos_flag(void) { + return debug_man_pos_flag; +} + +s32 get_debug_testingmanpos_flag(void) { + return debug_testingmanpos_flag; +} + +void set_debug_testingmanpos_flag(s32 flag) { + debug_testingmanpos_flag = flag; +} + +s32 get_debug_joy2skyedit_flag(void) { + return debug_joy2skyedit_flag; +} + +s32 get_debug_joy2hitsedit_flag(void) { + return debug_joy2hitsedit_flag; +} + +s32 get_debug_joy2detailedit_flag(void) { + return debug_joy2detailedit_flag; +} + +s32 get_debug_explosioninfo_flag(void) { + return debug_explosioninfo_flag; +} + +s32 get_debug_prroomloads_flag(void) { + return debug_prroomloads_flag; +} + +// Get Current Status of VisCVG (True/False) +s32 get_debug_VisCVG_flag(void) { + return debug_VisCVG_flag; +} + +// Set VisCVG (True/False) +void set_debug_VisCVG_flag(s32 flag) { + debug_VisCVG_flag = flag; +} + +s32 get_debug_007_unlock_flag(void) { + return debug_007_unlock_flag; +} + +s32 get_debug_enable_agent_levels_flag(void) { + return debug_enable_agent_levels_flag; +} + +s32 get_debug_enable_all_levels_flag(void) { + return debug_enable_all_levels_flag; +} + +s32 get_debug_fast_bond_flag(void) { + return debug_fast_bond_flag; +} + +void set_debug_fast_bond_flag(s32 flag) { + debug_fast_bond_flag = flag; +} + +s32 get_debug_all_obj_complete_flag(void) { + return debug_all_obj_complete_flag; +} + +s32 get_debug_portal_flag(void) { + return debug_portal_flag; +} + +s32 get_debug_chrnum_flag(void) { + return debug_chrnum_flag; +} + +s32 get_debug_gunwatchpos_flag(void) { + return debug_gunwatchpos_flags; +} + +s32 get_debug_profile_flag(void) { + return debug_profile_flag; +} + +s32 get_debug_taskgrab_val(void) { + return debug_enable_taskgrab_flag; +} + + + + diff --git a/src/game/debugmenu_090490.h b/src/game/debugmenu_090490.h new file mode 100644 index 0000000..cb0b376 --- /dev/null +++ b/src/game/debugmenu_090490.h @@ -0,0 +1,42 @@ +#ifndef _DEBUGMENU_090490_H_ +#define _DEBUGMENU_090490_H_ +#include "ultra64.h" + +struct mcm_layout { + int xpos; + int ypos; +}; + +s32 get_debug_render_raster(void); +s32 get_debug_freeze_processing(void); +s32 get_debug_limit_controller_input(void); +void set_debug_limit_controller_input(void); +s32 get_memusage_display_flag(void); +s32 get_debug_do_draw_bg(void); +s32 get_debug_do_draw_obj(void); +s32 get_debug_stanhit_flag(void); +s32 get_debug_stanregion_flag(void); +s32 get_turbo_mode_flag(void); +s32 get_debug_man_pos_flag(void); +s32 get_debug_testingmanpos_flag(void); +void set_debug_testingmanpos_flag(s32 flag); +s32 get_debug_joy2skyedit_flag(void); +s32 get_debug_joy2hitsedit_flag(void); +s32 get_debug_joy2detailedit_flag(void); +s32 get_debug_explosioninfo_flag(void); +s32 get_debug_prroomloads_flag(void); +s32 get_debug_VisCVG_flag(void); +void set_debug_VisCVG_flag(s32 flag); +s32 get_debug_007_unlock_flag(void); +s32 get_debug_enable_agent_levels_flag(void); +s32 get_debug_enable_all_levels_flag(void); +s32 get_debug_fast_bond_flag(void); +void set_debug_fast_bond_flag(s32 flag); +s32 get_debug_all_obj_complete_flag(void); +s32 get_debug_portal_flag(void); +s32 get_debug_chrnum_flag(void); +s32 get_debug_gunwatchpos_flag(void); +s32 get_debug_profile_flag(void); +s32 get_debug_taskgrab_val(void); +void debug_menu_processor(void); +#endif diff --git a/src/game/decompress.c b/src/game/decompress.c new file mode 100644 index 0000000..b3de228 --- /dev/null +++ b/src/game/decompress.c @@ -0,0 +1,92 @@ +#include "ultra64.h" +#include "zlib.h" + +//this definately isn't proper way this data was represented, but works for now +// rodata +//D:8005BF80 +const u32 rz_header_bytes[] = { + 0x11720000, 0x11720000, 0x11720000, 0x11720000, 0x11720000, + 0x11720000, 0x11720000, 0x11720000, 0x11720000, 0x11720000 +}; + + + + +#ifdef NONMATCHING +u32 *decompressdata(u32 arg0, u32 arg1, u32 arg2) { + +} +#else +GLOBAL_ASM( +.text +glabel decompressdata +/* 103320 7F0CE7F0 3C078009 */ lui $a3, %hi(dword_CODE_bss_8008D350) +/* 103324 7F0CE7F4 24E7D350 */ addiu $a3, %lo(dword_CODE_bss_8008D350) # addiu $a3, $a3, -0x2cb0 +/* 103328 7F0CE7F8 ACE40000 */ sw $a0, ($a3) +/* 10332C 7F0CE7FC 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D354) +/* 103330 7F0CE800 AC25D354 */ sw $a1, %lo(dword_CODE_bss_8008D354)($at) +/* 103334 7F0CE804 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 103338 7F0CE808 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D360) +/* 10333C 7F0CE80C AFBF0014 */ sw $ra, 0x14($sp) +/* 103340 7F0CE810 AC26D360 */ sw $a2, %lo(dword_CODE_bss_8008D360)($at) +/* 103344 7F0CE814 3C0E8006 */ lui $t6, %hi(rz_header_bytes) +/* 103348 7F0CE818 91CEBF80 */ lbu $t6, %lo(rz_header_bytes)($t6) +/* 10334C 7F0CE81C 90820000 */ lbu $v0, ($a0) +/* 103350 7F0CE820 3C188006 */ lui $t8, %hi(rz_header_bytes+0x5) +/* 103354 7F0CE824 3C198006 */ lui $t9, %hi(rz_header_bytes+0x8) +/* 103358 7F0CE828 144E0005 */ bne $v0, $t6, .L7F0CE840 +/* 10335C 7F0CE82C 3C0A8006 */ lui $t2, %hi(rz_header_bytes+0x18) +/* 103360 7F0CE830 908F0001 */ lbu $t7, 1($a0) +/* 103364 7F0CE834 9318BF85 */ lbu $t8, %lo(rz_header_bytes+0x5)($t8) +/* 103368 7F0CE838 51F8000A */ beql $t7, $t8, .L7F0CE864 +/* 10336C 7F0CE83C 8CEC0000 */ lw $t4, ($a3) +.L7F0CE840: +/* 103370 7F0CE840 9083FFFF */ lbu $v1, -1($a0) +/* 103374 7F0CE844 9339BF88 */ lbu $t9, %lo(rz_header_bytes+0x8)($t9) +/* 103378 7F0CE848 54790002 */ bnel $v1, $t9, .L7F0CE854 +/* 10337C 7F0CE84C 9089FFFE */ lbu $t1, -2($a0) +/* 103380 7F0CE850 9089FFFE */ lbu $t1, -2($a0) +.L7F0CE854: +/* 103384 7F0CE854 914ABF98 */ lbu $t2, %lo(rz_header_bytes+0x18)($t2) +/* 103388 7F0CE858 552A0002 */ bnel $t1, $t2, .L7F0CE864 +/* 10338C 7F0CE85C 8CEC0000 */ lw $t4, ($a3) +/* 103390 7F0CE860 8CEC0000 */ lw $t4, ($a3) +.L7F0CE864: +/* 103394 7F0CE864 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D35C) +/* 103398 7F0CE868 258D0002 */ addiu $t5, $t4, 2 +/* 10339C 7F0CE86C ACED0000 */ sw $t5, ($a3) +/* 1033A0 7F0CE870 AC20D35C */ sw $zero, %lo(dword_CODE_bss_8008D35C)($at) +/* 1033A4 7F0CE874 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D358) +/* 1033A8 7F0CE878 0FC33F35 */ jal loop_to_decompress_entire_file +/* 1033AC 7F0CE87C AC20D358 */ sw $zero, %lo(dword_CODE_bss_8008D358)($at) +/* 1033B0 7F0CE880 8FBF0014 */ lw $ra, 0x14($sp) +/* 1033B4 7F0CE884 3C028009 */ lui $v0, %hi(dword_CODE_bss_8008D35C) +/* 1033B8 7F0CE888 8C42D35C */ lw $v0, %lo(dword_CODE_bss_8008D35C)($v0) +/* 1033BC 7F0CE88C 03E00008 */ jr $ra +/* 1033C0 7F0CE890 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0CE894(void) { + // Node 0 + return (dword_CODE_bss_8008D350 + dword_CODE_bss_8008D358); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CE894 +/* 1033C4 7F0CE894 3C0E8009 */ lui $t6, %hi(dword_CODE_bss_8008D350) +/* 1033C8 7F0CE898 3C0F8009 */ lui $t7, %hi(dword_CODE_bss_8008D358) +/* 1033CC 7F0CE89C 8DEFD358 */ lw $t7, %lo(dword_CODE_bss_8008D358)($t7) +/* 1033D0 7F0CE8A0 8DCED350 */ lw $t6, %lo(dword_CODE_bss_8008D350)($t6) +/* 1033D4 7F0CE8A4 03E00008 */ jr $ra +/* 1033D8 7F0CE8A8 01CF1021 */ addu $v0, $t6, $t7 +) +#endif + + diff --git a/src/game/decompress.h b/src/game/decompress.h new file mode 100644 index 0000000..b9d1d86 --- /dev/null +++ b/src/game/decompress.h @@ -0,0 +1,8 @@ +#ifndef _DECOMPRESS_H_ +#define _DECOMPRESS_H_ +#include "ultra64.h" + +u32 *decompressdata(u32 arg0, u32 arg1, u32 arg2); +s32 sub_GAME_7F0CE894(void); + +#endif diff --git a/src/game/dyn.c b/src/game/dyn.c new file mode 100644 index 0000000..cea3a03 --- /dev/null +++ b/src/game/dyn.c @@ -0,0 +1,578 @@ +#include "ultra64.h" +#include "game/dyn.h" +// bss +//CODE.bss:8008C230 +s32 *ptr_mgfx0_alloc_start; +//CODE.bss:8008C234 +s32 *ptr_mgfx1_alloc_start; +//CODE.bss:8008C238 +s32 *ptr_mgfx_end; +//CODE.bss:8008C23C +s32 D_8008C23C; +//CODE.bss:8008C240 +s32 *ptr_mvtx0_alloc_start; +//CODE.bss:8008C244 +s32 *ptr_mvtx1_alloc_start; +//CODE.bss:8008C248 +s32 *ptr_mvtx_end; +//CODE.bss:8008C24C +s32 *ptr_mvtx_cur_pos; +//CODE.bss:8008C250 +s32 bank_in_mgfx_alloc_table; +//CODE.bss:8008C254 +s32 dword_CODE_bss_8008C254; + + +// data +//D:800482E0 +s32 D_800482E0 = 0; +//D:800482E4 +s32 D_800482E4[] = {0x10000, 0x18000, 0x20000}; +//D:800482F0 +s32 D_800482F0[] = {0x28000, 0x10000, 0x18000, 0x20000, 0x28000}; + +//D:80048304 +char membars_string1[] = ">>>>>>>>>>>>>>>>>>>>>>>>>"; +//D:80048320 +char membars_string2[] = "========================="; +//D:8004833C +char membars_string3[] = "-------------------------"; + + +//rodata + +void dynInitDebugNoticeList(void) { + debCheckAddDebugNoticeListEntry(&D_800482E0, "dyn_c_debug"); +} + +#ifdef NONMATCHING +void set_vtx_gfx_mem_alloc(void) { + s32 sp18; + ? temp_ret; + + if (check_token(1, "-mgfx") != 0) + { + dyn_c_debug_notice_list_entry[get_num_players()] = strtol(check_token(1, "-mgfx"), 0, 0) << 0xa; + } + + if (check_token(1, "-mvtx") != 0) + { + D_800482F0[get_num_players()] = strtol(check_token(1, "-mvtx"), 0, 0) << 0xa; + } + + mempAllocBytesInBank(dyn_c_debug_notice_list_entry[sVar1] << 1, 4); + ptr_mgfx0_alloc_start.unk4 = (s32) ((0x80050000 + (get_num_players() * 4))->unk-7D20 + ptr_mgfx0_alloc_start); + ptr_mgfx0_alloc_start.unk8 = (s32) ((0x80050000 + (get_num_players() * 4))->unk-7D20 + ptr_mgfx0_alloc_start.unk4); + ptr_mvtx0_alloc_start = mempAllocBytesInBank(((0x80050000 + (get_num_players() * 4))->unk-7D10 * 2), 4); + ptr_mvtx0_alloc_start.unk4 = (s32) ((0x80050000 + (get_num_players() * 4))->unk-7D10 + ptr_mvtx0_alloc_start); + temp_ret = get_num_players(); + ptr_mvtx0_alloc_start.unk8 = (s32) ((0x80050000 + (temp_ret * 4))->unk-7D10 + ptr_mvtx0_alloc_start.unk4); + bank_in_mgfx_alloc_table = (u8)0; + dword_CODE_bss_8008C254 = 0; + (void *)0x80090000->unk-3DB4 = (s32) ptr_mvtx0_alloc_start; + return temp_ret; +} +#else +GLOBAL_ASM( +.rdata +/*D:8005B68C*/ +glabel aMgfx +/*"-mgfx"*/ +.word 0x2D6D6766, 0x78000000 + +/*D:8005B694*/ +glabel aMgfx_1 + /*"-mgfx"*/ +.word 0x2D6D6766, 0x78000000 + +/*D:8005B69C*/ +glabel aMvtx + /*"-mvtx"*/ +.word 0x2D6D7674, 0x78000000 + +/*D:8005B6A4*/ +glabel aMvtx_0 + /*"-mvtx"*/ +.word 0x2D6D7674, 0x78000000 + +.text +glabel set_vtx_gfx_mem_alloc +/* 0F1FBC 7F0BD48C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F1FC0 7F0BD490 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F1FC4 7F0BD494 3C058006 */ lui $a1, %hi(aMgfx) +/* 0F1FC8 7F0BD498 24A5B68C */ addiu $a1, %lo(aMgfx) # addiu $a1, $a1, -0x4974 +/* 0F1FCC 7F0BD49C 0C0029A8 */ jal check_token +/* 0F1FD0 7F0BD4A0 24040001 */ li $a0, 1 +/* 0F1FD4 7F0BD4A4 10400012 */ beqz $v0, .L7F0BD4F0 +/* 0F1FD8 7F0BD4A8 00000000 */ nop +/* 0F1FDC 7F0BD4AC 0FC26919 */ jal get_num_players +/* 0F1FE0 7F0BD4B0 00000000 */ nop +/* 0F1FE4 7F0BD4B4 3C058006 */ lui $a1, %hi(aMgfx_1) +/* 0F1FE8 7F0BD4B8 24A5B694 */ addiu $a1, %lo(aMgfx_1) # addiu $a1, $a1, -0x496c +/* 0F1FEC 7F0BD4BC AFA20018 */ sw $v0, 0x18($sp) +/* 0F1FF0 7F0BD4C0 0C0029A8 */ jal check_token +/* 0F1FF4 7F0BD4C4 24040001 */ li $a0, 1 +/* 0F1FF8 7F0BD4C8 00402025 */ move $a0, $v0 +/* 0F1FFC 7F0BD4CC 00002825 */ move $a1, $zero +/* 0F2000 7F0BD4D0 0C002A78 */ jal strtol +/* 0F2004 7F0BD4D4 00003025 */ move $a2, $zero +/* 0F2008 7F0BD4D8 8FAF0018 */ lw $t7, 0x18($sp) +/* 0F200C 7F0BD4DC 3C018005 */ lui $at, %hi(D_800482E0) +/* 0F2010 7F0BD4E0 00027280 */ sll $t6, $v0, 0xa +/* 0F2014 7F0BD4E4 000FC080 */ sll $t8, $t7, 2 +/* 0F2018 7F0BD4E8 00380821 */ addu $at, $at, $t8 +/* 0F201C 7F0BD4EC AC2E82E0 */ sw $t6, %lo(D_800482E0)($at) +.L7F0BD4F0: +/* 0F2020 7F0BD4F0 3C058006 */ lui $a1, %hi(aMvtx) +/* 0F2024 7F0BD4F4 24A5B69C */ addiu $a1, %lo(aMvtx) # addiu $a1, $a1, -0x4964 +/* 0F2028 7F0BD4F8 0C0029A8 */ jal check_token +/* 0F202C 7F0BD4FC 24040001 */ li $a0, 1 +/* 0F2030 7F0BD500 10400012 */ beqz $v0, .L7F0BD54C +/* 0F2034 7F0BD504 00000000 */ nop +/* 0F2038 7F0BD508 0FC26919 */ jal get_num_players +/* 0F203C 7F0BD50C 00000000 */ nop +/* 0F2040 7F0BD510 3C058006 */ lui $a1, %hi(aMvtx_0) +/* 0F2044 7F0BD514 24A5B6A4 */ addiu $a1, %lo(aMvtx_0) # addiu $a1, $a1, -0x495c +/* 0F2048 7F0BD518 AFA20018 */ sw $v0, 0x18($sp) +/* 0F204C 7F0BD51C 0C0029A8 */ jal check_token +/* 0F2050 7F0BD520 24040001 */ li $a0, 1 +/* 0F2054 7F0BD524 00402025 */ move $a0, $v0 +/* 0F2058 7F0BD528 00002825 */ move $a1, $zero +/* 0F205C 7F0BD52C 0C002A78 */ jal strtol +/* 0F2060 7F0BD530 00003025 */ move $a2, $zero +/* 0F2064 7F0BD534 8FA80018 */ lw $t0, 0x18($sp) +/* 0F2068 7F0BD538 3C018005 */ lui $at, %hi(D_800482F0) +/* 0F206C 7F0BD53C 0002CA80 */ sll $t9, $v0, 0xa +/* 0F2070 7F0BD540 00084880 */ sll $t1, $t0, 2 +/* 0F2074 7F0BD544 00290821 */ addu $at, $at, $t1 +/* 0F2078 7F0BD548 AC3982F0 */ sw $t9, %lo(D_800482F0)($at) +.L7F0BD54C: +/* 0F207C 7F0BD54C 0FC26919 */ jal get_num_players +/* 0F2080 7F0BD550 00000000 */ nop +/* 0F2084 7F0BD554 00025080 */ sll $t2, $v0, 2 +/* 0F2088 7F0BD558 3C048005 */ lui $a0, %hi(D_800482E0) +/* 0F208C 7F0BD55C 008A2021 */ addu $a0, $a0, $t2 +/* 0F2090 7F0BD560 8C8482E0 */ lw $a0, %lo(D_800482E0)($a0) +/* 0F2094 7F0BD564 24050004 */ li $a1, 4 +/* 0F2098 7F0BD568 00045840 */ sll $t3, $a0, 1 +/* 0F209C 7F0BD56C 0C0025C8 */ jal mempAllocBytesInBank +/* 0F20A0 7F0BD570 01602025 */ move $a0, $t3 +/* 0F20A4 7F0BD574 3C018009 */ lui $at, %hi(ptr_mgfx0_alloc_start) +/* 0F20A8 7F0BD578 0FC26919 */ jal get_num_players +/* 0F20AC 7F0BD57C AC22C230 */ sw $v0, %lo(ptr_mgfx0_alloc_start)($at) +/* 0F20B0 7F0BD580 3C038009 */ lui $v1, %hi(ptr_mgfx0_alloc_start) +/* 0F20B4 7F0BD584 00026080 */ sll $t4, $v0, 2 +/* 0F20B8 7F0BD588 3C0D8005 */ lui $t5, %hi(D_800482E0) +/* 0F20BC 7F0BD58C 01AC6821 */ addu $t5, $t5, $t4 +/* 0F20C0 7F0BD590 2463C230 */ addiu $v1, %lo(ptr_mgfx0_alloc_start) # addiu $v1, $v1, -0x3dd0 +/* 0F20C4 7F0BD594 8C6F0000 */ lw $t7, ($v1) +/* 0F20C8 7F0BD598 8DAD82E0 */ lw $t5, %lo(D_800482E0)($t5) +/* 0F20CC 7F0BD59C 01AF7021 */ addu $t6, $t5, $t7 +/* 0F20D0 7F0BD5A0 0FC26919 */ jal get_num_players +/* 0F20D4 7F0BD5A4 AC6E0004 */ sw $t6, 4($v1) +/* 0F20D8 7F0BD5A8 3C038009 */ lui $v1, %hi(ptr_mgfx0_alloc_start) +/* 0F20DC 7F0BD5AC 0002C080 */ sll $t8, $v0, 2 +/* 0F20E0 7F0BD5B0 3C088005 */ lui $t0, %hi(D_800482E0) +/* 0F20E4 7F0BD5B4 01184021 */ addu $t0, $t0, $t8 +/* 0F20E8 7F0BD5B8 2463C230 */ addiu $v1, %lo(ptr_mgfx0_alloc_start) # addiu $v1, $v1, -0x3dd0 +/* 0F20EC 7F0BD5BC 8C790004 */ lw $t9, 4($v1) +/* 0F20F0 7F0BD5C0 8D0882E0 */ lw $t0, %lo(D_800482E0)($t0) +/* 0F20F4 7F0BD5C4 01194821 */ addu $t1, $t0, $t9 +/* 0F20F8 7F0BD5C8 0FC26919 */ jal get_num_players +/* 0F20FC 7F0BD5CC AC690008 */ sw $t1, 8($v1) +/* 0F2100 7F0BD5D0 00025080 */ sll $t2, $v0, 2 +/* 0F2104 7F0BD5D4 3C048005 */ lui $a0, %hi(D_800482F0) +/* 0F2108 7F0BD5D8 008A2021 */ addu $a0, $a0, $t2 +/* 0F210C 7F0BD5DC 8C8482F0 */ lw $a0, %lo(D_800482F0)($a0) +/* 0F2110 7F0BD5E0 24050004 */ li $a1, 4 +/* 0F2114 7F0BD5E4 00045840 */ sll $t3, $a0, 1 +/* 0F2118 7F0BD5E8 0C0025C8 */ jal mempAllocBytesInBank +/* 0F211C 7F0BD5EC 01602025 */ move $a0, $t3 +/* 0F2120 7F0BD5F0 3C038009 */ lui $v1, %hi(ptr_mvtx0_alloc_start) +/* 0F2124 7F0BD5F4 2463C240 */ addiu $v1, %lo(ptr_mvtx0_alloc_start) # addiu $v1, $v1, -0x3dc0 +/* 0F2128 7F0BD5F8 0FC26919 */ jal get_num_players +/* 0F212C 7F0BD5FC AC620000 */ sw $v0, ($v1) +/* 0F2130 7F0BD600 3C038009 */ lui $v1, %hi(ptr_mvtx0_alloc_start) +/* 0F2134 7F0BD604 00026080 */ sll $t4, $v0, 2 +/* 0F2138 7F0BD608 3C0D8005 */ lui $t5, %hi(D_800482F0) +/* 0F213C 7F0BD60C 01AC6821 */ addu $t5, $t5, $t4 +/* 0F2140 7F0BD610 2463C240 */ addiu $v1, %lo(ptr_mvtx0_alloc_start) # addiu $v1, $v1, -0x3dc0 +/* 0F2144 7F0BD614 8C6F0000 */ lw $t7, ($v1) +/* 0F2148 7F0BD618 8DAD82F0 */ lw $t5, %lo(D_800482F0)($t5) +/* 0F214C 7F0BD61C 01AF7021 */ addu $t6, $t5, $t7 +/* 0F2150 7F0BD620 0FC26919 */ jal get_num_players +/* 0F2154 7F0BD624 AC6E0004 */ sw $t6, 4($v1) +/* 0F2158 7F0BD628 3C038009 */ lui $v1, %hi(ptr_mvtx0_alloc_start) +/* 0F215C 7F0BD62C 0002C080 */ sll $t8, $v0, 2 +/* 0F2160 7F0BD630 3C088005 */ lui $t0, %hi(D_800482F0) +/* 0F2164 7F0BD634 01184021 */ addu $t0, $t0, $t8 +/* 0F2168 7F0BD638 2463C240 */ addiu $v1, %lo(ptr_mvtx0_alloc_start) # addiu $v1, $v1, -0x3dc0 +/* 0F216C 7F0BD63C 8C790004 */ lw $t9, 4($v1) +/* 0F2170 7F0BD640 8D0882F0 */ lw $t0, %lo(D_800482F0)($t0) +/* 0F2174 7F0BD644 3C018009 */ lui $at, %hi(bank_in_mgfx_alloc_table) +/* 0F2178 7F0BD648 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F217C 7F0BD64C 01194821 */ addu $t1, $t0, $t9 +/* 0F2180 7F0BD650 AC690008 */ sw $t1, 8($v1) +/* 0F2184 7F0BD654 A020C250 */ sb $zero, %lo(bank_in_mgfx_alloc_table)($at) +/* 0F2188 7F0BD658 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C254) +/* 0F218C 7F0BD65C AC20C254 */ sw $zero, %lo(dword_CODE_bss_8008C254)($at) +/* 0F2190 7F0BD660 8C6A0000 */ lw $t2, ($v1) +/* 0F2194 7F0BD664 3C018009 */ lui $at, %hi(ptr_mvtx_cur_pos) +/* 0F2198 7F0BD668 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F219C 7F0BD66C 03E00008 */ jr $ra +/* 0F21A0 7F0BD670 AC2AC24C */ sw $t2, %lo(ptr_mvtx_cur_pos)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void get_ptr_displaylist(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_ptr_displaylist +/* 0F21A4 7F0BD674 3C0F8009 */ lui $t7, %hi(bank_in_mgfx_alloc_table) +/* 0F21A8 7F0BD678 91EFC250 */ lbu $t7, %lo(bank_in_mgfx_alloc_table)($t7) +/* 0F21AC 7F0BD67C 3C028009 */ lui $v0, %hi(ptr_mgfx0_alloc_start) +/* 0F21B0 7F0BD680 240E0001 */ li $t6, 1 +/* 0F21B4 7F0BD684 000FC080 */ sll $t8, $t7, 2 +/* 0F21B8 7F0BD688 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C254) +/* 0F21BC 7F0BD68C 00581021 */ addu $v0, $v0, $t8 +/* 0F21C0 7F0BD690 AC2EC254 */ sw $t6, %lo(dword_CODE_bss_8008C254)($at) +/* 0F21C4 7F0BD694 03E00008 */ jr $ra +/* 0F21C8 7F0BD698 8C42C230 */ lw $v0, %lo(ptr_mgfx0_alloc_start)($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void allocate_something_in_mgfx(void) { + +} +#else +GLOBAL_ASM( +.text +glabel allocate_something_in_mgfx +/* 0F21CC 7F0BD69C 3C0E8009 */ lui $t6, %hi(bank_in_mgfx_alloc_table) +/* 0F21D0 7F0BD6A0 91CEC250 */ lbu $t6, %lo(bank_in_mgfx_alloc_table)($t6) +/* 0F21D4 7F0BD6A4 3C188009 */ lui $t8, %hi(ptr_mgfx1_alloc_start) +/* 0F21D8 7F0BD6A8 000E7880 */ sll $t7, $t6, 2 +/* 0F21DC 7F0BD6AC 030FC021 */ addu $t8, $t8, $t7 +/* 0F21E0 7F0BD6B0 8F18C234 */ lw $t8, %lo(ptr_mgfx1_alloc_start)($t8) +/* 0F21E4 7F0BD6B4 03041023 */ subu $v0, $t8, $a0 +/* 0F21E8 7F0BD6B8 0002C8C3 */ sra $t9, $v0, 3 +/* 0F21EC 7F0BD6BC 03E00008 */ jr $ra +/* 0F21F0 7F0BD6C0 03201025 */ move $v0, $t9 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BD6C4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BD6C4 +/* 0F21F4 7F0BD6C4 3C068009 */ lui $a2, %hi(ptr_mvtx_cur_pos) +/* 0F21F8 7F0BD6C8 24C6C24C */ addiu $a2, %lo(ptr_mvtx_cur_pos) # addiu $a2, $a2, -0x3db4 +/* 0F21FC 7F0BD6CC 8CC20000 */ lw $v0, ($a2) +/* 0F2200 7F0BD6D0 00047100 */ sll $t6, $a0, 4 +/* 0F2204 7F0BD6D4 004E7821 */ addu $t7, $v0, $t6 +/* 0F2208 7F0BD6D8 03E00008 */ jr $ra +/* 0F220C 7F0BD6DC ACCF0000 */ sw $t7, ($a2) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0BD6E0(void) { + // Node 0 + ptr_mvtx_cur_pos = (s32) (ptr_mvtx_cur_pos + 0x40); + return ptr_mvtx_cur_pos; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BD6E0 +/* 0F2210 7F0BD6E0 3C058009 */ lui $a1, %hi(ptr_mvtx_cur_pos) +/* 0F2214 7F0BD6E4 24A5C24C */ addiu $a1, %lo(ptr_mvtx_cur_pos) # addiu $a1, $a1, -0x3db4 +/* 0F2218 7F0BD6E8 8CA20000 */ lw $v0, ($a1) +/* 0F221C 7F0BD6EC 244E0040 */ addiu $t6, $v0, 0x40 +/* 0F2220 7F0BD6F0 03E00008 */ jr $ra +/* 0F2224 7F0BD6F4 ACAE0000 */ sw $t6, ($a1) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0BD6F8(s32 arg0) { + // Node 0 + ptr_mvtx_cur_pos = (s32) (ptr_mvtx_cur_pos + (arg0 * 0x10)); + return ptr_mvtx_cur_pos; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BD6F8 +/* 0F2228 7F0BD6F8 3C068009 */ lui $a2, %hi(ptr_mvtx_cur_pos) +/* 0F222C 7F0BD6FC 24C6C24C */ addiu $a2, %lo(ptr_mvtx_cur_pos) # addiu $a2, $a2, -0x3db4 +/* 0F2230 7F0BD700 8CC20000 */ lw $v0, ($a2) +/* 0F2234 7F0BD704 00047100 */ sll $t6, $a0, 4 +/* 0F2238 7F0BD708 004E7821 */ addu $t7, $v0, $t6 +/* 0F223C 7F0BD70C 03E00008 */ jr $ra +/* 0F2240 7F0BD710 ACCF0000 */ sw $t7, ($a2) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0BD714(s32 arg0) { + // Node 0 + ptr_mvtx_cur_pos = (s32) (ptr_mvtx_cur_pos + (((arg0 + 0xf) | 0xf) ^ 0xf)); + return ptr_mvtx_cur_pos; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BD714 +/* 0F2244 7F0BD714 3C068009 */ lui $a2, %hi(ptr_mvtx_cur_pos) +/* 0F2248 7F0BD718 24C6C24C */ addiu $a2, %lo(ptr_mvtx_cur_pos) # addiu $a2, $a2, -0x3db4 +/* 0F224C 7F0BD71C 8CC20000 */ lw $v0, ($a2) +/* 0F2250 7F0BD720 2484000F */ addiu $a0, $a0, 0xf +/* 0F2254 7F0BD724 348E000F */ ori $t6, $a0, 0xf +/* 0F2258 7F0BD728 39CF000F */ xori $t7, $t6, 0xf +/* 0F225C 7F0BD72C 004FC021 */ addu $t8, $v0, $t7 +/* 0F2260 7F0BD730 03E00008 */ jr $ra +/* 0F2264 7F0BD734 ACD80000 */ sw $t8, ($a2) +) +#endif + + + + + +#ifdef NONMATCHING +void *allocate_something_in_mvtx(void) { + // Node 0 + bank_in_mgfx_alloc_table = (s8) (bank_in_mgfx_alloc_table ^ 1); + dword_CODE_bss_8008C254 = 0; + ptr_mvtx_cur_pos = (?32) (0x80090000 + (bank_in_mgfx_alloc_table * 4))->unk-3DC0; + return &bank_in_mgfx_alloc_table; +} +#else +GLOBAL_ASM( +.text +glabel allocate_something_in_mvtx +/* 0F2268 7F0BD738 3C028009 */ lui $v0, %hi(bank_in_mgfx_alloc_table) +/* 0F226C 7F0BD73C 2442C250 */ addiu $v0, %lo(bank_in_mgfx_alloc_table) # addiu $v0, $v0, -0x3db0 +/* 0F2270 7F0BD740 904E0000 */ lbu $t6, ($v0) +/* 0F2274 7F0BD744 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C254) +/* 0F2278 7F0BD748 3C088009 */ lui $t0, %hi(ptr_mvtx0_alloc_start) +/* 0F227C 7F0BD74C 39CF0001 */ xori $t7, $t6, 1 +/* 0F2280 7F0BD750 A04F0000 */ sb $t7, ($v0) +/* 0F2284 7F0BD754 AC20C254 */ sw $zero, %lo(dword_CODE_bss_8008C254)($at) +/* 0F2288 7F0BD758 90580000 */ lbu $t8, ($v0) +/* 0F228C 7F0BD75C 3C018009 */ lui $at, %hi(ptr_mvtx_cur_pos) +/* 0F2290 7F0BD760 0018C880 */ sll $t9, $t8, 2 +/* 0F2294 7F0BD764 01194021 */ addu $t0, $t0, $t9 +/* 0F2298 7F0BD768 8D08C240 */ lw $t0, %lo(ptr_mvtx0_alloc_start)($t0) +/* 0F229C 7F0BD76C 03E00008 */ jr $ra +/* 0F22A0 7F0BD770 AC28C24C */ sw $t0, %lo(ptr_mvtx_cur_pos)($at) +) +#endif + + + + + +void removed_debug_routine(s32 arg0) { + return; +} + + + + + + +#ifdef NONMATCHING +s32 num_microcode_cmds_that_fit(s32 arg0) { + // Node 0 + return ((s32) ((0x80090000 + (bank_in_mgfx_alloc_table * 4))->unk-3DCC - arg0) >> 3); +} +#else +GLOBAL_ASM( +.text +glabel num_microcode_cmds_that_fit +/* 0F22AC 7F0BD77C 3C0E8009 */ lui $t6, %hi(bank_in_mgfx_alloc_table) +/* 0F22B0 7F0BD780 91CEC250 */ lbu $t6, %lo(bank_in_mgfx_alloc_table)($t6) +/* 0F22B4 7F0BD784 3C188009 */ lui $t8, %hi(ptr_mgfx1_alloc_start) +/* 0F22B8 7F0BD788 000E7880 */ sll $t7, $t6, 2 +/* 0F22BC 7F0BD78C 030FC021 */ addu $t8, $t8, $t7 +/* 0F22C0 7F0BD790 8F18C234 */ lw $t8, %lo(ptr_mgfx1_alloc_start)($t8) +/* 0F22C4 7F0BD794 03041023 */ subu $v0, $t8, $a0 +/* 0F22C8 7F0BD798 0002C8C3 */ sra $t9, $v0, 3 +/* 0F22CC 7F0BD79C 03E00008 */ jr $ra +/* 0F22D0 7F0BD7A0 03201025 */ move $v0, $t9 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0BD7A4(void) { + // Node 0 + return ((0x80090000 + (bank_in_mgfx_alloc_table * 4))->unk-3DBC - ptr_mvtx_cur_pos); +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BD7A4 +/* 0F22D4 7F0BD7A4 3C0E8009 */ lui $t6, %hi(bank_in_mgfx_alloc_table) +/* 0F22D8 7F0BD7A8 91CEC250 */ lbu $t6, %lo(bank_in_mgfx_alloc_table)($t6) +/* 0F22DC 7F0BD7AC 3C188009 */ lui $t8, %hi(ptr_mvtx1_alloc_start) +/* 0F22E0 7F0BD7B0 3C198009 */ lui $t9, %hi(ptr_mvtx_cur_pos) +/* 0F22E4 7F0BD7B4 000E7880 */ sll $t7, $t6, 2 +/* 0F22E8 7F0BD7B8 030FC021 */ addu $t8, $t8, $t7 +/* 0F22EC 7F0BD7BC 8F18C244 */ lw $t8, %lo(ptr_mvtx1_alloc_start)($t8) +/* 0F22F0 7F0BD7C0 8F39C24C */ lw $t9, %lo(ptr_mvtx_cur_pos)($t9) +/* 0F22F4 7F0BD7C4 03E00008 */ jr $ra +/* 0F22F8 7F0BD7C8 03191023 */ subu $v0, $t8, $t9 +) +#endif + + + + + +#ifdef NONMATCHING +void compute_membar_display_string(void) { + +} +#else +GLOBAL_ASM( +.text +glabel compute_membar_display_string +/* 0F22FC 7F0BD7CC 44856000 */ mtc1 $a1, $f12 +/* 0F2300 7F0BD7D0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F2304 7F0BD7D4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F2308 7F0BD7D8 AFA60020 */ sw $a2, 0x20($sp) +/* 0F230C 7F0BD7DC 0C004E1F */ jal strlen +/* 0F2310 7F0BD7E0 E7AC001C */ swc1 $f12, 0x1c($sp) +/* 0F2314 7F0BD7E4 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 0F2318 7F0BD7E8 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0F231C 7F0BD7EC 44800000 */ mtc1 $zero, $f0 +/* 0F2320 7F0BD7F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F2324 7F0BD7F4 46046303 */ div.s $f12, $f12, $f4 +/* 0F2328 7F0BD7F8 4600603C */ c.lt.s $f12, $f0 +/* 0F232C 7F0BD7FC 00000000 */ nop +/* 0F2330 7F0BD800 45000001 */ bc1f .L7F0BD808 +/* 0F2334 7F0BD804 00000000 */ nop +.L7F0BD808: +/* 0F2338 7F0BD808 03E00008 */ jr $ra +/* 0F233C 7F0BD80C 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void draw_membars(s32 arg0) { + void *temp_t7; + void *temp_t7_2; + + // Node 0 + temp_t7 = (&ptr_mgfx0_alloc_start + (bank_in_mgfx_alloc_table * 4)); + compute_membar_display_string(&membars_string2, (f32) ((s32) (temp_t7->unk4 - arg0) >> 3), (f32) ((s32) (temp_t7->unk4 - *(&ptr_mgfx0_alloc_start + (bank_in_mgfx_alloc_table * 4))) >> 3), arg0); + temp_t7_2 = (&ptr_mvtx0_alloc_start + (bank_in_mgfx_alloc_table * 4)); + return compute_membar_display_string(&membars_string2, (f32) (temp_t7_2->unk4 - ptr_mvtx_cur_pos), (f32) (temp_t7_2->unk4 - *(&ptr_mvtx0_alloc_start + (bank_in_mgfx_alloc_table * 4))), &ptr_mvtx0_alloc_start); +} +#else +GLOBAL_ASM( +.text +glabel draw_membars +/* 0F2340 7F0BD810 3C028009 */ lui $v0, %hi(bank_in_mgfx_alloc_table) +/* 0F2344 7F0BD814 9042C250 */ lbu $v0, %lo(bank_in_mgfx_alloc_table)($v0) +/* 0F2348 7F0BD818 3C088009 */ lui $t0, %hi(ptr_mgfx0_alloc_start) +/* 0F234C 7F0BD81C 2508C230 */ addiu $t0, %lo(ptr_mgfx0_alloc_start) # addiu $t0, $t0, -0x3dd0 +/* 0F2350 7F0BD820 00027080 */ sll $t6, $v0, 2 +/* 0F2354 7F0BD824 010E7821 */ addu $t7, $t0, $t6 +/* 0F2358 7F0BD828 00024880 */ sll $t1, $v0, 2 +/* 0F235C 7F0BD82C 8DE30004 */ lw $v1, 4($t7) +/* 0F2360 7F0BD830 01095021 */ addu $t2, $t0, $t1 +/* 0F2364 7F0BD834 8D4B0000 */ lw $t3, ($t2) +/* 0F2368 7F0BD838 00803825 */ move $a3, $a0 +/* 0F236C 7F0BD83C 0067C023 */ subu $t8, $v1, $a3 +/* 0F2370 7F0BD840 006B6023 */ subu $t4, $v1, $t3 +/* 0F2374 7F0BD844 000C68C3 */ sra $t5, $t4, 3 +/* 0F2378 7F0BD848 0018C8C3 */ sra $t9, $t8, 3 +/* 0F237C 7F0BD84C 44992000 */ mtc1 $t9, $f4 +/* 0F2380 7F0BD850 448D3000 */ mtc1 $t5, $f6 +/* 0F2384 7F0BD854 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F2388 7F0BD858 46802120 */ cvt.s.w $f4, $f4 +/* 0F238C 7F0BD85C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F2390 7F0BD860 3C048005 */ lui $a0, %hi(membars_string2) +/* 0F2394 7F0BD864 24848320 */ addiu $a0, %lo(membars_string2) # addiu $a0, $a0, -0x7ce0 +/* 0F2398 7F0BD868 468031A0 */ cvt.s.w $f6, $f6 +/* 0F239C 7F0BD86C 44052000 */ mfc1 $a1, $f4 +/* 0F23A0 7F0BD870 44063000 */ mfc1 $a2, $f6 +/* 0F23A4 7F0BD874 0FC2F5F3 */ jal compute_membar_display_string +/* 0F23A8 7F0BD878 00000000 */ nop +/* 0F23AC 7F0BD87C 3C028009 */ lui $v0, %hi(bank_in_mgfx_alloc_table) +/* 0F23B0 7F0BD880 9042C250 */ lbu $v0, %lo(bank_in_mgfx_alloc_table)($v0) +/* 0F23B4 7F0BD884 3C078009 */ lui $a3, %hi(ptr_mvtx0_alloc_start) +/* 0F23B8 7F0BD888 24E7C240 */ addiu $a3, %lo(ptr_mvtx0_alloc_start) # addiu $a3, $a3, -0x3dc0 +/* 0F23BC 7F0BD88C 00027080 */ sll $t6, $v0, 2 +/* 0F23C0 7F0BD890 00EE7821 */ addu $t7, $a3, $t6 +/* 0F23C4 7F0BD894 00024880 */ sll $t1, $v0, 2 +/* 0F23C8 7F0BD898 8DE30004 */ lw $v1, 4($t7) +/* 0F23CC 7F0BD89C 00E95021 */ addu $t2, $a3, $t1 +/* 0F23D0 7F0BD8A0 3C188009 */ lui $t8, %hi(ptr_mvtx_cur_pos) +/* 0F23D4 7F0BD8A4 8F18C24C */ lw $t8, %lo(ptr_mvtx_cur_pos)($t8) +/* 0F23D8 7F0BD8A8 8D4B0000 */ lw $t3, ($t2) +/* 0F23DC 7F0BD8AC 3C048005 */ lui $a0, %hi(membars_string2) +/* 0F23E0 7F0BD8B0 0078C823 */ subu $t9, $v1, $t8 +/* 0F23E4 7F0BD8B4 006B6023 */ subu $t4, $v1, $t3 +/* 0F23E8 7F0BD8B8 448C5000 */ mtc1 $t4, $f10 +/* 0F23EC 7F0BD8BC 44994000 */ mtc1 $t9, $f8 +/* 0F23F0 7F0BD8C0 24848320 */ addiu $a0, %lo(membars_string2) # addiu $a0, $a0, -0x7ce0 +/* 0F23F4 7F0BD8C4 468052A0 */ cvt.s.w $f10, $f10 +/* 0F23F8 7F0BD8C8 46804220 */ cvt.s.w $f8, $f8 +/* 0F23FC 7F0BD8CC 44065000 */ mfc1 $a2, $f10 +/* 0F2400 7F0BD8D0 44054000 */ mfc1 $a1, $f8 +/* 0F2404 7F0BD8D4 0FC2F5F3 */ jal compute_membar_display_string +/* 0F2408 7F0BD8D8 00000000 */ nop +/* 0F240C 7F0BD8DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F2410 7F0BD8E0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F2414 7F0BD8E4 03E00008 */ jr $ra +/* 0F2418 7F0BD8E8 00000000 */ nop +) +#endif + + diff --git a/src/game/dyn.h b/src/game/dyn.h new file mode 100644 index 0000000..b883baf --- /dev/null +++ b/src/game/dyn.h @@ -0,0 +1,7 @@ +#ifndef _DYN_H_ +#define _DYN_H_ +#include "ultra64.h" + +void dynInitDebugNoticeList(void); + +#endif diff --git a/src/game/ejectedcartridges.c b/src/game/ejectedcartridges.c new file mode 100644 index 0000000..ed27c88 --- /dev/null +++ b/src/game/ejectedcartridges.c @@ -0,0 +1,58 @@ +#include "ultra64.h" + + + + + + + +#ifdef NONMATCHING +void something_with_ejected_cartridges(void) { + +} +#else +GLOBAL_ASM( +.text +glabel something_with_ejected_cartridges +/* 039B70 7F005040 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 039B74 7F005044 3C018007 */ lui $at, %hi(dword_CODE_bss_80075DB0) +/* 039B78 7F005048 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075DB8) +/* 039B7C 7F00504C 3C038007 */ lui $v1, %hi(dword_CODE_bss_80075DC8) +/* 039B80 7F005050 AFBF001C */ sw $ra, 0x1c($sp) +/* 039B84 7F005054 AFB10018 */ sw $s1, 0x18($sp) +/* 039B88 7F005058 AFB00014 */ sw $s0, 0x14($sp) +/* 039B8C 7F00505C AC205DB0 */ sw $zero, %lo(dword_CODE_bss_80075DB0)($at) +/* 039B90 7F005060 24635DC8 */ addiu $v1, %lo(dword_CODE_bss_80075DC8) # addiu $v1, $v1, 0x5dc8 +/* 039B94 7F005064 24425DB8 */ addiu $v0, %lo(dword_CODE_bss_80075DB8) # addiu $v0, $v0, 0x5db8 +.L7F005068: +/* 039B98 7F005068 24420004 */ addiu $v0, $v0, 4 +/* 039B9C 7F00506C 0043082B */ sltu $at, $v0, $v1 +/* 039BA0 7F005070 1420FFFD */ bnez $at, .L7F005068 +/* 039BA4 7F005074 AC40FFFC */ sw $zero, -4($v0) +/* 039BA8 7F005078 3C0E8003 */ lui $t6, %hi(ejected_cartridge) +/* 039BAC 7F00507C 8DCE246C */ lw $t6, %lo(ejected_cartridge)($t6) +/* 039BB0 7F005080 3C018003 */ lui $at, %hi(cartridges_eject) +/* 039BB4 7F005084 AC204C9C */ sw $zero, %lo(cartridges_eject)($at) +/* 039BB8 7F005088 3C018003 */ lui $at, %hi(D_80034CA0) +/* 039BBC 7F00508C 11C0000B */ beqz $t6, .L7F0050BC +/* 039BC0 7F005090 AC204CA0 */ sw $zero, %lo(D_80034CA0)($at) +/* 039BC4 7F005094 3C0F8003 */ lui $t7, %hi(ejected_cartridge) +/* 039BC8 7F005098 25F0246C */ addiu $s0, $t7, %lo(ejected_cartridge) +/* 039BCC 7F00509C 8E110000 */ lw $s1, ($s0) +/* 039BD0 7F0050A0 02202025 */ move $a0, $s1 +.L7F0050A4: +/* 039BD4 7F0050A4 0FC1D953 */ jal load_object_into_memory +/* 039BD8 7F0050A8 8E050004 */ lw $a1, 4($s0) +/* 039BDC 7F0050AC 8E110008 */ lw $s1, 8($s0) +/* 039BE0 7F0050B0 26100008 */ addiu $s0, $s0, 8 +/* 039BE4 7F0050B4 5620FFFB */ bnezl $s1, .L7F0050A4 +/* 039BE8 7F0050B8 02202025 */ move $a0, $s1 +.L7F0050BC: +/* 039BEC 7F0050BC 8FBF001C */ lw $ra, 0x1c($sp) +/* 039BF0 7F0050C0 8FB00014 */ lw $s0, 0x14($sp) +/* 039BF4 7F0050C4 8FB10018 */ lw $s1, 0x18($sp) +/* 039BF8 7F0050C8 03E00008 */ jr $ra +/* 039BFC 7F0050CC 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + diff --git a/src/game/fog.c b/src/game/fog.c new file mode 100644 index 0000000..e9c3c1c --- /dev/null +++ b/src/game/fog.c @@ -0,0 +1,1284 @@ +#include "ultra64.h" +#include "game/fog.h" + +// bss +//CODE.bss:800825C0 +s32 sky_enabled; +//CODE.bss:800825C4 +u32 *ptr_nearfog_enviroment_values; +//CODE.bss:800825C8 +s32 buffer_far_pervasiveness; +//CODE.bss:800825CC +s32 far_fog; +//CODE.bss:800825D0 +s32 D_800825D0; +//CODE.bss:800825D4 +s32 D_800825D4; +//CODE.bss:800825D8 +s32 flt_CODE_bss_800825D8; +//CODE.bss:800825DC +s32 flt_CODE_bss_800825DC; +//CODE.bss:800825E0 +s32 buffer_far_ambiant; +//CODE.bss:800825E4 +s32 bg_dif_light; +//CODE.bss:800825E8 +s32 env_table_hit; +//CODE.bss:800825EC +s32 env_table_match_start; +//CODE.bss:800825F0 +s32 env_table_match_end; +//CODE.bss:800825F4 +s32 D_800825F4; +//CODE.bss:800825F8 +u32 dword_CODE_bss_800825F8; + +f32 flt_CODE_bss_800825FC; +f32 flt_CODE_bss_80082600; +u32 dword_CODE_bss_80082604; +u32 dword_CODE_bss_80082608; +u32 dword_CODE_bss_8008260c; +u32 dword_CODE_bss_80082610; +u32 dword_CODE_bss_80082614; +u32 dword_CODE_bss_80082618; +u32 dword_CODE_bss_8008261C; +u8 off_CODE_bss_80082620; +u8 byte_CODE_bss_80082621; +u8 byte_CODE_bss_80082622; +u8 byte_CODE_bss_80082623; + +u8 byte_CODE_bss_80082624; +u8 byte_CODE_bss_80082625; +u8 byte_CODE_bss_80082626; +u8 byte_CODE_bss_80082627; +u8 byte_CODE_bss_80082628; +u8 byte_CODE_bss_80082629; +u8 byte_CODE_bss_8008262a; +u8 byte_CODE_bss_8008262b; +u8 byte_CODE_bss_8008262c; +u8 byte_CODE_bss_8008262d; +u8 byte_CODE_bss_8008262e; +u8 byte_CODE_bss_8008262f; +u8 byte_CODE_bss_80082630; +u8 byte_CODE_bss_80082631; +u8 byte_CODE_bss_80082632; +u8 byte_CODE_bss_80082633; +u8 byte_CODE_bss_80082634; +u8 byte_CODE_bss_80082635; +u8 byte_CODE_bss_80082636; +u8 byte_CODE_bss_80082637; +u8 byte_CODE_bss_80082638; +u8 byte_CODE_bss_80082639; +u8 byte_CODE_bss_8008263a; +u8 byte_CODE_bss_8008263b; +u8 byte_CODE_bss_8008263c; +u8 byte_CODE_bss_8008263d; +u8 byte_CODE_bss_8008263e; +u8 byte_CODE_bss_8008263f; +u8 byte_CODE_bss_80082640; +u8 byte_CODE_bss_80082641; +u8 byte_CODE_bss_80082642; +u8 byte_CODE_bss_80082643; +u8 byte_CODE_bss_80082644; +u8 byte_CODE_bss_80082645; +u8 byte_CODE_bss_80082646; +u8 byte_CODE_bss_80082647; +u8 byte_CODE_bss_80082648; +u8 byte_CODE_bss_80082649; +u8 byte_CODE_bss_8008264a; +u8 byte_CODE_bss_8008264b; +u8 byte_CODE_bss_8008264c; +u8 byte_CODE_bss_8008264d; +u8 byte_CODE_bss_8008264e; +u8 byte_CODE_bss_8008264f; +u8 byte_CODE_bss_80082650; +u8 byte_CODE_bss_80082651; +u8 byte_CODE_bss_80082652; +u8 byte_CODE_bss_80082653; +u8 byte_CODE_bss_80082654; +u8 byte_CODE_bss_80082655; +u8 byte_CODE_bss_80082656; +u8 byte_CODE_bss_80082657; +u8 byte_CODE_bss_80082658; +u8 byte_CODE_bss_80082659; +u8 byte_CODE_bss_8008265a; +u8 byte_CODE_bss_8008265b; +u8 byte_CODE_bss_8008265c; +u8 byte_CODE_bss_8008265d; +u8 byte_CODE_bss_8008265e; +u8 byte_CODE_bss_8008265f; + + + +// data +//D:80044DC0 +s32 D_80044DC0 = 0; +//D:80044DC4 +f32 near_fog_value = 3.4028235e38; +//D:80044DC8 +f32 near_fog_times_intensity = 0.0; +//D:80044DCC +s32 ptr_current_data[] = {0x384, 0x3E8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + +//D:80044E10 +struct fog_element fog_tables[] = { + {0x16, 15.0, 3500.0, 2000.0, 2500.0, 2000.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0, 0, 8, 1, 5000.0, 0, 0, 170.0, 100.0, 40.0, 0, 0, 0, 0, -1000.0, 0, 0, 0.0, 0.0, 0.0, 30.0}, + {0x17, 10.0, 10000.0, 2500.0, 5000.0, 800.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x18, 10.0, 3000.0, 2000.0, 3000.0, 500.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0, 0, 0, 1, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, -1000.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x19, 10.0, 1500.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0, 0, 8, 1, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, 0.0, 1, 0, 0.0, 255.0, 255.0, 25.0}, + {0x7D, 20.0, 15000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0, 0, 8, 1, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, 0.0, 1, 0, 0.0, 255.0, 255.0, 25.0}, + {0x1D, 10.0, 7500.0, 5000.0, 6000.0, 1000.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x10, 0x18, 0x20, 1, 5000.0, 0, 0, 225.0, 175.0, 100.0, 0, 0, 0, 0, -1000.0, 0, 0, 0.0, 0.0, 0.0, 25.0}, + {0x1E, 10.0, 3000.0, 1600.0, 2000.0, 800.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0, 0, 8, 1, 7500.0, 0, 0, 70.0, 199.0, 186.0, 0, 0, 0, 0, -1000.0, 1, 0, 0.0, 255.0, 255.0, 25.0}, + {0x1F, 10.0, 5000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x28, 0, 0, 1, 10000.0, 0, 0, 220.0, 0.0, 20.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x21, 5.0, 15000.0, 3333.0, 4444.0, 600.0, 0.0, 0x3E7, 0x3E3, 0x3E8, 0x10, 0x30, 0x60, 1, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, -1000.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x3A5, 30.0, 15000.0, 3333.0, 4444.0, 600.0, 0.0, 0x3E7, 0x3E3, 0x3E8, 0x10, 0x30, 0x60, 1, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, -1000.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x22, 10.0, 5000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3DE, 0x3E8, 0x10, 0x20, 0x10, 0, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, -1000.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x86, 10.0, 1000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3DE, 0x3E8, 0x40, 0x80, 0x40, 0, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x23, 10.0, 15000.0, 6000.0, 8000.0, 800.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x10, 0x30, 0x40, 1, 5000.0, 0, 0, 25.0, 25.0, 25.0, 0, 0, 0, 0, -1000.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x24, 2.0, 2500.0, 4444.0, 5555.0, 800.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x60, 0x60, 0x80, 1, 10000.0, 0, 0, 240.0, 120.0, 30.0, 0, 0, 0, 0, 0.0, 1, 0, 0.0, 255.0, 255.0, 7.0}, + {0x25, 10.0, 2500.0, 1500.0, 2500.0, 1000.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x18, 0x20, 0, 0, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x26, 10.0, 6000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x18, 0x18, 0x28, 1, 10000.0, 0, 0, 160.0, 160.0, 190.0, 0, 0, 0, 0, -500.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x27, 10.0, 6000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E1, 0x3E8, 8, 0, 8, 0, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, -3000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0x29, 10.0, 9500.0, 3333.0, 4444.0, 800.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x60, 0x80, 0xA0, 1, 5000.0, 0, 0, 255.0, 255.0, 0.0, 0, 0, 0, 0, -10000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0x2B, 2.0, 2000.0, 2500.0, 3055.0, 750.0, 0.0, 0x3E7, 0x3BD, 0x3E8, 0x20, 0x10, 0x10, 1, 5000.0, 0, 0, 58.0, 17.0, 0.0, 0, 0, 0, 0, -1000.0, 1, 0, 0.0, 255.0, 255.0, 20.0}, + {0x3AF, 2.0, 8000.0, 6000.0, 8000.0, 800.0, 0.0, 0x3E7, 0x3DF, 0x3E8, 0x20, 0x10, 0x10, 1, 5000.0, 0, 0, 58.0, 17.0, 0.0, 0, 0, 0, 0, -1000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0x1B, 10.0, 10000.0, 1000.0, 15000.0, 750.0, 0.0, 0x3E7, 0x3E4, 0x41A, 0x10, 0, 0, 1, 5000.0, 0, 0, 58.0, 17.0, 0.0, 0, 0, 0, 0, -1000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0xD1, 10.0, 2500.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x80, 0x78, 0x70, 0, 0.0, 0, 0, 130.0, 120.0, 110.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x135, 10.0, 2000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x80, 0x78, 0x70, 0, 0.0, 0, 0, 130.0, 120.0, 110.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x199, 10.0, 1500.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x80, 0x78, 0x70, 0, 0.0, 0, 0, 130.0, 120.0, 110.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0xF1, 10.0, 7000.0, 3333.0, 4444.0, 800.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x60, 0x80, 0xA0, 1, 5000.0, 0, 0, 255.0, 255.0, 0.0, 0, 0, 0, 0, -10000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0x155, 10.0, 5500.0, 3333.0, 4444.0, 800.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x60, 0x80, 0xA0, 1, 5000.0, 0, 0, 255.0, 255.0, 0.0, 0, 0, 0, 0, -10000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0x1B9, 10.0, 4000.0, 3333.0, 4444.0, 800.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x60, 0x80, 0xA0, 1, 5000.0, 0, 0, 255.0, 255.0, 0.0, 0, 0, 0, 0, -10000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0xEE, 10.0, 6000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x18, 0x18, 0x18, 1, 10000.0, 0, 0, 120.0, 120.0, 120.0, 0, 0, 0, 0, -500.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x152, 10.0, 6000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x18, 0x18, 0x18, 1, 10000.0, 0, 0, 120.0, 120.0, 120.0, 0, 0, 0, 0, -500.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x1B6, 10.0, 6000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x18, 0x18, 0x18, 1, 10000.0, 0, 0, 120.0, 120.0, 120.0, 0, 0, 0, 0, -500.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0xEF, 10.0, 7500.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E1, 0x3E8, 8, 0, 8, 0, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, -3000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0x153, 10.0, 6000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E1, 0x3E8, 8, 0, 8, 0, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, -3000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0x1B7, 10.0, 5000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E1, 0x3E8, 8, 0, 8, 0, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, -3000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0xC8, 10.0, 7500.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x12C, 10.0, 6000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x190, 10.0, 5000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x28, 10.0, 20000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x18, 0x50, 0x38, 1, 5000.0, 0, 0, 255.0, 108.0, 0.0, 0, 0, 0, 0, -1000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0xF0, 10.0, 20000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x18, 0x50, 0x38, 1, 5000.0, 0, 0, 255.0, 108.0, 0.0, 0, 0, 0, 0, -1000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0x154, 10.0, 20000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x18, 0x50, 0x38, 1, 5000.0, 0, 0, 255.0, 108.0, 0.0, 0, 0, 0, 0, -1000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0x1B8, 10.0, 20000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x18, 0x50, 0x38, 1, 5000.0, 0, 0, 255.0, 108.0, 0.0, 0, 0, 0, 0, -1000.0, 1, 0, 0.0, 255.0, 255.0, 0.0}, + {0xE7, 10.0, 5000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x28, 0, 0, 1, 10000.0, 0, 0, 220.0, 0.0, 20.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x14B, 10.0, 5000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x28, 0, 0, 1, 10000.0, 0, 0, 220.0, 0.0, 20.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x1AF, 10.0, 5000.0, 0.0, 0.0, 0.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x28, 0, 0, 1, 10000.0, 0, 0, 220.0, 0.0, 20.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x1C, 10.0, 15000.0, 3000.0, 4000.0, 600.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0, 0, 0, 1, 7500.0, 0, 0, 83.0, 72.0, 65.0, 0, 0, 0, 0, -5000.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x80, 30.0, 15000.0, 3000.0, 4000.0, 600.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0, 0, 0, 1, 7500.0, 0, 0, 83.0, 72.0, 65.0, 0, 0, 0, 0, -5000.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x20, 10.0, 20000.0, 3000.0, 4000.0, 600.0, 0.0, 0x3E7, 0x3E4, 0x3E8, 0x10, 0x30, 0x60, 1, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, -5000.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x84, 10.0, 10000.0, 3000.0, 4000.0, 600.0, 0.0, 0x3E7, 0x3CC, 0x3E8, 0, 0, 0, 1, 7500.0, 0, 0, 83.0, 10.0, 10.0, 0, 0, 0, 0, -5000.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0} +}; + +struct fog_element2 fog_tables2[] = { + {0xFFFFFFFF, 0, 0x10, 0x40, 0, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0x1A, 0x10, 0x30, 0x60, 1, 3000.0, 0, 0, 230.0, 230.0, 230.0, 1, 0, 0, 0, -150.0, 2, 0, 255.0, 255.0, 150.0, 0.0}, + {0x36, 0x30, 0x40, 0x10, 0, 5000.0, 0, 0, 255.0, 255.0, 255.0, 0, 0, 0, 0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0}, + {0} +}; + +// rodata + + + +#ifdef NONMATCHING +void sub_GAME_7F0BA720(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BA720 +/* 0EF250 7F0BA720 AFA40000 */ sw $a0, ($sp) +/* 0EF254 7F0BA724 03E00008 */ jr $ra +/* 0EF258 7F0BA728 AFA50004 */ sw $a1, 4($sp) +) +#endif + + + + + +s32 get_ptr_currentdata(void){ + return ptr_current_data; +} + +f32 get_near_fog_value(void) { + return near_fog_value; +} + +f32 square_near_fog_value(void) { + return near_fog_value * near_fog_value; +} + + + + + +#ifdef NONMATCHING +void copy_table1_env_to_current(void) { + +} +#else +GLOBAL_ASM( +.text +glabel copy_table1_env_to_current +/* 0EF288 7F0BA758 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0EF28C 7F0BA75C AFBF0014 */ sw $ra, 0x14($sp) +/* 0EF290 7F0BA760 C48E0008 */ lwc1 $f14, 8($a0) +/* 0EF294 7F0BA764 C48C0004 */ lwc1 $f12, 4($a0) +/* 0EF298 7F0BA768 0C001194 */ jal set_page_height +/* 0EF29C 7F0BA76C AFA40038 */ sw $a0, 0x38($sp) +/* 0EF2A0 7F0BA770 0C0011AB */ jal video_related_27 +/* 0EF2A4 7F0BA774 27A40030 */ addiu $a0, $sp, 0x30 +/* 0EF2A8 7F0BA778 0FC2D21E */ jal sub_GAME_7F0B4878 +/* 0EF2AC 7F0BA77C 00000000 */ nop +/* 0EF2B0 7F0BA780 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0EF2B4 7F0BA784 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 0EF2B8 7F0BA788 8FA50038 */ lw $a1, 0x38($sp) +/* 0EF2BC 7F0BA78C 46002183 */ div.s $f6, $f4, $f0 +/* 0EF2C0 7F0BA790 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0EF2C4 7F0BA794 3C048008 */ lui $a0, %hi(bg_dif_light) +/* 0EF2C8 7F0BA798 248425E4 */ addiu $a0, %lo(bg_dif_light) # addiu $a0, $a0, 0x25e4 +/* 0EF2CC 7F0BA79C 3C068008 */ lui $a2, %hi(buffer_far_ambiant) +/* 0EF2D0 7F0BA7A0 24C625E0 */ addiu $a2, %lo(buffer_far_ambiant) # addiu $a2, $a2, 0x25e0 +/* 0EF2D4 7F0BA7A4 3C038008 */ lui $v1, %hi(buffer_far_pervasiveness) +/* 0EF2D8 7F0BA7A8 246325C8 */ addiu $v1, %lo(buffer_far_pervasiveness) # addiu $v1, $v1, 0x25c8 +/* 0EF2DC 7F0BA7AC 3C028004 */ lui $v0, %hi(ptr_current_data) +/* 0EF2E0 7F0BA7B0 24424DCC */ addiu $v0, %lo(ptr_current_data) # addiu $v0, $v0, 0x4dcc +/* 0EF2E4 7F0BA7B4 46004283 */ div.s $f10, $f8, $f0 +/* 0EF2E8 7F0BA7B8 E7A60030 */ swc1 $f6, 0x30($sp) +/* 0EF2EC 7F0BA7BC 44814000 */ mtc1 $at, $f8 +/* 0EF2F0 7F0BA7C0 E7AA0034 */ swc1 $f10, 0x34($sp) +/* 0EF2F4 7F0BA7C4 8CAE0020 */ lw $t6, 0x20($a1) +/* 0EF2F8 7F0BA7C8 448E2000 */ mtc1 $t6, $f4 +/* 0EF2FC 7F0BA7CC 00000000 */ nop +/* 0EF300 7F0BA7D0 468021A0 */ cvt.s.w $f6, $f4 +/* 0EF304 7F0BA7D4 46083283 */ div.s $f10, $f6, $f8 +/* 0EF308 7F0BA7D8 44814000 */ mtc1 $at, $f8 +/* 0EF30C 7F0BA7DC 3C018004 */ lui $at, %hi(near_fog_value) +/* 0EF310 7F0BA7E0 E48A0000 */ swc1 $f10, ($a0) +/* 0EF314 7F0BA7E4 8CAF0024 */ lw $t7, 0x24($a1) +/* 0EF318 7F0BA7E8 448F2000 */ mtc1 $t7, $f4 +/* 0EF31C 7F0BA7EC 24AF000C */ addiu $t7, $a1, 0xc +/* 0EF320 7F0BA7F0 468021A0 */ cvt.s.w $f6, $f4 +/* 0EF324 7F0BA7F4 C7A40034 */ lwc1 $f4, 0x34($sp) +/* 0EF328 7F0BA7F8 46083283 */ div.s $f10, $f6, $f8 +/* 0EF32C 7F0BA7FC C7A60030 */ lwc1 $f6, 0x30($sp) +/* 0EF330 7F0BA800 46062381 */ sub.s $f14, $f4, $f6 +/* 0EF334 7F0BA804 E4CA0000 */ swc1 $f10, ($a2) +/* 0EF338 7F0BA808 C4D00000 */ lwc1 $f16, ($a2) +/* 0EF33C 7F0BA80C 46107202 */ mul.s $f8, $f14, $f16 +/* 0EF340 7F0BA810 46083280 */ add.s $f10, $f6, $f8 +/* 0EF344 7F0BA814 E42A4DC4 */ swc1 $f10, %lo(near_fog_value)($at) +/* 0EF348 7F0BA818 C4820000 */ lwc1 $f2, ($a0) +/* 0EF34C 7F0BA81C 3C018004 */ lui $at, %hi(near_fog_times_intensity) +/* 0EF350 7F0BA820 46027102 */ mul.s $f4, $f14, $f2 +/* 0EF354 7F0BA824 46043200 */ add.s $f8, $f6, $f4 +/* 0EF358 7F0BA828 E4284DC8 */ swc1 $f8, %lo(near_fog_times_intensity)($at) +/* 0EF35C 7F0BA82C C4AA0004 */ lwc1 $f10, 4($a1) +/* 0EF360 7F0BA830 3C014300 */ li $at, 0x43000000 # 128.000000 +/* 0EF364 7F0BA834 46005183 */ div.s $f6, $f10, $f0 +/* 0EF368 7F0BA838 46028281 */ sub.s $f10, $f16, $f2 +/* 0EF36C 7F0BA83C E4660000 */ swc1 $f6, ($v1) +/* 0EF370 7F0BA840 C4A40008 */ lwc1 $f4, 8($a1) +/* 0EF374 7F0BA844 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 0EF378 7F0BA848 44813000 */ mtc1 $at, $f6 +/* 0EF37C 7F0BA84C 46002203 */ div.s $f8, $f4, $f0 +/* 0EF380 7F0BA850 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 0EF384 7F0BA854 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0EF388 7F0BA858 44815000 */ mtc1 $at, $f10 +/* 0EF38C 7F0BA85C 3C014380 */ li $at, 0x43800000 # 256.000000 +/* 0EF390 7F0BA860 C4720000 */ lwc1 $f18, ($v1) +/* 0EF394 7F0BA864 E4680004 */ swc1 $f8, 4($v1) +/* 0EF398 7F0BA868 46043203 */ div.s $f8, $f6, $f4 +/* 0EF39C 7F0BA86C C46C0004 */ lwc1 $f12, 4($v1) +/* 0EF3A0 7F0BA870 46025181 */ sub.s $f6, $f10, $f2 +/* 0EF3A4 7F0BA874 E7A80020 */ swc1 $f8, 0x20($sp) +/* 0EF3A8 7F0BA878 44814000 */ mtc1 $at, $f8 +/* 0EF3AC 7F0BA87C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0EF3B0 7F0BA880 46083282 */ mul.s $f10, $f6, $f8 +/* 0EF3B4 7F0BA884 46126201 */ sub.s $f8, $f12, $f18 +/* 0EF3B8 7F0BA888 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0EF3BC 7F0BA88C 44814000 */ mtc1 $at, $f8 +/* 0EF3C0 7F0BA890 46045183 */ div.s $f6, $f10, $f4 +/* 0EF3C4 7F0BA894 C7AA0020 */ lwc1 $f10, 0x20($sp) +/* 0EF3C8 7F0BA898 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0EF3CC 7F0BA89C 46005107 */ neg.s $f4, $f10 +/* 0EF3D0 7F0BA8A0 46089280 */ add.s $f10, $f18, $f8 +/* 0EF3D4 7F0BA8A4 C7A80018 */ lwc1 $f8, 0x18($sp) +/* 0EF3D8 7F0BA8A8 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 0EF3DC 7F0BA8AC 460C2182 */ mul.s $f6, $f4, $f12 +/* 0EF3E0 7F0BA8B0 00000000 */ nop +/* 0EF3E4 7F0BA8B4 460A3102 */ mul.s $f4, $f6, $f10 +/* 0EF3E8 7F0BA8B8 44815000 */ mtc1 $at, $f10 +/* 0EF3EC 7F0BA8BC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0EF3F0 7F0BA8C0 46082183 */ div.s $f6, $f4, $f8 +/* 0EF3F4 7F0BA8C4 44814000 */ mtc1 $at, $f8 +/* 0EF3F8 7F0BA8C8 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0EF3FC 7F0BA8CC 460A3103 */ div.s $f4, $f6, $f10 +/* 0EF400 7F0BA8D0 C7AA0020 */ lwc1 $f10, 0x20($sp) +/* 0EF404 7F0BA8D4 46086180 */ add.s $f6, $f12, $f8 +/* 0EF408 7F0BA8D8 C7A80018 */ lwc1 $f8, 0x18($sp) +/* 0EF40C 7F0BA8DC E4640010 */ swc1 $f4, 0x10($v1) +/* 0EF410 7F0BA8E0 460A3102 */ mul.s $f4, $f6, $f10 +/* 0EF414 7F0BA8E4 C7AA001C */ lwc1 $f10, 0x1c($sp) +/* 0EF418 7F0BA8E8 46082183 */ div.s $f6, $f4, $f8 +/* 0EF41C 7F0BA8EC 44814000 */ mtc1 $at, $f8 +/* 0EF420 7F0BA8F0 3C018008 */ lui $at, %hi(ptr_nearfog_enviroment_values) +/* 0EF424 7F0BA8F4 460A3100 */ add.s $f4, $f6, $f10 +/* 0EF428 7F0BA8F8 46082183 */ div.s $f6, $f4, $f8 +/* 0EF42C 7F0BA8FC E4660014 */ swc1 $f6, 0x14($v1) +/* 0EF430 7F0BA900 8CB80020 */ lw $t8, 0x20($a1) +/* 0EF434 7F0BA904 AC580000 */ sw $t8, ($v0) +/* 0EF438 7F0BA908 8CB90024 */ lw $t9, 0x24($a1) +/* 0EF43C 7F0BA90C 24180001 */ li $t8, 1 +/* 0EF440 7F0BA910 AC590004 */ sw $t9, 4($v0) +/* 0EF444 7F0BA914 90A80028 */ lbu $t0, 0x28($a1) +/* 0EF448 7F0BA918 A0480008 */ sb $t0, 8($v0) +/* 0EF44C 7F0BA91C 90A90029 */ lbu $t1, 0x29($a1) +/* 0EF450 7F0BA920 A0490009 */ sb $t1, 9($v0) +/* 0EF454 7F0BA924 90AA002A */ lbu $t2, 0x2a($a1) +/* 0EF458 7F0BA928 A04A000A */ sb $t2, 0xa($v0) +/* 0EF45C 7F0BA92C 90AB002B */ lbu $t3, 0x2b($a1) +/* 0EF460 7F0BA930 A04B000B */ sb $t3, 0xb($v0) +/* 0EF464 7F0BA934 C4AA002C */ lwc1 $f10, 0x2c($a1) +/* 0EF468 7F0BA938 E44A000C */ swc1 $f10, 0xc($v0) +/* 0EF46C 7F0BA93C 84AC0030 */ lh $t4, 0x30($a1) +/* 0EF470 7F0BA940 A44C0010 */ sh $t4, 0x10($v0) +/* 0EF474 7F0BA944 C4A40034 */ lwc1 $f4, 0x34($a1) +/* 0EF478 7F0BA948 E4440014 */ swc1 $f4, 0x14($v0) +/* 0EF47C 7F0BA94C C4A80038 */ lwc1 $f8, 0x38($a1) +/* 0EF480 7F0BA950 E4480018 */ swc1 $f8, 0x18($v0) +/* 0EF484 7F0BA954 C4A6003C */ lwc1 $f6, 0x3c($a1) +/* 0EF488 7F0BA958 E446001C */ swc1 $f6, 0x1c($v0) +/* 0EF48C 7F0BA95C 90AD0040 */ lbu $t5, 0x40($a1) +/* 0EF490 7F0BA960 A04D0020 */ sb $t5, 0x20($v0) +/* 0EF494 7F0BA964 C4AA0044 */ lwc1 $f10, 0x44($a1) +/* 0EF498 7F0BA968 E44A0024 */ swc1 $f10, 0x24($v0) +/* 0EF49C 7F0BA96C 84AE0048 */ lh $t6, 0x48($a1) +/* 0EF4A0 7F0BA970 A44E0028 */ sh $t6, 0x28($v0) +/* 0EF4A4 7F0BA974 C4A4004C */ lwc1 $f4, 0x4c($a1) +/* 0EF4A8 7F0BA978 E444002C */ swc1 $f4, 0x2c($v0) +/* 0EF4AC 7F0BA97C C4A80050 */ lwc1 $f8, 0x50($a1) +/* 0EF4B0 7F0BA980 44802000 */ mtc1 $zero, $f4 +/* 0EF4B4 7F0BA984 E4480030 */ swc1 $f8, 0x30($v0) +/* 0EF4B8 7F0BA988 C4A60054 */ lwc1 $f6, 0x54($a1) +/* 0EF4BC 7F0BA98C E4460034 */ swc1 $f6, 0x34($v0) +/* 0EF4C0 7F0BA990 C4AA0058 */ lwc1 $f10, 0x58($a1) +/* 0EF4C4 7F0BA994 E44A0038 */ swc1 $f10, 0x38($v0) +/* 0EF4C8 7F0BA998 C4A8000C */ lwc1 $f8, 0xc($a1) +/* 0EF4CC 7F0BA99C 46082032 */ c.eq.s $f4, $f8 +/* 0EF4D0 7F0BA9A0 00000000 */ nop +/* 0EF4D4 7F0BA9A4 45000004 */ bc1f .L7F0BA9B8 +/* 0EF4D8 7F0BA9A8 00000000 */ nop +/* 0EF4DC 7F0BA9AC 3C018008 */ lui $at, %hi(ptr_nearfog_enviroment_values) +/* 0EF4E0 7F0BA9B0 10000002 */ b .L7F0BA9BC +/* 0EF4E4 7F0BA9B4 AC2025C4 */ sw $zero, %lo(ptr_nearfog_enviroment_values)($at) +.L7F0BA9B8: +/* 0EF4E8 7F0BA9B8 AC2F25C4 */ sw $t7, %lo(ptr_nearfog_enviroment_values)($at) +.L7F0BA9BC: +/* 0EF4EC 7F0BA9BC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EF4F0 7F0BA9C0 3C018008 */ lui $at, %hi(sky_enabled) +/* 0EF4F4 7F0BA9C4 AC3825C0 */ sw $t8, %lo(sky_enabled)($at) +/* 0EF4F8 7F0BA9C8 03E00008 */ jr $ra +/* 0EF4FC 7F0BA9CC 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void copy_table2_env_to_current(void) { + +} +#else +GLOBAL_ASM( +.text +glabel copy_table2_env_to_current +/* 0EF500 7F0BA9D0 908E0004 */ lbu $t6, 4($a0) +/* 0EF504 7F0BA9D4 3C028004 */ lui $v0, %hi(ptr_current_data) +/* 0EF508 7F0BA9D8 24424DCC */ addiu $v0, %lo(ptr_current_data) # addiu $v0, $v0, 0x4dcc +/* 0EF50C 7F0BA9DC A04E0008 */ sb $t6, 8($v0) +/* 0EF510 7F0BA9E0 908F0005 */ lbu $t7, 5($a0) +/* 0EF514 7F0BA9E4 A04F0009 */ sb $t7, 9($v0) +/* 0EF518 7F0BA9E8 90980006 */ lbu $t8, 6($a0) +/* 0EF51C 7F0BA9EC A058000A */ sb $t8, 0xa($v0) +/* 0EF520 7F0BA9F0 90990007 */ lbu $t9, 7($a0) +/* 0EF524 7F0BA9F4 A059000B */ sb $t9, 0xb($v0) +/* 0EF528 7F0BA9F8 C4840008 */ lwc1 $f4, 8($a0) +/* 0EF52C 7F0BA9FC E444000C */ swc1 $f4, 0xc($v0) +/* 0EF530 7F0BAA00 8488000C */ lh $t0, 0xc($a0) +/* 0EF534 7F0BAA04 A4480010 */ sh $t0, 0x10($v0) +/* 0EF538 7F0BAA08 C4860010 */ lwc1 $f6, 0x10($a0) +/* 0EF53C 7F0BAA0C E4460014 */ swc1 $f6, 0x14($v0) +/* 0EF540 7F0BAA10 C4880014 */ lwc1 $f8, 0x14($a0) +/* 0EF544 7F0BAA14 E4480018 */ swc1 $f8, 0x18($v0) +/* 0EF548 7F0BAA18 C48A0018 */ lwc1 $f10, 0x18($a0) +/* 0EF54C 7F0BAA1C E44A001C */ swc1 $f10, 0x1c($v0) +/* 0EF550 7F0BAA20 9089001C */ lbu $t1, 0x1c($a0) +/* 0EF554 7F0BAA24 A0490020 */ sb $t1, 0x20($v0) +/* 0EF558 7F0BAA28 C4900020 */ lwc1 $f16, 0x20($a0) +/* 0EF55C 7F0BAA2C E4500024 */ swc1 $f16, 0x24($v0) +/* 0EF560 7F0BAA30 848A0024 */ lh $t2, 0x24($a0) +/* 0EF564 7F0BAA34 A44A0028 */ sh $t2, 0x28($v0) +/* 0EF568 7F0BAA38 C4920028 */ lwc1 $f18, 0x28($a0) +/* 0EF56C 7F0BAA3C E452002C */ swc1 $f18, 0x2c($v0) +/* 0EF570 7F0BAA40 C484002C */ lwc1 $f4, 0x2c($a0) +/* 0EF574 7F0BAA44 E4440030 */ swc1 $f4, 0x30($v0) +/* 0EF578 7F0BAA48 C4860030 */ lwc1 $f6, 0x30($a0) +/* 0EF57C 7F0BAA4C E4460034 */ swc1 $f6, 0x34($v0) +/* 0EF580 7F0BAA50 C4880034 */ lwc1 $f8, 0x34($a0) +/* 0EF584 7F0BAA54 03E00008 */ jr $ra +/* 0EF588 7F0BAA58 E4480038 */ swc1 $f8, 0x38($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BAA5C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BAA5C +/* 0EF58C 7F0BAA5C 03E00008 */ jr $ra +/* 0EF590 7F0BAA60 AFA40000 */ sw $a0, ($sp) +) +#endif + + + + + +#ifdef NONMATCHING +void load_enviroment(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel default_near_fog +.word 0x7f7fffff /*3.4028235e38*/ +glabel D_80058D74 +.word 0x461c4000 /*10000.0*/ +.text +glabel load_enviroment +/* 0EF594 7F0BAA64 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0EF598 7F0BAA68 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EF59C 7F0BAA6C AFA5002C */ sw $a1, 0x2c($sp) +/* 0EF5A0 7F0BAA70 AFA0001C */ sw $zero, 0x1c($sp) +/* 0EF5A4 7F0BAA74 0FC26919 */ jal get_num_players +/* 0EF5A8 7F0BAA78 AFA40028 */ sw $a0, 0x28($sp) +/* 0EF5AC 7F0BAA7C 24010001 */ li $at, 1 +/* 0EF5B0 7F0BAA80 8FA6001C */ lw $a2, 0x1c($sp) +/* 0EF5B4 7F0BAA84 8FA70028 */ lw $a3, 0x28($sp) +/* 0EF5B8 7F0BAA88 14410002 */ bne $v0, $at, .L7F0BAA94 +/* 0EF5BC 7F0BAA8C 00404025 */ move $t0, $v0 +/* 0EF5C0 7F0BAA90 00004025 */ move $t0, $zero +.L7F0BAA94: +/* 0EF5C4 7F0BAA94 3C018006 */ lui $at, %hi(default_near_fog) +/* 0EF5C8 7F0BAA98 C4248D70 */ lwc1 $f4, %lo(default_near_fog)($at) +/* 0EF5CC 7F0BAA9C 8FAE002C */ lw $t6, 0x2c($sp) +/* 0EF5D0 7F0BAAA0 3C018004 */ lui $at, %hi(near_fog_value) +/* 0EF5D4 7F0BAAA4 44803000 */ mtc1 $zero, $f6 +/* 0EF5D8 7F0BAAA8 E4244DC4 */ swc1 $f4, %lo(near_fog_value)($at) +/* 0EF5DC 7F0BAAAC 3C018004 */ lui $at, %hi(near_fog_times_intensity) +/* 0EF5E0 7F0BAAB0 11C0001A */ beqz $t6, .L7F0BAB1C +/* 0EF5E4 7F0BAAB4 E4264DC8 */ swc1 $f6, %lo(near_fog_times_intensity)($at) +/* 0EF5E8 7F0BAAB8 3C098004 */ lui $t1, %hi(fog_tables) +/* 0EF5EC 7F0BAABC 25234E10 */ addiu $v1, $t1, %lo(fog_tables) +/* 0EF5F0 7F0BAAC0 8C6F0000 */ lw $t7, ($v1) +/* 0EF5F4 7F0BAAC4 3C188004 */ lui $t8, %hi(fog_tables) +/* 0EF5F8 7F0BAAC8 27184E10 */ addiu $t8, %lo(fog_tables) # addiu $t8, $t8, 0x4e10 +/* 0EF5FC 7F0BAACC 11E00013 */ beqz $t7, .L7F0BAB1C +/* 0EF600 7F0BAAD0 24E40384 */ addiu $a0, $a3, 0x384 +/* 0EF604 7F0BAAD4 8F020000 */ lw $v0, ($t8) +.L7F0BAAD8: +/* 0EF608 7F0BAAD8 1482000C */ bne $a0, $v0, .L7F0BAB0C +/* 0EF60C 7F0BAADC 3C028008 */ lui $v0, %hi(env_table_hit) +/* 0EF610 7F0BAAE0 244225E8 */ addiu $v0, %lo(env_table_hit) # addiu $v0, $v0, 0x25e8 +/* 0EF614 7F0BAAE4 AC430000 */ sw $v1, ($v0) +/* 0EF618 7F0BAAE8 3C018008 */ lui $at, %hi(env_table_match_start) +/* 0EF61C 7F0BAAEC AC2325EC */ sw $v1, %lo(env_table_match_start)($at) +/* 0EF620 7F0BAAF0 3C018008 */ lui $at, %hi(env_table_match_end) +/* 0EF624 7F0BAAF4 2479005C */ addiu $t9, $v1, 0x5c +/* 0EF628 7F0BAAF8 AC3925F0 */ sw $t9, %lo(env_table_match_end)($at) +/* 0EF62C 7F0BAAFC 0FC2E9D6 */ jal copy_table1_env_to_current +/* 0EF630 7F0BAB00 8C440000 */ lw $a0, ($v0) +/* 0EF634 7F0BAB04 10000065 */ b .L7F0BAC9C +/* 0EF638 7F0BAB08 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BAB0C: +/* 0EF63C 7F0BAB0C 8C62005C */ lw $v0, 0x5c($v1) +/* 0EF640 7F0BAB10 2463005C */ addiu $v1, $v1, 0x5c +/* 0EF644 7F0BAB14 1440FFF0 */ bnez $v0, .L7F0BAAD8 +/* 0EF648 7F0BAB18 00000000 */ nop +.L7F0BAB1C: +/* 0EF64C 7F0BAB1C 3C098004 */ lui $t1, %hi(fog_tables) +/* 0EF650 7F0BAB20 25294E10 */ addiu $t1, %lo(fog_tables) # addiu $t1, $t1, 0x4e10 +/* 0EF654 7F0BAB24 8D250000 */ lw $a1, ($t1) +/* 0EF658 7F0BAB28 3C0A8004 */ lui $t2, %hi(fog_tables) +/* 0EF65C 7F0BAB2C 254A4E10 */ addiu $t2, %lo(fog_tables) # addiu $t2, $t2, 0x4e10 +/* 0EF660 7F0BAB30 10A00019 */ beqz $a1, .L7F0BAB98 +/* 0EF664 7F0BAB34 01201825 */ move $v1, $t1 +/* 0EF668 7F0BAB38 00085880 */ sll $t3, $t0, 2 +/* 0EF66C 7F0BAB3C 01685823 */ subu $t3, $t3, $t0 +/* 0EF670 7F0BAB40 000B58C0 */ sll $t3, $t3, 3 +/* 0EF674 7F0BAB44 01685821 */ addu $t3, $t3, $t0 +/* 0EF678 7F0BAB48 000B5880 */ sll $t3, $t3, 2 +/* 0EF67C 7F0BAB4C 00EB2021 */ addu $a0, $a3, $t3 +/* 0EF680 7F0BAB50 8D420000 */ lw $v0, ($t2) +.L7F0BAB54: +/* 0EF684 7F0BAB54 1482000C */ bne $a0, $v0, .L7F0BAB88 +/* 0EF688 7F0BAB58 3C028008 */ lui $v0, %hi(env_table_hit) +/* 0EF68C 7F0BAB5C 244225E8 */ addiu $v0, %lo(env_table_hit) # addiu $v0, $v0, 0x25e8 +/* 0EF690 7F0BAB60 AC430000 */ sw $v1, ($v0) +/* 0EF694 7F0BAB64 3C018008 */ lui $at, %hi(env_table_match_start) +/* 0EF698 7F0BAB68 AC2325EC */ sw $v1, %lo(env_table_match_start)($at) +/* 0EF69C 7F0BAB6C 3C018008 */ lui $at, %hi(env_table_match_end) +/* 0EF6A0 7F0BAB70 246C005C */ addiu $t4, $v1, 0x5c +/* 0EF6A4 7F0BAB74 AC2C25F0 */ sw $t4, %lo(env_table_match_end)($at) +/* 0EF6A8 7F0BAB78 0FC2E9D6 */ jal copy_table1_env_to_current +/* 0EF6AC 7F0BAB7C 8C440000 */ lw $a0, ($v0) +/* 0EF6B0 7F0BAB80 10000046 */ b .L7F0BAC9C +/* 0EF6B4 7F0BAB84 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BAB88: +/* 0EF6B8 7F0BAB88 8C62005C */ lw $v0, 0x5c($v1) +/* 0EF6BC 7F0BAB8C 2463005C */ addiu $v1, $v1, 0x5c +/* 0EF6C0 7F0BAB90 1440FFF0 */ bnez $v0, .L7F0BAB54 +/* 0EF6C4 7F0BAB94 00000000 */ nop +.L7F0BAB98: +/* 0EF6C8 7F0BAB98 29010002 */ slti $at, $t0, 2 +/* 0EF6CC 7F0BAB9C 5420001D */ bnezl $at, .L7F0BAC14 +/* 0EF6D0 7F0BABA0 3C014170 */ lui $at, 0x4170 +/* 0EF6D4 7F0BABA4 10A0001A */ beqz $a1, .L7F0BAC10 +/* 0EF6D8 7F0BABA8 01201825 */ move $v1, $t1 +/* 0EF6DC 7F0BABAC 00082080 */ sll $a0, $t0, 2 +/* 0EF6E0 7F0BABB0 00882023 */ subu $a0, $a0, $t0 +/* 0EF6E4 7F0BABB4 000420C0 */ sll $a0, $a0, 3 +/* 0EF6E8 7F0BABB8 3C0D8004 */ lui $t5, %hi(fog_tables) +/* 0EF6EC 7F0BABBC 25AD4E10 */ addiu $t5, %lo(fog_tables) # addiu $t5, $t5, 0x4e10 +/* 0EF6F0 7F0BABC0 00882021 */ addu $a0, $a0, $t0 +/* 0EF6F4 7F0BABC4 00042080 */ sll $a0, $a0, 2 +/* 0EF6F8 7F0BABC8 8DA20000 */ lw $v0, ($t5) +.L7F0BABCC: +/* 0EF6FC 7F0BABCC 1482000C */ bne $a0, $v0, .L7F0BAC00 +/* 0EF700 7F0BABD0 3C028008 */ lui $v0, %hi(env_table_hit) +/* 0EF704 7F0BABD4 244225E8 */ addiu $v0, %lo(env_table_hit) # addiu $v0, $v0, 0x25e8 +/* 0EF708 7F0BABD8 AC430000 */ sw $v1, ($v0) +/* 0EF70C 7F0BABDC 3C018008 */ lui $at, %hi(env_table_match_start) +/* 0EF710 7F0BABE0 AC2325EC */ sw $v1, %lo(env_table_match_start)($at) +/* 0EF714 7F0BABE4 3C018008 */ lui $at, %hi(env_table_match_end) +/* 0EF718 7F0BABE8 246E005C */ addiu $t6, $v1, 0x5c +/* 0EF71C 7F0BABEC AC2E25F0 */ sw $t6, %lo(env_table_match_end)($at) +/* 0EF720 7F0BABF0 0FC2E9D6 */ jal copy_table1_env_to_current +/* 0EF724 7F0BABF4 8C440000 */ lw $a0, ($v0) +/* 0EF728 7F0BABF8 10000028 */ b .L7F0BAC9C +/* 0EF72C 7F0BABFC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BAC00: +/* 0EF730 7F0BAC00 8C62005C */ lw $v0, 0x5c($v1) +/* 0EF734 7F0BAC04 2463005C */ addiu $v1, $v1, 0x5c +/* 0EF738 7F0BAC08 1440FFF0 */ bnez $v0, .L7F0BABCC +/* 0EF73C 7F0BAC0C 00000000 */ nop +.L7F0BAC10: +/* 0EF740 7F0BAC10 3C014170 */ li $at, 0x41700000 # 15.000000 +.L7F0BAC14: +/* 0EF744 7F0BAC14 44816000 */ mtc1 $at, $f12 +/* 0EF748 7F0BAC18 3C018006 */ lui $at, %hi(D_80058D74) +/* 0EF74C 7F0BAC1C C42E8D74 */ lwc1 $f14, %lo(D_80058D74)($at) +/* 0EF750 7F0BAC20 AFA6001C */ sw $a2, 0x1c($sp) +/* 0EF754 7F0BAC24 0C001194 */ jal set_page_height +/* 0EF758 7F0BAC28 AFA70028 */ sw $a3, 0x28($sp) +/* 0EF75C 7F0BAC2C 3C048004 */ lui $a0, %hi(fog_tables2) +/* 0EF760 7F0BAC30 3C018008 */ lui $at, %hi(sky_enabled) +/* 0EF764 7F0BAC34 24845F50 */ addiu $a0, %lo(fog_tables2) # addiu $a0, $a0, 0x5f50 +/* 0EF768 7F0BAC38 AC2025C0 */ sw $zero, %lo(sky_enabled)($at) +/* 0EF76C 7F0BAC3C 8C8F0000 */ lw $t7, ($a0) +/* 0EF770 7F0BAC40 8FA6001C */ lw $a2, 0x1c($sp) +/* 0EF774 7F0BAC44 8FA70028 */ lw $a3, 0x28($sp) +/* 0EF778 7F0BAC48 11E0000B */ beqz $t7, .L7F0BAC78 +/* 0EF77C 7F0BAC4C 00801825 */ move $v1, $a0 +/* 0EF780 7F0BAC50 3C188004 */ lui $t8, %hi(fog_tables2) +/* 0EF784 7F0BAC54 27185F50 */ addiu $t8, %lo(fog_tables2) # addiu $t8, $t8, 0x5f50 +/* 0EF788 7F0BAC58 8F020000 */ lw $v0, ($t8) +.L7F0BAC5C: +/* 0EF78C 7F0BAC5C 54E20003 */ bnel $a3, $v0, .L7F0BAC6C +/* 0EF790 7F0BAC60 8C620038 */ lw $v0, 0x38($v1) +/* 0EF794 7F0BAC64 00603025 */ move $a2, $v1 +/* 0EF798 7F0BAC68 8C620038 */ lw $v0, 0x38($v1) +.L7F0BAC6C: +/* 0EF79C 7F0BAC6C 24630038 */ addiu $v1, $v1, 0x38 +/* 0EF7A0 7F0BAC70 1440FFFA */ bnez $v0, .L7F0BAC5C +/* 0EF7A4 7F0BAC74 00000000 */ nop +.L7F0BAC78: +/* 0EF7A8 7F0BAC78 14C00002 */ bnez $a2, .L7F0BAC84 +/* 0EF7AC 7F0BAC7C 00000000 */ nop +/* 0EF7B0 7F0BAC80 00803025 */ move $a2, $a0 +.L7F0BAC84: +/* 0EF7B4 7F0BAC84 0FC2EA74 */ jal copy_table2_env_to_current +/* 0EF7B8 7F0BAC88 00C02025 */ move $a0, $a2 +/* 0EF7BC 7F0BAC8C 3C028008 */ lui $v0, %hi(env_table_hit) +/* 0EF7C0 7F0BAC90 244225E8 */ addiu $v0, %lo(env_table_hit) # addiu $v0, $v0, 0x25e8 +/* 0EF7C4 7F0BAC94 AC400000 */ sw $zero, ($v0) +/* 0EF7C8 7F0BAC98 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BAC9C: +/* 0EF7CC 7F0BAC9C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0EF7D0 7F0BACA0 03E00008 */ jr $ra +/* 0EF7D4 7F0BACA4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void switch_to_solosky2(void) { + +} +#else +GLOBAL_ASM( +.text +glabel switch_to_solosky2 +/* 0EF7D8 7F0BACA8 3C028008 */ lui $v0, %hi(env_table_match_start) +/* 0EF7DC 7F0BACAC 8C4225EC */ lw $v0, %lo(env_table_match_start)($v0) +/* 0EF7E0 7F0BACB0 3C048008 */ lui $a0, %hi(dword_CODE_bss_800825F8) +/* 0EF7E4 7F0BACB4 248425F8 */ addiu $a0, %lo(dword_CODE_bss_800825F8) # addiu $a0, $a0, 0x25f8 +/* 0EF7E8 7F0BACB8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0EF7EC 7F0BACBC AFBF0014 */ sw $ra, 0x14($sp) +/* 0EF7F0 7F0BACC0 00804025 */ move $t0, $a0 +/* 0EF7F4 7F0BACC4 0040C825 */ move $t9, $v0 +/* 0EF7F8 7F0BACC8 24580054 */ addiu $t8, $v0, 0x54 +.L7F0BACCC: +/* 0EF7FC 7F0BACCC 8F210000 */ lw $at, ($t9) +/* 0EF800 7F0BACD0 2739000C */ addiu $t9, $t9, 0xc +/* 0EF804 7F0BACD4 2508000C */ addiu $t0, $t0, 0xc +/* 0EF808 7F0BACD8 AD01FFF4 */ sw $at, -0xc($t0) +/* 0EF80C 7F0BACDC 8F21FFF8 */ lw $at, -8($t9) +/* 0EF810 7F0BACE0 AD01FFF8 */ sw $at, -8($t0) +/* 0EF814 7F0BACE4 8F21FFFC */ lw $at, -4($t9) +/* 0EF818 7F0BACE8 1738FFF8 */ bne $t9, $t8, .L7F0BACCC +/* 0EF81C 7F0BACEC AD01FFFC */ sw $at, -4($t0) +/* 0EF820 7F0BACF0 8F210000 */ lw $at, ($t9) +/* 0EF824 7F0BACF4 3C038008 */ lui $v1, %hi(env_table_match_end) +/* 0EF828 7F0BACF8 AD010000 */ sw $at, ($t0) +/* 0EF82C 7F0BACFC 8F380004 */ lw $t8, 4($t9) +/* 0EF830 7F0BAD00 3C018008 */ lui $at, %hi(flt_CODE_bss_800825FC) +/* 0EF834 7F0BAD04 AD180004 */ sw $t8, 4($t0) +/* 0EF838 7F0BAD08 8C6325F0 */ lw $v1, %lo(env_table_match_end)($v1) +/* 0EF83C 7F0BAD0C C4400004 */ lwc1 $f0, 4($v0) +/* 0EF840 7F0BAD10 C4640004 */ lwc1 $f4, 4($v1) +/* 0EF844 7F0BAD14 46002181 */ sub.s $f6, $f4, $f0 +/* 0EF848 7F0BAD18 46066202 */ mul.s $f8, $f12, $f6 +/* 0EF84C 7F0BAD1C 46080280 */ add.s $f10, $f0, $f8 +/* 0EF850 7F0BAD20 E42A25FC */ swc1 $f10, %lo(flt_CODE_bss_800825FC)($at) +/* 0EF854 7F0BAD24 C4420008 */ lwc1 $f2, 8($v0) +/* 0EF858 7F0BAD28 C4640008 */ lwc1 $f4, 8($v1) +/* 0EF85C 7F0BAD2C 3C018008 */ lui $at, %hi(flt_CODE_bss_80082600) +/* 0EF860 7F0BAD30 46022181 */ sub.s $f6, $f4, $f2 +/* 0EF864 7F0BAD34 46066202 */ mul.s $f8, $f12, $f6 +/* 0EF868 7F0BAD38 46081280 */ add.s $f10, $f2, $f8 +/* 0EF86C 7F0BAD3C E42A2600 */ swc1 $f10, %lo(flt_CODE_bss_80082600)($at) +/* 0EF870 7F0BAD40 8C490020 */ lw $t1, 0x20($v0) +/* 0EF874 7F0BAD44 8C6A0020 */ lw $t2, 0x20($v1) +/* 0EF878 7F0BAD48 3C018008 */ lui $at, %hi(dword_CODE_bss_8008261C) +/* 0EF87C 7F0BAD4C 44892000 */ mtc1 $t1, $f4 +/* 0EF880 7F0BAD50 448A3000 */ mtc1 $t2, $f6 +/* 0EF884 7F0BAD54 468023A0 */ cvt.s.w $f14, $f4 +/* 0EF888 7F0BAD58 46803220 */ cvt.s.w $f8, $f6 +/* 0EF88C 7F0BAD5C 460E4281 */ sub.s $f10, $f8, $f14 +/* 0EF890 7F0BAD60 460A6102 */ mul.s $f4, $f12, $f10 +/* 0EF894 7F0BAD64 46047180 */ add.s $f6, $f14, $f4 +/* 0EF898 7F0BAD68 4600320D */ trunc.w.s $f8, $f6 +/* 0EF89C 7F0BAD6C 440C4000 */ mfc1 $t4, $f8 +/* 0EF8A0 7F0BAD70 00000000 */ nop +/* 0EF8A4 7F0BAD74 AC2C2618 */ sw $t4, %lo(dword_CODE_bss_80082618)($at) +/* 0EF8A8 7F0BAD78 8C4D0024 */ lw $t5, 0x24($v0) +/* 0EF8AC 7F0BAD7C 8C6F0024 */ lw $t7, 0x24($v1) +/* 0EF8B0 7F0BAD80 448D5000 */ mtc1 $t5, $f10 +/* 0EF8B4 7F0BAD84 448F2000 */ mtc1 $t7, $f4 +/* 0EF8B8 7F0BAD88 46805420 */ cvt.s.w $f16, $f10 +/* 0EF8BC 7F0BAD8C 468021A0 */ cvt.s.w $f6, $f4 +/* 0EF8C0 7F0BAD90 46103201 */ sub.s $f8, $f6, $f16 +/* 0EF8C4 7F0BAD94 46086282 */ mul.s $f10, $f12, $f8 +/* 0EF8C8 7F0BAD98 460A8100 */ add.s $f4, $f16, $f10 +/* 0EF8CC 7F0BAD9C 4600218D */ trunc.w.s $f6, $f4 +/* 0EF8D0 7F0BADA0 44183000 */ mfc1 $t8, $f6 +/* 0EF8D4 7F0BADA4 00000000 */ nop +/* 0EF8D8 7F0BADA8 AC38261C */ sw $t8, %lo(dword_CODE_bss_8008261C)($at) +/* 0EF8DC 7F0BADAC 90590028 */ lbu $t9, 0x28($v0) +/* 0EF8E0 7F0BADB0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0EF8E4 7F0BADB4 44994000 */ mtc1 $t9, $f8 +/* 0EF8E8 7F0BADB8 07210004 */ bgez $t9, .L7F0BADCC +/* 0EF8EC 7F0BADBC 468044A0 */ cvt.s.w $f18, $f8 +/* 0EF8F0 7F0BADC0 44815000 */ mtc1 $at, $f10 +/* 0EF8F4 7F0BADC4 00000000 */ nop +/* 0EF8F8 7F0BADC8 460A9480 */ add.s $f18, $f18, $f10 +.L7F0BADCC: +/* 0EF8FC 7F0BADCC 90680028 */ lbu $t0, 0x28($v1) +/* 0EF900 7F0BADD0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0EF904 7F0BADD4 44882000 */ mtc1 $t0, $f4 +/* 0EF908 7F0BADD8 05010004 */ bgez $t0, .L7F0BADEC +/* 0EF90C 7F0BADDC 468021A0 */ cvt.s.w $f6, $f4 +/* 0EF910 7F0BADE0 44814000 */ mtc1 $at, $f8 +/* 0EF914 7F0BADE4 00000000 */ nop +/* 0EF918 7F0BADE8 46083180 */ add.s $f6, $f6, $f8 +.L7F0BADEC: +/* 0EF91C 7F0BADEC 46123281 */ sub.s $f10, $f6, $f18 +/* 0EF920 7F0BADF0 240A0001 */ li $t2, 1 +/* 0EF924 7F0BADF4 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0EF928 7F0BADF8 460A6102 */ mul.s $f4, $f12, $f10 +/* 0EF92C 7F0BADFC 46049200 */ add.s $f8, $f18, $f4 +/* 0EF930 7F0BAE00 4449F800 */ cfc1 $t1, $31 +/* 0EF934 7F0BAE04 44CAF800 */ ctc1 $t2, $31 +/* 0EF938 7F0BAE08 00000000 */ nop +/* 0EF93C 7F0BAE0C 460041A4 */ cvt.w.s $f6, $f8 +/* 0EF940 7F0BAE10 444AF800 */ cfc1 $t2, $31 +/* 0EF944 7F0BAE14 00000000 */ nop +/* 0EF948 7F0BAE18 314A0078 */ andi $t2, $t2, 0x78 +/* 0EF94C 7F0BAE1C 51400013 */ beql $t2, $zero, .L7F0BAE6C +/* 0EF950 7F0BAE20 440A3000 */ mfc1 $t2, $f6 +/* 0EF954 7F0BAE24 44813000 */ mtc1 $at, $f6 +/* 0EF958 7F0BAE28 240A0001 */ li $t2, 1 +/* 0EF95C 7F0BAE2C 46064181 */ sub.s $f6, $f8, $f6 +/* 0EF960 7F0BAE30 44CAF800 */ ctc1 $t2, $31 +/* 0EF964 7F0BAE34 00000000 */ nop +/* 0EF968 7F0BAE38 460031A4 */ cvt.w.s $f6, $f6 +/* 0EF96C 7F0BAE3C 444AF800 */ cfc1 $t2, $31 +/* 0EF970 7F0BAE40 00000000 */ nop +/* 0EF974 7F0BAE44 314A0078 */ andi $t2, $t2, 0x78 +/* 0EF978 7F0BAE48 15400005 */ bnez $t2, .L7F0BAE60 +/* 0EF97C 7F0BAE4C 00000000 */ nop +/* 0EF980 7F0BAE50 440A3000 */ mfc1 $t2, $f6 +/* 0EF984 7F0BAE54 3C018000 */ lui $at, 0x8000 +/* 0EF988 7F0BAE58 10000007 */ b .L7F0BAE78 +/* 0EF98C 7F0BAE5C 01415025 */ or $t2, $t2, $at +.L7F0BAE60: +/* 0EF990 7F0BAE60 10000005 */ b .L7F0BAE78 +/* 0EF994 7F0BAE64 240AFFFF */ li $t2, -1 +/* 0EF998 7F0BAE68 440A3000 */ mfc1 $t2, $f6 +.L7F0BAE6C: +/* 0EF99C 7F0BAE6C 00000000 */ nop +/* 0EF9A0 7F0BAE70 0540FFFB */ bltz $t2, .L7F0BAE60 +/* 0EF9A4 7F0BAE74 00000000 */ nop +.L7F0BAE78: +/* 0EF9A8 7F0BAE78 3C018008 */ lui $at, %hi(off_CODE_bss_80082620) +/* 0EF9AC 7F0BAE7C A02A2620 */ sb $t2, %lo(off_CODE_bss_80082620)($at) +/* 0EF9B0 7F0BAE80 904B0029 */ lbu $t3, 0x29($v0) +/* 0EF9B4 7F0BAE84 44C9F800 */ ctc1 $t1, $31 +/* 0EF9B8 7F0BAE88 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0EF9BC 7F0BAE8C 448B5000 */ mtc1 $t3, $f10 +/* 0EF9C0 7F0BAE90 05610004 */ bgez $t3, .L7F0BAEA4 +/* 0EF9C4 7F0BAE94 46805120 */ cvt.s.w $f4, $f10 +/* 0EF9C8 7F0BAE98 44814000 */ mtc1 $at, $f8 +/* 0EF9CC 7F0BAE9C 00000000 */ nop +/* 0EF9D0 7F0BAEA0 46082100 */ add.s $f4, $f4, $f8 +.L7F0BAEA4: +/* 0EF9D4 7F0BAEA4 E7A40018 */ swc1 $f4, 0x18($sp) +/* 0EF9D8 7F0BAEA8 906C0029 */ lbu $t4, 0x29($v1) +/* 0EF9DC 7F0BAEAC C7A40018 */ lwc1 $f4, 0x18($sp) +/* 0EF9E0 7F0BAEB0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0EF9E4 7F0BAEB4 448C3000 */ mtc1 $t4, $f6 +/* 0EF9E8 7F0BAEB8 314B00F8 */ andi $t3, $t2, 0xf8 +/* 0EF9EC 7F0BAEBC 05810004 */ bgez $t4, .L7F0BAED0 +/* 0EF9F0 7F0BAEC0 468032A0 */ cvt.s.w $f10, $f6 +/* 0EF9F4 7F0BAEC4 44814000 */ mtc1 $at, $f8 +/* 0EF9F8 7F0BAEC8 00000000 */ nop +/* 0EF9FC 7F0BAECC 46085280 */ add.s $f10, $f10, $f8 +.L7F0BAED0: +/* 0EFA00 7F0BAED0 46045181 */ sub.s $f6, $f10, $f4 +/* 0EFA04 7F0BAED4 240F0001 */ li $t7, 1 +/* 0EFA08 7F0BAED8 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0EFA0C 7F0BAEDC 46066202 */ mul.s $f8, $f12, $f6 +/* 0EFA10 7F0BAEE0 46082280 */ add.s $f10, $f4, $f8 +/* 0EFA14 7F0BAEE4 444DF800 */ cfc1 $t5, $31 +/* 0EFA18 7F0BAEE8 44CFF800 */ ctc1 $t7, $31 +/* 0EFA1C 7F0BAEEC 00000000 */ nop +/* 0EFA20 7F0BAEF0 460051A4 */ cvt.w.s $f6, $f10 +/* 0EFA24 7F0BAEF4 444FF800 */ cfc1 $t7, $31 +/* 0EFA28 7F0BAEF8 00000000 */ nop +/* 0EFA2C 7F0BAEFC 31EF0078 */ andi $t7, $t7, 0x78 +/* 0EFA30 7F0BAF00 51E00013 */ beql $t7, $zero, .L7F0BAF50 +/* 0EFA34 7F0BAF04 440F3000 */ mfc1 $t7, $f6 +/* 0EFA38 7F0BAF08 44813000 */ mtc1 $at, $f6 +/* 0EFA3C 7F0BAF0C 240F0001 */ li $t7, 1 +/* 0EFA40 7F0BAF10 46065181 */ sub.s $f6, $f10, $f6 +/* 0EFA44 7F0BAF14 44CFF800 */ ctc1 $t7, $31 +/* 0EFA48 7F0BAF18 00000000 */ nop +/* 0EFA4C 7F0BAF1C 460031A4 */ cvt.w.s $f6, $f6 +/* 0EFA50 7F0BAF20 444FF800 */ cfc1 $t7, $31 +/* 0EFA54 7F0BAF24 00000000 */ nop +/* 0EFA58 7F0BAF28 31EF0078 */ andi $t7, $t7, 0x78 +/* 0EFA5C 7F0BAF2C 15E00005 */ bnez $t7, .L7F0BAF44 +/* 0EFA60 7F0BAF30 00000000 */ nop +/* 0EFA64 7F0BAF34 440F3000 */ mfc1 $t7, $f6 +/* 0EFA68 7F0BAF38 3C018000 */ lui $at, 0x8000 +/* 0EFA6C 7F0BAF3C 10000007 */ b .L7F0BAF5C +/* 0EFA70 7F0BAF40 01E17825 */ or $t7, $t7, $at +.L7F0BAF44: +/* 0EFA74 7F0BAF44 10000005 */ b .L7F0BAF5C +/* 0EFA78 7F0BAF48 240FFFFF */ li $t7, -1 +/* 0EFA7C 7F0BAF4C 440F3000 */ mfc1 $t7, $f6 +.L7F0BAF50: +/* 0EFA80 7F0BAF50 00000000 */ nop +/* 0EFA84 7F0BAF54 05E0FFFB */ bltz $t7, .L7F0BAF44 +/* 0EFA88 7F0BAF58 00000000 */ nop +.L7F0BAF5C: +/* 0EFA8C 7F0BAF5C 3C018008 */ lui $at, %hi(byte_CODE_bss_80082621) +/* 0EFA90 7F0BAF60 A02F2621 */ sb $t7, %lo(byte_CODE_bss_80082621)($at) +/* 0EFA94 7F0BAF64 904E002A */ lbu $t6, 0x2a($v0) +/* 0EFA98 7F0BAF68 44CDF800 */ ctc1 $t5, $31 +/* 0EFA9C 7F0BAF6C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0EFAA0 7F0BAF70 448E2000 */ mtc1 $t6, $f4 +/* 0EFAA4 7F0BAF74 31ED00F8 */ andi $t5, $t7, 0xf8 +/* 0EFAA8 7F0BAF78 05C10004 */ bgez $t6, .L7F0BAF8C +/* 0EFAAC 7F0BAF7C 46802220 */ cvt.s.w $f8, $f4 +/* 0EFAB0 7F0BAF80 44815000 */ mtc1 $at, $f10 +/* 0EFAB4 7F0BAF84 00000000 */ nop +/* 0EFAB8 7F0BAF88 460A4200 */ add.s $f8, $f8, $f10 +.L7F0BAF8C: +/* 0EFABC 7F0BAF8C E7A8001C */ swc1 $f8, 0x1c($sp) +/* 0EFAC0 7F0BAF90 9078002A */ lbu $t8, 0x2a($v1) +/* 0EFAC4 7F0BAF94 C7A8001C */ lwc1 $f8, 0x1c($sp) +/* 0EFAC8 7F0BAF98 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0EFACC 7F0BAF9C 44983000 */ mtc1 $t8, $f6 +/* 0EFAD0 7F0BAFA0 07010004 */ bgez $t8, .L7F0BAFB4 +/* 0EFAD4 7F0BAFA4 46803120 */ cvt.s.w $f4, $f6 +/* 0EFAD8 7F0BAFA8 44815000 */ mtc1 $at, $f10 +/* 0EFADC 7F0BAFAC 00000000 */ nop +/* 0EFAE0 7F0BAFB0 460A2100 */ add.s $f4, $f4, $f10 +.L7F0BAFB4: +/* 0EFAE4 7F0BAFB4 46082181 */ sub.s $f6, $f4, $f8 +/* 0EFAE8 7F0BAFB8 24080001 */ li $t0, 1 +/* 0EFAEC 7F0BAFBC 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0EFAF0 7F0BAFC0 46066282 */ mul.s $f10, $f12, $f6 +/* 0EFAF4 7F0BAFC4 460A4100 */ add.s $f4, $f8, $f10 +/* 0EFAF8 7F0BAFC8 4459F800 */ cfc1 $t9, $31 +/* 0EFAFC 7F0BAFCC 44C8F800 */ ctc1 $t0, $31 +/* 0EFB00 7F0BAFD0 00000000 */ nop +/* 0EFB04 7F0BAFD4 460021A4 */ cvt.w.s $f6, $f4 +/* 0EFB08 7F0BAFD8 4448F800 */ cfc1 $t0, $31 +/* 0EFB0C 7F0BAFDC 00000000 */ nop +/* 0EFB10 7F0BAFE0 31080078 */ andi $t0, $t0, 0x78 +/* 0EFB14 7F0BAFE4 51000013 */ beql $t0, $zero, .L7F0BB034 +/* 0EFB18 7F0BAFE8 44083000 */ mfc1 $t0, $f6 +/* 0EFB1C 7F0BAFEC 44813000 */ mtc1 $at, $f6 +/* 0EFB20 7F0BAFF0 24080001 */ li $t0, 1 +/* 0EFB24 7F0BAFF4 46062181 */ sub.s $f6, $f4, $f6 +/* 0EFB28 7F0BAFF8 44C8F800 */ ctc1 $t0, $31 +/* 0EFB2C 7F0BAFFC 00000000 */ nop +/* 0EFB30 7F0BB000 460031A4 */ cvt.w.s $f6, $f6 +/* 0EFB34 7F0BB004 4448F800 */ cfc1 $t0, $31 +/* 0EFB38 7F0BB008 00000000 */ nop +/* 0EFB3C 7F0BB00C 31080078 */ andi $t0, $t0, 0x78 +/* 0EFB40 7F0BB010 15000005 */ bnez $t0, .L7F0BB028 +/* 0EFB44 7F0BB014 00000000 */ nop +/* 0EFB48 7F0BB018 44083000 */ mfc1 $t0, $f6 +/* 0EFB4C 7F0BB01C 3C018000 */ lui $at, 0x8000 +/* 0EFB50 7F0BB020 10000007 */ b .L7F0BB040 +/* 0EFB54 7F0BB024 01014025 */ or $t0, $t0, $at +.L7F0BB028: +/* 0EFB58 7F0BB028 10000005 */ b .L7F0BB040 +/* 0EFB5C 7F0BB02C 2408FFFF */ li $t0, -1 +/* 0EFB60 7F0BB030 44083000 */ mfc1 $t0, $f6 +.L7F0BB034: +/* 0EFB64 7F0BB034 00000000 */ nop +/* 0EFB68 7F0BB038 0500FFFB */ bltz $t0, .L7F0BB028 +/* 0EFB6C 7F0BB03C 00000000 */ nop +.L7F0BB040: +/* 0EFB70 7F0BB040 3C018008 */ lui $at, %hi(byte_CODE_bss_80082622) +/* 0EFB74 7F0BB044 A0282622 */ sb $t0, %lo(byte_CODE_bss_80082622)($at) +/* 0EFB78 7F0BB048 44D9F800 */ ctc1 $t9, $31 +/* 0EFB7C 7F0BB04C 311800F8 */ andi $t8, $t0, 0xf8 +/* 0EFB80 7F0BB050 A02B2620 */ sb $t3, %lo(off_CODE_bss_80082620)($at) +/* 0EFB84 7F0BB054 A02D2621 */ sb $t5, %lo(byte_CODE_bss_80082621)($at) +/* 0EFB88 7F0BB058 0FC2E9D6 */ jal copy_table1_env_to_current +/* 0EFB8C 7F0BB05C A0382622 */ sb $t8, %lo(byte_CODE_bss_80082622)($at) +/* 0EFB90 7F0BB060 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EFB94 7F0BB064 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0EFB98 7F0BB068 03E00008 */ jr $ra +/* 0EFB9C 7F0BB06C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BB070(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BB070 +/* 0EFBA0 7F0BB070 3C0E8008 */ lui $t6, %hi(sky_enabled) +/* 0EFBA4 7F0BB074 8DCE25C0 */ lw $t6, %lo(sky_enabled)($t6) +/* 0EFBA8 7F0BB078 15C00003 */ bnez $t6, .L7F0BB088 +/* 0EFBAC 7F0BB07C 00000000 */ nop +/* 0EFBB0 7F0BB080 03E00008 */ jr $ra +/* 0EFBB4 7F0BB084 00801025 */ move $v0, $a0 + +.L7F0BB088: +/* 0EFBB8 7F0BB088 10A0003D */ beqz $a1, .L7F0BB180 +/* 0EFBBC 7F0BB08C 3C078004 */ lui $a3, %hi(ptr_current_data) +/* 0EFBC0 7F0BB090 3C078004 */ lui $a3, %hi(ptr_current_data) +/* 0EFBC4 7F0BB094 00801025 */ move $v0, $a0 +/* 0EFBC8 7F0BB098 3C0FF800 */ lui $t7, 0xf800 +/* 0EFBCC 7F0BB09C 24E74DCC */ addiu $a3, %lo(ptr_current_data) # addiu $a3, $a3, 0x4dcc +/* 0EFBD0 7F0BB0A0 AC4F0000 */ sw $t7, ($v0) +/* 0EFBD4 7F0BB0A4 90ED000A */ lbu $t5, 0xa($a3) +/* 0EFBD8 7F0BB0A8 90EA0009 */ lbu $t2, 9($a3) +/* 0EFBDC 7F0BB0AC 90F90008 */ lbu $t9, 8($a3) +/* 0EFBE0 7F0BB0B0 01A07025 */ move $t6, $t5 +/* 0EFBE4 7F0BB0B4 000A5C00 */ sll $t3, $t2, 0x10 +/* 0EFBE8 7F0BB0B8 00194600 */ sll $t0, $t9, 0x18 +/* 0EFBEC 7F0BB0BC 010B6025 */ or $t4, $t0, $t3 +/* 0EFBF0 7F0BB0C0 000E7A00 */ sll $t7, $t6, 8 +/* 0EFBF4 7F0BB0C4 018FC025 */ or $t8, $t4, $t7 +/* 0EFBF8 7F0BB0C8 371900FF */ ori $t9, $t8, 0xff +/* 0EFBFC 7F0BB0CC 24840008 */ addiu $a0, $a0, 8 +/* 0EFC00 7F0BB0D0 3C09BC00 */ lui $t1, (0xBC000008 >> 16) # lui $t1, 0xbc00 +/* 0EFC04 7F0BB0D4 AC590004 */ sw $t9, 4($v0) +/* 0EFC08 7F0BB0D8 35290008 */ ori $t1, (0xBC000008 & 0xFFFF) # ori $t1, $t1, 8 +/* 0EFC0C 7F0BB0DC 00801825 */ move $v1, $a0 +/* 0EFC10 7F0BB0E0 AC690000 */ sw $t1, ($v1) +/* 0EFC14 7F0BB0E4 8CEA0004 */ lw $t2, 4($a3) +/* 0EFC18 7F0BB0E8 8CE50000 */ lw $a1, ($a3) +/* 0EFC1C 7F0BB0EC 3C080001 */ lui $t0, (0x0001F400 >> 16) # lui $t0, 1 +/* 0EFC20 7F0BB0F0 3508F400 */ ori $t0, (0x0001F400 & 0xFFFF) # ori $t0, $t0, 0xf400 +/* 0EFC24 7F0BB0F4 01453023 */ subu $a2, $t2, $a1 +/* 0EFC28 7F0BB0F8 0106001A */ div $zero, $t0, $a2 +/* 0EFC2C 7F0BB0FC 00056023 */ negu $t4, $a1 +/* 0EFC30 7F0BB100 000C7A00 */ sll $t7, $t4, 8 +/* 0EFC34 7F0BB104 01E8C021 */ addu $t8, $t7, $t0 +/* 0EFC38 7F0BB108 00005812 */ mflo $t3 +/* 0EFC3C 7F0BB10C 316DFFFF */ andi $t5, $t3, 0xffff +/* 0EFC40 7F0BB110 000D7400 */ sll $t6, $t5, 0x10 +/* 0EFC44 7F0BB114 0306001A */ div $zero, $t8, $a2 +/* 0EFC48 7F0BB118 0000C812 */ mflo $t9 +/* 0EFC4C 7F0BB11C 3329FFFF */ andi $t1, $t9, 0xffff +/* 0EFC50 7F0BB120 01C95025 */ or $t2, $t6, $t1 +/* 0EFC54 7F0BB124 AC6A0004 */ sw $t2, 4($v1) +/* 0EFC58 7F0BB128 24840008 */ addiu $a0, $a0, 8 +/* 0EFC5C 7F0BB12C 14C00002 */ bnez $a2, .L7F0BB138 +/* 0EFC60 7F0BB130 00000000 */ nop +/* 0EFC64 7F0BB134 0007000D */ break 7 +.L7F0BB138: +/* 0EFC68 7F0BB138 2401FFFF */ li $at, -1 +/* 0EFC6C 7F0BB13C 14C10004 */ bne $a2, $at, .L7F0BB150 +/* 0EFC70 7F0BB140 3C018000 */ lui $at, 0x8000 +/* 0EFC74 7F0BB144 15010002 */ bne $t0, $at, .L7F0BB150 +/* 0EFC78 7F0BB148 00000000 */ nop +/* 0EFC7C 7F0BB14C 0006000D */ break 6 +.L7F0BB150: +/* 0EFC80 7F0BB150 01000821 */ addu $at, $t0, $zero +/* 0EFC84 7F0BB154 14C00002 */ bnez $a2, .L7F0BB160 +/* 0EFC88 7F0BB158 00000000 */ nop +/* 0EFC8C 7F0BB15C 0007000D */ break 7 +.L7F0BB160: +/* 0EFC90 7F0BB160 2401FFFF */ li $at, -1 +/* 0EFC94 7F0BB164 14C10004 */ bne $a2, $at, .L7F0BB178 +/* 0EFC98 7F0BB168 3C018000 */ lui $at, 0x8000 +/* 0EFC9C 7F0BB16C 17010002 */ bne $t8, $at, .L7F0BB178 +/* 0EFCA0 7F0BB170 00000000 */ nop +/* 0EFCA4 7F0BB174 0006000D */ break 6 +.L7F0BB178: +/* 0EFCA8 7F0BB178 1000003B */ b .L7F0BB268 +/* 0EFCAC 7F0BB17C 24850008 */ addiu $a1, $a0, 8 +.L7F0BB180: +/* 0EFCB0 7F0BB180 00801025 */ move $v0, $a0 +/* 0EFCB4 7F0BB184 3C08F800 */ lui $t0, 0xf800 +/* 0EFCB8 7F0BB188 24E74DCC */ addiu $a3, $a3, %lo(ptr_current_data) +/* 0EFCBC 7F0BB18C AC480000 */ sw $t0, ($v0) +/* 0EFCC0 7F0BB190 90E9000A */ lbu $t1, 0xa($a3) +/* 0EFCC4 7F0BB194 90F80009 */ lbu $t8, 9($a3) +/* 0EFCC8 7F0BB198 90ED0008 */ lbu $t5, 8($a3) +/* 0EFCCC 7F0BB19C 01205025 */ move $t2, $t1 +/* 0EFCD0 7F0BB1A0 0018CC00 */ sll $t9, $t8, 0x10 +/* 0EFCD4 7F0BB1A4 000D6600 */ sll $t4, $t5, 0x18 +/* 0EFCD8 7F0BB1A8 01997025 */ or $t6, $t4, $t9 +/* 0EFCDC 7F0BB1AC 000A4200 */ sll $t0, $t2, 8 +/* 0EFCE0 7F0BB1B0 01C85825 */ or $t3, $t6, $t0 +/* 0EFCE4 7F0BB1B4 356D00FF */ ori $t5, $t3, 0xff +/* 0EFCE8 7F0BB1B8 24840008 */ addiu $a0, $a0, 8 +/* 0EFCEC 7F0BB1BC 3C0FBC00 */ lui $t7, (0xBC000008 >> 16) # lui $t7, 0xbc00 +/* 0EFCF0 7F0BB1C0 AC4D0004 */ sw $t5, 4($v0) +/* 0EFCF4 7F0BB1C4 35EF0008 */ ori $t7, (0xBC000008 & 0xFFFF) # ori $t7, $t7, 8 +/* 0EFCF8 7F0BB1C8 00801825 */ move $v1, $a0 +/* 0EFCFC 7F0BB1CC AC6F0000 */ sw $t7, ($v1) +/* 0EFD00 7F0BB1D0 8CF80004 */ lw $t8, 4($a3) +/* 0EFD04 7F0BB1D4 8CE50000 */ lw $a1, ($a3) +/* 0EFD08 7F0BB1D8 3C0C0001 */ lui $t4, (0x0001F400 >> 16) # lui $t4, 1 +/* 0EFD0C 7F0BB1DC 358CF400 */ ori $t4, (0x0001F400 & 0xFFFF) # ori $t4, $t4, 0xf400 +/* 0EFD10 7F0BB1E0 03053023 */ subu $a2, $t8, $a1 +/* 0EFD14 7F0BB1E4 0186001A */ div $zero, $t4, $a2 +/* 0EFD18 7F0BB1E8 00057023 */ negu $t6, $a1 +/* 0EFD1C 7F0BB1EC 000E4200 */ sll $t0, $t6, 8 +/* 0EFD20 7F0BB1F0 010C5821 */ addu $t3, $t0, $t4 +/* 0EFD24 7F0BB1F4 0000C812 */ mflo $t9 +/* 0EFD28 7F0BB1F8 3329FFFF */ andi $t1, $t9, 0xffff +/* 0EFD2C 7F0BB1FC 00095400 */ sll $t2, $t1, 0x10 +/* 0EFD30 7F0BB200 0166001A */ div $zero, $t3, $a2 +/* 0EFD34 7F0BB204 00006812 */ mflo $t5 +/* 0EFD38 7F0BB208 31AFFFFF */ andi $t7, $t5, 0xffff +/* 0EFD3C 7F0BB20C 014FC025 */ or $t8, $t2, $t7 +/* 0EFD40 7F0BB210 AC780004 */ sw $t8, 4($v1) +/* 0EFD44 7F0BB214 24840008 */ addiu $a0, $a0, 8 +/* 0EFD48 7F0BB218 14C00002 */ bnez $a2, .L7F0BB224 +/* 0EFD4C 7F0BB21C 00000000 */ nop +/* 0EFD50 7F0BB220 0007000D */ break 7 +.L7F0BB224: +/* 0EFD54 7F0BB224 2401FFFF */ li $at, -1 +/* 0EFD58 7F0BB228 14C10004 */ bne $a2, $at, .L7F0BB23C +/* 0EFD5C 7F0BB22C 3C018000 */ lui $at, 0x8000 +/* 0EFD60 7F0BB230 15810002 */ bne $t4, $at, .L7F0BB23C +/* 0EFD64 7F0BB234 00000000 */ nop +/* 0EFD68 7F0BB238 0006000D */ break 6 +.L7F0BB23C: +/* 0EFD6C 7F0BB23C 01800821 */ addu $at, $t4, $zero +/* 0EFD70 7F0BB240 14C00002 */ bnez $a2, .L7F0BB24C +/* 0EFD74 7F0BB244 00000000 */ nop +/* 0EFD78 7F0BB248 0007000D */ break 7 +.L7F0BB24C: +/* 0EFD7C 7F0BB24C 2401FFFF */ li $at, -1 +/* 0EFD80 7F0BB250 14C10004 */ bne $a2, $at, .L7F0BB264 +/* 0EFD84 7F0BB254 3C018000 */ lui $at, 0x8000 +/* 0EFD88 7F0BB258 15610002 */ bne $t3, $at, .L7F0BB264 +/* 0EFD8C 7F0BB25C 00000000 */ nop +/* 0EFD90 7F0BB260 0006000D */ break 6 +.L7F0BB264: +/* 0EFD94 7F0BB264 24850008 */ addiu $a1, $a0, 8 +.L7F0BB268: +/* 0EFD98 7F0BB268 3C0CB700 */ lui $t4, 0xb700 +/* 0EFD9C 7F0BB26C 3C190001 */ lui $t9, 1 +/* 0EFDA0 7F0BB270 AC990004 */ sw $t9, 4($a0) +/* 0EFDA4 7F0BB274 AC8C0000 */ sw $t4, ($a0) +/* 0EFDA8 7F0BB278 3C09BA00 */ lui $t1, (0xBA000402 >> 16) # lui $t1, 0xba00 +/* 0EFDAC 7F0BB27C 35290402 */ ori $t1, (0xBA000402 & 0xFFFF) # ori $t1, $t1, 0x402 +/* 0EFDB0 7F0BB280 240E0020 */ li $t6, 32 +/* 0EFDB4 7F0BB284 ACAE0004 */ sw $t6, 4($a1) +/* 0EFDB8 7F0BB288 ACA90000 */ sw $t1, ($a1) +/* 0EFDBC 7F0BB28C 24A20008 */ addiu $v0, $a1, 8 +/* 0EFDC0 7F0BB290 03E00008 */ jr $ra +/* 0EFDC4 7F0BB294 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BB298(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BB298 +/* 0EFDC8 7F0BB298 3C0E8008 */ lui $t6, %hi(sky_enabled) +/* 0EFDCC 7F0BB29C 8DCE25C0 */ lw $t6, %lo(sky_enabled)($t6) +/* 0EFDD0 7F0BB2A0 24820008 */ addiu $v0, $a0, 8 +/* 0EFDD4 7F0BB2A4 3C0FB600 */ lui $t7, 0xb600 +/* 0EFDD8 7F0BB2A8 15C00003 */ bnez $t6, .L7F0BB2B8 +/* 0EFDDC 7F0BB2AC 3C180001 */ lui $t8, 1 +/* 0EFDE0 7F0BB2B0 03E00008 */ jr $ra +/* 0EFDE4 7F0BB2B4 00801025 */ move $v0, $a0 + +.L7F0BB2B8: +/* 0EFDE8 7F0BB2B8 AC8F0000 */ sw $t7, ($a0) +/* 0EFDEC 7F0BB2BC AC980004 */ sw $t8, 4($a0) +/* 0EFDF0 7F0BB2C0 03E00008 */ jr $ra +/* 0EFDF4 7F0BB2C4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BB2C8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BB2C8 +/* 0EFDF8 7F0BB2C8 3C0E8008 */ lui $t6, %hi(sky_enabled) +/* 0EFDFC 7F0BB2CC 8DCE25C0 */ lw $t6, %lo(sky_enabled)($t6) +/* 0EFE00 7F0BB2D0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0EFE04 7F0BB2D4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0EFE08 7F0BB2D8 15C00003 */ bnez $t6, .L7F0BB2E8 +/* 0EFE0C 7F0BB2DC AFA50034 */ sw $a1, 0x34($sp) +/* 0EFE10 7F0BB2E0 10000029 */ b .L7F0BB388 +/* 0EFE14 7F0BB2E4 24020001 */ li $v0, 1 +.L7F0BB2E8: +/* 0EFE18 7F0BB2E8 0FC227F5 */ jal get_BONDdata_position +/* 0EFE1C 7F0BB2EC AFA40030 */ sw $a0, 0x30($sp) +/* 0EFE20 7F0BB2F0 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0EFE24 7F0BB2F4 AFA2001C */ sw $v0, 0x1c($sp) +/* 0EFE28 7F0BB2F8 8FA3001C */ lw $v1, 0x1c($sp) +/* 0EFE2C 7F0BB2FC 8FA40030 */ lw $a0, 0x30($sp) +/* 0EFE30 7F0BB300 3C018004 */ lui $at, %hi(near_fog_value) +/* 0EFE34 7F0BB304 C4660000 */ lwc1 $f6, ($v1) +/* 0EFE38 7F0BB308 C4840000 */ lwc1 $f4, ($a0) +/* 0EFE3C 7F0BB30C 46062201 */ sub.s $f8, $f4, $f6 +/* 0EFE40 7F0BB310 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0EFE44 7F0BB314 C4700004 */ lwc1 $f16, 4($v1) +/* 0EFE48 7F0BB318 C48A0004 */ lwc1 $f10, 4($a0) +/* 0EFE4C 7F0BB31C 46105481 */ sub.s $f18, $f10, $f16 +/* 0EFE50 7F0BB320 C7AA0024 */ lwc1 $f10, 0x24($sp) +/* 0EFE54 7F0BB324 E7B20028 */ swc1 $f18, 0x28($sp) +/* 0EFE58 7F0BB328 C4660008 */ lwc1 $f6, 8($v1) +/* 0EFE5C 7F0BB32C C4840008 */ lwc1 $f4, 8($a0) +/* 0EFE60 7F0BB330 46062201 */ sub.s $f8, $f4, $f6 +/* 0EFE64 7F0BB334 C7A40028 */ lwc1 $f4, 0x28($sp) +/* 0EFE68 7F0BB338 E7A8002C */ swc1 $f8, 0x2c($sp) +/* 0EFE6C 7F0BB33C C4500000 */ lwc1 $f16, ($v0) +/* 0EFE70 7F0BB340 C4460004 */ lwc1 $f6, 4($v0) +/* 0EFE74 7F0BB344 46105482 */ mul.s $f18, $f10, $f16 +/* 0EFE78 7F0BB348 C4500008 */ lwc1 $f16, 8($v0) +/* 0EFE7C 7F0BB34C 24020001 */ li $v0, 1 +/* 0EFE80 7F0BB350 46062202 */ mul.s $f8, $f4, $f6 +/* 0EFE84 7F0BB354 C7A4002C */ lwc1 $f4, 0x2c($sp) +/* 0EFE88 7F0BB358 46048182 */ mul.s $f6, $f16, $f4 +/* 0EFE8C 7F0BB35C 46089280 */ add.s $f10, $f18, $f8 +/* 0EFE90 7F0BB360 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 0EFE94 7F0BB364 C4324DC4 */ lwc1 $f18, %lo(near_fog_value)($at) +/* 0EFE98 7F0BB368 460A3000 */ add.s $f0, $f6, $f10 +/* 0EFE9C 7F0BB36C 46089400 */ add.s $f16, $f18, $f8 +/* 0EFEA0 7F0BB370 4600803C */ c.lt.s $f16, $f0 +/* 0EFEA4 7F0BB374 00000000 */ nop +/* 0EFEA8 7F0BB378 45000003 */ bc1f .L7F0BB388 +/* 0EFEAC 7F0BB37C 00000000 */ nop +/* 0EFEB0 7F0BB380 10000001 */ b .L7F0BB388 +/* 0EFEB4 7F0BB384 00001025 */ move $v0, $zero +.L7F0BB388: +/* 0EFEB8 7F0BB388 8FBF0014 */ lw $ra, 0x14($sp) +/* 0EFEBC 7F0BB38C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0EFEC0 7F0BB390 03E00008 */ jr $ra +/* 0EFEC4 7F0BB394 00000000 */ nop +) +#endif + + + + + +u32 return_nearfog_values(void){ + return ptr_nearfog_enviroment_values; +} + + + + + + +#ifdef NONMATCHING +void if_sky_present_convert_values(void) { + +} +#else +GLOBAL_ASM( +.text +glabel if_sky_present_convert_values +/* 0EFED4 7F0BB3A4 3C0E8008 */ lui $t6, %hi(sky_enabled) +/* 0EFED8 7F0BB3A8 8DCE25C0 */ lw $t6, %lo(sky_enabled)($t6) +/* 0EFEDC 7F0BB3AC 55C00004 */ bnezl $t6, .L7F0BB3C0 +/* 0EFEE0 7F0BB3B0 44801000 */ mtc1 $zero, $f2 +/* 0EFEE4 7F0BB3B4 03E00008 */ jr $ra +/* 0EFEE8 7F0BB3B8 24020002 */ li $v0, 2 + +/* 0EFEEC 7F0BB3BC 44801000 */ mtc1 $zero, $f2 +.L7F0BB3C0: +/* 0EFEF0 7F0BB3C0 C4840018 */ lwc1 $f4, 0x18($a0) +/* 0EFEF4 7F0BB3C4 3C028004 */ lui $v0, %hi(ptr_current_data) +/* 0EFEF8 7F0BB3C8 24424DCC */ addiu $v0, %lo(ptr_current_data) # addiu $v0, $v0, 0x4dcc +/* 0EFEFC 7F0BB3CC 4602203C */ c.lt.s $f4, $f2 +/* 0EFF00 7F0BB3D0 3C038008 */ lui $v1, %hi(buffer_far_pervasiveness) +/* 0EFF04 7F0BB3D4 45020004 */ bc1fl .L7F0BB3E8 +/* 0EFF08 7F0BB3D8 904F0008 */ lbu $t7, 8($v0) +/* 0EFF0C 7F0BB3DC 03E00008 */ jr $ra +/* 0EFF10 7F0BB3E0 24020002 */ li $v0, 2 + +/* 0EFF14 7F0BB3E4 904F0008 */ lbu $t7, 8($v0) +.L7F0BB3E8: +/* 0EFF18 7F0BB3E8 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0EFF1C 7F0BB3EC 44816000 */ mtc1 $at, $f12 +/* 0EFF20 7F0BB3F0 448F3000 */ mtc1 $t7, $f6 +/* 0EFF24 7F0BB3F4 246325C8 */ addiu $v1, $v1, %lo(buffer_far_pervasiveness) +/* 0EFF28 7F0BB3F8 05E10005 */ bgez $t7, .L7F0BB410 +/* 0EFF2C 7F0BB3FC 46803220 */ cvt.s.w $f8, $f6 +/* 0EFF30 7F0BB400 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0EFF34 7F0BB404 44815000 */ mtc1 $at, $f10 +/* 0EFF38 7F0BB408 00000000 */ nop +/* 0EFF3C 7F0BB40C 460A4200 */ add.s $f8, $f8, $f10 +.L7F0BB410: +/* 0EFF40 7F0BB410 460C4403 */ div.s $f16, $f8, $f12 +/* 0EFF44 7F0BB414 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0EFF48 7F0BB418 E4B00000 */ swc1 $f16, ($a1) +/* 0EFF4C 7F0BB41C 90580009 */ lbu $t8, 9($v0) +/* 0EFF50 7F0BB420 44989000 */ mtc1 $t8, $f18 +/* 0EFF54 7F0BB424 07010004 */ bgez $t8, .L7F0BB438 +/* 0EFF58 7F0BB428 46809120 */ cvt.s.w $f4, $f18 +/* 0EFF5C 7F0BB42C 44813000 */ mtc1 $at, $f6 +/* 0EFF60 7F0BB430 00000000 */ nop +/* 0EFF64 7F0BB434 46062100 */ add.s $f4, $f4, $f6 +.L7F0BB438: +/* 0EFF68 7F0BB438 460C2283 */ div.s $f10, $f4, $f12 +/* 0EFF6C 7F0BB43C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0EFF70 7F0BB440 E4AA0004 */ swc1 $f10, 4($a1) +/* 0EFF74 7F0BB444 9059000A */ lbu $t9, 0xa($v0) +/* 0EFF78 7F0BB448 44994000 */ mtc1 $t9, $f8 +/* 0EFF7C 7F0BB44C 07210004 */ bgez $t9, .L7F0BB460 +/* 0EFF80 7F0BB450 46804420 */ cvt.s.w $f16, $f8 +/* 0EFF84 7F0BB454 44819000 */ mtc1 $at, $f18 +/* 0EFF88 7F0BB458 00000000 */ nop +/* 0EFF8C 7F0BB45C 46128400 */ add.s $f16, $f16, $f18 +.L7F0BB460: +/* 0EFF90 7F0BB460 460C8183 */ div.s $f6, $f16, $f12 +/* 0EFF94 7F0BB464 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0EFF98 7F0BB468 E4A60008 */ swc1 $f6, 8($a1) +/* 0EFF9C 7F0BB46C C48A0018 */ lwc1 $f10, 0x18($a0) +/* 0EFFA0 7F0BB470 C4640010 */ lwc1 $f4, 0x10($v1) +/* 0EFFA4 7F0BB474 C4720014 */ lwc1 $f18, 0x14($v1) +/* 0EFFA8 7F0BB478 460A2203 */ div.s $f8, $f4, $f10 +/* 0EFFAC 7F0BB47C 46124400 */ add.s $f16, $f8, $f18 +/* 0EFFB0 7F0BB480 E4B0000C */ swc1 $f16, 0xc($a1) +/* 0EFFB4 7F0BB484 C4A0000C */ lwc1 $f0, 0xc($a1) +/* 0EFFB8 7F0BB488 4602003C */ c.lt.s $f0, $f2 +/* 0EFFBC 7F0BB48C 00000000 */ nop +/* 0EFFC0 7F0BB490 45020004 */ bc1fl .L7F0BB4A4 +/* 0EFFC4 7F0BB494 44813000 */ mtc1 $at, $f6 +/* 0EFFC8 7F0BB498 03E00008 */ jr $ra +/* 0EFFCC 7F0BB49C 24020002 */ li $v0, 2 + +/* 0EFFD0 7F0BB4A0 44813000 */ mtc1 $at, $f6 +.L7F0BB4A4: +/* 0EFFD4 7F0BB4A4 24020001 */ li $v0, 1 +/* 0EFFD8 7F0BB4A8 4600303C */ c.lt.s $f6, $f0 +/* 0EFFDC 7F0BB4AC 00000000 */ nop +/* 0EFFE0 7F0BB4B0 45000003 */ bc1f .L7F0BB4C0 +/* 0EFFE4 7F0BB4B4 00000000 */ nop +/* 0EFFE8 7F0BB4B8 03E00008 */ jr $ra +/* 0EFFEC 7F0BB4BC 00001025 */ move $v0, $zero + +.L7F0BB4C0: +/* 0EFFF0 7F0BB4C0 03E00008 */ jr $ra +/* 0EFFF4 7F0BB4C4 00000000 */ nop +) +#endif + + + diff --git a/src/game/fog.h b/src/game/fog.h new file mode 100644 index 0000000..6404087 --- /dev/null +++ b/src/game/fog.h @@ -0,0 +1,60 @@ +#ifndef _FOG_H_ +#define _FOG_H_ +#include "ultra64.h" + +struct fog_element { + u32 stageID; + f32 blendmultiplier; + f32 farfog; + f32 nearfog; + f32 maxvisrange; + f32 maxobfuscationrange; + f32 minvisrange; + u32 intensity; + u32 dif_in_light; + u32 far_ambiantlight; + u8 red; + u8 green; + u8 blue; + u8 clouds; + f32 cloudrepeat; + u16 skyimageid; + u16 reserved; + f32 cloudred; + f32 cloudgreen; + f32 cloudblue; + u8 iswater; + u8 padding[3]; + f32 waterrepeat; + u16 waterimageid; + u16 reserved2; + f32 waterred; + f32 watergreen; + f32 waterblue; + f32 waterconcavity; +}; + +struct fog_element2 { + u32 stageID; + u8 red; + u8 green; + u8 blue; + u8 clouds; + f32 cloudrepeat; + u16 skyimageid; + u16 reserved; + f32 cloudred; + f32 cloudgreen; + f32 cloudblue; + u8 iswater; + u8 padding[3]; + f32 waterrepeat; + u16 waterimageid; + u16 reserved2; + f32 waterred; + f32 watergreen; + f32 waterblue; + f32 waterconcavity; +}; + +#endif diff --git a/src/game/game_debug.c b/src/game/game_debug.c new file mode 100644 index 0000000..ada79da --- /dev/null +++ b/src/game/game_debug.c @@ -0,0 +1,29 @@ +#include "ultra64.h" +#include "deb.h" +#include "game/ob.h" +#include "memp.h" +#include "game/game_debug.h" + +// data +//D:8004EAE0 +s32 D_8004EAE0[] = {0, 0, 0, 0}; + +void gameInitDebugNoticeList(void) { + debCheckAddDebugNoticeListEntry(&D_8004EAE0, "game_c_debug"); +} + +void reset_mem_bank_5(void) { + obBlankResourcesInBank5(); + mempResetBank(5); + obBlankResourcesLoadedInBank(5); +} + +void sub_GAME_7F0D1A7C(void) { + mempNullNextEntryInBank(5); + obBlankResourcesLoadedInBank(5); +} + + + + + diff --git a/src/game/game_debug.h b/src/game/game_debug.h new file mode 100644 index 0000000..66e02db --- /dev/null +++ b/src/game/game_debug.h @@ -0,0 +1,7 @@ +#ifndef _GAME_DEBUG_H_ +#define _GAME_DEBUG_H_ +#include "ultra64.h" + +void gameInitDebugNoticeList(void); + +#endif diff --git a/src/game/gamefile.c b/src/game/gamefile.c new file mode 100644 index 0000000..0ac8cba --- /dev/null +++ b/src/game/gamefile.c @@ -0,0 +1,484 @@ +#include "ultra64.h" +#include "game/gamefile.h" +#include "game/gamefile2.h" +#include "game/mainmenu.h" + +/* EEPROM masks for in-game settings */ +#define OPTION_INVERTLOOK 0x0001 +#define OPTION_AUTOAIM 0x0002 +#define OPTION_AIMCONTROL 0x0004 +#define OPTION_SIGHTONSCREEN 0x0008 +#define OPTION_LOOKAHEAD 0x0010 +#define OPTION_DISPLAYAMMO 0x0020 +#define OPTION_SCREENWIDE 0x0040 +#define OPTION_SCREENRATIO 0x0080 +#define OPTION_CONTROLTYPE 0x0700 +#define OPTION_SCREENCINEMA 0x0800 + +#define DEFAULT_OPTIONS (OPTION_AUTOAIM | OPTION_SIGHTONSCREEN | OPTION_LOOKAHEAD | OPTION_DISPLAYAMMO) + +// bss +//CODE.bss:80069920 +struct save_data save1; +//CODE.bss:80069980 +struct save_data save2; +//CODE.bss:800699E0 +struct save_data save3; +//CODE.bss:80069A40 +struct save_data save4; +//CODE.bss:80069AA0 +struct save_data save5; +//CODE.bss:80069B00 +struct save_data save6; + +//CODE.bss:80069B60 +u32 dword_CODE_bss_80069B60; + + +//data +//D:8002C510 +u32 save_selected_bond[] = {0,0,0,0}; + +//D:8002C520 +struct save_data D_8002C520 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0}; +//D:8002C580 +struct save_data D_8002C580 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0}; +//D:8002C5E0 +struct save_data D_8002C5E0 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0}; +//D:8002C640 +u32 D_8002C640 = 0x00000000; +u32 D_8002C644 = 0x00000000; +u32 flt_8002C648 = 0x42000000; +u32 dword_8002C64C = 0x00000000; +u32 dword_8002C650 = 0x00000000; +u32 dword_8002C654 = 0x00000000; +u32 dword_8002C658 = 0x00000000; +u32 dword_8002C65C = 0x00000000; + + + + +//D:8002C660 +struct save_data D_8002C660 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0}; + +//D:8002C6C0 +struct save_data D_8002C6C0 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:8002C720 +struct save_data D_8002C720 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:8002C780 +struct save_data D_8002C780 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:8002C7E0 +struct save_data D_8002C7E0 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:8002C840 +struct save_data D_8002C840 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:8002C8A0 +struct save_data blank_eeprom = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + + +f32 get_007_reaction_speed(void) +{ + if (get_current_difficulty() == DIFFICULTY_007) { + return slider_007_mode_reaction; + } + return 0.f; +} + +f32 get_007_health_mod(void) +{ + if (get_current_difficulty() == DIFFICULTY_007) { + return slider_007_mode_health; + } + return 1.f; +} + +f32 get_007_damage_mod(void) +{ + if (get_current_difficulty() == DIFFICULTY_007) { + return slider_007_mode_accuracy; + } + return 1.f; +} + +f32 get_007_accuracy_mod(void) +{ + if (get_current_difficulty() == DIFFICULTY_007) { + return slider_007_mode_damage; + } + return 1.f; +} + + + +#ifdef NONMATCHING +void end_of_mission_briefing(void) + +{ + short sVar1; + int iVar3; + save_file *folder; + ulonglong uVar2; + + if (((-1 < briefingpage) && (selected_difficulty != DIFFICULTY_007)) && (append_cheat_sp == FALSE) + ) { + sVar1 = (&solo_target_times_ARRAY_8002b564 + [mission_folder_setup_entries[briefingpage].mission_num].agent_time) + [selected_difficulty]; + + unlock_stage_in_folder_on_difficulty + (selected_folder_num,(longlong)mission_folder_setup_entries[briefingpage].mission_num, + (longlong)selected_difficulty,getMissiontime() / 0x3c); + + if ((longlong)(getMissiontime() / 0x3c) <= (longlong)sVar1) { + folder = getEEPROMforFoldernum(selected_folder_num); + if (check_if_cheat_unlocked(folder,(longlong)mission_folder_setup_entries[briefingpage].mission_num) == 0) { + proc_7F01E760(selected_folder_num,(longlong)mission_folder_setup_entries[briefingpage].mission_num); + newcheatunlocked = 1; + return; + } + } + newcheatunlocked = 0; + } + return; +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel end_of_mission_briefing +/* 051ECC 7F01D39C 3C028003 */ lui $v0, %hi(briefingpage) +/* 051ED0 7F01D3A0 8C42A8F8 */ lw $v0, %lo(briefingpage)($v0) +/* 051ED4 7F01D3A4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 051ED8 7F01D3A8 AFBF0014 */ sw $ra, 0x14($sp) +/* 051EDC 7F01D3AC 04400050 */ bltz $v0, .L7F01D4F0 +/* 051EE0 7F01D3B0 3C038003 */ lui $v1, %hi(selected_difficulty) +/* 051EE4 7F01D3B4 8C63A8FC */ lw $v1, %lo(selected_difficulty)($v1) +/* 051EE8 7F01D3B8 24010003 */ li $at, 3 +/* 051EEC 7F01D3BC 3C0E8003 */ lui $t6, %hi(append_cheat_sp) +/* 051EF0 7F01D3C0 5061004C */ beql $v1, $at, .L7F01D4F4 +/* 051EF4 7F01D3C4 8FBF0014 */ lw $ra, 0x14($sp) +/* 051EF8 7F01D3C8 8DCEA900 */ lw $t6, %lo(append_cheat_sp)($t6) +/* 051EFC 7F01D3CC 000278C0 */ sll $t7, $v0, 3 +/* 051F00 7F01D3D0 01E27823 */ subu $t7, $t7, $v0 +/* 051F04 7F01D3D4 15C00046 */ bnez $t6, .L7F01D4F0 +/* 051F08 7F01D3D8 000F7880 */ sll $t7, $t7, 2 +/* 051F0C 7F01D3DC 3C188003 */ lui $t8, %hi(mission_folder_setup_entries+0x14) +/* 051F10 7F01D3E0 030FC021 */ addu $t8, $t8, $t7 +/* 051F14 7F01D3E4 8F18ABF8 */ lw $t8, %lo(mission_folder_setup_entries+0x14)($t8) +/* 051F18 7F01D3E8 00034040 */ sll $t0, $v1, 1 +/* 051F1C 7F01D3EC 3C0A8003 */ lui $t2, %hi(solo_target_time_array) +/* 051F20 7F01D3F0 0018C880 */ sll $t9, $t8, 2 +/* 051F24 7F01D3F4 0338C823 */ subu $t9, $t9, $t8 +/* 051F28 7F01D3F8 0019C840 */ sll $t9, $t9, 1 +/* 051F2C 7F01D3FC 03284821 */ addu $t1, $t9, $t0 +/* 051F30 7F01D400 01495021 */ addu $t2, $t2, $t1 +/* 051F34 7F01D404 854AB564 */ lh $t2, %lo(solo_target_time_array)($t2) +/* 051F38 7F01D408 0FC22FEE */ jal get_mission_timer +/* 051F3C 7F01D40C A7AA001E */ sh $t2, 0x1e($sp) +/* 051F40 7F01D410 2401003C */ li $at, 60 +/* 051F44 7F01D414 0041001A */ div $zero, $v0, $at +/* 051F48 7F01D418 3C0B8003 */ lui $t3, %hi(briefingpage) +/* 051F4C 7F01D41C 8D6BA8F8 */ lw $t3, %lo(briefingpage)($t3) +/* 051F50 7F01D420 3C058003 */ lui $a1, %hi(mission_folder_setup_entries+0x14) +/* 051F54 7F01D424 00003812 */ mflo $a3 +/* 051F58 7F01D428 000B60C0 */ sll $t4, $t3, 3 +/* 051F5C 7F01D42C 018B6023 */ subu $t4, $t4, $t3 +/* 051F60 7F01D430 000C6080 */ sll $t4, $t4, 2 +/* 051F64 7F01D434 00AC2821 */ addu $a1, $a1, $t4 +/* 051F68 7F01D438 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 051F6C 7F01D43C 3C068003 */ lui $a2, %hi(selected_difficulty) +/* 051F70 7F01D440 8CC6A8FC */ lw $a2, %lo(selected_difficulty)($a2) +/* 051F74 7F01D444 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 051F78 7F01D448 0FC0797E */ jal unlock_stage_in_folder_on_difficulty +/* 051F7C 7F01D44C 8CA5ABF8 */ lw $a1, %lo(mission_folder_setup_entries+0x14)($a1) +/* 051F80 7F01D450 0FC22FEE */ jal get_mission_timer +/* 051F84 7F01D454 00000000 */ nop +/* 051F88 7F01D458 2401003C */ li $at, 60 +/* 051F8C 7F01D45C 0041001A */ div $zero, $v0, $at +/* 051F90 7F01D460 87AD001E */ lh $t5, 0x1e($sp) +/* 051F94 7F01D464 00007012 */ mflo $t6 +/* 051F98 7F01D468 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 051F9C 7F01D46C 01AE082A */ slt $at, $t5, $t6 +/* 051FA0 7F01D470 1420001D */ bnez $at, .L7F01D4E8 +/* 051FA4 7F01D474 00000000 */ nop +/* 051FA8 7F01D478 0FC07771 */ jal get_save_folder_ptr +/* 051FAC 7F01D47C 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 051FB0 7F01D480 3C0F8003 */ lui $t7, %hi(briefingpage) +/* 051FB4 7F01D484 8DEFA8F8 */ lw $t7, %lo(briefingpage)($t7) +/* 051FB8 7F01D488 3C058003 */ lui $a1, %hi(mission_folder_setup_entries+0x14) +/* 051FBC 7F01D48C 00402025 */ move $a0, $v0 +/* 051FC0 7F01D490 000FC0C0 */ sll $t8, $t7, 3 +/* 051FC4 7F01D494 030FC023 */ subu $t8, $t8, $t7 +/* 051FC8 7F01D498 0018C080 */ sll $t8, $t8, 2 +/* 051FCC 7F01D49C 00B82821 */ addu $a1, $a1, $t8 +/* 051FD0 7F01D4A0 0FC07748 */ jal check_if_cheat_unlocked +/* 051FD4 7F01D4A4 8CA5ABF8 */ lw $a1, %lo(mission_folder_setup_entries+0x14)($a1) +/* 051FD8 7F01D4A8 1440000F */ bnez $v0, .L7F01D4E8 +/* 051FDC 7F01D4AC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 051FE0 7F01D4B0 3C198003 */ lui $t9, %hi(briefingpage) +/* 051FE4 7F01D4B4 8F39A8F8 */ lw $t9, %lo(briefingpage)($t9) +/* 051FE8 7F01D4B8 3C058003 */ lui $a1, %hi(mission_folder_setup_entries+0x14) +/* 051FEC 7F01D4BC 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 051FF0 7F01D4C0 001940C0 */ sll $t0, $t9, 3 +/* 051FF4 7F01D4C4 01194023 */ subu $t0, $t0, $t9 +/* 051FF8 7F01D4C8 00084080 */ sll $t0, $t0, 2 +/* 051FFC 7F01D4CC 00A82821 */ addu $a1, $a1, $t0 +/* 052000 7F01D4D0 0FC079D8 */ jal sub_GAME_7F01E760 +/* 052004 7F01D4D4 8CA5ABF8 */ lw $a1, %lo(mission_folder_setup_entries+0x14)($a1) +/* 052008 7F01D4D8 24090001 */ li $t1, 1 +/* 05200C 7F01D4DC 3C018007 */ lui $at, %hi(newcheatunlocked) +/* 052010 7F01D4E0 10000003 */ b .L7F01D4F0 +/* 052014 7F01D4E4 AC299790 */ sw $t1, %lo(newcheatunlocked)($at) +.L7F01D4E8: +/* 052018 7F01D4E8 3C018007 */ lui $at, %hi(newcheatunlocked) +/* 05201C 7F01D4EC AC209790 */ sw $zero, %lo(newcheatunlocked)($at) +.L7F01D4F0: +/* 052020 7F01D4F0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01D4F4: +/* 052024 7F01D4F4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 052028 7F01D4F8 03E00008 */ jr $ra +/* 05202C 7F01D4FC 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel end_of_mission_briefing +/* 0520BC 7F01D54C 3C028003 */ lui $v0, %hi(briefingpage) # $v0, 0x8003 +/* 0520C0 7F01D550 8C42A938 */ lw $v0, %lo(briefingpage)($v0) +/* 0520C4 7F01D554 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0520C8 7F01D558 AFBF0014 */ sw $ra, 0x14($sp) +/* 0520CC 7F01D55C 0440004D */ bltz $v0, .L7F01D694 +/* 0520D0 7F01D560 3C038003 */ lui $v1, %hi(selected_difficulty) # $v1, 0x8003 +/* 0520D4 7F01D564 8C63A93C */ lw $v1, %lo(selected_difficulty)($v1) +/* 0520D8 7F01D568 24010003 */ li $at, 3 +/* 0520DC 7F01D56C 3C0E8003 */ lui $t6, %hi(append_cheat_sp) # $t6, 0x8003 +/* 0520E0 7F01D570 50610049 */ beql $v1, $at, .L7F01D698 +/* 0520E4 7F01D574 8FBF0014 */ lw $ra, 0x14($sp) +/* 0520E8 7F01D578 8DCEA940 */ lw $t6, %lo(append_cheat_sp)($t6) +/* 0520EC 7F01D57C 000278C0 */ sll $t7, $v0, 3 +/* 0520F0 7F01D580 01E27823 */ subu $t7, $t7, $v0 +/* 0520F4 7F01D584 15C00043 */ bnez $t6, .L7F01D694 +/* 0520F8 7F01D588 000F7880 */ sll $t7, $t7, 2 +/* 0520FC 7F01D58C 3C188003 */ lui $t8, %hi(mission_folder_setup_entries+0x14) +/* 052100 7F01D590 030FC021 */ addu $t8, $t8, $t7 +/* 052104 7F01D594 8F18AC38 */ lw $t8, %lo(mission_folder_setup_entries+0x14)($t8) +/* 052108 7F01D598 00034040 */ sll $t0, $v1, 1 +/* 05210C 7F01D59C 3C0A8003 */ lui $t2, %hi(solo_target_time_array) +/* 052110 7F01D5A0 0018C880 */ sll $t9, $t8, 2 +/* 052114 7F01D5A4 0338C823 */ subu $t9, $t9, $t8 +/* 052118 7F01D5A8 0019C840 */ sll $t9, $t9, 1 +/* 05211C 7F01D5AC 03284821 */ addu $t1, $t9, $t0 +/* 052120 7F01D5B0 01495021 */ addu $t2, $t2, $t1 +/* 052124 7F01D5B4 854AB5A4 */ lh $t2, %lo(solo_target_time_array)($t2) +/* 052128 7F01D5B8 0FC23210 */ jal get_mission_timer +/* 05212C 7F01D5BC A7AA001E */ sh $t2, 0x1e($sp) +/* 052130 7F01D5C0 2401003C */ li $at, 60 +/* 052134 7F01D5C4 0041001A */ div $zero, $v0, $at +/* 052138 7F01D5C8 3C0B8003 */ lui $t3, %hi(briefingpage) # $t3, 0x8003 +/* 05213C 7F01D5CC 8D6BA938 */ lw $t3, %lo(briefingpage)($t3) +/* 052140 7F01D5D0 3C058003 */ lui $a1, %hi(mission_folder_setup_entries+0x14) +/* 052144 7F01D5D4 00003812 */ mflo $a3 +/* 052148 7F01D5D8 000B60C0 */ sll $t4, $t3, 3 +/* 05214C 7F01D5DC 018B6023 */ subu $t4, $t4, $t3 +/* 052150 7F01D5E0 000C6080 */ sll $t4, $t4, 2 +/* 052154 7F01D5E4 00AC2821 */ addu $a1, $a1, $t4 +/* 052158 7F01D5E8 3C048003 */ lui $a0, %hi(selected_folder_num) # $a0, 0x8003 +/* 05215C 7F01D5EC 3C068003 */ lui $a2, %hi(selected_difficulty) # $a2, 0x8003 +/* 052160 7F01D5F0 8CC6A93C */ lw $a2, %lo(selected_difficulty)($a2) +/* 052164 7F01D5F4 8C84A928 */ lw $a0, %lo(selected_folder_num)($a0) +/* 052168 7F01D5F8 0FC079EA */ jal unlock_stage_in_folder_on_difficulty +/* 05216C 7F01D5FC 8CA5AC38 */ lw $a1, %lo(mission_folder_setup_entries+0x14)($a1) +/* 052170 7F01D600 0FC23210 */ jal get_mission_timer +/* 052174 7F01D604 00000000 */ nop +/* 052178 7F01D608 2401003C */ li $at, 60 +/* 05217C 7F01D60C 0041001A */ div $zero, $v0, $at +/* 052180 7F01D610 87AD001E */ lh $t5, 0x1e($sp) +/* 052184 7F01D614 00007012 */ mflo $t6 +/* 052188 7F01D618 3C048003 */ lui $a0, %hi(selected_folder_num) # $a0, 0x8003 +/* 05218C 7F01D61C 01AE082A */ slt $at, $t5, $t6 +/* 052190 7F01D620 5420001D */ bnezl $at, .L7F01D698 +/* 052194 7F01D624 8FBF0014 */ lw $ra, 0x14($sp) +/* 052198 7F01D628 0FC077DD */ jal get_save_folder_ptr +/* 05219C 7F01D62C 8C84A928 */ lw $a0, %lo(selected_folder_num)($a0) +/* 0521A0 7F01D630 3C0F8003 */ lui $t7, %hi(briefingpage) # $t7, 0x8003 +/* 0521A4 7F01D634 8DEFA938 */ lw $t7, %lo(briefingpage)($t7) +/* 0521A8 7F01D638 3C058003 */ lui $a1, %hi(mission_folder_setup_entries+0x14) +/* 0521AC 7F01D63C 00402025 */ move $a0, $v0 +/* 0521B0 7F01D640 000FC0C0 */ sll $t8, $t7, 3 +/* 0521B4 7F01D644 030FC023 */ subu $t8, $t8, $t7 +/* 0521B8 7F01D648 0018C080 */ sll $t8, $t8, 2 +/* 0521BC 7F01D64C 00B82821 */ addu $a1, $a1, $t8 +/* 0521C0 7F01D650 0FC077B4 */ jal check_if_cheat_unlocked +/* 0521C4 7F01D654 8CA5AC38 */ lw $a1, %lo(mission_folder_setup_entries+0x14)($a1) +/* 0521C8 7F01D658 1440000E */ bnez $v0, .L7F01D694 +/* 0521CC 7F01D65C 3C048003 */ lui $a0, %hi(selected_folder_num) # $a0, 0x8003 +/* 0521D0 7F01D660 3C198003 */ lui $t9, %hi(briefingpage) # $t9, 0x8003 +/* 0521D4 7F01D664 8F39A938 */ lw $t9, %lo(briefingpage)($t9) +/* 0521D8 7F01D668 3C058003 */ lui $a1, %hi(mission_folder_setup_entries+0x14) +/* 0521DC 7F01D66C 8C84A928 */ lw $a0, %lo(selected_folder_num)($a0) +/* 0521E0 7F01D670 001940C0 */ sll $t0, $t9, 3 +/* 0521E4 7F01D674 01194023 */ subu $t0, $t0, $t9 +/* 0521E8 7F01D678 00084080 */ sll $t0, $t0, 2 +/* 0521EC 7F01D67C 00A82821 */ addu $a1, $a1, $t0 +/* 0521F0 7F01D680 0FC07A44 */ jal sub_GAME_7F01E760 +/* 0521F4 7F01D684 8CA5AC38 */ lw $a1, %lo(mission_folder_setup_entries+0x14)($a1) +/* 0521F8 7F01D688 24090001 */ li $t1, 1 +/* 0521FC 7F01D68C 3C018007 */ lui $at, %hi(newcheatunlocked) # $at, 0x8007 +/* 052200 7F01D690 AC2997D0 */ sw $t1, %lo(newcheatunlocked)($at) +.L7F01D694: +/* 052204 7F01D694 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01D698: +/* 052208 7F01D698 27BD0020 */ addiu $sp, $sp, 0x20 +/* 05220C 7F01D69C 03E00008 */ jr $ra +/* 052210 7F01D6A0 00000000 */ nop +) +#endif + +#endif + +void sub_GAME_7F01D500(void) +{ + get_screen_ratio_settings_for_mpgame_from_folder(selected_folder_num); +} + +void deleteCurrentSelectedFolder(void) +{ + delete_update_eeprom_file(selected_folder_num); +} + +void copyCurrentEEPROMtoStack(void) +{ + copy_eeprom_to_stack_set_folder_num(selected_folder_num); +} + +u8 getSelectedFolderBond(void) +{ + return removed_would_have_returned_bond_for_folder_num(selected_folder_num); +} + +void set_selected_folder_num(u32 foldernum) +{ + selected_folder_num = foldernum; +} + + + + +#ifdef NONMATCHING +void set_selected_difficulty(DIFFICULTY difficulty) +{ + if (difficulty != DIFFICULTY_AGENT) + { + if (difficulty == DIFFICULTY_SECRET) + { + selected_difficulty = DIFFICULTY_SECRET; + return; + } + if (difficulty == DIFFICULTY_00) + { + selected_difficulty = DIFFICULTY_00; + return; + } + if (difficulty == DIFFICULTY_007) + { + selected_difficulty = DIFFICULTY_007; + return; + } + } + else + { + selected_difficulty = DIFFICULTY_AGENT; + } +} +#else +GLOBAL_ASM( +.text +glabel set_selected_difficulty +/* 0520CC 7F01D59C 10800009 */ beqz $a0, .L7F01D5C4 +/* 0520D0 7F01D5A0 24020001 */ li $v0, 1 +/* 0520D4 7F01D5A4 1082000A */ beq $a0, $v0, .L7F01D5D0 +/* 0520D8 7F01D5A8 3C018003 */ lui $at, %hi(selected_difficulty) +/* 0520DC 7F01D5AC 24020002 */ li $v0, 2 +/* 0520E0 7F01D5B0 10820009 */ beq $a0, $v0, .L7F01D5D8 +/* 0520E4 7F01D5B4 3C018003 */ lui $at, %hi(selected_difficulty) +/* 0520E8 7F01D5B8 24020003 */ li $v0, 3 +/* 0520EC 7F01D5BC 10820008 */ beq $a0, $v0, .L7F01D5E0 +/* 0520F0 7F01D5C0 3C018003 */ lui $at, %hi(selected_difficulty) +.L7F01D5C4: +/* 0520F4 7F01D5C4 3C018003 */ lui $at, %hi(selected_difficulty) +/* 0520F8 7F01D5C8 03E00008 */ jr $ra +/* 0520FC 7F01D5CC AC20A8FC */ sw $zero, %lo(selected_difficulty)($at) + +.L7F01D5D0: +/* 052100 7F01D5D0 03E00008 */ jr $ra +/* 052104 7F01D5D4 AC22A8FC */ sw $v0, %lo(selected_difficulty)($at) + +.L7F01D5D8: +/* 052108 7F01D5D8 03E00008 */ jr $ra +/* 05210C 7F01D5DC AC22A8FC */ sw $v0, %lo(selected_difficulty)($at) + +.L7F01D5E0: +/* 052110 7F01D5E0 AC22A8FC */ sw $v0, %lo(selected_difficulty)($at) +/* 052114 7F01D5E4 03E00008 */ jr $ra +/* 052118 7F01D5E8 00000000 */ nop +) +#endif + + + + +void set_solo_and_ptr_briefing(LEVELID stage) +{ + gamemode = GAMEMODE_SOLO; + selected_stage = stage; + briefingpage = pull_and_display_text_for_folder_a0(stage); +} + +void sub_GAME_7F01D61C(struct save_file *savefile) +{ + copy_eeprom_from_to(selected_folder_num,savefile); +} + + + +#ifdef NONMATCHING +void sub_GAME_7F01D644(struct save_file *eeprom) +{ + selected_folder_num_copy = selected_folder_num; + selected_folder_num = 100; + copy_eepromfile_a0_from_a1_to_buffer(100,eeprom); + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01D644 +/* 052174 7F01D644 3C028003 */ lui $v0, %hi(selected_folder_num) +/* 052178 7F01D648 2442A8E8 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x5718 +/* 05217C 7F01D64C 8C4E0000 */ lw $t6, ($v0) +/* 052180 7F01D650 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 052184 7F01D654 00802825 */ move $a1, $a0 +/* 052188 7F01D658 3C018003 */ lui $at, %hi(selected_folder_num_copy) +/* 05218C 7F01D65C AFBF0014 */ sw $ra, 0x14($sp) +/* 052190 7F01D660 24040064 */ li $a0, 100 +/* 052194 7F01D664 AC2EA8EC */ sw $t6, %lo(selected_folder_num_copy)($at) +/* 052198 7F01D668 0FC07D17 */ jal copy_eepromfile_a0_from_a1_to_buffer +/* 05219C 7F01D66C AC440000 */ sw $a0, ($v0) +/* 0521A0 7F01D670 8FBF0014 */ lw $ra, 0x14($sp) +/* 0521A4 7F01D674 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0521A8 7F01D678 03E00008 */ jr $ra +/* 0521AC 7F01D67C 00000000 */ nop +) +#endif + + +void store_favorite_weapon_current_player(u32 right,u32 left) +{ + u32 playerNum; + + playerNum = get_cur_playernum(); + array_favweapon[playerNum][0] = right; + array_favweapon[playerNum][1] = left; +} \ No newline at end of file diff --git a/src/game/gamefile.h b/src/game/gamefile.h new file mode 100644 index 0000000..cb88080 --- /dev/null +++ b/src/game/gamefile.h @@ -0,0 +1,39 @@ +#ifndef _GAMEFILE_H_ +#define _GAMEFILE_H_ +#include "ultra64.h" +//i am not "correct", i need proper fields for times again +struct save_data +{ + int chksum1; + int chksum2; + char completion_bitflags; + char flag_007; + char music_vol; + char sfx_vol; + short options; + char unlocked_cheats_1; + char unlocked_cheats_2; + char unlocked_cheats_3; + char padding; + u8 time_dam_agent[5]; + u8 field_0x17[5]; + u8 field_0x1c[5]; + u8 field_0x21[5]; + u8 field_0x26[5]; + u8 field_0x2b[5]; + u8 field_0x30[5]; + u8 field_0x35[5]; + u8 field_0x3a[5]; + u8 field_0x3f[5]; + u8 field_0x44[5]; + u8 field_0x49[5]; + u8 field_0x4e[5]; + u8 field_0x53[5]; + u8 field_0x58[5]; + u8 field_0x5d[3]; + +}; + +extern u32 save_selected_bond[]; + +#endif diff --git a/src/game/gamefile2.c b/src/game/gamefile2.c new file mode 100644 index 0000000..4538745 --- /dev/null +++ b/src/game/gamefile2.c @@ -0,0 +1,2733 @@ +#include "ultra64.h" +#include "game/gamefile.h" + +s32 sub_GAME_7F01D6C0(void) { + return save_7000C6FC(); +} + + + + +#ifdef NONMATCHING +void sub_GAME_7F01D6E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01D6E0 +/* 052210 7F01D6E0 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 052214 7F01D6E4 3C0E8003 */ lui $t6, %hi(D_8002C520) +/* 052218 7F01D6E8 27A20000 */ addiu $v0, $sp, 0 +/* 05221C 7F01D6EC 25CEC520 */ addiu $t6, %lo(D_8002C520) # addiu $t6, $t6, -0x3ae0 +/* 052220 7F01D6F0 25D90060 */ addiu $t9, $t6, 0x60 +/* 052224 7F01D6F4 00404025 */ move $t0, $v0 +.L7F01D6F8: +/* 052228 7F01D6F8 8DC10000 */ lw $at, ($t6) +/* 05222C 7F01D6FC 25CE000C */ addiu $t6, $t6, 0xc +/* 052230 7F01D700 2508000C */ addiu $t0, $t0, 0xc +/* 052234 7F01D704 AD01FFF4 */ sw $at, -0xc($t0) +/* 052238 7F01D708 8DC1FFF8 */ lw $at, -8($t6) +/* 05223C 7F01D70C AD01FFF8 */ sw $at, -8($t0) +/* 052240 7F01D710 8DC1FFFC */ lw $at, -4($t6) +/* 052244 7F01D714 15D9FFF8 */ bne $t6, $t9, .L7F01D6F8 +/* 052248 7F01D718 AD01FFFC */ sw $at, -4($t0) +/* 05224C 7F01D71C 3C098007 */ lui $t1, %hi(save6) +/* 052250 7F01D720 25299B00 */ addiu $t1, %lo(save6) # addiu $t1, $t1, -0x6500 +/* 052254 7F01D724 00406825 */ move $t5, $v0 +/* 052258 7F01D728 244C0060 */ addiu $t4, $v0, 0x60 +.L7F01D72C: +/* 05225C 7F01D72C 8DA10000 */ lw $at, ($t5) +/* 052260 7F01D730 25AD000C */ addiu $t5, $t5, 0xc +/* 052264 7F01D734 2529000C */ addiu $t1, $t1, 0xc +/* 052268 7F01D738 AD21FFF4 */ sw $at, -0xc($t1) +/* 05226C 7F01D73C 8DA1FFF8 */ lw $at, -8($t5) +/* 052270 7F01D740 AD21FFF8 */ sw $at, -8($t1) +/* 052274 7F01D744 8DA1FFFC */ lw $at, -4($t5) +/* 052278 7F01D748 15ACFFF8 */ bne $t5, $t4, .L7F01D72C +/* 05227C 7F01D74C AD21FFFC */ sw $at, -4($t1) +/* 052280 7F01D750 03E00008 */ jr $ra +/* 052284 7F01D754 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01D758(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01D758 +/* 052288 7F01D758 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 05228C 7F01D75C AFBF0014 */ sw $ra, 0x14($sp) +/* 052290 7F01D760 0FC075B0 */ jal sub_GAME_7F01D6C0 +/* 052294 7F01D764 AFA40018 */ sw $a0, 0x18($sp) +/* 052298 7F01D768 10400009 */ beqz $v0, .L7F01D790 +/* 05229C 7F01D76C 8FA70018 */ lw $a3, 0x18($sp) +/* 0522A0 7F01D770 24E40008 */ addiu $a0, $a3, 8 +/* 0522A4 7F01D774 24E50020 */ addiu $a1, $a3, 0x20 +/* 0522A8 7F01D778 0FC26D80 */ jal sub_GAME_7F09B600 +/* 0522AC 7F01D77C 00E03025 */ move $a2, $a3 +/* 0522B0 7F01D780 8FA50018 */ lw $a1, 0x18($sp) +/* 0522B4 7F01D784 00002025 */ move $a0, $zero +/* 0522B8 7F01D788 0C003202 */ jal save_7000C808 +/* 0522BC 7F01D78C 24060020 */ li $a2, 32 +.L7F01D790: +/* 0522C0 7F01D790 8FBF0014 */ lw $ra, 0x14($sp) +/* 0522C4 7F01D794 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0522C8 7F01D798 03E00008 */ jr $ra +/* 0522CC 7F01D79C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01D7A0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01D7A0 +/* 0522D0 7F01D7A0 3C0E8007 */ lui $t6, %hi(save1) +/* 0522D4 7F01D7A4 25CE9920 */ addiu $t6, %lo(save1) # addiu $t6, $t6, -0x66e0 +/* 0522D8 7F01D7A8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0522DC 7F01D7AC 008E082B */ sltu $at, $a0, $t6 +/* 0522E0 7F01D7B0 1420001F */ bnez $at, .L7F01D830 +/* 0522E4 7F01D7B4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0522E8 7F01D7B8 3C0F8007 */ lui $t7, %hi(save6) +/* 0522EC 7F01D7BC 25EF9B00 */ addiu $t7, %lo(save6) # addiu $t7, $t7, -0x6500 +/* 0522F0 7F01D7C0 008F082B */ sltu $at, $a0, $t7 +/* 0522F4 7F01D7C4 5020001B */ beql $at, $zero, .L7F01D834 +/* 0522F8 7F01D7C8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0522FC 7F01D7CC 0FC075B0 */ jal sub_GAME_7F01D6C0 +/* 052300 7F01D7D0 AFA40018 */ sw $a0, 0x18($sp) +/* 052304 7F01D7D4 10400016 */ beqz $v0, .L7F01D830 +/* 052308 7F01D7D8 8FA70018 */ lw $a3, 0x18($sp) +/* 05230C 7F01D7DC 24E40008 */ addiu $a0, $a3, 8 +/* 052310 7F01D7E0 24E50060 */ addiu $a1, $a3, 0x60 +/* 052314 7F01D7E4 00E03025 */ move $a2, $a3 +/* 052318 7F01D7E8 0FC26D80 */ jal sub_GAME_7F09B600 +/* 05231C 7F01D7EC AFA70018 */ sw $a3, 0x18($sp) +/* 052320 7F01D7F0 8FA50018 */ lw $a1, 0x18($sp) +/* 052324 7F01D7F4 3C188007 */ lui $t8, %hi(save1) +/* 052328 7F01D7F8 27189920 */ addiu $t8, %lo(save1) # addiu $t8, $t8, -0x66e0 +/* 05232C 7F01D7FC 24010060 */ li $at, 96 +/* 052330 7F01D800 00B82023 */ subu $a0, $a1, $t8 +/* 052334 7F01D804 0081001A */ div $zero, $a0, $at +/* 052338 7F01D808 0000C812 */ mflo $t9 +/* 05233C 7F01D80C 00194080 */ sll $t0, $t9, 2 +/* 052340 7F01D810 01194023 */ subu $t0, $t0, $t9 +/* 052344 7F01D814 00084140 */ sll $t0, $t0, 5 +/* 052348 7F01D818 000848C2 */ srl $t1, $t0, 3 +/* 05234C 7F01D81C 25240004 */ addiu $a0, $t1, 4 +/* 052350 7F01D820 308A00FF */ andi $t2, $a0, 0xff +/* 052354 7F01D824 01402025 */ move $a0, $t2 +/* 052358 7F01D828 0C003202 */ jal save_7000C808 +/* 05235C 7F01D82C 24060060 */ li $a2, 96 +.L7F01D830: +/* 052360 7F01D830 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01D834: +/* 052364 7F01D834 27BD0018 */ addiu $sp, $sp, 0x18 +/* 052368 7F01D838 03E00008 */ jr $ra +/* 05236C 7F01D83C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01D840(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01D840 +/* 052370 7F01D840 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 052374 7F01D844 3C0E8003 */ lui $t6, %hi(D_8002C580) +/* 052378 7F01D848 27A20018 */ addiu $v0, $sp, 0x18 +/* 05237C 7F01D84C 25CEC580 */ addiu $t6, %lo(D_8002C580) # addiu $t6, $t6, -0x3a80 +/* 052380 7F01D850 AFBF0014 */ sw $ra, 0x14($sp) +/* 052384 7F01D854 25D90060 */ addiu $t9, $t6, 0x60 +/* 052388 7F01D858 00404025 */ move $t0, $v0 +.L7F01D85C: +/* 05238C 7F01D85C 8DC10000 */ lw $at, ($t6) +/* 052390 7F01D860 25CE000C */ addiu $t6, $t6, 0xc +/* 052394 7F01D864 2508000C */ addiu $t0, $t0, 0xc +/* 052398 7F01D868 AD01FFF4 */ sw $at, -0xc($t0) +/* 05239C 7F01D86C 8DC1FFF8 */ lw $at, -8($t6) +/* 0523A0 7F01D870 AD01FFF8 */ sw $at, -8($t0) +/* 0523A4 7F01D874 8DC1FFFC */ lw $at, -4($t6) +/* 0523A8 7F01D878 15D9FFF8 */ bne $t6, $t9, .L7F01D85C +/* 0523AC 7F01D87C AD01FFFC */ sw $at, -4($t0) +/* 0523B0 7F01D880 00406025 */ move $t4, $v0 +/* 0523B4 7F01D884 00806825 */ move $t5, $a0 +/* 0523B8 7F01D888 244B0060 */ addiu $t3, $v0, 0x60 +.L7F01D88C: +/* 0523BC 7F01D88C 8D810000 */ lw $at, ($t4) +/* 0523C0 7F01D890 258C000C */ addiu $t4, $t4, 0xc +/* 0523C4 7F01D894 25AD000C */ addiu $t5, $t5, 0xc +/* 0523C8 7F01D898 ADA1FFF4 */ sw $at, -0xc($t5) +/* 0523CC 7F01D89C 8D81FFF8 */ lw $at, -8($t4) +/* 0523D0 7F01D8A0 ADA1FFF8 */ sw $at, -8($t5) +/* 0523D4 7F01D8A4 8D81FFFC */ lw $at, -4($t4) +/* 0523D8 7F01D8A8 158BFFF8 */ bne $t4, $t3, .L7F01D88C +/* 0523DC 7F01D8AC ADA1FFFC */ sw $at, -4($t5) +/* 0523E0 7F01D8B0 0FC075E8 */ jal sub_GAME_7F01D7A0 +/* 0523E4 7F01D8B4 00000000 */ nop +/* 0523E8 7F01D8B8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0523EC 7F01D8BC 27BD0078 */ addiu $sp, $sp, 0x78 +/* 0523F0 7F01D8C0 03E00008 */ jr $ra +/* 0523F4 7F01D8C4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_foldernum_of_eeprom(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_foldernum_of_eeprom +/* 0523F8 7F01D8C8 90820008 */ lbu $v0, 8($a0) +/* 0523FC 7F01D8CC 304E0007 */ andi $t6, $v0, 7 +/* 052400 7F01D8D0 03E00008 */ jr $ra +/* 052404 7F01D8D4 01C01025 */ move $v0, $t6 +) +#endif + + + +#ifdef NONMATCHING +void set_eeprom_to_folder_num(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_eeprom_to_folder_num +/* 052408 7F01D8D8 908E0008 */ lbu $t6, 8($a0) +/* 05240C 7F01D8DC 30B90007 */ andi $t9, $a1, 7 +/* 052410 7F01D8E0 31D8FFF8 */ andi $t8, $t6, 0xfff8 +/* 052414 7F01D8E4 A0980008 */ sb $t8, 8($a0) +/* 052418 7F01D8E8 03194025 */ or $t0, $t8, $t9 +/* 05241C 7F01D8EC 03E00008 */ jr $ra +/* 052420 7F01D8F0 A0880008 */ sb $t0, 8($a0) +) +#endif + + + +#ifdef NONMATCHING +void set_eeprom_flag_0x18(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_eeprom_flag_0x18 +/* 052424 7F01D8F4 90820008 */ lbu $v0, 8($a0) +/* 052428 7F01D8F8 304E0018 */ andi $t6, $v0, 0x18 +/* 05242C 7F01D8FC 03E00008 */ jr $ra +/* 052430 7F01D900 000E10C3 */ sra $v0, $t6, 3 +) +#endif + + + +#ifdef NONMATCHING +void reset_eeprom_flag_0x18(void) { + +} +#else +GLOBAL_ASM( +.text +glabel reset_eeprom_flag_0x18 +/* 052434 7F01D904 908E0008 */ lbu $t6, 8($a0) +/* 052438 7F01D908 0005C8C0 */ sll $t9, $a1, 3 +/* 05243C 7F01D90C 33280018 */ andi $t0, $t9, 0x18 +/* 052440 7F01D910 31D8FFE7 */ andi $t8, $t6, 0xffe7 +/* 052444 7F01D914 A0980008 */ sb $t8, 8($a0) +/* 052448 7F01D918 03084825 */ or $t1, $t8, $t0 +/* 05244C 7F01D91C 03E00008 */ jr $ra +/* 052450 7F01D920 A0890008 */ sb $t1, 8($a0) +) +#endif + + + +#ifdef NONMATCHING +void get_selected_bond(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_selected_bond +/* 052454 7F01D924 90820008 */ lbu $v0, 8($a0) +/* 052458 7F01D928 304E0060 */ andi $t6, $v0, 0x60 +/* 05245C 7F01D92C 03E00008 */ jr $ra +/* 052460 7F01D930 000E1143 */ sra $v0, $t6, 5 +) +#endif + + + +#ifdef NONMATCHING +void set_selected_bond(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_selected_bond +/* 052464 7F01D934 908E0008 */ lbu $t6, 8($a0) +/* 052468 7F01D938 0005C940 */ sll $t9, $a1, 5 +/* 05246C 7F01D93C 33280060 */ andi $t0, $t9, 0x60 +/* 052470 7F01D940 31D8FF9F */ andi $t8, $t6, 0xff9f +/* 052474 7F01D944 A0980008 */ sb $t8, 8($a0) +/* 052478 7F01D948 03084825 */ or $t1, $t8, $t0 +/* 05247C 7F01D94C 03E00008 */ jr $ra +/* 052480 7F01D950 A0890008 */ sb $t1, 8($a0) +) +#endif + + + +#ifdef NONMATCHING +void check_if_eeprom_flag_set_0x80(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_eeprom_flag_set_0x80 +/* 052484 7F01D954 90820008 */ lbu $v0, 8($a0) +/* 052488 7F01D958 304E0080 */ andi $t6, $v0, 0x80 +/* 05248C 7F01D95C 03E00008 */ jr $ra +/* 052490 7F01D960 000E102B */ sltu $v0, $zero, $t6 +) +#endif + + + +#ifdef NONMATCHING +void toggle_eeprom_flag_set_0x80(void) { + +} +#else +GLOBAL_ASM( +.text +glabel toggle_eeprom_flag_set_0x80 +/* 052494 7F01D964 50A00006 */ beql $a1, $zero, .L7F01D980 +/* 052498 7F01D968 90980008 */ lbu $t8, 8($a0) +/* 05249C 7F01D96C 908E0008 */ lbu $t6, 8($a0) +/* 0524A0 7F01D970 35CF0080 */ ori $t7, $t6, 0x80 +/* 0524A4 7F01D974 03E00008 */ jr $ra +/* 0524A8 7F01D978 A08F0008 */ sb $t7, 8($a0) + +/* 0524AC 7F01D97C 90980008 */ lbu $t8, 8($a0) +.L7F01D980: +/* 0524B0 7F01D980 3319FF7F */ andi $t9, $t8, 0xff7f +/* 0524B4 7F01D984 A0990008 */ sb $t9, 8($a0) +/* 0524B8 7F01D988 03E00008 */ jr $ra +/* 0524BC 7F01D98C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_eeprom_stage_complete_time_for_difficulty(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_eeprom_stage_complete_time_for_difficulty +/* 0524C0 7F01D990 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0524C4 7F01D994 AFBF0014 */ sw $ra, 0x14($sp) +/* 0524C8 7F01D998 04A0004D */ bltz $a1, .L7F01DAD0 +/* 0524CC 7F01D99C 00803825 */ move $a3, $a0 +/* 0524D0 7F01D9A0 28A10014 */ slti $at, $a1, 0x14 +/* 0524D4 7F01D9A4 5020004B */ beql $at, $zero, .L7F01DAD4 +/* 0524D8 7F01D9A8 00001025 */ move $v0, $zero +/* 0524DC 7F01D9AC 04C00048 */ bltz $a2, .L7F01DAD0 +/* 0524E0 7F01D9B0 28C10004 */ slti $at, $a2, 4 +/* 0524E4 7F01D9B4 10200046 */ beqz $at, .L7F01DAD0 +/* 0524E8 7F01D9B8 24030003 */ li $v1, 3 +/* 0524EC 7F01D9BC 14C3000B */ bne $a2, $v1, .L7F01D9EC +/* 0524F0 7F01D9C0 24080007 */ li $t0, 7 +/* 0524F4 7F01D9C4 0FC07632 */ jal get_foldernum_of_eeprom +/* 0524F8 7F01D9C8 00000000 */ nop +/* 0524FC 7F01D9CC 0FC07D28 */ jal check_for_007_mode_unlocked +/* 052500 7F01D9D0 00402025 */ move $a0, $v0 +/* 052504 7F01D9D4 10400003 */ beqz $v0, .L7F01D9E4 +/* 052508 7F01D9D8 00000000 */ nop +/* 05250C 7F01D9DC 1000003D */ b .L7F01DAD4 +/* 052510 7F01D9E0 240203FF */ li $v0, 1023 +.L7F01D9E4: +/* 052514 7F01D9E4 1000003B */ b .L7F01DAD4 +/* 052518 7F01D9E8 00001025 */ move $v0, $zero +.L7F01D9EC: +/* 05251C 7F01D9EC 00067080 */ sll $t6, $a2, 2 +/* 052520 7F01D9F0 01C67021 */ addu $t6, $t6, $a2 +/* 052524 7F01D9F4 000E7080 */ sll $t6, $t6, 2 +/* 052528 7F01D9F8 01C52021 */ addu $a0, $t6, $a1 +/* 05252C 7F01D9FC 00047880 */ sll $t7, $a0, 2 +/* 052530 7F01DA00 01E47821 */ addu $t7, $t7, $a0 +/* 052534 7F01DA04 000F7840 */ sll $t7, $t7, 1 +/* 052538 7F01DA08 31F80007 */ andi $t8, $t7, 7 +/* 05253C 7F01DA0C 01181023 */ subu $v0, $t0, $t8 +/* 052540 7F01DA10 24010001 */ li $at, 1 +/* 052544 7F01DA14 10410024 */ beq $v0, $at, .L7F01DAA8 +/* 052548 7F01DA18 01E02025 */ move $a0, $t7 +/* 05254C 7F01DA1C 10430019 */ beq $v0, $v1, .L7F01DA84 +/* 052550 7F01DA20 000458C3 */ sra $t3, $a0, 3 +/* 052554 7F01DA24 24010005 */ li $at, 5 +/* 052558 7F01DA28 5041000D */ beql $v0, $at, .L7F01DA60 +/* 05255C 7F01DA2C 000478C3 */ sra $t7, $a0, 3 +/* 052560 7F01DA30 14480025 */ bne $v0, $t0, .L7F01DAC8 +/* 052564 7F01DA34 00001825 */ move $v1, $zero +/* 052568 7F01DA38 000FC8C3 */ sra $t9, $t7, 3 +/* 05256C 7F01DA3C 00F91021 */ addu $v0, $a3, $t9 +/* 052570 7F01DA40 90490013 */ lbu $t1, 0x13($v0) +/* 052574 7F01DA44 904D0012 */ lbu $t5, 0x12($v0) +/* 052578 7F01DA48 312A00C0 */ andi $t2, $t1, 0xc0 +/* 05257C 7F01DA4C 000A5983 */ sra $t3, $t2, 6 +/* 052580 7F01DA50 000D7080 */ sll $t6, $t5, 2 +/* 052584 7F01DA54 1000001F */ b .L7F01DAD4 +/* 052588 7F01DA58 016E1025 */ or $v0, $t3, $t6 +/* 05258C 7F01DA5C 000478C3 */ sra $t7, $a0, 3 +.L7F01DA60: +/* 052590 7F01DA60 00EF1021 */ addu $v0, $a3, $t7 +/* 052594 7F01DA64 90580013 */ lbu $t8, 0x13($v0) +/* 052598 7F01DA68 904A0012 */ lbu $t2, 0x12($v0) +/* 05259C 7F01DA6C 331900F0 */ andi $t9, $t8, 0xf0 +/* 0525A0 7F01DA70 314C003F */ andi $t4, $t2, 0x3f +/* 0525A4 7F01DA74 000C6900 */ sll $t5, $t4, 4 +/* 0525A8 7F01DA78 00194903 */ sra $t1, $t9, 4 +/* 0525AC 7F01DA7C 10000015 */ b .L7F01DAD4 +/* 0525B0 7F01DA80 012D1025 */ or $v0, $t1, $t5 +.L7F01DA84: +/* 0525B4 7F01DA84 00EB1021 */ addu $v0, $a3, $t3 +/* 0525B8 7F01DA88 904E0013 */ lbu $t6, 0x13($v0) +/* 0525BC 7F01DA8C 90590012 */ lbu $t9, 0x12($v0) +/* 0525C0 7F01DA90 31CF00FC */ andi $t7, $t6, 0xfc +/* 0525C4 7F01DA94 332A000F */ andi $t2, $t9, 0xf +/* 0525C8 7F01DA98 000A6180 */ sll $t4, $t2, 6 +/* 0525CC 7F01DA9C 000FC083 */ sra $t8, $t7, 2 +/* 0525D0 7F01DAA0 1000000C */ b .L7F01DAD4 +/* 0525D4 7F01DAA4 030C1025 */ or $v0, $t8, $t4 +.L7F01DAA8: +/* 0525D8 7F01DAA8 000448C3 */ sra $t1, $a0, 3 +/* 0525DC 7F01DAAC 00E91021 */ addu $v0, $a3, $t1 +/* 0525E0 7F01DAB0 904E0012 */ lbu $t6, 0x12($v0) +/* 0525E4 7F01DAB4 904B0013 */ lbu $t3, 0x13($v0) +/* 0525E8 7F01DAB8 31CF0003 */ andi $t7, $t6, 3 +/* 0525EC 7F01DABC 000FCA00 */ sll $t9, $t7, 8 +/* 0525F0 7F01DAC0 10000004 */ b .L7F01DAD4 +/* 0525F4 7F01DAC4 01791025 */ or $v0, $t3, $t9 +.L7F01DAC8: +/* 0525F8 7F01DAC8 10000002 */ b .L7F01DAD4 +/* 0525FC 7F01DACC 00601025 */ move $v0, $v1 +.L7F01DAD0: +/* 052600 7F01DAD0 00001025 */ move $v0, $zero +.L7F01DAD4: +/* 052604 7F01DAD4 8FBF0014 */ lw $ra, 0x14($sp) +/* 052608 7F01DAD8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 05260C 7F01DADC 03E00008 */ jr $ra +/* 052610 7F01DAE0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01DAE4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01DAE4 +/* 052614 7F01DAE4 04A0005C */ bltz $a1, .L7F01DC58 +/* 052618 7F01DAE8 28A10014 */ slti $at, $a1, 0x14 +/* 05261C 7F01DAEC 1020005A */ beqz $at, .L7F01DC58 +/* 052620 7F01DAF0 00000000 */ nop +/* 052624 7F01DAF4 04C00058 */ bltz $a2, .L7F01DC58 +/* 052628 7F01DAF8 28C10003 */ slti $at, $a2, 3 +/* 05262C 7F01DAFC 10200056 */ beqz $at, .L7F01DC58 +/* 052630 7F01DB00 24080007 */ li $t0, 7 +/* 052634 7F01DB04 14E00003 */ bnez $a3, .L7F01DB14 +/* 052638 7F01DB08 00067080 */ sll $t6, $a2, 2 +/* 05263C 7F01DB0C 10000005 */ b .L7F01DB24 +/* 052640 7F01DB10 2407004F */ li $a3, 79 +.L7F01DB14: +/* 052644 7F01DB14 28E10400 */ slti $at, $a3, 0x400 +/* 052648 7F01DB18 54200003 */ bnezl $at, .L7F01DB28 +/* 05264C 7F01DB1C 01C67021 */ addu $t6, $t6, $a2 +/* 052650 7F01DB20 240703FF */ li $a3, 1023 +.L7F01DB24: +/* 052654 7F01DB24 01C67021 */ addu $t6, $t6, $a2 +.L7F01DB28: +/* 052658 7F01DB28 000E7080 */ sll $t6, $t6, 2 +/* 05265C 7F01DB2C 01C51021 */ addu $v0, $t6, $a1 +/* 052660 7F01DB30 00027880 */ sll $t7, $v0, 2 +/* 052664 7F01DB34 01E27821 */ addu $t7, $t7, $v0 +/* 052668 7F01DB38 000F7840 */ sll $t7, $t7, 1 +/* 05266C 7F01DB3C 31F80007 */ andi $t8, $t7, 7 +/* 052670 7F01DB40 01181823 */ subu $v1, $t0, $t8 +/* 052674 7F01DB44 24010001 */ li $at, 1 +/* 052678 7F01DB48 10610035 */ beq $v1, $at, .L7F01DC20 +/* 05267C 7F01DB4C 01E01025 */ move $v0, $t7 +/* 052680 7F01DB50 24010003 */ li $at, 3 +/* 052684 7F01DB54 10610023 */ beq $v1, $at, .L7F01DBE4 +/* 052688 7F01DB58 0002C0C3 */ sra $t8, $v0, 3 +/* 05268C 7F01DB5C 24010005 */ li $at, 5 +/* 052690 7F01DB60 10610011 */ beq $v1, $at, .L7F01DBA8 +/* 052694 7F01DB64 000260C3 */ sra $t4, $v0, 3 +/* 052698 7F01DB68 1468003B */ bne $v1, $t0, .L7F01DC58 +/* 05269C 7F01DB6C 000FC8C3 */ sra $t9, $t7, 3 +/* 0526A0 7F01DB70 00991821 */ addu $v1, $a0, $t9 +/* 0526A4 7F01DB74 90690012 */ lbu $t1, 0x12($v1) +/* 0526A8 7F01DB78 906B0013 */ lbu $t3, 0x13($v1) +/* 0526AC 7F01DB7C 00077883 */ sra $t7, $a3, 2 +/* 0526B0 7F01DB80 312DFF00 */ andi $t5, $t1, 0xff00 +/* 0526B4 7F01DB84 3179FF3F */ andi $t9, $t3, 0xff3f +/* 0526B8 7F01DB88 00075180 */ sll $t2, $a3, 6 +/* 0526BC 7F01DB8C A06D0012 */ sb $t5, 0x12($v1) +/* 0526C0 7F01DB90 A0790013 */ sb $t9, 0x13($v1) +/* 0526C4 7F01DB94 01AFC025 */ or $t8, $t5, $t7 +/* 0526C8 7F01DB98 032A5825 */ or $t3, $t9, $t2 +/* 0526CC 7F01DB9C A0780012 */ sb $t8, 0x12($v1) +/* 0526D0 7F01DBA0 03E00008 */ jr $ra +/* 0526D4 7F01DBA4 A06B0013 */ sb $t3, 0x13($v1) + +.L7F01DBA8: +/* 0526D8 7F01DBA8 008C1821 */ addu $v1, $a0, $t4 +/* 0526DC 7F01DBAC 906E0012 */ lbu $t6, 0x12($v1) +/* 0526E0 7F01DBB0 906F0013 */ lbu $t7, 0x13($v1) +/* 0526E4 7F01DBB4 0007C903 */ sra $t9, $a3, 4 +/* 0526E8 7F01DBB8 31C9FFC0 */ andi $t1, $t6, 0xffc0 +/* 0526EC 7F01DBBC 31ECFF0F */ andi $t4, $t7, 0xff0f +/* 0526F0 7F01DBC0 332A003F */ andi $t2, $t9, 0x3f +/* 0526F4 7F01DBC4 00076900 */ sll $t5, $a3, 4 +/* 0526F8 7F01DBC8 A0690012 */ sb $t1, 0x12($v1) +/* 0526FC 7F01DBCC A06C0013 */ sb $t4, 0x13($v1) +/* 052700 7F01DBD0 012A5825 */ or $t3, $t1, $t2 +/* 052704 7F01DBD4 018D7825 */ or $t7, $t4, $t5 +/* 052708 7F01DBD8 A06B0012 */ sb $t3, 0x12($v1) +/* 05270C 7F01DBDC 03E00008 */ jr $ra +/* 052710 7F01DBE0 A06F0013 */ sb $t7, 0x13($v1) + +.L7F01DBE4: +/* 052714 7F01DBE4 00981821 */ addu $v1, $a0, $t8 +/* 052718 7F01DBE8 90790012 */ lbu $t9, 0x12($v1) +/* 05271C 7F01DBEC 906A0013 */ lbu $t2, 0x13($v1) +/* 052720 7F01DBF0 00076183 */ sra $t4, $a3, 6 +/* 052724 7F01DBF4 332EFFF0 */ andi $t6, $t9, 0xfff0 +/* 052728 7F01DBF8 3158FF03 */ andi $t8, $t2, 0xff03 +/* 05272C 7F01DBFC 318D000F */ andi $t5, $t4, 0xf +/* 052730 7F01DC00 00074880 */ sll $t1, $a3, 2 +/* 052734 7F01DC04 A06E0012 */ sb $t6, 0x12($v1) +/* 052738 7F01DC08 A0780013 */ sb $t8, 0x13($v1) +/* 05273C 7F01DC0C 01CD7825 */ or $t7, $t6, $t5 +/* 052740 7F01DC10 03095025 */ or $t2, $t8, $t1 +/* 052744 7F01DC14 A06F0012 */ sb $t7, 0x12($v1) +/* 052748 7F01DC18 03E00008 */ jr $ra +/* 05274C 7F01DC1C A06A0013 */ sb $t2, 0x13($v1) + +.L7F01DC20: +/* 052750 7F01DC20 000258C3 */ sra $t3, $v0, 3 +/* 052754 7F01DC24 008B1821 */ addu $v1, $a0, $t3 +/* 052758 7F01DC28 906C0012 */ lbu $t4, 0x12($v1) +/* 05275C 7F01DC2C 906D0013 */ lbu $t5, 0x13($v1) +/* 052760 7F01DC30 0007C203 */ sra $t8, $a3, 8 +/* 052764 7F01DC34 3199FFFC */ andi $t9, $t4, 0xfffc +/* 052768 7F01DC38 31ABFF00 */ andi $t3, $t5, 0xff00 +/* 05276C 7F01DC3C 33090003 */ andi $t1, $t8, 3 +/* 052770 7F01DC40 A0790012 */ sb $t9, 0x12($v1) +/* 052774 7F01DC44 A06B0013 */ sb $t3, 0x13($v1) +/* 052778 7F01DC48 03295025 */ or $t2, $t9, $t1 +/* 05277C 7F01DC4C 01677025 */ or $t6, $t3, $a3 +/* 052780 7F01DC50 A06A0012 */ sb $t2, 0x12($v1) +/* 052784 7F01DC54 A06E0013 */ sb $t6, 0x13($v1) +.L7F01DC58: +/* 052788 7F01DC58 03E00008 */ jr $ra +/* 05278C 7F01DC5C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_eeprom_stage_completed_for_difficulty(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_eeprom_stage_completed_for_difficulty +/* 052790 7F01DC60 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 052794 7F01DC64 04A0000D */ bltz $a1, .L7F01DC9C +/* 052798 7F01DC68 AFBF0014 */ sw $ra, 0x14($sp) +/* 05279C 7F01DC6C 28A10014 */ slti $at, $a1, 0x14 +/* 0527A0 7F01DC70 5020000B */ beql $at, $zero, .L7F01DCA0 +/* 0527A4 7F01DC74 00001025 */ move $v0, $zero +/* 0527A8 7F01DC78 04C00008 */ bltz $a2, .L7F01DC9C +/* 0527AC 7F01DC7C 28C10004 */ slti $at, $a2, 4 +/* 0527B0 7F01DC80 50200007 */ beql $at, $zero, .L7F01DCA0 +/* 0527B4 7F01DC84 00001025 */ move $v0, $zero +/* 0527B8 7F01DC88 0FC07664 */ jal get_eeprom_stage_complete_time_for_difficulty +/* 0527BC 7F01DC8C 00000000 */ nop +/* 0527C0 7F01DC90 0002702B */ sltu $t6, $zero, $v0 +/* 0527C4 7F01DC94 10000002 */ b .L7F01DCA0 +/* 0527C8 7F01DC98 01C01025 */ move $v0, $t6 +.L7F01DC9C: +/* 0527CC 7F01DC9C 00001025 */ move $v0, $zero +.L7F01DCA0: +/* 0527D0 7F01DCA0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0527D4 7F01DCA4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0527D8 7F01DCA8 03E00008 */ jr $ra +/* 0527DC 7F01DCAC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01DCB0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01DCB0 +/* 0527E0 7F01DCB0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0527E4 7F01DCB4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0527E8 7F01DCB8 04A00015 */ bltz $a1, .L7F01DD10 +/* 0527EC 7F01DCBC AFA40018 */ sw $a0, 0x18($sp) +/* 0527F0 7F01DCC0 28A10014 */ slti $at, $a1, 0x14 +/* 0527F4 7F01DCC4 50200013 */ beql $at, $zero, .L7F01DD14 +/* 0527F8 7F01DCC8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0527FC 7F01DCCC 04C00010 */ bltz $a2, .L7F01DD10 +/* 052800 7F01DCD0 28C10004 */ slti $at, $a2, 4 +/* 052804 7F01DCD4 5020000F */ beql $at, $zero, .L7F01DD14 +/* 052808 7F01DCD8 8FBF0014 */ lw $ra, 0x14($sp) +/* 05280C 7F01DCDC AFA5001C */ sw $a1, 0x1c($sp) +/* 052810 7F01DCE0 AFA60020 */ sw $a2, 0x20($sp) +/* 052814 7F01DCE4 0FC07664 */ jal get_eeprom_stage_complete_time_for_difficulty +/* 052818 7F01DCE8 AFA70024 */ sw $a3, 0x24($sp) +/* 05281C 7F01DCEC 8FA5001C */ lw $a1, 0x1c($sp) +/* 052820 7F01DCF0 8FA60020 */ lw $a2, 0x20($sp) +/* 052824 7F01DCF4 10400004 */ beqz $v0, .L7F01DD08 +/* 052828 7F01DCF8 8FA70024 */ lw $a3, 0x24($sp) +/* 05282C 7F01DCFC 00E2082A */ slt $at, $a3, $v0 +/* 052830 7F01DD00 50200004 */ beql $at, $zero, .L7F01DD14 +/* 052834 7F01DD04 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01DD08: +/* 052838 7F01DD08 0FC076B9 */ jal sub_GAME_7F01DAE4 +/* 05283C 7F01DD0C 8FA40018 */ lw $a0, 0x18($sp) +.L7F01DD10: +/* 052840 7F01DD10 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01DD14: +/* 052844 7F01DD14 27BD0018 */ addiu $sp, $sp, 0x18 +/* 052848 7F01DD18 03E00008 */ jr $ra +/* 05284C 7F01DD1C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_if_cheat_unlocked(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_cheat_unlocked +/* 052850 7F01DD20 04A00011 */ bltz $a1, .L7F01DD68 +/* 052854 7F01DD24 28A10014 */ slti $at, $a1, 0x14 +/* 052858 7F01DD28 1020000F */ beqz $at, .L7F01DD68 +/* 05285C 7F01DD2C 240B0001 */ li $t3, 1 +/* 052860 7F01DD30 90860010 */ lbu $a2, 0x10($a0) +/* 052864 7F01DD34 908E000E */ lbu $t6, 0xe($a0) +/* 052868 7F01DD38 9089000F */ lbu $t1, 0xf($a0) +/* 05286C 7F01DD3C 00067E00 */ sll $t7, $a2, 0x18 +/* 052870 7F01DD40 0006CC00 */ sll $t9, $a2, 0x10 +/* 052874 7F01DD44 01CFC025 */ or $t8, $t6, $t7 +/* 052878 7F01DD48 03194025 */ or $t0, $t8, $t9 +/* 05287C 7F01DD4C 00095200 */ sll $t2, $t1, 8 +/* 052880 7F01DD50 010A1825 */ or $v1, $t0, $t2 +/* 052884 7F01DD54 00AB6004 */ sllv $t4, $t3, $a1 +/* 052888 7F01DD58 01831024 */ and $v0, $t4, $v1 +/* 05288C 7F01DD5C 0002682B */ sltu $t5, $zero, $v0 +/* 052890 7F01DD60 03E00008 */ jr $ra +/* 052894 7F01DD64 01A01025 */ move $v0, $t5 + +.L7F01DD68: +/* 052898 7F01DD68 00001025 */ move $v0, $zero +/* 05289C 7F01DD6C 03E00008 */ jr $ra +/* 0528A0 7F01DD70 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01DD74(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01DD74 +/* 0528A4 7F01DD74 04A00011 */ bltz $a1, .L7F01DDBC +/* 0528A8 7F01DD78 00803025 */ move $a2, $a0 +/* 0528AC 7F01DD7C 28A10014 */ slti $at, $a1, 0x14 +/* 0528B0 7F01DD80 1020000E */ beqz $at, .L7F01DDBC +/* 0528B4 7F01DD84 240E0001 */ li $t6, 1 +/* 0528B8 7F01DD88 00AE1004 */ sllv $v0, $t6, $a1 +/* 0528BC 7F01DD8C 2C410100 */ sltiu $at, $v0, 0x100 +/* 0528C0 7F01DD90 14200006 */ bnez $at, .L7F01DDAC +/* 0528C4 7F01DD94 00002025 */ move $a0, $zero +.L7F01DD98: +/* 0528C8 7F01DD98 00027A02 */ srl $t7, $v0, 8 +/* 0528CC 7F01DD9C 2DE10100 */ sltiu $at, $t7, 0x100 +/* 0528D0 7F01DDA0 24840001 */ addiu $a0, $a0, 1 +/* 0528D4 7F01DDA4 1020FFFC */ beqz $at, .L7F01DD98 +/* 0528D8 7F01DDA8 01E01025 */ move $v0, $t7 +.L7F01DDAC: +/* 0528DC 7F01DDAC 00C41821 */ addu $v1, $a2, $a0 +/* 0528E0 7F01DDB0 9078000E */ lbu $t8, 0xe($v1) +/* 0528E4 7F01DDB4 03024025 */ or $t0, $t8, $v0 +/* 0528E8 7F01DDB8 A068000E */ sb $t0, 0xe($v1) +.L7F01DDBC: +/* 0528EC 7F01DDBC 03E00008 */ jr $ra +/* 0528F0 7F01DDC0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_save_folder_ptr(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_save_folder_ptr +/* 0528F4 7F01DDC4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0528F8 7F01DDC8 AFB1001C */ sw $s1, 0x1c($sp) +/* 0528FC 7F01DDCC AFB00018 */ sw $s0, 0x18($sp) +/* 052900 7F01DDD0 AFB20020 */ sw $s2, 0x20($sp) +/* 052904 7F01DDD4 3C108007 */ lui $s0, %hi(save1) +/* 052908 7F01DDD8 3C118007 */ lui $s1, %hi(save6) +/* 05290C 7F01DDDC 00809025 */ move $s2, $a0 +/* 052910 7F01DDE0 AFBF0024 */ sw $ra, 0x24($sp) +/* 052914 7F01DDE4 26319B00 */ addiu $s1, %lo(save6) # addiu $s1, $s1, -0x6500 +/* 052918 7F01DDE8 26109920 */ addiu $s0, %lo(save1) # addiu $s0, $s0, -0x66e0 +.L7F01DDEC: +/* 05291C 7F01DDEC 0FC07655 */ jal check_if_eeprom_flag_set_0x80 +/* 052920 7F01DDF0 02002025 */ move $a0, $s0 +/* 052924 7F01DDF4 54400008 */ bnezl $v0, .L7F01DE18 +/* 052928 7F01DDF8 26100060 */ addiu $s0, $s0, 0x60 +/* 05292C 7F01DDFC 0FC07632 */ jal get_foldernum_of_eeprom +/* 052930 7F01DE00 02002025 */ move $a0, $s0 +/* 052934 7F01DE04 54520004 */ bnel $v0, $s2, .L7F01DE18 +/* 052938 7F01DE08 26100060 */ addiu $s0, $s0, 0x60 +/* 05293C 7F01DE0C 1000000A */ b .L7F01DE38 +/* 052940 7F01DE10 02001025 */ move $v0, $s0 +/* 052944 7F01DE14 26100060 */ addiu $s0, $s0, 0x60 +.L7F01DE18: +/* 052948 7F01DE18 1611FFF4 */ bne $s0, $s1, .L7F01DDEC +/* 05294C 7F01DE1C 00000000 */ nop +/* 052950 7F01DE20 24010064 */ li $at, 100 +/* 052954 7F01DE24 16410004 */ bne $s2, $at, .L7F01DE38 +/* 052958 7F01DE28 00001025 */ move $v0, $zero +/* 05295C 7F01DE2C 3C028007 */ lui $v0, %hi(save6) +/* 052960 7F01DE30 10000001 */ b .L7F01DE38 +/* 052964 7F01DE34 24429B00 */ addiu $v0, %lo(save6) # addiu $v0, $v0, -0x6500 +.L7F01DE38: +/* 052968 7F01DE38 8FBF0024 */ lw $ra, 0x24($sp) +/* 05296C 7F01DE3C 8FB00018 */ lw $s0, 0x18($sp) +/* 052970 7F01DE40 8FB1001C */ lw $s1, 0x1c($sp) +/* 052974 7F01DE44 8FB20020 */ lw $s2, 0x20($sp) +/* 052978 7F01DE48 03E00008 */ jr $ra +/* 05297C 7F01DE4C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01DE50(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01DE50 +/* 052980 7F01DE50 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 052984 7F01DE54 AFB1001C */ sw $s1, 0x1c($sp) +/* 052988 7F01DE58 AFB20020 */ sw $s2, 0x20($sp) +/* 05298C 7F01DE5C AFB00018 */ sw $s0, 0x18($sp) +/* 052990 7F01DE60 3C118007 */ lui $s1, %hi(save1) +/* 052994 7F01DE64 AFBF0024 */ sw $ra, 0x24($sp) +/* 052998 7F01DE68 26319920 */ addiu $s1, %lo(save1) # addiu $s1, $s1, -0x66e0 +/* 05299C 7F01DE6C 00008025 */ move $s0, $zero +/* 0529A0 7F01DE70 24120005 */ li $s2, 5 +.L7F01DE74: +/* 0529A4 7F01DE74 0FC07655 */ jal check_if_eeprom_flag_set_0x80 +/* 0529A8 7F01DE78 02202025 */ move $a0, $s1 +/* 0529AC 7F01DE7C 50400004 */ beql $v0, $zero, .L7F01DE90 +/* 0529B0 7F01DE80 26100001 */ addiu $s0, $s0, 1 +/* 0529B4 7F01DE84 10000005 */ b .L7F01DE9C +/* 0529B8 7F01DE88 02001025 */ move $v0, $s0 +/* 0529BC 7F01DE8C 26100001 */ addiu $s0, $s0, 1 +.L7F01DE90: +/* 0529C0 7F01DE90 1612FFF8 */ bne $s0, $s2, .L7F01DE74 +/* 0529C4 7F01DE94 26310060 */ addiu $s1, $s1, 0x60 +/* 0529C8 7F01DE98 2402FFFF */ li $v0, -1 +.L7F01DE9C: +/* 0529CC 7F01DE9C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0529D0 7F01DEA0 8FB00018 */ lw $s0, 0x18($sp) +/* 0529D4 7F01DEA4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0529D8 7F01DEA8 8FB20020 */ lw $s2, 0x20($sp) +/* 0529DC 7F01DEAC 03E00008 */ jr $ra +/* 0529E0 7F01DEB0 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01DEB4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01DEB4 +/* 0529E4 7F01DEB4 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 0529E8 7F01DEB8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0529EC 7F01DEBC AFB00018 */ sw $s0, 0x18($sp) +/* 0529F0 7F01DEC0 0FC07794 */ jal sub_GAME_7F01DE50 +/* 0529F4 7F01DEC4 AFA40088 */ sw $a0, 0x88($sp) +/* 0529F8 7F01DEC8 0440002C */ bltz $v0, .L7F01DF7C +/* 0529FC 7F01DECC 00401825 */ move $v1, $v0 +/* 052A00 7F01DED0 3C0E8003 */ lui $t6, %hi(D_8002C5E0) +/* 052A04 7F01DED4 27A20024 */ addiu $v0, $sp, 0x24 +/* 052A08 7F01DED8 25CEC5E0 */ addiu $t6, %lo(D_8002C5E0) # addiu $t6, $t6, -0x3a20 +/* 052A0C 7F01DEDC 25D80060 */ addiu $t8, $t6, 0x60 +/* 052A10 7F01DEE0 0040C825 */ move $t9, $v0 +.L7F01DEE4: +/* 052A14 7F01DEE4 8DC10000 */ lw $at, ($t6) +/* 052A18 7F01DEE8 25CE000C */ addiu $t6, $t6, 0xc +/* 052A1C 7F01DEEC 2739000C */ addiu $t9, $t9, 0xc +/* 052A20 7F01DEF0 AF21FFF4 */ sw $at, -0xc($t9) +/* 052A24 7F01DEF4 8DC1FFF8 */ lw $at, -8($t6) +/* 052A28 7F01DEF8 AF21FFF8 */ sw $at, -8($t9) +/* 052A2C 7F01DEFC 8DC1FFFC */ lw $at, -4($t6) +/* 052A30 7F01DF00 15D8FFF8 */ bne $t6, $t8, .L7F01DEE4 +/* 052A34 7F01DF04 AF21FFFC */ sw $at, -4($t9) +/* 052A38 7F01DF08 00034080 */ sll $t0, $v1, 2 +/* 052A3C 7F01DF0C 01034023 */ subu $t0, $t0, $v1 +/* 052A40 7F01DF10 3C098007 */ lui $t1, %hi(save1) +/* 052A44 7F01DF14 25299920 */ addiu $t1, %lo(save1) # addiu $t1, $t1, -0x66e0 +/* 052A48 7F01DF18 00084140 */ sll $t0, $t0, 5 +/* 052A4C 7F01DF1C 01098021 */ addu $s0, $t0, $t1 +/* 052A50 7F01DF20 02006825 */ move $t5, $s0 +/* 052A54 7F01DF24 00406025 */ move $t4, $v0 +/* 052A58 7F01DF28 244B0060 */ addiu $t3, $v0, 0x60 +.L7F01DF2C: +/* 052A5C 7F01DF2C 8D810000 */ lw $at, ($t4) +/* 052A60 7F01DF30 258C000C */ addiu $t4, $t4, 0xc +/* 052A64 7F01DF34 25AD000C */ addiu $t5, $t5, 0xc +/* 052A68 7F01DF38 ADA1FFF4 */ sw $at, -0xc($t5) +/* 052A6C 7F01DF3C 8D81FFF8 */ lw $at, -8($t4) +/* 052A70 7F01DF40 ADA1FFF8 */ sw $at, -8($t5) +/* 052A74 7F01DF44 8D81FFFC */ lw $at, -4($t4) +/* 052A78 7F01DF48 158BFFF8 */ bne $t4, $t3, .L7F01DF2C +/* 052A7C 7F01DF4C ADA1FFFC */ sw $at, -4($t5) +/* 052A80 7F01DF50 02002025 */ move $a0, $s0 +/* 052A84 7F01DF54 0FC07636 */ jal set_eeprom_to_folder_num +/* 052A88 7F01DF58 8FA50088 */ lw $a1, 0x88($sp) +/* 052A8C 7F01DF5C 02002025 */ move $a0, $s0 +/* 052A90 7F01DF60 0FC07659 */ jal toggle_eeprom_flag_set_0x80 +/* 052A94 7F01DF64 00002825 */ move $a1, $zero +/* 052A98 7F01DF68 02002025 */ move $a0, $s0 +/* 052A9C 7F01DF6C 0FC0764D */ jal set_selected_bond +/* 052AA0 7F01DF70 8FA50088 */ lw $a1, 0x88($sp) +/* 052AA4 7F01DF74 0FC075E8 */ jal sub_GAME_7F01D7A0 +/* 052AA8 7F01DF78 02002025 */ move $a0, $s0 +.L7F01DF7C: +/* 052AAC 7F01DF7C 8FBF001C */ lw $ra, 0x1c($sp) +/* 052AB0 7F01DF80 8FB00018 */ lw $s0, 0x18($sp) +/* 052AB4 7F01DF84 27BD0088 */ addiu $sp, $sp, 0x88 +/* 052AB8 7F01DF88 03E00008 */ jr $ra +/* 052ABC 7F01DF8C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01DF90(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01DF90 +/* 052AC0 7F01DF90 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 052AC4 7F01DF94 AFBF003C */ sw $ra, 0x3c($sp) +/* 052AC8 7F01DF98 AFBE0038 */ sw $fp, 0x38($sp) +/* 052ACC 7F01DF9C AFB70034 */ sw $s7, 0x34($sp) +/* 052AD0 7F01DFA0 AFB60030 */ sw $s6, 0x30($sp) +/* 052AD4 7F01DFA4 AFB5002C */ sw $s5, 0x2c($sp) +/* 052AD8 7F01DFA8 AFB40028 */ sw $s4, 0x28($sp) +/* 052ADC 7F01DFAC AFB30024 */ sw $s3, 0x24($sp) +/* 052AE0 7F01DFB0 AFB20020 */ sw $s2, 0x20($sp) +/* 052AE4 7F01DFB4 AFB1001C */ sw $s1, 0x1c($sp) +/* 052AE8 7F01DFB8 0FC075B0 */ jal sub_GAME_7F01D6C0 +/* 052AEC 7F01DFBC AFB00018 */ sw $s0, 0x18($sp) +/* 052AF0 7F01DFC0 104000A6 */ beqz $v0, .L7F01E25C +/* 052AF4 7F01DFC4 27B10094 */ addiu $s1, $sp, 0x94 +/* 052AF8 7F01DFC8 24100001 */ li $s0, 1 +/* 052AFC 7F01DFCC 00002025 */ move $a0, $zero +/* 052B00 7F01DFD0 02202825 */ move $a1, $s1 +/* 052B04 7F01DFD4 0C0031EF */ jal save_7000C7BC +/* 052B08 7F01DFD8 24060020 */ li $a2, 32 +/* 052B0C 7F01DFDC 93AE009C */ lbu $t6, 0x9c($sp) +/* 052B10 7F01DFE0 24010042 */ li $at, 66 +/* 052B14 7F01DFE4 27B5008C */ addiu $s5, $sp, 0x8c +/* 052B18 7F01DFE8 11C10002 */ beq $t6, $at, .L7F01DFF4 +/* 052B1C 7F01DFEC 27A4009C */ addiu $a0, $sp, 0x9c +/* 052B20 7F01DFF0 00008025 */ move $s0, $zero +.L7F01DFF4: +/* 052B24 7F01DFF4 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 052B28 7F01DFF8 0FC26D80 */ jal sub_GAME_7F09B600 +/* 052B2C 7F01DFFC 02A03025 */ move $a2, $s5 +/* 052B30 7F01E000 8FAF008C */ lw $t7, 0x8c($sp) +/* 052B34 7F01E004 8FB80094 */ lw $t8, 0x94($sp) +/* 052B38 7F01E008 8FB90090 */ lw $t9, 0x90($sp) +/* 052B3C 7F01E00C 8FA80098 */ lw $t0, 0x98($sp) +/* 052B40 7F01E010 15F80003 */ bne $t7, $t8, .L7F01E020 +/* 052B44 7F01E014 3C098003 */ lui $t1, %hi(D_8002C640) +/* 052B48 7F01E018 13280002 */ beq $t9, $t0, .L7F01E024 +/* 052B4C 7F01E01C 00000000 */ nop +.L7F01E020: +/* 052B50 7F01E020 00008025 */ move $s0, $zero +.L7F01E024: +/* 052B54 7F01E024 16000023 */ bnez $s0, .L7F01E0B4 +/* 052B58 7F01E028 2529C640 */ addiu $t1, %lo(D_8002C640) # addiu $t1, $t1, -0x39c0 +/* 052B5C 7F01E02C 8D210000 */ lw $at, ($t1) +/* 052B60 7F01E030 27A20064 */ addiu $v0, $sp, 0x64 +/* 052B64 7F01E034 02202025 */ move $a0, $s1 +/* 052B68 7F01E038 AC410000 */ sw $at, ($v0) +/* 052B6C 7F01E03C 8D2B0004 */ lw $t3, 4($t1) +/* 052B70 7F01E040 AC4B0004 */ sw $t3, 4($v0) +/* 052B74 7F01E044 8D210008 */ lw $at, 8($t1) +/* 052B78 7F01E048 8C4D0004 */ lw $t5, 4($v0) +/* 052B7C 7F01E04C AC410008 */ sw $at, 8($v0) +/* 052B80 7F01E050 8D2B000C */ lw $t3, 0xc($t1) +/* 052B84 7F01E054 AC4B000C */ sw $t3, 0xc($v0) +/* 052B88 7F01E058 8D210010 */ lw $at, 0x10($t1) +/* 052B8C 7F01E05C AC410010 */ sw $at, 0x10($v0) +/* 052B90 7F01E060 8D2B0014 */ lw $t3, 0x14($t1) +/* 052B94 7F01E064 AC4B0014 */ sw $t3, 0x14($v0) +/* 052B98 7F01E068 8D210018 */ lw $at, 0x18($t1) +/* 052B9C 7F01E06C AC410018 */ sw $at, 0x18($v0) +/* 052BA0 7F01E070 8C410000 */ lw $at, ($v0) +/* 052BA4 7F01E074 8D2B001C */ lw $t3, 0x1c($t1) +/* 052BA8 7F01E078 AE2D0004 */ sw $t5, 4($s1) +/* 052BAC 7F01E07C AE210000 */ sw $at, ($s1) +/* 052BB0 7F01E080 8C410008 */ lw $at, 8($v0) +/* 052BB4 7F01E084 8C4D000C */ lw $t5, 0xc($v0) +/* 052BB8 7F01E088 AC4B001C */ sw $t3, 0x1c($v0) +/* 052BBC 7F01E08C AE210008 */ sw $at, 8($s1) +/* 052BC0 7F01E090 8C410010 */ lw $at, 0x10($v0) +/* 052BC4 7F01E094 AE2D000C */ sw $t5, 0xc($s1) +/* 052BC8 7F01E098 8C4D0014 */ lw $t5, 0x14($v0) +/* 052BCC 7F01E09C AE210010 */ sw $at, 0x10($s1) +/* 052BD0 7F01E0A0 8C410018 */ lw $at, 0x18($v0) +/* 052BD4 7F01E0A4 AE2B001C */ sw $t3, 0x1c($s1) +/* 052BD8 7F01E0A8 AE2D0014 */ sw $t5, 0x14($s1) +/* 052BDC 7F01E0AC 0FC075D6 */ jal sub_GAME_7F01D758 +/* 052BE0 7F01E0B0 AE210018 */ sw $at, 0x18($s1) +.L7F01E0B4: +/* 052BE4 7F01E0B4 3C058007 */ lui $a1, %hi(save1) +/* 052BE8 7F01E0B8 24A59920 */ addiu $a1, %lo(save1) # addiu $a1, $a1, -0x66e0 +/* 052BEC 7F01E0BC 24040004 */ li $a0, 4 +/* 052BF0 7F01E0C0 0C0031EF */ jal save_7000C7BC +/* 052BF4 7F01E0C4 240601E0 */ li $a2, 480 +/* 052BF8 7F01E0C8 3C108007 */ lui $s0, %hi(save1) +/* 052BFC 7F01E0CC 3C138007 */ lui $s3, %hi(save1+8) +/* 052C00 7F01E0D0 3C128007 */ lui $s2, %hi(save2) +/* 052C04 7F01E0D4 3C148007 */ lui $s4, %hi(dword_CODE_bss_80069B60) +/* 052C08 7F01E0D8 26949B60 */ addiu $s4, %lo(dword_CODE_bss_80069B60) # addiu $s4, $s4, -0x64a0 +/* 052C0C 7F01E0DC 26529980 */ addiu $s2, %lo(save2) # addiu $s2, $s2, -0x6680 +/* 052C10 7F01E0E0 26739928 */ addiu $s3, %lo(save1+8) # addiu $s3, $s3, -0x66d8 +/* 052C14 7F01E0E4 26109920 */ addiu $s0, %lo(save1) # addiu $s0, $s0, -0x66e0 +.L7F01E0E8: +/* 052C18 7F01E0E8 24110001 */ li $s1, 1 +/* 052C1C 7F01E0EC 02602025 */ move $a0, $s3 +/* 052C20 7F01E0F0 02402825 */ move $a1, $s2 +/* 052C24 7F01E0F4 0FC26D80 */ jal sub_GAME_7F09B600 +/* 052C28 7F01E0F8 02A03025 */ move $a2, $s5 +/* 052C2C 7F01E0FC 8FAE008C */ lw $t6, 0x8c($sp) +/* 052C30 7F01E100 8E0F0000 */ lw $t7, ($s0) +/* 052C34 7F01E104 8FB80090 */ lw $t8, 0x90($sp) +/* 052C38 7F01E108 55CF0005 */ bnel $t6, $t7, .L7F01E120 +/* 052C3C 7F01E10C 00008825 */ move $s1, $zero +/* 052C40 7F01E110 8E190004 */ lw $t9, 4($s0) +/* 052C44 7F01E114 13190002 */ beq $t8, $t9, .L7F01E120 +/* 052C48 7F01E118 00000000 */ nop +/* 052C4C 7F01E11C 00008825 */ move $s1, $zero +.L7F01E120: +/* 052C50 7F01E120 56200004 */ bnezl $s1, .L7F01E134 +/* 052C54 7F01E124 26520060 */ addiu $s2, $s2, 0x60 +/* 052C58 7F01E128 0FC07610 */ jal sub_GAME_7F01D840 +/* 052C5C 7F01E12C 02002025 */ move $a0, $s0 +/* 052C60 7F01E130 26520060 */ addiu $s2, $s2, 0x60 +.L7F01E134: +/* 052C64 7F01E134 26100060 */ addiu $s0, $s0, 0x60 +/* 052C68 7F01E138 1654FFEB */ bne $s2, $s4, .L7F01E0E8 +/* 052C6C 7F01E13C 26730060 */ addiu $s3, $s3, 0x60 +/* 052C70 7F01E140 0000B025 */ move $s6, $zero +/* 052C74 7F01E144 241E0060 */ li $fp, 96 +/* 052C78 7F01E148 24170005 */ li $s7, 5 +.L7F01E14C: +/* 052C7C 7F01E14C 3C108007 */ lui $s0, %hi(save1) +/* 052C80 7F01E150 2414FFFF */ li $s4, -1 +/* 052C84 7F01E154 2415FFFF */ li $s5, -1 +/* 052C88 7F01E158 26109920 */ addiu $s0, %lo(save1) # addiu $s0, $s0, -0x66e0 +/* 052C8C 7F01E15C 00008825 */ move $s1, $zero +.L7F01E160: +/* 052C90 7F01E160 0FC07655 */ jal check_if_eeprom_flag_set_0x80 +/* 052C94 7F01E164 02002025 */ move $a0, $s0 +/* 052C98 7F01E168 54400023 */ bnezl $v0, .L7F01E1F8 +/* 052C9C 7F01E16C 26310001 */ addiu $s1, $s1, 1 +/* 052CA0 7F01E170 0FC07632 */ jal get_foldernum_of_eeprom +/* 052CA4 7F01E174 02002025 */ move $a0, $s0 +/* 052CA8 7F01E178 5456001F */ bnel $v0, $s6, .L7F01E1F8 +/* 052CAC 7F01E17C 26310001 */ addiu $s1, $s1, 1 +/* 052CB0 7F01E180 06810006 */ bgez $s4, .L7F01E19C +/* 052CB4 7F01E184 02002025 */ move $a0, $s0 +/* 052CB8 7F01E188 0220A025 */ move $s4, $s1 +/* 052CBC 7F01E18C 0FC0763D */ jal set_eeprom_flag_0x18 +/* 052CC0 7F01E190 02002025 */ move $a0, $s0 +/* 052CC4 7F01E194 10000017 */ b .L7F01E1F4 +/* 052CC8 7F01E198 0040A825 */ move $s5, $v0 +.L7F01E19C: +/* 052CCC 7F01E19C 26B30001 */ addiu $s3, $s5, 1 +/* 052CD0 7F01E1A0 06610004 */ bgez $s3, .L7F01E1B4 +/* 052CD4 7F01E1A4 32680003 */ andi $t0, $s3, 3 +/* 052CD8 7F01E1A8 11000002 */ beqz $t0, .L7F01E1B4 +/* 052CDC 7F01E1AC 00000000 */ nop +/* 052CE0 7F01E1B0 2508FFFC */ addiu $t0, $t0, -4 +.L7F01E1B4: +/* 052CE4 7F01E1B4 0FC0763D */ jal set_eeprom_flag_0x18 +/* 052CE8 7F01E1B8 01009825 */ move $s3, $t0 +/* 052CEC 7F01E1BC 1453000B */ bne $v0, $s3, .L7F01E1EC +/* 052CF0 7F01E1C0 00409025 */ move $s2, $v0 +/* 052CF4 7F01E1C4 029E0019 */ multu $s4, $fp +/* 052CF8 7F01E1C8 3C098007 */ lui $t1, %hi(save1) +/* 052CFC 7F01E1CC 25299920 */ addiu $t1, %lo(save1) # addiu $t1, $t1, -0x66e0 +/* 052D00 7F01E1D0 00005012 */ mflo $t2 +/* 052D04 7F01E1D4 01492021 */ addu $a0, $t2, $t1 +/* 052D08 7F01E1D8 0FC07610 */ jal sub_GAME_7F01D840 +/* 052D0C 7F01E1DC 00000000 */ nop +/* 052D10 7F01E1E0 0220A025 */ move $s4, $s1 +/* 052D14 7F01E1E4 10000003 */ b .L7F01E1F4 +/* 052D18 7F01E1E8 0240A825 */ move $s5, $s2 +.L7F01E1EC: +/* 052D1C 7F01E1EC 0FC07610 */ jal sub_GAME_7F01D840 +/* 052D20 7F01E1F0 02002025 */ move $a0, $s0 +.L7F01E1F4: +/* 052D24 7F01E1F4 26310001 */ addiu $s1, $s1, 1 +.L7F01E1F8: +/* 052D28 7F01E1F8 1637FFD9 */ bne $s1, $s7, .L7F01E160 +/* 052D2C 7F01E1FC 26100060 */ addiu $s0, $s0, 0x60 +/* 052D30 7F01E200 06830004 */ bgezl $s4, .L7F01E214 +/* 052D34 7F01E204 26D60001 */ addiu $s6, $s6, 1 +/* 052D38 7F01E208 0FC077AD */ jal sub_GAME_7F01DEB4 +/* 052D3C 7F01E20C 02C02025 */ move $a0, $s6 +/* 052D40 7F01E210 26D60001 */ addiu $s6, $s6, 1 +.L7F01E214: +/* 052D44 7F01E214 2AC10004 */ slti $at, $s6, 4 +/* 052D48 7F01E218 1420FFCC */ bnez $at, .L7F01E14C +/* 052D4C 7F01E21C 00000000 */ nop +/* 052D50 7F01E220 0000B025 */ move $s6, $zero +/* 052D54 7F01E224 24110004 */ li $s1, 4 +.L7F01E228: +/* 052D58 7F01E228 0FC07771 */ jal get_save_folder_ptr +/* 052D5C 7F01E22C 02C02025 */ move $a0, $s6 +/* 052D60 7F01E230 10400007 */ beqz $v0, .L7F01E250 +/* 052D64 7F01E234 00402025 */ move $a0, $v0 +/* 052D68 7F01E238 3C0C8003 */ lui $t4, %hi(save_selected_bond) +/* 052D6C 7F01E23C 258CC510 */ addiu $t4, %lo(save_selected_bond) # addiu $t4, $t4, -0x3af0 +/* 052D70 7F01E240 00165880 */ sll $t3, $s6, 2 +/* 052D74 7F01E244 0FC07649 */ jal get_selected_bond +/* 052D78 7F01E248 016C8021 */ addu $s0, $t3, $t4 +/* 052D7C 7F01E24C AE020000 */ sw $v0, ($s0) +.L7F01E250: +/* 052D80 7F01E250 26D60001 */ addiu $s6, $s6, 1 +/* 052D84 7F01E254 16D1FFF4 */ bne $s6, $s1, .L7F01E228 +/* 052D88 7F01E258 00000000 */ nop +.L7F01E25C: +/* 052D8C 7F01E25C 8FBF003C */ lw $ra, 0x3c($sp) +/* 052D90 7F01E260 8FB00018 */ lw $s0, 0x18($sp) +/* 052D94 7F01E264 8FB1001C */ lw $s1, 0x1c($sp) +/* 052D98 7F01E268 8FB20020 */ lw $s2, 0x20($sp) +/* 052D9C 7F01E26C 8FB30024 */ lw $s3, 0x24($sp) +/* 052DA0 7F01E270 8FB40028 */ lw $s4, 0x28($sp) +/* 052DA4 7F01E274 8FB5002C */ lw $s5, 0x2c($sp) +/* 052DA8 7F01E278 8FB60030 */ lw $s6, 0x30($sp) +/* 052DAC 7F01E27C 8FB70034 */ lw $s7, 0x34($sp) +/* 052DB0 7F01E280 8FBE0038 */ lw $fp, 0x38($sp) +/* 052DB4 7F01E284 03E00008 */ jr $ra +/* 052DB8 7F01E288 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + +#ifdef NONMATCHING +void check_if_valid_folder_num(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_if_valid_folder_num +/* 052DBC 7F01E28C 04800005 */ bltz $a0, .L7F01E2A4 +/* 052DC0 7F01E290 28810004 */ slti $at, $a0, 4 +/* 052DC4 7F01E294 50200004 */ beql $at, $zero, .L7F01E2A8 +/* 052DC8 7F01E298 24010064 */ li $at, 100 +/* 052DCC 7F01E29C 03E00008 */ jr $ra +/* 052DD0 7F01E2A0 24020001 */ li $v0, 1 + +.L7F01E2A4: +/* 052DD4 7F01E2A4 24010064 */ li $at, 100 +.L7F01E2A8: +/* 052DD8 7F01E2A8 14810003 */ bne $a0, $at, .L7F01E2B8 +/* 052DDC 7F01E2AC 00001025 */ move $v0, $zero +/* 052DE0 7F01E2B0 03E00008 */ jr $ra +/* 052DE4 7F01E2B4 24020001 */ li $v0, 1 + +.L7F01E2B8: +/* 052DE8 7F01E2B8 03E00008 */ jr $ra +/* 052DEC 7F01E2BC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 isStageUnlockedAtDifficulty(int foldernum,STAGENUM stageid,DIFFICULTY difficulty) { + +} +#else +GLOBAL_ASM( +.text +glabel isStageUnlockedAtDifficulty +/* 052DF0 7F01E2C0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 052DF4 7F01E2C4 AFBF002C */ sw $ra, 0x2c($sp) +/* 052DF8 7F01E2C8 AFB50028 */ sw $s5, 0x28($sp) +/* 052DFC 7F01E2CC AFB30020 */ sw $s3, 0x20($sp) +/* 052E00 7F01E2D0 AFB00014 */ sw $s0, 0x14($sp) +/* 052E04 7F01E2D4 00808025 */ move $s0, $a0 +/* 052E08 7F01E2D8 00A09825 */ move $s3, $a1 +/* 052E0C 7F01E2DC 00C0A825 */ move $s5, $a2 +/* 052E10 7F01E2E0 AFB40024 */ sw $s4, 0x24($sp) +/* 052E14 7F01E2E4 AFB2001C */ sw $s2, 0x1c($sp) +/* 052E18 7F01E2E8 0FC078A3 */ jal check_if_valid_folder_num +/* 052E1C 7F01E2EC AFB10018 */ sw $s1, 0x18($sp) +/* 052E20 7F01E2F0 5040007B */ beql $v0, $zero, .L7F01E4E0 +/* 052E24 7F01E2F4 00001025 */ move $v0, $zero +/* 052E28 7F01E2F8 06600078 */ bltz $s3, .L7F01E4DC +/* 052E2C 7F01E2FC 2A610014 */ slti $at, $s3, 0x14 +/* 052E30 7F01E300 50200077 */ beql $at, $zero, .L7F01E4E0 +/* 052E34 7F01E304 00001025 */ move $v0, $zero +/* 052E38 7F01E308 06A00074 */ bltz $s5, .L7F01E4DC +/* 052E3C 7F01E30C 2AA10004 */ slti $at, $s5, 4 +/* 052E40 7F01E310 50200073 */ beql $at, $zero, .L7F01E4E0 +/* 052E44 7F01E314 00001025 */ move $v0, $zero +/* 052E48 7F01E318 0FC07771 */ jal get_save_folder_ptr +/* 052E4C 7F01E31C 02002025 */ move $a0, $s0 +/* 052E50 7F01E320 1040005C */ beqz $v0, .L7F01E494 +/* 052E54 7F01E324 00409025 */ move $s2, $v0 +/* 052E58 7F01E328 00402025 */ move $a0, $v0 +/* 052E5C 7F01E32C 02602825 */ move $a1, $s3 +/* 052E60 7F01E330 0FC07718 */ jal get_eeprom_stage_completed_for_difficulty +/* 052E64 7F01E334 02A03025 */ move $a2, $s5 +/* 052E68 7F01E338 10400003 */ beqz $v0, .L7F01E348 +/* 052E6C 7F01E33C 24010012 */ li $at, 18 +/* 052E70 7F01E340 10000067 */ b .L7F01E4E0 +/* 052E74 7F01E344 24020003 */ li $v0, 3 +.L7F01E348: +/* 052E78 7F01E348 56610003 */ bnel $s3, $at, .L7F01E358 +/* 052E7C 7F01E34C 24010013 */ li $at, 19 +/* 052E80 7F01E350 1AA00005 */ blez $s5, .L7F01E368 +/* 052E84 7F01E354 24010013 */ li $at, 19 +.L7F01E358: +/* 052E88 7F01E358 16610005 */ bne $s3, $at, .L7F01E370 +/* 052E8C 7F01E35C 2AA10002 */ slti $at, $s5, 2 +/* 052E90 7F01E360 50200004 */ beql $at, $zero, .L7F01E374 +/* 052E94 7F01E364 2AA10004 */ slti $at, $s5, 4 +.L7F01E368: +/* 052E98 7F01E368 1000005D */ b .L7F01E4E0 +/* 052E9C 7F01E36C 00001025 */ move $v0, $zero +.L7F01E370: +/* 052EA0 7F01E370 2AA10004 */ slti $at, $s5, 4 +.L7F01E374: +/* 052EA4 7F01E374 10200014 */ beqz $at, .L7F01E3C8 +/* 052EA8 7F01E378 02A08825 */ move $s1, $s5 +/* 052EAC 7F01E37C 24140004 */ li $s4, 4 +.L7F01E380: +/* 052EB0 7F01E380 1A60000A */ blez $s3, .L7F01E3AC +/* 052EB4 7F01E384 00008025 */ move $s0, $zero +/* 052EB8 7F01E388 02402025 */ move $a0, $s2 +.L7F01E38C: +/* 052EBC 7F01E38C 02002825 */ move $a1, $s0 +/* 052EC0 7F01E390 0FC07718 */ jal get_eeprom_stage_completed_for_difficulty +/* 052EC4 7F01E394 02203025 */ move $a2, $s1 +/* 052EC8 7F01E398 50400005 */ beql $v0, $zero, .L7F01E3B0 +/* 052ECC 7F01E39C 0213082A */ slt $at, $s0, $s3 +/* 052ED0 7F01E3A0 26100001 */ addiu $s0, $s0, 1 +/* 052ED4 7F01E3A4 5613FFF9 */ bnel $s0, $s3, .L7F01E38C +/* 052ED8 7F01E3A8 02402025 */ move $a0, $s2 +.L7F01E3AC: +/* 052EDC 7F01E3AC 0213082A */ slt $at, $s0, $s3 +.L7F01E3B0: +/* 052EE0 7F01E3B0 14200003 */ bnez $at, .L7F01E3C0 +/* 052EE4 7F01E3B4 26310001 */ addiu $s1, $s1, 1 +/* 052EE8 7F01E3B8 10000049 */ b .L7F01E4E0 +/* 052EEC 7F01E3BC 24020001 */ li $v0, 1 +.L7F01E3C0: +/* 052EF0 7F01E3C0 1634FFEF */ bne $s1, $s4, .L7F01E380 +/* 052EF4 7F01E3C4 00000000 */ nop +.L7F01E3C8: +/* 052EF8 7F01E3C8 2AA10003 */ slti $at, $s5, 3 +/* 052EFC 7F01E3CC 10200011 */ beqz $at, .L7F01E414 +/* 052F00 7F01E3D0 24140004 */ li $s4, 4 +/* 052F04 7F01E3D4 2A610012 */ slti $at, $s3, 0x12 +/* 052F08 7F01E3D8 1020000E */ beqz $at, .L7F01E414 +/* 052F0C 7F01E3DC 2AA10004 */ slti $at, $s5, 4 +/* 052F10 7F01E3E0 1020000C */ beqz $at, .L7F01E414 +/* 052F14 7F01E3E4 02A08825 */ move $s1, $s5 +/* 052F18 7F01E3E8 2670FFFF */ addiu $s0, $s3, -1 +/* 052F1C 7F01E3EC 02402025 */ move $a0, $s2 +.L7F01E3F0: +/* 052F20 7F01E3F0 02002825 */ move $a1, $s0 +/* 052F24 7F01E3F4 0FC07718 */ jal get_eeprom_stage_completed_for_difficulty +/* 052F28 7F01E3F8 02203025 */ move $a2, $s1 +/* 052F2C 7F01E3FC 10400003 */ beqz $v0, .L7F01E40C +/* 052F30 7F01E400 26310001 */ addiu $s1, $s1, 1 +/* 052F34 7F01E404 10000036 */ b .L7F01E4E0 +/* 052F38 7F01E408 24020001 */ li $v0, 1 +.L7F01E40C: +/* 052F3C 7F01E40C 5634FFF8 */ bnel $s1, $s4, .L7F01E3F0 +/* 052F40 7F01E410 02402025 */ move $a0, $s2 +.L7F01E414: +/* 052F44 7F01E414 2AA10003 */ slti $at, $s5, 3 +/* 052F48 7F01E418 1020001E */ beqz $at, .L7F01E494 +/* 052F4C 7F01E41C 00008825 */ move $s1, $zero +/* 052F50 7F01E420 02402025 */ move $a0, $s2 +.L7F01E424: +/* 052F54 7F01E424 02202825 */ move $a1, $s1 +/* 052F58 7F01E428 0FC07718 */ jal get_eeprom_stage_completed_for_difficulty +/* 052F5C 7F01E42C 00003025 */ move $a2, $zero +/* 052F60 7F01E430 50400006 */ beql $v0, $zero, .L7F01E44C +/* 052F64 7F01E434 2A210012 */ slti $at, $s1, 0x12 +/* 052F68 7F01E438 26310001 */ addiu $s1, $s1, 1 +/* 052F6C 7F01E43C 2A210012 */ slti $at, $s1, 0x12 +/* 052F70 7F01E440 5420FFF8 */ bnezl $at, .L7F01E424 +/* 052F74 7F01E444 02402025 */ move $a0, $s2 +/* 052F78 7F01E448 2A210012 */ slti $at, $s1, 0x12 +.L7F01E44C: +/* 052F7C 7F01E44C 14200011 */ bnez $at, .L7F01E494 +/* 052F80 7F01E450 00000000 */ nop +/* 052F84 7F01E454 1AA0000A */ blez $s5, .L7F01E480 +/* 052F88 7F01E458 00008825 */ move $s1, $zero +/* 052F8C 7F01E45C 02402025 */ move $a0, $s2 +.L7F01E460: +/* 052F90 7F01E460 02602825 */ move $a1, $s3 +/* 052F94 7F01E464 0FC07718 */ jal get_eeprom_stage_completed_for_difficulty +/* 052F98 7F01E468 02203025 */ move $a2, $s1 +/* 052F9C 7F01E46C 50400005 */ beql $v0, $zero, .L7F01E484 +/* 052FA0 7F01E470 0235082A */ slt $at, $s1, $s5 +/* 052FA4 7F01E474 26310001 */ addiu $s1, $s1, 1 +/* 052FA8 7F01E478 5635FFF9 */ bnel $s1, $s5, .L7F01E460 +/* 052FAC 7F01E47C 02402025 */ move $a0, $s2 +.L7F01E480: +/* 052FB0 7F01E480 0235082A */ slt $at, $s1, $s5 +.L7F01E484: +/* 052FB4 7F01E484 14200003 */ bnez $at, .L7F01E494 +/* 052FB8 7F01E488 00000000 */ nop +/* 052FBC 7F01E48C 10000014 */ b .L7F01E4E0 +/* 052FC0 7F01E490 24020001 */ li $v0, 1 +.L7F01E494: +/* 052FC4 7F01E494 16600003 */ bnez $s3, .L7F01E4A4 +/* 052FC8 7F01E498 00000000 */ nop +/* 052FCC 7F01E49C 10000010 */ b .L7F01E4E0 +/* 052FD0 7F01E4A0 24020001 */ li $v0, 1 +.L7F01E4A4: +/* 052FD4 7F01E4A4 0FC24400 */ jal get_debug_enable_agent_levels_flag +/* 052FD8 7F01E4A8 00000000 */ nop +/* 052FDC 7F01E4AC 10400005 */ beqz $v0, .L7F01E4C4 +/* 052FE0 7F01E4B0 00000000 */ nop +/* 052FE4 7F01E4B4 16A00003 */ bnez $s5, .L7F01E4C4 +/* 052FE8 7F01E4B8 00000000 */ nop +/* 052FEC 7F01E4BC 10000008 */ b .L7F01E4E0 +/* 052FF0 7F01E4C0 24020001 */ li $v0, 1 +.L7F01E4C4: +/* 052FF4 7F01E4C4 0FC24403 */ jal get_debug_enable_all_levels_flag +/* 052FF8 7F01E4C8 00000000 */ nop +/* 052FFC 7F01E4CC 50400004 */ beql $v0, $zero, .L7F01E4E0 +/* 053000 7F01E4D0 00001025 */ move $v0, $zero +/* 053004 7F01E4D4 10000002 */ b .L7F01E4E0 +/* 053008 7F01E4D8 24020001 */ li $v0, 1 +.L7F01E4DC: +/* 05300C 7F01E4DC 00001025 */ move $v0, $zero +.L7F01E4E0: +/* 053010 7F01E4E0 8FBF002C */ lw $ra, 0x2c($sp) +/* 053014 7F01E4E4 8FB00014 */ lw $s0, 0x14($sp) +/* 053018 7F01E4E8 8FB10018 */ lw $s1, 0x18($sp) +/* 05301C 7F01E4EC 8FB2001C */ lw $s2, 0x1c($sp) +/* 053020 7F01E4F0 8FB30020 */ lw $s3, 0x20($sp) +/* 053024 7F01E4F4 8FB40024 */ lw $s4, 0x24($sp) +/* 053028 7F01E4F8 8FB50028 */ lw $s5, 0x28($sp) +/* 05302C 7F01E4FC 03E00008 */ jr $ra +/* 053030 7F01E500 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01E504(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01E504 +/* 053034 7F01E504 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 053038 7F01E508 AFBF0014 */ sw $ra, 0x14($sp) +/* 05303C 7F01E50C AFA40028 */ sw $a0, 0x28($sp) +/* 053040 7F01E510 AFA5002C */ sw $a1, 0x2c($sp) +/* 053044 7F01E514 0FC07794 */ jal sub_GAME_7F01DE50 +/* 053048 7F01E518 AFA00020 */ sw $zero, 0x20($sp) +/* 05304C 7F01E51C 04400032 */ bltz $v0, .L7F01E5E8 +/* 053050 7F01E520 00401825 */ move $v1, $v0 +/* 053054 7F01E524 8FB9002C */ lw $t9, 0x2c($sp) +/* 053058 7F01E528 00027080 */ sll $t6, $v0, 2 +/* 05305C 7F01E52C 01C27023 */ subu $t6, $t6, $v0 +/* 053060 7F01E530 3C0F8007 */ lui $t7, %hi(save1) +/* 053064 7F01E534 25EF9920 */ addiu $t7, %lo(save1) # addiu $t7, $t7, -0x66e0 +/* 053068 7F01E538 000E7140 */ sll $t6, $t6, 5 +/* 05306C 7F01E53C 01CFC021 */ addu $t8, $t6, $t7 +/* 053070 7F01E540 27290060 */ addiu $t1, $t9, 0x60 +.L7F01E544: +/* 053074 7F01E544 8F210000 */ lw $at, ($t9) +/* 053078 7F01E548 2739000C */ addiu $t9, $t9, 0xc +/* 05307C 7F01E54C 2718000C */ addiu $t8, $t8, 0xc +/* 053080 7F01E550 AF01FFF4 */ sw $at, -0xc($t8) +/* 053084 7F01E554 8F21FFF8 */ lw $at, -8($t9) +/* 053088 7F01E558 AF01FFF8 */ sw $at, -8($t8) +/* 05308C 7F01E55C 8F21FFFC */ lw $at, -4($t9) +/* 053090 7F01E560 1729FFF8 */ bne $t9, $t1, .L7F01E544 +/* 053094 7F01E564 AF01FFFC */ sw $at, -4($t8) +/* 053098 7F01E568 8FAA0028 */ lw $t2, 0x28($sp) +/* 05309C 7F01E56C 1140000B */ beqz $t2, .L7F01E59C +/* 0530A0 7F01E570 01402025 */ move $a0, $t2 +/* 0530A4 7F01E574 0FC0763D */ jal set_eeprom_flag_0x18 +/* 0530A8 7F01E578 AFA30024 */ sw $v1, 0x24($sp) +/* 0530AC 7F01E57C 244B0001 */ addiu $t3, $v0, 1 +/* 0530B0 7F01E580 8FA30024 */ lw $v1, 0x24($sp) +/* 0530B4 7F01E584 05610004 */ bgez $t3, .L7F01E598 +/* 0530B8 7F01E588 316C0003 */ andi $t4, $t3, 3 +/* 0530BC 7F01E58C 11800002 */ beqz $t4, .L7F01E598 +/* 0530C0 7F01E590 00000000 */ nop +/* 0530C4 7F01E594 258CFFFC */ addiu $t4, $t4, -4 +.L7F01E598: +/* 0530C8 7F01E598 AFAC0020 */ sw $t4, 0x20($sp) +.L7F01E59C: +/* 0530CC 7F01E59C 00036880 */ sll $t5, $v1, 2 +/* 0530D0 7F01E5A0 01A36823 */ subu $t5, $t5, $v1 +/* 0530D4 7F01E5A4 3C0E8007 */ lui $t6, %hi(save1) +/* 0530D8 7F01E5A8 25CE9920 */ addiu $t6, %lo(save1) # addiu $t6, $t6, -0x66e0 +/* 0530DC 7F01E5AC 000D6940 */ sll $t5, $t5, 5 +/* 0530E0 7F01E5B0 01AE2021 */ addu $a0, $t5, $t6 +/* 0530E4 7F01E5B4 AFA4001C */ sw $a0, 0x1c($sp) +/* 0530E8 7F01E5B8 0FC07659 */ jal toggle_eeprom_flag_set_0x80 +/* 0530EC 7F01E5BC 00002825 */ move $a1, $zero +/* 0530F0 7F01E5C0 8FA4001C */ lw $a0, 0x1c($sp) +/* 0530F4 7F01E5C4 0FC07641 */ jal reset_eeprom_flag_0x18 +/* 0530F8 7F01E5C8 8FA50020 */ lw $a1, 0x20($sp) +/* 0530FC 7F01E5CC 0FC075E8 */ jal sub_GAME_7F01D7A0 +/* 053100 7F01E5D0 8FA4001C */ lw $a0, 0x1c($sp) +/* 053104 7F01E5D4 8FAF0028 */ lw $t7, 0x28($sp) +/* 053108 7F01E5D8 51E00004 */ beql $t7, $zero, .L7F01E5EC +/* 05310C 7F01E5DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 053110 7F01E5E0 0FC07610 */ jal sub_GAME_7F01D840 +/* 053114 7F01E5E4 01E02025 */ move $a0, $t7 +.L7F01E5E8: +/* 053118 7F01E5E8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01E5EC: +/* 05311C 7F01E5EC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 053120 7F01E5F0 03E00008 */ jr $ra +/* 053124 7F01E5F4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void unlock_stage_in_folder_on_difficulty(void) { + +} +#else +GLOBAL_ASM( +.text +glabel unlock_stage_in_folder_on_difficulty +/* 053128 7F01E5F8 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 05312C 7F01E5FC AFB50028 */ sw $s5, 0x28($sp) +/* 053130 7F01E600 AFB40024 */ sw $s4, 0x24($sp) +/* 053134 7F01E604 AFB2001C */ sw $s2, 0x1c($sp) +/* 053138 7F01E608 AFB00014 */ sw $s0, 0x14($sp) +/* 05313C 7F01E60C 00808025 */ move $s0, $a0 +/* 053140 7F01E610 00A09025 */ move $s2, $a1 +/* 053144 7F01E614 00C0A025 */ move $s4, $a2 +/* 053148 7F01E618 00E0A825 */ move $s5, $a3 +/* 05314C 7F01E61C AFBF002C */ sw $ra, 0x2c($sp) +/* 053150 7F01E620 AFB30020 */ sw $s3, 0x20($sp) +/* 053154 7F01E624 04800045 */ bltz $a0, .L7F01E73C +/* 053158 7F01E628 AFB10018 */ sw $s1, 0x18($sp) +/* 05315C 7F01E62C 28810004 */ slti $at, $a0, 4 +/* 053160 7F01E630 50200043 */ beql $at, $zero, .L7F01E740 +/* 053164 7F01E634 8FBF002C */ lw $ra, 0x2c($sp) +/* 053168 7F01E638 04A00040 */ bltz $a1, .L7F01E73C +/* 05316C 7F01E63C 28A10014 */ slti $at, $a1, 0x14 +/* 053170 7F01E640 5020003F */ beql $at, $zero, .L7F01E740 +/* 053174 7F01E644 8FBF002C */ lw $ra, 0x2c($sp) +/* 053178 7F01E648 04C0003C */ bltz $a2, .L7F01E73C +/* 05317C 7F01E64C 28C10004 */ slti $at, $a2, 4 +/* 053180 7F01E650 1020003A */ beqz $at, .L7F01E73C +/* 053184 7F01E654 27B10038 */ addiu $s1, $sp, 0x38 +/* 053188 7F01E658 3C0E8003 */ lui $t6, %hi(D_8002C640+0x20) +/* 05318C 7F01E65C 25CEC660 */ addiu $t6, %lo(D_8002C640+0x20) # addiu $t6, $t6, -0x39a0 +/* 053190 7F01E660 25D80060 */ addiu $t8, $t6, 0x60 +/* 053194 7F01E664 0220C825 */ move $t9, $s1 +.L7F01E668: +/* 053198 7F01E668 8DC10000 */ lw $at, ($t6) +/* 05319C 7F01E66C 25CE000C */ addiu $t6, $t6, 0xc +/* 0531A0 7F01E670 2739000C */ addiu $t9, $t9, 0xc +/* 0531A4 7F01E674 AF21FFF4 */ sw $at, -0xc($t9) +/* 0531A8 7F01E678 8DC1FFF8 */ lw $at, -8($t6) +/* 0531AC 7F01E67C AF21FFF8 */ sw $at, -8($t9) +/* 0531B0 7F01E680 8DC1FFFC */ lw $at, -4($t6) +/* 0531B4 7F01E684 15D8FFF8 */ bne $t6, $t8, .L7F01E668 +/* 0531B8 7F01E688 AF21FFFC */ sw $at, -4($t9) +/* 0531BC 7F01E68C 0FC07771 */ jal get_save_folder_ptr +/* 0531C0 7F01E690 02002025 */ move $a0, $s0 +/* 0531C4 7F01E694 1040000F */ beqz $v0, .L7F01E6D4 +/* 0531C8 7F01E698 AFA20034 */ sw $v0, 0x34($sp) +/* 0531CC 7F01E69C 00405025 */ move $t2, $v0 +/* 0531D0 7F01E6A0 02205825 */ move $t3, $s1 +/* 0531D4 7F01E6A4 24490060 */ addiu $t1, $v0, 0x60 +.L7F01E6A8: +/* 0531D8 7F01E6A8 8D410000 */ lw $at, ($t2) +/* 0531DC 7F01E6AC 254A000C */ addiu $t2, $t2, 0xc +/* 0531E0 7F01E6B0 256B000C */ addiu $t3, $t3, 0xc +/* 0531E4 7F01E6B4 AD61FFF4 */ sw $at, -0xc($t3) +/* 0531E8 7F01E6B8 8D41FFF8 */ lw $at, -8($t2) +/* 0531EC 7F01E6BC AD61FFF8 */ sw $at, -8($t3) +/* 0531F0 7F01E6C0 8D41FFFC */ lw $at, -4($t2) +/* 0531F4 7F01E6C4 1549FFF8 */ bne $t2, $t1, .L7F01E6A8 +/* 0531F8 7F01E6C8 AD61FFFC */ sw $at, -4($t3) +/* 0531FC 7F01E6CC 10000004 */ b .L7F01E6E0 +/* 053200 7F01E6D0 00000000 */ nop +.L7F01E6D4: +/* 053204 7F01E6D4 02202025 */ move $a0, $s1 +/* 053208 7F01E6D8 0FC07636 */ jal set_eeprom_to_folder_num +/* 05320C 7F01E6DC 02002825 */ move $a1, $s0 +.L7F01E6E0: +/* 053210 7F01E6E0 06800013 */ bltz $s4, .L7F01E730 +/* 053214 7F01E6E4 02808025 */ move $s0, $s4 +/* 053218 7F01E6E8 3C1305F5 */ lui $s3, (0x05F5E0FF >> 16) # lui $s3, 0x5f5 +/* 05321C 7F01E6EC 3673E0FF */ ori $s3, (0x05F5E0FF & 0xFFFF) # ori $s3, $s3, 0xe0ff +.L7F01E6F0: +/* 053220 7F01E6F0 16140008 */ bne $s0, $s4, .L7F01E714 +/* 053224 7F01E6F4 02202025 */ move $a0, $s1 +/* 053228 7F01E6F8 02202025 */ move $a0, $s1 +/* 05322C 7F01E6FC 02402825 */ move $a1, $s2 +/* 053230 7F01E700 02003025 */ move $a2, $s0 +/* 053234 7F01E704 0FC0772C */ jal sub_GAME_7F01DCB0 +/* 053238 7F01E708 02A03825 */ move $a3, $s5 +/* 05323C 7F01E70C 10000006 */ b .L7F01E728 +/* 053240 7F01E710 2610FFFF */ addiu $s0, $s0, -1 +.L7F01E714: +/* 053244 7F01E714 02402825 */ move $a1, $s2 +/* 053248 7F01E718 02003025 */ move $a2, $s0 +/* 05324C 7F01E71C 0FC0772C */ jal sub_GAME_7F01DCB0 +/* 053250 7F01E720 02603825 */ move $a3, $s3 +/* 053254 7F01E724 2610FFFF */ addiu $s0, $s0, -1 +.L7F01E728: +/* 053258 7F01E728 0601FFF1 */ bgez $s0, .L7F01E6F0 +/* 05325C 7F01E72C 00000000 */ nop +.L7F01E730: +/* 053260 7F01E730 8FA40034 */ lw $a0, 0x34($sp) +/* 053264 7F01E734 0FC07941 */ jal sub_GAME_7F01E504 +/* 053268 7F01E738 02202825 */ move $a1, $s1 +.L7F01E73C: +/* 05326C 7F01E73C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F01E740: +/* 053270 7F01E740 8FB00014 */ lw $s0, 0x14($sp) +/* 053274 7F01E744 8FB10018 */ lw $s1, 0x18($sp) +/* 053278 7F01E748 8FB2001C */ lw $s2, 0x1c($sp) +/* 05327C 7F01E74C 8FB30020 */ lw $s3, 0x20($sp) +/* 053280 7F01E750 8FB40024 */ lw $s4, 0x24($sp) +/* 053284 7F01E754 8FB50028 */ lw $s5, 0x28($sp) +/* 053288 7F01E758 03E00008 */ jr $ra +/* 05328C 7F01E75C 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01E760(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01E760 +/* 053290 7F01E760 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 053294 7F01E764 AFBF0014 */ sw $ra, 0x14($sp) +/* 053298 7F01E768 0480003E */ bltz $a0, .L7F01E864 +/* 05329C 7F01E76C 00803825 */ move $a3, $a0 +/* 0532A0 7F01E770 28810004 */ slti $at, $a0, 4 +/* 0532A4 7F01E774 5020003C */ beql $at, $zero, .L7F01E868 +/* 0532A8 7F01E778 8FBF0014 */ lw $ra, 0x14($sp) +/* 0532AC 7F01E77C 04A00039 */ bltz $a1, .L7F01E864 +/* 0532B0 7F01E780 28A10014 */ slti $at, $a1, 0x14 +/* 0532B4 7F01E784 50200038 */ beql $at, $zero, .L7F01E868 +/* 0532B8 7F01E788 8FBF0014 */ lw $ra, 0x14($sp) +/* 0532BC 7F01E78C AFA50084 */ sw $a1, 0x84($sp) +/* 0532C0 7F01E790 0FC07771 */ jal get_save_folder_ptr +/* 0532C4 7F01E794 AFA70080 */ sw $a3, 0x80($sp) +/* 0532C8 7F01E798 8FA70080 */ lw $a3, 0x80($sp) +/* 0532CC 7F01E79C 10400009 */ beqz $v0, .L7F01E7C4 +/* 0532D0 7F01E7A0 00403025 */ move $a2, $v0 +/* 0532D4 7F01E7A4 00402025 */ move $a0, $v0 +/* 0532D8 7F01E7A8 8FA50084 */ lw $a1, 0x84($sp) +/* 0532DC 7F01E7AC AFA2007C */ sw $v0, 0x7c($sp) +/* 0532E0 7F01E7B0 0FC07748 */ jal check_if_cheat_unlocked +/* 0532E4 7F01E7B4 AFA70080 */ sw $a3, 0x80($sp) +/* 0532E8 7F01E7B8 8FA6007C */ lw $a2, 0x7c($sp) +/* 0532EC 7F01E7BC 14400029 */ bnez $v0, .L7F01E864 +/* 0532F0 7F01E7C0 8FA70080 */ lw $a3, 0x80($sp) +.L7F01E7C4: +/* 0532F4 7F01E7C4 3C0E8003 */ lui $t6, %hi(D_8002C6C0) +/* 0532F8 7F01E7C8 27A4001C */ addiu $a0, $sp, 0x1c +/* 0532FC 7F01E7CC 25CEC6C0 */ addiu $t6, %lo(D_8002C6C0) # addiu $t6, $t6, -0x3940 +/* 053300 7F01E7D0 25D80060 */ addiu $t8, $t6, 0x60 +/* 053304 7F01E7D4 0080C825 */ move $t9, $a0 +.L7F01E7D8: +/* 053308 7F01E7D8 8DC10000 */ lw $at, ($t6) +/* 05330C 7F01E7DC 25CE000C */ addiu $t6, $t6, 0xc +/* 053310 7F01E7E0 2739000C */ addiu $t9, $t9, 0xc +/* 053314 7F01E7E4 AF21FFF4 */ sw $at, -0xc($t9) +/* 053318 7F01E7E8 8DC1FFF8 */ lw $at, -8($t6) +/* 05331C 7F01E7EC AF21FFF8 */ sw $at, -8($t9) +/* 053320 7F01E7F0 8DC1FFFC */ lw $at, -4($t6) +/* 053324 7F01E7F4 15D8FFF8 */ bne $t6, $t8, .L7F01E7D8 +/* 053328 7F01E7F8 AF21FFFC */ sw $at, -4($t9) +/* 05332C 7F01E7FC 10C0000F */ beqz $a2, .L7F01E83C +/* 053330 7F01E800 00E02825 */ move $a1, $a3 +/* 053334 7F01E804 00C05025 */ move $t2, $a2 +/* 053338 7F01E808 00805825 */ move $t3, $a0 +/* 05333C 7F01E80C 24C90060 */ addiu $t1, $a2, 0x60 +.L7F01E810: +/* 053340 7F01E810 8D410000 */ lw $at, ($t2) +/* 053344 7F01E814 254A000C */ addiu $t2, $t2, 0xc +/* 053348 7F01E818 256B000C */ addiu $t3, $t3, 0xc +/* 05334C 7F01E81C AD61FFF4 */ sw $at, -0xc($t3) +/* 053350 7F01E820 8D41FFF8 */ lw $at, -8($t2) +/* 053354 7F01E824 AD61FFF8 */ sw $at, -8($t3) +/* 053358 7F01E828 8D41FFFC */ lw $at, -4($t2) +/* 05335C 7F01E82C 1549FFF8 */ bne $t2, $t1, .L7F01E810 +/* 053360 7F01E830 AD61FFFC */ sw $at, -4($t3) +/* 053364 7F01E834 10000006 */ b .L7F01E850 +/* 053368 7F01E838 8FA50084 */ lw $a1, 0x84($sp) +.L7F01E83C: +/* 05336C 7F01E83C 0FC07636 */ jal set_eeprom_to_folder_num +/* 053370 7F01E840 AFA6007C */ sw $a2, 0x7c($sp) +/* 053374 7F01E844 8FA6007C */ lw $a2, 0x7c($sp) +/* 053378 7F01E848 27A4001C */ addiu $a0, $sp, 0x1c +/* 05337C 7F01E84C 8FA50084 */ lw $a1, 0x84($sp) +.L7F01E850: +/* 053380 7F01E850 0FC0775D */ jal sub_GAME_7F01DD74 +/* 053384 7F01E854 AFA6007C */ sw $a2, 0x7c($sp) +/* 053388 7F01E858 8FA4007C */ lw $a0, 0x7c($sp) +/* 05338C 7F01E85C 0FC07941 */ jal sub_GAME_7F01E504 +/* 053390 7F01E860 27A5001C */ addiu $a1, $sp, 0x1c +.L7F01E864: +/* 053394 7F01E864 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01E868: +/* 053398 7F01E868 27BD0080 */ addiu $sp, $sp, 0x80 +/* 05339C 7F01E86C 03E00008 */ jr $ra +/* 0533A0 7F01E870 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_highest_stage_difficulty_completed_in_folder(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_highest_stage_difficulty_completed_in_folder +/* 0533A4 7F01E874 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0533A8 7F01E878 AFBF0024 */ sw $ra, 0x24($sp) +/* 0533AC 7F01E87C AFB20020 */ sw $s2, 0x20($sp) +/* 0533B0 7F01E880 AFB1001C */ sw $s1, 0x1c($sp) +/* 0533B4 7F01E884 AFB00018 */ sw $s0, 0x18($sp) +/* 0533B8 7F01E888 AFA5002C */ sw $a1, 0x2c($sp) +/* 0533BC 7F01E88C 0FC07771 */ jal get_save_folder_ptr +/* 0533C0 7F01E890 AFA60030 */ sw $a2, 0x30($sp) +/* 0533C4 7F01E894 10400014 */ beqz $v0, .L7F01E8E8 +/* 0533C8 7F01E898 00409025 */ move $s2, $v0 +/* 0533CC 7F01E89C 24110003 */ li $s1, 3 +/* 0533D0 7F01E8A0 24100013 */ li $s0, 19 +.L7F01E8A4: +/* 0533D4 7F01E8A4 02402025 */ move $a0, $s2 +.L7F01E8A8: +/* 0533D8 7F01E8A8 02002825 */ move $a1, $s0 +/* 0533DC 7F01E8AC 0FC07718 */ jal get_eeprom_stage_completed_for_difficulty +/* 0533E0 7F01E8B0 02203025 */ move $a2, $s1 +/* 0533E4 7F01E8B4 50400007 */ beql $v0, $zero, .L7F01E8D4 +/* 0533E8 7F01E8B8 2610FFFF */ addiu $s0, $s0, -1 +/* 0533EC 7F01E8BC 8FAE002C */ lw $t6, 0x2c($sp) +/* 0533F0 7F01E8C0 ADD00000 */ sw $s0, ($t6) +/* 0533F4 7F01E8C4 8FAF0030 */ lw $t7, 0x30($sp) +/* 0533F8 7F01E8C8 1000000C */ b .L7F01E8FC +/* 0533FC 7F01E8CC ADF10000 */ sw $s1, ($t7) +/* 053400 7F01E8D0 2610FFFF */ addiu $s0, $s0, -1 +.L7F01E8D4: +/* 053404 7F01E8D4 0603FFF4 */ bgezl $s0, .L7F01E8A8 +/* 053408 7F01E8D8 02402025 */ move $a0, $s2 +/* 05340C 7F01E8DC 2631FFFF */ addiu $s1, $s1, -1 +/* 053410 7F01E8E0 0623FFF0 */ bgezl $s1, .L7F01E8A4 +/* 053414 7F01E8E4 24100013 */ li $s0, 19 +.L7F01E8E8: +/* 053418 7F01E8E8 8FB8002C */ lw $t8, 0x2c($sp) +/* 05341C 7F01E8EC 2402FFFF */ li $v0, -1 +/* 053420 7F01E8F0 AF020000 */ sw $v0, ($t8) +/* 053424 7F01E8F4 8FB90030 */ lw $t9, 0x30($sp) +/* 053428 7F01E8F8 AF220000 */ sw $v0, ($t9) +.L7F01E8FC: +/* 05342C 7F01E8FC 8FBF0024 */ lw $ra, 0x24($sp) +/* 053430 7F01E900 8FB00018 */ lw $s0, 0x18($sp) +/* 053434 7F01E904 8FB1001C */ lw $s1, 0x1c($sp) +/* 053438 7F01E908 8FB20020 */ lw $s2, 0x20($sp) +/* 05343C 7F01E90C 03E00008 */ jr $ra +/* 053440 7F01E910 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void check_egypt_completed_in_folder(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_egypt_completed_in_folder +/* 053444 7F01E914 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 053448 7F01E918 AFBF0024 */ sw $ra, 0x24($sp) +/* 05344C 7F01E91C AFB2001C */ sw $s2, 0x1c($sp) +/* 053450 7F01E920 00809025 */ move $s2, $a0 +/* 053454 7F01E924 AFB30020 */ sw $s3, 0x20($sp) +/* 053458 7F01E928 AFB10018 */ sw $s1, 0x18($sp) +/* 05345C 7F01E92C 0FC07771 */ jal get_save_folder_ptr +/* 053460 7F01E930 AFB00014 */ sw $s0, 0x14($sp) +/* 053464 7F01E934 10400010 */ beqz $v0, .L7F01E978 +/* 053468 7F01E938 24110013 */ li $s1, 19 +/* 05346C 7F01E93C 24130004 */ li $s3, 4 +/* 053470 7F01E940 00008025 */ move $s0, $zero +.L7F01E944: +/* 053474 7F01E944 02402025 */ move $a0, $s2 +.L7F01E948: +/* 053478 7F01E948 02202825 */ move $a1, $s1 +/* 05347C 7F01E94C 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 053480 7F01E950 02003025 */ move $a2, $s0 +/* 053484 7F01E954 10400003 */ beqz $v0, .L7F01E964 +/* 053488 7F01E958 26100001 */ addiu $s0, $s0, 1 +/* 05348C 7F01E95C 10000007 */ b .L7F01E97C +/* 053490 7F01E960 02201025 */ move $v0, $s1 +.L7F01E964: +/* 053494 7F01E964 5613FFF8 */ bnel $s0, $s3, .L7F01E948 +/* 053498 7F01E968 02402025 */ move $a0, $s2 +/* 05349C 7F01E96C 2631FFFF */ addiu $s1, $s1, -1 +/* 0534A0 7F01E970 0623FFF4 */ bgezl $s1, .L7F01E944 +/* 0534A4 7F01E974 00008025 */ move $s0, $zero +.L7F01E978: +/* 0534A8 7F01E978 00001025 */ move $v0, $zero +.L7F01E97C: +/* 0534AC 7F01E97C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0534B0 7F01E980 8FB00014 */ lw $s0, 0x14($sp) +/* 0534B4 7F01E984 8FB10018 */ lw $s1, 0x18($sp) +/* 0534B8 7F01E988 8FB2001C */ lw $s2, 0x1c($sp) +/* 0534BC 7F01E98C 8FB30020 */ lw $s3, 0x20($sp) +/* 0534C0 7F01E990 03E00008 */ jr $ra +/* 0534C4 7F01E994 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +u32 check_egypt_completed_any_folder(void) { + u32 isfound; + int folder; + u32 isunlocked; + + isunlocked = 0; + folder = 0; + while (folder != 4) { + isfound = check_egypt_completed_in_folder(folder); + folder += 1; + if ((int)isunlocked < (int)isfound) { + isunlocked = isfound; + } + }; + return isunlocked; +} + + + + +#ifdef NONMATCHING +void check_cradle_completed_in_folder(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_cradle_completed_in_folder +/* 053524 7F01E9F4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 053528 7F01E9F8 AFBF0014 */ sw $ra, 0x14($sp) +/* 05352C 7F01E9FC AFA40018 */ sw $a0, 0x18($sp) +/* 053530 7F01EA00 24050011 */ li $a1, 17 +/* 053534 7F01EA04 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 053538 7F01EA08 00003025 */ move $a2, $zero +/* 05353C 7F01EA0C 384E0003 */ xori $t6, $v0, 3 +/* 053540 7F01EA10 2DC20001 */ sltiu $v0, $t6, 1 +/* 053544 7F01EA14 1440000D */ bnez $v0, .L7F01EA4C +/* 053548 7F01EA18 8FA40018 */ lw $a0, 0x18($sp) +/* 05354C 7F01EA1C 24050011 */ li $a1, 17 +/* 053550 7F01EA20 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 053554 7F01EA24 24060001 */ li $a2, 1 +/* 053558 7F01EA28 384F0003 */ xori $t7, $v0, 3 +/* 05355C 7F01EA2C 2DE20001 */ sltiu $v0, $t7, 1 +/* 053560 7F01EA30 14400006 */ bnez $v0, .L7F01EA4C +/* 053564 7F01EA34 8FA40018 */ lw $a0, 0x18($sp) +/* 053568 7F01EA38 24050011 */ li $a1, 17 +/* 05356C 7F01EA3C 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 053570 7F01EA40 24060002 */ li $a2, 2 +/* 053574 7F01EA44 38580003 */ xori $t8, $v0, 3 +/* 053578 7F01EA48 2F020001 */ sltiu $v0, $t8, 1 +.L7F01EA4C: +/* 05357C 7F01EA4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 053580 7F01EA50 27BD0018 */ addiu $sp, $sp, 0x18 +/* 053584 7F01EA54 03E00008 */ jr $ra +/* 053588 7F01EA58 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_aztec_completed_in_folder_secret_00(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_aztec_completed_in_folder_secret_00 +/* 05358C 7F01EA5C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 053590 7F01EA60 AFBF0014 */ sw $ra, 0x14($sp) +/* 053594 7F01EA64 AFA40018 */ sw $a0, 0x18($sp) +/* 053598 7F01EA68 24050012 */ li $a1, 18 +/* 05359C 7F01EA6C 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 0535A0 7F01EA70 24060001 */ li $a2, 1 +/* 0535A4 7F01EA74 384E0003 */ xori $t6, $v0, 3 +/* 0535A8 7F01EA78 2DC20001 */ sltiu $v0, $t6, 1 +/* 0535AC 7F01EA7C 14400006 */ bnez $v0, .L7F01EA98 +/* 0535B0 7F01EA80 8FA40018 */ lw $a0, 0x18($sp) +/* 0535B4 7F01EA84 24050012 */ li $a1, 18 +/* 0535B8 7F01EA88 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 0535BC 7F01EA8C 24060002 */ li $a2, 2 +/* 0535C0 7F01EA90 384F0003 */ xori $t7, $v0, 3 +/* 0535C4 7F01EA94 2DE20001 */ sltiu $v0, $t7, 1 +.L7F01EA98: +/* 0535C8 7F01EA98 8FBF0014 */ lw $ra, 0x14($sp) +/* 0535CC 7F01EA9C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0535D0 7F01EAA0 03E00008 */ jr $ra +/* 0535D4 7F01EAA4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void check_egypt_completed_in_folder_00(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_egypt_completed_in_folder_00 +/* 0535D8 7F01EAA8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0535DC 7F01EAAC AFBF0014 */ sw $ra, 0x14($sp) +/* 0535E0 7F01EAB0 24050013 */ li $a1, 19 +/* 0535E4 7F01EAB4 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 0535E8 7F01EAB8 24060002 */ li $a2, 2 +/* 0535EC 7F01EABC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0535F0 7F01EAC0 384E0003 */ xori $t6, $v0, 3 +/* 0535F4 7F01EAC4 2DC20001 */ sltiu $v0, $t6, 1 +/* 0535F8 7F01EAC8 03E00008 */ jr $ra +/* 0535FC 7F01EACC 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + +u32 check_cradle_completed_any_folder(void) { + u32 completed; + int folder; + + folder = 0; + while (folder != 4) { + completed = check_cradle_completed_in_folder(folder); + folder += 1; + if (completed != FALSE) { + return TRUE; + } + }; + return FALSE; +} + + +u32 check_aztec_completed_any_folder_secret_00(void) { + u32 completed; + int folder; + + folder = 0; + while (folder != 4) { + completed = check_aztec_completed_in_folder_secret_00(folder); + folder += 1; + if (completed != FALSE) { + return TRUE; + } + }; + return FALSE; +} + + +u32 check_egypt_completed_any_folder_00(void) { + u32 completed; + int folder; + + folder = 0; + while (folder != 4) { + completed = check_egypt_completed_in_folder_00(folder); + folder += 1; + if (completed != FALSE) { + return TRUE; + } + }; + return FALSE; +} + + +u8 removed_would_have_returned_bond_for_folder_num(u32 folder) +{ + #ifdef ALL_BONDS + //likely code based on behavior + if ((folder >= 0) && (folder < 4)) + { + return save_selected_bond[folder]; + } + #endif + + #ifndef ALL_BONDS + return 0; + #endif +} + + + +#ifdef NONMATCHING +void set_selected_bond_to_folder(u32 folder,u32 bond) { + if ((folder >= 0) && (folder < 4)) + { + save_selected_bond[folder] = 0; + } +} +#else +GLOBAL_ASM( +.text +glabel set_selected_bond_to_folder +/* 0536FC 7F01EBCC 04800007 */ bltz $a0, .L7F01EBEC +/* 053700 7F01EBD0 AFA50004 */ sw $a1, 4($sp) +/* 053704 7F01EBD4 28810004 */ slti $at, $a0, 4 +/* 053708 7F01EBD8 10200004 */ beqz $at, .L7F01EBEC +/* 05370C 7F01EBDC 00047080 */ sll $t6, $a0, 2 +/* 053710 7F01EBE0 3C018003 */ lui $at, %hi(save_selected_bond) +/* 053714 7F01EBE4 002E0821 */ addu $at, $at, $t6 +/* 053718 7F01EBE8 AC20C510 */ sw $zero, %lo(save_selected_bond)($at) +.L7F01EBEC: +/* 05371C 7F01EBEC 03E00008 */ jr $ra +/* 053720 7F01EBF0 00000000 */ nop +) +#endif + + + +void sub_GAME_7F01EBF4(u32 unused) { + return; +} + +void sub_GAME_7F01EBFC(u32 unused) { + return; +} + + + + +#ifdef NONMATCHING +void delete_eeprom_folder(void) { + +} +#else +GLOBAL_ASM( +.text +glabel delete_eeprom_folder +/* 053734 7F01EC04 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 053738 7F01EC08 AFB00014 */ sw $s0, 0x14($sp) +/* 05373C 7F01EC0C 00808025 */ move $s0, $a0 +/* 053740 7F01EC10 AFBF001C */ sw $ra, 0x1c($sp) +/* 053744 7F01EC14 04800039 */ bltz $a0, .L7F01ECFC +/* 053748 7F01EC18 AFB10018 */ sw $s1, 0x18($sp) +/* 05374C 7F01EC1C 28810004 */ slti $at, $a0, 4 +/* 053750 7F01EC20 50200037 */ beql $at, $zero, .L7F01ED00 +/* 053754 7F01EC24 8FBF001C */ lw $ra, 0x1c($sp) +/* 053758 7F01EC28 0FC07771 */ jal get_save_folder_ptr +/* 05375C 7F01EC2C 00000000 */ nop +/* 053760 7F01EC30 10400032 */ beqz $v0, .L7F01ECFC +/* 053764 7F01EC34 00408825 */ move $s1, $v0 +/* 053768 7F01EC38 02002025 */ move $a0, $s0 +/* 05376C 7F01EC3C 27A50088 */ addiu $a1, $sp, 0x88 +/* 053770 7F01EC40 0FC07A1D */ jal get_highest_stage_difficulty_completed_in_folder +/* 053774 7F01EC44 27A60084 */ addiu $a2, $sp, 0x84 +/* 053778 7F01EC48 8FAE0088 */ lw $t6, 0x88($sp) +/* 05377C 7F01EC4C 8FAF0084 */ lw $t7, 0x84($sp) +/* 053780 7F01EC50 05C2002B */ bltzl $t6, .L7F01ED00 +/* 053784 7F01EC54 8FBF001C */ lw $ra, 0x1c($sp) +/* 053788 7F01EC58 05E00028 */ bltz $t7, .L7F01ECFC +/* 05378C 7F01EC5C 27A20024 */ addiu $v0, $sp, 0x24 +/* 053790 7F01EC60 3C188003 */ lui $t8, %hi(D_8002C720) +/* 053794 7F01EC64 2718C720 */ addiu $t8, %lo(D_8002C720) # addiu $t8, $t8, -0x38e0 +/* 053798 7F01EC68 27080060 */ addiu $t0, $t8, 0x60 +/* 05379C 7F01EC6C 00404825 */ move $t1, $v0 +.L7F01EC70: +/* 0537A0 7F01EC70 8F010000 */ lw $at, ($t8) +/* 0537A4 7F01EC74 2718000C */ addiu $t8, $t8, 0xc +/* 0537A8 7F01EC78 2529000C */ addiu $t1, $t1, 0xc +/* 0537AC 7F01EC7C AD21FFF4 */ sw $at, -0xc($t1) +/* 0537B0 7F01EC80 8F01FFF8 */ lw $at, -8($t8) +/* 0537B4 7F01EC84 AD21FFF8 */ sw $at, -8($t1) +/* 0537B8 7F01EC88 8F01FFFC */ lw $at, -4($t8) +/* 0537BC 7F01EC8C 1708FFF8 */ bne $t8, $t0, .L7F01EC70 +/* 0537C0 7F01EC90 AD21FFFC */ sw $at, -4($t1) +/* 0537C4 7F01EC94 00406025 */ move $t4, $v0 +/* 0537C8 7F01EC98 02206825 */ move $t5, $s1 +/* 0537CC 7F01EC9C 244B0060 */ addiu $t3, $v0, 0x60 +.L7F01ECA0: +/* 0537D0 7F01ECA0 8D810000 */ lw $at, ($t4) +/* 0537D4 7F01ECA4 258C000C */ addiu $t4, $t4, 0xc +/* 0537D8 7F01ECA8 25AD000C */ addiu $t5, $t5, 0xc +/* 0537DC 7F01ECAC ADA1FFF4 */ sw $at, -0xc($t5) +/* 0537E0 7F01ECB0 8D81FFF8 */ lw $at, -8($t4) +/* 0537E4 7F01ECB4 ADA1FFF8 */ sw $at, -8($t5) +/* 0537E8 7F01ECB8 8D81FFFC */ lw $at, -4($t4) +/* 0537EC 7F01ECBC 158BFFF8 */ bne $t4, $t3, .L7F01ECA0 +/* 0537F0 7F01ECC0 ADA1FFFC */ sw $at, -4($t5) +/* 0537F4 7F01ECC4 02202025 */ move $a0, $s1 +/* 0537F8 7F01ECC8 0FC07636 */ jal set_eeprom_to_folder_num +/* 0537FC 7F01ECCC 02002825 */ move $a1, $s0 +/* 053800 7F01ECD0 02202025 */ move $a0, $s1 +/* 053804 7F01ECD4 0FC07659 */ jal toggle_eeprom_flag_set_0x80 +/* 053808 7F01ECD8 00002825 */ move $a1, $zero +/* 05380C 7F01ECDC 02202025 */ move $a0, $s1 +/* 053810 7F01ECE0 0FC0764D */ jal set_selected_bond +/* 053814 7F01ECE4 02002825 */ move $a1, $s0 +/* 053818 7F01ECE8 02002025 */ move $a0, $s0 +/* 05381C 7F01ECEC 0FC07AF3 */ jal set_selected_bond_to_folder +/* 053820 7F01ECF0 02002825 */ move $a1, $s0 +/* 053824 7F01ECF4 0FC075E8 */ jal sub_GAME_7F01D7A0 +/* 053828 7F01ECF8 02202025 */ move $a0, $s1 +.L7F01ECFC: +/* 05382C 7F01ECFC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F01ED00: +/* 053830 7F01ED00 8FB00014 */ lw $s0, 0x14($sp) +/* 053834 7F01ED04 8FB10018 */ lw $s1, 0x18($sp) +/* 053838 7F01ED08 03E00008 */ jr $ra +/* 05383C 7F01ED0C 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01ED10(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01ED10 +/* 053840 7F01ED10 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 053844 7F01ED14 AFBF002C */ sw $ra, 0x2c($sp) +/* 053848 7F01ED18 AFB50028 */ sw $s5, 0x28($sp) +/* 05384C 7F01ED1C AFB40024 */ sw $s4, 0x24($sp) +/* 053850 7F01ED20 AFB30020 */ sw $s3, 0x20($sp) +/* 053854 7F01ED24 AFB2001C */ sw $s2, 0x1c($sp) +/* 053858 7F01ED28 AFB10018 */ sw $s1, 0x18($sp) +/* 05385C 7F01ED2C 0FC07771 */ jal get_save_folder_ptr +/* 053860 7F01ED30 AFB00014 */ sw $s0, 0x14($sp) +/* 053864 7F01ED34 3C1105F5 */ lui $s1, (0x05F5E0FF >> 16) # lui $s1, 0x5f5 +/* 053868 7F01ED38 0040A025 */ move $s4, $v0 +/* 05386C 7F01ED3C 3631E0FF */ ori $s1, (0x05F5E0FF & 0xFFFF) # ori $s1, $s1, 0xe0ff +/* 053870 7F01ED40 00009825 */ move $s3, $zero +/* 053874 7F01ED44 24150014 */ li $s5, 20 +/* 053878 7F01ED48 24120003 */ li $s2, 3 +/* 05387C 7F01ED4C 00008025 */ move $s0, $zero +.L7F01ED50: +/* 053880 7F01ED50 02802025 */ move $a0, $s4 +.L7F01ED54: +/* 053884 7F01ED54 02602825 */ move $a1, $s3 +/* 053888 7F01ED58 02003025 */ move $a2, $s0 +/* 05388C 7F01ED5C 0FC0772C */ jal sub_GAME_7F01DCB0 +/* 053890 7F01ED60 02203825 */ move $a3, $s1 +/* 053894 7F01ED64 26100001 */ addiu $s0, $s0, 1 +/* 053898 7F01ED68 5612FFFA */ bnel $s0, $s2, .L7F01ED54 +/* 05389C 7F01ED6C 02802025 */ move $a0, $s4 +/* 0538A0 7F01ED70 26730001 */ addiu $s3, $s3, 1 +/* 0538A4 7F01ED74 5675FFF6 */ bnel $s3, $s5, .L7F01ED50 +/* 0538A8 7F01ED78 00008025 */ move $s0, $zero +/* 0538AC 7F01ED7C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0538B0 7F01ED80 8FB00014 */ lw $s0, 0x14($sp) +/* 0538B4 7F01ED84 8FB10018 */ lw $s1, 0x18($sp) +/* 0538B8 7F01ED88 8FB2001C */ lw $s2, 0x1c($sp) +/* 0538BC 7F01ED8C 8FB30020 */ lw $s3, 0x20($sp) +/* 0538C0 7F01ED90 8FB40024 */ lw $s4, 0x24($sp) +/* 0538C4 7F01ED94 8FB50028 */ lw $s5, 0x28($sp) +/* 0538C8 7F01ED98 03E00008 */ jr $ra +/* 0538CC 7F01ED9C 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01EDA0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01EDA0 +/* 0538D0 7F01EDA0 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 0538D4 7F01EDA4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0538D8 7F01EDA8 AFB30020 */ sw $s3, 0x20($sp) +/* 0538DC 7F01EDAC AFB2001C */ sw $s2, 0x1c($sp) +/* 0538E0 7F01EDB0 AFB10018 */ sw $s1, 0x18($sp) +/* 0538E4 7F01EDB4 0480004F */ bltz $a0, .L7F01EEF4 +/* 0538E8 7F01EDB8 AFB00014 */ sw $s0, 0x14($sp) +/* 0538EC 7F01EDBC 28810004 */ slti $at, $a0, 4 +/* 0538F0 7F01EDC0 5020004D */ beql $at, $zero, .L7F01EEF8 +/* 0538F4 7F01EDC4 8FBF0024 */ lw $ra, 0x24($sp) +/* 0538F8 7F01EDC8 0FC07771 */ jal get_save_folder_ptr +/* 0538FC 7F01EDCC AFA400A0 */ sw $a0, 0xa0($sp) +/* 053900 7F01EDD0 10400048 */ beqz $v0, .L7F01EEF4 +/* 053904 7F01EDD4 AFA2009C */ sw $v0, 0x9c($sp) +/* 053908 7F01EDD8 27B20098 */ addiu $s2, $sp, 0x98 +/* 05390C 7F01EDDC 27B30094 */ addiu $s3, $sp, 0x94 +/* 053910 7F01EDE0 02603025 */ move $a2, $s3 +/* 053914 7F01EDE4 02402825 */ move $a1, $s2 +/* 053918 7F01EDE8 0FC07A1D */ jal get_highest_stage_difficulty_completed_in_folder +/* 05391C 7F01EDEC 8FA400A0 */ lw $a0, 0xa0($sp) +/* 053920 7F01EDF0 8FAE0098 */ lw $t6, 0x98($sp) +/* 053924 7F01EDF4 8FAF0094 */ lw $t7, 0x94($sp) +/* 053928 7F01EDF8 05C2003F */ bltzl $t6, .L7F01EEF8 +/* 05392C 7F01EDFC 8FBF0024 */ lw $ra, 0x24($sp) +/* 053930 7F01EE00 05E0003C */ bltz $t7, .L7F01EEF4 +/* 053934 7F01EE04 00008025 */ move $s0, $zero +/* 053938 7F01EE08 24110004 */ li $s1, 4 +.L7F01EE0C: +/* 05393C 7F01EE0C 0FC07771 */ jal get_save_folder_ptr +/* 053940 7F01EE10 02002025 */ move $a0, $s0 +/* 053944 7F01EE14 1040000D */ beqz $v0, .L7F01EE4C +/* 053948 7F01EE18 02002025 */ move $a0, $s0 +/* 05394C 7F01EE1C 02402825 */ move $a1, $s2 +/* 053950 7F01EE20 0FC07A1D */ jal get_highest_stage_difficulty_completed_in_folder +/* 053954 7F01EE24 02603025 */ move $a2, $s3 +/* 053958 7F01EE28 8FB80098 */ lw $t8, 0x98($sp) +/* 05395C 7F01EE2C 8FB90094 */ lw $t9, 0x94($sp) +/* 053960 7F01EE30 07030004 */ bgezl $t8, .L7F01EE44 +/* 053964 7F01EE34 26100001 */ addiu $s0, $s0, 1 +/* 053968 7F01EE38 07220005 */ bltzl $t9, .L7F01EE50 +/* 05396C 7F01EE3C 2A010004 */ slti $at, $s0, 4 +/* 053970 7F01EE40 26100001 */ addiu $s0, $s0, 1 +.L7F01EE44: +/* 053974 7F01EE44 1611FFF1 */ bne $s0, $s1, .L7F01EE0C +/* 053978 7F01EE48 00000000 */ nop +.L7F01EE4C: +/* 05397C 7F01EE4C 2A010004 */ slti $at, $s0, 4 +.L7F01EE50: +/* 053980 7F01EE50 10200028 */ beqz $at, .L7F01EEF4 +/* 053984 7F01EE54 27B10030 */ addiu $s1, $sp, 0x30 +/* 053988 7F01EE58 3C088003 */ lui $t0, %hi(D_8002C780) +/* 05398C 7F01EE5C 2508C780 */ addiu $t0, %lo(D_8002C780) # addiu $t0, $t0, -0x3880 +/* 053990 7F01EE60 250A0060 */ addiu $t2, $t0, 0x60 +/* 053994 7F01EE64 02205825 */ move $t3, $s1 +.L7F01EE68: +/* 053998 7F01EE68 8D010000 */ lw $at, ($t0) +/* 05399C 7F01EE6C 2508000C */ addiu $t0, $t0, 0xc +/* 0539A0 7F01EE70 256B000C */ addiu $t3, $t3, 0xc +/* 0539A4 7F01EE74 AD61FFF4 */ sw $at, -0xc($t3) +/* 0539A8 7F01EE78 8D01FFF8 */ lw $at, -8($t0) +/* 0539AC 7F01EE7C AD61FFF8 */ sw $at, -8($t3) +/* 0539B0 7F01EE80 8D01FFFC */ lw $at, -4($t0) +/* 0539B4 7F01EE84 150AFFF8 */ bne $t0, $t2, .L7F01EE68 +/* 0539B8 7F01EE88 AD61FFFC */ sw $at, -4($t3) +/* 0539BC 7F01EE8C 0FC07771 */ jal get_save_folder_ptr +/* 0539C0 7F01EE90 02002025 */ move $a0, $s0 +/* 0539C4 7F01EE94 8FAC009C */ lw $t4, 0x9c($sp) +/* 0539C8 7F01EE98 00409025 */ move $s2, $v0 +/* 0539CC 7F01EE9C 02207825 */ move $t7, $s1 +/* 0539D0 7F01EEA0 258E0060 */ addiu $t6, $t4, 0x60 +.L7F01EEA4: +/* 0539D4 7F01EEA4 8D810000 */ lw $at, ($t4) +/* 0539D8 7F01EEA8 258C000C */ addiu $t4, $t4, 0xc +/* 0539DC 7F01EEAC 25EF000C */ addiu $t7, $t7, 0xc +/* 0539E0 7F01EEB0 ADE1FFF4 */ sw $at, -0xc($t7) +/* 0539E4 7F01EEB4 8D81FFF8 */ lw $at, -8($t4) +/* 0539E8 7F01EEB8 ADE1FFF8 */ sw $at, -8($t7) +/* 0539EC 7F01EEBC 8D81FFFC */ lw $at, -4($t4) +/* 0539F0 7F01EEC0 158EFFF8 */ bne $t4, $t6, .L7F01EEA4 +/* 0539F4 7F01EEC4 ADE1FFFC */ sw $at, -4($t7) +/* 0539F8 7F01EEC8 02202025 */ move $a0, $s1 +/* 0539FC 7F01EECC 0FC07636 */ jal set_eeprom_to_folder_num +/* 053A00 7F01EED0 02002825 */ move $a1, $s0 +/* 053A04 7F01EED4 0FC07AF0 */ jal removed_would_have_returned_bond_for_folder_num +/* 053A08 7F01EED8 8FA400A0 */ lw $a0, 0xa0($sp) +/* 053A0C 7F01EEDC 02002025 */ move $a0, $s0 +/* 053A10 7F01EEE0 0FC07AF3 */ jal set_selected_bond_to_folder +/* 053A14 7F01EEE4 00402825 */ move $a1, $v0 +/* 053A18 7F01EEE8 02402025 */ move $a0, $s2 +/* 053A1C 7F01EEEC 0FC07941 */ jal sub_GAME_7F01E504 +/* 053A20 7F01EEF0 02202825 */ move $a1, $s1 +.L7F01EEF4: +/* 053A24 7F01EEF4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F01EEF8: +/* 053A28 7F01EEF8 8FB00014 */ lw $s0, 0x14($sp) +/* 053A2C 7F01EEFC 8FB10018 */ lw $s1, 0x18($sp) +/* 053A30 7F01EF00 8FB2001C */ lw $s2, 0x1c($sp) +/* 053A34 7F01EF04 8FB30020 */ lw $s3, 0x20($sp) +/* 053A38 7F01EF08 03E00008 */ jr $ra +/* 053A3C 7F01EF0C 27BD00A0 */ addiu $sp, $sp, 0xa0 +) +#endif + + + +#ifdef NONMATCHING +void update_eeprom_to_current_solo_watch_settings(void) { + +} +#else +GLOBAL_ASM( +.text +glabel update_eeprom_to_current_solo_watch_settings +/* 053A40 7F01EF10 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 053A44 7F01EF14 AFBF001C */ sw $ra, 0x1c($sp) +/* 053A48 7F01EF18 AFB00018 */ sw $s0, 0x18($sp) +/* 053A4C 7F01EF1C AFA40020 */ sw $a0, 0x20($sp) +/* 053A50 7F01EF20 0FC2A4D6 */ jal sub_GAME_7F0A9358 +/* 053A54 7F01EF24 00008025 */ move $s0, $zero +/* 053A58 7F01EF28 8FAF0020 */ lw $t7, 0x20($sp) +/* 053A5C 7F01EF2C 000271C3 */ sra $t6, $v0, 7 +/* 053A60 7F01EF30 0FC2A460 */ jal call_sfx_c_700091C8 +/* 053A64 7F01EF34 A1EE000A */ sb $t6, 0xa($t7) +/* 053A68 7F01EF38 8FB90020 */ lw $t9, 0x20($sp) +/* 053A6C 7F01EF3C 0002C1C3 */ sra $t8, $v0, 7 +/* 053A70 7F01EF40 0FC2938E */ jal get_cur_player_look_vertical_inverted +/* 053A74 7F01EF44 A338000B */ sb $t8, 0xb($t9) +/* 053A78 7F01EF48 10400002 */ beqz $v0, .L7F01EF54 +/* 053A7C 7F01EF4C 00000000 */ nop +/* 053A80 7F01EF50 24100001 */ li $s0, 1 +.L7F01EF54: +/* 053A84 7F01EF54 0FC29394 */ jal cur_player_get_autoaim +/* 053A88 7F01EF58 00000000 */ nop +/* 053A8C 7F01EF5C 10400002 */ beqz $v0, .L7F01EF68 +/* 053A90 7F01EF60 36080002 */ ori $t0, $s0, 2 +/* 053A94 7F01EF64 3110FFFF */ andi $s0, $t0, 0xffff +.L7F01EF68: +/* 053A98 7F01EF68 0FC293A0 */ jal cur_player_get_aim_control +/* 053A9C 7F01EF6C 00000000 */ nop +/* 053AA0 7F01EF70 10400002 */ beqz $v0, .L7F01EF7C +/* 053AA4 7F01EF74 360A0004 */ ori $t2, $s0, 4 +/* 053AA8 7F01EF78 3150FFFF */ andi $s0, $t2, 0xffff +.L7F01EF7C: +/* 053AAC 7F01EF7C 0FC293A6 */ jal cur_player_get_sight_onscreen_control +/* 053AB0 7F01EF80 00000000 */ nop +/* 053AB4 7F01EF84 10400002 */ beqz $v0, .L7F01EF90 +/* 053AB8 7F01EF88 360C0008 */ ori $t4, $s0, 8 +/* 053ABC 7F01EF8C 3190FFFF */ andi $s0, $t4, 0xffff +.L7F01EF90: +/* 053AC0 7F01EF90 0FC2939A */ jal cur_player_get_lookahead +/* 053AC4 7F01EF94 00000000 */ nop +/* 053AC8 7F01EF98 10400002 */ beqz $v0, .L7F01EFA4 +/* 053ACC 7F01EF9C 360E0010 */ ori $t6, $s0, 0x10 +/* 053AD0 7F01EFA0 31D0FFFF */ andi $s0, $t6, 0xffff +.L7F01EFA4: +/* 053AD4 7F01EFA4 0FC293AC */ jal cur_player_get_ammo_onscreen_setting +/* 053AD8 7F01EFA8 00000000 */ nop +/* 053ADC 7F01EFAC 10400002 */ beqz $v0, .L7F01EFB8 +/* 053AE0 7F01EFB0 36180020 */ ori $t8, $s0, 0x20 +/* 053AE4 7F01EFB4 3310FFFF */ andi $s0, $t8, 0xffff +.L7F01EFB8: +/* 053AE8 7F01EFB8 0FC293B2 */ jal cur_player_get_screen_setting +/* 053AEC 7F01EFBC 00000000 */ nop +/* 053AF0 7F01EFC0 24010001 */ li $at, 1 +/* 053AF4 7F01EFC4 14410003 */ bne $v0, $at, .L7F01EFD4 +/* 053AF8 7F01EFC8 36080040 */ ori $t0, $s0, 0x40 +/* 053AFC 7F01EFCC 10000007 */ b .L7F01EFEC +/* 053B00 7F01EFD0 3110FFFF */ andi $s0, $t0, 0xffff +.L7F01EFD4: +/* 053B04 7F01EFD4 0FC293B2 */ jal cur_player_get_screen_setting +/* 053B08 7F01EFD8 00000000 */ nop +/* 053B0C 7F01EFDC 24010002 */ li $at, 2 +/* 053B10 7F01EFE0 14410002 */ bne $v0, $at, .L7F01EFEC +/* 053B14 7F01EFE4 360A0800 */ ori $t2, $s0, 0x800 +/* 053B18 7F01EFE8 3150FFFF */ andi $s0, $t2, 0xffff +.L7F01EFEC: +/* 053B1C 7F01EFEC 0FC293B8 */ jal get_screen_ratio +/* 053B20 7F01EFF0 00000000 */ nop +/* 053B24 7F01EFF4 10400002 */ beqz $v0, .L7F01F000 +/* 053B28 7F01EFF8 360C0080 */ ori $t4, $s0, 0x80 +/* 053B2C 7F01EFFC 3190FFFF */ andi $s0, $t4, 0xffff +.L7F01F000: +/* 053B30 7F01F000 0FC29370 */ jal cur_player_get_control_type +/* 053B34 7F01F004 00000000 */ nop +/* 053B38 7F01F008 8FA80020 */ lw $t0, 0x20($sp) +/* 053B3C 7F01F00C 00027A00 */ sll $t7, $v0, 8 +/* 053B40 7F01F010 31F80700 */ andi $t8, $t7, 0x700 +/* 053B44 7F01F014 0218C825 */ or $t9, $s0, $t8 +/* 053B48 7F01F018 A519000C */ sh $t9, 0xc($t0) +/* 053B4C 7F01F01C 8FBF001C */ lw $ra, 0x1c($sp) +/* 053B50 7F01F020 8FB00018 */ lw $s0, 0x18($sp) +/* 053B54 7F01F024 27BD0020 */ addiu $sp, $sp, 0x20 +/* 053B58 7F01F028 03E00008 */ jr $ra +/* 053B5C 7F01F02C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void get_screen_ratio_settings_for_mpgame_from_folder(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_screen_ratio_settings_for_mpgame_from_folder +/* 053B60 7F01F030 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 053B64 7F01F034 AFBF001C */ sw $ra, 0x1c($sp) +/* 053B68 7F01F038 0FC07771 */ jal get_save_folder_ptr +/* 053B6C 7F01F03C AFB00018 */ sw $s0, 0x18($sp) +/* 053B70 7F01F040 1040004B */ beqz $v0, .L7F01F170 +/* 053B74 7F01F044 00401825 */ move $v1, $v0 +/* 053B78 7F01F048 9042000A */ lbu $v0, 0xa($v0) +/* 053B7C 7F01F04C AFA30024 */ sw $v1, 0x24($sp) +/* 053B80 7F01F050 000271C0 */ sll $t6, $v0, 7 +/* 053B84 7F01F054 00027843 */ sra $t7, $v0, 1 +/* 053B88 7F01F058 01CF2025 */ or $a0, $t6, $t7 +/* 053B8C 7F01F05C 3098FFFF */ andi $t8, $a0, 0xffff +/* 053B90 7F01F060 0FC2A4D9 */ jal sub_GAME_7F0A9364 +/* 053B94 7F01F064 03002025 */ move $a0, $t8 +/* 053B98 7F01F068 8FB00024 */ lw $s0, 0x24($sp) +/* 053B9C 7F01F06C 9202000B */ lbu $v0, 0xb($s0) +/* 053BA0 7F01F070 0002C9C0 */ sll $t9, $v0, 7 +/* 053BA4 7F01F074 00024043 */ sra $t0, $v0, 1 +/* 053BA8 7F01F078 03282025 */ or $a0, $t9, $t0 +/* 053BAC 7F01F07C 3089FFFF */ andi $t1, $a0, 0xffff +/* 053BB0 7F01F080 0FC2A468 */ jal sub_GAME_7F0A91A0 +/* 053BB4 7F01F084 01202025 */ move $a0, $t1 +/* 053BB8 7F01F088 960A000C */ lhu $t2, 0xc($s0) +/* 053BBC 7F01F08C 0FC26919 */ jal get_num_players +/* 053BC0 7F01F090 A7AA0020 */ sh $t2, 0x20($sp) +/* 053BC4 7F01F094 24010001 */ li $at, 1 +/* 053BC8 7F01F098 14410007 */ bne $v0, $at, .L7F01F0B8 +/* 053BCC 7F01F09C 97B00020 */ lhu $s0, 0x20($sp) +/* 053BD0 7F01F0A0 32040700 */ andi $a0, $s0, 0x700 +/* 053BD4 7F01F0A4 00045A03 */ sra $t3, $a0, 8 +/* 053BD8 7F01F0A8 0FC29374 */ jal cur_player_set_control_type +/* 053BDC 7F01F0AC 3164FFFF */ andi $a0, $t3, 0xffff +/* 053BE0 7F01F0B0 10000005 */ b .L7F01F0C8 +/* 053BE4 7F01F0B4 32040001 */ andi $a0, $s0, 1 +.L7F01F0B8: +/* 053BE8 7F01F0B8 0FC29374 */ jal cur_player_set_control_type +/* 053BEC 7F01F0BC 00002025 */ move $a0, $zero +/* 053BF0 7F01F0C0 97B00020 */ lhu $s0, 0x20($sp) +/* 053BF4 7F01F0C4 32040001 */ andi $a0, $s0, 1 +.L7F01F0C8: +/* 053BF8 7F01F0C8 0004682B */ sltu $t5, $zero, $a0 +/* 053BFC 7F01F0CC 0FC29391 */ jal set_cur_player_look_vertical_inverted +/* 053C00 7F01F0D0 01A02025 */ move $a0, $t5 +/* 053C04 7F01F0D4 32040002 */ andi $a0, $s0, 2 +/* 053C08 7F01F0D8 0004702B */ sltu $t6, $zero, $a0 +/* 053C0C 7F01F0DC 0FC29397 */ jal cur_player_set_autoaim +/* 053C10 7F01F0E0 01C02025 */ move $a0, $t6 +/* 053C14 7F01F0E4 32040004 */ andi $a0, $s0, 4 +/* 053C18 7F01F0E8 0004782B */ sltu $t7, $zero, $a0 +/* 053C1C 7F01F0EC 0FC293A3 */ jal cur_player_set_aim_control +/* 053C20 7F01F0F0 01E02025 */ move $a0, $t7 +/* 053C24 7F01F0F4 32040008 */ andi $a0, $s0, 8 +/* 053C28 7F01F0F8 0004C02B */ sltu $t8, $zero, $a0 +/* 053C2C 7F01F0FC 0FC293A9 */ jal cur_player_set_sight_onscreen_control +/* 053C30 7F01F100 03002025 */ move $a0, $t8 +/* 053C34 7F01F104 32040010 */ andi $a0, $s0, 0x10 +/* 053C38 7F01F108 0004C82B */ sltu $t9, $zero, $a0 +/* 053C3C 7F01F10C 0FC2939D */ jal cur_player_set_lookahead +/* 053C40 7F01F110 03202025 */ move $a0, $t9 +/* 053C44 7F01F114 32040020 */ andi $a0, $s0, 0x20 +/* 053C48 7F01F118 0004402B */ sltu $t0, $zero, $a0 +/* 053C4C 7F01F11C 0FC293AF */ jal cur_player_set_ammo_onscreen_setting +/* 053C50 7F01F120 01002025 */ move $a0, $t0 +/* 053C54 7F01F124 32090800 */ andi $t1, $s0, 0x800 +/* 053C58 7F01F128 11200005 */ beqz $t1, .L7F01F140 +/* 053C5C 7F01F12C 320A0040 */ andi $t2, $s0, 0x40 +/* 053C60 7F01F130 0FC293B5 */ jal cur_player_set_screen_setting +/* 053C64 7F01F134 24040002 */ li $a0, 2 +/* 053C68 7F01F138 1000000A */ b .L7F01F164 +/* 053C6C 7F01F13C 32040080 */ andi $a0, $s0, 0x80 +.L7F01F140: +/* 053C70 7F01F140 11400005 */ beqz $t2, .L7F01F158 +/* 053C74 7F01F144 00000000 */ nop +/* 053C78 7F01F148 0FC293B5 */ jal cur_player_set_screen_setting +/* 053C7C 7F01F14C 24040001 */ li $a0, 1 +/* 053C80 7F01F150 10000004 */ b .L7F01F164 +/* 053C84 7F01F154 32040080 */ andi $a0, $s0, 0x80 +.L7F01F158: +/* 053C88 7F01F158 0FC293B5 */ jal cur_player_set_screen_setting +/* 053C8C 7F01F15C 00002025 */ move $a0, $zero +/* 053C90 7F01F160 32040080 */ andi $a0, $s0, 0x80 +.L7F01F164: +/* 053C94 7F01F164 0004582B */ sltu $t3, $zero, $a0 +/* 053C98 7F01F168 0FC293BB */ jal set_screen_ratio +/* 053C9C 7F01F16C 01602025 */ move $a0, $t3 +.L7F01F170: +/* 053CA0 7F01F170 8FBF001C */ lw $ra, 0x1c($sp) +/* 053CA4 7F01F174 8FB00018 */ lw $s0, 0x18($sp) +/* 053CA8 7F01F178 27BD0028 */ addiu $sp, $sp, 0x28 +/* 053CAC 7F01F17C 03E00008 */ jr $ra +/* 053CB0 7F01F180 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void delete_update_eeprom_file(void) { + +} +#else +GLOBAL_ASM( +.text +glabel delete_update_eeprom_file +/* 053CB4 7F01F184 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 053CB8 7F01F188 AFBF0014 */ sw $ra, 0x14($sp) +/* 053CBC 7F01F18C 0480003F */ bltz $a0, .L7F01F28C +/* 053CC0 7F01F190 00802825 */ move $a1, $a0 +/* 053CC4 7F01F194 28810004 */ slti $at, $a0, 4 +/* 053CC8 7F01F198 5020003D */ beql $at, $zero, .L7F01F290 +/* 053CCC 7F01F19C 8FBF0014 */ lw $ra, 0x14($sp) +/* 053CD0 7F01F1A0 0FC07771 */ jal get_save_folder_ptr +/* 053CD4 7F01F1A4 AFA500E0 */ sw $a1, 0xe0($sp) +/* 053CD8 7F01F1A8 3C0E8003 */ lui $t6, %hi(D_8002C7E0) +/* 053CDC 7F01F1AC 27A6007C */ addiu $a2, $sp, 0x7c +/* 053CE0 7F01F1B0 25CEC7E0 */ addiu $t6, %lo(D_8002C7E0) # addiu $t6, $t6, -0x3820 +/* 053CE4 7F01F1B4 8FA500E0 */ lw $a1, 0xe0($sp) +/* 053CE8 7F01F1B8 AFA200DC */ sw $v0, 0xdc($sp) +/* 053CEC 7F01F1BC 25D90060 */ addiu $t9, $t6, 0x60 +/* 053CF0 7F01F1C0 00C04025 */ move $t0, $a2 +.L7F01F1C4: +/* 053CF4 7F01F1C4 8DC10000 */ lw $at, ($t6) +/* 053CF8 7F01F1C8 25CE000C */ addiu $t6, $t6, 0xc +/* 053CFC 7F01F1CC 2508000C */ addiu $t0, $t0, 0xc +/* 053D00 7F01F1D0 AD01FFF4 */ sw $at, -0xc($t0) +/* 053D04 7F01F1D4 8DC1FFF8 */ lw $at, -8($t6) +/* 053D08 7F01F1D8 AD01FFF8 */ sw $at, -8($t0) +/* 053D0C 7F01F1DC 8DC1FFFC */ lw $at, -4($t6) +/* 053D10 7F01F1E0 15D9FFF8 */ bne $t6, $t9, .L7F01F1C4 +/* 053D14 7F01F1E4 AD01FFFC */ sw $at, -4($t0) +/* 053D18 7F01F1E8 1040000E */ beqz $v0, .L7F01F224 +/* 053D1C 7F01F1EC 00405825 */ move $t3, $v0 +/* 053D20 7F01F1F0 00C06025 */ move $t4, $a2 +/* 053D24 7F01F1F4 244A0060 */ addiu $t2, $v0, 0x60 +.L7F01F1F8: +/* 053D28 7F01F1F8 8D610000 */ lw $at, ($t3) +/* 053D2C 7F01F1FC 256B000C */ addiu $t3, $t3, 0xc +/* 053D30 7F01F200 258C000C */ addiu $t4, $t4, 0xc +/* 053D34 7F01F204 AD81FFF4 */ sw $at, -0xc($t4) +/* 053D38 7F01F208 8D61FFF8 */ lw $at, -8($t3) +/* 053D3C 7F01F20C AD81FFF8 */ sw $at, -8($t4) +/* 053D40 7F01F210 8D61FFFC */ lw $at, -4($t3) +/* 053D44 7F01F214 156AFFF8 */ bne $t3, $t2, .L7F01F1F8 +/* 053D48 7F01F218 AD81FFFC */ sw $at, -4($t4) +/* 053D4C 7F01F21C 10000005 */ b .L7F01F234 +/* 053D50 7F01F220 27A4001C */ addiu $a0, $sp, 0x1c +.L7F01F224: +/* 053D54 7F01F224 0FC07636 */ jal set_eeprom_to_folder_num +/* 053D58 7F01F228 00C02025 */ move $a0, $a2 +/* 053D5C 7F01F22C 27A6007C */ addiu $a2, $sp, 0x7c +/* 053D60 7F01F230 27A4001C */ addiu $a0, $sp, 0x1c +.L7F01F234: +/* 053D64 7F01F234 0080C825 */ move $t9, $a0 +/* 053D68 7F01F238 00C07825 */ move $t7, $a2 +/* 053D6C 7F01F23C 24D80060 */ addiu $t8, $a2, 0x60 +.L7F01F240: +/* 053D70 7F01F240 8DE10000 */ lw $at, ($t7) +/* 053D74 7F01F244 25EF000C */ addiu $t7, $t7, 0xc +/* 053D78 7F01F248 2739000C */ addiu $t9, $t9, 0xc +/* 053D7C 7F01F24C AF21FFF4 */ sw $at, -0xc($t9) +/* 053D80 7F01F250 8DE1FFF8 */ lw $at, -8($t7) +/* 053D84 7F01F254 AF21FFF8 */ sw $at, -8($t9) +/* 053D88 7F01F258 8DE1FFFC */ lw $at, -4($t7) +/* 053D8C 7F01F25C 15F8FFF8 */ bne $t7, $t8, .L7F01F240 +/* 053D90 7F01F260 AF21FFFC */ sw $at, -4($t9) +/* 053D94 7F01F264 0FC07BC4 */ jal update_eeprom_to_current_solo_watch_settings +/* 053D98 7F01F268 00000000 */ nop +/* 053D9C 7F01F26C 27A4001C */ addiu $a0, $sp, 0x1c +/* 053DA0 7F01F270 27A5007C */ addiu $a1, $sp, 0x7c +/* 053DA4 7F01F274 0C005B5C */ jal _bcmp +/* 053DA8 7F01F278 24060060 */ li $a2, 96 +/* 053DAC 7F01F27C 10400003 */ beqz $v0, .L7F01F28C +/* 053DB0 7F01F280 8FA400DC */ lw $a0, 0xdc($sp) +/* 053DB4 7F01F284 0FC07941 */ jal sub_GAME_7F01E504 +/* 053DB8 7F01F288 27A5001C */ addiu $a1, $sp, 0x1c +.L7F01F28C: +/* 053DBC 7F01F28C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01F290: +/* 053DC0 7F01F290 27BD00E0 */ addiu $sp, $sp, 0xe0 +/* 053DC4 7F01F294 03E00008 */ jr $ra +/* 053DC8 7F01F298 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void copy_eeprom_to_stack_set_folder_num(void) { + +} +#else +GLOBAL_ASM( +.text +glabel copy_eeprom_to_stack_set_folder_num +/* 053DCC 7F01F29C 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 053DD0 7F01F2A0 AFB00014 */ sw $s0, 0x14($sp) +/* 053DD4 7F01F2A4 00808025 */ move $s0, $a0 +/* 053DD8 7F01F2A8 AFBF001C */ sw $ra, 0x1c($sp) +/* 053DDC 7F01F2AC 04800034 */ bltz $a0, .L7F01F380 +/* 053DE0 7F01F2B0 AFB10018 */ sw $s1, 0x18($sp) +/* 053DE4 7F01F2B4 28810004 */ slti $at, $a0, 4 +/* 053DE8 7F01F2B8 50200032 */ beql $at, $zero, .L7F01F384 +/* 053DEC 7F01F2BC 8FBF001C */ lw $ra, 0x1c($sp) +/* 053DF0 7F01F2C0 0FC07771 */ jal get_save_folder_ptr +/* 053DF4 7F01F2C4 00000000 */ nop +/* 053DF8 7F01F2C8 3C0E8003 */ lui $t6, %hi(D_8002C840) +/* 053DFC 7F01F2CC 27B10024 */ addiu $s1, $sp, 0x24 +/* 053E00 7F01F2D0 25CEC840 */ addiu $t6, %lo(D_8002C840) # addiu $t6, $t6, -0x37c0 +/* 053E04 7F01F2D4 AFA20084 */ sw $v0, 0x84($sp) +/* 053E08 7F01F2D8 25D90060 */ addiu $t9, $t6, 0x60 +/* 053E0C 7F01F2DC 02204025 */ move $t0, $s1 +.L7F01F2E0: +/* 053E10 7F01F2E0 8DC10000 */ lw $at, ($t6) +/* 053E14 7F01F2E4 25CE000C */ addiu $t6, $t6, 0xc +/* 053E18 7F01F2E8 2508000C */ addiu $t0, $t0, 0xc +/* 053E1C 7F01F2EC AD01FFF4 */ sw $at, -0xc($t0) +/* 053E20 7F01F2F0 8DC1FFF8 */ lw $at, -8($t6) +/* 053E24 7F01F2F4 AD01FFF8 */ sw $at, -8($t0) +/* 053E28 7F01F2F8 8DC1FFFC */ lw $at, -4($t6) +/* 053E2C 7F01F2FC 15D9FFF8 */ bne $t6, $t9, .L7F01F2E0 +/* 053E30 7F01F300 AD01FFFC */ sw $at, -4($t0) +/* 053E34 7F01F304 1040000F */ beqz $v0, .L7F01F344 +/* 053E38 7F01F308 02202025 */ move $a0, $s1 +/* 053E3C 7F01F30C 00405825 */ move $t3, $v0 +/* 053E40 7F01F310 02206025 */ move $t4, $s1 +/* 053E44 7F01F314 244A0060 */ addiu $t2, $v0, 0x60 +.L7F01F318: +/* 053E48 7F01F318 8D610000 */ lw $at, ($t3) +/* 053E4C 7F01F31C 256B000C */ addiu $t3, $t3, 0xc +/* 053E50 7F01F320 258C000C */ addiu $t4, $t4, 0xc +/* 053E54 7F01F324 AD81FFF4 */ sw $at, -0xc($t4) +/* 053E58 7F01F328 8D61FFF8 */ lw $at, -8($t3) +/* 053E5C 7F01F32C AD81FFF8 */ sw $at, -8($t4) +/* 053E60 7F01F330 8D61FFFC */ lw $at, -4($t3) +/* 053E64 7F01F334 156AFFF8 */ bne $t3, $t2, .L7F01F318 +/* 053E68 7F01F338 AD81FFFC */ sw $at, -4($t4) +/* 053E6C 7F01F33C 10000003 */ b .L7F01F34C +/* 053E70 7F01F340 00000000 */ nop +.L7F01F344: +/* 053E74 7F01F344 0FC07636 */ jal set_eeprom_to_folder_num +/* 053E78 7F01F348 02002825 */ move $a1, $s0 +.L7F01F34C: +/* 053E7C 7F01F34C 0FC07649 */ jal get_selected_bond +/* 053E80 7F01F350 02202025 */ move $a0, $s1 +/* 053E84 7F01F354 00106880 */ sll $t5, $s0, 2 +/* 053E88 7F01F358 3C058003 */ lui $a1, %hi(save_selected_bond) +/* 053E8C 7F01F35C 00AD2821 */ addu $a1, $a1, $t5 +/* 053E90 7F01F360 8CA5C510 */ lw $a1, %lo(save_selected_bond)($a1) +/* 053E94 7F01F364 50450007 */ beql $v0, $a1, .L7F01F384 +/* 053E98 7F01F368 8FBF001C */ lw $ra, 0x1c($sp) +/* 053E9C 7F01F36C 0FC0764D */ jal set_selected_bond +/* 053EA0 7F01F370 02202025 */ move $a0, $s1 +/* 053EA4 7F01F374 8FA40084 */ lw $a0, 0x84($sp) +/* 053EA8 7F01F378 0FC07941 */ jal sub_GAME_7F01E504 +/* 053EAC 7F01F37C 02202825 */ move $a1, $s1 +.L7F01F380: +/* 053EB0 7F01F380 8FBF001C */ lw $ra, 0x1c($sp) +.L7F01F384: +/* 053EB4 7F01F384 8FB00014 */ lw $s0, 0x14($sp) +/* 053EB8 7F01F388 8FB10018 */ lw $s1, 0x18($sp) +/* 053EBC 7F01F38C 03E00008 */ jr $ra +/* 053EC0 7F01F390 27BD0088 */ addiu $sp, $sp, 0x88 +) +#endif + + + +#ifdef NONMATCHING +void copy_eeprom_from_to(void) { + +} +#else +GLOBAL_ASM( +.text +glabel copy_eeprom_from_to +/* 053EC4 7F01F394 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 053EC8 7F01F398 AFBF0014 */ sw $ra, 0x14($sp) +/* 053ECC 7F01F39C 0FC07771 */ jal get_save_folder_ptr +/* 053ED0 7F01F3A0 AFA50084 */ sw $a1, 0x84($sp) +/* 053ED4 7F01F3A4 1040000F */ beqz $v0, .L7F01F3E4 +/* 053ED8 7F01F3A8 8FA30084 */ lw $v1, 0x84($sp) +/* 053EDC 7F01F3AC 0040C025 */ move $t8, $v0 +/* 053EE0 7F01F3B0 0060C825 */ move $t9, $v1 +/* 053EE4 7F01F3B4 244F0060 */ addiu $t7, $v0, 0x60 +.L7F01F3B8: +/* 053EE8 7F01F3B8 8F010000 */ lw $at, ($t8) +/* 053EEC 7F01F3BC 2718000C */ addiu $t8, $t8, 0xc +/* 053EF0 7F01F3C0 2739000C */ addiu $t9, $t9, 0xc +/* 053EF4 7F01F3C4 AF21FFF4 */ sw $at, -0xc($t9) +/* 053EF8 7F01F3C8 8F01FFF8 */ lw $at, -8($t8) +/* 053EFC 7F01F3CC AF21FFF8 */ sw $at, -8($t9) +/* 053F00 7F01F3D0 8F01FFFC */ lw $at, -4($t8) +/* 053F04 7F01F3D4 170FFFF8 */ bne $t8, $t7, .L7F01F3B8 +/* 053F08 7F01F3D8 AF21FFFC */ sw $at, -4($t9) +/* 053F0C 7F01F3DC 1000001C */ b .L7F01F450 +/* 053F10 7F01F3E0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01F3E4: +/* 053F14 7F01F3E4 3C088003 */ lui $t0, %hi(blank_eeprom) +/* 053F18 7F01F3E8 27A2001C */ addiu $v0, $sp, 0x1c +/* 053F1C 7F01F3EC 2508C8A0 */ addiu $t0, %lo(blank_eeprom) # addiu $t0, $t0, -0x3760 +/* 053F20 7F01F3F0 250A0060 */ addiu $t2, $t0, 0x60 +/* 053F24 7F01F3F4 00405825 */ move $t3, $v0 +.L7F01F3F8: +/* 053F28 7F01F3F8 8D010000 */ lw $at, ($t0) +/* 053F2C 7F01F3FC 2508000C */ addiu $t0, $t0, 0xc +/* 053F30 7F01F400 256B000C */ addiu $t3, $t3, 0xc +/* 053F34 7F01F404 AD61FFF4 */ sw $at, -0xc($t3) +/* 053F38 7F01F408 8D01FFF8 */ lw $at, -8($t0) +/* 053F3C 7F01F40C AD61FFF8 */ sw $at, -8($t3) +/* 053F40 7F01F410 8D01FFFC */ lw $at, -4($t0) +/* 053F44 7F01F414 150AFFF8 */ bne $t0, $t2, .L7F01F3F8 +/* 053F48 7F01F418 AD61FFFC */ sw $at, -4($t3) +/* 053F4C 7F01F41C 00407025 */ move $t6, $v0 +/* 053F50 7F01F420 00607825 */ move $t7, $v1 +/* 053F54 7F01F424 244D0060 */ addiu $t5, $v0, 0x60 +.L7F01F428: +/* 053F58 7F01F428 8DC10000 */ lw $at, ($t6) +/* 053F5C 7F01F42C 25CE000C */ addiu $t6, $t6, 0xc +/* 053F60 7F01F430 25EF000C */ addiu $t7, $t7, 0xc +/* 053F64 7F01F434 ADE1FFF4 */ sw $at, -0xc($t7) +/* 053F68 7F01F438 8DC1FFF8 */ lw $at, -8($t6) +/* 053F6C 7F01F43C ADE1FFF8 */ sw $at, -8($t7) +/* 053F70 7F01F440 8DC1FFFC */ lw $at, -4($t6) +/* 053F74 7F01F444 15CDFFF8 */ bne $t6, $t5, .L7F01F428 +/* 053F78 7F01F448 ADE1FFFC */ sw $at, -4($t7) +/* 053F7C 7F01F44C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01F450: +/* 053F80 7F01F450 27BD0080 */ addiu $sp, $sp, 0x80 +/* 053F84 7F01F454 03E00008 */ jr $ra +/* 053F88 7F01F458 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void copy_eepromfile_a0_from_a1_to_buffer(void) { + +} +#else +GLOBAL_ASM( +.text +glabel copy_eepromfile_a0_from_a1_to_buffer +/* 053F8C 7F01F45C 24010064 */ li $at, 100 +/* 053F90 7F01F460 1481000D */ bne $a0, $at, .L7F01F498 +/* 053F94 7F01F464 3C0E8007 */ lui $t6, %hi(save6) +/* 053F98 7F01F468 25CE9B00 */ addiu $t6, %lo(save6) # addiu $t6, $t6, -0x6500 +/* 053F9C 7F01F46C 00A0C825 */ move $t9, $a1 +/* 053FA0 7F01F470 24B80060 */ addiu $t8, $a1, 0x60 +.L7F01F474: +/* 053FA4 7F01F474 8F210000 */ lw $at, ($t9) +/* 053FA8 7F01F478 2739000C */ addiu $t9, $t9, 0xc +/* 053FAC 7F01F47C 25CE000C */ addiu $t6, $t6, 0xc +/* 053FB0 7F01F480 ADC1FFF4 */ sw $at, -0xc($t6) +/* 053FB4 7F01F484 8F21FFF8 */ lw $at, -8($t9) +/* 053FB8 7F01F488 ADC1FFF8 */ sw $at, -8($t6) +/* 053FBC 7F01F48C 8F21FFFC */ lw $at, -4($t9) +/* 053FC0 7F01F490 1738FFF8 */ bne $t9, $t8, .L7F01F474 +/* 053FC4 7F01F494 ADC1FFFC */ sw $at, -4($t6) +.L7F01F498: +/* 053FC8 7F01F498 03E00008 */ jr $ra +/* 053FCC 7F01F49C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING + +BOOL is007ModeUnlockedinFolder(u32 foldernum) + +{ + save_file *folder; + BOOL BVar1; + BOOL found; + int stagenum; + + folder = getEEPROMforFoldernum(foldernum); + if (folder == NULL) { + BVar1 = FALSE; + } + else { + stagenum = SP_STAGE_DAM; + if ((folder->bitflags & 1) == 0) { + do { + found = doesSaveHaveStageCompletedOnDifficulty(folder,stagenum,DIFFICULTY_00); + if (found == FALSE) break; + stagenum += SP_STAGE_FACILITY; + } while (stagenum != 0x14); + if (stagenum == SP_STAGE_MAX) { + BVar1 = TRUE; + } + else { + BVar1 = FALSE; + } + } + else { + BVar1 = TRUE; + } + } + return BVar1; +} +#else +GLOBAL_ASM( +.text +glabel check_for_007_mode_unlocked +/* 053FD0 7F01F4A0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 053FD4 7F01F4A4 AFBF0024 */ sw $ra, 0x24($sp) +/* 053FD8 7F01F4A8 AFB20020 */ sw $s2, 0x20($sp) +/* 053FDC 7F01F4AC AFB1001C */ sw $s1, 0x1c($sp) +/* 053FE0 7F01F4B0 0FC07771 */ jal get_save_folder_ptr +/* 053FE4 7F01F4B4 AFB00018 */ sw $s0, 0x18($sp) +/* 053FE8 7F01F4B8 10400016 */ beqz $v0, .L7F01F514 +/* 053FEC 7F01F4BC 00408825 */ move $s1, $v0 +/* 053FF0 7F01F4C0 904E0009 */ lbu $t6, 9($v0) +/* 053FF4 7F01F4C4 00008025 */ move $s0, $zero +/* 053FF8 7F01F4C8 24120014 */ li $s2, 20 +/* 053FFC 7F01F4CC 31CF0001 */ andi $t7, $t6, 1 +/* 054000 7F01F4D0 11E00003 */ beqz $t7, .L7F01F4E0 +/* 054004 7F01F4D4 00000000 */ nop +/* 054008 7F01F4D8 1000000F */ b .L7F01F518 +/* 05400C 7F01F4DC 24020001 */ li $v0, 1 +.L7F01F4E0: +/* 054010 7F01F4E0 02202025 */ move $a0, $s1 +.L7F01F4E4: +/* 054014 7F01F4E4 02002825 */ move $a1, $s0 +/* 054018 7F01F4E8 0FC07718 */ jal get_eeprom_stage_completed_for_difficulty +/* 05401C 7F01F4EC 24060002 */ li $a2, 2 +/* 054020 7F01F4F0 10400004 */ beqz $v0, .L7F01F504 +/* 054024 7F01F4F4 00000000 */ nop +/* 054028 7F01F4F8 26100001 */ addiu $s0, $s0, 1 +/* 05402C 7F01F4FC 5612FFF9 */ bnel $s0, $s2, .L7F01F4E4 +/* 054030 7F01F500 02202025 */ move $a0, $s1 +.L7F01F504: +/* 054034 7F01F504 56120004 */ bnel $s0, $s2, .L7F01F518 +/* 054038 7F01F508 00001025 */ move $v0, $zero +/* 05403C 7F01F50C 10000002 */ b .L7F01F518 +/* 054040 7F01F510 24020001 */ li $v0, 1 +.L7F01F514: +/* 054044 7F01F514 00001025 */ move $v0, $zero +.L7F01F518: +/* 054048 7F01F518 8FBF0024 */ lw $ra, 0x24($sp) +/* 05404C 7F01F51C 8FB00018 */ lw $s0, 0x18($sp) +/* 054050 7F01F520 8FB1001C */ lw $s1, 0x1c($sp) +/* 054054 7F01F524 8FB20020 */ lw $s2, 0x20($sp) +/* 054058 7F01F528 03E00008 */ jr $ra +/* 05405C 7F01F52C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + diff --git a/src/game/gamefile2.h b/src/game/gamefile2.h new file mode 100644 index 0000000..4e02382 --- /dev/null +++ b/src/game/gamefile2.h @@ -0,0 +1,7 @@ +#ifndef _GAMEFILE2_H_ +#define _GAMEFILE2_H_ +#include "ultra64.h" + +u8 removed_would_have_returned_bond_for_folder_num(u32 folder); + +#endif diff --git a/src/game/image.c b/src/game/image.c new file mode 100644 index 0000000..3ae9cc3 --- /dev/null +++ b/src/game/image.c @@ -0,0 +1,9557 @@ +#include "ultra64.h" +#include "game/image.h" +#include "assets/images/image_externs.h" + +// bss +//8008C720 +s32 ptr_texture_alloc_start; +//8008C724 +s32 ptr_texture_alloc_end; +//8008C728 +s32 ptr_next_available_space; +//8008C72C +s32 ptr_last_entry_facemapping; +//8008C730 +s32 word_CODE_bss_8008C730[0x258]; +//8008D090 +s32 dword_CODE_bss_8008D090; +//8008D094 +s32 dword_CODE_bss_8008D094; + + +// data +//D:80049170 +u32 bytes = 0x6DDD0; +//D:80049174 +u32 D_80049174 = 0; + +//D:80049178 #1 #bytes in pixel data for image +s32 pixelbytecounts[] = +{ + 4, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1 +}; +//D:800491AC #2 1=alphagrab. Grabs 1 bit of alpha data for each pixel +s32 pixelalphas[] = +{ + 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 +}; +//D:800491E0 #3 #bits in 'samples', *2 -1=bitmask +s32 pixelsamplebits[] = +{ + 0x100, 0x20, 0x100, 0x20, 0x100, 0x10, 8, 0x100, 0x10, 0x100, 0x10, 0x100, 0x10 +}; +//D:80049214 #4 bitcount for pixel data +s32 pixelbitcount[] = +{ + 0x20, 0x10, 0x18, 0xF, 0x10, 8, 4, 8, 4, 0x10, 0x10, 0x10, 0x10, +}; +//D:80049248 #5 N64 image types (0=color, 1=YUV, 2=indexed, 3=IA, 4=I) +s32 n64imagetypes[] = +{ + 0, 0, 0, 0, 3, 3, 3, 4, 4, 2, 2, 2, 2 +}; +//D:8004927C #6 N64 pixel sizes (0=4bit, 1=8bit, 2=16bit, 3=32bit) +s32 n64pixelsizes[] = +{ + 3, 2, 3, 2, 2, 1, 0, 1, 0, 1, 0, 1, 0 +}; +//D:800492B0 #7 imageflip values for indexed types +s32 imgflipvalues[] = +{ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x8000, 0x8000, 0xC000, 0xC000 +}; +//D:800492e4 +s32 D_800492E4[] = +{ + 0, 0, 0, 0, 0, 0, 0 +}; + +//D:80049300 +//need way to calculate size at compile time from external data +struct image_entry image_entries[] = { + { 0, 0, _image1_size, 0, 0, 0, 0}, + { 0, 0, _image2_size, 0, 0, 0, 0}, + { 0, 0, _image3_size, 0, 0, 0, 0}, + { 0, 0, _image4_size, 0, 0, 0, 0}, + { 0, 0, _image5_size, 0, 0, 0, 0}, + { 0, 0, _image6_size, 0, 0, 0, 0}, + { 0, 0, _image7_size, 0, 0, 0, 0}, + { 0, 0, _image8_size, 0, 0, 0, 0}, + { 0, 0, _image9_size, 0, 0, 0, 0}, + {0x11, 0, _image10_size, 0, 0, 0, 0}, + {0x11, 0, _image11_size, 0, 0, 0, 0}, + { 0, 0, _image12_size, 0, 0, 0, 0}, + { 0, 0, _image13_size, 0, 0, 0, 0}, + { 0, 0, _image14_size, 0, 0, 0, 0}, + { 0, 0, _image15_size, 0, 0, 0, 0}, + { 0, 0, _image16_size, 0, 0, 0, 0}, + { 0, 0, _image17_size, 0, 0, 0, 0}, + { 0, 0, _image18_size, 0, 0, 0, 0}, + { 0, 0, _image19_size, 0, 0, 0, 0}, + { 0, 0, _image20_size, 0, 0, 0, 0}, + {0x77, 0, _image21_size, 0, 0, 0, 0}, + { 0, 0, _image22_size, 0x38, 0xD2, 0, 0}, + {0x77, 0, _image23_size, 0x38, 0xD2, 0, 0}, + { 0, 0, _image24_size, 0, 0, 0, 0}, + { 0, 0, _image25_size, 0, 0, 0, 0}, + { 0, 0, _image26_size, 0, 0, 0, 0}, + { 0, 0, _image27_size, 0, 0, 0, 0}, + { 0, 0, _image28_size, 0, 0, 0, 0}, + { 0, 0, _image29_size, 0, 0, 0, 0}, + {0xAA, 0, _image30_size, 0, 0, 0, 0}, + {0xAA, 0, _image31_size, 0, 0, 0, 0}, + {0xAA, 0, _image32_size, 0, 0, 0, 0}, + {0xAA, 0, _image33_size, 0, 0, 0, 0}, + {0x22, 0, _image34_size, 0, 0, 0, 0}, + {0x22, 0, _image35_size, 0, 0, 0, 0}, + {0x22, 0, _image36_size, 0, 0, 0, 0}, + {0x22, 0, _image37_size, 0, 0, 0, 0}, + { 0, 0, _image38_size, 0, 0, 0, 0}, + { 0, 0, _image39_size, 0, 0, 0, 0}, + { 0, 0, _image40_size, 0, 0, 0, 0}, + { 0, 0, _image41_size, 0, 0, 0, 0}, + { 0, 0, _image42_size, 0, 0, 0, 0}, + { 0, 0, _image43_size, 0, 0, 0, 0}, + {0xAA, 0, _image44_size, 0, 0, 0, 0}, + { 0, 0, _image45_size, 0, 0, 0, 0}, + {0xAA, 0, _image46_size, 0, 0, 0, 0}, + { 0, 0, _image47_size, 0, 0, 0, 0}, + { 0, 0, _image48_size, 0, 0, 0, 0}, + { 0, 0, _image49_size, 0, 0, 0, 0}, + { 0, 0, _image50_size, 0, 0, 0, 0}, + {0x33, 0, _image51_size, 0, 0, 0, 0}, + { 0, 0, _image52_size, 0, 0, 0, 0}, + { 0, 0, _image53_size, 0, 0, 0, 0}, + { 0, 0, _image54_size, 0, 0, 0, 0}, + { 0, 0, _image55_size, 0, 0, 0, 0}, + { 0, 0, _image56_size, 0, 0, 0, 0}, + { 0, 0, _image57_size, 0, 0, 0, 0}, + { 0, 0, _image58_size, 0, 0, 0, 0}, + { 0, 0, _image59_size, 0, 0, 0, 0}, + { 0, 0, _image60_size, 0, 0, 0, 0}, + { 0, 0, _image61_size, 0, 0, 0, 0}, + { 0, 0, _image62_size, 0, 0, 0, 0}, + { 0, 0, _image63_size, 0, 0, 0, 0}, + { 0, 0, _image64_size, 0, 0, 0, 0}, + { 0, 0, _image65_size, 0, 0, 0, 0}, + { 0, 0, _image66_size, 0, 0, 0, 0}, + { 0, 0, _image67_size, 0, 0, 0, 0}, + { 0, 0, _image68_size, 0, 0, 0, 0}, + { 0, 0, _image69_size, 0, 0, 0, 0}, + { 0, 0, _image70_size, 0, 0, 0, 0}, + { 0, 0, _image71_size, 0, 0, 0, 0}, + { 0, 0, _image72_size, 0, 0, 0, 0}, + { 0, 0, _image73_size, 0, 0, 0, 0}, + { 0, 0, _image74_size, 0, 0, 0, 0}, + { 0, 0, _image75_size, 0, 0, 0, 0}, + {0xAA, 0, _image76_size, 0, 0, 0, 0}, + {0xAA, 0, _image77_size, 0, 0, 0, 0}, + {0xAA, 0, _image78_size, 0, 0, 0, 0}, + {0x22, 0, _image79_size, 0, 0, 0, 0}, + {0x22, 0, _image80_size, 0, 0, 0, 0}, + {0x33, 0, _image81_size, 0, 0, 0, 0}, + {0x33, 0, _image82_size, 0, 0, 0, 0}, + {0x33, 0, _image83_size, 0, 0, 0, 0}, + {0x33, 0, _image84_size, 0, 0, 0, 0}, + {0x33, 0, _image85_size, 0, 0, 0, 0}, + { 0, 0, _image86_size, 0, 0, 0, 0}, + { 0, 0, _image87_size, 0, 0, 0, 0}, + { 0, 0, _image88_size, 0, 0, 0, 0}, + {0x11, 0, _image89_size, 0, 0, 0, 0}, + {0x11, 0, _image90_size, 0, 0, 0, 0}, + {0x11, 0, _image91_size, 0, 0, 0, 0}, + {0x11, 0, _image92_size, 0, 0, 0, 0}, + {0x11, 0, _image93_size, 0, 0, 0, 0}, + {0x11, 0, _image94_size, 0, 0, 0, 0}, + {0x11, 0, _image95_size, 0, 0, 0, 0}, + {0x11, 0, _image96_size, 0, 0, 0, 0}, + {0x11, 0, _image97_size, 0, 0, 0, 0}, + {0x11, 0, _image98_size, 0, 0, 0, 0}, + {0x11, 0, _image99_size, 0, 0, 0, 0}, + {0x11, 0, _image100_size, 0, 0, 0, 0}, + {0x11, 0, _image101_size, 0, 0, 0, 0}, + {0x11, 0, _image102_size, 0, 0, 0, 0}, + {0x11, 0, _image103_size, 0, 0, 0, 0}, + {0x11, 0, _image104_size, 0, 0, 0, 0}, + {0x11, 0, _image105_size, 0, 0, 0, 0}, + {0x11, 0, _image106_size, 0, 0, 0, 0}, + {0x11, 0, _image107_size, 0, 0, 0, 0}, + {0x11, 0, _image108_size, 0, 0, 0, 0}, + {0x11, 0, _image109_size, 0, 0, 0, 0}, + {0x11, 0, _image110_size, 0, 0, 0, 0}, + {0x11, 0, _image111_size, 0, 0, 0, 0}, + {0x11, 0, _image112_size, 0, 0, 0, 0}, + {0x11, 0, _image113_size, 0, 0, 0, 0}, + {0x11, 0, _image114_size, 0, 0, 0, 0}, + {0x11, 0, _image115_size, 0, 0, 0, 0}, + {0x11, 0, _image116_size, 0, 0, 0, 0}, + {0x11, 0, _image117_size, 0, 0, 0, 0}, + {0x11, 0, _image118_size, 0, 0, 0, 0}, + {0x11, 0, _image119_size, 0, 0, 0, 0}, + {0x11, 0, _image120_size, 0, 0, 0, 0}, + {0x11, 0, _image121_size, 0, 0, 0, 0}, + {0x11, 0, _image122_size, 0, 0, 0, 0}, + {0x11, 0, _image123_size, 0, 0, 0, 0}, + {0x11, 0, _image124_size, 0, 0, 0, 0}, + {0x11, 0, _image125_size, 0, 0, 0, 0}, + {0x11, 0, _image126_size, 0, 0, 0, 0}, + {0x11, 0, _image127_size, 0, 0, 0, 0}, + {0x11, 0, _image128_size, 0, 0, 0, 0}, + {0x11, 0, _image129_size, 0, 0, 0, 0}, + {0x11, 0, _image130_size, 0, 0, 0, 0}, + {0x11, 0, _image131_size, 0, 0, 0, 0}, + {0x11, 0, _image132_size, 0, 0, 0, 0}, + {0x11, 0, _image133_size, 0, 0, 0, 0}, + {0x11, 0, _image134_size, 0, 0, 0, 0}, + {0x11, 0, _image135_size, 0, 0, 0, 0}, + {0x11, 0, _image136_size, 0, 0, 0, 0}, + {0x11, 0, _image137_size, 0, 0, 0, 0}, + {0x11, 0, _image138_size, 0, 0, 0, 0}, + {0x11, 0, _image139_size, 0, 0, 0, 0}, + {0x11, 0, _image140_size, 0, 0, 0, 0}, + {0x11, 0, _image141_size, 0, 0, 0, 0}, + {0x11, 0, _image142_size, 0, 0, 0, 0}, + {0x11, 0, _image143_size, 0, 0, 0, 0}, + {0x11, 0, _image144_size, 0, 0, 0, 0}, + {0x11, 0, _image145_size, 0, 0, 0, 0}, + {0x11, 0, _image146_size, 0, 0, 0, 0}, + {0x11, 0, _image147_size, 0, 0, 0, 0}, + { 0, 0, _image148_size, 0, 0, 0, 0}, + {0xAA, 0, _image149_size, 0, 0, 0, 0}, + {0xAA, 0, _image150_size, 0, 0, 0, 0}, + {0xAA, 0, _image151_size, 0, 0, 0, 0}, + {0xAA, 0, _image152_size, 0, 0, 0, 0}, + {0xAA, 0, _image153_size, 0, 0, 0, 0}, + {0xAA, 0, _image154_size, 0, 0, 0, 0}, + {0xAA, 0, _image155_size, 0, 0, 0, 0}, + {0xAA, 0, _image156_size, 0, 0, 0, 0}, + { 0, 0, _image157_size, 0, 0, 0, 0}, + { 0, 0, _image158_size, 0, 0, 0, 0}, + { 0, 0, _image159_size, 0, 0, 0, 0}, + { 0, 0, _image160_size, 0, 0, 0, 0}, + {0x33, 0, _image161_size, 0, 0, 0, 0}, + {0x33, 0, _image162_size, 0, 0, 0, 0}, + {0x33, 0, _image163_size, 0, 0, 0, 0}, + {0x33, 0, _image164_size, 0, 0, 0, 0}, + {0x33, 0, _image165_size, 0, 0, 0, 0}, + {0x33, 0, _image166_size, 0, 0, 0, 0}, + {0x33, 0, _image167_size, 0, 0, 0, 0}, + {0x33, 0, _image168_size, 0, 0, 0, 0}, + { 0, 0, _image169_size, 0, 0, 0, 0}, + {0x33, 0, _image170_size, 0, 0, 0, 0}, + { 0, 0, _image171_size, 0, 0, 0, 0}, + { 0, 0, _image172_size, 0, 0, 0, 0}, + { 0, 0, _image173_size, 0, 0, 0, 0}, + { 0, 0, _image174_size, 0, 0, 0, 0}, + { 0, 0, _image175_size, 0, 0, 0, 0}, + { 0, 0, _image176_size, 0, 0, 0, 0}, + { 0, 0, _image177_size, 0, 0, 0, 0}, + {0xAA, 0, _image178_size, 0, 0, 0, 0}, + {0xAA, 0, _image179_size, 0, 0, 0, 0}, + {0xAA, 0, _image180_size, 0, 0, 0, 0}, + {0x11, 0, _image181_size, 0, 0, 0, 0}, + {0x11, 0, _image182_size, 0, 0, 0, 0}, + { 0, 0, _image183_size, 0, 0, 0, 0}, + {0x11, 0, _image184_size, 0, 0, 0, 0}, + { 0, 0, _image185_size, 0, 0, 0, 0}, + {0x22, 0, _image186_size, 0, 0, 0, 0}, + {0x77, 0, _image187_size, 0, 0, 0, 0}, + {0x77, 0, _image188_size, 0, 0, 0, 0}, + {0x22, 0, _image189_size, 0, 0, 0, 0}, + { 0, 0, _image190_size, 0, 0, 0, 0}, + { 0, 0, _image191_size, 0, 0, 0, 0}, + { 0, 0, _image192_size, 0, 0, 0, 0}, + { 0, 0, _image193_size, 0, 0, 0, 0}, + { 0, 0, _image194_size, 0, 0, 0, 0}, + {0x33, 0, _image195_size, 0, 0, 0, 0}, + {0x11, 0, _image196_size, 0, 0, 0, 0}, + {0x77, 0, _image197_size, 0, 0, 0, 0}, + {0x33, 0, _image198_size, 0, 0, 0, 0}, + { 0, 0, _image199_size, 0, 0, 0, 0}, + {0x33, 0, _image200_size, 0, 0, 0, 0}, + { 0, 0, _image201_size, 0, 0, 0, 0}, + {0x44, 0, _image202_size, 0, 0, 0, 0}, + {0x44, 0, _image203_size, 0, 0, 0, 0}, + {0x44, 0, _image204_size, 0, 0, 0, 0}, + {0x44, 0, _image205_size, 0, 0, 0, 0}, + {0x44, 0, _image206_size, 0, 0, 0, 0}, + { 0, 0, _image207_size, 0, 0, 0, 0}, + { 0, 0, _image208_size, 0, 0, 0, 0}, + { 0, 0, _image209_size, 0, 0, 0, 0}, + { 0, 0, _image210_size, 0, 0, 0, 0}, + { 0, 0, _image211_size, 0, 0, 0, 0}, + { 0, 0, _image212_size, 0, 0, 0, 0}, + { 0, 0, _image213_size, 0, 0, 0, 0}, + { 0, 0, _image214_size, 0, 0, 0, 0}, + {0xAA, 0, _image215_size, 0, 0, 0, 0}, + { 0, 0, _image216_size, 0, 0, 0, 0}, + { 0, 0, _image217_size, 0, 0, 0, 0}, + { 0, 0, _image218_size, 0, 0, 0, 0}, + { 0, 0, _image219_size, 0, 0, 0, 0}, + {0x22, 0, _image220_size, 0, 0, 0, 0}, + {0x22, 0, _image221_size, 0, 0, 0, 0}, + {0x22, 0, _image222_size, 0, 0, 0, 0}, + {0x22, 0, _image223_size, 0, 0, 0, 0}, + {0x22, 0, _image224_size, 0, 0, 0, 0}, + {0x22, 0, _image225_size, 0, 0, 0, 0}, + {0x22, 0, _image226_size, 0, 0, 0, 0}, + { 0, 0, _image227_size, 0, 0, 0, 0}, + { 0, 0, _image228_size, 0, 0, 0, 0}, + { 0, 0, _image229_size, 0, 0, 0, 0}, + {0xAA, 0, _image230_size, 0, 0, 0, 0}, + { 0, 0, _image231_size, 0, 0, 0, 0}, + { 0, 0, _image232_size, 0, 0, 0, 0}, + { 0, 0, _image233_size, 0, 0, 0, 0}, + { 0, 0, _image234_size, 0, 0, 0, 0}, + { 0, 0, _image235_size, 0, 0, 0, 0}, + {0xAA, 0, _image236_size, 0, 0, 0, 0}, + {0xAA, 0, _image237_size, 0, 0, 0, 0}, + {0xAA, 0, _image238_size, 0, 0, 0, 0}, + {0xAA, 0, _image239_size, 0, 0, 0, 0}, + {0xAA, 0, _image240_size, 0, 0, 0, 0}, + {0xAA, 0, _image241_size, 0, 0, 0, 0}, + {0xAA, 0, _image242_size, 0, 0, 0, 0}, + {0x77, 0, _image243_size, 0, 0, 0, 0}, + {0x77, 0, _image244_size, 0, 0, 0, 0}, + {0x77, 0, _image245_size, 0, 0, 0, 0}, + { 0, 0, _image246_size, 0, 0, 0, 0}, + { 0, 0, _image247_size, 0, 0, 0, 0}, + {0x33, 0, _image248_size, 0, 0, 0, 0}, + {0x33, 0, _image249_size, 0, 0, 0, 0}, + {0x33, 0, _image250_size, 0, 0, 0, 0}, + {0x33, 0, _image251_size, 0, 0, 0, 0}, + {0x11, 0, _image252_size, 0, 0, 0, 0}, + {0x44, 0, _image253_size, 0, 0, 0, 0}, + {0x44, 0, _image254_size, 0, 0, 0, 0}, + {0x44, 0, _image255_size, 0, 0, 0, 0}, + {0x44, 0, _image256_size, 0, 0, 0, 0}, + {0x44, 0, _image257_size, 0, 0, 0, 0}, + {0x11, 0, _image258_size, 0, 0, 0, 0}, + {0x11, 0, _image259_size, 0, 0, 0, 0}, + {0x11, 0, _image260_size, 0, 0, 0, 0}, + {0xAA, 0, _image261_size, 0, 0, 0, 0}, + {0xAA, 0, _image262_size, 0, 0, 0, 0}, + {0xAA, 0, _image263_size, 0, 0, 0, 0}, + {0xAA, 0, _image264_size, 0, 0, 0, 0}, + {0x77, 0, _image265_size, 0, 0, 0, 0}, + {0xAA, 0, _image266_size, 0, 0, 0, 0}, + { 0, 0, _image267_size, 0, 0, 0, 0}, + { 0, 0, _image268_size, 0, 0, 0, 0}, + { 0, 0, _image269_size, 0, 0, 0, 0}, + { 0, 0, _image270_size, 0, 0, 0, 0}, + { 0, 0, _image271_size, 0, 0, 0, 0}, + { 0, 0, _image272_size, 0, 0, 0, 0}, + { 0, 0, _image273_size, 0, 0, 0, 0}, + { 0, 0, _image274_size, 0, 0, 0, 0}, + { 0, 0, _image275_size, 0, 0, 0, 0}, + { 0, 0, _image276_size, 0, 0, 0, 0}, + { 0, 0, _image277_size, 0, 0, 0, 0}, + { 0, 0, _image278_size, 0, 0, 0, 0}, + { 0, 0, _image279_size, 0, 0, 0, 0}, + {0x11, 0, _image280_size, 0, 0, 0, 0}, + {0x11, 0, _image281_size, 0, 0, 0, 0}, + {0x11, 0, _image282_size, 0, 0, 0, 0}, + {0x11, 0, _image283_size, 0, 0, 0, 0}, + {0x11, 0, _image284_size, 0, 0, 0, 0}, + {0x11, 0, _image285_size, 0, 0, 0, 0}, + {0x11, 0, _image286_size, 0, 0, 0, 0}, + {0x11, 0, _image287_size, 0, 0, 0, 0}, + {0x11, 0, _image288_size, 0, 0, 0, 0}, + {0x11, 0, _image289_size, 0, 0, 0, 0}, + {0x11, 0, _image290_size, 0, 0, 0, 0}, + {0x11, 0, _image291_size, 0, 0, 0, 0}, + {0x11, 0, _image292_size, 0, 0, 0, 0}, + { 0, 0, _image293_size, 0, 0, 0, 0}, + {0x11, 0, _image294_size, 0, 0, 0, 0}, + {0x11, 0, _image295_size, 0, 0, 0, 0}, + {0x11, 0, _image296_size, 0, 0, 0, 0}, + {0x11, 0, _image297_size, 0, 0, 0, 0}, + {0x11, 0, _image298_size, 0, 0, 0, 0}, + {0x11, 0, _image299_size, 0, 0, 0, 0}, + {0x11, 0, _image300_size, 0, 0, 0, 0}, + {0x11, 0, _image301_size, 0, 0, 0, 0}, + {0x11, 0, _image302_size, 0, 0, 0, 0}, + {0x11, 0, _image303_size, 0, 0, 0, 0}, + {0x11, 0, _image304_size, 0, 0, 0, 0}, + {0x77, 0, _image305_size, 0, 0, 0, 0}, + {0x11, 0, _image306_size, 0, 0, 0, 0}, + {0x11, 0, _image307_size, 0, 0, 0, 0}, + {0x11, 0, _image308_size, 0, 0, 0, 0}, + {0x11, 0, _image309_size, 0, 0, 0, 0}, + {0x11, 0, _image310_size, 0, 0, 0, 0}, + {0x11, 0, _image311_size, 0, 0, 0, 0}, + {0x11, 0, _image312_size, 0, 0, 0, 0}, + {0x11, 0, _image313_size, 0, 0, 0, 0}, + {0x11, 0, _image314_size, 0, 0, 0, 0}, + {0x11, 0, _image315_size, 0, 0, 0, 0}, + {0x11, 0, _image316_size, 0, 0, 0, 0}, + {0x11, 0, _image317_size, 0, 0, 0, 0}, + {0x11, 0, _image318_size, 0, 0, 0, 0}, + {0x11, 0, _image319_size, 0, 0, 0, 0}, + {0x11, 0, _image320_size, 0, 0, 0, 0}, + {0x11, 0, _image321_size, 0, 0, 0, 0}, + { 0, 0, _image322_size, 0, 0, 0, 0}, + { 0, 0, _image323_size, 0, 0, 0, 0}, + { 0, 0, _image324_size, 0, 0, 0, 0}, + { 0, 0, _image325_size, 0, 0, 0, 0}, + { 0, 0, _image326_size, 0, 0, 0, 0}, + { 0, 0, _image327_size, 0, 0, 0, 0}, + { 0, 0, _image328_size, 0, 0, 0, 0}, + { 0, 0, _image329_size, 0, 0, 0, 0}, + {0xAA, 0, _image330_size, 0, 0, 0, 0}, + {0xAA, 0, _image331_size, 0, 0, 0, 0}, + {0xAA, 0, _image332_size, 0, 0, 0, 0}, + {0xAA, 0, _image333_size, 0, 0, 0, 0}, + {0xAA, 0, _image334_size, 0, 0, 0, 0}, + {0xAA, 0, _image335_size, 0, 0, 0, 0}, + {0xAA, 0, _image336_size, 0, 0, 0, 0}, + {0xAA, 0, _image337_size, 0, 0, 0, 0}, + {0xAA, 0, _image338_size, 0, 0, 0, 0}, + {0xAA, 0, _image339_size, 0, 0, 0, 0}, + {0xAA, 0, _image340_size, 0, 0, 0, 0}, + {0xAA, 0, _image341_size, 0, 0, 0, 0}, + {0xAA, 0, _image342_size, 0, 0, 0, 0}, + {0xAA, 0, _image343_size, 0, 0, 0, 0}, + {0xAA, 0, _image344_size, 0, 0, 0, 0}, + {0xAA, 0, _image345_size, 0, 0, 0, 0}, + {0xAA, 0, _image346_size, 0, 0, 0, 0}, + {0xAA, 0, _image347_size, 0, 0, 0, 0}, + {0xAA, 0, _image348_size, 0, 0, 0, 0}, + {0xAA, 0, _image349_size, 0, 0, 0, 0}, + {0xAA, 0, _image350_size, 0, 0, 0, 0}, + {0xAA, 0, _image351_size, 0, 0, 0, 0}, + {0xAA, 0, _image352_size, 0, 0, 0, 0}, + {0xAA, 0, _image353_size, 0, 0, 0, 0}, + {0xAA, 0, _image354_size, 0, 0, 0, 0}, + {0xAA, 0, _image355_size, 0, 0, 0, 0}, + {0xAA, 0, _image356_size, 0, 0, 0, 0}, + {0xAA, 0, _image357_size, 0, 0, 0, 0}, + {0xAA, 0, _image358_size, 0, 0, 0, 0}, + {0xAA, 0, _image359_size, 0, 0, 0, 0}, + {0xAA, 0, _image360_size, 0, 0, 0, 0}, + {0xAA, 0, _image361_size, 0, 0, 0, 0}, + {0xAA, 0, _image362_size, 0, 0, 0, 0}, + {0xAA, 0, _image363_size, 0, 0, 0, 0}, + {0xAA, 0, _image364_size, 0, 0, 0, 0}, + {0xAA, 0, _image365_size, 0, 0, 0, 0}, + {0xAA, 0, _image366_size, 0, 0, 0, 0}, + {0xAA, 0, _image367_size, 0, 0, 0, 0}, + {0xAA, 0, _image368_size, 0, 0, 0, 0}, + {0xAA, 0, _image369_size, 0, 0, 0, 0}, + { 0, 0, _image370_size, 0, 0, 0, 0}, + { 0, 0, _image371_size, 0, 0, 0, 0}, + {0xAA, 0, _image372_size, 0, 0, 0, 0}, + {0xAA, 0, _image373_size, 0, 0, 0, 0}, + {0xAA, 0, _image374_size, 0, 0, 0, 0}, + {0xAA, 0, _image375_size, 0, 0, 0, 0}, + {0xAA, 0, _image376_size, 0, 0, 0, 0}, + {0xAA, 0, _image377_size, 0, 0, 0, 0}, + {0xAA, 0, _image378_size, 0, 0, 0, 0}, + {0xAA, 0, _image379_size, 0, 0, 0, 0}, + {0xAA, 0, _image380_size, 0, 0, 0, 0}, + {0xAA, 0, _image381_size, 0, 0, 0, 0}, + {0xAA, 0, _image382_size, 0, 0, 0, 0}, + {0x33, 0, _image383_size, 0, 0, 0, 0}, + {0x33, 0, _image384_size, 0, 0, 0, 0}, + {0x33, 0, _image385_size, 0, 0, 0, 0}, + {0x33, 0, _image386_size, 0, 0, 0, 0}, + { 0, 0, _image387_size, 0, 0, 0, 0}, + { 0, 0, _image388_size, 0, 0, 0, 0}, + { 0, 0, _image389_size, 0, 0, 0, 0}, + { 0, 0, _image390_size, 0, 0, 0, 0}, + { 0, 0, _image391_size, 0, 0, 0, 0}, + { 0, 0, _image392_size, 0, 0, 0, 0}, + { 0, 0, _image393_size, 0, 0, 0, 0}, + { 0, 0, _image394_size, 0, 0, 0, 0}, + {0x33, 0, _image395_size, 0, 0, 0, 0}, + {0x22, 0, _image396_size, 0, 0, 0, 0}, + {0x22, 0, _image397_size, 0, 0, 0, 0}, + {0x22, 0, _image398_size, 0, 0, 0, 0}, + {0x22, 0, _image399_size, 0, 0, 0, 0}, + {0x33, 0, _image400_size, 0, 0, 0, 0}, + {0x33, 0, _image401_size, 0, 0, 0, 0}, + {0x33, 0, _image402_size, 0, 0, 0, 0}, + {0x11, 0, _image403_size, 0, 0, 0, 0}, + {0x11, 0, _image404_size, 0, 0, 0, 0}, + {0x11, 0, _image405_size, 0, 0, 0, 0}, + {0x77, 0, _image406_size, 0, 0, 0, 0}, + {0x11, 0, _image407_size, 0, 0, 0, 0}, + {0x11, 0, _image408_size, 0, 0, 0, 0}, + {0x11, 0, _image409_size, 0, 0, 0, 0}, + {0x11, 0, _image410_size, 0, 0, 0, 0}, + {0x11, 0, _image411_size, 0, 0, 0, 0}, + { 0, 0, _image412_size, 0, 0, 0, 0}, + { 0, 0, _image413_size, 0, 0, 0, 0}, + { 0, 0, _image414_size, 0, 0, 0, 0}, + { 0, 0, _image415_size, 0, 0, 0, 0}, + { 0, 0, _image416_size, 0, 0, 0, 0}, + { 0, 0, _image417_size, 0, 0, 0, 0}, + { 0, 0, _image418_size, 0, 0, 0, 0}, + { 0, 0, _image419_size, 0, 0, 0, 0}, + { 0, 0, _image420_size, 0, 0, 0, 0}, + { 0, 0, _image421_size, 0, 0, 0, 0}, + { 0, 0, _image422_size, 0, 0, 0, 0}, + { 0, 0, _image423_size, 0, 0, 0, 0}, + { 0, 0, _image424_size, 0, 0, 0, 0}, + { 0, 0, _image425_size, 0, 0, 0, 0}, + { 0, 0, _image426_size, 0, 0, 0, 0}, + {0xAA, 0, _image427_size, 0, 0, 0, 0}, + {0xAA, 0, _image428_size, 0, 0, 0, 0}, + {0x44, 0, _image429_size, 0, 0, 0, 0}, + {0xAA, 0, _image430_size, 0, 0, 0, 0}, + {0x33, 0, _image431_size, 0, 0, 0, 0}, + { 0, 0, _image432_size, 0, 0, 0, 0}, + {0x11, 0, _image433_size, 0, 0, 0, 0}, + {0x11, 0, _image434_size, 0, 0, 0, 0}, + {0x77, 0, _image435_size, 0, 0, 0, 0}, + {0x11, 0, _image436_size, 0, 0, 0, 0}, + {0x11, 0, _image437_size, 0, 0, 0, 0}, + { 0, 0, _image438_size, 0, 0, 0, 0}, + { 0, 0, _image439_size, 0, 0, 0, 0}, + { 0, 0, _image440_size, 0, 0, 0, 0}, + { 0, 0, _image441_size, 0, 0, 0, 0}, + { 0, 0, _image442_size, 0, 0, 0, 0}, + {0x77, 0, _image443_size, 0, 0, 0, 0}, + { 0, 0, _image444_size, 0, 0, 0, 0}, + { 0, 0, _image445_size, 0, 0, 0, 0}, + { 0, 0, _image446_size, 0, 0, 0, 0}, + { 0, 0, _image447_size, 0, 0, 0, 0}, + {0x44, 0, _image448_size, 0, 0, 0, 0}, + {0x44, 0, _image449_size, 0, 0, 0, 0}, + {0x11, 0, _image450_size, 0, 0, 0, 0}, + {0x11, 0, _image451_size, 0, 0, 0, 0}, + {0xAA, 0, _image452_size, 0, 0, 0, 0}, + {0x33, 0, _image453_size, 0, 0, 0, 0}, + {0x33, 0, _image454_size, 0, 0, 0, 0}, + { 0, 0, _image455_size, 0, 0, 0, 0}, + { 0, 0, _image456_size, 0, 0, 0, 0}, + { 0, 0, _image457_size, 0, 0, 0, 0}, + {0xAA, 0, _image458_size, 0, 0, 0, 0}, + {0x33, 0, _image459_size, 0, 0, 0, 0}, + {0x33, 0, _image460_size, 0, 0, 0, 0}, + { 0, 0, _image461_size, 0, 0, 0, 0}, + {0xAA, 0, _image462_size, 0, 0, 0, 0}, + { 0, 0, _image463_size, 0, 0, 0, 0}, + { 0, 0, _image464_size, 0, 0, 0, 0}, + { 0, 0, _image465_size, 0, 0, 0, 0}, + {0xAA, 0, _image466_size, 0, 0, 0, 0}, + {0xAA, 0, _image467_size, 0, 0, 0, 0}, + {0xAA, 0, _image468_size, 0, 0, 0, 0}, + {0xAA, 0, _image469_size, 0, 0, 0, 0}, + {0xAA, 0, _image470_size, 0, 0, 0, 0}, + { 0, 0, _image471_size, 0, 0, 0, 0}, + {0xAA, 0, _image472_size, 0, 0, 0, 0}, + {0xAA, 0, _image473_size, 0, 0, 0, 0}, + {0xAA, 0, _image474_size, 0, 0, 0, 0}, + {0x33, 0, _image475_size, 0, 0, 0, 0}, + {0x33, 0, _image476_size, 0, 0, 0, 0}, + {0x33, 0, _image477_size, 0, 0, 0, 0}, + {0x33, 0, _image478_size, 0, 0, 0, 0}, + {0x33, 0, _image479_size, 0, 0, 0, 0}, + {0x33, 0, _image480_size, 0, 0, 0, 0}, + { 0, 0, _image481_size, 0, 0, 0, 0}, + {0x33, 0, _image482_size, 0, 0, 0, 0}, + {0x33, 0, _image483_size, 0, 0, 0, 0}, + {0x33, 0, _image484_size, 0, 0, 0, 0}, + {0x33, 0, _image485_size, 0, 0, 0, 0}, + {0x33, 0, _image486_size, 0, 0, 0, 0}, + {0xAA, 0, _image487_size, 0, 0, 0, 0}, + {0xAA, 0, _image488_size, 0, 0, 0, 0}, + {0xAA, 0, _image489_size, 0, 0, 0, 0}, + { 0, 0, _image490_size, 0, 0, 0, 0}, + { 0, 0, _image491_size, 0, 0, 0, 0}, + {0x33, 0, _image492_size, 0, 0, 0, 0}, + {0xAA, 0, _image493_size, 0, 0, 0, 0}, + { 0, 0, _image494_size, 0, 0, 0, 0}, + { 0, 0, _image495_size, 0, 0, 0, 0}, + { 0, 0, _image496_size, 0, 0, 0, 0}, + { 0, 0, _image497_size, 0, 0, 0, 0}, + { 0, 0, _image498_size, 0, 0, 0, 0}, + { 0, 0, _image499_size, 0, 0, 0, 0}, + {0xAA, 0, _image500_size, 0, 0, 0, 0}, + {0xAA, 0, _image501_size, 0, 0, 0, 0}, + {0xAA, 0, _image502_size, 0, 0, 0, 0}, + {0x33, 0, _image503_size, 0, 0, 0, 0}, + {0x33, 0, _image504_size, 0, 0, 0, 0}, + { 0, 0, _image505_size, 0, 0, 0, 0}, + {0x33, 0, _image506_size, 0, 0, 0, 0}, + { 0, 0, _image507_size, 0, 0, 0, 0}, + {0x33, 0, _image508_size, 0, 0, 0, 0}, + {0x33, 0, _image509_size, 0, 0, 0, 0}, + {0x33, 0, _image510_size, 0, 0, 0, 0}, + {0x33, 0, _image511_size, 0, 0, 0, 0}, + {0x33, 0, _image512_size, 0, 0, 0, 0}, + {0x33, 0, _image513_size, 0, 0, 0, 0}, + { 0, 0, _image514_size, 0, 0, 0, 0}, + {0x33, 0, _image515_size, 0, 0, 0, 0}, + {0xAA, 0, _image516_size, 0, 0, 0, 0}, + {0xAA, 0, _image517_size, 0, 0, 0, 0}, + {0xAA, 0, _image518_size, 0, 0, 0, 0}, + {0xAA, 0, _image519_size, 0, 0, 0, 0}, + {0xAA, 0, _image520_size, 0, 0, 0, 0}, + { 0, 0, _image521_size, 0, 0, 0, 0}, + {0xAA, 0, _image522_size, 0, 0, 0, 0}, + {0x33, 0, _image523_size, 0, 0, 0, 0}, + {0x33, 0, _image524_size, 0, 0, 0, 0}, + { 0, 0, _image525_size, 0, 0, 0, 0}, + {0x33, 0, _image526_size, 0, 0, 0, 0}, + {0xAA, 0, _image527_size, 0, 0, 0, 0}, + {0xAA, 0, _image528_size, 0, 0, 0, 0}, + {0xAA, 0, _image529_size, 0, 0, 0, 0}, + {0xAA, 0, _image530_size, 0, 0, 0, 0}, + { 0, 0, _image531_size, 0, 0, 0, 0}, + { 0, 0, _image532_size, 0, 0, 0, 0}, + { 0, 0, _image533_size, 0, 0, 0, 0}, + {0x33, 0, _image534_size, 0, 0, 0, 0}, + {0x33, 0, _image535_size, 0, 0, 0, 0}, + {0x33, 0, _image536_size, 0, 0, 0, 0}, + {0x44, 0, _image537_size, 0, 0, 0, 0}, + {0x77, 0, _image538_size, 0, 0, 0, 0}, + {0x77, 0, _image539_size, 0, 0, 0, 0}, + { 0, 0, _image540_size, 0, 0, 0, 0}, + { 0, 0, _image541_size, 0, 0, 0, 0}, + { 0, 0, _image542_size, 0, 0, 0, 0}, + {0xAA, 0, _image543_size, 0, 0, 0, 0}, + { 0, 0, _image544_size, 0, 0, 0, 0}, + { 0, 0, _image545_size, 0, 0, 0, 0}, + {0x33, 0, _image546_size, 0, 0, 0, 0}, + {0x33, 0, _image547_size, 0, 0, 0, 0}, + {0x33, 0, _image548_size, 0, 0, 0, 0}, + {0x33, 0, _image549_size, 0, 0, 0, 0}, + {0x33, 0, _image550_size, 0, 0, 0, 0}, + {0x33, 0, _image551_size, 0, 0, 0, 0}, + {0x33, 0, _image552_size, 0, 0, 0, 0}, + {0x33, 0, _image553_size, 0, 0, 0, 0}, + {0x33, 0, _image554_size, 0, 0, 0, 0}, + {0x33, 0, _image555_size, 0, 0, 0, 0}, + {0x33, 0, _image556_size, 0, 0, 0, 0}, + {0x33, 0, _image557_size, 0, 0, 0, 0}, + {0x33, 0, _image558_size, 0, 0, 0, 0}, + {0x33, 0, _image559_size, 0, 0, 0, 0}, + {0x33, 0, _image560_size, 0, 0, 0, 0}, + {0x33, 0, _image561_size, 0, 0, 0, 0}, + {0x33, 0, _image562_size, 0, 0, 0, 0}, + {0x33, 0, _image563_size, 0, 0, 0, 0}, + {0x33, 0, _image564_size, 0, 0, 0, 0}, + {0x33, 0, _image565_size, 0, 0, 0, 0}, + {0x33, 0, _image566_size, 0, 0, 0, 0}, + {0x33, 0, _image567_size, 0, 0, 0, 0}, + {0x33, 0, _image568_size, 0, 0, 0, 0}, + {0x33, 0, _image569_size, 0, 0, 0, 0}, + {0x33, 0, _image570_size, 0, 0, 0, 0}, + {0x33, 0, _image571_size, 0, 0, 0, 0}, + {0x33, 0, _image572_size, 0, 0, 0, 0}, + {0x33, 0, _image573_size, 0, 0, 0, 0}, + {0x33, 0, _image574_size, 0, 0, 0, 0}, + {0x33, 0, _image575_size, 0, 0, 0, 0}, + {0x33, 0, _image576_size, 0, 0, 0, 0}, + {0x22, 0, _image577_size, 0, 0, 0, 0}, + {0x33, 0, _image578_size, 0, 0, 0, 0}, + {0x33, 0, _image579_size, 0, 0, 0, 0}, + {0x33, 0, _image580_size, 0, 0, 0, 0}, + {0x33, 0, _image581_size, 0, 0, 0, 0}, + { 0, 0, _image582_size, 0, 0, 0, 0}, + { 0, 0, _image583_size, 0, 0, 0, 0}, + { 0, 0, _image584_size, 0, 0, 0, 0}, + { 0, 0, _image585_size, 0, 0, 0, 0}, + { 0, 0, _image586_size, 0, 0, 0, 0}, + { 0, 0, _image587_size, 0, 0, 0, 0}, + { 0, 0, _image588_size, 0, 0, 0, 0}, + {0x77, 0, _image589_size, 0, 0, 0, 0}, + {0x77, 0, _image590_size, 0, 0, 0, 0}, + {0x77, 0, _image591_size, 0, 0, 0, 0}, + {0x77, 0, _image592_size, 0, 0, 0, 0}, + {0x77, 0, _image593_size, 0, 0, 0, 0}, + {0x77, 0, _image594_size, 0, 0, 0, 0}, + {0x77, 0, _image595_size, 0, 0, 0, 0}, + {0x77, 0, _image596_size, 0, 0, 0, 0}, + { 0, 0, _image597_size, 0, 0, 0, 0}, + { 0, 0, _image598_size, 0, 0, 0, 0}, + { 0, 0, _image599_size, 0, 0, 0, 0}, + { 0, 0, _image600_size, 0, 0, 0, 0}, + { 0, 0, _image601_size, 0, 0, 0, 0}, + { 0, 0, _image602_size, 0, 0, 0, 0}, + { 0, 0, _image603_size, 0, 0, 0, 0}, + { 0, 0, _image604_size, 0, 0, 0, 0}, + { 0, 0, _image605_size, 0, 0, 0, 0}, + { 0, 0, _image606_size, 0, 0, 0, 0}, + { 0, 0, _image607_size, 0, 0, 0, 0}, + { 0, 0, _image608_size, 0, 0, 0, 0}, + { 0, 0, _image609_size, 0, 0, 0, 0}, + { 0, 0, _image610_size, 0, 0, 0, 0}, + { 0, 0, _image611_size, 0, 0, 0, 0}, + { 0, 0, _image612_size, 0, 0, 0, 0}, + {0x33, 0, _image613_size, 0, 0, 0, 0}, + {0x33, 0, _image614_size, 0, 0, 0, 0}, + {0x33, 0, _image615_size, 0, 0, 0, 0}, + {0x33, 0, _image616_size, 0, 0, 0, 0}, + {0x33, 0, _image617_size, 0, 0, 0, 0}, + { 0, 0, _image618_size, 0, 0, 0, 0}, + { 0, 0, _image619_size, 0, 0, 0, 0}, + {0x22, 0, _image620_size, 0, 0, 0, 0}, + {0x33, 0, _image621_size, 0, 0, 0, 0}, + {0x33, 0, _image622_size, 0, 0, 0, 0}, + {0x33, 0, _image623_size, 0, 0, 0, 0}, + { 0, 0, _image624_size, 0, 0, 0, 0}, + { 0, 0, _image625_size, 0, 0, 0, 0}, + { 0, 0, _image626_size, 0, 0, 0, 0}, + { 0, 0, _image627_size, 0, 0, 0, 0}, + { 0, 0, _image628_size, 0, 0, 0, 0}, + { 0, 0, _image629_size, 0, 0, 0, 0}, + { 0, 0, _image630_size, 0, 0, 0, 0}, + { 0, 0, _image631_size, 0, 0, 0, 0}, + {0x99, 0, _image632_size, 0, 0, 0, 0}, + {0x99, 0, _image633_size, 0, 0, 0, 0}, + { 0, 0, _image634_size, 0, 0, 0, 0}, + { 0, 0, _image635_size, 0, 0, 0, 0}, + { 0, 0, _image636_size, 0, 0, 0, 0}, + { 0, 0, _image637_size, 0, 0, 0, 0}, + { 0, 0, _image638_size, 0, 0, 0, 0}, + { 0, 0, _image639_size, 0, 0, 0, 0}, + { 0, 0, _image640_size, 0, 0, 0, 0}, + { 0, 0, _image641_size, 0, 0, 0, 0}, + { 0, 0, _image642_size, 0, 0, 0, 0}, + { 0, 0, _image643_size, 0, 0, 0, 0}, + {0x33, 0, _image644_size, 0, 0, 0, 0}, + {0x33, 0, _image645_size, 0, 0, 0, 0}, + {0x33, 0, _image646_size, 0, 0, 0, 0}, + { 0, 0, _image647_size, 0, 0, 0, 0}, + {0x33, 0, _image648_size, 0, 0, 0, 0}, + { 0, 0, _image649_size, 0, 0, 0, 0}, + { 0, 0, _image650_size, 0, 0, 0, 0}, + { 0, 0, _image651_size, 0, 0, 0, 0}, + {0x33, 0, _image652_size, 0, 0, 0, 0}, + {0x44, 0, _image653_size, 0, 0, 0, 0}, + {0x4C, 0, _image654_size, 0, 0, 0, 0}, + {0x4C, 0, _image655_size, 0, 0, 0, 0}, + {0x4C, 0, _image656_size, 0, 0, 0, 0}, + {0x44, 0, _image657_size, 0, 0, 0, 0}, + {0x44, 0, _image658_size, 0, 0, 0, 0}, + {0x44, 0, _image659_size, 0, 0, 0, 0}, + { 0, 0, _image660_size, 0, 0, 0, 0}, + { 0, 0, _image661_size, 0, 0, 0, 0}, + { 0, 0, _image662_size, 0, 0, 0, 0}, + { 0, 0, _image663_size, 0, 0, 0, 0}, + { 0, 0, _image664_size, 0, 0, 0, 0}, + { 0, 0, _image665_size, 0, 0, 0, 0}, + { 0, 0, _image666_size, 0, 0, 0, 0}, + { 0, 0, _image667_size, 0, 0, 0, 0}, + { 0, 0, _image668_size, 0, 0, 0, 0}, + { 0, 0, _image669_size, 0, 0, 0, 0}, + { 0, 0, _image670_size, 0, 0, 0, 0}, + { 0, 0, _image671_size, 0, 0, 0, 0}, + {0x33, 0, _image672_size, 0, 0, 0, 0}, + {0x33, 0, _image673_size, 0, 0, 0, 0}, + {0x33, 0, _image674_size, 0, 0, 0, 0}, + {0x33, 0, _image675_size, 0, 0, 0, 0}, + {0x11, 0, _image676_size, 0, 0, 0, 0}, + {0x11, 0, _image677_size, 0, 0, 0, 0}, + { 0, 0, _image678_size, 0, 0, 0, 0}, + {0x22, 0, _image679_size, 0, 0, 0, 0}, + {0x33, 0, _image680_size, 0, 0, 0, 0}, + {0x33, 0, _image681_size, 0, 0, 0, 0}, + {0x33, 0, _image682_size, 0, 0, 0, 0}, + {0x33, 0, _image683_size, 0, 0, 0, 0}, + {0x33, 0, _image684_size, 0, 0, 0, 0}, + {0x33, 0, _image685_size, 0, 0, 0, 0}, + {0x33, 0, _image686_size, 0, 0, 0, 0}, + {0x33, 0, _image687_size, 0, 0, 0, 0}, + {0x33, 0, _image688_size, 0, 0, 0, 0}, + {0x33, 0, _image689_size, 0, 0, 0, 0}, + { 0, 0, _image690_size, 0, 0, 0, 0}, + { 0, 0, _image691_size, 0, 0, 0, 0}, + { 0, 0, _image692_size, 0, 0, 0, 0}, + {0xAA, 0, _image693_size, 0, 0, 0, 0}, + {0x44, 0, _image694_size, 0, 0, 0, 0}, + { 0, 0, _image695_size, 0, 0, 0, 0}, + {0x99, 0, _image696_size, 0, 0, 0, 0}, + {0x99, 0, _image697_size, 0, 0, 0, 0}, + {0x77, 0, _image698_size, 0, 0, 0, 0}, + {0x99, 0, _image699_size, 0, 0, 0, 0}, + {0x99, 0, _image700_size, 0, 0, 0, 0}, + {0x33, 0, _image701_size, 0, 0, 0, 0}, + {0x33, 0, _image702_size, 0, 0, 0, 0}, + {0xAA, 0, _image703_size, 0, 0, 0, 0}, + {0xAA, 0, _image704_size, 0, 0, 0, 0}, + {0xAA, 0, _image705_size, 0, 0, 0, 0}, + {0x33, 0, _image706_size, 0, 0, 0, 0}, + {0x33, 0, _image707_size, 0, 0, 0, 0}, + {0x33, 0, _image708_size, 0, 0, 0, 0}, + {0x33, 0, _image709_size, 0, 0, 0, 0}, + {0x33, 0, _image710_size, 0, 0, 0, 0}, + {0x33, 0, _image711_size, 0, 0, 0, 0}, + {0x33, 0, _image712_size, 0, 0, 0, 0}, + { 0, 0, _image713_size, 0, 0, 0, 0}, + { 0, 0, _image714_size, 0, 0, 0, 0}, + { 0, 0, _image715_size, 0, 0, 0, 0}, + {0x33, 0, _image716_size, 0, 0, 0, 0}, + {0x33, 0, _image717_size, 0, 0, 0, 0}, + {0x33, 0, _image718_size, 0, 0, 0, 0}, + {0x99, 0, _image719_size, 0, 0, 0, 0}, + {0x99, 0, _image720_size, 0, 0, 0, 0}, + {0x11, 0, _image721_size, 0, 0, 0, 0}, + {0x11, 0, _image722_size, 0, 0, 0, 0}, + { 0, 0, _image723_size, 0, 0, 0, 0}, + {0x11, 0, _image724_size, 0, 0, 0, 0}, + {0x11, 0, _image725_size, 0, 0, 0, 0}, + {0x11, 0, _image726_size, 0, 0, 0, 0}, + {0xAA, 0, _image727_size, 0, 0, 0, 0}, + {0xAA, 0, _image728_size, 0, 0, 0, 0}, + {0xAA, 0, _image729_size, 0, 0, 0, 0}, + {0xAA, 0, _image730_size, 0, 0, 0, 0}, + {0xAA, 0, _image731_size, 0, 0, 0, 0}, + {0xAA, 0, _image732_size, 0, 0, 0, 0}, + { 0, 0, _image733_size, 0, 0, 0, 0}, + { 0, 0, _image734_size, 0, 0, 0, 0}, + { 0, 0, _image735_size, 0, 0, 0, 0}, + { 0, 0, _image736_size, 0, 0, 0, 0}, + { 0, 0, _image737_size, 0, 0, 0, 0}, + { 0, 0, _image738_size, 0, 0, 0, 0}, + { 0, 0, _image739_size, 0, 0, 0, 0}, + { 0, 0, _image740_size, 0, 0, 0, 0}, + { 0, 0, _image741_size, 0, 0, 0, 0}, + { 0, 0, _image742_size, 0, 0, 0, 0}, + { 0, 0, _image743_size, 0, 0, 0, 0}, + { 0, 0, _image744_size, 0, 0, 0, 0}, + { 0, 0, _image745_size, 0, 0, 0, 0}, + { 0, 0, _image746_size, 0, 0, 0, 0}, + { 0, 0, _image747_size, 0, 0, 0, 0}, + { 0, 0, _image748_size, 0, 0, 0, 0}, + { 0, 0, _image749_size, 0, 0, 0, 0}, + { 0, 0, _image750_size, 0, 0, 0, 0}, + { 0, 0, _image751_size, 0, 0, 0, 0}, + { 0, 0, _image752_size, 0, 0, 0, 0}, + { 0, 0, _image753_size, 0, 0, 0, 0}, + { 0, 0, _image754_size, 0, 0, 0, 0}, + { 0, 0, _image755_size, 0, 0, 0, 0}, + { 0, 0, _image756_size, 0, 0, 0, 0}, + { 0, 0, _image757_size, 0, 0, 0, 0}, + { 0, 0, _image758_size, 0, 0, 0, 0}, + { 0, 0, _image759_size, 0, 0, 0, 0}, + { 0, 0, _image760_size, 0, 0, 0, 0}, + {0x77, 0, _image761_size, 0, 0, 0, 0}, + {0x77, 0, _image762_size, 0, 0, 0, 0}, + { 0, 0, _image763_size, 0, 0, 0, 0}, + { 0, 0, _image764_size, 0, 0, 0, 0}, + { 0, 0, _image765_size, 0, 0, 0, 0}, + { 0, 0, _image766_size, 0, 0, 0, 0}, + { 0, 0, _image767_size, 0, 0, 0, 0}, + { 0, 0, _image768_size, 0, 0, 0, 0}, + { 0, 0, _image769_size, 0, 0, 0, 0}, + { 0, 0, _image770_size, 0, 0, 0, 0}, + { 0, 0, _image771_size, 0, 0, 0, 0}, + { 0, 0, _image772_size, 0, 0, 0, 0}, + {0xAA, 0, _image773_size, 0, 0, 0, 0}, + {0xAA, 0, _image774_size, 0, 0, 0, 0}, + {0xAA, 0, _image775_size, 0, 0, 0, 0}, + {0x88, 0, _image776_size, 0, 0, 0, 0}, + { 0, 0, _image777_size, 0, 0, 0, 0}, + {0x11, 0, _image778_size, 0, 0, 0, 0}, + { 0, 0, _image779_size, 0, 0, 0, 0}, + { 0, 0, _image780_size, 0, 0, 0, 0}, + { 0, 0, _image781_size, 0, 0, 0, 0}, + { 0, 0, _image782_size, 0, 0, 0, 0}, + { 0, 0, _image783_size, 0, 0, 0, 0}, + {0x77, 0, _image784_size, 0, 0, 0, 0}, + { 0, 0, _image785_size, 0, 0, 0, 0}, + { 0, 0, _image786_size, 0, 0, 0, 0}, + { 0, 0, _image787_size, 0, 0, 0, 0}, + {0xAA, 0, _image788_size, 0, 0, 0, 0}, + { 0, 0, _image789_size, 0, 0, 0, 0}, + { 0, 0, _image790_size, 0, 0, 0, 0}, + { 0, 0, _image791_size, 0, 0, 0, 0}, + { 0, 0, _image792_size, 0, 0, 0, 0}, + { 0, 0, _image793_size, 0, 0, 0, 0}, + { 0, 0, _image794_size, 0, 0, 0, 0}, + { 0, 0, _image795_size, 0, 0, 0, 0}, + { 0, 0, _image796_size, 0, 0, 0, 0}, + {0x33, 0, _image797_size, 0, 0, 0, 0}, + {0x33, 0, _image798_size, 0, 0, 0, 0}, + {0x33, 0, _image799_size, 0, 0, 0, 0}, + {0x33, 0, _image800_size, 0, 0, 0, 0}, + {0x33, 0, _image801_size, 0, 0, 0, 0}, + {0x33, 0, _image802_size, 0, 0, 0, 0}, + {0x33, 0, _image803_size, 0, 0, 0, 0}, + {0x33, 0, _image804_size, 0, 0, 0, 0}, + { 0, 0, _image805_size, 0, 0, 0, 0}, + {0xAA, 0, _image806_size, 0, 0, 0, 0}, + { 0, 0, _image807_size, 0, 0, 0, 0}, + { 0, 0, _image808_size, 0, 0, 0, 0}, + {0x44, 0, _image809_size, 0, 0, 0, 0}, + {0x44, 0, _image810_size, 0, 0, 0, 0}, + {0x44, 0, _image811_size, 0, 0, 0, 0}, + { 0, 0, _image812_size, 0, 0, 0, 0}, + { 0, 0, _image813_size, 0, 0, 0, 0}, + { 0, 0, _image814_size, 0, 0, 0, 0}, + { 0, 0, _image815_size, 0, 0, 0, 0}, + { 0, 0, _image816_size, 0, 0, 0, 0}, + { 0, 0, _image817_size, 0, 0, 0, 0}, + {0x33, 0, _image818_size, 0, 0, 0, 0}, + {0xAA, 0, _image819_size, 0, 0, 0, 0}, + {0x33, 0, _image820_size, 0, 0, 0, 0}, + {0x33, 0, _image821_size, 0, 0, 0, 0}, + { 0, 0, _image822_size, 0, 0, 0, 0}, + { 0, 0, _image823_size, 0, 0, 0, 0}, + { 0, 0, _image824_size, 0, 0, 0, 0}, + { 0, 0, _image825_size, 0, 0, 0, 0}, + { 0, 0, _image826_size, 0, 0, 0, 0}, + { 0, 0, _image827_size, 0, 0, 0, 0}, + { 0, 0, _image828_size, 0, 0, 0, 0}, + { 0, 0, _image829_size, 0, 0, 0, 0}, + { 0, 0, _image830_size, 0, 0, 0, 0}, + { 0, 0, _image831_size, 0, 0, 0, 0}, + { 0, 0, _image832_size, 0, 0, 0, 0}, + { 0, 0, _image833_size, 0, 0, 0, 0}, + { 0, 0, _image834_size, 0, 0, 0, 0}, + { 0, 0, _image835_size, 0, 0, 0, 0}, + { 0, 0, _image836_size, 0, 0, 0, 0}, + {0xAA, 0, _image837_size, 0, 0, 0, 0}, + { 0, 0, _image838_size, 0, 0, 0, 0}, + { 0, 0, _image839_size, 0, 0, 0, 0}, + { 0, 0, _image840_size, 0, 0, 0, 0}, + { 0, 0, _image841_size, 0, 0, 0, 0}, + { 0, 0, _image842_size, 0, 0, 0, 0}, + {0xAA, 0, _image843_size, 0, 0, 0, 0}, + {0xAA, 0, _image844_size, 0, 0, 0, 0}, + {0xAA, 0, _image845_size, 0, 0, 0, 0}, + {0x33, 0, _image846_size, 0, 0, 0, 0}, + {0x33, 0, _image847_size, 0, 0, 0, 0}, + {0x33, 0, _image848_size, 0, 0, 0, 0}, + {0x33, 0, _image849_size, 0, 0, 0, 0}, + { 0, 0, _image850_size, 0, 0, 0, 0}, + { 0, 0, _image851_size, 0, 0, 0, 0}, + { 0, 0, _image852_size, 0, 0, 0, 0}, + { 0, 0, _image853_size, 0, 0, 0, 0}, + { 0, 0, _image854_size, 0, 0, 0, 0}, + { 0, 0, _image855_size, 0, 0, 0, 0}, + { 0, 0, _image856_size, 0, 0, 0, 0}, + {0x44, 0, _image857_size, 0, 0, 0, 0}, + {0xAA, 0, _image858_size, 0, 0, 0, 0}, + {0xAA, 0, _image859_size, 0, 0, 0, 0}, + {0x33, 0, _image860_size, 0, 0, 0, 0}, + {0x33, 0, _image861_size, 0, 0, 0, 0}, + {0x33, 0, _image862_size, 0, 0, 0, 0}, + {0x33, 0, _image863_size, 0, 0, 0, 0}, + { 0, 0, _image864_size, 0, 0, 0, 0}, + {0x44, 0, _image865_size, 0, 0, 0, 0}, + {0x44, 0, _image866_size, 0, 0, 0, 0}, + {0x22, 0, _image867_size, 0, 0, 0, 0}, + {0x99, 0, _image868_size, 0, 0, 0, 0}, + {0x99, 0, _image869_size, 0, 0, 0, 0}, + {0xAA, 0, _image870_size, 0, 0, 0, 0}, + { 0, 0, _image871_size, 0, 0, 0, 0}, + { 0, 0, _image872_size, 0, 0, 0, 0}, + { 0, 0, _image873_size, 0, 0, 0, 0}, + { 0, 0, _image874_size, 0, 0, 0, 0}, + { 0, 0, _image875_size, 0, 0, 0, 0}, + { 0, 0, _image876_size, 0, 0, 0, 0}, + { 0, 0, _image877_size, 0, 0, 0, 0}, + { 0, 0, _image878_size, 0, 0, 0, 0}, + { 0, 0, _image879_size, 0, 0, 0, 0}, + { 0, 0, _image880_size, 0, 0, 0, 0}, + { 0, 0, _image881_size, 0, 0, 0, 0}, + { 0, 0, _image882_size, 0, 0, 0, 0}, + { 0, 0, _image883_size, 0, 0, 0, 0}, + { 0, 0, _image884_size, 0, 0, 0, 0}, + { 0, 0, _image885_size, 0, 0, 0, 0}, + { 0, 0, _image886_size, 0, 0, 0, 0}, + { 0, 0, _image887_size, 0, 0, 0, 0}, + { 0, 0, _image888_size, 0, 0, 0, 0}, + {0x33, 0, _image889_size, 0, 0, 0, 0}, + {0xAA, 0, _image890_size, 0, 0, 0, 0}, + {0xAA, 0, _image891_size, 0, 0, 0, 0}, + {0xAA, 0, _image892_size, 0, 0, 0, 0}, + {0xAA, 0, _image893_size, 0, 0, 0, 0}, + {0xAA, 0, _image894_size, 0, 0, 0, 0}, + {0xAA, 0, _image895_size, 0, 0, 0, 0}, + { 0, 0, _image896_size, 0, 0, 0, 0}, + { 0, 0, _image897_size, 0, 0, 0, 0}, + { 0, 0, _image898_size, 0, 0, 0, 0}, + { 0, 0, _image899_size, 0, 0, 0, 0}, + { 0, 0, _image900_size, 0, 0, 0, 0}, + {0x99, 0, _image901_size, 0, 0, 0, 0}, + {0x99, 0, _image902_size, 0, 0, 0, 0}, + {0x99, 0, _image903_size, 0, 0, 0, 0}, + {0x99, 0, _image904_size, 0, 0, 0, 0}, + { 0, 0, _image905_size, 0, 0, 0, 0}, + { 0, 0, _image906_size, 0, 0, 0, 0}, + { 0, 0, _image907_size, 0, 0, 0, 0}, + { 0, 0, _image908_size, 0, 0, 0, 0}, + { 0, 0, _image909_size, 0, 0, 0, 0}, + {0x33, 0, _image910_size, 0, 0, 0, 0}, + {0x33, 0, _image911_size, 0, 0, 0, 0}, + {0x33, 0, _image912_size, 0, 0, 0, 0}, + {0x33, 0, _image913_size, 0, 0, 0, 0}, + {0x33, 0, _image914_size, 0, 0, 0, 0}, + {0x33, 0, _image915_size, 0, 0, 0, 0}, + {0x33, 0, _image916_size, 0, 0, 0, 0}, + {0x33, 0, _image917_size, 0, 0, 0, 0}, + {0x33, 0, _image918_size, 0, 0, 0, 0}, + {0x33, 0, _image919_size, 0, 0, 0, 0}, + {0xAA, 0, _image920_size, 0, 0, 0, 0}, + {0x33, 0, _image921_size, 0, 0, 0, 0}, + {0x33, 0, _image922_size, 0, 0, 0, 0}, + {0x33, 0, _image923_size, 0, 0, 0, 0}, + {0x33, 0, _image924_size, 0, 0, 0, 0}, + { 0, 0, _image925_size, 0, 0, 0, 0}, + { 0, 0, _image926_size, 0, 0, 0, 0}, + { 0, 0, _image927_size, 0, 0, 0, 0}, + { 0, 0, _image928_size, 0, 0, 0, 0}, + { 0, 0, _image929_size, 0, 0, 0, 0}, + { 0, 0, _image930_size, 0, 0, 0, 0}, + { 0, 0, _image931_size, 0, 0, 0, 0}, + { 0, 0, _image932_size, 0, 0, 0, 0}, + { 0, 0, _image933_size, 0, 0, 0, 0}, + { 0, 0, _image934_size, 0, 0, 0, 0}, + { 0, 0, _image935_size, 0, 0, 0, 0}, + { 0, 0, _image936_size, 0, 0, 0, 0}, + { 0, 0, _image937_size, 0, 0, 0, 0}, + { 0, 0, _image938_size, 0, 0, 0, 0}, + { 0, 0, _image939_size, 0, 0, 0, 0}, + { 0, 0, _image940_size, 0, 0, 0, 0}, + { 0, 0, _image941_size, 0, 0, 0, 0}, + { 0, 0, _image942_size, 0, 0, 0, 0}, + { 0, 0, _image943_size, 0, 0, 0, 0}, + { 0, 0, _image944_size, 0, 0, 0, 0}, + { 0, 0, _image945_size, 0, 0, 0, 0}, + { 0, 0, _image946_size, 0, 0, 0, 0}, + { 0, 0, _image947_size, 0, 0, 0, 0}, + { 0, 0, _image948_size, 0, 0, 0, 0}, + { 0, 0, _image949_size, 0, 0, 0, 0}, + { 0, 0, _image950_size, 0, 0, 0, 0}, + { 0, 0, _image951_size, 0, 0, 0, 0}, + { 0, 0, _image952_size, 0, 0, 0, 0}, + { 0, 0, _image953_size, 0, 0, 0, 0}, + { 0, 0, _image954_size, 0, 0, 0, 0}, + { 0, 0, _image955_size, 0, 0, 0, 0}, + { 0, 0, _image956_size, 0, 0, 0, 0}, + { 0, 0, _image957_size, 0, 0, 0, 0}, + { 0, 0, _image958_size, 0, 0, 0, 0}, + { 0, 0, _image959_size, 0, 0, 0, 0}, + {0x77, 0, _image960_size, 0, 0, 0, 0}, + {0x77, 0, _image961_size, 0, 0, 0, 0}, + {0x11, 0, _image962_size, 0, 0, 0, 0}, + {0x11, 0, _image963_size, 0, 0, 0, 0}, + {0x11, 0, _image964_size, 0, 0, 0, 0}, + {0x11, 0, _image965_size, 0, 0, 0, 0}, + {0x11, 0, _image966_size, 0, 0, 0, 0}, + {0x11, 0, _image967_size, 0, 0, 0, 0}, + {0x11, 0, _image968_size, 0, 0, 0, 0}, + {0x11, 0, _image969_size, 0, 0, 0, 0}, + {0x77, 0, _image970_size, 0, 0, 0, 0}, + {0x77, 0, _image971_size, 0, 0, 0, 0}, + {0x77, 0, _image972_size, 0, 0, 0, 0}, + {0x77, 0, _image973_size, 0, 0, 0, 0}, + {0x77, 0, _image974_size, 0, 0, 0, 0}, + {0x77, 0, _image975_size, 0, 0, 0, 0}, + {0x77, 0, _image976_size, 0, 0, 0, 0}, + {0x77, 0, _image977_size, 0, 0, 0, 0}, + {0x77, 0, _image978_size, 0, 0, 0, 0}, + {0x77, 0, _image979_size, 0, 0, 0, 0}, + {0x77, 0, _image980_size, 0, 0, 0, 0}, + {0x77, 0, _image981_size, 0, 0, 0, 0}, + {0x77, 0, _image982_size, 0, 0, 0, 0}, + { 0, 0, _image983_size, 0, 0, 0, 0}, + {0xAA, 0, _image984_size, 0, 0, 0, 0}, + {0xAA, 0, _image985_size, 0, 0, 0, 0}, + { 0, 0, _image986_size, 0, 0, 0, 0}, + { 0, 0, _image987_size, 0, 0, 0, 0}, + { 0, 0, _image988_size, 0, 0, 0, 0}, + { 0, 0, _image989_size, 0, 0, 0, 0}, + { 0, 0, _image990_size, 0, 0, 0, 0}, + { 0, 0, _image991_size, 0, 0, 0, 0}, + { 0, 0, _image992_size, 0, 0, 0, 0}, + { 0, 0, _image993_size, 0, 0, 0, 0}, + { 0, 0, _image994_size, 0, 0, 0, 0}, + { 0, 0, _image995_size, 0, 0, 0, 0}, + { 0, 0, _image996_size, 0, 0, 0, 0}, + { 0, 0, _image997_size, 0, 0, 0, 0}, + { 0, 0, _image998_size, 0, 0, 0, 0}, + { 0, 0, _image999_size, 0, 0, 0, 0}, + {0x33, 0, _image1000_size, 0, 0, 0, 0}, + {0x33, 0, _image1001_size, 0, 0, 0, 0}, + {0x33, 0, _image1002_size, 0, 0, 0, 0}, + {0x33, 0, _image1003_size, 0, 0, 0, 0}, + {0x33, 0, _image1004_size, 0, 0, 0, 0}, + { 0, 0, _image1005_size, 0, 0, 0, 0}, + { 0, 0, _image1006_size, 0, 0, 0, 0}, + { 0, 0, _image1007_size, 0, 0, 0, 0}, + { 0, 0, _image1008_size, 0, 0, 0, 0}, + { 0, 0, _image1009_size, 0, 0, 0, 0}, + {0x77, 0, _image1010_size, 0, 0, 0, 0}, + {0x77, 0, _image1011_size, 0, 0, 0, 0}, + {0xAA, 0, _image1012_size, 0, 0, 0, 0}, + {0xAA, 0, _image1013_size, 0, 0, 0, 0}, + {0xAA, 0, _image1014_size, 0, 0, 0, 0}, + { 0, 0, _image1015_size, 0, 0, 0, 0}, + { 0, 0, _image1016_size, 0, 0, 0, 0}, + {0x33, 0, _image1017_size, 0, 0, 0, 0}, + {0x33, 0, _image1018_size, 0, 0, 0, 0}, + {0x33, 0, _image1019_size, 0, 0, 0, 0}, + {0x77, 0, _image1020_size, 0, 0, 0, 0}, + { 0, 0, _image1021_size, 0, 0, 0, 0}, + {0xAA, 0, _image1022_size, 0, 0, 0, 0}, + {0x11, 0, _image1023_size, 0, 0, 0, 0}, + {0x22, 0, _image1024_size, 0, 0, 0, 0}, + {0x22, 0, _image1025_size, 0, 0, 0, 0}, + { 0, 0, _image1026_size, 0, 0, 0, 0}, + {0xAA, 0, _image1027_size, 0, 0, 0, 0}, + { 0, 0, _image1028_size, 0, 0, 0, 0}, + { 0, 0, _image1029_size, 0, 0, 0, 0}, + { 0, 0, _image1030_size, 0, 0, 0, 0}, + { 0, 0, _image1031_size, 0, 0, 0, 0}, + {0xAA, 0, _image1032_size, 0, 0, 0, 0}, + { 0, 0, _image1033_size, 0, 0, 0, 0}, + { 0, 0, _image1034_size, 0, 0, 0, 0}, + { 0, 0, _image1035_size, 0, 0, 0, 0}, + { 0, 0, _image1036_size, 0, 0, 0, 0}, + { 0, 0, _image1037_size, 0, 0, 0, 0}, + { 0, 0, _image1038_size, 0, 0, 0, 0}, + { 0, 0, _image1039_size, 0, 0, 0, 0}, + { 0, 0, _image1040_size, 0, 0, 0, 0}, + { 0, 0, _image1041_size, 0, 0, 0, 0}, + { 0, 0, _image1042_size, 0, 0, 0, 0}, + { 0, 0, _image1043_size, 0, 0, 0, 0}, + { 0, 0, _image1044_size, 0, 0, 0, 0}, + { 0, 0, _image1045_size, 0, 0, 0, 0}, + { 0, 0, _image1046_size, 0, 0, 0, 0}, + { 0, 0, _image1047_size, 0, 0, 0, 0}, + { 0, 0, _image1048_size, 0, 0, 0, 0}, + {0x11, 0, _image1049_size, 0, 0, 0, 0}, + { 0, 0, _image1050_size, 0, 0, 0, 0}, + { 0, 0, _image1051_size, 0, 0, 0, 0}, + { 0, 0, _image1052_size, 0, 0, 0, 0}, + { 0, 0, _image1053_size, 0, 0, 0, 0}, + { 0, 0, _image1054_size, 0, 0, 0, 0}, + { 0, 0, _image1055_size, 0, 0, 0, 0}, + { 0, 0, _image1056_size, 0, 0, 0, 0}, + { 0, 0, _image1057_size, 0, 0, 0, 0}, + { 0, 0, _image1058_size, 0, 0, 0, 0}, + { 0, 0, _image1059_size, 0, 0, 0, 0}, + { 0, 0, _image1060_size, 0, 0, 0, 0}, + { 0, 0, _image1061_size, 0, 0, 0, 0}, + { 0, 0, _image1062_size, 0, 0, 0, 0}, + {0xAA, 0, _image1063_size, 0, 0, 0, 0}, + {0xAA, 0, _image1064_size, 0, 0, 0, 0}, + {0xAA, 0, _image1065_size, 0, 0, 0, 0}, + {0xAA, 0, _image1066_size, 0, 0, 0, 0}, + { 0, 0, _image1067_size, 0, 0, 0, 0}, + { 0, 0, _image1068_size, 0, 0, 0, 0}, + {0xAA, 0, _image1069_size, 0, 0, 0, 0}, + {0xAA, 0, _image1070_size, 0, 0, 0, 0}, + {0xAA, 0, _image1071_size, 0, 0, 0, 0}, + {0xAA, 0, _image1072_size, 0, 0, 0, 0}, + {0xAA, 0, _image1073_size, 0, 0, 0, 0}, + {0xAA, 0, _image1074_size, 0, 0, 0, 0}, + {0xAA, 0, _image1075_size, 0, 0, 0, 0}, + {0xAA, 0, _image1076_size, 0, 0, 0, 0}, + {0xAA, 0, _image1077_size, 0, 0, 0, 0}, + {0x44, 0, _image1078_size, 0, 0, 0, 0}, + { 0, 0, _image1079_size, 0, 0, 0, 0}, + { 0, 0, _image1080_size, 0, 0, 0, 0}, + {0xAA, 0, _image1081_size, 0, 0, 0, 0}, + {0xAA, 0, _image1082_size, 0, 0, 0, 0}, + {0xAA, 0, _image1083_size, 0, 0, 0, 0}, + { 0, 0, _image1084_size, 0, 0, 0, 0}, + { 0, 0, _image1085_size, 0, 0, 0, 0}, + { 0, 0, _image1086_size, 0, 0, 0, 0}, + { 0, 0, _image1087_size, 0, 0, 0, 0}, + { 0, 0, _image1088_size, 0, 0, 0, 0}, + { 0, 0, _image1089_size, 0, 0, 0, 0}, + { 0, 0, _image1090_size, 0, 0, 0, 0}, + {0xAA, 0, _image1091_size, 0, 0, 0, 0}, + {0x33, 0, _image1092_size, 0, 0, 0, 0}, + {0x33, 0, _image1093_size, 0, 0, 0, 0}, + {0x33, 0, _image1094_size, 0, 0, 0, 0}, + {0x33, 0, _image1095_size, 0, 0, 0, 0}, + {0x33, 0, _image1096_size, 0, 0, 0, 0}, + {0x33, 0, _image1097_size, 0, 0, 0, 0}, + {0x33, 0, _image1098_size, 0, 0, 0, 0}, + {0x33, 0, _image1099_size, 0, 0, 0, 0}, + {0x33, 0, _image1100_size, 0, 0, 0, 0}, + {0x33, 0, _image1101_size, 0, 0, 0, 0}, + {0x33, 0, _image1102_size, 0, 0, 0, 0}, + { 0, 0, _image1103_size, 0, 0, 0, 0}, + { 0, 0, _image1104_size, 0, 0, 0, 0}, + { 0, 0, _image1105_size, 0, 0, 0, 0}, + { 0, 0, _image1106_size, 0, 0, 0, 0}, + { 0, 0, _image1107_size, 0, 0, 0, 0}, + { 0, 0, _image1108_size, 0, 0, 0, 0}, + { 0, 0, _image1109_size, 0, 0, 0, 0}, + { 0, 0, _image1110_size, 0, 0, 0, 0}, + { 0, 0, _image1111_size, 0, 0, 0, 0}, + { 0, 0, _image1112_size, 0, 0, 0, 0}, + { 0, 0, _image1113_size, 0, 0, 0, 0}, + { 0, 0, _image1114_size, 0, 0, 0, 0}, + { 0, 0, _image1115_size, 0, 0, 0, 0}, + { 0, 0, _image1116_size, 0, 0, 0, 0}, + {0x33, 0, _image1117_size, 0, 0, 0, 0}, + {0x33, 0, _image1118_size, 0, 0, 0, 0}, + { 0, 0, _image1119_size, 0, 0, 0, 0}, + {0x77, 0, _image1120_size, 0, 0, 0, 0}, + {0x77, 0, _image1121_size, 0, 0, 0, 0}, + {0x77, 0, _image1122_size, 0, 0, 0, 0}, + {0x77, 0, _image1123_size, 0, 0, 0, 0}, + {0x77, 0, _image1124_size, 0, 0, 0, 0}, + {0x77, 0, _image1125_size, 0, 0, 0, 0}, + { 0, 0, _image1126_size, 0, 0, 0, 0}, + { 0, 0, _image1127_size, 0, 0, 0, 0}, + {0x77, 0, _image1128_size, 0, 0, 0, 0}, + {0x11, 0, _image1129_size, 0, 0, 0, 0}, + {0x11, 0, _image1130_size, 0, 0, 0, 0}, + { 0, 0, _image1131_size, 0, 0, 0, 0}, + { 0, 0, _image1132_size, 0, 0, 0, 0}, + { 0, 0, _image1133_size, 0, 0, 0, 0}, + {0x11, 0, _image1134_size, 0, 0, 0, 0}, + {0x11, 0, _image1135_size, 0, 0, 0, 0}, + {0x22, 0, _image1136_size, 0, 0, 0, 0}, + {0x22, 0, _image1137_size, 0, 0, 0, 0}, + {0x22, 0, _image1138_size, 0, 0, 0, 0}, + {0x33, 0, _image1139_size, 0, 0, 0, 0}, + {0x33, 0, _image1140_size, 0, 0, 0, 0}, + {0x33, 0, _image1141_size, 0, 0, 0, 0}, + { 0, 0, _image1142_size, 0, 0, 0, 0}, + { 0, 0, _image1143_size, 0, 0, 0, 0}, + { 0, 0, _image1144_size, 0, 0, 0, 0}, + { 0, 0, _image1145_size, 0, 0, 0, 0}, + { 0, 0, _image1146_size, 0, 0, 0, 0}, + {0x77, 0, _image1147_size, 0, 0, 0, 0}, + { 0, 0, _image1148_size, 0, 0, 0, 0}, + { 0, 0, _image1149_size, 0, 0, 0, 0}, + { 0, 0, _image1150_size, 0, 0, 0, 0}, + {0x33, 0, _image1151_size, 0, 0, 0, 0}, + {0x33, 0, _image1152_size, 0, 0, 0, 0}, + {0x33, 0, _image1153_size, 0, 0, 0, 0}, + { 0, 0, _image1154_size, 0, 0, 0, 0}, + { 0, 0, _image1155_size, 0, 0, 0, 0}, + {0x77, 0, _image1156_size, 0, 0, 0, 0}, + {0xAA, 0, _image1157_size, 0, 0, 0, 0}, + {0x66, 0, _image1158_size, 0, 0, 0, 0}, + {0xAA, 0, _image1159_size, 0, 0, 0, 0}, + {0xAA, 0, _image1160_size, 0, 0, 0, 0}, + {0xAA, 0, _image1161_size, 0, 0, 0, 0}, + {0xAA, 0, _image1162_size, 0, 0, 0, 0}, + {0xAA, 0, _image1163_size, 0, 0, 0, 0}, + {0xAA, 0, _image1164_size, 0, 0, 0, 0}, + {0xAA, 0, _image1165_size, 0, 0, 0, 0}, + { 0, 0, _image1166_size, 0, 0, 0, 0}, + {0xAA, 0, _image1167_size, 0, 0, 0, 0}, + {0xAA, 0, _image1168_size, 0, 0, 0, 0}, + {0xAA, 0, _image1169_size, 0, 0, 0, 0}, + { 0, 0, _image1170_size, 0, 0, 0, 0}, + {0xAA, 0, _image1171_size, 0, 0, 0, 0}, + {0xAA, 0, _image1172_size, 0, 0, 0, 0}, + { 0, 0, _image1173_size, 0, 0, 0, 0}, + {0x11, 0, _image1174_size, 0, 0, 0, 0}, + {0x11, 0, _image1175_size, 0, 0, 0, 0}, + {0x11, 0, _image1176_size, 0, 0, 0, 0}, + {0x33, 0, _image1177_size, 0, 0, 0, 0}, + {0x33, 0, _image1178_size, 0, 0, 0, 0}, + {0x33, 0, _image1179_size, 0, 0, 0, 0}, + {0x33, 0, _image1180_size, 0, 0, 0, 0}, + {0x33, 0, _image1181_size, 0, 0, 0, 0}, + {0x33, 0, _image1182_size, 0, 0, 0, 0}, + {0x33, 0, _image1183_size, 0, 0, 0, 0}, + {0x33, 0, _image1184_size, 0, 0, 0, 0}, + { 0, 0, _image1185_size, 0, 0, 0, 0}, + { 0, 0, _image1186_size, 0, 0, 0, 0}, + { 0, 0, _image1187_size, 0, 0, 0, 0}, + { 0, 0, _image1188_size, 0, 0, 0, 0}, + { 0, 0, _image1189_size, 0, 0, 0, 0}, + { 0, 0, _image1190_size, 0, 0, 0, 0}, + { 0, 0, _image1191_size, 0, 0, 0, 0}, + {0xAA, 0, _image1192_size, 0, 0, 0, 0}, + { 0, 0, _image1193_size, 0, 0, 0, 0}, + {0xAA, 0, _image1194_size, 0, 0, 0, 0}, + {0x33, 0, _image1195_size, 0, 0, 0, 0}, + {0xAA, 0, _image1196_size, 0, 0, 0, 0}, + { 0, 0, _image1197_size, 0, 0, 0, 0}, + {0x33, 0, _image1198_size, 0, 0, 0, 0}, + { 0, 0, _image1199_size, 0, 0, 0, 0}, + { 0, 0, _image1200_size, 0, 0, 0, 0}, + { 0, 0, _image1201_size, 0, 0, 0, 0}, + { 0, 0, _image1202_size, 0, 0, 0, 0}, + {0x33, 0, _image1203_size, 0, 0, 0, 0}, + {0x22, 0, _image1204_size, 0, 0, 0, 0}, + {0x22, 0, _image1205_size, 0, 0, 0, 0}, + {0x22, 0, _image1206_size, 0, 0, 0, 0}, + { 0, 0, _image1207_size, 0, 0, 0, 0}, + { 0, 0, _image1208_size, 0, 0, 0, 0}, + { 0, 0, _image1209_size, 0, 0, 0, 0}, + { 0, 0, _image1210_size, 0, 0, 0, 0}, + { 0, 0, _image1211_size, 0, 0, 0, 0}, + { 0, 0, _image1212_size, 0, 0, 0, 0}, + { 0, 0, _image1213_size, 0, 0, 0, 0}, + { 0, 0, _image1214_size, 0, 0, 0, 0}, + {0xAA, 0, _image1215_size, 0, 0, 0, 0}, + {0x22, 0, _image1216_size, 0, 0, 0, 0}, + {0x22, 0, _image1217_size, 0, 0, 0, 0}, + { 0, 0, _image1218_size, 0, 0, 0, 0}, + { 0, 0, _image1219_size, 0, 0, 0, 0}, + { 0, 0, _image1220_size, 0, 0, 0, 0}, + {0x33, 0, _image1221_size, 0, 0, 0, 0}, + { 0, 0, _image1222_size, 0, 0, 0, 0}, + { 0, 0, _image1223_size, 0, 0, 0, 0}, + { 0, 0, _image1224_size, 0, 0, 0, 0}, + { 0, 0, _image1225_size, 0, 0, 0, 0}, + { 0, 0, _image1226_size, 0, 0, 0, 0}, + { 0, 0, _image1227_size, 0, 0, 0, 0}, + { 0, 0, _image1228_size, 0, 0, 0, 0}, + { 0, 0, _image1229_size, 0, 0, 0, 0}, + { 0, 0, _image1230_size, 0, 0, 0, 0}, + {0x33, 0, _image1231_size, 0, 0, 0, 0}, + {0x33, 0, _image1232_size, 0, 0, 0, 0}, + {0x33, 0, _image1233_size, 0, 0, 0, 0}, + {0x33, 0, _image1234_size, 0, 0, 0, 0}, + {0x33, 0, _image1235_size, 0, 0, 0, 0}, + {0x33, 0, _image1236_size, 0, 0, 0, 0}, + {0x33, 0, _image1237_size, 0, 0, 0, 0}, + {0x33, 0, _image1238_size, 0, 0, 0, 0}, + {0x33, 0, _image1239_size, 0, 0, 0, 0}, + {0x33, 0, _image1240_size, 0, 0, 0, 0}, + {0x33, 0, _image1241_size, 0, 0, 0, 0}, + {0x33, 0, _image1242_size, 0, 0, 0, 0}, + {0xAA, 0, _image1243_size, 0, 0, 0, 0}, + {0x33, 0, _image1244_size, 0, 0, 0, 0}, + {0x33, 0, _image1245_size, 0, 0, 0, 0}, + {0x33, 0, _image1246_size, 0, 0, 0, 0}, + {0x33, 0, _image1247_size, 0, 0, 0, 0}, + { 0, 0, _image1248_size, 0, 0, 0, 0}, + {0x33, 0, _image1249_size, 0, 0, 0, 0}, + { 0, 0, _image1250_size, 0, 0, 0, 0}, + { 0, 0, _image1251_size, 0, 0, 0, 0}, + { 0, 0, _image1252_size, 0, 0, 0, 0}, + { 0, 0, _image1253_size, 0, 0, 0, 0}, + { 0, 0, _image1254_size, 0, 0, 0, 0}, + { 0, 0, _image1255_size, 0, 0, 0, 0}, + { 0, 0, _image1256_size, 0, 0, 0, 0}, + {0x22, 0, _image1257_size, 0, 0, 0, 0}, + { 0, 0, _image1258_size, 0, 0, 0, 0}, + { 0, 0, _image1259_size, 0, 0, 0, 0}, + { 0, 0, _image1260_size, 0, 0, 0, 0}, + {0x44, 0, _image1261_size, 0, 0, 0, 0}, + {0x22, 0, _image1262_size, 0, 0, 0, 0}, + {0xAA, 0, _image1263_size, 0, 0, 0, 0}, + {0x11, 0, _image1264_size, 0, 0, 0, 0}, + {0x11, 0, _image1265_size, 0, 0, 0, 0}, + {0x11, 0, _image1266_size, 0, 0, 0, 0}, + {0x11, 0, _image1267_size, 0, 0, 0, 0}, + {0x11, 0, _image1268_size, 0, 0, 0, 0}, + { 0, 0, _image1269_size, 0, 0, 0, 0}, + {0xAA, 0, _image1270_size, 0, 0, 0, 0}, + { 0, 0, _image1271_size, 0, 0, 0, 0}, + { 0, 0, _image1272_size, 0, 0, 0, 0}, + { 0, 0, _image1273_size, 0, 0, 0, 0}, + { 0, 0, _image1274_size, 0, 0, 0, 0}, + { 0, 0, _image1275_size, 0, 0, 0, 0}, + { 0, 0, _image1276_size, 0, 0, 0, 0}, + { 0, 0, _image1277_size, 0, 0, 0, 0}, + { 0, 0, _image1278_size, 0, 0, 0, 0}, + { 0, 0, _image1279_size, 0, 0, 0, 0}, + { 0, 0, _image1280_size, 0, 0, 0, 0}, + {0x11, 0, _image1281_size, 0, 0, 0, 0}, + {0x22, 0, _image1282_size, 0, 0, 0, 0}, + {0x22, 0, _image1283_size, 0, 0, 0, 0}, + { 0, 0, _image1284_size, 0, 0, 0, 0}, + { 0, 0, _image1285_size, 0, 0, 0, 0}, + {0x11, 0, _image1286_size, 0, 0, 0, 0}, + {0x11, 0, _image1287_size, 0, 0, 0, 0}, + {0x11, 0, _image1288_size, 0, 0, 0, 0}, + {0x11, 0, _image1289_size, 0, 0, 0, 0}, + {0x11, 0, _image1290_size, 0, 0, 0, 0}, + {0x11, 0, _image1291_size, 0, 0, 0, 0}, + {0x11, 0, _image1292_size, 0, 0, 0, 0}, + {0x11, 0, _image1293_size, 0, 0, 0, 0}, + {0x11, 0, _image1294_size, 0, 0, 0, 0}, + {0x11, 0, _image1295_size, 0, 0, 0, 0}, + {0x11, 0, _image1296_size, 0, 0, 0, 0}, + {0x11, 0, _image1297_size, 0, 0, 0, 0}, + {0x11, 0, _image1298_size, 0, 0, 0, 0}, + {0x11, 0, _image1299_size, 0, 0, 0, 0}, + {0x11, 0, _image1300_size, 0, 0, 0, 0}, + {0x11, 0, _image1301_size, 0, 0, 0, 0}, + {0x11, 0, _image1302_size, 0, 0, 0, 0}, + {0x11, 0, _image1303_size, 0, 0, 0, 0}, + {0x11, 0, _image1304_size, 0, 0, 0, 0}, + {0x11, 0, _image1305_size, 0, 0, 0, 0}, + {0x11, 0, _image1306_size, 0, 0, 0, 0}, + {0x11, 0, _image1307_size, 0, 0, 0, 0}, + {0x11, 0, _image1308_size, 0, 0, 0, 0}, + {0x11, 0, _image1309_size, 0, 0, 0, 0}, + {0x11, 0, _image1310_size, 0, 0, 0, 0}, + {0x11, 0, _image1311_size, 0, 0, 0, 0}, + {0x11, 0, _image1312_size, 0, 0, 0, 0}, + {0x11, 0, _image1313_size, 0, 0, 0, 0}, + {0x11, 0, _image1314_size, 0, 0, 0, 0}, + {0x11, 0, _image1315_size, 0, 0, 0, 0}, + {0x11, 0, _image1316_size, 0, 0, 0, 0}, + {0x11, 0, _image1317_size, 0, 0, 0, 0}, + {0x11, 0, _image1318_size, 0, 0, 0, 0}, + {0x11, 0, _image1319_size, 0, 0, 0, 0}, + {0x11, 0, _image1320_size, 0, 0, 0, 0}, + {0x11, 0, _image1321_size, 0, 0, 0, 0}, + {0x11, 0, _image1322_size, 0, 0, 0, 0}, + {0x11, 0, _image1323_size, 0, 0, 0, 0}, + {0x11, 0, _image1324_size, 0, 0, 0, 0}, + {0x11, 0, _image1325_size, 0, 0, 0, 0}, + {0x11, 0, _image1326_size, 0, 0, 0, 0}, + {0x11, 0, _image1327_size, 0, 0, 0, 0}, + {0x11, 0, _image1328_size, 0, 0, 0, 0}, + {0x11, 0, _image1329_size, 0, 0, 0, 0}, + {0x11, 0, _image1330_size, 0, 0, 0, 0}, + {0x11, 0, _image1331_size, 0, 0, 0, 0}, + {0x11, 0, _image1332_size, 0, 0, 0, 0}, + {0x11, 0, _image1333_size, 0, 0, 0, 0}, + {0x11, 0, _image1334_size, 0, 0, 0, 0}, + {0x11, 0, _image1335_size, 0, 0, 0, 0}, + {0x11, 0, _image1336_size, 0, 0, 0, 0}, + {0x11, 0, _image1337_size, 0, 0, 0, 0}, + {0x11, 0, _image1338_size, 0, 0, 0, 0}, + {0x11, 0, _image1339_size, 0, 0, 0, 0}, + {0x11, 0, _image1340_size, 0, 0, 0, 0}, + {0x11, 0, _image1341_size, 0, 0, 0, 0}, + {0x11, 0, _image1342_size, 0, 0, 0, 0}, + {0x11, 0, _image1343_size, 0, 0, 0, 0}, + {0x11, 0, _image1344_size, 0, 0, 0, 0}, + {0x11, 0, _image1345_size, 0, 0, 0, 0}, + {0x11, 0, _image1346_size, 0, 0, 0, 0}, + {0x11, 0, _image1347_size, 0, 0, 0, 0}, + {0x11, 0, _image1348_size, 0, 0, 0, 0}, + {0x11, 0, _image1349_size, 0, 0, 0, 0}, + {0x11, 0, _image1350_size, 0, 0, 0, 0}, + {0x11, 0, _image1351_size, 0, 0, 0, 0}, + {0x11, 0, _image1352_size, 0, 0, 0, 0}, + {0x11, 0, _image1353_size, 0, 0, 0, 0}, + {0x11, 0, _image1354_size, 0, 0, 0, 0}, + {0x11, 0, _image1355_size, 0, 0, 0, 0}, + {0x11, 0, _image1356_size, 0, 0, 0, 0}, + { 0, 0, _image1357_size, 0, 0, 0, 0}, + { 0, 0, _image1358_size, 0, 0, 0, 0}, + {0x11, 0, _image1359_size, 0, 0, 0, 0}, + {0x11, 0, _image1360_size, 0, 0, 0, 0}, + {0x11, 0, _image1361_size, 0, 0, 0, 0}, + {0x11, 0, _image1362_size, 0, 0, 0, 0}, + {0x11, 0, _image1363_size, 0, 0, 0, 0}, + {0x11, 0, _image1364_size, 0, 0, 0, 0}, + {0x11, 0, _image1365_size, 0, 0, 0, 0}, + { 0, 0, _image1366_size, 0, 0, 0, 0}, + { 0, 0, _image1367_size, 0, 0, 0, 0}, + {0x33, 0, _image1368_size, 0, 0, 0, 0}, + {0x33, 0, _image1369_size, 0, 0, 0, 0}, + {0x33, 0, _image1370_size, 0, 0, 0, 0}, + { 0, 0, _image1371_size, 0, 0, 0, 0}, + { 0, 0, _image1372_size, 0, 0, 0, 0}, + { 0, 0, _image1373_size, 0, 0, 0, 0}, + {0xAA, 0, _image1374_size, 0, 0, 0, 0}, + {0xAA, 0, _image1375_size, 0, 0, 0, 0}, + {0x33, 0, _image1376_size, 0, 0, 0, 0}, + {0x33, 0, _image1377_size, 0, 0, 0, 0}, + { 0, 0, _image1378_size, 0, 0, 0, 0}, + { 0, 0, _image1379_size, 0, 0, 0, 0}, + { 0, 0, _image1380_size, 0, 0, 0, 0}, + { 0, 0, _image1381_size, 0, 0, 0, 0}, + { 0, 0, _image1382_size, 0, 0, 0, 0}, + { 0, 0, _image1383_size, 0, 0, 0, 0}, + {0x44, 0, _image1384_size, 0, 0, 0, 0}, + { 0, 0, _image1385_size, 0, 0, 0, 0}, + {0xAA, 0, _image1386_size, 0, 0, 0, 0}, + {0xAA, 0, _image1387_size, 0, 0, 0, 0}, + {0xAA, 0, _image1388_size, 0, 0, 0, 0}, + { 0, 0, _image1389_size, 0, 0, 0, 0}, + { 0, 0, _image1390_size, 0, 0, 0, 0}, + { 0, 0, _image1391_size, 0, 0, 0, 0}, + { 0, 0, _image1392_size, 0, 0, 0, 0}, + { 0, 0, _image1393_size, 0, 0, 0, 0}, + { 0, 0, _image1394_size, 0, 0, 0, 0}, + { 0, 0, _image1395_size, 0, 0, 0, 0}, + { 0, 0, _image1396_size, 0, 0, 0, 0}, + { 0, 0, _image1397_size, 0, 0, 0, 0}, + { 0, 0, _image1398_size, 0, 0, 0, 0}, + { 0, 0, _image1399_size, 0, 0, 0, 0}, + { 0, 0, _image1400_size, 0, 0, 0, 0}, + { 0, 0, _image1401_size, 0, 0, 0, 0}, + { 0, 0, _image1402_size, 0, 0, 0, 0}, + { 0, 0, _image1403_size, 0, 0, 0, 0}, + { 0, 0, _image1404_size, 0, 0, 0, 0}, + { 0, 0, _image1405_size, 0, 0, 0, 0}, + { 0, 0, _image1406_size, 0, 0, 0, 0}, + { 0, 0, _image1407_size, 0, 0, 0, 0}, + { 0, 0, _image1408_size, 0, 0, 0, 0}, + { 0, 0, _image1409_size, 0, 0, 0, 0}, + { 0, 0, _image1410_size, 0, 0, 0, 0}, + { 0, 0, _image1411_size, 0, 0, 0, 0}, + { 0, 0, _image1412_size, 0, 0, 0, 0}, + { 0, 0, _image1413_size, 0, 0, 0, 0}, + { 0, 0, _image1414_size, 0, 0, 0, 0}, + { 0, 0, _image1415_size, 0, 0, 0, 0}, + { 0, 0, _image1416_size, 0, 0, 0, 0}, + { 0, 0, _image1417_size, 0, 0, 0, 0}, + { 0, 0, _image1418_size, 0, 0, 0, 0}, + {0x99, 0, _image1419_size, 0, 0, 0, 0}, + {0xAA, 0, _image1420_size, 0, 0, 0, 0}, + {0xAA, 0, _image1421_size, 0, 0, 0, 0}, + { 0, 0, _image1422_size, 0, 0, 0, 0}, + { 0, 0, _image1423_size, 0, 0, 0, 0}, + { 0, 0, _image1424_size, 0, 0, 0, 0}, + { 0, 0, _image1425_size, 0, 0, 0, 0}, + { 0, 0, _image1426_size, 0, 0, 0, 0}, + {0x33, 0, _image1427_size, 0, 0, 0, 0}, + { 0, 0, _image1428_size, 0, 0, 0, 0}, + { 0, 0, _image1429_size, 0, 0, 0, 0}, + { 0, 0, _image1430_size, 0, 0, 0, 0}, + {0x33, 0, _image1431_size, 0, 0, 0, 0}, + {0x33, 0, _image1432_size, 0, 0, 0, 0}, + {0x33, 0, _image1433_size, 0, 0, 0, 0}, + {0x33, 0, _image1434_size, 0, 0, 0, 0}, + {0x33, 0, _image1435_size, 0, 0, 0, 0}, + {0x44, 0, _image1436_size, 0, 0, 0, 0}, + {0x44, 0, _image1437_size, 0, 0, 0, 0}, + { 0, 0, _image1438_size, 0, 0, 0, 0}, + {0x33, 0, _image1439_size, 0, 0, 0, 0}, + {0x22, 0, _image1440_size, 0, 0, 0, 0}, + {0xAA, 0, _image1441_size, 0, 0, 0, 0}, + { 0, 0, _image1442_size, 0, 0, 0, 0}, + { 0, 0, _image1443_size, 0, 0, 0, 0}, + { 0, 0, _image1444_size, 0, 0, 0, 0}, + { 0, 0, _image1445_size, 0, 0, 0, 0}, + { 0, 0, _image1446_size, 0, 0, 0, 0}, + { 0, 0, _image1447_size, 0, 0, 0, 0}, + { 0, 0, _image1448_size, 0, 0, 0, 0}, + {0xAA, 0, _image1449_size, 0, 0, 0, 0}, + {0x44, 0, _image1450_size, 0, 0, 0, 0}, + {0xAA, 0, _image1451_size, 0, 0, 0, 0}, + {0xAA, 0, _image1452_size, 0, 0, 0, 0}, + {0xAA, 0, _image1453_size, 0, 0, 0, 0}, + {0xAA, 0, _image1454_size, 0, 0, 0, 0}, + {0xAA, 0, _image1455_size, 0, 0, 0, 0}, + { 0, 0, _image1456_size, 0, 0, 0, 0}, + { 0, 0, _image1457_size, 0, 0, 0, 0}, + { 0, 0, _image1458_size, 0, 0, 0, 0}, + { 0, 0, _image1459_size, 0, 0, 0, 0}, + { 0, 0, _image1460_size, 0, 0, 0, 0}, + {0xAA, 0, _image1461_size, 0, 0, 0, 0}, + {0x33, 0, _image1462_size, 0, 0, 0, 0}, + {0x33, 0, _image1463_size, 0, 0, 0, 0}, + {0x33, 0, _image1464_size, 0, 0, 0, 0}, + {0x33, 0, _image1465_size, 0, 0, 0, 0}, + {0x33, 0, _image1466_size, 0, 0, 0, 0}, + { 0, 0, _image1467_size, 0, 0, 0, 0}, + {0x33, 0, _image1468_size, 0, 0, 0, 0}, + {0x11, 0, _image1469_size, 0, 0, 0, 0}, + {0x11, 0, _image1470_size, 0, 0, 0, 0}, + {0x33, 0, _image1471_size, 0, 0, 0, 0}, + { 0, 0, _image1472_size, 0, 0, 0, 0}, + { 0, 0, _image1473_size, 0, 0, 0, 0}, + {0xAA, 0, _image1474_size, 0, 0, 0, 0}, + {0xAA, 0, _image1475_size, 0, 0, 0, 0}, + {0x11, 0, _image1476_size, 0, 0, 0, 0}, + {0x11, 0, _image1477_size, 0, 0, 0, 0}, + {0x11, 0, _image1478_size, 0, 0, 0, 0}, + {0x11, 0, _image1479_size, 0, 0, 0, 0}, + {0x11, 0, _image1480_size, 0, 0, 0, 0}, + { 0, 0, _image1481_size, 0, 0, 0, 0}, + { 0, 0, _image1482_size, 0, 0, 0, 0}, + { 0, 0, _image1483_size, 0, 0, 0, 0}, + { 0, 0, _image1484_size, 0, 0, 0, 0}, + {0x11, 0, _image1485_size, 0, 0, 0, 0}, + {0x11, 0, _image1486_size, 0, 0, 0, 0}, + {0x11, 0, _image1487_size, 0, 0, 0, 0}, + { 0, 0, _image1488_size, 0, 0, 0, 0}, + { 0, 0, _image1489_size, 0, 0, 0, 0}, + { 0, 0, _image1490_size, 0, 0, 0, 0}, + { 0, 0, _image1491_size, 0, 0, 0, 0}, + { 0, 0, _image1492_size, 0, 0, 0, 0}, + { 0, 0, _image1493_size, 0, 0, 0, 0}, + { 0, 0, _image1494_size, 0, 0, 0, 0}, + { 0, 0, _image1495_size, 0, 0, 0, 0}, + { 0, 0, _image1496_size, 0, 0, 0, 0}, + { 0, 0, _image1497_size, 0, 0, 0, 0}, + { 0, 0, _image1498_size, 0, 0, 0, 0}, + { 0, 0, _image1499_size, 0, 0, 0, 0}, + {0x22, 0, _image1500_size, 0, 0, 0, 0}, + {0x22, 0, _image1501_size, 0, 0, 0, 0}, + { 0, 0, _image1502_size, 0, 0, 0, 0}, + { 0, 0, _image1503_size, 0, 0, 0, 0}, + { 0, 0, _image1504_size, 0, 0, 0, 0}, + { 0, 0, _image1505_size, 0, 0, 0, 0}, + { 0, 0, _image1506_size, 0, 0, 0, 0}, + { 0, 0, _image1507_size, 0, 0, 0, 0}, + { 0, 0, _image1508_size, 0, 0, 0, 0}, + {0x55, 0, _image1509_size, 0, 0, 0, 0}, + {0x55, 0, _image1510_size, 0, 0, 0, 0}, + {0x55, 0, _image1511_size, 0, 0, 0, 0}, + {0x55, 0, _image1512_size, 0, 0, 0, 0}, + {0x55, 0, _image1513_size, 0, 0, 0, 0}, + { 0, 0, _image1514_size, 0, 0, 0, 0}, + { 0, 0, _image1515_size, 0, 0, 0, 0}, + {0x44, 0, _image1516_size, 0, 0, 0, 0}, + {0x44, 0, _image1517_size, 0, 0, 0, 0}, + {0x44, 0, _image1518_size, 0, 0, 0, 0}, + {0x44, 0, _image1519_size, 0, 0, 0, 0}, + {0x44, 0, _image1520_size, 0, 0, 0, 0}, + {0x44, 0, _image1521_size, 0, 0, 0, 0}, + {0x44, 0, _image1522_size, 0, 0, 0, 0}, + { 0, 0, _image1523_size, 0, 0, 0, 0}, + {0x22, 0, _image1524_size, 0, 0, 0, 0}, + {0x22, 0, _image1525_size, 0, 0, 0, 0}, + {0x22, 0, _image1526_size, 0, 0, 0, 0}, + {0x22, 0, _image1527_size, 0, 0, 0, 0}, + {0x22, 0, _image1528_size, 0, 0, 0, 0}, + {0x22, 0, _image1529_size, 0, 0, 0, 0}, + {0x22, 0, _image1530_size, 0, 0, 0, 0}, + {0x22, 0, _image1531_size, 0, 0, 0, 0}, + {0x22, 0, _image1532_size, 0, 0, 0, 0}, + {0x22, 0, _image1533_size, 0, 0, 0, 0}, + {0x22, 0, _image1534_size, 0, 0, 0, 0}, + {0x22, 0, _image1535_size, 0, 0, 0, 0}, + {0x22, 0, _image1536_size, 0, 0, 0, 0}, + {0x22, 0, _image1537_size, 0, 0, 0, 0}, + {0x22, 0, _image1538_size, 0, 0, 0, 0}, + {0x22, 0, _image1539_size, 0, 0, 0, 0}, + {0x22, 0, _image1540_size, 0, 0, 0, 0}, + {0x22, 0, _image1541_size, 0, 0, 0, 0}, + { 0, 0, _image1542_size, 0, 0, 0, 0}, + { 0, 0, _image1543_size, 0, 0, 0, 0}, + { 0, 0, _image1544_size, 0, 0, 0, 0}, + { 0, 0, _image1545_size, 0, 0, 0, 0}, + { 0, 0, _image1546_size, 0, 0, 0, 0}, + { 0, 0, _image1547_size, 0, 0, 0, 0}, + { 0, 0, _image1548_size, 0, 0, 0, 0}, + { 0, 0, _image1549_size, 0, 0, 0, 0}, + { 0, 0, _image1550_size, 0, 0, 0, 0}, + { 0, 0, _image1551_size, 0, 0, 0, 0}, + { 0, 0, _image1552_size, 0, 0, 0, 0}, + { 0, 0, _image1553_size, 0, 0, 0, 0}, + { 0, 0, _image1554_size, 0, 0, 0, 0}, + { 0, 0, _image1555_size, 0, 0, 0, 0}, + { 0, 0, _image1556_size, 0, 0, 0, 0}, + { 0, 0, _image1557_size, 0, 0, 0, 0}, + { 0, 0, _image1558_size, 0, 0, 0, 0}, + { 0, 0, _image1559_size, 0, 0, 0, 0}, + { 0, 0, _image1560_size, 0, 0, 0, 0}, + { 0, 0, _image1561_size, 0, 0, 0, 0}, + { 0, 0, _image1562_size, 0, 0, 0, 0}, + { 0, 0, _image1563_size, 0, 0, 0, 0}, + { 0, 0, _image1564_size, 0, 0, 0, 0}, + { 0, 0, _image1565_size, 0, 0, 0, 0}, + { 0, 0, _image1566_size, 0, 0, 0, 0}, + { 0, 0, _image1567_size, 0, 0, 0, 0}, + { 0, 0, _image1568_size, 0, 0, 0, 0}, + { 0, 0, _image1569_size, 0, 0, 0, 0}, + { 0, 0, _image1570_size, 0, 0, 0, 0}, + { 0, 0, _image1571_size, 0, 0, 0, 0}, + { 0, 0, _image1572_size, 0, 0, 0, 0}, + { 0, 0, _image1573_size, 0, 0, 0, 0}, + { 0, 0, _image1574_size, 0, 0, 0, 0}, + { 0, 0, _image1575_size, 0, 0, 0, 0}, + { 0, 0, _image1576_size, 0, 0, 0, 0}, + { 0, 0, _image1577_size, 0, 0, 0, 0}, + { 0, 0, _image1578_size, 0, 0, 0, 0}, + { 0, 0, _image1579_size, 0, 0, 0, 0}, + { 0, 0, _image1580_size, 0, 0, 0, 0}, + { 0, 0, _image1581_size, 0, 0, 0, 0}, + { 0, 0, _image1582_size, 0, 0, 0, 0}, + { 0, 0, _image1583_size, 0, 0, 0, 0}, + { 0, 0, _image1584_size, 0, 0, 0, 0}, + { 0, 0, _image1585_size, 0, 0, 0, 0}, + { 0, 0, _image1586_size, 0, 0, 0, 0}, + { 0, 0, _image1587_size, 0, 0, 0, 0}, + { 0, 0, _image1588_size, 0, 0, 0, 0}, + { 0, 0, _image1589_size, 0, 0, 0, 0}, + { 0, 0, _image1590_size, 0, 0, 0, 0}, + { 0, 0, _image1591_size, 0, 0, 0, 0}, + { 0, 0, _image1592_size, 0, 0, 0, 0}, + { 0, 0, _image1593_size, 0, 0, 0, 0}, + { 0, 0, _image1594_size, 0, 0, 0, 0}, + { 0, 0, _image1595_size, 0, 0, 0, 0}, + { 0, 0, _image1596_size, 0, 0, 0, 0}, + { 0, 0, _image1597_size, 0, 0, 0, 0}, + { 0, 0, _image1598_size, 0, 0, 0, 0}, + { 0, 0, _image1599_size, 0, 0, 0, 0}, + { 0, 0, _image1600_size, 0, 0, 0, 0}, + { 0, 0, _image1601_size, 0, 0, 0, 0}, + { 0, 0, _image1602_size, 0, 0, 0, 0}, + { 0, 0, _image1603_size, 0, 0, 0, 0}, + { 0, 0, _image1604_size, 0, 0, 0, 0}, + { 0, 0, _image1605_size, 0, 0, 0, 0}, + { 0, 0, _image1606_size, 0, 0, 0, 0}, + { 0, 0, _image1607_size, 0, 0, 0, 0}, + { 0, 0, _image1608_size, 0, 0, 0, 0}, + { 0, 0, _image1609_size, 0, 0, 0, 0}, + { 0, 0, _image1610_size, 0, 0, 0, 0}, + { 0, 0, _image1611_size, 0, 0, 0, 0}, + { 0, 0, _image1612_size, 0, 0, 0, 0}, + { 0, 0, _image1613_size, 0, 0, 0, 0}, + { 0, 0, _image1614_size, 0, 0, 0, 0}, + { 0, 0, _image1615_size, 0, 0, 0, 0}, + { 0, 0, _image1616_size, 0, 0, 0, 0}, + { 0, 0, _image1617_size, 0, 0, 0, 0}, + { 0, 0, _image1618_size, 0, 0, 0, 0}, + { 0, 0, _image1619_size, 0, 0, 0, 0}, + { 0, 0, _image1620_size, 0, 0, 0, 0}, + { 0, 0, _image1621_size, 0, 0, 0, 0}, + { 0, 0, _image1622_size, 0, 0, 0, 0}, + { 0, 0, _image1623_size, 0, 0, 0, 0}, + { 0, 0, _image1624_size, 0, 0, 0, 0}, + { 0, 0, _image1625_size, 0, 0, 0, 0}, + { 0, 0, _image1626_size, 0, 0, 0, 0}, + { 0, 0, _image1627_size, 0, 0, 0, 0}, + { 0, 0, _image1628_size, 0, 0, 0, 0}, + { 0, 0, _image1629_size, 0, 0, 0, 0}, + { 0, 0, _image1630_size, 0, 0, 0, 0}, + { 0, 0, _image1631_size, 0, 0, 0, 0}, + { 0, 0, _image1632_size, 0, 0, 0, 0}, + { 0, 0, _image1633_size, 0, 0, 0, 0}, + { 0, 0, _image1634_size, 0, 0, 0, 0}, + { 0, 0, _image1635_size, 0, 0, 0, 0}, + { 0, 0, _image1636_size, 0, 0, 0, 0}, + { 0, 0, _image1637_size, 0, 0, 0, 0}, + { 0, 0, _image1638_size, 0, 0, 0, 0}, + { 0, 0, _image1639_size, 0, 0, 0, 0}, + { 0, 0, _image1640_size, 0, 0, 0, 0}, + { 0, 0, _image1641_size, 0, 0, 0, 0}, + { 0, 0, _image1642_size, 0, 0, 0, 0}, + { 0, 0, _image1643_size, 0, 0, 0, 0}, + { 0, 0, _image1644_size, 0, 0, 0, 0}, + { 0, 0, _image1645_size, 0, 0, 0, 0}, + { 0, 0, _image1646_size, 0, 0, 0, 0}, + { 0, 0, _image1647_size, 0, 0, 0, 0}, + { 0, 0, _image1648_size, 0, 0, 0, 0}, + { 0, 0, _image1649_size, 0, 0, 0, 0}, + { 0, 0, _image1650_size, 0, 0, 0, 0}, + { 0, 0, _image1651_size, 0, 0, 0, 0}, + { 0, 0, _image1652_size, 0, 0, 0, 0}, + {0x33, 0, _image1653_size, 0, 0, 0, 0}, + { 0, 0, _image1654_size, 0, 0, 0, 0}, + { 0, 0, _image1655_size, 0, 0, 0, 0}, + { 0, 0, _image1656_size, 0, 0, 0, 0}, + { 0, 0, _image1657_size, 0, 0, 0, 0}, + { 0, 0, _image1658_size, 0, 0, 0, 0}, + { 0, 0, _image1659_size, 0, 0, 0, 0}, + { 0, 0, _image1660_size, 0, 0, 0, 0}, + { 0, 0, _image1661_size, 0, 0, 0, 0}, + { 0, 0, _image1662_size, 0, 0, 0, 0}, + { 0, 0, _image1663_size, 0, 0, 0, 0}, + { 0, 0, _image1664_size, 0, 0, 0, 0}, + { 0, 0, _image1665_size, 0, 0, 0, 0}, + { 0, 0, _image1666_size, 0, 0, 0, 0}, + {0x33, 0, _image1667_size, 0, 0, 0, 0}, + {0x33, 0, _image1668_size, 0, 0, 0, 0}, + {0xAA, 0, _image1669_size, 0, 0, 0, 0}, + {0x33, 0, _image1670_size, 0, 0, 0, 0}, + {0x33, 0, _image1671_size, 0, 0, 0, 0}, + { 0, 0, _image1672_size, 0, 0, 0, 0}, + { 0, 0, _image1673_size, 0, 0, 0, 0}, + { 0, 0, _image1674_size, 0, 0, 0, 0}, + { 0, 0, _image1675_size, 0, 0, 0, 0}, + { 0, 0, _image1676_size, 0, 0, 0, 0}, + { 0, 0, _image1677_size, 0, 0, 0, 0}, + { 0, 0, _image1678_size, 0, 0, 0, 0}, + { 0, 0, _image1679_size, 0, 0, 0, 0}, + { 0, 0, _image1680_size, 0, 0, 0, 0}, + { 0, 0, _image1681_size, 0, 0, 0, 0}, + { 0, 0, _image1682_size, 0, 0, 0, 0}, + { 0, 0, _image1683_size, 0, 0, 0, 0}, + { 0, 0, _image1684_size, 0, 0, 0, 0}, + { 0, 0, _image1685_size, 0, 0, 0, 0}, + { 0, 0, _image1686_size, 0, 0, 0, 0}, + { 0, 0, _image1687_size, 0, 0, 0, 0}, + { 0, 0, _image1688_size, 0, 0, 0, 0}, + { 0, 0, _image1689_size, 0, 0, 0, 0}, + { 0, 0, _image1690_size, 0, 0, 0, 0}, + { 0, 0, _image1691_size, 0, 0, 0, 0}, + { 0, 0, _image1692_size, 0, 0, 0, 0}, + { 0, 0, _image1693_size, 0, 0, 0, 0}, + { 0, 0, _image1694_size, 0, 0, 0, 0}, + { 0, 0, _image1695_size, 0, 0, 0, 0}, + { 0, 0, _image1696_size, 0, 0, 0, 0}, + { 0, 0, _image1697_size, 0, 0, 0, 0}, + { 0, 0, _image1698_size, 0, 0, 0, 0}, + { 0, 0, _image1699_size, 0, 0, 0, 0}, + { 0, 0, _image1700_size, 0, 0, 0, 0}, + { 0, 0, _image1701_size, 0, 0, 0, 0}, + { 0, 0, _image1702_size, 0, 0, 0, 0}, + { 0, 0, _image1703_size, 0, 0, 0, 0}, + { 0, 0, _image1704_size, 0, 0, 0, 0}, + { 0, 0, _image1705_size, 0, 0, 0, 0}, + { 0, 0, _image1706_size, 0, 0, 0, 0}, + { 0, 0, _image1707_size, 0, 0, 0, 0}, + { 0, 0, _image1708_size, 0, 0, 0, 0}, + { 0, 0, _image1709_size, 0, 0, 0, 0}, + { 0, 0, _image1710_size, 0, 0, 0, 0}, + { 0, 0, _image1711_size, 0, 0, 0, 0}, + { 0, 0, _image1712_size, 0, 0, 0, 0}, + { 0, 0, _image1713_size, 0, 0, 0, 0}, + { 0, 0, _image1714_size, 0, 0, 0, 0}, + { 0, 0, _image1715_size, 0, 0, 0, 0}, + { 0, 0, _image1716_size, 0, 0, 0, 0}, + { 0, 0, _image1717_size, 0, 0, 0, 0}, + { 0, 0, _image1718_size, 0, 0, 0, 0}, + { 0, 0, _image1719_size, 0, 0, 0, 0}, + { 0, 0, _image1720_size, 0, 0, 0, 0}, + { 0, 0, _image1721_size, 0, 0, 0, 0}, + { 0, 0, _image1722_size, 0, 0, 0, 0}, + { 0, 0, _image1723_size, 0, 0, 0, 0}, + { 0, 0, _image1724_size, 0, 0, 0, 0}, + { 0, 0, _image1725_size, 0, 0, 0, 0}, + { 0, 0, _image1726_size, 0, 0, 0, 0}, + { 0, 0, _image1727_size, 0, 0, 0, 0}, + { 0, 0, _image1728_size, 0, 0, 0, 0}, + { 0, 0, _image1729_size, 0, 0, 0, 0}, + {0x33, 0, _image1730_size, 0, 0, 0, 0}, + {0x33, 0, _image1731_size, 0, 0, 0, 0}, + {0x33, 0, _image1732_size, 0, 0, 0, 0}, + {0x33, 0, _image1733_size, 0, 0, 0, 0}, + { 0, 0, _image1734_size, 0, 0, 0, 0}, + { 0, 0, _image1735_size, 0, 0, 0, 0}, + { 0, 0, _image1736_size, 0, 0, 0, 0}, + { 0, 0, _image1737_size, 0, 0, 0, 0}, + { 0, 0, _image1738_size, 0, 0, 0, 0}, + { 0, 0, _image1739_size, 0, 0, 0, 0}, + { 0, 0, _image1740_size, 0, 0, 0, 0}, + { 0, 0, _image1741_size, 0, 0, 0, 0}, + { 0, 0, _image1742_size, 0, 0, 0, 0}, + { 0, 0, _image1743_size, 0, 0, 0, 0}, + { 0, 0, _image1744_size, 0, 0, 0, 0}, + { 0, 0, _image1745_size, 0, 0, 0, 0}, + { 0, 0, _image1746_size, 0, 0, 0, 0}, + { 0, 0, _image1747_size, 0, 0, 0, 0}, + { 0, 0, _image1748_size, 0, 0, 0, 0}, + { 0, 0, _image1749_size, 0, 0, 0, 0}, + { 0, 0, _image1750_size, 0, 0, 0, 0}, + { 0, 0, _image1751_size, 0, 0, 0, 0}, + { 0, 0, _image1752_size, 0, 0, 0, 0}, + { 0, 0, _image1753_size, 0, 0, 0, 0}, + { 0, 0, _image1754_size, 0, 0, 0, 0}, + { 0, 0, _image1755_size, 0, 0, 0, 0}, + { 0, 0, _image1756_size, 0, 0, 0, 0}, + { 0, 0, _image1757_size, 0, 0, 0, 0}, + { 0, 0, _image1758_size, 0, 0, 0, 0}, + { 0, 0, _image1759_size, 0, 0, 0, 0}, + { 0, 0, _image1760_size, 0, 0, 0, 0}, + { 0, 0, _image1761_size, 0, 0, 0, 0}, + { 0, 0, _image1762_size, 0, 0, 0, 0}, + { 0, 0, _image1763_size, 0, 0, 0, 0}, + { 0, 0, _image1764_size, 0, 0, 0, 0}, + { 0, 0, _image1765_size, 0, 0, 0, 0}, + { 0, 0, _image1766_size, 0, 0, 0, 0}, + { 0, 0, _image1767_size, 0, 0, 0, 0}, + { 0, 0, _image1768_size, 0, 0, 0, 0}, + { 0, 0, _image1769_size, 0, 0, 0, 0}, + { 0, 0, _image1770_size, 0, 0, 0, 0}, + { 0, 0, _image1771_size, 0, 0, 0, 0}, + { 0, 0, _image1772_size, 0, 0, 0, 0}, + { 0, 0, _image1773_size, 0, 0, 0, 0}, + { 0, 0, _image1774_size, 0, 0, 0, 0}, + { 0, 0, _image1775_size, 0, 0, 0, 0}, + { 0, 0, _image1776_size, 0, 0, 0, 0}, + { 0, 0, _image1777_size, 0, 0, 0, 0}, + { 0, 0, _image1778_size, 0, 0, 0, 0}, + { 0, 0, _image1779_size, 0, 0, 0, 0}, + { 0, 0, _image1780_size, 0, 0, 0, 0}, + { 0, 0, _image1781_size, 0, 0, 0, 0}, + { 0, 0, _image1782_size, 0, 0, 0, 0}, + { 0, 0, _image1783_size, 0, 0, 0, 0}, + { 0, 0, _image1784_size, 0, 0, 0, 0}, + { 0, 0, _image1785_size, 0, 0, 0, 0}, + { 0, 0, _image1786_size, 0, 0, 0, 0}, + { 0, 0, _image1787_size, 0, 0, 0, 0}, + { 0, 0, _image1788_size, 0, 0, 0, 0}, + { 0, 0, _image1789_size, 0, 0, 0, 0}, + { 0, 0, _image1790_size, 0, 0, 0, 0}, + { 0, 0, _image1791_size, 0, 0, 0, 0}, + { 0, 0, _image1792_size, 0, 0, 0, 0}, + { 0, 0, _image1793_size, 0, 0, 0, 0}, + { 0, 0, _image1794_size, 0, 0, 0, 0}, + { 0, 0, _image1795_size, 0, 0, 0, 0}, + { 0, 0, _image1796_size, 0, 0, 0, 0}, + { 0, 0, _image1797_size, 0, 0, 0, 0}, + { 0, 0, _image1798_size, 0, 0, 0, 0}, + { 0, 0, _image1799_size, 0, 0, 0, 0}, + { 0, 0, _image1800_size, 0, 0, 0, 0}, + { 0, 0, _image1801_size, 0, 0, 0, 0}, + { 0, 0, _image1802_size, 0, 0, 0, 0}, + { 0, 0, _image1803_size, 0, 0, 0, 0}, + { 0, 0, _image1804_size, 0, 0, 0, 0}, + { 0, 0, _image1805_size, 0, 0, 0, 0}, + { 0, 0, _image1806_size, 0, 0, 0, 0}, + { 0, 0, _image1807_size, 0, 0, 0, 0}, + { 0, 0, _image1808_size, 0, 0, 0, 0}, + { 0, 0, _image1809_size, 0, 0, 0, 0}, + { 0, 0, _image1810_size, 0, 0, 0, 0}, + { 0, 0, _image1811_size, 0, 0, 0, 0}, + { 0, 0, _image1812_size, 0, 0, 0, 0}, + { 0, 0, _image1813_size, 0, 0, 0, 0}, + { 0, 0, _image1814_size, 0, 0, 0, 0}, + { 0, 0, _image1815_size, 0, 0, 0, 0}, + { 0, 0, _image1816_size, 0, 0, 0, 0}, + { 0, 0, _image1817_size, 0, 0, 0, 0}, + { 0, 0, _image1818_size, 0, 0, 0, 0}, + { 0, 0, _image1819_size, 0, 0, 0, 0}, + { 0, 0, _image1820_size, 0, 0, 0, 0}, + { 0, 0, _image1821_size, 0, 0, 0, 0}, + { 0, 0, _image1822_size, 0, 0, 0, 0}, + { 0, 0, _image1823_size, 0, 0, 0, 0}, + { 0, 0, _image1824_size, 0, 0, 0, 0}, + { 0, 0, _image1825_size, 0, 0, 0, 0}, + { 0, 0, _image1826_size, 0, 0, 0, 0}, + { 0, 0, _image1827_size, 0, 0, 0, 0}, + { 0, 0, _image1828_size, 0, 0, 0, 0}, + { 0, 0, _image1829_size, 0, 0, 0, 0}, + { 0, 0, _image1830_size, 0, 0, 0, 0}, + { 0, 0, _image1831_size, 0, 0, 0, 0}, + { 0, 0, _image1832_size, 0, 0, 0, 0}, + { 0, 0, _image1833_size, 0, 0, 0, 0}, + { 0, 0, _image1834_size, 0, 0, 0, 0}, + { 0, 0, _image1835_size, 0, 0, 0, 0}, + { 0, 0, _image1836_size, 0, 0, 0, 0}, + { 0, 0, _image1837_size, 0, 0, 0, 0}, + { 0, 0, _image1838_size, 0, 0, 0, 0}, + { 0, 0, _image1839_size, 0, 0, 0, 0}, + { 0, 0, _image1840_size, 0, 0, 0, 0}, + { 0, 0, _image1841_size, 0, 0, 0, 0}, + { 0, 0, _image1842_size, 0, 0, 0, 0}, + { 0, 0, _image1843_size, 0, 0, 0, 0}, + { 0, 0, _image1844_size, 0, 0, 0, 0}, + { 0, 0, _image1845_size, 0, 0, 0, 0}, + { 0, 0, _image1846_size, 0, 0, 0, 0}, + { 0, 0, _image1847_size, 0, 0, 0, 0}, + { 0, 0, _image1848_size, 0, 0, 0, 0}, + { 0, 0, _image1849_size, 0, 0, 0, 0}, + { 0, 0, _image1850_size, 0, 0, 0, 0}, + { 0, 0, _image1851_size, 0, 0, 0, 0}, + { 0, 0, _image1852_size, 0, 0, 0, 0}, + { 0, 0, _image1853_size, 0, 0, 0, 0}, + { 0, 0, _image1854_size, 0, 0, 0, 0}, + { 0, 0, _image1855_size, 0, 0, 0, 0}, + { 0, 0, _image1856_size, 0, 0, 0, 0}, + { 0, 0, _image1857_size, 0, 0, 0, 0}, + { 0, 0, _image1858_size, 0, 0, 0, 0}, + { 0, 0, _image1859_size, 0, 0, 0, 0}, + { 0, 0, _image1860_size, 0, 0, 0, 0}, + { 0, 0, _image1861_size, 0, 0, 0, 0}, + { 0, 0, _image1862_size, 0, 0, 0, 0}, + { 0, 0, _image1863_size, 0, 0, 0, 0}, + { 0, 0, _image1864_size, 0, 0, 0, 0}, + { 0, 0, _image1865_size, 0, 0, 0, 0}, + { 0, 0, _image1866_size, 0, 0, 0, 0}, + { 0, 0, _image1867_size, 0, 0, 0, 0}, + { 0, 0, _image1868_size, 0, 0, 0, 0}, + { 0, 0, _image1869_size, 0, 0, 0, 0}, + { 0, 0, _image1870_size, 0, 0, 0, 0}, + { 0, 0, _image1871_size, 0, 0, 0, 0}, + { 0, 0, _image1872_size, 0, 0, 0, 0}, + { 0, 0, _image1873_size, 0, 0, 0, 0}, + { 0, 0, _image1874_size, 0, 0, 0, 0}, + { 0, 0, _image1875_size, 0, 0, 0, 0}, + { 0, 0, _image1876_size, 0, 0, 0, 0}, + { 0, 0, _image1877_size, 0, 0, 0, 0}, + { 0, 0, _image1878_size, 0, 0, 0, 0}, + { 0, 0, _image1879_size, 0, 0, 0, 0}, + { 0, 0, _image1880_size, 0, 0, 0, 0}, + { 0, 0, _image1881_size, 0, 0, 0, 0}, + { 0, 0, _image1882_size, 0, 0, 0, 0}, + { 0, 0, _image1883_size, 0, 0, 0, 0}, + { 0, 0, _image1884_size, 0, 0, 0, 0}, + { 0, 0, _image1885_size, 0, 0, 0, 0}, + { 0, 0, _image1886_size, 0, 0, 0, 0}, + { 0, 0, _image1887_size, 0, 0, 0, 0}, + { 0, 0, _image1888_size, 0, 0, 0, 0}, + { 0, 0, _image1889_size, 0, 0, 0, 0}, + { 0, 0, _image1890_size, 0, 0, 0, 0}, + { 0, 0, _image1891_size, 0, 0, 0, 0}, + { 0, 0, _image1892_size, 0, 0, 0, 0}, + { 0, 0, _image1893_size, 0, 0, 0, 0}, + { 0, 0, _image1894_size, 0, 0, 0, 0}, + { 0, 0, _image1895_size, 0, 0, 0, 0}, + { 0, 0, _image1896_size, 0, 0, 0, 0}, + { 0, 0, _image1897_size, 0, 0, 0, 0}, + { 0, 0, _image1898_size, 0, 0, 0, 0}, + { 0, 0, _image1899_size, 0, 0, 0, 0}, + { 0, 0, _image1900_size, 0, 0, 0, 0}, + { 0, 0, _image1901_size, 0, 0, 0, 0}, + { 0, 0, _image1902_size, 0, 0, 0, 0}, + { 0, 0, _image1903_size, 0, 0, 0, 0}, + { 0, 0, _image1904_size, 0, 0, 0, 0}, + { 0, 0, _image1905_size, 0, 0, 0, 0}, + { 0, 0, _image1906_size, 0, 0, 0, 0}, + { 0, 0, _image1907_size, 0, 0, 0, 0}, + { 0, 0, _image1908_size, 0, 0, 0, 0}, + { 0, 0, _image1909_size, 0, 0, 0, 0}, + { 0, 0, _image1910_size, 0, 0, 0, 0}, + { 0, 0, _image1911_size, 0, 0, 0, 0}, + { 0, 0, _image1912_size, 0, 0, 0, 0}, + { 0, 0, _image1913_size, 0, 0, 0, 0}, + { 0, 0, _image1914_size, 0, 0, 0, 0}, + { 0, 0, _image1915_size, 0, 0, 0, 0}, + { 0, 0, _image1916_size, 0, 0, 0, 0}, + { 0, 0, _image1917_size, 0, 0, 0, 0}, + { 0, 0, _image1918_size, 0, 0, 0, 0}, + { 0, 0, _image1919_size, 0, 0, 0, 0}, + { 0, 0, _image1920_size, 0, 0, 0, 0}, + { 0, 0, _image1921_size, 0, 0, 0, 0}, + { 0, 0, _image1922_size, 0, 0, 0, 0}, + { 0, 0, _image1923_size, 0, 0, 0, 0}, + { 0, 0, _image1924_size, 0, 0, 0, 0}, + { 0, 0, _image1925_size, 0, 0, 0, 0}, + { 0, 0, _image1926_size, 0, 0, 0, 0}, + { 0, 0, _image1927_size, 0, 0, 0, 0}, + { 0, 0, _image1928_size, 0, 0, 0, 0}, + { 0, 0, _image1929_size, 0, 0, 0, 0}, + { 0, 0, _image1930_size, 0, 0, 0, 0}, + { 0, 0, _image1931_size, 0, 0, 0, 0}, + { 0, 0, _image1932_size, 0, 0, 0, 0}, + { 0, 0, _image1933_size, 0, 0, 0, 0}, + { 0, 0, _image1934_size, 0, 0, 0, 0}, + { 0, 0, _image1935_size, 0, 0, 0, 0}, + { 0, 0, _image1936_size, 0, 0, 0, 0}, + { 0, 0, _image1937_size, 0, 0, 0, 0}, + { 0, 0, _image1938_size, 0, 0, 0, 0}, + { 0, 0, _image1939_size, 0, 0, 0, 0}, + { 0, 0, _image1940_size, 0, 0, 0, 0}, + { 0, 0, _image1941_size, 0, 0, 0, 0}, + { 0, 0, _image1942_size, 0, 0, 0, 0}, + { 0, 0, _image1943_size, 0, 0, 0, 0}, + { 0, 0, _image1944_size, 0, 0, 0, 0}, + { 0, 0, _image1945_size, 0, 0, 0, 0}, + { 0, 0, _image1946_size, 0, 0, 0, 0}, + { 0, 0, _image1947_size, 0, 0, 0, 0}, + { 0, 0, _image1948_size, 0, 0, 0, 0}, + { 0, 0, _image1949_size, 0, 0, 0, 0}, + { 0, 0, _image1950_size, 0, 0, 0, 0}, + { 0, 0, _image1951_size, 0, 0, 0, 0}, + { 0, 0, _image1952_size, 0, 0, 0, 0}, + { 0, 0, _image1953_size, 0, 0, 0, 0}, + { 0, 0, _image1954_size, 0, 0, 0, 0}, + { 0, 0, _image1955_size, 0, 0, 0, 0}, + { 0, 0, _image1956_size, 0, 0, 0, 0}, + { 0, 0, _image1957_size, 0, 0, 0, 0}, + { 0, 0, _image1958_size, 0, 0, 0, 0}, + { 0, 0, _image1959_size, 0, 0, 0, 0}, + { 0, 0, _image1960_size, 0, 0, 0, 0}, + { 0, 0, _image1961_size, 0, 0, 0, 0}, + { 0, 0, _image1962_size, 0, 0, 0, 0}, + { 0, 0, _image1963_size, 0, 0, 0, 0}, + { 0, 0, _image1964_size, 0, 0, 0, 0}, + { 0, 0, _image1965_size, 0, 0, 0, 0}, + { 0, 0, _image1966_size, 0, 0, 0, 0}, + { 0, 0, _image1967_size, 0, 0, 0, 0}, + { 0, 0, _image1968_size, 0, 0, 0, 0}, + { 0, 0, _image1969_size, 0, 0, 0, 0}, + { 0, 0, _image1970_size, 0, 0, 0, 0}, + { 0, 0, _image1971_size, 0, 0, 0, 0}, + { 0, 0, _image1972_size, 0, 0, 0, 0}, + { 0, 0, _image1973_size, 0, 0, 0, 0}, + { 0, 0, _image1974_size, 0, 0, 0, 0}, + { 0, 0, _image1975_size, 0, 0, 0, 0}, + { 0, 0, _image1976_size, 0, 0, 0, 0}, + { 0, 0, _image1977_size, 0, 0, 0, 0}, + { 0, 0, _image1978_size, 0, 0, 0, 0}, + { 0, 0, _image1979_size, 0, 0, 0, 0}, + { 0, 0, _image1980_size, 0, 0, 0, 0}, + { 0, 0, _image1981_size, 0, 0, 0, 0}, + { 0, 0, _image1982_size, 0, 0, 0, 0}, + { 0, 0, _image1983_size, 0, 0, 0, 0}, + { 0, 0, _image1984_size, 0, 0, 0, 0}, + { 0, 0, _image1985_size, 0, 0, 0, 0}, + { 0, 0, _image1986_size, 0, 0, 0, 0}, + { 0, 0, _image1987_size, 0, 0, 0, 0}, + { 0, 0, _image1988_size, 0, 0, 0, 0}, + { 0, 0, _image1989_size, 0, 0, 0, 0}, + { 0, 0, _image1990_size, 0, 0, 0, 0}, + { 0, 0, _image1991_size, 0, 0, 0, 0}, + { 0, 0, _image1992_size, 0, 0, 0, 0}, + { 0, 0, _image1993_size, 0, 0, 0, 0}, + { 0, 0, _image1994_size, 0, 0, 0, 0}, + { 0, 0, _image1995_size, 0, 0, 0, 0}, + { 0, 0, _image1996_size, 0, 0, 0, 0}, + { 0, 0, _image1997_size, 0, 0, 0, 0}, + { 0, 0, _image1998_size, 0, 0, 0, 0}, + { 0, 0, _image1999_size, 0, 0, 0, 0}, + { 0, 0, _image2000_size, 0, 0, 0, 0}, + { 0, 0, _image2001_size, 0, 0, 0, 0}, + { 0, 0, _image2002_size, 0, 0, 0, 0}, + { 0, 0, _image2003_size, 0, 0, 0, 0}, + { 0, 0, _image2004_size, 0, 0, 0, 0}, + { 0, 0, _image2005_size, 0, 0, 0, 0}, + { 0, 0, _image2006_size, 0, 0, 0, 0}, + { 0, 0, _image2007_size, 0, 0, 0, 0}, + { 0, 0, _image2008_size, 0, 0, 0, 0}, + { 0, 0, _image2009_size, 0, 0, 0, 0}, + { 0, 0, _image2010_size, 0, 0, 0, 0}, + { 0, 0, _image2011_size, 0, 0, 0, 0}, + { 0, 0, _image2012_size, 0, 0, 0, 0}, + { 0, 0, _image2013_size, 0, 0, 0, 0}, + { 0, 0, _image2014_size, 0, 0, 0, 0}, + { 0, 0, _image2015_size, 0, 0, 0, 0}, + { 0, 0, _image2016_size, 0, 0, 0, 0}, + { 0, 0, _image2017_size, 0, 0, 0, 0}, + { 0, 0, _image2018_size, 0, 0, 0, 0}, + { 0, 0, _image2019_size, 0, 0, 0, 0}, + { 0, 0, _image2020_size, 0, 0, 0, 0}, + { 0, 0, _image2021_size, 0, 0, 0, 0}, + { 0, 0, _image2022_size, 0, 0, 0, 0}, + { 0, 0, _image2023_size, 0, 0, 0, 0}, + { 0, 0, _image2024_size, 0, 0, 0, 0}, + { 0, 0, _image2025_size, 0, 0, 0, 0}, + { 0, 0, _image2026_size, 0, 0, 0, 0}, + { 0, 0, _image2027_size, 0, 0, 0, 0}, + { 0, 0, _image2028_size, 0, 0, 0, 0}, + { 0, 0, _image2029_size, 0, 0, 0, 0}, + { 0, 0, _image2030_size, 0, 0, 0, 0}, + { 0, 0, _image2031_size, 0, 0, 0, 0}, + { 0, 0, _image2032_size, 0, 0, 0, 0}, + { 0, 0, _image2033_size, 0, 0, 0, 0}, + { 0, 0, _image2034_size, 0, 0, 0, 0}, + { 0, 0, _image2035_size, 0, 0, 0, 0}, + { 0, 0, _image2036_size, 0, 0, 0, 0}, + { 0, 0, _image2037_size, 0, 0, 0, 0}, + { 0, 0, _image2038_size, 0, 0, 0, 0}, + { 0, 0, _image2039_size, 0, 0, 0, 0}, + { 0, 0, _image2040_size, 0, 0, 0, 0}, + { 0, 0, _image2041_size, 0, 0, 0, 0}, + { 0, 0, _image2042_size, 0, 0, 0, 0}, + { 0, 0, _image2043_size, 0, 0, 0, 0}, + { 0, 0, _image2044_size, 0, 0, 0, 0}, + { 0, 0, _image2045_size, 0, 0, 0, 0}, + { 0, 0, _image2046_size, 0, 0, 0, 0}, + { 0, 0, _image2047_size, 0, 0, 0, 0}, + { 0, 0, _image2048_size, 0, 0, 0, 0}, + { 0, 0, _image2049_size, 0, 0, 0, 0}, + { 0, 0, _image2050_size, 0, 0, 0, 0}, + { 0, 0, _image2051_size, 0, 0, 0, 0}, + { 0, 0, _image2052_size, 0, 0, 0, 0}, + { 0, 0, _image2053_size, 0, 0, 0, 0}, + { 0, 0, _image2054_size, 0, 0, 0, 0}, + { 0, 0, _image2055_size, 0, 0, 0, 0}, + { 0, 0, _image2056_size, 0, 0, 0, 0}, + { 0, 0, _image2057_size, 0, 0, 0, 0}, + { 0, 0, _image2058_size, 0, 0, 0, 0}, + { 0, 0, _image2059_size, 0, 0, 0, 0}, + { 0, 0, _image2060_size, 0, 0, 0, 0}, + { 0, 0, _image2061_size, 0, 0, 0, 0}, + { 0, 0, _image2062_size, 0, 0, 0, 0}, + { 0, 0, _image2063_size, 0, 0, 0, 0}, + { 0, 0, _image2064_size, 0, 0, 0, 0}, + { 0, 0, _image2065_size, 0, 0, 0, 0}, + { 0, 0, _image2066_size, 0, 0, 0, 0}, + { 0, 0, _image2067_size, 0, 0, 0, 0}, + { 0, 0, _image2068_size, 0, 0, 0, 0}, + { 0, 0, _image2069_size, 0, 0, 0, 0}, + { 0, 0, _image2070_size, 0, 0, 0, 0}, + { 0, 0, _image2071_size, 0, 0, 0, 0}, + { 0, 0, _image2072_size, 0, 0, 0, 0}, + { 0, 0, _image2073_size, 0, 0, 0, 0}, + { 0, 0, _image2074_size, 0, 0, 0, 0}, + { 0, 0, _image2075_size, 0, 0, 0, 0}, + { 0, 0, _image2076_size, 0, 0, 0, 0}, + { 0, 0, _image2077_size, 0, 0, 0, 0}, + { 0, 0, _image2078_size, 0, 0, 0, 0}, + { 0, 0, _image2079_size, 0, 0, 0, 0}, + { 0, 0, _image2080_size, 0, 0, 0, 0}, + { 0, 0, _image2081_size, 0, 0, 0, 0}, + { 0, 0, _image2082_size, 0, 0, 0, 0}, + { 0, 0, _image2083_size, 0, 0, 0, 0}, + { 0, 0, _image2084_size, 0, 0, 0, 0}, + { 0, 0, _image2085_size, 0, 0, 0, 0}, + { 0, 0, _image2086_size, 0, 0, 0, 0}, + { 0, 0, _image2087_size, 0, 0, 0, 0}, + { 0, 0, _image2088_size, 0, 0, 0, 0}, + { 0, 0, _image2089_size, 0, 0, 0, 0}, + { 0, 0, _image2090_size, 0, 0, 0, 0}, + { 0, 0, _image2091_size, 0, 0, 0, 0}, + { 0, 0, _image2092_size, 0, 0, 0, 0}, + { 0, 0, _image2093_size, 0, 0, 0, 0}, + { 0, 0, _image2094_size, 0, 0, 0, 0}, + { 0, 0, _image2095_size, 0, 0, 0, 0}, + { 0, 0, _image2096_size, 0, 0, 0, 0}, + { 0, 0, _image2097_size, 0, 0, 0, 0}, + { 0, 0, _image2098_size, 0, 0, 0, 0}, + { 0, 0, _image2099_size, 0, 0, 0, 0}, + { 0, 0, _image2100_size, 0, 0, 0, 0}, + { 0, 0, _image2101_size, 0, 0, 0, 0}, + { 0, 0, _image2102_size, 0, 0, 0, 0}, + { 0, 0, _image2103_size, 0, 0, 0, 0}, + { 0, 0, _image2104_size, 0, 0, 0, 0}, + { 0, 0, _image2105_size, 0, 0, 0, 0}, + { 0, 0, _image2106_size, 0, 0, 0, 0}, + { 0, 0, _image2107_size, 0, 0, 0, 0}, + { 0, 0, _image2108_size, 0, 0, 0, 0}, + { 0, 0, _image2109_size, 0, 0, 0, 0}, + { 0, 0, _image2110_size, 0, 0, 0, 0}, + { 0, 0, _image2111_size, 0, 0, 0, 0}, + { 0, 0, _image2112_size, 0, 0, 0, 0}, + { 0, 0, _image2113_size, 0, 0, 0, 0}, + { 0, 0, _image2114_size, 0, 0, 0, 0}, + { 0, 0, _image2115_size, 0, 0, 0, 0}, + { 0, 0, _image2116_size, 0, 0, 0, 0}, + { 0, 0, _image2117_size, 0, 0, 0, 0}, + { 0, 0, _image2118_size, 0, 0, 0, 0}, + { 0, 0, _image2119_size, 0, 0, 0, 0}, + { 0, 0, _image2120_size, 0, 0, 0, 0}, + { 0, 0, _image2121_size, 0, 0, 0, 0}, + { 0, 0, _image2122_size, 0, 0, 0, 0}, + { 0, 0, _image2123_size, 0, 0, 0, 0}, + { 0, 0, _image2124_size, 0, 0, 0, 0}, + { 0, 0, _image2125_size, 0, 0, 0, 0}, + { 0, 0, _image2126_size, 0, 0, 0, 0}, + { 0, 0, _image2127_size, 0, 0, 0, 0}, + { 0, 0, _image2128_size, 0, 0, 0, 0}, + { 0, 0, _image2129_size, 0, 0, 0, 0}, + { 0, 0, _image2130_size, 0, 0, 0, 0}, + { 0, 0, _image2131_size, 0, 0, 0, 0}, + { 0, 0, _image2132_size, 0, 0, 0, 0}, + { 0, 0, _image2133_size, 0, 0, 0, 0}, + { 0, 0, _image2134_size, 0, 0, 0, 0}, + { 0, 0, _image2135_size, 0, 0, 0, 0}, + { 0, 0, _image2136_size, 0, 0, 0, 0}, + { 0, 0, _image2137_size, 0, 0, 0, 0}, + { 0, 0, _image2138_size, 0, 0, 0, 0}, + { 0, 0, _image2139_size, 0, 0, 0, 0}, + { 0, 0, _image2140_size, 0, 0, 0, 0}, + { 0, 0, _image2141_size, 0, 0, 0, 0}, + { 0, 0, _image2142_size, 0, 0, 0, 0}, + { 0, 0, _image2143_size, 0, 0, 0, 0}, + { 0, 0, _image2144_size, 0, 0, 0, 0}, + { 0, 0, _image2145_size, 0, 0, 0, 0}, + { 0, 0, _image2146_size, 0, 0, 0, 0}, + { 0, 0, _image2147_size, 0, 0, 0, 0}, + { 0, 0, _image2148_size, 0, 0, 0, 0}, + { 0, 0, _image2149_size, 0, 0, 0, 0}, + { 0, 0, _image2150_size, 0, 0, 0, 0}, + { 0, 0, _image2151_size, 0, 0, 0, 0}, + { 0, 0, _image2152_size, 0, 0, 0, 0}, + { 0, 0, _image2153_size, 0, 0, 0, 0}, + { 0, 0, _image2154_size, 0, 0, 0, 0}, + { 0, 0, _image2155_size, 0, 0, 0, 0}, + { 0, 0, _image2156_size, 0, 0, 0, 0}, + { 0, 0, _image2157_size, 0, 0, 0, 0}, + { 0, 0, _image2158_size, 0, 0, 0, 0}, + { 0, 0, _image2159_size, 0, 0, 0, 0}, + { 0, 0, _image2160_size, 0, 0, 0, 0}, + { 0, 0, _image2161_size, 0, 0, 0, 0}, + { 0, 0, _image2162_size, 0, 0, 0, 0}, + { 0, 0, _image2163_size, 0, 0, 0, 0}, + { 0, 0, _image2164_size, 0, 0, 0, 0}, + { 0, 0, _image2165_size, 0, 0, 0, 0}, + { 0, 0, _image2166_size, 0, 0, 0, 0}, + { 0, 0, _image2167_size, 0, 0, 0, 0}, + { 0, 0, _image2168_size, 0, 0, 0, 0}, + { 0, 0, _image2169_size, 0, 0, 0, 0}, + { 0, 0, _image2170_size, 0, 0, 0, 0}, + { 0, 0, _image2171_size, 0, 0, 0, 0}, + { 0, 0, _image2172_size, 0, 0, 0, 0}, + { 0, 0, _image2173_size, 0, 0, 0, 0}, + {0x11, 0, _image2174_size, 0, 0, 0, 0}, + {0x11, 0, _image2175_size, 0, 0, 0, 0}, + {0x11, 0, _image2176_size, 0, 0, 0, 0}, + { 0, 0, _image2177_size, 0, 0, 0, 0}, + { 0, 0, _image2178_size, 0, 0, 0, 0}, + { 0, 0, _image2179_size, 0, 0, 0, 0}, + { 0, 0, _image2180_size, 0, 0, 0, 0}, + { 0, 0, _image2181_size, 0, 0, 0, 0}, + { 0, 0, _image2182_size, 0, 0, 0, 0}, + { 0, 0, _image2183_size, 0, 0, 0, 0}, + { 0, 0, _image2184_size, 0, 0, 0, 0}, + { 0, 0, _image2185_size, 0, 0, 0, 0}, + { 0, 0, _image2186_size, 0, 0, 0, 0}, + { 0, 0, _image2187_size, 0, 0, 0, 0}, + { 0, 0, _image2188_size, 0, 0, 0, 0}, + { 0, 0, _image2189_size, 0, 0, 0, 0}, + { 0, 0, _image2190_size, 0, 0, 0, 0}, + { 0, 0, _image2191_size, 0, 0, 0, 0}, + { 0, 0, _image2192_size, 0, 0, 0, 0}, + { 0, 0, _image2193_size, 0, 0, 0, 0}, + { 0, 0, _image2194_size, 0, 0, 0, 0}, + { 0, 0, _image2195_size, 0, 0, 0, 0}, + { 0, 0, _image2196_size, 0, 0, 0, 0}, + { 0, 0, _image2197_size, 0, 0, 0, 0}, + { 0, 0, _image2198_size, 0, 0, 0, 0}, + { 0, 0, _image2199_size, 0, 0, 0, 0}, + { 0, 0, _image2200_size, 0, 0, 0, 0}, + { 0, 0, _image2201_size, 0, 0, 0, 0}, + { 0, 0, _image2202_size, 0, 0, 0, 0}, + { 0, 0, _image2203_size, 0, 0, 0, 0}, + { 0, 0, _image2204_size, 0, 0, 0, 0}, + { 0, 0, _image2205_size, 0, 0, 0, 0}, + { 0, 0, _image2206_size, 0, 0, 0, 0}, + { 0, 0, _image2207_size, 0, 0, 0, 0}, + { 0, 0, _image2208_size, 0, 0, 0, 0}, + { 0, 0, _image2209_size, 0, 0, 0, 0}, + { 0, 0, _image2210_size, 0, 0, 0, 0}, + { 0, 0, _image2211_size, 0, 0, 0, 0}, + { 0, 0, _image2212_size, 0, 0, 0, 0}, + { 0, 0, _image2213_size, 0, 0, 0, 0}, + { 0, 0, _image2214_size, 0, 0, 0, 0}, + { 0, 0, _image2215_size, 0, 0, 0, 0}, + { 0, 0, _image2216_size, 0, 0, 0, 0}, + { 0, 0, _image2217_size, 0, 0, 0, 0}, + { 0, 0, _image2218_size, 0, 0, 0, 0}, + { 0, 0, _image2219_size, 0, 0, 0, 0}, + { 0, 0, _image2220_size, 0, 0, 0, 0}, + { 0, 0, _image2221_size, 0, 0, 0, 0}, + { 0, 0, _image2222_size, 0, 0, 0, 0}, + { 0, 0, _image2223_size, 0, 0, 0, 0}, + { 0, 0, _image2224_size, 0, 0, 0, 0}, + { 0, 0, _image2225_size, 0, 0, 0, 0}, + { 0, 0, _image2226_size, 0, 0, 0, 0}, + { 0, 0, _image2227_size, 0, 0, 0, 0}, + { 0, 0, _image2228_size, 0, 0, 0, 0}, + { 0, 0, _image2229_size, 0, 0, 0, 0}, + { 0, 0, _image2230_size, 0, 0, 0, 0}, + { 0, 0, _image2231_size, 0, 0, 0, 0}, + { 0, 0, _image2232_size, 0, 0, 0, 0}, + { 0, 0, _image2233_size, 0, 0, 0, 0}, + { 0, 0, _image2234_size, 0, 0, 0, 0}, + { 0, 0, _image2235_size, 0, 0, 0, 0}, + { 0, 0, _image2236_size, 0, 0, 0, 0}, + { 0, 0, _image2237_size, 0, 0, 0, 0}, + { 0, 0, _image2238_size, 0, 0, 0, 0}, + { 0, 0, _image2239_size, 0, 0, 0, 0}, + { 0, 0, _image2240_size, 0, 0, 0, 0}, + { 0, 0, _image2241_size, 0, 0, 0, 0}, + { 0, 0, _image2242_size, 0, 0, 0, 0}, + { 0, 0, _image2243_size, 0, 0, 0, 0}, + { 0, 0, _image2244_size, 0, 0, 0, 0}, + { 0, 0, _image2245_size, 0, 0, 0, 0}, + { 0, 0, _image2246_size, 0, 0, 0, 0}, + { 0, 0, _image2247_size, 0, 0, 0, 0}, + { 0, 0, _image2248_size, 0, 0, 0, 0}, + { 0, 0, _image2249_size, 0, 0, 0, 0}, + { 0, 0, _image2250_size, 0, 0, 0, 0}, + { 0, 0, _image2251_size, 0, 0, 0, 0}, + { 0, 0, _image2252_size, 0, 0, 0, 0}, + { 0, 0, _image2253_size, 0, 0, 0, 0}, + { 0, 0, _image2254_size, 0, 0, 0, 0}, + { 0, 0, _image2255_size, 0, 0, 0, 0}, + { 0, 0, _image2256_size, 0, 0, 0, 0}, + { 0, 0, _image2257_size, 0, 0, 0, 0}, + { 0, 0, _image2258_size, 0, 0, 0, 0}, + { 0, 0, _image2259_size, 0, 0, 0, 0}, + { 0, 0, _image2260_size, 0, 0, 0, 0}, + {0x33, 0, _image2261_size, 0, 0, 0, 0}, + { 0, 0, _image2262_size, 0, 0, 0, 0}, + { 0, 0, _image2263_size, 0, 0, 0, 0}, + { 0, 0, _image2264_size, 0, 0, 0, 0}, + { 0, 0, _image2265_size, 0, 0, 0, 0}, + { 0, 0, _image2266_size, 0, 0, 0, 0}, + { 0, 0, _image2267_size, 0, 0, 0, 0}, + { 0, 0, _image2268_size, 0, 0, 0, 0}, + { 0, 0, _image2269_size, 0, 0, 0, 0}, + { 0, 0, _image2270_size, 0, 0, 0, 0}, + { 0, 0, _image2271_size, 0, 0, 0, 0}, + { 0, 0, _image2272_size, 0, 0, 0, 0}, + { 0, 0, _image2273_size, 0, 0, 0, 0}, + { 0, 0, _image2274_size, 0, 0, 0, 0}, + { 0, 0, _image2275_size, 0, 0, 0, 0}, + { 0, 0, _image2276_size, 0, 0, 0, 0}, + { 0, 0, _image2277_size, 0, 0, 0, 0}, + {0x22, 0, _image2278_size, 0, 0, 0, 0}, + { 0, 0, _image2279_size, 0, 0, 0, 0}, + {0x22, 0, _image2280_size, 0, 0, 0, 0}, + {0x22, 0, _image2281_size, 0, 0, 0, 0}, + { 0, 0, _image2282_size, 0, 0, 0, 0}, + {0x22, 0, _image2283_size, 0, 0, 0, 0}, + { 0, 0, _image2284_size, 0, 0, 0, 0}, + { 0, 0, _image2285_size, 0, 0, 0, 0}, + { 0, 0, _image2286_size, 0, 0, 0, 0}, + { 0, 0, _image2287_size, 0, 0, 0, 0}, + { 0, 0, _image2288_size, 0, 0, 0, 0}, + { 0, 0, _image2289_size, 0, 0, 0, 0}, + { 0, 0, _image2290_size, 0, 0, 0, 0}, + { 0, 0, _image2291_size, 0, 0, 0, 0}, + { 0, 0, _image2292_size, 0, 0, 0, 0}, + { 0, 0, _image2293_size, 0, 0, 0, 0}, + { 0, 0, _image2294_size, 0, 0, 0, 0}, + {0xAA, 0, _image2295_size, 0, 0, 0, 0}, + {0xAA, 0, _image2296_size, 0, 0, 0, 0}, + {0xAA, 0, _image2297_size, 0, 0, 0, 0}, + { 0, 0, _image2298_size, 0, 0, 0, 0}, + {0xAA, 0, _image2299_size, 0, 0, 0, 0}, + {0xAA, 0, _image2300_size, 0, 0, 0, 0}, + {0x33, 0, _image2301_size, 0, 0, 0, 0}, + {0x77, 0, _image2302_size, 0, 0, 0, 0}, + {0x77, 0, _image2303_size, 0, 0, 0, 0}, + {0x77, 0, _image2304_size, 0, 0, 0, 0}, + {0x77, 0, _image2305_size, 0, 0, 0, 0}, + {0xAA, 0, _image2306_size, 0, 0, 0, 0}, + {0xAA, 0, _image2307_size, 0, 0, 0, 0}, + {0xAA, 0, _image2308_size, 0, 0, 0, 0}, + {0xAA, 0, _image2309_size, 0, 0, 0, 0}, + {0xAA, 0, _image2310_size, 0, 0, 0, 0}, + {0x22, 0, _image2311_size, 0, 0, 0, 0}, + {0x11, 0, _image2312_size, 0, 0, 0, 0}, + { 0, 0, _image2313_size, 0, 0, 0, 0}, + {0x77, 0, _image2314_size, 0, 0, 0, 0}, + {0x77, 0, _image2315_size, 0, 0, 0, 0}, + {0xAA, 0, _image2316_size, 0, 0, 0, 0}, + { 0, 0, _image2317_size, 0, 0, 0, 0}, + {0xAA, 0, _image2318_size, 0, 0, 0, 0}, + {0xAA, 0, _image2319_size, 0, 0, 0, 0}, + {0xAA, 0, _image2320_size, 0, 0, 0, 0}, + {0xAA, 0, _image2321_size, 0, 0, 0, 0}, + { 0, 0, _image2322_size, 0, 0, 0, 0}, + {0x33, 0, _image2323_size, 0, 0, 0, 0}, + {0x33, 0, _image2324_size, 0, 0, 0, 0}, + { 0, 0, _image2325_size, 0, 0, 0, 0}, + { 0, 0, _image2326_size, 0, 0, 0, 0}, + { 0, 0, _image2327_size, 0, 0, 0, 0}, + { 0, 0, _image2328_size, 0, 0, 0, 0}, + { 0, 0, _image2329_size, 0, 0, 0, 0}, + { 0, 0, _image2330_size, 0, 0, 0, 0}, + { 0, 0, _image2331_size, 0, 0, 0, 0}, + { 0, 0, _image2332_size, 0, 0, 0, 0}, + { 0, 0, _image2333_size, 0, 0, 0, 0}, + { 0, 0, _image2334_size, 0, 0, 0, 0}, + { 0, 0, _image2335_size, 0, 0, 0, 0}, + {0x22, 0, _image2336_size, 0, 0, 0, 0}, + {0x22, 0, _image2337_size, 0, 0, 0, 0}, + {0x22, 0, _image2338_size, 0, 0, 0, 0}, + {0x22, 0, _image2339_size, 0, 0, 0, 0}, + {0x33, 0, _image2340_size, 0, 0, 0, 0}, + { 0, 0, _image2341_size, 0, 0, 0, 0}, + { 0, 0, _image2342_size, 0, 0, 0, 0}, + {0x55, 0, _image2343_size, 0, 0, 0, 0}, + {0x55, 0, _image2344_size, 0, 0, 0, 0}, + { 0, 0, _image2345_size, 0, 0, 0, 0}, + { 0, 0, _image2346_size, 0, 0, 0, 0}, + { 0, 0, _image2347_size, 0, 0, 0, 0}, + { 0, 0, _image2348_size, 0, 0, 0, 0}, + { 0, 0, _image2349_size, 0, 0, 0, 0}, + { 0, 0, _image2350_size, 0, 0, 0, 0}, + { 0, 0, _image2351_size, 0, 0, 0, 0}, + { 0, 0, _image2352_size, 0, 0, 0, 0}, + { 0, 0, _image2353_size, 0, 0, 0, 0}, + { 0, 0, _image2354_size, 0, 0, 0, 0}, + { 0, 0, _image2355_size, 0, 0, 0, 0}, + { 0, 0, _image2356_size, 0, 0, 0, 0}, + { 0, 0, _image2357_size, 0, 0, 0, 0}, + { 0, 0, _image2358_size, 0, 0, 0, 0}, + { 0, 0, _image2359_size, 0, 0, 0, 0}, + { 0, 0, _image2360_size, 0, 0, 0, 0}, + { 0, 0, _image2361_size, 0, 0, 0, 0}, + { 0, 0, _image2362_size, 0, 0, 0, 0}, + { 0, 0, _image2363_size, 0, 0, 0, 0}, + { 0, 0, _image2364_size, 0, 0, 0, 0}, + { 0, 0, _image2365_size, 0, 0, 0, 0}, + { 0, 0, _image2366_size, 0, 0, 0, 0}, + { 0, 0, _image2367_size, 0, 0, 0, 0}, + { 0, 0, _image2368_size, 0, 0, 0, 0}, + { 0, 0, _image2369_size, 0, 0, 0, 0}, + {0x11, 0, _image2370_size, 0, 0, 0, 0}, + {0x11, 0, _image2371_size, 0, 0, 0, 0}, + {0x44, 0, _image2372_size, 0, 0, 0, 0}, + {0x44, 0, _image2373_size, 0, 0, 0, 0}, + { 0, 0, _image2374_size, 0, 0, 0, 0}, + { 0, 0, _image2375_size, 0, 0, 0, 0}, + {0xAA, 0, _image2376_size, 0, 0, 0, 0}, + {0x11, 0, _image2377_size, 0, 0, 0, 0}, + {0x33, 0, _image2378_size, 0, 0, 0, 0}, + { 0, 0, _image2379_size, 0, 0, 0, 0}, + {0x22, 0, _image2380_size, 0, 0, 0, 0}, + {0x33, 0, _image2381_size, 0, 0, 0, 0}, + {0x44, 0, _image2382_size, 0, 0, 0, 0}, + { 0, 0, _image2383_size, 0, 0, 0, 0}, + { 0, 0, _image2384_size, 0, 0, 0, 0}, + { 0, 0, _image2385_size, 0, 0, 0, 0}, + {0x33, 0, _image2386_size, 0, 0, 0, 0}, + { 0, 0, _image2387_size, 0, 0, 0, 0}, + { 0, 0, _image2388_size, 0, 0, 0, 0}, + {0x44, 0, _image2389_size, 0, 0, 0, 0}, + { 0, 0, _image2390_size, 0, 0, 0, 0}, + {0xAA, 0, _image2391_size, 0, 0, 0, 0}, + { 0, 0, _image2392_size, 0, 0, 0, 0}, + {0x44, 0, _image2393_size, 0, 0, 0, 0}, + { 0, 0, _image2394_size, 0, 0, 0, 0}, + { 0, 0, _image2395_size, 0, 0, 0, 0}, + { 0, 0, _image2396_size, 0, 0, 0, 0}, + {0x33, 0, _image2397_size, 0, 0, 0, 0}, + { 0, 0, _image2398_size, 0, 0, 0, 0}, + {0xAA, 0, _image2399_size, 0, 0, 0, 0}, + {0x33, 0, _image2400_size, 0, 0, 0, 0}, + {0x33, 0, _image2401_size, 0, 0, 0, 0}, + {0x44, 0, _image2402_size, 0, 0, 0, 0}, + {0x11, 0, _image2403_size, 0, 0, 0, 0}, + { 0, 0, _image2404_size, 0, 0, 0, 0}, + {0x22, 0, _image2405_size, 0, 0, 0, 0}, + {0x11, 0, _image2406_size, 0, 0, 0, 0}, + {0x22, 0, _image2407_size, 0, 0, 0, 0}, + { 0, 0, _image2408_size, 0, 0, 0, 0}, + {0x11, 0, _image2409_size, 0, 0, 0, 0}, + { 0, 0, _image2410_size, 0, 0, 0, 0}, + {0x11, 0, _image2411_size, 0, 0, 0, 0}, + { 0, 0, _image2412_size, 0, 0, 0, 0}, + { 0, 0, _image2413_size, 0, 0, 0, 0}, + {0x11, 0, _image2414_size, 0, 0, 0, 0}, + {0x44, 0, _image2415_size, 0, 0, 0, 0}, + { 0, 0, _image2416_size, 0, 0, 0, 0}, + { 0, 0, _image2417_size, 0, 0, 0, 0}, + {0xAA, 0, _image2418_size, 0, 0, 0, 0}, + { 0, 0, _image2419_size, 0, 0, 0, 0}, + { 0, 0, _image2420_size, 0, 0, 0, 0}, + { 0, 0, _image2421_size, 0, 0, 0, 0}, + { 0, 0, _image2422_size, 0, 0, 0, 0}, + { 0, 0, _image2423_size, 0, 0, 0, 0}, + { 0, 0, _image2424_size, 0, 0, 0, 0}, + { 0, 0, _image2425_size, 0, 0, 0, 0}, + { 0, 0, _image2426_size, 0, 0, 0, 0}, + { 0, 0, _image2427_size, 0, 0, 0, 0}, + { 0, 0, _image2428_size, 0, 0, 0, 0}, + {0x44, 0, _image2429_size, 0, 0, 0, 0}, + {0x33, 0, _image2430_size, 0, 0, 0, 0}, + {0x33, 0, _image2431_size, 0, 0, 0, 0}, + { 0, 0, _image2432_size, 0, 0, 0, 0}, + { 0, 0, _image2433_size, 0, 0, 0, 0}, + { 0, 0, _image2434_size, 0, 0, 0, 0}, + { 0, 0, _image2435_size, 0, 0, 0, 0}, + { 0, 0, _image2436_size, 0, 0, 0, 0}, + { 0, 0, _image2437_size, 0, 0, 0, 0}, + { 0, 0, _image2438_size, 0, 0, 0, 0}, + { 0, 0, _image2439_size, 0, 0, 0, 0}, + { 0, 0, _image2440_size, 0, 0, 0, 0}, + { 0, 0, _image2441_size, 0, 0, 0, 0}, + { 0, 0, _image2442_size, 0, 0, 0, 0}, + { 0, 0, _image2443_size, 0, 0, 0, 0}, + { 0, 0, _image2444_size, 0, 0, 0, 0}, + { 0, 0, _image2445_size, 0, 0, 0, 0}, + { 0, 0, _image2446_size, 0, 0, 0, 0}, + { 0, 0, _image2447_size, 0, 0, 0, 0}, + { 0, 0, _image2448_size, 0, 0, 0, 0}, + { 0, 0, _image2449_size, 0, 0, 0, 0}, + { 0, 0, _image2450_size, 0, 0, 0, 0}, + { 0, 0, _image2451_size, 0, 0, 0, 0}, + { 0, 0, _image2452_size, 0, 0, 0, 0}, + { 0, 0, _image2453_size, 0, 0, 0, 0}, + { 0, 0, _image2454_size, 0, 0, 0, 0}, + { 0, 0, _image2455_size, 0, 0, 0, 0}, + { 0, 0, _image2456_size, 0, 0, 0, 0}, + { 0, 0, _image2457_size, 0, 0, 0, 0}, + { 0, 0, _image2458_size, 0, 0, 0, 0}, + { 0, 0, _image2459_size, 0, 0, 0, 0}, + { 0, 0, _image2460_size, 0, 0, 0, 0}, + { 0, 0, _image2461_size, 0, 0, 0, 0}, + { 0, 0, _image2462_size, 0, 0, 0, 0}, + { 0, 0, _image2463_size, 0, 0, 0, 0}, + { 0, 0, _image2464_size, 0, 0, 0, 0}, + { 0, 0, _image2465_size, 0, 0, 0, 0}, + { 0, 0, _image2466_size, 0, 0, 0, 0}, + { 0, 0, _image2467_size, 0, 0, 0, 0}, + { 0, 0, _image2468_size, 0, 0, 0, 0}, + { 0, 0, _image2469_size, 0, 0, 0, 0}, + { 0, 0, _image2470_size, 0, 0, 0, 0}, + { 0, 0, _image2471_size, 0, 0, 0, 0}, + { 0, 0, _image2472_size, 0, 0, 0, 0}, + { 0, 0, _image2473_size, 0, 0, 0, 0}, + { 0, 0, _image2474_size, 0, 0, 0, 0}, + {0x11, 0, _image2475_size, 0, 0, 0, 0}, + { 0, 0, _image2476_size, 0, 0, 0, 0}, + { 0, 0, _image2477_size, 0, 0, 0, 0}, + { 0, 0, _image2478_size, 0, 0, 0, 0}, + { 0, 0, _image2479_size, 0, 0, 0, 0}, + { 0, 0, _image2480_size, 0, 0, 0, 0}, + { 0, 0, _image2481_size, 0, 0, 0, 0}, + { 0, 0, _image2482_size, 0, 0, 0, 0}, + { 0, 0, _image2483_size, 0, 0, 0, 0}, + { 0, 0, _image2484_size, 0, 0, 0, 0}, + { 0, 0, _image2485_size, 0, 0, 0, 0}, + { 0, 0, _image2486_size, 0, 0, 0, 0}, + { 0, 0, _image2487_size, 0, 0, 0, 0}, + { 0, 0, _image2488_size, 0, 0, 0, 0}, + { 0, 0, _image2489_size, 0, 0, 0, 0}, + { 0, 0, _image2490_size, 0, 0, 0, 0}, + { 0, 0, _image2491_size, 0, 0, 0, 0}, + { 0, 0, _image2492_size, 0, 0, 0, 0}, + { 0, 0, _image2493_size, 0, 0, 0, 0}, + { 0, 0, _image2494_size, 0, 0, 0, 0}, + { 0, 0, _image2495_size, 0, 0, 0, 0}, + { 0, 0, _image2496_size, 0, 0, 0, 0}, + { 0, 0, _image2497_size, 0, 0, 0, 0}, + { 0, 0, _image2498_size, 0, 0, 0, 0}, + { 0, 0, _image2499_size, 0, 0, 0, 0}, + { 0, 0, _image2500_size, 0, 0, 0, 0}, + { 0, 0, _image2501_size, 0, 0, 0, 0}, + { 0, 0, _image2502_size, 0, 0, 0, 0}, + { 0, 0, _image2503_size, 0, 0, 0, 0}, + { 0, 0, _image2504_size, 0, 0, 0, 0}, + { 0, 0, _image2505_size, 0, 0, 0, 0}, + { 0, 0, _image2506_size, 0, 0, 0, 0}, + { 0, 0, _image2507_size, 0, 0, 0, 0}, + { 0, 0, _image2508_size, 0, 0, 0, 0}, + { 0, 0, _image2509_size, 0, 0, 0, 0}, + { 0, 0, _image2510_size, 0, 0, 0, 0}, + { 0, 0, _image2511_size, 0, 0, 0, 0}, + { 0, 0, _image2512_size, 0, 0, 0, 0}, + { 0, 0, _image2513_size, 0, 0, 0, 0}, + { 0, 0, _image2514_size, 0, 0, 0, 0}, + { 0, 0, _image2515_size, 0, 0, 0, 0}, + { 0, 0, _image2516_size, 0, 0, 0, 0}, + { 0, 0, _image2517_size, 0, 0, 0, 0}, + { 0, 0, _image2518_size, 0, 0, 0, 0}, + { 0, 0, _image2519_size, 0, 0, 0, 0}, + { 0, 0, _image2520_size, 0, 0, 0, 0}, + { 0, 0, _image2521_size, 0, 0, 0, 0}, + { 0, 0, _image2522_size, 0, 0, 0, 0}, + { 0, 0, _image2523_size, 0, 0, 0, 0}, + { 0, 0, _image2524_size, 0, 0, 0, 0}, + { 0, 0, _image2525_size, 0, 0, 0, 0}, + { 0, 0, _image2526_size, 0, 0, 0, 0}, + { 0, 0, _image2527_size, 0, 0, 0, 0}, + { 0, 0, _image2528_size, 0, 0, 0, 0}, + { 0, 0, _image2529_size, 0, 0, 0, 0}, + { 0, 0, _image2530_size, 0, 0, 0, 0}, + { 0, 0, _image2531_size, 0, 0, 0, 0}, + { 0, 0, _image2532_size, 0, 0, 0, 0}, + { 0, 0, _image2533_size, 0, 0, 0, 0}, + { 0, 0, _image2534_size, 0, 0, 0, 0}, + { 0, 0, _image2535_size, 0, 0, 0, 0}, + { 0, 0, _image2536_size, 0, 0, 0, 0}, + { 0, 0, _image2537_size, 0, 0, 0, 0}, + { 0, 0, _image2538_size, 0, 0, 0, 0}, + { 0, 0, _image2539_size, 0, 0, 0, 0}, + { 0, 0, _image2540_size, 0, 0, 0, 0}, + { 0, 0, _image2541_size, 0, 0, 0, 0}, + { 0, 0, _image2542_size, 0, 0, 0, 0}, + { 0, 0, _image2543_size, 0, 0, 0, 0}, + { 0, 0, _image2544_size, 0, 0, 0, 0}, + { 0, 0, _image2545_size, 0, 0, 0, 0}, + { 0, 0, _image2546_size, 0, 0, 0, 0}, + { 0, 0, _image2547_size, 0, 0, 0, 0}, + { 0, 0, _image2548_size, 0, 0, 0, 0}, + { 0, 0, _image2549_size, 0, 0, 0, 0}, + { 0, 0, _image2550_size, 0, 0, 0, 0}, + { 0, 0, _image2551_size, 0, 0, 0, 0}, + { 0, 0, _image2552_size, 0, 0, 0, 0}, + { 0, 0, _image2553_size, 0, 0, 0, 0}, + { 0, 0, _image2554_size, 0, 0, 0, 0}, + { 0, 0, _image2555_size, 0, 0, 0, 0}, + { 0, 0, _image2556_size, 0, 0, 0, 0}, + { 0, 0, _image2557_size, 0, 0, 0, 0}, + { 0, 0, _image2558_size, 0, 0, 0, 0}, + { 0, 0, _image2559_size, 0, 0, 0, 0}, + { 0, 0, _image2560_size, 0, 0, 0, 0}, + { 0, 0, _image2561_size, 0, 0, 0, 0}, + { 0, 0, _image2562_size, 0, 0, 0, 0}, + { 0, 0, _image2563_size, 0, 0, 0, 0}, + { 0, 0, _image2564_size, 0, 0, 0, 0}, + { 0, 0, _image2565_size, 0, 0, 0, 0}, + { 0, 0, _image2566_size, 0, 0, 0, 0}, + { 0, 0, _image2567_size, 0, 0, 0, 0}, + { 0, 0, _image2568_size, 0, 0, 0, 0}, + { 0, 0, _image2569_size, 0, 0, 0, 0}, + { 0, 0, _image2570_size, 0, 0, 0, 0}, + { 0, 0, _image2571_size, 0, 0, 0, 0}, + { 0, 0, _image2572_size, 0, 0, 0, 0}, + { 0, 0, _image2573_size, 0, 0, 0, 0}, + { 0, 0, _image2574_size, 0, 0, 0, 0}, + { 0, 0, _image2575_size, 0, 0, 0, 0}, + { 0, 0, _image2576_size, 0, 0, 0, 0}, + { 0, 0, _image2577_size, 0, 0, 0, 0}, + { 0, 0, _image2578_size, 0, 0, 0, 0}, + { 0, 0, _image2579_size, 0, 0, 0, 0}, + { 0, 0, _image2580_size, 0, 0, 0, 0}, + { 0, 0, _image2581_size, 0, 0, 0, 0}, + { 0, 0, _image2582_size, 0, 0, 0, 0}, + { 0, 0, _image2583_size, 0, 0, 0, 0}, + { 0, 0, _image2584_size, 0, 0, 0, 0}, + { 0, 0, _image2585_size, 0, 0, 0, 0}, + { 0, 0, _image2586_size, 0, 0, 0, 0}, + { 0, 0, _image2587_size, 0, 0, 0, 0}, + { 0, 0, _image2588_size, 0, 0, 0, 0}, + { 0, 0, _image2589_size, 0, 0, 0, 0}, + { 0, 0, _image2590_size, 0, 0, 0, 0}, + { 0, 0, _image2591_size, 0, 0, 0, 0}, + { 0, 0, _image2592_size, 0, 0, 0, 0}, + { 0, 0, _image2593_size, 0, 0, 0, 0}, + { 0, 0, _image2594_size, 0, 0, 0, 0}, + { 0, 0, _image2595_size, 0, 0, 0, 0}, + { 0, 0, _image2596_size, 0, 0, 0, 0}, + { 0, 0, _image2597_size, 0, 0, 0, 0}, + { 0, 0, _image2598_size, 0, 0, 0, 0}, + { 0, 0, _image2599_size, 0, 0, 0, 0}, + { 0, 0, _image2600_size, 0, 0, 0, 0}, + { 0, 0, _image2601_size, 0, 0, 0, 0}, + { 0, 0, _image2602_size, 0, 0, 0, 0}, + { 0, 0, _image2603_size, 0, 0, 0, 0}, + { 0, 0, _image2604_size, 0, 0, 0, 0}, + { 0, 0, _image2605_size, 0, 0, 0, 0}, + { 0, 0, _image2606_size, 0, 0, 0, 0}, + { 0, 0, _image2607_size, 0, 0, 0, 0}, + { 0, 0, _image2608_size, 0, 0, 0, 0}, + { 0, 0, _image2609_size, 0, 0, 0, 0}, + { 0, 0, _image2610_size, 0, 0, 0, 0}, + { 0, 0, _image2611_size, 0, 0, 0, 0}, + { 0, 0, _image2612_size, 0, 0, 0, 0}, + { 0, 0, _image2613_size, 0, 0, 0, 0}, + { 0, 0, _image2614_size, 0, 0, 0, 0}, + { 0, 0, _image2615_size, 0, 0, 0, 0}, + { 0, 0, _image2616_size, 0, 0, 0, 0}, + { 0, 0, _image2617_size, 0, 0, 0, 0}, + { 0, 0, _image2618_size, 0, 0, 0, 0}, + { 0, 0, _image2619_size, 0, 0, 0, 0}, + { 0, 0, _image2620_size, 0, 0, 0, 0}, + { 0, 0, _image2621_size, 0, 0, 0, 0}, + { 0, 0, _image2622_size, 0, 0, 0, 0}, + { 0, 0, _image2623_size, 0, 0, 0, 0}, + { 0, 0, _image2624_size, 0, 0, 0, 0}, + { 0, 0, _image2625_size, 0, 0, 0, 0}, + { 0, 0, _image2626_size, 0, 0, 0, 0}, + { 0, 0, _image2627_size, 0, 0, 0, 0}, + { 0, 0, _image2628_size, 0, 0, 0, 0}, + { 0, 0, _image2629_size, 0, 0, 0, 0}, + { 0, 0, _image2630_size, 0, 0, 0, 0}, + { 0, 0, _image2631_size, 0, 0, 0, 0}, + { 0, 0, _image2632_size, 0, 0, 0, 0}, + { 0, 0, _image2633_size, 0, 0, 0, 0}, + { 0, 0, _image2634_size, 0, 0, 0, 0}, + { 0, 0, _image2635_size, 0, 0, 0, 0}, + { 0, 0, _image2636_size, 0, 0, 0, 0}, + { 0, 0, _image2637_size, 0, 0, 0, 0}, + { 0, 0, _image2638_size, 0, 0, 0, 0}, + { 0, 0, _image2639_size, 0, 0, 0, 0}, + { 0, 0, _image2640_size, 0, 0, 0, 0}, + { 0, 0, _image2641_size, 0, 0, 0, 0}, + { 0, 0, _image2642_size, 0, 0, 0, 0}, + { 0, 0, _image2643_size, 0, 0, 0, 0}, + { 0, 0, _image2644_size, 0, 0, 0, 0}, + { 0, 0, _image2645_size, 0, 0, 0, 0}, + { 0, 0, _image2646_size, 0, 0, 0, 0}, + { 0, 0, _image2647_size, 0, 0, 0, 0}, + { 0, 0, _image2648_size, 0, 0, 0, 0}, + { 0, 0, _image2649_size, 0, 0, 0, 0}, + { 0, 0, _image2650_size, 0, 0, 0, 0}, + { 0, 0, _image2651_size, 0, 0, 0, 0}, + { 0, 0, _image2652_size, 0, 0, 0, 0}, + { 0, 0, _image2653_size, 0, 0, 0, 0}, + { 0, 0, _image2654_size, 0, 0, 0, 0}, + { 0, 0, _image2655_size, 0, 0, 0, 0}, + { 0, 0, _image2656_size, 0, 0, 0, 0}, + { 0, 0, _image2657_size, 0, 0, 0, 0}, + { 0, 0, _image2658_size, 0, 0, 0, 0}, + { 0, 0, _image2659_size, 0, 0, 0, 0}, + { 0, 0, _image2660_size, 0, 0, 0, 0}, + { 0, 0, _image2661_size, 0, 0, 0, 0}, + { 0, 0, _image2662_size, 0, 0, 0, 0}, + { 0, 0, _image2663_size, 0, 0, 0, 0}, + { 0, 0, _image2664_size, 0, 0, 0, 0}, + { 0, 0, _image2665_size, 0, 0, 0, 0}, + { 0, 0, _image2666_size, 0, 0, 0, 0}, + { 0, 0, _image2667_size, 0, 0, 0, 0}, + { 0, 0, _image2668_size, 0, 0, 0, 0}, + { 0, 0, _image2669_size, 0, 0, 0, 0}, + { 0, 0, _image2670_size, 0, 0, 0, 0}, + { 0, 0, _image2671_size, 0, 0, 0, 0}, + { 0, 0, _image2672_size, 0, 0, 0, 0}, + { 0, 0, _image2673_size, 0, 0, 0, 0}, + { 0, 0, _image2674_size, 0, 0, 0, 0}, + { 0, 0, _image2675_size, 0, 0, 0, 0}, + { 0, 0, _image2676_size, 0, 0, 0, 0}, + { 0, 0, _image2677_size, 0, 0, 0, 0}, + { 0, 0, _image2678_size, 0, 0, 0, 0}, + { 0, 0, _image2679_size, 0, 0, 0, 0}, + { 0, 0, _image2680_size, 0, 0, 0, 0}, + { 0, 0, _image2681_size, 0, 0, 0, 0}, + { 0, 0, _image2682_size, 0, 0, 0, 0}, + { 0, 0, _image2683_size, 0, 0, 0, 0}, + { 0, 0, _image2684_size, 0, 0, 0, 0}, + { 0, 0, _image2685_size, 0, 0, 0, 0}, + { 0, 0, _image2686_size, 0, 0, 0, 0}, + { 0, 0, _image2687_size, 0, 0, 0, 0}, + { 0, 0, _image2688_size, 0, 0, 0, 0}, + { 0, 0, _image2689_size, 0, 0, 0, 0}, + { 0, 0, _image2690_size, 0, 0, 0, 0}, + { 0, 0, _image2691_size, 0, 0, 0, 0}, + { 0, 0, _image2692_size, 0, 0, 0, 0}, + { 0, 0, _image2693_size, 0, 0, 0, 0}, + { 0, 0, _image2694_size, 0, 0, 0, 0}, + { 0, 0, _image2695_size, 0, 0, 0, 0}, + { 0, 0, _image2696_size, 0, 0, 0, 0}, + { 0, 0, _image2697_size, 0, 0, 0, 0}, + { 0, 0, _image2698_size, 0, 0, 0, 0}, + { 0, 0, 0xFFFF, 0, 0, 0, 0} +}; + + + +void nullsub_41(void) { + return; +} + + + + + + +#ifdef NONMATCHING +void image_related_calls_decompressdata_function(void) { + +} +#else +GLOBAL_ASM( +.text +glabel image_related_calls_decompressdata_function +/* 0FB188 7F0C6658 27BDD458 */ addiu $sp, $sp, -0x2ba8 +/* 0FB18C 7F0C665C AFBF004C */ sw $ra, 0x4c($sp) +/* 0FB190 7F0C6660 AFB5003C */ sw $s5, 0x3c($sp) +/* 0FB194 7F0C6664 AFB1002C */ sw $s1, 0x2c($sp) +/* 0FB198 7F0C6668 AFBE0048 */ sw $fp, 0x48($sp) +/* 0FB19C 7F0C666C AFB70044 */ sw $s7, 0x44($sp) +/* 0FB1A0 7F0C6670 AFB60040 */ sw $s6, 0x40($sp) +/* 0FB1A4 7F0C6674 AFB40038 */ sw $s4, 0x38($sp) +/* 0FB1A8 7F0C6678 AFB30034 */ sw $s3, 0x34($sp) +/* 0FB1AC 7F0C667C AFB20030 */ sw $s2, 0x30($sp) +/* 0FB1B0 7F0C6680 AFB00028 */ sw $s0, 0x28($sp) +/* 0FB1B4 7F0C6684 AFA52BAC */ sw $a1, 0x2bac($sp) +/* 0FB1B8 7F0C6688 AFA62BB0 */ sw $a2, 0x2bb0($sp) +/* 0FB1BC 7F0C668C AFA72BB4 */ sw $a3, 0x2bb4($sp) +/* 0FB1C0 7F0C6690 00008825 */ move $s1, $zero +/* 0FB1C4 7F0C6694 0FC32FC4 */ jal makeemptyimageatpos +/* 0FB1C8 7F0C6698 0000A825 */ move $s5, $zero +/* 0FB1CC 7F0C669C 8FA62BB0 */ lw $a2, 0x2bb0($sp) +/* 0FB1D0 7F0C66A0 8FA72BB4 */ lw $a3, 0x2bb4($sp) +/* 0FB1D4 7F0C66A4 00004025 */ move $t0, $zero +/* 0FB1D8 7F0C66A8 50C00006 */ beql $a2, $zero, .L7F0C66C4 +/* 0FB1DC 7F0C66AC 240E0001 */ li $t6, 1 +/* 0FB1E0 7F0C66B0 50E00004 */ beql $a3, $zero, .L7F0C66C4 +/* 0FB1E4 7F0C66B4 240E0001 */ li $t6, 1 +/* 0FB1E8 7F0C66B8 10000004 */ b .L7F0C66CC +/* 0FB1EC 7F0C66BC AFA72B9C */ sw $a3, 0x2b9c($sp) +/* 0FB1F0 7F0C66C0 240E0001 */ li $t6, 1 +.L7F0C66C4: +/* 0FB1F4 7F0C66C4 8FA72BB4 */ lw $a3, 0x2bb4($sp) +/* 0FB1F8 7F0C66C8 AFAE2B9C */ sw $t6, 0x2b9c($sp) +.L7F0C66CC: +/* 0FB1FC 7F0C66CC 8FBE2BB8 */ lw $fp, 0x2bb8($sp) +/* 0FB200 7F0C66D0 0007C940 */ sll $t9, $a3, 5 +/* 0FB204 7F0C66D4 00066940 */ sll $t5, $a2, 5 +/* 0FB208 7F0C66D8 8FC3000C */ lw $v1, 0xc($fp) +/* 0FB20C 7F0C66DC 31AE0020 */ andi $t6, $t5, 0x20 +/* 0FB210 7F0C66E0 3C058009 */ lui $a1, %hi(dword_CODE_bss_8008D090) +/* 0FB214 7F0C66E4 9069000B */ lbu $t1, 0xb($v1) +/* 0FB218 7F0C66E8 312AFF1F */ andi $t2, $t1, 0xff1f +/* 0FB21C 7F0C66EC 032A5825 */ or $t3, $t9, $t2 +/* 0FB220 7F0C66F0 A06B000B */ sb $t3, 0xb($v1) +/* 0FB224 7F0C66F4 8FC3000C */ lw $v1, 0xc($fp) +/* 0FB228 7F0C66F8 906F000C */ lbu $t7, 0xc($v1) +/* 0FB22C 7F0C66FC 31F8FFDF */ andi $t8, $t7, 0xffdf +/* 0FB230 7F0C6700 01D84825 */ or $t1, $t6, $t8 +/* 0FB234 7F0C6704 10C00015 */ beqz $a2, .L7F0C675C +/* 0FB238 7F0C6708 A069000C */ sb $t1, 0xc($v1) +/* 0FB23C 7F0C670C 8CA5D090 */ lw $a1, %lo(dword_CODE_bss_8008D090)($a1) +/* 0FB240 7F0C6710 24150001 */ li $s5, 1 +/* 0FB244 7F0C6714 18A00011 */ blez $a1, .L7F0C675C +/* 0FB248 7F0C6718 00000000 */ nop +/* 0FB24C 7F0C671C 8FD9000C */ lw $t9, 0xc($fp) +/* 0FB250 7F0C6720 3C0B8009 */ lui $t3, %hi(word_CODE_bss_8008C730) +/* 0FB254 7F0C6724 2562C730 */ addiu $v0, $t3, %lo(word_CODE_bss_8008C730) +/* 0FB258 7F0C6728 8F230000 */ lw $v1, ($t9) +/* 0FB25C 7F0C672C 00056100 */ sll $t4, $a1, 4 +/* 0FB260 7F0C6730 01822021 */ addu $a0, $t4, $v0 +/* 0FB264 7F0C6734 00035502 */ srl $t2, $v1, 0x14 +/* 0FB268 7F0C6738 01401825 */ move $v1, $t2 +/* 0FB26C 7F0C673C 844D0000 */ lh $t5, ($v0) +.L7F0C6740: +/* 0FB270 7F0C6740 24420010 */ addiu $v0, $v0, 0x10 +/* 0FB274 7F0C6744 0044082B */ sltu $at, $v0, $a0 +/* 0FB278 7F0C6748 146D0002 */ bne $v1, $t5, .L7F0C6754 +/* 0FB27C 7F0C674C 00000000 */ nop +/* 0FB280 7F0C6750 0000A825 */ move $s5, $zero +.L7F0C6754: +/* 0FB284 7F0C6754 5420FFFA */ bnezl $at, .L7F0C6740 +/* 0FB288 7F0C6758 844D0000 */ lh $t5, ($v0) +.L7F0C675C: +/* 0FB28C 7F0C675C 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FB290 7F0C6760 24040008 */ li $a0, 8 +/* 0FB294 7F0C6764 AFA22B94 */ sw $v0, 0x2b94($sp) +/* 0FB298 7F0C6768 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FB29C 7F0C676C 24040008 */ li $a0, 8 +/* 0FB2A0 7F0C6770 24430001 */ addiu $v1, $v0, 1 +/* 0FB2A4 7F0C6774 1860000D */ blez $v1, .L7F0C67AC +/* 0FB2A8 7F0C6778 AFA32B78 */ sw $v1, 0x2b78($sp) +/* 0FB2AC 7F0C677C 8FAE2B78 */ lw $t6, 0x2b78($sp) +/* 0FB2B0 7F0C6780 27A30070 */ addiu $v1, $sp, 0x70 +/* 0FB2B4 7F0C6784 000EC040 */ sll $t8, $t6, 1 +/* 0FB2B8 7F0C6788 03038021 */ addu $s0, $t8, $v1 +.L7F0C678C: +/* 0FB2BC 7F0C678C 24040010 */ li $a0, 16 +/* 0FB2C0 7F0C6790 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FB2C4 7F0C6794 AFA3005C */ sw $v1, 0x5c($sp) +/* 0FB2C8 7F0C6798 8FA3005C */ lw $v1, 0x5c($sp) +/* 0FB2CC 7F0C679C 24630002 */ addiu $v1, $v1, 2 +/* 0FB2D0 7F0C67A0 0070082B */ sltu $at, $v1, $s0 +/* 0FB2D4 7F0C67A4 1420FFF9 */ bnez $at, .L7F0C678C +/* 0FB2D8 7F0C67A8 A462FFFE */ sh $v0, -2($v1) +.L7F0C67AC: +/* 0FB2DC 7F0C67AC 8FA92B9C */ lw $t1, 0x2b9c($sp) +/* 0FB2E0 7F0C67B0 3C178005 */ lui $s7, %hi(n64imagetypes) +/* 0FB2E4 7F0C67B4 26F79248 */ addiu $s7, %lo(n64imagetypes) # addiu $s7, $s7, -0x6db8 +/* 0FB2E8 7F0C67B8 19200064 */ blez $t1, .L7F0C694C +/* 0FB2EC 7F0C67BC 00009825 */ move $s3, $zero +/* 0FB2F0 7F0C67C0 27B42370 */ addiu $s4, $sp, 0x2370 +.L7F0C67C4: +/* 0FB2F4 7F0C67C4 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FB2F8 7F0C67C8 24040008 */ li $a0, 8 +/* 0FB2FC 7F0C67CC 0040B025 */ move $s6, $v0 +/* 0FB300 7F0C67D0 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FB304 7F0C67D4 24040008 */ li $a0, 8 +/* 0FB308 7F0C67D8 16600029 */ bnez $s3, .L7F0C6880 +/* 0FB30C 7F0C67DC AFA22B84 */ sw $v0, 0x2b84($sp) +/* 0FB310 7F0C67E0 8FD9000C */ lw $t9, 0xc($fp) +/* 0FB314 7F0C67E4 A3360008 */ sb $s6, 8($t9) +/* 0FB318 7F0C67E8 8FCA000C */ lw $t2, 0xc($fp) +/* 0FB31C 7F0C67EC A1420009 */ sb $v0, 9($t2) +/* 0FB320 7F0C67F0 8FAC2B78 */ lw $t4, 0x2b78($sp) +/* 0FB324 7F0C67F4 8FCD000C */ lw $t5, 0xc($fp) +/* 0FB328 7F0C67F8 258BFFFF */ addiu $t3, $t4, -1 +/* 0FB32C 7F0C67FC A1AB000A */ sb $t3, 0xa($t5) +/* 0FB330 7F0C6800 8FA42B94 */ lw $a0, 0x2b94($sp) +/* 0FB334 7F0C6804 8FC3000C */ lw $v1, 0xc($fp) +/* 0FB338 7F0C6808 00047080 */ sll $t6, $a0, 2 +/* 0FB33C 7F0C680C 02EEC021 */ addu $t8, $s7, $t6 +/* 0FB340 7F0C6810 8F090000 */ lw $t1, ($t8) +/* 0FB344 7F0C6814 906C000B */ lbu $t4, 0xb($v1) +/* 0FB348 7F0C6818 01C02025 */ move $a0, $t6 +/* 0FB34C 7F0C681C 0009C880 */ sll $t9, $t1, 2 +/* 0FB350 7F0C6820 332A001C */ andi $t2, $t9, 0x1c +/* 0FB354 7F0C6824 318BFFE3 */ andi $t3, $t4, 0xffe3 +/* 0FB358 7F0C6828 014B6825 */ or $t5, $t2, $t3 +/* 0FB35C 7F0C682C A06D000B */ sb $t5, 0xb($v1) +/* 0FB360 7F0C6830 8FC3000C */ lw $v1, 0xc($fp) +/* 0FB364 7F0C6834 3C0E8005 */ lui $t6, %hi(n64pixelsizes) +/* 0FB368 7F0C6838 01C47021 */ addu $t6, $t6, $a0 +/* 0FB36C 7F0C683C 8DD8927C */ lw $t8, %lo(n64pixelsizes)($t6) +/* 0FB370 7F0C6840 9069000B */ lbu $t1, 0xb($v1) +/* 0FB374 7F0C6844 3C0A8005 */ lui $t2, %hi(imgflipvalues) +/* 0FB378 7F0C6848 330F0003 */ andi $t7, $t8, 3 +/* 0FB37C 7F0C684C 3139FFFC */ andi $t9, $t1, 0xfffc +/* 0FB380 7F0C6850 01F96025 */ or $t4, $t7, $t9 +/* 0FB384 7F0C6854 A06C000B */ sb $t4, 0xb($v1) +/* 0FB388 7F0C6858 8FC3000C */ lw $v1, 0xc($fp) +/* 0FB38C 7F0C685C 01445021 */ addu $t2, $t2, $a0 +/* 0FB390 7F0C6860 8D4A92B0 */ lw $t2, %lo(imgflipvalues)($t2) +/* 0FB394 7F0C6864 9069000C */ lbu $t1, 0xc($v1) +/* 0FB398 7F0C6868 000A6B83 */ sra $t5, $t2, 0xe +/* 0FB39C 7F0C686C 000DC180 */ sll $t8, $t5, 6 +/* 0FB3A0 7F0C6870 312FFF3F */ andi $t7, $t1, 0xff3f +/* 0FB3A4 7F0C6874 030FC825 */ or $t9, $t8, $t7 +/* 0FB3A8 7F0C6878 1000000B */ b .L7F0C68A8 +/* 0FB3AC 7F0C687C A079000C */ sb $t9, 0xc($v1) +.L7F0C6880: +/* 0FB3B0 7F0C6880 12A00009 */ beqz $s5, .L7F0C68A8 +/* 0FB3B4 7F0C6884 3C0C8009 */ lui $t4, %hi(dword_CODE_bss_8008D090) +/* 0FB3B8 7F0C6888 8D8CD090 */ lw $t4, %lo(dword_CODE_bss_8008D090)($t4) +/* 0FB3BC 7F0C688C 3C0D8009 */ lui $t5, %hi(word_CODE_bss_8008C730) +/* 0FB3C0 7F0C6890 25ADC730 */ addiu $t5, %lo(word_CODE_bss_8008C730) # addiu $t5, $t5, -0x38d0 +/* 0FB3C4 7F0C6894 000C5100 */ sll $t2, $t4, 4 +/* 0FB3C8 7F0C6898 01535821 */ addu $t3, $t2, $s3 +/* 0FB3CC 7F0C689C 016D1821 */ addu $v1, $t3, $t5 +/* 0FB3D0 7F0C68A0 A0760001 */ sb $s6, 1($v1) +/* 0FB3D4 7F0C68A4 A0620008 */ sb $v0, 8($v1) +.L7F0C68A8: +/* 0FB3D8 7F0C68A8 02C20019 */ multu $s6, $v0 +/* 0FB3DC 7F0C68AC 3C048009 */ lui $a0, %hi(img_curpos) +/* 0FB3E0 7F0C68B0 02802825 */ move $a1, $s4 +/* 0FB3E4 7F0C68B4 27A60270 */ addiu $a2, $sp, 0x270 +/* 0FB3E8 7F0C68B8 00007012 */ mflo $t6 +/* 0FB3EC 7F0C68BC 29C11001 */ slti $at, $t6, 0x1001 +/* 0FB3F0 7F0C68C0 14200003 */ bnez $at, .L7F0C68D0 +/* 0FB3F4 7F0C68C4 00000000 */ nop +/* 0FB3F8 7F0C68C8 100000B3 */ b .L7F0C6B98 +/* 0FB3FC 7F0C68CC 00001025 */ move $v0, $zero +.L7F0C68D0: +/* 0FB400 7F0C68D0 0FC339FC */ jal decompressdata +/* 0FB404 7F0C68D4 8C84D0A0 */ lw $a0, %lo(img_curpos)($a0) +/* 0FB408 7F0C68D8 8FA92BAC */ lw $t1, 0x2bac($sp) +/* 0FB40C 7F0C68DC 02802025 */ move $a0, $s4 +/* 0FB410 7F0C68E0 02C02825 */ move $a1, $s6 +/* 0FB414 7F0C68E4 01318021 */ addu $s0, $t1, $s1 +/* 0FB418 7F0C68E8 AFB00010 */ sw $s0, 0x10($sp) +/* 0FB41C 7F0C68EC 8FA62B84 */ lw $a2, 0x2b84($sp) +/* 0FB420 7F0C68F0 0FC31AF2 */ jal copy_loaded_image_to_final_mem_location +/* 0FB424 7F0C68F4 8FA72B94 */ lw $a3, 0x2b94($sp) +/* 0FB428 7F0C68F8 0FC33A25 */ jal sub_GAME_7F0CE894 +/* 0FB42C 7F0C68FC 00409025 */ move $s2, $v0 +/* 0FB430 7F0C6900 0FC32FC4 */ jal makeemptyimageatpos +/* 0FB434 7F0C6904 00402025 */ move $a0, $v0 +/* 0FB438 7F0C6908 8FB82BB0 */ lw $t8, 0x2bb0($sp) +/* 0FB43C 7F0C690C 24010001 */ li $at, 1 +/* 0FB440 7F0C6910 8FAF2BB4 */ lw $t7, 0x2bb4($sp) +/* 0FB444 7F0C6914 57010008 */ bnel $t8, $at, .L7F0C6938 +/* 0FB448 7F0C6918 8FB92B9C */ lw $t9, 0x2b9c($sp) +/* 0FB44C 7F0C691C 19E00005 */ blez $t7, .L7F0C6934 +/* 0FB450 7F0C6920 02002025 */ move $a0, $s0 +/* 0FB454 7F0C6924 02C02825 */ move $a1, $s6 +/* 0FB458 7F0C6928 8FA62B84 */ lw $a2, 0x2b84($sp) +/* 0FB45C 7F0C692C 0FC32D9F */ jal sub_GAME_7F0CB67C +/* 0FB460 7F0C6930 8FA72B94 */ lw $a3, 0x2b94($sp) +.L7F0C6934: +/* 0FB464 7F0C6934 8FB92B9C */ lw $t9, 0x2b9c($sp) +.L7F0C6938: +/* 0FB468 7F0C6938 26730001 */ addiu $s3, $s3, 1 +/* 0FB46C 7F0C693C 02328821 */ addu $s1, $s1, $s2 +/* 0FB470 7F0C6940 1679FFA0 */ bne $s3, $t9, .L7F0C67C4 +/* 0FB474 7F0C6944 00000000 */ nop +/* 0FB478 7F0C6948 AFB62B88 */ sw $s6, 0x2b88($sp) +.L7F0C694C: +/* 0FB47C 7F0C694C 8FB62B88 */ lw $s6, 0x2b88($sp) +/* 0FB480 7F0C6950 12A00010 */ beqz $s5, .L7F0C6994 +/* 0FB484 7F0C6954 00004025 */ move $t0, $zero +/* 0FB488 7F0C6958 8FCC000C */ lw $t4, 0xc($fp) +/* 0FB48C 7F0C695C 3C028009 */ lui $v0, %hi(dword_CODE_bss_8008D090) +/* 0FB490 7F0C6960 2442D090 */ addiu $v0, %lo(dword_CODE_bss_8008D090) # addiu $v0, $v0, -0x2f70 +/* 0FB494 7F0C6964 8C450000 */ lw $a1, ($v0) +/* 0FB498 7F0C6968 8D8A0000 */ lw $t2, ($t4) +/* 0FB49C 7F0C696C 3C018009 */ lui $at, %hi(word_CODE_bss_8008C730) +/* 0FB4A0 7F0C6970 00056900 */ sll $t5, $a1, 4 +/* 0FB4A4 7F0C6974 002D0821 */ addu $at, $at, $t5 +/* 0FB4A8 7F0C6978 000A5D02 */ srl $t3, $t2, 0x14 +/* 0FB4AC 7F0C697C A42BC730 */ sh $t3, %lo(word_CODE_bss_8008C730)($at) +/* 0FB4B0 7F0C6980 24AE0001 */ addiu $t6, $a1, 1 +/* 0FB4B4 7F0C6984 29C10096 */ slti $at, $t6, 0x96 +/* 0FB4B8 7F0C6988 14200002 */ bnez $at, .L7F0C6994 +/* 0FB4BC 7F0C698C AC4E0000 */ sw $t6, ($v0) +/* 0FB4C0 7F0C6990 AC400000 */ sw $zero, ($v0) +.L7F0C6994: +/* 0FB4C4 7F0C6994 8FB82BB0 */ lw $t8, 0x2bb0($sp) +/* 0FB4C8 7F0C6998 8FAF2BB4 */ lw $t7, 0x2bb4($sp) +/* 0FB4CC 7F0C699C 17000046 */ bnez $t8, .L7F0C6AB8 +/* 0FB4D0 7F0C69A0 29F90002 */ slti $t9, $t7, 2 +/* 0FB4D4 7F0C69A4 3B390001 */ xori $t9, $t9, 1 +/* 0FB4D8 7F0C69A8 1320003A */ beqz $t9, .L7F0C6A94 +/* 0FB4DC 7F0C69AC 8FAE2BB4 */ lw $t6, 0x2bb4($sp) +/* 0FB4E0 7F0C69B0 8FB72BAC */ lw $s7, 0x2bac($sp) +/* 0FB4E4 7F0C69B4 02C0A025 */ move $s4, $s6 +/* 0FB4E8 7F0C69B8 8FB52B84 */ lw $s5, 0x2b84($sp) +/* 0FB4EC 7F0C69BC 24130001 */ li $s3, 1 +/* 0FB4F0 7F0C69C0 1320002C */ beqz $t9, .L7F0C6A74 +/* 0FB4F4 7F0C69C4 02F18021 */ addu $s0, $s7, $s1 +/* 0FB4F8 7F0C69C8 27B60070 */ addiu $s6, $sp, 0x70 +.L7F0C69CC: +/* 0FB4FC 7F0C69CC 8FAA2B94 */ lw $t2, 0x2b94($sp) +/* 0FB500 7F0C69D0 8FAB2B78 */ lw $t3, 0x2b78($sp) +/* 0FB504 7F0C69D4 02E02025 */ move $a0, $s7 +/* 0FB508 7F0C69D8 02002825 */ move $a1, $s0 +/* 0FB50C 7F0C69DC 02803025 */ move $a2, $s4 +/* 0FB510 7F0C69E0 02A03825 */ move $a3, $s5 +/* 0FB514 7F0C69E4 AFB60014 */ sw $s6, 0x14($sp) +/* 0FB518 7F0C69E8 AFA82BA4 */ sw $t0, 0x2ba4($sp) +/* 0FB51C 7F0C69EC AFAA0010 */ sw $t2, 0x10($sp) +/* 0FB520 7F0C69F0 0FC31B1C */ jal sub_GAME_7F0C6C70 +/* 0FB524 7F0C69F4 AFAB0018 */ sw $t3, 0x18($sp) +/* 0FB528 7F0C69F8 02226821 */ addu $t5, $s1, $v0 +/* 0FB52C 7F0C69FC 29A10801 */ slti $at, $t5, 0x801 +/* 0FB530 7F0C6A00 8FA82BA4 */ lw $t0, 0x2ba4($sp) +/* 0FB534 7F0C6A04 14200008 */ bnez $at, .L7F0C6A28 +/* 0FB538 7F0C6A08 00409025 */ move $s2, $v0 +/* 0FB53C 7F0C6A0C 8FC3000C */ lw $v1, 0xc($fp) +/* 0FB540 7F0C6A10 0013C140 */ sll $t8, $s3, 5 +/* 0FB544 7F0C6A14 906F000B */ lbu $t7, 0xb($v1) +/* 0FB548 7F0C6A18 31ECFF1F */ andi $t4, $t7, 0xff1f +/* 0FB54C 7F0C6A1C 030CC825 */ or $t9, $t8, $t4 +/* 0FB550 7F0C6A20 10000014 */ b .L7F0C6A74 +/* 0FB554 7F0C6A24 A079000B */ sb $t9, 0xb($v1) +.L7F0C6A28: +/* 0FB558 7F0C6A28 02E02025 */ move $a0, $s7 +/* 0FB55C 7F0C6A2C 02802825 */ move $a1, $s4 +/* 0FB560 7F0C6A30 02A03025 */ move $a2, $s5 +/* 0FB564 7F0C6A34 8FA72B94 */ lw $a3, 0x2b94($sp) +/* 0FB568 7F0C6A38 0FC32D9F */ jal sub_GAME_7F0CB67C +/* 0FB56C 7F0C6A3C AFA82BA4 */ sw $t0, 0x2ba4($sp) +/* 0FB570 7F0C6A40 8FAD2BB4 */ lw $t5, 0x2bb4($sp) +/* 0FB574 7F0C6A44 26940001 */ addiu $s4, $s4, 1 +/* 0FB578 7F0C6A48 26B50001 */ addiu $s5, $s5, 1 +/* 0FB57C 7F0C6A4C 26730001 */ addiu $s3, $s3, 1 +/* 0FB580 7F0C6A50 00145043 */ sra $t2, $s4, 1 +/* 0FB584 7F0C6A54 00155843 */ sra $t3, $s5, 1 +/* 0FB588 7F0C6A58 0200B825 */ move $s7, $s0 +/* 0FB58C 7F0C6A5C 8FA82BA4 */ lw $t0, 0x2ba4($sp) +/* 0FB590 7F0C6A60 02328821 */ addu $s1, $s1, $s2 +/* 0FB594 7F0C6A64 0140A025 */ move $s4, $t2 +/* 0FB598 7F0C6A68 0160A825 */ move $s5, $t3 +/* 0FB59C 7F0C6A6C 166DFFD7 */ bne $s3, $t5, .L7F0C69CC +/* 0FB5A0 7F0C6A70 02128021 */ addu $s0, $s0, $s2 +.L7F0C6A74: +/* 0FB5A4 7F0C6A74 02E02025 */ move $a0, $s7 +/* 0FB5A8 7F0C6A78 02802825 */ move $a1, $s4 +/* 0FB5AC 7F0C6A7C 02A03025 */ move $a2, $s5 +/* 0FB5B0 7F0C6A80 8FA72B94 */ lw $a3, 0x2b94($sp) +/* 0FB5B4 7F0C6A84 0FC32D9F */ jal sub_GAME_7F0CB67C +/* 0FB5B8 7F0C6A88 AFA82BA4 */ sw $t0, 0x2ba4($sp) +/* 0FB5BC 7F0C6A8C 1000000A */ b .L7F0C6AB8 +/* 0FB5C0 7F0C6A90 8FA82BA4 */ lw $t0, 0x2ba4($sp) +.L7F0C6A94: +/* 0FB5C4 7F0C6A94 24010001 */ li $at, 1 +/* 0FB5C8 7F0C6A98 15C10007 */ bne $t6, $at, .L7F0C6AB8 +/* 0FB5CC 7F0C6A9C 8FA42BAC */ lw $a0, 0x2bac($sp) +/* 0FB5D0 7F0C6AA0 02C02825 */ move $a1, $s6 +/* 0FB5D4 7F0C6AA4 8FA62B84 */ lw $a2, 0x2b84($sp) +/* 0FB5D8 7F0C6AA8 8FA72B94 */ lw $a3, 0x2b94($sp) +/* 0FB5DC 7F0C6AAC 0FC32D9F */ jal sub_GAME_7F0CB67C +/* 0FB5E0 7F0C6AB0 AFA82BA4 */ sw $t0, 0x2ba4($sp) +/* 0FB5E4 7F0C6AB4 8FA82BA4 */ lw $t0, 0x2ba4($sp) +.L7F0C6AB8: +/* 0FB5E8 7F0C6AB8 8FA92B78 */ lw $t1, 0x2b78($sp) +/* 0FB5EC 7F0C6ABC 8FAF2BAC */ lw $t7, 0x2bac($sp) +/* 0FB5F0 7F0C6AC0 2401FFF8 */ li $at, -8 +/* 0FB5F4 7F0C6AC4 19200032 */ blez $t1, .L7F0C6B90 +/* 0FB5F8 7F0C6AC8 31240003 */ andi $a0, $t1, 3 +/* 0FB5FC 7F0C6ACC 10800012 */ beqz $a0, .L7F0C6B18 +/* 0FB600 7F0C6AD0 01F18021 */ addu $s0, $t7, $s1 +/* 0FB604 7F0C6AD4 0008C040 */ sll $t8, $t0, 1 +/* 0FB608 7F0C6AD8 27AC0070 */ addiu $t4, $sp, 0x70 +/* 0FB60C 7F0C6ADC 030C1821 */ addu $v1, $t8, $t4 +/* 0FB610 7F0C6AE0 00801025 */ move $v0, $a0 +.L7F0C6AE4: +/* 0FB614 7F0C6AE4 94790000 */ lhu $t9, ($v1) +/* 0FB618 7F0C6AE8 25080001 */ addiu $t0, $t0, 1 +/* 0FB61C 7F0C6AEC 26310002 */ addiu $s1, $s1, 2 +/* 0FB620 7F0C6AF0 00195203 */ sra $t2, $t9, 8 +/* 0FB624 7F0C6AF4 A20A0000 */ sb $t2, ($s0) +/* 0FB628 7F0C6AF8 946D0000 */ lhu $t5, ($v1) +/* 0FB62C 7F0C6AFC 26100002 */ addiu $s0, $s0, 2 +/* 0FB630 7F0C6B00 24630002 */ addiu $v1, $v1, 2 +/* 0FB634 7F0C6B04 1448FFF7 */ bne $v0, $t0, .L7F0C6AE4 +/* 0FB638 7F0C6B08 A20DFFFF */ sb $t5, -1($s0) +/* 0FB63C 7F0C6B0C 8FAE2B78 */ lw $t6, 0x2b78($sp) +/* 0FB640 7F0C6B10 510E0020 */ beql $t0, $t6, .L7F0C6B94 +/* 0FB644 7F0C6B14 26310007 */ addiu $s1, $s1, 7 +.L7F0C6B18: +/* 0FB648 7F0C6B18 8FB82B78 */ lw $t8, 0x2b78($sp) +/* 0FB64C 7F0C6B1C 27A90070 */ addiu $t1, $sp, 0x70 +/* 0FB650 7F0C6B20 00087840 */ sll $t7, $t0, 1 +/* 0FB654 7F0C6B24 00186040 */ sll $t4, $t8, 1 +/* 0FB658 7F0C6B28 01891021 */ addu $v0, $t4, $t1 +/* 0FB65C 7F0C6B2C 01E91821 */ addu $v1, $t7, $t1 +.L7F0C6B30: +/* 0FB660 7F0C6B30 94790000 */ lhu $t9, ($v1) +/* 0FB664 7F0C6B34 24630008 */ addiu $v1, $v1, 8 +/* 0FB668 7F0C6B38 26310008 */ addiu $s1, $s1, 8 +/* 0FB66C 7F0C6B3C 00195203 */ sra $t2, $t9, 8 +/* 0FB670 7F0C6B40 A20A0000 */ sb $t2, ($s0) +/* 0FB674 7F0C6B44 946DFFF8 */ lhu $t5, -8($v1) +/* 0FB678 7F0C6B48 26100008 */ addiu $s0, $s0, 8 +/* 0FB67C 7F0C6B4C A20DFFF9 */ sb $t5, -7($s0) +/* 0FB680 7F0C6B50 946EFFFA */ lhu $t6, -6($v1) +/* 0FB684 7F0C6B54 000E7A03 */ sra $t7, $t6, 8 +/* 0FB688 7F0C6B58 A20FFFFA */ sb $t7, -6($s0) +/* 0FB68C 7F0C6B5C 946CFFFA */ lhu $t4, -6($v1) +/* 0FB690 7F0C6B60 A20CFFFB */ sb $t4, -5($s0) +/* 0FB694 7F0C6B64 9469FFFC */ lhu $t1, -4($v1) +/* 0FB698 7F0C6B68 0009CA03 */ sra $t9, $t1, 8 +/* 0FB69C 7F0C6B6C A219FFFC */ sb $t9, -4($s0) +/* 0FB6A0 7F0C6B70 946BFFFC */ lhu $t3, -4($v1) +/* 0FB6A4 7F0C6B74 A20BFFFD */ sb $t3, -3($s0) +/* 0FB6A8 7F0C6B78 946DFFFE */ lhu $t5, -2($v1) +/* 0FB6AC 7F0C6B7C 000D7203 */ sra $t6, $t5, 8 +/* 0FB6B0 7F0C6B80 A20EFFFE */ sb $t6, -2($s0) +/* 0FB6B4 7F0C6B84 9478FFFE */ lhu $t8, -2($v1) +/* 0FB6B8 7F0C6B88 1462FFE9 */ bne $v1, $v0, .L7F0C6B30 +/* 0FB6BC 7F0C6B8C A218FFFF */ sb $t8, -1($s0) +.L7F0C6B90: +/* 0FB6C0 7F0C6B90 26310007 */ addiu $s1, $s1, 7 +.L7F0C6B94: +/* 0FB6C4 7F0C6B94 02211024 */ and $v0, $s1, $at +.L7F0C6B98: +/* 0FB6C8 7F0C6B98 8FBF004C */ lw $ra, 0x4c($sp) +/* 0FB6CC 7F0C6B9C 8FB00028 */ lw $s0, 0x28($sp) +/* 0FB6D0 7F0C6BA0 8FB1002C */ lw $s1, 0x2c($sp) +/* 0FB6D4 7F0C6BA4 8FB20030 */ lw $s2, 0x30($sp) +/* 0FB6D8 7F0C6BA8 8FB30034 */ lw $s3, 0x34($sp) +/* 0FB6DC 7F0C6BAC 8FB40038 */ lw $s4, 0x38($sp) +/* 0FB6E0 7F0C6BB0 8FB5003C */ lw $s5, 0x3c($sp) +/* 0FB6E4 7F0C6BB4 8FB60040 */ lw $s6, 0x40($sp) +/* 0FB6E8 7F0C6BB8 8FB70044 */ lw $s7, 0x44($sp) +/* 0FB6EC 7F0C6BBC 8FBE0048 */ lw $fp, 0x48($sp) +/* 0FB6F0 7F0C6BC0 03E00008 */ jr $ra +/* 0FB6F4 7F0C6BC4 27BD2BA8 */ addiu $sp, $sp, 0x2ba8 +) +#endif + + + + + +#ifdef NONMATCHING +void copy_loaded_image_to_final_mem_location(void) { + +} +#else +GLOBAL_ASM( +.text +glabel copy_loaded_image_to_final_mem_location +/* 0FB6F8 7F0C6BC8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0FB6FC 7F0C6BCC AFB1000C */ sw $s1, 0xc($sp) +/* 0FB700 7F0C6BD0 AFB00008 */ sw $s0, 8($sp) +/* 0FB704 7F0C6BD4 24010009 */ li $at, 9 +/* 0FB708 7F0C6BD8 00A08025 */ move $s0, $a1 +/* 0FB70C 7F0C6BDC 00808825 */ move $s1, $a0 +/* 0FB710 7F0C6BE0 10E10004 */ beq $a3, $at, .L7F0C6BF4 +/* 0FB714 7F0C6BE4 8FA30030 */ lw $v1, 0x30($sp) +/* 0FB718 7F0C6BE8 2401000B */ li $at, 11 +/* 0FB71C 7F0C6BEC 54E10004 */ bnel $a3, $at, .L7F0C6C00 +/* 0FB720 7F0C6BF0 2401000A */ li $at, 10 +.L7F0C6BF4: +/* 0FB724 7F0C6BF4 10000008 */ b .L7F0C6C18 +/* 0FB728 7F0C6BF8 24020001 */ li $v0, 1 +/* 0FB72C 7F0C6BFC 2401000A */ li $at, 10 +.L7F0C6C00: +/* 0FB730 7F0C6C00 10E10003 */ beq $a3, $at, .L7F0C6C10 +/* 0FB734 7F0C6C04 2401000C */ li $at, 12 +/* 0FB738 7F0C6C08 14E10003 */ bne $a3, $at, .L7F0C6C18 +/* 0FB73C 7F0C6C0C 8FA20010 */ lw $v0, 0x10($sp) +.L7F0C6C10: +/* 0FB740 7F0C6C10 10000001 */ b .L7F0C6C18 +/* 0FB744 7F0C6C14 24020002 */ li $v0, 2 +.L7F0C6C18: +/* 0FB748 7F0C6C18 18C0000F */ blez $a2, .L7F0C6C58 +/* 0FB74C 7F0C6C1C 00002025 */ move $a0, $zero +/* 0FB750 7F0C6C20 2407FFF8 */ li $a3, -8 +.L7F0C6C24: +/* 0FB754 7F0C6C24 1A000008 */ blez $s0, .L7F0C6C48 +/* 0FB758 7F0C6C28 00002825 */ move $a1, $zero +.L7F0C6C2C: +/* 0FB75C 7F0C6C2C 922E0000 */ lbu $t6, ($s1) +/* 0FB760 7F0C6C30 00A22821 */ addu $a1, $a1, $v0 +/* 0FB764 7F0C6C34 00B0082A */ slt $at, $a1, $s0 +/* 0FB768 7F0C6C38 24630001 */ addiu $v1, $v1, 1 +/* 0FB76C 7F0C6C3C 26310001 */ addiu $s1, $s1, 1 +/* 0FB770 7F0C6C40 1420FFFA */ bnez $at, .L7F0C6C2C +/* 0FB774 7F0C6C44 A06EFFFF */ sb $t6, -1($v1) +.L7F0C6C48: +/* 0FB778 7F0C6C48 24840001 */ addiu $a0, $a0, 1 +/* 0FB77C 7F0C6C4C 246F0007 */ addiu $t7, $v1, 7 +/* 0FB780 7F0C6C50 1486FFF4 */ bne $a0, $a2, .L7F0C6C24 +/* 0FB784 7F0C6C54 01E71824 */ and $v1, $t7, $a3 +.L7F0C6C58: +/* 0FB788 7F0C6C58 8FB80030 */ lw $t8, 0x30($sp) +/* 0FB78C 7F0C6C5C 8FB00008 */ lw $s0, 8($sp) +/* 0FB790 7F0C6C60 8FB1000C */ lw $s1, 0xc($sp) +/* 0FB794 7F0C6C64 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0FB798 7F0C6C68 03E00008 */ jr $ra +/* 0FB79C 7F0C6C6C 00781023 */ subu $v0, $v1, $t8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C6C70(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C6C70 +/* 0FB7A0 7F0C6C70 27BDFF58 */ addiu $sp, $sp, -0xa8 +/* 0FB7A4 7F0C6C74 AFB00020 */ sw $s0, 0x20($sp) +/* 0FB7A8 7F0C6C78 8FB000B8 */ lw $s0, 0xb8($sp) +/* 0FB7AC 7F0C6C7C 24EF0001 */ addiu $t7, $a3, 1 +/* 0FB7B0 7F0C6C80 AFBE0040 */ sw $fp, 0x40($sp) +/* 0FB7B4 7F0C6C84 AFB50034 */ sw $s5, 0x34($sp) +/* 0FB7B8 7F0C6C88 24020009 */ li $v0, 9 +/* 0FB7BC 7F0C6C8C 000FC043 */ sra $t8, $t7, 1 +/* 0FB7C0 7F0C6C90 00C0F025 */ move $fp, $a2 +/* 0FB7C4 7F0C6C94 AFBF0044 */ sw $ra, 0x44($sp) +/* 0FB7C8 7F0C6C98 AFB7003C */ sw $s7, 0x3c($sp) +/* 0FB7CC 7F0C6C9C AFB60038 */ sw $s6, 0x38($sp) +/* 0FB7D0 7F0C6CA0 AFB40030 */ sw $s4, 0x30($sp) +/* 0FB7D4 7F0C6CA4 AFB3002C */ sw $s3, 0x2c($sp) +/* 0FB7D8 7F0C6CA8 AFB20028 */ sw $s2, 0x28($sp) +/* 0FB7DC 7F0C6CAC AFB10024 */ sw $s1, 0x24($sp) +/* 0FB7E0 7F0C6CB0 AFA700B4 */ sw $a3, 0xb4($sp) +/* 0FB7E4 7F0C6CB4 AFA50074 */ sw $a1, 0x74($sp) +/* 0FB7E8 7F0C6CB8 0080A825 */ move $s5, $a0 +/* 0FB7EC 7F0C6CBC AFB80060 */ sw $t8, 0x60($sp) +/* 0FB7F0 7F0C6CC0 1202000B */ beq $s0, $v0, .L7F0C6CF0 +/* 0FB7F4 7F0C6CC4 AFB80094 */ sw $t8, 0x94($sp) +/* 0FB7F8 7F0C6CC8 2401000A */ li $at, 10 +/* 0FB7FC 7F0C6CCC 12010011 */ beq $s0, $at, .L7F0C6D14 +/* 0FB800 7F0C6CD0 27CF0001 */ addiu $t7, $fp, 1 +/* 0FB804 7F0C6CD4 2401000B */ li $at, 11 +/* 0FB808 7F0C6CD8 12010005 */ beq $s0, $at, .L7F0C6CF0 +/* 0FB80C 7F0C6CDC 2401000C */ li $at, 12 +/* 0FB810 7F0C6CE0 5201000D */ beql $s0, $at, .L7F0C6D18 +/* 0FB814 7F0C6CE4 000FC043 */ sra $t8, $t7, 1 +/* 0FB818 7F0C6CE8 10000011 */ b .L7F0C6D30 +/* 0FB81C 7F0C6CEC 00000000 */ nop +.L7F0C6CF0: +/* 0FB820 7F0C6CF0 27D90001 */ addiu $t9, $fp, 1 +/* 0FB824 7F0C6CF4 00195043 */ sra $t2, $t9, 1 +/* 0FB828 7F0C6CF8 254B0007 */ addiu $t3, $t2, 7 +/* 0FB82C 7F0C6CFC 27CD0007 */ addiu $t5, $fp, 7 +/* 0FB830 7F0C6D00 316C0FF8 */ andi $t4, $t3, 0xff8 +/* 0FB834 7F0C6D04 31AE0FF8 */ andi $t6, $t5, 0xff8 +/* 0FB838 7F0C6D08 AFAC0098 */ sw $t4, 0x98($sp) +/* 0FB83C 7F0C6D0C 10000008 */ b .L7F0C6D30 +/* 0FB840 7F0C6D10 AFAE009C */ sw $t6, 0x9c($sp) +.L7F0C6D14: +/* 0FB844 7F0C6D14 000FC043 */ sra $t8, $t7, 1 +.L7F0C6D18: +/* 0FB848 7F0C6D18 2719000F */ addiu $t9, $t8, 0xf +/* 0FB84C 7F0C6D1C 27CB000F */ addiu $t3, $fp, 0xf +/* 0FB850 7F0C6D20 332A0FF0 */ andi $t2, $t9, 0xff0 +/* 0FB854 7F0C6D24 316C0FF0 */ andi $t4, $t3, 0xff0 +/* 0FB858 7F0C6D28 AFAA0098 */ sw $t2, 0x98($sp) +/* 0FB85C 7F0C6D2C AFAC009C */ sw $t4, 0x9c($sp) +.L7F0C6D30: +/* 0FB860 7F0C6D30 12020009 */ beq $s0, $v0, .L7F0C6D58 +/* 0FB864 7F0C6D34 2401000A */ li $at, 10 +/* 0FB868 7F0C6D38 120100ED */ beq $s0, $at, .L7F0C70F0 +/* 0FB86C 7F0C6D3C 2401000B */ li $at, 11 +/* 0FB870 7F0C6D40 12010086 */ beq $s0, $at, .L7F0C6F5C +/* 0FB874 7F0C6D44 2401000C */ li $at, 12 +/* 0FB878 7F0C6D48 120101D9 */ beq $s0, $at, .L7F0C74B0 +/* 0FB87C 7F0C6D4C 00001025 */ move $v0, $zero +/* 0FB880 7F0C6D50 1000028A */ b .L7F0C777C +/* 0FB884 7F0C6D54 00000000 */ nop +.L7F0C6D58: +/* 0FB888 7F0C6D58 8FAD00B4 */ lw $t5, 0xb4($sp) +/* 0FB88C 7F0C6D5C 8FAE009C */ lw $t6, 0x9c($sp) +/* 0FB890 7F0C6D60 AFA000A0 */ sw $zero, 0xa0($sp) +/* 0FB894 7F0C6D64 19A00077 */ blez $t5, .L7F0C6F44 +/* 0FB898 7F0C6D68 000E7840 */ sll $t7, $t6, 1 +/* 0FB89C 7F0C6D6C AFAF0050 */ sw $t7, 0x50($sp) +/* 0FB8A0 7F0C6D70 8FB700C0 */ lw $s7, 0xc0($sp) +/* 0FB8A4 7F0C6D74 8FB300BC */ lw $s3, 0xbc($sp) +.L7F0C6D78: +/* 0FB8A8 7F0C6D78 8FB900A0 */ lw $t9, 0xa0($sp) +/* 0FB8AC 7F0C6D7C 8FB800B4 */ lw $t8, 0xb4($sp) +/* 0FB8B0 7F0C6D80 00008825 */ move $s1, $zero +/* 0FB8B4 7F0C6D84 272A0001 */ addiu $t2, $t9, 1 +/* 0FB8B8 7F0C6D88 0158082A */ slt $at, $t2, $t8 +/* 0FB8BC 7F0C6D8C 10200003 */ beqz $at, .L7F0C6D9C +/* 0FB8C0 7F0C6D90 8FAB009C */ lw $t3, 0x9c($sp) +/* 0FB8C4 7F0C6D94 10000002 */ b .L7F0C6DA0 +/* 0FB8C8 7F0C6D98 8FB6009C */ lw $s6, 0x9c($sp) +.L7F0C6D9C: +/* 0FB8CC 7F0C6D9C 0000B025 */ move $s6, $zero +.L7F0C6DA0: +/* 0FB8D0 7F0C6DA0 1960005C */ blez $t3, .L7F0C6F14 +/* 0FB8D4 7F0C6DA4 02A09025 */ move $s2, $s5 +/* 0FB8D8 7F0C6DA8 02D5A021 */ addu $s4, $s6, $s5 +/* 0FB8DC 7F0C6DAC 26220001 */ addiu $v0, $s1, 1 +.L7F0C6DB0: +/* 0FB8E0 7F0C6DB0 005E082A */ slt $at, $v0, $fp +/* 0FB8E4 7F0C6DB4 10200003 */ beqz $at, .L7F0C6DC4 +/* 0FB8E8 7F0C6DB8 02602025 */ move $a0, $s3 +/* 0FB8EC 7F0C6DBC 10000002 */ b .L7F0C6DC8 +/* 0FB8F0 7F0C6DC0 00401825 */ move $v1, $v0 +.L7F0C6DC4: +/* 0FB8F4 7F0C6DC4 02201825 */ move $v1, $s1 +.L7F0C6DC8: +/* 0FB8F8 7F0C6DC8 924C0000 */ lbu $t4, ($s2) +/* 0FB8FC 7F0C6DCC 02A37821 */ addu $t7, $s5, $v1 +/* 0FB900 7F0C6DD0 91F90000 */ lbu $t9, ($t7) +/* 0FB904 7F0C6DD4 000C6840 */ sll $t5, $t4, 1 +/* 0FB908 7F0C6DD8 026D7021 */ addu $t6, $s3, $t5 +/* 0FB90C 7F0C6DDC 85D00000 */ lh $s0, ($t6) +/* 0FB910 7F0C6DE0 02C37021 */ addu $t6, $s6, $v1 +/* 0FB914 7F0C6DE4 928B0000 */ lbu $t3, ($s4) +/* 0FB918 7F0C6DE8 01D57821 */ addu $t7, $t6, $s5 +/* 0FB91C 7F0C6DEC 0019C040 */ sll $t8, $t9, 1 +/* 0FB920 7F0C6DF0 91F90000 */ lbu $t9, ($t7) +/* 0FB924 7F0C6DF4 02785021 */ addu $t2, $s3, $t8 +/* 0FB928 7F0C6DF8 85480000 */ lh $t0, ($t2) +/* 0FB92C 7F0C6DFC 000B6040 */ sll $t4, $t3, 1 +/* 0FB930 7F0C6E00 026C6821 */ addu $t5, $s3, $t4 +/* 0FB934 7F0C6E04 0019C040 */ sll $t8, $t9, 1 +/* 0FB938 7F0C6E08 85A90000 */ lh $t1, ($t5) +/* 0FB93C 7F0C6E0C 02785021 */ addu $t2, $s3, $t8 +/* 0FB940 7F0C6E10 85420000 */ lh $v0, ($t2) +/* 0FB944 7F0C6E14 00105AC3 */ sra $t3, $s0, 0xb +/* 0FB948 7F0C6E18 316C001F */ andi $t4, $t3, 0x1f +/* 0FB94C 7F0C6E1C 00086AC3 */ sra $t5, $t0, 0xb +/* 0FB950 7F0C6E20 31AE001F */ andi $t6, $t5, 0x1f +/* 0FB954 7F0C6E24 0009CAC3 */ sra $t9, $t1, 0xb +/* 0FB958 7F0C6E28 3338001F */ andi $t8, $t9, 0x1f +/* 0FB95C 7F0C6E2C 018E7821 */ addu $t7, $t4, $t6 +/* 0FB960 7F0C6E30 00025AC3 */ sra $t3, $v0, 0xb +/* 0FB964 7F0C6E34 316D001F */ andi $t5, $t3, 0x1f +/* 0FB968 7F0C6E38 01F85021 */ addu $t2, $t7, $t8 +/* 0FB96C 7F0C6E3C 014D3021 */ addu $a2, $t2, $t5 +/* 0FB970 7F0C6E40 0010C983 */ sra $t9, $s0, 6 +/* 0FB974 7F0C6E44 332F001F */ andi $t7, $t9, 0x1f +/* 0FB978 7F0C6E48 00066083 */ sra $t4, $a2, 2 +/* 0FB97C 7F0C6E4C 0008C183 */ sra $t8, $t0, 6 +/* 0FB980 7F0C6E50 330B001F */ andi $t3, $t8, 0x1f +/* 0FB984 7F0C6E54 3186001F */ andi $a2, $t4, 0x1f +/* 0FB988 7F0C6E58 00096983 */ sra $t5, $t1, 6 +/* 0FB98C 7F0C6E5C 31AC001F */ andi $t4, $t5, 0x1f +/* 0FB990 7F0C6E60 01EB5021 */ addu $t2, $t7, $t3 +/* 0FB994 7F0C6E64 0002C983 */ sra $t9, $v0, 6 +/* 0FB998 7F0C6E68 3338001F */ andi $t8, $t9, 0x1f +/* 0FB99C 7F0C6E6C 014C7021 */ addu $t6, $t2, $t4 +/* 0FB9A0 7F0C6E70 01D83821 */ addu $a3, $t6, $t8 +/* 0FB9A4 7F0C6E74 00106843 */ sra $t5, $s0, 1 +/* 0FB9A8 7F0C6E78 31AA001F */ andi $t2, $t5, 0x1f +/* 0FB9AC 7F0C6E7C 00077883 */ sra $t7, $a3, 2 +/* 0FB9B0 7F0C6E80 00086043 */ sra $t4, $t0, 1 +/* 0FB9B4 7F0C6E84 3199001F */ andi $t9, $t4, 0x1f +/* 0FB9B8 7F0C6E88 31E7001F */ andi $a3, $t7, 0x1f +/* 0FB9BC 7F0C6E8C 0009C043 */ sra $t8, $t1, 1 +/* 0FB9C0 7F0C6E90 330F001F */ andi $t7, $t8, 0x1f +/* 0FB9C4 7F0C6E94 01597021 */ addu $t6, $t2, $t9 +/* 0FB9C8 7F0C6E98 00026843 */ sra $t5, $v0, 1 +/* 0FB9CC 7F0C6E9C 31AC001F */ andi $t4, $t5, 0x1f +/* 0FB9D0 7F0C6EA0 01CF5821 */ addu $t3, $t6, $t7 +/* 0FB9D4 7F0C6EA4 016C5021 */ addu $t2, $t3, $t4 +/* 0FB9D8 7F0C6EA8 000AC883 */ sra $t9, $t2, 2 +/* 0FB9DC 7F0C6EAC 320E0001 */ andi $t6, $s0, 1 +/* 0FB9E0 7F0C6EB0 310F0001 */ andi $t7, $t0, 1 +/* 0FB9E4 7F0C6EB4 01CF6821 */ addu $t5, $t6, $t7 +/* 0FB9E8 7F0C6EB8 3338001F */ andi $t8, $t9, 0x1f +/* 0FB9EC 7F0C6EBC 312B0001 */ andi $t3, $t1, 1 +/* 0FB9F0 7F0C6EC0 01AB6021 */ addu $t4, $t5, $t3 +/* 0FB9F4 7F0C6EC4 304A0001 */ andi $t2, $v0, 1 +/* 0FB9F8 7F0C6EC8 018AC821 */ addu $t9, $t4, $t2 +/* 0FB9FC 7F0C6ECC AFB80010 */ sw $t8, 0x10($sp) +/* 0FBA00 7F0C6ED0 27380002 */ addiu $t8, $t9, 2 +/* 0FBA04 7F0C6ED4 00187083 */ sra $t6, $t8, 2 +/* 0FBA08 7F0C6ED8 31CF0001 */ andi $t7, $t6, 1 +/* 0FBA0C 7F0C6EDC AFAF0014 */ sw $t7, 0x14($sp) +/* 0FBA10 7F0C6EE0 0FC31DEB */ jal sub_GAME_7F0C77AC +/* 0FBA14 7F0C6EE4 02E02825 */ move $a1, $s7 +/* 0FBA18 7F0C6EE8 8FAD0074 */ lw $t5, 0x74($sp) +/* 0FBA1C 7F0C6EEC 00115843 */ sra $t3, $s1, 1 +/* 0FBA20 7F0C6EF0 26310002 */ addiu $s1, $s1, 2 +/* 0FBA24 7F0C6EF4 01AB6021 */ addu $t4, $t5, $t3 +/* 0FBA28 7F0C6EF8 A1820000 */ sb $v0, ($t4) +/* 0FBA2C 7F0C6EFC 8FAA009C */ lw $t2, 0x9c($sp) +/* 0FBA30 7F0C6F00 26520002 */ addiu $s2, $s2, 2 +/* 0FBA34 7F0C6F04 26940002 */ addiu $s4, $s4, 2 +/* 0FBA38 7F0C6F08 022A082A */ slt $at, $s1, $t2 +/* 0FBA3C 7F0C6F0C 5420FFA8 */ bnezl $at, .L7F0C6DB0 +/* 0FBA40 7F0C6F10 26220001 */ addiu $v0, $s1, 1 +.L7F0C6F14: +/* 0FBA44 7F0C6F14 8FAD00A0 */ lw $t5, 0xa0($sp) +/* 0FBA48 7F0C6F18 8FAC00B4 */ lw $t4, 0xb4($sp) +/* 0FBA4C 7F0C6F1C 8FB90074 */ lw $t9, 0x74($sp) +/* 0FBA50 7F0C6F20 8FB80098 */ lw $t8, 0x98($sp) +/* 0FBA54 7F0C6F24 8FAF0050 */ lw $t7, 0x50($sp) +/* 0FBA58 7F0C6F28 25AB0002 */ addiu $t3, $t5, 2 +/* 0FBA5C 7F0C6F2C 016C082A */ slt $at, $t3, $t4 +/* 0FBA60 7F0C6F30 03387021 */ addu $t6, $t9, $t8 +/* 0FBA64 7F0C6F34 AFAB00A0 */ sw $t3, 0xa0($sp) +/* 0FBA68 7F0C6F38 AFAE0074 */ sw $t6, 0x74($sp) +/* 0FBA6C 7F0C6F3C 1420FF8E */ bnez $at, .L7F0C6D78 +/* 0FBA70 7F0C6F40 02AFA821 */ addu $s5, $s5, $t7 +.L7F0C6F44: +/* 0FBA74 7F0C6F44 8FAA0060 */ lw $t2, 0x60($sp) +/* 0FBA78 7F0C6F48 8FB90098 */ lw $t9, 0x98($sp) +/* 0FBA7C 7F0C6F4C 01590019 */ multu $t2, $t9 +/* 0FBA80 7F0C6F50 00001012 */ mflo $v0 +/* 0FBA84 7F0C6F54 1000020A */ b .L7F0C7780 +/* 0FBA88 7F0C6F58 8FBF0044 */ lw $ra, 0x44($sp) +.L7F0C6F5C: +/* 0FBA8C 7F0C6F5C 8FB800B4 */ lw $t8, 0xb4($sp) +/* 0FBA90 7F0C6F60 8FAE009C */ lw $t6, 0x9c($sp) +/* 0FBA94 7F0C6F64 AFA000A0 */ sw $zero, 0xa0($sp) +/* 0FBA98 7F0C6F68 1B00005B */ blez $t8, .L7F0C70D8 +/* 0FBA9C 7F0C6F6C 000E7840 */ sll $t7, $t6, 1 +/* 0FBAA0 7F0C6F70 AFAF0050 */ sw $t7, 0x50($sp) +/* 0FBAA4 7F0C6F74 8FB700C0 */ lw $s7, 0xc0($sp) +/* 0FBAA8 7F0C6F78 8FB300BC */ lw $s3, 0xbc($sp) +.L7F0C6F7C: +/* 0FBAAC 7F0C6F7C 8FAB00A0 */ lw $t3, 0xa0($sp) +/* 0FBAB0 7F0C6F80 8FAD00B4 */ lw $t5, 0xb4($sp) +/* 0FBAB4 7F0C6F84 00008825 */ move $s1, $zero +/* 0FBAB8 7F0C6F88 256C0001 */ addiu $t4, $t3, 1 +/* 0FBABC 7F0C6F8C 018D082A */ slt $at, $t4, $t5 +/* 0FBAC0 7F0C6F90 10200003 */ beqz $at, .L7F0C6FA0 +/* 0FBAC4 7F0C6F94 8FAA009C */ lw $t2, 0x9c($sp) +/* 0FBAC8 7F0C6F98 10000002 */ b .L7F0C6FA4 +/* 0FBACC 7F0C6F9C 8FB6009C */ lw $s6, 0x9c($sp) +.L7F0C6FA0: +/* 0FBAD0 7F0C6FA0 0000B025 */ move $s6, $zero +.L7F0C6FA4: +/* 0FBAD4 7F0C6FA4 19400040 */ blez $t2, .L7F0C70A8 +/* 0FBAD8 7F0C6FA8 02A09025 */ move $s2, $s5 +/* 0FBADC 7F0C6FAC 02D5A021 */ addu $s4, $s6, $s5 +/* 0FBAE0 7F0C6FB0 26220001 */ addiu $v0, $s1, 1 +.L7F0C6FB4: +/* 0FBAE4 7F0C6FB4 005E082A */ slt $at, $v0, $fp +/* 0FBAE8 7F0C6FB8 10200003 */ beqz $at, .L7F0C6FC8 +/* 0FBAEC 7F0C6FBC 02602025 */ move $a0, $s3 +/* 0FBAF0 7F0C6FC0 10000002 */ b .L7F0C6FCC +/* 0FBAF4 7F0C6FC4 00401825 */ move $v1, $v0 +.L7F0C6FC8: +/* 0FBAF8 7F0C6FC8 02201825 */ move $v1, $s1 +.L7F0C6FCC: +/* 0FBAFC 7F0C6FCC 92590000 */ lbu $t9, ($s2) +/* 0FBB00 7F0C6FD0 02A37821 */ addu $t7, $s5, $v1 +/* 0FBB04 7F0C6FD4 91EB0000 */ lbu $t3, ($t7) +/* 0FBB08 7F0C6FD8 0019C040 */ sll $t8, $t9, 1 +/* 0FBB0C 7F0C6FDC 02787021 */ addu $t6, $s3, $t8 +/* 0FBB10 7F0C6FE0 85D00000 */ lh $s0, ($t6) +/* 0FBB14 7F0C6FE4 928A0000 */ lbu $t2, ($s4) +/* 0FBB18 7F0C6FE8 02C37021 */ addu $t6, $s6, $v1 +/* 0FBB1C 7F0C6FEC 01D57821 */ addu $t7, $t6, $s5 +/* 0FBB20 7F0C6FF0 000B6840 */ sll $t5, $t3, 1 +/* 0FBB24 7F0C6FF4 91EB0000 */ lbu $t3, ($t7) +/* 0FBB28 7F0C6FF8 026D6021 */ addu $t4, $s3, $t5 +/* 0FBB2C 7F0C6FFC 000AC840 */ sll $t9, $t2, 1 +/* 0FBB30 7F0C7000 85880000 */ lh $t0, ($t4) +/* 0FBB34 7F0C7004 0279C021 */ addu $t8, $s3, $t9 +/* 0FBB38 7F0C7008 87090000 */ lh $t1, ($t8) +/* 0FBB3C 7F0C700C 000B6840 */ sll $t5, $t3, 1 +/* 0FBB40 7F0C7010 026D6021 */ addu $t4, $s3, $t5 +/* 0FBB44 7F0C7014 85820000 */ lh $v0, ($t4) +/* 0FBB48 7F0C7018 00105203 */ sra $t2, $s0, 8 +/* 0FBB4C 7F0C701C 0008C203 */ sra $t8, $t0, 8 +/* 0FBB50 7F0C7020 330E00FF */ andi $t6, $t8, 0xff +/* 0FBB54 7F0C7024 315900FF */ andi $t9, $t2, 0xff +/* 0FBB58 7F0C7028 00095A03 */ sra $t3, $t1, 8 +/* 0FBB5C 7F0C702C 316D00FF */ andi $t5, $t3, 0xff +/* 0FBB60 7F0C7030 032E7821 */ addu $t7, $t9, $t6 +/* 0FBB64 7F0C7034 01ED6021 */ addu $t4, $t7, $t5 +/* 0FBB68 7F0C7038 00025203 */ sra $t2, $v0, 8 +/* 0FBB6C 7F0C703C 315800FF */ andi $t8, $t2, 0xff +/* 0FBB70 7F0C7040 01983021 */ addu $a2, $t4, $t8 +/* 0FBB74 7F0C7044 320B00FF */ andi $t3, $s0, 0xff +/* 0FBB78 7F0C7048 310F00FF */ andi $t7, $t0, 0xff +/* 0FBB7C 7F0C704C 016F6821 */ addu $t5, $t3, $t7 +/* 0FBB80 7F0C7050 312A00FF */ andi $t2, $t1, 0xff +/* 0FBB84 7F0C7054 01AA6021 */ addu $t4, $t5, $t2 +/* 0FBB88 7F0C7058 305800FF */ andi $t8, $v0, 0xff +/* 0FBB8C 7F0C705C 01983821 */ addu $a3, $t4, $t8 +/* 0FBB90 7F0C7060 0006C883 */ sra $t9, $a2, 2 +/* 0FBB94 7F0C7064 332600FF */ andi $a2, $t9, 0xff +/* 0FBB98 7F0C7068 24E70001 */ addiu $a3, $a3, 1 +/* 0FBB9C 7F0C706C 0007C883 */ sra $t9, $a3, 2 +/* 0FBBA0 7F0C7070 332700FF */ andi $a3, $t9, 0xff +/* 0FBBA4 7F0C7074 0FC31EF6 */ jal sub_GAME_7F0C7BD8 +/* 0FBBA8 7F0C7078 02E02825 */ move $a1, $s7 +/* 0FBBAC 7F0C707C 8FAB0074 */ lw $t3, 0x74($sp) +/* 0FBBB0 7F0C7080 00117843 */ sra $t7, $s1, 1 +/* 0FBBB4 7F0C7084 26310002 */ addiu $s1, $s1, 2 +/* 0FBBB8 7F0C7088 016F6821 */ addu $t5, $t3, $t7 +/* 0FBBBC 7F0C708C A1A20000 */ sb $v0, ($t5) +/* 0FBBC0 7F0C7090 8FAA009C */ lw $t2, 0x9c($sp) +/* 0FBBC4 7F0C7094 26520002 */ addiu $s2, $s2, 2 +/* 0FBBC8 7F0C7098 26940002 */ addiu $s4, $s4, 2 +/* 0FBBCC 7F0C709C 022A082A */ slt $at, $s1, $t2 +/* 0FBBD0 7F0C70A0 5420FFC4 */ bnezl $at, .L7F0C6FB4 +/* 0FBBD4 7F0C70A4 26220001 */ addiu $v0, $s1, 1 +.L7F0C70A8: +/* 0FBBD8 7F0C70A8 8FAB00A0 */ lw $t3, 0xa0($sp) +/* 0FBBDC 7F0C70AC 8FAD00B4 */ lw $t5, 0xb4($sp) +/* 0FBBE0 7F0C70B0 8FAC0074 */ lw $t4, 0x74($sp) +/* 0FBBE4 7F0C70B4 8FB80098 */ lw $t8, 0x98($sp) +/* 0FBBE8 7F0C70B8 8FAE0050 */ lw $t6, 0x50($sp) +/* 0FBBEC 7F0C70BC 256F0002 */ addiu $t7, $t3, 2 +/* 0FBBF0 7F0C70C0 01ED082A */ slt $at, $t7, $t5 +/* 0FBBF4 7F0C70C4 0198C821 */ addu $t9, $t4, $t8 +/* 0FBBF8 7F0C70C8 AFAF00A0 */ sw $t7, 0xa0($sp) +/* 0FBBFC 7F0C70CC AFB90074 */ sw $t9, 0x74($sp) +/* 0FBC00 7F0C70D0 1420FFAA */ bnez $at, .L7F0C6F7C +/* 0FBC04 7F0C70D4 02AEA821 */ addu $s5, $s5, $t6 +.L7F0C70D8: +/* 0FBC08 7F0C70D8 8FAA0060 */ lw $t2, 0x60($sp) +/* 0FBC0C 7F0C70DC 8FAC0098 */ lw $t4, 0x98($sp) +/* 0FBC10 7F0C70E0 014C0019 */ multu $t2, $t4 +/* 0FBC14 7F0C70E4 00001012 */ mflo $v0 +/* 0FBC18 7F0C70E8 100001A5 */ b .L7F0C7780 +/* 0FBC1C 7F0C70EC 8FBF0044 */ lw $ra, 0x44($sp) +.L7F0C70F0: +/* 0FBC20 7F0C70F0 8FB800B4 */ lw $t8, 0xb4($sp) +/* 0FBC24 7F0C70F4 8FB90098 */ lw $t9, 0x98($sp) +/* 0FBC28 7F0C70F8 AFA000A0 */ sw $zero, 0xa0($sp) +/* 0FBC2C 7F0C70FC 1B0000E5 */ blez $t8, .L7F0C7494 +/* 0FBC30 7F0C7100 00197043 */ sra $t6, $t9, 1 +/* 0FBC34 7F0C7104 AFAE004C */ sw $t6, 0x4c($sp) +/* 0FBC38 7F0C7108 8FB700C0 */ lw $s7, 0xc0($sp) +/* 0FBC3C 7F0C710C 8FB300BC */ lw $s3, 0xbc($sp) +.L7F0C7110: +/* 0FBC40 7F0C7110 8FAF00A0 */ lw $t7, 0xa0($sp) +/* 0FBC44 7F0C7114 8FAB00B4 */ lw $t3, 0xb4($sp) +/* 0FBC48 7F0C7118 00008825 */ move $s1, $zero +/* 0FBC4C 7F0C711C 25ED0001 */ addiu $t5, $t7, 1 +/* 0FBC50 7F0C7120 01AB082A */ slt $at, $t5, $t3 +/* 0FBC54 7F0C7124 10200005 */ beqz $at, .L7F0C713C +/* 0FBC58 7F0C7128 8FAC009C */ lw $t4, 0x9c($sp) +/* 0FBC5C 7F0C712C 8FB6009C */ lw $s6, 0x9c($sp) +/* 0FBC60 7F0C7130 00165043 */ sra $t2, $s6, 1 +/* 0FBC64 7F0C7134 10000002 */ b .L7F0C7140 +/* 0FBC68 7F0C7138 0140B025 */ move $s6, $t2 +.L7F0C713C: +/* 0FBC6C 7F0C713C 0000B025 */ move $s6, $zero +.L7F0C7140: +/* 0FBC70 7F0C7140 198000C8 */ blez $t4, .L7F0C7464 +/* 0FBC74 7F0C7144 02B6A021 */ addu $s4, $s5, $s6 +/* 0FBC78 7F0C7148 00112843 */ sra $a1, $s1, 1 +.L7F0C714C: +/* 0FBC7C 7F0C714C 00B5C021 */ addu $t8, $a1, $s5 +/* 0FBC80 7F0C7150 93020000 */ lbu $v0, ($t8) +/* 0FBC84 7F0C7154 262D0001 */ addiu $t5, $s1, 1 +/* 0FBC88 7F0C7158 01BE202A */ slt $a0, $t5, $fp +/* 0FBC8C 7F0C715C 0002C903 */ sra $t9, $v0, 4 +/* 0FBC90 7F0C7160 332E000F */ andi $t6, $t9, 0xf +/* 0FBC94 7F0C7164 000E7840 */ sll $t7, $t6, 1 +/* 0FBC98 7F0C7168 026F5821 */ addu $t3, $s3, $t7 +/* 0FBC9C 7F0C716C 10800003 */ beqz $a0, .L7F0C717C +/* 0FBCA0 7F0C7170 85700000 */ lh $s0, ($t3) +/* 0FBCA4 7F0C7174 10000002 */ b .L7F0C7180 +/* 0FBCA8 7F0C7178 00001825 */ move $v1, $zero +.L7F0C717C: +/* 0FBCAC 7F0C717C 24030004 */ li $v1, 4 +.L7F0C7180: +/* 0FBCB0 7F0C7180 00B67021 */ addu $t6, $a1, $s6 +/* 0FBCB4 7F0C7184 01D57821 */ addu $t7, $t6, $s5 +/* 0FBCB8 7F0C7188 91EB0000 */ lbu $t3, ($t7) +/* 0FBCBC 7F0C718C 00625007 */ srav $t2, $v0, $v1 +/* 0FBCC0 7F0C7190 314C000F */ andi $t4, $t2, 0xf +/* 0FBCC4 7F0C7194 000CC040 */ sll $t8, $t4, 1 +/* 0FBCC8 7F0C7198 000B6903 */ sra $t5, $t3, 4 +/* 0FBCCC 7F0C719C 31AA000F */ andi $t2, $t5, 0xf +/* 0FBCD0 7F0C71A0 0278C821 */ addu $t9, $s3, $t8 +/* 0FBCD4 7F0C71A4 000A6040 */ sll $t4, $t2, 1 +/* 0FBCD8 7F0C71A8 026CC021 */ addu $t8, $s3, $t4 +/* 0FBCDC 7F0C71AC 87280000 */ lh $t0, ($t9) +/* 0FBCE0 7F0C71B0 10800003 */ beqz $a0, .L7F0C71C0 +/* 0FBCE4 7F0C71B4 87090000 */ lh $t1, ($t8) +/* 0FBCE8 7F0C71B8 10000002 */ b .L7F0C71C4 +/* 0FBCEC 7F0C71BC 00001825 */ move $v1, $zero +.L7F0C71C0: +/* 0FBCF0 7F0C71C0 24030004 */ li $v1, 4 +.L7F0C71C4: +/* 0FBCF4 7F0C71C4 0285C821 */ addu $t9, $s4, $a1 +/* 0FBCF8 7F0C71C8 932E0000 */ lbu $t6, ($t9) +/* 0FBCFC 7F0C71CC 001062C3 */ sra $t4, $s0, 0xb +/* 0FBD00 7F0C71D0 3198001F */ andi $t8, $t4, 0x1f +/* 0FBD04 7F0C71D4 006E7807 */ srav $t7, $t6, $v1 +/* 0FBD08 7F0C71D8 31EB000F */ andi $t3, $t7, 0xf +/* 0FBD0C 7F0C71DC 000B6840 */ sll $t5, $t3, 1 +/* 0FBD10 7F0C71E0 026D5021 */ addu $t2, $s3, $t5 +/* 0FBD14 7F0C71E4 85420000 */ lh $v0, ($t2) +/* 0FBD18 7F0C71E8 0008CAC3 */ sra $t9, $t0, 0xb +/* 0FBD1C 7F0C71EC 332E001F */ andi $t6, $t9, 0x1f +/* 0FBD20 7F0C71F0 00095AC3 */ sra $t3, $t1, 0xb +/* 0FBD24 7F0C71F4 316D001F */ andi $t5, $t3, 0x1f +/* 0FBD28 7F0C71F8 030E7821 */ addu $t7, $t8, $t6 +/* 0FBD2C 7F0C71FC 000262C3 */ sra $t4, $v0, 0xb +/* 0FBD30 7F0C7200 3199001F */ andi $t9, $t4, 0x1f +/* 0FBD34 7F0C7204 01ED5021 */ addu $t2, $t7, $t5 +/* 0FBD38 7F0C7208 01593021 */ addu $a2, $t2, $t9 +/* 0FBD3C 7F0C720C 00105983 */ sra $t3, $s0, 6 +/* 0FBD40 7F0C7210 316F001F */ andi $t7, $t3, 0x1f +/* 0FBD44 7F0C7214 0006C083 */ sra $t8, $a2, 2 +/* 0FBD48 7F0C7218 00086983 */ sra $t5, $t0, 6 +/* 0FBD4C 7F0C721C 31AC001F */ andi $t4, $t5, 0x1f +/* 0FBD50 7F0C7220 3306001F */ andi $a2, $t8, 0x1f +/* 0FBD54 7F0C7224 0009C983 */ sra $t9, $t1, 6 +/* 0FBD58 7F0C7228 3338001F */ andi $t8, $t9, 0x1f +/* 0FBD5C 7F0C722C 01EC5021 */ addu $t2, $t7, $t4 +/* 0FBD60 7F0C7230 00025983 */ sra $t3, $v0, 6 +/* 0FBD64 7F0C7234 316D001F */ andi $t5, $t3, 0x1f +/* 0FBD68 7F0C7238 01587021 */ addu $t6, $t2, $t8 +/* 0FBD6C 7F0C723C 01CD3821 */ addu $a3, $t6, $t5 +/* 0FBD70 7F0C7240 0010C843 */ sra $t9, $s0, 1 +/* 0FBD74 7F0C7244 332A001F */ andi $t2, $t9, 0x1f +/* 0FBD78 7F0C7248 00077883 */ sra $t7, $a3, 2 +/* 0FBD7C 7F0C724C 0008C043 */ sra $t8, $t0, 1 +/* 0FBD80 7F0C7250 330B001F */ andi $t3, $t8, 0x1f +/* 0FBD84 7F0C7254 31E7001F */ andi $a3, $t7, 0x1f +/* 0FBD88 7F0C7258 00096843 */ sra $t5, $t1, 1 +/* 0FBD8C 7F0C725C 31AF001F */ andi $t7, $t5, 0x1f +/* 0FBD90 7F0C7260 014B7021 */ addu $t6, $t2, $t3 +/* 0FBD94 7F0C7264 0002C843 */ sra $t9, $v0, 1 +/* 0FBD98 7F0C7268 3338001F */ andi $t8, $t9, 0x1f +/* 0FBD9C 7F0C726C 01CF6021 */ addu $t4, $t6, $t7 +/* 0FBDA0 7F0C7270 01985021 */ addu $t2, $t4, $t8 +/* 0FBDA4 7F0C7274 000A5883 */ sra $t3, $t2, 2 +/* 0FBDA8 7F0C7278 310F0001 */ andi $t7, $t0, 1 +/* 0FBDAC 7F0C727C 320E0001 */ andi $t6, $s0, 1 +/* 0FBDB0 7F0C7280 01CFC821 */ addu $t9, $t6, $t7 +/* 0FBDB4 7F0C7284 316D001F */ andi $t5, $t3, 0x1f +/* 0FBDB8 7F0C7288 312C0001 */ andi $t4, $t1, 1 +/* 0FBDBC 7F0C728C 032CC021 */ addu $t8, $t9, $t4 +/* 0FBDC0 7F0C7290 304A0001 */ andi $t2, $v0, 1 +/* 0FBDC4 7F0C7294 030A5821 */ addu $t3, $t8, $t2 +/* 0FBDC8 7F0C7298 AFAD0010 */ sw $t5, 0x10($sp) +/* 0FBDCC 7F0C729C 256D0002 */ addiu $t5, $t3, 2 +/* 0FBDD0 7F0C72A0 000D7083 */ sra $t6, $t5, 2 +/* 0FBDD4 7F0C72A4 31CF0001 */ andi $t7, $t6, 1 +/* 0FBDD8 7F0C72A8 AFAF0014 */ sw $t7, 0x14($sp) +/* 0FBDDC 7F0C72AC 02E02825 */ move $a1, $s7 +/* 0FBDE0 7F0C72B0 0FC31DEB */ jal sub_GAME_7F0C77AC +/* 0FBDE4 7F0C72B4 02602025 */ move $a0, $s3 +/* 0FBDE8 7F0C72B8 8FB90074 */ lw $t9, 0x74($sp) +/* 0FBDEC 7F0C72BC 00116083 */ sra $t4, $s1, 2 +/* 0FBDF0 7F0C72C0 26260002 */ addiu $a2, $s1, 2 +/* 0FBDF4 7F0C72C4 00025100 */ sll $t2, $v0, 4 +/* 0FBDF8 7F0C72C8 00065843 */ sra $t3, $a2, 1 +/* 0FBDFC 7F0C72CC 032C9021 */ addu $s2, $t9, $t4 +/* 0FBE00 7F0C72D0 A24A0000 */ sb $t2, ($s2) +/* 0FBE04 7F0C72D4 01756821 */ addu $t5, $t3, $s5 +/* 0FBE08 7F0C72D8 91A40000 */ lbu $a0, ($t5) +/* 0FBE0C 7F0C72DC 26380003 */ addiu $t8, $s1, 3 +/* 0FBE10 7F0C72E0 031E282A */ slt $a1, $t8, $fp +/* 0FBE14 7F0C72E4 00047103 */ sra $t6, $a0, 4 +/* 0FBE18 7F0C72E8 31CF000F */ andi $t7, $t6, 0xf +/* 0FBE1C 7F0C72EC 000FC840 */ sll $t9, $t7, 1 +/* 0FBE20 7F0C72F0 02796021 */ addu $t4, $s3, $t9 +/* 0FBE24 7F0C72F4 85900000 */ lh $s0, ($t4) +/* 0FBE28 7F0C72F8 10A00003 */ beqz $a1, .L7F0C7308 +/* 0FBE2C 7F0C72FC 01603025 */ move $a2, $t3 +/* 0FBE30 7F0C7300 10000002 */ b .L7F0C730C +/* 0FBE34 7F0C7304 00001825 */ move $v1, $zero +.L7F0C7308: +/* 0FBE38 7F0C7308 24030004 */ li $v1, 4 +.L7F0C730C: +/* 0FBE3C 7F0C730C 00D67821 */ addu $t7, $a2, $s6 +/* 0FBE40 7F0C7310 01F5C821 */ addu $t9, $t7, $s5 +/* 0FBE44 7F0C7314 932C0000 */ lbu $t4, ($t9) +/* 0FBE48 7F0C7318 00645007 */ srav $t2, $a0, $v1 +/* 0FBE4C 7F0C731C 314B000F */ andi $t3, $t2, 0xf +/* 0FBE50 7F0C7320 000B6840 */ sll $t5, $t3, 1 +/* 0FBE54 7F0C7324 000CC103 */ sra $t8, $t4, 4 +/* 0FBE58 7F0C7328 330A000F */ andi $t2, $t8, 0xf +/* 0FBE5C 7F0C732C 026D7021 */ addu $t6, $s3, $t5 +/* 0FBE60 7F0C7330 000A5840 */ sll $t3, $t2, 1 +/* 0FBE64 7F0C7334 026B6821 */ addu $t5, $s3, $t3 +/* 0FBE68 7F0C7338 85C80000 */ lh $t0, ($t6) +/* 0FBE6C 7F0C733C 10A00003 */ beqz $a1, .L7F0C734C +/* 0FBE70 7F0C7340 85A90000 */ lh $t1, ($t5) +/* 0FBE74 7F0C7344 10000002 */ b .L7F0C7350 +/* 0FBE78 7F0C7348 00001825 */ move $v1, $zero +.L7F0C734C: +/* 0FBE7C 7F0C734C 24030004 */ li $v1, 4 +.L7F0C7350: +/* 0FBE80 7F0C7350 02867021 */ addu $t6, $s4, $a2 +/* 0FBE84 7F0C7354 91CF0000 */ lbu $t7, ($t6) +/* 0FBE88 7F0C7358 00105AC3 */ sra $t3, $s0, 0xb +/* 0FBE8C 7F0C735C 316D001F */ andi $t5, $t3, 0x1f +/* 0FBE90 7F0C7360 006FC807 */ srav $t9, $t7, $v1 +/* 0FBE94 7F0C7364 332C000F */ andi $t4, $t9, 0xf +/* 0FBE98 7F0C7368 000CC040 */ sll $t8, $t4, 1 +/* 0FBE9C 7F0C736C 02785021 */ addu $t2, $s3, $t8 +/* 0FBEA0 7F0C7370 85420000 */ lh $v0, ($t2) +/* 0FBEA4 7F0C7374 000872C3 */ sra $t6, $t0, 0xb +/* 0FBEA8 7F0C7378 31CF001F */ andi $t7, $t6, 0x1f +/* 0FBEAC 7F0C737C 000962C3 */ sra $t4, $t1, 0xb +/* 0FBEB0 7F0C7380 3198001F */ andi $t8, $t4, 0x1f +/* 0FBEB4 7F0C7384 01AFC821 */ addu $t9, $t5, $t7 +/* 0FBEB8 7F0C7388 00025AC3 */ sra $t3, $v0, 0xb +/* 0FBEBC 7F0C738C 316E001F */ andi $t6, $t3, 0x1f +/* 0FBEC0 7F0C7390 03385021 */ addu $t2, $t9, $t8 +/* 0FBEC4 7F0C7394 014E3021 */ addu $a2, $t2, $t6 +/* 0FBEC8 7F0C7398 00106183 */ sra $t4, $s0, 6 +/* 0FBECC 7F0C739C 3199001F */ andi $t9, $t4, 0x1f +/* 0FBED0 7F0C73A0 00066883 */ sra $t5, $a2, 2 +/* 0FBED4 7F0C73A4 0008C183 */ sra $t8, $t0, 6 +/* 0FBED8 7F0C73A8 330B001F */ andi $t3, $t8, 0x1f +/* 0FBEDC 7F0C73AC 31A6001F */ andi $a2, $t5, 0x1f +/* 0FBEE0 7F0C73B0 00097183 */ sra $t6, $t1, 6 +/* 0FBEE4 7F0C73B4 31CD001F */ andi $t5, $t6, 0x1f +/* 0FBEE8 7F0C73B8 032B5021 */ addu $t2, $t9, $t3 +/* 0FBEEC 7F0C73BC 00026183 */ sra $t4, $v0, 6 +/* 0FBEF0 7F0C73C0 3198001F */ andi $t8, $t4, 0x1f +/* 0FBEF4 7F0C73C4 014D7821 */ addu $t7, $t2, $t5 +/* 0FBEF8 7F0C73C8 01F83821 */ addu $a3, $t7, $t8 +/* 0FBEFC 7F0C73CC 00107043 */ sra $t6, $s0, 1 +/* 0FBF00 7F0C73D0 31CA001F */ andi $t2, $t6, 0x1f +/* 0FBF04 7F0C73D4 0007C883 */ sra $t9, $a3, 2 +/* 0FBF08 7F0C73D8 00086843 */ sra $t5, $t0, 1 +/* 0FBF0C 7F0C73DC 31AC001F */ andi $t4, $t5, 0x1f +/* 0FBF10 7F0C73E0 3327001F */ andi $a3, $t9, 0x1f +/* 0FBF14 7F0C73E4 0009C043 */ sra $t8, $t1, 1 +/* 0FBF18 7F0C73E8 3319001F */ andi $t9, $t8, 0x1f +/* 0FBF1C 7F0C73EC 014C7821 */ addu $t7, $t2, $t4 +/* 0FBF20 7F0C73F0 00027043 */ sra $t6, $v0, 1 +/* 0FBF24 7F0C73F4 31CD001F */ andi $t5, $t6, 0x1f +/* 0FBF28 7F0C73F8 01F95821 */ addu $t3, $t7, $t9 +/* 0FBF2C 7F0C73FC 016D5021 */ addu $t2, $t3, $t5 +/* 0FBF30 7F0C7400 000A6083 */ sra $t4, $t2, 2 +/* 0FBF34 7F0C7404 31190001 */ andi $t9, $t0, 1 +/* 0FBF38 7F0C7408 320F0001 */ andi $t7, $s0, 1 +/* 0FBF3C 7F0C740C 01F97021 */ addu $t6, $t7, $t9 +/* 0FBF40 7F0C7410 3198001F */ andi $t8, $t4, 0x1f +/* 0FBF44 7F0C7414 312B0001 */ andi $t3, $t1, 1 +/* 0FBF48 7F0C7418 01CB6821 */ addu $t5, $t6, $t3 +/* 0FBF4C 7F0C741C 304A0001 */ andi $t2, $v0, 1 +/* 0FBF50 7F0C7420 01AA6021 */ addu $t4, $t5, $t2 +/* 0FBF54 7F0C7424 AFB80010 */ sw $t8, 0x10($sp) +/* 0FBF58 7F0C7428 25980002 */ addiu $t8, $t4, 2 +/* 0FBF5C 7F0C742C 00187883 */ sra $t7, $t8, 2 +/* 0FBF60 7F0C7430 31F90001 */ andi $t9, $t7, 1 +/* 0FBF64 7F0C7434 AFB90014 */ sw $t9, 0x14($sp) +/* 0FBF68 7F0C7438 02602025 */ move $a0, $s3 +/* 0FBF6C 7F0C743C 0FC31DEB */ jal sub_GAME_7F0C77AC +/* 0FBF70 7F0C7440 02E02825 */ move $a1, $s7 +/* 0FBF74 7F0C7444 924E0000 */ lbu $t6, ($s2) +/* 0FBF78 7F0C7448 26310004 */ addiu $s1, $s1, 4 +/* 0FBF7C 7F0C744C 01C26825 */ or $t5, $t6, $v0 +/* 0FBF80 7F0C7450 A24D0000 */ sb $t5, ($s2) +/* 0FBF84 7F0C7454 8FAA009C */ lw $t2, 0x9c($sp) +/* 0FBF88 7F0C7458 022A082A */ slt $at, $s1, $t2 +/* 0FBF8C 7F0C745C 5420FF3B */ bnezl $at, .L7F0C714C +/* 0FBF90 7F0C7460 00112843 */ sra $a1, $s1, 1 +.L7F0C7464: +/* 0FBF94 7F0C7464 8FAE00A0 */ lw $t6, 0xa0($sp) +/* 0FBF98 7F0C7468 8FAD00B4 */ lw $t5, 0xb4($sp) +/* 0FBF9C 7F0C746C 8FAC0074 */ lw $t4, 0x74($sp) +/* 0FBFA0 7F0C7470 8FB8004C */ lw $t8, 0x4c($sp) +/* 0FBFA4 7F0C7474 8FB9009C */ lw $t9, 0x9c($sp) +/* 0FBFA8 7F0C7478 25CB0002 */ addiu $t3, $t6, 2 +/* 0FBFAC 7F0C747C 016D082A */ slt $at, $t3, $t5 +/* 0FBFB0 7F0C7480 01987821 */ addu $t7, $t4, $t8 +/* 0FBFB4 7F0C7484 AFAB00A0 */ sw $t3, 0xa0($sp) +/* 0FBFB8 7F0C7488 AFAF0074 */ sw $t7, 0x74($sp) +/* 0FBFBC 7F0C748C 1420FF20 */ bnez $at, .L7F0C7110 +/* 0FBFC0 7F0C7490 02B9A821 */ addu $s5, $s5, $t9 +.L7F0C7494: +/* 0FBFC4 7F0C7494 8FAA0098 */ lw $t2, 0x98($sp) +/* 0FBFC8 7F0C7498 8FB80094 */ lw $t8, 0x94($sp) +/* 0FBFCC 7F0C749C 000A6043 */ sra $t4, $t2, 1 +/* 0FBFD0 7F0C74A0 01980019 */ multu $t4, $t8 +/* 0FBFD4 7F0C74A4 00001012 */ mflo $v0 +/* 0FBFD8 7F0C74A8 100000B5 */ b .L7F0C7780 +/* 0FBFDC 7F0C74AC 8FBF0044 */ lw $ra, 0x44($sp) +.L7F0C74B0: +/* 0FBFE0 7F0C74B0 8FAF00B4 */ lw $t7, 0xb4($sp) +/* 0FBFE4 7F0C74B4 8FB90098 */ lw $t9, 0x98($sp) +/* 0FBFE8 7F0C74B8 AFA000A0 */ sw $zero, 0xa0($sp) +/* 0FBFEC 7F0C74BC 19E000A8 */ blez $t7, .L7F0C7760 +/* 0FBFF0 7F0C74C0 00197043 */ sra $t6, $t9, 1 +/* 0FBFF4 7F0C74C4 AFAE004C */ sw $t6, 0x4c($sp) +/* 0FBFF8 7F0C74C8 8FB700C0 */ lw $s7, 0xc0($sp) +/* 0FBFFC 7F0C74CC 8FB300BC */ lw $s3, 0xbc($sp) +.L7F0C74D0: +/* 0FC000 7F0C74D0 8FAD00A0 */ lw $t5, 0xa0($sp) +/* 0FC004 7F0C74D4 8FAB00B4 */ lw $t3, 0xb4($sp) +/* 0FC008 7F0C74D8 00008825 */ move $s1, $zero +/* 0FC00C 7F0C74DC 25AA0001 */ addiu $t2, $t5, 1 +/* 0FC010 7F0C74E0 014B082A */ slt $at, $t2, $t3 +/* 0FC014 7F0C74E4 10200005 */ beqz $at, .L7F0C74FC +/* 0FC018 7F0C74E8 8FB8009C */ lw $t8, 0x9c($sp) +/* 0FC01C 7F0C74EC 8FB6009C */ lw $s6, 0x9c($sp) +/* 0FC020 7F0C74F0 00166043 */ sra $t4, $s6, 1 +/* 0FC024 7F0C74F4 10000002 */ b .L7F0C7500 +/* 0FC028 7F0C74F8 0180B025 */ move $s6, $t4 +.L7F0C74FC: +/* 0FC02C 7F0C74FC 0000B025 */ move $s6, $zero +.L7F0C7500: +/* 0FC030 7F0C7500 1B00008B */ blez $t8, .L7F0C7730 +/* 0FC034 7F0C7504 00112843 */ sra $a1, $s1, 1 +.L7F0C7508: +/* 0FC038 7F0C7508 00B57821 */ addu $t7, $a1, $s5 +/* 0FC03C 7F0C750C 91E20000 */ lbu $v0, ($t7) +/* 0FC040 7F0C7510 262A0001 */ addiu $t2, $s1, 1 +/* 0FC044 7F0C7514 015E202A */ slt $a0, $t2, $fp +/* 0FC048 7F0C7518 0002C903 */ sra $t9, $v0, 4 +/* 0FC04C 7F0C751C 332E000F */ andi $t6, $t9, 0xf +/* 0FC050 7F0C7520 000E6840 */ sll $t5, $t6, 1 +/* 0FC054 7F0C7524 026D5821 */ addu $t3, $s3, $t5 +/* 0FC058 7F0C7528 00826007 */ srav $t4, $v0, $a0 +/* 0FC05C 7F0C752C 11800003 */ beqz $t4, .L7F0C753C +/* 0FC060 7F0C7530 85700000 */ lh $s0, ($t3) +/* 0FC064 7F0C7534 10000002 */ b .L7F0C7540 +/* 0FC068 7F0C7538 00001825 */ move $v1, $zero +.L7F0C753C: +/* 0FC06C 7F0C753C 24030004 */ li $v1, 4 +.L7F0C7540: +/* 0FC070 7F0C7540 00B67021 */ addu $t6, $a1, $s6 +/* 0FC074 7F0C7544 01D56821 */ addu $t5, $t6, $s5 +/* 0FC078 7F0C7548 91A20000 */ lbu $v0, ($t5) +/* 0FC07C 7F0C754C 3078000F */ andi $t8, $v1, 0xf +/* 0FC080 7F0C7550 00187840 */ sll $t7, $t8, 1 +/* 0FC084 7F0C7554 00025903 */ sra $t3, $v0, 4 +/* 0FC088 7F0C7558 316A000F */ andi $t2, $t3, 0xf +/* 0FC08C 7F0C755C 026FC821 */ addu $t9, $s3, $t7 +/* 0FC090 7F0C7560 000A6040 */ sll $t4, $t2, 1 +/* 0FC094 7F0C7564 026CC021 */ addu $t8, $s3, $t4 +/* 0FC098 7F0C7568 00827807 */ srav $t7, $v0, $a0 +/* 0FC09C 7F0C756C 87280000 */ lh $t0, ($t9) +/* 0FC0A0 7F0C7570 11E00003 */ beqz $t7, .L7F0C7580 +/* 0FC0A4 7F0C7574 87090000 */ lh $t1, ($t8) +/* 0FC0A8 7F0C7578 10000002 */ b .L7F0C7584 +/* 0FC0AC 7F0C757C 00001825 */ move $v1, $zero +.L7F0C7580: +/* 0FC0B0 7F0C7580 24030004 */ li $v1, 4 +.L7F0C7584: +/* 0FC0B4 7F0C7584 3079000F */ andi $t9, $v1, 0xf +/* 0FC0B8 7F0C7588 00197040 */ sll $t6, $t9, 1 +/* 0FC0BC 7F0C758C 026E6821 */ addu $t5, $s3, $t6 +/* 0FC0C0 7F0C7590 85A20000 */ lh $v0, ($t5) +/* 0FC0C4 7F0C7594 00105A03 */ sra $t3, $s0, 8 +/* 0FC0C8 7F0C7598 00086203 */ sra $t4, $t0, 8 +/* 0FC0CC 7F0C759C 319800FF */ andi $t8, $t4, 0xff +/* 0FC0D0 7F0C75A0 316A00FF */ andi $t2, $t3, 0xff +/* 0FC0D4 7F0C75A4 0009CA03 */ sra $t9, $t1, 8 +/* 0FC0D8 7F0C75A8 332E00FF */ andi $t6, $t9, 0xff +/* 0FC0DC 7F0C75AC 01587821 */ addu $t7, $t2, $t8 +/* 0FC0E0 7F0C75B0 01EE6821 */ addu $t5, $t7, $t6 +/* 0FC0E4 7F0C75B4 00025A03 */ sra $t3, $v0, 8 +/* 0FC0E8 7F0C75B8 316C00FF */ andi $t4, $t3, 0xff +/* 0FC0EC 7F0C75BC 01AC3021 */ addu $a2, $t5, $t4 +/* 0FC0F0 7F0C75C0 310F00FF */ andi $t7, $t0, 0xff +/* 0FC0F4 7F0C75C4 321900FF */ andi $t9, $s0, 0xff +/* 0FC0F8 7F0C75C8 032F7021 */ addu $t6, $t9, $t7 +/* 0FC0FC 7F0C75CC 312B00FF */ andi $t3, $t1, 0xff +/* 0FC100 7F0C75D0 01CB6821 */ addu $t5, $t6, $t3 +/* 0FC104 7F0C75D4 304C00FF */ andi $t4, $v0, 0xff +/* 0FC108 7F0C75D8 01AC3821 */ addu $a3, $t5, $t4 +/* 0FC10C 7F0C75DC 00065083 */ sra $t2, $a2, 2 +/* 0FC110 7F0C75E0 314600FF */ andi $a2, $t2, 0xff +/* 0FC114 7F0C75E4 24E70001 */ addiu $a3, $a3, 1 +/* 0FC118 7F0C75E8 00075083 */ sra $t2, $a3, 2 +/* 0FC11C 7F0C75EC 314700FF */ andi $a3, $t2, 0xff +/* 0FC120 7F0C75F0 02602025 */ move $a0, $s3 +/* 0FC124 7F0C75F4 0FC31EF6 */ jal sub_GAME_7F0C7BD8 +/* 0FC128 7F0C75F8 02E02825 */ move $a1, $s7 +/* 0FC12C 7F0C75FC 8FB90074 */ lw $t9, 0x74($sp) +/* 0FC130 7F0C7600 00117883 */ sra $t7, $s1, 2 +/* 0FC134 7F0C7604 26260002 */ addiu $a2, $s1, 2 +/* 0FC138 7F0C7608 00025900 */ sll $t3, $v0, 4 +/* 0FC13C 7F0C760C 00066843 */ sra $t5, $a2, 1 +/* 0FC140 7F0C7610 032F9021 */ addu $s2, $t9, $t7 +/* 0FC144 7F0C7614 A24B0000 */ sb $t3, ($s2) +/* 0FC148 7F0C7618 01B56021 */ addu $t4, $t5, $s5 +/* 0FC14C 7F0C761C 91840000 */ lbu $a0, ($t4) +/* 0FC150 7F0C7620 262E0003 */ addiu $t6, $s1, 3 +/* 0FC154 7F0C7624 01DE282A */ slt $a1, $t6, $fp +/* 0FC158 7F0C7628 00045103 */ sra $t2, $a0, 4 +/* 0FC15C 7F0C762C 3158000F */ andi $t8, $t2, 0xf +/* 0FC160 7F0C7630 0018C840 */ sll $t9, $t8, 1 +/* 0FC164 7F0C7634 02797821 */ addu $t7, $s3, $t9 +/* 0FC168 7F0C7638 00A45807 */ srav $t3, $a0, $a1 +/* 0FC16C 7F0C763C 85F00000 */ lh $s0, ($t7) +/* 0FC170 7F0C7640 11600003 */ beqz $t3, .L7F0C7650 +/* 0FC174 7F0C7644 01A03025 */ move $a2, $t5 +/* 0FC178 7F0C7648 10000002 */ b .L7F0C7654 +/* 0FC17C 7F0C764C 00001825 */ move $v1, $zero +.L7F0C7650: +/* 0FC180 7F0C7650 24030004 */ li $v1, 4 +.L7F0C7654: +/* 0FC184 7F0C7654 00D6C021 */ addu $t8, $a2, $s6 +/* 0FC188 7F0C7658 0315C821 */ addu $t9, $t8, $s5 +/* 0FC18C 7F0C765C 93220000 */ lbu $v0, ($t9) +/* 0FC190 7F0C7660 306D000F */ andi $t5, $v1, 0xf +/* 0FC194 7F0C7664 000D6040 */ sll $t4, $t5, 1 +/* 0FC198 7F0C7668 00027903 */ sra $t7, $v0, 4 +/* 0FC19C 7F0C766C 31EE000F */ andi $t6, $t7, 0xf +/* 0FC1A0 7F0C7670 026C5021 */ addu $t2, $s3, $t4 +/* 0FC1A4 7F0C7674 000E5840 */ sll $t3, $t6, 1 +/* 0FC1A8 7F0C7678 026B6821 */ addu $t5, $s3, $t3 +/* 0FC1AC 7F0C767C 00A26007 */ srav $t4, $v0, $a1 +/* 0FC1B0 7F0C7680 85480000 */ lh $t0, ($t2) +/* 0FC1B4 7F0C7684 11800003 */ beqz $t4, .L7F0C7694 +/* 0FC1B8 7F0C7688 85A90000 */ lh $t1, ($t5) +/* 0FC1BC 7F0C768C 10000002 */ b .L7F0C7698 +/* 0FC1C0 7F0C7690 00001825 */ move $v1, $zero +.L7F0C7694: +/* 0FC1C4 7F0C7694 24030004 */ li $v1, 4 +.L7F0C7698: +/* 0FC1C8 7F0C7698 306A000F */ andi $t2, $v1, 0xf +/* 0FC1CC 7F0C769C 000AC040 */ sll $t8, $t2, 1 +/* 0FC1D0 7F0C76A0 0278C821 */ addu $t9, $s3, $t8 +/* 0FC1D4 7F0C76A4 87220000 */ lh $v0, ($t9) +/* 0FC1D8 7F0C76A8 00107A03 */ sra $t7, $s0, 8 +/* 0FC1DC 7F0C76AC 00085A03 */ sra $t3, $t0, 8 +/* 0FC1E0 7F0C76B0 316D00FF */ andi $t5, $t3, 0xff +/* 0FC1E4 7F0C76B4 31EE00FF */ andi $t6, $t7, 0xff +/* 0FC1E8 7F0C76B8 00095203 */ sra $t2, $t1, 8 +/* 0FC1EC 7F0C76BC 315800FF */ andi $t8, $t2, 0xff +/* 0FC1F0 7F0C76C0 01CD6021 */ addu $t4, $t6, $t5 +/* 0FC1F4 7F0C76C4 0198C821 */ addu $t9, $t4, $t8 +/* 0FC1F8 7F0C76C8 00027A03 */ sra $t7, $v0, 8 +/* 0FC1FC 7F0C76CC 31EB00FF */ andi $t3, $t7, 0xff +/* 0FC200 7F0C76D0 032B3021 */ addu $a2, $t9, $t3 +/* 0FC204 7F0C76D4 310C00FF */ andi $t4, $t0, 0xff +/* 0FC208 7F0C76D8 320A00FF */ andi $t2, $s0, 0xff +/* 0FC20C 7F0C76DC 014CC021 */ addu $t8, $t2, $t4 +/* 0FC210 7F0C76E0 312F00FF */ andi $t7, $t1, 0xff +/* 0FC214 7F0C76E4 030FC821 */ addu $t9, $t8, $t7 +/* 0FC218 7F0C76E8 304B00FF */ andi $t3, $v0, 0xff +/* 0FC21C 7F0C76EC 032B3821 */ addu $a3, $t9, $t3 +/* 0FC220 7F0C76F0 00067083 */ sra $t6, $a2, 2 +/* 0FC224 7F0C76F4 31C600FF */ andi $a2, $t6, 0xff +/* 0FC228 7F0C76F8 24E70001 */ addiu $a3, $a3, 1 +/* 0FC22C 7F0C76FC 00077083 */ sra $t6, $a3, 2 +/* 0FC230 7F0C7700 31C700FF */ andi $a3, $t6, 0xff +/* 0FC234 7F0C7704 02602025 */ move $a0, $s3 +/* 0FC238 7F0C7708 0FC31EF6 */ jal sub_GAME_7F0C7BD8 +/* 0FC23C 7F0C770C 02E02825 */ move $a1, $s7 +/* 0FC240 7F0C7710 924A0000 */ lbu $t2, ($s2) +/* 0FC244 7F0C7714 26310004 */ addiu $s1, $s1, 4 +/* 0FC248 7F0C7718 0142C025 */ or $t8, $t2, $v0 +/* 0FC24C 7F0C771C A2580000 */ sb $t8, ($s2) +/* 0FC250 7F0C7720 8FAF009C */ lw $t7, 0x9c($sp) +/* 0FC254 7F0C7724 022F082A */ slt $at, $s1, $t7 +/* 0FC258 7F0C7728 5420FF77 */ bnezl $at, .L7F0C7508 +/* 0FC25C 7F0C772C 00112843 */ sra $a1, $s1, 1 +.L7F0C7730: +/* 0FC260 7F0C7730 8FAA00A0 */ lw $t2, 0xa0($sp) +/* 0FC264 7F0C7734 8FB800B4 */ lw $t8, 0xb4($sp) +/* 0FC268 7F0C7738 8FB90074 */ lw $t9, 0x74($sp) +/* 0FC26C 7F0C773C 8FAB004C */ lw $t3, 0x4c($sp) +/* 0FC270 7F0C7740 8FAD009C */ lw $t5, 0x9c($sp) +/* 0FC274 7F0C7744 254C0002 */ addiu $t4, $t2, 2 +/* 0FC278 7F0C7748 0198082A */ slt $at, $t4, $t8 +/* 0FC27C 7F0C774C 032B7021 */ addu $t6, $t9, $t3 +/* 0FC280 7F0C7750 AFAC00A0 */ sw $t4, 0xa0($sp) +/* 0FC284 7F0C7754 AFAE0074 */ sw $t6, 0x74($sp) +/* 0FC288 7F0C7758 1420FF5D */ bnez $at, .L7F0C74D0 +/* 0FC28C 7F0C775C 02ADA821 */ addu $s5, $s5, $t5 +.L7F0C7760: +/* 0FC290 7F0C7760 8FAF0098 */ lw $t7, 0x98($sp) +/* 0FC294 7F0C7764 8FAB0094 */ lw $t3, 0x94($sp) +/* 0FC298 7F0C7768 000FC843 */ sra $t9, $t7, 1 +/* 0FC29C 7F0C776C 032B0019 */ multu $t9, $t3 +/* 0FC2A0 7F0C7770 00001012 */ mflo $v0 +/* 0FC2A4 7F0C7774 10000002 */ b .L7F0C7780 +/* 0FC2A8 7F0C7778 8FBF0044 */ lw $ra, 0x44($sp) +.L7F0C777C: +/* 0FC2AC 7F0C777C 8FBF0044 */ lw $ra, 0x44($sp) +.L7F0C7780: +/* 0FC2B0 7F0C7780 8FB00020 */ lw $s0, 0x20($sp) +/* 0FC2B4 7F0C7784 8FB10024 */ lw $s1, 0x24($sp) +/* 0FC2B8 7F0C7788 8FB20028 */ lw $s2, 0x28($sp) +/* 0FC2BC 7F0C778C 8FB3002C */ lw $s3, 0x2c($sp) +/* 0FC2C0 7F0C7790 8FB40030 */ lw $s4, 0x30($sp) +/* 0FC2C4 7F0C7794 8FB50034 */ lw $s5, 0x34($sp) +/* 0FC2C8 7F0C7798 8FB60038 */ lw $s6, 0x38($sp) +/* 0FC2CC 7F0C779C 8FB7003C */ lw $s7, 0x3c($sp) +/* 0FC2D0 7F0C77A0 8FBE0040 */ lw $fp, 0x40($sp) +/* 0FC2D4 7F0C77A4 03E00008 */ jr $ra +/* 0FC2D8 7F0C77A8 27BD00A8 */ addiu $sp, $sp, 0xa8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C77AC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C77AC +/* 0FC2DC 7F0C77AC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0FC2E0 7F0C77B0 AFB2000C */ sw $s2, 0xc($sp) +/* 0FC2E4 7F0C77B4 AFB10008 */ sw $s1, 8($sp) +/* 0FC2E8 7F0C77B8 AFB00004 */ sw $s0, 4($sp) +/* 0FC2EC 7F0C77BC 00C08025 */ move $s0, $a2 +/* 0FC2F0 7F0C77C0 00E08825 */ move $s1, $a3 +/* 0FC2F4 7F0C77C4 00809025 */ move $s2, $a0 +/* 0FC2F8 7F0C77C8 AFB40014 */ sw $s4, 0x14($sp) +/* 0FC2FC 7F0C77CC AFB30010 */ sw $s3, 0x10($sp) +/* 0FC300 7F0C77D0 AFA5001C */ sw $a1, 0x1c($sp) +/* 0FC304 7F0C77D4 18A0003F */ blez $a1, .L7F0C78D4 +/* 0FC308 7F0C77D8 00001825 */ move $v1, $zero +/* 0FC30C 7F0C77DC 30A60003 */ andi $a2, $a1, 3 +/* 0FC310 7F0C77E0 10C00018 */ beqz $a2, .L7F0C7844 +/* 0FC314 7F0C77E4 8FA90028 */ lw $t1, 0x28($sp) +/* 0FC318 7F0C77E8 00007840 */ sll $t7, $zero, 1 +/* 0FC31C 7F0C77EC 8FAA002C */ lw $t2, 0x2c($sp) +/* 0FC320 7F0C77F0 024F1021 */ addu $v0, $s2, $t7 +/* 0FC324 7F0C77F4 0010C2C0 */ sll $t8, $s0, 0xb +/* 0FC328 7F0C77F8 0007C980 */ sll $t9, $a3, 6 +/* 0FC32C 7F0C77FC 03197025 */ or $t6, $t8, $t9 +/* 0FC330 7F0C7800 00097840 */ sll $t7, $t1, 1 +/* 0FC334 7F0C7804 01CFC025 */ or $t8, $t6, $t7 +/* 0FC338 7F0C7808 030A2825 */ or $a1, $t8, $t2 +/* 0FC33C 7F0C780C 30B9FFFF */ andi $t9, $a1, 0xffff +/* 0FC340 7F0C7810 03202825 */ move $a1, $t9 +/* 0FC344 7F0C7814 00C02025 */ move $a0, $a2 +.L7F0C7818: +/* 0FC348 7F0C7818 944E0000 */ lhu $t6, ($v0) +/* 0FC34C 7F0C781C 54AE0004 */ bnel $a1, $t6, .L7F0C7830 +/* 0FC350 7F0C7820 24630001 */ addiu $v1, $v1, 1 +/* 0FC354 7F0C7824 100000E5 */ b .L7F0C7BBC +/* 0FC358 7F0C7828 00601025 */ move $v0, $v1 +/* 0FC35C 7F0C782C 24630001 */ addiu $v1, $v1, 1 +.L7F0C7830: +/* 0FC360 7F0C7830 1483FFF9 */ bne $a0, $v1, .L7F0C7818 +/* 0FC364 7F0C7834 24420002 */ addiu $v0, $v0, 2 +/* 0FC368 7F0C7838 8FAF001C */ lw $t7, 0x1c($sp) +/* 0FC36C 7F0C783C 506F0026 */ beql $v1, $t7, .L7F0C78D8 +/* 0FC370 7F0C7840 8FA6001C */ lw $a2, 0x1c($sp) +.L7F0C7844: +/* 0FC374 7F0C7844 8FA90028 */ lw $t1, 0x28($sp) +/* 0FC378 7F0C7848 0003C040 */ sll $t8, $v1, 1 +/* 0FC37C 7F0C784C 8FAA002C */ lw $t2, 0x2c($sp) +/* 0FC380 7F0C7850 02581021 */ addu $v0, $s2, $t8 +/* 0FC384 7F0C7854 0010CAC0 */ sll $t9, $s0, 0xb +/* 0FC388 7F0C7858 00117180 */ sll $t6, $s1, 6 +/* 0FC38C 7F0C785C 032E7825 */ or $t7, $t9, $t6 +/* 0FC390 7F0C7860 0009C040 */ sll $t8, $t1, 1 +/* 0FC394 7F0C7864 01F8C825 */ or $t9, $t7, $t8 +/* 0FC398 7F0C7868 032A2825 */ or $a1, $t9, $t2 +/* 0FC39C 7F0C786C 30AEFFFF */ andi $t6, $a1, 0xffff +/* 0FC3A0 7F0C7870 01C02825 */ move $a1, $t6 +.L7F0C7874: +/* 0FC3A4 7F0C7874 944F0000 */ lhu $t7, ($v0) +/* 0FC3A8 7F0C7878 54AF0004 */ bnel $a1, $t7, .L7F0C788C +/* 0FC3AC 7F0C787C 94580002 */ lhu $t8, 2($v0) +/* 0FC3B0 7F0C7880 100000CE */ b .L7F0C7BBC +/* 0FC3B4 7F0C7884 00601025 */ move $v0, $v1 +/* 0FC3B8 7F0C7888 94580002 */ lhu $t8, 2($v0) +.L7F0C788C: +/* 0FC3BC 7F0C788C 8FAF001C */ lw $t7, 0x1c($sp) +/* 0FC3C0 7F0C7890 54B80004 */ bnel $a1, $t8, .L7F0C78A4 +/* 0FC3C4 7F0C7894 94590004 */ lhu $t9, 4($v0) +/* 0FC3C8 7F0C7898 100000C8 */ b .L7F0C7BBC +/* 0FC3CC 7F0C789C 24620001 */ addiu $v0, $v1, 1 +/* 0FC3D0 7F0C78A0 94590004 */ lhu $t9, 4($v0) +.L7F0C78A4: +/* 0FC3D4 7F0C78A4 54B90004 */ bnel $a1, $t9, .L7F0C78B8 +/* 0FC3D8 7F0C78A8 944E0006 */ lhu $t6, 6($v0) +/* 0FC3DC 7F0C78AC 100000C3 */ b .L7F0C7BBC +/* 0FC3E0 7F0C78B0 24620002 */ addiu $v0, $v1, 2 +/* 0FC3E4 7F0C78B4 944E0006 */ lhu $t6, 6($v0) +.L7F0C78B8: +/* 0FC3E8 7F0C78B8 54AE0004 */ bnel $a1, $t6, .L7F0C78CC +/* 0FC3EC 7F0C78BC 24630004 */ addiu $v1, $v1, 4 +/* 0FC3F0 7F0C78C0 100000BE */ b .L7F0C7BBC +/* 0FC3F4 7F0C78C4 24620003 */ addiu $v0, $v1, 3 +/* 0FC3F8 7F0C78C8 24630004 */ addiu $v1, $v1, 4 +.L7F0C78CC: +/* 0FC3FC 7F0C78CC 146FFFE9 */ bne $v1, $t7, .L7F0C7874 +/* 0FC400 7F0C78D0 24420008 */ addiu $v0, $v0, 8 +.L7F0C78D4: +/* 0FC404 7F0C78D4 8FA6001C */ lw $a2, 0x1c($sp) +.L7F0C78D8: +/* 0FC408 7F0C78D8 8FA90028 */ lw $t1, 0x28($sp) +/* 0FC40C 7F0C78DC 8FAA002C */ lw $t2, 0x2c($sp) +/* 0FC410 7F0C78E0 24C6FFFF */ addiu $a2, $a2, -1 +/* 0FC414 7F0C78E4 28C10002 */ slti $at, $a2, 2 +/* 0FC418 7F0C78E8 00002825 */ move $a1, $zero +/* 0FC41C 7F0C78EC 1420003A */ bnez $at, .L7F0C79D8 +/* 0FC420 7F0C78F0 00C03825 */ move $a3, $a2 +/* 0FC424 7F0C78F4 02100019 */ multu $s0, $s0 +/* 0FC428 7F0C78F8 0000C012 */ mflo $t8 +/* 0FC42C 7F0C78FC 00000000 */ nop +/* 0FC430 7F0C7900 00000000 */ nop +/* 0FC434 7F0C7904 02310019 */ multu $s1, $s1 +/* 0FC438 7F0C7908 0000C812 */ mflo $t9 +/* 0FC43C 7F0C790C 03197021 */ addu $t6, $t8, $t9 +/* 0FC440 7F0C7910 000AC900 */ sll $t9, $t2, 4 +/* 0FC444 7F0C7914 01290019 */ multu $t1, $t1 +/* 0FC448 7F0C7918 032AC823 */ subu $t9, $t9, $t2 +/* 0FC44C 7F0C791C 0019C980 */ sll $t9, $t9, 6 +/* 0FC450 7F0C7920 032AC821 */ addu $t9, $t9, $t2 +/* 0FC454 7F0C7924 00007812 */ mflo $t7 +/* 0FC458 7F0C7928 01CFC021 */ addu $t8, $t6, $t7 +/* 0FC45C 7F0C792C 03194021 */ addu $t0, $t8, $t9 +/* 0FC460 7F0C7930 00E55821 */ addu $t3, $a3, $a1 +.L7F0C7934: +/* 0FC464 7F0C7934 000B2043 */ sra $a0, $t3, 1 +/* 0FC468 7F0C7938 00047840 */ sll $t7, $a0, 1 +/* 0FC46C 7F0C793C 024FC021 */ addu $t8, $s2, $t7 +/* 0FC470 7F0C7940 97030000 */ lhu $v1, ($t8) +/* 0FC474 7F0C7944 000362C3 */ sra $t4, $v1, 0xb +/* 0FC478 7F0C7948 3199001F */ andi $t9, $t4, 0x1f +/* 0FC47C 7F0C794C 03390019 */ multu $t9, $t9 +/* 0FC480 7F0C7950 00036983 */ sra $t5, $v1, 6 +/* 0FC484 7F0C7954 31AE001F */ andi $t6, $t5, 0x1f +/* 0FC488 7F0C7958 00039843 */ sra $s3, $v1, 1 +/* 0FC48C 7F0C795C 326F001F */ andi $t7, $s3, 0x1f +/* 0FC490 7F0C7960 0000C012 */ mflo $t8 +/* 0FC494 7F0C7964 00000000 */ nop +/* 0FC498 7F0C7968 00000000 */ nop +/* 0FC49C 7F0C796C 01CE0019 */ multu $t6, $t6 +/* 0FC4A0 7F0C7970 0000C812 */ mflo $t9 +/* 0FC4A4 7F0C7974 03197021 */ addu $t6, $t8, $t9 +/* 0FC4A8 7F0C7978 30790001 */ andi $t9, $v1, 1 +/* 0FC4AC 7F0C797C 01EF0019 */ multu $t7, $t7 +/* 0FC4B0 7F0C7980 00007812 */ mflo $t7 +/* 0FC4B4 7F0C7984 01CFC021 */ addu $t8, $t6, $t7 +/* 0FC4B8 7F0C7988 00197100 */ sll $t6, $t9, 4 +/* 0FC4BC 7F0C798C 01D97023 */ subu $t6, $t6, $t9 +/* 0FC4C0 7F0C7990 000E7180 */ sll $t6, $t6, 6 +/* 0FC4C4 7F0C7994 01D97021 */ addu $t6, $t6, $t9 +/* 0FC4C8 7F0C7998 030EA021 */ addu $s4, $t8, $t6 +/* 0FC4CC 7F0C799C 0288082A */ slt $at, $s4, $t0 +/* 0FC4D0 7F0C79A0 50200004 */ beql $at, $zero, .L7F0C79B4 +/* 0FC4D4 7F0C79A4 0114082A */ slt $at, $t0, $s4 +/* 0FC4D8 7F0C79A8 10000007 */ b .L7F0C79C8 +/* 0FC4DC 7F0C79AC 00802825 */ move $a1, $a0 +/* 0FC4E0 7F0C79B0 0114082A */ slt $at, $t0, $s4 +.L7F0C79B4: +/* 0FC4E4 7F0C79B4 10200003 */ beqz $at, .L7F0C79C4 +/* 0FC4E8 7F0C79B8 00803825 */ move $a3, $a0 +/* 0FC4EC 7F0C79BC 10000002 */ b .L7F0C79C8 +/* 0FC4F0 7F0C79C0 00803825 */ move $a3, $a0 +.L7F0C79C4: +/* 0FC4F4 7F0C79C4 00802825 */ move $a1, $a0 +.L7F0C79C8: +/* 0FC4F8 7F0C79C8 00E57823 */ subu $t7, $a3, $a1 +/* 0FC4FC 7F0C79CC 29E10002 */ slti $at, $t7, 2 +/* 0FC500 7F0C79D0 5020FFD8 */ beql $at, $zero, .L7F0C7934 +/* 0FC504 7F0C79D4 00E55821 */ addu $t3, $a3, $a1 +.L7F0C79D8: +/* 0FC508 7F0C79D8 24E5FFFC */ addiu $a1, $a3, -4 +/* 0FC50C 7F0C79DC 04A10002 */ bgez $a1, .L7F0C79E8 +/* 0FC510 7F0C79E0 8FB9001C */ lw $t9, 0x1c($sp) +/* 0FC514 7F0C79E4 00002825 */ move $a1, $zero +.L7F0C79E8: +/* 0FC518 7F0C79E8 24E70004 */ addiu $a3, $a3, 4 +/* 0FC51C 7F0C79EC 00F9082A */ slt $at, $a3, $t9 +/* 0FC520 7F0C79F0 14200002 */ bnez $at, .L7F0C79FC +/* 0FC524 7F0C79F4 3C14000F */ lui $s4, (0x000F423F >> 16) # lui $s4, 0xf +/* 0FC528 7F0C79F8 00C03825 */ move $a3, $a2 +.L7F0C79FC: +/* 0FC52C 7F0C79FC 3694423F */ ori $s4, (0x000F423F & 0xFFFF) # ori $s4, $s4, 0x423f +/* 0FC530 7F0C7A00 00E5082A */ slt $at, $a3, $a1 +/* 0FC534 7F0C7A04 00004025 */ move $t0, $zero +/* 0FC538 7F0C7A08 02803025 */ move $a2, $s4 +/* 0FC53C 7F0C7A0C 1420006A */ bnez $at, .L7F0C7BB8 +/* 0FC540 7F0C7A10 00A02025 */ move $a0, $a1 +/* 0FC544 7F0C7A14 00E51023 */ subu $v0, $a3, $a1 +/* 0FC548 7F0C7A18 24420001 */ addiu $v0, $v0, 1 +/* 0FC54C 7F0C7A1C 30580001 */ andi $t8, $v0, 1 +/* 0FC550 7F0C7A20 13000023 */ beqz $t8, .L7F0C7AB0 +/* 0FC554 7F0C7A24 00057040 */ sll $t6, $a1, 1 +/* 0FC558 7F0C7A28 024E7821 */ addu $t7, $s2, $t6 +/* 0FC55C 7F0C7A2C 95E20000 */ lhu $v0, ($t7) +/* 0FC560 7F0C7A30 24A40001 */ addiu $a0, $a1, 1 +/* 0FC564 7F0C7A34 240303C1 */ li $v1, 961 +/* 0FC568 7F0C7A38 30590001 */ andi $t9, $v0, 1 +/* 0FC56C 7F0C7A3C 15590003 */ bne $t2, $t9, .L7F0C7A4C +/* 0FC570 7F0C7A40 0002C2C3 */ sra $t8, $v0, 0xb +/* 0FC574 7F0C7A44 10000001 */ b .L7F0C7A4C +/* 0FC578 7F0C7A48 00001825 */ move $v1, $zero +.L7F0C7A4C: +/* 0FC57C 7F0C7A4C 330E001F */ andi $t6, $t8, 0x1f +/* 0FC580 7F0C7A50 01D05823 */ subu $t3, $t6, $s0 +/* 0FC584 7F0C7A54 016B0019 */ multu $t3, $t3 +/* 0FC588 7F0C7A58 00027983 */ sra $t7, $v0, 6 +/* 0FC58C 7F0C7A5C 31F9001F */ andi $t9, $t7, 0x1f +/* 0FC590 7F0C7A60 03316023 */ subu $t4, $t9, $s1 +/* 0FC594 7F0C7A64 0002C043 */ sra $t8, $v0, 1 +/* 0FC598 7F0C7A68 330E001F */ andi $t6, $t8, 0x1f +/* 0FC59C 7F0C7A6C 01C96823 */ subu $t5, $t6, $t1 +/* 0FC5A0 7F0C7A70 00007812 */ mflo $t7 +/* 0FC5A4 7F0C7A74 006FC821 */ addu $t9, $v1, $t7 +/* 0FC5A8 7F0C7A78 00000000 */ nop +/* 0FC5AC 7F0C7A7C 018C0019 */ multu $t4, $t4 +/* 0FC5B0 7F0C7A80 0000C012 */ mflo $t8 +/* 0FC5B4 7F0C7A84 03387021 */ addu $t6, $t9, $t8 +/* 0FC5B8 7F0C7A88 24F90001 */ addiu $t9, $a3, 1 +/* 0FC5BC 7F0C7A8C 01AD0019 */ multu $t5, $t5 +/* 0FC5C0 7F0C7A90 00007812 */ mflo $t7 +/* 0FC5C4 7F0C7A94 01CF9821 */ addu $s3, $t6, $t7 +/* 0FC5C8 7F0C7A98 0274082A */ slt $at, $s3, $s4 +/* 0FC5CC 7F0C7A9C 10200003 */ beqz $at, .L7F0C7AAC +/* 0FC5D0 7F0C7AA0 00000000 */ nop +/* 0FC5D4 7F0C7AA4 00A04025 */ move $t0, $a1 +/* 0FC5D8 7F0C7AA8 02603025 */ move $a2, $s3 +.L7F0C7AAC: +/* 0FC5DC 7F0C7AAC 13240042 */ beq $t9, $a0, .L7F0C7BB8 +.L7F0C7AB0: +/* 0FC5E0 7F0C7AB0 0004C040 */ sll $t8, $a0, 1 +/* 0FC5E4 7F0C7AB4 02582821 */ addu $a1, $s2, $t8 +.L7F0C7AB8: +/* 0FC5E8 7F0C7AB8 94A20000 */ lhu $v0, ($a1) +/* 0FC5EC 7F0C7ABC 240303C1 */ li $v1, 961 +/* 0FC5F0 7F0C7AC0 304E0001 */ andi $t6, $v0, 1 +/* 0FC5F4 7F0C7AC4 154E0003 */ bne $t2, $t6, .L7F0C7AD4 +/* 0FC5F8 7F0C7AC8 00027AC3 */ sra $t7, $v0, 0xb +/* 0FC5FC 7F0C7ACC 10000001 */ b .L7F0C7AD4 +/* 0FC600 7F0C7AD0 00001825 */ move $v1, $zero +.L7F0C7AD4: +/* 0FC604 7F0C7AD4 31F9001F */ andi $t9, $t7, 0x1f +/* 0FC608 7F0C7AD8 03306023 */ subu $t4, $t9, $s0 +/* 0FC60C 7F0C7ADC 018C0019 */ multu $t4, $t4 +/* 0FC610 7F0C7AE0 0002C183 */ sra $t8, $v0, 6 +/* 0FC614 7F0C7AE4 330E001F */ andi $t6, $t8, 0x1f +/* 0FC618 7F0C7AE8 01D16823 */ subu $t5, $t6, $s1 +/* 0FC61C 7F0C7AEC 00027843 */ sra $t7, $v0, 1 +/* 0FC620 7F0C7AF0 31F9001F */ andi $t9, $t7, 0x1f +/* 0FC624 7F0C7AF4 03299023 */ subu $s2, $t9, $t1 +/* 0FC628 7F0C7AF8 0000C012 */ mflo $t8 +/* 0FC62C 7F0C7AFC 00787021 */ addu $t6, $v1, $t8 +/* 0FC630 7F0C7B00 240303C1 */ li $v1, 961 +/* 0FC634 7F0C7B04 01AD0019 */ multu $t5, $t5 +/* 0FC638 7F0C7B08 00007812 */ mflo $t7 +/* 0FC63C 7F0C7B0C 01CFC821 */ addu $t9, $t6, $t7 +/* 0FC640 7F0C7B10 00000000 */ nop +/* 0FC644 7F0C7B14 02520019 */ multu $s2, $s2 +/* 0FC648 7F0C7B18 0000C012 */ mflo $t8 +/* 0FC64C 7F0C7B1C 03389821 */ addu $s3, $t9, $t8 +/* 0FC650 7F0C7B20 0266082A */ slt $at, $s3, $a2 +/* 0FC654 7F0C7B24 50200004 */ beql $at, $zero, .L7F0C7B38 +/* 0FC658 7F0C7B28 94A20002 */ lhu $v0, 2($a1) +/* 0FC65C 7F0C7B2C 00804025 */ move $t0, $a0 +/* 0FC660 7F0C7B30 02603025 */ move $a2, $s3 +/* 0FC664 7F0C7B34 94A20002 */ lhu $v0, 2($a1) +.L7F0C7B38: +/* 0FC668 7F0C7B38 304E0001 */ andi $t6, $v0, 1 +/* 0FC66C 7F0C7B3C 154E0003 */ bne $t2, $t6, .L7F0C7B4C +/* 0FC670 7F0C7B40 00027AC3 */ sra $t7, $v0, 0xb +/* 0FC674 7F0C7B44 10000001 */ b .L7F0C7B4C +/* 0FC678 7F0C7B48 00001825 */ move $v1, $zero +.L7F0C7B4C: +/* 0FC67C 7F0C7B4C 31F9001F */ andi $t9, $t7, 0x1f +/* 0FC680 7F0C7B50 03305823 */ subu $t3, $t9, $s0 +/* 0FC684 7F0C7B54 016B0019 */ multu $t3, $t3 +/* 0FC688 7F0C7B58 0002C183 */ sra $t8, $v0, 6 +/* 0FC68C 7F0C7B5C 330E001F */ andi $t6, $t8, 0x1f +/* 0FC690 7F0C7B60 01D16023 */ subu $t4, $t6, $s1 +/* 0FC694 7F0C7B64 00027843 */ sra $t7, $v0, 1 +/* 0FC698 7F0C7B68 31F9001F */ andi $t9, $t7, 0x1f +/* 0FC69C 7F0C7B6C 03296823 */ subu $t5, $t9, $t1 +/* 0FC6A0 7F0C7B70 0000C012 */ mflo $t8 +/* 0FC6A4 7F0C7B74 00787021 */ addu $t6, $v1, $t8 +/* 0FC6A8 7F0C7B78 00000000 */ nop +/* 0FC6AC 7F0C7B7C 018C0019 */ multu $t4, $t4 +/* 0FC6B0 7F0C7B80 00007812 */ mflo $t7 +/* 0FC6B4 7F0C7B84 01CFC821 */ addu $t9, $t6, $t7 +/* 0FC6B8 7F0C7B88 24EE0001 */ addiu $t6, $a3, 1 +/* 0FC6BC 7F0C7B8C 01AD0019 */ multu $t5, $t5 +/* 0FC6C0 7F0C7B90 0000C012 */ mflo $t8 +/* 0FC6C4 7F0C7B94 03389021 */ addu $s2, $t9, $t8 +/* 0FC6C8 7F0C7B98 0246082A */ slt $at, $s2, $a2 +/* 0FC6CC 7F0C7B9C 50200004 */ beql $at, $zero, .L7F0C7BB0 +/* 0FC6D0 7F0C7BA0 24840002 */ addiu $a0, $a0, 2 +/* 0FC6D4 7F0C7BA4 24880001 */ addiu $t0, $a0, 1 +/* 0FC6D8 7F0C7BA8 02403025 */ move $a2, $s2 +/* 0FC6DC 7F0C7BAC 24840002 */ addiu $a0, $a0, 2 +.L7F0C7BB0: +/* 0FC6E0 7F0C7BB0 15C4FFC1 */ bne $t6, $a0, .L7F0C7AB8 +/* 0FC6E4 7F0C7BB4 24A50004 */ addiu $a1, $a1, 4 +.L7F0C7BB8: +/* 0FC6E8 7F0C7BB8 01001025 */ move $v0, $t0 +.L7F0C7BBC: +/* 0FC6EC 7F0C7BBC 8FB00004 */ lw $s0, 4($sp) +/* 0FC6F0 7F0C7BC0 8FB10008 */ lw $s1, 8($sp) +/* 0FC6F4 7F0C7BC4 8FB2000C */ lw $s2, 0xc($sp) +/* 0FC6F8 7F0C7BC8 8FB30010 */ lw $s3, 0x10($sp) +/* 0FC6FC 7F0C7BCC 8FB40014 */ lw $s4, 0x14($sp) +/* 0FC700 7F0C7BD0 03E00008 */ jr $ra +/* 0FC704 7F0C7BD4 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C7BD8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C7BD8 +/* 0FC708 7F0C7BD8 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 0FC70C 7F0C7BDC AFB1000C */ sw $s1, 0xc($sp) +/* 0FC710 7F0C7BE0 AFB00008 */ sw $s0, 8($sp) +/* 0FC714 7F0C7BE4 18A00030 */ blez $a1, .L7F0C7CA8 +/* 0FC718 7F0C7BE8 00001825 */ move $v1, $zero +/* 0FC71C 7F0C7BEC 30AA0003 */ andi $t2, $a1, 3 +/* 0FC720 7F0C7BF0 11400010 */ beqz $t2, .L7F0C7C34 +/* 0FC724 7F0C7BF4 01404025 */ move $t0, $t2 +/* 0FC728 7F0C7BF8 00067A00 */ sll $t7, $a2, 8 +/* 0FC72C 7F0C7BFC 01E74825 */ or $t1, $t7, $a3 +/* 0FC730 7F0C7C00 3138FFFF */ andi $t8, $t1, 0xffff +/* 0FC734 7F0C7C04 00007040 */ sll $t6, $zero, 1 +/* 0FC738 7F0C7C08 008E1021 */ addu $v0, $a0, $t6 +/* 0FC73C 7F0C7C0C 03004825 */ move $t1, $t8 +.L7F0C7C10: +/* 0FC740 7F0C7C10 94590000 */ lhu $t9, ($v0) +/* 0FC744 7F0C7C14 55390004 */ bnel $t1, $t9, .L7F0C7C28 +/* 0FC748 7F0C7C18 24630001 */ addiu $v1, $v1, 1 +/* 0FC74C 7F0C7C1C 10000073 */ b .L7F0C7DEC +/* 0FC750 7F0C7C20 00601025 */ move $v0, $v1 +/* 0FC754 7F0C7C24 24630001 */ addiu $v1, $v1, 1 +.L7F0C7C28: +/* 0FC758 7F0C7C28 1503FFF9 */ bne $t0, $v1, .L7F0C7C10 +/* 0FC75C 7F0C7C2C 24420002 */ addiu $v0, $v0, 2 +/* 0FC760 7F0C7C30 1065001D */ beq $v1, $a1, .L7F0C7CA8 +.L7F0C7C34: +/* 0FC764 7F0C7C34 00067A00 */ sll $t7, $a2, 8 +/* 0FC768 7F0C7C38 01E74825 */ or $t1, $t7, $a3 +/* 0FC76C 7F0C7C3C 3138FFFF */ andi $t8, $t1, 0xffff +/* 0FC770 7F0C7C40 00037040 */ sll $t6, $v1, 1 +/* 0FC774 7F0C7C44 008E1021 */ addu $v0, $a0, $t6 +/* 0FC778 7F0C7C48 03004825 */ move $t1, $t8 +.L7F0C7C4C: +/* 0FC77C 7F0C7C4C 94590000 */ lhu $t9, ($v0) +/* 0FC780 7F0C7C50 55390004 */ bnel $t1, $t9, .L7F0C7C64 +/* 0FC784 7F0C7C54 944E0002 */ lhu $t6, 2($v0) +/* 0FC788 7F0C7C58 10000064 */ b .L7F0C7DEC +/* 0FC78C 7F0C7C5C 00601025 */ move $v0, $v1 +/* 0FC790 7F0C7C60 944E0002 */ lhu $t6, 2($v0) +.L7F0C7C64: +/* 0FC794 7F0C7C64 552E0004 */ bnel $t1, $t6, .L7F0C7C78 +/* 0FC798 7F0C7C68 944F0004 */ lhu $t7, 4($v0) +/* 0FC79C 7F0C7C6C 1000005F */ b .L7F0C7DEC +/* 0FC7A0 7F0C7C70 24620001 */ addiu $v0, $v1, 1 +/* 0FC7A4 7F0C7C74 944F0004 */ lhu $t7, 4($v0) +.L7F0C7C78: +/* 0FC7A8 7F0C7C78 552F0004 */ bnel $t1, $t7, .L7F0C7C8C +/* 0FC7AC 7F0C7C7C 94580006 */ lhu $t8, 6($v0) +/* 0FC7B0 7F0C7C80 1000005A */ b .L7F0C7DEC +/* 0FC7B4 7F0C7C84 24620002 */ addiu $v0, $v1, 2 +/* 0FC7B8 7F0C7C88 94580006 */ lhu $t8, 6($v0) +.L7F0C7C8C: +/* 0FC7BC 7F0C7C8C 55380004 */ bnel $t1, $t8, .L7F0C7CA0 +/* 0FC7C0 7F0C7C90 24630004 */ addiu $v1, $v1, 4 +/* 0FC7C4 7F0C7C94 10000055 */ b .L7F0C7DEC +/* 0FC7C8 7F0C7C98 24620003 */ addiu $v0, $v1, 3 +/* 0FC7CC 7F0C7C9C 24630004 */ addiu $v1, $v1, 4 +.L7F0C7CA0: +/* 0FC7D0 7F0C7CA0 1465FFEA */ bne $v1, $a1, .L7F0C7C4C +/* 0FC7D4 7F0C7CA4 24420008 */ addiu $v0, $v0, 8 +.L7F0C7CA8: +/* 0FC7D8 7F0C7CA8 24A8FFFF */ addiu $t0, $a1, -1 +/* 0FC7DC 7F0C7CAC 29010002 */ slti $at, $t0, 2 +/* 0FC7E0 7F0C7CB0 00001025 */ move $v0, $zero +/* 0FC7E4 7F0C7CB4 14200027 */ bnez $at, .L7F0C7D54 +/* 0FC7E8 7F0C7CB8 01001825 */ move $v1, $t0 +/* 0FC7EC 7F0C7CBC 00C60019 */ multu $a2, $a2 +/* 0FC7F0 7F0C7CC0 0000C812 */ mflo $t9 +/* 0FC7F4 7F0C7CC4 00000000 */ nop +/* 0FC7F8 7F0C7CC8 00000000 */ nop +/* 0FC7FC 7F0C7CCC 00E70019 */ multu $a3, $a3 +/* 0FC800 7F0C7CD0 00007012 */ mflo $t6 +/* 0FC804 7F0C7CD4 032E4821 */ addu $t1, $t9, $t6 +/* 0FC808 7F0C7CD8 00000000 */ nop +/* 0FC80C 7F0C7CDC 00625821 */ addu $t3, $v1, $v0 +.L7F0C7CE0: +/* 0FC810 7F0C7CE0 000B5043 */ sra $t2, $t3, 1 +/* 0FC814 7F0C7CE4 000AC040 */ sll $t8, $t2, 1 +/* 0FC818 7F0C7CE8 0098C821 */ addu $t9, $a0, $t8 +/* 0FC81C 7F0C7CEC 972C0000 */ lhu $t4, ($t9) +/* 0FC820 7F0C7CF0 000C6A03 */ sra $t5, $t4, 8 +/* 0FC824 7F0C7CF4 31AE00FF */ andi $t6, $t5, 0xff +/* 0FC828 7F0C7CF8 01CE0019 */ multu $t6, $t6 +/* 0FC82C 7F0C7CFC 319000FF */ andi $s0, $t4, 0xff +/* 0FC830 7F0C7D00 00007812 */ mflo $t7 +/* 0FC834 7F0C7D04 00000000 */ nop +/* 0FC838 7F0C7D08 00000000 */ nop +/* 0FC83C 7F0C7D0C 02100019 */ multu $s0, $s0 +/* 0FC840 7F0C7D10 0000C012 */ mflo $t8 +/* 0FC844 7F0C7D14 01F88821 */ addu $s1, $t7, $t8 +/* 0FC848 7F0C7D18 0229082A */ slt $at, $s1, $t1 +/* 0FC84C 7F0C7D1C 50200004 */ beql $at, $zero, .L7F0C7D30 +/* 0FC850 7F0C7D20 0131082A */ slt $at, $t1, $s1 +/* 0FC854 7F0C7D24 10000007 */ b .L7F0C7D44 +/* 0FC858 7F0C7D28 01401025 */ move $v0, $t2 +/* 0FC85C 7F0C7D2C 0131082A */ slt $at, $t1, $s1 +.L7F0C7D30: +/* 0FC860 7F0C7D30 10200003 */ beqz $at, .L7F0C7D40 +/* 0FC864 7F0C7D34 01401825 */ move $v1, $t2 +/* 0FC868 7F0C7D38 10000002 */ b .L7F0C7D44 +/* 0FC86C 7F0C7D3C 01401825 */ move $v1, $t2 +.L7F0C7D40: +/* 0FC870 7F0C7D40 01401025 */ move $v0, $t2 +.L7F0C7D44: +/* 0FC874 7F0C7D44 0062C823 */ subu $t9, $v1, $v0 +/* 0FC878 7F0C7D48 2B210002 */ slti $at, $t9, 2 +/* 0FC87C 7F0C7D4C 5020FFE4 */ beql $at, $zero, .L7F0C7CE0 +/* 0FC880 7F0C7D50 00625821 */ addu $t3, $v1, $v0 +.L7F0C7D54: +/* 0FC884 7F0C7D54 2462FFFC */ addiu $v0, $v1, -4 +/* 0FC888 7F0C7D58 04410002 */ bgez $v0, .L7F0C7D64 +/* 0FC88C 7F0C7D5C 24630004 */ addiu $v1, $v1, 4 +/* 0FC890 7F0C7D60 00001025 */ move $v0, $zero +.L7F0C7D64: +/* 0FC894 7F0C7D64 0065082A */ slt $at, $v1, $a1 +/* 0FC898 7F0C7D68 14200002 */ bnez $at, .L7F0C7D74 +/* 0FC89C 7F0C7D6C 00002825 */ move $a1, $zero +/* 0FC8A0 7F0C7D70 01001825 */ move $v1, $t0 +.L7F0C7D74: +/* 0FC8A4 7F0C7D74 3C08000F */ lui $t0, (0x000F423F >> 16) # lui $t0, 0xf +/* 0FC8A8 7F0C7D78 0062082A */ slt $at, $v1, $v0 +/* 0FC8AC 7F0C7D7C 3508423F */ ori $t0, (0x000F423F & 0xFFFF) # ori $t0, $t0, 0x423f +/* 0FC8B0 7F0C7D80 14200019 */ bnez $at, .L7F0C7DE8 +/* 0FC8B4 7F0C7D84 00405025 */ move $t2, $v0 +/* 0FC8B8 7F0C7D88 00027040 */ sll $t6, $v0, 1 +/* 0FC8BC 7F0C7D8C 008E1021 */ addu $v0, $a0, $t6 +/* 0FC8C0 7F0C7D90 246B0001 */ addiu $t3, $v1, 1 +.L7F0C7D94: +/* 0FC8C4 7F0C7D94 944C0000 */ lhu $t4, ($v0) +/* 0FC8C8 7F0C7D98 000C7A03 */ sra $t7, $t4, 8 +/* 0FC8CC 7F0C7D9C 31F800FF */ andi $t8, $t7, 0xff +/* 0FC8D0 7F0C7DA0 03061823 */ subu $v1, $t8, $a2 +/* 0FC8D4 7F0C7DA4 00630019 */ multu $v1, $v1 +/* 0FC8D8 7F0C7DA8 319900FF */ andi $t9, $t4, 0xff +/* 0FC8DC 7F0C7DAC 03272023 */ subu $a0, $t9, $a3 +/* 0FC8E0 7F0C7DB0 00007012 */ mflo $t6 +/* 0FC8E4 7F0C7DB4 00000000 */ nop +/* 0FC8E8 7F0C7DB8 00000000 */ nop +/* 0FC8EC 7F0C7DBC 00840019 */ multu $a0, $a0 +/* 0FC8F0 7F0C7DC0 00007812 */ mflo $t7 +/* 0FC8F4 7F0C7DC4 01CF4821 */ addu $t1, $t6, $t7 +/* 0FC8F8 7F0C7DC8 0128082A */ slt $at, $t1, $t0 +/* 0FC8FC 7F0C7DCC 50200004 */ beql $at, $zero, .L7F0C7DE0 +/* 0FC900 7F0C7DD0 254A0001 */ addiu $t2, $t2, 1 +/* 0FC904 7F0C7DD4 01402825 */ move $a1, $t2 +/* 0FC908 7F0C7DD8 01204025 */ move $t0, $t1 +/* 0FC90C 7F0C7DDC 254A0001 */ addiu $t2, $t2, 1 +.L7F0C7DE0: +/* 0FC910 7F0C7DE0 156AFFEC */ bne $t3, $t2, .L7F0C7D94 +/* 0FC914 7F0C7DE4 24420002 */ addiu $v0, $v0, 2 +.L7F0C7DE8: +/* 0FC918 7F0C7DE8 00A01025 */ move $v0, $a1 +.L7F0C7DEC: +/* 0FC91C 7F0C7DEC 8FB00008 */ lw $s0, 8($sp) +/* 0FC920 7F0C7DF0 8FB1000C */ lw $s1, 0xc($sp) +/* 0FC924 7F0C7DF4 03E00008 */ jr $ra +/* 0FC928 7F0C7DF8 27BD0010 */ addiu $sp, $sp, 0x10 +) +#endif + + + + + +#ifdef NONMATCHING +void process_huffman_compressed_images(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BD30*/ +glabel jpt_8005BD30 +.word huffman_type0_1 +.word huffman_type0_1 +.word huffman_type2 +.word huffman_type3 +.word huffman_type4 +.word huffman_type5 +.word huffman_type6 +.word huffman_type7 +.word huffman_type8 +.word huffman_type9 +.text +glabel process_huffman_compressed_images +/* 0FC92C 7F0C7DFC 27BDCF58 */ addiu $sp, $sp, -0x30a8 +/* 0FC930 7F0C7E00 AFBF004C */ sw $ra, 0x4c($sp) +/* 0FC934 7F0C7E04 AFBE0048 */ sw $fp, 0x48($sp) +/* 0FC938 7F0C7E08 AFB70044 */ sw $s7, 0x44($sp) +/* 0FC93C 7F0C7E0C AFB60040 */ sw $s6, 0x40($sp) +/* 0FC940 7F0C7E10 AFB5003C */ sw $s5, 0x3c($sp) +/* 0FC944 7F0C7E14 AFB40038 */ sw $s4, 0x38($sp) +/* 0FC948 7F0C7E18 AFB30034 */ sw $s3, 0x34($sp) +/* 0FC94C 7F0C7E1C AFB20030 */ sw $s2, 0x30($sp) +/* 0FC950 7F0C7E20 AFB1002C */ sw $s1, 0x2c($sp) +/* 0FC954 7F0C7E24 AFB00028 */ sw $s0, 0x28($sp) +/* 0FC958 7F0C7E28 AFA530AC */ sw $a1, 0x30ac($sp) +/* 0FC95C 7F0C7E2C AFA630B0 */ sw $a2, 0x30b0($sp) +/* 0FC960 7F0C7E30 AFA730B4 */ sw $a3, 0x30b4($sp) +/* 0FC964 7F0C7E34 AFA00088 */ sw $zero, 0x88($sp) +/* 0FC968 7F0C7E38 0FC32FC4 */ jal makeemptyimageatpos +/* 0FC96C 7F0C7E3C AFA00070 */ sw $zero, 0x70($sp) +/* 0FC970 7F0C7E40 8FA930B0 */ lw $t1, 0x30b0($sp) +/* 0FC974 7F0C7E44 8FAA30B4 */ lw $t2, 0x30b4($sp) +/* 0FC978 7F0C7E48 240E0001 */ li $t6, 1 +/* 0FC97C 7F0C7E4C 11200005 */ beqz $t1, .L7F0C7E64 +/* 0FC980 7F0C7E50 3C088009 */ lui $t0, %hi(dword_CODE_bss_8008D090) +/* 0FC984 7F0C7E54 51400004 */ beql $t2, $zero, .L7F0C7E68 +/* 0FC988 7F0C7E58 8FAA30B4 */ lw $t2, 0x30b4($sp) +/* 0FC98C 7F0C7E5C 10000003 */ b .L7F0C7E6C +/* 0FC990 7F0C7E60 AFAA009C */ sw $t2, 0x9c($sp) +.L7F0C7E64: +/* 0FC994 7F0C7E64 8FAA30B4 */ lw $t2, 0x30b4($sp) +.L7F0C7E68: +/* 0FC998 7F0C7E68 AFAE009C */ sw $t6, 0x9c($sp) +.L7F0C7E6C: +/* 0FC99C 7F0C7E6C 8FA730B8 */ lw $a3, 0x30b8($sp) +/* 0FC9A0 7F0C7E70 000AC940 */ sll $t9, $t2, 5 +/* 0FC9A4 7F0C7E74 00097940 */ sll $t7, $t1, 5 +/* 0FC9A8 7F0C7E78 8CE3000C */ lw $v1, 0xc($a3) +/* 0FC9AC 7F0C7E7C 31F80020 */ andi $t8, $t7, 0x20 +/* 0FC9B0 7F0C7E80 2508D090 */ addiu $t0, %lo(dword_CODE_bss_8008D090) # addiu $t0, $t0, -0x2f70 +/* 0FC9B4 7F0C7E84 906B000B */ lbu $t3, 0xb($v1) +/* 0FC9B8 7F0C7E88 316CFF1F */ andi $t4, $t3, 0xff1f +/* 0FC9BC 7F0C7E8C 032C6825 */ or $t5, $t9, $t4 +/* 0FC9C0 7F0C7E90 A06D000B */ sb $t5, 0xb($v1) +/* 0FC9C4 7F0C7E94 8CE3000C */ lw $v1, 0xc($a3) +/* 0FC9C8 7F0C7E98 906B000C */ lbu $t3, 0xc($v1) +/* 0FC9CC 7F0C7E9C 3179FFDF */ andi $t9, $t3, 0xffdf +/* 0FC9D0 7F0C7EA0 03196025 */ or $t4, $t8, $t9 +/* 0FC9D4 7F0C7EA4 11200017 */ beqz $t1, .L7F0C7F04 +/* 0FC9D8 7F0C7EA8 A06C000C */ sb $t4, 0xc($v1) +/* 0FC9DC 7F0C7EAC 8D050000 */ lw $a1, ($t0) +/* 0FC9E0 7F0C7EB0 24060001 */ li $a2, 1 +/* 0FC9E4 7F0C7EB4 AFA60070 */ sw $a2, 0x70($sp) +/* 0FC9E8 7F0C7EB8 58A00013 */ blezl $a1, .L7F0C7F08 +/* 0FC9EC 7F0C7EBC 8FB9009C */ lw $t9, 0x9c($sp) +/* 0FC9F0 7F0C7EC0 8CED000C */ lw $t5, 0xc($a3) +/* 0FC9F4 7F0C7EC4 3C0F8009 */ lui $t7, %hi(word_CODE_bss_8008C730) +/* 0FC9F8 7F0C7EC8 25E2C730 */ addiu $v0, $t7, %lo(word_CODE_bss_8008C730) +/* 0FC9FC 7F0C7ECC 8DA30000 */ lw $v1, ($t5) +/* 0FCA00 7F0C7ED0 00055900 */ sll $t3, $a1, 4 +/* 0FCA04 7F0C7ED4 01622021 */ addu $a0, $t3, $v0 +/* 0FCA08 7F0C7ED8 00037502 */ srl $t6, $v1, 0x14 +/* 0FCA0C 7F0C7EDC 01C01825 */ move $v1, $t6 +/* 0FCA10 7F0C7EE0 84580000 */ lh $t8, ($v0) +.L7F0C7EE4: +/* 0FCA14 7F0C7EE4 24420010 */ addiu $v0, $v0, 0x10 +/* 0FCA18 7F0C7EE8 0044082B */ sltu $at, $v0, $a0 +/* 0FCA1C 7F0C7EEC 14780002 */ bne $v1, $t8, .L7F0C7EF8 +/* 0FCA20 7F0C7EF0 00000000 */ nop +/* 0FCA24 7F0C7EF4 00003025 */ move $a2, $zero +.L7F0C7EF8: +/* 0FCA28 7F0C7EF8 5420FFFA */ bnezl $at, .L7F0C7EE4 +/* 0FCA2C 7F0C7EFC 84580000 */ lh $t8, ($v0) +/* 0FCA30 7F0C7F00 AFA60070 */ sw $a2, 0x70($sp) +.L7F0C7F04: +/* 0FCA34 7F0C7F04 8FB9009C */ lw $t9, 0x9c($sp) +.L7F0C7F08: +/* 0FCA38 7F0C7F08 3C088009 */ lui $t0, %hi(dword_CODE_bss_8008D090) +/* 0FCA3C 7F0C7F0C 2508D090 */ addiu $t0, %lo(dword_CODE_bss_8008D090) # addiu $t0, $t0, -0x2f70 +/* 0FCA40 7F0C7F10 8FA60070 */ lw $a2, 0x70($sp) +/* 0FCA44 7F0C7F14 1B2001BA */ blez $t9, .L7F0C8600 +/* 0FCA48 7F0C7F18 AFA000A0 */ sw $zero, 0xa0($sp) +/* 0FCA4C 7F0C7F1C AFA60070 */ sw $a2, 0x70($sp) +/* 0FCA50 7F0C7F20 27BE10A8 */ addiu $fp, $sp, 0x10a8 +.L7F0C7F24: +/* 0FCA54 7F0C7F24 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FCA58 7F0C7F28 24040004 */ li $a0, 4 +/* 0FCA5C 7F0C7F2C AFA20080 */ sw $v0, 0x80($sp) +/* 0FCA60 7F0C7F30 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FCA64 7F0C7F34 24040008 */ li $a0, 8 +/* 0FCA68 7F0C7F38 0040B025 */ move $s6, $v0 +/* 0FCA6C 7F0C7F3C 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FCA70 7F0C7F40 24040008 */ li $a0, 8 +/* 0FCA74 7F0C7F44 0040B825 */ move $s7, $v0 +/* 0FCA78 7F0C7F48 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FCA7C 7F0C7F4C 24040004 */ li $a0, 4 +/* 0FCA80 7F0C7F50 8FA500A0 */ lw $a1, 0xa0($sp) +/* 0FCA84 7F0C7F54 8FA430B8 */ lw $a0, 0x30b8($sp) +/* 0FCA88 7F0C7F58 8FAB0070 */ lw $t3, 0x70($sp) +/* 0FCA8C 7F0C7F5C 14A00026 */ bnez $a1, .L7F0C7FF8 +/* 0FCA90 7F0C7F60 00000000 */ nop +/* 0FCA94 7F0C7F64 8C8C000C */ lw $t4, 0xc($a0) +/* 0FCA98 7F0C7F68 3C0B8005 */ lui $t3, %hi(n64imagetypes) +/* 0FCA9C 7F0C7F6C A1960008 */ sb $s6, 8($t4) +/* 0FCAA0 7F0C7F70 8C8D000C */ lw $t5, 0xc($a0) +/* 0FCAA4 7F0C7F74 A1B70009 */ sb $s7, 9($t5) +/* 0FCAA8 7F0C7F78 8FB40080 */ lw $s4, 0x80($sp) +/* 0FCAAC 7F0C7F7C 8C83000C */ lw $v1, 0xc($a0) +/* 0FCAB0 7F0C7F80 00147080 */ sll $t6, $s4, 2 +/* 0FCAB4 7F0C7F84 016E5821 */ addu $t3, $t3, $t6 +/* 0FCAB8 7F0C7F88 8D6F9248 */ lw $t7, %lo(n64imagetypes)($t3) +/* 0FCABC 7F0C7F8C 906C000B */ lbu $t4, 0xb($v1) +/* 0FCAC0 7F0C7F90 01C0A025 */ move $s4, $t6 +/* 0FCAC4 7F0C7F94 000FC080 */ sll $t8, $t7, 2 +/* 0FCAC8 7F0C7F98 3319001C */ andi $t9, $t8, 0x1c +/* 0FCACC 7F0C7F9C 318DFFE3 */ andi $t5, $t4, 0xffe3 +/* 0FCAD0 7F0C7FA0 032D7025 */ or $t6, $t9, $t5 +/* 0FCAD4 7F0C7FA4 A06E000B */ sb $t6, 0xb($v1) +/* 0FCAD8 7F0C7FA8 8C83000C */ lw $v1, 0xc($a0) +/* 0FCADC 7F0C7FAC 3C0B8005 */ lui $t3, %hi(n64pixelsizes) +/* 0FCAE0 7F0C7FB0 01745821 */ addu $t3, $t3, $s4 +/* 0FCAE4 7F0C7FB4 8D6F927C */ lw $t7, %lo(n64pixelsizes)($t3) +/* 0FCAE8 7F0C7FB8 906C000B */ lbu $t4, 0xb($v1) +/* 0FCAEC 7F0C7FBC 3C0E8005 */ lui $t6, %hi(imgflipvalues) +/* 0FCAF0 7F0C7FC0 31F80003 */ andi $t8, $t7, 3 +/* 0FCAF4 7F0C7FC4 3199FFFC */ andi $t9, $t4, 0xfffc +/* 0FCAF8 7F0C7FC8 03196825 */ or $t5, $t8, $t9 +/* 0FCAFC 7F0C7FCC A06D000B */ sb $t5, 0xb($v1) +/* 0FCB00 7F0C7FD0 8C83000C */ lw $v1, 0xc($a0) +/* 0FCB04 7F0C7FD4 01D47021 */ addu $t6, $t6, $s4 +/* 0FCB08 7F0C7FD8 8DCE92B0 */ lw $t6, %lo(imgflipvalues)($t6) +/* 0FCB0C 7F0C7FDC 9079000C */ lbu $t9, 0xc($v1) +/* 0FCB10 7F0C7FE0 000E7B83 */ sra $t7, $t6, 0xe +/* 0FCB14 7F0C7FE4 000FC180 */ sll $t8, $t7, 6 +/* 0FCB18 7F0C7FE8 332DFF3F */ andi $t5, $t9, 0xff3f +/* 0FCB1C 7F0C7FEC 030D7025 */ or $t6, $t8, $t5 +/* 0FCB20 7F0C7FF0 1000000B */ b .L7F0C8020 +/* 0FCB24 7F0C7FF4 A06E000C */ sb $t6, 0xc($v1) +.L7F0C7FF8: +/* 0FCB28 7F0C7FF8 11600009 */ beqz $t3, .L7F0C8020 +/* 0FCB2C 7F0C7FFC 3C0F8009 */ lui $t7, %hi(dword_CODE_bss_8008D090) +/* 0FCB30 7F0C8000 8DEFD090 */ lw $t7, %lo(dword_CODE_bss_8008D090)($t7) +/* 0FCB34 7F0C8004 3C188009 */ lui $t8, %hi(word_CODE_bss_8008C730) +/* 0FCB38 7F0C8008 2718C730 */ addiu $t8, %lo(word_CODE_bss_8008C730) # addiu $t8, $t8, -0x38d0 +/* 0FCB3C 7F0C800C 000F6100 */ sll $t4, $t7, 4 +/* 0FCB40 7F0C8010 0185C821 */ addu $t9, $t4, $a1 +/* 0FCB44 7F0C8014 03381821 */ addu $v1, $t9, $t8 +/* 0FCB48 7F0C8018 A0760001 */ sb $s6, 1($v1) +/* 0FCB4C 7F0C801C A0770008 */ sb $s7, 8($v1) +.L7F0C8020: +/* 0FCB50 7F0C8020 02D70019 */ multu $s6, $s7 +/* 0FCB54 7F0C8024 00026880 */ sll $t5, $v0, 2 +/* 0FCB58 7F0C8028 0000A812 */ mflo $s5 +/* 0FCB5C 7F0C802C 2AA12001 */ slti $at, $s5, 0x2001 +/* 0FCB60 7F0C8030 54200004 */ bnezl $at, .L7F0C8044 +/* 0FCB64 7F0C8034 2C41000A */ sltiu $at, $v0, 0xa +/* 0FCB68 7F0C8038 100001BA */ b .L7F0C8724 +/* 0FCB6C 7F0C803C 00001025 */ move $v0, $zero +/* 0FCB70 7F0C8040 2C41000A */ sltiu $at, $v0, 0xa +.L7F0C8044: +/* 0FCB74 7F0C8044 1020013B */ beqz $at, .L7F0C8534 +/* 0FCB78 7F0C8048 3C018006 */ lui $at, %hi(jpt_8005BD30) +/* 0FCB7C 7F0C804C 002D0821 */ addu $at, $at, $t5 +/* 0FCB80 7F0C8050 8C2DBD30 */ lw $t5, %lo(jpt_8005BD30)($at) +/* 0FCB84 7F0C8054 01A00008 */ jr $t5 +/* 0FCB88 7F0C8058 00000000 */ nop +huffman_type0_1: +/* 0FCB8C 7F0C805C 8FAE30AC */ lw $t6, 0x30ac($sp) +/* 0FCB90 7F0C8060 8FAB0088 */ lw $t3, 0x88($sp) +/* 0FCB94 7F0C8064 02C02825 */ move $a1, $s6 +/* 0FCB98 7F0C8068 02E03025 */ move $a2, $s7 +/* 0FCB9C 7F0C806C 01CB8021 */ addu $s0, $t6, $t3 +/* 0FCBA0 7F0C8070 02002025 */ move $a0, $s0 +/* 0FCBA4 7F0C8074 0FC326A7 */ jal image_compression0_expand +/* 0FCBA8 7F0C8078 8FA70080 */ lw $a3, 0x80($sp) +/* 0FCBAC 7F0C807C 10000137 */ b .L7F0C855C +/* 0FCBB0 7F0C8080 00408825 */ move $s1, $v0 +huffman_type2: +/* 0FCBB4 7F0C8084 8FB40080 */ lw $s4, 0x80($sp) +/* 0FCBB8 7F0C8088 3C0C8005 */ lui $t4, %hi(pixelbytecounts) +/* 0FCBBC 7F0C808C 3C068005 */ lui $a2, %hi(pixelsamplebits) +/* 0FCBC0 7F0C8090 00147880 */ sll $t7, $s4, 2 +/* 0FCBC4 7F0C8094 018F6021 */ addu $t4, $t4, $t7 +/* 0FCBC8 7F0C8098 8D8C9178 */ lw $t4, %lo(pixelbytecounts)($t4) +/* 0FCBCC 7F0C809C 00CF3021 */ addu $a2, $a2, $t7 +/* 0FCBD0 7F0C80A0 8CC691E0 */ lw $a2, %lo(pixelsamplebits)($a2) +/* 0FCBD4 7F0C80A4 01960019 */ multu $t4, $s6 +/* 0FCBD8 7F0C80A8 01E0A025 */ move $s4, $t7 +/* 0FCBDC 7F0C80AC 03C02025 */ move $a0, $fp +/* 0FCBE0 7F0C80B0 0000C812 */ mflo $t9 +/* 0FCBE4 7F0C80B4 00000000 */ nop +/* 0FCBE8 7F0C80B8 00000000 */ nop +/* 0FCBEC 7F0C80BC 03370019 */ multu $t9, $s7 +/* 0FCBF0 7F0C80C0 00002812 */ mflo $a1 +/* 0FCBF4 7F0C80C4 0FC32474 */ jal generate_sample_table +/* 0FCBF8 7F0C80C8 00000000 */ nop +/* 0FCBFC 7F0C80CC 3C188005 */ lui $t8, %hi(pixelbytecounts+52) +/* 0FCC00 7F0C80D0 0314C021 */ addu $t8, $t8, $s4 +/* 0FCC04 7F0C80D4 8F1891AC */ lw $t8, %lo(pixelbytecounts+52)($t8) +/* 0FCC08 7F0C80D8 00156880 */ sll $t5, $s5, 2 +/* 0FCC0C 7F0C80DC 01B56823 */ subu $t5, $t5, $s5 +/* 0FCC10 7F0C80E0 13000003 */ beqz $t8, .L7F0C80F0 +/* 0FCC14 7F0C80E4 03CD2021 */ addu $a0, $fp, $t5 +/* 0FCC18 7F0C80E8 0FC32692 */ jal image_get_alpha_values +/* 0FCC1C 7F0C80EC 02A02825 */ move $a1, $s5 +.L7F0C80F0: +/* 0FCC20 7F0C80F0 8FAE30AC */ lw $t6, 0x30ac($sp) +/* 0FCC24 7F0C80F4 8FAB0088 */ lw $t3, 0x88($sp) +/* 0FCC28 7F0C80F8 8FAF0080 */ lw $t7, 0x80($sp) +/* 0FCC2C 7F0C80FC 03C02025 */ move $a0, $fp +/* 0FCC30 7F0C8100 01CB8021 */ addu $s0, $t6, $t3 +/* 0FCC34 7F0C8104 02003825 */ move $a3, $s0 +/* 0FCC38 7F0C8108 02C02825 */ move $a1, $s6 +/* 0FCC3C 7F0C810C 02E03025 */ move $a2, $s7 +/* 0FCC40 7F0C8110 0FC32769 */ jal generate_link_final_image +/* 0FCC44 7F0C8114 AFAF0010 */ sw $t7, 0x10($sp) +/* 0FCC48 7F0C8118 10000110 */ b .L7F0C855C +/* 0FCC4C 7F0C811C 00408825 */ move $s1, $v0 +huffman_type3: +/* 0FCC50 7F0C8120 8FB40080 */ lw $s4, 0x80($sp) +/* 0FCC54 7F0C8124 3C198005 */ lui $t9, %hi(pixelbytecounts) +/* 0FCC58 7F0C8128 27399178 */ addiu $t9, %lo(pixelbytecounts) # addiu $t9, $t9, -0x6e88 +/* 0FCC5C 7F0C812C 00146080 */ sll $t4, $s4, 2 +/* 0FCC60 7F0C8130 01999821 */ addu $s3, $t4, $t9 +/* 0FCC64 7F0C8134 8E780000 */ lw $t8, ($s3) +/* 0FCC68 7F0C8138 0180A025 */ move $s4, $t4 +/* 0FCC6C 7F0C813C 00008825 */ move $s1, $zero +/* 0FCC70 7F0C8140 1B000010 */ blez $t8, .L7F0C8184 +/* 0FCC74 7F0C8144 3C0D8005 */ lui $t5, %hi(pixelsamplebits) +/* 0FCC78 7F0C8148 25AD91E0 */ addiu $t5, %lo(pixelsamplebits) # addiu $t5, $t5, -0x6e20 +/* 0FCC7C 7F0C814C 018D9021 */ addu $s2, $t4, $t5 +/* 0FCC80 7F0C8150 03C08025 */ move $s0, $fp +/* 0FCC84 7F0C8154 02002025 */ move $a0, $s0 +.L7F0C8158: +/* 0FCC88 7F0C8158 02A02825 */ move $a1, $s5 +/* 0FCC8C 7F0C815C 0FC32474 */ jal generate_sample_table +/* 0FCC90 7F0C8160 8E460000 */ lw $a2, ($s2) +/* 0FCC94 7F0C8164 02D70019 */ multu $s6, $s7 +/* 0FCC98 7F0C8168 8E6B0000 */ lw $t3, ($s3) +/* 0FCC9C 7F0C816C 26310001 */ addiu $s1, $s1, 1 +/* 0FCCA0 7F0C8170 022B082A */ slt $at, $s1, $t3 +/* 0FCCA4 7F0C8174 00007012 */ mflo $t6 +/* 0FCCA8 7F0C8178 020E8021 */ addu $s0, $s0, $t6 +/* 0FCCAC 7F0C817C 5420FFF6 */ bnezl $at, .L7F0C8158 +/* 0FCCB0 7F0C8180 02002025 */ move $a0, $s0 +.L7F0C8184: +/* 0FCCB4 7F0C8184 3C0F8005 */ lui $t7, %hi(pixelbytecounts+52) +/* 0FCCB8 7F0C8188 01F47821 */ addu $t7, $t7, $s4 +/* 0FCCBC 7F0C818C 8DEF91AC */ lw $t7, %lo(pixelbytecounts+52)($t7) +/* 0FCCC0 7F0C8190 00156080 */ sll $t4, $s5, 2 +/* 0FCCC4 7F0C8194 01956023 */ subu $t4, $t4, $s5 +/* 0FCCC8 7F0C8198 11E00003 */ beqz $t7, .L7F0C81A8 +/* 0FCCCC 7F0C819C 03CC2021 */ addu $a0, $fp, $t4 +/* 0FCCD0 7F0C81A0 0FC32692 */ jal image_get_alpha_values +/* 0FCCD4 7F0C81A4 02A02825 */ move $a1, $s5 +.L7F0C81A8: +/* 0FCCD8 7F0C81A8 8FB930AC */ lw $t9, 0x30ac($sp) +/* 0FCCDC 7F0C81AC 8FB80088 */ lw $t8, 0x88($sp) +/* 0FCCE0 7F0C81B0 8FAD0080 */ lw $t5, 0x80($sp) +/* 0FCCE4 7F0C81B4 03C02025 */ move $a0, $fp +/* 0FCCE8 7F0C81B8 03388021 */ addu $s0, $t9, $t8 +/* 0FCCEC 7F0C81BC 02003825 */ move $a3, $s0 +/* 0FCCF0 7F0C81C0 02C02825 */ move $a1, $s6 +/* 0FCCF4 7F0C81C4 02E03025 */ move $a2, $s7 +/* 0FCCF8 7F0C81C8 0FC32769 */ jal generate_link_final_image +/* 0FCCFC 7F0C81CC AFAD0010 */ sw $t5, 0x10($sp) +/* 0FCD00 7F0C81D0 100000E2 */ b .L7F0C855C +/* 0FCD04 7F0C81D4 00408825 */ move $s1, $v0 +huffman_type4: +/* 0FCD08 7F0C81D8 8FB40080 */ lw $s4, 0x80($sp) +/* 0FCD0C 7F0C81DC 3C0B8005 */ lui $t3, %hi(pixelbytecounts) +/* 0FCD10 7F0C81E0 03C02025 */ move $a0, $fp +/* 0FCD14 7F0C81E4 00147080 */ sll $t6, $s4, 2 +/* 0FCD18 7F0C81E8 016E5821 */ addu $t3, $t3, $t6 +/* 0FCD1C 7F0C81EC 8D6B9178 */ lw $t3, %lo(pixelbytecounts)($t3) +/* 0FCD20 7F0C81F0 01C0A025 */ move $s4, $t6 +/* 0FCD24 7F0C81F4 01760019 */ multu $t3, $s6 +/* 0FCD28 7F0C81F8 00007812 */ mflo $t7 +/* 0FCD2C 7F0C81FC 00000000 */ nop +/* 0FCD30 7F0C8200 00000000 */ nop +/* 0FCD34 7F0C8204 01F70019 */ multu $t7, $s7 +/* 0FCD38 7F0C8208 00002812 */ mflo $a1 +/* 0FCD3C 7F0C820C 0FC325AF */ jal type4_7_9_getsamples +/* 0FCD40 7F0C8210 00000000 */ nop +/* 0FCD44 7F0C8214 3C0C8005 */ lui $t4, %hi(pixelbytecounts+52) +/* 0FCD48 7F0C8218 01946021 */ addu $t4, $t4, $s4 +/* 0FCD4C 7F0C821C 8D8C91AC */ lw $t4, %lo(pixelbytecounts+52)($t4) +/* 0FCD50 7F0C8220 0015C880 */ sll $t9, $s5, 2 +/* 0FCD54 7F0C8224 0335C823 */ subu $t9, $t9, $s5 +/* 0FCD58 7F0C8228 11800003 */ beqz $t4, .L7F0C8238 +/* 0FCD5C 7F0C822C 03D92021 */ addu $a0, $fp, $t9 +/* 0FCD60 7F0C8230 0FC32692 */ jal image_get_alpha_values +/* 0FCD64 7F0C8234 02A02825 */ move $a1, $s5 +.L7F0C8238: +/* 0FCD68 7F0C8238 8FB830AC */ lw $t8, 0x30ac($sp) +/* 0FCD6C 7F0C823C 8FAD0088 */ lw $t5, 0x88($sp) +/* 0FCD70 7F0C8240 8FAE0080 */ lw $t6, 0x80($sp) +/* 0FCD74 7F0C8244 03C02025 */ move $a0, $fp +/* 0FCD78 7F0C8248 030D8021 */ addu $s0, $t8, $t5 +/* 0FCD7C 7F0C824C 02003825 */ move $a3, $s0 +/* 0FCD80 7F0C8250 02C02825 */ move $a1, $s6 +/* 0FCD84 7F0C8254 02E03025 */ move $a2, $s7 +/* 0FCD88 7F0C8258 0FC32769 */ jal generate_link_final_image +/* 0FCD8C 7F0C825C AFAE0010 */ sw $t6, 0x10($sp) +/* 0FCD90 7F0C8260 100000BE */ b .L7F0C855C +/* 0FCD94 7F0C8264 00408825 */ move $s1, $v0 +huffman_type5: +/* 0FCD98 7F0C8268 8FAB0080 */ lw $t3, 0x80($sp) +/* 0FCD9C 7F0C826C 3C058005 */ lui $a1, %hi(pixelsamplebits+52) +/* 0FCDA0 7F0C8270 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 0FCDA4 7F0C8274 000B7880 */ sll $t7, $t3, 2 +/* 0FCDA8 7F0C8278 00AF2821 */ addu $a1, $a1, $t7 +/* 0FCDAC 7F0C827C 0FC32648 */ jal type5_6_7_getsamples +/* 0FCDB0 7F0C8280 8CA59214 */ lw $a1, %lo(pixelsamplebits+52)($a1) +/* 0FCDB4 7F0C8284 8FAC30AC */ lw $t4, 0x30ac($sp) +/* 0FCDB8 7F0C8288 8FB90088 */ lw $t9, 0x88($sp) +/* 0FCDBC 7F0C828C 8FB80080 */ lw $t8, 0x80($sp) +/* 0FCDC0 7F0C8290 02C02025 */ move $a0, $s6 +/* 0FCDC4 7F0C8294 01998021 */ addu $s0, $t4, $t9 +/* 0FCDC8 7F0C8298 02003025 */ move $a2, $s0 +/* 0FCDCC 7F0C829C 02E02825 */ move $a1, $s7 +/* 0FCDD0 7F0C82A0 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 0FCDD4 7F0C82A4 AFA20010 */ sw $v0, 0x10($sp) +/* 0FCDD8 7F0C82A8 0FC32A24 */ jal type5_generate_link_final_image +/* 0FCDDC 7F0C82AC AFB80014 */ sw $t8, 0x14($sp) +/* 0FCDE0 7F0C82B0 100000AA */ b .L7F0C855C +/* 0FCDE4 7F0C82B4 00408825 */ move $s1, $v0 +huffman_type6: +/* 0FCDE8 7F0C82B8 8FAD0080 */ lw $t5, 0x80($sp) +/* 0FCDEC 7F0C82BC 3C058005 */ lui $a1, %hi(pixelsamplebits+52) +/* 0FCDF0 7F0C82C0 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 0FCDF4 7F0C82C4 000D7080 */ sll $t6, $t5, 2 +/* 0FCDF8 7F0C82C8 00AE2821 */ addu $a1, $a1, $t6 +/* 0FCDFC 7F0C82CC 0FC32648 */ jal type5_6_7_getsamples +/* 0FCE00 7F0C82D0 8CA59214 */ lw $a1, %lo(pixelsamplebits+52)($a1) +/* 0FCE04 7F0C82D4 00408825 */ move $s1, $v0 +/* 0FCE08 7F0C82D8 03C02025 */ move $a0, $fp +/* 0FCE0C 7F0C82DC 02A02825 */ move $a1, $s5 +/* 0FCE10 7F0C82E0 0FC32474 */ jal generate_sample_table +/* 0FCE14 7F0C82E4 00403025 */ move $a2, $v0 +/* 0FCE18 7F0C82E8 8FAB30AC */ lw $t3, 0x30ac($sp) +/* 0FCE1C 7F0C82EC 8FAF0088 */ lw $t7, 0x88($sp) +/* 0FCE20 7F0C82F0 8FB90080 */ lw $t9, 0x80($sp) +/* 0FCE24 7F0C82F4 27AC00A8 */ addiu $t4, $sp, 0xa8 +/* 0FCE28 7F0C82F8 016F8021 */ addu $s0, $t3, $t7 +/* 0FCE2C 7F0C82FC 02003825 */ move $a3, $s0 +/* 0FCE30 7F0C8300 AFAC0010 */ sw $t4, 0x10($sp) +/* 0FCE34 7F0C8304 03C02025 */ move $a0, $fp +/* 0FCE38 7F0C8308 02C02825 */ move $a1, $s6 +/* 0FCE3C 7F0C830C 02E03025 */ move $a2, $s7 +/* 0FCE40 7F0C8310 AFB10014 */ sw $s1, 0x14($sp) +/* 0FCE44 7F0C8314 0FC32B16 */ jal type6_7_generate_link_final_image +/* 0FCE48 7F0C8318 AFB90018 */ sw $t9, 0x18($sp) +/* 0FCE4C 7F0C831C 1000008F */ b .L7F0C855C +/* 0FCE50 7F0C8320 00408825 */ move $s1, $v0 +huffman_type7: +/* 0FCE54 7F0C8324 8FB80080 */ lw $t8, 0x80($sp) +/* 0FCE58 7F0C8328 3C058005 */ lui $a1, %hi(pixelsamplebits+52) +/* 0FCE5C 7F0C832C 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 0FCE60 7F0C8330 00186880 */ sll $t5, $t8, 2 +/* 0FCE64 7F0C8334 00AD2821 */ addu $a1, $a1, $t5 +/* 0FCE68 7F0C8338 0FC32648 */ jal type5_6_7_getsamples +/* 0FCE6C 7F0C833C 8CA59214 */ lw $a1, %lo(pixelsamplebits+52)($a1) +/* 0FCE70 7F0C8340 00408825 */ move $s1, $v0 +/* 0FCE74 7F0C8344 03C02025 */ move $a0, $fp +/* 0FCE78 7F0C8348 0FC325AF */ jal type4_7_9_getsamples +/* 0FCE7C 7F0C834C 02A02825 */ move $a1, $s5 +/* 0FCE80 7F0C8350 8FAE30AC */ lw $t6, 0x30ac($sp) +/* 0FCE84 7F0C8354 8FAB0088 */ lw $t3, 0x88($sp) +/* 0FCE88 7F0C8358 8FAC0080 */ lw $t4, 0x80($sp) +/* 0FCE8C 7F0C835C 27AF00A8 */ addiu $t7, $sp, 0xa8 +/* 0FCE90 7F0C8360 01CB8021 */ addu $s0, $t6, $t3 +/* 0FCE94 7F0C8364 02003825 */ move $a3, $s0 +/* 0FCE98 7F0C8368 AFAF0010 */ sw $t7, 0x10($sp) +/* 0FCE9C 7F0C836C 03C02025 */ move $a0, $fp +/* 0FCEA0 7F0C8370 02C02825 */ move $a1, $s6 +/* 0FCEA4 7F0C8374 02E03025 */ move $a2, $s7 +/* 0FCEA8 7F0C8378 AFB10014 */ sw $s1, 0x14($sp) +/* 0FCEAC 7F0C837C 0FC32B16 */ jal type6_7_generate_link_final_image +/* 0FCEB0 7F0C8380 AFAC0018 */ sw $t4, 0x18($sp) +/* 0FCEB4 7F0C8384 10000075 */ b .L7F0C855C +/* 0FCEB8 7F0C8388 00408825 */ move $s1, $v0 +huffman_type8: +/* 0FCEBC 7F0C838C 8FB40080 */ lw $s4, 0x80($sp) +/* 0FCEC0 7F0C8390 24040003 */ li $a0, 3 +/* 0FCEC4 7F0C8394 0014C880 */ sll $t9, $s4, 2 +/* 0FCEC8 7F0C8398 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FCECC 7F0C839C 0320A025 */ move $s4, $t9 +/* 0FCED0 7F0C83A0 3C188005 */ lui $t8, %hi(pixelbytecounts) +/* 0FCED4 7F0C83A4 27189178 */ addiu $t8, %lo(pixelbytecounts) # addiu $t8, $t8, -0x6e88 +/* 0FCED8 7F0C83A8 02989821 */ addu $s3, $s4, $t8 +/* 0FCEDC 7F0C83AC 8E6D0000 */ lw $t5, ($s3) +/* 0FCEE0 7F0C83B0 3C0B8005 */ lui $t3, %hi(pixelsamplebits) +/* 0FCEE4 7F0C83B4 256B91E0 */ addiu $t3, %lo(pixelsamplebits) # addiu $t3, $t3, -0x6e20 +/* 0FCEE8 7F0C83B8 01B60019 */ multu $t5, $s6 +/* 0FCEEC 7F0C83BC 028B9021 */ addu $s2, $s4, $t3 +/* 0FCEF0 7F0C83C0 00408025 */ move $s0, $v0 +/* 0FCEF4 7F0C83C4 8E460000 */ lw $a2, ($s2) +/* 0FCEF8 7F0C83C8 03C02025 */ move $a0, $fp +/* 0FCEFC 7F0C83CC 00007012 */ mflo $t6 +/* 0FCF00 7F0C83D0 00000000 */ nop +/* 0FCF04 7F0C83D4 00000000 */ nop +/* 0FCF08 7F0C83D8 01D70019 */ multu $t6, $s7 +/* 0FCF0C 7F0C83DC 00002812 */ mflo $a1 +/* 0FCF10 7F0C83E0 0FC32474 */ jal generate_sample_table +/* 0FCF14 7F0C83E4 00000000 */ nop +/* 0FCF18 7F0C83E8 8E6F0000 */ lw $t7, ($s3) +/* 0FCF1C 7F0C83EC 8E4C0000 */ lw $t4, ($s2) +/* 0FCF20 7F0C83F0 03C02025 */ move $a0, $fp +/* 0FCF24 7F0C83F4 01F70019 */ multu $t7, $s7 +/* 0FCF28 7F0C83F8 02C02825 */ move $a1, $s6 +/* 0FCF2C 7F0C83FC 02003825 */ move $a3, $s0 +/* 0FCF30 7F0C8400 AFAC0010 */ sw $t4, 0x10($sp) +/* 0FCF34 7F0C8404 00003012 */ mflo $a2 +/* 0FCF38 7F0C8408 0FC32DF8 */ jal type8_9_doohick +/* 0FCF3C 7F0C840C 00000000 */ nop +/* 0FCF40 7F0C8410 3C198005 */ lui $t9, %hi(pixelbytecounts+52) +/* 0FCF44 7F0C8414 0334C821 */ addu $t9, $t9, $s4 +/* 0FCF48 7F0C8418 8F3991AC */ lw $t9, %lo(pixelbytecounts+52)($t9) +/* 0FCF4C 7F0C841C 0015C080 */ sll $t8, $s5, 2 +/* 0FCF50 7F0C8420 0315C023 */ subu $t8, $t8, $s5 +/* 0FCF54 7F0C8424 13200003 */ beqz $t9, .L7F0C8434 +/* 0FCF58 7F0C8428 03D82021 */ addu $a0, $fp, $t8 +/* 0FCF5C 7F0C842C 0FC32692 */ jal image_get_alpha_values +/* 0FCF60 7F0C8430 02A02825 */ move $a1, $s5 +.L7F0C8434: +/* 0FCF64 7F0C8434 8FAD30AC */ lw $t5, 0x30ac($sp) +/* 0FCF68 7F0C8438 8FAE0088 */ lw $t6, 0x88($sp) +/* 0FCF6C 7F0C843C 8FAB0080 */ lw $t3, 0x80($sp) +/* 0FCF70 7F0C8440 03C02025 */ move $a0, $fp +/* 0FCF74 7F0C8444 01AE8021 */ addu $s0, $t5, $t6 +/* 0FCF78 7F0C8448 02003825 */ move $a3, $s0 +/* 0FCF7C 7F0C844C 02C02825 */ move $a1, $s6 +/* 0FCF80 7F0C8450 02E03025 */ move $a2, $s7 +/* 0FCF84 7F0C8454 0FC32769 */ jal generate_link_final_image +/* 0FCF88 7F0C8458 AFAB0010 */ sw $t3, 0x10($sp) +/* 0FCF8C 7F0C845C 1000003F */ b .L7F0C855C +/* 0FCF90 7F0C8460 00408825 */ move $s1, $v0 +huffman_type9: +/* 0FCF94 7F0C8464 8FB40080 */ lw $s4, 0x80($sp) +/* 0FCF98 7F0C8468 24040003 */ li $a0, 3 +/* 0FCF9C 7F0C846C 00147880 */ sll $t7, $s4, 2 +/* 0FCFA0 7F0C8470 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FCFA4 7F0C8474 01E0A025 */ move $s4, $t7 +/* 0FCFA8 7F0C8478 3C0C8005 */ lui $t4, %hi(pixelbytecounts) +/* 0FCFAC 7F0C847C 258C9178 */ addiu $t4, %lo(pixelbytecounts) # addiu $t4, $t4, -0x6e88 +/* 0FCFB0 7F0C8480 028C9821 */ addu $s3, $s4, $t4 +/* 0FCFB4 7F0C8484 8E790000 */ lw $t9, ($s3) +/* 0FCFB8 7F0C8488 00408025 */ move $s0, $v0 +/* 0FCFBC 7F0C848C 03C02025 */ move $a0, $fp +/* 0FCFC0 7F0C8490 03360019 */ multu $t9, $s6 +/* 0FCFC4 7F0C8494 0000C012 */ mflo $t8 +/* 0FCFC8 7F0C8498 00000000 */ nop +/* 0FCFCC 7F0C849C 00000000 */ nop +/* 0FCFD0 7F0C84A0 03170019 */ multu $t8, $s7 +/* 0FCFD4 7F0C84A4 00002812 */ mflo $a1 +/* 0FCFD8 7F0C84A8 0FC325AF */ jal type4_7_9_getsamples +/* 0FCFDC 7F0C84AC 00000000 */ nop +/* 0FCFE0 7F0C84B0 8E6D0000 */ lw $t5, ($s3) +/* 0FCFE4 7F0C84B4 3C0E8005 */ lui $t6, %hi(pixelsamplebits) +/* 0FCFE8 7F0C84B8 01D47021 */ addu $t6, $t6, $s4 +/* 0FCFEC 7F0C84BC 01B70019 */ multu $t5, $s7 +/* 0FCFF0 7F0C84C0 8DCE91E0 */ lw $t6, %lo(pixelsamplebits)($t6) +/* 0FCFF4 7F0C84C4 03C02025 */ move $a0, $fp +/* 0FCFF8 7F0C84C8 02C02825 */ move $a1, $s6 +/* 0FCFFC 7F0C84CC 02003825 */ move $a3, $s0 +/* 0FD000 7F0C84D0 AFAE0010 */ sw $t6, 0x10($sp) +/* 0FD004 7F0C84D4 00003012 */ mflo $a2 +/* 0FD008 7F0C84D8 0FC32DF8 */ jal type8_9_doohick +/* 0FD00C 7F0C84DC 00000000 */ nop +/* 0FD010 7F0C84E0 3C0B8005 */ lui $t3, %hi(pixelbytecounts+52) +/* 0FD014 7F0C84E4 01745821 */ addu $t3, $t3, $s4 +/* 0FD018 7F0C84E8 8D6B91AC */ lw $t3, %lo(pixelbytecounts+52)($t3) +/* 0FD01C 7F0C84EC 00157880 */ sll $t7, $s5, 2 +/* 0FD020 7F0C84F0 01F57823 */ subu $t7, $t7, $s5 +/* 0FD024 7F0C84F4 11600003 */ beqz $t3, .L7F0C8504 +/* 0FD028 7F0C84F8 03CF2021 */ addu $a0, $fp, $t7 +/* 0FD02C 7F0C84FC 0FC32692 */ jal image_get_alpha_values +/* 0FD030 7F0C8500 02A02825 */ move $a1, $s5 +.L7F0C8504: +/* 0FD034 7F0C8504 8FAC30AC */ lw $t4, 0x30ac($sp) +/* 0FD038 7F0C8508 8FB90088 */ lw $t9, 0x88($sp) +/* 0FD03C 7F0C850C 8FB80080 */ lw $t8, 0x80($sp) +/* 0FD040 7F0C8510 03C02025 */ move $a0, $fp +/* 0FD044 7F0C8514 01998021 */ addu $s0, $t4, $t9 +/* 0FD048 7F0C8518 02003825 */ move $a3, $s0 +/* 0FD04C 7F0C851C 02C02825 */ move $a1, $s6 +/* 0FD050 7F0C8520 02E03025 */ move $a2, $s7 +/* 0FD054 7F0C8524 0FC32769 */ jal generate_link_final_image +/* 0FD058 7F0C8528 AFB80010 */ sw $t8, 0x10($sp) +/* 0FD05C 7F0C852C 1000000B */ b .L7F0C855C +/* 0FD060 7F0C8530 00408825 */ move $s1, $v0 +def_7F0C8054: +.L7F0C8534: +/* 0FD064 7F0C8534 3C0D8009 */ lui $t5, %hi(dword_CODE_bss_8008D090) +/* 0FD068 7F0C8538 8DADD090 */ lw $t5, %lo(dword_CODE_bss_8008D090)($t5) +/* 0FD06C 7F0C853C 3C0F8009 */ lui $t7, %hi(word_CODE_bss_8008C730) +/* 0FD070 7F0C8540 25EFC730 */ addiu $t7, %lo(word_CODE_bss_8008C730) # addiu $t7, $t7, -0x38d0 +/* 0FD074 7F0C8544 000D7100 */ sll $t6, $t5, 4 +/* 0FD078 7F0C8548 01CF1821 */ addu $v1, $t6, $t7 +/* 0FD07C 7F0C854C A0760001 */ sb $s6, 1($v1) +/* 0FD080 7F0C8550 A0770008 */ sb $s7, 8($v1) +.L7F0C8554: +/* 0FD084 7F0C8554 1000FFFF */ b .L7F0C8554 +/* 0FD088 7F0C8558 00000000 */ nop +.L7F0C855C: +/* 0FD08C 7F0C855C 8FAC30B0 */ lw $t4, 0x30b0($sp) +/* 0FD090 7F0C8560 24010001 */ li $at, 1 +/* 0FD094 7F0C8564 8FB930B4 */ lw $t9, 0x30b4($sp) +/* 0FD098 7F0C8568 15810007 */ bne $t4, $at, .L7F0C8588 +/* 0FD09C 7F0C856C 00000000 */ nop +/* 0FD0A0 7F0C8570 1B200005 */ blez $t9, .L7F0C8588 +/* 0FD0A4 7F0C8574 02002025 */ move $a0, $s0 +/* 0FD0A8 7F0C8578 02C02825 */ move $a1, $s6 +/* 0FD0AC 7F0C857C 02E03025 */ move $a2, $s7 +/* 0FD0B0 7F0C8580 0FC32D9F */ jal sub_GAME_7F0CB67C +/* 0FD0B4 7F0C8584 8FA70080 */ lw $a3, 0x80($sp) +.L7F0C8588: +/* 0FD0B8 7F0C8588 3C028009 */ lui $v0, %hi(img_bitcount) +/* 0FD0BC 7F0C858C 8FAD0088 */ lw $t5, 0x88($sp) +/* 0FD0C0 7F0C8590 2442D0A8 */ addiu $v0, %lo(img_bitcount) # addiu $v0, $v0, -0x2f58 +/* 0FD0C4 7F0C8594 8C4B0000 */ lw $t3, ($v0) +/* 0FD0C8 7F0C8598 26310007 */ addiu $s1, $s1, 7 +/* 0FD0CC 7F0C859C 2401FFF8 */ li $at, -8 +/* 0FD0D0 7F0C85A0 0221C024 */ and $t8, $s1, $at +/* 0FD0D4 7F0C85A4 01B87021 */ addu $t6, $t5, $t8 +/* 0FD0D8 7F0C85A8 15600007 */ bnez $t3, .L7F0C85C8 +/* 0FD0DC 7F0C85AC AFAE0088 */ sw $t6, 0x88($sp) +/* 0FD0E0 7F0C85B0 3C0F8009 */ lui $t7, %hi(img_curpos) +/* 0FD0E4 7F0C85B4 8DEFD0A0 */ lw $t7, %lo(img_curpos)($t7) +/* 0FD0E8 7F0C85B8 3C018009 */ lui $at, %hi(img_curpos) +/* 0FD0EC 7F0C85BC 25EC0001 */ addiu $t4, $t7, 1 +/* 0FD0F0 7F0C85C0 10000002 */ b .L7F0C85CC +/* 0FD0F4 7F0C85C4 AC2CD0A0 */ sw $t4, %lo(img_curpos)($at) +.L7F0C85C8: +/* 0FD0F8 7F0C85C8 AC400000 */ sw $zero, ($v0) +.L7F0C85CC: +/* 0FD0FC 7F0C85CC 8FB900A0 */ lw $t9, 0xa0($sp) +/* 0FD100 7F0C85D0 8FAD009C */ lw $t5, 0x9c($sp) +/* 0FD104 7F0C85D4 27380001 */ addiu $t8, $t9, 1 +/* 0FD108 7F0C85D8 170DFE52 */ bne $t8, $t5, .L7F0C7F24 +/* 0FD10C 7F0C85DC AFB800A0 */ sw $t8, 0xa0($sp) +/* 0FD110 7F0C85E0 3C088009 */ lui $t0, %hi(dword_CODE_bss_8008D090) +/* 0FD114 7F0C85E4 2508D090 */ addiu $t0, %lo(dword_CODE_bss_8008D090) # addiu $t0, $t0, -0x2f70 +/* 0FD118 7F0C85E8 AFB60098 */ sw $s6, 0x98($sp) +/* 0FD11C 7F0C85EC AFB70094 */ sw $s7, 0x94($sp) +/* 0FD120 7F0C85F0 8FAA30B4 */ lw $t2, 0x30b4($sp) +/* 0FD124 7F0C85F4 8FA930B0 */ lw $t1, 0x30b0($sp) +/* 0FD128 7F0C85F8 8FA730B8 */ lw $a3, 0x30b8($sp) +/* 0FD12C 7F0C85FC 8FA60070 */ lw $a2, 0x70($sp) +.L7F0C8600: +/* 0FD130 7F0C8600 8FB60098 */ lw $s6, 0x98($sp) +/* 0FD134 7F0C8604 10C0000E */ beqz $a2, .L7F0C8640 +/* 0FD138 7F0C8608 8FB70094 */ lw $s7, 0x94($sp) +/* 0FD13C 7F0C860C 8CEE000C */ lw $t6, 0xc($a3) +/* 0FD140 7F0C8610 8D050000 */ lw $a1, ($t0) +/* 0FD144 7F0C8614 3C018009 */ lui $at, %hi(word_CODE_bss_8008C730) +/* 0FD148 7F0C8618 8DCB0000 */ lw $t3, ($t6) +/* 0FD14C 7F0C861C 00056100 */ sll $t4, $a1, 4 +/* 0FD150 7F0C8620 002C0821 */ addu $at, $at, $t4 +/* 0FD154 7F0C8624 000B7D02 */ srl $t7, $t3, 0x14 +/* 0FD158 7F0C8628 A42FC730 */ sh $t7, %lo(word_CODE_bss_8008C730)($at) +/* 0FD15C 7F0C862C 24B90001 */ addiu $t9, $a1, 1 +/* 0FD160 7F0C8630 2B210096 */ slti $at, $t9, 0x96 +/* 0FD164 7F0C8634 14200002 */ bnez $at, .L7F0C8640 +/* 0FD168 7F0C8638 AD190000 */ sw $t9, ($t0) +/* 0FD16C 7F0C863C AD000000 */ sw $zero, ($t0) +.L7F0C8640: +/* 0FD170 7F0C8640 15200037 */ bnez $t1, .L7F0C8720 +/* 0FD174 7F0C8644 29410002 */ slti $at, $t2, 2 +/* 0FD178 7F0C8648 1420002E */ bnez $at, .L7F0C8704 +/* 0FD17C 7F0C864C 8FB430AC */ lw $s4, 0x30ac($sp) +/* 0FD180 7F0C8650 8FAB30B4 */ lw $t3, 0x30b4($sp) +/* 0FD184 7F0C8654 8FAD0088 */ lw $t5, 0x88($sp) +/* 0FD188 7F0C8658 240E0001 */ li $t6, 1 +/* 0FD18C 7F0C865C 29610002 */ slti $at, $t3, 2 +/* 0FD190 7F0C8660 02C09025 */ move $s2, $s6 +/* 0FD194 7F0C8664 02E09825 */ move $s3, $s7 +/* 0FD198 7F0C8668 AFAE00A0 */ sw $t6, 0xa0($sp) +/* 0FD19C 7F0C866C 1420001E */ bnez $at, .L7F0C86E8 +/* 0FD1A0 7F0C8670 028D8021 */ addu $s0, $s4, $t5 +.L7F0C8674: +/* 0FD1A4 7F0C8674 8FAF0080 */ lw $t7, 0x80($sp) +/* 0FD1A8 7F0C8678 02802025 */ move $a0, $s4 +/* 0FD1AC 7F0C867C 02002825 */ move $a1, $s0 +/* 0FD1B0 7F0C8680 02403025 */ move $a2, $s2 +/* 0FD1B4 7F0C8684 02603825 */ move $a3, $s3 +/* 0FD1B8 7F0C8688 0FC321D5 */ jal image_decompresion_related +/* 0FD1BC 7F0C868C AFAF0010 */ sw $t7, 0x10($sp) +/* 0FD1C0 7F0C8690 00408825 */ move $s1, $v0 +/* 0FD1C4 7F0C8694 02802025 */ move $a0, $s4 +/* 0FD1C8 7F0C8698 02402825 */ move $a1, $s2 +/* 0FD1CC 7F0C869C 02603025 */ move $a2, $s3 +/* 0FD1D0 7F0C86A0 0FC32D9F */ jal sub_GAME_7F0CB67C +/* 0FD1D4 7F0C86A4 8FA70080 */ lw $a3, 0x80($sp) +/* 0FD1D8 7F0C86A8 8FAE00A0 */ lw $t6, 0xa0($sp) +/* 0FD1DC 7F0C86AC 8FAC0088 */ lw $t4, 0x88($sp) +/* 0FD1E0 7F0C86B0 8FAF30B4 */ lw $t7, 0x30b4($sp) +/* 0FD1E4 7F0C86B4 26520001 */ addiu $s2, $s2, 1 +/* 0FD1E8 7F0C86B8 26730001 */ addiu $s3, $s3, 1 +/* 0FD1EC 7F0C86BC 0012C043 */ sra $t8, $s2, 1 +/* 0FD1F0 7F0C86C0 00136843 */ sra $t5, $s3, 1 +/* 0FD1F4 7F0C86C4 0200A025 */ move $s4, $s0 +/* 0FD1F8 7F0C86C8 25CB0001 */ addiu $t3, $t6, 1 +/* 0FD1FC 7F0C86CC 0191C821 */ addu $t9, $t4, $s1 +/* 0FD200 7F0C86D0 AFAB00A0 */ sw $t3, 0xa0($sp) +/* 0FD204 7F0C86D4 AFB90088 */ sw $t9, 0x88($sp) +/* 0FD208 7F0C86D8 03009025 */ move $s2, $t8 +/* 0FD20C 7F0C86DC 01A09825 */ move $s3, $t5 +/* 0FD210 7F0C86E0 156FFFE4 */ bne $t3, $t7, .L7F0C8674 +/* 0FD214 7F0C86E4 02118021 */ addu $s0, $s0, $s1 +.L7F0C86E8: +/* 0FD218 7F0C86E8 02802025 */ move $a0, $s4 +/* 0FD21C 7F0C86EC 02402825 */ move $a1, $s2 +/* 0FD220 7F0C86F0 02603025 */ move $a2, $s3 +/* 0FD224 7F0C86F4 0FC32D9F */ jal sub_GAME_7F0CB67C +/* 0FD228 7F0C86F8 8FA70080 */ lw $a3, 0x80($sp) +/* 0FD22C 7F0C86FC 10000009 */ b .L7F0C8724 +/* 0FD230 7F0C8700 8FA20088 */ lw $v0, 0x88($sp) +.L7F0C8704: +/* 0FD234 7F0C8704 24010001 */ li $at, 1 +/* 0FD238 7F0C8708 15410005 */ bne $t2, $at, .L7F0C8720 +/* 0FD23C 7F0C870C 8FA430AC */ lw $a0, 0x30ac($sp) +/* 0FD240 7F0C8710 02C02825 */ move $a1, $s6 +/* 0FD244 7F0C8714 02E03025 */ move $a2, $s7 +/* 0FD248 7F0C8718 0FC32D9F */ jal sub_GAME_7F0CB67C +/* 0FD24C 7F0C871C 8FA70080 */ lw $a3, 0x80($sp) +.L7F0C8720: +/* 0FD250 7F0C8720 8FA20088 */ lw $v0, 0x88($sp) +.L7F0C8724: +/* 0FD254 7F0C8724 8FBF004C */ lw $ra, 0x4c($sp) +/* 0FD258 7F0C8728 8FB00028 */ lw $s0, 0x28($sp) +/* 0FD25C 7F0C872C 8FB1002C */ lw $s1, 0x2c($sp) +/* 0FD260 7F0C8730 8FB20030 */ lw $s2, 0x30($sp) +/* 0FD264 7F0C8734 8FB30034 */ lw $s3, 0x34($sp) +/* 0FD268 7F0C8738 8FB40038 */ lw $s4, 0x38($sp) +/* 0FD26C 7F0C873C 8FB5003C */ lw $s5, 0x3c($sp) +/* 0FD270 7F0C8740 8FB60040 */ lw $s6, 0x40($sp) +/* 0FD274 7F0C8744 8FB70044 */ lw $s7, 0x44($sp) +/* 0FD278 7F0C8748 8FBE0048 */ lw $fp, 0x48($sp) +/* 0FD27C 7F0C874C 03E00008 */ jr $ra +/* 0FD280 7F0C8750 27BD30A8 */ addiu $sp, $sp, 0x30a8 +) +#endif + + + + + +#ifdef NONMATCHING +void image_decompresion_related(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BD58*/ +glabel jpt_8005BD58 +.word .L7F0C87CC +.word .L7F0C87F0 +.word .L7F0C87CC +.word .L7F0C87F0 +.word .L7F0C87F0 +.word .L7F0C8814 +.word .L7F0C8838 +.word .L7F0C8814 +.word .L7F0C8838 + +/*D:8005BD7C*/ +glabel jpt_8005BD7C +.word .L7F0C887C +.word .L7F0C8A2C +.word .L7F0C887C +.word .L7F0C8A2C +.word .L7F0C8BE0 +.word .L7F0C8D1C +.word .L7F0C8F00 +.word .L7F0C8E34 +.word .L7F0C9090 +.text +glabel image_decompresion_related +/* 0FD284 7F0C8754 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0FD288 7F0C8758 8FA200C8 */ lw $v0, 0xc8($sp) +/* 0FD28C 7F0C875C 24F90001 */ addiu $t9, $a3, 1 +/* 0FD290 7F0C8760 AFB70020 */ sw $s7, 0x20($sp) +/* 0FD294 7F0C8764 AFB6001C */ sw $s6, 0x1c($sp) +/* 0FD298 7F0C8768 AFB50018 */ sw $s5, 0x18($sp) +/* 0FD29C 7F0C876C AFB40014 */ sw $s4, 0x14($sp) +/* 0FD2A0 7F0C8770 AFB10008 */ sw $s1, 8($sp) +/* 0FD2A4 7F0C8774 AFB00004 */ sw $s0, 4($sp) +/* 0FD2A8 7F0C8778 00196043 */ sra $t4, $t9, 1 +/* 0FD2AC 7F0C877C 2C410009 */ sltiu $at, $v0, 9 +/* 0FD2B0 7F0C8780 00C0A825 */ move $s5, $a2 +/* 0FD2B4 7F0C8784 00E0B825 */ move $s7, $a3 +/* 0FD2B8 7F0C8788 AFBE0024 */ sw $fp, 0x24($sp) +/* 0FD2BC 7F0C878C AFB30010 */ sw $s3, 0x10($sp) +/* 0FD2C0 7F0C8790 AFB2000C */ sw $s2, 0xc($sp) +/* 0FD2C4 7F0C8794 00A04825 */ move $t1, $a1 +/* 0FD2C8 7F0C8798 00A0B025 */ move $s6, $a1 +/* 0FD2CC 7F0C879C 00A08825 */ move $s1, $a1 +/* 0FD2D0 7F0C87A0 00801825 */ move $v1, $a0 +/* 0FD2D4 7F0C87A4 0080A025 */ move $s4, $a0 +/* 0FD2D8 7F0C87A8 00808025 */ move $s0, $a0 +/* 0FD2DC 7F0C87AC 1020002A */ beqz $at, .L7F0C8858 +/* 0FD2E0 7F0C87B0 AFAC004C */ sw $t4, 0x4c($sp) +/* 0FD2E4 7F0C87B4 0002C080 */ sll $t8, $v0, 2 +/* 0FD2E8 7F0C87B8 3C018006 */ lui $at, %hi(jpt_8005BD58) +/* 0FD2EC 7F0C87BC 00380821 */ addu $at, $at, $t8 +/* 0FD2F0 7F0C87C0 8C38BD58 */ lw $t8, %lo(jpt_8005BD58)($at) +/* 0FD2F4 7F0C87C4 03000008 */ jr $t8 +/* 0FD2F8 7F0C87C8 00000000 */ nop +.L7F0C87CC: +/* 0FD2FC 7F0C87CC 26AE0001 */ addiu $t6, $s5, 1 +/* 0FD300 7F0C87D0 000EC843 */ sra $t9, $t6, 1 +/* 0FD304 7F0C87D4 272F0003 */ addiu $t7, $t9, 3 +/* 0FD308 7F0C87D8 26B20003 */ addiu $s2, $s5, 3 +/* 0FD30C 7F0C87DC 31F80FFC */ andi $t8, $t7, 0xffc +/* 0FD310 7F0C87E0 324E0FFC */ andi $t6, $s2, 0xffc +/* 0FD314 7F0C87E4 AFB800A8 */ sw $t8, 0xa8($sp) +/* 0FD318 7F0C87E8 1000001B */ b .L7F0C8858 +/* 0FD31C 7F0C87EC AFAE00AC */ sw $t6, 0xac($sp) +.L7F0C87F0: +/* 0FD320 7F0C87F0 26B90001 */ addiu $t9, $s5, 1 +/* 0FD324 7F0C87F4 00197843 */ sra $t7, $t9, 1 +/* 0FD328 7F0C87F8 25F80003 */ addiu $t8, $t7, 3 +/* 0FD32C 7F0C87FC 26B20003 */ addiu $s2, $s5, 3 +/* 0FD330 7F0C8800 330E0FFC */ andi $t6, $t8, 0xffc +/* 0FD334 7F0C8804 32590FFC */ andi $t9, $s2, 0xffc +/* 0FD338 7F0C8808 AFAE00A8 */ sw $t6, 0xa8($sp) +/* 0FD33C 7F0C880C 10000012 */ b .L7F0C8858 +/* 0FD340 7F0C8810 AFB900AC */ sw $t9, 0xac($sp) +.L7F0C8814: +/* 0FD344 7F0C8814 26AF0001 */ addiu $t7, $s5, 1 +/* 0FD348 7F0C8818 000FC043 */ sra $t8, $t7, 1 +/* 0FD34C 7F0C881C 270E0007 */ addiu $t6, $t8, 7 +/* 0FD350 7F0C8820 26B20007 */ addiu $s2, $s5, 7 +/* 0FD354 7F0C8824 31D90FF8 */ andi $t9, $t6, 0xff8 +/* 0FD358 7F0C8828 324F0FF8 */ andi $t7, $s2, 0xff8 +/* 0FD35C 7F0C882C AFB900A8 */ sw $t9, 0xa8($sp) +/* 0FD360 7F0C8830 10000009 */ b .L7F0C8858 +/* 0FD364 7F0C8834 AFAF00AC */ sw $t7, 0xac($sp) +.L7F0C8838: +/* 0FD368 7F0C8838 26B80001 */ addiu $t8, $s5, 1 +/* 0FD36C 7F0C883C 00187043 */ sra $t6, $t8, 1 +/* 0FD370 7F0C8840 25D9000F */ addiu $t9, $t6, 0xf +/* 0FD374 7F0C8844 26B2000F */ addiu $s2, $s5, 0xf +/* 0FD378 7F0C8848 332F0FF0 */ andi $t7, $t9, 0xff0 +/* 0FD37C 7F0C884C 32580FF0 */ andi $t8, $s2, 0xff0 +/* 0FD380 7F0C8850 AFAF00A8 */ sw $t7, 0xa8($sp) +/* 0FD384 7F0C8854 AFB800AC */ sw $t8, 0xac($sp) +def_7F0C87C4: +.L7F0C8858: +/* 0FD388 7F0C8858 2C410009 */ sltiu $at, $v0, 9 +/* 0FD38C 7F0C885C 10200250 */ beqz $at, .L7F0C91A0 +/* 0FD390 7F0C8860 8FB200AC */ lw $s2, 0xac($sp) +/* 0FD394 7F0C8864 00027080 */ sll $t6, $v0, 2 +/* 0FD398 7F0C8868 3C018006 */ lui $at, %hi(jpt_8005BD7C) +/* 0FD39C 7F0C886C 002E0821 */ addu $at, $at, $t6 +/* 0FD3A0 7F0C8870 8C2EBD7C */ lw $t6, %lo(jpt_8005BD7C)($at) +/* 0FD3A4 7F0C8874 01C00008 */ jr $t6 +/* 0FD3A8 7F0C8878 00000000 */ nop +.L7F0C887C: +/* 0FD3AC 7F0C887C 1AE00064 */ blez $s7, .L7F0C8A10 +/* 0FD3B0 7F0C8880 0000F025 */ move $fp, $zero +/* 0FD3B4 7F0C8884 8FA400A8 */ lw $a0, 0xa8($sp) +/* 0FD3B8 7F0C8888 02402825 */ move $a1, $s2 +/* 0FD3BC 7F0C888C 000578C0 */ sll $t7, $a1, 3 +/* 0FD3C0 7F0C8890 0004C880 */ sll $t9, $a0, 2 +/* 0FD3C4 7F0C8894 03202025 */ move $a0, $t9 +/* 0FD3C8 7F0C8898 01E02825 */ move $a1, $t7 +.L7F0C889C: +/* 0FD3CC 7F0C889C 27D80001 */ addiu $t8, $fp, 1 +/* 0FD3D0 7F0C88A0 0317082A */ slt $at, $t8, $s7 +/* 0FD3D4 7F0C88A4 10200003 */ beqz $at, .L7F0C88B4 +/* 0FD3D8 7F0C88A8 00004025 */ move $t0, $zero +/* 0FD3DC 7F0C88AC 10000002 */ b .L7F0C88B8 +/* 0FD3E0 7F0C88B0 02409825 */ move $s3, $s2 +.L7F0C88B4: +/* 0FD3E4 7F0C88B4 00009825 */ move $s3, $zero +.L7F0C88B8: +/* 0FD3E8 7F0C88B8 1A400051 */ blez $s2, .L7F0C8A00 +/* 0FD3EC 7F0C88BC 27DE0002 */ addiu $fp, $fp, 2 +/* 0FD3F0 7F0C88C0 00137080 */ sll $t6, $s3, 2 +/* 0FD3F4 7F0C88C4 006E6821 */ addu $t5, $v1, $t6 +/* 0FD3F8 7F0C88C8 01A08025 */ move $s0, $t5 +/* 0FD3FC 7F0C88CC 00603025 */ move $a2, $v1 +.L7F0C88D0: +/* 0FD400 7F0C88D0 25020001 */ addiu $v0, $t0, 1 +/* 0FD404 7F0C88D4 0055082A */ slt $at, $v0, $s5 +/* 0FD408 7F0C88D8 10200003 */ beqz $at, .L7F0C88E8 +/* 0FD40C 7F0C88DC 01003825 */ move $a3, $t0 +/* 0FD410 7F0C88E0 10000001 */ b .L7F0C88E8 +/* 0FD414 7F0C88E4 00403825 */ move $a3, $v0 +.L7F0C88E8: +/* 0FD418 7F0C88E8 00075880 */ sll $t3, $a3, 2 +/* 0FD41C 7F0C88EC 006BC821 */ addu $t9, $v1, $t3 +/* 0FD420 7F0C88F0 8F2A0000 */ lw $t2, ($t9) +/* 0FD424 7F0C88F4 8CC20000 */ lw $v0, ($a2) +/* 0FD428 7F0C88F8 01AB7821 */ addu $t7, $t5, $t3 +/* 0FD42C 7F0C88FC 8E0C0000 */ lw $t4, ($s0) +/* 0FD430 7F0C8900 8DF10000 */ lw $s1, ($t7) +/* 0FD434 7F0C8904 000ACE02 */ srl $t9, $t2, 0x18 +/* 0FD438 7F0C8908 332F00FF */ andi $t7, $t9, 0xff +/* 0FD43C 7F0C890C 0002C602 */ srl $t8, $v0, 0x18 +/* 0FD440 7F0C8910 330E00FF */ andi $t6, $t8, 0xff +/* 0FD444 7F0C8914 01CFC021 */ addu $t8, $t6, $t7 +/* 0FD448 7F0C8918 000CCE02 */ srl $t9, $t4, 0x18 +/* 0FD44C 7F0C891C 332E00FF */ andi $t6, $t9, 0xff +/* 0FD450 7F0C8920 030E7821 */ addu $t7, $t8, $t6 +/* 0FD454 7F0C8924 0011CE02 */ srl $t9, $s1, 0x18 +/* 0FD458 7F0C8928 333800FF */ andi $t8, $t9, 0xff +/* 0FD45C 7F0C892C 01F87021 */ addu $t6, $t7, $t8 +/* 0FD460 7F0C8930 000E7882 */ srl $t7, $t6, 2 +/* 0FD464 7F0C8934 000FC600 */ sll $t8, $t7, 0x18 +/* 0FD468 7F0C8938 00027402 */ srl $t6, $v0, 0x10 +/* 0FD46C 7F0C893C 31D900FF */ andi $t9, $t6, 0xff +/* 0FD470 7F0C8940 000A7C02 */ srl $t7, $t2, 0x10 +/* 0FD474 7F0C8944 31EE00FF */ andi $t6, $t7, 0xff +/* 0FD478 7F0C8948 032E7821 */ addu $t7, $t9, $t6 +/* 0FD47C 7F0C894C 000CCC02 */ srl $t9, $t4, 0x10 +/* 0FD480 7F0C8950 332E00FF */ andi $t6, $t9, 0xff +/* 0FD484 7F0C8954 01EEC821 */ addu $t9, $t7, $t6 +/* 0FD488 7F0C8958 00117C02 */ srl $t7, $s1, 0x10 +/* 0FD48C 7F0C895C 31EE00FF */ andi $t6, $t7, 0xff +/* 0FD490 7F0C8960 032E7821 */ addu $t7, $t9, $t6 +/* 0FD494 7F0C8964 000FC882 */ srl $t9, $t7, 2 +/* 0FD498 7F0C8968 332E00FF */ andi $t6, $t9, 0xff +/* 0FD49C 7F0C896C 000E7C00 */ sll $t7, $t6, 0x10 +/* 0FD4A0 7F0C8970 030FC825 */ or $t9, $t8, $t7 +/* 0FD4A4 7F0C8974 00027202 */ srl $t6, $v0, 8 +/* 0FD4A8 7F0C8978 31D800FF */ andi $t8, $t6, 0xff +/* 0FD4AC 7F0C897C 000A7A02 */ srl $t7, $t2, 8 +/* 0FD4B0 7F0C8980 31EE00FF */ andi $t6, $t7, 0xff +/* 0FD4B4 7F0C8984 030E7821 */ addu $t7, $t8, $t6 +/* 0FD4B8 7F0C8988 000CC202 */ srl $t8, $t4, 8 +/* 0FD4BC 7F0C898C 330E00FF */ andi $t6, $t8, 0xff +/* 0FD4C0 7F0C8990 01EEC021 */ addu $t8, $t7, $t6 +/* 0FD4C4 7F0C8994 00117A02 */ srl $t7, $s1, 8 +/* 0FD4C8 7F0C8998 31EE00FF */ andi $t6, $t7, 0xff +/* 0FD4CC 7F0C899C 030E7821 */ addu $t7, $t8, $t6 +/* 0FD4D0 7F0C89A0 000FC082 */ srl $t8, $t7, 2 +/* 0FD4D4 7F0C89A4 330E00FF */ andi $t6, $t8, 0xff +/* 0FD4D8 7F0C89A8 000E7A00 */ sll $t7, $t6, 8 +/* 0FD4DC 7F0C89AC 032FC025 */ or $t8, $t9, $t7 +/* 0FD4E0 7F0C89B0 315900FF */ andi $t9, $t2, 0xff +/* 0FD4E4 7F0C89B4 304E00FF */ andi $t6, $v0, 0xff +/* 0FD4E8 7F0C89B8 01D97821 */ addu $t7, $t6, $t9 +/* 0FD4EC 7F0C89BC 318E00FF */ andi $t6, $t4, 0xff +/* 0FD4F0 7F0C89C0 01EEC821 */ addu $t9, $t7, $t6 +/* 0FD4F4 7F0C89C4 322F00FF */ andi $t7, $s1, 0xff +/* 0FD4F8 7F0C89C8 032F7021 */ addu $t6, $t9, $t7 +/* 0FD4FC 7F0C89CC 25D90001 */ addiu $t9, $t6, 1 +/* 0FD500 7F0C89D0 00197882 */ srl $t7, $t9, 2 +/* 0FD504 7F0C89D4 31EE00FF */ andi $t6, $t7, 0xff +/* 0FD508 7F0C89D8 00087843 */ sra $t7, $t0, 1 +/* 0FD50C 7F0C89DC 030EC825 */ or $t9, $t8, $t6 +/* 0FD510 7F0C89E0 25080002 */ addiu $t0, $t0, 2 +/* 0FD514 7F0C89E4 000FC080 */ sll $t8, $t7, 2 +/* 0FD518 7F0C89E8 0112082A */ slt $at, $t0, $s2 +/* 0FD51C 7F0C89EC 01387021 */ addu $t6, $t1, $t8 +/* 0FD520 7F0C89F0 24C60008 */ addiu $a2, $a2, 8 +/* 0FD524 7F0C89F4 26100008 */ addiu $s0, $s0, 8 +/* 0FD528 7F0C89F8 1420FFB5 */ bnez $at, .L7F0C88D0 +/* 0FD52C 7F0C89FC ADD90000 */ sw $t9, ($t6) +.L7F0C8A00: +/* 0FD530 7F0C8A00 03D7082A */ slt $at, $fp, $s7 +/* 0FD534 7F0C8A04 01244821 */ addu $t1, $t1, $a0 +/* 0FD538 7F0C8A08 1420FFA4 */ bnez $at, .L7F0C889C +/* 0FD53C 7F0C8A0C 00651821 */ addu $v1, $v1, $a1 +.L7F0C8A10: +/* 0FD540 7F0C8A10 8FAF004C */ lw $t7, 0x4c($sp) +/* 0FD544 7F0C8A14 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0FD548 7F0C8A18 01F80019 */ multu $t7, $t8 +/* 0FD54C 7F0C8A1C 00001012 */ mflo $v0 +/* 0FD550 7F0C8A20 0002C880 */ sll $t9, $v0, 2 +/* 0FD554 7F0C8A24 100001DF */ b .L7F0C91A4 +/* 0FD558 7F0C8A28 03201025 */ move $v0, $t9 +.L7F0C8A2C: +/* 0FD55C 7F0C8A2C 1AE00065 */ blez $s7, .L7F0C8BC4 +/* 0FD560 7F0C8A30 0000F025 */ move $fp, $zero +/* 0FD564 7F0C8A34 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0FD568 7F0C8A38 0012C880 */ sll $t9, $s2, 2 +/* 0FD56C 7F0C8A3C AFB90034 */ sw $t9, 0x34($sp) +/* 0FD570 7F0C8A40 000E7840 */ sll $t7, $t6, 1 +/* 0FD574 7F0C8A44 AFAF0038 */ sw $t7, 0x38($sp) +.L7F0C8A48: +/* 0FD578 7F0C8A48 27CE0001 */ addiu $t6, $fp, 1 +/* 0FD57C 7F0C8A4C 01D7082A */ slt $at, $t6, $s7 +/* 0FD580 7F0C8A50 10200003 */ beqz $at, .L7F0C8A60 +/* 0FD584 7F0C8A54 00004025 */ move $t0, $zero +/* 0FD588 7F0C8A58 10000002 */ b .L7F0C8A64 +/* 0FD58C 7F0C8A5C 02409825 */ move $s3, $s2 +.L7F0C8A60: +/* 0FD590 7F0C8A60 00009825 */ move $s3, $zero +.L7F0C8A64: +/* 0FD594 7F0C8A64 1A400051 */ blez $s2, .L7F0C8BAC +/* 0FD598 7F0C8A68 27DE0002 */ addiu $fp, $fp, 2 +/* 0FD59C 7F0C8A6C 00137840 */ sll $t7, $s3, 1 +/* 0FD5A0 7F0C8A70 028F8821 */ addu $s1, $s4, $t7 +/* 0FD5A4 7F0C8A74 02208025 */ move $s0, $s1 +/* 0FD5A8 7F0C8A78 02806825 */ move $t5, $s4 +.L7F0C8A7C: +/* 0FD5AC 7F0C8A7C 25020001 */ addiu $v0, $t0, 1 +/* 0FD5B0 7F0C8A80 0055082A */ slt $at, $v0, $s5 +/* 0FD5B4 7F0C8A84 10200003 */ beqz $at, .L7F0C8A94 +/* 0FD5B8 7F0C8A88 01003825 */ move $a3, $t0 +/* 0FD5BC 7F0C8A8C 10000001 */ b .L7F0C8A94 +/* 0FD5C0 7F0C8A90 00403825 */ move $a3, $v0 +.L7F0C8A94: +/* 0FD5C4 7F0C8A94 00073040 */ sll $a2, $a3, 1 +/* 0FD5C8 7F0C8A98 0286C021 */ addu $t8, $s4, $a2 +/* 0FD5CC 7F0C8A9C 970A0000 */ lhu $t2, ($t8) +/* 0FD5D0 7F0C8AA0 95A90000 */ lhu $t1, ($t5) +/* 0FD5D4 7F0C8AA4 0226C821 */ addu $t9, $s1, $a2 +/* 0FD5D8 7F0C8AA8 960B0000 */ lhu $t3, ($s0) +/* 0FD5DC 7F0C8AAC 972C0000 */ lhu $t4, ($t9) +/* 0FD5E0 7F0C8AB0 000AC2C3 */ sra $t8, $t2, 0xb +/* 0FD5E4 7F0C8AB4 3319001F */ andi $t9, $t8, 0x1f +/* 0FD5E8 7F0C8AB8 000972C3 */ sra $t6, $t1, 0xb +/* 0FD5EC 7F0C8ABC 31CF001F */ andi $t7, $t6, 0x1f +/* 0FD5F0 7F0C8AC0 01F97021 */ addu $t6, $t7, $t9 +/* 0FD5F4 7F0C8AC4 000BC2C3 */ sra $t8, $t3, 0xb +/* 0FD5F8 7F0C8AC8 330F001F */ andi $t7, $t8, 0x1f +/* 0FD5FC 7F0C8ACC 01CFC821 */ addu $t9, $t6, $t7 +/* 0FD600 7F0C8AD0 000CC2C3 */ sra $t8, $t4, 0xb +/* 0FD604 7F0C8AD4 330E001F */ andi $t6, $t8, 0x1f +/* 0FD608 7F0C8AD8 032E7821 */ addu $t7, $t9, $t6 +/* 0FD60C 7F0C8ADC 000FC883 */ sra $t9, $t7, 2 +/* 0FD610 7F0C8AE0 001972C0 */ sll $t6, $t9, 0xb +/* 0FD614 7F0C8AE4 00097983 */ sra $t7, $t1, 6 +/* 0FD618 7F0C8AE8 31F8001F */ andi $t8, $t7, 0x1f +/* 0FD61C 7F0C8AEC 000AC983 */ sra $t9, $t2, 6 +/* 0FD620 7F0C8AF0 332F001F */ andi $t7, $t9, 0x1f +/* 0FD624 7F0C8AF4 030FC821 */ addu $t9, $t8, $t7 +/* 0FD628 7F0C8AF8 000BC183 */ sra $t8, $t3, 6 +/* 0FD62C 7F0C8AFC 330F001F */ andi $t7, $t8, 0x1f +/* 0FD630 7F0C8B00 032FC021 */ addu $t8, $t9, $t7 +/* 0FD634 7F0C8B04 000CC983 */ sra $t9, $t4, 6 +/* 0FD638 7F0C8B08 332F001F */ andi $t7, $t9, 0x1f +/* 0FD63C 7F0C8B0C 030FC821 */ addu $t9, $t8, $t7 +/* 0FD640 7F0C8B10 0019C083 */ sra $t8, $t9, 2 +/* 0FD644 7F0C8B14 330F001F */ andi $t7, $t8, 0x1f +/* 0FD648 7F0C8B18 000FC980 */ sll $t9, $t7, 6 +/* 0FD64C 7F0C8B1C 01D9C025 */ or $t8, $t6, $t9 +/* 0FD650 7F0C8B20 00097843 */ sra $t7, $t1, 1 +/* 0FD654 7F0C8B24 31EE001F */ andi $t6, $t7, 0x1f +/* 0FD658 7F0C8B28 000AC843 */ sra $t9, $t2, 1 +/* 0FD65C 7F0C8B2C 332F001F */ andi $t7, $t9, 0x1f +/* 0FD660 7F0C8B30 01CFC821 */ addu $t9, $t6, $t7 +/* 0FD664 7F0C8B34 000B7043 */ sra $t6, $t3, 1 +/* 0FD668 7F0C8B38 31CF001F */ andi $t7, $t6, 0x1f +/* 0FD66C 7F0C8B3C 032F7021 */ addu $t6, $t9, $t7 +/* 0FD670 7F0C8B40 000CC843 */ sra $t9, $t4, 1 +/* 0FD674 7F0C8B44 332F001F */ andi $t7, $t9, 0x1f +/* 0FD678 7F0C8B48 01CFC821 */ addu $t9, $t6, $t7 +/* 0FD67C 7F0C8B4C 00197083 */ sra $t6, $t9, 2 +/* 0FD680 7F0C8B50 31CF001F */ andi $t7, $t6, 0x1f +/* 0FD684 7F0C8B54 000FC840 */ sll $t9, $t7, 1 +/* 0FD688 7F0C8B58 03197025 */ or $t6, $t8, $t9 +/* 0FD68C 7F0C8B5C 31580001 */ andi $t8, $t2, 1 +/* 0FD690 7F0C8B60 312F0001 */ andi $t7, $t1, 1 +/* 0FD694 7F0C8B64 01F8C821 */ addu $t9, $t7, $t8 +/* 0FD698 7F0C8B68 316F0001 */ andi $t7, $t3, 1 +/* 0FD69C 7F0C8B6C 032FC021 */ addu $t8, $t9, $t7 +/* 0FD6A0 7F0C8B70 31990001 */ andi $t9, $t4, 1 +/* 0FD6A4 7F0C8B74 03197821 */ addu $t7, $t8, $t9 +/* 0FD6A8 7F0C8B78 25F80002 */ addiu $t8, $t7, 2 +/* 0FD6AC 7F0C8B7C 0018C883 */ sra $t9, $t8, 2 +/* 0FD6B0 7F0C8B80 332F0001 */ andi $t7, $t9, 1 +/* 0FD6B4 7F0C8B84 0008C843 */ sra $t9, $t0, 1 +/* 0FD6B8 7F0C8B88 01CFC025 */ or $t8, $t6, $t7 +/* 0FD6BC 7F0C8B8C 25080002 */ addiu $t0, $t0, 2 +/* 0FD6C0 7F0C8B90 00197040 */ sll $t6, $t9, 1 +/* 0FD6C4 7F0C8B94 0112082A */ slt $at, $t0, $s2 +/* 0FD6C8 7F0C8B98 02CE7821 */ addu $t7, $s6, $t6 +/* 0FD6CC 7F0C8B9C 25AD0004 */ addiu $t5, $t5, 4 +/* 0FD6D0 7F0C8BA0 26100004 */ addiu $s0, $s0, 4 +/* 0FD6D4 7F0C8BA4 1420FFB5 */ bnez $at, .L7F0C8A7C +/* 0FD6D8 7F0C8BA8 A5F80000 */ sh $t8, ($t7) +.L7F0C8BAC: +/* 0FD6DC 7F0C8BAC 8FB90038 */ lw $t9, 0x38($sp) +/* 0FD6E0 7F0C8BB0 8FAE0034 */ lw $t6, 0x34($sp) +/* 0FD6E4 7F0C8BB4 03D7082A */ slt $at, $fp, $s7 +/* 0FD6E8 7F0C8BB8 02D9B021 */ addu $s6, $s6, $t9 +/* 0FD6EC 7F0C8BBC 1420FFA2 */ bnez $at, .L7F0C8A48 +/* 0FD6F0 7F0C8BC0 028EA021 */ addu $s4, $s4, $t6 +.L7F0C8BC4: +/* 0FD6F4 7F0C8BC4 8FB8004C */ lw $t8, 0x4c($sp) +/* 0FD6F8 7F0C8BC8 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FD6FC 7F0C8BCC 030F0019 */ multu $t8, $t7 +/* 0FD700 7F0C8BD0 00001012 */ mflo $v0 +/* 0FD704 7F0C8BD4 0002C840 */ sll $t9, $v0, 1 +/* 0FD708 7F0C8BD8 10000172 */ b .L7F0C91A4 +/* 0FD70C 7F0C8BDC 03201025 */ move $v0, $t9 +.L7F0C8BE0: +/* 0FD710 7F0C8BE0 1AE00047 */ blez $s7, .L7F0C8D00 +/* 0FD714 7F0C8BE4 0000F025 */ move $fp, $zero +/* 0FD718 7F0C8BE8 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0FD71C 7F0C8BEC 0012C880 */ sll $t9, $s2, 2 +/* 0FD720 7F0C8BF0 AFB90034 */ sw $t9, 0x34($sp) +/* 0FD724 7F0C8BF4 000EC040 */ sll $t8, $t6, 1 +/* 0FD728 7F0C8BF8 AFB80038 */ sw $t8, 0x38($sp) +.L7F0C8BFC: +/* 0FD72C 7F0C8BFC 27CE0001 */ addiu $t6, $fp, 1 +/* 0FD730 7F0C8C00 01D7082A */ slt $at, $t6, $s7 +/* 0FD734 7F0C8C04 10200003 */ beqz $at, .L7F0C8C14 +/* 0FD738 7F0C8C08 00004025 */ move $t0, $zero +/* 0FD73C 7F0C8C0C 10000002 */ b .L7F0C8C18 +/* 0FD740 7F0C8C10 02409825 */ move $s3, $s2 +.L7F0C8C14: +/* 0FD744 7F0C8C14 00009825 */ move $s3, $zero +.L7F0C8C18: +/* 0FD748 7F0C8C18 1A400033 */ blez $s2, .L7F0C8CE8 +/* 0FD74C 7F0C8C1C 27DE0002 */ addiu $fp, $fp, 2 +/* 0FD750 7F0C8C20 0013C040 */ sll $t8, $s3, 1 +/* 0FD754 7F0C8C24 02988821 */ addu $s1, $s4, $t8 +/* 0FD758 7F0C8C28 02208025 */ move $s0, $s1 +/* 0FD75C 7F0C8C2C 02806825 */ move $t5, $s4 +.L7F0C8C30: +/* 0FD760 7F0C8C30 25020001 */ addiu $v0, $t0, 1 +/* 0FD764 7F0C8C34 0055082A */ slt $at, $v0, $s5 +/* 0FD768 7F0C8C38 10200003 */ beqz $at, .L7F0C8C48 +/* 0FD76C 7F0C8C3C 01003825 */ move $a3, $t0 +/* 0FD770 7F0C8C40 10000001 */ b .L7F0C8C48 +/* 0FD774 7F0C8C44 00403825 */ move $a3, $v0 +.L7F0C8C48: +/* 0FD778 7F0C8C48 00073040 */ sll $a2, $a3, 1 +/* 0FD77C 7F0C8C4C 02867821 */ addu $t7, $s4, $a2 +/* 0FD780 7F0C8C50 95EA0000 */ lhu $t2, ($t7) +/* 0FD784 7F0C8C54 95A90000 */ lhu $t1, ($t5) +/* 0FD788 7F0C8C58 0226C821 */ addu $t9, $s1, $a2 +/* 0FD78C 7F0C8C5C 960B0000 */ lhu $t3, ($s0) +/* 0FD790 7F0C8C60 972C0000 */ lhu $t4, ($t9) +/* 0FD794 7F0C8C64 000A7A03 */ sra $t7, $t2, 8 +/* 0FD798 7F0C8C68 31F900FF */ andi $t9, $t7, 0xff +/* 0FD79C 7F0C8C6C 00097203 */ sra $t6, $t1, 8 +/* 0FD7A0 7F0C8C70 31D800FF */ andi $t8, $t6, 0xff +/* 0FD7A4 7F0C8C74 03197021 */ addu $t6, $t8, $t9 +/* 0FD7A8 7F0C8C78 000B7A03 */ sra $t7, $t3, 8 +/* 0FD7AC 7F0C8C7C 31F800FF */ andi $t8, $t7, 0xff +/* 0FD7B0 7F0C8C80 01D8C821 */ addu $t9, $t6, $t8 +/* 0FD7B4 7F0C8C84 000C7A03 */ sra $t7, $t4, 8 +/* 0FD7B8 7F0C8C88 31EE00FF */ andi $t6, $t7, 0xff +/* 0FD7BC 7F0C8C8C 032EC021 */ addu $t8, $t9, $t6 +/* 0FD7C0 7F0C8C90 0018C883 */ sra $t9, $t8, 2 +/* 0FD7C4 7F0C8C94 00197200 */ sll $t6, $t9, 8 +/* 0FD7C8 7F0C8C98 314F00FF */ andi $t7, $t2, 0xff +/* 0FD7CC 7F0C8C9C 313800FF */ andi $t8, $t1, 0xff +/* 0FD7D0 7F0C8CA0 030FC821 */ addu $t9, $t8, $t7 +/* 0FD7D4 7F0C8CA4 317800FF */ andi $t8, $t3, 0xff +/* 0FD7D8 7F0C8CA8 03387821 */ addu $t7, $t9, $t8 +/* 0FD7DC 7F0C8CAC 319900FF */ andi $t9, $t4, 0xff +/* 0FD7E0 7F0C8CB0 01F9C021 */ addu $t8, $t7, $t9 +/* 0FD7E4 7F0C8CB4 270F0001 */ addiu $t7, $t8, 1 +/* 0FD7E8 7F0C8CB8 000FC883 */ sra $t9, $t7, 2 +/* 0FD7EC 7F0C8CBC 333800FF */ andi $t8, $t9, 0xff +/* 0FD7F0 7F0C8CC0 0008C843 */ sra $t9, $t0, 1 +/* 0FD7F4 7F0C8CC4 01D87825 */ or $t7, $t6, $t8 +/* 0FD7F8 7F0C8CC8 25080002 */ addiu $t0, $t0, 2 +/* 0FD7FC 7F0C8CCC 00197040 */ sll $t6, $t9, 1 +/* 0FD800 7F0C8CD0 0112082A */ slt $at, $t0, $s2 +/* 0FD804 7F0C8CD4 02CEC021 */ addu $t8, $s6, $t6 +/* 0FD808 7F0C8CD8 25AD0004 */ addiu $t5, $t5, 4 +/* 0FD80C 7F0C8CDC 26100004 */ addiu $s0, $s0, 4 +/* 0FD810 7F0C8CE0 1420FFD3 */ bnez $at, .L7F0C8C30 +/* 0FD814 7F0C8CE4 A70F0000 */ sh $t7, ($t8) +.L7F0C8CE8: +/* 0FD818 7F0C8CE8 8FB90038 */ lw $t9, 0x38($sp) +/* 0FD81C 7F0C8CEC 8FAE0034 */ lw $t6, 0x34($sp) +/* 0FD820 7F0C8CF0 03D7082A */ slt $at, $fp, $s7 +/* 0FD824 7F0C8CF4 02D9B021 */ addu $s6, $s6, $t9 +/* 0FD828 7F0C8CF8 1420FFC0 */ bnez $at, .L7F0C8BFC +/* 0FD82C 7F0C8CFC 028EA021 */ addu $s4, $s4, $t6 +.L7F0C8D00: +/* 0FD830 7F0C8D00 8FAF004C */ lw $t7, 0x4c($sp) +/* 0FD834 7F0C8D04 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0FD838 7F0C8D08 01F80019 */ multu $t7, $t8 +/* 0FD83C 7F0C8D0C 00001012 */ mflo $v0 +/* 0FD840 7F0C8D10 0002C840 */ sll $t9, $v0, 1 +/* 0FD844 7F0C8D14 10000123 */ b .L7F0C91A4 +/* 0FD848 7F0C8D18 03201025 */ move $v0, $t9 +.L7F0C8D1C: +/* 0FD84C 7F0C8D1C 1AE0003F */ blez $s7, .L7F0C8E1C +/* 0FD850 7F0C8D20 0000F025 */ move $fp, $zero +/* 0FD854 7F0C8D24 0012A040 */ sll $s4, $s2, 1 +.L7F0C8D28: +/* 0FD858 7F0C8D28 27CE0001 */ addiu $t6, $fp, 1 +/* 0FD85C 7F0C8D2C 01D7082A */ slt $at, $t6, $s7 +/* 0FD860 7F0C8D30 10200003 */ beqz $at, .L7F0C8D40 +/* 0FD864 7F0C8D34 00004025 */ move $t0, $zero +/* 0FD868 7F0C8D38 10000002 */ b .L7F0C8D44 +/* 0FD86C 7F0C8D3C 02409825 */ move $s3, $s2 +.L7F0C8D40: +/* 0FD870 7F0C8D40 00009825 */ move $s3, $zero +.L7F0C8D44: +/* 0FD874 7F0C8D44 1A400030 */ blez $s2, .L7F0C8E08 +/* 0FD878 7F0C8D48 27DE0002 */ addiu $fp, $fp, 2 +/* 0FD87C 7F0C8D4C 02006025 */ move $t4, $s0 +/* 0FD880 7F0C8D50 02706821 */ addu $t5, $s3, $s0 +.L7F0C8D54: +/* 0FD884 7F0C8D54 25020001 */ addiu $v0, $t0, 1 +/* 0FD888 7F0C8D58 0055082A */ slt $at, $v0, $s5 +/* 0FD88C 7F0C8D5C 10200003 */ beqz $at, .L7F0C8D6C +/* 0FD890 7F0C8D60 01003825 */ move $a3, $t0 +/* 0FD894 7F0C8D64 10000001 */ b .L7F0C8D6C +/* 0FD898 7F0C8D68 00403825 */ move $a3, $v0 +.L7F0C8D6C: +/* 0FD89C 7F0C8D6C 02077821 */ addu $t7, $s0, $a3 +/* 0FD8A0 7F0C8D70 91E90000 */ lbu $t1, ($t7) +/* 0FD8A4 7F0C8D74 0267C021 */ addu $t8, $s3, $a3 +/* 0FD8A8 7F0C8D78 918B0000 */ lbu $t3, ($t4) +/* 0FD8AC 7F0C8D7C 0310C821 */ addu $t9, $t8, $s0 +/* 0FD8B0 7F0C8D80 91AA0000 */ lbu $t2, ($t5) +/* 0FD8B4 7F0C8D84 93260000 */ lbu $a2, ($t9) +/* 0FD8B8 7F0C8D88 0009C103 */ sra $t8, $t1, 4 +/* 0FD8BC 7F0C8D8C 3319000F */ andi $t9, $t8, 0xf +/* 0FD8C0 7F0C8D90 000B7103 */ sra $t6, $t3, 4 +/* 0FD8C4 7F0C8D94 31CF000F */ andi $t7, $t6, 0xf +/* 0FD8C8 7F0C8D98 01F97021 */ addu $t6, $t7, $t9 +/* 0FD8CC 7F0C8D9C 000AC103 */ sra $t8, $t2, 4 +/* 0FD8D0 7F0C8DA0 330F000F */ andi $t7, $t8, 0xf +/* 0FD8D4 7F0C8DA4 01CFC821 */ addu $t9, $t6, $t7 +/* 0FD8D8 7F0C8DA8 0006C103 */ sra $t8, $a2, 4 +/* 0FD8DC 7F0C8DAC 330E000F */ andi $t6, $t8, 0xf +/* 0FD8E0 7F0C8DB0 032E7821 */ addu $t7, $t9, $t6 +/* 0FD8E4 7F0C8DB4 000FC080 */ sll $t8, $t7, 2 +/* 0FD8E8 7F0C8DB8 331900F0 */ andi $t9, $t8, 0xf0 +/* 0FD8EC 7F0C8DBC 312F000F */ andi $t7, $t1, 0xf +/* 0FD8F0 7F0C8DC0 316E000F */ andi $t6, $t3, 0xf +/* 0FD8F4 7F0C8DC4 01CFC021 */ addu $t8, $t6, $t7 +/* 0FD8F8 7F0C8DC8 314E000F */ andi $t6, $t2, 0xf +/* 0FD8FC 7F0C8DCC 030E7821 */ addu $t7, $t8, $t6 +/* 0FD900 7F0C8DD0 30D8000F */ andi $t8, $a2, 0xf +/* 0FD904 7F0C8DD4 01F87021 */ addu $t6, $t7, $t8 +/* 0FD908 7F0C8DD8 25CF0001 */ addiu $t7, $t6, 1 +/* 0FD90C 7F0C8DDC 000FC083 */ sra $t8, $t7, 2 +/* 0FD910 7F0C8DE0 330E000F */ andi $t6, $t8, 0xf +/* 0FD914 7F0C8DE4 0008C043 */ sra $t8, $t0, 1 +/* 0FD918 7F0C8DE8 25080002 */ addiu $t0, $t0, 2 +/* 0FD91C 7F0C8DEC 032E7825 */ or $t7, $t9, $t6 +/* 0FD920 7F0C8DF0 0112082A */ slt $at, $t0, $s2 +/* 0FD924 7F0C8DF4 0238C821 */ addu $t9, $s1, $t8 +/* 0FD928 7F0C8DF8 258C0002 */ addiu $t4, $t4, 2 +/* 0FD92C 7F0C8DFC 25AD0002 */ addiu $t5, $t5, 2 +/* 0FD930 7F0C8E00 1420FFD4 */ bnez $at, .L7F0C8D54 +/* 0FD934 7F0C8E04 A32F0000 */ sb $t7, ($t9) +.L7F0C8E08: +/* 0FD938 7F0C8E08 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0FD93C 7F0C8E0C 03D7082A */ slt $at, $fp, $s7 +/* 0FD940 7F0C8E10 02148021 */ addu $s0, $s0, $s4 +/* 0FD944 7F0C8E14 1420FFC4 */ bnez $at, .L7F0C8D28 +/* 0FD948 7F0C8E18 022E8821 */ addu $s1, $s1, $t6 +.L7F0C8E1C: +/* 0FD94C 7F0C8E1C 8FB8004C */ lw $t8, 0x4c($sp) +/* 0FD950 7F0C8E20 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FD954 7F0C8E24 030F0019 */ multu $t8, $t7 +/* 0FD958 7F0C8E28 00001012 */ mflo $v0 +/* 0FD95C 7F0C8E2C 100000DE */ b .L7F0C91A8 +/* 0FD960 7F0C8E30 8FB00004 */ lw $s0, 4($sp) +.L7F0C8E34: +/* 0FD964 7F0C8E34 1AE0002C */ blez $s7, .L7F0C8EE8 +/* 0FD968 7F0C8E38 0000F025 */ move $fp, $zero +/* 0FD96C 7F0C8E3C 0012A040 */ sll $s4, $s2, 1 +.L7F0C8E40: +/* 0FD970 7F0C8E40 27D90001 */ addiu $t9, $fp, 1 +/* 0FD974 7F0C8E44 0337082A */ slt $at, $t9, $s7 +/* 0FD978 7F0C8E48 10200003 */ beqz $at, .L7F0C8E58 +/* 0FD97C 7F0C8E4C 00004025 */ move $t0, $zero +/* 0FD980 7F0C8E50 10000002 */ b .L7F0C8E5C +/* 0FD984 7F0C8E54 02409825 */ move $s3, $s2 +.L7F0C8E58: +/* 0FD988 7F0C8E58 00009825 */ move $s3, $zero +.L7F0C8E5C: +/* 0FD98C 7F0C8E5C 1A40001D */ blez $s2, .L7F0C8ED4 +/* 0FD990 7F0C8E60 27DE0002 */ addiu $fp, $fp, 2 +/* 0FD994 7F0C8E64 02006025 */ move $t4, $s0 +/* 0FD998 7F0C8E68 02706821 */ addu $t5, $s3, $s0 +.L7F0C8E6C: +/* 0FD99C 7F0C8E6C 25020001 */ addiu $v0, $t0, 1 +/* 0FD9A0 7F0C8E70 0055082A */ slt $at, $v0, $s5 +/* 0FD9A4 7F0C8E74 10200003 */ beqz $at, .L7F0C8E84 +/* 0FD9A8 7F0C8E78 01003825 */ move $a3, $t0 +/* 0FD9AC 7F0C8E7C 10000001 */ b .L7F0C8E84 +/* 0FD9B0 7F0C8E80 00403825 */ move $a3, $v0 +.L7F0C8E84: +/* 0FD9B4 7F0C8E84 02077021 */ addu $t6, $s0, $a3 +/* 0FD9B8 7F0C8E88 918B0000 */ lbu $t3, ($t4) +/* 0FD9BC 7F0C8E8C 91C90000 */ lbu $t1, ($t6) +/* 0FD9C0 7F0C8E90 0267C021 */ addu $t8, $s3, $a3 +/* 0FD9C4 7F0C8E94 91AA0000 */ lbu $t2, ($t5) +/* 0FD9C8 7F0C8E98 03107821 */ addu $t7, $t8, $s0 +/* 0FD9CC 7F0C8E9C 91E60000 */ lbu $a2, ($t7) +/* 0FD9D0 7F0C8EA0 0169C821 */ addu $t9, $t3, $t1 +/* 0FD9D4 7F0C8EA4 032A7021 */ addu $t6, $t9, $t2 +/* 0FD9D8 7F0C8EA8 01C6C021 */ addu $t8, $t6, $a2 +/* 0FD9DC 7F0C8EAC 270F0001 */ addiu $t7, $t8, 1 +/* 0FD9E0 7F0C8EB0 0008C043 */ sra $t8, $t0, 1 +/* 0FD9E4 7F0C8EB4 25080002 */ addiu $t0, $t0, 2 +/* 0FD9E8 7F0C8EB8 000F7083 */ sra $t6, $t7, 2 +/* 0FD9EC 7F0C8EBC 0112082A */ slt $at, $t0, $s2 +/* 0FD9F0 7F0C8EC0 02387821 */ addu $t7, $s1, $t8 +/* 0FD9F4 7F0C8EC4 258C0002 */ addiu $t4, $t4, 2 +/* 0FD9F8 7F0C8EC8 25AD0002 */ addiu $t5, $t5, 2 +/* 0FD9FC 7F0C8ECC 1420FFE7 */ bnez $at, .L7F0C8E6C +/* 0FDA00 7F0C8ED0 A1EE0000 */ sb $t6, ($t7) +.L7F0C8ED4: +/* 0FDA04 7F0C8ED4 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0FDA08 7F0C8ED8 03D7082A */ slt $at, $fp, $s7 +/* 0FDA0C 7F0C8EDC 02148021 */ addu $s0, $s0, $s4 +/* 0FDA10 7F0C8EE0 1420FFD7 */ bnez $at, .L7F0C8E40 +/* 0FDA14 7F0C8EE4 02398821 */ addu $s1, $s1, $t9 +.L7F0C8EE8: +/* 0FDA18 7F0C8EE8 8FB8004C */ lw $t8, 0x4c($sp) +/* 0FDA1C 7F0C8EEC 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0FDA20 7F0C8EF0 030E0019 */ multu $t8, $t6 +/* 0FDA24 7F0C8EF4 00001012 */ mflo $v0 +/* 0FDA28 7F0C8EF8 100000AB */ b .L7F0C91A8 +/* 0FDA2C 7F0C8EFC 8FB00004 */ lw $s0, 4($sp) +.L7F0C8F00: +/* 0FDA30 7F0C8F00 1AE0005D */ blez $s7, .L7F0C9078 +/* 0FDA34 7F0C8F04 0000F025 */ move $fp, $zero +/* 0FDA38 7F0C8F08 8FB400A8 */ lw $s4, 0xa8($sp) +/* 0FDA3C 7F0C8F0C 00147843 */ sra $t7, $s4, 1 +/* 0FDA40 7F0C8F10 01E0A025 */ move $s4, $t7 +.L7F0C8F14: +/* 0FDA44 7F0C8F14 1A400053 */ blez $s2, .L7F0C9064 +/* 0FDA48 7F0C8F18 00004025 */ move $t0, $zero +/* 0FDA4C 7F0C8F1C 27C70001 */ addiu $a3, $fp, 1 +.L7F0C8F20: +/* 0FDA50 7F0C8F20 00086843 */ sra $t5, $t0, 1 +/* 0FDA54 7F0C8F24 01B01021 */ addu $v0, $t5, $s0 +/* 0FDA58 7F0C8F28 00F7082A */ slt $at, $a3, $s7 +/* 0FDA5C 7F0C8F2C 10200003 */ beqz $at, .L7F0C8F3C +/* 0FDA60 7F0C8F30 904B0000 */ lbu $t3, ($v0) +/* 0FDA64 7F0C8F34 10000002 */ b .L7F0C8F40 +/* 0FDA68 7F0C8F38 00129843 */ sra $s3, $s2, 1 +.L7F0C8F3C: +/* 0FDA6C 7F0C8F3C 00009825 */ move $s3, $zero +.L7F0C8F40: +/* 0FDA70 7F0C8F40 026DC821 */ addu $t9, $s3, $t5 +/* 0FDA74 7F0C8F44 0330C021 */ addu $t8, $t9, $s0 +/* 0FDA78 7F0C8F48 00F7082A */ slt $at, $a3, $s7 +/* 0FDA7C 7F0C8F4C 93090000 */ lbu $t1, ($t8) +/* 0FDA80 7F0C8F50 10200003 */ beqz $at, .L7F0C8F60 +/* 0FDA84 7F0C8F54 904A0001 */ lbu $t2, 1($v0) +/* 0FDA88 7F0C8F58 10000002 */ b .L7F0C8F64 +/* 0FDA8C 7F0C8F5C 00129843 */ sra $s3, $s2, 1 +.L7F0C8F60: +/* 0FDA90 7F0C8F60 00009825 */ move $s3, $zero +.L7F0C8F64: +/* 0FDA94 7F0C8F64 026D7021 */ addu $t6, $s3, $t5 +/* 0FDA98 7F0C8F68 01D07821 */ addu $t7, $t6, $s0 +/* 0FDA9C 7F0C8F6C 91E60001 */ lbu $a2, 1($t7) +/* 0FDAA0 7F0C8F70 000B7043 */ sra $t6, $t3, 1 +/* 0FDAA4 7F0C8F74 31CF0007 */ andi $t7, $t6, 7 +/* 0FDAA8 7F0C8F78 000BC943 */ sra $t9, $t3, 5 +/* 0FDAAC 7F0C8F7C 33380007 */ andi $t8, $t9, 7 +/* 0FDAB0 7F0C8F80 030FC821 */ addu $t9, $t8, $t7 +/* 0FDAB4 7F0C8F84 00097143 */ sra $t6, $t1, 5 +/* 0FDAB8 7F0C8F88 31D80007 */ andi $t8, $t6, 7 +/* 0FDABC 7F0C8F8C 03387821 */ addu $t7, $t9, $t8 +/* 0FDAC0 7F0C8F90 00097043 */ sra $t6, $t1, 1 +/* 0FDAC4 7F0C8F94 31D90007 */ andi $t9, $t6, 7 +/* 0FDAC8 7F0C8F98 01F9C021 */ addu $t8, $t7, $t9 +/* 0FDACC 7F0C8F9C 001870C0 */ sll $t6, $t8, 3 +/* 0FDAD0 7F0C8FA0 31CF00E0 */ andi $t7, $t6, 0xe0 +/* 0FDAD4 7F0C8FA4 000AC943 */ sra $t9, $t2, 5 +/* 0FDAD8 7F0C8FA8 33380007 */ andi $t8, $t9, 7 +/* 0FDADC 7F0C8FAC 000A7043 */ sra $t6, $t2, 1 +/* 0FDAE0 7F0C8FB0 31D90007 */ andi $t9, $t6, 7 +/* 0FDAE4 7F0C8FB4 03197021 */ addu $t6, $t8, $t9 +/* 0FDAE8 7F0C8FB8 0006C143 */ sra $t8, $a2, 5 +/* 0FDAEC 7F0C8FBC 33190007 */ andi $t9, $t8, 7 +/* 0FDAF0 7F0C8FC0 01D9C021 */ addu $t8, $t6, $t9 +/* 0FDAF4 7F0C8FC4 00067043 */ sra $t6, $a2, 1 +/* 0FDAF8 7F0C8FC8 31D90007 */ andi $t9, $t6, 7 +/* 0FDAFC 7F0C8FCC 03197021 */ addu $t6, $t8, $t9 +/* 0FDB00 7F0C8FD0 000EC043 */ sra $t8, $t6, 1 +/* 0FDB04 7F0C8FD4 3319000E */ andi $t9, $t8, 0xe +/* 0FDB08 7F0C8FD8 01F97025 */ or $t6, $t7, $t9 +/* 0FDB0C 7F0C8FDC 000BC103 */ sra $t8, $t3, 4 +/* 0FDB10 7F0C8FE0 330F0001 */ andi $t7, $t8, 1 +/* 0FDB14 7F0C8FE4 31790001 */ andi $t9, $t3, 1 +/* 0FDB18 7F0C8FE8 01F9C021 */ addu $t8, $t7, $t9 +/* 0FDB1C 7F0C8FEC 00097903 */ sra $t7, $t1, 4 +/* 0FDB20 7F0C8FF0 31F90001 */ andi $t9, $t7, 1 +/* 0FDB24 7F0C8FF4 03197821 */ addu $t7, $t8, $t9 +/* 0FDB28 7F0C8FF8 31380001 */ andi $t8, $t1, 1 +/* 0FDB2C 7F0C8FFC 01F8C821 */ addu $t9, $t7, $t8 +/* 0FDB30 7F0C9000 272F0001 */ addiu $t7, $t9, 1 +/* 0FDB34 7F0C9004 000FC080 */ sll $t8, $t7, 2 +/* 0FDB38 7F0C9008 33190010 */ andi $t9, $t8, 0x10 +/* 0FDB3C 7F0C900C 000A7903 */ sra $t7, $t2, 4 +/* 0FDB40 7F0C9010 31F80001 */ andi $t8, $t7, 1 +/* 0FDB44 7F0C9014 314F0001 */ andi $t7, $t2, 1 +/* 0FDB48 7F0C9018 030FC021 */ addu $t8, $t8, $t7 +/* 0FDB4C 7F0C901C AFAE0028 */ sw $t6, 0x28($sp) +/* 0FDB50 7F0C9020 00067903 */ sra $t7, $a2, 4 +/* 0FDB54 7F0C9024 31EE0001 */ andi $t6, $t7, 1 +/* 0FDB58 7F0C9028 030E7021 */ addu $t6, $t8, $t6 +/* 0FDB5C 7F0C902C 30D80001 */ andi $t8, $a2, 1 +/* 0FDB60 7F0C9030 01D87821 */ addu $t7, $t6, $t8 +/* 0FDB64 7F0C9034 25EE0001 */ addiu $t6, $t7, 1 +/* 0FDB68 7F0C9038 000EC083 */ sra $t8, $t6, 2 +/* 0FDB6C 7F0C903C 330F0001 */ andi $t7, $t8, 1 +/* 0FDB70 7F0C9040 8FB80028 */ lw $t8, 0x28($sp) +/* 0FDB74 7F0C9044 032F7025 */ or $t6, $t9, $t7 +/* 0FDB78 7F0C9048 00087883 */ sra $t7, $t0, 2 +/* 0FDB7C 7F0C904C 25080004 */ addiu $t0, $t0, 4 +/* 0FDB80 7F0C9050 030EC825 */ or $t9, $t8, $t6 +/* 0FDB84 7F0C9054 0112082A */ slt $at, $t0, $s2 +/* 0FDB88 7F0C9058 022FC021 */ addu $t8, $s1, $t7 +/* 0FDB8C 7F0C905C 1420FFB0 */ bnez $at, .L7F0C8F20 +/* 0FDB90 7F0C9060 A3190000 */ sb $t9, ($t8) +.L7F0C9064: +/* 0FDB94 7F0C9064 27DE0002 */ addiu $fp, $fp, 2 +/* 0FDB98 7F0C9068 03D7082A */ slt $at, $fp, $s7 +/* 0FDB9C 7F0C906C 02348821 */ addu $s1, $s1, $s4 +/* 0FDBA0 7F0C9070 1420FFA8 */ bnez $at, .L7F0C8F14 +/* 0FDBA4 7F0C9074 02128021 */ addu $s0, $s0, $s2 +.L7F0C9078: +/* 0FDBA8 7F0C9078 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0FDBAC 7F0C907C 000E7843 */ sra $t7, $t6, 1 +/* 0FDBB0 7F0C9080 01EC0019 */ multu $t7, $t4 +/* 0FDBB4 7F0C9084 00001012 */ mflo $v0 +/* 0FDBB8 7F0C9088 10000047 */ b .L7F0C91A8 +/* 0FDBBC 7F0C908C 8FB00004 */ lw $s0, 4($sp) +.L7F0C9090: +/* 0FDBC0 7F0C9090 1AE0003D */ blez $s7, .L7F0C9188 +/* 0FDBC4 7F0C9094 0000F025 */ move $fp, $zero +/* 0FDBC8 7F0C9098 8FB400A8 */ lw $s4, 0xa8($sp) +/* 0FDBCC 7F0C909C 0014C843 */ sra $t9, $s4, 1 +/* 0FDBD0 7F0C90A0 0320A025 */ move $s4, $t9 +.L7F0C90A4: +/* 0FDBD4 7F0C90A4 1A400033 */ blez $s2, .L7F0C9174 +/* 0FDBD8 7F0C90A8 00004025 */ move $t0, $zero +/* 0FDBDC 7F0C90AC 27C70001 */ addiu $a3, $fp, 1 +.L7F0C90B0: +/* 0FDBE0 7F0C90B0 00086843 */ sra $t5, $t0, 1 +/* 0FDBE4 7F0C90B4 01B01021 */ addu $v0, $t5, $s0 +/* 0FDBE8 7F0C90B8 00F7082A */ slt $at, $a3, $s7 +/* 0FDBEC 7F0C90BC 10200003 */ beqz $at, .L7F0C90CC +/* 0FDBF0 7F0C90C0 904B0000 */ lbu $t3, ($v0) +/* 0FDBF4 7F0C90C4 10000002 */ b .L7F0C90D0 +/* 0FDBF8 7F0C90C8 00129843 */ sra $s3, $s2, 1 +.L7F0C90CC: +/* 0FDBFC 7F0C90CC 00009825 */ move $s3, $zero +.L7F0C90D0: +/* 0FDC00 7F0C90D0 026DC021 */ addu $t8, $s3, $t5 +/* 0FDC04 7F0C90D4 03107021 */ addu $t6, $t8, $s0 +/* 0FDC08 7F0C90D8 00F7082A */ slt $at, $a3, $s7 +/* 0FDC0C 7F0C90DC 91C90000 */ lbu $t1, ($t6) +/* 0FDC10 7F0C90E0 10200003 */ beqz $at, .L7F0C90F0 +/* 0FDC14 7F0C90E4 904A0001 */ lbu $t2, 1($v0) +/* 0FDC18 7F0C90E8 10000002 */ b .L7F0C90F4 +/* 0FDC1C 7F0C90EC 00129843 */ sra $s3, $s2, 1 +.L7F0C90F0: +/* 0FDC20 7F0C90F0 00009825 */ move $s3, $zero +.L7F0C90F4: +/* 0FDC24 7F0C90F4 026D7821 */ addu $t7, $s3, $t5 +/* 0FDC28 7F0C90F8 01F0C821 */ addu $t9, $t7, $s0 +/* 0FDC2C 7F0C90FC 000BC103 */ sra $t8, $t3, 4 +/* 0FDC30 7F0C9100 330E000F */ andi $t6, $t8, 0xf +/* 0FDC34 7F0C9104 93260001 */ lbu $a2, 1($t9) +/* 0FDC38 7F0C9108 316F000F */ andi $t7, $t3, 0xf +/* 0FDC3C 7F0C910C 01CFC821 */ addu $t9, $t6, $t7 +/* 0FDC40 7F0C9110 0009C103 */ sra $t8, $t1, 4 +/* 0FDC44 7F0C9114 330E000F */ andi $t6, $t8, 0xf +/* 0FDC48 7F0C9118 032E7821 */ addu $t7, $t9, $t6 +/* 0FDC4C 7F0C911C 3138000F */ andi $t8, $t1, 0xf +/* 0FDC50 7F0C9120 01F8C821 */ addu $t9, $t7, $t8 +/* 0FDC54 7F0C9124 00197080 */ sll $t6, $t9, 2 +/* 0FDC58 7F0C9128 31CF00F0 */ andi $t7, $t6, 0xf0 +/* 0FDC5C 7F0C912C 000AC103 */ sra $t8, $t2, 4 +/* 0FDC60 7F0C9130 3319000F */ andi $t9, $t8, 0xf +/* 0FDC64 7F0C9134 314E000F */ andi $t6, $t2, 0xf +/* 0FDC68 7F0C9138 032EC021 */ addu $t8, $t9, $t6 +/* 0FDC6C 7F0C913C 0006C903 */ sra $t9, $a2, 4 +/* 0FDC70 7F0C9140 332E000F */ andi $t6, $t9, 0xf +/* 0FDC74 7F0C9144 030EC821 */ addu $t9, $t8, $t6 +/* 0FDC78 7F0C9148 30D8000F */ andi $t8, $a2, 0xf +/* 0FDC7C 7F0C914C 03387021 */ addu $t6, $t9, $t8 +/* 0FDC80 7F0C9150 000EC883 */ sra $t9, $t6, 2 +/* 0FDC84 7F0C9154 3338000F */ andi $t8, $t9, 0xf +/* 0FDC88 7F0C9158 0008C883 */ sra $t9, $t0, 2 +/* 0FDC8C 7F0C915C 25080004 */ addiu $t0, $t0, 4 +/* 0FDC90 7F0C9160 01F87025 */ or $t6, $t7, $t8 +/* 0FDC94 7F0C9164 0112082A */ slt $at, $t0, $s2 +/* 0FDC98 7F0C9168 02397821 */ addu $t7, $s1, $t9 +/* 0FDC9C 7F0C916C 1420FFD0 */ bnez $at, .L7F0C90B0 +/* 0FDCA0 7F0C9170 A1EE0000 */ sb $t6, ($t7) +.L7F0C9174: +/* 0FDCA4 7F0C9174 27DE0002 */ addiu $fp, $fp, 2 +/* 0FDCA8 7F0C9178 03D7082A */ slt $at, $fp, $s7 +/* 0FDCAC 7F0C917C 02348821 */ addu $s1, $s1, $s4 +/* 0FDCB0 7F0C9180 1420FFC8 */ bnez $at, .L7F0C90A4 +/* 0FDCB4 7F0C9184 02128021 */ addu $s0, $s0, $s2 +.L7F0C9188: +/* 0FDCB8 7F0C9188 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0FDCBC 7F0C918C 0018C843 */ sra $t9, $t8, 1 +/* 0FDCC0 7F0C9190 032C0019 */ multu $t9, $t4 +/* 0FDCC4 7F0C9194 00001012 */ mflo $v0 +/* 0FDCC8 7F0C9198 10000003 */ b .L7F0C91A8 +/* 0FDCCC 7F0C919C 8FB00004 */ lw $s0, 4($sp) +def_7F0C8874: +.L7F0C91A0: +/* 0FDCD0 7F0C91A0 00001025 */ move $v0, $zero +.L7F0C91A4: +/* 0FDCD4 7F0C91A4 8FB00004 */ lw $s0, 4($sp) +.L7F0C91A8: +/* 0FDCD8 7F0C91A8 8FB10008 */ lw $s1, 8($sp) +/* 0FDCDC 7F0C91AC 8FB2000C */ lw $s2, 0xc($sp) +/* 0FDCE0 7F0C91B0 8FB30010 */ lw $s3, 0x10($sp) +/* 0FDCE4 7F0C91B4 8FB40014 */ lw $s4, 0x14($sp) +/* 0FDCE8 7F0C91B8 8FB50018 */ lw $s5, 0x18($sp) +/* 0FDCEC 7F0C91BC 8FB6001C */ lw $s6, 0x1c($sp) +/* 0FDCF0 7F0C91C0 8FB70020 */ lw $s7, 0x20($sp) +/* 0FDCF4 7F0C91C4 8FBE0024 */ lw $fp, 0x24($sp) +/* 0FDCF8 7F0C91C8 03E00008 */ jr $ra +/* 0FDCFC 7F0C91CC 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void generate_sample_table(void) { + +} +#else +GLOBAL_ASM( +.text +glabel generate_sample_table +/* 0FDD00 7F0C91D0 27BDCF88 */ addiu $sp, $sp, -0x3078 +/* 0FDD04 7F0C91D4 AFBF002C */ sw $ra, 0x2c($sp) +/* 0FDD08 7F0C91D8 AFB40028 */ sw $s4, 0x28($sp) +/* 0FDD0C 7F0C91DC AFB1001C */ sw $s1, 0x1c($sp) +/* 0FDD10 7F0C91E0 00C0A025 */ move $s4, $a2 +/* 0FDD14 7F0C91E4 AFB30024 */ sw $s3, 0x24($sp) +/* 0FDD18 7F0C91E8 AFB20020 */ sw $s2, 0x20($sp) +/* 0FDD1C 7F0C91EC AFB00018 */ sw $s0, 0x18($sp) +/* 0FDD20 7F0C91F0 AFA43078 */ sw $a0, 0x3078($sp) +/* 0FDD24 7F0C91F4 AFA5307C */ sw $a1, 0x307c($sp) +/* 0FDD28 7F0C91F8 0000F825 */ move $ra, $zero +/* 0FDD2C 7F0C91FC 18C0000A */ blez $a2, .L7F0C9228 +/* 0FDD30 7F0C9200 00008825 */ move $s1, $zero +/* 0FDD34 7F0C9204 27B02078 */ addiu $s0, $sp, 0x2078 +.L7F0C9208: +/* 0FDD38 7F0C9208 AFBF005C */ sw $ra, 0x5c($sp) +/* 0FDD3C 7F0C920C 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FDD40 7F0C9210 24040008 */ li $a0, 8 +/* 0FDD44 7F0C9214 26310001 */ addiu $s1, $s1, 1 +/* 0FDD48 7F0C9218 8FBF005C */ lw $ra, 0x5c($sp) +/* 0FDD4C 7F0C921C 26100002 */ addiu $s0, $s0, 2 +/* 0FDD50 7F0C9220 1634FFF9 */ bne $s1, $s4, .L7F0C9208 +/* 0FDD54 7F0C9224 A602FFFE */ sh $v0, -2($s0) +.L7F0C9228: +/* 0FDD58 7F0C9228 27A20078 */ addiu $v0, $sp, 0x78 +/* 0FDD5C 7F0C922C 27A42078 */ addiu $a0, $sp, 0x2078 +/* 0FDD60 7F0C9230 2403FFFF */ li $v1, -1 +.L7F0C9234: +/* 0FDD64 7F0C9234 24420004 */ addiu $v0, $v0, 4 +/* 0FDD68 7F0C9238 0044082B */ sltu $at, $v0, $a0 +/* 0FDD6C 7F0C923C A443FFFC */ sh $v1, -4($v0) +/* 0FDD70 7F0C9240 1420FFFC */ bnez $at, .L7F0C9234 +/* 0FDD74 7F0C9244 A443FFFE */ sh $v1, -2($v0) +/* 0FDD78 7F0C9248 2408270F */ li $t0, 9999 +/* 0FDD7C 7F0C924C 2406270F */ li $a2, 9999 +/* 0FDD80 7F0C9250 1A800049 */ blez $s4, .L7F0C9378 +/* 0FDD84 7F0C9254 00008825 */ move $s1, $zero +/* 0FDD88 7F0C9258 32820001 */ andi $v0, $s4, 1 +/* 0FDD8C 7F0C925C 10400013 */ beqz $v0, .L7F0C92AC +/* 0FDD90 7F0C9260 27AF2078 */ addiu $t7, $sp, 0x2078 +/* 0FDD94 7F0C9264 97A22078 */ lhu $v0, 0x2078($sp) +/* 0FDD98 7F0C9268 2841270F */ slti $at, $v0, 0x270f +/* 0FDD9C 7F0C926C 50200005 */ beql $at, $zero, .L7F0C9284 +/* 0FDDA0 7F0C9270 2841270F */ slti $at, $v0, 0x270f +/* 0FDDA4 7F0C9274 3046FFFF */ andi $a2, $v0, 0xffff +/* 0FDDA8 7F0C9278 10000006 */ b .L7F0C9294 +/* 0FDDAC 7F0C927C AFA00060 */ sw $zero, 0x60($sp) +/* 0FDDB0 7F0C9280 2841270F */ slti $at, $v0, 0x270f +.L7F0C9284: +/* 0FDDB4 7F0C9284 50200004 */ beql $at, $zero, .L7F0C9298 +/* 0FDDB8 7F0C9288 8FA70060 */ lw $a3, 0x60($sp) +/* 0FDDBC 7F0C928C 97A62078 */ lhu $a2, 0x2078($sp) +/* 0FDDC0 7F0C9290 AFA00060 */ sw $zero, 0x60($sp) +.L7F0C9294: +/* 0FDDC4 7F0C9294 8FA70060 */ lw $a3, 0x60($sp) +.L7F0C9298: +/* 0FDDC8 7F0C9298 8FA90064 */ lw $t1, 0x64($sp) +/* 0FDDCC 7F0C929C 24110001 */ li $s1, 1 +/* 0FDDD0 7F0C92A0 AFA70060 */ sw $a3, 0x60($sp) +/* 0FDDD4 7F0C92A4 12340031 */ beq $s1, $s4, .L7F0C936C +/* 0FDDD8 7F0C92A8 AFA90064 */ sw $t1, 0x64($sp) +.L7F0C92AC: +/* 0FDDDC 7F0C92AC 00117040 */ sll $t6, $s1, 1 +/* 0FDDE0 7F0C92B0 01CF8021 */ addu $s0, $t6, $t7 +/* 0FDDE4 7F0C92B4 8FA70060 */ lw $a3, 0x60($sp) +/* 0FDDE8 7F0C92B8 8FA90064 */ lw $t1, 0x64($sp) +.L7F0C92BC: +/* 0FDDEC 7F0C92BC 96030000 */ lhu $v1, ($s0) +/* 0FDDF0 7F0C92C0 01002825 */ move $a1, $t0 +/* 0FDDF4 7F0C92C4 00C02025 */ move $a0, $a2 +/* 0FDDF8 7F0C92C8 0068082A */ slt $at, $v1, $t0 +/* 0FDDFC 7F0C92CC 1020000C */ beqz $at, .L7F0C9300 +/* 0FDE00 7F0C92D0 00601025 */ move $v0, $v1 +/* 0FDE04 7F0C92D4 0085082A */ slt $at, $a0, $a1 +/* 0FDE08 7F0C92D8 50200006 */ beql $at, $zero, .L7F0C92F4 +/* 0FDE0C 7F0C92DC 3066FFFF */ andi $a2, $v1, 0xffff +/* 0FDE10 7F0C92E0 3068FFFF */ andi $t0, $v1, 0xffff +/* 0FDE14 7F0C92E4 01002825 */ move $a1, $t0 +/* 0FDE18 7F0C92E8 1000000B */ b .L7F0C9318 +/* 0FDE1C 7F0C92EC 02204825 */ move $t1, $s1 +/* 0FDE20 7F0C92F0 3066FFFF */ andi $a2, $v1, 0xffff +.L7F0C92F4: +/* 0FDE24 7F0C92F4 00C02025 */ move $a0, $a2 +/* 0FDE28 7F0C92F8 10000007 */ b .L7F0C9318 +/* 0FDE2C 7F0C92FC 02203825 */ move $a3, $s1 +.L7F0C9300: +/* 0FDE30 7F0C9300 0044082A */ slt $at, $v0, $a0 +/* 0FDE34 7F0C9304 50200005 */ beql $at, $zero, .L7F0C931C +/* 0FDE38 7F0C9308 96030002 */ lhu $v1, 2($s0) +/* 0FDE3C 7F0C930C 3066FFFF */ andi $a2, $v1, 0xffff +/* 0FDE40 7F0C9310 00C02025 */ move $a0, $a2 +/* 0FDE44 7F0C9314 02203825 */ move $a3, $s1 +.L7F0C9318: +/* 0FDE48 7F0C9318 96030002 */ lhu $v1, 2($s0) +.L7F0C931C: +/* 0FDE4C 7F0C931C 0065082A */ slt $at, $v1, $a1 +/* 0FDE50 7F0C9320 1020000A */ beqz $at, .L7F0C934C +/* 0FDE54 7F0C9324 00601025 */ move $v0, $v1 +/* 0FDE58 7F0C9328 0085082A */ slt $at, $a0, $a1 +/* 0FDE5C 7F0C932C 50200005 */ beql $at, $zero, .L7F0C9344 +/* 0FDE60 7F0C9330 3066FFFF */ andi $a2, $v1, 0xffff +/* 0FDE64 7F0C9334 3068FFFF */ andi $t0, $v1, 0xffff +/* 0FDE68 7F0C9338 10000009 */ b .L7F0C9360 +/* 0FDE6C 7F0C933C 26290001 */ addiu $t1, $s1, 1 +/* 0FDE70 7F0C9340 3066FFFF */ andi $a2, $v1, 0xffff +.L7F0C9344: +/* 0FDE74 7F0C9344 10000006 */ b .L7F0C9360 +/* 0FDE78 7F0C9348 26270001 */ addiu $a3, $s1, 1 +.L7F0C934C: +/* 0FDE7C 7F0C934C 0044082A */ slt $at, $v0, $a0 +/* 0FDE80 7F0C9350 50200004 */ beql $at, $zero, .L7F0C9364 +/* 0FDE84 7F0C9354 26310002 */ addiu $s1, $s1, 2 +/* 0FDE88 7F0C9358 3066FFFF */ andi $a2, $v1, 0xffff +/* 0FDE8C 7F0C935C 26270001 */ addiu $a3, $s1, 1 +.L7F0C9360: +/* 0FDE90 7F0C9360 26310002 */ addiu $s1, $s1, 2 +.L7F0C9364: +/* 0FDE94 7F0C9364 1634FFD5 */ bne $s1, $s4, .L7F0C92BC +/* 0FDE98 7F0C9368 26100004 */ addiu $s0, $s0, 4 +.L7F0C936C: +/* 0FDE9C 7F0C936C 00008825 */ move $s1, $zero +/* 0FDEA0 7F0C9370 AFA70060 */ sw $a3, 0x60($sp) +/* 0FDEA4 7F0C9374 AFA90064 */ sw $t1, 0x64($sp) +.L7F0C9378: +/* 0FDEA8 7F0C9378 8FA70060 */ lw $a3, 0x60($sp) +/* 0FDEAC 7F0C937C 8FA90064 */ lw $t1, 0x64($sp) +/* 0FDEB0 7F0C9380 27B30078 */ addiu $s3, $sp, 0x78 +/* 0FDEB4 7F0C9384 240D270F */ li $t5, 9999 +/* 0FDEB8 7F0C9388 240C270F */ li $t4, 9999 +/* 0FDEBC 7F0C938C 27AB2078 */ addiu $t3, $sp, 0x2078 +/* 0FDEC0 7F0C9390 0007C040 */ sll $t8, $a3, 1 +.L7F0C9394: +/* 0FDEC4 7F0C9394 0009C840 */ sll $t9, $t1, 1 +/* 0FDEC8 7F0C9398 01791021 */ addu $v0, $t3, $t9 +/* 0FDECC 7F0C939C 01782821 */ addu $a1, $t3, $t8 +/* 0FDED0 7F0C93A0 94AE0000 */ lhu $t6, ($a1) +/* 0FDED4 7F0C93A4 944F0000 */ lhu $t7, ($v0) +/* 0FDED8 7F0C93A8 0009C080 */ sll $t8, $t1, 2 +/* 0FDEDC 7F0C93AC 0007C880 */ sll $t9, $a3, 2 +/* 0FDEE0 7F0C93B0 01CF5021 */ addu $t2, $t6, $t7 +/* 0FDEE4 7F0C93B4 02792021 */ addu $a0, $s3, $t9 +/* 0FDEE8 7F0C93B8 02781821 */ addu $v1, $s3, $t8 +/* 0FDEEC 7F0C93BC 2408270F */ li $t0, 9999 +/* 0FDEF0 7F0C93C0 15400002 */ bnez $t2, .L7F0C93CC +/* 0FDEF4 7F0C93C4 2406270F */ li $a2, 9999 +/* 0FDEF8 7F0C93C8 240A0001 */ li $t2, 1 +.L7F0C93CC: +/* 0FDEFC 7F0C93CC 846E0000 */ lh $t6, ($v1) +/* 0FDF00 7F0C93D0 A44C0000 */ sh $t4, ($v0) +/* 0FDF04 7F0C93D4 A4AC0000 */ sh $t4, ($a1) +/* 0FDF08 7F0C93D8 05C30014 */ bgezl $t6, .L7F0C942C +/* 0FDF0C 7F0C93DC 84980000 */ lh $t8, ($a0) +/* 0FDF10 7F0C93E0 846F0002 */ lh $t7, 2($v1) +/* 0FDF14 7F0C93E4 25382710 */ addiu $t8, $t1, 0x2710 +/* 0FDF18 7F0C93E8 05E30010 */ bgezl $t7, .L7F0C942C +/* 0FDF1C 7F0C93EC 84980000 */ lh $t8, ($a0) +/* 0FDF20 7F0C93F0 A4780000 */ sh $t8, ($v1) +/* 0FDF24 7F0C93F4 84990000 */ lh $t9, ($a0) +/* 0FDF28 7F0C93F8 01209025 */ move $s2, $t1 +/* 0FDF2C 7F0C93FC A44A0000 */ sh $t2, ($v0) +/* 0FDF30 7F0C9400 07210007 */ bgez $t9, .L7F0C9420 +/* 0FDF34 7F0C9404 00000000 */ nop +/* 0FDF38 7F0C9408 848E0002 */ lh $t6, 2($a0) +/* 0FDF3C 7F0C940C 24EF2710 */ addiu $t7, $a3, 0x2710 +/* 0FDF40 7F0C9410 05C10003 */ bgez $t6, .L7F0C9420 +/* 0FDF44 7F0C9414 00000000 */ nop +/* 0FDF48 7F0C9418 10000037 */ b .L7F0C94F8 +/* 0FDF4C 7F0C941C A46F0002 */ sh $t7, 2($v1) +.L7F0C9420: +/* 0FDF50 7F0C9420 10000035 */ b .L7F0C94F8 +/* 0FDF54 7F0C9424 A4670002 */ sh $a3, 2($v1) +/* 0FDF58 7F0C9428 84980000 */ lh $t8, ($a0) +.L7F0C942C: +/* 0FDF5C 7F0C942C 87AE0078 */ lh $t6, 0x78($sp) +/* 0FDF60 7F0C9430 07010013 */ bgez $t8, .L7F0C9480 +/* 0FDF64 7F0C9434 00000000 */ nop +/* 0FDF68 7F0C9438 84990002 */ lh $t9, 2($a0) +/* 0FDF6C 7F0C943C 07210010 */ bgez $t9, .L7F0C9480 +/* 0FDF70 7F0C9440 00000000 */ nop +/* 0FDF74 7F0C9444 24EE2710 */ addiu $t6, $a3, 0x2710 +/* 0FDF78 7F0C9448 A48E0000 */ sh $t6, ($a0) +/* 0FDF7C 7F0C944C 846F0000 */ lh $t7, ($v1) +/* 0FDF80 7F0C9450 00E09025 */ move $s2, $a3 +/* 0FDF84 7F0C9454 A4AA0000 */ sh $t2, ($a1) +/* 0FDF88 7F0C9458 05E10007 */ bgez $t7, .L7F0C9478 +/* 0FDF8C 7F0C945C 00000000 */ nop +/* 0FDF90 7F0C9460 84780002 */ lh $t8, 2($v1) +/* 0FDF94 7F0C9464 25392710 */ addiu $t9, $t1, 0x2710 +/* 0FDF98 7F0C9468 07010003 */ bgez $t8, .L7F0C9478 +/* 0FDF9C 7F0C946C 00000000 */ nop +/* 0FDFA0 7F0C9470 10000021 */ b .L7F0C94F8 +/* 0FDFA4 7F0C9474 A4990002 */ sh $t9, 2($a0) +.L7F0C9478: +/* 0FDFA8 7F0C9478 1000001F */ b .L7F0C94F8 +/* 0FDFAC 7F0C947C A4890002 */ sh $t1, 2($a0) +.L7F0C9480: +/* 0FDFB0 7F0C9480 05C10009 */ bgez $t6, .L7F0C94A8 +/* 0FDFB4 7F0C9484 00009025 */ move $s2, $zero +/* 0FDFB8 7F0C9488 00007880 */ sll $t7, $zero, 2 +/* 0FDFBC 7F0C948C 026F1021 */ addu $v0, $s3, $t7 +/* 0FDFC0 7F0C9490 84580002 */ lh $t8, 2($v0) +/* 0FDFC4 7F0C9494 97B92078 */ lhu $t9, 0x2078($sp) +/* 0FDFC8 7F0C9498 07010003 */ bgez $t8, .L7F0C94A8 +/* 0FDFCC 7F0C949C 2B21270F */ slti $at, $t9, 0x270f +/* 0FDFD0 7F0C94A0 50200011 */ beql $at, $zero, .L7F0C94E8 +/* 0FDFD4 7F0C94A4 0012C040 */ sll $t8, $s2, 1 +.L7F0C94A8: +/* 0FDFD8 7F0C94A8 26520001 */ addiu $s2, $s2, 1 +.L7F0C94AC: +/* 0FDFDC 7F0C94AC 00127080 */ sll $t6, $s2, 2 +/* 0FDFE0 7F0C94B0 026E1021 */ addu $v0, $s3, $t6 +/* 0FDFE4 7F0C94B4 844F0000 */ lh $t7, ($v0) +/* 0FDFE8 7F0C94B8 05E3FFFC */ bgezl $t7, .L7F0C94AC +/* 0FDFEC 7F0C94BC 26520001 */ addiu $s2, $s2, 1 +/* 0FDFF0 7F0C94C0 84580002 */ lh $t8, 2($v0) +/* 0FDFF4 7F0C94C4 0703FFF9 */ bgezl $t8, .L7F0C94AC +/* 0FDFF8 7F0C94C8 26520001 */ addiu $s2, $s2, 1 +/* 0FDFFC 7F0C94CC 0012C840 */ sll $t9, $s2, 1 +/* 0FE000 7F0C94D0 01797021 */ addu $t6, $t3, $t9 +/* 0FE004 7F0C94D4 95CF0000 */ lhu $t7, ($t6) +/* 0FE008 7F0C94D8 29E1270F */ slti $at, $t7, 0x270f +/* 0FE00C 7F0C94DC 5420FFF3 */ bnezl $at, .L7F0C94AC +/* 0FE010 7F0C94E0 26520001 */ addiu $s2, $s2, 1 +/* 0FE014 7F0C94E4 0012C040 */ sll $t8, $s2, 1 +.L7F0C94E8: +/* 0FE018 7F0C94E8 0178C821 */ addu $t9, $t3, $t8 +/* 0FE01C 7F0C94EC A72A0000 */ sh $t2, ($t9) +/* 0FE020 7F0C94F0 A4490000 */ sh $t1, ($v0) +/* 0FE024 7F0C94F4 A4470002 */ sh $a3, 2($v0) +.L7F0C94F8: +/* 0FE028 7F0C94F8 1A800040 */ blez $s4, .L7F0C95FC +/* 0FE02C 7F0C94FC 32820001 */ andi $v0, $s4, 1 +/* 0FE030 7F0C9500 50400010 */ beql $v0, $zero, .L7F0C9544 +/* 0FE034 7F0C9504 00117040 */ sll $t6, $s1, 1 +/* 0FE038 7F0C9508 97A22078 */ lhu $v0, 0x2078($sp) +/* 0FE03C 7F0C950C 24110001 */ li $s1, 1 +/* 0FE040 7F0C9510 2841270F */ slti $at, $v0, 0x270f +/* 0FE044 7F0C9514 50200005 */ beql $at, $zero, .L7F0C952C +/* 0FE048 7F0C9518 2841270F */ slti $at, $v0, 0x270f +/* 0FE04C 7F0C951C 3046FFFF */ andi $a2, $v0, 0xffff +/* 0FE050 7F0C9520 10000006 */ b .L7F0C953C +/* 0FE054 7F0C9524 00003825 */ move $a3, $zero +/* 0FE058 7F0C9528 2841270F */ slti $at, $v0, 0x270f +.L7F0C952C: +/* 0FE05C 7F0C952C 10200003 */ beqz $at, .L7F0C953C +/* 0FE060 7F0C9530 00000000 */ nop +/* 0FE064 7F0C9534 97A62078 */ lhu $a2, 0x2078($sp) +/* 0FE068 7F0C9538 00003825 */ move $a3, $zero +.L7F0C953C: +/* 0FE06C 7F0C953C 1234002E */ beq $s1, $s4, .L7F0C95F8 +/* 0FE070 7F0C9540 00117040 */ sll $t6, $s1, 1 +.L7F0C9544: +/* 0FE074 7F0C9544 016E8021 */ addu $s0, $t3, $t6 +.L7F0C9548: +/* 0FE078 7F0C9548 96030000 */ lhu $v1, ($s0) +/* 0FE07C 7F0C954C 01002825 */ move $a1, $t0 +/* 0FE080 7F0C9550 00C02025 */ move $a0, $a2 +/* 0FE084 7F0C9554 0068082A */ slt $at, $v1, $t0 +/* 0FE088 7F0C9558 1020000C */ beqz $at, .L7F0C958C +/* 0FE08C 7F0C955C 00601025 */ move $v0, $v1 +/* 0FE090 7F0C9560 0085082A */ slt $at, $a0, $a1 +/* 0FE094 7F0C9564 50200006 */ beql $at, $zero, .L7F0C9580 +/* 0FE098 7F0C9568 3066FFFF */ andi $a2, $v1, 0xffff +/* 0FE09C 7F0C956C 3068FFFF */ andi $t0, $v1, 0xffff +/* 0FE0A0 7F0C9570 01002825 */ move $a1, $t0 +/* 0FE0A4 7F0C9574 1000000B */ b .L7F0C95A4 +/* 0FE0A8 7F0C9578 02204825 */ move $t1, $s1 +/* 0FE0AC 7F0C957C 3066FFFF */ andi $a2, $v1, 0xffff +.L7F0C9580: +/* 0FE0B0 7F0C9580 00C02025 */ move $a0, $a2 +/* 0FE0B4 7F0C9584 10000007 */ b .L7F0C95A4 +/* 0FE0B8 7F0C9588 02203825 */ move $a3, $s1 +.L7F0C958C: +/* 0FE0BC 7F0C958C 0044082A */ slt $at, $v0, $a0 +/* 0FE0C0 7F0C9590 50200005 */ beql $at, $zero, .L7F0C95A8 +/* 0FE0C4 7F0C9594 96030002 */ lhu $v1, 2($s0) +/* 0FE0C8 7F0C9598 3066FFFF */ andi $a2, $v1, 0xffff +/* 0FE0CC 7F0C959C 00C02025 */ move $a0, $a2 +/* 0FE0D0 7F0C95A0 02203825 */ move $a3, $s1 +.L7F0C95A4: +/* 0FE0D4 7F0C95A4 96030002 */ lhu $v1, 2($s0) +.L7F0C95A8: +/* 0FE0D8 7F0C95A8 0065082A */ slt $at, $v1, $a1 +/* 0FE0DC 7F0C95AC 1020000A */ beqz $at, .L7F0C95D8 +/* 0FE0E0 7F0C95B0 00601025 */ move $v0, $v1 +/* 0FE0E4 7F0C95B4 0085082A */ slt $at, $a0, $a1 +/* 0FE0E8 7F0C95B8 50200005 */ beql $at, $zero, .L7F0C95D0 +/* 0FE0EC 7F0C95BC 3066FFFF */ andi $a2, $v1, 0xffff +/* 0FE0F0 7F0C95C0 3068FFFF */ andi $t0, $v1, 0xffff +/* 0FE0F4 7F0C95C4 10000009 */ b .L7F0C95EC +/* 0FE0F8 7F0C95C8 26290001 */ addiu $t1, $s1, 1 +/* 0FE0FC 7F0C95CC 3066FFFF */ andi $a2, $v1, 0xffff +.L7F0C95D0: +/* 0FE100 7F0C95D0 10000006 */ b .L7F0C95EC +/* 0FE104 7F0C95D4 26270001 */ addiu $a3, $s1, 1 +.L7F0C95D8: +/* 0FE108 7F0C95D8 0044082A */ slt $at, $v0, $a0 +/* 0FE10C 7F0C95DC 50200004 */ beql $at, $zero, .L7F0C95F0 +/* 0FE110 7F0C95E0 26310002 */ addiu $s1, $s1, 2 +/* 0FE114 7F0C95E4 3066FFFF */ andi $a2, $v1, 0xffff +/* 0FE118 7F0C95E8 26270001 */ addiu $a3, $s1, 1 +.L7F0C95EC: +/* 0FE11C 7F0C95EC 26310002 */ addiu $s1, $s1, 2 +.L7F0C95F0: +/* 0FE120 7F0C95F0 1634FFD5 */ bne $s1, $s4, .L7F0C9548 +/* 0FE124 7F0C95F4 26100004 */ addiu $s0, $s0, 4 +.L7F0C95F8: +/* 0FE128 7F0C95F8 00008825 */ move $s1, $zero +.L7F0C95FC: +/* 0FE12C 7F0C95FC 51A80004 */ beql $t5, $t0, .L7F0C9610 +/* 0FE130 7F0C9600 241F0001 */ li $ra, 1 +/* 0FE134 7F0C9604 15A60002 */ bne $t5, $a2, .L7F0C9610 +/* 0FE138 7F0C9608 00000000 */ nop +/* 0FE13C 7F0C960C 241F0001 */ li $ra, 1 +.L7F0C9610: +/* 0FE140 7F0C9610 53E0FF60 */ beql $ra, $zero, .L7F0C9394 +/* 0FE144 7F0C9614 0007C040 */ sll $t8, $a3, 1 +/* 0FE148 7F0C9618 8FAF307C */ lw $t7, 0x307c($sp) +/* 0FE14C 7F0C961C AFB20070 */ sw $s2, 0x70($sp) +/* 0FE150 7F0C9620 27B30078 */ addiu $s3, $sp, 0x78 +/* 0FE154 7F0C9624 19E0001D */ blez $t7, .L7F0C969C +/* 0FE158 7F0C9628 8FA23078 */ lw $v0, 0x3078($sp) +/* 0FE15C 7F0C962C 2A412710 */ slti $at, $s2, 0x2710 +.L7F0C9630: +/* 0FE160 7F0C9630 1020000C */ beqz $at, .L7F0C9664 +/* 0FE164 7F0C9634 02408025 */ move $s0, $s2 +.L7F0C9638: +/* 0FE168 7F0C9638 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE16C 7F0C963C 24040001 */ li $a0, 1 +/* 0FE170 7F0C9640 0010C080 */ sll $t8, $s0, 2 +/* 0FE174 7F0C9644 0278C821 */ addu $t9, $s3, $t8 +/* 0FE178 7F0C9648 00027040 */ sll $t6, $v0, 1 +/* 0FE17C 7F0C964C 032E7821 */ addu $t7, $t9, $t6 +/* 0FE180 7F0C9650 85F00000 */ lh $s0, ($t7) +/* 0FE184 7F0C9654 2A012710 */ slti $at, $s0, 0x2710 +/* 0FE188 7F0C9658 1420FFF7 */ bnez $at, .L7F0C9638 +/* 0FE18C 7F0C965C 00000000 */ nop +/* 0FE190 7F0C9660 8FA23078 */ lw $v0, 0x3078($sp) +.L7F0C9664: +/* 0FE194 7F0C9664 2A810101 */ slti $at, $s4, 0x101 +/* 0FE198 7F0C9668 10200005 */ beqz $at, .L7F0C9680 +/* 0FE19C 7F0C966C 260ED8F0 */ addiu $t6, $s0, -0x2710 +/* 0FE1A0 7F0C9670 2618D8F0 */ addiu $t8, $s0, -0x2710 +/* 0FE1A4 7F0C9674 0051C821 */ addu $t9, $v0, $s1 +/* 0FE1A8 7F0C9678 10000004 */ b .L7F0C968C +/* 0FE1AC 7F0C967C A3380000 */ sb $t8, ($t9) +.L7F0C9680: +/* 0FE1B0 7F0C9680 00117840 */ sll $t7, $s1, 1 +/* 0FE1B4 7F0C9684 004FC021 */ addu $t8, $v0, $t7 +/* 0FE1B8 7F0C9688 A70E0000 */ sh $t6, ($t8) +.L7F0C968C: +/* 0FE1BC 7F0C968C 8FB9307C */ lw $t9, 0x307c($sp) +/* 0FE1C0 7F0C9690 26310001 */ addiu $s1, $s1, 1 +/* 0FE1C4 7F0C9694 5639FFE6 */ bnel $s1, $t9, .L7F0C9630 +/* 0FE1C8 7F0C9698 2A412710 */ slti $at, $s2, 0x2710 +.L7F0C969C: +/* 0FE1CC 7F0C969C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0FE1D0 7F0C96A0 8FB00018 */ lw $s0, 0x18($sp) +/* 0FE1D4 7F0C96A4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0FE1D8 7F0C96A8 8FB20020 */ lw $s2, 0x20($sp) +/* 0FE1DC 7F0C96AC 8FB30024 */ lw $s3, 0x24($sp) +/* 0FE1E0 7F0C96B0 8FB40028 */ lw $s4, 0x28($sp) +/* 0FE1E4 7F0C96B4 03E00008 */ jr $ra +/* 0FE1E8 7F0C96B8 27BD3078 */ addiu $sp, $sp, 0x3078 +) +#endif + + + + + +#ifdef NONMATCHING +void type4_7_9_getsamples(void) { + +} +#else +GLOBAL_ASM( +.text +glabel type4_7_9_getsamples +/* 0FE1EC 7F0C96BC 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0FE1F0 7F0C96C0 AFB2001C */ sw $s2, 0x1c($sp) +/* 0FE1F4 7F0C96C4 00809025 */ move $s2, $a0 +/* 0FE1F8 7F0C96C8 AFBF002C */ sw $ra, 0x2c($sp) +/* 0FE1FC 7F0C96CC AFB50028 */ sw $s5, 0x28($sp) +/* 0FE200 7F0C96D0 AFB40024 */ sw $s4, 0x24($sp) +/* 0FE204 7F0C96D4 AFB30020 */ sw $s3, 0x20($sp) +/* 0FE208 7F0C96D8 AFB10018 */ sw $s1, 0x18($sp) +/* 0FE20C 7F0C96DC AFB00014 */ sw $s0, 0x14($sp) +/* 0FE210 7F0C96E0 AFA5003C */ sw $a1, 0x3c($sp) +/* 0FE214 7F0C96E4 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE218 7F0C96E8 24040003 */ li $a0, 3 +/* 0FE21C 7F0C96EC AFA20034 */ sw $v0, 0x34($sp) +/* 0FE220 7F0C96F0 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE224 7F0C96F4 24040003 */ li $a0, 3 +/* 0FE228 7F0C96F8 AFA20030 */ sw $v0, 0x30($sp) +/* 0FE22C 7F0C96FC 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE230 7F0C9700 24040004 */ li $a0, 4 +/* 0FE234 7F0C9704 8FAE0034 */ lw $t6, 0x34($sp) +/* 0FE238 7F0C9708 8FAF0030 */ lw $t7, 0x30($sp) +/* 0FE23C 7F0C970C 0040A025 */ move $s4, $v0 +/* 0FE240 7F0C9710 0000A825 */ move $s5, $zero +/* 0FE244 7F0C9714 01CFC021 */ addu $t8, $t6, $t7 +/* 0FE248 7F0C9718 03022021 */ addu $a0, $t8, $v0 +/* 0FE24C 7F0C971C 24830001 */ addiu $v1, $a0, 1 +/* 0FE250 7F0C9720 18600005 */ blez $v1, .L7F0C9738 +/* 0FE254 7F0C9724 8FB9003C */ lw $t9, 0x3c($sp) +.L7F0C9728: +/* 0FE258 7F0C9728 00621823 */ subu $v1, $v1, $v0 +/* 0FE25C 7F0C972C 2463FFFF */ addiu $v1, $v1, -1 +/* 0FE260 7F0C9730 1C60FFFD */ bgtz $v1, .L7F0C9728 +/* 0FE264 7F0C9734 26B50001 */ addiu $s5, $s5, 1 +.L7F0C9738: +/* 0FE268 7F0C9738 1B200070 */ blez $t9, .L7F0C98FC +/* 0FE26C 7F0C973C 00008825 */ move $s1, $zero +.L7F0C9740: +/* 0FE270 7F0C9740 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE274 7F0C9744 24040001 */ li $a0, 1 +/* 0FE278 7F0C9748 1440000F */ bnez $v0, .L7F0C9788 +/* 0FE27C 7F0C974C 2A810009 */ slti $at, $s4, 9 +/* 0FE280 7F0C9750 10200007 */ beqz $at, .L7F0C9770 +/* 0FE284 7F0C9754 02802025 */ move $a0, $s4 +/* 0FE288 7F0C9758 02802025 */ move $a0, $s4 +/* 0FE28C 7F0C975C 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE290 7F0C9760 02518021 */ addu $s0, $s2, $s1 +/* 0FE294 7F0C9764 A2020000 */ sb $v0, ($s0) +/* 0FE298 7F0C9768 10000060 */ b .L7F0C98EC +/* 0FE29C 7F0C976C 26310001 */ addiu $s1, $s1, 1 +.L7F0C9770: +/* 0FE2A0 7F0C9770 00114040 */ sll $t0, $s1, 1 +/* 0FE2A4 7F0C9774 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE2A8 7F0C9778 02488021 */ addu $s0, $s2, $t0 +/* 0FE2AC 7F0C977C A6020000 */ sh $v0, ($s0) +/* 0FE2B0 7F0C9780 1000005A */ b .L7F0C98EC +/* 0FE2B4 7F0C9784 26310001 */ addiu $s1, $s1, 1 +.L7F0C9788: +/* 0FE2B8 7F0C9788 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE2BC 7F0C978C 8FA40034 */ lw $a0, 0x34($sp) +/* 0FE2C0 7F0C9790 02229823 */ subu $s3, $s1, $v0 +/* 0FE2C4 7F0C9794 2673FFFF */ addiu $s3, $s3, -1 +/* 0FE2C8 7F0C9798 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE2CC 7F0C979C 8FA40030 */ lw $a0, 0x30($sp) +/* 0FE2D0 7F0C97A0 00552021 */ addu $a0, $v0, $s5 +/* 0FE2D4 7F0C97A4 2A810009 */ slti $at, $s4, 9 +/* 0FE2D8 7F0C97A8 10200027 */ beqz $at, .L7F0C9848 +/* 0FE2DC 7F0C97AC 00803825 */ move $a3, $a0 +/* 0FE2E0 7F0C97B0 02643021 */ addu $a2, $s3, $a0 +/* 0FE2E4 7F0C97B4 0266082A */ slt $at, $s3, $a2 +/* 0FE2E8 7F0C97B8 02601825 */ move $v1, $s3 +/* 0FE2EC 7F0C97BC 1020001D */ beqz $at, .L7F0C9834 +/* 0FE2F0 7F0C97C0 02518021 */ addu $s0, $s2, $s1 +/* 0FE2F4 7F0C97C4 00D32823 */ subu $a1, $a2, $s3 +/* 0FE2F8 7F0C97C8 30A90003 */ andi $t1, $a1, 3 +/* 0FE2FC 7F0C97CC 1120000A */ beqz $t1, .L7F0C97F8 +/* 0FE300 7F0C97D0 01332021 */ addu $a0, $t1, $s3 +/* 0FE304 7F0C97D4 02431021 */ addu $v0, $s2, $v1 +.L7F0C97D8: +/* 0FE308 7F0C97D8 904A0000 */ lbu $t2, ($v0) +/* 0FE30C 7F0C97DC 24630001 */ addiu $v1, $v1, 1 +/* 0FE310 7F0C97E0 26310001 */ addiu $s1, $s1, 1 +/* 0FE314 7F0C97E4 26100001 */ addiu $s0, $s0, 1 +/* 0FE318 7F0C97E8 24420001 */ addiu $v0, $v0, 1 +/* 0FE31C 7F0C97EC 1483FFFA */ bne $a0, $v1, .L7F0C97D8 +/* 0FE320 7F0C97F0 A20AFFFF */ sb $t2, -1($s0) +/* 0FE324 7F0C97F4 1066000F */ beq $v1, $a2, .L7F0C9834 +.L7F0C97F8: +/* 0FE328 7F0C97F8 02672021 */ addu $a0, $s3, $a3 +/* 0FE32C 7F0C97FC 02431021 */ addu $v0, $s2, $v1 +.L7F0C9800: +/* 0FE330 7F0C9800 904B0000 */ lbu $t3, ($v0) +/* 0FE334 7F0C9804 24630004 */ addiu $v1, $v1, 4 +/* 0FE338 7F0C9808 26310004 */ addiu $s1, $s1, 4 +/* 0FE33C 7F0C980C A20B0000 */ sb $t3, ($s0) +/* 0FE340 7F0C9810 904C0001 */ lbu $t4, 1($v0) +/* 0FE344 7F0C9814 26100004 */ addiu $s0, $s0, 4 +/* 0FE348 7F0C9818 24420004 */ addiu $v0, $v0, 4 +/* 0FE34C 7F0C981C A20CFFFD */ sb $t4, -3($s0) +/* 0FE350 7F0C9820 904DFFFE */ lbu $t5, -2($v0) +/* 0FE354 7F0C9824 A20DFFFE */ sb $t5, -2($s0) +/* 0FE358 7F0C9828 904EFFFF */ lbu $t6, -1($v0) +/* 0FE35C 7F0C982C 1464FFF4 */ bne $v1, $a0, .L7F0C9800 +/* 0FE360 7F0C9830 A20EFFFF */ sb $t6, -1($s0) +.L7F0C9834: +/* 0FE364 7F0C9834 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE368 7F0C9838 02802025 */ move $a0, $s4 +/* 0FE36C 7F0C983C A2020000 */ sb $v0, ($s0) +/* 0FE370 7F0C9840 1000002A */ b .L7F0C98EC +/* 0FE374 7F0C9844 26310001 */ addiu $s1, $s1, 1 +.L7F0C9848: +/* 0FE378 7F0C9848 02643021 */ addu $a2, $s3, $a0 +/* 0FE37C 7F0C984C 0266082A */ slt $at, $s3, $a2 +/* 0FE380 7F0C9850 00117840 */ sll $t7, $s1, 1 +/* 0FE384 7F0C9854 024F8021 */ addu $s0, $s2, $t7 +/* 0FE388 7F0C9858 10200020 */ beqz $at, .L7F0C98DC +/* 0FE38C 7F0C985C 02601825 */ move $v1, $s3 +/* 0FE390 7F0C9860 00D32823 */ subu $a1, $a2, $s3 +/* 0FE394 7F0C9864 30B80003 */ andi $t8, $a1, 3 +/* 0FE398 7F0C9868 1300000B */ beqz $t8, .L7F0C9898 +/* 0FE39C 7F0C986C 03132021 */ addu $a0, $t8, $s3 +/* 0FE3A0 7F0C9870 0003C840 */ sll $t9, $v1, 1 +/* 0FE3A4 7F0C9874 02591021 */ addu $v0, $s2, $t9 +.L7F0C9878: +/* 0FE3A8 7F0C9878 94480000 */ lhu $t0, ($v0) +/* 0FE3AC 7F0C987C 24630001 */ addiu $v1, $v1, 1 +/* 0FE3B0 7F0C9880 26310001 */ addiu $s1, $s1, 1 +/* 0FE3B4 7F0C9884 26100002 */ addiu $s0, $s0, 2 +/* 0FE3B8 7F0C9888 24420002 */ addiu $v0, $v0, 2 +/* 0FE3BC 7F0C988C 1483FFFA */ bne $a0, $v1, .L7F0C9878 +/* 0FE3C0 7F0C9890 A608FFFE */ sh $t0, -2($s0) +/* 0FE3C4 7F0C9894 10660011 */ beq $v1, $a2, .L7F0C98DC +.L7F0C9898: +/* 0FE3C8 7F0C9898 02672021 */ addu $a0, $s3, $a3 +/* 0FE3CC 7F0C989C 00044840 */ sll $t1, $a0, 1 +/* 0FE3D0 7F0C98A0 00035040 */ sll $t2, $v1, 1 +/* 0FE3D4 7F0C98A4 024A1021 */ addu $v0, $s2, $t2 +/* 0FE3D8 7F0C98A8 01322821 */ addu $a1, $t1, $s2 +.L7F0C98AC: +/* 0FE3DC 7F0C98AC 944B0000 */ lhu $t3, ($v0) +/* 0FE3E0 7F0C98B0 24420008 */ addiu $v0, $v0, 8 +/* 0FE3E4 7F0C98B4 26310004 */ addiu $s1, $s1, 4 +/* 0FE3E8 7F0C98B8 A60B0000 */ sh $t3, ($s0) +/* 0FE3EC 7F0C98BC 944CFFFA */ lhu $t4, -6($v0) +/* 0FE3F0 7F0C98C0 26100008 */ addiu $s0, $s0, 8 +/* 0FE3F4 7F0C98C4 A60CFFFA */ sh $t4, -6($s0) +/* 0FE3F8 7F0C98C8 944DFFFC */ lhu $t5, -4($v0) +/* 0FE3FC 7F0C98CC A60DFFFC */ sh $t5, -4($s0) +/* 0FE400 7F0C98D0 944EFFFE */ lhu $t6, -2($v0) +/* 0FE404 7F0C98D4 1445FFF5 */ bne $v0, $a1, .L7F0C98AC +/* 0FE408 7F0C98D8 A60EFFFE */ sh $t6, -2($s0) +.L7F0C98DC: +/* 0FE40C 7F0C98DC 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE410 7F0C98E0 02802025 */ move $a0, $s4 +/* 0FE414 7F0C98E4 A6020000 */ sh $v0, ($s0) +/* 0FE418 7F0C98E8 26310001 */ addiu $s1, $s1, 1 +.L7F0C98EC: +/* 0FE41C 7F0C98EC 8FAF003C */ lw $t7, 0x3c($sp) +/* 0FE420 7F0C98F0 022F082A */ slt $at, $s1, $t7 +/* 0FE424 7F0C98F4 1420FF92 */ bnez $at, .L7F0C9740 +/* 0FE428 7F0C98F8 00000000 */ nop +.L7F0C98FC: +/* 0FE42C 7F0C98FC 8FBF002C */ lw $ra, 0x2c($sp) +/* 0FE430 7F0C9900 8FB00014 */ lw $s0, 0x14($sp) +/* 0FE434 7F0C9904 8FB10018 */ lw $s1, 0x18($sp) +/* 0FE438 7F0C9908 8FB2001C */ lw $s2, 0x1c($sp) +/* 0FE43C 7F0C990C 8FB30020 */ lw $s3, 0x20($sp) +/* 0FE440 7F0C9910 8FB40024 */ lw $s4, 0x24($sp) +/* 0FE444 7F0C9914 8FB50028 */ lw $s5, 0x28($sp) +/* 0FE448 7F0C9918 03E00008 */ jr $ra +/* 0FE44C 7F0C991C 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void type5_6_7_getsamples(void) { + +} +#else +GLOBAL_ASM( +.text +glabel type5_6_7_getsamples +/* 0FE450 7F0C9920 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0FE454 7F0C9924 AFB30020 */ sw $s3, 0x20($sp) +/* 0FE458 7F0C9928 00809825 */ move $s3, $a0 +/* 0FE45C 7F0C992C AFBF002C */ sw $ra, 0x2c($sp) +/* 0FE460 7F0C9930 AFB2001C */ sw $s2, 0x1c($sp) +/* 0FE464 7F0C9934 00A09025 */ move $s2, $a1 +/* 0FE468 7F0C9938 AFB50028 */ sw $s5, 0x28($sp) +/* 0FE46C 7F0C993C AFB40024 */ sw $s4, 0x24($sp) +/* 0FE470 7F0C9940 AFB10018 */ sw $s1, 0x18($sp) +/* 0FE474 7F0C9944 AFB00014 */ sw $s0, 0x14($sp) +/* 0FE478 7F0C9948 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE47C 7F0C994C 2404000B */ li $a0, 11 +/* 0FE480 7F0C9950 2A410011 */ slti $at, $s2, 0x11 +/* 0FE484 7F0C9954 1020000C */ beqz $at, .L7F0C9988 +/* 0FE488 7F0C9958 0040A825 */ move $s5, $v0 +/* 0FE48C 7F0C995C 18400027 */ blez $v0, .L7F0C99FC +/* 0FE490 7F0C9960 00008025 */ move $s0, $zero +/* 0FE494 7F0C9964 02608825 */ move $s1, $s3 +.L7F0C9968: +/* 0FE498 7F0C9968 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE49C 7F0C996C 02402025 */ move $a0, $s2 +/* 0FE4A0 7F0C9970 26100001 */ addiu $s0, $s0, 1 +/* 0FE4A4 7F0C9974 26310002 */ addiu $s1, $s1, 2 +/* 0FE4A8 7F0C9978 1615FFFB */ bne $s0, $s5, .L7F0C9968 +/* 0FE4AC 7F0C997C A622FFFE */ sh $v0, -2($s1) +/* 0FE4B0 7F0C9980 1000001F */ b .L7F0C9A00 +/* 0FE4B4 7F0C9984 8FBF002C */ lw $ra, 0x2c($sp) +.L7F0C9988: +/* 0FE4B8 7F0C9988 2A410019 */ slti $at, $s2, 0x19 +/* 0FE4BC 7F0C998C 1020000C */ beqz $at, .L7F0C99C0 +/* 0FE4C0 7F0C9990 00000000 */ nop +/* 0FE4C4 7F0C9994 18400019 */ blez $v0, .L7F0C99FC +/* 0FE4C8 7F0C9998 00008025 */ move $s0, $zero +/* 0FE4CC 7F0C999C 02608825 */ move $s1, $s3 +.L7F0C99A0: +/* 0FE4D0 7F0C99A0 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE4D4 7F0C99A4 02402025 */ move $a0, $s2 +/* 0FE4D8 7F0C99A8 26100001 */ addiu $s0, $s0, 1 +/* 0FE4DC 7F0C99AC 26310004 */ addiu $s1, $s1, 4 +/* 0FE4E0 7F0C99B0 1615FFFB */ bne $s0, $s5, .L7F0C99A0 +/* 0FE4E4 7F0C99B4 AE22FFFC */ sw $v0, -4($s1) +/* 0FE4E8 7F0C99B8 10000011 */ b .L7F0C9A00 +/* 0FE4EC 7F0C99BC 8FBF002C */ lw $ra, 0x2c($sp) +.L7F0C99C0: +/* 0FE4F0 7F0C99C0 1840000E */ blez $v0, .L7F0C99FC +/* 0FE4F4 7F0C99C4 00008025 */ move $s0, $zero +/* 0FE4F8 7F0C99C8 2654FFE8 */ addiu $s4, $s2, -0x18 +/* 0FE4FC 7F0C99CC 02608825 */ move $s1, $s3 +.L7F0C99D0: +/* 0FE500 7F0C99D0 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE504 7F0C99D4 24040018 */ li $a0, 24 +/* 0FE508 7F0C99D8 00409025 */ move $s2, $v0 +/* 0FE50C 7F0C99DC 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE510 7F0C99E0 02802025 */ move $a0, $s4 +/* 0FE514 7F0C99E4 00127200 */ sll $t6, $s2, 8 +/* 0FE518 7F0C99E8 26100001 */ addiu $s0, $s0, 1 +/* 0FE51C 7F0C99EC 004E7825 */ or $t7, $v0, $t6 +/* 0FE520 7F0C99F0 26310004 */ addiu $s1, $s1, 4 +/* 0FE524 7F0C99F4 1615FFF6 */ bne $s0, $s5, .L7F0C99D0 +/* 0FE528 7F0C99F8 AE2FFFFC */ sw $t7, -4($s1) +.L7F0C99FC: +/* 0FE52C 7F0C99FC 8FBF002C */ lw $ra, 0x2c($sp) +.L7F0C9A00: +/* 0FE530 7F0C9A00 02A01025 */ move $v0, $s5 +/* 0FE534 7F0C9A04 8FB50028 */ lw $s5, 0x28($sp) +/* 0FE538 7F0C9A08 8FB00014 */ lw $s0, 0x14($sp) +/* 0FE53C 7F0C9A0C 8FB10018 */ lw $s1, 0x18($sp) +/* 0FE540 7F0C9A10 8FB2001C */ lw $s2, 0x1c($sp) +/* 0FE544 7F0C9A14 8FB30020 */ lw $s3, 0x20($sp) +/* 0FE548 7F0C9A18 8FB40024 */ lw $s4, 0x24($sp) +/* 0FE54C 7F0C9A1C 03E00008 */ jr $ra +/* 0FE550 7F0C9A20 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C9A24(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C9A24 +/* 0FE554 7F0C9A24 2484FFFF */ addiu $a0, $a0, -1 +/* 0FE558 7F0C9A28 18800005 */ blez $a0, .L7F0C9A40 +/* 0FE55C 7F0C9A2C 00001825 */ move $v1, $zero +.L7F0C9A30: +/* 0FE560 7F0C9A30 00047043 */ sra $t6, $a0, 1 +/* 0FE564 7F0C9A34 01C02025 */ move $a0, $t6 +/* 0FE568 7F0C9A38 1DC0FFFD */ bgtz $t6, .L7F0C9A30 +/* 0FE56C 7F0C9A3C 24630001 */ addiu $v1, $v1, 1 +.L7F0C9A40: +/* 0FE570 7F0C9A40 03E00008 */ jr $ra +/* 0FE574 7F0C9A44 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void image_get_alpha_values(void) { + +} +#else +GLOBAL_ASM( +.text +glabel image_get_alpha_values +/* 0FE578 7F0C9A48 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0FE57C 7F0C9A4C AFB20020 */ sw $s2, 0x20($sp) +/* 0FE580 7F0C9A50 AFB00018 */ sw $s0, 0x18($sp) +/* 0FE584 7F0C9A54 00A09025 */ move $s2, $a1 +/* 0FE588 7F0C9A58 AFBF0024 */ sw $ra, 0x24($sp) +/* 0FE58C 7F0C9A5C AFB1001C */ sw $s1, 0x1c($sp) +/* 0FE590 7F0C9A60 18A00008 */ blez $a1, .L7F0C9A84 +/* 0FE594 7F0C9A64 00008025 */ move $s0, $zero +/* 0FE598 7F0C9A68 00808825 */ move $s1, $a0 +.L7F0C9A6C: +/* 0FE59C 7F0C9A6C 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE5A0 7F0C9A70 24040001 */ li $a0, 1 +/* 0FE5A4 7F0C9A74 26100001 */ addiu $s0, $s0, 1 +/* 0FE5A8 7F0C9A78 26310001 */ addiu $s1, $s1, 1 +/* 0FE5AC 7F0C9A7C 1612FFFB */ bne $s0, $s2, .L7F0C9A6C +/* 0FE5B0 7F0C9A80 A222FFFF */ sb $v0, -1($s1) +.L7F0C9A84: +/* 0FE5B4 7F0C9A84 8FBF0024 */ lw $ra, 0x24($sp) +/* 0FE5B8 7F0C9A88 8FB00018 */ lw $s0, 0x18($sp) +/* 0FE5BC 7F0C9A8C 8FB1001C */ lw $s1, 0x1c($sp) +/* 0FE5C0 7F0C9A90 8FB20020 */ lw $s2, 0x20($sp) +/* 0FE5C4 7F0C9A94 03E00008 */ jr $ra +/* 0FE5C8 7F0C9A98 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void image_compression0_expand(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BDA0*/ +glabel jpt_8005BDA0 +.word .L7F0C9B0C +.word .L7F0C9BEC +.word .L7F0C9B84 +.word .L7F0C9C4C +.word .L7F0C9BEC +.word .L7F0C9CB4 +.word .L7F0C9D10 +.word .L7F0C9CB4 +.word .L7F0C9D10 +.text +glabel image_compression0_expand +/* 0FE5CC 7F0C9A9C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0FE5D0 7F0C9AA0 AFB50028 */ sw $s5, 0x28($sp) +/* 0FE5D4 7F0C9AA4 2495000F */ addiu $s5, $a0, 0xf +/* 0FE5D8 7F0C9AA8 2401FFF0 */ li $at, -16 +/* 0FE5DC 7F0C9AAC 02A17024 */ and $t6, $s5, $at +/* 0FE5E0 7F0C9AB0 AFB30020 */ sw $s3, 0x20($sp) +/* 0FE5E4 7F0C9AB4 2401FFF8 */ li $at, -8 +/* 0FE5E8 7F0C9AB8 24820007 */ addiu $v0, $a0, 7 +/* 0FE5EC 7F0C9ABC 00419824 */ and $s3, $v0, $at +/* 0FE5F0 7F0C9AC0 AFB70030 */ sw $s7, 0x30($sp) +/* 0FE5F4 7F0C9AC4 AFB6002C */ sw $s6, 0x2c($sp) +/* 0FE5F8 7F0C9AC8 AFB2001C */ sw $s2, 0x1c($sp) +/* 0FE5FC 7F0C9ACC 2CE10009 */ sltiu $at, $a3, 9 +/* 0FE600 7F0C9AD0 00A09025 */ move $s2, $a1 +/* 0FE604 7F0C9AD4 00C0B825 */ move $s7, $a2 +/* 0FE608 7F0C9AD8 AFBF0034 */ sw $ra, 0x34($sp) +/* 0FE60C 7F0C9ADC AFB40024 */ sw $s4, 0x24($sp) +/* 0FE610 7F0C9AE0 AFB10018 */ sw $s1, 0x18($sp) +/* 0FE614 7F0C9AE4 AFB00014 */ sw $s0, 0x14($sp) +/* 0FE618 7F0C9AE8 01C0A825 */ move $s5, $t6 +/* 0FE61C 7F0C9AEC 102000A1 */ beqz $at, .L7F0C9D74 +/* 0FE620 7F0C9AF0 0260B025 */ move $s6, $s3 +/* 0FE624 7F0C9AF4 0007C080 */ sll $t8, $a3, 2 +/* 0FE628 7F0C9AF8 3C018006 */ lui $at, %hi(jpt_8005BDA0) +/* 0FE62C 7F0C9AFC 00380821 */ addu $at, $at, $t8 +/* 0FE630 7F0C9B00 8C38BDA0 */ lw $t8, %lo(jpt_8005BDA0)($at) +/* 0FE634 7F0C9B04 03000008 */ jr $t8 +/* 0FE638 7F0C9B08 00000000 */ nop +.L7F0C9B0C: +/* 0FE63C 7F0C9B0C 1AE00016 */ blez $s7, .L7F0C9B68 +/* 0FE640 7F0C9B10 0000A025 */ move $s4, $zero +/* 0FE644 7F0C9B14 26530003 */ addiu $s3, $s2, 3 +/* 0FE648 7F0C9B18 32790FFC */ andi $t9, $s3, 0xffc +/* 0FE64C 7F0C9B1C 00199880 */ sll $s3, $t9, 2 +.L7F0C9B20: +/* 0FE650 7F0C9B20 1A40000E */ blez $s2, .L7F0C9B5C +/* 0FE654 7F0C9B24 00008025 */ move $s0, $zero +/* 0FE658 7F0C9B28 02A08825 */ move $s1, $s5 +.L7F0C9B2C: +/* 0FE65C 7F0C9B2C 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE660 7F0C9B30 24040010 */ li $a0, 16 +/* 0FE664 7F0C9B34 00024C00 */ sll $t1, $v0, 0x10 +/* 0FE668 7F0C9B38 AE290000 */ sw $t1, ($s1) +/* 0FE66C 7F0C9B3C 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE670 7F0C9B40 24040010 */ li $a0, 16 +/* 0FE674 7F0C9B44 8E2A0000 */ lw $t2, ($s1) +/* 0FE678 7F0C9B48 26100001 */ addiu $s0, $s0, 1 +/* 0FE67C 7F0C9B4C 26310004 */ addiu $s1, $s1, 4 +/* 0FE680 7F0C9B50 01425825 */ or $t3, $t2, $v0 +/* 0FE684 7F0C9B54 1612FFF5 */ bne $s0, $s2, .L7F0C9B2C +/* 0FE688 7F0C9B58 AE2BFFFC */ sw $t3, -4($s1) +.L7F0C9B5C: +/* 0FE68C 7F0C9B5C 26940001 */ addiu $s4, $s4, 1 +/* 0FE690 7F0C9B60 1697FFEF */ bne $s4, $s7, .L7F0C9B20 +/* 0FE694 7F0C9B64 02B3A821 */ addu $s5, $s5, $s3 +.L7F0C9B68: +/* 0FE698 7F0C9B68 264C0003 */ addiu $t4, $s2, 3 +/* 0FE69C 7F0C9B6C 318D0FFC */ andi $t5, $t4, 0xffc +/* 0FE6A0 7F0C9B70 01B70019 */ multu $t5, $s7 +/* 0FE6A4 7F0C9B74 00001012 */ mflo $v0 +/* 0FE6A8 7F0C9B78 00027080 */ sll $t6, $v0, 2 +/* 0FE6AC 7F0C9B7C 1000007E */ b .L7F0C9D78 +/* 0FE6B0 7F0C9B80 01C01025 */ move $v0, $t6 +.L7F0C9B84: +/* 0FE6B4 7F0C9B84 1AE00012 */ blez $s7, .L7F0C9BD0 +/* 0FE6B8 7F0C9B88 0000A025 */ move $s4, $zero +/* 0FE6BC 7F0C9B8C 26530003 */ addiu $s3, $s2, 3 +/* 0FE6C0 7F0C9B90 326F0FFC */ andi $t7, $s3, 0xffc +/* 0FE6C4 7F0C9B94 000F9880 */ sll $s3, $t7, 2 +.L7F0C9B98: +/* 0FE6C8 7F0C9B98 1A40000A */ blez $s2, .L7F0C9BC4 +/* 0FE6CC 7F0C9B9C 00008025 */ move $s0, $zero +/* 0FE6D0 7F0C9BA0 02A08825 */ move $s1, $s5 +.L7F0C9BA4: +/* 0FE6D4 7F0C9BA4 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE6D8 7F0C9BA8 24040018 */ li $a0, 24 +/* 0FE6DC 7F0C9BAC 0002CA00 */ sll $t9, $v0, 8 +/* 0FE6E0 7F0C9BB0 26100001 */ addiu $s0, $s0, 1 +/* 0FE6E4 7F0C9BB4 372800FF */ ori $t0, $t9, 0xff +/* 0FE6E8 7F0C9BB8 26310004 */ addiu $s1, $s1, 4 +/* 0FE6EC 7F0C9BBC 1612FFF9 */ bne $s0, $s2, .L7F0C9BA4 +/* 0FE6F0 7F0C9BC0 AE28FFFC */ sw $t0, -4($s1) +.L7F0C9BC4: +/* 0FE6F4 7F0C9BC4 26940001 */ addiu $s4, $s4, 1 +/* 0FE6F8 7F0C9BC8 1697FFF3 */ bne $s4, $s7, .L7F0C9B98 +/* 0FE6FC 7F0C9BCC 02B3A821 */ addu $s5, $s5, $s3 +.L7F0C9BD0: +/* 0FE700 7F0C9BD0 26490003 */ addiu $t1, $s2, 3 +/* 0FE704 7F0C9BD4 312A0FFC */ andi $t2, $t1, 0xffc +/* 0FE708 7F0C9BD8 01570019 */ multu $t2, $s7 +/* 0FE70C 7F0C9BDC 00001012 */ mflo $v0 +/* 0FE710 7F0C9BE0 00025880 */ sll $t3, $v0, 2 +/* 0FE714 7F0C9BE4 10000064 */ b .L7F0C9D78 +/* 0FE718 7F0C9BE8 01601025 */ move $v0, $t3 +.L7F0C9BEC: +/* 0FE71C 7F0C9BEC 1AE00010 */ blez $s7, .L7F0C9C30 +/* 0FE720 7F0C9BF0 0000A025 */ move $s4, $zero +/* 0FE724 7F0C9BF4 26530003 */ addiu $s3, $s2, 3 +/* 0FE728 7F0C9BF8 326C0FFC */ andi $t4, $s3, 0xffc +/* 0FE72C 7F0C9BFC 000C9840 */ sll $s3, $t4, 1 +.L7F0C9C00: +/* 0FE730 7F0C9C00 1A400008 */ blez $s2, .L7F0C9C24 +/* 0FE734 7F0C9C04 00008025 */ move $s0, $zero +/* 0FE738 7F0C9C08 02C08825 */ move $s1, $s6 +.L7F0C9C0C: +/* 0FE73C 7F0C9C0C 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE740 7F0C9C10 24040010 */ li $a0, 16 +/* 0FE744 7F0C9C14 26100001 */ addiu $s0, $s0, 1 +/* 0FE748 7F0C9C18 26310002 */ addiu $s1, $s1, 2 +/* 0FE74C 7F0C9C1C 1612FFFB */ bne $s0, $s2, .L7F0C9C0C +/* 0FE750 7F0C9C20 A622FFFE */ sh $v0, -2($s1) +.L7F0C9C24: +/* 0FE754 7F0C9C24 26940001 */ addiu $s4, $s4, 1 +/* 0FE758 7F0C9C28 1697FFF5 */ bne $s4, $s7, .L7F0C9C00 +/* 0FE75C 7F0C9C2C 02D3B021 */ addu $s6, $s6, $s3 +.L7F0C9C30: +/* 0FE760 7F0C9C30 264E0003 */ addiu $t6, $s2, 3 +/* 0FE764 7F0C9C34 31CF0FFC */ andi $t7, $t6, 0xffc +/* 0FE768 7F0C9C38 01F70019 */ multu $t7, $s7 +/* 0FE76C 7F0C9C3C 00001012 */ mflo $v0 +/* 0FE770 7F0C9C40 0002C040 */ sll $t8, $v0, 1 +/* 0FE774 7F0C9C44 1000004C */ b .L7F0C9D78 +/* 0FE778 7F0C9C48 03001025 */ move $v0, $t8 +.L7F0C9C4C: +/* 0FE77C 7F0C9C4C 1AE00012 */ blez $s7, .L7F0C9C98 +/* 0FE780 7F0C9C50 0000A025 */ move $s4, $zero +/* 0FE784 7F0C9C54 26530003 */ addiu $s3, $s2, 3 +/* 0FE788 7F0C9C58 32790FFC */ andi $t9, $s3, 0xffc +/* 0FE78C 7F0C9C5C 00199840 */ sll $s3, $t9, 1 +.L7F0C9C60: +/* 0FE790 7F0C9C60 1A40000A */ blez $s2, .L7F0C9C8C +/* 0FE794 7F0C9C64 00008025 */ move $s0, $zero +/* 0FE798 7F0C9C68 02C08825 */ move $s1, $s6 +.L7F0C9C6C: +/* 0FE79C 7F0C9C6C 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE7A0 7F0C9C70 2404000F */ li $a0, 15 +/* 0FE7A4 7F0C9C74 00024840 */ sll $t1, $v0, 1 +/* 0FE7A8 7F0C9C78 26100001 */ addiu $s0, $s0, 1 +/* 0FE7AC 7F0C9C7C 352A0001 */ ori $t2, $t1, 1 +/* 0FE7B0 7F0C9C80 26310002 */ addiu $s1, $s1, 2 +/* 0FE7B4 7F0C9C84 1612FFF9 */ bne $s0, $s2, .L7F0C9C6C +/* 0FE7B8 7F0C9C88 A62AFFFE */ sh $t2, -2($s1) +.L7F0C9C8C: +/* 0FE7BC 7F0C9C8C 26940001 */ addiu $s4, $s4, 1 +/* 0FE7C0 7F0C9C90 1697FFF3 */ bne $s4, $s7, .L7F0C9C60 +/* 0FE7C4 7F0C9C94 02D3B021 */ addu $s6, $s6, $s3 +.L7F0C9C98: +/* 0FE7C8 7F0C9C98 264B0003 */ addiu $t3, $s2, 3 +/* 0FE7CC 7F0C9C9C 316C0FFC */ andi $t4, $t3, 0xffc +/* 0FE7D0 7F0C9CA0 01970019 */ multu $t4, $s7 +/* 0FE7D4 7F0C9CA4 00001012 */ mflo $v0 +/* 0FE7D8 7F0C9CA8 00026840 */ sll $t5, $v0, 1 +/* 0FE7DC 7F0C9CAC 10000032 */ b .L7F0C9D78 +/* 0FE7E0 7F0C9CB0 01A01025 */ move $v0, $t5 +.L7F0C9CB4: +/* 0FE7E4 7F0C9CB4 1AE00010 */ blez $s7, .L7F0C9CF8 +/* 0FE7E8 7F0C9CB8 0000A025 */ move $s4, $zero +/* 0FE7EC 7F0C9CBC 26550007 */ addiu $s5, $s2, 7 +/* 0FE7F0 7F0C9CC0 32AE0FF8 */ andi $t6, $s5, 0xff8 +/* 0FE7F4 7F0C9CC4 01C0A825 */ move $s5, $t6 +.L7F0C9CC8: +/* 0FE7F8 7F0C9CC8 1A400008 */ blez $s2, .L7F0C9CEC +/* 0FE7FC 7F0C9CCC 00008025 */ move $s0, $zero +/* 0FE800 7F0C9CD0 02608825 */ move $s1, $s3 +.L7F0C9CD4: +/* 0FE804 7F0C9CD4 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE808 7F0C9CD8 24040008 */ li $a0, 8 +/* 0FE80C 7F0C9CDC 26100001 */ addiu $s0, $s0, 1 +/* 0FE810 7F0C9CE0 26310001 */ addiu $s1, $s1, 1 +/* 0FE814 7F0C9CE4 1612FFFB */ bne $s0, $s2, .L7F0C9CD4 +/* 0FE818 7F0C9CE8 A222FFFF */ sb $v0, -1($s1) +.L7F0C9CEC: +/* 0FE81C 7F0C9CEC 26940001 */ addiu $s4, $s4, 1 +/* 0FE820 7F0C9CF0 1697FFF5 */ bne $s4, $s7, .L7F0C9CC8 +/* 0FE824 7F0C9CF4 02759821 */ addu $s3, $s3, $s5 +.L7F0C9CF8: +/* 0FE828 7F0C9CF8 264F0007 */ addiu $t7, $s2, 7 +/* 0FE82C 7F0C9CFC 31F80FF8 */ andi $t8, $t7, 0xff8 +/* 0FE830 7F0C9D00 03170019 */ multu $t8, $s7 +/* 0FE834 7F0C9D04 00001012 */ mflo $v0 +/* 0FE838 7F0C9D08 1000001C */ b .L7F0C9D7C +/* 0FE83C 7F0C9D0C 8FBF0034 */ lw $ra, 0x34($sp) +.L7F0C9D10: +/* 0FE840 7F0C9D10 1AE00011 */ blez $s7, .L7F0C9D58 +/* 0FE844 7F0C9D14 0000A025 */ move $s4, $zero +/* 0FE848 7F0C9D18 2651000F */ addiu $s1, $s2, 0xf +/* 0FE84C 7F0C9D1C 32390FF0 */ andi $t9, $s1, 0xff0 +/* 0FE850 7F0C9D20 00198843 */ sra $s1, $t9, 1 +.L7F0C9D24: +/* 0FE854 7F0C9D24 1A400009 */ blez $s2, .L7F0C9D4C +/* 0FE858 7F0C9D28 00008025 */ move $s0, $zero +.L7F0C9D2C: +/* 0FE85C 7F0C9D2C 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FE860 7F0C9D30 24040008 */ li $a0, 8 +/* 0FE864 7F0C9D34 00104843 */ sra $t1, $s0, 1 +/* 0FE868 7F0C9D38 26100002 */ addiu $s0, $s0, 2 +/* 0FE86C 7F0C9D3C 0212082A */ slt $at, $s0, $s2 +/* 0FE870 7F0C9D40 02695021 */ addu $t2, $s3, $t1 +/* 0FE874 7F0C9D44 1420FFF9 */ bnez $at, .L7F0C9D2C +/* 0FE878 7F0C9D48 A1420000 */ sb $v0, ($t2) +.L7F0C9D4C: +/* 0FE87C 7F0C9D4C 26940001 */ addiu $s4, $s4, 1 +/* 0FE880 7F0C9D50 1697FFF4 */ bne $s4, $s7, .L7F0C9D24 +/* 0FE884 7F0C9D54 02719821 */ addu $s3, $s3, $s1 +.L7F0C9D58: +/* 0FE888 7F0C9D58 264B000F */ addiu $t3, $s2, 0xf +/* 0FE88C 7F0C9D5C 316C0FF0 */ andi $t4, $t3, 0xff0 +/* 0FE890 7F0C9D60 000C6843 */ sra $t5, $t4, 1 +/* 0FE894 7F0C9D64 01B70019 */ multu $t5, $s7 +/* 0FE898 7F0C9D68 00001012 */ mflo $v0 +/* 0FE89C 7F0C9D6C 10000003 */ b .L7F0C9D7C +/* 0FE8A0 7F0C9D70 8FBF0034 */ lw $ra, 0x34($sp) +def_7F0C9B04: +.L7F0C9D74: +/* 0FE8A4 7F0C9D74 00001025 */ move $v0, $zero +.L7F0C9D78: +/* 0FE8A8 7F0C9D78 8FBF0034 */ lw $ra, 0x34($sp) +.L7F0C9D7C: +/* 0FE8AC 7F0C9D7C 8FB00014 */ lw $s0, 0x14($sp) +/* 0FE8B0 7F0C9D80 8FB10018 */ lw $s1, 0x18($sp) +/* 0FE8B4 7F0C9D84 8FB2001C */ lw $s2, 0x1c($sp) +/* 0FE8B8 7F0C9D88 8FB30020 */ lw $s3, 0x20($sp) +/* 0FE8BC 7F0C9D8C 8FB40024 */ lw $s4, 0x24($sp) +/* 0FE8C0 7F0C9D90 8FB50028 */ lw $s5, 0x28($sp) +/* 0FE8C4 7F0C9D94 8FB6002C */ lw $s6, 0x2c($sp) +/* 0FE8C8 7F0C9D98 8FB70030 */ lw $s7, 0x30($sp) +/* 0FE8CC 7F0C9D9C 03E00008 */ jr $ra +/* 0FE8D0 7F0C9DA0 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void generate_link_final_image(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BDC4*/ +glabel jpt_8005BDC4 +.word .L7F0C9DF8 +.word .L7F0CA138 +.word .L7F0C9FAC +.word .L7F0CA400 +.word .L7F0CA2EC +.word .L7F0CA58C +.word .L7F0CA738 +.word .L7F0CA68C +.word .L7F0CA7F0 +.text +glabel generate_link_final_image +/* 0FE8D4 7F0C9DA4 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0FE8D8 7F0C9DA8 8FAE0078 */ lw $t6, 0x78($sp) +/* 0FE8DC 7F0C9DAC AFB20010 */ sw $s2, 0x10($sp) +/* 0FE8E0 7F0C9DB0 AFB1000C */ sw $s1, 0xc($sp) +/* 0FE8E4 7F0C9DB4 AFB00008 */ sw $s0, 8($sp) +/* 0FE8E8 7F0C9DB8 2DC10009 */ sltiu $at, $t6, 9 +/* 0FE8EC 7F0C9DBC 00A08025 */ move $s0, $a1 +/* 0FE8F0 7F0C9DC0 00808825 */ move $s1, $a0 +/* 0FE8F4 7F0C9DC4 00C09025 */ move $s2, $a2 +/* 0FE8F8 7F0C9DC8 AFB30014 */ sw $s3, 0x14($sp) +/* 0FE8FC 7F0C9DCC 00E05025 */ move $t2, $a3 +/* 0FE900 7F0C9DD0 00E04825 */ move $t1, $a3 +/* 0FE904 7F0C9DD4 00E01825 */ move $v1, $a3 +/* 0FE908 7F0C9DD8 102002A6 */ beqz $at, .L7F0CA874 +/* 0FE90C 7F0C9DDC 00004025 */ move $t0, $zero +/* 0FE910 7F0C9DE0 000E7080 */ sll $t6, $t6, 2 +/* 0FE914 7F0C9DE4 3C018006 */ lui $at, %hi(jpt_8005BDC4) +/* 0FE918 7F0C9DE8 002E0821 */ addu $at, $at, $t6 +/* 0FE91C 7F0C9DEC 8C2EBDC4 */ lw $t6, %lo(jpt_8005BDC4)($at) +/* 0FE920 7F0C9DF0 01C00008 */ jr $t6 +/* 0FE924 7F0C9DF4 00000000 */ nop +.L7F0C9DF8: +/* 0FE928 7F0C9DF8 1A400065 */ blez $s2, .L7F0C9F90 +/* 0FE92C 7F0C9DFC 00003825 */ move $a3, $zero +/* 0FE930 7F0C9E00 260F0003 */ addiu $t7, $s0, 3 +/* 0FE934 7F0C9E04 31F80FFC */ andi $t8, $t7, 0xffc +/* 0FE938 7F0C9E08 0018C880 */ sll $t9, $t8, 2 +/* 0FE93C 7F0C9E0C AFB9001C */ sw $t9, 0x1c($sp) +.L7F0C9E10: +/* 0FE940 7F0C9E10 1A00005B */ blez $s0, .L7F0C9F80 +/* 0FE944 7F0C9E14 00002825 */ move $a1, $zero +/* 0FE948 7F0C9E18 02120019 */ multu $s0, $s2 +/* 0FE94C 7F0C9E1C 02286021 */ addu $t4, $s1, $t0 +/* 0FE950 7F0C9E20 32060003 */ andi $a2, $s0, 3 +/* 0FE954 7F0C9E24 0000C880 */ sll $t9, $zero, 2 +/* 0FE958 7F0C9E28 01594821 */ addu $t1, $t2, $t9 +/* 0FE95C 7F0C9E2C 00C06825 */ move $t5, $a2 +/* 0FE960 7F0C9E30 02281021 */ addu $v0, $s1, $t0 +/* 0FE964 7F0C9E34 00005812 */ mflo $t3 +/* 0FE968 7F0C9E38 000B7080 */ sll $t6, $t3, 2 +/* 0FE96C 7F0C9E3C 01CB7023 */ subu $t6, $t6, $t3 +/* 0FE970 7F0C9E40 01C87821 */ addu $t7, $t6, $t0 +/* 0FE974 7F0C9E44 000BC040 */ sll $t8, $t3, 1 +/* 0FE978 7F0C9E48 01989821 */ addu $s3, $t4, $t8 +/* 0FE97C 7F0C9E4C 01F12021 */ addu $a0, $t7, $s1 +/* 0FE980 7F0C9E50 10C00015 */ beqz $a2, .L7F0C9EA8 +/* 0FE984 7F0C9E54 018B1821 */ addu $v1, $t4, $t3 +.L7F0C9E58: +/* 0FE988 7F0C9E58 904F0000 */ lbu $t7, ($v0) +/* 0FE98C 7F0C9E5C 908E0000 */ lbu $t6, ($a0) +/* 0FE990 7F0C9E60 24A50001 */ addiu $a1, $a1, 1 +/* 0FE994 7F0C9E64 000FC600 */ sll $t8, $t7, 0x18 +/* 0FE998 7F0C9E68 906F0000 */ lbu $t7, ($v1) +/* 0FE99C 7F0C9E6C 01D8C825 */ or $t9, $t6, $t8 +/* 0FE9A0 7F0C9E70 25080001 */ addiu $t0, $t0, 1 +/* 0FE9A4 7F0C9E74 000F7400 */ sll $t6, $t7, 0x10 +/* 0FE9A8 7F0C9E78 926F0000 */ lbu $t7, ($s3) +/* 0FE9AC 7F0C9E7C 032EC025 */ or $t8, $t9, $t6 +/* 0FE9B0 7F0C9E80 24420001 */ addiu $v0, $v0, 1 +/* 0FE9B4 7F0C9E84 000FCA00 */ sll $t9, $t7, 8 +/* 0FE9B8 7F0C9E88 03197025 */ or $t6, $t8, $t9 +/* 0FE9BC 7F0C9E8C AD2E0000 */ sw $t6, ($t1) +/* 0FE9C0 7F0C9E90 24840001 */ addiu $a0, $a0, 1 +/* 0FE9C4 7F0C9E94 24630001 */ addiu $v1, $v1, 1 +/* 0FE9C8 7F0C9E98 26730001 */ addiu $s3, $s3, 1 +/* 0FE9CC 7F0C9E9C 15A5FFEE */ bne $t5, $a1, .L7F0C9E58 +/* 0FE9D0 7F0C9EA0 25290004 */ addiu $t1, $t1, 4 +/* 0FE9D4 7F0C9EA4 10B00036 */ beq $a1, $s0, .L7F0C9F80 +.L7F0C9EA8: +/* 0FE9D8 7F0C9EA8 00057880 */ sll $t7, $a1, 2 +/* 0FE9DC 7F0C9EAC 014F4821 */ addu $t1, $t2, $t7 +.L7F0C9EB0: +/* 0FE9E0 7F0C9EB0 90590000 */ lbu $t9, ($v0) +/* 0FE9E4 7F0C9EB4 90980000 */ lbu $t8, ($a0) +/* 0FE9E8 7F0C9EB8 24A50004 */ addiu $a1, $a1, 4 +/* 0FE9EC 7F0C9EBC 00197600 */ sll $t6, $t9, 0x18 +/* 0FE9F0 7F0C9EC0 90790000 */ lbu $t9, ($v1) +/* 0FE9F4 7F0C9EC4 030E7825 */ or $t7, $t8, $t6 +/* 0FE9F8 7F0C9EC8 25080004 */ addiu $t0, $t0, 4 +/* 0FE9FC 7F0C9ECC 0019C400 */ sll $t8, $t9, 0x10 +/* 0FEA00 7F0C9ED0 92790000 */ lbu $t9, ($s3) +/* 0FEA04 7F0C9ED4 01F87025 */ or $t6, $t7, $t8 +/* 0FEA08 7F0C9ED8 24420004 */ addiu $v0, $v0, 4 +/* 0FEA0C 7F0C9EDC 00197A00 */ sll $t7, $t9, 8 +/* 0FEA10 7F0C9EE0 01CFC025 */ or $t8, $t6, $t7 +/* 0FEA14 7F0C9EE4 AD380000 */ sw $t8, ($t1) +/* 0FEA18 7F0C9EE8 904EFFFD */ lbu $t6, -3($v0) +/* 0FEA1C 7F0C9EEC 90990001 */ lbu $t9, 1($a0) +/* 0FEA20 7F0C9EF0 24840004 */ addiu $a0, $a0, 4 +/* 0FEA24 7F0C9EF4 000E7E00 */ sll $t7, $t6, 0x18 +/* 0FEA28 7F0C9EF8 906E0001 */ lbu $t6, 1($v1) +/* 0FEA2C 7F0C9EFC 032FC025 */ or $t8, $t9, $t7 +/* 0FEA30 7F0C9F00 24630004 */ addiu $v1, $v1, 4 +/* 0FEA34 7F0C9F04 000ECC00 */ sll $t9, $t6, 0x10 +/* 0FEA38 7F0C9F08 926E0001 */ lbu $t6, 1($s3) +/* 0FEA3C 7F0C9F0C 03197825 */ or $t7, $t8, $t9 +/* 0FEA40 7F0C9F10 26730004 */ addiu $s3, $s3, 4 +/* 0FEA44 7F0C9F14 000EC200 */ sll $t8, $t6, 8 +/* 0FEA48 7F0C9F18 01F8C825 */ or $t9, $t7, $t8 +/* 0FEA4C 7F0C9F1C AD390004 */ sw $t9, 4($t1) +/* 0FEA50 7F0C9F20 904FFFFE */ lbu $t7, -2($v0) +/* 0FEA54 7F0C9F24 908EFFFE */ lbu $t6, -2($a0) +/* 0FEA58 7F0C9F28 25290010 */ addiu $t1, $t1, 0x10 +/* 0FEA5C 7F0C9F2C 000FC600 */ sll $t8, $t7, 0x18 +/* 0FEA60 7F0C9F30 906FFFFE */ lbu $t7, -2($v1) +/* 0FEA64 7F0C9F34 01D8C825 */ or $t9, $t6, $t8 +/* 0FEA68 7F0C9F38 000F7400 */ sll $t6, $t7, 0x10 +/* 0FEA6C 7F0C9F3C 926FFFFE */ lbu $t7, -2($s3) +/* 0FEA70 7F0C9F40 032EC025 */ or $t8, $t9, $t6 +/* 0FEA74 7F0C9F44 000FCA00 */ sll $t9, $t7, 8 +/* 0FEA78 7F0C9F48 03197025 */ or $t6, $t8, $t9 +/* 0FEA7C 7F0C9F4C AD2EFFF8 */ sw $t6, -8($t1) +/* 0FEA80 7F0C9F50 9058FFFF */ lbu $t8, -1($v0) +/* 0FEA84 7F0C9F54 908FFFFF */ lbu $t7, -1($a0) +/* 0FEA88 7F0C9F58 0018CE00 */ sll $t9, $t8, 0x18 +/* 0FEA8C 7F0C9F5C 9078FFFF */ lbu $t8, -1($v1) +/* 0FEA90 7F0C9F60 01F97025 */ or $t6, $t7, $t9 +/* 0FEA94 7F0C9F64 00187C00 */ sll $t7, $t8, 0x10 +/* 0FEA98 7F0C9F68 9278FFFF */ lbu $t8, -1($s3) +/* 0FEA9C 7F0C9F6C 01CFC825 */ or $t9, $t6, $t7 +/* 0FEAA0 7F0C9F70 00187200 */ sll $t6, $t8, 8 +/* 0FEAA4 7F0C9F74 032E7825 */ or $t7, $t9, $t6 +/* 0FEAA8 7F0C9F78 14B0FFCD */ bne $a1, $s0, .L7F0C9EB0 +/* 0FEAAC 7F0C9F7C AD2FFFFC */ sw $t7, -4($t1) +.L7F0C9F80: +/* 0FEAB0 7F0C9F80 8FB8001C */ lw $t8, 0x1c($sp) +/* 0FEAB4 7F0C9F84 24E70001 */ addiu $a3, $a3, 1 +/* 0FEAB8 7F0C9F88 14F2FFA1 */ bne $a3, $s2, .L7F0C9E10 +/* 0FEABC 7F0C9F8C 01585021 */ addu $t2, $t2, $t8 +.L7F0C9F90: +/* 0FEAC0 7F0C9F90 26190003 */ addiu $t9, $s0, 3 +/* 0FEAC4 7F0C9F94 332E0FFC */ andi $t6, $t9, 0xffc +/* 0FEAC8 7F0C9F98 01D20019 */ multu $t6, $s2 +/* 0FEACC 7F0C9F9C 00001012 */ mflo $v0 +/* 0FEAD0 7F0C9FA0 00027880 */ sll $t7, $v0, 2 +/* 0FEAD4 7F0C9FA4 10000234 */ b .L7F0CA878 +/* 0FEAD8 7F0C9FA8 01E01025 */ move $v0, $t7 +.L7F0C9FAC: +/* 0FEADC 7F0C9FAC 1A40005B */ blez $s2, .L7F0CA11C +/* 0FEAE0 7F0C9FB0 00003825 */ move $a3, $zero +/* 0FEAE4 7F0C9FB4 26180003 */ addiu $t8, $s0, 3 +/* 0FEAE8 7F0C9FB8 33190FFC */ andi $t9, $t8, 0xffc +/* 0FEAEC 7F0C9FBC 00197080 */ sll $t6, $t9, 2 +/* 0FEAF0 7F0C9FC0 AFAE001C */ sw $t6, 0x1c($sp) +.L7F0C9FC4: +/* 0FEAF4 7F0C9FC4 1A000051 */ blez $s0, .L7F0CA10C +/* 0FEAF8 7F0C9FC8 00002825 */ move $a1, $zero +/* 0FEAFC 7F0C9FCC 02120019 */ multu $s0, $s2 +/* 0FEB00 7F0C9FD0 02287821 */ addu $t7, $s1, $t0 +/* 0FEB04 7F0C9FD4 32060003 */ andi $a2, $s0, 3 +/* 0FEB08 7F0C9FD8 00007080 */ sll $t6, $zero, 2 +/* 0FEB0C 7F0C9FDC 014E4821 */ addu $t1, $t2, $t6 +/* 0FEB10 7F0C9FE0 00C02025 */ move $a0, $a2 +/* 0FEB14 7F0C9FE4 02281021 */ addu $v0, $s1, $t0 +/* 0FEB18 7F0C9FE8 00005812 */ mflo $t3 +/* 0FEB1C 7F0C9FEC 000BC040 */ sll $t8, $t3, 1 +/* 0FEB20 7F0C9FF0 0308C821 */ addu $t9, $t8, $t0 +/* 0FEB24 7F0C9FF4 03316021 */ addu $t4, $t9, $s1 +/* 0FEB28 7F0C9FF8 10C00013 */ beqz $a2, .L7F0CA048 +/* 0FEB2C 7F0C9FFC 01EB1821 */ addu $v1, $t7, $t3 +.L7F0CA000: +/* 0FEB30 7F0CA000 90590000 */ lbu $t9, ($v0) +/* 0FEB34 7F0CA004 918F0000 */ lbu $t7, ($t4) +/* 0FEB38 7F0CA008 24A50001 */ addiu $a1, $a1, 1 +/* 0FEB3C 7F0CA00C 00197600 */ sll $t6, $t9, 0x18 +/* 0FEB40 7F0CA010 90790000 */ lbu $t9, ($v1) +/* 0FEB44 7F0CA014 000FC200 */ sll $t8, $t7, 8 +/* 0FEB48 7F0CA018 030E7825 */ or $t7, $t8, $t6 +/* 0FEB4C 7F0CA01C 0019C400 */ sll $t8, $t9, 0x10 +/* 0FEB50 7F0CA020 01F87025 */ or $t6, $t7, $t8 +/* 0FEB54 7F0CA024 35D900FF */ ori $t9, $t6, 0xff +/* 0FEB58 7F0CA028 AD390000 */ sw $t9, ($t1) +/* 0FEB5C 7F0CA02C 25080001 */ addiu $t0, $t0, 1 +/* 0FEB60 7F0CA030 24420001 */ addiu $v0, $v0, 1 +/* 0FEB64 7F0CA034 24630001 */ addiu $v1, $v1, 1 +/* 0FEB68 7F0CA038 258C0001 */ addiu $t4, $t4, 1 +/* 0FEB6C 7F0CA03C 1485FFF0 */ bne $a0, $a1, .L7F0CA000 +/* 0FEB70 7F0CA040 25290004 */ addiu $t1, $t1, 4 +/* 0FEB74 7F0CA044 10B00031 */ beq $a1, $s0, .L7F0CA10C +.L7F0CA048: +/* 0FEB78 7F0CA048 00057880 */ sll $t7, $a1, 2 +/* 0FEB7C 7F0CA04C 014F4821 */ addu $t1, $t2, $t7 +.L7F0CA050: +/* 0FEB80 7F0CA050 90590000 */ lbu $t9, ($v0) +/* 0FEB84 7F0CA054 91980000 */ lbu $t8, ($t4) +/* 0FEB88 7F0CA058 24A50004 */ addiu $a1, $a1, 4 +/* 0FEB8C 7F0CA05C 00197E00 */ sll $t7, $t9, 0x18 +/* 0FEB90 7F0CA060 90790000 */ lbu $t9, ($v1) +/* 0FEB94 7F0CA064 00187200 */ sll $t6, $t8, 8 +/* 0FEB98 7F0CA068 01CFC025 */ or $t8, $t6, $t7 +/* 0FEB9C 7F0CA06C 00197400 */ sll $t6, $t9, 0x10 +/* 0FEBA0 7F0CA070 030E7825 */ or $t7, $t8, $t6 +/* 0FEBA4 7F0CA074 35F900FF */ ori $t9, $t7, 0xff +/* 0FEBA8 7F0CA078 AD390000 */ sw $t9, ($t1) +/* 0FEBAC 7F0CA07C 904F0001 */ lbu $t7, 1($v0) +/* 0FEBB0 7F0CA080 91980001 */ lbu $t8, 1($t4) +/* 0FEBB4 7F0CA084 25080004 */ addiu $t0, $t0, 4 +/* 0FEBB8 7F0CA088 000FCE00 */ sll $t9, $t7, 0x18 +/* 0FEBBC 7F0CA08C 906F0001 */ lbu $t7, 1($v1) +/* 0FEBC0 7F0CA090 00187200 */ sll $t6, $t8, 8 +/* 0FEBC4 7F0CA094 01D9C025 */ or $t8, $t6, $t9 +/* 0FEBC8 7F0CA098 000F7400 */ sll $t6, $t7, 0x10 +/* 0FEBCC 7F0CA09C 030EC825 */ or $t9, $t8, $t6 +/* 0FEBD0 7F0CA0A0 372F00FF */ ori $t7, $t9, 0xff +/* 0FEBD4 7F0CA0A4 AD2F0004 */ sw $t7, 4($t1) +/* 0FEBD8 7F0CA0A8 90590002 */ lbu $t9, 2($v0) +/* 0FEBDC 7F0CA0AC 91980002 */ lbu $t8, 2($t4) +/* 0FEBE0 7F0CA0B0 24420004 */ addiu $v0, $v0, 4 +/* 0FEBE4 7F0CA0B4 00197E00 */ sll $t7, $t9, 0x18 +/* 0FEBE8 7F0CA0B8 90790002 */ lbu $t9, 2($v1) +/* 0FEBEC 7F0CA0BC 00187200 */ sll $t6, $t8, 8 +/* 0FEBF0 7F0CA0C0 01CFC025 */ or $t8, $t6, $t7 +/* 0FEBF4 7F0CA0C4 00197400 */ sll $t6, $t9, 0x10 +/* 0FEBF8 7F0CA0C8 030E7825 */ or $t7, $t8, $t6 +/* 0FEBFC 7F0CA0CC 35F900FF */ ori $t9, $t7, 0xff +/* 0FEC00 7F0CA0D0 AD390008 */ sw $t9, 8($t1) +/* 0FEC04 7F0CA0D4 904FFFFF */ lbu $t7, -1($v0) +/* 0FEC08 7F0CA0D8 91980003 */ lbu $t8, 3($t4) +/* 0FEC0C 7F0CA0DC 24630004 */ addiu $v1, $v1, 4 +/* 0FEC10 7F0CA0E0 000FCE00 */ sll $t9, $t7, 0x18 +/* 0FEC14 7F0CA0E4 906FFFFF */ lbu $t7, -1($v1) +/* 0FEC18 7F0CA0E8 00187200 */ sll $t6, $t8, 8 +/* 0FEC1C 7F0CA0EC 01D9C025 */ or $t8, $t6, $t9 +/* 0FEC20 7F0CA0F0 000F7400 */ sll $t6, $t7, 0x10 +/* 0FEC24 7F0CA0F4 030EC825 */ or $t9, $t8, $t6 +/* 0FEC28 7F0CA0F8 372F00FF */ ori $t7, $t9, 0xff +/* 0FEC2C 7F0CA0FC AD2F000C */ sw $t7, 0xc($t1) +/* 0FEC30 7F0CA100 258C0004 */ addiu $t4, $t4, 4 +/* 0FEC34 7F0CA104 14B0FFD2 */ bne $a1, $s0, .L7F0CA050 +/* 0FEC38 7F0CA108 25290010 */ addiu $t1, $t1, 0x10 +.L7F0CA10C: +/* 0FEC3C 7F0CA10C 8FB8001C */ lw $t8, 0x1c($sp) +/* 0FEC40 7F0CA110 24E70001 */ addiu $a3, $a3, 1 +/* 0FEC44 7F0CA114 14F2FFAB */ bne $a3, $s2, .L7F0C9FC4 +/* 0FEC48 7F0CA118 01585021 */ addu $t2, $t2, $t8 +.L7F0CA11C: +/* 0FEC4C 7F0CA11C 260E0003 */ addiu $t6, $s0, 3 +/* 0FEC50 7F0CA120 31D90FFC */ andi $t9, $t6, 0xffc +/* 0FEC54 7F0CA124 03320019 */ multu $t9, $s2 +/* 0FEC58 7F0CA128 00001012 */ mflo $v0 +/* 0FEC5C 7F0CA12C 00027880 */ sll $t7, $v0, 2 +/* 0FEC60 7F0CA130 100001D1 */ b .L7F0CA878 +/* 0FEC64 7F0CA134 01E01025 */ move $v0, $t7 +.L7F0CA138: +/* 0FEC68 7F0CA138 1A400065 */ blez $s2, .L7F0CA2D0 +/* 0FEC6C 7F0CA13C 00003825 */ move $a3, $zero +/* 0FEC70 7F0CA140 26180003 */ addiu $t8, $s0, 3 +/* 0FEC74 7F0CA144 330E0FFC */ andi $t6, $t8, 0xffc +/* 0FEC78 7F0CA148 000EC840 */ sll $t9, $t6, 1 +/* 0FEC7C 7F0CA14C AFB9001C */ sw $t9, 0x1c($sp) +.L7F0CA150: +/* 0FEC80 7F0CA150 1A00005B */ blez $s0, .L7F0CA2C0 +/* 0FEC84 7F0CA154 00002825 */ move $a1, $zero +/* 0FEC88 7F0CA158 02120019 */ multu $s0, $s2 +/* 0FEC8C 7F0CA15C 02286021 */ addu $t4, $s1, $t0 +/* 0FEC90 7F0CA160 32060003 */ andi $a2, $s0, 3 +/* 0FEC94 7F0CA164 0000C840 */ sll $t9, $zero, 1 +/* 0FEC98 7F0CA168 01395021 */ addu $t2, $t1, $t9 +/* 0FEC9C 7F0CA16C 00C06825 */ move $t5, $a2 +/* 0FECA0 7F0CA170 02281021 */ addu $v0, $s1, $t0 +/* 0FECA4 7F0CA174 00005812 */ mflo $t3 +/* 0FECA8 7F0CA178 000B7880 */ sll $t7, $t3, 2 +/* 0FECAC 7F0CA17C 01EB7823 */ subu $t7, $t7, $t3 +/* 0FECB0 7F0CA180 01E8C021 */ addu $t8, $t7, $t0 +/* 0FECB4 7F0CA184 000B7040 */ sll $t6, $t3, 1 +/* 0FECB8 7F0CA188 018E9821 */ addu $s3, $t4, $t6 +/* 0FECBC 7F0CA18C 03112021 */ addu $a0, $t8, $s1 +/* 0FECC0 7F0CA190 10C00015 */ beqz $a2, .L7F0CA1E8 +/* 0FECC4 7F0CA194 018B1821 */ addu $v1, $t4, $t3 +.L7F0CA198: +/* 0FECC8 7F0CA198 90580000 */ lbu $t8, ($v0) +/* 0FECCC 7F0CA19C 908F0000 */ lbu $t7, ($a0) +/* 0FECD0 7F0CA1A0 24A50001 */ addiu $a1, $a1, 1 +/* 0FECD4 7F0CA1A4 001872C0 */ sll $t6, $t8, 0xb +/* 0FECD8 7F0CA1A8 90780000 */ lbu $t8, ($v1) +/* 0FECDC 7F0CA1AC 01EEC825 */ or $t9, $t7, $t6 +/* 0FECE0 7F0CA1B0 25080001 */ addiu $t0, $t0, 1 +/* 0FECE4 7F0CA1B4 00187980 */ sll $t7, $t8, 6 +/* 0FECE8 7F0CA1B8 92780000 */ lbu $t8, ($s3) +/* 0FECEC 7F0CA1BC 032F7025 */ or $t6, $t9, $t7 +/* 0FECF0 7F0CA1C0 24420001 */ addiu $v0, $v0, 1 +/* 0FECF4 7F0CA1C4 0018C840 */ sll $t9, $t8, 1 +/* 0FECF8 7F0CA1C8 01D97825 */ or $t7, $t6, $t9 +/* 0FECFC 7F0CA1CC A54F0000 */ sh $t7, ($t2) +/* 0FED00 7F0CA1D0 24840001 */ addiu $a0, $a0, 1 +/* 0FED04 7F0CA1D4 24630001 */ addiu $v1, $v1, 1 +/* 0FED08 7F0CA1D8 26730001 */ addiu $s3, $s3, 1 +/* 0FED0C 7F0CA1DC 15A5FFEE */ bne $t5, $a1, .L7F0CA198 +/* 0FED10 7F0CA1E0 254A0002 */ addiu $t2, $t2, 2 +/* 0FED14 7F0CA1E4 10B00036 */ beq $a1, $s0, .L7F0CA2C0 +.L7F0CA1E8: +/* 0FED18 7F0CA1E8 0005C040 */ sll $t8, $a1, 1 +/* 0FED1C 7F0CA1EC 01385021 */ addu $t2, $t1, $t8 +.L7F0CA1F0: +/* 0FED20 7F0CA1F0 90590000 */ lbu $t9, ($v0) +/* 0FED24 7F0CA1F4 908E0000 */ lbu $t6, ($a0) +/* 0FED28 7F0CA1F8 24A50004 */ addiu $a1, $a1, 4 +/* 0FED2C 7F0CA1FC 00197AC0 */ sll $t7, $t9, 0xb +/* 0FED30 7F0CA200 90790000 */ lbu $t9, ($v1) +/* 0FED34 7F0CA204 01CFC025 */ or $t8, $t6, $t7 +/* 0FED38 7F0CA208 25080004 */ addiu $t0, $t0, 4 +/* 0FED3C 7F0CA20C 00197180 */ sll $t6, $t9, 6 +/* 0FED40 7F0CA210 92790000 */ lbu $t9, ($s3) +/* 0FED44 7F0CA214 030E7825 */ or $t7, $t8, $t6 +/* 0FED48 7F0CA218 24420004 */ addiu $v0, $v0, 4 +/* 0FED4C 7F0CA21C 0019C040 */ sll $t8, $t9, 1 +/* 0FED50 7F0CA220 01F87025 */ or $t6, $t7, $t8 +/* 0FED54 7F0CA224 A54E0000 */ sh $t6, ($t2) +/* 0FED58 7F0CA228 904FFFFD */ lbu $t7, -3($v0) +/* 0FED5C 7F0CA22C 90990001 */ lbu $t9, 1($a0) +/* 0FED60 7F0CA230 24840004 */ addiu $a0, $a0, 4 +/* 0FED64 7F0CA234 000FC2C0 */ sll $t8, $t7, 0xb +/* 0FED68 7F0CA238 906F0001 */ lbu $t7, 1($v1) +/* 0FED6C 7F0CA23C 03387025 */ or $t6, $t9, $t8 +/* 0FED70 7F0CA240 24630004 */ addiu $v1, $v1, 4 +/* 0FED74 7F0CA244 000FC980 */ sll $t9, $t7, 6 +/* 0FED78 7F0CA248 926F0001 */ lbu $t7, 1($s3) +/* 0FED7C 7F0CA24C 01D9C025 */ or $t8, $t6, $t9 +/* 0FED80 7F0CA250 26730004 */ addiu $s3, $s3, 4 +/* 0FED84 7F0CA254 000F7040 */ sll $t6, $t7, 1 +/* 0FED88 7F0CA258 030EC825 */ or $t9, $t8, $t6 +/* 0FED8C 7F0CA25C A5590002 */ sh $t9, 2($t2) +/* 0FED90 7F0CA260 9058FFFE */ lbu $t8, -2($v0) +/* 0FED94 7F0CA264 908FFFFE */ lbu $t7, -2($a0) +/* 0FED98 7F0CA268 254A0008 */ addiu $t2, $t2, 8 +/* 0FED9C 7F0CA26C 001872C0 */ sll $t6, $t8, 0xb +/* 0FEDA0 7F0CA270 9078FFFE */ lbu $t8, -2($v1) +/* 0FEDA4 7F0CA274 01EEC825 */ or $t9, $t7, $t6 +/* 0FEDA8 7F0CA278 00187980 */ sll $t7, $t8, 6 +/* 0FEDAC 7F0CA27C 9278FFFE */ lbu $t8, -2($s3) +/* 0FEDB0 7F0CA280 032F7025 */ or $t6, $t9, $t7 +/* 0FEDB4 7F0CA284 0018C840 */ sll $t9, $t8, 1 +/* 0FEDB8 7F0CA288 01D97825 */ or $t7, $t6, $t9 +/* 0FEDBC 7F0CA28C A54FFFFC */ sh $t7, -4($t2) +/* 0FEDC0 7F0CA290 904EFFFF */ lbu $t6, -1($v0) +/* 0FEDC4 7F0CA294 9098FFFF */ lbu $t8, -1($a0) +/* 0FEDC8 7F0CA298 000ECAC0 */ sll $t9, $t6, 0xb +/* 0FEDCC 7F0CA29C 906EFFFF */ lbu $t6, -1($v1) +/* 0FEDD0 7F0CA2A0 03197825 */ or $t7, $t8, $t9 +/* 0FEDD4 7F0CA2A4 000EC180 */ sll $t8, $t6, 6 +/* 0FEDD8 7F0CA2A8 926EFFFF */ lbu $t6, -1($s3) +/* 0FEDDC 7F0CA2AC 01F8C825 */ or $t9, $t7, $t8 +/* 0FEDE0 7F0CA2B0 000E7840 */ sll $t7, $t6, 1 +/* 0FEDE4 7F0CA2B4 032FC025 */ or $t8, $t9, $t7 +/* 0FEDE8 7F0CA2B8 14B0FFCD */ bne $a1, $s0, .L7F0CA1F0 +/* 0FEDEC 7F0CA2BC A558FFFE */ sh $t8, -2($t2) +.L7F0CA2C0: +/* 0FEDF0 7F0CA2C0 8FAE001C */ lw $t6, 0x1c($sp) +/* 0FEDF4 7F0CA2C4 24E70001 */ addiu $a3, $a3, 1 +/* 0FEDF8 7F0CA2C8 14F2FFA1 */ bne $a3, $s2, .L7F0CA150 +/* 0FEDFC 7F0CA2CC 012E4821 */ addu $t1, $t1, $t6 +.L7F0CA2D0: +/* 0FEE00 7F0CA2D0 26190003 */ addiu $t9, $s0, 3 +/* 0FEE04 7F0CA2D4 332F0FFC */ andi $t7, $t9, 0xffc +/* 0FEE08 7F0CA2D8 01F20019 */ multu $t7, $s2 +/* 0FEE0C 7F0CA2DC 00001012 */ mflo $v0 +/* 0FEE10 7F0CA2E0 0002C040 */ sll $t8, $v0, 1 +/* 0FEE14 7F0CA2E4 10000164 */ b .L7F0CA878 +/* 0FEE18 7F0CA2E8 03001025 */ move $v0, $t8 +.L7F0CA2EC: +/* 0FEE1C 7F0CA2EC 1A40003D */ blez $s2, .L7F0CA3E4 +/* 0FEE20 7F0CA2F0 00003825 */ move $a3, $zero +/* 0FEE24 7F0CA2F4 260E0003 */ addiu $t6, $s0, 3 +/* 0FEE28 7F0CA2F8 31D90FFC */ andi $t9, $t6, 0xffc +/* 0FEE2C 7F0CA2FC 00197840 */ sll $t7, $t9, 1 +/* 0FEE30 7F0CA300 AFAF001C */ sw $t7, 0x1c($sp) +.L7F0CA304: +/* 0FEE34 7F0CA304 1A000033 */ blez $s0, .L7F0CA3D4 +/* 0FEE38 7F0CA308 00002825 */ move $a1, $zero +/* 0FEE3C 7F0CA30C 02120019 */ multu $s0, $s2 +/* 0FEE40 7F0CA310 32060003 */ andi $a2, $s0, 3 +/* 0FEE44 7F0CA314 0000C840 */ sll $t9, $zero, 1 +/* 0FEE48 7F0CA318 01395021 */ addu $t2, $t1, $t9 +/* 0FEE4C 7F0CA31C 00C01825 */ move $v1, $a2 +/* 0FEE50 7F0CA320 02281021 */ addu $v0, $s1, $t0 +/* 0FEE54 7F0CA324 0000C012 */ mflo $t8 +/* 0FEE58 7F0CA328 01187021 */ addu $t6, $t0, $t8 +/* 0FEE5C 7F0CA32C 10C0000D */ beqz $a2, .L7F0CA364 +/* 0FEE60 7F0CA330 01D15821 */ addu $t3, $t6, $s1 +.L7F0CA334: +/* 0FEE64 7F0CA334 90580000 */ lbu $t8, ($v0) +/* 0FEE68 7F0CA338 916F0000 */ lbu $t7, ($t3) +/* 0FEE6C 7F0CA33C 24A50001 */ addiu $a1, $a1, 1 +/* 0FEE70 7F0CA340 00187200 */ sll $t6, $t8, 8 +/* 0FEE74 7F0CA344 01EEC825 */ or $t9, $t7, $t6 +/* 0FEE78 7F0CA348 A5590000 */ sh $t9, ($t2) +/* 0FEE7C 7F0CA34C 25080001 */ addiu $t0, $t0, 1 +/* 0FEE80 7F0CA350 24420001 */ addiu $v0, $v0, 1 +/* 0FEE84 7F0CA354 256B0001 */ addiu $t3, $t3, 1 +/* 0FEE88 7F0CA358 1465FFF6 */ bne $v1, $a1, .L7F0CA334 +/* 0FEE8C 7F0CA35C 254A0002 */ addiu $t2, $t2, 2 +/* 0FEE90 7F0CA360 10B0001C */ beq $a1, $s0, .L7F0CA3D4 +.L7F0CA364: +/* 0FEE94 7F0CA364 0005C040 */ sll $t8, $a1, 1 +/* 0FEE98 7F0CA368 01385021 */ addu $t2, $t1, $t8 +.L7F0CA36C: +/* 0FEE9C 7F0CA36C 904E0000 */ lbu $t6, ($v0) +/* 0FEEA0 7F0CA370 916F0000 */ lbu $t7, ($t3) +/* 0FEEA4 7F0CA374 24A50004 */ addiu $a1, $a1, 4 +/* 0FEEA8 7F0CA378 000ECA00 */ sll $t9, $t6, 8 +/* 0FEEAC 7F0CA37C 01F9C025 */ or $t8, $t7, $t9 +/* 0FEEB0 7F0CA380 A5580000 */ sh $t8, ($t2) +/* 0FEEB4 7F0CA384 904F0001 */ lbu $t7, 1($v0) +/* 0FEEB8 7F0CA388 916E0001 */ lbu $t6, 1($t3) +/* 0FEEBC 7F0CA38C 25080004 */ addiu $t0, $t0, 4 +/* 0FEEC0 7F0CA390 000FCA00 */ sll $t9, $t7, 8 +/* 0FEEC4 7F0CA394 01D9C025 */ or $t8, $t6, $t9 +/* 0FEEC8 7F0CA398 A5580002 */ sh $t8, 2($t2) +/* 0FEECC 7F0CA39C 904E0002 */ lbu $t6, 2($v0) +/* 0FEED0 7F0CA3A0 916F0002 */ lbu $t7, 2($t3) +/* 0FEED4 7F0CA3A4 24420004 */ addiu $v0, $v0, 4 +/* 0FEED8 7F0CA3A8 000ECA00 */ sll $t9, $t6, 8 +/* 0FEEDC 7F0CA3AC 01F9C025 */ or $t8, $t7, $t9 +/* 0FEEE0 7F0CA3B0 A5580004 */ sh $t8, 4($t2) +/* 0FEEE4 7F0CA3B4 904FFFFF */ lbu $t7, -1($v0) +/* 0FEEE8 7F0CA3B8 916E0003 */ lbu $t6, 3($t3) +/* 0FEEEC 7F0CA3BC 256B0004 */ addiu $t3, $t3, 4 +/* 0FEEF0 7F0CA3C0 000FCA00 */ sll $t9, $t7, 8 +/* 0FEEF4 7F0CA3C4 01D9C025 */ or $t8, $t6, $t9 +/* 0FEEF8 7F0CA3C8 A5580006 */ sh $t8, 6($t2) +/* 0FEEFC 7F0CA3CC 14B0FFE7 */ bne $a1, $s0, .L7F0CA36C +/* 0FEF00 7F0CA3D0 254A0008 */ addiu $t2, $t2, 8 +.L7F0CA3D4: +/* 0FEF04 7F0CA3D4 8FAF001C */ lw $t7, 0x1c($sp) +/* 0FEF08 7F0CA3D8 24E70001 */ addiu $a3, $a3, 1 +/* 0FEF0C 7F0CA3DC 14F2FFC9 */ bne $a3, $s2, .L7F0CA304 +/* 0FEF10 7F0CA3E0 012F4821 */ addu $t1, $t1, $t7 +.L7F0CA3E4: +/* 0FEF14 7F0CA3E4 260E0003 */ addiu $t6, $s0, 3 +/* 0FEF18 7F0CA3E8 31D90FFC */ andi $t9, $t6, 0xffc +/* 0FEF1C 7F0CA3EC 03320019 */ multu $t9, $s2 +/* 0FEF20 7F0CA3F0 00001012 */ mflo $v0 +/* 0FEF24 7F0CA3F4 0002C040 */ sll $t8, $v0, 1 +/* 0FEF28 7F0CA3F8 1000011F */ b .L7F0CA878 +/* 0FEF2C 7F0CA3FC 03001025 */ move $v0, $t8 +.L7F0CA400: +/* 0FEF30 7F0CA400 1A40005B */ blez $s2, .L7F0CA570 +/* 0FEF34 7F0CA404 00003825 */ move $a3, $zero +/* 0FEF38 7F0CA408 260F0003 */ addiu $t7, $s0, 3 +/* 0FEF3C 7F0CA40C 31EE0FFC */ andi $t6, $t7, 0xffc +/* 0FEF40 7F0CA410 000EC840 */ sll $t9, $t6, 1 +/* 0FEF44 7F0CA414 AFB9001C */ sw $t9, 0x1c($sp) +.L7F0CA418: +/* 0FEF48 7F0CA418 1A000051 */ blez $s0, .L7F0CA560 +/* 0FEF4C 7F0CA41C 00002825 */ move $a1, $zero +/* 0FEF50 7F0CA420 02120019 */ multu $s0, $s2 +/* 0FEF54 7F0CA424 0228C021 */ addu $t8, $s1, $t0 +/* 0FEF58 7F0CA428 32060003 */ andi $a2, $s0, 3 +/* 0FEF5C 7F0CA42C 0000C840 */ sll $t9, $zero, 1 +/* 0FEF60 7F0CA430 01395021 */ addu $t2, $t1, $t9 +/* 0FEF64 7F0CA434 00C02025 */ move $a0, $a2 +/* 0FEF68 7F0CA438 02281021 */ addu $v0, $s1, $t0 +/* 0FEF6C 7F0CA43C 00005812 */ mflo $t3 +/* 0FEF70 7F0CA440 000B7840 */ sll $t7, $t3, 1 +/* 0FEF74 7F0CA444 01E87021 */ addu $t6, $t7, $t0 +/* 0FEF78 7F0CA448 01D16021 */ addu $t4, $t6, $s1 +/* 0FEF7C 7F0CA44C 10C00013 */ beqz $a2, .L7F0CA49C +/* 0FEF80 7F0CA450 030B1821 */ addu $v1, $t8, $t3 +.L7F0CA454: +/* 0FEF84 7F0CA454 904E0000 */ lbu $t6, ($v0) +/* 0FEF88 7F0CA458 91980000 */ lbu $t8, ($t4) +/* 0FEF8C 7F0CA45C 24A50001 */ addiu $a1, $a1, 1 +/* 0FEF90 7F0CA460 000ECAC0 */ sll $t9, $t6, 0xb +/* 0FEF94 7F0CA464 906E0000 */ lbu $t6, ($v1) +/* 0FEF98 7F0CA468 00187840 */ sll $t7, $t8, 1 +/* 0FEF9C 7F0CA46C 01F9C025 */ or $t8, $t7, $t9 +/* 0FEFA0 7F0CA470 000E7980 */ sll $t7, $t6, 6 +/* 0FEFA4 7F0CA474 030FC825 */ or $t9, $t8, $t7 +/* 0FEFA8 7F0CA478 372E0001 */ ori $t6, $t9, 1 +/* 0FEFAC 7F0CA47C A54E0000 */ sh $t6, ($t2) +/* 0FEFB0 7F0CA480 25080001 */ addiu $t0, $t0, 1 +/* 0FEFB4 7F0CA484 24420001 */ addiu $v0, $v0, 1 +/* 0FEFB8 7F0CA488 24630001 */ addiu $v1, $v1, 1 +/* 0FEFBC 7F0CA48C 258C0001 */ addiu $t4, $t4, 1 +/* 0FEFC0 7F0CA490 1485FFF0 */ bne $a0, $a1, .L7F0CA454 +/* 0FEFC4 7F0CA494 254A0002 */ addiu $t2, $t2, 2 +/* 0FEFC8 7F0CA498 10B00031 */ beq $a1, $s0, .L7F0CA560 +.L7F0CA49C: +/* 0FEFCC 7F0CA49C 0005C040 */ sll $t8, $a1, 1 +/* 0FEFD0 7F0CA4A0 01385021 */ addu $t2, $t1, $t8 +.L7F0CA4A4: +/* 0FEFD4 7F0CA4A4 904E0000 */ lbu $t6, ($v0) +/* 0FEFD8 7F0CA4A8 918F0000 */ lbu $t7, ($t4) +/* 0FEFDC 7F0CA4AC 24A50004 */ addiu $a1, $a1, 4 +/* 0FEFE0 7F0CA4B0 000EC2C0 */ sll $t8, $t6, 0xb +/* 0FEFE4 7F0CA4B4 906E0000 */ lbu $t6, ($v1) +/* 0FEFE8 7F0CA4B8 000FC840 */ sll $t9, $t7, 1 +/* 0FEFEC 7F0CA4BC 03387825 */ or $t7, $t9, $t8 +/* 0FEFF0 7F0CA4C0 000EC980 */ sll $t9, $t6, 6 +/* 0FEFF4 7F0CA4C4 01F9C025 */ or $t8, $t7, $t9 +/* 0FEFF8 7F0CA4C8 370E0001 */ ori $t6, $t8, 1 +/* 0FEFFC 7F0CA4CC A54E0000 */ sh $t6, ($t2) +/* 0FF000 7F0CA4D0 90580001 */ lbu $t8, 1($v0) +/* 0FF004 7F0CA4D4 918F0001 */ lbu $t7, 1($t4) +/* 0FF008 7F0CA4D8 25080004 */ addiu $t0, $t0, 4 +/* 0FF00C 7F0CA4DC 001872C0 */ sll $t6, $t8, 0xb +/* 0FF010 7F0CA4E0 90780001 */ lbu $t8, 1($v1) +/* 0FF014 7F0CA4E4 000FC840 */ sll $t9, $t7, 1 +/* 0FF018 7F0CA4E8 032E7825 */ or $t7, $t9, $t6 +/* 0FF01C 7F0CA4EC 0018C980 */ sll $t9, $t8, 6 +/* 0FF020 7F0CA4F0 01F97025 */ or $t6, $t7, $t9 +/* 0FF024 7F0CA4F4 35D80001 */ ori $t8, $t6, 1 +/* 0FF028 7F0CA4F8 A5580002 */ sh $t8, 2($t2) +/* 0FF02C 7F0CA4FC 904E0002 */ lbu $t6, 2($v0) +/* 0FF030 7F0CA500 918F0002 */ lbu $t7, 2($t4) +/* 0FF034 7F0CA504 24420004 */ addiu $v0, $v0, 4 +/* 0FF038 7F0CA508 000EC2C0 */ sll $t8, $t6, 0xb +/* 0FF03C 7F0CA50C 906E0002 */ lbu $t6, 2($v1) +/* 0FF040 7F0CA510 000FC840 */ sll $t9, $t7, 1 +/* 0FF044 7F0CA514 03387825 */ or $t7, $t9, $t8 +/* 0FF048 7F0CA518 000EC980 */ sll $t9, $t6, 6 +/* 0FF04C 7F0CA51C 01F9C025 */ or $t8, $t7, $t9 +/* 0FF050 7F0CA520 370E0001 */ ori $t6, $t8, 1 +/* 0FF054 7F0CA524 A54E0004 */ sh $t6, 4($t2) +/* 0FF058 7F0CA528 9058FFFF */ lbu $t8, -1($v0) +/* 0FF05C 7F0CA52C 918F0003 */ lbu $t7, 3($t4) +/* 0FF060 7F0CA530 24630004 */ addiu $v1, $v1, 4 +/* 0FF064 7F0CA534 001872C0 */ sll $t6, $t8, 0xb +/* 0FF068 7F0CA538 9078FFFF */ lbu $t8, -1($v1) +/* 0FF06C 7F0CA53C 000FC840 */ sll $t9, $t7, 1 +/* 0FF070 7F0CA540 032E7825 */ or $t7, $t9, $t6 +/* 0FF074 7F0CA544 0018C980 */ sll $t9, $t8, 6 +/* 0FF078 7F0CA548 01F97025 */ or $t6, $t7, $t9 +/* 0FF07C 7F0CA54C 35D80001 */ ori $t8, $t6, 1 +/* 0FF080 7F0CA550 A5580006 */ sh $t8, 6($t2) +/* 0FF084 7F0CA554 258C0004 */ addiu $t4, $t4, 4 +/* 0FF088 7F0CA558 14B0FFD2 */ bne $a1, $s0, .L7F0CA4A4 +/* 0FF08C 7F0CA55C 254A0008 */ addiu $t2, $t2, 8 +.L7F0CA560: +/* 0FF090 7F0CA560 8FAF001C */ lw $t7, 0x1c($sp) +/* 0FF094 7F0CA564 24E70001 */ addiu $a3, $a3, 1 +/* 0FF098 7F0CA568 14F2FFAB */ bne $a3, $s2, .L7F0CA418 +/* 0FF09C 7F0CA56C 012F4821 */ addu $t1, $t1, $t7 +.L7F0CA570: +/* 0FF0A0 7F0CA570 26190003 */ addiu $t9, $s0, 3 +/* 0FF0A4 7F0CA574 332E0FFC */ andi $t6, $t9, 0xffc +/* 0FF0A8 7F0CA578 01D20019 */ multu $t6, $s2 +/* 0FF0AC 7F0CA57C 00001012 */ mflo $v0 +/* 0FF0B0 7F0CA580 0002C040 */ sll $t8, $v0, 1 +/* 0FF0B4 7F0CA584 100000BC */ b .L7F0CA878 +/* 0FF0B8 7F0CA588 03001025 */ move $v0, $t8 +.L7F0CA58C: +/* 0FF0BC 7F0CA58C 1A400039 */ blez $s2, .L7F0CA674 +/* 0FF0C0 7F0CA590 00003825 */ move $a3, $zero +/* 0FF0C4 7F0CA594 26040007 */ addiu $a0, $s0, 7 +/* 0FF0C8 7F0CA598 308F0FF8 */ andi $t7, $a0, 0xff8 +/* 0FF0CC 7F0CA59C 01E02025 */ move $a0, $t7 +.L7F0CA5A0: +/* 0FF0D0 7F0CA5A0 1A000031 */ blez $s0, .L7F0CA668 +/* 0FF0D4 7F0CA5A4 00002825 */ move $a1, $zero +/* 0FF0D8 7F0CA5A8 02120019 */ multu $s0, $s2 +/* 0FF0DC 7F0CA5AC 32060003 */ andi $a2, $s0, 3 +/* 0FF0E0 7F0CA5B0 00C05025 */ move $t2, $a2 +/* 0FF0E4 7F0CA5B4 02281021 */ addu $v0, $s1, $t0 +/* 0FF0E8 7F0CA5B8 00604821 */ addu $t1, $v1, $zero +/* 0FF0EC 7F0CA5BC 0000C812 */ mflo $t9 +/* 0FF0F0 7F0CA5C0 01197021 */ addu $t6, $t0, $t9 +/* 0FF0F4 7F0CA5C4 10C0000D */ beqz $a2, .L7F0CA5FC +/* 0FF0F8 7F0CA5C8 01D15821 */ addu $t3, $t6, $s1 +.L7F0CA5CC: +/* 0FF0FC 7F0CA5CC 904F0000 */ lbu $t7, ($v0) +/* 0FF100 7F0CA5D0 91780000 */ lbu $t8, ($t3) +/* 0FF104 7F0CA5D4 24A50001 */ addiu $a1, $a1, 1 +/* 0FF108 7F0CA5D8 000FC900 */ sll $t9, $t7, 4 +/* 0FF10C 7F0CA5DC 03197025 */ or $t6, $t8, $t9 +/* 0FF110 7F0CA5E0 A12E0000 */ sb $t6, ($t1) +/* 0FF114 7F0CA5E4 25080001 */ addiu $t0, $t0, 1 +/* 0FF118 7F0CA5E8 24420001 */ addiu $v0, $v0, 1 +/* 0FF11C 7F0CA5EC 256B0001 */ addiu $t3, $t3, 1 +/* 0FF120 7F0CA5F0 1545FFF6 */ bne $t2, $a1, .L7F0CA5CC +/* 0FF124 7F0CA5F4 25290001 */ addiu $t1, $t1, 1 +/* 0FF128 7F0CA5F8 10B0001B */ beq $a1, $s0, .L7F0CA668 +.L7F0CA5FC: +/* 0FF12C 7F0CA5FC 00654821 */ addu $t1, $v1, $a1 +.L7F0CA600: +/* 0FF130 7F0CA600 90580000 */ lbu $t8, ($v0) +/* 0FF134 7F0CA604 916F0000 */ lbu $t7, ($t3) +/* 0FF138 7F0CA608 24A50004 */ addiu $a1, $a1, 4 +/* 0FF13C 7F0CA60C 0018C900 */ sll $t9, $t8, 4 +/* 0FF140 7F0CA610 01F97025 */ or $t6, $t7, $t9 +/* 0FF144 7F0CA614 A12E0000 */ sb $t6, ($t1) +/* 0FF148 7F0CA618 904F0001 */ lbu $t7, 1($v0) +/* 0FF14C 7F0CA61C 91780001 */ lbu $t8, 1($t3) +/* 0FF150 7F0CA620 25080004 */ addiu $t0, $t0, 4 +/* 0FF154 7F0CA624 000FC900 */ sll $t9, $t7, 4 +/* 0FF158 7F0CA628 03197025 */ or $t6, $t8, $t9 +/* 0FF15C 7F0CA62C A12E0001 */ sb $t6, 1($t1) +/* 0FF160 7F0CA630 90580002 */ lbu $t8, 2($v0) +/* 0FF164 7F0CA634 916F0002 */ lbu $t7, 2($t3) +/* 0FF168 7F0CA638 24420004 */ addiu $v0, $v0, 4 +/* 0FF16C 7F0CA63C 0018C900 */ sll $t9, $t8, 4 +/* 0FF170 7F0CA640 01F97025 */ or $t6, $t7, $t9 +/* 0FF174 7F0CA644 A12E0002 */ sb $t6, 2($t1) +/* 0FF178 7F0CA648 904FFFFF */ lbu $t7, -1($v0) +/* 0FF17C 7F0CA64C 91780003 */ lbu $t8, 3($t3) +/* 0FF180 7F0CA650 256B0004 */ addiu $t3, $t3, 4 +/* 0FF184 7F0CA654 000FC900 */ sll $t9, $t7, 4 +/* 0FF188 7F0CA658 03197025 */ or $t6, $t8, $t9 +/* 0FF18C 7F0CA65C A12E0003 */ sb $t6, 3($t1) +/* 0FF190 7F0CA660 14B0FFE7 */ bne $a1, $s0, .L7F0CA600 +/* 0FF194 7F0CA664 25290004 */ addiu $t1, $t1, 4 +.L7F0CA668: +/* 0FF198 7F0CA668 24E70001 */ addiu $a3, $a3, 1 +/* 0FF19C 7F0CA66C 14F2FFCC */ bne $a3, $s2, .L7F0CA5A0 +/* 0FF1A0 7F0CA670 00641821 */ addu $v1, $v1, $a0 +.L7F0CA674: +/* 0FF1A4 7F0CA674 260F0007 */ addiu $t7, $s0, 7 +/* 0FF1A8 7F0CA678 31F80FF8 */ andi $t8, $t7, 0xff8 +/* 0FF1AC 7F0CA67C 03120019 */ multu $t8, $s2 +/* 0FF1B0 7F0CA680 00001012 */ mflo $v0 +/* 0FF1B4 7F0CA684 1000007D */ b .L7F0CA87C +/* 0FF1B8 7F0CA688 8FB00008 */ lw $s0, 8($sp) +.L7F0CA68C: +/* 0FF1BC 7F0CA68C 1A400024 */ blez $s2, .L7F0CA720 +/* 0FF1C0 7F0CA690 00003825 */ move $a3, $zero +/* 0FF1C4 7F0CA694 26040007 */ addiu $a0, $s0, 7 +/* 0FF1C8 7F0CA698 30990FF8 */ andi $t9, $a0, 0xff8 +/* 0FF1CC 7F0CA69C 03202025 */ move $a0, $t9 +.L7F0CA6A0: +/* 0FF1D0 7F0CA6A0 1A00001C */ blez $s0, .L7F0CA714 +/* 0FF1D4 7F0CA6A4 00002825 */ move $a1, $zero +/* 0FF1D8 7F0CA6A8 32060003 */ andi $a2, $s0, 3 +/* 0FF1DC 7F0CA6AC 10C0000B */ beqz $a2, .L7F0CA6DC +/* 0FF1E0 7F0CA6B0 02281021 */ addu $v0, $s1, $t0 +/* 0FF1E4 7F0CA6B4 00C05025 */ move $t2, $a2 +/* 0FF1E8 7F0CA6B8 00604821 */ addu $t1, $v1, $zero +.L7F0CA6BC: +/* 0FF1EC 7F0CA6BC 904E0000 */ lbu $t6, ($v0) +/* 0FF1F0 7F0CA6C0 24A50001 */ addiu $a1, $a1, 1 +/* 0FF1F4 7F0CA6C4 25080001 */ addiu $t0, $t0, 1 +/* 0FF1F8 7F0CA6C8 24420001 */ addiu $v0, $v0, 1 +/* 0FF1FC 7F0CA6CC 25290001 */ addiu $t1, $t1, 1 +/* 0FF200 7F0CA6D0 1545FFFA */ bne $t2, $a1, .L7F0CA6BC +/* 0FF204 7F0CA6D4 A12EFFFF */ sb $t6, -1($t1) +/* 0FF208 7F0CA6D8 10B0000E */ beq $a1, $s0, .L7F0CA714 +.L7F0CA6DC: +/* 0FF20C 7F0CA6DC 00654821 */ addu $t1, $v1, $a1 +.L7F0CA6E0: +/* 0FF210 7F0CA6E0 904F0000 */ lbu $t7, ($v0) +/* 0FF214 7F0CA6E4 24A50004 */ addiu $a1, $a1, 4 +/* 0FF218 7F0CA6E8 25080004 */ addiu $t0, $t0, 4 +/* 0FF21C 7F0CA6EC A12F0000 */ sb $t7, ($t1) +/* 0FF220 7F0CA6F0 90580001 */ lbu $t8, 1($v0) +/* 0FF224 7F0CA6F4 24420004 */ addiu $v0, $v0, 4 +/* 0FF228 7F0CA6F8 25290004 */ addiu $t1, $t1, 4 +/* 0FF22C 7F0CA6FC A138FFFD */ sb $t8, -3($t1) +/* 0FF230 7F0CA700 9059FFFE */ lbu $t9, -2($v0) +/* 0FF234 7F0CA704 A139FFFE */ sb $t9, -2($t1) +/* 0FF238 7F0CA708 904EFFFF */ lbu $t6, -1($v0) +/* 0FF23C 7F0CA70C 14B0FFF4 */ bne $a1, $s0, .L7F0CA6E0 +/* 0FF240 7F0CA710 A12EFFFF */ sb $t6, -1($t1) +.L7F0CA714: +/* 0FF244 7F0CA714 24E70001 */ addiu $a3, $a3, 1 +/* 0FF248 7F0CA718 14F2FFE1 */ bne $a3, $s2, .L7F0CA6A0 +/* 0FF24C 7F0CA71C 00641821 */ addu $v1, $v1, $a0 +.L7F0CA720: +/* 0FF250 7F0CA720 260F0007 */ addiu $t7, $s0, 7 +/* 0FF254 7F0CA724 31F80FF8 */ andi $t8, $t7, 0xff8 +/* 0FF258 7F0CA728 03120019 */ multu $t8, $s2 +/* 0FF25C 7F0CA72C 00001012 */ mflo $v0 +/* 0FF260 7F0CA730 10000052 */ b .L7F0CA87C +/* 0FF264 7F0CA734 8FB00008 */ lw $s0, 8($sp) +.L7F0CA738: +/* 0FF268 7F0CA738 1A400026 */ blez $s2, .L7F0CA7D4 +/* 0FF26C 7F0CA73C 00003825 */ move $a3, $zero +/* 0FF270 7F0CA740 2606000F */ addiu $a2, $s0, 0xf +/* 0FF274 7F0CA744 30D90FF0 */ andi $t9, $a2, 0xff0 +/* 0FF278 7F0CA748 03203025 */ move $a2, $t9 +/* 0FF27C 7F0CA74C 32090001 */ andi $t1, $s0, 1 +.L7F0CA750: +/* 0FF280 7F0CA750 1A00001B */ blez $s0, .L7F0CA7C0 +/* 0FF284 7F0CA754 00002825 */ move $a1, $zero +/* 0FF288 7F0CA758 02120019 */ multu $s0, $s2 +/* 0FF28C 7F0CA75C 02281021 */ addu $v0, $s1, $t0 +/* 0FF290 7F0CA760 00007012 */ mflo $t6 +/* 0FF294 7F0CA764 000E7880 */ sll $t7, $t6, 2 +/* 0FF298 7F0CA768 01EE7823 */ subu $t7, $t7, $t6 +/* 0FF29C 7F0CA76C 01E8C021 */ addu $t8, $t7, $t0 +/* 0FF2A0 7F0CA770 03112021 */ addu $a0, $t8, $s1 +.L7F0CA774: +/* 0FF2A4 7F0CA774 904E0000 */ lbu $t6, ($v0) +/* 0FF2A8 7F0CA778 90990001 */ lbu $t9, 1($a0) +/* 0FF2AC 7F0CA77C 25080002 */ addiu $t0, $t0, 2 +/* 0FF2B0 7F0CA780 000E7940 */ sll $t7, $t6, 5 +/* 0FF2B4 7F0CA784 908E0000 */ lbu $t6, ($a0) +/* 0FF2B8 7F0CA788 032FC025 */ or $t8, $t9, $t7 +/* 0FF2BC 7F0CA78C 24420002 */ addiu $v0, $v0, 2 +/* 0FF2C0 7F0CA790 000EC900 */ sll $t9, $t6, 4 +/* 0FF2C4 7F0CA794 904EFFFF */ lbu $t6, -1($v0) +/* 0FF2C8 7F0CA798 03197825 */ or $t7, $t8, $t9 +/* 0FF2CC 7F0CA79C 24840002 */ addiu $a0, $a0, 2 +/* 0FF2D0 7F0CA7A0 000EC040 */ sll $t8, $t6, 1 +/* 0FF2D4 7F0CA7A4 00057043 */ sra $t6, $a1, 1 +/* 0FF2D8 7F0CA7A8 24A50002 */ addiu $a1, $a1, 2 +/* 0FF2DC 7F0CA7AC 01F8C825 */ or $t9, $t7, $t8 +/* 0FF2E0 7F0CA7B0 00B0082A */ slt $at, $a1, $s0 +/* 0FF2E4 7F0CA7B4 006E7821 */ addu $t7, $v1, $t6 +/* 0FF2E8 7F0CA7B8 1420FFEE */ bnez $at, .L7F0CA774 +/* 0FF2EC 7F0CA7BC A1F90000 */ sb $t9, ($t7) +.L7F0CA7C0: +/* 0FF2F0 7F0CA7C0 11200002 */ beqz $t1, .L7F0CA7CC +/* 0FF2F4 7F0CA7C4 24E70001 */ addiu $a3, $a3, 1 +/* 0FF2F8 7F0CA7C8 2508FFFF */ addiu $t0, $t0, -1 +.L7F0CA7CC: +/* 0FF2FC 7F0CA7CC 14F2FFE0 */ bne $a3, $s2, .L7F0CA750 +/* 0FF300 7F0CA7D0 00661821 */ addu $v1, $v1, $a2 +.L7F0CA7D4: +/* 0FF304 7F0CA7D4 2618000F */ addiu $t8, $s0, 0xf +/* 0FF308 7F0CA7D8 330E0FF0 */ andi $t6, $t8, 0xff0 +/* 0FF30C 7F0CA7DC 000EC843 */ sra $t9, $t6, 1 +/* 0FF310 7F0CA7E0 03320019 */ multu $t9, $s2 +/* 0FF314 7F0CA7E4 00001012 */ mflo $v0 +/* 0FF318 7F0CA7E8 10000024 */ b .L7F0CA87C +/* 0FF31C 7F0CA7EC 8FB00008 */ lw $s0, 8($sp) +.L7F0CA7F0: +/* 0FF320 7F0CA7F0 1A400019 */ blez $s2, .L7F0CA858 +/* 0FF324 7F0CA7F4 00003825 */ move $a3, $zero +/* 0FF328 7F0CA7F8 2604000F */ addiu $a0, $s0, 0xf +/* 0FF32C 7F0CA7FC 308F0FF0 */ andi $t7, $a0, 0xff0 +/* 0FF330 7F0CA800 000F2043 */ sra $a0, $t7, 1 +/* 0FF334 7F0CA804 32090001 */ andi $t1, $s0, 1 +.L7F0CA808: +/* 0FF338 7F0CA808 1A00000E */ blez $s0, .L7F0CA844 +/* 0FF33C 7F0CA80C 00002825 */ move $a1, $zero +/* 0FF340 7F0CA810 02281021 */ addu $v0, $s1, $t0 +.L7F0CA814: +/* 0FF344 7F0CA814 90590000 */ lbu $t9, ($v0) +/* 0FF348 7F0CA818 904E0001 */ lbu $t6, 1($v0) +/* 0FF34C 7F0CA81C 25080002 */ addiu $t0, $t0, 2 +/* 0FF350 7F0CA820 00197900 */ sll $t7, $t9, 4 +/* 0FF354 7F0CA824 0005C843 */ sra $t9, $a1, 1 +/* 0FF358 7F0CA828 24A50002 */ addiu $a1, $a1, 2 +/* 0FF35C 7F0CA82C 01CFC025 */ or $t8, $t6, $t7 +/* 0FF360 7F0CA830 00B0082A */ slt $at, $a1, $s0 +/* 0FF364 7F0CA834 00797021 */ addu $t6, $v1, $t9 +/* 0FF368 7F0CA838 A1D80000 */ sb $t8, ($t6) +/* 0FF36C 7F0CA83C 1420FFF5 */ bnez $at, .L7F0CA814 +/* 0FF370 7F0CA840 24420002 */ addiu $v0, $v0, 2 +.L7F0CA844: +/* 0FF374 7F0CA844 11200002 */ beqz $t1, .L7F0CA850 +/* 0FF378 7F0CA848 24E70001 */ addiu $a3, $a3, 1 +/* 0FF37C 7F0CA84C 2508FFFF */ addiu $t0, $t0, -1 +.L7F0CA850: +/* 0FF380 7F0CA850 14F2FFED */ bne $a3, $s2, .L7F0CA808 +/* 0FF384 7F0CA854 00641821 */ addu $v1, $v1, $a0 +.L7F0CA858: +/* 0FF388 7F0CA858 260F000F */ addiu $t7, $s0, 0xf +/* 0FF38C 7F0CA85C 31F90FF0 */ andi $t9, $t7, 0xff0 +/* 0FF390 7F0CA860 0019C043 */ sra $t8, $t9, 1 +/* 0FF394 7F0CA864 03120019 */ multu $t8, $s2 +/* 0FF398 7F0CA868 00001012 */ mflo $v0 +/* 0FF39C 7F0CA86C 10000003 */ b .L7F0CA87C +/* 0FF3A0 7F0CA870 8FB00008 */ lw $s0, 8($sp) +def_7F0C9DF0: +.L7F0CA874: +/* 0FF3A4 7F0CA874 00001025 */ move $v0, $zero +.L7F0CA878: +/* 0FF3A8 7F0CA878 8FB00008 */ lw $s0, 8($sp) +.L7F0CA87C: +/* 0FF3AC 7F0CA87C 8FB1000C */ lw $s1, 0xc($sp) +/* 0FF3B0 7F0CA880 8FB20010 */ lw $s2, 0x10($sp) +/* 0FF3B4 7F0CA884 8FB30014 */ lw $s3, 0x14($sp) +/* 0FF3B8 7F0CA888 03E00008 */ jr $ra +/* 0FF3BC 7F0CA88C 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + + + +#ifdef NONMATCHING +void type5_generate_link_final_image(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BDE8*/ +glabel jpt_8005BDE8 +.word .L7F0CA908 +.word .L7F0CA9FC +.word .L7F0CA97C +.word .L7F0CAA78 +.word .L7F0CA9FC +.word .L7F0CAAFC +.word .L7F0CAB74 +.word .L7F0CAAFC +.word .L7F0CAB74 +.text +glabel type5_generate_link_final_image +/* 0FF3C0 7F0CA890 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0FF3C4 7F0CA894 AFB40028 */ sw $s4, 0x28($sp) +/* 0FF3C8 7F0CA898 0080A025 */ move $s4, $a0 +/* 0FF3CC 7F0CA89C AFBF003C */ sw $ra, 0x3c($sp) +/* 0FF3D0 7F0CA8A0 AFBE0038 */ sw $fp, 0x38($sp) +/* 0FF3D4 7F0CA8A4 AFB70034 */ sw $s7, 0x34($sp) +/* 0FF3D8 7F0CA8A8 AFB5002C */ sw $s5, 0x2c($sp) +/* 0FF3DC 7F0CA8AC AFB30024 */ sw $s3, 0x24($sp) +/* 0FF3E0 7F0CA8B0 00E09825 */ move $s3, $a3 +/* 0FF3E4 7F0CA8B4 AFB60030 */ sw $s6, 0x30($sp) +/* 0FF3E8 7F0CA8B8 AFB20020 */ sw $s2, 0x20($sp) +/* 0FF3EC 7F0CA8BC AFB1001C */ sw $s1, 0x1c($sp) +/* 0FF3F0 7F0CA8C0 AFB00018 */ sw $s0, 0x18($sp) +/* 0FF3F4 7F0CA8C4 AFA50044 */ sw $a1, 0x44($sp) +/* 0FF3F8 7F0CA8C8 00C0B825 */ move $s7, $a2 +/* 0FF3FC 7F0CA8CC 00C0F025 */ move $fp, $a2 +/* 0FF400 7F0CA8D0 00C0A825 */ move $s5, $a2 +/* 0FF404 7F0CA8D4 0FC32689 */ jal sub_GAME_7F0C9A24 +/* 0FF408 7F0CA8D8 8FA40050 */ lw $a0, 0x50($sp) +/* 0FF40C 7F0CA8DC 8FAE0054 */ lw $t6, 0x54($sp) +/* 0FF410 7F0CA8E0 00409025 */ move $s2, $v0 +/* 0FF414 7F0CA8E4 00001025 */ move $v0, $zero +/* 0FF418 7F0CA8E8 2DC10009 */ sltiu $at, $t6, 9 +/* 0FF41C 7F0CA8EC 102000CE */ beqz $at, .L7F0CAC28 +/* 0FF420 7F0CA8F0 000E7080 */ sll $t6, $t6, 2 +/* 0FF424 7F0CA8F4 3C018006 */ lui $at, %hi(jpt_8005BDE8) +/* 0FF428 7F0CA8F8 002E0821 */ addu $at, $at, $t6 +/* 0FF42C 7F0CA8FC 8C2EBDE8 */ lw $t6, %lo(jpt_8005BDE8)($at) +/* 0FF430 7F0CA900 01C00008 */ jr $t6 +/* 0FF434 7F0CA904 00000000 */ nop +.L7F0CA908: +/* 0FF438 7F0CA908 8FA30044 */ lw $v1, 0x44($sp) +/* 0FF43C 7F0CA90C 26950003 */ addiu $s5, $s4, 3 +/* 0FF440 7F0CA910 32AF0FFC */ andi $t7, $s5, 0xffc +/* 0FF444 7F0CA914 18600012 */ blez $v1, .L7F0CA960 +/* 0FF448 7F0CA918 0000B025 */ move $s6, $zero +/* 0FF44C 7F0CA91C 000FA880 */ sll $s5, $t7, 2 +.L7F0CA920: +/* 0FF450 7F0CA920 1A80000C */ blez $s4, .L7F0CA954 +/* 0FF454 7F0CA924 00008025 */ move $s0, $zero +/* 0FF458 7F0CA928 02E08825 */ move $s1, $s7 +.L7F0CA92C: +/* 0FF45C 7F0CA92C 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FF460 7F0CA930 02402025 */ move $a0, $s2 +/* 0FF464 7F0CA934 0002C880 */ sll $t9, $v0, 2 +/* 0FF468 7F0CA938 02794021 */ addu $t0, $s3, $t9 +/* 0FF46C 7F0CA93C 8D090000 */ lw $t1, ($t0) +/* 0FF470 7F0CA940 26100001 */ addiu $s0, $s0, 1 +/* 0FF474 7F0CA944 26310004 */ addiu $s1, $s1, 4 +/* 0FF478 7F0CA948 1614FFF8 */ bne $s0, $s4, .L7F0CA92C +/* 0FF47C 7F0CA94C AE29FFFC */ sw $t1, -4($s1) +/* 0FF480 7F0CA950 8FA30044 */ lw $v1, 0x44($sp) +.L7F0CA954: +/* 0FF484 7F0CA954 26D60001 */ addiu $s6, $s6, 1 +/* 0FF488 7F0CA958 16C3FFF1 */ bne $s6, $v1, .L7F0CA920 +/* 0FF48C 7F0CA95C 02F5B821 */ addu $s7, $s7, $s5 +.L7F0CA960: +/* 0FF490 7F0CA960 268A0003 */ addiu $t2, $s4, 3 +/* 0FF494 7F0CA964 314B0FFC */ andi $t3, $t2, 0xffc +/* 0FF498 7F0CA968 01630019 */ multu $t3, $v1 +/* 0FF49C 7F0CA96C 00001012 */ mflo $v0 +/* 0FF4A0 7F0CA970 00026080 */ sll $t4, $v0, 2 +/* 0FF4A4 7F0CA974 100000AC */ b .L7F0CAC28 +/* 0FF4A8 7F0CA978 01801025 */ move $v0, $t4 +.L7F0CA97C: +/* 0FF4AC 7F0CA97C 8FAD0044 */ lw $t5, 0x44($sp) +/* 0FF4B0 7F0CA980 26950003 */ addiu $s5, $s4, 3 +/* 0FF4B4 7F0CA984 32AE0FFC */ andi $t6, $s5, 0xffc +/* 0FF4B8 7F0CA988 19A00014 */ blez $t5, .L7F0CA9DC +/* 0FF4BC 7F0CA98C 0000B025 */ move $s6, $zero +/* 0FF4C0 7F0CA990 000EA880 */ sll $s5, $t6, 2 +.L7F0CA994: +/* 0FF4C4 7F0CA994 1A80000C */ blez $s4, .L7F0CA9C8 +/* 0FF4C8 7F0CA998 00008025 */ move $s0, $zero +/* 0FF4CC 7F0CA99C 02E08825 */ move $s1, $s7 +.L7F0CA9A0: +/* 0FF4D0 7F0CA9A0 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FF4D4 7F0CA9A4 02402025 */ move $a0, $s2 +/* 0FF4D8 7F0CA9A8 0002C080 */ sll $t8, $v0, 2 +/* 0FF4DC 7F0CA9AC 0278C821 */ addu $t9, $s3, $t8 +/* 0FF4E0 7F0CA9B0 8F280000 */ lw $t0, ($t9) +/* 0FF4E4 7F0CA9B4 26100001 */ addiu $s0, $s0, 1 +/* 0FF4E8 7F0CA9B8 26310004 */ addiu $s1, $s1, 4 +/* 0FF4EC 7F0CA9BC 00084A00 */ sll $t1, $t0, 8 +/* 0FF4F0 7F0CA9C0 1614FFF7 */ bne $s0, $s4, .L7F0CA9A0 +/* 0FF4F4 7F0CA9C4 AE29FFFC */ sw $t1, -4($s1) +.L7F0CA9C8: +/* 0FF4F8 7F0CA9C8 8FAA0044 */ lw $t2, 0x44($sp) +/* 0FF4FC 7F0CA9CC 26D60001 */ addiu $s6, $s6, 1 +/* 0FF500 7F0CA9D0 02F5B821 */ addu $s7, $s7, $s5 +/* 0FF504 7F0CA9D4 16CAFFEF */ bne $s6, $t2, .L7F0CA994 +/* 0FF508 7F0CA9D8 00000000 */ nop +.L7F0CA9DC: +/* 0FF50C 7F0CA9DC 8FAD0044 */ lw $t5, 0x44($sp) +/* 0FF510 7F0CA9E0 268B0003 */ addiu $t3, $s4, 3 +/* 0FF514 7F0CA9E4 316C0FFC */ andi $t4, $t3, 0xffc +/* 0FF518 7F0CA9E8 018D0019 */ multu $t4, $t5 +/* 0FF51C 7F0CA9EC 00001012 */ mflo $v0 +/* 0FF520 7F0CA9F0 00027080 */ sll $t6, $v0, 2 +/* 0FF524 7F0CA9F4 1000008C */ b .L7F0CAC28 +/* 0FF528 7F0CA9F8 01C01025 */ move $v0, $t6 +.L7F0CA9FC: +/* 0FF52C 7F0CA9FC 8FAF0044 */ lw $t7, 0x44($sp) +/* 0FF530 7F0CAA00 26950003 */ addiu $s5, $s4, 3 +/* 0FF534 7F0CAA04 32B80FFC */ andi $t8, $s5, 0xffc +/* 0FF538 7F0CAA08 19E00013 */ blez $t7, .L7F0CAA58 +/* 0FF53C 7F0CAA0C 0000B025 */ move $s6, $zero +/* 0FF540 7F0CAA10 0018A840 */ sll $s5, $t8, 1 +.L7F0CAA14: +/* 0FF544 7F0CAA14 1A80000B */ blez $s4, .L7F0CAA44 +/* 0FF548 7F0CAA18 00008025 */ move $s0, $zero +/* 0FF54C 7F0CAA1C 03C08825 */ move $s1, $fp +.L7F0CAA20: +/* 0FF550 7F0CAA20 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FF554 7F0CAA24 02402025 */ move $a0, $s2 +/* 0FF558 7F0CAA28 00024040 */ sll $t0, $v0, 1 +/* 0FF55C 7F0CAA2C 02684821 */ addu $t1, $s3, $t0 +/* 0FF560 7F0CAA30 952A0000 */ lhu $t2, ($t1) +/* 0FF564 7F0CAA34 26100001 */ addiu $s0, $s0, 1 +/* 0FF568 7F0CAA38 26310002 */ addiu $s1, $s1, 2 +/* 0FF56C 7F0CAA3C 1614FFF8 */ bne $s0, $s4, .L7F0CAA20 +/* 0FF570 7F0CAA40 A62AFFFE */ sh $t2, -2($s1) +.L7F0CAA44: +/* 0FF574 7F0CAA44 8FAB0044 */ lw $t3, 0x44($sp) +/* 0FF578 7F0CAA48 26D60001 */ addiu $s6, $s6, 1 +/* 0FF57C 7F0CAA4C 03D5F021 */ addu $fp, $fp, $s5 +/* 0FF580 7F0CAA50 16CBFFF0 */ bne $s6, $t3, .L7F0CAA14 +/* 0FF584 7F0CAA54 00000000 */ nop +.L7F0CAA58: +/* 0FF588 7F0CAA58 8FAE0044 */ lw $t6, 0x44($sp) +/* 0FF58C 7F0CAA5C 268C0003 */ addiu $t4, $s4, 3 +/* 0FF590 7F0CAA60 318D0FFC */ andi $t5, $t4, 0xffc +/* 0FF594 7F0CAA64 01AE0019 */ multu $t5, $t6 +/* 0FF598 7F0CAA68 00001012 */ mflo $v0 +/* 0FF59C 7F0CAA6C 00027840 */ sll $t7, $v0, 1 +/* 0FF5A0 7F0CAA70 1000006D */ b .L7F0CAC28 +/* 0FF5A4 7F0CAA74 01E01025 */ move $v0, $t7 +.L7F0CAA78: +/* 0FF5A8 7F0CAA78 8FB80044 */ lw $t8, 0x44($sp) +/* 0FF5AC 7F0CAA7C 26950003 */ addiu $s5, $s4, 3 +/* 0FF5B0 7F0CAA80 32B90FFC */ andi $t9, $s5, 0xffc +/* 0FF5B4 7F0CAA84 1B000015 */ blez $t8, .L7F0CAADC +/* 0FF5B8 7F0CAA88 0000B025 */ move $s6, $zero +/* 0FF5BC 7F0CAA8C 0019A840 */ sll $s5, $t9, 1 +.L7F0CAA90: +/* 0FF5C0 7F0CAA90 1A80000D */ blez $s4, .L7F0CAAC8 +/* 0FF5C4 7F0CAA94 00008025 */ move $s0, $zero +/* 0FF5C8 7F0CAA98 03C08825 */ move $s1, $fp +.L7F0CAA9C: +/* 0FF5CC 7F0CAA9C 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FF5D0 7F0CAAA0 02402025 */ move $a0, $s2 +/* 0FF5D4 7F0CAAA4 00024840 */ sll $t1, $v0, 1 +/* 0FF5D8 7F0CAAA8 02695021 */ addu $t2, $s3, $t1 +/* 0FF5DC 7F0CAAAC 954B0000 */ lhu $t3, ($t2) +/* 0FF5E0 7F0CAAB0 26100001 */ addiu $s0, $s0, 1 +/* 0FF5E4 7F0CAAB4 26310002 */ addiu $s1, $s1, 2 +/* 0FF5E8 7F0CAAB8 000B6040 */ sll $t4, $t3, 1 +/* 0FF5EC 7F0CAABC 358D0001 */ ori $t5, $t4, 1 +/* 0FF5F0 7F0CAAC0 1614FFF6 */ bne $s0, $s4, .L7F0CAA9C +/* 0FF5F4 7F0CAAC4 A62DFFFE */ sh $t5, -2($s1) +.L7F0CAAC8: +/* 0FF5F8 7F0CAAC8 8FAE0044 */ lw $t6, 0x44($sp) +/* 0FF5FC 7F0CAACC 26D60001 */ addiu $s6, $s6, 1 +/* 0FF600 7F0CAAD0 03D5F021 */ addu $fp, $fp, $s5 +/* 0FF604 7F0CAAD4 16CEFFEE */ bne $s6, $t6, .L7F0CAA90 +/* 0FF608 7F0CAAD8 00000000 */ nop +.L7F0CAADC: +/* 0FF60C 7F0CAADC 8FB90044 */ lw $t9, 0x44($sp) +/* 0FF610 7F0CAAE0 268F0003 */ addiu $t7, $s4, 3 +/* 0FF614 7F0CAAE4 31F80FFC */ andi $t8, $t7, 0xffc +/* 0FF618 7F0CAAE8 03190019 */ multu $t8, $t9 +/* 0FF61C 7F0CAAEC 00001012 */ mflo $v0 +/* 0FF620 7F0CAAF0 00024040 */ sll $t0, $v0, 1 +/* 0FF624 7F0CAAF4 1000004C */ b .L7F0CAC28 +/* 0FF628 7F0CAAF8 01001025 */ move $v0, $t0 +.L7F0CAAFC: +/* 0FF62C 7F0CAAFC 8FA90044 */ lw $t1, 0x44($sp) +/* 0FF630 7F0CAB00 26970007 */ addiu $s7, $s4, 7 +/* 0FF634 7F0CAB04 32EA0FF8 */ andi $t2, $s7, 0xff8 +/* 0FF638 7F0CAB08 19200013 */ blez $t1, .L7F0CAB58 +/* 0FF63C 7F0CAB0C 0000B025 */ move $s6, $zero +/* 0FF640 7F0CAB10 0140B825 */ move $s7, $t2 +.L7F0CAB14: +/* 0FF644 7F0CAB14 1A80000B */ blez $s4, .L7F0CAB44 +/* 0FF648 7F0CAB18 00008025 */ move $s0, $zero +/* 0FF64C 7F0CAB1C 02A08825 */ move $s1, $s5 +.L7F0CAB20: +/* 0FF650 7F0CAB20 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FF654 7F0CAB24 02402025 */ move $a0, $s2 +/* 0FF658 7F0CAB28 00025840 */ sll $t3, $v0, 1 +/* 0FF65C 7F0CAB2C 026B6021 */ addu $t4, $s3, $t3 +/* 0FF660 7F0CAB30 958D0000 */ lhu $t5, ($t4) +/* 0FF664 7F0CAB34 26100001 */ addiu $s0, $s0, 1 +/* 0FF668 7F0CAB38 26310001 */ addiu $s1, $s1, 1 +/* 0FF66C 7F0CAB3C 1614FFF8 */ bne $s0, $s4, .L7F0CAB20 +/* 0FF670 7F0CAB40 A22DFFFF */ sb $t5, -1($s1) +.L7F0CAB44: +/* 0FF674 7F0CAB44 8FAE0044 */ lw $t6, 0x44($sp) +/* 0FF678 7F0CAB48 26D60001 */ addiu $s6, $s6, 1 +/* 0FF67C 7F0CAB4C 02B7A821 */ addu $s5, $s5, $s7 +/* 0FF680 7F0CAB50 16CEFFF0 */ bne $s6, $t6, .L7F0CAB14 +/* 0FF684 7F0CAB54 00000000 */ nop +.L7F0CAB58: +/* 0FF688 7F0CAB58 8FB90044 */ lw $t9, 0x44($sp) +/* 0FF68C 7F0CAB5C 268F0007 */ addiu $t7, $s4, 7 +/* 0FF690 7F0CAB60 31F80FF8 */ andi $t8, $t7, 0xff8 +/* 0FF694 7F0CAB64 03190019 */ multu $t8, $t9 +/* 0FF698 7F0CAB68 00001012 */ mflo $v0 +/* 0FF69C 7F0CAB6C 1000002F */ b .L7F0CAC2C +/* 0FF6A0 7F0CAB70 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0CAB74: +/* 0FF6A4 7F0CAB74 8FA80044 */ lw $t0, 0x44($sp) +/* 0FF6A8 7F0CAB78 2697000F */ addiu $s7, $s4, 0xf +/* 0FF6AC 7F0CAB7C 32E90FF0 */ andi $t1, $s7, 0xff0 +/* 0FF6B0 7F0CAB80 19000021 */ blez $t0, .L7F0CAC08 +/* 0FF6B4 7F0CAB84 0000B025 */ move $s6, $zero +/* 0FF6B8 7F0CAB88 0009B843 */ sra $s7, $t1, 1 +.L7F0CAB8C: +/* 0FF6BC 7F0CAB8C 1A800019 */ blez $s4, .L7F0CABF4 +/* 0FF6C0 7F0CAB90 00008025 */ move $s0, $zero +.L7F0CAB94: +/* 0FF6C4 7F0CAB94 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FF6C8 7F0CAB98 02402025 */ move $a0, $s2 +/* 0FF6CC 7F0CAB9C 00026040 */ sll $t4, $v0, 1 +/* 0FF6D0 7F0CABA0 026C6821 */ addu $t5, $s3, $t4 +/* 0FF6D4 7F0CABA4 95AE0000 */ lhu $t6, ($t5) +/* 0FF6D8 7F0CABA8 00105843 */ sra $t3, $s0, 1 +/* 0FF6DC 7F0CABAC 26180001 */ addiu $t8, $s0, 1 +/* 0FF6E0 7F0CABB0 02AB8821 */ addu $s1, $s5, $t3 +/* 0FF6E4 7F0CABB4 0314082A */ slt $at, $t8, $s4 +/* 0FF6E8 7F0CABB8 000E7900 */ sll $t7, $t6, 4 +/* 0FF6EC 7F0CABBC 10200009 */ beqz $at, .L7F0CABE4 +/* 0FF6F0 7F0CABC0 A22F0000 */ sb $t7, ($s1) +/* 0FF6F4 7F0CABC4 0FC32FCB */ jal sub_GAME_7F0CBF2C +/* 0FF6F8 7F0CABC8 02402025 */ move $a0, $s2 +/* 0FF6FC 7F0CABCC 00024040 */ sll $t0, $v0, 1 +/* 0FF700 7F0CABD0 02684821 */ addu $t1, $s3, $t0 +/* 0FF704 7F0CABD4 912A0001 */ lbu $t2, 1($t1) +/* 0FF708 7F0CABD8 92390000 */ lbu $t9, ($s1) +/* 0FF70C 7F0CABDC 032A5825 */ or $t3, $t9, $t2 +/* 0FF710 7F0CABE0 A22B0000 */ sb $t3, ($s1) +.L7F0CABE4: +/* 0FF714 7F0CABE4 26100002 */ addiu $s0, $s0, 2 +/* 0FF718 7F0CABE8 0214082A */ slt $at, $s0, $s4 +/* 0FF71C 7F0CABEC 1420FFE9 */ bnez $at, .L7F0CAB94 +/* 0FF720 7F0CABF0 00000000 */ nop +.L7F0CABF4: +/* 0FF724 7F0CABF4 8FAC0044 */ lw $t4, 0x44($sp) +/* 0FF728 7F0CABF8 26D60001 */ addiu $s6, $s6, 1 +/* 0FF72C 7F0CABFC 02B7A821 */ addu $s5, $s5, $s7 +/* 0FF730 7F0CAC00 16CCFFE2 */ bne $s6, $t4, .L7F0CAB8C +/* 0FF734 7F0CAC04 00000000 */ nop +.L7F0CAC08: +/* 0FF738 7F0CAC08 8FB80044 */ lw $t8, 0x44($sp) +/* 0FF73C 7F0CAC0C 268D000F */ addiu $t5, $s4, 0xf +/* 0FF740 7F0CAC10 31AE0FF0 */ andi $t6, $t5, 0xff0 +/* 0FF744 7F0CAC14 000E7843 */ sra $t7, $t6, 1 +/* 0FF748 7F0CAC18 01F80019 */ multu $t7, $t8 +/* 0FF74C 7F0CAC1C 00001012 */ mflo $v0 +/* 0FF750 7F0CAC20 10000002 */ b .L7F0CAC2C +/* 0FF754 7F0CAC24 8FBF003C */ lw $ra, 0x3c($sp) +def_7F0CA900: +.L7F0CAC28: +/* 0FF758 7F0CAC28 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0CAC2C: +/* 0FF75C 7F0CAC2C 8FB00018 */ lw $s0, 0x18($sp) +/* 0FF760 7F0CAC30 8FB1001C */ lw $s1, 0x1c($sp) +/* 0FF764 7F0CAC34 8FB20020 */ lw $s2, 0x20($sp) +/* 0FF768 7F0CAC38 8FB30024 */ lw $s3, 0x24($sp) +/* 0FF76C 7F0CAC3C 8FB40028 */ lw $s4, 0x28($sp) +/* 0FF770 7F0CAC40 8FB5002C */ lw $s5, 0x2c($sp) +/* 0FF774 7F0CAC44 8FB60030 */ lw $s6, 0x30($sp) +/* 0FF778 7F0CAC48 8FB70034 */ lw $s7, 0x34($sp) +/* 0FF77C 7F0CAC4C 8FBE0038 */ lw $fp, 0x38($sp) +/* 0FF780 7F0CAC50 03E00008 */ jr $ra +/* 0FF784 7F0CAC54 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void type6_7_generate_link_final_image(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BE0C*/ +glabel jpt_8005BE0C +.word .L7F0CACC4 +.word .L7F0CB0AC +.word .L7F0CAE90 +.word .L7F0CB26C +.word .L7F0CB0AC +.word .L7F0CB3C4 +.word .L7F0CB584 +.word .L7F0CB3C4 +.word .L7F0CB584 +.text +glabel type6_7_generate_link_final_image +/* 0FF788 7F0CAC58 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0FF78C 7F0CAC5C AFB00004 */ sw $s0, 4($sp) +/* 0FF790 7F0CAC60 8FB0003C */ lw $s0, 0x3c($sp) +/* 0FF794 7F0CAC64 AFB2000C */ sw $s2, 0xc($sp) +/* 0FF798 7F0CAC68 AFB10008 */ sw $s1, 8($sp) +/* 0FF79C 7F0CAC6C 2A010101 */ slti $at, $s0, 0x101 +/* 0FF7A0 7F0CAC70 00A08825 */ move $s1, $a1 +/* 0FF7A4 7F0CAC74 00C09025 */ move $s2, $a2 +/* 0FF7A8 7F0CAC78 AFA40028 */ sw $a0, 0x28($sp) +/* 0FF7AC 7F0CAC7C 00E04825 */ move $t1, $a3 +/* 0FF7B0 7F0CAC80 00E05025 */ move $t2, $a3 +/* 0FF7B4 7F0CAC84 10200003 */ beqz $at, .L7F0CAC94 +/* 0FF7B8 7F0CAC88 00E05825 */ move $t3, $a3 +/* 0FF7BC 7F0CAC8C 10000003 */ b .L7F0CAC9C +/* 0FF7C0 7F0CAC90 8FA50010 */ lw $a1, 0x10($sp) +.L7F0CAC94: +/* 0FF7C4 7F0CAC94 8FA50028 */ lw $a1, 0x28($sp) +/* 0FF7C8 7F0CAC98 8FA40014 */ lw $a0, 0x14($sp) +.L7F0CAC9C: +/* 0FF7CC 7F0CAC9C 8FAE0040 */ lw $t6, 0x40($sp) +/* 0FF7D0 7F0CACA0 00001025 */ move $v0, $zero +/* 0FF7D4 7F0CACA4 2DC10009 */ sltiu $at, $t6, 9 +/* 0FF7D8 7F0CACA8 1020026F */ beqz $at, .L7F0CB668 +/* 0FF7DC 7F0CACAC 000E7080 */ sll $t6, $t6, 2 +/* 0FF7E0 7F0CACB0 3C018006 */ lui $at, %hi(jpt_8005BE0C) +/* 0FF7E4 7F0CACB4 002E0821 */ addu $at, $at, $t6 +/* 0FF7E8 7F0CACB8 8C2EBE0C */ lw $t6, %lo(jpt_8005BE0C)($at) +/* 0FF7EC 7F0CACBC 01C00008 */ jr $t6 +/* 0FF7F0 7F0CACC0 00000000 */ nop +.L7F0CACC4: +/* 0FF7F4 7F0CACC4 1A40006B */ blez $s2, .L7F0CAE74 +/* 0FF7F8 7F0CACC8 00003825 */ move $a3, $zero +/* 0FF7FC 7F0CACCC 262C0003 */ addiu $t4, $s1, 3 +/* 0FF800 7F0CACD0 318F0FFC */ andi $t7, $t4, 0xffc +/* 0FF804 7F0CACD4 000F6080 */ sll $t4, $t7, 2 +/* 0FF808 7F0CACD8 00114040 */ sll $t0, $s1, 1 +/* 0FF80C 7F0CACDC 8FA30038 */ lw $v1, 0x38($sp) +.L7F0CACE0: +/* 0FF810 7F0CACE0 1A20005F */ blez $s1, .L7F0CAE60 +/* 0FF814 7F0CACE4 00001025 */ move $v0, $zero +/* 0FF818 7F0CACE8 32260003 */ andi $a2, $s1, 3 +/* 0FF81C 7F0CACEC 10C00017 */ beqz $a2, .L7F0CAD4C +/* 0FF820 7F0CACF0 00C05825 */ move $t3, $a2 +/* 0FF824 7F0CACF4 0000C880 */ sll $t9, $zero, 2 +/* 0FF828 7F0CACF8 01395021 */ addu $t2, $t1, $t9 +.L7F0CACFC: +/* 0FF82C 7F0CACFC 2A010101 */ slti $at, $s0, 0x101 +/* 0FF830 7F0CAD00 10200008 */ beqz $at, .L7F0CAD24 +/* 0FF834 7F0CAD04 00027840 */ sll $t7, $v0, 1 +/* 0FF838 7F0CAD08 00827021 */ addu $t6, $a0, $v0 +/* 0FF83C 7F0CAD0C 91CF0000 */ lbu $t7, ($t6) +/* 0FF840 7F0CAD10 000FC080 */ sll $t8, $t7, 2 +/* 0FF844 7F0CAD14 0078C821 */ addu $t9, $v1, $t8 +/* 0FF848 7F0CAD18 8F2E0000 */ lw $t6, ($t9) +/* 0FF84C 7F0CAD1C 10000007 */ b .L7F0CAD3C +/* 0FF850 7F0CAD20 AD4E0000 */ sw $t6, ($t2) +.L7F0CAD24: +/* 0FF854 7F0CAD24 00AFC021 */ addu $t8, $a1, $t7 +/* 0FF858 7F0CAD28 97190000 */ lhu $t9, ($t8) +/* 0FF85C 7F0CAD2C 00197080 */ sll $t6, $t9, 2 +/* 0FF860 7F0CAD30 006E7821 */ addu $t7, $v1, $t6 +/* 0FF864 7F0CAD34 8DF80000 */ lw $t8, ($t7) +/* 0FF868 7F0CAD38 AD580000 */ sw $t8, ($t2) +.L7F0CAD3C: +/* 0FF86C 7F0CAD3C 24420001 */ addiu $v0, $v0, 1 +/* 0FF870 7F0CAD40 1562FFEE */ bne $t3, $v0, .L7F0CACFC +/* 0FF874 7F0CAD44 254A0004 */ addiu $t2, $t2, 4 +/* 0FF878 7F0CAD48 10510045 */ beq $v0, $s1, .L7F0CAE60 +.L7F0CAD4C: +/* 0FF87C 7F0CAD4C 0002C880 */ sll $t9, $v0, 2 +/* 0FF880 7F0CAD50 01395021 */ addu $t2, $t1, $t9 +.L7F0CAD54: +/* 0FF884 7F0CAD54 2A010101 */ slti $at, $s0, 0x101 +/* 0FF888 7F0CAD58 10200008 */ beqz $at, .L7F0CAD7C +/* 0FF88C 7F0CAD5C 00027840 */ sll $t7, $v0, 1 +/* 0FF890 7F0CAD60 00827021 */ addu $t6, $a0, $v0 +/* 0FF894 7F0CAD64 91CF0000 */ lbu $t7, ($t6) +/* 0FF898 7F0CAD68 000FC080 */ sll $t8, $t7, 2 +/* 0FF89C 7F0CAD6C 0078C821 */ addu $t9, $v1, $t8 +/* 0FF8A0 7F0CAD70 8F2E0000 */ lw $t6, ($t9) +/* 0FF8A4 7F0CAD74 10000007 */ b .L7F0CAD94 +/* 0FF8A8 7F0CAD78 AD4E0000 */ sw $t6, ($t2) +.L7F0CAD7C: +/* 0FF8AC 7F0CAD7C 00AFC021 */ addu $t8, $a1, $t7 +/* 0FF8B0 7F0CAD80 97190000 */ lhu $t9, ($t8) +/* 0FF8B4 7F0CAD84 00197080 */ sll $t6, $t9, 2 +/* 0FF8B8 7F0CAD88 006E7821 */ addu $t7, $v1, $t6 +/* 0FF8BC 7F0CAD8C 8DF80000 */ lw $t8, ($t7) +/* 0FF8C0 7F0CAD90 AD580000 */ sw $t8, ($t2) +.L7F0CAD94: +/* 0FF8C4 7F0CAD94 2A010101 */ slti $at, $s0, 0x101 +/* 0FF8C8 7F0CAD98 10200008 */ beqz $at, .L7F0CADBC +/* 0FF8CC 7F0CAD9C 00027040 */ sll $t6, $v0, 1 +/* 0FF8D0 7F0CADA0 0082C821 */ addu $t9, $a0, $v0 +/* 0FF8D4 7F0CADA4 932E0001 */ lbu $t6, 1($t9) +/* 0FF8D8 7F0CADA8 000E7880 */ sll $t7, $t6, 2 +/* 0FF8DC 7F0CADAC 006FC021 */ addu $t8, $v1, $t7 +/* 0FF8E0 7F0CADB0 8F190000 */ lw $t9, ($t8) +/* 0FF8E4 7F0CADB4 10000007 */ b .L7F0CADD4 +/* 0FF8E8 7F0CADB8 AD590004 */ sw $t9, 4($t2) +.L7F0CADBC: +/* 0FF8EC 7F0CADBC 00AE7821 */ addu $t7, $a1, $t6 +/* 0FF8F0 7F0CADC0 95F80002 */ lhu $t8, 2($t7) +/* 0FF8F4 7F0CADC4 0018C880 */ sll $t9, $t8, 2 +/* 0FF8F8 7F0CADC8 00797021 */ addu $t6, $v1, $t9 +/* 0FF8FC 7F0CADCC 8DCF0000 */ lw $t7, ($t6) +/* 0FF900 7F0CADD0 AD4F0004 */ sw $t7, 4($t2) +.L7F0CADD4: +/* 0FF904 7F0CADD4 2A010101 */ slti $at, $s0, 0x101 +/* 0FF908 7F0CADD8 10200008 */ beqz $at, .L7F0CADFC +/* 0FF90C 7F0CADDC 0002C840 */ sll $t9, $v0, 1 +/* 0FF910 7F0CADE0 0082C021 */ addu $t8, $a0, $v0 +/* 0FF914 7F0CADE4 93190002 */ lbu $t9, 2($t8) +/* 0FF918 7F0CADE8 00197080 */ sll $t6, $t9, 2 +/* 0FF91C 7F0CADEC 006E7821 */ addu $t7, $v1, $t6 +/* 0FF920 7F0CADF0 8DF80000 */ lw $t8, ($t7) +/* 0FF924 7F0CADF4 10000007 */ b .L7F0CAE14 +/* 0FF928 7F0CADF8 AD580008 */ sw $t8, 8($t2) +.L7F0CADFC: +/* 0FF92C 7F0CADFC 00B97021 */ addu $t6, $a1, $t9 +/* 0FF930 7F0CAE00 95CF0004 */ lhu $t7, 4($t6) +/* 0FF934 7F0CAE04 000FC080 */ sll $t8, $t7, 2 +/* 0FF938 7F0CAE08 0078C821 */ addu $t9, $v1, $t8 +/* 0FF93C 7F0CAE0C 8F2E0000 */ lw $t6, ($t9) +/* 0FF940 7F0CAE10 AD4E0008 */ sw $t6, 8($t2) +.L7F0CAE14: +/* 0FF944 7F0CAE14 2A010101 */ slti $at, $s0, 0x101 +/* 0FF948 7F0CAE18 10200008 */ beqz $at, .L7F0CAE3C +/* 0FF94C 7F0CAE1C 0002C040 */ sll $t8, $v0, 1 +/* 0FF950 7F0CAE20 00827821 */ addu $t7, $a0, $v0 +/* 0FF954 7F0CAE24 91F80003 */ lbu $t8, 3($t7) +/* 0FF958 7F0CAE28 0018C880 */ sll $t9, $t8, 2 +/* 0FF95C 7F0CAE2C 00797021 */ addu $t6, $v1, $t9 +/* 0FF960 7F0CAE30 8DCF0000 */ lw $t7, ($t6) +/* 0FF964 7F0CAE34 10000007 */ b .L7F0CAE54 +/* 0FF968 7F0CAE38 AD4F000C */ sw $t7, 0xc($t2) +.L7F0CAE3C: +/* 0FF96C 7F0CAE3C 00B8C821 */ addu $t9, $a1, $t8 +/* 0FF970 7F0CAE40 972E0006 */ lhu $t6, 6($t9) +/* 0FF974 7F0CAE44 000E7880 */ sll $t7, $t6, 2 +/* 0FF978 7F0CAE48 006FC021 */ addu $t8, $v1, $t7 +/* 0FF97C 7F0CAE4C 8F190000 */ lw $t9, ($t8) +/* 0FF980 7F0CAE50 AD59000C */ sw $t9, 0xc($t2) +.L7F0CAE54: +/* 0FF984 7F0CAE54 24420004 */ addiu $v0, $v0, 4 +/* 0FF988 7F0CAE58 1451FFBE */ bne $v0, $s1, .L7F0CAD54 +/* 0FF98C 7F0CAE5C 254A0010 */ addiu $t2, $t2, 0x10 +.L7F0CAE60: +/* 0FF990 7F0CAE60 24E70001 */ addiu $a3, $a3, 1 +/* 0FF994 7F0CAE64 012C4821 */ addu $t1, $t1, $t4 +/* 0FF998 7F0CAE68 00912021 */ addu $a0, $a0, $s1 +/* 0FF99C 7F0CAE6C 14F2FF9C */ bne $a3, $s2, .L7F0CACE0 +/* 0FF9A0 7F0CAE70 00A82821 */ addu $a1, $a1, $t0 +.L7F0CAE74: +/* 0FF9A4 7F0CAE74 262E0003 */ addiu $t6, $s1, 3 +/* 0FF9A8 7F0CAE78 31CF0FFC */ andi $t7, $t6, 0xffc +/* 0FF9AC 7F0CAE7C 01F20019 */ multu $t7, $s2 +/* 0FF9B0 7F0CAE80 00001012 */ mflo $v0 +/* 0FF9B4 7F0CAE84 0002C080 */ sll $t8, $v0, 2 +/* 0FF9B8 7F0CAE88 100001F7 */ b .L7F0CB668 +/* 0FF9BC 7F0CAE8C 03001025 */ move $v0, $t8 +.L7F0CAE90: +/* 0FF9C0 7F0CAE90 1A40007F */ blez $s2, .L7F0CB090 +/* 0FF9C4 7F0CAE94 00003825 */ move $a3, $zero +/* 0FF9C8 7F0CAE98 262C0003 */ addiu $t4, $s1, 3 +/* 0FF9CC 7F0CAE9C 31990FFC */ andi $t9, $t4, 0xffc +/* 0FF9D0 7F0CAEA0 00196080 */ sll $t4, $t9, 2 +/* 0FF9D4 7F0CAEA4 00114040 */ sll $t0, $s1, 1 +/* 0FF9D8 7F0CAEA8 8FA30038 */ lw $v1, 0x38($sp) +.L7F0CAEAC: +/* 0FF9DC 7F0CAEAC 1A200073 */ blez $s1, .L7F0CB07C +/* 0FF9E0 7F0CAEB0 00001025 */ move $v0, $zero +/* 0FF9E4 7F0CAEB4 32260003 */ andi $a2, $s1, 3 +/* 0FF9E8 7F0CAEB8 10C0001B */ beqz $a2, .L7F0CAF28 +/* 0FF9EC 7F0CAEBC 00C05825 */ move $t3, $a2 +/* 0FF9F0 7F0CAEC0 00007880 */ sll $t7, $zero, 2 +/* 0FF9F4 7F0CAEC4 012F5021 */ addu $t2, $t1, $t7 +.L7F0CAEC8: +/* 0FF9F8 7F0CAEC8 2A010101 */ slti $at, $s0, 0x101 +/* 0FF9FC 7F0CAECC 1020000A */ beqz $at, .L7F0CAEF8 +/* 0FFA00 7F0CAED0 00027840 */ sll $t7, $v0, 1 +/* 0FFA04 7F0CAED4 0082C021 */ addu $t8, $a0, $v0 +/* 0FFA08 7F0CAED8 93190000 */ lbu $t9, ($t8) +/* 0FFA0C 7F0CAEDC 00197080 */ sll $t6, $t9, 2 +/* 0FFA10 7F0CAEE0 006E7821 */ addu $t7, $v1, $t6 +/* 0FFA14 7F0CAEE4 8DF80000 */ lw $t8, ($t7) +/* 0FFA18 7F0CAEE8 0018CA00 */ sll $t9, $t8, 8 +/* 0FFA1C 7F0CAEEC 372E00FF */ ori $t6, $t9, 0xff +/* 0FFA20 7F0CAEF0 10000009 */ b .L7F0CAF18 +/* 0FFA24 7F0CAEF4 AD4E0000 */ sw $t6, ($t2) +.L7F0CAEF8: +/* 0FFA28 7F0CAEF8 00AFC021 */ addu $t8, $a1, $t7 +/* 0FFA2C 7F0CAEFC 97190000 */ lhu $t9, ($t8) +/* 0FFA30 7F0CAF00 00197080 */ sll $t6, $t9, 2 +/* 0FFA34 7F0CAF04 006E7821 */ addu $t7, $v1, $t6 +/* 0FFA38 7F0CAF08 8DF80000 */ lw $t8, ($t7) +/* 0FFA3C 7F0CAF0C 0018CA00 */ sll $t9, $t8, 8 +/* 0FFA40 7F0CAF10 372E00FF */ ori $t6, $t9, 0xff +/* 0FFA44 7F0CAF14 AD4E0000 */ sw $t6, ($t2) +.L7F0CAF18: +/* 0FFA48 7F0CAF18 24420001 */ addiu $v0, $v0, 1 +/* 0FFA4C 7F0CAF1C 1562FFEA */ bne $t3, $v0, .L7F0CAEC8 +/* 0FFA50 7F0CAF20 254A0004 */ addiu $t2, $t2, 4 +/* 0FFA54 7F0CAF24 10510055 */ beq $v0, $s1, .L7F0CB07C +.L7F0CAF28: +/* 0FFA58 7F0CAF28 00027880 */ sll $t7, $v0, 2 +/* 0FFA5C 7F0CAF2C 012F5021 */ addu $t2, $t1, $t7 +.L7F0CAF30: +/* 0FFA60 7F0CAF30 2A010101 */ slti $at, $s0, 0x101 +/* 0FFA64 7F0CAF34 1020000A */ beqz $at, .L7F0CAF60 +/* 0FFA68 7F0CAF38 00027840 */ sll $t7, $v0, 1 +/* 0FFA6C 7F0CAF3C 0082C021 */ addu $t8, $a0, $v0 +/* 0FFA70 7F0CAF40 93190000 */ lbu $t9, ($t8) +/* 0FFA74 7F0CAF44 00197080 */ sll $t6, $t9, 2 +/* 0FFA78 7F0CAF48 006E7821 */ addu $t7, $v1, $t6 +/* 0FFA7C 7F0CAF4C 8DF80000 */ lw $t8, ($t7) +/* 0FFA80 7F0CAF50 0018CA00 */ sll $t9, $t8, 8 +/* 0FFA84 7F0CAF54 372E00FF */ ori $t6, $t9, 0xff +/* 0FFA88 7F0CAF58 10000009 */ b .L7F0CAF80 +/* 0FFA8C 7F0CAF5C AD4E0000 */ sw $t6, ($t2) +.L7F0CAF60: +/* 0FFA90 7F0CAF60 00AFC021 */ addu $t8, $a1, $t7 +/* 0FFA94 7F0CAF64 97190000 */ lhu $t9, ($t8) +/* 0FFA98 7F0CAF68 00197080 */ sll $t6, $t9, 2 +/* 0FFA9C 7F0CAF6C 006E7821 */ addu $t7, $v1, $t6 +/* 0FFAA0 7F0CAF70 8DF80000 */ lw $t8, ($t7) +/* 0FFAA4 7F0CAF74 0018CA00 */ sll $t9, $t8, 8 +/* 0FFAA8 7F0CAF78 372E00FF */ ori $t6, $t9, 0xff +/* 0FFAAC 7F0CAF7C AD4E0000 */ sw $t6, ($t2) +.L7F0CAF80: +/* 0FFAB0 7F0CAF80 2A010101 */ slti $at, $s0, 0x101 +/* 0FFAB4 7F0CAF84 1020000A */ beqz $at, .L7F0CAFB0 +/* 0FFAB8 7F0CAF88 00027040 */ sll $t6, $v0, 1 +/* 0FFABC 7F0CAF8C 00827821 */ addu $t7, $a0, $v0 +/* 0FFAC0 7F0CAF90 91F80001 */ lbu $t8, 1($t7) +/* 0FFAC4 7F0CAF94 0018C880 */ sll $t9, $t8, 2 +/* 0FFAC8 7F0CAF98 00797021 */ addu $t6, $v1, $t9 +/* 0FFACC 7F0CAF9C 8DCF0000 */ lw $t7, ($t6) +/* 0FFAD0 7F0CAFA0 000FC200 */ sll $t8, $t7, 8 +/* 0FFAD4 7F0CAFA4 371900FF */ ori $t9, $t8, 0xff +/* 0FFAD8 7F0CAFA8 10000009 */ b .L7F0CAFD0 +/* 0FFADC 7F0CAFAC AD590004 */ sw $t9, 4($t2) +.L7F0CAFB0: +/* 0FFAE0 7F0CAFB0 00AE7821 */ addu $t7, $a1, $t6 +/* 0FFAE4 7F0CAFB4 95F80002 */ lhu $t8, 2($t7) +/* 0FFAE8 7F0CAFB8 0018C880 */ sll $t9, $t8, 2 +/* 0FFAEC 7F0CAFBC 00797021 */ addu $t6, $v1, $t9 +/* 0FFAF0 7F0CAFC0 8DCF0000 */ lw $t7, ($t6) +/* 0FFAF4 7F0CAFC4 000FC200 */ sll $t8, $t7, 8 +/* 0FFAF8 7F0CAFC8 371900FF */ ori $t9, $t8, 0xff +/* 0FFAFC 7F0CAFCC AD590004 */ sw $t9, 4($t2) +.L7F0CAFD0: +/* 0FFB00 7F0CAFD0 2A010101 */ slti $at, $s0, 0x101 +/* 0FFB04 7F0CAFD4 1020000A */ beqz $at, .L7F0CB000 +/* 0FFB08 7F0CAFD8 0002C840 */ sll $t9, $v0, 1 +/* 0FFB0C 7F0CAFDC 00827021 */ addu $t6, $a0, $v0 +/* 0FFB10 7F0CAFE0 91CF0002 */ lbu $t7, 2($t6) +/* 0FFB14 7F0CAFE4 000FC080 */ sll $t8, $t7, 2 +/* 0FFB18 7F0CAFE8 0078C821 */ addu $t9, $v1, $t8 +/* 0FFB1C 7F0CAFEC 8F2E0000 */ lw $t6, ($t9) +/* 0FFB20 7F0CAFF0 000E7A00 */ sll $t7, $t6, 8 +/* 0FFB24 7F0CAFF4 35F800FF */ ori $t8, $t7, 0xff +/* 0FFB28 7F0CAFF8 10000009 */ b .L7F0CB020 +/* 0FFB2C 7F0CAFFC AD580008 */ sw $t8, 8($t2) +.L7F0CB000: +/* 0FFB30 7F0CB000 00B97021 */ addu $t6, $a1, $t9 +/* 0FFB34 7F0CB004 95CF0004 */ lhu $t7, 4($t6) +/* 0FFB38 7F0CB008 000FC080 */ sll $t8, $t7, 2 +/* 0FFB3C 7F0CB00C 0078C821 */ addu $t9, $v1, $t8 +/* 0FFB40 7F0CB010 8F2E0000 */ lw $t6, ($t9) +/* 0FFB44 7F0CB014 000E7A00 */ sll $t7, $t6, 8 +/* 0FFB48 7F0CB018 35F800FF */ ori $t8, $t7, 0xff +/* 0FFB4C 7F0CB01C AD580008 */ sw $t8, 8($t2) +.L7F0CB020: +/* 0FFB50 7F0CB020 2A010101 */ slti $at, $s0, 0x101 +/* 0FFB54 7F0CB024 1020000A */ beqz $at, .L7F0CB050 +/* 0FFB58 7F0CB028 0002C040 */ sll $t8, $v0, 1 +/* 0FFB5C 7F0CB02C 0082C821 */ addu $t9, $a0, $v0 +/* 0FFB60 7F0CB030 932E0003 */ lbu $t6, 3($t9) +/* 0FFB64 7F0CB034 000E7880 */ sll $t7, $t6, 2 +/* 0FFB68 7F0CB038 006FC021 */ addu $t8, $v1, $t7 +/* 0FFB6C 7F0CB03C 8F190000 */ lw $t9, ($t8) +/* 0FFB70 7F0CB040 00197200 */ sll $t6, $t9, 8 +/* 0FFB74 7F0CB044 35CF00FF */ ori $t7, $t6, 0xff +/* 0FFB78 7F0CB048 10000009 */ b .L7F0CB070 +/* 0FFB7C 7F0CB04C AD4F000C */ sw $t7, 0xc($t2) +.L7F0CB050: +/* 0FFB80 7F0CB050 00B8C821 */ addu $t9, $a1, $t8 +/* 0FFB84 7F0CB054 972E0006 */ lhu $t6, 6($t9) +/* 0FFB88 7F0CB058 000E7880 */ sll $t7, $t6, 2 +/* 0FFB8C 7F0CB05C 006FC021 */ addu $t8, $v1, $t7 +/* 0FFB90 7F0CB060 8F190000 */ lw $t9, ($t8) +/* 0FFB94 7F0CB064 00197200 */ sll $t6, $t9, 8 +/* 0FFB98 7F0CB068 35CF00FF */ ori $t7, $t6, 0xff +/* 0FFB9C 7F0CB06C AD4F000C */ sw $t7, 0xc($t2) +.L7F0CB070: +/* 0FFBA0 7F0CB070 24420004 */ addiu $v0, $v0, 4 +/* 0FFBA4 7F0CB074 1451FFAE */ bne $v0, $s1, .L7F0CAF30 +/* 0FFBA8 7F0CB078 254A0010 */ addiu $t2, $t2, 0x10 +.L7F0CB07C: +/* 0FFBAC 7F0CB07C 24E70001 */ addiu $a3, $a3, 1 +/* 0FFBB0 7F0CB080 012C4821 */ addu $t1, $t1, $t4 +/* 0FFBB4 7F0CB084 00912021 */ addu $a0, $a0, $s1 +/* 0FFBB8 7F0CB088 14F2FF88 */ bne $a3, $s2, .L7F0CAEAC +/* 0FFBBC 7F0CB08C 00A82821 */ addu $a1, $a1, $t0 +.L7F0CB090: +/* 0FFBC0 7F0CB090 26380003 */ addiu $t8, $s1, 3 +/* 0FFBC4 7F0CB094 33190FFC */ andi $t9, $t8, 0xffc +/* 0FFBC8 7F0CB098 03320019 */ multu $t9, $s2 +/* 0FFBCC 7F0CB09C 00001012 */ mflo $v0 +/* 0FFBD0 7F0CB0A0 00027080 */ sll $t6, $v0, 2 +/* 0FFBD4 7F0CB0A4 10000170 */ b .L7F0CB668 +/* 0FFBD8 7F0CB0A8 01C01025 */ move $v0, $t6 +.L7F0CB0AC: +/* 0FFBDC 7F0CB0AC 1A400068 */ blez $s2, .L7F0CB250 +/* 0FFBE0 7F0CB0B0 00003825 */ move $a3, $zero +/* 0FFBE4 7F0CB0B4 262D0003 */ addiu $t5, $s1, 3 +/* 0FFBE8 7F0CB0B8 31AF0FFC */ andi $t7, $t5, 0xffc +/* 0FFBEC 7F0CB0BC 000F6840 */ sll $t5, $t7, 1 +/* 0FFBF0 7F0CB0C0 00114040 */ sll $t0, $s1, 1 +/* 0FFBF4 7F0CB0C4 8FA30038 */ lw $v1, 0x38($sp) +.L7F0CB0C8: +/* 0FFBF8 7F0CB0C8 1A20005C */ blez $s1, .L7F0CB23C +/* 0FFBFC 7F0CB0CC 00001025 */ move $v0, $zero +/* 0FFC00 7F0CB0D0 32260003 */ andi $a2, $s1, 3 +/* 0FFC04 7F0CB0D4 10C00017 */ beqz $a2, .L7F0CB134 +/* 0FFC08 7F0CB0D8 00C06025 */ move $t4, $a2 +/* 0FFC0C 7F0CB0DC 00004840 */ sll $t1, $zero, 1 +/* 0FFC10 7F0CB0E0 01495821 */ addu $t3, $t2, $t1 +.L7F0CB0E4: +/* 0FFC14 7F0CB0E4 2A010101 */ slti $at, $s0, 0x101 +/* 0FFC18 7F0CB0E8 10200008 */ beqz $at, .L7F0CB10C +/* 0FFC1C 7F0CB0EC 00A97021 */ addu $t6, $a1, $t1 +/* 0FFC20 7F0CB0F0 0082C821 */ addu $t9, $a0, $v0 +/* 0FFC24 7F0CB0F4 932E0000 */ lbu $t6, ($t9) +/* 0FFC28 7F0CB0F8 000E7840 */ sll $t7, $t6, 1 +/* 0FFC2C 7F0CB0FC 006FC021 */ addu $t8, $v1, $t7 +/* 0FFC30 7F0CB100 97190000 */ lhu $t9, ($t8) +/* 0FFC34 7F0CB104 10000006 */ b .L7F0CB120 +/* 0FFC38 7F0CB108 A5790000 */ sh $t9, ($t3) +.L7F0CB10C: +/* 0FFC3C 7F0CB10C 95CF0000 */ lhu $t7, ($t6) +/* 0FFC40 7F0CB110 000FC040 */ sll $t8, $t7, 1 +/* 0FFC44 7F0CB114 0078C821 */ addu $t9, $v1, $t8 +/* 0FFC48 7F0CB118 972E0000 */ lhu $t6, ($t9) +/* 0FFC4C 7F0CB11C A56E0000 */ sh $t6, ($t3) +.L7F0CB120: +/* 0FFC50 7F0CB120 24420001 */ addiu $v0, $v0, 1 +/* 0FFC54 7F0CB124 25290002 */ addiu $t1, $t1, 2 +/* 0FFC58 7F0CB128 1582FFEE */ bne $t4, $v0, .L7F0CB0E4 +/* 0FFC5C 7F0CB12C 256B0002 */ addiu $t3, $t3, 2 +/* 0FFC60 7F0CB130 10510042 */ beq $v0, $s1, .L7F0CB23C +.L7F0CB134: +/* 0FFC64 7F0CB134 00024840 */ sll $t1, $v0, 1 +/* 0FFC68 7F0CB138 01495821 */ addu $t3, $t2, $t1 +.L7F0CB13C: +/* 0FFC6C 7F0CB13C 2A010101 */ slti $at, $s0, 0x101 +/* 0FFC70 7F0CB140 10200008 */ beqz $at, .L7F0CB164 +/* 0FFC74 7F0CB144 00A9C021 */ addu $t8, $a1, $t1 +/* 0FFC78 7F0CB148 00827821 */ addu $t7, $a0, $v0 +/* 0FFC7C 7F0CB14C 91F80000 */ lbu $t8, ($t7) +/* 0FFC80 7F0CB150 0018C840 */ sll $t9, $t8, 1 +/* 0FFC84 7F0CB154 00797021 */ addu $t6, $v1, $t9 +/* 0FFC88 7F0CB158 95CF0000 */ lhu $t7, ($t6) +/* 0FFC8C 7F0CB15C 10000006 */ b .L7F0CB178 +/* 0FFC90 7F0CB160 A56F0000 */ sh $t7, ($t3) +.L7F0CB164: +/* 0FFC94 7F0CB164 97190000 */ lhu $t9, ($t8) +/* 0FFC98 7F0CB168 00197040 */ sll $t6, $t9, 1 +/* 0FFC9C 7F0CB16C 006E7821 */ addu $t7, $v1, $t6 +/* 0FFCA0 7F0CB170 95F80000 */ lhu $t8, ($t7) +/* 0FFCA4 7F0CB174 A5780000 */ sh $t8, ($t3) +.L7F0CB178: +/* 0FFCA8 7F0CB178 2A010101 */ slti $at, $s0, 0x101 +/* 0FFCAC 7F0CB17C 10200008 */ beqz $at, .L7F0CB1A0 +/* 0FFCB0 7F0CB180 00A97021 */ addu $t6, $a1, $t1 +/* 0FFCB4 7F0CB184 0082C821 */ addu $t9, $a0, $v0 +/* 0FFCB8 7F0CB188 932E0001 */ lbu $t6, 1($t9) +/* 0FFCBC 7F0CB18C 000E7840 */ sll $t7, $t6, 1 +/* 0FFCC0 7F0CB190 006FC021 */ addu $t8, $v1, $t7 +/* 0FFCC4 7F0CB194 97190000 */ lhu $t9, ($t8) +/* 0FFCC8 7F0CB198 10000006 */ b .L7F0CB1B4 +/* 0FFCCC 7F0CB19C A5790002 */ sh $t9, 2($t3) +.L7F0CB1A0: +/* 0FFCD0 7F0CB1A0 95CF0002 */ lhu $t7, 2($t6) +/* 0FFCD4 7F0CB1A4 000FC040 */ sll $t8, $t7, 1 +/* 0FFCD8 7F0CB1A8 0078C821 */ addu $t9, $v1, $t8 +/* 0FFCDC 7F0CB1AC 972E0000 */ lhu $t6, ($t9) +/* 0FFCE0 7F0CB1B0 A56E0002 */ sh $t6, 2($t3) +.L7F0CB1B4: +/* 0FFCE4 7F0CB1B4 2A010101 */ slti $at, $s0, 0x101 +/* 0FFCE8 7F0CB1B8 10200008 */ beqz $at, .L7F0CB1DC +/* 0FFCEC 7F0CB1BC 00A9C021 */ addu $t8, $a1, $t1 +/* 0FFCF0 7F0CB1C0 00827821 */ addu $t7, $a0, $v0 +/* 0FFCF4 7F0CB1C4 91F80002 */ lbu $t8, 2($t7) +/* 0FFCF8 7F0CB1C8 0018C840 */ sll $t9, $t8, 1 +/* 0FFCFC 7F0CB1CC 00797021 */ addu $t6, $v1, $t9 +/* 0FFD00 7F0CB1D0 95CF0000 */ lhu $t7, ($t6) +/* 0FFD04 7F0CB1D4 10000006 */ b .L7F0CB1F0 +/* 0FFD08 7F0CB1D8 A56F0004 */ sh $t7, 4($t3) +.L7F0CB1DC: +/* 0FFD0C 7F0CB1DC 97190004 */ lhu $t9, 4($t8) +/* 0FFD10 7F0CB1E0 00197040 */ sll $t6, $t9, 1 +/* 0FFD14 7F0CB1E4 006E7821 */ addu $t7, $v1, $t6 +/* 0FFD18 7F0CB1E8 95F80000 */ lhu $t8, ($t7) +/* 0FFD1C 7F0CB1EC A5780004 */ sh $t8, 4($t3) +.L7F0CB1F0: +/* 0FFD20 7F0CB1F0 2A010101 */ slti $at, $s0, 0x101 +/* 0FFD24 7F0CB1F4 10200008 */ beqz $at, .L7F0CB218 +/* 0FFD28 7F0CB1F8 00A97021 */ addu $t6, $a1, $t1 +/* 0FFD2C 7F0CB1FC 0082C821 */ addu $t9, $a0, $v0 +/* 0FFD30 7F0CB200 932E0003 */ lbu $t6, 3($t9) +/* 0FFD34 7F0CB204 000E7840 */ sll $t7, $t6, 1 +/* 0FFD38 7F0CB208 006FC021 */ addu $t8, $v1, $t7 +/* 0FFD3C 7F0CB20C 97190000 */ lhu $t9, ($t8) +/* 0FFD40 7F0CB210 10000006 */ b .L7F0CB22C +/* 0FFD44 7F0CB214 A5790006 */ sh $t9, 6($t3) +.L7F0CB218: +/* 0FFD48 7F0CB218 95CF0006 */ lhu $t7, 6($t6) +/* 0FFD4C 7F0CB21C 000FC040 */ sll $t8, $t7, 1 +/* 0FFD50 7F0CB220 0078C821 */ addu $t9, $v1, $t8 +/* 0FFD54 7F0CB224 972E0000 */ lhu $t6, ($t9) +/* 0FFD58 7F0CB228 A56E0006 */ sh $t6, 6($t3) +.L7F0CB22C: +/* 0FFD5C 7F0CB22C 24420004 */ addiu $v0, $v0, 4 +/* 0FFD60 7F0CB230 25290008 */ addiu $t1, $t1, 8 +/* 0FFD64 7F0CB234 1451FFC1 */ bne $v0, $s1, .L7F0CB13C +/* 0FFD68 7F0CB238 256B0008 */ addiu $t3, $t3, 8 +.L7F0CB23C: +/* 0FFD6C 7F0CB23C 24E70001 */ addiu $a3, $a3, 1 +/* 0FFD70 7F0CB240 014D5021 */ addu $t2, $t2, $t5 +/* 0FFD74 7F0CB244 00912021 */ addu $a0, $a0, $s1 +/* 0FFD78 7F0CB248 14F2FF9F */ bne $a3, $s2, .L7F0CB0C8 +/* 0FFD7C 7F0CB24C 00A82821 */ addu $a1, $a1, $t0 +.L7F0CB250: +/* 0FFD80 7F0CB250 262F0003 */ addiu $t7, $s1, 3 +/* 0FFD84 7F0CB254 31F80FFC */ andi $t8, $t7, 0xffc +/* 0FFD88 7F0CB258 03120019 */ multu $t8, $s2 +/* 0FFD8C 7F0CB25C 00001012 */ mflo $v0 +/* 0FFD90 7F0CB260 0002C840 */ sll $t9, $v0, 1 +/* 0FFD94 7F0CB264 10000100 */ b .L7F0CB668 +/* 0FFD98 7F0CB268 03201025 */ move $v0, $t9 +.L7F0CB26C: +/* 0FFD9C 7F0CB26C 1A40004E */ blez $s2, .L7F0CB3A8 +/* 0FFDA0 7F0CB270 00003825 */ move $a3, $zero +/* 0FFDA4 7F0CB274 262D0003 */ addiu $t5, $s1, 3 +/* 0FFDA8 7F0CB278 31AE0FFC */ andi $t6, $t5, 0xffc +/* 0FFDAC 7F0CB27C 000E6840 */ sll $t5, $t6, 1 +/* 0FFDB0 7F0CB280 00114040 */ sll $t0, $s1, 1 +/* 0FFDB4 7F0CB284 8FA30038 */ lw $v1, 0x38($sp) +.L7F0CB288: +/* 0FFDB8 7F0CB288 1A200042 */ blez $s1, .L7F0CB394 +/* 0FFDBC 7F0CB28C 00001025 */ move $v0, $zero +/* 0FFDC0 7F0CB290 32260001 */ andi $a2, $s1, 1 +/* 0FFDC4 7F0CB294 10C00013 */ beqz $a2, .L7F0CB2E4 +/* 0FFDC8 7F0CB298 2A010101 */ slti $at, $s0, 0x101 +/* 0FFDCC 7F0CB29C 10200009 */ beqz $at, .L7F0CB2C4 +/* 0FFDD0 7F0CB2A0 24020001 */ li $v0, 1 +/* 0FFDD4 7F0CB2A4 90980000 */ lbu $t8, ($a0) +/* 0FFDD8 7F0CB2A8 0018C840 */ sll $t9, $t8, 1 +/* 0FFDDC 7F0CB2AC 00797021 */ addu $t6, $v1, $t9 +/* 0FFDE0 7F0CB2B0 95CF0000 */ lhu $t7, ($t6) +/* 0FFDE4 7F0CB2B4 000FC040 */ sll $t8, $t7, 1 +/* 0FFDE8 7F0CB2B8 37190001 */ ori $t9, $t8, 1 +/* 0FFDEC 7F0CB2BC 10000008 */ b .L7F0CB2E0 +/* 0FFDF0 7F0CB2C0 A5590000 */ sh $t9, ($t2) +.L7F0CB2C4: +/* 0FFDF4 7F0CB2C4 94AE0000 */ lhu $t6, ($a1) +/* 0FFDF8 7F0CB2C8 000E7840 */ sll $t7, $t6, 1 +/* 0FFDFC 7F0CB2CC 006FC021 */ addu $t8, $v1, $t7 +/* 0FFE00 7F0CB2D0 97190000 */ lhu $t9, ($t8) +/* 0FFE04 7F0CB2D4 00197040 */ sll $t6, $t9, 1 +/* 0FFE08 7F0CB2D8 35CF0001 */ ori $t7, $t6, 1 +/* 0FFE0C 7F0CB2DC A54F0000 */ sh $t7, ($t2) +.L7F0CB2E0: +/* 0FFE10 7F0CB2E0 1051002C */ beq $v0, $s1, .L7F0CB394 +.L7F0CB2E4: +/* 0FFE14 7F0CB2E4 00024840 */ sll $t1, $v0, 1 +/* 0FFE18 7F0CB2E8 01495821 */ addu $t3, $t2, $t1 +.L7F0CB2EC: +/* 0FFE1C 7F0CB2EC 2A010101 */ slti $at, $s0, 0x101 +/* 0FFE20 7F0CB2F0 1020000A */ beqz $at, .L7F0CB31C +/* 0FFE24 7F0CB2F4 00A97821 */ addu $t7, $a1, $t1 +/* 0FFE28 7F0CB2F8 0082C021 */ addu $t8, $a0, $v0 +/* 0FFE2C 7F0CB2FC 93190000 */ lbu $t9, ($t8) +/* 0FFE30 7F0CB300 00197040 */ sll $t6, $t9, 1 +/* 0FFE34 7F0CB304 006E7821 */ addu $t7, $v1, $t6 +/* 0FFE38 7F0CB308 95F80000 */ lhu $t8, ($t7) +/* 0FFE3C 7F0CB30C 0018C840 */ sll $t9, $t8, 1 +/* 0FFE40 7F0CB310 372E0001 */ ori $t6, $t9, 1 +/* 0FFE44 7F0CB314 10000008 */ b .L7F0CB338 +/* 0FFE48 7F0CB318 A56E0000 */ sh $t6, ($t3) +.L7F0CB31C: +/* 0FFE4C 7F0CB31C 95F80000 */ lhu $t8, ($t7) +/* 0FFE50 7F0CB320 0018C840 */ sll $t9, $t8, 1 +/* 0FFE54 7F0CB324 00797021 */ addu $t6, $v1, $t9 +/* 0FFE58 7F0CB328 95CF0000 */ lhu $t7, ($t6) +/* 0FFE5C 7F0CB32C 000FC040 */ sll $t8, $t7, 1 +/* 0FFE60 7F0CB330 37190001 */ ori $t9, $t8, 1 +/* 0FFE64 7F0CB334 A5790000 */ sh $t9, ($t3) +.L7F0CB338: +/* 0FFE68 7F0CB338 2A010101 */ slti $at, $s0, 0x101 +/* 0FFE6C 7F0CB33C 1020000A */ beqz $at, .L7F0CB368 +/* 0FFE70 7F0CB340 00A9C821 */ addu $t9, $a1, $t1 +/* 0FFE74 7F0CB344 00827021 */ addu $t6, $a0, $v0 +/* 0FFE78 7F0CB348 91CF0001 */ lbu $t7, 1($t6) +/* 0FFE7C 7F0CB34C 000FC040 */ sll $t8, $t7, 1 +/* 0FFE80 7F0CB350 0078C821 */ addu $t9, $v1, $t8 +/* 0FFE84 7F0CB354 972E0000 */ lhu $t6, ($t9) +/* 0FFE88 7F0CB358 000E7840 */ sll $t7, $t6, 1 +/* 0FFE8C 7F0CB35C 35F80001 */ ori $t8, $t7, 1 +/* 0FFE90 7F0CB360 10000008 */ b .L7F0CB384 +/* 0FFE94 7F0CB364 A5780002 */ sh $t8, 2($t3) +.L7F0CB368: +/* 0FFE98 7F0CB368 972E0002 */ lhu $t6, 2($t9) +/* 0FFE9C 7F0CB36C 000E7840 */ sll $t7, $t6, 1 +/* 0FFEA0 7F0CB370 006FC021 */ addu $t8, $v1, $t7 +/* 0FFEA4 7F0CB374 97190000 */ lhu $t9, ($t8) +/* 0FFEA8 7F0CB378 00197040 */ sll $t6, $t9, 1 +/* 0FFEAC 7F0CB37C 35CF0001 */ ori $t7, $t6, 1 +/* 0FFEB0 7F0CB380 A56F0002 */ sh $t7, 2($t3) +.L7F0CB384: +/* 0FFEB4 7F0CB384 24420002 */ addiu $v0, $v0, 2 +/* 0FFEB8 7F0CB388 25290004 */ addiu $t1, $t1, 4 +/* 0FFEBC 7F0CB38C 1451FFD7 */ bne $v0, $s1, .L7F0CB2EC +/* 0FFEC0 7F0CB390 256B0004 */ addiu $t3, $t3, 4 +.L7F0CB394: +/* 0FFEC4 7F0CB394 24E70001 */ addiu $a3, $a3, 1 +/* 0FFEC8 7F0CB398 014D5021 */ addu $t2, $t2, $t5 +/* 0FFECC 7F0CB39C 00912021 */ addu $a0, $a0, $s1 +/* 0FFED0 7F0CB3A0 14F2FFB9 */ bne $a3, $s2, .L7F0CB288 +/* 0FFED4 7F0CB3A4 00A82821 */ addu $a1, $a1, $t0 +.L7F0CB3A8: +/* 0FFED8 7F0CB3A8 26380003 */ addiu $t8, $s1, 3 +/* 0FFEDC 7F0CB3AC 33190FFC */ andi $t9, $t8, 0xffc +/* 0FFEE0 7F0CB3B0 03320019 */ multu $t9, $s2 +/* 0FFEE4 7F0CB3B4 00001012 */ mflo $v0 +/* 0FFEE8 7F0CB3B8 00027040 */ sll $t6, $v0, 1 +/* 0FFEEC 7F0CB3BC 100000AA */ b .L7F0CB668 +/* 0FFEF0 7F0CB3C0 01C01025 */ move $v0, $t6 +.L7F0CB3C4: +/* 0FFEF4 7F0CB3C4 1A400069 */ blez $s2, .L7F0CB56C +/* 0FFEF8 7F0CB3C8 00003825 */ move $a3, $zero +/* 0FFEFC 7F0CB3CC 26290007 */ addiu $t1, $s1, 7 +/* 0FFF00 7F0CB3D0 312F0FF8 */ andi $t7, $t1, 0xff8 +/* 0FFF04 7F0CB3D4 01E04825 */ move $t1, $t7 +/* 0FFF08 7F0CB3D8 00114040 */ sll $t0, $s1, 1 +/* 0FFF0C 7F0CB3DC 8FA30038 */ lw $v1, 0x38($sp) +.L7F0CB3E0: +/* 0FFF10 7F0CB3E0 1A20005D */ blez $s1, .L7F0CB558 +/* 0FFF14 7F0CB3E4 00001025 */ move $v0, $zero +/* 0FFF18 7F0CB3E8 32260003 */ andi $a2, $s1, 3 +/* 0FFF1C 7F0CB3EC 10C00016 */ beqz $a2, .L7F0CB448 +/* 0FFF20 7F0CB3F0 00C06025 */ move $t4, $a2 +/* 0FFF24 7F0CB3F4 01605021 */ addu $t2, $t3, $zero +.L7F0CB3F8: +/* 0FFF28 7F0CB3F8 2A010101 */ slti $at, $s0, 0x101 +/* 0FFF2C 7F0CB3FC 10200008 */ beqz $at, .L7F0CB420 +/* 0FFF30 7F0CB400 0002C840 */ sll $t9, $v0, 1 +/* 0FFF34 7F0CB404 0082C021 */ addu $t8, $a0, $v0 +/* 0FFF38 7F0CB408 93190000 */ lbu $t9, ($t8) +/* 0FFF3C 7F0CB40C 00197040 */ sll $t6, $t9, 1 +/* 0FFF40 7F0CB410 006E7821 */ addu $t7, $v1, $t6 +/* 0FFF44 7F0CB414 95F80000 */ lhu $t8, ($t7) +/* 0FFF48 7F0CB418 10000007 */ b .L7F0CB438 +/* 0FFF4C 7F0CB41C A1580000 */ sb $t8, ($t2) +.L7F0CB420: +/* 0FFF50 7F0CB420 00B97021 */ addu $t6, $a1, $t9 +/* 0FFF54 7F0CB424 95CF0000 */ lhu $t7, ($t6) +/* 0FFF58 7F0CB428 000FC040 */ sll $t8, $t7, 1 +/* 0FFF5C 7F0CB42C 0078C821 */ addu $t9, $v1, $t8 +/* 0FFF60 7F0CB430 972E0000 */ lhu $t6, ($t9) +/* 0FFF64 7F0CB434 A14E0000 */ sb $t6, ($t2) +.L7F0CB438: +/* 0FFF68 7F0CB438 24420001 */ addiu $v0, $v0, 1 +/* 0FFF6C 7F0CB43C 1582FFEE */ bne $t4, $v0, .L7F0CB3F8 +/* 0FFF70 7F0CB440 254A0001 */ addiu $t2, $t2, 1 +/* 0FFF74 7F0CB444 10510044 */ beq $v0, $s1, .L7F0CB558 +.L7F0CB448: +/* 0FFF78 7F0CB448 01625021 */ addu $t2, $t3, $v0 +.L7F0CB44C: +/* 0FFF7C 7F0CB44C 2A010101 */ slti $at, $s0, 0x101 +/* 0FFF80 7F0CB450 10200008 */ beqz $at, .L7F0CB474 +/* 0FFF84 7F0CB454 0002C040 */ sll $t8, $v0, 1 +/* 0FFF88 7F0CB458 00827821 */ addu $t7, $a0, $v0 +/* 0FFF8C 7F0CB45C 91F80000 */ lbu $t8, ($t7) +/* 0FFF90 7F0CB460 0018C840 */ sll $t9, $t8, 1 +/* 0FFF94 7F0CB464 00797021 */ addu $t6, $v1, $t9 +/* 0FFF98 7F0CB468 95CF0000 */ lhu $t7, ($t6) +/* 0FFF9C 7F0CB46C 10000007 */ b .L7F0CB48C +/* 0FFFA0 7F0CB470 A14F0000 */ sb $t7, ($t2) +.L7F0CB474: +/* 0FFFA4 7F0CB474 00B8C821 */ addu $t9, $a1, $t8 +/* 0FFFA8 7F0CB478 972E0000 */ lhu $t6, ($t9) +/* 0FFFAC 7F0CB47C 000E7840 */ sll $t7, $t6, 1 +/* 0FFFB0 7F0CB480 006FC021 */ addu $t8, $v1, $t7 +/* 0FFFB4 7F0CB484 97190000 */ lhu $t9, ($t8) +/* 0FFFB8 7F0CB488 A1590000 */ sb $t9, ($t2) +.L7F0CB48C: +/* 0FFFBC 7F0CB48C 2A010101 */ slti $at, $s0, 0x101 +/* 0FFFC0 7F0CB490 10200008 */ beqz $at, .L7F0CB4B4 +/* 0FFFC4 7F0CB494 00027840 */ sll $t7, $v0, 1 +/* 0FFFC8 7F0CB498 00827021 */ addu $t6, $a0, $v0 +/* 0FFFCC 7F0CB49C 91CF0001 */ lbu $t7, 1($t6) +/* 0FFFD0 7F0CB4A0 000FC040 */ sll $t8, $t7, 1 +/* 0FFFD4 7F0CB4A4 0078C821 */ addu $t9, $v1, $t8 +/* 0FFFD8 7F0CB4A8 972E0000 */ lhu $t6, ($t9) +/* 0FFFDC 7F0CB4AC 10000007 */ b .L7F0CB4CC +/* 0FFFE0 7F0CB4B0 A14E0001 */ sb $t6, 1($t2) +.L7F0CB4B4: +/* 0FFFE4 7F0CB4B4 00AFC021 */ addu $t8, $a1, $t7 +/* 0FFFE8 7F0CB4B8 97190002 */ lhu $t9, 2($t8) +/* 0FFFEC 7F0CB4BC 00197040 */ sll $t6, $t9, 1 +/* 0FFFF0 7F0CB4C0 006E7821 */ addu $t7, $v1, $t6 +/* 0FFFF4 7F0CB4C4 95F80000 */ lhu $t8, ($t7) +/* 0FFFF8 7F0CB4C8 A1580001 */ sb $t8, 1($t2) +.L7F0CB4CC: +/* 0FFFFC 7F0CB4CC 2A010101 */ slti $at, $s0, 0x101 +/* 100000 7F0CB4D0 10200008 */ beqz $at, .L7F0CB4F4 +/* 100004 7F0CB4D4 00027040 */ sll $t6, $v0, 1 +/* 100008 7F0CB4D8 0082C821 */ addu $t9, $a0, $v0 +/* 10000C 7F0CB4DC 932E0002 */ lbu $t6, 2($t9) +/* 100010 7F0CB4E0 000E7840 */ sll $t7, $t6, 1 +/* 100014 7F0CB4E4 006FC021 */ addu $t8, $v1, $t7 +/* 100018 7F0CB4E8 97190000 */ lhu $t9, ($t8) +/* 10001C 7F0CB4EC 10000007 */ b .L7F0CB50C +/* 100020 7F0CB4F0 A1590002 */ sb $t9, 2($t2) +.L7F0CB4F4: +/* 100024 7F0CB4F4 00AE7821 */ addu $t7, $a1, $t6 +/* 100028 7F0CB4F8 95F80004 */ lhu $t8, 4($t7) +/* 10002C 7F0CB4FC 0018C840 */ sll $t9, $t8, 1 +/* 100030 7F0CB500 00797021 */ addu $t6, $v1, $t9 +/* 100034 7F0CB504 95CF0000 */ lhu $t7, ($t6) +/* 100038 7F0CB508 A14F0002 */ sb $t7, 2($t2) +.L7F0CB50C: +/* 10003C 7F0CB50C 2A010101 */ slti $at, $s0, 0x101 +/* 100040 7F0CB510 10200008 */ beqz $at, .L7F0CB534 +/* 100044 7F0CB514 0002C840 */ sll $t9, $v0, 1 +/* 100048 7F0CB518 0082C021 */ addu $t8, $a0, $v0 +/* 10004C 7F0CB51C 93190003 */ lbu $t9, 3($t8) +/* 100050 7F0CB520 00197040 */ sll $t6, $t9, 1 +/* 100054 7F0CB524 006E7821 */ addu $t7, $v1, $t6 +/* 100058 7F0CB528 95F80000 */ lhu $t8, ($t7) +/* 10005C 7F0CB52C 10000007 */ b .L7F0CB54C +/* 100060 7F0CB530 A1580003 */ sb $t8, 3($t2) +.L7F0CB534: +/* 100064 7F0CB534 00B97021 */ addu $t6, $a1, $t9 +/* 100068 7F0CB538 95CF0006 */ lhu $t7, 6($t6) +/* 10006C 7F0CB53C 000FC040 */ sll $t8, $t7, 1 +/* 100070 7F0CB540 0078C821 */ addu $t9, $v1, $t8 +/* 100074 7F0CB544 972E0000 */ lhu $t6, ($t9) +/* 100078 7F0CB548 A14E0003 */ sb $t6, 3($t2) +.L7F0CB54C: +/* 10007C 7F0CB54C 24420004 */ addiu $v0, $v0, 4 +/* 100080 7F0CB550 1451FFBE */ bne $v0, $s1, .L7F0CB44C +/* 100084 7F0CB554 254A0004 */ addiu $t2, $t2, 4 +.L7F0CB558: +/* 100088 7F0CB558 24E70001 */ addiu $a3, $a3, 1 +/* 10008C 7F0CB55C 01695821 */ addu $t3, $t3, $t1 +/* 100090 7F0CB560 00912021 */ addu $a0, $a0, $s1 +/* 100094 7F0CB564 14F2FF9E */ bne $a3, $s2, .L7F0CB3E0 +/* 100098 7F0CB568 00A82821 */ addu $a1, $a1, $t0 +.L7F0CB56C: +/* 10009C 7F0CB56C 262F0007 */ addiu $t7, $s1, 7 +/* 1000A0 7F0CB570 31F80FF8 */ andi $t8, $t7, 0xff8 +/* 1000A4 7F0CB574 03120019 */ multu $t8, $s2 +/* 1000A8 7F0CB578 00001012 */ mflo $v0 +/* 1000AC 7F0CB57C 1000003B */ b .L7F0CB66C +/* 1000B0 7F0CB580 8FB00004 */ lw $s0, 4($sp) +.L7F0CB584: +/* 1000B4 7F0CB584 1A400031 */ blez $s2, .L7F0CB64C +/* 1000B8 7F0CB588 00003825 */ move $a3, $zero +/* 1000BC 7F0CB58C 2629000F */ addiu $t1, $s1, 0xf +/* 1000C0 7F0CB590 31390FF0 */ andi $t9, $t1, 0xff0 +/* 1000C4 7F0CB594 00194843 */ sra $t1, $t9, 1 +/* 1000C8 7F0CB598 00114040 */ sll $t0, $s1, 1 +/* 1000CC 7F0CB59C 8FA30038 */ lw $v1, 0x38($sp) +.L7F0CB5A0: +/* 1000D0 7F0CB5A0 1A200025 */ blez $s1, .L7F0CB638 +/* 1000D4 7F0CB5A4 00001025 */ move $v0, $zero +/* 1000D8 7F0CB5A8 2A010101 */ slti $at, $s0, 0x101 +.L7F0CB5AC: +/* 1000DC 7F0CB5AC 10200010 */ beqz $at, .L7F0CB5F0 +/* 1000E0 7F0CB5B0 0002C040 */ sll $t8, $v0, 1 +/* 1000E4 7F0CB5B4 00443021 */ addu $a2, $v0, $a0 +/* 1000E8 7F0CB5B8 90CF0001 */ lbu $t7, 1($a2) +/* 1000EC 7F0CB5BC 000FC040 */ sll $t8, $t7, 1 +/* 1000F0 7F0CB5C0 90CF0000 */ lbu $t7, ($a2) +/* 1000F4 7F0CB5C4 0078C821 */ addu $t9, $v1, $t8 +/* 1000F8 7F0CB5C8 972E0000 */ lhu $t6, ($t9) +/* 1000FC 7F0CB5CC 000FC040 */ sll $t8, $t7, 1 +/* 100100 7F0CB5D0 0078C821 */ addu $t9, $v1, $t8 +/* 100104 7F0CB5D4 972F0000 */ lhu $t7, ($t9) +/* 100108 7F0CB5D8 000FC100 */ sll $t8, $t7, 4 +/* 10010C 7F0CB5DC 00027843 */ sra $t7, $v0, 1 +/* 100110 7F0CB5E0 01D8C825 */ or $t9, $t6, $t8 +/* 100114 7F0CB5E4 016F7021 */ addu $t6, $t3, $t7 +/* 100118 7F0CB5E8 1000000F */ b .L7F0CB628 +/* 10011C 7F0CB5EC A1D90000 */ sb $t9, ($t6) +.L7F0CB5F0: +/* 100120 7F0CB5F0 00B83021 */ addu $a2, $a1, $t8 +/* 100124 7F0CB5F4 94CF0002 */ lhu $t7, 2($a2) +/* 100128 7F0CB5F8 000FC840 */ sll $t9, $t7, 1 +/* 10012C 7F0CB5FC 94CF0000 */ lhu $t7, ($a2) +/* 100130 7F0CB600 00797021 */ addu $t6, $v1, $t9 +/* 100134 7F0CB604 95D80000 */ lhu $t8, ($t6) +/* 100138 7F0CB608 000FC840 */ sll $t9, $t7, 1 +/* 10013C 7F0CB60C 00797021 */ addu $t6, $v1, $t9 +/* 100140 7F0CB610 95CF0000 */ lhu $t7, ($t6) +/* 100144 7F0CB614 000FC900 */ sll $t9, $t7, 4 +/* 100148 7F0CB618 00027843 */ sra $t7, $v0, 1 +/* 10014C 7F0CB61C 03197025 */ or $t6, $t8, $t9 +/* 100150 7F0CB620 016FC021 */ addu $t8, $t3, $t7 +/* 100154 7F0CB624 A30E0000 */ sb $t6, ($t8) +.L7F0CB628: +/* 100158 7F0CB628 24420002 */ addiu $v0, $v0, 2 +/* 10015C 7F0CB62C 0051082A */ slt $at, $v0, $s1 +/* 100160 7F0CB630 5420FFDE */ bnezl $at, .L7F0CB5AC +/* 100164 7F0CB634 2A010101 */ slti $at, $s0, 0x101 +.L7F0CB638: +/* 100168 7F0CB638 24E70001 */ addiu $a3, $a3, 1 +/* 10016C 7F0CB63C 01695821 */ addu $t3, $t3, $t1 +/* 100170 7F0CB640 00912021 */ addu $a0, $a0, $s1 +/* 100174 7F0CB644 14F2FFD6 */ bne $a3, $s2, .L7F0CB5A0 +/* 100178 7F0CB648 00A82821 */ addu $a1, $a1, $t0 +.L7F0CB64C: +/* 10017C 7F0CB64C 2639000F */ addiu $t9, $s1, 0xf +/* 100180 7F0CB650 332F0FF0 */ andi $t7, $t9, 0xff0 +/* 100184 7F0CB654 000F7043 */ sra $t6, $t7, 1 +/* 100188 7F0CB658 01D20019 */ multu $t6, $s2 +/* 10018C 7F0CB65C 00001012 */ mflo $v0 +/* 100190 7F0CB660 10000002 */ b .L7F0CB66C +/* 100194 7F0CB664 8FB00004 */ lw $s0, 4($sp) +def_7F0CACBC: +.L7F0CB668: +/* 100198 7F0CB668 8FB00004 */ lw $s0, 4($sp) +.L7F0CB66C: +/* 10019C 7F0CB66C 8FB10008 */ lw $s1, 8($sp) +/* 1001A0 7F0CB670 8FB2000C */ lw $s2, 0xc($sp) +/* 1001A4 7F0CB674 03E00008 */ jr $ra +/* 1001A8 7F0CB678 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CB67C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BE30*/ +glabel jpt_8005BE30 +.word .L7F0CB6A8 +.word .L7F0CB6BC +.word .L7F0CB6A8 +.word .L7F0CB6BC +.word .L7F0CB6BC +.word .L7F0CB6D4 +.word .L7F0CB6EC +.word .L7F0CB6D4 +.word .L7F0CB6EC +.word .L7F0CB6D4 +.word .L7F0CB6EC +.word .L7F0CB6D4 +.word .L7F0CB6EC +.text +glabel sub_GAME_7F0CB67C +/* 1001AC 7F0CB67C 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 1001B0 7F0CB680 2CE1000D */ sltiu $at, $a3, 0xd +/* 1001B4 7F0CB684 AFA50014 */ sw $a1, 0x14($sp) +/* 1001B8 7F0CB688 1020001D */ beqz $at, .L7F0CB700 +/* 1001BC 7F0CB68C 00E01825 */ move $v1, $a3 +/* 1001C0 7F0CB690 00077080 */ sll $t6, $a3, 2 +/* 1001C4 7F0CB694 3C018006 */ lui $at, %hi(jpt_8005BE30) +/* 1001C8 7F0CB698 002E0821 */ addu $at, $at, $t6 +/* 1001CC 7F0CB69C 8C2EBE30 */ lw $t6, %lo(jpt_8005BE30)($at) +/* 1001D0 7F0CB6A0 01C00008 */ jr $t6 +/* 1001D4 7F0CB6A4 00000000 */ nop +.L7F0CB6A8: +/* 1001D8 7F0CB6A8 8FA50014 */ lw $a1, 0x14($sp) +/* 1001DC 7F0CB6AC 24A50003 */ addiu $a1, $a1, 3 +/* 1001E0 7F0CB6B0 30AF0FFC */ andi $t7, $a1, 0xffc +/* 1001E4 7F0CB6B4 10000012 */ b .L7F0CB700 +/* 1001E8 7F0CB6B8 AFAF0004 */ sw $t7, 4($sp) +.L7F0CB6BC: +/* 1001EC 7F0CB6BC 8FA50014 */ lw $a1, 0x14($sp) +/* 1001F0 7F0CB6C0 24A50003 */ addiu $a1, $a1, 3 +/* 1001F4 7F0CB6C4 30B80FFC */ andi $t8, $a1, 0xffc +/* 1001F8 7F0CB6C8 0018C843 */ sra $t9, $t8, 1 +/* 1001FC 7F0CB6CC 1000000C */ b .L7F0CB700 +/* 100200 7F0CB6D0 AFB90004 */ sw $t9, 4($sp) +.L7F0CB6D4: +/* 100204 7F0CB6D4 8FA50014 */ lw $a1, 0x14($sp) +/* 100208 7F0CB6D8 24A50007 */ addiu $a1, $a1, 7 +/* 10020C 7F0CB6DC 30AA0FF8 */ andi $t2, $a1, 0xff8 +/* 100210 7F0CB6E0 000A5883 */ sra $t3, $t2, 2 +/* 100214 7F0CB6E4 10000006 */ b .L7F0CB700 +/* 100218 7F0CB6E8 AFAB0004 */ sw $t3, 4($sp) +.L7F0CB6EC: +/* 10021C 7F0CB6EC 8FA50014 */ lw $a1, 0x14($sp) +/* 100220 7F0CB6F0 24A5000F */ addiu $a1, $a1, 0xf +/* 100224 7F0CB6F4 30AC0FF0 */ andi $t4, $a1, 0xff0 +/* 100228 7F0CB6F8 000C68C3 */ sra $t5, $t4, 3 +/* 10022C 7F0CB6FC AFAD0004 */ sw $t5, 4($sp) +def_7F0CB6A0: +.L7F0CB700: +/* 100230 7F0CB700 8FA50004 */ lw $a1, 4($sp) +/* 100234 7F0CB704 24010002 */ li $at, 2 +/* 100238 7F0CB708 00057080 */ sll $t6, $a1, 2 +/* 10023C 7F0CB70C 10600002 */ beqz $v1, .L7F0CB718 +/* 100240 7F0CB710 008E1021 */ addu $v0, $a0, $t6 +/* 100244 7F0CB714 1461001B */ bne $v1, $at, .L7F0CB784 +.L7F0CB718: +/* 100248 7F0CB718 28C10002 */ slti $at, $a2, 2 +/* 10024C 7F0CB71C 1420002E */ bnez $at, .L7F0CB7D8 +/* 100250 7F0CB720 24030001 */ li $v1, 1 +/* 100254 7F0CB724 00A04825 */ move $t1, $a1 +/* 100258 7F0CB728 000978C0 */ sll $t7, $t1, 3 +/* 10025C 7F0CB72C 01E04825 */ move $t1, $t7 +.L7F0CB730: +/* 100260 7F0CB730 18A0000E */ blez $a1, .L7F0CB76C +/* 100264 7F0CB734 00002025 */ move $a0, $zero +/* 100268 7F0CB738 00404025 */ move $t0, $v0 +.L7F0CB73C: +/* 10026C 7F0CB73C 8D070000 */ lw $a3, ($t0) +/* 100270 7F0CB740 8D180008 */ lw $t8, 8($t0) +/* 100274 7F0CB744 8D19000C */ lw $t9, 0xc($t0) +/* 100278 7F0CB748 AD070008 */ sw $a3, 8($t0) +/* 10027C 7F0CB74C 8D070004 */ lw $a3, 4($t0) +/* 100280 7F0CB750 24840004 */ addiu $a0, $a0, 4 +/* 100284 7F0CB754 0085082A */ slt $at, $a0, $a1 +/* 100288 7F0CB758 25080010 */ addiu $t0, $t0, 0x10 +/* 10028C 7F0CB75C AD18FFF0 */ sw $t8, -0x10($t0) +/* 100290 7F0CB760 AD19FFF4 */ sw $t9, -0xc($t0) +/* 100294 7F0CB764 1420FFF5 */ bnez $at, .L7F0CB73C +/* 100298 7F0CB768 AD07FFFC */ sw $a3, -4($t0) +.L7F0CB76C: +/* 10029C 7F0CB76C 24630002 */ addiu $v1, $v1, 2 +/* 1002A0 7F0CB770 0066082A */ slt $at, $v1, $a2 +/* 1002A4 7F0CB774 1420FFEE */ bnez $at, .L7F0CB730 +/* 1002A8 7F0CB778 00491021 */ addu $v0, $v0, $t1 +/* 1002AC 7F0CB77C 10000016 */ b .L7F0CB7D8 +/* 1002B0 7F0CB780 00000000 */ nop +.L7F0CB784: +/* 1002B4 7F0CB784 28C10002 */ slti $at, $a2, 2 +/* 1002B8 7F0CB788 14200013 */ bnez $at, .L7F0CB7D8 +/* 1002BC 7F0CB78C 24030001 */ li $v1, 1 +/* 1002C0 7F0CB790 00A04825 */ move $t1, $a1 +/* 1002C4 7F0CB794 000950C0 */ sll $t2, $t1, 3 +/* 1002C8 7F0CB798 01404825 */ move $t1, $t2 +.L7F0CB79C: +/* 1002CC 7F0CB79C 18A0000A */ blez $a1, .L7F0CB7C8 +/* 1002D0 7F0CB7A0 00002025 */ move $a0, $zero +/* 1002D4 7F0CB7A4 00404025 */ move $t0, $v0 +.L7F0CB7A8: +/* 1002D8 7F0CB7A8 8D070000 */ lw $a3, ($t0) +/* 1002DC 7F0CB7AC 8D0B0004 */ lw $t3, 4($t0) +/* 1002E0 7F0CB7B0 24840002 */ addiu $a0, $a0, 2 +/* 1002E4 7F0CB7B4 0085082A */ slt $at, $a0, $a1 +/* 1002E8 7F0CB7B8 25080008 */ addiu $t0, $t0, 8 +/* 1002EC 7F0CB7BC AD07FFFC */ sw $a3, -4($t0) +/* 1002F0 7F0CB7C0 1420FFF9 */ bnez $at, .L7F0CB7A8 +/* 1002F4 7F0CB7C4 AD0BFFF8 */ sw $t3, -8($t0) +.L7F0CB7C8: +/* 1002F8 7F0CB7C8 24630002 */ addiu $v1, $v1, 2 +/* 1002FC 7F0CB7CC 0066082A */ slt $at, $v1, $a2 +/* 100300 7F0CB7D0 1420FFF2 */ bnez $at, .L7F0CB79C +/* 100304 7F0CB7D4 00491021 */ addu $v0, $v0, $t1 +.L7F0CB7D8: +/* 100308 7F0CB7D8 03E00008 */ jr $ra +/* 10030C 7F0CB7DC 27BD0010 */ addiu $sp, $sp, 0x10 +) +#endif + + + + + +#ifdef NONMATCHING +void type8_9_doohick(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BE64*/ +glabel jpt_8005BE64 +.word .L7F0CB8A8 +.word .L7F0CB8EC +.word .L7F0CB930 +.word .L7F0CB974 +.word .L7F0CB9C0 +.word .L7F0CBA1C +.word .L7F0CBA78 +.text +glabel type8_9_doohick +/* 100310 7F0CB7E0 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 100314 7F0CB7E4 AFB10008 */ sw $s1, 8($sp) +/* 100318 7F0CB7E8 AFB00004 */ sw $s0, 4($sp) +/* 10031C 7F0CB7EC 00808025 */ move $s0, $a0 +/* 100320 7F0CB7F0 00E08825 */ move $s1, $a3 +/* 100324 7F0CB7F4 AFB2000C */ sw $s2, 0xc($sp) +/* 100328 7F0CB7F8 18C000B9 */ blez $a2, .L7F0CBAE0 +/* 10032C 7F0CB7FC 00001025 */ move $v0, $zero +/* 100330 7F0CB800 8FA90020 */ lw $t1, 0x20($sp) +.L7F0CB804: +/* 100334 7F0CB804 18A000B3 */ blez $a1, .L7F0CBAD4 +/* 100338 7F0CB808 00001825 */ move $v1, $zero +/* 10033C 7F0CB80C 00450019 */ multu $v0, $a1 +/* 100340 7F0CB810 00095040 */ sll $t2, $t1, 1 +/* 100344 7F0CB814 02209025 */ move $s2, $s1 +/* 100348 7F0CB818 00003812 */ mflo $a3 +/* 10034C 7F0CB81C 00F04021 */ addu $t0, $a3, $s0 +/* 100350 7F0CB820 00000000 */ nop +.L7F0CB824: +/* 100354 7F0CB824 910E0000 */ lbu $t6, ($t0) +/* 100358 7F0CB828 2E410007 */ sltiu $at, $s2, 7 +/* 10035C 7F0CB82C 18600003 */ blez $v1, .L7F0CB83C +/* 100360 7F0CB830 01CA2021 */ addu $a0, $t6, $t2 +/* 100364 7F0CB834 10000002 */ b .L7F0CB840 +/* 100368 7F0CB838 910BFFFF */ lbu $t3, -1($t0) +.L7F0CB83C: +/* 10036C 7F0CB83C 00005825 */ move $t3, $zero +.L7F0CB840: +/* 100370 7F0CB840 18400008 */ blez $v0, .L7F0CB864 +/* 100374 7F0CB844 00006025 */ move $t4, $zero +/* 100378 7F0CB848 244FFFFF */ addiu $t7, $v0, -1 +/* 10037C 7F0CB84C 01E50019 */ multu $t7, $a1 +/* 100380 7F0CB850 0000C012 */ mflo $t8 +/* 100384 7F0CB854 0303C821 */ addu $t9, $t8, $v1 +/* 100388 7F0CB858 03307021 */ addu $t6, $t9, $s0 +/* 10038C 7F0CB85C 10000001 */ b .L7F0CB864 +/* 100390 7F0CB860 91CC0000 */ lbu $t4, ($t6) +.L7F0CB864: +/* 100394 7F0CB864 18600009 */ blez $v1, .L7F0CB88C +/* 100398 7F0CB868 00006825 */ move $t5, $zero +/* 10039C 7F0CB86C 18400007 */ blez $v0, .L7F0CB88C +/* 1003A0 7F0CB870 244FFFFF */ addiu $t7, $v0, -1 +/* 1003A4 7F0CB874 01E50019 */ multu $t7, $a1 +/* 1003A8 7F0CB878 0000C012 */ mflo $t8 +/* 1003AC 7F0CB87C 0303C821 */ addu $t9, $t8, $v1 +/* 1003B0 7F0CB880 03307021 */ addu $t6, $t9, $s0 +/* 1003B4 7F0CB884 10000001 */ b .L7F0CB88C +/* 1003B8 7F0CB888 91CDFFFF */ lbu $t5, -1($t6) +.L7F0CB88C: +/* 1003BC 7F0CB88C 1020008E */ beqz $at, .L7F0CBAC8 +/* 1003C0 7F0CB890 00127880 */ sll $t7, $s2, 2 +/* 1003C4 7F0CB894 3C018006 */ lui $at, %hi(jpt_8005BE64) +/* 1003C8 7F0CB898 002F0821 */ addu $at, $at, $t7 +/* 1003CC 7F0CB89C 8C2FBE64 */ lw $t7, %lo(jpt_8005BE64)($at) +/* 1003D0 7F0CB8A0 01E00008 */ jr $t7 +/* 1003D4 7F0CB8A4 00000000 */ nop +.L7F0CB8A8: +/* 1003D8 7F0CB8A8 008BC021 */ addu $t8, $a0, $t3 +/* 1003DC 7F0CB8AC 0309001A */ div $zero, $t8, $t1 +/* 1003E0 7F0CB8B0 02077021 */ addu $t6, $s0, $a3 +/* 1003E4 7F0CB8B4 01C37821 */ addu $t7, $t6, $v1 +/* 1003E8 7F0CB8B8 0000C810 */ mfhi $t9 +/* 1003EC 7F0CB8BC A1F90000 */ sb $t9, ($t7) +/* 1003F0 7F0CB8C0 15200002 */ bnez $t1, .L7F0CB8CC +/* 1003F4 7F0CB8C4 00000000 */ nop +/* 1003F8 7F0CB8C8 0007000D */ break 7 +.L7F0CB8CC: +/* 1003FC 7F0CB8CC 2401FFFF */ li $at, -1 +/* 100400 7F0CB8D0 15210004 */ bne $t1, $at, .L7F0CB8E4 +/* 100404 7F0CB8D4 3C018000 */ lui $at, 0x8000 +/* 100408 7F0CB8D8 17010002 */ bne $t8, $at, .L7F0CB8E4 +/* 10040C 7F0CB8DC 00000000 */ nop +/* 100410 7F0CB8E0 0006000D */ break 6 +.L7F0CB8E4: +/* 100414 7F0CB8E4 10000079 */ b .L7F0CBACC +/* 100418 7F0CB8E8 24630001 */ addiu $v1, $v1, 1 +.L7F0CB8EC: +/* 10041C 7F0CB8EC 008CC021 */ addu $t8, $a0, $t4 +/* 100420 7F0CB8F0 0309001A */ div $zero, $t8, $t1 +/* 100424 7F0CB8F4 0207C821 */ addu $t9, $s0, $a3 +/* 100428 7F0CB8F8 03237821 */ addu $t7, $t9, $v1 +/* 10042C 7F0CB8FC 00007010 */ mfhi $t6 +/* 100430 7F0CB900 A1EE0000 */ sb $t6, ($t7) +/* 100434 7F0CB904 15200002 */ bnez $t1, .L7F0CB910 +/* 100438 7F0CB908 00000000 */ nop +/* 10043C 7F0CB90C 0007000D */ break 7 +.L7F0CB910: +/* 100440 7F0CB910 2401FFFF */ li $at, -1 +/* 100444 7F0CB914 15210004 */ bne $t1, $at, .L7F0CB928 +/* 100448 7F0CB918 3C018000 */ lui $at, 0x8000 +/* 10044C 7F0CB91C 17010002 */ bne $t8, $at, .L7F0CB928 +/* 100450 7F0CB920 00000000 */ nop +/* 100454 7F0CB924 0006000D */ break 6 +.L7F0CB928: +/* 100458 7F0CB928 10000068 */ b .L7F0CBACC +/* 10045C 7F0CB92C 24630001 */ addiu $v1, $v1, 1 +.L7F0CB930: +/* 100460 7F0CB930 008DC021 */ addu $t8, $a0, $t5 +/* 100464 7F0CB934 0309001A */ div $zero, $t8, $t1 +/* 100468 7F0CB938 02077021 */ addu $t6, $s0, $a3 +/* 10046C 7F0CB93C 01C37821 */ addu $t7, $t6, $v1 +/* 100470 7F0CB940 0000C810 */ mfhi $t9 +/* 100474 7F0CB944 A1F90000 */ sb $t9, ($t7) +/* 100478 7F0CB948 15200002 */ bnez $t1, .L7F0CB954 +/* 10047C 7F0CB94C 00000000 */ nop +/* 100480 7F0CB950 0007000D */ break 7 +.L7F0CB954: +/* 100484 7F0CB954 2401FFFF */ li $at, -1 +/* 100488 7F0CB958 15210004 */ bne $t1, $at, .L7F0CB96C +/* 10048C 7F0CB95C 3C018000 */ lui $at, 0x8000 +/* 100490 7F0CB960 17010002 */ bne $t8, $at, .L7F0CB96C +/* 100494 7F0CB964 00000000 */ nop +/* 100498 7F0CB968 0006000D */ break 6 +.L7F0CB96C: +/* 10049C 7F0CB96C 10000057 */ b .L7F0CBACC +/* 1004A0 7F0CB970 24630001 */ addiu $v1, $v1, 1 +.L7F0CB974: +/* 1004A4 7F0CB974 016CC021 */ addu $t8, $t3, $t4 +/* 1004A8 7F0CB978 030D7023 */ subu $t6, $t8, $t5 +/* 1004AC 7F0CB97C 01C4C821 */ addu $t9, $t6, $a0 +/* 1004B0 7F0CB980 0329001A */ div $zero, $t9, $t1 +/* 1004B4 7F0CB984 0207C021 */ addu $t8, $s0, $a3 +/* 1004B8 7F0CB988 03037021 */ addu $t6, $t8, $v1 +/* 1004BC 7F0CB98C 00007810 */ mfhi $t7 +/* 1004C0 7F0CB990 A1CF0000 */ sb $t7, ($t6) +/* 1004C4 7F0CB994 15200002 */ bnez $t1, .L7F0CB9A0 +/* 1004C8 7F0CB998 00000000 */ nop +/* 1004CC 7F0CB99C 0007000D */ break 7 +.L7F0CB9A0: +/* 1004D0 7F0CB9A0 2401FFFF */ li $at, -1 +/* 1004D4 7F0CB9A4 15210004 */ bne $t1, $at, .L7F0CB9B8 +/* 1004D8 7F0CB9A8 3C018000 */ lui $at, 0x8000 +/* 1004DC 7F0CB9AC 17210002 */ bne $t9, $at, .L7F0CB9B8 +/* 1004E0 7F0CB9B0 00000000 */ nop +/* 1004E4 7F0CB9B4 0006000D */ break 6 +.L7F0CB9B8: +/* 1004E8 7F0CB9B8 10000044 */ b .L7F0CBACC +/* 1004EC 7F0CB9BC 24630001 */ addiu $v1, $v1, 1 +.L7F0CB9C0: +/* 1004F0 7F0CB9C0 018DC823 */ subu $t9, $t4, $t5 +/* 1004F4 7F0CB9C4 07210003 */ bgez $t9, .L7F0CB9D4 +/* 1004F8 7F0CB9C8 0019C043 */ sra $t8, $t9, 1 +/* 1004FC 7F0CB9CC 27210001 */ addiu $at, $t9, 1 +/* 100500 7F0CB9D0 0001C043 */ sra $t8, $at, 1 +.L7F0CB9D4: +/* 100504 7F0CB9D4 030B7821 */ addu $t7, $t8, $t3 +/* 100508 7F0CB9D8 01E47021 */ addu $t6, $t7, $a0 +/* 10050C 7F0CB9DC 01C9001A */ div $zero, $t6, $t1 +/* 100510 7F0CB9E0 0207C021 */ addu $t8, $s0, $a3 +/* 100514 7F0CB9E4 03037821 */ addu $t7, $t8, $v1 +/* 100518 7F0CB9E8 0000C810 */ mfhi $t9 +/* 10051C 7F0CB9EC A1F90000 */ sb $t9, ($t7) +/* 100520 7F0CB9F0 15200002 */ bnez $t1, .L7F0CB9FC +/* 100524 7F0CB9F4 00000000 */ nop +/* 100528 7F0CB9F8 0007000D */ break 7 +.L7F0CB9FC: +/* 10052C 7F0CB9FC 2401FFFF */ li $at, -1 +/* 100530 7F0CBA00 15210004 */ bne $t1, $at, .L7F0CBA14 +/* 100534 7F0CBA04 3C018000 */ lui $at, 0x8000 +/* 100538 7F0CBA08 15C10002 */ bne $t6, $at, .L7F0CBA14 +/* 10053C 7F0CBA0C 00000000 */ nop +/* 100540 7F0CBA10 0006000D */ break 6 +.L7F0CBA14: +/* 100544 7F0CBA14 1000002D */ b .L7F0CBACC +/* 100548 7F0CBA18 24630001 */ addiu $v1, $v1, 1 +.L7F0CBA1C: +/* 10054C 7F0CBA1C 016D7023 */ subu $t6, $t3, $t5 +/* 100550 7F0CBA20 05C10003 */ bgez $t6, .L7F0CBA30 +/* 100554 7F0CBA24 000EC043 */ sra $t8, $t6, 1 +/* 100558 7F0CBA28 25C10001 */ addiu $at, $t6, 1 +/* 10055C 7F0CBA2C 0001C043 */ sra $t8, $at, 1 +.L7F0CBA30: +/* 100560 7F0CBA30 030CC821 */ addu $t9, $t8, $t4 +/* 100564 7F0CBA34 03247821 */ addu $t7, $t9, $a0 +/* 100568 7F0CBA38 01E9001A */ div $zero, $t7, $t1 +/* 10056C 7F0CBA3C 0207C021 */ addu $t8, $s0, $a3 +/* 100570 7F0CBA40 0303C821 */ addu $t9, $t8, $v1 +/* 100574 7F0CBA44 00007010 */ mfhi $t6 +/* 100578 7F0CBA48 A32E0000 */ sb $t6, ($t9) +/* 10057C 7F0CBA4C 15200002 */ bnez $t1, .L7F0CBA58 +/* 100580 7F0CBA50 00000000 */ nop +/* 100584 7F0CBA54 0007000D */ break 7 +.L7F0CBA58: +/* 100588 7F0CBA58 2401FFFF */ li $at, -1 +/* 10058C 7F0CBA5C 15210004 */ bne $t1, $at, .L7F0CBA70 +/* 100590 7F0CBA60 3C018000 */ lui $at, 0x8000 +/* 100594 7F0CBA64 15E10002 */ bne $t7, $at, .L7F0CBA70 +/* 100598 7F0CBA68 00000000 */ nop +/* 10059C 7F0CBA6C 0006000D */ break 6 +.L7F0CBA70: +/* 1005A0 7F0CBA70 10000016 */ b .L7F0CBACC +/* 1005A4 7F0CBA74 24630001 */ addiu $v1, $v1, 1 +.L7F0CBA78: +/* 1005A8 7F0CBA78 016C7821 */ addu $t7, $t3, $t4 +/* 1005AC 7F0CBA7C 05E10003 */ bgez $t7, .L7F0CBA8C +/* 1005B0 7F0CBA80 000FC043 */ sra $t8, $t7, 1 +/* 1005B4 7F0CBA84 25E10001 */ addiu $at, $t7, 1 +/* 1005B8 7F0CBA88 0001C043 */ sra $t8, $at, 1 +.L7F0CBA8C: +/* 1005BC 7F0CBA8C 03047021 */ addu $t6, $t8, $a0 +/* 1005C0 7F0CBA90 01C9001A */ div $zero, $t6, $t1 +/* 1005C4 7F0CBA94 0000C810 */ mfhi $t9 +/* 1005C8 7F0CBA98 02077821 */ addu $t7, $s0, $a3 +/* 1005CC 7F0CBA9C 01E3C021 */ addu $t8, $t7, $v1 +/* 1005D0 7F0CBAA0 A3190000 */ sb $t9, ($t8) +/* 1005D4 7F0CBAA4 15200002 */ bnez $t1, .L7F0CBAB0 +/* 1005D8 7F0CBAA8 00000000 */ nop +/* 1005DC 7F0CBAAC 0007000D */ break 7 +.L7F0CBAB0: +/* 1005E0 7F0CBAB0 2401FFFF */ li $at, -1 +/* 1005E4 7F0CBAB4 15210004 */ bne $t1, $at, .L7F0CBAC8 +/* 1005E8 7F0CBAB8 3C018000 */ lui $at, 0x8000 +/* 1005EC 7F0CBABC 15C10002 */ bne $t6, $at, .L7F0CBAC8 +/* 1005F0 7F0CBAC0 00000000 */ nop +/* 1005F4 7F0CBAC4 0006000D */ break 6 +def_7F0CB8A0: +.L7F0CBAC8: +/* 1005F8 7F0CBAC8 24630001 */ addiu $v1, $v1, 1 +.L7F0CBACC: +/* 1005FC 7F0CBACC 1465FF55 */ bne $v1, $a1, .L7F0CB824 +/* 100600 7F0CBAD0 25080001 */ addiu $t0, $t0, 1 +.L7F0CBAD4: +/* 100604 7F0CBAD4 24420001 */ addiu $v0, $v0, 1 +/* 100608 7F0CBAD8 1446FF4A */ bne $v0, $a2, .L7F0CB804 +/* 10060C 7F0CBADC 00000000 */ nop +.L7F0CBAE0: +/* 100610 7F0CBAE0 8FB00004 */ lw $s0, 4($sp) +/* 100614 7F0CBAE4 8FB10008 */ lw $s1, 8($sp) +/* 100618 7F0CBAE8 8FB2000C */ lw $s2, 0xc($sp) +/* 10061C 7F0CBAEC 03E00008 */ jr $ra +/* 100620 7F0CBAF0 27BD0010 */ addiu $sp, $sp, 0x10 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CBAF4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CBAF4 +/* 100624 7F0CBAF4 00A61021 */ addu $v0, $a1, $a2 +/* 100628 7F0CBAF8 AC850000 */ sw $a1, ($a0) +/* 10062C 7F0CBAFC AC820004 */ sw $v0, 4($a0) +/* 100630 7F0CBB00 AC850008 */ sw $a1, 8($a0) +/* 100634 7F0CBB04 03E00008 */ jr $ra +/* 100638 7F0CBB08 AC82000C */ sw $v0, 0xc($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CBB0C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CBB0C +/* 10063C 7F0CBB0C 54A00004 */ bnezl $a1, .L7F0CBB20 +/* 100640 7F0CBB10 8CA20004 */ lw $v0, 4($a1) +/* 100644 7F0CBB14 3C058009 */ lui $a1, %hi(ptr_texture_alloc_start) +/* 100648 7F0CBB18 24A5C720 */ addiu $a1, %lo(ptr_texture_alloc_start) # addiu $a1, $a1, -0x38e0 +/* 10064C 7F0CBB1C 8CA20004 */ lw $v0, 4($a1) +.L7F0CBB20: +/* 100650 7F0CBB20 8CA3000C */ lw $v1, 0xc($a1) +/* 100654 7F0CBB24 0062082B */ sltu $at, $v1, $v0 +/* 100658 7F0CBB28 5020000C */ beql $at, $zero, .L7F0CBB5C +/* 10065C 7F0CBB2C 00001025 */ move $v0, $zero +/* 100660 7F0CBB30 8C6E0000 */ lw $t6, ($v1) +.L7F0CBB34: +/* 100664 7F0CBB34 000E7D02 */ srl $t7, $t6, 0x14 +/* 100668 7F0CBB38 548F0004 */ bnel $a0, $t7, .L7F0CBB4C +/* 10066C 7F0CBB3C 24630010 */ addiu $v1, $v1, 0x10 +/* 100670 7F0CBB40 03E00008 */ jr $ra +/* 100674 7F0CBB44 00601025 */ move $v0, $v1 + +/* 100678 7F0CBB48 24630010 */ addiu $v1, $v1, 0x10 +.L7F0CBB4C: +/* 10067C 7F0CBB4C 0062082B */ sltu $at, $v1, $v0 +/* 100680 7F0CBB50 5420FFF8 */ bnezl $at, .L7F0CBB34 +/* 100684 7F0CBB54 8C6E0000 */ lw $t6, ($v1) +/* 100688 7F0CBB58 00001025 */ move $v0, $zero +.L7F0CBB5C: +/* 10068C 7F0CBB5C 03E00008 */ jr $ra +/* 100690 7F0CBB60 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CBB64(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CBB64 +/* 100694 7F0CBB64 8C8E000C */ lw $t6, 0xc($a0) +/* 100698 7F0CBB68 8C8F0008 */ lw $t7, 8($a0) +/* 10069C 7F0CBB6C 03E00008 */ jr $ra +/* 1006A0 7F0CBB70 01CF1023 */ subu $v0, $t6, $t7 +) +#endif + + + + + +#ifdef NONMATCHING +void check_load_image_to_buffer(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_load_image_to_buffer +/* 1006A4 7F0CBB74 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 1006A8 7F0CBB78 AFBF002C */ sw $ra, 0x2c($sp) +/* 1006AC 7F0CBB7C AFB50028 */ sw $s5, 0x28($sp) +/* 1006B0 7F0CBB80 AFB40024 */ sw $s4, 0x24($sp) +/* 1006B4 7F0CBB84 AFB30020 */ sw $s3, 0x20($sp) +/* 1006B8 7F0CBB88 AFB2001C */ sw $s2, 0x1c($sp) +/* 1006BC 7F0CBB8C AFB10018 */ sw $s1, 0x18($sp) +/* 1006C0 7F0CBB90 AFB00014 */ sw $s0, 0x14($sp) +/* 1006C4 7F0CBB94 908E0000 */ lbu $t6, ($a0) +/* 1006C8 7F0CBB98 241200B8 */ li $s2, 184 +/* 1006CC 7F0CBB9C 00A08825 */ move $s1, $a1 +/* 1006D0 7F0CBBA0 124E0014 */ beq $s2, $t6, .L7F0CBBF4 +/* 1006D4 7F0CBBA4 00808025 */ move $s0, $a0 +/* 1006D8 7F0CBBA8 90820000 */ lbu $v0, ($a0) +/* 1006DC 7F0CBBAC 241500CD */ li $s5, 205 +/* 1006E0 7F0CBBB0 241400AB */ li $s4, 171 +/* 1006E4 7F0CBBB4 241300FD */ li $s3, 253 +.L7F0CBBB8: +/* 1006E8 7F0CBBB8 5662000B */ bnel $s3, $v0, .L7F0CBBE8 +/* 1006EC 7F0CBBBC 92020008 */ lbu $v0, 8($s0) +/* 1006F0 7F0CBBC0 920F0004 */ lbu $t7, 4($s0) +/* 1006F4 7F0CBBC4 568F0008 */ bnel $s4, $t7, .L7F0CBBE8 +/* 1006F8 7F0CBBC8 92020008 */ lbu $v0, 8($s0) +/* 1006FC 7F0CBBCC 92180005 */ lbu $t8, 5($s0) +/* 100700 7F0CBBD0 26040004 */ addiu $a0, $s0, 4 +/* 100704 7F0CBBD4 56B80004 */ bnel $s5, $t8, .L7F0CBBE8 +/* 100708 7F0CBBD8 92020008 */ lbu $v0, 8($s0) +/* 10070C 7F0CBBDC 0FC32F06 */ jal load_image_to_buffer +/* 100710 7F0CBBE0 02202825 */ move $a1, $s1 +/* 100714 7F0CBBE4 92020008 */ lbu $v0, 8($s0) +.L7F0CBBE8: +/* 100718 7F0CBBE8 26100008 */ addiu $s0, $s0, 8 +/* 10071C 7F0CBBEC 1642FFF2 */ bne $s2, $v0, .L7F0CBBB8 +/* 100720 7F0CBBF0 00000000 */ nop +.L7F0CBBF4: +/* 100724 7F0CBBF4 8FBF002C */ lw $ra, 0x2c($sp) +/* 100728 7F0CBBF8 8FB00014 */ lw $s0, 0x14($sp) +/* 10072C 7F0CBBFC 8FB10018 */ lw $s1, 0x18($sp) +/* 100730 7F0CBC00 8FB2001C */ lw $s2, 0x1c($sp) +/* 100734 7F0CBC04 8FB30020 */ lw $s3, 0x20($sp) +/* 100738 7F0CBC08 8FB40024 */ lw $s4, 0x24($sp) +/* 10073C 7F0CBC0C 8FB50028 */ lw $s5, 0x28($sp) +/* 100740 7F0CBC10 03E00008 */ jr $ra +/* 100744 7F0CBC14 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void load_image_to_buffer(void) { + +} +#else +GLOBAL_ASM( +.text +glabel load_image_to_buffer +/* 100748 7F0CBC18 27BDF008 */ addiu $sp, $sp, -0xff8 +/* 10074C 7F0CBC1C AFB00020 */ sw $s0, 0x20($sp) +/* 100750 7F0CBC20 00A08025 */ move $s0, $a1 +/* 100754 7F0CBC24 AFBF0024 */ sw $ra, 0x24($sp) +/* 100758 7F0CBC28 14A00003 */ bnez $a1, .L7F0CBC38 +/* 10075C 7F0CBC2C AFA40FF8 */ sw $a0, 0xff8($sp) +/* 100760 7F0CBC30 3C108009 */ lui $s0, %hi(ptr_texture_alloc_start) +/* 100764 7F0CBC34 2610C720 */ addiu $s0, %lo(ptr_texture_alloc_start) # addiu $s0, $s0, -0x38e0 +.L7F0CBC38: +/* 100768 7F0CBC38 8FAE0FF8 */ lw $t6, 0xff8($sp) +/* 10076C 7F0CBC3C 3C028009 */ lui $v0, %hi(dword_CODE_bss_8008D094) +/* 100770 7F0CBC40 2442D094 */ addiu $v0, %lo(dword_CODE_bss_8008D094) # addiu $v0, $v0, -0x2f6c +/* 100774 7F0CBC44 8DCF0000 */ lw $t7, ($t6) +/* 100778 7F0CBC48 02002825 */ move $a1, $s0 +/* 10077C 7F0CBC4C 31E4FFFF */ andi $a0, $t7, 0xffff +/* 100780 7F0CBC50 0FC32EC3 */ jal sub_GAME_7F0CBB0C +/* 100784 7F0CBC54 AC440000 */ sw $a0, ($v0) +/* 100788 7F0CBC58 14400074 */ bnez $v0, .L7F0CBE2C +/* 10078C 7F0CBC5C 00401825 */ move $v1, $v0 +/* 100790 7F0CBC60 27A30067 */ addiu $v1, $sp, 0x67 +/* 100794 7F0CBC64 0003C902 */ srl $t9, $v1, 4 +/* 100798 7F0CBC68 00194100 */ sll $t0, $t9, 4 +/* 10079C 7F0CBC6C 0C0034C8 */ jal osWritebackDCacheAll +/* 1007A0 7F0CBC70 AFA8002C */ sw $t0, 0x2c($sp) +/* 1007A4 7F0CBC74 8FA4002C */ lw $a0, 0x2c($sp) +/* 1007A8 7F0CBC78 0C0042C8 */ jal osInvalDCache +/* 1007AC 7F0CBC7C 24052000 */ li $a1, 8192 +/* 1007B0 7F0CBC80 3C098009 */ lui $t1, %hi(dword_CODE_bss_8008D094) +/* 1007B4 7F0CBC84 8D29D094 */ lw $t1, %lo(dword_CODE_bss_8008D094)($t1) +/* 1007B8 7F0CBC88 3C0B8005 */ lui $t3, %hi(image_entries) +/* 1007BC 7F0CBC8C 256B9300 */ addiu $t3, %lo(image_entries) # addiu $t3, $t3, -0x6d00 +/* 1007C0 7F0CBC90 000950C0 */ sll $t2, $t1, 3 +/* 1007C4 7F0CBC94 014B1021 */ addu $v0, $t2, $t3 +/* 1007C8 7F0CBC98 8C430000 */ lw $v1, ($v0) +/* 1007CC 7F0CBC9C 8C470008 */ lw $a3, 8($v0) +/* 1007D0 7F0CBCA0 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 1007D4 7F0CBCA4 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 1007D8 7F0CBCA8 00616024 */ and $t4, $v1, $at +/* 1007DC 7F0CBCAC 00E16824 */ and $t5, $a3, $at +/* 1007E0 7F0CBCB0 01AC3023 */ subu $a2, $t5, $t4 +/* 1007E4 7F0CBCB4 24C6001F */ addiu $a2, $a2, 0x1f +/* 1007E8 7F0CBCB8 2401FFF8 */ li $at, -8 +/* 1007EC 7F0CBCBC 3C0F008F */ lui $t7, %hi(_imagesSegmentRomStart) # $t7, 0x8f +/* 1007F0 7F0CBCC0 25EF7DF0 */ addiu $t7, %lo(_imagesSegmentRomStart) # addiu $t7, $t7, 0x7df0 +/* 1007F4 7F0CBCC4 01817024 */ and $t6, $t4, $at +/* 1007F8 7F0CBCC8 0006C102 */ srl $t8, $a2, 4 +/* 1007FC 7F0CBCCC 00183100 */ sll $a2, $t8, 4 +/* 100800 7F0CBCD0 01CF2821 */ addu $a1, $t6, $t7 +/* 100804 7F0CBCD4 AFAC003C */ sw $t4, 0x3c($sp) +/* 100808 7F0CBCD8 0C001707 */ jal romCopy +/* 10080C 7F0CBCDC 8FA4002C */ lw $a0, 0x2c($sp) +/* 100810 7F0CBCE0 8FA3003C */ lw $v1, 0x3c($sp) +/* 100814 7F0CBCE4 8FA8002C */ lw $t0, 0x2c($sp) +/* 100818 7F0CBCE8 02002025 */ move $a0, $s0 +/* 10081C 7F0CBCEC 30690007 */ andi $t1, $v1, 7 +/* 100820 7F0CBCF0 01095021 */ addu $t2, $t0, $t1 +/* 100824 7F0CBCF4 AFAA0054 */ sw $t2, 0x54($sp) +/* 100828 7F0CBCF8 91420000 */ lbu $v0, ($t2) +/* 10082C 7F0CBCFC 254D0001 */ addiu $t5, $t2, 1 +/* 100830 7F0CBD00 AFAD0054 */ sw $t5, 0x54($sp) +/* 100834 7F0CBD04 30460080 */ andi $a2, $v0, 0x80 +/* 100838 7F0CBD08 30450040 */ andi $a1, $v0, 0x40 +/* 10083C 7F0CBD0C 000659C3 */ sra $t3, $a2, 7 +/* 100840 7F0CBD10 00056183 */ sra $t4, $a1, 6 +/* 100844 7F0CBD14 01603025 */ move $a2, $t3 +/* 100848 7F0CBD18 01802825 */ move $a1, $t4 +/* 10084C 7F0CBD1C 1580000A */ bnez $t4, .L7F0CBD48 +/* 100850 7F0CBD20 3047003F */ andi $a3, $v0, 0x3f +/* 100854 7F0CBD24 AFAC004C */ sw $t4, 0x4c($sp) +/* 100858 7F0CBD28 AFAB0050 */ sw $t3, 0x50($sp) +/* 10085C 7F0CBD2C 0FC32ED9 */ jal sub_GAME_7F0CBB64 +/* 100860 7F0CBD30 AFA70048 */ sw $a3, 0x48($sp) +/* 100864 7F0CBD34 284110CC */ slti $at, $v0, 0x10cc +/* 100868 7F0CBD38 8FA5004C */ lw $a1, 0x4c($sp) +/* 10086C 7F0CBD3C 8FA60050 */ lw $a2, 0x50($sp) +/* 100870 7F0CBD40 1420000C */ bnez $at, .L7F0CBD74 +/* 100874 7F0CBD44 8FA70048 */ lw $a3, 0x48($sp) +.L7F0CBD48: +/* 100878 7F0CBD48 10A0000F */ beqz $a1, .L7F0CBD88 +/* 10087C 7F0CBD4C 02002025 */ move $a0, $s0 +/* 100880 7F0CBD50 AFA5004C */ sw $a1, 0x4c($sp) +/* 100884 7F0CBD54 AFA60050 */ sw $a2, 0x50($sp) +/* 100888 7F0CBD58 0FC32ED9 */ jal sub_GAME_7F0CBB64 +/* 10088C 7F0CBD5C AFA70048 */ sw $a3, 0x48($sp) +/* 100890 7F0CBD60 28410A28 */ slti $at, $v0, 0xa28 +/* 100894 7F0CBD64 8FA5004C */ lw $a1, 0x4c($sp) +/* 100898 7F0CBD68 8FA60050 */ lw $a2, 0x50($sp) +/* 10089C 7F0CBD6C 10200006 */ beqz $at, .L7F0CBD88 +/* 1008A0 7F0CBD70 8FA70048 */ lw $a3, 0x48($sp) +.L7F0CBD74: +/* 1008A4 7F0CBD74 0C003A2C */ jal osVirtualToPhysical +/* 1008A8 7F0CBD78 8E040000 */ lw $a0, ($s0) +/* 1008AC 7F0CBD7C 8FAE0FF8 */ lw $t6, 0xff8($sp) +/* 1008B0 7F0CBD80 1000002E */ b .L7F0CBE3C +/* 1008B4 7F0CBD84 ADC20000 */ sw $v0, ($t6) +.L7F0CBD88: +/* 1008B8 7F0CBD88 3C0F8009 */ lui $t7, %hi(dword_CODE_bss_8008D094) +/* 1008BC 7F0CBD8C 8E020008 */ lw $v0, 8($s0) +/* 1008C0 7F0CBD90 8DEFD094 */ lw $t7, %lo(dword_CODE_bss_8008D094)($t7) +/* 1008C4 7F0CBD94 3C0B8009 */ lui $t3, %hi(dword_CODE_bss_8008D094) +/* 1008C8 7F0CBD98 A44F0000 */ sh $t7, ($v0) +/* 1008CC 7F0CBD9C 8E180008 */ lw $t8, 8($s0) +/* 1008D0 7F0CBDA0 8E08000C */ lw $t0, 0xc($s0) +/* 1008D4 7F0CBDA4 27190008 */ addiu $t9, $t8, 8 +/* 1008D8 7F0CBDA8 2509FFF0 */ addiu $t1, $t0, -0x10 +/* 1008DC 7F0CBDAC AE190008 */ sw $t9, 8($s0) +/* 1008E0 7F0CBDB0 AE09000C */ sw $t1, 0xc($s0) +/* 1008E4 7F0CBDB4 952E0000 */ lhu $t6, ($t1) +/* 1008E8 7F0CBDB8 8D6CD094 */ lw $t4, %lo(dword_CODE_bss_8008D094)($t3) +/* 1008EC 7F0CBDBC 01201825 */ move $v1, $t1 +/* 1008F0 7F0CBDC0 31CF000F */ andi $t7, $t6, 0xf +/* 1008F4 7F0CBDC4 000C6900 */ sll $t5, $t4, 4 +/* 1008F8 7F0CBDC8 01AFC025 */ or $t8, $t5, $t7 +/* 1008FC 7F0CBDCC A5380000 */ sh $t8, ($t1) +/* 100900 7F0CBDD0 8E190008 */ lw $t9, 8($s0) +/* 100904 7F0CBDD4 10A00008 */ beqz $a1, .L7F0CBDF8 +/* 100908 7F0CBDD8 AD390004 */ sw $t9, 4($t1) +/* 10090C 7F0CBDDC 8E050008 */ lw $a1, 8($s0) +/* 100910 7F0CBDE0 AFA90044 */ sw $t1, 0x44($sp) +/* 100914 7F0CBDE4 AFB00010 */ sw $s0, 0x10($sp) +/* 100918 7F0CBDE8 0FC31996 */ jal image_related_calls_decompressdata_function +/* 10091C 7F0CBDEC 8FA40054 */ lw $a0, 0x54($sp) +/* 100920 7F0CBDF0 10000007 */ b .L7F0CBE10 +/* 100924 7F0CBDF4 8FA30044 */ lw $v1, 0x44($sp) +.L7F0CBDF8: +/* 100928 7F0CBDF8 8E050008 */ lw $a1, 8($s0) +/* 10092C 7F0CBDFC AFA30044 */ sw $v1, 0x44($sp) +/* 100930 7F0CBE00 AFB00010 */ sw $s0, 0x10($sp) +/* 100934 7F0CBE04 0FC31F7F */ jal process_huffman_compressed_images +/* 100938 7F0CBE08 8FA40054 */ lw $a0, 0x54($sp) +/* 10093C 7F0CBE0C 8FA30044 */ lw $v1, 0x44($sp) +.L7F0CBE10: +/* 100940 7F0CBE10 8E080008 */ lw $t0, 8($s0) +/* 100944 7F0CBE14 02002025 */ move $a0, $s0 +/* 100948 7F0CBE18 01024821 */ addu $t1, $t0, $v0 +/* 10094C 7F0CBE1C AE090008 */ sw $t1, 8($s0) +/* 100950 7F0CBE20 0FC32ED9 */ jal sub_GAME_7F0CBB64 +/* 100954 7F0CBE24 AFA30044 */ sw $v1, 0x44($sp) +/* 100958 7F0CBE28 8FA30044 */ lw $v1, 0x44($sp) +.L7F0CBE2C: +/* 10095C 7F0CBE2C 0C003A2C */ jal osVirtualToPhysical +/* 100960 7F0CBE30 8C640004 */ lw $a0, 4($v1) +/* 100964 7F0CBE34 8FAB0FF8 */ lw $t3, 0xff8($sp) +/* 100968 7F0CBE38 AD620000 */ sw $v0, ($t3) +.L7F0CBE3C: +/* 10096C 7F0CBE3C 8FBF0024 */ lw $ra, 0x24($sp) +/* 100970 7F0CBE40 8FB00020 */ lw $s0, 0x20($sp) +/* 100974 7F0CBE44 27BD0FF8 */ addiu $sp, $sp, 0xff8 +/* 100978 7F0CBE48 03E00008 */ jr $ra +/* 10097C 7F0CBE4C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CBE50(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CBE50 +/* 100980 7F0CBE50 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 100984 7F0CBE54 AFBF002C */ sw $ra, 0x2c($sp) +/* 100988 7F0CBE58 AFB50028 */ sw $s5, 0x28($sp) +/* 10098C 7F0CBE5C AFB40024 */ sw $s4, 0x24($sp) +/* 100990 7F0CBE60 AFB30020 */ sw $s3, 0x20($sp) +/* 100994 7F0CBE64 AFB2001C */ sw $s2, 0x1c($sp) +/* 100998 7F0CBE68 AFB10018 */ sw $s1, 0x18($sp) +/* 10099C 7F0CBE6C AFB00014 */ sw $s0, 0x14($sp) +/* 1009A0 7F0CBE70 84820016 */ lh $v0, 0x16($a0) +/* 1009A4 7F0CBE74 0080A025 */ move $s4, $a0 +/* 1009A8 7F0CBE78 00A0A825 */ move $s5, $a1 +/* 1009AC 7F0CBE7C 8C930018 */ lw $s3, 0x18($a0) +/* 1009B0 7F0CBE80 18400010 */ blez $v0, .L7F0CBEC4 +/* 1009B4 7F0CBE84 00009025 */ move $s2, $zero +/* 1009B8 7F0CBE88 00008025 */ move $s0, $zero +/* 1009BC 7F0CBE8C 02608825 */ move $s1, $s3 +.L7F0CBE90: +/* 1009C0 7F0CBE90 8E2E0000 */ lw $t6, ($s1) +/* 1009C4 7F0CBE94 02132021 */ addu $a0, $s0, $s3 +/* 1009C8 7F0CBE98 29C10BB9 */ slti $at, $t6, 0xbb9 +/* 1009CC 7F0CBE9C 50200005 */ beql $at, $zero, .L7F0CBEB4 +/* 1009D0 7F0CBEA0 26520001 */ addiu $s2, $s2, 1 +/* 1009D4 7F0CBEA4 0FC32F06 */ jal load_image_to_buffer +/* 1009D8 7F0CBEA8 02A02825 */ move $a1, $s5 +/* 1009DC 7F0CBEAC 86820016 */ lh $v0, 0x16($s4) +/* 1009E0 7F0CBEB0 26520001 */ addiu $s2, $s2, 1 +.L7F0CBEB4: +/* 1009E4 7F0CBEB4 0242082A */ slt $at, $s2, $v0 +/* 1009E8 7F0CBEB8 2610000C */ addiu $s0, $s0, 0xc +/* 1009EC 7F0CBEBC 1420FFF4 */ bnez $at, .L7F0CBE90 +/* 1009F0 7F0CBEC0 2631000C */ addiu $s1, $s1, 0xc +.L7F0CBEC4: +/* 1009F4 7F0CBEC4 8FBF002C */ lw $ra, 0x2c($sp) +/* 1009F8 7F0CBEC8 8FB00014 */ lw $s0, 0x14($sp) +/* 1009FC 7F0CBECC 8FB10018 */ lw $s1, 0x18($sp) +/* 100A00 7F0CBED0 8FB2001C */ lw $s2, 0x1c($sp) +/* 100A04 7F0CBED4 8FB30020 */ lw $s3, 0x20($sp) +/* 100A08 7F0CBED8 8FB40024 */ lw $s4, 0x24($sp) +/* 100A0C 7F0CBEDC 8FB50028 */ lw $s5, 0x28($sp) +/* 100A10 7F0CBEE0 03E00008 */ jr $ra +/* 100A14 7F0CBEE4 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void calls_load_image_to_buffer(uint *image,uint *buffer) +{ + load_image_to_buffer(&image,buffer); +} +#else +GLOBAL_ASM( +.text +glabel calls_load_image_to_buffer +/* 100A18 7F0CBEE8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 100A1C 7F0CBEEC AFBF0014 */ sw $ra, 0x14($sp) +/* 100A20 7F0CBEF0 AFA4001C */ sw $a0, 0x1c($sp) +/* 100A24 7F0CBEF4 0FC32F06 */ jal load_image_to_buffer +/* 100A28 7F0CBEF8 27A4001C */ addiu $a0, $sp, 0x1c +/* 100A2C 7F0CBEFC 8FBF0014 */ lw $ra, 0x14($sp) +/* 100A30 7F0CBF00 27BD0020 */ addiu $sp, $sp, 0x20 +/* 100A34 7F0CBF04 03E00008 */ jr $ra +/* 100A38 7F0CBF08 00000000 */ nop +) +#endif + + diff --git a/src/game/image.h b/src/game/image.h new file mode 100644 index 0000000..297a603 --- /dev/null +++ b/src/game/image.h @@ -0,0 +1,19 @@ +#ifndef _IMAGE_H_ +#define _IMAGE_H_ +#include "ultra64.h" + +struct image_entry +{ + char flag1; //HitType + char flag2; //remove this line + u16 size; //this is u32 Size:24 - 24bit size/address + char flag3; //Detailflag1 used once with value 0x38D2 (S/T offset of detail) + char flag4; //DetailFlag2 difference from detail image, to large image, in terms of 2 to the power of value. It is subtracted from the small one, and absolute value or something. (Zoinkity) + char flag5; //padding + char flag6; //padding +}; + +extern s32 ptr_texture_alloc_start; +extern struct image_entry image_entries[]; + +#endif diff --git a/src/game/image_bank.c b/src/game/image_bank.c new file mode 100644 index 0000000..d5d51b2 --- /dev/null +++ b/src/game/image_bank.c @@ -0,0 +1,559 @@ +#include "ultra64.h" +#include "ramrom.h" + +// bss +//8008D0A0 +s32 img_curpos; +//8008D0A4 +s32 img_curdatatable; +//8008D0A8 +s32 img_bitcount; +//8008D0AC +s32 dword_CODE_bss_8008D0AC; +//8008D0B0; +s32 globalbank_rdram_offset; +//8008D0B4; +s32 *pGlobalimagetable; +//8008D0B8; +struct sImageTableEntry *genericimage; +//8008D0BC +struct sImageTableEntry *impactimages; +//8008D0C0 +struct sImageTableEntry *explosion_smokeimages; +//8008D0C4 +struct sImageTableEntry *scattered_explosions; +//8008D0C8 +struct sImageTableEntry *flareimage1; +//8008D0CC +struct sImageTableEntry *flareimage2; +//8008D0D0 +struct sImageTableEntry *flareimage3; +//8008D0D4 +struct sImageTableEntry *flareimage4; +//8008D0D8 +struct sImageTableEntry *flareimage5; +//8008D0DC +struct sImageTableEntry *ammo9mmimage; +//8008D0E0 +struct sImageTableEntry *rifleammoimage; +//8008D0E4 +struct sImageTableEntry *shotgunammoimage; +//8008D0E8 +struct sImageTableEntry *knifeammoimage; +//8008D0EC +struct sImageTableEntry *glaunchammoimage; +//8008D0F0 +struct sImageTableEntry *rocketammoimage; +//8008D0F4 +struct sImageTableEntry *genericmineammoimage; +//8008D0F8 +struct sImageTableEntry *grenadeammoimage; +//8008D0FC +struct sImageTableEntry *magnumammoimage; +//8008D100 +struct sImageTableEntry *goldengunammoimage; +//8008D104 +struct sImageTableEntry *remotemineammoimage; +//8008D108 +struct sImageTableEntry *timedmineammoimage; +//8008D10C +struct sImageTableEntry *proxmineammoimage; +//8008D110 +struct sImageTableEntry *tankammoimage; +//8008D114; +struct sImageTableEntry *crosshairimage; +//8008D118 +struct sImageTableEntry *betacrosshairimage; +//8008D11C +struct sImageTableEntry *glassoverlayimage; +//8008D120 +struct sImageTableEntry *monitorimages; +//8008D124 +struct sImageTableEntry *skywaterimages; +//8008D128 +struct sImageTableEntry *mainfolderimages; +//8008D12C +struct sImageTableEntry *mpradarimages; +//8008D130 +struct sImageTableEntry *mpcharselimages; +//8008D134 +struct sImageTableEntry *mpstageselimages; + + +extern u8* _GlobalimagetableSegmentRomStart; + + +void makeemptyimageatpos(s32 pos) { + img_curpos = pos; + img_curdatatable = 0; + img_bitcount = 0; +} + + + + + +#ifdef NONMATCHING +u32 sub_GAME_7F0CBF2C(s32 bits) +{ + byte bVar1; + + if (img_bitcount < bits) { + do { + img_bitcount = img_bitcount + 8; + bVar1 = *img_curpos; + img_curpos = img_curpos + 1; + img_curdatatable = bVar1 | img_curdatatable << 8; + } while (img_bitcount < bits); + } + img_bitcount = img_bitcount - bits; + return img_curdatatable >> (img_bitcount & 0x1f) & (1 << (bits & 0x1f)) - 1U; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CBF2C +/* 100A5C 7F0CBF2C 3C058009 */ lui $a1, %hi(img_bitcount) +/* 100A60 7F0CBF30 24A5D0A8 */ addiu $a1, %lo(img_bitcount) # addiu $a1, $a1, -0x2f58 +/* 100A64 7F0CBF34 8CA30000 */ lw $v1, ($a1) +/* 100A68 7F0CBF38 3C078009 */ lui $a3, %hi(img_curpos) +/* 100A6C 7F0CBF3C 24E7D0A0 */ addiu $a3, %lo(img_curpos) # addiu $a3, $a3, -0x2f60 +/* 100A70 7F0CBF40 0064082A */ slt $at, $v1, $a0 +/* 100A74 7F0CBF44 1020000F */ beqz $at, .L7F0CBF84 +/* 100A78 7F0CBF48 3C068009 */ lui $a2, %hi(img_curdatatable) +/* 100A7C 7F0CBF4C 24C6D0A4 */ addiu $a2, %lo(img_curdatatable) # addiu $a2, $a2, -0x2f5c +.L7F0CBF50: +/* 100A80 7F0CBF50 8CE20000 */ lw $v0, ($a3) +/* 100A84 7F0CBF54 8CCF0000 */ lw $t7, ($a2) +/* 100A88 7F0CBF58 24690008 */ addiu $t1, $v1, 8 +/* 100A8C 7F0CBF5C 904E0000 */ lbu $t6, ($v0) +/* 100A90 7F0CBF60 000FC200 */ sll $t8, $t7, 8 +/* 100A94 7F0CBF64 0124082A */ slt $at, $t1, $a0 +/* 100A98 7F0CBF68 24480001 */ addiu $t0, $v0, 1 +/* 100A9C 7F0CBF6C 01D8C825 */ or $t9, $t6, $t8 +/* 100AA0 7F0CBF70 ACD90000 */ sw $t9, ($a2) +/* 100AA4 7F0CBF74 ACE80000 */ sw $t0, ($a3) +/* 100AA8 7F0CBF78 ACA90000 */ sw $t1, ($a1) +/* 100AAC 7F0CBF7C 1420FFF4 */ bnez $at, .L7F0CBF50 +/* 100AB0 7F0CBF80 01201825 */ move $v1, $t1 +.L7F0CBF84: +/* 100AB4 7F0CBF84 3C068009 */ lui $a2, %hi(img_curdatatable) +/* 100AB8 7F0CBF88 24C6D0A4 */ addiu $a2, %lo(img_curdatatable) # addiu $a2, $a2, -0x2f5c +/* 100ABC 7F0CBF8C 8CCB0000 */ lw $t3, ($a2) +/* 100AC0 7F0CBF90 240F0001 */ li $t7, 1 +/* 100AC4 7F0CBF94 00645023 */ subu $t2, $v1, $a0 +/* 100AC8 7F0CBF98 008F7004 */ sllv $t6, $t7, $a0 +/* 100ACC 7F0CBF9C 25D8FFFF */ addiu $t8, $t6, -1 +/* 100AD0 7F0CBFA0 014B6806 */ srlv $t5, $t3, $t2 +/* 100AD4 7F0CBFA4 ACAA0000 */ sw $t2, ($a1) +/* 100AD8 7F0CBFA8 03E00008 */ jr $ra +/* 100ADC 7F0CBFAC 01B81024 */ and $v0, $t5, $t8 +) +#endif + + + + + +#ifdef NONMATCHING +void load_prepare_global_image_bank(void) { + s32 size; + s32 i; + + size = (0x2001400 - 0x2000000); + pGlobalimagetable = ((mempAllocBytesInBank((size + 0x1000), 4) + 0xfff) & -0x1000); + romCopy(pGlobalimagetable, _GlobalimagetableSegmentRomStart, size); + globalbank_rdram_offset = (pGlobalimagetable + 0xfe000000); + genericimage = (s32) (globalbank_rdram_offset + 0x2000ac8); + impactimages = (s32) (globalbank_rdram_offset + 0x2000ad4); + explosion_smokeimages = (s32) (globalbank_rdram_offset + 0x2000bc4); + scattered_explosions = (s32) (globalbank_rdram_offset + 0x2000c0c); + flareimage1 = (s32) (globalbank_rdram_offset + 0x2000c48); + flareimage2 = (s32) (globalbank_rdram_offset + 0x2000c54); + flareimage3 = (s32) (globalbank_rdram_offset + 0x2000c60); + flareimage4 = (s32) (globalbank_rdram_offset + 0x2000c6c); + flareimage5 = (s32) (globalbank_rdram_offset + 0x2000c78); + ammo9mmimage = (s32) (globalbank_rdram_offset + 0x2000c84); + rifleammoimage = (s32) (globalbank_rdram_offset + 0x2000c90); + shotgunammoimage = (s32) (globalbank_rdram_offset + 0x2000c9c); + knifeammoimage = (s32) (globalbank_rdram_offset + 0x2000ca8); + glaunchammoimage = (s32) (globalbank_rdram_offset + 0x2000cb4); + rocketammoimage = (s32) (globalbank_rdram_offset + 0x2000cc0); + genericmineammoimage = (s32) (globalbank_rdram_offset + 0x2000ccc); + grenadeammoimage = (s32) (globalbank_rdram_offset + 0x2000cd8); + magnumammoimage = (s32) (globalbank_rdram_offset + 0x2000ce4); + goldengunammoimage = (s32) (globalbank_rdram_offset + 0x2000cf0); + remotemineammoimage = (s32) (globalbank_rdram_offset + 0x2000cfc); + timedmineammoimage = (s32) (globalbank_rdram_offset + 0x2000d08); + proxmineammoimage = (s32) (globalbank_rdram_offset + 0x2000d14); + tankammoimage = (s32) (globalbank_rdram_offset + 0x2000d20); + crosshairimage = (s32) (globalbank_rdram_offset + 0x2000d2c); + betacrosshairimage = (s32) (globalbank_rdram_offset + 0x2000d38); + glassoverlayimage = (s32) (globalbank_rdram_offset + 0x2000d44); + monitorimages = (s32) (globalbank_rdram_offset + 0x2000d5c); + skywaterimages = (s32) (globalbank_rdram_offset + 0x2000fb4); + mainfolderimages = (s32) (globalbank_rdram_offset + 0x2000fd8); + mpradarimages = (s32) (globalbank_rdram_offset + 0x2001020); + mpcharselimages = (s32) (globalbank_rdram_offset + 0x200102c); + mpstageselimages = (s32) (globalbank_rdram_offset + 0x200132c); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000000), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000078), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000120), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x20001c8), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000270), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000318), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x20003c0), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000468), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000510), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x20005b8), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000660), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000708), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x20007b0), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000858), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000900), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x20009a8), 0); + check_load_image_to_buffer((globalbank_rdram_offset + 0x2000a50), 0); + load_image_to_buffer(genericimage, 0); + for (i = 0; i < 0x48; i + 0xC) + { + load_image_to_buffer((explosion_smokeimages + i),0x0); + }; + + for (i = 0; i != 0x3c; i + 0xc) + { + load_image_to_buffer((scattered_explosions + i),0x0); + }; +} +#else +GLOBAL_ASM( +.text +glabel load_prepare_global_image_bank +/* 100AE0 7F0CBFB0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 100AE4 7F0CBFB4 3C0E0200 */ lui $t6, %hi(0x02001400) # $t6, 0x200 +/* 100AE8 7F0CBFB8 3C0F0200 */ lui $t7, 0x200 +/* 100AEC 7F0CBFBC AFB00014 */ sw $s0, 0x14($sp) +/* 100AF0 7F0CBFC0 25EF0000 */ addiu $t7, $t7, 0 +/* 100AF4 7F0CBFC4 25CE1400 */ addiu $t6, %lo(0x02001400) # addiu $t6, $t6, 0x1400 +/* 100AF8 7F0CBFC8 AFBF0024 */ sw $ra, 0x24($sp) +/* 100AFC 7F0CBFCC 01CF8023 */ subu $s0, $t6, $t7 +/* 100B00 7F0CBFD0 AFB30020 */ sw $s3, 0x20($sp) +/* 100B04 7F0CBFD4 AFB2001C */ sw $s2, 0x1c($sp) +/* 100B08 7F0CBFD8 AFB10018 */ sw $s1, 0x18($sp) +/* 100B0C 7F0CBFDC 26041000 */ addiu $a0, $s0, 0x1000 +/* 100B10 7F0CBFE0 0C0025C8 */ jal mempAllocBytesInBank +/* 100B14 7F0CBFE4 24050004 */ li $a1, 4 +/* 100B18 7F0CBFE8 3C118009 */ lui $s1, %hi(pGlobalimagetable) +/* 100B1C 7F0CBFEC 2631D0B4 */ addiu $s1, %lo(pGlobalimagetable) # addiu $s1, $s1, -0x2f4c +/* 100B20 7F0CBFF0 24590FFF */ addiu $t9, $v0, 0xfff +/* 100B24 7F0CBFF4 2401F000 */ li $at, -4096 +/* 100B28 7F0CBFF8 AE220000 */ sw $v0, ($s1) +/* 100B2C 7F0CBFFC 03212024 */ and $a0, $t9, $at +/* 100B30 7F0CC000 3C05002A */ lui $a1, %hi(_GlobalimagetableSegmentRomStart) # $a1, 0x2a +/* 100B34 7F0CC004 AE240000 */ sw $a0, ($s1) +/* 100B38 7F0CC008 24A5D160 */ addiu $a1, %lo(_GlobalimagetableSegmentRomStart) # addiu $a1, $a1, -0x2ea0 +/* 100B3C 7F0CC00C 0C001707 */ jal romCopy +/* 100B40 7F0CC010 02003025 */ move $a2, $s0 +/* 100B44 7F0CC014 8E290000 */ lw $t1, ($s1) +/* 100B48 7F0CC018 3C01FE00 */ lui $at, 0xfe00 +/* 100B4C 7F0CC01C 3C108009 */ lui $s0, %hi(globalbank_rdram_offset) +/* 100B50 7F0CC020 01211021 */ addu $v0, $t1, $at +/* 100B54 7F0CC024 3C0B0200 */ lui $t3, %hi(0x02000AC8) # $t3, 0x200 +/* 100B58 7F0CC028 2610D0B0 */ addiu $s0, %lo(globalbank_rdram_offset) # addiu $s0, $s0, -0x2f50 +/* 100B5C 7F0CC02C 256B0AC8 */ addiu $t3, %lo(0x02000AC8) # addiu $t3, $t3, 0xac8 +/* 100B60 7F0CC030 AE020000 */ sw $v0, ($s0) +/* 100B64 7F0CC034 004B6021 */ addu $t4, $v0, $t3 +/* 100B68 7F0CC038 3C018009 */ lui $at, %hi(genericimage) +/* 100B6C 7F0CC03C 3C0D0200 */ lui $t5, %hi(0x02000AD4) # $t5, 0x200 +/* 100B70 7F0CC040 AC2CD0B8 */ sw $t4, %lo(genericimage)($at) +/* 100B74 7F0CC044 25AD0AD4 */ addiu $t5, %lo(0x02000AD4) # addiu $t5, $t5, 0xad4 +/* 100B78 7F0CC048 004D7021 */ addu $t6, $v0, $t5 +/* 100B7C 7F0CC04C 3C018009 */ lui $at, %hi(impactimages) +/* 100B80 7F0CC050 AC2ED0BC */ sw $t6, %lo(impactimages)($at) +/* 100B84 7F0CC054 3C0F0200 */ lui $t7, %hi(0x02000BC4) # $t7, 0x200 +/* 100B88 7F0CC058 3C190200 */ lui $t9, %hi(0x02000C0C) # $t9, 0x200 +/* 100B8C 7F0CC05C 3C128009 */ lui $s2, %hi(explosion_smokeimages) +/* 100B90 7F0CC060 3C138009 */ lui $s3, %hi(scattered_explosions) +/* 100B94 7F0CC064 25EF0BC4 */ addiu $t7, %lo(0x02000BC4) # addiu $t7, $t7, 0xbc4 +/* 100B98 7F0CC068 27390C0C */ addiu $t9, %lo(0x02000C0C) # addiu $t9, $t9, 0xc0c +/* 100B9C 7F0CC06C 3C090200 */ lui $t1, %hi(0x02000C48) # $t1, 0x200 +/* 100BA0 7F0CC070 2673D0C4 */ addiu $s3, %lo(scattered_explosions) # addiu $s3, $s3, -0x2f3c +/* 100BA4 7F0CC074 2652D0C0 */ addiu $s2, %lo(explosion_smokeimages) # addiu $s2, $s2, -0x2f40 +/* 100BA8 7F0CC078 004FC021 */ addu $t8, $v0, $t7 +/* 100BAC 7F0CC07C 00594021 */ addu $t0, $v0, $t9 +/* 100BB0 7F0CC080 25290C48 */ addiu $t1, %lo(0x02000C48) # addiu $t1, $t1, 0xc48 +/* 100BB4 7F0CC084 AE580000 */ sw $t8, ($s2) +/* 100BB8 7F0CC088 AE680000 */ sw $t0, ($s3) +/* 100BBC 7F0CC08C 00495021 */ addu $t2, $v0, $t1 +/* 100BC0 7F0CC090 3C018009 */ lui $at, %hi(flareimage1) +/* 100BC4 7F0CC094 3C0B0200 */ lui $t3, %hi(0x02000C54) # $t3, 0x200 +/* 100BC8 7F0CC098 AC2AD0C8 */ sw $t2, %lo(flareimage1)($at) +/* 100BCC 7F0CC09C 256B0C54 */ addiu $t3, %lo(0x02000C54) # addiu $t3, $t3, 0xc54 +/* 100BD0 7F0CC0A0 004B6021 */ addu $t4, $v0, $t3 +/* 100BD4 7F0CC0A4 3C018009 */ lui $at, %hi(flareimage2) +/* 100BD8 7F0CC0A8 3C0D0200 */ lui $t5, %hi(0x02000C60) # $t5, 0x200 +/* 100BDC 7F0CC0AC AC2CD0CC */ sw $t4, %lo(flareimage2)($at) +/* 100BE0 7F0CC0B0 25AD0C60 */ addiu $t5, %lo(0x02000C60) # addiu $t5, $t5, 0xc60 +/* 100BE4 7F0CC0B4 004D7021 */ addu $t6, $v0, $t5 +/* 100BE8 7F0CC0B8 3C018009 */ lui $at, %hi(flareimage3) +/* 100BEC 7F0CC0BC 3C0F0200 */ lui $t7, %hi(0x02000C6C) # $t7, 0x200 +/* 100BF0 7F0CC0C0 AC2ED0D0 */ sw $t6, %lo(flareimage3)($at) +/* 100BF4 7F0CC0C4 25EF0C6C */ addiu $t7, %lo(0x02000C6C) # addiu $t7, $t7, 0xc6c +/* 100BF8 7F0CC0C8 004FC021 */ addu $t8, $v0, $t7 +/* 100BFC 7F0CC0CC 3C018009 */ lui $at, %hi(flareimage4) +/* 100C00 7F0CC0D0 3C190200 */ lui $t9, %hi(0x02000C78) # $t9, 0x200 +/* 100C04 7F0CC0D4 AC38D0D4 */ sw $t8, %lo(flareimage4)($at) +/* 100C08 7F0CC0D8 27390C78 */ addiu $t9, %lo(0x02000C78) # addiu $t9, $t9, 0xc78 +/* 100C0C 7F0CC0DC 00594021 */ addu $t0, $v0, $t9 +/* 100C10 7F0CC0E0 3C018009 */ lui $at, %hi(flareimage5) +/* 100C14 7F0CC0E4 3C090200 */ lui $t1, %hi(0x02000C84) # $t1, 0x200 +/* 100C18 7F0CC0E8 AC28D0D8 */ sw $t0, %lo(flareimage5)($at) +/* 100C1C 7F0CC0EC 25290C84 */ addiu $t1, %lo(0x02000C84) # addiu $t1, $t1, 0xc84 +/* 100C20 7F0CC0F0 00495021 */ addu $t2, $v0, $t1 +/* 100C24 7F0CC0F4 3C018009 */ lui $at, %hi(ammo9mmimage) +/* 100C28 7F0CC0F8 3C0B0200 */ lui $t3, %hi(0x02000C90) # $t3, 0x200 +/* 100C2C 7F0CC0FC AC2AD0DC */ sw $t2, %lo(ammo9mmimage)($at) +/* 100C30 7F0CC100 256B0C90 */ addiu $t3, %lo(0x02000C90) # addiu $t3, $t3, 0xc90 +/* 100C34 7F0CC104 004B6021 */ addu $t4, $v0, $t3 +/* 100C38 7F0CC108 3C018009 */ lui $at, %hi(rifleammoimage) +/* 100C3C 7F0CC10C 3C0D0200 */ lui $t5, %hi(0x02000C9C) # $t5, 0x200 +/* 100C40 7F0CC110 AC2CD0E0 */ sw $t4, %lo(rifleammoimage)($at) +/* 100C44 7F0CC114 25AD0C9C */ addiu $t5, %lo(0x02000C9C) # addiu $t5, $t5, 0xc9c +/* 100C48 7F0CC118 004D7021 */ addu $t6, $v0, $t5 +/* 100C4C 7F0CC11C 3C018009 */ lui $at, %hi(shotgunammoimage) +/* 100C50 7F0CC120 3C0F0200 */ lui $t7, %hi(0x02000CA8) # $t7, 0x200 +/* 100C54 7F0CC124 AC2ED0E4 */ sw $t6, %lo(shotgunammoimage)($at) +/* 100C58 7F0CC128 25EF0CA8 */ addiu $t7, %lo(0x02000CA8) # addiu $t7, $t7, 0xca8 +/* 100C5C 7F0CC12C 004FC021 */ addu $t8, $v0, $t7 +/* 100C60 7F0CC130 3C018009 */ lui $at, %hi(knifeammoimage) +/* 100C64 7F0CC134 3C190200 */ lui $t9, %hi(0x02000CB4) # $t9, 0x200 +/* 100C68 7F0CC138 AC38D0E8 */ sw $t8, %lo(knifeammoimage)($at) +/* 100C6C 7F0CC13C 27390CB4 */ addiu $t9, %lo(0x02000CB4) # addiu $t9, $t9, 0xcb4 +/* 100C70 7F0CC140 00594021 */ addu $t0, $v0, $t9 +/* 100C74 7F0CC144 3C018009 */ lui $at, %hi(glaunchammoimage) +/* 100C78 7F0CC148 3C090200 */ lui $t1, %hi(0x02000CC0) # $t1, 0x200 +/* 100C7C 7F0CC14C AC28D0EC */ sw $t0, %lo(glaunchammoimage)($at) +/* 100C80 7F0CC150 25290CC0 */ addiu $t1, %lo(0x02000CC0) # addiu $t1, $t1, 0xcc0 +/* 100C84 7F0CC154 00495021 */ addu $t2, $v0, $t1 +/* 100C88 7F0CC158 3C018009 */ lui $at, %hi(rocketammoimage) +/* 100C8C 7F0CC15C 3C0B0200 */ lui $t3, %hi(0x02000CCC) # $t3, 0x200 +/* 100C90 7F0CC160 AC2AD0F0 */ sw $t2, %lo(rocketammoimage)($at) +/* 100C94 7F0CC164 256B0CCC */ addiu $t3, %lo(0x02000CCC) # addiu $t3, $t3, 0xccc +/* 100C98 7F0CC168 004B6021 */ addu $t4, $v0, $t3 +/* 100C9C 7F0CC16C 3C018009 */ lui $at, %hi(genericmineammoimage) +/* 100CA0 7F0CC170 3C0D0200 */ lui $t5, %hi(0x02000CD8) # $t5, 0x200 +/* 100CA4 7F0CC174 AC2CD0F4 */ sw $t4, %lo(genericmineammoimage)($at) +/* 100CA8 7F0CC178 25AD0CD8 */ addiu $t5, %lo(0x02000CD8) # addiu $t5, $t5, 0xcd8 +/* 100CAC 7F0CC17C 004D7021 */ addu $t6, $v0, $t5 +/* 100CB0 7F0CC180 3C018009 */ lui $at, %hi(grenadeammoimage) +/* 100CB4 7F0CC184 3C0F0200 */ lui $t7, %hi(0x02000CE4) # $t7, 0x200 +/* 100CB8 7F0CC188 AC2ED0F8 */ sw $t6, %lo(grenadeammoimage)($at) +/* 100CBC 7F0CC18C 25EF0CE4 */ addiu $t7, %lo(0x02000CE4) # addiu $t7, $t7, 0xce4 +/* 100CC0 7F0CC190 004FC021 */ addu $t8, $v0, $t7 +/* 100CC4 7F0CC194 3C018009 */ lui $at, %hi(magnumammoimage) +/* 100CC8 7F0CC198 3C190200 */ lui $t9, %hi(0x02000CF0) # $t9, 0x200 +/* 100CCC 7F0CC19C AC38D0FC */ sw $t8, %lo(magnumammoimage)($at) +/* 100CD0 7F0CC1A0 27390CF0 */ addiu $t9, %lo(0x02000CF0) # addiu $t9, $t9, 0xcf0 +/* 100CD4 7F0CC1A4 00594021 */ addu $t0, $v0, $t9 +/* 100CD8 7F0CC1A8 3C018009 */ lui $at, %hi(goldengunammoimage) +/* 100CDC 7F0CC1AC 3C090200 */ lui $t1, %hi(0x02000CFC) # $t1, 0x200 +/* 100CE0 7F0CC1B0 AC28D100 */ sw $t0, %lo(goldengunammoimage)($at) +/* 100CE4 7F0CC1B4 25290CFC */ addiu $t1, %lo(0x02000CFC) # addiu $t1, $t1, 0xcfc +/* 100CE8 7F0CC1B8 00495021 */ addu $t2, $v0, $t1 +/* 100CEC 7F0CC1BC 3C018009 */ lui $at, %hi(remotemineammoimage) +/* 100CF0 7F0CC1C0 3C0B0200 */ lui $t3, %hi(0x02000D08) # $t3, 0x200 +/* 100CF4 7F0CC1C4 AC2AD104 */ sw $t2, %lo(remotemineammoimage)($at) +/* 100CF8 7F0CC1C8 256B0D08 */ addiu $t3, %lo(0x02000D08) # addiu $t3, $t3, 0xd08 +/* 100CFC 7F0CC1CC 004B6021 */ addu $t4, $v0, $t3 +/* 100D00 7F0CC1D0 3C018009 */ lui $at, %hi(timedmineammoimage) +/* 100D04 7F0CC1D4 3C0D0200 */ lui $t5, %hi(0x02000D14) # $t5, 0x200 +/* 100D08 7F0CC1D8 AC2CD108 */ sw $t4, %lo(timedmineammoimage)($at) +/* 100D0C 7F0CC1DC 25AD0D14 */ addiu $t5, %lo(0x02000D14) # addiu $t5, $t5, 0xd14 +/* 100D10 7F0CC1E0 004D7021 */ addu $t6, $v0, $t5 +/* 100D14 7F0CC1E4 3C018009 */ lui $at, %hi(proxmineammoimage) +/* 100D18 7F0CC1E8 3C0F0200 */ lui $t7, %hi(0x02000D20) # $t7, 0x200 +/* 100D1C 7F0CC1EC AC2ED10C */ sw $t6, %lo(proxmineammoimage)($at) +/* 100D20 7F0CC1F0 25EF0D20 */ addiu $t7, %lo(0x02000D20) # addiu $t7, $t7, 0xd20 +/* 100D24 7F0CC1F4 004FC021 */ addu $t8, $v0, $t7 +/* 100D28 7F0CC1F8 3C018009 */ lui $at, %hi(tankammoimage) +/* 100D2C 7F0CC1FC 3C190200 */ lui $t9, %hi(0x02000D2C) # $t9, 0x200 +/* 100D30 7F0CC200 AC38D110 */ sw $t8, %lo(tankammoimage)($at) +/* 100D34 7F0CC204 27390D2C */ addiu $t9, %lo(0x02000D2C) # addiu $t9, $t9, 0xd2c +/* 100D38 7F0CC208 00594021 */ addu $t0, $v0, $t9 +/* 100D3C 7F0CC20C 3C018009 */ lui $at, %hi(crosshairimage) +/* 100D40 7F0CC210 3C090200 */ lui $t1, %hi(0x02000D38) # $t1, 0x200 +/* 100D44 7F0CC214 AC28D114 */ sw $t0, %lo(crosshairimage)($at) +/* 100D48 7F0CC218 25290D38 */ addiu $t1, %lo(0x02000D38) # addiu $t1, $t1, 0xd38 +/* 100D4C 7F0CC21C 00495021 */ addu $t2, $v0, $t1 +/* 100D50 7F0CC220 3C018009 */ lui $at, %hi(betacrosshairimage) +/* 100D54 7F0CC224 3C0B0200 */ lui $t3, %hi(0x02000D44) # $t3, 0x200 +/* 100D58 7F0CC228 AC2AD118 */ sw $t2, %lo(betacrosshairimage)($at) +/* 100D5C 7F0CC22C 256B0D44 */ addiu $t3, %lo(0x02000D44) # addiu $t3, $t3, 0xd44 +/* 100D60 7F0CC230 004B6021 */ addu $t4, $v0, $t3 +/* 100D64 7F0CC234 3C018009 */ lui $at, %hi(glassoverlayimage) +/* 100D68 7F0CC238 3C0D0200 */ lui $t5, %hi(0x02000D5C) # $t5, 0x200 +/* 100D6C 7F0CC23C AC2CD11C */ sw $t4, %lo(glassoverlayimage)($at) +/* 100D70 7F0CC240 25AD0D5C */ addiu $t5, %lo(0x02000D5C) # addiu $t5, $t5, 0xd5c +/* 100D74 7F0CC244 004D7021 */ addu $t6, $v0, $t5 +/* 100D78 7F0CC248 3C018009 */ lui $at, %hi(monitorimages) +/* 100D7C 7F0CC24C 3C0F0200 */ lui $t7, %hi(0x02000FB4) # $t7, 0x200 +/* 100D80 7F0CC250 AC2ED120 */ sw $t6, %lo(monitorimages)($at) +/* 100D84 7F0CC254 25EF0FB4 */ addiu $t7, %lo(0x02000FB4) # addiu $t7, $t7, 0xfb4 +/* 100D88 7F0CC258 004FC021 */ addu $t8, $v0, $t7 +/* 100D8C 7F0CC25C 3C018009 */ lui $at, %hi(skywaterimages) +/* 100D90 7F0CC260 3C190200 */ lui $t9, %hi(0x02000FD8) # $t9, 0x200 +/* 100D94 7F0CC264 AC38D124 */ sw $t8, %lo(skywaterimages)($at) +/* 100D98 7F0CC268 27390FD8 */ addiu $t9, %lo(0x02000FD8) # addiu $t9, $t9, 0xfd8 +/* 100D9C 7F0CC26C 00594021 */ addu $t0, $v0, $t9 +/* 100DA0 7F0CC270 3C018009 */ lui $at, %hi(mainfolderimages) +/* 100DA4 7F0CC274 3C090200 */ lui $t1, %hi(0x02001020) # $t1, 0x200 +/* 100DA8 7F0CC278 AC28D128 */ sw $t0, %lo(mainfolderimages)($at) +/* 100DAC 7F0CC27C 25291020 */ addiu $t1, %lo(0x02001020) # addiu $t1, $t1, 0x1020 +/* 100DB0 7F0CC280 00495021 */ addu $t2, $v0, $t1 +/* 100DB4 7F0CC284 3C018009 */ lui $at, %hi(mpradarimages) +/* 100DB8 7F0CC288 3C0B0200 */ lui $t3, %hi(0x0200102C) # $t3, 0x200 +/* 100DBC 7F0CC28C AC2AD12C */ sw $t2, %lo(mpradarimages)($at) +/* 100DC0 7F0CC290 256B102C */ addiu $t3, %lo(0x0200102C) # addiu $t3, $t3, 0x102c +/* 100DC4 7F0CC294 004B6021 */ addu $t4, $v0, $t3 +/* 100DC8 7F0CC298 3C018009 */ lui $at, %hi(mpcharselimages) +/* 100DCC 7F0CC29C 3C0D0200 */ lui $t5, %hi(0x0200132C) # $t5, 0x200 +/* 100DD0 7F0CC2A0 AC2CD130 */ sw $t4, %lo(mpcharselimages)($at) +/* 100DD4 7F0CC2A4 25AD132C */ addiu $t5, %lo(0x0200132C) # addiu $t5, $t5, 0x132c +/* 100DD8 7F0CC2A8 3C0F0200 */ lui $t7, 0x200 +/* 100DDC 7F0CC2AC 004D7021 */ addu $t6, $v0, $t5 +/* 100DE0 7F0CC2B0 3C018009 */ lui $at, %hi(mpstageselimages) +/* 100DE4 7F0CC2B4 25EF0000 */ addiu $t7, $t7, 0 +/* 100DE8 7F0CC2B8 AC2ED134 */ sw $t6, %lo(mpstageselimages)($at) +/* 100DEC 7F0CC2BC 004F2021 */ addu $a0, $v0, $t7 +/* 100DF0 7F0CC2C0 0FC32EDD */ jal check_load_image_to_buffer +/* 100DF4 7F0CC2C4 00002825 */ move $a1, $zero +/* 100DF8 7F0CC2C8 8E180000 */ lw $t8, ($s0) +/* 100DFC 7F0CC2CC 3C190200 */ lui $t9, %hi(0x02000078) # $t9, 0x200 +/* 100E00 7F0CC2D0 27390078 */ addiu $t9, %lo(0x02000078) # addiu $t9, $t9, 0x78 +/* 100E04 7F0CC2D4 00002825 */ move $a1, $zero +/* 100E08 7F0CC2D8 0FC32EDD */ jal check_load_image_to_buffer +/* 100E0C 7F0CC2DC 03192021 */ addu $a0, $t8, $t9 +/* 100E10 7F0CC2E0 8E080000 */ lw $t0, ($s0) +/* 100E14 7F0CC2E4 3C090200 */ lui $t1, %hi(0x02000120) # $t1, 0x200 +/* 100E18 7F0CC2E8 25290120 */ addiu $t1, %lo(0x02000120) # addiu $t1, $t1, 0x120 +/* 100E1C 7F0CC2EC 00002825 */ move $a1, $zero +/* 100E20 7F0CC2F0 0FC32EDD */ jal check_load_image_to_buffer +/* 100E24 7F0CC2F4 01092021 */ addu $a0, $t0, $t1 +/* 100E28 7F0CC2F8 8E0A0000 */ lw $t2, ($s0) +/* 100E2C 7F0CC2FC 3C0B0200 */ lui $t3, %hi(0x020001C8) # $t3, 0x200 +/* 100E30 7F0CC300 256B01C8 */ addiu $t3, %lo(0x020001C8) # addiu $t3, $t3, 0x1c8 +/* 100E34 7F0CC304 00002825 */ move $a1, $zero +/* 100E38 7F0CC308 0FC32EDD */ jal check_load_image_to_buffer +/* 100E3C 7F0CC30C 014B2021 */ addu $a0, $t2, $t3 +/* 100E40 7F0CC310 8E0C0000 */ lw $t4, ($s0) +/* 100E44 7F0CC314 3C0D0200 */ lui $t5, %hi(0x02000270) # $t5, 0x200 +/* 100E48 7F0CC318 25AD0270 */ addiu $t5, %lo(0x02000270) # addiu $t5, $t5, 0x270 +/* 100E4C 7F0CC31C 00002825 */ move $a1, $zero +/* 100E50 7F0CC320 0FC32EDD */ jal check_load_image_to_buffer +/* 100E54 7F0CC324 018D2021 */ addu $a0, $t4, $t5 +/* 100E58 7F0CC328 8E0E0000 */ lw $t6, ($s0) +/* 100E5C 7F0CC32C 3C0F0200 */ lui $t7, %hi(0x02000318) # $t7, 0x200 +/* 100E60 7F0CC330 25EF0318 */ addiu $t7, %lo(0x02000318) # addiu $t7, $t7, 0x318 +/* 100E64 7F0CC334 00002825 */ move $a1, $zero +/* 100E68 7F0CC338 0FC32EDD */ jal check_load_image_to_buffer +/* 100E6C 7F0CC33C 01CF2021 */ addu $a0, $t6, $t7 +/* 100E70 7F0CC340 8E180000 */ lw $t8, ($s0) +/* 100E74 7F0CC344 3C190200 */ lui $t9, %hi(0x020003C0) # $t9, 0x200 +/* 100E78 7F0CC348 273903C0 */ addiu $t9, %lo(0x020003C0) # addiu $t9, $t9, 0x3c0 +/* 100E7C 7F0CC34C 00002825 */ move $a1, $zero +/* 100E80 7F0CC350 0FC32EDD */ jal check_load_image_to_buffer +/* 100E84 7F0CC354 03192021 */ addu $a0, $t8, $t9 +/* 100E88 7F0CC358 8E080000 */ lw $t0, ($s0) +/* 100E8C 7F0CC35C 3C090200 */ lui $t1, %hi(0x02000468) # $t1, 0x200 +/* 100E90 7F0CC360 25290468 */ addiu $t1, %lo(0x02000468) # addiu $t1, $t1, 0x468 +/* 100E94 7F0CC364 00002825 */ move $a1, $zero +/* 100E98 7F0CC368 0FC32EDD */ jal check_load_image_to_buffer +/* 100E9C 7F0CC36C 01092021 */ addu $a0, $t0, $t1 +/* 100EA0 7F0CC370 8E0A0000 */ lw $t2, ($s0) +/* 100EA4 7F0CC374 3C0B0200 */ lui $t3, %hi(0x02000510) # $t3, 0x200 +/* 100EA8 7F0CC378 256B0510 */ addiu $t3, %lo(0x02000510) # addiu $t3, $t3, 0x510 +/* 100EAC 7F0CC37C 00002825 */ move $a1, $zero +/* 100EB0 7F0CC380 0FC32EDD */ jal check_load_image_to_buffer +/* 100EB4 7F0CC384 014B2021 */ addu $a0, $t2, $t3 +/* 100EB8 7F0CC388 8E0C0000 */ lw $t4, ($s0) +/* 100EBC 7F0CC38C 3C0D0200 */ lui $t5, %hi(0x020005B8) # $t5, 0x200 +/* 100EC0 7F0CC390 25AD05B8 */ addiu $t5, %lo(0x020005B8) # addiu $t5, $t5, 0x5b8 +/* 100EC4 7F0CC394 00002825 */ move $a1, $zero +/* 100EC8 7F0CC398 0FC32EDD */ jal check_load_image_to_buffer +/* 100ECC 7F0CC39C 018D2021 */ addu $a0, $t4, $t5 +/* 100ED0 7F0CC3A0 8E0E0000 */ lw $t6, ($s0) +/* 100ED4 7F0CC3A4 3C0F0200 */ lui $t7, %hi(0x02000660) # $t7, 0x200 +/* 100ED8 7F0CC3A8 25EF0660 */ addiu $t7, %lo(0x02000660) # addiu $t7, $t7, 0x660 +/* 100EDC 7F0CC3AC 00002825 */ move $a1, $zero +/* 100EE0 7F0CC3B0 0FC32EDD */ jal check_load_image_to_buffer +/* 100EE4 7F0CC3B4 01CF2021 */ addu $a0, $t6, $t7 +/* 100EE8 7F0CC3B8 8E180000 */ lw $t8, ($s0) +/* 100EEC 7F0CC3BC 3C190200 */ lui $t9, %hi(0x02000708) # $t9, 0x200 +/* 100EF0 7F0CC3C0 27390708 */ addiu $t9, %lo(0x02000708) # addiu $t9, $t9, 0x708 +/* 100EF4 7F0CC3C4 00002825 */ move $a1, $zero +/* 100EF8 7F0CC3C8 0FC32EDD */ jal check_load_image_to_buffer +/* 100EFC 7F0CC3CC 03192021 */ addu $a0, $t8, $t9 +/* 100F00 7F0CC3D0 8E080000 */ lw $t0, ($s0) +/* 100F04 7F0CC3D4 3C090200 */ lui $t1, %hi(0x020007B0) # $t1, 0x200 +/* 100F08 7F0CC3D8 252907B0 */ addiu $t1, %lo(0x020007B0) # addiu $t1, $t1, 0x7b0 +/* 100F0C 7F0CC3DC 00002825 */ move $a1, $zero +/* 100F10 7F0CC3E0 0FC32EDD */ jal check_load_image_to_buffer +/* 100F14 7F0CC3E4 01092021 */ addu $a0, $t0, $t1 +/* 100F18 7F0CC3E8 8E0A0000 */ lw $t2, ($s0) +/* 100F1C 7F0CC3EC 3C0B0200 */ lui $t3, %hi(0x02000858) # $t3, 0x200 +/* 100F20 7F0CC3F0 256B0858 */ addiu $t3, %lo(0x02000858) # addiu $t3, $t3, 0x858 +/* 100F24 7F0CC3F4 00002825 */ move $a1, $zero +/* 100F28 7F0CC3F8 0FC32EDD */ jal check_load_image_to_buffer +/* 100F2C 7F0CC3FC 014B2021 */ addu $a0, $t2, $t3 +/* 100F30 7F0CC400 8E0C0000 */ lw $t4, ($s0) +/* 100F34 7F0CC404 3C0D0200 */ lui $t5, %hi(0x02000900) # $t5, 0x200 +/* 100F38 7F0CC408 25AD0900 */ addiu $t5, %lo(0x02000900) # addiu $t5, $t5, 0x900 +/* 100F3C 7F0CC40C 00002825 */ move $a1, $zero +/* 100F40 7F0CC410 0FC32EDD */ jal check_load_image_to_buffer +/* 100F44 7F0CC414 018D2021 */ addu $a0, $t4, $t5 +/* 100F48 7F0CC418 8E0E0000 */ lw $t6, ($s0) +/* 100F4C 7F0CC41C 3C0F0200 */ lui $t7, %hi(0x020009A8) # $t7, 0x200 +/* 100F50 7F0CC420 25EF09A8 */ addiu $t7, %lo(0x020009A8) # addiu $t7, $t7, 0x9a8 +/* 100F54 7F0CC424 00002825 */ move $a1, $zero +/* 100F58 7F0CC428 0FC32EDD */ jal check_load_image_to_buffer +/* 100F5C 7F0CC42C 01CF2021 */ addu $a0, $t6, $t7 +/* 100F60 7F0CC430 8E180000 */ lw $t8, ($s0) +/* 100F64 7F0CC434 3C190200 */ lui $t9, %hi(0x02000A50) # $t9, 0x200 +/* 100F68 7F0CC438 27390A50 */ addiu $t9, %lo(0x02000A50) # addiu $t9, $t9, 0xa50 +/* 100F6C 7F0CC43C 00002825 */ move $a1, $zero +/* 100F70 7F0CC440 0FC32EDD */ jal check_load_image_to_buffer +/* 100F74 7F0CC444 03192021 */ addu $a0, $t8, $t9 +/* 100F78 7F0CC448 3C048009 */ lui $a0, %hi(genericimage) +/* 100F7C 7F0CC44C 8C84D0B8 */ lw $a0, %lo(genericimage)($a0) +/* 100F80 7F0CC450 0FC32F06 */ jal load_image_to_buffer +/* 100F84 7F0CC454 00002825 */ move $a1, $zero +/* 100F88 7F0CC458 00008025 */ move $s0, $zero +/* 100F8C 7F0CC45C 8E480000 */ lw $t0, ($s2) +.L7F0CC460: +/* 100F90 7F0CC460 00002825 */ move $a1, $zero +/* 100F94 7F0CC464 0FC32F06 */ jal load_image_to_buffer +/* 100F98 7F0CC468 02082021 */ addu $a0, $s0, $t0 +/* 100F9C 7F0CC46C 2610000C */ addiu $s0, $s0, 0xc +/* 100FA0 7F0CC470 2A010048 */ slti $at, $s0, 0x48 +/* 100FA4 7F0CC474 5420FFFA */ bnezl $at, .L7F0CC460 +/* 100FA8 7F0CC478 8E480000 */ lw $t0, ($s2) +/* 100FAC 7F0CC47C 00008025 */ move $s0, $zero +/* 100FB0 7F0CC480 2411003C */ li $s1, 60 +/* 100FB4 7F0CC484 8E690000 */ lw $t1, ($s3) +.L7F0CC488: +/* 100FB8 7F0CC488 00002825 */ move $a1, $zero +/* 100FBC 7F0CC48C 0FC32F06 */ jal load_image_to_buffer +/* 100FC0 7F0CC490 02092021 */ addu $a0, $s0, $t1 +/* 100FC4 7F0CC494 2610000C */ addiu $s0, $s0, 0xc +/* 100FC8 7F0CC498 5611FFFB */ bnel $s0, $s1, .L7F0CC488 +/* 100FCC 7F0CC49C 8E690000 */ lw $t1, ($s3) +/* 100FD0 7F0CC4A0 8FBF0024 */ lw $ra, 0x24($sp) +/* 100FD4 7F0CC4A4 8FB00014 */ lw $s0, 0x14($sp) +/* 100FD8 7F0CC4A8 8FB10018 */ lw $s1, 0x18($sp) +/* 100FDC 7F0CC4AC 8FB2001C */ lw $s2, 0x1c($sp) +/* 100FE0 7F0CC4B0 8FB30020 */ lw $s3, 0x20($sp) +/* 100FE4 7F0CC4B4 03E00008 */ jr $ra +/* 100FE8 7F0CC4B8 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + diff --git a/src/game/indy_commands.c b/src/game/indy_commands.c new file mode 100644 index 0000000..6983351 --- /dev/null +++ b/src/game/indy_commands.c @@ -0,0 +1,1806 @@ +#include "ultra64.h" +#include "game/indy_commands.h" + +// data +//D:8004EAC0 +s32 D_8004EAC0 = 0; +//D:8004EAC4 +s32 indy_status = 0x103; +//D:8004EAC8 +s32 indy_ready = 0; +//D:8004EACC +s32 D_8004EACC = 0x0; +//D:8004EAD0 +s32 D_8004EAD0 = 0x0; + + +#ifdef NONMATCHING +void sub_GAME_7F0D0180(u8 *buffer,u32 size) +{ + int i; + + for (i = 4; i != 100000; i + 4){;} + rmon_debug_stub_0(); + for (i = 4; i != 100000; i + 4){;} +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D0180 +/* 104CB0 7F0D0180 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 104CB4 7F0D0184 3C030001 */ lui $v1, (0x000186A0 >> 16) # lui $v1, 1 +/* 104CB8 7F0D0188 AFBF0014 */ sw $ra, 0x14($sp) +/* 104CBC 7F0D018C 346386A0 */ ori $v1, (0x000186A0 & 0xFFFF) # ori $v1, $v1, 0x86a0 +/* 104CC0 7F0D0190 00001025 */ move $v0, $zero +/* 104CC4 7F0D0194 24420004 */ addiu $v0, $v0, 4 +.L7F0D0198: +/* 104CC8 7F0D0198 5443FFFF */ bnel $v0, $v1, .L7F0D0198 +/* 104CCC 7F0D019C 24420004 */ addiu $v0, $v0, 4 +/* 104CD0 7F0D01A0 0C0033B0 */ jal rmon_debug_stub_0 +/* 104CD4 7F0D01A4 00000000 */ nop +/* 104CD8 7F0D01A8 3C030001 */ lui $v1, (0x000186A0 >> 16) # lui $v1, 1 +/* 104CDC 7F0D01AC 346386A0 */ ori $v1, (0x000186A0 & 0xFFFF) # ori $v1, $v1, 0x86a0 +/* 104CE0 7F0D01B0 00001025 */ move $v0, $zero +/* 104CE4 7F0D01B4 24420004 */ addiu $v0, $v0, 4 +.L7F0D01B8: +/* 104CE8 7F0D01B8 5443FFFF */ bnel $v0, $v1, .L7F0D01B8 +/* 104CEC 7F0D01BC 24420004 */ addiu $v0, $v0, 4 +/* 104CF0 7F0D01C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 104CF4 7F0D01C4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 104CF8 7F0D01C8 03E00008 */ jr $ra +/* 104CFC 7F0D01CC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D01D0(u8 *buffer,u32 size) +{ + int i; + + for (i = 4; i != 100000; i + 4){;} + rmon_debug_stub(); + for (i = 4; i != 100000; i + 4){;} +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D01D0 +/* 104D00 7F0D01D0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 104D04 7F0D01D4 3C030001 */ lui $v1, (0x000186A0 >> 16) # lui $v1, 1 +/* 104D08 7F0D01D8 AFBF0014 */ sw $ra, 0x14($sp) +/* 104D0C 7F0D01DC 346386A0 */ ori $v1, (0x000186A0 & 0xFFFF) # ori $v1, $v1, 0x86a0 +/* 104D10 7F0D01E0 00001025 */ move $v0, $zero +/* 104D14 7F0D01E4 24420004 */ addiu $v0, $v0, 4 +.L7F0D01E8: +/* 104D18 7F0D01E8 5443FFFF */ bnel $v0, $v1, .L7F0D01E8 +/* 104D1C 7F0D01EC 24420004 */ addiu $v0, $v0, 4 +/* 104D20 7F0D01F0 0C0033AE */ jal rmon_debug_stub +/* 104D24 7F0D01F4 00000000 */ nop +/* 104D28 7F0D01F8 3C030001 */ lui $v1, (0x000186A0 >> 16) # lui $v1, 1 +/* 104D2C 7F0D01FC 346386A0 */ ori $v1, (0x000186A0 & 0xFFFF) # ori $v1, $v1, 0x86a0 +/* 104D30 7F0D0200 00001025 */ move $v0, $zero +/* 104D34 7F0D0204 24420004 */ addiu $v0, $v0, 4 +.L7F0D0208: +/* 104D38 7F0D0208 5443FFFF */ bnel $v0, $v1, .L7F0D0208 +/* 104D3C 7F0D020C 24420004 */ addiu $v0, $v0, 4 +/* 104D40 7F0D0210 8FBF0014 */ lw $ra, 0x14($sp) +/* 104D44 7F0D0214 27BD0018 */ addiu $sp, $sp, 0x18 +/* 104D48 7F0D0218 03E00008 */ jr $ra +/* 104D4C 7F0D021C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void postindyresourcecommand(indy_resource_entry *param_1,u32 param_2) +{ + +} +#else +GLOBAL_ASM( +.text +glabel postindyresourcecommand +/* 104D50 7F0D0220 27BDFAC0 */ addiu $sp, $sp, -0x540 +/* 104D54 7F0D0224 27A20040 */ addiu $v0, $sp, 0x40 +/* 104D58 7F0D0228 308F0007 */ andi $t7, $a0, 7 +/* 104D5C 7F0D022C AFBF0014 */ sw $ra, 0x14($sp) +/* 104D60 7F0D0230 AFA40540 */ sw $a0, 0x540($sp) +/* 104D64 7F0D0234 00A03025 */ move $a2, $a1 +/* 104D68 7F0D0238 00401825 */ move $v1, $v0 +/* 104D6C 7F0D023C 11E0002B */ beqz $t7, .L7F0D02EC +/* 104D70 7F0D0240 00403825 */ move $a3, $v0 +/* 104D74 7F0D0244 2CA10501 */ sltiu $at, $a1, 0x501 +/* 104D78 7F0D0248 14200003 */ bnez $at, .L7F0D0258 +/* 104D7C 7F0D024C 30580007 */ andi $t8, $v0, 7 +/* 104D80 7F0D0250 1000003D */ b .L7F0D0348 +/* 104D84 7F0D0254 00001025 */ move $v0, $zero +.L7F0D0258: +/* 104D88 7F0D0258 13000003 */ beqz $t8, .L7F0D0268 +/* 104D8C 7F0D025C 3C088005 */ lui $t0, %hi(indy_status) +/* 104D90 7F0D0260 27A70044 */ addiu $a3, $sp, 0x44 +/* 104D94 7F0D0264 00E01825 */ move $v1, $a3 +.L7F0D0268: +/* 104D98 7F0D0268 00662021 */ addu $a0, $v1, $a2 +/* 104D9C 7F0D026C 0064082B */ sltu $at, $v1, $a0 +/* 104DA0 7F0D0270 10200007 */ beqz $at, .L7F0D0290 +/* 104DA4 7F0D0274 8FA20540 */ lw $v0, 0x540($sp) +.L7F0D0278: +/* 104DA8 7F0D0278 90590000 */ lbu $t9, ($v0) +/* 104DAC 7F0D027C 24630001 */ addiu $v1, $v1, 1 +/* 104DB0 7F0D0280 0064082B */ sltu $at, $v1, $a0 +/* 104DB4 7F0D0284 24420001 */ addiu $v0, $v0, 1 +/* 104DB8 7F0D0288 1420FFFB */ bnez $at, .L7F0D0278 +/* 104DBC 7F0D028C A079FFFF */ sb $t9, -1($v1) +.L7F0D0290: +/* 104DC0 7F0D0290 8D08EAC4 */ lw $t0, %lo(indy_status)($t0) +/* 104DC4 7F0D0294 24C50003 */ addiu $a1, $a2, 3 +/* 104DC8 7F0D0298 2401FFFC */ li $at, -4 +/* 104DCC 7F0D029C 31090020 */ andi $t1, $t0, 0x20 +/* 104DD0 7F0D02A0 1120000D */ beqz $t1, .L7F0D02D8 +/* 104DD4 7F0D02A4 00A15024 */ and $t2, $a1, $at +/* 104DD8 7F0D02A8 10C0000B */ beqz $a2, .L7F0D02D8 +/* 104DDC 7F0D02AC 00001025 */ move $v0, $zero +/* 104DE0 7F0D02B0 30C40003 */ andi $a0, $a2, 3 +/* 104DE4 7F0D02B4 10800005 */ beqz $a0, .L7F0D02CC +/* 104DE8 7F0D02B8 00801825 */ move $v1, $a0 +/* 104DEC 7F0D02BC 24420001 */ addiu $v0, $v0, 1 +.L7F0D02C0: +/* 104DF0 7F0D02C0 5462FFFF */ bnel $v1, $v0, .L7F0D02C0 +/* 104DF4 7F0D02C4 24420001 */ addiu $v0, $v0, 1 +/* 104DF8 7F0D02C8 10460003 */ beq $v0, $a2, .L7F0D02D8 +.L7F0D02CC: +/* 104DFC 7F0D02CC 24420004 */ addiu $v0, $v0, 4 +.L7F0D02D0: +/* 104E00 7F0D02D0 5446FFFF */ bnel $v0, $a2, .L7F0D02D0 +/* 104E04 7F0D02D4 24420004 */ addiu $v0, $v0, 4 +.L7F0D02D8: +/* 104E08 7F0D02D8 00E02025 */ move $a0, $a3 +/* 104E0C 7F0D02DC 0FC34074 */ jal sub_GAME_7F0D01D0 +/* 104E10 7F0D02E0 01402825 */ move $a1, $t2 +/* 104E14 7F0D02E4 10000018 */ b .L7F0D0348 +/* 104E18 7F0D02E8 24020001 */ li $v0, 1 +.L7F0D02EC: +/* 104E1C 7F0D02EC 3C0B8005 */ lui $t3, %hi(indy_status) +/* 104E20 7F0D02F0 8D6BEAC4 */ lw $t3, %lo(indy_status)($t3) +/* 104E24 7F0D02F4 24C50003 */ addiu $a1, $a2, 3 +/* 104E28 7F0D02F8 2401FFFC */ li $at, -4 +/* 104E2C 7F0D02FC 316C0020 */ andi $t4, $t3, 0x20 +/* 104E30 7F0D0300 1180000D */ beqz $t4, .L7F0D0338 +/* 104E34 7F0D0304 00A16824 */ and $t5, $a1, $at +/* 104E38 7F0D0308 10C0000B */ beqz $a2, .L7F0D0338 +/* 104E3C 7F0D030C 00001025 */ move $v0, $zero +/* 104E40 7F0D0310 30C40003 */ andi $a0, $a2, 3 +/* 104E44 7F0D0314 10800005 */ beqz $a0, .L7F0D032C +/* 104E48 7F0D0318 00801825 */ move $v1, $a0 +/* 104E4C 7F0D031C 24420001 */ addiu $v0, $v0, 1 +.L7F0D0320: +/* 104E50 7F0D0320 5462FFFF */ bnel $v1, $v0, .L7F0D0320 +/* 104E54 7F0D0324 24420001 */ addiu $v0, $v0, 1 +/* 104E58 7F0D0328 10460003 */ beq $v0, $a2, .L7F0D0338 +.L7F0D032C: +/* 104E5C 7F0D032C 24420004 */ addiu $v0, $v0, 4 +.L7F0D0330: +/* 104E60 7F0D0330 5446FFFF */ bnel $v0, $a2, .L7F0D0330 +/* 104E64 7F0D0334 24420004 */ addiu $v0, $v0, 4 +.L7F0D0338: +/* 104E68 7F0D0338 8FA40540 */ lw $a0, 0x540($sp) +/* 104E6C 7F0D033C 0FC34074 */ jal sub_GAME_7F0D01D0 +/* 104E70 7F0D0340 01A02825 */ move $a1, $t5 +/* 104E74 7F0D0344 24020001 */ li $v0, 1 +.L7F0D0348: +/* 104E78 7F0D0348 8FBF0014 */ lw $ra, 0x14($sp) +/* 104E7C 7F0D034C 27BD0540 */ addiu $sp, $sp, 0x540 +/* 104E80 7F0D0350 03E00008 */ jr $ra +/* 104E84 7F0D0354 00000000 */ nop +) +#endif + + + + + + +u32 send2indyresourcecommands(struct indy_resource_entry * entry1, u32 size1, struct indy_resource_entry * entry2, u32 size2) +{ + postindyresourcecommand(entry1,size1); + postindyresourcecommand(entry2,size2); + return 1; +} + + +void post_type1_indyrescmd_sizenextcmd(s32 readsize,s32 writesize) +{ + struct indy_resource_entry cmd; + + cmd.resourceID = 0x9abf1623; + cmd.type = 1; + cmd.size = 0x14; + cmd.readsize = readsize; + cmd.writesize = writesize; + postindyresourcecommand(&cmd,0x14); +} + + +void post_type2_indyrescmd_cmds_rdy_to_proc(s32 readsize,s32 writesize) +{ + struct indy_resource_entry cmd; + + cmd.resourceID = 0x9abf1623; + cmd.type = 2; + cmd.size = 0x14; + cmd.readsize = readsize; + cmd.writesize = writesize; + postindyresourcecommand(&cmd,0x14); +} + + +void post_type0_indyrescmd_init(s32 readsize,s32 writesize) +{ + struct indy_resource_entry cmd; + cmd.resourceID = 0x9abf1623; + cmd.type = 0; + cmd.size = 0x14; + cmd.readsize = readsize; + cmd.writesize = writesize; + postindyresourcecommand(&cmd,0x14); +} + +#ifdef NONMATCHING +void post_type3_indyrescmd(s32 rsize,s32 wsize,char *strptr) +{ + struct indy_resource_entry_type3 cmd; + + cmd.entry.resourceID = 0x9abf1623; + cmd.entry.type = 3; + cmd.entry.size = 0x114; + cmd.entry.readsize = rsize; + cmd.entry.writesize = wsize; + something_with_strings(cmd.strbuffer,strptr,0x100); + cmd.data = 0; + postindyresourcecommand(&cmd.entry,0x114); +} +#else +GLOBAL_ASM( +.text +glabel post_type3_indyrescmd +/* 104F90 7F0D0460 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 104F94 7F0D0464 AFA50134 */ sw $a1, 0x134($sp) +/* 104F98 7F0D0468 3C0E9ABF */ lui $t6, (0x9ABF1623 >> 16) # lui $t6, 0x9abf +/* 104F9C 7F0D046C AFA5002C */ sw $a1, 0x2c($sp) +/* 104FA0 7F0D0470 AFBF0014 */ sw $ra, 0x14($sp) +/* 104FA4 7F0D0474 AFA60138 */ sw $a2, 0x138($sp) +/* 104FA8 7F0D0478 35CE1623 */ ori $t6, (0x9ABF1623 & 0xFFFF) # ori $t6, $t6, 0x1623 +/* 104FAC 7F0D047C 240F0003 */ li $t7, 3 +/* 104FB0 7F0D0480 24180114 */ li $t8, 276 +/* 104FB4 7F0D0484 AFA40028 */ sw $a0, 0x28($sp) +/* 104FB8 7F0D0488 00C02825 */ move $a1, $a2 +/* 104FBC 7F0D048C AFAE001C */ sw $t6, 0x1c($sp) +/* 104FC0 7F0D0490 AFAF0020 */ sw $t7, 0x20($sp) +/* 104FC4 7F0D0494 AFB80024 */ sw $t8, 0x24($sp) +/* 104FC8 7F0D0498 24060100 */ li $a2, 256 +/* 104FCC 7F0D049C 0C0029E8 */ jal something_with_strings +/* 104FD0 7F0D04A0 27A40030 */ addiu $a0, $sp, 0x30 +/* 104FD4 7F0D04A4 A3A0012F */ sb $zero, 0x12f($sp) +/* 104FD8 7F0D04A8 27A4001C */ addiu $a0, $sp, 0x1c +/* 104FDC 7F0D04AC 0FC34088 */ jal postindyresourcecommand +/* 104FE0 7F0D04B0 24050114 */ li $a1, 276 +/* 104FE4 7F0D04B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 104FE8 7F0D04B8 27BD0130 */ addiu $sp, $sp, 0x130 +/* 104FEC 7F0D04BC 03E00008 */ jr $ra +/* 104FF0 7F0D04C0 00000000 */ nop +) +#endif + + + + + + +void post_type4_indyrescmd_data_recieved(s32 readsize,s32 writesize,s32 data) +{ + struct indy_resource_entry_type4 cmd; + + cmd.entry.resourceID = 0x9abf1623; + cmd.entry.type = 4; + cmd.entry.size = 0x18; + cmd.entry.readsize = readsize; + cmd.entry.writesize = writesize; + cmd.data = data; + postindyresourcecommand(&cmd.entry,0x18); +} + + + + + + +#ifdef NONMATCHING +void post_type5_indyrescmd_printfsend(s32 param_1,s32 param_2,char *param_3) +{ + struct indy_resource_entry cmd; + char acStack256 [255]; + undefined uStack1; + + cmd.resourceID = 0x9abf1623; + cmd.type = 5; + cmd.size = 0x114; + cmd.readsize = param_1; + cmd.writesize = param_2; + something_with_strings(acStack256,param_3,0x100); + uStack1 = 0; + postindyresourcecommand(&cmd,0x114); +} +#else +GLOBAL_ASM( +.text +glabel post_type5_indyrescmd_printfsend +/* 105044 7F0D0514 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 105048 7F0D0518 AFA50134 */ sw $a1, 0x134($sp) +/* 10504C 7F0D051C 3C0E9ABF */ lui $t6, (0x9ABF1623 >> 16) # lui $t6, 0x9abf +/* 105050 7F0D0520 AFA5002C */ sw $a1, 0x2c($sp) +/* 105054 7F0D0524 AFBF0014 */ sw $ra, 0x14($sp) +/* 105058 7F0D0528 AFA60138 */ sw $a2, 0x138($sp) +/* 10505C 7F0D052C 35CE1623 */ ori $t6, (0x9ABF1623 & 0xFFFF) # ori $t6, $t6, 0x1623 +/* 105060 7F0D0530 240F0005 */ li $t7, 5 +/* 105064 7F0D0534 24180114 */ li $t8, 276 +/* 105068 7F0D0538 AFA40028 */ sw $a0, 0x28($sp) +/* 10506C 7F0D053C 00C02825 */ move $a1, $a2 +/* 105070 7F0D0540 AFAE001C */ sw $t6, 0x1c($sp) +/* 105074 7F0D0544 AFAF0020 */ sw $t7, 0x20($sp) +/* 105078 7F0D0548 AFB80024 */ sw $t8, 0x24($sp) +/* 10507C 7F0D054C 24060100 */ li $a2, 256 +/* 105080 7F0D0550 0C0029E8 */ jal something_with_strings +/* 105084 7F0D0554 27A40030 */ addiu $a0, $sp, 0x30 +/* 105088 7F0D0558 A3A0012F */ sb $zero, 0x12f($sp) +/* 10508C 7F0D055C 27A4001C */ addiu $a0, $sp, 0x1c +/* 105090 7F0D0560 0FC34088 */ jal postindyresourcecommand +/* 105094 7F0D0564 24050114 */ li $a1, 276 +/* 105098 7F0D0568 8FBF0014 */ lw $ra, 0x14($sp) +/* 10509C 7F0D056C 27BD0130 */ addiu $sp, $sp, 0x130 +/* 1050A0 7F0D0570 03E00008 */ jr $ra +/* 1050A4 7F0D0574 00000000 */ nop +) +#endif + + + + + + +void post_type6_indyrescmd_printfrecieved(s32 readsize,s32 writesize,u32 data1,u32 data2) +{ + struct indy_resource_entry_type6 cmd; + + cmd.entry.resourceID = 0x9abf1623; + cmd.entry.type = 6; + cmd.entry.size = 0x1c; + cmd.entry.readsize = readsize; + cmd.entry.writesize = writesize; + cmd.data1 = data1; + cmd.data2 = data2; + postindyresourcecommand(&cmd.entry,0x1c); +} + + + +#ifdef NONMATCHING +void post_type7_indyrescmd_log_send(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_type7_indyrescmd_log_send +/* 105100 7F0D05D0 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 105104 7F0D05D4 AFA50134 */ sw $a1, 0x134($sp) +/* 105108 7F0D05D8 3C0E9ABF */ lui $t6, (0x9ABF1623 >> 16) # lui $t6, 0x9abf +/* 10510C 7F0D05DC AFA50028 */ sw $a1, 0x28($sp) +/* 105110 7F0D05E0 AFBF0014 */ sw $ra, 0x14($sp) +/* 105114 7F0D05E4 AFA40130 */ sw $a0, 0x130($sp) +/* 105118 7F0D05E8 AFA60138 */ sw $a2, 0x138($sp) +/* 10511C 7F0D05EC 35CE1623 */ ori $t6, (0x9ABF1623 & 0xFFFF) # ori $t6, $t6, 0x1623 +/* 105120 7F0D05F0 240F0007 */ li $t7, 7 +/* 105124 7F0D05F4 24180118 */ li $t8, 280 +/* 105128 7F0D05F8 AFA40024 */ sw $a0, 0x24($sp) +/* 10512C 7F0D05FC 00C02825 */ move $a1, $a2 +/* 105130 7F0D0600 AFA7013C */ sw $a3, 0x13c($sp) +/* 105134 7F0D0604 AFAE0018 */ sw $t6, 0x18($sp) +/* 105138 7F0D0608 AFAF001C */ sw $t7, 0x1c($sp) +/* 10513C 7F0D060C AFB80020 */ sw $t8, 0x20($sp) +/* 105140 7F0D0610 24060100 */ li $a2, 256 +/* 105144 7F0D0614 0C0029E8 */ jal something_with_strings +/* 105148 7F0D0618 27A4002C */ addiu $a0, $sp, 0x2c +/* 10514C 7F0D061C 8FA9013C */ lw $t1, 0x13c($sp) +/* 105150 7F0D0620 A3A0012B */ sb $zero, 0x12b($sp) +/* 105154 7F0D0624 27A40018 */ addiu $a0, $sp, 0x18 +/* 105158 7F0D0628 24050118 */ li $a1, 280 +/* 10515C 7F0D062C 0FC34088 */ jal postindyresourcecommand +/* 105160 7F0D0630 AFA9012C */ sw $t1, 0x12c($sp) +/* 105164 7F0D0634 8FBF0014 */ lw $ra, 0x14($sp) +/* 105168 7F0D0638 27BD0130 */ addiu $sp, $sp, 0x130 +/* 10516C 7F0D063C 03E00008 */ jr $ra +/* 105170 7F0D0640 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_type8_indyrescmd_log_recieved(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_type8_indyrescmd_log_recieved +/* 105174 7F0D0644 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 105178 7F0D0648 AFA70044 */ sw $a3, 0x44($sp) +/* 10517C 7F0D064C 8FA70048 */ lw $a3, 0x48($sp) +/* 105180 7F0D0650 2401FFFC */ li $at, -4 +/* 105184 7F0D0654 8FAC0044 */ lw $t4, 0x44($sp) +/* 105188 7F0D0658 24F80003 */ addiu $t8, $a3, 3 +/* 10518C 7F0D065C 3C0E9ABF */ lui $t6, (0x9ABF1623 >> 16) # lui $t6, 0x9abf +/* 105190 7F0D0660 0301C824 */ and $t9, $t8, $at +/* 105194 7F0D0664 AFBF0014 */ sw $ra, 0x14($sp) +/* 105198 7F0D0668 AFA40038 */ sw $a0, 0x38($sp) +/* 10519C 7F0D066C AFA5003C */ sw $a1, 0x3c($sp) +/* 1051A0 7F0D0670 AFA60040 */ sw $a2, 0x40($sp) +/* 1051A4 7F0D0674 35CE1623 */ ori $t6, (0x9ABF1623 & 0xFFFF) # ori $t6, $t6, 0x1623 +/* 1051A8 7F0D0678 240F0008 */ li $t7, 8 +/* 1051AC 7F0D067C 27280020 */ addiu $t0, $t9, 0x20 +/* 1051B0 7F0D0680 AFA40024 */ sw $a0, 0x24($sp) +/* 1051B4 7F0D0684 AFA50028 */ sw $a1, 0x28($sp) +/* 1051B8 7F0D0688 AFA6002C */ sw $a2, 0x2c($sp) +/* 1051BC 7F0D068C AFAE0018 */ sw $t6, 0x18($sp) +/* 1051C0 7F0D0690 AFAF001C */ sw $t7, 0x1c($sp) +/* 1051C4 7F0D0694 AFA80020 */ sw $t0, 0x20($sp) +/* 1051C8 7F0D0698 8FA6004C */ lw $a2, 0x4c($sp) +/* 1051CC 7F0D069C 24050020 */ li $a1, 32 +/* 1051D0 7F0D06A0 27A40018 */ addiu $a0, $sp, 0x18 +/* 1051D4 7F0D06A4 AFA70034 */ sw $a3, 0x34($sp) +/* 1051D8 7F0D06A8 0FC340D6 */ jal send2indyresourcecommands +/* 1051DC 7F0D06AC AFAC0030 */ sw $t4, 0x30($sp) +/* 1051E0 7F0D06B0 8FBF0014 */ lw $ra, 0x14($sp) +/* 1051E4 7F0D06B4 27BD0038 */ addiu $sp, $sp, 0x38 +/* 1051E8 7F0D06B8 03E00008 */ jr $ra +/* 1051EC 7F0D06BC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_type9_indyrescmd_app_command_ready(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_type9_indyrescmd_app_command_ready +/* 1051F0 7F0D06C0 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 1051F4 7F0D06C4 24F90003 */ addiu $t9, $a3, 3 +/* 1051F8 7F0D06C8 2401FFFC */ li $at, -4 +/* 1051FC 7F0D06CC AFA50134 */ sw $a1, 0x134($sp) +/* 105200 7F0D06D0 3C0E9ABF */ lui $t6, (0x9ABF1623 >> 16) # lui $t6, 0x9abf +/* 105204 7F0D06D4 03214024 */ and $t0, $t9, $at +/* 105208 7F0D06D8 AFA5002C */ sw $a1, 0x2c($sp) +/* 10520C 7F0D06DC AFBF0014 */ sw $ra, 0x14($sp) +/* 105210 7F0D06E0 AFA40130 */ sw $a0, 0x130($sp) +/* 105214 7F0D06E4 AFA60138 */ sw $a2, 0x138($sp) +/* 105218 7F0D06E8 35CE1623 */ ori $t6, (0x9ABF1623 & 0xFFFF) # ori $t6, $t6, 0x1623 +/* 10521C 7F0D06EC 240F0009 */ li $t7, 9 +/* 105220 7F0D06F0 25090114 */ addiu $t1, $t0, 0x114 +/* 105224 7F0D06F4 AFA40028 */ sw $a0, 0x28($sp) +/* 105228 7F0D06F8 00C02825 */ move $a1, $a2 +/* 10522C 7F0D06FC AFA7013C */ sw $a3, 0x13c($sp) +/* 105230 7F0D0700 AFAE001C */ sw $t6, 0x1c($sp) +/* 105234 7F0D0704 AFAF0020 */ sw $t7, 0x20($sp) +/* 105238 7F0D0708 AFA90024 */ sw $t1, 0x24($sp) +/* 10523C 7F0D070C 24060100 */ li $a2, 256 +/* 105240 7F0D0710 0C0029E8 */ jal something_with_strings +/* 105244 7F0D0714 27A40030 */ addiu $a0, $sp, 0x30 +/* 105248 7F0D0718 A3A0012F */ sb $zero, 0x12f($sp) +/* 10524C 7F0D071C 27A4001C */ addiu $a0, $sp, 0x1c +/* 105250 7F0D0720 24050114 */ li $a1, 276 +/* 105254 7F0D0724 8FA60140 */ lw $a2, 0x140($sp) +/* 105258 7F0D0728 0FC340D6 */ jal send2indyresourcecommands +/* 10525C 7F0D072C 8FA7013C */ lw $a3, 0x13c($sp) +/* 105260 7F0D0730 8FBF0014 */ lw $ra, 0x14($sp) +/* 105264 7F0D0734 27BD0130 */ addiu $sp, $sp, 0x130 +/* 105268 7F0D0738 03E00008 */ jr $ra +/* 10526C 7F0D073C 00000000 */ nop +) +#endif + + + + +void post_typeA_indyrescmd_app_command_recieved(s32 readsize,s32 writesize,u32 data) +{ + struct indy_resource_entry_type4 cmd; + + cmd.entry.resourceID = 0x9abf1623; + cmd.entry.type = 10; + cmd.entry.size = 0x18; + cmd.entry.readsize = readsize; + cmd.entry.writesize = writesize; + cmd.data = data; + postindyresourcecommand(&cmd.entry,0x18); +} + + + + + +#ifdef NONMATCHING +void post_typeF_indyrescmd_fault_send(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_typeF_indyrescmd_fault_send +/* 1052C0 7F0D0790 27BDFEC8 */ addiu $sp, $sp, -0x138 +/* 1052C4 7F0D0794 AFA5013C */ sw $a1, 0x13c($sp) +/* 1052C8 7F0D0798 3C0E9ABF */ lui $t6, (0x9ABF1623 >> 16) # lui $t6, 0x9abf +/* 1052CC 7F0D079C AFA5002C */ sw $a1, 0x2c($sp) +/* 1052D0 7F0D07A0 AFBF0014 */ sw $ra, 0x14($sp) +/* 1052D4 7F0D07A4 AFA40138 */ sw $a0, 0x138($sp) +/* 1052D8 7F0D07A8 AFA60140 */ sw $a2, 0x140($sp) +/* 1052DC 7F0D07AC 35CE1623 */ ori $t6, (0x9ABF1623 & 0xFFFF) # ori $t6, $t6, 0x1623 +/* 1052E0 7F0D07B0 240F000F */ li $t7, 15 +/* 1052E4 7F0D07B4 2418011C */ li $t8, 284 +/* 1052E8 7F0D07B8 AFA40028 */ sw $a0, 0x28($sp) +/* 1052EC 7F0D07BC 00C02825 */ move $a1, $a2 +/* 1052F0 7F0D07C0 AFA70144 */ sw $a3, 0x144($sp) +/* 1052F4 7F0D07C4 AFAE001C */ sw $t6, 0x1c($sp) +/* 1052F8 7F0D07C8 AFAF0020 */ sw $t7, 0x20($sp) +/* 1052FC 7F0D07CC AFB80024 */ sw $t8, 0x24($sp) +/* 105300 7F0D07D0 24060100 */ li $a2, 256 +/* 105304 7F0D07D4 0C0029E8 */ jal something_with_strings +/* 105308 7F0D07D8 27A40030 */ addiu $a0, $sp, 0x30 +/* 10530C 7F0D07DC 8FA90144 */ lw $t1, 0x144($sp) +/* 105310 7F0D07E0 8FAA0148 */ lw $t2, 0x148($sp) +/* 105314 7F0D07E4 A3A0012F */ sb $zero, 0x12f($sp) +/* 105318 7F0D07E8 27A4001C */ addiu $a0, $sp, 0x1c +/* 10531C 7F0D07EC 2405011C */ li $a1, 284 +/* 105320 7F0D07F0 AFA90130 */ sw $t1, 0x130($sp) +/* 105324 7F0D07F4 0FC34088 */ jal postindyresourcecommand +/* 105328 7F0D07F8 AFAA0134 */ sw $t2, 0x134($sp) +/* 10532C 7F0D07FC 8FBF0014 */ lw $ra, 0x14($sp) +/* 105330 7F0D0800 27BD0138 */ addiu $sp, $sp, 0x138 +/* 105334 7F0D0804 03E00008 */ jr $ra +/* 105338 7F0D0808 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_type10_indyrescmd_fault_ack_by_host(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_type10_indyrescmd_fault_ack_by_host +/* 10533C 7F0D080C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 105340 7F0D0810 8FA90048 */ lw $t1, 0x48($sp) +/* 105344 7F0D0814 3C0E9ABF */ lui $t6, (0x9ABF1623 >> 16) # lui $t6, 0x9abf +/* 105348 7F0D0818 AFBF0014 */ sw $ra, 0x14($sp) +/* 10534C 7F0D081C AFA40038 */ sw $a0, 0x38($sp) +/* 105350 7F0D0820 AFA5003C */ sw $a1, 0x3c($sp) +/* 105354 7F0D0824 35CE1623 */ ori $t6, (0x9ABF1623 & 0xFFFF) # ori $t6, $t6, 0x1623 +/* 105358 7F0D0828 240F0010 */ li $t7, 16 +/* 10535C 7F0D082C 24180020 */ li $t8, 32 +/* 105360 7F0D0830 AFA40024 */ sw $a0, 0x24($sp) +/* 105364 7F0D0834 AFA50028 */ sw $a1, 0x28($sp) +/* 105368 7F0D0838 AFAE0018 */ sw $t6, 0x18($sp) +/* 10536C 7F0D083C AFAF001C */ sw $t7, 0x1c($sp) +/* 105370 7F0D0840 AFB80020 */ sw $t8, 0x20($sp) +/* 105374 7F0D0844 AFA6002C */ sw $a2, 0x2c($sp) +/* 105378 7F0D0848 AFA70030 */ sw $a3, 0x30($sp) +/* 10537C 7F0D084C 24050020 */ li $a1, 32 +/* 105380 7F0D0850 27A40018 */ addiu $a0, $sp, 0x18 +/* 105384 7F0D0854 0FC34088 */ jal postindyresourcecommand +/* 105388 7F0D0858 AFA90034 */ sw $t1, 0x34($sp) +/* 10538C 7F0D085C 8FBF0014 */ lw $ra, 0x14($sp) +/* 105390 7F0D0860 27BD0038 */ addiu $sp, $sp, 0x38 +/* 105394 7F0D0864 03E00008 */ jr $ra +/* 105398 7F0D0868 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_typeD_indyrescmd_prof_send_filename(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_typeD_indyrescmd_prof_send_filename +/* 10539C 7F0D086C 27BDFEC8 */ addiu $sp, $sp, -0x138 +/* 1053A0 7F0D0870 AFA5013C */ sw $a1, 0x13c($sp) +/* 1053A4 7F0D0874 3C0E9ABF */ lui $t6, (0x9ABF1623 >> 16) # lui $t6, 0x9abf +/* 1053A8 7F0D0878 AFA5002C */ sw $a1, 0x2c($sp) +/* 1053AC 7F0D087C AFBF0014 */ sw $ra, 0x14($sp) +/* 1053B0 7F0D0880 AFA40138 */ sw $a0, 0x138($sp) +/* 1053B4 7F0D0884 AFA60140 */ sw $a2, 0x140($sp) +/* 1053B8 7F0D0888 35CE1623 */ ori $t6, (0x9ABF1623 & 0xFFFF) # ori $t6, $t6, 0x1623 +/* 1053BC 7F0D088C 240F000D */ li $t7, 13 +/* 1053C0 7F0D0890 2418011C */ li $t8, 284 +/* 1053C4 7F0D0894 AFA40028 */ sw $a0, 0x28($sp) +/* 1053C8 7F0D0898 00C02825 */ move $a1, $a2 +/* 1053CC 7F0D089C AFA70144 */ sw $a3, 0x144($sp) +/* 1053D0 7F0D08A0 AFAE001C */ sw $t6, 0x1c($sp) +/* 1053D4 7F0D08A4 AFAF0020 */ sw $t7, 0x20($sp) +/* 1053D8 7F0D08A8 AFB80024 */ sw $t8, 0x24($sp) +/* 1053DC 7F0D08AC 24060100 */ li $a2, 256 +/* 1053E0 7F0D08B0 0C0029E8 */ jal something_with_strings +/* 1053E4 7F0D08B4 27A40030 */ addiu $a0, $sp, 0x30 +/* 1053E8 7F0D08B8 8FA90144 */ lw $t1, 0x144($sp) +/* 1053EC 7F0D08BC 8FAA0148 */ lw $t2, 0x148($sp) +/* 1053F0 7F0D08C0 A3A0012F */ sb $zero, 0x12f($sp) +/* 1053F4 7F0D08C4 27A4001C */ addiu $a0, $sp, 0x1c +/* 1053F8 7F0D08C8 2405011C */ li $a1, 284 +/* 1053FC 7F0D08CC AFA90130 */ sw $t1, 0x130($sp) +/* 105400 7F0D08D0 0FC34088 */ jal postindyresourcecommand +/* 105404 7F0D08D4 AFAA0134 */ sw $t2, 0x134($sp) +/* 105408 7F0D08D8 8FBF0014 */ lw $ra, 0x14($sp) +/* 10540C 7F0D08DC 27BD0138 */ addiu $sp, $sp, 0x138 +/* 105410 7F0D08E0 03E00008 */ jr $ra +/* 105414 7F0D08E4 00000000 */ nop +) +#endif + + + + + + +void post_typeE_indyrescmd_prof_recv(s32 readsize,s32 writesize,u32 data) +{ + struct indy_resource_entry_type4 cmd; + + cmd.entry.resourceID = 0x9abf1623; + cmd.entry.type = 0xe; + cmd.entry.size = 0x18; + cmd.entry.readsize = readsize; + cmd.entry.writesize = writesize; + cmd.data = data; + postindyresourcecommand(&cmd.entry,0x18); +} + + + + + +#ifdef NONMATCHING +void post_typeB_indyrescmd_host_prof_req(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_typeB_indyrescmd_host_prof_req +/* 105468 7F0D0938 27BDFBD0 */ addiu $sp, $sp, -0x430 +/* 10546C 7F0D093C AFA50434 */ sw $a1, 0x434($sp) +/* 105470 7F0D0940 3C0E9ABF */ lui $t6, (0x9ABF1623 >> 16) # lui $t6, 0x9abf +/* 105474 7F0D0944 AFA5002C */ sw $a1, 0x2c($sp) +/* 105478 7F0D0948 AFBF0014 */ sw $ra, 0x14($sp) +/* 10547C 7F0D094C AFA60438 */ sw $a2, 0x438($sp) +/* 105480 7F0D0950 35CE1623 */ ori $t6, (0x9ABF1623 & 0xFFFF) # ori $t6, $t6, 0x1623 +/* 105484 7F0D0954 240F000B */ li $t7, 11 +/* 105488 7F0D0958 24180414 */ li $t8, 1044 +/* 10548C 7F0D095C AFA40028 */ sw $a0, 0x28($sp) +/* 105490 7F0D0960 00C02825 */ move $a1, $a2 +/* 105494 7F0D0964 AFAE001C */ sw $t6, 0x1c($sp) +/* 105498 7F0D0968 AFAF0020 */ sw $t7, 0x20($sp) +/* 10549C 7F0D096C AFB80024 */ sw $t8, 0x24($sp) +/* 1054A0 7F0D0970 24060400 */ li $a2, 1024 +/* 1054A4 7F0D0974 0C0029E8 */ jal something_with_strings +/* 1054A8 7F0D0978 27A40030 */ addiu $a0, $sp, 0x30 +/* 1054AC 7F0D097C A3A0042F */ sb $zero, 0x42f($sp) +/* 1054B0 7F0D0980 27A4001C */ addiu $a0, $sp, 0x1c +/* 1054B4 7F0D0984 0FC34088 */ jal postindyresourcecommand +/* 1054B8 7F0D0988 24050414 */ li $a1, 1044 +/* 1054BC 7F0D098C 8FBF0014 */ lw $ra, 0x14($sp) +/* 1054C0 7F0D0990 27BD0430 */ addiu $sp, $sp, 0x430 +/* 1054C4 7F0D0994 03E00008 */ jr $ra +/* 1054C8 7F0D0998 00000000 */ nop +) +#endif + + + + + + +void post_typeC_indyrescmd_prof_send(s32 readsize,s32 writesize,u32 data) +{ + struct indy_resource_entry_type4 cmd; + + cmd.entry.resourceID = 0x9abf1623; + cmd.entry.type = 0xc; + cmd.entry.size = 0x18; + cmd.entry.readsize = readsize; + cmd.entry.writesize = writesize; + cmd.data = data; + postindyresourcecommand(&cmd.entry,0x18); +} + + +void post_typeA_indyrescmd_app_data_recieved(s32 readsize,s32 writesize,u32 data) +{ + struct indy_resource_entry_type4 cmd; + + cmd.entry.resourceID = 0x9abf1623; + cmd.entry.type = 10; + cmd.entry.size = 0x18; + cmd.entry.readsize = readsize; + cmd.entry.writesize = writesize; + cmd.data = data; + postindyresourcecommand(&cmd.entry,0x18); +} + + +u32 post_indy__res_cmd_initialize_seq(void) +{ + post_type1_indyrescmd_sizenextcmd(0x14,0x14); + post_type0_indyrescmd_init(0x14,0x14); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_game_data_send(char *strptr) +{ + post_type1_indyrescmd_sizenextcmd(0x114,0x114); + post_type3_indyrescmd(0x14,0x14,strptr); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_debug_data_recv(u32 data) +{ + post_type1_indyrescmd_sizenextcmd(0x18,0x18); + post_type4_indyrescmd_data_recieved(0x14,0x14,data); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_game_printf_send(char *strptr) +{ + post_type1_indyrescmd_sizenextcmd(0x114,0x114); + post_type5_indyrescmd_printfsend(0x14,0x14,strptr); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_debug_printf_recv(u32 data1,u32 data2) +{ + post_type1_indyrescmd_sizenextcmd(0x1c,0x1c); + post_type6_indyrescmd_printfrecieved(0x14,0x14,data1,data2); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_req_filename_size(u8 *filename,u32 size) +{ + post_type1_indyrescmd_sizenextcmd(0x118,0x118); + post_type7_indyrescmd_log_send(0x14,0x14,filename,size); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_1_8_2(u32 data1,u32 data2,u32 size2,struct indy_resource_entry *cmd2) +{ + post_type1_indyrescmd_sizenextcmd((size2 + 3 & 0xfffffffc) + 0x20,0x20); + post_type8_indyrescmd_log_recieved(0x14,0x14,data1,data2,size2,cmd2); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_send_capture_data(char *string, u32 size, struct indy_resource_entry *data) +{ + post_type1_indyrescmd_sizenextcmd((size + 3 & 0xfffffffc) + 0x114,0x114); + post_type9_indyrescmd_app_command_ready(0x14,0x14,string,size,data); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_recv_capture_data_success(u32 data) +{ + post_type1_indyrescmd_sizenextcmd(0x18,0x18); + post_typeA_indyrescmd_app_command_recieved(0x14,0x14,data); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_request_ramrom_file(char *strptr,u32 ptarget,u32 filesize) +{ + post_type1_indyrescmd_sizenextcmd(0x11c,0x11c); + post_typeF_indyrescmd_fault_send(0x14,0x14,strptr,filesize,ptarget); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_1_10_2(u32 param_1,u32 param_2,u32 param_3) +{ + post_type1_indyrescmd_sizenextcmd(0x20,0x20); + post_type10_indyrescmd_fault_ack_by_host(0x14,0x14,param_1,param_2,param_3); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_game_prof_sendfile(char *strptr,u8 *phwaddr,u32 size) +{ + post_type1_indyrescmd_sizenextcmd(0x11c,0x11c); + post_typeD_indyrescmd_prof_send_filename(0x14,0x14,strptr,size,phwaddr); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_host_prof_recv(u32 data) +{ + post_type1_indyrescmd_sizenextcmd(0x18,0x18); + post_typeE_indyrescmd_prof_recv(0x14,0x14,data); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_1_B_2(char *strptr) +{ + post_type1_indyrescmd_sizenextcmd(0x414,0x414); + post_typeB_indyrescmd_host_prof_req(0x14,0x14,strptr); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_1_C_2(u32 data) +{ + post_type1_indyrescmd_sizenextcmd(0x18,0x18); + post_typeC_indyrescmd_prof_send(0x14,0x14,data); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + +u32 post_indyrescmd_1_A_2(u32 data) +{ + post_type1_indyrescmd_sizenextcmd(0x18,0x18); + post_typeA_indyrescmd_app_data_recieved(0x14,0x14,data); + post_type2_indyrescmd_cmds_rdy_to_proc(0,0); + return 1; +} + + + + + + +#ifdef NONMATCHING +void post_indyrescmd_read_command(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_read_command +/* 105A7C 7F0D0F4C 27BDFBC0 */ addiu $sp, $sp, -0x440 +/* 105A80 7F0D0F50 27A20040 */ addiu $v0, $sp, 0x40 +/* 105A84 7F0D0F54 308F0007 */ andi $t7, $a0, 7 +/* 105A88 7F0D0F58 AFBF0014 */ sw $ra, 0x14($sp) +/* 105A8C 7F0D0F5C AFA40440 */ sw $a0, 0x440($sp) +/* 105A90 7F0D0F60 00A03025 */ move $a2, $a1 +/* 105A94 7F0D0F64 00401825 */ move $v1, $v0 +/* 105A98 7F0D0F68 11E00031 */ beqz $t7, .L7F0D1030 +/* 105A9C 7F0D0F6C 00403825 */ move $a3, $v0 +/* 105AA0 7F0D0F70 2CA10401 */ sltiu $at, $a1, 0x401 +/* 105AA4 7F0D0F74 14200003 */ bnez $at, .L7F0D0F84 +/* 105AA8 7F0D0F78 30580007 */ andi $t8, $v0, 7 +/* 105AAC 7F0D0F7C 10000046 */ b .L7F0D1098 +/* 105AB0 7F0D0F80 00001025 */ move $v0, $zero +.L7F0D0F84: +/* 105AB4 7F0D0F84 13000003 */ beqz $t8, .L7F0D0F94 +/* 105AB8 7F0D0F88 24C50003 */ addiu $a1, $a2, 3 +/* 105ABC 7F0D0F8C 27A30044 */ addiu $v1, $sp, 0x44 +/* 105AC0 7F0D0F90 00603825 */ move $a3, $v1 +.L7F0D0F94: +/* 105AC4 7F0D0F94 2401FFFC */ li $at, -4 +/* 105AC8 7F0D0F98 00A1C824 */ and $t9, $a1, $at +/* 105ACC 7F0D0F9C 03202825 */ move $a1, $t9 +/* 105AD0 7F0D0FA0 00E02025 */ move $a0, $a3 +/* 105AD4 7F0D0FA4 AFA3003C */ sw $v1, 0x3c($sp) +/* 105AD8 7F0D0FA8 0FC34060 */ jal sub_GAME_7F0D0180 +/* 105ADC 7F0D0FAC AFA60444 */ sw $a2, 0x444($sp) +/* 105AE0 7F0D0FB0 8FA3003C */ lw $v1, 0x3c($sp) +/* 105AE4 7F0D0FB4 8FA60444 */ lw $a2, 0x444($sp) +/* 105AE8 7F0D0FB8 8FA20440 */ lw $v0, 0x440($sp) +/* 105AEC 7F0D0FBC 3C098005 */ lui $t1, %hi(indy_status) +/* 105AF0 7F0D0FC0 00662021 */ addu $a0, $v1, $a2 +/* 105AF4 7F0D0FC4 0064082B */ sltu $at, $v1, $a0 +/* 105AF8 7F0D0FC8 10200007 */ beqz $at, .L7F0D0FE8 +/* 105AFC 7F0D0FCC 00000000 */ nop +.L7F0D0FD0: +/* 105B00 7F0D0FD0 90680000 */ lbu $t0, ($v1) +/* 105B04 7F0D0FD4 24630001 */ addiu $v1, $v1, 1 +/* 105B08 7F0D0FD8 0064082B */ sltu $at, $v1, $a0 +/* 105B0C 7F0D0FDC 24420001 */ addiu $v0, $v0, 1 +/* 105B10 7F0D0FE0 1420FFFB */ bnez $at, .L7F0D0FD0 +/* 105B14 7F0D0FE4 A048FFFF */ sb $t0, -1($v0) +.L7F0D0FE8: +/* 105B18 7F0D0FE8 8D29EAC4 */ lw $t1, %lo(indy_status)($t1) +/* 105B1C 7F0D0FEC 312A0010 */ andi $t2, $t1, 0x10 +/* 105B20 7F0D0FF0 1140000D */ beqz $t2, .L7F0D1028 +/* 105B24 7F0D0FF4 00000000 */ nop +/* 105B28 7F0D0FF8 10C0000B */ beqz $a2, .L7F0D1028 +/* 105B2C 7F0D0FFC 00001025 */ move $v0, $zero +/* 105B30 7F0D1000 30C40003 */ andi $a0, $a2, 3 +/* 105B34 7F0D1004 10800005 */ beqz $a0, .L7F0D101C +/* 105B38 7F0D1008 00801825 */ move $v1, $a0 +/* 105B3C 7F0D100C 24420001 */ addiu $v0, $v0, 1 +.L7F0D1010: +/* 105B40 7F0D1010 5462FFFF */ bnel $v1, $v0, .L7F0D1010 +/* 105B44 7F0D1014 24420001 */ addiu $v0, $v0, 1 +/* 105B48 7F0D1018 10460003 */ beq $v0, $a2, .L7F0D1028 +.L7F0D101C: +/* 105B4C 7F0D101C 24420004 */ addiu $v0, $v0, 4 +.L7F0D1020: +/* 105B50 7F0D1020 5446FFFF */ bnel $v0, $a2, .L7F0D1020 +/* 105B54 7F0D1024 24420004 */ addiu $v0, $v0, 4 +.L7F0D1028: +/* 105B58 7F0D1028 1000001B */ b .L7F0D1098 +/* 105B5C 7F0D102C 24020001 */ li $v0, 1 +.L7F0D1030: +/* 105B60 7F0D1030 24C50003 */ addiu $a1, $a2, 3 +/* 105B64 7F0D1034 2401FFFC */ li $at, -4 +/* 105B68 7F0D1038 00A15824 */ and $t3, $a1, $at +/* 105B6C 7F0D103C 01602825 */ move $a1, $t3 +/* 105B70 7F0D1040 8FA40440 */ lw $a0, 0x440($sp) +/* 105B74 7F0D1044 0FC34060 */ jal sub_GAME_7F0D0180 +/* 105B78 7F0D1048 AFA60444 */ sw $a2, 0x444($sp) +/* 105B7C 7F0D104C 3C0C8005 */ lui $t4, %hi(indy_status) +/* 105B80 7F0D1050 8D8CEAC4 */ lw $t4, %lo(indy_status)($t4) +/* 105B84 7F0D1054 8FA60444 */ lw $a2, 0x444($sp) +/* 105B88 7F0D1058 318D0010 */ andi $t5, $t4, 0x10 +/* 105B8C 7F0D105C 51A0000E */ beql $t5, $zero, .L7F0D1098 +/* 105B90 7F0D1060 24020001 */ li $v0, 1 +/* 105B94 7F0D1064 10C0000B */ beqz $a2, .L7F0D1094 +/* 105B98 7F0D1068 00001025 */ move $v0, $zero +/* 105B9C 7F0D106C 30C40003 */ andi $a0, $a2, 3 +/* 105BA0 7F0D1070 10800005 */ beqz $a0, .L7F0D1088 +/* 105BA4 7F0D1074 00801825 */ move $v1, $a0 +/* 105BA8 7F0D1078 24420001 */ addiu $v0, $v0, 1 +.L7F0D107C: +/* 105BAC 7F0D107C 5462FFFF */ bnel $v1, $v0, .L7F0D107C +/* 105BB0 7F0D1080 24420001 */ addiu $v0, $v0, 1 +/* 105BB4 7F0D1084 10460003 */ beq $v0, $a2, .L7F0D1094 +.L7F0D1088: +/* 105BB8 7F0D1088 24420004 */ addiu $v0, $v0, 4 +.L7F0D108C: +/* 105BBC 7F0D108C 5446FFFF */ bnel $v0, $a2, .L7F0D108C +/* 105BC0 7F0D1090 24420004 */ addiu $v0, $v0, 4 +.L7F0D1094: +/* 105BC4 7F0D1094 24020001 */ li $v0, 1 +.L7F0D1098: +/* 105BC8 7F0D1098 8FBF0014 */ lw $ra, 0x14($sp) +/* 105BCC 7F0D109C 27BD0440 */ addiu $sp, $sp, 0x440 +/* 105BD0 7F0D10A0 03E00008 */ jr $ra +/* 105BD4 7F0D10A4 00000000 */ nop +) +#endif + + + + + + +u32 post_indyrescmd_read_2commands(u8 *buffer1,u32 size1,u8 *buffer2,u32 size2) +{ + sub_GAME_7F0D0180(buffer1,size1 + 3 & 0xfffffffc); + sub_GAME_7F0D0180(buffer2,size2 + 3 & 0xfffffffc); + return 1; +} + + + + + +#ifdef NONMATCHING +u32 post_indyrescmd_istype1_correctsize(int readsize,int writesize) +{ + u32 ret; + struct indy_resource_entry cmd; + + post_indyrescmd_read_command(&cmd,0x14); + if ((cmd.resourceID == 0x9abf1623) && (cmd.type == 1) && (cmd.size == 0x14) && ((readsize == 0) || (cmd.readsize == readsize))) { + ret = 1; + if (cmd.writesize != writesize) { + ret = 0; + } + } + else { + ret = 0; + } + return ret; +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_istype1_correctsize +/* 105C30 7F0D1100 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 105C34 7F0D1104 AFBF0014 */ sw $ra, 0x14($sp) +/* 105C38 7F0D1108 AFA40030 */ sw $a0, 0x30($sp) +/* 105C3C 7F0D110C AFA50034 */ sw $a1, 0x34($sp) +/* 105C40 7F0D1110 24050014 */ li $a1, 20 +/* 105C44 7F0D1114 0FC343D3 */ jal post_indyrescmd_read_command +/* 105C48 7F0D1118 27A4001C */ addiu $a0, $sp, 0x1c +/* 105C4C 7F0D111C 8FAE001C */ lw $t6, 0x1c($sp) +/* 105C50 7F0D1120 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 105C54 7F0D1124 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 105C58 7F0D1128 11C10003 */ beq $t6, $at, .L7F0D1138 +/* 105C5C 7F0D112C 8FA20030 */ lw $v0, 0x30($sp) +/* 105C60 7F0D1130 1000001A */ b .L7F0D119C +/* 105C64 7F0D1134 00001025 */ move $v0, $zero +.L7F0D1138: +/* 105C68 7F0D1138 8FAF0020 */ lw $t7, 0x20($sp) +/* 105C6C 7F0D113C 24010001 */ li $at, 1 +/* 105C70 7F0D1140 8FB80024 */ lw $t8, 0x24($sp) +/* 105C74 7F0D1144 51E10004 */ beql $t7, $at, .L7F0D1158 +/* 105C78 7F0D1148 24010014 */ li $at, 20 +/* 105C7C 7F0D114C 10000013 */ b .L7F0D119C +/* 105C80 7F0D1150 00001025 */ move $v0, $zero +/* 105C84 7F0D1154 24010014 */ li $at, 20 +.L7F0D1158: +/* 105C88 7F0D1158 13010003 */ beq $t8, $at, .L7F0D1168 +/* 105C8C 7F0D115C 00000000 */ nop +/* 105C90 7F0D1160 1000000E */ b .L7F0D119C +/* 105C94 7F0D1164 00001025 */ move $v0, $zero +.L7F0D1168: +/* 105C98 7F0D1168 10400005 */ beqz $v0, .L7F0D1180 +/* 105C9C 7F0D116C 8FB90028 */ lw $t9, 0x28($sp) +/* 105CA0 7F0D1170 53220004 */ beql $t9, $v0, .L7F0D1184 +/* 105CA4 7F0D1174 8FA8002C */ lw $t0, 0x2c($sp) +/* 105CA8 7F0D1178 10000008 */ b .L7F0D119C +/* 105CAC 7F0D117C 00001025 */ move $v0, $zero +.L7F0D1180: +/* 105CB0 7F0D1180 8FA8002C */ lw $t0, 0x2c($sp) +.L7F0D1184: +/* 105CB4 7F0D1184 8FA90034 */ lw $t1, 0x34($sp) +/* 105CB8 7F0D1188 24020001 */ li $v0, 1 +/* 105CBC 7F0D118C 11090003 */ beq $t0, $t1, .L7F0D119C +/* 105CC0 7F0D1190 00000000 */ nop +/* 105CC4 7F0D1194 10000001 */ b .L7F0D119C +/* 105CC8 7F0D1198 00001025 */ move $v0, $zero +.L7F0D119C: +/* 105CCC 7F0D119C 8FBF0014 */ lw $ra, 0x14($sp) +/* 105CD0 7F0D11A0 27BD0030 */ addiu $sp, $sp, 0x30 +/* 105CD4 7F0D11A4 03E00008 */ jr $ra +/* 105CD8 7F0D11A8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +u32 post_indyrescmd_istype2_correctvalue(int readsize,int writesize) +{ + u32 ret; + struct indy_resource_entry cmd; + + post_indyrescmd_read_command(&cmd,0x14); + if ((cmd.resourceID == 0x9abf1623) && (cmd.type == 2) && (cmd.size == 0x14) && (cmd.readsize == readsize)) + { + ret = 1; + if (cmd.writesize != writesize) { + ret = 0; + } + } + else { + ret = 0; + } + return ret; +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_istype2_correctvalue +/* 105CDC 7F0D11AC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 105CE0 7F0D11B0 AFBF0014 */ sw $ra, 0x14($sp) +/* 105CE4 7F0D11B4 AFA40030 */ sw $a0, 0x30($sp) +/* 105CE8 7F0D11B8 AFA50034 */ sw $a1, 0x34($sp) +/* 105CEC 7F0D11BC 24050014 */ li $a1, 20 +/* 105CF0 7F0D11C0 0FC343D3 */ jal post_indyrescmd_read_command +/* 105CF4 7F0D11C4 27A4001C */ addiu $a0, $sp, 0x1c +/* 105CF8 7F0D11C8 8FAE001C */ lw $t6, 0x1c($sp) +/* 105CFC 7F0D11CC 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 105D00 7F0D11D0 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 105D04 7F0D11D4 11C10003 */ beq $t6, $at, .L7F0D11E4 +/* 105D08 7F0D11D8 8FBF0014 */ lw $ra, 0x14($sp) +/* 105D0C 7F0D11DC 10000018 */ b .L7F0D1240 +/* 105D10 7F0D11E0 00001025 */ move $v0, $zero +.L7F0D11E4: +/* 105D14 7F0D11E4 8FAF0020 */ lw $t7, 0x20($sp) +/* 105D18 7F0D11E8 24010002 */ li $at, 2 +/* 105D1C 7F0D11EC 8FB80024 */ lw $t8, 0x24($sp) +/* 105D20 7F0D11F0 51E10004 */ beql $t7, $at, .L7F0D1204 +/* 105D24 7F0D11F4 24010014 */ li $at, 20 +/* 105D28 7F0D11F8 10000011 */ b .L7F0D1240 +/* 105D2C 7F0D11FC 00001025 */ move $v0, $zero +/* 105D30 7F0D1200 24010014 */ li $at, 20 +.L7F0D1204: +/* 105D34 7F0D1204 13010003 */ beq $t8, $at, .L7F0D1214 +/* 105D38 7F0D1208 8FB90028 */ lw $t9, 0x28($sp) +/* 105D3C 7F0D120C 1000000C */ b .L7F0D1240 +/* 105D40 7F0D1210 00001025 */ move $v0, $zero +.L7F0D1214: +/* 105D44 7F0D1214 8FA80030 */ lw $t0, 0x30($sp) +/* 105D48 7F0D1218 8FA9002C */ lw $t1, 0x2c($sp) +/* 105D4C 7F0D121C 8FAA0034 */ lw $t2, 0x34($sp) +/* 105D50 7F0D1220 13280003 */ beq $t9, $t0, .L7F0D1230 +/* 105D54 7F0D1224 00000000 */ nop +/* 105D58 7F0D1228 10000005 */ b .L7F0D1240 +/* 105D5C 7F0D122C 00001025 */ move $v0, $zero +.L7F0D1230: +/* 105D60 7F0D1230 112A0003 */ beq $t1, $t2, .L7F0D1240 +/* 105D64 7F0D1234 24020001 */ li $v0, 1 +/* 105D68 7F0D1238 10000001 */ b .L7F0D1240 +/* 105D6C 7F0D123C 00001025 */ move $v0, $zero +.L7F0D1240: +/* 105D70 7F0D1240 03E00008 */ jr $ra +/* 105D74 7F0D1244 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void post_indyrescmd_istype4_correctvalue(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_istype4_correctvalue +/* 105D78 7F0D1248 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 105D7C 7F0D124C AFBF0014 */ sw $ra, 0x14($sp) +/* 105D80 7F0D1250 AFA40030 */ sw $a0, 0x30($sp) +/* 105D84 7F0D1254 AFA50034 */ sw $a1, 0x34($sp) +/* 105D88 7F0D1258 AFA60038 */ sw $a2, 0x38($sp) +/* 105D8C 7F0D125C 24050018 */ li $a1, 24 +/* 105D90 7F0D1260 0FC343D3 */ jal post_indyrescmd_read_command +/* 105D94 7F0D1264 27A40018 */ addiu $a0, $sp, 0x18 +/* 105D98 7F0D1268 8FAE0018 */ lw $t6, 0x18($sp) +/* 105D9C 7F0D126C 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 105DA0 7F0D1270 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 105DA4 7F0D1274 11C10003 */ beq $t6, $at, .L7F0D1284 +/* 105DA8 7F0D1278 8FAF001C */ lw $t7, 0x1c($sp) +/* 105DAC 7F0D127C 10000019 */ b .L7F0D12E4 +/* 105DB0 7F0D1280 00001025 */ move $v0, $zero +.L7F0D1284: +/* 105DB4 7F0D1284 24010004 */ li $at, 4 +/* 105DB8 7F0D1288 11E10003 */ beq $t7, $at, .L7F0D1298 +/* 105DBC 7F0D128C 8FB80020 */ lw $t8, 0x20($sp) +/* 105DC0 7F0D1290 10000014 */ b .L7F0D12E4 +/* 105DC4 7F0D1294 00001025 */ move $v0, $zero +.L7F0D1298: +/* 105DC8 7F0D1298 24010018 */ li $at, 24 +/* 105DCC 7F0D129C 13010003 */ beq $t8, $at, .L7F0D12AC +/* 105DD0 7F0D12A0 8FB90024 */ lw $t9, 0x24($sp) +/* 105DD4 7F0D12A4 1000000F */ b .L7F0D12E4 +/* 105DD8 7F0D12A8 00001025 */ move $v0, $zero +.L7F0D12AC: +/* 105DDC 7F0D12AC 8FA80030 */ lw $t0, 0x30($sp) +/* 105DE0 7F0D12B0 8FA90028 */ lw $t1, 0x28($sp) +/* 105DE4 7F0D12B4 8FAA0034 */ lw $t2, 0x34($sp) +/* 105DE8 7F0D12B8 13280003 */ beq $t9, $t0, .L7F0D12C8 +/* 105DEC 7F0D12BC 00000000 */ nop +/* 105DF0 7F0D12C0 10000008 */ b .L7F0D12E4 +/* 105DF4 7F0D12C4 00001025 */ move $v0, $zero +.L7F0D12C8: +/* 105DF8 7F0D12C8 112A0003 */ beq $t1, $t2, .L7F0D12D8 +/* 105DFC 7F0D12CC 8FAB002C */ lw $t3, 0x2c($sp) +/* 105E00 7F0D12D0 10000004 */ b .L7F0D12E4 +/* 105E04 7F0D12D4 00001025 */ move $v0, $zero +.L7F0D12D8: +/* 105E08 7F0D12D8 8FAC0038 */ lw $t4, 0x38($sp) +/* 105E0C 7F0D12DC 24020001 */ li $v0, 1 +/* 105E10 7F0D12E0 AD8B0000 */ sw $t3, ($t4) +.L7F0D12E4: +/* 105E14 7F0D12E4 8FBF0014 */ lw $ra, 0x14($sp) +/* 105E18 7F0D12E8 27BD0030 */ addiu $sp, $sp, 0x30 +/* 105E1C 7F0D12EC 03E00008 */ jr $ra +/* 105E20 7F0D12F0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_indyrescmd_istype6_correctvalue(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_istype6_correctvalue +/* 105E24 7F0D12F4 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 105E28 7F0D12F8 AFBF0014 */ sw $ra, 0x14($sp) +/* 105E2C 7F0D12FC AFA40038 */ sw $a0, 0x38($sp) +/* 105E30 7F0D1300 AFA5003C */ sw $a1, 0x3c($sp) +/* 105E34 7F0D1304 AFA60040 */ sw $a2, 0x40($sp) +/* 105E38 7F0D1308 AFA70044 */ sw $a3, 0x44($sp) +/* 105E3C 7F0D130C 2405001C */ li $a1, 28 +/* 105E40 7F0D1310 0FC343D3 */ jal post_indyrescmd_read_command +/* 105E44 7F0D1314 27A4001C */ addiu $a0, $sp, 0x1c +/* 105E48 7F0D1318 8FAE001C */ lw $t6, 0x1c($sp) +/* 105E4C 7F0D131C 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 105E50 7F0D1320 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 105E54 7F0D1324 11C10003 */ beq $t6, $at, .L7F0D1334 +/* 105E58 7F0D1328 8FAF0020 */ lw $t7, 0x20($sp) +/* 105E5C 7F0D132C 1000001C */ b .L7F0D13A0 +/* 105E60 7F0D1330 00001025 */ move $v0, $zero +.L7F0D1334: +/* 105E64 7F0D1334 24010006 */ li $at, 6 +/* 105E68 7F0D1338 11E10003 */ beq $t7, $at, .L7F0D1348 +/* 105E6C 7F0D133C 8FB80024 */ lw $t8, 0x24($sp) +/* 105E70 7F0D1340 10000017 */ b .L7F0D13A0 +/* 105E74 7F0D1344 00001025 */ move $v0, $zero +.L7F0D1348: +/* 105E78 7F0D1348 2401001C */ li $at, 28 +/* 105E7C 7F0D134C 13010003 */ beq $t8, $at, .L7F0D135C +/* 105E80 7F0D1350 8FB90028 */ lw $t9, 0x28($sp) +/* 105E84 7F0D1354 10000012 */ b .L7F0D13A0 +/* 105E88 7F0D1358 00001025 */ move $v0, $zero +.L7F0D135C: +/* 105E8C 7F0D135C 8FA80038 */ lw $t0, 0x38($sp) +/* 105E90 7F0D1360 8FA9002C */ lw $t1, 0x2c($sp) +/* 105E94 7F0D1364 8FAA003C */ lw $t2, 0x3c($sp) +/* 105E98 7F0D1368 13280003 */ beq $t9, $t0, .L7F0D1378 +/* 105E9C 7F0D136C 00000000 */ nop +/* 105EA0 7F0D1370 1000000B */ b .L7F0D13A0 +/* 105EA4 7F0D1374 00001025 */ move $v0, $zero +.L7F0D1378: +/* 105EA8 7F0D1378 112A0003 */ beq $t1, $t2, .L7F0D1388 +/* 105EAC 7F0D137C 8FAB0030 */ lw $t3, 0x30($sp) +/* 105EB0 7F0D1380 10000007 */ b .L7F0D13A0 +/* 105EB4 7F0D1384 00001025 */ move $v0, $zero +.L7F0D1388: +/* 105EB8 7F0D1388 8FAC0040 */ lw $t4, 0x40($sp) +/* 105EBC 7F0D138C 24020001 */ li $v0, 1 +/* 105EC0 7F0D1390 AD8B0000 */ sw $t3, ($t4) +/* 105EC4 7F0D1394 8FAE0044 */ lw $t6, 0x44($sp) +/* 105EC8 7F0D1398 8FAD0034 */ lw $t5, 0x34($sp) +/* 105ECC 7F0D139C ADCD0000 */ sw $t5, ($t6) +.L7F0D13A0: +/* 105ED0 7F0D13A0 8FBF0014 */ lw $ra, 0x14($sp) +/* 105ED4 7F0D13A4 27BD0038 */ addiu $sp, $sp, 0x38 +/* 105ED8 7F0D13A8 03E00008 */ jr $ra +/* 105EDC 7F0D13AC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_indyrescmd_istype8_correctvalue(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_istype8_correctvalue +/* 105EE0 7F0D13B0 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 105EE4 7F0D13B4 AFBF0014 */ sw $ra, 0x14($sp) +/* 105EE8 7F0D13B8 AFA40038 */ sw $a0, 0x38($sp) +/* 105EEC 7F0D13BC AFA5003C */ sw $a1, 0x3c($sp) +/* 105EF0 7F0D13C0 AFA60040 */ sw $a2, 0x40($sp) +/* 105EF4 7F0D13C4 AFA70044 */ sw $a3, 0x44($sp) +/* 105EF8 7F0D13C8 24050020 */ li $a1, 32 +/* 105EFC 7F0D13CC 0FC343D3 */ jal post_indyrescmd_read_command +/* 105F00 7F0D13D0 27A40018 */ addiu $a0, $sp, 0x18 +/* 105F04 7F0D13D4 8FAE0018 */ lw $t6, 0x18($sp) +/* 105F08 7F0D13D8 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 105F0C 7F0D13DC 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 105F10 7F0D13E0 11C10003 */ beq $t6, $at, .L7F0D13F0 +/* 105F14 7F0D13E4 8FAF001C */ lw $t7, 0x1c($sp) +/* 105F18 7F0D13E8 10000027 */ b .L7F0D1488 +/* 105F1C 7F0D13EC 00001025 */ move $v0, $zero +.L7F0D13F0: +/* 105F20 7F0D13F0 24010008 */ li $at, 8 +/* 105F24 7F0D13F4 11E10003 */ beq $t7, $at, .L7F0D1404 +/* 105F28 7F0D13F8 8FB90034 */ lw $t9, 0x34($sp) +/* 105F2C 7F0D13FC 10000022 */ b .L7F0D1488 +/* 105F30 7F0D1400 00001025 */ move $v0, $zero +.L7F0D1404: +/* 105F34 7F0D1404 8FB80020 */ lw $t8, 0x20($sp) +/* 105F38 7F0D1408 2402FFFC */ li $v0, -4 +/* 105F3C 7F0D140C 27280003 */ addiu $t0, $t9, 3 +/* 105F40 7F0D1410 01024824 */ and $t1, $t0, $v0 +/* 105F44 7F0D1414 252A0020 */ addiu $t2, $t1, 0x20 +/* 105F48 7F0D1418 130A0003 */ beq $t8, $t2, .L7F0D1428 +/* 105F4C 7F0D141C 8FAB0024 */ lw $t3, 0x24($sp) +/* 105F50 7F0D1420 10000019 */ b .L7F0D1488 +/* 105F54 7F0D1424 00001025 */ move $v0, $zero +.L7F0D1428: +/* 105F58 7F0D1428 8FAC0038 */ lw $t4, 0x38($sp) +/* 105F5C 7F0D142C 8FAD0028 */ lw $t5, 0x28($sp) +/* 105F60 7F0D1430 8FAE003C */ lw $t6, 0x3c($sp) +/* 105F64 7F0D1434 116C0003 */ beq $t3, $t4, .L7F0D1444 +/* 105F68 7F0D1438 00000000 */ nop +/* 105F6C 7F0D143C 10000012 */ b .L7F0D1488 +/* 105F70 7F0D1440 00001025 */ move $v0, $zero +.L7F0D1444: +/* 105F74 7F0D1444 11AE0003 */ beq $t5, $t6, .L7F0D1454 +/* 105F78 7F0D1448 8FAF002C */ lw $t7, 0x2c($sp) +/* 105F7C 7F0D144C 1000000E */ b .L7F0D1488 +/* 105F80 7F0D1450 00001025 */ move $v0, $zero +.L7F0D1454: +/* 105F84 7F0D1454 8FB90040 */ lw $t9, 0x40($sp) +/* 105F88 7F0D1458 AF2F0000 */ sw $t7, ($t9) +/* 105F8C 7F0D145C 8FA90044 */ lw $t1, 0x44($sp) +/* 105F90 7F0D1460 8FA80030 */ lw $t0, 0x30($sp) +/* 105F94 7F0D1464 AD280000 */ sw $t0, ($t1) +/* 105F98 7F0D1468 8FB80034 */ lw $t8, 0x34($sp) +/* 105F9C 7F0D146C 8FAA0048 */ lw $t2, 0x48($sp) +/* 105FA0 7F0D1470 270B0003 */ addiu $t3, $t8, 3 +/* 105FA4 7F0D1474 AD580000 */ sw $t8, ($t2) +/* 105FA8 7F0D1478 8FA4004C */ lw $a0, 0x4c($sp) +/* 105FAC 7F0D147C 0FC343D3 */ jal post_indyrescmd_read_command +/* 105FB0 7F0D1480 01622824 */ and $a1, $t3, $v0 +/* 105FB4 7F0D1484 24020001 */ li $v0, 1 +.L7F0D1488: +/* 105FB8 7F0D1488 8FBF0014 */ lw $ra, 0x14($sp) +/* 105FBC 7F0D148C 27BD0038 */ addiu $sp, $sp, 0x38 +/* 105FC0 7F0D1490 03E00008 */ jr $ra +/* 105FC4 7F0D1494 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_indyrescmd_istypeA_correctvalue(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_istypeA_correctvalue +/* 105FC8 7F0D1498 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 105FCC 7F0D149C AFBF0014 */ sw $ra, 0x14($sp) +/* 105FD0 7F0D14A0 AFA40030 */ sw $a0, 0x30($sp) +/* 105FD4 7F0D14A4 AFA50034 */ sw $a1, 0x34($sp) +/* 105FD8 7F0D14A8 AFA60038 */ sw $a2, 0x38($sp) +/* 105FDC 7F0D14AC 24050018 */ li $a1, 24 +/* 105FE0 7F0D14B0 0FC343D3 */ jal post_indyrescmd_read_command +/* 105FE4 7F0D14B4 27A40018 */ addiu $a0, $sp, 0x18 +/* 105FE8 7F0D14B8 8FAE0018 */ lw $t6, 0x18($sp) +/* 105FEC 7F0D14BC 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 105FF0 7F0D14C0 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 105FF4 7F0D14C4 11C10003 */ beq $t6, $at, .L7F0D14D4 +/* 105FF8 7F0D14C8 8FAF001C */ lw $t7, 0x1c($sp) +/* 105FFC 7F0D14CC 10000019 */ b .L7F0D1534 +/* 106000 7F0D14D0 00001025 */ move $v0, $zero +.L7F0D14D4: +/* 106004 7F0D14D4 2401000A */ li $at, 10 +/* 106008 7F0D14D8 11E10003 */ beq $t7, $at, .L7F0D14E8 +/* 10600C 7F0D14DC 8FB80020 */ lw $t8, 0x20($sp) +/* 106010 7F0D14E0 10000014 */ b .L7F0D1534 +/* 106014 7F0D14E4 00001025 */ move $v0, $zero +.L7F0D14E8: +/* 106018 7F0D14E8 24010018 */ li $at, 24 +/* 10601C 7F0D14EC 13010003 */ beq $t8, $at, .L7F0D14FC +/* 106020 7F0D14F0 8FB90024 */ lw $t9, 0x24($sp) +/* 106024 7F0D14F4 1000000F */ b .L7F0D1534 +/* 106028 7F0D14F8 00001025 */ move $v0, $zero +.L7F0D14FC: +/* 10602C 7F0D14FC 8FA80030 */ lw $t0, 0x30($sp) +/* 106030 7F0D1500 8FA90028 */ lw $t1, 0x28($sp) +/* 106034 7F0D1504 8FAA0034 */ lw $t2, 0x34($sp) +/* 106038 7F0D1508 13280003 */ beq $t9, $t0, .L7F0D1518 +/* 10603C 7F0D150C 00000000 */ nop +/* 106040 7F0D1510 10000008 */ b .L7F0D1534 +/* 106044 7F0D1514 00001025 */ move $v0, $zero +.L7F0D1518: +/* 106048 7F0D1518 112A0003 */ beq $t1, $t2, .L7F0D1528 +/* 10604C 7F0D151C 8FAB002C */ lw $t3, 0x2c($sp) +/* 106050 7F0D1520 10000004 */ b .L7F0D1534 +/* 106054 7F0D1524 00001025 */ move $v0, $zero +.L7F0D1528: +/* 106058 7F0D1528 8FAC0038 */ lw $t4, 0x38($sp) +/* 10605C 7F0D152C 24020001 */ li $v0, 1 +/* 106060 7F0D1530 AD8B0000 */ sw $t3, ($t4) +.L7F0D1534: +/* 106064 7F0D1534 8FBF0014 */ lw $ra, 0x14($sp) +/* 106068 7F0D1538 27BD0030 */ addiu $sp, $sp, 0x30 +/* 10606C 7F0D153C 03E00008 */ jr $ra +/* 106070 7F0D1540 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_indyrescmd_istype10_correctvalue(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_istype10_correctvalue +/* 106074 7F0D1544 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 106078 7F0D1548 AFBF0014 */ sw $ra, 0x14($sp) +/* 10607C 7F0D154C AFA40038 */ sw $a0, 0x38($sp) +/* 106080 7F0D1550 AFA5003C */ sw $a1, 0x3c($sp) +/* 106084 7F0D1554 AFA60040 */ sw $a2, 0x40($sp) +/* 106088 7F0D1558 AFA70044 */ sw $a3, 0x44($sp) +/* 10608C 7F0D155C 24050020 */ li $a1, 32 +/* 106090 7F0D1560 0FC343D3 */ jal post_indyrescmd_read_command +/* 106094 7F0D1564 27A40018 */ addiu $a0, $sp, 0x18 +/* 106098 7F0D1568 8FAE0018 */ lw $t6, 0x18($sp) +/* 10609C 7F0D156C 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 1060A0 7F0D1570 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 1060A4 7F0D1574 11C10003 */ beq $t6, $at, .L7F0D1584 +/* 1060A8 7F0D1578 8FAF001C */ lw $t7, 0x1c($sp) +/* 1060AC 7F0D157C 1000001F */ b .L7F0D15FC +/* 1060B0 7F0D1580 00001025 */ move $v0, $zero +.L7F0D1584: +/* 1060B4 7F0D1584 24010010 */ li $at, 16 +/* 1060B8 7F0D1588 11E10003 */ beq $t7, $at, .L7F0D1598 +/* 1060BC 7F0D158C 8FB80020 */ lw $t8, 0x20($sp) +/* 1060C0 7F0D1590 1000001A */ b .L7F0D15FC +/* 1060C4 7F0D1594 00001025 */ move $v0, $zero +.L7F0D1598: +/* 1060C8 7F0D1598 24010020 */ li $at, 32 +/* 1060CC 7F0D159C 13010003 */ beq $t8, $at, .L7F0D15AC +/* 1060D0 7F0D15A0 8FB90024 */ lw $t9, 0x24($sp) +/* 1060D4 7F0D15A4 10000015 */ b .L7F0D15FC +/* 1060D8 7F0D15A8 00001025 */ move $v0, $zero +.L7F0D15AC: +/* 1060DC 7F0D15AC 8FA80038 */ lw $t0, 0x38($sp) +/* 1060E0 7F0D15B0 8FA90028 */ lw $t1, 0x28($sp) +/* 1060E4 7F0D15B4 8FAA003C */ lw $t2, 0x3c($sp) +/* 1060E8 7F0D15B8 13280003 */ beq $t9, $t0, .L7F0D15C8 +/* 1060EC 7F0D15BC 00000000 */ nop +/* 1060F0 7F0D15C0 1000000E */ b .L7F0D15FC +/* 1060F4 7F0D15C4 00001025 */ move $v0, $zero +.L7F0D15C8: +/* 1060F8 7F0D15C8 112A0003 */ beq $t1, $t2, .L7F0D15D8 +/* 1060FC 7F0D15CC 8FAB002C */ lw $t3, 0x2c($sp) +/* 106100 7F0D15D0 1000000A */ b .L7F0D15FC +/* 106104 7F0D15D4 00001025 */ move $v0, $zero +.L7F0D15D8: +/* 106108 7F0D15D8 8FAC0040 */ lw $t4, 0x40($sp) +/* 10610C 7F0D15DC 24020001 */ li $v0, 1 +/* 106110 7F0D15E0 AD8B0000 */ sw $t3, ($t4) +/* 106114 7F0D15E4 8FAE0044 */ lw $t6, 0x44($sp) +/* 106118 7F0D15E8 8FAD0030 */ lw $t5, 0x30($sp) +/* 10611C 7F0D15EC ADCD0000 */ sw $t5, ($t6) +/* 106120 7F0D15F0 8FB80048 */ lw $t8, 0x48($sp) +/* 106124 7F0D15F4 8FAF0034 */ lw $t7, 0x34($sp) +/* 106128 7F0D15F8 AF0F0000 */ sw $t7, ($t8) +.L7F0D15FC: +/* 10612C 7F0D15FC 8FBF0014 */ lw $ra, 0x14($sp) +/* 106130 7F0D1600 27BD0038 */ addiu $sp, $sp, 0x38 +/* 106134 7F0D1604 03E00008 */ jr $ra +/* 106138 7F0D1608 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_indyrescmd_istypeE_correctvalue(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_istypeE_correctvalue +/* 10613C 7F0D160C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 106140 7F0D1610 AFBF0014 */ sw $ra, 0x14($sp) +/* 106144 7F0D1614 AFA40030 */ sw $a0, 0x30($sp) +/* 106148 7F0D1618 AFA50034 */ sw $a1, 0x34($sp) +/* 10614C 7F0D161C AFA60038 */ sw $a2, 0x38($sp) +/* 106150 7F0D1620 24050018 */ li $a1, 24 +/* 106154 7F0D1624 0FC343D3 */ jal post_indyrescmd_read_command +/* 106158 7F0D1628 27A40018 */ addiu $a0, $sp, 0x18 +/* 10615C 7F0D162C 8FAE0018 */ lw $t6, 0x18($sp) +/* 106160 7F0D1630 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 106164 7F0D1634 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 106168 7F0D1638 11C10003 */ beq $t6, $at, .L7F0D1648 +/* 10616C 7F0D163C 8FAF001C */ lw $t7, 0x1c($sp) +/* 106170 7F0D1640 10000019 */ b .L7F0D16A8 +/* 106174 7F0D1644 00001025 */ move $v0, $zero +.L7F0D1648: +/* 106178 7F0D1648 2401000E */ li $at, 14 +/* 10617C 7F0D164C 11E10003 */ beq $t7, $at, .L7F0D165C +/* 106180 7F0D1650 8FB80020 */ lw $t8, 0x20($sp) +/* 106184 7F0D1654 10000014 */ b .L7F0D16A8 +/* 106188 7F0D1658 00001025 */ move $v0, $zero +.L7F0D165C: +/* 10618C 7F0D165C 24010018 */ li $at, 24 +/* 106190 7F0D1660 13010003 */ beq $t8, $at, .L7F0D1670 +/* 106194 7F0D1664 8FB90024 */ lw $t9, 0x24($sp) +/* 106198 7F0D1668 1000000F */ b .L7F0D16A8 +/* 10619C 7F0D166C 00001025 */ move $v0, $zero +.L7F0D1670: +/* 1061A0 7F0D1670 8FA80030 */ lw $t0, 0x30($sp) +/* 1061A4 7F0D1674 8FA90028 */ lw $t1, 0x28($sp) +/* 1061A8 7F0D1678 8FAA0034 */ lw $t2, 0x34($sp) +/* 1061AC 7F0D167C 13280003 */ beq $t9, $t0, .L7F0D168C +/* 1061B0 7F0D1680 00000000 */ nop +/* 1061B4 7F0D1684 10000008 */ b .L7F0D16A8 +/* 1061B8 7F0D1688 00001025 */ move $v0, $zero +.L7F0D168C: +/* 1061BC 7F0D168C 112A0003 */ beq $t1, $t2, .L7F0D169C +/* 1061C0 7F0D1690 8FAB002C */ lw $t3, 0x2c($sp) +/* 1061C4 7F0D1694 10000004 */ b .L7F0D16A8 +/* 1061C8 7F0D1698 00001025 */ move $v0, $zero +.L7F0D169C: +/* 1061CC 7F0D169C 8FAC0038 */ lw $t4, 0x38($sp) +/* 1061D0 7F0D16A0 24020001 */ li $v0, 1 +/* 1061D4 7F0D16A4 AD8B0000 */ sw $t3, ($t4) +.L7F0D16A8: +/* 1061D8 7F0D16A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 1061DC 7F0D16AC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 1061E0 7F0D16B0 03E00008 */ jr $ra +/* 1061E4 7F0D16B4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void post_indyrescmd_istypeC_correctvalue(void) { + +} +#else +GLOBAL_ASM( +.text +glabel post_indyrescmd_istypeC_correctvalue +/* 1061E8 7F0D16B8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 1061EC 7F0D16BC AFBF0014 */ sw $ra, 0x14($sp) +/* 1061F0 7F0D16C0 AFA40030 */ sw $a0, 0x30($sp) +/* 1061F4 7F0D16C4 AFA50034 */ sw $a1, 0x34($sp) +/* 1061F8 7F0D16C8 AFA60038 */ sw $a2, 0x38($sp) +/* 1061FC 7F0D16CC 24050018 */ li $a1, 24 +/* 106200 7F0D16D0 0FC343D3 */ jal post_indyrescmd_read_command +/* 106204 7F0D16D4 27A40018 */ addiu $a0, $sp, 0x18 +/* 106208 7F0D16D8 8FAE0018 */ lw $t6, 0x18($sp) +/* 10620C 7F0D16DC 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 106210 7F0D16E0 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 106214 7F0D16E4 11C10003 */ beq $t6, $at, .L7F0D16F4 +/* 106218 7F0D16E8 8FAF001C */ lw $t7, 0x1c($sp) +/* 10621C 7F0D16EC 10000019 */ b .L7F0D1754 +/* 106220 7F0D16F0 00001025 */ move $v0, $zero +.L7F0D16F4: +/* 106224 7F0D16F4 2401000C */ li $at, 12 +/* 106228 7F0D16F8 11E10003 */ beq $t7, $at, .L7F0D1708 +/* 10622C 7F0D16FC 8FB80020 */ lw $t8, 0x20($sp) +/* 106230 7F0D1700 10000014 */ b .L7F0D1754 +/* 106234 7F0D1704 00001025 */ move $v0, $zero +.L7F0D1708: +/* 106238 7F0D1708 24010018 */ li $at, 24 +/* 10623C 7F0D170C 13010003 */ beq $t8, $at, .L7F0D171C +/* 106240 7F0D1710 8FB90024 */ lw $t9, 0x24($sp) +/* 106244 7F0D1714 1000000F */ b .L7F0D1754 +/* 106248 7F0D1718 00001025 */ move $v0, $zero +.L7F0D171C: +/* 10624C 7F0D171C 8FA80030 */ lw $t0, 0x30($sp) +/* 106250 7F0D1720 8FA90028 */ lw $t1, 0x28($sp) +/* 106254 7F0D1724 8FAA0034 */ lw $t2, 0x34($sp) +/* 106258 7F0D1728 13280003 */ beq $t9, $t0, .L7F0D1738 +/* 10625C 7F0D172C 00000000 */ nop +/* 106260 7F0D1730 10000008 */ b .L7F0D1754 +/* 106264 7F0D1734 00001025 */ move $v0, $zero +.L7F0D1738: +/* 106268 7F0D1738 112A0003 */ beq $t1, $t2, .L7F0D1748 +/* 10626C 7F0D173C 8FAB002C */ lw $t3, 0x2c($sp) +/* 106270 7F0D1740 10000004 */ b .L7F0D1754 +/* 106274 7F0D1744 00001025 */ move $v0, $zero +.L7F0D1748: +/* 106278 7F0D1748 8FAC0038 */ lw $t4, 0x38($sp) +/* 10627C 7F0D174C 24020001 */ li $v0, 1 +/* 106280 7F0D1750 AD8B0000 */ sw $t3, ($t4) +.L7F0D1754: +/* 106284 7F0D1754 8FBF0014 */ lw $ra, 0x14($sp) +/* 106288 7F0D1758 27BD0030 */ addiu $sp, $sp, 0x30 +/* 10628C 7F0D175C 03E00008 */ jr $ra +/* 106290 7F0D1760 00000000 */ nop +) +#endif + + + + + + +u32 response_indyrescmd_1_4_2(u8 *response) +{ + post_indyrescmd_istype1_correctsize(0x18,0x18); + post_indyrescmd_istype4_correctvalue(0x14,0x14,response); + post_indyrescmd_istype2_correctvalue(0,0); + return 1; +} + + +u32 response_indyrescmd_1_6_2(u8 *response1,u8 *response2) +{ + post_indyrescmd_istype1_correctsize(0x1c,0x1c); + post_indyrescmd_istype6_correctvalue(0x14,0x14,response1,response2); + post_indyrescmd_istype2_correctvalue(0,0); + return 1; +} + + +u32 response_indyrescmd_1_8_2(u8 *response1,u8 *response2,u32 childsize,u8 *child) +{ + post_indyrescmd_istype1_correctsize(0,0x20); + post_indyrescmd_istype8_correctvalue(0x14,0x14,response1,response2,childsize,child); + post_indyrescmd_istype2_correctvalue(0,0); + return 1; +} + + +u32 response_indyrescmd_1_A_2(u8 *param_1) +{ + post_indyrescmd_istype1_correctsize(0x18,0x18); + post_indyrescmd_istypeA_correctvalue(0x14,0x14,param_1); + post_indyrescmd_istype2_correctvalue(0,0); + return 1; +} + + +u32 response_indyrescmd_1_10_2(u32 *param_1,u32 *param_2,u32 *param_3) +{ + post_indyrescmd_istype1_correctsize(0x20,0x20); + post_indyrescmd_istype10_correctvalue(0x14,0x14,param_1,param_2,param_3); + post_indyrescmd_istype2_correctvalue(0,0); + return 1; +} + + +u32 response_indyrescmd_1_E_2(u8 *response) +{ + post_indyrescmd_istype1_correctsize(0x18,0x18); + post_indyrescmd_istypeE_correctvalue(0x14,0x14,response); + post_indyrescmd_istype2_correctvalue(0,0); + return 1; +} + + +u32 response_indyrescmd_1_C_2(u8 *response) +{ + post_indyrescmd_istype1_correctsize(0x18,0x18); + post_indyrescmd_istypeC_correctvalue(0x14,0x14,response); + post_indyrescmd_istype2_correctvalue(0,0); + return 1; +} + + + + +#ifdef NONMATCHING +u32 response_indyrescmd_curr_matches_expected(int readsize,int writesize) +{ + u32 ret; + struct indy_resource_entry cmd; + + post_indyrescmd_read_command(&cmd,0x14); + if (cmd.resourceID == 0x9abf1623) { + if ((readsize == 0) || (cmd.readsize == readsize)) { + if (writesize == 0) { + ret = 1; + } + else { + if (cmd.writesize == writesize) { + ret = 1; + } + else { + ret = 0; + } + } + } + else { + ret = 0; + } + } + else { + ret = 0; + } + return ret; +} +#else +GLOBAL_ASM( +.text +glabel response_indyrescmd_curr_matches_expected +/* 1064C8 7F0D1998 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 1064CC 7F0D199C AFBF0014 */ sw $ra, 0x14($sp) +/* 1064D0 7F0D19A0 AFA40030 */ sw $a0, 0x30($sp) +/* 1064D4 7F0D19A4 AFA50034 */ sw $a1, 0x34($sp) +/* 1064D8 7F0D19A8 24050014 */ li $a1, 20 +/* 1064DC 7F0D19AC 0FC343D3 */ jal post_indyrescmd_read_command +/* 1064E0 7F0D19B0 27A4001C */ addiu $a0, $sp, 0x1c +/* 1064E4 7F0D19B4 8FAE001C */ lw $t6, 0x1c($sp) +/* 1064E8 7F0D19B8 3C019ABF */ lui $at, (0x9ABF1623 >> 16) # lui $at, 0x9abf +/* 1064EC 7F0D19BC 34211623 */ ori $at, (0x9ABF1623 & 0xFFFF) # ori $at, $at, 0x1623 +/* 1064F0 7F0D19C0 8FA20030 */ lw $v0, 0x30($sp) +/* 1064F4 7F0D19C4 11C10003 */ beq $t6, $at, .L7F0D19D4 +/* 1064F8 7F0D19C8 8FA30034 */ lw $v1, 0x34($sp) +/* 1064FC 7F0D19CC 1000000E */ b .L7F0D1A08 +/* 106500 7F0D19D0 00001025 */ move $v0, $zero +.L7F0D19D4: +/* 106504 7F0D19D4 10400005 */ beqz $v0, .L7F0D19EC +/* 106508 7F0D19D8 8FAF0028 */ lw $t7, 0x28($sp) +/* 10650C 7F0D19DC 11E20003 */ beq $t7, $v0, .L7F0D19EC +/* 106510 7F0D19E0 00000000 */ nop +/* 106514 7F0D19E4 10000008 */ b .L7F0D1A08 +/* 106518 7F0D19E8 00001025 */ move $v0, $zero +.L7F0D19EC: +/* 10651C 7F0D19EC 10600005 */ beqz $v1, .L7F0D1A04 +/* 106520 7F0D19F0 8FB8002C */ lw $t8, 0x2c($sp) +/* 106524 7F0D19F4 53030004 */ beql $t8, $v1, .L7F0D1A08 +/* 106528 7F0D19F8 24020001 */ li $v0, 1 +/* 10652C 7F0D19FC 10000002 */ b .L7F0D1A08 +/* 106530 7F0D1A00 00001025 */ move $v0, $zero +.L7F0D1A04: +/* 106534 7F0D1A04 24020001 */ li $v0, 1 +.L7F0D1A08: +/* 106538 7F0D1A08 8FBF0014 */ lw $ra, 0x14($sp) +/* 10653C 7F0D1A0C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 106540 7F0D1A10 03E00008 */ jr $ra +/* 106544 7F0D1A14 00000000 */ nop +) +#endif + + + diff --git a/src/game/indy_commands.h b/src/game/indy_commands.h new file mode 100644 index 0000000..2384e00 --- /dev/null +++ b/src/game/indy_commands.h @@ -0,0 +1,34 @@ +#ifndef _INDY_COMMANDS_H_ +#define _INDY_COMMANDS_H_ +#include "ultra64.h" + +struct indy_resource_entry { + u32 resourceID; + s32 type; + s32 size; + s32 readsize; + s32 writesize; +}; + +struct indy_resource_entry_type3 { + struct indy_resource_entry entry; + u8 strbuffer[255]; + u32 data; +}; + +struct indy_resource_entry_type4 { + struct indy_resource_entry entry; + u32 data; +}; + +struct indy_resource_entry_type6 { + struct indy_resource_entry entry; + u32 data1; + u32 data2; +}; + +extern s32 indy_ready; + +u32 postindyresourcecommand(struct indy_resource_entry *param_1,u32 param_2); + +#endif diff --git a/src/game/indy_comms.c b/src/game/indy_comms.c new file mode 100644 index 0000000..8a6770b --- /dev/null +++ b/src/game/indy_comms.c @@ -0,0 +1,276 @@ +#include "ultra64.h" +#include "game/indy_commands.h" +#include "game/indy_comms.h" + +s32 init_indy_if_not_ready(void) { + if (indy_ready != 1) + { + indy_ready = 1; + init_indy_if_ready(); + } +} + +void nullsub_48(void) { + return; +} + +void init_indy_if_ready(void) { + if (indy_ready != 0) + { + post_indy__res_cmd_initialize_seq(); + } +} + + +#ifdef NONMATCHING +void load_resource_on_indy(s32 arg1) { + ? sp18; + ? sp1C; + ? sp20; + + // Node 0 + if (indy_ready != 0) + { + // Node 1 + post_indyrescmd_req_filename_size(0x400000); + response_indyrescmd_1_8_2(&sp20, &sp1C, &sp18, arg1); + } + // Node 2 + return; +} +#else +GLOBAL_ASM( +.text +glabel load_resource_on_indy +/* 104ACC 7F0CFF9C 3C0E8005 */ lui $t6, %hi(indy_ready) +/* 104AD0 7F0CFFA0 8DCEEAC8 */ lw $t6, %lo(indy_ready)($t6) +/* 104AD4 7F0CFFA4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 104AD8 7F0CFFA8 AFBF0014 */ sw $ra, 0x14($sp) +/* 104ADC 7F0CFFAC 11C00008 */ beqz $t6, .L7F0CFFD0 +/* 104AE0 7F0CFFB0 AFA5002C */ sw $a1, 0x2c($sp) +/* 104AE4 7F0CFFB4 0FC342E9 */ jal post_indyrescmd_req_filename_size +/* 104AE8 7F0CFFB8 3C050040 */ lui $a1, 0x40 +/* 104AEC 7F0CFFBC 27A40020 */ addiu $a0, $sp, 0x20 +/* 104AF0 7F0CFFC0 27A5001C */ addiu $a1, $sp, 0x1c +/* 104AF4 7F0CFFC4 27A60018 */ addiu $a2, $sp, 0x18 +/* 104AF8 7F0CFFC8 0FC345FF */ jal response_indyrescmd_1_8_2 +/* 104AFC 7F0CFFCC 8FA7002C */ lw $a3, 0x2c($sp) +.L7F0CFFD0: +/* 104B00 7F0CFFD0 8FBF0014 */ lw $ra, 0x14($sp) +/* 104B04 7F0CFFD4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 104B08 7F0CFFD8 03E00008 */ jr $ra +/* 104B0C 7F0CFFDC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void indy_send_capture_data(s32 arg1, ? arg2) { + ? sp1C; + + // Node 0 + if (indy_ready != 0) + { + // Node 1 + post_indyrescmd_send_capture_data(arg2, arg1); + response_indyrescmd_1_A_2(&sp1C); + } + // Node 2 + return; +} +#else +GLOBAL_ASM( +.text +glabel indy_send_capture_data +/* 104B10 7F0CFFE0 3C0E8005 */ lui $t6, %hi(indy_ready) +/* 104B14 7F0CFFE4 8DCEEAC8 */ lw $t6, %lo(indy_ready)($t6) +/* 104B18 7F0CFFE8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 104B1C 7F0CFFEC AFBF0014 */ sw $ra, 0x14($sp) +/* 104B20 7F0CFFF0 11C00006 */ beqz $t6, .L7F0D000C +/* 104B24 7F0CFFF4 AFA50024 */ sw $a1, 0x24($sp) +/* 104B28 7F0CFFF8 00C02825 */ move $a1, $a2 +/* 104B2C 7F0CFFFC 0FC3431A */ jal post_indyrescmd_send_capture_data +/* 104B30 7F0D0000 8FA60024 */ lw $a2, 0x24($sp) +/* 104B34 7F0D0004 0FC34619 */ jal response_indyrescmd_1_A_2 +/* 104B38 7F0D0008 27A4001C */ addiu $a0, $sp, 0x1c +.L7F0D000C: +/* 104B3C 7F0D000C 8FBF0014 */ lw $ra, 0x14($sp) +/* 104B40 7F0D0010 27BD0020 */ addiu $sp, $sp, 0x20 +/* 104B44 7F0D0014 03E00008 */ jr $ra +/* 104B48 7F0D0018 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void indy_loadfile(void) { + ? sp1C; + ? sp20; + ? sp24; + + // Node 0 + if (indy_ready != 0) + { + // Node 1 + post_indyrescmd_request_ramrom_file(); + response_indyrescmd_1_10_2(&sp24, &sp20, &sp1C); + } + // Node 2 + return; +} +#else +GLOBAL_ASM( +.text +glabel indy_loadfile +/* 104B4C 7F0D001C 3C0E8005 */ lui $t6, %hi(indy_ready) +/* 104B50 7F0D0020 8DCEEAC8 */ lw $t6, %lo(indy_ready)($t6) +/* 104B54 7F0D0024 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 104B58 7F0D0028 AFBF0014 */ sw $ra, 0x14($sp) +/* 104B5C 7F0D002C 51C00008 */ beql $t6, $zero, .L7F0D0050 +/* 104B60 7F0D0030 8FBF0014 */ lw $ra, 0x14($sp) +/* 104B64 7F0D0034 0FC34346 */ jal post_indyrescmd_request_ramrom_file +/* 104B68 7F0D0038 00000000 */ nop +/* 104B6C 7F0D003C 27A40024 */ addiu $a0, $sp, 0x24 +/* 104B70 7F0D0040 27A50020 */ addiu $a1, $sp, 0x20 +/* 104B74 7F0D0044 0FC3462B */ jal response_indyrescmd_1_10_2 +/* 104B78 7F0D0048 27A6001C */ addiu $a2, $sp, 0x1c +/* 104B7C 7F0D004C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0D0050: +/* 104B80 7F0D0050 27BD0028 */ addiu $sp, $sp, 0x28 +/* 104B84 7F0D0054 03E00008 */ jr $ra +/* 104B88 7F0D0058 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void check_file_exported(s32 arg1, ? arg2) { + ? sp1C; + + // Node 0 + if (indy_ready != 0) + { + // Node 1 + post_indyrescmd_game_prof_sendfile(arg2, arg1); + response_indyrescmd_1_E_2(&sp1C); + } + // Node 2 + return; +} +#else +GLOBAL_ASM( +.text +glabel check_file_exported +/* 104B8C 7F0D005C 3C0E8005 */ lui $t6, %hi(indy_ready) +/* 104B90 7F0D0060 8DCEEAC8 */ lw $t6, %lo(indy_ready)($t6) +/* 104B94 7F0D0064 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 104B98 7F0D0068 AFBF0014 */ sw $ra, 0x14($sp) +/* 104B9C 7F0D006C 11C00006 */ beqz $t6, .L7F0D0088 +/* 104BA0 7F0D0070 AFA50024 */ sw $a1, 0x24($sp) +/* 104BA4 7F0D0074 00C02825 */ move $a1, $a2 +/* 104BA8 7F0D0078 0FC34374 */ jal post_indyrescmd_game_prof_sendfile +/* 104BAC 7F0D007C 8FA60024 */ lw $a2, 0x24($sp) +/* 104BB0 7F0D0080 0FC34642 */ jal response_indyrescmd_1_E_2 +/* 104BB4 7F0D0084 27A4001C */ addiu $a0, $sp, 0x1c +.L7F0D0088: +/* 104BB8 7F0D0088 8FBF0014 */ lw $ra, 0x14($sp) +/* 104BBC 7F0D008C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 104BC0 7F0D0090 03E00008 */ jr $ra +/* 104BC4 7F0D0094 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void check_file_found_on_indy(void) { + +} +#else +GLOBAL_ASM( +.text +glabel check_file_found_on_indy +/* 104BC8 7F0D0098 3C0E8005 */ lui $t6, %hi(indy_ready) +/* 104BCC 7F0D009C 8DCEEAC8 */ lw $t6, %lo(indy_ready)($t6) +/* 104BD0 7F0D00A0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 104BD4 7F0D00A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 104BD8 7F0D00A8 15C00003 */ bnez $t6, .L7F0D00B8 +/* 104BDC 7F0D00AC AFA50024 */ sw $a1, 0x24($sp) +/* 104BE0 7F0D00B0 10000007 */ b .L7F0D00D0 +/* 104BE4 7F0D00B4 00001025 */ move $v0, $zero +.L7F0D00B8: +/* 104BE8 7F0D00B8 0FC342C3 */ jal post_indyrescmd_game_printf_send +/* 104BEC 7F0D00BC 00000000 */ nop +/* 104BF0 7F0D00C0 27A4001C */ addiu $a0, $sp, 0x1c +/* 104BF4 7F0D00C4 0FC345EB */ jal response_indyrescmd_1_6_2 +/* 104BF8 7F0D00C8 8FA50024 */ lw $a1, 0x24($sp) +/* 104BFC 7F0D00CC 8FA2001C */ lw $v0, 0x1c($sp) +.L7F0D00D0: +/* 104C00 7F0D00D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 104C04 7F0D00D4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 104C08 7F0D00D8 03E00008 */ jr $ra +/* 104C0C 7F0D00DC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void response_from_command_string(void) { + +} +#else +GLOBAL_ASM( +.text +glabel response_from_command_string +/* 104C10 7F0D00E0 3C0E8005 */ lui $t6, %hi(indy_ready) +/* 104C14 7F0D00E4 8DCEEAC8 */ lw $t6, %lo(indy_ready)($t6) +/* 104C18 7F0D00E8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 104C1C 7F0D00EC AFBF0014 */ sw $ra, 0x14($sp) +/* 104C20 7F0D00F0 15C00003 */ bnez $t6, .L7F0D0100 +/* 104C24 7F0D00F4 00000000 */ nop +/* 104C28 7F0D00F8 10000006 */ b .L7F0D0114 +/* 104C2C 7F0D00FC 00001025 */ move $v0, $zero +.L7F0D0100: +/* 104C30 7F0D0100 0FC3439D */ jal post_indyrescmd_1_B_2 +/* 104C34 7F0D0104 00000000 */ nop +/* 104C38 7F0D0108 0FC34654 */ jal response_indyrescmd_1_C_2 +/* 104C3C 7F0D010C 27A4001C */ addiu $a0, $sp, 0x1c +/* 104C40 7F0D0110 8FA2001C */ lw $v0, 0x1c($sp) +.L7F0D0114: +/* 104C44 7F0D0114 8FBF0014 */ lw $ra, 0x14($sp) +/* 104C48 7F0D0118 27BD0020 */ addiu $sp, $sp, 0x20 +/* 104C4C 7F0D011C 03E00008 */ jr $ra +/* 104C50 7F0D0120 00000000 */ nop +) +#endif + + +void sub_GAME_7F0D0124(void) { + if (indy_ready != 0) + { + rmon_debug_returns_neg_1(); + } + return; +} + +void send_indy_close_port_cmd(void) { + response_from_command_string("sleep 5; /etc/killall ghost gload"); +} + + + + diff --git a/src/game/indy_comms.h b/src/game/indy_comms.h new file mode 100644 index 0000000..8a13386 --- /dev/null +++ b/src/game/indy_comms.h @@ -0,0 +1,9 @@ +#ifndef _INDY_COMMS_H_ +#define _INDY_COMMS_H_ +#include "ultra64.h" + +s32 init_indy_if_not_ready(void); +void init_indy_if_ready(void); +void load_resource_on_indy(s32 arg1); + +#endif diff --git a/src/game/initBondDATA.c b/src/game/initBondDATA.c new file mode 100644 index 0000000..5ea39df --- /dev/null +++ b/src/game/initBondDATA.c @@ -0,0 +1,265 @@ +#include "ultra64.h" +#include "game/initBondDATA.h" + +struct BONDdata_item_control_blocks BONDdata_item_control_blocks_initdata = { +0, 0xFFFFFFFF, 0, 0x100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0, 0, 0, 0, 0, 1.0, 0, 0, 0, 0, 1.0, 0, +0, 0, 0, 1.0, 0, 0, 0, 0, 0, 0, -1.0, 0, 1.0, 0, 0, 0, 0, 0, 0, -19.999996, 0, +19.999996, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.0, 0, 0, -1.0, 0, 0, +-1.0, 0, 0, -1.0, 0, 1.0, 0, 0, 1.0, 0, 0, 1.0, 0, 0, 1.0, 0, 0, 0, 1.0, 1.0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1000.0, 0, 0, 0, 0, 0xFF000000, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0 +}; + + + + + + + +#ifdef NONMATCHING +void init_player_BONDdata_stats(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8004F0E0 +.word 0x3f666666 +glabel fl_neg_pi +.word 0xc0490fdb +.text +glabel init_player_BONDdata_stats +/* 039C00 7F0050D0 27BDFC30 */ addiu $sp, $sp, -0x3d0 +/* 039C04 7F0050D4 3C0F8003 */ lui $t7, %hi(BONDdata_item_control_blocks_initdata) +/* 039C08 7F0050D8 25EFA3D0 */ addiu $t7, %lo(BONDdata_item_control_blocks_initdata) # addiu $t7, $t7, -0x5c30 +/* 039C0C 7F0050DC AFBF001C */ sw $ra, 0x1c($sp) +/* 039C10 7F0050E0 AFB00018 */ sw $s0, 0x18($sp) +/* 039C14 7F0050E4 25E803A8 */ addiu $t0, $t7, 0x3a8 +/* 039C18 7F0050E8 27AE0024 */ addiu $t6, $sp, 0x24 +.L7F0050EC: +/* 039C1C 7F0050EC 8DE10000 */ lw $at, ($t7) +/* 039C20 7F0050F0 25EF000C */ addiu $t7, $t7, 0xc +/* 039C24 7F0050F4 25CE000C */ addiu $t6, $t6, 0xc +/* 039C28 7F0050F8 ADC1FFF4 */ sw $at, -0xc($t6) +/* 039C2C 7F0050FC 8DE1FFF8 */ lw $at, -8($t7) +/* 039C30 7F005100 ADC1FFF8 */ sw $at, -8($t6) +/* 039C34 7F005104 8DE1FFFC */ lw $at, -4($t7) +/* 039C38 7F005108 15E8FFF8 */ bne $t7, $t0, .L7F0050EC +/* 039C3C 7F00510C ADC1FFFC */ sw $at, -4($t6) +/* 039C40 7F005110 3C048003 */ lui $a0, %hi(size_item_buffer) +/* 039C44 7F005114 8C84245C */ lw $a0, %lo(size_item_buffer)($a0) +/* 039C48 7F005118 0C0025C8 */ jal mempAllocBytesInBank +/* 039C4C 7F00511C 24050004 */ li $a1, 4 +/* 039C50 7F005120 3C108008 */ lui $s0, %hi(pPlayer) +/* 039C54 7F005124 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 039C58 7F005128 8E090000 */ lw $t1, ($s0) +/* 039C5C 7F00512C 0FC26919 */ jal get_num_players +/* 039C60 7F005130 AD220808 */ sw $v0, 0x808($t1) +/* 039C64 7F005134 24010001 */ li $at, 1 +/* 039C68 7F005138 14410006 */ bne $v0, $at, .L7F005154 +/* 039C6C 7F00513C 3C048003 */ lui $a0, %hi(size_item_buffer+0x4) +/* 039C70 7F005140 8C842460 */ lw $a0, %lo(size_item_buffer+0x4)($a0) +/* 039C74 7F005144 0C0025C8 */ jal mempAllocBytesInBank +/* 039C78 7F005148 24050004 */ li $a1, 4 +/* 039C7C 7F00514C 8E0A0000 */ lw $t2, ($s0) +/* 039C80 7F005150 AD42080C */ sw $v0, 0x80c($t2) +.L7F005154: +/* 039C84 7F005154 8E0B0000 */ lw $t3, ($s0) +/* 039C88 7F005158 2405FFFF */ li $a1, -1 +/* 039C8C 7F00515C 27A30024 */ addiu $v1, $sp, 0x24 +/* 039C90 7F005160 AD6007F8 */ sw $zero, 0x7f8($t3) +/* 039C94 7F005164 8E0C0000 */ lw $t4, ($s0) +/* 039C98 7F005168 246B03A8 */ addiu $t3, $v1, 0x3a8 +/* 039C9C 7F00516C 00001025 */ move $v0, $zero +/* 039CA0 7F005170 AD8007FC */ sw $zero, 0x7fc($t4) +/* 039CA4 7F005174 8E0D0000 */ lw $t5, ($s0) +/* 039CA8 7F005178 00606025 */ move $t4, $v1 +/* 039CAC 7F00517C ADA00800 */ sw $zero, 0x800($t5) +/* 039CB0 7F005180 8E190000 */ lw $t9, ($s0) +/* 039CB4 7F005184 AF200804 */ sw $zero, 0x804($t9) +/* 039CB8 7F005188 8E180000 */ lw $t8, ($s0) +/* 039CBC 7F00518C AF052A44 */ sw $a1, 0x2a44($t8) +/* 039CC0 7F005190 8E080000 */ lw $t0, ($s0) +/* 039CC4 7F005194 247803A8 */ addiu $t8, $v1, 0x3a8 +/* 039CC8 7F005198 AD052A48 */ sw $a1, 0x2a48($t0) +/* 039CCC 7F00519C 8E0F0000 */ lw $t7, ($s0) +/* 039CD0 7F0051A0 00604025 */ move $t0, $v1 +/* 039CD4 7F0051A4 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 039CD8 7F0051A8 ADE02A50 */ sw $zero, 0x2a50($t7) +/* 039CDC 7F0051AC 8E0E0000 */ lw $t6, ($s0) +/* 039CE0 7F0051B0 2463A0B4 */ addiu $v1, %lo(pPlayersPerm) # addiu $v1, $v1, -0x5f4c +/* 039CE4 7F0051B4 ADC02A54 */ sw $zero, 0x2a54($t6) +/* 039CE8 7F0051B8 8E090000 */ lw $t1, ($s0) +.L7F0051BC: +/* 039CEC 7F0051BC 8D810000 */ lw $at, ($t4) +/* 039CF0 7F0051C0 258C000C */ addiu $t4, $t4, 0xc +/* 039CF4 7F0051C4 2529000C */ addiu $t1, $t1, 0xc +/* 039CF8 7F0051C8 AD210864 */ sw $at, 0x864($t1) +/* 039CFC 7F0051CC 8D81FFF8 */ lw $at, -8($t4) +/* 039D00 7F0051D0 AD210868 */ sw $at, 0x868($t1) +/* 039D04 7F0051D4 8D81FFFC */ lw $at, -4($t4) +/* 039D08 7F0051D8 158BFFF8 */ bne $t4, $t3, .L7F0051BC +/* 039D0C 7F0051DC AD21086C */ sw $at, 0x86c($t1) +/* 039D10 7F0051E0 8E0D0000 */ lw $t5, ($s0) +.L7F0051E4: +/* 039D14 7F0051E4 8D010000 */ lw $at, ($t0) +/* 039D18 7F0051E8 2508000C */ addiu $t0, $t0, 0xc +/* 039D1C 7F0051EC 25AD000C */ addiu $t5, $t5, 0xc +/* 039D20 7F0051F0 ADA10C0C */ sw $at, 0xc0c($t5) +/* 039D24 7F0051F4 8D01FFF8 */ lw $at, -8($t0) +/* 039D28 7F0051F8 ADA10C10 */ sw $at, 0xc10($t5) +/* 039D2C 7F0051FC 8D01FFFC */ lw $at, -4($t0) +/* 039D30 7F005200 1518FFF8 */ bne $t0, $t8, .L7F0051E4 +/* 039D34 7F005204 ADA10C14 */ sw $at, 0xc14($t5) +.L7F005208: +/* 039D38 7F005208 8E0F0000 */ lw $t7, ($s0) +/* 039D3C 7F00520C 01E27021 */ addu $t6, $t7, $v0 +/* 039D40 7F005210 24420004 */ addiu $v0, $v0, 4 +/* 039D44 7F005214 28410078 */ slti $at, $v0, 0x78 +/* 039D48 7F005218 1420FFFB */ bnez $at, .L7F005208 +/* 039D4C 7F00521C ADC01130 */ sw $zero, 0x1130($t6) +/* 039D50 7F005220 8C6A0000 */ lw $t2, ($v1) +/* 039D54 7F005224 24040003 */ li $a0, 3 +/* 039D58 7F005228 00041080 */ sll $v0, $a0, 2 +/* 039D5C 7F00522C AD400000 */ sw $zero, ($t2) +/* 039D60 7F005230 8C6B0000 */ lw $t3, ($v1) +/* 039D64 7F005234 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 039D68 7F005238 44811000 */ mtc1 $at, $f2 +/* 039D6C 7F00523C AD600004 */ sw $zero, 4($t3) +/* 039D70 7F005240 8C6C0000 */ lw $t4, ($v1) +/* 039D74 7F005244 3C018005 */ lui $at, %hi(D_8004F0E0) +/* 039D78 7F005248 44800000 */ mtc1 $zero, $f0 +/* 039D7C 7F00524C AD800008 */ sw $zero, 8($t4) +/* 039D80 7F005250 8C690000 */ lw $t1, ($v1) +/* 039D84 7F005254 00002025 */ move $a0, $zero +/* 039D88 7F005258 0122C821 */ addu $t9, $t1, $v0 +/* 039D8C 7F00525C AF200000 */ sw $zero, ($t9) +/* 039D90 7F005260 8C780000 */ lw $t8, ($v1) +/* 039D94 7F005264 03024021 */ addu $t0, $t8, $v0 +/* 039D98 7F005268 AD000004 */ sw $zero, 4($t0) +/* 039D9C 7F00526C 8C6D0000 */ lw $t5, ($v1) +/* 039DA0 7F005270 01A27821 */ addu $t7, $t5, $v0 +/* 039DA4 7F005274 ADE00008 */ sw $zero, 8($t7) +/* 039DA8 7F005278 8C6E0000 */ lw $t6, ($v1) +/* 039DAC 7F00527C 01C25021 */ addu $t2, $t6, $v0 +/* 039DB0 7F005280 AD40000C */ sw $zero, 0xc($t2) +/* 039DB4 7F005284 8C6B0000 */ lw $t3, ($v1) +/* 039DB8 7F005288 C42CF0E0 */ lwc1 $f12, %lo(D_8004F0E0)($at) +/* 039DBC 7F00528C 240200FF */ li $v0, 255 +/* 039DC0 7F005290 AD60006C */ sw $zero, 0x6c($t3) +/* 039DC4 7F005294 8C6C0000 */ lw $t4, ($v1) +/* 039DC8 7F005298 3C018005 */ lui $at, %hi(fl_neg_pi) +/* 039DCC 7F00529C AD80001C */ sw $zero, 0x1c($t4) +/* 039DD0 7F0052A0 8C690000 */ lw $t1, ($v1) +/* 039DD4 7F0052A4 AD200020 */ sw $zero, 0x20($t1) +/* 039DD8 7F0052A8 8E190000 */ lw $t9, ($s0) +/* 039DDC 7F0052AC AF2029D8 */ sw $zero, 0x29d8($t9) +/* 039DE0 7F0052B0 8E180000 */ lw $t8, ($s0) +/* 039DE4 7F0052B4 AF0029DC */ sw $zero, 0x29dc($t8) +/* 039DE8 7F0052B8 8E080000 */ lw $t0, ($s0) +/* 039DEC 7F0052BC E5020FC0 */ swc1 $f2, 0xfc0($t0) +/* 039DF0 7F0052C0 8E0D0000 */ lw $t5, ($s0) +/* 039DF4 7F0052C4 E5A20FC4 */ swc1 $f2, 0xfc4($t5) +/* 039DF8 7F0052C8 8E0F0000 */ lw $t7, ($s0) +/* 039DFC 7F0052CC 240D0001 */ li $t5, 1 +/* 039E00 7F0052D0 ADE00FC8 */ sw $zero, 0xfc8($t7) +/* 039E04 7F0052D4 8E0E0000 */ lw $t6, ($s0) +/* 039E08 7F0052D8 ADC00FCC */ sw $zero, 0xfcc($t6) +/* 039E0C 7F0052DC 8E0A0000 */ lw $t2, ($s0) +/* 039E10 7F0052E0 AD400FD0 */ sw $zero, 0xfd0($t2) +/* 039E14 7F0052E4 8E0B0000 */ lw $t3, ($s0) +/* 039E18 7F0052E8 AD600FD4 */ sw $zero, 0xfd4($t3) +/* 039E1C 7F0052EC 8E0C0000 */ lw $t4, ($s0) +/* 039E20 7F0052F0 AD800FD8 */ sw $zero, 0xfd8($t4) +/* 039E24 7F0052F4 8E090000 */ lw $t1, ($s0) +/* 039E28 7F0052F8 A1220FDC */ sb $v0, 0xfdc($t1) +/* 039E2C 7F0052FC 8E190000 */ lw $t9, ($s0) +/* 039E30 7F005300 A3220FDD */ sb $v0, 0xfdd($t9) +/* 039E34 7F005304 8E180000 */ lw $t8, ($s0) +/* 039E38 7F005308 A3020FDE */ sb $v0, 0xfde($t8) +/* 039E3C 7F00530C 8E080000 */ lw $t0, ($s0) +/* 039E40 7F005310 A1000FDF */ sb $zero, 0xfdf($t0) +/* 039E44 7F005314 8E0F0000 */ lw $t7, ($s0) +/* 039E48 7F005318 ADED0FE0 */ sw $t5, 0xfe0($t7) +/* 039E4C 7F00531C 8E0E0000 */ lw $t6, ($s0) +/* 039E50 7F005320 ADC00FE4 */ sw $zero, 0xfe4($t6) +/* 039E54 7F005324 8E0A0000 */ lw $t2, ($s0) +/* 039E58 7F005328 E5400FE8 */ swc1 $f0, 0xfe8($t2) +/* 039E5C 7F00532C 8E0B0000 */ lw $t3, ($s0) +/* 039E60 7F005330 E5600FEC */ swc1 $f0, 0xfec($t3) +/* 039E64 7F005334 8E0C0000 */ lw $t4, ($s0) +/* 039E68 7F005338 E5800FF0 */ swc1 $f0, 0xff0($t4) +/* 039E6C 7F00533C 8E090000 */ lw $t1, ($s0) +/* 039E70 7F005340 E5200FF4 */ swc1 $f0, 0xff4($t1) +/* 039E74 7F005344 8E190000 */ lw $t9, ($s0) +/* 039E78 7F005348 E72C0FF8 */ swc1 $f12, 0xff8($t9) +/* 039E7C 7F00534C 8E180000 */ lw $t8, ($s0) +/* 039E80 7F005350 E7000FFC */ swc1 $f0, 0xffc($t8) +/* 039E84 7F005354 8E080000 */ lw $t0, ($s0) +/* 039E88 7F005358 E5001000 */ swc1 $f0, 0x1000($t0) +/* 039E8C 7F00535C 8E0D0000 */ lw $t5, ($s0) +/* 039E90 7F005360 E5A01004 */ swc1 $f0, 0x1004($t5) +/* 039E94 7F005364 8E0F0000 */ lw $t7, ($s0) +/* 039E98 7F005368 E5E01008 */ swc1 $f0, 0x1008($t7) +/* 039E9C 7F00536C 8E0E0000 */ lw $t6, ($s0) +/* 039EA0 7F005370 E5CC100C */ swc1 $f12, 0x100c($t6) +/* 039EA4 7F005374 8E0A0000 */ lw $t2, ($s0) +/* 039EA8 7F005378 E5401010 */ swc1 $f0, 0x1010($t2) +/* 039EAC 7F00537C 8E0B0000 */ lw $t3, ($s0) +/* 039EB0 7F005380 C424F0E4 */ lwc1 $f4, %lo(fl_neg_pi)($at) +/* 039EB4 7F005384 E5641014 */ swc1 $f4, 0x1014($t3) +/* 039EB8 7F005388 8E0C0000 */ lw $t4, ($s0) +/* 039EBC 7F00538C E5801018 */ swc1 $f0, 0x1018($t4) +/* 039EC0 7F005390 8E090000 */ lw $t1, ($s0) +/* 039EC4 7F005394 AD201060 */ sw $zero, 0x1060($t1) +/* 039EC8 7F005398 8E190000 */ lw $t9, ($s0) +/* 039ECC 7F00539C AF251270 */ sw $a1, 0x1270($t9) +/* 039ED0 7F0053A0 8E180000 */ lw $t8, ($s0) +/* 039ED4 7F0053A4 E700106C */ swc1 $f0, 0x106c($t8) +/* 039ED8 7F0053A8 8E080000 */ lw $t0, ($s0) +/* 039EDC 7F0053AC E5001070 */ swc1 $f0, 0x1070($t0) +/* 039EE0 7F0053B0 8E0D0000 */ lw $t5, ($s0) +/* 039EE4 7F0053B4 E5A01074 */ swc1 $f0, 0x1074($t5) +/* 039EE8 7F0053B8 8E0F0000 */ lw $t7, ($s0) +/* 039EEC 7F0053BC ADE01078 */ sw $zero, 0x1078($t7) +/* 039EF0 7F0053C0 8E0E0000 */ lw $t6, ($s0) +/* 039EF4 7F0053C4 E5C0107C */ swc1 $f0, 0x107c($t6) +/* 039EF8 7F0053C8 8E0A0000 */ lw $t2, ($s0) +/* 039EFC 7F0053CC 0FC17260 */ jal unknown_takes_playerhand +/* 039F00 7F0053D0 E5401080 */ swc1 $f0, 0x1080($t2) +/* 039F04 7F0053D4 0FC17260 */ jal unknown_takes_playerhand +/* 039F08 7F0053D8 00002025 */ move $a0, $zero +/* 039F0C 7F0053DC 0FC17260 */ jal unknown_takes_playerhand +/* 039F10 7F0053E0 00002025 */ move $a0, $zero +/* 039F14 7F0053E4 0FC17260 */ jal unknown_takes_playerhand +/* 039F18 7F0053E8 24040001 */ li $a0, 1 +/* 039F1C 7F0053EC 0FC17260 */ jal unknown_takes_playerhand +/* 039F20 7F0053F0 24040001 */ li $a0, 1 +/* 039F24 7F0053F4 0FC17260 */ jal unknown_takes_playerhand +/* 039F28 7F0053F8 24040001 */ li $a0, 1 +/* 039F2C 7F0053FC 8E0B0000 */ lw $t3, ($s0) +/* 039F30 7F005400 240C0002 */ li $t4, 2 +/* 039F34 7F005404 3C018003 */ lui $at, %hi(GsniperrifleZ_stats+52) +/* 039F38 7F005408 AD601064 */ sw $zero, 0x1064($t3) +/* 039F3C 7F00540C 8E090000 */ lw $t1, ($s0) +/* 039F40 7F005410 AD2C1128 */ sw $t4, 0x1128($t1) +/* 039F44 7F005414 8E190000 */ lw $t9, ($s0) +/* 039F48 7F005418 C4262C38 */ lwc1 $f6, %lo(GsniperrifleZ_stats+52)($at) +/* 039F4C 7F00541C 3C018003 */ lui $at, %hi(GcameraZ_stats+52) +/* 039F50 7F005420 E7261084 */ swc1 $f6, 0x1084($t9) +/* 039F54 7F005424 8E180000 */ lw $t8, ($s0) +/* 039F58 7F005428 C42836B8 */ lwc1 $f8, %lo(GcameraZ_stats+52)($at) +/* 039F5C 7F00542C E7081088 */ swc1 $f8, 0x1088($t8) +/* 039F60 7F005430 8FBF001C */ lw $ra, 0x1c($sp) +/* 039F64 7F005434 8FB00018 */ lw $s0, 0x18($sp) +/* 039F68 7F005438 27BD03D0 */ addiu $sp, $sp, 0x3d0 +/* 039F6C 7F00543C 03E00008 */ jr $ra +/* 039F70 7F005440 00000000 */ nop +) +#endif + diff --git a/src/game/initBondDATA.h b/src/game/initBondDATA.h new file mode 100644 index 0000000..5602d67 --- /dev/null +++ b/src/game/initBondDATA.h @@ -0,0 +1,243 @@ +#ifndef _INITBONDDATA_H_ +#define _INITBONDDATA_H_ +#include "ultra64.h" + +struct BONDdata_item_control_blocks { + int BONDdata_item_control_blocks_initdata; + int field_4; + int field_8; + int field_C; + int field_10; + int field_14; + int field_18; + int field_1C; + int field_20; + int field_24; + int field_28; + int field_2C; + int field_30; + int field_34; + int field_38; + int field_3C; + int field_40; + int field_44; + int field_48; + int field_4C; + int field_50; + int field_54; + int field_58; + int field_5C; + int field_60; + int field_64; + int field_68; + int field_6C; + int field_70; + int field_74; + int field_78; + float field_7C; + int field_80; + int field_84; + int field_88; + int field_8C; + float field_90; + int field_94; + int field_98; + int field_9C; + int field_A0; + float field_A4; + int field_A8; + int field_AC; + int field_B0; + int field_B4; + float field_B8; + int field_BC; + int field_C0; + int field_C4; + int field_C8; + int field_CC; + int field_D0; + float field_D4; + int field_D8; + float field_DC; + int field_E0; + int field_E4; + int field_E8; + int field_EC; + int field_F0; + int field_F4; + float field_F8; + int field_FC; + float field_100; + int field_104; + int field_108; + int field_10C; + int field_110; + int field_114; + int field_118; + int field_11C; + int field_120; + int field_124; + int field_128; + int field_12C; + int field_130; + int field_134; + int field_138; + int field_13C; + float field_140; + int field_144; + int field_148; + float field_14C; + int field_150; + int field_154; + float field_158; + int field_15C; + int field_160; + float field_164; + int field_168; + float field_16C; + int field_170; + int field_174; + float field_178; + int field_17C; + int field_180; + float field_184; + int field_188; + int field_18C; + float field_190; + int field_194; + int field_198; + int field_19C; + float field_1A0; + float field_1A4; + int field_1A8; + int field_1AC; + int field_1B0; + int field_1B4; + int field_1B8; + int field_1BC; + int field_1C0; + int field_1C4; + int field_1C8; + int field_1CC; + float field_1D0; + int field_1D4; + int field_1D8; + int field_1DC; + int field_1E0; + int field_1E4; + int field_1E8; + int field_1EC; + int field_1F0; + int field_1F4; + int field_1F8; + int field_1FC; + int field_200; + int field_204; + int field_208; + int field_20C; + int field_210; + int field_214; + int field_218; + int field_21C; + int field_220; + int field_224; + int field_228; + int field_22C; + int field_230; + int field_234; + int field_238; + int field_23C; + int field_240; + int field_244; + int field_248; + int field_24C; + int field_250; + int field_254; + int field_258; + int field_25C; + int field_260; + int field_264; + int field_268; + int field_26C; + int field_270; + int field_274; + int field_278; + int field_27C; + int field_280; + int field_284; + int field_288; + int field_28C; + int field_290; + int field_294; + int field_298; + int field_29C; + int field_2A0; + int field_2A4; + int field_2A8; + int field_2AC; + int field_2B0; + int field_2B4; + int field_2B8; + int field_2BC; + int field_2C0; + int field_2C4; + int field_2C8; + int field_2CC; + int field_2D0; + int field_2D4; + int field_2D8; + int field_2DC; + int field_2E0; + int field_2E4; + int field_2E8; + int field_2EC; + int field_2F0; + int field_2F4; + int field_2F8; + int field_2FC; + int field_300; + int field_304; + int field_308; + int field_30C; + int field_310; + int field_314; + int field_318; + int field_31C; + int field_320; + int field_324; + int field_328; + int field_32C; + int field_330; + int field_334; + int field_338; + int field_33C; + int field_340; + int field_344; + int field_348; + int field_34C; + int field_350; + int field_354; + int field_358; + int field_35C; + int field_360; + int field_364; + int field_368; + int field_36C; + int field_370; + int field_374; + int field_378; + int field_37C; + int field_380; + int field_384; + int field_388; + int field_38C; + int field_390; + int field_394; + int field_398; + int field_39C; + int field_3A0; + int field_3A4; + int anonymous_0; +}; + +#endif diff --git a/src/game/initBondDATAdefaults.c b/src/game/initBondDATAdefaults.c new file mode 100644 index 0000000..4b9b20e --- /dev/null +++ b/src/game/initBondDATAdefaults.c @@ -0,0 +1,663 @@ +#include "ultra64.h" + + +//data +s32 D_8002A790[] = { 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0062C0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0062C0 +/* 03ADF0 7F0062C0 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 03ADF4 7F0062C4 AFB30028 */ sw $s3, 0x28($sp) +/* 03ADF8 7F0062C8 AFB20024 */ sw $s2, 0x24($sp) +/* 03ADFC 7F0062CC AFB10020 */ sw $s1, 0x20($sp) +/* 03AE00 7F0062D0 AFB0001C */ sw $s0, 0x1c($sp) +/* 03AE04 7F0062D4 AFBF0034 */ sw $ra, 0x34($sp) +/* 03AE08 7F0062D8 AFB50030 */ sw $s5, 0x30($sp) +/* 03AE0C 7F0062DC AFB4002C */ sw $s4, 0x2c($sp) +/* 03AE10 7F0062E0 00A6082A */ slt $at, $a1, $a2 +/* 03AE14 7F0062E4 00E08025 */ move $s0, $a3 +/* 03AE18 7F0062E8 00A08825 */ move $s1, $a1 +/* 03AE1C 7F0062EC 00C09025 */ move $s2, $a2 +/* 03AE20 7F0062F0 00809825 */ move $s3, $a0 +/* 03AE24 7F0062F4 ACE00000 */ sw $zero, ($a3) +/* 03AE28 7F0062F8 ACE00004 */ sw $zero, 4($a3) +/* 03AE2C 7F0062FC 1020001A */ beqz $at, .L7F006368 +/* 03AE30 7F006300 ACE00008 */ sw $zero, 8($a3) +/* 03AE34 7F006304 3C148004 */ lui $s4, %hi(model_guard_character) +/* 03AE38 7F006308 2694D400 */ addiu $s4, %lo(model_guard_character) # addiu $s4, $s4, -0x2c00 +/* 03AE3C 7F00630C 27B50040 */ addiu $s5, $sp, 0x40 +.L7F006310: +/* 03AE40 7F006310 00002025 */ move $a0, $zero +/* 03AE44 7F006314 00002825 */ move $a1, $zero +/* 03AE48 7F006318 02803025 */ move $a2, $s4 +/* 03AE4C 7F00631C 02603825 */ move $a3, $s3 +/* 03AE50 7F006320 AFB10010 */ sw $s1, 0x10($sp) +/* 03AE54 7F006324 0FC1B4B9 */ jal sub_GAME_7F06D2E4 +/* 03AE58 7F006328 AFB50014 */ sw $s5, 0x14($sp) +/* 03AE5C 7F00632C 8E0E0000 */ lw $t6, ($s0) +/* 03AE60 7F006330 87AF0040 */ lh $t7, 0x40($sp) +/* 03AE64 7F006334 8E190004 */ lw $t9, 4($s0) +/* 03AE68 7F006338 8E0A0008 */ lw $t2, 8($s0) +/* 03AE6C 7F00633C 01CFC021 */ addu $t8, $t6, $t7 +/* 03AE70 7F006340 AE180000 */ sw $t8, ($s0) +/* 03AE74 7F006344 87A80042 */ lh $t0, 0x42($sp) +/* 03AE78 7F006348 26310001 */ addiu $s1, $s1, 1 +/* 03AE7C 7F00634C 0232082A */ slt $at, $s1, $s2 +/* 03AE80 7F006350 03284821 */ addu $t1, $t9, $t0 +/* 03AE84 7F006354 AE090004 */ sw $t1, 4($s0) +/* 03AE88 7F006358 87AB0044 */ lh $t3, 0x44($sp) +/* 03AE8C 7F00635C 014B6021 */ addu $t4, $t2, $t3 +/* 03AE90 7F006360 1420FFEB */ bnez $at, .L7F006310 +/* 03AE94 7F006364 AE0C0008 */ sw $t4, 8($s0) +.L7F006368: +/* 03AE98 7F006368 8FBF0034 */ lw $ra, 0x34($sp) +/* 03AE9C 7F00636C 8FB0001C */ lw $s0, 0x1c($sp) +/* 03AEA0 7F006370 8FB10020 */ lw $s1, 0x20($sp) +/* 03AEA4 7F006374 8FB20024 */ lw $s2, 0x24($sp) +/* 03AEA8 7F006378 8FB30028 */ lw $s3, 0x28($sp) +/* 03AEAC 7F00637C 8FB4002C */ lw $s4, 0x2c($sp) +/* 03AEB0 7F006380 8FB50030 */ lw $s5, 0x30($sp) +/* 03AEB4 7F006384 03E00008 */ jr $ra +/* 03AEB8 7F006388 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + +#ifdef NONMATCHING +void sets_a_bunch_of_BONDdata_values_to_default(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_8004F1F0 +.word 0x3dccccce +glabel D_8004F1F4 +.word 0x4164924b +glabel D_8004F1F8 +.word 0x3f6e147b +.text +glabel sets_a_bunch_of_BONDdata_values_to_default +/* 03AEBC 7F00638C 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 03AEC0 7F006390 AFB20038 */ sw $s2, 0x38($sp) +/* 03AEC4 7F006394 3C128004 */ lui $s2, %hi(player_gait_object) +/* 03AEC8 7F006398 2652C650 */ addiu $s2, %lo(player_gait_object) # addiu $s2, $s2, -0x39b0 +/* 03AECC 7F00639C 864E0014 */ lh $t6, 0x14($s2) +/* 03AED0 7F0063A0 AFBF0044 */ sw $ra, 0x44($sp) +/* 03AED4 7F0063A4 AFB40040 */ sw $s4, 0x40($sp) +/* 03AED8 7F0063A8 29C1001F */ slti $at, $t6, 0x1f +/* 03AEDC 7F0063AC AFB3003C */ sw $s3, 0x3c($sp) +/* 03AEE0 7F0063B0 AFB10034 */ sw $s1, 0x34($sp) +/* 03AEE4 7F0063B4 AFB00030 */ sw $s0, 0x30($sp) +/* 03AEE8 7F0063B8 F7B60028 */ sdc1 $f22, 0x28($sp) +/* 03AEEC 7F0063BC 14200003 */ bnez $at, .L7F0063CC +/* 03AEF0 7F0063C0 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 03AEF4 7F0063C4 0FC1B11B */ jal return_null +/* 03AEF8 7F0063C8 00000000 */ nop +.L7F0063CC: +/* 03AEFC 7F0063CC 3C118008 */ lui $s1, %hi(pPlayer) +/* 03AF00 7F0063D0 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 03AF04 7F0063D4 8E300000 */ lw $s0, ($s1) +/* 03AF08 7F0063D8 02402825 */ move $a1, $s2 +/* 03AF0C 7F0063DC 26040598 */ addiu $a0, $s0, 0x598 +/* 03AF10 7F0063E0 0FC1D7EB */ jal sub_GAME_7F075FAC +/* 03AF14 7F0063E4 26060654 */ addiu $a2, $s0, 0x654 +/* 03AF18 7F0063E8 3C018005 */ lui $at, %hi(D_8004F1F0) +/* 03AF1C 7F0063EC C436F1F0 */ lwc1 $f22, %lo(D_8004F1F0)($at) +/* 03AF20 7F0063F0 8E240000 */ lw $a0, ($s1) +/* 03AF24 7F0063F4 4405B000 */ mfc1 $a1, $f22 +/* 03AF28 7F0063F8 0FC1B39E */ jal set_obj_instance_controller_scale +/* 03AF2C 7F0063FC 24840598 */ addiu $a0, $a0, 0x598 +/* 03AF30 7F006400 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03AF34 7F006404 44810000 */ mtc1 $at, $f0 +/* 03AF38 7F006408 8E2F0000 */ lw $t7, ($s1) +/* 03AF3C 7F00640C 3C018005 */ lui $at, %hi(D_8004F1F4) +/* 03AF40 7F006410 C422F1F4 */ lwc1 $f2, %lo(D_8004F1F4)($at) +/* 03AF44 7F006414 ADE004E8 */ sw $zero, 0x4e8($t7) +/* 03AF48 7F006418 3C018005 */ lui $at, %hi(D_8004F1F8) +/* 03AF4C 7F00641C C424F1F8 */ lwc1 $f4, %lo(D_8004F1F8)($at) +/* 03AF50 7F006420 8E380000 */ lw $t8, ($s1) +/* 03AF54 7F006424 4480A000 */ mtc1 $zero, $f20 +/* 03AF58 7F006428 24020001 */ li $v0, 1 +/* 03AF5C 7F00642C E70404EC */ swc1 $f4, 0x4ec($t8) +/* 03AF60 7F006430 8E390000 */ lw $t9, ($s1) +/* 03AF64 7F006434 3C108003 */ lui $s0, %hi(D_80036AD0) +/* 03AF68 7F006438 3C148007 */ lui $s4, %hi(ptr_animation_table) +/* 03AF6C 7F00643C AF2004F0 */ sw $zero, 0x4f0($t9) +/* 03AF70 7F006440 8E280000 */ lw $t0, ($s1) +/* 03AF74 7F006444 3C138003 */ lui $s3, %hi(D_80036B00) +/* 03AF78 7F006448 26736B00 */ addiu $s3, %lo(D_80036B00) # addiu $s3, $s3, 0x6b00 +/* 03AF7C 7F00644C E50004F4 */ swc1 $f0, 0x4f4($t0) +/* 03AF80 7F006450 8E290000 */ lw $t1, ($s1) +/* 03AF84 7F006454 26949538 */ addiu $s4, %lo(ptr_animation_table) # addiu $s4, $s4, -0x6ac8 +/* 03AF88 7F006458 26106AD0 */ addiu $s0, %lo(D_80036AD0) # addiu $s0, $s0, 0x6ad0 +/* 03AF8C 7F00645C E52004F8 */ swc1 $f0, 0x4f8($t1) +/* 03AF90 7F006460 8E2A0000 */ lw $t2, ($s1) +/* 03AF94 7F006464 27B200D0 */ addiu $s2, $sp, 0xd0 +/* 03AF98 7F006468 E55404FC */ swc1 $f20, 0x4fc($t2) +/* 03AF9C 7F00646C 8E2B0000 */ lw $t3, ($s1) +/* 03AFA0 7F006470 E5740500 */ swc1 $f20, 0x500($t3) +/* 03AFA4 7F006474 8E2C0000 */ lw $t4, ($s1) +/* 03AFA8 7F006478 E5940504 */ swc1 $f20, 0x504($t4) +/* 03AFAC 7F00647C 8E2D0000 */ lw $t5, ($s1) +/* 03AFB0 7F006480 E5B40508 */ swc1 $f20, 0x508($t5) +/* 03AFB4 7F006484 8E2E0000 */ lw $t6, ($s1) +/* 03AFB8 7F006488 E5D4050C */ swc1 $f20, 0x50c($t6) +/* 03AFBC 7F00648C 8E2F0000 */ lw $t7, ($s1) +/* 03AFC0 7F006490 E5F40510 */ swc1 $f20, 0x510($t7) +/* 03AFC4 7F006494 8E380000 */ lw $t8, ($s1) +/* 03AFC8 7F006498 E7140514 */ swc1 $f20, 0x514($t8) +/* 03AFCC 7F00649C 8E390000 */ lw $t9, ($s1) +/* 03AFD0 7F0064A0 E7340518 */ swc1 $f20, 0x518($t9) +/* 03AFD4 7F0064A4 8E280000 */ lw $t0, ($s1) +/* 03AFD8 7F0064A8 E514051C */ swc1 $f20, 0x51c($t0) +/* 03AFDC 7F0064AC 8E290000 */ lw $t1, ($s1) +/* 03AFE0 7F0064B0 E5340520 */ swc1 $f20, 0x520($t1) +/* 03AFE4 7F0064B4 8E2A0000 */ lw $t2, ($s1) +/* 03AFE8 7F0064B8 E5540524 */ swc1 $f20, 0x524($t2) +/* 03AFEC 7F0064BC 8E2B0000 */ lw $t3, ($s1) +/* 03AFF0 7F0064C0 E5740528 */ swc1 $f20, 0x528($t3) +/* 03AFF4 7F0064C4 8E2C0000 */ lw $t4, ($s1) +/* 03AFF8 7F0064C8 E594052C */ swc1 $f20, 0x52c($t4) +/* 03AFFC 7F0064CC 8E2D0000 */ lw $t5, ($s1) +/* 03B000 7F0064D0 E5B40530 */ swc1 $f20, 0x530($t5) +/* 03B004 7F0064D4 8E2E0000 */ lw $t6, ($s1) +/* 03B008 7F0064D8 E5C20534 */ swc1 $f2, 0x534($t6) +/* 03B00C 7F0064DC 8E2F0000 */ lw $t7, ($s1) +/* 03B010 7F0064E0 E5F40538 */ swc1 $f20, 0x538($t7) +/* 03B014 7F0064E4 8E380000 */ lw $t8, ($s1) +/* 03B018 7F0064E8 E702053C */ swc1 $f2, 0x53c($t8) +/* 03B01C 7F0064EC 8E390000 */ lw $t9, ($s1) +/* 03B020 7F0064F0 E7340540 */ swc1 $f20, 0x540($t9) +/* 03B024 7F0064F4 8E280000 */ lw $t0, ($s1) +/* 03B028 7F0064F8 AD0204DC */ sw $v0, 0x4dc($t0) +/* 03B02C 7F0064FC 8E290000 */ lw $t1, ($s1) +/* 03B030 7F006500 AD2204E0 */ sw $v0, 0x4e0($t1) +/* 03B034 7F006504 8E2A0000 */ lw $t2, ($s1) +/* 03B038 7F006508 AD4204E4 */ sw $v0, 0x4e4($t2) +/* 03B03C 7F00650C 8E2B0000 */ lw $t3, ($s1) +/* 03B040 7F006510 E5740544 */ swc1 $f20, 0x544($t3) +/* 03B044 7F006514 8E2C0000 */ lw $t4, ($s1) +/* 03B048 7F006518 E5940548 */ swc1 $f20, 0x548($t4) +/* 03B04C 7F00651C 8E2D0000 */ lw $t5, ($s1) +/* 03B050 7F006520 E5B4054C */ swc1 $f20, 0x54c($t5) +/* 03B054 7F006524 8E2E0000 */ lw $t6, ($s1) +/* 03B058 7F006528 E5D40550 */ swc1 $f20, 0x550($t6) +/* 03B05C 7F00652C 8E2F0000 */ lw $t7, ($s1) +/* 03B060 7F006530 E5F40554 */ swc1 $f20, 0x554($t7) +/* 03B064 7F006534 8E380000 */ lw $t8, ($s1) +/* 03B068 7F006538 E7140558 */ swc1 $f20, 0x558($t8) +/* 03B06C 7F00653C 8E390000 */ lw $t9, ($s1) +/* 03B070 7F006540 E734055C */ swc1 $f20, 0x55c($t9) +/* 03B074 7F006544 8E280000 */ lw $t0, ($s1) +/* 03B078 7F006548 E5140560 */ swc1 $f20, 0x560($t0) +/* 03B07C 7F00654C 8E290000 */ lw $t1, ($s1) +/* 03B080 7F006550 E5340564 */ swc1 $f20, 0x564($t1) +/* 03B084 7F006554 8E2A0000 */ lw $t2, ($s1) +/* 03B088 7F006558 E5540568 */ swc1 $f20, 0x568($t2) +/* 03B08C 7F00655C 8E2B0000 */ lw $t3, ($s1) +/* 03B090 7F006560 E560056C */ swc1 $f0, 0x56c($t3) +/* 03B094 7F006564 8E2C0000 */ lw $t4, ($s1) +/* 03B098 7F006568 E5940570 */ swc1 $f20, 0x570($t4) +/* 03B09C 7F00656C 8E2D0000 */ lw $t5, ($s1) +/* 03B0A0 7F006570 E5B40574 */ swc1 $f20, 0x574($t5) +/* 03B0A4 7F006574 8E2E0000 */ lw $t6, ($s1) +/* 03B0A8 7F006578 E5C00578 */ swc1 $f0, 0x578($t6) +/* 03B0AC 7F00657C 8E2F0000 */ lw $t7, ($s1) +/* 03B0B0 7F006580 E5F4057C */ swc1 $f20, 0x57c($t7) +/* 03B0B4 7F006584 8E380000 */ lw $t8, ($s1) +/* 03B0B8 7F006588 E7000580 */ swc1 $f0, 0x580($t8) +/* 03B0BC 7F00658C 8E390000 */ lw $t9, ($s1) +/* 03B0C0 7F006590 E7340584 */ swc1 $f20, 0x584($t9) +/* 03B0C4 7F006594 8E280000 */ lw $t0, ($s1) +/* 03B0C8 7F006598 E5140588 */ swc1 $f20, 0x588($t0) +/* 03B0CC 7F00659C 8E290000 */ lw $t1, ($s1) +/* 03B0D0 7F0065A0 E520058C */ swc1 $f0, 0x58c($t1) +/* 03B0D4 7F0065A4 8E2A0000 */ lw $t2, ($s1) +/* 03B0D8 7F0065A8 E5540590 */ swc1 $f20, 0x590($t2) +/* 03B0DC 7F0065AC 8E2B0000 */ lw $t3, ($s1) +/* 03B0E0 7F0065B0 AD600594 */ sw $zero, 0x594($t3) +.L7F0065B4: +/* 03B0E4 7F0065B4 C6060004 */ lwc1 $f6, 4($s0) +/* 03B0E8 7F0065B8 C60A0008 */ lwc1 $f10, 8($s0) +/* 03B0EC 7F0065BC 8E0C0000 */ lw $t4, ($s0) +/* 03B0F0 7F0065C0 4600320D */ trunc.w.s $f8, $f6 +/* 03B0F4 7F0065C4 8E8D0000 */ lw $t5, ($s4) +/* 03B0F8 7F0065C8 02403825 */ move $a3, $s2 +/* 03B0FC 7F0065CC 4600540D */ trunc.w.s $f16, $f10 +/* 03B100 7F0065D0 44054000 */ mfc1 $a1, $f8 +/* 03B104 7F0065D4 018D2021 */ addu $a0, $t4, $t5 +/* 03B108 7F0065D8 44068000 */ mfc1 $a2, $f16 +/* 03B10C 7F0065DC 0FC018B0 */ jal sub_GAME_7F0062C0 +/* 03B110 7F0065E0 00000000 */ nop +/* 03B114 7F0065E4 8FB800D8 */ lw $t8, 0xd8($sp) +/* 03B118 7F0065E8 C6120008 */ lwc1 $f18, 8($s0) +/* 03B11C 7F0065EC C6040004 */ lwc1 $f4, 4($s0) +/* 03B120 7F0065F0 44984000 */ mtc1 $t8, $f8 +/* 03B124 7F0065F4 26100018 */ addiu $s0, $s0, 0x18 +/* 03B128 7F0065F8 46049181 */ sub.s $f6, $f18, $f4 +/* 03B12C 7F0065FC 468042A0 */ cvt.s.w $f10, $f8 +/* 03B130 7F006600 46165402 */ mul.s $f16, $f10, $f22 +/* 03B134 7F006604 46068483 */ div.s $f18, $f16, $f6 +/* 03B138 7F006608 1613FFEA */ bne $s0, $s3, .L7F0065B4 +/* 03B13C 7F00660C E612FFF4 */ swc1 $f18, -0xc($s0) +/* 03B140 7F006610 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03B144 7F006614 3C198003 */ lui $t9, %hi(D_8002A790) +/* 03B148 7F006618 27B20090 */ addiu $s2, $sp, 0x90 +/* 03B14C 7F00661C 2739A790 */ addiu $t9, %lo(D_8002A790) # addiu $t9, $t9, -0x5870 +/* 03B150 7F006620 4481B000 */ mtc1 $at, $f22 +/* 03B154 7F006624 2729003C */ addiu $t1, $t9, 0x3c +/* 03B158 7F006628 02405025 */ move $t2, $s2 +.L7F00662C: +/* 03B15C 7F00662C 8F210000 */ lw $at, ($t9) +/* 03B160 7F006630 2739000C */ addiu $t9, $t9, 0xc +/* 03B164 7F006634 254A000C */ addiu $t2, $t2, 0xc +/* 03B168 7F006638 AD41FFF4 */ sw $at, -0xc($t2) +/* 03B16C 7F00663C 8F21FFF8 */ lw $at, -8($t9) +/* 03B170 7F006640 AD41FFF8 */ sw $at, -8($t2) +/* 03B174 7F006644 8F21FFFC */ lw $at, -4($t9) +/* 03B178 7F006648 1729FFF8 */ bne $t9, $t1, .L7F00662C +/* 03B17C 7F00664C AD41FFFC */ sw $at, -4($t2) +/* 03B180 7F006650 8F210000 */ lw $at, ($t9) +/* 03B184 7F006654 3C0C0000 */ lui $t4, %hi(0x0000001C) # $t4, 0 +/* 03B188 7F006658 258C001C */ addiu $t4, %lo(0x0000001C) # addiu $t4, $t4, 0x1c +/* 03B18C 7F00665C AD410000 */ sw $at, ($t2) +/* 03B190 7F006660 8E8B0000 */ lw $t3, ($s4) +/* 03B194 7F006664 8E240000 */ lw $a0, ($s1) +/* 03B198 7F006668 4407A000 */ mfc1 $a3, $f20 +/* 03B19C 7F00666C E7B40014 */ swc1 $f20, 0x14($sp) +/* 03B1A0 7F006670 E7B60010 */ swc1 $f22, 0x10($sp) +/* 03B1A4 7F006674 00003025 */ move $a2, $zero +/* 03B1A8 7F006678 016C2821 */ addu $a1, $t3, $t4 +/* 03B1AC 7F00667C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 03B1B0 7F006680 24840598 */ addiu $a0, $a0, 0x598 +/* 03B1B4 7F006684 8E240000 */ lw $a0, ($s1) +/* 03B1B8 7F006688 0FC1B5AC */ jal subcalcpos +/* 03B1BC 7F00668C 24840598 */ addiu $a0, $a0, 0x598 +/* 03B1C0 7F006690 27B30050 */ addiu $s3, $sp, 0x50 +/* 03B1C4 7F006694 0FC15FF4 */ jal matrix_4x4_set_identity +/* 03B1C8 7F006698 02602025 */ move $a0, $s3 +/* 03B1CC 7F00669C 8E300000 */ lw $s0, ($s1) +/* 03B1D0 7F0066A0 AFB30090 */ sw $s3, 0x90($sp) +/* 03B1D4 7F0066A4 02402025 */ move $a0, $s2 +/* 03B1D8 7F0066A8 260D06D0 */ addiu $t5, $s0, 0x6d0 +/* 03B1DC 7F0066AC AFAD00A0 */ sw $t5, 0xa0($sp) +/* 03B1E0 7F0066B0 0FC1BCBE */ jal subcalcmatrices +/* 03B1E4 7F0066B4 26050598 */ addiu $a1, $s0, 0x598 +/* 03B1E8 7F0066B8 8E300000 */ lw $s0, ($s1) +/* 03B1EC 7F0066BC 24130018 */ li $s3, 24 +/* 03B1F0 7F0066C0 3C128003 */ lui $s2, %hi(D_80036AD0) +/* 03B1F4 7F0066C4 C6040704 */ lwc1 $f4, 0x704($s0) +/* 03B1F8 7F0066C8 26526AD0 */ addiu $s2, %lo(D_80036AD0) # addiu $s2, $s2, 0x6ad0 +/* 03B1FC 7F0066CC 00003025 */ move $a2, $zero +/* 03B200 7F0066D0 E6040550 */ swc1 $f4, 0x550($s0) +/* 03B204 7F0066D4 8E2E0000 */ lw $t6, ($s1) +/* 03B208 7F0066D8 E5D40554 */ swc1 $f20, 0x554($t6) +/* 03B20C 7F0066DC 8E300000 */ lw $s0, ($s1) +/* 03B210 7F0066E0 C6080744 */ lwc1 $f8, 0x744($s0) +/* 03B214 7F0066E4 C60A0704 */ lwc1 $f10, 0x704($s0) +/* 03B218 7F0066E8 460A4401 */ sub.s $f16, $f8, $f10 +/* 03B21C 7F0066EC E6100558 */ swc1 $f16, 0x558($s0) +/* 03B220 7F0066F0 8E300000 */ lw $s0, ($s1) +/* 03B224 7F0066F4 C6060748 */ lwc1 $f6, 0x748($s0) +/* 03B228 7F0066F8 C6120708 */ lwc1 $f18, 0x708($s0) +/* 03B22C 7F0066FC 46123101 */ sub.s $f4, $f6, $f18 +/* 03B230 7F006700 E604055C */ swc1 $f4, 0x55c($s0) +/* 03B234 7F006704 8E300000 */ lw $s0, ($s1) +/* 03B238 7F006708 8E890000 */ lw $t1, ($s4) +/* 03B23C 7F00670C 8E0F04E8 */ lw $t7, 0x4e8($s0) +/* 03B240 7F006710 E7B40014 */ swc1 $f20, 0x14($sp) +/* 03B244 7F006714 E7B60010 */ swc1 $f22, 0x10($sp) +/* 03B248 7F006718 01F30019 */ multu $t7, $s3 +/* 03B24C 7F00671C 26040598 */ addiu $a0, $s0, 0x598 +/* 03B250 7F006720 0000C012 */ mflo $t8 +/* 03B254 7F006724 02581021 */ addu $v0, $s2, $t8 +/* 03B258 7F006728 8C480000 */ lw $t0, ($v0) +/* 03B25C 7F00672C 8C470004 */ lw $a3, 4($v0) +/* 03B260 7F006730 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 03B264 7F006734 01092821 */ addu $a1, $t0, $t1 +/* 03B268 7F006738 8E300000 */ lw $s0, ($s1) +/* 03B26C 7F00673C 4406A000 */ mfc1 $a2, $f20 +/* 03B270 7F006740 8E1904E8 */ lw $t9, 0x4e8($s0) +/* 03B274 7F006744 26040598 */ addiu $a0, $s0, 0x598 +/* 03B278 7F006748 03330019 */ multu $t9, $s3 +/* 03B27C 7F00674C 00005012 */ mflo $t2 +/* 03B280 7F006750 024A5821 */ addu $t3, $s2, $t2 +/* 03B284 7F006754 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 03B288 7F006758 8D650004 */ lw $a1, 4($t3) +/* 03B28C 7F00675C 8E300000 */ lw $s0, ($s1) +/* 03B290 7F006760 8E0C04E8 */ lw $t4, 0x4e8($s0) +/* 03B294 7F006764 26040598 */ addiu $a0, $s0, 0x598 +/* 03B298 7F006768 01930019 */ multu $t4, $s3 +/* 03B29C 7F00676C 00006812 */ mflo $t5 +/* 03B2A0 7F006770 024D7021 */ addu $t6, $s2, $t5 +/* 03B2A4 7F006774 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 03B2A8 7F006778 8DC50008 */ lw $a1, 8($t6) +/* 03B2AC 7F00677C 8E240000 */ lw $a0, ($s1) +/* 03B2B0 7F006780 3C057F09 */ lui $a1, %hi(sub_GAME_7F08DBB0) # $a1, 0x7f09 +/* 03B2B4 7F006784 24A5DBB0 */ addiu $a1, %lo(sub_GAME_7F08DBB0) # addiu $a1, $a1, -0x2450 +/* 03B2B8 7F006788 0FC1BF8F */ jal sub_GAME_7F06FE3C +/* 03B2BC 7F00678C 24840598 */ addiu $a0, $a0, 0x598 +/* 03B2C0 7F006790 0FC236F2 */ jal sub_GAME_7F08DBC8 +/* 03B2C4 7F006794 00000000 */ nop +/* 03B2C8 7F006798 8FBF0044 */ lw $ra, 0x44($sp) +/* 03B2CC 7F00679C D7B40020 */ ldc1 $f20, 0x20($sp) +/* 03B2D0 7F0067A0 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 03B2D4 7F0067A4 8FB00030 */ lw $s0, 0x30($sp) +/* 03B2D8 7F0067A8 8FB10034 */ lw $s1, 0x34($sp) +/* 03B2DC 7F0067AC 8FB20038 */ lw $s2, 0x38($sp) +/* 03B2E0 7F0067B0 8FB3003C */ lw $s3, 0x3c($sp) +/* 03B2E4 7F0067B4 8FB40040 */ lw $s4, 0x40($sp) +/* 03B2E8 7F0067B8 03E00008 */ jr $ra +/* 03B2EC 7F0067BC 27BD00E0 */ addiu $sp, $sp, 0xe0 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_8004F1F0 +.word 0x3dccccce +glabel D_8004F1F4 +.word 0x4164924b +glabel D_8004F1F8 +.word 0x3f6e147b +.text +glabel sets_a_bunch_of_BONDdata_values_to_default +/* 03AEFC 7F00638C 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 03AF00 7F006390 AFB20038 */ sw $s2, 0x38($sp) +/* 03AF04 7F006394 3C128004 */ lui $s2, %hi(player_gait_object) # $s2, 0x8004 +/* 03AF08 7F006398 2652C680 */ addiu $s2, %lo(player_gait_object) # addiu $s2, $s2, -0x3980 +/* 03AF0C 7F00639C 864E0014 */ lh $t6, 0x14($s2) +/* 03AF10 7F0063A0 AFBF0044 */ sw $ra, 0x44($sp) +/* 03AF14 7F0063A4 AFB40040 */ sw $s4, 0x40($sp) +/* 03AF18 7F0063A8 29C1001F */ slti $at, $t6, 0x1f +/* 03AF1C 7F0063AC AFB3003C */ sw $s3, 0x3c($sp) +/* 03AF20 7F0063B0 AFB10034 */ sw $s1, 0x34($sp) +/* 03AF24 7F0063B4 AFB00030 */ sw $s0, 0x30($sp) +/* 03AF28 7F0063B8 F7B60028 */ sdc1 $f22, 0x28($sp) +/* 03AF2C 7F0063BC 14200003 */ bnez $at, .L7F0063CC +/* 03AF30 7F0063C0 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 03AF34 7F0063C4 0FC1B297 */ jal return_null +/* 03AF38 7F0063C8 00000000 */ nop +.L7F0063CC: +/* 03AF3C 7F0063CC 3C118008 */ lui $s1, %hi(pPlayer) # $s1, 0x8008 +/* 03AF40 7F0063D0 2631A120 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5ee0 +/* 03AF44 7F0063D4 8E300000 */ lw $s0, ($s1) +/* 03AF48 7F0063D8 02402825 */ move $a1, $s2 +/* 03AF4C 7F0063DC 26040598 */ addiu $a0, $s0, 0x598 +/* 03AF50 7F0063E0 0FC1D967 */ jal sub_GAME_7F075FAC +/* 03AF54 7F0063E4 26060654 */ addiu $a2, $s0, 0x654 +/* 03AF58 7F0063E8 3C018005 */ lui $at, %hi(D_8004F1F0) # $at, 0x8005 +/* 03AF5C 7F0063EC C436F220 */ lwc1 $f22, %lo(D_8004F1F0)($at) +/* 03AF60 7F0063F0 8E240000 */ lw $a0, ($s1) +/* 03AF64 7F0063F4 4405B000 */ mfc1 $a1, $f22 +/* 03AF68 7F0063F8 0FC1B51A */ jal set_obj_instance_controller_scale +/* 03AF6C 7F0063FC 24840598 */ addiu $a0, $a0, 0x598 +/* 03AF70 7F006400 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03AF74 7F006404 44810000 */ mtc1 $at, $f0 +/* 03AF78 7F006408 4480A000 */ mtc1 $zero, $f20 +/* 03AF7C 7F00640C 8E240000 */ lw $a0, ($s1) +/* 03AF80 7F006410 44050000 */ mfc1 $a1, $f0 +/* 03AF84 7F006414 4406A000 */ mfc1 $a2, $f20 +/* 03AF88 7F006418 0FC1C142 */ jal sub_GAME_7F06FF18 +/* 03AF8C 7F00641C 24840598 */ addiu $a0, $a0, 0x598 +/* 03AF90 7F006420 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03AF94 7F006424 44810000 */ mtc1 $at, $f0 +/* 03AF98 7F006428 8E2F0000 */ lw $t7, ($s1) +/* 03AF9C 7F00642C 3C018005 */ lui $at, %hi(D_8004F1F4) # $at, 0x8005 +/* 03AFA0 7F006430 C422F224 */ lwc1 $f2, %lo(D_8004F1F4)($at) +/* 03AFA4 7F006434 ADE004E8 */ sw $zero, 0x4e8($t7) +/* 03AFA8 7F006438 3C018005 */ lui $at, %hi(D_8004F1F8) # $at, 0x8005 +/* 03AFAC 7F00643C C424F228 */ lwc1 $f4, %lo(D_8004F1F8)($at) +/* 03AFB0 7F006440 8E380000 */ lw $t8, ($s1) +/* 03AFB4 7F006444 24020001 */ li $v0, 1 +/* 03AFB8 7F006448 3C108003 */ lui $s0, %hi(D_80036AD0) # $s0, 0x8003 +/* 03AFBC 7F00644C E70404EC */ swc1 $f4, 0x4ec($t8) +/* 03AFC0 7F006450 8E390000 */ lw $t9, ($s1) +/* 03AFC4 7F006454 3C148007 */ lui $s4, %hi(ptr_animation_table) # $s4, 0x8007 +/* 03AFC8 7F006458 3C138003 */ lui $s3, %hi(D_80036B00) # $s3, 0x8003 +/* 03AFCC 7F00645C AF2004F0 */ sw $zero, 0x4f0($t9) +/* 03AFD0 7F006460 8E280000 */ lw $t0, ($s1) +/* 03AFD4 7F006464 26736B30 */ addiu $s3, %lo(D_80036B00) # addiu $s3, $s3, 0x6b30 +/* 03AFD8 7F006468 26949578 */ addiu $s4, %lo(ptr_animation_table) # addiu $s4, $s4, -0x6a88 +/* 03AFDC 7F00646C E50004F4 */ swc1 $f0, 0x4f4($t0) +/* 03AFE0 7F006470 8E290000 */ lw $t1, ($s1) +/* 03AFE4 7F006474 26106B00 */ addiu $s0, %lo(D_80036AD0) # addiu $s0, $s0, 0x6b00 +/* 03AFE8 7F006478 27B200D0 */ addiu $s2, $sp, 0xd0 +/* 03AFEC 7F00647C E52004F8 */ swc1 $f0, 0x4f8($t1) +/* 03AFF0 7F006480 8E2A0000 */ lw $t2, ($s1) +/* 03AFF4 7F006484 E55404FC */ swc1 $f20, 0x4fc($t2) +/* 03AFF8 7F006488 8E2B0000 */ lw $t3, ($s1) +/* 03AFFC 7F00648C E5740500 */ swc1 $f20, 0x500($t3) +/* 03B000 7F006490 8E2C0000 */ lw $t4, ($s1) +/* 03B004 7F006494 E5940504 */ swc1 $f20, 0x504($t4) +/* 03B008 7F006498 8E2D0000 */ lw $t5, ($s1) +/* 03B00C 7F00649C E5B40508 */ swc1 $f20, 0x508($t5) +/* 03B010 7F0064A0 8E2E0000 */ lw $t6, ($s1) +/* 03B014 7F0064A4 E5D4050C */ swc1 $f20, 0x50c($t6) +/* 03B018 7F0064A8 8E2F0000 */ lw $t7, ($s1) +/* 03B01C 7F0064AC E5F40510 */ swc1 $f20, 0x510($t7) +/* 03B020 7F0064B0 8E380000 */ lw $t8, ($s1) +/* 03B024 7F0064B4 E7140514 */ swc1 $f20, 0x514($t8) +/* 03B028 7F0064B8 8E390000 */ lw $t9, ($s1) +/* 03B02C 7F0064BC E7340518 */ swc1 $f20, 0x518($t9) +/* 03B030 7F0064C0 8E280000 */ lw $t0, ($s1) +/* 03B034 7F0064C4 E514051C */ swc1 $f20, 0x51c($t0) +/* 03B038 7F0064C8 8E290000 */ lw $t1, ($s1) +/* 03B03C 7F0064CC E5340520 */ swc1 $f20, 0x520($t1) +/* 03B040 7F0064D0 8E2A0000 */ lw $t2, ($s1) +/* 03B044 7F0064D4 E5540524 */ swc1 $f20, 0x524($t2) +/* 03B048 7F0064D8 8E2B0000 */ lw $t3, ($s1) +/* 03B04C 7F0064DC E5740528 */ swc1 $f20, 0x528($t3) +/* 03B050 7F0064E0 8E2C0000 */ lw $t4, ($s1) +/* 03B054 7F0064E4 E594052C */ swc1 $f20, 0x52c($t4) +/* 03B058 7F0064E8 8E2D0000 */ lw $t5, ($s1) +/* 03B05C 7F0064EC E5B40530 */ swc1 $f20, 0x530($t5) +/* 03B060 7F0064F0 8E2E0000 */ lw $t6, ($s1) +/* 03B064 7F0064F4 E5C20534 */ swc1 $f2, 0x534($t6) +/* 03B068 7F0064F8 8E2F0000 */ lw $t7, ($s1) +/* 03B06C 7F0064FC E5F40538 */ swc1 $f20, 0x538($t7) +/* 03B070 7F006500 8E380000 */ lw $t8, ($s1) +/* 03B074 7F006504 E702053C */ swc1 $f2, 0x53c($t8) +/* 03B078 7F006508 8E390000 */ lw $t9, ($s1) +/* 03B07C 7F00650C E7340540 */ swc1 $f20, 0x540($t9) +/* 03B080 7F006510 8E280000 */ lw $t0, ($s1) +/* 03B084 7F006514 AD0204DC */ sw $v0, 0x4dc($t0) +/* 03B088 7F006518 8E290000 */ lw $t1, ($s1) +/* 03B08C 7F00651C AD2204E0 */ sw $v0, 0x4e0($t1) +/* 03B090 7F006520 8E2A0000 */ lw $t2, ($s1) +/* 03B094 7F006524 AD4204E4 */ sw $v0, 0x4e4($t2) +/* 03B098 7F006528 8E2B0000 */ lw $t3, ($s1) +/* 03B09C 7F00652C E5740544 */ swc1 $f20, 0x544($t3) +/* 03B0A0 7F006530 8E2C0000 */ lw $t4, ($s1) +/* 03B0A4 7F006534 E5940548 */ swc1 $f20, 0x548($t4) +/* 03B0A8 7F006538 8E2D0000 */ lw $t5, ($s1) +/* 03B0AC 7F00653C E5B4054C */ swc1 $f20, 0x54c($t5) +/* 03B0B0 7F006540 8E2E0000 */ lw $t6, ($s1) +/* 03B0B4 7F006544 E5D40550 */ swc1 $f20, 0x550($t6) +/* 03B0B8 7F006548 8E2F0000 */ lw $t7, ($s1) +/* 03B0BC 7F00654C E5F40554 */ swc1 $f20, 0x554($t7) +/* 03B0C0 7F006550 8E380000 */ lw $t8, ($s1) +/* 03B0C4 7F006554 E7140558 */ swc1 $f20, 0x558($t8) +/* 03B0C8 7F006558 8E390000 */ lw $t9, ($s1) +/* 03B0CC 7F00655C E734055C */ swc1 $f20, 0x55c($t9) +/* 03B0D0 7F006560 8E280000 */ lw $t0, ($s1) +/* 03B0D4 7F006564 E5140560 */ swc1 $f20, 0x560($t0) +/* 03B0D8 7F006568 8E290000 */ lw $t1, ($s1) +/* 03B0DC 7F00656C E5340564 */ swc1 $f20, 0x564($t1) +/* 03B0E0 7F006570 8E2A0000 */ lw $t2, ($s1) +/* 03B0E4 7F006574 E5540568 */ swc1 $f20, 0x568($t2) +/* 03B0E8 7F006578 8E2B0000 */ lw $t3, ($s1) +/* 03B0EC 7F00657C E560056C */ swc1 $f0, 0x56c($t3) +/* 03B0F0 7F006580 8E2C0000 */ lw $t4, ($s1) +/* 03B0F4 7F006584 E5940570 */ swc1 $f20, 0x570($t4) +/* 03B0F8 7F006588 8E2D0000 */ lw $t5, ($s1) +/* 03B0FC 7F00658C E5B40574 */ swc1 $f20, 0x574($t5) +/* 03B100 7F006590 8E2E0000 */ lw $t6, ($s1) +/* 03B104 7F006594 E5C00578 */ swc1 $f0, 0x578($t6) +/* 03B108 7F006598 8E2F0000 */ lw $t7, ($s1) +/* 03B10C 7F00659C E5F4057C */ swc1 $f20, 0x57c($t7) +/* 03B110 7F0065A0 8E380000 */ lw $t8, ($s1) +/* 03B114 7F0065A4 E7000580 */ swc1 $f0, 0x580($t8) +/* 03B118 7F0065A8 8E390000 */ lw $t9, ($s1) +/* 03B11C 7F0065AC E7340584 */ swc1 $f20, 0x584($t9) +/* 03B120 7F0065B0 8E280000 */ lw $t0, ($s1) +/* 03B124 7F0065B4 E5140588 */ swc1 $f20, 0x588($t0) +/* 03B128 7F0065B8 8E290000 */ lw $t1, ($s1) +/* 03B12C 7F0065BC E520058C */ swc1 $f0, 0x58c($t1) +/* 03B130 7F0065C0 8E2A0000 */ lw $t2, ($s1) +/* 03B134 7F0065C4 E5540590 */ swc1 $f20, 0x590($t2) +/* 03B138 7F0065C8 8E2B0000 */ lw $t3, ($s1) +/* 03B13C 7F0065CC AD600594 */ sw $zero, 0x594($t3) +.L7F0065D0: +/* 03B140 7F0065D0 C6060004 */ lwc1 $f6, 4($s0) +/* 03B144 7F0065D4 C60A0008 */ lwc1 $f10, 8($s0) +/* 03B148 7F0065D8 8E0C0000 */ lw $t4, ($s0) +/* 03B14C 7F0065DC 4600320D */ trunc.w.s $f8, $f6 +/* 03B150 7F0065E0 8E8D0000 */ lw $t5, ($s4) +/* 03B154 7F0065E4 02403825 */ move $a3, $s2 +/* 03B158 7F0065E8 4600540D */ trunc.w.s $f16, $f10 +/* 03B15C 7F0065EC 44054000 */ mfc1 $a1, $f8 +/* 03B160 7F0065F0 018D2021 */ addu $a0, $t4, $t5 +/* 03B164 7F0065F4 44068000 */ mfc1 $a2, $f16 +/* 03B168 7F0065F8 0FC018B0 */ jal sub_GAME_7F0062C0 +/* 03B16C 7F0065FC 00000000 */ nop +/* 03B170 7F006600 8FB800D8 */ lw $t8, 0xd8($sp) +/* 03B174 7F006604 C6120008 */ lwc1 $f18, 8($s0) +/* 03B178 7F006608 C6040004 */ lwc1 $f4, 4($s0) +/* 03B17C 7F00660C 44984000 */ mtc1 $t8, $f8 +/* 03B180 7F006610 26100018 */ addiu $s0, $s0, 0x18 +/* 03B184 7F006614 46049181 */ sub.s $f6, $f18, $f4 +/* 03B188 7F006618 468042A0 */ cvt.s.w $f10, $f8 +/* 03B18C 7F00661C 46165402 */ mul.s $f16, $f10, $f22 +/* 03B190 7F006620 46068483 */ div.s $f18, $f16, $f6 +/* 03B194 7F006624 1613FFEA */ bne $s0, $s3, .L7F0065D0 +/* 03B198 7F006628 E612FFF4 */ swc1 $f18, -0xc($s0) +/* 03B19C 7F00662C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03B1A0 7F006630 3C198003 */ lui $t9, %hi(D_8002A790) # $t9, 0x8003 +/* 03B1A4 7F006634 27B20090 */ addiu $s2, $sp, 0x90 +/* 03B1A8 7F006638 2739A7D0 */ addiu $t9, %lo(D_8002A790) # addiu $t9, $t9, -0x5830 +/* 03B1AC 7F00663C 4481B000 */ mtc1 $at, $f22 +/* 03B1B0 7F006640 2729003C */ addiu $t1, $t9, 0x3c +/* 03B1B4 7F006644 02405025 */ move $t2, $s2 +.L7F006648: +/* 03B1B8 7F006648 8F210000 */ lw $at, ($t9) +/* 03B1BC 7F00664C 2739000C */ addiu $t9, $t9, 0xc +/* 03B1C0 7F006650 254A000C */ addiu $t2, $t2, 0xc +/* 03B1C4 7F006654 AD41FFF4 */ sw $at, -0xc($t2) +/* 03B1C8 7F006658 8F21FFF8 */ lw $at, -8($t9) +/* 03B1CC 7F00665C AD41FFF8 */ sw $at, -8($t2) +/* 03B1D0 7F006660 8F21FFFC */ lw $at, -4($t9) +/* 03B1D4 7F006664 1729FFF8 */ bne $t9, $t1, .L7F006648 +/* 03B1D8 7F006668 AD41FFFC */ sw $at, -4($t2) +/* 03B1DC 7F00666C 8F210000 */ lw $at, ($t9) +/* 03B1E0 7F006670 3C0C0000 */ lui $t4, %hi(0x0000001C) # $t4, 0 +/* 03B1E4 7F006674 258C001C */ addiu $t4, %lo(0x0000001C) # addiu $t4, $t4, 0x1c +/* 03B1E8 7F006678 AD410000 */ sw $at, ($t2) +/* 03B1EC 7F00667C 8E8B0000 */ lw $t3, ($s4) +/* 03B1F0 7F006680 8E240000 */ lw $a0, ($s1) +/* 03B1F4 7F006684 4407A000 */ mfc1 $a3, $f20 +/* 03B1F8 7F006688 E7B40014 */ swc1 $f20, 0x14($sp) +/* 03B1FC 7F00668C E7B60010 */ swc1 $f22, 0x10($sp) +/* 03B200 7F006690 00003025 */ move $a2, $zero +/* 03B204 7F006694 016C2821 */ addu $a1, $t3, $t4 +/* 03B208 7F006698 0FC1C0A6 */ jal sub_GAME_7F06FCA8 +/* 03B20C 7F00669C 24840598 */ addiu $a0, $a0, 0x598 +/* 03B210 7F0066A0 8E240000 */ lw $a0, ($s1) +/* 03B214 7F0066A4 0FC1B728 */ jal subcalcpos +/* 03B218 7F0066A8 24840598 */ addiu $a0, $a0, 0x598 +/* 03B21C 7F0066AC 27B30050 */ addiu $s3, $sp, 0x50 +/* 03B220 7F0066B0 0FC1613C */ jal matrix_4x4_set_identity +/* 03B224 7F0066B4 02602025 */ move $a0, $s3 +/* 03B228 7F0066B8 8E300000 */ lw $s0, ($s1) +/* 03B22C 7F0066BC AFB30090 */ sw $s3, 0x90($sp) +/* 03B230 7F0066C0 02402025 */ move $a0, $s2 +/* 03B234 7F0066C4 260D06D0 */ addiu $t5, $s0, 0x6d0 +/* 03B238 7F0066C8 AFAD00A0 */ sw $t5, 0xa0($sp) +/* 03B23C 7F0066CC 0FC1BE3A */ jal subcalcmatrices +/* 03B240 7F0066D0 26050598 */ addiu $a1, $s0, 0x598 +/* 03B244 7F0066D4 8E300000 */ lw $s0, ($s1) +/* 03B248 7F0066D8 24130018 */ li $s3, 24 +/* 03B24C 7F0066DC 3C128003 */ lui $s2, %hi(D_80036AD0) # $s2, 0x8003 +/* 03B250 7F0066E0 C6040704 */ lwc1 $f4, 0x704($s0) +/* 03B254 7F0066E4 26526B00 */ addiu $s2, %lo(D_80036AD0) # addiu $s2, $s2, 0x6b00 +/* 03B258 7F0066E8 00003025 */ move $a2, $zero +/* 03B25C 7F0066EC E6040550 */ swc1 $f4, 0x550($s0) +/* 03B260 7F0066F0 8E2E0000 */ lw $t6, ($s1) +/* 03B264 7F0066F4 E5D40554 */ swc1 $f20, 0x554($t6) +/* 03B268 7F0066F8 8E300000 */ lw $s0, ($s1) +/* 03B26C 7F0066FC C6080744 */ lwc1 $f8, 0x744($s0) +/* 03B270 7F006700 C60A0704 */ lwc1 $f10, 0x704($s0) +/* 03B274 7F006704 460A4401 */ sub.s $f16, $f8, $f10 +/* 03B278 7F006708 E6100558 */ swc1 $f16, 0x558($s0) +/* 03B27C 7F00670C 8E300000 */ lw $s0, ($s1) +/* 03B280 7F006710 C6060748 */ lwc1 $f6, 0x748($s0) +/* 03B284 7F006714 C6120708 */ lwc1 $f18, 0x708($s0) +/* 03B288 7F006718 46123101 */ sub.s $f4, $f6, $f18 +/* 03B28C 7F00671C E604055C */ swc1 $f4, 0x55c($s0) +/* 03B290 7F006720 8E300000 */ lw $s0, ($s1) +/* 03B294 7F006724 8E890000 */ lw $t1, ($s4) +/* 03B298 7F006728 8E0F04E8 */ lw $t7, 0x4e8($s0) +/* 03B29C 7F00672C E7B40014 */ swc1 $f20, 0x14($sp) +/* 03B2A0 7F006730 E7B60010 */ swc1 $f22, 0x10($sp) +/* 03B2A4 7F006734 01F30019 */ multu $t7, $s3 +/* 03B2A8 7F006738 26040598 */ addiu $a0, $s0, 0x598 +/* 03B2AC 7F00673C 0000C012 */ mflo $t8 +/* 03B2B0 7F006740 02581021 */ addu $v0, $s2, $t8 +/* 03B2B4 7F006744 8C480000 */ lw $t0, ($v0) +/* 03B2B8 7F006748 8C470004 */ lw $a3, 4($v0) +/* 03B2BC 7F00674C 0FC1C0A6 */ jal sub_GAME_7F06FCA8 +/* 03B2C0 7F006750 01092821 */ addu $a1, $t0, $t1 +/* 03B2C4 7F006754 8E300000 */ lw $s0, ($s1) +/* 03B2C8 7F006758 4406A000 */ mfc1 $a2, $f20 +/* 03B2CC 7F00675C 8E1904E8 */ lw $t9, 0x4e8($s0) +/* 03B2D0 7F006760 26040598 */ addiu $a0, $s0, 0x598 +/* 03B2D4 7F006764 03330019 */ multu $t9, $s3 +/* 03B2D8 7F006768 00005012 */ mflo $t2 +/* 03B2DC 7F00676C 024A5821 */ addu $t3, $s2, $t2 +/* 03B2E0 7F006770 0FC1C0EF */ jal sub_GAME_7F06FDCC +/* 03B2E4 7F006774 8D650004 */ lw $a1, 4($t3) +/* 03B2E8 7F006778 8E300000 */ lw $s0, ($s1) +/* 03B2EC 7F00677C 8E0C04E8 */ lw $t4, 0x4e8($s0) +/* 03B2F0 7F006780 26040598 */ addiu $a0, $s0, 0x598 +/* 03B2F4 7F006784 01930019 */ multu $t4, $s3 +/* 03B2F8 7F006788 00006812 */ mflo $t5 +/* 03B2FC 7F00678C 024D7021 */ addu $t6, $s2, $t5 +/* 03B300 7F006790 0FC1C0F6 */ jal sub_GAME_7F06FDE8 +/* 03B304 7F006794 8DC50008 */ lw $a1, 8($t6) +/* 03B308 7F006798 8E240000 */ lw $a0, ($s1) +/* 03B30C 7F00679C 3C057F09 */ lui $a1, %hi(sub_GAME_7F08DBB0) # $a1, 0x7f09 +/* 03B310 7F0067A0 24A5E690 */ addiu $a1, %lo(sub_GAME_7F08DBB0) # addiu $a1, $a1, -0x1970 +/* 03B314 7F0067A4 0FC1C10B */ jal sub_GAME_7F06FE3C +/* 03B318 7F0067A8 24840598 */ addiu $a0, $a0, 0x598 +/* 03B31C 7F0067AC 0FC239AA */ jal sub_GAME_7F08DBC8 +/* 03B320 7F0067B0 00000000 */ nop +/* 03B324 7F0067B4 8FBF0044 */ lw $ra, 0x44($sp) +/* 03B328 7F0067B8 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 03B32C 7F0067BC D7B60028 */ ldc1 $f22, 0x28($sp) +/* 03B330 7F0067C0 8FB00030 */ lw $s0, 0x30($sp) +/* 03B334 7F0067C4 8FB10034 */ lw $s1, 0x34($sp) +/* 03B338 7F0067C8 8FB20038 */ lw $s2, 0x38($sp) +/* 03B33C 7F0067CC 8FB3003C */ lw $s3, 0x3c($sp) +/* 03B340 7F0067D0 8FB40040 */ lw $s4, 0x40($sp) +/* 03B344 7F0067D4 03E00008 */ jr $ra +/* 03B348 7F0067D8 27BD00E0 */ addiu $sp, $sp, 0xe0 +) +#endif + +#endif + diff --git a/src/game/initactorpropstuff.c b/src/game/initactorpropstuff.c new file mode 100644 index 0000000..763ab71 --- /dev/null +++ b/src/game/initactorpropstuff.c @@ -0,0 +1,718 @@ +#include "ultra64.h" +#include "game/initactorpropstuff.h" +#include "game/chr.h" + + + + + + + +#ifdef NONMATCHING +void reset_counter_rand_body_head(void) { + num_bodies = 0; + if (list_of_bodies[0] >= 0 ) { + num_bodies = 1; + while (list_of_bodies[num_bodies] >= 0) { + num_bodies += 1; + } + } + num_male_heads = 0; + if (random_male_heads[0] >= 0) { + num_male_heads = 1; + while (random_male_heads[num_male_heads] >= 0) { + num_male_heads += 1; + } + } + num_female_heads = 0; + if (random_female_heads[0] >= 0) { + num_female_heads = 1; + while (random_female_heads[num_female_heads] >= 0) { + num_female_heads += 1; + } + } + return; +} +#else +GLOBAL_ASM( +.text +glabel reset_counter_rand_body_head +/* 034C40 7F000110 3C048003 */ lui $a0, %hi(list_of_bodies) +/* 034C44 7F000114 2484CD0C */ addiu $a0, %lo(list_of_bodies) # addiu $a0, $a0, -0x32f4 +/* 034C48 7F000118 00007080 */ sll $t6, $zero, 2 +/* 034C4C 7F00011C 008E7821 */ addu $t7, $a0, $t6 +/* 034C50 7F000120 8DF80000 */ lw $t8, ($t7) +/* 034C54 7F000124 3C038003 */ lui $v1, %hi(num_bodies) +/* 034C58 7F000128 2463CD00 */ addiu $v1, %lo(num_bodies) # addiu $v1, $v1, -0x3300 +/* 034C5C 7F00012C AC600000 */ sw $zero, ($v1) +/* 034C60 7F000130 07000009 */ bltz $t8, .L7F000158 +/* 034C64 7F000134 00001025 */ move $v0, $zero +/* 034C68 7F000138 24590001 */ addiu $t9, $v0, 1 +.L7F00013C: +/* 034C6C 7F00013C 00194080 */ sll $t0, $t9, 2 +/* 034C70 7F000140 00884821 */ addu $t1, $a0, $t0 +/* 034C74 7F000144 8D2A0000 */ lw $t2, ($t1) +/* 034C78 7F000148 AC790000 */ sw $t9, ($v1) +/* 034C7C 7F00014C 03201025 */ move $v0, $t9 +/* 034C80 7F000150 0543FFFA */ bgezl $t2, .L7F00013C +/* 034C84 7F000154 24590001 */ addiu $t9, $v0, 1 +.L7F000158: +/* 034C88 7F000158 3C048003 */ lui $a0, %hi(random_male_heads) +/* 034C8C 7F00015C 2484CDB8 */ addiu $a0, %lo(random_male_heads) # addiu $a0, $a0, -0x3248 +/* 034C90 7F000160 00005880 */ sll $t3, $zero, 2 +/* 034C94 7F000164 008B6021 */ addu $t4, $a0, $t3 +/* 034C98 7F000168 8D8D0000 */ lw $t5, ($t4) +/* 034C9C 7F00016C 3C038003 */ lui $v1, %hi(num_male_heads) +/* 034CA0 7F000170 2463CD04 */ addiu $v1, %lo(num_male_heads) # addiu $v1, $v1, -0x32fc +/* 034CA4 7F000174 AC600000 */ sw $zero, ($v1) +/* 034CA8 7F000178 05A00009 */ bltz $t5, .L7F0001A0 +/* 034CAC 7F00017C 00001025 */ move $v0, $zero +/* 034CB0 7F000180 244E0001 */ addiu $t6, $v0, 1 +.L7F000184: +/* 034CB4 7F000184 000E7880 */ sll $t7, $t6, 2 +/* 034CB8 7F000188 008FC021 */ addu $t8, $a0, $t7 +/* 034CBC 7F00018C 8F190000 */ lw $t9, ($t8) +/* 034CC0 7F000190 AC6E0000 */ sw $t6, ($v1) +/* 034CC4 7F000194 01C01025 */ move $v0, $t6 +/* 034CC8 7F000198 0723FFFA */ bgezl $t9, .L7F000184 +/* 034CCC 7F00019C 244E0001 */ addiu $t6, $v0, 1 +.L7F0001A0: +/* 034CD0 7F0001A0 3C048003 */ lui $a0, %hi(random_female_heads) +/* 034CD4 7F0001A4 2484CE20 */ addiu $a0, %lo(random_female_heads) # addiu $a0, $a0, -0x31e0 +/* 034CD8 7F0001A8 00004080 */ sll $t0, $zero, 2 +/* 034CDC 7F0001AC 00884821 */ addu $t1, $a0, $t0 +/* 034CE0 7F0001B0 8D2A0000 */ lw $t2, ($t1) +/* 034CE4 7F0001B4 3C038003 */ lui $v1, %hi(num_female_heads) +/* 034CE8 7F0001B8 2463CD08 */ addiu $v1, %lo(num_female_heads) # addiu $v1, $v1, -0x32f8 +/* 034CEC 7F0001BC AC600000 */ sw $zero, ($v1) +/* 034CF0 7F0001C0 05400009 */ bltz $t2, .L7F0001E8 +/* 034CF4 7F0001C4 00001025 */ move $v0, $zero +/* 034CF8 7F0001C8 244B0001 */ addiu $t3, $v0, 1 +.L7F0001CC: +/* 034CFC 7F0001CC 000B6080 */ sll $t4, $t3, 2 +/* 034D00 7F0001D0 008C6821 */ addu $t5, $a0, $t4 +/* 034D04 7F0001D4 8DAE0000 */ lw $t6, ($t5) +/* 034D08 7F0001D8 AC6B0000 */ sw $t3, ($v1) +/* 034D0C 7F0001DC 01601025 */ move $v0, $t3 +/* 034D10 7F0001E0 05C3FFFA */ bgezl $t6, .L7F0001CC +/* 034D14 7F0001E4 244B0001 */ addiu $t3, $v0, 1 +.L7F0001E8: +/* 034D18 7F0001E8 03E00008 */ jr $ra +/* 034D1C 7F0001EC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0001F0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0001F0 +/* 034D20 7F0001F0 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 034D24 7F0001F4 AFB30028 */ sw $s3, 0x28($sp) +/* 034D28 7F0001F8 AFB20024 */ sw $s2, 0x24($sp) +/* 034D2C 7F0001FC AFB10020 */ sw $s1, 0x20($sp) +/* 034D30 7F000200 AFB0001C */ sw $s0, 0x1c($sp) +/* 034D34 7F000204 00A6082A */ slt $at, $a1, $a2 +/* 034D38 7F000208 00A08025 */ move $s0, $a1 +/* 034D3C 7F00020C 00C09025 */ move $s2, $a2 +/* 034D40 7F000210 00809825 */ move $s3, $a0 +/* 034D44 7F000214 AFBF0034 */ sw $ra, 0x34($sp) +/* 034D48 7F000218 AFB50030 */ sw $s5, 0x30($sp) +/* 034D4C 7F00021C AFB4002C */ sw $s4, 0x2c($sp) +/* 034D50 7F000220 10200011 */ beqz $at, .L7F000268 +/* 034D54 7F000224 00008825 */ move $s1, $zero +/* 034D58 7F000228 3C148004 */ lui $s4, %hi(model_guard_character) +/* 034D5C 7F00022C 2694D400 */ addiu $s4, %lo(model_guard_character) # addiu $s4, $s4, -0x2c00 +/* 034D60 7F000230 27B50040 */ addiu $s5, $sp, 0x40 +.L7F000234: +/* 034D64 7F000234 00002025 */ move $a0, $zero +/* 034D68 7F000238 00002825 */ move $a1, $zero +/* 034D6C 7F00023C 02803025 */ move $a2, $s4 +/* 034D70 7F000240 02603825 */ move $a3, $s3 +/* 034D74 7F000244 AFB00010 */ sw $s0, 0x10($sp) +/* 034D78 7F000248 0FC1B4B9 */ jal sub_GAME_7F06D2E4 +/* 034D7C 7F00024C AFB50014 */ sw $s5, 0x14($sp) +/* 034D80 7F000250 02228821 */ addu $s1, $s1, $v0 +/* 034D84 7F000254 26100001 */ addiu $s0, $s0, 1 +/* 034D88 7F000258 322EFFFF */ andi $t6, $s1, 0xffff +/* 034D8C 7F00025C 0212082A */ slt $at, $s0, $s2 +/* 034D90 7F000260 1420FFF4 */ bnez $at, .L7F000234 +/* 034D94 7F000264 01C08825 */ move $s1, $t6 +.L7F000268: +/* 034D98 7F000268 8FBF0034 */ lw $ra, 0x34($sp) +/* 034D9C 7F00026C 02201025 */ move $v0, $s1 +/* 034DA0 7F000270 8FB10020 */ lw $s1, 0x20($sp) +/* 034DA4 7F000274 8FB0001C */ lw $s0, 0x1c($sp) +/* 034DA8 7F000278 8FB20024 */ lw $s2, 0x24($sp) +/* 034DAC 7F00027C 8FB30028 */ lw $s3, 0x28($sp) +/* 034DB0 7F000280 8FB4002C */ lw $s4, 0x2c($sp) +/* 034DB4 7F000284 8FB50030 */ lw $s5, 0x30($sp) +/* 034DB8 7F000288 03E00008 */ jr $ra +/* 034DBC 7F00028C 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F000290(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F000290 +/* 034DC0 7F000290 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 034DC4 7F000294 AFB30028 */ sw $s3, 0x28($sp) +/* 034DC8 7F000298 AFB20024 */ sw $s2, 0x24($sp) +/* 034DCC 7F00029C AFB10020 */ sw $s1, 0x20($sp) +/* 034DD0 7F0002A0 AFB0001C */ sw $s0, 0x1c($sp) +/* 034DD4 7F0002A4 00A6082A */ slt $at, $a1, $a2 +/* 034DD8 7F0002A8 00A08025 */ move $s0, $a1 +/* 034DDC 7F0002AC 00C09025 */ move $s2, $a2 +/* 034DE0 7F0002B0 00809825 */ move $s3, $a0 +/* 034DE4 7F0002B4 AFBF0034 */ sw $ra, 0x34($sp) +/* 034DE8 7F0002B8 AFB50030 */ sw $s5, 0x30($sp) +/* 034DEC 7F0002BC AFB4002C */ sw $s4, 0x2c($sp) +/* 034DF0 7F0002C0 10200010 */ beqz $at, .L7F000304 +/* 034DF4 7F0002C4 00008825 */ move $s1, $zero +/* 034DF8 7F0002C8 3C148004 */ lui $s4, %hi(model_guard_character) +/* 034DFC 7F0002CC 2694D400 */ addiu $s4, %lo(model_guard_character) # addiu $s4, $s4, -0x2c00 +/* 034E00 7F0002D0 27B5003C */ addiu $s5, $sp, 0x3c +.L7F0002D4: +/* 034E04 7F0002D4 00002025 */ move $a0, $zero +/* 034E08 7F0002D8 00002825 */ move $a1, $zero +/* 034E0C 7F0002DC 02803025 */ move $a2, $s4 +/* 034E10 7F0002E0 02603825 */ move $a3, $s3 +/* 034E14 7F0002E4 AFB00010 */ sw $s0, 0x10($sp) +/* 034E18 7F0002E8 0FC1B4B9 */ jal sub_GAME_7F06D2E4 +/* 034E1C 7F0002EC AFB50014 */ sw $s5, 0x14($sp) +/* 034E20 7F0002F0 87AE0040 */ lh $t6, 0x40($sp) +/* 034E24 7F0002F4 26100001 */ addiu $s0, $s0, 1 +/* 034E28 7F0002F8 0212082A */ slt $at, $s0, $s2 +/* 034E2C 7F0002FC 1420FFF5 */ bnez $at, .L7F0002D4 +/* 034E30 7F000300 022E8821 */ addu $s1, $s1, $t6 +.L7F000304: +/* 034E34 7F000304 8FBF0034 */ lw $ra, 0x34($sp) +/* 034E38 7F000308 02201025 */ move $v0, $s1 +/* 034E3C 7F00030C 8FB10020 */ lw $s1, 0x20($sp) +/* 034E40 7F000310 8FB0001C */ lw $s0, 0x1c($sp) +/* 034E44 7F000314 8FB20024 */ lw $s2, 0x24($sp) +/* 034E48 7F000318 8FB30028 */ lw $s3, 0x28($sp) +/* 034E4C 7F00031C 8FB4002C */ lw $s4, 0x2c($sp) +/* 034E50 7F000320 8FB50030 */ lw $s5, 0x30($sp) +/* 034E54 7F000324 03E00008 */ jr $ra +/* 034E58 7F000328 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F00032C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel F32_8004ED70 +.word 0x40c90fdb +glabel F32_8004ED74 +.word 0x38c90fdb +.text +glabel sub_GAME_7F00032C +/* 034E5C 7F00032C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 034E60 7F000330 AFBF003C */ sw $ra, 0x3c($sp) +/* 034E64 7F000334 AFB30038 */ sw $s3, 0x38($sp) +/* 034E68 7F000338 AFB20034 */ sw $s2, 0x34($sp) +/* 034E6C 7F00033C AFB10030 */ sw $s1, 0x30($sp) +/* 034E70 7F000340 AFB0002C */ sw $s0, 0x2c($sp) +/* 034E74 7F000344 F7B80020 */ sdc1 $f24, 0x20($sp) +/* 034E78 7F000348 F7B60018 */ sdc1 $f22, 0x18($sp) +/* 034E7C 7F00034C F7B40010 */ sdc1 $f20, 0x10($sp) +/* 034E80 7F000350 8C8E0000 */ lw $t6, ($a0) +/* 034E84 7F000354 00008825 */ move $s1, $zero +/* 034E88 7F000358 00808025 */ move $s0, $a0 +/* 034E8C 7F00035C 11C00038 */ beqz $t6, .L7F000440 +/* 034E90 7F000360 01C01025 */ move $v0, $t6 +/* 034E94 7F000364 3C018005 */ lui $at, %hi(F32_8004ED70) +/* 034E98 7F000368 C438ED70 */ lwc1 $f24, %lo(F32_8004ED70)($at) +/* 034E9C 7F00036C 3C018005 */ lui $at, %hi(F32_8004ED74) +/* 034EA0 7F000370 3C128007 */ lui $s2, %hi(ptr_animation_table) +/* 034EA4 7F000374 4480A000 */ mtc1 $zero, $f20 +/* 034EA8 7F000378 26529538 */ addiu $s2, %lo(ptr_animation_table) # addiu $s2, $s2, -0x6ac8 +/* 034EAC 7F00037C C436ED74 */ lwc1 $f22, %lo(F32_8004ED74)($at) +/* 034EB0 7F000380 34138000 */ li $s3, 32768 +/* 034EB4 7F000384 8E4F0000 */ lw $t7, ($s2) +.L7F000388: +/* 034EB8 7F000388 C60C0004 */ lwc1 $f12, 4($s0) +/* 034EBC 7F00038C 004FC021 */ addu $t8, $v0, $t7 +/* 034EC0 7F000390 0FC170F6 */ jal sub_GAME_7F05C3D8 +/* 034EC4 7F000394 AE180000 */ sw $t8, ($s0) +/* 034EC8 7F000398 8E040000 */ lw $a0, ($s0) +/* 034ECC 7F00039C 00002825 */ move $a1, $zero +/* 034ED0 7F0003A0 0FC0007C */ jal sub_GAME_7F0001F0 +/* 034ED4 7F0003A4 00403025 */ move $a2, $v0 +/* 034ED8 7F0003A8 C6000004 */ lwc1 $f0, 4($s0) +/* 034EDC 7F0003AC 3043FFFF */ andi $v1, $v0, 0xffff +/* 034EE0 7F0003B0 0073082A */ slt $at, $v1, $s3 +/* 034EE4 7F0003B4 4600A03C */ c.lt.s $f20, $f0 +/* 034EE8 7F0003B8 00000000 */ nop +/* 034EEC 7F0003BC 4502001B */ bc1fl .L7F00042C +/* 034EF0 7F0003C0 E6140008 */ swc1 $f20, 8($s0) +/* 034EF4 7F0003C4 5020000D */ beql $at, $zero, .L7F0003FC +/* 034EF8 7F0003C8 44839000 */ mtc1 $v1, $f18 +/* 034EFC 7F0003CC 44832000 */ mtc1 $v1, $f4 +/* 034F00 7F0003D0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 034F04 7F0003D4 04610004 */ bgez $v1, .L7F0003E8 +/* 034F08 7F0003D8 468021A0 */ cvt.s.w $f6, $f4 +/* 034F0C 7F0003DC 44814000 */ mtc1 $at, $f8 +/* 034F10 7F0003E0 00000000 */ nop +/* 034F14 7F0003E4 46083180 */ add.s $f6, $f6, $f8 +.L7F0003E8: +/* 034F18 7F0003E8 46163282 */ mul.s $f10, $f6, $f22 +/* 034F1C 7F0003EC 46005403 */ div.s $f16, $f10, $f0 +/* 034F20 7F0003F0 1000000E */ b .L7F00042C +/* 034F24 7F0003F4 E6100008 */ swc1 $f16, 8($s0) +/* 034F28 7F0003F8 44839000 */ mtc1 $v1, $f18 +.L7F0003FC: +/* 034F2C 7F0003FC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 034F30 7F000400 04610004 */ bgez $v1, .L7F000414 +/* 034F34 7F000404 46809120 */ cvt.s.w $f4, $f18 +/* 034F38 7F000408 44814000 */ mtc1 $at, $f8 +/* 034F3C 7F00040C 00000000 */ nop +/* 034F40 7F000410 46082100 */ add.s $f4, $f4, $f8 +.L7F000414: +/* 034F44 7F000414 46162182 */ mul.s $f6, $f4, $f22 +/* 034F48 7F000418 46183281 */ sub.s $f10, $f6, $f24 +/* 034F4C 7F00041C 46005403 */ div.s $f16, $f10, $f0 +/* 034F50 7F000420 10000002 */ b .L7F00042C +/* 034F54 7F000424 E6100008 */ swc1 $f16, 8($s0) +/* 034F58 7F000428 E6140008 */ swc1 $f20, 8($s0) +.L7F00042C: +/* 034F5C 7F00042C 8E020048 */ lw $v0, 0x48($s0) +/* 034F60 7F000430 26100048 */ addiu $s0, $s0, 0x48 +/* 034F64 7F000434 26310001 */ addiu $s1, $s1, 1 +/* 034F68 7F000438 5440FFD3 */ bnezl $v0, .L7F000388 +/* 034F6C 7F00043C 8E4F0000 */ lw $t7, ($s2) +.L7F000440: +/* 034F70 7F000440 8FBF003C */ lw $ra, 0x3c($sp) +/* 034F74 7F000444 02201025 */ move $v0, $s1 +/* 034F78 7F000448 8FB10030 */ lw $s1, 0x30($sp) +/* 034F7C 7F00044C D7B40010 */ ldc1 $f20, 0x10($sp) +/* 034F80 7F000450 D7B60018 */ ldc1 $f22, 0x18($sp) +/* 034F84 7F000454 D7B80020 */ ldc1 $f24, 0x20($sp) +/* 034F88 7F000458 8FB0002C */ lw $s0, 0x2c($sp) +/* 034F8C 7F00045C 8FB20034 */ lw $s2, 0x34($sp) +/* 034F90 7F000460 8FB30038 */ lw $s3, 0x38($sp) +/* 034F94 7F000464 03E00008 */ jr $ra +/* 034F98 7F000468 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F00046C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F00046C +/* 034F9C 7F00046C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 034FA0 7F000470 AFB20020 */ sw $s2, 0x20($sp) +/* 034FA4 7F000474 AFB1001C */ sw $s1, 0x1c($sp) +/* 034FA8 7F000478 AFB00018 */ sw $s0, 0x18($sp) +/* 034FAC 7F00047C AFBF0024 */ sw $ra, 0x24($sp) +/* 034FB0 7F000480 00808025 */ move $s0, $a0 +/* 034FB4 7F000484 00008825 */ move $s1, $zero +/* 034FB8 7F000488 24120080 */ li $s2, 128 +.L7F00048C: +/* 034FBC 7F00048C 8E020000 */ lw $v0, ($s0) +/* 034FC0 7F000490 8C4E0004 */ lw $t6, 4($v0) +/* 034FC4 7F000494 05C30006 */ bgezl $t6, .L7F0004B0 +/* 034FC8 7F000498 26310004 */ addiu $s1, $s1, 4 +/* 034FCC 7F00049C 0FC000CB */ jal sub_GAME_7F00032C +/* 034FD0 7F0004A0 8C440000 */ lw $a0, ($v0) +/* 034FD4 7F0004A4 8E0F0000 */ lw $t7, ($s0) +/* 034FD8 7F0004A8 ADE20004 */ sw $v0, 4($t7) +/* 034FDC 7F0004AC 26310004 */ addiu $s1, $s1, 4 +.L7F0004B0: +/* 034FE0 7F0004B0 1632FFF6 */ bne $s1, $s2, .L7F00048C +/* 034FE4 7F0004B4 26100004 */ addiu $s0, $s0, 4 +/* 034FE8 7F0004B8 8FBF0024 */ lw $ra, 0x24($sp) +/* 034FEC 7F0004BC 8FB00018 */ lw $s0, 0x18($sp) +/* 034FF0 7F0004C0 8FB1001C */ lw $s1, 0x1c($sp) +/* 034FF4 7F0004C4 8FB20020 */ lw $s2, 0x20($sp) +/* 034FF8 7F0004C8 03E00008 */ jr $ra +/* 034FFC 7F0004CC 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0004D0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0004D0 +/* 035000 7F0004D0 8C8E0000 */ lw $t6, ($a0) +/* 035004 7F0004D4 00001825 */ move $v1, $zero +/* 035008 7F0004D8 00801025 */ move $v0, $a0 +/* 03500C 7F0004DC 11C0000C */ beqz $t6, .L7F000510 +/* 035010 7F0004E0 00000000 */ nop +/* 035014 7F0004E4 8C850000 */ lw $a1, ($a0) +/* 035018 7F0004E8 3C048007 */ lui $a0, %hi(ptr_animation_table) +/* 03501C 7F0004EC 24849538 */ addiu $a0, %lo(ptr_animation_table) # addiu $a0, $a0, -0x6ac8 +/* 035020 7F0004F0 8C8F0000 */ lw $t7, ($a0) +.L7F0004F4: +/* 035024 7F0004F4 24630001 */ addiu $v1, $v1, 1 +/* 035028 7F0004F8 2442001C */ addiu $v0, $v0, 0x1c +/* 03502C 7F0004FC 00AFC021 */ addu $t8, $a1, $t7 +/* 035030 7F000500 8C450000 */ lw $a1, ($v0) +/* 035034 7F000504 AC58FFE4 */ sw $t8, -0x1c($v0) +/* 035038 7F000508 54A0FFFA */ bnezl $a1, .L7F0004F4 +/* 03503C 7F00050C 8C8F0000 */ lw $t7, ($a0) +.L7F000510: +/* 035040 7F000510 03E00008 */ jr $ra +/* 035044 7F000514 00601025 */ move $v0, $v1 +) +#endif + + + +#ifdef NONMATCHING +void somethingwith_weapon_animation_groups(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel F32_8004ED78 +.word 0x3dccccce +.text +glabel somethingwith_weapon_animation_groups +/* 035048 7F000518 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 03504C 7F00051C 3C0E8003 */ lui $t6, %hi(D_8002C914) +/* 035050 7F000520 8DCEC914 */ lw $t6, %lo(D_8002C914)($t6) +/* 035054 7F000524 AFB10024 */ sw $s1, 0x24($sp) +/* 035058 7F000528 2411FFFF */ li $s1, -1 +/* 03505C 7F00052C AFBF002C */ sw $ra, 0x2c($sp) +/* 035060 7F000530 AFB20028 */ sw $s2, 0x28($sp) +/* 035064 7F000534 AFB00020 */ sw $s0, 0x20($sp) +/* 035068 7F000538 122E0013 */ beq $s1, $t6, .L7F000588 +/* 03506C 7F00053C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 035070 7F000540 3C108003 */ lui $s0, %hi(D_8002C914) +/* 035074 7F000544 2610C914 */ addiu $s0, %lo(D_8002C914) # addiu $s0, $s0, -0x36ec +/* 035078 7F000548 8E04001C */ lw $a0, 0x1c($s0) +.L7F00054C: +/* 03507C 7F00054C 50800005 */ beql $a0, $zero, .L7F000564 +/* 035080 7F000550 8E040024 */ lw $a0, 0x24($s0) +/* 035084 7F000554 0FC00134 */ jal sub_GAME_7F0004D0 +/* 035088 7F000558 00000000 */ nop +/* 03508C 7F00055C AE020020 */ sw $v0, 0x20($s0) +/* 035090 7F000560 8E040024 */ lw $a0, 0x24($s0) +.L7F000564: +/* 035094 7F000564 50800005 */ beql $a0, $zero, .L7F00057C +/* 035098 7F000568 8E0F002C */ lw $t7, 0x2c($s0) +/* 03509C 7F00056C 0FC00134 */ jal sub_GAME_7F0004D0 +/* 0350A0 7F000570 00000000 */ nop +/* 0350A4 7F000574 AE020028 */ sw $v0, 0x28($s0) +/* 0350A8 7F000578 8E0F002C */ lw $t7, 0x2c($s0) +.L7F00057C: +/* 0350AC 7F00057C 2610002C */ addiu $s0, $s0, 0x2c +/* 0350B0 7F000580 562FFFF2 */ bnel $s1, $t7, .L7F00054C +/* 0350B4 7F000584 8E04001C */ lw $a0, 0x1c($s0) +.L7F000588: +/* 0350B8 7F000588 3C048003 */ lui $a0, %hi(D_8002DEBC) +/* 0350BC 7F00058C 0FC00134 */ jal sub_GAME_7F0004D0 +/* 0350C0 7F000590 2484DEBC */ addiu $a0, %lo(D_8002DEBC) # addiu $a0, $a0, -0x2144 +/* 0350C4 7F000594 3C048003 */ lui $a0, %hi(ptr_rifle_firing_animation_groups) +/* 0350C8 7F000598 0FC0011B */ jal sub_GAME_7F00046C +/* 0350CC 7F00059C 2484ED28 */ addiu $a0, %lo(ptr_rifle_firing_animation_groups) # addiu $a0, $a0, -0x12d8 +/* 0350D0 7F0005A0 3C048003 */ lui $a0, %hi(ptr_pistol_firing_animation_groups) +/* 0350D4 7F0005A4 0FC0011B */ jal sub_GAME_7F00046C +/* 0350D8 7F0005A8 2484F408 */ addiu $a0, %lo(ptr_pistol_firing_animation_groups) # addiu $a0, $a0, -0xbf8 +/* 0350DC 7F0005AC 3C048003 */ lui $a0, %hi(ptr_doubles_firing_animation_groups) +/* 0350E0 7F0005B0 0FC0011B */ jal sub_GAME_7F00046C +/* 0350E4 7F0005B4 2484F6E0 */ addiu $a0, %lo(ptr_doubles_firing_animation_groups) # addiu $a0, $a0, -0x920 +/* 0350E8 7F0005B8 3C048003 */ lui $a0, %hi(ptr_crouched_rifle_firing_animation_groups) +/* 0350EC 7F0005BC 0FC0011B */ jal sub_GAME_7F00046C +/* 0350F0 7F0005C0 2484F970 */ addiu $a0, %lo(ptr_crouched_rifle_firing_animation_groups) # addiu $a0, $a0, -0x690 +/* 0350F4 7F0005C4 3C048003 */ lui $a0, %hi(ptr_crouched_pistol_firing_animation_groups) +/* 0350F8 7F0005C8 0FC0011B */ jal sub_GAME_7F00046C +/* 0350FC 7F0005CC 2484FCD8 */ addiu $a0, %lo(ptr_crouched_pistol_firing_animation_groups) # addiu $a0, $a0, -0x328 +/* 035100 7F0005D0 3C048003 */ lui $a0, %hi(ptr_crouched_doubles_firing_animation_groups) +/* 035104 7F0005D4 0FC0011B */ jal sub_GAME_7F00046C +/* 035108 7F0005D8 2484FFF8 */ addiu $a0, %lo(ptr_crouched_doubles_firing_animation_groups) # addiu $a0, $a0, -8 +/* 03510C 7F0005DC 3C048003 */ lui $a0, %hi(D_80030078) +/* 035110 7F0005E0 0FC000CB */ jal sub_GAME_7F00032C +/* 035114 7F0005E4 24840078 */ addiu $a0, %lo(D_80030078) # addiu $a0, $a0, 0x78 +/* 035118 7F0005E8 3C048003 */ lui $a0, %hi(D_80030660) +/* 03511C 7F0005EC 0FC000CB */ jal sub_GAME_7F00032C +/* 035120 7F0005F0 24840660 */ addiu $a0, %lo(D_80030660) # addiu $a0, $a0, 0x660 +/* 035124 7F0005F4 3C128007 */ lui $s2, %hi(ptr_animation_table) +/* 035128 7F0005F8 26529538 */ addiu $s2, %lo(ptr_animation_table) # addiu $s2, $s2, -0x6ac8 +/* 03512C 7F0005FC 8E580000 */ lw $t8, ($s2) +/* 035130 7F000600 3C110000 */ lui $s1, %hi(0x00004018) # $s1, 0 +/* 035134 7F000604 26314018 */ addiu $s1, %lo(0x00004018) # addiu $s1, $s1, 0x4018 +/* 035138 7F000608 02382021 */ addu $a0, $s1, $t8 +/* 03513C 7F00060C 94860004 */ lhu $a2, 4($a0) +/* 035140 7F000610 00002825 */ move $a1, $zero +/* 035144 7F000614 0FC000A4 */ jal sub_GAME_7F000290 +/* 035148 7F000618 24C6FFFF */ addiu $a2, $a2, -1 +/* 03514C 7F00061C 44822000 */ mtc1 $v0, $f4 +/* 035150 7F000620 8E500000 */ lw $s0, ($s2) +/* 035154 7F000624 3C018005 */ lui $at, %hi(F32_8004ED78) +/* 035158 7F000628 468021A0 */ cvt.s.w $f6, $f4 +/* 03515C 7F00062C 0230C821 */ addu $t9, $s1, $s0 +/* 035160 7F000630 97280004 */ lhu $t0, 4($t9) +/* 035164 7F000634 C434ED78 */ lwc1 $f20, %lo(F32_8004ED78)($at) +/* 035168 7F000638 44885000 */ mtc1 $t0, $f10 +/* 03516C 7F00063C 46143202 */ mul.s $f8, $f6, $f20 +/* 035170 7F000640 05010005 */ bgez $t0, .L7F000658 +/* 035174 7F000644 46805420 */ cvt.s.w $f16, $f10 +/* 035178 7F000648 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 03517C 7F00064C 44819000 */ mtc1 $at, $f18 +/* 035180 7F000650 00000000 */ nop +/* 035184 7F000654 46128400 */ add.s $f16, $f16, $f18 +.L7F000658: +/* 035188 7F000658 46104103 */ div.s $f4, $f8, $f16 +/* 03518C 7F00065C 3C030000 */ lui $v1, %hi(0x000040D4) # $v1, 0 +/* 035190 7F000660 3C018003 */ lui $at, %hi(D_80030984) +/* 035194 7F000664 246340D4 */ addiu $v1, %lo(0x000040D4) # addiu $v1, $v1, 0x40d4 +/* 035198 7F000668 00702021 */ addu $a0, $v1, $s0 +/* 03519C 7F00066C 00002825 */ move $a1, $zero +/* 0351A0 7F000670 E4240984 */ swc1 $f4, %lo(D_80030984)($at) +/* 0351A4 7F000674 94860004 */ lhu $a2, 4($a0) +/* 0351A8 7F000678 AFA30034 */ sw $v1, 0x34($sp) +/* 0351AC 7F00067C 0FC000A4 */ jal sub_GAME_7F000290 +/* 0351B0 7F000680 24C6FFFF */ addiu $a2, $a2, -1 +/* 0351B4 7F000684 44823000 */ mtc1 $v0, $f6 +/* 0351B8 7F000688 8FA30034 */ lw $v1, 0x34($sp) +/* 0351BC 7F00068C 8E500000 */ lw $s0, ($s2) +/* 0351C0 7F000690 468032A0 */ cvt.s.w $f10, $f6 +/* 0351C4 7F000694 00704821 */ addu $t1, $v1, $s0 +/* 0351C8 7F000698 952A0004 */ lhu $t2, 4($t1) +/* 0351CC 7F00069C 448A4000 */ mtc1 $t2, $f8 +/* 0351D0 7F0006A0 46145482 */ mul.s $f18, $f10, $f20 +/* 0351D4 7F0006A4 05410005 */ bgez $t2, .L7F0006BC +/* 0351D8 7F0006A8 46804420 */ cvt.s.w $f16, $f8 +/* 0351DC 7F0006AC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0351E0 7F0006B0 44812000 */ mtc1 $at, $f4 +/* 0351E4 7F0006B4 00000000 */ nop +/* 0351E8 7F0006B8 46048400 */ add.s $f16, $f16, $f4 +.L7F0006BC: +/* 0351EC 7F0006BC 46109183 */ div.s $f6, $f18, $f16 +/* 0351F0 7F0006C0 3C110000 */ lui $s1, %hi(0x00004070) # $s1, 0 +/* 0351F4 7F0006C4 3C018003 */ lui $at, %hi(D_80030988) +/* 0351F8 7F0006C8 26314070 */ addiu $s1, %lo(0x00004070) # addiu $s1, $s1, 0x4070 +/* 0351FC 7F0006CC 02302021 */ addu $a0, $s1, $s0 +/* 035200 7F0006D0 00002825 */ move $a1, $zero +/* 035204 7F0006D4 E4260988 */ swc1 $f6, %lo(D_80030988)($at) +/* 035208 7F0006D8 94860004 */ lhu $a2, 4($a0) +/* 03520C 7F0006DC 0FC000A4 */ jal sub_GAME_7F000290 +/* 035210 7F0006E0 24C6FFFF */ addiu $a2, $a2, -1 +/* 035214 7F0006E4 44825000 */ mtc1 $v0, $f10 +/* 035218 7F0006E8 8E500000 */ lw $s0, ($s2) +/* 03521C 7F0006EC 46805220 */ cvt.s.w $f8, $f10 +/* 035220 7F0006F0 02305821 */ addu $t3, $s1, $s0 +/* 035224 7F0006F4 956C0004 */ lhu $t4, 4($t3) +/* 035228 7F0006F8 448C9000 */ mtc1 $t4, $f18 +/* 03522C 7F0006FC 46144102 */ mul.s $f4, $f8, $f20 +/* 035230 7F000700 05810005 */ bgez $t4, .L7F000718 +/* 035234 7F000704 46809420 */ cvt.s.w $f16, $f18 +/* 035238 7F000708 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 03523C 7F00070C 44813000 */ mtc1 $at, $f6 +/* 035240 7F000710 00000000 */ nop +/* 035244 7F000714 46068400 */ add.s $f16, $f16, $f6 +.L7F000718: +/* 035248 7F000718 46102283 */ div.s $f10, $f4, $f16 +/* 03524C 7F00071C 3C030001 */ lui $v1, %hi(0x00008204) # $v1, 1 +/* 035250 7F000720 3C018003 */ lui $at, %hi(D_8003098C) +/* 035254 7F000724 24638204 */ addiu $v1, %lo(0x00008204) # addiu $v1, $v1, -0x7dfc +/* 035258 7F000728 00702021 */ addu $a0, $v1, $s0 +/* 03525C 7F00072C 00002825 */ move $a1, $zero +/* 035260 7F000730 E42A098C */ swc1 $f10, %lo(D_8003098C)($at) +/* 035264 7F000734 94860004 */ lhu $a2, 4($a0) +/* 035268 7F000738 AFA30034 */ sw $v1, 0x34($sp) +/* 03526C 7F00073C 0FC000A4 */ jal sub_GAME_7F000290 +/* 035270 7F000740 24C6FFFF */ addiu $a2, $a2, -1 +/* 035274 7F000744 44824000 */ mtc1 $v0, $f8 +/* 035278 7F000748 8FA30034 */ lw $v1, 0x34($sp) +/* 03527C 7F00074C 8E500000 */ lw $s0, ($s2) +/* 035280 7F000750 468044A0 */ cvt.s.w $f18, $f8 +/* 035284 7F000754 00706821 */ addu $t5, $v1, $s0 +/* 035288 7F000758 95AE0004 */ lhu $t6, 4($t5) +/* 03528C 7F00075C 448E2000 */ mtc1 $t6, $f4 +/* 035290 7F000760 46149182 */ mul.s $f6, $f18, $f20 +/* 035294 7F000764 05C10005 */ bgez $t6, .L7F00077C +/* 035298 7F000768 46802420 */ cvt.s.w $f16, $f4 +/* 03529C 7F00076C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0352A0 7F000770 44815000 */ mtc1 $at, $f10 +/* 0352A4 7F000774 00000000 */ nop +/* 0352A8 7F000778 460A8400 */ add.s $f16, $f16, $f10 +.L7F00077C: +/* 0352AC 7F00077C 46103203 */ div.s $f8, $f6, $f16 +/* 0352B0 7F000780 3C070000 */ lui $a3, %hi(0x0000777C) # $a3, 0 +/* 0352B4 7F000784 3C018003 */ lui $at, %hi(D_80030990) +/* 0352B8 7F000788 24E7777C */ addiu $a3, %lo(0x0000777C) # addiu $a3, $a3, 0x777c +/* 0352BC 7F00078C 00F02021 */ addu $a0, $a3, $s0 +/* 0352C0 7F000790 00002825 */ move $a1, $zero +/* 0352C4 7F000794 E4280990 */ swc1 $f8, %lo(D_80030990)($at) +/* 0352C8 7F000798 94860004 */ lhu $a2, 4($a0) +/* 0352CC 7F00079C AFA70038 */ sw $a3, 0x38($sp) +/* 0352D0 7F0007A0 0FC000A4 */ jal sub_GAME_7F000290 +/* 0352D4 7F0007A4 24C6FFFF */ addiu $a2, $a2, -1 +/* 0352D8 7F0007A8 44829000 */ mtc1 $v0, $f18 +/* 0352DC 7F0007AC 8FA70038 */ lw $a3, 0x38($sp) +/* 0352E0 7F0007B0 8E500000 */ lw $s0, ($s2) +/* 0352E4 7F0007B4 46809120 */ cvt.s.w $f4, $f18 +/* 0352E8 7F0007B8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0352EC 7F0007BC 00F07821 */ addu $t7, $a3, $s0 +/* 0352F0 7F0007C0 95F80004 */ lhu $t8, 4($t7) +/* 0352F4 7F0007C4 44983000 */ mtc1 $t8, $f6 +/* 0352F8 7F0007C8 46142282 */ mul.s $f10, $f4, $f20 +/* 0352FC 7F0007CC 07010004 */ bgez $t8, .L7F0007E0 +/* 035300 7F0007D0 46803420 */ cvt.s.w $f16, $f6 +/* 035304 7F0007D4 44814000 */ mtc1 $at, $f8 +/* 035308 7F0007D8 00000000 */ nop +/* 03530C 7F0007DC 46088400 */ add.s $f16, $f16, $f8 +.L7F0007E0: +/* 035310 7F0007E0 46105483 */ div.s $f18, $f10, $f16 +/* 035314 7F0007E4 3C110000 */ lui $s1, %hi(0x000077D4) # $s1, 0 +/* 035318 7F0007E8 3C018003 */ lui $at, %hi(D_80030994) +/* 03531C 7F0007EC 263177D4 */ addiu $s1, %lo(0x000077D4) # addiu $s1, $s1, 0x77d4 +/* 035320 7F0007F0 02302021 */ addu $a0, $s1, $s0 +/* 035324 7F0007F4 00002825 */ move $a1, $zero +/* 035328 7F0007F8 E4320994 */ swc1 $f18, %lo(D_80030994)($at) +/* 03532C 7F0007FC 94860004 */ lhu $a2, 4($a0) +/* 035330 7F000800 0FC000A4 */ jal sub_GAME_7F000290 +/* 035334 7F000804 24C6FFFF */ addiu $a2, $a2, -1 +/* 035338 7F000808 44822000 */ mtc1 $v0, $f4 +/* 03533C 7F00080C 8E500000 */ lw $s0, ($s2) +/* 035340 7F000810 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 035344 7F000814 468021A0 */ cvt.s.w $f6, $f4 +/* 035348 7F000818 0230C821 */ addu $t9, $s1, $s0 +/* 03534C 7F00081C 97280004 */ lhu $t0, 4($t9) +/* 035350 7F000820 44885000 */ mtc1 $t0, $f10 +/* 035354 7F000824 46143202 */ mul.s $f8, $f6, $f20 +/* 035358 7F000828 05010004 */ bgez $t0, .L7F00083C +/* 03535C 7F00082C 46805420 */ cvt.s.w $f16, $f10 +/* 035360 7F000830 44819000 */ mtc1 $at, $f18 +/* 035364 7F000834 00000000 */ nop +/* 035368 7F000838 46128400 */ add.s $f16, $f16, $f18 +.L7F00083C: +/* 03536C 7F00083C 46104103 */ div.s $f4, $f8, $f16 +/* 035370 7F000840 3C030001 */ lui $v1, %hi(0x000084C4) # $v1, 1 +/* 035374 7F000844 3C018003 */ lui $at, %hi(D_80030998) +/* 035378 7F000848 246384C4 */ addiu $v1, %lo(0x000084C4) # addiu $v1, $v1, -0x7b3c +/* 03537C 7F00084C 00702021 */ addu $a0, $v1, $s0 +/* 035380 7F000850 00002825 */ move $a1, $zero +/* 035384 7F000854 E4240998 */ swc1 $f4, %lo(D_80030998)($at) +/* 035388 7F000858 94860004 */ lhu $a2, 4($a0) +/* 03538C 7F00085C AFA30038 */ sw $v1, 0x38($sp) +/* 035390 7F000860 0FC000A4 */ jal sub_GAME_7F000290 +/* 035394 7F000864 24C6FFFF */ addiu $a2, $a2, -1 +/* 035398 7F000868 44823000 */ mtc1 $v0, $f6 +/* 03539C 7F00086C 8FA30038 */ lw $v1, 0x38($sp) +/* 0353A0 7F000870 8E500000 */ lw $s0, ($s2) +/* 0353A4 7F000874 468032A0 */ cvt.s.w $f10, $f6 +/* 0353A8 7F000878 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0353AC 7F00087C 00704821 */ addu $t1, $v1, $s0 +/* 0353B0 7F000880 952A0004 */ lhu $t2, 4($t1) +/* 0353B4 7F000884 448A4000 */ mtc1 $t2, $f8 +/* 0353B8 7F000888 46145482 */ mul.s $f18, $f10, $f20 +/* 0353BC 7F00088C 05410004 */ bgez $t2, .L7F0008A0 +/* 0353C0 7F000890 46804420 */ cvt.s.w $f16, $f8 +/* 0353C4 7F000894 44812000 */ mtc1 $at, $f4 +/* 0353C8 7F000898 00000000 */ nop +/* 0353CC 7F00089C 46048400 */ add.s $f16, $f16, $f4 +.L7F0008A0: +/* 0353D0 7F0008A0 46109183 */ div.s $f6, $f18, $f16 +/* 0353D4 7F0008A4 3C070001 */ lui $a3, %hi(0x00008520) # $a3, 1 +/* 0353D8 7F0008A8 3C018003 */ lui $at, %hi(D_8003099C) +/* 0353DC 7F0008AC 24E78520 */ addiu $a3, %lo(0x00008520) # addiu $a3, $a3, -0x7ae0 +/* 0353E0 7F0008B0 00F02021 */ addu $a0, $a3, $s0 +/* 0353E4 7F0008B4 00002825 */ move $a1, $zero +/* 0353E8 7F0008B8 E426099C */ swc1 $f6, %lo(D_8003099C)($at) +/* 0353EC 7F0008BC 94860004 */ lhu $a2, 4($a0) +/* 0353F0 7F0008C0 AFA70030 */ sw $a3, 0x30($sp) +/* 0353F4 7F0008C4 0FC000A4 */ jal sub_GAME_7F000290 +/* 0353F8 7F0008C8 24C6FFFF */ addiu $a2, $a2, -1 +/* 0353FC 7F0008CC 44825000 */ mtc1 $v0, $f10 +/* 035400 7F0008D0 8FA70030 */ lw $a3, 0x30($sp) +/* 035404 7F0008D4 8E500000 */ lw $s0, ($s2) +/* 035408 7F0008D8 46805220 */ cvt.s.w $f8, $f10 +/* 03540C 7F0008DC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 035410 7F0008E0 00F05821 */ addu $t3, $a3, $s0 +/* 035414 7F0008E4 956C0004 */ lhu $t4, 4($t3) +/* 035418 7F0008E8 448C9000 */ mtc1 $t4, $f18 +/* 03541C 7F0008EC 46144102 */ mul.s $f4, $f8, $f20 +/* 035420 7F0008F0 05810004 */ bgez $t4, .L7F000904 +/* 035424 7F0008F4 46809420 */ cvt.s.w $f16, $f18 +/* 035428 7F0008F8 44813000 */ mtc1 $at, $f6 +/* 03542C 7F0008FC 00000000 */ nop +/* 035430 7F000900 46068400 */ add.s $f16, $f16, $f6 +.L7F000904: +/* 035434 7F000904 46102283 */ div.s $f10, $f4, $f16 +/* 035438 7F000908 3C018003 */ lui $at, %hi(D_800309A0) +/* 03543C 7F00090C 02302021 */ addu $a0, $s1, $s0 +/* 035440 7F000910 00002825 */ move $a1, $zero +/* 035444 7F000914 E42A09A0 */ swc1 $f10, %lo(D_800309A0)($at) +/* 035448 7F000918 94860004 */ lhu $a2, 4($a0) +/* 03544C 7F00091C 0FC000A4 */ jal sub_GAME_7F000290 +/* 035450 7F000920 24C6FFFF */ addiu $a2, $a2, -1 +/* 035454 7F000924 44824000 */ mtc1 $v0, $f8 +/* 035458 7F000928 8E4D0000 */ lw $t5, ($s2) +/* 03545C 7F00092C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 035460 7F000930 468044A0 */ cvt.s.w $f18, $f8 +/* 035464 7F000934 022D7021 */ addu $t6, $s1, $t5 +/* 035468 7F000938 95CF0004 */ lhu $t7, 4($t6) +/* 03546C 7F00093C 448F2000 */ mtc1 $t7, $f4 +/* 035470 7F000940 46149182 */ mul.s $f6, $f18, $f20 +/* 035474 7F000944 05E10004 */ bgez $t7, .L7F000958 +/* 035478 7F000948 46802420 */ cvt.s.w $f16, $f4 +/* 03547C 7F00094C 44815000 */ mtc1 $at, $f10 +/* 035480 7F000950 00000000 */ nop +/* 035484 7F000954 460A8400 */ add.s $f16, $f16, $f10 +.L7F000958: +/* 035488 7F000958 46103203 */ div.s $f8, $f6, $f16 +/* 03548C 7F00095C 8FBF002C */ lw $ra, 0x2c($sp) +/* 035490 7F000960 3C018003 */ lui $at, %hi(D_800309A4) +/* 035494 7F000964 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 035498 7F000968 8FB00020 */ lw $s0, 0x20($sp) +/* 03549C 7F00096C 8FB10024 */ lw $s1, 0x24($sp) +/* 0354A0 7F000970 8FB20028 */ lw $s2, 0x28($sp) +/* 0354A4 7F000974 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0354A8 7F000978 03E00008 */ jr $ra +/* 0354AC 7F00097C E42809A4 */ swc1 $f8, %lo(D_800309A4)($at) +) +#endif + + + +void sub_GAME_7F000980(void) { + sub_GAME_7F0009A0(); +} + + +extern char dword_CODE_bss_80075DC8[20][160]; // TODO: This seems like an array of 20 of these. Fix the other files? (Aliasing violation) + +void sub_GAME_7F0009A0(void) { + u32 *end = &dword_CODE_bss_80075DC8[20]; + u32 *ptr = &dword_CODE_bss_80075DC8[0]; + while(end > ptr) { + ptr[39] = 0; + ptr += 0x28; + } +} diff --git a/src/game/initactorpropstuff.h b/src/game/initactorpropstuff.h new file mode 100644 index 0000000..f82ce23 --- /dev/null +++ b/src/game/initactorpropstuff.h @@ -0,0 +1,8 @@ +#ifndef _INITACTORPROPSTUFF_H_ +#define _INITACTORPROPSTUFF_H_ + +#include "ultra64.h" + +void sub_GAME_7F0009A0(void); + +#endif diff --git a/src/game/initanitable.c b/src/game/initanitable.c new file mode 100644 index 0000000..6b9ccbf --- /dev/null +++ b/src/game/initanitable.c @@ -0,0 +1,164 @@ +#include "ultra64.h" + + +//bss +char dword_CODE_bss_80069170[0x2D0]; +OSMesgQueue animMsgQ; +char dword_CODE_bss_80069458[0xC0]; +OSMesg animMesg[8]; +s32 *ptr_animation_table; + + +//data +void * D_80029D60[] = {NULL, &dword_CODE_bss_80069170, &dword_CODE_bss_80069170}; + +s32 animation_table_ptrs1[] = { + 0x1C, 0x144, 0x214, 0x318, 0x3C4, 0x610, 0x814, 0x990, 0xB84, 0xDB4, + 0x1028, 0x1334, 0x1578, 0x17B4, 0x186C, 0x1984, 0x1A6C, 0x1B54, 0x1C9C, + 0x1E40, 0x1F84, 0x2134, 0x282C, 0x299C, 0x2E64, 0x2F94, 0x30B8, 0x31DC, + 0x32C8, 0x33AC, 0x34D4, 0x35C8, 0x36D8, 0x384C, 0x39C0, 0x3AF0, 0x3C10, + 0x3D04, 0x3D9C, 0x3FA0, 0x4018, 0x4070, 0x40D4, 0x4144, 0x4298, 0x42C8, + 0x4384, 0x4504, 0x4574, 0x45CC, 1, 1, 0x47BC, 0x4A40, 0x4CE0, 0x4F14, + 0x51C4, 0x540C, 0x54A0, 0x5554, 0x5684, 0x5744, 0x5964, 0x5D10, 0x5EF0, + 0x60D4, 0x6254, 0x637C, 0x6484, 0x6554, 0x6644, 0x6738, 0x6808, 0x694C, + 0x6A18, 0x6C18, 0x6D50, 0x6F08, 0x700C, 0x71D0, 0x7304, 0x7430, 0x74A4, + 0x7514, 0x7588, 0x75EC, 0x7650, 0x76B8, 0x7714, 0x777C, 0x77D4, 1, 1, + 1, 1, 1, 1, 0x78C8, 0x7AA8, 0x7C4C, 0x7D04, 0x7DD8, 0x7F0C, 0x7FB4, 0x8080, + 0x8164, 0x8194, 0x8204, 0x8274, 0x82E0, 0x8340, 0x83A4, 0x8404, 0x845C, + 0x84C4, 0x8520, 0x8698, 0x8800, 0x8978, 0x8AAC, 0x8BF0, 0x8D28, 0x8E1C, + 0x8F2C, 0x9084, 0x9194, 0x92EC, 0x9444, 0x95FC, 0x97BC, 0x98C8, 0x9A2C, + 0x9B48, 0x9C4C, 0x9D5C, 0x9E44, 0x9F48, 0xA094, 0xA1B8, 0xA2F8, 0xA424, + 0xA538, 0xA650, 1, 1, 1, 1, 0xA6B0, 0xA704, 0xA8BC, 0xA94C, 0xA9DC, 0xACAC, + 0xB174, 0xB2AC, 0xB528, 0xB6B0, 0xB7C8, 0xB854, 0xB9A8, 0xBC40, 0xBF80, + 0xC224, 0xC410, 0xC544, 0xC838, 0xCB78, 0xCE6C, 0xD0A8, 1, 0xD348, 0xD54C, + 0xD5E4, 0xD668, 0xD6F8, 0xD728, 0xD89C, 0xDBE4, 0xDD20, 0xE05C, 0xE08C, + 0xE0BC, 0xE18C, 0 }; + +s32 animation_table_ptrs2[] = { 0xE470, 0xE5F4, 0xE7C0, 0 }; + + +#ifdef NONMATCHING +void expand_ani_table_entries(void) { + +} +#else +GLOBAL_ASM( +.text +glabel expand_ani_table_entries +/* 035530 7F000A00 8C830000 */ lw $v1, ($a0) +/* 035534 7F000A04 3C068007 */ lui $a2, %hi(ptr_animation_table) +/* 035538 7F000A08 00801025 */ move $v0, $a0 +/* 03553C 7F000A0C 10600017 */ beqz $v1, .L7F000A6C +/* 035540 7F000A10 24C69538 */ addiu $a2, %lo(ptr_animation_table) # addiu $a2, $a2, -0x6ac8 +/* 035544 7F000A14 8C830000 */ lw $v1, ($a0) +/* 035548 7F000A18 24050001 */ li $a1, 1 +.L7F000A1C: +/* 03554C 7F000A1C 50A3000E */ beql $a1, $v1, .L7F000A58 +/* 035550 7F000A20 8C430004 */ lw $v1, 4($v0) +/* 035554 7F000A24 8CCE0000 */ lw $t6, ($a2) +/* 035558 7F000A28 006E7821 */ addu $t7, $v1, $t6 +/* 03555C 7F000A2C AC4F0000 */ sw $t7, ($v0) +/* 035560 7F000A30 8CD90000 */ lw $t9, ($a2) +/* 035564 7F000A34 8DF80008 */ lw $t8, 8($t7) +/* 035568 7F000A38 03194021 */ addu $t0, $t8, $t9 +/* 03556C 7F000A3C ADE80008 */ sw $t0, 8($t7) +/* 035570 7F000A40 8C430000 */ lw $v1, ($v0) +/* 035574 7F000A44 8CCA0000 */ lw $t2, ($a2) +/* 035578 7F000A48 8C690010 */ lw $t1, 0x10($v1) +/* 03557C 7F000A4C 012A5821 */ addu $t3, $t1, $t2 +/* 035580 7F000A50 AC6B0010 */ sw $t3, 0x10($v1) +/* 035584 7F000A54 8C430004 */ lw $v1, 4($v0) +.L7F000A58: +/* 035588 7F000A58 24420004 */ addiu $v0, $v0, 4 +/* 03558C 7F000A5C 1460FFEF */ bnez $v1, .L7F000A1C +/* 035590 7F000A60 00000000 */ nop +/* 035594 7F000A64 00801025 */ move $v0, $a0 +/* 035598 7F000A68 8C830000 */ lw $v1, ($a0) +.L7F000A6C: +/* 03559C 7F000A6C 1060000D */ beqz $v1, .L7F000AA4 +/* 0355A0 7F000A70 24050001 */ li $a1, 1 +/* 0355A4 7F000A74 3C040012 */ lui $a0, %hi(_animation_tableSegmentRomStart) # $a0, 0x12 +/* 0355A8 7F000A78 24844AC0 */ addiu $a0, %lo(_animation_tableSegmentRomStart) # addiu $a0, $a0, 0x4ac0 +/* 0355AC 7F000A7C 8C430000 */ lw $v1, ($v0) +.L7F000A80: +/* 0355B0 7F000A80 50A30005 */ beql $a1, $v1, .L7F000A98 +/* 0355B4 7F000A84 8C430004 */ lw $v1, 4($v0) +/* 0355B8 7F000A88 8C6C0000 */ lw $t4, ($v1) +/* 0355BC 7F000A8C 01846821 */ addu $t5, $t4, $a0 +/* 0355C0 7F000A90 AC6D0000 */ sw $t5, ($v1) +/* 0355C4 7F000A94 8C430004 */ lw $v1, 4($v0) +.L7F000A98: +/* 0355C8 7F000A98 24420004 */ addiu $v0, $v0, 4 +/* 0355CC 7F000A9C 1460FFF8 */ bnez $v1, .L7F000A80 +/* 0355D0 7F000AA0 00000000 */ nop +.L7F000AA4: +/* 0355D4 7F000AA4 03E00008 */ jr $ra +/* 0355D8 7F000AA8 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void alloc_load_expand_ani_table(void) { + s32 temp_a2; + ? temp_ret; + + // Node 0 + osCreateMesgQueue(&animMsgQ, &animMesg, 8); + sub_GAME_7F0009E0(&D_80029D60, &animMsgQ, &dword_CODE_bss_80069458); + temp_a2 = (&0x0000E7E0 - 0); + temp_ret = mempAllocBytesInBank(temp_a2, 6, temp_a2); + ptr_animation_table = temp_ret; + romCopy(temp_ret, &_animation_dataSegmentRomStart, sp18); + expand_ani_table_entries(&animation_table_ptrs1); + expand_ani_table_entries(&animation_table_ptrs2); +} +#else +GLOBAL_ASM( +.text +glabel alloc_load_expand_ani_table +/* 0355DC 7F000AAC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0355E0 7F000AB0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0355E4 7F000AB4 3C048007 */ lui $a0, %hi(animMsgQ) +/* 0355E8 7F000AB8 3C058007 */ lui $a1, %hi(animMesg) +/* 0355EC 7F000ABC 24A59518 */ addiu $a1, %lo(animMesg) # addiu $a1, $a1, -0x6ae8 +/* 0355F0 7F000AC0 24849440 */ addiu $a0, %lo(animMsgQ) # addiu $a0, $a0, -0x6bc0 +/* 0355F4 7F000AC4 0C0035B4 */ jal osCreateMesgQueue +/* 0355F8 7F000AC8 24060008 */ li $a2, 8 +/* 0355FC 7F000ACC 3C048003 */ lui $a0, %hi(D_80029D60) +/* 035600 7F000AD0 3C058007 */ lui $a1, %hi(animMsgQ) +/* 035604 7F000AD4 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069458) +/* 035608 7F000AD8 24C69458 */ addiu $a2, %lo(dword_CODE_bss_80069458) # addiu $a2, $a2, -0x6ba8 +/* 03560C 7F000ADC 24A59440 */ addiu $a1, %lo(animMsgQ) # addiu $a1, $a1, -0x6bc0 +/* 035610 7F000AE0 0FC00278 */ jal sub_GAME_7F0009E0 +/* 035614 7F000AE4 24849D60 */ addiu $a0, %lo(D_80029D60) # addiu $a0, $a0, -0x62a0 +/* 035618 7F000AE8 3C0E0001 */ lui $t6, %hi(0x0000E7E0) # $t6, 1 +/* 03561C 7F000AEC 3C0F0000 */ lui $t7, 0 +/* 035620 7F000AF0 25EF0000 */ addiu $t7, $t7, 0 +/* 035624 7F000AF4 25CEE7E0 */ addiu $t6, %lo(0x0000E7E0) # addiu $t6, $t6, -0x1820 +/* 035628 7F000AF8 01CF3023 */ subu $a2, $t6, $t7 +/* 03562C 7F000AFC 00C02025 */ move $a0, $a2 +/* 035630 7F000B00 AFA60018 */ sw $a2, 0x18($sp) +/* 035634 7F000B04 0C0025C8 */ jal mempAllocBytesInBank +/* 035638 7F000B08 24050006 */ li $a1, 6 +/* 03563C 7F000B0C 3C038007 */ lui $v1, %hi(ptr_animation_table) +/* 035640 7F000B10 24639538 */ addiu $v1, %lo(ptr_animation_table) # addiu $v1, $v1, -0x6ac8 +/* 035644 7F000B14 3C050029 */ lui $a1, %hi(_animation_dataSegmentRomStart) # $a1, 0x29 +/* 035648 7F000B18 AC620000 */ sw $v0, ($v1) +/* 03564C 7F000B1C 8FA60018 */ lw $a2, 0x18($sp) +/* 035650 7F000B20 24A5E980 */ addiu $a1, %lo(_animation_dataSegmentRomStart) # addiu $a1, $a1, -0x1680 +/* 035654 7F000B24 0C001707 */ jal romCopy +/* 035658 7F000B28 00402025 */ move $a0, $v0 +/* 03565C 7F000B2C 3C048003 */ lui $a0, %hi(animation_table_ptrs1) +/* 035660 7F000B30 0FC00280 */ jal expand_ani_table_entries +/* 035664 7F000B34 24849D6C */ addiu $a0, %lo(animation_table_ptrs1) # addiu $a0, $a0, -0x6294 +/* 035668 7F000B38 3C048003 */ lui $a0, %hi(animation_table_ptrs2) +/* 03566C 7F000B3C 0FC00280 */ jal expand_ani_table_entries +/* 035670 7F000B40 2484A04C */ addiu $a0, %lo(animation_table_ptrs2) # addiu $a0, $a0, -0x5fb4 +/* 035674 7F000B44 8FBF0014 */ lw $ra, 0x14($sp) +/* 035678 7F000B48 27BD0020 */ addiu $sp, $sp, 0x20 +/* 03567C 7F000B4C 03E00008 */ jr $ra +/* 035680 7F000B50 00000000 */ nop +) +#endif + diff --git a/src/game/initcameraandthrown.c b/src/game/initcameraandthrown.c new file mode 100644 index 0000000..0259153 --- /dev/null +++ b/src/game/initcameraandthrown.c @@ -0,0 +1,1632 @@ +#include "ultra64.h" + + + +// data +//D:8002A780 +u32 D_8002A780 = 0; +//D:8002A784 +u32 D_8002A784 = 0; +//D:8002A788 +u32 D_8002A788 = 0; + + + + + + +#ifdef NONMATCHING +void set_weapon_model_generated_thrown_object(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +.text +glabel set_weapon_model_generated_thrown_object +/* 03A240 7F005710 248EFFFD */ addiu $t6, $a0, -3 +/* 03A244 7F005714 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03A248 7F005718 2DC1002E */ sltiu $at, $t6, 0x2e +/* 03A24C 7F00571C AFBF0014 */ sw $ra, 0x14($sp) +/* 03A250 7F005720 1020001E */ beqz $at, .L7F00579C +/* 03A254 7F005724 2405FFFF */ li $a1, -1 +/* 03A258 7F005728 000E7080 */ sll $t6, $t6, 2 +/* 03A25C 7F00572C 3C018005 */ lui $at, %hi(projectile_ptr_table) +/* 03A260 7F005730 002E0821 */ addu $at, $at, $t6 +/* 03A264 7F005734 8C2EF0F0 */ lw $t6, %lo(projectile_ptr_table)($at) +/* 03A268 7F005738 01C00008 */ jr $t6 +/* 03A26C 7F00573C 00000000 */ nop +throwingknife: +/* 03A270 7F005740 10000016 */ b .L7F00579C +/* 03A274 7F005744 240500BA */ li $a1, 186 +grenade_launch_round: +/* 03A278 7F005748 10000014 */ b .L7F00579C +/* 03A27C 7F00574C 240500CB */ li $a1, 203 +rocket: +/* 03A280 7F005750 10000012 */ b .L7F00579C +/* 03A284 7F005754 240500CA */ li $a1, 202 +grenade: +/* 03A288 7F005758 10000010 */ b .L7F00579C +/* 03A28C 7F00575C 240500C4 */ li $a1, 196 +timed_mine: +/* 03A290 7F005760 1000000E */ b .L7F00579C +/* 03A294 7F005764 240500C9 */ li $a1, 201 +prox_mine: +/* 03A298 7F005768 1000000C */ b .L7F00579C +/* 03A29C 7F00576C 240500C8 */ li $a1, 200 +remote_mine: +/* 03A2A0 7F005770 1000000A */ b .L7F00579C +/* 03A2A4 7F005774 240500C7 */ li $a1, 199 +rocket_0: +/* 03A2A8 7F005778 10000008 */ b .L7F00579C +/* 03A2AC 7F00577C 240500CA */ li $a1, 202 +bombcase: +/* 03A2B0 7F005780 10000006 */ b .L7F00579C +/* 03A2B4 7F005784 240500E2 */ li $a1, 226 +plastique: +/* 03A2B8 7F005788 10000004 */ b .L7F00579C +/* 03A2BC 7F00578C 24050111 */ li $a1, 273 +bug: +/* 03A2C0 7F005790 10000002 */ b .L7F00579C +/* 03A2C4 7F005794 240500F5 */ li $a1, 245 +microcamera: +/* 03A2C8 7F005798 240500F6 */ li $a1, 246 +default: +.L7F00579C: +/* 03A2CC 7F00579C 04A00005 */ bltz $a1, .L7F0057B4 +/* 03A2D0 7F0057A0 00001025 */ move $v0, $zero +/* 03A2D4 7F0057A4 0FC15B0E */ jal load_model +/* 03A2D8 7F0057A8 00A02025 */ move $a0, $a1 +/* 03A2DC 7F0057AC 10000002 */ b .L7F0057B8 +/* 03A2E0 7F0057B0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0057B4: +/* 03A2E4 7F0057B4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0057B8: +/* 03A2E8 7F0057B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03A2EC 7F0057BC 03E00008 */ jr $ra +/* 03A2F0 7F0057C0 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void load_camera_intro_type_values(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel projectile_ptr_table +.word throwingknife +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word grenade_launch_round +.word rocket +.word grenade +.word timed_mine +.word prox_mine +.word remote_mine +.word default +.word default +.word rocket_0 +.word bombcase +.word plastique +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word bug +.word microcamera + + +/*8004f1a8*/ +glabel default_zoom_speed +.word 0x3f68ba2e + +glabel jpt_8004F1AC + .word spawn_point + .word weapon + .word ammo + .word swirling_intro_cam + .word intro_ani + .word cuff_char + .word fixed_cam + .word watch_time + .word credits + +glabel D_8004F1D0 +.word 0xb8d1b717 +glabel D_8004F1D4 +.word 0x40c90fdb +glabel D_8004F1D8 +.word 0x40c90fdb +glabel D_8004F1DC +.word 0x3e2e147c +glabel D_8004F1E0 +.word 0x3dccccd0 +.text +glabel load_camera_intro_type_values +/* 03A2F4 7F0057C4 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 03A2F8 7F0057C8 3C0F8003 */ lui $t7, %hi(D_8002A780) +/* 03A2FC 7F0057CC AFBF0034 */ sw $ra, 0x34($sp) +/* 03A300 7F0057D0 AFB20030 */ sw $s2, 0x30($sp) +/* 03A304 7F0057D4 AFB1002C */ sw $s1, 0x2c($sp) +/* 03A308 7F0057D8 AFB00028 */ sw $s0, 0x28($sp) +/* 03A30C 7F0057DC F7B60020 */ sdc1 $f22, 0x20($sp) +/* 03A310 7F0057E0 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 03A314 7F0057E4 25EFA780 */ addiu $t7, %lo(D_8002A780) # addiu $t7, $t7, -0x5880 +/* 03A318 7F0057E8 8DE10000 */ lw $at, ($t7) +/* 03A31C 7F0057EC 27AE008C */ addiu $t6, $sp, 0x8c +/* 03A320 7F0057F0 8DE80004 */ lw $t0, 4($t7) +/* 03A324 7F0057F4 ADC10000 */ sw $at, ($t6) +/* 03A328 7F0057F8 8DE10008 */ lw $at, 8($t7) +/* 03A32C 7F0057FC ADC80004 */ sw $t0, 4($t6) +/* 03A330 7F005800 3C118003 */ lui $s1, %hi(resolution) +/* 03A334 7F005804 ADC10008 */ sw $at, 8($t6) +/* 03A338 7F005808 3C018003 */ lui $at, %hi(mission_kia_flag) +/* 03A33C 7F00580C AC20A928 */ sw $zero, %lo(mission_kia_flag)($at) +/* 03A340 7F005810 3C018003 */ lui $at, %hi(camera_80036424) +/* 03A344 7F005814 3C108007 */ lui $s0, %hi(ptr_setup_intro) +/* 03A348 7F005818 AC206424 */ sw $zero, %lo(camera_80036424)($at) +/* 03A34C 7F00581C 26316428 */ addiu $s1, %lo(resolution) # addiu $s1, $s1, 0x6428 +/* 03A350 7F005820 8E105D08 */ lw $s0, %lo(ptr_setup_intro)($s0) +/* 03A354 7F005824 AE200000 */ sw $zero, ($s1) +/* 03A358 7F005828 3C018003 */ lui $at, %hi(camera_8003642C) +/* 03A35C 7F00582C 3C128003 */ lui $s2, %hi(camera_80036430) +/* 03A360 7F005830 AC20642C */ sw $zero, %lo(camera_8003642C)($at) +/* 03A364 7F005834 44802000 */ mtc1 $zero, $f4 +/* 03A368 7F005838 26526430 */ addiu $s2, %lo(camera_80036430) # addiu $s2, $s2, 0x6430 +/* 03A36C 7F00583C AE400000 */ sw $zero, ($s2) +/* 03A370 7F005840 3C018003 */ lui $at, %hi(camera_80036434) +/* 03A374 7F005844 AFA0007C */ sw $zero, 0x7c($sp) +/* 03A378 7F005848 AC206434 */ sw $zero, %lo(camera_80036434)($at) +/* 03A37C 7F00584C 0C001A57 */ jal get_stage_num +/* 03A380 7F005850 E7A40088 */ swc1 $f4, 0x88($sp) +/* 03A384 7F005854 24010036 */ li $at, 54 +/* 03A388 7F005858 1441000B */ bne $v0, $at, .L7F005888 +/* 03A38C 7F00585C 3C040004 */ lui $a0, (0x00046EA0 >> 16) # lui $a0, 4 +/* 03A390 7F005860 34846EA0 */ ori $a0, (0x00046EA0 & 0xFFFF) # ori $a0, $a0, 0x6ea0 +/* 03A394 7F005864 0C0025C8 */ jal mempAllocBytesInBank +/* 03A398 7F005868 24050004 */ li $a1, 4 +/* 03A39C 7F00586C 244A003F */ addiu $t2, $v0, 0x3f +/* 03A3A0 7F005870 2401FFC0 */ li $at, -64 +/* 03A3A4 7F005874 AE220000 */ sw $v0, ($s1) +/* 03A3A8 7F005878 01415824 */ and $t3, $t2, $at +/* 03A3AC 7F00587C 240C0001 */ li $t4, 1 +/* 03A3B0 7F005880 AE2B0000 */ sw $t3, ($s1) +/* 03A3B4 7F005884 AE4C0000 */ sw $t4, ($s2) +.L7F005888: +/* 03A3B8 7F005888 3C018003 */ lui $at, %hi(camera_80036438) +/* 03A3BC 7F00588C AC206438 */ sw $zero, %lo(camera_80036438)($at) +/* 03A3C0 7F005890 3C018003 */ lui $at, %hi(D_8003643C) +/* 03A3C4 7F005894 AC20643C */ sw $zero, %lo(D_8003643C)($at) +/* 03A3C8 7F005898 3C018003 */ lui $at, %hi(D_80036440) +/* 03A3CC 7F00589C 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079990) +/* 03A3D0 7F0058A0 AC206440 */ sw $zero, %lo(D_80036440)($at) +/* 03A3D4 7F0058A4 44803000 */ mtc1 $zero, $f6 +/* 03A3D8 7F0058A8 44804000 */ mtc1 $zero, $f8 +/* 03A3DC 7F0058AC 44805000 */ mtc1 $zero, $f10 +/* 03A3E0 7F0058B0 24429990 */ addiu $v0, %lo(flt_CODE_bss_80079990) # addiu $v0, $v0, -0x6670 +/* 03A3E4 7F0058B4 3C018003 */ lui $at, %hi(D_80036444) +/* 03A3E8 7F0058B8 E4460000 */ swc1 $f6, ($v0) +/* 03A3EC 7F0058BC E4480004 */ swc1 $f8, 4($v0) +/* 03A3F0 7F0058C0 E44A0008 */ swc1 $f10, 8($v0) +/* 03A3F4 7F0058C4 AC206444 */ sw $zero, %lo(D_80036444)($at) +/* 03A3F8 7F0058C8 3C018008 */ lui $at, %hi(dword_CODE_bss_80079C68) +/* 03A3FC 7F0058CC AC209C68 */ sw $zero, %lo(dword_CODE_bss_80079C68)($at) +/* 03A400 7F0058D0 3C018003 */ lui $at, %hi(in_tank_flag) +/* 03A404 7F0058D4 AC206448 */ sw $zero, %lo(in_tank_flag)($at) +/* 03A408 7F0058D8 3C018003 */ lui $at, %hi(D_8003644C) +/* 03A40C 7F0058DC AC20644C */ sw $zero, %lo(D_8003644C)($at) +/* 03A410 7F0058E0 44808000 */ mtc1 $zero, $f16 +/* 03A414 7F0058E4 3C018003 */ lui $at, %hi(ptr_playerstank) +/* 03A418 7F0058E8 AC206450 */ sw $zero, %lo(ptr_playerstank)($at) +/* 03A41C 7F0058EC 3C018003 */ lui $at, %hi(D_80036454) +/* 03A420 7F0058F0 3C038003 */ lui $v1, %hi(SFX_80036458) +/* 03A424 7F0058F4 E4306454 */ swc1 $f16, %lo(D_80036454)($at) +/* 03A428 7F0058F8 44809000 */ mtc1 $zero, $f18 +/* 03A42C 7F0058FC 24636458 */ addiu $v1, %lo(SFX_80036458) # addiu $v1, $v1, 0x6458 +/* 03A430 7F005900 44802000 */ mtc1 $zero, $f4 +/* 03A434 7F005904 AC600000 */ sw $zero, ($v1) +/* 03A438 7F005908 AC600004 */ sw $zero, 4($v1) +/* 03A43C 7F00590C 3C018003 */ lui $at, %hi(D_80036460) +/* 03A440 7F005910 E4326460 */ swc1 $f18, %lo(D_80036460)($at) +/* 03A444 7F005914 44803000 */ mtc1 $zero, $f6 +/* 03A448 7F005918 3C018003 */ lui $at, %hi(D_80036464) +/* 03A44C 7F00591C E4246464 */ swc1 $f4, %lo(D_80036464)($at) +/* 03A450 7F005920 44804000 */ mtc1 $zero, $f8 +/* 03A454 7F005924 3C018003 */ lui $at, %hi(D_80036468) +/* 03A458 7F005928 E4266468 */ swc1 $f6, %lo(D_80036468)($at) +/* 03A45C 7F00592C 44805000 */ mtc1 $zero, $f10 +/* 03A460 7F005930 3C018003 */ lui $at, %hi(D_8003646C) +/* 03A464 7F005934 E428646C */ swc1 $f8, %lo(D_8003646C)($at) +/* 03A468 7F005938 44808000 */ mtc1 $zero, $f16 +/* 03A46C 7F00593C 3C018003 */ lui $at, %hi(D_80036470) +/* 03A470 7F005940 E42A6470 */ swc1 $f10, %lo(D_80036470)($at) +/* 03A474 7F005944 44809000 */ mtc1 $zero, $f18 +/* 03A478 7F005948 3C018003 */ lui $at, %hi(D_80036474) +/* 03A47C 7F00594C E4306474 */ swc1 $f16, %lo(D_80036474)($at) +/* 03A480 7F005950 44802000 */ mtc1 $zero, $f4 +/* 03A484 7F005954 3C018003 */ lui $at, %hi(D_80036478) +/* 03A488 7F005958 E4326478 */ swc1 $f18, %lo(D_80036478)($at) +/* 03A48C 7F00595C 3C018003 */ lui $at, %hi(D_8003647C) +/* 03A490 7F005960 E424647C */ swc1 $f4, %lo(D_8003647C)($at) +/* 03A494 7F005964 44803000 */ mtc1 $zero, $f6 +/* 03A498 7F005968 3C018003 */ lui $at, %hi(D_80036480) +/* 03A49C 7F00596C AC206480 */ sw $zero, %lo(D_80036480)($at) +/* 03A4A0 7F005970 44804000 */ mtc1 $zero, $f8 +/* 03A4A4 7F005974 3C018003 */ lui $at, %hi(D_80036484) +/* 03A4A8 7F005978 E4266484 */ swc1 $f6, %lo(D_80036484)($at) +/* 03A4AC 7F00597C 3C018003 */ lui $at, %hi(D_80036488) +/* 03A4B0 7F005980 E4286488 */ swc1 $f8, %lo(D_80036488)($at) +/* 03A4B4 7F005984 3C018003 */ lui $at, %hi(D_8003648C) +/* 03A4B8 7F005988 AC20648C */ sw $zero, %lo(D_8003648C)($at) +/* 03A4BC 7F00598C 3C018003 */ lui $at, %hi(D_800364B0) +/* 03A4C0 7F005990 240D0001 */ li $t5, 1 +/* 03A4C4 7F005994 AC2D64B0 */ sw $t5, %lo(D_800364B0)($at) +/* 03A4C8 7F005998 3C018003 */ lui $at, %hi(disable_player_pickups_flag) +/* 03A4CC 7F00599C AC2064B4 */ sw $zero, %lo(disable_player_pickups_flag)($at) +/* 03A4D0 7F0059A0 3C018003 */ lui $at, %hi(cameramode) +/* 03A4D4 7F0059A4 AC206494 */ sw $zero, %lo(cameramode)($at) +/* 03A4D8 7F0059A8 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 03A4DC 7F0059AC AC206498 */ sw $zero, %lo(enable_move_after_cinema)($at) +/* 03A4E0 7F0059B0 3C018003 */ lui $at, %hi(D_8003649C) +/* 03A4E4 7F0059B4 AC20649C */ sw $zero, %lo(D_8003649C)($at) +/* 03A4E8 7F0059B8 44805000 */ mtc1 $zero, $f10 +/* 03A4EC 7F0059BC 3C018003 */ lui $at, %hi(stop_time_flag) +/* 03A4F0 7F0059C0 AC2064A0 */ sw $zero, %lo(stop_time_flag)($at) +/* 03A4F4 7F0059C4 3C018003 */ lui $at, %hi(D_800364A4) +/* 03A4F8 7F0059C8 E42A64A4 */ swc1 $f10, %lo(D_800364A4)($at) +/* 03A4FC 7F0059CC 3C018003 */ lui $at, %hi(D_800364A8) +/* 03A500 7F0059D0 24190001 */ li $t9, 1 +/* 03A504 7F0059D4 AC3964A8 */ sw $t9, %lo(D_800364A8)($at) +/* 03A508 7F0059D8 3C018003 */ lui $at, %hi(D_800364AC) +/* 03A50C 7F0059DC AC2064AC */ sw $zero, %lo(D_800364AC)($at) +/* 03A510 7F0059E0 3C018003 */ lui $at, %hi(ptr_random06cam_entry) +/* 03A514 7F0059E4 AC2064C0 */ sw $zero, %lo(ptr_random06cam_entry)($at) +/* 03A518 7F0059E8 3C018003 */ lui $at, %hi(D_800364B8) +/* 03A51C 7F0059EC AC2064B8 */ sw $zero, %lo(D_800364B8)($at) +/* 03A520 7F0059F0 3C018003 */ lui $at, %hi(D_800364BC) +/* 03A524 7F0059F4 AC2064BC */ sw $zero, %lo(D_800364BC)($at) +/* 03A528 7F0059F8 3C018008 */ lui $at, %hi(mission_timer) +/* 03A52C 7F0059FC 3C118008 */ lui $s1, %hi(watch_time_0) +/* 03A530 7F005A00 AC209A20 */ sw $zero, %lo(mission_timer)($at) +/* 03A534 7F005A04 26319A24 */ addiu $s1, %lo(watch_time_0) # addiu $s1, $s1, -0x65dc +/* 03A538 7F005A08 AE200000 */ sw $zero, ($s1) +/* 03A53C 7F005A0C 3C018003 */ lui $at, %hi(D_80036514) +/* 03A540 7F005A10 AC206514 */ sw $zero, %lo(D_80036514)($at) +/* 03A544 7F005A14 3C018005 */ lui $at, %hi(default_zoom_speed) +/* 03A548 7F005A18 C430F1A8 */ lwc1 $f16, %lo(default_zoom_speed)($at) +/* 03A54C 7F005A1C 3C018003 */ lui $at, %hi(watch_transition_time) +/* 03A550 7F005A20 E43065A8 */ swc1 $f16, %lo(watch_transition_time)($at) +/* 03A554 7F005A24 3C018008 */ lui $at, %hi(starting_left_weapon) +/* 03A558 7F005A28 AC2099E4 */ sw $zero, %lo(starting_left_weapon)($at) +/* 03A55C 7F005A2C 3C018008 */ lui $at, %hi(starting_right_weapon) +/* 03A560 7F005A30 120000F0 */ beqz $s0, .L7F005DF4 +/* 03A564 7F005A34 AC2099E0 */ sw $zero, %lo(starting_right_weapon)($at) +/* 03A568 7F005A38 8E020000 */ lw $v0, ($s0) +/* 03A56C 7F005A3C 24010009 */ li $at, 9 +/* 03A570 7F005A40 3C128008 */ lui $s2, %hi(pPlayer) +/* 03A574 7F005A44 104100EB */ beq $v0, $at, .L7F005DF4 +/* 03A578 7F005A48 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 03A57C 7F005A4C 4481B000 */ mtc1 $at, $f22 +/* 03A580 7F005A50 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 03A584 7F005A54 4481A000 */ mtc1 $at, $f20 +/* 03A588 7F005A58 2652A0B0 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5f50 +/* 03A58C 7F005A5C 2C410009 */ sltiu $at, $v0, 9 +.L7F005A60: +/* 03A590 7F005A60 102000DF */ beqz $at, .L7F005DE0 +/* 03A594 7F005A64 0002C080 */ sll $t8, $v0, 2 +/* 03A598 7F005A68 3C018005 */ lui $at, %hi(jpt_8004F1AC) +/* 03A59C 7F005A6C 00380821 */ addu $at, $at, $t8 +/* 03A5A0 7F005A70 8C38F1AC */ lw $t8, %lo(jpt_8004F1AC)($at) +/* 03A5A4 7F005A74 03000008 */ jr $t8 +/* 03A5A8 7F005A78 00000000 */ nop +spawn_point: +/* 03A5AC 7F005A7C 3C0E8007 */ lui $t6, %hi(ptr_0xxxpresets) +/* 03A5B0 7F005A80 8DCE5D18 */ lw $t6, %lo(ptr_0xxxpresets)($t6) +/* 03A5B4 7F005A84 11C00018 */ beqz $t6, .L7F005AE8 +/* 03A5B8 7F005A88 00000000 */ nop +/* 03A5BC 7F005A8C 0FC30288 */ jal check_ramrom_flags +/* 03A5C0 7F005A90 00000000 */ nop +/* 03A5C4 7F005A94 8E0F0008 */ lw $t7, 8($s0) +/* 03A5C8 7F005A98 3C0A8007 */ lui $t2, %hi(ptr_0xxxpresets) +/* 03A5CC 7F005A9C 3C018008 */ lui $at, %hi(dword_CODE_bss_80079C28) +/* 03A5D0 7F005AA0 144F0011 */ bne $v0, $t7, .L7F005AE8 +/* 03A5D4 7F005AA4 00000000 */ nop +/* 03A5D8 7F005AA8 8E080004 */ lw $t0, 4($s0) +/* 03A5DC 7F005AAC 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079C68) +/* 03A5E0 7F005AB0 8C429C68 */ lw $v0, %lo(dword_CODE_bss_80079C68)($v0) +/* 03A5E4 7F005AB4 00084880 */ sll $t1, $t0, 2 +/* 03A5E8 7F005AB8 01284823 */ subu $t1, $t1, $t0 +/* 03A5EC 7F005ABC 8D4A5D18 */ lw $t2, %lo(ptr_0xxxpresets)($t2) +/* 03A5F0 7F005AC0 00094880 */ sll $t1, $t1, 2 +/* 03A5F4 7F005AC4 01284823 */ subu $t1, $t1, $t0 +/* 03A5F8 7F005AC8 00094880 */ sll $t1, $t1, 2 +/* 03A5FC 7F005ACC 00026080 */ sll $t4, $v0, 2 +/* 03A600 7F005AD0 002C0821 */ addu $at, $at, $t4 +/* 03A604 7F005AD4 012A5821 */ addu $t3, $t1, $t2 +/* 03A608 7F005AD8 AC2B9C28 */ sw $t3, %lo(dword_CODE_bss_80079C28)($at) +/* 03A60C 7F005ADC 3C018008 */ lui $at, %hi(dword_CODE_bss_80079C68) +/* 03A610 7F005AE0 244D0001 */ addiu $t5, $v0, 1 +/* 03A614 7F005AE4 AC2D9C68 */ sw $t5, %lo(dword_CODE_bss_80079C68)($at) +.L7F005AE8: +/* 03A618 7F005AE8 100000BE */ b .L7F005DE4 +/* 03A61C 7F005AEC 2610000C */ addiu $s0, $s0, 0xc +weapon: +/* 03A620 7F005AF0 0FC30288 */ jal check_ramrom_flags +/* 03A624 7F005AF4 00000000 */ nop +/* 03A628 7F005AF8 8E19000C */ lw $t9, 0xc($s0) +/* 03A62C 7F005AFC 1459001C */ bne $v0, $t9, .L7F005B70 +/* 03A630 7F005B00 00000000 */ nop +/* 03A634 7F005B04 0FC015C4 */ jal set_weapon_model_generated_thrown_object +/* 03A638 7F005B08 8E040004 */ lw $a0, 4($s0) +/* 03A63C 7F005B0C 8E040008 */ lw $a0, 8($s0) +/* 03A640 7F005B10 04800008 */ bltz $a0, .L7F005B34 +/* 03A644 7F005B14 00000000 */ nop +/* 03A648 7F005B18 0FC015C4 */ jal set_weapon_model_generated_thrown_object +/* 03A64C 7F005B1C 00000000 */ nop +/* 03A650 7F005B20 8E040004 */ lw $a0, 4($s0) +/* 03A654 7F005B24 0FC23143 */ jal add_doubles_item_to_inventory +/* 03A658 7F005B28 8E050008 */ lw $a1, 8($s0) +/* 03A65C 7F005B2C 10000004 */ b .L7F005B40 +/* 03A660 7F005B30 8FB8007C */ lw $t8, 0x7c($sp) +.L7F005B34: +/* 03A664 7F005B34 0FC23122 */ jal add_item_to_inventory +/* 03A668 7F005B38 8E040004 */ lw $a0, 4($s0) +/* 03A66C 7F005B3C 8FB8007C */ lw $t8, 0x7c($sp) +.L7F005B40: +/* 03A670 7F005B40 1700000B */ bnez $t8, .L7F005B70 +/* 03A674 7F005B44 00000000 */ nop +/* 03A678 7F005B48 8E0E0004 */ lw $t6, 4($s0) +/* 03A67C 7F005B4C 3C018008 */ lui $at, %hi(starting_right_weapon) +/* 03A680 7F005B50 240F0001 */ li $t7, 1 +/* 03A684 7F005B54 AC2E99E0 */ sw $t6, %lo(starting_right_weapon)($at) +/* 03A688 7F005B58 8E040008 */ lw $a0, 8($s0) +/* 03A68C 7F005B5C AFAF007C */ sw $t7, 0x7c($sp) +/* 03A690 7F005B60 3C018008 */ lui $at, %hi(starting_left_weapon) +/* 03A694 7F005B64 04800002 */ bltz $a0, .L7F005B70 +/* 03A698 7F005B68 00000000 */ nop +/* 03A69C 7F005B6C AC2499E4 */ sw $a0, %lo(starting_left_weapon)($at) +.L7F005B70: +/* 03A6A0 7F005B70 1000009C */ b .L7F005DE4 +/* 03A6A4 7F005B74 26100010 */ addiu $s0, $s0, 0x10 +ammo: +/* 03A6A8 7F005B78 0FC30288 */ jal check_ramrom_flags +/* 03A6AC 7F005B7C 00000000 */ nop +/* 03A6B0 7F005B80 8E08000C */ lw $t0, 0xc($s0) +/* 03A6B4 7F005B84 14480004 */ bne $v0, $t0, .L7F005B98 +/* 03A6B8 7F005B88 00000000 */ nop +/* 03A6BC 7F005B8C 8E040004 */ lw $a0, 4($s0) +/* 03A6C0 7F005B90 0FC1A44C */ jal give_cur_player_ammo +/* 03A6C4 7F005B94 8E050008 */ lw $a1, 8($s0) +.L7F005B98: +/* 03A6C8 7F005B98 10000092 */ b .L7F005DE4 +/* 03A6CC 7F005B9C 26100010 */ addiu $s0, $s0, 0x10 +swirling_intro_cam: +/* 03A6D0 7F005BA0 3C098003 */ lui $t1, %hi(D_800364AC) +/* 03A6D4 7F005BA4 8D2964AC */ lw $t1, %lo(D_800364AC)($t1) +/* 03A6D8 7F005BA8 02001025 */ move $v0, $s0 +/* 03A6DC 7F005BAC 3C018003 */ lui $at, %hi(D_800364AC) +/* 03A6E0 7F005BB0 55200003 */ bnezl $t1, .L7F005BC0 +/* 03A6E4 7F005BB4 8C4A0008 */ lw $t2, 8($v0) +/* 03A6E8 7F005BB8 AC3064AC */ sw $s0, %lo(D_800364AC)($at) +/* 03A6EC 7F005BBC 8C4A0008 */ lw $t2, 8($v0) +.L7F005BC0: +/* 03A6F0 7F005BC0 8C4B000C */ lw $t3, 0xc($v0) +/* 03A6F4 7F005BC4 8C4C0010 */ lw $t4, 0x10($v0) +/* 03A6F8 7F005BC8 448A9000 */ mtc1 $t2, $f18 +/* 03A6FC 7F005BCC 448B4000 */ mtc1 $t3, $f8 +/* 03A700 7F005BD0 8C4D0014 */ lw $t5, 0x14($v0) +/* 03A704 7F005BD4 46809120 */ cvt.s.w $f4, $f18 +/* 03A708 7F005BD8 448C9000 */ mtc1 $t4, $f18 +/* 03A70C 7F005BDC 8C590018 */ lw $t9, 0x18($v0) +/* 03A710 7F005BE0 26100020 */ addiu $s0, $s0, 0x20 +/* 03A714 7F005BE4 468042A0 */ cvt.s.w $f10, $f8 +/* 03A718 7F005BE8 448D4000 */ mtc1 $t5, $f8 +/* 03A71C 7F005BEC 46142183 */ div.s $f6, $f4, $f20 +/* 03A720 7F005BF0 46809120 */ cvt.s.w $f4, $f18 +/* 03A724 7F005BF4 44999000 */ mtc1 $t9, $f18 +/* 03A728 7F005BF8 46145403 */ div.s $f16, $f10, $f20 +/* 03A72C 7F005BFC E4460008 */ swc1 $f6, 8($v0) +/* 03A730 7F005C00 468042A0 */ cvt.s.w $f10, $f8 +/* 03A734 7F005C04 46142183 */ div.s $f6, $f4, $f20 +/* 03A738 7F005C08 E450000C */ swc1 $f16, 0xc($v0) +/* 03A73C 7F005C0C 46809120 */ cvt.s.w $f4, $f18 +/* 03A740 7F005C10 46145403 */ div.s $f16, $f10, $f20 +/* 03A744 7F005C14 E4460010 */ swc1 $f6, 0x10($v0) +/* 03A748 7F005C18 46142183 */ div.s $f6, $f4, $f20 +/* 03A74C 7F005C1C E4500014 */ swc1 $f16, 0x14($v0) +/* 03A750 7F005C20 10000070 */ b .L7F005DE4 +/* 03A754 7F005C24 E4460018 */ swc1 $f6, 0x18($v0) +intro_ani: +/* 03A758 7F005C28 8E180004 */ lw $t8, 4($s0) +/* 03A75C 7F005C2C 3C018003 */ lui $at, %hi(D_80036514) +/* 03A760 7F005C30 26100008 */ addiu $s0, $s0, 8 +/* 03A764 7F005C34 1000006B */ b .L7F005DE4 +/* 03A768 7F005C38 AC386514 */ sw $t8, %lo(D_80036514)($at) +cuff_char: +/* 03A76C 7F005C3C 8E0E0004 */ lw $t6, 4($s0) +/* 03A770 7F005C40 8E4F0000 */ lw $t7, ($s2) +/* 03A774 7F005C44 26100008 */ addiu $s0, $s0, 8 +/* 03A778 7F005C48 10000066 */ b .L7F005DE4 +/* 03A77C 7F005C4C ADEE041C */ sw $t6, 0x41c($t7) +fixed_cam: +/* 03A780 7F005C50 0FC26C54 */ jal get_cur_playernum +/* 03A784 7F005C54 00000000 */ nop +/* 03A788 7F005C58 1440002C */ bnez $v0, .L7F005D0C +/* 03A78C 7F005C5C 3C088003 */ lui $t0, %hi(D_800364B8) +/* 03A790 7F005C60 8D0864B8 */ lw $t0, %lo(D_800364B8)($t0) +/* 03A794 7F005C64 3C098003 */ lui $t1, %hi(D_800364BC) +/* 03A798 7F005C68 3C018003 */ lui $at, %hi(D_800364B8) +/* 03A79C 7F005C6C AE080024 */ sw $t0, 0x24($s0) +/* 03A7A0 7F005C70 8D2964BC */ lw $t1, %lo(D_800364BC)($t1) +/* 03A7A4 7F005C74 AC3064B8 */ sw $s0, %lo(D_800364B8)($at) +/* 03A7A8 7F005C78 3C018003 */ lui $at, %hi(D_800364BC) +/* 03A7AC 7F005C7C 252A0001 */ addiu $t2, $t1, 1 +/* 03A7B0 7F005C80 AC2A64BC */ sw $t2, %lo(D_800364BC)($at) +/* 03A7B4 7F005C84 8E0B0004 */ lw $t3, 4($s0) +/* 03A7B8 7F005C88 8E0C0008 */ lw $t4, 8($s0) +/* 03A7BC 7F005C8C 8E0D000C */ lw $t5, 0xc($s0) +/* 03A7C0 7F005C90 448B4000 */ mtc1 $t3, $f8 +/* 03A7C4 7F005C94 448C9000 */ mtc1 $t4, $f18 +/* 03A7C8 7F005C98 8E190010 */ lw $t9, 0x10($s0) +/* 03A7CC 7F005C9C 468042A0 */ cvt.s.w $f10, $f8 +/* 03A7D0 7F005CA0 448D4000 */ mtc1 $t5, $f8 +/* 03A7D4 7F005CA4 8E180014 */ lw $t8, 0x14($s0) +/* 03A7D8 7F005CA8 9604001E */ lhu $a0, 0x1e($s0) +/* 03A7DC 7F005CAC 46809120 */ cvt.s.w $f4, $f18 +/* 03A7E0 7F005CB0 44999000 */ mtc1 $t9, $f18 +/* 03A7E4 7F005CB4 46165403 */ div.s $f16, $f10, $f22 +/* 03A7E8 7F005CB8 468042A0 */ cvt.s.w $f10, $f8 +/* 03A7EC 7F005CBC 44984000 */ mtc1 $t8, $f8 +/* 03A7F0 7F005CC0 46162183 */ div.s $f6, $f4, $f22 +/* 03A7F4 7F005CC4 E6100004 */ swc1 $f16, 4($s0) +/* 03A7F8 7F005CC8 46809120 */ cvt.s.w $f4, $f18 +/* 03A7FC 7F005CCC 46165403 */ div.s $f16, $f10, $f22 +/* 03A800 7F005CD0 E6060008 */ swc1 $f6, 8($s0) +/* 03A804 7F005CD4 468042A0 */ cvt.s.w $f10, $f8 +/* 03A808 7F005CD8 46142183 */ div.s $f6, $f4, $f20 +/* 03A80C 7F005CDC E610000C */ swc1 $f16, 0xc($s0) +/* 03A810 7F005CE0 46145403 */ div.s $f16, $f10, $f20 +/* 03A814 7F005CE4 E6060010 */ swc1 $f6, 0x10($s0) +/* 03A818 7F005CE8 0FC30776 */ jal get_textptr_for_textID +/* 03A81C 7F005CEC E6100014 */ swc1 $f16, 0x14($s0) +/* 03A820 7F005CF0 8E030020 */ lw $v1, 0x20($s0) +/* 03A824 7F005CF4 AE02001C */ sw $v0, 0x1c($s0) +/* 03A828 7F005CF8 10600004 */ beqz $v1, .L7F005D0C +/* 03A82C 7F005CFC 00000000 */ nop +/* 03A830 7F005D00 0FC30776 */ jal get_textptr_for_textID +/* 03A834 7F005D04 3064FFFF */ andi $a0, $v1, 0xffff +/* 03A838 7F005D08 AE020020 */ sw $v0, 0x20($s0) +.L7F005D0C: +/* 03A83C 7F005D0C 10000035 */ b .L7F005DE4 +/* 03A840 7F005D10 26100028 */ addiu $s0, $s0, 0x28 +watch_time: +/* 03A844 7F005D14 AE200000 */ sw $zero, ($s1) +/* 03A848 7F005D18 8E040008 */ lw $a0, 8($s0) +/* 03A84C 7F005D1C 2401003C */ li $at, 60 +/* 03A850 7F005D20 5880000B */ blezl $a0, .L7F005D50 +/* 03A854 7F005D24 8E020004 */ lw $v0, 4($s0) +/* 03A858 7F005D28 0081001A */ div $zero, $a0, $at +/* 03A85C 7F005D2C 00007810 */ mfhi $t7 +/* 03A860 7F005D30 000F40C0 */ sll $t0, $t7, 3 +/* 03A864 7F005D34 010F4023 */ subu $t0, $t0, $t7 +/* 03A868 7F005D38 00084140 */ sll $t0, $t0, 5 +/* 03A86C 7F005D3C 010F4021 */ addu $t0, $t0, $t7 +/* 03A870 7F005D40 00084100 */ sll $t0, $t0, 4 +/* 03A874 7F005D44 3C018008 */ lui $at, %hi(watch_time_0) +/* 03A878 7F005D48 AC289A24 */ sw $t0, %lo(watch_time_0)($at) +/* 03A87C 7F005D4C 8E020004 */ lw $v0, 4($s0) +.L7F005D50: +/* 03A880 7F005D50 2401000C */ li $at, 12 +/* 03A884 7F005D54 1840000B */ blez $v0, .L7F005D84 +/* 03A888 7F005D58 00000000 */ nop +/* 03A88C 7F005D5C 0041001A */ div $zero, $v0, $at +/* 03A890 7F005D60 00005810 */ mfhi $t3 +/* 03A894 7F005D64 3C010003 */ lui $at, (0x00034BC0 >> 16) # lui $at, 3 +/* 03A898 7F005D68 34214BC0 */ ori $at, (0x00034BC0 & 0xFFFF) # ori $at, $at, 0x4bc0 +/* 03A89C 7F005D6C 01610019 */ multu $t3, $at +/* 03A8A0 7F005D70 8E2A0000 */ lw $t2, ($s1) +/* 03A8A4 7F005D74 3C018008 */ lui $at, %hi(watch_time_0) +/* 03A8A8 7F005D78 00006012 */ mflo $t4 +/* 03A8AC 7F005D7C 014C6821 */ addu $t5, $t2, $t4 +/* 03A8B0 7F005D80 AC2D9A24 */ sw $t5, %lo(watch_time_0)($at) +.L7F005D84: +/* 03A8B4 7F005D84 10000017 */ b .L7F005DE4 +/* 03A8B8 7F005D88 2610000C */ addiu $s0, $s0, 0xc +credits: +/* 03A8BC 7F005D8C 3C198007 */ lui $t9, %hi(dword_CODE_bss_80075D28) +/* 03A8C0 7F005D90 8F395D28 */ lw $t9, %lo(dword_CODE_bss_80075D28)($t9) +/* 03A8C4 7F005D94 8E180004 */ lw $t8, 4($s0) +/* 03A8C8 7F005D98 3C018003 */ lui $at, %hi(D_80036440) +/* 03A8CC 7F005D9C 03381021 */ addu $v0, $t9, $t8 +/* 03A8D0 7F005DA0 AC226440 */ sw $v0, %lo(D_80036440)($at) +/* 03A8D4 7F005DA4 944F0000 */ lhu $t7, ($v0) +/* 03A8D8 7F005DA8 55E00005 */ bnezl $t7, .L7F005DC0 +/* 03A8DC 7F005DAC 9448000C */ lhu $t0, 0xc($v0) +/* 03A8E0 7F005DB0 944E0002 */ lhu $t6, 2($v0) +/* 03A8E4 7F005DB4 11C00008 */ beqz $t6, .L7F005DD8 +/* 03A8E8 7F005DB8 00000000 */ nop +/* 03A8EC 7F005DBC 9448000C */ lhu $t0, 0xc($v0) +.L7F005DC0: +/* 03A8F0 7F005DC0 2442000C */ addiu $v0, $v0, 0xc +/* 03A8F4 7F005DC4 5500FFFE */ bnezl $t0, .L7F005DC0 +/* 03A8F8 7F005DC8 9448000C */ lhu $t0, 0xc($v0) +/* 03A8FC 7F005DCC 94490002 */ lhu $t1, 2($v0) +/* 03A900 7F005DD0 5520FFFB */ bnezl $t1, .L7F005DC0 +/* 03A904 7F005DD4 9448000C */ lhu $t0, 0xc($v0) +.L7F005DD8: +/* 03A908 7F005DD8 10000002 */ b .L7F005DE4 +/* 03A90C 7F005DDC 26100008 */ addiu $s0, $s0, 8 +def_7F005A74: +.L7F005DE0: +/* 03A910 7F005DE0 26100004 */ addiu $s0, $s0, 4 +.L7F005DE4: +/* 03A914 7F005DE4 8E020000 */ lw $v0, ($s0) +/* 03A918 7F005DE8 24010009 */ li $at, 9 +/* 03A91C 7F005DEC 5441FF1C */ bnel $v0, $at, .L7F005A60 +/* 03A920 7F005DF0 2C410009 */ sltiu $at, $v0, 9 +.L7F005DF4: +/* 03A924 7F005DF4 3C028003 */ lui $v0, %hi(D_800364B8) +/* 03A928 7F005DF8 8C4264B8 */ lw $v0, %lo(D_800364B8)($v0) +/* 03A92C 7F005DFC 3C128008 */ lui $s2, %hi(pPlayer) +/* 03A930 7F005E00 2652A0B0 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5f50 +/* 03A934 7F005E04 10400012 */ beqz $v0, .L7F005E50 +/* 03A938 7F005E08 3C018003 */ lui $at, %hi(ptr_random06cam_entry) +/* 03A93C 7F005E0C 0C002914 */ jal get_random_value +/* 03A940 7F005E10 AC2264C0 */ sw $v0, %lo(ptr_random06cam_entry)($at) +/* 03A944 7F005E14 3C0B8003 */ lui $t3, %hi(D_800364BC) +/* 03A948 7F005E18 8D6B64BC */ lw $t3, %lo(D_800364BC)($t3) +/* 03A94C 7F005E1C 004B001B */ divu $zero, $v0, $t3 +/* 03A950 7F005E20 00001810 */ mfhi $v1 +/* 03A954 7F005E24 15600002 */ bnez $t3, .L7F005E30 +/* 03A958 7F005E28 00000000 */ nop +/* 03A95C 7F005E2C 0007000D */ break 7 +.L7F005E30: +/* 03A960 7F005E30 18600007 */ blez $v1, .L7F005E50 +.L7F005E34: +/* 03A964 7F005E34 3C0A8003 */ lui $t2, %hi(ptr_random06cam_entry) +/* 03A968 7F005E38 8D4A64C0 */ lw $t2, %lo(ptr_random06cam_entry)($t2) +/* 03A96C 7F005E3C 2463FFFF */ addiu $v1, $v1, -1 +/* 03A970 7F005E40 3C018003 */ lui $at, %hi(ptr_random06cam_entry) +/* 03A974 7F005E44 8D4C0024 */ lw $t4, 0x24($t2) +/* 03A978 7F005E48 1C60FFFA */ bgtz $v1, .L7F005E34 +/* 03A97C 7F005E4C AC2C64C0 */ sw $t4, %lo(ptr_random06cam_entry)($at) +.L7F005E50: +/* 03A980 7F005E50 0FC23122 */ jal add_item_to_inventory +/* 03A984 7F005E54 24040001 */ li $a0, 1 +/* 03A988 7F005E58 8FAD007C */ lw $t5, 0x7c($sp) +/* 03A98C 7F005E5C 44809000 */ mtc1 $zero, $f18 +/* 03A990 7F005E60 15A00003 */ bnez $t5, .L7F005E70 +/* 03A994 7F005E64 24190001 */ li $t9, 1 +/* 03A998 7F005E68 3C018008 */ lui $at, %hi(starting_right_weapon) +/* 03A99C 7F005E6C AC3999E0 */ sw $t9, %lo(starting_right_weapon)($at) +.L7F005E70: +/* 03A9A0 7F005E70 8E580000 */ lw $t8, ($s2) +/* 03A9A4 7F005E74 3C018005 */ lui $at, %hi(D_8004F1D0) +/* 03A9A8 7F005E78 44803000 */ mtc1 $zero, $f6 +/* 03A9AC 7F005E7C E7120078 */ swc1 $f18, 0x78($t8) +/* 03A9B0 7F005E80 8E4F0000 */ lw $t7, ($s2) +/* 03A9B4 7F005E84 C424F1D0 */ lwc1 $f4, %lo(D_8004F1D0)($at) +/* 03A9B8 7F005E88 3C088008 */ lui $t0, %hi(dword_CODE_bss_80079C68) +/* 03A9BC 7F005E8C E5E4007C */ swc1 $f4, 0x7c($t7) +/* 03A9C0 7F005E90 8E4E0000 */ lw $t6, ($s2) +/* 03A9C4 7F005E94 E5C60080 */ swc1 $f6, 0x80($t6) +/* 03A9C8 7F005E98 8D089C68 */ lw $t0, %lo(dword_CODE_bss_80079C68)($t0) +/* 03A9CC 7F005E9C 5900002C */ blezl $t0, .L7F005F50 +/* 03A9D0 7F005EA0 27A4008C */ addiu $a0, $sp, 0x8c +/* 03A9D4 7F005EA4 0FC26919 */ jal get_num_players +/* 03A9D8 7F005EA8 00000000 */ nop +/* 03A9DC 7F005EAC 28410002 */ slti $at, $v0, 2 +/* 03A9E0 7F005EB0 14200008 */ bnez $at, .L7F005ED4 +/* 03A9E4 7F005EB4 3C098008 */ lui $t1, %hi(dword_CODE_bss_80079C68) +/* 03A9E8 7F005EB8 8D299C68 */ lw $t1, %lo(dword_CODE_bss_80079C68)($t1) +/* 03A9EC 7F005EBC 59200006 */ blezl $t1, .L7F005ED8 +/* 03A9F0 7F005EC0 00001825 */ move $v1, $zero +/* 03A9F4 7F005EC4 0FC1E43C */ jal sub_GAME_7F0790F0 +/* 03A9F8 7F005EC8 00000000 */ nop +/* 03A9FC 7F005ECC 10000002 */ b .L7F005ED8 +/* 03AA00 7F005ED0 00401825 */ move $v1, $v0 +.L7F005ED4: +/* 03AA04 7F005ED4 00001825 */ move $v1, $zero +.L7F005ED8: +/* 03AA08 7F005ED8 3C0A8008 */ lui $t2, %hi(dword_CODE_bss_80079C28) +/* 03AA0C 7F005EDC 254A9C28 */ addiu $t2, %lo(dword_CODE_bss_80079C28) # addiu $t2, $t2, -0x63d8 +/* 03AA10 7F005EE0 00035880 */ sll $t3, $v1, 2 +/* 03AA14 7F005EE4 016A8821 */ addu $s1, $t3, $t2 +/* 03AA18 7F005EE8 8E300000 */ lw $s0, ($s1) +/* 03AA1C 7F005EEC C6080000 */ lwc1 $f8, ($s0) +/* 03AA20 7F005EF0 E7A8008C */ swc1 $f8, 0x8c($sp) +/* 03AA24 7F005EF4 C60A0008 */ lwc1 $f10, 8($s0) +/* 03AA28 7F005EF8 8FA5008C */ lw $a1, 0x8c($sp) +/* 03AA2C 7F005EFC E7AA0094 */ swc1 $f10, 0x94($sp) +/* 03AA30 7F005F00 8E040028 */ lw $a0, 0x28($s0) +/* 03AA34 7F005F04 8FA60094 */ lw $a2, 0x94($sp) +/* 03AA38 7F005F08 0FC20358 */ jal sub_GAME_7F080D60 +/* 03AA3C 7F005F0C AFA40084 */ sw $a0, 0x84($sp) +/* 03AA40 7F005F10 8E420000 */ lw $v0, ($s2) +/* 03AA44 7F005F14 46000506 */ mov.s $f20, $f0 +/* 03AA48 7F005F18 C45029BC */ lwc1 $f16, 0x29bc($v0) +/* 03AA4C 7F005F1C 46008480 */ add.s $f18, $f16, $f0 +/* 03AA50 7F005F20 E7B20090 */ swc1 $f18, 0x90($sp) +/* 03AA54 7F005F24 E4400070 */ swc1 $f0, 0x70($v0) +/* 03AA58 7F005F28 8E300000 */ lw $s0, ($s1) +/* 03AA5C 7F005F2C C60C0018 */ lwc1 $f12, 0x18($s0) +/* 03AA60 7F005F30 0FC16A8C */ jal atan2f +/* 03AA64 7F005F34 C60E0020 */ lwc1 $f14, 0x20($s0) +/* 03AA68 7F005F38 3C018005 */ lui $at, %hi(D_8004F1D4) +/* 03AA6C 7F005F3C C424F1D4 */ lwc1 $f4, %lo(D_8004F1D4)($at) +/* 03AA70 7F005F40 46002181 */ sub.s $f6, $f4, $f0 +/* 03AA74 7F005F44 10000011 */ b .L7F005F8C +/* 03AA78 7F005F48 E7A60088 */ swc1 $f6, 0x88($sp) +/* 03AA7C 7F005F4C 27A4008C */ addiu $a0, $sp, 0x8c +.L7F005F50: +/* 03AA80 7F005F50 27A50090 */ addiu $a1, $sp, 0x90 +/* 03AA84 7F005F54 27A60094 */ addiu $a2, $sp, 0x94 +/* 03AA88 7F005F58 0FC2BEDE */ jal sub_GAME_7F0AFB78 +/* 03AA8C 7F005F5C 3C0741F0 */ lui $a3, 0x41f0 +/* 03AA90 7F005F60 AFA20084 */ sw $v0, 0x84($sp) +/* 03AA94 7F005F64 00402025 */ move $a0, $v0 +/* 03AA98 7F005F68 8FA5008C */ lw $a1, 0x8c($sp) +/* 03AA9C 7F005F6C 0FC20358 */ jal sub_GAME_7F080D60 +/* 03AAA0 7F005F70 8FA60094 */ lw $a2, 0x94($sp) +/* 03AAA4 7F005F74 8E420000 */ lw $v0, ($s2) +/* 03AAA8 7F005F78 46000506 */ mov.s $f20, $f0 +/* 03AAAC 7F005F7C C44829BC */ lwc1 $f8, 0x29bc($v0) +/* 03AAB0 7F005F80 46004280 */ add.s $f10, $f8, $f0 +/* 03AAB4 7F005F84 E7AA0090 */ swc1 $f10, 0x90($sp) +/* 03AAB8 7F005F88 E4400070 */ swc1 $f0, 0x70($v0) +.L7F005F8C: +/* 03AABC 7F005F8C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 03AAC0 7F005F90 44819000 */ mtc1 $at, $f18 +/* 03AAC4 7F005F94 C7B00088 */ lwc1 $f16, 0x88($sp) +/* 03AAC8 7F005F98 3C018005 */ lui $at, %hi(D_8004F1D8) +/* 03AACC 7F005F9C C426F1D8 */ lwc1 $f6, %lo(D_8004F1D8)($at) +/* 03AAD0 7F005FA0 46128102 */ mul.s $f4, $f16, $f18 +/* 03AAD4 7F005FA4 8E4C0000 */ lw $t4, ($s2) +/* 03AAD8 7F005FA8 3C018005 */ lui $at, %hi(D_8004F1DC) +/* 03AADC 7F005FAC 27A5008C */ addiu $a1, $sp, 0x8c +/* 03AAE0 7F005FB0 46062203 */ div.s $f8, $f4, $f6 +/* 03AAE4 7F005FB4 E5880148 */ swc1 $f8, 0x148($t4) +/* 03AAE8 7F005FB8 8E4D0000 */ lw $t5, ($s2) +/* 03AAEC 7F005FBC E5B40074 */ swc1 $f20, 0x74($t5) +/* 03AAF0 7F005FC0 C42AF1DC */ lwc1 $f10, %lo(D_8004F1DC)($at) +/* 03AAF4 7F005FC4 8E590000 */ lw $t9, ($s2) +/* 03AAF8 7F005FC8 460AA403 */ div.s $f16, $f20, $f10 +/* 03AAFC 7F005FCC E730006C */ swc1 $f16, 0x6c($t9) +/* 03AB00 7F005FD0 8E440000 */ lw $a0, ($s2) +/* 03AB04 7F005FD4 8FA60084 */ lw $a2, 0x84($sp) +/* 03AB08 7F005FD8 0FC1F1CC */ jal change_player_pos_to_target +/* 03AB0C 7F005FDC 24840488 */ addiu $a0, $a0, 0x488 +/* 03AB10 7F005FE0 0FC15FAB */ jal sinf +/* 03AB14 7F005FE4 C7AC0088 */ lwc1 $f12, 0x88($sp) +/* 03AB18 7F005FE8 8E580000 */ lw $t8, ($s2) +/* 03AB1C 7F005FEC 46000487 */ neg.s $f18, $f0 +/* 03AB20 7F005FF0 44802000 */ mtc1 $zero, $f4 +/* 03AB24 7F005FF4 E7120498 */ swc1 $f18, 0x498($t8) +/* 03AB28 7F005FF8 8E4F0000 */ lw $t7, ($s2) +/* 03AB2C 7F005FFC E5E4049C */ swc1 $f4, 0x49c($t7) +/* 03AB30 7F006000 0FC15FA8 */ jal cosf +/* 03AB34 7F006004 C7AC0088 */ lwc1 $f12, 0x88($sp) +/* 03AB38 7F006008 8E4E0000 */ lw $t6, ($s2) +/* 03AB3C 7F00600C 3C018003 */ lui $at, %hi(D_800364D0) +/* 03AB40 7F006010 E5C004A0 */ swc1 $f0, 0x4a0($t6) +/* 03AB44 7F006014 0FC225C6 */ jal sub_GAME_7F089718 +/* 03AB48 7F006018 C42C64D0 */ lwc1 $f12, %lo(D_800364D0)($at) +/* 03AB4C 7F00601C 3C018008 */ lui $at, %hi(dword_CODE_bss_80079DA0) +/* 03AB50 7F006020 AC209DA0 */ sw $zero, %lo(dword_CODE_bss_80079DA0)($at) +/* 03AB54 7F006024 3C018008 */ lui $at, %hi(dword_CODE_bss_80079DA4) +/* 03AB58 7F006028 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079DA8) +/* 03AB5C 7F00602C 3C038008 */ lui $v1, %hi(dword_CODE_bss_80079DC8) +/* 03AB60 7F006030 24639DC8 */ addiu $v1, %lo(dword_CODE_bss_80079DC8) # addiu $v1, $v1, -0x6238 +/* 03AB64 7F006034 24429DA8 */ addiu $v0, %lo(dword_CODE_bss_80079DA8) # addiu $v0, $v0, -0x6258 +/* 03AB68 7F006038 AC209DA4 */ sw $zero, %lo(dword_CODE_bss_80079DA4)($at) +.L7F00603C: +/* 03AB6C 7F00603C 24420010 */ addiu $v0, $v0, 0x10 +/* 03AB70 7F006040 AC40FFF4 */ sw $zero, -0xc($v0) +/* 03AB74 7F006044 AC40FFF8 */ sw $zero, -8($v0) +/* 03AB78 7F006048 AC40FFFC */ sw $zero, -4($v0) +/* 03AB7C 7F00604C 1443FFFB */ bne $v0, $v1, .L7F00603C +/* 03AB80 7F006050 AC40FFF0 */ sw $zero, -0x10($v0) +/* 03AB84 7F006054 0FC228CC */ jal reset_intro_camera_message_dialogs_for_BONDdata +/* 03AB88 7F006058 00000000 */ nop +/* 03AB8C 7F00605C 0FC22A40 */ jal sub_GAME_7F08A900 +/* 03AB90 7F006060 00000000 */ nop +/* 03AB94 7F006064 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 03AB98 7F006068 00000000 */ nop +/* 03AB9C 7F00606C 8E480000 */ lw $t0, ($s2) +/* 03ABA0 7F006070 240A0006 */ li $t2, 6 +/* 03ABA4 7F006074 AD0200A8 */ sw $v0, 0xa8($t0) +/* 03ABA8 7F006078 8E490000 */ lw $t1, ($s2) +/* 03ABAC 7F00607C 8D2B00A8 */ lw $t3, 0xa8($t1) +/* 03ABB0 7F006080 AD600004 */ sw $zero, 4($t3) +/* 03ABB4 7F006084 8E4C0000 */ lw $t4, ($s2) +/* 03ABB8 7F006088 8D8D00A8 */ lw $t5, 0xa8($t4) +/* 03ABBC 7F00608C A1AA0000 */ sb $t2, ($t5) +/* 03ABC0 7F006090 8E590000 */ lw $t9, ($s2) +/* 03ABC4 7F006094 C7A0008C */ lwc1 $f0, 0x8c($sp) +/* 03ABC8 7F006098 E7200408 */ swc1 $f0, 0x408($t9) +/* 03ABCC 7F00609C 8E580000 */ lw $t8, ($s2) +/* 03ABD0 7F0060A0 8F0F00A8 */ lw $t7, 0xa8($t8) +/* 03ABD4 7F0060A4 E5E00008 */ swc1 $f0, 8($t7) +/* 03ABD8 7F0060A8 8E4E0000 */ lw $t6, ($s2) +/* 03ABDC 7F0060AC C7A00090 */ lwc1 $f0, 0x90($sp) +/* 03ABE0 7F0060B0 E5C0040C */ swc1 $f0, 0x40c($t6) +/* 03ABE4 7F0060B4 8E480000 */ lw $t0, ($s2) +/* 03ABE8 7F0060B8 8D0900A8 */ lw $t1, 0xa8($t0) +/* 03ABEC 7F0060BC E520000C */ swc1 $f0, 0xc($t1) +/* 03ABF0 7F0060C0 8E4B0000 */ lw $t3, ($s2) +/* 03ABF4 7F0060C4 C7A00094 */ lwc1 $f0, 0x94($sp) +/* 03ABF8 7F0060C8 E5600410 */ swc1 $f0, 0x410($t3) +/* 03ABFC 7F0060CC 8E4C0000 */ lw $t4, ($s2) +/* 03AC00 7F0060D0 8D8A00A8 */ lw $t2, 0xa8($t4) +/* 03AC04 7F0060D4 E5400010 */ swc1 $f0, 0x10($t2) +/* 03AC08 7F0060D8 8E590000 */ lw $t9, ($s2) +/* 03AC0C 7F0060DC 8FAD0084 */ lw $t5, 0x84($sp) +/* 03AC10 7F0060E0 8F3800A8 */ lw $t8, 0xa8($t9) +/* 03AC14 7F0060E4 AF0D0014 */ sw $t5, 0x14($t8) +/* 03AC18 7F0060E8 8E4F0000 */ lw $t7, ($s2) +/* 03AC1C 7F0060EC 0FC0E929 */ jal set_current_objposdata_plus_0x28 +/* 03AC20 7F0060F0 8DE400A8 */ lw $a0, 0xa8($t7) +/* 03AC24 7F0060F4 8E4E0000 */ lw $t6, ($s2) +/* 03AC28 7F0060F8 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 03AC2C 7F0060FC 8DC400A8 */ lw $a0, 0xa8($t6) +/* 03AC30 7F006100 8E420000 */ lw $v0, ($s2) +/* 03AC34 7F006104 3C018005 */ lui $at, %hi(D_8004F1E0) +/* 03AC38 7F006108 C420F1E0 */ lwc1 $f0, %lo(D_8004F1E0)($at) +/* 03AC3C 7F00610C C44604B4 */ lwc1 $f6, 0x4b4($v0) +/* 03AC40 7F006110 46003203 */ div.s $f8, $f6, $f0 +/* 03AC44 7F006114 E44803B8 */ swc1 $f8, 0x3b8($v0) +/* 03AC48 7F006118 8E420000 */ lw $v0, ($s2) +/* 03AC4C 7F00611C C44A04B8 */ lwc1 $f10, 0x4b8($v0) +/* 03AC50 7F006120 46005403 */ div.s $f16, $f10, $f0 +/* 03AC54 7F006124 E45003BC */ swc1 $f16, 0x3bc($v0) +/* 03AC58 7F006128 8E420000 */ lw $v0, ($s2) +/* 03AC5C 7F00612C C45204BC */ lwc1 $f18, 0x4bc($v0) +/* 03AC60 7F006130 46009103 */ div.s $f4, $f18, $f0 +/* 03AC64 7F006134 0FC26919 */ jal get_num_players +/* 03AC68 7F006138 E44403C0 */ swc1 $f4, 0x3c0($v0) +/* 03AC6C 7F00613C 24010001 */ li $at, 1 +/* 03AC70 7F006140 14410005 */ bne $v0, $at, .L7F006158 +/* 03AC74 7F006144 00000000 */ nop +/* 03AC78 7F006148 0FC1EA6E */ jal set_camera_mode +/* 03AC7C 7F00614C 24040001 */ li $a0, 1 +/* 03AC80 7F006150 10000003 */ b .L7F006160 +/* 03AC84 7F006154 00000000 */ nop +.L7F006158: +/* 03AC88 7F006158 0FC1EA6E */ jal set_camera_mode +/* 03AC8C 7F00615C 24040009 */ li $a0, 9 +.L7F006160: +/* 03AC90 7F006160 3C048003 */ lui $a0, %hi(D_800364D8) +/* 03AC94 7F006164 248464D8 */ addiu $a0, %lo(D_800364D8) # addiu $a0, $a0, 0x64d8 +/* 03AC98 7F006168 00004080 */ sll $t0, $zero, 2 +/* 03AC9C 7F00616C 00884821 */ addu $t1, $a0, $t0 +/* 03ACA0 7F006170 8D2B0000 */ lw $t3, ($t1) +/* 03ACA4 7F006174 3C038003 */ lui $v1, %hi(D_8003650C) +/* 03ACA8 7F006178 2463650C */ addiu $v1, %lo(D_8003650C) # addiu $v1, $v1, 0x650c +/* 03ACAC 7F00617C AC600000 */ sw $zero, ($v1) +/* 03ACB0 7F006180 11600009 */ beqz $t3, .L7F0061A8 +/* 03ACB4 7F006184 00001025 */ move $v0, $zero +/* 03ACB8 7F006188 244C0001 */ addiu $t4, $v0, 1 +.L7F00618C: +/* 03ACBC 7F00618C 000C5080 */ sll $t2, $t4, 2 +/* 03ACC0 7F006190 008AC821 */ addu $t9, $a0, $t2 +/* 03ACC4 7F006194 8F2D0000 */ lw $t5, ($t9) +/* 03ACC8 7F006198 AC6C0000 */ sw $t4, ($v1) +/* 03ACCC 7F00619C 01801025 */ move $v0, $t4 +/* 03ACD0 7F0061A0 55A0FFFA */ bnezl $t5, .L7F00618C +/* 03ACD4 7F0061A4 244C0001 */ addiu $t4, $v0, 1 +.L7F0061A8: +/* 03ACD8 7F0061A8 8E4F0000 */ lw $t7, ($s2) +/* 03ACDC 7F0061AC 24180001 */ li $t8, 1 +/* 03ACE0 7F0061B0 3C018003 */ lui $at, %hi(D_80036510) +/* 03ACE4 7F0061B4 ADF80420 */ sw $t8, 0x420($t7) +/* 03ACE8 7F0061B8 8E4E0000 */ lw $t6, ($s2) +/* 03ACEC 7F0061BC ADC00424 */ sw $zero, 0x424($t6) +/* 03ACF0 7F0061C0 8E480000 */ lw $t0, ($s2) +/* 03ACF4 7F0061C4 AD000428 */ sw $zero, 0x428($t0) +/* 03ACF8 7F0061C8 8FBF0034 */ lw $ra, 0x34($sp) +/* 03ACFC 7F0061CC 8FB20030 */ lw $s2, 0x30($sp) +/* 03AD00 7F0061D0 8FB1002C */ lw $s1, 0x2c($sp) +/* 03AD04 7F0061D4 8FB00028 */ lw $s0, 0x28($sp) +/* 03AD08 7F0061D8 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 03AD0C 7F0061DC D7B40018 */ ldc1 $f20, 0x18($sp) +/* 03AD10 7F0061E0 AC206510 */ sw $zero, %lo(D_80036510)($at) +/* 03AD14 7F0061E4 03E00008 */ jr $ra +/* 03AD18 7F0061E8 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel projectile_ptr_table +.word throwingknife +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word grenade_launch_round +.word rocket +.word grenade +.word timed_mine +.word prox_mine +.word remote_mine +.word default +.word default +.word rocket_0 +.word bombcase +.word plastique +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word default +.word bug +.word microcamera + + +/*8004f1a8*/ +glabel default_zoom_speed +.word 0x3f68ba2e + +glabel jpt_8004F1AC + .word spawn_point + .word weapon + .word ammo + .word swirling_intro_cam + .word intro_ani + .word cuff_char + .word fixed_cam + .word watch_time + .word credits + +glabel D_8004F1D0 +.word 0xb8d1b717 +glabel D_8004F1D4 +.word 0x40c90fdb +glabel D_8004F1D8 +.word 0x40c90fdb +glabel D_8004F1DC +.word 0x3e2e147c +glabel D_8004F1E0 +.word 0x3dccccd0 +.text +glabel load_camera_intro_type_values +/* 03A354 7F0057E4 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 03A358 7F0057E8 3C0F8003 */ lui $t7, %hi(D_8002A780) # $t7, 0x8003 +/* 03A35C 7F0057EC AFBF003C */ sw $ra, 0x3c($sp) +/* 03A360 7F0057F0 AFB20038 */ sw $s2, 0x38($sp) +/* 03A364 7F0057F4 AFB10034 */ sw $s1, 0x34($sp) +/* 03A368 7F0057F8 AFB00030 */ sw $s0, 0x30($sp) +/* 03A36C 7F0057FC F7B80028 */ sdc1 $f24, 0x28($sp) +/* 03A370 7F005800 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 03A374 7F005804 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 03A378 7F005808 25EFA7C0 */ addiu $t7, %lo(D_8002A780) # addiu $t7, $t7, -0x5840 +/* 03A37C 7F00580C 8DE10000 */ lw $at, ($t7) +/* 03A380 7F005810 27AE0094 */ addiu $t6, $sp, 0x94 +/* 03A384 7F005814 8DE80004 */ lw $t0, 4($t7) +/* 03A388 7F005818 ADC10000 */ sw $at, ($t6) +/* 03A38C 7F00581C 8DE10008 */ lw $at, 8($t7) +/* 03A390 7F005820 ADC80004 */ sw $t0, 4($t6) +/* 03A394 7F005824 3C118003 */ lui $s1, %hi(resolution) # $s1, 0x8003 +/* 03A398 7F005828 ADC10008 */ sw $at, 8($t6) +/* 03A39C 7F00582C 3C018003 */ lui $at, %hi(mission_kia_flag) # $at, 0x8003 +/* 03A3A0 7F005830 AC20A968 */ sw $zero, %lo(mission_kia_flag)($at) +/* 03A3A4 7F005834 3C018003 */ lui $at, %hi(camera_80036424) # $at, 0x8003 +/* 03A3A8 7F005838 3C108007 */ lui $s0, %hi(ptr_setup_intro) # $s0, 0x8007 +/* 03A3AC 7F00583C AC206464 */ sw $zero, %lo(camera_80036424)($at) +/* 03A3B0 7F005840 26316468 */ addiu $s1, %lo(resolution) # addiu $s1, $s1, 0x6468 +/* 03A3B4 7F005844 8E105D48 */ lw $s0, %lo(ptr_setup_intro)($s0) +/* 03A3B8 7F005848 AE200000 */ sw $zero, ($s1) +/* 03A3BC 7F00584C 3C018003 */ lui $at, %hi(camera_8003642C) # $at, 0x8003 +/* 03A3C0 7F005850 3C128003 */ lui $s2, %hi(camera_80036430) # $s2, 0x8003 +/* 03A3C4 7F005854 AC20646C */ sw $zero, %lo(camera_8003642C)($at) +/* 03A3C8 7F005858 4480C000 */ mtc1 $zero, $f24 +/* 03A3CC 7F00585C 26526470 */ addiu $s2, %lo(camera_80036430) # addiu $s2, $s2, 0x6470 +/* 03A3D0 7F005860 AE400000 */ sw $zero, ($s2) +/* 03A3D4 7F005864 3C018003 */ lui $at, %hi(camera_80036434) # $at, 0x8003 +/* 03A3D8 7F005868 AFA00084 */ sw $zero, 0x84($sp) +/* 03A3DC 7F00586C AC206474 */ sw $zero, %lo(camera_80036434)($at) +/* 03A3E0 7F005870 0C001A57 */ jal get_stage_num +/* 03A3E4 7F005874 E7B80090 */ swc1 $f24, 0x90($sp) +/* 03A3E8 7F005878 24010036 */ li $at, 54 +/* 03A3EC 7F00587C 1441000B */ bne $v0, $at, .L7F0058AC +/* 03A3F0 7F005880 3C040004 */ lui $a0, (0x00046EA0 >> 16) # lui $a0, 4 +/* 03A3F4 7F005884 34846EA0 */ ori $a0, (0x00046EA0 & 0xFFFF) # ori $a0, $a0, 0x6ea0 +/* 03A3F8 7F005888 0C0025CC */ jal mempAllocBytesInBank +/* 03A3FC 7F00588C 24050004 */ li $a1, 4 +/* 03A400 7F005890 244A003F */ addiu $t2, $v0, 0x3f +/* 03A404 7F005894 2401FFC0 */ li $at, -64 +/* 03A408 7F005898 AE220000 */ sw $v0, ($s1) +/* 03A40C 7F00589C 01415824 */ and $t3, $t2, $at +/* 03A410 7F0058A0 240C0001 */ li $t4, 1 +/* 03A414 7F0058A4 AE2B0000 */ sw $t3, ($s1) +/* 03A418 7F0058A8 AE4C0000 */ sw $t4, ($s2) +.L7F0058AC: +/* 03A41C 7F0058AC 3C018003 */ lui $at, %hi(camera_80036438) # $at, 0x8003 +/* 03A420 7F0058B0 AC206478 */ sw $zero, %lo(camera_80036438)($at) +/* 03A424 7F0058B4 3C018003 */ lui $at, %hi(D_8003643C) # $at, 0x8003 +/* 03A428 7F0058B8 AC20647C */ sw $zero, %lo(D_8003643C)($at) +/* 03A42C 7F0058BC 3C018003 */ lui $at, %hi(D_80036440) # $at, 0x8003 +/* 03A430 7F0058C0 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079990) # $v0, 0x8008 +/* 03A434 7F0058C4 AC206480 */ sw $zero, %lo(D_80036440)($at) +/* 03A438 7F0058C8 244299D0 */ addiu $v0, %lo(flt_CODE_bss_80079990) # addiu $v0, $v0, -0x6630 +/* 03A43C 7F0058CC E4580000 */ swc1 $f24, ($v0) +/* 03A440 7F0058D0 E4580004 */ swc1 $f24, 4($v0) +/* 03A444 7F0058D4 E4580008 */ swc1 $f24, 8($v0) +/* 03A448 7F0058D8 3C018003 */ lui $at, %hi(D_80036444) # $at, 0x8003 +/* 03A44C 7F0058DC AC206484 */ sw $zero, %lo(D_80036444)($at) +/* 03A450 7F0058E0 3C018008 */ lui $at, %hi(dword_CODE_bss_80079C68) # $at, 0x8008 +/* 03A454 7F0058E4 AC209CD8 */ sw $zero, %lo(dword_CODE_bss_80079C68)($at) +/* 03A458 7F0058E8 3C018003 */ lui $at, %hi(in_tank_flag) # $at, 0x8003 +/* 03A45C 7F0058EC AC206488 */ sw $zero, %lo(in_tank_flag)($at) +/* 03A460 7F0058F0 3C018003 */ lui $at, %hi(D_8003644C) # $at, 0x8003 +/* 03A464 7F0058F4 AC20648C */ sw $zero, %lo(D_8003644C)($at) +/* 03A468 7F0058F8 3C018003 */ lui $at, %hi(ptr_playerstank) # $at, 0x8003 +/* 03A46C 7F0058FC AC206490 */ sw $zero, %lo(ptr_playerstank)($at) +/* 03A470 7F005900 3C018003 */ lui $at, %hi(D_80036454) # $at, 0x8003 +/* 03A474 7F005904 3C038003 */ lui $v1, %hi(SFX_80036458) # $v1, 0x8003 +/* 03A478 7F005908 E4386494 */ swc1 $f24, %lo(D_80036454)($at) +/* 03A47C 7F00590C 24636498 */ addiu $v1, %lo(SFX_80036458) # addiu $v1, $v1, 0x6498 +/* 03A480 7F005910 AC600000 */ sw $zero, ($v1) +/* 03A484 7F005914 AC600004 */ sw $zero, 4($v1) +/* 03A488 7F005918 3C018003 */ lui $at, %hi(D_80036460) # $at, 0x8003 +/* 03A48C 7F00591C E43864A0 */ swc1 $f24, %lo(D_80036460)($at) +/* 03A490 7F005920 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 03A494 7F005924 E43864A4 */ swc1 $f24, %lo(D_80036464)($at) +/* 03A498 7F005928 3C018003 */ lui $at, %hi(D_80036468) # $at, 0x8003 +/* 03A49C 7F00592C E43864A8 */ swc1 $f24, %lo(D_80036468)($at) +/* 03A4A0 7F005930 3C018003 */ lui $at, %hi(D_8003646C) # $at, 0x8003 +/* 03A4A4 7F005934 E43864AC */ swc1 $f24, %lo(D_8003646C)($at) +/* 03A4A8 7F005938 3C018003 */ lui $at, %hi(D_80036470) # $at, 0x8003 +/* 03A4AC 7F00593C E43864B0 */ swc1 $f24, %lo(D_80036470)($at) +/* 03A4B0 7F005940 3C018003 */ lui $at, %hi(D_80036474) # $at, 0x8003 +/* 03A4B4 7F005944 E43864B4 */ swc1 $f24, %lo(D_80036474)($at) +/* 03A4B8 7F005948 3C018003 */ lui $at, %hi(D_80036478) # $at, 0x8003 +/* 03A4BC 7F00594C E43864B8 */ swc1 $f24, %lo(D_80036478)($at) +/* 03A4C0 7F005950 3C018003 */ lui $at, %hi(D_8003647C) # $at, 0x8003 +/* 03A4C4 7F005954 E43864BC */ swc1 $f24, %lo(D_8003647C)($at) +/* 03A4C8 7F005958 3C018003 */ lui $at, %hi(D_80036480) # $at, 0x8003 +/* 03A4CC 7F00595C AC2064C0 */ sw $zero, %lo(D_80036480)($at) +/* 03A4D0 7F005960 3C018003 */ lui $at, %hi(D_80036484) # $at, 0x8003 +/* 03A4D4 7F005964 E43864C4 */ swc1 $f24, %lo(D_80036484)($at) +/* 03A4D8 7F005968 3C018003 */ lui $at, %hi(D_80036488) # $at, 0x8003 +/* 03A4DC 7F00596C E43864C8 */ swc1 $f24, %lo(D_80036488)($at) +/* 03A4E0 7F005970 3C018003 */ lui $at, %hi(D_8003648C) # $at, 0x8003 +/* 03A4E4 7F005974 AC2064CC */ sw $zero, %lo(D_8003648C)($at) +/* 03A4E8 7F005978 3C018003 */ lui $at, %hi(D_800364B0) # $at, 0x8003 +/* 03A4EC 7F00597C 240D0001 */ li $t5, 1 +/* 03A4F0 7F005980 AC2D64F0 */ sw $t5, %lo(D_800364B0)($at) +/* 03A4F4 7F005984 3C018003 */ lui $at, %hi(disable_player_pickups_flag) # $at, 0x8003 +/* 03A4F8 7F005988 AC2064F4 */ sw $zero, %lo(disable_player_pickups_flag)($at) +/* 03A4FC 7F00598C 3C018003 */ lui $at, %hi(cameramode) # $at, 0x8003 +/* 03A500 7F005990 AC2064D4 */ sw $zero, %lo(cameramode)($at) +/* 03A504 7F005994 3C018003 */ lui $at, %hi(enable_move_after_cinema) # $at, 0x8003 +/* 03A508 7F005998 AC2064D8 */ sw $zero, %lo(enable_move_after_cinema)($at) +/* 03A50C 7F00599C 3C018003 */ lui $at, %hi(D_8003649C) # $at, 0x8003 +/* 03A510 7F0059A0 AC2064DC */ sw $zero, %lo(D_8003649C)($at) +/* 03A514 7F0059A4 3C018003 */ lui $at, %hi(stop_time_flag) # $at, 0x8003 +/* 03A518 7F0059A8 AC2064E0 */ sw $zero, %lo(stop_time_flag)($at) +/* 03A51C 7F0059AC 3C018003 */ lui $at, %hi(D_800364A4) # $at, 0x8003 +/* 03A520 7F0059B0 E43864E4 */ swc1 $f24, %lo(D_800364A4)($at) +/* 03A524 7F0059B4 3C018003 */ lui $at, %hi(D_800364A8) # $at, 0x8003 +/* 03A528 7F0059B8 24190001 */ li $t9, 1 +/* 03A52C 7F0059BC AC3964E8 */ sw $t9, %lo(D_800364A8)($at) +/* 03A530 7F0059C0 3C018003 */ lui $at, %hi(D_800364AC) # $at, 0x8003 +/* 03A534 7F0059C4 AC2064EC */ sw $zero, %lo(D_800364AC)($at) +/* 03A538 7F0059C8 3C018003 */ lui $at, %hi(ptr_random06cam_entry) # $at, 0x8003 +/* 03A53C 7F0059CC AC206500 */ sw $zero, %lo(ptr_random06cam_entry)($at) +/* 03A540 7F0059D0 3C018003 */ lui $at, %hi(D_800364B8) # $at, 0x8003 +/* 03A544 7F0059D4 AC2064F8 */ sw $zero, %lo(D_800364B8)($at) +/* 03A548 7F0059D8 3C018003 */ lui $at, %hi(D_800364BC) # $at, 0x8003 +/* 03A54C 7F0059DC AC2064FC */ sw $zero, %lo(D_800364BC)($at) +/* 03A550 7F0059E0 3C018008 */ lui $at, %hi(mission_timer) # $at, 0x8008 +/* 03A554 7F0059E4 3C118008 */ lui $s1, %hi(watch_time_0) # $s1, 0x8008 +/* 03A558 7F0059E8 AC209A60 */ sw $zero, %lo(mission_timer)($at) +/* 03A55C 7F0059EC 26319A64 */ addiu $s1, %lo(watch_time_0) # addiu $s1, $s1, -0x659c +/* 03A560 7F0059F0 E6380000 */ swc1 $f24, ($s1) +/* 03A564 7F0059F4 3C018003 */ lui $at, %hi(D_80036514) # $at, 0x8003 +/* 03A568 7F0059F8 AC206554 */ sw $zero, %lo(D_80036514)($at) +/* 03A56C 7F0059FC 3C018005 */ lui $at, %hi(default_zoom_speed) # $at, 0x8005 +/* 03A570 7F005A00 C424F1D8 */ lwc1 $f4, %lo(default_zoom_speed)($at) +/* 03A574 7F005A04 3C018003 */ lui $at, %hi(watch_transition_time) # $at, 0x8003 +/* 03A578 7F005A08 E42465E8 */ swc1 $f4, %lo(watch_transition_time)($at) +/* 03A57C 7F005A0C 3C018008 */ lui $at, %hi(starting_left_weapon) # $at, 0x8008 +/* 03A580 7F005A10 AC209A24 */ sw $zero, %lo(starting_left_weapon)($at) +/* 03A584 7F005A14 3C018008 */ lui $at, %hi(starting_right_weapon) # $at, 0x8008 +/* 03A588 7F005A18 120000F7 */ beqz $s0, .L7F005DF8 +/* 03A58C 7F005A1C AC209A20 */ sw $zero, %lo(starting_right_weapon)($at) +/* 03A590 7F005A20 8E020000 */ lw $v0, ($s0) +/* 03A594 7F005A24 24010009 */ li $at, 9 +/* 03A598 7F005A28 3C128008 */ lui $s2, %hi(pPlayer) # $s2, 0x8008 +/* 03A59C 7F005A2C 104100F2 */ beq $v0, $at, .L7F005DF8 +/* 03A5A0 7F005A30 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 03A5A4 7F005A34 4481B000 */ mtc1 $at, $f22 +/* 03A5A8 7F005A38 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 03A5AC 7F005A3C 4481A000 */ mtc1 $at, $f20 +/* 03A5B0 7F005A40 2652A120 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5ee0 +/* 03A5B4 7F005A44 2C410009 */ sltiu $at, $v0, 9 +.L7F005A48: +/* 03A5B8 7F005A48 102000E6 */ beqz $at, .L7F005DE4 +/* 03A5BC 7F005A4C 0002C080 */ sll $t8, $v0, 2 +/* 03A5C0 7F005A50 3C018005 */ lui $at, %hi(jpt_8004F1AC) +/* 03A5C4 7F005A54 00380821 */ addu $at, $at, $t8 +/* 03A5C8 7F005A58 8C38F1DC */ lw $t8, %lo(jpt_8004F1AC)($at) +/* 03A5CC 7F005A5C 03000008 */ jr $t8 +/* 03A5D0 7F005A60 00000000 */ nop +spawn_point: +/* 03A5D4 7F005A64 3C0E8007 */ lui $t6, %hi(ptr_0xxxpresets) # $t6, 0x8007 +/* 03A5D8 7F005A68 8DCE5D58 */ lw $t6, %lo(ptr_0xxxpresets)($t6) +/* 03A5DC 7F005A6C 11C00018 */ beqz $t6, .L7F005AD0 +/* 03A5E0 7F005A70 00000000 */ nop +/* 03A5E4 7F005A74 0FC305A4 */ jal check_ramrom_flags +/* 03A5E8 7F005A78 00000000 */ nop +/* 03A5EC 7F005A7C 8E0F0008 */ lw $t7, 8($s0) +/* 03A5F0 7F005A80 3C0A8007 */ lui $t2, %hi(ptr_0xxxpresets) # $t2, 0x8007 +/* 03A5F4 7F005A84 3C018008 */ lui $at, %hi(dword_CODE_bss_80079C28) +/* 03A5F8 7F005A88 144F0011 */ bne $v0, $t7, .L7F005AD0 +/* 03A5FC 7F005A8C 00000000 */ nop +/* 03A600 7F005A90 8E080004 */ lw $t0, 4($s0) +/* 03A604 7F005A94 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079C68) # $v0, 0x8008 +/* 03A608 7F005A98 8C429CD8 */ lw $v0, %lo(dword_CODE_bss_80079C68)($v0) +/* 03A60C 7F005A9C 00084880 */ sll $t1, $t0, 2 +/* 03A610 7F005AA0 01284823 */ subu $t1, $t1, $t0 +/* 03A614 7F005AA4 8D4A5D58 */ lw $t2, %lo(ptr_0xxxpresets)($t2) +/* 03A618 7F005AA8 00094880 */ sll $t1, $t1, 2 +/* 03A61C 7F005AAC 01284823 */ subu $t1, $t1, $t0 +/* 03A620 7F005AB0 00094880 */ sll $t1, $t1, 2 +/* 03A624 7F005AB4 00026080 */ sll $t4, $v0, 2 +/* 03A628 7F005AB8 002C0821 */ addu $at, $at, $t4 +/* 03A62C 7F005ABC 012A5821 */ addu $t3, $t1, $t2 +/* 03A630 7F005AC0 AC2B9C98 */ sw $t3, %lo(dword_CODE_bss_80079C28)($at) +/* 03A634 7F005AC4 3C018008 */ lui $at, %hi(dword_CODE_bss_80079C68) # $at, 0x8008 +/* 03A638 7F005AC8 244D0001 */ addiu $t5, $v0, 1 +/* 03A63C 7F005ACC AC2D9CD8 */ sw $t5, %lo(dword_CODE_bss_80079C68)($at) +.L7F005AD0: +/* 03A640 7F005AD0 100000C5 */ b .L7F005DE8 +/* 03A644 7F005AD4 2610000C */ addiu $s0, $s0, 0xc +weapon: +/* 03A648 7F005AD8 0FC305A4 */ jal check_ramrom_flags +/* 03A64C 7F005ADC 00000000 */ nop +/* 03A650 7F005AE0 8E19000C */ lw $t9, 0xc($s0) +/* 03A654 7F005AE4 1459001C */ bne $v0, $t9, .L7F005B58 +/* 03A658 7F005AE8 00000000 */ nop +/* 03A65C 7F005AEC 0FC015CC */ jal set_weapon_model_generated_thrown_object +/* 03A660 7F005AF0 8E040004 */ lw $a0, 4($s0) +/* 03A664 7F005AF4 8E040008 */ lw $a0, 8($s0) +/* 03A668 7F005AF8 04800008 */ bltz $a0, .L7F005B1C +/* 03A66C 7F005AFC 00000000 */ nop +/* 03A670 7F005B00 0FC015CC */ jal set_weapon_model_generated_thrown_object +/* 03A674 7F005B04 00000000 */ nop +/* 03A678 7F005B08 8E040004 */ lw $a0, 4($s0) +/* 03A67C 7F005B0C 0FC23381 */ jal add_doubles_item_to_inventory +/* 03A680 7F005B10 8E050008 */ lw $a1, 8($s0) +/* 03A684 7F005B14 10000004 */ b .L7F005B28 +/* 03A688 7F005B18 8FB80084 */ lw $t8, 0x84($sp) +.L7F005B1C: +/* 03A68C 7F005B1C 0FC2335A */ jal add_item_to_inventory +/* 03A690 7F005B20 8E040004 */ lw $a0, 4($s0) +/* 03A694 7F005B24 8FB80084 */ lw $t8, 0x84($sp) +.L7F005B28: +/* 03A698 7F005B28 1700000B */ bnez $t8, .L7F005B58 +/* 03A69C 7F005B2C 00000000 */ nop +/* 03A6A0 7F005B30 8E0E0004 */ lw $t6, 4($s0) +/* 03A6A4 7F005B34 3C018008 */ lui $at, %hi(starting_right_weapon) # $at, 0x8008 +/* 03A6A8 7F005B38 240F0001 */ li $t7, 1 +/* 03A6AC 7F005B3C AC2E9A20 */ sw $t6, %lo(starting_right_weapon)($at) +/* 03A6B0 7F005B40 8E040008 */ lw $a0, 8($s0) +/* 03A6B4 7F005B44 AFAF0084 */ sw $t7, 0x84($sp) +/* 03A6B8 7F005B48 3C018008 */ lui $at, %hi(starting_left_weapon) # $at, 0x8008 +/* 03A6BC 7F005B4C 04800002 */ bltz $a0, .L7F005B58 +/* 03A6C0 7F005B50 00000000 */ nop +/* 03A6C4 7F005B54 AC249A24 */ sw $a0, %lo(starting_left_weapon)($at) +.L7F005B58: +/* 03A6C8 7F005B58 100000A3 */ b .L7F005DE8 +/* 03A6CC 7F005B5C 26100010 */ addiu $s0, $s0, 0x10 +ammo: +/* 03A6D0 7F005B60 0FC305A4 */ jal check_ramrom_flags +/* 03A6D4 7F005B64 00000000 */ nop +/* 03A6D8 7F005B68 8E08000C */ lw $t0, 0xc($s0) +/* 03A6DC 7F005B6C 14480004 */ bne $v0, $t0, .L7F005B80 +/* 03A6E0 7F005B70 00000000 */ nop +/* 03A6E4 7F005B74 8E040004 */ lw $a0, 4($s0) +/* 03A6E8 7F005B78 0FC1A5C7 */ jal give_cur_player_ammo +/* 03A6EC 7F005B7C 8E050008 */ lw $a1, 8($s0) +.L7F005B80: +/* 03A6F0 7F005B80 10000099 */ b .L7F005DE8 +/* 03A6F4 7F005B84 26100010 */ addiu $s0, $s0, 0x10 +swirling_intro_cam: +/* 03A6F8 7F005B88 3C098003 */ lui $t1, %hi(D_800364AC) # $t1, 0x8003 +/* 03A6FC 7F005B8C 8D2964EC */ lw $t1, %lo(D_800364AC)($t1) +/* 03A700 7F005B90 02001025 */ move $v0, $s0 +/* 03A704 7F005B94 3C018003 */ lui $at, %hi(D_800364AC) # $at, 0x8003 +/* 03A708 7F005B98 55200003 */ bnezl $t1, .L7F005BA8 +/* 03A70C 7F005B9C 8C4A0008 */ lw $t2, 8($v0) +/* 03A710 7F005BA0 AC3064EC */ sw $s0, %lo(D_800364AC)($at) +/* 03A714 7F005BA4 8C4A0008 */ lw $t2, 8($v0) +.L7F005BA8: +/* 03A718 7F005BA8 8C4B000C */ lw $t3, 0xc($v0) +/* 03A71C 7F005BAC 8C4C0010 */ lw $t4, 0x10($v0) +/* 03A720 7F005BB0 448A3000 */ mtc1 $t2, $f6 +/* 03A724 7F005BB4 448B8000 */ mtc1 $t3, $f16 +/* 03A728 7F005BB8 8C4D0014 */ lw $t5, 0x14($v0) +/* 03A72C 7F005BBC 46803220 */ cvt.s.w $f8, $f6 +/* 03A730 7F005BC0 448C3000 */ mtc1 $t4, $f6 +/* 03A734 7F005BC4 8C590018 */ lw $t9, 0x18($v0) +/* 03A738 7F005BC8 26100020 */ addiu $s0, $s0, 0x20 +/* 03A73C 7F005BCC 468084A0 */ cvt.s.w $f18, $f16 +/* 03A740 7F005BD0 448D8000 */ mtc1 $t5, $f16 +/* 03A744 7F005BD4 46144283 */ div.s $f10, $f8, $f20 +/* 03A748 7F005BD8 46803220 */ cvt.s.w $f8, $f6 +/* 03A74C 7F005BDC 44993000 */ mtc1 $t9, $f6 +/* 03A750 7F005BE0 46149103 */ div.s $f4, $f18, $f20 +/* 03A754 7F005BE4 E44A0008 */ swc1 $f10, 8($v0) +/* 03A758 7F005BE8 468084A0 */ cvt.s.w $f18, $f16 +/* 03A75C 7F005BEC 46144283 */ div.s $f10, $f8, $f20 +/* 03A760 7F005BF0 E444000C */ swc1 $f4, 0xc($v0) +/* 03A764 7F005BF4 46803220 */ cvt.s.w $f8, $f6 +/* 03A768 7F005BF8 46149103 */ div.s $f4, $f18, $f20 +/* 03A76C 7F005BFC E44A0010 */ swc1 $f10, 0x10($v0) +/* 03A770 7F005C00 46144283 */ div.s $f10, $f8, $f20 +/* 03A774 7F005C04 E4440014 */ swc1 $f4, 0x14($v0) +/* 03A778 7F005C08 10000077 */ b .L7F005DE8 +/* 03A77C 7F005C0C E44A0018 */ swc1 $f10, 0x18($v0) +intro_ani: +/* 03A780 7F005C10 8E180004 */ lw $t8, 4($s0) +/* 03A784 7F005C14 3C018003 */ lui $at, %hi(D_80036514) # $at, 0x8003 +/* 03A788 7F005C18 26100008 */ addiu $s0, $s0, 8 +/* 03A78C 7F005C1C 10000072 */ b .L7F005DE8 +/* 03A790 7F005C20 AC386554 */ sw $t8, %lo(D_80036514)($at) +cuff_char: +/* 03A794 7F005C24 8E0E0004 */ lw $t6, 4($s0) +/* 03A798 7F005C28 8E4F0000 */ lw $t7, ($s2) +/* 03A79C 7F005C2C 26100008 */ addiu $s0, $s0, 8 +/* 03A7A0 7F005C30 1000006D */ b .L7F005DE8 +/* 03A7A4 7F005C34 ADEE041C */ sw $t6, 0x41c($t7) +fixed_cam: +/* 03A7A8 7F005C38 0FC26F3C */ jal get_cur_playernum +/* 03A7AC 7F005C3C 00000000 */ nop +/* 03A7B0 7F005C40 1440002C */ bnez $v0, .L7F005CF4 +/* 03A7B4 7F005C44 3C088003 */ lui $t0, %hi(D_800364B8) # $t0, 0x8003 +/* 03A7B8 7F005C48 8D0864F8 */ lw $t0, %lo(D_800364B8)($t0) +/* 03A7BC 7F005C4C 3C098003 */ lui $t1, %hi(D_800364BC) # $t1, 0x8003 +/* 03A7C0 7F005C50 3C018003 */ lui $at, %hi(D_800364B8) # $at, 0x8003 +/* 03A7C4 7F005C54 AE080024 */ sw $t0, 0x24($s0) +/* 03A7C8 7F005C58 8D2964FC */ lw $t1, %lo(D_800364BC)($t1) +/* 03A7CC 7F005C5C AC3064F8 */ sw $s0, %lo(D_800364B8)($at) +/* 03A7D0 7F005C60 3C018003 */ lui $at, %hi(D_800364BC) # $at, 0x8003 +/* 03A7D4 7F005C64 252A0001 */ addiu $t2, $t1, 1 +/* 03A7D8 7F005C68 AC2A64FC */ sw $t2, %lo(D_800364BC)($at) +/* 03A7DC 7F005C6C 8E0B0004 */ lw $t3, 4($s0) +/* 03A7E0 7F005C70 8E0C0008 */ lw $t4, 8($s0) +/* 03A7E4 7F005C74 8E0D000C */ lw $t5, 0xc($s0) +/* 03A7E8 7F005C78 448B8000 */ mtc1 $t3, $f16 +/* 03A7EC 7F005C7C 448C3000 */ mtc1 $t4, $f6 +/* 03A7F0 7F005C80 8E190010 */ lw $t9, 0x10($s0) +/* 03A7F4 7F005C84 468084A0 */ cvt.s.w $f18, $f16 +/* 03A7F8 7F005C88 448D8000 */ mtc1 $t5, $f16 +/* 03A7FC 7F005C8C 8E180014 */ lw $t8, 0x14($s0) +/* 03A800 7F005C90 9604001E */ lhu $a0, 0x1e($s0) +/* 03A804 7F005C94 46803220 */ cvt.s.w $f8, $f6 +/* 03A808 7F005C98 44993000 */ mtc1 $t9, $f6 +/* 03A80C 7F005C9C 46169103 */ div.s $f4, $f18, $f22 +/* 03A810 7F005CA0 468084A0 */ cvt.s.w $f18, $f16 +/* 03A814 7F005CA4 44988000 */ mtc1 $t8, $f16 +/* 03A818 7F005CA8 46164283 */ div.s $f10, $f8, $f22 +/* 03A81C 7F005CAC E6040004 */ swc1 $f4, 4($s0) +/* 03A820 7F005CB0 46803220 */ cvt.s.w $f8, $f6 +/* 03A824 7F005CB4 46169103 */ div.s $f4, $f18, $f22 +/* 03A828 7F005CB8 E60A0008 */ swc1 $f10, 8($s0) +/* 03A82C 7F005CBC 468084A0 */ cvt.s.w $f18, $f16 +/* 03A830 7F005CC0 46144283 */ div.s $f10, $f8, $f20 +/* 03A834 7F005CC4 E604000C */ swc1 $f4, 0xc($s0) +/* 03A838 7F005CC8 46149103 */ div.s $f4, $f18, $f20 +/* 03A83C 7F005CCC E60A0010 */ swc1 $f10, 0x10($s0) +/* 03A840 7F005CD0 0FC30AA2 */ jal get_textptr_for_textID +/* 03A844 7F005CD4 E6040014 */ swc1 $f4, 0x14($s0) +/* 03A848 7F005CD8 8E030020 */ lw $v1, 0x20($s0) +/* 03A84C 7F005CDC AE02001C */ sw $v0, 0x1c($s0) +/* 03A850 7F005CE0 10600004 */ beqz $v1, .L7F005CF4 +/* 03A854 7F005CE4 00000000 */ nop +/* 03A858 7F005CE8 0FC30AA2 */ jal get_textptr_for_textID +/* 03A85C 7F005CEC 3064FFFF */ andi $a0, $v1, 0xffff +/* 03A860 7F005CF0 AE020020 */ sw $v0, 0x20($s0) +.L7F005CF4: +/* 03A864 7F005CF4 1000003C */ b .L7F005DE8 +/* 03A868 7F005CF8 26100028 */ addiu $s0, $s0, 0x28 +watch_time: +/* 03A86C 7F005CFC E6380000 */ swc1 $f24, ($s1) +/* 03A870 7F005D00 8E040008 */ lw $a0, 8($s0) +/* 03A874 7F005D04 2401003C */ li $at, 60 +/* 03A878 7F005D08 5880000F */ blezl $a0, .L7F005D48 +/* 03A87C 7F005D0C 8E020004 */ lw $v0, 4($s0) +/* 03A880 7F005D10 0081001A */ div $zero, $a0, $at +/* 03A884 7F005D14 00007010 */ mfhi $t6 +/* 03A888 7F005D18 000E78C0 */ sll $t7, $t6, 3 +/* 03A88C 7F005D1C 01EE7823 */ subu $t7, $t7, $t6 +/* 03A890 7F005D20 000F7940 */ sll $t7, $t7, 5 +/* 03A894 7F005D24 01EE7821 */ addu $t7, $t7, $t6 +/* 03A898 7F005D28 000F7900 */ sll $t7, $t7, 4 +/* 03A89C 7F005D2C 448F4000 */ mtc1 $t7, $f8 +/* 03A8A0 7F005D30 C6260000 */ lwc1 $f6, ($s1) +/* 03A8A4 7F005D34 3C018008 */ lui $at, %hi(watch_time_0) # $at, 0x8008 +/* 03A8A8 7F005D38 468042A0 */ cvt.s.w $f10, $f8 +/* 03A8AC 7F005D3C 460A3400 */ add.s $f16, $f6, $f10 +/* 03A8B0 7F005D40 E4309A64 */ swc1 $f16, %lo(watch_time_0)($at) +/* 03A8B4 7F005D44 8E020004 */ lw $v0, 4($s0) +.L7F005D48: +/* 03A8B8 7F005D48 2401000C */ li $at, 12 +/* 03A8BC 7F005D4C 1840000E */ blez $v0, .L7F005D88 +/* 03A8C0 7F005D50 00000000 */ nop +/* 03A8C4 7F005D54 0041001A */ div $zero, $v0, $at +/* 03A8C8 7F005D58 00004010 */ mfhi $t0 +/* 03A8CC 7F005D5C 3C010003 */ lui $at, (0x00034BC0 >> 16) # lui $at, 3 +/* 03A8D0 7F005D60 34214BC0 */ ori $at, (0x00034BC0 & 0xFFFF) # ori $at, $at, 0x4bc0 +/* 03A8D4 7F005D64 01010019 */ multu $t0, $at +/* 03A8D8 7F005D68 C6320000 */ lwc1 $f18, ($s1) +/* 03A8DC 7F005D6C 3C018008 */ lui $at, %hi(watch_time_0) # $at, 0x8008 +/* 03A8E0 7F005D70 00004812 */ mflo $t1 +/* 03A8E4 7F005D74 44892000 */ mtc1 $t1, $f4 +/* 03A8E8 7F005D78 00000000 */ nop +/* 03A8EC 7F005D7C 46802220 */ cvt.s.w $f8, $f4 +/* 03A8F0 7F005D80 46089180 */ add.s $f6, $f18, $f8 +/* 03A8F4 7F005D84 E4269A64 */ swc1 $f6, %lo(watch_time_0)($at) +.L7F005D88: +/* 03A8F8 7F005D88 10000017 */ b .L7F005DE8 +/* 03A8FC 7F005D8C 2610000C */ addiu $s0, $s0, 0xc +credits: +/* 03A900 7F005D90 3C0A8007 */ lui $t2, %hi(dword_CODE_bss_80075D28) # $t2, 0x8007 +/* 03A904 7F005D94 8D4A5D68 */ lw $t2, %lo(dword_CODE_bss_80075D28)($t2) +/* 03A908 7F005D98 8E0B0004 */ lw $t3, 4($s0) +/* 03A90C 7F005D9C 3C018003 */ lui $at, %hi(D_80036440) # $at, 0x8003 +/* 03A910 7F005DA0 014B1021 */ addu $v0, $t2, $t3 +/* 03A914 7F005DA4 AC226480 */ sw $v0, %lo(D_80036440)($at) +/* 03A918 7F005DA8 944C0000 */ lhu $t4, ($v0) +/* 03A91C 7F005DAC 55800005 */ bnezl $t4, .L7F005DC4 +/* 03A920 7F005DB0 9459000C */ lhu $t9, 0xc($v0) +/* 03A924 7F005DB4 944D0002 */ lhu $t5, 2($v0) +/* 03A928 7F005DB8 11A00008 */ beqz $t5, .L7F005DDC +/* 03A92C 7F005DBC 00000000 */ nop +/* 03A930 7F005DC0 9459000C */ lhu $t9, 0xc($v0) +.L7F005DC4: +/* 03A934 7F005DC4 2442000C */ addiu $v0, $v0, 0xc +/* 03A938 7F005DC8 5720FFFE */ bnezl $t9, .L7F005DC4 +/* 03A93C 7F005DCC 9459000C */ lhu $t9, 0xc($v0) +/* 03A940 7F005DD0 94580002 */ lhu $t8, 2($v0) +/* 03A944 7F005DD4 5700FFFB */ bnezl $t8, .L7F005DC4 +/* 03A948 7F005DD8 9459000C */ lhu $t9, 0xc($v0) +.L7F005DDC: +/* 03A94C 7F005DDC 10000002 */ b .L7F005DE8 +/* 03A950 7F005DE0 26100008 */ addiu $s0, $s0, 8 +def_7F005A74: +.L7F005DE4: +/* 03A954 7F005DE4 26100004 */ addiu $s0, $s0, 4 +.L7F005DE8: +/* 03A958 7F005DE8 8E020000 */ lw $v0, ($s0) +/* 03A95C 7F005DEC 24010009 */ li $at, 9 +/* 03A960 7F005DF0 5441FF15 */ bnel $v0, $at, .L7F005A48 +/* 03A964 7F005DF4 2C410009 */ sltiu $at, $v0, 9 +.L7F005DF8: +/* 03A968 7F005DF8 3C028003 */ lui $v0, %hi(D_800364B8) # $v0, 0x8003 +/* 03A96C 7F005DFC 8C4264F8 */ lw $v0, %lo(D_800364B8)($v0) +/* 03A970 7F005E00 3C128008 */ lui $s2, %hi(pPlayer) # $s2, 0x8008 +/* 03A974 7F005E04 2652A120 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5ee0 +/* 03A978 7F005E08 10400012 */ beqz $v0, .L7F005E54 +/* 03A97C 7F005E0C 3C018003 */ lui $at, %hi(ptr_random06cam_entry) # $at, 0x8003 +/* 03A980 7F005E10 0C002918 */ jal get_random_value +/* 03A984 7F005E14 AC226500 */ sw $v0, %lo(ptr_random06cam_entry)($at) +/* 03A988 7F005E18 3C0E8003 */ lui $t6, %hi(D_800364BC) # $t6, 0x8003 +/* 03A98C 7F005E1C 8DCE64FC */ lw $t6, %lo(D_800364BC)($t6) +/* 03A990 7F005E20 004E001B */ divu $zero, $v0, $t6 +/* 03A994 7F005E24 00001810 */ mfhi $v1 +/* 03A998 7F005E28 15C00002 */ bnez $t6, .L7F005E34 +/* 03A99C 7F005E2C 00000000 */ nop +/* 03A9A0 7F005E30 0007000D */ break 7 +.L7F005E34: +/* 03A9A4 7F005E34 18600007 */ blez $v1, .L7F005E54 +.L7F005E38: +/* 03A9A8 7F005E38 3C0F8003 */ lui $t7, %hi(ptr_random06cam_entry) # $t7, 0x8003 +/* 03A9AC 7F005E3C 8DEF6500 */ lw $t7, %lo(ptr_random06cam_entry)($t7) +/* 03A9B0 7F005E40 2463FFFF */ addiu $v1, $v1, -1 +/* 03A9B4 7F005E44 3C018003 */ lui $at, %hi(ptr_random06cam_entry) # $at, 0x8003 +/* 03A9B8 7F005E48 8DE80024 */ lw $t0, 0x24($t7) +/* 03A9BC 7F005E4C 1C60FFFA */ bgtz $v1, .L7F005E38 +/* 03A9C0 7F005E50 AC286500 */ sw $t0, %lo(ptr_random06cam_entry)($at) +.L7F005E54: +/* 03A9C4 7F005E54 0FC2335A */ jal add_item_to_inventory +/* 03A9C8 7F005E58 24040001 */ li $a0, 1 +/* 03A9CC 7F005E5C 8FA90084 */ lw $t1, 0x84($sp) +/* 03A9D0 7F005E60 15200003 */ bnez $t1, .L7F005E70 +/* 03A9D4 7F005E64 240A0001 */ li $t2, 1 +/* 03A9D8 7F005E68 3C018008 */ lui $at, %hi(starting_right_weapon) # $at, 0x8008 +/* 03A9DC 7F005E6C AC2A9A20 */ sw $t2, %lo(starting_right_weapon)($at) +.L7F005E70: +/* 03A9E0 7F005E70 8E4B0000 */ lw $t3, ($s2) +/* 03A9E4 7F005E74 3C018005 */ lui $at, %hi(D_8004F1D0) # $at, 0x8005 +/* 03A9E8 7F005E78 3C198008 */ lui $t9, %hi(dword_CODE_bss_80079C68) # $t9, 0x8008 +/* 03A9EC 7F005E7C E5780078 */ swc1 $f24, 0x78($t3) +/* 03A9F0 7F005E80 8E4C0000 */ lw $t4, ($s2) +/* 03A9F4 7F005E84 C42AF200 */ lwc1 $f10, %lo(D_8004F1D0)($at) +/* 03A9F8 7F005E88 E58A007C */ swc1 $f10, 0x7c($t4) +/* 03A9FC 7F005E8C 8E4D0000 */ lw $t5, ($s2) +/* 03AA00 7F005E90 E5B80080 */ swc1 $f24, 0x80($t5) +/* 03AA04 7F005E94 8F399CD8 */ lw $t9, %lo(dword_CODE_bss_80079C68)($t9) +/* 03AA08 7F005E98 5B20002C */ blezl $t9, .L7F005F4C +/* 03AA0C 7F005E9C 27A40094 */ addiu $a0, $sp, 0x94 +/* 03AA10 7F005EA0 0FC26C01 */ jal get_num_players +/* 03AA14 7F005EA4 00000000 */ nop +/* 03AA18 7F005EA8 28410002 */ slti $at, $v0, 2 +/* 03AA1C 7F005EAC 14200008 */ bnez $at, .L7F005ED0 +/* 03AA20 7F005EB0 3C188008 */ lui $t8, %hi(dword_CODE_bss_80079C68) # $t8, 0x8008 +/* 03AA24 7F005EB4 8F189CD8 */ lw $t8, %lo(dword_CODE_bss_80079C68)($t8) +/* 03AA28 7F005EB8 5B000006 */ blezl $t8, .L7F005ED4 +/* 03AA2C 7F005EBC 00001825 */ move $v1, $zero +/* 03AA30 7F005EC0 0FC1E5B8 */ jal sub_GAME_7F0790F0 +/* 03AA34 7F005EC4 00000000 */ nop +/* 03AA38 7F005EC8 10000002 */ b .L7F005ED4 +/* 03AA3C 7F005ECC 00401825 */ move $v1, $v0 +.L7F005ED0: +/* 03AA40 7F005ED0 00001825 */ move $v1, $zero +.L7F005ED4: +/* 03AA44 7F005ED4 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_80079C28) # $t7, 0x8008 +/* 03AA48 7F005ED8 25EF9C98 */ addiu $t7, %lo(dword_CODE_bss_80079C28) # addiu $t7, $t7, -0x6368 +/* 03AA4C 7F005EDC 00037080 */ sll $t6, $v1, 2 +/* 03AA50 7F005EE0 01CF8821 */ addu $s1, $t6, $t7 +/* 03AA54 7F005EE4 8E300000 */ lw $s0, ($s1) +/* 03AA58 7F005EE8 C6100000 */ lwc1 $f16, ($s0) +/* 03AA5C 7F005EEC E7B00094 */ swc1 $f16, 0x94($sp) +/* 03AA60 7F005EF0 C6040008 */ lwc1 $f4, 8($s0) +/* 03AA64 7F005EF4 8FA50094 */ lw $a1, 0x94($sp) +/* 03AA68 7F005EF8 E7A4009C */ swc1 $f4, 0x9c($sp) +/* 03AA6C 7F005EFC 8E040028 */ lw $a0, 0x28($s0) +/* 03AA70 7F005F00 8FA6009C */ lw $a2, 0x9c($sp) +/* 03AA74 7F005F04 0FC204DC */ jal sub_GAME_7F080D60 +/* 03AA78 7F005F08 AFA4008C */ sw $a0, 0x8c($sp) +/* 03AA7C 7F005F0C 8E420000 */ lw $v0, ($s2) +/* 03AA80 7F005F10 46000506 */ mov.s $f20, $f0 +/* 03AA84 7F005F14 C45229BC */ lwc1 $f18, 0x29bc($v0) +/* 03AA88 7F005F18 46009200 */ add.s $f8, $f18, $f0 +/* 03AA8C 7F005F1C E7A80098 */ swc1 $f8, 0x98($sp) +/* 03AA90 7F005F20 E4400070 */ swc1 $f0, 0x70($v0) +/* 03AA94 7F005F24 8E300000 */ lw $s0, ($s1) +/* 03AA98 7F005F28 C60C0018 */ lwc1 $f12, 0x18($s0) +/* 03AA9C 7F005F2C 0FC16BD4 */ jal atan2f +/* 03AAA0 7F005F30 C60E0020 */ lwc1 $f14, 0x20($s0) +/* 03AAA4 7F005F34 3C018005 */ lui $at, %hi(D_8004F1D4) # $at, 0x8005 +/* 03AAA8 7F005F38 C426F204 */ lwc1 $f6, %lo(D_8004F1D4)($at) +/* 03AAAC 7F005F3C 46003281 */ sub.s $f10, $f6, $f0 +/* 03AAB0 7F005F40 10000011 */ b .L7F005F88 +/* 03AAB4 7F005F44 E7AA0090 */ swc1 $f10, 0x90($sp) +/* 03AAB8 7F005F48 27A40094 */ addiu $a0, $sp, 0x94 +.L7F005F4C: +/* 03AABC 7F005F4C 27A50098 */ addiu $a1, $sp, 0x98 +/* 03AAC0 7F005F50 27A6009C */ addiu $a2, $sp, 0x9c +/* 03AAC4 7F005F54 0FC2C1CA */ jal sub_GAME_7F0AFB78 +/* 03AAC8 7F005F58 3C0741F0 */ lui $a3, 0x41f0 +/* 03AACC 7F005F5C AFA2008C */ sw $v0, 0x8c($sp) +/* 03AAD0 7F005F60 00402025 */ move $a0, $v0 +/* 03AAD4 7F005F64 8FA50094 */ lw $a1, 0x94($sp) +/* 03AAD8 7F005F68 0FC204DC */ jal sub_GAME_7F080D60 +/* 03AADC 7F005F6C 8FA6009C */ lw $a2, 0x9c($sp) +/* 03AAE0 7F005F70 8E420000 */ lw $v0, ($s2) +/* 03AAE4 7F005F74 46000506 */ mov.s $f20, $f0 +/* 03AAE8 7F005F78 C45029BC */ lwc1 $f16, 0x29bc($v0) +/* 03AAEC 7F005F7C 46008100 */ add.s $f4, $f16, $f0 +/* 03AAF0 7F005F80 E7A40098 */ swc1 $f4, 0x98($sp) +/* 03AAF4 7F005F84 E4400070 */ swc1 $f0, 0x70($v0) +.L7F005F88: +/* 03AAF8 7F005F88 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 03AAFC 7F005F8C 44814000 */ mtc1 $at, $f8 +/* 03AB00 7F005F90 C7B20090 */ lwc1 $f18, 0x90($sp) +/* 03AB04 7F005F94 3C018005 */ lui $at, %hi(D_8004F1D8) # $at, 0x8005 +/* 03AB08 7F005F98 C42AF208 */ lwc1 $f10, %lo(D_8004F1D8)($at) +/* 03AB0C 7F005F9C 46089182 */ mul.s $f6, $f18, $f8 +/* 03AB10 7F005FA0 8E480000 */ lw $t0, ($s2) +/* 03AB14 7F005FA4 3C018005 */ lui $at, %hi(D_8004F1DC) # $at, 0x8005 +/* 03AB18 7F005FA8 27A50094 */ addiu $a1, $sp, 0x94 +/* 03AB1C 7F005FAC 460A3403 */ div.s $f16, $f6, $f10 +/* 03AB20 7F005FB0 E5100148 */ swc1 $f16, 0x148($t0) +/* 03AB24 7F005FB4 8E490000 */ lw $t1, ($s2) +/* 03AB28 7F005FB8 E5340074 */ swc1 $f20, 0x74($t1) +/* 03AB2C 7F005FBC C424F20C */ lwc1 $f4, %lo(D_8004F1DC)($at) +/* 03AB30 7F005FC0 8E4A0000 */ lw $t2, ($s2) +/* 03AB34 7F005FC4 4604A483 */ div.s $f18, $f20, $f4 +/* 03AB38 7F005FC8 E552006C */ swc1 $f18, 0x6c($t2) +/* 03AB3C 7F005FCC 8E440000 */ lw $a0, ($s2) +/* 03AB40 7F005FD0 8FA6008C */ lw $a2, 0x8c($sp) +/* 03AB44 7F005FD4 0FC1F355 */ jal change_player_pos_to_target +/* 03AB48 7F005FD8 24840488 */ addiu $a0, $a0, 0x488 +/* 03AB4C 7F005FDC 0FC160F3 */ jal sinf +/* 03AB50 7F005FE0 C7AC0090 */ lwc1 $f12, 0x90($sp) +/* 03AB54 7F005FE4 8E4B0000 */ lw $t3, ($s2) +/* 03AB58 7F005FE8 46000207 */ neg.s $f8, $f0 +/* 03AB5C 7F005FEC E5680498 */ swc1 $f8, 0x498($t3) +/* 03AB60 7F005FF0 8E4C0000 */ lw $t4, ($s2) +/* 03AB64 7F005FF4 E598049C */ swc1 $f24, 0x49c($t4) +/* 03AB68 7F005FF8 0FC160F0 */ jal cosf +/* 03AB6C 7F005FFC C7AC0090 */ lwc1 $f12, 0x90($sp) +/* 03AB70 7F006000 8E4D0000 */ lw $t5, ($s2) +/* 03AB74 7F006004 3C018003 */ lui $at, %hi(D_800364D0) # $at, 0x8003 +/* 03AB78 7F006008 E5A004A0 */ swc1 $f0, 0x4a0($t5) +/* 03AB7C 7F00600C 0FC2277B */ jal sub_GAME_7F089718 +/* 03AB80 7F006010 C42C6510 */ lwc1 $f12, %lo(D_800364D0)($at) +/* 03AB84 7F006014 3C018008 */ lui $at, %hi(dword_CODE_bss_80079DA0) # $at, 0x8008 +/* 03AB88 7F006018 AC209E10 */ sw $zero, %lo(dword_CODE_bss_80079DA0)($at) +/* 03AB8C 7F00601C 3C018008 */ lui $at, %hi(dword_CODE_bss_80079DA4) # $at, 0x8008 +/* 03AB90 7F006020 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079DA8) # $v0, 0x8008 +/* 03AB94 7F006024 3C038008 */ lui $v1, %hi(dword_CODE_bss_80079DC8) # $v1, 0x8008 +/* 03AB98 7F006028 24639E38 */ addiu $v1, %lo(dword_CODE_bss_80079DC8) # addiu $v1, $v1, -0x61c8 +/* 03AB9C 7F00602C 24429E18 */ addiu $v0, %lo(dword_CODE_bss_80079DA8) # addiu $v0, $v0, -0x61e8 +/* 03ABA0 7F006030 AC209E14 */ sw $zero, %lo(dword_CODE_bss_80079DA4)($at) +.L7F006034: +/* 03ABA4 7F006034 24420010 */ addiu $v0, $v0, 0x10 +/* 03ABA8 7F006038 AC40FFF4 */ sw $zero, -0xc($v0) +/* 03ABAC 7F00603C AC40FFF8 */ sw $zero, -8($v0) +/* 03ABB0 7F006040 AC40FFFC */ sw $zero, -4($v0) +/* 03ABB4 7F006044 1443FFFB */ bne $v0, $v1, .L7F006034 +/* 03ABB8 7F006048 AC40FFF0 */ sw $zero, -0x10($v0) +/* 03ABBC 7F00604C 0FC22A9A */ jal reset_intro_camera_message_dialogs_for_BONDdata +/* 03ABC0 7F006050 00000000 */ nop +/* 03ABC4 7F006054 0FC22C37 */ jal sub_GAME_7F08A900 +/* 03ABC8 7F006058 00000000 */ nop +/* 03ABCC 7F00605C 0FC0E9CC */ jal remove_last_obj_pos_data_entry +/* 03ABD0 7F006060 00000000 */ nop +/* 03ABD4 7F006064 8E590000 */ lw $t9, ($s2) +/* 03ABD8 7F006068 240F0006 */ li $t7, 6 +/* 03ABDC 7F00606C AF2200A8 */ sw $v0, 0xa8($t9) +/* 03ABE0 7F006070 8E580000 */ lw $t8, ($s2) +/* 03ABE4 7F006074 8F0E00A8 */ lw $t6, 0xa8($t8) +/* 03ABE8 7F006078 ADC00004 */ sw $zero, 4($t6) +/* 03ABEC 7F00607C 8E480000 */ lw $t0, ($s2) +/* 03ABF0 7F006080 8D0900A8 */ lw $t1, 0xa8($t0) +/* 03ABF4 7F006084 A12F0000 */ sb $t7, ($t1) +/* 03ABF8 7F006088 8E4A0000 */ lw $t2, ($s2) +/* 03ABFC 7F00608C C7A00094 */ lwc1 $f0, 0x94($sp) +/* 03AC00 7F006090 E5400408 */ swc1 $f0, 0x408($t2) +/* 03AC04 7F006094 8E4B0000 */ lw $t3, ($s2) +/* 03AC08 7F006098 8D6C00A8 */ lw $t4, 0xa8($t3) +/* 03AC0C 7F00609C E5800008 */ swc1 $f0, 8($t4) +/* 03AC10 7F0060A0 8E4D0000 */ lw $t5, ($s2) +/* 03AC14 7F0060A4 C7A00098 */ lwc1 $f0, 0x98($sp) +/* 03AC18 7F0060A8 E5A0040C */ swc1 $f0, 0x40c($t5) +/* 03AC1C 7F0060AC 8E590000 */ lw $t9, ($s2) +/* 03AC20 7F0060B0 8F3800A8 */ lw $t8, 0xa8($t9) +/* 03AC24 7F0060B4 E700000C */ swc1 $f0, 0xc($t8) +/* 03AC28 7F0060B8 8E4E0000 */ lw $t6, ($s2) +/* 03AC2C 7F0060BC C7A0009C */ lwc1 $f0, 0x9c($sp) +/* 03AC30 7F0060C0 E5C00410 */ swc1 $f0, 0x410($t6) +/* 03AC34 7F0060C4 8E480000 */ lw $t0, ($s2) +/* 03AC38 7F0060C8 8D0F00A8 */ lw $t7, 0xa8($t0) +/* 03AC3C 7F0060CC E5E00010 */ swc1 $f0, 0x10($t7) +/* 03AC40 7F0060D0 8E4A0000 */ lw $t2, ($s2) +/* 03AC44 7F0060D4 8FA9008C */ lw $t1, 0x8c($sp) +/* 03AC48 7F0060D8 8D4B00A8 */ lw $t3, 0xa8($t2) +/* 03AC4C 7F0060DC AD690014 */ sw $t1, 0x14($t3) +/* 03AC50 7F0060E0 8E4C0000 */ lw $t4, ($s2) +/* 03AC54 7F0060E4 0FC0E9E9 */ jal set_current_objposdata_plus_0x28 +/* 03AC58 7F0060E8 8D8400A8 */ lw $a0, 0xa8($t4) +/* 03AC5C 7F0060EC 8E4D0000 */ lw $t5, ($s2) +/* 03AC60 7F0060F0 0FC0E9C1 */ jal set_stateflag_0x04_for_posdata +/* 03AC64 7F0060F4 8DA400A8 */ lw $a0, 0xa8($t5) +/* 03AC68 7F0060F8 8E420000 */ lw $v0, ($s2) +/* 03AC6C 7F0060FC 3C018005 */ lui $at, %hi(D_8004F1E0) # $at, 0x8005 +/* 03AC70 7F006100 C420F210 */ lwc1 $f0, %lo(D_8004F1E0)($at) +/* 03AC74 7F006104 C44604B4 */ lwc1 $f6, 0x4b4($v0) +/* 03AC78 7F006108 46003283 */ div.s $f10, $f6, $f0 +/* 03AC7C 7F00610C E44A03B8 */ swc1 $f10, 0x3b8($v0) +/* 03AC80 7F006110 8E420000 */ lw $v0, ($s2) +/* 03AC84 7F006114 C45004B8 */ lwc1 $f16, 0x4b8($v0) +/* 03AC88 7F006118 46008103 */ div.s $f4, $f16, $f0 +/* 03AC8C 7F00611C E44403BC */ swc1 $f4, 0x3bc($v0) +/* 03AC90 7F006120 8E420000 */ lw $v0, ($s2) +/* 03AC94 7F006124 C45204BC */ lwc1 $f18, 0x4bc($v0) +/* 03AC98 7F006128 46009203 */ div.s $f8, $f18, $f0 +/* 03AC9C 7F00612C 0FC26C01 */ jal get_num_players +/* 03ACA0 7F006130 E44803C0 */ swc1 $f8, 0x3c0($v0) +/* 03ACA4 7F006134 24010001 */ li $at, 1 +/* 03ACA8 7F006138 14410005 */ bne $v0, $at, .L7F006150 +/* 03ACAC 7F00613C 00000000 */ nop +/* 03ACB0 7F006140 0FC1EBF6 */ jal set_camera_mode +/* 03ACB4 7F006144 24040001 */ li $a0, 1 +/* 03ACB8 7F006148 10000003 */ b .L7F006158 +/* 03ACBC 7F00614C 00000000 */ nop +.L7F006150: +/* 03ACC0 7F006150 0FC1EBF6 */ jal set_camera_mode +/* 03ACC4 7F006154 24040009 */ li $a0, 9 +.L7F006158: +/* 03ACC8 7F006158 3C048003 */ lui $a0, %hi(D_800364D8) # $a0, 0x8003 +/* 03ACCC 7F00615C 24846518 */ addiu $a0, %lo(D_800364D8) # addiu $a0, $a0, 0x6518 +/* 03ACD0 7F006160 0000C880 */ sll $t9, $zero, 2 +/* 03ACD4 7F006164 0099C021 */ addu $t8, $a0, $t9 +/* 03ACD8 7F006168 8F0E0000 */ lw $t6, ($t8) +/* 03ACDC 7F00616C 3C038003 */ lui $v1, %hi(D_8003650C) # $v1, 0x8003 +/* 03ACE0 7F006170 2463654C */ addiu $v1, %lo(D_8003650C) # addiu $v1, $v1, 0x654c +/* 03ACE4 7F006174 AC600000 */ sw $zero, ($v1) +/* 03ACE8 7F006178 11C00009 */ beqz $t6, .L7F0061A0 +/* 03ACEC 7F00617C 00001025 */ move $v0, $zero +/* 03ACF0 7F006180 24480001 */ addiu $t0, $v0, 1 +.L7F006184: +/* 03ACF4 7F006184 00087880 */ sll $t7, $t0, 2 +/* 03ACF8 7F006188 008F5021 */ addu $t2, $a0, $t7 +/* 03ACFC 7F00618C 8D490000 */ lw $t1, ($t2) +/* 03AD00 7F006190 AC680000 */ sw $t0, ($v1) +/* 03AD04 7F006194 01001025 */ move $v0, $t0 +/* 03AD08 7F006198 5520FFFA */ bnezl $t1, .L7F006184 +/* 03AD0C 7F00619C 24480001 */ addiu $t0, $v0, 1 +.L7F0061A0: +/* 03AD10 7F0061A0 8E4C0000 */ lw $t4, ($s2) +/* 03AD14 7F0061A4 240B0001 */ li $t3, 1 +/* 03AD18 7F0061A8 3C018003 */ lui $at, %hi(D_80036510) # $at, 0x8003 +/* 03AD1C 7F0061AC AD8B0420 */ sw $t3, 0x420($t4) +/* 03AD20 7F0061B0 8E4D0000 */ lw $t5, ($s2) +/* 03AD24 7F0061B4 ADA00424 */ sw $zero, 0x424($t5) +/* 03AD28 7F0061B8 8E590000 */ lw $t9, ($s2) +/* 03AD2C 7F0061BC AF200428 */ sw $zero, 0x428($t9) +/* 03AD30 7F0061C0 8FBF003C */ lw $ra, 0x3c($sp) +/* 03AD34 7F0061C4 8FB20038 */ lw $s2, 0x38($sp) +/* 03AD38 7F0061C8 8FB10034 */ lw $s1, 0x34($sp) +/* 03AD3C 7F0061CC 8FB00030 */ lw $s0, 0x30($sp) +/* 03AD40 7F0061D0 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 03AD44 7F0061D4 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 03AD48 7F0061D8 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 03AD4C 7F0061DC AC206550 */ sw $zero, %lo(D_80036510)($at) +/* 03AD50 7F0061E0 03E00008 */ jr $ra +/* 03AD54 7F0061E4 27BD00A0 */ addiu $sp, $sp, 0xa0 + +) +#endif + +#endif diff --git a/src/game/initexplosioncasing.c b/src/game/initexplosioncasing.c new file mode 100644 index 0000000..e1d4356 --- /dev/null +++ b/src/game/initexplosioncasing.c @@ -0,0 +1,281 @@ +#include "ultra64.h" + + + +#ifdef NONMATCHING +void alloc_explosion_smoke_casing_scorch_impact_buffers(void) { + +} +#else +GLOBAL_ASM( +.text +glabel alloc_explosion_smoke_casing_scorch_impact_buffers +/* 03B8C0 7F006D90 3C018004 */ lui $at, %hi(D_80040170) +/* 03B8C4 7F006D94 AC200170 */ sw $zero, %lo(D_80040170)($at) +/* 03B8C8 7F006D98 3C018004 */ lui $at, %hi(D_80040174) +/* 03B8CC 7F006D9C AC200174 */ sw $zero, %lo(D_80040174)($at) +/* 03B8D0 7F006DA0 3C018004 */ lui $at, %hi(D_8004017C+0x684) +/* 03B8D4 7F006DA4 AC200800 */ sw $zero, %lo(D_8004017C+0x684)($at) +/* 03B8D8 7F006DA8 3C018004 */ lui $at, %hi(D_8004017C+0x688) +/* 03B8DC 7F006DAC AC200804 */ sw $zero, %lo(D_8004017C+0x688)($at) +/* 03B8E0 7F006DB0 3C018004 */ lui $at, %hi(D_8004017C+0x68C) +/* 03B8E4 7F006DB4 AC200808 */ sw $zero, %lo(D_8004017C+0x68C)($at) +/* 03B8E8 7F006DB8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03B8EC 7F006DBC 44812000 */ mtc1 $at, $f4 +/* 03B8F0 7F006DC0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03B8F4 7F006DC4 AFBF0014 */ sw $ra, 0x14($sp) +/* 03B8F8 7F006DC8 3C018004 */ lui $at, %hi(D_80040178) +/* 03B8FC 7F006DCC 24041740 */ li $a0, 5952 +/* 03B900 7F006DD0 24050004 */ li $a1, 4 +/* 03B904 7F006DD4 0C0025C8 */ jal mempAllocBytesInBank +/* 03B908 7F006DD8 E4240178 */ swc1 $f4, %lo(D_80040178)($at) +/* 03B90C 7F006DDC 3C038008 */ lui $v1, %hi(ptr_explosion_buf) +/* 03B910 7F006DE0 2463A144 */ addiu $v1, %lo(ptr_explosion_buf) # addiu $v1, $v1, -0x5ebc +/* 03B914 7F006DE4 AC620000 */ sw $v0, ($v1) +/* 03B918 7F006DE8 00002025 */ move $a0, $zero +/* 03B91C 7F006DEC 00003025 */ move $a2, $zero +/* 03B920 7F006DF0 240503C0 */ li $a1, 960 +.L7F006DF4: +/* 03B924 7F006DF4 8C6E0000 */ lw $t6, ($v1) +/* 03B928 7F006DF8 00001025 */ move $v0, $zero +/* 03B92C 7F006DFC 01C67821 */ addu $t7, $t6, $a2 +/* 03B930 7F006E00 ADE00000 */ sw $zero, ($t7) +.L7F006E04: +/* 03B934 7F006E04 8C780000 */ lw $t8, ($v1) +/* 03B938 7F006E08 0004C940 */ sll $t9, $a0, 5 +/* 03B93C 7F006E0C 0324C823 */ subu $t9, $t9, $a0 +/* 03B940 7F006E10 0019C940 */ sll $t9, $t9, 5 +/* 03B944 7F006E14 03194021 */ addu $t0, $t8, $t9 +/* 03B948 7F006E18 01024821 */ addu $t1, $t0, $v0 +/* 03B94C 7F006E1C A520001C */ sh $zero, 0x1c($t1) +/* 03B950 7F006E20 8C6A0000 */ lw $t2, ($v1) +/* 03B954 7F006E24 00045940 */ sll $t3, $a0, 5 +/* 03B958 7F006E28 01645823 */ subu $t3, $t3, $a0 +/* 03B95C 7F006E2C 000B5940 */ sll $t3, $t3, 5 +/* 03B960 7F006E30 014B6021 */ addu $t4, $t2, $t3 +/* 03B964 7F006E34 01826821 */ addu $t5, $t4, $v0 +/* 03B968 7F006E38 A5A00034 */ sh $zero, 0x34($t5) +/* 03B96C 7F006E3C 8C6E0000 */ lw $t6, ($v1) +/* 03B970 7F006E40 00047940 */ sll $t7, $a0, 5 +/* 03B974 7F006E44 01E47823 */ subu $t7, $t7, $a0 +/* 03B978 7F006E48 000F7940 */ sll $t7, $t7, 5 +/* 03B97C 7F006E4C 01CFC021 */ addu $t8, $t6, $t7 +/* 03B980 7F006E50 0302C821 */ addu $t9, $t8, $v0 +/* 03B984 7F006E54 A720004C */ sh $zero, 0x4c($t9) +/* 03B988 7F006E58 8C680000 */ lw $t0, ($v1) +/* 03B98C 7F006E5C 00044940 */ sll $t1, $a0, 5 +/* 03B990 7F006E60 01244823 */ subu $t1, $t1, $a0 +/* 03B994 7F006E64 00094940 */ sll $t1, $t1, 5 +/* 03B998 7F006E68 01095021 */ addu $t2, $t0, $t1 +/* 03B99C 7F006E6C 01425821 */ addu $t3, $t2, $v0 +/* 03B9A0 7F006E70 24420060 */ addiu $v0, $v0, 0x60 +/* 03B9A4 7F006E74 1445FFE3 */ bne $v0, $a1, .L7F006E04 +/* 03B9A8 7F006E78 A5600064 */ sh $zero, 0x64($t3) +/* 03B9AC 7F006E7C 24840001 */ addiu $a0, $a0, 1 +/* 03B9B0 7F006E80 28810006 */ slti $at, $a0, 6 +/* 03B9B4 7F006E84 1420FFDB */ bnez $at, .L7F006DF4 +/* 03B9B8 7F006E88 24C603E0 */ addiu $a2, $a2, 0x3e0 +/* 03B9BC 7F006E8C 24041FE0 */ li $a0, 8160 +/* 03B9C0 7F006E90 0C0025C8 */ jal mempAllocBytesInBank +/* 03B9C4 7F006E94 24050004 */ li $a1, 4 +/* 03B9C8 7F006E98 3C038008 */ lui $v1, %hi(ptr_smoke_buf) +/* 03B9CC 7F006E9C 2463A140 */ addiu $v1, %lo(ptr_smoke_buf) # addiu $v1, $v1, -0x5ec0 +/* 03B9D0 7F006EA0 44800000 */ mtc1 $zero, $f0 +/* 03B9D4 7F006EA4 AC620000 */ sw $v0, ($v1) +/* 03B9D8 7F006EA8 00002025 */ move $a0, $zero +/* 03B9DC 7F006EAC 00003025 */ move $a2, $zero +/* 03B9E0 7F006EB0 24050190 */ li $a1, 400 +.L7F006EB4: +/* 03B9E4 7F006EB4 8C6C0000 */ lw $t4, ($v1) +/* 03B9E8 7F006EB8 00047880 */ sll $t7, $a0, 2 +/* 03B9EC 7F006EBC 01E47823 */ subu $t7, $t7, $a0 +/* 03B9F0 7F006EC0 000F7880 */ sll $t7, $t7, 2 +/* 03B9F4 7F006EC4 01866821 */ addu $t5, $t4, $a2 +/* 03B9F8 7F006EC8 ADA00000 */ sw $zero, ($t5) +/* 03B9FC 7F006ECC 01E47821 */ addu $t7, $t7, $a0 +/* 03BA00 7F006ED0 8C6E0000 */ lw $t6, ($v1) +/* 03BA04 7F006ED4 000F7880 */ sll $t7, $t7, 2 +/* 03BA08 7F006ED8 01E47823 */ subu $t7, $t7, $a0 +/* 03BA0C 7F006EDC 00044080 */ sll $t0, $a0, 2 +/* 03BA10 7F006EE0 01044023 */ subu $t0, $t0, $a0 +/* 03BA14 7F006EE4 000F78C0 */ sll $t7, $t7, 3 +/* 03BA18 7F006EE8 00084080 */ sll $t0, $t0, 2 +/* 03BA1C 7F006EEC 01CFC021 */ addu $t8, $t6, $t7 +/* 03BA20 7F006EF0 E7000014 */ swc1 $f0, 0x14($t8) +/* 03BA24 7F006EF4 01044021 */ addu $t0, $t0, $a0 +/* 03BA28 7F006EF8 8C790000 */ lw $t9, ($v1) +/* 03BA2C 7F006EFC 00084080 */ sll $t0, $t0, 2 +/* 03BA30 7F006F00 01044023 */ subu $t0, $t0, $a0 +/* 03BA34 7F006F04 000840C0 */ sll $t0, $t0, 3 +/* 03BA38 7F006F08 03284821 */ addu $t1, $t9, $t0 +/* 03BA3C 7F006F0C E520003C */ swc1 $f0, 0x3c($t1) +/* 03BA40 7F006F10 24020050 */ li $v0, 80 +.L7F006F14: +/* 03BA44 7F006F14 00045880 */ sll $t3, $a0, 2 +/* 03BA48 7F006F18 01645823 */ subu $t3, $t3, $a0 +/* 03BA4C 7F006F1C 000B5880 */ sll $t3, $t3, 2 +/* 03BA50 7F006F20 01645821 */ addu $t3, $t3, $a0 +/* 03BA54 7F006F24 8C6A0000 */ lw $t2, ($v1) +/* 03BA58 7F006F28 000B5880 */ sll $t3, $t3, 2 +/* 03BA5C 7F006F2C 01645823 */ subu $t3, $t3, $a0 +/* 03BA60 7F006F30 00047880 */ sll $t7, $a0, 2 +/* 03BA64 7F006F34 000B58C0 */ sll $t3, $t3, 3 +/* 03BA68 7F006F38 01E47823 */ subu $t7, $t7, $a0 +/* 03BA6C 7F006F3C 014B6021 */ addu $t4, $t2, $t3 +/* 03BA70 7F006F40 000F7880 */ sll $t7, $t7, 2 +/* 03BA74 7F006F44 01826821 */ addu $t5, $t4, $v0 +/* 03BA78 7F006F48 01E47821 */ addu $t7, $t7, $a0 +/* 03BA7C 7F006F4C E5A00014 */ swc1 $f0, 0x14($t5) +/* 03BA80 7F006F50 8C6E0000 */ lw $t6, ($v1) +/* 03BA84 7F006F54 000F7880 */ sll $t7, $t7, 2 +/* 03BA88 7F006F58 01E47823 */ subu $t7, $t7, $a0 +/* 03BA8C 7F006F5C 000F78C0 */ sll $t7, $t7, 3 +/* 03BA90 7F006F60 00044880 */ sll $t1, $a0, 2 +/* 03BA94 7F006F64 01244823 */ subu $t1, $t1, $a0 +/* 03BA98 7F006F68 01CFC021 */ addu $t8, $t6, $t7 +/* 03BA9C 7F006F6C 0302C821 */ addu $t9, $t8, $v0 +/* 03BAA0 7F006F70 00094880 */ sll $t1, $t1, 2 +/* 03BAA4 7F006F74 01244821 */ addu $t1, $t1, $a0 +/* 03BAA8 7F006F78 E720003C */ swc1 $f0, 0x3c($t9) +/* 03BAAC 7F006F7C 8C680000 */ lw $t0, ($v1) +/* 03BAB0 7F006F80 00094880 */ sll $t1, $t1, 2 +/* 03BAB4 7F006F84 01244823 */ subu $t1, $t1, $a0 +/* 03BAB8 7F006F88 000948C0 */ sll $t1, $t1, 3 +/* 03BABC 7F006F8C 00046880 */ sll $t5, $a0, 2 +/* 03BAC0 7F006F90 01A46823 */ subu $t5, $t5, $a0 +/* 03BAC4 7F006F94 01095021 */ addu $t2, $t0, $t1 +/* 03BAC8 7F006F98 01425821 */ addu $t3, $t2, $v0 +/* 03BACC 7F006F9C 000D6880 */ sll $t5, $t5, 2 +/* 03BAD0 7F006FA0 01A46821 */ addu $t5, $t5, $a0 +/* 03BAD4 7F006FA4 E5600064 */ swc1 $f0, 0x64($t3) +/* 03BAD8 7F006FA8 8C6C0000 */ lw $t4, ($v1) +/* 03BADC 7F006FAC 000D6880 */ sll $t5, $t5, 2 +/* 03BAE0 7F006FB0 01A46823 */ subu $t5, $t5, $a0 +/* 03BAE4 7F006FB4 000D68C0 */ sll $t5, $t5, 3 +/* 03BAE8 7F006FB8 018D7021 */ addu $t6, $t4, $t5 +/* 03BAEC 7F006FBC 01C27821 */ addu $t7, $t6, $v0 +/* 03BAF0 7F006FC0 244200A0 */ addiu $v0, $v0, 0xa0 +/* 03BAF4 7F006FC4 1445FFD3 */ bne $v0, $a1, .L7F006F14 +/* 03BAF8 7F006FC8 E5E0008C */ swc1 $f0, 0x8c($t7) +/* 03BAFC 7F006FCC 24840001 */ addiu $a0, $a0, 1 +/* 03BB00 7F006FD0 28810014 */ slti $at, $a0, 0x14 +/* 03BB04 7F006FD4 1420FFB7 */ bnez $at, .L7F006EB4 +/* 03BB08 7F006FD8 24C60198 */ addiu $a2, $a2, 0x198 +/* 03BB0C 7F006FDC 0FC26919 */ jal get_num_players +/* 03BB10 7F006FE0 00000000 */ nop +/* 03BB14 7F006FE4 24010001 */ li $at, 1 +/* 03BB18 7F006FE8 14410017 */ bne $v0, $at, .L7F007048 +/* 03BB1C 7F006FEC 240406E0 */ li $a0, 1760 +/* 03BB20 7F006FF0 0C0025C8 */ jal mempAllocBytesInBank +/* 03BB24 7F006FF4 24050004 */ li $a1, 4 +/* 03BB28 7F006FF8 3C058008 */ lui $a1, %hi(ptr_scorch_buf) +/* 03BB2C 7F006FFC 24A5A150 */ addiu $a1, %lo(ptr_scorch_buf) # addiu $a1, $a1, -0x5eb0 +/* 03BB30 7F007000 ACA20000 */ sw $v0, ($a1) +/* 03BB34 7F007004 240206E0 */ li $v0, 1760 +/* 03BB38 7F007008 00001825 */ move $v1, $zero +/* 03BB3C 7F00700C 2406FFFF */ li $a2, -1 +.L7F007010: +/* 03BB40 7F007010 8CB80000 */ lw $t8, ($a1) +/* 03BB44 7F007014 0303C821 */ addu $t9, $t8, $v1 +/* 03BB48 7F007018 A7260000 */ sh $a2, ($t9) +/* 03BB4C 7F00701C 8CA80000 */ lw $t0, ($a1) +/* 03BB50 7F007020 01034821 */ addu $t1, $t0, $v1 +/* 03BB54 7F007024 A5260058 */ sh $a2, 0x58($t1) +/* 03BB58 7F007028 8CAA0000 */ lw $t2, ($a1) +/* 03BB5C 7F00702C 01435821 */ addu $t3, $t2, $v1 +/* 03BB60 7F007030 A56600B0 */ sh $a2, 0xb0($t3) +/* 03BB64 7F007034 8CAC0000 */ lw $t4, ($a1) +/* 03BB68 7F007038 01836821 */ addu $t5, $t4, $v1 +/* 03BB6C 7F00703C 24630160 */ addiu $v1, $v1, 0x160 +/* 03BB70 7F007040 1462FFF3 */ bne $v1, $v0, .L7F007010 +/* 03BB74 7F007044 A5A60108 */ sh $a2, 0x108($t5) +.L7F007048: +/* 03BB78 7F007048 24041F40 */ li $a0, 8000 +/* 03BB7C 7F00704C 0C0025C8 */ jal mempAllocBytesInBank +/* 03BB80 7F007050 24050004 */ li $a1, 4 +/* 03BB84 7F007054 3C058008 */ lui $a1, %hi(ptr_bullet_impact_buf) +/* 03BB88 7F007058 24A5A154 */ addiu $a1, %lo(ptr_bullet_impact_buf) # addiu $a1, $a1, -0x5eac +/* 03BB8C 7F00705C ACA20000 */ sw $v0, ($a1) +/* 03BB90 7F007060 2406FFFF */ li $a2, -1 +/* 03BB94 7F007064 00001825 */ move $v1, $zero +.L7F007068: +/* 03BB98 7F007068 8CAE0000 */ lw $t6, ($a1) +/* 03BB9C 7F00706C 01C37821 */ addu $t7, $t6, $v1 +/* 03BBA0 7F007070 24630050 */ addiu $v1, $v1, 0x50 +/* 03BBA4 7F007074 28611F40 */ slti $at, $v1, 0x1f40 +/* 03BBA8 7F007078 1420FFFB */ bnez $at, .L7F007068 +/* 03BBAC 7F00707C A5E60000 */ sh $a2, ($t7) +/* 03BBB0 7F007080 0FC26919 */ jal get_num_players +/* 03BBB4 7F007084 00000000 */ nop +/* 03BBB8 7F007088 241800C8 */ li $t8, 200 +/* 03BBBC 7F00708C 0302001A */ div $zero, $t8, $v0 +/* 03BBC0 7F007090 3C068008 */ lui $a2, %hi(max_casings) +/* 03BBC4 7F007094 24C6A148 */ addiu $a2, %lo(max_casings) # addiu $a2, $a2, -0x5eb8 +/* 03BBC8 7F007098 14400002 */ bnez $v0, .L7F0070A4 +/* 03BBCC 7F00709C 00000000 */ nop +/* 03BBD0 7F0070A0 0007000D */ break 7 +.L7F0070A4: +/* 03BBD4 7F0070A4 2401FFFF */ li $at, -1 +/* 03BBD8 7F0070A8 14410004 */ bne $v0, $at, .L7F0070BC +/* 03BBDC 7F0070AC 3C018000 */ lui $at, 0x8000 +/* 03BBE0 7F0070B0 17010002 */ bne $t8, $at, .L7F0070BC +/* 03BBE4 7F0070B4 00000000 */ nop +/* 03BBE8 7F0070B8 0006000D */ break 6 +.L7F0070BC: +/* 03BBEC 7F0070BC 0000C812 */ mflo $t9 +/* 03BBF0 7F0070C0 ACD90000 */ sw $t9, ($a2) +/* 03BBF4 7F0070C4 0FC2F7C1 */ jal sub_GAME_7F0BDF04 +/* 03BBF8 7F0070C8 00000000 */ nop +/* 03BBFC 7F0070CC 3C068008 */ lui $a2, %hi(max_casings) +/* 03BC00 7F0070D0 2401001D */ li $at, 29 +/* 03BC04 7F0070D4 10410007 */ beq $v0, $at, .L7F0070F4 +/* 03BC08 7F0070D8 24C6A148 */ addiu $a2, %lo(max_casings) # addiu $a2, $a2, -0x5eb8 +/* 03BC0C 7F0070DC 0FC2F7C1 */ jal sub_GAME_7F0BDF04 +/* 03BC10 7F0070E0 00000000 */ nop +/* 03BC14 7F0070E4 3C068008 */ lui $a2, %hi(max_casings) +/* 03BC18 7F0070E8 2401001E */ li $at, 30 +/* 03BC1C 7F0070EC 14410004 */ bne $v0, $at, .L7F007100 +/* 03BC20 7F0070F0 24C6A148 */ addiu $a2, %lo(max_casings) # addiu $a2, $a2, -0x5eb8 +.L7F0070F4: +/* 03BC24 7F0070F4 8CC80000 */ lw $t0, ($a2) +/* 03BC28 7F0070F8 00084843 */ sra $t1, $t0, 1 +/* 03BC2C 7F0070FC ACC90000 */ sw $t1, ($a2) +.L7F007100: +/* 03BC30 7F007100 8CC40000 */ lw $a0, ($a2) +/* 03BC34 7F007104 2401FFF0 */ li $at, -16 +/* 03BC38 7F007108 24050004 */ li $a1, 4 +/* 03BC3C 7F00710C 00045100 */ sll $t2, $a0, 4 +/* 03BC40 7F007110 01445023 */ subu $t2, $t2, $a0 +/* 03BC44 7F007114 000A50C0 */ sll $t2, $t2, 3 +/* 03BC48 7F007118 2544000F */ addiu $a0, $t2, 0xf +/* 03BC4C 7F00711C 00815824 */ and $t3, $a0, $at +/* 03BC50 7F007120 0C0025C8 */ jal mempAllocBytesInBank +/* 03BC54 7F007124 01602025 */ move $a0, $t3 +/* 03BC58 7F007128 3C068008 */ lui $a2, %hi(max_casings) +/* 03BC5C 7F00712C 24C6A148 */ addiu $a2, %lo(max_casings) # addiu $a2, $a2, -0x5eb8 +/* 03BC60 7F007130 8CCC0000 */ lw $t4, ($a2) +/* 03BC64 7F007134 3C038008 */ lui $v1, %hi(ptr_ejected_casing_buf) +/* 03BC68 7F007138 2463A14C */ addiu $v1, %lo(ptr_ejected_casing_buf) # addiu $v1, $v1, -0x5eb4 +/* 03BC6C 7F00713C AC620000 */ sw $v0, ($v1) +/* 03BC70 7F007140 1980000B */ blez $t4, .L7F007170 +/* 03BC74 7F007144 00002025 */ move $a0, $zero +/* 03BC78 7F007148 00001025 */ move $v0, $zero +/* 03BC7C 7F00714C 8C6D0000 */ lw $t5, ($v1) +.L7F007150: +/* 03BC80 7F007150 24840001 */ addiu $a0, $a0, 1 +/* 03BC84 7F007154 01A27021 */ addu $t6, $t5, $v0 +/* 03BC88 7F007158 ADC00000 */ sw $zero, ($t6) +/* 03BC8C 7F00715C 8CCF0000 */ lw $t7, ($a2) +/* 03BC90 7F007160 24420078 */ addiu $v0, $v0, 0x78 +/* 03BC94 7F007164 008F082A */ slt $at, $a0, $t7 +/* 03BC98 7F007168 5420FFF9 */ bnezl $at, .L7F007150 +/* 03BC9C 7F00716C 8C6D0000 */ lw $t5, ($v1) +.L7F007170: +/* 03BCA0 7F007170 8FBF0014 */ lw $ra, 0x14($sp) +/* 03BCA4 7F007174 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03BCA8 7F007178 03E00008 */ jr $ra +/* 03BCAC 7F00717C 00000000 */ nop +) +#endif + + diff --git a/src/game/initgamedata.c b/src/game/initgamedata.c new file mode 100644 index 0000000..9b7171b --- /dev/null +++ b/src/game/initgamedata.c @@ -0,0 +1,36 @@ +#include "ultra64.h" +#include "game/mainmenu.h" +#include "bondconstants.h" + /** + * initGameData + * + **/ +void initGameData(void) { + current_menu = MENU_INVALID; + menu_update = 0; + maybe_prev_menu = MENU_INVALID; + menu_timer = 0; + selected_stage = -1; + briefingpage = BRIEFING_INVALID; + selected_difficulty = DIFFICULTY_MULTI; + screen_size = 0; + folder_selection_screen_option_icon = 0; + selected_folder_num = 0; + mission_failed_or_aborted = 0; + is_first_time_on_legal_screen = 1; + is_first_time_on_main_menu = 1; + prev_keypresses = 0; + maybe_is_in_menu = 1; + slider_007_mode_reaction = 0.0f; + slider_007_mode_health = 1.0f; + slider_007_mode_accuracy = 1.0f; + slider_007_mode_damage = 1.0f; + do_not_play_intro_movie = 0; + randomly_selected_intro_animation = 0; + intro_animation_count = 0; + objinstance = 0; + ptrobjinstance = 0; + full_actor_intro = 0; +} + + diff --git a/src/game/initgamedata.h b/src/game/initgamedata.h new file mode 100644 index 0000000..7f5822c --- /dev/null +++ b/src/game/initgamedata.h @@ -0,0 +1,7 @@ +#ifndef _INITGAMEDATE_H_ +#define _INITGAMEDATE_H_ +#include "ultra64.h" + +void initGameData(void); + +#endif diff --git a/src/game/initguards.c b/src/game/initguards.c new file mode 100644 index 0000000..03216d6 --- /dev/null +++ b/src/game/initguards.c @@ -0,0 +1,138 @@ +#include "ultra64.h" +#include "game/chr.h" + +void init_guards(void) { + animation_rate = 1.0f; + D_8002C904 = 0; + D_8002C908 = 0; + D_8002C90C = 0; + D_8002C910 = 0; + D_8002CC58 = 0; + show_patrols_flag = 0; + player1_guardID = 0x1388; + ptr_guard_data = 0; + num_guards = 0; + init_obj_register_difficulty_vals(); +} + + + +#ifdef NONMATCHING +void alloc_init_GUARDdata_entries(void) { + +} +#else +GLOBAL_ASM( +.text +glabel alloc_init_GUARDdata_entries +/* 0359E8 7F000EB8 248E000A */ addiu $t6, $a0, 0xa +/* 0359EC 7F000EBC 000E7900 */ sll $t7, $t6, 4 +/* 0359F0 7F000EC0 01EE7823 */ subu $t7, $t7, $t6 +/* 0359F4 7F000EC4 000F78C0 */ sll $t7, $t7, 3 +/* 0359F8 7F000EC8 01EE7823 */ subu $t7, $t7, $t6 +/* 0359FC 7F000ECC 000F7880 */ sll $t7, $t7, 2 +/* 035A00 7F000ED0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 035A04 7F000ED4 3C068003 */ lui $a2, %hi(num_guards) +/* 035A08 7F000ED8 25E4000F */ addiu $a0, $t7, 0xf +/* 035A0C 7F000EDC 24C6CC68 */ addiu $a2, %lo(num_guards) # addiu $a2, $a2, -0x3398 +/* 035A10 7F000EE0 AFBF0014 */ sw $ra, 0x14($sp) +/* 035A14 7F000EE4 3498000F */ ori $t8, $a0, 0xf +/* 035A18 7F000EE8 ACCE0000 */ sw $t6, ($a2) +/* 035A1C 7F000EEC 3B04000F */ xori $a0, $t8, 0xf +/* 035A20 7F000EF0 0C0025C8 */ jal mempAllocBytesInBank +/* 035A24 7F000EF4 24050004 */ li $a1, 4 +/* 035A28 7F000EF8 3C068003 */ lui $a2, %hi(num_guards) +/* 035A2C 7F000EFC 24C6CC68 */ addiu $a2, %lo(num_guards) # addiu $a2, $a2, -0x3398 +/* 035A30 7F000F00 8CC80000 */ lw $t0, ($a2) +/* 035A34 7F000F04 3C048003 */ lui $a0, %hi(ptr_guard_data) +/* 035A38 7F000F08 2484CC64 */ addiu $a0, %lo(ptr_guard_data) # addiu $a0, $a0, -0x339c +/* 035A3C 7F000F0C AC820000 */ sw $v0, ($a0) +/* 035A40 7F000F10 1900000B */ blez $t0, .L7F000F40 +/* 035A44 7F000F14 00001825 */ move $v1, $zero +/* 035A48 7F000F18 00001025 */ move $v0, $zero +/* 035A4C 7F000F1C 8C890000 */ lw $t1, ($a0) +.L7F000F20: +/* 035A50 7F000F20 24630001 */ addiu $v1, $v1, 1 +/* 035A54 7F000F24 01225021 */ addu $t2, $t1, $v0 +/* 035A58 7F000F28 AD40001C */ sw $zero, 0x1c($t2) +/* 035A5C 7F000F2C 8CCB0000 */ lw $t3, ($a2) +/* 035A60 7F000F30 244201DC */ addiu $v0, $v0, 0x1dc +/* 035A64 7F000F34 006B082A */ slt $at, $v1, $t3 +/* 035A68 7F000F38 5420FFF9 */ bnezl $at, .L7F000F20 +/* 035A6C 7F000F3C 8C890000 */ lw $t1, ($a0) +.L7F000F40: +/* 035A70 7F000F40 8FBF0014 */ lw $ra, 0x14($sp) +/* 035A74 7F000F44 27BD0018 */ addiu $sp, $sp, 0x18 +/* 035A78 7F000F48 03E00008 */ jr $ra +/* 035A7C 7F000F4C 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void set_new_rand_head_bodies(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_new_rand_head_bodies +/* 035A80 7F000F50 3C0E8004 */ lui $t6, %hi(c_item_entries) +/* 035A84 7F000F54 8DCEDE10 */ lw $t6, %lo(c_item_entries)($t6) +/* 035A88 7F000F58 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 035A8C 7F000F5C AFBF0014 */ sw $ra, 0x14($sp) +/* 035A90 7F000F60 11C00009 */ beqz $t6, .L7F000F88 +/* 035A94 7F000F64 AFA40018 */ sw $a0, 0x18($sp) +/* 035A98 7F000F68 3C0F8004 */ lui $t7, %hi(c_item_entries) +/* 035A9C 7F000F6C 25E2DE10 */ addiu $v0, $t7, %lo(c_item_entries) +/* 035AA0 7F000F70 8C430000 */ lw $v1, ($v0) +/* 035AA4 7F000F74 AC600000 */ sw $zero, ($v1) +.L7F000F78: +/* 035AA8 7F000F78 8C430014 */ lw $v1, 0x14($v0) +/* 035AAC 7F000F7C 24420014 */ addiu $v0, $v0, 0x14 +/* 035AB0 7F000F80 5460FFFD */ bnezl $v1, .L7F000F78 +/* 035AB4 7F000F84 AC600000 */ sw $zero, ($v1) +.L7F000F88: +/* 035AB8 7F000F88 0C002914 */ jal get_random_value +/* 035ABC 7F000F8C 00000000 */ nop +/* 035AC0 7F000F90 3C188003 */ lui $t8, %hi(num_male_heads) +/* 035AC4 7F000F94 8F18CD04 */ lw $t8, %lo(num_male_heads)($t8) +/* 035AC8 7F000F98 3C018003 */ lui $at, %hi(current_random_male_head) +/* 035ACC 7F000F9C 0058001B */ divu $zero, $v0, $t8 +/* 035AD0 7F000FA0 0000C810 */ mfhi $t9 +/* 035AD4 7F000FA4 AC39CE38 */ sw $t9, %lo(current_random_male_head)($at) +/* 035AD8 7F000FA8 17000002 */ bnez $t8, .L7F000FB4 +/* 035ADC 7F000FAC 00000000 */ nop +/* 035AE0 7F000FB0 0007000D */ break 7 +.L7F000FB4: +/* 035AE4 7F000FB4 0C002914 */ jal get_random_value +/* 035AE8 7F000FB8 00000000 */ nop +/* 035AEC 7F000FBC 3C088003 */ lui $t0, %hi(num_female_heads) +/* 035AF0 7F000FC0 8D08CD08 */ lw $t0, %lo(num_female_heads)($t0) +/* 035AF4 7F000FC4 3C018003 */ lui $at, %hi(current_random_female_head) +/* 035AF8 7F000FC8 0048001B */ divu $zero, $v0, $t0 +/* 035AFC 7F000FCC 00004810 */ mfhi $t1 +/* 035B00 7F000FD0 AC29CE3C */ sw $t1, %lo(current_random_female_head)($at) +/* 035B04 7F000FD4 15000002 */ bnez $t0, .L7F000FE0 +/* 035B08 7F000FD8 00000000 */ nop +/* 035B0C 7F000FDC 0007000D */ break 7 +.L7F000FE0: +/* 035B10 7F000FE0 0C002914 */ jal get_random_value +/* 035B14 7F000FE4 00000000 */ nop +/* 035B18 7F000FE8 3C0A8003 */ lui $t2, %hi(num_bodies) +/* 035B1C 7F000FEC 8D4ACD00 */ lw $t2, %lo(num_bodies)($t2) +/* 035B20 7F000FF0 8FBF0014 */ lw $ra, 0x14($sp) +/* 035B24 7F000FF4 3C018003 */ lui $at, %hi(current_random_body) +/* 035B28 7F000FF8 004A001B */ divu $zero, $v0, $t2 +/* 035B2C 7F000FFC 00005810 */ mfhi $t3 +/* 035B30 7F001000 AC2BCE34 */ sw $t3, %lo(current_random_body)($at) +/* 035B34 7F001004 15400002 */ bnez $t2, .L7F001010 +/* 035B38 7F001008 00000000 */ nop +/* 035B3C 7F00100C 0007000D */ break 7 +.L7F001010: +/* 035B40 7F001010 27BD0018 */ addiu $sp, $sp, 0x18 +/* 035B44 7F001014 03E00008 */ jr $ra +/* 035B48 7F001018 00000000 */ nop +) +#endif + diff --git a/src/game/initimages.c b/src/game/initimages.c new file mode 100644 index 0000000..755d512 --- /dev/null +++ b/src/game/initimages.c @@ -0,0 +1,55 @@ +#include "ultra64.h" + +extern image_entries; + +#ifdef NONMATCHING +void image_entries_load(void) { + +} +#else +GLOBAL_ASM( +.text +glabel image_entries_load +/* 035700 7F000BD0 3C048005 */ lui $a0, %hi(image_entries) +/* 035704 7F000BD4 24829300 */ addiu $v0, $a0, %lo(image_entries) +/* 035708 7F000BD8 8C4E0000 */ lw $t6, ($v0) +/* 03570C 7F000BDC 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 035710 7F000BE0 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 035714 7F000BE4 3407FFFF */ li $a3, 65535 +/* 035718 7F000BE8 01C17824 */ and $t7, $t6, $at +/* 03571C 7F000BEC 10EF0014 */ beq $a3, $t7, .L7F000C40 +/* 035720 7F000BF0 00001825 */ move $v1, $zero +/* 035724 7F000BF4 3C188005 */ lui $t8, %hi(image_entries) +/* 035728 7F000BF8 27189300 */ addiu $t8, %lo(image_entries) # addiu $t8, $t8, -0x6d00 +/* 03572C 7F000BFC 8F050000 */ lw $a1, ($t8) +/* 035730 7F000C00 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 035734 7F000C04 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 035738 7F000C08 00A13024 */ and $a2, $a1, $at +.L7F000C0C: +/* 03573C 7F000C0C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 035740 7F000C10 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 035744 7F000C14 0061C824 */ and $t9, $v1, $at +/* 035748 7F000C18 03254026 */ xor $t0, $t9, $a1 +/* 03574C 7F000C1C 00084A00 */ sll $t1, $t0, 8 +/* 035750 7F000C20 00095202 */ srl $t2, $t1, 8 +/* 035754 7F000C24 01455826 */ xor $t3, $t2, $a1 +/* 035758 7F000C28 8C450008 */ lw $a1, 8($v0) +/* 03575C 7F000C2C 00661821 */ addu $v1, $v1, $a2 +/* 035760 7F000C30 AC4B0000 */ sw $t3, ($v0) +/* 035764 7F000C34 00A13024 */ and $a2, $a1, $at +/* 035768 7F000C38 14E6FFF4 */ bne $a3, $a2, .L7F000C0C +/* 03576C 7F000C3C 24420008 */ addiu $v0, $v0, 8 +.L7F000C40: +/* 035770 7F000C40 8C450000 */ lw $a1, ($v0) +/* 035774 7F000C44 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 035778 7F000C48 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 03577C 7F000C4C 00616024 */ and $t4, $v1, $at +/* 035780 7F000C50 01856826 */ xor $t5, $t4, $a1 +/* 035784 7F000C54 000D7200 */ sll $t6, $t5, 8 +/* 035788 7F000C58 000E7A02 */ srl $t7, $t6, 8 +/* 03578C 7F000C5C 01E5C026 */ xor $t8, $t7, $a1 +/* 035790 7F000C60 03E00008 */ jr $ra +/* 035794 7F000C64 AC580000 */ sw $t8, ($v0) +) +#endif + diff --git a/src/game/initintromatrices.c b/src/game/initintromatrices.c new file mode 100644 index 0000000..f755859 --- /dev/null +++ b/src/game/initintromatrices.c @@ -0,0 +1,15 @@ +#include "ultra64.h" +#include "game/intro_logos.h" + +void alloc_intro_matrices(void) { + D_8002A7D0 = 0; + matrix_buffer_rarelogo_0 = mempAllocBytesInBank(0x80, 4); + matrix_buffer_gunbarrel_0 = mempAllocBytesInBank(0x40, 4); + matrix_buffer_rarelogo_1 = mempAllocBytesInBank(0x80, 4); + matrix_buffer_rarelogo_2 = mempAllocBytesInBank(0x80, 4); + matrix_buffer_gunbarrel_1 = mempAllocBytesInBank(0x80, 4); + matrix_buffer_intro_backdrop = mempAllocBytesInBank(0x80, 4); + matrix_buffer_intro_bond = mempAllocBytesInBank(0x80, 4); +} + + diff --git a/src/game/inititemslots.c b/src/game/inititemslots.c new file mode 100644 index 0000000..e3e4c72 --- /dev/null +++ b/src/game/inititemslots.c @@ -0,0 +1,87 @@ +#include "ultra64.h" +#include "game/bondinv.h" + + + + +#ifdef NONMATCHING +void sub_GAME_7F0061F0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0061F0 +/* 03AD20 7F0061F0 3C048008 */ lui $a0, %hi(pPlayer) +/* 03AD24 7F0061F4 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 03AD28 7F0061F8 8C8E0000 */ lw $t6, ($a0) +/* 03AD2C 7F0061FC 2405FFFF */ li $a1, -1 +/* 03AD30 7F006200 24030018 */ li $v1, 24 +/* 03AD34 7F006204 ADC011EC */ sw $zero, 0x11ec($t6) +/* 03AD38 7F006208 8C8F0000 */ lw $t7, ($a0) +/* 03AD3C 7F00620C 24020078 */ li $v0, 120 +/* 03AD40 7F006210 ADE51200 */ sw $a1, 0x1200($t7) +/* 03AD44 7F006214 8C980000 */ lw $t8, ($a0) +/* 03AD48 7F006218 AF05120C */ sw $a1, 0x120c($t8) +.L7F00621C: +/* 03AD4C 7F00621C 8C990000 */ lw $t9, ($a0) +/* 03AD50 7F006220 03234021 */ addu $t0, $t9, $v1 +/* 03AD54 7F006224 AD051200 */ sw $a1, 0x1200($t0) +/* 03AD58 7F006228 8C890000 */ lw $t1, ($a0) +/* 03AD5C 7F00622C 01235021 */ addu $t2, $t1, $v1 +/* 03AD60 7F006230 AD45120C */ sw $a1, 0x120c($t2) +/* 03AD64 7F006234 8C8B0000 */ lw $t3, ($a0) +/* 03AD68 7F006238 01636021 */ addu $t4, $t3, $v1 +/* 03AD6C 7F00623C AD851218 */ sw $a1, 0x1218($t4) +/* 03AD70 7F006240 8C8D0000 */ lw $t5, ($a0) +/* 03AD74 7F006244 01A37021 */ addu $t6, $t5, $v1 +/* 03AD78 7F006248 24630030 */ addiu $v1, $v1, 0x30 +/* 03AD7C 7F00624C 1462FFF3 */ bne $v1, $v0, .L7F00621C +/* 03AD80 7F006250 ADC51224 */ sw $a1, 0x1224($t6) +/* 03AD84 7F006254 03E00008 */ jr $ra +/* 03AD88 7F006258 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void alloc_additional_item_slots(s32 arg0) { + // Node 0 + pPlayer->unk11E8 = (s32) (arg0 + 0x1e); + pPlayer->unk11E4 = mempAllocBytesInBank(((((pPlayer->unk11E8 * 0x14) + 0xf) | 0xf) ^ 0xf), 4); + reinit_BONDdata_inventory(); +} + +#else +GLOBAL_ASM( +.text +glabel alloc_additional_item_slots +/* 03AD8C 7F00625C 3C028008 */ lui $v0, %hi(pPlayer) +/* 03AD90 7F006260 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 03AD94 7F006264 8C4F0000 */ lw $t7, ($v0) +/* 03AD98 7F006268 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03AD9C 7F00626C AFBF0014 */ sw $ra, 0x14($sp) +/* 03ADA0 7F006270 248E001E */ addiu $t6, $a0, 0x1e +/* 03ADA4 7F006274 ADEE11E8 */ sw $t6, 0x11e8($t7) +/* 03ADA8 7F006278 8C580000 */ lw $t8, ($v0) +/* 03ADAC 7F00627C 24050004 */ li $a1, 4 +/* 03ADB0 7F006280 8F0411E8 */ lw $a0, 0x11e8($t8) +/* 03ADB4 7F006284 0004C880 */ sll $t9, $a0, 2 +/* 03ADB8 7F006288 0324C821 */ addu $t9, $t9, $a0 +/* 03ADBC 7F00628C 0019C880 */ sll $t9, $t9, 2 +/* 03ADC0 7F006290 2724000F */ addiu $a0, $t9, 0xf +/* 03ADC4 7F006294 3488000F */ ori $t0, $a0, 0xf +/* 03ADC8 7F006298 0C0025C8 */ jal mempAllocBytesInBank +/* 03ADCC 7F00629C 3904000F */ xori $a0, $t0, 0xf +/* 03ADD0 7F0062A0 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 03ADD4 7F0062A4 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 03ADD8 7F0062A8 0FC22FFC */ jal reinit_BONDdata_inventory +/* 03ADDC 7F0062AC AD4211E4 */ sw $v0, 0x11e4($t2) +/* 03ADE0 7F0062B0 8FBF0014 */ lw $ra, 0x14($sp) +/* 03ADE4 7F0062B4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03ADE8 7F0062B8 03E00008 */ jr $ra +/* 03ADEC 7F0062BC 00000000 */ nop +) +#endif + + diff --git a/src/game/initmenus.c b/src/game/initmenus.c new file mode 100644 index 0000000..4f18d3c --- /dev/null +++ b/src/game/initmenus.c @@ -0,0 +1,86 @@ +#include "ultra64.h" + + +#ifdef NONMATCHING +void init_menus_or_reset(void) { + +} +#else +GLOBAL_ASM( +.text +glabel init_menus_or_reset +/* 035850 7F000D20 2402FFFF */ li $v0, -1 +/* 035854 7F000D24 3C018003 */ lui $at, %hi(current_menu) +/* 035858 7F000D28 AC22A8C0 */ sw $v0, %lo(current_menu)($at) +/* 03585C 7F000D2C 3C018003 */ lui $at, %hi(maybe_prev_menu) +/* 035860 7F000D30 AC22A8C8 */ sw $v0, %lo(maybe_prev_menu)($at) +/* 035864 7F000D34 3C018003 */ lui $at, %hi(screen_size) +/* 035868 7F000D38 AC20A940 */ sw $zero, %lo(screen_size)($at) +/* 03586C 7F000D3C 24030001 */ li $v1, 1 +/* 035870 7F000D40 3C018003 */ lui $at, %hi(spectrum_related_flag) +/* 035874 7F000D44 AC23A944 */ sw $v1, %lo(spectrum_related_flag)($at) +/* 035878 7F000D48 3C018003 */ lui $at, %hi(is_emulating_spectrum) +/* 03587C 7F000D4C AC20A948 */ sw $zero, %lo(is_emulating_spectrum)($at) +/* 035880 7F000D50 3C018003 */ lui $at, %hi(folder_selection_screen_option_icon) +/* 035884 7F000D54 AC20A918 */ sw $zero, %lo(folder_selection_screen_option_icon)($at) +/* 035888 7F000D58 3C018003 */ lui $at, %hi(folder_selected_for_deletion) +/* 03588C 7F000D5C AC22A91C */ sw $v0, %lo(folder_selected_for_deletion)($at) +/* 035890 7F000D60 3C018003 */ lui $at, %hi(folder_selected_for_deletion_choice) +/* 035894 7F000D64 AC23A920 */ sw $v1, %lo(folder_selected_for_deletion_choice)($at) +/* 035898 7F000D68 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 03589C 7F000D6C AC20A8DC */ sw $zero, %lo(tab_1_highlight)($at) +/* 0358A0 7F000D70 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 0358A4 7F000D74 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 0358A8 7F000D78 3C0E8003 */ lui $t6, %hi(prev_keypresses) +/* 0358AC 7F000D7C 8DCEA934 */ lw $t6, %lo(prev_keypresses)($t6) +/* 0358B0 7F000D80 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 0358B4 7F000D84 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 0358B8 7F000D88 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0358BC 7F000D8C 3C018003 */ lui $at, %hi(maybe_is_in_menu) +/* 0358C0 7F000D90 AFBF0014 */ sw $ra, 0x14($sp) +/* 0358C4 7F000D94 11C00005 */ beqz $t6, .L7F000DAC +/* 0358C8 7F000D98 AC23A93C */ sw $v1, %lo(maybe_is_in_menu)($at) +/* 0358CC 7F000D9C 3C028003 */ lui $v0, %hi(menu_update) +/* 0358D0 7F000DA0 2442A8C4 */ addiu $v0, %lo(menu_update) # addiu $v0, $v0, -0x573c +/* 0358D4 7F000DA4 240F0005 */ li $t7, 5 +/* 0358D8 7F000DA8 AC4F0000 */ sw $t7, ($v0) +.L7F000DAC: +/* 0358DC 7F000DAC 3C028003 */ lui $v0, %hi(menu_update) +/* 0358E0 7F000DB0 2442A8C4 */ addiu $v0, %lo(menu_update) # addiu $v0, $v0, -0x573c +/* 0358E4 7F000DB4 8C580000 */ lw $t8, ($v0) +/* 0358E8 7F000DB8 3C040007 */ lui $a0, (0x00078000 >> 16) # lui $a0, 7 +/* 0358EC 7F000DBC 24190005 */ li $t9, 5 +/* 0358F0 7F000DC0 07010002 */ bgez $t8, .L7F000DCC +/* 0358F4 7F000DC4 34848000 */ ori $a0, (0x00078000 & 0xFFFF) # ori $a0, $a0, 0x8000 +/* 0358F8 7F000DC8 AC590000 */ sw $t9, ($v0) +.L7F000DCC: +/* 0358FC 7F000DCC 0C0025C8 */ jal mempAllocBytesInBank +/* 035900 7F000DD0 24050004 */ li $a1, 4 +/* 035904 7F000DD4 3C018003 */ lui $at, %hi(ptr_logo_and_walletbond_DL) +/* 035908 7F000DD8 3C040004 */ lui $a0, (0x0004B040 >> 16) # lui $a0, 4 +/* 03590C 7F000DDC AC22A950 */ sw $v0, %lo(ptr_logo_and_walletbond_DL)($at) +/* 035910 7F000DE0 3484B040 */ ori $a0, (0x0004B040 & 0xFFFF) # ori $a0, $a0, 0xb040 +/* 035914 7F000DE4 0C0025C8 */ jal mempAllocBytesInBank +/* 035918 7F000DE8 24050004 */ li $a1, 4 +/* 03591C 7F000DEC 3C038003 */ lui $v1, %hi(ptr_menu_videobuffer) +/* 035920 7F000DF0 2449003F */ addiu $t1, $v0, 0x3f +/* 035924 7F000DF4 2401FFC0 */ li $at, -64 +/* 035928 7F000DF8 2463A954 */ addiu $v1, %lo(ptr_menu_videobuffer) # addiu $v1, $v1, -0x56ac +/* 03592C 7F000DFC 01215024 */ and $t2, $t1, $at +/* 035930 7F000E00 AC620000 */ sw $v0, ($v1) +/* 035934 7F000E04 AC6A0000 */ sw $t2, ($v1) +/* 035938 7F000E08 3C018003 */ lui $at, %hi(ptr_folder_object_instance) +/* 03593C 7F000E0C AC20A95C */ sw $zero, %lo(ptr_folder_object_instance)($at) +/* 035940 7F000E10 3C018003 */ lui $at, %hi(set0_never_used) +/* 035944 7F000E14 AC20A960 */ sw $zero, %lo(set0_never_used)($at) +/* 035948 7F000E18 3C018003 */ lui $at, %hi(set0_never_used_0) +/* 03594C 7F000E1C AC20A964 */ sw $zero, %lo(set0_never_used_0)($at) +/* 035950 7F000E20 3C018003 */ lui $at, %hi(D_8002A968) +/* 035954 7F000E24 0FC0031C */ jal alloc_intro_matrices +/* 035958 7F000E28 AC20A968 */ sw $zero, %lo(D_8002A968)($at) +/* 03595C 7F000E2C 8FBF0014 */ lw $ra, 0x14($sp) +/* 035960 7F000E30 27BD0018 */ addiu $sp, $sp, 0x18 +/* 035964 7F000E34 03E00008 */ jr $ra +/* 035968 7F000E38 00000000 */ nop +) +#endif diff --git a/src/game/initmttex.c b/src/game/initmttex.c new file mode 100644 index 0000000..186e663 --- /dev/null +++ b/src/game/initmttex.c @@ -0,0 +1,57 @@ +#include "ultra64.h" + + + +#ifdef NONMATCHING +void set_mt_tex_alloc(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel str_Mt +.word 0x2d6d7400 /*-mt*/ +glabel str_Mt_0 +.word 0x2d6d7400 /*-mt*/ +.text +glabel set_mt_tex_alloc +/* 03BE50 7F007320 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03BE54 7F007324 AFBF0014 */ sw $ra, 0x14($sp) +/* 03BE58 7F007328 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D090) +/* 03BE5C 7F00732C 3C058005 */ lui $a1, %hi(str_Mt) +/* 03BE60 7F007330 AC20D090 */ sw $zero, %lo(dword_CODE_bss_8008D090)($at) +/* 03BE64 7F007334 24A5F200 */ addiu $a1, %lo(str_Mt) # addiu $a1, $a1, -0xe00 +/* 03BE68 7F007338 0C0029A8 */ jal check_token +/* 03BE6C 7F00733C 24040001 */ li $a0, 1 +/* 03BE70 7F007340 1040000B */ beqz $v0, .L7F007370 +/* 03BE74 7F007344 24040001 */ li $a0, 1 +/* 03BE78 7F007348 3C058005 */ lui $a1, %hi(str_Mt_0) +/* 03BE7C 7F00734C 0C0029A8 */ jal check_token +/* 03BE80 7F007350 24A5F204 */ addiu $a1, %lo(str_Mt_0) # addiu $a1, $a1, -0xdfc +/* 03BE84 7F007354 00402025 */ move $a0, $v0 +/* 03BE88 7F007358 00002825 */ move $a1, $zero +/* 03BE8C 7F00735C 0C002A78 */ jal strtol +/* 03BE90 7F007360 00003025 */ move $a2, $zero +/* 03BE94 7F007364 00027280 */ sll $t6, $v0, 0xa +/* 03BE98 7F007368 3C018005 */ lui $at, %hi(bytes) +/* 03BE9C 7F00736C AC2E9170 */ sw $t6, %lo(bytes)($at) +.L7F007370: +/* 03BEA0 7F007370 3C048005 */ lui $a0, %hi(bytes) +/* 03BEA4 7F007374 8C849170 */ lw $a0, %lo(bytes)($a0) +/* 03BEA8 7F007378 0C0025C8 */ jal mempAllocBytesInBank +/* 03BEAC 7F00737C 24050004 */ li $a1, 4 +/* 03BEB0 7F007380 3C048009 */ lui $a0, %hi(ptr_texture_alloc_start) +/* 03BEB4 7F007384 3C068005 */ lui $a2, %hi(bytes) +/* 03BEB8 7F007388 8CC69170 */ lw $a2, %lo(bytes)($a2) +/* 03BEBC 7F00738C 2484C720 */ addiu $a0, %lo(ptr_texture_alloc_start) # addiu $a0, $a0, -0x38e0 +/* 03BEC0 7F007390 0FC32EBD */ jal sub_GAME_7F0CBAF4 +/* 03BEC4 7F007394 00402825 */ move $a1, $v0 +/* 03BEC8 7F007398 8FBF0014 */ lw $ra, 0x14($sp) +/* 03BECC 7F00739C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03BED0 7F0073A0 03E00008 */ jr $ra +/* 03BED4 7F0073A4 00000000 */ nop +) +#endif + + + diff --git a/src/game/initnull_0009D0.c b/src/game/initnull_0009D0.c new file mode 100644 index 0000000..2f85da4 --- /dev/null +++ b/src/game/initnull_0009D0.c @@ -0,0 +1,6 @@ +#include "ultra64.h" + +void null_init_main_3(void) { + return; +} + diff --git a/src/game/initnull_000BC0.c b/src/game/initnull_000BC0.c new file mode 100644 index 0000000..8f4bf85 --- /dev/null +++ b/src/game/initnull_000BC0.c @@ -0,0 +1,5 @@ +#include "ultra64.h" + +void null_init_main_2(void) { + return; +} diff --git a/src/game/initobjects.c b/src/game/initobjects.c new file mode 100644 index 0000000..3df32f2 --- /dev/null +++ b/src/game/initobjects.c @@ -0,0 +1,554 @@ +#include "ultra64.h" +#include "game/initobjects.h" +#include "game/chrai.h" +//this file may very well be a few different sub files + +struct object_animation_controller ptr_monitorimageobjectanimationcontroller = {&monitor_animation_microcode, 0, 0xFFFF, 0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.5, 0.0, 0.0, 0.5, 0.5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1.0, 0.0}; +struct object_animation_controller unknown_object_animation_controller = {&dword_D_80031F00, 0, 0xFFFF, 0, 0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.5, 0.0, 0.0, 0.5, 0.5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 1.0}; +struct object_animation_controller taser_object_animation_controller = {&dword_D_80031F44, 0, 0xFFFF, 0, 0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.5, 0.0, 0.0, 0.5, 0.5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 1.0}; +f32 unused_8002a3bc = 0.0f; +f32 scale_1_0_item_related = 1.0f; + + +#ifdef NONMATCHING +void init_sound_effects_registers(void) { + +} +#else +GLOBAL_ASM( +.text +glabel init_sound_effects_registers +/* 035FE0 7F0014B0 3C038007 */ lui $v1, %hi(sfx_related) +/* 035FE4 7F0014B4 3C028007 */ lui $v0, %hi(ptr_list_object_lookup_indices) +/* 035FE8 7F0014B8 24429C30 */ addiu $v0, %lo(ptr_list_object_lookup_indices) # addiu $v0, $v0, -0x63d0 +/* 035FEC 7F0014BC 24639B70 */ addiu $v1, %lo(sfx_related) # addiu $v1, $v1, -0x6490 +.L7F0014C0: +/* 035FF0 7F0014C0 24630060 */ addiu $v1, $v1, 0x60 +/* 035FF4 7F0014C4 AC60FFB8 */ sw $zero, -0x48($v1) +/* 035FF8 7F0014C8 AC60FFD0 */ sw $zero, -0x30($v1) +/* 035FFC 7F0014CC AC60FFE8 */ sw $zero, -0x18($v1) +/* 036000 7F0014D0 1462FFFB */ bne $v1, $v0, .L7F0014C0 +/* 036004 7F0014D4 AC60FFA0 */ sw $zero, -0x60($v1) +/* 036008 7F0014D8 03E00008 */ jr $ra +/* 03600C 7F0014DC 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void init_load_objpos_table(void) { + +} +#else +GLOBAL_ASM( +.text +glabel init_load_objpos_table +/* 036010 7F0014E0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 036014 7F0014E4 44812000 */ mtc1 $at, $f4 +/* 036018 7F0014E8 3C018003 */ lui $at, %hi(difficulty) +/* 03601C 7F0014EC 3C028003 */ lui $v0, %hi(ptr_obj_pos_list_first_entry) +/* 036020 7F0014F0 E4240AAC */ swc1 $f4, %lo(difficulty)($at) +/* 036024 7F0014F4 24420AA4 */ addiu $v0, %lo(ptr_obj_pos_list_first_entry) # addiu $v0, $v0, 0xaa4 +/* 036028 7F0014F8 AC400000 */ sw $zero, ($v0) +/* 03602C 7F0014FC 3C018003 */ lui $at, %hi(ptr_obj_pos_list_current_entry) +/* 036030 7F001500 AC200AA0 */ sw $zero, %lo(ptr_obj_pos_list_current_entry)($at) +/* 036034 7F001504 3C018007 */ lui $at, %hi(dword_CODE_bss_80071DF4) +/* 036038 7F001508 3C038007 */ lui $v1, %hi(dword_CODE_bss_80071620) +/* 03603C 7F00150C AC201DF4 */ sw $zero, %lo(dword_CODE_bss_80071DF4)($at) +/* 036040 7F001510 24631620 */ addiu $v1, %lo(dword_CODE_bss_80071620) # addiu $v1, $v1, 0x1620 +/* 036044 7F001514 AC600000 */ sw $zero, ($v1) +/* 036048 7F001518 3C018007 */ lui $at, %hi(dword_CODE_bss_80071DF0) +/* 03604C 7F00151C AC231DF0 */ sw $v1, %lo(dword_CODE_bss_80071DF0)($at) +/* 036050 7F001520 3C0F8007 */ lui $t7, %hi(pos_data_entry) +/* 036054 7F001524 25EF9C38 */ addiu $t7, %lo(pos_data_entry) # addiu $t7, $t7, -0x63c8 +/* 036058 7F001528 3C018003 */ lui $at, %hi(ptr_obj_pos_list_final_entry) +/* 03605C 7F00152C AC2F0AA8 */ sw $t7, %lo(ptr_obj_pos_list_final_entry)($at) +/* 036060 7F001530 3C188007 */ lui $t8, %hi(dword_CODE_bss_80069C6C) +/* 036064 7F001534 27189C6C */ addiu $t8, %lo(dword_CODE_bss_80069C6C) # addiu $t8, $t8, -0x6394 +/* 036068 7F001538 3C018007 */ lui $at, %hi(dword_CODE_bss_80069C5C) +/* 03606C 7F00153C AC389C5C */ sw $t8, %lo(dword_CODE_bss_80069C5C)($at) +/* 036070 7F001540 3C198007 */ lui $t9, %hi(dword_CODE_bss_80069CA0) +/* 036074 7F001544 27399CA0 */ addiu $t9, %lo(dword_CODE_bss_80069CA0) # addiu $t9, $t9, -0x6360 +/* 036078 7F001548 3C018007 */ lui $at, %hi(dword_CODE_bss_80069C90) +/* 03607C 7F00154C AC399C90 */ sw $t9, %lo(dword_CODE_bss_80069C90)($at) +/* 036080 7F001550 3C088007 */ lui $t0, %hi(dword_CODE_bss_80069CD4) +/* 036084 7F001554 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 036088 7F001558 25029CD4 */ addiu $v0, $t0, %lo(dword_CODE_bss_80069CD4) +/* 03608C 7F00155C 3C018007 */ lui $at, %hi(dword_CODE_bss_80069CC4) +/* 036090 7F001560 3C038007 */ lui $v1, %hi(dword_CODE_bss_80069DA4) +/* 036094 7F001564 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069D08) +/* 036098 7F001568 3C058007 */ lui $a1, %hi(dword_CODE_bss_80069D3C) +/* 03609C 7F00156C 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069D70) +/* 0360A0 7F001570 3C078007 */ lui $a3, %hi(dword_CODE_bss_800716B4) +/* 0360A4 7F001574 AFBF0014 */ sw $ra, 0x14($sp) +/* 0360A8 7F001578 24E716B4 */ addiu $a3, %lo(dword_CODE_bss_800716B4) # addiu $a3, $a3, 0x16b4 +/* 0360AC 7F00157C 24C69D70 */ addiu $a2, %lo(dword_CODE_bss_80069D70) # addiu $a2, $a2, -0x6290 +/* 0360B0 7F001580 24A59D3C */ addiu $a1, %lo(dword_CODE_bss_80069D3C) # addiu $a1, $a1, -0x62c4 +/* 0360B4 7F001584 24849D08 */ addiu $a0, %lo(dword_CODE_bss_80069D08) # addiu $a0, $a0, -0x62f8 +/* 0360B8 7F001588 24639DA4 */ addiu $v1, %lo(dword_CODE_bss_80069DA4) # addiu $v1, $v1, -0x625c +/* 0360BC 7F00158C AC229CC4 */ sw $v0, %lo(dword_CODE_bss_80069CC4)($at) +.L7F001590: +/* 0360C0 7F001590 AC4300C0 */ sw $v1, 0xc0($v0) +/* 0360C4 7F001594 246300D0 */ addiu $v1, $v1, 0xd0 +/* 0360C8 7F001598 AC450058 */ sw $a1, 0x58($v0) +/* 0360CC 7F00159C AC46008C */ sw $a2, 0x8c($v0) +/* 0360D0 7F0015A0 AC440024 */ sw $a0, 0x24($v0) +/* 0360D4 7F0015A4 248400D0 */ addiu $a0, $a0, 0xd0 +/* 0360D8 7F0015A8 24C600D0 */ addiu $a2, $a2, 0xd0 +/* 0360DC 7F0015AC 24A500D0 */ addiu $a1, $a1, 0xd0 +/* 0360E0 7F0015B0 1467FFF7 */ bne $v1, $a3, .L7F001590 +/* 0360E4 7F0015B4 244200D0 */ addiu $v0, $v0, 0xd0 +/* 0360E8 7F0015B8 0FC00574 */ jal alloc_lookup_buffers +/* 0360EC 7F0015BC 00000000 */ nop +/* 0360F0 7F0015C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0360F4 7F0015C4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0360F8 7F0015C8 03E00008 */ jr $ra +/* 0360FC 7F0015CC 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void alloc_lookup_buffers(void) { + +} +#else +GLOBAL_ASM( +.text +glabel alloc_lookup_buffers +/* 036100 7F0015D0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 036104 7F0015D4 AFBF0014 */ sw $ra, 0x14($sp) +/* 036108 7F0015D8 24040400 */ li $a0, 1024 +/* 03610C 7F0015DC 0C0025C8 */ jal mempAllocBytesInBank +/* 036110 7F0015E0 24050004 */ li $a1, 4 +/* 036114 7F0015E4 3C068004 */ lui $a2, %hi(MaxNumRooms) +/* 036118 7F0015E8 3C018007 */ lui $at, %hi(ptr_list_object_lookup_indices) +/* 03611C 7F0015EC AC229C30 */ sw $v0, %lo(ptr_list_object_lookup_indices)($at) +/* 036120 7F0015F0 24C642F4 */ addiu $a2, %lo(MaxNumRooms) # addiu $a2, $a2, 0x42f4 +/* 036124 7F0015F4 8CC40000 */ lw $a0, ($a2) +/* 036128 7F0015F8 24050004 */ li $a1, 4 +/* 03612C 7F0015FC 00047080 */ sll $t6, $a0, 2 +/* 036130 7F001600 25C4000F */ addiu $a0, $t6, 0xf +/* 036134 7F001604 348F000F */ ori $t7, $a0, 0xf +/* 036138 7F001608 0C0025C8 */ jal mempAllocBytesInBank +/* 03613C 7F00160C 39E4000F */ xori $a0, $t7, 0xf +/* 036140 7F001610 3C078007 */ lui $a3, %hi(ptr_room_lookup_buffer_maybe) +/* 036144 7F001614 24E71618 */ addiu $a3, %lo(ptr_room_lookup_buffer_maybe) # addiu $a3, $a3, 0x1618 +/* 036148 7F001618 ACE20000 */ sw $v0, ($a3) +/* 03614C 7F00161C 24042000 */ li $a0, 8192 +/* 036150 7F001620 0C0025C8 */ jal mempAllocBytesInBank +/* 036154 7F001624 24050004 */ li $a1, 4 +/* 036158 7F001628 3C048007 */ lui $a0, %hi(dword_CODE_bss_8007161C) +/* 03615C 7F00162C 2484161C */ addiu $a0, %lo(dword_CODE_bss_8007161C) # addiu $a0, $a0, 0x161c +/* 036160 7F001630 AC820000 */ sw $v0, ($a0) +/* 036164 7F001634 3C198007 */ lui $t9, %hi(ptr_list_object_lookup_indices) +/* 036168 7F001638 8F399C30 */ lw $t9, %lo(ptr_list_object_lookup_indices)($t9) +/* 03616C 7F00163C 2405FFFF */ li $a1, -1 +/* 036170 7F001640 3C068004 */ lui $a2, %hi(MaxNumRooms) +/* 036174 7F001644 24C642F4 */ addiu $a2, %lo(MaxNumRooms) # addiu $a2, $a2, 0x42f4 +/* 036178 7F001648 A7250000 */ sh $a1, ($t9) +/* 03617C 7F00164C 8CCB0000 */ lw $t3, ($a2) +/* 036180 7F001650 3C078007 */ lui $a3, %hi(ptr_room_lookup_buffer_maybe) +/* 036184 7F001654 24E71618 */ addiu $a3, %lo(ptr_room_lookup_buffer_maybe) # addiu $a3, $a3, 0x1618 +/* 036188 7F001658 1960000C */ blez $t3, .L7F00168C +/* 03618C 7F00165C 00001825 */ move $v1, $zero +/* 036190 7F001660 00001025 */ move $v0, $zero +/* 036194 7F001664 8CEC0000 */ lw $t4, ($a3) +.L7F001668: +/* 036198 7F001668 24630001 */ addiu $v1, $v1, 1 +/* 03619C 7F00166C 01826821 */ addu $t5, $t4, $v0 +/* 0361A0 7F001670 A5A50000 */ sh $a1, ($t5) +/* 0361A4 7F001674 8CCE0000 */ lw $t6, ($a2) +/* 0361A8 7F001678 24420002 */ addiu $v0, $v0, 2 +/* 0361AC 7F00167C 006E082A */ slt $at, $v1, $t6 +/* 0361B0 7F001680 5420FFF9 */ bnezl $at, .L7F001668 +/* 0361B4 7F001684 8CEC0000 */ lw $t4, ($a3) +/* 0361B8 7F001688 00001825 */ move $v1, $zero +.L7F00168C: +/* 0361BC 7F00168C 00003825 */ move $a3, $zero +/* 0361C0 7F001690 240A0100 */ li $t2, 256 +/* 0361C4 7F001694 2409FFFE */ li $t1, -2 +/* 0361C8 7F001698 24060020 */ li $a2, 32 +.L7F00169C: +/* 0361CC 7F00169C 8C8F0000 */ lw $t7, ($a0) +/* 0361D0 7F0016A0 00035940 */ sll $t3, $v1, 5 +/* 0361D4 7F0016A4 00037140 */ sll $t6, $v1, 5 +/* 0361D8 7F0016A8 01E7C021 */ addu $t8, $t7, $a3 +/* 0361DC 7F0016AC A7090000 */ sh $t1, ($t8) +/* 0361E0 7F0016B0 8C990000 */ lw $t9, ($a0) +/* 0361E4 7F0016B4 24020008 */ li $v0, 8 +/* 0361E8 7F0016B8 032B6021 */ addu $t4, $t9, $t3 +/* 0361EC 7F0016BC A5850002 */ sh $a1, 2($t4) +/* 0361F0 7F0016C0 8C8D0000 */ lw $t5, ($a0) +/* 0361F4 7F0016C4 0003C940 */ sll $t9, $v1, 5 +/* 0361F8 7F0016C8 01AE7821 */ addu $t7, $t5, $t6 +/* 0361FC 7F0016CC A5E50004 */ sh $a1, 4($t7) +/* 036200 7F0016D0 8C980000 */ lw $t8, ($a0) +/* 036204 7F0016D4 03195821 */ addu $t3, $t8, $t9 +/* 036208 7F0016D8 A5650006 */ sh $a1, 6($t3) +.L7F0016DC: +/* 03620C 7F0016DC 8C8C0000 */ lw $t4, ($a0) +/* 036210 7F0016E0 00036940 */ sll $t5, $v1, 5 +/* 036214 7F0016E4 0003C940 */ sll $t9, $v1, 5 +/* 036218 7F0016E8 018D7021 */ addu $t6, $t4, $t5 +/* 03621C 7F0016EC 01C27821 */ addu $t7, $t6, $v0 +/* 036220 7F0016F0 A5E50000 */ sh $a1, ($t7) +/* 036224 7F0016F4 8C980000 */ lw $t8, ($a0) +/* 036228 7F0016F8 00037140 */ sll $t6, $v1, 5 +/* 03622C 7F0016FC 03195821 */ addu $t3, $t8, $t9 +/* 036230 7F001700 01626021 */ addu $t4, $t3, $v0 +/* 036234 7F001704 A5850002 */ sh $a1, 2($t4) +/* 036238 7F001708 8C8D0000 */ lw $t5, ($a0) +/* 03623C 7F00170C 00035940 */ sll $t3, $v1, 5 +/* 036240 7F001710 01AE7821 */ addu $t7, $t5, $t6 +/* 036244 7F001714 01E2C021 */ addu $t8, $t7, $v0 +/* 036248 7F001718 A7050004 */ sh $a1, 4($t8) +/* 03624C 7F00171C 8C990000 */ lw $t9, ($a0) +/* 036250 7F001720 032B6021 */ addu $t4, $t9, $t3 +/* 036254 7F001724 01826821 */ addu $t5, $t4, $v0 +/* 036258 7F001728 24420008 */ addiu $v0, $v0, 8 +/* 03625C 7F00172C 1446FFEB */ bne $v0, $a2, .L7F0016DC +/* 036260 7F001730 A5A50006 */ sh $a1, 6($t5) +/* 036264 7F001734 24630001 */ addiu $v1, $v1, 1 +/* 036268 7F001738 146AFFD8 */ bne $v1, $t2, .L7F00169C +/* 03626C 7F00173C 24E70020 */ addiu $a3, $a3, 0x20 +/* 036270 7F001740 8FBF0014 */ lw $ra, 0x14($sp) +/* 036274 7F001744 27BD0018 */ addiu $sp, $sp, 0x18 +/* 036278 7F001748 03E00008 */ jr $ra +/* 03627C 7F00174C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void reinit_between_menus(void) { + +} +#else +GLOBAL_ASM( +.text +glabel reinit_between_menus +/* 036280 7F001750 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 036284 7F001754 AFBF0014 */ sw $ra, 0x14($sp) +/* 036288 7F001758 0FC00656 */ jal write_monitor_ani_control_blocks +/* 03628C 7F00175C 00000000 */ nop +/* 036290 7F001760 0FC006C2 */ jal initialize_temp_mine_table +/* 036294 7F001764 00000000 */ nop +/* 036298 7F001768 3C018003 */ lui $at, %hi(alarm_timer) +/* 03629C 7F00176C AC200AC0 */ sw $zero, %lo(alarm_timer)($at) +/* 0362A0 7F001770 44800000 */ mtc1 $zero, $f0 +/* 0362A4 7F001774 3C018003 */ lui $at, %hi(ptr_alarm_sfx) +/* 0362A8 7F001778 AC200AC4 */ sw $zero, %lo(ptr_alarm_sfx)($at) +/* 0362AC 7F00177C 3C018003 */ lui $at, %hi(toxic_gas_sound_timer) +/* 0362B0 7F001780 E4200AC8 */ swc1 $f0, %lo(toxic_gas_sound_timer)($at) +/* 0362B4 7F001784 3C018003 */ lui $at, %hi(activate_gas_sound_timer) +/* 0362B8 7F001788 3C048003 */ lui $a0, %hi(D_80030AD0) +/* 0362BC 7F00178C AC200ACC */ sw $zero, %lo(activate_gas_sound_timer)($at) +/* 0362C0 7F001790 24840AD0 */ addiu $a0, %lo(D_80030AD0) # addiu $a0, $a0, 0xad0 +/* 0362C4 7F001794 3C018003 */ lui $at, %hi(D_80030ADC) +/* 0362C8 7F001798 E4800000 */ swc1 $f0, ($a0) +/* 0362CC 7F00179C E4800004 */ swc1 $f0, 4($a0) +/* 0362D0 7F0017A0 E4800008 */ swc1 $f0, 8($a0) +/* 0362D4 7F0017A4 AC200ADC */ sw $zero, %lo(D_80030ADC)($at) +/* 0362D8 7F0017A8 3C018003 */ lui $at, %hi(D_80030AE0) +/* 0362DC 7F0017AC E4200AE0 */ swc1 $f0, %lo(D_80030AE0)($at) +/* 0362E0 7F0017B0 3C018003 */ lui $at, %hi(ptr_gas_sound) +/* 0362E4 7F0017B4 AC200AE4 */ sw $zero, %lo(ptr_gas_sound)($at) +/* 0362E8 7F0017B8 24050001 */ li $a1, 1 +/* 0362EC 7F0017BC 3C018003 */ lui $at, %hi(clock_drawn_flag) +/* 0362F0 7F0017C0 AC250AE8 */ sw $a1, %lo(clock_drawn_flag)($at) +/* 0362F4 7F0017C4 3C018003 */ lui $at, %hi(clock_enable) +/* 0362F8 7F0017C8 AC200AEC */ sw $zero, %lo(clock_enable)($at) +/* 0362FC 7F0017CC 3C018003 */ lui $at, %hi(clock_time) +/* 036300 7F0017D0 E4200AF0 */ swc1 $f0, %lo(clock_time)($at) +/* 036304 7F0017D4 3C018003 */ lui $at, %hi(D_80030AF4) +/* 036308 7F0017D8 3C028007 */ lui $v0, %hi(ProjectileData_start_address) +/* 03630C 7F0017DC 3C038007 */ lui $v1, %hi(dword_CODE_bss_80072E70) +/* 036310 7F0017E0 AC200AF4 */ sw $zero, %lo(D_80030AF4)($at) +/* 036314 7F0017E4 24632E70 */ addiu $v1, %lo(dword_CODE_bss_80072E70) # addiu $v1, $v1, 0x2e70 +/* 036318 7F0017E8 24421E80 */ addiu $v0, %lo(ProjectileData_start_address) # addiu $v0, $v0, 0x1e80 +.L7F0017EC: +/* 03631C 7F0017EC 24420088 */ addiu $v0, $v0, 0x88 +/* 036320 7F0017F0 0043082B */ sltu $at, $v0, $v1 +/* 036324 7F0017F4 1420FFFD */ bnez $at, .L7F0017EC +/* 036328 7F0017F8 AC40FF88 */ sw $zero, -0x78($v0) +/* 03632C 7F0017FC 3C018003 */ lui $at, %hi(D_80030AF8) +/* 036330 7F001800 3C028007 */ lui $v0, %hi(dword_CODE_bss_80072E70) +/* 036334 7F001804 3C038007 */ lui $v1, %hi(dword_CODE_bss_80073370) +/* 036338 7F001808 AC200AF8 */ sw $zero, %lo(D_80030AF8)($at) +/* 03633C 7F00180C 24633370 */ addiu $v1, %lo(dword_CODE_bss_80073370) # addiu $v1, $v1, 0x3370 +/* 036340 7F001810 24422E70 */ addiu $v0, %lo(dword_CODE_bss_80072E70) # addiu $v0, $v0, 0x2e70 +.L7F001814: +/* 036344 7F001814 24420080 */ addiu $v0, $v0, 0x80 +/* 036348 7F001818 0043082B */ sltu $at, $v0, $v1 +/* 03634C 7F00181C 1420FFFD */ bnez $at, .L7F001814 +/* 036350 7F001820 AC40FF90 */ sw $zero, -0x70($v0) +/* 036354 7F001824 3C018003 */ lui $at, %hi(D_80030AFC) +/* 036358 7F001828 3C028007 */ lui $v0, %hi(dword_CODE_bss_80073370) +/* 03635C 7F00182C 3C038007 */ lui $v1, %hi(dword_CODE_bss_80073DC0) +/* 036360 7F001830 AC200AFC */ sw $zero, %lo(D_80030AFC)($at) +/* 036364 7F001834 24633DC0 */ addiu $v1, %lo(dword_CODE_bss_80073DC0) # addiu $v1, $v1, 0x3dc0 +/* 036368 7F001838 24423370 */ addiu $v0, %lo(dword_CODE_bss_80073370) # addiu $v0, $v0, 0x3370 +.L7F00183C: +/* 03636C 7F00183C 24420084 */ addiu $v0, $v0, 0x84 +/* 036370 7F001840 0043082B */ sltu $at, $v0, $v1 +/* 036374 7F001844 1420FFFD */ bnez $at, .L7F00183C +/* 036378 7F001848 AC40FF8C */ sw $zero, -0x74($v0) +/* 03637C 7F00184C 3C028007 */ lui $v0, %hi(dword_CODE_bss_80073DC0) +/* 036380 7F001850 3C048007 */ lui $a0, %hi(dword_CODE_bss_80075030) +/* 036384 7F001854 24845030 */ addiu $a0, %lo(dword_CODE_bss_80075030) # addiu $a0, $a0, 0x5030 +/* 036388 7F001858 24423DC0 */ addiu $v0, %lo(dword_CODE_bss_80073DC0) # addiu $v0, $v0, 0x3dc0 +/* 03638C 7F00185C 3C038000 */ lui $v1, 0x8000 +.L7F001860: +/* 036390 7F001860 244200EC */ addiu $v0, $v0, 0xec +/* 036394 7F001864 0044082B */ sltu $at, $v0, $a0 +/* 036398 7F001868 AC43FF14 */ sw $v1, -0xec($v0) +/* 03639C 7F00186C AC40FFAC */ sw $zero, -0x54($v0) +/* 0363A0 7F001870 1420FFFB */ bnez $at, .L7F001860 +/* 0363A4 7F001874 AC40FFB0 */ sw $zero, -0x50($v0) +/* 0363A8 7F001878 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075030) +/* 0363AC 7F00187C 3C038007 */ lui $v1, %hi(objinst) +/* 0363B0 7F001880 24635B70 */ addiu $v1, %lo(objinst) # addiu $v1, $v1, 0x5b70 +/* 0363B4 7F001884 24425030 */ addiu $v0, %lo(dword_CODE_bss_80075030) # addiu $v0, $v0, 0x5030 +.L7F001888: +/* 0363B8 7F001888 24420120 */ addiu $v0, $v0, 0x120 +/* 0363BC 7F00188C AC45FF28 */ sw $a1, -0xd8($v0) +/* 0363C0 7F001890 AC45FF70 */ sw $a1, -0x90($v0) +/* 0363C4 7F001894 AC45FFB8 */ sw $a1, -0x48($v0) +/* 0363C8 7F001898 1443FFFB */ bne $v0, $v1, .L7F001888 +/* 0363CC 7F00189C AC45FEE0 */ sw $a1, -0x120($v0) +/* 0363D0 7F0018A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0363D4 7F0018A4 44810000 */ mtc1 $at, $f0 +/* 0363D8 7F0018A8 3C018003 */ lui $at, %hi(D_80030B00) +/* 0363DC 7F0018AC AC200B00 */ sw $zero, %lo(D_80030B00)($at) +/* 0363E0 7F0018B0 3C018003 */ lui $at, %hi(D_80030B04) +/* 0363E4 7F0018B4 AC200B04 */ sw $zero, %lo(D_80030B04)($at) +/* 0363E8 7F0018B8 3C018003 */ lui $at, %hi(D_80030B08) +/* 0363EC 7F0018BC AC200B08 */ sw $zero, %lo(D_80030B08)($at) +/* 0363F0 7F0018C0 3C018003 */ lui $at, %hi(D_80030B0C) +/* 0363F4 7F0018C4 AC200B0C */ sw $zero, %lo(D_80030B0C)($at) +/* 0363F8 7F0018C8 3C018003 */ lui $at, %hi(bodypartshot) +/* 0363FC 7F0018CC 240EFFFF */ li $t6, -1 +/* 036400 7F0018D0 AC2E0B10 */ sw $t6, %lo(bodypartshot)($at) +/* 036404 7F0018D4 3C018003 */ lui $at, %hi(D_80030B14) +/* 036408 7F0018D8 E4200B14 */ swc1 $f0, %lo(D_80030B14)($at) +/* 03640C 7F0018DC 3C018003 */ lui $at, %hi(D_80030B18) +/* 036410 7F0018E0 E4200B18 */ swc1 $f0, %lo(D_80030B18)($at) +/* 036414 7F0018E4 3C018003 */ lui $at, %hi(D_80030B1C) +/* 036418 7F0018E8 E4200B1C */ swc1 $f0, %lo(D_80030B1C)($at) +/* 03641C 7F0018EC 3C018003 */ lui $at, %hi(D_80030B20) +/* 036420 7F0018F0 E4200B20 */ swc1 $f0, %lo(D_80030B20)($at) +/* 036424 7F0018F4 8FBF0014 */ lw $ra, 0x14($sp) +/* 036428 7F0018F8 3C018003 */ lui $at, %hi(D_80030B24) +/* 03642C 7F0018FC E4200B24 */ swc1 $f0, %lo(D_80030B24)($at) +/* 036430 7F001900 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 036434 7F001904 27BD0018 */ addiu $sp, $sp, 0x18 +/* 036438 7F001908 03E00008 */ jr $ra +/* 03643C 7F00190C E4200B28 */ swc1 $f0, %lo(solo_ammo_multiplier)($at) +) +#endif + +#ifdef NONMATCHING +void sub_GAME_7F001910(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F001910 +/* 036440 7F001910 3C028003 */ lui $v0, %hi(D_80030B00) +/* 036444 7F001914 24420B00 */ addiu $v0, %lo(D_80030B00) # addiu $v0, $v0, 0xb00 +/* 036448 7F001918 8C4E0000 */ lw $t6, ($v0) +/* 03644C 7F00191C AC8E000C */ sw $t6, 0xc($a0) +/* 036450 7F001920 03E00008 */ jr $ra +/* 036454 7F001924 AC440000 */ sw $a0, ($v0) +) +#endif + +#ifdef NONMATCHING +void sub_GAME_7F001928(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F001928 +/* 036458 7F001928 3C028003 */ lui $v0, %hi(D_80030B04) +/* 03645C 7F00192C 24420B04 */ addiu $v0, %lo(D_80030B04) # addiu $v0, $v0, 0xb04 +/* 036460 7F001930 8C4E0000 */ lw $t6, ($v0) +/* 036464 7F001934 AC8E000C */ sw $t6, 0xc($a0) +/* 036468 7F001938 03E00008 */ jr $ra +/* 03646C 7F00193C AC440000 */ sw $a0, ($v0) +) +#endif + +#ifdef NONMATCHING +void sub_GAME_7F001940(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F001940 +/* 036470 7F001940 3C028003 */ lui $v0, %hi(D_80030B08) +/* 036474 7F001944 24420B08 */ addiu $v0, %lo(D_80030B08) # addiu $v0, $v0, 0xb08 +/* 036478 7F001948 8C4E0000 */ lw $t6, ($v0) +/* 03647C 7F00194C AC8E0010 */ sw $t6, 0x10($a0) +/* 036480 7F001950 03E00008 */ jr $ra +/* 036484 7F001954 AC440000 */ sw $a0, ($v0) +) +#endif + +#ifdef NONMATCHING +void write_monitor_ani_control_blocks(void) { + +} +#else +GLOBAL_ASM( +.text +glabel write_monitor_ani_control_blocks +/* 036488 7F001958 27BDFEA0 */ addiu $sp, $sp, -0x160 +/* 03648C 7F00195C 3C0E8003 */ lui $t6, %hi(ptr_monitorimageobjectanimationcontroller) +/* 036490 7F001960 27A200EC */ addiu $v0, $sp, 0xec +/* 036494 7F001964 25CEA260 */ addiu $t6, $t6, %lo(ptr_monitorimageobjectanimationcontroller) +/* 036498 7F001968 27A30078 */ addiu $v1, $sp, 0x78 +/* 03649C 7F00196C 27A40004 */ addiu $a0, $sp, 4 +/* 0364A0 7F001970 25D9006C */ addiu $t9, $t6, 0x6c +/* 0364A4 7F001974 00404025 */ move $t0, $v0 +.L7F001978: +/* 0364A8 7F001978 8DC10000 */ lw $at, ($t6) +/* 0364AC 7F00197C 25CE000C */ addiu $t6, $t6, 0xc +/* 0364B0 7F001980 2508000C */ addiu $t0, $t0, 0xc +/* 0364B4 7F001984 AD01FFF4 */ sw $at, -0xc($t0) +/* 0364B8 7F001988 8DC1FFF8 */ lw $at, -8($t6) +/* 0364BC 7F00198C AD01FFF8 */ sw $at, -8($t0) +/* 0364C0 7F001990 8DC1FFFC */ lw $at, -4($t6) +/* 0364C4 7F001994 15D9FFF8 */ bne $t6, $t9, .L7F001978 +/* 0364C8 7F001998 AD01FFFC */ sw $at, -4($t0) +/* 0364CC 7F00199C 8DC10000 */ lw $at, ($t6) +/* 0364D0 7F0019A0 3C098007 */ lui $t1, %hi(dword_CODE_bss_80075B98) +/* 0364D4 7F0019A4 25295B98 */ addiu $t1, %lo(dword_CODE_bss_80075B98) # addiu $t1, $t1, 0x5b98 +/* 0364D8 7F0019A8 AD010000 */ sw $at, ($t0) +/* 0364DC 7F0019AC 8DD90004 */ lw $t9, 4($t6) +/* 0364E0 7F0019B0 00406825 */ move $t5, $v0 +/* 0364E4 7F0019B4 244C006C */ addiu $t4, $v0, 0x6c +/* 0364E8 7F0019B8 AD190004 */ sw $t9, 4($t0) +.L7F0019BC: +/* 0364EC 7F0019BC 8DA10000 */ lw $at, ($t5) +/* 0364F0 7F0019C0 25AD000C */ addiu $t5, $t5, 0xc +/* 0364F4 7F0019C4 2529000C */ addiu $t1, $t1, 0xc +/* 0364F8 7F0019C8 AD21FFF4 */ sw $at, -0xc($t1) +/* 0364FC 7F0019CC 8DA1FFF8 */ lw $at, -8($t5) +/* 036500 7F0019D0 AD21FFF8 */ sw $at, -8($t1) +/* 036504 7F0019D4 8DA1FFFC */ lw $at, -4($t5) +/* 036508 7F0019D8 15ACFFF8 */ bne $t5, $t4, .L7F0019BC +/* 03650C 7F0019DC AD21FFFC */ sw $at, -4($t1) +/* 036510 7F0019E0 8DA10000 */ lw $at, ($t5) +/* 036514 7F0019E4 3C188003 */ lui $t8, %hi(unknown_object_animation_controller) +/* 036518 7F0019E8 2718A2D4 */ addiu $t8, %lo(unknown_object_animation_controller) # addiu $t8, $t8, -0x5d2c +/* 03651C 7F0019EC AD210000 */ sw $at, ($t1) +/* 036520 7F0019F0 8DAC0004 */ lw $t4, 4($t5) +/* 036524 7F0019F4 270E006C */ addiu $t6, $t8, 0x6c +/* 036528 7F0019F8 00604025 */ move $t0, $v1 +/* 03652C 7F0019FC AD2C0004 */ sw $t4, 4($t1) +.L7F001A00: +/* 036530 7F001A00 8F010000 */ lw $at, ($t8) +/* 036534 7F001A04 2718000C */ addiu $t8, $t8, 0xc +/* 036538 7F001A08 2508000C */ addiu $t0, $t0, 0xc +/* 03653C 7F001A0C AD01FFF4 */ sw $at, -0xc($t0) +/* 036540 7F001A10 8F01FFF8 */ lw $at, -8($t8) +/* 036544 7F001A14 AD01FFF8 */ sw $at, -8($t0) +/* 036548 7F001A18 8F01FFFC */ lw $at, -4($t8) +/* 03654C 7F001A1C 170EFFF8 */ bne $t8, $t6, .L7F001A00 +/* 036550 7F001A20 AD01FFFC */ sw $at, -4($t0) +/* 036554 7F001A24 8F010000 */ lw $at, ($t8) +/* 036558 7F001A28 3C0B8007 */ lui $t3, %hi(dword_CODE_bss_80075C10) +/* 03655C 7F001A2C 256B5C10 */ addiu $t3, %lo(dword_CODE_bss_80075C10) # addiu $t3, $t3, 0x5c10 +/* 036560 7F001A30 AD010000 */ sw $at, ($t0) +/* 036564 7F001A34 8F0E0004 */ lw $t6, 4($t8) +/* 036568 7F001A38 00604825 */ move $t1, $v1 +/* 03656C 7F001A3C 246D006C */ addiu $t5, $v1, 0x6c +/* 036570 7F001A40 AD0E0004 */ sw $t6, 4($t0) +.L7F001A44: +/* 036574 7F001A44 8D210000 */ lw $at, ($t1) +/* 036578 7F001A48 2529000C */ addiu $t1, $t1, 0xc +/* 03657C 7F001A4C 256B000C */ addiu $t3, $t3, 0xc +/* 036580 7F001A50 AD61FFF4 */ sw $at, -0xc($t3) +/* 036584 7F001A54 8D21FFF8 */ lw $at, -8($t1) +/* 036588 7F001A58 AD61FFF8 */ sw $at, -8($t3) +/* 03658C 7F001A5C 8D21FFFC */ lw $at, -4($t1) +/* 036590 7F001A60 152DFFF8 */ bne $t1, $t5, .L7F001A44 +/* 036594 7F001A64 AD61FFFC */ sw $at, -4($t3) +/* 036598 7F001A68 8D210000 */ lw $at, ($t1) +/* 03659C 7F001A6C 3C198003 */ lui $t9, %hi(taser_object_animation_controller) +/* 0365A0 7F001A70 2739A348 */ addiu $t9, %lo(taser_object_animation_controller) # addiu $t9, $t9, -0x5cb8 +/* 0365A4 7F001A74 AD610000 */ sw $at, ($t3) +/* 0365A8 7F001A78 8D2D0004 */ lw $t5, 4($t1) +/* 0365AC 7F001A7C 2738006C */ addiu $t8, $t9, 0x6c +/* 0365B0 7F001A80 00804025 */ move $t0, $a0 +/* 0365B4 7F001A84 AD6D0004 */ sw $t5, 4($t3) +.L7F001A88: +/* 0365B8 7F001A88 8F210000 */ lw $at, ($t9) +/* 0365BC 7F001A8C 2739000C */ addiu $t9, $t9, 0xc +/* 0365C0 7F001A90 2508000C */ addiu $t0, $t0, 0xc +/* 0365C4 7F001A94 AD01FFF4 */ sw $at, -0xc($t0) +/* 0365C8 7F001A98 8F21FFF8 */ lw $at, -8($t9) +/* 0365CC 7F001A9C AD01FFF8 */ sw $at, -8($t0) +/* 0365D0 7F001AA0 8F21FFFC */ lw $at, -4($t9) +/* 0365D4 7F001AA4 1738FFF8 */ bne $t9, $t8, .L7F001A88 +/* 0365D8 7F001AA8 AD01FFFC */ sw $at, -4($t0) +/* 0365DC 7F001AAC 8F210000 */ lw $at, ($t9) +/* 0365E0 7F001AB0 3C0C8007 */ lui $t4, %hi(dword_CODE_bss_80075C88) +/* 0365E4 7F001AB4 258C5C88 */ addiu $t4, %lo(dword_CODE_bss_80075C88) # addiu $t4, $t4, 0x5c88 +/* 0365E8 7F001AB8 AD010000 */ sw $at, ($t0) +/* 0365EC 7F001ABC 8F380004 */ lw $t8, 4($t9) +/* 0365F0 7F001AC0 00805825 */ move $t3, $a0 +/* 0365F4 7F001AC4 2489006C */ addiu $t1, $a0, 0x6c +/* 0365F8 7F001AC8 AD180004 */ sw $t8, 4($t0) +.L7F001ACC: +/* 0365FC 7F001ACC 8D610000 */ lw $at, ($t3) +/* 036600 7F001AD0 256B000C */ addiu $t3, $t3, 0xc +/* 036604 7F001AD4 258C000C */ addiu $t4, $t4, 0xc +/* 036608 7F001AD8 AD81FFF4 */ sw $at, -0xc($t4) +/* 03660C 7F001ADC 8D61FFF8 */ lw $at, -8($t3) +/* 036610 7F001AE0 AD81FFF8 */ sw $at, -8($t4) +/* 036614 7F001AE4 8D61FFFC */ lw $at, -4($t3) +/* 036618 7F001AE8 1569FFF8 */ bne $t3, $t1, .L7F001ACC +/* 03661C 7F001AEC AD81FFFC */ sw $at, -4($t4) +/* 036620 7F001AF0 8D610000 */ lw $at, ($t3) +/* 036624 7F001AF4 AD810000 */ sw $at, ($t4) +/* 036628 7F001AF8 8D690004 */ lw $t1, 4($t3) +/* 03662C 7F001AFC 27BD0160 */ addiu $sp, $sp, 0x160 +/* 036630 7F001B00 03E00008 */ jr $ra +/* 036634 7F001B04 AD890004 */ sw $t1, 4($t4) +) +#endif + +#ifdef NONMATCHING +void initialize_temp_mine_table(void) { + +} +#else +GLOBAL_ASM( +.text +glabel initialize_temp_mine_table +/* 036638 7F001B08 3C018007 */ lui $at, %hi(temp_mine_table) +/* 03663C 7F001B0C AC201E00 */ sw $zero, %lo(temp_mine_table)($at) +/* 036640 7F001B10 3C018007 */ lui $at, %hi(temp_mine_table+0x4) +/* 036644 7F001B14 3C038007 */ lui $v1, %hi(temp_mine_table+0x8) +/* 036648 7F001B18 3C028007 */ lui $v0, %hi(gas_damage_flag) +/* 03664C 7F001B1C 24421E78 */ addiu $v0, %lo(gas_damage_flag) # addiu $v0, $v0, 0x1e78 +/* 036650 7F001B20 24631E08 */ addiu $v1, %lo(temp_mine_table+0x8) # addiu $v1, $v1, 0x1e08 +/* 036654 7F001B24 AC201E04 */ sw $zero, %lo(temp_mine_table+0x4)($at) +.L7F001B28: +/* 036658 7F001B28 24630010 */ addiu $v1, $v1, 0x10 +/* 03665C 7F001B2C AC60FFF4 */ sw $zero, -0xc($v1) +/* 036660 7F001B30 AC60FFF8 */ sw $zero, -8($v1) +/* 036664 7F001B34 AC60FFFC */ sw $zero, -4($v1) +/* 036668 7F001B38 1462FFFB */ bne $v1, $v0, .L7F001B28 +/* 03666C 7F001B3C AC60FFF0 */ sw $zero, -0x10($v1) +/* 036670 7F001B40 03E00008 */ jr $ra +/* 036674 7F001B44 00000000 */ nop +) +#endif diff --git a/src/game/initobjects.h b/src/game/initobjects.h new file mode 100644 index 0000000..c317bdc --- /dev/null +++ b/src/game/initobjects.h @@ -0,0 +1,48 @@ +#ifndef _INITOBJECTS_H_ +#define _INITOBJECTS_H_ +#include "ultra64.h" + +struct object_animation_controller { + void * ptranimation; + u16 offsettocurcmd; + u16 waitcounter; + u32 imagenum; + f32 rotation; + f32 curzoomx; + f32 startzoomx; + f32 zoomxtimer; + f32 initialzoomx; + f32 finalzoomx; + f32 curzoomy; + f32 startzoomy; + f32 zoomytimer; + f32 initialzoomy; + f32 finalzoomy; + f32 curhorizontalpos; + f32 starthorscroll; + f32 horscrolltimer; + f32 horinitpos; + f32 horfinalpos; + f32 curverpos; + f32 startverscroll; + f32 verscrolltimer; + f32 verinitpos; + f32 verfinalpos; + u8 curredcomponant; + u8 initredcomponant; + u8 finalredcomponant; + u8 curgreencomponant; + u8 initgreencomponant; + u8 finalgreencomponant; + u8 curbluecomponant; + u8 initbluecomponant; + u8 finalbluecomponant; + u8 curalphacomponant; + u8 initalphacomponant; + u8 finalalphacomponant; + f32 startcolorshift; + f32 colorshifttimer; +}; + + +#endif diff --git a/src/game/initpathtablelinks.c b/src/game/initpathtablelinks.c new file mode 100644 index 0000000..74ca9f7 --- /dev/null +++ b/src/game/initpathtablelinks.c @@ -0,0 +1,385 @@ +#include "ultra64.h" + + + + +#ifdef NONMATCHING +void init_path_table_links(void) { + +} +#else +GLOBAL_ASM( +.text +glabel init_path_table_links +/* 03B3C0 7F006890 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 03B3C4 7F006894 AFB40028 */ sw $s4, 0x28($sp) +/* 03B3C8 7F006898 3C148007 */ lui $s4, %hi(ptr_setup_path_tbl) +/* 03B3CC 7F00689C 26945D00 */ addiu $s4, %lo(ptr_setup_path_tbl) # addiu $s4, $s4, 0x5d00 +/* 03B3D0 7F0068A0 AFB00018 */ sw $s0, 0x18($sp) +/* 03B3D4 7F0068A4 8E900000 */ lw $s0, ($s4) +/* 03B3D8 7F0068A8 8E8E0004 */ lw $t6, 4($s4) +/* 03B3DC 7F0068AC AFB60030 */ sw $s6, 0x30($sp) +/* 03B3E0 7F0068B0 AFBF003C */ sw $ra, 0x3c($sp) +/* 03B3E4 7F0068B4 AFBE0038 */ sw $fp, 0x38($sp) +/* 03B3E8 7F0068B8 AFB70034 */ sw $s7, 0x34($sp) +/* 03B3EC 7F0068BC AFB5002C */ sw $s5, 0x2c($sp) +/* 03B3F0 7F0068C0 AFB30024 */ sw $s3, 0x24($sp) +/* 03B3F4 7F0068C4 AFB20020 */ sw $s2, 0x20($sp) +/* 03B3F8 7F0068C8 AFB1001C */ sw $s1, 0x1c($sp) +/* 03B3FC 7F0068CC 0000B025 */ move $s6, $zero +/* 03B400 7F0068D0 12000036 */ beqz $s0, .L7F0069AC +/* 03B404 7F0068D4 AFAE00D8 */ sw $t6, 0xd8($sp) +/* 03B408 7F0068D8 8E0F0000 */ lw $t7, ($s0) +/* 03B40C 7F0068DC 00003825 */ move $a3, $zero +/* 03B410 7F0068E0 02006825 */ move $t5, $s0 +/* 03B414 7F0068E4 05E20032 */ bltzl $t7, .L7F0069B0 +/* 03B418 7F0068E8 8FAE00D8 */ lw $t6, 0xd8($sp) +/* 03B41C 7F0068EC 8DA20004 */ lw $v0, 4($t5) +.L7F0068F0: +/* 03B420 7F0068F0 8C460000 */ lw $a2, ($v0) +/* 03B424 7F0068F4 00404025 */ move $t0, $v0 +/* 03B428 7F0068F8 04C20027 */ bltzl $a2, .L7F006998 +/* 03B42C 7F0068FC 24E70001 */ addiu $a3, $a3, 1 +.L7F006900: +/* 03B430 7F006900 14C70007 */ bne $a2, $a3, .L7F006920 +/* 03B434 7F006904 0006C900 */ sll $t9, $a2, 4 +/* 03B438 7F006908 8E980020 */ lw $t8, 0x20($s4) +/* 03B43C 7F00690C 24160001 */ li $s6, 1 +/* 03B440 7F006910 5300001D */ beql $t8, $zero, .L7F006988 +/* 03B444 7F006914 8D060004 */ lw $a2, 4($t0) +/* 03B448 7F006918 1000001B */ b .L7F006988 +/* 03B44C 7F00691C 8D060004 */ lw $a2, 4($t0) +.L7F006920: +/* 03B450 7F006920 03301821 */ addu $v1, $t9, $s0 +/* 03B454 7F006924 8C650004 */ lw $a1, 4($v1) +/* 03B458 7F006928 00002025 */ move $a0, $zero +/* 03B45C 7F00692C 8CAE0000 */ lw $t6, ($a1) +/* 03B460 7F006930 05C2000F */ bltzl $t6, .L7F006970 +/* 03B464 7F006934 0004C880 */ sll $t9, $a0, 2 +/* 03B468 7F006938 10EE000C */ beq $a3, $t6, .L7F00696C +/* 03B46C 7F00693C 00001080 */ sll $v0, $zero, 2 +/* 03B470 7F006940 24420004 */ addiu $v0, $v0, 4 +.L7F006944: +/* 03B474 7F006944 00A2C021 */ addu $t8, $a1, $v0 +/* 03B478 7F006948 8F190000 */ lw $t9, ($t8) +/* 03B47C 7F00694C 24840001 */ addiu $a0, $a0, 1 +/* 03B480 7F006950 07220007 */ bltzl $t9, .L7F006970 +/* 03B484 7F006954 0004C880 */ sll $t9, $a0, 2 +/* 03B488 7F006958 8C6E0004 */ lw $t6, 4($v1) +/* 03B48C 7F00695C 01C27821 */ addu $t7, $t6, $v0 +/* 03B490 7F006960 8DF80000 */ lw $t8, ($t7) +/* 03B494 7F006964 54F8FFF7 */ bnel $a3, $t8, .L7F006944 +/* 03B498 7F006968 24420004 */ addiu $v0, $v0, 4 +.L7F00696C: +/* 03B49C 7F00696C 0004C880 */ sll $t9, $a0, 2 +.L7F006970: +/* 03B4A0 7F006970 00B97021 */ addu $t6, $a1, $t9 +/* 03B4A4 7F006974 8DCF0000 */ lw $t7, ($t6) +/* 03B4A8 7F006978 50EF0003 */ beql $a3, $t7, .L7F006988 +/* 03B4AC 7F00697C 8D060004 */ lw $a2, 4($t0) +/* 03B4B0 7F006980 24160001 */ li $s6, 1 +/* 03B4B4 7F006984 8D060004 */ lw $a2, 4($t0) +.L7F006988: +/* 03B4B8 7F006988 25080004 */ addiu $t0, $t0, 4 +/* 03B4BC 7F00698C 04C1FFDC */ bgez $a2, .L7F006900 +/* 03B4C0 7F006990 00000000 */ nop +/* 03B4C4 7F006994 24E70001 */ addiu $a3, $a3, 1 +.L7F006998: +/* 03B4C8 7F006998 0007C100 */ sll $t8, $a3, 4 +/* 03B4CC 7F00699C 03106821 */ addu $t5, $t8, $s0 +/* 03B4D0 7F0069A0 8DB90000 */ lw $t9, ($t5) +/* 03B4D4 7F0069A4 0723FFD2 */ bgezl $t9, .L7F0068F0 +/* 03B4D8 7F0069A8 8DA20004 */ lw $v0, 4($t5) +.L7F0069AC: +/* 03B4DC 7F0069AC 8FAE00D8 */ lw $t6, 0xd8($sp) +.L7F0069B0: +/* 03B4E0 7F0069B0 11C00054 */ beqz $t6, .L7F006B04 +/* 03B4E4 7F0069B4 00000000 */ nop +/* 03B4E8 7F0069B8 8DCF0000 */ lw $t7, ($t6) +/* 03B4EC 7F0069BC 00008825 */ move $s1, $zero +/* 03B4F0 7F0069C0 01C0A825 */ move $s5, $t6 +/* 03B4F4 7F0069C4 11E0004F */ beqz $t7, .L7F006B04 +/* 03B4F8 7F0069C8 27BE00A0 */ addiu $fp, $sp, 0xa0 +/* 03B4FC 7F0069CC AFAE0048 */ sw $t6, 0x48($sp) +/* 03B500 7F0069D0 2417000C */ li $s7, 12 +/* 03B504 7F0069D4 8EB80000 */ lw $t8, ($s5) +.L7F0069D8: +/* 03B508 7F0069D8 00009825 */ move $s3, $zero +/* 03B50C 7F0069DC 8F020000 */ lw $v0, ($t8) +/* 03B510 7F0069E0 04420042 */ bltzl $v0, .L7F006AEC +/* 03B514 7F0069E4 8FAE0048 */ lw $t6, 0x48($sp) +.L7F0069E8: +/* 03B518 7F0069E8 14510007 */ bne $v0, $s1, .L7F006A08 +/* 03B51C 7F0069EC 00000000 */ nop +/* 03B520 7F0069F0 8E990024 */ lw $t9, 0x24($s4) +/* 03B524 7F0069F4 24160001 */ li $s6, 1 +/* 03B528 7F0069F8 53200036 */ beql $t9, $zero, .L7F006AD4 +/* 03B52C 7F0069FC 8EB90000 */ lw $t9, ($s5) +/* 03B530 7F006A00 10000034 */ b .L7F006AD4 +/* 03B534 7F006A04 8EB90000 */ lw $t9, ($s5) +.L7F006A08: +/* 03B538 7F006A08 00570019 */ multu $v0, $s7 +/* 03B53C 7F006A0C 8FAE00D8 */ lw $t6, 0xd8($sp) +/* 03B540 7F006A10 00002825 */ move $a1, $zero +/* 03B544 7F006A14 00007812 */ mflo $t7 +/* 03B548 7F006A18 01EE9021 */ addu $s2, $t7, $t6 +/* 03B54C 7F006A1C 8E460000 */ lw $a2, ($s2) +/* 03B550 7F006A20 02402025 */ move $a0, $s2 +/* 03B554 7F006A24 8CD80000 */ lw $t8, ($a2) +/* 03B558 7F006A28 07020011 */ bltzl $t8, .L7F006A70 +/* 03B55C 7F006A2C 00057880 */ sll $t7, $a1, 2 +/* 03B560 7F006A30 8CD90000 */ lw $t9, ($a2) +/* 03B564 7F006A34 00001080 */ sll $v0, $zero, 2 +/* 03B568 7F006A38 00C21821 */ addu $v1, $a2, $v0 +/* 03B56C 7F006A3C 5239000C */ beql $s1, $t9, .L7F006A70 +/* 03B570 7F006A40 00057880 */ sll $t7, $a1, 2 +/* 03B574 7F006A44 8C6F0004 */ lw $t7, 4($v1) +.L7F006A48: +/* 03B578 7F006A48 24A50001 */ addiu $a1, $a1, 1 +/* 03B57C 7F006A4C 24420004 */ addiu $v0, $v0, 4 +/* 03B580 7F006A50 05E00006 */ bltz $t7, .L7F006A6C +/* 03B584 7F006A54 24630004 */ addiu $v1, $v1, 4 +/* 03B588 7F006A58 8C8E0000 */ lw $t6, ($a0) +/* 03B58C 7F006A5C 01C2C021 */ addu $t8, $t6, $v0 +/* 03B590 7F006A60 8F190000 */ lw $t9, ($t8) +/* 03B594 7F006A64 5639FFF8 */ bnel $s1, $t9, .L7F006A48 +/* 03B598 7F006A68 8C6F0004 */ lw $t7, 4($v1) +.L7F006A6C: +/* 03B59C 7F006A6C 00057880 */ sll $t7, $a1, 2 +.L7F006A70: +/* 03B5A0 7F006A70 00CF7021 */ addu $t6, $a2, $t7 +/* 03B5A4 7F006A74 8DD80000 */ lw $t8, ($t6) +/* 03B5A8 7F006A78 52380008 */ beql $s1, $t8, .L7F006A9C +/* 03B5AC 7F006A7C 8E8F0000 */ lw $t7, ($s4) +/* 03B5B0 7F006A80 8E990024 */ lw $t9, 0x24($s4) +/* 03B5B4 7F006A84 24160001 */ li $s6, 1 +/* 03B5B8 7F006A88 53200012 */ beql $t9, $zero, .L7F006AD4 +/* 03B5BC 7F006A8C 8EB90000 */ lw $t9, ($s5) +/* 03B5C0 7F006A90 10000010 */ b .L7F006AD4 +/* 03B5C4 7F006A94 8EB90000 */ lw $t9, ($s5) +/* 03B5C8 7F006A98 8E8F0000 */ lw $t7, ($s4) +.L7F006A9C: +/* 03B5CC 7F006A9C 02A02025 */ move $a0, $s5 +/* 03B5D0 7F006AA0 02402825 */ move $a1, $s2 +/* 03B5D4 7F006AA4 11E0000A */ beqz $t7, .L7F006AD0 +/* 03B5D8 7F006AA8 03C03025 */ move $a2, $fp +/* 03B5DC 7F006AAC 0FC23D0E */ jal sub_GAME_7F08F438 +/* 03B5E0 7F006AB0 27A7009C */ addiu $a3, $sp, 0x9c +/* 03B5E4 7F006AB4 8FAE00A0 */ lw $t6, 0xa0($sp) +/* 03B5E8 7F006AB8 8FB8009C */ lw $t8, 0x9c($sp) +/* 03B5EC 7F006ABC 51C00004 */ beql $t6, $zero, .L7F006AD0 +/* 03B5F0 7F006AC0 24160001 */ li $s6, 1 +/* 03B5F4 7F006AC4 57000003 */ bnezl $t8, .L7F006AD4 +/* 03B5F8 7F006AC8 8EB90000 */ lw $t9, ($s5) +/* 03B5FC 7F006ACC 24160001 */ li $s6, 1 +.L7F006AD0: +/* 03B600 7F006AD0 8EB90000 */ lw $t9, ($s5) +.L7F006AD4: +/* 03B604 7F006AD4 26730004 */ addiu $s3, $s3, 4 +/* 03B608 7F006AD8 03337821 */ addu $t7, $t9, $s3 +/* 03B60C 7F006ADC 8DE20000 */ lw $v0, ($t7) +/* 03B610 7F006AE0 0441FFC1 */ bgez $v0, .L7F0069E8 +/* 03B614 7F006AE4 00000000 */ nop +/* 03B618 7F006AE8 8FAE0048 */ lw $t6, 0x48($sp) +.L7F006AEC: +/* 03B61C 7F006AEC 26310001 */ addiu $s1, $s1, 1 +/* 03B620 7F006AF0 25D5000C */ addiu $s5, $t6, 0xc +/* 03B624 7F006AF4 AFB50048 */ sw $s5, 0x48($sp) +/* 03B628 7F006AF8 8EB90000 */ lw $t9, ($s5) +/* 03B62C 7F006AFC 5720FFB6 */ bnezl $t9, .L7F0069D8 +/* 03B630 7F006B00 8EB80000 */ lw $t8, ($s5) +.L7F006B04: +/* 03B634 7F006B04 12000091 */ beqz $s0, .L7F006D4C +/* 03B638 7F006B08 8FAF00D8 */ lw $t7, 0xd8($sp) +/* 03B63C 7F006B0C 11E0008F */ beqz $t7, .L7F006D4C +/* 03B640 7F006B10 00000000 */ nop +/* 03B644 7F006B14 8DE30000 */ lw $v1, ($t7) +/* 03B648 7F006B18 00004825 */ move $t1, $zero +/* 03B64C 7F006B1C 01E05825 */ move $t3, $t7 +/* 03B650 7F006B20 1060001F */ beqz $v1, .L7F006BA0 +/* 03B654 7F006B24 0200B825 */ move $s7, $s0 +/* 03B658 7F006B28 01E06825 */ move $t5, $t7 +.L7F006B2C: +/* 03B65C 7F006B2C 8D640004 */ lw $a0, 4($t3) +/* 03B660 7F006B30 00003825 */ move $a3, $zero +/* 03B664 7F006B34 8C830000 */ lw $v1, ($a0) +/* 03B668 7F006B38 04600011 */ bltz $v1, .L7F006B80 +/* 03B66C 7F006B3C 00037100 */ sll $t6, $v1, 4 +.L7F006B40: +/* 03B670 7F006B40 01D02821 */ addu $a1, $t6, $s0 +/* 03B674 7F006B44 8CA60008 */ lw $a2, 8($a1) +/* 03B678 7F006B48 04C10005 */ bgez $a2, .L7F006B60 +/* 03B67C 7F006B4C 00000000 */ nop +/* 03B680 7F006B50 ACA90008 */ sw $t1, 8($a1) +/* 03B684 7F006B54 8D640004 */ lw $a0, 4($t3) +/* 03B688 7F006B58 10000004 */ b .L7F006B6C +/* 03B68C 7F006B5C 00871021 */ addu $v0, $a0, $a3 +.L7F006B60: +/* 03B690 7F006B60 11260002 */ beq $t1, $a2, .L7F006B6C +/* 03B694 7F006B64 00871021 */ addu $v0, $a0, $a3 +/* 03B698 7F006B68 24160001 */ li $s6, 1 +.L7F006B6C: +/* 03B69C 7F006B6C 8C430004 */ lw $v1, 4($v0) +/* 03B6A0 7F006B70 24E70004 */ addiu $a3, $a3, 4 +/* 03B6A4 7F006B74 24420004 */ addiu $v0, $v0, 4 +/* 03B6A8 7F006B78 0463FFF1 */ bgezl $v1, .L7F006B40 +/* 03B6AC 7F006B7C 00037100 */ sll $t6, $v1, 4 +.L7F006B80: +/* 03B6B0 7F006B80 8DB8000C */ lw $t8, 0xc($t5) +/* 03B6B4 7F006B84 25AD000C */ addiu $t5, $t5, 0xc +/* 03B6B8 7F006B88 01A05825 */ move $t3, $t5 +/* 03B6BC 7F006B8C 1700FFE7 */ bnez $t8, .L7F006B2C +/* 03B6C0 7F006B90 25290001 */ addiu $t1, $t1, 1 +/* 03B6C4 7F006B94 8FAB00D8 */ lw $t3, 0xd8($sp) +/* 03B6C8 7F006B98 00004825 */ move $t1, $zero +/* 03B6CC 7F006B9C 8D630000 */ lw $v1, ($t3) +.L7F006BA0: +/* 03B6D0 7F006BA0 8EEF0000 */ lw $t7, ($s7) +/* 03B6D4 7F006BA4 02E03025 */ move $a2, $s7 +/* 03B6D8 7F006BA8 8FAD00D8 */ lw $t5, 0xd8($sp) +/* 03B6DC 7F006BAC 05E0000A */ bltz $t7, .L7F006BD8 +/* 03B6E0 7F006BB0 24070001 */ li $a3, 1 +/* 03B6E4 7F006BB4 8CCE0008 */ lw $t6, 8($a2) +.L7F006BB8: +/* 03B6E8 7F006BB8 25290001 */ addiu $t1, $t1, 1 +/* 03B6EC 7F006BBC 0009C100 */ sll $t8, $t1, 4 +/* 03B6F0 7F006BC0 05C10002 */ bgez $t6, .L7F006BCC +/* 03B6F4 7F006BC4 03103021 */ addu $a2, $t8, $s0 +/* 03B6F8 7F006BC8 24160001 */ li $s6, 1 +.L7F006BCC: +/* 03B6FC 7F006BCC 8CD90000 */ lw $t9, ($a2) +/* 03B700 7F006BD0 0723FFF9 */ bgezl $t9, .L7F006BB8 +/* 03B704 7F006BD4 8CCE0008 */ lw $t6, 8($a2) +.L7F006BD8: +/* 03B708 7F006BD8 1060005C */ beqz $v1, .L7F006D4C +/* 03B70C 7F006BDC 00000000 */ nop +/* 03B710 7F006BE0 8D640004 */ lw $a0, 4($t3) +.L7F006BE4: +/* 03B714 7F006BE4 00001825 */ move $v1, $zero +/* 03B718 7F006BE8 00004025 */ move $t0, $zero +/* 03B71C 7F006BEC 8C850000 */ lw $a1, ($a0) +/* 03B720 7F006BF0 00006025 */ move $t4, $zero +/* 03B724 7F006BF4 00004825 */ move $t1, $zero +/* 03B728 7F006BF8 04A00012 */ bltz $a1, .L7F006C44 +/* 03B72C 7F006BFC 00A01025 */ move $v0, $a1 +.L7F006C00: +/* 03B730 7F006C00 15200005 */ bnez $t1, .L7F006C18 +/* 03B734 7F006C04 0002C100 */ sll $t8, $v0, 4 +/* 03B738 7F006C08 00027900 */ sll $t7, $v0, 4 +/* 03B73C 7F006C0C 01F07021 */ addu $t6, $t7, $s0 +/* 03B740 7F006C10 10000003 */ b .L7F006C20 +/* 03B744 7F006C14 ADC7000C */ sw $a3, 0xc($t6) +.L7F006C18: +/* 03B748 7F006C18 0310C821 */ addu $t9, $t8, $s0 +/* 03B74C 7F006C1C AF20000C */ sw $zero, 0xc($t9) +.L7F006C20: +/* 03B750 7F006C20 8D640004 */ lw $a0, 4($t3) +/* 03B754 7F006C24 25290004 */ addiu $t1, $t1, 4 +/* 03B758 7F006C28 00897821 */ addu $t7, $a0, $t1 +/* 03B75C 7F006C2C 8DE20000 */ lw $v0, ($t7) +/* 03B760 7F006C30 0441FFF3 */ bgez $v0, .L7F006C00 +/* 03B764 7F006C34 00000000 */ nop +/* 03B768 7F006C38 8C850000 */ lw $a1, ($a0) +/* 03B76C 7F006C3C 00001825 */ move $v1, $zero +/* 03B770 7F006C40 00A01025 */ move $v0, $a1 +.L7F006C44: +/* 03B774 7F006C44 04400020 */ bltz $v0, .L7F006CC8 +/* 03B778 7F006C48 00004825 */ move $t1, $zero +/* 03B77C 7F006C4C 00027100 */ sll $t6, $v0, 4 +.L7F006C50: +/* 03B780 7F006C50 01D03021 */ addu $a2, $t6, $s0 +/* 03B784 7F006C54 8CD8000C */ lw $t8, 0xc($a2) +/* 03B788 7F006C58 25290004 */ addiu $t1, $t1, 4 +/* 03B78C 7F006C5C 54F80014 */ bnel $a3, $t8, .L7F006CB0 +/* 03B790 7F006C60 0089C021 */ addu $t8, $a0, $t1 +/* 03B794 7F006C64 8CC50004 */ lw $a1, 4($a2) +/* 03B798 7F006C68 00001825 */ move $v1, $zero +/* 03B79C 7F006C6C 8CA20000 */ lw $v0, ($a1) +/* 03B7A0 7F006C70 0440000E */ bltz $v0, .L7F006CAC +/* 03B7A4 7F006C74 0002C900 */ sll $t9, $v0, 4 +.L7F006C78: +/* 03B7A8 7F006C78 03302021 */ addu $a0, $t9, $s0 +/* 03B7AC 7F006C7C 8C8F000C */ lw $t7, 0xc($a0) +/* 03B7B0 7F006C80 24630004 */ addiu $v1, $v1, 4 +/* 03B7B4 7F006C84 50EF0005 */ beql $a3, $t7, .L7F006C9C +/* 03B7B8 7F006C88 00A37021 */ addu $t6, $a1, $v1 +/* 03B7BC 7F006C8C AC87000C */ sw $a3, 0xc($a0) +/* 03B7C0 7F006C90 8CC50004 */ lw $a1, 4($a2) +/* 03B7C4 7F006C94 00E04025 */ move $t0, $a3 +/* 03B7C8 7F006C98 00A37021 */ addu $t6, $a1, $v1 +.L7F006C9C: +/* 03B7CC 7F006C9C 8DC20000 */ lw $v0, ($t6) +/* 03B7D0 7F006CA0 0443FFF5 */ bgezl $v0, .L7F006C78 +/* 03B7D4 7F006CA4 0002C900 */ sll $t9, $v0, 4 +/* 03B7D8 7F006CA8 8D640004 */ lw $a0, 4($t3) +.L7F006CAC: +/* 03B7DC 7F006CAC 0089C021 */ addu $t8, $a0, $t1 +.L7F006CB0: +/* 03B7E0 7F006CB0 8F020000 */ lw $v0, ($t8) +/* 03B7E4 7F006CB4 0443FFE6 */ bgezl $v0, .L7F006C50 +/* 03B7E8 7F006CB8 00027100 */ sll $t6, $v0, 4 +/* 03B7EC 7F006CBC 8C850000 */ lw $a1, ($a0) +/* 03B7F0 7F006CC0 00001825 */ move $v1, $zero +/* 03B7F4 7F006CC4 00A01025 */ move $v0, $a1 +.L7F006CC8: +/* 03B7F8 7F006CC8 0440000C */ bltz $v0, .L7F006CFC +/* 03B7FC 7F006CCC 0002C900 */ sll $t9, $v0, 4 +.L7F006CD0: +/* 03B800 7F006CD0 03307821 */ addu $t7, $t9, $s0 +/* 03B804 7F006CD4 8DEE000C */ lw $t6, 0xc($t7) +/* 03B808 7F006CD8 24630001 */ addiu $v1, $v1, 1 +/* 03B80C 7F006CDC 0003C080 */ sll $t8, $v1, 2 +/* 03B810 7F006CE0 10EE0003 */ beq $a3, $t6, .L7F006CF0 +/* 03B814 7F006CE4 0098C821 */ addu $t9, $a0, $t8 +/* 03B818 7F006CE8 10000004 */ b .L7F006CFC +/* 03B81C 7F006CEC 00E06025 */ move $t4, $a3 +.L7F006CF0: +/* 03B820 7F006CF0 8F220000 */ lw $v0, ($t9) +/* 03B824 7F006CF4 0443FFF6 */ bgezl $v0, .L7F006CD0 +/* 03B828 7F006CF8 0002C900 */ sll $t9, $v0, 4 +.L7F006CFC: +/* 03B82C 7F006CFC 11000003 */ beqz $t0, .L7F006D0C +/* 03B830 7F006D00 00001825 */ move $v1, $zero +/* 03B834 7F006D04 15800009 */ bnez $t4, .L7F006D2C +/* 03B838 7F006D08 00A01025 */ move $v0, $a1 +.L7F006D0C: +/* 03B83C 7F006D0C 5180000B */ beql $t4, $zero, .L7F006D3C +/* 03B840 7F006D10 8DAE000C */ lw $t6, 0xc($t5) +/* 03B844 7F006D14 8E8F0024 */ lw $t7, 0x24($s4) +/* 03B848 7F006D18 24160001 */ li $s6, 1 +/* 03B84C 7F006D1C 51E00007 */ beql $t7, $zero, .L7F006D3C +/* 03B850 7F006D20 8DAE000C */ lw $t6, 0xc($t5) +/* 03B854 7F006D24 10000005 */ b .L7F006D3C +/* 03B858 7F006D28 8DAE000C */ lw $t6, 0xc($t5) +.L7F006D2C: +/* 03B85C 7F006D2C 00004025 */ move $t0, $zero +/* 03B860 7F006D30 1000FFC4 */ b .L7F006C44 +/* 03B864 7F006D34 00006025 */ move $t4, $zero +/* 03B868 7F006D38 8DAE000C */ lw $t6, 0xc($t5) +.L7F006D3C: +/* 03B86C 7F006D3C 25AD000C */ addiu $t5, $t5, 0xc +/* 03B870 7F006D40 01A05825 */ move $t3, $t5 +/* 03B874 7F006D44 55C0FFA7 */ bnezl $t6, .L7F006BE4 +/* 03B878 7F006D48 8D640004 */ lw $a0, 4($t3) +.L7F006D4C: +/* 03B87C 7F006D4C 12C00003 */ beqz $s6, .L7F006D5C +/* 03B880 7F006D50 8FB00018 */ lw $s0, 0x18($sp) +.L7F006D54: +/* 03B884 7F006D54 1000FFFF */ b .L7F006D54 +/* 03B888 7F006D58 00000000 */ nop +.L7F006D5C: +/* 03B88C 7F006D5C 8FBF003C */ lw $ra, 0x3c($sp) +/* 03B890 7F006D60 8FB1001C */ lw $s1, 0x1c($sp) +/* 03B894 7F006D64 8FB20020 */ lw $s2, 0x20($sp) +/* 03B898 7F006D68 8FB30024 */ lw $s3, 0x24($sp) +/* 03B89C 7F006D6C 8FB40028 */ lw $s4, 0x28($sp) +/* 03B8A0 7F006D70 8FB5002C */ lw $s5, 0x2c($sp) +/* 03B8A4 7F006D74 8FB60030 */ lw $s6, 0x30($sp) +/* 03B8A8 7F006D78 8FB70034 */ lw $s7, 0x34($sp) +/* 03B8AC 7F006D7C 8FBE0038 */ lw $fp, 0x38($sp) +/* 03B8B0 7F006D80 03E00008 */ jr $ra +/* 03B8B4 7F006D84 27BD00E0 */ addiu $sp, $sp, 0xe0 +) +#endif + + diff --git a/src/game/initpathtablesomething.c b/src/game/initpathtablesomething.c new file mode 100644 index 0000000..9933b41 --- /dev/null +++ b/src/game/initpathtablesomething.c @@ -0,0 +1,71 @@ +#include "ultra64.h" + + + + + +#ifdef NONMATCHING +void init_pathtable_something(void) { + +} +#else +GLOBAL_ASM( +.text +glabel init_pathtable_something +/* 03B2F0 7F0067C0 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 03B2F4 7F0067C4 AFB0001C */ sw $s0, 0x1c($sp) +/* 03B2F8 7F0067C8 00808025 */ move $s0, $a0 +/* 03B2FC 7F0067CC AFBF0024 */ sw $ra, 0x24($sp) +/* 03B300 7F0067D0 AFB10020 */ sw $s1, 0x20($sp) +/* 03B304 7F0067D4 00C08825 */ move $s1, $a2 +/* 03B308 7F0067D8 0FC2CB96 */ jal stanMatchTileName +/* 03B30C 7F0067DC 00A02025 */ move $a0, $a1 +/* 03B310 7F0067E0 10400007 */ beqz $v0, .L7F006800 +/* 03B314 7F0067E4 AE220000 */ sw $v0, ($s1) +/* 03B318 7F0067E8 00402025 */ move $a0, $v0 +/* 03B31C 7F0067EC 8E050000 */ lw $a1, ($s0) +/* 03B320 7F0067F0 0FC2C0DB */ jal sub_GAME_7F0B036C +/* 03B324 7F0067F4 8E060008 */ lw $a2, 8($s0) +/* 03B328 7F0067F8 5440001D */ bnezl $v0, .L7F006870 +/* 03B32C 7F0067FC 24020001 */ li $v0, 1 +.L7F006800: +/* 03B330 7F006800 C6040000 */ lwc1 $f4, ($s0) +/* 03B334 7F006804 27A4002C */ addiu $a0, $sp, 0x2c +/* 03B338 7F006808 27A50030 */ addiu $a1, $sp, 0x30 +/* 03B33C 7F00680C E7A4002C */ swc1 $f4, 0x2c($sp) +/* 03B340 7F006810 C6060004 */ lwc1 $f6, 4($s0) +/* 03B344 7F006814 27A60034 */ addiu $a2, $sp, 0x34 +/* 03B348 7F006818 24070000 */ li $a3, 0 +/* 03B34C 7F00681C E7A60030 */ swc1 $f6, 0x30($sp) +/* 03B350 7F006820 C6080008 */ lwc1 $f8, 8($s0) +/* 03B354 7F006824 0FC2BEDE */ jal sub_GAME_7F0AFB78 +/* 03B358 7F006828 E7A80034 */ swc1 $f8, 0x34($sp) +/* 03B35C 7F00682C 1040000C */ beqz $v0, .L7F006860 +/* 03B360 7F006830 AE220000 */ sw $v0, ($s1) +/* 03B364 7F006834 C60A0008 */ lwc1 $f10, 8($s0) +/* 03B368 7F006838 8E070000 */ lw $a3, ($s0) +/* 03B36C 7F00683C 02202025 */ move $a0, $s1 +/* 03B370 7F006840 8FA5002C */ lw $a1, 0x2c($sp) +/* 03B374 7F006844 8FA60034 */ lw $a2, 0x34($sp) +/* 03B378 7F006848 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 03B37C 7F00684C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 03B380 7F006850 50400004 */ beql $v0, $zero, .L7F006864 +/* 03B384 7F006854 AE200000 */ sw $zero, ($s1) +/* 03B388 7F006858 10000005 */ b .L7F006870 +/* 03B38C 7F00685C 24020002 */ li $v0, 2 +.L7F006860: +/* 03B390 7F006860 AE200000 */ sw $zero, ($s1) +.L7F006864: +/* 03B394 7F006864 10000002 */ b .L7F006870 +/* 03B398 7F006868 00001025 */ move $v0, $zero +/* 03B39C 7F00686C 24020001 */ li $v0, 1 +.L7F006870: +/* 03B3A0 7F006870 8FBF0024 */ lw $ra, 0x24($sp) +/* 03B3A4 7F006874 8FB0001C */ lw $s0, 0x1c($sp) +/* 03B3A8 7F006878 8FB10020 */ lw $s1, 0x20($sp) +/* 03B3AC 7F00687C 03E00008 */ jr $ra +/* 03B3B0 7F006880 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + diff --git a/src/game/initpathtablesomething.h b/src/game/initpathtablesomething.h new file mode 100644 index 0000000..de60833 --- /dev/null +++ b/src/game/initpathtablesomething.h @@ -0,0 +1,7 @@ +#ifndef _INITPATHTABLESOMETHING_H_ +#define _INITPATHTABLESOMETHING_H_ +#include "ultra64.h" + +void init_pathtable_something(void); + +#endif diff --git a/src/game/initunk_0009E0.c b/src/game/initunk_0009E0.c new file mode 100644 index 0000000..d41c692 --- /dev/null +++ b/src/game/initunk_0009E0.c @@ -0,0 +1,10 @@ +#include "ultra64.h" +#include "game/objecthandler.h" + + +void sub_GAME_7F0009E0(s32 arg0, s32 arg1, s32 arg2) { + D_80036414 = arg0; + D_80036418 = arg1; + D_8003641C = arg2; +} + diff --git a/src/game/initunk_000B60.c b/src/game/initunk_000B60.c new file mode 100644 index 0000000..e29b754 --- /dev/null +++ b/src/game/initunk_000B60.c @@ -0,0 +1,8 @@ +#include "ultra64.h" +#include "game/chrobjdata.h" + +void sub_GAME_7F000B60(void) { + player_gait_object.offset_obj_table = (int)&player_gait_hdr; + return; +} + diff --git a/src/game/initunk_005450.c b/src/game/initunk_005450.c new file mode 100644 index 0000000..217f4d6 --- /dev/null +++ b/src/game/initunk_005450.c @@ -0,0 +1,68 @@ +#include "ultra64.h" + +//called by stage load + + +#ifdef NONMATCHING +void sub_GAME_7F005450(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F005450 +/* 039F80 7F005450 3C0A8007 */ lui $t2, %hi(dword_CODE_bss_80076A50) +/* 039F84 7F005454 254A6A50 */ addiu $t2, %lo(dword_CODE_bss_80076A50) # addiu $t2, $t2, 0x6a50 +/* 039F88 7F005458 3C018003 */ lui $at, %hi(D_80036060) +/* 039F8C 7F00545C 3C0B8007 */ lui $t3, %hi(dword_CODE_bss_80076A64) +/* 039F90 7F005460 AC2A6060 */ sw $t2, %lo(D_80036060)($at) +/* 039F94 7F005464 256B6A64 */ addiu $t3, %lo(dword_CODE_bss_80076A64) # addiu $t3, $t3, 0x6a64 +/* 039F98 7F005468 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80076A78) +/* 039F9C 7F00546C AD4B000C */ sw $t3, 0xc($t2) +/* 039FA0 7F005470 25C66A78 */ addiu $a2, $t6, %lo(dword_CODE_bss_80076A78) +/* 039FA4 7F005474 3C018007 */ lui $at, %hi(dword_CODE_bss_80076A70) +/* 039FA8 7F005478 AC266A70 */ sw $a2, %lo(dword_CODE_bss_80076A70)($at) +/* 039FAC 7F00547C 3C018007 */ lui $at, %hi(dword_CODE_bss_80076A74) +/* 039FB0 7F005480 AC2A6A74 */ sw $t2, %lo(dword_CODE_bss_80076A74)($at) +/* 039FB4 7F005484 3C0F8007 */ lui $t7, %hi(dword_CODE_bss_80076A8C) +/* 039FB8 7F005488 25E46A8C */ addiu $a0, $t7, %lo(dword_CODE_bss_80076A8C) +/* 039FBC 7F00548C 3C018007 */ lui $at, %hi(dword_CODE_bss_80076A84) +/* 039FC0 7F005490 AC246A84 */ sw $a0, %lo(dword_CODE_bss_80076A84)($at) +/* 039FC4 7F005494 3C018007 */ lui $at, %hi(dword_CODE_bss_80076A88) +/* 039FC8 7F005498 3C058007 */ lui $a1, %hi(dword_CODE_bss_80076AA0) +/* 039FCC 7F00549C 3C078007 */ lui $a3, %hi(dword_CODE_bss_80076AB4) +/* 039FD0 7F0054A0 3C088007 */ lui $t0, %hi(dword_CODE_bss_80076AC8) +/* 039FD4 7F0054A4 3C098007 */ lui $t1, %hi(dword_CODE_bss_80076ADC) +/* 039FD8 7F0054A8 3C028008 */ lui $v0, %hi(flt_CODE_bss_8007996C) +/* 039FDC 7F0054AC 2442996C */ addiu $v0, %lo(flt_CODE_bss_8007996C) # addiu $v0, $v0, -0x6694 +/* 039FE0 7F0054B0 25296ADC */ addiu $t1, %lo(dword_CODE_bss_80076ADC) # addiu $t1, $t1, 0x6adc +/* 039FE4 7F0054B4 25086AC8 */ addiu $t0, %lo(dword_CODE_bss_80076AC8) # addiu $t0, $t0, 0x6ac8 +/* 039FE8 7F0054B8 24E76AB4 */ addiu $a3, %lo(dword_CODE_bss_80076AB4) # addiu $a3, $a3, 0x6ab4 +/* 039FEC 7F0054BC 24A56AA0 */ addiu $a1, %lo(dword_CODE_bss_80076AA0) # addiu $a1, $a1, 0x6aa0 +/* 039FF0 7F0054C0 AC2B6A88 */ sw $t3, %lo(dword_CODE_bss_80076A88)($at) +/* 039FF4 7F0054C4 00801825 */ move $v1, $a0 +.L7F0054C8: +/* 039FF8 7F0054C8 AC690048 */ sw $t1, 0x48($v1) +/* 039FFC 7F0054CC 25290050 */ addiu $t1, $t1, 0x50 +/* 03A000 7F0054D0 AC670020 */ sw $a3, 0x20($v1) +/* 03A004 7F0054D4 AC640024 */ sw $a0, 0x24($v1) +/* 03A008 7F0054D8 AC680034 */ sw $t0, 0x34($v1) +/* 03A00C 7F0054DC AC650038 */ sw $a1, 0x38($v1) +/* 03A010 7F0054E0 AC67004C */ sw $a3, 0x4c($v1) +/* 03A014 7F0054E4 AC65000C */ sw $a1, 0xc($v1) +/* 03A018 7F0054E8 AC660010 */ sw $a2, 0x10($v1) +/* 03A01C 7F0054EC 24C60050 */ addiu $a2, $a2, 0x50 +/* 03A020 7F0054F0 24A50050 */ addiu $a1, $a1, 0x50 +/* 03A024 7F0054F4 24E70050 */ addiu $a3, $a3, 0x50 +/* 03A028 7F0054F8 25080050 */ addiu $t0, $t0, 0x50 +/* 03A02C 7F0054FC 24840050 */ addiu $a0, $a0, 0x50 +/* 03A030 7F005500 1522FFF1 */ bne $t1, $v0, .L7F0054C8 +/* 03A034 7F005504 24630050 */ addiu $v1, $v1, 0x50 +/* 03A038 7F005508 3C188008 */ lui $t8, %hi(dword_CODE_bss_80079908) +/* 03A03C 7F00550C 27189908 */ addiu $t8, %lo(dword_CODE_bss_80079908) # addiu $t8, $t8, -0x66f8 +/* 03A040 7F005510 03E00008 */ jr $ra +/* 03A044 7F005514 AD582EDC */ sw $t8, 0x2edc($t2) +) +#endif + + diff --git a/src/game/initunk_005520.c b/src/game/initunk_005520.c new file mode 100644 index 0000000..6cbc8e6 --- /dev/null +++ b/src/game/initunk_005520.c @@ -0,0 +1,168 @@ +#include "ultra64.h" + + +extern s32 D_80036070; +extern s32 D_80036074; +extern s32 D_80036078; + + + +void zero_contents_of_80036070_74(void) { + D_80036070 = 0; + D_80036074 = 0; +} + +void set_contents_of_80036078(s32 arg0) { + D_80036078 = arg0; +} + +//this may be a file split + +#ifdef NONMATCHING +void sub_GAME_7F005540(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F005540 +/* 03A070 7F005540 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 03A074 7F005544 AFB40024 */ sw $s4, 0x24($sp) +/* 03A078 7F005548 3C148003 */ lui $s4, %hi(D_80036074) +/* 03A07C 7F00554C AFB50028 */ sw $s5, 0x28($sp) +/* 03A080 7F005550 0080A825 */ move $s5, $a0 +/* 03A084 7F005554 26946074 */ addiu $s4, %lo(D_80036074) # addiu $s4, $s4, 0x6074 +/* 03A088 7F005558 AFBF002C */ sw $ra, 0x2c($sp) +/* 03A08C 7F00555C 248E001E */ addiu $t6, $a0, 0x1e +/* 03A090 7F005560 AFB30020 */ sw $s3, 0x20($sp) +/* 03A094 7F005564 AFB2001C */ sw $s2, 0x1c($sp) +/* 03A098 7F005568 AFB10018 */ sw $s1, 0x18($sp) +/* 03A09C 7F00556C AFB00014 */ sw $s0, 0x14($sp) +/* 03A0A0 7F005570 AE8E0000 */ sw $t6, ($s4) +/* 03A0A4 7F005574 000E2140 */ sll $a0, $t6, 5 +/* 03A0A8 7F005578 0C0025C8 */ jal mempAllocBytesInBank +/* 03A0AC 7F00557C 24050004 */ li $a1, 4 +/* 03A0B0 7F005580 8E980000 */ lw $t8, ($s4) +/* 03A0B4 7F005584 3C128008 */ lui $s2, %hi(ptr_allocation_1) +/* 03A0B8 7F005588 26529934 */ addiu $s2, %lo(ptr_allocation_1) # addiu $s2, $s2, -0x66cc +/* 03A0BC 7F00558C AE420000 */ sw $v0, ($s2) +/* 03A0C0 7F005590 1B00001B */ blez $t8, .L7F005600 +/* 03A0C4 7F005594 00008825 */ move $s1, $zero +/* 03A0C8 7F005598 00008025 */ move $s0, $zero +/* 03A0CC 7F00559C 24130014 */ li $s3, 20 +/* 03A0D0 7F0055A0 8E590000 */ lw $t9, ($s2) +.L7F0055A4: +/* 03A0D4 7F0055A4 0235082A */ slt $at, $s1, $s5 +/* 03A0D8 7F0055A8 24040050 */ li $a0, 80 +/* 03A0DC 7F0055AC 03304021 */ addu $t0, $t9, $s0 +/* 03A0E0 7F0055B0 10200005 */ beqz $at, .L7F0055C8 +/* 03A0E4 7F0055B4 AD000008 */ sw $zero, 8($t0) +/* 03A0E8 7F0055B8 8E490000 */ lw $t1, ($s2) +/* 03A0EC 7F0055BC 01305021 */ addu $t2, $t1, $s0 +/* 03A0F0 7F0055C0 10000009 */ b .L7F0055E8 +/* 03A0F4 7F0055C4 AD400010 */ sw $zero, 0x10($t2) +.L7F0055C8: +/* 03A0F8 7F0055C8 0C0025C8 */ jal mempAllocBytesInBank +/* 03A0FC 7F0055CC 24050004 */ li $a1, 4 +/* 03A100 7F0055D0 8E4B0000 */ lw $t3, ($s2) +/* 03A104 7F0055D4 01706021 */ addu $t4, $t3, $s0 +/* 03A108 7F0055D8 AD820010 */ sw $v0, 0x10($t4) +/* 03A10C 7F0055DC 8E4D0000 */ lw $t5, ($s2) +/* 03A110 7F0055E0 01B07021 */ addu $t6, $t5, $s0 +/* 03A114 7F0055E4 A5D30002 */ sh $s3, 2($t6) +.L7F0055E8: +/* 03A118 7F0055E8 8E8F0000 */ lw $t7, ($s4) +/* 03A11C 7F0055EC 26310001 */ addiu $s1, $s1, 1 +/* 03A120 7F0055F0 26100020 */ addiu $s0, $s0, 0x20 +/* 03A124 7F0055F4 022F082A */ slt $at, $s1, $t7 +/* 03A128 7F0055F8 5420FFEA */ bnezl $at, .L7F0055A4 +/* 03A12C 7F0055FC 8E590000 */ lw $t9, ($s2) +.L7F005600: +/* 03A130 7F005600 8FBF002C */ lw $ra, 0x2c($sp) +/* 03A134 7F005604 8FB00014 */ lw $s0, 0x14($sp) +/* 03A138 7F005608 8FB10018 */ lw $s1, 0x18($sp) +/* 03A13C 7F00560C 8FB2001C */ lw $s2, 0x1c($sp) +/* 03A140 7F005610 8FB30020 */ lw $s3, 0x20($sp) +/* 03A144 7F005614 8FB40024 */ lw $s4, 0x24($sp) +/* 03A148 7F005618 8FB50028 */ lw $s5, 0x28($sp) +/* 03A14C 7F00561C 03E00008 */ jr $ra +/* 03A150 7F005620 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F005624(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F005624 +/* 03A154 7F005624 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 03A158 7F005628 AFB40024 */ sw $s4, 0x24($sp) +/* 03A15C 7F00562C 248E000A */ addiu $t6, $a0, 0xa +/* 03A160 7F005630 3C148003 */ lui $s4, %hi(D_80036070) +/* 03A164 7F005634 AFB50028 */ sw $s5, 0x28($sp) +/* 03A168 7F005638 000E7880 */ sll $t7, $t6, 2 +/* 03A16C 7F00563C 0080A825 */ move $s5, $a0 +/* 03A170 7F005640 26946070 */ addiu $s4, %lo(D_80036070) # addiu $s4, $s4, 0x6070 +/* 03A174 7F005644 AFBF002C */ sw $ra, 0x2c($sp) +/* 03A178 7F005648 01EE7823 */ subu $t7, $t7, $t6 +/* 03A17C 7F00564C AFB30020 */ sw $s3, 0x20($sp) +/* 03A180 7F005650 AFB2001C */ sw $s2, 0x1c($sp) +/* 03A184 7F005654 AFB10018 */ sw $s1, 0x18($sp) +/* 03A188 7F005658 AFB00014 */ sw $s0, 0x14($sp) +/* 03A18C 7F00565C AE8E0000 */ sw $t6, ($s4) +/* 03A190 7F005660 000F2180 */ sll $a0, $t7, 6 +/* 03A194 7F005664 0C0025C8 */ jal mempAllocBytesInBank +/* 03A198 7F005668 24050004 */ li $a1, 4 +/* 03A19C 7F00566C 8E980000 */ lw $t8, ($s4) +/* 03A1A0 7F005670 3C128008 */ lui $s2, %hi(ptr_allocation_0) +/* 03A1A4 7F005674 26529930 */ addiu $s2, %lo(ptr_allocation_0) # addiu $s2, $s2, -0x66d0 +/* 03A1A8 7F005678 AE420000 */ sw $v0, ($s2) +/* 03A1AC 7F00567C 1B00001B */ blez $t8, .L7F0056EC +/* 03A1B0 7F005680 00008825 */ move $s1, $zero +/* 03A1B4 7F005684 00008025 */ move $s0, $zero +/* 03A1B8 7F005688 2413008C */ li $s3, 140 +/* 03A1BC 7F00568C 8E590000 */ lw $t9, ($s2) +.L7F005690: +/* 03A1C0 7F005690 0235082A */ slt $at, $s1, $s5 +/* 03A1C4 7F005694 24040230 */ li $a0, 560 +/* 03A1C8 7F005698 03304021 */ addu $t0, $t9, $s0 +/* 03A1CC 7F00569C 10200005 */ beqz $at, .L7F0056B4 +/* 03A1D0 7F0056A0 AD000008 */ sw $zero, 8($t0) +/* 03A1D4 7F0056A4 8E490000 */ lw $t1, ($s2) +/* 03A1D8 7F0056A8 01305021 */ addu $t2, $t1, $s0 +/* 03A1DC 7F0056AC 10000009 */ b .L7F0056D4 +/* 03A1E0 7F0056B0 AD400010 */ sw $zero, 0x10($t2) +.L7F0056B4: +/* 03A1E4 7F0056B4 0C0025C8 */ jal mempAllocBytesInBank +/* 03A1E8 7F0056B8 24050004 */ li $a1, 4 +/* 03A1EC 7F0056BC 8E4B0000 */ lw $t3, ($s2) +/* 03A1F0 7F0056C0 01706021 */ addu $t4, $t3, $s0 +/* 03A1F4 7F0056C4 AD820010 */ sw $v0, 0x10($t4) +/* 03A1F8 7F0056C8 8E4D0000 */ lw $t5, ($s2) +/* 03A1FC 7F0056CC 01B07021 */ addu $t6, $t5, $s0 +/* 03A200 7F0056D0 A5D30002 */ sh $s3, 2($t6) +.L7F0056D4: +/* 03A204 7F0056D4 8E8F0000 */ lw $t7, ($s4) +/* 03A208 7F0056D8 26310001 */ addiu $s1, $s1, 1 +/* 03A20C 7F0056DC 261000BC */ addiu $s0, $s0, 0xbc +/* 03A210 7F0056E0 022F082A */ slt $at, $s1, $t7 +/* 03A214 7F0056E4 5420FFEA */ bnezl $at, .L7F005690 +/* 03A218 7F0056E8 8E590000 */ lw $t9, ($s2) +.L7F0056EC: +/* 03A21C 7F0056EC 8FBF002C */ lw $ra, 0x2c($sp) +/* 03A220 7F0056F0 8FB00014 */ lw $s0, 0x14($sp) +/* 03A224 7F0056F4 8FB10018 */ lw $s1, 0x18($sp) +/* 03A228 7F0056F8 8FB2001C */ lw $s2, 0x1c($sp) +/* 03A22C 7F0056FC 8FB30020 */ lw $s3, 0x20($sp) +/* 03A230 7F005700 8FB40024 */ lw $s4, 0x24($sp) +/* 03A234 7F005704 8FB50028 */ lw $s5, 0x28($sp) +/* 03A238 7F005708 03E00008 */ jr $ra +/* 03A23C 7F00570C 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + diff --git a/src/game/initunk_007180.c b/src/game/initunk_007180.c new file mode 100644 index 0000000..a4a5992 --- /dev/null +++ b/src/game/initunk_007180.c @@ -0,0 +1,86 @@ +#include "ultra64.h" + + + +#ifdef NONMATCHING +void sub_GAME_7F007180(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F007180 +/* 03BCB0 7F007180 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 03BCB4 7F007184 AFBF0014 */ sw $ra, 0x14($sp) +/* 03BCB8 7F007188 0FC2F7C1 */ jal sub_GAME_7F0BDF04 +/* 03BCBC 7F00718C 00000000 */ nop +/* 03BCC0 7F007190 0FC26919 */ jal get_num_players +/* 03BCC4 7F007194 AFA20018 */ sw $v0, 0x18($sp) +/* 03BCC8 7F007198 240E00C8 */ li $t6, 200 +/* 03BCCC 7F00719C 01C2001A */ div $zero, $t6, $v0 +/* 03BCD0 7F0071A0 8FA30018 */ lw $v1, 0x18($sp) +/* 03BCD4 7F0071A4 3C068008 */ lui $a2, %hi(dword_CODE_bss_8007A160) +/* 03BCD8 7F0071A8 24C6A160 */ addiu $a2, %lo(dword_CODE_bss_8007A160) # addiu $a2, $a2, -0x5ea0 +/* 03BCDC 7F0071AC 14400002 */ bnez $v0, .L7F0071B8 +/* 03BCE0 7F0071B0 00000000 */ nop +/* 03BCE4 7F0071B4 0007000D */ break 7 +.L7F0071B8: +/* 03BCE8 7F0071B8 2401FFFF */ li $at, -1 +/* 03BCEC 7F0071BC 14410004 */ bne $v0, $at, .L7F0071D0 +/* 03BCF0 7F0071C0 3C018000 */ lui $at, 0x8000 +/* 03BCF4 7F0071C4 15C10002 */ bne $t6, $at, .L7F0071D0 +/* 03BCF8 7F0071C8 00000000 */ nop +/* 03BCFC 7F0071CC 0006000D */ break 6 +.L7F0071D0: +/* 03BD00 7F0071D0 00007812 */ mflo $t7 +/* 03BD04 7F0071D4 2401001D */ li $at, 29 +/* 03BD08 7F0071D8 10610004 */ beq $v1, $at, .L7F0071EC +/* 03BD0C 7F0071DC ACCF0000 */ sw $t7, ($a2) +/* 03BD10 7F0071E0 2401001E */ li $at, 30 +/* 03BD14 7F0071E4 54610005 */ bnel $v1, $at, .L7F0071FC +/* 03BD18 7F0071E8 8CC40000 */ lw $a0, ($a2) +.L7F0071EC: +/* 03BD1C 7F0071EC 8CD80000 */ lw $t8, ($a2) +/* 03BD20 7F0071F0 0018C843 */ sra $t9, $t8, 1 +/* 03BD24 7F0071F4 ACD90000 */ sw $t9, ($a2) +/* 03BD28 7F0071F8 8CC40000 */ lw $a0, ($a2) +.L7F0071FC: +/* 03BD2C 7F0071FC 2401FFF0 */ li $at, -16 +/* 03BD30 7F007200 24050004 */ li $a1, 4 +/* 03BD34 7F007204 00044080 */ sll $t0, $a0, 2 +/* 03BD38 7F007208 01044023 */ subu $t0, $t0, $a0 +/* 03BD3C 7F00720C 00084080 */ sll $t0, $t0, 2 +/* 03BD40 7F007210 01044021 */ addu $t0, $t0, $a0 +/* 03BD44 7F007214 000840C0 */ sll $t0, $t0, 3 +/* 03BD48 7F007218 2504000F */ addiu $a0, $t0, 0xf +/* 03BD4C 7F00721C 00814824 */ and $t1, $a0, $at +/* 03BD50 7F007220 0C0025C8 */ jal mempAllocBytesInBank +/* 03BD54 7F007224 01202025 */ move $a0, $t1 +/* 03BD58 7F007228 3C068008 */ lui $a2, %hi(dword_CODE_bss_8007A160) +/* 03BD5C 7F00722C 24C6A160 */ addiu $a2, %lo(dword_CODE_bss_8007A160) # addiu $a2, $a2, -0x5ea0 +/* 03BD60 7F007230 8CCA0000 */ lw $t2, ($a2) +/* 03BD64 7F007234 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A164) +/* 03BD68 7F007238 2484A164 */ addiu $a0, %lo(dword_CODE_bss_8007A164) # addiu $a0, $a0, -0x5e9c +/* 03BD6C 7F00723C AC820000 */ sw $v0, ($a0) +/* 03BD70 7F007240 1940000B */ blez $t2, .L7F007270 +/* 03BD74 7F007244 00001825 */ move $v1, $zero +/* 03BD78 7F007248 00001025 */ move $v0, $zero +/* 03BD7C 7F00724C 8C8B0000 */ lw $t3, ($a0) +.L7F007250: +/* 03BD80 7F007250 24630001 */ addiu $v1, $v1, 1 +/* 03BD84 7F007254 01626021 */ addu $t4, $t3, $v0 +/* 03BD88 7F007258 AD800000 */ sw $zero, ($t4) +/* 03BD8C 7F00725C 8CCD0000 */ lw $t5, ($a2) +/* 03BD90 7F007260 24420068 */ addiu $v0, $v0, 0x68 +/* 03BD94 7F007264 006D082A */ slt $at, $v1, $t5 +/* 03BD98 7F007268 5420FFF9 */ bnezl $at, .L7F007250 +/* 03BD9C 7F00726C 8C8B0000 */ lw $t3, ($a0) +.L7F007270: +/* 03BDA0 7F007270 8FBF0014 */ lw $ra, 0x14($sp) +/* 03BDA4 7F007274 3C018004 */ lui $at, %hi(D_80040940) +/* 03BDA8 7F007278 AC200940 */ sw $zero, %lo(D_80040940)($at) +/* 03BDAC 7F00727C 03E00008 */ jr $ra +/* 03BDB0 7F007280 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + diff --git a/src/game/initunk_007290.c b/src/game/initunk_007290.c new file mode 100644 index 0000000..243f587 --- /dev/null +++ b/src/game/initunk_007290.c @@ -0,0 +1,15 @@ +#include "ultra64.h" +#include "game/unk_092E50.h" + + + +void sub_GAME_7F007290(void) +{ + flt_CODE_bss_80079E80 = 0.0f; + flt_CODE_bss_80079E84 = 0.0f; + flt_CODE_bss_80079E88 = 0.0f; + return; +} + + + diff --git a/src/game/initunk_0072B0.c b/src/game/initunk_0072B0.c new file mode 100644 index 0000000..f6b0f7a --- /dev/null +++ b/src/game/initunk_0072B0.c @@ -0,0 +1,41 @@ +#include "ultra64.h" +#include "initunk_0072B0.h" +#include "game/unk_093880.h" + +#ifdef NONMATCHING +void sub_GAME_7F0072B0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0072B0 +/* 03BDE0 7F0072B0 3C018008 */ lui $at, %hi(off_CODE_bss_80079E30) +/* 03BDE4 7F0072B4 A0209E30 */ sb $zero, %lo(off_CODE_bss_80079E30)($at) +/* 03BDE8 7F0072B8 3C018008 */ lui $at, %hi(off_CODE_bss_80079E30+1) +/* 03BDEC 7F0072BC A0209E31 */ sb $zero, %lo(off_CODE_bss_80079E30+1)($at) +/* 03BDF0 7F0072C0 3C018008 */ lui $at, %hi(off_CODE_bss_80079E30+2) +/* 03BDF4 7F0072C4 3C038008 */ lui $v1, %hi(off_CODE_bss_80079E30+3) +/* 03BDF8 7F0072C8 3C028008 */ lui $v0, %hi(off_CODE_bss_80079E30+0x4b) +/* 03BDFC 7F0072CC 24429E7B */ addiu $v0, %lo(off_CODE_bss_80079E30+0x4b) # addiu $v0, $v0, -0x6185 +/* 03BE00 7F0072D0 24639E33 */ addiu $v1, %lo(off_CODE_bss_80079E30+3) # addiu $v1, $v1, -0x61cd +/* 03BE04 7F0072D4 A0209E32 */ sb $zero, %lo(off_CODE_bss_80079E30+2)($at) +.L7F0072D8: +/* 03BE08 7F0072D8 24630004 */ addiu $v1, $v1, 4 +/* 03BE0C 7F0072DC A060FFFD */ sb $zero, -3($v1) +/* 03BE10 7F0072E0 A060FFFE */ sb $zero, -2($v1) +/* 03BE14 7F0072E4 A060FFFF */ sb $zero, -1($v1) +/* 03BE18 7F0072E8 1462FFFB */ bne $v1, $v0, .L7F0072D8 +/* 03BE1C 7F0072EC A060FFFC */ sb $zero, -4($v1) +/* 03BE20 7F0072F0 03E00008 */ jr $ra +/* 03BE24 7F0072F4 00000000 */ nop +) +#endif + + +void disable_onscreen_cheat_text(void) +{ + pPlayer->something_with_cheat_text = 0; + pPlayer->can_display_cheat_text = 0; +} + diff --git a/src/game/initunk_0072B0.h b/src/game/initunk_0072B0.h new file mode 100644 index 0000000..129c984 --- /dev/null +++ b/src/game/initunk_0072B0.h @@ -0,0 +1,7 @@ +#ifndef _INITUNK_0072B0_ +#define _INITUNK_0072B0_ +#include "ultra64.h" + +void disable_onscreen_cheat_text(void); + +#endif diff --git a/src/game/initunk_0073B0.c b/src/game/initunk_0073B0.c new file mode 100644 index 0000000..b160506 --- /dev/null +++ b/src/game/initunk_0073B0.c @@ -0,0 +1,99 @@ +#include "ultra64.h" + + + + +#ifdef NONMATCHING +void cleanupGuardData(void) { + void *temp_v0; + s32 temp_s2; + s32 phi_s0; + s32 phi_s2; + s32 phi_v1; + + // Node 0 + if (num_guards > 0) + { + // Node 1 + phi_s0 = 0; + phi_s2 = 0; + phi_v1 = num_guards; +loop_2: + // Node 2 + temp_v0 = (ptr_guard_data + phi_s0); + if (temp_v0->unk1C != 0) + { + // Node 3 + disable_sounds_attached_to_player_then_something(temp_v0->unk18); + sub_GAME_7F03A538((ptr_guard_data + phi_s0)->unk18); + unset_stateflag_0x04_for_posdata((ptr_guard_data + phi_s0)->unk18); + set_last_obj_pos_data((ptr_guard_data + phi_s0)->unk18); + phi_v1 = num_guards; + } + // Node 4 + temp_s2 = (phi_s2 + 1); + phi_s0 = (phi_s0 + 0x1dc); + phi_s2 = temp_s2; + phi_v1 = phi_v1; + if (temp_s2 < phi_v1) + { + goto loop_2; + } + } + // Node 5 + return; +} +#else +GLOBAL_ASM( +.text +glabel cleanupGuardData +/* 03BEE0 7F0073B0 3C038003 */ lui $v1, %hi(num_guards) +/* 03BEE4 7F0073B4 8C63CC68 */ lw $v1, %lo(num_guards)($v1) +/* 03BEE8 7F0073B8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 03BEEC 7F0073BC AFB20020 */ sw $s2, 0x20($sp) +/* 03BEF0 7F0073C0 AFBF0024 */ sw $ra, 0x24($sp) +/* 03BEF4 7F0073C4 AFB1001C */ sw $s1, 0x1c($sp) +/* 03BEF8 7F0073C8 AFB00018 */ sw $s0, 0x18($sp) +/* 03BEFC 7F0073CC 1860001D */ blez $v1, .L7F007444 +/* 03BF00 7F0073D0 00009025 */ move $s2, $zero +/* 03BF04 7F0073D4 3C118003 */ lui $s1, %hi(ptr_guard_data) +/* 03BF08 7F0073D8 2631CC64 */ addiu $s1, %lo(ptr_guard_data) # addiu $s1, $s1, -0x339c +/* 03BF0C 7F0073DC 00008025 */ move $s0, $zero +.L7F0073E0: +/* 03BF10 7F0073E0 8E2E0000 */ lw $t6, ($s1) +/* 03BF14 7F0073E4 01D01021 */ addu $v0, $t6, $s0 +/* 03BF18 7F0073E8 8C4F001C */ lw $t7, 0x1c($v0) +/* 03BF1C 7F0073EC 51E00012 */ beql $t7, $zero, .L7F007438 +/* 03BF20 7F0073F0 26520001 */ addiu $s2, $s2, 1 +/* 03BF24 7F0073F4 0FC08105 */ jal disable_sounds_attached_to_player_then_something +/* 03BF28 7F0073F8 8C440018 */ lw $a0, 0x18($v0) +/* 03BF2C 7F0073FC 8E380000 */ lw $t8, ($s1) +/* 03BF30 7F007400 0310C821 */ addu $t9, $t8, $s0 +/* 03BF34 7F007404 0FC0E94E */ jal sub_GAME_7F03A538 +/* 03BF38 7F007408 8F240018 */ lw $a0, 0x18($t9) +/* 03BF3C 7F00740C 8E280000 */ lw $t0, ($s1) +/* 03BF40 7F007410 01104821 */ addu $t1, $t0, $s0 +/* 03BF44 7F007414 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 03BF48 7F007418 8D240018 */ lw $a0, 0x18($t1) +/* 03BF4C 7F00741C 8E2A0000 */ lw $t2, ($s1) +/* 03BF50 7F007420 01505821 */ addu $t3, $t2, $s0 +/* 03BF54 7F007424 0FC0E921 */ jal set_last_obj_pos_data +/* 03BF58 7F007428 8D640018 */ lw $a0, 0x18($t3) +/* 03BF5C 7F00742C 3C038003 */ lui $v1, %hi(num_guards) +/* 03BF60 7F007430 8C63CC68 */ lw $v1, %lo(num_guards)($v1) +/* 03BF64 7F007434 26520001 */ addiu $s2, $s2, 1 +.L7F007438: +/* 03BF68 7F007438 0243082A */ slt $at, $s2, $v1 +/* 03BF6C 7F00743C 1420FFE8 */ bnez $at, .L7F0073E0 +/* 03BF70 7F007440 261001DC */ addiu $s0, $s0, 0x1dc +.L7F007444: +/* 03BF74 7F007444 8FBF0024 */ lw $ra, 0x24($sp) +/* 03BF78 7F007448 8FB00018 */ lw $s0, 0x18($sp) +/* 03BF7C 7F00744C 8FB1001C */ lw $s1, 0x1c($sp) +/* 03BF80 7F007450 8FB20020 */ lw $s2, 0x20($sp) +/* 03BF84 7F007454 03E00008 */ jr $ra +/* 03BF88 7F007458 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + diff --git a/src/game/initunk_007460.c b/src/game/initunk_007460.c new file mode 100644 index 0000000..5343d0b --- /dev/null +++ b/src/game/initunk_007460.c @@ -0,0 +1,70 @@ +#include "ultra64.h" + + + + +#ifdef NONMATCHING +void cleanupObjectSounds(void) { + s32 temp_a0; + void *temp_s0; + void *phi_s0; + + // Node 0 + phi_s0 = &sfx_related; +loop_1: + // Node 1 + temp_a0 = *phi_s0; + if (temp_a0 != 0) + { + // Node 2 + if (sfxGetArg0Unk3F(temp_a0) != 0) + { + // Node 3 + sfxDeactivate(*phi_s0); + } + } + // Node 4 + temp_s0 = (phi_s0 + 0x18); + phi_s0 = temp_s0; + if (temp_s0 != &ptr_list_object_lookup_indices) + { + goto loop_1; + } + // Node 5 + return; +} +#else +GLOBAL_ASM( +.text +glabel cleanupObjectSounds +/* 03BF90 7F007460 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 03BF94 7F007464 AFB10018 */ sw $s1, 0x18($sp) +/* 03BF98 7F007468 AFB00014 */ sw $s0, 0x14($sp) +/* 03BF9C 7F00746C 3C108007 */ lui $s0, %hi(sfx_related) +/* 03BFA0 7F007470 3C118007 */ lui $s1, %hi(ptr_list_object_lookup_indices) +/* 03BFA4 7F007474 AFBF001C */ sw $ra, 0x1c($sp) +/* 03BFA8 7F007478 26319C30 */ addiu $s1, %lo(ptr_list_object_lookup_indices) # addiu $s1, $s1, -0x63d0 +/* 03BFAC 7F00747C 26109B70 */ addiu $s0, %lo(sfx_related) # addiu $s0, $s0, -0x6490 +/* 03BFB0 7F007480 8E040000 */ lw $a0, ($s0) +.L7F007484: +/* 03BFB4 7F007484 50800008 */ beql $a0, $zero, .L7F0074A8 +/* 03BFB8 7F007488 26100018 */ addiu $s0, $s0, 0x18 +/* 03BFBC 7F00748C 0C00237C */ jal sfxGetArg0Unk3F +/* 03BFC0 7F007490 00000000 */ nop +/* 03BFC4 7F007494 50400004 */ beql $v0, $zero, .L7F0074A8 +/* 03BFC8 7F007498 26100018 */ addiu $s0, $s0, 0x18 +/* 03BFCC 7F00749C 0C002408 */ jal sfxDeactivate +/* 03BFD0 7F0074A0 8E040000 */ lw $a0, ($s0) +/* 03BFD4 7F0074A4 26100018 */ addiu $s0, $s0, 0x18 +.L7F0074A8: +/* 03BFD8 7F0074A8 5611FFF6 */ bnel $s0, $s1, .L7F007484 +/* 03BFDC 7F0074AC 8E040000 */ lw $a0, ($s0) +/* 03BFE0 7F0074B0 8FBF001C */ lw $ra, 0x1c($sp) +/* 03BFE4 7F0074B4 8FB00014 */ lw $s0, 0x14($sp) +/* 03BFE8 7F0074B8 8FB10018 */ lw $s1, 0x18($sp) +/* 03BFEC 7F0074BC 03E00008 */ jr $ra +/* 03BFF0 7F0074C0 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + diff --git a/src/game/initweaponanigroups.c b/src/game/initweaponanigroups.c new file mode 100644 index 0000000..868cbd0 --- /dev/null +++ b/src/game/initweaponanigroups.c @@ -0,0 +1,10 @@ +#include "ultra64.h" + +//uncomment when actor is worked on +//#include "chr.h" +extern s32 get_ptr_allocated_block_for_vertices; + +void init_weapon_animation_groups_maybe(void) { + set_8003608C(&get_ptr_allocated_block_for_vertices); + somethingwith_weapon_animation_groups(); +} diff --git a/src/game/intro_logos.c b/src/game/intro_logos.c new file mode 100644 index 0000000..46edb8c --- /dev/null +++ b/src/game/intro_logos.c @@ -0,0 +1,2219 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "game/intro_logos.h" + +// bss +//CODE.bss:80069550 +s32 dword_CODE_bss_80069550; +//CODE.bss:80069554 +s32 dword_CODE_bss_80069554; +//CODE.bss:80069558 +s32 matrix_buffer_rarelogo_0; +//CODE.bss:8006955C +s32 matrix_buffer_gunbarrel_0; +//CODE.bss:80069560 +s32 matrix_buffer_rarelogo_1; +//CODE.bss:80069564 +s32 matrix_buffer_rarelogo_2; +//CODE.bss:80069568 +s32 matrix_buffer_gunbarrel_1; +//CODE.bss:8006956C +s32 matrix_buffer_intro_backdrop; +//CODE.bss:80069570 +s32 matrix_buffer_intro_bond; +//CODE.bss:80069574 +s32 x; +//CODE.bss:80069578 +s32 y; +//CODE.bss:8006957C +s32 dword_CODE_bss_8006957C; +//CODE.bss:80069580 +s32 dword_CODE_bss_80069580; +//CODE.bss:80069584 +s32 word_CODE_bss_80069584; +//CODE.bss:80069588 +s32 dword_CODE_bss_80069588; +//CODE.bss:8006958C +s32 dword_CODE_bss_8006958C; +//CODE.bss:80069590 +s32 virtualaddress; +//CODE.bss:80069594 +s32 dword_CODE_bss_80069594; + + +// data +u32 D_8002A7D0 = 0; +u8 D_8002A7D4 = 0x3; +u32 D_8002A7D8 = 0; +u32 D_8002A7DC = 0; +u32 D_8002A7E0 = 0; +u32 D_8002A7E4 = 0; + +u32 D_8002A7E8 = 0xFF; +u32 D_8002A7EC = 0xFF; +u32 D_8002A7F0 = 0xFF; +u32 D_8002A7F4 = 0; +u32 D_8002A7F8 = 0; +u32 D_8002A7FC = 0; + +u32 D_8002A800 = 1; +u32 D_8002A804 = 3; +u32 D_8002A808 = 0; +u32 D_8002A80C = 0; +u32 D_8002A810 = 0; +u32 D_8002A814 = 0; +u32 D_8002A818 = 0; +u32 D_8002A81C = 0; +u32 D_8002A820 = 0; +u32 D_8002A824 = 0; +u32 D_8002A828 = 0; +u32 D_8002A82C = 0; +u32 D_8002A830 = 0; +u32 D_8002A834 = 0; +u32 D_8002A838 = 0; +f32 D_8002A83C = 1758.2957f; +f32 D_8002A840 = 220.0f; +f32 D_8002A844 = 684.28143f; +f32 D_8002A848 = -0.97f; +u32 D_8002A84C = 0; +f32 D_8002A850 = 0.24f; +u32 D_8002A854 = 0; +f32 D_8002A858 = 1.0f; +u32 D_8002A85C = 0x80000000; +struct rgba_val D_8002A860 = {0xDC, 0xDC, 0xDC, 0}; +struct rgba_val D_8002A864 = {0xDC, 0xDC, 0xDC, 0}; +struct rgba_val D_8002A868 = {0xFF, 0xFF, 0xFF, 0}; +struct rgba_val D_8002A86C = {0xFF, 0xFF, 0xFF, 0}; +struct rgba_val D_8002A870 = {0x00, 0x7F, 0x00, 0}; +u32 D_8002A874 = 0; + +u32 D_8002A878 = 0; +u32 D_8002A87C = 0; +f32 D_8002A880 = 4883.0f; +u32 D_8002A884 = 0; +u32 D_8002A888 = 0; +f32 D_8002A88C = -1.0f; +u32 D_8002A890 = 0; +f32 D_8002A894 = 1.0f; +u32 D_8002A898 = 0; + + +f32 D_8002A89C = 0.0f; +u32 intro_eye_counter = 0; +u32 intro_state_blood_animation = 0; +u32 D_8002A8A8 = 0; +u32 D_8002A8AC = 0; +u32 D_8002A8B0 = 0; +/* + .word 0 + .word 0 + .word 0 +*/ + + + +#ifdef NONMATCHING +void something_with_gunbarrel_and_rareware_logo_matrix_manip(void) { + +} +#else +GLOBAL_ASM( +.text +glabel something_with_gunbarrel_and_rareware_logo_matrix_manip +/* 03C570 7F007A40 3C0E8003 */ lui $t6, %hi(D_8002A7D0) +/* 03C574 7F007A44 8DCEA7D0 */ lw $t6, %lo(D_8002A7D0)($t6) +/* 03C578 7F007A48 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 03C57C 7F007A4C 3C188007 */ lui $t8, %hi(matrix_buffer_rarelogo_2) +/* 03C580 7F007A50 8F189564 */ lw $t8, %lo(matrix_buffer_rarelogo_2)($t8) +/* 03C584 7F007A54 AFB00018 */ sw $s0, 0x18($sp) +/* 03C588 7F007A58 00808025 */ move $s0, $a0 +/* 03C58C 7F007A5C AFBF001C */ sw $ra, 0x1c($sp) +/* 03C590 7F007A60 3C058007 */ lui $a1, %hi(x) +/* 03C594 7F007A64 3C068007 */ lui $a2, %hi(y) +/* 03C598 7F007A68 000E7980 */ sll $t7, $t6, 6 +/* 03C59C 7F007A6C 8CC69578 */ lw $a2, %lo(y)($a2) +/* 03C5A0 7F007A70 8CA59574 */ lw $a1, %lo(x)($a1) +/* 03C5A4 7F007A74 3C07C0A0 */ lui $a3, 0xc0a0 +/* 03C5A8 7F007A78 0C005B46 */ jal guTranslate +/* 03C5AC 7F007A7C 01F82021 */ addu $a0, $t7, $t8 +/* 03C5B0 7F007A80 3C198003 */ lui $t9, %hi(D_8002A7D0) +/* 03C5B4 7F007A84 8F39A7D0 */ lw $t9, %lo(D_8002A7D0)($t9) +/* 03C5B8 7F007A88 3C098007 */ lui $t1, %hi(matrix_buffer_gunbarrel_1) +/* 03C5BC 7F007A8C 8D299568 */ lw $t1, %lo(matrix_buffer_gunbarrel_1)($t1) +/* 03C5C0 7F007A90 3C058007 */ lui $a1, %hi(dword_CODE_bss_8006957C) +/* 03C5C4 7F007A94 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069580) +/* 03C5C8 7F007A98 00194180 */ sll $t0, $t9, 6 +/* 03C5CC 7F007A9C 8CC69580 */ lw $a2, %lo(dword_CODE_bss_80069580)($a2) +/* 03C5D0 7F007AA0 8CA5957C */ lw $a1, %lo(dword_CODE_bss_8006957C)($a1) +/* 03C5D4 7F007AA4 3C07C0A0 */ lui $a3, 0xc0a0 +/* 03C5D8 7F007AA8 0C005B46 */ jal guTranslate +/* 03C5DC 7F007AAC 01092021 */ addu $a0, $t0, $t1 +/* 03C5E0 7F007AB0 3C0B0100 */ lui $t3, 0x100 +/* 03C5E4 7F007AB4 256B0000 */ addiu $t3, $t3, 0 +/* 03C5E8 7F007AB8 02001025 */ move $v0, $s0 +/* 03C5EC 7F007ABC 3C0A0600 */ lui $t2, 0x600 +/* 03C5F0 7F007AC0 AC4A0000 */ sw $t2, ($v0) +/* 03C5F4 7F007AC4 AC4B0004 */ sw $t3, 4($v0) +/* 03C5F8 7F007AC8 0FC07034 */ jal insert_imageDL +/* 03C5FC 7F007ACC 26040008 */ addiu $a0, $s0, 8 +/* 03C600 7F007AD0 0FC07069 */ jal sub_GAME_7F01C1A4 +/* 03C604 7F007AD4 00402025 */ move $a0, $v0 +/* 03C608 7F007AD8 3C0CFCFF */ lui $t4, (0xFCFFFFFF >> 16) # lui $t4, 0xfcff +/* 03C60C 7F007ADC 3C0DFFFD */ lui $t5, (0xFFFDF6FB >> 16) # lui $t5, 0xfffd +/* 03C610 7F007AE0 3C0FE6E6 */ lui $t7, (0xE6E6E600 >> 16) # lui $t7, 0xe6e6 +/* 03C614 7F007AE4 35ADF6FB */ ori $t5, (0xFFFDF6FB & 0xFFFF) # ori $t5, $t5, 0xf6fb +/* 03C618 7F007AE8 358CFFFF */ ori $t4, (0xFCFFFFFF & 0xFFFF) # ori $t4, $t4, 0xffff +/* 03C61C 7F007AEC 35EFE600 */ ori $t7, (0xE6E6E600 & 0xFFFF) # ori $t7, $t7, 0xe600 +/* 03C620 7F007AF0 3C0EFA00 */ lui $t6, 0xfa00 +/* 03C624 7F007AF4 3C180600 */ lui $t8, 0x600 +/* 03C628 7F007AF8 AC4C0000 */ sw $t4, ($v0) +/* 03C62C 7F007AFC AC4D0004 */ sw $t5, 4($v0) +/* 03C630 7F007B00 AC4E0008 */ sw $t6, 8($v0) +/* 03C634 7F007B04 AC4F000C */ sw $t7, 0xc($v0) +/* 03C638 7F007B08 AC580010 */ sw $t8, 0x10($v0) +/* 03C63C 7F007B0C 3C198007 */ lui $t9, %hi(dword_CODE_bss_80069554) +/* 03C640 7F007B10 8F399554 */ lw $t9, %lo(dword_CODE_bss_80069554)($t9) +/* 03C644 7F007B14 3C018000 */ lui $at, 0x8000 +/* 03C648 7F007B18 24490018 */ addiu $t1, $v0, 0x18 +/* 03C64C 7F007B1C 03214021 */ addu $t0, $t9, $at +/* 03C650 7F007B20 AC480014 */ sw $t0, 0x14($v0) +/* 03C654 7F007B24 3C0A0102 */ lui $t2, (0x01020040 >> 16) # lui $t2, 0x102 +/* 03C658 7F007B28 354A0040 */ ori $t2, (0x01020040 & 0xFFFF) # ori $t2, $t2, 0x40 +/* 03C65C 7F007B2C AFA90024 */ sw $t1, 0x24($sp) +/* 03C660 7F007B30 AC4A0018 */ sw $t2, 0x18($v0) +/* 03C664 7F007B34 3C0B8003 */ lui $t3, %hi(D_8002A7D0) +/* 03C668 7F007B38 8D6BA7D0 */ lw $t3, %lo(D_8002A7D0)($t3) +/* 03C66C 7F007B3C 3C0D8007 */ lui $t5, %hi(matrix_buffer_gunbarrel_1) +/* 03C670 7F007B40 8DAD9568 */ lw $t5, %lo(matrix_buffer_gunbarrel_1)($t5) +/* 03C674 7F007B44 000B6180 */ sll $t4, $t3, 6 +/* 03C678 7F007B48 24500020 */ addiu $s0, $v0, 0x20 +/* 03C67C 7F007B4C 0C003A2C */ jal osVirtualToPhysical +/* 03C680 7F007B50 018D2021 */ addu $a0, $t4, $t5 +/* 03C684 7F007B54 8FAE0024 */ lw $t6, 0x24($sp) +/* 03C688 7F007B58 02001825 */ move $v1, $s0 +/* 03C68C 7F007B5C 3C0F0600 */ lui $t7, 0x600 +/* 03C690 7F007B60 ADC20004 */ sw $v0, 4($t6) +/* 03C694 7F007B64 AC6F0000 */ sw $t7, ($v1) +/* 03C698 7F007B68 3C188007 */ lui $t8, %hi(dword_CODE_bss_80069554) +/* 03C69C 7F007B6C 8F189554 */ lw $t8, %lo(dword_CODE_bss_80069554)($t8) +/* 03C6A0 7F007B70 3C018000 */ lui $at, 0x8000 +/* 03C6A4 7F007B74 26020008 */ addiu $v0, $s0, 8 +/* 03C6A8 7F007B78 0301C821 */ addu $t9, $t8, $at +/* 03C6AC 7F007B7C AC790004 */ sw $t9, 4($v1) +/* 03C6B0 7F007B80 8FBF001C */ lw $ra, 0x1c($sp) +/* 03C6B4 7F007B84 8FB00018 */ lw $s0, 0x18($sp) +/* 03C6B8 7F007B88 27BD0038 */ addiu $sp, $sp, 0x38 +/* 03C6BC 7F007B8C 03E00008 */ jr $ra +/* 03C6C0 7F007B90 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void insert_sight_backdrop_eye_intro(void) { + +} +#else +GLOBAL_ASM( +.text +glabel insert_sight_backdrop_eye_intro +/* 03C6C4 7F007B94 3C018007 */ lui $at, %hi(x) +/* 03C6C8 7F007B98 C4249574 */ lwc1 $f4, %lo(x)($at) +/* 03C6CC 7F007B9C 3C014440 */ li $at, 0x44400000 # 768.000000 +/* 03C6D0 7F007BA0 44813000 */ mtc1 $at, $f6 +/* 03C6D4 7F007BA4 3C018007 */ lui $at, %hi(y) +/* 03C6D8 7F007BA8 C42A9578 */ lwc1 $f10, %lo(y)($at) +/* 03C6DC 7F007BAC 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 03C6E0 7F007BB0 44818000 */ mtc1 $at, $f16 +/* 03C6E4 7F007BB4 46062200 */ add.s $f8, $f4, $f6 +/* 03C6E8 7F007BB8 3C0E8003 */ lui $t6, %hi(D_8002A7D0) +/* 03C6EC 7F007BBC 8DCEA7D0 */ lw $t6, %lo(D_8002A7D0)($t6) +/* 03C6F0 7F007BC0 46105481 */ sub.s $f18, $f10, $f16 +/* 03C6F4 7F007BC4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 03C6F8 7F007BC8 3C188007 */ lui $t8, %hi(matrix_buffer_rarelogo_2) +/* 03C6FC 7F007BCC 8F189564 */ lw $t8, %lo(matrix_buffer_rarelogo_2)($t8) +/* 03C700 7F007BD0 AFB00018 */ sw $s0, 0x18($sp) +/* 03C704 7F007BD4 00808025 */ move $s0, $a0 +/* 03C708 7F007BD8 AFBF001C */ sw $ra, 0x1c($sp) +/* 03C70C 7F007BDC 44069000 */ mfc1 $a2, $f18 +/* 03C710 7F007BE0 44054000 */ mfc1 $a1, $f8 +/* 03C714 7F007BE4 000E7980 */ sll $t7, $t6, 6 +/* 03C718 7F007BE8 3C07C0A0 */ lui $a3, 0xc0a0 +/* 03C71C 7F007BEC 0C005B46 */ jal guTranslate +/* 03C720 7F007BF0 01F82021 */ addu $a0, $t7, $t8 +/* 03C724 7F007BF4 3C198003 */ lui $t9, %hi(D_8002A7D0) +/* 03C728 7F007BF8 8F39A7D0 */ lw $t9, %lo(D_8002A7D0)($t9) +/* 03C72C 7F007BFC 3C098007 */ lui $t1, %hi(matrix_buffer_gunbarrel_1) +/* 03C730 7F007C00 8D299568 */ lw $t1, %lo(matrix_buffer_gunbarrel_1)($t1) +/* 03C734 7F007C04 3C05402C */ lui $a1, (0x402CCCCD >> 16) # lui $a1, 0x402c +/* 03C738 7F007C08 3C064024 */ lui $a2, (0x40247AE1 >> 16) # lui $a2, 0x4024 +/* 03C73C 7F007C0C 00194180 */ sll $t0, $t9, 6 +/* 03C740 7F007C10 34C67AE1 */ ori $a2, (0x40247AE1 & 0xFFFF) # ori $a2, $a2, 0x7ae1 +/* 03C744 7F007C14 34A5CCCD */ ori $a1, (0x402CCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 03C748 7F007C18 3C073F80 */ lui $a3, 0x3f80 +/* 03C74C 7F007C1C 0C005BB9 */ jal guScale +/* 03C750 7F007C20 01092021 */ addu $a0, $t0, $t1 +/* 03C754 7F007C24 02001025 */ move $v0, $s0 +/* 03C758 7F007C28 3C0A0100 */ lui $t2, 0x100 +/* 03C75C 7F007C2C 3C050600 */ lui $a1, 0x600 +/* 03C760 7F007C30 254A0000 */ addiu $t2, $t2, 0 +/* 03C764 7F007C34 26030008 */ addiu $v1, $s0, 8 +/* 03C768 7F007C38 3C0B0100 */ lui $t3, 0x100 +/* 03C76C 7F007C3C AC4A0004 */ sw $t2, 4($v0) +/* 03C770 7F007C40 AC450000 */ sw $a1, ($v0) +/* 03C774 7F007C44 256B0040 */ addiu $t3, $t3, 0x40 +/* 03C778 7F007C48 AC6B0004 */ sw $t3, 4($v1) +/* 03C77C 7F007C4C AC650000 */ sw $a1, ($v1) +/* 03C780 7F007C50 0FC07069 */ jal sub_GAME_7F01C1A4 +/* 03C784 7F007C54 24640008 */ addiu $a0, $v1, 8 +/* 03C788 7F007C58 3C0C0100 */ lui $t4, (0x01000040 >> 16) # lui $t4, 0x100 +/* 03C78C 7F007C5C 358C0040 */ ori $t4, (0x01000040 & 0xFFFF) # ori $t4, $t4, 0x40 +/* 03C790 7F007C60 AFA20024 */ sw $v0, 0x24($sp) +/* 03C794 7F007C64 AC4C0000 */ sw $t4, ($v0) +/* 03C798 7F007C68 3C0D8003 */ lui $t5, %hi(D_8002A7D0) +/* 03C79C 7F007C6C 8DADA7D0 */ lw $t5, %lo(D_8002A7D0)($t5) +/* 03C7A0 7F007C70 3C0F8007 */ lui $t7, %hi(matrix_buffer_gunbarrel_1) +/* 03C7A4 7F007C74 8DEF9568 */ lw $t7, %lo(matrix_buffer_gunbarrel_1)($t7) +/* 03C7A8 7F007C78 000D7180 */ sll $t6, $t5, 6 +/* 03C7AC 7F007C7C 24500008 */ addiu $s0, $v0, 8 +/* 03C7B0 7F007C80 0C003A2C */ jal osVirtualToPhysical +/* 03C7B4 7F007C84 01CF2021 */ addu $a0, $t6, $t7 +/* 03C7B8 7F007C88 8FB80024 */ lw $t8, 0x24($sp) +/* 03C7BC 7F007C8C 02001825 */ move $v1, $s0 +/* 03C7C0 7F007C90 3C190600 */ lui $t9, 0x600 +/* 03C7C4 7F007C94 AF020004 */ sw $v0, 4($t8) +/* 03C7C8 7F007C98 AC790000 */ sw $t9, ($v1) +/* 03C7CC 7F007C9C 3C088007 */ lui $t0, %hi(dword_CODE_bss_80069554) +/* 03C7D0 7F007CA0 8D089554 */ lw $t0, %lo(dword_CODE_bss_80069554)($t0) +/* 03C7D4 7F007CA4 3C018000 */ lui $at, 0x8000 +/* 03C7D8 7F007CA8 26020008 */ addiu $v0, $s0, 8 +/* 03C7DC 7F007CAC 01014821 */ addu $t1, $t0, $at +/* 03C7E0 7F007CB0 AC690004 */ sw $t1, 4($v1) +/* 03C7E4 7F007CB4 8FBF001C */ lw $ra, 0x1c($sp) +/* 03C7E8 7F007CB8 8FB00018 */ lw $s0, 0x18($sp) +/* 03C7EC 7F007CBC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 03C7F0 7F007CC0 03E00008 */ jr $ra +/* 03C7F4 7F007CC4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F007CC8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F007CC8 +/* 03C7F8 7F007CC8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 03C7FC 7F007CCC 00801025 */ move $v0, $a0 +/* 03C800 7F007CD0 AFBF001C */ sw $ra, 0x1c($sp) +/* 03C804 7F007CD4 AFA50024 */ sw $a1, 0x24($sp) +/* 03C808 7F007CD8 AFA60028 */ sw $a2, 0x28($sp) +/* 03C80C 7F007CDC AFA7002C */ sw $a3, 0x2c($sp) +/* 03C810 7F007CE0 24840008 */ addiu $a0, $a0, 8 +/* 03C814 7F007CE4 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 03C818 7F007CE8 3C0F0F0A */ lui $t7, (0x0F0A4000 >> 16) # lui $t7, 0xf0a +/* 03C81C 7F007CEC 35EF4000 */ ori $t7, (0x0F0A4000 & 0xFFFF) # ori $t7, $t7, 0x4000 +/* 03C820 7F007CF0 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 03C824 7F007CF4 00801825 */ move $v1, $a0 +/* 03C828 7F007CF8 AC4E0000 */ sw $t6, ($v0) +/* 03C82C 7F007CFC AC4F0004 */ sw $t7, 4($v0) +/* 03C830 7F007D00 24840008 */ addiu $a0, $a0, 8 +/* 03C834 7F007D04 3C18BA00 */ lui $t8, (0xBA001402 >> 16) # lui $t8, 0xba00 +/* 03C838 7F007D08 37181402 */ ori $t8, (0xBA001402 & 0xFFFF) # ori $t8, $t8, 0x1402 +/* 03C83C 7F007D0C 00804025 */ move $t0, $a0 +/* 03C840 7F007D10 AC780000 */ sw $t8, ($v1) +/* 03C844 7F007D14 AC600004 */ sw $zero, 4($v1) +/* 03C848 7F007D18 24840008 */ addiu $a0, $a0, 8 +/* 03C84C 7F007D1C 3C19BA00 */ lui $t9, (0xBA001301 >> 16) # lui $t9, 0xba00 +/* 03C850 7F007D20 37391301 */ ori $t9, (0xBA001301 & 0xFFFF) # ori $t9, $t9, 0x1301 +/* 03C854 7F007D24 00804825 */ move $t1, $a0 +/* 03C858 7F007D28 AD190000 */ sw $t9, ($t0) +/* 03C85C 7F007D2C AD000004 */ sw $zero, 4($t0) +/* 03C860 7F007D30 3C0BBA00 */ lui $t3, (0xBA000C02 >> 16) # lui $t3, 0xba00 +/* 03C864 7F007D34 356B0C02 */ ori $t3, (0xBA000C02 & 0xFFFF) # ori $t3, $t3, 0xc02 +/* 03C868 7F007D38 24840008 */ addiu $a0, $a0, 8 +/* 03C86C 7F007D3C AD2B0000 */ sw $t3, ($t1) +/* 03C870 7F007D40 AD200004 */ sw $zero, 4($t1) +/* 03C874 7F007D44 00805025 */ move $t2, $a0 +/* 03C878 7F007D48 3C0CE700 */ lui $t4, 0xe700 +/* 03C87C 7F007D4C AD4C0000 */ sw $t4, ($t2) +/* 03C880 7F007D50 AD400004 */ sw $zero, 4($t2) +/* 03C884 7F007D54 3C058007 */ lui $a1, %hi(dword_CODE_bss_8006958C) +/* 03C888 7F007D58 8CA5958C */ lw $a1, %lo(dword_CODE_bss_8006958C)($a1) +/* 03C88C 7F007D5C 8FAD002C */ lw $t5, 0x2c($sp) +/* 03C890 7F007D60 3C018000 */ lui $at, 0x8000 +/* 03C894 7F007D64 24840008 */ addiu $a0, $a0, 8 +/* 03C898 7F007D68 8FA70028 */ lw $a3, 0x28($sp) +/* 03C89C 7F007D6C 8FA60024 */ lw $a2, 0x24($sp) +/* 03C8A0 7F007D70 00A12821 */ addu $a1, $a1, $at +/* 03C8A4 7F007D74 0FC06C90 */ jal sub_GAME_7F01B240 +/* 03C8A8 7F007D78 AFAD0010 */ sw $t5, 0x10($sp) +/* 03C8AC 7F007D7C 8FBF001C */ lw $ra, 0x1c($sp) +/* 03C8B0 7F007D80 27BD0020 */ addiu $sp, $sp, 0x20 +/* 03C8B4 7F007D84 03E00008 */ jr $ra +/* 03C8B8 7F007D88 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void insert_sniper_sight_eye_intro(void) { + +} +#else +GLOBAL_ASM( +.text +glabel insert_sniper_sight_eye_intro +/* 03C8BC 7F007D8C 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 03C8C0 7F007D90 3C0F8003 */ lui $t7, %hi(D_8002A7DC) +/* 03C8C4 7F007D94 AFBF001C */ sw $ra, 0x1c($sp) +/* 03C8C8 7F007D98 AFB00018 */ sw $s0, 0x18($sp) +/* 03C8CC 7F007D9C 25EFA7DC */ addiu $t7, %lo(D_8002A7DC) # addiu $t7, $t7, -0x5824 +/* 03C8D0 7F007DA0 8DE10000 */ lw $at, ($t7) +/* 03C8D4 7F007DA4 27AE003C */ addiu $t6, $sp, 0x3c +/* 03C8D8 7F007DA8 8DE80004 */ lw $t0, 4($t7) +/* 03C8DC 7F007DAC ADC10000 */ sw $at, ($t6) +/* 03C8E0 7F007DB0 8DE10008 */ lw $at, 8($t7) +/* 03C8E4 7F007DB4 3C0A8003 */ lui $t2, %hi(D_8002A7E8) +/* 03C8E8 7F007DB8 254AA7E8 */ addiu $t2, %lo(D_8002A7E8) # addiu $t2, $t2, -0x5818 +/* 03C8EC 7F007DBC ADC80004 */ sw $t0, 4($t6) +/* 03C8F0 7F007DC0 ADC10008 */ sw $at, 8($t6) +/* 03C8F4 7F007DC4 8D410000 */ lw $at, ($t2) +/* 03C8F8 7F007DC8 27A90030 */ addiu $t1, $sp, 0x30 +/* 03C8FC 7F007DCC 8D4D0004 */ lw $t5, 4($t2) +/* 03C900 7F007DD0 AD210000 */ sw $at, ($t1) +/* 03C904 7F007DD4 8D410008 */ lw $at, 8($t2) +/* 03C908 7F007DD8 3C180100 */ lui $t8, 0x100 +/* 03C90C 7F007DDC AD2D0004 */ sw $t5, 4($t1) +/* 03C910 7F007DE0 AD210008 */ sw $at, 8($t1) +/* 03C914 7F007DE4 27180000 */ addiu $t8, $t8, 0 +/* 03C918 7F007DE8 3C190600 */ lui $t9, 0x600 +/* 03C91C 7F007DEC AC990000 */ sw $t9, ($a0) +/* 03C920 7F007DF0 AC980004 */ sw $t8, 4($a0) +/* 03C924 7F007DF4 24900008 */ addiu $s0, $a0, 8 +/* 03C928 7F007DF8 0FC07034 */ jal insert_imageDL +/* 03C92C 7F007DFC 02002025 */ move $a0, $s0 +/* 03C930 7F007E00 3C0EFC11 */ lui $t6, (0xFC11FE23 >> 16) # lui $t6, 0xfc11 +/* 03C934 7F007E04 35CEFE23 */ ori $t6, (0xFC11FE23 & 0xFFFF) # ori $t6, $t6, 0xfe23 +/* 03C938 7F007E08 240FF7FB */ li $t7, -2053 +/* 03C93C 7F007E0C AC4F0004 */ sw $t7, 4($v0) +/* 03C940 7F007E10 AC4E0000 */ sw $t6, ($v0) +/* 03C944 7F007E14 0C001107 */ jal get_video2_settings_txtClipW +/* 03C948 7F007E18 24500008 */ addiu $s0, $v0, 8 +/* 03C94C 7F007E1C 44822000 */ mtc1 $v0, $f4 +/* 03C950 7F007E20 3C018007 */ lui $at, %hi(x) +/* 03C954 7F007E24 C4289574 */ lwc1 $f8, %lo(x)($at) +/* 03C958 7F007E28 468021A0 */ cvt.s.w $f6, $f4 +/* 03C95C 7F007E2C 3C0144A0 */ li $at, 0x44A00000 # 1280.000000 +/* 03C960 7F007E30 44818000 */ mtc1 $at, $f16 +/* 03C964 7F007E34 46083282 */ mul.s $f10, $f6, $f8 +/* 03C968 7F007E38 0FC170D8 */ jal truncf +/* 03C96C 7F007E3C 46105303 */ div.s $f12, $f10, $f16 +/* 03C970 7F007E40 4600048D */ trunc.w.s $f18, $f0 +/* 03C974 7F007E44 02002025 */ move $a0, $s0 +/* 03C978 7F007E48 27A6003C */ addiu $a2, $sp, 0x3c +/* 03C97C 7F007E4C 27A70030 */ addiu $a3, $sp, 0x30 +/* 03C980 7F007E50 44059000 */ mfc1 $a1, $f18 +/* 03C984 7F007E54 0FC01F32 */ jal sub_GAME_7F007CC8 +/* 03C988 7F007E58 00000000 */ nop +/* 03C98C 7F007E5C 8FBF001C */ lw $ra, 0x1c($sp) +/* 03C990 7F007E60 8FB00018 */ lw $s0, 0x18($sp) +/* 03C994 7F007E64 27BD0048 */ addiu $sp, $sp, 0x48 +/* 03C998 7F007E68 03E00008 */ jr $ra +/* 03C99C 7F007E6C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F007E70(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F007E70 +/* 03C9A0 7F007E70 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 03C9A4 7F007E74 AFBF0014 */ sw $ra, 0x14($sp) +/* 03C9A8 7F007E78 0FC07069 */ jal sub_GAME_7F01C1A4 +/* 03C9AC 7F007E7C AFA50034 */ sw $a1, 0x34($sp) +/* 03C9B0 7F007E80 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 03C9B4 7F007E84 3C0F0050 */ lui $t7, (0x00504340 >> 16) # lui $t7, 0x50 +/* 03C9B8 7F007E88 3C18FCFF */ lui $t8, (0xFCFFFFFF >> 16) # lui $t8, 0xfcff +/* 03C9BC 7F007E8C 3C19FFFD */ lui $t9, (0xFFFDF6FB >> 16) # lui $t9, 0xfffd +/* 03C9C0 7F007E90 35EF4340 */ ori $t7, (0x00504340 & 0xFFFF) # ori $t7, $t7, 0x4340 +/* 03C9C4 7F007E94 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 03C9C8 7F007E98 3739F6FB */ ori $t9, (0xFFFDF6FB & 0xFFFF) # ori $t9, $t9, 0xf6fb +/* 03C9CC 7F007E9C 3718FFFF */ ori $t8, (0xFCFFFFFF & 0xFFFF) # ori $t8, $t8, 0xffff +/* 03C9D0 7F007EA0 3C08FA00 */ lui $t0, 0xfa00 +/* 03C9D4 7F007EA4 AC4E0000 */ sw $t6, ($v0) +/* 03C9D8 7F007EA8 AC4F0004 */ sw $t7, 4($v0) +/* 03C9DC 7F007EAC AC580008 */ sw $t8, 8($v0) +/* 03C9E0 7F007EB0 AC59000C */ sw $t9, 0xc($v0) +/* 03C9E4 7F007EB4 AC480010 */ sw $t0, 0x10($v0) +/* 03C9E8 7F007EB8 8FA90034 */ lw $t1, 0x34($sp) +/* 03C9EC 7F007EBC 3C0BBA00 */ lui $t3, (0xBA000602 >> 16) # lui $t3, 0xba00 +/* 03C9F0 7F007EC0 356B0602 */ ori $t3, (0xBA000602 & 0xFFFF) # ori $t3, $t3, 0x602 +/* 03C9F4 7F007EC4 312A00FF */ andi $t2, $t1, 0xff +/* 03C9F8 7F007EC8 AC4A0014 */ sw $t2, 0x14($v0) +/* 03C9FC 7F007ECC AC4B0018 */ sw $t3, 0x18($v0) +/* 03CA00 7F007ED0 AC40001C */ sw $zero, 0x1c($v0) +/* 03CA04 7F007ED4 244C0020 */ addiu $t4, $v0, 0x20 +/* 03CA08 7F007ED8 244D0028 */ addiu $t5, $v0, 0x28 +/* 03CA0C 7F007EDC AFAD0030 */ sw $t5, 0x30($sp) +/* 03CA10 7F007EE0 0C001107 */ jal get_video2_settings_txtClipW +/* 03CA14 7F007EE4 AFAC001C */ sw $t4, 0x1c($sp) +/* 03CA18 7F007EE8 0C00110B */ jal get_video2_settings_txtClipH +/* 03CA1C 7F007EEC A7A2001A */ sh $v0, 0x1a($sp) +/* 03CA20 7F007EF0 87B9001A */ lh $t9, 0x1a($sp) +/* 03CA24 7F007EF4 8FA3001C */ lw $v1, 0x1c($sp) +/* 03CA28 7F007EF8 304E03FF */ andi $t6, $v0, 0x3ff +/* 03CA2C 7F007EFC 000E7880 */ sll $t7, $t6, 2 +/* 03CA30 7F007F00 3C01F600 */ lui $at, 0xf600 +/* 03CA34 7F007F04 332803FF */ andi $t0, $t9, 0x3ff +/* 03CA38 7F007F08 00084B80 */ sll $t1, $t0, 0xe +/* 03CA3C 7F007F0C 01E1C025 */ or $t8, $t7, $at +/* 03CA40 7F007F10 03095025 */ or $t2, $t8, $t1 +/* 03CA44 7F007F14 AC6A0000 */ sw $t2, ($v1) +/* 03CA48 7F007F18 AC600004 */ sw $zero, 4($v1) +/* 03CA4C 7F007F1C 8FBF0014 */ lw $ra, 0x14($sp) +/* 03CA50 7F007F20 8FA20030 */ lw $v0, 0x30($sp) +/* 03CA54 7F007F24 27BD0030 */ addiu $sp, $sp, 0x30 +/* 03CA58 7F007F28 03E00008 */ jr $ra +/* 03CA5C 7F007F2C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F007F30(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8004F2D0 +.word 0x3f68f5c3 +glabel D_8004F2D4 +.word 0x461c4000 +glabel D_8004F2D8 +.word 0x459c4000 +glabel D_8004F2DC +.word 0x3f68f5c3 +.text +glabel sub_GAME_7F007F30 +/* 03CA60 7F007F30 27BDFEE0 */ addiu $sp, $sp, -0x120 +/* 03CA64 7F007F34 3C0F8003 */ lui $t7, %hi(D_8002A7FC) +/* 03CA68 7F007F38 25EFA7FC */ addiu $t7, %lo(D_8002A7FC) # addiu $t7, $t7, -0x5804 +/* 03CA6C 7F007F3C AFBF0034 */ sw $ra, 0x34($sp) +/* 03CA70 7F007F40 AFB50030 */ sw $s5, 0x30($sp) +/* 03CA74 7F007F44 AFB4002C */ sw $s4, 0x2c($sp) +/* 03CA78 7F007F48 AFB30028 */ sw $s3, 0x28($sp) +/* 03CA7C 7F007F4C AFB20024 */ sw $s2, 0x24($sp) +/* 03CA80 7F007F50 AFB10020 */ sw $s1, 0x20($sp) +/* 03CA84 7F007F54 AFB0001C */ sw $s0, 0x1c($sp) +/* 03CA88 7F007F58 AFA40120 */ sw $a0, 0x120($sp) +/* 03CA8C 7F007F5C AFA50124 */ sw $a1, 0x124($sp) +/* 03CA90 7F007F60 AFA60128 */ sw $a2, 0x128($sp) +/* 03CA94 7F007F64 25E8003C */ addiu $t0, $t7, 0x3c +/* 03CA98 7F007F68 27AE00DC */ addiu $t6, $sp, 0xdc +.L7F007F6C: +/* 03CA9C 7F007F6C 8DE10000 */ lw $at, ($t7) +/* 03CAA0 7F007F70 25EF000C */ addiu $t7, $t7, 0xc +/* 03CAA4 7F007F74 25CE000C */ addiu $t6, $t6, 0xc +/* 03CAA8 7F007F78 ADC1FFF4 */ sw $at, -0xc($t6) +/* 03CAAC 7F007F7C 8DE1FFF8 */ lw $at, -8($t7) +/* 03CAB0 7F007F80 ADC1FFF8 */ sw $at, -8($t6) +/* 03CAB4 7F007F84 8DE1FFFC */ lw $at, -4($t7) +/* 03CAB8 7F007F88 15E8FFF8 */ bne $t7, $t0, .L7F007F6C +/* 03CABC 7F007F8C ADC1FFFC */ sw $at, -4($t6) +/* 03CAC0 7F007F90 8DE10000 */ lw $at, ($t7) +/* 03CAC4 7F007F94 0000A825 */ move $s5, $zero +/* 03CAC8 7F007F98 00009025 */ move $s2, $zero +/* 03CACC 7F007F9C ADC10000 */ sw $at, ($t6) +/* 03CAD0 7F007FA0 8FA90124 */ lw $t1, 0x124($sp) +/* 03CAD4 7F007FA4 19200034 */ blez $t1, .L7F008078 +/* 03CAD8 7F007FA8 3C140000 */ lui $s4, 0 +/* 03CADC 7F007FAC 3C138003 */ lui $s3, %hi(D_8002A7F4) +/* 03CAE0 7F007FB0 3C108007 */ lui $s0, %hi(dword_CODE_bss_80069594) +/* 03CAE4 7F007FB4 26109594 */ addiu $s0, %lo(dword_CODE_bss_80069594) # addiu $s0, $s0, -0x6a6c +/* 03CAE8 7F007FB8 2673A7F4 */ addiu $s3, %lo(D_8002A7F4) # addiu $s3, $s3, -0x580c +/* 03CAEC 7F007FBC 26944298 */ addiu $s4, $s4, 0x4298 +/* 03CAF0 7F007FC0 24110089 */ li $s1, 137 +/* 03CAF4 7F007FC4 8E020000 */ lw $v0, ($s0) +.L7F007FC8: +/* 03CAF8 7F007FC8 04400019 */ bltz $v0, .L7F008030 +/* 03CAFC 7F007FCC 244A0001 */ addiu $t2, $v0, 1 +/* 03CB00 7F007FD0 AE0A0000 */ sw $t2, ($s0) +/* 03CB04 7F007FD4 162A000F */ bne $s1, $t2, .L7F008014 +/* 03CB08 7F007FD8 01401025 */ move $v0, $t2 +/* 03CB0C 7F007FDC 3C018005 */ lui $at, %hi(D_8004F2D0) +/* 03CB10 7F007FE0 C424F2D0 */ lwc1 $f4, %lo(D_8004F2D0)($at) +/* 03CB14 7F007FE4 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 03CB18 7F007FE8 3C0B8007 */ lui $t3, %hi(ptr_animation_table) +/* 03CB1C 7F007FEC 8D6B9538 */ lw $t3, %lo(ptr_animation_table)($t3) +/* 03CB20 7F007FF0 44813000 */ mtc1 $at, $f6 +/* 03CB24 7F007FF4 8E640000 */ lw $a0, ($s3) +/* 03CB28 7F007FF8 00003025 */ move $a2, $zero +/* 03CB2C 7F007FFC 3C074000 */ lui $a3, 0x4000 +/* 03CB30 7F008000 E7A40010 */ swc1 $f4, 0x10($sp) +/* 03CB34 7F008004 028B2821 */ addu $a1, $s4, $t3 +/* 03CB38 7F008008 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 03CB3C 7F00800C E7A60014 */ swc1 $f6, 0x14($sp) +/* 03CB40 7F008010 8E020000 */ lw $v0, ($s0) +.L7F008014: +/* 03CB44 7F008014 240100D4 */ li $at, 212 +/* 03CB48 7F008018 14410005 */ bne $v0, $at, .L7F008030 +/* 03CB4C 7F00801C 3C053FCC */ lui $a1, (0x3FCCCCCD >> 16) # lui $a1, 0x3fcc +/* 03CB50 7F008020 8E640000 */ lw $a0, ($s3) +/* 03CB54 7F008024 34A5CCCD */ ori $a1, (0x3FCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 03CB58 7F008028 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 03CB5C 7F00802C 3C064100 */ lui $a2, 0x4100 +.L7F008030: +/* 03CB60 7F008030 8E640000 */ lw $a0, ($s3) +/* 03CB64 7F008034 24050001 */ li $a1, 1 +/* 03CB68 7F008038 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 03CB6C 7F00803C 24060001 */ li $a2, 1 +/* 03CB70 7F008040 8E0C0000 */ lw $t4, ($s0) +/* 03CB74 7F008044 240100E6 */ li $at, 230 +/* 03CB78 7F008048 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 03CB7C 7F00804C 15810005 */ bne $t4, $at, .L7F008064 +/* 03CB80 7F008050 2405006F */ li $a1, 111 +/* 03CB84 7F008054 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 03CB88 7F008058 00003025 */ move $a2, $zero +/* 03CB8C 7F00805C 0C002382 */ jal play_sfx_a1 +/* 03CB90 7F008060 24150001 */ li $s5, 1 +.L7F008064: +/* 03CB94 7F008064 8FAD0124 */ lw $t5, 0x124($sp) +/* 03CB98 7F008068 26520001 */ addiu $s2, $s2, 1 +/* 03CB9C 7F00806C 564DFFD6 */ bnel $s2, $t5, .L7F007FC8 +/* 03CBA0 7F008070 8E020000 */ lw $v0, ($s0) +/* 03CBA4 7F008074 00009025 */ move $s2, $zero +.L7F008078: +/* 03CBA8 7F008078 3C138003 */ lui $s3, %hi(D_8002A7F4) +/* 03CBAC 7F00807C 2673A7F4 */ addiu $s3, %lo(D_8002A7F4) # addiu $s3, $s3, -0x580c +/* 03CBB0 7F008080 0FC1B100 */ jal set_80036084 +/* 03CBB4 7F008084 24040001 */ li $a0, 1 +/* 03CBB8 7F008088 0FC1CFF2 */ jal sub_GAME_7F073FC8 +/* 03CBBC 7F00808C 24040050 */ li $a0, 80 +/* 03CBC0 7F008090 0FC1B5AC */ jal subcalcpos +/* 03CBC4 7F008094 8E640000 */ lw $a0, ($s3) +/* 03CBC8 7F008098 3C148003 */ lui $s4, %hi(D_8002A7F8) +/* 03CBCC 7F00809C 2694A7F8 */ addiu $s4, %lo(D_8002A7F8) # addiu $s4, $s4, -0x5808 +/* 03CBD0 7F0080A0 8E860000 */ lw $a2, ($s4) +/* 03CBD4 7F0080A4 8CD90008 */ lw $t9, 8($a2) +/* 03CBD8 7F0080A8 8F230008 */ lw $v1, 8($t9) +/* 03CBDC 7F0080AC 8C650000 */ lw $a1, ($v1) +/* 03CBE0 7F0080B0 50A00008 */ beql $a1, $zero, .L7F0080D4 +/* 03CBE4 7F0080B4 8C650008 */ lw $a1, 8($v1) +/* 03CBE8 7F0080B8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 03CBEC 7F0080BC 00C02025 */ move $a0, $a2 +/* 03CBF0 7F0080C0 A4550000 */ sh $s5, ($v0) +/* 03CBF4 7F0080C4 8E860000 */ lw $a2, ($s4) +/* 03CBF8 7F0080C8 8CD80008 */ lw $t8, 8($a2) +/* 03CBFC 7F0080CC 8F030008 */ lw $v1, 8($t8) +/* 03CC00 7F0080D0 8C650008 */ lw $a1, 8($v1) +.L7F0080D4: +/* 03CC04 7F0080D4 50A00005 */ beql $a1, $zero, .L7F0080EC +/* 03CC08 7F0080D8 8FA80128 */ lw $t0, 0x128($sp) +/* 03CC0C 7F0080DC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 03CC10 7F0080E0 00C02025 */ move $a0, $a2 +/* 03CC14 7F0080E4 AC550000 */ sw $s5, ($v0) +/* 03CC18 7F0080E8 8FA80128 */ lw $t0, 0x128($sp) +.L7F0080EC: +/* 03CC1C 7F0080EC 8E6F0000 */ lw $t7, ($s3) +/* 03CC20 7F0080F0 AFA800DC */ sw $t0, 0xdc($sp) +/* 03CC24 7F0080F4 8DEE0008 */ lw $t6, 8($t7) +/* 03CC28 7F0080F8 85C4000E */ lh $a0, 0xe($t6) +/* 03CC2C 7F0080FC 00044980 */ sll $t1, $a0, 6 +/* 03CC30 7F008100 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 03CC34 7F008104 01202025 */ move $a0, $t1 +/* 03CC38 7F008108 AFA200EC */ sw $v0, 0xec($sp) +/* 03CC3C 7F00810C 27A400DC */ addiu $a0, $sp, 0xdc +/* 03CC40 7F008110 0FC1BCBE */ jal subcalcmatrices +/* 03CC44 7F008114 8E650000 */ lw $a1, ($s3) +/* 03CC48 7F008118 8E8A0000 */ lw $t2, ($s4) +/* 03CC4C 7F00811C 8E640000 */ lw $a0, ($s3) +/* 03CC50 7F008120 00003025 */ move $a2, $zero +/* 03CC54 7F008124 0FC1B198 */ jal sub_GAME_7F06C660 +/* 03CC58 7F008128 8D45001C */ lw $a1, 0x1c($t2) +/* 03CC5C 7F00812C 8E8B0000 */ lw $t3, ($s4) +/* 03CC60 7F008130 AFA200DC */ sw $v0, 0xdc($sp) +/* 03CC64 7F008134 8D6C0008 */ lw $t4, 8($t3) +/* 03CC68 7F008138 8584000E */ lh $a0, 0xe($t4) +/* 03CC6C 7F00813C 00046980 */ sll $t5, $a0, 6 +/* 03CC70 7F008140 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 03CC74 7F008144 01A02025 */ move $a0, $t5 +/* 03CC78 7F008148 AFA200EC */ sw $v0, 0xec($sp) +/* 03CC7C 7F00814C 27A400DC */ addiu $a0, $sp, 0xdc +/* 03CC80 7F008150 0FC1BC92 */ jal instcalcmatrices +/* 03CC84 7F008154 8E850000 */ lw $a1, ($s4) +/* 03CC88 7F008158 00002025 */ move $a0, $zero +/* 03CC8C 7F00815C 0FC1AC48 */ jal sub_GAME_7F06B120 +/* 03CC90 7F008160 8E650000 */ lw $a1, ($s3) +/* 03CC94 7F008164 00402025 */ move $a0, $v0 +/* 03CC98 7F008168 0FC1AC48 */ jal sub_GAME_7F06B120 +/* 03CC9C 7F00816C 8E850000 */ lw $a1, ($s4) +/* 03CCA0 7F008170 00408025 */ move $s0, $v0 +/* 03CCA4 7F008174 0FC1ACA7 */ jal sub_GAME_7F06B29C +/* 03CCA8 7F008178 00402025 */ move $a0, $v0 +/* 03CCAC 7F00817C 0FC1AECA */ jal sub_GAME_7F06BB28 +/* 03CCB0 7F008180 02002025 */ move $a0, $s0 +/* 03CCB4 7F008184 8FB80120 */ lw $t8, 0x120($sp) +/* 03CCB8 7F008188 24190007 */ li $t9, 7 +/* 03CCBC 7F00818C 24080001 */ li $t0, 1 +/* 03CCC0 7F008190 00408025 */ move $s0, $v0 +/* 03CCC4 7F008194 AFB9010C */ sw $t9, 0x10c($sp) +/* 03CCC8 7F008198 AFA000E0 */ sw $zero, 0xe0($sp) +/* 03CCCC 7F00819C AFA800E4 */ sw $t0, 0xe4($sp) +/* 03CCD0 7F0081A0 27A400DC */ addiu $a0, $sp, 0xdc +/* 03CCD4 7F0081A4 00402825 */ move $a1, $v0 +/* 03CCD8 7F0081A8 0FC1AF03 */ jal drawjointlist +/* 03CCDC 7F0081AC AFB800E8 */ sw $t8, 0xe8($sp) +/* 03CCE0 7F0081B0 240F0002 */ li $t7, 2 +/* 03CCE4 7F0081B4 AFAF00E4 */ sw $t7, 0xe4($sp) +/* 03CCE8 7F0081B8 27A400DC */ addiu $a0, $sp, 0xdc +/* 03CCEC 7F0081BC 0FC1AF03 */ jal drawjointlist +/* 03CCF0 7F0081C0 02002825 */ move $a1, $s0 +/* 03CCF4 7F0081C4 0FC1B100 */ jal set_80036084 +/* 03CCF8 7F0081C8 00002025 */ move $a0, $zero +/* 03CCFC 7F0081CC 0FC1AC92 */ jal sub_GAME_7F06B248 +/* 03CD00 7F0081D0 02002025 */ move $a0, $s0 +/* 03CD04 7F0081D4 8E620000 */ lw $v0, ($s3) +/* 03CD08 7F0081D8 00008025 */ move $s0, $zero +/* 03CD0C 7F0081DC 27B10088 */ addiu $s1, $sp, 0x88 +/* 03CD10 7F0081E0 8C4E0008 */ lw $t6, 8($v0) +/* 03CD14 7F0081E4 85C9000E */ lh $t1, 0xe($t6) +/* 03CD18 7F0081E8 59200015 */ blezl $t1, .L7F008240 +/* 03CD1C 7F0081EC 8E860000 */ lw $a2, ($s4) +/* 03CD20 7F0081F0 8C4A000C */ lw $t2, 0xc($v0) +.L7F0081F4: +/* 03CD24 7F0081F4 02202825 */ move $a1, $s1 +/* 03CD28 7F0081F8 0FC16008 */ jal matrix_4x4_copy +/* 03CD2C 7F0081FC 01502021 */ addu $a0, $t2, $s0 +/* 03CD30 7F008200 8E6B0000 */ lw $t3, ($s3) +/* 03CD34 7F008204 00126980 */ sll $t5, $s2, 6 +/* 03CD38 7F008208 02202025 */ move $a0, $s1 +/* 03CD3C 7F00820C 8D6C000C */ lw $t4, 0xc($t3) +/* 03CD40 7F008210 0FC16327 */ jal sub_GAME_7F058C9C +/* 03CD44 7F008214 018D2821 */ addu $a1, $t4, $t5 +/* 03CD48 7F008218 8E620000 */ lw $v0, ($s3) +/* 03CD4C 7F00821C 26520001 */ addiu $s2, $s2, 1 +/* 03CD50 7F008220 26100040 */ addiu $s0, $s0, 0x40 +/* 03CD54 7F008224 8C590008 */ lw $t9, 8($v0) +/* 03CD58 7F008228 8738000E */ lh $t8, 0xe($t9) +/* 03CD5C 7F00822C 0258082A */ slt $at, $s2, $t8 +/* 03CD60 7F008230 5420FFF0 */ bnezl $at, .L7F0081F4 +/* 03CD64 7F008234 8C4A000C */ lw $t2, 0xc($v0) +/* 03CD68 7F008238 00009025 */ move $s2, $zero +/* 03CD6C 7F00823C 8E860000 */ lw $a2, ($s4) +.L7F008240: +/* 03CD70 7F008240 00008025 */ move $s0, $zero +/* 03CD74 7F008244 27B10048 */ addiu $s1, $sp, 0x48 +/* 03CD78 7F008248 8CC80008 */ lw $t0, 8($a2) +/* 03CD7C 7F00824C 850F000E */ lh $t7, 0xe($t0) +/* 03CD80 7F008250 59E00014 */ blezl $t7, .L7F0082A4 +/* 03CD84 7F008254 8FBF0034 */ lw $ra, 0x34($sp) +/* 03CD88 7F008258 8CCE000C */ lw $t6, 0xc($a2) +.L7F00825C: +/* 03CD8C 7F00825C 02202825 */ move $a1, $s1 +/* 03CD90 7F008260 0FC16008 */ jal matrix_4x4_copy +/* 03CD94 7F008264 01D02021 */ addu $a0, $t6, $s0 +/* 03CD98 7F008268 8E890000 */ lw $t1, ($s4) +/* 03CD9C 7F00826C 00125980 */ sll $t3, $s2, 6 +/* 03CDA0 7F008270 02202025 */ move $a0, $s1 +/* 03CDA4 7F008274 8D2A000C */ lw $t2, 0xc($t1) +/* 03CDA8 7F008278 0FC16327 */ jal sub_GAME_7F058C9C +/* 03CDAC 7F00827C 014B2821 */ addu $a1, $t2, $t3 +/* 03CDB0 7F008280 8E860000 */ lw $a2, ($s4) +/* 03CDB4 7F008284 26520001 */ addiu $s2, $s2, 1 +/* 03CDB8 7F008288 26100040 */ addiu $s0, $s0, 0x40 +/* 03CDBC 7F00828C 8CCC0008 */ lw $t4, 8($a2) +/* 03CDC0 7F008290 858D000E */ lh $t5, 0xe($t4) +/* 03CDC4 7F008294 024D082A */ slt $at, $s2, $t5 +/* 03CDC8 7F008298 5420FFF0 */ bnezl $at, .L7F00825C +/* 03CDCC 7F00829C 8CCE000C */ lw $t6, 0xc($a2) +/* 03CDD0 7F0082A0 8FBF0034 */ lw $ra, 0x34($sp) +.L7F0082A4: +/* 03CDD4 7F0082A4 8FA200E8 */ lw $v0, 0xe8($sp) +/* 03CDD8 7F0082A8 8FB0001C */ lw $s0, 0x1c($sp) +/* 03CDDC 7F0082AC 8FB10020 */ lw $s1, 0x20($sp) +/* 03CDE0 7F0082B0 8FB20024 */ lw $s2, 0x24($sp) +/* 03CDE4 7F0082B4 8FB30028 */ lw $s3, 0x28($sp) +/* 03CDE8 7F0082B8 8FB4002C */ lw $s4, 0x2c($sp) +/* 03CDEC 7F0082BC 8FB50030 */ lw $s5, 0x30($sp) +/* 03CDF0 7F0082C0 03E00008 */ jr $ra +/* 03CDF4 7F0082C4 27BD0120 */ addiu $sp, $sp, 0x120 +) +#endif + + + +#ifdef NONMATCHING +void insert_bond_eye_intro(void) { + +} +#else +GLOBAL_ASM( +.text +glabel insert_bond_eye_intro +/* 03CDF8 7F0082C8 44800000 */ mtc1 $zero, $f0 +/* 03CDFC 7F0082CC 3C0E8003 */ lui $t6, %hi(D_8002A7D0) +/* 03CE00 7F0082D0 8DCEA7D0 */ lw $t6, %lo(D_8002A7D0)($t6) +/* 03CE04 7F0082D4 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 03CE08 7F0082D8 3C188007 */ lui $t8, %hi(matrix_buffer_intro_backdrop) +/* 03CE0C 7F0082DC 8F18956C */ lw $t8, %lo(matrix_buffer_intro_backdrop)($t8) +/* 03CE10 7F0082E0 AFB00030 */ sw $s0, 0x30($sp) +/* 03CE14 7F0082E4 00808025 */ move $s0, $a0 +/* 03CE18 7F0082E8 AFBF0034 */ sw $ra, 0x34($sp) +/* 03CE1C 7F0082EC 44050000 */ mfc1 $a1, $f0 +/* 03CE20 7F0082F0 44060000 */ mfc1 $a2, $f0 +/* 03CE24 7F0082F4 44070000 */ mfc1 $a3, $f0 +/* 03CE28 7F0082F8 000E7980 */ sll $t7, $t6, 6 +/* 03CE2C 7F0082FC 0C005B46 */ jal guTranslate +/* 03CE30 7F008300 01F82021 */ addu $a0, $t7, $t8 +/* 03CE34 7F008304 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 03CE38 7F008308 44812000 */ mtc1 $at, $f4 +/* 03CE3C 7F00830C 3C018005 */ lui $at, %hi(D_8004F2D4) +/* 03CE40 7F008310 3C198003 */ lui $t9, %hi(D_8002A7D0) +/* 03CE44 7F008314 8F39A7D0 */ lw $t9, %lo(D_8002A7D0)($t9) +/* 03CE48 7F008318 C426F2D4 */ lwc1 $f6, %lo(D_8004F2D4)($at) +/* 03CE4C 7F00831C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03CE50 7F008320 3C0C8007 */ lui $t4, %hi(matrix_buffer_intro_bond) +/* 03CE54 7F008324 8D8C9570 */ lw $t4, %lo(matrix_buffer_intro_bond)($t4) +/* 03CE58 7F008328 44814000 */ mtc1 $at, $f8 +/* 03CE5C 7F00832C 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 03CE60 7F008330 00195980 */ sll $t3, $t9, 6 +/* 03CE64 7F008334 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 03CE68 7F008338 27A5005E */ addiu $a1, $sp, 0x5e +/* 03CE6C 7F00833C 3C064238 */ lui $a2, 0x4238 +/* 03CE70 7F008340 E7A40010 */ swc1 $f4, 0x10($sp) +/* 03CE74 7F008344 E7A60014 */ swc1 $f6, 0x14($sp) +/* 03CE78 7F008348 016C2021 */ addu $a0, $t3, $t4 +/* 03CE7C 7F00834C 0C003FAC */ jal guPerspective +/* 03CE80 7F008350 E7A80018 */ swc1 $f8, 0x18($sp) +/* 03CE84 7F008354 3C0DBC00 */ lui $t5, (0xBC00000E >> 16) # lui $t5, 0xbc00 +/* 03CE88 7F008358 35AD000E */ ori $t5, (0xBC00000E & 0xFFFF) # ori $t5, $t5, 0xe +/* 03CE8C 7F00835C 02001025 */ move $v0, $s0 +/* 03CE90 7F008360 AC4D0000 */ sw $t5, ($v0) +/* 03CE94 7F008364 97AE005E */ lhu $t6, 0x5e($sp) +/* 03CE98 7F008368 26100008 */ addiu $s0, $s0, 8 +/* 03CE9C 7F00836C 02001825 */ move $v1, $s0 +/* 03CEA0 7F008370 26100008 */ addiu $s0, $s0, 8 +/* 03CEA4 7F008374 3C0FFCFF */ lui $t7, (0xFCFFFFFF >> 16) # lui $t7, 0xfcff +/* 03CEA8 7F008378 3C18FFFE */ lui $t8, (0xFFFE793C >> 16) # lui $t8, 0xfffe +/* 03CEAC 7F00837C AC4E0004 */ sw $t6, 4($v0) +/* 03CEB0 7F008380 3718793C */ ori $t8, (0xFFFE793C & 0xFFFF) # ori $t8, $t8, 0x793c +/* 03CEB4 7F008384 35EFFFFF */ ori $t7, (0xFCFFFFFF & 0xFFFF) # ori $t7, $t7, 0xffff +/* 03CEB8 7F008388 02002825 */ move $a1, $s0 +/* 03CEBC 7F00838C AC6F0000 */ sw $t7, ($v1) +/* 03CEC0 7F008390 AC780004 */ sw $t8, 4($v1) +/* 03CEC4 7F008394 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 +/* 03CEC8 7F008398 3C0B0055 */ lui $t3, (0x00552048 >> 16) # lui $t3, 0x55 +/* 03CECC 7F00839C 356B2048 */ ori $t3, (0x00552048 & 0xFFFF) # ori $t3, $t3, 0x2048 +/* 03CED0 7F0083A0 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d +/* 03CED4 7F0083A4 26100008 */ addiu $s0, $s0, 8 +/* 03CED8 7F0083A8 3C0C0103 */ lui $t4, (0x01030040 >> 16) # lui $t4, 0x103 +/* 03CEDC 7F0083AC ACB90000 */ sw $t9, ($a1) +/* 03CEE0 7F0083B0 ACAB0004 */ sw $t3, 4($a1) +/* 03CEE4 7F0083B4 358C0040 */ ori $t4, (0x01030040 & 0xFFFF) # ori $t4, $t4, 0x40 +/* 03CEE8 7F0083B8 02003025 */ move $a2, $s0 +/* 03CEEC 7F0083BC ACCC0000 */ sw $t4, ($a2) +/* 03CEF0 7F0083C0 3C0D8003 */ lui $t5, %hi(D_8002A7D0) +/* 03CEF4 7F0083C4 8DADA7D0 */ lw $t5, %lo(D_8002A7D0)($t5) +/* 03CEF8 7F0083C8 3C0F8007 */ lui $t7, %hi(matrix_buffer_intro_bond) +/* 03CEFC 7F0083CC 8DEF9570 */ lw $t7, %lo(matrix_buffer_intro_bond)($t7) +/* 03CF00 7F0083D0 000D7180 */ sll $t6, $t5, 6 +/* 03CF04 7F0083D4 AFA6004C */ sw $a2, 0x4c($sp) +/* 03CF08 7F0083D8 26100008 */ addiu $s0, $s0, 8 +/* 03CF0C 7F0083DC 0C003A2C */ jal osVirtualToPhysical +/* 03CF10 7F0083E0 01CF2021 */ addu $a0, $t6, $t7 +/* 03CF14 7F0083E4 8FA6004C */ lw $a2, 0x4c($sp) +/* 03CF18 7F0083E8 3C180102 */ lui $t8, (0x01020040 >> 16) # lui $t8, 0x102 +/* 03CF1C 7F0083EC 37180040 */ ori $t8, (0x01020040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 03CF20 7F0083F0 02005025 */ move $t2, $s0 +/* 03CF24 7F0083F4 ACC20004 */ sw $v0, 4($a2) +/* 03CF28 7F0083F8 AD580000 */ sw $t8, ($t2) +/* 03CF2C 7F0083FC 3C198003 */ lui $t9, %hi(D_8002A7D0) +/* 03CF30 7F008400 8F39A7D0 */ lw $t9, %lo(D_8002A7D0)($t9) +/* 03CF34 7F008404 3C0C8007 */ lui $t4, %hi(matrix_buffer_intro_backdrop) +/* 03CF38 7F008408 8D8C956C */ lw $t4, %lo(matrix_buffer_intro_backdrop)($t4) +/* 03CF3C 7F00840C 00195980 */ sll $t3, $t9, 6 +/* 03CF40 7F008410 AFAA0048 */ sw $t2, 0x48($sp) +/* 03CF44 7F008414 26100008 */ addiu $s0, $s0, 8 +/* 03CF48 7F008418 0C003A2C */ jal osVirtualToPhysical +/* 03CF4C 7F00841C 016C2021 */ addu $a0, $t3, $t4 +/* 03CF50 7F008420 8FAA0048 */ lw $t2, 0x48($sp) +/* 03CF54 7F008424 3C038003 */ lui $v1, %hi(D_8002A83C) +/* 03CF58 7F008428 3C088003 */ lui $t0, %hi(D_8002A848) +/* 03CF5C 7F00842C AD420004 */ sw $v0, 4($t2) +/* 03CF60 7F008430 2508A848 */ addiu $t0, %lo(D_8002A848) # addiu $t0, $t0, -0x57b8 +/* 03CF64 7F008434 2463A83C */ addiu $v1, %lo(D_8002A83C) # addiu $v1, $v1, -0x57c4 +/* 03CF68 7F008438 C4600000 */ lwc1 $f0, ($v1) +/* 03CF6C 7F00843C C50A0000 */ lwc1 $f10, ($t0) +/* 03CF70 7F008440 C4620004 */ lwc1 $f2, 4($v1) +/* 03CF74 7F008444 C5120004 */ lwc1 $f18, 4($t0) +/* 03CF78 7F008448 46005400 */ add.s $f16, $f10, $f0 +/* 03CF7C 7F00844C C46C0008 */ lwc1 $f12, 8($v1) +/* 03CF80 7F008450 C5060008 */ lwc1 $f6, 8($t0) +/* 03CF84 7F008454 3C098003 */ lui $t1, %hi(D_8002A854) +/* 03CF88 7F008458 2529A854 */ addiu $t1, %lo(D_8002A854) # addiu $t1, $t1, -0x57ac +/* 03CF8C 7F00845C 46029100 */ add.s $f4, $f18, $f2 +/* 03CF90 7F008460 E7B00010 */ swc1 $f16, 0x10($sp) +/* 03CF94 7F008464 C5300004 */ lwc1 $f16, 4($t1) +/* 03CF98 7F008468 460C3200 */ add.s $f8, $f6, $f12 +/* 03CF9C 7F00846C C5320008 */ lwc1 $f18, 8($t1) +/* 03CFA0 7F008470 C52A0000 */ lwc1 $f10, ($t1) +/* 03CFA4 7F008474 44050000 */ mfc1 $a1, $f0 +/* 03CFA8 7F008478 44061000 */ mfc1 $a2, $f2 +/* 03CFAC 7F00847C 44076000 */ mfc1 $a3, $f12 +/* 03CFB0 7F008480 E7A80018 */ swc1 $f8, 0x18($sp) +/* 03CFB4 7F008484 E7A40014 */ swc1 $f4, 0x14($sp) +/* 03CFB8 7F008488 27A40060 */ addiu $a0, $sp, 0x60 +/* 03CFBC 7F00848C E7B00020 */ swc1 $f16, 0x20($sp) +/* 03CFC0 7F008490 E7B20024 */ swc1 $f18, 0x24($sp) +/* 03CFC4 7F008494 0FC165A5 */ jal sub_GAME_7F059694 +/* 03CFC8 7F008498 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 03CFCC 7F00849C 02002025 */ move $a0, $s0 +/* 03CFD0 7F0084A0 24050002 */ li $a1, 2 +/* 03CFD4 7F0084A4 0FC01FCC */ jal sub_GAME_7F007F30 +/* 03CFD8 7F0084A8 27A60060 */ addiu $a2, $sp, 0x60 +/* 03CFDC 7F0084AC 8FBF0034 */ lw $ra, 0x34($sp) +/* 03CFE0 7F0084B0 8FB00030 */ lw $s0, 0x30($sp) +/* 03CFE4 7F0084B4 27BD00A0 */ addiu $sp, $sp, 0xa0 +/* 03CFE8 7F0084B8 03E00008 */ jr $ra +/* 03CFEC 7F0084BC 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void load_display_rare_logo(void) { + +} +#else +GLOBAL_ASM( +.text +glabel load_display_rare_logo +/* 03CFF0 7F0084C0 44872000 */ mtc1 $a3, $f4 +/* 03CFF4 7F0084C4 27BDFF18 */ addiu $sp, $sp, -0xe8 +/* 03CFF8 7F0084C8 AFB0002C */ sw $s0, 0x2c($sp) +/* 03CFFC 7F0084CC 468021A0 */ cvt.s.w $f6, $f4 +/* 03D000 7F0084D0 3C018003 */ lui $at, %hi(D_8002A880) +/* 03D004 7F0084D4 AFBF0034 */ sw $ra, 0x34($sp) +/* 03D008 7F0084D8 AFB10030 */ sw $s1, 0x30($sp) +/* 03D00C 7F0084DC AFA500EC */ sw $a1, 0xec($sp) +/* 03D010 7F0084E0 AFA600F0 */ sw $a2, 0xf0($sp) +/* 03D014 7F0084E4 E426A880 */ swc1 $f6, %lo(D_8002A880)($at) +/* 03D018 7F0084E8 3C0F0100 */ lui $t7, 0x100 +/* 03D01C 7F0084EC 25EF0000 */ addiu $t7, $t7, 0 +/* 03D020 7F0084F0 3C0E0600 */ lui $t6, 0x600 +/* 03D024 7F0084F4 AC8E0000 */ sw $t6, ($a0) +/* 03D028 7F0084F8 AC8F0004 */ sw $t7, 4($a0) +/* 03D02C 7F0084FC 24900008 */ addiu $s0, $a0, 8 +/* 03D030 7F008500 0FC07034 */ jal insert_imageDL +/* 03D034 7F008504 02002025 */ move $a0, $s0 +/* 03D038 7F008508 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 03D03C 7F00850C 44814000 */ mtc1 $at, $f8 +/* 03D040 7F008510 3C118003 */ lui $s1, %hi(D_8002A7D0) +/* 03D044 7F008514 2631A7D0 */ addiu $s1, %lo(D_8002A7D0) # addiu $s1, $s1, -0x5830 +/* 03D048 7F008518 3C018005 */ lui $at, %hi(D_8004F2D8) +/* 03D04C 7F00851C C42AF2D8 */ lwc1 $f10, %lo(D_8004F2D8)($at) +/* 03D050 7F008520 8E380000 */ lw $t8, ($s1) +/* 03D054 7F008524 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03D058 7F008528 3C0E8007 */ lui $t6, %hi(matrix_buffer_rarelogo_0) +/* 03D05C 7F00852C 8DCE9558 */ lw $t6, %lo(matrix_buffer_rarelogo_0)($t6) +/* 03D060 7F008530 44818000 */ mtc1 $at, $f16 +/* 03D064 7F008534 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 03D068 7F008538 0018C980 */ sll $t9, $t8, 6 +/* 03D06C 7F00853C 00408025 */ move $s0, $v0 +/* 03D070 7F008540 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 03D074 7F008544 27A500E2 */ addiu $a1, $sp, 0xe2 +/* 03D078 7F008548 3C064270 */ lui $a2, 0x4270 +/* 03D07C 7F00854C E7A80010 */ swc1 $f8, 0x10($sp) +/* 03D080 7F008550 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 03D084 7F008554 032E2021 */ addu $a0, $t9, $t6 +/* 03D088 7F008558 0C003FAC */ jal guPerspective +/* 03D08C 7F00855C E7B00018 */ swc1 $f16, 0x18($sp) +/* 03D090 7F008560 3C0FBC00 */ lui $t7, (0xBC00000E >> 16) # lui $t7, 0xbc00 +/* 03D094 7F008564 35EF000E */ ori $t7, (0xBC00000E & 0xFFFF) # ori $t7, $t7, 0xe +/* 03D098 7F008568 02001025 */ move $v0, $s0 +/* 03D09C 7F00856C AC4F0000 */ sw $t7, ($v0) +/* 03D0A0 7F008570 97B800E2 */ lhu $t8, 0xe2($sp) +/* 03D0A4 7F008574 26100008 */ addiu $s0, $s0, 8 +/* 03D0A8 7F008578 3C190103 */ lui $t9, (0x01030040 >> 16) # lui $t9, 0x103 +/* 03D0AC 7F00857C 37390040 */ ori $t9, (0x01030040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 03D0B0 7F008580 02005825 */ move $t3, $s0 +/* 03D0B4 7F008584 AC580004 */ sw $t8, 4($v0) +/* 03D0B8 7F008588 AD790000 */ sw $t9, ($t3) +/* 03D0BC 7F00858C 8E2E0000 */ lw $t6, ($s1) +/* 03D0C0 7F008590 3C188007 */ lui $t8, %hi(matrix_buffer_rarelogo_0) +/* 03D0C4 7F008594 8F189558 */ lw $t8, %lo(matrix_buffer_rarelogo_0)($t8) +/* 03D0C8 7F008598 000E7980 */ sll $t7, $t6, 6 +/* 03D0CC 7F00859C AFAB00D8 */ sw $t3, 0xd8($sp) +/* 03D0D0 7F0085A0 26100008 */ addiu $s0, $s0, 8 +/* 03D0D4 7F0085A4 0C003A2C */ jal osVirtualToPhysical +/* 03D0D8 7F0085A8 01F82021 */ addu $a0, $t7, $t8 +/* 03D0DC 7F0085AC 8FAB00D8 */ lw $t3, 0xd8($sp) +/* 03D0E0 7F0085B0 02001825 */ move $v1, $s0 +/* 03D0E4 7F0085B4 240EFFFF */ li $t6, -1 +/* 03D0E8 7F0085B8 AD620004 */ sw $v0, 4($t3) +/* 03D0EC 7F0085BC AC6E0004 */ sw $t6, 4($v1) +/* 03D0F0 7F0085C0 26100008 */ addiu $s0, $s0, 8 +/* 03D0F4 7F0085C4 3C19B600 */ lui $t9, 0xb600 +/* 03D0F8 7F0085C8 AC790000 */ sw $t9, ($v1) +/* 03D0FC 7F0085CC 02004025 */ move $t0, $s0 +/* 03D100 7F0085D0 3C0FB700 */ lui $t7, 0xb700 +/* 03D104 7F0085D4 3C180006 */ lui $t8, (0x00062204 >> 16) # lui $t8, 6 +/* 03D108 7F0085D8 37182204 */ ori $t8, (0x00062204 & 0xFFFF) # ori $t8, $t8, 0x2204 +/* 03D10C 7F0085DC AD0F0000 */ sw $t7, ($t0) +/* 03D110 7F0085E0 AD180004 */ sw $t8, 4($t0) +/* 03D114 7F0085E4 3C098003 */ lui $t1, %hi(D_8002A884) +/* 03D118 7F0085E8 3C0C8003 */ lui $t4, %hi(D_8002A878) +/* 03D11C 7F0085EC 258CA878 */ addiu $t4, %lo(D_8002A878) # addiu $t4, $t4, -0x5788 +/* 03D120 7F0085F0 2529A884 */ addiu $t1, %lo(D_8002A884) # addiu $t1, $t1, -0x577c +/* 03D124 7F0085F4 C5320000 */ lwc1 $f18, ($t1) +/* 03D128 7F0085F8 C5800000 */ lwc1 $f0, ($t4) +/* 03D12C 7F0085FC C5260004 */ lwc1 $f6, 4($t1) +/* 03D130 7F008600 C5820004 */ lwc1 $f2, 4($t4) +/* 03D134 7F008604 46009100 */ add.s $f4, $f18, $f0 +/* 03D138 7F008608 C52A0008 */ lwc1 $f10, 8($t1) +/* 03D13C 7F00860C C58C0008 */ lwc1 $f12, 8($t4) +/* 03D140 7F008610 3C0A8003 */ lui $t2, %hi(D_8002A890) +/* 03D144 7F008614 254AA890 */ addiu $t2, %lo(D_8002A890) # addiu $t2, $t2, -0x5770 +/* 03D148 7F008618 46023200 */ add.s $f8, $f6, $f2 +/* 03D14C 7F00861C 8E390000 */ lw $t9, ($s1) +/* 03D150 7F008620 E7A40010 */ swc1 $f4, 0x10($sp) +/* 03D154 7F008624 460C5400 */ add.s $f16, $f10, $f12 +/* 03D158 7F008628 3C0F8007 */ lui $t7, %hi(matrix_buffer_rarelogo_1) +/* 03D15C 7F00862C 8DEF9560 */ lw $t7, %lo(matrix_buffer_rarelogo_1)($t7) +/* 03D160 7F008630 C5440004 */ lwc1 $f4, 4($t2) +/* 03D164 7F008634 C5460008 */ lwc1 $f6, 8($t2) +/* 03D168 7F008638 C5520000 */ lwc1 $f18, ($t2) +/* 03D16C 7F00863C 44050000 */ mfc1 $a1, $f0 +/* 03D170 7F008640 44061000 */ mfc1 $a2, $f2 +/* 03D174 7F008644 44076000 */ mfc1 $a3, $f12 +/* 03D178 7F008648 00197180 */ sll $t6, $t9, 6 +/* 03D17C 7F00864C 26100008 */ addiu $s0, $s0, 8 +/* 03D180 7F008650 E7B00018 */ swc1 $f16, 0x18($sp) +/* 03D184 7F008654 E7A80014 */ swc1 $f8, 0x14($sp) +/* 03D188 7F008658 01CF2021 */ addu $a0, $t6, $t7 +/* 03D18C 7F00865C E7A40020 */ swc1 $f4, 0x20($sp) +/* 03D190 7F008660 E7A60024 */ swc1 $f6, 0x24($sp) +/* 03D194 7F008664 0C005DAA */ jal guLookAt +/* 03D198 7F008668 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 03D19C 7F00866C 3C180102 */ lui $t8, (0x01020040 >> 16) # lui $t8, 0x102 +/* 03D1A0 7F008670 37180040 */ ori $t8, (0x01020040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 03D1A4 7F008674 02001825 */ move $v1, $s0 +/* 03D1A8 7F008678 AC780000 */ sw $t8, ($v1) +/* 03D1AC 7F00867C 8E390000 */ lw $t9, ($s1) +/* 03D1B0 7F008680 3C0F8007 */ lui $t7, %hi(matrix_buffer_rarelogo_1) +/* 03D1B4 7F008684 8DEF9560 */ lw $t7, %lo(matrix_buffer_rarelogo_1)($t7) +/* 03D1B8 7F008688 00197180 */ sll $t6, $t9, 6 +/* 03D1BC 7F00868C AFA300CC */ sw $v1, 0xcc($sp) +/* 03D1C0 7F008690 26100008 */ addiu $s0, $s0, 8 +/* 03D1C4 7F008694 0C003A2C */ jal osVirtualToPhysical +/* 03D1C8 7F008698 01CF2021 */ addu $a0, $t6, $t7 +/* 03D1CC 7F00869C 8FA300CC */ lw $v1, 0xcc($sp) +/* 03D1D0 7F0086A0 44800000 */ mtc1 $zero, $f0 +/* 03D1D4 7F0086A4 3C0E8007 */ lui $t6, %hi(matrix_buffer_rarelogo_2) +/* 03D1D8 7F0086A8 AC620004 */ sw $v0, 4($v1) +/* 03D1DC 7F0086AC 8E380000 */ lw $t8, ($s1) +/* 03D1E0 7F0086B0 8DCE9564 */ lw $t6, %lo(matrix_buffer_rarelogo_2)($t6) +/* 03D1E4 7F0086B4 3C058003 */ lui $a1, %hi(D_8002A89C) +/* 03D1E8 7F0086B8 44060000 */ mfc1 $a2, $f0 +/* 03D1EC 7F0086BC 0018C980 */ sll $t9, $t8, 6 +/* 03D1F0 7F0086C0 8CA5A89C */ lw $a1, %lo(D_8002A89C)($a1) +/* 03D1F4 7F0086C4 3C073F80 */ lui $a3, %hi(0x3F800004) # $a3, 0x3f80 +/* 03D1F8 7F0086C8 E7A00010 */ swc1 $f0, 0x10($sp) +/* 03D1FC 7F0086CC 0C005E2D */ jal guRotate +/* 03D200 7F0086D0 032E2021 */ addu $a0, $t9, $t6 +/* 03D204 7F0086D4 3C028003 */ lui $v0, %hi(D_8002A89C) +/* 03D208 7F0086D8 2442A89C */ addiu $v0, %lo(D_8002A89C) # addiu $v0, $v0, -0x5764 +/* 03D20C 7F0086DC 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 03D210 7F0086E0 44815000 */ mtc1 $at, $f10 +/* 03D214 7F0086E4 C4480000 */ lwc1 $f8, ($v0) +/* 03D218 7F0086E8 3C0F0100 */ lui $t7, (0x01000040 >> 16) # lui $t7, 0x100 +/* 03D21C 7F0086EC 35EF0040 */ ori $t7, (0x01000040 & 0xFFFF) # ori $t7, $t7, 0x40 +/* 03D220 7F0086F0 460A4400 */ add.s $f16, $f8, $f10 +/* 03D224 7F0086F4 02005025 */ move $t2, $s0 +/* 03D228 7F0086F8 3C0E8007 */ lui $t6, %hi(matrix_buffer_rarelogo_2) +/* 03D22C 7F0086FC 26100008 */ addiu $s0, $s0, 8 +/* 03D230 7F008700 E4500000 */ swc1 $f16, ($v0) +/* 03D234 7F008704 AD4F0000 */ sw $t7, ($t2) +/* 03D238 7F008708 8E380000 */ lw $t8, ($s1) +/* 03D23C 7F00870C 8DCE9564 */ lw $t6, %lo(matrix_buffer_rarelogo_2)($t6) +/* 03D240 7F008710 AFAA00C8 */ sw $t2, 0xc8($sp) +/* 03D244 7F008714 0018C980 */ sll $t9, $t8, 6 +/* 03D248 7F008718 0C003A2C */ jal osVirtualToPhysical +/* 03D24C 7F00871C 032E2021 */ addu $a0, $t9, $t6 +/* 03D250 7F008720 8FA800F8 */ lw $t0, 0xf8($sp) +/* 03D254 7F008724 8FAA00C8 */ lw $t2, 0xc8($sp) +/* 03D258 7F008728 02002025 */ move $a0, $s0 +/* 03D25C 7F00872C 3C0FBC00 */ lui $t7, (0xBC000002 >> 16) # lui $t7, 0xbc00 +/* 03D260 7F008730 35EF0002 */ ori $t7, (0xBC000002 & 0xFFFF) # ori $t7, $t7, 2 +/* 03D264 7F008734 26100008 */ addiu $s0, $s0, 8 +/* 03D268 7F008738 3C188000 */ lui $t8, (0x80000040 >> 16) # lui $t8, 0x8000 +/* 03D26C 7F00873C AD420004 */ sw $v0, 4($t2) +/* 03D270 7F008740 AC8F0000 */ sw $t7, ($a0) +/* 03D274 7F008744 37180040 */ ori $t8, (0x80000040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 03D278 7F008748 02002825 */ move $a1, $s0 +/* 03D27C 7F00874C AC980004 */ sw $t8, 4($a0) +/* 03D280 7F008750 3C190386 */ lui $t9, (0x03860010 >> 16) # lui $t9, 0x386 +/* 03D284 7F008754 3C0E8003 */ lui $t6, %hi(D_8002A868) +/* 03D288 7F008758 25CEA868 */ addiu $t6, %lo(D_8002A868) # addiu $t6, $t6, -0x5798 +/* 03D28C 7F00875C 37390010 */ ori $t9, (0x03860010 & 0xFFFF) # ori $t9, $t9, 0x10 +/* 03D290 7F008760 26100008 */ addiu $s0, $s0, 8 +/* 03D294 7F008764 3C038003 */ lui $v1, %hi(D_8002A860) +/* 03D298 7F008768 02003025 */ move $a2, $s0 +/* 03D29C 7F00876C ACB90000 */ sw $t9, ($a1) +/* 03D2A0 7F008770 ACAE0004 */ sw $t6, 4($a1) +/* 03D2A4 7F008774 3C0F0388 */ lui $t7, (0x03880010 >> 16) # lui $t7, 0x388 +/* 03D2A8 7F008778 2463A860 */ addiu $v1, %lo(D_8002A860) # addiu $v1, $v1, -0x57a0 +/* 03D2AC 7F00877C 35EF0010 */ ori $t7, (0x03880010 & 0xFFFF) # ori $t7, $t7, 0x10 +/* 03D2B0 7F008780 ACCF0000 */ sw $t7, ($a2) +/* 03D2B4 7F008784 ACC30004 */ sw $v1, 4($a2) +/* 03D2B8 7F008788 26100008 */ addiu $s0, $s0, 8 +/* 03D2BC 7F00878C 02003825 */ move $a3, $s0 +/* 03D2C0 7F008790 A0680000 */ sb $t0, ($v1) +/* 03D2C4 7F008794 A0680001 */ sb $t0, 1($v1) +/* 03D2C8 7F008798 A0680002 */ sb $t0, 2($v1) +/* 03D2CC 7F00879C A0680004 */ sb $t0, 4($v1) +/* 03D2D0 7F0087A0 A0680005 */ sb $t0, 5($v1) +/* 03D2D4 7F0087A4 A0680006 */ sb $t0, 6($v1) +/* 03D2D8 7F0087A8 26100008 */ addiu $s0, $s0, 8 +/* 03D2DC 7F0087AC 3C09E700 */ lui $t1, 0xe700 +/* 03D2E0 7F0087B0 02005825 */ move $t3, $s0 +/* 03D2E4 7F0087B4 ACE90000 */ sw $t1, ($a3) +/* 03D2E8 7F0087B8 ACE00004 */ sw $zero, %lo(0x3F800004)($a3) +/* 03D2EC 7F0087BC 26100008 */ addiu $s0, $s0, 8 +/* 03D2F0 7F0087C0 02001025 */ move $v0, $s0 +/* 03D2F4 7F0087C4 AD600004 */ sw $zero, 4($t3) +/* 03D2F8 7F0087C8 AD690000 */ sw $t1, ($t3) +/* 03D2FC 7F0087CC 26100008 */ addiu $s0, $s0, 8 +/* 03D300 7F0087D0 3C18FC12 */ lui $t8, (0xFC127E24 >> 16) # lui $t8, 0xfc12 +/* 03D304 7F0087D4 37187E24 */ ori $t8, (0xFC127E24 & 0xFFFF) # ori $t8, $t8, 0x7e24 +/* 03D308 7F0087D8 2419F9FC */ li $t9, -1540 +/* 03D30C 7F0087DC 02001825 */ move $v1, $s0 +/* 03D310 7F0087E0 AC590004 */ sw $t9, 4($v0) +/* 03D314 7F0087E4 AC580000 */ sw $t8, ($v0) +/* 03D318 7F0087E8 3C0EBA00 */ lui $t6, (0xBA001301 >> 16) # lui $t6, 0xba00 +/* 03D31C 7F0087EC 35CE1301 */ ori $t6, (0xBA001301 & 0xFFFF) # ori $t6, $t6, 0x1301 +/* 03D320 7F0087F0 3C0F0008 */ lui $t7, 8 +/* 03D324 7F0087F4 AC6F0004 */ sw $t7, 4($v1) +/* 03D328 7F0087F8 AC6E0000 */ sw $t6, ($v1) +/* 03D32C 7F0087FC 26100008 */ addiu $s0, $s0, 8 +/* 03D330 7F008800 02002025 */ move $a0, $s0 +/* 03D334 7F008804 3C18BA00 */ lui $t8, (0xBA001102 >> 16) # lui $t8, 0xba00 +/* 03D338 7F008808 37181102 */ ori $t8, (0xBA001102 & 0xFFFF) # ori $t8, $t8, 0x1102 +/* 03D33C 7F00880C 26100008 */ addiu $s0, $s0, 8 +/* 03D340 7F008810 AC980000 */ sw $t8, ($a0) +/* 03D344 7F008814 02002825 */ move $a1, $s0 +/* 03D348 7F008818 3C19BA00 */ lui $t9, (0xBA001001 >> 16) # lui $t9, 0xba00 +/* 03D34C 7F00881C AC800004 */ sw $zero, 4($a0) +/* 03D350 7F008820 37391001 */ ori $t9, (0xBA001001 & 0xFFFF) # ori $t9, $t9, 0x1001 +/* 03D354 7F008824 26100008 */ addiu $s0, $s0, 8 +/* 03D358 7F008828 ACB90000 */ sw $t9, ($a1) +/* 03D35C 7F00882C 02003025 */ move $a2, $s0 +/* 03D360 7F008830 ACA00004 */ sw $zero, 4($a1) +/* 03D364 7F008834 26100008 */ addiu $s0, $s0, 8 +/* 03D368 7F008838 3C0EBA00 */ lui $t6, (0xBA000E02 >> 16) # lui $t6, 0xba00 +/* 03D36C 7F00883C 35CE0E02 */ ori $t6, (0xBA000E02 & 0xFFFF) # ori $t6, $t6, 0xe02 +/* 03D370 7F008840 02001025 */ move $v0, $s0 +/* 03D374 7F008844 ACCE0000 */ sw $t6, ($a2) +/* 03D378 7F008848 ACC00004 */ sw $zero, 4($a2) +/* 03D37C 7F00884C 3C0FBA00 */ lui $t7, (0xBA000C02 >> 16) # lui $t7, 0xba00 +/* 03D380 7F008850 35EF0C02 */ ori $t7, (0xBA000C02 & 0xFFFF) # ori $t7, $t7, 0xc02 +/* 03D384 7F008854 26100008 */ addiu $s0, $s0, 8 +/* 03D388 7F008858 24182000 */ li $t8, 8192 +/* 03D38C 7F00885C AC580004 */ sw $t8, 4($v0) +/* 03D390 7F008860 AC4F0000 */ sw $t7, ($v0) +/* 03D394 7F008864 02001825 */ move $v1, $s0 +/* 03D398 7F008868 3C19BA00 */ lui $t9, (0xBA000903 >> 16) # lui $t9, 0xba00 +/* 03D39C 7F00886C 37390903 */ ori $t9, (0xBA000903 & 0xFFFF) # ori $t9, $t9, 0x903 +/* 03D3A0 7F008870 26100008 */ addiu $s0, $s0, 8 +/* 03D3A4 7F008874 AC790000 */ sw $t9, ($v1) +/* 03D3A8 7F008878 240E0C00 */ li $t6, 3072 +/* 03D3AC 7F00887C 02002025 */ move $a0, $s0 +/* 03D3B0 7F008880 AC6E0004 */ sw $t6, 4($v1) +/* 03D3B4 7F008884 26100008 */ addiu $s0, $s0, 8 +/* 03D3B8 7F008888 02002825 */ move $a1, $s0 +/* 03D3BC 7F00888C AC800004 */ sw $zero, 4($a0) +/* 03D3C0 7F008890 AC890000 */ sw $t1, ($a0) +/* 03D3C4 7F008894 26100008 */ addiu $s0, $s0, 8 +/* 03D3C8 7F008898 ACA00004 */ sw $zero, 4($a1) +/* 03D3CC 7F00889C ACA90000 */ sw $t1, ($a1) +/* 03D3D0 7F0088A0 02003825 */ move $a3, $s0 +/* 03D3D4 7F0088A4 26100008 */ addiu $s0, $s0, 8 +/* 03D3D8 7F0088A8 3C0FBB00 */ lui $t7, (0xBB000001 >> 16) # lui $t7, 0xbb00 +/* 03D3DC 7F0088AC 3C180800 */ lui $t8, (0x08000800 >> 16) # lui $t8, 0x800 +/* 03D3E0 7F0088B0 37180800 */ ori $t8, (0x08000800 & 0xFFFF) # ori $t8, $t8, 0x800 +/* 03D3E4 7F0088B4 35EF0001 */ ori $t7, (0xBB000001 & 0xFFFF) # ori $t7, $t7, 1 +/* 03D3E8 7F0088B8 02001025 */ move $v0, $s0 +/* 03D3EC 7F0088BC ACEF0000 */ sw $t7, ($a3) +/* 03D3F0 7F0088C0 ACF80004 */ sw $t8, %lo(0x3F800004)($a3) +/* 03D3F4 7F0088C4 26100008 */ addiu $s0, $s0, 8 +/* 03D3F8 7F0088C8 3C190200 */ lui $t9, %hi(0x02004FE8) # $t9, 0x200 +/* 03D3FC 7F0088CC 3C0BFD10 */ lui $t3, 0xfd10 +/* 03D400 7F0088D0 27394FE8 */ addiu $t9, %lo(0x02004FE8) # addiu $t9, $t9, 0x4fe8 +/* 03D404 7F0088D4 02001825 */ move $v1, $s0 +/* 03D408 7F0088D8 3C0D0701 */ lui $t5, (0x07014050 >> 16) # lui $t5, 0x701 +/* 03D40C 7F0088DC 26100008 */ addiu $s0, $s0, 8 +/* 03D410 7F0088E0 AC590004 */ sw $t9, 4($v0) +/* 03D414 7F0088E4 AC4B0000 */ sw $t3, ($v0) +/* 03D418 7F0088E8 35AD4050 */ ori $t5, (0x07014050 & 0xFFFF) # ori $t5, $t5, 0x4050 +/* 03D41C 7F0088EC 3C0CF510 */ lui $t4, 0xf510 +/* 03D420 7F0088F0 02002025 */ move $a0, $s0 +/* 03D424 7F0088F4 AC6C0000 */ sw $t4, ($v1) +/* 03D428 7F0088F8 AC6D0004 */ sw $t5, 4($v1) +/* 03D42C 7F0088FC 3C1FE600 */ lui $ra, 0xe600 +/* 03D430 7F008900 26100008 */ addiu $s0, $s0, 8 +/* 03D434 7F008904 02002825 */ move $a1, $s0 +/* 03D438 7F008908 AC9F0000 */ sw $ra, ($a0) +/* 03D43C 7F00890C AC800004 */ sw $zero, 4($a0) +/* 03D440 7F008910 3C0E073F */ lui $t6, (0x073FF100 >> 16) # lui $t6, 0x73f +/* 03D444 7F008914 35CEF100 */ ori $t6, (0x073FF100 & 0xFFFF) # ori $t6, $t6, 0xf100 +/* 03D448 7F008918 26100008 */ addiu $s0, $s0, 8 +/* 03D44C 7F00891C 3C11F300 */ lui $s1, 0xf300 +/* 03D450 7F008920 02003025 */ move $a2, $s0 +/* 03D454 7F008924 ACAE0004 */ sw $t6, 4($a1) +/* 03D458 7F008928 26100008 */ addiu $s0, $s0, 8 +/* 03D45C 7F00892C ACB10000 */ sw $s1, ($a1) +/* 03D460 7F008930 02001825 */ move $v1, $s0 +/* 03D464 7F008934 ACC00004 */ sw $zero, 4($a2) +/* 03D468 7F008938 ACC90000 */ sw $t1, ($a2) +/* 03D46C 7F00893C 3C180001 */ lui $t8, (0x00014050 >> 16) # lui $t8, 1 +/* 03D470 7F008940 3C0FF510 */ lui $t7, (0xF5101000 >> 16) # lui $t7, 0xf510 +/* 03D474 7F008944 35EF1000 */ ori $t7, (0xF5101000 & 0xFFFF) # ori $t7, $t7, 0x1000 +/* 03D478 7F008948 37184050 */ ori $t8, (0x00014050 & 0xFFFF) # ori $t8, $t8, 0x4050 +/* 03D47C 7F00894C 26100008 */ addiu $s0, $s0, 8 +/* 03D480 7F008950 02002025 */ move $a0, $s0 +/* 03D484 7F008954 AC780004 */ sw $t8, 4($v1) +/* 03D488 7F008958 AC6F0000 */ sw $t7, ($v1) +/* 03D48C 7F00895C 3C0E0007 */ lui $t6, (0x0007C07C >> 16) # lui $t6, 7 +/* 03D490 7F008960 3C19F200 */ lui $t9, 0xf200 +/* 03D494 7F008964 AC990000 */ sw $t9, ($a0) +/* 03D498 7F008968 35CEC07C */ ori $t6, (0x0007C07C & 0xFFFF) # ori $t6, $t6, 0xc07c +/* 03D49C 7F00896C 26100008 */ addiu $s0, $s0, 8 +/* 03D4A0 7F008970 310200FF */ andi $v0, $t0, 0xff +/* 03D4A4 7F008974 AC8E0004 */ sw $t6, 4($a0) +/* 03D4A8 7F008978 02002825 */ move $a1, $s0 +/* 03D4AC 7F00897C 3C0FFA00 */ lui $t7, 0xfa00 +/* 03D4B0 7F008980 ACAF0000 */ sw $t7, ($a1) +/* 03D4B4 7F008984 0002C600 */ sll $t8, $v0, 0x18 +/* 03D4B8 7F008988 0002CC00 */ sll $t9, $v0, 0x10 +/* 03D4BC 7F00898C 03197025 */ or $t6, $t8, $t9 +/* 03D4C0 7F008990 00027A00 */ sll $t7, $v0, 8 +/* 03D4C4 7F008994 01CFC025 */ or $t8, $t6, $t7 +/* 03D4C8 7F008998 26100008 */ addiu $s0, $s0, 8 +/* 03D4CC 7F00899C 371900FF */ ori $t9, $t8, 0xff +/* 03D4D0 7F0089A0 02003825 */ move $a3, $s0 +/* 03D4D4 7F0089A4 ACB90004 */ sw $t9, 4($a1) +/* 03D4D8 7F0089A8 26100008 */ addiu $s0, $s0, 8 +/* 03D4DC 7F0089AC 3C0E0200 */ lui $t6, %hi(0x020043E8) # $t6, 0x200 +/* 03D4E0 7F0089B0 25CE43E8 */ addiu $t6, %lo(0x020043E8) # addiu $t6, $t6, 0x43e8 +/* 03D4E4 7F0089B4 3C060600 */ lui $a2, 0x600 +/* 03D4E8 7F0089B8 02001025 */ move $v0, $s0 +/* 03D4EC 7F0089BC ACE60000 */ sw $a2, ($a3) +/* 03D4F0 7F0089C0 ACEE0004 */ sw $t6, 4($a3) +/* 03D4F4 7F0089C4 26100008 */ addiu $s0, $s0, 8 +/* 03D4F8 7F0089C8 3C0F0200 */ lui $t7, %hi(0x020044B0) # $t7, 0x200 +/* 03D4FC 7F0089CC 25EF44B0 */ addiu $t7, %lo(0x020044B0) # addiu $t7, $t7, 0x44b0 +/* 03D500 7F0089D0 02001825 */ move $v1, $s0 +/* 03D504 7F0089D4 AC4F0004 */ sw $t7, 4($v0) +/* 03D508 7F0089D8 AC460000 */ sw $a2, ($v0) +/* 03D50C 7F0089DC 3C180200 */ lui $t8, %hi(0x02005FF0) # $t8, 0x200 +/* 03D510 7F0089E0 27185FF0 */ addiu $t8, %lo(0x02005FF0) # addiu $t8, $t8, 0x5ff0 +/* 03D514 7F0089E4 26100008 */ addiu $s0, $s0, 8 +/* 03D518 7F0089E8 02002025 */ move $a0, $s0 +/* 03D51C 7F0089EC AC780004 */ sw $t8, 4($v1) +/* 03D520 7F0089F0 AC6B0000 */ sw $t3, ($v1) +/* 03D524 7F0089F4 26100008 */ addiu $s0, $s0, 8 +/* 03D528 7F0089F8 02002825 */ move $a1, $s0 +/* 03D52C 7F0089FC 26100008 */ addiu $s0, $s0, 8 +/* 03D530 7F008A00 AC8D0004 */ sw $t5, 4($a0) +/* 03D534 7F008A04 AC8C0000 */ sw $t4, ($a0) +/* 03D538 7F008A08 02005025 */ move $t2, $s0 +/* 03D53C 7F008A0C 26100008 */ addiu $s0, $s0, 8 +/* 03D540 7F008A10 ACA00004 */ sw $zero, 4($a1) +/* 03D544 7F008A14 ACBF0000 */ sw $ra, ($a1) +/* 03D548 7F008A18 3C19073F */ lui $t9, (0x073FF100 >> 16) # lui $t9, 0x73f +/* 03D54C 7F008A1C 3739F100 */ ori $t9, (0x073FF100 & 0xFFFF) # ori $t9, $t9, 0xf100 +/* 03D550 7F008A20 02001025 */ move $v0, $s0 +/* 03D554 7F008A24 240700FF */ li $a3, 255 +/* 03D558 7F008A28 AD590004 */ sw $t9, 4($t2) +/* 03D55C 7F008A2C AD510000 */ sw $s1, ($t2) +/* 03D560 7F008A30 26100008 */ addiu $s0, $s0, 8 +/* 03D564 7F008A34 3C0F0001 */ lui $t7, (0x00014050 >> 16) # lui $t7, 1 +/* 03D568 7F008A38 35EF4050 */ ori $t7, (0x00014050 & 0xFFFF) # ori $t7, $t7, 0x4050 +/* 03D56C 7F008A3C 02001825 */ move $v1, $s0 +/* 03D570 7F008A40 AC400004 */ sw $zero, 4($v0) +/* 03D574 7F008A44 AC490000 */ sw $t1, ($v0) +/* 03D578 7F008A48 AC6F0004 */ sw $t7, 4($v1) +/* 03D57C 7F008A4C 00087900 */ sll $t7, $t0, 4 +/* 03D580 7F008A50 01E87823 */ subu $t7, $t7, $t0 +/* 03D584 7F008A54 000F7900 */ sll $t7, $t7, 4 +/* 03D588 7F008A58 01E7001A */ div $zero, $t7, $a3 +/* 03D58C 7F008A5C 3C0EF510 */ lui $t6, (0xF5101000 >> 16) # lui $t6, 0xf510 +/* 03D590 7F008A60 35CE1000 */ ori $t6, (0xF5101000 & 0xFFFF) # ori $t6, $t6, 0x1000 +/* 03D594 7F008A64 26100008 */ addiu $s0, $s0, 8 +/* 03D598 7F008A68 02002025 */ move $a0, $s0 +/* 03D59C 7F008A6C AC6E0000 */ sw $t6, ($v1) +/* 03D5A0 7F008A70 3C190007 */ lui $t9, (0x0007C07C >> 16) # lui $t9, 7 +/* 03D5A4 7F008A74 3739C07C */ ori $t9, (0x0007C07C & 0xFFFF) # ori $t9, $t9, 0xc07c +/* 03D5A8 7F008A78 26100008 */ addiu $s0, $s0, 8 +/* 03D5AC 7F008A7C 3C18F200 */ lui $t8, 0xf200 +/* 03D5B0 7F008A80 AC980000 */ sw $t8, ($a0) +/* 03D5B4 7F008A84 AC990004 */ sw $t9, 4($a0) +/* 03D5B8 7F008A88 02002825 */ move $a1, $s0 +/* 03D5BC 7F008A8C 3C0EFA00 */ lui $t6, 0xfa00 +/* 03D5C0 7F008A90 ACAE0000 */ sw $t6, ($a1) +/* 03D5C4 7F008A94 00087080 */ sll $t6, $t0, 2 +/* 03D5C8 7F008A98 01C87023 */ subu $t6, $t6, $t0 +/* 03D5CC 7F008A9C 000E7080 */ sll $t6, $t6, 2 +/* 03D5D0 7F008AA0 01C87021 */ addu $t6, $t6, $t0 +/* 03D5D4 7F008AA4 000E7100 */ sll $t6, $t6, 4 +/* 03D5D8 7F008AA8 00003012 */ mflo $a2 +/* 03D5DC 7F008AAC 30D800FF */ andi $t8, $a2, 0xff +/* 03D5E0 7F008AB0 03003025 */ move $a2, $t8 +/* 03D5E4 7F008AB4 01C7001A */ div $zero, $t6, $a3 +/* 03D5E8 7F008AB8 0018CE00 */ sll $t9, $t8, 0x18 +/* 03D5EC 7F008ABC 26100008 */ addiu $s0, $s0, 8 +/* 03D5F0 7F008AC0 14E00002 */ bnez $a3, .L7F008ACC +/* 03D5F4 7F008AC4 00000000 */ nop +/* 03D5F8 7F008AC8 0007000D */ break 7 +.L7F008ACC: +/* 03D5FC 7F008ACC 2401FFFF */ li $at, -1 +/* 03D600 7F008AD0 14E10004 */ bne $a3, $at, .L7F008AE4 +/* 03D604 7F008AD4 3C018000 */ lui $at, 0x8000 +/* 03D608 7F008AD8 15E10002 */ bne $t7, $at, .L7F008AE4 +/* 03D60C 7F008ADC 00000000 */ nop +/* 03D610 7F008AE0 0006000D */ break 6 +.L7F008AE4: +/* 03D614 7F008AE4 00007812 */ mflo $t7 +/* 03D618 7F008AE8 31F800FF */ andi $t8, $t7, 0xff +/* 03D61C 7F008AEC 14E00002 */ bnez $a3, .L7F008AF8 +/* 03D620 7F008AF0 00000000 */ nop +/* 03D624 7F008AF4 0007000D */ break 7 +.L7F008AF8: +/* 03D628 7F008AF8 2401FFFF */ li $at, -1 +/* 03D62C 7F008AFC 14E10004 */ bne $a3, $at, .L7F008B10 +/* 03D630 7F008B00 3C018000 */ lui $at, 0x8000 +/* 03D634 7F008B04 15C10002 */ bne $t6, $at, .L7F008B10 +/* 03D638 7F008B08 00000000 */ nop +/* 03D63C 7F008B0C 0006000D */ break 6 +.L7F008B10: +/* 03D640 7F008B10 00187400 */ sll $t6, $t8, 0x10 +/* 03D644 7F008B14 032E7825 */ or $t7, $t9, $t6 +/* 03D648 7F008B18 0006C200 */ sll $t8, $a2, 8 +/* 03D64C 7F008B1C 01F8C825 */ or $t9, $t7, $t8 +/* 03D650 7F008B20 372E00FF */ ori $t6, $t9, 0xff +/* 03D654 7F008B24 ACAE0004 */ sw $t6, 4($a1) +/* 03D658 7F008B28 3C180200 */ lui $t8, %hi(0x02004758) # $t8, 0x200 +/* 03D65C 7F008B2C 02001825 */ move $v1, $s0 +/* 03D660 7F008B30 27184758 */ addiu $t8, %lo(0x02004758) # addiu $t8, $t8, 0x4758 +/* 03D664 7F008B34 3C0F0600 */ lui $t7, 0x600 +/* 03D668 7F008B38 AC6F0000 */ sw $t7, ($v1) +/* 03D66C 7F008B3C AC780004 */ sw $t8, 4($v1) +/* 03D670 7F008B40 8FBF0034 */ lw $ra, 0x34($sp) +/* 03D674 7F008B44 26020008 */ addiu $v0, $s0, 8 +/* 03D678 7F008B48 8FB0002C */ lw $s0, 0x2c($sp) +/* 03D67C 7F008B4C 8FB10030 */ lw $s1, 0x30($sp) +/* 03D680 7F008B50 03E00008 */ jr $ra +/* 03D684 7F008B54 27BD00E8 */ addiu $sp, $sp, 0xe8 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F008B58(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F008B58 +/* 03D688 7F008B58 3C018003 */ lui $at, %hi(D_8002A7D4) +/* 03D68C 7F008B5C A020A7D4 */ sb $zero, %lo(D_8002A7D4)($at) +/* 03D690 7F008B60 3C01445C */ li $at, 0x445C0000 # 880.000000 +/* 03D694 7F008B64 44812000 */ mtc1 $at, $f4 +/* 03D698 7F008B68 3C018007 */ lui $at, %hi(x) +/* 03D69C 7F008B6C 3C0E0200 */ lui $t6, %hi(0x020067F0) # $t6, 0x200 +/* 03D6A0 7F008B70 E4249574 */ swc1 $f4, %lo(x)($at) +/* 03D6A4 7F008B74 3C01C220 */ li $at, 0xC2200000 # -40.000000 +/* 03D6A8 7F008B78 44813000 */ mtc1 $at, $f6 +/* 03D6AC 7F008B7C 3C0F0200 */ lui $t7, 0x200 +/* 03D6B0 7F008B80 3C018003 */ lui $at, %hi(D_8002A89C) +/* 03D6B4 7F008B84 25EF0000 */ addiu $t7, $t7, 0 +/* 03D6B8 7F008B88 25CE67F0 */ addiu $t6, %lo(0x020067F0) # addiu $t6, $t6, 0x67f0 +/* 03D6BC 7F008B8C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03D6C0 7F008B90 01CF3023 */ subu $a2, $t6, $t7 +/* 03D6C4 7F008B94 E426A89C */ swc1 $f6, %lo(D_8002A89C)($at) +/* 03D6C8 7F008B98 AFA5001C */ sw $a1, 0x1c($sp) +/* 03D6CC 7F008B9C 3C028007 */ lui $v0, %hi(virtualaddress) +/* 03D6D0 7F008BA0 3C018003 */ lui $at, %hi(intro_eye_counter) +/* 03D6D4 7F008BA4 24C6003F */ addiu $a2, $a2, 0x3f +/* 03D6D8 7F008BA8 24429590 */ addiu $v0, %lo(virtualaddress) # addiu $v0, $v0, -0x6a70 +/* 03D6DC 7F008BAC AFBF0014 */ sw $ra, 0x14($sp) +/* 03D6E0 7F008BB0 AC20A8A0 */ sw $zero, %lo(intro_eye_counter)($at) +/* 03D6E4 7F008BB4 34D8003F */ ori $t8, $a2, 0x3f +/* 03D6E8 7F008BB8 3C05002A */ lui $a1, %hi(_GlobalimagetablecmdblkSegmentRomStart) # $a1, 0x2a +/* 03D6EC 7F008BBC AC440000 */ sw $a0, ($v0) +/* 03D6F0 7F008BC0 24A5E560 */ addiu $a1, %lo(_GlobalimagetablecmdblkSegmentRomStart) # addiu $a1, $a1, -0x1aa0 +/* 03D6F4 7F008BC4 0C001707 */ jal romCopy +/* 03D6F8 7F008BC8 3B06003F */ xori $a2, $t8, 0x3f +/* 03D6FC 7F008BCC 8FBF0014 */ lw $ra, 0x14($sp) +/* 03D700 7F008BD0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03D704 7F008BD4 03E00008 */ jr $ra +/* 03D708 7F008BD8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void retrieve_display_rareware_logo(void) { + +} +#else +GLOBAL_ASM( +.text +glabel retrieve_display_rareware_logo +/* 03D70C 7F008BDC 3C028003 */ lui $v0, %hi(D_8002A7D0) +/* 03D710 7F008BE0 2442A7D0 */ addiu $v0, %lo(D_8002A7D0) # addiu $v0, $v0, -0x5830 +/* 03D714 7F008BE4 8C4E0000 */ lw $t6, ($v0) +/* 03D718 7F008BE8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 03D71C 7F008BEC 240F0001 */ li $t7, 1 +/* 03D720 7F008BF0 AFB00020 */ sw $s0, 0x20($sp) +/* 03D724 7F008BF4 3C19BC00 */ lui $t9, (0xBC000806 >> 16) # lui $t9, 0xbc00 +/* 03D728 7F008BF8 01EEC023 */ subu $t8, $t7, $t6 +/* 03D72C 7F008BFC AFBF0024 */ sw $ra, 0x24($sp) +/* 03D730 7F008C00 AC580000 */ sw $t8, ($v0) +/* 03D734 7F008C04 37390806 */ ori $t9, (0xBC000806 & 0xFFFF) # ori $t9, $t9, 0x806 +/* 03D738 7F008C08 AC990000 */ sw $t9, ($a0) +/* 03D73C 7F008C0C 24900008 */ addiu $s0, $a0, 8 +/* 03D740 7F008C10 00801825 */ move $v1, $a0 +/* 03D744 7F008C14 3C048007 */ lui $a0, %hi(virtualaddress) +/* 03D748 7F008C18 8C849590 */ lw $a0, %lo(virtualaddress)($a0) +/* 03D74C 7F008C1C 0C003A2C */ jal osVirtualToPhysical +/* 03D750 7F008C20 AFA3002C */ sw $v1, 0x2c($sp) +/* 03D754 7F008C24 8FA3002C */ lw $v1, 0x2c($sp) +/* 03D758 7F008C28 3C098003 */ lui $t1, %hi(D_8002A7D4) +/* 03D75C 7F008C2C 2529A7D4 */ addiu $t1, %lo(D_8002A7D4) # addiu $t1, $t1, -0x582c +/* 03D760 7F008C30 AC620004 */ sw $v0, 4($v1) +/* 03D764 7F008C34 91240000 */ lbu $a0, ($t1) +/* 03D768 7F008C38 3C088003 */ lui $t0, %hi(intro_eye_counter) +/* 03D76C 7F008C3C 2508A8A0 */ addiu $t0, %lo(intro_eye_counter) # addiu $t0, $t0, -0x5760 +/* 03D770 7F008C40 50800005 */ beql $a0, $zero, .L7F008C58 +/* 03D774 7F008C44 8D0B0000 */ lw $t3, ($t0) +/* 03D778 7F008C48 24010001 */ li $at, 1 +/* 03D77C 7F008C4C 5481005C */ bnel $a0, $at, .L7F008DC0 +/* 03D780 7F008C50 8FBF0024 */ lw $ra, 0x24($sp) +/* 03D784 7F008C54 8D0B0000 */ lw $t3, ($t0) +.L7F008C58: +/* 03D788 7F008C58 240A00FF */ li $t2, 255 +/* 03D78C 7F008C5C 24050046 */ li $a1, 70 +/* 03D790 7F008C60 016A0019 */ multu $t3, $t2 +/* 03D794 7F008C64 00002012 */ mflo $a0 +/* 03D798 7F008C68 00000000 */ nop +/* 03D79C 7F008C6C 00000000 */ nop +/* 03D7A0 7F008C70 0085001A */ div $zero, $a0, $a1 +/* 03D7A4 7F008C74 14A00002 */ bnez $a1, .L7F008C80 +/* 03D7A8 7F008C78 00000000 */ nop +/* 03D7AC 7F008C7C 0007000D */ break 7 +.L7F008C80: +/* 03D7B0 7F008C80 2401FFFF */ li $at, -1 +/* 03D7B4 7F008C84 14A10004 */ bne $a1, $at, .L7F008C98 +/* 03D7B8 7F008C88 3C018000 */ lui $at, 0x8000 +/* 03D7BC 7F008C8C 14810002 */ bne $a0, $at, .L7F008C98 +/* 03D7C0 7F008C90 00000000 */ nop +/* 03D7C4 7F008C94 0006000D */ break 6 +.L7F008C98: +/* 03D7C8 7F008C98 00001812 */ mflo $v1 +/* 03D7CC 7F008C9C 28610100 */ slti $at, $v1, 0x100 +/* 03D7D0 7F008CA0 14200002 */ bnez $at, .L7F008CAC +/* 03D7D4 7F008CA4 00000000 */ nop +/* 03D7D8 7F008CA8 01401825 */ move $v1, $t2 +.L7F008CAC: +/* 03D7DC 7F008CAC 04610002 */ bgez $v1, .L7F008CB8 +/* 03D7E0 7F008CB0 3C01FFFF */ lui $at, (0xFFFF60A0 >> 16) # lui $at, 0xffff +/* 03D7E4 7F008CB4 00001825 */ move $v1, $zero +.L7F008CB8: +/* 03D7E8 7F008CB8 342160A0 */ ori $at, (0xFFFF60A0 & 0xFFFF) # ori $at, $at, 0x60a0 +/* 03D7EC 7F008CBC 00816021 */ addu $t4, $a0, $at +/* 03D7F0 7F008CC0 0185001A */ div $zero, $t4, $a1 +/* 03D7F4 7F008CC4 14A00002 */ bnez $a1, .L7F008CD0 +/* 03D7F8 7F008CC8 00000000 */ nop +/* 03D7FC 7F008CCC 0007000D */ break 7 +.L7F008CD0: +/* 03D800 7F008CD0 2401FFFF */ li $at, -1 +/* 03D804 7F008CD4 14A10004 */ bne $a1, $at, .L7F008CE8 +/* 03D808 7F008CD8 3C018000 */ lui $at, 0x8000 +/* 03D80C 7F008CDC 15810002 */ bne $t4, $at, .L7F008CE8 +/* 03D810 7F008CE0 00000000 */ nop +/* 03D814 7F008CE4 0006000D */ break 6 +.L7F008CE8: +/* 03D818 7F008CE8 00006812 */ mflo $t5 +/* 03D81C 7F008CEC 014D1023 */ subu $v0, $t2, $t5 +/* 03D820 7F008CF0 28410100 */ slti $at, $v0, 0x100 +/* 03D824 7F008CF4 14200002 */ bnez $at, .L7F008D00 +/* 03D828 7F008CF8 00000000 */ nop +/* 03D82C 7F008CFC 01401025 */ move $v0, $t2 +.L7F008D00: +/* 03D830 7F008D00 04410002 */ bgez $v0, .L7F008D0C +/* 03D834 7F008D04 00000000 */ nop +/* 03D838 7F008D08 00001025 */ move $v0, $zero +.L7F008D0C: +/* 03D83C 7F008D0C 00620019 */ multu $v1, $v0 +/* 03D840 7F008D10 3C018007 */ lui $at, %hi(x) +/* 03D844 7F008D14 C4249574 */ lwc1 $f4, %lo(x)($at) +/* 03D848 7F008D18 02002025 */ move $a0, $s0 +/* 03D84C 7F008D1C 24050193 */ li $a1, 403 +/* 03D850 7F008D20 4600218D */ trunc.w.s $f6, $f4 +/* 03D854 7F008D24 240601E8 */ li $a2, 488 +/* 03D858 7F008D28 44073000 */ mfc1 $a3, $f6 +/* 03D85C 7F008D2C 00007012 */ mflo $t6 +/* 03D860 7F008D30 00000000 */ nop +/* 03D864 7F008D34 00000000 */ nop +/* 03D868 7F008D38 01CA001A */ div $zero, $t6, $t2 +/* 03D86C 7F008D3C 0000C012 */ mflo $t8 +/* 03D870 7F008D40 AFB80010 */ sw $t8, 0x10($sp) +/* 03D874 7F008D44 15400002 */ bnez $t2, .L7F008D50 +/* 03D878 7F008D48 00000000 */ nop +/* 03D87C 7F008D4C 0007000D */ break 7 +.L7F008D50: +/* 03D880 7F008D50 2401FFFF */ li $at, -1 +/* 03D884 7F008D54 15410004 */ bne $t2, $at, .L7F008D68 +/* 03D888 7F008D58 3C018000 */ lui $at, 0x8000 +/* 03D88C 7F008D5C 15C10002 */ bne $t6, $at, .L7F008D68 +/* 03D890 7F008D60 00000000 */ nop +/* 03D894 7F008D64 0006000D */ break 6 +.L7F008D68: +/* 03D898 7F008D68 0FC02130 */ jal load_display_rare_logo +/* 03D89C 7F008D6C 00000000 */ nop +/* 03D8A0 7F008D70 3C088003 */ lui $t0, %hi(intro_eye_counter) +/* 03D8A4 7F008D74 2508A8A0 */ addiu $t0, %lo(intro_eye_counter) # addiu $t0, $t0, -0x5760 +/* 03D8A8 7F008D78 8D030000 */ lw $v1, ($t0) +/* 03D8AC 7F008D7C 3C098003 */ lui $t1, %hi(D_8002A7D4) +/* 03D8B0 7F008D80 2529A7D4 */ addiu $t1, %lo(D_8002A7D4) # addiu $t1, $t1, -0x582c +/* 03D8B4 7F008D84 28640104 */ slti $a0, $v1, 0x104 +/* 03D8B8 7F008D88 24790001 */ addiu $t9, $v1, 1 +/* 03D8BC 7F008D8C 00408025 */ move $s0, $v0 +/* 03D8C0 7F008D90 1480000A */ bnez $a0, .L7F008DBC +/* 03D8C4 7F008D94 AD190000 */ sw $t9, ($t0) +/* 03D8C8 7F008D98 2B210122 */ slti $at, $t9, 0x122 +/* 03D8CC 7F008D9C 54200008 */ bnezl $at, .L7F008DC0 +/* 03D8D0 7F008DA0 8FBF0024 */ lw $ra, 0x24($sp) +/* 03D8D4 7F008DA4 912C0000 */ lbu $t4, ($t1) +/* 03D8D8 7F008DA8 AD000000 */ sw $zero, ($t0) +/* 03D8DC 7F008DAC 258F0001 */ addiu $t7, $t4, 1 +/* 03D8E0 7F008DB0 A12F0000 */ sb $t7, ($t1) +/* 03D8E4 7F008DB4 25EE0001 */ addiu $t6, $t7, 1 +/* 03D8E8 7F008DB8 A12E0000 */ sb $t6, ($t1) +.L7F008DBC: +/* 03D8EC 7F008DBC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F008DC0: +/* 03D8F0 7F008DC0 02001025 */ move $v0, $s0 +/* 03D8F4 7F008DC4 8FB00020 */ lw $s0, 0x20($sp) +/* 03D8F8 7F008DC8 03E00008 */ jr $ra +/* 03D8FC 7F008DCC 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +s32 sub_GAME_7F008DD0(void) +{ + return (D_8002A7D4 == 2); +} + + + + +#ifdef NONMATCHING +void sub_GAME_7F008DE4(void *arg0, void *arg1) +{ + + dword_CODE_bss_8006958C = (s32) *arg0; + *arg1 = (s32) (*arg1 + -0x40400); + *arg0 = *arg0 + 0x40400; + + dword_CODE_bss_80069588 = arg0; + romCopy(arg0, &unknown2, (((&unknown2_end - &unknown2) + 0x3F) | 0x3F) ^ 0x3F); + sub_GAME_7F01B0E0(dword_CODE_bss_80069588, dword_CODE_bss_8006958C); +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F008DE4 +/* 03D914 7F008DE4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03D918 7F008DE8 AFBF0014 */ sw $ra, 0x14($sp) +/* 03D91C 7F008DEC AFA5001C */ sw $a1, 0x1c($sp) +/* 03D920 7F008DF0 8C8E0000 */ lw $t6, ($a0) +/* 03D924 7F008DF4 3C018007 */ lui $at, %hi(dword_CODE_bss_8006958C) +/* 03D928 7F008DF8 3C03002A */ lui $v1, %hi(unknown2) # $v1, 0x2a +/* 03D92C 7F008DFC AC2E958C */ sw $t6, %lo(dword_CODE_bss_8006958C)($at) +/* 03D930 7F008E00 8CB80000 */ lw $t8, ($a1) +/* 03D934 7F008E04 3C01FFFB */ lui $at, (0xFFFBFC00 >> 16) # lui $at, 0xfffb +/* 03D938 7F008E08 3421FC00 */ ori $at, (0xFFFBFC00 & 0xFFFF) # ori $at, $at, 0xfc00 +/* 03D93C 7F008E0C 0301C821 */ addu $t9, $t8, $at +/* 03D940 7F008E10 ACB90000 */ sw $t9, ($a1) +/* 03D944 7F008E14 8C880000 */ lw $t0, ($a0) +/* 03D948 7F008E18 3C0B002C */ lui $t3, %hi(_ramromDam1SegmentRomStart) # $t3, 0x2c +/* 03D94C 7F008E1C 24634D50 */ addiu $v1, %lo(unknown2) # addiu $v1, $v1, 0x4d50 +/* 03D950 7F008E20 3C010004 */ lui $at, (0x00040400 >> 16) # lui $at, 4 +/* 03D954 7F008E24 256BF2D0 */ addiu $t3, %lo(_ramromDam1SegmentRomStart) # addiu $t3, $t3, -0xd30 +/* 03D958 7F008E28 34210400 */ ori $at, (0x00040400 & 0xFFFF) # ori $at, $at, 0x400 +/* 03D95C 7F008E2C 01633023 */ subu $a2, $t3, $v1 +/* 03D960 7F008E30 3C028007 */ lui $v0, %hi(dword_CODE_bss_80069588) +/* 03D964 7F008E34 24C6003F */ addiu $a2, $a2, 0x3f +/* 03D968 7F008E38 01014821 */ addu $t1, $t0, $at +/* 03D96C 7F008E3C 24429588 */ addiu $v0, %lo(dword_CODE_bss_80069588) # addiu $v0, $v0, -0x6a78 +/* 03D970 7F008E40 AC890000 */ sw $t1, ($a0) +/* 03D974 7F008E44 34CC003F */ ori $t4, $a2, 0x3f +/* 03D978 7F008E48 AC490000 */ sw $t1, ($v0) +/* 03D97C 7F008E4C 3986003F */ xori $a2, $t4, 0x3f +/* 03D980 7F008E50 01202025 */ move $a0, $t1 +/* 03D984 7F008E54 0C001707 */ jal romCopy +/* 03D988 7F008E58 00602825 */ move $a1, $v1 +/* 03D98C 7F008E5C 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069588) +/* 03D990 7F008E60 3C058007 */ lui $a1, %hi(dword_CODE_bss_8006958C) +/* 03D994 7F008E64 8CA5958C */ lw $a1, %lo(dword_CODE_bss_8006958C)($a1) +/* 03D998 7F008E68 0FC06C38 */ jal sub_GAME_7F01B0E0 +/* 03D99C 7F008E6C 8C849588 */ lw $a0, %lo(dword_CODE_bss_80069588)($a0) +/* 03D9A0 7F008E70 8FBF0014 */ lw $ra, 0x14($sp) +/* 03D9A4 7F008E74 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03D9A8 7F008E78 03E00008 */ jr $ra +/* 03D9AC 7F008E7C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F008E80(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F008E80 +/* 03D9B0 7F008E80 240E0002 */ li $t6, 2 +/* 03D9B4 7F008E84 3C018003 */ lui $at, %hi(D_8002A7D4) +/* 03D9B8 7F008E88 A02EA7D4 */ sb $t6, %lo(D_8002A7D4)($at) +/* 03D9BC 7F008E8C 3C014470 */ li $at, 0x44700000 # 960.000000 +/* 03D9C0 7F008E90 44812000 */ mtc1 $at, $f4 +/* 03D9C4 7F008E94 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 03D9C8 7F008E98 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03D9CC 7F008E9C 44813000 */ mtc1 $at, $f6 +/* 03D9D0 7F008EA0 44800000 */ mtc1 $zero, $f0 +/* 03D9D4 7F008EA4 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 03D9D8 7F008EA8 44814000 */ mtc1 $at, $f8 +/* 03D9DC 7F008EAC 3C014380 */ li $at, 0x43800000 # 256.000000 +/* 03D9E0 7F008EB0 44815000 */ mtc1 $at, $f10 +/* 03D9E4 7F008EB4 AFA40060 */ sw $a0, 0x60($sp) +/* 03D9E8 7F008EB8 AFA50064 */ sw $a1, 0x64($sp) +/* 03D9EC 7F008EBC AFBF002C */ sw $ra, 0x2c($sp) +/* 03D9F0 7F008EC0 3C048007 */ lui $a0, %hi(matrix_buffer_gunbarrel_0) +/* 03D9F4 7F008EC4 44050000 */ mfc1 $a1, $f0 +/* 03D9F8 7F008EC8 44070000 */ mfc1 $a3, $f0 +/* 03D9FC 7F008ECC AFB10028 */ sw $s1, 0x28($sp) +/* 03DA00 7F008ED0 AFB00024 */ sw $s0, 0x24($sp) +/* 03DA04 7F008ED4 8C84955C */ lw $a0, %lo(matrix_buffer_gunbarrel_0)($a0) +/* 03DA08 7F008ED8 3C0644A0 */ lui $a2, 0x44a0 +/* 03DA0C 7F008EDC E7A40010 */ swc1 $f4, 0x10($sp) +/* 03DA10 7F008EE0 E7A60014 */ swc1 $f6, 0x14($sp) +/* 03DA14 7F008EE4 E7A80018 */ swc1 $f8, 0x18($sp) +/* 03DA18 7F008EE8 0C005AF1 */ jal guOrtho +/* 03DA1C 7F008EEC E7AA001C */ swc1 $f10, 0x1c($sp) +/* 03DA20 7F008EF0 3C0143F1 */ li $at, 0x43F10000 # 482.000000 +/* 03DA24 7F008EF4 44810000 */ mtc1 $at, $f0 +/* 03DA28 7F008EF8 3C01C1F0 */ li $at, 0xC1F00000 # -30.000000 +/* 03DA2C 7F008EFC 44818000 */ mtc1 $at, $f16 +/* 03DA30 7F008F00 3C018007 */ lui $at, %hi(x) +/* 03DA34 7F008F04 8FA20060 */ lw $v0, 0x60($sp) +/* 03DA38 7F008F08 E4309574 */ swc1 $f16, %lo(x)($at) +/* 03DA3C 7F008F0C 3C018007 */ lui $at, %hi(y) +/* 03DA40 7F008F10 E4209578 */ swc1 $f0, %lo(y)($at) +/* 03DA44 7F008F14 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 03DA48 7F008F18 44819000 */ mtc1 $at, $f18 +/* 03DA4C 7F008F1C 3C018007 */ lui $at, %hi(dword_CODE_bss_8006957C) +/* 03DA50 7F008F20 8FB80064 */ lw $t8, 0x64($sp) +/* 03DA54 7F008F24 E432957C */ swc1 $f18, %lo(dword_CODE_bss_8006957C)($at) +/* 03DA58 7F008F28 3C018007 */ lui $at, %hi(dword_CODE_bss_80069580) +/* 03DA5C 7F008F2C E4209580 */ swc1 $f0, %lo(dword_CODE_bss_80069580)($at) +/* 03DA60 7F008F30 3C108007 */ lui $s0, %hi(dword_CODE_bss_80069550) +/* 03DA64 7F008F34 3C018007 */ lui $at, %hi(word_CODE_bss_80069584) +/* 03DA68 7F008F38 240F0042 */ li $t7, 66 +/* 03DA6C 7F008F3C 26109550 */ addiu $s0, %lo(dword_CODE_bss_80069550) # addiu $s0, $s0, -0x6ab0 +/* 03DA70 7F008F40 A42F9584 */ sh $t7, %lo(word_CODE_bss_80069584)($at) +/* 03DA74 7F008F44 AE020000 */ sw $v0, ($s0) +/* 03DA78 7F008F48 24420200 */ addiu $v0, $v0, 0x200 +/* 03DA7C 7F008F4C 2719FE00 */ addiu $t9, $t8, -0x200 +/* 03DA80 7F008F50 AFB90064 */ sw $t9, 0x64($sp) +/* 03DA84 7F008F54 AFA20060 */ sw $v0, 0x60($sp) +/* 03DA88 7F008F58 8E040000 */ lw $a0, ($s0) +/* 03DA8C 7F008F5C 0FC06EB8 */ jal sub_GAME_7F01BAE0 +/* 03DA90 7F008F60 2405001E */ li $a1, 30 +/* 03DA94 7F008F64 8FA30060 */ lw $v1, 0x60($sp) +/* 03DA98 7F008F68 8FA80064 */ lw $t0, 0x64($sp) +/* 03DA9C 7F008F6C 3C028007 */ lui $v0, %hi(dword_CODE_bss_80069554) +/* 03DAA0 7F008F70 24429554 */ addiu $v0, %lo(dword_CODE_bss_80069554) # addiu $v0, $v0, -0x6aac +/* 03DAA4 7F008F74 8E050000 */ lw $a1, ($s0) +/* 03DAA8 7F008F78 AC430000 */ sw $v1, ($v0) +/* 03DAAC 7F008F7C 3C018000 */ lui $at, 0x8000 +/* 03DAB0 7F008F80 24630100 */ addiu $v1, $v1, 0x100 +/* 03DAB4 7F008F84 2509FF00 */ addiu $t1, $t0, -0x100 +/* 03DAB8 7F008F88 AFA90064 */ sw $t1, 0x64($sp) +/* 03DABC 7F008F8C AFA30060 */ sw $v1, 0x60($sp) +/* 03DAC0 7F008F90 8C440000 */ lw $a0, ($v0) +/* 03DAC4 7F008F94 2406001E */ li $a2, 30 +/* 03DAC8 7F008F98 0FC06FFE */ jal sub_GAME_7F01BFF8 +/* 03DACC 7F008F9C 00A12821 */ addu $a1, $a1, $at +/* 03DAD0 7F008FA0 27A40060 */ addiu $a0, $sp, 0x60 +/* 03DAD4 7F008FA4 0FC02379 */ jal sub_GAME_7F008DE4 +/* 03DAD8 7F008FA8 27A50064 */ addiu $a1, $sp, 0x64 +/* 03DADC 7F008FAC 3C0B8003 */ lui $t3, %hi(D_8002A8A8) +/* 03DAE0 7F008FB0 256BA8A8 */ addiu $t3, %lo(D_8002A8A8) # addiu $t3, $t3, -0x5758 +/* 03DAE4 7F008FB4 8D610000 */ lw $at, ($t3) +/* 03DAE8 7F008FB8 27AA0050 */ addiu $t2, $sp, 0x50 +/* 03DAEC 7F008FBC 8D6E0004 */ lw $t6, 4($t3) +/* 03DAF0 7F008FC0 AD410000 */ sw $at, ($t2) +/* 03DAF4 7F008FC4 8D610008 */ lw $at, 8($t3) +/* 03DAF8 7F008FC8 3C110001 */ lui $s1, (0x00012C00 >> 16) # lui $s1, 1 +/* 03DAFC 7F008FCC 36312C00 */ ori $s1, (0x00012C00 & 0xFFFF) # ori $s1, $s1, 0x2c00 +/* 03DB00 7F008FD0 AD4E0004 */ sw $t6, 4($t2) +/* 03DB04 7F008FD4 AD410008 */ sw $at, 8($t2) +/* 03DB08 7F008FD8 8FA50060 */ lw $a1, 0x60($sp) +/* 03DB0C 7F008FDC 02203025 */ move $a2, $s1 +/* 03DB10 7F008FE0 0FC32EBD */ jal sub_GAME_7F0CBAF4 +/* 03DB14 7F008FE4 27A40040 */ addiu $a0, $sp, 0x40 +/* 03DB18 7F008FE8 8FA60060 */ lw $a2, 0x60($sp) +/* 03DB1C 7F008FEC 8FA70064 */ lw $a3, 0x64($sp) +/* 03DB20 7F008FF0 3C108004 */ lui $s0, %hi(c_item_entries) +/* 03DB24 7F008FF4 2610DE10 */ addiu $s0, %lo(c_item_entries) # addiu $s0, $s0, -0x21f0 +/* 03DB28 7F008FF8 27AF0040 */ addiu $t7, $sp, 0x40 +/* 03DB2C 7F008FFC 00D13021 */ addu $a2, $a2, $s1 +/* 03DB30 7F009000 00F13823 */ subu $a3, $a3, $s1 +/* 03DB34 7F009004 AFA70064 */ sw $a3, 0x64($sp) +/* 03DB38 7F009008 AFA60060 */ sw $a2, 0x60($sp) +/* 03DB3C 7F00900C AFAF0010 */ sw $t7, 0x10($sp) +/* 03DB40 7F009010 8E040064 */ lw $a0, 0x64($s0) +/* 03DB44 7F009014 0FC1D929 */ jal load_object_fill_header +/* 03DB48 7F009018 8E050068 */ lw $a1, 0x68($s0) +/* 03DB4C 7F00901C 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 03DB50 7F009020 8E040068 */ lw $a0, 0x68($s0) +/* 03DB54 7F009024 2443003F */ addiu $v1, $v0, 0x3f +/* 03DB58 7F009028 8FA60060 */ lw $a2, 0x60($sp) +/* 03DB5C 7F00902C 8FA70064 */ lw $a3, 0x64($sp) +/* 03DB60 7F009030 3478003F */ ori $t8, $v1, 0x3f +/* 03DB64 7F009034 3B19003F */ xori $t9, $t8, 0x3f +/* 03DB68 7F009038 27A80040 */ addiu $t0, $sp, 0x40 +/* 03DB6C 7F00903C 00D93021 */ addu $a2, $a2, $t9 +/* 03DB70 7F009040 00F93823 */ subu $a3, $a3, $t9 +/* 03DB74 7F009044 AFA70064 */ sw $a3, 0x64($sp) +/* 03DB78 7F009048 AFA60060 */ sw $a2, 0x60($sp) +/* 03DB7C 7F00904C AFA80010 */ sw $t0, 0x10($sp) +/* 03DB80 7F009050 8E040618 */ lw $a0, 0x618($s0) +/* 03DB84 7F009054 0FC1D929 */ jal load_object_fill_header +/* 03DB88 7F009058 8E05061C */ lw $a1, 0x61c($s0) +/* 03DB8C 7F00905C 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 03DB90 7F009060 8E04061C */ lw $a0, 0x61c($s0) +/* 03DB94 7F009064 2443003F */ addiu $v1, $v0, 0x3f +/* 03DB98 7F009068 8FAC0064 */ lw $t4, 0x64($sp) +/* 03DB9C 7F00906C 8FAB0060 */ lw $t3, 0x60($sp) +/* 03DBA0 7F009070 3469003F */ ori $t1, $v1, 0x3f +/* 03DBA4 7F009074 392D003F */ xori $t5, $t1, 0x3f +/* 03DBA8 7F009078 018D5023 */ subu $t2, $t4, $t5 +/* 03DBAC 7F00907C 016D7021 */ addu $t6, $t3, $t5 +/* 03DBB0 7F009080 AFAA0064 */ sw $t2, 0x64($sp) +/* 03DBB4 7F009084 AFAE0060 */ sw $t6, 0x60($sp) +/* 03DBB8 7F009088 24040005 */ li $a0, 5 +/* 03DBBC 7F00908C 2405004E */ li $a1, 78 +/* 03DBC0 7F009090 8E060064 */ lw $a2, 0x64($s0) +/* 03DBC4 7F009094 8E070618 */ lw $a3, 0x618($s0) +/* 03DBC8 7F009098 0FC08D2A */ jal sub_GAME_7F0234A8 +/* 03DBCC 7F00909C AFA00010 */ sw $zero, 0x10($sp) +/* 03DBD0 7F0090A0 3C118003 */ lui $s1, %hi(D_8002A7F4) +/* 03DBD4 7F0090A4 2631A7F4 */ addiu $s1, %lo(D_8002A7F4) # addiu $s1, $s1, -0x580c +/* 03DBD8 7F0090A8 3C053E40 */ lui $a1, (0x3E404CEC >> 16) # lui $a1, 0x3e40 +/* 03DBDC 7F0090AC AE220000 */ sw $v0, ($s1) +/* 03DBE0 7F0090B0 34A54CEC */ ori $a1, (0x3E404CEC & 0xFFFF) # ori $a1, $a1, 0x4cec +/* 03DBE4 7F0090B4 0FC1B39E */ jal set_obj_instance_controller_scale +/* 03DBE8 7F0090B8 00402025 */ move $a0, $v0 +/* 03DBEC 7F0090BC 8E240000 */ lw $a0, ($s1) +/* 03DBF0 7F0090C0 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 03DBF4 7F0090C4 3C053F80 */ lui $a1, 0x3f80 +/* 03DBF8 7F0090C8 8E240000 */ lw $a0, ($s1) +/* 03DBFC 7F0090CC 0FC1B303 */ jal setsuboffset +/* 03DC00 7F0090D0 27A50050 */ addiu $a1, $sp, 0x50 +/* 03DC04 7F0090D4 8E240000 */ lw $a0, ($s1) +/* 03DC08 7F0090D8 0FC1B34F */ jal setsubroty +/* 03DC0C 7F0090DC 24050000 */ li $a1, 0 +/* 03DC10 7F0090E0 8E240000 */ lw $a0, ($s1) +/* 03DC14 7F0090E4 3C053F00 */ lui $a1, 0x3f00 +/* 03DC18 7F0090E8 0FC1BFC6 */ jal sub_GAME_7F06FF18 +/* 03DC1C 7F0090EC 24060000 */ li $a2, 0 +/* 03DC20 7F0090F0 3C0F8007 */ lui $t7, %hi(ptr_animation_table) +/* 03DC24 7F0090F4 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) +/* 03DC28 7F0090F8 3C180000 */ lui $t8, 0 +/* 03DC2C 7F0090FC 27184144 */ addiu $t8, $t8, 0x4144 +/* 03DC30 7F009100 01F82821 */ addu $a1, $t7, $t8 +/* 03DC34 7F009104 94A30004 */ lhu $v1, 4($a1) +/* 03DC38 7F009108 2462FFBC */ addiu $v0, $v1, -0x44 +/* 03DC3C 7F00910C 04430005 */ bgezl $v0, .L7F009124 +/* 03DC40 7F009110 44822000 */ mtc1 $v0, $f4 +/* 03DC44 7F009114 00431021 */ addu $v0, $v0, $v1 +.L7F009118: +/* 03DC48 7F009118 0442FFFF */ bltzl $v0, .L7F009118 +/* 03DC4C 7F00911C 00431021 */ addu $v0, $v0, $v1 +/* 03DC50 7F009120 44822000 */ mtc1 $v0, $f4 +.L7F009124: +/* 03DC54 7F009124 3C018005 */ lui $at, %hi(D_8004F2DC) +/* 03DC58 7F009128 C426F2DC */ lwc1 $f6, %lo(D_8004F2DC)($at) +/* 03DC5C 7F00912C 46802120 */ cvt.s.w $f4, $f4 +/* 03DC60 7F009130 44804000 */ mtc1 $zero, $f8 +/* 03DC64 7F009134 8E240000 */ lw $a0, ($s1) +/* 03DC68 7F009138 00003025 */ move $a2, $zero +/* 03DC6C 7F00913C E7A60010 */ swc1 $f6, 0x10($sp) +/* 03DC70 7F009140 E7A80014 */ swc1 $f8, 0x14($sp) +/* 03DC74 7F009144 44072000 */ mfc1 $a3, $f4 +/* 03DC78 7F009148 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 03DC7C 7F00914C 00000000 */ nop +/* 03DC80 7F009150 3C108004 */ lui $s0, %hi(PitemZ_entries) +/* 03DC84 7F009154 2610A228 */ addiu $s0, %lo(PitemZ_entries) # addiu $s0, $s0, -0x5dd8 +/* 03DC88 7F009158 27B90040 */ addiu $t9, $sp, 0x40 +/* 03DC8C 7F00915C AFB90010 */ sw $t9, 0x10($sp) +/* 03DC90 7F009160 8E0408F4 */ lw $a0, 0x8f4($s0) +/* 03DC94 7F009164 8E0508F8 */ lw $a1, 0x8f8($s0) +/* 03DC98 7F009168 8FA60060 */ lw $a2, 0x60($sp) +/* 03DC9C 7F00916C 0FC1D929 */ jal load_object_fill_header +/* 03DCA0 7F009170 8FA70064 */ lw $a3, 0x64($sp) +/* 03DCA4 7F009174 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 03DCA8 7F009178 8E0408F8 */ lw $a0, 0x8f8($s0) +/* 03DCAC 7F00917C 2443003F */ addiu $v1, $v0, 0x3f +/* 03DCB0 7F009180 8FAD0064 */ lw $t5, 0x64($sp) +/* 03DCB4 7F009184 8FAA0060 */ lw $t2, 0x60($sp) +/* 03DCB8 7F009188 3468003F */ ori $t0, $v1, 0x3f +/* 03DCBC 7F00918C 3909003F */ xori $t1, $t0, 0x3f +/* 03DCC0 7F009190 01A96023 */ subu $t4, $t5, $t1 +/* 03DCC4 7F009194 01495821 */ addu $t3, $t2, $t1 +/* 03DCC8 7F009198 AFAC0064 */ sw $t4, 0x64($sp) +/* 03DCCC 7F00919C AFAB0060 */ sw $t3, 0x60($sp) +/* 03DCD0 7F0091A0 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 03DCD4 7F0091A4 8E0408F4 */ lw $a0, 0x8f4($s0) +/* 03DCD8 7F0091A8 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 03DCDC 7F0091AC 8E0408F4 */ lw $a0, 0x8f4($s0) +/* 03DCE0 7F0091B0 3C108003 */ lui $s0, %hi(D_8002A7F8) +/* 03DCE4 7F0091B4 2610A7F8 */ addiu $s0, %lo(D_8002A7F8) # addiu $s0, $s0, -0x5808 +/* 03DCE8 7F0091B8 3C053E40 */ lui $a1, (0x3E404CEC >> 16) # lui $a1, 0x3e40 +/* 03DCEC 7F0091BC AE020000 */ sw $v0, ($s0) +/* 03DCF0 7F0091C0 34A54CEC */ ori $a1, (0x3E404CEC & 0xFFFF) # ori $a1, $a1, 0x4cec +/* 03DCF4 7F0091C4 0FC1B39E */ jal set_obj_instance_controller_scale +/* 03DCF8 7F0091C8 00402025 */ move $a0, $v0 +/* 03DCFC 7F0091CC 8E2E0000 */ lw $t6, ($s1) +/* 03DD00 7F0091D0 8E0F0000 */ lw $t7, ($s0) +/* 03DD04 7F0091D4 3C018007 */ lui $at, %hi(dword_CODE_bss_80069594) +/* 03DD08 7F0091D8 ADEE0018 */ sw $t6, 0x18($t7) +/* 03DD0C 7F0091DC 8E380000 */ lw $t8, ($s1) +/* 03DD10 7F0091E0 8E0D0000 */ lw $t5, ($s0) +/* 03DD14 7F0091E4 8F190008 */ lw $t9, 8($t8) +/* 03DD18 7F0091E8 8F280008 */ lw $t0, 8($t9) +/* 03DD1C 7F0091EC 8D09000C */ lw $t1, 0xc($t0) +/* 03DD20 7F0091F0 ADA9001C */ sw $t1, 0x1c($t5) +/* 03DD24 7F0091F4 8FBF002C */ lw $ra, 0x2c($sp) +/* 03DD28 7F0091F8 8FB10028 */ lw $s1, 0x28($sp) +/* 03DD2C 7F0091FC 8FB00024 */ lw $s0, 0x24($sp) +/* 03DD30 7F009200 AC209594 */ sw $zero, %lo(dword_CODE_bss_80069594)($at) +/* 03DD34 7F009204 03E00008 */ jr $ra +/* 03DD38 7F009208 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + +void sub_GAME_7F00920C(void) +{ + if (D_8002A7F4) { + set_aircraft_obj_inst_scale_to_zero(D_8002A7F4); + } + if (D_8002A7F8) { + set_obj_instance_scale_to_zero(D_8002A7F8); + } +} + + +#ifdef NONMATCHING +void sub_GAME_7F009254(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel jpt_8004F2E0 + .word .L7F0092A4 + .word .L7F009344 + .word .L7F009428 + .word .L7F00949C + .word .L7F009550 + .word .L7F009610 + .word .L7F0096D8 +glabel D_8004F2FC +.word 0x44adc000 +glabel D_8004F300 +.word 0x449f8000 +glabel D_8004F304 +.word 0x40ba2fbd +.text +glabel sub_GAME_7F009254 +/* 03DD84 7F009254 3C028003 */ lui $v0, %hi(D_8002A7D0) +/* 03DD88 7F009258 2442A7D0 */ addiu $v0, %lo(D_8002A7D0) # addiu $v0, $v0, -0x5830 +/* 03DD8C 7F00925C 8C4E0000 */ lw $t6, ($v0) +/* 03DD90 7F009260 240F0001 */ li $t7, 1 +/* 03DD94 7F009264 3C198003 */ lui $t9, %hi(D_8002A7D4) +/* 03DD98 7F009268 01EEC023 */ subu $t8, $t7, $t6 +/* 03DD9C 7F00926C AC580000 */ sw $t8, ($v0) +/* 03DDA0 7F009270 9339A7D4 */ lbu $t9, %lo(D_8002A7D4)($t9) +/* 03DDA4 7F009274 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03DDA8 7F009278 AFBF0014 */ sw $ra, 0x14($sp) +/* 03DDAC 7F00927C 2728FFFE */ addiu $t0, $t9, -2 +/* 03DDB0 7F009280 2D010007 */ sltiu $at, $t0, 7 +/* 03DDB4 7F009284 1020012A */ beqz $at, .L7F009730 +/* 03DDB8 7F009288 00802825 */ move $a1, $a0 +/* 03DDBC 7F00928C 00084080 */ sll $t0, $t0, 2 +/* 03DDC0 7F009290 3C018005 */ lui $at, %hi(jpt_8004F2E0) +/* 03DDC4 7F009294 00280821 */ addu $at, $at, $t0 +/* 03DDC8 7F009298 8C28F2E0 */ lw $t0, %lo(jpt_8004F2E0)($at) +/* 03DDCC 7F00929C 01000008 */ jr $t0 +/* 03DDD0 7F0092A0 00000000 */ nop +.L7F0092A4: +/* 03DDD4 7F0092A4 0FC01E90 */ jal something_with_gunbarrel_and_rareware_logo_matrix_manip +/* 03DDD8 7F0092A8 00A02025 */ move $a0, $a1 +/* 03DDDC 7F0092AC 3C078007 */ lui $a3, %hi(x) +/* 03DDE0 7F0092B0 24E79574 */ addiu $a3, %lo(x) # addiu $a3, $a3, -0x6a8c +/* 03DDE4 7F0092B4 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 03DDE8 7F0092B8 44813000 */ mtc1 $at, $f6 +/* 03DDEC 7F0092BC C4E40000 */ lwc1 $f4, ($a3) +/* 03DDF0 7F0092C0 3C038007 */ lui $v1, %hi(word_CODE_bss_80069584) +/* 03DDF4 7F0092C4 24639584 */ addiu $v1, %lo(word_CODE_bss_80069584) # addiu $v1, $v1, -0x6a7c +/* 03DDF8 7F0092C8 46062200 */ add.s $f8, $f4, $f6 +/* 03DDFC 7F0092CC 84640000 */ lh $a0, ($v1) +/* 03DE00 7F0092D0 00402825 */ move $a1, $v0 +/* 03DE04 7F0092D4 0481000A */ bgez $a0, .L7F009300 +/* 03DE08 7F0092D8 E4E80000 */ swc1 $f8, ($a3) +/* 03DE0C 7F0092DC 3C014140 */ li $at, 0x41400000 # 12.000000 +/* 03DE10 7F0092E0 44815000 */ mtc1 $at, $f10 +/* 03DE14 7F0092E4 C4E00000 */ lwc1 $f0, ($a3) +/* 03DE18 7F0092E8 240900C8 */ li $t1, 200 +/* 03DE1C 7F0092EC A4690000 */ sh $t1, ($v1) +/* 03DE20 7F0092F0 460A0401 */ sub.s $f16, $f0, $f10 +/* 03DE24 7F0092F4 3C018007 */ lui $at, %hi(dword_CODE_bss_8006957C) +/* 03DE28 7F0092F8 10000004 */ b .L7F00930C +/* 03DE2C 7F0092FC E430957C */ swc1 $f16, %lo(dword_CODE_bss_8006957C)($at) +.L7F009300: +/* 03DE30 7F009300 248AFFFA */ addiu $t2, $a0, -6 +/* 03DE34 7F009304 A46A0000 */ sh $t2, ($v1) +/* 03DE38 7F009308 C4E00000 */ lwc1 $f0, ($a3) +.L7F00930C: +/* 03DE3C 7F00930C 3C018005 */ lui $at, %hi(D_8004F2FC) +/* 03DE40 7F009310 C432F2FC */ lwc1 $f18, %lo(D_8004F2FC)($at) +/* 03DE44 7F009314 4600903C */ c.lt.s $f18, $f0 +/* 03DE48 7F009318 00000000 */ nop +/* 03DE4C 7F00931C 45000104 */ bc1f .L7F009730 +/* 03DE50 7F009320 3C0B8003 */ lui $t3, %hi(D_8002A7D4) +/* 03DE54 7F009324 916BA7D4 */ lbu $t3, %lo(D_8002A7D4)($t3) +/* 03DE58 7F009328 3C018003 */ lui $at, %hi(D_8002A7D4) +/* 03DE5C 7F00932C 256C0001 */ addiu $t4, $t3, 1 +/* 03DE60 7F009330 A02CA7D4 */ sb $t4, %lo(D_8002A7D4)($at) +/* 03DE64 7F009334 3C018005 */ lui $at, %hi(D_8004F300) +/* 03DE68 7F009338 C424F300 */ lwc1 $f4, %lo(D_8004F300)($at) +/* 03DE6C 7F00933C 100000FC */ b .L7F009730 +/* 03DE70 7F009340 E4E40000 */ swc1 $f4, ($a3) +.L7F009344: +/* 03DE74 7F009344 3C0F0100 */ lui $t7, 0x100 +/* 03DE78 7F009348 25EF0000 */ addiu $t7, $t7, 0 +/* 03DE7C 7F00934C 00A01025 */ move $v0, $a1 +/* 03DE80 7F009350 3C0D0600 */ lui $t5, 0x600 +/* 03DE84 7F009354 AC4D0000 */ sw $t5, ($v0) +/* 03DE88 7F009358 AC4F0004 */ sw $t7, 4($v0) +/* 03DE8C 7F00935C 0FC07034 */ jal insert_imageDL +/* 03DE90 7F009360 24A40008 */ addiu $a0, $a1, 8 +/* 03DE94 7F009364 0FC07034 */ jal insert_imageDL +/* 03DE98 7F009368 00402025 */ move $a0, $v0 +/* 03DE9C 7F00936C 0FC07034 */ jal insert_imageDL +/* 03DEA0 7F009370 00402025 */ move $a0, $v0 +/* 03DEA4 7F009374 0FC07034 */ jal insert_imageDL +/* 03DEA8 7F009378 00402025 */ move $a0, $v0 +/* 03DEAC 7F00937C 0FC07034 */ jal insert_imageDL +/* 03DEB0 7F009380 00402025 */ move $a0, $v0 +/* 03DEB4 7F009384 0FC01F63 */ jal insert_sniper_sight_eye_intro +/* 03DEB8 7F009388 00402025 */ move $a0, $v0 +/* 03DEBC 7F00938C 0FC01EE5 */ jal insert_sight_backdrop_eye_intro +/* 03DEC0 7F009390 00402025 */ move $a0, $v0 +/* 03DEC4 7F009394 3C078007 */ lui $a3, %hi(x) +/* 03DEC8 7F009398 24E79574 */ addiu $a3, %lo(x) # addiu $a3, $a3, -0x6a8c +/* 03DECC 7F00939C 3C014416 */ li $at, 0x44160000 # 600.000000 +/* 03DED0 7F0093A0 44813000 */ mtc1 $at, $f6 +/* 03DED4 7F0093A4 C4E00000 */ lwc1 $f0, ($a3) +/* 03DED8 7F0093A8 00402825 */ move $a1, $v0 +/* 03DEDC 7F0093AC 4606003C */ c.lt.s $f0, $f6 +/* 03DEE0 7F0093B0 00000000 */ nop +/* 03DEE4 7F0093B4 45000007 */ bc1f .L7F0093D4 +/* 03DEE8 7F0093B8 00000000 */ nop +/* 03DEEC 7F0093BC 0FC020B2 */ jal insert_bond_eye_intro +/* 03DEF0 7F0093C0 00402025 */ move $a0, $v0 +/* 03DEF4 7F0093C4 3C078007 */ lui $a3, %hi(x) +/* 03DEF8 7F0093C8 24E79574 */ addiu $a3, %lo(x) # addiu $a3, $a3, -0x6a8c +/* 03DEFC 7F0093CC C4E00000 */ lwc1 $f0, ($a3) +/* 03DF00 7F0093D0 00402825 */ move $a1, $v0 +.L7F0093D4: +/* 03DF04 7F0093D4 3C018005 */ lui $at, %hi(D_8004F304) +/* 03DF08 7F0093D8 C428F304 */ lwc1 $f8, %lo(D_8004F304)($at) +/* 03DF0C 7F0093DC 3C01C2A0 */ li $at, 0xC2A00000 # -80.000000 +/* 03DF10 7F0093E0 44818000 */ mtc1 $at, $f16 +/* 03DF14 7F0093E4 46080281 */ sub.s $f10, $f0, $f8 +/* 03DF18 7F0093E8 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03DF1C 7F0093EC 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03DF20 7F0093F0 3C0E8003 */ lui $t6, %hi(D_8002A7D4) +/* 03DF24 7F0093F4 E4EA0000 */ swc1 $f10, ($a3) +/* 03DF28 7F0093F8 C4F20000 */ lwc1 $f18, ($a3) +/* 03DF2C 7F0093FC 4610903E */ c.le.s $f18, $f16 +/* 03DF30 7F009400 00000000 */ nop +/* 03DF34 7F009404 450200CB */ bc1fl .L7F009734 +/* 03DF38 7F009408 8FBF0014 */ lw $ra, 0x14($sp) +/* 03DF3C 7F00940C 91CEA7D4 */ lbu $t6, %lo(D_8002A7D4)($t6) +/* 03DF40 7F009410 3C018003 */ lui $at, %hi(D_8002A7D4) +/* 03DF44 7F009414 24190014 */ li $t9, 20 +/* 03DF48 7F009418 25D80001 */ addiu $t8, $t6, 1 +/* 03DF4C 7F00941C A038A7D4 */ sb $t8, %lo(D_8002A7D4)($at) +/* 03DF50 7F009420 100000C3 */ b .L7F009730 +/* 03DF54 7F009424 ACD90000 */ sw $t9, ($a2) +.L7F009428: +/* 03DF58 7F009428 0FC01F63 */ jal insert_sniper_sight_eye_intro +/* 03DF5C 7F00942C 00A02025 */ move $a0, $a1 +/* 03DF60 7F009430 0FC01EE5 */ jal insert_sight_backdrop_eye_intro +/* 03DF64 7F009434 00402025 */ move $a0, $v0 +/* 03DF68 7F009438 0FC020B2 */ jal insert_bond_eye_intro +/* 03DF6C 7F00943C 00402025 */ move $a0, $v0 +/* 03DF70 7F009440 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03DF74 7F009444 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03DF78 7F009448 8CC80000 */ lw $t0, ($a2) +/* 03DF7C 7F00944C 00402825 */ move $a1, $v0 +/* 03DF80 7F009450 3C0B8003 */ lui $t3, %hi(D_8002A7D4) +/* 03DF84 7F009454 2509FFFF */ addiu $t1, $t0, -1 +/* 03DF88 7F009458 052100B5 */ bgez $t1, .L7F009730 +/* 03DF8C 7F00945C ACC90000 */ sw $t1, ($a2) +/* 03DF90 7F009460 916BA7D4 */ lbu $t3, %lo(D_8002A7D4)($t3) +/* 03DF94 7F009464 3C018003 */ lui $at, %hi(D_8002A7D4) +/* 03DF98 7F009468 00002025 */ move $a0, $zero +/* 03DF9C 7F00946C 256C0001 */ addiu $t4, $t3, 1 +/* 03DFA0 7F009470 A02CA7D4 */ sb $t4, %lo(D_8002A7D4)($at) +/* 03DFA4 7F009474 0FC070A1 */ jal die_blood_image_routine +/* 03DFA8 7F009478 AFA20018 */ sw $v0, 0x18($sp) +/* 03DFAC 7F00947C 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03DFB0 7F009480 3C018003 */ lui $at, %hi(intro_state_blood_animation) +/* 03DFB4 7F009484 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03DFB8 7F009488 AC20A8A4 */ sw $zero, %lo(intro_state_blood_animation)($at) +/* 03DFBC 7F00948C 240D0001 */ li $t5, 1 +/* 03DFC0 7F009490 8FA50018 */ lw $a1, 0x18($sp) +/* 03DFC4 7F009494 100000A6 */ b .L7F009730 +/* 03DFC8 7F009498 ACCD0000 */ sw $t5, ($a2) +.L7F00949C: +/* 03DFCC 7F00949C 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03DFD0 7F0094A0 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03DFD4 7F0094A4 8CCF0000 */ lw $t7, ($a2) +/* 03DFD8 7F0094A8 24040001 */ li $a0, 1 +/* 03DFDC 7F0094AC 25EEFFFF */ addiu $t6, $t7, -1 +/* 03DFE0 7F0094B0 15C0000A */ bnez $t6, .L7F0094DC +/* 03DFE4 7F0094B4 ACCE0000 */ sw $t6, ($a2) +/* 03DFE8 7F0094B8 0FC070A1 */ jal die_blood_image_routine +/* 03DFEC 7F0094BC AFA50018 */ sw $a1, 0x18($sp) +/* 03DFF0 7F0094C0 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03DFF4 7F0094C4 3C018003 */ lui $at, %hi(intro_state_blood_animation) +/* 03DFF8 7F0094C8 AC22A8A4 */ sw $v0, %lo(intro_state_blood_animation)($at) +/* 03DFFC 7F0094CC 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03E000 7F0094D0 24190002 */ li $t9, 2 +/* 03E004 7F0094D4 8FA50018 */ lw $a1, 0x18($sp) +/* 03E008 7F0094D8 ACD90000 */ sw $t9, ($a2) +.L7F0094DC: +/* 03E00C 7F0094DC 0FC01F63 */ jal insert_sniper_sight_eye_intro +/* 03E010 7F0094E0 00A02025 */ move $a0, $a1 +/* 03E014 7F0094E4 0FC01EE5 */ jal insert_sight_backdrop_eye_intro +/* 03E018 7F0094E8 00402025 */ move $a0, $v0 +/* 03E01C 7F0094EC 0FC020B2 */ jal insert_bond_eye_intro +/* 03E020 7F0094F0 00402025 */ move $a0, $v0 +/* 03E024 7F0094F4 0FC07100 */ jal sub_GAME_7F01C400 +/* 03E028 7F0094F8 00402025 */ move $a0, $v0 +/* 03E02C 7F0094FC 3C088003 */ lui $t0, %hi(intro_state_blood_animation) +/* 03E030 7F009500 8D08A8A4 */ lw $t0, %lo(intro_state_blood_animation)($t0) +/* 03E034 7F009504 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03E038 7F009508 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03E03C 7F00950C 11000088 */ beqz $t0, .L7F009730 +/* 03E040 7F009510 00402825 */ move $a1, $v0 +/* 03E044 7F009514 3C098003 */ lui $t1, %hi(D_8002A7D4) +/* 03E048 7F009518 9129A7D4 */ lbu $t1, %lo(D_8002A7D4)($t1) +/* 03E04C 7F00951C 3C078007 */ lui $a3, %hi(x) +/* 03E050 7F009520 3C018003 */ lui $at, %hi(D_8002A7D4) +/* 03E054 7F009524 252A0001 */ addiu $t2, $t1, 1 +/* 03E058 7F009528 24E79574 */ addiu $a3, %lo(x) # addiu $a3, $a3, -0x6a8c +/* 03E05C 7F00952C A02AA7D4 */ sb $t2, %lo(D_8002A7D4)($at) +/* 03E060 7F009530 C4E40000 */ lwc1 $f4, ($a3) +/* 03E064 7F009534 3C038007 */ lui $v1, %hi(word_CODE_bss_80069584) +/* 03E068 7F009538 24639584 */ addiu $v1, %lo(word_CODE_bss_80069584) # addiu $v1, $v1, -0x6a7c +/* 03E06C 7F00953C A4600000 */ sh $zero, ($v1) +/* 03E070 7F009540 3C018007 */ lui $at, %hi(dword_CODE_bss_8006957C) +/* 03E074 7F009544 E424957C */ swc1 $f4, %lo(dword_CODE_bss_8006957C)($at) +/* 03E078 7F009548 10000079 */ b .L7F009730 +/* 03E07C 7F00954C ACC00000 */ sw $zero, ($a2) +.L7F009550: +/* 03E080 7F009550 3C038007 */ lui $v1, %hi(word_CODE_bss_80069584) +/* 03E084 7F009554 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03E088 7F009558 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03E08C 7F00955C 24639584 */ addiu $v1, %lo(word_CODE_bss_80069584) # addiu $v1, $v1, -0x6a7c +/* 03E090 7F009560 846B0000 */ lh $t3, ($v1) +/* 03E094 7F009564 8CCD0000 */ lw $t5, ($a2) +/* 03E098 7F009568 AFA50018 */ sw $a1, 0x18($sp) +/* 03E09C 7F00956C 256C038E */ addiu $t4, $t3, 0x38e +/* 03E0A0 7F009570 25AF0001 */ addiu $t7, $t5, 1 +/* 03E0A4 7F009574 A46C0000 */ sh $t4, ($v1) +/* 03E0A8 7F009578 ACCF0000 */ sw $t7, ($a2) +/* 03E0AC 7F00957C 0C005B18 */ jal sins +/* 03E0B0 7F009580 3184FFFF */ andi $a0, $t4, 0xffff +/* 03E0B4 7F009584 44823000 */ mtc1 $v0, $f6 +/* 03E0B8 7F009588 3C014280 */ li $at, 0x42800000 # 64.000000 +/* 03E0BC 7F00958C 44815000 */ mtc1 $at, $f10 +/* 03E0C0 7F009590 46803220 */ cvt.s.w $f8, $f6 +/* 03E0C4 7F009594 3C014700 */ li $at, 0x47000000 # 32768.000000 +/* 03E0C8 7F009598 44819000 */ mtc1 $at, $f18 +/* 03E0CC 7F00959C 3C018007 */ lui $at, %hi(dword_CODE_bss_8006957C) +/* 03E0D0 7F0095A0 C426957C */ lwc1 $f6, %lo(dword_CODE_bss_8006957C)($at) +/* 03E0D4 7F0095A4 3C078007 */ lui $a3, %hi(x) +/* 03E0D8 7F0095A8 460A4402 */ mul.s $f16, $f8, $f10 +/* 03E0DC 7F0095AC 24E79574 */ addiu $a3, %lo(x) # addiu $a3, $a3, -0x6a8c +/* 03E0E0 7F0095B0 8FA40018 */ lw $a0, 0x18($sp) +/* 03E0E4 7F0095B4 46128103 */ div.s $f4, $f16, $f18 +/* 03E0E8 7F0095B8 46062200 */ add.s $f8, $f4, $f6 +/* 03E0EC 7F0095BC 0FC01F63 */ jal insert_sniper_sight_eye_intro +/* 03E0F0 7F0095C0 E4E80000 */ swc1 $f8, ($a3) +/* 03E0F4 7F0095C4 0FC01EE5 */ jal insert_sight_backdrop_eye_intro +/* 03E0F8 7F0095C8 00402025 */ move $a0, $v0 +/* 03E0FC 7F0095CC 0FC020B2 */ jal insert_bond_eye_intro +/* 03E100 7F0095D0 00402025 */ move $a0, $v0 +/* 03E104 7F0095D4 0FC07286 */ jal sub_GAME_7F01CA18 +/* 03E108 7F0095D8 00402025 */ move $a0, $v0 +/* 03E10C 7F0095DC 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03E110 7F0095E0 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03E114 7F0095E4 8CCE0000 */ lw $t6, ($a2) +/* 03E118 7F0095E8 00402825 */ move $a1, $v0 +/* 03E11C 7F0095EC 3C028003 */ lui $v0, %hi(D_8002A7D4) +/* 03E120 7F0095F0 29C1006C */ slti $at, $t6, 0x6c +/* 03E124 7F0095F4 1420004E */ bnez $at, .L7F009730 +/* 03E128 7F0095F8 2442A7D4 */ addiu $v0, %lo(D_8002A7D4) # addiu $v0, $v0, -0x582c +/* 03E12C 7F0095FC 90580000 */ lbu $t8, ($v0) +/* 03E130 7F009600 ACC00000 */ sw $zero, ($a2) +/* 03E134 7F009604 27190001 */ addiu $t9, $t8, 1 +/* 03E138 7F009608 10000049 */ b .L7F009730 +/* 03E13C 7F00960C A0590000 */ sb $t9, ($v0) +.L7F009610: +/* 03E140 7F009610 3C038007 */ lui $v1, %hi(word_CODE_bss_80069584) +/* 03E144 7F009614 24639584 */ addiu $v1, %lo(word_CODE_bss_80069584) # addiu $v1, $v1, -0x6a7c +/* 03E148 7F009618 84680000 */ lh $t0, ($v1) +/* 03E14C 7F00961C AFA50018 */ sw $a1, 0x18($sp) +/* 03E150 7F009620 2509038E */ addiu $t1, $t0, 0x38e +/* 03E154 7F009624 A4690000 */ sh $t1, ($v1) +/* 03E158 7F009628 0C005B18 */ jal sins +/* 03E15C 7F00962C 3124FFFF */ andi $a0, $t1, 0xffff +/* 03E160 7F009630 44825000 */ mtc1 $v0, $f10 +/* 03E164 7F009634 3C014280 */ li $at, 0x42800000 # 64.000000 +/* 03E168 7F009638 44819000 */ mtc1 $at, $f18 +/* 03E16C 7F00963C 46805420 */ cvt.s.w $f16, $f10 +/* 03E170 7F009640 3C014700 */ li $at, 0x47000000 # 32768.000000 +/* 03E174 7F009644 44813000 */ mtc1 $at, $f6 +/* 03E178 7F009648 3C018007 */ lui $at, %hi(dword_CODE_bss_8006957C) +/* 03E17C 7F00964C C42A957C */ lwc1 $f10, %lo(dword_CODE_bss_8006957C)($at) +/* 03E180 7F009650 3C078007 */ lui $a3, %hi(x) +/* 03E184 7F009654 46128102 */ mul.s $f4, $f16, $f18 +/* 03E188 7F009658 24E79574 */ addiu $a3, %lo(x) # addiu $a3, $a3, -0x6a8c +/* 03E18C 7F00965C 8FA40018 */ lw $a0, 0x18($sp) +/* 03E190 7F009660 46062203 */ div.s $f8, $f4, $f6 +/* 03E194 7F009664 460A4400 */ add.s $f16, $f8, $f10 +/* 03E198 7F009668 0FC01F63 */ jal insert_sniper_sight_eye_intro +/* 03E19C 7F00966C E4F00000 */ swc1 $f16, ($a3) +/* 03E1A0 7F009670 0FC01EE5 */ jal insert_sight_backdrop_eye_intro +/* 03E1A4 7F009674 00402025 */ move $a0, $v0 +/* 03E1A8 7F009678 0FC020B2 */ jal insert_bond_eye_intro +/* 03E1AC 7F00967C 00402025 */ move $a0, $v0 +/* 03E1B0 7F009680 0FC07286 */ jal sub_GAME_7F01CA18 +/* 03E1B4 7F009684 00402025 */ move $a0, $v0 +/* 03E1B8 7F009688 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03E1BC 7F00968C 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03E1C0 7F009690 8CCA0000 */ lw $t2, ($a2) +/* 03E1C4 7F009694 00402025 */ move $a0, $v0 +/* 03E1C8 7F009698 25450008 */ addiu $a1, $t2, 8 +/* 03E1CC 7F00969C 0FC01F9C */ jal sub_GAME_7F007E70 +/* 03E1D0 7F0096A0 ACC50000 */ sw $a1, ($a2) +/* 03E1D4 7F0096A4 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03E1D8 7F0096A8 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03E1DC 7F0096AC 8CCC0000 */ lw $t4, ($a2) +/* 03E1E0 7F0096B0 00402825 */ move $a1, $v0 +/* 03E1E4 7F0096B4 3C028003 */ lui $v0, %hi(D_8002A7D4) +/* 03E1E8 7F0096B8 298100F7 */ slti $at, $t4, 0xf7 +/* 03E1EC 7F0096BC 1420001C */ bnez $at, .L7F009730 +/* 03E1F0 7F0096C0 2442A7D4 */ addiu $v0, %lo(D_8002A7D4) # addiu $v0, $v0, -0x582c +/* 03E1F4 7F0096C4 904D0000 */ lbu $t5, ($v0) +/* 03E1F8 7F0096C8 ACC00000 */ sw $zero, ($a2) +/* 03E1FC 7F0096CC 25AF0001 */ addiu $t7, $t5, 1 +/* 03E200 7F0096D0 10000017 */ b .L7F009730 +/* 03E204 7F0096D4 A04F0000 */ sb $t7, ($v0) +.L7F0096D8: +/* 03E208 7F0096D8 3C180100 */ lui $t8, 0x100 +/* 03E20C 7F0096DC 27180000 */ addiu $t8, $t8, 0 +/* 03E210 7F0096E0 00A01025 */ move $v0, $a1 +/* 03E214 7F0096E4 3C0E0600 */ lui $t6, 0x600 +/* 03E218 7F0096E8 AC4E0000 */ sw $t6, ($v0) +/* 03E21C 7F0096EC AC580004 */ sw $t8, 4($v0) +/* 03E220 7F0096F0 0FC07034 */ jal insert_imageDL +/* 03E224 7F0096F4 24A40008 */ addiu $a0, $a1, 8 +/* 03E228 7F0096F8 3C068003 */ lui $a2, %hi(intro_eye_counter) +/* 03E22C 7F0096FC 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 +/* 03E230 7F009700 8CC30000 */ lw $v1, ($a2) +/* 03E234 7F009704 00402825 */ move $a1, $v0 +/* 03E238 7F009708 3C028003 */ lui $v0, %hi(D_8002A7D4) +/* 03E23C 7F00970C 2864001E */ slti $a0, $v1, 0x1e +/* 03E240 7F009710 24790001 */ addiu $t9, $v1, 1 +/* 03E244 7F009714 14800006 */ bnez $a0, .L7F009730 +/* 03E248 7F009718 ACD90000 */ sw $t9, ($a2) +/* 03E24C 7F00971C 2442A7D4 */ addiu $v0, %lo(D_8002A7D4) # addiu $v0, $v0, -0x582c +/* 03E250 7F009720 90480000 */ lbu $t0, ($v0) +/* 03E254 7F009724 ACC00000 */ sw $zero, ($a2) +/* 03E258 7F009728 25090001 */ addiu $t1, $t0, 1 +/* 03E25C 7F00972C A0490000 */ sb $t1, ($v0) +def_7F00929C: +.L7F009730: +/* 03E260 7F009730 8FBF0014 */ lw $ra, 0x14($sp) +.L7F009734: +/* 03E264 7F009734 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03E268 7F009738 00A01025 */ move $v0, $a1 +/* 03E26C 7F00973C 03E00008 */ jr $ra +/* 03E270 7F009740 00000000 */ nop +) +#endif + + + + +s32 sub_GAME_7F009744(void) { + return (D_8002A7D4 == 9); +} diff --git a/src/game/intro_logos.h b/src/game/intro_logos.h new file mode 100644 index 0000000..c702b60 --- /dev/null +++ b/src/game/intro_logos.h @@ -0,0 +1,25 @@ +#ifndef _INTRO_LOGOS_H_ +#define _INTRO_LOGOS_H_ +#include "ultra64.h" + +extern s32 dword_CODE_bss_80069550; +extern s32 dword_CODE_bss_80069554; +extern s32 matrix_buffer_rarelogo_0; +extern s32 matrix_buffer_gunbarrel_0; +extern s32 matrix_buffer_rarelogo_1; +extern s32 matrix_buffer_rarelogo_2; +extern s32 matrix_buffer_gunbarrel_1; +extern s32 matrix_buffer_intro_backdrop; +extern s32 matrix_buffer_intro_bond; +extern s32 x; +extern s32 y; +extern s32 dword_CODE_bss_8006957C; +extern s32 dword_CODE_bss_80069580; +extern s32 word_CODE_bss_80069584; +extern s32 dword_CODE_bss_80069588; +extern s32 dword_CODE_bss_8006958C; +extern s32 virtualaddress; +extern s32 dword_CODE_bss_80069594; + +extern u32 D_8002A7D0; +#endif diff --git a/src/game/lightfixture.c b/src/game/lightfixture.c new file mode 100644 index 0000000..d00098b --- /dev/null +++ b/src/game/lightfixture.c @@ -0,0 +1,1362 @@ +#include "ultra64.h" +#include "game/lightfixture.h" + +// bss +//CODE.bss:80082660 +s_lightfixture light_fixture_table[0x64]; +//CODE.bss:80082B10 +s16 cur_entry_lightfixture_table; +//CODE.bss:80082B12 +s16 index_of_cur_entry_lightfixture_table; +//CODE.bss:80082B14 .align 3 +//CODE.bss:80082B18 +s16 word_CODE_bss_80082B18[0x400]; +//CODE.bss:80083318 +s32 dword_CODE_bss_80083318; + + +// data +//D:80046030 +s32 D_80046030[] = {0, 0, 0, 0, 0, 0, 0, 0}; + + +void init_lightfixture_tables(void) +{ + s32 i; + + for (i=0;i<0x64;i++) + { + light_fixture_table[i].index = 0; + } + + for (i=0;i<0x400;i=i+8) + { + word_CODE_bss_80082B18[i+2] = 0; + word_CODE_bss_80082B18[i+4] = 0; + word_CODE_bss_80082B18[i+6] = 0; + word_CODE_bss_80082B18[i+0] = 0; + } + + D_80046030[0] = 0; +} + + +s32 get_index_of_current_entry_in_init_lightfixture_table(void) +{ + s32 i; + + for (i = 0; i != 0x64; i+=4) + { + if (light_fixture_table[i].index == 0) + { + return i; + } + if (light_fixture_table[i+1].index == 0) + { + return i + 1; + } + if (light_fixture_table[i+2].index == 0) + { + return i + 2; + } + if (light_fixture_table[i+3].index == 0) + { + return i + 3; + } + } + return 0x64; +} + + +void add_entry_to_init_lightfixture_table(Gfx *DL) +{ + cur_entry_lightfixture_table = get_index_of_current_entry_in_init_lightfixture_table(); + if (cur_entry_lightfixture_table != 100) { + light_fixture_table[cur_entry_lightfixture_table].index = index_of_cur_entry_lightfixture_table; + light_fixture_table[cur_entry_lightfixture_table].ptr_start_pertinent_DL = DL; + } +} + + +void save_ptrDL_enpoint_to_current_init_lightfixture_table(Gfx *param_1) +{ + if (cur_entry_lightfixture_table != 100) { + light_fixture_table[cur_entry_lightfixture_table].ptr_end_pertinent_DL = param_1; + } +} + + + +#ifdef NONMATCHING +s32 check_if_imageID_is_light(s32 imageID) +{ + if (imageID == 0xC9) + { + return 1; + } + if (imageID == 0xCB) + { + return 1; + } + if (imageID == 0xCD) + { + return 1; + } + if (imageID == 0xFC) + { + return 1; + } + if (imageID == 0xFE) + { + return 1; + } + if (imageID == 0xFF) + { + return 1; + } + if (imageID == 0x100) + { + return 1; + } + if (imageID == 0x1AC) + { + return 1; + } + if (imageID == 0x3D6) + { + return 1; + } + if (imageID == 0x567) + { + return 1; + } + return 0; +} + +#else +GLOBAL_ASM( +.text +glabel check_if_imageID_is_light +/* 0F0160 7F0BB630 240100C9 */ li $at, 201 +/* 0F0164 7F0BB634 10810013 */ beq $a0, $at, .L7F0BB684 +/* 0F0168 7F0BB638 240100CB */ li $at, 203 +/* 0F016C 7F0BB63C 10810011 */ beq $a0, $at, .L7F0BB684 +/* 0F0170 7F0BB640 240100CD */ li $at, 205 +/* 0F0174 7F0BB644 1081000F */ beq $a0, $at, .L7F0BB684 +/* 0F0178 7F0BB648 240100FC */ li $at, 252 +/* 0F017C 7F0BB64C 1081000D */ beq $a0, $at, .L7F0BB684 +/* 0F0180 7F0BB650 240100FE */ li $at, 254 +/* 0F0184 7F0BB654 1081000B */ beq $a0, $at, .L7F0BB684 +/* 0F0188 7F0BB658 240100FF */ li $at, 255 +/* 0F018C 7F0BB65C 10810009 */ beq $a0, $at, .L7F0BB684 +/* 0F0190 7F0BB660 24010100 */ li $at, 256 +/* 0F0194 7F0BB664 10810007 */ beq $a0, $at, .L7F0BB684 +/* 0F0198 7F0BB668 240101AC */ li $at, 428 +/* 0F019C 7F0BB66C 10810005 */ beq $a0, $at, .L7F0BB684 +/* 0F01A0 7F0BB670 240103D6 */ li $at, 982 +/* 0F01A4 7F0BB674 10810003 */ beq $a0, $at, .L7F0BB684 +/* 0F01A8 7F0BB678 24010567 */ li $at, 1383 +/* 0F01AC 7F0BB67C 14810003 */ bne $a0, $at, .L7F0BB68C +/* 0F01B0 7F0BB680 00001025 */ move $v0, $zero +.L7F0BB684: +/* 0F01B4 7F0BB684 03E00008 */ jr $ra +/* 0F01B8 7F0BB688 24020001 */ li $v0, 1 + +.L7F0BB68C: +/* 0F01BC 7F0BB68C 03E00008 */ jr $ra +/* 0F01C0 7F0BB690 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void return_ptr_vertex_of_entry_room(void) { + +} +#else +GLOBAL_ASM( +.text +glabel return_ptr_vertex_of_entry_room +/* 0F01C4 7F0BB694 808E0000 */ lb $t6, ($a0) +/* 0F01C8 7F0BB698 24020004 */ li $v0, 4 +/* 0F01CC 7F0BB69C 0005C880 */ sll $t9, $a1, 2 +/* 0F01D0 7F0BB6A0 104E0005 */ beq $v0, $t6, .L7F0BB6B8 +/* 0F01D4 7F0BB6A4 0325C821 */ addu $t9, $t9, $a1 +/* 0F01D8 7F0BB6A8 808FFFF8 */ lb $t7, -8($a0) +.L7F0BB6AC: +/* 0F01DC 7F0BB6AC 2484FFF8 */ addiu $a0, $a0, -8 +/* 0F01E0 7F0BB6B0 544FFFFE */ bnel $v0, $t7, .L7F0BB6AC +/* 0F01E4 7F0BB6B4 808FFFF8 */ lb $t7, -8($a0) +.L7F0BB6B8: +/* 0F01E8 7F0BB6B8 8C830004 */ lw $v1, 4($a0) +/* 0F01EC 7F0BB6BC 3C01FF00 */ lui $at, 0xff00 +/* 0F01F0 7F0BB6C0 0019C900 */ sll $t9, $t9, 4 +/* 0F01F4 7F0BB6C4 0061C024 */ and $t8, $v1, $at +/* 0F01F8 7F0BB6C8 3C010E00 */ lui $at, 0xe00 +/* 0F01FC 7F0BB6CC 17010007 */ bne $t8, $at, .L7F0BB6EC +/* 0F0200 7F0BB6D0 3C088004 */ lui $t0, %hi(array_room_info + 0x4) +/* 0F0204 7F0BB6D4 01194021 */ addu $t0, $t0, $t9 +/* 0F0208 7F0BB6D8 8D081418 */ lw $t0, %lo(array_room_info + 0x4)($t0) +/* 0F020C 7F0BB6DC 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 0F0210 7F0BB6E0 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 0F0214 7F0BB6E4 00614824 */ and $t1, $v1, $at +/* 0F0218 7F0BB6E8 01091821 */ addu $v1, $t0, $t1 +.L7F0BB6EC: +/* 0F021C 7F0BB6EC 03E00008 */ jr $ra +/* 0F0220 7F0BB6F0 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BB6F4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80058D80*/ +glabel jpt_80058D80 +.word .L7F0BB714 +.word .L7F0BB7C0 +.word .L7F0BB7EC +.word .L7F0BB818 +.word .L7F0BB844 +.text +glabel sub_GAME_7F0BB6F4 +/* 0F0224 7F0BB6F4 2CA10005 */ sltiu $at, $a1, 5 +/* 0F0228 7F0BB6F8 1020005C */ beqz $at, .L7F0BB86C +/* 0F022C 7F0BB6FC 00057080 */ sll $t6, $a1, 2 +/* 0F0230 7F0BB700 3C018006 */ lui $at, %hi(jpt_80058D80) +/* 0F0234 7F0BB704 002E0821 */ addu $at, $at, $t6 +/* 0F0238 7F0BB708 8C2E8D80 */ lw $t6, %lo(jpt_80058D80)($at) +/* 0F023C 7F0BB70C 01C00008 */ jr $t6 +/* 0F0240 7F0BB710 00000000 */ nop +.L7F0BB714: +/* 0F0244 7F0BB714 2402000A */ li $v0, 10 +/* 0F0248 7F0BB718 908F0005 */ lbu $t7, 5($a0) +/* 0F024C 7F0BB71C 01E2001A */ div $zero, $t7, $v0 +/* 0F0250 7F0BB720 0000C012 */ mflo $t8 +/* 0F0254 7F0BB724 ACD80000 */ sw $t8, ($a2) +/* 0F0258 7F0BB728 90990006 */ lbu $t9, 6($a0) +/* 0F025C 7F0BB72C 14400002 */ bnez $v0, .L7F0BB738 +/* 0F0260 7F0BB730 00000000 */ nop +/* 0F0264 7F0BB734 0007000D */ break 7 +.L7F0BB738: +/* 0F0268 7F0BB738 2401FFFF */ li $at, -1 +/* 0F026C 7F0BB73C 14410004 */ bne $v0, $at, .L7F0BB750 +/* 0F0270 7F0BB740 3C018000 */ lui $at, 0x8000 +/* 0F0274 7F0BB744 15E10002 */ bne $t7, $at, .L7F0BB750 +/* 0F0278 7F0BB748 00000000 */ nop +/* 0F027C 7F0BB74C 0006000D */ break 6 +.L7F0BB750: +/* 0F0280 7F0BB750 0322001A */ div $zero, $t9, $v0 +/* 0F0284 7F0BB754 00004012 */ mflo $t0 +/* 0F0288 7F0BB758 ACE80000 */ sw $t0, ($a3) +/* 0F028C 7F0BB75C 90890007 */ lbu $t1, 7($a0) +/* 0F0290 7F0BB760 14400002 */ bnez $v0, .L7F0BB76C +/* 0F0294 7F0BB764 00000000 */ nop +/* 0F0298 7F0BB768 0007000D */ break 7 +.L7F0BB76C: +/* 0F029C 7F0BB76C 2401FFFF */ li $at, -1 +/* 0F02A0 7F0BB770 14410004 */ bne $v0, $at, .L7F0BB784 +/* 0F02A4 7F0BB774 3C018000 */ lui $at, 0x8000 +/* 0F02A8 7F0BB778 17210002 */ bne $t9, $at, .L7F0BB784 +/* 0F02AC 7F0BB77C 00000000 */ nop +/* 0F02B0 7F0BB780 0006000D */ break 6 +.L7F0BB784: +/* 0F02B4 7F0BB784 0122001A */ div $zero, $t1, $v0 +/* 0F02B8 7F0BB788 8FAB0010 */ lw $t3, 0x10($sp) +/* 0F02BC 7F0BB78C 00005012 */ mflo $t2 +/* 0F02C0 7F0BB790 14400002 */ bnez $v0, .L7F0BB79C +/* 0F02C4 7F0BB794 00000000 */ nop +/* 0F02C8 7F0BB798 0007000D */ break 7 +.L7F0BB79C: +/* 0F02CC 7F0BB79C 2401FFFF */ li $at, -1 +/* 0F02D0 7F0BB7A0 14410004 */ bne $v0, $at, .L7F0BB7B4 +/* 0F02D4 7F0BB7A4 3C018000 */ lui $at, 0x8000 +/* 0F02D8 7F0BB7A8 15210002 */ bne $t1, $at, .L7F0BB7B4 +/* 0F02DC 7F0BB7AC 00000000 */ nop +/* 0F02E0 7F0BB7B0 0006000D */ break 6 +.L7F0BB7B4: +/* 0F02E4 7F0BB7B4 AD6A0000 */ sw $t2, ($t3) +/* 0F02E8 7F0BB7B8 03E00008 */ jr $ra +/* 0F02EC 7F0BB7BC 00000000 */ nop +.L7F0BB7C0: +/* 0F02F0 7F0BB7C0 8C8C0004 */ lw $t4, 4($a0) +/* 0F02F4 7F0BB7C4 318D000F */ andi $t5, $t4, 0xf +/* 0F02F8 7F0BB7C8 ACCD0000 */ sw $t5, ($a2) +/* 0F02FC 7F0BB7CC 908E0007 */ lbu $t6, 7($a0) +/* 0F0300 7F0BB7D0 000E7902 */ srl $t7, $t6, 4 +/* 0F0304 7F0BB7D4 ACEF0000 */ sw $t7, ($a3) +/* 0F0308 7F0BB7D8 8C980000 */ lw $t8, ($a0) +/* 0F030C 7F0BB7DC 8FA80010 */ lw $t0, 0x10($sp) +/* 0F0310 7F0BB7E0 3319000F */ andi $t9, $t8, 0xf +/* 0F0314 7F0BB7E4 03E00008 */ jr $ra +/* 0F0318 7F0BB7E8 AD190000 */ sw $t9, ($t0) +.L7F0BB7EC: +/* 0F031C 7F0BB7EC 90890006 */ lbu $t1, 6($a0) +/* 0F0320 7F0BB7F0 312A000F */ andi $t2, $t1, 0xf +/* 0F0324 7F0BB7F4 ACCA0000 */ sw $t2, ($a2) +/* 0F0328 7F0BB7F8 948B0006 */ lhu $t3, 6($a0) +/* 0F032C 7F0BB7FC 000B6302 */ srl $t4, $t3, 0xc +/* 0F0330 7F0BB800 ACEC0000 */ sw $t4, ($a3) +/* 0F0334 7F0BB804 908D0003 */ lbu $t5, 3($a0) +/* 0F0338 7F0BB808 8FAF0010 */ lw $t7, 0x10($sp) +/* 0F033C 7F0BB80C 000D7102 */ srl $t6, $t5, 4 +/* 0F0340 7F0BB810 03E00008 */ jr $ra +/* 0F0344 7F0BB814 ADEE0000 */ sw $t6, ($t7) +.L7F0BB818: +/* 0F0348 7F0BB818 94980004 */ lhu $t8, 4($a0) +/* 0F034C 7F0BB81C 3319000F */ andi $t9, $t8, 0xf +/* 0F0350 7F0BB820 ACD90000 */ sw $t9, ($a2) +/* 0F0354 7F0BB824 90880005 */ lbu $t0, 5($a0) +/* 0F0358 7F0BB828 00084902 */ srl $t1, $t0, 4 +/* 0F035C 7F0BB82C ACE90000 */ sw $t1, ($a3) +/* 0F0360 7F0BB830 908A0002 */ lbu $t2, 2($a0) +/* 0F0364 7F0BB834 8FAC0010 */ lw $t4, 0x10($sp) +/* 0F0368 7F0BB838 314B000F */ andi $t3, $t2, 0xf +/* 0F036C 7F0BB83C 03E00008 */ jr $ra +/* 0F0370 7F0BB840 AD8B0000 */ sw $t3, ($t4) +.L7F0BB844: +/* 0F0374 7F0BB844 908D0004 */ lbu $t5, 4($a0) +/* 0F0378 7F0BB848 31AE000F */ andi $t6, $t5, 0xf +/* 0F037C 7F0BB84C ACCE0000 */ sw $t6, ($a2) +/* 0F0380 7F0BB850 8C8F0004 */ lw $t7, 4($a0) +/* 0F0384 7F0BB854 000FC702 */ srl $t8, $t7, 0x1c +/* 0F0388 7F0BB858 ACF80000 */ sw $t8, ($a3) +/* 0F038C 7F0BB85C 94990002 */ lhu $t9, 2($a0) +/* 0F0390 7F0BB860 8FA90010 */ lw $t1, 0x10($sp) +/* 0F0394 7F0BB864 00194302 */ srl $t0, $t9, 0xc +/* 0F0398 7F0BB868 AD280000 */ sw $t0, ($t1) +def_7F0BB70C: +.L7F0BB86C: +/* 0F039C 7F0BB86C 03E00008 */ jr $ra +/* 0F03A0 7F0BB870 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BB874(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BB874 +/* 0F03A4 7F0BB874 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0F03A8 7F0BB878 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F03AC 7F0BB87C AFA60038 */ sw $a2, 0x38($sp) +/* 0F03B0 7F0BB880 AFA7003C */ sw $a3, 0x3c($sp) +/* 0F03B4 7F0BB884 27AE0024 */ addiu $t6, $sp, 0x24 +/* 0F03B8 7F0BB888 AFA40030 */ sw $a0, 0x30($sp) +/* 0F03BC 7F0BB88C AFAE0010 */ sw $t6, 0x10($sp) +/* 0F03C0 7F0BB890 27A70028 */ addiu $a3, $sp, 0x28 +/* 0F03C4 7F0BB894 0FC2EDBD */ jal sub_GAME_7F0BB6F4 +/* 0F03C8 7F0BB898 27A6002C */ addiu $a2, $sp, 0x2c +/* 0F03CC 7F0BB89C 8FA40030 */ lw $a0, 0x30($sp) +/* 0F03D0 7F0BB8A0 0FC2EDA5 */ jal return_ptr_vertex_of_entry_room +/* 0F03D4 7F0BB8A4 8FA50038 */ lw $a1, 0x38($sp) +/* 0F03D8 7F0BB8A8 8FAF002C */ lw $t7, 0x2c($sp) +/* 0F03DC 7F0BB8AC 8FA5003C */ lw $a1, 0x3c($sp) +/* 0F03E0 7F0BB8B0 8FA30040 */ lw $v1, 0x40($sp) +/* 0F03E4 7F0BB8B4 000FC100 */ sll $t8, $t7, 4 +/* 0F03E8 7F0BB8B8 0058C821 */ addu $t9, $v0, $t8 +/* 0F03EC 7F0BB8BC 87280000 */ lh $t0, ($t9) +/* 0F03F0 7F0BB8C0 8FA40044 */ lw $a0, 0x44($sp) +/* 0F03F4 7F0BB8C4 A4A80000 */ sh $t0, ($a1) +/* 0F03F8 7F0BB8C8 8FA9002C */ lw $t1, 0x2c($sp) +/* 0F03FC 7F0BB8CC 00095100 */ sll $t2, $t1, 4 +/* 0F0400 7F0BB8D0 004A5821 */ addu $t3, $v0, $t2 +/* 0F0404 7F0BB8D4 856C0002 */ lh $t4, 2($t3) +/* 0F0408 7F0BB8D8 A4AC0002 */ sh $t4, 2($a1) +/* 0F040C 7F0BB8DC 8FAD002C */ lw $t5, 0x2c($sp) +/* 0F0410 7F0BB8E0 000D7100 */ sll $t6, $t5, 4 +/* 0F0414 7F0BB8E4 004E7821 */ addu $t7, $v0, $t6 +/* 0F0418 7F0BB8E8 85F80004 */ lh $t8, 4($t7) +/* 0F041C 7F0BB8EC A4B80004 */ sh $t8, 4($a1) +/* 0F0420 7F0BB8F0 8FB90028 */ lw $t9, 0x28($sp) +/* 0F0424 7F0BB8F4 00194100 */ sll $t0, $t9, 4 +/* 0F0428 7F0BB8F8 00484821 */ addu $t1, $v0, $t0 +/* 0F042C 7F0BB8FC 852A0000 */ lh $t2, ($t1) +/* 0F0430 7F0BB900 A46A0000 */ sh $t2, ($v1) +/* 0F0434 7F0BB904 8FAB0028 */ lw $t3, 0x28($sp) +/* 0F0438 7F0BB908 000B6100 */ sll $t4, $t3, 4 +/* 0F043C 7F0BB90C 004C6821 */ addu $t5, $v0, $t4 +/* 0F0440 7F0BB910 85AE0002 */ lh $t6, 2($t5) +/* 0F0444 7F0BB914 A46E0002 */ sh $t6, 2($v1) +/* 0F0448 7F0BB918 8FAF0028 */ lw $t7, 0x28($sp) +/* 0F044C 7F0BB91C 000FC100 */ sll $t8, $t7, 4 +/* 0F0450 7F0BB920 0058C821 */ addu $t9, $v0, $t8 +/* 0F0454 7F0BB924 87280004 */ lh $t0, 4($t9) +/* 0F0458 7F0BB928 A4680004 */ sh $t0, 4($v1) +/* 0F045C 7F0BB92C 8FA90024 */ lw $t1, 0x24($sp) +/* 0F0460 7F0BB930 00095100 */ sll $t2, $t1, 4 +/* 0F0464 7F0BB934 004A5821 */ addu $t3, $v0, $t2 +/* 0F0468 7F0BB938 856C0000 */ lh $t4, ($t3) +/* 0F046C 7F0BB93C A48C0000 */ sh $t4, ($a0) +/* 0F0470 7F0BB940 8FAD0024 */ lw $t5, 0x24($sp) +/* 0F0474 7F0BB944 000D7100 */ sll $t6, $t5, 4 +/* 0F0478 7F0BB948 004E7821 */ addu $t7, $v0, $t6 +/* 0F047C 7F0BB94C 85F80002 */ lh $t8, 2($t7) +/* 0F0480 7F0BB950 A4980002 */ sh $t8, 2($a0) +/* 0F0484 7F0BB954 8FB90024 */ lw $t9, 0x24($sp) +/* 0F0488 7F0BB958 00194100 */ sll $t0, $t9, 4 +/* 0F048C 7F0BB95C 00484821 */ addu $t1, $v0, $t0 +/* 0F0490 7F0BB960 852A0004 */ lh $t2, 4($t1) +/* 0F0494 7F0BB964 A48A0004 */ sh $t2, 4($a0) +/* 0F0498 7F0BB968 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F049C 7F0BB96C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0F04A0 7F0BB970 03E00008 */ jr $ra +/* 0F04A4 7F0BB974 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BB978(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BB978 +/* 0F04A8 7F0BB978 00047080 */ sll $t6, $a0, 2 +/* 0F04AC 7F0BB97C 01C47021 */ addu $t6, $t6, $a0 +/* 0F04B0 7F0BB980 000E7100 */ sll $t6, $t6, 4 +/* 0F04B4 7F0BB984 3C028004 */ lui $v0, %hi(array_room_info + 0x4) +/* 0F04B8 7F0BB988 004E1021 */ addu $v0, $v0, $t6 +/* 0F04BC 7F0BB98C 3C058008 */ lui $a1, %hi(word_CODE_bss_80082B18) +/* 0F04C0 7F0BB990 3C068008 */ lui $a2, %hi(dword_CODE_bss_80083318) +/* 0F04C4 7F0BB994 8C421418 */ lw $v0, %lo(array_room_info + 0x4)($v0) +/* 0F04C8 7F0BB998 24C63318 */ addiu $a2, %lo(dword_CODE_bss_80083318) # addiu $a2, $a2, 0x3318 +/* 0F04CC 7F0BB99C 24A52B18 */ addiu $a1, %lo(word_CODE_bss_80082B18) # addiu $a1, $a1, 0x2b18 +/* 0F04D0 7F0BB9A0 94AF0000 */ lhu $t7, ($a1) +.L7F0BB9A4: +/* 0F04D4 7F0BB9A4 548F001A */ bnel $a0, $t7, .L7F0BBA10 +/* 0F04D8 7F0BB9A8 24A50004 */ addiu $a1, $a1, 4 +/* 0F04DC 7F0BB9AC 94B80002 */ lhu $t8, 2($a1) +/* 0F04E0 7F0BB9B0 0018C900 */ sll $t9, $t8, 4 +/* 0F04E4 7F0BB9B4 00591821 */ addu $v1, $v0, $t9 +/* 0F04E8 7F0BB9B8 9068000C */ lbu $t0, 0xc($v1) +/* 0F04EC 7F0BB9BC 00084882 */ srl $t1, $t0, 2 +/* 0F04F0 7F0BB9C0 A069000C */ sb $t1, 0xc($v1) +/* 0F04F4 7F0BB9C4 94AA0002 */ lhu $t2, 2($a1) +/* 0F04F8 7F0BB9C8 000A5900 */ sll $t3, $t2, 4 +/* 0F04FC 7F0BB9CC 004B1821 */ addu $v1, $v0, $t3 +/* 0F0500 7F0BB9D0 906C000D */ lbu $t4, 0xd($v1) +/* 0F0504 7F0BB9D4 000C6882 */ srl $t5, $t4, 2 +/* 0F0508 7F0BB9D8 A06D000D */ sb $t5, 0xd($v1) +/* 0F050C 7F0BB9DC 94AE0002 */ lhu $t6, 2($a1) +/* 0F0510 7F0BB9E0 000E7900 */ sll $t7, $t6, 4 +/* 0F0514 7F0BB9E4 004F1821 */ addu $v1, $v0, $t7 +/* 0F0518 7F0BB9E8 9078000E */ lbu $t8, 0xe($v1) +/* 0F051C 7F0BB9EC 0018C882 */ srl $t9, $t8, 2 +/* 0F0520 7F0BB9F0 A079000E */ sb $t9, 0xe($v1) +/* 0F0524 7F0BB9F4 94A80002 */ lhu $t0, 2($a1) +/* 0F0528 7F0BB9F8 00084900 */ sll $t1, $t0, 4 +/* 0F052C 7F0BB9FC 00491821 */ addu $v1, $v0, $t1 +/* 0F0530 7F0BBA00 906A000F */ lbu $t2, 0xf($v1) +/* 0F0534 7F0BBA04 000A5882 */ srl $t3, $t2, 2 +/* 0F0538 7F0BBA08 A06B000F */ sb $t3, 0xf($v1) +/* 0F053C 7F0BBA0C 24A50004 */ addiu $a1, $a1, 4 +.L7F0BBA10: +/* 0F0540 7F0BBA10 54A6FFE4 */ bnel $a1, $a2, .L7F0BB9A4 +/* 0F0544 7F0BBA14 94AF0000 */ lhu $t7, ($a1) +/* 0F0548 7F0BBA18 03E00008 */ jr $ra +/* 0F054C 7F0BBA1C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BBA20(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BBA20 +/* 0F0550 7F0BBA20 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F0554 7F0BBA24 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F0558 7F0BBA28 AFA40018 */ sw $a0, 0x18($sp) +/* 0F055C 7F0BBA2C 0FC2EEB7 */ jal sub_GAME_7F0BBADC +/* 0F0560 7F0BBA30 AFA5001C */ sw $a1, 0x1c($sp) +/* 0F0564 7F0BBA34 8FA40018 */ lw $a0, 0x18($sp) +/* 0F0568 7F0BBA38 14400024 */ bnez $v0, .L7F0BBACC +/* 0F056C 7F0BBA3C 8FA6001C */ lw $a2, 0x1c($sp) +/* 0F0570 7F0BBA40 00067080 */ sll $t6, $a2, 2 +/* 0F0574 7F0BBA44 3C058004 */ lui $a1, %hi(D_80046030) +/* 0F0578 7F0BBA48 01C67021 */ addu $t6, $t6, $a2 +/* 0F057C 7F0BBA4C 24A56030 */ addiu $a1, %lo(D_80046030) # addiu $a1, $a1, 0x6030 +/* 0F0580 7F0BBA50 000E7100 */ sll $t6, $t6, 4 +/* 0F0584 7F0BBA54 3C0F8004 */ lui $t7, %hi(array_room_info + 0x4) +/* 0F0588 7F0BBA58 8CB90000 */ lw $t9, ($a1) +/* 0F058C 7F0BBA5C 01EE7821 */ addu $t7, $t7, $t6 +/* 0F0590 7F0BBA60 8DEF1418 */ lw $t7, %lo(array_room_info + 0x4)($t7) +/* 0F0594 7F0BBA64 3C098008 */ lui $t1, %hi(word_CODE_bss_80082B18) +/* 0F0598 7F0BBA68 25292B18 */ addiu $t1, %lo(word_CODE_bss_80082B18) # addiu $t1, $t1, 0x2b18 +/* 0F059C 7F0BBA6C 00194080 */ sll $t0, $t9, 2 +/* 0F05A0 7F0BBA70 01091021 */ addu $v0, $t0, $t1 +/* 0F05A4 7F0BBA74 008F1823 */ subu $v1, $a0, $t7 +/* 0F05A8 7F0BBA78 0003C102 */ srl $t8, $v1, 4 +/* 0F05AC 7F0BBA7C A4460000 */ sh $a2, ($v0) +/* 0F05B0 7F0BBA80 A4580002 */ sh $t8, 2($v0) +/* 0F05B4 7F0BBA84 908A000C */ lbu $t2, 0xc($a0) +/* 0F05B8 7F0BBA88 908C000D */ lbu $t4, 0xd($a0) +/* 0F05BC 7F0BBA8C 908E000E */ lbu $t6, 0xe($a0) +/* 0F05C0 7F0BBA90 9098000F */ lbu $t8, 0xf($a0) +/* 0F05C4 7F0BBA94 000A5882 */ srl $t3, $t2, 2 +/* 0F05C8 7F0BBA98 000C6882 */ srl $t5, $t4, 2 +/* 0F05CC 7F0BBA9C 000E7882 */ srl $t7, $t6, 2 +/* 0F05D0 7F0BBAA0 0018C882 */ srl $t9, $t8, 2 +/* 0F05D4 7F0BBAA4 A08B000C */ sb $t3, 0xc($a0) +/* 0F05D8 7F0BBAA8 A08D000D */ sb $t5, 0xd($a0) +/* 0F05DC 7F0BBAAC A08F000E */ sb $t7, 0xe($a0) +/* 0F05E0 7F0BBAB0 A099000F */ sb $t9, 0xf($a0) +/* 0F05E4 7F0BBAB4 8CA80000 */ lw $t0, ($a1) +/* 0F05E8 7F0BBAB8 25090001 */ addiu $t1, $t0, 1 +/* 0F05EC 7F0BBABC 29210200 */ slti $at, $t1, 0x200 +/* 0F05F0 7F0BBAC0 14200002 */ bnez $at, .L7F0BBACC +/* 0F05F4 7F0BBAC4 ACA90000 */ sw $t1, ($a1) +/* 0F05F8 7F0BBAC8 ACA00000 */ sw $zero, ($a1) +.L7F0BBACC: +/* 0F05FC 7F0BBACC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F0600 7F0BBAD0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F0604 7F0BBAD4 03E00008 */ jr $ra +/* 0F0608 7F0BBAD8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BBADC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BBADC +/* 0F060C 7F0BBADC 00057080 */ sll $t6, $a1, 2 +/* 0F0610 7F0BBAE0 01C57021 */ addu $t6, $t6, $a1 +/* 0F0614 7F0BBAE4 000E7100 */ sll $t6, $t6, 4 +/* 0F0618 7F0BBAE8 3C0F8004 */ lui $t7, %hi(array_room_info + 0x4) +/* 0F061C 7F0BBAEC 01EE7821 */ addu $t7, $t7, $t6 +/* 0F0620 7F0BBAF0 8DEF1418 */ lw $t7, %lo(array_room_info + 0x4)($t7) +/* 0F0624 7F0BBAF4 3C068008 */ lui $a2, %hi(word_CODE_bss_80082B18) +/* 0F0628 7F0BBAF8 3C038008 */ lui $v1, %hi(dword_CODE_bss_80083318) +/* 0F062C 7F0BBAFC 008F1023 */ subu $v0, $a0, $t7 +/* 0F0630 7F0BBB00 0002C102 */ srl $t8, $v0, 4 +/* 0F0634 7F0BBB04 03001025 */ move $v0, $t8 +/* 0F0638 7F0BBB08 24633318 */ addiu $v1, %lo(dword_CODE_bss_80083318) # addiu $v1, $v1, 0x3318 +/* 0F063C 7F0BBB0C 24C62B18 */ addiu $a2, %lo(word_CODE_bss_80082B18) # addiu $a2, $a2, 0x2b18 +/* 0F0640 7F0BBB10 94D90000 */ lhu $t9, ($a2) +.L7F0BBB14: +/* 0F0644 7F0BBB14 54B90007 */ bnel $a1, $t9, .L7F0BBB34 +/* 0F0648 7F0BBB18 94C90004 */ lhu $t1, 4($a2) +/* 0F064C 7F0BBB1C 94C80002 */ lhu $t0, 2($a2) +/* 0F0650 7F0BBB20 54480004 */ bnel $v0, $t0, .L7F0BBB34 +/* 0F0654 7F0BBB24 94C90004 */ lhu $t1, 4($a2) +/* 0F0658 7F0BBB28 03E00008 */ jr $ra +/* 0F065C 7F0BBB2C 24020001 */ li $v0, 1 + +/* 0F0660 7F0BBB30 94C90004 */ lhu $t1, 4($a2) +.L7F0BBB34: +/* 0F0664 7F0BBB34 54A90007 */ bnel $a1, $t1, .L7F0BBB54 +/* 0F0668 7F0BBB38 94CB0008 */ lhu $t3, 8($a2) +/* 0F066C 7F0BBB3C 94CA0006 */ lhu $t2, 6($a2) +/* 0F0670 7F0BBB40 544A0004 */ bnel $v0, $t2, .L7F0BBB54 +/* 0F0674 7F0BBB44 94CB0008 */ lhu $t3, 8($a2) +/* 0F0678 7F0BBB48 03E00008 */ jr $ra +/* 0F067C 7F0BBB4C 24020001 */ li $v0, 1 + +/* 0F0680 7F0BBB50 94CB0008 */ lhu $t3, 8($a2) +.L7F0BBB54: +/* 0F0684 7F0BBB54 54AB0007 */ bnel $a1, $t3, .L7F0BBB74 +/* 0F0688 7F0BBB58 94CD000C */ lhu $t5, 0xc($a2) +/* 0F068C 7F0BBB5C 94CC000A */ lhu $t4, 0xa($a2) +/* 0F0690 7F0BBB60 544C0004 */ bnel $v0, $t4, .L7F0BBB74 +/* 0F0694 7F0BBB64 94CD000C */ lhu $t5, 0xc($a2) +/* 0F0698 7F0BBB68 03E00008 */ jr $ra +/* 0F069C 7F0BBB6C 24020001 */ li $v0, 1 + +/* 0F06A0 7F0BBB70 94CD000C */ lhu $t5, 0xc($a2) +.L7F0BBB74: +/* 0F06A4 7F0BBB74 54AD0007 */ bnel $a1, $t5, .L7F0BBB94 +/* 0F06A8 7F0BBB78 24C60010 */ addiu $a2, $a2, 0x10 +/* 0F06AC 7F0BBB7C 94CE000E */ lhu $t6, 0xe($a2) +/* 0F06B0 7F0BBB80 544E0004 */ bnel $v0, $t6, .L7F0BBB94 +/* 0F06B4 7F0BBB84 24C60010 */ addiu $a2, $a2, 0x10 +/* 0F06B8 7F0BBB88 03E00008 */ jr $ra +/* 0F06BC 7F0BBB8C 24020001 */ li $v0, 1 + +/* 0F06C0 7F0BBB90 24C60010 */ addiu $a2, $a2, 0x10 +.L7F0BBB94: +/* 0F06C4 7F0BBB94 54C3FFDF */ bnel $a2, $v1, .L7F0BBB14 +/* 0F06C8 7F0BBB98 94D90000 */ lhu $t9, ($a2) +/* 0F06CC 7F0BBB9C 00001025 */ move $v0, $zero +/* 0F06D0 7F0BBBA0 03E00008 */ jr $ra +/* 0F06D4 7F0BBBA4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BBBA8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BBBA8 +/* 0F06D8 7F0BBBA8 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0F06DC 7F0BBBAC AFBF001C */ sw $ra, 0x1c($sp) +/* 0F06E0 7F0BBBB0 AFA60040 */ sw $a2, 0x40($sp) +/* 0F06E4 7F0BBBB4 27AE0028 */ addiu $t6, $sp, 0x28 +/* 0F06E8 7F0BBBB8 AFA40038 */ sw $a0, 0x38($sp) +/* 0F06EC 7F0BBBBC AFAE0010 */ sw $t6, 0x10($sp) +/* 0F06F0 7F0BBBC0 27A60030 */ addiu $a2, $sp, 0x30 +/* 0F06F4 7F0BBBC4 0FC2EDBD */ jal sub_GAME_7F0BB6F4 +/* 0F06F8 7F0BBBC8 27A7002C */ addiu $a3, $sp, 0x2c +/* 0F06FC 7F0BBBCC 8FA40038 */ lw $a0, 0x38($sp) +/* 0F0700 7F0BBBD0 0FC2EDA5 */ jal return_ptr_vertex_of_entry_room +/* 0F0704 7F0BBBD4 8FA50040 */ lw $a1, 0x40($sp) +/* 0F0708 7F0BBBD8 8FAF0030 */ lw $t7, 0x30($sp) +/* 0F070C 7F0BBBDC AFA20024 */ sw $v0, 0x24($sp) +/* 0F0710 7F0BBBE0 8FA50040 */ lw $a1, 0x40($sp) +/* 0F0714 7F0BBBE4 000FC100 */ sll $t8, $t7, 4 +/* 0F0718 7F0BBBE8 0FC2EE88 */ jal sub_GAME_7F0BBA20 +/* 0F071C 7F0BBBEC 03022021 */ addu $a0, $t8, $v0 +/* 0F0720 7F0BBBF0 8FB9002C */ lw $t9, 0x2c($sp) +/* 0F0724 7F0BBBF4 8FA90024 */ lw $t1, 0x24($sp) +/* 0F0728 7F0BBBF8 8FA50040 */ lw $a1, 0x40($sp) +/* 0F072C 7F0BBBFC 00194100 */ sll $t0, $t9, 4 +/* 0F0730 7F0BBC00 0FC2EE88 */ jal sub_GAME_7F0BBA20 +/* 0F0734 7F0BBC04 01092021 */ addu $a0, $t0, $t1 +/* 0F0738 7F0BBC08 8FAA0028 */ lw $t2, 0x28($sp) +/* 0F073C 7F0BBC0C 8FAC0024 */ lw $t4, 0x24($sp) +/* 0F0740 7F0BBC10 8FA50040 */ lw $a1, 0x40($sp) +/* 0F0744 7F0BBC14 000A5900 */ sll $t3, $t2, 4 +/* 0F0748 7F0BBC18 0FC2EE88 */ jal sub_GAME_7F0BBA20 +/* 0F074C 7F0BBC1C 016C2021 */ addu $a0, $t3, $t4 +/* 0F0750 7F0BBC20 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F0754 7F0BBC24 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0F0758 7F0BBC28 03E00008 */ jr $ra +/* 0F075C 7F0BBC2C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BBC30(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BBC30 +/* 0F0760 7F0BBC30 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0F0764 7F0BBC34 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F0768 7F0BBC38 AFA60048 */ sw $a2, 0x48($sp) +/* 0F076C 7F0BBC3C 27AE0030 */ addiu $t6, $sp, 0x30 +/* 0F0770 7F0BBC40 AFA40040 */ sw $a0, 0x40($sp) +/* 0F0774 7F0BBC44 AFAE0010 */ sw $t6, 0x10($sp) +/* 0F0778 7F0BBC48 27A60038 */ addiu $a2, $sp, 0x38 +/* 0F077C 7F0BBC4C 0FC2EDBD */ jal sub_GAME_7F0BB6F4 +/* 0F0780 7F0BBC50 27A70034 */ addiu $a3, $sp, 0x34 +/* 0F0784 7F0BBC54 8FA40040 */ lw $a0, 0x40($sp) +/* 0F0788 7F0BBC58 0FC2EDA5 */ jal return_ptr_vertex_of_entry_room +/* 0F078C 7F0BBC5C 8FA50048 */ lw $a1, 0x48($sp) +/* 0F0790 7F0BBC60 8FAF0034 */ lw $t7, 0x34($sp) +/* 0F0794 7F0BBC64 AFA2002C */ sw $v0, 0x2c($sp) +/* 0F0798 7F0BBC68 8FA50048 */ lw $a1, 0x48($sp) +/* 0F079C 7F0BBC6C 000FC100 */ sll $t8, $t7, 4 +/* 0F07A0 7F0BBC70 0FC2EEB7 */ jal sub_GAME_7F0BBADC +/* 0F07A4 7F0BBC74 03022021 */ addu $a0, $t8, $v0 +/* 0F07A8 7F0BBC78 8FB90038 */ lw $t9, 0x38($sp) +/* 0F07AC 7F0BBC7C 8FA9002C */ lw $t1, 0x2c($sp) +/* 0F07B0 7F0BBC80 AFA20024 */ sw $v0, 0x24($sp) +/* 0F07B4 7F0BBC84 00194100 */ sll $t0, $t9, 4 +/* 0F07B8 7F0BBC88 8FA50048 */ lw $a1, 0x48($sp) +/* 0F07BC 7F0BBC8C 0FC2EEB7 */ jal sub_GAME_7F0BBADC +/* 0F07C0 7F0BBC90 01092021 */ addu $a0, $t0, $t1 +/* 0F07C4 7F0BBC94 8FAA0030 */ lw $t2, 0x30($sp) +/* 0F07C8 7F0BBC98 8FAC002C */ lw $t4, 0x2c($sp) +/* 0F07CC 7F0BBC9C AFA20028 */ sw $v0, 0x28($sp) +/* 0F07D0 7F0BBCA0 000A5900 */ sll $t3, $t2, 4 +/* 0F07D4 7F0BBCA4 8FA50048 */ lw $a1, 0x48($sp) +/* 0F07D8 7F0BBCA8 0FC2EEB7 */ jal sub_GAME_7F0BBADC +/* 0F07DC 7F0BBCAC 016C2021 */ addu $a0, $t3, $t4 +/* 0F07E0 7F0BBCB0 8FAD0028 */ lw $t5, 0x28($sp) +/* 0F07E4 7F0BBCB4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F07E8 7F0BBCB8 8FAF0024 */ lw $t7, 0x24($sp) +/* 0F07EC 7F0BBCBC 004D7021 */ addu $t6, $v0, $t5 +/* 0F07F0 7F0BBCC0 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0F07F4 7F0BBCC4 03E00008 */ jr $ra +/* 0F07F8 7F0BBCC8 01CF1021 */ addu $v0, $t6, $t7 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BBCCC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BBCCC +/* 0F07FC 7F0BBCCC 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0F0800 7F0BBCD0 AFBE0040 */ sw $fp, 0x40($sp) +/* 0F0804 7F0BBCD4 AFB60038 */ sw $s6, 0x38($sp) +/* 0F0808 7F0BBCD8 AFB3002C */ sw $s3, 0x2c($sp) +/* 0F080C 7F0BBCDC F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0F0810 7F0BBCE0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0F0814 7F0BBCE4 AFB7003C */ sw $s7, 0x3c($sp) +/* 0F0818 7F0BBCE8 AFB50034 */ sw $s5, 0x34($sp) +/* 0F081C 7F0BBCEC AFB40030 */ sw $s4, 0x30($sp) +/* 0F0820 7F0BBCF0 3C138008 */ lui $s3, %hi(word_CODE_bss_80082B18) +/* 0F0824 7F0BBCF4 3C168004 */ lui $s6, %hi(array_room_info) +/* 0F0828 7F0BBCF8 3C1E8008 */ lui $fp, %hi(dword_CODE_bss_80083318) +/* 0F082C 7F0BBCFC 4481A000 */ mtc1 $at, $f20 +/* 0F0830 7F0BBD00 0080A025 */ move $s4, $a0 +/* 0F0834 7F0BBD04 00A0A825 */ move $s5, $a1 +/* 0F0838 7F0BBD08 AFBF0044 */ sw $ra, 0x44($sp) +/* 0F083C 7F0BBD0C AFB20028 */ sw $s2, 0x28($sp) +/* 0F0840 7F0BBD10 AFB10024 */ sw $s1, 0x24($sp) +/* 0F0844 7F0BBD14 AFB00020 */ sw $s0, 0x20($sp) +/* 0F0848 7F0BBD18 27DE3318 */ addiu $fp, %lo(dword_CODE_bss_80083318) # addiu $fp, $fp, 0x3318 +/* 0F084C 7F0BBD1C 26D61414 */ addiu $s6, %lo(array_room_info) # addiu $s6, $s6, 0x1414 +/* 0F0850 7F0BBD20 26732B18 */ addiu $s3, %lo(word_CODE_bss_80082B18) # addiu $s3, $s3, 0x2b18 +/* 0F0854 7F0BBD24 24170050 */ li $s7, 80 +/* 0F0858 7F0BBD28 966E0000 */ lhu $t6, ($s3) +.L7F0BBD2C: +/* 0F085C 7F0BBD2C 56AE0027 */ bnel $s5, $t6, .L7F0BBDCC +/* 0F0860 7F0BBD30 26730004 */ addiu $s3, $s3, 4 +/* 0F0864 7F0BBD34 02B70019 */ multu $s5, $s7 +/* 0F0868 7F0BBD38 966F0002 */ lhu $t7, 2($s3) +/* 0F086C 7F0BBD3C 868B0000 */ lh $t3, ($s4) +/* 0F0870 7F0BBD40 868D0002 */ lh $t5, 2($s4) +/* 0F0874 7F0BBD44 000FC100 */ sll $t8, $t7, 4 +/* 0F0878 7F0BBD48 868F0004 */ lh $t7, 4($s4) +/* 0F087C 7F0BBD4C 0000C812 */ mflo $t9 +/* 0F0880 7F0BBD50 02D94021 */ addu $t0, $s6, $t9 +/* 0F0884 7F0BBD54 8D090004 */ lw $t1, 4($t0) +/* 0F0888 7F0BBD58 03091021 */ addu $v0, $t8, $t1 +/* 0F088C 7F0BBD5C 844A0000 */ lh $t2, ($v0) +/* 0F0890 7F0BBD60 844C0002 */ lh $t4, 2($v0) +/* 0F0894 7F0BBD64 844E0004 */ lh $t6, 4($v0) +/* 0F0898 7F0BBD68 014B8023 */ subu $s0, $t2, $t3 +/* 0F089C 7F0BBD6C 018D8823 */ subu $s1, $t4, $t5 +/* 0F08A0 7F0BBD70 06010002 */ bgez $s0, .L7F0BBD7C +/* 0F08A4 7F0BBD74 01CF9023 */ subu $s2, $t6, $t7 +/* 0F08A8 7F0BBD78 00108023 */ negu $s0, $s0 +.L7F0BBD7C: +/* 0F08AC 7F0BBD7C 06210002 */ bgez $s1, .L7F0BBD88 +/* 0F08B0 7F0BBD80 00000000 */ nop +/* 0F08B4 7F0BBD84 00118823 */ negu $s1, $s1 +.L7F0BBD88: +/* 0F08B8 7F0BBD88 06410002 */ bgez $s2, .L7F0BBD94 +/* 0F08BC 7F0BBD8C 00000000 */ nop +/* 0F08C0 7F0BBD90 00129023 */ negu $s2, $s2 +.L7F0BBD94: +/* 0F08C4 7F0BBD94 0FC2D20F */ jal get_room_data_float1 +/* 0F08C8 7F0BBD98 00000000 */ nop +/* 0F08CC 7F0BBD9C 46140102 */ mul.s $f4, $f0, $f20 +/* 0F08D0 7F0BBDA0 0211C821 */ addu $t9, $s0, $s1 +/* 0F08D4 7F0BBDA4 03324021 */ addu $t0, $t9, $s2 +/* 0F08D8 7F0BBDA8 4600218D */ trunc.w.s $f6, $f4 +/* 0F08DC 7F0BBDAC 44093000 */ mfc1 $t1, $f6 +/* 0F08E0 7F0BBDB0 00000000 */ nop +/* 0F08E4 7F0BBDB4 0109082A */ slt $at, $t0, $t1 +/* 0F08E8 7F0BBDB8 50200004 */ beql $at, $zero, .L7F0BBDCC +/* 0F08EC 7F0BBDBC 26730004 */ addiu $s3, $s3, 4 +/* 0F08F0 7F0BBDC0 10000005 */ b .L7F0BBDD8 +/* 0F08F4 7F0BBDC4 24020001 */ li $v0, 1 +/* 0F08F8 7F0BBDC8 26730004 */ addiu $s3, $s3, 4 +.L7F0BBDCC: +/* 0F08FC 7F0BBDCC 567EFFD7 */ bnel $s3, $fp, .L7F0BBD2C +/* 0F0900 7F0BBDD0 966E0000 */ lhu $t6, ($s3) +/* 0F0904 7F0BBDD4 00001025 */ move $v0, $zero +.L7F0BBDD8: +/* 0F0908 7F0BBDD8 8FBF0044 */ lw $ra, 0x44($sp) +/* 0F090C 7F0BBDDC D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0F0910 7F0BBDE0 8FB00020 */ lw $s0, 0x20($sp) +/* 0F0914 7F0BBDE4 8FB10024 */ lw $s1, 0x24($sp) +/* 0F0918 7F0BBDE8 8FB20028 */ lw $s2, 0x28($sp) +/* 0F091C 7F0BBDEC 8FB3002C */ lw $s3, 0x2c($sp) +/* 0F0920 7F0BBDF0 8FB40030 */ lw $s4, 0x30($sp) +/* 0F0924 7F0BBDF4 8FB50034 */ lw $s5, 0x34($sp) +/* 0F0928 7F0BBDF8 8FB60038 */ lw $s6, 0x38($sp) +/* 0F092C 7F0BBDFC 8FB7003C */ lw $s7, 0x3c($sp) +/* 0F0930 7F0BBE00 8FBE0040 */ lw $fp, 0x40($sp) +/* 0F0934 7F0BBE04 03E00008 */ jr $ra +/* 0F0938 7F0BBE08 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BBE0C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BBE0C +/* 0F093C 7F0BBE0C 27BDFF08 */ addiu $sp, $sp, -0xf8 +/* 0F0940 7F0BBE10 AFB20044 */ sw $s2, 0x44($sp) +/* 0F0944 7F0BBE14 AFB10040 */ sw $s1, 0x40($sp) +/* 0F0948 7F0BBE18 AFB0003C */ sw $s0, 0x3c($sp) +/* 0F094C 7F0BBE1C 3C128008 */ lui $s2, %hi(light_fixture_table) +/* 0F0950 7F0BBE20 3C028008 */ lui $v0, %hi(cur_entry_lightfixture_table) +/* 0F0954 7F0BBE24 00808025 */ move $s0, $a0 +/* 0F0958 7F0BBE28 00A08825 */ move $s1, $a1 +/* 0F095C 7F0BBE2C AFBF005C */ sw $ra, 0x5c($sp) +/* 0F0960 7F0BBE30 AFB70058 */ sw $s7, 0x58($sp) +/* 0F0964 7F0BBE34 AFB60054 */ sw $s6, 0x54($sp) +/* 0F0968 7F0BBE38 AFB50050 */ sw $s5, 0x50($sp) +/* 0F096C 7F0BBE3C AFB4004C */ sw $s4, 0x4c($sp) +/* 0F0970 7F0BBE40 AFB30048 */ sw $s3, 0x48($sp) +/* 0F0974 7F0BBE44 F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0F0978 7F0BBE48 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0F097C 7F0BBE4C F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0F0980 7F0BBE50 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0F0984 7F0BBE54 00C03825 */ move $a3, $a2 +/* 0F0988 7F0BBE58 24422B10 */ addiu $v0, %lo(cur_entry_lightfixture_table) # addiu $v0, $v0, 0x2b10 +/* 0F098C 7F0BBE5C 26522660 */ addiu $s2, %lo(light_fixture_table) # addiu $s2, $s2, 0x2660 +/* 0F0990 7F0BBE60 86460000 */ lh $a2, ($s2) +.L7F0BBE64: +/* 0F0994 7F0BBE64 54E60186 */ bnel $a3, $a2, .L7F0BC480 +/* 0F0998 7F0BBE68 2652000C */ addiu $s2, $s2, 0xc +/* 0F099C 7F0BBE6C 8E4E0004 */ lw $t6, 4($s2) +/* 0F09A0 7F0BBE70 020E082B */ sltu $at, $s0, $t6 +/* 0F09A4 7F0BBE74 54200182 */ bnezl $at, .L7F0BC480 +/* 0F09A8 7F0BBE78 2652000C */ addiu $s2, $s2, 0xc +/* 0F09AC 7F0BBE7C 8E4F0008 */ lw $t7, 8($s2) +/* 0F09B0 7F0BBE80 020F082B */ sltu $at, $s0, $t7 +/* 0F09B4 7F0BBE84 1020017D */ beqz $at, .L7F0BC47C +/* 0F09B8 7F0BBE88 02002025 */ move $a0, $s0 +/* 0F09BC 7F0BBE8C 0FC2EF0C */ jal sub_GAME_7F0BBC30 +/* 0F09C0 7F0BBE90 02202825 */ move $a1, $s1 +/* 0F09C4 7F0BBE94 1440017C */ bnez $v0, .L7F0BC488 +/* 0F09C8 7F0BBE98 02002025 */ move $a0, $s0 +/* 0F09CC 7F0BBE9C 02202825 */ move $a1, $s1 +/* 0F09D0 7F0BBEA0 0FC2EEEA */ jal sub_GAME_7F0BBBA8 +/* 0F09D4 7F0BBEA4 86460000 */ lh $a2, ($s2) +/* 0F09D8 7F0BBEA8 27B800E8 */ addiu $t8, $sp, 0xe8 +/* 0F09DC 7F0BBEAC 27B900E0 */ addiu $t9, $sp, 0xe0 +/* 0F09E0 7F0BBEB0 AFB90014 */ sw $t9, 0x14($sp) +/* 0F09E4 7F0BBEB4 AFB80010 */ sw $t8, 0x10($sp) +/* 0F09E8 7F0BBEB8 02002025 */ move $a0, $s0 +/* 0F09EC 7F0BBEBC 02202825 */ move $a1, $s1 +/* 0F09F0 7F0BBEC0 86460000 */ lh $a2, ($s2) +/* 0F09F4 7F0BBEC4 0FC2EE1D */ jal sub_GAME_7F0BB874 +/* 0F09F8 7F0BBEC8 27A700F0 */ addiu $a3, $sp, 0xf0 +/* 0F09FC 7F0BBECC 87A200F0 */ lh $v0, 0xf0($sp) +/* 0F0A00 7F0BBED0 87A500E8 */ lh $a1, 0xe8($sp) +/* 0F0A04 7F0BBED4 87A600E0 */ lh $a2, 0xe0($sp) +/* 0F0A08 7F0BBED8 87A300F2 */ lh $v1, 0xf2($sp) +/* 0F0A0C 7F0BBEDC 00458023 */ subu $s0, $v0, $a1 +/* 0F0A10 7F0BBEE0 00105C00 */ sll $t3, $s0, 0x10 +/* 0F0A14 7F0BBEE4 000B8403 */ sra $s0, $t3, 0x10 +/* 0F0A18 7F0BBEE8 02100019 */ multu $s0, $s0 +/* 0F0A1C 7F0BBEEC 87A700EA */ lh $a3, 0xea($sp) +/* 0F0A20 7F0BBEF0 0046A023 */ subu $s4, $v0, $a2 +/* 0F0A24 7F0BBEF4 00146C00 */ sll $t5, $s4, 0x10 +/* 0F0A28 7F0BBEF8 000DA403 */ sra $s4, $t5, 0x10 +/* 0F0A2C 7F0BBEFC 00678823 */ subu $s1, $v1, $a3 +/* 0F0A30 7F0BBF00 0011CC00 */ sll $t9, $s1, 0x10 +/* 0F0A34 7F0BBF04 00198C03 */ sra $s1, $t9, 0x10 +/* 0F0A38 7F0BBF08 87A800E2 */ lh $t0, 0xe2($sp) +/* 0F0A3C 7F0BBF0C 87A400F4 */ lh $a0, 0xf4($sp) +/* 0F0A40 7F0BBF10 00006812 */ mflo $t5 +/* 0F0A44 7F0BBF14 87A900EC */ lh $t1, 0xec($sp) +/* 0F0A48 7F0BBF18 00A6B823 */ subu $s7, $a1, $a2 +/* 0F0A4C 7F0BBF1C 02310019 */ multu $s1, $s1 +/* 0F0A50 7F0BBF20 00E87023 */ subu $t6, $a3, $t0 +/* 0F0A54 7F0BBF24 00177C00 */ sll $t7, $s7, 0x10 +/* 0F0A58 7F0BBF28 A7AE00B4 */ sh $t6, 0xb4($sp) +/* 0F0A5C 7F0BBF2C 000FBC03 */ sra $s7, $t7, 0x10 +/* 0F0A60 7F0BBF30 00899823 */ subu $s3, $a0, $t1 +/* 0F0A64 7F0BBF34 00137C00 */ sll $t7, $s3, 0x10 +/* 0F0A68 7F0BBF38 000F9C03 */ sra $s3, $t7, 0x10 +/* 0F0A6C 7F0BBF3C 87AA00E4 */ lh $t2, 0xe4($sp) +/* 0F0A70 7F0BBF40 0068A823 */ subu $s5, $v1, $t0 +/* 0F0A74 7F0BBF44 00007012 */ mflo $t6 +/* 0F0A78 7F0BBF48 008AB023 */ subu $s6, $a0, $t2 +/* 0F0A7C 7F0BBF4C 0016CC00 */ sll $t9, $s6, 0x10 +/* 0F0A80 7F0BBF50 02730019 */ multu $s3, $s3 +/* 0F0A84 7F0BBF54 0019B403 */ sra $s6, $t9, 0x10 +/* 0F0A88 7F0BBF58 01AE7821 */ addu $t7, $t5, $t6 +/* 0F0A8C 7F0BBF5C 00156400 */ sll $t4, $s5, 0x10 +/* 0F0A90 7F0BBF60 000CAC03 */ sra $s5, $t4, 0x10 +/* 0F0A94 7F0BBF64 012A6023 */ subu $t4, $t1, $t2 +/* 0F0A98 7F0BBF68 A7AC00AE */ sh $t4, 0xae($sp) +/* 0F0A9C 7F0BBF6C 0000C012 */ mflo $t8 +/* 0F0AA0 7F0BBF70 01F8C821 */ addu $t9, $t7, $t8 +/* 0F0AA4 7F0BBF74 44992000 */ mtc1 $t9, $f4 +/* 0F0AA8 7F0BBF78 0C007DF8 */ jal sqrtf +/* 0F0AAC 7F0BBF7C 46802320 */ cvt.s.w $f12, $f4 +/* 0F0AB0 7F0BBF80 0FC2D20C */ jal get_room_data_float2 +/* 0F0AB4 7F0BBF84 46000506 */ mov.s $f20, $f0 +/* 0F0AB8 7F0BBF88 02940019 */ multu $s4, $s4 +/* 0F0ABC 7F0BBF8C 46140182 */ mul.s $f6, $f0, $f20 +/* 0F0AC0 7F0BBF90 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0F0AC4 7F0BBF94 4481D000 */ mtc1 $at, $f26 +/* 0F0AC8 7F0BBF98 00000000 */ nop +/* 0F0ACC 7F0BBF9C 4606D203 */ div.s $f8, $f26, $f6 +/* 0F0AD0 7F0BBFA0 00005812 */ mflo $t3 +/* 0F0AD4 7F0BBFA4 00000000 */ nop +/* 0F0AD8 7F0BBFA8 00000000 */ nop +/* 0F0ADC 7F0BBFAC 02B50019 */ multu $s5, $s5 +/* 0F0AE0 7F0BBFB0 00006012 */ mflo $t4 +/* 0F0AE4 7F0BBFB4 016C6821 */ addu $t5, $t3, $t4 +/* 0F0AE8 7F0BBFB8 00000000 */ nop +/* 0F0AEC 7F0BBFBC 02D60019 */ multu $s6, $s6 +/* 0F0AF0 7F0BBFC0 E7A800A8 */ swc1 $f8, 0xa8($sp) +/* 0F0AF4 7F0BBFC4 00007012 */ mflo $t6 +/* 0F0AF8 7F0BBFC8 01AE7821 */ addu $t7, $t5, $t6 +/* 0F0AFC 7F0BBFCC 448F5000 */ mtc1 $t7, $f10 +/* 0F0B00 7F0BBFD0 0C007DF8 */ jal sqrtf +/* 0F0B04 7F0BBFD4 46805320 */ cvt.s.w $f12, $f10 +/* 0F0B08 7F0BBFD8 0FC2D20C */ jal get_room_data_float2 +/* 0F0B0C 7F0BBFDC 46000506 */ mov.s $f20, $f0 +/* 0F0B10 7F0BBFE0 02F70019 */ multu $s7, $s7 +/* 0F0B14 7F0BBFE4 87A200B4 */ lh $v0, 0xb4($sp) +/* 0F0B18 7F0BBFE8 46140402 */ mul.s $f16, $f0, $f20 +/* 0F0B1C 7F0BBFEC 87A300AE */ lh $v1, 0xae($sp) +/* 0F0B20 7F0BBFF0 4610D483 */ div.s $f18, $f26, $f16 +/* 0F0B24 7F0BBFF4 0000C012 */ mflo $t8 +/* 0F0B28 7F0BBFF8 00000000 */ nop +/* 0F0B2C 7F0BBFFC 00000000 */ nop +/* 0F0B30 7F0BC000 00420019 */ multu $v0, $v0 +/* 0F0B34 7F0BC004 0000C812 */ mflo $t9 +/* 0F0B38 7F0BC008 03195821 */ addu $t3, $t8, $t9 +/* 0F0B3C 7F0BC00C 00000000 */ nop +/* 0F0B40 7F0BC010 00630019 */ multu $v1, $v1 +/* 0F0B44 7F0BC014 E7B200A4 */ swc1 $f18, 0xa4($sp) +/* 0F0B48 7F0BC018 00006012 */ mflo $t4 +/* 0F0B4C 7F0BC01C 016C6821 */ addu $t5, $t3, $t4 +/* 0F0B50 7F0BC020 448D2000 */ mtc1 $t5, $f4 +/* 0F0B54 7F0BC024 0C007DF8 */ jal sqrtf +/* 0F0B58 7F0BC028 46802320 */ cvt.s.w $f12, $f4 +/* 0F0B5C 7F0BC02C 0FC2D20C */ jal get_room_data_float2 +/* 0F0B60 7F0BC030 46000506 */ mov.s $f20, $f0 +/* 0F0B64 7F0BC034 46140182 */ mul.s $f6, $f0, $f20 +/* 0F0B68 7F0BC038 86440000 */ lh $a0, ($s2) +/* 0F0B6C 7F0BC03C 27A50094 */ addiu $a1, $sp, 0x94 +/* 0F0B70 7F0BC040 4606D203 */ div.s $f8, $f26, $f6 +/* 0F0B74 7F0BC044 0FC2F28D */ jal sub_GAME_7F0BCA34 +/* 0F0B78 7F0BC048 E7A800A0 */ swc1 $f8, 0xa0($sp) +/* 0F0B7C 7F0BC04C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F0B80 7F0BC050 4481C000 */ mtc1 $at, $f24 +/* 0F0B84 7F0BC054 4480B000 */ mtc1 $zero, $f22 +/* 0F0B88 7F0BC058 00000000 */ nop +/* 0F0B8C 7F0BC05C 4618B03C */ c.lt.s $f22, $f24 +/* 0F0B90 7F0BC060 4600B506 */ mov.s $f20, $f22 +/* 0F0B94 7F0BC064 45020039 */ bc1fl .L7F0BC14C +/* 0F0B98 7F0BC068 4618B03C */ c.lt.s $f22, $f24 +/* 0F0B9C 7F0BC06C 44905000 */ mtc1 $s0, $f10 +/* 0F0BA0 7F0BC070 44919000 */ mtc1 $s1, $f18 +/* 0F0BA4 7F0BC074 44933000 */ mtc1 $s3, $f6 +/* 0F0BA8 7F0BC078 46805420 */ cvt.s.w $f16, $f10 +/* 0F0BAC 7F0BC07C 27B00088 */ addiu $s0, $sp, 0x88 +/* 0F0BB0 7F0BC080 46809120 */ cvt.s.w $f4, $f18 +/* 0F0BB4 7F0BC084 E7B0006C */ swc1 $f16, 0x6c($sp) +/* 0F0BB8 7F0BC088 46803220 */ cvt.s.w $f8, $f6 +/* 0F0BBC 7F0BC08C E7A40068 */ swc1 $f4, 0x68($sp) +/* 0F0BC0 7F0BC090 E7A80064 */ swc1 $f8, 0x64($sp) +.L7F0BC094: +/* 0F0BC4 7F0BC094 0FC2D20C */ jal get_room_data_float2 +/* 0F0BC8 7F0BC098 00000000 */ nop +/* 0F0BCC 7F0BC09C 87A500E8 */ lh $a1, 0xe8($sp) +/* 0F0BD0 7F0BC0A0 C7B2006C */ lwc1 $f18, 0x6c($sp) +/* 0F0BD4 7F0BC0A4 44855000 */ mtc1 $a1, $f10 +/* 0F0BD8 7F0BC0A8 46149102 */ mul.s $f4, $f18, $f20 +/* 0F0BDC 7F0BC0AC 46805420 */ cvt.s.w $f16, $f10 +/* 0F0BE0 7F0BC0B0 C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 0F0BE4 7F0BC0B4 46048180 */ add.s $f6, $f16, $f4 +/* 0F0BE8 7F0BC0B8 46003202 */ mul.s $f8, $f6, $f0 +/* 0F0BEC 7F0BC0BC 46085480 */ add.s $f18, $f10, $f8 +/* 0F0BF0 7F0BC0C0 0FC2D20C */ jal get_room_data_float2 +/* 0F0BF4 7F0BC0C4 E7B20088 */ swc1 $f18, 0x88($sp) +/* 0F0BF8 7F0BC0C8 87A700EA */ lh $a3, 0xea($sp) +/* 0F0BFC 7F0BC0CC C7A60068 */ lwc1 $f6, 0x68($sp) +/* 0F0C00 7F0BC0D0 44878000 */ mtc1 $a3, $f16 +/* 0F0C04 7F0BC0D4 46143282 */ mul.s $f10, $f6, $f20 +/* 0F0C08 7F0BC0D8 46808120 */ cvt.s.w $f4, $f16 +/* 0F0C0C 7F0BC0DC C7B00098 */ lwc1 $f16, 0x98($sp) +/* 0F0C10 7F0BC0E0 460A2200 */ add.s $f8, $f4, $f10 +/* 0F0C14 7F0BC0E4 46004482 */ mul.s $f18, $f8, $f0 +/* 0F0C18 7F0BC0E8 46128180 */ add.s $f6, $f16, $f18 +/* 0F0C1C 7F0BC0EC 0FC2D20C */ jal get_room_data_float2 +/* 0F0C20 7F0BC0F0 E7A6008C */ swc1 $f6, 0x8c($sp) +/* 0F0C24 7F0BC0F4 87A900EC */ lh $t1, 0xec($sp) +/* 0F0C28 7F0BC0F8 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 0F0C2C 7F0BC0FC 4405B000 */ mfc1 $a1, $f22 +/* 0F0C30 7F0BC100 44892000 */ mtc1 $t1, $f4 +/* 0F0C34 7F0BC104 46144402 */ mul.s $f16, $f8, $f20 +/* 0F0C38 7F0BC108 4406D000 */ mfc1 $a2, $f26 +/* 0F0C3C 7F0BC10C 02002025 */ move $a0, $s0 +/* 0F0C40 7F0BC110 468022A0 */ cvt.s.w $f10, $f4 +/* 0F0C44 7F0BC114 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0F0C48 7F0BC118 46105480 */ add.s $f18, $f10, $f16 +/* 0F0C4C 7F0BC11C 46009182 */ mul.s $f6, $f18, $f0 +/* 0F0C50 7F0BC120 46062200 */ add.s $f8, $f4, $f6 +/* 0F0C54 7F0BC124 0FC28858 */ jal sub_GAME_7F0A2160 +/* 0F0C58 7F0BC128 E7A80090 */ swc1 $f8, 0x90($sp) +/* 0F0C5C 7F0BC12C C7AA00A8 */ lwc1 $f10, 0xa8($sp) +/* 0F0C60 7F0BC130 460AA500 */ add.s $f20, $f20, $f10 +/* 0F0C64 7F0BC134 4618A03C */ c.lt.s $f20, $f24 +/* 0F0C68 7F0BC138 00000000 */ nop +/* 0F0C6C 7F0BC13C 4501FFD5 */ bc1t .L7F0BC094 +/* 0F0C70 7F0BC140 00000000 */ nop +/* 0F0C74 7F0BC144 4600B506 */ mov.s $f20, $f22 +/* 0F0C78 7F0BC148 4618B03C */ c.lt.s $f22, $f24 +.L7F0BC14C: +/* 0F0C7C 7F0BC14C 27B00088 */ addiu $s0, $sp, 0x88 +/* 0F0C80 7F0BC150 45020038 */ bc1fl .L7F0BC234 +/* 0F0C84 7F0BC154 4618B03C */ c.lt.s $f22, $f24 +/* 0F0C88 7F0BC158 44948000 */ mtc1 $s4, $f16 +/* 0F0C8C 7F0BC15C 44952000 */ mtc1 $s5, $f4 +/* 0F0C90 7F0BC160 44964000 */ mtc1 $s6, $f8 +/* 0F0C94 7F0BC164 468084A0 */ cvt.s.w $f18, $f16 +/* 0F0C98 7F0BC168 468021A0 */ cvt.s.w $f6, $f4 +/* 0F0C9C 7F0BC16C E7B2006C */ swc1 $f18, 0x6c($sp) +/* 0F0CA0 7F0BC170 468042A0 */ cvt.s.w $f10, $f8 +/* 0F0CA4 7F0BC174 E7A60068 */ swc1 $f6, 0x68($sp) +/* 0F0CA8 7F0BC178 E7AA0064 */ swc1 $f10, 0x64($sp) +.L7F0BC17C: +/* 0F0CAC 7F0BC17C 0FC2D20C */ jal get_room_data_float2 +/* 0F0CB0 7F0BC180 00000000 */ nop +/* 0F0CB4 7F0BC184 87A600E0 */ lh $a2, 0xe0($sp) +/* 0F0CB8 7F0BC188 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 0F0CBC 7F0BC18C 44868000 */ mtc1 $a2, $f16 +/* 0F0CC0 7F0BC190 46142182 */ mul.s $f6, $f4, $f20 +/* 0F0CC4 7F0BC194 468084A0 */ cvt.s.w $f18, $f16 +/* 0F0CC8 7F0BC198 C7B00094 */ lwc1 $f16, 0x94($sp) +/* 0F0CCC 7F0BC19C 46069200 */ add.s $f8, $f18, $f6 +/* 0F0CD0 7F0BC1A0 46004282 */ mul.s $f10, $f8, $f0 +/* 0F0CD4 7F0BC1A4 460A8100 */ add.s $f4, $f16, $f10 +/* 0F0CD8 7F0BC1A8 0FC2D20C */ jal get_room_data_float2 +/* 0F0CDC 7F0BC1AC E7A40088 */ swc1 $f4, 0x88($sp) +/* 0F0CE0 7F0BC1B0 87A800E2 */ lh $t0, 0xe2($sp) +/* 0F0CE4 7F0BC1B4 C7A80068 */ lwc1 $f8, 0x68($sp) +/* 0F0CE8 7F0BC1B8 44889000 */ mtc1 $t0, $f18 +/* 0F0CEC 7F0BC1BC 46144402 */ mul.s $f16, $f8, $f20 +/* 0F0CF0 7F0BC1C0 468091A0 */ cvt.s.w $f6, $f18 +/* 0F0CF4 7F0BC1C4 C7B20098 */ lwc1 $f18, 0x98($sp) +/* 0F0CF8 7F0BC1C8 46103280 */ add.s $f10, $f6, $f16 +/* 0F0CFC 7F0BC1CC 46005102 */ mul.s $f4, $f10, $f0 +/* 0F0D00 7F0BC1D0 46049200 */ add.s $f8, $f18, $f4 +/* 0F0D04 7F0BC1D4 0FC2D20C */ jal get_room_data_float2 +/* 0F0D08 7F0BC1D8 E7A8008C */ swc1 $f8, 0x8c($sp) +/* 0F0D0C 7F0BC1DC 87AA00E4 */ lh $t2, 0xe4($sp) +/* 0F0D10 7F0BC1E0 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 0F0D14 7F0BC1E4 4405B000 */ mfc1 $a1, $f22 +/* 0F0D18 7F0BC1E8 448A3000 */ mtc1 $t2, $f6 +/* 0F0D1C 7F0BC1EC 46145482 */ mul.s $f18, $f10, $f20 +/* 0F0D20 7F0BC1F0 4406D000 */ mfc1 $a2, $f26 +/* 0F0D24 7F0BC1F4 02002025 */ move $a0, $s0 +/* 0F0D28 7F0BC1F8 46803420 */ cvt.s.w $f16, $f6 +/* 0F0D2C 7F0BC1FC C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 0F0D30 7F0BC200 46128100 */ add.s $f4, $f16, $f18 +/* 0F0D34 7F0BC204 46002202 */ mul.s $f8, $f4, $f0 +/* 0F0D38 7F0BC208 46083280 */ add.s $f10, $f6, $f8 +/* 0F0D3C 7F0BC20C 0FC28858 */ jal sub_GAME_7F0A2160 +/* 0F0D40 7F0BC210 E7AA0090 */ swc1 $f10, 0x90($sp) +/* 0F0D44 7F0BC214 C7B000A4 */ lwc1 $f16, 0xa4($sp) +/* 0F0D48 7F0BC218 4610A500 */ add.s $f20, $f20, $f16 +/* 0F0D4C 7F0BC21C 4618A03C */ c.lt.s $f20, $f24 +/* 0F0D50 7F0BC220 00000000 */ nop +/* 0F0D54 7F0BC224 4501FFD5 */ bc1t .L7F0BC17C +/* 0F0D58 7F0BC228 00000000 */ nop +/* 0F0D5C 7F0BC22C 4600B506 */ mov.s $f20, $f22 +/* 0F0D60 7F0BC230 4618B03C */ c.lt.s $f22, $f24 +.L7F0BC234: +/* 0F0D64 7F0BC234 00000000 */ nop +/* 0F0D68 7F0BC238 45020039 */ bc1fl .L7F0BC320 +/* 0F0D6C 7F0BC23C 8E530004 */ lw $s3, 4($s2) +/* 0F0D70 7F0BC240 87AE00B4 */ lh $t6, 0xb4($sp) +/* 0F0D74 7F0BC244 87AF00AE */ lh $t7, 0xae($sp) +/* 0F0D78 7F0BC248 44979000 */ mtc1 $s7, $f18 +/* 0F0D7C 7F0BC24C 448E3000 */ mtc1 $t6, $f6 +/* 0F0D80 7F0BC250 448F5000 */ mtc1 $t7, $f10 +/* 0F0D84 7F0BC254 46809120 */ cvt.s.w $f4, $f18 +/* 0F0D88 7F0BC258 46803220 */ cvt.s.w $f8, $f6 +/* 0F0D8C 7F0BC25C E7A4006C */ swc1 $f4, 0x6c($sp) +/* 0F0D90 7F0BC260 46805420 */ cvt.s.w $f16, $f10 +/* 0F0D94 7F0BC264 E7A80068 */ swc1 $f8, 0x68($sp) +/* 0F0D98 7F0BC268 E7B00064 */ swc1 $f16, 0x64($sp) +.L7F0BC26C: +/* 0F0D9C 7F0BC26C 0FC2D20C */ jal get_room_data_float2 +/* 0F0DA0 7F0BC270 00000000 */ nop +/* 0F0DA4 7F0BC274 87A600E0 */ lh $a2, 0xe0($sp) +/* 0F0DA8 7F0BC278 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 0F0DAC 7F0BC27C 44869000 */ mtc1 $a2, $f18 +/* 0F0DB0 7F0BC280 46143202 */ mul.s $f8, $f6, $f20 +/* 0F0DB4 7F0BC284 46809120 */ cvt.s.w $f4, $f18 +/* 0F0DB8 7F0BC288 C7B20094 */ lwc1 $f18, 0x94($sp) +/* 0F0DBC 7F0BC28C 46082280 */ add.s $f10, $f4, $f8 +/* 0F0DC0 7F0BC290 46005402 */ mul.s $f16, $f10, $f0 +/* 0F0DC4 7F0BC294 46109180 */ add.s $f6, $f18, $f16 +/* 0F0DC8 7F0BC298 0FC2D20C */ jal get_room_data_float2 +/* 0F0DCC 7F0BC29C E7A60088 */ swc1 $f6, 0x88($sp) +/* 0F0DD0 7F0BC2A0 87A800E2 */ lh $t0, 0xe2($sp) +/* 0F0DD4 7F0BC2A4 C7AA0068 */ lwc1 $f10, 0x68($sp) +/* 0F0DD8 7F0BC2A8 44882000 */ mtc1 $t0, $f4 +/* 0F0DDC 7F0BC2AC 46145482 */ mul.s $f18, $f10, $f20 +/* 0F0DE0 7F0BC2B0 46802220 */ cvt.s.w $f8, $f4 +/* 0F0DE4 7F0BC2B4 C7A40098 */ lwc1 $f4, 0x98($sp) +/* 0F0DE8 7F0BC2B8 46124400 */ add.s $f16, $f8, $f18 +/* 0F0DEC 7F0BC2BC 46008182 */ mul.s $f6, $f16, $f0 +/* 0F0DF0 7F0BC2C0 46062280 */ add.s $f10, $f4, $f6 +/* 0F0DF4 7F0BC2C4 0FC2D20C */ jal get_room_data_float2 +/* 0F0DF8 7F0BC2C8 E7AA008C */ swc1 $f10, 0x8c($sp) +/* 0F0DFC 7F0BC2CC 87AA00E4 */ lh $t2, 0xe4($sp) +/* 0F0E00 7F0BC2D0 C7B00064 */ lwc1 $f16, 0x64($sp) +/* 0F0E04 7F0BC2D4 4405B000 */ mfc1 $a1, $f22 +/* 0F0E08 7F0BC2D8 448A4000 */ mtc1 $t2, $f8 +/* 0F0E0C 7F0BC2DC 46148102 */ mul.s $f4, $f16, $f20 +/* 0F0E10 7F0BC2E0 4406D000 */ mfc1 $a2, $f26 +/* 0F0E14 7F0BC2E4 02002025 */ move $a0, $s0 +/* 0F0E18 7F0BC2E8 468044A0 */ cvt.s.w $f18, $f8 +/* 0F0E1C 7F0BC2EC C7A8009C */ lwc1 $f8, 0x9c($sp) +/* 0F0E20 7F0BC2F0 46049180 */ add.s $f6, $f18, $f4 +/* 0F0E24 7F0BC2F4 46003282 */ mul.s $f10, $f6, $f0 +/* 0F0E28 7F0BC2F8 460A4400 */ add.s $f16, $f8, $f10 +/* 0F0E2C 7F0BC2FC 0FC28858 */ jal sub_GAME_7F0A2160 +/* 0F0E30 7F0BC300 E7B00090 */ swc1 $f16, 0x90($sp) +/* 0F0E34 7F0BC304 C7B200A0 */ lwc1 $f18, 0xa0($sp) +/* 0F0E38 7F0BC308 4612A500 */ add.s $f20, $f20, $f18 +/* 0F0E3C 7F0BC30C 4618A03C */ c.lt.s $f20, $f24 +/* 0F0E40 7F0BC310 00000000 */ nop +/* 0F0E44 7F0BC314 4501FFD5 */ bc1t .L7F0BC26C +/* 0F0E48 7F0BC318 00000000 */ nop +/* 0F0E4C 7F0BC31C 8E530004 */ lw $s3, 4($s2) +.L7F0BC320: +/* 0F0E50 7F0BC320 8E430008 */ lw $v1, 8($s2) +/* 0F0E54 7F0BC324 24170004 */ li $s7, 4 +/* 0F0E58 7F0BC328 27B600C8 */ addiu $s6, $sp, 0xc8 +/* 0F0E5C 7F0BC32C 0263082B */ sltu $at, $s3, $v1 +/* 0F0E60 7F0BC330 10200055 */ beqz $at, .L7F0BC488 +/* 0F0E64 7F0BC334 27B500D0 */ addiu $s5, $sp, 0xd0 +/* 0F0E68 7F0BC338 27B400D8 */ addiu $s4, $sp, 0xd8 +/* 0F0E6C 7F0BC33C 82620000 */ lb $v0, ($s3) +.L7F0BC340: +/* 0F0E70 7F0BC340 2401FFBF */ li $at, -65 +/* 0F0E74 7F0BC344 00008025 */ move $s0, $zero +/* 0F0E78 7F0BC348 14410020 */ bne $v0, $at, .L7F0BC3CC +/* 0F0E7C 7F0BC34C 02602025 */ move $a0, $s3 +/* 0F0E80 7F0BC350 00002825 */ move $a1, $zero +/* 0F0E84 7F0BC354 86460000 */ lh $a2, ($s2) +/* 0F0E88 7F0BC358 02803825 */ move $a3, $s4 +/* 0F0E8C 7F0BC35C AFB50010 */ sw $s5, 0x10($sp) +/* 0F0E90 7F0BC360 0FC2EE1D */ jal sub_GAME_7F0BB874 +/* 0F0E94 7F0BC364 AFB60014 */ sw $s6, 0x14($sp) +/* 0F0E98 7F0BC368 02802025 */ move $a0, $s4 +/* 0F0E9C 7F0BC36C 0FC2EF33 */ jal sub_GAME_7F0BBCCC +/* 0F0EA0 7F0BC370 86450000 */ lh $a1, ($s2) +/* 0F0EA4 7F0BC374 10400003 */ beqz $v0, .L7F0BC384 +/* 0F0EA8 7F0BC378 02A02025 */ move $a0, $s5 +/* 0F0EAC 7F0BC37C 1000000C */ b .L7F0BC3B0 +/* 0F0EB0 7F0BC380 24100001 */ li $s0, 1 +.L7F0BC384: +/* 0F0EB4 7F0BC384 0FC2EF33 */ jal sub_GAME_7F0BBCCC +/* 0F0EB8 7F0BC388 86450000 */ lh $a1, ($s2) +/* 0F0EBC 7F0BC38C 10400003 */ beqz $v0, .L7F0BC39C +/* 0F0EC0 7F0BC390 02C02025 */ move $a0, $s6 +/* 0F0EC4 7F0BC394 10000006 */ b .L7F0BC3B0 +/* 0F0EC8 7F0BC398 24100001 */ li $s0, 1 +.L7F0BC39C: +/* 0F0ECC 7F0BC39C 0FC2EF33 */ jal sub_GAME_7F0BBCCC +/* 0F0ED0 7F0BC3A0 86450000 */ lh $a1, ($s2) +/* 0F0ED4 7F0BC3A4 10400002 */ beqz $v0, .L7F0BC3B0 +/* 0F0ED8 7F0BC3A8 00000000 */ nop +/* 0F0EDC 7F0BC3AC 24100001 */ li $s0, 1 +.L7F0BC3B0: +/* 0F0EE0 7F0BC3B0 12000004 */ beqz $s0, .L7F0BC3C4 +/* 0F0EE4 7F0BC3B4 02602025 */ move $a0, $s3 +/* 0F0EE8 7F0BC3B8 00002825 */ move $a1, $zero +/* 0F0EEC 7F0BC3BC 0FC2EEEA */ jal sub_GAME_7F0BBBA8 +/* 0F0EF0 7F0BC3C0 86460000 */ lh $a2, ($s2) +.L7F0BC3C4: +/* 0F0EF4 7F0BC3C4 10000027 */ b .L7F0BC464 +/* 0F0EF8 7F0BC3C8 8E430008 */ lw $v1, 8($s2) +.L7F0BC3CC: +/* 0F0EFC 7F0BC3CC 2401FFB1 */ li $at, -79 +/* 0F0F00 7F0BC3D0 14410024 */ bne $v0, $at, .L7F0BC464 +/* 0F0F04 7F0BC3D4 00001025 */ move $v0, $zero +.L7F0BC3D8: +/* 0F0F08 7F0BC3D8 24510001 */ addiu $s1, $v0, 1 +/* 0F0F0C 7F0BC3DC 00008025 */ move $s0, $zero +/* 0F0F10 7F0BC3E0 02202825 */ move $a1, $s1 +/* 0F0F14 7F0BC3E4 02602025 */ move $a0, $s3 +/* 0F0F18 7F0BC3E8 86460000 */ lh $a2, ($s2) +/* 0F0F1C 7F0BC3EC 02803825 */ move $a3, $s4 +/* 0F0F20 7F0BC3F0 AFB50010 */ sw $s5, 0x10($sp) +/* 0F0F24 7F0BC3F4 0FC2EE1D */ jal sub_GAME_7F0BB874 +/* 0F0F28 7F0BC3F8 AFB60014 */ sw $s6, 0x14($sp) +/* 0F0F2C 7F0BC3FC 02802025 */ move $a0, $s4 +/* 0F0F30 7F0BC400 0FC2EF33 */ jal sub_GAME_7F0BBCCC +/* 0F0F34 7F0BC404 86450000 */ lh $a1, ($s2) +/* 0F0F38 7F0BC408 10400003 */ beqz $v0, .L7F0BC418 +/* 0F0F3C 7F0BC40C 02A02025 */ move $a0, $s5 +/* 0F0F40 7F0BC410 1000000C */ b .L7F0BC444 +/* 0F0F44 7F0BC414 24100001 */ li $s0, 1 +.L7F0BC418: +/* 0F0F48 7F0BC418 0FC2EF33 */ jal sub_GAME_7F0BBCCC +/* 0F0F4C 7F0BC41C 86450000 */ lh $a1, ($s2) +/* 0F0F50 7F0BC420 10400003 */ beqz $v0, .L7F0BC430 +/* 0F0F54 7F0BC424 02C02025 */ move $a0, $s6 +/* 0F0F58 7F0BC428 10000006 */ b .L7F0BC444 +/* 0F0F5C 7F0BC42C 24100001 */ li $s0, 1 +.L7F0BC430: +/* 0F0F60 7F0BC430 0FC2EF33 */ jal sub_GAME_7F0BBCCC +/* 0F0F64 7F0BC434 86450000 */ lh $a1, ($s2) +/* 0F0F68 7F0BC438 10400002 */ beqz $v0, .L7F0BC444 +/* 0F0F6C 7F0BC43C 00000000 */ nop +/* 0F0F70 7F0BC440 24100001 */ li $s0, 1 +.L7F0BC444: +/* 0F0F74 7F0BC444 12000004 */ beqz $s0, .L7F0BC458 +/* 0F0F78 7F0BC448 02602025 */ move $a0, $s3 +/* 0F0F7C 7F0BC44C 02202825 */ move $a1, $s1 +/* 0F0F80 7F0BC450 0FC2EEEA */ jal sub_GAME_7F0BBBA8 +/* 0F0F84 7F0BC454 86460000 */ lh $a2, ($s2) +.L7F0BC458: +/* 0F0F88 7F0BC458 1637FFDF */ bne $s1, $s7, .L7F0BC3D8 +/* 0F0F8C 7F0BC45C 02201025 */ move $v0, $s1 +/* 0F0F90 7F0BC460 8E430008 */ lw $v1, 8($s2) +.L7F0BC464: +/* 0F0F94 7F0BC464 26730008 */ addiu $s3, $s3, 8 +/* 0F0F98 7F0BC468 0263082B */ sltu $at, $s3, $v1 +/* 0F0F9C 7F0BC46C 5420FFB4 */ bnezl $at, .L7F0BC340 +/* 0F0FA0 7F0BC470 82620000 */ lb $v0, ($s3) +/* 0F0FA4 7F0BC474 10000005 */ b .L7F0BC48C +/* 0F0FA8 7F0BC478 8FBF005C */ lw $ra, 0x5c($sp) +.L7F0BC47C: +/* 0F0FAC 7F0BC47C 2652000C */ addiu $s2, $s2, 0xc +.L7F0BC480: +/* 0F0FB0 7F0BC480 5642FE78 */ bnel $s2, $v0, .L7F0BBE64 +/* 0F0FB4 7F0BC484 86460000 */ lh $a2, ($s2) +.L7F0BC488: +/* 0F0FB8 7F0BC488 8FBF005C */ lw $ra, 0x5c($sp) +.L7F0BC48C: +/* 0F0FBC 7F0BC48C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0F0FC0 7F0BC490 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0F0FC4 7F0BC494 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0F0FC8 7F0BC498 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0F0FCC 7F0BC49C 8FB0003C */ lw $s0, 0x3c($sp) +/* 0F0FD0 7F0BC4A0 8FB10040 */ lw $s1, 0x40($sp) +/* 0F0FD4 7F0BC4A4 8FB20044 */ lw $s2, 0x44($sp) +/* 0F0FD8 7F0BC4A8 8FB30048 */ lw $s3, 0x48($sp) +/* 0F0FDC 7F0BC4AC 8FB4004C */ lw $s4, 0x4c($sp) +/* 0F0FE0 7F0BC4B0 8FB50050 */ lw $s5, 0x50($sp) +/* 0F0FE4 7F0BC4B4 8FB60054 */ lw $s6, 0x54($sp) +/* 0F0FE8 7F0BC4B8 8FB70058 */ lw $s7, 0x58($sp) +/* 0F0FEC 7F0BC4BC 03E00008 */ jr $ra +/* 0F0FF0 7F0BC4C0 27BD00F8 */ addiu $sp, $sp, 0xf8 +) +#endif + + + + +#ifdef NONMATCHING// +void sub_GAME_7F0BC4C4(u16 arg0) +{ + s32 i; + + for (i=0;itype; i++) + { + if (object == arg0) + { + return i; + } + object = (get_size_of_setup_object_type((u8 *)object) * 4) + object; + } + } + return -1; +} + +#else +GLOBAL_ASM( +.text +glabel check_if_object_type_has_been_loaded +/* 08B64C 7F056B1C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 08B650 7F056B20 AFB00014 */ sw $s0, 0x14($sp) +/* 08B654 7F056B24 3C108007 */ lui $s0, %hi(ptr_setup_objects) +/* 08B658 7F056B28 8E105D0C */ lw $s0, %lo(ptr_setup_objects)($s0) +/* 08B65C 7F056B2C AFB30020 */ sw $s3, 0x20($sp) +/* 08B660 7F056B30 00809825 */ move $s3, $a0 +/* 08B664 7F056B34 AFBF0024 */ sw $ra, 0x24($sp) +/* 08B668 7F056B38 AFB2001C */ sw $s2, 0x1c($sp) +/* 08B66C 7F056B3C 12000012 */ beqz $s0, .L7F056B88 +/* 08B670 7F056B40 AFB10018 */ sw $s1, 0x18($sp) +/* 08B674 7F056B44 920E0003 */ lbu $t6, 3($s0) +/* 08B678 7F056B48 24120030 */ li $s2, 48 +/* 08B67C 7F056B4C 00008825 */ move $s1, $zero +/* 08B680 7F056B50 524E000E */ beql $s2, $t6, .L7F056B8C +/* 08B684 7F056B54 2402FFFF */ li $v0, -1 +.L7F056B58: +/* 08B688 7F056B58 16130003 */ bne $s0, $s3, .L7F056B68 +/* 08B68C 7F056B5C 00000000 */ nop +/* 08B690 7F056B60 1000000A */ b .L7F056B8C +/* 08B694 7F056B64 02201025 */ move $v0, $s1 +.L7F056B68: +/* 08B698 7F056B68 0FC15A3D */ jal get_size_of_setup_object_type +/* 08B69C 7F056B6C 02002025 */ move $a0, $s0 +/* 08B6A0 7F056B70 00027880 */ sll $t7, $v0, 2 +/* 08B6A4 7F056B74 01F08021 */ addu $s0, $t7, $s0 +/* 08B6A8 7F056B78 92180003 */ lbu $t8, 3($s0) +/* 08B6AC 7F056B7C 26310001 */ addiu $s1, $s1, 1 +/* 08B6B0 7F056B80 1658FFF5 */ bne $s2, $t8, .L7F056B58 +/* 08B6B4 7F056B84 00000000 */ nop +.L7F056B88: +/* 08B6B8 7F056B88 2402FFFF */ li $v0, -1 +.L7F056B8C: +/* 08B6BC 7F056B8C 8FBF0024 */ lw $ra, 0x24($sp) +/* 08B6C0 7F056B90 8FB00014 */ lw $s0, 0x14($sp) +/* 08B6C4 7F056B94 8FB10018 */ lw $s1, 0x18($sp) +/* 08B6C8 7F056B98 8FB2001C */ lw $s2, 0x1c($sp) +/* 08B6CC 7F056B9C 8FB30020 */ lw $s3, 0x20($sp) +/* 08B6D0 7F056BA0 03E00008 */ jr $ra +/* 08B6D4 7F056BA4 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F056BA8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F056BA8 +/* 08B6D8 7F056BA8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 08B6DC 7F056BAC AFB00014 */ sw $s0, 0x14($sp) +/* 08B6E0 7F056BB0 3C108007 */ lui $s0, %hi(ptr_setup_objects) +/* 08B6E4 7F056BB4 8E105D0C */ lw $s0, %lo(ptr_setup_objects)($s0) +/* 08B6E8 7F056BB8 AFB30020 */ sw $s3, 0x20($sp) +/* 08B6EC 7F056BBC 00809825 */ move $s3, $a0 +/* 08B6F0 7F056BC0 AFBF0024 */ sw $ra, 0x24($sp) +/* 08B6F4 7F056BC4 AFB2001C */ sw $s2, 0x1c($sp) +/* 08B6F8 7F056BC8 12000013 */ beqz $s0, .L7F056C18 +/* 08B6FC 7F056BCC AFB10018 */ sw $s1, 0x18($sp) +/* 08B700 7F056BD0 920E0003 */ lbu $t6, 3($s0) +/* 08B704 7F056BD4 24120030 */ li $s2, 48 +/* 08B708 7F056BD8 00008825 */ move $s1, $zero +/* 08B70C 7F056BDC 524E000F */ beql $s2, $t6, .L7F056C1C +/* 08B710 7F056BE0 2402FFFF */ li $v0, -1 +/* 08B714 7F056BE4 8E0F0010 */ lw $t7, 0x10($s0) +.L7F056BE8: +/* 08B718 7F056BE8 166F0003 */ bne $s3, $t7, .L7F056BF8 +/* 08B71C 7F056BEC 00000000 */ nop +/* 08B720 7F056BF0 1000000A */ b .L7F056C1C +/* 08B724 7F056BF4 02201025 */ move $v0, $s1 +.L7F056BF8: +/* 08B728 7F056BF8 0FC15A3D */ jal get_size_of_setup_object_type +/* 08B72C 7F056BFC 02002025 */ move $a0, $s0 +/* 08B730 7F056C00 0002C080 */ sll $t8, $v0, 2 +/* 08B734 7F056C04 03108021 */ addu $s0, $t8, $s0 +/* 08B738 7F056C08 92190003 */ lbu $t9, 3($s0) +/* 08B73C 7F056C0C 26310001 */ addiu $s1, $s1, 1 +/* 08B740 7F056C10 5659FFF5 */ bnel $s2, $t9, .L7F056BE8 +/* 08B744 7F056C14 8E0F0010 */ lw $t7, 0x10($s0) +.L7F056C18: +/* 08B748 7F056C18 2402FFFF */ li $v0, -1 +.L7F056C1C: +/* 08B74C 7F056C1C 8FBF0024 */ lw $ra, 0x24($sp) +/* 08B750 7F056C20 8FB00014 */ lw $s0, 0x14($sp) +/* 08B754 7F056C24 8FB10018 */ lw $s1, 0x18($sp) +/* 08B758 7F056C28 8FB2001C */ lw $s2, 0x1c($sp) +/* 08B75C 7F056C2C 8FB30020 */ lw $s3, 0x20($sp) +/* 08B760 7F056C30 03E00008 */ jr $ra +/* 08B764 7F056C34 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +u32 load_model(u32 modelid) +{ + struct p_itementry fileentry = PitemZ_entries[modelid]; + if (fileentry.header == 0) + { + load_object_into_memory(PitemZ_entries[modelid].header, PitemZ_entries[modelid].filename); + set_objuse_flag_compute_grp_nums_set_obj_loaded(PitemZ_entries[modelid].header); + return 1; + } + return 0; +} +#else +GLOBAL_ASM( +.text +glabel load_model +/* 08B768 7F056C38 00047080 */ sll $t6, $a0, 2 +/* 08B76C 7F056C3C 01C47023 */ subu $t6, $t6, $a0 +/* 08B770 7F056C40 3C0F8004 */ lui $t7, %hi(PitemZ_entries) +/* 08B774 7F056C44 25EFA228 */ addiu $t7, %lo(PitemZ_entries) # addiu $t7, $t7, -0x5dd8 +/* 08B778 7F056C48 000E7080 */ sll $t6, $t6, 2 +/* 08B77C 7F056C4C 01CF1021 */ addu $v0, $t6, $t7 +/* 08B780 7F056C50 8C460000 */ lw $a2, ($v0) +/* 08B784 7F056C54 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 08B788 7F056C58 AFBF0014 */ sw $ra, 0x14($sp) +/* 08B78C 7F056C5C 8CD80000 */ lw $t8, ($a2) +/* 08B790 7F056C60 00C02025 */ move $a0, $a2 +/* 08B794 7F056C64 5700000A */ bnezl $t8, .L7F056C90 +/* 08B798 7F056C68 00001025 */ move $v0, $zero +/* 08B79C 7F056C6C 8C450004 */ lw $a1, 4($v0) +/* 08B7A0 7F056C70 0FC1D953 */ jal load_object_into_memory +/* 08B7A4 7F056C74 AFA2001C */ sw $v0, 0x1c($sp) +/* 08B7A8 7F056C78 8FA2001C */ lw $v0, 0x1c($sp) +/* 08B7AC 7F056C7C 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 08B7B0 7F056C80 8C440000 */ lw $a0, ($v0) +/* 08B7B4 7F056C84 10000002 */ b .L7F056C90 +/* 08B7B8 7F056C88 24020001 */ li $v0, 1 +/* 08B7BC 7F056C8C 00001025 */ move $v0, $zero +.L7F056C90: +/* 08B7C0 7F056C90 8FBF0014 */ lw $ra, 0x14($sp) +/* 08B7C4 7F056C94 27BD0020 */ addiu $sp, $sp, 0x20 +/* 08B7C8 7F056C98 03E00008 */ jr $ra +/* 08B7CC 7F056C9C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F056CA0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*hack for below*/ +glabel jpt_8005354C +.word .L7F056EE4 +.word .L7F056EEC +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EEC +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EEC +.word .L7F056EF4 +.word .L7F056EF4 +.word .L7F056EE4 +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EE4 +.word .L7F056EEC +.word .L7F056EEC +.word .L7F056EE4 + +.text +glabel sub_GAME_7F056CA0 +/* 08B7D0 7F056CA0 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 08B7D4 7F056CA4 AFBF0024 */ sw $ra, 0x24($sp) +/* 08B7D8 7F056CA8 AFB10020 */ sw $s1, 0x20($sp) +/* 08B7DC 7F056CAC AFB0001C */ sw $s0, 0x1c($sp) +/* 08B7E0 7F056CB0 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 08B7E4 7F056CB4 8C910010 */ lw $s1, 0x10($a0) +/* 08B7E8 7F056CB8 00808025 */ move $s0, $a0 +/* 08B7EC 7F056CBC 4480A000 */ mtc1 $zero, $f20 +/* 08B7F0 7F056CC0 0FC0F863 */ jal sub_GAME_7F03E18C +/* 08B7F4 7F056CC4 02202025 */ move $a0, $s1 +/* 08B7F8 7F056CC8 8E0E000C */ lw $t6, 0xc($s0) +/* 08B7FC 7F056CCC 000E7B80 */ sll $t7, $t6, 0xe +/* 08B800 7F056CD0 05E1000C */ bgez $t7, .L7F056D04 +/* 08B804 7F056CD4 00000000 */ nop +/* 08B808 7F056CD8 8E220014 */ lw $v0, 0x14($s1) +/* 08B80C 7F056CDC 241900FF */ li $t9, 255 +/* 08B810 7F056CE0 240800FF */ li $t0, 255 +/* 08B814 7F056CE4 10400005 */ beqz $v0, .L7F056CFC +/* 08B818 7F056CE8 00000000 */ nop +/* 08B81C 7F056CEC 90580003 */ lbu $t8, 3($v0) +/* 08B820 7F056CF0 A239002D */ sb $t9, 0x2d($s1) +/* 08B824 7F056CF4 10000062 */ b .L7F056E80 +/* 08B828 7F056CF8 A238002C */ sb $t8, 0x2c($s1) +.L7F056CFC: +/* 08B82C 7F056CFC 10000060 */ b .L7F056E80 +/* 08B830 7F056D00 A228002C */ sb $t0, 0x2c($s1) +.L7F056D04: +/* 08B834 7F056D04 0FC1001E */ jal sub_GAME_7F040078 +/* 08B838 7F056D08 02002025 */ move $a0, $s0 +/* 08B83C 7F056D0C 1040005C */ beqz $v0, .L7F056E80 +/* 08B840 7F056D10 00402025 */ move $a0, $v0 +/* 08B844 7F056D14 26050018 */ addiu $a1, $s0, 0x18 +/* 08B848 7F056D18 AFA50028 */ sw $a1, 0x28($sp) +/* 08B84C 7F056D1C 0FC0FA1F */ jal sub_GAME_7F03E87C +/* 08B850 7F056D20 AFA20030 */ sw $v0, 0x30($sp) +/* 08B854 7F056D24 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 08B858 7F056D28 44812000 */ mtc1 $at, $f4 +/* 08B85C 7F056D2C 8FA40030 */ lw $a0, 0x30($sp) +/* 08B860 7F056D30 8FA50028 */ lw $a1, 0x28($sp) +/* 08B864 7F056D34 46040181 */ sub.s $f6, $f0, $f4 +/* 08B868 7F056D38 0FC0FA6F */ jal sub_GAME_7F03E9BC +/* 08B86C 7F056D3C E7A60040 */ swc1 $f6, 0x40($sp) +/* 08B870 7F056D40 E7A00044 */ swc1 $f0, 0x44($sp) +/* 08B874 7F056D44 8FA40030 */ lw $a0, 0x30($sp) +/* 08B878 7F056D48 0FC0FABF */ jal sub_GAME_7F03EAFC +/* 08B87C 7F056D4C 8FA50028 */ lw $a1, 0x28($sp) +/* 08B880 7F056D50 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 08B884 7F056D54 44814000 */ mtc1 $at, $f8 +/* 08B888 7F056D58 8FA40030 */ lw $a0, 0x30($sp) +/* 08B88C 7F056D5C 8FA50028 */ lw $a1, 0x28($sp) +/* 08B890 7F056D60 46080281 */ sub.s $f10, $f0, $f8 +/* 08B894 7F056D64 0FC0FA47 */ jal sub_GAME_7F03E91C +/* 08B898 7F056D68 E7AA0048 */ swc1 $f10, 0x48($sp) +/* 08B89C 7F056D6C 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 08B8A0 7F056D70 44818000 */ mtc1 $at, $f16 +/* 08B8A4 7F056D74 8FA40030 */ lw $a0, 0x30($sp) +/* 08B8A8 7F056D78 8FA50028 */ lw $a1, 0x28($sp) +/* 08B8AC 7F056D7C 46100480 */ add.s $f18, $f0, $f16 +/* 08B8B0 7F056D80 0FC0FA97 */ jal sub_GAME_7F03EA5C +/* 08B8B4 7F056D84 E7B20034 */ swc1 $f18, 0x34($sp) +/* 08B8B8 7F056D88 E7A00038 */ swc1 $f0, 0x38($sp) +/* 08B8BC 7F056D8C 8FA40030 */ lw $a0, 0x30($sp) +/* 08B8C0 7F056D90 0FC0FAE7 */ jal sub_GAME_7F03EB9C +/* 08B8C4 7F056D94 8FA50028 */ lw $a1, 0x28($sp) +/* 08B8C8 7F056D98 C7A20040 */ lwc1 $f2, 0x40($sp) +/* 08B8CC 7F056D9C 44803000 */ mtc1 $zero, $f6 +/* 08B8D0 7F056DA0 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 08B8D4 7F056DA4 46001087 */ neg.s $f2, $f2 +/* 08B8D8 7F056DA8 44812000 */ mtc1 $at, $f4 +/* 08B8DC 7F056DAC 4602303C */ c.lt.s $f6, $f2 +/* 08B8E0 7F056DB0 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 08B8E4 7F056DB4 46040300 */ add.s $f12, $f0, $f4 +/* 08B8E8 7F056DB8 C7A00048 */ lwc1 $f0, 0x48($sp) +/* 08B8EC 7F056DBC 45020003 */ bc1fl .L7F056DCC +/* 08B8F0 7F056DC0 46000007 */ neg.s $f0, $f0 +/* 08B8F4 7F056DC4 46001506 */ mov.s $f20, $f2 +/* 08B8F8 7F056DC8 46000007 */ neg.s $f0, $f0 +.L7F056DCC: +/* 08B8FC 7F056DCC 4600A03C */ c.lt.s $f20, $f0 +/* 08B900 7F056DD0 00000000 */ nop +/* 08B904 7F056DD4 45020003 */ bc1fl .L7F056DE4 +/* 08B908 7F056DD8 4608A03C */ c.lt.s $f20, $f8 +/* 08B90C 7F056DDC 46000506 */ mov.s $f20, $f0 +/* 08B910 7F056DE0 4608A03C */ c.lt.s $f20, $f8 +.L7F056DE4: +/* 08B914 7F056DE4 00000000 */ nop +/* 08B918 7F056DE8 45020003 */ bc1fl .L7F056DF8 +/* 08B91C 7F056DEC 460CA03C */ c.lt.s $f20, $f12 +/* 08B920 7F056DF0 46004506 */ mov.s $f20, $f8 +/* 08B924 7F056DF4 460CA03C */ c.lt.s $f20, $f12 +.L7F056DF8: +/* 08B928 7F056DF8 E7AC003C */ swc1 $f12, 0x3c($sp) +/* 08B92C 7F056DFC 45020004 */ bc1fl .L7F056E10 +/* 08B930 7F056E00 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 08B934 7F056E04 46006506 */ mov.s $f20, $f12 +/* 08B938 7F056E08 E7AC003C */ swc1 $f12, 0x3c($sp) +/* 08B93C 7F056E0C C7AA0040 */ lwc1 $f10, 0x40($sp) +.L7F056E10: +/* 08B940 7F056E10 C6100058 */ lwc1 $f16, 0x58($s0) +/* 08B944 7F056E14 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 08B948 7F056E18 4407A000 */ mfc1 $a3, $f20 +/* 08B94C 7F056E1C 46105480 */ add.s $f18, $f10, $f16 +/* 08B950 7F056E20 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 08B954 7F056E24 02202025 */ move $a0, $s1 +/* 08B958 7F056E28 27A50040 */ addiu $a1, $sp, 0x40 +/* 08B95C 7F056E2C E7B20040 */ swc1 $f18, 0x40($sp) +/* 08B960 7F056E30 C606005C */ lwc1 $f6, 0x5c($s0) +/* 08B964 7F056E34 27A60034 */ addiu $a2, $sp, 0x34 +/* 08B968 7F056E38 46062200 */ add.s $f8, $f4, $f6 +/* 08B96C 7F056E3C C7A40034 */ lwc1 $f4, 0x34($sp) +/* 08B970 7F056E40 E7A80044 */ swc1 $f8, 0x44($sp) +/* 08B974 7F056E44 C6100060 */ lwc1 $f16, 0x60($s0) +/* 08B978 7F056E48 46105480 */ add.s $f18, $f10, $f16 +/* 08B97C 7F056E4C C7AA0038 */ lwc1 $f10, 0x38($sp) +/* 08B980 7F056E50 E7B20048 */ swc1 $f18, 0x48($sp) +/* 08B984 7F056E54 C6060058 */ lwc1 $f6, 0x58($s0) +/* 08B988 7F056E58 46062200 */ add.s $f8, $f4, $f6 +/* 08B98C 7F056E5C C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 08B990 7F056E60 E7A80034 */ swc1 $f8, 0x34($sp) +/* 08B994 7F056E64 C610005C */ lwc1 $f16, 0x5c($s0) +/* 08B998 7F056E68 46105480 */ add.s $f18, $f10, $f16 +/* 08B99C 7F056E6C E7B20038 */ swc1 $f18, 0x38($sp) +/* 08B9A0 7F056E70 C6060060 */ lwc1 $f6, 0x60($s0) +/* 08B9A4 7F056E74 46062200 */ add.s $f8, $f4, $f6 +/* 08B9A8 7F056E78 0FC0F89F */ jal sub_GAME_7F03E27C +/* 08B9AC 7F056E7C E7A8003C */ swc1 $f8, 0x3c($sp) +.L7F056E80: +/* 08B9B0 7F056E80 0FC0F884 */ jal sub_GAME_7F03E210 +/* 08B9B4 7F056E84 02202025 */ move $a0, $s1 +/* 08B9B8 7F056E88 8FBF0024 */ lw $ra, 0x24($sp) +/* 08B9BC 7F056E8C D7B40010 */ ldc1 $f20, 0x10($sp) +/* 08B9C0 7F056E90 8FB0001C */ lw $s0, 0x1c($sp) +/* 08B9C4 7F056E94 8FB10020 */ lw $s1, 0x20($sp) +/* 08B9C8 7F056E98 03E00008 */ jr $ra +/* 08B9CC 7F056E9C 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F056EA0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005354C*/ +/*glabel jpt_8005354C*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EDC*/ +/*.word .L7F056EDC*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EE4*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EEC*/ +/*.word .L7F056EE4*/ +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EE4 +.word .L7F056EEC +.word .L7F056EE4 +.word .L7F056EEC +.word .L7F056EE4 + +/*D:80053608 .align 4*/ +.text +glabel sub_GAME_7F056EA0 +/* 08B9D0 7F056EA0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08B9D4 7F056EA4 AFBF0014 */ sw $ra, 0x14($sp) +/* 08B9D8 7F056EA8 AFA40018 */ sw $a0, 0x18($sp) +/* 08B9DC 7F056EAC 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 08B9E0 7F056EB0 00A02025 */ move $a0, $a1 +/* 08B9E4 7F056EB4 1040000F */ beqz $v0, .L7F056EF4 +/* 08B9E8 7F056EB8 00401825 */ move $v1, $v0 +/* 08B9EC 7F056EBC 904E0003 */ lbu $t6, 3($v0) +/* 08B9F0 7F056EC0 25CFFFFF */ addiu $t7, $t6, -1 +/* 08B9F4 7F056EC4 2DE1002F */ sltiu $at, $t7, 0x2f +/* 08B9F8 7F056EC8 1020000A */ beqz $at, .L7F056EF4 +/* 08B9FC 7F056ECC 000F7880 */ sll $t7, $t7, 2 +/* 08BA00 7F056ED0 3C018005 */ lui $at, %hi(jpt_8005354C) +/* 08BA04 7F056ED4 002F0821 */ addu $at, $at, $t7 +/* 08BA08 7F056ED8 8C2F354C */ lw $t7, %lo(jpt_8005354C)($at) +.L7F056EDC: +/* 08BA0C 7F056EDC 01E00008 */ jr $t7 +/* 08BA10 7F056EE0 00000000 */ nop +.L7F056EE4: +/* 08BA14 7F056EE4 10000004 */ b .L7F056EF8 +/* 08BA18 7F056EE8 00601025 */ move $v0, $v1 +.L7F056EEC: +/* 08BA1C 7F056EEC 10000002 */ b .L7F056EF8 +/* 08BA20 7F056EF0 00001025 */ move $v0, $zero +def_7F056EDC: +.L7F056EF4: +/* 08BA24 7F056EF4 00601025 */ move $v0, $v1 +.L7F056EF8: +/* 08BA28 7F056EF8 8FBF0014 */ lw $ra, 0x14($sp) +/* 08BA2C 7F056EFC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08BA30 7F056F00 03E00008 */ jr $ra +/* 08BA34 7F056F04 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F056F08(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F056F08 +/* 08BA38 7F056F08 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 08BA3C 7F056F0C AFB00018 */ sw $s0, 0x18($sp) +/* 08BA40 7F056F10 3C108007 */ lui $s0, %hi(ptr_setup_objects) +/* 08BA44 7F056F14 8E105D0C */ lw $s0, %lo(ptr_setup_objects)($s0) +/* 08BA48 7F056F18 AFBE0038 */ sw $fp, 0x38($sp) +/* 08BA4C 7F056F1C AFB70034 */ sw $s7, 0x34($sp) +/* 08BA50 7F056F20 AFB30024 */ sw $s3, 0x24($sp) +/* 08BA54 7F056F24 AFB20020 */ sw $s2, 0x20($sp) +/* 08BA58 7F056F28 0080B825 */ move $s7, $a0 +/* 08BA5C 7F056F2C 00E0F025 */ move $fp, $a3 +/* 08BA60 7F056F30 AFBF003C */ sw $ra, 0x3c($sp) +/* 08BA64 7F056F34 AFB60030 */ sw $s6, 0x30($sp) +/* 08BA68 7F056F38 AFB5002C */ sw $s5, 0x2c($sp) +/* 08BA6C 7F056F3C AFB40028 */ sw $s4, 0x28($sp) +/* 08BA70 7F056F40 AFB1001C */ sw $s1, 0x1c($sp) +/* 08BA74 7F056F44 AFA50044 */ sw $a1, 0x44($sp) +/* 08BA78 7F056F48 AFA60048 */ sw $a2, 0x48($sp) +/* 08BA7C 7F056F4C 00009025 */ move $s2, $zero +/* 08BA80 7F056F50 12000039 */ beqz $s0, .L7F057038 +/* 08BA84 7F056F54 00009825 */ move $s3, $zero +/* 08BA88 7F056F58 92030003 */ lbu $v1, 3($s0) +/* 08BA8C 7F056F5C 24010030 */ li $at, 48 +/* 08BA90 7F056F60 309400FF */ andi $s4, $a0, 0xff +/* 08BA94 7F056F64 10610034 */ beq $v1, $at, .L7F057038 +/* 08BA98 7F056F68 24160008 */ li $s6, 8 +/* 08BA9C 7F056F6C 8FB50054 */ lw $s5, 0x54($sp) +/* 08BAA0 7F056F70 8FB10050 */ lw $s1, 0x50($sp) +.L7F056F74: +/* 08BAA4 7F056F74 16830028 */ bne $s4, $v1, .L7F057018 +/* 08BAA8 7F056F78 00000000 */ nop +/* 08BAAC 7F056F7C 8E020010 */ lw $v0, 0x10($s0) +/* 08BAB0 7F056F80 14400007 */ bnez $v0, .L7F056FA0 +/* 08BAB4 7F056F84 00000000 */ nop +/* 08BAB8 7F056F88 17C00023 */ bnez $fp, .L7F057018 +/* 08BABC 7F056F8C 00000000 */ nop +/* 08BAC0 7F056F90 16200021 */ bnez $s1, .L7F057018 +/* 08BAC4 7F056F94 00000000 */ nop +/* 08BAC8 7F056F98 1000002C */ b .L7F05704C +/* 08BACC 7F056F9C 02001025 */ move $v0, $s0 +.L7F056FA0: +/* 08BAD0 7F056FA0 12F6001D */ beq $s7, $s6, .L7F057018 +/* 08BAD4 7F056FA4 00000000 */ nop +/* 08BAD8 7F056FA8 8E0E0064 */ lw $t6, 0x64($s0) +/* 08BADC 7F056FAC 31CF0080 */ andi $t7, $t6, 0x80 +/* 08BAE0 7F056FB0 15E00019 */ bnez $t7, .L7F057018 +/* 08BAE4 7F056FB4 00000000 */ nop +/* 08BAE8 7F056FB8 92180002 */ lbu $t8, 2($s0) +/* 08BAEC 7F056FBC 33190004 */ andi $t9, $t8, 4 +/* 08BAF0 7F056FC0 17200015 */ bnez $t9, .L7F057018 +/* 08BAF4 7F056FC4 00000000 */ nop +/* 08BAF8 7F056FC8 8C48001C */ lw $t0, 0x1c($v0) +/* 08BAFC 7F056FCC 15000012 */ bnez $t0, .L7F057018 +/* 08BB00 7F056FD0 00000000 */ nop +/* 08BB04 7F056FD4 12200005 */ beqz $s1, .L7F056FEC +/* 08BB08 7F056FD8 02A02825 */ move $a1, $s5 +/* 08BB0C 7F056FDC 0FC1B018 */ jal sub_GAME_7F06C060 +/* 08BB10 7F056FE0 8E040014 */ lw $a0, 0x14($s0) +/* 08BB14 7F056FE4 1040000C */ beqz $v0, .L7F057018 +/* 08BB18 7F056FE8 00000000 */ nop +.L7F056FEC: +/* 08BB1C 7F056FEC 16400007 */ bnez $s2, .L7F05700C +/* 08BB20 7F056FF0 00000000 */ nop +/* 08BB24 7F056FF4 8E090010 */ lw $t1, 0x10($s0) +/* 08BB28 7F056FF8 912A0001 */ lbu $t2, 1($t1) +/* 08BB2C 7F056FFC 314B0002 */ andi $t3, $t2, 2 +/* 08BB30 7F057000 15600002 */ bnez $t3, .L7F05700C +/* 08BB34 7F057004 00000000 */ nop +/* 08BB38 7F057008 02009025 */ move $s2, $s0 +.L7F05700C: +/* 08BB3C 7F05700C 16600002 */ bnez $s3, .L7F057018 +/* 08BB40 7F057010 00000000 */ nop +/* 08BB44 7F057014 02009825 */ move $s3, $s0 +.L7F057018: +/* 08BB48 7F057018 0FC15A3D */ jal get_size_of_setup_object_type +/* 08BB4C 7F05701C 02002025 */ move $a0, $s0 +/* 08BB50 7F057020 00026080 */ sll $t4, $v0, 2 +/* 08BB54 7F057024 01908021 */ addu $s0, $t4, $s0 +/* 08BB58 7F057028 92030003 */ lbu $v1, 3($s0) +/* 08BB5C 7F05702C 24010030 */ li $at, 48 +/* 08BB60 7F057030 1461FFD0 */ bne $v1, $at, .L7F056F74 +/* 08BB64 7F057034 00000000 */ nop +.L7F057038: +/* 08BB68 7F057038 8FAD0044 */ lw $t5, 0x44($sp) +/* 08BB6C 7F05703C 00001025 */ move $v0, $zero +/* 08BB70 7F057040 ADB20000 */ sw $s2, ($t5) +/* 08BB74 7F057044 8FAE0048 */ lw $t6, 0x48($sp) +/* 08BB78 7F057048 ADD30000 */ sw $s3, ($t6) +.L7F05704C: +/* 08BB7C 7F05704C 8FBF003C */ lw $ra, 0x3c($sp) +/* 08BB80 7F057050 8FB00018 */ lw $s0, 0x18($sp) +/* 08BB84 7F057054 8FB1001C */ lw $s1, 0x1c($sp) +/* 08BB88 7F057058 8FB20020 */ lw $s2, 0x20($sp) +/* 08BB8C 7F05705C 8FB30024 */ lw $s3, 0x24($sp) +/* 08BB90 7F057060 8FB40028 */ lw $s4, 0x28($sp) +/* 08BB94 7F057064 8FB5002C */ lw $s5, 0x2c($sp) +/* 08BB98 7F057068 8FB60030 */ lw $s6, 0x30($sp) +/* 08BB9C 7F05706C 8FB70034 */ lw $s7, 0x34($sp) +/* 08BBA0 7F057070 8FBE0038 */ lw $fp, 0x38($sp) +/* 08BBA4 7F057074 03E00008 */ jr $ra +/* 08BBA8 7F057078 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + diff --git a/src/game/lvl.c b/src/game/lvl.c new file mode 100644 index 0000000..7a1a509 --- /dev/null +++ b/src/game/lvl.c @@ -0,0 +1,4569 @@ +#include "ultra64.h" +#include "game/debugmenu_090490.h" +#include "game/lvl.h" +#include "game/initunk_0072B0.h" +#include "game/mainmenu.h" +#include "game/bondinv.h" + +// bss +//CODE.bss:8008C260 +u32 *ptr_jfont_DL; +//CODE.bss:8008C264 +s32 dword_CODE_bss_8008C264; +s32 dword_CODE_bss_8008C268; +s32 dword_CODE_bss_8008C26C; +//CODE.bss:8008C270 +char ramrom_data_target[0x380]; +//CODE.bss:8008C5F0 +s32 record_slot_num; +//CODE.bss:8008C5F4 +s32 *address_demo_loaded; +//CODE.bss:8008C5F8 +s32 dword_CODE_bss_8008C5F8; + + +// data +//D:80048360 +s32 lvl_c_debug_notice_list = 0; +//D:80048364 +s32 current_stage_to_load = 0; +//D:80048368 +f32 D_80048368 = 1.0; +//D:8004836C +s32 musictrack1_playing = 0; +//D:80048370 +s32 controls_locked_flag = 0; +//D:80048374 +s32 clock_timer = 0; +#ifdef VERSION_US +//D:80048378 +f32 global_timer_delta = 0; +//D:8004837C +s32 global_timer = 0; +//D:80048380 +s32 D_80048380 = 0; +//D:80048384 +#endif +#ifdef VERSION_JP +u32 jp_global_timer_delta = 0; +//D:8004837C +s32 global_timer = 0; +//D:80048380 +s32 D_80048380 = 0; +f32 global_timer_delta = 0; +#endif + +//D:80048384 +s32 difficulty_0 = 0; +//D:80048388 +s32 D_80048388 = 0; +//D:8004838C +s32 D_8004838C = 0; +//D:80048390 +s32 D_80048390 = 0; +//D:80048394 +s32 D_80048394 = 0; +//D:80048398 +s32 mp_time = 0x8CA0; +//D:8004839C +s32 mp_point = 0xA; +//D:800483A0 +s32 D_800483A0 = 0; +//D:800483A4 +f32 cur_mp_sec = 0.0; +//D:800483A8 +s32 D_800483A8 = 0; +//D:800483AC +f32 cur_mp_min = 0.0; +//D:800483B0 +s32 D_800483B0 = 0; +//D:800483B4 +f32 stage_time_sec = 0; +//D:800483B8 +s32 D_800483B8 = 0; +//D:800483BC +f32 poweron_time_sec = 0; +//D:800483C0 +s32 D_800483C0 = 1; +//D:800483C4 +s32 D_800483C4 = 0xFFFFFFFF; +//D:800483C8 +s32 D_800483C8 = 0; +//D:800483CC +s32 D_800483CC = 0; +//D:800483D0 +s32 D_800483D0 = 0; +//D:800483D4 +s32 D_800483D4 = 0; +//D:800483D8 +s32 D_800483D8 = 0; +//D:800483DC +s32 D_800483DC = 0; +//D:800483E0 +s32 D_800483E0 = 0; +//D:800483E4 +s32 D_800483E4 = 0; + +//D:800483E8 +//maybe alignment +//s32 D_800483E8 = 0; +//D:800483EC +//maybe alignment +//s32 D_800483EC = 0; + + + +// rodata +//D:8005B6B0 +const char aLv_c_debug[] = "lv_c_debug"; +//D:8005B6BC +const char aStanshow_[] = "-stanshow_"; +//D:8005B6C8 +const char aStanshow__5[] = "-stanshow_"; +//D:8005B6D4 +const char aStanshow__0[] = "-stanshow_"; +//D:8005B6E0 +const char aStanshow__1[] = "-stanshow_"; +//D:8005B6EC +const char aStanshow__2[] = "-stanshow_"; +//D:8005B6F8 +const char aStanshow__3[] = "-stanshow_"; +#ifndef VERSION_JP +//D:8005B704 +const char aOneMinuteLeft[] = "One minute left"; +#endif +//D:8005B714 +const char aSetdetailDDDDDDDDD[] = "setdetail %d %d %d %d %d %d %d %d %d"; + + + + + + + +s32 sub_GAME_7F0BD8F0(void) { + return D_800483C0; +} + +void sub_GAME_7F0BD8FC(s32 arg0) { + D_800483C0 = arg0; +} + + + + + + +#ifdef NONMATCHING +void lvInitDebugNoticeList(void) +{ + debCheckAddDebugNoticeListEntry(&lvl_c_debug_notice_list, "lv_c_debug"); + lvl_c_debug_notice_list = 1; + ptr_jfont_DL = mempAllocBytesInBank(0xc0,'\x06'); + romCopy(ptr_jfont_DL, _jfontdlSegmentStart, 0xc0); +} +#else +GLOBAL_ASM( +.text +glabel lvInitDebugNoticeList +/* 0F2438 7F0BD908 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F243C 7F0BD90C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F2440 7F0BD910 3C048005 */ lui $a0, %hi(lvl_c_debug_notice_list) +/* 0F2444 7F0BD914 3C058006 */ lui $a1, %hi(aLv_c_debug) +/* 0F2448 7F0BD918 24A5B6B0 */ addiu $a1, %lo(aLv_c_debug) # addiu $a1, $a1, -0x4950 +/* 0F244C 7F0BD91C 0C001398 */ jal debCheckAddDebugNoticeListEntry +/* 0F2450 7F0BD920 24848360 */ addiu $a0, %lo(lvl_c_debug_notice_list) # addiu $a0, $a0, -0x7ca0 +/* 0F2454 7F0BD924 3C0F0011 */ lui $t7, %hi(_jfontdlSegmentEnd) # $t7, 0x11 +/* 0F2458 7F0BD928 3C180011 */ lui $t8, %hi(_jfontdlSegmentStart) # $t8, 0x11 +/* 0F245C 7F0BD92C 27187880 */ addiu $t8, %lo(_jfontdlSegmentStart) # addiu $t8, $t8, 0x7880 +/* 0F2460 7F0BD930 25EF7940 */ addiu $t7, %lo(_jfontdlSegmentEnd) # addiu $t7, $t7, 0x7940 +/* 0F2464 7F0BD934 240E0001 */ li $t6, 1 +/* 0F2468 7F0BD938 3C018005 */ lui $at, %hi(lvl_c_debug_notice_list) +/* 0F246C 7F0BD93C 01F83023 */ subu $a2, $t7, $t8 +/* 0F2470 7F0BD940 AC2E8360 */ sw $t6, %lo(lvl_c_debug_notice_list)($at) +/* 0F2474 7F0BD944 00C02025 */ move $a0, $a2 +/* 0F2478 7F0BD948 AFA60018 */ sw $a2, 0x18($sp) +/* 0F247C 7F0BD94C 0C0025C8 */ jal mempAllocBytesInBank +/* 0F2480 7F0BD950 24050006 */ li $a1, 6 +/* 0F2484 7F0BD954 3C038009 */ lui $v1, %hi(ptr_jfont_DL) +/* 0F2488 7F0BD958 2463C260 */ addiu $v1, %lo(ptr_jfont_DL) # addiu $v1, $v1, -0x3da0 +/* 0F248C 7F0BD95C 3C050011 */ lui $a1, %hi(_jfontdlSegmentStart) # $a1, 0x11 +/* 0F2490 7F0BD960 AC620000 */ sw $v0, ($v1) +/* 0F2494 7F0BD964 8FA60018 */ lw $a2, 0x18($sp) +/* 0F2498 7F0BD968 24A57880 */ addiu $a1, %lo(_jfontdlSegmentStart) # addiu $a1, $a1, 0x7880 +/* 0F249C 7F0BD96C 0C001707 */ jal romCopy +/* 0F24A0 7F0BD970 00402025 */ move $a0, $v0 +/* 0F24A4 7F0BD974 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F24A8 7F0BD978 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F24AC 7F0BD97C 03E00008 */ jr $ra +/* 0F24B0 7F0BD980 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void playrandommusictrack1(void) +{ + musictrack1_playing = get_random_value() % 0x3d + M_INTRO; + musicTrack1Play(musictrack1_playing); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BD984 +/* 0F24B4 7F0BD984 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F24B8 7F0BD988 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F24BC 7F0BD98C 0C002914 */ jal get_random_value +/* 0F24C0 7F0BD990 00000000 */ nop +/* 0F24C4 7F0BD994 2401003D */ li $at, 61 +/* 0F24C8 7F0BD998 0041001B */ divu $zero, $v0, $at +/* 0F24CC 7F0BD99C 00007010 */ mfhi $t6 +/* 0F24D0 7F0BD9A0 3C038005 */ lui $v1, %hi(musictrack1_playing) +/* 0F24D4 7F0BD9A4 2463836C */ addiu $v1, %lo(musictrack1_playing) # addiu $v1, $v1, -0x7c94 +/* 0F24D8 7F0BD9A8 25C40002 */ addiu $a0, $t6, 2 +/* 0F24DC 7F0BD9AC 0C001B9F */ jal musicTrack1Play +/* 0F24E0 7F0BD9B0 AC640000 */ sw $a0, ($v1) +/* 0F24E4 7F0BD9B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F24E8 7F0BD9B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F24EC 7F0BD9BC 03E00008 */ jr $ra +/* 0F24F0 7F0BD9C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void playmusictrack1(MUSIC_TRACKS track) +{ + musictrack1_playing = track; + musicTrack1Play(track); +} +#else +GLOBAL_ASM( +.text +glabel playmusictrack1 +/* 0F24F4 7F0BD9C4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F24F8 7F0BD9C8 3C028005 */ lui $v0, %hi(musictrack1_playing) +/* 0F24FC 7F0BD9CC 2442836C */ addiu $v0, %lo(musictrack1_playing) # addiu $v0, $v0, -0x7c94 +/* 0F2500 7F0BD9D0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F2504 7F0BD9D4 0C001B9F */ jal musicTrack1Play +/* 0F2508 7F0BD9D8 AC440000 */ sw $a0, ($v0) +/* 0F250C 7F0BD9DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F2510 7F0BD9E0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F2514 7F0BD9E4 03E00008 */ jr $ra +/* 0F2518 7F0BD9E8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void music_append_play_solo_death_short(void) + +{ + musictrack1_playing = (musictrack1_playing + M_SHORT_SOLO_DEATH) % 0x3f; + if (musictrack1_playing == M_NONE) { + musictrack1_playing = M_SHORT_SOLO_DEATH; + } + musicTrack1Play(musictrack1_playing); +} +#else +GLOBAL_ASM( +.text +glabel music_append_play_solo_death_short +/* 0F251C 7F0BD9EC 3C028005 */ lui $v0, %hi(musictrack1_playing) +/* 0F2520 7F0BD9F0 2442836C */ addiu $v0, %lo(musictrack1_playing) # addiu $v0, $v0, -0x7c94 +/* 0F2524 7F0BD9F4 8C4E0000 */ lw $t6, ($v0) +/* 0F2528 7F0BD9F8 2401003F */ li $at, 63 +/* 0F252C 7F0BD9FC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F2530 7F0BDA00 25CF0001 */ addiu $t7, $t6, 1 +/* 0F2534 7F0BDA04 01E1001A */ div $zero, $t7, $at +/* 0F2538 7F0BDA08 00002010 */ mfhi $a0 +/* 0F253C 7F0BDA0C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F2540 7F0BDA10 14800003 */ bnez $a0, .L7F0BDA20 +/* 0F2544 7F0BDA14 AC440000 */ sw $a0, ($v0) +/* 0F2548 7F0BDA18 24040001 */ li $a0, 1 +/* 0F254C 7F0BDA1C AC440000 */ sw $a0, ($v0) +.L7F0BDA20: +/* 0F2550 7F0BDA20 0C001B9F */ jal musicTrack1Play +/* 0F2554 7F0BDA24 00000000 */ nop +/* 0F2558 7F0BDA28 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F255C 7F0BDA2C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F2560 7F0BDA30 03E00008 */ jr $ra +/* 0F2564 7F0BDA34 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void music_append_play_endtheme(void) +{ + musictrack1_playing = (musictrack1_playing + M_END_SOMETHING) % 0x3f; + if (musictrack1_playing == M_NONE) { + musictrack1_playing = M_END_SOMETHING; + } + musicTrack1Play(musictrack1_playing); +} +#else +GLOBAL_ASM( +.text +glabel music_append_play_endtheme +/* 0F2568 7F0BDA38 3C028005 */ lui $v0, %hi(musictrack1_playing) +/* 0F256C 7F0BDA3C 2442836C */ addiu $v0, %lo(musictrack1_playing) # addiu $v0, $v0, -0x7c94 +/* 0F2570 7F0BDA40 8C4E0000 */ lw $t6, ($v0) +/* 0F2574 7F0BDA44 2401003F */ li $at, 63 +/* 0F2578 7F0BDA48 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F257C 7F0BDA4C 25CF003E */ addiu $t7, $t6, 0x3e +/* 0F2580 7F0BDA50 01E1001A */ div $zero, $t7, $at +/* 0F2584 7F0BDA54 00002010 */ mfhi $a0 +/* 0F2588 7F0BDA58 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F258C 7F0BDA5C 14800003 */ bnez $a0, .L7F0BDA6C +/* 0F2590 7F0BDA60 AC440000 */ sw $a0, ($v0) +/* 0F2594 7F0BDA64 2404003E */ li $a0, 62 +/* 0F2598 7F0BDA68 AC440000 */ sw $a0, ($v0) +.L7F0BDA6C: +/* 0F259C 7F0BDA6C 0C001B9F */ jal musicTrack1Play +/* 0F25A0 7F0BDA70 00000000 */ nop +/* 0F25A4 7F0BDA74 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F25A8 7F0BDA78 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F25AC 7F0BDA7C 03E00008 */ jr $ra +/* 0F25B0 7F0BDA80 00000000 */ nop +) +#endif + + + + + +void sub_GAME_7F0BDA84(void) { + playmusictrack1(getmusictrack_or_randomtrack(current_stage_to_load)); +} + + + + + +#ifdef NONMATCHING +void stage_load(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel stage_load +/* 0F25E0 7F0BDAB0 3C018005 */ lui $at, %hi(current_stage_to_load) +/* 0F25E4 7F0BDAB4 AC248364 */ sw $a0, %lo(current_stage_to_load)($at) +/* 0F25E8 7F0BDAB8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F25EC 7F0BDABC 44816000 */ mtc1 $at, $f12 +/* 0F25F0 7F0BDAC0 24020001 */ li $v0, 1 +/* 0F25F4 7F0BDAC4 3C018005 */ lui $at, %hi(D_800483C0) +/* 0F25F8 7F0BDAC8 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0F25FC 7F0BDACC AC2283C0 */ sw $v0, %lo(D_800483C0)($at) +/* 0F2600 7F0BDAD0 AFB10024 */ sw $s1, 0x24($sp) +/* 0F2604 7F0BDAD4 3C018005 */ lui $at, %hi(controls_locked_flag) +/* 0F2608 7F0BDAD8 3C118005 */ lui $s1, %hi(clock_timer) +/* 0F260C 7F0BDADC AC208370 */ sw $zero, %lo(controls_locked_flag)($at) +/* 0F2610 7F0BDAE0 26318374 */ addiu $s1, %lo(clock_timer) # addiu $s1, $s1, -0x7c8c +/* 0F2614 7F0BDAE4 AE220000 */ sw $v0, ($s1) +/* 0F2618 7F0BDAE8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0F261C 7F0BDAEC E42C8378 */ swc1 $f12, %lo(global_timer_delta)($at) +/* 0F2620 7F0BDAF0 3C018005 */ lui $at, %hi(D_80048380) +/* 0F2624 7F0BDAF4 AC208380 */ sw $zero, %lo(D_80048380)($at) +/* 0F2628 7F0BDAF8 3C018005 */ lui $at, %hi(global_timer) +/* 0F262C 7F0BDAFC AC20837C */ sw $zero, %lo(global_timer)($at) + +/* 0F2630 7F0BDB00 3C018005 */ lui $at, %hi(D_80048388) +/* 0F2634 7F0BDB04 AC208388 */ sw $zero, %lo(D_80048388)($at) +/* 0F2638 7F0BDB08 3C018005 */ lui $at, %hi(D_8004838C) +/* 0F263C 7F0BDB0C AC20838C */ sw $zero, %lo(D_8004838C)($at) +/* 0F2640 7F0BDB10 AFB00020 */ sw $s0, 0x20($sp) +/* 0F2644 7F0BDB14 3C018005 */ lui $at, %hi(D_80048390) +/* 0F2648 7F0BDB18 44800000 */ mtc1 $zero, $f0 +/* 0F264C 7F0BDB1C 3C108005 */ lui $s0, %hi(D_80048394) +/* 0F2650 7F0BDB20 AC208390 */ sw $zero, %lo(D_80048390)($at) +/* 0F2654 7F0BDB24 26108394 */ addiu $s0, %lo(D_80048394) # addiu $s0, $s0, -0x7c6c + +/* 0F2658 7F0BDB28 AE000000 */ sw $zero, ($s0) +/* 0F265C 7F0BDB2C 3C018005 */ lui $at, %hi(cur_mp_sec) +/* 0F2660 7F0BDB30 E42083A4 */ swc1 $f0, %lo(cur_mp_sec)($at) +/* 0F2664 7F0BDB34 3C018005 */ lui $at, %hi(D_800483B0) +/* 0F2668 7F0BDB38 AC2083B0 */ sw $zero, %lo(D_800483B0)($at) +/* 0F266C 7F0BDB3C 3C018005 */ lui $at, %hi(stage_time_sec) +/* 0F2670 7F0BDB40 E42083B4 */ swc1 $f0, %lo(stage_time_sec)($at) +/* 0F2674 7F0BDB44 AFBF0034 */ sw $ra, 0x34($sp) +/* 0F2678 7F0BDB48 3C018005 */ lui $at, %hi(D_800483A0) +/* 0F267C 7F0BDB4C AFB40030 */ sw $s4, 0x30($sp) +/* 0F2680 7F0BDB50 AFB3002C */ sw $s3, 0x2c($sp) +/* 0F2684 7F0BDB54 AFB20028 */ sw $s2, 0x28($sp) +/* 0F2688 7F0BDB58 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0F268C 7F0BDB5C AFA40038 */ sw $a0, 0x38($sp) +/* 0F2690 7F0BDB60 0C00248E */ jal sfx_c_70009238 +/* 0F2694 7F0BDB64 AC2083A0 */ sw $zero, %lo(D_800483A0)($at) +/* 0F2698 7F0BDB68 0C001C0F */ jal musicTrack1Vol +/* 0F269C 7F0BDB6C 24047FFF */ li $a0, 32767 +/* 0F26A0 7F0BDB70 0C001CF1 */ jal musicTrack2Vol +/* 0F26A4 7F0BDB74 24047FFF */ li $a0, 32767 +/* 0F26A8 7F0BDB78 0C001DD3 */ jal musicTrack3Vol +/* 0F26AC 7F0BDB7C 24047FFF */ li $a0, 32767 +/* 0F26B0 7F0BDB80 0FC304D9 */ jal sub_GAME_7F0C1364 +/* 0F26B4 7F0BDB84 00000000 */ nop +/* 0F26B8 7F0BDB88 0FC0154D */ jal set_contents_of_80036078 +/* 0F26BC 7F0BDB8C 24040001 */ li $a0, 1 +/* 0F26C0 7F0BDB90 0FC01CC8 */ jal set_mt_tex_alloc +/* 0F26C4 7F0BDB94 00000000 */ nop +/* 0F26C8 7F0BDB98 0FC291F5 */ jal sub_GAME_7F0A47D4 +/* 0F26CC 7F0BDB9C 00000000 */ nop +/* 0F26D0 7F0BDBA0 0FC32FEC */ jal load_prepare_global_image_bank +/* 0F26D4 7F0BDBA4 00000000 */ nop +/* 0F26D8 7F0BDBA8 0FC2B2EB */ jal load_font_tables +/* 0F26DC 7F0BDBAC 00000000 */ nop +/* 0F26E0 7F0BDBB0 8FAF0038 */ lw $t7, 0x38($sp) +/* 0F26E4 7F0BDBB4 2401005A */ li $at, 90 +/* 0F26E8 7F0BDBB8 15E10005 */ bne $t7, $at, .L7F0BDBD0 +/* 0F26EC 7F0BDBBC 00000000 */ nop +/* 0F26F0 7F0BDBC0 0FC00348 */ jal init_menus_or_reset +/* 0F26F4 7F0BDBC4 00000000 */ nop +/* 0F26F8 7F0BDBC8 10000073 */ b .L7F0BDD98 +/* 0F26FC 7F0BDBCC 00000000 */ nop +.L7F0BDBD0: +/* 0F2700 7F0BDBD0 3C048005 */ lui $a0, %hi(current_stage_to_load) +/* 0F2704 7F0BDBD4 8C848364 */ lw $a0, %lo(current_stage_to_load)($a0) +/* 0F2708 7F0BDBD8 3C018007 */ lui $at, %hi(newcheatunlocked) # -0.000000 +/* 0F270C 7F0BDBDC AC209790 */ sw $zero, %lo(newcheatunlocked)($at) +/* 0F2710 7F0BDBE0 2401005A */ li $at, 90 +/* 0F2714 7F0BDBE4 1081001C */ beq $a0, $at, .L7F0BDC58 +/* 0F2718 7F0BDBE8 00000000 */ nop +/* 0F271C 7F0BDBEC 8E180000 */ lw $t8, ($s0) +/* 0F2720 7F0BDBF0 17000019 */ bnez $t8, .L7F0BDC58 +/* 0F2724 7F0BDBF4 00000000 */ nop +/* 0F2728 7F0BDBF8 8E390000 */ lw $t9, ($s1) +/* 0F272C 7F0BDBFC 3C088003 */ lui $t0, %hi(append_cheat_sp) +/* 0F2730 7F0BDC00 1B200015 */ blez $t9, .L7F0BDC58 +/* 0F2734 7F0BDC04 00000000 */ nop +/* 0F2738 7F0BDC08 8D08A900 */ lw $t0, %lo(append_cheat_sp)($t0) +/* 0F273C 7F0BDC0C 3C118007 */ lui $s1, %hi(CHEAT_AVAILABLE_EXTRA_CHARS) +/* 0F2740 7F0BDC10 263196A1 */ addiu $s1, %lo(CHEAT_AVAILABLE_EXTRA_CHARS) # addiu $s1, $s1, -0x695f +/* 0F2744 7F0BDC14 11000010 */ beqz $t0, .L7F0BDC58 +/* 0F2748 7F0BDC18 24100001 */ li $s0, 1 +/* 0F274C 7F0BDC1C 2412004B */ li $s2, 75 +.L7F0BDC20: +/* 0F2750 7F0BDC20 92290000 */ lbu $t1, ($s1) +/* 0F2754 7F0BDC24 51200008 */ beql $t1, $zero, .L7F0BDC48 +/* 0F2758 7F0BDC28 26100001 */ addiu $s0, $s0, 1 +/* 0F275C 7F0BDC2C 0FC24697 */ jal is_cheat_index_equal_to_1C +/* 0F2760 7F0BDC30 02002025 */ move $a0, $s0 +/* 0F2764 7F0BDC34 50400004 */ beql $v0, $zero, .L7F0BDC48 +/* 0F2768 7F0BDC38 26100001 */ addiu $s0, $s0, 1 +/* 0F276C 7F0BDC3C 0FC246AB */ jal turn_on_cheat_for_players +/* 0F2770 7F0BDC40 02002025 */ move $a0, $s0 +/* 0F2774 7F0BDC44 26100001 */ addiu $s0, $s0, 1 +.L7F0BDC48: +/* 0F2778 7F0BDC48 1612FFF5 */ bne $s0, $s2, .L7F0BDC20 +/* 0F277C 7F0BDC4C 26310001 */ addiu $s1, $s1, 1 +/* 0F2780 7F0BDC50 3C048005 */ lui $a0, %hi(current_stage_to_load) +/* 0F2784 7F0BDC54 8C848364 */ lw $a0, %lo(current_stage_to_load)($a0) +.L7F0BDC58: +/* 0F2788 7F0BDC58 0FC2D049 */ jal load_bg_file +/* 0F278C 7F0BDC5C 00000000 */ nop +/* 0F2790 7F0BDC60 3C048005 */ lui $a0, %hi(current_stage_to_load) +/* 0F2794 7F0BDC64 0FC2510B */ jal store_stagenum_to_copyof_stagenum +/* 0F2798 7F0BDC68 8C848364 */ lw $a0, %lo(current_stage_to_load)($a0) +/* 0F279C 7F0BDC6C 0FC2921A */ jal init_watch_at_start_of_stage +/* 0F27A0 7F0BDC70 00000000 */ nop +/* 0F27A4 7F0BDC74 0FC3047F */ jal sub_GAME_7F0C11FC +/* 0F27A8 7F0BDC78 8FA40038 */ lw $a0, 0x38($sp) +/* 0F27AC 7F0BDC7C 3C0A8008 */ lui $t2, %hi(player1_player_data) +/* 0F27B0 7F0BDC80 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 0F27B4 7F0BDC84 25529EF0 */ addiu $s2, $t2, %lo(player1_player_data) +/* 0F27B8 7F0BDC88 4481A000 */ mtc1 $at, $f20 +/* 0F27BC 7F0BDC8C 0240A025 */ move $s4, $s2 +/* 0F27C0 7F0BDC90 24130004 */ li $s3, 4 +.L7F0BDC94: +/* 0F27C4 7F0BDC94 0FC26919 */ jal get_num_players +/* 0F27C8 7F0BDC98 00000000 */ nop +/* 0F27CC 7F0BDC9C 24010001 */ li $at, 1 +/* 0F27D0 7F0BDCA0 14410009 */ bne $v0, $at, .L7F0BDCC8 +/* 0F27D4 7F0BDCA4 00008025 */ move $s0, $zero +/* 0F27D8 7F0BDCA8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F27DC 7F0BDCAC 44812000 */ mtc1 $at, $f4 +/* 0F27E0 7F0BDCB0 44813000 */ mtc1 $at, $f6 +/* 0F27E4 7F0BDCB4 A280006A */ sb $zero, 0x6a($s4) +/* 0F27E8 7F0BDCB8 A280006B */ sb $zero, 0x6b($s4) +/* 0F27EC 7F0BDCBC E684005C */ swc1 $f4, 0x5c($s4) +/* 0F27F0 7F0BDCC0 1000001C */ b .L7F0BDD34 +/* 0F27F4 7F0BDCC4 E6860064 */ swc1 $f6, 0x64($s4) +.L7F0BDCC8: +/* 0F27F8 7F0BDCC8 3C118008 */ lui $s1, %hi(player1_player_data) +/* 0F27FC 7F0BDCCC 26319EF0 */ addiu $s1, %lo(player1_player_data) # addiu $s1, $s1, -0x6110 +.L7F0BDCD0: +/* 0F2800 7F0BDCD0 0FC051D6 */ jal get_scenario +/* 0F2804 7F0BDCD4 00000000 */ nop +/* 0F2808 7F0BDCD8 14530003 */ bne $v0, $s3, .L7F0BDCE8 +/* 0F280C 7F0BDCDC 00000000 */ nop +/* 0F2810 7F0BDCE0 10000004 */ b .L7F0BDCF4 +/* 0F2814 7F0BDCE4 E634005C */ swc1 $f20, 0x5c($s1) +.L7F0BDCE8: +/* 0F2818 7F0BDCE8 0FC040EB */ jal get_player_mp_handicap +/* 0F281C 7F0BDCEC 02002025 */ move $a0, $s0 +/* 0F2820 7F0BDCF0 E620005C */ swc1 $f0, 0x5c($s1) +.L7F0BDCF4: +/* 0F2824 7F0BDCF4 0FC040F4 */ jal get_player_mp_char_height +/* 0F2828 7F0BDCF8 02002025 */ move $a0, $s0 +/* 0F282C 7F0BDCFC 26100001 */ addiu $s0, $s0, 1 +/* 0F2830 7F0BDD00 26310070 */ addiu $s1, $s1, 0x70 +/* 0F2834 7F0BDD04 1613FFF2 */ bne $s0, $s3, .L7F0BDCD0 +/* 0F2838 7F0BDD08 E620FFF4 */ swc1 $f0, -0xc($s1) +/* 0F283C 7F0BDD0C 0FC04108 */ jal get_mp_timelimit +/* 0F2840 7F0BDD10 00000000 */ nop +/* 0F2844 7F0BDD14 0FC2FF0A */ jal set_mp_time +/* 0F2848 7F0BDD18 00402025 */ move $a0, $v0 +/* 0F284C 7F0BDD1C 0FC04111 */ jal get_mp_pointlimit +/* 0F2850 7F0BDD20 00000000 */ nop +/* 0F2854 7F0BDD24 0FC2FF0D */ jal set_mp_point +/* 0F2858 7F0BDD28 00402025 */ move $a0, $v0 +/* 0F285C 7F0BDD2C 0FC04076 */ jal copy_aim_settings_to_playerdata +/* 0F2860 7F0BDD30 00000000 */ nop +.L7F0BDD34: +/* 0F2864 7F0BDD34 44804000 */ mtc1 $zero, $f8 +/* 0F2868 7F0BDD38 44805000 */ mtc1 $zero, $f10 +/* 0F286C 7F0BDD3C 3C027FFF */ lui $v0, (0x7FFFFFFF >> 16) # lui $v0, 0x7fff +/* 0F2870 7F0BDD40 3442FFFF */ ori $v0, (0x7FFFFFFF & 0xFFFF) # ori $v0, $v0, 0xffff +/* 0F2874 7F0BDD44 AE800034 */ sw $zero, 0x34($s4) +/* 0F2878 7F0BDD48 AE80003C */ sw $zero, 0x3c($s4) +/* 0F287C 7F0BDD4C AE820044 */ sw $v0, 0x44($s4) +/* 0F2880 7F0BDD50 AE800048 */ sw $zero, 0x48($s4) +/* 0F2884 7F0BDD54 AE800054 */ sw $zero, 0x54($s4) +/* 0F2888 7F0BDD58 AE800058 */ sw $zero, 0x58($s4) +/* 0F288C 7F0BDD5C AE80004C */ sw $zero, 0x4c($s4) +/* 0F2890 7F0BDD60 AE820050 */ sw $v0, 0x50($s4) +/* 0F2894 7F0BDD64 A2800068 */ sb $zero, 0x68($s4) +/* 0F2898 7F0BDD68 AE800060 */ sw $zero, 0x60($s4) +/* 0F289C 7F0BDD6C E6880038 */ swc1 $f8, 0x38($s4) +/* 0F28A0 7F0BDD70 E68A0040 */ swc1 $f10, 0x40($s4) +/* 0F28A4 7F0BDD74 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0F28A8 7F0BDD78 256BA0B0 */ addiu $t3, %lo(pPlayer) # addiu $t3, $t3, -0x5f50 +/* 0F28AC 7F0BDD7C 26520070 */ addiu $s2, $s2, 0x70 +/* 0F28B0 7F0BDD80 26940070 */ addiu $s4, $s4, 0x70 +/* 0F28B4 7F0BDD84 AE40FFC0 */ sw $zero, -0x40($s2) +/* 0F28B8 7F0BDD88 AE40FFBC */ sw $zero, -0x44($s2) +/* 0F28BC 7F0BDD8C AE40FFB8 */ sw $zero, -0x48($s2) +/* 0F28C0 7F0BDD90 164BFFC0 */ bne $s2, $t3, .L7F0BDC94 +/* 0F28C4 7F0BDD94 AE40FFB4 */ sw $zero, -0x4c($s2) +.L7F0BDD98: +/* 0F28C8 7F0BDD98 0FC013B0 */ jal something_with_stage_objectives +/* 0F28CC 7F0BDD9C 00000000 */ nop +/* 0F28D0 7F0BDDA0 0FC30802 */ jal unpause_game +/* 0F28D4 7F0BDDA4 00000000 */ nop +/* 0F28D8 7F0BDDA8 0FC26E08 */ jal sub_GAME_7F09B820 +/* 0F28DC 7F0BDDAC 00000000 */ nop +/* 0F28E0 7F0BDDB0 0FC01514 */ jal sub_GAME_7F005450 +/* 0F28E4 7F0BDDB4 00000000 */ nop +/* 0F28E8 7F0BDDB8 0FC01548 */ jal zero_contents_of_80036070_74 +/* 0F28EC 7F0BDDBC 00000000 */ nop +/* 0F28F0 7F0BDDC0 0FC00538 */ jal init_load_objpos_table +/* 0F28F4 7F0BDDC4 00000000 */ nop +/* 0F28F8 7F0BDDC8 0FC005D4 */ jal reinit_between_menus +/* 0F28FC 7F0BDDCC 00000000 */ nop +/* 0F2900 7F0BDDD0 0FC0052C */ jal init_sound_effects_registers +/* 0F2904 7F0BDDD4 00000000 */ nop +/* 0F2908 7F0BDDD8 0FC00390 */ jal init_guards +/* 0F290C 7F0BDDDC 00000000 */ nop +/* 0F2910 7F0BDDE0 0FC003D4 */ jal set_new_rand_head_bodies +/* 0F2914 7F0BDDE4 8FA40038 */ lw $a0, 0x38($sp) +/* 0F2918 7F0BDDE8 0FC00EFC */ jal proplvreset2 +/* 0F291C 7F0BDDEC 8FA40038 */ lw $a0, 0x38($sp) +/* 0F2920 7F0BDDF0 0FC01B64 */ jal alloc_explosion_smoke_casing_scorch_impact_buffers +/* 0F2924 7F0BDDF4 00000000 */ nop +/* 0F2928 7F0BDDF8 0FC01C60 */ jal sub_GAME_7F007180 +/* 0F292C 7F0BDDFC 00000000 */ nop +/* 0F2930 7F0BDE00 0FC01CA4 */ jal sub_GAME_7F007290 +/* 0F2934 7F0BDE04 00000000 */ nop +/* 0F2938 7F0BDE08 0FC01CAC */ jal sub_GAME_7F0072B0 +/* 0F293C 7F0BDE0C 00000000 */ nop +/* 0F2940 7F0BDE10 3C0C8005 */ lui $t4, %hi(current_stage_to_load) +/* 0F2944 7F0BDE14 8D8C8364 */ lw $t4, %lo(current_stage_to_load)($t4) +/* 0F2948 7F0BDE18 2401005A */ li $at, 90 +/* 0F294C 7F0BDE1C 15810005 */ bne $t4, $at, .L7F0BDE34 +/* 0F2950 7F0BDE20 00000000 */ nop +/* 0F2954 7F0BDE24 0FC01CBE */ jal disable_onscreen_cheat_text +/* 0F2958 7F0BDE28 00000000 */ nop +/* 0F295C 7F0BDE2C 10000020 */ b .L7F0BDEB0 +/* 0F2960 7F0BDE30 00000000 */ nop +.L7F0BDE34: +/* 0F2964 7F0BDE34 0FC01A24 */ jal init_path_table_links +/* 0F2968 7F0BDE38 00000000 */ nop +/* 0F296C 7F0BDE3C 0FC01410 */ jal something_with_ejected_cartridges +/* 0F2970 7F0BDE40 00000000 */ nop +/* 0F2974 7F0BDE44 0FC26919 */ jal get_num_players +/* 0F2978 7F0BDE48 00008025 */ move $s0, $zero +/* 0F297C 7F0BDE4C 18400016 */ blez $v0, .L7F0BDEA8 +/* 0F2980 7F0BDE50 00000000 */ nop +.L7F0BDE54: +/* 0F2984 7F0BDE54 0FC26C43 */ jal set_cur_player +/* 0F2988 7F0BDE58 02002025 */ move $a0, $s0 +/* 0F298C 7F0BDE5C 0FC0187C */ jal sub_GAME_7F0061F0 +/* 0F2990 7F0BDE60 00000000 */ nop +/* 0F2994 7F0BDE64 0FC01434 */ jal init_player_BONDdata_stats +/* 0F2998 7F0BDE68 00000000 */ nop +/* 0F299C 7F0BDE6C 0FC1E4FB */ jal init_player_BONDdata +/* 0F29A0 7F0BDE70 00000000 */ nop +/* 0F29A4 7F0BDE74 0FC015F1 */ jal load_camera_intro_type_values +/* 0F29A8 7F0BDE78 00000000 */ nop +/* 0F29AC 7F0BDE7C 0FC1E62E */ jal sub_GAME_7F0798B8 +/* 0F29B0 7F0BDE80 00000000 */ nop +/* 0F29B4 7F0BDE84 0FC018E3 */ jal sets_a_bunch_of_BONDdata_values_to_default +/* 0F29B8 7F0BDE88 00000000 */ nop +/* 0F29BC 7F0BDE8C 0FC01CBE */ jal disable_onscreen_cheat_text +/* 0F29C0 7F0BDE90 00000000 */ nop +/* 0F29C4 7F0BDE94 0FC26919 */ jal get_num_players +/* 0F29C8 7F0BDE98 26100001 */ addiu $s0, $s0, 1 +/* 0F29CC 7F0BDE9C 0202082A */ slt $at, $s0, $v0 +/* 0F29D0 7F0BDEA0 1420FFEC */ bnez $at, .L7F0BDE54 +/* 0F29D4 7F0BDEA4 00000000 */ nop +.L7F0BDEA8: +/* 0F29D8 7F0BDEA8 0FC26C43 */ jal set_cur_player +/* 0F29DC 7F0BDEAC 00002025 */ move $a0, $zero +.L7F0BDEB0: +/* 0F29E0 7F0BDEB0 0FC0154D */ jal set_contents_of_80036078 +/* 0F29E4 7F0BDEB4 00002025 */ move $a0, $zero +/* 0F29E8 7F0BDEB8 0FC348E0 */ jal remove_viewport_buffer +/* 0F29EC 7F0BDEBC 00000000 */ nop +/* 0F29F0 7F0BDEC0 0C000EEC */ jal setVideoWidthHeightToMode +/* 0F29F4 7F0BDEC4 24040001 */ li $a0, 1 +/* 0F29F8 7F0BDEC8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F29FC 7F0BDECC 44818000 */ mtc1 $at, $f16 +/* 0F2A00 7F0BDED0 3C018005 */ lui $at, %hi(D_80048368) +/* 0F2A04 7F0BDED4 00002025 */ move $a0, $zero +/* 0F2A08 7F0BDED8 0FC2FEFE */ jal set_controls_locked_flag +/* 0F2A0C 7F0BDEDC E4308368 */ swc1 $f16, %lo(D_80048368)($at) +/* 0F2A10 7F0BDEE0 8FBF0034 */ lw $ra, 0x34($sp) +/* 0F2A14 7F0BDEE4 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0F2A18 7F0BDEE8 8FB00020 */ lw $s0, 0x20($sp) +/* 0F2A1C 7F0BDEEC 8FB10024 */ lw $s1, 0x24($sp) +/* 0F2A20 7F0BDEF0 8FB20028 */ lw $s2, 0x28($sp) +/* 0F2A24 7F0BDEF4 8FB3002C */ lw $s3, 0x2c($sp) +/* 0F2A28 7F0BDEF8 8FB40030 */ lw $s4, 0x30($sp) +/* 0F2A2C 7F0BDEFC 03E00008 */ jr $ra +/* 0F2A30 7F0BDF00 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel stage_load +/* 0F31D0 7F0BE660 3C018005 */ lui $at, %hi(current_stage_to_load) # $at, 0x8005 +/* 0F31D4 7F0BE664 AC248394 */ sw $a0, %lo(current_stage_to_load)($at) +/* 0F31D8 7F0BE668 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F31DC 7F0BE66C 44816000 */ mtc1 $at, $f12 +/* 0F31E0 7F0BE670 24020001 */ li $v0, 1 +/* 0F31E4 7F0BE674 3C018005 */ lui $at, %hi(D_800483C0) # $at, 0x8005 +/* 0F31E8 7F0BE678 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0F31EC 7F0BE67C AC2283F4 */ sw $v0, %lo(D_800483C0)($at) +/* 0F31F0 7F0BE680 AFB10024 */ sw $s1, 0x24($sp) +/* 0F31F4 7F0BE684 3C018005 */ lui $at, %hi(controls_locked_flag) # $at, 0x8005 +/* 0F31F8 7F0BE688 3C118005 */ lui $s1, %hi(clock_timer) # $s1, 0x8005 +/* 0F31FC 7F0BE68C AC2083A0 */ sw $zero, %lo(controls_locked_flag)($at) +/* 0F3200 7F0BE690 263183A4 */ addiu $s1, %lo(clock_timer) # addiu $s1, $s1, -0x7c5c +/* 0F3204 7F0BE694 AE220000 */ sw $v0, ($s1) +/* 0F3208 7F0BE698 3C018005 */ lui $at, %hi(jp_global_timer_delta) # $at, 0x8005 +/* 0F320C 7F0BE69C E42C83A8 */ swc1 $f12, %lo(jp_global_timer_delta)($at) +/* 0F3210 7F0BE6A0 3C018005 */ lui $at, %hi(D_80048380) # $at, 0x8005 +/* 0F3214 7F0BE6A4 AC2083B0 */ sw $zero, %lo(D_80048380)($at) +/* 0F3218 7F0BE6A8 3C018005 */ lui $at, %hi(global_timer) # $at, 0x8005 +/* 0F321C 7F0BE6AC AC2083AC */ sw $zero, %lo(global_timer)($at) +/* 0F3220 7F0BE6B0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F3224 7F0BE6B4 44812000 */ mtc1 $at, $f4 + +/* 0F3228 7F0BE6B8 3C018005 */ lui $at, %hi(0x800483B4) # $at, 0x8005 +/* 0F322C 7F0BE6BC AFB00020 */ sw $s0, 0x20($sp) +/* 0F3230 7F0BE6C0 E42483B4 */ swc1 $f4, %lo(0x800483B4)($at) +/* 0F3234 7F0BE6C4 3C018005 */ lui $at, %hi(D_80048388) # $at, 0x8005 +/* 0F3238 7F0BE6C8 AC2083BC */ sw $zero, %lo(D_80048388)($at) +/* 0F323C 7F0BE6CC 3C018005 */ lui $at, %hi(D_8004838C) # $at, 0x8005 +/* 0F3240 7F0BE6D0 AC2083C0 */ sw $zero, %lo(D_8004838C)($at) +/* 0F3244 7F0BE6D4 3C018005 */ lui $at, %hi(D_80048390) # $at, 0x8005 +/* 0F3248 7F0BE6D8 44800000 */ mtc1 $zero, $f0 +/* 0F324C 7F0BE6DC 3C108005 */ lui $s0, %hi(D_80048394) # $s0, 0x8005 +/* 0F3250 7F0BE6E0 AC2083C4 */ sw $zero, %lo(D_80048390)($at) +/* 0F3254 7F0BE6E4 261083C8 */ addiu $s0, %lo(D_80048394) # addiu $s0, $s0, -0x7c38 + +/* 0F3258 7F0BE6E8 AE000000 */ sw $zero, ($s0) +/* 0F325C 7F0BE6EC 3C018005 */ lui $at, %hi(cur_mp_sec) # $at, 0x8005 +/* 0F3260 7F0BE6F0 E42083D8 */ swc1 $f0, %lo(cur_mp_sec)($at) +/* 0F3264 7F0BE6F4 3C018005 */ lui $at, %hi(D_800483B0) # $at, 0x8005 +/* 0F3268 7F0BE6F8 AC2083E4 */ sw $zero, %lo(D_800483B0)($at) +/* 0F326C 7F0BE6FC 3C018005 */ lui $at, %hi(stage_time_sec) # $at, 0x8005 +/* 0F3270 7F0BE700 E42083E8 */ swc1 $f0, %lo(stage_time_sec)($at) +/* 0F3274 7F0BE704 AFBF0034 */ sw $ra, 0x34($sp) +/* 0F3278 7F0BE708 3C018005 */ lui $at, %hi(D_800483A0) # $at, 0x8005 +/* 0F327C 7F0BE70C AFB40030 */ sw $s4, 0x30($sp) +/* 0F3280 7F0BE710 AFB3002C */ sw $s3, 0x2c($sp) +/* 0F3284 7F0BE714 AFB20028 */ sw $s2, 0x28($sp) +/* 0F3288 7F0BE718 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0F328C 7F0BE71C AFA40038 */ sw $a0, 0x38($sp) +/* 0F3290 7F0BE720 0C002492 */ jal sfx_c_70009238 +/* 0F3294 7F0BE724 AC2083D4 */ sw $zero, %lo(D_800483A0)($at) +/* 0F3298 7F0BE728 0C001C13 */ jal musicTrack1Vol +/* 0F329C 7F0BE72C 24047FFF */ li $a0, 32767 +/* 0F32A0 7F0BE730 0C001CF5 */ jal musicTrack2Vol +/* 0F32A4 7F0BE734 24047FFF */ li $a0, 32767 +/* 0F32A8 7F0BE738 0C001DD7 */ jal musicTrack3Vol +/* 0F32AC 7F0BE73C 24047FFF */ li $a0, 32767 +/* 0F32B0 7F0BE740 0FC30805 */ jal sub_GAME_7F0C1364 +/* 0F32B4 7F0BE744 00000000 */ nop +/* 0F32B8 7F0BE748 0FC01555 */ jal set_contents_of_80036078 +/* 0F32BC 7F0BE74C 24040001 */ li $a0, 1 +/* 0F32C0 7F0BE750 0FC01CD0 */ jal set_mt_tex_alloc +/* 0F32C4 7F0BE754 00000000 */ nop +/* 0F32C8 7F0BE758 0FC294DD */ jal sub_GAME_7F0A47D4 +/* 0F32CC 7F0BE75C 00000000 */ nop +/* 0F32D0 7F0BE760 0FC33324 */ jal load_prepare_global_image_bank +/* 0F32D4 7F0BE764 00000000 */ nop +/* 0F32D8 7F0BE768 0FC2B5D7 */ jal load_font_tables +/* 0F32DC 7F0BE76C 00000000 */ nop +/* 0F32E0 7F0BE770 8FAF0038 */ lw $t7, 0x38($sp) +/* 0F32E4 7F0BE774 2401005A */ li $at, 90 +/* 0F32E8 7F0BE778 15E10005 */ bne $t7, $at, .Ljp7F0BE790 +/* 0F32EC 7F0BE77C 00000000 */ nop +/* 0F32F0 7F0BE780 0FC00348 */ jal init_menus_or_reset +/* 0F32F4 7F0BE784 00000000 */ nop +/* 0F32F8 7F0BE788 10000073 */ b .Ljp7F0BE958 +/* 0F32FC 7F0BE78C 00000000 */ nop +.Ljp7F0BE790: +/* 0F3300 7F0BE790 3C048005 */ lui $a0, %hi(current_stage_to_load) # $a0, 0x8005 +/* 0F3304 7F0BE794 8C848394 */ lw $a0, %lo(current_stage_to_load)($a0) +/* 0F3308 7F0BE798 3C018007 */ lui $at, %hi(newcheatunlocked) +/* 0F330C 7F0BE79C AC2097D0 */ sw $zero, %lo(newcheatunlocked)($at) +/* 0F3310 7F0BE7A0 2401005A */ li $at, 90 +/* 0F3314 7F0BE7A4 1081001C */ beq $a0, $at, .Ljp7F0BE818 +/* 0F3318 7F0BE7A8 00000000 */ nop +/* 0F331C 7F0BE7AC 8E180000 */ lw $t8, ($s0) +/* 0F3320 7F0BE7B0 17000019 */ bnez $t8, .Ljp7F0BE818 +/* 0F3324 7F0BE7B4 00000000 */ nop +/* 0F3328 7F0BE7B8 8E390000 */ lw $t9, ($s1) +/* 0F332C 7F0BE7BC 3C088003 */ lui $t0, %hi(append_cheat_sp) # $t0, 0x8003 +/* 0F3330 7F0BE7C0 1B200015 */ blez $t9, .Ljp7F0BE818 +/* 0F3334 7F0BE7C4 00000000 */ nop +/* 0F3338 7F0BE7C8 8D08A940 */ lw $t0, %lo(append_cheat_sp)($t0) +/* 0F333C 7F0BE7CC 3C118007 */ lui $s1, %hi(CHEAT_AVAILABLE_EXTRA_CHARS) # $s1, 0x8007 +/* 0F3340 7F0BE7D0 263196E1 */ addiu $s1, %lo(CHEAT_AVAILABLE_EXTRA_CHARS) # addiu $s1, $s1, -0x691f +/* 0F3344 7F0BE7D4 11000010 */ beqz $t0, .Ljp7F0BE818 +/* 0F3348 7F0BE7D8 24100001 */ li $s0, 1 +/* 0F334C 7F0BE7DC 2412004B */ li $s2, 75 +.Ljp7F0BE7E0: +/* 0F3350 7F0BE7E0 92290000 */ lbu $t1, ($s1) +/* 0F3354 7F0BE7E4 51200008 */ beql $t1, $zero, .Ljp7F0BE808 +/* 0F3358 7F0BE7E8 26100001 */ addiu $s0, $s0, 1 +/* 0F335C 7F0BE7EC 0FC2494F */ jal is_cheat_index_equal_to_1C +/* 0F3360 7F0BE7F0 02002025 */ move $a0, $s0 +/* 0F3364 7F0BE7F4 50400004 */ beql $v0, $zero, .Ljp7F0BE808 +/* 0F3368 7F0BE7F8 26100001 */ addiu $s0, $s0, 1 +/* 0F336C 7F0BE7FC 0FC24963 */ jal turn_on_cheat_for_players +/* 0F3370 7F0BE800 02002025 */ move $a0, $s0 +/* 0F3374 7F0BE804 26100001 */ addiu $s0, $s0, 1 +.Ljp7F0BE808: +/* 0F3378 7F0BE808 1612FFF5 */ bne $s0, $s2, .Ljp7F0BE7E0 +/* 0F337C 7F0BE80C 26310001 */ addiu $s1, $s1, 1 +/* 0F3380 7F0BE810 3C048005 */ lui $a0, %hi(current_stage_to_load) # $a0, 0x8005 +/* 0F3384 7F0BE814 8C848394 */ lw $a0, %lo(current_stage_to_load)($a0) +.Ljp7F0BE818: +/* 0F3388 7F0BE818 0FC2D335 */ jal load_bg_file +/* 0F338C 7F0BE81C 00000000 */ nop +/* 0F3390 7F0BE820 3C048005 */ lui $a0, %hi(current_stage_to_load) # $a0, 0x8005 +/* 0F3394 7F0BE824 0FC253F3 */ jal store_stagenum_to_copyof_stagenum +/* 0F3398 7F0BE828 8C848394 */ lw $a0, %lo(current_stage_to_load)($a0) +/* 0F339C 7F0BE82C 0FC29502 */ jal init_watch_at_start_of_stage +/* 0F33A0 7F0BE830 00000000 */ nop +/* 0F33A4 7F0BE834 0FC307AB */ jal sub_GAME_7F0C11FC +/* 0F33A8 7F0BE838 8FA40038 */ lw $a0, 0x38($sp) +/* 0F33AC 7F0BE83C 3C0A8008 */ lui $t2, %hi(player1_player_data) +/* 0F33B0 7F0BE840 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 0F33B4 7F0BE844 25529F60 */ addiu $s2, $t2, %lo(player1_player_data) +/* 0F33B8 7F0BE848 4481A000 */ mtc1 $at, $f20 +/* 0F33BC 7F0BE84C 0240A025 */ move $s4, $s2 +/* 0F33C0 7F0BE850 24130004 */ li $s3, 4 +.Ljp7F0BE854: +/* 0F33C4 7F0BE854 0FC26C01 */ jal get_num_players +/* 0F33C8 7F0BE858 00000000 */ nop +/* 0F33CC 7F0BE85C 24010001 */ li $at, 1 +/* 0F33D0 7F0BE860 14410009 */ bne $v0, $at, .Ljp7F0BE888 +/* 0F33D4 7F0BE864 00008025 */ move $s0, $zero +/* 0F33D8 7F0BE868 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F33DC 7F0BE86C 44813000 */ mtc1 $at, $f6 +/* 0F33E0 7F0BE870 44814000 */ mtc1 $at, $f8 +/* 0F33E4 7F0BE874 A280006A */ sb $zero, 0x6a($s4) +/* 0F33E8 7F0BE878 A280006B */ sb $zero, 0x6b($s4) +/* 0F33EC 7F0BE87C E686005C */ swc1 $f6, 0x5c($s4) +/* 0F33F0 7F0BE880 1000001C */ b .Ljp7F0BE8F4 +/* 0F33F4 7F0BE884 E6880064 */ swc1 $f8, 0x64($s4) +.Ljp7F0BE888: +/* 0F33F8 7F0BE888 3C118008 */ lui $s1, %hi(player1_player_data) # $s1, 0x8008 +/* 0F33FC 7F0BE88C 26319F60 */ addiu $s1, %lo(player1_player_data) # addiu $s1, $s1, -0x60a0 +.Ljp7F0BE890: +/* 0F3400 7F0BE890 0FC05202 */ jal get_scenario +/* 0F3404 7F0BE894 00000000 */ nop +/* 0F3408 7F0BE898 14530003 */ bne $v0, $s3, .Ljp7F0BE8A8 +/* 0F340C 7F0BE89C 00000000 */ nop +/* 0F3410 7F0BE8A0 10000004 */ b .Ljp7F0BE8B4 +/* 0F3414 7F0BE8A4 E634005C */ swc1 $f20, 0x5c($s1) +.Ljp7F0BE8A8: +/* 0F3418 7F0BE8A8 0FC040FB */ jal get_player_mp_handicap +/* 0F341C 7F0BE8AC 02002025 */ move $a0, $s0 +/* 0F3420 7F0BE8B0 E620005C */ swc1 $f0, 0x5c($s1) +.Ljp7F0BE8B4: +/* 0F3424 7F0BE8B4 0FC04104 */ jal get_player_mp_char_height +/* 0F3428 7F0BE8B8 02002025 */ move $a0, $s0 +/* 0F342C 7F0BE8BC 26100001 */ addiu $s0, $s0, 1 +/* 0F3430 7F0BE8C0 26310070 */ addiu $s1, $s1, 0x70 +/* 0F3434 7F0BE8C4 1613FFF2 */ bne $s0, $s3, .Ljp7F0BE890 +/* 0F3438 7F0BE8C8 E620FFF4 */ swc1 $f0, -0xc($s1) +/* 0F343C 7F0BE8CC 0FC04118 */ jal get_mp_timelimit +/* 0F3440 7F0BE8D0 00000000 */ nop +/* 0F3444 7F0BE8D4 0FC30224 */ jal set_mp_time +/* 0F3448 7F0BE8D8 00402025 */ move $a0, $v0 +/* 0F344C 7F0BE8DC 0FC04121 */ jal get_mp_pointlimit +/* 0F3450 7F0BE8E0 00000000 */ nop +/* 0F3454 7F0BE8E4 0FC30227 */ jal set_mp_point +/* 0F3458 7F0BE8E8 00402025 */ move $a0, $v0 +/* 0F345C 7F0BE8EC 0FC04086 */ jal copy_aim_settings_to_playerdata +/* 0F3460 7F0BE8F0 00000000 */ nop +.Ljp7F0BE8F4: +/* 0F3464 7F0BE8F4 44805000 */ mtc1 $zero, $f10 +/* 0F3468 7F0BE8F8 44808000 */ mtc1 $zero, $f16 +/* 0F346C 7F0BE8FC 3C027FFF */ lui $v0, (0x7FFFFFFF >> 16) # lui $v0, 0x7fff +/* 0F3470 7F0BE900 3442FFFF */ ori $v0, (0x7FFFFFFF & 0xFFFF) # ori $v0, $v0, 0xffff +/* 0F3474 7F0BE904 AE800034 */ sw $zero, 0x34($s4) +/* 0F3478 7F0BE908 AE80003C */ sw $zero, 0x3c($s4) +/* 0F347C 7F0BE90C AE820044 */ sw $v0, 0x44($s4) +/* 0F3480 7F0BE910 AE800048 */ sw $zero, 0x48($s4) +/* 0F3484 7F0BE914 AE800054 */ sw $zero, 0x54($s4) +/* 0F3488 7F0BE918 AE800058 */ sw $zero, 0x58($s4) +/* 0F348C 7F0BE91C AE80004C */ sw $zero, 0x4c($s4) +/* 0F3490 7F0BE920 AE820050 */ sw $v0, 0x50($s4) +/* 0F3494 7F0BE924 A2800068 */ sb $zero, 0x68($s4) +/* 0F3498 7F0BE928 AE800060 */ sw $zero, 0x60($s4) +/* 0F349C 7F0BE92C E68A0038 */ swc1 $f10, 0x38($s4) +/* 0F34A0 7F0BE930 E6900040 */ swc1 $f16, 0x40($s4) +/* 0F34A4 7F0BE934 3C0B8008 */ lui $t3, %hi(pPlayer) # $t3, 0x8008 +/* 0F34A8 7F0BE938 256BA120 */ addiu $t3, %lo(pPlayer) # addiu $t3, $t3, -0x5ee0 +/* 0F34AC 7F0BE93C 26520070 */ addiu $s2, $s2, 0x70 +/* 0F34B0 7F0BE940 26940070 */ addiu $s4, $s4, 0x70 +/* 0F34B4 7F0BE944 AE40FFC0 */ sw $zero, -0x40($s2) +/* 0F34B8 7F0BE948 AE40FFBC */ sw $zero, -0x44($s2) +/* 0F34BC 7F0BE94C AE40FFB8 */ sw $zero, -0x48($s2) +/* 0F34C0 7F0BE950 164BFFC0 */ bne $s2, $t3, .Ljp7F0BE854 +/* 0F34C4 7F0BE954 AE40FFB4 */ sw $zero, -0x4c($s2) +.Ljp7F0BE958: +/* 0F34C8 7F0BE958 0FC013B4 */ jal something_with_stage_objectives +/* 0F34CC 7F0BE95C 00000000 */ nop +/* 0F34D0 7F0BE960 0FC30B2E */ jal unpause_game +/* 0F34D4 7F0BE964 00000000 */ nop +/* 0F34D8 7F0BE968 0FC270F0 */ jal sub_GAME_7F09B820 +/* 0F34DC 7F0BE96C 00000000 */ nop +/* 0F34E0 7F0BE970 0FC0151C */ jal sub_GAME_7F005450 +/* 0F34E4 7F0BE974 00000000 */ nop +/* 0F34E8 7F0BE978 0FC01550 */ jal zero_contents_of_80036070_74 +/* 0F34EC 7F0BE97C 00000000 */ nop +/* 0F34F0 7F0BE980 0FC00538 */ jal init_load_objpos_table +/* 0F34F4 7F0BE984 00000000 */ nop +/* 0F34F8 7F0BE988 0FC005D4 */ jal reinit_between_menus +/* 0F34FC 7F0BE98C 00000000 */ nop +/* 0F3500 7F0BE990 0FC0052C */ jal init_sound_effects_registers +/* 0F3504 7F0BE994 00000000 */ nop +/* 0F3508 7F0BE998 0FC00390 */ jal init_guards +/* 0F350C 7F0BE99C 00000000 */ nop +/* 0F3510 7F0BE9A0 0FC003D4 */ jal set_new_rand_head_bodies +/* 0F3514 7F0BE9A4 8FA40038 */ lw $a0, 0x38($sp) +/* 0F3518 7F0BE9A8 0FC00EFC */ jal proplvreset2 +/* 0F351C 7F0BE9AC 8FA40038 */ lw $a0, 0x38($sp) +/* 0F3520 7F0BE9B0 0FC01B6C */ jal alloc_explosion_smoke_casing_scorch_impact_buffers +/* 0F3524 7F0BE9B4 00000000 */ nop +/* 0F3528 7F0BE9B8 0FC01C68 */ jal sub_GAME_7F007180 +/* 0F352C 7F0BE9BC 00000000 */ nop +/* 0F3530 7F0BE9C0 0FC01CAC */ jal sub_GAME_7F007290 +/* 0F3534 7F0BE9C4 00000000 */ nop +/* 0F3538 7F0BE9C8 0FC01CB4 */ jal sub_GAME_7F0072B0 +/* 0F353C 7F0BE9CC 00000000 */ nop +/* 0F3540 7F0BE9D0 3C0C8005 */ lui $t4, %hi(current_stage_to_load) # $t4, 0x8005 +/* 0F3544 7F0BE9D4 8D8C8394 */ lw $t4, %lo(current_stage_to_load)($t4) +/* 0F3548 7F0BE9D8 2401005A */ li $at, 90 +/* 0F354C 7F0BE9DC 15810005 */ bne $t4, $at, .Ljp7F0BE9F4 +/* 0F3550 7F0BE9E0 00000000 */ nop +/* 0F3554 7F0BE9E4 0FC01CC6 */ jal disable_onscreen_cheat_text +/* 0F3558 7F0BE9E8 00000000 */ nop +/* 0F355C 7F0BE9EC 10000020 */ b .Ljp7F0BEA70 +/* 0F3560 7F0BE9F0 00000000 */ nop +.Ljp7F0BE9F4: +/* 0F3564 7F0BE9F4 0FC01A2C */ jal init_path_table_links +/* 0F3568 7F0BE9F8 00000000 */ nop +/* 0F356C 7F0BE9FC 0FC01418 */ jal something_with_ejected_cartridges +/* 0F3570 7F0BEA00 00000000 */ nop +/* 0F3574 7F0BEA04 0FC26C01 */ jal get_num_players +/* 0F3578 7F0BEA08 00008025 */ move $s0, $zero +/* 0F357C 7F0BEA0C 18400016 */ blez $v0, .Ljp7F0BEA68 +/* 0F3580 7F0BEA10 00000000 */ nop +.Ljp7F0BEA14: +/* 0F3584 7F0BEA14 0FC26F2B */ jal set_cur_player +/* 0F3588 7F0BEA18 02002025 */ move $a0, $s0 +/* 0F358C 7F0BEA1C 0FC0187C */ jal sub_GAME_7F0061F0 +/* 0F3590 7F0BEA20 00000000 */ nop +/* 0F3594 7F0BEA24 0FC0143C */ jal init_player_BONDdata_stats +/* 0F3598 7F0BEA28 00000000 */ nop +/* 0F359C 7F0BEA2C 0FC1E677 */ jal init_player_BONDdata +/* 0F35A0 7F0BEA30 00000000 */ nop +/* 0F35A4 7F0BEA34 0FC015F9 */ jal load_camera_intro_type_values +/* 0F35A8 7F0BEA38 00000000 */ nop +/* 0F35AC 7F0BEA3C 0FC1E7AA */ jal sub_GAME_7F0798B8 +/* 0F35B0 7F0BEA40 00000000 */ nop +/* 0F35B4 7F0BEA44 0FC018E3 */ jal sets_a_bunch_of_BONDdata_values_to_default +/* 0F35B8 7F0BEA48 00000000 */ nop +/* 0F35BC 7F0BEA4C 0FC01CC6 */ jal disable_onscreen_cheat_text +/* 0F35C0 7F0BEA50 00000000 */ nop +/* 0F35C4 7F0BEA54 0FC26C01 */ jal get_num_players +/* 0F35C8 7F0BEA58 26100001 */ addiu $s0, $s0, 1 +/* 0F35CC 7F0BEA5C 0202082A */ slt $at, $s0, $v0 +/* 0F35D0 7F0BEA60 1420FFEC */ bnez $at, .Ljp7F0BEA14 +/* 0F35D4 7F0BEA64 00000000 */ nop +.Ljp7F0BEA68: +/* 0F35D8 7F0BEA68 0FC26F2B */ jal set_cur_player +/* 0F35DC 7F0BEA6C 00002025 */ move $a0, $zero +.Ljp7F0BEA70: +/* 0F35E0 7F0BEA70 0FC01555 */ jal set_contents_of_80036078 +/* 0F35E4 7F0BEA74 00002025 */ move $a0, $zero +/* 0F35E8 7F0BEA78 0FC34C18 */ jal remove_viewport_buffer +/* 0F35EC 7F0BEA7C 00000000 */ nop +/* 0F35F0 7F0BEA80 0C000EEC */ jal setVideoWidthHeightToMode +/* 0F35F4 7F0BEA84 24040001 */ li $a0, 1 +/* 0F35F8 7F0BEA88 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F35FC 7F0BEA8C 44819000 */ mtc1 $at, $f18 +/* 0F3600 7F0BEA90 3C018005 */ lui $at, %hi(D_80048368) # $at, 0x8005 +/* 0F3604 7F0BEA94 00002025 */ move $a0, $zero +/* 0F3608 7F0BEA98 0FC3020C */ jal set_controls_locked_flag +/* 0F360C 7F0BEA9C E4328398 */ swc1 $f18, %lo(D_80048368)($at) +/* 0F3610 7F0BEAA0 8FBF0034 */ lw $ra, 0x34($sp) +/* 0F3614 7F0BEAA4 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0F3618 7F0BEAA8 8FB00020 */ lw $s0, 0x20($sp) +/* 0F361C 7F0BEAAC 8FB10024 */ lw $s1, 0x24($sp) +/* 0F3620 7F0BEAB0 8FB20028 */ lw $s2, 0x28($sp) +/* 0F3624 7F0BEAB4 8FB3002C */ lw $s3, 0x2c($sp) +/* 0F3628 7F0BEAB8 8FB40030 */ lw $s4, 0x30($sp) +/* 0F362C 7F0BEABC 03E00008 */ jr $ra +/* 0F3630 7F0BEAC0 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + +#endif + + + +s32 sub_GAME_7F0BDF04(void) { + return current_stage_to_load; +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BDF10(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BDF10 +/* 0F2A40 7F0BDF10 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0F2A44 7F0BDF14 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F2A48 7F0BDF18 AFB00018 */ sw $s0, 0x18($sp) +/* 0F2A4C 7F0BDF1C 1080003B */ beqz $a0, .L7F0BE00C +/* 0F2A50 7F0BDF20 AFA00020 */ sw $zero, 0x20($sp) +/* 0F2A54 7F0BDF24 3C058005 */ lui $a1, %hi(D_800483CC) +/* 0F2A58 7F0BDF28 8CA583CC */ lw $a1, %lo(D_800483CC)($a1) +/* 0F2A5C 7F0BDF2C 0FC2E779 */ jal sub_GAME_7F0B9DE4 +/* 0F2A60 7F0BDF30 2406FFFF */ li $a2, -1 +/* 0F2A64 7F0BDF34 3C0E8005 */ lui $t6, %hi(D_800483D4) +/* 0F2A68 7F0BDF38 8DCE83D4 */ lw $t6, %lo(D_800483D4)($t6) +/* 0F2A6C 7F0BDF3C 3C0F8005 */ lui $t7, %hi(D_800483D8) +/* 0F2A70 7F0BDF40 8DEF83D8 */ lw $t7, %lo(D_800483D8)($t7) +/* 0F2A74 7F0BDF44 3C018005 */ lui $at, %hi(D_800483D0) +/* 0F2A78 7F0BDF48 3C188005 */ lui $t8, %hi(D_800483DC) +/* 0F2A7C 7F0BDF4C AC2E83D0 */ sw $t6, %lo(D_800483D0)($at) +/* 0F2A80 7F0BDF50 8F1883DC */ lw $t8, %lo(D_800483DC)($t8) +/* 0F2A84 7F0BDF54 3C018005 */ lui $at, %hi(D_800483D4) +/* 0F2A88 7F0BDF58 AC2F83D4 */ sw $t7, %lo(D_800483D4)($at) +/* 0F2A8C 7F0BDF5C 3C038005 */ lui $v1, %hi(D_800483E0) +/* 0F2A90 7F0BDF60 3C018005 */ lui $at, %hi(D_800483D8) +/* 0F2A94 7F0BDF64 8C6383E0 */ lw $v1, %lo(D_800483E0)($v1) +/* 0F2A98 7F0BDF68 AC3883D8 */ sw $t8, %lo(D_800483D8)($at) +/* 0F2A9C 7F0BDF6C 3C018005 */ lui $at, %hi(D_800483DC) +/* 0F2AA0 7F0BDF70 AFA20028 */ sw $v0, 0x28($sp) +/* 0F2AA4 7F0BDF74 00002025 */ move $a0, $zero +/* 0F2AA8 7F0BDF78 34058000 */ li $a1, 32768 +/* 0F2AAC 7F0BDF7C 0C0030C3 */ jal get_controller_buttons_held +/* 0F2AB0 7F0BDF80 AC2383DC */ sw $v1, %lo(D_800483DC)($at) +/* 0F2AB4 7F0BDF84 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2AB8 7F0BDF88 24040001 */ li $a0, 1 +/* 0F2ABC 7F0BDF8C 0C0030C3 */ jal get_controller_buttons_held +/* 0F2AC0 7F0BDF90 34058000 */ li $a1, 32768 +/* 0F2AC4 7F0BDF94 3C198005 */ lui $t9, %hi(D_800483DC) +/* 0F2AC8 7F0BDF98 8F3983DC */ lw $t9, %lo(D_800483DC)($t9) +/* 0F2ACC 7F0BDF9C 00501825 */ or $v1, $v0, $s0 +/* 0F2AD0 7F0BDFA0 3C0B8005 */ lui $t3, %hi(D_800483D0) +/* 0F2AD4 7F0BDFA4 13230006 */ beq $t9, $v1, .L7F0BDFC0 +/* 0F2AD8 7F0BDFA8 3C0C8005 */ lui $t4, %hi(D_800483D4) +/* 0F2ADC 7F0BDFAC 3C028005 */ lui $v0, %hi(D_800483C0) +/* 0F2AE0 7F0BDFB0 244283C0 */ addiu $v0, %lo(D_800483C0) # addiu $v0, $v0, -0x7c40 +/* 0F2AE4 7F0BDFB4 8C490000 */ lw $t1, ($v0) +/* 0F2AE8 7F0BDFB8 392A0001 */ xori $t2, $t1, 1 +/* 0F2AEC 7F0BDFBC AC4A0000 */ sw $t2, ($v0) +.L7F0BDFC0: +/* 0F2AF0 7F0BDFC0 8D6B83D0 */ lw $t3, %lo(D_800483D0)($t3) +/* 0F2AF4 7F0BDFC4 8D8C83D4 */ lw $t4, %lo(D_800483D4)($t4) +/* 0F2AF8 7F0BDFC8 3C028005 */ lui $v0, %hi(D_800483C0) +/* 0F2AFC 7F0BDFCC 244283C0 */ addiu $v0, %lo(D_800483C0) # addiu $v0, $v0, -0x7c40 +/* 0F2B00 7F0BDFD0 116C0004 */ beq $t3, $t4, .L7F0BDFE4 +/* 0F2B04 7F0BDFD4 3C018005 */ lui $at, %hi(D_800483E0) +/* 0F2B08 7F0BDFD8 8C4E0000 */ lw $t6, ($v0) +/* 0F2B0C 7F0BDFDC 39CF0001 */ xori $t7, $t6, 1 +/* 0F2B10 7F0BDFE0 AC4F0000 */ sw $t7, ($v0) +.L7F0BDFE4: +/* 0F2B14 7F0BDFE4 10600004 */ beqz $v1, .L7F0BDFF8 +/* 0F2B18 7F0BDFE8 AC2383E0 */ sw $v1, %lo(D_800483E0)($at) +/* 0F2B1C 7F0BDFEC 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2B20 7F0BDFF0 10000002 */ b .L7F0BDFFC +/* 0F2B24 7F0BDFF4 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +.L7F0BDFF8: +/* 0F2B28 7F0BDFF8 2404FFFF */ li $a0, -1 +.L7F0BDFFC: +/* 0F2B2C 7F0BDFFC 0FC2E77D */ jal sub_GAME_7F0B9DF4 +/* 0F2B30 7F0BE000 00000000 */ nop +/* 0F2B34 7F0BE004 100000BC */ b .L7F0BE2F8 +/* 0F2B38 7F0BE008 8FA20028 */ lw $v0, 0x28($sp) +.L7F0BE00C: +/* 0F2B3C 7F0BE00C 00002025 */ move $a0, $zero +/* 0F2B40 7F0BE010 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2B44 7F0BE014 24050200 */ li $a1, 512 +/* 0F2B48 7F0BE018 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2B4C 7F0BE01C 24040001 */ li $a0, 1 +/* 0F2B50 7F0BE020 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2B54 7F0BE024 24050200 */ li $a1, 512 +/* 0F2B58 7F0BE028 0050C025 */ or $t8, $v0, $s0 +/* 0F2B5C 7F0BE02C 1300000B */ beqz $t8, .L7F0BE05C +/* 0F2B60 7F0BE030 24050100 */ li $a1, 256 +/* 0F2B64 7F0BE034 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2B68 7F0BE038 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2B6C 7F0BE03C 24190001 */ li $t9, 1 +/* 0F2B70 7F0BE040 3C018005 */ lui $at, %hi(D_800483CC) +/* 0F2B74 7F0BE044 2484FFFF */ addiu $a0, $a0, -1 +/* 0F2B78 7F0BE048 AC2483CC */ sw $a0, %lo(D_800483CC)($at) +/* 0F2B7C 7F0BE04C 04810003 */ bgez $a0, .L7F0BE05C +/* 0F2B80 7F0BE050 AFB90020 */ sw $t9, 0x20($sp) +/* 0F2B84 7F0BE054 3C018005 */ lui $at, %hi(D_800483CC) +/* 0F2B88 7F0BE058 AC2083CC */ sw $zero, %lo(D_800483CC)($at) +.L7F0BE05C: +/* 0F2B8C 7F0BE05C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2B90 7F0BE060 00002025 */ move $a0, $zero +/* 0F2B94 7F0BE064 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2B98 7F0BE068 24040001 */ li $a0, 1 +/* 0F2B9C 7F0BE06C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2BA0 7F0BE070 24050100 */ li $a1, 256 +/* 0F2BA4 7F0BE074 00504025 */ or $t0, $v0, $s0 +/* 0F2BA8 7F0BE078 11000008 */ beqz $t0, .L7F0BE09C +/* 0F2BAC 7F0BE07C 24050010 */ li $a1, 16 +/* 0F2BB0 7F0BE080 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2BB4 7F0BE084 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2BB8 7F0BE088 24090001 */ li $t1, 1 +/* 0F2BBC 7F0BE08C 3C018005 */ lui $at, %hi(D_800483CC) +/* 0F2BC0 7F0BE090 24840001 */ addiu $a0, $a0, 1 +/* 0F2BC4 7F0BE094 AC2483CC */ sw $a0, %lo(D_800483CC)($at) +/* 0F2BC8 7F0BE098 AFA90020 */ sw $t1, 0x20($sp) +.L7F0BE09C: +/* 0F2BCC 7F0BE09C 0C0030C3 */ jal get_controller_buttons_held +/* 0F2BD0 7F0BE0A0 00002025 */ move $a0, $zero +/* 0F2BD4 7F0BE0A4 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2BD8 7F0BE0A8 24040001 */ li $a0, 1 +/* 0F2BDC 7F0BE0AC 0C0030C3 */ jal get_controller_buttons_held +/* 0F2BE0 7F0BE0B0 24050010 */ li $a1, 16 +/* 0F2BE4 7F0BE0B4 00505025 */ or $t2, $v0, $s0 +/* 0F2BE8 7F0BE0B8 11400012 */ beqz $t2, .L7F0BE104 +/* 0F2BEC 7F0BE0BC 00002025 */ move $a0, $zero +/* 0F2BF0 7F0BE0C0 0C0030C3 */ jal get_controller_buttons_held +/* 0F2BF4 7F0BE0C4 24050020 */ li $a1, 32 +/* 0F2BF8 7F0BE0C8 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2BFC 7F0BE0CC 24040001 */ li $a0, 1 +/* 0F2C00 7F0BE0D0 0C0030C3 */ jal get_controller_buttons_held +/* 0F2C04 7F0BE0D4 24050020 */ li $a1, 32 +/* 0F2C08 7F0BE0D8 00505825 */ or $t3, $v0, $s0 +/* 0F2C0C 7F0BE0DC 11600009 */ beqz $t3, .L7F0BE104 +/* 0F2C10 7F0BE0E0 00002025 */ move $a0, $zero +/* 0F2C14 7F0BE0E4 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2C18 7F0BE0E8 24050400 */ li $a1, 1024 +/* 0F2C1C 7F0BE0EC 10400081 */ beqz $v0, .L7F0BE2F4 +/* 0F2C20 7F0BE0F0 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2C24 7F0BE0F4 0FC2E6D9 */ jal sub_GAME_7F0B9B64 +/* 0F2C28 7F0BE0F8 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2C2C 7F0BE0FC 1000007E */ b .L7F0BE2F8 +/* 0F2C30 7F0BE100 00001025 */ move $v0, $zero +.L7F0BE104: +/* 0F2C34 7F0BE104 00002025 */ move $a0, $zero +/* 0F2C38 7F0BE108 0C0030C3 */ jal get_controller_buttons_held +/* 0F2C3C 7F0BE10C 24050010 */ li $a1, 16 +/* 0F2C40 7F0BE110 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2C44 7F0BE114 24040001 */ li $a0, 1 +/* 0F2C48 7F0BE118 0C0030C3 */ jal get_controller_buttons_held +/* 0F2C4C 7F0BE11C 24050010 */ li $a1, 16 +/* 0F2C50 7F0BE120 00506025 */ or $t4, $v0, $s0 +/* 0F2C54 7F0BE124 11800029 */ beqz $t4, .L7F0BE1CC +/* 0F2C58 7F0BE128 00002025 */ move $a0, $zero +/* 0F2C5C 7F0BE12C 00002025 */ move $a0, $zero +/* 0F2C60 7F0BE130 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2C64 7F0BE134 24050400 */ li $a1, 1024 +/* 0F2C68 7F0BE138 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2C6C 7F0BE13C 24040001 */ li $a0, 1 +/* 0F2C70 7F0BE140 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2C74 7F0BE144 24050400 */ li $a1, 1024 +/* 0F2C78 7F0BE148 00506825 */ or $t5, $v0, $s0 +/* 0F2C7C 7F0BE14C 11A0000A */ beqz $t5, .L7F0BE178 +/* 0F2C80 7F0BE150 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2C84 7F0BE154 0FC2E6B9 */ jal sub_GAME_7F0B9AE4 +/* 0F2C88 7F0BE158 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2C8C 7F0BE15C 14400006 */ bnez $v0, .L7F0BE178 +/* 0F2C90 7F0BE160 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2C94 7F0BE164 240E0001 */ li $t6, 1 +/* 0F2C98 7F0BE168 AFAE0020 */ sw $t6, 0x20($sp) +/* 0F2C9C 7F0BE16C 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2CA0 7F0BE170 0FC2E76F */ jal sub_GAME_7F0B9DBC +/* 0F2CA4 7F0BE174 00002825 */ move $a1, $zero +.L7F0BE178: +/* 0F2CA8 7F0BE178 00002025 */ move $a0, $zero +/* 0F2CAC 7F0BE17C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2CB0 7F0BE180 24050800 */ li $a1, 2048 +/* 0F2CB4 7F0BE184 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2CB8 7F0BE188 24040001 */ li $a0, 1 +/* 0F2CBC 7F0BE18C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2CC0 7F0BE190 24050800 */ li $a1, 2048 +/* 0F2CC4 7F0BE194 00507825 */ or $t7, $v0, $s0 +/* 0F2CC8 7F0BE198 11E00056 */ beqz $t7, .L7F0BE2F4 +/* 0F2CCC 7F0BE19C 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2CD0 7F0BE1A0 0FC2E6B9 */ jal sub_GAME_7F0B9AE4 +/* 0F2CD4 7F0BE1A4 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2CD8 7F0BE1A8 10400052 */ beqz $v0, .L7F0BE2F4 +/* 0F2CDC 7F0BE1AC 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2CE0 7F0BE1B0 24180001 */ li $t8, 1 +/* 0F2CE4 7F0BE1B4 AFB80020 */ sw $t8, 0x20($sp) +/* 0F2CE8 7F0BE1B8 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2CEC 7F0BE1BC 0FC2E76F */ jal sub_GAME_7F0B9DBC +/* 0F2CF0 7F0BE1C0 24050001 */ li $a1, 1 +/* 0F2CF4 7F0BE1C4 1000004C */ b .L7F0BE2F8 +/* 0F2CF8 7F0BE1C8 00001025 */ move $v0, $zero +.L7F0BE1CC: +/* 0F2CFC 7F0BE1CC 0C0030C3 */ jal get_controller_buttons_held +/* 0F2D00 7F0BE1D0 24050020 */ li $a1, 32 +/* 0F2D04 7F0BE1D4 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2D08 7F0BE1D8 24040001 */ li $a0, 1 +/* 0F2D0C 7F0BE1DC 0C0030C3 */ jal get_controller_buttons_held +/* 0F2D10 7F0BE1E0 24050020 */ li $a1, 32 +/* 0F2D14 7F0BE1E4 0050C825 */ or $t9, $v0, $s0 +/* 0F2D18 7F0BE1E8 13200027 */ beqz $t9, .L7F0BE288 +/* 0F2D1C 7F0BE1EC 00002025 */ move $a0, $zero +/* 0F2D20 7F0BE1F0 00002025 */ move $a0, $zero +/* 0F2D24 7F0BE1F4 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2D28 7F0BE1F8 24050400 */ li $a1, 1024 +/* 0F2D2C 7F0BE1FC 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2D30 7F0BE200 24040001 */ li $a0, 1 +/* 0F2D34 7F0BE204 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2D38 7F0BE208 24050400 */ li $a1, 1024 +/* 0F2D3C 7F0BE20C 00504025 */ or $t0, $v0, $s0 +/* 0F2D40 7F0BE210 11000009 */ beqz $t0, .L7F0BE238 +/* 0F2D44 7F0BE214 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2D48 7F0BE218 0FC2E6C1 */ jal sub_GAME_7F0B9B04 +/* 0F2D4C 7F0BE21C 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2D50 7F0BE220 10400005 */ beqz $v0, .L7F0BE238 +/* 0F2D54 7F0BE224 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2D58 7F0BE228 24090001 */ li $t1, 1 +/* 0F2D5C 7F0BE22C AFA90020 */ sw $t1, 0x20($sp) +/* 0F2D60 7F0BE230 0FC2E6D1 */ jal sub_GAME_7F0B9B44 +/* 0F2D64 7F0BE234 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +.L7F0BE238: +/* 0F2D68 7F0BE238 00002025 */ move $a0, $zero +/* 0F2D6C 7F0BE23C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2D70 7F0BE240 24050800 */ li $a1, 2048 +/* 0F2D74 7F0BE244 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2D78 7F0BE248 24040001 */ li $a0, 1 +/* 0F2D7C 7F0BE24C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2D80 7F0BE250 24050800 */ li $a1, 2048 +/* 0F2D84 7F0BE254 00505025 */ or $t2, $v0, $s0 +/* 0F2D88 7F0BE258 11400026 */ beqz $t2, .L7F0BE2F4 +/* 0F2D8C 7F0BE25C 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2D90 7F0BE260 0FC2E6C1 */ jal sub_GAME_7F0B9B04 +/* 0F2D94 7F0BE264 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2D98 7F0BE268 14400022 */ bnez $v0, .L7F0BE2F4 +/* 0F2D9C 7F0BE26C 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2DA0 7F0BE270 240B0001 */ li $t3, 1 +/* 0F2DA4 7F0BE274 AFAB0020 */ sw $t3, 0x20($sp) +/* 0F2DA8 7F0BE278 0FC2E6C9 */ jal sub_GAME_7F0B9B24 +/* 0F2DAC 7F0BE27C 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +/* 0F2DB0 7F0BE280 1000001D */ b .L7F0BE2F8 +/* 0F2DB4 7F0BE284 00001025 */ move $v0, $zero +.L7F0BE288: +/* 0F2DB8 7F0BE288 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2DBC 7F0BE28C 24050400 */ li $a1, 1024 +/* 0F2DC0 7F0BE290 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2DC4 7F0BE294 24040001 */ li $a0, 1 +/* 0F2DC8 7F0BE298 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2DCC 7F0BE29C 24050400 */ li $a1, 1024 +/* 0F2DD0 7F0BE2A0 00506025 */ or $t4, $v0, $s0 +/* 0F2DD4 7F0BE2A4 11800005 */ beqz $t4, .L7F0BE2BC +/* 0F2DD8 7F0BE2A8 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2DDC 7F0BE2AC 240D0001 */ li $t5, 1 +/* 0F2DE0 7F0BE2B0 AFAD0020 */ sw $t5, 0x20($sp) +/* 0F2DE4 7F0BE2B4 0FC2E69F */ jal sub_GAME_7F0B9A7C +/* 0F2DE8 7F0BE2B8 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +.L7F0BE2BC: +/* 0F2DEC 7F0BE2BC 00002025 */ move $a0, $zero +/* 0F2DF0 7F0BE2C0 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2DF4 7F0BE2C4 24050800 */ li $a1, 2048 +/* 0F2DF8 7F0BE2C8 3050FFFF */ andi $s0, $v0, 0xffff +/* 0F2DFC 7F0BE2CC 24040001 */ li $a0, 1 +/* 0F2E00 7F0BE2D0 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2E04 7F0BE2D4 24050800 */ li $a1, 2048 +/* 0F2E08 7F0BE2D8 00507025 */ or $t6, $v0, $s0 +/* 0F2E0C 7F0BE2DC 11C00005 */ beqz $t6, .L7F0BE2F4 +/* 0F2E10 7F0BE2E0 3C048005 */ lui $a0, %hi(D_800483CC) +/* 0F2E14 7F0BE2E4 240F0001 */ li $t7, 1 +/* 0F2E18 7F0BE2E8 AFAF0020 */ sw $t7, 0x20($sp) +/* 0F2E1C 7F0BE2EC 0FC2E68B */ jal sub_GAME_7F0B9A2C +/* 0F2E20 7F0BE2F0 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) +.L7F0BE2F4: +/* 0F2E24 7F0BE2F4 00001025 */ move $v0, $zero +.L7F0BE2F8: +/* 0F2E28 7F0BE2F8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F2E2C 7F0BE2FC 8FB00018 */ lw $s0, 0x18($sp) +/* 0F2E30 7F0BE300 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0F2E34 7F0BE304 03E00008 */ jr $ra +/* 0F2E38 7F0BE308 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BE30C(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BE30C +/* 0F2E3C 7F0BE30C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0F2E40 7F0BE310 AFA40060 */ sw $a0, 0x60($sp) +/* 0F2E44 7F0BE314 248F0008 */ addiu $t7, $a0, 8 +/* 0F2E48 7F0BE318 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F2E4C 7F0BE31C AFB10018 */ sw $s1, 0x18($sp) +/* 0F2E50 7F0BE320 AFB00014 */ sw $s0, 0x14($sp) +/* 0F2E54 7F0BE324 AFAF0060 */ sw $t7, 0x60($sp) +/* 0F2E58 7F0BE328 3C18BC00 */ lui $t8, (0xBC000006 >> 16) # lui $t8, 0xbc00 +/* 0F2E5C 7F0BE32C 37180006 */ ori $t8, (0xBC000006 & 0xFFFF) # ori $t8, $t8, 6 +/* 0F2E60 7F0BE330 AC980000 */ sw $t8, ($a0) +/* 0F2E64 7F0BE334 AC800004 */ sw $zero, 4($a0) +/* 0F2E68 7F0BE338 8FB00060 */ lw $s0, 0x60($sp) +/* 0F2E6C 7F0BE33C 3C0ABC00 */ lui $t2, (0xBC000406 >> 16) # lui $t2, 0xbc00 +/* 0F2E70 7F0BE340 354A0406 */ ori $t2, (0xBC000406 & 0xFFFF) # ori $t2, $t2, 0x406 +/* 0F2E74 7F0BE344 26090008 */ addiu $t1, $s0, 8 +/* 0F2E78 7F0BE348 AFA90060 */ sw $t1, 0x60($sp) +/* 0F2E7C 7F0BE34C 3C048009 */ lui $a0, %hi(ptr_jfont_DL) +/* 0F2E80 7F0BE350 AE0A0000 */ sw $t2, ($s0) +/* 0F2E84 7F0BE354 0C003A2C */ jal osVirtualToPhysical +/* 0F2E88 7F0BE358 8C84C260 */ lw $a0, %lo(ptr_jfont_DL)($a0) +/* 0F2E8C 7F0BE35C AE020004 */ sw $v0, 4($s0) +/* 0F2E90 7F0BE360 8FAB0060 */ lw $t3, 0x60($sp) +/* 0F2E94 7F0BE364 3C0D0100 */ lui $t5, 0x100 +/* 0F2E98 7F0BE368 3C050600 */ lui $a1, 0x600 +/* 0F2E9C 7F0BE36C 256C0008 */ addiu $t4, $t3, 8 +/* 0F2EA0 7F0BE370 AFAC0060 */ sw $t4, 0x60($sp) +/* 0F2EA4 7F0BE374 25AD0040 */ addiu $t5, $t5, 0x40 +/* 0F2EA8 7F0BE378 AD6D0004 */ sw $t5, 4($t3) +/* 0F2EAC 7F0BE37C AD650000 */ sw $a1, ($t3) +/* 0F2EB0 7F0BE380 8FAE0060 */ lw $t6, 0x60($sp) +/* 0F2EB4 7F0BE384 3C180100 */ lui $t8, 0x100 +/* 0F2EB8 7F0BE388 27180020 */ addiu $t8, $t8, 0x20 +/* 0F2EBC 7F0BE38C 25CF0008 */ addiu $t7, $t6, 8 +/* 0F2EC0 7F0BE390 AFAF0060 */ sw $t7, 0x60($sp) +/* 0F2EC4 7F0BE394 3C198005 */ lui $t9, %hi(current_stage_to_load) +/* 0F2EC8 7F0BE398 ADD80004 */ sw $t8, 4($t6) +/* 0F2ECC 7F0BE39C ADC50000 */ sw $a1, ($t6) +/* 0F2ED0 7F0BE3A0 8F398364 */ lw $t9, %lo(current_stage_to_load)($t9) +/* 0F2ED4 7F0BE3A4 2401005A */ li $at, 90 +/* 0F2ED8 7F0BE3A8 17210025 */ bne $t9, $at, .L7F0BE440 +/* 0F2EDC 7F0BE3AC 00000000 */ nop +/* 0F2EE0 7F0BE3B0 0C000FAD */ jal video_related_10 +/* 0F2EE4 7F0BE3B4 8FA40060 */ lw $a0, 0x60($sp) +/* 0F2EE8 7F0BE3B8 AFA20060 */ sw $v0, 0x60($sp) +/* 0F2EEC 7F0BE3BC 0C000F16 */ jal video_related_F +/* 0F2EF0 7F0BE3C0 00402025 */ move $a0, $v0 +/* 0F2EF4 7F0BE3C4 24490008 */ addiu $t1, $v0, 8 +/* 0F2EF8 7F0BE3C8 AFA90060 */ sw $t1, 0x60($sp) +/* 0F2EFC 7F0BE3CC 3C0AED00 */ lui $t2, 0xed00 +/* 0F2F00 7F0BE3D0 AC4A0000 */ sw $t2, ($v0) +/* 0F2F04 7F0BE3D4 0C001107 */ jal get_video2_settings_txtClipW +/* 0F2F08 7F0BE3D8 00408025 */ move $s0, $v0 +/* 0F2F0C 7F0BE3DC 0C00110B */ jal get_video2_settings_txtClipH +/* 0F2F10 7F0BE3E0 A7A20022 */ sh $v0, 0x22($sp) +/* 0F2F14 7F0BE3E4 87B10022 */ lh $s1, 0x22($sp) +/* 0F2F18 7F0BE3E8 44822000 */ mtc1 $v0, $f4 +/* 0F2F1C 7F0BE3EC 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0F2F20 7F0BE3F0 44918000 */ mtc1 $s1, $f16 +/* 0F2F24 7F0BE3F4 468021A0 */ cvt.s.w $f6, $f4 +/* 0F2F28 7F0BE3F8 44810000 */ mtc1 $at, $f0 +/* 0F2F2C 7F0BE3FC 468084A0 */ cvt.s.w $f18, $f16 +/* 0F2F30 7F0BE400 46003202 */ mul.s $f8, $f6, $f0 +/* 0F2F34 7F0BE404 00000000 */ nop +/* 0F2F38 7F0BE408 46009102 */ mul.s $f4, $f18, $f0 +/* 0F2F3C 7F0BE40C 4600428D */ trunc.w.s $f10, $f8 +/* 0F2F40 7F0BE410 4600218D */ trunc.w.s $f6, $f4 +/* 0F2F44 7F0BE414 440C5000 */ mfc1 $t4, $f10 +/* 0F2F48 7F0BE418 440F3000 */ mfc1 $t7, $f6 +/* 0F2F4C 7F0BE41C 318D0FFF */ andi $t5, $t4, 0xfff +/* 0F2F50 7F0BE420 31F80FFF */ andi $t8, $t7, 0xfff +/* 0F2F54 7F0BE424 0018CB00 */ sll $t9, $t8, 0xc +/* 0F2F58 7F0BE428 01B94825 */ or $t1, $t5, $t9 +/* 0F2F5C 7F0BE42C AE090004 */ sw $t1, 4($s0) +/* 0F2F60 7F0BE430 0FC06BBF */ jal menu_jump_constructor_handler +/* 0F2F64 7F0BE434 8FA40060 */ lw $a0, 0x60($sp) +/* 0F2F68 7F0BE438 10000102 */ b .L7F0BE844 +/* 0F2F6C 7F0BE43C AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE440: +/* 0F2F70 7F0BE440 0FC26919 */ jal get_num_players +/* 0F2F74 7F0BE444 00000000 */ nop +/* 0F2F78 7F0BE448 8FAA0060 */ lw $t2, 0x60($sp) +/* 0F2F7C 7F0BE44C AFA20044 */ sw $v0, 0x44($sp) +/* 0F2F80 7F0BE450 3C0CBC00 */ lui $t4, (0xBC000404 >> 16) # lui $t4, 0xbc00 +/* 0F2F84 7F0BE454 254B0008 */ addiu $t3, $t2, 8 +/* 0F2F88 7F0BE458 AFAB0060 */ sw $t3, 0x60($sp) +/* 0F2F8C 7F0BE45C 24070002 */ li $a3, 2 +/* 0F2F90 7F0BE460 358C0404 */ ori $t4, (0xBC000404 & 0xFFFF) # ori $t4, $t4, 0x404 +/* 0F2F94 7F0BE464 AD4C0000 */ sw $t4, ($t2) +/* 0F2F98 7F0BE468 AD470004 */ sw $a3, 4($t2) +/* 0F2F9C 7F0BE46C 8FAE0060 */ lw $t6, 0x60($sp) +/* 0F2FA0 7F0BE470 3C18BC00 */ lui $t8, (0xBC000C04 >> 16) # lui $t8, 0xbc00 +/* 0F2FA4 7F0BE474 37180C04 */ ori $t8, (0xBC000C04 & 0xFFFF) # ori $t8, $t8, 0xc04 +/* 0F2FA8 7F0BE478 25CF0008 */ addiu $t7, $t6, 8 +/* 0F2FAC 7F0BE47C AFAF0060 */ sw $t7, 0x60($sp) +/* 0F2FB0 7F0BE480 ADC70004 */ sw $a3, 4($t6) +/* 0F2FB4 7F0BE484 ADD80000 */ sw $t8, ($t6) +/* 0F2FB8 7F0BE488 8FAD0060 */ lw $t5, 0x60($sp) +/* 0F2FBC 7F0BE48C 3C09BC00 */ lui $t1, (0xBC001404 >> 16) # lui $t1, 0xbc00 +/* 0F2FC0 7F0BE490 3408FFFE */ li $t0, 65534 +/* 0F2FC4 7F0BE494 25B90008 */ addiu $t9, $t5, 8 +/* 0F2FC8 7F0BE498 AFB90060 */ sw $t9, 0x60($sp) +/* 0F2FCC 7F0BE49C 35291404 */ ori $t1, (0xBC001404 & 0xFFFF) # ori $t1, $t1, 0x1404 +/* 0F2FD0 7F0BE4A0 ADA90000 */ sw $t1, ($t5) +/* 0F2FD4 7F0BE4A4 ADA80004 */ sw $t0, 4($t5) +/* 0F2FD8 7F0BE4A8 8FAA0060 */ lw $t2, 0x60($sp) +/* 0F2FDC 7F0BE4AC 3C0CBC00 */ lui $t4, (0xBC001C04 >> 16) # lui $t4, 0xbc00 +/* 0F2FE0 7F0BE4B0 358C1C04 */ ori $t4, (0xBC001C04 & 0xFFFF) # ori $t4, $t4, 0x1c04 +/* 0F2FE4 7F0BE4B4 254B0008 */ addiu $t3, $t2, 8 +/* 0F2FE8 7F0BE4B8 AFAB0060 */ sw $t3, 0x60($sp) +/* 0F2FEC 7F0BE4BC 00008825 */ move $s1, $zero +/* 0F2FF0 7F0BE4C0 AD480004 */ sw $t0, 4($t2) +/* 0F2FF4 7F0BE4C4 184000DF */ blez $v0, .L7F0BE844 +/* 0F2FF8 7F0BE4C8 AD4C0000 */ sw $t4, ($t2) +/* 0F2FFC 7F0BE4CC 3C108008 */ lui $s0, %hi(pPlayer) +/* 0F3000 7F0BE4D0 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +.L7F0BE4D4: +/* 0F3004 7F0BE4D4 0FC26D4A */ jal sub_GAME_7F09B528 +/* 0F3008 7F0BE4D8 02202025 */ move $a0, $s1 +/* 0F300C 7F0BE4DC 0FC26C43 */ jal set_cur_player +/* 0F3010 7F0BE4E0 00402025 */ move $a0, $v0 +/* 0F3014 7F0BE4E4 8E020000 */ lw $v0, ($s0) +/* 0F3018 7F0BE4E8 844407F0 */ lh $a0, 0x7f0($v0) +/* 0F301C 7F0BE4EC 0C00110F */ jal set_video2_width_height +/* 0F3020 7F0BE4F0 844507F2 */ lh $a1, 0x7f2($v0) +/* 0F3024 7F0BE4F4 8E020000 */ lw $v0, ($s0) +/* 0F3028 7F0BE4F8 844407F4 */ lh $a0, 0x7f4($v0) +/* 0F302C 7F0BE4FC 0C00112F */ jal set_video2_ulx_uly +/* 0F3030 7F0BE500 844507F6 */ lh $a1, 0x7f6($v0) +/* 0F3034 7F0BE504 8E0E0000 */ lw $t6, ($s0) +/* 0F3038 7F0BE508 0C001151 */ jal setvideo_far +/* 0F303C 7F0BE50C C5CC11D0 */ lwc1 $f12, 0x11d0($t6) +/* 0F3040 7F0BE510 8E0F0000 */ lw $t7, ($s0) +/* 0F3044 7F0BE514 0C001164 */ jal video_related_21 +/* 0F3048 7F0BE518 C5EC11D4 */ lwc1 $f12, 0x11d4($t7) +/* 0F304C 7F0BE51C 0C000FAD */ jal video_related_10 +/* 0F3050 7F0BE520 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3054 7F0BE524 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3058 7F0BE528 0C000F16 */ jal video_related_F +/* 0F305C 7F0BE52C 00402025 */ move $a0, $v0 +/* 0F3060 7F0BE530 0FC243BF */ jal get_debug_render_raster +/* 0F3064 7F0BE534 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3068 7F0BE538 14400004 */ bnez $v0, .L7F0BE54C +/* 0F306C 7F0BE53C 00000000 */ nop +/* 0F3070 7F0BE540 0FC24560 */ jal sub_GAME_7F091580 +/* 0F3074 7F0BE544 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3078 7F0BE548 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE54C: +/* 0F307C 7F0BE54C 0FC243BF */ jal get_debug_render_raster +/* 0F3080 7F0BE550 00000000 */ nop +/* 0F3084 7F0BE554 24010001 */ li $at, 1 +/* 0F3088 7F0BE558 14410004 */ bne $v0, $at, .L7F0BE56C +/* 0F308C 7F0BE55C 00000000 */ nop +/* 0F3090 7F0BE560 0FC2CB52 */ jal sub_GAME_7F0B2D48 +/* 0F3094 7F0BE564 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3098 7F0BE568 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE56C: +/* 0F309C 7F0BE56C 0FC243BF */ jal get_debug_render_raster +/* 0F30A0 7F0BE570 00000000 */ nop +/* 0F30A4 7F0BE574 24010002 */ li $at, 2 +/* 0F30A8 7F0BE578 14410004 */ bne $v0, $at, .L7F0BE58C +/* 0F30AC 7F0BE57C 00000000 */ nop +/* 0F30B0 7F0BE580 0FC21E82 */ jal sub_GAME_7F087A08 +/* 0F30B4 7F0BE584 8FA40060 */ lw $a0, 0x60($sp) +/* 0F30B8 7F0BE588 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE58C: +/* 0F30BC 7F0BE58C 0C000FD9 */ jal setupscreensfornumplayers +/* 0F30C0 7F0BE590 8FA40060 */ lw $a0, 0x60($sp) +/* 0F30C4 7F0BE594 AFA20060 */ sw $v0, 0x60($sp) +/* 0F30C8 7F0BE598 0FC25122 */ jal sub_GAME_7F094488 +/* 0F30CC 7F0BE59C 00402025 */ move $a0, $v0 +/* 0F30D0 7F0BE5A0 0FC2D221 */ jal sub_GAME_7F0B4884 +/* 0F30D4 7F0BE5A4 AFA20060 */ sw $v0, 0x60($sp) +/* 0F30D8 7F0BE5A8 0FC0F28C */ jal determing_type_of_object_and_detection +/* 0F30DC 7F0BE5AC 00000000 */ nop +/* 0F30E0 7F0BE5B0 0FC0E890 */ jal sub_GAME_7F03A240 +/* 0F30E4 7F0BE5B4 00000000 */ nop +/* 0F30E8 7F0BE5B8 0FC0F5E3 */ jal sub_GAME_7F03D78C +/* 0F30EC 7F0BE5BC 00000000 */ nop +/* 0F30F0 7F0BE5C0 0FC0F0A5 */ jal sub_GAME_7F03C294 +/* 0F30F4 7F0BE5C4 00000000 */ nop +/* 0F30F8 7F0BE5C8 0FC227CE */ jal sub_GAME_7F089F38 +/* 0F30FC 7F0BE5CC 00000000 */ nop +/* 0F3100 7F0BE5D0 10400009 */ beqz $v0, .L7F0BE5F8 +/* 0F3104 7F0BE5D4 00000000 */ nop +/* 0F3108 7F0BE5D8 0FC0F13C */ jal sub_GAME_7F03C4F0 +/* 0F310C 7F0BE5DC 00000000 */ nop +/* 0F3110 7F0BE5E0 10400005 */ beqz $v0, .L7F0BE5F8 +/* 0F3114 7F0BE5E4 00000000 */ nop +/* 0F3118 7F0BE5E8 0FC17659 */ jal attempt_reload_item_in_hand +/* 0F311C 7F0BE5EC 00002025 */ move $a0, $zero +/* 0F3120 7F0BE5F0 0FC17659 */ jal attempt_reload_item_in_hand +/* 0F3124 7F0BE5F4 24040001 */ li $a0, 1 +.L7F0BE5F8: +/* 0F3128 7F0BE5F8 0FC0F435 */ jal sub_GAME_7F03D0D4 +/* 0F312C 7F0BE5FC 00000000 */ nop +/* 0F3130 7F0BE600 0FC2D390 */ jal sub_GAME_7F0B4E40 +/* 0F3134 7F0BE604 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3138 7F0BE608 0FC2440F */ jal get_debug_portal_flag +/* 0F313C 7F0BE60C AFA20060 */ sw $v0, 0x60($sp) +/* 0F3140 7F0BE610 10400004 */ beqz $v0, .L7F0BE624 +/* 0F3144 7F0BE614 00000000 */ nop +/* 0F3148 7F0BE618 0FC2F7C4 */ jal sub_GAME_7F0BDF10 +/* 0F314C 7F0BE61C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3150 7F0BE620 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE624: +/* 0F3154 7F0BE624 0FC243DC */ jal get_turbo_mode_flag +/* 0F3158 7F0BE628 00000000 */ nop +/* 0F315C 7F0BE62C 10400004 */ beqz $v0, .L7F0BE640 +/* 0F3160 7F0BE630 00000000 */ nop +/* 0F3164 7F0BE634 0FC2CC0F */ jal sub_GAME_7F0B303C +/* 0F3168 7F0BE638 8FA40060 */ lw $a0, 0x60($sp) +/* 0F316C 7F0BE63C AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE640: +/* 0F3170 7F0BE640 0FC243D6 */ jal get_debug_stanhit_flag +/* 0F3174 7F0BE644 00000000 */ nop +/* 0F3178 7F0BE648 10400007 */ beqz $v0, .L7F0BE668 +/* 0F317C 7F0BE64C 00000000 */ nop +/* 0F3180 7F0BE650 0FC2CC0D */ jal sub_GAME_7F0B3034 +/* 0F3184 7F0BE654 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3188 7F0BE658 AFA20060 */ sw $v0, 0x60($sp) +/* 0F318C 7F0BE65C 0FC225B0 */ jal write_stan_tiles_in_yellow +/* 0F3190 7F0BE660 00402025 */ move $a0, $v0 +/* 0F3194 7F0BE664 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE668: +/* 0F3198 7F0BE668 0FC243D9 */ jal get_debug_stanregion_flag +/* 0F319C 7F0BE66C 00000000 */ nop +/* 0F31A0 7F0BE670 10400008 */ beqz $v0, .L7F0BE694 +/* 0F31A4 7F0BE674 00000000 */ nop +/* 0F31A8 7F0BE678 0FC2CC0D */ jal sub_GAME_7F0B3034 +/* 0F31AC 7F0BE67C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F31B0 7F0BE680 AFA20060 */ sw $v0, 0x60($sp) +/* 0F31B4 7F0BE684 00402025 */ move $a0, $v0 +/* 0F31B8 7F0BE688 0FC2CC4B */ jal sub_GAME_7F0B312C +/* 0F31BC 7F0BE68C 24058040 */ li $a1, -32704 +/* 0F31C0 7F0BE690 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE694: +/* 0F31C4 7F0BE694 3C058006 */ lui $a1, %hi(aStanshow_) +/* 0F31C8 7F0BE698 24A5B6BC */ addiu $a1, %lo(aStanshow_) # addiu $a1, $a1, -0x4944 +/* 0F31CC 7F0BE69C 0C0029A8 */ jal check_token +/* 0F31D0 7F0BE6A0 24040001 */ li $a0, 1 +/* 0F31D4 7F0BE6A4 10400011 */ beqz $v0, .L7F0BE6EC +/* 0F31D8 7F0BE6A8 24040001 */ li $a0, 1 +/* 0F31DC 7F0BE6AC 3C058006 */ lui $a1, %hi(aStanshow__5) +/* 0F31E0 7F0BE6B0 0C0029A8 */ jal check_token +/* 0F31E4 7F0BE6B4 24A5B6C8 */ addiu $a1, %lo(aStanshow__5) # addiu $a1, $a1, -0x4938 +/* 0F31E8 7F0BE6B8 0FC2CB96 */ jal stanMatchTileName +/* 0F31EC 7F0BE6BC 00402025 */ move $a0, $v0 +/* 0F31F0 7F0BE6C0 1040000A */ beqz $v0, .L7F0BE6EC +/* 0F31F4 7F0BE6C4 8FA40060 */ lw $a0, 0x60($sp) +/* 0F31F8 7F0BE6C8 0FC2CC0D */ jal sub_GAME_7F0B3034 +/* 0F31FC 7F0BE6CC AFA20030 */ sw $v0, 0x30($sp) +/* 0F3200 7F0BE6D0 3C06FF00 */ lui $a2, (0xFF0000FF >> 16) # lui $a2, 0xff00 +/* 0F3204 7F0BE6D4 8FA50030 */ lw $a1, 0x30($sp) +/* 0F3208 7F0BE6D8 AFA20060 */ sw $v0, 0x60($sp) +/* 0F320C 7F0BE6DC 34C600FF */ ori $a2, (0xFF0000FF & 0xFFFF) # ori $a2, $a2, 0xff +/* 0F3210 7F0BE6E0 0FC2CC09 */ jal sub_GAME_7F0B3024 +/* 0F3214 7F0BE6E4 00402025 */ move $a0, $v0 +/* 0F3218 7F0BE6E8 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE6EC: +/* 0F321C 7F0BE6EC 3C058006 */ lui $a1, %hi(aStanshow__0) +/* 0F3220 7F0BE6F0 24A5B6D4 */ addiu $a1, %lo(aStanshow__0) # addiu $a1, $a1, -0x492c +/* 0F3224 7F0BE6F4 0C0029A8 */ jal check_token +/* 0F3228 7F0BE6F8 24040002 */ li $a0, 2 +/* 0F322C 7F0BE6FC 10400011 */ beqz $v0, .L7F0BE744 +/* 0F3230 7F0BE700 24040002 */ li $a0, 2 +/* 0F3234 7F0BE704 3C058006 */ lui $a1, %hi(aStanshow__1) +/* 0F3238 7F0BE708 0C0029A8 */ jal check_token +/* 0F323C 7F0BE70C 24A5B6E0 */ addiu $a1, %lo(aStanshow__1) # addiu $a1, $a1, -0x4920 +/* 0F3240 7F0BE710 0FC2CB96 */ jal stanMatchTileName +/* 0F3244 7F0BE714 00402025 */ move $a0, $v0 +/* 0F3248 7F0BE718 1040000A */ beqz $v0, .L7F0BE744 +/* 0F324C 7F0BE71C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3250 7F0BE720 0FC2CC0D */ jal sub_GAME_7F0B3034 +/* 0F3254 7F0BE724 AFA2002C */ sw $v0, 0x2c($sp) +/* 0F3258 7F0BE728 3C0600FF */ lui $a2, (0x00FF00FF >> 16) # lui $a2, 0xff +/* 0F325C 7F0BE72C 8FA5002C */ lw $a1, 0x2c($sp) +/* 0F3260 7F0BE730 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3264 7F0BE734 34C600FF */ ori $a2, (0x00FF00FF & 0xFFFF) # ori $a2, $a2, 0xff +/* 0F3268 7F0BE738 0FC2CC09 */ jal sub_GAME_7F0B3024 +/* 0F326C 7F0BE73C 00402025 */ move $a0, $v0 +/* 0F3270 7F0BE740 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE744: +/* 0F3274 7F0BE744 3C058006 */ lui $a1, %hi(aStanshow__2) +/* 0F3278 7F0BE748 24A5B6EC */ addiu $a1, %lo(aStanshow__2) # addiu $a1, $a1, -0x4914 +/* 0F327C 7F0BE74C 0C0029A8 */ jal check_token +/* 0F3280 7F0BE750 24040003 */ li $a0, 3 +/* 0F3284 7F0BE754 10400010 */ beqz $v0, .L7F0BE798 +/* 0F3288 7F0BE758 24040003 */ li $a0, 3 +/* 0F328C 7F0BE75C 3C058006 */ lui $a1, %hi(aStanshow__3) +/* 0F3290 7F0BE760 0C0029A8 */ jal check_token +/* 0F3294 7F0BE764 24A5B6F8 */ addiu $a1, %lo(aStanshow__3) # addiu $a1, $a1, -0x4908 +/* 0F3298 7F0BE768 0FC2CB96 */ jal stanMatchTileName +/* 0F329C 7F0BE76C 00402025 */ move $a0, $v0 +/* 0F32A0 7F0BE770 10400009 */ beqz $v0, .L7F0BE798 +/* 0F32A4 7F0BE774 8FA40060 */ lw $a0, 0x60($sp) +/* 0F32A8 7F0BE778 0FC2CC0D */ jal sub_GAME_7F0B3034 +/* 0F32AC 7F0BE77C AFA20028 */ sw $v0, 0x28($sp) +/* 0F32B0 7F0BE780 8FA50028 */ lw $a1, 0x28($sp) +/* 0F32B4 7F0BE784 AFA20060 */ sw $v0, 0x60($sp) +/* 0F32B8 7F0BE788 00402025 */ move $a0, $v0 +/* 0F32BC 7F0BE78C 0FC2CC09 */ jal sub_GAME_7F0B3024 +/* 0F32C0 7F0BE790 3406FFFF */ li $a2, 65535 +/* 0F32C4 7F0BE794 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE798: +/* 0F32C8 7F0BE798 0FC243C5 */ jal get_debug_limit_controller_input +/* 0F32CC 7F0BE79C 00000000 */ nop +/* 0F32D0 7F0BE7A0 38440008 */ xori $a0, $v0, 8 +/* 0F32D4 7F0BE7A4 0FC08B89 */ jal sub_GAME_7F022E24 +/* 0F32D8 7F0BE7A8 2C840001 */ sltiu $a0, $a0, 1 +/* 0F32DC 7F0BE7AC 0FC126D6 */ jal sub_GAME_7F049B58 +/* 0F32E0 7F0BE7B0 8FA40060 */ lw $a0, 0x60($sp) +/* 0F32E4 7F0BE7B4 AFA20060 */ sw $v0, 0x60($sp) +/* 0F32E8 7F0BE7B8 27A40060 */ addiu $a0, $sp, 0x60 +/* 0F32EC 7F0BE7BC 0FC29209 */ jal sub_GAME_7F0A4824 +/* 0F32F0 7F0BE7C0 24050001 */ li $a1, 1 +/* 0F32F4 7F0BE7C4 0FC28B11 */ jal sub_GAME_7F0A2C44 +/* 0F32F8 7F0BE7C8 8FA40060 */ lw $a0, 0x60($sp) +/* 0F32FC 7F0BE7CC AFA20060 */ sw $v0, 0x60($sp) +/* 0F3300 7F0BE7D0 0FC2800D */ jal sub_GAME_7F0A0034 +/* 0F3304 7F0BE7D4 00402025 */ move $a0, $v0 +/* 0F3308 7F0BE7D8 AFA20060 */ sw $v0, 0x60($sp) +/* 0F330C 7F0BE7DC 0FC249EF */ jal cheatCheckIfOn +/* 0F3310 7F0BE7E0 2404000B */ li $a0, 11 +/* 0F3314 7F0BE7E4 10400003 */ beqz $v0, .L7F0BE7F4 +/* 0F3318 7F0BE7E8 00000000 */ nop +/* 0F331C 7F0BE7EC 0FC1A4BC */ jal set_max_ammo_for_cur_player +/* 0F3320 7F0BE7F0 00000000 */ nop +.L7F0BE7F4: +/* 0F3324 7F0BE7F4 0FC243BF */ jal get_debug_render_raster +/* 0F3328 7F0BE7F8 00000000 */ nop +/* 0F332C 7F0BE7FC 24010002 */ li $at, 2 +/* 0F3330 7F0BE800 14410005 */ bne $v0, $at, .L7F0BE818 +/* 0F3334 7F0BE804 00000000 */ nop +/* 0F3338 7F0BE808 0FC22482 */ jal maybe_mp_interface +/* 0F333C 7F0BE80C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3340 7F0BE810 10000004 */ b .L7F0BE824 +/* 0F3344 7F0BE814 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE818: +/* 0F3348 7F0BE818 0FC22F2E */ jal sub_GAME_7F08BCB8 +/* 0F334C 7F0BE81C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3350 7F0BE820 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE824: +/* 0F3354 7F0BE824 0FC31009 */ jal mp_watch_menu_display +/* 0F3358 7F0BE828 8FA40060 */ lw $a0, 0x60($sp) +/* 0F335C 7F0BE82C 8FB80044 */ lw $t8, 0x44($sp) +/* 0F3360 7F0BE830 26310001 */ addiu $s1, $s1, 1 +/* 0F3364 7F0BE834 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3368 7F0BE838 0238082A */ slt $at, $s1, $t8 +/* 0F336C 7F0BE83C 1420FF25 */ bnez $at, .L7F0BE4D4 +/* 0F3370 7F0BE840 00000000 */ nop +.L7F0BE844: +/* 0F3374 7F0BE844 8FB00060 */ lw $s0, 0x60($sp) +/* 0F3378 7F0BE848 3C09ED00 */ lui $t1, 0xed00 +/* 0F337C 7F0BE84C 26190008 */ addiu $t9, $s0, 8 +/* 0F3380 7F0BE850 AFB90060 */ sw $t9, 0x60($sp) +/* 0F3384 7F0BE854 0C001107 */ jal get_video2_settings_txtClipW +/* 0F3388 7F0BE858 AE090000 */ sw $t1, ($s0) +/* 0F338C 7F0BE85C 00028C00 */ sll $s1, $v0, 0x10 +/* 0F3390 7F0BE860 00115403 */ sra $t2, $s1, 0x10 +/* 0F3394 7F0BE864 0C00110B */ jal get_video2_settings_txtClipH +/* 0F3398 7F0BE868 01408825 */ move $s1, $t2 +/* 0F339C 7F0BE86C 44824000 */ mtc1 $v0, $f8 +/* 0F33A0 7F0BE870 44913000 */ mtc1 $s1, $f6 +/* 0F33A4 7F0BE874 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0F33A8 7F0BE878 468042A0 */ cvt.s.w $f10, $f8 +/* 0F33AC 7F0BE87C 44818000 */ mtc1 $at, $f16 +/* 0F33B0 7F0BE880 46803220 */ cvt.s.w $f8, $f6 +/* 0F33B4 7F0BE884 46105482 */ mul.s $f18, $f10, $f16 +/* 0F33B8 7F0BE888 44815000 */ mtc1 $at, $f10 +/* 0F33BC 7F0BE88C 00000000 */ nop +/* 0F33C0 7F0BE890 460A4402 */ mul.s $f16, $f8, $f10 +/* 0F33C4 7F0BE894 4600910D */ trunc.w.s $f4, $f18 +/* 0F33C8 7F0BE898 4600848D */ trunc.w.s $f18, $f16 +/* 0F33CC 7F0BE89C 440C2000 */ mfc1 $t4, $f4 +/* 0F33D0 7F0BE8A0 44189000 */ mfc1 $t8, $f18 +/* 0F33D4 7F0BE8A4 318E0FFF */ andi $t6, $t4, 0xfff +/* 0F33D8 7F0BE8A8 330D0FFF */ andi $t5, $t8, 0xfff +/* 0F33DC 7F0BE8AC 000DCB00 */ sll $t9, $t5, 0xc +/* 0F33E0 7F0BE8B0 01D94825 */ or $t1, $t6, $t9 +/* 0F33E4 7F0BE8B4 AE090004 */ sw $t1, 4($s0) +/* 0F33E8 7F0BE8B8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F33EC 7F0BE8BC 8FB10018 */ lw $s1, 0x18($sp) +/* 0F33F0 7F0BE8C0 8FB00014 */ lw $s0, 0x14($sp) +/* 0F33F4 7F0BE8C4 8FA20060 */ lw $v0, 0x60($sp) +/* 0F33F8 7F0BE8C8 03E00008 */ jr $ra +/* 0F33FC 7F0BE8CC 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BE30C +/* 0F3A3C 7F0BEECC 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0F3A40 7F0BEED0 AFA40060 */ sw $a0, 0x60($sp) +/* 0F3A44 7F0BEED4 248F0008 */ addiu $t7, $a0, 8 +/* 0F3A48 7F0BEED8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F3A4C 7F0BEEDC AFB10018 */ sw $s1, 0x18($sp) +/* 0F3A50 7F0BEEE0 AFB00014 */ sw $s0, 0x14($sp) +/* 0F3A54 7F0BEEE4 AFAF0060 */ sw $t7, 0x60($sp) +/* 0F3A58 7F0BEEE8 3C18BC00 */ lui $t8, (0xBC000006 >> 16) # lui $t8, 0xbc00 +/* 0F3A5C 7F0BEEEC 37180006 */ ori $t8, (0xBC000006 & 0xFFFF) # ori $t8, $t8, 6 +/* 0F3A60 7F0BEEF0 AC980000 */ sw $t8, ($a0) +/* 0F3A64 7F0BEEF4 AC800004 */ sw $zero, 4($a0) +/* 0F3A68 7F0BEEF8 8FB00060 */ lw $s0, 0x60($sp) +/* 0F3A6C 7F0BEEFC 3C0ABC00 */ lui $t2, (0xBC000406 >> 16) # lui $t2, 0xbc00 +/* 0F3A70 7F0BEF00 354A0406 */ ori $t2, (0xBC000406 & 0xFFFF) # ori $t2, $t2, 0x406 +/* 0F3A74 7F0BEF04 26090008 */ addiu $t1, $s0, 8 +/* 0F3A78 7F0BEF08 AFA90060 */ sw $t1, 0x60($sp) +/* 0F3A7C 7F0BEF0C 3C048009 */ lui $a0, %hi(ptr_jfont_DL) # $a0, 0x8009 +/* 0F3A80 7F0BEF10 AE0A0000 */ sw $t2, ($s0) +/* 0F3A84 7F0BEF14 0C003A3C */ jal osVirtualToPhysical +/* 0F3A88 7F0BEF18 8C84C2D0 */ lw $a0, %lo(ptr_jfont_DL)($a0) +/* 0F3A8C 7F0BEF1C AE020004 */ sw $v0, 4($s0) +/* 0F3A90 7F0BEF20 8FAB0060 */ lw $t3, 0x60($sp) +/* 0F3A94 7F0BEF24 3C0D0100 */ lui $t5, 0x100 +/* 0F3A98 7F0BEF28 3C050600 */ lui $a1, 0x600 +/* 0F3A9C 7F0BEF2C 256C0008 */ addiu $t4, $t3, 8 +/* 0F3AA0 7F0BEF30 AFAC0060 */ sw $t4, 0x60($sp) +/* 0F3AA4 7F0BEF34 25AD0040 */ addiu $t5, $t5, 0x40 +/* 0F3AA8 7F0BEF38 AD6D0004 */ sw $t5, 4($t3) +/* 0F3AAC 7F0BEF3C AD650000 */ sw $a1, ($t3) +/* 0F3AB0 7F0BEF40 8FAE0060 */ lw $t6, 0x60($sp) +/* 0F3AB4 7F0BEF44 3C180100 */ lui $t8, 0x100 +/* 0F3AB8 7F0BEF48 27180020 */ addiu $t8, $t8, 0x20 +/* 0F3ABC 7F0BEF4C 25CF0008 */ addiu $t7, $t6, 8 +/* 0F3AC0 7F0BEF50 AFAF0060 */ sw $t7, 0x60($sp) +/* 0F3AC4 7F0BEF54 3C198005 */ lui $t9, %hi(current_stage_to_load) # $t9, 0x8005 +/* 0F3AC8 7F0BEF58 ADD80004 */ sw $t8, 4($t6) +/* 0F3ACC 7F0BEF5C ADC50000 */ sw $a1, ($t6) +/* 0F3AD0 7F0BEF60 8F398394 */ lw $t9, %lo(current_stage_to_load)($t9) +/* 0F3AD4 7F0BEF64 2401005A */ li $at, 90 +/* 0F3AD8 7F0BEF68 17210025 */ bne $t9, $at, .Ljp7F0BF000 +/* 0F3ADC 7F0BEF6C 00000000 */ nop +/* 0F3AE0 7F0BEF70 0C000FAD */ jal video_related_10 +/* 0F3AE4 7F0BEF74 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3AE8 7F0BEF78 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3AEC 7F0BEF7C 0C000F16 */ jal video_related_F +/* 0F3AF0 7F0BEF80 00402025 */ move $a0, $v0 +/* 0F3AF4 7F0BEF84 24490008 */ addiu $t1, $v0, 8 +/* 0F3AF8 7F0BEF88 AFA90060 */ sw $t1, 0x60($sp) +/* 0F3AFC 7F0BEF8C 3C0AED00 */ lui $t2, 0xed00 +/* 0F3B00 7F0BEF90 AC4A0000 */ sw $t2, ($v0) +/* 0F3B04 7F0BEF94 0C001107 */ jal get_video2_settings_txtClipW +/* 0F3B08 7F0BEF98 00408025 */ move $s0, $v0 +/* 0F3B0C 7F0BEF9C 0C00110B */ jal get_video2_settings_txtClipH +/* 0F3B10 7F0BEFA0 A7A20022 */ sh $v0, 0x22($sp) +/* 0F3B14 7F0BEFA4 87B10022 */ lh $s1, 0x22($sp) +/* 0F3B18 7F0BEFA8 44822000 */ mtc1 $v0, $f4 +/* 0F3B1C 7F0BEFAC 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0F3B20 7F0BEFB0 44918000 */ mtc1 $s1, $f16 +/* 0F3B24 7F0BEFB4 468021A0 */ cvt.s.w $f6, $f4 +/* 0F3B28 7F0BEFB8 44810000 */ mtc1 $at, $f0 +/* 0F3B2C 7F0BEFBC 468084A0 */ cvt.s.w $f18, $f16 +/* 0F3B30 7F0BEFC0 46003202 */ mul.s $f8, $f6, $f0 +/* 0F3B34 7F0BEFC4 00000000 */ nop +/* 0F3B38 7F0BEFC8 46009102 */ mul.s $f4, $f18, $f0 +/* 0F3B3C 7F0BEFCC 4600428D */ trunc.w.s $f10, $f8 +/* 0F3B40 7F0BEFD0 4600218D */ trunc.w.s $f6, $f4 +/* 0F3B44 7F0BEFD4 440C5000 */ mfc1 $t4, $f10 +/* 0F3B48 7F0BEFD8 440F3000 */ mfc1 $t7, $f6 +/* 0F3B4C 7F0BEFDC 318D0FFF */ andi $t5, $t4, 0xfff +/* 0F3B50 7F0BEFE0 31F80FFF */ andi $t8, $t7, 0xfff +/* 0F3B54 7F0BEFE4 0018CB00 */ sll $t9, $t8, 0xc +/* 0F3B58 7F0BEFE8 01B94825 */ or $t1, $t5, $t9 +/* 0F3B5C 7F0BEFEC AE090004 */ sw $t1, 4($s0) +/* 0F3B60 7F0BEFF0 0FC06C2C */ jal menu_jump_constructor_handler +/* 0F3B64 7F0BEFF4 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3B68 7F0BEFF8 1000010B */ b .Ljp7F0BF428 +/* 0F3B6C 7F0BEFFC AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF000: +/* 0F3B70 7F0BF000 0FC26C01 */ jal get_num_players +/* 0F3B74 7F0BF004 00000000 */ nop +/* 0F3B78 7F0BF008 8FAA0060 */ lw $t2, 0x60($sp) +/* 0F3B7C 7F0BF00C AFA20044 */ sw $v0, 0x44($sp) +/* 0F3B80 7F0BF010 3C0CBC00 */ lui $t4, (0xBC000404 >> 16) # lui $t4, 0xbc00 +/* 0F3B84 7F0BF014 254B0008 */ addiu $t3, $t2, 8 +/* 0F3B88 7F0BF018 AFAB0060 */ sw $t3, 0x60($sp) +/* 0F3B8C 7F0BF01C 24070002 */ li $a3, 2 +/* 0F3B90 7F0BF020 358C0404 */ ori $t4, (0xBC000404 & 0xFFFF) # ori $t4, $t4, 0x404 +/* 0F3B94 7F0BF024 AD4C0000 */ sw $t4, ($t2) +/* 0F3B98 7F0BF028 AD470004 */ sw $a3, 4($t2) +/* 0F3B9C 7F0BF02C 8FAE0060 */ lw $t6, 0x60($sp) +/* 0F3BA0 7F0BF030 3C18BC00 */ lui $t8, (0xBC000C04 >> 16) # lui $t8, 0xbc00 +/* 0F3BA4 7F0BF034 37180C04 */ ori $t8, (0xBC000C04 & 0xFFFF) # ori $t8, $t8, 0xc04 +/* 0F3BA8 7F0BF038 25CF0008 */ addiu $t7, $t6, 8 +/* 0F3BAC 7F0BF03C AFAF0060 */ sw $t7, 0x60($sp) +/* 0F3BB0 7F0BF040 ADC70004 */ sw $a3, 4($t6) +/* 0F3BB4 7F0BF044 ADD80000 */ sw $t8, ($t6) +/* 0F3BB8 7F0BF048 8FAD0060 */ lw $t5, 0x60($sp) +/* 0F3BBC 7F0BF04C 3C09BC00 */ lui $t1, (0xBC001404 >> 16) # lui $t1, 0xbc00 +/* 0F3BC0 7F0BF050 3408FFFE */ li $t0, 65534 +/* 0F3BC4 7F0BF054 25B90008 */ addiu $t9, $t5, 8 +/* 0F3BC8 7F0BF058 AFB90060 */ sw $t9, 0x60($sp) +/* 0F3BCC 7F0BF05C 35291404 */ ori $t1, (0xBC001404 & 0xFFFF) # ori $t1, $t1, 0x1404 +/* 0F3BD0 7F0BF060 ADA90000 */ sw $t1, ($t5) +/* 0F3BD4 7F0BF064 ADA80004 */ sw $t0, 4($t5) +/* 0F3BD8 7F0BF068 8FAA0060 */ lw $t2, 0x60($sp) +/* 0F3BDC 7F0BF06C 3C0CBC00 */ lui $t4, (0xBC001C04 >> 16) # lui $t4, 0xbc00 +/* 0F3BE0 7F0BF070 358C1C04 */ ori $t4, (0xBC001C04 & 0xFFFF) # ori $t4, $t4, 0x1c04 +/* 0F3BE4 7F0BF074 254B0008 */ addiu $t3, $t2, 8 +/* 0F3BE8 7F0BF078 AFAB0060 */ sw $t3, 0x60($sp) +/* 0F3BEC 7F0BF07C 00008825 */ move $s1, $zero +/* 0F3BF0 7F0BF080 AD480004 */ sw $t0, 4($t2) +/* 0F3BF4 7F0BF084 184000E8 */ blez $v0, .Ljp7F0BF428 +/* 0F3BF8 7F0BF088 AD4C0000 */ sw $t4, ($t2) +/* 0F3BFC 7F0BF08C 3C108008 */ lui $s0, %hi(pPlayer) # $s0, 0x8008 +/* 0F3C00 7F0BF090 2610A120 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5ee0 +.Ljp7F0BF094: +/* 0F3C04 7F0BF094 0FC27032 */ jal sub_GAME_7F09B528 +/* 0F3C08 7F0BF098 02202025 */ move $a0, $s1 +/* 0F3C0C 7F0BF09C 0FC26F2B */ jal set_cur_player +/* 0F3C10 7F0BF0A0 00402025 */ move $a0, $v0 +/* 0F3C14 7F0BF0A4 8E020000 */ lw $v0, ($s0) +/* 0F3C18 7F0BF0A8 844407F0 */ lh $a0, 0x7f0($v0) +/* 0F3C1C 7F0BF0AC 0C00110F */ jal set_video2_width_height +/* 0F3C20 7F0BF0B0 844507F2 */ lh $a1, 0x7f2($v0) +/* 0F3C24 7F0BF0B4 8E020000 */ lw $v0, ($s0) +/* 0F3C28 7F0BF0B8 844407F4 */ lh $a0, 0x7f4($v0) +/* 0F3C2C 7F0BF0BC 0C00112F */ jal set_video2_ulx_uly +/* 0F3C30 7F0BF0C0 844507F6 */ lh $a1, 0x7f6($v0) +/* 0F3C34 7F0BF0C4 8E0E0000 */ lw $t6, ($s0) +/* 0F3C38 7F0BF0C8 0C001151 */ jal setvideo_far +/* 0F3C3C 7F0BF0CC C5CC11D0 */ lwc1 $f12, 0x11d0($t6) +/* 0F3C40 7F0BF0D0 8E0F0000 */ lw $t7, ($s0) +/* 0F3C44 7F0BF0D4 0C001164 */ jal video_related_21 +/* 0F3C48 7F0BF0D8 C5EC11D4 */ lwc1 $f12, 0x11d4($t7) +/* 0F3C4C 7F0BF0DC 0C000FAD */ jal video_related_10 +/* 0F3C50 7F0BF0E0 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3C54 7F0BF0E4 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3C58 7F0BF0E8 0C000F16 */ jal video_related_F +/* 0F3C5C 7F0BF0EC 00402025 */ move $a0, $v0 +/* 0F3C60 7F0BF0F0 0FC24677 */ jal get_debug_render_raster +/* 0F3C64 7F0BF0F4 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3C68 7F0BF0F8 14400004 */ bnez $v0, .Ljp7F0BF10C +/* 0F3C6C 7F0BF0FC 00000000 */ nop +/* 0F3C70 7F0BF100 0FC24818 */ jal sub_GAME_7F091580 +/* 0F3C74 7F0BF104 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3C78 7F0BF108 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF10C: +/* 0F3C7C 7F0BF10C 0FC24677 */ jal get_debug_render_raster +/* 0F3C80 7F0BF110 00000000 */ nop +/* 0F3C84 7F0BF114 24010001 */ li $at, 1 +/* 0F3C88 7F0BF118 14410004 */ bne $v0, $at, .Ljp7F0BF12C +/* 0F3C8C 7F0BF11C 00000000 */ nop +/* 0F3C90 7F0BF120 0FC2CE3E */ jal sub_GAME_7F0B2D48 +/* 0F3C94 7F0BF124 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3C98 7F0BF128 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF12C: +/* 0F3C9C 7F0BF12C 0FC24677 */ jal get_debug_render_raster +/* 0F3CA0 7F0BF130 00000000 */ nop +/* 0F3CA4 7F0BF134 24010002 */ li $at, 2 +/* 0F3CA8 7F0BF138 14410004 */ bne $v0, $at, .Ljp7F0BF14C +/* 0F3CAC 7F0BF13C 00000000 */ nop +/* 0F3CB0 7F0BF140 0FC22035 */ jal sub_GAME_7F087A08 +/* 0F3CB4 7F0BF144 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3CB8 7F0BF148 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF14C: +/* 0F3CBC 7F0BF14C 0C000FD9 */ jal setupscreensfornumplayers +/* 0F3CC0 7F0BF150 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3CC4 7F0BF154 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3CC8 7F0BF158 0FC2540A */ jal sub_GAME_7F094488 +/* 0F3CCC 7F0BF15C 00402025 */ move $a0, $v0 +/* 0F3CD0 7F0BF160 0FC2D50D */ jal sub_GAME_7F0B4884 +/* 0F3CD4 7F0BF164 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3CD8 7F0BF168 0FC0F34C */ jal determing_type_of_object_and_detection +/* 0F3CDC 7F0BF16C 00000000 */ nop +/* 0F3CE0 7F0BF170 0FC0E950 */ jal sub_GAME_7F03A240 +/* 0F3CE4 7F0BF174 00000000 */ nop +/* 0F3CE8 7F0BF178 0FC0F6A3 */ jal sub_GAME_7F03D78C +/* 0F3CEC 7F0BF17C 00000000 */ nop +/* 0F3CF0 7F0BF180 0FC0F165 */ jal sub_GAME_7F03C294 +/* 0F3CF4 7F0BF184 00000000 */ nop +/* 0F3CF8 7F0BF188 0FC2299C */ jal sub_GAME_7F089F38 +/* 0F3CFC 7F0BF18C 00000000 */ nop +/* 0F3D00 7F0BF190 10400009 */ beqz $v0, .Ljp7F0BF1B8 +/* 0F3D04 7F0BF194 00000000 */ nop +/* 0F3D08 7F0BF198 0FC0F1FC */ jal sub_GAME_7F03C4F0 +/* 0F3D0C 7F0BF19C 00000000 */ nop +/* 0F3D10 7F0BF1A0 10400005 */ beqz $v0, .Ljp7F0BF1B8 +/* 0F3D14 7F0BF1A4 00000000 */ nop +/* 0F3D18 7F0BF1A8 0FC177A1 */ jal attempt_reload_item_in_hand +/* 0F3D1C 7F0BF1AC 00002025 */ move $a0, $zero +/* 0F3D20 7F0BF1B0 0FC177A1 */ jal attempt_reload_item_in_hand +/* 0F3D24 7F0BF1B4 24040001 */ li $a0, 1 +.Ljp7F0BF1B8: +/* 0F3D28 7F0BF1B8 0FC0F4F5 */ jal sub_GAME_7F03D0D4 +/* 0F3D2C 7F0BF1BC 00000000 */ nop +/* 0F3D30 7F0BF1C0 0FC2D67C */ jal sub_GAME_7F0B4E40 +/* 0F3D34 7F0BF1C4 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3D38 7F0BF1C8 0FC246C7 */ jal get_debug_portal_flag +/* 0F3D3C 7F0BF1CC AFA20060 */ sw $v0, 0x60($sp) +/* 0F3D40 7F0BF1D0 10400004 */ beqz $v0, .Ljp7F0BF1E4 +/* 0F3D44 7F0BF1D4 00000000 */ nop +/* 0F3D48 7F0BF1D8 0FC2FAB4 */ jal sub_GAME_7F0BDF10 +/* 0F3D4C 7F0BF1DC 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3D50 7F0BF1E0 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF1E4: +/* 0F3D54 7F0BF1E4 0FC24694 */ jal get_turbo_mode_flag +/* 0F3D58 7F0BF1E8 00000000 */ nop +/* 0F3D5C 7F0BF1EC 10400004 */ beqz $v0, .Ljp7F0BF200 +/* 0F3D60 7F0BF1F0 00000000 */ nop +/* 0F3D64 7F0BF1F4 0FC2CEFB */ jal sub_GAME_7F0B303C +/* 0F3D68 7F0BF1F8 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3D6C 7F0BF1FC AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF200: +/* 0F3D70 7F0BF200 0FC2468E */ jal get_debug_stanhit_flag +/* 0F3D74 7F0BF204 00000000 */ nop +/* 0F3D78 7F0BF208 10400007 */ beqz $v0, .Ljp7F0BF228 +/* 0F3D7C 7F0BF20C 00000000 */ nop +/* 0F3D80 7F0BF210 0FC2CEF9 */ jal sub_GAME_7F0B3034 +/* 0F3D84 7F0BF214 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3D88 7F0BF218 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3D8C 7F0BF21C 0FC22765 */ jal write_stan_tiles_in_yellow +/* 0F3D90 7F0BF220 00402025 */ move $a0, $v0 +/* 0F3D94 7F0BF224 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF228: +/* 0F3D98 7F0BF228 0FC24691 */ jal get_debug_stanregion_flag +/* 0F3D9C 7F0BF22C 00000000 */ nop +/* 0F3DA0 7F0BF230 10400008 */ beqz $v0, .Ljp7F0BF254 +/* 0F3DA4 7F0BF234 00000000 */ nop +/* 0F3DA8 7F0BF238 0FC2CEF9 */ jal sub_GAME_7F0B3034 +/* 0F3DAC 7F0BF23C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3DB0 7F0BF240 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3DB4 7F0BF244 00402025 */ move $a0, $v0 +/* 0F3DB8 7F0BF248 0FC2CF37 */ jal sub_GAME_7F0B312C +/* 0F3DBC 7F0BF24C 24058040 */ li $a1, -32704 +/* 0F3DC0 7F0BF250 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF254: +/* 0F3DC4 7F0BF254 3C058006 */ lui $a1, %hi(aStanshow_) # $a1, 0x8006 +/* 0F3DC8 7F0BF258 24A5B6FC */ addiu $a1, %lo(aStanshow_) # addiu $a1, $a1, -0x4904 +/* 0F3DCC 7F0BF25C 0C0029AC */ jal check_token +/* 0F3DD0 7F0BF260 24040001 */ li $a0, 1 +/* 0F3DD4 7F0BF264 10400011 */ beqz $v0, .Ljp7F0BF2AC +/* 0F3DD8 7F0BF268 24040001 */ li $a0, 1 +/* 0F3DDC 7F0BF26C 3C058006 */ lui $a1, %hi(aStanshow__5) # $a1, 0x8006 +/* 0F3DE0 7F0BF270 0C0029AC */ jal check_token +/* 0F3DE4 7F0BF274 24A5B708 */ addiu $a1, %lo(aStanshow__5) # addiu $a1, $a1, -0x48f8 +/* 0F3DE8 7F0BF278 0FC2CE82 */ jal stanMatchTileName +/* 0F3DEC 7F0BF27C 00402025 */ move $a0, $v0 +/* 0F3DF0 7F0BF280 1040000A */ beqz $v0, .Ljp7F0BF2AC +/* 0F3DF4 7F0BF284 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3DF8 7F0BF288 0FC2CEF9 */ jal sub_GAME_7F0B3034 +/* 0F3DFC 7F0BF28C AFA20030 */ sw $v0, 0x30($sp) +/* 0F3E00 7F0BF290 3C06FF00 */ lui $a2, (0xFF0000FF >> 16) # lui $a2, 0xff00 +/* 0F3E04 7F0BF294 8FA50030 */ lw $a1, 0x30($sp) +/* 0F3E08 7F0BF298 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3E0C 7F0BF29C 34C600FF */ ori $a2, (0xFF0000FF & 0xFFFF) # ori $a2, $a2, 0xff +/* 0F3E10 7F0BF2A0 0FC2CEF5 */ jal sub_GAME_7F0B3024 +/* 0F3E14 7F0BF2A4 00402025 */ move $a0, $v0 +/* 0F3E18 7F0BF2A8 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF2AC: +/* 0F3E1C 7F0BF2AC 3C058006 */ lui $a1, %hi(aStanshow__0) # $a1, 0x8006 +/* 0F3E20 7F0BF2B0 24A5B714 */ addiu $a1, %lo(aStanshow__0) # addiu $a1, $a1, -0x48ec +/* 0F3E24 7F0BF2B4 0C0029AC */ jal check_token +/* 0F3E28 7F0BF2B8 24040002 */ li $a0, 2 +/* 0F3E2C 7F0BF2BC 10400011 */ beqz $v0, .Ljp7F0BF304 +/* 0F3E30 7F0BF2C0 24040002 */ li $a0, 2 +/* 0F3E34 7F0BF2C4 3C058006 */ lui $a1, %hi(aStanshow__1) # $a1, 0x8006 +/* 0F3E38 7F0BF2C8 0C0029AC */ jal check_token +/* 0F3E3C 7F0BF2CC 24A5B720 */ addiu $a1, %lo(aStanshow__1) # addiu $a1, $a1, -0x48e0 +/* 0F3E40 7F0BF2D0 0FC2CE82 */ jal stanMatchTileName +/* 0F3E44 7F0BF2D4 00402025 */ move $a0, $v0 +/* 0F3E48 7F0BF2D8 1040000A */ beqz $v0, .Ljp7F0BF304 +/* 0F3E4C 7F0BF2DC 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3E50 7F0BF2E0 0FC2CEF9 */ jal sub_GAME_7F0B3034 +/* 0F3E54 7F0BF2E4 AFA2002C */ sw $v0, 0x2c($sp) +/* 0F3E58 7F0BF2E8 3C0600FF */ lui $a2, (0x00FF00FF >> 16) # lui $a2, 0xff +/* 0F3E5C 7F0BF2EC 8FA5002C */ lw $a1, 0x2c($sp) +/* 0F3E60 7F0BF2F0 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3E64 7F0BF2F4 34C600FF */ ori $a2, (0x00FF00FF & 0xFFFF) # ori $a2, $a2, 0xff +/* 0F3E68 7F0BF2F8 0FC2CEF5 */ jal sub_GAME_7F0B3024 +/* 0F3E6C 7F0BF2FC 00402025 */ move $a0, $v0 +/* 0F3E70 7F0BF300 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF304: +/* 0F3E74 7F0BF304 3C058006 */ lui $a1, %hi(aStanshow__2) # $a1, 0x8006 +/* 0F3E78 7F0BF308 24A5B72C */ addiu $a1, %lo(aStanshow__2) # addiu $a1, $a1, -0x48d4 +/* 0F3E7C 7F0BF30C 0C0029AC */ jal check_token +/* 0F3E80 7F0BF310 24040003 */ li $a0, 3 +/* 0F3E84 7F0BF314 10400010 */ beqz $v0, .Ljp7F0BF358 +/* 0F3E88 7F0BF318 24040003 */ li $a0, 3 +/* 0F3E8C 7F0BF31C 3C058006 */ lui $a1, %hi(aStanshow__3) # $a1, 0x8006 +/* 0F3E90 7F0BF320 0C0029AC */ jal check_token +/* 0F3E94 7F0BF324 24A5B738 */ addiu $a1, %lo(aStanshow__3) # addiu $a1, $a1, -0x48c8 +/* 0F3E98 7F0BF328 0FC2CE82 */ jal stanMatchTileName +/* 0F3E9C 7F0BF32C 00402025 */ move $a0, $v0 +/* 0F3EA0 7F0BF330 10400009 */ beqz $v0, .Ljp7F0BF358 +/* 0F3EA4 7F0BF334 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3EA8 7F0BF338 0FC2CEF9 */ jal sub_GAME_7F0B3034 +/* 0F3EAC 7F0BF33C AFA20028 */ sw $v0, 0x28($sp) +/* 0F3EB0 7F0BF340 8FA50028 */ lw $a1, 0x28($sp) +/* 0F3EB4 7F0BF344 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3EB8 7F0BF348 00402025 */ move $a0, $v0 +/* 0F3EBC 7F0BF34C 0FC2CEF5 */ jal sub_GAME_7F0B3024 +/* 0F3EC0 7F0BF350 3406FFFF */ li $a2, 65535 +/* 0F3EC4 7F0BF354 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF358: +/* 0F3EC8 7F0BF358 0FC2467D */ jal get_debug_limit_controller_input +/* 0F3ECC 7F0BF35C 00000000 */ nop +/* 0F3ED0 7F0BF360 38440008 */ xori $a0, $v0, 8 +/* 0F3ED4 7F0BF364 0FC08C43 */ jal sub_GAME_7F022E24 +/* 0F3ED8 7F0BF368 2C840001 */ sltiu $a0, $a0, 1 +/* 0F3EDC 7F0BF36C 0FC127D7 */ jal sub_GAME_7F049B58 +/* 0F3EE0 7F0BF370 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3EE4 7F0BF374 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3EE8 7F0BF378 27A40060 */ addiu $a0, $sp, 0x60 +/* 0F3EEC 7F0BF37C 0FC294F1 */ jal sub_GAME_7F0A4824 +/* 0F3EF0 7F0BF380 24050001 */ li $a1, 1 +/* 0F3EF4 7F0BF384 0FC28DF9 */ jal sub_GAME_7F0A2C44 +/* 0F3EF8 7F0BF388 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3EFC 7F0BF38C AFA20060 */ sw $v0, 0x60($sp) +/* 0F3F00 7F0BF390 0FC282F6 */ jal sub_GAME_7F0A0034 +/* 0F3F04 7F0BF394 00402025 */ move $a0, $v0 +/* 0F3F08 7F0BF398 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3F0C 7F0BF39C 0FC24CCF */ jal cheatCheckIfOn +/* 0F3F10 7F0BF3A0 2404000B */ li $a0, 11 +/* 0F3F14 7F0BF3A4 1040000C */ beqz $v0, .Ljp7F0BF3D8 +/* 0F3F18 7F0BF3A8 00000000 */ nop +/* 0F3F1C 7F0BF3AC 0FC177BC */ jal get_item_in_hand +/* 0F3F20 7F0BF3B0 00002025 */ move $a0, $zero +/* 0F3F24 7F0BF3B4 24010017 */ li $at, 23 +/* 0F3F28 7F0BF3B8 14410005 */ bne $v0, $at, .Ljp7F0BF3D0 +/* 0F3F2C 7F0BF3BC 00000000 */ nop +/* 0F3F30 7F0BF3C0 8E180000 */ lw $t8, ($s0) +/* 0F3F34 7F0BF3C4 8F0D0FCC */ lw $t5, 0xfcc($t8) +/* 0F3F38 7F0BF3C8 15A00003 */ bnez $t5, .Ljp7F0BF3D8 +/* 0F3F3C 7F0BF3CC 00000000 */ nop +.Ljp7F0BF3D0: +/* 0F3F40 7F0BF3D0 0FC1A637 */ jal set_max_ammo_for_cur_player +/* 0F3F44 7F0BF3D4 00000000 */ nop +.Ljp7F0BF3D8: +/* 0F3F48 7F0BF3D8 0FC24677 */ jal get_debug_render_raster +/* 0F3F4C 7F0BF3DC 00000000 */ nop +/* 0F3F50 7F0BF3E0 24010002 */ li $at, 2 +/* 0F3F54 7F0BF3E4 14410005 */ bne $v0, $at, .Ljp7F0BF3FC +/* 0F3F58 7F0BF3E8 00000000 */ nop +/* 0F3F5C 7F0BF3EC 0FC22637 */ jal maybe_mp_interface +/* 0F3F60 7F0BF3F0 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3F64 7F0BF3F4 10000004 */ b .Ljp7F0BF408 +/* 0F3F68 7F0BF3F8 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF3FC: +/* 0F3F6C 7F0BF3FC 0FC23150 */ jal sub_GAME_7F08BCB8 +/* 0F3F70 7F0BF400 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3F74 7F0BF404 AFA20060 */ sw $v0, 0x60($sp) +.Ljp7F0BF408: +/* 0F3F78 7F0BF408 0FC31335 */ jal mp_watch_menu_display +/* 0F3F7C 7F0BF40C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3F80 7F0BF410 8FB90044 */ lw $t9, 0x44($sp) +/* 0F3F84 7F0BF414 26310001 */ addiu $s1, $s1, 1 +/* 0F3F88 7F0BF418 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3F8C 7F0BF41C 0239082A */ slt $at, $s1, $t9 +/* 0F3F90 7F0BF420 1420FF1C */ bnez $at, .Ljp7F0BF094 +/* 0F3F94 7F0BF424 00000000 */ nop +.Ljp7F0BF428: +/* 0F3F98 7F0BF428 8FB00060 */ lw $s0, 0x60($sp) +/* 0F3F9C 7F0BF42C 3C0BED00 */ lui $t3, 0xed00 +/* 0F3FA0 7F0BF430 260A0008 */ addiu $t2, $s0, 8 +/* 0F3FA4 7F0BF434 AFAA0060 */ sw $t2, 0x60($sp) +/* 0F3FA8 7F0BF438 0C001107 */ jal get_video2_settings_txtClipW +/* 0F3FAC 7F0BF43C AE0B0000 */ sw $t3, ($s0) +/* 0F3FB0 7F0BF440 00028C00 */ sll $s1, $v0, 0x10 +/* 0F3FB4 7F0BF444 00116403 */ sra $t4, $s1, 0x10 +/* 0F3FB8 7F0BF448 0C00110B */ jal get_video2_settings_txtClipH +/* 0F3FBC 7F0BF44C 01808825 */ move $s1, $t4 +/* 0F3FC0 7F0BF450 44824000 */ mtc1 $v0, $f8 +/* 0F3FC4 7F0BF454 44913000 */ mtc1 $s1, $f6 +/* 0F3FC8 7F0BF458 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0F3FCC 7F0BF45C 468042A0 */ cvt.s.w $f10, $f8 +/* 0F3FD0 7F0BF460 44818000 */ mtc1 $at, $f16 +/* 0F3FD4 7F0BF464 46803220 */ cvt.s.w $f8, $f6 +/* 0F3FD8 7F0BF468 46105482 */ mul.s $f18, $f10, $f16 +/* 0F3FDC 7F0BF46C 44815000 */ mtc1 $at, $f10 +/* 0F3FE0 7F0BF470 00000000 */ nop +/* 0F3FE4 7F0BF474 460A4402 */ mul.s $f16, $f8, $f10 +/* 0F3FE8 7F0BF478 4600910D */ trunc.w.s $f4, $f18 +/* 0F3FEC 7F0BF47C 4600848D */ trunc.w.s $f18, $f16 +/* 0F3FF0 7F0BF480 440F2000 */ mfc1 $t7, $f4 +/* 0F3FF4 7F0BF484 44199000 */ mfc1 $t9, $f18 +/* 0F3FF8 7F0BF488 31F80FFF */ andi $t8, $t7, 0xfff +/* 0F3FFC 7F0BF48C 33290FFF */ andi $t1, $t9, 0xfff +/* 0F4000 7F0BF490 00095300 */ sll $t2, $t1, 0xc +/* 0F4004 7F0BF494 030A5825 */ or $t3, $t8, $t2 +/* 0F4008 7F0BF498 AE0B0004 */ sw $t3, 4($s0) +/* 0F400C 7F0BF49C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F4010 7F0BF4A0 8FB10018 */ lw $s1, 0x18($sp) +/* 0F4014 7F0BF4A4 8FB00014 */ lw $s0, 0x14($sp) +/* 0F4018 7F0BF4A8 8FA20060 */ lw $v0, 0x60($sp) +/* 0F401C 7F0BF4AC 03E00008 */ jr $ra +/* 0F4020 7F0BF4B0 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0BE8D0(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_8005B73C +.word 0x3f19999a /*0.60000002*/ +glabel D_8005B740 +.word 0x3ef33334 /*0.47500002*/ +glabel D_8005B744 +.word 0x3f19999a /*0.60000002*/ +glabel D_8005B748 +.word 0x3e4ccccd /*0.2*/ +glabel D_8005B74C +.word 0x3e4ccccd /*0.2*/ +.text +glabel sub_GAME_7F0BE8D0 +/* 0F3400 7F0BE8D0 3C028005 */ lui $v0, %hi(difficulty_0) +/* 0F3404 7F0BE8D4 8C428384 */ lw $v0, %lo(difficulty_0)($v0) +/* 0F3408 7F0BE8D8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0F340C 7F0BE8DC AFBF0014 */ sw $ra, 0x14($sp) +/* 0F3410 7F0BE8E0 14400048 */ bnez $v0, .L7F0BEA04 +/* 0F3414 7F0BE8E4 24010001 */ li $at, 1 +/* 0F3418 7F0BE8E8 0FC228BB */ jal get_BONDdata_watch_health +/* 0F341C 7F0BE8EC 00000000 */ nop +/* 0F3420 7F0BE8F0 0FC228BF */ jal get_BONDdata_watch_armor +/* 0F3424 7F0BE8F4 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0F3428 7F0BE8F8 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0F342C 7F0BE8FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F3430 7F0BE900 44816000 */ mtc1 $at, $f12 +/* 0F3434 7F0BE904 46040380 */ add.s $f14, $f0, $f4 +/* 0F3438 7F0BE908 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 0F343C 7F0BE90C 44818000 */ mtc1 $at, $f16 +/* 0F3440 7F0BE910 3C018006 */ lui $at, %hi(D_8005B73C) +/* 0F3444 7F0BE914 4610703E */ c.le.s $f14, $f16 +/* 0F3448 7F0BE918 00000000 */ nop +/* 0F344C 7F0BE91C 45000005 */ bc1f .L7F0BE934 +/* 0F3450 7F0BE920 00000000 */ nop +/* 0F3454 7F0BE924 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F3458 7F0BE928 44816000 */ mtc1 $at, $f12 +/* 0F345C 7F0BE92C 1000000F */ b .L7F0BE96C +/* 0F3460 7F0BE930 3C014000 */ lui $at, 0x4000 +.L7F0BE934: +/* 0F3464 7F0BE934 C426B73C */ lwc1 $f6, %lo(D_8005B73C)($at) +/* 0F3468 7F0BE938 3C013F00 */ lui $at, 0x3f00 +/* 0F346C 7F0BE93C 4606703E */ c.le.s $f14, $f6 +/* 0F3470 7F0BE940 00000000 */ nop +/* 0F3474 7F0BE944 45020009 */ bc1fl .L7F0BE96C +/* 0F3478 7F0BE948 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0F347C 7F0BE94C 46107201 */ sub.s $f8, $f14, $f16 +/* 0F3480 7F0BE950 44819000 */ mtc1 $at, $f18 +/* 0F3484 7F0BE954 3C018006 */ lui $at, %hi(D_8005B740) +/* 0F3488 7F0BE958 C424B740 */ lwc1 $f4, %lo(D_8005B740)($at) +/* 0F348C 7F0BE95C 46124282 */ mul.s $f10, $f8, $f18 +/* 0F3490 7F0BE960 46045183 */ div.s $f6, $f10, $f4 +/* 0F3494 7F0BE964 46123300 */ add.s $f12, $f6, $f18 +/* 0F3498 7F0BE968 3C014000 */ li $at, 0x40000000 # 2.000000 +.L7F0BE96C: +/* 0F349C 7F0BE96C 44811000 */ mtc1 $at, $f2 +/* 0F34A0 7F0BE970 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F34A4 7F0BE974 44819000 */ mtc1 $at, $f18 +/* 0F34A8 7F0BE978 3C018003 */ lui $at, %hi(D_80030B14) +/* 0F34AC 7F0BE97C E4220B14 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F34B0 7F0BE980 460C9002 */ mul.s $f0, $f18, $f12 +/* 0F34B4 7F0BE984 3C018003 */ lui $at, %hi(D_80030B18) +/* 0F34B8 7F0BE988 E4220B18 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F34BC 7F0BE98C 3C018003 */ lui $at, %hi(D_80030B1C) +/* 0F34C0 7F0BE990 E4200B1C */ swc1 $f0, %lo(D_80030B1C)($at) +/* 0F34C4 7F0BE994 3C018003 */ lui $at, %hi(D_80030B20) +/* 0F34C8 7F0BE998 E4200B20 */ swc1 $f0, %lo(D_80030B20)($at) +/* 0F34CC 7F0BE99C 3C018003 */ lui $at, %hi(D_80030B24) +/* 0F34D0 7F0BE9A0 E4220B24 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F34D4 7F0BE9A4 3C018006 */ lui $at, %hi(D_8005B744) +/* 0F34D8 7F0BE9A8 C428B744 */ lwc1 $f8, %lo(D_8005B744)($at) +/* 0F34DC 7F0BE9AC 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 0F34E0 7F0BE9B0 E428CE40 */ swc1 $f8, %lo(ai_accuracy_modifier)($at) +/* 0F34E4 7F0BE9B4 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 0F34E8 7F0BE9B8 E420CE44 */ swc1 $f0, %lo(ai_damage_modifier)($at) +/* 0F34EC 7F0BE9BC 3C018003 */ lui $at, %hi(ai_health_modifier) +/* 0F34F0 7F0BE9C0 E422CE48 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F34F4 7F0BE9C4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0F34F8 7F0BE9C8 44815000 */ mtc1 $at, $f10 +/* 0F34FC 7F0BE9CC 3C018004 */ lui $at, %hi(D_80040178) +/* 0F3500 7F0BE9D0 460C5102 */ mul.s $f4, $f10, $f12 +/* 0F3504 7F0BE9D4 E4240178 */ swc1 $f4, %lo(D_80040178)($at) +/* 0F3508 7F0BE9D8 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0F350C 7F0BE9DC 44813000 */ mtc1 $at, $f6 +/* 0F3510 7F0BE9E0 3C018003 */ lui $at, %hi(difficulty) +/* 0F3514 7F0BE9E4 E4260AAC */ swc1 $f6, %lo(difficulty)($at) +/* 0F3518 7F0BE9E8 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 0F351C 7F0BE9EC E4220B28 */ swc1 $f2, %lo(solo_ammo_multiplier)($at) +/* 0F3520 7F0BE9F0 3C018006 */ lui $at, %hi(D_8005B748) +/* 0F3524 7F0BE9F4 C428B748 */ lwc1 $f8, %lo(D_8005B748)($at) +/* 0F3528 7F0BE9F8 3C018003 */ lui $at, %hi(ai_reaction_speed) +/* 0F352C 7F0BE9FC 1000005E */ b .L7F0BEB78 +/* 0F3530 7F0BEA00 E428CE4C */ swc1 $f8, %lo(ai_reaction_speed)($at) +.L7F0BEA04: +/* 0F3534 7F0BEA04 14410021 */ bne $v0, $at, .L7F0BEA8C +/* 0F3538 7F0BEA08 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0F353C 7F0BEA0C 44810000 */ mtc1 $at, $f0 +/* 0F3540 7F0BEA10 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F3544 7F0BEA14 44811000 */ mtc1 $at, $f2 +/* 0F3548 7F0BEA18 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F354C 7F0BEA1C 44819000 */ mtc1 $at, $f18 +/* 0F3550 7F0BEA20 3C018003 */ lui $at, %hi(D_80030B14) +/* 0F3554 7F0BEA24 E4220B14 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F3558 7F0BEA28 3C018003 */ lui $at, %hi(D_80030B18) +/* 0F355C 7F0BEA2C E4220B18 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F3560 7F0BEA30 3C018003 */ lui $at, %hi(D_80030B1C) +/* 0F3564 7F0BEA34 E4200B1C */ swc1 $f0, %lo(D_80030B1C)($at) +/* 0F3568 7F0BEA38 3C018003 */ lui $at, %hi(D_80030B20) +/* 0F356C 7F0BEA3C E4200B20 */ swc1 $f0, %lo(D_80030B20)($at) +/* 0F3570 7F0BEA40 3C018003 */ lui $at, %hi(D_80030B24) +/* 0F3574 7F0BEA44 E4220B24 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F3578 7F0BEA48 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 0F357C 7F0BEA4C E420CE40 */ swc1 $f0, %lo(ai_accuracy_modifier)($at) +/* 0F3580 7F0BEA50 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 0F3584 7F0BEA54 E420CE44 */ swc1 $f0, %lo(ai_damage_modifier)($at) +/* 0F3588 7F0BEA58 3C018003 */ lui $at, %hi(ai_health_modifier) +/* 0F358C 7F0BEA5C E422CE48 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F3590 7F0BEA60 3C018004 */ lui $at, %hi(D_80040178) +/* 0F3594 7F0BEA64 E4200178 */ swc1 $f0, %lo(D_80040178)($at) +/* 0F3598 7F0BEA68 3C018003 */ lui $at, %hi(difficulty) +/* 0F359C 7F0BEA6C E4200AAC */ swc1 $f0, %lo(difficulty)($at) +/* 0F35A0 7F0BEA70 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0F35A4 7F0BEA74 44815000 */ mtc1 $at, $f10 +/* 0F35A8 7F0BEA78 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 0F35AC 7F0BEA7C E42A0B28 */ swc1 $f10, %lo(solo_ammo_multiplier)($at) +/* 0F35B0 7F0BEA80 3C018003 */ lui $at, %hi(ai_reaction_speed) +/* 0F35B4 7F0BEA84 1000003C */ b .L7F0BEB78 +/* 0F35B8 7F0BEA88 E432CE4C */ swc1 $f18, %lo(ai_reaction_speed)($at) +.L7F0BEA8C: +/* 0F35BC 7F0BEA8C 24010002 */ li $at, 2 +/* 0F35C0 7F0BEA90 1441001D */ bne $v0, $at, .L7F0BEB08 +/* 0F35C4 7F0BEA94 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F35C8 7F0BEA98 44811000 */ mtc1 $at, $f2 +/* 0F35CC 7F0BEA9C 3C018003 */ lui $at, %hi(D_80030B14) +/* 0F35D0 7F0BEAA0 E4220B14 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F35D4 7F0BEAA4 3C018003 */ lui $at, %hi(D_80030B18) +/* 0F35D8 7F0BEAA8 E4220B18 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F35DC 7F0BEAAC 3C018003 */ lui $at, %hi(D_80030B1C) +/* 0F35E0 7F0BEAB0 E4220B1C */ swc1 $f2, %lo(D_80030B1C)($at) +/* 0F35E4 7F0BEAB4 3C018003 */ lui $at, %hi(D_80030B20) +/* 0F35E8 7F0BEAB8 E4220B20 */ swc1 $f2, %lo(D_80030B20)($at) +/* 0F35EC 7F0BEABC 3C018003 */ lui $at, %hi(D_80030B24) +/* 0F35F0 7F0BEAC0 E4220B24 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F35F4 7F0BEAC4 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 0F35F8 7F0BEAC8 E422CE40 */ swc1 $f2, %lo(ai_accuracy_modifier)($at) +/* 0F35FC 7F0BEACC 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 0F3600 7F0BEAD0 E422CE44 */ swc1 $f2, %lo(ai_damage_modifier)($at) +/* 0F3604 7F0BEAD4 3C018003 */ lui $at, %hi(ai_health_modifier) +/* 0F3608 7F0BEAD8 E422CE48 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F360C 7F0BEADC 3C018004 */ lui $at, %hi(D_80040178) +/* 0F3610 7F0BEAE0 E4220178 */ swc1 $f2, %lo(D_80040178)($at) +/* 0F3614 7F0BEAE4 3C018006 */ lui $at, %hi(D_8005B74C) +/* 0F3618 7F0BEAE8 C424B74C */ lwc1 $f4, %lo(D_8005B74C)($at) +/* 0F361C 7F0BEAEC 3C018003 */ lui $at, %hi(difficulty) +/* 0F3620 7F0BEAF0 E4240AAC */ swc1 $f4, %lo(difficulty)($at) +/* 0F3624 7F0BEAF4 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 0F3628 7F0BEAF8 E4220B28 */ swc1 $f2, %lo(solo_ammo_multiplier)($at) +/* 0F362C 7F0BEAFC 3C018003 */ lui $at, %hi(ai_reaction_speed) +/* 0F3630 7F0BEB00 1000001D */ b .L7F0BEB78 +/* 0F3634 7F0BEB04 E422CE4C */ swc1 $f2, %lo(ai_reaction_speed)($at) +.L7F0BEB08: +/* 0F3638 7F0BEB08 24010003 */ li $at, 3 +/* 0F363C 7F0BEB0C 1441001A */ bne $v0, $at, .L7F0BEB78 +/* 0F3640 7F0BEB10 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F3644 7F0BEB14 44811000 */ mtc1 $at, $f2 +/* 0F3648 7F0BEB18 3C018003 */ lui $at, %hi(D_80030B14) +/* 0F364C 7F0BEB1C E4220B14 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F3650 7F0BEB20 3C018003 */ lui $at, %hi(D_80030B18) +/* 0F3654 7F0BEB24 E4220B18 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F3658 7F0BEB28 3C018003 */ lui $at, %hi(D_80030B1C) +/* 0F365C 7F0BEB2C E4220B1C */ swc1 $f2, %lo(D_80030B1C)($at) +/* 0F3660 7F0BEB30 3C018003 */ lui $at, %hi(D_80030B20) +/* 0F3664 7F0BEB34 E4220B20 */ swc1 $f2, %lo(D_80030B20)($at) +/* 0F3668 7F0BEB38 3C018003 */ lui $at, %hi(D_80030B24) +/* 0F366C 7F0BEB3C E4220B24 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F3670 7F0BEB40 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 0F3674 7F0BEB44 E422CE40 */ swc1 $f2, %lo(ai_accuracy_modifier)($at) +/* 0F3678 7F0BEB48 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 0F367C 7F0BEB4C E422CE44 */ swc1 $f2, %lo(ai_damage_modifier)($at) +/* 0F3680 7F0BEB50 3C018003 */ lui $at, %hi(ai_health_modifier) +/* 0F3684 7F0BEB54 E422CE48 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F3688 7F0BEB58 3C018004 */ lui $at, %hi(D_80040178) +/* 0F368C 7F0BEB5C E4220178 */ swc1 $f2, %lo(D_80040178)($at) +/* 0F3690 7F0BEB60 3C018003 */ lui $at, %hi(difficulty) +/* 0F3694 7F0BEB64 E4220AAC */ swc1 $f2, %lo(difficulty)($at) +/* 0F3698 7F0BEB68 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 0F369C 7F0BEB6C E4220B28 */ swc1 $f2, %lo(solo_ammo_multiplier)($at) +/* 0F36A0 7F0BEB70 3C018003 */ lui $at, %hi(ai_reaction_speed) +/* 0F36A4 7F0BEB74 E422CE4C */ swc1 $f2, %lo(ai_reaction_speed)($at) +.L7F0BEB78: +/* 0F36A8 7F0BEB78 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F36AC 7F0BEB7C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0F36B0 7F0BEB80 03E00008 */ jr $ra +/* 0F36B4 7F0BEB84 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_8005B73C +.word 0x3f19999a /*0.60000002*/ +glabel D_8005B740 +.word 0x3ef33334 /*0.47500002*/ +glabel D_8005B744 +.word 0x3f19999a /*0.60000002*/ +glabel D_8005B748 +.word 0x3e4ccccd /*0.2*/ +glabel D_8005B74C +.word 0x3f8ccccd +glabel jpD_8005B780 +.word 0x3e4ccccd /*0.2*/ +.text +glabel sub_GAME_7F0BE8D0 +/* 0F4024 7F0BF4B4 3C028005 */ lui $v0, %hi(difficulty_0) # $v0, 0x8005 +/* 0F4028 7F0BF4B8 8C4283B8 */ lw $v0, %lo(difficulty_0)($v0) +/* 0F402C 7F0BF4BC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0F4030 7F0BF4C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F4034 7F0BF4C4 14400048 */ bnez $v0, .Ljp7F0BF5E8 +/* 0F4038 7F0BF4C8 24010001 */ li $at, 1 +/* 0F403C 7F0BF4CC 0FC22A89 */ jal get_BONDdata_watch_health +/* 0F4040 7F0BF4D0 00000000 */ nop +/* 0F4044 7F0BF4D4 0FC22A8D */ jal get_BONDdata_watch_armor +/* 0F4048 7F0BF4D8 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0F404C 7F0BF4DC C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0F4050 7F0BF4E0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F4054 7F0BF4E4 44816000 */ mtc1 $at, $f12 +/* 0F4058 7F0BF4E8 46040380 */ add.s $f14, $f0, $f4 +/* 0F405C 7F0BF4EC 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 0F4060 7F0BF4F0 44818000 */ mtc1 $at, $f16 +/* 0F4064 7F0BF4F4 3C018006 */ lui $at, %hi(D_8005B73C) +/* 0F4068 7F0BF4F8 4610703E */ c.le.s $f14, $f16 +/* 0F406C 7F0BF4FC 00000000 */ nop +/* 0F4070 7F0BF500 45000005 */ bc1f .Ljp7F0BF518 +/* 0F4074 7F0BF504 00000000 */ nop +/* 0F4078 7F0BF508 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F407C 7F0BF50C 44816000 */ mtc1 $at, $f12 +/* 0F4080 7F0BF510 1000000F */ b .Ljp7F0BF550 +/* 0F4084 7F0BF514 3C014000 */ lui $at, 0x4000 +.Ljp7F0BF518: +/* 0F4088 7F0BF518 C426B76C */ lwc1 $f6, %lo(D_8005B73C)($at) +/* 0F408C 7F0BF51C 3C013F00 */ lui $at, 0x3f00 +/* 0F4090 7F0BF520 4606703E */ c.le.s $f14, $f6 +/* 0F4094 7F0BF524 00000000 */ nop +/* 0F4098 7F0BF528 45020009 */ bc1fl .Ljp7F0BF550 +/* 0F409C 7F0BF52C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0F40A0 7F0BF530 46107201 */ sub.s $f8, $f14, $f16 +/* 0F40A4 7F0BF534 44819000 */ mtc1 $at, $f18 +/* 0F40A8 7F0BF538 3C018006 */ lui $at, %hi(D_8005B740) # $at, 0x8006 +/* 0F40AC 7F0BF53C C424B770 */ lwc1 $f4, %lo(D_8005B740)($at) +/* 0F40B0 7F0BF540 46124282 */ mul.s $f10, $f8, $f18 +/* 0F40B4 7F0BF544 46045183 */ div.s $f6, $f10, $f4 +/* 0F40B8 7F0BF548 46123300 */ add.s $f12, $f6, $f18 +/* 0F40BC 7F0BF54C 3C014000 */ li $at, 0x40000000 # 2.000000 +.Ljp7F0BF550: +/* 0F40C0 7F0BF550 44811000 */ mtc1 $at, $f2 +/* 0F40C4 7F0BF554 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F40C8 7F0BF558 44819000 */ mtc1 $at, $f18 +/* 0F40CC 7F0BF55C 3C018003 */ lui $at, %hi(D_80030B14) # $at, 0x8003 +/* 0F40D0 7F0BF560 E4220B54 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F40D4 7F0BF564 460C9002 */ mul.s $f0, $f18, $f12 +/* 0F40D8 7F0BF568 3C018003 */ lui $at, %hi(D_80030B18) # $at, 0x8003 +/* 0F40DC 7F0BF56C E4220B58 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F40E0 7F0BF570 3C018003 */ lui $at, %hi(D_80030B1C) # $at, 0x8003 +/* 0F40E4 7F0BF574 E4200B5C */ swc1 $f0, %lo(D_80030B1C)($at) +/* 0F40E8 7F0BF578 3C018003 */ lui $at, %hi(D_80030B20) # $at, 0x8003 +/* 0F40EC 7F0BF57C E4200B60 */ swc1 $f0, %lo(D_80030B20)($at) +/* 0F40F0 7F0BF580 3C018003 */ lui $at, %hi(D_80030B24) # $at, 0x8003 +/* 0F40F4 7F0BF584 E4220B64 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F40F8 7F0BF588 3C018006 */ lui $at, %hi(D_8005B744) # $at, 0x8006 +/* 0F40FC 7F0BF58C C428B774 */ lwc1 $f8, %lo(D_8005B744)($at) +/* 0F4100 7F0BF590 3C018003 */ lui $at, %hi(ai_accuracy_modifier) # $at, 0x8003 +/* 0F4104 7F0BF594 E428CE80 */ swc1 $f8, %lo(ai_accuracy_modifier)($at) +/* 0F4108 7F0BF598 3C018003 */ lui $at, %hi(ai_damage_modifier) # $at, 0x8003 +/* 0F410C 7F0BF59C E420CE84 */ swc1 $f0, %lo(ai_damage_modifier)($at) +/* 0F4110 7F0BF5A0 3C018003 */ lui $at, %hi(ai_health_modifier) # $at, 0x8003 +/* 0F4114 7F0BF5A4 E422CE88 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F4118 7F0BF5A8 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0F411C 7F0BF5AC 44815000 */ mtc1 $at, $f10 +/* 0F4120 7F0BF5B0 3C018004 */ lui $at, %hi(D_80040178) # $at, 0x8004 +/* 0F4124 7F0BF5B4 460C5102 */ mul.s $f4, $f10, $f12 +/* 0F4128 7F0BF5B8 E42401A8 */ swc1 $f4, %lo(D_80040178)($at) +/* 0F412C 7F0BF5BC 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0F4130 7F0BF5C0 44813000 */ mtc1 $at, $f6 +/* 0F4134 7F0BF5C4 3C018003 */ lui $at, %hi(difficulty) # $at, 0x8003 +/* 0F4138 7F0BF5C8 E4260AEC */ swc1 $f6, %lo(difficulty)($at) +/* 0F413C 7F0BF5CC 3C018003 */ lui $at, %hi(solo_ammo_multiplier) # $at, 0x8003 +/* 0F4140 7F0BF5D0 E4220B68 */ swc1 $f2, %lo(solo_ammo_multiplier)($at) +/* 0F4144 7F0BF5D4 3C018006 */ lui $at, %hi(D_8005B748) # $at, 0x8006 +/* 0F4148 7F0BF5D8 C428B778 */ lwc1 $f8, %lo(D_8005B748)($at) +/* 0F414C 7F0BF5DC 3C018003 */ lui $at, %hi(ai_reaction_speed) # $at, 0x8003 +/* 0F4150 7F0BF5E0 1000006E */ b .Ljp7F0BF79C +/* 0F4154 7F0BF5E4 E428CE8C */ swc1 $f8, %lo(ai_reaction_speed)($at) +.Ljp7F0BF5E8: +/* 0F4158 7F0BF5E8 14410029 */ bne $v0, $at, .Ljp7F0BF690 +/* 0F415C 7F0BF5EC 3C0E8005 */ lui $t6, %hi(j_text_trigger) # $t6, 0x8005 +/* 0F4160 7F0BF5F0 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0F4164 7F0BF5F4 44810000 */ mtc1 $at, $f0 +/* 0F4168 7F0BF5F8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F416C 7F0BF5FC 44811000 */ mtc1 $at, $f2 +/* 0F4170 7F0BF600 3C018003 */ lui $at, %hi(D_80030B14) # $at, 0x8003 +/* 0F4174 7F0BF604 8DCE8500 */ lw $t6, %lo(j_text_trigger)($t6) +/* 0F4178 7F0BF608 E4220B54 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F417C 7F0BF60C 3C018003 */ lui $at, %hi(D_80030B18) # $at, 0x8003 +/* 0F4180 7F0BF610 E4220B58 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F4184 7F0BF614 3C018003 */ lui $at, %hi(D_80030B1C) # $at, 0x8003 +/* 0F4188 7F0BF618 E4200B5C */ swc1 $f0, %lo(D_80030B1C)($at) +/* 0F418C 7F0BF61C 3C018003 */ lui $at, %hi(D_80030B20) # $at, 0x8003 +/* 0F4190 7F0BF620 E4200B60 */ swc1 $f0, %lo(D_80030B20)($at) +/* 0F4194 7F0BF624 3C018003 */ lui $at, %hi(D_80030B24) # $at, 0x8003 +/* 0F4198 7F0BF628 E4220B64 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F419C 7F0BF62C 3C018003 */ lui $at, %hi(ai_accuracy_modifier) # $at, 0x8003 +/* 0F41A0 7F0BF630 E420CE80 */ swc1 $f0, %lo(ai_accuracy_modifier)($at) +/* 0F41A4 7F0BF634 3C018003 */ lui $at, %hi(ai_damage_modifier) # $at, 0x8003 +/* 0F41A8 7F0BF638 E420CE84 */ swc1 $f0, %lo(ai_damage_modifier)($at) +/* 0F41AC 7F0BF63C 3C018003 */ lui $at, %hi(ai_health_modifier) # $at, 0x8003 +/* 0F41B0 7F0BF640 E422CE88 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F41B4 7F0BF644 3C018004 */ lui $at, %hi(D_80040178) # $at, 0x8004 +/* 0F41B8 7F0BF648 11C00006 */ beqz $t6, .Ljp7F0BF664 +/* 0F41BC 7F0BF64C E42001A8 */ swc1 $f0, %lo(D_80040178)($at) +/* 0F41C0 7F0BF650 3C018006 */ lui $at, %hi(D_8005B74C) # $at, 0x8006 +/* 0F41C4 7F0BF654 C42AB77C */ lwc1 $f10, %lo(D_8005B74C)($at) +/* 0F41C8 7F0BF658 3C018003 */ lui $at, %hi(difficulty) # $at, 0x8003 +/* 0F41CC 7F0BF65C 10000003 */ b .Ljp7F0BF66C +/* 0F41D0 7F0BF660 E42A0AEC */ swc1 $f10, %lo(difficulty)($at) +.Ljp7F0BF664: +/* 0F41D4 7F0BF664 3C018003 */ lui $at, %hi(difficulty) # $at, 0x8003 +/* 0F41D8 7F0BF668 E4200AEC */ swc1 $f0, %lo(difficulty)($at) +.Ljp7F0BF66C: +/* 0F41DC 7F0BF66C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F41E0 7F0BF670 44819000 */ mtc1 $at, $f18 +/* 0F41E4 7F0BF674 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0F41E8 7F0BF678 44812000 */ mtc1 $at, $f4 +/* 0F41EC 7F0BF67C 3C018003 */ lui $at, %hi(solo_ammo_multiplier) # $at, 0x8003 +/* 0F41F0 7F0BF680 E4240B68 */ swc1 $f4, %lo(solo_ammo_multiplier)($at) +/* 0F41F4 7F0BF684 3C018003 */ lui $at, %hi(ai_reaction_speed) # $at, 0x8003 +/* 0F41F8 7F0BF688 10000044 */ b .Ljp7F0BF79C +/* 0F41FC 7F0BF68C E432CE8C */ swc1 $f18, %lo(ai_reaction_speed)($at) +.Ljp7F0BF690: +/* 0F4200 7F0BF690 24010002 */ li $at, 2 +/* 0F4204 7F0BF694 14410025 */ bne $v0, $at, .Ljp7F0BF72C +/* 0F4208 7F0BF698 3C0F8005 */ lui $t7, %hi(j_text_trigger) # $t7, 0x8005 +/* 0F420C 7F0BF69C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F4210 7F0BF6A0 44811000 */ mtc1 $at, $f2 +/* 0F4214 7F0BF6A4 3C018003 */ lui $at, %hi(D_80030B14) # $at, 0x8003 +/* 0F4218 7F0BF6A8 8DEF8500 */ lw $t7, %lo(j_text_trigger)($t7) +/* 0F421C 7F0BF6AC E4220B54 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F4220 7F0BF6B0 3C018003 */ lui $at, %hi(D_80030B18) # $at, 0x8003 +/* 0F4224 7F0BF6B4 E4220B58 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F4228 7F0BF6B8 3C018003 */ lui $at, %hi(D_80030B1C) # $at, 0x8003 +/* 0F422C 7F0BF6BC E4220B5C */ swc1 $f2, %lo(D_80030B1C)($at) +/* 0F4230 7F0BF6C0 3C018003 */ lui $at, %hi(D_80030B20) # $at, 0x8003 +/* 0F4234 7F0BF6C4 E4220B60 */ swc1 $f2, %lo(D_80030B20)($at) +/* 0F4238 7F0BF6C8 3C018003 */ lui $at, %hi(D_80030B24) # $at, 0x8003 +/* 0F423C 7F0BF6CC E4220B64 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F4240 7F0BF6D0 3C018003 */ lui $at, %hi(ai_accuracy_modifier) # $at, 0x8003 +/* 0F4244 7F0BF6D4 E422CE80 */ swc1 $f2, %lo(ai_accuracy_modifier)($at) +/* 0F4248 7F0BF6D8 3C018003 */ lui $at, %hi(ai_damage_modifier) # $at, 0x8003 +/* 0F424C 7F0BF6DC E422CE84 */ swc1 $f2, %lo(ai_damage_modifier)($at) +/* 0F4250 7F0BF6E0 3C018003 */ lui $at, %hi(ai_health_modifier) # $at, 0x8003 +/* 0F4254 7F0BF6E4 E422CE88 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F4258 7F0BF6E8 3C018004 */ lui $at, %hi(D_80040178) # $at, 0x8004 +/* 0F425C 7F0BF6EC 11E00006 */ beqz $t7, .Ljp7F0BF708 +/* 0F4260 7F0BF6F0 E42201A8 */ swc1 $f2, %lo(D_80040178)($at) +/* 0F4264 7F0BF6F4 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0F4268 7F0BF6F8 44810000 */ mtc1 $at, $f0 +/* 0F426C 7F0BF6FC 3C018003 */ lui $at, %hi(difficulty) # $at, 0x8003 +/* 0F4270 7F0BF700 10000005 */ b .Ljp7F0BF718 +/* 0F4274 7F0BF704 E4200AEC */ swc1 $f0, %lo(difficulty)($at) +.Ljp7F0BF708: +/* 0F4278 7F0BF708 3C018006 */ lui $at, %hi(jpD_8005B780) # $at, 0x8006 +/* 0F427C 7F0BF70C C426B780 */ lwc1 $f6, %lo(jpD_8005B780)($at) +/* 0F4280 7F0BF710 3C018003 */ lui $at, %hi(difficulty) # $at, 0x8003 +/* 0F4284 7F0BF714 E4260AEC */ swc1 $f6, %lo(difficulty)($at) +.Ljp7F0BF718: +/* 0F4288 7F0BF718 3C018003 */ lui $at, %hi(solo_ammo_multiplier) # $at, 0x8003 +/* 0F428C 7F0BF71C E4220B68 */ swc1 $f2, %lo(solo_ammo_multiplier)($at) +/* 0F4290 7F0BF720 3C018003 */ lui $at, %hi(ai_reaction_speed) # $at, 0x8003 +/* 0F4294 7F0BF724 1000001D */ b .Ljp7F0BF79C +/* 0F4298 7F0BF728 E422CE8C */ swc1 $f2, %lo(ai_reaction_speed)($at) +.Ljp7F0BF72C: +/* 0F429C 7F0BF72C 24010003 */ li $at, 3 +/* 0F42A0 7F0BF730 1441001A */ bne $v0, $at, .Ljp7F0BF79C +/* 0F42A4 7F0BF734 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F42A8 7F0BF738 44811000 */ mtc1 $at, $f2 +/* 0F42AC 7F0BF73C 3C018003 */ lui $at, %hi(D_80030B14) # $at, 0x8003 +/* 0F42B0 7F0BF740 E4220B54 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F42B4 7F0BF744 3C018003 */ lui $at, %hi(D_80030B18) # $at, 0x8003 +/* 0F42B8 7F0BF748 E4220B58 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F42BC 7F0BF74C 3C018003 */ lui $at, %hi(D_80030B1C) # $at, 0x8003 +/* 0F42C0 7F0BF750 E4220B5C */ swc1 $f2, %lo(D_80030B1C)($at) +/* 0F42C4 7F0BF754 3C018003 */ lui $at, %hi(D_80030B20) # $at, 0x8003 +/* 0F42C8 7F0BF758 E4220B60 */ swc1 $f2, %lo(D_80030B20)($at) +/* 0F42CC 7F0BF75C 3C018003 */ lui $at, %hi(D_80030B24) # $at, 0x8003 +/* 0F42D0 7F0BF760 E4220B64 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F42D4 7F0BF764 3C018003 */ lui $at, %hi(ai_accuracy_modifier) # $at, 0x8003 +/* 0F42D8 7F0BF768 E422CE80 */ swc1 $f2, %lo(ai_accuracy_modifier)($at) +/* 0F42DC 7F0BF76C 3C018003 */ lui $at, %hi(ai_damage_modifier) # $at, 0x8003 +/* 0F42E0 7F0BF770 E422CE84 */ swc1 $f2, %lo(ai_damage_modifier)($at) +/* 0F42E4 7F0BF774 3C018003 */ lui $at, %hi(ai_health_modifier) # $at, 0x8003 +/* 0F42E8 7F0BF778 E422CE88 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F42EC 7F0BF77C 3C018004 */ lui $at, %hi(D_80040178) # $at, 0x8004 +/* 0F42F0 7F0BF780 E42201A8 */ swc1 $f2, %lo(D_80040178)($at) +/* 0F42F4 7F0BF784 3C018003 */ lui $at, %hi(difficulty) # $at, 0x8003 +/* 0F42F8 7F0BF788 E4220AEC */ swc1 $f2, %lo(difficulty)($at) +/* 0F42FC 7F0BF78C 3C018003 */ lui $at, %hi(solo_ammo_multiplier) # $at, 0x8003 +/* 0F4300 7F0BF790 E4220B68 */ swc1 $f2, %lo(solo_ammo_multiplier)($at) +/* 0F4304 7F0BF794 3C018003 */ lui $at, %hi(ai_reaction_speed) # $at, 0x8003 +/* 0F4308 7F0BF798 E422CE8C */ swc1 $f2, %lo(ai_reaction_speed)($at) +.Ljp7F0BF79C: +/* 0F430C 7F0BF79C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4310 7F0BF7A0 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0F4314 7F0BF7A4 03E00008 */ jr $ra +/* 0F4318 7F0BF7A8 00000000 */ nop +) +#endif + +#endif + + + + +#ifdef NONMATCHING +void manage_mp_game(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel manage_mp_game +/* 0F36B8 7F0BEB88 27BDFE68 */ addiu $sp, $sp, -0x198 +/* 0F36BC 7F0BEB8C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F36C0 7F0BEB90 0C000626 */ jal mp_tlb_related +/* 0F36C4 7F0BEB94 00000000 */ nop +/* 0F36C8 7F0BEB98 3C0E8005 */ lui $t6, %hi(controls_locked_flag) +/* 0F36CC 7F0BEB9C 8DCE8370 */ lw $t6, %lo(controls_locked_flag)($t6) +/* 0F36D0 7F0BEBA0 3C018005 */ lui $at, %hi(clock_timer) +/* 0F36D4 7F0BEBA4 11C00003 */ beqz $t6, .L7F0BEBB4 +/* 0F36D8 7F0BEBA8 00000000 */ nop +/* 0F36DC 7F0BEBAC 10000010 */ b .L7F0BEBF0 +/* 0F36E0 7F0BEBB0 AC208374 */ sw $zero, %lo(clock_timer)($at) +.L7F0BEBB4: +/* 0F36E4 7F0BEBB4 0FC31820 */ jal checkGamePaused +/* 0F36E8 7F0BEBB8 00000000 */ nop +/* 0F36EC 7F0BEBBC 10400004 */ beqz $v0, .L7F0BEBD0 +/* 0F36F0 7F0BEBC0 3C0F8005 */ lui $t7, %hi(D_80048498) +/* 0F36F4 7F0BEBC4 3C018005 */ lui $at, %hi(clock_timer) +/* 0F36F8 7F0BEBC8 10000009 */ b .L7F0BEBF0 +/* 0F36FC 7F0BEBCC AC208374 */ sw $zero, %lo(clock_timer)($at) +.L7F0BEBD0: +/* 0F3700 7F0BEBD0 8DEF8498 */ lw $t7, %lo(D_80048498)($t7) +/* 0F3704 7F0BEBD4 3C028005 */ lui $v0, %hi(D_80048380) +/* 0F3708 7F0BEBD8 3C018005 */ lui $at, %hi(clock_timer) +/* 0F370C 7F0BEBDC 24428380 */ addiu $v0, %lo(D_80048380) # addiu $v0, $v0, -0x7c80 +/* 0F3710 7F0BEBE0 AC2F8374 */ sw $t7, %lo(clock_timer)($at) +/* 0F3714 7F0BEBE4 8C580000 */ lw $t8, ($v0) +/* 0F3718 7F0BEBE8 27190001 */ addiu $t9, $t8, 1 +/* 0F371C 7F0BEBEC AC590000 */ sw $t9, ($v0) +.L7F0BEBF0: +/* 0F3720 7F0BEBF0 3C028005 */ lui $v0, %hi(clock_timer) +/* 0F3724 7F0BEBF4 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0F3728 7F0BEBF8 3C038005 */ lui $v1, %hi(global_timer) +/* 0F372C 7F0BEBFC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0F3730 7F0BEC00 44822000 */ mtc1 $v0, $f4 +/* 0F3734 7F0BEC04 2463837C */ addiu $v1, %lo(global_timer) # addiu $v1, $v1, -0x7c84 +/* 0F3738 7F0BEC08 3C188005 */ lui $t8, %hi(current_stage_to_load) +/* 0F373C 7F0BEC0C 468021A0 */ cvt.s.w $f6, $f4 +/* 0F3740 7F0BEC10 3C198005 */ lui $t9, %hi(D_80048394) +/* 0F3744 7F0BEC14 E4268378 */ swc1 $f6, %lo(global_timer_delta)($at) +/* 0F3748 7F0BEC18 8C6E0000 */ lw $t6, ($v1) +/* 0F374C 7F0BEC1C 2401005A */ li $at, 90 +/* 0F3750 7F0BEC20 01C27821 */ addu $t7, $t6, $v0 +/* 0F3754 7F0BEC24 AC6F0000 */ sw $t7, ($v1) +/* 0F3758 7F0BEC28 8F188364 */ lw $t8, %lo(current_stage_to_load)($t8) +/* 0F375C 7F0BEC2C 1301001D */ beq $t8, $at, .L7F0BECA4 +/* 0F3760 7F0BEC30 00000000 */ nop +/* 0F3764 7F0BEC34 8F398394 */ lw $t9, %lo(D_80048394)($t9) +/* 0F3768 7F0BEC38 1720001A */ bnez $t9, .L7F0BECA4 +/* 0F376C 7F0BEC3C 00000000 */ nop +/* 0F3770 7F0BEC40 18400018 */ blez $v0, .L7F0BECA4 +/* 0F3774 7F0BEC44 3C0E8003 */ lui $t6, %hi(append_cheat_sp) +/* 0F3778 7F0BEC48 8DCEA900 */ lw $t6, %lo(append_cheat_sp)($t6) +/* 0F377C 7F0BEC4C 3C038007 */ lui $v1, %hi(CHEAT_AVAILABLE_EXTRA_CHARS) +/* 0F3780 7F0BEC50 246396A1 */ addiu $v1, %lo(CHEAT_AVAILABLE_EXTRA_CHARS) # addiu $v1, $v1, -0x695f +/* 0F3784 7F0BEC54 11C00013 */ beqz $t6, .L7F0BECA4 +/* 0F3788 7F0BEC58 24040001 */ li $a0, 1 +.L7F0BEC5C: +/* 0F378C 7F0BEC5C 906F0000 */ lbu $t7, ($v1) +/* 0F3790 7F0BEC60 51E0000D */ beql $t7, $zero, .L7F0BEC98 +/* 0F3794 7F0BEC64 24840001 */ addiu $a0, $a0, 1 +/* 0F3798 7F0BEC68 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F379C 7F0BEC6C 0FC24697 */ jal is_cheat_index_equal_to_1C +/* 0F37A0 7F0BEC70 AFA40194 */ sw $a0, 0x194($sp) +/* 0F37A4 7F0BEC74 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F37A8 7F0BEC78 14400006 */ bnez $v0, .L7F0BEC94 +/* 0F37AC 7F0BEC7C 8FA40194 */ lw $a0, 0x194($sp) +/* 0F37B0 7F0BEC80 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F37B4 7F0BEC84 0FC246AB */ jal turn_on_cheat_for_players +/* 0F37B8 7F0BEC88 AFA40194 */ sw $a0, 0x194($sp) +/* 0F37BC 7F0BEC8C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F37C0 7F0BEC90 8FA40194 */ lw $a0, 0x194($sp) +.L7F0BEC94: +/* 0F37C4 7F0BEC94 24840001 */ addiu $a0, $a0, 1 +.L7F0BEC98: +/* 0F37C8 7F0BEC98 2401004B */ li $at, 75 +/* 0F37CC 7F0BEC9C 1481FFEF */ bne $a0, $at, .L7F0BEC5C +/* 0F37D0 7F0BECA0 24630001 */ addiu $v1, $v1, 1 +.L7F0BECA4: +/* 0F37D4 7F0BECA4 0FC26919 */ jal get_num_players +/* 0F37D8 7F0BECA8 00000000 */ nop +/* 0F37DC 7F0BECAC 28410002 */ slti $at, $v0, 2 +/* 0F37E0 7F0BECB0 1420014B */ bnez $at, .L7F0BF1E0 +/* 0F37E4 7F0BECB4 3C188005 */ lui $t8, %hi(current_stage_to_load) +/* 0F37E8 7F0BECB8 8F188364 */ lw $t8, %lo(current_stage_to_load)($t8) +/* 0F37EC 7F0BECBC 2401005A */ li $at, 90 +/* 0F37F0 7F0BECC0 13010147 */ beq $t8, $at, .L7F0BF1E0 +/* 0F37F4 7F0BECC4 00000000 */ nop +/* 0F37F8 7F0BECC8 0FC3030C */ jal get_mission_state +/* 0F37FC 7F0BECCC 00000000 */ nop +/* 0F3800 7F0BECD0 24010006 */ li $at, 6 +/* 0F3804 7F0BECD4 14410029 */ bne $v0, $at, .L7F0BED7C +/* 0F3808 7F0BECD8 00000000 */ nop +/* 0F380C 7F0BECDC AFA00190 */ sw $zero, 0x190($sp) +/* 0F3810 7F0BECE0 AFA0018C */ sw $zero, 0x18c($sp) +/* 0F3814 7F0BECE4 0FC26919 */ jal get_num_players +/* 0F3818 7F0BECE8 AFA00188 */ sw $zero, 0x188($sp) +/* 0F381C 7F0BECEC 8FA30190 */ lw $v1, 0x190($sp) +/* 0F3820 7F0BECF0 8FA5018C */ lw $a1, 0x18c($sp) +/* 0F3824 7F0BECF4 1840001B */ blez $v0, .L7F0BED64 +/* 0F3828 7F0BECF8 8FA60188 */ lw $a2, 0x188($sp) +/* 0F382C 7F0BECFC 3C0E8008 */ lui $t6, %hi(ptr_BONDdata_p1) +/* 0F3830 7F0BED00 25CE9EE0 */ addiu $t6, %lo(ptr_BONDdata_p1) # addiu $t6, $t6, -0x6120 +/* 0F3834 7F0BED04 0003C880 */ sll $t9, $v1, 2 +/* 0F3838 7F0BED08 032E2021 */ addu $a0, $t9, $t6 +.L7F0BED0C: +/* 0F383C 7F0BED0C 8C820000 */ lw $v0, ($a0) +/* 0F3840 7F0BED10 24630001 */ addiu $v1, $v1, 1 +/* 0F3844 7F0BED14 24840004 */ addiu $a0, $a0, 4 +/* 0F3848 7F0BED18 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0F384C 7F0BED1C 51E00007 */ beql $t7, $zero, .L7F0BED3C +/* 0F3850 7F0BED20 AFA30190 */ sw $v1, 0x190($sp) +/* 0F3854 7F0BED24 8C580424 */ lw $t8, 0x424($v0) +/* 0F3858 7F0BED28 24A50001 */ addiu $a1, $a1, 1 +/* 0F385C 7F0BED2C 53000003 */ beql $t8, $zero, .L7F0BED3C +/* 0F3860 7F0BED30 AFA30190 */ sw $v1, 0x190($sp) +/* 0F3864 7F0BED34 24C60001 */ addiu $a2, $a2, 1 +/* 0F3868 7F0BED38 AFA30190 */ sw $v1, 0x190($sp) +.L7F0BED3C: +/* 0F386C 7F0BED3C AFA4001C */ sw $a0, 0x1c($sp) +/* 0F3870 7F0BED40 AFA5018C */ sw $a1, 0x18c($sp) +/* 0F3874 7F0BED44 0FC26919 */ jal get_num_players +/* 0F3878 7F0BED48 AFA60188 */ sw $a2, 0x188($sp) +/* 0F387C 7F0BED4C 8FA30190 */ lw $v1, 0x190($sp) +/* 0F3880 7F0BED50 8FA4001C */ lw $a0, 0x1c($sp) +/* 0F3884 7F0BED54 8FA5018C */ lw $a1, 0x18c($sp) +/* 0F3888 7F0BED58 0062082A */ slt $at, $v1, $v0 +/* 0F388C 7F0BED5C 1420FFEB */ bnez $at, .L7F0BED0C +/* 0F3890 7F0BED60 8FA60188 */ lw $a2, 0x188($sp) +.L7F0BED64: +/* 0F3894 7F0BED64 18A00005 */ blez $a1, .L7F0BED7C +/* 0F3898 7F0BED68 00000000 */ nop +/* 0F389C 7F0BED6C 14A60003 */ bne $a1, $a2, .L7F0BED7C +/* 0F38A0 7F0BED70 00000000 */ nop +/* 0F38A4 7F0BED74 0FC3030F */ jal set_missionstate +/* 0F38A8 7F0BED78 24040001 */ li $a0, 1 +.L7F0BED7C: +/* 0F38AC 7F0BED7C 3C038005 */ lui $v1, %hi(mp_time) +/* 0F38B0 7F0BED80 8C638398 */ lw $v1, %lo(mp_time)($v1) +/* 0F38B4 7F0BED84 3C028005 */ lui $v0, %hi(D_80048394) +/* 0F38B8 7F0BED88 3C198005 */ lui $t9, %hi(clock_timer) +/* 0F38BC 7F0BED8C 18600049 */ blez $v1, .L7F0BEEB4 +/* 0F38C0 7F0BED90 00000000 */ nop +/* 0F38C4 7F0BED94 8C428394 */ lw $v0, %lo(D_80048394)($v0) +/* 0F38C8 7F0BED98 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 0F38CC 7F0BED9C 2464F1F0 */ addiu $a0, $v1, -0xe10 +/* 0F38D0 7F0BEDA0 0044082A */ slt $at, $v0, $a0 +/* 0F38D4 7F0BEDA4 03227021 */ addu $t6, $t9, $v0 +/* 0F38D8 7F0BEDA8 AFAE0180 */ sw $t6, 0x180($sp) +/* 0F38DC 7F0BEDAC 10200015 */ beqz $at, .L7F0BEE04 +/* 0F38E0 7F0BEDB0 AFA20184 */ sw $v0, 0x184($sp) +/* 0F38E4 7F0BEDB4 01C4082A */ slt $at, $t6, $a0 +/* 0F38E8 7F0BEDB8 14200012 */ bnez $at, .L7F0BEE04 +/* 0F38EC 7F0BEDBC 00000000 */ nop +/* 0F38F0 7F0BEDC0 0FC26919 */ jal get_num_players +/* 0F38F4 7F0BEDC4 AFA0017C */ sw $zero, 0x17c($sp) +/* 0F38F8 7F0BEDC8 1840000E */ blez $v0, .L7F0BEE04 +/* 0F38FC 7F0BEDCC 00000000 */ nop +.L7F0BEDD0: +/* 0F3900 7F0BEDD0 0FC26C43 */ jal set_cur_player +/* 0F3904 7F0BEDD4 8FA4017C */ lw $a0, 0x17c($sp) +/* 0F3908 7F0BEDD8 3C048006 */ lui $a0, %hi(aOneMinuteLeft) +/* 0F390C 7F0BEDDC 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0F3910 7F0BEDE0 2484B704 */ addiu $a0, %lo(aOneMinuteLeft) # addiu $a0, $a0, -0x48fc +/* 0F3914 7F0BEDE4 8FAF017C */ lw $t7, 0x17c($sp) +/* 0F3918 7F0BEDE8 25F80001 */ addiu $t8, $t7, 1 +/* 0F391C 7F0BEDEC 0FC26919 */ jal get_num_players +/* 0F3920 7F0BEDF0 AFB8017C */ sw $t8, 0x17c($sp) +/* 0F3924 7F0BEDF4 8FB9017C */ lw $t9, 0x17c($sp) +/* 0F3928 7F0BEDF8 0322082A */ slt $at, $t9, $v0 +/* 0F392C 7F0BEDFC 1420FFF4 */ bnez $at, .L7F0BEDD0 +/* 0F3930 7F0BEE00 00000000 */ nop +.L7F0BEE04: +/* 0F3934 7F0BEE04 3C0F8005 */ lui $t7, %hi(mp_time) +/* 0F3938 7F0BEE08 8DEF8398 */ lw $t7, %lo(mp_time)($t7) +/* 0F393C 7F0BEE0C 8FAE0180 */ lw $t6, 0x180($sp) +/* 0F3940 7F0BEE10 3C198005 */ lui $t9, %hi(D_800483A0) +/* 0F3944 7F0BEE14 25F8FDA8 */ addiu $t8, $t7, -0x258 +/* 0F3948 7F0BEE18 01D8082A */ slt $at, $t6, $t8 +/* 0F394C 7F0BEE1C 1420000D */ bnez $at, .L7F0BEE54 +/* 0F3950 7F0BEE20 00000000 */ nop +/* 0F3954 7F0BEE24 8F3983A0 */ lw $t9, %lo(D_800483A0)($t9) +/* 0F3958 7F0BEE28 1720000A */ bnez $t9, .L7F0BEE54 +/* 0F395C 7F0BEE2C 00000000 */ nop +/* 0F3960 7F0BEE30 0FC2FF01 */ jal get_controls_locked_flag +/* 0F3964 7F0BEE34 00000000 */ nop +/* 0F3968 7F0BEE38 14400006 */ bnez $v0, .L7F0BEE54 +/* 0F396C 7F0BEE3C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0F3970 7F0BEE40 3C068005 */ lui $a2, %hi(D_800483A0) +/* 0F3974 7F0BEE44 24C683A0 */ addiu $a2, %lo(D_800483A0) # addiu $a2, $a2, -0x7c60 +/* 0F3978 7F0BEE48 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0F397C 7F0BEE4C 0C002382 */ jal play_sfx_a1 +/* 0F3980 7F0BEE50 240500A1 */ li $a1, 161 +.L7F0BEE54: +/* 0F3984 7F0BEE54 0FC2FF01 */ jal get_controls_locked_flag +/* 0F3988 7F0BEE58 00000000 */ nop +/* 0F398C 7F0BEE5C 1040000A */ beqz $v0, .L7F0BEE88 +/* 0F3990 7F0BEE60 3C048005 */ lui $a0, %hi(D_800483A0) +/* 0F3994 7F0BEE64 8C8483A0 */ lw $a0, %lo(D_800483A0)($a0) +/* 0F3998 7F0BEE68 10800007 */ beqz $a0, .L7F0BEE88 +/* 0F399C 7F0BEE6C 00000000 */ nop +/* 0F39A0 7F0BEE70 0C00237C */ jal sfxGetArg0Unk3F +/* 0F39A4 7F0BEE74 00000000 */ nop +/* 0F39A8 7F0BEE78 10400003 */ beqz $v0, .L7F0BEE88 +/* 0F39AC 7F0BEE7C 3C048005 */ lui $a0, %hi(D_800483A0) +/* 0F39B0 7F0BEE80 0C002408 */ jal sfxDeactivate +/* 0F39B4 7F0BEE84 8C8483A0 */ lw $a0, %lo(D_800483A0)($a0) +.L7F0BEE88: +/* 0F39B8 7F0BEE88 3C038005 */ lui $v1, %hi(mp_time) +/* 0F39BC 7F0BEE8C 8C638398 */ lw $v1, %lo(mp_time)($v1) +/* 0F39C0 7F0BEE90 8FAF0184 */ lw $t7, 0x184($sp) +/* 0F39C4 7F0BEE94 8FAE0180 */ lw $t6, 0x180($sp) +/* 0F39C8 7F0BEE98 01E3082A */ slt $at, $t7, $v1 +/* 0F39CC 7F0BEE9C 10200005 */ beqz $at, .L7F0BEEB4 +/* 0F39D0 7F0BEEA0 01C3082A */ slt $at, $t6, $v1 +/* 0F39D4 7F0BEEA4 14200003 */ bnez $at, .L7F0BEEB4 +/* 0F39D8 7F0BEEA8 00000000 */ nop +/* 0F39DC 7F0BEEAC 0FC3094C */ jal sub_GAME_7F0C2530 +/* 0F39E0 7F0BEEB0 00002025 */ move $a0, $zero +.L7F0BEEB4: +/* 0F39E4 7F0BEEB4 3C188005 */ lui $t8, %hi(mp_point) +/* 0F39E8 7F0BEEB8 8F18839C */ lw $t8, %lo(mp_point)($t8) +/* 0F39EC 7F0BEEBC 3C198005 */ lui $t9, %hi(clock_timer) +/* 0F39F0 7F0BEEC0 1B00003D */ blez $t8, .L7F0BEFB8 +/* 0F39F4 7F0BEEC4 00000000 */ nop +/* 0F39F8 7F0BEEC8 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 0F39FC 7F0BEECC 1320003A */ beqz $t9, .L7F0BEFB8 +/* 0F3A00 7F0BEED0 00000000 */ nop +/* 0F3A04 7F0BEED4 0FC26919 */ jal get_num_players +/* 0F3A08 7F0BEED8 00000000 */ nop +/* 0F3A0C 7F0BEEDC 00403825 */ move $a3, $v0 +/* 0F3A10 7F0BEEE0 00002825 */ move $a1, $zero +/* 0F3A14 7F0BEEE4 00003025 */ move $a2, $zero +/* 0F3A18 7F0BEEE8 18400029 */ blez $v0, .L7F0BEF90 +/* 0F3A1C 7F0BEEEC 00002025 */ move $a0, $zero +/* 0F3A20 7F0BEEF0 3C038008 */ lui $v1, %hi(ptr_BONDdata_p1) +/* 0F3A24 7F0BEEF4 44800000 */ mtc1 $zero, $f0 +/* 0F3A28 7F0BEEF8 24639EE0 */ addiu $v1, %lo(ptr_BONDdata_p1) # addiu $v1, $v1, -0x6120 +.L7F0BEEFC: +/* 0F3A2C 7F0BEEFC 8C620000 */ lw $v0, ($v1) +/* 0F3A30 7F0BEF00 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0F3A34 7F0BEF04 51E0000E */ beql $t7, $zero, .L7F0BEF40 +/* 0F3A38 7F0BEF08 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F3A3C 7F0BEF0C 8C4E0424 */ lw $t6, 0x424($v0) +/* 0F3A40 7F0BEF10 51C0000A */ beql $t6, $zero, .L7F0BEF3C +/* 0F3A44 7F0BEF14 24A50001 */ addiu $a1, $a1, 1 +/* 0F3A48 7F0BEF18 8C580428 */ lw $t8, 0x428($v0) +/* 0F3A4C 7F0BEF1C 53000007 */ beql $t8, $zero, .L7F0BEF3C +/* 0F3A50 7F0BEF20 24A50001 */ addiu $a1, $a1, 1 +/* 0F3A54 7F0BEF24 C44803E4 */ lwc1 $f8, 0x3e4($v0) +/* 0F3A58 7F0BEF28 4608003E */ c.le.s $f0, $f8 +/* 0F3A5C 7F0BEF2C 00000000 */ nop +/* 0F3A60 7F0BEF30 45020003 */ bc1fl .L7F0BEF40 +/* 0F3A64 7F0BEF34 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F3A68 7F0BEF38 24A50001 */ addiu $a1, $a1, 1 +.L7F0BEF3C: +/* 0F3A6C 7F0BEF3C AFA3001C */ sw $v1, 0x1c($sp) +.L7F0BEF40: +/* 0F3A70 7F0BEF40 AFA40174 */ sw $a0, 0x174($sp) +/* 0F3A74 7F0BEF44 AFA50170 */ sw $a1, 0x170($sp) +/* 0F3A78 7F0BEF48 AFA6016C */ sw $a2, 0x16c($sp) +/* 0F3A7C 7F0BEF4C 0FC30E36 */ jal get_points_for_mp_player +/* 0F3A80 7F0BEF50 AFA70178 */ sw $a3, 0x178($sp) +/* 0F3A84 7F0BEF54 3C198005 */ lui $t9, %hi(mp_point) +/* 0F3A88 7F0BEF58 8F39839C */ lw $t9, %lo(mp_point)($t9) +/* 0F3A8C 7F0BEF5C 44800000 */ mtc1 $zero, $f0 +/* 0F3A90 7F0BEF60 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F3A94 7F0BEF64 0059082A */ slt $at, $v0, $t9 +/* 0F3A98 7F0BEF68 8FA40174 */ lw $a0, 0x174($sp) +/* 0F3A9C 7F0BEF6C 8FA50170 */ lw $a1, 0x170($sp) +/* 0F3AA0 7F0BEF70 8FA6016C */ lw $a2, 0x16c($sp) +/* 0F3AA4 7F0BEF74 14200002 */ bnez $at, .L7F0BEF80 +/* 0F3AA8 7F0BEF78 8FA70178 */ lw $a3, 0x178($sp) +/* 0F3AAC 7F0BEF7C 24C60001 */ addiu $a2, $a2, 1 +.L7F0BEF80: +/* 0F3AB0 7F0BEF80 24840001 */ addiu $a0, $a0, 1 +/* 0F3AB4 7F0BEF84 0087082A */ slt $at, $a0, $a3 +/* 0F3AB8 7F0BEF88 1420FFDC */ bnez $at, .L7F0BEEFC +/* 0F3ABC 7F0BEF8C 24630004 */ addiu $v1, $v1, 4 +.L7F0BEF90: +/* 0F3AC0 7F0BEF90 18C00009 */ blez $a2, .L7F0BEFB8 +/* 0F3AC4 7F0BEF94 00000000 */ nop +/* 0F3AC8 7F0BEF98 14A00005 */ bnez $a1, .L7F0BEFB0 +/* 0F3ACC 7F0BEF9C 00000000 */ nop +/* 0F3AD0 7F0BEFA0 0FC3094C */ jal sub_GAME_7F0C2530 +/* 0F3AD4 7F0BEFA4 00002025 */ move $a0, $zero +/* 0F3AD8 7F0BEFA8 10000003 */ b .L7F0BEFB8 +/* 0F3ADC 7F0BEFAC 00000000 */ nop +.L7F0BEFB0: +/* 0F3AE0 7F0BEFB0 0FC30948 */ jal set_stopplay_flag +/* 0F3AE4 7F0BEFB4 00000000 */ nop +.L7F0BEFB8: +/* 0F3AE8 7F0BEFB8 0FC051D6 */ jal get_scenario +/* 0F3AEC 7F0BEFBC 00000000 */ nop +/* 0F3AF0 7F0BEFC0 24010001 */ li $at, 1 +/* 0F3AF4 7F0BEFC4 14410086 */ bne $v0, $at, .L7F0BF1E0 +/* 0F3AF8 7F0BEFC8 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 0F3AFC 7F0BEFCC 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 0F3B00 7F0BEFD0 11E00083 */ beqz $t7, .L7F0BF1E0 +/* 0F3B04 7F0BEFD4 00000000 */ nop +/* 0F3B08 7F0BEFD8 0FC26919 */ jal get_num_players +/* 0F3B0C 7F0BEFDC 00000000 */ nop +/* 0F3B10 7F0BEFE0 44800000 */ mtc1 $zero, $f0 +/* 0F3B14 7F0BEFE4 00405025 */ move $t2, $v0 +/* 0F3B18 7F0BEFE8 00006825 */ move $t5, $zero +/* 0F3B1C 7F0BEFEC 0000F825 */ move $ra, $zero +/* 0F3B20 7F0BEFF0 1840006E */ blez $v0, .L7F0BF1AC +/* 0F3B24 7F0BEFF4 00006025 */ move $t4, $zero +/* 0F3B28 7F0BEFF8 00002825 */ move $a1, $zero +.L7F0BEFFC: +/* 0F3B2C 7F0BEFFC 00003025 */ move $a2, $zero +/* 0F3B30 7F0BF000 18400048 */ blez $v0, .L7F0BF124 +/* 0F3B34 7F0BF004 00003825 */ move $a3, $zero +/* 0F3B38 7F0BF008 30490003 */ andi $t1, $v0, 3 +/* 0F3B3C 7F0BF00C 11200019 */ beqz $t1, .L7F0BF074 +/* 0F3B40 7F0BF010 000C5880 */ sll $t3, $t4, 2 +/* 0F3B44 7F0BF014 3C188008 */ lui $t8, %hi(ptr_BONDdata_p1) +/* 0F3B48 7F0BF018 27189EE0 */ addiu $t8, %lo(ptr_BONDdata_p1) # addiu $t8, $t8, -0x6120 +/* 0F3B4C 7F0BF01C 00007080 */ sll $t6, $zero, 2 +/* 0F3B50 7F0BF020 0000C8C0 */ sll $t9, $zero, 3 +/* 0F3B54 7F0BF024 0320C823 */ subu $t9, $t9, $zero +/* 0F3B58 7F0BF028 01D81821 */ addu $v1, $t6, $t8 +/* 0F3B5C 7F0BF02C 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0F3B60 7F0BF030 0019C900 */ sll $t9, $t9, 4 +/* 0F3B64 7F0BF034 032B7821 */ addu $t7, $t9, $t3 +/* 0F3B68 7F0BF038 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0F3B6C 7F0BF03C 01EE2021 */ addu $a0, $t7, $t6 +/* 0F3B70 7F0BF040 01204025 */ move $t0, $t1 +.L7F0BF044: +/* 0F3B74 7F0BF044 8C780000 */ lw $t8, ($v1) +/* 0F3B78 7F0BF048 24E70001 */ addiu $a3, $a3, 1 +/* 0F3B7C 7F0BF04C 24630004 */ addiu $v1, $v1, 4 +/* 0F3B80 7F0BF050 8F1900D8 */ lw $t9, 0xd8($t8) +/* 0F3B84 7F0BF054 57200003 */ bnezl $t9, .L7F0BF064 +/* 0F3B88 7F0BF058 8C8F0024 */ lw $t7, 0x24($a0) +/* 0F3B8C 7F0BF05C 24C60001 */ addiu $a2, $a2, 1 +/* 0F3B90 7F0BF060 8C8F0024 */ lw $t7, 0x24($a0) +.L7F0BF064: +/* 0F3B94 7F0BF064 24840070 */ addiu $a0, $a0, 0x70 +/* 0F3B98 7F0BF068 1507FFF6 */ bne $t0, $a3, .L7F0BF044 +/* 0F3B9C 7F0BF06C 00AF2821 */ addu $a1, $a1, $t7 +/* 0F3BA0 7F0BF070 10E2002C */ beq $a3, $v0, .L7F0BF124 +.L7F0BF074: +/* 0F3BA4 7F0BF074 3C188008 */ lui $t8, %hi(ptr_BONDdata_p1) +/* 0F3BA8 7F0BF078 0007C8C0 */ sll $t9, $a3, 3 +/* 0F3BAC 7F0BF07C 0327C823 */ subu $t9, $t9, $a3 +/* 0F3BB0 7F0BF080 27189EE0 */ addiu $t8, %lo(ptr_BONDdata_p1) # addiu $t8, $t8, -0x6120 +/* 0F3BB4 7F0BF084 00077080 */ sll $t6, $a3, 2 +/* 0F3BB8 7F0BF088 01D81821 */ addu $v1, $t6, $t8 +/* 0F3BBC 7F0BF08C 0019C900 */ sll $t9, $t9, 4 +/* 0F3BC0 7F0BF090 032B7821 */ addu $t7, $t9, $t3 +/* 0F3BC4 7F0BF094 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0F3BC8 7F0BF098 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0F3BCC 7F0BF09C 000AC880 */ sll $t9, $t2, 2 +/* 0F3BD0 7F0BF0A0 03384021 */ addu $t0, $t9, $t8 +/* 0F3BD4 7F0BF0A4 01EE2021 */ addu $a0, $t7, $t6 +.L7F0BF0A8: +/* 0F3BD8 7F0BF0A8 8C6F0000 */ lw $t7, ($v1) +/* 0F3BDC 7F0BF0AC 8DEE00D8 */ lw $t6, 0xd8($t7) +/* 0F3BE0 7F0BF0B0 55C00003 */ bnezl $t6, .L7F0BF0C0 +/* 0F3BE4 7F0BF0B4 8C780004 */ lw $t8, 4($v1) +/* 0F3BE8 7F0BF0B8 24C60001 */ addiu $a2, $a2, 1 +/* 0F3BEC 7F0BF0BC 8C780004 */ lw $t8, 4($v1) +.L7F0BF0C0: +/* 0F3BF0 7F0BF0C0 8C990024 */ lw $t9, 0x24($a0) +/* 0F3BF4 7F0BF0C4 8F0F00D8 */ lw $t7, 0xd8($t8) +/* 0F3BF8 7F0BF0C8 00B92821 */ addu $a1, $a1, $t9 +/* 0F3BFC 7F0BF0CC 55E00003 */ bnezl $t7, .L7F0BF0DC +/* 0F3C00 7F0BF0D0 8C790008 */ lw $t9, 8($v1) +/* 0F3C04 7F0BF0D4 24C60001 */ addiu $a2, $a2, 1 +/* 0F3C08 7F0BF0D8 8C790008 */ lw $t9, 8($v1) +.L7F0BF0DC: +/* 0F3C0C 7F0BF0DC 8C8E0094 */ lw $t6, 0x94($a0) +/* 0F3C10 7F0BF0E0 8F3800D8 */ lw $t8, 0xd8($t9) +/* 0F3C14 7F0BF0E4 00AE2821 */ addu $a1, $a1, $t6 +/* 0F3C18 7F0BF0E8 57000003 */ bnezl $t8, .L7F0BF0F8 +/* 0F3C1C 7F0BF0EC 8C6E000C */ lw $t6, 0xc($v1) +/* 0F3C20 7F0BF0F0 24C60001 */ addiu $a2, $a2, 1 +/* 0F3C24 7F0BF0F4 8C6E000C */ lw $t6, 0xc($v1) +.L7F0BF0F8: +/* 0F3C28 7F0BF0F8 8C8F0104 */ lw $t7, 0x104($a0) +/* 0F3C2C 7F0BF0FC 24630010 */ addiu $v1, $v1, 0x10 +/* 0F3C30 7F0BF100 8DD900D8 */ lw $t9, 0xd8($t6) +/* 0F3C34 7F0BF104 00AF2821 */ addu $a1, $a1, $t7 +/* 0F3C38 7F0BF108 57200003 */ bnezl $t9, .L7F0BF118 +/* 0F3C3C 7F0BF10C 8C980174 */ lw $t8, 0x174($a0) +/* 0F3C40 7F0BF110 24C60001 */ addiu $a2, $a2, 1 +/* 0F3C44 7F0BF114 8C980174 */ lw $t8, 0x174($a0) +.L7F0BF118: +/* 0F3C48 7F0BF118 248401C0 */ addiu $a0, $a0, 0x1c0 +/* 0F3C4C 7F0BF11C 1468FFE2 */ bne $v1, $t0, .L7F0BF0A8 +/* 0F3C50 7F0BF120 00B82821 */ addu $a1, $a1, $t8 +.L7F0BF124: +/* 0F3C54 7F0BF124 28A10002 */ slti $at, $a1, 2 +/* 0F3C58 7F0BF128 1420001C */ bnez $at, .L7F0BF19C +/* 0F3C5C 7F0BF12C 000C78C0 */ sll $t7, $t4, 3 +/* 0F3C60 7F0BF130 01EC7823 */ subu $t7, $t7, $t4 +/* 0F3C64 7F0BF134 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0F3C68 7F0BF138 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0F3C6C 7F0BF13C 000F7900 */ sll $t7, $t7, 4 +/* 0F3C70 7F0BF140 01EE1821 */ addu $v1, $t7, $t6 +/* 0F3C74 7F0BF144 906F0068 */ lbu $t7, 0x68($v1) +/* 0F3C78 7F0BF148 3C188008 */ lui $t8, %hi(ptr_BONDdata_p1) +/* 0F3C7C 7F0BF14C 27189EE0 */ addiu $t8, %lo(ptr_BONDdata_p1) # addiu $t8, $t8, -0x6120 +/* 0F3C80 7F0BF150 000CC880 */ sll $t9, $t4, 2 +/* 0F3C84 7F0BF154 15E00003 */ bnez $t7, .L7F0BF164 +/* 0F3C88 7F0BF158 03382021 */ addu $a0, $t9, $t8 +/* 0F3C8C 7F0BF15C 24CE0001 */ addiu $t6, $a2, 1 +/* 0F3C90 7F0BF160 A06E0068 */ sb $t6, 0x68($v1) +.L7F0BF164: +/* 0F3C94 7F0BF164 8C830000 */ lw $v1, ($a0) +/* 0F3C98 7F0BF168 25AD0001 */ addiu $t5, $t5, 1 +/* 0F3C9C 7F0BF16C 8C790424 */ lw $t9, 0x424($v1) +/* 0F3CA0 7F0BF170 5320000B */ beql $t9, $zero, .L7F0BF1A0 +/* 0F3CA4 7F0BF174 258C0001 */ addiu $t4, $t4, 1 +/* 0F3CA8 7F0BF178 8C780428 */ lw $t8, 0x428($v1) +/* 0F3CAC 7F0BF17C 53000008 */ beql $t8, $zero, .L7F0BF1A0 +/* 0F3CB0 7F0BF180 258C0001 */ addiu $t4, $t4, 1 +/* 0F3CB4 7F0BF184 C46A03E4 */ lwc1 $f10, 0x3e4($v1) +/* 0F3CB8 7F0BF188 4600503C */ c.lt.s $f10, $f0 +/* 0F3CBC 7F0BF18C 00000000 */ nop +/* 0F3CC0 7F0BF190 45020003 */ bc1fl .L7F0BF1A0 +/* 0F3CC4 7F0BF194 258C0001 */ addiu $t4, $t4, 1 +/* 0F3CC8 7F0BF198 27FF0001 */ addiu $ra, $ra, 1 +.L7F0BF19C: +/* 0F3CCC 7F0BF19C 258C0001 */ addiu $t4, $t4, 1 +.L7F0BF1A0: +/* 0F3CD0 7F0BF1A0 018A082A */ slt $at, $t4, $t2 +/* 0F3CD4 7F0BF1A4 5420FF95 */ bnezl $at, .L7F0BEFFC +/* 0F3CD8 7F0BF1A8 00002825 */ move $a1, $zero +.L7F0BF1AC: +/* 0F3CDC 7F0BF1AC 2443FFFF */ addiu $v1, $v0, -1 +/* 0F3CE0 7F0BF1B0 03E3082A */ slt $at, $ra, $v1 +/* 0F3CE4 7F0BF1B4 54200006 */ bnezl $at, .L7F0BF1D0 +/* 0F3CE8 7F0BF1B8 01A3082A */ slt $at, $t5, $v1 +/* 0F3CEC 7F0BF1BC 0FC3094C */ jal sub_GAME_7F0C2530 +/* 0F3CF0 7F0BF1C0 00002025 */ move $a0, $zero +/* 0F3CF4 7F0BF1C4 10000006 */ b .L7F0BF1E0 +/* 0F3CF8 7F0BF1C8 00000000 */ nop +/* 0F3CFC 7F0BF1CC 01A3082A */ slt $at, $t5, $v1 +.L7F0BF1D0: +/* 0F3D00 7F0BF1D0 14200003 */ bnez $at, .L7F0BF1E0 +/* 0F3D04 7F0BF1D4 00000000 */ nop +/* 0F3D08 7F0BF1D8 0FC30948 */ jal set_stopplay_flag +/* 0F3D0C 7F0BF1DC 00000000 */ nop +.L7F0BF1E0: +/* 0F3D10 7F0BF1E0 3C028005 */ lui $v0, %hi(clock_timer) +/* 0F3D14 7F0BF1E4 3C0F8005 */ lui $t7, %hi(D_80048394) +/* 0F3D18 7F0BF1E8 8DEF8394 */ lw $t7, %lo(D_80048394)($t7) +/* 0F3D1C 7F0BF1EC 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0F3D20 7F0BF1F0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0F3D24 7F0BF1F4 44810000 */ mtc1 $at, $f0 +/* 0F3D28 7F0BF1F8 01E27021 */ addu $t6, $t7, $v0 +/* 0F3D2C 7F0BF1FC 448E8000 */ mtc1 $t6, $f16 +/* 0F3D30 7F0BF200 3C018005 */ lui $at, %hi(D_80048394) +/* 0F3D34 7F0BF204 AC2E8394 */ sw $t6, %lo(D_80048394)($at) +/* 0F3D38 7F0BF208 468084A0 */ cvt.s.w $f18, $f16 +/* 0F3D3C 7F0BF20C 3C038005 */ lui $v1, %hi(D_800483A8) +/* 0F3D40 7F0BF210 3C018005 */ lui $at, %hi(cur_mp_sec) +/* 0F3D44 7F0BF214 246383A8 */ addiu $v1, %lo(D_800483A8) # addiu $v1, $v1, -0x7c58 +/* 0F3D48 7F0BF218 00002025 */ move $a0, $zero +/* 0F3D4C 7F0BF21C 3405FFFF */ li $a1, 65535 +/* 0F3D50 7F0BF220 46009103 */ div.s $f4, $f18, $f0 +/* 0F3D54 7F0BF224 E42483A4 */ swc1 $f4, %lo(cur_mp_sec)($at) +/* 0F3D58 7F0BF228 8C790000 */ lw $t9, ($v1) +/* 0F3D5C 7F0BF22C 3C018005 */ lui $at, %hi(cur_mp_min) +/* 0F3D60 7F0BF230 03227821 */ addu $t7, $t9, $v0 +/* 0F3D64 7F0BF234 448F3000 */ mtc1 $t7, $f6 +/* 0F3D68 7F0BF238 AC6F0000 */ sw $t7, ($v1) +/* 0F3D6C 7F0BF23C 46803220 */ cvt.s.w $f8, $f6 +/* 0F3D70 7F0BF240 46004283 */ div.s $f10, $f8, $f0 +/* 0F3D74 7F0BF244 0C0030EB */ jal get_controller_buttons_pressed +/* 0F3D78 7F0BF248 E42A83AC */ swc1 $f10, %lo(cur_mp_min)($at) +/* 0F3D7C 7F0BF24C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0F3D80 7F0BF250 44810000 */ mtc1 $at, $f0 +/* 0F3D84 7F0BF254 10400009 */ beqz $v0, .L7F0BF27C +/* 0F3D88 7F0BF258 3C038005 */ lui $v1, %hi(D_80048390) +/* 0F3D8C 7F0BF25C 3C038005 */ lui $v1, %hi(D_80048390) +/* 0F3D90 7F0BF260 3C018005 */ lui $at, %hi(D_80048388) +/* 0F3D94 7F0BF264 24638390 */ addiu $v1, %lo(D_80048390) # addiu $v1, $v1, -0x7c70 +/* 0F3D98 7F0BF268 AC208388 */ sw $zero, %lo(D_80048388)($at) +/* 0F3D9C 7F0BF26C AC600000 */ sw $zero, ($v1) +/* 0F3DA0 7F0BF270 3C028005 */ lui $v0, %hi(clock_timer) +/* 0F3DA4 7F0BF274 1000000C */ b .L7F0BF2A8 +/* 0F3DA8 7F0BF278 8C428374 */ lw $v0, %lo(clock_timer)($v0) +.L7F0BF27C: +/* 0F3DAC 7F0BF27C 24638390 */ addiu $v1, $v1, %lo(D_80048390) +/* 0F3DB0 7F0BF280 3C028005 */ lui $v0, %hi(clock_timer) +/* 0F3DB4 7F0BF284 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0F3DB8 7F0BF288 8C6E0000 */ lw $t6, ($v1) +/* 0F3DBC 7F0BF28C 240F0001 */ li $t7, 1 +/* 0F3DC0 7F0BF290 01C2C821 */ addu $t9, $t6, $v0 +/* 0F3DC4 7F0BF294 2B210708 */ slti $at, $t9, 0x708 +/* 0F3DC8 7F0BF298 14200003 */ bnez $at, .L7F0BF2A8 +/* 0F3DCC 7F0BF29C AC790000 */ sw $t9, ($v1) +/* 0F3DD0 7F0BF2A0 3C018005 */ lui $at, %hi(D_80048388) +/* 0F3DD4 7F0BF2A4 AC2F8388 */ sw $t7, %lo(D_80048388)($at) +.L7F0BF2A8: +/* 0F3DD8 7F0BF2A8 3C0E8005 */ lui $t6, %hi(D_80048388) +/* 0F3DDC 7F0BF2AC 8DCE8388 */ lw $t6, %lo(D_80048388)($t6) +/* 0F3DE0 7F0BF2B0 3C038005 */ lui $v1, %hi(D_8004838C) +/* 0F3DE4 7F0BF2B4 2463838C */ addiu $v1, %lo(D_8004838C) # addiu $v1, $v1, -0x7c74 +/* 0F3DE8 7F0BF2B8 11C00005 */ beqz $t6, .L7F0BF2D0 +/* 0F3DEC 7F0BF2BC 00000000 */ nop +/* 0F3DF0 7F0BF2C0 8C790000 */ lw $t9, ($v1) +/* 0F3DF4 7F0BF2C4 0322C021 */ addu $t8, $t9, $v0 +/* 0F3DF8 7F0BF2C8 10000015 */ b .L7F0BF320 +/* 0F3DFC 7F0BF2CC AC780000 */ sw $t8, ($v1) +.L7F0BF2D0: +/* 0F3E00 7F0BF2D0 3C038005 */ lui $v1, %hi(D_800483B0) +/* 0F3E04 7F0BF2D4 246383B0 */ addiu $v1, %lo(D_800483B0) # addiu $v1, $v1, -0x7c50 +/* 0F3E08 7F0BF2D8 8C6F0000 */ lw $t7, ($v1) +/* 0F3E0C 7F0BF2DC 3C048005 */ lui $a0, %hi(D_800483B8) +/* 0F3E10 7F0BF2E0 3C018005 */ lui $at, %hi(stage_time_sec) +/* 0F3E14 7F0BF2E4 01E2C821 */ addu $t9, $t7, $v0 +/* 0F3E18 7F0BF2E8 44998000 */ mtc1 $t9, $f16 +/* 0F3E1C 7F0BF2EC AC790000 */ sw $t9, ($v1) +/* 0F3E20 7F0BF2F0 248483B8 */ addiu $a0, %lo(D_800483B8) # addiu $a0, $a0, -0x7c48 +/* 0F3E24 7F0BF2F4 468084A0 */ cvt.s.w $f18, $f16 +/* 0F3E28 7F0BF2F8 46009103 */ div.s $f4, $f18, $f0 +/* 0F3E2C 7F0BF2FC E42483B4 */ swc1 $f4, %lo(stage_time_sec)($at) +/* 0F3E30 7F0BF300 8C980000 */ lw $t8, ($a0) +/* 0F3E34 7F0BF304 3C018005 */ lui $at, %hi(poweron_time_sec) +/* 0F3E38 7F0BF308 03027021 */ addu $t6, $t8, $v0 +/* 0F3E3C 7F0BF30C 448E3000 */ mtc1 $t6, $f6 +/* 0F3E40 7F0BF310 AC8E0000 */ sw $t6, ($a0) +/* 0F3E44 7F0BF314 46803220 */ cvt.s.w $f8, $f6 +/* 0F3E48 7F0BF318 46004283 */ div.s $f10, $f8, $f0 +/* 0F3E4C 7F0BF31C E42A83BC */ swc1 $f10, %lo(poweron_time_sec)($at) +.L7F0BF320: +/* 0F3E50 7F0BF320 0C00114D */ jal set_video2_settings_offset_24 +/* 0F3E54 7F0BF324 24040001 */ li $a0, 1 +/* 0F3E58 7F0BF328 3C198005 */ lui $t9, %hi(current_stage_to_load) +/* 0F3E5C 7F0BF32C 8F398364 */ lw $t9, %lo(current_stage_to_load)($t9) +/* 0F3E60 7F0BF330 2401005A */ li $at, 90 +/* 0F3E64 7F0BF334 17210009 */ bne $t9, $at, .L7F0BF35C +/* 0F3E68 7F0BF338 00000000 */ nop +/* 0F3E6C 7F0BF33C 0FC2464F */ jal cheat_buttons_mp_related +/* 0F3E70 7F0BF340 00000000 */ nop +/* 0F3E74 7F0BF344 0FC06987 */ jal menu_init +/* 0F3E78 7F0BF348 00000000 */ nop +/* 0F3E7C 7F0BF34C 0FC30650 */ jal something_with_LnameJ +/* 0F3E80 7F0BF350 00000000 */ nop +/* 0F3E84 7F0BF354 100000A9 */ b .L7F0BF5FC +/* 0F3E88 7F0BF358 00000000 */ nop +.L7F0BF35C: +/* 0F3E8C 7F0BF35C 0FC26EEF */ jal sub_GAME_7F09BBBC +/* 0F3E90 7F0BF360 00000000 */ nop +/* 0F3E94 7F0BF364 0FC2FA34 */ jal sub_GAME_7F0BE8D0 +/* 0F3E98 7F0BF368 00000000 */ nop +/* 0F3E9C 7F0BF36C 0FC2F1F5 */ jal sub_GAME_7F0BC7D4 +/* 0F3EA0 7F0BF370 00000000 */ nop +/* 0F3EA4 7F0BF374 0FC24B94 */ jal sub_GAME_7F092E50 +/* 0F3EA8 7F0BF378 00000000 */ nop +/* 0F3EAC 7F0BF37C 0FC2510E */ jal sub_GAME_7F094438 +/* 0F3EB0 7F0BF380 00000000 */ nop +/* 0F3EB4 7F0BF384 0FC291FF */ jal sub_GAME_7F0A47FC +/* 0F3EB8 7F0BF388 00000000 */ nop +/* 0F3EBC 7F0BF38C 0FC1A39B */ jal sub_GAME_7F068E6C +/* 0F3EC0 7F0BF390 00000000 */ nop +/* 0F3EC4 7F0BF394 0FC28A35 */ jal sub_GAME_7F0A28D4 +/* 0F3EC8 7F0BF398 00000000 */ nop +/* 0F3ECC 7F0BF39C 0FC27F4F */ jal sub_GAME_7F09FD3C +/* 0F3ED0 7F0BF3A0 00000000 */ nop +/* 0F3ED4 7F0BF3A4 0FC0F192 */ jal handle_mp_respawn_and_some_things +/* 0F3ED8 7F0BF3A8 00000000 */ nop +/* 0F3EDC 7F0BF3AC 0FC304F2 */ jal reset_all_music_slots +/* 0F3EE0 7F0BF3B0 00000000 */ nop +/* 0F3EE4 7F0BF3B4 0FC30650 */ jal something_with_LnameJ +/* 0F3EE8 7F0BF3B8 00000000 */ nop +/* 0F3EEC 7F0BF3BC 0FC243EE */ jal get_debug_joy2detailedit_flag +/* 0F3EF0 7F0BF3C0 00000000 */ nop +/* 0F3EF4 7F0BF3C4 1040004D */ beqz $v0, .L7F0BF4FC +/* 0F3EF8 7F0BF3C8 3C068005 */ lui $a2, %hi(D_800483C8) +/* 0F3EFC 7F0BF3CC 24C683C8 */ addiu $a2, %lo(D_800483C8) # addiu $a2, $a2, -0x7c38 +/* 0F3F00 7F0BF3D0 8CD80000 */ lw $t8, ($a2) +/* 0F3F04 7F0BF3D4 24043000 */ li $a0, 12288 +/* 0F3F08 7F0BF3D8 17000048 */ bnez $t8, .L7F0BF4FC +/* 0F3F0C 7F0BF3DC 00000000 */ nop +/* 0F3F10 7F0BF3E0 0C0025C8 */ jal mempAllocBytesInBank +/* 0F3F14 7F0BF3E4 24050004 */ li $a1, 4 +/* 0F3F18 7F0BF3E8 3C068005 */ lui $a2, %hi(D_800483C8) +/* 0F3F1C 7F0BF3EC 24C683C8 */ addiu $a2, %lo(D_800483C8) # addiu $a2, $a2, -0x7c38 +/* 0F3F20 7F0BF3F0 10400042 */ beqz $v0, .L7F0BF4FC +/* 0F3F24 7F0BF3F4 ACC20000 */ sw $v0, ($a2) +/* 0F3F28 7F0BF3F8 00001825 */ move $v1, $zero +/* 0F3F2C 7F0BF3FC 24052EE0 */ li $a1, 12000 +/* 0F3F30 7F0BF400 240400FF */ li $a0, 255 +.L7F0BF404: +/* 0F3F34 7F0BF404 8CCE0000 */ lw $t6, ($a2) +/* 0F3F38 7F0BF408 01C3C821 */ addu $t9, $t6, $v1 +/* 0F3F3C 7F0BF40C A3240000 */ sb $a0, ($t9) +/* 0F3F40 7F0BF410 8CD80000 */ lw $t8, ($a2) +/* 0F3F44 7F0BF414 03031021 */ addu $v0, $t8, $v1 +/* 0F3F48 7F0BF418 904F0001 */ lbu $t7, 1($v0) +/* 0F3F4C 7F0BF41C 31EEFF1F */ andi $t6, $t7, 0xff1f +/* 0F3F50 7F0BF420 35D90020 */ ori $t9, $t6, 0x20 +/* 0F3F54 7F0BF424 A0590001 */ sb $t9, 1($v0) +/* 0F3F58 7F0BF428 8CD80000 */ lw $t8, ($a2) +/* 0F3F5C 7F0BF42C 03031021 */ addu $v0, $t8, $v1 +/* 0F3F60 7F0BF430 904F0001 */ lbu $t7, 1($v0) +/* 0F3F64 7F0BF434 31EEFFE3 */ andi $t6, $t7, 0xffe3 +/* 0F3F68 7F0BF438 35D90004 */ ori $t9, $t6, 4 +/* 0F3F6C 7F0BF43C A0590001 */ sb $t9, 1($v0) +/* 0F3F70 7F0BF440 8CD80000 */ lw $t8, ($a2) +/* 0F3F74 7F0BF444 03037821 */ addu $t7, $t8, $v1 +/* 0F3F78 7F0BF448 A1E40004 */ sb $a0, 4($t7) +/* 0F3F7C 7F0BF44C 8CCE0000 */ lw $t6, ($a2) +/* 0F3F80 7F0BF450 01C31021 */ addu $v0, $t6, $v1 +/* 0F3F84 7F0BF454 90590005 */ lbu $t9, 5($v0) +/* 0F3F88 7F0BF458 3338FF1F */ andi $t8, $t9, 0xff1f +/* 0F3F8C 7F0BF45C 370F0020 */ ori $t7, $t8, 0x20 +/* 0F3F90 7F0BF460 A04F0005 */ sb $t7, 5($v0) +/* 0F3F94 7F0BF464 8CCE0000 */ lw $t6, ($a2) +/* 0F3F98 7F0BF468 01C31021 */ addu $v0, $t6, $v1 +/* 0F3F9C 7F0BF46C 90590005 */ lbu $t9, 5($v0) +/* 0F3FA0 7F0BF470 3338FFE3 */ andi $t8, $t9, 0xffe3 +/* 0F3FA4 7F0BF474 370F0004 */ ori $t7, $t8, 4 +/* 0F3FA8 7F0BF478 A04F0005 */ sb $t7, 5($v0) +/* 0F3FAC 7F0BF47C 8CCE0000 */ lw $t6, ($a2) +/* 0F3FB0 7F0BF480 01C3C821 */ addu $t9, $t6, $v1 +/* 0F3FB4 7F0BF484 A3240008 */ sb $a0, 8($t9) +/* 0F3FB8 7F0BF488 8CD80000 */ lw $t8, ($a2) +/* 0F3FBC 7F0BF48C 03031021 */ addu $v0, $t8, $v1 +/* 0F3FC0 7F0BF490 904F0009 */ lbu $t7, 9($v0) +/* 0F3FC4 7F0BF494 31EEFF1F */ andi $t6, $t7, 0xff1f +/* 0F3FC8 7F0BF498 35D90020 */ ori $t9, $t6, 0x20 +/* 0F3FCC 7F0BF49C A0590009 */ sb $t9, 9($v0) +/* 0F3FD0 7F0BF4A0 8CD80000 */ lw $t8, ($a2) +/* 0F3FD4 7F0BF4A4 03031021 */ addu $v0, $t8, $v1 +/* 0F3FD8 7F0BF4A8 904F0009 */ lbu $t7, 9($v0) +/* 0F3FDC 7F0BF4AC 31EEFFE3 */ andi $t6, $t7, 0xffe3 +/* 0F3FE0 7F0BF4B0 35D90004 */ ori $t9, $t6, 4 +/* 0F3FE4 7F0BF4B4 A0590009 */ sb $t9, 9($v0) +/* 0F3FE8 7F0BF4B8 8CD80000 */ lw $t8, ($a2) +/* 0F3FEC 7F0BF4BC 03037821 */ addu $t7, $t8, $v1 +/* 0F3FF0 7F0BF4C0 A1E4000C */ sb $a0, 0xc($t7) +/* 0F3FF4 7F0BF4C4 8CCE0000 */ lw $t6, ($a2) +/* 0F3FF8 7F0BF4C8 01C31021 */ addu $v0, $t6, $v1 +/* 0F3FFC 7F0BF4CC 9059000D */ lbu $t9, 0xd($v0) +/* 0F4000 7F0BF4D0 3338FF1F */ andi $t8, $t9, 0xff1f +/* 0F4004 7F0BF4D4 370F0020 */ ori $t7, $t8, 0x20 +/* 0F4008 7F0BF4D8 A04F000D */ sb $t7, 0xd($v0) +/* 0F400C 7F0BF4DC 8CCE0000 */ lw $t6, ($a2) +/* 0F4010 7F0BF4E0 01C31021 */ addu $v0, $t6, $v1 +/* 0F4014 7F0BF4E4 9059000D */ lbu $t9, 0xd($v0) +/* 0F4018 7F0BF4E8 24630010 */ addiu $v1, $v1, 0x10 +/* 0F401C 7F0BF4EC 3338FFE3 */ andi $t8, $t9, 0xffe3 +/* 0F4020 7F0BF4F0 370F0004 */ ori $t7, $t8, 4 +/* 0F4024 7F0BF4F4 1465FFC3 */ bne $v1, $a1, .L7F0BF404 +/* 0F4028 7F0BF4F8 A04F000D */ sb $t7, 0xd($v0) +.L7F0BF4FC: +/* 0F402C 7F0BF4FC 0FC2440F */ jal get_debug_portal_flag +/* 0F4030 7F0BF500 00000000 */ nop +/* 0F4034 7F0BF504 10400003 */ beqz $v0, .L7F0BF514 +/* 0F4038 7F0BF508 00000000 */ nop +/* 0F403C 7F0BF50C 0FC2F7C4 */ jal sub_GAME_7F0BDF10 +/* 0F4040 7F0BF510 00002025 */ move $a0, $zero +.L7F0BF514: +/* 0F4044 7F0BF514 0FC243C5 */ jal get_debug_limit_controller_input +/* 0F4048 7F0BF518 00000000 */ nop +/* 0F404C 7F0BF51C 24010004 */ li $at, 4 +/* 0F4050 7F0BF520 10410006 */ beq $v0, $at, .L7F0BF53C +/* 0F4054 7F0BF524 00002025 */ move $a0, $zero +/* 0F4058 7F0BF528 24010008 */ li $at, 8 +/* 0F405C 7F0BF52C 1041001A */ beq $v0, $at, .L7F0BF598 +/* 0F4060 7F0BF530 00002025 */ move $a0, $zero +/* 0F4064 7F0BF534 10000031 */ b .L7F0BF5FC +/* 0F4068 7F0BF538 00000000 */ nop +.L7F0BF53C: +/* 0F406C 7F0BF53C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F4070 7F0BF540 24050002 */ li $a1, 2 +/* 0F4074 7F0BF544 50400008 */ beql $v0, $zero, .L7F0BF568 +/* 0F4078 7F0BF548 00002025 */ move $a0, $zero +/* 0F407C 7F0BF54C 0FC2BD8C */ jal sub_GAME_7F0AF630 +/* 0F4080 7F0BF550 2404FFFF */ li $a0, -1 +/* 0F4084 7F0BF554 00002025 */ move $a0, $zero +/* 0F4088 7F0BF558 00002825 */ move $a1, $zero +/* 0F408C 7F0BF55C 0FC2CB4E */ jal sub_GAME_7F0B2D38 +/* 0F4090 7F0BF560 00003025 */ move $a2, $zero +/* 0F4094 7F0BF564 00002025 */ move $a0, $zero +.L7F0BF568: +/* 0F4098 7F0BF568 0C0030EB */ jal get_controller_buttons_pressed +/* 0F409C 7F0BF56C 24050001 */ li $a1, 1 +/* 0F40A0 7F0BF570 10400022 */ beqz $v0, .L7F0BF5FC +/* 0F40A4 7F0BF574 00000000 */ nop +/* 0F40A8 7F0BF578 0FC2BD8C */ jal sub_GAME_7F0AF630 +/* 0F40AC 7F0BF57C 24040001 */ li $a0, 1 +/* 0F40B0 7F0BF580 00002025 */ move $a0, $zero +/* 0F40B4 7F0BF584 00002825 */ move $a1, $zero +/* 0F40B8 7F0BF588 0FC2CB4E */ jal sub_GAME_7F0B2D38 +/* 0F40BC 7F0BF58C 00003025 */ move $a2, $zero +/* 0F40C0 7F0BF590 1000001A */ b .L7F0BF5FC +/* 0F40C4 7F0BF594 00000000 */ nop +.L7F0BF598: +/* 0F40C8 7F0BF598 0C0030EB */ jal get_controller_buttons_pressed +/* 0F40CC 7F0BF59C 24050002 */ li $a1, 2 +/* 0F40D0 7F0BF5A0 50400004 */ beql $v0, $zero, .L7F0BF5B4 +/* 0F40D4 7F0BF5A4 00002025 */ move $a0, $zero +/* 0F40D8 7F0BF5A8 0FC08B8C */ jal sub_GAME_7F022E30 +/* 0F40DC 7F0BF5AC 00000000 */ nop +/* 0F40E0 7F0BF5B0 00002025 */ move $a0, $zero +.L7F0BF5B4: +/* 0F40E4 7F0BF5B4 0C0030EB */ jal get_controller_buttons_pressed +/* 0F40E8 7F0BF5B8 24050001 */ li $a1, 1 +/* 0F40EC 7F0BF5BC 50400004 */ beql $v0, $zero, .L7F0BF5D0 +/* 0F40F0 7F0BF5C0 00002025 */ move $a0, $zero +/* 0F40F4 7F0BF5C4 0FC08BA4 */ jal sub_GAME_7F022E90 +/* 0F40F8 7F0BF5C8 00000000 */ nop +/* 0F40FC 7F0BF5CC 00002025 */ move $a0, $zero +.L7F0BF5D0: +/* 0F4100 7F0BF5D0 0C0030EB */ jal get_controller_buttons_pressed +/* 0F4104 7F0BF5D4 24050020 */ li $a1, 32 +/* 0F4108 7F0BF5D8 50400004 */ beql $v0, $zero, .L7F0BF5EC +/* 0F410C 7F0BF5DC 00002025 */ move $a0, $zero +/* 0F4110 7F0BF5E0 0FC08BB2 */ jal sub_GAME_7F022EC8 +/* 0F4114 7F0BF5E4 00000000 */ nop +/* 0F4118 7F0BF5E8 00002025 */ move $a0, $zero +.L7F0BF5EC: +/* 0F411C 7F0BF5EC 0C0030C3 */ jal get_controller_buttons_held +/* 0F4120 7F0BF5F0 24050010 */ li $a1, 16 +/* 0F4124 7F0BF5F4 0FC08BB8 */ jal sub_GAME_7F022EE0 +/* 0F4128 7F0BF5F8 0002202B */ sltu $a0, $zero, $v0 +.L7F0BF5FC: +/* 0F412C 7F0BF5FC 0FC243C5 */ jal get_debug_limit_controller_input +/* 0F4130 7F0BF600 00000000 */ nop +/* 0F4134 7F0BF604 2401000C */ li $at, 12 +/* 0F4138 7F0BF608 1041002E */ beq $v0, $at, .L7F0BF6C4 +/* 0F413C 7F0BF60C 00002025 */ move $a0, $zero +/* 0F4140 7F0BF610 2401000D */ li $at, 13 +/* 0F4144 7F0BF614 10410048 */ beq $v0, $at, .L7F0BF738 +/* 0F4148 7F0BF618 00002025 */ move $a0, $zero +/* 0F414C 7F0BF61C 24010038 */ li $at, 56 +/* 0F4150 7F0BF620 54410074 */ bnel $v0, $at, .L7F0BF7F4 +/* 0F4154 7F0BF624 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4158 7F0BF628 0C0010EA */ jal get_D_8002329C +/* 0F415C 7F0BF62C 00000000 */ nop +/* 0F4160 7F0BF630 0C0010E4 */ jal get_D_800232A0 +/* 0F4164 7F0BF634 AFA20030 */ sw $v0, 0x30($sp) +/* 0F4168 7F0BF638 AFA2002C */ sw $v0, 0x2c($sp) +/* 0F416C 7F0BF63C 00002025 */ move $a0, $zero +/* 0F4170 7F0BF640 0C0030C3 */ jal get_controller_buttons_held +/* 0F4174 7F0BF644 24050004 */ li $a1, 4 +/* 0F4178 7F0BF648 10400004 */ beqz $v0, .L7F0BF65C +/* 0F417C 7F0BF64C 00002025 */ move $a0, $zero +/* 0F4180 7F0BF650 8FAE002C */ lw $t6, 0x2c($sp) +/* 0F4184 7F0BF654 25D90001 */ addiu $t9, $t6, 1 +/* 0F4188 7F0BF658 AFB9002C */ sw $t9, 0x2c($sp) +.L7F0BF65C: +/* 0F418C 7F0BF65C 0C0030C3 */ jal get_controller_buttons_held +/* 0F4190 7F0BF660 24050008 */ li $a1, 8 +/* 0F4194 7F0BF664 10400004 */ beqz $v0, .L7F0BF678 +/* 0F4198 7F0BF668 00002025 */ move $a0, $zero +/* 0F419C 7F0BF66C 8FB8002C */ lw $t8, 0x2c($sp) +/* 0F41A0 7F0BF670 270FFFFF */ addiu $t7, $t8, -1 +/* 0F41A4 7F0BF674 AFAF002C */ sw $t7, 0x2c($sp) +.L7F0BF678: +/* 0F41A8 7F0BF678 0C0030C3 */ jal get_controller_buttons_held +/* 0F41AC 7F0BF67C 24050001 */ li $a1, 1 +/* 0F41B0 7F0BF680 10400004 */ beqz $v0, .L7F0BF694 +/* 0F41B4 7F0BF684 00002025 */ move $a0, $zero +/* 0F41B8 7F0BF688 8FAE0030 */ lw $t6, 0x30($sp) +/* 0F41BC 7F0BF68C 25D90001 */ addiu $t9, $t6, 1 +/* 0F41C0 7F0BF690 AFB90030 */ sw $t9, 0x30($sp) +.L7F0BF694: +/* 0F41C4 7F0BF694 0C0030C3 */ jal get_controller_buttons_held +/* 0F41C8 7F0BF698 24050002 */ li $a1, 2 +/* 0F41CC 7F0BF69C 10400003 */ beqz $v0, .L7F0BF6AC +/* 0F41D0 7F0BF6A0 8FB80030 */ lw $t8, 0x30($sp) +/* 0F41D4 7F0BF6A4 270FFFFF */ addiu $t7, $t8, -1 +/* 0F41D8 7F0BF6A8 AFAF0030 */ sw $t7, 0x30($sp) +.L7F0BF6AC: +/* 0F41DC 7F0BF6AC 0C0010E7 */ jal set_D_8002329C +/* 0F41E0 7F0BF6B0 8FA40030 */ lw $a0, 0x30($sp) +/* 0F41E4 7F0BF6B4 0C0010E1 */ jal set_D_800232A0 +/* 0F41E8 7F0BF6B8 8FA4002C */ lw $a0, 0x2c($sp) +/* 0F41EC 7F0BF6BC 1000004D */ b .L7F0BF7F4 +/* 0F41F0 7F0BF6C0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BF6C4: +/* 0F41F4 7F0BF6C4 0C0030EB */ jal get_controller_buttons_pressed +/* 0F41F8 7F0BF6C8 24050202 */ li $a1, 514 +/* 0F41FC 7F0BF6CC 50400004 */ beql $v0, $zero, .L7F0BF6E0 +/* 0F4200 7F0BF6D0 00002025 */ move $a0, $zero +/* 0F4204 7F0BF6D4 0FC2F68E */ jal music_append_play_endtheme +/* 0F4208 7F0BF6D8 00000000 */ nop +/* 0F420C 7F0BF6DC 00002025 */ move $a0, $zero +.L7F0BF6E0: +/* 0F4210 7F0BF6E0 0C0030EB */ jal get_controller_buttons_pressed +/* 0F4214 7F0BF6E4 24050101 */ li $a1, 257 +/* 0F4218 7F0BF6E8 50400004 */ beql $v0, $zero, .L7F0BF6FC +/* 0F421C 7F0BF6EC 00002025 */ move $a0, $zero +/* 0F4220 7F0BF6F0 0FC2F67B */ jal music_append_play_solo_death_short +/* 0F4224 7F0BF6F4 00000000 */ nop +/* 0F4228 7F0BF6F8 00002025 */ move $a0, $zero +.L7F0BF6FC: +/* 0F422C 7F0BF6FC 0C0030EB */ jal get_controller_buttons_pressed +/* 0F4230 7F0BF700 24050400 */ li $a1, 1024 +/* 0F4234 7F0BF704 50400004 */ beql $v0, $zero, .L7F0BF718 +/* 0F4238 7F0BF708 00002025 */ move $a0, $zero +/* 0F423C 7F0BF70C 0C001BF4 */ jal musicTrack1Stop +/* 0F4240 7F0BF710 00000000 */ nop +/* 0F4244 7F0BF714 00002025 */ move $a0, $zero +.L7F0BF718: +/* 0F4248 7F0BF718 0C0030EB */ jal get_controller_buttons_pressed +/* 0F424C 7F0BF71C 24054000 */ li $a1, 16384 +/* 0F4250 7F0BF720 50400034 */ beql $v0, $zero, .L7F0BF7F4 +/* 0F4254 7F0BF724 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4258 7F0BF728 0C001C28 */ jal musicTrack1Tempo +/* 0F425C 7F0BF72C 00000000 */ nop +/* 0F4260 7F0BF730 10000030 */ b .L7F0BF7F4 +/* 0F4264 7F0BF734 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BF738: +/* 0F4268 7F0BF738 0C0030EB */ jal get_controller_buttons_pressed +/* 0F426C 7F0BF73C 24050622 */ li $a1, 1570 +/* 0F4270 7F0BF740 1040000B */ beqz $v0, .L7F0BF770 +/* 0F4274 7F0BF744 3C058005 */ lui $a1, 0x8005 +/* 0F4278 7F0BF748 84A583E4 */ lh $a1, %lo(D_800483E4)($a1) +/* 0F427C 7F0BF74C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0F4280 7F0BF750 3C018005 */ lui $at, %hi(D_800483E4) +/* 0F4284 7F0BF754 24A5FFFF */ addiu $a1, $a1, -1 +/* 0F4288 7F0BF758 00057400 */ sll $t6, $a1, 0x10 +/* 0F428C 7F0BF75C 000E2C03 */ sra $a1, $t6, 0x10 +/* 0F4290 7F0BF760 A42583E4 */ sh $a1, %lo(D_800483E4)($at) +/* 0F4294 7F0BF764 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0F4298 7F0BF768 0C002382 */ jal play_sfx_a1 +/* 0F429C 7F0BF76C 00003025 */ move $a2, $zero +.L7F0BF770: +/* 0F42A0 7F0BF770 00002025 */ move $a0, $zero +/* 0F42A4 7F0BF774 0C0030EB */ jal get_controller_buttons_pressed +/* 0F42A8 7F0BF778 24050911 */ li $a1, 2321 +/* 0F42AC 7F0BF77C 1040000B */ beqz $v0, .L7F0BF7AC +/* 0F42B0 7F0BF780 3C058005 */ lui $a1, 0x8005 +/* 0F42B4 7F0BF784 84A583E4 */ lh $a1, %lo(D_800483E4)($a1) +/* 0F42B8 7F0BF788 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0F42BC 7F0BF78C 3C018005 */ lui $at, %hi(D_800483E4) +/* 0F42C0 7F0BF790 24A50001 */ addiu $a1, $a1, 1 +/* 0F42C4 7F0BF794 0005C400 */ sll $t8, $a1, 0x10 +/* 0F42C8 7F0BF798 00182C03 */ sra $a1, $t8, 0x10 +/* 0F42CC 7F0BF79C A42583E4 */ sh $a1, %lo(D_800483E4)($at) +/* 0F42D0 7F0BF7A0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0F42D4 7F0BF7A4 0C002382 */ jal play_sfx_a1 +/* 0F42D8 7F0BF7A8 00003025 */ move $a2, $zero +.L7F0BF7AC: +/* 0F42DC 7F0BF7AC 00002025 */ move $a0, $zero +/* 0F42E0 7F0BF7B0 0C0030EB */ jal get_controller_buttons_pressed +/* 0F42E4 7F0BF7B4 24050004 */ li $a1, 4 +/* 0F42E8 7F0BF7B8 50400004 */ beql $v0, $zero, .L7F0BF7CC +/* 0F42EC 7F0BF7BC 00002025 */ move $a0, $zero +/* 0F42F0 7F0BF7C0 0C002449 */ jal sfx_c_70009124 +/* 0F42F4 7F0BF7C4 00000000 */ nop +/* 0F42F8 7F0BF7C8 00002025 */ move $a0, $zero +.L7F0BF7CC: +/* 0F42FC 7F0BF7CC 0C0030EB */ jal get_controller_buttons_pressed +/* 0F4300 7F0BF7D0 24050008 */ li $a1, 8 +/* 0F4304 7F0BF7D4 10400006 */ beqz $v0, .L7F0BF7F0 +/* 0F4308 7F0BF7D8 3C058005 */ lui $a1, %hi(D_800483E4) +/* 0F430C 7F0BF7DC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0F4310 7F0BF7E0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0F4314 7F0BF7E4 84A583E4 */ lh $a1, %lo(D_800483E4)($a1) +/* 0F4318 7F0BF7E8 0C002382 */ jal play_sfx_a1 +/* 0F431C 7F0BF7EC 00003025 */ move $a2, $zero +.L7F0BF7F0: +/* 0F4320 7F0BF7F0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BF7F4: +/* 0F4324 7F0BF7F4 27BD0198 */ addiu $sp, $sp, 0x198 +/* 0F4328 7F0BF7F8 03E00008 */ jr $ra +/* 0F432C 7F0BF7FC 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel manage_mp_game +/* 0F431C 7F0BF7AC 27BDFE68 */ addiu $sp, $sp, -0x198 +/* 0F4320 7F0BF7B0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F4324 7F0BF7B4 0C000626 */ jal mp_tlb_related +/* 0F4328 7F0BF7B8 00000000 */ nop +/* 0F432C 7F0BF7BC 3C0E8005 */ lui $t6, %hi(controls_locked_flag) # $t6, 0x8005 +/* 0F4330 7F0BF7C0 8DCE83A0 */ lw $t6, %lo(controls_locked_flag)($t6) +/* 0F4334 7F0BF7C4 3C018005 */ lui $at, %hi(clock_timer) # $at, 0x8005 +/* 0F4338 7F0BF7C8 11C00003 */ beqz $t6, .Ljp7F0BF7D8 +/* 0F433C 7F0BF7CC 00000000 */ nop +/* 0F4340 7F0BF7D0 10000010 */ b .Ljp7F0BF814 +/* 0F4344 7F0BF7D4 AC2083A4 */ sw $zero, %lo(clock_timer)($at) +.Ljp7F0BF7D8: +/* 0F4348 7F0BF7D8 0FC31B59 */ jal checkGamePaused +/* 0F434C 7F0BF7DC 00000000 */ nop +/* 0F4350 7F0BF7E0 10400004 */ beqz $v0, .Ljp7F0BF7F4 +/* 0F4354 7F0BF7E4 3C0F8005 */ lui $t7, %hi(D_80048498) # $t7, 0x8005 +/* 0F4358 7F0BF7E8 3C018005 */ lui $at, %hi(clock_timer) # $at, 0x8005 +/* 0F435C 7F0BF7EC 10000009 */ b .Ljp7F0BF814 +/* 0F4360 7F0BF7F0 AC2083A4 */ sw $zero, %lo(clock_timer)($at) +.Ljp7F0BF7F4: +/* 0F4364 7F0BF7F4 8DEF84C8 */ lw $t7, %lo(D_80048498)($t7) +/* 0F4368 7F0BF7F8 3C028005 */ lui $v0, %hi(D_80048380) # $v0, 0x8005 +/* 0F436C 7F0BF7FC 3C018005 */ lui $at, %hi(clock_timer) # $at, 0x8005 +/* 0F4370 7F0BF800 244283B0 */ addiu $v0, %lo(D_80048380) # addiu $v0, $v0, -0x7c50 +/* 0F4374 7F0BF804 AC2F83A4 */ sw $t7, %lo(clock_timer)($at) +/* 0F4378 7F0BF808 8C580000 */ lw $t8, ($v0) +/* 0F437C 7F0BF80C 27190001 */ addiu $t9, $t8, 1 +/* 0F4380 7F0BF810 AC590000 */ sw $t9, ($v0) +.Ljp7F0BF814: +/* 0F4384 7F0BF814 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 +/* 0F4388 7F0BF818 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) +/* 0F438C 7F0BF81C 3C038005 */ lui $v1, %hi(jp_global_timer_delta) # $v1, 0x8005 +/* 0F4390 7F0BF820 246383A8 */ addiu $v1, %lo(jp_global_timer_delta) # addiu $v1, $v1, -0x7c58 +/* 0F4394 7F0BF824 44822000 */ mtc1 $v0, $f4 +/* 0F4398 7F0BF828 3C048005 */ lui $a0, %hi(global_timer) # $a0, 0x8005 +/* 0F439C 7F0BF82C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0F43A0 7F0BF830 468021A0 */ cvt.s.w $f6, $f4 +/* 0F43A4 7F0BF834 248483AC */ addiu $a0, %lo(global_timer) # addiu $a0, $a0, -0x7c54 +/* 0F43A8 7F0BF838 3C188005 */ lui $t8, %hi(current_stage_to_load) # $t8, 0x8005 +/* 0F43AC 7F0BF83C 3C198005 */ lui $t9, %hi(D_80048394) # $t9, 0x8005 +/* 0F43B0 7F0BF840 E4660000 */ swc1 $f6, ($v1) +/* 0F43B4 7F0BF844 C4680000 */ lwc1 $f8, ($v1) +/* 0F43B8 7F0BF848 E42883B4 */ swc1 $f8, %lo(global_timer_delta)($at) +/* 0F43BC 7F0BF84C 8C8E0000 */ lw $t6, ($a0) +/* 0F43C0 7F0BF850 2401005A */ li $at, 90 +/* 0F43C4 7F0BF854 01C27821 */ addu $t7, $t6, $v0 +/* 0F43C8 7F0BF858 AC8F0000 */ sw $t7, ($a0) +/* 0F43CC 7F0BF85C 8F188394 */ lw $t8, %lo(current_stage_to_load)($t8) +/* 0F43D0 7F0BF860 1301001D */ beq $t8, $at, .Ljp7F0BF8D8 +/* 0F43D4 7F0BF864 00000000 */ nop +/* 0F43D8 7F0BF868 8F3983C8 */ lw $t9, %lo(D_80048394)($t9) +/* 0F43DC 7F0BF86C 1720001A */ bnez $t9, .Ljp7F0BF8D8 +/* 0F43E0 7F0BF870 00000000 */ nop +/* 0F43E4 7F0BF874 18400018 */ blez $v0, .Ljp7F0BF8D8 +/* 0F43E8 7F0BF878 3C0E8003 */ lui $t6, %hi(append_cheat_sp) # $t6, 0x8003 +/* 0F43EC 7F0BF87C 8DCEA940 */ lw $t6, %lo(append_cheat_sp)($t6) +/* 0F43F0 7F0BF880 3C038007 */ lui $v1, %hi(CHEAT_AVAILABLE_EXTRA_CHARS) # $v1, 0x8007 +/* 0F43F4 7F0BF884 246396E1 */ addiu $v1, %lo(CHEAT_AVAILABLE_EXTRA_CHARS) # addiu $v1, $v1, -0x691f +/* 0F43F8 7F0BF888 11C00013 */ beqz $t6, .Ljp7F0BF8D8 +/* 0F43FC 7F0BF88C 24040001 */ li $a0, 1 +.Ljp7F0BF890: +/* 0F4400 7F0BF890 906F0000 */ lbu $t7, ($v1) +/* 0F4404 7F0BF894 51E0000D */ beql $t7, $zero, .Ljp7F0BF8CC +/* 0F4408 7F0BF898 24840001 */ addiu $a0, $a0, 1 +/* 0F440C 7F0BF89C AFA3001C */ sw $v1, 0x1c($sp) +/* 0F4410 7F0BF8A0 0FC2494F */ jal is_cheat_index_equal_to_1C +/* 0F4414 7F0BF8A4 AFA40194 */ sw $a0, 0x194($sp) +/* 0F4418 7F0BF8A8 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F441C 7F0BF8AC 14400006 */ bnez $v0, .Ljp7F0BF8C8 +/* 0F4420 7F0BF8B0 8FA40194 */ lw $a0, 0x194($sp) +/* 0F4424 7F0BF8B4 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F4428 7F0BF8B8 0FC24963 */ jal turn_on_cheat_for_players +/* 0F442C 7F0BF8BC AFA40194 */ sw $a0, 0x194($sp) +/* 0F4430 7F0BF8C0 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F4434 7F0BF8C4 8FA40194 */ lw $a0, 0x194($sp) +.Ljp7F0BF8C8: +/* 0F4438 7F0BF8C8 24840001 */ addiu $a0, $a0, 1 +.Ljp7F0BF8CC: +/* 0F443C 7F0BF8CC 2401004B */ li $at, 75 +/* 0F4440 7F0BF8D0 1481FFEF */ bne $a0, $at, .Ljp7F0BF890 +/* 0F4444 7F0BF8D4 24630001 */ addiu $v1, $v1, 1 +.Ljp7F0BF8D8: +/* 0F4448 7F0BF8D8 0FC26C01 */ jal get_num_players +/* 0F444C 7F0BF8DC 00000000 */ nop +/* 0F4450 7F0BF8E0 28410002 */ slti $at, $v0, 2 +/* 0F4454 7F0BF8E4 1420014C */ bnez $at, .Ljp7F0BFE18 +/* 0F4458 7F0BF8E8 3C188005 */ lui $t8, %hi(current_stage_to_load) # $t8, 0x8005 +/* 0F445C 7F0BF8EC 8F188394 */ lw $t8, %lo(current_stage_to_load)($t8) +/* 0F4460 7F0BF8F0 2401005A */ li $at, 90 +/* 0F4464 7F0BF8F4 13010148 */ beq $t8, $at, .Ljp7F0BFE18 +/* 0F4468 7F0BF8F8 00000000 */ nop +/* 0F446C 7F0BF8FC 0FC30630 */ jal get_mission_state +/* 0F4470 7F0BF900 00000000 */ nop +/* 0F4474 7F0BF904 24010006 */ li $at, 6 +/* 0F4478 7F0BF908 14410029 */ bne $v0, $at, .Ljp7F0BF9B0 +/* 0F447C 7F0BF90C 00000000 */ nop +/* 0F4480 7F0BF910 AFA00190 */ sw $zero, 0x190($sp) +/* 0F4484 7F0BF914 AFA0018C */ sw $zero, 0x18c($sp) +/* 0F4488 7F0BF918 0FC26C01 */ jal get_num_players +/* 0F448C 7F0BF91C AFA00188 */ sw $zero, 0x188($sp) +/* 0F4490 7F0BF920 8FA30190 */ lw $v1, 0x190($sp) +/* 0F4494 7F0BF924 8FA5018C */ lw $a1, 0x18c($sp) +/* 0F4498 7F0BF928 1840001B */ blez $v0, .Ljp7F0BF998 +/* 0F449C 7F0BF92C 8FA60188 */ lw $a2, 0x188($sp) +/* 0F44A0 7F0BF930 3C0E8008 */ lui $t6, %hi(ptr_BONDdata_p1) # $t6, 0x8008 +/* 0F44A4 7F0BF934 25CE9F50 */ addiu $t6, %lo(ptr_BONDdata_p1) # addiu $t6, $t6, -0x60b0 +/* 0F44A8 7F0BF938 0003C880 */ sll $t9, $v1, 2 +/* 0F44AC 7F0BF93C 032E2021 */ addu $a0, $t9, $t6 +.Ljp7F0BF940: +/* 0F44B0 7F0BF940 8C820000 */ lw $v0, ($a0) +/* 0F44B4 7F0BF944 24630001 */ addiu $v1, $v1, 1 +/* 0F44B8 7F0BF948 24840004 */ addiu $a0, $a0, 4 +/* 0F44BC 7F0BF94C 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0F44C0 7F0BF950 51E00007 */ beql $t7, $zero, .Ljp7F0BF970 +/* 0F44C4 7F0BF954 AFA30190 */ sw $v1, 0x190($sp) +/* 0F44C8 7F0BF958 8C580424 */ lw $t8, 0x424($v0) +/* 0F44CC 7F0BF95C 24A50001 */ addiu $a1, $a1, 1 +/* 0F44D0 7F0BF960 53000003 */ beql $t8, $zero, .Ljp7F0BF970 +/* 0F44D4 7F0BF964 AFA30190 */ sw $v1, 0x190($sp) +/* 0F44D8 7F0BF968 24C60001 */ addiu $a2, $a2, 1 +/* 0F44DC 7F0BF96C AFA30190 */ sw $v1, 0x190($sp) +.Ljp7F0BF970: +/* 0F44E0 7F0BF970 AFA4001C */ sw $a0, 0x1c($sp) +/* 0F44E4 7F0BF974 AFA5018C */ sw $a1, 0x18c($sp) +/* 0F44E8 7F0BF978 0FC26C01 */ jal get_num_players +/* 0F44EC 7F0BF97C AFA60188 */ sw $a2, 0x188($sp) +/* 0F44F0 7F0BF980 8FA30190 */ lw $v1, 0x190($sp) +/* 0F44F4 7F0BF984 8FA4001C */ lw $a0, 0x1c($sp) +/* 0F44F8 7F0BF988 8FA5018C */ lw $a1, 0x18c($sp) +/* 0F44FC 7F0BF98C 0062082A */ slt $at, $v1, $v0 +/* 0F4500 7F0BF990 1420FFEB */ bnez $at, .Ljp7F0BF940 +/* 0F4504 7F0BF994 8FA60188 */ lw $a2, 0x188($sp) +.Ljp7F0BF998: +/* 0F4508 7F0BF998 18A00005 */ blez $a1, .Ljp7F0BF9B0 +/* 0F450C 7F0BF99C 00000000 */ nop +/* 0F4510 7F0BF9A0 14A60003 */ bne $a1, $a2, .Ljp7F0BF9B0 +/* 0F4514 7F0BF9A4 00000000 */ nop +/* 0F4518 7F0BF9A8 0FC30633 */ jal set_missionstate +/* 0F451C 7F0BF9AC 24040001 */ li $a0, 1 +.Ljp7F0BF9B0: +/* 0F4520 7F0BF9B0 3C038005 */ lui $v1, %hi(mp_time) # $v1, 0x8005 +/* 0F4524 7F0BF9B4 8C6383CC */ lw $v1, %lo(mp_time)($v1) +/* 0F4528 7F0BF9B8 3C028005 */ lui $v0, %hi(D_80048394) # $v0, 0x8005 +/* 0F452C 7F0BF9BC 3C198005 */ lui $t9, %hi(clock_timer) # $t9, 0x8005 +/* 0F4530 7F0BF9C0 1860004A */ blez $v1, .Ljp7F0BFAEC +/* 0F4534 7F0BF9C4 00000000 */ nop +/* 0F4538 7F0BF9C8 8C4283C8 */ lw $v0, %lo(D_80048394)($v0) +/* 0F453C 7F0BF9CC 8F3983A4 */ lw $t9, %lo(clock_timer)($t9) +/* 0F4540 7F0BF9D0 2464F1F0 */ addiu $a0, $v1, -0xe10 +/* 0F4544 7F0BF9D4 0044082A */ slt $at, $v0, $a0 +/* 0F4548 7F0BF9D8 03227021 */ addu $t6, $t9, $v0 +/* 0F454C 7F0BF9DC AFAE0180 */ sw $t6, 0x180($sp) +/* 0F4550 7F0BF9E0 10200016 */ beqz $at, .Ljp7F0BFA3C +/* 0F4554 7F0BF9E4 AFA20184 */ sw $v0, 0x184($sp) +/* 0F4558 7F0BF9E8 01C4082A */ slt $at, $t6, $a0 +/* 0F455C 7F0BF9EC 14200013 */ bnez $at, .Ljp7F0BFA3C +/* 0F4560 7F0BF9F0 00000000 */ nop +/* 0F4564 7F0BF9F4 0FC26C01 */ jal get_num_players +/* 0F4568 7F0BF9F8 AFA0017C */ sw $zero, 0x17c($sp) +/* 0F456C 7F0BF9FC 1840000F */ blez $v0, .Ljp7F0BFA3C +/* 0F4570 7F0BFA00 00000000 */ nop +.Ljp7F0BFA04: +/* 0F4574 7F0BFA04 0FC26F2B */ jal set_cur_player +/* 0F4578 7F0BFA08 8FA4017C */ lw $a0, 0x17c($sp) +/* 0F457C 7F0BFA0C 0FC30AA2 */ jal get_textptr_for_textID +/* 0F4580 7F0BFA10 3404B044 */ li $a0, 45124 +/* 0F4584 7F0BFA14 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0F4588 7F0BFA18 00402025 */ move $a0, $v0 +/* 0F458C 7F0BFA1C 8FAF017C */ lw $t7, 0x17c($sp) +/* 0F4590 7F0BFA20 25F80001 */ addiu $t8, $t7, 1 +/* 0F4594 7F0BFA24 0FC26C01 */ jal get_num_players +/* 0F4598 7F0BFA28 AFB8017C */ sw $t8, 0x17c($sp) +/* 0F459C 7F0BFA2C 8FB9017C */ lw $t9, 0x17c($sp) +/* 0F45A0 7F0BFA30 0322082A */ slt $at, $t9, $v0 +/* 0F45A4 7F0BFA34 1420FFF3 */ bnez $at, .Ljp7F0BFA04 +/* 0F45A8 7F0BFA38 00000000 */ nop +.Ljp7F0BFA3C: +/* 0F45AC 7F0BFA3C 3C0F8005 */ lui $t7, %hi(mp_time) # $t7, 0x8005 +/* 0F45B0 7F0BFA40 8DEF83CC */ lw $t7, %lo(mp_time)($t7) +/* 0F45B4 7F0BFA44 8FAE0180 */ lw $t6, 0x180($sp) +/* 0F45B8 7F0BFA48 3C198005 */ lui $t9, %hi(D_800483A0) # $t9, 0x8005 +/* 0F45BC 7F0BFA4C 25F8FDA8 */ addiu $t8, $t7, -0x258 +/* 0F45C0 7F0BFA50 01D8082A */ slt $at, $t6, $t8 +/* 0F45C4 7F0BFA54 1420000D */ bnez $at, .Ljp7F0BFA8C +/* 0F45C8 7F0BFA58 00000000 */ nop +/* 0F45CC 7F0BFA5C 8F3983D4 */ lw $t9, %lo(D_800483A0)($t9) +/* 0F45D0 7F0BFA60 1720000A */ bnez $t9, .Ljp7F0BFA8C +/* 0F45D4 7F0BFA64 00000000 */ nop +/* 0F45D8 7F0BFA68 0FC3021B */ jal get_controls_locked_flag +/* 0F45DC 7F0BFA6C 00000000 */ nop +/* 0F45E0 7F0BFA70 14400006 */ bnez $v0, .Ljp7F0BFA8C +/* 0F45E4 7F0BFA74 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0F45E8 7F0BFA78 3C068005 */ lui $a2, %hi(D_800483A0) # $a2, 0x8005 +/* 0F45EC 7F0BFA7C 24C683D4 */ addiu $a2, %lo(D_800483A0) # addiu $a2, $a2, -0x7c2c +/* 0F45F0 7F0BFA80 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0F45F4 7F0BFA84 0C002386 */ jal play_sfx_a1 +/* 0F45F8 7F0BFA88 240500A1 */ li $a1, 161 +.Ljp7F0BFA8C: +/* 0F45FC 7F0BFA8C 0FC3021B */ jal get_controls_locked_flag +/* 0F4600 7F0BFA90 00000000 */ nop +/* 0F4604 7F0BFA94 1040000A */ beqz $v0, .Ljp7F0BFAC0 +/* 0F4608 7F0BFA98 3C048005 */ lui $a0, %hi(D_800483A0) # $a0, 0x8005 +/* 0F460C 7F0BFA9C 8C8483D4 */ lw $a0, %lo(D_800483A0)($a0) +/* 0F4610 7F0BFAA0 10800007 */ beqz $a0, .Ljp7F0BFAC0 +/* 0F4614 7F0BFAA4 00000000 */ nop +/* 0F4618 7F0BFAA8 0C002380 */ jal sfxGetArg0Unk3F +/* 0F461C 7F0BFAAC 00000000 */ nop +/* 0F4620 7F0BFAB0 10400003 */ beqz $v0, .Ljp7F0BFAC0 +/* 0F4624 7F0BFAB4 3C048005 */ lui $a0, %hi(D_800483A0) # $a0, 0x8005 +/* 0F4628 7F0BFAB8 0C00240C */ jal sfxDeactivate +/* 0F462C 7F0BFABC 8C8483D4 */ lw $a0, %lo(D_800483A0)($a0) +.Ljp7F0BFAC0: +/* 0F4630 7F0BFAC0 3C038005 */ lui $v1, %hi(mp_time) # $v1, 0x8005 +/* 0F4634 7F0BFAC4 8C6383CC */ lw $v1, %lo(mp_time)($v1) +/* 0F4638 7F0BFAC8 8FAF0184 */ lw $t7, 0x184($sp) +/* 0F463C 7F0BFACC 8FAE0180 */ lw $t6, 0x180($sp) +/* 0F4640 7F0BFAD0 01E3082A */ slt $at, $t7, $v1 +/* 0F4644 7F0BFAD4 10200005 */ beqz $at, .Ljp7F0BFAEC +/* 0F4648 7F0BFAD8 01C3082A */ slt $at, $t6, $v1 +/* 0F464C 7F0BFADC 14200003 */ bnez $at, .Ljp7F0BFAEC +/* 0F4650 7F0BFAE0 00000000 */ nop +/* 0F4654 7F0BFAE4 0FC30C78 */ jal sub_GAME_7F0C2530 +/* 0F4658 7F0BFAE8 00002025 */ move $a0, $zero +.Ljp7F0BFAEC: +/* 0F465C 7F0BFAEC 3C188005 */ lui $t8, %hi(mp_point) # $t8, 0x8005 +/* 0F4660 7F0BFAF0 8F1883D0 */ lw $t8, %lo(mp_point)($t8) +/* 0F4664 7F0BFAF4 3C198005 */ lui $t9, %hi(clock_timer) # $t9, 0x8005 +/* 0F4668 7F0BFAF8 1B00003D */ blez $t8, .Ljp7F0BFBF0 +/* 0F466C 7F0BFAFC 00000000 */ nop +/* 0F4670 7F0BFB00 8F3983A4 */ lw $t9, %lo(clock_timer)($t9) +/* 0F4674 7F0BFB04 1320003A */ beqz $t9, .Ljp7F0BFBF0 +/* 0F4678 7F0BFB08 00000000 */ nop +/* 0F467C 7F0BFB0C 0FC26C01 */ jal get_num_players +/* 0F4680 7F0BFB10 00000000 */ nop +/* 0F4684 7F0BFB14 00403825 */ move $a3, $v0 +/* 0F4688 7F0BFB18 00002825 */ move $a1, $zero +/* 0F468C 7F0BFB1C 00003025 */ move $a2, $zero +/* 0F4690 7F0BFB20 18400029 */ blez $v0, .Ljp7F0BFBC8 +/* 0F4694 7F0BFB24 00002025 */ move $a0, $zero +/* 0F4698 7F0BFB28 3C038008 */ lui $v1, %hi(ptr_BONDdata_p1) # $v1, 0x8008 +/* 0F469C 7F0BFB2C 44800000 */ mtc1 $zero, $f0 +/* 0F46A0 7F0BFB30 24639F50 */ addiu $v1, %lo(ptr_BONDdata_p1) # addiu $v1, $v1, -0x60b0 +.Ljp7F0BFB34: +/* 0F46A4 7F0BFB34 8C620000 */ lw $v0, ($v1) +/* 0F46A8 7F0BFB38 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0F46AC 7F0BFB3C 51E0000E */ beql $t7, $zero, .Ljp7F0BFB78 +/* 0F46B0 7F0BFB40 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F46B4 7F0BFB44 8C4E0424 */ lw $t6, 0x424($v0) +/* 0F46B8 7F0BFB48 51C0000A */ beql $t6, $zero, .Ljp7F0BFB74 +/* 0F46BC 7F0BFB4C 24A50001 */ addiu $a1, $a1, 1 +/* 0F46C0 7F0BFB50 8C580428 */ lw $t8, 0x428($v0) +/* 0F46C4 7F0BFB54 53000007 */ beql $t8, $zero, .Ljp7F0BFB74 +/* 0F46C8 7F0BFB58 24A50001 */ addiu $a1, $a1, 1 +/* 0F46CC 7F0BFB5C C44A03E4 */ lwc1 $f10, 0x3e4($v0) +/* 0F46D0 7F0BFB60 460A003E */ c.le.s $f0, $f10 +/* 0F46D4 7F0BFB64 00000000 */ nop +/* 0F46D8 7F0BFB68 45020003 */ bc1fl .Ljp7F0BFB78 +/* 0F46DC 7F0BFB6C AFA3001C */ sw $v1, 0x1c($sp) +/* 0F46E0 7F0BFB70 24A50001 */ addiu $a1, $a1, 1 +.Ljp7F0BFB74: +/* 0F46E4 7F0BFB74 AFA3001C */ sw $v1, 0x1c($sp) +.Ljp7F0BFB78: +/* 0F46E8 7F0BFB78 AFA40174 */ sw $a0, 0x174($sp) +/* 0F46EC 7F0BFB7C AFA50170 */ sw $a1, 0x170($sp) +/* 0F46F0 7F0BFB80 AFA6016C */ sw $a2, 0x16c($sp) +/* 0F46F4 7F0BFB84 0FC31162 */ jal get_points_for_mp_player +/* 0F46F8 7F0BFB88 AFA70178 */ sw $a3, 0x178($sp) +/* 0F46FC 7F0BFB8C 3C198005 */ lui $t9, %hi(mp_point) # $t9, 0x8005 +/* 0F4700 7F0BFB90 8F3983D0 */ lw $t9, %lo(mp_point)($t9) +/* 0F4704 7F0BFB94 44800000 */ mtc1 $zero, $f0 +/* 0F4708 7F0BFB98 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F470C 7F0BFB9C 0059082A */ slt $at, $v0, $t9 +/* 0F4710 7F0BFBA0 8FA40174 */ lw $a0, 0x174($sp) +/* 0F4714 7F0BFBA4 8FA50170 */ lw $a1, 0x170($sp) +/* 0F4718 7F0BFBA8 8FA6016C */ lw $a2, 0x16c($sp) +/* 0F471C 7F0BFBAC 14200002 */ bnez $at, .Ljp7F0BFBB8 +/* 0F4720 7F0BFBB0 8FA70178 */ lw $a3, 0x178($sp) +/* 0F4724 7F0BFBB4 24C60001 */ addiu $a2, $a2, 1 +.Ljp7F0BFBB8: +/* 0F4728 7F0BFBB8 24840001 */ addiu $a0, $a0, 1 +/* 0F472C 7F0BFBBC 0087082A */ slt $at, $a0, $a3 +/* 0F4730 7F0BFBC0 1420FFDC */ bnez $at, .Ljp7F0BFB34 +/* 0F4734 7F0BFBC4 24630004 */ addiu $v1, $v1, 4 +.Ljp7F0BFBC8: +/* 0F4738 7F0BFBC8 18C00009 */ blez $a2, .Ljp7F0BFBF0 +/* 0F473C 7F0BFBCC 00000000 */ nop +/* 0F4740 7F0BFBD0 14A00005 */ bnez $a1, .Ljp7F0BFBE8 +/* 0F4744 7F0BFBD4 00000000 */ nop +/* 0F4748 7F0BFBD8 0FC30C78 */ jal sub_GAME_7F0C2530 +/* 0F474C 7F0BFBDC 00002025 */ move $a0, $zero +/* 0F4750 7F0BFBE0 10000003 */ b .Ljp7F0BFBF0 +/* 0F4754 7F0BFBE4 00000000 */ nop +.Ljp7F0BFBE8: +/* 0F4758 7F0BFBE8 0FC30C74 */ jal set_stopplay_flag +/* 0F475C 7F0BFBEC 00000000 */ nop +.Ljp7F0BFBF0: +/* 0F4760 7F0BFBF0 0FC05202 */ jal get_scenario +/* 0F4764 7F0BFBF4 00000000 */ nop +/* 0F4768 7F0BFBF8 24010001 */ li $at, 1 +/* 0F476C 7F0BFBFC 14410086 */ bne $v0, $at, .Ljp7F0BFE18 +/* 0F4770 7F0BFC00 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 +/* 0F4774 7F0BFC04 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) +/* 0F4778 7F0BFC08 11E00083 */ beqz $t7, .Ljp7F0BFE18 +/* 0F477C 7F0BFC0C 00000000 */ nop +/* 0F4780 7F0BFC10 0FC26C01 */ jal get_num_players +/* 0F4784 7F0BFC14 00000000 */ nop +/* 0F4788 7F0BFC18 44800000 */ mtc1 $zero, $f0 +/* 0F478C 7F0BFC1C 00405025 */ move $t2, $v0 +/* 0F4790 7F0BFC20 00006825 */ move $t5, $zero +/* 0F4794 7F0BFC24 0000F825 */ move $ra, $zero +/* 0F4798 7F0BFC28 1840006E */ blez $v0, .Ljp7F0BFDE4 +/* 0F479C 7F0BFC2C 00006025 */ move $t4, $zero +/* 0F47A0 7F0BFC30 00002825 */ move $a1, $zero +.Ljp7F0BFC34: +/* 0F47A4 7F0BFC34 00003025 */ move $a2, $zero +/* 0F47A8 7F0BFC38 18400048 */ blez $v0, .Ljp7F0BFD5C +/* 0F47AC 7F0BFC3C 00003825 */ move $a3, $zero +/* 0F47B0 7F0BFC40 30490003 */ andi $t1, $v0, 3 +/* 0F47B4 7F0BFC44 11200019 */ beqz $t1, .Ljp7F0BFCAC +/* 0F47B8 7F0BFC48 000C5880 */ sll $t3, $t4, 2 +/* 0F47BC 7F0BFC4C 3C188008 */ lui $t8, %hi(ptr_BONDdata_p1) # $t8, 0x8008 +/* 0F47C0 7F0BFC50 27189F50 */ addiu $t8, %lo(ptr_BONDdata_p1) # addiu $t8, $t8, -0x60b0 +/* 0F47C4 7F0BFC54 00007080 */ sll $t6, $zero, 2 +/* 0F47C8 7F0BFC58 0000C8C0 */ sll $t9, $zero, 3 +/* 0F47CC 7F0BFC5C 0320C823 */ subu $t9, $t9, $zero +/* 0F47D0 7F0BFC60 01D81821 */ addu $v1, $t6, $t8 +/* 0F47D4 7F0BFC64 3C0E8008 */ lui $t6, %hi(player1_player_data) # $t6, 0x8008 +/* 0F47D8 7F0BFC68 0019C900 */ sll $t9, $t9, 4 +/* 0F47DC 7F0BFC6C 032B7821 */ addu $t7, $t9, $t3 +/* 0F47E0 7F0BFC70 25CE9F60 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x60a0 +/* 0F47E4 7F0BFC74 01EE2021 */ addu $a0, $t7, $t6 +/* 0F47E8 7F0BFC78 01204025 */ move $t0, $t1 +.Ljp7F0BFC7C: +/* 0F47EC 7F0BFC7C 8C780000 */ lw $t8, ($v1) +/* 0F47F0 7F0BFC80 24E70001 */ addiu $a3, $a3, 1 +/* 0F47F4 7F0BFC84 24630004 */ addiu $v1, $v1, 4 +/* 0F47F8 7F0BFC88 8F1900D8 */ lw $t9, 0xd8($t8) +/* 0F47FC 7F0BFC8C 57200003 */ bnezl $t9, .Ljp7F0BFC9C +/* 0F4800 7F0BFC90 8C8F0024 */ lw $t7, 0x24($a0) +/* 0F4804 7F0BFC94 24C60001 */ addiu $a2, $a2, 1 +/* 0F4808 7F0BFC98 8C8F0024 */ lw $t7, 0x24($a0) +.Ljp7F0BFC9C: +/* 0F480C 7F0BFC9C 24840070 */ addiu $a0, $a0, 0x70 +/* 0F4810 7F0BFCA0 1507FFF6 */ bne $t0, $a3, .Ljp7F0BFC7C +/* 0F4814 7F0BFCA4 00AF2821 */ addu $a1, $a1, $t7 +/* 0F4818 7F0BFCA8 10E2002C */ beq $a3, $v0, .Ljp7F0BFD5C +.Ljp7F0BFCAC: +/* 0F481C 7F0BFCAC 3C188008 */ lui $t8, %hi(ptr_BONDdata_p1) # $t8, 0x8008 +/* 0F4820 7F0BFCB0 0007C8C0 */ sll $t9, $a3, 3 +/* 0F4824 7F0BFCB4 0327C823 */ subu $t9, $t9, $a3 +/* 0F4828 7F0BFCB8 27189F50 */ addiu $t8, %lo(ptr_BONDdata_p1) # addiu $t8, $t8, -0x60b0 +/* 0F482C 7F0BFCBC 00077080 */ sll $t6, $a3, 2 +/* 0F4830 7F0BFCC0 01D81821 */ addu $v1, $t6, $t8 +/* 0F4834 7F0BFCC4 0019C900 */ sll $t9, $t9, 4 +/* 0F4838 7F0BFCC8 032B7821 */ addu $t7, $t9, $t3 +/* 0F483C 7F0BFCCC 3C0E8008 */ lui $t6, %hi(player1_player_data) # $t6, 0x8008 +/* 0F4840 7F0BFCD0 25CE9F60 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x60a0 +/* 0F4844 7F0BFCD4 000AC880 */ sll $t9, $t2, 2 +/* 0F4848 7F0BFCD8 03384021 */ addu $t0, $t9, $t8 +/* 0F484C 7F0BFCDC 01EE2021 */ addu $a0, $t7, $t6 +.Ljp7F0BFCE0: +/* 0F4850 7F0BFCE0 8C6F0000 */ lw $t7, ($v1) +/* 0F4854 7F0BFCE4 8DEE00D8 */ lw $t6, 0xd8($t7) +/* 0F4858 7F0BFCE8 55C00003 */ bnezl $t6, .Ljp7F0BFCF8 +/* 0F485C 7F0BFCEC 8C780004 */ lw $t8, 4($v1) +/* 0F4860 7F0BFCF0 24C60001 */ addiu $a2, $a2, 1 +/* 0F4864 7F0BFCF4 8C780004 */ lw $t8, 4($v1) +.Ljp7F0BFCF8: +/* 0F4868 7F0BFCF8 8C990024 */ lw $t9, 0x24($a0) +/* 0F486C 7F0BFCFC 8F0F00D8 */ lw $t7, 0xd8($t8) +/* 0F4870 7F0BFD00 00B92821 */ addu $a1, $a1, $t9 +/* 0F4874 7F0BFD04 55E00003 */ bnezl $t7, .Ljp7F0BFD14 +/* 0F4878 7F0BFD08 8C790008 */ lw $t9, 8($v1) +/* 0F487C 7F0BFD0C 24C60001 */ addiu $a2, $a2, 1 +/* 0F4880 7F0BFD10 8C790008 */ lw $t9, 8($v1) +.Ljp7F0BFD14: +/* 0F4884 7F0BFD14 8C8E0094 */ lw $t6, 0x94($a0) +/* 0F4888 7F0BFD18 8F3800D8 */ lw $t8, 0xd8($t9) +/* 0F488C 7F0BFD1C 00AE2821 */ addu $a1, $a1, $t6 +/* 0F4890 7F0BFD20 57000003 */ bnezl $t8, .Ljp7F0BFD30 +/* 0F4894 7F0BFD24 8C6E000C */ lw $t6, 0xc($v1) +/* 0F4898 7F0BFD28 24C60001 */ addiu $a2, $a2, 1 +/* 0F489C 7F0BFD2C 8C6E000C */ lw $t6, 0xc($v1) +.Ljp7F0BFD30: +/* 0F48A0 7F0BFD30 8C8F0104 */ lw $t7, 0x104($a0) +/* 0F48A4 7F0BFD34 24630010 */ addiu $v1, $v1, 0x10 +/* 0F48A8 7F0BFD38 8DD900D8 */ lw $t9, 0xd8($t6) +/* 0F48AC 7F0BFD3C 00AF2821 */ addu $a1, $a1, $t7 +/* 0F48B0 7F0BFD40 57200003 */ bnezl $t9, .Ljp7F0BFD50 +/* 0F48B4 7F0BFD44 8C980174 */ lw $t8, 0x174($a0) +/* 0F48B8 7F0BFD48 24C60001 */ addiu $a2, $a2, 1 +/* 0F48BC 7F0BFD4C 8C980174 */ lw $t8, 0x174($a0) +.Ljp7F0BFD50: +/* 0F48C0 7F0BFD50 248401C0 */ addiu $a0, $a0, 0x1c0 +/* 0F48C4 7F0BFD54 1468FFE2 */ bne $v1, $t0, .Ljp7F0BFCE0 +/* 0F48C8 7F0BFD58 00B82821 */ addu $a1, $a1, $t8 +.Ljp7F0BFD5C: +/* 0F48CC 7F0BFD5C 28A10002 */ slti $at, $a1, 2 +/* 0F48D0 7F0BFD60 1420001C */ bnez $at, .Ljp7F0BFDD4 +/* 0F48D4 7F0BFD64 000C78C0 */ sll $t7, $t4, 3 +/* 0F48D8 7F0BFD68 01EC7823 */ subu $t7, $t7, $t4 +/* 0F48DC 7F0BFD6C 3C0E8008 */ lui $t6, %hi(player1_player_data) # $t6, 0x8008 +/* 0F48E0 7F0BFD70 25CE9F60 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x60a0 +/* 0F48E4 7F0BFD74 000F7900 */ sll $t7, $t7, 4 +/* 0F48E8 7F0BFD78 01EE1821 */ addu $v1, $t7, $t6 +/* 0F48EC 7F0BFD7C 906F0068 */ lbu $t7, 0x68($v1) +/* 0F48F0 7F0BFD80 3C188008 */ lui $t8, %hi(ptr_BONDdata_p1) # $t8, 0x8008 +/* 0F48F4 7F0BFD84 27189F50 */ addiu $t8, %lo(ptr_BONDdata_p1) # addiu $t8, $t8, -0x60b0 +/* 0F48F8 7F0BFD88 000CC880 */ sll $t9, $t4, 2 +/* 0F48FC 7F0BFD8C 15E00003 */ bnez $t7, .Ljp7F0BFD9C +/* 0F4900 7F0BFD90 03382021 */ addu $a0, $t9, $t8 +/* 0F4904 7F0BFD94 24CE0001 */ addiu $t6, $a2, 1 +/* 0F4908 7F0BFD98 A06E0068 */ sb $t6, 0x68($v1) +.Ljp7F0BFD9C: +/* 0F490C 7F0BFD9C 8C830000 */ lw $v1, ($a0) +/* 0F4910 7F0BFDA0 25AD0001 */ addiu $t5, $t5, 1 +/* 0F4914 7F0BFDA4 8C790424 */ lw $t9, 0x424($v1) +/* 0F4918 7F0BFDA8 5320000B */ beql $t9, $zero, .Ljp7F0BFDD8 +/* 0F491C 7F0BFDAC 258C0001 */ addiu $t4, $t4, 1 +/* 0F4920 7F0BFDB0 8C780428 */ lw $t8, 0x428($v1) +/* 0F4924 7F0BFDB4 53000008 */ beql $t8, $zero, .Ljp7F0BFDD8 +/* 0F4928 7F0BFDB8 258C0001 */ addiu $t4, $t4, 1 +/* 0F492C 7F0BFDBC C47003E4 */ lwc1 $f16, 0x3e4($v1) +/* 0F4930 7F0BFDC0 4600803C */ c.lt.s $f16, $f0 +/* 0F4934 7F0BFDC4 00000000 */ nop +/* 0F4938 7F0BFDC8 45020003 */ bc1fl .Ljp7F0BFDD8 +/* 0F493C 7F0BFDCC 258C0001 */ addiu $t4, $t4, 1 +/* 0F4940 7F0BFDD0 27FF0001 */ addiu $ra, $ra, 1 +.Ljp7F0BFDD4: +/* 0F4944 7F0BFDD4 258C0001 */ addiu $t4, $t4, 1 +.Ljp7F0BFDD8: +/* 0F4948 7F0BFDD8 018A082A */ slt $at, $t4, $t2 +/* 0F494C 7F0BFDDC 5420FF95 */ bnezl $at, .Ljp7F0BFC34 +/* 0F4950 7F0BFDE0 00002825 */ move $a1, $zero +.Ljp7F0BFDE4: +/* 0F4954 7F0BFDE4 2443FFFF */ addiu $v1, $v0, -1 +/* 0F4958 7F0BFDE8 03E3082A */ slt $at, $ra, $v1 +/* 0F495C 7F0BFDEC 54200006 */ bnezl $at, .Ljp7F0BFE08 +/* 0F4960 7F0BFDF0 01A3082A */ slt $at, $t5, $v1 +/* 0F4964 7F0BFDF4 0FC30C78 */ jal sub_GAME_7F0C2530 +/* 0F4968 7F0BFDF8 00002025 */ move $a0, $zero +/* 0F496C 7F0BFDFC 10000006 */ b .Ljp7F0BFE18 +/* 0F4970 7F0BFE00 00000000 */ nop +/* 0F4974 7F0BFE04 01A3082A */ slt $at, $t5, $v1 +.Ljp7F0BFE08: +/* 0F4978 7F0BFE08 14200003 */ bnez $at, .Ljp7F0BFE18 +/* 0F497C 7F0BFE0C 00000000 */ nop +/* 0F4980 7F0BFE10 0FC30C74 */ jal set_stopplay_flag +/* 0F4984 7F0BFE14 00000000 */ nop +.Ljp7F0BFE18: +/* 0F4988 7F0BFE18 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 +/* 0F498C 7F0BFE1C 3C0F8005 */ lui $t7, %hi(D_80048394) # $t7, 0x8005 +/* 0F4990 7F0BFE20 8DEF83C8 */ lw $t7, %lo(D_80048394)($t7) +/* 0F4994 7F0BFE24 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) +/* 0F4998 7F0BFE28 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0F499C 7F0BFE2C 44810000 */ mtc1 $at, $f0 +/* 0F49A0 7F0BFE30 01E27021 */ addu $t6, $t7, $v0 +/* 0F49A4 7F0BFE34 448E9000 */ mtc1 $t6, $f18 +/* 0F49A8 7F0BFE38 3C018005 */ lui $at, %hi(D_80048394) # $at, 0x8005 +/* 0F49AC 7F0BFE3C AC2E83C8 */ sw $t6, %lo(D_80048394)($at) +/* 0F49B0 7F0BFE40 46809120 */ cvt.s.w $f4, $f18 +/* 0F49B4 7F0BFE44 3C038005 */ lui $v1, %hi(D_800483A8) # $v1, 0x8005 +/* 0F49B8 7F0BFE48 3C018005 */ lui $at, %hi(cur_mp_sec) # $at, 0x8005 +/* 0F49BC 7F0BFE4C 246383DC */ addiu $v1, %lo(D_800483A8) # addiu $v1, $v1, -0x7c24 +/* 0F49C0 7F0BFE50 00002025 */ move $a0, $zero +/* 0F49C4 7F0BFE54 3405FFFF */ li $a1, 65535 +/* 0F49C8 7F0BFE58 46002183 */ div.s $f6, $f4, $f0 +/* 0F49CC 7F0BFE5C E42683D8 */ swc1 $f6, %lo(cur_mp_sec)($at) +/* 0F49D0 7F0BFE60 8C790000 */ lw $t9, ($v1) +/* 0F49D4 7F0BFE64 3C018005 */ lui $at, %hi(cur_mp_min) # $at, 0x8005 +/* 0F49D8 7F0BFE68 03227821 */ addu $t7, $t9, $v0 +/* 0F49DC 7F0BFE6C 448F4000 */ mtc1 $t7, $f8 +/* 0F49E0 7F0BFE70 AC6F0000 */ sw $t7, ($v1) +/* 0F49E4 7F0BFE74 468042A0 */ cvt.s.w $f10, $f8 +/* 0F49E8 7F0BFE78 46005403 */ div.s $f16, $f10, $f0 +/* 0F49EC 7F0BFE7C 0C003104 */ jal get_controller_buttons_pressed +/* 0F49F0 7F0BFE80 E43083E0 */ swc1 $f16, %lo(cur_mp_min)($at) +/* 0F49F4 7F0BFE84 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0F49F8 7F0BFE88 44810000 */ mtc1 $at, $f0 +/* 0F49FC 7F0BFE8C 10400009 */ beqz $v0, .Ljp7F0BFEB4 +/* 0F4A00 7F0BFE90 3C038005 */ lui $v1, %hi(D_80048390) +/* 0F4A04 7F0BFE94 3C038005 */ lui $v1, %hi(D_80048390) # $v1, 0x8005 +/* 0F4A08 7F0BFE98 3C018005 */ lui $at, %hi(D_80048388) # $at, 0x8005 +/* 0F4A0C 7F0BFE9C 246383C4 */ addiu $v1, %lo(D_80048390) # addiu $v1, $v1, -0x7c3c +/* 0F4A10 7F0BFEA0 AC2083BC */ sw $zero, %lo(D_80048388)($at) +/* 0F4A14 7F0BFEA4 AC600000 */ sw $zero, ($v1) +/* 0F4A18 7F0BFEA8 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 +/* 0F4A1C 7F0BFEAC 1000000C */ b .Ljp7F0BFEE0 +/* 0F4A20 7F0BFEB0 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) +.Ljp7F0BFEB4: +/* 0F4A24 7F0BFEB4 246383C4 */ addiu $v1, $v1, %lo(D_80048390) +/* 0F4A28 7F0BFEB8 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 +/* 0F4A2C 7F0BFEBC 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) +/* 0F4A30 7F0BFEC0 8C6E0000 */ lw $t6, ($v1) +/* 0F4A34 7F0BFEC4 240F0001 */ li $t7, 1 +/* 0F4A38 7F0BFEC8 01C2C821 */ addu $t9, $t6, $v0 +/* 0F4A3C 7F0BFECC 2B210708 */ slti $at, $t9, 0x708 +/* 0F4A40 7F0BFED0 14200003 */ bnez $at, .Ljp7F0BFEE0 +/* 0F4A44 7F0BFED4 AC790000 */ sw $t9, ($v1) +/* 0F4A48 7F0BFED8 3C018005 */ lui $at, %hi(D_80048388) # $at, 0x8005 +/* 0F4A4C 7F0BFEDC AC2F83BC */ sw $t7, %lo(D_80048388)($at) +.Ljp7F0BFEE0: +/* 0F4A50 7F0BFEE0 3C0E8005 */ lui $t6, %hi(D_80048388) # $t6, 0x8005 +/* 0F4A54 7F0BFEE4 8DCE83BC */ lw $t6, %lo(D_80048388)($t6) +/* 0F4A58 7F0BFEE8 3C038005 */ lui $v1, %hi(D_8004838C) # $v1, 0x8005 +/* 0F4A5C 7F0BFEEC 246383C0 */ addiu $v1, %lo(D_8004838C) # addiu $v1, $v1, -0x7c40 +/* 0F4A60 7F0BFEF0 11C00005 */ beqz $t6, .Ljp7F0BFF08 +/* 0F4A64 7F0BFEF4 00000000 */ nop +/* 0F4A68 7F0BFEF8 8C790000 */ lw $t9, ($v1) +/* 0F4A6C 7F0BFEFC 0322C021 */ addu $t8, $t9, $v0 +/* 0F4A70 7F0BFF00 10000015 */ b .Ljp7F0BFF58 +/* 0F4A74 7F0BFF04 AC780000 */ sw $t8, ($v1) +.Ljp7F0BFF08: +/* 0F4A78 7F0BFF08 3C038005 */ lui $v1, %hi(D_800483B0) # $v1, 0x8005 +/* 0F4A7C 7F0BFF0C 246383E4 */ addiu $v1, %lo(D_800483B0) # addiu $v1, $v1, -0x7c1c +/* 0F4A80 7F0BFF10 8C6F0000 */ lw $t7, ($v1) +/* 0F4A84 7F0BFF14 3C048005 */ lui $a0, %hi(D_800483B8) # $a0, 0x8005 +/* 0F4A88 7F0BFF18 3C018005 */ lui $at, %hi(stage_time_sec) # $at, 0x8005 +/* 0F4A8C 7F0BFF1C 01E2C821 */ addu $t9, $t7, $v0 +/* 0F4A90 7F0BFF20 44999000 */ mtc1 $t9, $f18 +/* 0F4A94 7F0BFF24 AC790000 */ sw $t9, ($v1) +/* 0F4A98 7F0BFF28 248483EC */ addiu $a0, %lo(D_800483B8) # addiu $a0, $a0, -0x7c14 +/* 0F4A9C 7F0BFF2C 46809120 */ cvt.s.w $f4, $f18 +/* 0F4AA0 7F0BFF30 46002183 */ div.s $f6, $f4, $f0 +/* 0F4AA4 7F0BFF34 E42683E8 */ swc1 $f6, %lo(stage_time_sec)($at) +/* 0F4AA8 7F0BFF38 8C980000 */ lw $t8, ($a0) +/* 0F4AAC 7F0BFF3C 3C018005 */ lui $at, %hi(poweron_time_sec) # $at, 0x8005 +/* 0F4AB0 7F0BFF40 03027021 */ addu $t6, $t8, $v0 +/* 0F4AB4 7F0BFF44 448E4000 */ mtc1 $t6, $f8 +/* 0F4AB8 7F0BFF48 AC8E0000 */ sw $t6, ($a0) +/* 0F4ABC 7F0BFF4C 468042A0 */ cvt.s.w $f10, $f8 +/* 0F4AC0 7F0BFF50 46005403 */ div.s $f16, $f10, $f0 +/* 0F4AC4 7F0BFF54 E43083F0 */ swc1 $f16, %lo(poweron_time_sec)($at) +.Ljp7F0BFF58: +/* 0F4AC8 7F0BFF58 0C00114D */ jal set_video2_settings_offset_24 +/* 0F4ACC 7F0BFF5C 24040001 */ li $a0, 1 +/* 0F4AD0 7F0BFF60 3C198005 */ lui $t9, %hi(current_stage_to_load) # $t9, 0x8005 +/* 0F4AD4 7F0BFF64 8F398394 */ lw $t9, %lo(current_stage_to_load)($t9) +/* 0F4AD8 7F0BFF68 2401005A */ li $at, 90 +/* 0F4ADC 7F0BFF6C 17210009 */ bne $t9, $at, .Ljp7F0BFF94 +/* 0F4AE0 7F0BFF70 00000000 */ nop +/* 0F4AE4 7F0BFF74 0FC24907 */ jal cheat_buttons_mp_related +/* 0F4AE8 7F0BFF78 00000000 */ nop +/* 0F4AEC 7F0BFF7C 0FC069F4 */ jal menu_init +/* 0F4AF0 7F0BFF80 00000000 */ nop +/* 0F4AF4 7F0BFF84 0FC3097C */ jal something_with_LnameJ +/* 0F4AF8 7F0BFF88 00000000 */ nop +/* 0F4AFC 7F0BFF8C 100000A9 */ b .Ljp7F0C0234 +/* 0F4B00 7F0BFF90 00000000 */ nop +.Ljp7F0BFF94: +/* 0F4B04 7F0BFF94 0FC271D7 */ jal sub_GAME_7F09BBBC +/* 0F4B08 7F0BFF98 00000000 */ nop +/* 0F4B0C 7F0BFF9C 0FC2FD2D */ jal sub_GAME_7F0BE8D0 +/* 0F4B10 7F0BFFA0 00000000 */ nop +/* 0F4B14 7F0BFFA4 0FC2F4E1 */ jal sub_GAME_7F0BC7D4 +/* 0F4B18 7F0BFFA8 00000000 */ nop +/* 0F4B1C 7F0BFFAC 0FC24E7C */ jal sub_GAME_7F092E50 +/* 0F4B20 7F0BFFB0 00000000 */ nop +/* 0F4B24 7F0BFFB4 0FC253F6 */ jal sub_GAME_7F094438 +/* 0F4B28 7F0BFFB8 00000000 */ nop +/* 0F4B2C 7F0BFFBC 0FC294E7 */ jal sub_GAME_7F0A47FC +/* 0F4B30 7F0BFFC0 00000000 */ nop +/* 0F4B34 7F0BFFC4 0FC1A516 */ jal sub_GAME_7F068E6C +/* 0F4B38 7F0BFFC8 00000000 */ nop +/* 0F4B3C 7F0BFFCC 0FC28D1D */ jal sub_GAME_7F0A28D4 +/* 0F4B40 7F0BFFD0 00000000 */ nop +/* 0F4B44 7F0BFFD4 0FC28238 */ jal sub_GAME_7F09FD3C +/* 0F4B48 7F0BFFD8 00000000 */ nop +/* 0F4B4C 7F0BFFDC 0FC0F252 */ jal handle_mp_respawn_and_some_things +/* 0F4B50 7F0BFFE0 00000000 */ nop +/* 0F4B54 7F0BFFE4 0FC3081E */ jal reset_all_music_slots +/* 0F4B58 7F0BFFE8 00000000 */ nop +/* 0F4B5C 7F0BFFEC 0FC3097C */ jal something_with_LnameJ +/* 0F4B60 7F0BFFF0 00000000 */ nop +/* 0F4B64 7F0BFFF4 0FC246A6 */ jal get_debug_joy2detailedit_flag +/* 0F4B68 7F0BFFF8 00000000 */ nop +/* 0F4B6C 7F0BFFFC 1040004D */ beqz $v0, .Ljp7F0C0134 +/* 0F4B70 7F0C0000 3C068005 */ lui $a2, %hi(D_800483C8) # $a2, 0x8005 +/* 0F4B74 7F0C0004 24C683FC */ addiu $a2, %lo(D_800483C8) # addiu $a2, $a2, -0x7c04 +/* 0F4B78 7F0C0008 8CD80000 */ lw $t8, ($a2) +/* 0F4B7C 7F0C000C 24043000 */ li $a0, 12288 +/* 0F4B80 7F0C0010 17000048 */ bnez $t8, .Ljp7F0C0134 +/* 0F4B84 7F0C0014 00000000 */ nop +/* 0F4B88 7F0C0018 0C0025CC */ jal mempAllocBytesInBank +/* 0F4B8C 7F0C001C 24050004 */ li $a1, 4 +/* 0F4B90 7F0C0020 3C068005 */ lui $a2, %hi(D_800483C8) # $a2, 0x8005 +/* 0F4B94 7F0C0024 24C683FC */ addiu $a2, %lo(D_800483C8) # addiu $a2, $a2, -0x7c04 +/* 0F4B98 7F0C0028 10400042 */ beqz $v0, .Ljp7F0C0134 +/* 0F4B9C 7F0C002C ACC20000 */ sw $v0, ($a2) +/* 0F4BA0 7F0C0030 00001825 */ move $v1, $zero +/* 0F4BA4 7F0C0034 24052EE0 */ li $a1, 12000 +/* 0F4BA8 7F0C0038 240400FF */ li $a0, 255 +.Ljp7F0C003C: +/* 0F4BAC 7F0C003C 8CCE0000 */ lw $t6, ($a2) +/* 0F4BB0 7F0C0040 01C3C821 */ addu $t9, $t6, $v1 +/* 0F4BB4 7F0C0044 A3240000 */ sb $a0, ($t9) +/* 0F4BB8 7F0C0048 8CD80000 */ lw $t8, ($a2) +/* 0F4BBC 7F0C004C 03031021 */ addu $v0, $t8, $v1 +/* 0F4BC0 7F0C0050 904F0001 */ lbu $t7, 1($v0) +/* 0F4BC4 7F0C0054 31EEFF1F */ andi $t6, $t7, 0xff1f +/* 0F4BC8 7F0C0058 35D90020 */ ori $t9, $t6, 0x20 +/* 0F4BCC 7F0C005C A0590001 */ sb $t9, 1($v0) +/* 0F4BD0 7F0C0060 8CD80000 */ lw $t8, ($a2) +/* 0F4BD4 7F0C0064 03031021 */ addu $v0, $t8, $v1 +/* 0F4BD8 7F0C0068 904F0001 */ lbu $t7, 1($v0) +/* 0F4BDC 7F0C006C 31EEFFE3 */ andi $t6, $t7, 0xffe3 +/* 0F4BE0 7F0C0070 35D90004 */ ori $t9, $t6, 4 +/* 0F4BE4 7F0C0074 A0590001 */ sb $t9, 1($v0) +/* 0F4BE8 7F0C0078 8CD80000 */ lw $t8, ($a2) +/* 0F4BEC 7F0C007C 03037821 */ addu $t7, $t8, $v1 +/* 0F4BF0 7F0C0080 A1E40004 */ sb $a0, 4($t7) +/* 0F4BF4 7F0C0084 8CCE0000 */ lw $t6, ($a2) +/* 0F4BF8 7F0C0088 01C31021 */ addu $v0, $t6, $v1 +/* 0F4BFC 7F0C008C 90590005 */ lbu $t9, 5($v0) +/* 0F4C00 7F0C0090 3338FF1F */ andi $t8, $t9, 0xff1f +/* 0F4C04 7F0C0094 370F0020 */ ori $t7, $t8, 0x20 +/* 0F4C08 7F0C0098 A04F0005 */ sb $t7, 5($v0) +/* 0F4C0C 7F0C009C 8CCE0000 */ lw $t6, ($a2) +/* 0F4C10 7F0C00A0 01C31021 */ addu $v0, $t6, $v1 +/* 0F4C14 7F0C00A4 90590005 */ lbu $t9, 5($v0) +/* 0F4C18 7F0C00A8 3338FFE3 */ andi $t8, $t9, 0xffe3 +/* 0F4C1C 7F0C00AC 370F0004 */ ori $t7, $t8, 4 +/* 0F4C20 7F0C00B0 A04F0005 */ sb $t7, 5($v0) +/* 0F4C24 7F0C00B4 8CCE0000 */ lw $t6, ($a2) +/* 0F4C28 7F0C00B8 01C3C821 */ addu $t9, $t6, $v1 +/* 0F4C2C 7F0C00BC A3240008 */ sb $a0, 8($t9) +/* 0F4C30 7F0C00C0 8CD80000 */ lw $t8, ($a2) +/* 0F4C34 7F0C00C4 03031021 */ addu $v0, $t8, $v1 +/* 0F4C38 7F0C00C8 904F0009 */ lbu $t7, 9($v0) +/* 0F4C3C 7F0C00CC 31EEFF1F */ andi $t6, $t7, 0xff1f +/* 0F4C40 7F0C00D0 35D90020 */ ori $t9, $t6, 0x20 +/* 0F4C44 7F0C00D4 A0590009 */ sb $t9, 9($v0) +/* 0F4C48 7F0C00D8 8CD80000 */ lw $t8, ($a2) +/* 0F4C4C 7F0C00DC 03031021 */ addu $v0, $t8, $v1 +/* 0F4C50 7F0C00E0 904F0009 */ lbu $t7, 9($v0) +/* 0F4C54 7F0C00E4 31EEFFE3 */ andi $t6, $t7, 0xffe3 +/* 0F4C58 7F0C00E8 35D90004 */ ori $t9, $t6, 4 +/* 0F4C5C 7F0C00EC A0590009 */ sb $t9, 9($v0) +/* 0F4C60 7F0C00F0 8CD80000 */ lw $t8, ($a2) +/* 0F4C64 7F0C00F4 03037821 */ addu $t7, $t8, $v1 +/* 0F4C68 7F0C00F8 A1E4000C */ sb $a0, 0xc($t7) +/* 0F4C6C 7F0C00FC 8CCE0000 */ lw $t6, ($a2) +/* 0F4C70 7F0C0100 01C31021 */ addu $v0, $t6, $v1 +/* 0F4C74 7F0C0104 9059000D */ lbu $t9, 0xd($v0) +/* 0F4C78 7F0C0108 3338FF1F */ andi $t8, $t9, 0xff1f +/* 0F4C7C 7F0C010C 370F0020 */ ori $t7, $t8, 0x20 +/* 0F4C80 7F0C0110 A04F000D */ sb $t7, 0xd($v0) +/* 0F4C84 7F0C0114 8CCE0000 */ lw $t6, ($a2) +/* 0F4C88 7F0C0118 01C31021 */ addu $v0, $t6, $v1 +/* 0F4C8C 7F0C011C 9059000D */ lbu $t9, 0xd($v0) +/* 0F4C90 7F0C0120 24630010 */ addiu $v1, $v1, 0x10 +/* 0F4C94 7F0C0124 3338FFE3 */ andi $t8, $t9, 0xffe3 +/* 0F4C98 7F0C0128 370F0004 */ ori $t7, $t8, 4 +/* 0F4C9C 7F0C012C 1465FFC3 */ bne $v1, $a1, .Ljp7F0C003C +/* 0F4CA0 7F0C0130 A04F000D */ sb $t7, 0xd($v0) +.Ljp7F0C0134: +/* 0F4CA4 7F0C0134 0FC246C7 */ jal get_debug_portal_flag +/* 0F4CA8 7F0C0138 00000000 */ nop +/* 0F4CAC 7F0C013C 10400003 */ beqz $v0, .Ljp7F0C014C +/* 0F4CB0 7F0C0140 00000000 */ nop +/* 0F4CB4 7F0C0144 0FC2FAB4 */ jal sub_GAME_7F0BDF10 +/* 0F4CB8 7F0C0148 00002025 */ move $a0, $zero +.Ljp7F0C014C: +/* 0F4CBC 7F0C014C 0FC2467D */ jal get_debug_limit_controller_input +/* 0F4CC0 7F0C0150 00000000 */ nop +/* 0F4CC4 7F0C0154 24010004 */ li $at, 4 +/* 0F4CC8 7F0C0158 10410006 */ beq $v0, $at, .Ljp7F0C0174 +/* 0F4CCC 7F0C015C 00002025 */ move $a0, $zero +/* 0F4CD0 7F0C0160 24010008 */ li $at, 8 +/* 0F4CD4 7F0C0164 1041001A */ beq $v0, $at, .Ljp7F0C01D0 +/* 0F4CD8 7F0C0168 00002025 */ move $a0, $zero +/* 0F4CDC 7F0C016C 10000031 */ b .Ljp7F0C0234 +/* 0F4CE0 7F0C0170 00000000 */ nop +.Ljp7F0C0174: +/* 0F4CE4 7F0C0174 0C003104 */ jal get_controller_buttons_pressed +/* 0F4CE8 7F0C0178 24050002 */ li $a1, 2 +/* 0F4CEC 7F0C017C 50400008 */ beql $v0, $zero, .Ljp7F0C01A0 +/* 0F4CF0 7F0C0180 00002025 */ move $a0, $zero +/* 0F4CF4 7F0C0184 0FC2C078 */ jal sub_GAME_7F0AF630 +/* 0F4CF8 7F0C0188 2404FFFF */ li $a0, -1 +/* 0F4CFC 7F0C018C 00002025 */ move $a0, $zero +/* 0F4D00 7F0C0190 00002825 */ move $a1, $zero +/* 0F4D04 7F0C0194 0FC2CE3A */ jal sub_GAME_7F0B2D38 +/* 0F4D08 7F0C0198 00003025 */ move $a2, $zero +/* 0F4D0C 7F0C019C 00002025 */ move $a0, $zero +.Ljp7F0C01A0: +/* 0F4D10 7F0C01A0 0C003104 */ jal get_controller_buttons_pressed +/* 0F4D14 7F0C01A4 24050001 */ li $a1, 1 +/* 0F4D18 7F0C01A8 10400022 */ beqz $v0, .Ljp7F0C0234 +/* 0F4D1C 7F0C01AC 00000000 */ nop +/* 0F4D20 7F0C01B0 0FC2C078 */ jal sub_GAME_7F0AF630 +/* 0F4D24 7F0C01B4 24040001 */ li $a0, 1 +/* 0F4D28 7F0C01B8 00002025 */ move $a0, $zero +/* 0F4D2C 7F0C01BC 00002825 */ move $a1, $zero +/* 0F4D30 7F0C01C0 0FC2CE3A */ jal sub_GAME_7F0B2D38 +/* 0F4D34 7F0C01C4 00003025 */ move $a2, $zero +/* 0F4D38 7F0C01C8 1000001A */ b .Ljp7F0C0234 +/* 0F4D3C 7F0C01CC 00000000 */ nop +.Ljp7F0C01D0: +/* 0F4D40 7F0C01D0 0C003104 */ jal get_controller_buttons_pressed +/* 0F4D44 7F0C01D4 24050002 */ li $a1, 2 +/* 0F4D48 7F0C01D8 50400004 */ beql $v0, $zero, .Ljp7F0C01EC +/* 0F4D4C 7F0C01DC 00002025 */ move $a0, $zero +/* 0F4D50 7F0C01E0 0FC08C46 */ jal sub_GAME_7F022E30 +/* 0F4D54 7F0C01E4 00000000 */ nop +/* 0F4D58 7F0C01E8 00002025 */ move $a0, $zero +.Ljp7F0C01EC: +/* 0F4D5C 7F0C01EC 0C003104 */ jal get_controller_buttons_pressed +/* 0F4D60 7F0C01F0 24050001 */ li $a1, 1 +/* 0F4D64 7F0C01F4 50400004 */ beql $v0, $zero, .Ljp7F0C0208 +/* 0F4D68 7F0C01F8 00002025 */ move $a0, $zero +/* 0F4D6C 7F0C01FC 0FC08C5E */ jal sub_GAME_7F022E90 +/* 0F4D70 7F0C0200 00000000 */ nop +/* 0F4D74 7F0C0204 00002025 */ move $a0, $zero +.Ljp7F0C0208: +/* 0F4D78 7F0C0208 0C003104 */ jal get_controller_buttons_pressed +/* 0F4D7C 7F0C020C 24050020 */ li $a1, 32 +/* 0F4D80 7F0C0210 50400004 */ beql $v0, $zero, .Ljp7F0C0224 +/* 0F4D84 7F0C0214 00002025 */ move $a0, $zero +/* 0F4D88 7F0C0218 0FC08C6C */ jal sub_GAME_7F022EC8 +/* 0F4D8C 7F0C021C 00000000 */ nop +/* 0F4D90 7F0C0220 00002025 */ move $a0, $zero +.Ljp7F0C0224: +/* 0F4D94 7F0C0224 0C0030DC */ jal get_controller_buttons_held +/* 0F4D98 7F0C0228 24050010 */ li $a1, 16 +/* 0F4D9C 7F0C022C 0FC08C72 */ jal sub_GAME_7F022EE0 +/* 0F4DA0 7F0C0230 0002202B */ sltu $a0, $zero, $v0 +.Ljp7F0C0234: +/* 0F4DA4 7F0C0234 0FC2467D */ jal get_debug_limit_controller_input +/* 0F4DA8 7F0C0238 00000000 */ nop +/* 0F4DAC 7F0C023C 2401000C */ li $at, 12 +/* 0F4DB0 7F0C0240 1041002E */ beq $v0, $at, .Ljp7F0C02FC +/* 0F4DB4 7F0C0244 00002025 */ move $a0, $zero +/* 0F4DB8 7F0C0248 2401000D */ li $at, 13 +/* 0F4DBC 7F0C024C 10410048 */ beq $v0, $at, .Ljp7F0C0370 +/* 0F4DC0 7F0C0250 00002025 */ move $a0, $zero +/* 0F4DC4 7F0C0254 24010038 */ li $at, 56 +/* 0F4DC8 7F0C0258 54410074 */ bnel $v0, $at, .Ljp7F0C042C +/* 0F4DCC 7F0C025C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4DD0 7F0C0260 0C0010EA */ jal get_D_8002329C +/* 0F4DD4 7F0C0264 00000000 */ nop +/* 0F4DD8 7F0C0268 0C0010E4 */ jal get_D_800232A0 +/* 0F4DDC 7F0C026C AFA20030 */ sw $v0, 0x30($sp) +/* 0F4DE0 7F0C0270 AFA2002C */ sw $v0, 0x2c($sp) +/* 0F4DE4 7F0C0274 00002025 */ move $a0, $zero +/* 0F4DE8 7F0C0278 0C0030DC */ jal get_controller_buttons_held +/* 0F4DEC 7F0C027C 24050004 */ li $a1, 4 +/* 0F4DF0 7F0C0280 10400004 */ beqz $v0, .Ljp7F0C0294 +/* 0F4DF4 7F0C0284 00002025 */ move $a0, $zero +/* 0F4DF8 7F0C0288 8FAE002C */ lw $t6, 0x2c($sp) +/* 0F4DFC 7F0C028C 25D90001 */ addiu $t9, $t6, 1 +/* 0F4E00 7F0C0290 AFB9002C */ sw $t9, 0x2c($sp) +.Ljp7F0C0294: +/* 0F4E04 7F0C0294 0C0030DC */ jal get_controller_buttons_held +/* 0F4E08 7F0C0298 24050008 */ li $a1, 8 +/* 0F4E0C 7F0C029C 10400004 */ beqz $v0, .Ljp7F0C02B0 +/* 0F4E10 7F0C02A0 00002025 */ move $a0, $zero +/* 0F4E14 7F0C02A4 8FB8002C */ lw $t8, 0x2c($sp) +/* 0F4E18 7F0C02A8 270FFFFF */ addiu $t7, $t8, -1 +/* 0F4E1C 7F0C02AC AFAF002C */ sw $t7, 0x2c($sp) +.Ljp7F0C02B0: +/* 0F4E20 7F0C02B0 0C0030DC */ jal get_controller_buttons_held +/* 0F4E24 7F0C02B4 24050001 */ li $a1, 1 +/* 0F4E28 7F0C02B8 10400004 */ beqz $v0, .Ljp7F0C02CC +/* 0F4E2C 7F0C02BC 00002025 */ move $a0, $zero +/* 0F4E30 7F0C02C0 8FAE0030 */ lw $t6, 0x30($sp) +/* 0F4E34 7F0C02C4 25D90001 */ addiu $t9, $t6, 1 +/* 0F4E38 7F0C02C8 AFB90030 */ sw $t9, 0x30($sp) +.Ljp7F0C02CC: +/* 0F4E3C 7F0C02CC 0C0030DC */ jal get_controller_buttons_held +/* 0F4E40 7F0C02D0 24050002 */ li $a1, 2 +/* 0F4E44 7F0C02D4 10400003 */ beqz $v0, .Ljp7F0C02E4 +/* 0F4E48 7F0C02D8 8FB80030 */ lw $t8, 0x30($sp) +/* 0F4E4C 7F0C02DC 270FFFFF */ addiu $t7, $t8, -1 +/* 0F4E50 7F0C02E0 AFAF0030 */ sw $t7, 0x30($sp) +.Ljp7F0C02E4: +/* 0F4E54 7F0C02E4 0C0010E7 */ jal set_D_8002329C +/* 0F4E58 7F0C02E8 8FA40030 */ lw $a0, 0x30($sp) +/* 0F4E5C 7F0C02EC 0C0010E1 */ jal set_D_800232A0 +/* 0F4E60 7F0C02F0 8FA4002C */ lw $a0, 0x2c($sp) +/* 0F4E64 7F0C02F4 1000004D */ b .Ljp7F0C042C +/* 0F4E68 7F0C02F8 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C02FC: +/* 0F4E6C 7F0C02FC 0C003104 */ jal get_controller_buttons_pressed +/* 0F4E70 7F0C0300 24050202 */ li $a1, 514 +/* 0F4E74 7F0C0304 50400004 */ beql $v0, $zero, .Ljp7F0C0318 +/* 0F4E78 7F0C0308 00002025 */ move $a0, $zero +/* 0F4E7C 7F0C030C 0FC2F97A */ jal music_append_play_endtheme +/* 0F4E80 7F0C0310 00000000 */ nop +/* 0F4E84 7F0C0314 00002025 */ move $a0, $zero +.Ljp7F0C0318: +/* 0F4E88 7F0C0318 0C003104 */ jal get_controller_buttons_pressed +/* 0F4E8C 7F0C031C 24050101 */ li $a1, 257 +/* 0F4E90 7F0C0320 50400004 */ beql $v0, $zero, .Ljp7F0C0334 +/* 0F4E94 7F0C0324 00002025 */ move $a0, $zero +/* 0F4E98 7F0C0328 0FC2F967 */ jal music_append_play_solo_death_short +/* 0F4E9C 7F0C032C 00000000 */ nop +/* 0F4EA0 7F0C0330 00002025 */ move $a0, $zero +.Ljp7F0C0334: +/* 0F4EA4 7F0C0334 0C003104 */ jal get_controller_buttons_pressed +/* 0F4EA8 7F0C0338 24050400 */ li $a1, 1024 +/* 0F4EAC 7F0C033C 50400004 */ beql $v0, $zero, .Ljp7F0C0350 +/* 0F4EB0 7F0C0340 00002025 */ move $a0, $zero +/* 0F4EB4 7F0C0344 0C001BF8 */ jal musicTrack1Stop +/* 0F4EB8 7F0C0348 00000000 */ nop +/* 0F4EBC 7F0C034C 00002025 */ move $a0, $zero +.Ljp7F0C0350: +/* 0F4EC0 7F0C0350 0C003104 */ jal get_controller_buttons_pressed +/* 0F4EC4 7F0C0354 24054000 */ li $a1, 16384 +/* 0F4EC8 7F0C0358 50400034 */ beql $v0, $zero, .Ljp7F0C042C +/* 0F4ECC 7F0C035C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4ED0 7F0C0360 0C001C2C */ jal musicTrack1Tempo +/* 0F4ED4 7F0C0364 00000000 */ nop +/* 0F4ED8 7F0C0368 10000030 */ b .Ljp7F0C042C +/* 0F4EDC 7F0C036C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C0370: +/* 0F4EE0 7F0C0370 0C003104 */ jal get_controller_buttons_pressed +/* 0F4EE4 7F0C0374 24050622 */ li $a1, 1570 +/* 0F4EE8 7F0C0378 1040000B */ beqz $v0, .Ljp7F0C03A8 +/* 0F4EEC 7F0C037C 3C058005 */ lui $a1, 0x8005 +/* 0F4EF0 7F0C0380 84A58418 */ lh $a1, %lo(D_800483E4)($a1) +/* 0F4EF4 7F0C0384 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0F4EF8 7F0C0388 3C018005 */ lui $at, %hi(D_800483E4) # $at, 0x8005 +/* 0F4EFC 7F0C038C 24A5FFFF */ addiu $a1, $a1, -1 +/* 0F4F00 7F0C0390 00057400 */ sll $t6, $a1, 0x10 +/* 0F4F04 7F0C0394 000E2C03 */ sra $a1, $t6, 0x10 +/* 0F4F08 7F0C0398 A4258418 */ sh $a1, %lo(D_800483E4)($at) +/* 0F4F0C 7F0C039C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0F4F10 7F0C03A0 0C002386 */ jal play_sfx_a1 +/* 0F4F14 7F0C03A4 00003025 */ move $a2, $zero +.Ljp7F0C03A8: +/* 0F4F18 7F0C03A8 00002025 */ move $a0, $zero +/* 0F4F1C 7F0C03AC 0C003104 */ jal get_controller_buttons_pressed +/* 0F4F20 7F0C03B0 24050911 */ li $a1, 2321 +/* 0F4F24 7F0C03B4 1040000B */ beqz $v0, .Ljp7F0C03E4 +/* 0F4F28 7F0C03B8 3C058005 */ lui $a1, 0x8005 +/* 0F4F2C 7F0C03BC 84A58418 */ lh $a1, %lo(D_800483E4)($a1) +/* 0F4F30 7F0C03C0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0F4F34 7F0C03C4 3C018005 */ lui $at, %hi(D_800483E4) # $at, 0x8005 +/* 0F4F38 7F0C03C8 24A50001 */ addiu $a1, $a1, 1 +/* 0F4F3C 7F0C03CC 0005C400 */ sll $t8, $a1, 0x10 +/* 0F4F40 7F0C03D0 00182C03 */ sra $a1, $t8, 0x10 +/* 0F4F44 7F0C03D4 A4258418 */ sh $a1, %lo(D_800483E4)($at) +/* 0F4F48 7F0C03D8 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0F4F4C 7F0C03DC 0C002386 */ jal play_sfx_a1 +/* 0F4F50 7F0C03E0 00003025 */ move $a2, $zero +.Ljp7F0C03E4: +/* 0F4F54 7F0C03E4 00002025 */ move $a0, $zero +/* 0F4F58 7F0C03E8 0C003104 */ jal get_controller_buttons_pressed +/* 0F4F5C 7F0C03EC 24050004 */ li $a1, 4 +/* 0F4F60 7F0C03F0 50400004 */ beql $v0, $zero, .Ljp7F0C0404 +/* 0F4F64 7F0C03F4 00002025 */ move $a0, $zero +/* 0F4F68 7F0C03F8 0C00244D */ jal sfx_c_70009124 +/* 0F4F6C 7F0C03FC 00000000 */ nop +/* 0F4F70 7F0C0400 00002025 */ move $a0, $zero +.Ljp7F0C0404: +/* 0F4F74 7F0C0404 0C003104 */ jal get_controller_buttons_pressed +/* 0F4F78 7F0C0408 24050008 */ li $a1, 8 +/* 0F4F7C 7F0C040C 10400006 */ beqz $v0, .Ljp7F0C0428 +/* 0F4F80 7F0C0410 3C058005 */ lui $a1, %hi(D_800483E4) # $a1, 0x8005 +/* 0F4F84 7F0C0414 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0F4F88 7F0C0418 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0F4F8C 7F0C041C 84A58418 */ lh $a1, %lo(D_800483E4)($a1) +/* 0F4F90 7F0C0420 0C002386 */ jal play_sfx_a1 +/* 0F4F94 7F0C0424 00003025 */ move $a2, $zero +.Ljp7F0C0428: +/* 0F4F98 7F0C0428 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C042C: +/* 0F4F9C 7F0C042C 27BD0198 */ addiu $sp, $sp, 0x198 +/* 0F4FA0 7F0C0430 03E00008 */ jr $ra +/* 0F4FA4 7F0C0434 00000000 */ nop +) +#endif + +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F0BF800(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BF800 +/* 0F4330 7F0BF800 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0F4334 7F0BF804 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F4338 7F0BF808 0FC26C54 */ jal get_cur_playernum +/* 0F433C 7F0BF80C 00000000 */ nop +/* 0F4340 7F0BF810 0FC2464F */ jal cheat_buttons_mp_related +/* 0F4344 7F0BF814 A3A2002F */ sb $v0, 0x2f($sp) +/* 0F4348 7F0BF818 0FC243C2 */ jal get_debug_freeze_processing +/* 0F434C 7F0BF81C 00000000 */ nop +/* 0F4350 7F0BF820 10400007 */ beqz $v0, .L7F0BF840 +/* 0F4354 7F0BF824 24010001 */ li $at, 1 +/* 0F4358 7F0BF828 1041002D */ beq $v0, $at, .L7F0BF8E0 +/* 0F435C 7F0BF82C 24010002 */ li $at, 2 +/* 0F4360 7F0BF830 1041004C */ beq $v0, $at, .L7F0BF964 +/* 0F4364 7F0BF834 00000000 */ nop +/* 0F4368 7F0BF838 1000006B */ b .L7F0BF9E8 +/* 0F436C 7F0BF83C 00000000 */ nop +.L7F0BF840: +/* 0F4370 7F0BF840 0FC243C5 */ jal get_debug_limit_controller_input +/* 0F4374 7F0BF844 00000000 */ nop +/* 0F4378 7F0BF848 10400009 */ beqz $v0, .L7F0BF870 +/* 0F437C 7F0BF84C 00000000 */ nop +/* 0F4380 7F0BF850 0FC243C5 */ jal get_debug_limit_controller_input +/* 0F4384 7F0BF854 00000000 */ nop +/* 0F4388 7F0BF858 2401003B */ li $at, 59 +/* 0F438C 7F0BF85C 14410013 */ bne $v0, $at, .L7F0BF8AC +/* 0F4390 7F0BF860 3C0E8003 */ lui $t6, %hi(D_80036ABC) +/* 0F4394 7F0BF864 8DCE6ABC */ lw $t6, %lo(D_80036ABC)($t6) +/* 0F4398 7F0BF868 05C10010 */ bgez $t6, .L7F0BF8AC +/* 0F439C 7F0BF86C 00000000 */ nop +.L7F0BF870: +/* 0F43A0 7F0BF870 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0F43A4 7F0BF874 83A4002F */ lb $a0, 0x2f($sp) +/* 0F43A8 7F0BF878 A3A20018 */ sb $v0, 0x18($sp) +/* 0F43AC 7F0BF87C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0F43B0 7F0BF880 83A4002F */ lb $a0, 0x2f($sp) +/* 0F43B4 7F0BF884 A3A20019 */ sb $v0, 0x19($sp) +/* 0F43B8 7F0BF888 83A4002F */ lb $a0, 0x2f($sp) +/* 0F43BC 7F0BF88C 0C0030C3 */ jal get_controller_buttons_held +/* 0F43C0 7F0BF890 3405FFFF */ li $a1, 65535 +/* 0F43C4 7F0BF894 83A40018 */ lb $a0, 0x18($sp) +/* 0F43C8 7F0BF898 83A50019 */ lb $a1, 0x19($sp) +/* 0F43CC 7F0BF89C 0FC24420 */ jal sub_GAME_7F091080 +/* 0F43D0 7F0BF8A0 3046FFFF */ andi $a2, $v0, 0xffff +/* 0F43D4 7F0BF8A4 10000050 */ b .L7F0BF9E8 +/* 0F43D8 7F0BF8A8 00000000 */ nop +.L7F0BF8AC: +/* 0F43DC 7F0BF8AC 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0F43E0 7F0BF8B0 83A4002F */ lb $a0, 0x2f($sp) +/* 0F43E4 7F0BF8B4 A3A20018 */ sb $v0, 0x18($sp) +/* 0F43E8 7F0BF8B8 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0F43EC 7F0BF8BC 83A4002F */ lb $a0, 0x2f($sp) +/* 0F43F0 7F0BF8C0 00022E00 */ sll $a1, $v0, 0x18 +/* 0F43F4 7F0BF8C4 00057E03 */ sra $t7, $a1, 0x18 +/* 0F43F8 7F0BF8C8 01E02825 */ move $a1, $t7 +/* 0F43FC 7F0BF8CC 83A40018 */ lb $a0, 0x18($sp) +/* 0F4400 7F0BF8D0 0FC24420 */ jal sub_GAME_7F091080 +/* 0F4404 7F0BF8D4 00003025 */ move $a2, $zero +/* 0F4408 7F0BF8D8 10000043 */ b .L7F0BF9E8 +/* 0F440C 7F0BF8DC 00000000 */ nop +.L7F0BF8E0: +/* 0F4410 7F0BF8E0 0FC243C5 */ jal get_debug_limit_controller_input +/* 0F4414 7F0BF8E4 00000000 */ nop +/* 0F4418 7F0BF8E8 24010001 */ li $at, 1 +/* 0F441C 7F0BF8EC 14410010 */ bne $v0, $at, .L7F0BF930 +/* 0F4420 7F0BF8F0 00000000 */ nop +/* 0F4424 7F0BF8F4 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0F4428 7F0BF8F8 83A4002F */ lb $a0, 0x2f($sp) +/* 0F442C 7F0BF8FC A3A20018 */ sb $v0, 0x18($sp) +/* 0F4430 7F0BF900 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0F4434 7F0BF904 83A4002F */ lb $a0, 0x2f($sp) +/* 0F4438 7F0BF908 A3A20019 */ sb $v0, 0x19($sp) +/* 0F443C 7F0BF90C 83A4002F */ lb $a0, 0x2f($sp) +/* 0F4440 7F0BF910 0C0030C3 */ jal get_controller_buttons_held +/* 0F4444 7F0BF914 3405FFFF */ li $a1, 65535 +/* 0F4448 7F0BF918 83A40018 */ lb $a0, 0x18($sp) +/* 0F444C 7F0BF91C 83A50019 */ lb $a1, 0x19($sp) +/* 0F4450 7F0BF920 0FC2CB4E */ jal sub_GAME_7F0B2D38 +/* 0F4454 7F0BF924 3046FFFF */ andi $a2, $v0, 0xffff +/* 0F4458 7F0BF928 1000002F */ b .L7F0BF9E8 +/* 0F445C 7F0BF92C 00000000 */ nop +.L7F0BF930: +/* 0F4460 7F0BF930 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0F4464 7F0BF934 83A4002F */ lb $a0, 0x2f($sp) +/* 0F4468 7F0BF938 A3A20018 */ sb $v0, 0x18($sp) +/* 0F446C 7F0BF93C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0F4470 7F0BF940 83A4002F */ lb $a0, 0x2f($sp) +/* 0F4474 7F0BF944 00022E00 */ sll $a1, $v0, 0x18 +/* 0F4478 7F0BF948 0005C603 */ sra $t8, $a1, 0x18 +/* 0F447C 7F0BF94C 03002825 */ move $a1, $t8 +/* 0F4480 7F0BF950 83A40018 */ lb $a0, 0x18($sp) +/* 0F4484 7F0BF954 0FC2CB4E */ jal sub_GAME_7F0B2D38 +/* 0F4488 7F0BF958 00003025 */ move $a2, $zero +/* 0F448C 7F0BF95C 10000022 */ b .L7F0BF9E8 +/* 0F4490 7F0BF960 00000000 */ nop +.L7F0BF964: +/* 0F4494 7F0BF964 0FC243C5 */ jal get_debug_limit_controller_input +/* 0F4498 7F0BF968 00000000 */ nop +/* 0F449C 7F0BF96C 24010002 */ li $at, 2 +/* 0F44A0 7F0BF970 14410010 */ bne $v0, $at, .L7F0BF9B4 +/* 0F44A4 7F0BF974 00000000 */ nop +/* 0F44A8 7F0BF978 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0F44AC 7F0BF97C 83A4002F */ lb $a0, 0x2f($sp) +/* 0F44B0 7F0BF980 A3A20018 */ sb $v0, 0x18($sp) +/* 0F44B4 7F0BF984 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0F44B8 7F0BF988 83A4002F */ lb $a0, 0x2f($sp) +/* 0F44BC 7F0BF98C A3A20019 */ sb $v0, 0x19($sp) +/* 0F44C0 7F0BF990 83A4002F */ lb $a0, 0x2f($sp) +/* 0F44C4 7F0BF994 0C0030C3 */ jal get_controller_buttons_held +/* 0F44C8 7F0BF998 3405FFFF */ li $a1, 65535 +/* 0F44CC 7F0BF99C 83A40018 */ lb $a0, 0x18($sp) +/* 0F44D0 7F0BF9A0 83A50019 */ lb $a1, 0x19($sp) +/* 0F44D4 7F0BF9A4 0FC21BE7 */ jal possibly_reset_viewport_options_for_player +/* 0F44D8 7F0BF9A8 3046FFFF */ andi $a2, $v0, 0xffff +/* 0F44DC 7F0BF9AC 1000000C */ b .L7F0BF9E0 +/* 0F44E0 7F0BF9B0 00000000 */ nop +.L7F0BF9B4: +/* 0F44E4 7F0BF9B4 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0F44E8 7F0BF9B8 83A4002F */ lb $a0, 0x2f($sp) +/* 0F44EC 7F0BF9BC A3A20018 */ sb $v0, 0x18($sp) +/* 0F44F0 7F0BF9C0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0F44F4 7F0BF9C4 83A4002F */ lb $a0, 0x2f($sp) +/* 0F44F8 7F0BF9C8 00022E00 */ sll $a1, $v0, 0x18 +/* 0F44FC 7F0BF9CC 0005CE03 */ sra $t9, $a1, 0x18 +/* 0F4500 7F0BF9D0 03202825 */ move $a1, $t9 +/* 0F4504 7F0BF9D4 83A40018 */ lb $a0, 0x18($sp) +/* 0F4508 7F0BF9D8 0FC21BE7 */ jal possibly_reset_viewport_options_for_player +/* 0F450C 7F0BF9DC 00003025 */ move $a2, $zero +.L7F0BF9E0: +/* 0F4510 7F0BF9E0 0FC30BA0 */ jal sub_GAME_7F0C2E80 +/* 0F4514 7F0BF9E4 00000000 */ nop +.L7F0BF9E8: +/* 0F4518 7F0BF9E8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0F451C 7F0BF9EC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0F4520 7F0BF9F0 8C4300A8 */ lw $v1, 0xa8($v0) +/* 0F4524 7F0BF9F4 C4460408 */ lwc1 $f6, 0x408($v0) +/* 0F4528 7F0BF9F8 C44A0410 */ lwc1 $f10, 0x410($v0) +/* 0F452C 7F0BF9FC C4640008 */ lwc1 $f4, 8($v1) +/* 0F4530 7F0BFA00 C4680010 */ lwc1 $f8, 0x10($v1) +/* 0F4534 7F0BFA04 46062001 */ sub.s $f0, $f4, $f6 +/* 0F4538 7F0BFA08 460A4081 */ sub.s $f2, $f8, $f10 +/* 0F453C 7F0BFA0C 46000402 */ mul.s $f16, $f0, $f0 +/* 0F4540 7F0BFA10 00000000 */ nop +/* 0F4544 7F0BFA14 46021482 */ mul.s $f18, $f2, $f2 +/* 0F4548 7F0BFA18 0C007DF8 */ jal sqrtf +/* 0F454C 7F0BFA1C 46128300 */ add.s $f12, $f16, $f18 +/* 0F4550 7F0BFA20 3C028008 */ lui $v0, %hi(pPlayersPerm) +/* 0F4554 7F0BFA24 8C42A0B4 */ lw $v0, %lo(pPlayersPerm)($v0) +/* 0F4558 7F0BFA28 C4440038 */ lwc1 $f4, 0x38($v0) +/* 0F455C 7F0BFA2C 46002180 */ add.s $f6, $f4, $f0 +/* 0F4560 7F0BFA30 0FC051D6 */ jal get_scenario +/* 0F4564 7F0BFA34 E4460038 */ swc1 $f6, 0x38($v0) +/* 0F4568 7F0BFA38 24010002 */ li $at, 2 +/* 0F456C 7F0BFA3C 14410024 */ bne $v0, $at, .L7F0BFAD0 +/* 0F4570 7F0BFA40 00000000 */ nop +/* 0F4574 7F0BFA44 0FC233E0 */ jal bondinvIsAliveWithFlag +/* 0F4578 7F0BFA48 00000000 */ nop +/* 0F457C 7F0BFA4C 1040001C */ beqz $v0, .L7F0BFAC0 +/* 0F4580 7F0BFA50 00000000 */ nop +/* 0F4584 7F0BFA54 0FC17674 */ jal get_item_in_hand +/* 0F4588 7F0BFA58 00002025 */ move $a0, $zero +/* 0F458C 7F0BFA5C 24010058 */ li $at, 88 +/* 0F4590 7F0BFA60 1041000B */ beq $v0, $at, .L7F0BFA90 +/* 0F4594 7F0BFA64 00002025 */ move $a0, $zero +/* 0F4598 7F0BFA68 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0F459C 7F0BFA6C 24050058 */ li $a1, 88 +/* 0F45A0 7F0BFA70 3C028008 */ lui $v0, %hi(pPlayer) +/* 0F45A4 7F0BFA74 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0F45A8 7F0BFA78 24010002 */ li $at, 2 +/* 0F45AC 7F0BFA7C 24090005 */ li $t1, 5 +/* 0F45B0 7F0BFA80 8C480894 */ lw $t0, 0x894($v0) +/* 0F45B4 7F0BFA84 15010002 */ bne $t0, $at, .L7F0BFA90 +/* 0F45B8 7F0BFA88 00000000 */ nop +/* 0F45BC 7F0BFA8C AC490894 */ sw $t1, 0x894($v0) +.L7F0BFA90: +/* 0F45C0 7F0BFA90 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 0F45C4 7F0BFA94 2463A0B4 */ addiu $v1, %lo(pPlayersPerm) # addiu $v1, $v1, -0x5f4c +/* 0F45C8 7F0BFA98 8C620000 */ lw $v0, ($v1) +/* 0F45CC 7F0BFA9C 3C0B8005 */ lui $t3, %hi(clock_timer) +/* 0F45D0 7F0BFAA0 8D6B8374 */ lw $t3, %lo(clock_timer)($t3) +/* 0F45D4 7F0BFAA4 8C4A0060 */ lw $t2, 0x60($v0) +/* 0F45D8 7F0BFAA8 240D0001 */ li $t5, 1 +/* 0F45DC 7F0BFAAC 014B6021 */ addu $t4, $t2, $t3 +/* 0F45E0 7F0BFAB0 AC4C0060 */ sw $t4, 0x60($v0) +/* 0F45E4 7F0BFAB4 8C6E0000 */ lw $t6, ($v1) +/* 0F45E8 7F0BFAB8 10000015 */ b .L7F0BFB10 +/* 0F45EC 7F0BFABC A1CD0069 */ sb $t5, 0x69($t6) +.L7F0BFAC0: +/* 0F45F0 7F0BFAC0 3C0F8008 */ lui $t7, %hi(pPlayersPerm) +/* 0F45F4 7F0BFAC4 8DEFA0B4 */ lw $t7, %lo(pPlayersPerm)($t7) +/* 0F45F8 7F0BFAC8 10000011 */ b .L7F0BFB10 +/* 0F45FC 7F0BFACC A1E00069 */ sb $zero, 0x69($t7) +.L7F0BFAD0: +/* 0F4600 7F0BFAD0 0FC051D6 */ jal get_scenario +/* 0F4604 7F0BFAD4 00000000 */ nop +/* 0F4608 7F0BFAD8 24010003 */ li $at, 3 +/* 0F460C 7F0BFADC 5441000D */ bnel $v0, $at, .L7F0BFB14 +/* 0F4610 7F0BFAE0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4614 7F0BFAE4 0FC233F0 */ jal checkforgoldengun +/* 0F4618 7F0BFAE8 00000000 */ nop +/* 0F461C 7F0BFAEC 10400006 */ beqz $v0, .L7F0BFB08 +/* 0F4620 7F0BFAF0 3C088008 */ lui $t0, %hi(pPlayersPerm) +/* 0F4624 7F0BFAF4 3C198008 */ lui $t9, %hi(pPlayersPerm) +/* 0F4628 7F0BFAF8 8F39A0B4 */ lw $t9, %lo(pPlayersPerm)($t9) +/* 0F462C 7F0BFAFC 24180001 */ li $t8, 1 +/* 0F4630 7F0BFB00 10000003 */ b .L7F0BFB10 +/* 0F4634 7F0BFB04 A3380069 */ sb $t8, 0x69($t9) +.L7F0BFB08: +/* 0F4638 7F0BFB08 8D08A0B4 */ lw $t0, %lo(pPlayersPerm)($t0) +/* 0F463C 7F0BFB0C A1000069 */ sb $zero, 0x69($t0) +.L7F0BFB10: +/* 0F4640 7F0BFB10 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BFB14: +/* 0F4644 7F0BFB14 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0F4648 7F0BFB18 03E00008 */ jr $ra +/* 0F464C 7F0BFB1C 00000000 */ nop +) +#endif + + + + + +void unload_stage_text_data(void) { + if (D_800483A0 != 0) + { + if (sfxGetArg0Unk3F(D_800483A0) != 0) + { + sfxDeactivate(D_800483A0); + } + } + if (current_stage_to_load != 0x5a) + { + blank_text_bank(get_textbank_number_for_stagenum(current_stage_to_load)); + sub_GAME_7F007770(); + } + cheatDisableAllCheats(); + cleanupGuardData(); + cleanupObjectSounds(); + cleanupExplosions(); + sub_GAME_7F007920(); + cleanup_REMOVED_(); + cleanupAlarms(); + cleanupObjects(current_stage_to_load); + cleanupObjectives(); + cleanupSFXRelated(); + cleanupplayersoundrelated(); + sub_GAME_7F0C1268(); + sub_GAME_7F0B47E0(); +} + + +void set_controls_locked_flag(s32 arg0) { + #ifdef VERSION_JP + if ((arg0 != 0) && (controls_locked_flag == 0)) { + reset_cont_rumble_detect(); + } + #endif + controls_locked_flag = arg0; +} + + +s32 get_controls_locked_flag(void) { + + return controls_locked_flag; +} + + +DIFFICULTY get_current_difficulty(void) { + return difficulty_0; +} + + +void set_difficulty(s32 arg0) { + difficulty_0 = arg0; +} + +void set_mp_time(s32 arg0) { + mp_time = arg0; +} + + +void set_mp_point(s32 arg0) { + mp_point = arg0; +} + + +f32 get_cur_mp_sec(void) { + return cur_mp_sec; +} + + +f32 get_cur_mp_min(void) { + return cur_mp_min; +} + + +f32 get_stage_time_sec(void) { + return stage_time_sec; +} + + +f32 get_poweron_time_sec(void) { + return poweron_time_sec; +} + + diff --git a/src/game/lvl.h b/src/game/lvl.h new file mode 100644 index 0000000..8d4958b --- /dev/null +++ b/src/game/lvl.h @@ -0,0 +1,25 @@ +#ifndef _LVL_H_ +#define _LVL_H_ +#include "ultra64.h" + +struct ramrom_struct { + u32 *address; + u32 unk; +}; + +extern s32 D_800483C4; +extern s32 clock_timer; +extern s32 global_timer; +extern f32 global_timer_delta; +extern u32 *ptr_jfont_DL; +extern s32 dword_CODE_bss_8008C264; +extern s32 dword_CODE_bss_8008C268; +extern s32 dword_CODE_bss_8008C26C; +extern char ramrom_data_target[0x380]; +extern s32 record_slot_num; +extern s32 *address_demo_loaded; +extern s32 dword_CODE_bss_8008C5F8; + +void lvInitDebugNoticeList(void); + +#endif diff --git a/src/game/lvl_text.c b/src/game/lvl_text.c new file mode 100644 index 0000000..ecdccc1 --- /dev/null +++ b/src/game/lvl_text.c @@ -0,0 +1,895 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "game/lvl_text.h" + +// bss +//CODE.bss:8008C640 +s32 ptr_text; +//CODE.bss:8008C644 +s32 table_text_pointers; +//8008C648 +char dword_CODE_bss_8008C648[0x90]; +//CODE.bss:8008C6D8 +s32 dword_CODE_bss_8008C6D8; +//CODE.bss:8008C6DC +s32 dword_CODE_bss_8008C6DC; +//CODE.bss:8008C6E0 +s32 dword_CODE_bss_8008C6E0; +//CODE.bss:8008C6E4 +s32 dword_CODE_bss_8008C6E4; +//CODE.bss:8008C6E8 +s32 dword_CODE_bss_8008C6E8; +//CODE.bss:8008C6EC +s32 dword_CODE_bss_8008C6EC; +//CODE.bss:8008C6F0 +s32 dword_CODE_bss_8008C6F0; +//CODE.bss:8008C6F4 +s32 ptr_j_char_data_buf; +//CODE.bss:8008C6F8 +s32 ptr_j_char_registry; + + +#ifdef VERSION_JP +s32 j_text_trigger = 1; +#else +s32 j_text_trigger = 0; +#endif + +void *LnameX_lookuptable[] = { + NULL, NULL, /* Null (unused) */ + "LameE", "LameJ", /* Library (multi) */ + "LarchE", "LarchJ", /* Archives */ + "LarkE", "LarkJ", /* Facility */ + "LashE", "LashJ", /* Stack (multi) */ + "LaztE", "LaztJ", /* Aztec */ + "LcatE", "LcatJ", /* Citadel (multi) */ + "LcaveE", "LcaveJ", /* Caverns */ + "LarecE", "LarecJ", /* Control */ + "LcradE", "LcradJ", /* Cradle */ + "LcrypE", "LcrypJ", /* Egypt */ + "LdamE", "LdamJ", /* Dam */ + "LdepoE", "LdepoJ", /* Depot */ + "LdestE", "LdestJ", /* Frigate */ + "LdishE", "LdishJ", /* Temple (multi) */ + "LearE", "LearJ", /* Ear (unused) */ + "LeldE", "LeldJ", /* Eld (unused) */ + "LimpE", "LimpJ", /* Basement (multi) */ + "LjunE", "LjunJ", /* Jungle */ + "LleeE", "LleeJ", /* Lee (unused) */ + "LlenE", "LlenJ", /* Cuba */ + "LlipE", "LlipJ", /* Lip (unused) */ + "LlueE", "LlueJ", /* Lue (unused) */ + "LoatE", "LoatJ", /* Cave (multi) */ + "LpamE", "LpamJ", /* Pam (unused) */ + "LpeteE", "LpeteJ", /* Streets */ + "LrefE", "LrefJ", /* Complex (multi) */ + "LritE", "LritJ", /* Rit (unused) */ + "LrunE", "LrunJ", /* Runway */ + "LsevbE", "LsevbJ", /* Bunker 2 */ + "LsevE", "LsevJ", /* Bunker 1 */ + "LsevxE", "LsevxJ", /* Surface 1 */ + "LsevxbE", "LsevxbJ", /* Surface 2 */ + "LshoE", "LshoJ", /* Sho (unused) */ + "LsiloE", "LsiloJ", /* Silo */ + "LstatE", "LstatJ", /* Statue */ + "LtraE", "LtraJ", /* Train */ + "LwaxE", "LwaxJ", /* Wax (unused) */ + "LgunE", "LgunJ", /* Guns */ + "LtitleE", "LtitleJ", /* Stage and menu titles */ + "LmpmenuE", "LmpmenuJ", /* Multi menus */ + "LpropobjE", "LpropobjJ", /* In-game pickups */ + "LmpweaponsE", "LmpweaponsJ", /* Multi weapon select */ + "LoptionsE", "LoptionsJ", /* Solo in-game menus */ + "LmiscE", "LmiscJ"}; /* Cheat options */ + +LEVELID get_textbank_number_for_stagenum(LEVELID level) +{ + LEVELID return_id; + + switch(level) + { + case LEVELID_DAM: + return_id = LDAM; + break; + case LEVELID_FACILITY: + return_id = LARK; + break; + case LEVELID_RUNWAY: + return_id = LRUN; + break; + case LEVELID_SURFACE: + return_id = LSEVX; + break; + case LEVELID_BUNKER1: + return_id = LSEV; + break; + case LEVELID_SILO: + return_id = LSILO; + break; + case LEVELID_FRIGATE: + return_id = LDEST; + break; + case LEVELID_SURFACE2: + return_id = LSEVXB; + break; + case LEVELID_BUNKER2: + return_id = LSEVB; + break; + case LEVELID_STATUE: + return_id = LSTAT; + break; + case LEVELID_ARCHIVES: + return_id = LARCH; + break; + case LEVELID_STREETS: + return_id = LPETE; + break; + case LEVELID_DEPOT: + return_id = LDEPO; + break; + case LEVELID_TRAIN: + return_id = LTRA; + break; + case LEVELID_JUNGLE: + return_id = LJUN; + break; + case LEVELID_CONTROL: + return_id = LAREC; + break; + case LEVELID_CAVERNS: + return_id = LCAVE; + break; + case LEVELID_CRADLE: + return_id = LCRAD; + break; + case LEVELID_AZTEC: + return_id = LAZT; + break; + case LEVELID_EGYPT: + return_id = LCRYP; + break; + case LEVELID_TEMPLE: + return_id = LDISH; + break; + case LEVELID_COMPLEX: + return_id = LREF; + break; + case LEVELID_LIBRARY: + return_id = LAME; + break; + case LEVELID_BASEMENT: + return_id = LIMP; + break; + case LEVELID_STACK: + return_id = LASH; + break; + case LEVELID_CAVES: + return_id = LOAT; + break; + case LEVELID_CUBA: + return_id = LLEN; + break; + default: + { + /* infinite loop on invalid text bank */ + while(1) {}; + } + } + + return return_id; +} + + +#ifdef NONMATCHING +void init_LnameX(void) + +{ + undefined *puVar1; + u8 **ppuVar2; + int iVar3; + + if (j_text_trigger != 0) { + ptr_char_data_buf = mempAllocBytesInBank(0x2e80,'\x06'); + ptr_char_registry = mempAllocBytesInBank(0x100,'\x06'); + iVar3 = 0; + do { + ptr_char_registry[iVar3] = ptr_char_registry[iVar3] & 0x3f; + *(ushort *)(ptr_char_registry + iVar3) = *(ushort *)(ptr_char_registry + iVar3) | 0x3fff; + (ptr_char_registry + iVar3)[2] = (ptr_char_registry + iVar3)[2] & 0x3f; + *(ushort *)(ptr_char_registry + iVar3 + 2) = *(ushort *)(ptr_char_registry + iVar3 + 2) | 0x3fff; + (ptr_char_registry + iVar3)[4] = (ptr_char_registry + iVar3)[4] & 0x3f; + *(ushort *)(ptr_char_registry + iVar3 + 4) = *(ushort *)(ptr_char_registry + iVar3 + 4) | 0x3fff; + (ptr_char_registry + iVar3)[6] = (ptr_char_registry + iVar3)[6] & 0x3f; + puVar1 = ptr_char_registry + iVar3; + iVar3 += 8; + *(ushort *)(puVar1 + 6) = *(ushort *)(puVar1 + 6) | 0x3fff; + } while (iVar3 != 0xf8); + } + + ptr_text = 0; + ppuVar2 = (u8 **)table_text_pointers; + do { + ppuVar2 = ppuVar2 + 4; + ppuVar2[1] = NULL; + ppuVar2[2] = NULL; + ppuVar2[3] = NULL; + *ppuVar2 = NULL; + ppuVar2 = ppuVar2; + } while (ppuVar2 != &ptr_char_data_buf); + table_text_pointers[37] = _load_resource_named_to_membank((&ptr_LgunX)[j_text_trigger],1,0x100,6); + table_text_pointers[38] = _load_resource_named_to_membank((&ptr_LtitleX)[j_text_trigger],1,0x100,6); + table_text_pointers[39] = _load_resource_named_to_membank((&ptr_LmpmenuX)[j_text_trigger],1,0x100,6); + table_text_pointers[40] = _load_resource_named_to_membank((&ptr_LpropobjX)[j_text_trigger],1,0x100,6); + table_text_pointers[41] = _load_resource_named_to_membank((&ptr_LmpweaponsX)[j_text_trigger],1,0x100,6); + table_text_pointers[42] = _load_resource_named_to_membank((&ptr_LoptionsX)[j_text_trigger],1,0x100,6); + table_text_pointers[43] = _load_resource_named_to_membank((&ptr_LmiscX)[j_text_trigger],1,0x100,6); + return; +} +#else +GLOBAL_ASM( +.text +glabel init_LnameX +/* 0F621C 7F0C16EC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0F6220 7F0C16F0 AFB20020 */ sw $s2, 0x20($sp) +/* 0F6224 7F0C16F4 3C128005 */ lui $s2, %hi(j_text_trigger) +/* 0F6228 7F0C16F8 265284D0 */ addiu $s2, %lo(j_text_trigger) # addiu $s2, $s2, -0x7b30 +/* 0F622C 7F0C16FC 8E480000 */ lw $t0, ($s2) +/* 0F6230 7F0C1700 AFBF0024 */ sw $ra, 0x24($sp) +/* 0F6234 7F0C1704 AFB1001C */ sw $s1, 0x1c($sp) +/* 0F6238 7F0C1708 11000039 */ beqz $t0, .L7F0C17F0 +/* 0F623C 7F0C170C AFB00018 */ sw $s0, 0x18($sp) +/* 0F6240 7F0C1710 24042E80 */ li $a0, 11904 +/* 0F6244 7F0C1714 0C0025C8 */ jal mempAllocBytesInBank +/* 0F6248 7F0C1718 24050006 */ li $a1, 6 +/* 0F624C 7F0C171C 3C018009 */ lui $at, %hi(ptr_j_char_data_buf) +/* 0F6250 7F0C1720 AC22C6F4 */ sw $v0, %lo(ptr_j_char_data_buf)($at) +/* 0F6254 7F0C1724 24040100 */ li $a0, 256 +/* 0F6258 7F0C1728 0C0025C8 */ jal mempAllocBytesInBank +/* 0F625C 7F0C172C 24050006 */ li $a1, 6 +/* 0F6260 7F0C1730 3C048009 */ lui $a0, %hi(ptr_j_char_registry) +/* 0F6264 7F0C1734 2484C6F8 */ addiu $a0, %lo(ptr_j_char_registry) # addiu $a0, $a0, -0x3908 +/* 0F6268 7F0C1738 AC820000 */ sw $v0, ($a0) +/* 0F626C 7F0C173C 00001825 */ move $v1, $zero +/* 0F6270 7F0C1740 240500F8 */ li $a1, 248 +.L7F0C1744: +/* 0F6274 7F0C1744 8C8E0000 */ lw $t6, ($a0) +/* 0F6278 7F0C1748 01C31021 */ addu $v0, $t6, $v1 +/* 0F627C 7F0C174C 904F0000 */ lbu $t7, ($v0) +/* 0F6280 7F0C1750 31F8FF3F */ andi $t8, $t7, 0xff3f +/* 0F6284 7F0C1754 A0580000 */ sb $t8, ($v0) +/* 0F6288 7F0C1758 8C990000 */ lw $t9, ($a0) +/* 0F628C 7F0C175C 03231021 */ addu $v0, $t9, $v1 +/* 0F6290 7F0C1760 944A0000 */ lhu $t2, ($v0) +/* 0F6294 7F0C1764 354B3FFF */ ori $t3, $t2, 0x3fff +/* 0F6298 7F0C1768 A44B0000 */ sh $t3, ($v0) +/* 0F629C 7F0C176C 8C8C0000 */ lw $t4, ($a0) +/* 0F62A0 7F0C1770 01831021 */ addu $v0, $t4, $v1 +/* 0F62A4 7F0C1774 904D0002 */ lbu $t5, 2($v0) +/* 0F62A8 7F0C1778 31AEFF3F */ andi $t6, $t5, 0xff3f +/* 0F62AC 7F0C177C A04E0002 */ sb $t6, 2($v0) +/* 0F62B0 7F0C1780 8C8F0000 */ lw $t7, ($a0) +/* 0F62B4 7F0C1784 01E31021 */ addu $v0, $t7, $v1 +/* 0F62B8 7F0C1788 94590002 */ lhu $t9, 2($v0) +/* 0F62BC 7F0C178C 37293FFF */ ori $t1, $t9, 0x3fff +/* 0F62C0 7F0C1790 A4490002 */ sh $t1, 2($v0) +/* 0F62C4 7F0C1794 8C8A0000 */ lw $t2, ($a0) +/* 0F62C8 7F0C1798 01431021 */ addu $v0, $t2, $v1 +/* 0F62CC 7F0C179C 904B0004 */ lbu $t3, 4($v0) +/* 0F62D0 7F0C17A0 316CFF3F */ andi $t4, $t3, 0xff3f +/* 0F62D4 7F0C17A4 A04C0004 */ sb $t4, 4($v0) +/* 0F62D8 7F0C17A8 8C8D0000 */ lw $t5, ($a0) +/* 0F62DC 7F0C17AC 01A31021 */ addu $v0, $t5, $v1 +/* 0F62E0 7F0C17B0 944F0004 */ lhu $t7, 4($v0) +/* 0F62E4 7F0C17B4 35F83FFF */ ori $t8, $t7, 0x3fff +/* 0F62E8 7F0C17B8 A4580004 */ sh $t8, 4($v0) +/* 0F62EC 7F0C17BC 8C990000 */ lw $t9, ($a0) +/* 0F62F0 7F0C17C0 03231021 */ addu $v0, $t9, $v1 +/* 0F62F4 7F0C17C4 90490006 */ lbu $t1, 6($v0) +/* 0F62F8 7F0C17C8 312AFF3F */ andi $t2, $t1, 0xff3f +/* 0F62FC 7F0C17CC A04A0006 */ sb $t2, 6($v0) +/* 0F6300 7F0C17D0 8C8B0000 */ lw $t3, ($a0) +/* 0F6304 7F0C17D4 01631021 */ addu $v0, $t3, $v1 +/* 0F6308 7F0C17D8 944D0006 */ lhu $t5, 6($v0) +/* 0F630C 7F0C17DC 24630008 */ addiu $v1, $v1, 8 +/* 0F6310 7F0C17E0 35AE3FFF */ ori $t6, $t5, 0x3fff +/* 0F6314 7F0C17E4 1465FFD7 */ bne $v1, $a1, .L7F0C1744 +/* 0F6318 7F0C17E8 A44E0006 */ sh $t6, 6($v0) +/* 0F631C 7F0C17EC 8E480000 */ lw $t0, ($s2) +.L7F0C17F0: +/* 0F6320 7F0C17F0 3C018009 */ lui $at, %hi(ptr_text) +/* 0F6324 7F0C17F4 3C028009 */ lui $v0, %hi(table_text_pointers) +/* 0F6328 7F0C17F8 3C038009 */ lui $v1, %hi(ptr_j_char_data_buf) +/* 0F632C 7F0C17FC 2463C6F4 */ addiu $v1, %lo(ptr_j_char_data_buf) # addiu $v1, $v1, -0x390c +/* 0F6330 7F0C1800 2442C644 */ addiu $v0, %lo(table_text_pointers) # addiu $v0, $v0, -0x39bc +/* 0F6334 7F0C1804 AC20C640 */ sw $zero, %lo(ptr_text)($at) +.L7F0C1808: +/* 0F6338 7F0C1808 24420010 */ addiu $v0, $v0, 0x10 +/* 0F633C 7F0C180C AC40FFF4 */ sw $zero, -0xc($v0) +/* 0F6340 7F0C1810 AC40FFF8 */ sw $zero, -8($v0) +/* 0F6344 7F0C1814 AC40FFFC */ sw $zero, -4($v0) +/* 0F6348 7F0C1818 1443FFFB */ bne $v0, $v1, .L7F0C1808 +/* 0F634C 7F0C181C AC40FFF0 */ sw $zero, -0x10($v0) +/* 0F6350 7F0C1820 3C108005 */ lui $s0, %hi(LnameX_lookuptable) +/* 0F6354 7F0C1824 261084D4 */ addiu $s0, %lo(LnameX_lookuptable) # addiu $s0, $s0, -0x7b2c +/* 0F6358 7F0C1828 00087880 */ sll $t7, $t0, 2 +/* 0F635C 7F0C182C 020FC021 */ addu $t8, $s0, $t7 +/* 0F6360 7F0C1830 8F040130 */ lw $a0, 0x130($t8) +/* 0F6364 7F0C1834 24050001 */ li $a1, 1 +/* 0F6368 7F0C1838 24060100 */ li $a2, 256 +/* 0F636C 7F0C183C 0FC2F341 */ jal _load_resource_named_to_membank +/* 0F6370 7F0C1840 24070006 */ li $a3, 6 +/* 0F6374 7F0C1844 8E590000 */ lw $t9, ($s2) +/* 0F6378 7F0C1848 3C118009 */ lui $s1, %hi(ptr_text) +/* 0F637C 7F0C184C 2631C640 */ addiu $s1, %lo(ptr_text) # addiu $s1, $s1, -0x39c0 +/* 0F6380 7F0C1850 00194880 */ sll $t1, $t9, 2 +/* 0F6384 7F0C1854 02095021 */ addu $t2, $s0, $t1 +/* 0F6388 7F0C1858 AE220098 */ sw $v0, 0x98($s1) +/* 0F638C 7F0C185C 8D440138 */ lw $a0, 0x138($t2) +/* 0F6390 7F0C1860 24050001 */ li $a1, 1 +/* 0F6394 7F0C1864 24060100 */ li $a2, 256 +/* 0F6398 7F0C1868 0FC2F341 */ jal _load_resource_named_to_membank +/* 0F639C 7F0C186C 24070006 */ li $a3, 6 +/* 0F63A0 7F0C1870 8E4B0000 */ lw $t3, ($s2) +/* 0F63A4 7F0C1874 AE22009C */ sw $v0, 0x9c($s1) +/* 0F63A8 7F0C1878 24050001 */ li $a1, 1 +/* 0F63AC 7F0C187C 000B6080 */ sll $t4, $t3, 2 +/* 0F63B0 7F0C1880 020C6821 */ addu $t5, $s0, $t4 +/* 0F63B4 7F0C1884 8DA40140 */ lw $a0, 0x140($t5) +/* 0F63B8 7F0C1888 24060100 */ li $a2, 256 +/* 0F63BC 7F0C188C 0FC2F341 */ jal _load_resource_named_to_membank +/* 0F63C0 7F0C1890 24070006 */ li $a3, 6 +/* 0F63C4 7F0C1894 8E4E0000 */ lw $t6, ($s2) +/* 0F63C8 7F0C1898 AE2200A0 */ sw $v0, 0xa0($s1) +/* 0F63CC 7F0C189C 24050001 */ li $a1, 1 +/* 0F63D0 7F0C18A0 000E7880 */ sll $t7, $t6, 2 +/* 0F63D4 7F0C18A4 020FC021 */ addu $t8, $s0, $t7 +/* 0F63D8 7F0C18A8 8F040148 */ lw $a0, 0x148($t8) +/* 0F63DC 7F0C18AC 24060100 */ li $a2, 256 +/* 0F63E0 7F0C18B0 0FC2F341 */ jal _load_resource_named_to_membank +/* 0F63E4 7F0C18B4 24070006 */ li $a3, 6 +/* 0F63E8 7F0C18B8 8E590000 */ lw $t9, ($s2) +/* 0F63EC 7F0C18BC AE2200A4 */ sw $v0, 0xa4($s1) +/* 0F63F0 7F0C18C0 24050001 */ li $a1, 1 +/* 0F63F4 7F0C18C4 00194880 */ sll $t1, $t9, 2 +/* 0F63F8 7F0C18C8 02095021 */ addu $t2, $s0, $t1 +/* 0F63FC 7F0C18CC 8D440150 */ lw $a0, 0x150($t2) +/* 0F6400 7F0C18D0 24060100 */ li $a2, 256 +/* 0F6404 7F0C18D4 0FC2F341 */ jal _load_resource_named_to_membank +/* 0F6408 7F0C18D8 24070006 */ li $a3, 6 +/* 0F640C 7F0C18DC 8E4B0000 */ lw $t3, ($s2) +/* 0F6410 7F0C18E0 AE2200A8 */ sw $v0, 0xa8($s1) +/* 0F6414 7F0C18E4 24050001 */ li $a1, 1 +/* 0F6418 7F0C18E8 000B6080 */ sll $t4, $t3, 2 +/* 0F641C 7F0C18EC 020C6821 */ addu $t5, $s0, $t4 +/* 0F6420 7F0C18F0 8DA40158 */ lw $a0, 0x158($t5) +/* 0F6424 7F0C18F4 24060100 */ li $a2, 256 +/* 0F6428 7F0C18F8 0FC2F341 */ jal _load_resource_named_to_membank +/* 0F642C 7F0C18FC 24070006 */ li $a3, 6 +/* 0F6430 7F0C1900 8E4E0000 */ lw $t6, ($s2) +/* 0F6434 7F0C1904 AE2200AC */ sw $v0, 0xac($s1) +/* 0F6438 7F0C1908 24050001 */ li $a1, 1 +/* 0F643C 7F0C190C 000E7880 */ sll $t7, $t6, 2 +/* 0F6440 7F0C1910 020FC021 */ addu $t8, $s0, $t7 +/* 0F6444 7F0C1914 8F040160 */ lw $a0, 0x160($t8) +/* 0F6448 7F0C1918 24060100 */ li $a2, 256 +/* 0F644C 7F0C191C 0FC2F341 */ jal _load_resource_named_to_membank +/* 0F6450 7F0C1920 24070006 */ li $a3, 6 +/* 0F6454 7F0C1924 8FBF0024 */ lw $ra, 0x24($sp) +/* 0F6458 7F0C1928 AE2200B0 */ sw $v0, 0xb0($s1) +/* 0F645C 7F0C192C 8FB1001C */ lw $s1, 0x1c($sp) +/* 0F6460 7F0C1930 8FB00018 */ lw $s0, 0x18($sp) +/* 0F6464 7F0C1934 8FB20020 */ lw $s2, 0x20($sp) +/* 0F6468 7F0C1938 03E00008 */ jr $ra +/* 0F646C 7F0C193C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void something_with_LnameJ(void) +{ + ushort uVar1; + ushort *puVar2; + int iVar3; + + iVar3 = 0; + if (j_text_trigger != 0) { + do { + puVar2 = (ushort *)(ptr_char_registry + iVar3); + if (*puVar2 >> 0xe == 0) { + uVar1 = puVar2[1]; + } + else { + *(byte *)puVar2 = ((byte)(*puVar2 >> 0xe) - 1) * '@' | *(byte *)puVar2 & 0x3f; + puVar2 = (ushort *)(ptr_char_registry + iVar3); + uVar1 = puVar2[1]; + } + if (uVar1 >> 0xe == 0) { + uVar1 = puVar2[2]; + } + else { + *(byte *)(puVar2 + 1) = + ((byte)(uVar1 >> 0xe) - 1) * '@' | *(byte *)(puVar2 + 1) & 0x3f; + puVar2 = (ushort *)(ptr_char_registry + iVar3); + uVar1 = puVar2[2]; + } + if (uVar1 >> 0xe == 0) { + uVar1 = puVar2[3]; + } + else { + *(byte *)(puVar2 + 2) = + ((byte)(uVar1 >> 0xe) - 1) * '@' | *(byte *)(puVar2 + 2) & 0x3f; + puVar2 = (ushort *)(ptr_char_registry + iVar3); + uVar1 = puVar2[3]; + } + iVar3 += 8; + if (uVar1 >> 0xe != 0) { + *(byte *)(puVar2 + 3) = + ((byte)(uVar1 >> 0xe) - 1) * '@' | *(byte *)(puVar2 + 3) & 0x3f; + } + } while (iVar3 != 0xf8); + } + return; +} +#else +GLOBAL_ASM( +.text +glabel something_with_LnameJ +/* 0F6470 7F0C1940 3C0E8005 */ lui $t6, %hi(j_text_trigger) +/* 0F6474 7F0C1944 8DCE84D0 */ lw $t6, %lo(j_text_trigger)($t6) +/* 0F6478 7F0C1948 00001825 */ move $v1, $zero +/* 0F647C 7F0C194C 240600F8 */ li $a2, 248 +/* 0F6480 7F0C1950 11C00035 */ beqz $t6, .L7F0C1A28 +/* 0F6484 7F0C1954 3C058009 */ lui $a1, %hi(ptr_j_char_registry) +/* 0F6488 7F0C1958 24A5C6F8 */ addiu $a1, %lo(ptr_j_char_registry) # addiu $a1, $a1, -0x3908 +/* 0F648C 7F0C195C 8CAF0000 */ lw $t7, ($a1) +.L7F0C1960: +/* 0F6490 7F0C1960 01E31021 */ addu $v0, $t7, $v1 +/* 0F6494 7F0C1964 94440000 */ lhu $a0, ($v0) +/* 0F6498 7F0C1968 0004C382 */ srl $t8, $a0, 0xe +/* 0F649C 7F0C196C 5300000A */ beql $t8, $zero, .L7F0C1998 +/* 0F64A0 7F0C1970 94440002 */ lhu $a0, 2($v0) +/* 0F64A4 7F0C1974 904A0000 */ lbu $t2, ($v0) +/* 0F64A8 7F0C1978 2719FFFF */ addiu $t9, $t8, -1 +/* 0F64AC 7F0C197C 00194980 */ sll $t1, $t9, 6 +/* 0F64B0 7F0C1980 314BFF3F */ andi $t3, $t2, 0xff3f +/* 0F64B4 7F0C1984 012B6025 */ or $t4, $t1, $t3 +/* 0F64B8 7F0C1988 A04C0000 */ sb $t4, ($v0) +/* 0F64BC 7F0C198C 8CAD0000 */ lw $t5, ($a1) +/* 0F64C0 7F0C1990 01A31021 */ addu $v0, $t5, $v1 +/* 0F64C4 7F0C1994 94440002 */ lhu $a0, 2($v0) +.L7F0C1998: +/* 0F64C8 7F0C1998 00047382 */ srl $t6, $a0, 0xe +/* 0F64CC 7F0C199C 51C0000A */ beql $t6, $zero, .L7F0C19C8 +/* 0F64D0 7F0C19A0 94440004 */ lhu $a0, 4($v0) +/* 0F64D4 7F0C19A4 90480002 */ lbu $t0, 2($v0) +/* 0F64D8 7F0C19A8 25CFFFFF */ addiu $t7, $t6, -1 +/* 0F64DC 7F0C19AC 000FC980 */ sll $t9, $t7, 6 +/* 0F64E0 7F0C19B0 310AFF3F */ andi $t2, $t0, 0xff3f +/* 0F64E4 7F0C19B4 032A4825 */ or $t1, $t9, $t2 +/* 0F64E8 7F0C19B8 A0490002 */ sb $t1, 2($v0) +/* 0F64EC 7F0C19BC 8CAB0000 */ lw $t3, ($a1) +/* 0F64F0 7F0C19C0 01631021 */ addu $v0, $t3, $v1 +/* 0F64F4 7F0C19C4 94440004 */ lhu $a0, 4($v0) +.L7F0C19C8: +/* 0F64F8 7F0C19C8 00046382 */ srl $t4, $a0, 0xe +/* 0F64FC 7F0C19CC 5180000A */ beql $t4, $zero, .L7F0C19F8 +/* 0F6500 7F0C19D0 94440006 */ lhu $a0, 6($v0) +/* 0F6504 7F0C19D4 90580004 */ lbu $t8, 4($v0) +/* 0F6508 7F0C19D8 258DFFFF */ addiu $t5, $t4, -1 +/* 0F650C 7F0C19DC 000D7980 */ sll $t7, $t5, 6 +/* 0F6510 7F0C19E0 3308FF3F */ andi $t0, $t8, 0xff3f +/* 0F6514 7F0C19E4 01E8C825 */ or $t9, $t7, $t0 +/* 0F6518 7F0C19E8 A0590004 */ sb $t9, 4($v0) +/* 0F651C 7F0C19EC 8CAA0000 */ lw $t2, ($a1) +/* 0F6520 7F0C19F0 01431021 */ addu $v0, $t2, $v1 +/* 0F6524 7F0C19F4 94440006 */ lhu $a0, 6($v0) +.L7F0C19F8: +/* 0F6528 7F0C19F8 24630008 */ addiu $v1, $v1, 8 +/* 0F652C 7F0C19FC 00044B82 */ srl $t1, $a0, 0xe +/* 0F6530 7F0C1A00 11200007 */ beqz $t1, .L7F0C1A20 +/* 0F6534 7F0C1A04 00000000 */ nop +/* 0F6538 7F0C1A08 904E0006 */ lbu $t6, 6($v0) +/* 0F653C 7F0C1A0C 252BFFFF */ addiu $t3, $t1, -1 +/* 0F6540 7F0C1A10 000B6980 */ sll $t5, $t3, 6 +/* 0F6544 7F0C1A14 31D8FF3F */ andi $t8, $t6, 0xff3f +/* 0F6548 7F0C1A18 01B87825 */ or $t7, $t5, $t8 +/* 0F654C 7F0C1A1C A04F0006 */ sb $t7, 6($v0) +.L7F0C1A20: +/* 0F6550 7F0C1A20 5466FFCF */ bnel $v1, $a2, .L7F0C1960 +/* 0F6554 7F0C1A24 8CAF0000 */ lw $t7, ($a1) +.L7F0C1A28: +/* 0F6558 7F0C1A28 03E00008 */ jr $ra +/* 0F655C 7F0C1A2C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +int something_with_LnameX(uint param_1) +{ + bool bVar1; + ushort uVar3; + u8 *puVar2; + int iVar4; + ushort *puVar5; + int iVar6; + int iVar7; + int indexto; + int iVar8; + int iVar9; + int indexfrom; + + indexto = -1; + bVar1 = (param_1 & 0x2000) != 0; + iVar7 = 0; + iVar4 = 0; + iVar9 = -1; + puVar5 = (ushort *)ptr_char_registry; + do { + indexfrom = (int)param_1 >> 1; + if ((!bVar1) && ((longlong)indexfrom == ((ulonglong)*puVar5 & 0x3fff))) break; + if ((bVar1) && + (((iVar4 + 1 < 0x7c && ((longlong)indexfrom == ((ulonglong)*puVar5 & 0x3fff))) && + ((longlong)indexfrom == ((ulonglong)puVar5[1] & 0x3fff))))) break; + uVar3 = *puVar5 >> 0xe; + iVar6 = iVar4 + 1; + if (uVar3 == 0) { + indexto = iVar4; + } + iVar7 += 2; + iVar8 = iVar9; + if (((uVar3 == 0) && (puVar5[1] >> 0xe == 0)) && (iVar8 = iVar4, 0x7b < iVar6)) { + iVar8 = iVar9; + } + puVar5 = puVar5 + 1; + iVar4 = iVar6; + iVar9 = iVar8; + } while (iVar6 != 0x7c); + if (iVar4 < 0x7c) { + if (bVar1) { + *(byte *)puVar5 = *(byte *)puVar5 & 0x3f | 0x80; + (ptr_char_registry + iVar7)[2] = (ptr_char_registry + iVar7)[2] & 0x3f | 0x80; + puVar2 = ptr_char_data_buf + iVar4 * 0x60; + } + else { + *(byte *)puVar5 = *(byte *)puVar5 & 0x3f | 0x80; + puVar2 = ptr_char_data_buf + iVar4 * 0x60; + } + } + else { + if ((bVar1) || (indexto < 0)) { + puVar2 = ptr_char_data_buf; + if ((bVar1) && (iVar4 = iVar9 * 2, -1 < iVar9)) { + ptr_char_registry[iVar4] = ptr_char_registry[iVar4] & 0x3f | 0x80; + (ptr_char_registry + iVar4)[2] = (ptr_char_registry + iVar4)[2] & 0x3f | 0x80; + uVar3 = (ushort)indexfrom & 0x3fff; + *(ushort *)(ptr_char_registry + iVar4) = + uVar3 | *(ushort *)(ptr_char_registry + iVar4) & 0xc000; + *(ushort *)(ptr_char_registry + iVar4 + 2) = + uVar3 | *(ushort *)(ptr_char_registry + iVar4 + 2) & 0xc000; + romCopy((char *)(ptr_char_data_buf + iVar9 * 0x60), + (char *)(_efontcharSegmentStart + ((int)(param_1 & 0x1fff) >> 1) * 0x20), + 0x80); + puVar2 = ptr_char_data_buf + iVar9 * 0x60; + } + } + else { + ptr_char_registry[indexto * 2] = ptr_char_registry[indexto * 2] & 0x3f | 0x80; + *(ushort *)(ptr_char_registry + indexto * 2) = + (ushort)indexfrom & 0x3fff | *(ushort *)(ptr_char_registry + indexto * 2) & 0xc000; + romCopy((char *)(ptr_char_data_buf + indexto * 0x60), + (char *)(_jfontcharSegmentStart + indexfrom * 0x18),0x60); + puVar2 = ptr_char_data_buf + indexto * 0x60; + } + } + return (int)puVar2; +} +#else +GLOBAL_ASM( +.text +glabel something_with_LnameX +/* 0F6560 7F0C1A30 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0F6564 7F0C1A34 AFB00018 */ sw $s0, 0x18($sp) +/* 0F6568 7F0C1A38 308E2000 */ andi $t6, $a0, 0x2000 +/* 0F656C 7F0C1A3C 00808025 */ move $s0, $a0 +/* 0F6570 7F0C1A40 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F6574 7F0C1A44 240AFFFF */ li $t2, -1 +/* 0F6578 7F0C1A48 240BFFFF */ li $t3, -1 +/* 0F657C 7F0C1A4C 11C00002 */ beqz $t6, .L7F0C1A58 +/* 0F6580 7F0C1A50 00004025 */ move $t0, $zero +/* 0F6584 7F0C1A54 24080001 */ li $t0, 1 +.L7F0C1A58: +/* 0F6588 7F0C1A58 3C0C8009 */ lui $t4, %hi(ptr_j_char_registry) +/* 0F658C 7F0C1A5C 8D8CC6F8 */ lw $t4, %lo(ptr_j_char_registry)($t4) +/* 0F6590 7F0C1A60 00002825 */ move $a1, $zero +/* 0F6594 7F0C1A64 00003825 */ move $a3, $zero +/* 0F6598 7F0C1A68 2409007C */ li $t1, 124 +/* 0F659C 7F0C1A6C 01802025 */ move $a0, $t4 +.L7F0C1A70: +/* 0F65A0 7F0C1A70 15000006 */ bnez $t0, .L7F0C1A8C +/* 0F65A4 7F0C1A74 00000000 */ nop +/* 0F65A8 7F0C1A78 94980000 */ lhu $t8, ($a0) +/* 0F65AC 7F0C1A7C 00107843 */ sra $t7, $s0, 1 +/* 0F65B0 7F0C1A80 33193FFF */ andi $t9, $t8, 0x3fff +/* 0F65B4 7F0C1A84 51F9001F */ beql $t7, $t9, .L7F0C1B04 +/* 0F65B8 7F0C1A88 28A1007C */ slti $at, $a1, 0x7c +.L7F0C1A8C: +/* 0F65BC 7F0C1A8C 1100000B */ beqz $t0, .L7F0C1ABC +/* 0F65C0 7F0C1A90 94830000 */ lhu $v1, ($a0) +/* 0F65C4 7F0C1A94 24AE0001 */ addiu $t6, $a1, 1 +/* 0F65C8 7F0C1A98 29C1007C */ slti $at, $t6, 0x7c +/* 0F65CC 7F0C1A9C 10200007 */ beqz $at, .L7F0C1ABC +/* 0F65D0 7F0C1AA0 00101043 */ sra $v0, $s0, 1 +/* 0F65D4 7F0C1AA4 30783FFF */ andi $t8, $v1, 0x3fff +/* 0F65D8 7F0C1AA8 54580005 */ bnel $v0, $t8, .L7F0C1AC0 +/* 0F65DC 7F0C1AAC 00031382 */ srl $v0, $v1, 0xe +/* 0F65E0 7F0C1AB0 948F0002 */ lhu $t7, 2($a0) +/* 0F65E4 7F0C1AB4 31F93FFF */ andi $t9, $t7, 0x3fff +/* 0F65E8 7F0C1AB8 10590011 */ beq $v0, $t9, .L7F0C1B00 +.L7F0C1ABC: +/* 0F65EC 7F0C1ABC 00031382 */ srl $v0, $v1, 0xe +.L7F0C1AC0: +/* 0F65F0 7F0C1AC0 14400002 */ bnez $v0, .L7F0C1ACC +/* 0F65F4 7F0C1AC4 24A60001 */ addiu $a2, $a1, 1 +/* 0F65F8 7F0C1AC8 00A05025 */ move $t2, $a1 +.L7F0C1ACC: +/* 0F65FC 7F0C1ACC 14400009 */ bnez $v0, .L7F0C1AF4 +/* 0F6600 7F0C1AD0 24E70002 */ addiu $a3, $a3, 2 +/* 0F6604 7F0C1AD4 948E0002 */ lhu $t6, 2($a0) +/* 0F6608 7F0C1AD8 28C1007C */ slti $at, $a2, 0x7c +/* 0F660C 7F0C1ADC 000EC382 */ srl $t8, $t6, 0xe +/* 0F6610 7F0C1AE0 57000005 */ bnezl $t8, .L7F0C1AF8 +/* 0F6614 7F0C1AE4 00C02825 */ move $a1, $a2 +/* 0F6618 7F0C1AE8 50200003 */ beql $at, $zero, .L7F0C1AF8 +/* 0F661C 7F0C1AEC 00C02825 */ move $a1, $a2 +/* 0F6620 7F0C1AF0 00A05825 */ move $t3, $a1 +.L7F0C1AF4: +/* 0F6624 7F0C1AF4 00C02825 */ move $a1, $a2 +.L7F0C1AF8: +/* 0F6628 7F0C1AF8 14C9FFDD */ bne $a2, $t1, .L7F0C1A70 +/* 0F662C 7F0C1AFC 24840002 */ addiu $a0, $a0, 2 +.L7F0C1B00: +/* 0F6630 7F0C1B00 28A1007C */ slti $at, $a1, 0x7c +.L7F0C1B04: +/* 0F6634 7F0C1B04 10200021 */ beqz $at, .L7F0C1B8C +/* 0F6638 7F0C1B08 00000000 */ nop +/* 0F663C 7F0C1B0C 1500000C */ bnez $t0, .L7F0C1B40 +/* 0F6640 7F0C1B10 240D0060 */ li $t5, 96 +/* 0F6644 7F0C1B14 00AD0019 */ multu $a1, $t5 +/* 0F6648 7F0C1B18 908F0000 */ lbu $t7, ($a0) +/* 0F664C 7F0C1B1C 31F9FF3F */ andi $t9, $t7, 0xff3f +/* 0F6650 7F0C1B20 372E0080 */ ori $t6, $t9, 0x80 +/* 0F6654 7F0C1B24 A08E0000 */ sb $t6, ($a0) +/* 0F6658 7F0C1B28 3C0F8009 */ lui $t7, %hi(ptr_j_char_data_buf) +/* 0F665C 7F0C1B2C 8DEFC6F4 */ lw $t7, %lo(ptr_j_char_data_buf)($t7) +/* 0F6660 7F0C1B30 0000C012 */ mflo $t8 +/* 0F6664 7F0C1B34 030F1021 */ addu $v0, $t8, $t7 +/* 0F6668 7F0C1B38 1000006F */ b .L7F0C1CF8 +/* 0F666C 7F0C1B3C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0C1B40: +/* 0F6670 7F0C1B40 90990000 */ lbu $t9, ($a0) +/* 0F6674 7F0C1B44 3C098009 */ lui $t1, %hi(ptr_j_char_registry) +/* 0F6678 7F0C1B48 2529C6F8 */ addiu $t1, %lo(ptr_j_char_registry) # addiu $t1, $t1, -0x3908 +/* 0F667C 7F0C1B4C 332EFF3F */ andi $t6, $t9, 0xff3f +/* 0F6680 7F0C1B50 35D80080 */ ori $t8, $t6, 0x80 +/* 0F6684 7F0C1B54 A0980000 */ sb $t8, ($a0) +/* 0F6688 7F0C1B58 8D2F0000 */ lw $t7, ($t1) +/* 0F668C 7F0C1B5C 240D0060 */ li $t5, 96 +/* 0F6690 7F0C1B60 00AD0019 */ multu $a1, $t5 +/* 0F6694 7F0C1B64 01E72021 */ addu $a0, $t7, $a3 +/* 0F6698 7F0C1B68 90990002 */ lbu $t9, 2($a0) +/* 0F669C 7F0C1B6C 332EFF3F */ andi $t6, $t9, 0xff3f +/* 0F66A0 7F0C1B70 35D80080 */ ori $t8, $t6, 0x80 +/* 0F66A4 7F0C1B74 A0980002 */ sb $t8, 2($a0) +/* 0F66A8 7F0C1B78 3C198009 */ lui $t9, %hi(ptr_j_char_data_buf) +/* 0F66AC 7F0C1B7C 8F39C6F4 */ lw $t9, %lo(ptr_j_char_data_buf)($t9) +/* 0F66B0 7F0C1B80 00007812 */ mflo $t7 +/* 0F66B4 7F0C1B84 1000005B */ b .L7F0C1CF4 +/* 0F66B8 7F0C1B88 01F91021 */ addu $v0, $t7, $t9 +.L7F0C1B8C: +/* 0F66BC 7F0C1B8C 15000025 */ bnez $t0, .L7F0C1C24 +/* 0F66C0 7F0C1B90 00000000 */ nop +/* 0F66C4 7F0C1B94 05400023 */ bltz $t2, .L7F0C1C24 +/* 0F66C8 7F0C1B98 240D0060 */ li $t5, 96 +/* 0F66CC 7F0C1B9C 014D0019 */ multu $t2, $t5 +/* 0F66D0 7F0C1BA0 000A3840 */ sll $a3, $t2, 1 +/* 0F66D4 7F0C1BA4 01871821 */ addu $v1, $t4, $a3 +/* 0F66D8 7F0C1BA8 906E0000 */ lbu $t6, ($v1) +/* 0F66DC 7F0C1BAC 3C098009 */ lui $t1, %hi(ptr_j_char_registry) +/* 0F66E0 7F0C1BB0 2529C6F8 */ addiu $t1, %lo(ptr_j_char_registry) # addiu $t1, $t1, -0x3908 +/* 0F66E4 7F0C1BB4 31D8FF3F */ andi $t8, $t6, 0xff3f +/* 0F66E8 7F0C1BB8 370F0080 */ ori $t7, $t8, 0x80 +/* 0F66EC 7F0C1BBC A06F0000 */ sb $t7, ($v1) +/* 0F66F0 7F0C1BC0 8D390000 */ lw $t9, ($t1) +/* 0F66F4 7F0C1BC4 00004012 */ mflo $t0 +/* 0F66F8 7F0C1BC8 00101043 */ sra $v0, $s0, 1 +/* 0F66FC 7F0C1BCC 03271821 */ addu $v1, $t9, $a3 +/* 0F6700 7F0C1BD0 004D0019 */ multu $v0, $t5 +/* 0F6704 7F0C1BD4 946F0000 */ lhu $t7, ($v1) +/* 0F6708 7F0C1BD8 30583FFF */ andi $t8, $v0, 0x3fff +/* 0F670C 7F0C1BDC 24060060 */ li $a2, 96 +/* 0F6710 7F0C1BE0 31F9C000 */ andi $t9, $t7, 0xc000 +/* 0F6714 7F0C1BE4 03197025 */ or $t6, $t8, $t9 +/* 0F6718 7F0C1BE8 A46E0000 */ sh $t6, ($v1) +/* 0F671C 7F0C1BEC 3C0F8009 */ lui $t7, %hi(ptr_j_char_data_buf) +/* 0F6720 7F0C1BF0 8DEFC6F4 */ lw $t7, %lo(ptr_j_char_data_buf)($t7) +/* 0F6724 7F0C1BF4 3C190011 */ lui $t9, %hi(_jfontcharSegmentStart) # $t9, 0x11 +/* 0F6728 7F0C1BF8 27397940 */ addiu $t9, %lo(_jfontcharSegmentStart) # addiu $t9, $t9, 0x7940 +/* 0F672C 7F0C1BFC 0000C012 */ mflo $t8 +/* 0F6730 7F0C1C00 03192821 */ addu $a1, $t8, $t9 +/* 0F6734 7F0C1C04 AFA80024 */ sw $t0, 0x24($sp) +/* 0F6738 7F0C1C08 0C001707 */ jal romCopy +/* 0F673C 7F0C1C0C 010F2021 */ addu $a0, $t0, $t7 +/* 0F6740 7F0C1C10 3C0E8009 */ lui $t6, %hi(ptr_j_char_data_buf) +/* 0F6744 7F0C1C14 8FA80024 */ lw $t0, 0x24($sp) +/* 0F6748 7F0C1C18 8DCEC6F4 */ lw $t6, %lo(ptr_j_char_data_buf)($t6) +/* 0F674C 7F0C1C1C 10000035 */ b .L7F0C1CF4 +/* 0F6750 7F0C1C20 010E1021 */ addu $v0, $t0, $t6 +.L7F0C1C24: +/* 0F6754 7F0C1C24 11000032 */ beqz $t0, .L7F0C1CF0 +/* 0F6758 7F0C1C28 3C028009 */ lui $v0, %hi(ptr_j_char_data_buf) +/* 0F675C 7F0C1C2C 05600030 */ bltz $t3, .L7F0C1CF0 +/* 0F6760 7F0C1C30 000B1840 */ sll $v1, $t3, 1 +/* 0F6764 7F0C1C34 01831021 */ addu $v0, $t4, $v1 +/* 0F6768 7F0C1C38 904F0000 */ lbu $t7, ($v0) +/* 0F676C 7F0C1C3C 3C098009 */ lui $t1, %hi(ptr_j_char_registry) +/* 0F6770 7F0C1C40 2529C6F8 */ addiu $t1, %lo(ptr_j_char_registry) # addiu $t1, $t1, -0x3908 +/* 0F6774 7F0C1C44 31F8FF3F */ andi $t8, $t7, 0xff3f +/* 0F6778 7F0C1C48 37190080 */ ori $t9, $t8, 0x80 +/* 0F677C 7F0C1C4C A0590000 */ sb $t9, ($v0) +/* 0F6780 7F0C1C50 8D2E0000 */ lw $t6, ($t1) +/* 0F6784 7F0C1C54 240D0060 */ li $t5, 96 +/* 0F6788 7F0C1C58 016D0019 */ multu $t3, $t5 +/* 0F678C 7F0C1C5C 01C31021 */ addu $v0, $t6, $v1 +/* 0F6790 7F0C1C60 904F0002 */ lbu $t7, 2($v0) +/* 0F6794 7F0C1C64 24060080 */ li $a2, 128 +/* 0F6798 7F0C1C68 31F8FF3F */ andi $t8, $t7, 0xff3f +/* 0F679C 7F0C1C6C 37190080 */ ori $t9, $t8, 0x80 +/* 0F67A0 7F0C1C70 A0590002 */ sb $t9, 2($v0) +/* 0F67A4 7F0C1C74 8D2E0000 */ lw $t6, ($t1) +/* 0F67A8 7F0C1C78 00107843 */ sra $t7, $s0, 1 +/* 0F67AC 7F0C1C7C 31E73FFF */ andi $a3, $t7, 0x3fff +/* 0F67B0 7F0C1C80 01C31021 */ addu $v0, $t6, $v1 +/* 0F67B4 7F0C1C84 94590000 */ lhu $t9, ($v0) +/* 0F67B8 7F0C1C88 00004012 */ mflo $t0 +/* 0F67BC 7F0C1C8C 332EC000 */ andi $t6, $t9, 0xc000 +/* 0F67C0 7F0C1C90 00EE7825 */ or $t7, $a3, $t6 +/* 0F67C4 7F0C1C94 A44F0000 */ sh $t7, ($v0) +/* 0F67C8 7F0C1C98 8D380000 */ lw $t8, ($t1) +/* 0F67CC 7F0C1C9C 03031021 */ addu $v0, $t8, $v1 +/* 0F67D0 7F0C1CA0 94590002 */ lhu $t9, 2($v0) +/* 0F67D4 7F0C1CA4 3C188009 */ lui $t8, %hi(ptr_j_char_data_buf) +/* 0F67D8 7F0C1CA8 332EC000 */ andi $t6, $t9, 0xc000 +/* 0F67DC 7F0C1CAC 00EE7825 */ or $t7, $a3, $t6 +/* 0F67E0 7F0C1CB0 A44F0002 */ sh $t7, 2($v0) +/* 0F67E4 7F0C1CB4 8F18C6F4 */ lw $t8, %lo(ptr_j_char_data_buf)($t8) +/* 0F67E8 7F0C1CB8 32191FFF */ andi $t9, $s0, 0x1fff +/* 0F67EC 7F0C1CBC 00197043 */ sra $t6, $t9, 1 +/* 0F67F0 7F0C1CC0 01182021 */ addu $a0, $t0, $t8 +/* 0F67F4 7F0C1CC4 3C180012 */ lui $t8, %hi(_efontcharSegmentStart) # $t8, 0x12 +/* 0F67F8 7F0C1CC8 27183040 */ addiu $t8, %lo(_efontcharSegmentStart) # addiu $t8, $t8, 0x3040 +/* 0F67FC 7F0C1CCC 000E79C0 */ sll $t7, $t6, 7 +/* 0F6800 7F0C1CD0 01F82821 */ addu $a1, $t7, $t8 +/* 0F6804 7F0C1CD4 0C001707 */ jal romCopy +/* 0F6808 7F0C1CD8 AFA80024 */ sw $t0, 0x24($sp) +/* 0F680C 7F0C1CDC 3C198009 */ lui $t9, %hi(ptr_j_char_data_buf) +/* 0F6810 7F0C1CE0 8FA80024 */ lw $t0, 0x24($sp) +/* 0F6814 7F0C1CE4 8F39C6F4 */ lw $t9, %lo(ptr_j_char_data_buf)($t9) +/* 0F6818 7F0C1CE8 10000002 */ b .L7F0C1CF4 +/* 0F681C 7F0C1CEC 01191021 */ addu $v0, $t0, $t9 +.L7F0C1CF0: +/* 0F6820 7F0C1CF0 8C42C6F4 */ lw $v0, %lo(ptr_j_char_data_buf)($v0) +.L7F0C1CF4: +/* 0F6824 7F0C1CF4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0C1CF8: +/* 0F6828 7F0C1CF8 8FB00018 */ lw $s0, 0x18($sp) +/* 0F682C 7F0C1CFC 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0F6830 7F0C1D00 03E00008 */ jr $ra +/* 0F6834 7F0C1D04 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void load_mission_text_bank(u32 param_1) +{ + *(u8 **)(&ptr_text + param_1) = _load_resource_named_to_membank((byte *)(&(&LnameX_lookuptable)[param_1].en_file)[j_text_trigger],1,0x100,4); +} +#else +GLOBAL_ASM( +.text +glabel load_mission_text_bank +/* 0F6838 7F0C1D08 3C188005 */ lui $t8, %hi(j_text_trigger) +/* 0F683C 7F0C1D0C 8F1884D0 */ lw $t8, %lo(j_text_trigger)($t8) +/* 0F6840 7F0C1D10 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F6844 7F0C1D14 000478C0 */ sll $t7, $a0, 3 +/* 0F6848 7F0C1D18 AFA40018 */ sw $a0, 0x18($sp) +/* 0F684C 7F0C1D1C 0018C880 */ sll $t9, $t8, 2 +/* 0F6850 7F0C1D20 01F94021 */ addu $t0, $t7, $t9 +/* 0F6854 7F0C1D24 3C048005 */ lui $a0, %hi(LnameX_lookuptable) +/* 0F6858 7F0C1D28 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F685C 7F0C1D2C 00882021 */ addu $a0, $a0, $t0 +/* 0F6860 7F0C1D30 8C8484D4 */ lw $a0, %lo(LnameX_lookuptable)($a0) +/* 0F6864 7F0C1D34 24050001 */ li $a1, 1 +/* 0F6868 7F0C1D38 24060100 */ li $a2, 256 +/* 0F686C 7F0C1D3C 0FC2F341 */ jal _load_resource_named_to_membank +/* 0F6870 7F0C1D40 24070004 */ li $a3, 4 +/* 0F6874 7F0C1D44 8FA90018 */ lw $t1, 0x18($sp) +/* 0F6878 7F0C1D48 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F687C 7F0C1D4C 3C018009 */ lui $at, %hi(ptr_text) +/* 0F6880 7F0C1D50 00095080 */ sll $t2, $t1, 2 +/* 0F6884 7F0C1D54 002A0821 */ addu $at, $at, $t2 +/* 0F6888 7F0C1D58 AC22C640 */ sw $v0, %lo(ptr_text)($at) +/* 0F688C 7F0C1D5C 03E00008 */ jr $ra +/* 0F6890 7F0C1D60 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void load_briefing_text_bank(int lnameID,undefined *target,int size) +{ + *(u8 **)(&ptr_text + lnameID) = _load_resource_named_to_buffer((byte *)(&(&LnameX_lookuptable)[lnameID].en_file)[j_text_trigger],1,target, size); +} +#else +GLOBAL_ASM( +.text +glabel load_briefing_text_bank +/* 0F6894 7F0C1D64 3C188005 */ lui $t8, %hi(j_text_trigger) +/* 0F6898 7F0C1D68 8F1884D0 */ lw $t8, %lo(j_text_trigger)($t8) +/* 0F689C 7F0C1D6C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F68A0 7F0C1D70 000478C0 */ sll $t7, $a0, 3 +/* 0F68A4 7F0C1D74 AFA40018 */ sw $a0, 0x18($sp) +/* 0F68A8 7F0C1D78 0018C880 */ sll $t9, $t8, 2 +/* 0F68AC 7F0C1D7C 00C03825 */ move $a3, $a2 +/* 0F68B0 7F0C1D80 01F94021 */ addu $t0, $t7, $t9 +/* 0F68B4 7F0C1D84 3C048005 */ lui $a0, %hi(LnameX_lookuptable) +/* 0F68B8 7F0C1D88 00A03025 */ move $a2, $a1 +/* 0F68BC 7F0C1D8C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F68C0 7F0C1D90 AFA5001C */ sw $a1, 0x1c($sp) +/* 0F68C4 7F0C1D94 00882021 */ addu $a0, $a0, $t0 +/* 0F68C8 7F0C1D98 8C8484D4 */ lw $a0, %lo(LnameX_lookuptable)($a0) +/* 0F68CC 7F0C1D9C 0FC2F350 */ jal _load_resource_named_to_buffer +/* 0F68D0 7F0C1DA0 24050001 */ li $a1, 1 +/* 0F68D4 7F0C1DA4 8FA90018 */ lw $t1, 0x18($sp) +/* 0F68D8 7F0C1DA8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F68DC 7F0C1DAC 3C018009 */ lui $at, %hi(ptr_text) +/* 0F68E0 7F0C1DB0 00095080 */ sll $t2, $t1, 2 +/* 0F68E4 7F0C1DB4 002A0821 */ addu $at, $at, $t2 +/* 0F68E8 7F0C1DB8 AC22C640 */ sw $v0, %lo(ptr_text)($at) +/* 0F68EC 7F0C1DBC 03E00008 */ jr $ra +/* 0F68F0 7F0C1DC0 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +void blank_text_bank(s32 textBank) { + (&ptr_text)[textBank] = 0; +} + + +u8 * get_textptr_for_textID(s32 slotID) +{ + u32 * textbank_ptr = (&ptr_text)[slotID >> 10]; /* get the text file bank ID index the text ptr table */ + u32 textslot_offset = textbank_ptr[slotID & 0x03FF]; /* load the textbank ptr table then get the slot's offset */ + + u32 output_slot = textslot_offset; /* add the text slot offset to the base ptr to get the ptr to text file's slot */ + output_slot += (u32)textbank_ptr; + return (textslot_offset != 0) ? output_slot : NULL; +} diff --git a/src/game/lvl_text.h b/src/game/lvl_text.h new file mode 100644 index 0000000..c059aa9 --- /dev/null +++ b/src/game/lvl_text.h @@ -0,0 +1,11 @@ +#ifndef _LVL_TEXT_H_ +#define _LVL_TEXT_H_ +#include "ultra64.h" + +struct stringentry { + char *string[]; +}; + +extern s32 j_text_trigger; + +#endif diff --git a/src/game/mainmenu.c b/src/game/mainmenu.c new file mode 100644 index 0000000..354f79b --- /dev/null +++ b/src/game/mainmenu.c @@ -0,0 +1,29739 @@ +#include "ultra64.h" +#include "bondgame.h" +#include "game/spectrum.h" +#include "game/mainmenu.h" +#include "game/unk_093880.h" +#include "music.h" +#include "game/textrelated.h" +#include "game/lvl.h" +#include "game/bond.h" +#include "game/chrobjdata.h" +#include "joy.h" +struct point { + f32 x; + f32 y; + f32 z; +}; +// bss +//CODE.bss:800695A0 +f32 flt_CODE_bss_800695A0; +//CODE.bss:800695A4 +f32 flt_CODE_bss_800695A4; +//CODE.bss:800695A8 +f32 flt_CODE_bss_800695A8; +//CODE.bss:800695AC +f32 flt_CODE_bss_800695AC; +//CODE.bss:800695B0 +f32 flt_CODE_bss_800695B0; +//CODE.bss:800695B4 +f32 flt_CODE_bss_800695B4; +//CODE.bss:800695B8 +f32 flt_CODE_bss_800695B8; +//CODE.bss:800695BC +f32 flt_CODE_bss_800695BC; +//CODE.bss:800695C0 +f32 flt_CODE_bss_800695C0; +//CODE.bss:800695C4 +f32 flt_CODE_bss_800695C4; +//CODE.bss:800695C8 +f32 flt_CODE_bss_800695C8; +//CODE.bss:800695CC +f32 flt_CODE_bss_800695CC; +//CODE.bss:800695D0 +f32 flt_CODE_bss_800695D0; +//CODE.bss:800695D4 +f32 flt_CODE_bss_800695D4; +//CODE.bss:800695D8 +f32 flt_CODE_bss_800695D8; +//CODE.bss:800695DC +f32 flt_CODE_bss_800695DC; +//CODE.bss:800695E0 +f32 flt_CODE_bss_800695E0; +//CODE.bss:800695E4 +f32 flt_CODE_bss_800695E4; +//CODE.bss:800695E8 +f32 flt_CODE_bss_800695E8; +//CODE.bss:800695EC +f32 flt_CODE_bss_800695EC; +//CODE.bss:800695F0 +f32 flt_CODE_bss_800695F0; +//CODE.bss:800695F4 +f32 flt_CODE_bss_800695F4; +//CODE.bss:800695F8 +f32 flt_CODE_bss_800695F8; +//CODE.bss:800695FC +f32 flt_CODE_bss_800695FC; +//CODE.bss:80069600 +f32 flt_CODE_bss_80069600; +//CODE.bss:80069604 +f32 flt_CODE_bss_80069604; +//CODE.bss:80069608 +f32 flt_CODE_bss_80069608; +//CODE.bss:8006960C +f32 flt_CODE_bss_8006960C; +//CODE.bss:80069610 +f32 flt_CODE_bss_80069610; +//CODE.bss:80069614 +f32 flt_CODE_bss_80069614; +//CODE.bss:80069618 +f32 flt_CODE_bss_80069618; +//CODE.bss:8006961C +f32 flt_CODE_bss_8006961C; +//CODE.bss:80069620 +char dword_CODE_bss_80069620[0x30]; + +//CODE.bss:80069650 +u8 CHEAT_80069650; +//CODE.bss:80069651 +u8 cheat_available; +//CODE.bss:80069652 +u8 CHEAT_AVAILABLE_INVINCIBLE; +//CODE.bss:80069653 +u8 CHEAT_AVAILABLE_ALLGUNS; +//CODE.bss:80069654 +u8 CHEAT_80069654; +//CODE.bss:80069655 +u8 CHEAT_80069655; +//CODE.bss:80069656 +u8 CHEAT_80069656; +//CODE.bss:80069657 +u8 CHEAT_AVAILABLE_LINEMODE; +//CODE.bss:80069658 +u8 CHEAT_AVAILABLE_2X_HEALTH; +//CODE.bss:80069659 +u8 CHEAT_AVAILABLE_2X_ARMOR; +//CODE.bss:8006965A +u8 CHEAT_AVAILABLE_BOND_INVIS; +//CODE.bss:8006965B +u8 CHEAT_AVAILABLE_INFINITE_AMMO; +//CODE.bss:8006965C +u8 CHEAT_AVAILABLE_DK_MODE; +//CODE.bss:8006965D +u8 CHEAT_AVAILABLE_EXTRA_WEAPONS; +//CODE.bss:8006965E +u8 CHEAT_AVAILABLE_TINY_BOND; +//CODE.bss:8006965F +u8 CHEAT_AVAILABLE_PAINTBALL; +//CODE.bss:80069660 +u8 CHEAT_AVAILABLE_10X_HEALTH; +//CODE.bss:80069661 +u8 CHEAT_AVAILABLE_MAGNUM; +//CODE.bss:80069662 +u8 CHEAT_AVAILABLE_LASER; +//CODE.bss:80069663 +u8 CHEAT_AVAILABLE_GOLDENGUN; +//CODE.bss:80069664 +u8 CHEAT_AVAILABLE_SILVERPP7; +//CODE.bss:80069665 +u8 CHEAT_AVAILABLE_GOLDPP7; +//CODE.bss:80069666 +u8 CHEAT_AVAILABLE_MP_INVINCIBILITY; +//CODE.bss:80069667 +u8 CHEAT_AVAILABLE_NO_MP_RADAR; +//CODE.bss:80069668 +u8 CHEAT_AVAILABLE_TURBO; +//CODE.bss:80069669 +u8 CHEAT_AVAILABLE_DEBUG_MODE; +//CODE.bss:8006966A +u8 CHEAT_AVAILABLE_FAST_ANI; +//CODE.bss:8006966B +u8 CHEAT_AVAILABLE_SLOW_ANI; +//CODE.bss:8006966C +u8 CHEAT_AVAILABLE_ENMY_ROCKETS; +//CODE.bss:8006966D +u8 CHEAT_AVAILABLE_2X_ROCKET; +//CODE.bss:8006966E +u8 CHEAT_AVAILABLE_2X_GRENADE_LAUNCHER; +//CODE.bss:8006966F +u8 CHEAT_AVAILABLE_2X_RCP90; +//CODE.bss:80069670 +u8 CHEAT_AVAILABLE_2X_THROWING_KNIVES; +//CODE.bss:80069671 +u8 CHEAT_AVAILABLE_2X_HUNTING_KNIVES; +//CODE.bss:80069672 +u8 CHEAT_AVAILABLE_2X_LASER; +//CODE.bss:80069673 +u8 CHEAT_80069673; +//CODE.bss:80069674 +u8 CHEAT_80069674; +u8 CHEAT_80069675; +u8 CHEAT_80069676; +u8 CHEAT_80069677; +u8 CHEAT_80069678[0x28]; + +//CODE.bss:800696A0 +u8 cheat_activated; +//CODE.bss:800696A1 +u8 CHEAT_AVAILABLE_EXTRA_CHARS; +//CODE.bss:800696A2 +u8 cheat_activated_1; +//CODE.bss:800696A3 +u8 cheat_activated_2; +//CODE.bss:800696A4 +u8 CHEAT_AVAILABLE_MAX_AMMO; +//CODE.bss:800696A5 +u8 cheat_activated_4; +//CODE.bss:800696A6 +u8 cheat_activated_5; +//CODE.bss:800696A7 +u8 cheat_activated_6; +//CODE.bss:800696A8 +u8 cheat_activated_7; +//CODE.bss:800696A9 +u8 cheat_activated_8; +//CODE.bss:800696AA +u8 cheat_activated_9; +//CODE.bss:800696AB +u8 cheat_activated_10; +//CODE.bss:800696AC +u8 cheat_activated_11; +//CODE.bss:800696AD +u8 cheat_activated_12; +//CODE.bss:800696AE +u8 cheat_activated_13; +//CODE.bss:800696AF +u8 cheat_activated_14; +//CODE.bss:800696B0 +u8 cheat_activated_15; +//CODE.bss:800696B1 +u8 cheat_activated_16; +//CODE.bss:800696B2 +u8 cheat_activated_17; +//CODE.bss:800696B3 +u8 cheat_activated_18; +//CODE.bss:800696B4 +u8 cheat_activated_19; +//CODE.bss:800696B5 +u8 cheat_activated_20; +//CODE.bss:800696B6 +u8 cheat_activated_21; +//CODE.bss:800696B7 +u8 cheat_activated_22; +//CODE.bss:800696B8 +u8 cheat_activated_23; +//CODE.bss:800696B9 +u8 cheat_activated_24; +//CODE.bss:800696BA +u8 cheat_activated_25; +//CODE.bss:800696BB +u8 cheat_activated_26; +//CODE.bss:800696BC +u8 cheat_activated_27; +//CODE.bss:800696BD +u8 cheat_activated_28; +//CODE.bss:800696BE +u8 cheat_activated_29; +//CODE.bss:800696BF +u8 cheat_activated_30; +//CODE.bss:800696C0 +u8 cheat_activated_31; +//CODE.bss:800696C1 +u8 cheat_activated_32; +//CODE.bss:800696C2 +u8 cheat_activated_33; +//CODE.bss:800696C3 +u8 cheat_activated_34; +//CODE.bss:800696C4 +u8 cheat_activated_35; +//CODE.bss:800696C5 +u8 cheat_activated_36; +//CODE.bss:800696C6 +u8 cheat_activated_37; +//CODE.bss:800696C7 +u8 cheat_activated_38; +//CODE.bss:800696C8 +u8 cheat_activated_39; +//CODE.bss:800696C9 +u8 cheat_activated_40; +//CODE.bss:800696CA +u8 cheat_activated_41; +//CODE.bss:800696CB +u8 cheat_activated_42; +//CODE.bss:800696CC +u8 cheat_activated_43; +//CODE.bss:800696CD +u8 cheat_activated_44; +//CODE.bss:800696CE +u8 cheat_activated_45; +//CODE.bss:800696CF +u8 cheat_activated_46; +//CODE.bss:800696D0 +u8 cheat_activated_47; +//CODE.bss:800696D1 +u8 cheat_activated_48; +//CODE.bss:800696D2 +u8 cheat_activated_49; +//CODE.bss:800696D3 +u8 cheat_activated_50; +//CODE.bss:800696D4 +u8 cheat_activated_51; +//CODE.bss:800696D5 +u8 cheat_activated_52; +//CODE.bss:800696D6 +u8 cheat_activated_53; +//CODE.bss:800696D7 +u8 cheat_activated_54; +//CODE.bss:800696D8 +u8 cheat_activated_55; +//CODE.bss:800696D9 +u8 cheat_activated_56; +//CODE.bss:800696DA +u8 cheat_activated_57; +//CODE.bss:800696DB +u8 cheat_activated_58; +//CODE.bss:800696DC +u8 cheat_activated_59; +//CODE.bss:800696DD +u8 cheat_activated_60; +//CODE.bss:800696DE +u8 cheat_activated_61; +//CODE.bss:800696DF +u8 cheat_activated_62; +//CODE.bss:800696E0 +u8 cheat_activated_63; +//CODE.bss:800696E1 +u8 cheat_activated_64; +//CODE.bss:800696E2 +u8 cheat_activated_65; +//CODE.bss:800696E3 +u8 cheat_activated_66; +//CODE.bss:800696E4 +u8 cheat_activated_67; +//CODE.bss:800696E5 +u8 cheat_activated_68; +//CODE.bss:800696E6 +u8 cheat_activated_69; +//CODE.bss:800696E7 +u8 cheat_activated_70; +//CODE.bss:800696E8 +u8 cheat_activated_71; +//CODE.bss:800696E9 +u8 cheat_activated_72; +//CODE.bss:800696EA +u8 cheat_activated_73; +//CODE.bss:800696EB +u8 cheat_activated_74; +//CODE.bss:800696EC +u8 cheat_activated_75; +//CODE.bss:800696ED +u8 cheat_activated_76; +//CODE.bss:800696EE +u8 cheat_activated_77; +//CODE.bss:800696EF +u8 cheat_activated_78; + + +//CODE.bss:800696F0 +s32 array_favweapon[4][2]; + +//CODE.bss:80069710 +s32 mp_char_cur_select_player1; +//CODE.bss:80069714 +s32 mp_char_cur_select_player2; +//CODE.bss:80069718 +s32 mp_char_cur_select_player3; +//CODE.bss:8006971C +s32 mp_char_cur_select_player4; +//CODE.bss:80069720 +s32 mp_char_prev_select_player1; +//CODE.bss:80069724 +s32 mp_char_prev_select_player2; +//CODE.bss:80069728 +s32 mp_char_prev_select_player3; +//CODE.bss:8006972C +s32 mp_char_prev_select_player4; +//CODE.bss:80069730 +s32 dword_CODE_bss_80069730; +//CODE.bss:80069734 +s32 dword_CODE_bss_80069734; +//CODE.bss:80069738 +s32 dword_CODE_bss_80069738; +//CODE.bss:8006973C +s32 dword_CODE_bss_8006973C; +//CODE.bss:80069740 +s32 has_selected_char_player1; +//CODE.bss:80069744 +s32 has_selected_char_player2; +//CODE.bss:80069748 +s32 has_selected_char_player3; +//CODE.bss:8006974C +s32 has_selected_char_player4; +//CODE.bss:80069750 +s32 size_mp_select_image_player1; +//CODE.bss:80069754 +s32 size_mp_select_image_player2; +//CODE.bss:80069758 +s32 size_mp_select_image_player3; +//CODE.bss:8006975C +s32 size_mp_select_image_player4; +//CODE.bss:80069760 +s32 dword_CODE_bss_80069760; +//CODE.bss:80069764 +s32 dword_CODE_bss_80069764; +//CODE.bss:80069768 +s32 dword_CODE_bss_80069768; +//CODE.bss:8006976C +s32 dword_CODE_bss_8006976C; +//CODE.bss:80069770 +s32 dword_CODE_bss_80069770; +//CODE.bss:80069774 +s32 dword_CODE_bss_80069774; +//CODE.bss:80069778 +s32 dword_CODE_bss_80069778; +//CODE.bss:8006977C +s32 current_mp_stage_highlighted; +//CODE.bss:80069780 +s32 dword_CODE_bss_80069780; +//CODE.bss:80069784 +s32 mission_difficulty_highlighted; +//CODE.bss:80069788 +s32 teamsize; +//CODE.bss:8006978C +s32 ptrbriefingdata; +//CODE.bss:80069790 +s32 newcheatunlocked; +//CODE.bss:80069794 +s32 highlight_enemy_reaction; +//CODE.bss:80069798 +s32 highlight_enemy_health; +//CODE.bss:8006979C +s32 highlight_enemy_accuracy; +//CODE.bss:800697A0 +s32 highlight_enemy_damage; + +//CODE.bss:800697A4 +s32 dword_CODE_bss_800697A4; + +//CODE.bss:800697A8 +s32 handicap_player1; +//CODE.bss:800697AC +s32 handicap_player2; +//CODE.bss:800697B0 +s32 handicap_player3; +//CODE.bss:800697B4 +s32 handicap_player4; +//CODE.bss:800697B8 +u32 controlstyle_player[4]; + +//CODE.bss:800697C8 +s32 highlight_players; +//CODE.bss:800697CC +s32 highlight_scenario; +//CODE.bss:800697D0 +s32 highlight_gameselect; +//CODE.bss:800697D4 +s32 highlight_gamelength; +//CODE.bss:800697D8 +s32 highlight_character; +//CODE.bss:800697DC +s32 highlight_weaponselect; +//CODE.bss:800697E0 +s32 highlight_health; +//CODE.bss:800697E4 +s32 highlight_controlstyle; +//CODE.bss:800697E8 +s32 highlight_aimadjustment; +//CODE.bss:800697EC .align 4 + +//CODE.bss:800697F0 +char dword_CODE_bss_800697F0[0x130]; + + +s32 current_menu = -1; +s32 menu_update = -1; +s32 maybe_prev_menu = -1; +s32 menu_timer = 0; + +s32 tab_1_selected = FALSE; +s32 tab_2_selected = FALSE; +s32 tab_3_selected = FALSE; +s32 tab_1_highlight = FALSE; +s32 tab_2_highlight = FALSE; +s32 tab_3_highlight = FALSE; + +s32 selected_folder_num = 0; +s32 selected_folder_num_copy = 0; + +s32 gamemode = GAMEMODE_INTRO; +s32 selected_stage = -1; +s32 briefingpage = -1; +DIFFICULTY selected_difficulty = DIFFICULTY_MULTI; + +s32 append_cheat_sp = FALSE; +s32 append_cheat_mp = FALSE; + +f32 cursor_h_pos = 220.0; +f32 cursor_v_pos = 165.0; + +s32 final_menu_briefing_page = 2; +s32 current_menu_briefing_page = 0; + +s32 folder_selection_screen_option_icon = 0; +s32 folder_selected_for_deletion = -1; +s32 folder_selected_for_deletion_choice = 1; + +s32 mission_failed_or_aborted = FALSE; +s32 mission_kia_flag = FALSE; + +s32 is_first_time_on_legal_screen = TRUE; +s32 is_first_time_on_main_menu = TRUE; + +s32 prev_keypresses = 0; +s32 D_8002A938 = 0; + +s32 maybe_is_in_menu = TRUE; +s32 screen_size = SCREEN_SIZE_320x240; + +s32 spectrum_related_flag = 0; +s32 is_emulating_spectrum = FALSE; + +s32 is_cheat_menu_available = FALSE; + +s32 ptr_logo_and_walletbond_DL = 0; +s32 ptr_menu_videobuffer = 0; +s32 something_legalscreen_constructor = 0; +s32 ptr_folder_object_instance = 0; +s32 set0_never_used = 0; +s32 set0_never_used_0 = 0; +s32 D_8002A968 = 0; +s32 D_8002A96C = 0; +struct rgba_val D_8002A970 = {0x96, 0x96, 0x96, 0}; +struct rgba_val D_8002A974 = {0x96, 0x96, 0x96, 0}; +struct rgba_val D_8002A978 = {0xFF, 0xFF, 0xFF, 0}; +struct rgba_val D_8002A97C = {0xFF, 0xFF, 0xFF, 0}; +struct rgba_val D_8002A980 = {0x4D, 0x4D, 0x2E, 0}; +struct rgba_val D_8002A984 = {0}; +struct rgba_val D_8002A988 = {0xFF, 0xFF, 0xFF, 0}; +struct rgba_val D_8002A98C = {0xFF, 0xFF, 0xFF, 0}; +u32 D_8002A990 = 0; +u32 D_8002A994 = 0; +u32 D_8002A998 = 0; +u32 D_8002A99C = 0; + +f32 slider_007_mode_reaction = 0.0f; +f32 slider_007_mode_health = 1.0f; +f32 slider_007_mode_accuracy = 1.0f; +f32 slider_007_mode_damage = 1.0f; + +u32 D_8002A9B0 = 0xA0000000; +u32 D_8002A9B4 = 0x96000000; +u32 D_8002A9B8 = 0x28000000; +u32 D_8002A9BC = 0x8C000000; +struct point D_8002A9C0 = {0.0f, 0.0f, 0.0f}; + +struct legal_screen_text D_8002A9CC[] = { + {220, 30, 1, 1, TEXT(LTITLE, 0x07), 0}, + { 34, 83, 0, 1, TEXT(LTITLE, 0x08), 0}, + {226, 84, 0, 1, TEXT(LTITLE, 0x09), 0}, + {226, 97, 0, 1, TEXT(LTITLE, 0x0A), 0}, + {226, 110, 0, 1, TEXT(LTITLE, 0x0B), 0}, + {226, 122, 0, 1, TEXT(LTITLE, 0x0C), 0}, + {227, 134, 0, 1, TEXT(LTITLE, 0x0D), 0}, + {219, 211, 0, 1, TEXT(LTITLE, 0x0E), 0}, + { 60, 169, 0, 1, TEXT(LTITLE, 0x0F), 0}, + { 60, 201, 0, 1, TEXT(LTITLE, 0x10), 0}, + { 99, 266, 0, 1, TEXT(LTITLE, 0x11), 0}, + { 80, 280, 0, 1, TEXT(LTITLE, 0x12), 0} +}; + +u32 D_8002AABC = 0; + +u32 D_8002AAC0 = 1; +u32 D_8002AAC4 = 3; +u32 D_8002AAC8 = 0; +u32 D_8002AACC = 0; +u32 D_8002AAD0 = 0; +u32 D_8002AAD4 = 0; +u32 D_8002AAD8 = 0; +u32 D_8002AADC = 0; +u32 D_8002AAE0 = 0; +u32 D_8002AAE4 = 0; +u32 D_8002AAE8 = 0; +u32 D_8002AAEC = 0; +u32 D_8002AAF0 = 0; +u32 D_8002AAF4 = 0; +u32 D_8002AAF8 = 0; +u32 D_8002AAFC = 0; +u32 D_8002AB00 = 0; +u32 D_8002AB04 = 0; +u32 D_8002AB08 = 0; + +u32 D_8002AB0C = 1; +u32 D_8002AB10 = 3; +u32 D_8002AB14 = 0; +u32 D_8002AB18 = 0; +u32 D_8002AB1C = 0; +u32 D_8002AB20 = 0; +u32 D_8002AB24 = 0; +u32 D_8002AB28 = 0; +u32 D_8002AB2C = 0; +u32 D_8002AB30 = 0; +u32 D_8002AB34 = 0; +u32 D_8002AB38 = 0; +u32 D_8002AB3C = 0; +u32 D_8002AB40 = 0; +u32 D_8002AB44 = 0; +u32 D_8002AB48 = 0; +u32 D_8002AB4C = 0; +u32 D_8002AB50 = 0; +u32 D_8002AB54 = 0; + +u32 D_8002AB58 = 1; +u32 D_8002AB5C = 3; +u32 D_8002AB60 = 0; +u32 D_8002AB64 = 0; +u32 D_8002AB68 = 0; +u32 D_8002AB6C = 0; +u32 D_8002AB70 = 0; +u32 D_8002AB74 = 0; +u32 D_8002AB78 = 0; +u32 D_8002AB7C = 0; +u32 D_8002AB80 = 0; +u32 D_8002AB84 = 0; +u32 D_8002AB88 = 0; +u32 D_8002AB8C = 0; +u32 D_8002AB90 = 0; + +f32 D_8002AB94 = -900.0f; +f32 D_8002AB98 = 800.0f; +f32 D_8002AB9C = 0.0f; +f32 D_8002ABA0 = 1800.0f; +f32 D_8002ABA4 = 800.0f; +f32 D_8002ABA8 = 0.0f; +f32 D_8002ABAC = -1800.0f; +f32 D_8002ABB0 = -200.0f; +f32 D_8002ABB4 = 0.0f; +f32 D_8002ABB8 = 900.0f; +f32 D_8002ABBC = -200.0f; +f32 D_8002ABC0 = 0.0f; + +f32 folder_option_COPY_left_bound = 0.0f; +f32 folder_option_COPY_upper_bound = 0.0f; +f32 folder_option_COPY_right_bound = 0.0f; +f32 folder_option_COPY_lower_bound = 0.0f; +f32 folder_option_ERASE_left_bound = 0.0f; +f32 folder_option_ERASE_upper_bound = 0.0f; +f32 folder_option_ERASE_right_bound = 0.0f; +f32 folder_option_ERASE_lower_bound = 0.0f; + +struct mission_folder_setup mission_folder_setup_entries[] = { + {"1", TEXT(LTITLE, 0x78), 0, LEVELID_NONE, 0, MISSION_HEADER, -1, 0}, + {"i", TEXT(LTITLE, 0x79), 0, LEVELID_DAM, 0, MISSION_PART, 0, "UbriefdamZ"}, + {"ii", TEXT(LTITLE, 0x7A), 0, LEVELID_FACILITY, 0, MISSION_PART, 1, "UbriefarkZ"}, + {"iii", TEXT(LTITLE, 0x7B), 0, LEVELID_RUNWAY, 0, MISSION_PART, 2, "UbriefrunZ"}, + {"2", TEXT(LTITLE, 0x7C), 0, LEVELID_NONE, 0, MISSION_HEADER, -1, 0}, + {"i", TEXT(LTITLE, 0x7D), 0, LEVELID_SURFACE, 0, MISSION_PART, 3, "UbriefsevxZ"}, + {"ii", TEXT(LTITLE, 0x7E), 0, LEVELID_BUNKER1, 0, MISSION_PART, 4, "UbriefsevbunkerZ"}, + {"3", TEXT(LTITLE, 0x7F), 0, LEVELID_NONE, 1, MISSION_HEADER, -1, 0}, + {"i", TEXT(LTITLE, 0x80), TEXT(LTITLE, 0x81), LEVELID_SILO, 1, MISSION_PART, 5, "UbriefsiloZ"}, + {"4", TEXT(LTITLE, 0x82), 0, LEVELID_NONE, 1, MISSION_HEADER, -1, 0}, + {"i", TEXT(LTITLE, 0x83), 0, LEVELID_FRIGATE, 1, MISSION_PART, 6, "UbriefdestZ"}, + {"5", TEXT(LTITLE, 0x7C), 0, LEVELID_NONE, 1, MISSION_HEADER, -1, 0}, + {"i", TEXT(LTITLE, 0x7D), 0, LEVELID_SURFACE2, 1, MISSION_PART, 7, "UbriefsevxbZ"}, + {"ii", TEXT(LTITLE, 0x7E), 0, LEVELID_BUNKER2, 1, MISSION_PART, 8, "UbriefsevbZ"}, + {"6", TEXT(LTITLE, 0x84), 0, LEVELID_NONE, 2, MISSION_HEADER, -1, 0}, + {"i", TEXT(LTITLE, 0x85), TEXT(LTITLE, 0x86), LEVELID_STATUE, 2, MISSION_PART, 9, "UbriefstatueZ"}, + {"ii", TEXT(LTITLE, 0x87), TEXT(LTITLE, 0x88), LEVELID_ARCHIVES, 2, MISSION_PART, 0xA, "UbriefarchZ"}, + {"iii", TEXT(LTITLE, 0x89), 0, LEVELID_STREETS, 2, MISSION_PART, 0xB, "UbriefpeteZ"}, + {"iv", TEXT(LTITLE, 0x8A), 0, LEVELID_DEPOT, 2, MISSION_PART, 0xC, "UbriefdepoZ"}, + {"v", TEXT(LTITLE, 0x8B), 0, LEVELID_TRAIN, 2, MISSION_PART, 0xD, "UbrieftraZ"}, + {"7", TEXT(LTITLE, 0x8C), 0, LEVELID_NONE, 3, MISSION_HEADER, -1, 0}, + {"i", TEXT(LTITLE, 0x8D), 0, LEVELID_JUNGLE, 3, MISSION_PART, 0xE, "UbriefjunZ"}, + {"ii", TEXT(LTITLE, 0x8E), TEXT(LTITLE, 0x8F), LEVELID_CONTROL, 3, MISSION_PART, 0xF, "UbriefcontrolZ"}, + {"iii", TEXT(LTITLE, 0x90), TEXT(LTITLE, 0x91), LEVELID_CAVERNS, 3, MISSION_PART, 0x10, "UbriefcaveZ"}, + {"iv", TEXT(LTITLE, 0x92), TEXT(LTITLE, 0x93), LEVELID_CRADLE, 3, MISSION_PART, 0x11, "UbriefcradZ"}, + {"8", TEXT(LTITLE, 0x94), 0, LEVELID_NONE, 4, MISSION_HEADER, -1, 0}, + {"i", TEXT(LTITLE, 0x95), TEXT(LTITLE, 0x96), LEVELID_AZTEC, 4, MISSION_PART, 0x12, "UbriefaztZ"}, + {"9", TEXT(LTITLE, 0x97), 0, LEVELID_NONE, 4, MISSION_HEADER, -1, 0}, + {"i", TEXT(LTITLE, 0x98), TEXT(LTITLE, 0x99), LEVELID_EGYPT, 4, MISSION_PART, 0x13, "UbriefcrypZ"}, + {NULL, 0, 0, LEVELID_NONE, -1, MISSION_PART, -1, 0} +}; + +u32 unknown_folderselect_constructor = 0x14; +u32 D_8002AF30 = 0x14; +u32 D_8002AF34 = 0x14; +u32 unknown_folderselect_constructor_0 = 0x32; +u32 D_8002AF3C = 0x32; +u32 D_8002AF40 = 0x32; + +u32 unknown_folderselect[] = { + 0, 1, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0 +}; + +u32 D_8002AF84[] = { + 0, 1, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0 +}; + +u32 D_8002AFC0 = 0; +u32 D_8002AFC4 = 0; +f32 D_8002AFC8 = 190.0; +f32 D_8002AFCC = -3300.0; +u32 cursor_xpos_table_mission_select[] = {73, 142, 212, 282, 352}; +u32 cursor_ypos_table_mission_select[] = {62, 131, 201, 270}; + +struct MP_game_length_settings multi_game_lengths[] = { + {TEXT(LTITLE, 0x2D), 0, 0, 0}, /* unlimited */ + {TEXT(LTITLE, 0x2E), 0, MINS_TO_TIMER60(5), 0}, /* 5 minutes */ + {TEXT(LTITLE, 0x2F), 0, MINS_TO_TIMER60(10), 0}, /* 10 minutes */ + {TEXT(LTITLE, 0x30), 0, MINS_TO_TIMER60(20), 0}, /* 20 minutes */ + {TEXT(LTITLE, 0x31), 0, 0, 5}, /* first to 5 points */ + {TEXT(LTITLE, 0x32), 0, 0, 10}, /* first to 10 points */ + {TEXT(LTITLE, 0x33), 0, 0, 20}, /* first to 20 points */ + {TEXT(LTITLE, 0x34), 0, 0, 0} /* last person alive wins */ +}; + +struct mp_stage_playercount mp_player_counts[] = { + {TEXT(LTITLE, 0x35), 2, 4}, + {TEXT(LTITLE, 0x36), 2, 4}, + {TEXT(LTITLE, 0x37), 2, 4}, + {TEXT(LTITLE, 0x38), 2, 4}, + {TEXT(LTITLE, 0x39), 2, 4}, + {TEXT(LTITLE, 0x3A), 4, 4}, + {TEXT(LTITLE, 0x3B), 4, 4}, + {TEXT(LTITLE, 0x3C), 3, 3} +}; + +struct mp_stage_setup multi_stage_setups[] = { + /* unlocked by default */ + {TEXT(LTITLE, 0x9A), TEXT(LTITLE, 0x9B), 16, LEVELID_NONE, -1, 1, 4}, + {TEXT(LTITLE, 0x9C), TEXT(LTITLE, 0x9D), 12, LEVELID_TEMPLE, -1, 1, 4}, + {TEXT(LTITLE, 0x9E), TEXT(LTITLE, 0x9F), 14, LEVELID_COMPLEX, -1, 1, 4}, + {TEXT(LTITLE, 0xA2), TEXT(LTITLE, 0xA3), 15, LEVELID_CAVES, -1, 1, 4}, + {TEXT(LTITLE, 0xA0), TEXT(LTITLE, 0xA1), 13, LEVELID_LIBRARY, -1, 1, 4}, + {TEXT(LTITLE, 0x10D), TEXT(LTITLE, 0x10E), 13, LEVELID_BASEMENT, -1, 1, 4}, + {TEXT(LTITLE, 0x10F), TEXT(LTITLE, 0x110), 13, LEVELID_STACK, -1, 1, 4}, + /* unlocked on level progression */ + {TEXT(LTITLE, 0xA4), TEXT(LTITLE, 0xA5), 04, LEVELID_FACILITY, SP_LEVEL_DAM, 1, 4}, + {TEXT(LTITLE, 0xA6), TEXT(LTITLE, 0xA7), 00, LEVELID_BUNKER2, SP_LEVEL_SURFACE2, 1, 3}, + {TEXT(LTITLE, 0xA8), TEXT(LTITLE, 0xA9), 02, LEVELID_ARCHIVES, SP_LEVEL_STATUE, 1, 3}, + {TEXT(LTITLE, 0xAA), TEXT(LTITLE, 0xAB), 01, LEVELID_CAVERNS, SP_LEVEL_CONTROL, 1, 3}, + {TEXT(LTITLE, 0xAC), TEXT(LTITLE, 0xAD), 10, LEVELID_EGYPT, SP_LEVEL_AZTEC, 1, 2} +}; + +u32 num_chars_selectable_mp = 8; + +#ifdef VERSION_US +struct MP_selectable_chars mp_chr_setup[] = { + {TEXT(LTITLE, 0xB8), MALE, 0, BODY_Tuxedo, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xBF), FEMALE, 9, BODY_Natalya_Skirt, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.96609998}, + {TEXT(LTITLE, 0xBC), MALE, 6, BODY_Trevelyan_Janus, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xBE), FEMALE, 8, BODY_Xenia, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xBB), MALE, 5, BODY_Ourumov, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0778}, + {TEXT(LTITLE, 0xBA), MALE, 4, BODY_Boris, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.9702}, + {TEXT(LTITLE, 0xBD), MALE, 7, BODY_Valentin_, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.93239999}, + {TEXT(LTITLE, 0xB9), MALE, 0xF, BODY_Siberian_Guard_1_Mishkin, HEAD_Male_Mishkin, 1.0}, + {TEXT(LTITLE, 0xC2), FEMALE, 0xC, BODY_Mayday, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xC1), MALE, 0xB, BODY_Jaws, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.199}, + {TEXT(LTITLE, 0xC3), MALE, 0xD, BODY_Oddjob, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT,0.78780001}, + {TEXT(LTITLE, 0xC0), MALE, 0xA, BODY_Baron_Samedi, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xFD), MALE, 0xE, BODY_Russian_Soldier, HEAD_Male_Mark, 1.0}, + {TEXT(LTITLE, 0xFC), MALE, 0xE, BODY_Russian_Infantry, HEAD_Male_Karl, 1.0}, + {TEXT(LTITLE, 0x107), MALE, 0xE, BODY_Scientist_1_Male, HEAD_Male_Dave_Dr_Doak, 1.0}, + {TEXT(LTITLE, 0x107), FEMALE, 0xE, BODY_Scientist_2_Female, HEAD_Female_Sally, 1.0}, + {TEXT(LTITLE, 0x100), MALE, 0xE, BODY_Russian_Commandant, HEAD_Male_Martin, 1.0}, + {TEXT(LTITLE, 0xFE), MALE, 0xE, BODY_Janus_Marine, HEAD_Male_Steve_Ellis, 1.0}, + {TEXT(LTITLE, 0x101), MALE, 0xE, BODY_Naval_Officer, HEAD_Male_Duncan, 1.0}, + {TEXT(LTITLE, 0x106), MALE, 0xE, BODY_Helicopter_Pilot, HEAD_Male_Pete, 1.0}, + {TEXT(LTITLE, 0xFB), MALE, 0xE, BODY_St_Petersburg_Guard, HEAD_Male_Ken, 1.0}, + {TEXT(LTITLE, 0x108), FEMALE, 0xE, BODY_Civilian_1_Female, HEAD_Female_Marion_Rosika, 1.0}, + {TEXT(LTITLE, 0x108), MALE, 0xE, BODY_Civilian_2, HEAD_Male_Graeme, 1.0}, + {TEXT(LTITLE, 0x108), MALE, 0xE, BODY_Civilian_3, HEAD_Male_Grant, 1.0}, + {TEXT(LTITLE, 0x108), MALE, 0xE, BODY_Civilian_4, HEAD_Male_Dwayne, 1.0}, + {TEXT(LTITLE, 0x102), MALE, 0xE, BODY_Siberian_Guard_1_Mishkin, HEAD_Male_Lee, 1.0}, + {TEXT(LTITLE, 0x103), MALE, 0xE, BODY_Arctic_Commando, HEAD_Male_Chris, 1.0}, + {TEXT(LTITLE, 0x102), MALE, 0xE, BODY_Siberian_Guard_2, HEAD_Male_Scott, 1.0}, + {TEXT(LTITLE, 0x104), MALE, 0xE, BODY_Siberian_Special_Forces, HEAD_Male_Alan, 1.0}, + {TEXT(LTITLE, 0xFA), MALE, 0xE, BODY_Jungle_Commando, HEAD_Male_Joel, 1.0}, + {TEXT(LTITLE, 0xFF), MALE, 0xE, BODY_Janus_Special_Forces, HEAD_Male_B, 1.0}, + {TEXT(LTITLE, 0x105), MALE, 0xE, BODY_Moonraker_Elite_1_Male, HEAD_Male_Neil, 1.0}, + {TEXT(LTITLE, 0x105), FEMALE, 0xE, BODY_Moonraker_Elite_2_Female, HEAD_Female_Vivien, 1.0}, + {TEXT(LTITLE, 0xC4), FEMALE, 0xE, BODY_Rosika, HEAD_Female_Marion_Rosika, 0.88529998}, + {TEXT(LTITLE, 0xC5), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Karl, 1.0446}, + {TEXT(LTITLE, 0xC6), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Martin, 1.0446}, + {TEXT(LTITLE, 0xC7), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Mark, 1.0446}, + {TEXT(LTITLE, 0xC8), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Dave_Dr_Doak, 1.0446}, + {TEXT(LTITLE, 0xC9), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Duncan, 1.0446}, + {TEXT(LTITLE, 0xCA), FEMALE, 0xE, BODY_Tuxedo, HEAD_Male_B, 1.0446}, + {TEXT(LTITLE, 0xCB), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Steve_Ellis, 1.0446}, + {TEXT(LTITLE, 0xCC), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Grant, 1.0446}, + {TEXT(LTITLE, 0xCD), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Graeme, 1.0446}, + {TEXT(LTITLE, 0xCE), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Ken, 1.0446}, + {TEXT(LTITLE, 0xCF), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Alan, 1.0446}, + {TEXT(LTITLE, 0xD0), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Pete, 1.0446}, + {TEXT(LTITLE, 0xD1), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Shaun, 1.0446}, + {TEXT(LTITLE, 0xD2), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Dwayne, 1.0446}, + {TEXT(LTITLE, 0xD3), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Des, 1.0446}, + {TEXT(LTITLE, 0xD4), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Chris, 1.0446}, + {TEXT(LTITLE, 0xD5), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Lee, 1.0446}, + {TEXT(LTITLE, 0xD6), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Neil, 1.0446}, + {TEXT(LTITLE, 0xD7), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Jim, 1.0446}, + {TEXT(LTITLE, 0xD8), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Robin, 1.0446}, + {TEXT(LTITLE, 0xD9), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Steve_H, 1.0446}, + {TEXT(LTITLE, 0xDA), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Terrorist, 1.0446}, + {TEXT(LTITLE, 0xDB), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Biker, 1.0446}, + {TEXT(LTITLE, 0xDC), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Joel, 1.0446}, + {TEXT(LTITLE, 0xDD), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Scott, 1.0446}, + {TEXT(LTITLE, 0xDE), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Joe, 1.0446}, + {TEXT(LTITLE, 0xDF), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Sally, 1.0446}, + {TEXT(LTITLE, 0xE0), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Marion_Rosika, 1.0446}, + {TEXT(LTITLE, 0xE1), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Mandy, 1.0446}, + {TEXT(LTITLE, 0xE2), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Vivien, 1.0446} +}; +#endif +#ifdef VERSION_JP +struct MP_selectable_chars mp_chr_setup[] = { + {TEXT(LTITLE, 0xB8), MALE, 0, BODY_Tuxedo, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xBF), FEMALE, 9, BODY_Natalya_Skirt, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.96609998}, + {TEXT(LTITLE, 0xBC), MALE, 6, BODY_Trevelyan_Janus, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xBE), FEMALE, 8, BODY_Xenia, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xBB), MALE, 5, BODY_Ourumov, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0778}, + {TEXT(LTITLE, 0xBA), MALE, 4, BODY_Boris, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.9702}, + {TEXT(LTITLE, 0xBD), MALE, 7, BODY_Valentin_, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.93239999}, + {TEXT(LTITLE, 0xB9), MALE, 0xF, BODY_Siberian_Guard_1_Mishkin, HEAD_Male_Mishkin, 1.0}, + {TEXT(LTITLE, 0xC2), FEMALE, 0xC, BODY_Mayday, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xC1), MALE, 0xB, BODY_Jaws, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.199}, + {TEXT(LTITLE, 0xC3), MALE, 0xD, BODY_Oddjob, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT,0.78780001}, + {TEXT(LTITLE, 0xC0), MALE, 0xA, BODY_Baron_Samedi, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0x11F), MALE, 0xE, BODY_Russian_Soldier, HEAD_Male_Mark, 1.0}, + {TEXT(LTITLE, 0x120), MALE, 0xE, BODY_Russian_Infantry, HEAD_Male_Karl, 1.0}, + {TEXT(LTITLE, 0x121), MALE, 0xE, BODY_Scientist_1_Male, HEAD_Male_Dave_Dr_Doak, 1.0}, + {TEXT(LTITLE, 0x121), FEMALE, 0xE, BODY_Scientist_2_Female, HEAD_Female_Sally, 1.0}, + {TEXT(LTITLE, 0x122), MALE, 0xE, BODY_Russian_Commandant, HEAD_Male_Martin, 1.0}, + {TEXT(LTITLE, 0x123), MALE, 0xE, BODY_Janus_Marine, HEAD_Male_Steve_Ellis, 1.0}, + {TEXT(LTITLE, 0x124), MALE, 0xE, BODY_Naval_Officer, HEAD_Male_Duncan, 1.0}, + {TEXT(LTITLE, 0x125), MALE, 0xE, BODY_Helicopter_Pilot, HEAD_Male_Pete, 1.0}, + {TEXT(LTITLE, 0x126), MALE, 0xE, BODY_St_Petersburg_Guard, HEAD_Male_Ken, 1.0}, + {TEXT(LTITLE, 0x127), FEMALE, 0xE, BODY_Civilian_1_Female, HEAD_Female_Marion_Rosika, 1.0}, + {TEXT(LTITLE, 0x127), MALE, 0xE, BODY_Civilian_2, HEAD_Male_Graeme, 1.0}, + {TEXT(LTITLE, 0x127), MALE, 0xE, BODY_Civilian_3, HEAD_Male_Grant, 1.0}, + {TEXT(LTITLE, 0x127), MALE, 0xE, BODY_Civilian_4, HEAD_Male_Dwayne, 1.0}, + {TEXT(LTITLE, 0x128), MALE, 0xE, BODY_Siberian_Guard_1_Mishkin, HEAD_Male_Lee, 1.0}, + {TEXT(LTITLE, 0x129), MALE, 0xE, BODY_Arctic_Commando, HEAD_Male_Chris, 1.0}, + {TEXT(LTITLE, 0x128), MALE, 0xE, BODY_Siberian_Guard_2, HEAD_Male_Scott, 1.0}, + {TEXT(LTITLE, 0x12A), MALE, 0xE, BODY_Siberian_Special_Forces, HEAD_Male_Alan, 1.0}, + {TEXT(LTITLE, 0x12B), MALE, 0xE, BODY_Jungle_Commando, HEAD_Male_Joel, 1.0}, + {TEXT(LTITLE, 0x12C), MALE, 0xE, BODY_Janus_Special_Forces, HEAD_Male_B, 1.0}, + {TEXT(LTITLE, 0x12D), MALE, 0xE, BODY_Moonraker_Elite_1_Male, HEAD_Male_Neil, 1.0}, + {TEXT(LTITLE, 0x12D), FEMALE, 0xE, BODY_Moonraker_Elite_2_Female, HEAD_Female_Vivien, 1.0}, + {TEXT(LTITLE, 0xC4), FEMALE, 0xE, BODY_Rosika, HEAD_Female_Marion_Rosika, 0.88529998}, + {TEXT(LTITLE, 0xC5), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Karl, 1.0446}, + {TEXT(LTITLE, 0xC6), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Martin, 1.0446}, + {TEXT(LTITLE, 0xC7), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Mark, 1.0446}, + {TEXT(LTITLE, 0xC8), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Dave_Dr_Doak, 1.0446}, + {TEXT(LTITLE, 0xC9), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Duncan, 1.0446}, + {TEXT(LTITLE, 0xCA), FEMALE, 0xE, BODY_Tuxedo, HEAD_Male_B, 1.0446}, + {TEXT(LTITLE, 0xCB), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Steve_Ellis, 1.0446}, + {TEXT(LTITLE, 0xCC), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Grant, 1.0446}, + {TEXT(LTITLE, 0xCD), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Graeme, 1.0446}, + {TEXT(LTITLE, 0xCE), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Ken, 1.0446}, + {TEXT(LTITLE, 0xCF), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Alan, 1.0446}, + {TEXT(LTITLE, 0xD0), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Pete, 1.0446}, + {TEXT(LTITLE, 0xD1), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Shaun, 1.0446}, + {TEXT(LTITLE, 0xD2), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Dwayne, 1.0446}, + {TEXT(LTITLE, 0xD3), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Des, 1.0446}, + {TEXT(LTITLE, 0xD4), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Chris, 1.0446}, + {TEXT(LTITLE, 0xD5), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Lee, 1.0446}, + {TEXT(LTITLE, 0xD6), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Neil, 1.0446}, + {TEXT(LTITLE, 0xD7), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Jim, 1.0446}, + {TEXT(LTITLE, 0xD8), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Robin, 1.0446}, + {TEXT(LTITLE, 0xD9), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Steve_H, 1.0446}, + {TEXT(LTITLE, 0xDA), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Terrorist, 1.0446}, + {TEXT(LTITLE, 0xDB), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Biker, 1.0446}, + {TEXT(LTITLE, 0xDC), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Joel, 1.0446}, + {TEXT(LTITLE, 0xDD), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Scott, 1.0446}, + {TEXT(LTITLE, 0xDE), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Joe, 1.0446}, + {TEXT(LTITLE, 0xDF), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Sally, 1.0446}, + {TEXT(LTITLE, 0xE0), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Marion_Rosika, 1.0446}, + {TEXT(LTITLE, 0xE1), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Mandy, 1.0446}, + {TEXT(LTITLE, 0xE2), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Vivien, 1.0446} +}; +#endif + +struct MP_handicap_menu MP_handicap_table[] = { + {TEXT(LTITLE, 0x3D), 0, 10.0}, + {TEXT(LTITLE, 0x3E), 0, 2.8560996}, + {TEXT(LTITLE, 0x3F), 0, 2.1969998}, + {TEXT(LTITLE, 0x40), 0, 1.6899998}, + {TEXT(LTITLE, 0x41), 0, 1.3}, + {TEXT(LTITLE, 0x42), 0, 1.0}, + {TEXT(LTITLE, 0x43), 0, 0.76923078}, + {TEXT(LTITLE, 0x44), 0, 0.59171599}, + {TEXT(LTITLE, 0x45), 0, 0.45516616}, + {TEXT(LTITLE, 0x46), 0, 0.35012782}, + {TEXT(LTITLE, 0x47), 0, 0.1} +}; + +struct MP_controller_configuration_menu MP_controller_configuration_table[] = { + {0x9D, 0x15, 0, 1}, + {0x9D, 0x16, 1, 1}, + {0x9D, 0x17, 2, 1}, + {0x9D, 0x18, 3, 1}, + {0x9D, 0x19, 4, 2}, + {0x9D, 0x1A, 5, 2}, + {0x9D, 0x1B, 6, 2}, + {0x9D, 0x1C, 7, 2} +}; + +struct MP_sight_aim_settings mp_sight_adjust_table[] = { + {0x9C, 0x48, 0, 0}, + {0x9C, 0x49, 1, 0}, + {0x9C, 0x4A, 0, 1}, + {0x9C, 0x4B, 1, 1} +}; + +s32 selected_num_players = 0; +s32 player_1_char = -1; +s32 player_2_char = -1; +s32 player_3_char = -1; +s32 player_4_char = -1; +s32 MP_stage_selected = MP_STAGE_TEMPLE; +s32 game_length = 2; +s32 aim_sight_adjustment = 3; +s32 scenario = SCENARIO_NORMAL; +s32 unlock_stage_select = 1; +s32 unlock_game_length = 1; +s32 unlock_chars = 1; +s32 unlock_weapon_select = 1; +s32 unlock_handicap = 1; +s32 unlock_control_style = 1; +s32 unlock_aim_sight = 1; + +u32 D_8002B560 = 0; + +struct solo_target_times solo_target_time_array[] = { + {0, 160, 0}, + {0, 0, 125}, + {300, 0, 0}, + {0, 210, 0}, + {0, 0, 240}, + {180, 0, 0}, + {0, 270, 0}, + {0, 0, 255}, + {90, 0, 0}, + {0, 195, 0}, + {0, 0, 80}, + {105, 0, 0}, + {0, 100, 0}, + {0, 0, 325}, + {225, 0, 0}, + {0, 600, 0}, + {0, 0, 570}, + {135, 0, 0}, + {0, 540, 0}, + {0, 0, 360} +}; + +u32 D_8002B5DC = 0; +u32 D_8002B5E0 = 0; + + +u32 MP_menu_selected_option = 0; +u32 do_not_play_intro_movie = 0; +u32 randomly_selected_intro_animation = 0; +u32 intro_animation_count = 0; +u32 objinstance = 0; +u32 ptrobjinstance = 0; +u32 full_actor_intro = 0; + +struct intro_char intro_char_table[] = { + {BODY_Tuxedo, 0x4E, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0xE4), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Special_Operations_Uniform, 0x4A, TEXT(LTITLE, 0xE5), TEXT(LTITLE, 0xE8), TEXT(LTITLE, 0xE9), 0, 0}, + {BODY_Natalya_Skirt, 0xFFFFFFFF, TEXT(LTITLE, 0xE5), TEXT(LTITLE, 0xEA), TEXT(LTITLE, 0xE3), 0, 0}, + {BODY_Trevelyan_006, 0xFFFFFFFF, TEXT(LTITLE, 0xE5), TEXT(LTITLE, 0xEB), TEXT(LTITLE, 0xEC), 0, 0}, + {BODY_Xenia, 0xFFFFFFFF, TEXT(LTITLE, 0xE6), TEXT(LTITLE, 0xED), TEXT(LTITLE, 0xEE), 0, 0}, + {BODY_Ourumov, 0xFFFFFFFF, TEXT(LTITLE, 0xE6), TEXT(LTITLE, 0xEF), TEXT(LTITLE, 0xF0), 0, 0}, + {BODY_Boris, 0xFFFFFFFF, TEXT(LTITLE, 0xE6), TEXT(LTITLE, 0xF1), TEXT(LTITLE, 0xE3), 0, 0}, + {BODY_Valentin_, 0xFFFFFFFF, TEXT(LTITLE, 0xE6), TEXT(LTITLE, 0xF2), TEXT(LTITLE, 0xF3), 0, 0}, + {BODY_Siberian_Guard_1_Mishkin, 0x45, TEXT(LTITLE, 0xE6), TEXT(LTITLE, 0xF4), TEXT(LTITLE, 0xF5), 0, 0}, + {BODY_Russian_Soldier, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0xFD), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Russian_Infantry, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0xFC), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Scientist_1_Male, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x107), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Scientist_2_Female, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x107), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Russian_Commandant, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x100), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Janus_Marine, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0xFE), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Naval_Officer, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x101), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Helicopter_Pilot, 0xFFFFFFFF, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x106), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_St_Petersburg_Guard, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0xFB), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Civilian_1_Female, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x108), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Civilian_2, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x108), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Civilian_3, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x108), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Civilian_4, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x108), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Siberian_Guard_1_Mishkin, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x102), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Arctic_Commando, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x103), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Siberian_Guard_2, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x102), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Siberian_Special_Forces, 0xFFFFFFFF, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x104), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Jungle_Commando, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0xFA), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Janus_Special_Forces, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0xFF), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Moonraker_Elite_1_Male, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x105), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Moonraker_Elite_2_Female, 0xFFFFFF9F, TEXT(LTITLE, 0xE3), TEXT(LTITLE, 0x105), TEXT(LTITLE, 0xE3), 0, 1}, + {BODY_Mayday, 0xFFFFFFFF, TEXT(LTITLE, 0xE7), TEXT(LTITLE, 0xF6), TEXT(LTITLE, 0xE3), 0, 0}, + {BODY_Jaws, 0xFFFFFFFF, TEXT(LTITLE, 0xE7), TEXT(LTITLE, 0xF7), TEXT(LTITLE, 0xE3), 0, 0}, + {BODY_Oddjob, 0xFFFFFFFF, TEXT(LTITLE, 0xE7), TEXT(LTITLE, 0xF8), TEXT(LTITLE, 0xE3), 0, 0}, + {BODY_Baron_Samedi, 0xFFFFFFFF, TEXT(LTITLE, 0xE7), TEXT(LTITLE, 0xF9), TEXT(LTITLE, 0xE3), 0, 0}, + {0xFFFFFFFF, 0, 0, 0, 0, 0, 0} +}; + +struct intro_animation intro_animation_table[] = { + {0x3F, 98.0, 1.0, 0}, + {0x42, 21.0, 1.0, 1}, + {0x43, 26.0, 1.0, 1}, + {0x48, 0.0, 1.0, 1}, + {0x4C, 0.0, 1.0, 1}, + {0x59, 0.0, 0.91000003, 1}, + {0x62, 31.0, 1.0, 1}, + {0x63, 0.0, 1.0, 1}, + {0x64, 0.0, 1.0, 1}, + {0x66, 0.0, 1.0, 1}, + {0x67, 0.0, 1.0, 1}, + {0x99, 248.0, 1.0, 0}, + {0xA3, 150.0, 1.0, 0}, + {0x46, 0.0, 0.89999998, 1}, + {0x4A, 0.0, 0.89999998, 1}, + {0x50, 0.0, 0.89999998, 1}, + {0x61, 51.0, 1.0, 1}, + {0x96, 0.0, 0.89999998, 1}, + {0x97, 0.0, 0.89999998, 1}, + {0x98, 37.0, 1.0, 2}, + {0xA1, 300.0, 1.0, 2}, + {0xA0, 120.0, 1.0, 2}, + {0xFFFFFFFF, 0.0, 0.0, 0} +}; + +u32 D_8002BA2C = 0; +u32 D_8002BA30 = 0; +u32 D_8002BA34 = 0; + +PROPS random_rifles_in_intro[] = +{ + PROP_chrkalash, + PROP_chrm16, + PROP_chrfnp90, + PROP_chrautoshot, + PROP_chrgrenadelaunch, + PROP_chrsniperrifle +}; + +PROPS random_pistols_in_intro[] = +{ + PROP_chrwppk, + PROP_chrwppksil, + PROP_chrskorpion, + PROP_chruzi, + PROP_chruzi, + PROP_chrtt33, + PROP_chrtt33, + PROP_chrruger, + PROP_chrlaser, + PROP_chrgolden +}; + +f32 D_8002BA78 = 0.0f; +f32 D_8002BA7C = 0.0f; +f32 D_8002BA80 = 1.0f; + +f32 D_8002BA84 = 0.0f; +f32 D_8002BA88 = 0.0f; +f32 D_8002BA8C = 0.0f; + +f32 D_8002BA90 = 0.0f; +f32 D_8002BA94 = 1.0f; +f32 D_8002BA98 = 0.0f; + +u32 D_8002BA9C = 0; +u32 D_8002BAA0 = 1; +u32 D_8002BAA4 = 3; +u32 D_8002BAA8 = 0; +u32 D_8002BAAC = 0; +u32 D_8002BAB0 = 0; +u32 D_8002BAB4 = 0; +u32 D_8002BAB8 = 0; +u32 D_8002BABC = 0; +u32 D_8002BAC0 = 0; +u32 D_8002BAC4 = 0; +u32 D_8002BAC8 = 0; +u32 D_8002BACC = 0; +u32 D_8002BAD0 = 0; +u32 D_8002BAD4 = 0; +u32 D_8002BAD8 = 0; +u32 D_8002BADC = 0; + +f32 D_8002BAE0 = 40.0f; +f32 D_8002BAE4 = 25.0f; +u32 D_8002BAE8 = 0; +u32 D_8002BAEC = 1; + +u16 color_palette_entries_50_percent[] = {1, 0x1F, 0x3C1, 0x3DF, 0x7801, 0x781F, 0x7BC1, 0x7BDF}; + + + + + + +#ifdef NONMATCHING +s32 write_text_at_abs_coord(s32 arg12, s32 arg13, s32 arg14, s32 arg15, s32 arg16, s32 arg17, s32 arg18) { + // Node 0 + if (j_text_trigger != 0) + { + // Node 1 + jp_text_write_stuff(arg12, arg13, arg14, (s32) ((((D_8002A9B0 << 0x18) | (D_8002A9B4 << 0x10)) | (D_8002A9B8 << 8)) | D_8002A9BC), arg15, arg16, arg17, arg18); + return; + // (possible return value: en_text_write_stuff(arg12, arg13, arg14, arg15, arg16, arg17, arg18)) + } + // Node 2 + en_text_write_stuff(arg12, arg13, arg14, arg15, arg16, arg17, arg18); + return; + // (possible return value: en_text_write_stuff(arg12, arg13, arg14, arg15, arg16, arg17, arg18)) +} +#else +GLOBAL_ASM( +.text +glabel write_text_at_abs_coord +/* 03E290 7F009760 3C0E8005 */ lui $t6, %hi(j_text_trigger) +/* 03E294 7F009764 8DCE84D0 */ lw $t6, %lo(j_text_trigger)($t6) +/* 03E298 7F009768 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 03E29C 7F00976C AFBF0034 */ sw $ra, 0x34($sp) +/* 03E2A0 7F009770 11C00021 */ beqz $t6, .L7F0097F8 +/* 03E2A4 7F009774 8FAD0048 */ lw $t5, 0x48($sp) +/* 03E2A8 7F009778 3C088003 */ lui $t0, %hi(D_8002A9B0) +/* 03E2AC 7F00977C 3C0A8003 */ lui $t2, %hi(D_8002A9B4) +/* 03E2B0 7F009780 914AA9B4 */ lbu $t2, %lo(D_8002A9B4)($t2) +/* 03E2B4 7F009784 9108A9B0 */ lbu $t0, %lo(D_8002A9B0)($t0) +/* 03E2B8 7F009788 8FB8004C */ lw $t8, 0x4c($sp) +/* 03E2BC 7F00978C 3C0D8003 */ lui $t5, %hi(D_8002A9B8) +/* 03E2C0 7F009790 91ADA9B8 */ lbu $t5, %lo(D_8002A9B8)($t5) +/* 03E2C4 7F009794 8FAF0048 */ lw $t7, 0x48($sp) +/* 03E2C8 7F009798 000A5C00 */ sll $t3, $t2, 0x10 +/* 03E2CC 7F00979C 00084E00 */ sll $t1, $t0, 0x18 +/* 03E2D0 7F0097A0 AFB80014 */ sw $t8, 0x14($sp) +/* 03E2D4 7F0097A4 8FB90050 */ lw $t9, 0x50($sp) +/* 03E2D8 7F0097A8 3C188003 */ lui $t8, %hi(D_8002A9BC) +/* 03E2DC 7F0097AC 012B6025 */ or $t4, $t1, $t3 +/* 03E2E0 7F0097B0 9318A9BC */ lbu $t8, %lo(D_8002A9BC)($t8) +/* 03E2E4 7F0097B4 000D7200 */ sll $t6, $t5, 8 +/* 03E2E8 7F0097B8 AFAF0010 */ sw $t7, 0x10($sp) +/* 03E2EC 7F0097BC 8FAB0060 */ lw $t3, 0x60($sp) +/* 03E2F0 7F0097C0 8FA9005C */ lw $t1, 0x5c($sp) +/* 03E2F4 7F0097C4 8FA80054 */ lw $t0, 0x54($sp) +/* 03E2F8 7F0097C8 8FAA0058 */ lw $t2, 0x58($sp) +/* 03E2FC 7F0097CC 018E7825 */ or $t7, $t4, $t6 +/* 03E300 7F0097D0 AFB90018 */ sw $t9, 0x18($sp) +/* 03E304 7F0097D4 01F8C825 */ or $t9, $t7, $t8 +/* 03E308 7F0097D8 AFB9001C */ sw $t9, 0x1c($sp) +/* 03E30C 7F0097DC AFAB002C */ sw $t3, 0x2c($sp) +/* 03E310 7F0097E0 AFA90028 */ sw $t1, 0x28($sp) +/* 03E314 7F0097E4 AFA80020 */ sw $t0, 0x20($sp) +/* 03E318 7F0097E8 0FC2B9BB */ jal jp_text_write_stuff +/* 03E31C 7F0097EC AFAA0024 */ sw $t2, 0x24($sp) +/* 03E320 7F0097F0 10000010 */ b .L7F009834 +/* 03E324 7F0097F4 00402025 */ move $a0, $v0 +.L7F0097F8: +/* 03E328 7F0097F8 8FAC004C */ lw $t4, 0x4c($sp) +/* 03E32C 7F0097FC 8FAE0050 */ lw $t6, 0x50($sp) +/* 03E330 7F009800 8FAF0054 */ lw $t7, 0x54($sp) +/* 03E334 7F009804 8FB80058 */ lw $t8, 0x58($sp) +/* 03E338 7F009808 8FB9005C */ lw $t9, 0x5c($sp) +/* 03E33C 7F00980C 8FA80060 */ lw $t0, 0x60($sp) +/* 03E340 7F009810 AFAD0010 */ sw $t5, 0x10($sp) +/* 03E344 7F009814 AFAC0014 */ sw $t4, 0x14($sp) +/* 03E348 7F009818 AFAE0018 */ sw $t6, 0x18($sp) +/* 03E34C 7F00981C AFAF001C */ sw $t7, 0x1c($sp) +/* 03E350 7F009820 AFB80020 */ sw $t8, 0x20($sp) +/* 03E354 7F009824 AFB90024 */ sw $t9, 0x24($sp) +/* 03E358 7F009828 0FC2B6AF */ jal en_text_write_stuff +/* 03E35C 7F00982C AFA80028 */ sw $t0, 0x28($sp) +/* 03E360 7F009830 00402025 */ move $a0, $v0 +.L7F009834: +/* 03E364 7F009834 8FBF0034 */ lw $ra, 0x34($sp) +/* 03E368 7F009838 27BD0038 */ addiu $sp, $sp, 0x38 +/* 03E36C 7F00983C 00801025 */ move $v0, $a0 +/* 03E370 7F009840 03E00008 */ jr $ra +/* 03E374 7F009844 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 check_if_cheat_available(s32 cheat) +{ + s32 uVar1; + save_file *folder; + u32 uVar2; + u32 BVar3; + + switch(cheat) { + case 1: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 0xd: + case 0x10: + case 0x16: + case 0x19: + case 0x23: + case 0x24: + case 0x25: + case 0x26: + case 0x27: + case 0x28: + case 0x29: + case 0x2a: + case 0x2b: + case 0x2c: + case 0x2d: + case 0x2e: + case 0x2f: + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x3a: + case 0x3b: + case 0x3c: + case 0x3d: + case 0x3e: + case 0x3f: + case 0x40: + case 0x41: + case 0x42: + case 0x43: + case 0x44: + case 0x45: + case 0x46: + case 0x47: + case 0x48: + case 0x49: + case 0x4a: + uVar1 = 0; + break; + case 2: + folder = getEEPROMforFoldernum(selected_folder_num); + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),1); + break; + case 3: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0x13); + break; + case 10: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),10); + break; + case 0xb: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0xf); + break; + case 0xc: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),2); + break; + case 0xe: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),7); + break; + case 0xf: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0); + break; + case 0x11: + uVar2 = check_cradle_completed_in_folder(selected_folder_num); + uVar1 = SEXT48((int)uVar2); + break; + case 0x12: + uVar2 = check_aztec_completed_in_folder_secret_00(selected_folder_num); + uVar1 = SEXT48((int)uVar2); + break; + case 0x13: + BVar3 = check_egypt_completed_in_folder_00(selected_folder_num); + uVar1 = SEXT48((int)BVar3); + break; + case 0x14: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0xd); + break; + case 0x15: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0x11); + break; + case 0x17: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),6); + break; + case 0x18: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),5); + break; + case 0x1a: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),9); + break; + case 0x1b: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0xc); + break; + case 0x1c: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0xb); + break; + case 0x1d: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),4); + break; + case 0x1e: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),3); + break; + case 0x1f: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0x10); + break; + case 0x20: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),8); + break; + case 0x21: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0xe); + break; + case 0x22: + uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0x12); + break; + default: + do { + /* WARNING: Do nothing block with infinite loop */ + } while( true ); + } + return uVar1; +} +#else +GLOBAL_ASM( +.late_rodata + +glabel cheat_available_table + .word default_nonmenucheats + .word cheat_invincible + .word cheat_allguns + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word cheat_invisible + .word cheat_infinite_ammo + .word cheat_dk_mode + .word default_nonmenucheats + .word cheat_tinybond + .word cheat_paintball + .word default_nonmenucheats + .word cheat_unlockcradle + .word cheat_unlockaztec + .word cheat_unlockegypt + .word cheat_silverpp7 + .word cheat_goldpp7 + .word default_nonmenucheats + .word cheat_noradar + .word cheat_turbo + .word default_nonmenucheats + .word cheat_fast + .word cheat_slow + .word cheat_enemyrockets + .word cheat_2xrocket + .word cheat_2xgrenadelauncher + .word cheat_2xrcp90 + .word cheat_2xthrowingknife + .word cheat_2xhuntingknife + .word cheat_2xlaser + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + .word default_nonmenucheats + /*HACK FIXME*/ +/* .word default_nonmenucheats */ +/* .word default_nonmenucheats */ +/* .word default_nonmenucheats */ +/* .word default_nonmenucheats */ +/* .word default_nonmenucheats */ +/* .word default_nonmenucheats */ +/* .word default_nonmenucheats */ +/* .word default_nonmenucheats */ +/* .word default_nonmenucheats */ +/* .word default_nonmenucheats */ + +.text +glabel check_if_cheat_available +/* 03E378 7F009848 248EFFFF */ addiu $t6, $a0, -1 +/* 03E37C 7F00984C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03E380 7F009850 2DC1004A */ sltiu $at, $t6, 0x4a +/* 03E384 7F009854 102000B8 */ beqz $at, .L7F009B38 +/* 03E388 7F009858 AFBF0014 */ sw $ra, 0x14($sp) +/* 03E38C 7F00985C 000E7080 */ sll $t6, $t6, 2 +/* 03E390 7F009860 3C018005 */ lui $at, %hi(cheat_available_table) +/* 03E394 7F009864 002E0821 */ addu $at, $at, $t6 +/* 03E398 7F009868 8C2E18A0 */ lw $t6, %lo(cheat_available_table)($at) +/* 03E39C 7F00986C 01C00008 */ jr $t6 +/* 03E3A0 7F009870 00000000 */ nop +default_nonmenucheats: +/* 03E3A4 7F009874 100000B2 */ b .L7F009B40 +/* 03E3A8 7F009878 00001025 */ move $v0, $zero +cheat_invincible: +/* 03E3AC 7F00987C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E3B0 7F009880 0FC07771 */ jal get_save_folder_ptr +/* 03E3B4 7F009884 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E3B8 7F009888 00402025 */ move $a0, $v0 +/* 03E3BC 7F00988C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E3C0 7F009890 24050001 */ li $a1, 1 +/* 03E3C4 7F009894 100000AB */ b .L7F009B44 +/* 03E3C8 7F009898 8FBF0014 */ lw $ra, 0x14($sp) +cheat_allguns: +/* 03E3CC 7F00989C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E3D0 7F0098A0 0FC07771 */ jal get_save_folder_ptr +/* 03E3D4 7F0098A4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E3D8 7F0098A8 00402025 */ move $a0, $v0 +/* 03E3DC 7F0098AC 0FC07748 */ jal check_if_cheat_unlocked +/* 03E3E0 7F0098B0 24050013 */ li $a1, 19 +/* 03E3E4 7F0098B4 100000A3 */ b .L7F009B44 +/* 03E3E8 7F0098B8 8FBF0014 */ lw $ra, 0x14($sp) +cheat_noradar: +/* 03E3EC 7F0098BC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E3F0 7F0098C0 0FC07771 */ jal get_save_folder_ptr +/* 03E3F4 7F0098C4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E3F8 7F0098C8 00402025 */ move $a0, $v0 +/* 03E3FC 7F0098CC 0FC07748 */ jal check_if_cheat_unlocked +/* 03E400 7F0098D0 24050006 */ li $a1, 6 +/* 03E404 7F0098D4 1000009B */ b .L7F009B44 +/* 03E408 7F0098D8 8FBF0014 */ lw $ra, 0x14($sp) +cheat_fast: +/* 03E40C 7F0098DC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E410 7F0098E0 0FC07771 */ jal get_save_folder_ptr +/* 03E414 7F0098E4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E418 7F0098E8 00402025 */ move $a0, $v0 +/* 03E41C 7F0098EC 0FC07748 */ jal check_if_cheat_unlocked +/* 03E420 7F0098F0 24050009 */ li $a1, 9 +/* 03E424 7F0098F4 10000093 */ b .L7F009B44 +/* 03E428 7F0098F8 8FBF0014 */ lw $ra, 0x14($sp) +cheat_invisible: +/* 03E42C 7F0098FC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E430 7F009900 0FC07771 */ jal get_save_folder_ptr +/* 03E434 7F009904 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E438 7F009908 00402025 */ move $a0, $v0 +/* 03E43C 7F00990C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E440 7F009910 2405000A */ li $a1, 10 +/* 03E444 7F009914 1000008B */ b .L7F009B44 +/* 03E448 7F009918 8FBF0014 */ lw $ra, 0x14($sp) +cheat_infinite_ammo: +/* 03E44C 7F00991C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E450 7F009920 0FC07771 */ jal get_save_folder_ptr +/* 03E454 7F009924 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E458 7F009928 00402025 */ move $a0, $v0 +/* 03E45C 7F00992C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E460 7F009930 2405000F */ li $a1, 15 +/* 03E464 7F009934 10000083 */ b .L7F009B44 +/* 03E468 7F009938 8FBF0014 */ lw $ra, 0x14($sp) +cheat_dk_mode: +/* 03E46C 7F00993C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E470 7F009940 0FC07771 */ jal get_save_folder_ptr +/* 03E474 7F009944 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E478 7F009948 00402025 */ move $a0, $v0 +/* 03E47C 7F00994C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E480 7F009950 24050002 */ li $a1, 2 +/* 03E484 7F009954 1000007B */ b .L7F009B44 +/* 03E488 7F009958 8FBF0014 */ lw $ra, 0x14($sp) +cheat_tinybond: +/* 03E48C 7F00995C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E490 7F009960 0FC07771 */ jal get_save_folder_ptr +/* 03E494 7F009964 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E498 7F009968 00402025 */ move $a0, $v0 +/* 03E49C 7F00996C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E4A0 7F009970 24050007 */ li $a1, 7 +/* 03E4A4 7F009974 10000073 */ b .L7F009B44 +/* 03E4A8 7F009978 8FBF0014 */ lw $ra, 0x14($sp) +cheat_slow: +/* 03E4AC 7F00997C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E4B0 7F009980 0FC07771 */ jal get_save_folder_ptr +/* 03E4B4 7F009984 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E4B8 7F009988 00402025 */ move $a0, $v0 +/* 03E4BC 7F00998C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E4C0 7F009990 2405000C */ li $a1, 12 +/* 03E4C4 7F009994 1000006B */ b .L7F009B44 +/* 03E4C8 7F009998 8FBF0014 */ lw $ra, 0x14($sp) +cheat_paintball: +/* 03E4CC 7F00999C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E4D0 7F0099A0 0FC07771 */ jal get_save_folder_ptr +/* 03E4D4 7F0099A4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E4D8 7F0099A8 00402025 */ move $a0, $v0 +/* 03E4DC 7F0099AC 0FC07748 */ jal check_if_cheat_unlocked +/* 03E4E0 7F0099B0 00002825 */ move $a1, $zero +/* 03E4E4 7F0099B4 10000063 */ b .L7F009B44 +/* 03E4E8 7F0099B8 8FBF0014 */ lw $ra, 0x14($sp) +cheat_silverpp7: +/* 03E4EC 7F0099BC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E4F0 7F0099C0 0FC07771 */ jal get_save_folder_ptr +/* 03E4F4 7F0099C4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E4F8 7F0099C8 00402025 */ move $a0, $v0 +/* 03E4FC 7F0099CC 0FC07748 */ jal check_if_cheat_unlocked +/* 03E500 7F0099D0 2405000D */ li $a1, 13 +/* 03E504 7F0099D4 1000005B */ b .L7F009B44 +/* 03E508 7F0099D8 8FBF0014 */ lw $ra, 0x14($sp) +cheat_goldpp7: +/* 03E50C 7F0099DC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E510 7F0099E0 0FC07771 */ jal get_save_folder_ptr +/* 03E514 7F0099E4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E518 7F0099E8 00402025 */ move $a0, $v0 +/* 03E51C 7F0099EC 0FC07748 */ jal check_if_cheat_unlocked +/* 03E520 7F0099F0 24050011 */ li $a1, 17 +/* 03E524 7F0099F4 10000053 */ b .L7F009B44 +/* 03E528 7F0099F8 8FBF0014 */ lw $ra, 0x14($sp) +cheat_enemyrockets: +/* 03E52C 7F0099FC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E530 7F009A00 0FC07771 */ jal get_save_folder_ptr +/* 03E534 7F009A04 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E538 7F009A08 00402025 */ move $a0, $v0 +/* 03E53C 7F009A0C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E540 7F009A10 2405000B */ li $a1, 11 +/* 03E544 7F009A14 1000004B */ b .L7F009B44 +/* 03E548 7F009A18 8FBF0014 */ lw $ra, 0x14($sp) +cheat_2xrocket: +/* 03E54C 7F009A1C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E550 7F009A20 0FC07771 */ jal get_save_folder_ptr +/* 03E554 7F009A24 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E558 7F009A28 00402025 */ move $a0, $v0 +/* 03E55C 7F009A2C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E560 7F009A30 24050004 */ li $a1, 4 +/* 03E564 7F009A34 10000043 */ b .L7F009B44 +/* 03E568 7F009A38 8FBF0014 */ lw $ra, 0x14($sp) +cheat_2xgrenadelauncher: +/* 03E56C 7F009A3C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E570 7F009A40 0FC07771 */ jal get_save_folder_ptr +/* 03E574 7F009A44 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E578 7F009A48 00402025 */ move $a0, $v0 +/* 03E57C 7F009A4C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E580 7F009A50 24050003 */ li $a1, 3 +/* 03E584 7F009A54 1000003B */ b .L7F009B44 +/* 03E588 7F009A58 8FBF0014 */ lw $ra, 0x14($sp) +cheat_2xrcp90: +/* 03E58C 7F009A5C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E590 7F009A60 0FC07771 */ jal get_save_folder_ptr +/* 03E594 7F009A64 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E598 7F009A68 00402025 */ move $a0, $v0 +/* 03E59C 7F009A6C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E5A0 7F009A70 24050010 */ li $a1, 16 +/* 03E5A4 7F009A74 10000033 */ b .L7F009B44 +/* 03E5A8 7F009A78 8FBF0014 */ lw $ra, 0x14($sp) +cheat_2xthrowingknife: +/* 03E5AC 7F009A7C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E5B0 7F009A80 0FC07771 */ jal get_save_folder_ptr +/* 03E5B4 7F009A84 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E5B8 7F009A88 00402025 */ move $a0, $v0 +/* 03E5BC 7F009A8C 0FC07748 */ jal check_if_cheat_unlocked +/* 03E5C0 7F009A90 24050008 */ li $a1, 8 +/* 03E5C4 7F009A94 1000002B */ b .L7F009B44 +/* 03E5C8 7F009A98 8FBF0014 */ lw $ra, 0x14($sp) +cheat_2xhuntingknife: +/* 03E5CC 7F009A9C 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E5D0 7F009AA0 0FC07771 */ jal get_save_folder_ptr +/* 03E5D4 7F009AA4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E5D8 7F009AA8 00402025 */ move $a0, $v0 +/* 03E5DC 7F009AAC 0FC07748 */ jal check_if_cheat_unlocked +/* 03E5E0 7F009AB0 2405000E */ li $a1, 14 +/* 03E5E4 7F009AB4 10000023 */ b .L7F009B44 +/* 03E5E8 7F009AB8 8FBF0014 */ lw $ra, 0x14($sp) +cheat_2xlaser: +/* 03E5EC 7F009ABC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E5F0 7F009AC0 0FC07771 */ jal get_save_folder_ptr +/* 03E5F4 7F009AC4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E5F8 7F009AC8 00402025 */ move $a0, $v0 +/* 03E5FC 7F009ACC 0FC07748 */ jal check_if_cheat_unlocked +/* 03E600 7F009AD0 24050012 */ li $a1, 18 +/* 03E604 7F009AD4 1000001B */ b .L7F009B44 +/* 03E608 7F009AD8 8FBF0014 */ lw $ra, 0x14($sp) +cheat_turbo: +/* 03E60C 7F009ADC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E610 7F009AE0 0FC07771 */ jal get_save_folder_ptr +/* 03E614 7F009AE4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E618 7F009AE8 00402025 */ move $a0, $v0 +/* 03E61C 7F009AEC 0FC07748 */ jal check_if_cheat_unlocked +/* 03E620 7F009AF0 24050005 */ li $a1, 5 +/* 03E624 7F009AF4 10000013 */ b .L7F009B44 +/* 03E628 7F009AF8 8FBF0014 */ lw $ra, 0x14($sp) +cheat_unlockcradle: +/* 03E62C 7F009AFC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E630 7F009B00 0FC07A7D */ jal check_cradle_completed_in_folder +/* 03E634 7F009B04 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E638 7F009B08 1000000E */ b .L7F009B44 +/* 03E63C 7F009B0C 8FBF0014 */ lw $ra, 0x14($sp) +cheat_unlockaztec: +/* 03E640 7F009B10 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E644 7F009B14 0FC07A97 */ jal check_aztec_completed_in_folder_secret_00 +/* 03E648 7F009B18 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E64C 7F009B1C 10000009 */ b .L7F009B44 +/* 03E650 7F009B20 8FBF0014 */ lw $ra, 0x14($sp) +cheat_unlockegypt: +/* 03E654 7F009B24 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 03E658 7F009B28 0FC07AAA */ jal check_egypt_completed_in_folder_00 +/* 03E65C 7F009B2C 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 03E660 7F009B30 10000004 */ b .L7F009B44 +/* 03E664 7F009B34 8FBF0014 */ lw $ra, 0x14($sp) +def_7F00986C: +.L7F009B38: +/* 03E668 7F009B38 1000FFFF */ b .L7F009B38 +/* 03E66C 7F009B3C 00000000 */ nop +.L7F009B40: +/* 03E670 7F009B40 8FBF0014 */ lw $ra, 0x14($sp) +.L7F009B44: +/* 03E674 7F009B44 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03E678 7F009B48 03E00008 */ jr $ra +/* 03E67C 7F009B4C 00000000 */ nop +) +#endif + + + + +int getplayerfavoredweapon(int player,int hand) { + return get_ptr_long_watch_text_for_item(array_favweapon[player][hand]); +} + + + + +#ifdef NONMATCHING +void menu_control_stick_tracking(void) { + f32 sp18; + s8 sp1E; + s8 sp1F; + s32 temp_t2; + + // Node 0 + sp1F = get_cur_controller_horz_stick_pos(0); + temp_t2 = ((s32) (-get_cur_controller_vert_stick_pos(0) << 0x18) >> 0x18); + if (sp1F < -5) + { + // Node 1 + } + else + { + // Node 2 + if (sp1F >= 6) + { + // Node 3 + } + else + { + // Node 4 + } + } + // Node 5 + if (0 >= 0x47) + { + // Node 6 + } + else + { + // Node 7 + if (0 < -0x46) + { + // Node 8 + } + } + // Node 9 + if (temp_t2 < -5) + { + // Node 10 + } + else + { + // Node 11 + if (temp_t2 >= 6) + { + // Node 12 + } + } + // Node 13 + if ((u8)0 >= 0x47) + { + // Node 14 + } + else + { + // Node 15 + if ((u8)0 < -0x46) + { + // Node 16 + } + } + // Node 17 + if (0 > 0) + { + // Node 18 + cursor_h_pos = (f32) (cursor_h_pos + ((((f32) 0 * folder_menu_x_dim) + 0.5f) * global_timer_delta)); + } + else + { + // Node 19 + if (0 < 0) + { + // Node 20 + cursor_h_pos = (f32) (cursor_h_pos + ((((f32) 0 * folder_menu_z_dim) - 0.5f) * global_timer_delta)); + } + } + // Node 21 + sp1E = (u8)0; + sp18 = getPlayer_c_screenleft(0); + if (((getPlayer_c_screenwidth() + sp18) - 20.0f) < cursor_h_pos) + { + // Node 22 + sp1E = sp1E; + sp18 = getPlayer_c_screenleft(); + cursor_h_pos = (f32) ((getPlayer_c_screenwidth() + sp18) - 20.0f); + } + else + { + // Node 23 + sp1E = sp1E; + if (cursor_h_pos < (getPlayer_c_screenleft() + 20.0f)) + { + // Node 24 + sp1E = sp1E; + cursor_h_pos = (f32) (getPlayer_c_screenleft() + 20.0f); + } + } + // Node 25 + if (sp1E > 0) + { + // Node 26 + cursor_v_pos = (f32) (cursor_v_pos + ((((f32) sp1E * D_800519D0) + 0.5f) * global_timer_delta)); + } + else + { + // Node 27 + if (sp1E < 0) + { + // Node 28 + cursor_v_pos = (f32) (cursor_v_pos + ((((f32) sp1E * D_800519D4) - 0.5f) * global_timer_delta)); + } + } + // Node 29 + sp18 = getPlayer_c_screentop(); + if (((getPlayer_c_screenheight() + sp18) - 20.0f) < cursor_v_pos) + { + // Node 30 + sp18 = getPlayer_c_screentop(); + cursor_v_pos = (f32) ((getPlayer_c_screenheight() + sp18) - 20.0f); + return; + // (possible return value: getPlayer_c_screenheight()) + } + // Node 31 + if (cursor_v_pos < (getPlayer_c_screentop() + 20.0f)) + { + // Node 32 + cursor_v_pos = (f32) (getPlayer_c_screentop() + 20.0f); + return; + // (possible return value: getPlayer_c_screentop()) + } + // (possible return value: getPlayer_c_screentop()) +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +/*HACK FIXME*/ +/*from above to add bytes till fixed*/ +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +/*end from above to add bytes till fixed*/ + +glabel folder_menu_x_dim +.word 0x3D99999A /* 0.075000003;*/ +glabel folder_menu_z_dim +.word 0x3D99999A /* 0.075000003;*/ +glabel D_800519D0 +.word 0x3D99999A /* 0.075000003;*/ +glabel D_800519D4 +.word 0x3D99999A /* 0.075000003;*/ + +.text +glabel menu_control_stick_tracking +/* 03E6B4 7F009B84 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 03E6B8 7F009B88 AFBF0014 */ sw $ra, 0x14($sp) +/* 03E6BC 7F009B8C 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 03E6C0 7F009B90 00002025 */ move $a0, $zero +/* 03E6C4 7F009B94 00002025 */ move $a0, $zero +/* 03E6C8 7F009B98 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 03E6CC 7F009B9C A3A2001F */ sb $v0, 0x1f($sp) +/* 03E6D0 7F009BA0 83A5001F */ lb $a1, 0x1f($sp) +/* 03E6D4 7F009BA4 00021823 */ negu $v1, $v0 +/* 03E6D8 7F009BA8 00034E00 */ sll $t1, $v1, 0x18 +/* 03E6DC 7F009BAC 28A1FFFB */ slti $at, $a1, -5 +/* 03E6E0 7F009BB0 10200005 */ beqz $at, .L7F009BC8 +/* 03E6E4 7F009BB4 00095603 */ sra $t2, $t1, 0x18 +/* 03E6E8 7F009BB8 24A50005 */ addiu $a1, $a1, 5 +/* 03E6EC 7F009BBC 00057E00 */ sll $t7, $a1, 0x18 +/* 03E6F0 7F009BC0 10000008 */ b .L7F009BE4 +/* 03E6F4 7F009BC4 000F2E03 */ sra $a1, $t7, 0x18 +.L7F009BC8: +/* 03E6F8 7F009BC8 28A10006 */ slti $at, $a1, 6 +/* 03E6FC 7F009BCC 14200004 */ bnez $at, .L7F009BE0 +/* 03E700 7F009BD0 24A5FFFB */ addiu $a1, $a1, -5 +/* 03E704 7F009BD4 0005CE00 */ sll $t9, $a1, 0x18 +/* 03E708 7F009BD8 10000002 */ b .L7F009BE4 +/* 03E70C 7F009BDC 00192E03 */ sra $a1, $t9, 0x18 +.L7F009BE0: +/* 03E710 7F009BE0 00002825 */ move $a1, $zero +.L7F009BE4: +/* 03E714 7F009BE4 28A10047 */ slti $at, $a1, 0x47 +/* 03E718 7F009BE8 54200004 */ bnezl $at, .L7F009BFC +/* 03E71C 7F009BEC 28A1FFBA */ slti $at, $a1, -0x46 +/* 03E720 7F009BF0 10000005 */ b .L7F009C08 +/* 03E724 7F009BF4 24050046 */ li $a1, 70 +/* 03E728 7F009BF8 28A1FFBA */ slti $at, $a1, -0x46 +.L7F009BFC: +/* 03E72C 7F009BFC 50200003 */ beql $at, $zero, .L7F009C0C +/* 03E730 7F009C00 2941FFFB */ slti $at, $t2, -5 +/* 03E734 7F009C04 2405FFBA */ li $a1, -70 +.L7F009C08: +/* 03E738 7F009C08 2941FFFB */ slti $at, $t2, -5 +.L7F009C0C: +/* 03E73C 7F009C0C 10200005 */ beqz $at, .L7F009C24 +/* 03E740 7F009C10 01401825 */ move $v1, $t2 +/* 03E744 7F009C14 25420005 */ addiu $v0, $t2, 5 +/* 03E748 7F009C18 00025E00 */ sll $t3, $v0, 0x18 +/* 03E74C 7F009C1C 10000008 */ b .L7F009C40 +/* 03E750 7F009C20 000B1603 */ sra $v0, $t3, 0x18 +.L7F009C24: +/* 03E754 7F009C24 28610006 */ slti $at, $v1, 6 +/* 03E758 7F009C28 14200005 */ bnez $at, .L7F009C40 +/* 03E75C 7F009C2C 00001025 */ move $v0, $zero +/* 03E760 7F009C30 2462FFFB */ addiu $v0, $v1, -5 +/* 03E764 7F009C34 00026E00 */ sll $t5, $v0, 0x18 +/* 03E768 7F009C38 10000001 */ b .L7F009C40 +/* 03E76C 7F009C3C 000D1603 */ sra $v0, $t5, 0x18 +.L7F009C40: +/* 03E770 7F009C40 28410047 */ slti $at, $v0, 0x47 +/* 03E774 7F009C44 54200004 */ bnezl $at, .L7F009C58 +/* 03E778 7F009C48 2841FFBA */ slti $at, $v0, -0x46 +/* 03E77C 7F009C4C 10000005 */ b .L7F009C64 +/* 03E780 7F009C50 24020046 */ li $v0, 70 +/* 03E784 7F009C54 2841FFBA */ slti $at, $v0, -0x46 +.L7F009C58: +/* 03E788 7F009C58 10200002 */ beqz $at, .L7F009C64 +/* 03E78C 7F009C5C 00000000 */ nop +/* 03E790 7F009C60 2402FFBA */ li $v0, -70 +.L7F009C64: +/* 03E794 7F009C64 18A00011 */ blez $a1, .L7F009CAC +/* 03E798 7F009C68 00000000 */ nop +/* 03E79C 7F009C6C 44852000 */ mtc1 $a1, $f4 +/* 03E7A0 7F009C70 3C018005 */ lui $at, %hi(folder_menu_x_dim) +/* 03E7A4 7F009C74 C42819C8 */ lwc1 $f8, %lo(folder_menu_x_dim)($at) +/* 03E7A8 7F009C78 468021A0 */ cvt.s.w $f6, $f4 +/* 03E7AC 7F009C7C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E7B0 7F009C80 44818000 */ mtc1 $at, $f16 +/* 03E7B4 7F009C84 3C018005 */ lui $at, %hi(global_timer_delta) +/* 03E7B8 7F009C88 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 03E7BC 7F009C8C 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03E7C0 7F009C90 46083282 */ mul.s $f10, $f6, $f8 +/* 03E7C4 7F009C94 C428A908 */ lwc1 $f8, %lo(cursor_h_pos)($at) +/* 03E7C8 7F009C98 46105480 */ add.s $f18, $f10, $f16 +/* 03E7CC 7F009C9C 46049182 */ mul.s $f6, $f18, $f4 +/* 03E7D0 7F009CA0 46064280 */ add.s $f10, $f8, $f6 +/* 03E7D4 7F009CA4 10000012 */ b .L7F009CF0 +/* 03E7D8 7F009CA8 E42AA908 */ swc1 $f10, %lo(cursor_h_pos)($at) +.L7F009CAC: +/* 03E7DC 7F009CAC 04A10010 */ bgez $a1, .L7F009CF0 +/* 03E7E0 7F009CB0 00000000 */ nop +/* 03E7E4 7F009CB4 44858000 */ mtc1 $a1, $f16 +/* 03E7E8 7F009CB8 3C018005 */ lui $at, %hi(folder_menu_z_dim) +/* 03E7EC 7F009CBC C42419CC */ lwc1 $f4, %lo(folder_menu_z_dim)($at) +/* 03E7F0 7F009CC0 468084A0 */ cvt.s.w $f18, $f16 +/* 03E7F4 7F009CC4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E7F8 7F009CC8 44813000 */ mtc1 $at, $f6 +/* 03E7FC 7F009CCC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 03E800 7F009CD0 C4308378 */ lwc1 $f16, %lo(global_timer_delta)($at) +/* 03E804 7F009CD4 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03E808 7F009CD8 46049202 */ mul.s $f8, $f18, $f4 +/* 03E80C 7F009CDC C424A908 */ lwc1 $f4, %lo(cursor_h_pos)($at) +/* 03E810 7F009CE0 46064281 */ sub.s $f10, $f8, $f6 +/* 03E814 7F009CE4 46105482 */ mul.s $f18, $f10, $f16 +/* 03E818 7F009CE8 46122200 */ add.s $f8, $f4, $f18 +/* 03E81C 7F009CEC E428A908 */ swc1 $f8, %lo(cursor_h_pos)($at) +.L7F009CF0: +/* 03E820 7F009CF0 0FC1E131 */ jal getPlayer_c_screenleft +/* 03E824 7F009CF4 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E828 7F009CF8 0FC1E129 */ jal getPlayer_c_screenwidth +/* 03E82C 7F009CFC E7A00018 */ swc1 $f0, 0x18($sp) +/* 03E830 7F009D00 C7A60018 */ lwc1 $f6, 0x18($sp) +/* 03E834 7F009D04 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E838 7F009D08 44818000 */ mtc1 $at, $f16 +/* 03E83C 7F009D0C 46060280 */ add.s $f10, $f0, $f6 +/* 03E840 7F009D10 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03E844 7F009D14 C432A908 */ lwc1 $f18, %lo(cursor_h_pos)($at) +/* 03E848 7F009D18 83A2001E */ lb $v0, 0x1e($sp) +/* 03E84C 7F009D1C 46105101 */ sub.s $f4, $f10, $f16 +/* 03E850 7F009D20 4612203C */ c.lt.s $f4, $f18 +/* 03E854 7F009D24 00000000 */ nop +/* 03E858 7F009D28 4500000E */ bc1f .L7F009D64 +/* 03E85C 7F009D2C 00000000 */ nop +/* 03E860 7F009D30 0FC1E131 */ jal getPlayer_c_screenleft +/* 03E864 7F009D34 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E868 7F009D38 0FC1E129 */ jal getPlayer_c_screenwidth +/* 03E86C 7F009D3C E7A00018 */ swc1 $f0, 0x18($sp) +/* 03E870 7F009D40 C7A80018 */ lwc1 $f8, 0x18($sp) +/* 03E874 7F009D44 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E878 7F009D48 44815000 */ mtc1 $at, $f10 +/* 03E87C 7F009D4C 46080180 */ add.s $f6, $f0, $f8 +/* 03E880 7F009D50 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03E884 7F009D54 83A2001E */ lb $v0, 0x1e($sp) +/* 03E888 7F009D58 460A3401 */ sub.s $f16, $f6, $f10 +/* 03E88C 7F009D5C 10000015 */ b .L7F009DB4 +/* 03E890 7F009D60 E430A908 */ swc1 $f16, %lo(cursor_h_pos)($at) +.L7F009D64: +/* 03E894 7F009D64 0FC1E131 */ jal getPlayer_c_screenleft +/* 03E898 7F009D68 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E89C 7F009D6C 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03E8A0 7F009D70 C424A908 */ lwc1 $f4, %lo(cursor_h_pos)($at) +/* 03E8A4 7F009D74 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E8A8 7F009D78 44819000 */ mtc1 $at, $f18 +/* 03E8AC 7F009D7C 83A2001E */ lb $v0, 0x1e($sp) +/* 03E8B0 7F009D80 46120200 */ add.s $f8, $f0, $f18 +/* 03E8B4 7F009D84 4608203C */ c.lt.s $f4, $f8 +/* 03E8B8 7F009D88 00000000 */ nop +/* 03E8BC 7F009D8C 45000009 */ bc1f .L7F009DB4 +/* 03E8C0 7F009D90 00000000 */ nop +/* 03E8C4 7F009D94 0FC1E131 */ jal getPlayer_c_screenleft +/* 03E8C8 7F009D98 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E8CC 7F009D9C 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E8D0 7F009DA0 44813000 */ mtc1 $at, $f6 +/* 03E8D4 7F009DA4 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03E8D8 7F009DA8 83A2001E */ lb $v0, 0x1e($sp) +/* 03E8DC 7F009DAC 46060280 */ add.s $f10, $f0, $f6 +/* 03E8E0 7F009DB0 E42AA908 */ swc1 $f10, %lo(cursor_h_pos)($at) +.L7F009DB4: +/* 03E8E4 7F009DB4 18400011 */ blez $v0, .L7F009DFC +/* 03E8E8 7F009DB8 00000000 */ nop +/* 03E8EC 7F009DBC 44828000 */ mtc1 $v0, $f16 +/* 03E8F0 7F009DC0 3C018005 */ lui $at, %hi(D_800519D0) +/* 03E8F4 7F009DC4 C42419D0 */ lwc1 $f4, %lo(D_800519D0)($at) +/* 03E8F8 7F009DC8 468084A0 */ cvt.s.w $f18, $f16 +/* 03E8FC 7F009DCC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E900 7F009DD0 44813000 */ mtc1 $at, $f6 +/* 03E904 7F009DD4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 03E908 7F009DD8 C4308378 */ lwc1 $f16, %lo(global_timer_delta)($at) +/* 03E90C 7F009DDC 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03E910 7F009DE0 46049202 */ mul.s $f8, $f18, $f4 +/* 03E914 7F009DE4 C424A90C */ lwc1 $f4, %lo(cursor_v_pos)($at) +/* 03E918 7F009DE8 46064280 */ add.s $f10, $f8, $f6 +/* 03E91C 7F009DEC 46105482 */ mul.s $f18, $f10, $f16 +/* 03E920 7F009DF0 46122200 */ add.s $f8, $f4, $f18 +/* 03E924 7F009DF4 10000012 */ b .L7F009E40 +/* 03E928 7F009DF8 E428A90C */ swc1 $f8, %lo(cursor_v_pos)($at) +.L7F009DFC: +/* 03E92C 7F009DFC 04410010 */ bgez $v0, .L7F009E40 +/* 03E930 7F009E00 00000000 */ nop +/* 03E934 7F009E04 44823000 */ mtc1 $v0, $f6 +/* 03E938 7F009E08 3C018005 */ lui $at, %hi(D_800519D4) +/* 03E93C 7F009E0C C43019D4 */ lwc1 $f16, %lo(D_800519D4)($at) +/* 03E940 7F009E10 468032A0 */ cvt.s.w $f10, $f6 +/* 03E944 7F009E14 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E948 7F009E18 44819000 */ mtc1 $at, $f18 +/* 03E94C 7F009E1C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 03E950 7F009E20 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 03E954 7F009E24 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03E958 7F009E28 46105102 */ mul.s $f4, $f10, $f16 +/* 03E95C 7F009E2C C430A90C */ lwc1 $f16, %lo(cursor_v_pos)($at) +/* 03E960 7F009E30 46122201 */ sub.s $f8, $f4, $f18 +/* 03E964 7F009E34 46064282 */ mul.s $f10, $f8, $f6 +/* 03E968 7F009E38 460A8100 */ add.s $f4, $f16, $f10 +/* 03E96C 7F009E3C E424A90C */ swc1 $f4, %lo(cursor_v_pos)($at) +.L7F009E40: +/* 03E970 7F009E40 0FC1E135 */ jal getPlayer_c_screentop +/* 03E974 7F009E44 00000000 */ nop +/* 03E978 7F009E48 0FC1E12D */ jal getPlayer_c_screenheight +/* 03E97C 7F009E4C E7A00018 */ swc1 $f0, 0x18($sp) +/* 03E980 7F009E50 C7B20018 */ lwc1 $f18, 0x18($sp) +/* 03E984 7F009E54 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E988 7F009E58 44813000 */ mtc1 $at, $f6 +/* 03E98C 7F009E5C 46120200 */ add.s $f8, $f0, $f18 +/* 03E990 7F009E60 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03E994 7F009E64 C42AA90C */ lwc1 $f10, %lo(cursor_v_pos)($at) +/* 03E998 7F009E68 46064401 */ sub.s $f16, $f8, $f6 +/* 03E99C 7F009E6C 460A803C */ c.lt.s $f16, $f10 +/* 03E9A0 7F009E70 00000000 */ nop +/* 03E9A4 7F009E74 4500000D */ bc1f .L7F009EAC +/* 03E9A8 7F009E78 00000000 */ nop +/* 03E9AC 7F009E7C 0FC1E135 */ jal getPlayer_c_screentop +/* 03E9B0 7F009E80 00000000 */ nop +/* 03E9B4 7F009E84 0FC1E12D */ jal getPlayer_c_screenheight +/* 03E9B8 7F009E88 E7A00018 */ swc1 $f0, 0x18($sp) +/* 03E9BC 7F009E8C C7A40018 */ lwc1 $f4, 0x18($sp) +/* 03E9C0 7F009E90 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E9C4 7F009E94 44814000 */ mtc1 $at, $f8 +/* 03E9C8 7F009E98 46040480 */ add.s $f18, $f0, $f4 +/* 03E9CC 7F009E9C 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03E9D0 7F009EA0 46089181 */ sub.s $f6, $f18, $f8 +/* 03E9D4 7F009EA4 10000014 */ b .L7F009EF8 +/* 03E9D8 7F009EA8 E426A90C */ swc1 $f6, %lo(cursor_v_pos)($at) +.L7F009EAC: +/* 03E9DC 7F009EAC 0FC1E135 */ jal getPlayer_c_screentop +/* 03E9E0 7F009EB0 00000000 */ nop +/* 03E9E4 7F009EB4 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03E9E8 7F009EB8 C430A90C */ lwc1 $f16, %lo(cursor_v_pos)($at) +/* 03E9EC 7F009EBC 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E9F0 7F009EC0 44815000 */ mtc1 $at, $f10 +/* 03E9F4 7F009EC4 00000000 */ nop +/* 03E9F8 7F009EC8 460A0100 */ add.s $f4, $f0, $f10 +/* 03E9FC 7F009ECC 4604803C */ c.lt.s $f16, $f4 +/* 03EA00 7F009ED0 00000000 */ nop +/* 03EA04 7F009ED4 45020009 */ bc1fl .L7F009EFC +/* 03EA08 7F009ED8 8FBF0014 */ lw $ra, 0x14($sp) +/* 03EA0C 7F009EDC 0FC1E135 */ jal getPlayer_c_screentop +/* 03EA10 7F009EE0 00000000 */ nop +/* 03EA14 7F009EE4 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03EA18 7F009EE8 44819000 */ mtc1 $at, $f18 +/* 03EA1C 7F009EEC 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03EA20 7F009EF0 46120200 */ add.s $f8, $f0, $f18 +/* 03EA24 7F009EF4 E428A90C */ swc1 $f8, %lo(cursor_v_pos)($at) +.L7F009EF8: +/* 03EA28 7F009EF8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F009EFC: +/* 03EA2C 7F009EFC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 03EA30 7F009F00 03E00008 */ jr $ra +/* 03EA34 7F009F04 00000000 */ nop +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +/*HACK FIXME*/ +/*from above to add bytes till fixed*/ +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +.word default_nonmenucheats +/*end from above to add bytes till fixed*/ + +glabel folder_menu_x_dim +.word 0x3D99999A /* 0.075000003;*/ +glabel folder_menu_z_dim +.word 0x3D99999A /* 0.075000003;*/ +glabel D_800519D0 +.word 0x3D99999A /* 0.075000003;*/ +glabel D_800519D4 +.word 0x3D99999A /* 0.075000003;*/ + +.text +glabel menu_control_stick_tracking +/* 03E714 7F009BA4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 03E718 7F009BA8 AFBF0014 */ sw $ra, 0x14($sp) +/* 03E71C 7F009BAC 0C003054 */ jal get_cur_controller_horz_stick_pos +/* 03E720 7F009BB0 00002025 */ move $a0, $zero +/* 03E724 7F009BB4 00002025 */ move $a0, $zero +/* 03E728 7F009BB8 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 03E72C 7F009BBC A3A2001F */ sb $v0, 0x1f($sp) +/* 03E730 7F009BC0 83A5001F */ lb $a1, 0x1f($sp) +/* 03E734 7F009BC4 00021823 */ negu $v1, $v0 +/* 03E738 7F009BC8 00034E00 */ sll $t1, $v1, 0x18 +/* 03E73C 7F009BCC 28A1FFFB */ slti $at, $a1, -5 +/* 03E740 7F009BD0 10200005 */ beqz $at, .L7F009BE8 +/* 03E744 7F009BD4 00095603 */ sra $t2, $t1, 0x18 +/* 03E748 7F009BD8 24A50005 */ addiu $a1, $a1, 5 +/* 03E74C 7F009BDC 00057E00 */ sll $t7, $a1, 0x18 +/* 03E750 7F009BE0 10000008 */ b .L7F009C04 +/* 03E754 7F009BE4 000F2E03 */ sra $a1, $t7, 0x18 +.L7F009BE8: +/* 03E758 7F009BE8 28A10006 */ slti $at, $a1, 6 +/* 03E75C 7F009BEC 14200004 */ bnez $at, .L7F009C00 +/* 03E760 7F009BF0 24A5FFFB */ addiu $a1, $a1, -5 +/* 03E764 7F009BF4 0005CE00 */ sll $t9, $a1, 0x18 +/* 03E768 7F009BF8 10000002 */ b .L7F009C04 +/* 03E76C 7F009BFC 00192E03 */ sra $a1, $t9, 0x18 +.L7F009C00: +/* 03E770 7F009C00 00002825 */ move $a1, $zero +.L7F009C04: +/* 03E774 7F009C04 28A10047 */ slti $at, $a1, 0x47 +/* 03E778 7F009C08 54200004 */ bnezl $at, .L7F009C1C +/* 03E77C 7F009C0C 28A1FFBA */ slti $at, $a1, -0x46 +/* 03E780 7F009C10 10000005 */ b .L7F009C28 +/* 03E784 7F009C14 24050046 */ li $a1, 70 +/* 03E788 7F009C18 28A1FFBA */ slti $at, $a1, -0x46 +.L7F009C1C: +/* 03E78C 7F009C1C 50200003 */ beql $at, $zero, .L7F009C2C +/* 03E790 7F009C20 2941FFFB */ slti $at, $t2, -5 +/* 03E794 7F009C24 2405FFBA */ li $a1, -70 +.L7F009C28: +/* 03E798 7F009C28 2941FFFB */ slti $at, $t2, -5 +.L7F009C2C: +/* 03E79C 7F009C2C 10200005 */ beqz $at, .L7F009C44 +/* 03E7A0 7F009C30 01401825 */ move $v1, $t2 +/* 03E7A4 7F009C34 25420005 */ addiu $v0, $t2, 5 +/* 03E7A8 7F009C38 00025E00 */ sll $t3, $v0, 0x18 +/* 03E7AC 7F009C3C 10000008 */ b .L7F009C60 +/* 03E7B0 7F009C40 000B1603 */ sra $v0, $t3, 0x18 +.L7F009C44: +/* 03E7B4 7F009C44 28610006 */ slti $at, $v1, 6 +/* 03E7B8 7F009C48 14200005 */ bnez $at, .L7F009C60 +/* 03E7BC 7F009C4C 00001025 */ move $v0, $zero +/* 03E7C0 7F009C50 2462FFFB */ addiu $v0, $v1, -5 +/* 03E7C4 7F009C54 00026E00 */ sll $t5, $v0, 0x18 +/* 03E7C8 7F009C58 10000001 */ b .L7F009C60 +/* 03E7CC 7F009C5C 000D1603 */ sra $v0, $t5, 0x18 +.L7F009C60: +/* 03E7D0 7F009C60 28410047 */ slti $at, $v0, 0x47 +/* 03E7D4 7F009C64 54200004 */ bnezl $at, .L7F009C78 +/* 03E7D8 7F009C68 2841FFBA */ slti $at, $v0, -0x46 +/* 03E7DC 7F009C6C 10000005 */ b .L7F009C84 +/* 03E7E0 7F009C70 24020046 */ li $v0, 70 +/* 03E7E4 7F009C74 2841FFBA */ slti $at, $v0, -0x46 +.L7F009C78: +/* 03E7E8 7F009C78 10200002 */ beqz $at, .L7F009C84 +/* 03E7EC 7F009C7C 00000000 */ nop +/* 03E7F0 7F009C80 2402FFBA */ li $v0, -70 +.L7F009C84: +/* 03E7F4 7F009C84 18A00011 */ blez $a1, .L7F009CCC +/* 03E7F8 7F009C88 00000000 */ nop +/* 03E7FC 7F009C8C 44852000 */ mtc1 $a1, $f4 +/* 03E800 7F009C90 3C018005 */ lui $at, %hi(folder_menu_x_dim) # $at, 0x8005 +/* 03E804 7F009C94 C42819F8 */ lwc1 $f8, %lo(folder_menu_x_dim)($at) +/* 03E808 7F009C98 468021A0 */ cvt.s.w $f6, $f4 +/* 03E80C 7F009C9C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E810 7F009CA0 44818000 */ mtc1 $at, $f16 +/* 03E814 7F009CA4 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 03E818 7F009CA8 C42483B4 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 03E81C 7F009CAC 3C018003 */ lui $at, %hi(cursor_h_pos) # $at, 0x8003 +/* 03E820 7F009CB0 46083282 */ mul.s $f10, $f6, $f8 +/* 03E824 7F009CB4 C428A948 */ lwc1 $f8, %lo(cursor_h_pos)($at) +/* 03E828 7F009CB8 46105480 */ add.s $f18, $f10, $f16 +/* 03E82C 7F009CBC 46049182 */ mul.s $f6, $f18, $f4 +/* 03E830 7F009CC0 46064280 */ add.s $f10, $f8, $f6 +/* 03E834 7F009CC4 10000012 */ b .L7F009D10 +/* 03E838 7F009CC8 E42AA948 */ swc1 $f10, %lo(cursor_h_pos)($at) +.L7F009CCC: +/* 03E83C 7F009CCC 04A10010 */ bgez $a1, .L7F009D10 +/* 03E840 7F009CD0 00000000 */ nop +/* 03E844 7F009CD4 44858000 */ mtc1 $a1, $f16 +/* 03E848 7F009CD8 3C018005 */ lui $at, %hi(folder_menu_z_dim) # $at, 0x8005 +/* 03E84C 7F009CDC C42419FC */ lwc1 $f4, %lo(folder_menu_z_dim)($at) +/* 03E850 7F009CE0 468084A0 */ cvt.s.w $f18, $f16 +/* 03E854 7F009CE4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E858 7F009CE8 44813000 */ mtc1 $at, $f6 +/* 03E85C 7F009CEC 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 03E860 7F009CF0 C43083B4 */ lwc1 $f16, %lo(global_timer_delta)($at) +/* 03E864 7F009CF4 3C018003 */ lui $at, %hi(cursor_h_pos) # $at, 0x8003 +/* 03E868 7F009CF8 46049202 */ mul.s $f8, $f18, $f4 +/* 03E86C 7F009CFC C424A948 */ lwc1 $f4, %lo(cursor_h_pos)($at) +/* 03E870 7F009D00 46064281 */ sub.s $f10, $f8, $f6 +/* 03E874 7F009D04 46105482 */ mul.s $f18, $f10, $f16 +/* 03E878 7F009D08 46122200 */ add.s $f8, $f4, $f18 +/* 03E87C 7F009D0C E428A948 */ swc1 $f8, %lo(cursor_h_pos)($at) +.L7F009D10: +/* 03E880 7F009D10 0FC1E2AD */ jal getPlayer_c_screenleft +/* 03E884 7F009D14 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E888 7F009D18 0FC1E2A5 */ jal getPlayer_c_screenwidth +/* 03E88C 7F009D1C E7A00018 */ swc1 $f0, 0x18($sp) +/* 03E890 7F009D20 C7A60018 */ lwc1 $f6, 0x18($sp) +/* 03E894 7F009D24 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E898 7F009D28 44818000 */ mtc1 $at, $f16 +/* 03E89C 7F009D2C 46060280 */ add.s $f10, $f0, $f6 +/* 03E8A0 7F009D30 3C018003 */ lui $at, %hi(cursor_h_pos) # $at, 0x8003 +/* 03E8A4 7F009D34 C432A948 */ lwc1 $f18, %lo(cursor_h_pos)($at) +/* 03E8A8 7F009D38 83A2001E */ lb $v0, 0x1e($sp) +/* 03E8AC 7F009D3C 46105101 */ sub.s $f4, $f10, $f16 +/* 03E8B0 7F009D40 4612203C */ c.lt.s $f4, $f18 +/* 03E8B4 7F009D44 00000000 */ nop +/* 03E8B8 7F009D48 4500000E */ bc1f .L7F009D84 +/* 03E8BC 7F009D4C 00000000 */ nop +/* 03E8C0 7F009D50 0FC1E2AD */ jal getPlayer_c_screenleft +/* 03E8C4 7F009D54 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E8C8 7F009D58 0FC1E2A5 */ jal getPlayer_c_screenwidth +/* 03E8CC 7F009D5C E7A00018 */ swc1 $f0, 0x18($sp) +/* 03E8D0 7F009D60 C7A80018 */ lwc1 $f8, 0x18($sp) +/* 03E8D4 7F009D64 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E8D8 7F009D68 44815000 */ mtc1 $at, $f10 +/* 03E8DC 7F009D6C 46080180 */ add.s $f6, $f0, $f8 +/* 03E8E0 7F009D70 3C018003 */ lui $at, %hi(cursor_h_pos) # $at, 0x8003 +/* 03E8E4 7F009D74 83A2001E */ lb $v0, 0x1e($sp) +/* 03E8E8 7F009D78 460A3401 */ sub.s $f16, $f6, $f10 +/* 03E8EC 7F009D7C 10000015 */ b .L7F009DD4 +/* 03E8F0 7F009D80 E430A948 */ swc1 $f16, %lo(cursor_h_pos)($at) +.L7F009D84: +/* 03E8F4 7F009D84 0FC1E2AD */ jal getPlayer_c_screenleft +/* 03E8F8 7F009D88 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E8FC 7F009D8C 3C018003 */ lui $at, %hi(cursor_h_pos) # $at, 0x8003 +/* 03E900 7F009D90 C424A948 */ lwc1 $f4, %lo(cursor_h_pos)($at) +/* 03E904 7F009D94 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E908 7F009D98 44819000 */ mtc1 $at, $f18 +/* 03E90C 7F009D9C 83A2001E */ lb $v0, 0x1e($sp) +/* 03E910 7F009DA0 46120200 */ add.s $f8, $f0, $f18 +/* 03E914 7F009DA4 4608203C */ c.lt.s $f4, $f8 +/* 03E918 7F009DA8 00000000 */ nop +/* 03E91C 7F009DAC 45000009 */ bc1f .L7F009DD4 +/* 03E920 7F009DB0 00000000 */ nop +/* 03E924 7F009DB4 0FC1E2AD */ jal getPlayer_c_screenleft +/* 03E928 7F009DB8 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E92C 7F009DBC 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E930 7F009DC0 44813000 */ mtc1 $at, $f6 +/* 03E934 7F009DC4 3C018003 */ lui $at, %hi(cursor_h_pos) # $at, 0x8003 +/* 03E938 7F009DC8 83A2001E */ lb $v0, 0x1e($sp) +/* 03E93C 7F009DCC 46060280 */ add.s $f10, $f0, $f6 +/* 03E940 7F009DD0 E42AA948 */ swc1 $f10, %lo(cursor_h_pos)($at) +.L7F009DD4: +/* 03E944 7F009DD4 18400011 */ blez $v0, .L7F009E1C +/* 03E948 7F009DD8 00000000 */ nop +/* 03E94C 7F009DDC 44828000 */ mtc1 $v0, $f16 +/* 03E950 7F009DE0 3C018005 */ lui $at, %hi(D_800519D0) # $at, 0x8005 +/* 03E954 7F009DE4 C4241A00 */ lwc1 $f4, %lo(D_800519D0)($at) +/* 03E958 7F009DE8 468084A0 */ cvt.s.w $f18, $f16 +/* 03E95C 7F009DEC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E960 7F009DF0 44813000 */ mtc1 $at, $f6 +/* 03E964 7F009DF4 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 03E968 7F009DF8 C43083B4 */ lwc1 $f16, %lo(global_timer_delta)($at) +/* 03E96C 7F009DFC 3C018003 */ lui $at, %hi(cursor_v_pos) # $at, 0x8003 +/* 03E970 7F009E00 46049202 */ mul.s $f8, $f18, $f4 +/* 03E974 7F009E04 C424A94C */ lwc1 $f4, %lo(cursor_v_pos)($at) +/* 03E978 7F009E08 46064280 */ add.s $f10, $f8, $f6 +/* 03E97C 7F009E0C 46105482 */ mul.s $f18, $f10, $f16 +/* 03E980 7F009E10 46122200 */ add.s $f8, $f4, $f18 +/* 03E984 7F009E14 10000012 */ b .L7F009E60 +/* 03E988 7F009E18 E428A94C */ swc1 $f8, %lo(cursor_v_pos)($at) +.L7F009E1C: +/* 03E98C 7F009E1C 04410010 */ bgez $v0, .L7F009E60 +/* 03E990 7F009E20 00000000 */ nop +/* 03E994 7F009E24 44823000 */ mtc1 $v0, $f6 +/* 03E998 7F009E28 3C018005 */ lui $at, %hi(D_800519D4) # $at, 0x8005 +/* 03E99C 7F009E2C C4301A04 */ lwc1 $f16, %lo(D_800519D4)($at) +/* 03E9A0 7F009E30 468032A0 */ cvt.s.w $f10, $f6 +/* 03E9A4 7F009E34 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E9A8 7F009E38 44819000 */ mtc1 $at, $f18 +/* 03E9AC 7F009E3C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 03E9B0 7F009E40 C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 03E9B4 7F009E44 3C018003 */ lui $at, %hi(cursor_v_pos) # $at, 0x8003 +/* 03E9B8 7F009E48 46105102 */ mul.s $f4, $f10, $f16 +/* 03E9BC 7F009E4C C430A94C */ lwc1 $f16, %lo(cursor_v_pos)($at) +/* 03E9C0 7F009E50 46122201 */ sub.s $f8, $f4, $f18 +/* 03E9C4 7F009E54 46064282 */ mul.s $f10, $f8, $f6 +/* 03E9C8 7F009E58 460A8100 */ add.s $f4, $f16, $f10 +/* 03E9CC 7F009E5C E424A94C */ swc1 $f4, %lo(cursor_v_pos)($at) +.L7F009E60: +/* 03E9D0 7F009E60 0FC1E2B1 */ jal getPlayer_c_screentop +/* 03E9D4 7F009E64 00000000 */ nop +/* 03E9D8 7F009E68 0FC1E2A9 */ jal getPlayer_c_screenheight +/* 03E9DC 7F009E6C E7A00018 */ swc1 $f0, 0x18($sp) +/* 03E9E0 7F009E70 C7B20018 */ lwc1 $f18, 0x18($sp) +/* 03E9E4 7F009E74 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E9E8 7F009E78 44813000 */ mtc1 $at, $f6 +/* 03E9EC 7F009E7C 46120200 */ add.s $f8, $f0, $f18 +/* 03E9F0 7F009E80 3C018003 */ lui $at, %hi(cursor_v_pos) # $at, 0x8003 +/* 03E9F4 7F009E84 C42AA94C */ lwc1 $f10, %lo(cursor_v_pos)($at) +/* 03E9F8 7F009E88 46064401 */ sub.s $f16, $f8, $f6 +/* 03E9FC 7F009E8C 460A803C */ c.lt.s $f16, $f10 +/* 03EA00 7F009E90 00000000 */ nop +/* 03EA04 7F009E94 4500000D */ bc1f .L7F009ECC +/* 03EA08 7F009E98 00000000 */ nop +/* 03EA0C 7F009E9C 0FC1E2B1 */ jal getPlayer_c_screentop +/* 03EA10 7F009EA0 00000000 */ nop +/* 03EA14 7F009EA4 0FC1E2A9 */ jal getPlayer_c_screenheight +/* 03EA18 7F009EA8 E7A00018 */ swc1 $f0, 0x18($sp) +/* 03EA1C 7F009EAC C7A40018 */ lwc1 $f4, 0x18($sp) +/* 03EA20 7F009EB0 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03EA24 7F009EB4 44814000 */ mtc1 $at, $f8 +/* 03EA28 7F009EB8 46040480 */ add.s $f18, $f0, $f4 +/* 03EA2C 7F009EBC 3C018003 */ lui $at, %hi(cursor_v_pos) # $at, 0x8003 +/* 03EA30 7F009EC0 46089181 */ sub.s $f6, $f18, $f8 +/* 03EA34 7F009EC4 10000014 */ b .L7F009F18 +/* 03EA38 7F009EC8 E426A94C */ swc1 $f6, %lo(cursor_v_pos)($at) +.L7F009ECC: +/* 03EA3C 7F009ECC 0FC1E2B1 */ jal getPlayer_c_screentop +/* 03EA40 7F009ED0 00000000 */ nop +/* 03EA44 7F009ED4 3C018003 */ lui $at, %hi(cursor_v_pos) # $at, 0x8003 +/* 03EA48 7F009ED8 C430A94C */ lwc1 $f16, %lo(cursor_v_pos)($at) +/* 03EA4C 7F009EDC 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03EA50 7F009EE0 44815000 */ mtc1 $at, $f10 +/* 03EA54 7F009EE4 00000000 */ nop +/* 03EA58 7F009EE8 460A0100 */ add.s $f4, $f0, $f10 +/* 03EA5C 7F009EEC 4604803C */ c.lt.s $f16, $f4 +/* 03EA60 7F009EF0 00000000 */ nop +/* 03EA64 7F009EF4 45020009 */ bc1fl .L7F009F1C +/* 03EA68 7F009EF8 8FBF0014 */ lw $ra, 0x14($sp) +/* 03EA6C 7F009EFC 0FC1E2B1 */ jal getPlayer_c_screentop +/* 03EA70 7F009F00 00000000 */ nop +/* 03EA74 7F009F04 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03EA78 7F009F08 44819000 */ mtc1 $at, $f18 +/* 03EA7C 7F009F0C 3C018003 */ lui $at, %hi(cursor_v_pos) # $at, 0x8003 +/* 03EA80 7F009F10 46120200 */ add.s $f8, $f0, $f18 +/* 03EA84 7F009F14 E428A94C */ swc1 $f8, %lo(cursor_v_pos)($at) +.L7F009F18: +/* 03EA88 7F009F18 8FBF0014 */ lw $ra, 0x14($sp) +.L7F009F1C: +/* 03EA8C 7F009F1C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 03EA90 7F009F20 03E00008 */ jr $ra +/* 03EA94 7F009F24 00000000 */ nop +) +#endif +#endif + + + + +#ifdef NONMATCHING +void load_draw_selected_icon_folder_select(s32 arg0, s32 arg1A) { + f32 sp58; + f32 sp5C; + f32 sp60; + f32 sp64; + + // Node 0 + if (folder_selection_screen_option_icon == 0) + { + // Node 1 + } + else + { + // Node 2 + if (folder_selection_screen_option_icon == 1) + { + // Node 3 + } + else + { + // Node 4 + if (folder_selection_screen_option_icon == 2) + { + // Node 5 + } + } + } + // Node 6 + likely_generate_DL_for_image_declaration(&arg1A, sp54, 4, 0, 0); + sp60 = truncf((cursor_h_pos + 0.5f)); + sp64 = truncf((cursor_v_pos + 0.5f)); + sp58 = (f32) ((f32) (u32) sp54->unk4 * 0.5f); + if (sp54->unk5 < 0) + { + // Node 7 + } + // Node 8 + sp5C = (f32) ((f32) sp54->unk5 * 0.5f); + display_image_at_on_screen_coord(&arg1A, &sp60, &sp58, sp54->unk4, (s32) sp54->unk5, 0, 0, 1, 0xff, 0xff, 0xff, 0xdc, (s32) (0 < sp54->unk6), 0); + return; + // (possible return value: arg1A) +} +#else +GLOBAL_ASM( +.text +glabel load_draw_selected_icon_folder_select +/* 03EA38 7F009F08 3C028003 */ lui $v0, %hi(folder_selection_screen_option_icon) +/* 03EA3C 7F009F0C 8C42A918 */ lw $v0, %lo(folder_selection_screen_option_icon)($v0) +/* 03EA40 7F009F10 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 03EA44 7F009F14 AFBF0044 */ sw $ra, 0x44($sp) +/* 03EA48 7F009F18 AFB00040 */ sw $s0, 0x40($sp) +/* 03EA4C 7F009F1C 14400005 */ bnez $v0, .L7F009F34 +/* 03EA50 7F009F20 AFA40068 */ sw $a0, 0x68($sp) +/* 03EA54 7F009F24 3C108009 */ lui $s0, %hi(crosshairimage) +/* 03EA58 7F009F28 8E10D114 */ lw $s0, %lo(crosshairimage)($s0) +/* 03EA5C 7F009F2C 1000000D */ b .L7F009F64 +/* 03EA60 7F009F30 AFB00054 */ sw $s0, 0x54($sp) +.L7F009F34: +/* 03EA64 7F009F34 24010001 */ li $at, 1 +/* 03EA68 7F009F38 14410004 */ bne $v0, $at, .L7F009F4C +/* 03EA6C 7F009F3C 3C108009 */ lui $s0, %hi(mainfolderimages) +/* 03EA70 7F009F40 8E10D128 */ lw $s0, %lo(mainfolderimages)($s0) +/* 03EA74 7F009F44 10000007 */ b .L7F009F64 +/* 03EA78 7F009F48 AFB00054 */ sw $s0, 0x54($sp) +.L7F009F4C: +/* 03EA7C 7F009F4C 24010002 */ li $at, 2 +/* 03EA80 7F009F50 14410004 */ bne $v0, $at, .L7F009F64 +/* 03EA84 7F009F54 3C108009 */ lui $s0, %hi(mainfolderimages) +/* 03EA88 7F009F58 8E10D128 */ lw $s0, %lo(mainfolderimages)($s0) +/* 03EA8C 7F009F5C 2610000C */ addiu $s0, $s0, 0xc +/* 03EA90 7F009F60 AFB00054 */ sw $s0, 0x54($sp) +.L7F009F64: +/* 03EA94 7F009F64 8FB00054 */ lw $s0, 0x54($sp) +/* 03EA98 7F009F68 27A40068 */ addiu $a0, $sp, 0x68 +/* 03EA9C 7F009F6C 24060004 */ li $a2, 4 +/* 03EAA0 7F009F70 00003825 */ move $a3, $zero +/* 03EAA4 7F009F74 AFA00010 */ sw $zero, 0x10($sp) +/* 03EAA8 7F009F78 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 03EAAC 7F009F7C 02002825 */ move $a1, $s0 +/* 03EAB0 7F009F80 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03EAB4 7F009F84 C424A908 */ lwc1 $f4, %lo(cursor_h_pos)($at) +/* 03EAB8 7F009F88 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03EABC 7F009F8C 44813000 */ mtc1 $at, $f6 +/* 03EAC0 7F009F90 0FC170D8 */ jal truncf +/* 03EAC4 7F009F94 46062300 */ add.s $f12, $f4, $f6 +/* 03EAC8 7F009F98 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03EACC 7F009F9C C428A90C */ lwc1 $f8, %lo(cursor_v_pos)($at) +/* 03EAD0 7F009FA0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03EAD4 7F009FA4 44815000 */ mtc1 $at, $f10 +/* 03EAD8 7F009FA8 E7A00060 */ swc1 $f0, 0x60($sp) +/* 03EADC 7F009FAC 0FC170D8 */ jal truncf +/* 03EAE0 7F009FB0 460A4300 */ add.s $f12, $f8, $f10 +/* 03EAE4 7F009FB4 E7A00064 */ swc1 $f0, 0x64($sp) +/* 03EAE8 7F009FB8 920E0004 */ lbu $t6, 4($s0) +/* 03EAEC 7F009FBC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03EAF0 7F009FC0 44811000 */ mtc1 $at, $f2 +/* 03EAF4 7F009FC4 448E8000 */ mtc1 $t6, $f16 +/* 03EAF8 7F009FC8 27A40068 */ addiu $a0, $sp, 0x68 +/* 03EAFC 7F009FCC 05C10005 */ bgez $t6, .L7F009FE4 +/* 03EB00 7F009FD0 468084A0 */ cvt.s.w $f18, $f16 +/* 03EB04 7F009FD4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 03EB08 7F009FD8 44812000 */ mtc1 $at, $f4 +/* 03EB0C 7F009FDC 00000000 */ nop +/* 03EB10 7F009FE0 46049480 */ add.s $f18, $f18, $f4 +.L7F009FE4: +/* 03EB14 7F009FE4 46029182 */ mul.s $f6, $f18, $f2 +/* 03EB18 7F009FE8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 03EB1C 7F009FEC E7A60058 */ swc1 $f6, 0x58($sp) +/* 03EB20 7F009FF0 920F0005 */ lbu $t7, 5($s0) +/* 03EB24 7F009FF4 448F4000 */ mtc1 $t7, $f8 +/* 03EB28 7F009FF8 05E10004 */ bgez $t7, .L7F00A00C +/* 03EB2C 7F009FFC 468042A0 */ cvt.s.w $f10, $f8 +/* 03EB30 7F00A000 44818000 */ mtc1 $at, $f16 +/* 03EB34 7F00A004 00000000 */ nop +/* 03EB38 7F00A008 46105280 */ add.s $f10, $f10, $f16 +.L7F00A00C: +/* 03EB3C 7F00A00C 46025102 */ mul.s $f4, $f10, $f2 +/* 03EB40 7F00A010 24190001 */ li $t9, 1 +/* 03EB44 7F00A014 240800FF */ li $t0, 255 +/* 03EB48 7F00A018 240900FF */ li $t1, 255 +/* 03EB4C 7F00A01C 240A00FF */ li $t2, 255 +/* 03EB50 7F00A020 240B00DC */ li $t3, 220 +/* 03EB54 7F00A024 27A50060 */ addiu $a1, $sp, 0x60 +/* 03EB58 7F00A028 E7A4005C */ swc1 $f4, 0x5c($sp) +/* 03EB5C 7F00A02C 92180005 */ lbu $t8, 5($s0) +/* 03EB60 7F00A030 92070004 */ lbu $a3, 4($s0) +/* 03EB64 7F00A034 AFAB002C */ sw $t3, 0x2c($sp) +/* 03EB68 7F00A038 AFAA0028 */ sw $t2, 0x28($sp) +/* 03EB6C 7F00A03C AFA90024 */ sw $t1, 0x24($sp) +/* 03EB70 7F00A040 AFA80020 */ sw $t0, 0x20($sp) +/* 03EB74 7F00A044 AFB9001C */ sw $t9, 0x1c($sp) +/* 03EB78 7F00A048 AFA00018 */ sw $zero, 0x18($sp) +/* 03EB7C 7F00A04C AFA00014 */ sw $zero, 0x14($sp) +/* 03EB80 7F00A050 AFB80010 */ sw $t8, 0x10($sp) +/* 03EB84 7F00A054 920C0006 */ lbu $t4, 6($s0) +/* 03EB88 7F00A058 AFA00034 */ sw $zero, 0x34($sp) +/* 03EB8C 7F00A05C 27A60058 */ addiu $a2, $sp, 0x58 +/* 03EB90 7F00A060 000C682A */ slt $t5, $zero, $t4 +/* 03EB94 7F00A064 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 03EB98 7F00A068 AFAD0030 */ sw $t5, 0x30($sp) +/* 03EB9C 7F00A06C 8FBF0044 */ lw $ra, 0x44($sp) +/* 03EBA0 7F00A070 8FA20068 */ lw $v0, 0x68($sp) +/* 03EBA4 7F00A074 8FB00040 */ lw $s0, 0x40($sp) +/* 03EBA8 7F00A078 03E00008 */ jr $ra +/* 03EBAC 7F00A07C 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + + + +#ifdef NONMATCHING +s32 add_tab1_start(s32 arg0) { + s16 sp44; + s32 sp48; + s32 sp4C; + s32 sp50; + s32 sp54; + s32 temp_a3; + + // Node 0 + dword_CODE_bss_80069770 = get_textptr_for_textID(TEXT(LTITLE, 0x04)); + setTextSpacingInverted(1); + sp48 = 0; + sp4C = 0; + sub_GAME_7F0AE98C(&sp4C, &sp48, dword_CODE_bss_80069770, ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0); + sp54 = 0x33; + if (sp4C < 0) + { + // Node 1 + } + // Node 2 + temp_a3 = (0x19b - (sp4C >> 1)); + if (tab_1_highlight != 0) + { + // Node 3 + microcode_constructor_related_to_menus(arg0, ((temp_a3 - sp4C) + 1), 0x33, temp_a3, 0x75, 0x32); + } + // Node 4 + setTextOrientation(1, temp_a3); + if (sp48 < 0) + { + // Node 5 + } + // Node 6 + sp54 = (s32) (0x54 - (sp48 >> 1)); + sp44 = get_video2_settings_txtClipH(); + en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069770, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, get_video2_settings_txtClipW(), 0, 0); + setTextOrientation(0); + setTextSpacingInverted(0); + return; + // (possible return value: en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069770, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, get_video2_settings_txtClipW(), 0, 0)) +} +#else +GLOBAL_ASM( +.text +glabel add_tab1_start +/* 03EBB0 7F00A080 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 03EBB4 7F00A084 AFB00038 */ sw $s0, 0x38($sp) +/* 03EBB8 7F00A088 00808025 */ move $s0, $a0 +/* 03EBBC 7F00A08C AFBF003C */ sw $ra, 0x3c($sp) +/* 03EBC0 7F00A090 0FC30776 */ jal get_textptr_for_textID +/* 03EBC4 7F00A094 34049C04 */ li $a0, 39940 +/* 03EBC8 7F00A098 3C018007 */ lui $at, %hi(dword_CODE_bss_80069770) +/* 03EBCC 7F00A09C AC229770 */ sw $v0, %lo(dword_CODE_bss_80069770)($at) +/* 03EBD0 7F00A0A0 0FC2B2DE */ jal setTextSpacingInverted +/* 03EBD4 7F00A0A4 24040001 */ li $a0, 1 +/* 03EBD8 7F00A0A8 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 03EBDC 7F00A0AC 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 03EBE0 7F00A0B0 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069770) +/* 03EBE4 7F00A0B4 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 03EBE8 7F00A0B8 AFA00048 */ sw $zero, 0x48($sp) +/* 03EBEC 7F00A0BC AFA0004C */ sw $zero, 0x4c($sp) +/* 03EBF0 7F00A0C0 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 03EBF4 7F00A0C4 8CC69770 */ lw $a2, %lo(dword_CODE_bss_80069770)($a2) +/* 03EBF8 7F00A0C8 27A4004C */ addiu $a0, $sp, 0x4c +/* 03EBFC 7F00A0CC 27A50048 */ addiu $a1, $sp, 0x48 +/* 03EC00 7F00A0D0 AFA00014 */ sw $zero, 0x14($sp) +/* 03EC04 7F00A0D4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 03EC08 7F00A0D8 AFAE0010 */ sw $t6, 0x10($sp) +/* 03EC0C 7F00A0DC 8FB8004C */ lw $t8, 0x4c($sp) +/* 03EC10 7F00A0E0 3C098003 */ lui $t1, %hi(tab_1_highlight) +/* 03EC14 7F00A0E4 8D29A8DC */ lw $t1, %lo(tab_1_highlight)($t1) +/* 03EC18 7F00A0E8 2408019B */ li $t0, 411 +/* 03EC1C 7F00A0EC 240F0033 */ li $t7, 51 +/* 03EC20 7F00A0F0 AFAF0054 */ sw $t7, 0x54($sp) +/* 03EC24 7F00A0F4 07010003 */ bgez $t8, .L7F00A104 +/* 03EC28 7F00A0F8 0018C843 */ sra $t9, $t8, 1 +/* 03EC2C 7F00A0FC 27010001 */ addiu $at, $t8, 1 +/* 03EC30 7F00A100 0001C843 */ sra $t9, $at, 1 +.L7F00A104: +/* 03EC34 7F00A104 01193823 */ subu $a3, $t0, $t9 +/* 03EC38 7F00A108 1120000C */ beqz $t1, .L7F00A13C +/* 03EC3C 7F00A10C AFA70050 */ sw $a3, 0x50($sp) +/* 03EC40 7F00A110 00F82823 */ subu $a1, $a3, $t8 +/* 03EC44 7F00A114 240A0075 */ li $t2, 117 +/* 03EC48 7F00A118 240B0032 */ li $t3, 50 +/* 03EC4C 7F00A11C AFAB0014 */ sw $t3, 0x14($sp) +/* 03EC50 7F00A120 AFAA0010 */ sw $t2, 0x10($sp) +/* 03EC54 7F00A124 24A50001 */ addiu $a1, $a1, 1 +/* 03EC58 7F00A128 02002025 */ move $a0, $s0 +/* 03EC5C 7F00A12C 24060033 */ li $a2, 51 +/* 03EC60 7F00A130 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 03EC64 7F00A134 AFA70050 */ sw $a3, 0x50($sp) +/* 03EC68 7F00A138 00408025 */ move $s0, $v0 +.L7F00A13C: +/* 03EC6C 7F00A13C 0FC2B2E2 */ jal setTextOrientation +/* 03EC70 7F00A140 24040001 */ li $a0, 1 +/* 03EC74 7F00A144 8FAC0048 */ lw $t4, 0x48($sp) +/* 03EC78 7F00A148 240E0054 */ li $t6, 84 +/* 03EC7C 7F00A14C 05810003 */ bgez $t4, .L7F00A15C +/* 03EC80 7F00A150 000C6843 */ sra $t5, $t4, 1 +/* 03EC84 7F00A154 25810001 */ addiu $at, $t4, 1 +/* 03EC88 7F00A158 00016843 */ sra $t5, $at, 1 +.L7F00A15C: +/* 03EC8C 7F00A15C 01CD7823 */ subu $t7, $t6, $t5 +/* 03EC90 7F00A160 0C00110B */ jal get_video2_settings_txtClipH +/* 03EC94 7F00A164 AFAF0054 */ sw $t7, 0x54($sp) +/* 03EC98 7F00A168 0C001107 */ jal get_video2_settings_txtClipW +/* 03EC9C 7F00A16C A7A20044 */ sh $v0, 0x44($sp) +/* 03ECA0 7F00A170 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall) +/* 03ECA4 7F00A174 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 03ECA8 7F00A178 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 03ECAC 7F00A17C 8D080EB0 */ lw $t0, %lo(ptrSecondFontTableSmall)($t0) +/* 03ECB0 7F00A180 87B80044 */ lh $t8, 0x44($sp) +/* 03ECB4 7F00A184 3C078007 */ lui $a3, %hi(dword_CODE_bss_80069770) +/* 03ECB8 7F00A188 240900FF */ li $t1, 255 +/* 03ECBC 7F00A18C AFA90018 */ sw $t1, 0x18($sp) +/* 03ECC0 7F00A190 8CE79770 */ lw $a3, %lo(dword_CODE_bss_80069770)($a3) +/* 03ECC4 7F00A194 02002025 */ move $a0, $s0 +/* 03ECC8 7F00A198 27A50054 */ addiu $a1, $sp, 0x54 +/* 03ECCC 7F00A19C 27A60050 */ addiu $a2, $sp, 0x50 +/* 03ECD0 7F00A1A0 AFA20020 */ sw $v0, 0x20($sp) +/* 03ECD4 7F00A1A4 AFA00024 */ sw $zero, 0x24($sp) +/* 03ECD8 7F00A1A8 AFA00028 */ sw $zero, 0x28($sp) +/* 03ECDC 7F00A1AC AFB90014 */ sw $t9, 0x14($sp) +/* 03ECE0 7F00A1B0 AFA80010 */ sw $t0, 0x10($sp) +/* 03ECE4 7F00A1B4 0FC2B6AF */ jal en_text_write_stuff +/* 03ECE8 7F00A1B8 AFB8001C */ sw $t8, 0x1c($sp) +/* 03ECEC 7F00A1BC 00408025 */ move $s0, $v0 +/* 03ECF0 7F00A1C0 0FC2B2E2 */ jal setTextOrientation +/* 03ECF4 7F00A1C4 00002025 */ move $a0, $zero +/* 03ECF8 7F00A1C8 0FC2B2DE */ jal setTextSpacingInverted +/* 03ECFC 7F00A1CC 00002025 */ move $a0, $zero +/* 03ED00 7F00A1D0 8FBF003C */ lw $ra, 0x3c($sp) +/* 03ED04 7F00A1D4 02001025 */ move $v0, $s0 +/* 03ED08 7F00A1D8 8FB00038 */ lw $s0, 0x38($sp) +/* 03ED0C 7F00A1DC 03E00008 */ jr $ra +/* 03ED10 7F00A1E0 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + + +s32 isontab1(void) { + if ((390.00000000f < cursor_h_pos) && (cursor_v_pos <= 130.5f)) { + return TRUE; + } + return FALSE; +} + + +#ifdef NONMATCHING +s32 add_tab3_previous(s32 arg0) { + s16 sp44; + s32 sp48; + s32 sp4C; + s32 sp50; + s32 sp54; + s32 temp_a3; + + // Node 0 + dword_CODE_bss_80069778 = get_textptr_for_textID(TEXT(LTITLE, 0x06)); + setTextSpacingInverted(1); + sp48 = 0; + sp4C = 0; + sub_GAME_7F0AE98C(&sp4C, &sp48, dword_CODE_bss_80069778, ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0); + sp54 = 0xec; + if (sp4C < 0) + { + // Node 1 + } + // Node 2 + temp_a3 = (0x19b - (sp4C >> 1)); + if (tab_3_highlight != 0) + { + // Node 3 + microcode_constructor_related_to_menus(arg0, ((temp_a3 - sp4C) + 1), 0xec, temp_a3, 0x12e, 0x32); + } + // Node 4 + setTextOrientation(1, temp_a3); + if (sp48 < 0) + { + // Node 5 + } + // Node 6 + sp54 = (s32) (0x10d - (sp48 >> 1)); + sp44 = get_video2_settings_txtClipH(); + en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069778, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, get_video2_settings_txtClipW(), 0, 0); + setTextOrientation(0); + setTextSpacingInverted(0); + return; + // (possible return value: en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069778, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, get_video2_settings_txtClipW(), 0, 0)) +} +#else +GLOBAL_ASM( +.text +glabel add_tab3_previous +/* 03ED68 7F00A238 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 03ED6C 7F00A23C AFB00038 */ sw $s0, 0x38($sp) +/* 03ED70 7F00A240 00808025 */ move $s0, $a0 +/* 03ED74 7F00A244 AFBF003C */ sw $ra, 0x3c($sp) +/* 03ED78 7F00A248 0FC30776 */ jal get_textptr_for_textID +/* 03ED7C 7F00A24C 34049C06 */ li $a0, 39942 +/* 03ED80 7F00A250 3C018007 */ lui $at, %hi(dword_CODE_bss_80069778) +/* 03ED84 7F00A254 AC229778 */ sw $v0, %lo(dword_CODE_bss_80069778)($at) +/* 03ED88 7F00A258 0FC2B2DE */ jal setTextSpacingInverted +/* 03ED8C 7F00A25C 24040001 */ li $a0, 1 +/* 03ED90 7F00A260 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 03ED94 7F00A264 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 03ED98 7F00A268 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069778) +/* 03ED9C 7F00A26C 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 03EDA0 7F00A270 AFA00048 */ sw $zero, 0x48($sp) +/* 03EDA4 7F00A274 AFA0004C */ sw $zero, 0x4c($sp) +/* 03EDA8 7F00A278 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 03EDAC 7F00A27C 8CC69778 */ lw $a2, %lo(dword_CODE_bss_80069778)($a2) +/* 03EDB0 7F00A280 27A4004C */ addiu $a0, $sp, 0x4c +/* 03EDB4 7F00A284 27A50048 */ addiu $a1, $sp, 0x48 +/* 03EDB8 7F00A288 AFA00014 */ sw $zero, 0x14($sp) +/* 03EDBC 7F00A28C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 03EDC0 7F00A290 AFAE0010 */ sw $t6, 0x10($sp) +/* 03EDC4 7F00A294 8FB8004C */ lw $t8, 0x4c($sp) +/* 03EDC8 7F00A298 3C098003 */ lui $t1, %hi(tab_3_highlight) +/* 03EDCC 7F00A29C 8D29A8E4 */ lw $t1, %lo(tab_3_highlight)($t1) +/* 03EDD0 7F00A2A0 2408019B */ li $t0, 411 +/* 03EDD4 7F00A2A4 240F00EC */ li $t7, 236 +/* 03EDD8 7F00A2A8 AFAF0054 */ sw $t7, 0x54($sp) +/* 03EDDC 7F00A2AC 07010003 */ bgez $t8, .L7F00A2BC +/* 03EDE0 7F00A2B0 0018C843 */ sra $t9, $t8, 1 +/* 03EDE4 7F00A2B4 27010001 */ addiu $at, $t8, 1 +/* 03EDE8 7F00A2B8 0001C843 */ sra $t9, $at, 1 +.L7F00A2BC: +/* 03EDEC 7F00A2BC 01193823 */ subu $a3, $t0, $t9 +/* 03EDF0 7F00A2C0 1120000C */ beqz $t1, .L7F00A2F4 +/* 03EDF4 7F00A2C4 AFA70050 */ sw $a3, 0x50($sp) +/* 03EDF8 7F00A2C8 00F82823 */ subu $a1, $a3, $t8 +/* 03EDFC 7F00A2CC 240A012E */ li $t2, 302 +/* 03EE00 7F00A2D0 240B0032 */ li $t3, 50 +/* 03EE04 7F00A2D4 AFAB0014 */ sw $t3, 0x14($sp) +/* 03EE08 7F00A2D8 AFAA0010 */ sw $t2, 0x10($sp) +/* 03EE0C 7F00A2DC 24A50001 */ addiu $a1, $a1, 1 +/* 03EE10 7F00A2E0 02002025 */ move $a0, $s0 +/* 03EE14 7F00A2E4 240600EC */ li $a2, 236 +/* 03EE18 7F00A2E8 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 03EE1C 7F00A2EC AFA70050 */ sw $a3, 0x50($sp) +/* 03EE20 7F00A2F0 00408025 */ move $s0, $v0 +.L7F00A2F4: +/* 03EE24 7F00A2F4 0FC2B2E2 */ jal setTextOrientation +/* 03EE28 7F00A2F8 24040001 */ li $a0, 1 +/* 03EE2C 7F00A2FC 8FAC0048 */ lw $t4, 0x48($sp) +/* 03EE30 7F00A300 240E010D */ li $t6, 269 +/* 03EE34 7F00A304 05810003 */ bgez $t4, .L7F00A314 +/* 03EE38 7F00A308 000C6843 */ sra $t5, $t4, 1 +/* 03EE3C 7F00A30C 25810001 */ addiu $at, $t4, 1 +/* 03EE40 7F00A310 00016843 */ sra $t5, $at, 1 +.L7F00A314: +/* 03EE44 7F00A314 01CD7823 */ subu $t7, $t6, $t5 +/* 03EE48 7F00A318 0C00110B */ jal get_video2_settings_txtClipH +/* 03EE4C 7F00A31C AFAF0054 */ sw $t7, 0x54($sp) +/* 03EE50 7F00A320 0C001107 */ jal get_video2_settings_txtClipW +/* 03EE54 7F00A324 A7A20044 */ sh $v0, 0x44($sp) +/* 03EE58 7F00A328 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall) +/* 03EE5C 7F00A32C 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 03EE60 7F00A330 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 03EE64 7F00A334 8D080EB0 */ lw $t0, %lo(ptrSecondFontTableSmall)($t0) +/* 03EE68 7F00A338 87B80044 */ lh $t8, 0x44($sp) +/* 03EE6C 7F00A33C 3C078007 */ lui $a3, %hi(dword_CODE_bss_80069778) +/* 03EE70 7F00A340 240900FF */ li $t1, 255 +/* 03EE74 7F00A344 AFA90018 */ sw $t1, 0x18($sp) +/* 03EE78 7F00A348 8CE79778 */ lw $a3, %lo(dword_CODE_bss_80069778)($a3) +/* 03EE7C 7F00A34C 02002025 */ move $a0, $s0 +/* 03EE80 7F00A350 27A50054 */ addiu $a1, $sp, 0x54 +/* 03EE84 7F00A354 27A60050 */ addiu $a2, $sp, 0x50 +/* 03EE88 7F00A358 AFA20020 */ sw $v0, 0x20($sp) +/* 03EE8C 7F00A35C AFA00024 */ sw $zero, 0x24($sp) +/* 03EE90 7F00A360 AFA00028 */ sw $zero, 0x28($sp) +/* 03EE94 7F00A364 AFB90014 */ sw $t9, 0x14($sp) +/* 03EE98 7F00A368 AFA80010 */ sw $t0, 0x10($sp) +/* 03EE9C 7F00A36C 0FC2B6AF */ jal en_text_write_stuff +/* 03EEA0 7F00A370 AFB8001C */ sw $t8, 0x1c($sp) +/* 03EEA4 7F00A374 00408025 */ move $s0, $v0 +/* 03EEA8 7F00A378 0FC2B2E2 */ jal setTextOrientation +/* 03EEAC 7F00A37C 00002025 */ move $a0, $zero +/* 03EEB0 7F00A380 0FC2B2DE */ jal setTextSpacingInverted +/* 03EEB4 7F00A384 00002025 */ move $a0, $zero +/* 03EEB8 7F00A388 8FBF003C */ lw $ra, 0x3c($sp) +/* 03EEBC 7F00A38C 02001025 */ move $v0, $s0 +/* 03EEC0 7F00A390 8FB00038 */ lw $s0, 0x38($sp) +/* 03EEC4 7F00A394 03E00008 */ jr $ra +/* 03EEC8 7F00A398 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +u32 isontab3(void) +{ + if ((390.0f < cursor_h_pos) && (223.0f < cursor_v_pos)) { + return 1; + } + else { + return 0; + } +} + +void set_cursor_pos_tab2(void) +{ + cursor_h_pos = 399.0f; + cursor_v_pos = 144.0f; +} + + +#ifdef NONMATCHING +s32 add_tab2_next(s32 arg0) { + s16 sp44; + s32 sp48; + s32 sp4C; + s32 sp50; + s32 sp54; + s32 temp_a3; + + // Node 0 + dword_CODE_bss_80069774 = get_textptr_for_textID(TEXT(LTITLE, 0x05)); + setTextSpacingInverted(1); + sp48 = 0; + sp4C = 0; + sub_GAME_7F0AE98C(&sp4C, &sp48, dword_CODE_bss_80069774, ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0); + sp54 = 0x90; + if (sp4C < 0) + { + // Node 1 + } + // Node 2 + temp_a3 = (0x19b - (sp4C >> 1)); + if (tab_2_highlight != 0) + { + // Node 3 + microcode_constructor_related_to_menus(arg0, ((temp_a3 - sp4C) + 1), 0x90, temp_a3, 0xd2, 0x32); + } + // Node 4 + setTextOrientation(1, temp_a3); + if (sp48 < 0) + { + // Node 5 + } + // Node 6 + sp54 = (s32) (0xb1 - (sp48 >> 1)); + sp44 = get_video2_settings_txtClipH(); + en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069774, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, get_video2_settings_txtClipW(), 0, 0); + setTextOrientation(0); + setTextSpacingInverted(0); + return; + // (possible return value: en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069774, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, get_video2_settings_txtClipW(), 0, 0)) +} +#else +GLOBAL_ASM( +.text +glabel add_tab2_next +/* 03EF44 7F00A414 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 03EF48 7F00A418 AFB00038 */ sw $s0, 0x38($sp) +/* 03EF4C 7F00A41C 00808025 */ move $s0, $a0 +/* 03EF50 7F00A420 AFBF003C */ sw $ra, 0x3c($sp) +/* 03EF54 7F00A424 0FC30776 */ jal get_textptr_for_textID +/* 03EF58 7F00A428 34049C05 */ li $a0, 39941 +/* 03EF5C 7F00A42C 3C018007 */ lui $at, %hi(dword_CODE_bss_80069774) +/* 03EF60 7F00A430 AC229774 */ sw $v0, %lo(dword_CODE_bss_80069774)($at) +/* 03EF64 7F00A434 0FC2B2DE */ jal setTextSpacingInverted +/* 03EF68 7F00A438 24040001 */ li $a0, 1 +/* 03EF6C 7F00A43C 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 03EF70 7F00A440 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 03EF74 7F00A444 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069774) +/* 03EF78 7F00A448 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 03EF7C 7F00A44C AFA00048 */ sw $zero, 0x48($sp) +/* 03EF80 7F00A450 AFA0004C */ sw $zero, 0x4c($sp) +/* 03EF84 7F00A454 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 03EF88 7F00A458 8CC69774 */ lw $a2, %lo(dword_CODE_bss_80069774)($a2) +/* 03EF8C 7F00A45C 27A4004C */ addiu $a0, $sp, 0x4c +/* 03EF90 7F00A460 27A50048 */ addiu $a1, $sp, 0x48 +/* 03EF94 7F00A464 AFA00014 */ sw $zero, 0x14($sp) +/* 03EF98 7F00A468 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 03EF9C 7F00A46C AFAE0010 */ sw $t6, 0x10($sp) +/* 03EFA0 7F00A470 8FB8004C */ lw $t8, 0x4c($sp) +/* 03EFA4 7F00A474 3C098003 */ lui $t1, %hi(tab_2_highlight) +/* 03EFA8 7F00A478 8D29A8E0 */ lw $t1, %lo(tab_2_highlight)($t1) +/* 03EFAC 7F00A47C 2408019B */ li $t0, 411 +/* 03EFB0 7F00A480 240F0090 */ li $t7, 144 +/* 03EFB4 7F00A484 AFAF0054 */ sw $t7, 0x54($sp) +/* 03EFB8 7F00A488 07010003 */ bgez $t8, .L7F00A498 +/* 03EFBC 7F00A48C 0018C843 */ sra $t9, $t8, 1 +/* 03EFC0 7F00A490 27010001 */ addiu $at, $t8, 1 +/* 03EFC4 7F00A494 0001C843 */ sra $t9, $at, 1 +.L7F00A498: +/* 03EFC8 7F00A498 01193823 */ subu $a3, $t0, $t9 +/* 03EFCC 7F00A49C 1120000C */ beqz $t1, .L7F00A4D0 +/* 03EFD0 7F00A4A0 AFA70050 */ sw $a3, 0x50($sp) +/* 03EFD4 7F00A4A4 00F82823 */ subu $a1, $a3, $t8 +/* 03EFD8 7F00A4A8 240A00D2 */ li $t2, 210 +/* 03EFDC 7F00A4AC 240B0032 */ li $t3, 50 +/* 03EFE0 7F00A4B0 AFAB0014 */ sw $t3, 0x14($sp) +/* 03EFE4 7F00A4B4 AFAA0010 */ sw $t2, 0x10($sp) +/* 03EFE8 7F00A4B8 24A50001 */ addiu $a1, $a1, 1 +/* 03EFEC 7F00A4BC 02002025 */ move $a0, $s0 +/* 03EFF0 7F00A4C0 24060090 */ li $a2, 144 +/* 03EFF4 7F00A4C4 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 03EFF8 7F00A4C8 AFA70050 */ sw $a3, 0x50($sp) +/* 03EFFC 7F00A4CC 00408025 */ move $s0, $v0 +.L7F00A4D0: +/* 03F000 7F00A4D0 0FC2B2E2 */ jal setTextOrientation +/* 03F004 7F00A4D4 24040001 */ li $a0, 1 +/* 03F008 7F00A4D8 8FAC0048 */ lw $t4, 0x48($sp) +/* 03F00C 7F00A4DC 240E00B1 */ li $t6, 177 +/* 03F010 7F00A4E0 05810003 */ bgez $t4, .L7F00A4F0 +/* 03F014 7F00A4E4 000C6843 */ sra $t5, $t4, 1 +/* 03F018 7F00A4E8 25810001 */ addiu $at, $t4, 1 +/* 03F01C 7F00A4EC 00016843 */ sra $t5, $at, 1 +.L7F00A4F0: +/* 03F020 7F00A4F0 01CD7823 */ subu $t7, $t6, $t5 +/* 03F024 7F00A4F4 0C00110B */ jal get_video2_settings_txtClipH +/* 03F028 7F00A4F8 AFAF0054 */ sw $t7, 0x54($sp) +/* 03F02C 7F00A4FC 0C001107 */ jal get_video2_settings_txtClipW +/* 03F030 7F00A500 A7A20044 */ sh $v0, 0x44($sp) +/* 03F034 7F00A504 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall) +/* 03F038 7F00A508 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 03F03C 7F00A50C 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 03F040 7F00A510 8D080EB0 */ lw $t0, %lo(ptrSecondFontTableSmall)($t0) +/* 03F044 7F00A514 87B80044 */ lh $t8, 0x44($sp) +/* 03F048 7F00A518 3C078007 */ lui $a3, %hi(dword_CODE_bss_80069774) +/* 03F04C 7F00A51C 240900FF */ li $t1, 255 +/* 03F050 7F00A520 AFA90018 */ sw $t1, 0x18($sp) +/* 03F054 7F00A524 8CE79774 */ lw $a3, %lo(dword_CODE_bss_80069774)($a3) +/* 03F058 7F00A528 02002025 */ move $a0, $s0 +/* 03F05C 7F00A52C 27A50054 */ addiu $a1, $sp, 0x54 +/* 03F060 7F00A530 27A60050 */ addiu $a2, $sp, 0x50 +/* 03F064 7F00A534 AFA20020 */ sw $v0, 0x20($sp) +/* 03F068 7F00A538 AFA00024 */ sw $zero, 0x24($sp) +/* 03F06C 7F00A53C AFA00028 */ sw $zero, 0x28($sp) +/* 03F070 7F00A540 AFB90014 */ sw $t9, 0x14($sp) +/* 03F074 7F00A544 AFA80010 */ sw $t0, 0x10($sp) +/* 03F078 7F00A548 0FC2B6AF */ jal en_text_write_stuff +/* 03F07C 7F00A54C AFB8001C */ sw $t8, 0x1c($sp) +/* 03F080 7F00A550 00408025 */ move $s0, $v0 +/* 03F084 7F00A554 0FC2B2E2 */ jal setTextOrientation +/* 03F088 7F00A558 00002025 */ move $a0, $zero +/* 03F08C 7F00A55C 0FC2B2DE */ jal setTextSpacingInverted +/* 03F090 7F00A560 00002025 */ move $a0, $zero +/* 03F094 7F00A564 8FBF003C */ lw $ra, 0x3c($sp) +/* 03F098 7F00A568 02001025 */ move $v0, $s0 +/* 03F09C 7F00A56C 8FB00038 */ lw $s0, 0x38($sp) +/* 03F0A0 7F00A570 03E00008 */ jr $ra +/* 03F0A4 7F00A574 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + +u32 isontab2(void) +{ + if (((390.0f < cursor_h_pos) && (130.5f < cursor_v_pos)) && (cursor_v_pos <= 223.00000000f)) { + return TRUE; + } + return FALSE; +} + + + + + + +#ifdef NONMATCHING +void init_menu00_legalscreen(void) +{ + struct point sp20; + + musicTrack1Stop(); + maybe_is_in_menu = 1; + menu_timer = 0; + sp20 = D_8002A9C0; + load_object_fill_header(&PitemZ_entries[0xEF4], &PitemZ_entries[0xEF8], ptr_logo_and_walletbond_DL, 0x3c000, 0); + set_objuse_flag_compute_grp_nums_set_obj_loaded(&PlegalpageZ_header); + + something_legalscreen_constructor = get_obj_instance_controller_for_header(PlegalpageZ_header); + set_obj_instance_controller_scale(something_legalscreen_constructor, 1.0f); + setsuboffset(something_legalscreen_constructor, &sp20); + sub_GAME_7F01DF90(); +} +#else +GLOBAL_ASM( +.text +glabel init_menu00_legalscreen +/* 03F118 7F00A5E8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 03F11C 7F00A5EC AFBF001C */ sw $ra, 0x1c($sp) +/* 03F120 7F00A5F0 0C001BF4 */ jal musicTrack1Stop +/* 03F124 7F00A5F4 00000000 */ nop +/* 03F128 7F00A5F8 240E0001 */ li $t6, 1 +/* 03F12C 7F00A5FC 3C018003 */ lui $at, %hi(maybe_is_in_menu) +/* 03F130 7F00A600 AC2EA93C */ sw $t6, %lo(maybe_is_in_menu)($at) +/* 03F134 7F00A604 3C018003 */ lui $at, %hi(menu_timer) +/* 03F138 7F00A608 3C188003 */ lui $t8, %hi(D_8002A9C0) +/* 03F13C 7F00A60C AC20A8CC */ sw $zero, %lo(menu_timer)($at) +/* 03F140 7F00A610 2718A9C0 */ addiu $t8, %lo(D_8002A9C0) # addiu $t8, $t8, -0x5640 +/* 03F144 7F00A614 8F010000 */ lw $at, ($t8) +/* 03F148 7F00A618 27AF0020 */ addiu $t7, $sp, 0x20 +/* 03F14C 7F00A61C 8F090004 */ lw $t1, 4($t8) +/* 03F150 7F00A620 ADE10000 */ sw $at, ($t7) +/* 03F154 7F00A624 8F010008 */ lw $at, 8($t8) +/* 03F158 7F00A628 ADE90004 */ sw $t1, 4($t7) +/* 03F15C 7F00A62C 3C028004 */ lui $v0, %hi(PitemZ_entries) +/* 03F160 7F00A630 ADE10008 */ sw $at, 8($t7) +/* 03F164 7F00A634 2442A228 */ addiu $v0, %lo(PitemZ_entries) # addiu $v0, $v0, -0x5dd8 +/* 03F168 7F00A638 3C068003 */ lui $a2, %hi(ptr_logo_and_walletbond_DL) +/* 03F16C 7F00A63C 3C070003 */ lui $a3, (0x0003C000 >> 16) # lui $a3, 3 +/* 03F170 7F00A640 34E7C000 */ ori $a3, (0x0003C000 & 0xFFFF) # ori $a3, $a3, 0xc000 +/* 03F174 7F00A644 8CC6A950 */ lw $a2, %lo(ptr_logo_and_walletbond_DL)($a2) +/* 03F178 7F00A648 8C440EF4 */ lw $a0, 0xef4($v0) +/* 03F17C 7F00A64C 8C450EF8 */ lw $a1, 0xef8($v0) +/* 03F180 7F00A650 0FC1D929 */ jal load_object_fill_header +/* 03F184 7F00A654 AFA00010 */ sw $zero, 0x10($sp) +/* 03F188 7F00A658 3C048004 */ lui $a0, %hi(PitemZ_entries+0xEF4) +/* 03F18C 7F00A65C 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 03F190 7F00A660 8C84B11C */ lw $a0, %lo(PitemZ_entries+0xEF4)($a0) +/* 03F194 7F00A664 3C048004 */ lui $a0, %hi(PitemZ_entries+0xEF4) +/* 03F198 7F00A668 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 03F19C 7F00A66C 8C84B11C */ lw $a0, %lo(PitemZ_entries+0xEF4)($a0) +/* 03F1A0 7F00A670 3C038003 */ lui $v1, %hi(something_legalscreen_constructor) +/* 03F1A4 7F00A674 2463A958 */ addiu $v1, %lo(something_legalscreen_constructor) # addiu $v1, $v1, -0x56a8 +/* 03F1A8 7F00A678 AC620000 */ sw $v0, ($v1) +/* 03F1AC 7F00A67C 00402025 */ move $a0, $v0 +/* 03F1B0 7F00A680 0FC1B39E */ jal set_obj_instance_controller_scale +/* 03F1B4 7F00A684 3C053F80 */ lui $a1, 0x3f80 +/* 03F1B8 7F00A688 3C048003 */ lui $a0, %hi(something_legalscreen_constructor) +/* 03F1BC 7F00A68C 8C84A958 */ lw $a0, %lo(something_legalscreen_constructor)($a0) +/* 03F1C0 7F00A690 0FC1B303 */ jal setsuboffset +/* 03F1C4 7F00A694 27A50020 */ addiu $a1, $sp, 0x20 +/* 03F1C8 7F00A698 0FC077E4 */ jal sub_GAME_7F01DF90 +/* 03F1CC 7F00A69C 00000000 */ nop +/* 03F1D0 7F00A6A0 8FBF001C */ lw $ra, 0x1c($sp) +/* 03F1D4 7F00A6A4 27BD0030 */ addiu $sp, $sp, 0x30 +/* 03F1D8 7F00A6A8 03E00008 */ jr $ra +/* 03F1DC 7F00A6AC 00000000 */ nop +) +#endif + + + + + +void update_menu00_legalscreen(void) +{ + is_first_time_on_legal_screen = FALSE; + set_obj_instance_scale_to_zero(something_legalscreen_constructor); +} + + + + + +#ifdef NONMATCHING +void interface_menu00_legalscreen(void) { + s32 temp; + setvideo_far(60.0f); + video_related_21(1.3333334f); + set_page_height(100.0f, 10000.0f); + set_video2_settings_offset_24(0); + temp = menu_timer + clock_timer; + menu_timer = temp; + if (temp >= 0xF1) { + if (get_attached_controller_count() > 0) { + while (is_first_time_on_legal_screen == 0) { + set_menu_to_mode(MENU_NINTENDO_LOGO,1); + return; + } + set_menu_to_mode(MENU_NO_CONTROLLERS,1); + return; + } + if (get_controller_buttons_pressed(0, 0xFFFF)) { + if ((is_first_time_on_legal_screen == 0) && (is_first_time_on_main_menu == 0)) { + set_menu_to_mode(MENU_FILE_SELECT,1); + return; + } + set_menu_to_mode(MENU_NINTENDO_LOGO,1); + } + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800519E4 +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_800519E8 +.word 0x461C4000 /* 10000.0;*/ +.text +glabel interface_menu00_legalscreen +/* 03F20C 7F00A6DC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03F210 7F00A6E0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 03F214 7F00A6E4 AFBF0014 */ sw $ra, 0x14($sp) +/* 03F218 7F00A6E8 44816000 */ mtc1 $at, $f12 +/* 03F21C 7F00A6EC 0C001151 */ jal setvideo_far +/* 03F220 7F00A6F0 00000000 */ nop +/* 03F224 7F00A6F4 3C018005 */ lui $at, %hi(D_800519E4) +/* 03F228 7F00A6F8 0C001164 */ jal video_related_21 +/* 03F22C 7F00A6FC C42C19E4 */ lwc1 $f12, %lo(D_800519E4)($at) +/* 03F230 7F00A700 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 03F234 7F00A704 44816000 */ mtc1 $at, $f12 +/* 03F238 7F00A708 3C018005 */ lui $at, %hi(D_800519E8) +/* 03F23C 7F00A70C 0C001194 */ jal set_page_height +/* 03F240 7F00A710 C42E19E8 */ lwc1 $f14, %lo(D_800519E8)($at) +/* 03F244 7F00A714 0C00114D */ jal set_video2_settings_offset_24 +/* 03F248 7F00A718 00002025 */ move $a0, $zero +/* 03F24C 7F00A71C 3C028003 */ lui $v0, %hi(menu_timer) +/* 03F250 7F00A720 2442A8CC */ addiu $v0, %lo(menu_timer) # addiu $v0, $v0, -0x5734 +/* 03F254 7F00A724 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 03F258 7F00A728 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 03F25C 7F00A72C 8C4E0000 */ lw $t6, ($v0) +/* 03F260 7F00A730 00002025 */ move $a0, $zero +/* 03F264 7F00A734 01CFC021 */ addu $t8, $t6, $t7 +/* 03F268 7F00A738 2B0100F1 */ slti $at, $t8, 0xf1 +/* 03F26C 7F00A73C 14200012 */ bnez $at, .L7F00A788 +/* 03F270 7F00A740 AC580000 */ sw $t8, ($v0) +/* 03F274 7F00A744 0C002E7E */ jal get_attached_controller_count +/* 03F278 7F00A748 00000000 */ nop +/* 03F27C 7F00A74C 1C400009 */ bgtz $v0, .L7F00A774 +/* 03F280 7F00A750 3C088003 */ lui $t0, %hi(is_first_time_on_legal_screen) +/* 03F284 7F00A754 8D08A92C */ lw $t0, %lo(is_first_time_on_legal_screen)($t0) +/* 03F288 7F00A758 24040016 */ li $a0, 22 +/* 03F28C 7F00A75C 51000006 */ beql $t0, $zero, .L7F00A778 +/* 03F290 7F00A760 24040001 */ li $a0, 1 +/* 03F294 7F00A764 0FC06975 */ jal set_menu_to_mode +/* 03F298 7F00A768 24050001 */ li $a1, 1 +/* 03F29C 7F00A76C 1000001A */ b .L7F00A7D8 +/* 03F2A0 7F00A770 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00A774: +/* 03F2A4 7F00A774 24040001 */ li $a0, 1 +.L7F00A778: +/* 03F2A8 7F00A778 0FC06975 */ jal set_menu_to_mode +/* 03F2AC 7F00A77C 24050001 */ li $a1, 1 +/* 03F2B0 7F00A780 10000015 */ b .L7F00A7D8 +/* 03F2B4 7F00A784 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00A788: +/* 03F2B8 7F00A788 0C0030EB */ jal get_controller_buttons_pressed +/* 03F2BC 7F00A78C 3405FFFF */ li $a1, 65535 +/* 03F2C0 7F00A790 10400010 */ beqz $v0, .L7F00A7D4 +/* 03F2C4 7F00A794 3C098003 */ lui $t1, %hi(is_first_time_on_legal_screen) +/* 03F2C8 7F00A798 8D29A92C */ lw $t1, %lo(is_first_time_on_legal_screen)($t1) +/* 03F2CC 7F00A79C 3C0A8003 */ lui $t2, %hi(is_first_time_on_main_menu) +/* 03F2D0 7F00A7A0 5520000D */ bnezl $t1, .L7F00A7D8 +/* 03F2D4 7F00A7A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 03F2D8 7F00A7A8 8D4AA930 */ lw $t2, %lo(is_first_time_on_main_menu)($t2) +/* 03F2DC 7F00A7AC 24050001 */ li $a1, 1 +/* 03F2E0 7F00A7B0 24040001 */ li $a0, 1 +/* 03F2E4 7F00A7B4 15400005 */ bnez $t2, .L7F00A7CC +/* 03F2E8 7F00A7B8 00000000 */ nop +/* 03F2EC 7F00A7BC 0FC06975 */ jal set_menu_to_mode +/* 03F2F0 7F00A7C0 24040005 */ li $a0, 5 +/* 03F2F4 7F00A7C4 10000004 */ b .L7F00A7D8 +/* 03F2F8 7F00A7C8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00A7CC: +/* 03F2FC 7F00A7CC 0FC06975 */ jal set_menu_to_mode +/* 03F300 7F00A7D0 24050001 */ li $a1, 1 +.L7F00A7D4: +/* 03F304 7F00A7D4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00A7D8: +/* 03F308 7F00A7D8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03F30C 7F00A7DC 03E00008 */ jr $ra +/* 03F310 7F00A7E0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void display_aligned_white_text_to_screen(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7) +{ + s32 sp4C; + s32 sp48; + s32 sp44; + s32 sp40; + s16 sp3C; + s32 temp_lo; + s32 temp_lo_2; + s32 phi_t0; + s32 phi_t6; + + sp48 = 0; + sp4C = 0; + sub_GAME_7F0AE98C(&sp4C, &sp48, arg5, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + temp_lo = arg3 * sp48; + phi_t0 = temp_lo >> 1; + if (temp_lo < 0) + { + phi_t0 = (s32) (temp_lo + 1) >> 1; + } + temp_lo_2 = arg4 * sp4C; + sp44 = (s32) (arg1 - phi_t0); + phi_t6 = temp_lo_2 >> 1; + if (temp_lo_2 < 0) + { + phi_t6 = (s32) (temp_lo_2 + 1) >> 1; + } + sp40 = (s32) (arg2 - phi_t6); + sp3C = get_video2_settings_txtClipW(); + en_text_write_stuff(arg0, &sp44, &sp40, arg5, arg6, arg7, -1, sp3C, get_video2_settings_txtClipH(), 0, 0); +} +#else +GLOBAL_ASM( +.text +glabel display_aligned_white_text_to_screen +/* 03F314 7F00A7E4 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 03F318 7F00A7E8 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 03F31C 7F00A7EC 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 03F320 7F00A7F0 AFA7005C */ sw $a3, 0x5c($sp) +/* 03F324 7F00A7F4 AFBF0034 */ sw $ra, 0x34($sp) +/* 03F328 7F00A7F8 AFA40050 */ sw $a0, 0x50($sp) +/* 03F32C 7F00A7FC AFA50054 */ sw $a1, 0x54($sp) +/* 03F330 7F00A800 AFA60058 */ sw $a2, 0x58($sp) +/* 03F334 7F00A804 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 03F338 7F00A808 AFA00048 */ sw $zero, 0x48($sp) +/* 03F33C 7F00A80C AFA0004C */ sw $zero, 0x4c($sp) +/* 03F340 7F00A810 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 03F344 7F00A814 8FA60064 */ lw $a2, 0x64($sp) +/* 03F348 7F00A818 27A50048 */ addiu $a1, $sp, 0x48 +/* 03F34C 7F00A81C 27A4004C */ addiu $a0, $sp, 0x4c +/* 03F350 7F00A820 AFA00014 */ sw $zero, 0x14($sp) +/* 03F354 7F00A824 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 03F358 7F00A828 AFAE0010 */ sw $t6, 0x10($sp) +/* 03F35C 7F00A82C 8FAF005C */ lw $t7, 0x5c($sp) +/* 03F360 7F00A830 8FB80048 */ lw $t8, 0x48($sp) +/* 03F364 7F00A834 8FAB0060 */ lw $t3, 0x60($sp) +/* 03F368 7F00A838 8FAC004C */ lw $t4, 0x4c($sp) +/* 03F36C 7F00A83C 01F80019 */ multu $t7, $t8 +/* 03F370 7F00A840 8FA90054 */ lw $t1, 0x54($sp) +/* 03F374 7F00A844 8FAF0058 */ lw $t7, 0x58($sp) +/* 03F378 7F00A848 0000C812 */ mflo $t9 +/* 03F37C 7F00A84C 07210003 */ bgez $t9, .L7F00A85C +/* 03F380 7F00A850 00194043 */ sra $t0, $t9, 1 +/* 03F384 7F00A854 27210001 */ addiu $at, $t9, 1 +/* 03F388 7F00A858 00014043 */ sra $t0, $at, 1 +.L7F00A85C: +/* 03F38C 7F00A85C 016C0019 */ multu $t3, $t4 +/* 03F390 7F00A860 01285023 */ subu $t2, $t1, $t0 +/* 03F394 7F00A864 AFAA0044 */ sw $t2, 0x44($sp) +/* 03F398 7F00A868 00006812 */ mflo $t5 +/* 03F39C 7F00A86C 05A10003 */ bgez $t5, .L7F00A87C +/* 03F3A0 7F00A870 000D7043 */ sra $t6, $t5, 1 +/* 03F3A4 7F00A874 25A10001 */ addiu $at, $t5, 1 +/* 03F3A8 7F00A878 00017043 */ sra $t6, $at, 1 +.L7F00A87C: +/* 03F3AC 7F00A87C 01EEC023 */ subu $t8, $t7, $t6 +/* 03F3B0 7F00A880 0C001107 */ jal get_video2_settings_txtClipW +/* 03F3B4 7F00A884 AFB80040 */ sw $t8, 0x40($sp) +/* 03F3B8 7F00A888 0C00110B */ jal get_video2_settings_txtClipH +/* 03F3BC 7F00A88C A7A2003C */ sh $v0, 0x3c($sp) +/* 03F3C0 7F00A890 8FB90068 */ lw $t9, 0x68($sp) +/* 03F3C4 7F00A894 8FA9006C */ lw $t1, 0x6c($sp) +/* 03F3C8 7F00A898 87AA003C */ lh $t2, 0x3c($sp) +/* 03F3CC 7F00A89C 2408FFFF */ li $t0, -1 +/* 03F3D0 7F00A8A0 AFA80018 */ sw $t0, 0x18($sp) +/* 03F3D4 7F00A8A4 8FA40050 */ lw $a0, 0x50($sp) +/* 03F3D8 7F00A8A8 27A50044 */ addiu $a1, $sp, 0x44 +/* 03F3DC 7F00A8AC 27A60040 */ addiu $a2, $sp, 0x40 +/* 03F3E0 7F00A8B0 8FA70064 */ lw $a3, 0x64($sp) +/* 03F3E4 7F00A8B4 AFA20020 */ sw $v0, 0x20($sp) +/* 03F3E8 7F00A8B8 AFA00024 */ sw $zero, 0x24($sp) +/* 03F3EC 7F00A8BC AFA00028 */ sw $zero, 0x28($sp) +/* 03F3F0 7F00A8C0 AFB90010 */ sw $t9, 0x10($sp) +/* 03F3F4 7F00A8C4 AFA90014 */ sw $t1, 0x14($sp) +/* 03F3F8 7F00A8C8 0FC2B6AF */ jal en_text_write_stuff +/* 03F3FC 7F00A8CC AFAA001C */ sw $t2, 0x1c($sp) +/* 03F400 7F00A8D0 8FBF0034 */ lw $ra, 0x34($sp) +/* 03F404 7F00A8D4 27BD0050 */ addiu $sp, $sp, 0x50 +/* 03F408 7F00A8D8 03E00008 */ jr $ra +/* 03F40C 7F00A8DC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void constructor_menu00_legalscreen(s32 arg0) +{ + s32 spF4; + s32 spEC; + s32 spE8; + s32 spE4; + s32 spA0; + s32 sp58; + s32 temp_ret; + s32 temp_s0; + u32 temp_s0_2; + void *temp_t0; + void *temp_t6; + void *phi_t6; + void *phi_t0; + s32 phi_s1; + s32 phi_s0; + void *phi_s0_2; + s32 phi_s4; + + phi_t6 = &D_8002AABC; + phi_t0 = &spE4; +loop_1: + temp_t6 = phi_t6 + 0xc; + temp_t0 = phi_t0 + 0xc; + temp_t0->unk-C = (s32) *phi_t6; + temp_t0->unk-8 = (s32) temp_t6->unk-8; + temp_t0->unk-4 = (s32) temp_t6->unk-4; + phi_t6 = temp_t6; + phi_t0 = temp_t0; + if (temp_t6 != (&D_8002AABC + 0x3c)) + { + goto loop_1; + } + temp_t0->unk0 = (s32) temp_t6->unk0; + insert_imageDL(arg0); + sub_GAME_7F059694(&spA0, 0.0f, 0.0f, 0x457a0000, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); + temp_ret = sub_GAME_7F0BD714(something_legalscreen_constructor->unk8->unkE << 6); + spF4 = temp_ret; + matrix_4x4_copy(&spA0, temp_ret); + something_legalscreen_constructor->unkC = spF4; + sub_GAME_7F06EFC4(something_legalscreen_constructor); + spEC = 3; + spE8 = 0; + subdraw(&spE4, something_legalscreen_constructor); + phi_s1 = 0; + phi_s0 = 0; + if (something_legalscreen_constructor->unk8->unkE > 0) + { +loop_3: + matrix_4x4_copy(something_legalscreen_constructor->unkC + phi_s1, &sp58); + sub_GAME_7F058C9C(&sp58, something_legalscreen_constructor->unkC + (phi_s0 << 6)); + temp_s0 = phi_s0 + 1; + phi_s1 = phi_s1 + 0x40; + phi_s0 = temp_s0; + if (temp_s0 < something_legalscreen_constructor->unk8->unkE) + { + goto loop_3; + } + } + phi_s0_2 = &D_8002A9CC; + phi_s4 = microcode_constructor(spF0); +loop_5: + temp_s0_2 = phi_s0_2 + 0x14; + phi_s0_2 = temp_s0_2; + phi_s4 = display_aligned_white_text_to_screen(phi_s4, phi_s0_2->unk0, phi_s0_2->unk4, phi_s0_2->unk8, (s32) phi_s0_2->unkC, get_textptr_for_textID(phi_s0_2->unk10), (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge); + if (temp_s0_2 < &D_8002AABC) + { + goto loop_5; + } +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu00_legalscreen +/* 03F410 7F00A8E0 27BDFED8 */ addiu $sp, $sp, -0x128 +/* 03F414 7F00A8E4 AFB10034 */ sw $s1, 0x34($sp) +/* 03F418 7F00A8E8 3C0E8003 */ lui $t6, %hi(D_8002AABC) +/* 03F41C 7F00A8EC 27B100E4 */ addiu $s1, $sp, 0xe4 +/* 03F420 7F00A8F0 AFB40040 */ sw $s4, 0x40($sp) +/* 03F424 7F00A8F4 25CEAABC */ addiu $t6, %lo(D_8002AABC) # addiu $t6, $t6, -0x5544 +/* 03F428 7F00A8F8 0080A025 */ move $s4, $a0 +/* 03F42C 7F00A8FC AFBF0044 */ sw $ra, 0x44($sp) +/* 03F430 7F00A900 AFB3003C */ sw $s3, 0x3c($sp) +/* 03F434 7F00A904 AFB20038 */ sw $s2, 0x38($sp) +/* 03F438 7F00A908 AFB00030 */ sw $s0, 0x30($sp) +/* 03F43C 7F00A90C 25D9003C */ addiu $t9, $t6, 0x3c +/* 03F440 7F00A910 02204025 */ move $t0, $s1 +.L7F00A914: +/* 03F444 7F00A914 8DC10000 */ lw $at, ($t6) +/* 03F448 7F00A918 25CE000C */ addiu $t6, $t6, 0xc +/* 03F44C 7F00A91C 2508000C */ addiu $t0, $t0, 0xc +/* 03F450 7F00A920 AD01FFF4 */ sw $at, -0xc($t0) +/* 03F454 7F00A924 8DC1FFF8 */ lw $at, -8($t6) +/* 03F458 7F00A928 AD01FFF8 */ sw $at, -8($t0) +/* 03F45C 7F00A92C 8DC1FFFC */ lw $at, -4($t6) +/* 03F460 7F00A930 15D9FFF8 */ bne $t6, $t9, .L7F00A914 +/* 03F464 7F00A934 AD01FFFC */ sw $at, -4($t0) +/* 03F468 7F00A938 8DC10000 */ lw $at, ($t6) +/* 03F46C 7F00A93C 02802025 */ move $a0, $s4 +/* 03F470 7F00A940 0FC07034 */ jal insert_imageDL +/* 03F474 7F00A944 AD010000 */ sw $at, ($t0) +/* 03F478 7F00A948 44800000 */ mtc1 $zero, $f0 +/* 03F47C 7F00A94C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03F480 7F00A950 44812000 */ mtc1 $at, $f4 +/* 03F484 7F00A954 27B000A0 */ addiu $s0, $sp, 0xa0 +/* 03F488 7F00A958 44050000 */ mfc1 $a1, $f0 +/* 03F48C 7F00A95C 44060000 */ mfc1 $a2, $f0 +/* 03F490 7F00A960 0040A025 */ move $s4, $v0 +/* 03F494 7F00A964 02002025 */ move $a0, $s0 +/* 03F498 7F00A968 3C07457A */ lui $a3, 0x457a +/* 03F49C 7F00A96C E7A00010 */ swc1 $f0, 0x10($sp) +/* 03F4A0 7F00A970 E7A00014 */ swc1 $f0, 0x14($sp) +/* 03F4A4 7F00A974 E7A00018 */ swc1 $f0, 0x18($sp) +/* 03F4A8 7F00A978 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 03F4AC 7F00A97C E7A00024 */ swc1 $f0, 0x24($sp) +/* 03F4B0 7F00A980 0FC165A5 */ jal sub_GAME_7F059694 +/* 03F4B4 7F00A984 E7A40020 */ swc1 $f4, 0x20($sp) +/* 03F4B8 7F00A988 3C138003 */ lui $s3, %hi(something_legalscreen_constructor) +/* 03F4BC 7F00A98C 2673A958 */ addiu $s3, %lo(something_legalscreen_constructor) # addiu $s3, $s3, -0x56a8 +/* 03F4C0 7F00A990 8E690000 */ lw $t1, ($s3) +/* 03F4C4 7F00A994 AFB000E4 */ sw $s0, 0xe4($sp) +/* 03F4C8 7F00A998 8D2A0008 */ lw $t2, 8($t1) +/* 03F4CC 7F00A99C 8544000E */ lh $a0, 0xe($t2) +/* 03F4D0 7F00A9A0 00045980 */ sll $t3, $a0, 6 +/* 03F4D4 7F00A9A4 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 03F4D8 7F00A9A8 01602025 */ move $a0, $t3 +/* 03F4DC 7F00A9AC AFA200F4 */ sw $v0, 0xf4($sp) +/* 03F4E0 7F00A9B0 02002025 */ move $a0, $s0 +/* 03F4E4 7F00A9B4 0FC16008 */ jal matrix_4x4_copy +/* 03F4E8 7F00A9B8 00402825 */ move $a1, $v0 +/* 03F4EC 7F00A9BC 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 03F4F0 7F00A9C0 8E6D0000 */ lw $t5, ($s3) +/* 03F4F4 7F00A9C4 ADAC000C */ sw $t4, 0xc($t5) +/* 03F4F8 7F00A9C8 0FC1BBF1 */ jal sub_GAME_7F06EFC4 +/* 03F4FC 7F00A9CC 8E640000 */ lw $a0, ($s3) +/* 03F500 7F00A9D0 24180003 */ li $t8, 3 +/* 03F504 7F00A9D4 AFB800EC */ sw $t8, 0xec($sp) +/* 03F508 7F00A9D8 AFA000E8 */ sw $zero, 0xe8($sp) +/* 03F50C 7F00A9DC AFB400F0 */ sw $s4, 0xf0($sp) +/* 03F510 7F00A9E0 02202025 */ move $a0, $s1 +/* 03F514 7F00A9E4 0FC1D1A1 */ jal subdraw +/* 03F518 7F00A9E8 8E650000 */ lw $a1, ($s3) +/* 03F51C 7F00A9EC 8E620000 */ lw $v0, ($s3) +/* 03F520 7F00A9F0 8FB400F0 */ lw $s4, 0xf0($sp) +/* 03F524 7F00A9F4 00008025 */ move $s0, $zero +/* 03F528 7F00A9F8 8C4F0008 */ lw $t7, 8($v0) +/* 03F52C 7F00A9FC 00008825 */ move $s1, $zero +/* 03F530 7F00AA00 27B20058 */ addiu $s2, $sp, 0x58 +/* 03F534 7F00AA04 85F9000E */ lh $t9, 0xe($t7) +/* 03F538 7F00AA08 1B200013 */ blez $t9, .L7F00AA58 +/* 03F53C 7F00AA0C 00000000 */ nop +/* 03F540 7F00AA10 8C4E000C */ lw $t6, 0xc($v0) +.L7F00AA14: +/* 03F544 7F00AA14 02402825 */ move $a1, $s2 +/* 03F548 7F00AA18 0FC16008 */ jal matrix_4x4_copy +/* 03F54C 7F00AA1C 01D12021 */ addu $a0, $t6, $s1 +/* 03F550 7F00AA20 8E680000 */ lw $t0, ($s3) +/* 03F554 7F00AA24 00105180 */ sll $t2, $s0, 6 +/* 03F558 7F00AA28 02402025 */ move $a0, $s2 +/* 03F55C 7F00AA2C 8D09000C */ lw $t1, 0xc($t0) +/* 03F560 7F00AA30 0FC16327 */ jal sub_GAME_7F058C9C +/* 03F564 7F00AA34 012A2821 */ addu $a1, $t1, $t2 +/* 03F568 7F00AA38 8E620000 */ lw $v0, ($s3) +/* 03F56C 7F00AA3C 26100001 */ addiu $s0, $s0, 1 +/* 03F570 7F00AA40 26310040 */ addiu $s1, $s1, 0x40 +/* 03F574 7F00AA44 8C4B0008 */ lw $t3, 8($v0) +/* 03F578 7F00AA48 856C000E */ lh $t4, 0xe($t3) +/* 03F57C 7F00AA4C 020C082A */ slt $at, $s0, $t4 +/* 03F580 7F00AA50 5420FFF0 */ bnezl $at, .L7F00AA14 +/* 03F584 7F00AA54 8C4E000C */ lw $t6, 0xc($v0) +.L7F00AA58: +/* 03F588 7F00AA58 0FC2B366 */ jal microcode_constructor +/* 03F58C 7F00AA5C 02802025 */ move $a0, $s4 +/* 03F590 7F00AA60 3C108003 */ lui $s0, %hi(D_8002A9CC) +/* 03F594 7F00AA64 3C118003 */ lui $s1, %hi(D_8002AABC) +/* 03F598 7F00AA68 3C138004 */ lui $s3, %hi(ptrFirstFontTableLarge) +/* 03F59C 7F00AA6C 3C128004 */ lui $s2, %hi(ptrSecondFontTableLarge) +/* 03F5A0 7F00AA70 0040A025 */ move $s4, $v0 +/* 03F5A4 7F00AA74 2610A9CC */ addiu $s0, %lo(D_8002A9CC) # addiu $s0, $s0, -0x5634 +/* 03F5A8 7F00AA78 2631AABC */ addiu $s1, %lo(D_8002AABC) # addiu $s1, $s1, -0x5544 +/* 03F5AC 7F00AA7C 26520EB8 */ addiu $s2, %lo(ptrSecondFontTableLarge) # addiu $s2, $s2, 0xeb8 +/* 03F5B0 7F00AA80 26730EB4 */ addiu $s3, %lo(ptrFirstFontTableLarge) # addiu $s3, $s3, 0xeb4 +.L7F00AA84: +/* 03F5B4 7F00AA84 0FC30776 */ jal get_textptr_for_textID +/* 03F5B8 7F00AA88 96040010 */ lhu $a0, 0x10($s0) +/* 03F5BC 7F00AA8C 8E0D000C */ lw $t5, 0xc($s0) +/* 03F5C0 7F00AA90 8E050000 */ lw $a1, ($s0) +/* 03F5C4 7F00AA94 8E060004 */ lw $a2, 4($s0) +/* 03F5C8 7F00AA98 8E070008 */ lw $a3, 8($s0) +/* 03F5CC 7F00AA9C 8E580000 */ lw $t8, ($s2) +/* 03F5D0 7F00AAA0 8E6F0000 */ lw $t7, ($s3) +/* 03F5D4 7F00AAA4 AFA20014 */ sw $v0, 0x14($sp) +/* 03F5D8 7F00AAA8 02802025 */ move $a0, $s4 +/* 03F5DC 7F00AAAC AFAD0010 */ sw $t5, 0x10($sp) +/* 03F5E0 7F00AAB0 AFB80018 */ sw $t8, 0x18($sp) +/* 03F5E4 7F00AAB4 0FC029F9 */ jal display_aligned_white_text_to_screen +/* 03F5E8 7F00AAB8 AFAF001C */ sw $t7, 0x1c($sp) +/* 03F5EC 7F00AABC 26100014 */ addiu $s0, $s0, 0x14 +/* 03F5F0 7F00AAC0 0211082B */ sltu $at, $s0, $s1 +/* 03F5F4 7F00AAC4 1420FFEF */ bnez $at, .L7F00AA84 +/* 03F5F8 7F00AAC8 0040A025 */ move $s4, $v0 +/* 03F5FC 7F00AACC 8FBF0044 */ lw $ra, 0x44($sp) +/* 03F600 7F00AAD0 8FB00030 */ lw $s0, 0x30($sp) +/* 03F604 7F00AAD4 8FB10034 */ lw $s1, 0x34($sp) +/* 03F608 7F00AAD8 8FB20038 */ lw $s2, 0x38($sp) +/* 03F60C 7F00AADC 8FB3003C */ lw $s3, 0x3c($sp) +/* 03F610 7F00AAE0 8FB40040 */ lw $s4, 0x40($sp) +/* 03F614 7F00AAE4 03E00008 */ jr $ra +/* 03F618 7F00AAE8 27BD0128 */ addiu $sp, $sp, 0x128 +) +#endif + + + +void reset_menutimer(void) { + menu_timer = 0; +} + +void dummy7F00AAF8(void) { + // (function likely stub) +} + + + + + +#ifdef NONMATCHING +void *interface_menu17_switchscreens(void) +{ + s32 temp_t7; + + setvideo_far(0x42700000); + video_related_21(D_800519EC); + set_page_height(0x42c80000, D_800519F0); + set_video2_settings_offset_24(0); + temp_t7 = menu_timer + 1; + menu_timer = temp_t7; + if (temp_t7 >= 4) + { + if (spectrum_related_flag == 0) + { + if (is_emulating_spectrum == 0) + { + maybe_prev_menu = (s32) menu_update; + menu_update = -1; + } + } + } + return &menu_timer; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800519EC +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_800519F0 +.word 0x461C4000 /* 10000.0;*/ +.text +glabel interface_menu17_switchscreens +/* 03F630 7F00AB00 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03F634 7F00AB04 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 03F638 7F00AB08 AFBF0014 */ sw $ra, 0x14($sp) +/* 03F63C 7F00AB0C 44816000 */ mtc1 $at, $f12 +/* 03F640 7F00AB10 0C001151 */ jal setvideo_far +/* 03F644 7F00AB14 00000000 */ nop +/* 03F648 7F00AB18 3C018005 */ lui $at, %hi(D_800519EC) +/* 03F64C 7F00AB1C 0C001164 */ jal video_related_21 +/* 03F650 7F00AB20 C42C19EC */ lwc1 $f12, %lo(D_800519EC)($at) +/* 03F654 7F00AB24 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 03F658 7F00AB28 44816000 */ mtc1 $at, $f12 +/* 03F65C 7F00AB2C 3C018005 */ lui $at, %hi(D_800519F0) +/* 03F660 7F00AB30 0C001194 */ jal set_page_height +/* 03F664 7F00AB34 C42E19F0 */ lwc1 $f14, %lo(D_800519F0)($at) +/* 03F668 7F00AB38 0C00114D */ jal set_video2_settings_offset_24 +/* 03F66C 7F00AB3C 00002025 */ move $a0, $zero +/* 03F670 7F00AB40 3C028003 */ lui $v0, %hi(menu_timer) +/* 03F674 7F00AB44 2442A8CC */ addiu $v0, %lo(menu_timer) # addiu $v0, $v0, -0x5734 +/* 03F678 7F00AB48 8C4E0000 */ lw $t6, ($v0) +/* 03F67C 7F00AB4C 3C198003 */ lui $t9, %hi(spectrum_related_flag) +/* 03F680 7F00AB50 25CF0001 */ addiu $t7, $t6, 1 +/* 03F684 7F00AB54 29E10004 */ slti $at, $t7, 4 +/* 03F688 7F00AB58 1420000F */ bnez $at, .L7F00AB98 +/* 03F68C 7F00AB5C AC4F0000 */ sw $t7, ($v0) +/* 03F690 7F00AB60 8F39A944 */ lw $t9, %lo(spectrum_related_flag)($t9) +/* 03F694 7F00AB64 3C088003 */ lui $t0, %hi(is_emulating_spectrum) +/* 03F698 7F00AB68 5720000C */ bnezl $t9, .L7F00AB9C +/* 03F69C 7F00AB6C 8FBF0014 */ lw $ra, 0x14($sp) +/* 03F6A0 7F00AB70 8D08A948 */ lw $t0, %lo(is_emulating_spectrum)($t0) +/* 03F6A4 7F00AB74 3C028003 */ lui $v0, %hi(menu_update) +/* 03F6A8 7F00AB78 2442A8C4 */ addiu $v0, %lo(menu_update) # addiu $v0, $v0, -0x573c +/* 03F6AC 7F00AB7C 55000007 */ bnezl $t0, .L7F00AB9C +/* 03F6B0 7F00AB80 8FBF0014 */ lw $ra, 0x14($sp) +/* 03F6B4 7F00AB84 8C490000 */ lw $t1, ($v0) +/* 03F6B8 7F00AB88 3C018003 */ lui $at, %hi(maybe_prev_menu) +/* 03F6BC 7F00AB8C 240AFFFF */ li $t2, -1 +/* 03F6C0 7F00AB90 AC29A8C8 */ sw $t1, %lo(maybe_prev_menu)($at) +/* 03F6C4 7F00AB94 AC4A0000 */ sw $t2, ($v0) +.L7F00AB98: +/* 03F6C8 7F00AB98 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00AB9C: +/* 03F6CC 7F00AB9C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03F6D0 7F00ABA0 03E00008 */ jr $ra +/* 03F6D4 7F00ABA4 00000000 */ nop +) +#endif + + + + +void constructor_menu17_switchscreens(Gfx * DL) +{ + insert_imageDL(DL); +} + + + + + + + +#ifdef NONMATCHING +void init_menu01_nintendo(void) +{ + struct xyzpoint local_c; + + menu_timer = 0; + local_c.x = xyzpoint_8002aafc.x; + local_c.y = xyzpoint_8002aafc.y; + local_c.z = xyzpoint_8002aafc.z; + load_object_fill_header(PitemZ_entries[276].header, PitemZ_entries[276].filename, ptr_logo_and_walletbond_DL,0x3c000,0); + set_objuse_flag_compute_grp_nums_set_obj_loaded(PitemZ_entries[276].header); + something_screen_constructor = get_obj_instance_controller_for_header(PitemZ_entries[276].header); + set_obj_instance_controller_scale(something_screen_constructor, 1.0f); + setsuboffset(something_screen_constructor, &local_c); + musicTrack1Play(M_INTROSWOOSH); + maybe_is_in_menu = TRUE; + flt_CODE_bss_80069614 = D_800519F4; + flt_CODE_bss_80069618 = D_800519F8; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800519F4 +.word 0xBFB2B8C3 /* -1.3962635;*/ +glabel D_800519F8 +.word 0x3C962FC9 /* 0.018333333;*/ +.text +glabel init_menu01_nintendo +/* 03F6F8 7F00ABC8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 03F6FC 7F00ABCC 3C018003 */ lui $at, %hi(menu_timer) +/* 03F700 7F00ABD0 3C0F8003 */ lui $t7, %hi(D_8002AAFC) +/* 03F704 7F00ABD4 AFBF001C */ sw $ra, 0x1c($sp) +/* 03F708 7F00ABD8 AC20A8CC */ sw $zero, %lo(menu_timer)($at) +/* 03F70C 7F00ABDC 25EFAAFC */ addiu $t7, %lo(D_8002AAFC) # addiu $t7, $t7, -0x5504 +/* 03F710 7F00ABE0 8DE10000 */ lw $at, ($t7) +/* 03F714 7F00ABE4 27AE0024 */ addiu $t6, $sp, 0x24 +/* 03F718 7F00ABE8 8DE80004 */ lw $t0, 4($t7) +/* 03F71C 7F00ABEC ADC10000 */ sw $at, ($t6) +/* 03F720 7F00ABF0 8DE10008 */ lw $at, 8($t7) +/* 03F724 7F00ABF4 ADC80004 */ sw $t0, 4($t6) +/* 03F728 7F00ABF8 3C028004 */ lui $v0, %hi(PitemZ_entries) +/* 03F72C 7F00ABFC ADC10008 */ sw $at, 8($t6) +/* 03F730 7F00AC00 2442A228 */ addiu $v0, %lo(PitemZ_entries) # addiu $v0, $v0, -0x5dd8 +/* 03F734 7F00AC04 3C068003 */ lui $a2, %hi(ptr_logo_and_walletbond_DL) +/* 03F738 7F00AC08 3C070003 */ lui $a3, (0x0003C000 >> 16) # lui $a3, 3 +/* 03F73C 7F00AC0C 34E7C000 */ ori $a3, (0x0003C000 & 0xFFFF) # ori $a3, $a3, 0xc000 +/* 03F740 7F00AC10 8CC6A950 */ lw $a2, %lo(ptr_logo_and_walletbond_DL)($a2) +/* 03F744 7F00AC14 8C440CF0 */ lw $a0, 0xcf0($v0) +/* 03F748 7F00AC18 8C450CF4 */ lw $a1, 0xcf4($v0) +/* 03F74C 7F00AC1C 0FC1D929 */ jal load_object_fill_header +/* 03F750 7F00AC20 AFA00010 */ sw $zero, 0x10($sp) +/* 03F754 7F00AC24 3C048004 */ lui $a0, %hi(PitemZ_entries+0xCF0) +/* 03F758 7F00AC28 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 03F75C 7F00AC2C 8C84AF18 */ lw $a0, %lo(PitemZ_entries+0xCF0)($a0) +/* 03F760 7F00AC30 3C048004 */ lui $a0, %hi(PitemZ_entries+0xCF0) +/* 03F764 7F00AC34 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 03F768 7F00AC38 8C84AF18 */ lw $a0, %lo(PitemZ_entries+0xCF0)($a0) +/* 03F76C 7F00AC3C 3C038003 */ lui $v1, %hi(something_legalscreen_constructor) +/* 03F770 7F00AC40 2463A958 */ addiu $v1, %lo(something_legalscreen_constructor) # addiu $v1, $v1, -0x56a8 +/* 03F774 7F00AC44 AC620000 */ sw $v0, ($v1) +/* 03F778 7F00AC48 00402025 */ move $a0, $v0 +/* 03F77C 7F00AC4C 0FC1B39E */ jal set_obj_instance_controller_scale +/* 03F780 7F00AC50 3C053F80 */ lui $a1, 0x3f80 +/* 03F784 7F00AC54 3C048003 */ lui $a0, %hi(something_legalscreen_constructor) +/* 03F788 7F00AC58 8C84A958 */ lw $a0, %lo(something_legalscreen_constructor)($a0) +/* 03F78C 7F00AC5C 0FC1B303 */ jal setsuboffset +/* 03F790 7F00AC60 27A50024 */ addiu $a1, $sp, 0x24 +/* 03F794 7F00AC64 0C001B9F */ jal musicTrack1Play +/* 03F798 7F00AC68 2404002C */ li $a0, 44 +/* 03F79C 7F00AC6C 24090001 */ li $t1, 1 +/* 03F7A0 7F00AC70 3C018003 */ lui $at, %hi(maybe_is_in_menu) +/* 03F7A4 7F00AC74 AC29A93C */ sw $t1, %lo(maybe_is_in_menu)($at) +/* 03F7A8 7F00AC78 3C018005 */ lui $at, %hi(D_800519F4) +/* 03F7AC 7F00AC7C C42419F4 */ lwc1 $f4, %lo(D_800519F4)($at) +/* 03F7B0 7F00AC80 3C018007 */ lui $at, %hi(flt_CODE_bss_80069614) +/* 03F7B4 7F00AC84 8FBF001C */ lw $ra, 0x1c($sp) +/* 03F7B8 7F00AC88 E4249614 */ swc1 $f4, %lo(flt_CODE_bss_80069614)($at) +/* 03F7BC 7F00AC8C 3C018005 */ lui $at, %hi(D_800519F8) +/* 03F7C0 7F00AC90 C42619F8 */ lwc1 $f6, %lo(D_800519F8)($at) +/* 03F7C4 7F00AC94 3C018007 */ lui $at, %hi(flt_CODE_bss_80069618) +/* 03F7C8 7F00AC98 27BD0030 */ addiu $sp, $sp, 0x30 +/* 03F7CC 7F00AC9C 03E00008 */ jr $ra +/* 03F7D0 7F00ACA0 E4269618 */ swc1 $f6, %lo(flt_CODE_bss_80069618)($at) +) +#endif + + + + + +void update_menu01_nintendo(void) +{ + set_obj_instance_scale_to_zero(something_legalscreen_constructor); +} + + + + +#ifdef NONMATCHING +extern f32 menu01_aspect; +extern f32 menu01_pageheight; + +void interface_menu01_nintendo(void) +{ + setvideo_far(60.0f); + video_related_21(menu01_aspect); + set_page_height(100.0f, menu01_pageheight); + set_video2_settings_offset_24(0.0f); + + menu_timer = menu_timer + clock_timer; + if (menu_timer < 501) + { + if (get_controller_buttons_pressed(0, 0xffff) != 0) + { + if (is_first_time_on_main_menu == 0) + { + set_menu_to_mode(MENU_FILE_SELECT, 1); + } + else + { + prev_keypresses = 1; + set_menu_to_mode(MENU_RAREWARE_LOGO, 1); + } + } + } + else + { + set_menu_to_mode(MENU_RAREWARE_LOGO, 1); + return; + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel menu01_aspect +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel menu01_pageheight +.word 0x461C4000 /* 10000.0;*/ +.text +glabel interface_menu01_nintendo +/* 03F7F8 7F00ACC8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03F7FC 7F00ACCC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 03F800 7F00ACD0 AFBF0014 */ sw $ra, 0x14($sp) +/* 03F804 7F00ACD4 44816000 */ mtc1 $at, $f12 +/* 03F808 7F00ACD8 0C001151 */ jal setvideo_far +/* 03F80C 7F00ACDC 00000000 */ nop +/* 03F810 7F00ACE0 3C018005 */ lui $at, %hi(menu01_aspect) +/* 03F814 7F00ACE4 0C001164 */ jal video_related_21 +/* 03F818 7F00ACE8 C42C19FC */ lwc1 $f12, %lo(menu01_aspect)($at) +/* 03F81C 7F00ACEC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 03F820 7F00ACF0 44816000 */ mtc1 $at, $f12 +/* 03F824 7F00ACF4 3C018005 */ lui $at, %hi(menu01_pageheight) +/* 03F828 7F00ACF8 0C001194 */ jal set_page_height +/* 03F82C 7F00ACFC C42E1A00 */ lwc1 $f14, %lo(menu01_pageheight)($at) +/* 03F830 7F00AD00 0C00114D */ jal set_video2_settings_offset_24 +/* 03F834 7F00AD04 00002025 */ move $a0, $zero +/* 03F838 7F00AD08 3C028003 */ lui $v0, %hi(menu_timer) +/* 03F83C 7F00AD0C 2442A8CC */ addiu $v0, %lo(menu_timer) # addiu $v0, $v0, -0x5734 +/* 03F840 7F00AD10 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 03F844 7F00AD14 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 03F848 7F00AD18 8C4E0000 */ lw $t6, ($v0) +/* 03F84C 7F00AD1C 24050001 */ li $a1, 1 +/* 03F850 7F00AD20 00002025 */ move $a0, $zero +/* 03F854 7F00AD24 01CFC021 */ addu $t8, $t6, $t7 +/* 03F858 7F00AD28 2B0101F5 */ slti $at, $t8, 0x1f5 +/* 03F85C 7F00AD2C 14200005 */ bnez $at, .L7F00AD44 +/* 03F860 7F00AD30 AC580000 */ sw $t8, ($v0) +/* 03F864 7F00AD34 0FC06975 */ jal set_menu_to_mode +/* 03F868 7F00AD38 24040002 */ li $a0, 2 +/* 03F86C 7F00AD3C 10000013 */ b .L7F00AD8C +/* 03F870 7F00AD40 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00AD44: +/* 03F874 7F00AD44 0C0030EB */ jal get_controller_buttons_pressed +/* 03F878 7F00AD48 3405FFFF */ li $a1, 65535 +/* 03F87C 7F00AD4C 1040000E */ beqz $v0, .L7F00AD88 +/* 03F880 7F00AD50 3C088003 */ lui $t0, %hi(is_first_time_on_main_menu) +/* 03F884 7F00AD54 8D08A930 */ lw $t0, %lo(is_first_time_on_main_menu)($t0) +/* 03F888 7F00AD58 24090001 */ li $t1, 1 +/* 03F88C 7F00AD5C 3C018003 */ lui $at, %hi(prev_keypresses) +/* 03F890 7F00AD60 15000006 */ bnez $t0, .L7F00AD7C +/* 03F894 7F00AD64 24040002 */ li $a0, 2 +/* 03F898 7F00AD68 24040005 */ li $a0, 5 +/* 03F89C 7F00AD6C 0FC06975 */ jal set_menu_to_mode +/* 03F8A0 7F00AD70 24050001 */ li $a1, 1 +/* 03F8A4 7F00AD74 10000005 */ b .L7F00AD8C +/* 03F8A8 7F00AD78 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00AD7C: +/* 03F8AC 7F00AD7C AC29A934 */ sw $t1, %lo(prev_keypresses)($at) +/* 03F8B0 7F00AD80 0FC06975 */ jal set_menu_to_mode +/* 03F8B4 7F00AD84 24050001 */ li $a1, 1 +.L7F00AD88: +/* 03F8B8 7F00AD88 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00AD8C: +/* 03F8BC 7F00AD8C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03F8C0 7F00AD90 03E00008 */ jr $ra +/* 03F8C4 7F00AD94 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 constructor_menu01_nintendo(s32 arg0) +{ + s32 sp138; + s32 sp134; + s32 sp130; + s32 sp12C; + s32 sp128; + s32 spE0; + s32 sp90; + s32 sp50; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_s0; + s8 temp_v1; + void *temp_t0; + void *temp_t6; + void *phi_t6; + void *phi_t0; + s8 phi_v1; + s8 phi_v1_2; + s32 phi_s1; + s32 phi_s0; + + phi_t6 = &D_8002AB08; + phi_t0 = &sp128; +loop_1: + temp_t6 = phi_t6 + 0xc; + temp_t0 = phi_t0 + 0xc; + temp_t0->unk-C = (s32) *phi_t6; + temp_t0->unk-8 = (s32) temp_t6->unk-8; + temp_t0->unk-4 = (s32) temp_t6->unk-4; + phi_t6 = temp_t6; + phi_t0 = temp_t0; + if (temp_t6 != (&D_8002AB08 + 0x3c)) + { + goto loop_1; + } + temp_t0->unk0 = (s32) temp_t6->unk0; + temp_ret = insert_imageDL(); + temp_ret->unk0 = 0xbc000002; + temp_ret->unk4 = 0x80000040; + temp_ret->unk8 = 0x3860010; + temp_ret->unkC = &D_8002A990; + arg0 = (s32) (temp_ret + 0x18); + temp_ret->unk10 = 0x3880010; + temp_ret->unk14 = &D_8002A988; + temp_v1 = 0xff - ((s32) ((menu_timer * 0xff) + 0xfffe8f72) / 0x64); + phi_v1 = temp_v1; + if (temp_v1 >= 0x100) + { + phi_v1 = (u8)0xff; + } + phi_v1_2 = phi_v1; + if (phi_v1 < 0) + { + phi_v1_2 = (u8)0; + } + D_8002A988.unk6 = (s8) phi_v1_2; + D_8002A988.unk5 = (s8) phi_v1_2; + D_8002A988.unk4 = (s8) phi_v1_2; + D_8002A988.unk2 = (s8) phi_v1_2; + D_8002A988.unk1 = (s8) phi_v1_2; + D_8002A988.unk0 = (s8) phi_v1_2; + flt_CODE_bss_80069614 = (f32) (flt_CODE_bss_80069614 + D_80051A04); + matrix_4x4_set_rotation_around_y(flt_CODE_bss_80069614, &D_8002A988, &sp90); + matrix_scalar_multiply_3(flt_CODE_bss_80069618, &sp90); + flt_CODE_bss_80069618 = (f32) (flt_CODE_bss_80069618 * D_80051A0C); + if (D_80051A08 < flt_CODE_bss_80069618) + { + flt_CODE_bss_80069618 = (f32) D_80051A08; + } + sub_GAME_7F059694(&spE0, 0.0f, 0.0f, 0x457a0000, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); + matrix_4x4_multiply_in_place(&spE0, &sp90); + matrix_4x4_copy(&sp90, &spE0); + temp_ret_2 = sub_GAME_7F0BD714(something_legalscreen_constructor->unk8->unkE << 6); + sp138 = temp_ret_2; + matrix_4x4_copy(&spE0, temp_ret_2); + something_legalscreen_constructor->unkC = sp138; + sub_GAME_7F06EFC4(something_legalscreen_constructor); + sp130 = 3; + sp12C = 0; + sp134 = arg0; + subdraw(&sp128, something_legalscreen_constructor); + arg0 = sp134; + phi_s1 = 0; + phi_s0 = 0; + if (something_legalscreen_constructor->unk8->unkE > 0) + { +loop_9: + matrix_4x4_copy(something_legalscreen_constructor->unkC + phi_s1, &sp50); + sub_GAME_7F058C9C(&sp50, something_legalscreen_constructor->unkC + (phi_s0 << 6)); + temp_s0 = phi_s0 + 1; + phi_s1 = phi_s1 + 0x40; + phi_s0 = temp_s0; + if (temp_s0 < something_legalscreen_constructor->unk8->unkE) + { + goto loop_9; + } + } + return arg0; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051A04 +.word 0x3C8EFA35 /* 0.017453292;*/ +glabel D_80051A08 +.word 0x3F8CCCCD /* 1.1;*/ +glabel D_80051A0C +.word 0x3F8A35E7 /* 1.07977;*/ +.text +glabel constructor_menu01_nintendo +/* 03F8C8 7F00AD98 27BDFE98 */ addiu $sp, $sp, -0x168 +/* 03F8CC 7F00AD9C AFB20034 */ sw $s2, 0x34($sp) +/* 03F8D0 7F00ADA0 3C0E8003 */ lui $t6, %hi(D_8002AB08) +/* 03F8D4 7F00ADA4 27B20128 */ addiu $s2, $sp, 0x128 +/* 03F8D8 7F00ADA8 25CEAB08 */ addiu $t6, %lo(D_8002AB08) # addiu $t6, $t6, -0x54f8 +/* 03F8DC 7F00ADAC AFBF003C */ sw $ra, 0x3c($sp) +/* 03F8E0 7F00ADB0 AFB30038 */ sw $s3, 0x38($sp) +/* 03F8E4 7F00ADB4 AFB10030 */ sw $s1, 0x30($sp) +/* 03F8E8 7F00ADB8 AFB0002C */ sw $s0, 0x2c($sp) +/* 03F8EC 7F00ADBC 25D9003C */ addiu $t9, $t6, 0x3c +/* 03F8F0 7F00ADC0 02404025 */ move $t0, $s2 +.L7F00ADC4: +/* 03F8F4 7F00ADC4 8DC10000 */ lw $at, ($t6) +/* 03F8F8 7F00ADC8 25CE000C */ addiu $t6, $t6, 0xc +/* 03F8FC 7F00ADCC 2508000C */ addiu $t0, $t0, 0xc +/* 03F900 7F00ADD0 AD01FFF4 */ sw $at, -0xc($t0) +/* 03F904 7F00ADD4 8DC1FFF8 */ lw $at, -8($t6) +/* 03F908 7F00ADD8 AD01FFF8 */ sw $at, -8($t0) +/* 03F90C 7F00ADDC 8DC1FFFC */ lw $at, -4($t6) +/* 03F910 7F00ADE0 15D9FFF8 */ bne $t6, $t9, .L7F00ADC4 +/* 03F914 7F00ADE4 AD01FFFC */ sw $at, -4($t0) +/* 03F918 7F00ADE8 8DC10000 */ lw $at, ($t6) +/* 03F91C 7F00ADEC 0FC07034 */ jal insert_imageDL +/* 03F920 7F00ADF0 AD010000 */ sw $at, ($t0) +/* 03F924 7F00ADF4 3C09BC00 */ lui $t1, (0xBC000002 >> 16) # lui $t1, 0xbc00 +/* 03F928 7F00ADF8 3C0A8000 */ lui $t2, (0x80000040 >> 16) # lui $t2, 0x8000 +/* 03F92C 7F00ADFC 3C0B0386 */ lui $t3, (0x03860010 >> 16) # lui $t3, 0x386 +/* 03F930 7F00AE00 3C0C8003 */ lui $t4, %hi(D_8002A990) +/* 03F934 7F00AE04 258CA990 */ addiu $t4, %lo(D_8002A990) # addiu $t4, $t4, -0x5670 +/* 03F938 7F00AE08 356B0010 */ ori $t3, (0x03860010 & 0xFFFF) # ori $t3, $t3, 0x10 +/* 03F93C 7F00AE0C 354A0040 */ ori $t2, (0x80000040 & 0xFFFF) # ori $t2, $t2, 0x40 +/* 03F940 7F00AE10 35290002 */ ori $t1, (0xBC000002 & 0xFFFF) # ori $t1, $t1, 2 +/* 03F944 7F00AE14 AC490000 */ sw $t1, ($v0) +/* 03F948 7F00AE18 AC4A0004 */ sw $t2, 4($v0) +/* 03F94C 7F00AE1C AC4B0008 */ sw $t3, 8($v0) +/* 03F950 7F00AE20 AC4C000C */ sw $t4, 0xc($v0) +/* 03F954 7F00AE24 244D0018 */ addiu $t5, $v0, 0x18 +/* 03F958 7F00AE28 3C048003 */ lui $a0, %hi(D_8002A988) +/* 03F95C 7F00AE2C AFAD0168 */ sw $t5, 0x168($sp) +/* 03F960 7F00AE30 3C180388 */ lui $t8, (0x03880010 >> 16) # lui $t8, 0x388 +/* 03F964 7F00AE34 2484A988 */ addiu $a0, %lo(D_8002A988) # addiu $a0, $a0, -0x5678 +/* 03F968 7F00AE38 37180010 */ ori $t8, (0x03880010 & 0xFFFF) # ori $t8, $t8, 0x10 +/* 03F96C 7F00AE3C AC580010 */ sw $t8, 0x10($v0) +/* 03F970 7F00AE40 AC440014 */ sw $a0, 0x14($v0) +/* 03F974 7F00AE44 3C0F8003 */ lui $t7, %hi(menu_timer) +/* 03F978 7F00AE48 8DEFA8CC */ lw $t7, %lo(menu_timer)($t7) +/* 03F97C 7F00AE4C 240500FF */ li $a1, 255 +/* 03F980 7F00AE50 3C01FFFE */ lui $at, (0xFFFE8F72 >> 16) # lui $at, 0xfffe +/* 03F984 7F00AE54 01E50019 */ multu $t7, $a1 +/* 03F988 7F00AE58 34218F72 */ ori $at, (0xFFFE8F72 & 0xFFFF) # ori $at, $at, 0x8f72 +/* 03F98C 7F00AE5C 3C028007 */ lui $v0, %hi(flt_CODE_bss_80069614) +/* 03F990 7F00AE60 24429614 */ addiu $v0, %lo(flt_CODE_bss_80069614) # addiu $v0, $v0, -0x69ec +/* 03F994 7F00AE64 0000C812 */ mflo $t9 +/* 03F998 7F00AE68 03217021 */ addu $t6, $t9, $at +/* 03F99C 7F00AE6C 24010064 */ li $at, 100 +/* 03F9A0 7F00AE70 01C1001A */ div $zero, $t6, $at +/* 03F9A4 7F00AE74 00004012 */ mflo $t0 +/* 03F9A8 7F00AE78 00A81823 */ subu $v1, $a1, $t0 +/* 03F9AC 7F00AE7C 28610100 */ slti $at, $v1, 0x100 +/* 03F9B0 7F00AE80 14200002 */ bnez $at, .L7F00AE8C +/* 03F9B4 7F00AE84 00000000 */ nop +/* 03F9B8 7F00AE88 240300FF */ li $v1, 255 +.L7F00AE8C: +/* 03F9BC 7F00AE8C 04610002 */ bgez $v1, .L7F00AE98 +/* 03F9C0 7F00AE90 3C018005 */ lui $at, %hi(D_80051A04) +/* 03F9C4 7F00AE94 00001825 */ move $v1, $zero +.L7F00AE98: +/* 03F9C8 7F00AE98 A0830006 */ sb $v1, 6($a0) +/* 03F9CC 7F00AE9C A0830005 */ sb $v1, 5($a0) +/* 03F9D0 7F00AEA0 A0830004 */ sb $v1, 4($a0) +/* 03F9D4 7F00AEA4 A0830002 */ sb $v1, 2($a0) +/* 03F9D8 7F00AEA8 A0830001 */ sb $v1, 1($a0) +/* 03F9DC 7F00AEAC A0830000 */ sb $v1, ($a0) +/* 03F9E0 7F00AEB0 C4261A04 */ lwc1 $f6, %lo(D_80051A04)($at) +/* 03F9E4 7F00AEB4 C4440000 */ lwc1 $f4, ($v0) +/* 03F9E8 7F00AEB8 27B10090 */ addiu $s1, $sp, 0x90 +/* 03F9EC 7F00AEBC 02202825 */ move $a1, $s1 +/* 03F9F0 7F00AEC0 46062200 */ add.s $f8, $f4, $f6 +/* 03F9F4 7F00AEC4 E4480000 */ swc1 $f8, ($v0) +/* 03F9F8 7F00AEC8 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 03F9FC 7F00AECC C44C0000 */ lwc1 $f12, ($v0) +/* 03FA00 7F00AED0 3C108007 */ lui $s0, %hi(flt_CODE_bss_80069618) +/* 03FA04 7F00AED4 26109618 */ addiu $s0, %lo(flt_CODE_bss_80069618) # addiu $s0, $s0, -0x69e8 +/* 03FA08 7F00AED8 C60C0000 */ lwc1 $f12, ($s0) +/* 03FA0C 7F00AEDC 0FC162EE */ jal matrix_scalar_multiply_3 +/* 03FA10 7F00AEE0 02202825 */ move $a1, $s1 +/* 03FA14 7F00AEE4 3C018005 */ lui $at, %hi(D_80051A08) +/* 03FA18 7F00AEE8 C4201A08 */ lwc1 $f0, %lo(D_80051A08)($at) +/* 03FA1C 7F00AEEC 3C018005 */ lui $at, %hi(D_80051A0C) +/* 03FA20 7F00AEF0 C4301A0C */ lwc1 $f16, %lo(D_80051A0C)($at) +/* 03FA24 7F00AEF4 C60A0000 */ lwc1 $f10, ($s0) +/* 03FA28 7F00AEF8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03FA2C 7F00AEFC 44813000 */ mtc1 $at, $f6 +/* 03FA30 7F00AF00 46105482 */ mul.s $f18, $f10, $f16 +/* 03FA34 7F00AF04 3C07457A */ lui $a3, 0x457a +/* 03FA38 7F00AF08 E6120000 */ swc1 $f18, ($s0) +/* 03FA3C 7F00AF0C C6040000 */ lwc1 $f4, ($s0) +/* 03FA40 7F00AF10 4604003C */ c.lt.s $f0, $f4 +/* 03FA44 7F00AF14 00000000 */ nop +/* 03FA48 7F00AF18 45020003 */ bc1fl .L7F00AF28 +/* 03FA4C 7F00AF1C 44800000 */ mtc1 $zero, $f0 +/* 03FA50 7F00AF20 E6000000 */ swc1 $f0, ($s0) +/* 03FA54 7F00AF24 44800000 */ mtc1 $zero, $f0 +.L7F00AF28: +/* 03FA58 7F00AF28 27B000E0 */ addiu $s0, $sp, 0xe0 +/* 03FA5C 7F00AF2C 02002025 */ move $a0, $s0 +/* 03FA60 7F00AF30 44050000 */ mfc1 $a1, $f0 +/* 03FA64 7F00AF34 44060000 */ mfc1 $a2, $f0 +/* 03FA68 7F00AF38 E7A60020 */ swc1 $f6, 0x20($sp) +/* 03FA6C 7F00AF3C E7A00010 */ swc1 $f0, 0x10($sp) +/* 03FA70 7F00AF40 E7A00014 */ swc1 $f0, 0x14($sp) +/* 03FA74 7F00AF44 E7A00018 */ swc1 $f0, 0x18($sp) +/* 03FA78 7F00AF48 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 03FA7C 7F00AF4C 0FC165A5 */ jal sub_GAME_7F059694 +/* 03FA80 7F00AF50 E7A00024 */ swc1 $f0, 0x24($sp) +/* 03FA84 7F00AF54 02002025 */ move $a0, $s0 +/* 03FA88 7F00AF58 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 03FA8C 7F00AF5C 02202825 */ move $a1, $s1 +/* 03FA90 7F00AF60 02202025 */ move $a0, $s1 +/* 03FA94 7F00AF64 0FC16008 */ jal matrix_4x4_copy +/* 03FA98 7F00AF68 02002825 */ move $a1, $s0 +/* 03FA9C 7F00AF6C 3C138003 */ lui $s3, %hi(something_legalscreen_constructor) +/* 03FAA0 7F00AF70 2673A958 */ addiu $s3, %lo(something_legalscreen_constructor) # addiu $s3, $s3, -0x56a8 +/* 03FAA4 7F00AF74 8E690000 */ lw $t1, ($s3) +/* 03FAA8 7F00AF78 AFB00128 */ sw $s0, 0x128($sp) +/* 03FAAC 7F00AF7C 8D2A0008 */ lw $t2, 8($t1) +/* 03FAB0 7F00AF80 8544000E */ lh $a0, 0xe($t2) +/* 03FAB4 7F00AF84 00045980 */ sll $t3, $a0, 6 +/* 03FAB8 7F00AF88 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 03FABC 7F00AF8C 01602025 */ move $a0, $t3 +/* 03FAC0 7F00AF90 AFA20138 */ sw $v0, 0x138($sp) +/* 03FAC4 7F00AF94 02002025 */ move $a0, $s0 +/* 03FAC8 7F00AF98 0FC16008 */ jal matrix_4x4_copy +/* 03FACC 7F00AF9C 00402825 */ move $a1, $v0 +/* 03FAD0 7F00AFA0 8FAC0138 */ lw $t4, 0x138($sp) +/* 03FAD4 7F00AFA4 8E6D0000 */ lw $t5, ($s3) +/* 03FAD8 7F00AFA8 ADAC000C */ sw $t4, 0xc($t5) +/* 03FADC 7F00AFAC 0FC1BBF1 */ jal sub_GAME_7F06EFC4 +/* 03FAE0 7F00AFB0 8E640000 */ lw $a0, ($s3) +/* 03FAE4 7F00AFB4 8FAF0168 */ lw $t7, 0x168($sp) +/* 03FAE8 7F00AFB8 24180003 */ li $t8, 3 +/* 03FAEC 7F00AFBC AFB80130 */ sw $t8, 0x130($sp) +/* 03FAF0 7F00AFC0 AFA0012C */ sw $zero, 0x12c($sp) +/* 03FAF4 7F00AFC4 02402025 */ move $a0, $s2 +/* 03FAF8 7F00AFC8 8E650000 */ lw $a1, ($s3) +/* 03FAFC 7F00AFCC 0FC1D1A1 */ jal subdraw +/* 03FB00 7F00AFD0 AFAF0134 */ sw $t7, 0x134($sp) +/* 03FB04 7F00AFD4 8FB90134 */ lw $t9, 0x134($sp) +/* 03FB08 7F00AFD8 8E620000 */ lw $v0, ($s3) +/* 03FB0C 7F00AFDC 00008025 */ move $s0, $zero +/* 03FB10 7F00AFE0 AFB90168 */ sw $t9, 0x168($sp) +/* 03FB14 7F00AFE4 8C4E0008 */ lw $t6, 8($v0) +/* 03FB18 7F00AFE8 00008825 */ move $s1, $zero +/* 03FB1C 7F00AFEC 27B20050 */ addiu $s2, $sp, 0x50 +/* 03FB20 7F00AFF0 85C8000E */ lh $t0, 0xe($t6) +/* 03FB24 7F00AFF4 59000014 */ blezl $t0, .L7F00B048 +/* 03FB28 7F00AFF8 8FBF003C */ lw $ra, 0x3c($sp) +/* 03FB2C 7F00AFFC 8C49000C */ lw $t1, 0xc($v0) +.L7F00B000: +/* 03FB30 7F00B000 02402825 */ move $a1, $s2 +/* 03FB34 7F00B004 0FC16008 */ jal matrix_4x4_copy +/* 03FB38 7F00B008 01312021 */ addu $a0, $t1, $s1 +/* 03FB3C 7F00B00C 8E6A0000 */ lw $t2, ($s3) +/* 03FB40 7F00B010 00106180 */ sll $t4, $s0, 6 +/* 03FB44 7F00B014 02402025 */ move $a0, $s2 +/* 03FB48 7F00B018 8D4B000C */ lw $t3, 0xc($t2) +/* 03FB4C 7F00B01C 0FC16327 */ jal sub_GAME_7F058C9C +/* 03FB50 7F00B020 016C2821 */ addu $a1, $t3, $t4 +/* 03FB54 7F00B024 8E620000 */ lw $v0, ($s3) +/* 03FB58 7F00B028 26100001 */ addiu $s0, $s0, 1 +/* 03FB5C 7F00B02C 26310040 */ addiu $s1, $s1, 0x40 +/* 03FB60 7F00B030 8C4D0008 */ lw $t5, 8($v0) +/* 03FB64 7F00B034 85B8000E */ lh $t8, 0xe($t5) +/* 03FB68 7F00B038 0218082A */ slt $at, $s0, $t8 +/* 03FB6C 7F00B03C 5420FFF0 */ bnezl $at, .L7F00B000 +/* 03FB70 7F00B040 8C49000C */ lw $t1, 0xc($v0) +/* 03FB74 7F00B044 8FBF003C */ lw $ra, 0x3c($sp) +.L7F00B048: +/* 03FB78 7F00B048 8FA20168 */ lw $v0, 0x168($sp) +/* 03FB7C 7F00B04C 8FB0002C */ lw $s0, 0x2c($sp) +/* 03FB80 7F00B050 8FB10030 */ lw $s1, 0x30($sp) +/* 03FB84 7F00B054 8FB20034 */ lw $s2, 0x34($sp) +/* 03FB88 7F00B058 8FB30038 */ lw $s3, 0x38($sp) +/* 03FB8C 7F00B05C 03E00008 */ jr $ra +/* 03FB90 7F00B060 27BD0168 */ addiu $sp, $sp, 0x168 +) +#endif + + + +void init_menu02_rarelogo(void) +{ + sub_GAME_7F008B58(ptr_logo_and_walletbond_DL, 0x78000); + play_sfx_a1(ptr_sfx_buf, 0x102, 0); +} + +void update_menu02_rareware(void) { + return; +} + +void interface_menu02_rareware(void) +{ + set_video2_settings_offset_24(0); + if (sub_GAME_7F008DD0() != 0) + { + set_menu_to_mode(MENU_EYE_INTRO, 1); + return; + } + if (get_controller_buttons_pressed(0, 0xffff) != 0) + { + if (is_first_time_on_main_menu == 0) + { + set_menu_to_mode(MENU_FILE_SELECT, 1); + return; + } + prev_keypresses = 1; + set_menu_to_mode(MENU_EYE_INTRO, 1); + } +} + +void constructor_menu02_rareware(Gfx * DL) { + retrieve_display_rareware_logo(DL); +} + + + +void init_menu03_eyeintro(void) { + sub_GAME_7F008E80(ptr_logo_and_walletbond_DL, 0x78000); + musicTrack1Play(2); + maybe_is_in_menu = 1; +} + +void update_menu_03_eye(void) { + sub_GAME_7F00920C(); +} + +void interface_menu03_eye(void) { + set_video2_settings_offset_24(0); + if (sub_GAME_7F009744() != 0) { + set_menu_to_mode(MENU_GOLDENEYE_LOGO, 1); + return; + } + if (get_controller_buttons_pressed(0, 0xffff) != 0) { + if (is_first_time_on_main_menu == 0) { + set_menu_to_mode(MENU_FILE_SELECT, 1); + return; + } + prev_keypresses = 1; + set_menu_to_mode(MENU_GOLDENEYE_LOGO, 1); + } +} + +void constructor_menu03_eye(Gfx * DL) { + sub_GAME_7F009254(DL); +} + + + + + +#ifdef NONMATCHING +void init_menu04_goldeneyelogo(void) +{ + s32 sp24; + s32 temp_ret; + + menu_timer = 0; + sp24.unk0 = (s32) D_8002AB48.unk0; + sp24.unk4 = (s32) D_8002AB48.unk4; + sp24.unk8 = (s32) D_8002AB48.unk8; + load_object_fill_header(PitemZ_entries.unkCFC, PitemZ_entries.unkD00, ptr_logo_and_walletbond_DL, 0x3c000, 0); + set_objuse_flag_compute_grp_nums_set_obj_loaded(PgoldeneyelogoZ_header); + temp_ret = get_obj_instance_controller_for_header(PgoldeneyelogoZ_header); + something_legalscreen_constructor = temp_ret; + set_obj_instance_controller_scale(temp_ret, 0x3f800000); + setsuboffset(something_legalscreen_constructor, &sp24); +} +#else +GLOBAL_ASM( +.text +glabel init_menu04_goldeneyelogo +/* 03FD88 7F00B258 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 03FD8C 7F00B25C 3C018003 */ lui $at, %hi(menu_timer) +/* 03FD90 7F00B260 3C0F8003 */ lui $t7, %hi(D_8002AB48) +/* 03FD94 7F00B264 AFBF001C */ sw $ra, 0x1c($sp) +/* 03FD98 7F00B268 AC20A8CC */ sw $zero, %lo(menu_timer)($at) +/* 03FD9C 7F00B26C 25EFAB48 */ addiu $t7, %lo(D_8002AB48) # addiu $t7, $t7, -0x54b8 +/* 03FDA0 7F00B270 8DE10000 */ lw $at, ($t7) +/* 03FDA4 7F00B274 27AE0024 */ addiu $t6, $sp, 0x24 +/* 03FDA8 7F00B278 8DE80004 */ lw $t0, 4($t7) +/* 03FDAC 7F00B27C ADC10000 */ sw $at, ($t6) +/* 03FDB0 7F00B280 8DE10008 */ lw $at, 8($t7) +/* 03FDB4 7F00B284 ADC80004 */ sw $t0, 4($t6) +/* 03FDB8 7F00B288 3C028004 */ lui $v0, %hi(PitemZ_entries) +/* 03FDBC 7F00B28C ADC10008 */ sw $at, 8($t6) +/* 03FDC0 7F00B290 2442A228 */ addiu $v0, %lo(PitemZ_entries) # addiu $v0, $v0, -0x5dd8 +/* 03FDC4 7F00B294 3C068003 */ lui $a2, %hi(ptr_logo_and_walletbond_DL) +/* 03FDC8 7F00B298 3C070003 */ lui $a3, (0x0003C000 >> 16) # lui $a3, 3 +/* 03FDCC 7F00B29C 34E7C000 */ ori $a3, (0x0003C000 & 0xFFFF) # ori $a3, $a3, 0xc000 +/* 03FDD0 7F00B2A0 8CC6A950 */ lw $a2, %lo(ptr_logo_and_walletbond_DL)($a2) +/* 03FDD4 7F00B2A4 8C440CFC */ lw $a0, 0xcfc($v0) +/* 03FDD8 7F00B2A8 8C450D00 */ lw $a1, 0xd00($v0) +/* 03FDDC 7F00B2AC 0FC1D929 */ jal load_object_fill_header +/* 03FDE0 7F00B2B0 AFA00010 */ sw $zero, 0x10($sp) +/* 03FDE4 7F00B2B4 3C048004 */ lui $a0, %hi(PitemZ_entries+0xCFC) +/* 03FDE8 7F00B2B8 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 03FDEC 7F00B2BC 8C84AF24 */ lw $a0, %lo(PitemZ_entries+0xCFC)($a0) +/* 03FDF0 7F00B2C0 3C048004 */ lui $a0, %hi(PitemZ_entries+0xCFC) +/* 03FDF4 7F00B2C4 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 03FDF8 7F00B2C8 8C84AF24 */ lw $a0, %lo(PitemZ_entries+0xCFC)($a0) +/* 03FDFC 7F00B2CC 3C038003 */ lui $v1, %hi(something_legalscreen_constructor) +/* 03FE00 7F00B2D0 2463A958 */ addiu $v1, %lo(something_legalscreen_constructor) # addiu $v1, $v1, -0x56a8 +/* 03FE04 7F00B2D4 AC620000 */ sw $v0, ($v1) +/* 03FE08 7F00B2D8 00402025 */ move $a0, $v0 +/* 03FE0C 7F00B2DC 0FC1B39E */ jal set_obj_instance_controller_scale +/* 03FE10 7F00B2E0 3C053F80 */ lui $a1, 0x3f80 +/* 03FE14 7F00B2E4 3C048003 */ lui $a0, %hi(something_legalscreen_constructor) +/* 03FE18 7F00B2E8 8C84A958 */ lw $a0, %lo(something_legalscreen_constructor)($a0) +/* 03FE1C 7F00B2EC 0FC1B303 */ jal setsuboffset +/* 03FE20 7F00B2F0 27A50024 */ addiu $a1, $sp, 0x24 +/* 03FE24 7F00B2F4 8FBF001C */ lw $ra, 0x1c($sp) +/* 03FE28 7F00B2F8 27BD0030 */ addiu $sp, $sp, 0x30 +/* 03FE2C 7F00B2FC 03E00008 */ jr $ra +/* 03FE30 7F00B300 00000000 */ nop +) +#endif + + + + + +void update_menu04_goldeneye(void) { + is_first_time_on_main_menu = 0; + set_obj_instance_scale_to_zero(something_legalscreen_constructor); +} + + + + + +#ifdef NONMATCHING +void interface_menu04_goldeneyelogo(void) +{ + u32 uVar1; + + setvideo_far(60.00000000); + video_related_21(menu04_aspect); + set_page_height(100.00000000,(f32)menu04_pageheight); + set_video2_settings_offset_24(0); + menu_timer += clock_timer; + if (((is_first_time_on_main_menu == FALSE) || (0xb4 < menu_timer)) || + ((ge_logo_bool != FALSE && (0x5a < menu_timer)))) { + if (menu_timer < 0xb5) { + uVar1 = get_controller_buttons_pressed + ('\0',R_CBUTTONS|L_CBUTTONS|D_CBUTTONS|U_CBUTTONS|R_TRIG|L_TRIG| + DUMMY_2|DUMMY_1|R_JPAD|L_JPAD|D_JPAD|U_JPAD|START_BUTTON|Z_TRIG| + B_BUTTON|A_BUTTON); + if ((uVar1 != 0) || ((is_first_time_on_main_menu != FALSE && (ge_logo_bool != FALSE)))) + { + set_menu_to_mode(MENU_FILE_SELECT,1); + } + } + else { + if (prev_keypresses == 0) { + do_extended_cast_display(0); + set_menu_to_mode(MENU_DISPLAY_CAST,1); + } + else { + set_menu_to_mode(MENU_FILE_SELECT,1); + } + } + } + else { + uVar1 = get_controller_buttons_pressed + ('\0',R_CBUTTONS|L_CBUTTONS|D_CBUTTONS|U_CBUTTONS|R_TRIG|L_TRIG|DUMMY_2| + DUMMY_1|R_JPAD|L_JPAD|D_JPAD|U_JPAD|START_BUTTON|Z_TRIG|B_BUTTON| + A_BUTTON); + if (uVar1 != 0) { + ge_logo_bool = TRUE; + } + } + return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051A10 +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_80051A14 +.word 0x461C4000 /* 10000.0;*/ + +.text +glabel interface_menu04_goldeneyelogo +/* 03FE60 7F00B330 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 03FE64 7F00B334 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 03FE68 7F00B338 AFBF0014 */ sw $ra, 0x14($sp) +/* 03FE6C 7F00B33C 44816000 */ mtc1 $at, $f12 +/* 03FE70 7F00B340 0C001151 */ jal setvideo_far +/* 03FE74 7F00B344 00000000 */ nop +/* 03FE78 7F00B348 3C018005 */ lui $at, %hi(D_80051A10) +/* 03FE7C 7F00B34C 0C001164 */ jal video_related_21 +/* 03FE80 7F00B350 C42C1A10 */ lwc1 $f12, %lo(D_80051A10)($at) +/* 03FE84 7F00B354 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 03FE88 7F00B358 44816000 */ mtc1 $at, $f12 +/* 03FE8C 7F00B35C 3C018005 */ lui $at, %hi(D_80051A14) +/* 03FE90 7F00B360 0C001194 */ jal set_page_height +/* 03FE94 7F00B364 C42E1A14 */ lwc1 $f14, %lo(D_80051A14)($at) +/* 03FE98 7F00B368 0C00114D */ jal set_video2_settings_offset_24 +/* 03FE9C 7F00B36C 00002025 */ move $a0, $zero +/* 03FEA0 7F00B370 3C038003 */ lui $v1, %hi(menu_timer) +/* 03FEA4 7F00B374 2463A8CC */ addiu $v1, %lo(menu_timer) # addiu $v1, $v1, -0x5734 +/* 03FEA8 7F00B378 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 03FEAC 7F00B37C 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 03FEB0 7F00B380 8C6E0000 */ lw $t6, ($v1) +/* 03FEB4 7F00B384 3C198003 */ lui $t9, %hi(is_first_time_on_main_menu) +/* 03FEB8 7F00B388 01CFC021 */ addu $t8, $t6, $t7 +/* 03FEBC 7F00B38C AC780000 */ sw $t8, ($v1) +/* 03FEC0 7F00B390 8F39A930 */ lw $t9, %lo(is_first_time_on_main_menu)($t9) +/* 03FEC4 7F00B394 2B0100B5 */ slti $at, $t8, 0xb5 +/* 03FEC8 7F00B398 5320000B */ beql $t9, $zero, .L7F00B3C8 +/* 03FECC 7F00B39C 8C690000 */ lw $t1, ($v1) +/* 03FED0 7F00B3A0 10200008 */ beqz $at, .L7F00B3C4 +/* 03FED4 7F00B3A4 3C088003 */ lui $t0, %hi(D_8002A938) +/* 03FED8 7F00B3A8 8D08A938 */ lw $t0, %lo(D_8002A938)($t0) +/* 03FEDC 7F00B3AC 2B01005B */ slti $at, $t8, 0x5b +/* 03FEE0 7F00B3B0 00002025 */ move $a0, $zero +/* 03FEE4 7F00B3B4 11000027 */ beqz $t0, .L7F00B454 +/* 03FEE8 7F00B3B8 00000000 */ nop +/* 03FEEC 7F00B3BC 14200025 */ bnez $at, .L7F00B454 +/* 03FEF0 7F00B3C0 00000000 */ nop +.L7F00B3C4: +/* 03FEF4 7F00B3C4 8C690000 */ lw $t1, ($v1) +.L7F00B3C8: +/* 03FEF8 7F00B3C8 3C0A8003 */ lui $t2, %hi(prev_keypresses) +/* 03FEFC 7F00B3CC 00002025 */ move $a0, $zero +/* 03FF00 7F00B3D0 292100B5 */ slti $at, $t1, 0xb5 +/* 03FF04 7F00B3D4 14200010 */ bnez $at, .L7F00B418 +/* 03FF08 7F00B3D8 00000000 */ nop +/* 03FF0C 7F00B3DC 8D4AA934 */ lw $t2, %lo(prev_keypresses)($t2) +/* 03FF10 7F00B3E0 24040005 */ li $a0, 5 +/* 03FF14 7F00B3E4 11400005 */ beqz $t2, .L7F00B3FC +/* 03FF18 7F00B3E8 00000000 */ nop +/* 03FF1C 7F00B3EC 0FC06975 */ jal set_menu_to_mode +/* 03FF20 7F00B3F0 24050001 */ li $a1, 1 +/* 03FF24 7F00B3F4 1000001E */ b .L7F00B470 +/* 03FF28 7F00B3F8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00B3FC: +/* 03FF2C 7F00B3FC 0FC0619C */ jal do_extended_cast_display +/* 03FF30 7F00B400 00002025 */ move $a0, $zero +/* 03FF34 7F00B404 24040018 */ li $a0, 24 +/* 03FF38 7F00B408 0FC06975 */ jal set_menu_to_mode +/* 03FF3C 7F00B40C 24050001 */ li $a1, 1 +/* 03FF40 7F00B410 10000017 */ b .L7F00B470 +/* 03FF44 7F00B414 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00B418: +/* 03FF48 7F00B418 0C0030EB */ jal get_controller_buttons_pressed +/* 03FF4C 7F00B41C 3405FFFF */ li $a1, 65535 +/* 03FF50 7F00B420 14400007 */ bnez $v0, .L7F00B440 +/* 03FF54 7F00B424 3C0B8003 */ lui $t3, %hi(is_first_time_on_main_menu) +/* 03FF58 7F00B428 8D6BA930 */ lw $t3, %lo(is_first_time_on_main_menu)($t3) +/* 03FF5C 7F00B42C 3C0C8003 */ lui $t4, %hi(D_8002A938) +/* 03FF60 7F00B430 5160000F */ beql $t3, $zero, .L7F00B470 +/* 03FF64 7F00B434 8FBF0014 */ lw $ra, 0x14($sp) +/* 03FF68 7F00B438 8D8CA938 */ lw $t4, %lo(D_8002A938)($t4) +/* 03FF6C 7F00B43C 1180000B */ beqz $t4, .L7F00B46C +.L7F00B440: +/* 03FF70 7F00B440 24040005 */ li $a0, 5 +/* 03FF74 7F00B444 0FC06975 */ jal set_menu_to_mode +/* 03FF78 7F00B448 24050001 */ li $a1, 1 +/* 03FF7C 7F00B44C 10000008 */ b .L7F00B470 +/* 03FF80 7F00B450 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00B454: +/* 03FF84 7F00B454 0C0030EB */ jal get_controller_buttons_pressed +/* 03FF88 7F00B458 3405FFFF */ li $a1, 65535 +/* 03FF8C 7F00B45C 10400003 */ beqz $v0, .L7F00B46C +/* 03FF90 7F00B460 240D0001 */ li $t5, 1 +/* 03FF94 7F00B464 3C018003 */ lui $at, %hi(D_8002A938) +/* 03FF98 7F00B468 AC2DA938 */ sw $t5, %lo(D_8002A938)($at) +.L7F00B46C: +/* 03FF9C 7F00B46C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00B470: +/* 03FFA0 7F00B470 27BD0018 */ addiu $sp, $sp, 0x18 +/* 03FFA4 7F00B474 03E00008 */ jr $ra +/* 03FFA8 7F00B478 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 constructor_menu04_goldeneyelogo(s32 arg0) +{ + s32 sp150; + s32 sp148; + s32 sp144; + s32 sp140; + s32 spF8; + s32 spB0; + s32 sp5C; + s32 temp_a0; + s32 temp_ret; + s32 temp_s0; + s32 temp_s0_2; + s32 temp_s4; + s32 temp_v0; + s32 temp_v1; + void *temp_t1; + void *temp_t6; + void *phi_t6; + void *phi_t1; + s32 phi_s1; + s32 phi_s0; + + phi_t6 = &D_8002AB54; + phi_t1 = &sp140; +loop_1: + temp_t6 = phi_t6 + 0xc; + temp_t1 = phi_t1 + 0xc; + temp_t1->unk-C = (s32) *phi_t6; + temp_t1->unk-8 = (s32) temp_t6->unk-8; + temp_t1->unk-4 = (s32) temp_t6->unk-4; + phi_t6 = temp_t6; + phi_t1 = temp_t1; + if (temp_t6 != (&D_8002AB54 + 0x3c)) + { + goto loop_1; + } + temp_t1->unk0 = (s32) temp_t6->unk0; + temp_s4 = insert_generic_fillrect(set_setfillcolor(arg0, 0, 0, 0)); + temp_ret = sub_GAME_7F0BD6F8(2); + temp_s0 = temp_ret; + guLookAtReflect(&spB0, temp_ret, 0.0f, 0.0f, 4000.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); + temp_v0 = temp_s4; + temp_s4 = temp_s4 + 8; + temp_v1 = temp_s4; + temp_s4 = temp_s4 + 8; + temp_v0->unk0 = 0xbc000002; + temp_v0->unk4 = 0x80000040; + temp_a0 = temp_s4; + temp_s4 = temp_s4 + 8; + temp_v1->unk0 = 0x3860010; + temp_v1->unk4 = &D_8002A978; + temp_a0->unk0 = 0x3880010; + temp_a0->unk4 = &D_8002A970; + temp_s4->unk0 = 0x3840010; + temp_s4->unk4 = temp_s0; + temp_s4 = temp_s4 + 8; + temp_s4->unk4 = (s32) (temp_s0 + 0x10); + temp_s4->unk0 = 0x3820010; + sub_GAME_7F059694(&spF8, 0.0f, 0.0f, 0x453b8000, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); + sp150 = sub_GAME_7F0BD714(something_legalscreen_constructor->unk8->unkE << 6); + matrix_scalar_multiply(D_80051A18, &spF8); + matrix_4x4_copy(&spF8, sp150); + something_legalscreen_constructor->unkC = sp150; + sub_GAME_7F06EFC4(something_legalscreen_constructor); + sp148 = 3; + sp144 = 0; + subdraw(&sp140, something_legalscreen_constructor); + phi_s1 = 0; + phi_s0 = 0; + if (something_legalscreen_constructor->unk8->unkE > 0) + { +loop_3: + matrix_4x4_copy(something_legalscreen_constructor->unkC + phi_s1, &sp5C); + sub_GAME_7F058C9C(&sp5C, something_legalscreen_constructor->unkC + (phi_s0 << 6)); + temp_s0_2 = phi_s0 + 1; + phi_s1 = phi_s1 + 0x40; + phi_s0 = temp_s0_2; + if (temp_s0_2 < something_legalscreen_constructor->unk8->unkE) + { + goto loop_3; + } + } + return sp14C; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051A18 +.word 0x3F99999A /* 1.2;*/ +.text +glabel constructor_menu04_goldeneyelogo +/* 03FFAC 7F00B47C 27BDFE80 */ addiu $sp, $sp, -0x180 +/* 03FFB0 7F00B480 AFB20040 */ sw $s2, 0x40($sp) +/* 03FFB4 7F00B484 3C0E8003 */ lui $t6, %hi(D_8002AB54) +/* 03FFB8 7F00B488 27B20140 */ addiu $s2, $sp, 0x140 +/* 03FFBC 7F00B48C AFB40048 */ sw $s4, 0x48($sp) +/* 03FFC0 7F00B490 25CEAB54 */ addiu $t6, %lo(D_8002AB54) # addiu $t6, $t6, -0x54ac +/* 03FFC4 7F00B494 0080A025 */ move $s4, $a0 +/* 03FFC8 7F00B498 AFBF004C */ sw $ra, 0x4c($sp) +/* 03FFCC 7F00B49C AFB30044 */ sw $s3, 0x44($sp) +/* 03FFD0 7F00B4A0 AFB1003C */ sw $s1, 0x3c($sp) +/* 03FFD4 7F00B4A4 AFB00038 */ sw $s0, 0x38($sp) +/* 03FFD8 7F00B4A8 25D9003C */ addiu $t9, $t6, 0x3c +/* 03FFDC 7F00B4AC 02404825 */ move $t1, $s2 +.L7F00B4B0: +/* 03FFE0 7F00B4B0 8DC10000 */ lw $at, ($t6) +/* 03FFE4 7F00B4B4 25CE000C */ addiu $t6, $t6, 0xc +/* 03FFE8 7F00B4B8 2529000C */ addiu $t1, $t1, 0xc +/* 03FFEC 7F00B4BC AD21FFF4 */ sw $at, -0xc($t1) +/* 03FFF0 7F00B4C0 8DC1FFF8 */ lw $at, -8($t6) +/* 03FFF4 7F00B4C4 AD21FFF8 */ sw $at, -8($t1) +/* 03FFF8 7F00B4C8 8DC1FFFC */ lw $at, -4($t6) +/* 03FFFC 7F00B4CC 15D9FFF8 */ bne $t6, $t9, .L7F00B4B0 +/* 040000 7F00B4D0 AD21FFFC */ sw $at, -4($t1) +/* 040004 7F00B4D4 8DC10000 */ lw $at, ($t6) +/* 040008 7F00B4D8 02802025 */ move $a0, $s4 +/* 04000C 7F00B4DC 00002825 */ move $a1, $zero +/* 040010 7F00B4E0 00003025 */ move $a2, $zero +/* 040014 7F00B4E4 00003825 */ move $a3, $zero +/* 040018 7F00B4E8 0C0011B4 */ jal set_setfillcolor +/* 04001C 7F00B4EC AD210000 */ sw $at, ($t1) +/* 040020 7F00B4F0 0C000FBE */ jal insert_generic_fillrect +/* 040024 7F00B4F4 00402025 */ move $a0, $v0 +/* 040028 7F00B4F8 0040A025 */ move $s4, $v0 +/* 04002C 7F00B4FC 0FC2F5BE */ jal sub_GAME_7F0BD6F8 +/* 040030 7F00B500 24040002 */ li $a0, 2 +/* 040034 7F00B504 44800000 */ mtc1 $zero, $f0 +/* 040038 7F00B508 3C01457A */ li $at, 0x457A0000 # 4000.000000 +/* 04003C 7F00B50C 44812000 */ mtc1 $at, $f4 +/* 040040 7F00B510 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 040044 7F00B514 44813000 */ mtc1 $at, $f6 +/* 040048 7F00B518 44060000 */ mfc1 $a2, $f0 +/* 04004C 7F00B51C 44070000 */ mfc1 $a3, $f0 +/* 040050 7F00B520 00408025 */ move $s0, $v0 +/* 040054 7F00B524 27A400B0 */ addiu $a0, $sp, 0xb0 +/* 040058 7F00B528 00402825 */ move $a1, $v0 +/* 04005C 7F00B52C E7A00014 */ swc1 $f0, 0x14($sp) +/* 040060 7F00B530 E7A00018 */ swc1 $f0, 0x18($sp) +/* 040064 7F00B534 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 040068 7F00B538 E7A00020 */ swc1 $f0, 0x20($sp) +/* 04006C 7F00B53C E7A00028 */ swc1 $f0, 0x28($sp) +/* 040070 7F00B540 E7A40010 */ swc1 $f4, 0x10($sp) +/* 040074 7F00B544 0C005CDC */ jal guLookAtReflect +/* 040078 7F00B548 E7A60024 */ swc1 $f6, 0x24($sp) +/* 04007C 7F00B54C 02801025 */ move $v0, $s4 +/* 040080 7F00B550 26940008 */ addiu $s4, $s4, 8 +/* 040084 7F00B554 3C0ABC00 */ lui $t2, (0xBC000002 >> 16) # lui $t2, 0xbc00 +/* 040088 7F00B558 3C0B8000 */ lui $t3, (0x80000040 >> 16) # lui $t3, 0x8000 +/* 04008C 7F00B55C 356B0040 */ ori $t3, (0x80000040 & 0xFFFF) # ori $t3, $t3, 0x40 +/* 040090 7F00B560 354A0002 */ ori $t2, (0xBC000002 & 0xFFFF) # ori $t2, $t2, 2 +/* 040094 7F00B564 02801825 */ move $v1, $s4 +/* 040098 7F00B568 26940008 */ addiu $s4, $s4, 8 +/* 04009C 7F00B56C AC4A0000 */ sw $t2, ($v0) +/* 0400A0 7F00B570 AC4B0004 */ sw $t3, 4($v0) +/* 0400A4 7F00B574 3C0C0386 */ lui $t4, (0x03860010 >> 16) # lui $t4, 0x386 +/* 0400A8 7F00B578 3C0D8003 */ lui $t5, %hi(D_8002A978) +/* 0400AC 7F00B57C 25ADA978 */ addiu $t5, %lo(D_8002A978) # addiu $t5, $t5, -0x5688 +/* 0400B0 7F00B580 358C0010 */ ori $t4, (0x03860010 & 0xFFFF) # ori $t4, $t4, 0x10 +/* 0400B4 7F00B584 02802025 */ move $a0, $s4 +/* 0400B8 7F00B588 26940008 */ addiu $s4, $s4, 8 +/* 0400BC 7F00B58C AC6C0000 */ sw $t4, ($v1) +/* 0400C0 7F00B590 AC6D0004 */ sw $t5, 4($v1) +/* 0400C4 7F00B594 3C180388 */ lui $t8, (0x03880010 >> 16) # lui $t8, 0x388 +/* 0400C8 7F00B598 3C0F8003 */ lui $t7, %hi(D_8002A970) +/* 0400CC 7F00B59C 25EFA970 */ addiu $t7, %lo(D_8002A970) # addiu $t7, $t7, -0x5690 +/* 0400D0 7F00B5A0 37180010 */ ori $t8, (0x03880010 & 0xFFFF) # ori $t8, $t8, 0x10 +/* 0400D4 7F00B5A4 02802825 */ move $a1, $s4 +/* 0400D8 7F00B5A8 AC980000 */ sw $t8, ($a0) +/* 0400DC 7F00B5AC AC8F0004 */ sw $t7, 4($a0) +/* 0400E0 7F00B5B0 3C190384 */ lui $t9, (0x03840010 >> 16) # lui $t9, 0x384 +/* 0400E4 7F00B5B4 37390010 */ ori $t9, (0x03840010 & 0xFFFF) # ori $t9, $t9, 0x10 +/* 0400E8 7F00B5B8 44800000 */ mtc1 $zero, $f0 +/* 0400EC 7F00B5BC ACB90000 */ sw $t9, ($a1) +/* 0400F0 7F00B5C0 ACB00004 */ sw $s0, 4($a1) +/* 0400F4 7F00B5C4 26940008 */ addiu $s4, $s4, 8 +/* 0400F8 7F00B5C8 02804025 */ move $t0, $s4 +/* 0400FC 7F00B5CC 3C0E0382 */ lui $t6, (0x03820010 >> 16) # lui $t6, 0x382 +/* 040100 7F00B5D0 35CE0010 */ ori $t6, (0x03820010 & 0xFFFF) # ori $t6, $t6, 0x10 +/* 040104 7F00B5D4 26090010 */ addiu $t1, $s0, 0x10 +/* 040108 7F00B5D8 AD090004 */ sw $t1, 4($t0) +/* 04010C 7F00B5DC AD0E0000 */ sw $t6, ($t0) +/* 040110 7F00B5E0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 040114 7F00B5E4 44814000 */ mtc1 $at, $f8 +/* 040118 7F00B5E8 27B100F8 */ addiu $s1, $sp, 0xf8 +/* 04011C 7F00B5EC 3C07453B */ lui $a3, (0x453B8000 >> 16) # lui $a3, 0x453b +/* 040120 7F00B5F0 44050000 */ mfc1 $a1, $f0 +/* 040124 7F00B5F4 44060000 */ mfc1 $a2, $f0 +/* 040128 7F00B5F8 26940008 */ addiu $s4, $s4, 8 +/* 04012C 7F00B5FC 34E78000 */ ori $a3, (0x453B8000 & 0xFFFF) # ori $a3, $a3, 0x8000 +/* 040130 7F00B600 02202025 */ move $a0, $s1 +/* 040134 7F00B604 E7A00024 */ swc1 $f0, 0x24($sp) +/* 040138 7F00B608 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 04013C 7F00B60C E7A00018 */ swc1 $f0, 0x18($sp) +/* 040140 7F00B610 E7A00014 */ swc1 $f0, 0x14($sp) +/* 040144 7F00B614 E7A00010 */ swc1 $f0, 0x10($sp) +/* 040148 7F00B618 0FC165A5 */ jal sub_GAME_7F059694 +/* 04014C 7F00B61C E7A80020 */ swc1 $f8, 0x20($sp) +/* 040150 7F00B620 3C138003 */ lui $s3, %hi(something_legalscreen_constructor) +/* 040154 7F00B624 2673A958 */ addiu $s3, %lo(something_legalscreen_constructor) # addiu $s3, $s3, -0x56a8 +/* 040158 7F00B628 8E6A0000 */ lw $t2, ($s3) +/* 04015C 7F00B62C AFB10140 */ sw $s1, 0x140($sp) +/* 040160 7F00B630 8D4B0008 */ lw $t3, 8($t2) +/* 040164 7F00B634 8564000E */ lh $a0, 0xe($t3) +/* 040168 7F00B638 00046180 */ sll $t4, $a0, 6 +/* 04016C 7F00B63C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 040170 7F00B640 01802025 */ move $a0, $t4 +/* 040174 7F00B644 3C018005 */ lui $at, %hi(D_80051A18) +/* 040178 7F00B648 AFA20150 */ sw $v0, 0x150($sp) +/* 04017C 7F00B64C C42C1A18 */ lwc1 $f12, %lo(D_80051A18)($at) +/* 040180 7F00B650 0FC1629F */ jal matrix_scalar_multiply +/* 040184 7F00B654 02202825 */ move $a1, $s1 +/* 040188 7F00B658 02202025 */ move $a0, $s1 +/* 04018C 7F00B65C 0FC16008 */ jal matrix_4x4_copy +/* 040190 7F00B660 8FA50150 */ lw $a1, 0x150($sp) +/* 040194 7F00B664 8FAD0150 */ lw $t5, 0x150($sp) +/* 040198 7F00B668 8E780000 */ lw $t8, ($s3) +/* 04019C 7F00B66C AF0D000C */ sw $t5, 0xc($t8) +/* 0401A0 7F00B670 0FC1BBF1 */ jal sub_GAME_7F06EFC4 +/* 0401A4 7F00B674 8E640000 */ lw $a0, ($s3) +/* 0401A8 7F00B678 240F0003 */ li $t7, 3 +/* 0401AC 7F00B67C AFAF0148 */ sw $t7, 0x148($sp) +/* 0401B0 7F00B680 AFA00144 */ sw $zero, 0x144($sp) +/* 0401B4 7F00B684 AFB4014C */ sw $s4, 0x14c($sp) +/* 0401B8 7F00B688 02402025 */ move $a0, $s2 +/* 0401BC 7F00B68C 0FC1D1A1 */ jal subdraw +/* 0401C0 7F00B690 8E650000 */ lw $a1, ($s3) +/* 0401C4 7F00B694 8E620000 */ lw $v0, ($s3) +/* 0401C8 7F00B698 8FB4014C */ lw $s4, 0x14c($sp) +/* 0401CC 7F00B69C 00008025 */ move $s0, $zero +/* 0401D0 7F00B6A0 8C590008 */ lw $t9, 8($v0) +/* 0401D4 7F00B6A4 00008825 */ move $s1, $zero +/* 0401D8 7F00B6A8 27B2005C */ addiu $s2, $sp, 0x5c +/* 0401DC 7F00B6AC 872E000E */ lh $t6, 0xe($t9) +/* 0401E0 7F00B6B0 59C00014 */ blezl $t6, .L7F00B704 +/* 0401E4 7F00B6B4 8FBF004C */ lw $ra, 0x4c($sp) +/* 0401E8 7F00B6B8 8C49000C */ lw $t1, 0xc($v0) +.L7F00B6BC: +/* 0401EC 7F00B6BC 02402825 */ move $a1, $s2 +/* 0401F0 7F00B6C0 0FC16008 */ jal matrix_4x4_copy +/* 0401F4 7F00B6C4 01312021 */ addu $a0, $t1, $s1 +/* 0401F8 7F00B6C8 8E6A0000 */ lw $t2, ($s3) +/* 0401FC 7F00B6CC 00106180 */ sll $t4, $s0, 6 +/* 040200 7F00B6D0 02402025 */ move $a0, $s2 +/* 040204 7F00B6D4 8D4B000C */ lw $t3, 0xc($t2) +/* 040208 7F00B6D8 0FC16327 */ jal sub_GAME_7F058C9C +/* 04020C 7F00B6DC 016C2821 */ addu $a1, $t3, $t4 +/* 040210 7F00B6E0 8E620000 */ lw $v0, ($s3) +/* 040214 7F00B6E4 26100001 */ addiu $s0, $s0, 1 +/* 040218 7F00B6E8 26310040 */ addiu $s1, $s1, 0x40 +/* 04021C 7F00B6EC 8C4D0008 */ lw $t5, 8($v0) +/* 040220 7F00B6F0 85B8000E */ lh $t8, 0xe($t5) +/* 040224 7F00B6F4 0218082A */ slt $at, $s0, $t8 +/* 040228 7F00B6F8 5420FFF0 */ bnezl $at, .L7F00B6BC +/* 04022C 7F00B6FC 8C49000C */ lw $t1, 0xc($v0) +/* 040230 7F00B700 8FBF004C */ lw $ra, 0x4c($sp) +.L7F00B704: +/* 040234 7F00B704 02801025 */ move $v0, $s4 +/* 040238 7F00B708 8FB40048 */ lw $s4, 0x48($sp) +/* 04023C 7F00B70C 8FB00038 */ lw $s0, 0x38($sp) +/* 040240 7F00B710 8FB1003C */ lw $s1, 0x3c($sp) +/* 040244 7F00B714 8FB20040 */ lw $s2, 0x40($sp) +/* 040248 7F00B718 8FB30044 */ lw $s3, 0x44($sp) +/* 04024C 7F00B71C 03E00008 */ jr $ra +/* 040250 7F00B720 27BD0180 */ addiu $sp, $sp, 0x180 +) +#endif + + + +#ifdef NONMATCHING +void disable_all_switches(void *arg0) +{ + s32 temp_s0; + void *temp_t7; + void *phi_v1; + s32 phi_s1; + s32 phi_a2; + s32 phi_s0; + s32 phi_a2_2; + + phi_v1 = arg0->unk8; + phi_s1 = 0; + phi_a2 = arg0->unk8->unkC; + phi_s0 = 0; + if (arg0->unk8->unkC > 0) + { +loop_1: + temp_t7 = phi_v1->unk8 + phi_s1; + phi_a2_2 = phi_a2; + phi_v1 = phi_v1; + if (*temp_t7 != 0) + { + phi_a2_2 = phi_a2; + phi_v1 = phi_v1; + if (0x12 == (**temp_t7 & 0xff)) + { + *extract_id_from_object_structure_microcode(arg0, *temp_t7, phi_a2) = 0; + phi_a2_2 = arg0->unk8->unkC; + phi_v1 = arg0->unk8; + } + } + temp_s0 = phi_s0 + 1; + phi_s1 = phi_s1 + 4; + phi_a2 = phi_a2_2; + phi_s0 = temp_s0; + if (temp_s0 < phi_a2_2) + { + goto loop_1; + } + } +} +#else +GLOBAL_ASM( +.text +glabel disable_all_switches +/* 040254 7F00B724 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 040258 7F00B728 AFBF0024 */ sw $ra, 0x24($sp) +/* 04025C 7F00B72C AFB30020 */ sw $s3, 0x20($sp) +/* 040260 7F00B730 AFB2001C */ sw $s2, 0x1c($sp) +/* 040264 7F00B734 AFB10018 */ sw $s1, 0x18($sp) +/* 040268 7F00B738 AFB00014 */ sw $s0, 0x14($sp) +/* 04026C 7F00B73C 8C830008 */ lw $v1, 8($a0) +/* 040270 7F00B740 00809025 */ move $s2, $a0 +/* 040274 7F00B744 00008025 */ move $s0, $zero +/* 040278 7F00B748 8466000C */ lh $a2, 0xc($v1) +/* 04027C 7F00B74C 00008825 */ move $s1, $zero +/* 040280 7F00B750 24130012 */ li $s3, 18 +/* 040284 7F00B754 58C00014 */ blezl $a2, .L7F00B7A8 +/* 040288 7F00B758 8FBF0024 */ lw $ra, 0x24($sp) +.L7F00B75C: +/* 04028C 7F00B75C 8C6E0008 */ lw $t6, 8($v1) +/* 040290 7F00B760 01D17821 */ addu $t7, $t6, $s1 +/* 040294 7F00B764 8DE50000 */ lw $a1, ($t7) +/* 040298 7F00B768 50A0000B */ beql $a1, $zero, .L7F00B798 +/* 04029C 7F00B76C 26100001 */ addiu $s0, $s0, 1 +/* 0402A0 7F00B770 94B80000 */ lhu $t8, ($a1) +/* 0402A4 7F00B774 331900FF */ andi $t9, $t8, 0xff +/* 0402A8 7F00B778 56790007 */ bnel $s3, $t9, .L7F00B798 +/* 0402AC 7F00B77C 26100001 */ addiu $s0, $s0, 1 +/* 0402B0 7F00B780 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0402B4 7F00B784 02402025 */ move $a0, $s2 +/* 0402B8 7F00B788 AC400000 */ sw $zero, ($v0) +/* 0402BC 7F00B78C 8E430008 */ lw $v1, 8($s2) +/* 0402C0 7F00B790 8466000C */ lh $a2, 0xc($v1) +/* 0402C4 7F00B794 26100001 */ addiu $s0, $s0, 1 +.L7F00B798: +/* 0402C8 7F00B798 0206082A */ slt $at, $s0, $a2 +/* 0402CC 7F00B79C 1420FFEF */ bnez $at, .L7F00B75C +/* 0402D0 7F00B7A0 26310004 */ addiu $s1, $s1, 4 +/* 0402D4 7F00B7A4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F00B7A8: +/* 0402D8 7F00B7A8 8FB00014 */ lw $s0, 0x14($sp) +/* 0402DC 7F00B7AC 8FB10018 */ lw $s1, 0x18($sp) +/* 0402E0 7F00B7B0 8FB2001C */ lw $s2, 0x1c($sp) +/* 0402E4 7F00B7B4 8FB30020 */ lw $s3, 0x20($sp) +/* 0402E8 7F00B7B8 03E00008 */ jr $ra +/* 0402EC 7F00B7BC 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void set_item_visibility_in_objinstance(void *arg0, s32 arg1, s32 arg2) +{ + void *temp_t9; + + temp_t9 = arg0->unk8->unk8 + (arg1 * 4); + if (*temp_t9 != 0) + { + *extract_id_from_object_structure_microcode(*temp_t9, *temp_t9) = arg2; + } +} +#else +GLOBAL_ASM( +.text +glabel set_item_visibility_in_objinstance +/* 0402F0 7F00B7C0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0402F4 7F00B7C4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0402F8 7F00B7C8 AFA60020 */ sw $a2, 0x20($sp) +/* 0402FC 7F00B7CC 8C8E0008 */ lw $t6, 8($a0) +/* 040300 7F00B7D0 0005C080 */ sll $t8, $a1, 2 +/* 040304 7F00B7D4 8DCF0008 */ lw $t7, 8($t6) +/* 040308 7F00B7D8 01F8C821 */ addu $t9, $t7, $t8 +/* 04030C 7F00B7DC 8F270000 */ lw $a3, ($t9) +/* 040310 7F00B7E0 50E00006 */ beql $a3, $zero, .L7F00B7FC +/* 040314 7F00B7E4 8FBF0014 */ lw $ra, 0x14($sp) +/* 040318 7F00B7E8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 04031C 7F00B7EC 00E02825 */ move $a1, $a3 +/* 040320 7F00B7F0 8FA80020 */ lw $t0, 0x20($sp) +/* 040324 7F00B7F4 AC480000 */ sw $t0, ($v0) +/* 040328 7F00B7F8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00B7FC: +/* 04032C 7F00B7FC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 040330 7F00B800 03E00008 */ jr $ra +/* 040334 7F00B804 00000000 */ nop +) +#endif + + + + + +void select_load_bond_picture(s32 *objinstance,u32 bondID) { + set_item_visibility_in_objinstance(objinstance,8,1); + set_item_visibility_in_objinstance(objinstance,9,0); + set_item_visibility_in_objinstance(objinstance,10,0); + set_item_visibility_in_objinstance(objinstance,0xb,0); + set_item_visibility_in_objinstance(objinstance,0xf,1); + set_item_visibility_in_objinstance(objinstance,0x10,0); + set_item_visibility_in_objinstance(objinstance,0x11,0); + set_item_visibility_in_objinstance(objinstance,0x12,0); +} + + + + + + +#ifdef NONMATCHING +void load_walletbond(void) +{ + s32 temp_ret; + void *temp_s0; + void *phi_s0; + + if (ptr_folder_object_instance == 0) + { + load_object_fill_header(PitemZ_entries.unkD08, PitemZ_entries.unkD0C, ptr_logo_and_walletbond_DL, 0xa000, 0); + set_objuse_flag_compute_grp_nums_set_obj_loaded(PitemZ_entries.unkD08); + phi_s0 = &ptr_folder_object_instance; +loop_2: + temp_ret = get_aircraft_obj_instance_controller(PitemZ_entries.unkD08); + *phi_s0 = temp_ret; + set_obj_instance_controller_scale(temp_ret, 0x3f800000); + temp_s0 = phi_s0 + 4; + phi_s0 = temp_s0; + if (temp_s0 != &D_8002A96C) + { + goto loop_2; + } + if (PitemZ_entries.unkD08->unk8->unk54 != 0) + { + sub_GAME_7F0BA640(PitemZ_entries.unkD08->unk8->unk54->unk4->unk1C + (PitemZ_entries.unkD08->unk8->unk54->unk4->unk0 & 0xffffff), 0, 8); + } + } +} +#else +GLOBAL_ASM( +.text +glabel load_walletbond +/* 0403DC 7F00B8AC 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0403E0 7F00B8B0 3C0E8003 */ lui $t6, %hi(ptr_folder_object_instance) +/* 0403E4 7F00B8B4 8DCEA95C */ lw $t6, %lo(ptr_folder_object_instance)($t6) +/* 0403E8 7F00B8B8 AFBF0034 */ sw $ra, 0x34($sp) +/* 0403EC 7F00B8BC AFB20030 */ sw $s2, 0x30($sp) +/* 0403F0 7F00B8C0 AFB1002C */ sw $s1, 0x2c($sp) +/* 0403F4 7F00B8C4 AFB00028 */ sw $s0, 0x28($sp) +/* 0403F8 7F00B8C8 15C0002A */ bnez $t6, .L7F00B974 +/* 0403FC 7F00B8CC F7B40020 */ sdc1 $f20, 0x20($sp) +/* 040400 7F00B8D0 3C128004 */ lui $s2, %hi(PitemZ_entries) +/* 040404 7F00B8D4 2652A228 */ addiu $s2, %lo(PitemZ_entries) # addiu $s2, $s2, -0x5dd8 +/* 040408 7F00B8D8 3C068003 */ lui $a2, %hi(ptr_logo_and_walletbond_DL) +/* 04040C 7F00B8DC 8CC6A950 */ lw $a2, %lo(ptr_logo_and_walletbond_DL)($a2) +/* 040410 7F00B8E0 8E440D08 */ lw $a0, 0xd08($s2) +/* 040414 7F00B8E4 8E450D0C */ lw $a1, 0xd0c($s2) +/* 040418 7F00B8E8 3407A000 */ li $a3, 40960 +/* 04041C 7F00B8EC 0FC1D929 */ jal load_object_fill_header +/* 040420 7F00B8F0 AFA00010 */ sw $zero, 0x10($sp) +/* 040424 7F00B8F4 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 040428 7F00B8F8 8E440D08 */ lw $a0, 0xd08($s2) +/* 04042C 7F00B8FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 040430 7F00B900 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 040434 7F00B904 3C118003 */ lui $s1, %hi(D_8002A96C) +/* 040438 7F00B908 4481A000 */ mtc1 $at, $f20 +/* 04043C 7F00B90C 2631A96C */ addiu $s1, %lo(D_8002A96C) # addiu $s1, $s1, -0x5694 +/* 040440 7F00B910 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +.L7F00B914: +/* 040444 7F00B914 0FC1B08F */ jal get_aircraft_obj_instance_controller +/* 040448 7F00B918 8E440D08 */ lw $a0, 0xd08($s2) +/* 04044C 7F00B91C 4405A000 */ mfc1 $a1, $f20 +/* 040450 7F00B920 AE020000 */ sw $v0, ($s0) +/* 040454 7F00B924 0FC1B39E */ jal set_obj_instance_controller_scale +/* 040458 7F00B928 00402025 */ move $a0, $v0 +/* 04045C 7F00B92C 26100004 */ addiu $s0, $s0, 4 +/* 040460 7F00B930 1611FFF8 */ bne $s0, $s1, .L7F00B914 +/* 040464 7F00B934 00000000 */ nop +/* 040468 7F00B938 8E4F0D08 */ lw $t7, 0xd08($s2) +/* 04046C 7F00B93C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 040470 7F00B940 8DF80008 */ lw $t8, 8($t7) +/* 040474 7F00B944 8F030054 */ lw $v1, 0x54($t8) +/* 040478 7F00B948 5060000B */ beql $v1, $zero, .L7F00B978 +/* 04047C 7F00B94C 8FBF0034 */ lw $ra, 0x34($sp) +/* 040480 7F00B950 8C620004 */ lw $v0, 4($v1) +/* 040484 7F00B954 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 040488 7F00B958 00002825 */ move $a1, $zero +/* 04048C 7F00B95C 8C480000 */ lw $t0, ($v0) +/* 040490 7F00B960 8C59001C */ lw $t9, 0x1c($v0) +/* 040494 7F00B964 24060008 */ li $a2, 8 +/* 040498 7F00B968 01014824 */ and $t1, $t0, $at +/* 04049C 7F00B96C 0FC2E990 */ jal sub_GAME_7F0BA640 +/* 0404A0 7F00B970 03292021 */ addu $a0, $t9, $t1 +.L7F00B974: +/* 0404A4 7F00B974 8FBF0034 */ lw $ra, 0x34($sp) +.L7F00B978: +/* 0404A8 7F00B978 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 0404AC 7F00B97C 8FB00028 */ lw $s0, 0x28($sp) +/* 0404B0 7F00B980 8FB1002C */ lw $s1, 0x2c($sp) +/* 0404B4 7F00B984 8FB20030 */ lw $s2, 0x30($sp) +/* 0404B8 7F00B988 03E00008 */ jr $ra +/* 0404BC 7F00B98C 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F00B990(void) +{ + s32 temp_a0; + void *temp_s0; + void *phi_s0; + + phi_s0 = &ptr_folder_object_instance; +loop_1: + temp_a0 = *phi_s0; + if (temp_a0 != 0) + { + set_aircraft_obj_inst_scale_to_zero(temp_a0); + *phi_s0 = 0; + } + temp_s0 = phi_s0 + 4; + phi_s0 = temp_s0; + if (temp_s0 != &D_8002A96C) + { + goto loop_1; + } +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F00B990 +/* 0404C0 7F00B990 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0404C4 7F00B994 AFB10018 */ sw $s1, 0x18($sp) +/* 0404C8 7F00B998 AFB00014 */ sw $s0, 0x14($sp) +/* 0404CC 7F00B99C 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 0404D0 7F00B9A0 3C118003 */ lui $s1, %hi(D_8002A96C) +/* 0404D4 7F00B9A4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0404D8 7F00B9A8 2631A96C */ addiu $s1, %lo(D_8002A96C) # addiu $s1, $s1, -0x5694 +/* 0404DC 7F00B9AC 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 0404E0 7F00B9B0 8E040000 */ lw $a0, ($s0) +.L7F00B9B4: +/* 0404E4 7F00B9B4 50800005 */ beql $a0, $zero, .L7F00B9CC +/* 0404E8 7F00B9B8 26100004 */ addiu $s0, $s0, 4 +/* 0404EC 7F00B9BC 0FC1B0FE */ jal set_aircraft_obj_inst_scale_to_zero +/* 0404F0 7F00B9C0 00000000 */ nop +/* 0404F4 7F00B9C4 AE000000 */ sw $zero, ($s0) +/* 0404F8 7F00B9C8 26100004 */ addiu $s0, $s0, 4 +.L7F00B9CC: +/* 0404FC 7F00B9CC 5611FFF9 */ bnel $s0, $s1, .L7F00B9B4 +/* 040500 7F00B9D0 8E040000 */ lw $a0, ($s0) +/* 040504 7F00B9D4 8FBF001C */ lw $ra, 0x1c($sp) +/* 040508 7F00B9D8 8FB00014 */ lw $s0, 0x14($sp) +/* 04050C 7F00B9DC 8FB10018 */ lw $s1, 0x18($sp) +/* 040510 7F00B9E0 03E00008 */ jr $ra +/* 040514 7F00B9E4 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +void *init_menu05_fileselect(void) +{ + s32 sp24; + s32 sp20; + void *temp_v0; + void *phi_v0; + + prev_keypresses = 0; + sp24 = 0x6e000; + sp20 = (s32) (ptr_logo_and_walletbond_DL + 0xa000); + if (selected_folder_num < 0) + { + selected_folder_num = 0; + } + tab_2_selected = 0; + tab_3_selected = 0; + folder_selected_for_deletion = -1; + folder_selected_for_deletion_choice = 1; + sub_GAME_7F008DE4(&sp20, &sp24); + load_walletbond(); + if (maybe_is_in_menu != 0) + { + musicTrack1Play(0x17); + maybe_is_in_menu = 0; + } + menu_timer = 0; + cheat_activated_1 = (u8)0; + cheat_activated_1 = (u8)0; + phi_v0 = &cheat_activated_2; +loop_5: + temp_v0 = phi_v0 + 4; + temp_v0->unk-3 = (u8)0; + temp_v0->unk-2 = (u8)0; + temp_v0->unk-1 = (u8)0; + temp_v0->unk-4 = (u8)0; + phi_v0 = temp_v0; + if (temp_v0 != &cheat_activated_74) + { + goto loop_5; + } + append_cheat_sp = 0; + append_cheat_mp = 0; + return temp_v0; +} +#else +GLOBAL_ASM( +.text +glabel init_menu05_fileselect +/* 040518 7F00B9E8 3C0F8003 */ lui $t7, %hi(ptr_logo_and_walletbond_DL) +/* 04051C 7F00B9EC 8DEFA950 */ lw $t7, %lo(ptr_logo_and_walletbond_DL)($t7) +/* 040520 7F00B9F0 3401A000 */ li $at, 40960 +/* 040524 7F00B9F4 3C028003 */ lui $v0, %hi(selected_folder_num) +/* 040528 7F00B9F8 01E1C021 */ addu $t8, $t7, $at +/* 04052C 7F00B9FC 3C018003 */ lui $at, %hi(prev_keypresses) +/* 040530 7F00BA00 2442A8E8 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x5718 +/* 040534 7F00BA04 AC20A934 */ sw $zero, %lo(prev_keypresses)($at) +/* 040538 7F00BA08 8C590000 */ lw $t9, ($v0) +/* 04053C 7F00BA0C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 040540 7F00BA10 3C0E0006 */ lui $t6, (0x0006E000 >> 16) # lui $t6, 6 +/* 040544 7F00BA14 35CEE000 */ ori $t6, (0x0006E000 & 0xFFFF) # ori $t6, $t6, 0xe000 +/* 040548 7F00BA18 AFBF0014 */ sw $ra, 0x14($sp) +/* 04054C 7F00BA1C AFAE0024 */ sw $t6, 0x24($sp) +/* 040550 7F00BA20 07210002 */ bgez $t9, .L7F00BA2C +/* 040554 7F00BA24 AFB80020 */ sw $t8, 0x20($sp) +/* 040558 7F00BA28 AC400000 */ sw $zero, ($v0) +.L7F00BA2C: +/* 04055C 7F00BA2C 3C018003 */ lui $at, %hi(tab_2_selected) +/* 040560 7F00BA30 AC20A8D4 */ sw $zero, %lo(tab_2_selected)($at) +/* 040564 7F00BA34 3C018003 */ lui $at, %hi(tab_3_selected) +/* 040568 7F00BA38 AC20A8D8 */ sw $zero, %lo(tab_3_selected)($at) +/* 04056C 7F00BA3C 3C018003 */ lui $at, %hi(folder_selected_for_deletion) +/* 040570 7F00BA40 2408FFFF */ li $t0, -1 +/* 040574 7F00BA44 AC28A91C */ sw $t0, %lo(folder_selected_for_deletion)($at) +/* 040578 7F00BA48 3C018003 */ lui $at, %hi(folder_selected_for_deletion_choice) +/* 04057C 7F00BA4C 24090001 */ li $t1, 1 +/* 040580 7F00BA50 AC29A920 */ sw $t1, %lo(folder_selected_for_deletion_choice)($at) +/* 040584 7F00BA54 27A40020 */ addiu $a0, $sp, 0x20 +/* 040588 7F00BA58 0FC02379 */ jal sub_GAME_7F008DE4 +/* 04058C 7F00BA5C 27A50024 */ addiu $a1, $sp, 0x24 +/* 040590 7F00BA60 0FC02E2B */ jal load_walletbond +/* 040594 7F00BA64 00000000 */ nop +/* 040598 7F00BA68 3C0A8003 */ lui $t2, %hi(maybe_is_in_menu) +/* 04059C 7F00BA6C 8D4AA93C */ lw $t2, %lo(maybe_is_in_menu)($t2) +/* 0405A0 7F00BA70 11400005 */ beqz $t2, .L7F00BA88 +/* 0405A4 7F00BA74 00000000 */ nop +/* 0405A8 7F00BA78 0C001B9F */ jal musicTrack1Play +/* 0405AC 7F00BA7C 24040017 */ li $a0, 23 +/* 0405B0 7F00BA80 3C018003 */ lui $at, %hi(maybe_is_in_menu) +/* 0405B4 7F00BA84 AC20A93C */ sw $zero, %lo(maybe_is_in_menu)($at) +.L7F00BA88: +/* 0405B8 7F00BA88 3C018003 */ lui $at, %hi(menu_timer) +/* 0405BC 7F00BA8C AC20A8CC */ sw $zero, %lo(menu_timer)($at) +/* 0405C0 7F00BA90 3C018007 */ lui $at, %hi(cheat_activated_1) +/* 0405C4 7F00BA94 3C028007 */ lui $v0, %hi(cheat_activated_2) +/* 0405C8 7F00BA98 3C038007 */ lui $v1, %hi(cheat_activated_74) +/* 0405CC 7F00BA9C 246396EB */ addiu $v1, %lo(cheat_activated_74) # addiu $v1, $v1, -0x6915 +/* 0405D0 7F00BAA0 244296A3 */ addiu $v0, %lo(cheat_activated_2) # addiu $v0, $v0, -0x695d +/* 0405D4 7F00BAA4 A02096A1 */ sb $zero, %lo(CHEAT_AVAILABLE_EXTRA_CHARS)($at) +/* 0405D8 7F00BAA8 A02096A2 */ sb $zero, %lo(cheat_activated_1)($at) +.L7F00BAAC: +/* 0405DC 7F00BAAC 24420004 */ addiu $v0, $v0, 4 +/* 0405E0 7F00BAB0 A040FFFD */ sb $zero, -3($v0) +/* 0405E4 7F00BAB4 A040FFFE */ sb $zero, -2($v0) +/* 0405E8 7F00BAB8 A040FFFF */ sb $zero, -1($v0) +/* 0405EC 7F00BABC 1443FFFB */ bne $v0, $v1, .L7F00BAAC +/* 0405F0 7F00BAC0 A040FFFC */ sb $zero, -4($v0) +/* 0405F4 7F00BAC4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0405F8 7F00BAC8 3C018003 */ lui $at, %hi(append_cheat_sp) +/* 0405FC 7F00BACC AC20A900 */ sw $zero, %lo(append_cheat_sp)($at) +/* 040600 7F00BAD0 3C018003 */ lui $at, %hi(append_cheat_mp) +/* 040604 7F00BAD4 AC20A904 */ sw $zero, %lo(append_cheat_mp)($at) +/* 040608 7F00BAD8 03E00008 */ jr $ra +/* 04060C 7F00BADC 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + +void update_menu05_filesel(void) { + if ((menu_update == 0) || (maybe_prev_menu == 0)) { + sub_GAME_7F00B990(); + } +} + + + + + +#ifdef NONMATCHING +s32 get_chapter_briefing_entry(s32 arg0) +{ + s32 temp_v1; + void *phi_v0; + s32 phi_v1; + + if (arg0 >= 0) + { + phi_v0 = (arg0 * 0x1c) + &mission_folder_setup_entries; + phi_v1 = arg0; +loop_2: + if (phi_v0->unk10 != 0) + { + return phi_v1; + } + temp_v1 = phi_v1 + -1; + phi_v0 = phi_v0 + -0x1c; + phi_v1 = temp_v1; + if (temp_v1 >= 0) + { + goto loop_2; + } + } + return -1; +} +#else +GLOBAL_ASM( +.text +glabel get_chapter_briefing_entry +/* 04064C 7F00BB1C 0480000F */ bltz $a0, .L7F00BB5C +/* 040650 7F00BB20 00801825 */ move $v1, $a0 +/* 040654 7F00BB24 000470C0 */ sll $t6, $a0, 3 +/* 040658 7F00BB28 01C47023 */ subu $t6, $t6, $a0 +/* 04065C 7F00BB2C 3C0F8003 */ lui $t7, %hi(mission_folder_setup_entries) +/* 040660 7F00BB30 25EFABE4 */ addiu $t7, %lo(mission_folder_setup_entries) # addiu $t7, $t7, -0x541c +/* 040664 7F00BB34 000E7080 */ sll $t6, $t6, 2 +/* 040668 7F00BB38 01CF1021 */ addu $v0, $t6, $t7 +.L7F00BB3C: +/* 04066C 7F00BB3C 8C580010 */ lw $t8, 0x10($v0) +/* 040670 7F00BB40 53000004 */ beql $t8, $zero, .L7F00BB54 +/* 040674 7F00BB44 2463FFFF */ addiu $v1, $v1, -1 +/* 040678 7F00BB48 03E00008 */ jr $ra +/* 04067C 7F00BB4C 00601025 */ move $v0, $v1 + +/* 040680 7F00BB50 2463FFFF */ addiu $v1, $v1, -1 +.L7F00BB54: +/* 040684 7F00BB54 0461FFF9 */ bgez $v1, .L7F00BB3C +/* 040688 7F00BB58 2442FFE4 */ addiu $v0, $v0, -0x1c +.L7F00BB5C: +/* 04068C 7F00BB5C 2402FFFF */ li $v0, -1 +/* 040690 7F00BB60 03E00008 */ jr $ra +/* 040694 7F00BB64 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void toggle_deletion_menu_for_folder(s32 arg0) +{ + f32 sp18; + + sub_GAME_7F077FF4((arg0 * 0xc) + &dword_CODE_bss_80069620, &sp18); + cursor_h_pos = (f32) (sp18 + -1.0f); + cursor_v_pos = (f32) (sp1C + 20.0f); +} +#else +GLOBAL_ASM( +.text +glabel toggle_deletion_menu_for_folder +/* 040698 7F00BB68 00047080 */ sll $t6, $a0, 2 +/* 04069C 7F00BB6C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0406A0 7F00BB70 01C47023 */ subu $t6, $t6, $a0 +/* 0406A4 7F00BB74 3C0F8007 */ lui $t7, %hi(dword_CODE_bss_80069620) +/* 0406A8 7F00BB78 AFBF0014 */ sw $ra, 0x14($sp) +/* 0406AC 7F00BB7C 25EF9620 */ addiu $t7, %lo(dword_CODE_bss_80069620) # addiu $t7, $t7, -0x69e0 +/* 0406B0 7F00BB80 000E7080 */ sll $t6, $t6, 2 +/* 0406B4 7F00BB84 01CF2021 */ addu $a0, $t6, $t7 +/* 0406B8 7F00BB88 0FC1DFFD */ jal sub_GAME_7F077FF4 +/* 0406BC 7F00BB8C 27A50018 */ addiu $a1, $sp, 0x18 +/* 0406C0 7F00BB90 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0406C4 7F00BB94 44813000 */ mtc1 $at, $f6 +/* 0406C8 7F00BB98 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 0406CC 7F00BB9C 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 0406D0 7F00BBA0 C7AA001C */ lwc1 $f10, 0x1c($sp) +/* 0406D4 7F00BBA4 46062200 */ add.s $f8, $f4, $f6 +/* 0406D8 7F00BBA8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0406DC 7F00BBAC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0406E0 7F00BBB0 E428A908 */ swc1 $f8, %lo(cursor_h_pos)($at) +/* 0406E4 7F00BBB4 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0406E8 7F00BBB8 44818000 */ mtc1 $at, $f16 +/* 0406EC 7F00BBBC 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 0406F0 7F00BBC0 46105480 */ add.s $f18, $f10, $f16 +/* 0406F4 7F00BBC4 03E00008 */ jr $ra +/* 0406F8 7F00BBC8 E432A90C */ swc1 $f18, %lo(cursor_v_pos)($at) +) +#endif + + + + + +#ifdef NONMATCHING +s32 interface_menu05_fileselect(void) +{ + s32 spC8; + s32 sp88; + s32 sp80; + s32 sp7C; + s32 sp78; + s32 sp74; + f32 sp6C; + f32 sp64; + s32 sp60; + s32 sp5C; + void *sp54; + s32 temp_ret; + s32 temp_s2; + s32 temp_s2_2; + void *temp_a0; + void *phi_s0; + void *phi_s1; + s32 phi_s2; + s32 phi_a0; + s32 phi_a0_2; + void *phi_s0_2; + void *phi_s1_2; + s32 phi_s2_2; + s32 phi_return; + + if (((((get_controller_buttons_pressed(0, 0xffff) != 0) || (get_cur_controller_horz_stick_pos(0) < -5)) || (get_cur_controller_horz_stick_pos(0) >= 6)) || (get_cur_controller_vert_stick_pos(0) < -5)) || (get_cur_controller_vert_stick_pos(0) >= 6)) + { + menu_timer = 0; + } + else + { + menu_timer = (s32) (menu_timer + clock_timer); + } + setvideo_far(0x42700000); + video_related_21(D_80051A1C); + set_page_height(0x42c80000, D_80051A20); + set_video2_settings_offset_24(0); + sp54 = &D_8002AB94; + phi_s0 = &ptr_folder_object_instance; + phi_s1 = &dword_CODE_bss_80069620; + phi_s2 = 0; +loop_8: + sub_GAME_7F059694(&spC8, 0, 0, 0x457a0000, 1.0f); + matrix_4x4_set_identity_and_position(sp54, &sp88); + matrix_scalar_multiply(D_80051A24, &sp88); + matrix_4x4_multiply_in_place(&spC8, &sp88); + (*phi_s0)->unkC = sub_GAME_7F0BD714((*phi_s0)->unk8->unkE << 6); + matrix_4x4_copy(&sp88, (*phi_s0)->unkC); + temp_a0 = *phi_s0; + phi_s1->unk0 = (f32) temp_a0->unkC->unk30; + phi_s1->unk4 = (f32) temp_a0->unkC->unk34; + phi_s1->unk8 = (f32) temp_a0->unkC->unk38; + disable_all_switches(temp_a0); + select_load_bond_picture(*phi_s0, removed_would_have_returned_bond_for_folder_num(phi_s2)); + set_item_visibility_in_objinstance(*phi_s0, 0xe, 1); + set_item_visibility_in_objinstance(*phi_s0, 0xd, 1); + temp_s2 = phi_s2 + 1; + sp54 = (void *) (sp54 + 0xc); + phi_s0 = phi_s0 + 4; + phi_s1 = phi_s1 + 0xc; + phi_s2 = temp_s2; + if (temp_s2 != 4) + { + goto loop_8; + } + if (selected_folder_num >= 0) + { + phi_a0 = selected_folder_num; + if (selected_folder_num == 0x64) + { + selected_folder_num = (s32) selected_folder_num_copy; + phi_a0 = selected_folder_num_copy; + } + if ((phi_a0 < 0) || (phi_a0 >= 4)) + { + selected_folder_num = 0; + phi_a0_2 = 0; + } + else + { + + } + toggle_deletion_menu_for_folder(phi_a0_2); + selected_folder_num = -1; + } + if (folder_selected_for_deletion >= 0) + { + if ((get_controller_buttons_pressed(0, 0x222) != 0) && (folder_selected_for_deletion_choice == 0)) + { + folder_selected_for_deletion_choice = 1; + play_sfx_a1(ptr_sfx_buf, 0x12, 0); + } + else + { + if (get_controller_buttons_pressed(0, 0x111) != 0) + { + if (folder_selected_for_deletion_choice != 0) + { + folder_selected_for_deletion_choice = 0; + play_sfx_a1(ptr_sfx_buf, 0x12, 0); + } + } + } + if ((get_cur_controller_horz_stick_pos(0) < -0x2d) && (*&folder_selected_for_deletion_choice == 0)) + { + *&folder_selected_for_deletion_choice = 1; + play_sfx_a1(ptr_sfx_buf, 0x12, 0); + } + else + { + if (get_cur_controller_horz_stick_pos(0) >= 0x2e) + { + if (*&folder_selected_for_deletion_choice != 0) + { + *&folder_selected_for_deletion_choice = 0; + play_sfx_a1(ptr_sfx_buf, 0x12, 0); + } + } + } + if (get_controller_buttons_pressed(0, 0xb000) != 0) + { + if (*&folder_selected_for_deletion_choice == 0) + { + delete_eeprom_folder(folder_selected_for_deletion, 0x76, 0); + play_sfx_a1(ptr_sfx_buf, 0x76, 0); + } + else + { + play_sfx_a1(ptr_sfx_buf, 0x76, 0); + } + folder_selected_for_deletion = -1; + phi_return = toggle_deletion_menu_for_folder(folder_selected_for_deletion); + } + else + { + temp_ret = get_controller_buttons_pressed(0, 0x4000); + phi_return = temp_ret; + if (temp_ret != 0) + { + toggle_deletion_menu_for_folder(folder_selected_for_deletion); + folder_selected_for_deletion = -1; + phi_return = play_sfx_a1(ptr_sfx_buf, 0x76, 0); + } + } + } + else + { + phi_s0_2 = 0x80030000 + -0x56a4; + phi_s1_2 = &dword_CODE_bss_80069620; + phi_s2_2 = 0; +loop_38: + sub_GAME_7F03F90C(*phi_s0_2, &sp80, &sp7C, &sp78, &sp74); + sub_GAME_7F03F948(phi_s1_2, &sp7C, &sp74, &sp6C, &sp64); + if (((((sp6C <= cursor_h_pos) && (cursor_h_pos <= sp64)) && (sp70 <= cursor_v_pos)) && (cursor_v_pos <= sp68)) && (get_controller_buttons_pressed(0, 0xb000) != 0)) + { + if (folder_selection_screen_option_icon == 0) + { + selected_folder_num = (s32) phi_s2_2; + play_sfx_a1(ptr_sfx_buf, 0x4d, 0); + } + else + { + if (folder_selection_screen_option_icon == 1) + { + sub_GAME_7F01EDA0(phi_s2_2); + folder_selection_screen_option_icon = 0; + play_sfx_a1(ptr_sfx_buf, 0x4f, 0); + } + else + { + if (folder_selection_screen_option_icon == 2) + { + if (sp60 >= 0) + { + if (sp5C >= 0) + { + folder_selected_for_deletion = (s32) phi_s2_2; + folder_selected_for_deletion_choice = 1; + } + } + folder_selection_screen_option_icon = 0; + play_sfx_a1(ptr_sfx_buf, 0x12, 0); + } + } + } + } + else + { + temp_s2_2 = phi_s2_2 + 1; + phi_s0_2 = phi_s0_2 + 4; + phi_s1_2 = phi_s1_2 + 0xc; + phi_s2_2 = temp_s2_2; + if (temp_s2_2 != 4) + { + goto loop_38; + } + } + if (get_controller_buttons_pressed(0, 0xb000) != 0) + { + if ((((folder_option_COPY_left_bound.unk0 <= cursor_h_pos) && (cursor_h_pos <= folder_option_COPY_left_bound.unk8)) && (folder_option_COPY_left_bound.unk4 <= cursor_v_pos)) && (cursor_v_pos <= folder_option_COPY_left_bound.unkC)) + { + *&folder_selection_screen_option_icon = 1; + play_sfx_a1(*&ptr_sfx_buf, 0xde, 0); + } + else + { + if ((((folder_option_ERASE_left_bound.unk0 <= cursor_h_pos) && (cursor_h_pos <= folder_option_ERASE_left_bound.unk8)) && (folder_option_ERASE_left_bound.unk4 <= cursor_v_pos)) && (cursor_v_pos <= folder_option_ERASE_left_bound.unkC)) + { + *&folder_selection_screen_option_icon = 2; + play_sfx_a1(*&ptr_sfx_buf, 0xde, 0); + } + else + { + if (*&folder_selection_screen_option_icon != 0) + { + *&folder_selection_screen_option_icon = 0; + play_sfx_a1(*&ptr_sfx_buf, 0x76, 0); + } + } + } + } + else + { + if (get_controller_buttons_pressed(0, 0x4000) != 0) + { + if (*&folder_selection_screen_option_icon != 0) + { + *&folder_selection_screen_option_icon = 0; + play_sfx_a1(*&ptr_sfx_buf, 0x76, 0); + } + } + } + phi_return = menu_control_stick_tracking(); + } + if (selected_folder_num >= 0) + { + set_menu_to_mode(MENU_MODE_SELECT, 0); + return set_menu_cursor_pos_to_setting(0); + } + if (menu_timer >= 0x709) + { + phi_return = set_menu_to_mode(MENU_LEGAL_SCREEN, 1); + } + return phi_return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051A1C +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_80051A20 +.word 0x461C4000 /* 10000.0;*/ +glabel D_80051A24 +.word 0x3EBD70A4 /* 0.37;*/ +.text +glabel interface_menu05_fileselect +/* 0406FC 7F00BBCC 27BDFEF0 */ addiu $sp, $sp, -0x110 +/* 040700 7F00BBD0 AFBF0044 */ sw $ra, 0x44($sp) +/* 040704 7F00BBD4 AFB30040 */ sw $s3, 0x40($sp) +/* 040708 7F00BBD8 AFB2003C */ sw $s2, 0x3c($sp) +/* 04070C 7F00BBDC AFB10038 */ sw $s1, 0x38($sp) +/* 040710 7F00BBE0 AFB00034 */ sw $s0, 0x34($sp) +/* 040714 7F00BBE4 F7B40028 */ sdc1 $f20, 0x28($sp) +/* 040718 7F00BBE8 00002025 */ move $a0, $zero +/* 04071C 7F00BBEC 0C0030EB */ jal get_controller_buttons_pressed +/* 040720 7F00BBF0 3405FFFF */ li $a1, 65535 +/* 040724 7F00BBF4 14400015 */ bnez $v0, .L7F00BC4C +/* 040728 7F00BBF8 00000000 */ nop +/* 04072C 7F00BBFC 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 040730 7F00BC00 00002025 */ move $a0, $zero +/* 040734 7F00BC04 2841FFFB */ slti $at, $v0, -5 +/* 040738 7F00BC08 14200010 */ bnez $at, .L7F00BC4C +/* 04073C 7F00BC0C 00000000 */ nop +/* 040740 7F00BC10 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 040744 7F00BC14 00002025 */ move $a0, $zero +/* 040748 7F00BC18 28410006 */ slti $at, $v0, 6 +/* 04074C 7F00BC1C 1020000B */ beqz $at, .L7F00BC4C +/* 040750 7F00BC20 00000000 */ nop +/* 040754 7F00BC24 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 040758 7F00BC28 00002025 */ move $a0, $zero +/* 04075C 7F00BC2C 2841FFFB */ slti $at, $v0, -5 +/* 040760 7F00BC30 14200006 */ bnez $at, .L7F00BC4C +/* 040764 7F00BC34 00000000 */ nop +/* 040768 7F00BC38 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 04076C 7F00BC3C 00002025 */ move $a0, $zero +/* 040770 7F00BC40 28410006 */ slti $at, $v0, 6 +/* 040774 7F00BC44 14200004 */ bnez $at, .L7F00BC58 +/* 040778 7F00BC48 3C0E8003 */ lui $t6, %hi(menu_timer) +.L7F00BC4C: +/* 04077C 7F00BC4C 3C018003 */ lui $at, %hi(menu_timer) +/* 040780 7F00BC50 10000007 */ b .L7F00BC70 +/* 040784 7F00BC54 AC20A8CC */ sw $zero, %lo(menu_timer)($at) +.L7F00BC58: +/* 040788 7F00BC58 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 04078C 7F00BC5C 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 040790 7F00BC60 8DCEA8CC */ lw $t6, %lo(menu_timer)($t6) +/* 040794 7F00BC64 3C018003 */ lui $at, %hi(menu_timer) +/* 040798 7F00BC68 01CFC021 */ addu $t8, $t6, $t7 +/* 04079C 7F00BC6C AC38A8CC */ sw $t8, %lo(menu_timer)($at) +.L7F00BC70: +/* 0407A0 7F00BC70 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0407A4 7F00BC74 44816000 */ mtc1 $at, $f12 +/* 0407A8 7F00BC78 0C001151 */ jal setvideo_far +/* 0407AC 7F00BC7C 00000000 */ nop +/* 0407B0 7F00BC80 3C018005 */ lui $at, %hi(D_80051A1C) +/* 0407B4 7F00BC84 0C001164 */ jal video_related_21 +/* 0407B8 7F00BC88 C42C1A1C */ lwc1 $f12, %lo(D_80051A1C)($at) +/* 0407BC 7F00BC8C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0407C0 7F00BC90 44816000 */ mtc1 $at, $f12 +/* 0407C4 7F00BC94 3C018005 */ lui $at, %hi(D_80051A20) +/* 0407C8 7F00BC98 0C001194 */ jal set_page_height +/* 0407CC 7F00BC9C C42E1A20 */ lwc1 $f14, %lo(D_80051A20)($at) +/* 0407D0 7F00BCA0 0C00114D */ jal set_video2_settings_offset_24 +/* 0407D4 7F00BCA4 00002025 */ move $a0, $zero +/* 0407D8 7F00BCA8 3C198003 */ lui $t9, %hi(D_8002AB94) +/* 0407DC 7F00BCAC 2739AB94 */ addiu $t9, %lo(D_8002AB94) # addiu $t9, $t9, -0x546c +/* 0407E0 7F00BCB0 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 0407E4 7F00BCB4 3C118007 */ lui $s1, %hi(dword_CODE_bss_80069620) +/* 0407E8 7F00BCB8 4480A000 */ mtc1 $zero, $f20 +/* 0407EC 7F00BCBC 26319620 */ addiu $s1, %lo(dword_CODE_bss_80069620) # addiu $s1, $s1, -0x69e0 +/* 0407F0 7F00BCC0 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 0407F4 7F00BCC4 AFB90054 */ sw $t9, 0x54($sp) +/* 0407F8 7F00BCC8 00009025 */ move $s2, $zero +/* 0407FC 7F00BCCC 27B30088 */ addiu $s3, $sp, 0x88 +.L7F00BCD0: +/* 040800 7F00BCD0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 040804 7F00BCD4 44812000 */ mtc1 $at, $f4 +/* 040808 7F00BCD8 4405A000 */ mfc1 $a1, $f20 +/* 04080C 7F00BCDC 4406A000 */ mfc1 $a2, $f20 +/* 040810 7F00BCE0 27A400C8 */ addiu $a0, $sp, 0xc8 +/* 040814 7F00BCE4 3C07457A */ lui $a3, 0x457a +/* 040818 7F00BCE8 E7B40010 */ swc1 $f20, 0x10($sp) +/* 04081C 7F00BCEC E7B40014 */ swc1 $f20, 0x14($sp) +/* 040820 7F00BCF0 E7B40018 */ swc1 $f20, 0x18($sp) +/* 040824 7F00BCF4 E7B4001C */ swc1 $f20, 0x1c($sp) +/* 040828 7F00BCF8 E7B40024 */ swc1 $f20, 0x24($sp) +/* 04082C 7F00BCFC 0FC165A5 */ jal sub_GAME_7F059694 +/* 040830 7F00BD00 E7A40020 */ swc1 $f4, 0x20($sp) +/* 040834 7F00BD04 8FA40054 */ lw $a0, 0x54($sp) +/* 040838 7F00BD08 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 04083C 7F00BD0C 02602825 */ move $a1, $s3 +/* 040840 7F00BD10 3C018005 */ lui $at, %hi(D_80051A24) +/* 040844 7F00BD14 C42C1A24 */ lwc1 $f12, %lo(D_80051A24)($at) +/* 040848 7F00BD18 0FC1629F */ jal matrix_scalar_multiply +/* 04084C 7F00BD1C 02602825 */ move $a1, $s3 +/* 040850 7F00BD20 27A400C8 */ addiu $a0, $sp, 0xc8 +/* 040854 7F00BD24 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 040858 7F00BD28 02602825 */ move $a1, $s3 +/* 04085C 7F00BD2C 8E080000 */ lw $t0, ($s0) +/* 040860 7F00BD30 8D090008 */ lw $t1, 8($t0) +/* 040864 7F00BD34 8524000E */ lh $a0, 0xe($t1) +/* 040868 7F00BD38 00045180 */ sll $t2, $a0, 6 +/* 04086C 7F00BD3C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 040870 7F00BD40 01402025 */ move $a0, $t2 +/* 040874 7F00BD44 8E0B0000 */ lw $t3, ($s0) +/* 040878 7F00BD48 02602025 */ move $a0, $s3 +/* 04087C 7F00BD4C AD62000C */ sw $v0, 0xc($t3) +/* 040880 7F00BD50 8E0C0000 */ lw $t4, ($s0) +/* 040884 7F00BD54 0FC16008 */ jal matrix_4x4_copy +/* 040888 7F00BD58 8D85000C */ lw $a1, 0xc($t4) +/* 04088C 7F00BD5C 8E040000 */ lw $a0, ($s0) +/* 040890 7F00BD60 8C8D000C */ lw $t5, 0xc($a0) +/* 040894 7F00BD64 C5A60030 */ lwc1 $f6, 0x30($t5) +/* 040898 7F00BD68 E6260000 */ swc1 $f6, ($s1) +/* 04089C 7F00BD6C 8C8E000C */ lw $t6, 0xc($a0) +/* 0408A0 7F00BD70 C5C80034 */ lwc1 $f8, 0x34($t6) +/* 0408A4 7F00BD74 E6280004 */ swc1 $f8, 4($s1) +/* 0408A8 7F00BD78 8C8F000C */ lw $t7, 0xc($a0) +/* 0408AC 7F00BD7C C5EA0038 */ lwc1 $f10, 0x38($t7) +/* 0408B0 7F00BD80 0FC02DC9 */ jal disable_all_switches +/* 0408B4 7F00BD84 E62A0008 */ swc1 $f10, 8($s1) +/* 0408B8 7F00BD88 0FC07AF0 */ jal removed_would_have_returned_bond_for_folder_num +/* 0408BC 7F00BD8C 02402025 */ move $a0, $s2 +/* 0408C0 7F00BD90 8E040000 */ lw $a0, ($s0) +/* 0408C4 7F00BD94 0FC02E02 */ jal select_load_bond_picture +/* 0408C8 7F00BD98 00402825 */ move $a1, $v0 +/* 0408CC 7F00BD9C 8E040000 */ lw $a0, ($s0) +/* 0408D0 7F00BDA0 2405000E */ li $a1, 14 +/* 0408D4 7F00BDA4 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 0408D8 7F00BDA8 24060001 */ li $a2, 1 +/* 0408DC 7F00BDAC 8E040000 */ lw $a0, ($s0) +/* 0408E0 7F00BDB0 2405000D */ li $a1, 13 +/* 0408E4 7F00BDB4 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 0408E8 7F00BDB8 24060001 */ li $a2, 1 +/* 0408EC 7F00BDBC 8FB80054 */ lw $t8, 0x54($sp) +/* 0408F0 7F00BDC0 26520001 */ addiu $s2, $s2, 1 +/* 0408F4 7F00BDC4 24010004 */ li $at, 4 +/* 0408F8 7F00BDC8 2719000C */ addiu $t9, $t8, 0xc +/* 0408FC 7F00BDCC AFB90054 */ sw $t9, 0x54($sp) +/* 040900 7F00BDD0 26100004 */ addiu $s0, $s0, 4 +/* 040904 7F00BDD4 1641FFBE */ bne $s2, $at, .L7F00BCD0 +/* 040908 7F00BDD8 2631000C */ addiu $s1, $s1, 0xc +/* 04090C 7F00BDDC 3C028003 */ lui $v0, %hi(selected_folder_num) +/* 040910 7F00BDE0 2442A8E8 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x5718 +/* 040914 7F00BDE4 8C440000 */ lw $a0, ($v0) +/* 040918 7F00BDE8 24010064 */ li $at, 100 +/* 04091C 7F00BDEC 04800010 */ bltz $a0, .L7F00BE30 +/* 040920 7F00BDF0 00000000 */ nop +/* 040924 7F00BDF4 14810003 */ bne $a0, $at, .L7F00BE04 +/* 040928 7F00BDF8 3C088003 */ lui $t0, %hi(selected_folder_num_copy) +/* 04092C 7F00BDFC 8D04A8EC */ lw $a0, %lo(selected_folder_num_copy)($t0) +/* 040930 7F00BE00 AC440000 */ sw $a0, ($v0) +.L7F00BE04: +/* 040934 7F00BE04 04800003 */ bltz $a0, .L7F00BE14 +/* 040938 7F00BE08 28810004 */ slti $at, $a0, 4 +/* 04093C 7F00BE0C 14200003 */ bnez $at, .L7F00BE1C +/* 040940 7F00BE10 00000000 */ nop +.L7F00BE14: +/* 040944 7F00BE14 AC400000 */ sw $zero, ($v0) +/* 040948 7F00BE18 00002025 */ move $a0, $zero +.L7F00BE1C: +/* 04094C 7F00BE1C 0FC02EDA */ jal toggle_deletion_menu_for_folder +/* 040950 7F00BE20 00000000 */ nop +/* 040954 7F00BE24 2411FFFF */ li $s1, -1 +/* 040958 7F00BE28 3C018003 */ lui $at, %hi(selected_folder_num) +/* 04095C 7F00BE2C AC31A8E8 */ sw $s1, %lo(selected_folder_num)($at) +.L7F00BE30: +/* 040960 7F00BE30 3C098003 */ lui $t1, %hi(folder_selected_for_deletion) +/* 040964 7F00BE34 8D29A91C */ lw $t1, %lo(folder_selected_for_deletion)($t1) +/* 040968 7F00BE38 2411FFFF */ li $s1, -1 +/* 04096C 7F00BE3C 00009025 */ move $s2, $zero +/* 040970 7F00BE40 0520006A */ bltz $t1, .L7F00BFEC +/* 040974 7F00BE44 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 040978 7F00BE48 00002025 */ move $a0, $zero +/* 04097C 7F00BE4C 0C0030EB */ jal get_controller_buttons_pressed +/* 040980 7F00BE50 24050222 */ li $a1, 546 +/* 040984 7F00BE54 1040000E */ beqz $v0, .L7F00BE90 +/* 040988 7F00BE58 3C108003 */ lui $s0, %hi(folder_selected_for_deletion_choice) +/* 04098C 7F00BE5C 2610A920 */ addiu $s0, %lo(folder_selected_for_deletion_choice) # addiu $s0, $s0, -0x56e0 +/* 040990 7F00BE60 8E0A0000 */ lw $t2, ($s0) +/* 040994 7F00BE64 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040998 7F00BE68 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 04099C 7F00BE6C 15400008 */ bnez $t2, .L7F00BE90 +/* 0409A0 7F00BE70 240B0001 */ li $t3, 1 +/* 0409A4 7F00BE74 AE0B0000 */ sw $t3, ($s0) +/* 0409A8 7F00BE78 8E640000 */ lw $a0, ($s3) +/* 0409AC 7F00BE7C 24050012 */ li $a1, 18 +/* 0409B0 7F00BE80 0C002382 */ jal play_sfx_a1 +/* 0409B4 7F00BE84 00003025 */ move $a2, $zero +/* 0409B8 7F00BE88 10000011 */ b .L7F00BED0 +/* 0409BC 7F00BE8C 00000000 */ nop +.L7F00BE90: +/* 0409C0 7F00BE90 3C108003 */ lui $s0, %hi(folder_selected_for_deletion_choice) +/* 0409C4 7F00BE94 2610A920 */ addiu $s0, %lo(folder_selected_for_deletion_choice) # addiu $s0, $s0, -0x56e0 +/* 0409C8 7F00BE98 00002025 */ move $a0, $zero +/* 0409CC 7F00BE9C 0C0030EB */ jal get_controller_buttons_pressed +/* 0409D0 7F00BEA0 24050111 */ li $a1, 273 +/* 0409D4 7F00BEA4 1040000A */ beqz $v0, .L7F00BED0 +/* 0409D8 7F00BEA8 00000000 */ nop +/* 0409DC 7F00BEAC 8E0C0000 */ lw $t4, ($s0) +/* 0409E0 7F00BEB0 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 0409E4 7F00BEB4 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 0409E8 7F00BEB8 11800005 */ beqz $t4, .L7F00BED0 +/* 0409EC 7F00BEBC 24050012 */ li $a1, 18 +/* 0409F0 7F00BEC0 AE000000 */ sw $zero, ($s0) +/* 0409F4 7F00BEC4 8E640000 */ lw $a0, ($s3) +/* 0409F8 7F00BEC8 0C002382 */ jal play_sfx_a1 +/* 0409FC 7F00BECC 00003025 */ move $a2, $zero +.L7F00BED0: +/* 040A00 7F00BED0 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040A04 7F00BED4 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040A08 7F00BED8 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 040A0C 7F00BEDC 00002025 */ move $a0, $zero +/* 040A10 7F00BEE0 2841FFD3 */ slti $at, $v0, -0x2d +/* 040A14 7F00BEE4 1020000B */ beqz $at, .L7F00BF14 +/* 040A18 7F00BEE8 00000000 */ nop +/* 040A1C 7F00BEEC 8E0D0000 */ lw $t5, ($s0) +/* 040A20 7F00BEF0 240E0001 */ li $t6, 1 +/* 040A24 7F00BEF4 24050012 */ li $a1, 18 +/* 040A28 7F00BEF8 15A00006 */ bnez $t5, .L7F00BF14 +/* 040A2C 7F00BEFC 00003025 */ move $a2, $zero +/* 040A30 7F00BF00 AE0E0000 */ sw $t6, ($s0) +/* 040A34 7F00BF04 0C002382 */ jal play_sfx_a1 +/* 040A38 7F00BF08 8E640000 */ lw $a0, ($s3) +/* 040A3C 7F00BF0C 1000000F */ b .L7F00BF4C +/* 040A40 7F00BF10 00002025 */ move $a0, $zero +.L7F00BF14: +/* 040A44 7F00BF14 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 040A48 7F00BF18 00002025 */ move $a0, $zero +/* 040A4C 7F00BF1C 2841002E */ slti $at, $v0, 0x2e +/* 040A50 7F00BF20 5420000A */ bnezl $at, .L7F00BF4C +/* 040A54 7F00BF24 00002025 */ move $a0, $zero +/* 040A58 7F00BF28 8E0F0000 */ lw $t7, ($s0) +/* 040A5C 7F00BF2C 24050012 */ li $a1, 18 +/* 040A60 7F00BF30 00003025 */ move $a2, $zero +/* 040A64 7F00BF34 51E00005 */ beql $t7, $zero, .L7F00BF4C +/* 040A68 7F00BF38 00002025 */ move $a0, $zero +/* 040A6C 7F00BF3C AE000000 */ sw $zero, ($s0) +/* 040A70 7F00BF40 0C002382 */ jal play_sfx_a1 +/* 040A74 7F00BF44 8E640000 */ lw $a0, ($s3) +/* 040A78 7F00BF48 00002025 */ move $a0, $zero +.L7F00BF4C: +/* 040A7C 7F00BF4C 0C0030EB */ jal get_controller_buttons_pressed +/* 040A80 7F00BF50 3405B000 */ li $a1, 45056 +/* 040A84 7F00BF54 50400017 */ beql $v0, $zero, .L7F00BFB4 +/* 040A88 7F00BF58 00002025 */ move $a0, $zero +/* 040A8C 7F00BF5C 8E180000 */ lw $t8, ($s0) +/* 040A90 7F00BF60 3C048003 */ lui $a0, %hi(folder_selected_for_deletion) +/* 040A94 7F00BF64 24050076 */ li $a1, 118 +/* 040A98 7F00BF68 17000009 */ bnez $t8, .L7F00BF90 +/* 040A9C 7F00BF6C 00003025 */ move $a2, $zero +/* 040AA0 7F00BF70 0FC07B01 */ jal delete_eeprom_folder +/* 040AA4 7F00BF74 8C84A91C */ lw $a0, %lo(folder_selected_for_deletion)($a0) +/* 040AA8 7F00BF78 8E640000 */ lw $a0, ($s3) +/* 040AAC 7F00BF7C 24050076 */ li $a1, 118 +/* 040AB0 7F00BF80 0C002382 */ jal play_sfx_a1 +/* 040AB4 7F00BF84 00003025 */ move $a2, $zero +/* 040AB8 7F00BF88 10000003 */ b .L7F00BF98 +/* 040ABC 7F00BF8C 00000000 */ nop +.L7F00BF90: +/* 040AC0 7F00BF90 0C002382 */ jal play_sfx_a1 +/* 040AC4 7F00BF94 8E640000 */ lw $a0, ($s3) +.L7F00BF98: +/* 040AC8 7F00BF98 3C048003 */ lui $a0, %hi(folder_selected_for_deletion) +/* 040ACC 7F00BF9C 0FC02EDA */ jal toggle_deletion_menu_for_folder +/* 040AD0 7F00BFA0 8C84A91C */ lw $a0, %lo(folder_selected_for_deletion)($a0) +/* 040AD4 7F00BFA4 3C018003 */ lui $at, %hi(folder_selected_for_deletion) +/* 040AD8 7F00BFA8 100000DC */ b .L7F00C31C +/* 040ADC 7F00BFAC AC31A91C */ sw $s1, %lo(folder_selected_for_deletion)($at) +/* 040AE0 7F00BFB0 00002025 */ move $a0, $zero +.L7F00BFB4: +/* 040AE4 7F00BFB4 0C0030EB */ jal get_controller_buttons_pressed +/* 040AE8 7F00BFB8 24054000 */ li $a1, 16384 +/* 040AEC 7F00BFBC 104000D7 */ beqz $v0, .L7F00C31C +/* 040AF0 7F00BFC0 3C048003 */ lui $a0, %hi(folder_selected_for_deletion) +/* 040AF4 7F00BFC4 0FC02EDA */ jal toggle_deletion_menu_for_folder +/* 040AF8 7F00BFC8 8C84A91C */ lw $a0, %lo(folder_selected_for_deletion)($a0) +/* 040AFC 7F00BFCC 3C018003 */ lui $at, %hi(folder_selected_for_deletion) +/* 040B00 7F00BFD0 AC31A91C */ sw $s1, %lo(folder_selected_for_deletion)($at) +/* 040B04 7F00BFD4 8E640000 */ lw $a0, ($s3) +/* 040B08 7F00BFD8 24050076 */ li $a1, 118 +/* 040B0C 7F00BFDC 0C002382 */ jal play_sfx_a1 +/* 040B10 7F00BFE0 00003025 */ move $a2, $zero +/* 040B14 7F00BFE4 100000CD */ b .L7F00C31C +/* 040B18 7F00BFE8 00000000 */ nop +.L7F00BFEC: +/* 040B1C 7F00BFEC 3C118007 */ lui $s1, %hi(dword_CODE_bss_80069620) +/* 040B20 7F00BFF0 26319620 */ addiu $s1, %lo(dword_CODE_bss_80069620) # addiu $s1, $s1, -0x69e0 +/* 040B24 7F00BFF4 2610A95C */ addiu $s0, $s0, %lo(ptr_folder_object_instance) +/* 040B28 7F00BFF8 27B3007C */ addiu $s3, $sp, 0x7c +.L7F00BFFC: +/* 040B2C 7F00BFFC 27B90074 */ addiu $t9, $sp, 0x74 +/* 040B30 7F00C000 AFB90010 */ sw $t9, 0x10($sp) +/* 040B34 7F00C004 8E040000 */ lw $a0, ($s0) +/* 040B38 7F00C008 27A50080 */ addiu $a1, $sp, 0x80 +/* 040B3C 7F00C00C 02603025 */ move $a2, $s3 +/* 040B40 7F00C010 0FC0FE43 */ jal sub_GAME_7F03F90C +/* 040B44 7F00C014 27A70078 */ addiu $a3, $sp, 0x78 +/* 040B48 7F00C018 27A80064 */ addiu $t0, $sp, 0x64 +/* 040B4C 7F00C01C AFA80010 */ sw $t0, 0x10($sp) +/* 040B50 7F00C020 02202025 */ move $a0, $s1 +/* 040B54 7F00C024 02602825 */ move $a1, $s3 +/* 040B58 7F00C028 27A60074 */ addiu $a2, $sp, 0x74 +/* 040B5C 7F00C02C 0FC0FE52 */ jal sub_GAME_7F03F948 +/* 040B60 7F00C030 27A7006C */ addiu $a3, $sp, 0x6c +/* 040B64 7F00C034 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 040B68 7F00C038 C422A908 */ lwc1 $f2, %lo(cursor_h_pos)($at) +/* 040B6C 7F00C03C C7B0006C */ lwc1 $f16, 0x6c($sp) +/* 040B70 7F00C040 C7B20064 */ lwc1 $f18, 0x64($sp) +/* 040B74 7F00C044 4602803E */ c.le.s $f16, $f2 +/* 040B78 7F00C048 00000000 */ nop +/* 040B7C 7F00C04C 4502004E */ bc1fl .L7F00C188 +/* 040B80 7F00C050 26520001 */ addiu $s2, $s2, 1 +/* 040B84 7F00C054 4612103E */ c.le.s $f2, $f18 +/* 040B88 7F00C058 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 040B8C 7F00C05C C7A40070 */ lwc1 $f4, 0x70($sp) +/* 040B90 7F00C060 45020049 */ bc1fl .L7F00C188 +/* 040B94 7F00C064 26520001 */ addiu $s2, $s2, 1 +/* 040B98 7F00C068 C420A90C */ lwc1 $f0, %lo(cursor_v_pos)($at) +/* 040B9C 7F00C06C C7A60068 */ lwc1 $f6, 0x68($sp) +/* 040BA0 7F00C070 4600203E */ c.le.s $f4, $f0 +/* 040BA4 7F00C074 00000000 */ nop +/* 040BA8 7F00C078 45020043 */ bc1fl .L7F00C188 +/* 040BAC 7F00C07C 26520001 */ addiu $s2, $s2, 1 +/* 040BB0 7F00C080 4606003E */ c.le.s $f0, $f6 +/* 040BB4 7F00C084 02402025 */ move $a0, $s2 +/* 040BB8 7F00C088 27A50060 */ addiu $a1, $sp, 0x60 +/* 040BBC 7F00C08C 4502003E */ bc1fl .L7F00C188 +/* 040BC0 7F00C090 26520001 */ addiu $s2, $s2, 1 +/* 040BC4 7F00C094 0FC07A1D */ jal get_highest_stage_difficulty_completed_in_folder +/* 040BC8 7F00C098 27A6005C */ addiu $a2, $sp, 0x5c +/* 040BCC 7F00C09C 00002025 */ move $a0, $zero +/* 040BD0 7F00C0A0 0C0030EB */ jal get_controller_buttons_pressed +/* 040BD4 7F00C0A4 3405B000 */ li $a1, 45056 +/* 040BD8 7F00C0A8 50400037 */ beql $v0, $zero, .L7F00C188 +/* 040BDC 7F00C0AC 26520001 */ addiu $s2, $s2, 1 +/* 040BE0 7F00C0B0 3C118003 */ lui $s1, %hi(folder_selection_screen_option_icon) +/* 040BE4 7F00C0B4 2631A918 */ addiu $s1, %lo(folder_selection_screen_option_icon) # addiu $s1, $s1, -0x56e8 +/* 040BE8 7F00C0B8 8E220000 */ lw $v0, ($s1) +/* 040BEC 7F00C0BC 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040BF0 7F00C0C0 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040BF4 7F00C0C4 14400009 */ bnez $v0, .L7F00C0EC +/* 040BF8 7F00C0C8 3C018003 */ lui $at, %hi(selected_folder_num) +/* 040BFC 7F00C0CC AC32A8E8 */ sw $s2, %lo(selected_folder_num)($at) +/* 040C00 7F00C0D0 8E640000 */ lw $a0, ($s3) +/* 040C04 7F00C0D4 2405004D */ li $a1, 77 +/* 040C08 7F00C0D8 0C002382 */ jal play_sfx_a1 +/* 040C0C 7F00C0DC 00003025 */ move $a2, $zero +/* 040C10 7F00C0E0 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040C14 7F00C0E4 10000030 */ b .L7F00C1A8 +/* 040C18 7F00C0E8 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +.L7F00C0EC: +/* 040C1C 7F00C0EC 24010001 */ li $at, 1 +/* 040C20 7F00C0F0 5441000E */ bnel $v0, $at, .L7F00C12C +/* 040C24 7F00C0F4 24010002 */ li $at, 2 +/* 040C28 7F00C0F8 0FC07B68 */ jal sub_GAME_7F01EDA0 +/* 040C2C 7F00C0FC 02402025 */ move $a0, $s2 +/* 040C30 7F00C100 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040C34 7F00C104 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040C38 7F00C108 AE200000 */ sw $zero, ($s1) +/* 040C3C 7F00C10C 8E640000 */ lw $a0, ($s3) +/* 040C40 7F00C110 2405004F */ li $a1, 79 +/* 040C44 7F00C114 0C002382 */ jal play_sfx_a1 +/* 040C48 7F00C118 00003025 */ move $a2, $zero +/* 040C4C 7F00C11C 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040C50 7F00C120 10000021 */ b .L7F00C1A8 +/* 040C54 7F00C124 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040C58 7F00C128 24010002 */ li $at, 2 +.L7F00C12C: +/* 040C5C 7F00C12C 14410012 */ bne $v0, $at, .L7F00C178 +/* 040C60 7F00C130 00000000 */ nop +/* 040C64 7F00C134 8FA90060 */ lw $t1, 0x60($sp) +/* 040C68 7F00C138 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040C6C 7F00C13C 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040C70 7F00C140 05200009 */ bltz $t1, .L7F00C168 +/* 040C74 7F00C144 24050012 */ li $a1, 18 +/* 040C78 7F00C148 8FAA005C */ lw $t2, 0x5c($sp) +/* 040C7C 7F00C14C 3C108003 */ lui $s0, %hi(folder_selected_for_deletion_choice) +/* 040C80 7F00C150 2610A920 */ addiu $s0, %lo(folder_selected_for_deletion_choice) # addiu $s0, $s0, -0x56e0 +/* 040C84 7F00C154 05400004 */ bltz $t2, .L7F00C168 +/* 040C88 7F00C158 3C018003 */ lui $at, %hi(folder_selected_for_deletion) +/* 040C8C 7F00C15C AC32A91C */ sw $s2, %lo(folder_selected_for_deletion)($at) +/* 040C90 7F00C160 240B0001 */ li $t3, 1 +/* 040C94 7F00C164 AE0B0000 */ sw $t3, ($s0) +.L7F00C168: +/* 040C98 7F00C168 AE200000 */ sw $zero, ($s1) +/* 040C9C 7F00C16C 8E640000 */ lw $a0, ($s3) +/* 040CA0 7F00C170 0C002382 */ jal play_sfx_a1 +/* 040CA4 7F00C174 00003025 */ move $a2, $zero +.L7F00C178: +/* 040CA8 7F00C178 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040CAC 7F00C17C 1000000A */ b .L7F00C1A8 +/* 040CB0 7F00C180 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040CB4 7F00C184 26520001 */ addiu $s2, $s2, 1 +.L7F00C188: +/* 040CB8 7F00C188 24010004 */ li $at, 4 +/* 040CBC 7F00C18C 26100004 */ addiu $s0, $s0, 4 +/* 040CC0 7F00C190 1641FF9A */ bne $s2, $at, .L7F00BFFC +/* 040CC4 7F00C194 2631000C */ addiu $s1, $s1, 0xc +/* 040CC8 7F00C198 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040CCC 7F00C19C 3C118003 */ lui $s1, %hi(folder_selection_screen_option_icon) +/* 040CD0 7F00C1A0 2631A918 */ addiu $s1, %lo(folder_selection_screen_option_icon) # addiu $s1, $s1, -0x56e8 +/* 040CD4 7F00C1A4 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +.L7F00C1A8: +/* 040CD8 7F00C1A8 00002025 */ move $a0, $zero +/* 040CDC 7F00C1AC 0C0030EB */ jal get_controller_buttons_pressed +/* 040CE0 7F00C1B0 3405B000 */ li $a1, 45056 +/* 040CE4 7F00C1B4 1040004A */ beqz $v0, .L7F00C2E0 +/* 040CE8 7F00C1B8 3C028003 */ lui $v0, %hi(folder_option_COPY_left_bound) +/* 040CEC 7F00C1BC 2442ABC4 */ addiu $v0, %lo(folder_option_COPY_left_bound) # addiu $v0, $v0, -0x543c +/* 040CF0 7F00C1C0 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 040CF4 7F00C1C4 C422A908 */ lwc1 $f2, %lo(cursor_h_pos)($at) +/* 040CF8 7F00C1C8 C4480000 */ lwc1 $f8, ($v0) +/* 040CFC 7F00C1CC 4602403E */ c.le.s $f8, $f2 +/* 040D00 7F00C1D0 00000000 */ nop +/* 040D04 7F00C1D4 45000019 */ bc1f .L7F00C23C +/* 040D08 7F00C1D8 00000000 */ nop +/* 040D0C 7F00C1DC C44A0008 */ lwc1 $f10, 8($v0) +/* 040D10 7F00C1E0 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 040D14 7F00C1E4 460A103E */ c.le.s $f2, $f10 +/* 040D18 7F00C1E8 00000000 */ nop +/* 040D1C 7F00C1EC 45000013 */ bc1f .L7F00C23C +/* 040D20 7F00C1F0 00000000 */ nop +/* 040D24 7F00C1F4 C420A90C */ lwc1 $f0, %lo(cursor_v_pos)($at) +/* 040D28 7F00C1F8 C4500004 */ lwc1 $f16, 4($v0) +/* 040D2C 7F00C1FC 4600803E */ c.le.s $f16, $f0 +/* 040D30 7F00C200 00000000 */ nop +/* 040D34 7F00C204 4500000D */ bc1f .L7F00C23C +/* 040D38 7F00C208 00000000 */ nop +/* 040D3C 7F00C20C C452000C */ lwc1 $f18, 0xc($v0) +/* 040D40 7F00C210 240C0001 */ li $t4, 1 +/* 040D44 7F00C214 240500DE */ li $a1, 222 +/* 040D48 7F00C218 4612003E */ c.le.s $f0, $f18 +/* 040D4C 7F00C21C 00003025 */ move $a2, $zero +/* 040D50 7F00C220 45000006 */ bc1f .L7F00C23C +/* 040D54 7F00C224 00000000 */ nop +/* 040D58 7F00C228 AE2C0000 */ sw $t4, ($s1) +/* 040D5C 7F00C22C 0C002382 */ jal play_sfx_a1 +/* 040D60 7F00C230 8E640000 */ lw $a0, ($s3) +/* 040D64 7F00C234 10000037 */ b .L7F00C314 +/* 040D68 7F00C238 00000000 */ nop +.L7F00C23C: +/* 040D6C 7F00C23C 3C028003 */ lui $v0, %hi(folder_option_ERASE_left_bound) +/* 040D70 7F00C240 2442ABD4 */ addiu $v0, %lo(folder_option_ERASE_left_bound) # addiu $v0, $v0, -0x542c +/* 040D74 7F00C244 C4440000 */ lwc1 $f4, ($v0) +/* 040D78 7F00C248 4602203E */ c.le.s $f4, $f2 +/* 040D7C 7F00C24C 00000000 */ nop +/* 040D80 7F00C250 4502001A */ bc1fl .L7F00C2BC +/* 040D84 7F00C254 8E2E0000 */ lw $t6, ($s1) +/* 040D88 7F00C258 C4460008 */ lwc1 $f6, 8($v0) +/* 040D8C 7F00C25C 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 040D90 7F00C260 4606103E */ c.le.s $f2, $f6 +/* 040D94 7F00C264 00000000 */ nop +/* 040D98 7F00C268 45020014 */ bc1fl .L7F00C2BC +/* 040D9C 7F00C26C 8E2E0000 */ lw $t6, ($s1) +/* 040DA0 7F00C270 C420A90C */ lwc1 $f0, %lo(cursor_v_pos)($at) +/* 040DA4 7F00C274 C4480004 */ lwc1 $f8, 4($v0) +/* 040DA8 7F00C278 4600403E */ c.le.s $f8, $f0 +/* 040DAC 7F00C27C 00000000 */ nop +/* 040DB0 7F00C280 4502000E */ bc1fl .L7F00C2BC +/* 040DB4 7F00C284 8E2E0000 */ lw $t6, ($s1) +/* 040DB8 7F00C288 C44A000C */ lwc1 $f10, 0xc($v0) +/* 040DBC 7F00C28C 240D0002 */ li $t5, 2 +/* 040DC0 7F00C290 240500DE */ li $a1, 222 +/* 040DC4 7F00C294 460A003E */ c.le.s $f0, $f10 +/* 040DC8 7F00C298 00003025 */ move $a2, $zero +/* 040DCC 7F00C29C 45020007 */ bc1fl .L7F00C2BC +/* 040DD0 7F00C2A0 8E2E0000 */ lw $t6, ($s1) +/* 040DD4 7F00C2A4 AE2D0000 */ sw $t5, ($s1) +/* 040DD8 7F00C2A8 0C002382 */ jal play_sfx_a1 +/* 040DDC 7F00C2AC 8E640000 */ lw $a0, ($s3) +/* 040DE0 7F00C2B0 10000018 */ b .L7F00C314 +/* 040DE4 7F00C2B4 00000000 */ nop +/* 040DE8 7F00C2B8 8E2E0000 */ lw $t6, ($s1) +.L7F00C2BC: +/* 040DEC 7F00C2BC 24050076 */ li $a1, 118 +/* 040DF0 7F00C2C0 00003025 */ move $a2, $zero +/* 040DF4 7F00C2C4 11C00013 */ beqz $t6, .L7F00C314 +/* 040DF8 7F00C2C8 00000000 */ nop +/* 040DFC 7F00C2CC AE200000 */ sw $zero, ($s1) +/* 040E00 7F00C2D0 0C002382 */ jal play_sfx_a1 +/* 040E04 7F00C2D4 8E640000 */ lw $a0, ($s3) +/* 040E08 7F00C2D8 1000000E */ b .L7F00C314 +/* 040E0C 7F00C2DC 00000000 */ nop +.L7F00C2E0: +/* 040E10 7F00C2E0 00002025 */ move $a0, $zero +/* 040E14 7F00C2E4 0C0030EB */ jal get_controller_buttons_pressed +/* 040E18 7F00C2E8 24054000 */ li $a1, 16384 +/* 040E1C 7F00C2EC 10400009 */ beqz $v0, .L7F00C314 +/* 040E20 7F00C2F0 00000000 */ nop +/* 040E24 7F00C2F4 8E2F0000 */ lw $t7, ($s1) +/* 040E28 7F00C2F8 24050076 */ li $a1, 118 +/* 040E2C 7F00C2FC 00003025 */ move $a2, $zero +/* 040E30 7F00C300 11E00004 */ beqz $t7, .L7F00C314 +/* 040E34 7F00C304 00000000 */ nop +/* 040E38 7F00C308 AE200000 */ sw $zero, ($s1) +/* 040E3C 7F00C30C 0C002382 */ jal play_sfx_a1 +/* 040E40 7F00C310 8E640000 */ lw $a0, ($s3) +.L7F00C314: +/* 040E44 7F00C314 0FC026E1 */ jal menu_control_stick_tracking +/* 040E48 7F00C318 00000000 */ nop +.L7F00C31C: +/* 040E4C 7F00C31C 3C188003 */ lui $t8, %hi(selected_folder_num) +/* 040E50 7F00C320 8F18A8E8 */ lw $t8, %lo(selected_folder_num)($t8) +/* 040E54 7F00C324 07000007 */ bltz $t8, .L7F00C344 +/* 040E58 7F00C328 24040006 */ li $a0, 6 +/* 040E5C 7F00C32C 0FC06975 */ jal set_menu_to_mode +/* 040E60 7F00C330 00002825 */ move $a1, $zero +/* 040E64 7F00C334 0FC035FF */ jal set_menu_cursor_pos_to_setting +/* 040E68 7F00C338 00002025 */ move $a0, $zero +/* 040E6C 7F00C33C 1000000A */ b .L7F00C368 +/* 040E70 7F00C340 8FBF0044 */ lw $ra, 0x44($sp) +.L7F00C344: +/* 040E74 7F00C344 3C198003 */ lui $t9, %hi(menu_timer) +/* 040E78 7F00C348 8F39A8CC */ lw $t9, %lo(menu_timer)($t9) +/* 040E7C 7F00C34C 00002025 */ move $a0, $zero +/* 040E80 7F00C350 2B210709 */ slti $at, $t9, 0x709 +/* 040E84 7F00C354 54200004 */ bnezl $at, .L7F00C368 +/* 040E88 7F00C358 8FBF0044 */ lw $ra, 0x44($sp) +/* 040E8C 7F00C35C 0FC06975 */ jal set_menu_to_mode +/* 040E90 7F00C360 24050001 */ li $a1, 1 +/* 040E94 7F00C364 8FBF0044 */ lw $ra, 0x44($sp) +.L7F00C368: +/* 040E98 7F00C368 D7B40028 */ ldc1 $f20, 0x28($sp) +/* 040E9C 7F00C36C 8FB00034 */ lw $s0, 0x34($sp) +/* 040EA0 7F00C370 8FB10038 */ lw $s1, 0x38($sp) +/* 040EA4 7F00C374 8FB2003C */ lw $s2, 0x3c($sp) +/* 040EA8 7F00C378 8FB30040 */ lw $s3, 0x40($sp) +/* 040EAC 7F00C37C 03E00008 */ jr $ra +/* 040EB0 7F00C380 27BD0110 */ addiu $sp, $sp, 0x110 +) +#endif + + + +#ifdef NONMATCHING +int get_ptr_difficulty_name(s32 difficulty) +{ + u8 *return; + + return = NULL; + if (difficulty == 0) { + return = get_textptr_for_textID(TEXT(LTITLE, 0x13)); + } + else { + if (difficulty == 1) { + return = get_textptr_for_textID(TEXT(LTITLE, 0x14)); + } + else { + if (difficulty == 2) { + return = get_textptr_for_textID(TEXT(LTITLE, 0x15)); + } + else { + if (difficulty == 3) { + return = get_textptr_for_textID(TEXT(LTITLE, 0x16)); + } + } + } + } + return (int)return; +} +#else +GLOBAL_ASM( +.text +glabel get_ptr_difficulty_name +/* 040EB4 7F00C384 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 040EB8 7F00C388 AFBF0014 */ sw $ra, 0x14($sp) +/* 040EBC 7F00C38C 1080000A */ beqz $a0, .L7F00C3B8 +/* 040EC0 7F00C390 00001825 */ move $v1, $zero +/* 040EC4 7F00C394 24010001 */ li $at, 1 +/* 040EC8 7F00C398 1081000B */ beq $a0, $at, .L7F00C3C8 +/* 040ECC 7F00C39C 24010002 */ li $at, 2 +/* 040ED0 7F00C3A0 1081000D */ beq $a0, $at, .L7F00C3D8 +/* 040ED4 7F00C3A4 24010003 */ li $at, 3 +/* 040ED8 7F00C3A8 1081000F */ beq $a0, $at, .L7F00C3E8 +/* 040EDC 7F00C3AC 00000000 */ nop +/* 040EE0 7F00C3B0 10000011 */ b .L7F00C3F8 +/* 040EE4 7F00C3B4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00C3B8: +/* 040EE8 7F00C3B8 0FC30776 */ jal get_textptr_for_textID +/* 040EEC 7F00C3BC 34049C13 */ li $a0, 39955 +/* 040EF0 7F00C3C0 1000000C */ b .L7F00C3F4 +/* 040EF4 7F00C3C4 00401825 */ move $v1, $v0 +.L7F00C3C8: +/* 040EF8 7F00C3C8 0FC30776 */ jal get_textptr_for_textID +/* 040EFC 7F00C3CC 34049C14 */ li $a0, 39956 +/* 040F00 7F00C3D0 10000008 */ b .L7F00C3F4 +/* 040F04 7F00C3D4 00401825 */ move $v1, $v0 +.L7F00C3D8: +/* 040F08 7F00C3D8 0FC30776 */ jal get_textptr_for_textID +/* 040F0C 7F00C3DC 34049C15 */ li $a0, 39957 +/* 040F10 7F00C3E0 10000004 */ b .L7F00C3F4 +/* 040F14 7F00C3E4 00401825 */ move $v1, $v0 +.L7F00C3E8: +/* 040F18 7F00C3E8 0FC30776 */ jal get_textptr_for_textID +/* 040F1C 7F00C3EC 34049C16 */ li $a0, 39958 +/* 040F20 7F00C3F0 00401825 */ move $v1, $v0 +.L7F00C3F4: +/* 040F24 7F00C3F4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00C3F8: +/* 040F28 7F00C3F8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 040F2C 7F00C3FC 00601025 */ move $v0, $v1 +/* 040F30 7F00C400 03E00008 */ jr $ra +/* 040F34 7F00C404 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *constructor_menu05_fileselect(void *arg0) +{ + s32 sp1B4; + s32 sp1A8; + s32 sp19C; + void *sp158; + s32 sp154; + s32 sp150; + s32 sp14C; + s32 sp108; + s32 sp100; + s32 spFC; + s32 spF8; + s32 spF4; + s32 spF0; + s32 spEC; + s32 spE4; + s32 spD0; + s32 spBC; + f32 spB0; + f32 spAC; + f32 spA8; + f32 spA4; + f32 spA0; + f32 sp9C; + f32 sp98; + f32 sp94; + f32 sp90; + f32 sp8C; + f32 sp88; + f32 sp84; + void *sp74; + f32 temp_f10; + f32 temp_f10_2; + f32 temp_f18; + f32 temp_f6; + f32 temp_f6_2; + s32 temp_a2; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_ret_3; + s32 temp_ret_4; + s32 temp_ret_5; + s32 temp_s1; + s32 temp_s1_2; + s32 temp_s1_3; + s32 temp_s1_4; + s32 temp_t0; + s32 temp_v0; + s32 temp_v0_2; + u32 temp_s2; + void *temp_a0; + void *temp_a0_2; + void *temp_a1; + void *temp_a1_2; + void *temp_t2; + void *temp_t4; + void *temp_t7; + void *temp_t9; + void *temp_v0_3; + void *phi_t9; + void *phi_t2; + void *phi_s2; + s32 phi_s0; + s32 phi_s1; + void *phi_s0_2; + s32 phi_s1_2; + s32 phi_s2_2; + s32 phi_s1_3; + f32 phi_f6; + f32 phi_f18; + f32 phi_f6_2; + f32 phi_f10; + + sp1A8.unk0 = (s32) unknown_folderselect_constructor.unk0; + sp1A8.unk4 = (s32) unknown_folderselect_constructor.unk4; + sp1A8.unk8 = (s32) unknown_folderselect_constructor.unk8; + sp19C.unk0 = (s32) unknown_folderselect_constructor_0.unk0; + sp19C.unk4 = (s32) unknown_folderselect_constructor_0.unk4; + sp19C.unk8 = (s32) unknown_folderselect_constructor_0.unk8; + temp_ret = insert_imageDL(arg0); + arg0 = (void *) (temp_ret + 8); + temp_v0 = temp_ret; + temp_v0->unk0 = 0xfc167e2c; + temp_v0->unk4 = 0x33fdf6fb; + temp_t7 = arg0; + arg0 = (void *) (temp_t7 + 8); + temp_t7->unk4 = -0xec; + temp_t7->unk0 = &0xFB00000C; + temp_ret_2 = sub_GAME_7F007CC8(arg0, (s32) truncf(((f32) get_video2_settings_txtClipW() * -80.0f) / 1280.0f), &sp1A8, &sp19C); + arg0 = (void *) (temp_ret_2 + 8); + temp_v0_2 = temp_ret_2; + temp_v0_2->unk4 = 0x1000000; + temp_v0_2->unk0 = 0x6000000; + temp_t4 = arg0; + arg0 = (void *) (temp_t4 + 8); + temp_t4->unk4 = &D_01000040; + temp_t4->unk0 = 0x6000000; + phi_s2 = &D_8002A968; +loop_1: + phi_t9 = &unknown_folderselect; + phi_t2 = &sp14C; +loop_2: + temp_t9 = phi_t9; + temp_t2 = phi_t2 + 0xc; + temp_t2->unk-C = (s32) phi_t9->unk0; + temp_t2->unk-8 = (s32) temp_t9->unk-8; + temp_t2->unk-4 = (s32) temp_t9->unk-4; + phi_t9 = temp_t9; + phi_t2 = temp_t2; + if (temp_t9 != (&unknown_folderselect + 0x3c)) + { + goto loop_2; + } + temp_t2->unk0 = (s32) temp_t9->unk0; + sp154 = 3; + sp150 = 0; + sp158 = arg0; + subdraw(&sp14C, *phi_s2); + arg0 = sp158; + phi_s0 = 0; + phi_s1 = 0; + if ((*phi_s2)->unk8->unkE > 0) + { +loop_4: + matrix_4x4_copy(temp_v0_3->unkC + phi_s0, &sp108); + sub_GAME_7F058C9C(&sp108, (*phi_s2)->unkC + (phi_s1 << 6)); + temp_v0_3 = *phi_s2; + temp_s1 = phi_s1 + 1; + phi_s0 = phi_s0 + 0x40; + phi_s1 = temp_s1; + if (temp_s1 < temp_v0_3->unk8->unkE) + { + goto loop_4; + } + } + temp_s2 = phi_s2 + -4; + phi_s2 = temp_s2; + if (temp_s2 >= &ptr_folder_object_instance) + { + goto loop_1; + } + arg0 = microcode_constructor(arg0); + setTextSpacingInverted(0); + sp74 = &dword_CODE_bss_80069620; + sp1B4 = 0; +loop_7: + sub_GAME_7F077FF4(sp74, &spE4); + if (sp1B4 == folder_selected_for_deletion) + { + truncf(spE4, sp1B4, &spF0); + temp_a2 = (s32) truncf(spE8) + 0x19; + arg0 = microcode_constructor_related_to_menus(arg0, sp100, temp_a2, sp100 + 0x63, (s32) (temp_a2 + 0x2a), 0x32); + truncf(spE4); + truncf(spE8); + get_video2_settings_txtClipW(); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, get_textptr_for_textID(TEXT(LTITLE, 0x17)), (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, get_video2_settings_txtClipH(), 0, 0); + temp_s1_2 = get_textptr_for_textID(TEXT(LTITLE, 0x18)); + truncf(spE4); + truncf(spE8); + temp_a0 = &spF8; + temp_a1 = &spF4; + if (folder_selected_for_deletion_choice != 0) + { + spF4 = 0; + spF8 = 0; + sub_GAME_7F0AE98C(temp_a0, temp_a1, temp_s1_2, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + arg0 = microcode_constructor_related_to_menus(arg0, sp100 + -1, spFC + -1, (sp100 + spF4) + 3, (s32) (spFC + spF8), 0x32); + get_video2_settings_txtClipW(); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_s1_2, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, -1, get_video2_settings_txtClipH(), 0, 0); + } + else + { + get_video2_settings_txtClipW(temp_a0, temp_a1, temp_s1_2); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_s1_2, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, get_video2_settings_txtClipH(), 0, 0); + } + temp_s1_3 = get_textptr_for_textID(TEXT(LTITLE, 0x19)); + truncf(spE4); + if (j_text_trigger != 0) + { + + } + truncf(spE8); + temp_a0_2 = &spF8; + temp_a1_2 = &spF4; + if (folder_selected_for_deletion_choice != 0) + { + get_video2_settings_txtClipW(temp_a0_2, temp_a1_2, temp_s1_3); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_s1_3, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, get_video2_settings_txtClipH(), 0, 0); + } + else + { + spF4 = 0; + spF8 = 0; + sub_GAME_7F0AE98C(temp_a0_2, temp_a1_2, temp_s1_3, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + arg0 = microcode_constructor_related_to_menus(arg0, sp100 + -1, spFC + -1, (sp100 + spF4) + 3, (s32) (spFC + spF8), 0x32); + get_video2_settings_txtClipW(); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_s1_3, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, -1, get_video2_settings_txtClipH(), 0, 0); + } + } + else + { + get_highest_stage_difficulty_completed_in_folder(sp1B4, &spF0, &spEC); + if (spF0 >= 0) + { + if (spEC >= 0) + { + temp_ret_3 = get_ptr_difficulty_name(spEC); + if (temp_ret_3 != 0) + { + textpointer_load_parse_something(&spD0, temp_ret_3); + string_append_from_obseg_textbank(&spD0, &asc_D_8004F488); + spF4 = 0; + spF8 = 0; + sub_GAME_7F0AE98C(&spF8, &spF4, &spD0, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + truncf(spE4); + if (spF4 < 0) + { + + } + truncf(spE8); + get_video2_settings_txtClipW(); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, &spD0, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, get_video2_settings_txtClipH(), 0, 0); + } + if (spEC != 3) + { + textpointer_load_parse_something(&spBC, get_textptr_for_textID(TEXT(LTITLE, 0x1a)); + phi_s0_2 = &mission_folder_setup_entries; + phi_s1_2 = 0; + phi_s2_2 = -1; + phi_s1_3 = 0; + if (D_8002ABE8 != 0) + { +loop_24: + if (spF0 == phi_s0_2->unk14) + { + phi_s2_2 = get_chapter_briefing_entry(phi_s1_2); + phi_s1_3 = phi_s1_2; + } + else + { + temp_s1_4 = phi_s1_2 + 1; + phi_s0_2 = phi_s0_2 + 0x1c; + phi_s1_2 = temp_s1_4; + phi_s2_2 = -1; + phi_s1_3 = temp_s1_4; + if (phi_s0_2->unk20 != 0) + { + goto loop_24; + } + } + } + if (phi_s2_2 >= 0) + { + string_append_from_obseg_textbank(&spBC, *((((phi_s2_2 * 8) - phi_s2_2) * 4) + &mission_folder_setup_entries)); + string_append_from_obseg_textbank(&spBC, &a_); + } + string_append_from_obseg_textbank(&spBC, *((((phi_s1_3 * 8) - phi_s1_3) * 4) + &mission_folder_setup_entries)); + string_append_from_obseg_textbank(&spBC, &asc_D_8004F490); + spF4 = 0; + spF8 = 0; + sub_GAME_7F0AE98C(&spF8, &spF4, &spBC, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + truncf(spE4); + if (spF4 < 0) + { + + } + truncf(spE8); + get_video2_settings_txtClipW(); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, &spBC, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, get_video2_settings_txtClipH(), 0, 0); + } + } + } + } + temp_t0 = sp1B4 + 1; + sp74 = (void *) (sp74 + 0xc); + sp1B4 = temp_t0; + if (temp_t0 != 4) + { + goto loop_7; + } + setTextSpacingInverted(0); + temp_ret_4 = get_textptr_for_textID(TEXT(LTITLE, 0x1b)); + spF4 = 0; + spF8 = 0; + sub_GAME_7F0AE98C(&spF8, &spF4, temp_ret_4, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + if (spF8 < 0) + { + + } + get_video2_settings_txtClipW(); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_ret_4, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, -1, get_video2_settings_txtClipH(), 0, 0); + folder_option_COPY_left_bound.unk8 = (f32) (sp100 + spF4); + temp_ret_5 = get_textptr_for_textID(TEXT(LTITLE, 0x1c)); + spF4 = 0; + spF8 = 0; + sub_GAME_7F0AE98C(&spF8, &spF4, temp_ret_5, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + if (spF8 < 0) + { + + } + get_video2_settings_txtClipW(); + folder_option_ERASE_left_bound.unk8 = (f32) (sp100 + spF4); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_ret_5, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, -1, get_video2_settings_txtClipH(), 0, 0); + spAC = 225.0f; + spB0 = (f32) D_80051A28; + temp_f10 = (f32) (u32) mainfolderimages->unk4 * 0.5f; + spA4 = temp_f10; + spA8 = (f32) ((f32) (u32) mainfolderimages->unk5 * 0.5f); + likely_generate_DL_for_image_declaration(&arg0, mainfolderimages, 4, 0, 0); + display_image_at_on_screen_coord(&arg0, &spAC, &spA4, mainfolderimages->unk4, (s32) mainfolderimages->unk5, 0, 0, 1, 0xff, 0xff, 0xff, 0xff, (s32) (0 < mainfolderimages->unk6), 0); + folder_option_COPY_left_bound.unk0 = (f32) (spAC - temp_f10); + folder_option_COPY_left_bound.unk4 = (f32) (spB0 - spA8); + folder_option_COPY_left_bound.unkC = (f32) (spA8 + spB0); + sp9C = (f32) D_80051A2C; + spA0 = (f32) D_80051A30; + temp_f6 = (f32) mainfolderimages->unk10; + phi_f6 = temp_f6; + if (mainfolderimages->unk10 < 0) + { + phi_f6 = temp_f6 + 4294967296.0f; + } + sp94 = (f32) (phi_f6 * 0.5f); + temp_f18 = (f32) mainfolderimages->unk11; + phi_f18 = temp_f18; + if (mainfolderimages->unk11 < 0) + { + phi_f18 = temp_f18 + 4294967296.0f; + } + sp98 = (f32) (phi_f18 * 0.5f); + likely_generate_DL_for_image_declaration(&arg0, mainfolderimages + 0xc, 4, 0, 0); + display_image_at_on_screen_coord(&arg0, &sp9C, &sp94, mainfolderimages->unk10, (s32) mainfolderimages->unk11, 0, 0, 1, 0xff, 0xff, 0xff, 0xff, (s32) (0 < mainfolderimages->unk12), 0); + folder_option_ERASE_left_bound.unk0 = (f32) (sp9C - sp94); + folder_option_ERASE_left_bound.unk4 = (f32) (spA0 - sp98); + folder_option_ERASE_left_bound.unkC = (f32) (sp98 + spA0); + sp8C = 110.0f; + sp90 = (f32) D_80051A34; + temp_f6_2 = (f32) mainfolderimages->unk1C; + phi_f6_2 = temp_f6_2; + if (mainfolderimages->unk1C < 0) + { + phi_f6_2 = temp_f6_2 + 4294967296.0f; + } + sp84 = (f32) (phi_f6_2 * 0.5f); + temp_f10_2 = (f32) mainfolderimages->unk1D; + phi_f10 = temp_f10_2; + if (mainfolderimages->unk1D < 0) + { + phi_f10 = temp_f10_2 + 4294967296.0f; + } + sp88 = (f32) (phi_f10 * 0.5f); + likely_generate_DL_for_image_declaration(&arg0, mainfolderimages + 0x18, 4, 0, 0); + display_image_at_on_screen_coord(&arg0, &sp8C, &sp84, mainfolderimages->unk1C, (s32) mainfolderimages->unk1D, 0, 0, 1, 0xff, 0xff, 0xff, 0xff, (s32) (0 < mainfolderimages->unk1E), 0); + if (folder_selected_for_deletion < 0) + { + arg0 = load_draw_selected_icon_folder_select(arg0); + } + return arg0; +} +#else +const char asc_D_8004F488[] = "\n"; +const char a_[] = "."; +const char asc_D_8004F490[] = "\n"; +GLOBAL_ASM( +.rdata + +.late_rodata +glabel D_80051A28 +.word 0x438E8000 /* 285.0;*/ +glabel D_80051A2C +.word 0x43A78000 /* 335.0;*/ +glabel D_80051A30 +.word 0x438E8000 /* 285.0;*/ +glabel D_80051A34 +.word 0x438E8000 /* 285.0;*/ +.text +glabel constructor_menu05_fileselect +/* 040F38 7F00C408 27BDFE48 */ addiu $sp, $sp, -0x1b8 +/* 040F3C 7F00C40C 3C0E8003 */ lui $t6, %hi(unknown_folderselect_constructor) +/* 040F40 7F00C410 AFBF0064 */ sw $ra, 0x64($sp) +/* 040F44 7F00C414 AFBE0060 */ sw $fp, 0x60($sp) +/* 040F48 7F00C418 AFB7005C */ sw $s7, 0x5c($sp) +/* 040F4C 7F00C41C AFB60058 */ sw $s6, 0x58($sp) +/* 040F50 7F00C420 AFB50054 */ sw $s5, 0x54($sp) +/* 040F54 7F00C424 AFB40050 */ sw $s4, 0x50($sp) +/* 040F58 7F00C428 AFB3004C */ sw $s3, 0x4c($sp) +/* 040F5C 7F00C42C AFB20048 */ sw $s2, 0x48($sp) +/* 040F60 7F00C430 AFB10044 */ sw $s1, 0x44($sp) +/* 040F64 7F00C434 AFB00040 */ sw $s0, 0x40($sp) +/* 040F68 7F00C438 AFA401B8 */ sw $a0, 0x1b8($sp) +/* 040F6C 7F00C43C 25CEAF2C */ addiu $t6, %lo(unknown_folderselect_constructor) # addiu $t6, $t6, -0x50d4 +/* 040F70 7F00C440 8DC10000 */ lw $at, ($t6) +/* 040F74 7F00C444 27B001A8 */ addiu $s0, $sp, 0x1a8 +/* 040F78 7F00C448 3C088003 */ lui $t0, %hi(unknown_folderselect_constructor_0) +/* 040F7C 7F00C44C AE010000 */ sw $at, ($s0) +/* 040F80 7F00C450 8DD90004 */ lw $t9, 4($t6) +/* 040F84 7F00C454 2508AF38 */ addiu $t0, %lo(unknown_folderselect_constructor_0) # addiu $t0, $t0, -0x50c8 +/* 040F88 7F00C458 27B1019C */ addiu $s1, $sp, 0x19c +/* 040F8C 7F00C45C AE190004 */ sw $t9, 4($s0) +/* 040F90 7F00C460 8DC10008 */ lw $at, 8($t6) +/* 040F94 7F00C464 AE010008 */ sw $at, 8($s0) +/* 040F98 7F00C468 8D010000 */ lw $at, ($t0) +/* 040F9C 7F00C46C AE210000 */ sw $at, ($s1) +/* 040FA0 7F00C470 8D0B0004 */ lw $t3, 4($t0) +/* 040FA4 7F00C474 AE2B0004 */ sw $t3, 4($s1) +/* 040FA8 7F00C478 8D010008 */ lw $at, 8($t0) +/* 040FAC 7F00C47C AE210008 */ sw $at, 8($s1) +/* 040FB0 7F00C480 0FC07034 */ jal insert_imageDL +/* 040FB4 7F00C484 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 040FB8 7F00C488 244C0008 */ addiu $t4, $v0, 8 +/* 040FBC 7F00C48C AFAC01B8 */ sw $t4, 0x1b8($sp) +/* 040FC0 7F00C490 3C0DFC16 */ lui $t5, (0xFC167E2C >> 16) # lui $t5, 0xfc16 +/* 040FC4 7F00C494 3C1833FD */ lui $t8, (0x33FDF6FB >> 16) # lui $t8, 0x33fd +/* 040FC8 7F00C498 3718F6FB */ ori $t8, (0x33FDF6FB & 0xFFFF) # ori $t8, $t8, 0xf6fb +/* 040FCC 7F00C49C 35AD7E2C */ ori $t5, (0xFC167E2C & 0xFFFF) # ori $t5, $t5, 0x7e2c +/* 040FD0 7F00C4A0 AC4D0000 */ sw $t5, ($v0) +/* 040FD4 7F00C4A4 AC580004 */ sw $t8, 4($v0) +/* 040FD8 7F00C4A8 8FAF01B8 */ lw $t7, 0x1b8($sp) +/* 040FDC 7F00C4AC 3C19FB00 */ lui $t9, %hi(0xFB00000C) # $t9, 0xfb00 +/* 040FE0 7F00C4B0 240AFF14 */ li $t2, -236 +/* 040FE4 7F00C4B4 25EE0008 */ addiu $t6, $t7, 8 +/* 040FE8 7F00C4B8 AFAE01B8 */ sw $t6, 0x1b8($sp) +/* 040FEC 7F00C4BC ADEA0004 */ sw $t2, 4($t7) +/* 040FF0 7F00C4C0 0C001107 */ jal get_video2_settings_txtClipW +/* 040FF4 7F00C4C4 ADF90000 */ sw $t9, ($t7) +/* 040FF8 7F00C4C8 44822000 */ mtc1 $v0, $f4 +/* 040FFC 7F00C4CC 3C01C2A0 */ li $at, 0xC2A00000 # -80.000000 +/* 041000 7F00C4D0 44814000 */ mtc1 $at, $f8 +/* 041004 7F00C4D4 468021A0 */ cvt.s.w $f6, $f4 +/* 041008 7F00C4D8 3C0144A0 */ li $at, 0x44A00000 # 1280.000000 +/* 04100C 7F00C4DC 44818000 */ mtc1 $at, $f16 +/* 041010 7F00C4E0 46083282 */ mul.s $f10, $f6, $f8 +/* 041014 7F00C4E4 0FC170D8 */ jal truncf +/* 041018 7F00C4E8 46105303 */ div.s $f12, $f10, $f16 +/* 04101C 7F00C4EC 4600048D */ trunc.w.s $f18, $f0 +/* 041020 7F00C4F0 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041024 7F00C4F4 02003025 */ move $a2, $s0 +/* 041028 7F00C4F8 02203825 */ move $a3, $s1 +/* 04102C 7F00C4FC 44059000 */ mfc1 $a1, $f18 +/* 041030 7F00C500 0FC01F32 */ jal sub_GAME_7F007CC8 +/* 041034 7F00C504 00000000 */ nop +/* 041038 7F00C508 24480008 */ addiu $t0, $v0, 8 +/* 04103C 7F00C50C AFA801B8 */ sw $t0, 0x1b8($sp) +/* 041040 7F00C510 3C0B0100 */ lui $t3, 0x100 +/* 041044 7F00C514 3C050600 */ lui $a1, 0x600 +/* 041048 7F00C518 256B0000 */ addiu $t3, $t3, 0 +/* 04104C 7F00C51C AC4B0004 */ sw $t3, 4($v0) +/* 041050 7F00C520 AC450000 */ sw $a1, ($v0) +/* 041054 7F00C524 8FAC01B8 */ lw $t4, 0x1b8($sp) +/* 041058 7F00C528 3C180100 */ lui $t8, 0x100 +/* 04105C 7F00C52C 27180040 */ addiu $t8, $t8, 0x40 +/* 041060 7F00C530 258D0008 */ addiu $t5, $t4, 8 +/* 041064 7F00C534 AFAD01B8 */ sw $t5, 0x1b8($sp) +/* 041068 7F00C538 3C128003 */ lui $s2, %hi(D_8002A968) +/* 04106C 7F00C53C 3C148003 */ lui $s4, %hi(unknown_folderselect) +/* 041070 7F00C540 2694AF44 */ addiu $s4, %lo(unknown_folderselect) # addiu $s4, $s4, -0x50bc +/* 041074 7F00C544 2652A968 */ addiu $s2, %lo(D_8002A968) # addiu $s2, $s2, -0x5698 +/* 041078 7F00C548 27B30108 */ addiu $s3, $sp, 0x108 +/* 04107C 7F00C54C AD980004 */ sw $t8, 4($t4) +/* 041080 7F00C550 AD850000 */ sw $a1, ($t4) +/* 041084 7F00C554 27A4014C */ addiu $a0, $sp, 0x14c +.L7F00C558: +/* 041088 7F00C558 00805025 */ move $t2, $a0 +/* 04108C 7F00C55C 0280C825 */ move $t9, $s4 +/* 041090 7F00C560 268E003C */ addiu $t6, $s4, 0x3c +.L7F00C564: +/* 041094 7F00C564 8F210000 */ lw $at, ($t9) +/* 041098 7F00C568 2739000C */ addiu $t9, %lo(0xFB00000C) # addiu $t9, $t9, 0xc +/* 04109C 7F00C56C 254A000C */ addiu $t2, $t2, 0xc +/* 0410A0 7F00C570 AD41FFF4 */ sw $at, -0xc($t2) +/* 0410A4 7F00C574 8F21FFF8 */ lw $at, -8($t9) +/* 0410A8 7F00C578 AD41FFF8 */ sw $at, -8($t2) +/* 0410AC 7F00C57C 8F21FFFC */ lw $at, -4($t9) +/* 0410B0 7F00C580 172EFFF8 */ bne $t9, $t6, .L7F00C564 +/* 0410B4 7F00C584 AD41FFFC */ sw $at, -4($t2) +/* 0410B8 7F00C588 8F210000 */ lw $at, ($t9) +/* 0410BC 7F00C58C 24090003 */ li $t1, 3 +/* 0410C0 7F00C590 00008825 */ move $s1, $zero +/* 0410C4 7F00C594 AD410000 */ sw $at, ($t2) +/* 0410C8 7F00C598 8FA801B8 */ lw $t0, 0x1b8($sp) +/* 0410CC 7F00C59C AFA90154 */ sw $t1, 0x154($sp) +/* 0410D0 7F00C5A0 AFA00150 */ sw $zero, 0x150($sp) +/* 0410D4 7F00C5A4 8E450000 */ lw $a1, ($s2) +/* 0410D8 7F00C5A8 0FC1D1A1 */ jal subdraw +/* 0410DC 7F00C5AC AFA80158 */ sw $t0, 0x158($sp) +/* 0410E0 7F00C5B0 8FAB0158 */ lw $t3, 0x158($sp) +/* 0410E4 7F00C5B4 8E420000 */ lw $v0, ($s2) +/* 0410E8 7F00C5B8 00008025 */ move $s0, $zero +/* 0410EC 7F00C5BC AFAB01B8 */ sw $t3, 0x1b8($sp) +/* 0410F0 7F00C5C0 8C4C0008 */ lw $t4, 8($v0) +/* 0410F4 7F00C5C4 858D000E */ lh $t5, 0xe($t4) +/* 0410F8 7F00C5C8 19A00013 */ blez $t5, .L7F00C618 +/* 0410FC 7F00C5CC 00000000 */ nop +/* 041100 7F00C5D0 8C58000C */ lw $t8, 0xc($v0) +.L7F00C5D4: +/* 041104 7F00C5D4 02602825 */ move $a1, $s3 +/* 041108 7F00C5D8 0FC16008 */ jal matrix_4x4_copy +/* 04110C 7F00C5DC 03102021 */ addu $a0, $t8, $s0 +/* 041110 7F00C5E0 8E4F0000 */ lw $t7, ($s2) +/* 041114 7F00C5E4 0011C980 */ sll $t9, $s1, 6 +/* 041118 7F00C5E8 02602025 */ move $a0, $s3 +/* 04111C 7F00C5EC 8DEE000C */ lw $t6, 0xc($t7) +/* 041120 7F00C5F0 0FC16327 */ jal sub_GAME_7F058C9C +/* 041124 7F00C5F4 01D92821 */ addu $a1, $t6, $t9 +/* 041128 7F00C5F8 8E420000 */ lw $v0, ($s2) +/* 04112C 7F00C5FC 26310001 */ addiu $s1, $s1, 1 +/* 041130 7F00C600 26100040 */ addiu $s0, $s0, 0x40 +/* 041134 7F00C604 8C4A0008 */ lw $t2, 8($v0) +/* 041138 7F00C608 8549000E */ lh $t1, 0xe($t2) +/* 04113C 7F00C60C 0229082A */ slt $at, $s1, $t1 +/* 041140 7F00C610 5420FFF0 */ bnezl $at, .L7F00C5D4 +/* 041144 7F00C614 8C58000C */ lw $t8, 0xc($v0) +.L7F00C618: +/* 041148 7F00C618 3C088003 */ lui $t0, %hi(ptr_folder_object_instance) +/* 04114C 7F00C61C 2508A95C */ addiu $t0, %lo(ptr_folder_object_instance) # addiu $t0, $t0, -0x56a4 +/* 041150 7F00C620 2652FFFC */ addiu $s2, $s2, -4 +/* 041154 7F00C624 0248082B */ sltu $at, $s2, $t0 +/* 041158 7F00C628 5020FFCB */ beql $at, $zero, .L7F00C558 +/* 04115C 7F00C62C 27A4014C */ addiu $a0, $sp, 0x14c +/* 041160 7F00C630 0FC2B366 */ jal microcode_constructor +/* 041164 7F00C634 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041168 7F00C638 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 04116C 7F00C63C 0FC2B2DE */ jal setTextSpacingInverted +/* 041170 7F00C640 00002025 */ move $a0, $zero +/* 041174 7F00C644 3C0B8007 */ lui $t3, %hi(dword_CODE_bss_80069620) +/* 041178 7F00C648 256B9620 */ addiu $t3, %lo(dword_CODE_bss_80069620) # addiu $t3, $t3, -0x69e0 +/* 04117C 7F00C64C 3C1EEBD8 */ lui $fp, (0xEBD879FF >> 16) # lui $fp, 0xebd8 +/* 041180 7F00C650 3C148004 */ lui $s4, %hi(ptrFirstFontTableLarge) +/* 041184 7F00C654 3C138004 */ lui $s3, %hi(ptrSecondFontTableLarge) +/* 041188 7F00C658 26730EB8 */ addiu $s3, %lo(ptrSecondFontTableLarge) # addiu $s3, $s3, 0xeb8 +/* 04118C 7F00C65C 26940EB4 */ addiu $s4, %lo(ptrFirstFontTableLarge) # addiu $s4, $s4, 0xeb4 +/* 041190 7F00C660 37DE79FF */ ori $fp, (0xEBD879FF & 0xFFFF) # ori $fp, $fp, 0x79ff +/* 041194 7F00C664 AFAB0074 */ sw $t3, 0x74($sp) +/* 041198 7F00C668 AFA001B4 */ sw $zero, 0x1b4($sp) +/* 04119C 7F00C66C 27B700FC */ addiu $s7, $sp, 0xfc +/* 0411A0 7F00C670 27B60100 */ addiu $s6, $sp, 0x100 +/* 0411A4 7F00C674 27B500BC */ addiu $s5, $sp, 0xbc +.L7F00C678: +/* 0411A8 7F00C678 8FA40074 */ lw $a0, 0x74($sp) +/* 0411AC 7F00C67C 0FC1DFFD */ jal sub_GAME_7F077FF4 +/* 0411B0 7F00C680 27A500E4 */ addiu $a1, $sp, 0xe4 +/* 0411B4 7F00C684 3C0C8003 */ lui $t4, %hi(folder_selected_for_deletion) +/* 0411B8 7F00C688 8FA401B4 */ lw $a0, 0x1b4($sp) +/* 0411BC 7F00C68C 8D8CA91C */ lw $t4, %lo(folder_selected_for_deletion)($t4) +/* 0411C0 7F00C690 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0411C4 7F00C694 148C00F2 */ bne $a0, $t4, .L7F00CA60 +/* 0411C8 7F00C698 00000000 */ nop +/* 0411CC 7F00C69C 0FC170D8 */ jal truncf +/* 0411D0 7F00C6A0 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 0411D4 7F00C6A4 4600010D */ trunc.w.s $f4, $f0 +/* 0411D8 7F00C6A8 C7AC00E8 */ lwc1 $f12, 0xe8($sp) +/* 0411DC 7F00C6AC 44122000 */ mfc1 $s2, $f4 +/* 0411E0 7F00C6B0 00000000 */ nop +/* 0411E4 7F00C6B4 2652FFCF */ addiu $s2, $s2, -0x31 +/* 0411E8 7F00C6B8 0FC170D8 */ jal truncf +/* 0411EC 7F00C6BC AFB20100 */ sw $s2, 0x100($sp) +/* 0411F0 7F00C6C0 4600018D */ trunc.w.s $f6, $f0 +/* 0411F4 7F00C6C4 8FA50100 */ lw $a1, 0x100($sp) +/* 0411F8 7F00C6C8 240E0032 */ li $t6, 50 +/* 0411FC 7F00C6CC AFAE0014 */ sw $t6, 0x14($sp) +/* 041200 7F00C6D0 44103000 */ mfc1 $s0, $f6 +/* 041204 7F00C6D4 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041208 7F00C6D8 24A70063 */ addiu $a3, $a1, 0x63 +/* 04120C 7F00C6DC 26060019 */ addiu $a2, $s0, 0x19 +/* 041210 7F00C6E0 24CF002A */ addiu $t7, $a2, 0x2a +/* 041214 7F00C6E4 AFAF0010 */ sw $t7, 0x10($sp) +/* 041218 7F00C6E8 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04121C 7F00C6EC AFA600FC */ sw $a2, 0xfc($sp) +/* 041220 7F00C6F0 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 041224 7F00C6F4 0FC30776 */ jal get_textptr_for_textID +/* 041228 7F00C6F8 34049C17 */ li $a0, 39959 +/* 04122C 7F00C6FC 00408825 */ move $s1, $v0 +/* 041230 7F00C700 0FC170D8 */ jal truncf +/* 041234 7F00C704 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 041238 7F00C708 4600020D */ trunc.w.s $f8, $f0 +/* 04123C 7F00C70C C7AC00E8 */ lwc1 $f12, 0xe8($sp) +/* 041240 7F00C710 44124000 */ mfc1 $s2, $f8 +/* 041244 7F00C714 00000000 */ nop +/* 041248 7F00C718 2652FFD1 */ addiu $s2, $s2, -0x2f +/* 04124C 7F00C71C 0FC170D8 */ jal truncf +/* 041250 7F00C720 AFB20100 */ sw $s2, 0x100($sp) +/* 041254 7F00C724 4600028D */ trunc.w.s $f10, $f0 +/* 041258 7F00C728 44105000 */ mfc1 $s0, $f10 +/* 04125C 7F00C72C 00000000 */ nop +/* 041260 7F00C730 2610001E */ addiu $s0, $s0, 0x1e +/* 041264 7F00C734 0C001107 */ jal get_video2_settings_txtClipW +/* 041268 7F00C738 AFB000FC */ sw $s0, 0xfc($sp) +/* 04126C 7F00C73C 00028400 */ sll $s0, $v0, 0x10 +/* 041270 7F00C740 00104C03 */ sra $t1, $s0, 0x10 +/* 041274 7F00C744 0C00110B */ jal get_video2_settings_txtClipH +/* 041278 7F00C748 01208025 */ move $s0, $t1 +/* 04127C 7F00C74C 8E680000 */ lw $t0, ($s3) +/* 041280 7F00C750 8E8B0000 */ lw $t3, ($s4) +/* 041284 7F00C754 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041288 7F00C758 02C02825 */ move $a1, $s6 +/* 04128C 7F00C75C 02E03025 */ move $a2, $s7 +/* 041290 7F00C760 02203825 */ move $a3, $s1 +/* 041294 7F00C764 AFBE0018 */ sw $fp, 0x18($sp) +/* 041298 7F00C768 AFB0001C */ sw $s0, 0x1c($sp) +/* 04129C 7F00C76C AFA20020 */ sw $v0, 0x20($sp) +/* 0412A0 7F00C770 AFA00024 */ sw $zero, 0x24($sp) +/* 0412A4 7F00C774 AFA00028 */ sw $zero, 0x28($sp) +/* 0412A8 7F00C778 AFA80010 */ sw $t0, 0x10($sp) +/* 0412AC 7F00C77C 0FC2B6AF */ jal en_text_write_stuff +/* 0412B0 7F00C780 AFAB0014 */ sw $t3, 0x14($sp) +/* 0412B4 7F00C784 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 0412B8 7F00C788 0FC30776 */ jal get_textptr_for_textID +/* 0412BC 7F00C78C 34049C18 */ li $a0, 39960 +/* 0412C0 7F00C790 00408825 */ move $s1, $v0 +/* 0412C4 7F00C794 0FC170D8 */ jal truncf +/* 0412C8 7F00C798 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 0412CC 7F00C79C 4600040D */ trunc.w.s $f16, $f0 +/* 0412D0 7F00C7A0 C7AC00E8 */ lwc1 $f12, 0xe8($sp) +/* 0412D4 7F00C7A4 44128000 */ mfc1 $s2, $f16 +/* 0412D8 7F00C7A8 00000000 */ nop +/* 0412DC 7F00C7AC 2652FFD1 */ addiu $s2, $s2, -0x2f +/* 0412E0 7F00C7B0 0FC170D8 */ jal truncf +/* 0412E4 7F00C7B4 AFB20100 */ sw $s2, 0x100($sp) +/* 0412E8 7F00C7B8 4600048D */ trunc.w.s $f18, $f0 +/* 0412EC 7F00C7BC 3C188003 */ lui $t8, %hi(folder_selected_for_deletion_choice) +/* 0412F0 7F00C7C0 8F18A920 */ lw $t8, %lo(folder_selected_for_deletion_choice)($t8) +/* 0412F4 7F00C7C4 27A400F8 */ addiu $a0, $sp, 0xf8 +/* 0412F8 7F00C7C8 44109000 */ mfc1 $s0, $f18 +/* 0412FC 7F00C7CC 27A500F4 */ addiu $a1, $sp, 0xf4 +/* 041300 7F00C7D0 02203025 */ move $a2, $s1 +/* 041304 7F00C7D4 26100032 */ addiu $s0, $s0, 0x32 +/* 041308 7F00C7D8 1300002D */ beqz $t8, .L7F00C890 +/* 04130C 7F00C7DC AFB000FC */ sw $s0, 0xfc($sp) +/* 041310 7F00C7E0 8E8F0000 */ lw $t7, ($s4) +/* 041314 7F00C7E4 AFA000F4 */ sw $zero, 0xf4($sp) +/* 041318 7F00C7E8 AFA000F8 */ sw $zero, 0xf8($sp) +/* 04131C 7F00C7EC 8E670000 */ lw $a3, ($s3) +/* 041320 7F00C7F0 AFA00014 */ sw $zero, 0x14($sp) +/* 041324 7F00C7F4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 041328 7F00C7F8 AFAF0010 */ sw $t7, 0x10($sp) +/* 04132C 7F00C7FC 8FB000FC */ lw $s0, 0xfc($sp) +/* 041330 7F00C800 8FB20100 */ lw $s2, 0x100($sp) +/* 041334 7F00C804 8FAE00F4 */ lw $t6, 0xf4($sp) +/* 041338 7F00C808 8FB900F8 */ lw $t9, 0xf8($sp) +/* 04133C 7F00C80C 24090032 */ li $t1, 50 +/* 041340 7F00C810 024E3821 */ addu $a3, $s2, $t6 +/* 041344 7F00C814 02195021 */ addu $t2, $s0, $t9 +/* 041348 7F00C818 AFAA0010 */ sw $t2, 0x10($sp) +/* 04134C 7F00C81C 24E70003 */ addiu $a3, $a3, 3 +/* 041350 7F00C820 AFA90014 */ sw $t1, 0x14($sp) +/* 041354 7F00C824 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041358 7F00C828 2606FFFF */ addiu $a2, $s0, -1 +/* 04135C 7F00C82C 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 041360 7F00C830 2645FFFF */ addiu $a1, $s2, -1 +/* 041364 7F00C834 0C001107 */ jal get_video2_settings_txtClipW +/* 041368 7F00C838 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 04136C 7F00C83C 00028400 */ sll $s0, $v0, 0x10 +/* 041370 7F00C840 00104403 */ sra $t0, $s0, 0x10 +/* 041374 7F00C844 0C00110B */ jal get_video2_settings_txtClipH +/* 041378 7F00C848 01008025 */ move $s0, $t0 +/* 04137C 7F00C84C 8E6B0000 */ lw $t3, ($s3) +/* 041380 7F00C850 8E8C0000 */ lw $t4, ($s4) +/* 041384 7F00C854 240DFFFF */ li $t5, -1 +/* 041388 7F00C858 AFAD0018 */ sw $t5, 0x18($sp) +/* 04138C 7F00C85C 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041390 7F00C860 02C02825 */ move $a1, $s6 +/* 041394 7F00C864 02E03025 */ move $a2, $s7 +/* 041398 7F00C868 02203825 */ move $a3, $s1 +/* 04139C 7F00C86C AFB0001C */ sw $s0, 0x1c($sp) +/* 0413A0 7F00C870 AFA20020 */ sw $v0, 0x20($sp) +/* 0413A4 7F00C874 AFA00024 */ sw $zero, 0x24($sp) +/* 0413A8 7F00C878 AFA00028 */ sw $zero, 0x28($sp) +/* 0413AC 7F00C87C AFAB0010 */ sw $t3, 0x10($sp) +/* 0413B0 7F00C880 0FC2B6AF */ jal en_text_write_stuff +/* 0413B4 7F00C884 AFAC0014 */ sw $t4, 0x14($sp) +/* 0413B8 7F00C888 10000016 */ b .L7F00C8E4 +/* 0413BC 7F00C88C AFA201B8 */ sw $v0, 0x1b8($sp) +.L7F00C890: +/* 0413C0 7F00C890 0C001107 */ jal get_video2_settings_txtClipW +/* 0413C4 7F00C894 00000000 */ nop +/* 0413C8 7F00C898 00028400 */ sll $s0, $v0, 0x10 +/* 0413CC 7F00C89C 0010C403 */ sra $t8, $s0, 0x10 +/* 0413D0 7F00C8A0 0C00110B */ jal get_video2_settings_txtClipH +/* 0413D4 7F00C8A4 03008025 */ move $s0, $t8 +/* 0413D8 7F00C8A8 8E6F0000 */ lw $t7, ($s3) +/* 0413DC 7F00C8AC 8E8E0000 */ lw $t6, ($s4) +/* 0413E0 7F00C8B0 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 0413E4 7F00C8B4 02C02825 */ move $a1, $s6 +/* 0413E8 7F00C8B8 02E03025 */ move $a2, $s7 +/* 0413EC 7F00C8BC 02203825 */ move $a3, $s1 +/* 0413F0 7F00C8C0 AFBE0018 */ sw $fp, 0x18($sp) +/* 0413F4 7F00C8C4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0413F8 7F00C8C8 AFA20020 */ sw $v0, 0x20($sp) +/* 0413FC 7F00C8CC AFA00024 */ sw $zero, 0x24($sp) +/* 041400 7F00C8D0 AFA00028 */ sw $zero, 0x28($sp) +/* 041404 7F00C8D4 AFAF0010 */ sw $t7, 0x10($sp) +/* 041408 7F00C8D8 0FC2B6AF */ jal en_text_write_stuff +/* 04140C 7F00C8DC AFAE0014 */ sw $t6, 0x14($sp) +/* 041410 7F00C8E0 AFA201B8 */ sw $v0, 0x1b8($sp) +.L7F00C8E4: +/* 041414 7F00C8E4 0FC30776 */ jal get_textptr_for_textID +/* 041418 7F00C8E8 34049C19 */ li $a0, 39961 +/* 04141C 7F00C8EC 00408825 */ move $s1, $v0 +/* 041420 7F00C8F0 0FC170D8 */ jal truncf +/* 041424 7F00C8F4 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 041428 7F00C8F8 3C198005 */ lui $t9, %hi(j_text_trigger) +/* 04142C 7F00C8FC 8F3984D0 */ lw $t9, %lo(j_text_trigger)($t9) +/* 041430 7F00C900 46000086 */ mov.s $f2, $f0 +/* 041434 7F00C904 4600110D */ trunc.w.s $f4, $f2 +/* 041438 7F00C908 13200003 */ beqz $t9, .L7F00C918 +/* 04143C 7F00C90C 2402FFFF */ li $v0, -1 +/* 041440 7F00C910 10000001 */ b .L7F00C918 +/* 041444 7F00C914 24020017 */ li $v0, 23 +.L7F00C918: +/* 041448 7F00C918 44092000 */ mfc1 $t1, $f4 +/* 04144C 7F00C91C C7AC00E8 */ lwc1 $f12, 0xe8($sp) +/* 041450 7F00C920 00499021 */ addu $s2, $v0, $t1 +/* 041454 7F00C924 2652FFFF */ addiu $s2, $s2, -1 +/* 041458 7F00C928 0FC170D8 */ jal truncf +/* 04145C 7F00C92C AFB20100 */ sw $s2, 0x100($sp) +/* 041460 7F00C930 4600018D */ trunc.w.s $f6, $f0 +/* 041464 7F00C934 3C0B8003 */ lui $t3, %hi(folder_selected_for_deletion_choice) +/* 041468 7F00C938 8D6BA920 */ lw $t3, %lo(folder_selected_for_deletion_choice)($t3) +/* 04146C 7F00C93C 27A400F8 */ addiu $a0, $sp, 0xf8 +/* 041470 7F00C940 44103000 */ mfc1 $s0, $f6 +/* 041474 7F00C944 27A500F4 */ addiu $a1, $sp, 0xf4 +/* 041478 7F00C948 02203025 */ move $a2, $s1 +/* 04147C 7F00C94C 26100032 */ addiu $s0, $s0, 0x32 +/* 041480 7F00C950 11600017 */ beqz $t3, .L7F00C9B0 +/* 041484 7F00C954 AFB000FC */ sw $s0, 0xfc($sp) +/* 041488 7F00C958 0C001107 */ jal get_video2_settings_txtClipW +/* 04148C 7F00C95C 00000000 */ nop +/* 041490 7F00C960 00028400 */ sll $s0, $v0, 0x10 +/* 041494 7F00C964 00106403 */ sra $t4, $s0, 0x10 +/* 041498 7F00C968 0C00110B */ jal get_video2_settings_txtClipH +/* 04149C 7F00C96C 01808025 */ move $s0, $t4 +/* 0414A0 7F00C970 8E6D0000 */ lw $t5, ($s3) +/* 0414A4 7F00C974 8E980000 */ lw $t8, ($s4) +/* 0414A8 7F00C978 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 0414AC 7F00C97C 02C02825 */ move $a1, $s6 +/* 0414B0 7F00C980 02E03025 */ move $a2, $s7 +/* 0414B4 7F00C984 02203825 */ move $a3, $s1 +/* 0414B8 7F00C988 AFBE0018 */ sw $fp, 0x18($sp) +/* 0414BC 7F00C98C AFB0001C */ sw $s0, 0x1c($sp) +/* 0414C0 7F00C990 AFA20020 */ sw $v0, 0x20($sp) +/* 0414C4 7F00C994 AFA00024 */ sw $zero, 0x24($sp) +/* 0414C8 7F00C998 AFA00028 */ sw $zero, 0x28($sp) +/* 0414CC 7F00C99C AFAD0010 */ sw $t5, 0x10($sp) +/* 0414D0 7F00C9A0 0FC2B6AF */ jal en_text_write_stuff +/* 0414D4 7F00C9A4 AFB80014 */ sw $t8, 0x14($sp) +/* 0414D8 7F00C9A8 100000D6 */ b .L7F00CD04 +/* 0414DC 7F00C9AC AFA201B8 */ sw $v0, 0x1b8($sp) +.L7F00C9B0: +/* 0414E0 7F00C9B0 8E8F0000 */ lw $t7, ($s4) +/* 0414E4 7F00C9B4 AFA000F4 */ sw $zero, 0xf4($sp) +/* 0414E8 7F00C9B8 AFA000F8 */ sw $zero, 0xf8($sp) +/* 0414EC 7F00C9BC 8E670000 */ lw $a3, ($s3) +/* 0414F0 7F00C9C0 AFA00014 */ sw $zero, 0x14($sp) +/* 0414F4 7F00C9C4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0414F8 7F00C9C8 AFAF0010 */ sw $t7, 0x10($sp) +/* 0414FC 7F00C9CC 8FB000FC */ lw $s0, 0xfc($sp) +/* 041500 7F00C9D0 8FB20100 */ lw $s2, 0x100($sp) +/* 041504 7F00C9D4 8FAE00F4 */ lw $t6, 0xf4($sp) +/* 041508 7F00C9D8 8FB900F8 */ lw $t9, 0xf8($sp) +/* 04150C 7F00C9DC 24090032 */ li $t1, 50 +/* 041510 7F00C9E0 024E3821 */ addu $a3, $s2, $t6 +/* 041514 7F00C9E4 02195021 */ addu $t2, $s0, $t9 +/* 041518 7F00C9E8 AFAA0010 */ sw $t2, 0x10($sp) +/* 04151C 7F00C9EC 24E70003 */ addiu $a3, $a3, 3 +/* 041520 7F00C9F0 AFA90014 */ sw $t1, 0x14($sp) +/* 041524 7F00C9F4 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041528 7F00C9F8 2606FFFF */ addiu $a2, $s0, -1 +/* 04152C 7F00C9FC 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 041530 7F00CA00 2645FFFF */ addiu $a1, $s2, -1 +/* 041534 7F00CA04 0C001107 */ jal get_video2_settings_txtClipW +/* 041538 7F00CA08 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 04153C 7F00CA0C 00028400 */ sll $s0, $v0, 0x10 +/* 041540 7F00CA10 00104403 */ sra $t0, $s0, 0x10 +/* 041544 7F00CA14 0C00110B */ jal get_video2_settings_txtClipH +/* 041548 7F00CA18 01008025 */ move $s0, $t0 +/* 04154C 7F00CA1C 8E6B0000 */ lw $t3, ($s3) +/* 041550 7F00CA20 8E8C0000 */ lw $t4, ($s4) +/* 041554 7F00CA24 240DFFFF */ li $t5, -1 +/* 041558 7F00CA28 AFAD0018 */ sw $t5, 0x18($sp) +/* 04155C 7F00CA2C 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041560 7F00CA30 02C02825 */ move $a1, $s6 +/* 041564 7F00CA34 02E03025 */ move $a2, $s7 +/* 041568 7F00CA38 02203825 */ move $a3, $s1 +/* 04156C 7F00CA3C AFB0001C */ sw $s0, 0x1c($sp) +/* 041570 7F00CA40 AFA20020 */ sw $v0, 0x20($sp) +/* 041574 7F00CA44 AFA00024 */ sw $zero, 0x24($sp) +/* 041578 7F00CA48 AFA00028 */ sw $zero, 0x28($sp) +/* 04157C 7F00CA4C AFAB0010 */ sw $t3, 0x10($sp) +/* 041580 7F00CA50 0FC2B6AF */ jal en_text_write_stuff +/* 041584 7F00CA54 AFAC0014 */ sw $t4, 0x14($sp) +/* 041588 7F00CA58 100000AA */ b .L7F00CD04 +/* 04158C 7F00CA5C AFA201B8 */ sw $v0, 0x1b8($sp) +.L7F00CA60: +/* 041590 7F00CA60 0FC07A1D */ jal get_highest_stage_difficulty_completed_in_folder +/* 041594 7F00CA64 27A600EC */ addiu $a2, $sp, 0xec +/* 041598 7F00CA68 8FA200F0 */ lw $v0, 0xf0($sp) +/* 04159C 7F00CA6C 8FA400EC */ lw $a0, 0xec($sp) +/* 0415A0 7F00CA70 044200A5 */ bltzl $v0, .L7F00CD08 +/* 0415A4 7F00CA74 8FA901B4 */ lw $t1, 0x1b4($sp) +/* 0415A8 7F00CA78 048200A3 */ bltzl $a0, .L7F00CD08 +/* 0415AC 7F00CA7C 8FA901B4 */ lw $t1, 0x1b4($sp) +/* 0415B0 7F00CA80 0FC030E1 */ jal get_ptr_difficulty_name +/* 0415B4 7F00CA84 00000000 */ nop +/* 0415B8 7F00CA88 10400038 */ beqz $v0, .L7F00CB6C +/* 0415BC 7F00CA8C 27A400D0 */ addiu $a0, $sp, 0xd0 +/* 0415C0 7F00CA90 0C0029DC */ jal textpointer_load_parse_something +/* 0415C4 7F00CA94 00402825 */ move $a1, $v0 +/* 0415C8 7F00CA98 3C058005 */ lui $a1, %hi(asc_D_8004F488) +/* 0415CC 7F00CA9C 24A5F488 */ addiu $a1, %lo(asc_D_8004F488) # addiu $a1, $a1, -0xb78 +/* 0415D0 7F00CAA0 0C0029FF */ jal string_append_from_obseg_textbank +/* 0415D4 7F00CAA4 27A400D0 */ addiu $a0, $sp, 0xd0 +/* 0415D8 7F00CAA8 8E980000 */ lw $t8, ($s4) +/* 0415DC 7F00CAAC AFA000F4 */ sw $zero, 0xf4($sp) +/* 0415E0 7F00CAB0 AFA000F8 */ sw $zero, 0xf8($sp) +/* 0415E4 7F00CAB4 27A400F8 */ addiu $a0, $sp, 0xf8 +/* 0415E8 7F00CAB8 27A500F4 */ addiu $a1, $sp, 0xf4 +/* 0415EC 7F00CABC 27A600D0 */ addiu $a2, $sp, 0xd0 +/* 0415F0 7F00CAC0 8E670000 */ lw $a3, ($s3) +/* 0415F4 7F00CAC4 AFA00014 */ sw $zero, 0x14($sp) +/* 0415F8 7F00CAC8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0415FC 7F00CACC AFB80010 */ sw $t8, 0x10($sp) +/* 041600 7F00CAD0 0FC170D8 */ jal truncf +/* 041604 7F00CAD4 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 041608 7F00CAD8 4600020D */ trunc.w.s $f8, $f0 +/* 04160C 7F00CADC 8FB900F4 */ lw $t9, 0xf4($sp) +/* 041610 7F00CAE0 C7AC00E8 */ lwc1 $f12, 0xe8($sp) +/* 041614 7F00CAE4 440E4000 */ mfc1 $t6, $f8 +/* 041618 7F00CAE8 07210003 */ bgez $t9, .L7F00CAF8 +/* 04161C 7F00CAEC 00195043 */ sra $t2, $t9, 1 +/* 041620 7F00CAF0 27210001 */ addiu $at, $t9, 1 +/* 041624 7F00CAF4 00015043 */ sra $t2, $at, 1 +.L7F00CAF8: +/* 041628 7F00CAF8 01CA9023 */ subu $s2, $t6, $t2 +/* 04162C 7F00CAFC 2652FFFF */ addiu $s2, $s2, -1 +/* 041630 7F00CB00 0FC170D8 */ jal truncf +/* 041634 7F00CB04 AFB20100 */ sw $s2, 0x100($sp) +/* 041638 7F00CB08 4600028D */ trunc.w.s $f10, $f0 +/* 04163C 7F00CB0C 44105000 */ mfc1 $s0, $f10 +/* 041640 7F00CB10 00000000 */ nop +/* 041644 7F00CB14 26100015 */ addiu $s0, $s0, 0x15 +/* 041648 7F00CB18 0C001107 */ jal get_video2_settings_txtClipW +/* 04164C 7F00CB1C AFB000FC */ sw $s0, 0xfc($sp) +/* 041650 7F00CB20 00028400 */ sll $s0, $v0, 0x10 +/* 041654 7F00CB24 00104403 */ sra $t0, $s0, 0x10 +/* 041658 7F00CB28 0C00110B */ jal get_video2_settings_txtClipH +/* 04165C 7F00CB2C 01008025 */ move $s0, $t0 +/* 041660 7F00CB30 8E6B0000 */ lw $t3, ($s3) +/* 041664 7F00CB34 8E8C0000 */ lw $t4, ($s4) +/* 041668 7F00CB38 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 04166C 7F00CB3C 02C02825 */ move $a1, $s6 +/* 041670 7F00CB40 02E03025 */ move $a2, $s7 +/* 041674 7F00CB44 27A700D0 */ addiu $a3, $sp, 0xd0 +/* 041678 7F00CB48 AFBE0018 */ sw $fp, 0x18($sp) +/* 04167C 7F00CB4C AFB0001C */ sw $s0, 0x1c($sp) +/* 041680 7F00CB50 AFA20020 */ sw $v0, 0x20($sp) +/* 041684 7F00CB54 AFA00024 */ sw $zero, 0x24($sp) +/* 041688 7F00CB58 AFA00028 */ sw $zero, 0x28($sp) +/* 04168C 7F00CB5C AFAB0010 */ sw $t3, 0x10($sp) +/* 041690 7F00CB60 0FC2B6AF */ jal en_text_write_stuff +/* 041694 7F00CB64 AFAC0014 */ sw $t4, 0x14($sp) +/* 041698 7F00CB68 AFA201B8 */ sw $v0, 0x1b8($sp) +.L7F00CB6C: +/* 04169C 7F00CB6C 8FA400EC */ lw $a0, 0xec($sp) +/* 0416A0 7F00CB70 24010003 */ li $at, 3 +/* 0416A4 7F00CB74 2412FFFF */ li $s2, -1 +/* 0416A8 7F00CB78 10810062 */ beq $a0, $at, .L7F00CD04 +/* 0416AC 7F00CB7C 00008825 */ move $s1, $zero +/* 0416B0 7F00CB80 0FC30776 */ jal get_textptr_for_textID +/* 0416B4 7F00CB84 34049C1A */ li $a0, 39962 +/* 0416B8 7F00CB88 02A02025 */ move $a0, $s5 +/* 0416BC 7F00CB8C 0C0029DC */ jal textpointer_load_parse_something +/* 0416C0 7F00CB90 00402825 */ move $a1, $v0 +/* 0416C4 7F00CB94 3C0D8003 */ lui $t5, %hi(mission_folder_setup_entries+0x4) +/* 0416C8 7F00CB98 95ADABE8 */ lhu $t5, %lo(mission_folder_setup_entries+0x4)($t5) +/* 0416CC 7F00CB9C 3C108003 */ lui $s0, %hi(mission_folder_setup_entries) +/* 0416D0 7F00CBA0 2610ABE4 */ addiu $s0, %lo(mission_folder_setup_entries) # addiu $s0, $s0, -0x541c +/* 0416D4 7F00CBA4 11A0000D */ beqz $t5, .L7F00CBDC +/* 0416D8 7F00CBA8 8FA200F0 */ lw $v0, 0xf0($sp) +/* 0416DC 7F00CBAC 8E180014 */ lw $t8, 0x14($s0) +.L7F00CBB0: +/* 0416E0 7F00CBB0 54580006 */ bnel $v0, $t8, .L7F00CBCC +/* 0416E4 7F00CBB4 960F0020 */ lhu $t7, 0x20($s0) +/* 0416E8 7F00CBB8 0FC02EC7 */ jal get_chapter_briefing_entry +/* 0416EC 7F00CBBC 02202025 */ move $a0, $s1 +/* 0416F0 7F00CBC0 10000006 */ b .L7F00CBDC +/* 0416F4 7F00CBC4 00409025 */ move $s2, $v0 +/* 0416F8 7F00CBC8 960F0020 */ lhu $t7, 0x20($s0) +.L7F00CBCC: +/* 0416FC 7F00CBCC 26310001 */ addiu $s1, $s1, 1 +/* 041700 7F00CBD0 2610001C */ addiu $s0, $s0, 0x1c +/* 041704 7F00CBD4 55E0FFF6 */ bnezl $t7, .L7F00CBB0 +/* 041708 7F00CBD8 8E180014 */ lw $t8, 0x14($s0) +.L7F00CBDC: +/* 04170C 7F00CBDC 0011C8C0 */ sll $t9, $s1, 3 +/* 041710 7F00CBE0 0331C823 */ subu $t9, $t9, $s1 +/* 041714 7F00CBE4 3C0E8003 */ lui $t6, %hi(mission_folder_setup_entries) +/* 041718 7F00CBE8 25CEABE4 */ addiu $t6, %lo(mission_folder_setup_entries) # addiu $t6, $t6, -0x541c +/* 04171C 7F00CBEC 0019C880 */ sll $t9, $t9, 2 +/* 041720 7F00CBF0 0640000C */ bltz $s2, .L7F00CC24 +/* 041724 7F00CBF4 032E8021 */ addu $s0, $t9, $t6 +/* 041728 7F00CBF8 001250C0 */ sll $t2, $s2, 3 +/* 04172C 7F00CBFC 01525023 */ subu $t2, $t2, $s2 +/* 041730 7F00CC00 000A5080 */ sll $t2, $t2, 2 +/* 041734 7F00CC04 014E4821 */ addu $t1, $t2, $t6 +/* 041738 7F00CC08 8D250000 */ lw $a1, ($t1) +/* 04173C 7F00CC0C 0C0029FF */ jal string_append_from_obseg_textbank +/* 041740 7F00CC10 02A02025 */ move $a0, $s5 +/* 041744 7F00CC14 3C058005 */ lui $a1, %hi(a_) +/* 041748 7F00CC18 24A5F48C */ addiu $a1, %lo(a_) # addiu $a1, $a1, -0xb74 +/* 04174C 7F00CC1C 0C0029FF */ jal string_append_from_obseg_textbank +/* 041750 7F00CC20 02A02025 */ move $a0, $s5 +.L7F00CC24: +/* 041754 7F00CC24 02A02025 */ move $a0, $s5 +/* 041758 7F00CC28 0C0029FF */ jal string_append_from_obseg_textbank +/* 04175C 7F00CC2C 8E050000 */ lw $a1, ($s0) +/* 041760 7F00CC30 3C058005 */ lui $a1, %hi(asc_D_8004F490) +/* 041764 7F00CC34 24A5F490 */ addiu $a1, %lo(asc_D_8004F490) # addiu $a1, $a1, -0xb70 +/* 041768 7F00CC38 0C0029FF */ jal string_append_from_obseg_textbank +/* 04176C 7F00CC3C 02A02025 */ move $a0, $s5 +/* 041770 7F00CC40 8E880000 */ lw $t0, ($s4) +/* 041774 7F00CC44 AFA000F4 */ sw $zero, 0xf4($sp) +/* 041778 7F00CC48 AFA000F8 */ sw $zero, 0xf8($sp) +/* 04177C 7F00CC4C 27A400F8 */ addiu $a0, $sp, 0xf8 +/* 041780 7F00CC50 27A500F4 */ addiu $a1, $sp, 0xf4 +/* 041784 7F00CC54 02A03025 */ move $a2, $s5 +/* 041788 7F00CC58 8E670000 */ lw $a3, ($s3) +/* 04178C 7F00CC5C AFA00014 */ sw $zero, 0x14($sp) +/* 041790 7F00CC60 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 041794 7F00CC64 AFA80010 */ sw $t0, 0x10($sp) +/* 041798 7F00CC68 0FC170D8 */ jal truncf +/* 04179C 7F00CC6C C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 0417A0 7F00CC70 4600040D */ trunc.w.s $f16, $f0 +/* 0417A4 7F00CC74 8FAD00F4 */ lw $t5, 0xf4($sp) +/* 0417A8 7F00CC78 C7AC00E8 */ lwc1 $f12, 0xe8($sp) +/* 0417AC 7F00CC7C 440C8000 */ mfc1 $t4, $f16 +/* 0417B0 7F00CC80 05A10003 */ bgez $t5, .L7F00CC90 +/* 0417B4 7F00CC84 000DC043 */ sra $t8, $t5, 1 +/* 0417B8 7F00CC88 25A10001 */ addiu $at, $t5, 1 +/* 0417BC 7F00CC8C 0001C043 */ sra $t8, $at, 1 +.L7F00CC90: +/* 0417C0 7F00CC90 01989023 */ subu $s2, $t4, $t8 +/* 0417C4 7F00CC94 2652FFFF */ addiu $s2, $s2, -1 +/* 0417C8 7F00CC98 0FC170D8 */ jal truncf +/* 0417CC 7F00CC9C AFB20100 */ sw $s2, 0x100($sp) +/* 0417D0 7F00CCA0 4600048D */ trunc.w.s $f18, $f0 +/* 0417D4 7F00CCA4 44109000 */ mfc1 $s0, $f18 +/* 0417D8 7F00CCA8 00000000 */ nop +/* 0417DC 7F00CCAC 2610002D */ addiu $s0, $s0, 0x2d +/* 0417E0 7F00CCB0 0C001107 */ jal get_video2_settings_txtClipW +/* 0417E4 7F00CCB4 AFB000FC */ sw $s0, 0xfc($sp) +/* 0417E8 7F00CCB8 00028400 */ sll $s0, $v0, 0x10 +/* 0417EC 7F00CCBC 0010CC03 */ sra $t9, $s0, 0x10 +/* 0417F0 7F00CCC0 0C00110B */ jal get_video2_settings_txtClipH +/* 0417F4 7F00CCC4 03208025 */ move $s0, $t9 +/* 0417F8 7F00CCC8 8E6A0000 */ lw $t2, ($s3) +/* 0417FC 7F00CCCC 8E8E0000 */ lw $t6, ($s4) +/* 041800 7F00CCD0 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041804 7F00CCD4 02C02825 */ move $a1, $s6 +/* 041808 7F00CCD8 02E03025 */ move $a2, $s7 +/* 04180C 7F00CCDC 02A03825 */ move $a3, $s5 +/* 041810 7F00CCE0 AFBE0018 */ sw $fp, 0x18($sp) +/* 041814 7F00CCE4 AFB0001C */ sw $s0, 0x1c($sp) +/* 041818 7F00CCE8 AFA20020 */ sw $v0, 0x20($sp) +/* 04181C 7F00CCEC AFA00024 */ sw $zero, 0x24($sp) +/* 041820 7F00CCF0 AFA00028 */ sw $zero, 0x28($sp) +/* 041824 7F00CCF4 AFAA0010 */ sw $t2, 0x10($sp) +/* 041828 7F00CCF8 0FC2B6AF */ jal en_text_write_stuff +/* 04182C 7F00CCFC AFAE0014 */ sw $t6, 0x14($sp) +/* 041830 7F00CD00 AFA201B8 */ sw $v0, 0x1b8($sp) +.L7F00CD04: +/* 041834 7F00CD04 8FA901B4 */ lw $t1, 0x1b4($sp) +.L7F00CD08: +/* 041838 7F00CD08 8FAB0074 */ lw $t3, 0x74($sp) +/* 04183C 7F00CD0C 24010004 */ li $at, 4 +/* 041840 7F00CD10 25280001 */ addiu $t0, $t1, 1 +/* 041844 7F00CD14 256D000C */ addiu $t5, $t3, 0xc +/* 041848 7F00CD18 AFAD0074 */ sw $t5, 0x74($sp) +/* 04184C 7F00CD1C 1501FE56 */ bne $t0, $at, .L7F00C678 +/* 041850 7F00CD20 AFA801B4 */ sw $t0, 0x1b4($sp) +/* 041854 7F00CD24 0FC2B2DE */ jal setTextSpacingInverted +/* 041858 7F00CD28 00002025 */ move $a0, $zero +/* 04185C 7F00CD2C 0FC30776 */ jal get_textptr_for_textID +/* 041860 7F00CD30 34049C1B */ li $a0, 39963 +/* 041864 7F00CD34 8E8C0000 */ lw $t4, ($s4) +/* 041868 7F00CD38 00408825 */ move $s1, $v0 +/* 04186C 7F00CD3C AFA000F4 */ sw $zero, 0xf4($sp) +/* 041870 7F00CD40 AFA000F8 */ sw $zero, 0xf8($sp) +/* 041874 7F00CD44 27A400F8 */ addiu $a0, $sp, 0xf8 +/* 041878 7F00CD48 27A500F4 */ addiu $a1, $sp, 0xf4 +/* 04187C 7F00CD4C 00403025 */ move $a2, $v0 +/* 041880 7F00CD50 8E670000 */ lw $a3, ($s3) +/* 041884 7F00CD54 AFA00014 */ sw $zero, 0x14($sp) +/* 041888 7F00CD58 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04188C 7F00CD5C AFAC0010 */ sw $t4, 0x10($sp) +/* 041890 7F00CD60 8FB800F8 */ lw $t8, 0xf8($sp) +/* 041894 7F00CD64 241E011D */ li $fp, 285 +/* 041898 7F00CD68 241200F7 */ li $s2, 247 +/* 04189C 7F00CD6C 07010003 */ bgez $t8, .L7F00CD7C +/* 0418A0 7F00CD70 00187843 */ sra $t7, $t8, 1 +/* 0418A4 7F00CD74 27010001 */ addiu $at, $t8, 1 +/* 0418A8 7F00CD78 00017843 */ sra $t7, $at, 1 +.L7F00CD7C: +/* 0418AC 7F00CD7C 03CF8023 */ subu $s0, $fp, $t7 +/* 0418B0 7F00CD80 AFB000FC */ sw $s0, 0xfc($sp) +/* 0418B4 7F00CD84 0C001107 */ jal get_video2_settings_txtClipW +/* 0418B8 7F00CD88 AFB20100 */ sw $s2, 0x100($sp) +/* 0418BC 7F00CD8C 00028400 */ sll $s0, $v0, 0x10 +/* 0418C0 7F00CD90 0010CC03 */ sra $t9, $s0, 0x10 +/* 0418C4 7F00CD94 0C00110B */ jal get_video2_settings_txtClipH +/* 0418C8 7F00CD98 03208025 */ move $s0, $t9 +/* 0418CC 7F00CD9C 8E6A0000 */ lw $t2, ($s3) +/* 0418D0 7F00CDA0 8E8E0000 */ lw $t6, ($s4) +/* 0418D4 7F00CDA4 2409FFFF */ li $t1, -1 +/* 0418D8 7F00CDA8 AFA90018 */ sw $t1, 0x18($sp) +/* 0418DC 7F00CDAC 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 0418E0 7F00CDB0 02C02825 */ move $a1, $s6 +/* 0418E4 7F00CDB4 02E03025 */ move $a2, $s7 +/* 0418E8 7F00CDB8 02203825 */ move $a3, $s1 +/* 0418EC 7F00CDBC AFB0001C */ sw $s0, 0x1c($sp) +/* 0418F0 7F00CDC0 AFA20020 */ sw $v0, 0x20($sp) +/* 0418F4 7F00CDC4 AFA00024 */ sw $zero, 0x24($sp) +/* 0418F8 7F00CDC8 AFA00028 */ sw $zero, 0x28($sp) +/* 0418FC 7F00CDCC AFAA0010 */ sw $t2, 0x10($sp) +/* 041900 7F00CDD0 0FC2B6AF */ jal en_text_write_stuff +/* 041904 7F00CDD4 AFAE0014 */ sw $t6, 0x14($sp) +/* 041908 7F00CDD8 8FB20100 */ lw $s2, 0x100($sp) +/* 04190C 7F00CDDC 8FAB00F4 */ lw $t3, 0xf4($sp) +/* 041910 7F00CDE0 3C158003 */ lui $s5, %hi(folder_option_COPY_left_bound) +/* 041914 7F00CDE4 26B5ABC4 */ addiu $s5, %lo(folder_option_COPY_left_bound) # addiu $s5, $s5, -0x543c +/* 041918 7F00CDE8 024B6821 */ addu $t5, $s2, $t3 +/* 04191C 7F00CDEC 448D2000 */ mtc1 $t5, $f4 +/* 041920 7F00CDF0 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 041924 7F00CDF4 34049C1C */ li $a0, 39964 +/* 041928 7F00CDF8 468021A0 */ cvt.s.w $f6, $f4 +/* 04192C 7F00CDFC 0FC30776 */ jal get_textptr_for_textID +/* 041930 7F00CE00 E6A60008 */ swc1 $f6, 8($s5) +/* 041934 7F00CE04 8E880000 */ lw $t0, ($s4) +/* 041938 7F00CE08 00408825 */ move $s1, $v0 +/* 04193C 7F00CE0C AFA000F4 */ sw $zero, 0xf4($sp) +/* 041940 7F00CE10 AFA000F8 */ sw $zero, 0xf8($sp) +/* 041944 7F00CE14 27A400F8 */ addiu $a0, $sp, 0xf8 +/* 041948 7F00CE18 27A500F4 */ addiu $a1, $sp, 0xf4 +/* 04194C 7F00CE1C 00403025 */ move $a2, $v0 +/* 041950 7F00CE20 8E670000 */ lw $a3, ($s3) +/* 041954 7F00CE24 AFA00014 */ sw $zero, 0x14($sp) +/* 041958 7F00CE28 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04195C 7F00CE2C AFA80010 */ sw $t0, 0x10($sp) +/* 041960 7F00CE30 8FAC00F8 */ lw $t4, 0xf8($sp) +/* 041964 7F00CE34 24120165 */ li $s2, 357 +/* 041968 7F00CE38 AFB20100 */ sw $s2, 0x100($sp) +/* 04196C 7F00CE3C 05810003 */ bgez $t4, .L7F00CE4C +/* 041970 7F00CE40 000CC043 */ sra $t8, $t4, 1 +/* 041974 7F00CE44 25810001 */ addiu $at, $t4, 1 +/* 041978 7F00CE48 0001C043 */ sra $t8, $at, 1 +.L7F00CE4C: +/* 04197C 7F00CE4C 03D88023 */ subu $s0, $fp, $t8 +/* 041980 7F00CE50 0C001107 */ jal get_video2_settings_txtClipW +/* 041984 7F00CE54 AFB000FC */ sw $s0, 0xfc($sp) +/* 041988 7F00CE58 00028400 */ sll $s0, $v0, 0x10 +/* 04198C 7F00CE5C 00107C03 */ sra $t7, $s0, 0x10 +/* 041990 7F00CE60 0C00110B */ jal get_video2_settings_txtClipH +/* 041994 7F00CE64 01E08025 */ move $s0, $t7 +/* 041998 7F00CE68 8E790000 */ lw $t9, ($s3) +/* 04199C 7F00CE6C 8E8A0000 */ lw $t2, ($s4) +/* 0419A0 7F00CE70 240EFFFF */ li $t6, -1 +/* 0419A4 7F00CE74 AFAE0018 */ sw $t6, 0x18($sp) +/* 0419A8 7F00CE78 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 0419AC 7F00CE7C 02C02825 */ move $a1, $s6 +/* 0419B0 7F00CE80 02E03025 */ move $a2, $s7 +/* 0419B4 7F00CE84 02203825 */ move $a3, $s1 +/* 0419B8 7F00CE88 AFB0001C */ sw $s0, 0x1c($sp) +/* 0419BC 7F00CE8C AFA20020 */ sw $v0, 0x20($sp) +/* 0419C0 7F00CE90 AFA00024 */ sw $zero, 0x24($sp) +/* 0419C4 7F00CE94 AFA00028 */ sw $zero, 0x28($sp) +/* 0419C8 7F00CE98 AFB90010 */ sw $t9, 0x10($sp) +/* 0419CC 7F00CE9C 0FC2B6AF */ jal en_text_write_stuff +/* 0419D0 7F00CEA0 AFAA0014 */ sw $t2, 0x14($sp) +/* 0419D4 7F00CEA4 8FA90100 */ lw $t1, 0x100($sp) +/* 0419D8 7F00CEA8 8FAB00F4 */ lw $t3, 0xf4($sp) +/* 0419DC 7F00CEAC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0419E0 7F00CEB0 44810000 */ mtc1 $at, $f0 +/* 0419E4 7F00CEB4 012B6821 */ addu $t5, $t1, $t3 +/* 0419E8 7F00CEB8 448D4000 */ mtc1 $t5, $f8 +/* 0419EC 7F00CEBC 3C138003 */ lui $s3, %hi(folder_option_ERASE_left_bound) +/* 0419F0 7F00CEC0 3C014361 */ li $at, 0x43610000 # 225.000000 +/* 0419F4 7F00CEC4 468042A0 */ cvt.s.w $f10, $f8 +/* 0419F8 7F00CEC8 44818000 */ mtc1 $at, $f16 +/* 0419FC 7F00CECC 2673ABD4 */ addiu $s3, %lo(folder_option_ERASE_left_bound) # addiu $s3, $s3, -0x542c +/* 041A00 7F00CED0 3C118009 */ lui $s1, %hi(mainfolderimages) +/* 041A04 7F00CED4 3C018005 */ lui $at, %hi(D_80051A28) +/* 041A08 7F00CED8 2631D128 */ addiu $s1, %lo(mainfolderimages) # addiu $s1, $s1, -0x2ed8 +/* 041A0C 7F00CEDC E66A0008 */ swc1 $f10, 8($s3) +/* 041A10 7F00CEE0 C4321A28 */ lwc1 $f18, %lo(D_80051A28)($at) +/* 041A14 7F00CEE4 8E300000 */ lw $s0, ($s1) +/* 041A18 7F00CEE8 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 041A1C 7F00CEEC E7B000AC */ swc1 $f16, 0xac($sp) +/* 041A20 7F00CEF0 E7B200B0 */ swc1 $f18, 0xb0($sp) +/* 041A24 7F00CEF4 92080004 */ lbu $t0, 4($s0) +/* 041A28 7F00CEF8 27B201B8 */ addiu $s2, $sp, 0x1b8 +/* 041A2C 7F00CEFC 44882000 */ mtc1 $t0, $f4 +/* 041A30 7F00CF00 05010005 */ bgez $t0, .L7F00CF18 +/* 041A34 7F00CF04 468021A0 */ cvt.s.w $f6, $f4 +/* 041A38 7F00CF08 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 041A3C 7F00CF0C 44814000 */ mtc1 $at, $f8 +/* 041A40 7F00CF10 00000000 */ nop +/* 041A44 7F00CF14 46083180 */ add.s $f6, $f6, $f8 +.L7F00CF18: +/* 041A48 7F00CF18 46003282 */ mul.s $f10, $f6, $f0 +/* 041A4C 7F00CF1C E7AA00A4 */ swc1 $f10, 0xa4($sp) +/* 041A50 7F00CF20 920C0005 */ lbu $t4, 5($s0) +/* 041A54 7F00CF24 448C8000 */ mtc1 $t4, $f16 +/* 041A58 7F00CF28 05810005 */ bgez $t4, .L7F00CF40 +/* 041A5C 7F00CF2C 468084A0 */ cvt.s.w $f18, $f16 +/* 041A60 7F00CF30 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 041A64 7F00CF34 44812000 */ mtc1 $at, $f4 +/* 041A68 7F00CF38 00000000 */ nop +/* 041A6C 7F00CF3C 46049480 */ add.s $f18, $f18, $f4 +.L7F00CF40: +/* 041A70 7F00CF40 46009202 */ mul.s $f8, $f18, $f0 +/* 041A74 7F00CF44 02402025 */ move $a0, $s2 +/* 041A78 7F00CF48 02002825 */ move $a1, $s0 +/* 041A7C 7F00CF4C 24060004 */ li $a2, 4 +/* 041A80 7F00CF50 00003825 */ move $a3, $zero +/* 041A84 7F00CF54 AFA00010 */ sw $zero, 0x10($sp) +/* 041A88 7F00CF58 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 041A8C 7F00CF5C E7A800A8 */ swc1 $f8, 0xa8($sp) +/* 041A90 7F00CF60 8E300000 */ lw $s0, ($s1) +/* 041A94 7F00CF64 240F0001 */ li $t7, 1 +/* 041A98 7F00CF68 241900FF */ li $t9, 255 +/* 041A9C 7F00CF6C 92180005 */ lbu $t8, 5($s0) +/* 041AA0 7F00CF70 92070004 */ lbu $a3, 4($s0) +/* 041AA4 7F00CF74 240A00FF */ li $t2, 255 +/* 041AA8 7F00CF78 240E00FF */ li $t6, 255 +/* 041AAC 7F00CF7C 240900FF */ li $t1, 255 +/* 041AB0 7F00CF80 AFA9002C */ sw $t1, 0x2c($sp) +/* 041AB4 7F00CF84 AFAE0028 */ sw $t6, 0x28($sp) +/* 041AB8 7F00CF88 AFAA0024 */ sw $t2, 0x24($sp) +/* 041ABC 7F00CF8C AFB90020 */ sw $t9, 0x20($sp) +/* 041AC0 7F00CF90 AFAF001C */ sw $t7, 0x1c($sp) +/* 041AC4 7F00CF94 AFA00018 */ sw $zero, 0x18($sp) +/* 041AC8 7F00CF98 AFA00014 */ sw $zero, 0x14($sp) +/* 041ACC 7F00CF9C AFB80010 */ sw $t8, 0x10($sp) +/* 041AD0 7F00CFA0 920B0006 */ lbu $t3, 6($s0) +/* 041AD4 7F00CFA4 AFA00034 */ sw $zero, 0x34($sp) +/* 041AD8 7F00CFA8 02402025 */ move $a0, $s2 +/* 041ADC 7F00CFAC 000B682A */ slt $t5, $zero, $t3 +/* 041AE0 7F00CFB0 AFAD0030 */ sw $t5, 0x30($sp) +/* 041AE4 7F00CFB4 27A500AC */ addiu $a1, $sp, 0xac +/* 041AE8 7F00CFB8 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 041AEC 7F00CFBC 27A600A4 */ addiu $a2, $sp, 0xa4 +/* 041AF0 7F00CFC0 C7A600AC */ lwc1 $f6, 0xac($sp) +/* 041AF4 7F00CFC4 C7AA00A4 */ lwc1 $f10, 0xa4($sp) +/* 041AF8 7F00CFC8 C7A400B0 */ lwc1 $f4, 0xb0($sp) +/* 041AFC 7F00CFCC C7B200A8 */ lwc1 $f18, 0xa8($sp) +/* 041B00 7F00CFD0 460A3401 */ sub.s $f16, $f6, $f10 +/* 041B04 7F00CFD4 C7AA00B0 */ lwc1 $f10, 0xb0($sp) +/* 041B08 7F00CFD8 C7A600A8 */ lwc1 $f6, 0xa8($sp) +/* 041B0C 7F00CFDC 46122201 */ sub.s $f8, $f4, $f18 +/* 041B10 7F00CFE0 E6B00000 */ swc1 $f16, ($s5) +/* 041B14 7F00CFE4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 041B18 7F00CFE8 460A3400 */ add.s $f16, $f6, $f10 +/* 041B1C 7F00CFEC 44810000 */ mtc1 $at, $f0 +/* 041B20 7F00CFF0 E6A80004 */ swc1 $f8, 4($s5) +/* 041B24 7F00CFF4 3C018005 */ lui $at, %hi(D_80051A2C) +/* 041B28 7F00CFF8 E6B0000C */ swc1 $f16, 0xc($s5) +/* 041B2C 7F00CFFC C4241A2C */ lwc1 $f4, %lo(D_80051A2C)($at) +/* 041B30 7F00D000 3C018005 */ lui $at, %hi(D_80051A30) +/* 041B34 7F00D004 C4321A30 */ lwc1 $f18, %lo(D_80051A30)($at) +/* 041B38 7F00D008 8E300000 */ lw $s0, ($s1) +/* 041B3C 7F00D00C E7A4009C */ swc1 $f4, 0x9c($sp) +/* 041B40 7F00D010 E7B200A0 */ swc1 $f18, 0xa0($sp) +/* 041B44 7F00D014 92080010 */ lbu $t0, 0x10($s0) +/* 041B48 7F00D018 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 041B4C 7F00D01C 44884000 */ mtc1 $t0, $f8 +/* 041B50 7F00D020 05010004 */ bgez $t0, .L7F00D034 +/* 041B54 7F00D024 468041A0 */ cvt.s.w $f6, $f8 +/* 041B58 7F00D028 44815000 */ mtc1 $at, $f10 +/* 041B5C 7F00D02C 00000000 */ nop +/* 041B60 7F00D030 460A3180 */ add.s $f6, $f6, $f10 +.L7F00D034: +/* 041B64 7F00D034 46003402 */ mul.s $f16, $f6, $f0 +/* 041B68 7F00D038 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 041B6C 7F00D03C E7B00094 */ swc1 $f16, 0x94($sp) +/* 041B70 7F00D040 920C0011 */ lbu $t4, 0x11($s0) +/* 041B74 7F00D044 448C2000 */ mtc1 $t4, $f4 +/* 041B78 7F00D048 05810004 */ bgez $t4, .L7F00D05C +/* 041B7C 7F00D04C 468024A0 */ cvt.s.w $f18, $f4 +/* 041B80 7F00D050 44814000 */ mtc1 $at, $f8 +/* 041B84 7F00D054 00000000 */ nop +/* 041B88 7F00D058 46089480 */ add.s $f18, $f18, $f8 +.L7F00D05C: +/* 041B8C 7F00D05C 46009282 */ mul.s $f10, $f18, $f0 +/* 041B90 7F00D060 02402025 */ move $a0, $s2 +/* 041B94 7F00D064 2605000C */ addiu $a1, $s0, 0xc +/* 041B98 7F00D068 24060004 */ li $a2, 4 +/* 041B9C 7F00D06C 00003825 */ move $a3, $zero +/* 041BA0 7F00D070 AFA00010 */ sw $zero, 0x10($sp) +/* 041BA4 7F00D074 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 041BA8 7F00D078 E7AA0098 */ swc1 $f10, 0x98($sp) +/* 041BAC 7F00D07C 8E300000 */ lw $s0, ($s1) +/* 041BB0 7F00D080 240F0001 */ li $t7, 1 +/* 041BB4 7F00D084 241900FF */ li $t9, 255 +/* 041BB8 7F00D088 92180011 */ lbu $t8, 0x11($s0) +/* 041BBC 7F00D08C 92070010 */ lbu $a3, 0x10($s0) +/* 041BC0 7F00D090 240A00FF */ li $t2, 255 +/* 041BC4 7F00D094 240E00FF */ li $t6, 255 +/* 041BC8 7F00D098 240900FF */ li $t1, 255 +/* 041BCC 7F00D09C AFA9002C */ sw $t1, 0x2c($sp) +/* 041BD0 7F00D0A0 AFAE0028 */ sw $t6, 0x28($sp) +/* 041BD4 7F00D0A4 AFAA0024 */ sw $t2, 0x24($sp) +/* 041BD8 7F00D0A8 AFB90020 */ sw $t9, 0x20($sp) +/* 041BDC 7F00D0AC AFAF001C */ sw $t7, 0x1c($sp) +/* 041BE0 7F00D0B0 AFA00018 */ sw $zero, 0x18($sp) +/* 041BE4 7F00D0B4 AFA00014 */ sw $zero, 0x14($sp) +/* 041BE8 7F00D0B8 AFB80010 */ sw $t8, 0x10($sp) +/* 041BEC 7F00D0BC 920B0012 */ lbu $t3, 0x12($s0) +/* 041BF0 7F00D0C0 AFA00034 */ sw $zero, 0x34($sp) +/* 041BF4 7F00D0C4 02402025 */ move $a0, $s2 +/* 041BF8 7F00D0C8 000B682A */ slt $t5, $zero, $t3 +/* 041BFC 7F00D0CC AFAD0030 */ sw $t5, 0x30($sp) +/* 041C00 7F00D0D0 27A5009C */ addiu $a1, $sp, 0x9c +/* 041C04 7F00D0D4 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 041C08 7F00D0D8 27A60094 */ addiu $a2, $sp, 0x94 +/* 041C0C 7F00D0DC C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 041C10 7F00D0E0 C7B00094 */ lwc1 $f16, 0x94($sp) +/* 041C14 7F00D0E4 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 041C18 7F00D0E8 C7B20098 */ lwc1 $f18, 0x98($sp) +/* 041C1C 7F00D0EC 46103101 */ sub.s $f4, $f6, $f16 +/* 041C20 7F00D0F0 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 041C24 7F00D0F4 C7A60098 */ lwc1 $f6, 0x98($sp) +/* 041C28 7F00D0F8 46124281 */ sub.s $f10, $f8, $f18 +/* 041C2C 7F00D0FC E6640000 */ swc1 $f4, ($s3) +/* 041C30 7F00D100 3C0142DC */ li $at, 0x42DC0000 # 110.000000 +/* 041C34 7F00D104 46103100 */ add.s $f4, $f6, $f16 +/* 041C38 7F00D108 44814000 */ mtc1 $at, $f8 +/* 041C3C 7F00D10C E66A0004 */ swc1 $f10, 4($s3) +/* 041C40 7F00D110 3C018005 */ lui $at, %hi(D_80051A34) +/* 041C44 7F00D114 E664000C */ swc1 $f4, 0xc($s3) +/* 041C48 7F00D118 C4321A34 */ lwc1 $f18, %lo(D_80051A34)($at) +/* 041C4C 7F00D11C 8E300000 */ lw $s0, ($s1) +/* 041C50 7F00D120 E7A8008C */ swc1 $f8, 0x8c($sp) +/* 041C54 7F00D124 E7B20090 */ swc1 $f18, 0x90($sp) +/* 041C58 7F00D128 9208001C */ lbu $t0, 0x1c($s0) +/* 041C5C 7F00D12C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 041C60 7F00D130 44885000 */ mtc1 $t0, $f10 +/* 041C64 7F00D134 05010004 */ bgez $t0, .L7F00D148 +/* 041C68 7F00D138 468051A0 */ cvt.s.w $f6, $f10 +/* 041C6C 7F00D13C 44818000 */ mtc1 $at, $f16 +/* 041C70 7F00D140 00000000 */ nop +/* 041C74 7F00D144 46103180 */ add.s $f6, $f6, $f16 +.L7F00D148: +/* 041C78 7F00D148 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 041C7C 7F00D14C 44812000 */ mtc1 $at, $f4 +/* 041C80 7F00D150 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 041C84 7F00D154 46043202 */ mul.s $f8, $f6, $f4 +/* 041C88 7F00D158 E7A80084 */ swc1 $f8, 0x84($sp) +/* 041C8C 7F00D15C 920C001D */ lbu $t4, 0x1d($s0) +/* 041C90 7F00D160 448C9000 */ mtc1 $t4, $f18 +/* 041C94 7F00D164 05810004 */ bgez $t4, .L7F00D178 +/* 041C98 7F00D168 468092A0 */ cvt.s.w $f10, $f18 +/* 041C9C 7F00D16C 44818000 */ mtc1 $at, $f16 +/* 041CA0 7F00D170 00000000 */ nop +/* 041CA4 7F00D174 46105280 */ add.s $f10, $f10, $f16 +.L7F00D178: +/* 041CA8 7F00D178 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 041CAC 7F00D17C 44813000 */ mtc1 $at, $f6 +/* 041CB0 7F00D180 02402025 */ move $a0, $s2 +/* 041CB4 7F00D184 26050018 */ addiu $a1, $s0, 0x18 +/* 041CB8 7F00D188 46065102 */ mul.s $f4, $f10, $f6 +/* 041CBC 7F00D18C 24060004 */ li $a2, 4 +/* 041CC0 7F00D190 00003825 */ move $a3, $zero +/* 041CC4 7F00D194 AFA00010 */ sw $zero, 0x10($sp) +/* 041CC8 7F00D198 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 041CCC 7F00D19C E7A40088 */ swc1 $f4, 0x88($sp) +/* 041CD0 7F00D1A0 8E300000 */ lw $s0, ($s1) +/* 041CD4 7F00D1A4 240F0001 */ li $t7, 1 +/* 041CD8 7F00D1A8 241900FF */ li $t9, 255 +/* 041CDC 7F00D1AC 9218001D */ lbu $t8, 0x1d($s0) +/* 041CE0 7F00D1B0 9207001C */ lbu $a3, 0x1c($s0) +/* 041CE4 7F00D1B4 240A00FF */ li $t2, 255 +/* 041CE8 7F00D1B8 240E00FF */ li $t6, 255 +/* 041CEC 7F00D1BC 240900FF */ li $t1, 255 +/* 041CF0 7F00D1C0 AFA9002C */ sw $t1, 0x2c($sp) +/* 041CF4 7F00D1C4 AFAE0028 */ sw $t6, 0x28($sp) +/* 041CF8 7F00D1C8 AFAA0024 */ sw $t2, 0x24($sp) +/* 041CFC 7F00D1CC AFB90020 */ sw $t9, 0x20($sp) +/* 041D00 7F00D1D0 AFAF001C */ sw $t7, 0x1c($sp) +/* 041D04 7F00D1D4 AFA00018 */ sw $zero, 0x18($sp) +/* 041D08 7F00D1D8 AFA00014 */ sw $zero, 0x14($sp) +/* 041D0C 7F00D1DC AFB80010 */ sw $t8, 0x10($sp) +/* 041D10 7F00D1E0 920B001E */ lbu $t3, 0x1e($s0) +/* 041D14 7F00D1E4 AFA00034 */ sw $zero, 0x34($sp) +/* 041D18 7F00D1E8 02402025 */ move $a0, $s2 +/* 041D1C 7F00D1EC 000B682A */ slt $t5, $zero, $t3 +/* 041D20 7F00D1F0 AFAD0030 */ sw $t5, 0x30($sp) +/* 041D24 7F00D1F4 27A5008C */ addiu $a1, $sp, 0x8c +/* 041D28 7F00D1F8 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 041D2C 7F00D1FC 27A60084 */ addiu $a2, $sp, 0x84 +/* 041D30 7F00D200 3C088003 */ lui $t0, %hi(folder_selected_for_deletion) +/* 041D34 7F00D204 8D08A91C */ lw $t0, %lo(folder_selected_for_deletion)($t0) +/* 041D38 7F00D208 05030005 */ bgezl $t0, .L7F00D220 +/* 041D3C 7F00D20C 8FBF0064 */ lw $ra, 0x64($sp) +/* 041D40 7F00D210 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 041D44 7F00D214 8FA401B8 */ lw $a0, 0x1b8($sp) +/* 041D48 7F00D218 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 041D4C 7F00D21C 8FBF0064 */ lw $ra, 0x64($sp) +.L7F00D220: +/* 041D50 7F00D220 8FA201B8 */ lw $v0, 0x1b8($sp) +/* 041D54 7F00D224 8FB00040 */ lw $s0, 0x40($sp) +/* 041D58 7F00D228 8FB10044 */ lw $s1, 0x44($sp) +/* 041D5C 7F00D22C 8FB20048 */ lw $s2, 0x48($sp) +/* 041D60 7F00D230 8FB3004C */ lw $s3, 0x4c($sp) +/* 041D64 7F00D234 8FB40050 */ lw $s4, 0x50($sp) +/* 041D68 7F00D238 8FB50054 */ lw $s5, 0x54($sp) +/* 041D6C 7F00D23C 8FB60058 */ lw $s6, 0x58($sp) +/* 041D70 7F00D240 8FB7005C */ lw $s7, 0x5c($sp) +/* 041D74 7F00D244 8FBE0060 */ lw $fp, 0x60($sp) +/* 041D78 7F00D248 03E00008 */ jr $ra +/* 041D7C 7F00D24C 27BD01B8 */ addiu $sp, $sp, 0x1b8 +) +#endif + + + +void init_menu06_modeselect(void) +{ + gamemode = -1; + tab_2_selected = 0; + tab_3_selected = 0; + load_walletbond(); + copyCurrentEEPROMtoStack(); +} + +void update_menu06_modesel(void) { + return; +} + + + + + + +#ifdef NONMATCHING +void interface_menu06_modesel(void) +{ + u32 i; + + is_cheat_menu_available = FALSE; + for (i=1; i != 0x4b; i++) + { + if (check_if_cheat_available(i) == 0) + { + cheat_available[i] = FALSE; + } + else + { + cheat_available[i] = TRUE; + is_cheat_menu_available = TRUE; + } + } + + setvideo_far(60.0f); + video_related_21((1.33333337f); + set_page_height(100.0f, 10000.0f); + set_video2_settings_offset_24(0); + disable_all_switches(ptr_folder_object_instance); + + select_load_bond_picture(ptr_folder_object_instance, removed_would_have_returned_bond_for_folder_num(selected_folder_num)); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 7, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 2, 1); + tab_3_highlight = FALSE; + mission_difficulty_highlighted = DIFFICULTY_MULTI; + if (isontab3() == 0) { + if ((is_cheat_menu_available == FALSE) || (cursor_v_pos < 275.0f)) { + if ((cursor_v_pos < 243.0f) || + (get_attached_controller_count() < 2)) { + mission_difficulty_highlighted = DIFFICULTY_AGENT; + if (get_controller_buttons_pressed('\0', START_BUTTON|Z_TRIG|A_BUTTON)) { + gamemode = GAMEMODE_SOLO; + play_sfx_a1(ptr_sfx_buf, 0xc5, NULL); + } + } + else { + mission_difficulty_highlighted = DIFFICULTY_SECRET; + if (get_controller_buttons_pressed('\0', START_BUTTON|Z_TRIG|A_BUTTON)) { + gamemode = GAMEMODE_MULTI; + play_sfx_a1(ptr_sfx_buf, 0xc5, NULL); + } + } + } + else { + mission_difficulty_highlighted = DIFFICULTY_00; + if (get_controller_buttons_pressed('\0', START_BUTTON|Z_TRIG|A_BUTTON)) { + gamemode = GAMEMODE_CHEATS; + play_sfx_a1(ptr_sfx_buf, 0xc5, NULL); + } + } + } + else { + tab_3_highlight = TRUE; + if (get_controller_buttons_pressed('\0', START_BUTTON|Z_TRIG|A_BUTTON)) { + tab_3_selected = TRUE; + play_sfx_a1(ptr_sfx_buf, 199, NULL); + } + } + if (get_controller_buttons_pressed('\0',B_BUTTON)) { + tab_3_selected = TRUE; + play_sfx_a1(ptr_sfx_buf, 199, NULL); + } + menu_control_stick_tracking(); + if (gamemode == GAMEMODE_SOLO) { + set_menu_to_mode(MENU_MISSION_SELECT, 0); + set_cursor_to_stage_solo(0); + } + else { + if (gamemode == GAMEMODE_MULTI) { + set_menu_to_mode(MENU_MP_OPTIONS, 0); + } + else { + if (gamemode == GAMEMODE_CHEATS) { + set_menu_to_mode(MENU_CHEAT, 0); + } + else { + if (tab_3_selected != FALSE) { + set_menu_to_mode(MENU_FILE_SELECT, 0); + } + } + } + } + return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051A38 +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_80051A3C +.word 0x461C4000 /* 10000.0;*/ +glabel D_80051A40 +.word 0x43898000 /* 275.0;*/ +.text +glabel interface_menu06_modesel +/* 041DC8 7F00D298 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 041DCC 7F00D29C AFB00018 */ sw $s0, 0x18($sp) +/* 041DD0 7F00D2A0 3C018003 */ lui $at, %hi(is_cheat_menu_available) +/* 041DD4 7F00D2A4 3C038007 */ lui $v1, %hi(cheat_available) +/* 041DD8 7F00D2A8 AFBF001C */ sw $ra, 0x1c($sp) +/* 041DDC 7F00D2AC AC20A94C */ sw $zero, %lo(is_cheat_menu_available)($at) +/* 041DE0 7F00D2B0 24639651 */ addiu $v1, %lo(cheat_available) # addiu $v1, $v1, -0x69af +/* 041DE4 7F00D2B4 24100001 */ li $s0, 1 +.L7F00D2B8: +/* 041DE8 7F00D2B8 02002025 */ move $a0, $s0 +/* 041DEC 7F00D2BC 0FC02612 */ jal check_if_cheat_available +/* 041DF0 7F00D2C0 AFA30024 */ sw $v1, 0x24($sp) +/* 041DF4 7F00D2C4 10400007 */ beqz $v0, .L7F00D2E4 +/* 041DF8 7F00D2C8 8FA30024 */ lw $v1, 0x24($sp) +/* 041DFC 7F00D2CC 240E0001 */ li $t6, 1 +/* 041E00 7F00D2D0 A06E0000 */ sb $t6, ($v1) +/* 041E04 7F00D2D4 240F0001 */ li $t7, 1 +/* 041E08 7F00D2D8 3C018003 */ lui $at, %hi(is_cheat_menu_available) +/* 041E0C 7F00D2DC 10000002 */ b .L7F00D2E8 +/* 041E10 7F00D2E0 AC2FA94C */ sw $t7, %lo(is_cheat_menu_available)($at) +.L7F00D2E4: +/* 041E14 7F00D2E4 A0600000 */ sb $zero, ($v1) +.L7F00D2E8: +/* 041E18 7F00D2E8 26100001 */ addiu $s0, $s0, 1 +/* 041E1C 7F00D2EC 2401004B */ li $at, 75 +/* 041E20 7F00D2F0 1601FFF1 */ bne $s0, $at, .L7F00D2B8 +/* 041E24 7F00D2F4 24630001 */ addiu $v1, $v1, 1 +/* 041E28 7F00D2F8 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 041E2C 7F00D2FC 44816000 */ mtc1 $at, $f12 +/* 041E30 7F00D300 0C001151 */ jal setvideo_far +/* 041E34 7F00D304 00000000 */ nop +/* 041E38 7F00D308 3C018005 */ lui $at, %hi(D_80051A38) +/* 041E3C 7F00D30C 0C001164 */ jal video_related_21 +/* 041E40 7F00D310 C42C1A38 */ lwc1 $f12, %lo(D_80051A38)($at) +/* 041E44 7F00D314 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 041E48 7F00D318 44816000 */ mtc1 $at, $f12 +/* 041E4C 7F00D31C 3C018005 */ lui $at, %hi(D_80051A3C) +/* 041E50 7F00D320 0C001194 */ jal set_page_height +/* 041E54 7F00D324 C42E1A3C */ lwc1 $f14, %lo(D_80051A3C)($at) +/* 041E58 7F00D328 0C00114D */ jal set_video2_settings_offset_24 +/* 041E5C 7F00D32C 00002025 */ move $a0, $zero +/* 041E60 7F00D330 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 041E64 7F00D334 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 041E68 7F00D338 0FC02DC9 */ jal disable_all_switches +/* 041E6C 7F00D33C 8E040000 */ lw $a0, ($s0) +/* 041E70 7F00D340 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 041E74 7F00D344 0FC07AF0 */ jal removed_would_have_returned_bond_for_folder_num +/* 041E78 7F00D348 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 041E7C 7F00D34C 8E040000 */ lw $a0, ($s0) +/* 041E80 7F00D350 0FC02E02 */ jal select_load_bond_picture +/* 041E84 7F00D354 00402825 */ move $a1, $v0 +/* 041E88 7F00D358 8E040000 */ lw $a0, ($s0) +/* 041E8C 7F00D35C 00002825 */ move $a1, $zero +/* 041E90 7F00D360 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 041E94 7F00D364 24060001 */ li $a2, 1 +/* 041E98 7F00D368 8E040000 */ lw $a0, ($s0) +/* 041E9C 7F00D36C 24050001 */ li $a1, 1 +/* 041EA0 7F00D370 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 041EA4 7F00D374 24060001 */ li $a2, 1 +/* 041EA8 7F00D378 8E040000 */ lw $a0, ($s0) +/* 041EAC 7F00D37C 24050003 */ li $a1, 3 +/* 041EB0 7F00D380 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 041EB4 7F00D384 24060001 */ li $a2, 1 +/* 041EB8 7F00D388 8E040000 */ lw $a0, ($s0) +/* 041EBC 7F00D38C 24050007 */ li $a1, 7 +/* 041EC0 7F00D390 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 041EC4 7F00D394 24060001 */ li $a2, 1 +/* 041EC8 7F00D398 8E040000 */ lw $a0, ($s0) +/* 041ECC 7F00D39C 24050002 */ li $a1, 2 +/* 041ED0 7F00D3A0 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 041ED4 7F00D3A4 24060001 */ li $a2, 1 +/* 041ED8 7F00D3A8 3C108007 */ lui $s0, %hi(mission_difficulty_highlighted) +/* 041EDC 7F00D3AC 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 041EE0 7F00D3B0 26109784 */ addiu $s0, %lo(mission_difficulty_highlighted) # addiu $s0, $s0, -0x687c +/* 041EE4 7F00D3B4 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 041EE8 7F00D3B8 2418FFFF */ li $t8, -1 +/* 041EEC 7F00D3BC 0FC028E7 */ jal isontab3 +/* 041EF0 7F00D3C0 AE180000 */ sw $t8, ($s0) +/* 041EF4 7F00D3C4 10400012 */ beqz $v0, .L7F00D410 +/* 041EF8 7F00D3C8 3C098003 */ lui $t1, %hi(is_cheat_menu_available) +/* 041EFC 7F00D3CC 24190001 */ li $t9, 1 +/* 041F00 7F00D3D0 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 041F04 7F00D3D4 AC39A8E4 */ sw $t9, %lo(tab_3_highlight)($at) +/* 041F08 7F00D3D8 00002025 */ move $a0, $zero +/* 041F0C 7F00D3DC 0C0030EB */ jal get_controller_buttons_pressed +/* 041F10 7F00D3E0 3405B000 */ li $a1, 45056 +/* 041F14 7F00D3E4 1040004D */ beqz $v0, .L7F00D51C +/* 041F18 7F00D3E8 24080001 */ li $t0, 1 +/* 041F1C 7F00D3EC 3C018003 */ lui $at, %hi(tab_3_selected) +/* 041F20 7F00D3F0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 041F24 7F00D3F4 AC28A8D8 */ sw $t0, %lo(tab_3_selected)($at) +/* 041F28 7F00D3F8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 041F2C 7F00D3FC 240500C7 */ li $a1, 199 +/* 041F30 7F00D400 0C002382 */ jal play_sfx_a1 +/* 041F34 7F00D404 00003025 */ move $a2, $zero +/* 041F38 7F00D408 10000045 */ b .L7F00D520 +/* 041F3C 7F00D40C 00002025 */ move $a0, $zero +.L7F00D410: +/* 041F40 7F00D410 8D29A94C */ lw $t1, %lo(is_cheat_menu_available)($t1) +/* 041F44 7F00D414 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 041F48 7F00D418 11200017 */ beqz $t1, .L7F00D478 +/* 041F4C 7F00D41C 00000000 */ nop +/* 041F50 7F00D420 C424A90C */ lwc1 $f4, %lo(cursor_v_pos)($at) +/* 041F54 7F00D424 3C018005 */ lui $at, %hi(D_80051A40) +/* 041F58 7F00D428 C4261A40 */ lwc1 $f6, %lo(D_80051A40)($at) +/* 041F5C 7F00D42C 240A0002 */ li $t2, 2 +/* 041F60 7F00D430 00002025 */ move $a0, $zero +/* 041F64 7F00D434 4604303E */ c.le.s $f6, $f4 +/* 041F68 7F00D438 3405B000 */ li $a1, 45056 +/* 041F6C 7F00D43C 4500000E */ bc1f .L7F00D478 +/* 041F70 7F00D440 00000000 */ nop +/* 041F74 7F00D444 0C0030EB */ jal get_controller_buttons_pressed +/* 041F78 7F00D448 AE0A0000 */ sw $t2, ($s0) +/* 041F7C 7F00D44C 10400033 */ beqz $v0, .L7F00D51C +/* 041F80 7F00D450 240B0002 */ li $t3, 2 +/* 041F84 7F00D454 3C018003 */ lui $at, %hi(gamemode) +/* 041F88 7F00D458 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 041F8C 7F00D45C AC2BA8F0 */ sw $t3, %lo(gamemode)($at) +/* 041F90 7F00D460 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 041F94 7F00D464 240500C5 */ li $a1, 197 +/* 041F98 7F00D468 0C002382 */ jal play_sfx_a1 +/* 041F9C 7F00D46C 00003025 */ move $a2, $zero +/* 041FA0 7F00D470 1000002B */ b .L7F00D520 +/* 041FA4 7F00D474 00002025 */ move $a0, $zero +.L7F00D478: +/* 041FA8 7F00D478 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 041FAC 7F00D47C C428A90C */ lwc1 $f8, %lo(cursor_v_pos)($at) +/* 041FB0 7F00D480 3C014373 */ li $at, 0x43730000 # 243.000000 +/* 041FB4 7F00D484 44815000 */ mtc1 $at, $f10 +/* 041FB8 7F00D488 00000000 */ nop +/* 041FBC 7F00D48C 4608503E */ c.le.s $f10, $f8 +/* 041FC0 7F00D490 00000000 */ nop +/* 041FC4 7F00D494 45020016 */ bc1fl .L7F00D4F0 +/* 041FC8 7F00D498 AE000000 */ sw $zero, ($s0) +/* 041FCC 7F00D49C 0C002E7E */ jal get_attached_controller_count +/* 041FD0 7F00D4A0 00000000 */ nop +/* 041FD4 7F00D4A4 28410002 */ slti $at, $v0, 2 +/* 041FD8 7F00D4A8 14200010 */ bnez $at, .L7F00D4EC +/* 041FDC 7F00D4AC 240C0001 */ li $t4, 1 +/* 041FE0 7F00D4B0 AE0C0000 */ sw $t4, ($s0) +/* 041FE4 7F00D4B4 00002025 */ move $a0, $zero +/* 041FE8 7F00D4B8 0C0030EB */ jal get_controller_buttons_pressed +/* 041FEC 7F00D4BC 3405B000 */ li $a1, 45056 +/* 041FF0 7F00D4C0 10400016 */ beqz $v0, .L7F00D51C +/* 041FF4 7F00D4C4 240D0001 */ li $t5, 1 +/* 041FF8 7F00D4C8 3C018003 */ lui $at, %hi(gamemode) +/* 041FFC 7F00D4CC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042000 7F00D4D0 AC2DA8F0 */ sw $t5, %lo(gamemode)($at) +/* 042004 7F00D4D4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042008 7F00D4D8 240500C5 */ li $a1, 197 +/* 04200C 7F00D4DC 0C002382 */ jal play_sfx_a1 +/* 042010 7F00D4E0 00003025 */ move $a2, $zero +/* 042014 7F00D4E4 1000000E */ b .L7F00D520 +/* 042018 7F00D4E8 00002025 */ move $a0, $zero +.L7F00D4EC: +/* 04201C 7F00D4EC AE000000 */ sw $zero, ($s0) +.L7F00D4F0: +/* 042020 7F00D4F0 00002025 */ move $a0, $zero +/* 042024 7F00D4F4 0C0030EB */ jal get_controller_buttons_pressed +/* 042028 7F00D4F8 3405B000 */ li $a1, 45056 +/* 04202C 7F00D4FC 10400007 */ beqz $v0, .L7F00D51C +/* 042030 7F00D500 3C018003 */ lui $at, %hi(gamemode) +/* 042034 7F00D504 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042038 7F00D508 AC20A8F0 */ sw $zero, %lo(gamemode)($at) +/* 04203C 7F00D50C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042040 7F00D510 240500C5 */ li $a1, 197 +/* 042044 7F00D514 0C002382 */ jal play_sfx_a1 +/* 042048 7F00D518 00003025 */ move $a2, $zero +.L7F00D51C: +/* 04204C 7F00D51C 00002025 */ move $a0, $zero +.L7F00D520: +/* 042050 7F00D520 0C0030EB */ jal get_controller_buttons_pressed +/* 042054 7F00D524 24054000 */ li $a1, 16384 +/* 042058 7F00D528 10400008 */ beqz $v0, .L7F00D54C +/* 04205C 7F00D52C 240E0001 */ li $t6, 1 +/* 042060 7F00D530 3C018003 */ lui $at, %hi(tab_3_selected) +/* 042064 7F00D534 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042068 7F00D538 AC2EA8D8 */ sw $t6, %lo(tab_3_selected)($at) +/* 04206C 7F00D53C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042070 7F00D540 240500C7 */ li $a1, 199 +/* 042074 7F00D544 0C002382 */ jal play_sfx_a1 +/* 042078 7F00D548 00003025 */ move $a2, $zero +.L7F00D54C: +/* 04207C 7F00D54C 0FC026E1 */ jal menu_control_stick_tracking +/* 042080 7F00D550 00000000 */ nop +/* 042084 7F00D554 3C028003 */ lui $v0, %hi(gamemode) +/* 042088 7F00D558 8C42A8F0 */ lw $v0, %lo(gamemode)($v0) +/* 04208C 7F00D55C 24040007 */ li $a0, 7 +/* 042090 7F00D560 24010001 */ li $at, 1 +/* 042094 7F00D564 14400007 */ bnez $v0, .L7F00D584 +/* 042098 7F00D568 00000000 */ nop +/* 04209C 7F00D56C 0FC06975 */ jal set_menu_to_mode +/* 0420A0 7F00D570 00002825 */ move $a1, $zero +/* 0420A4 7F00D574 0FC038F8 */ jal set_cursor_to_stage_solo +/* 0420A8 7F00D578 00002025 */ move $a0, $zero +/* 0420AC 7F00D57C 10000016 */ b .L7F00D5D8 +/* 0420B0 7F00D580 8FBF001C */ lw $ra, 0x1c($sp) +.L7F00D584: +/* 0420B4 7F00D584 14410005 */ bne $v0, $at, .L7F00D59C +/* 0420B8 7F00D588 2404000E */ li $a0, 14 +/* 0420BC 7F00D58C 0FC06975 */ jal set_menu_to_mode +/* 0420C0 7F00D590 00002825 */ move $a1, $zero +/* 0420C4 7F00D594 10000010 */ b .L7F00D5D8 +/* 0420C8 7F00D598 8FBF001C */ lw $ra, 0x1c($sp) +.L7F00D59C: +/* 0420CC 7F00D59C 24010002 */ li $at, 2 +/* 0420D0 7F00D5A0 14410006 */ bne $v0, $at, .L7F00D5BC +/* 0420D4 7F00D5A4 3C0F8003 */ lui $t7, %hi(tab_3_selected) +/* 0420D8 7F00D5A8 24040015 */ li $a0, 21 +/* 0420DC 7F00D5AC 0FC06975 */ jal set_menu_to_mode +/* 0420E0 7F00D5B0 00002825 */ move $a1, $zero +/* 0420E4 7F00D5B4 10000008 */ b .L7F00D5D8 +/* 0420E8 7F00D5B8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F00D5BC: +/* 0420EC 7F00D5BC 8DEFA8D8 */ lw $t7, %lo(tab_3_selected)($t7) +/* 0420F0 7F00D5C0 24040005 */ li $a0, 5 +/* 0420F4 7F00D5C4 51E00004 */ beql $t7, $zero, .L7F00D5D8 +/* 0420F8 7F00D5C8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0420FC 7F00D5CC 0FC06975 */ jal set_menu_to_mode +/* 042100 7F00D5D0 00002825 */ move $a1, $zero +/* 042104 7F00D5D4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F00D5D8: +/* 042108 7F00D5D8 8FB00018 */ lw $s0, 0x18($sp) +/* 04210C 7F00D5DC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 042110 7F00D5E0 03E00008 */ jr $ra +/* 042114 7F00D5E4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 sub_GAME_7F00D5E8(s32 arg0) +{ + s32 sp11C; + s32 sp118; + s32 sp114; + s32 sp110; + s32 sp10C; + s32 spC8; + s32 sp88; + s32 sp48; + f32 temp_f0; + f32 temp_f2; + s32 temp_ret; + s32 temp_s0; + void *temp_t8; + void *temp_t9; + void *temp_v0; + void *phi_t9; + void *phi_t8; + s32 phi_s1; + s32 phi_s0; + + temp_v0 = &D_8002AB94 + (selected_folder_num * 0xc); + phi_t9 = &D_8002AF84; + phi_t8 = &sp10C; +loop_1: + temp_t9 = phi_t9 + 0xc; + temp_t8 = phi_t8 + 0xc; + temp_t8->unk-C = (s32) *phi_t9; + temp_t8->unk-8 = (s32) temp_t9->unk-8; + temp_t8->unk-4 = (s32) temp_t9->unk-4; + phi_t9 = temp_t9; + phi_t8 = temp_t8; + if (temp_t9 != (&D_8002AF84 + 0x3c)) + { + goto loop_1; + } + temp_t8->unk0 = (s32) temp_t9->unk0; + temp_f0 = temp_v0->unk0 + D_8002AFC4; + temp_f2 = temp_v0->unk4 + D_8002AFC8; + sub_GAME_7F059694(0, &spC8, temp_f0, temp_f2, 4000.0f + D_8002AFCC, temp_f0, temp_f2, 1.0f); + matrix_4x4_set_identity_and_position(&D_8002AB94 + (selected_folder_num * 0xc), &sp88); + matrix_scalar_multiply(0x3e800000, &sp88); + matrix_4x4_multiply_in_place(&spC8, &sp88); + temp_ret = sub_GAME_7F0BD714(ptr_folder_object_instance->unk8->unkE << 6); + sp11C = temp_ret; + matrix_4x4_copy(&sp88, temp_ret); + ptr_folder_object_instance->unkC = sp11C; + sp114 = 3; + sp110 = 0; + sp118 = arg0; + subdraw(&sp10C, ptr_folder_object_instance); + arg0 = sp118; + phi_s1 = 0; + phi_s0 = 0; + if (ptr_folder_object_instance->unk8->unkE > 0) + { +loop_3: + matrix_4x4_copy(ptr_folder_object_instance->unkC + phi_s1, &sp48); + sub_GAME_7F058C9C(&sp48, ptr_folder_object_instance->unkC + (phi_s0 << 6)); + temp_s0 = phi_s0 + 1; + phi_s1 = phi_s1 + 0x40; + phi_s0 = temp_s0; + if (temp_s0 < ptr_folder_object_instance->unk8->unkE) + { + goto loop_3; + } + } + return arg0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F00D5E8 +/* 042118 7F00D5E8 27BDFEA8 */ addiu $sp, $sp, -0x158 +/* 04211C 7F00D5EC AFB20034 */ sw $s2, 0x34($sp) +/* 042120 7F00D5F0 3C128003 */ lui $s2, %hi(selected_folder_num) +/* 042124 7F00D5F4 2652A8E8 */ addiu $s2, %lo(selected_folder_num) # addiu $s2, $s2, -0x5718 +/* 042128 7F00D5F8 8E4E0000 */ lw $t6, ($s2) +/* 04212C 7F00D5FC AFB30038 */ sw $s3, 0x38($sp) +/* 042130 7F00D600 2413000C */ li $s3, 12 +/* 042134 7F00D604 01D30019 */ multu $t6, $s3 +/* 042138 7F00D608 AFB10030 */ sw $s1, 0x30($sp) +/* 04213C 7F00D60C 3C118003 */ lui $s1, %hi(D_8002AB94) +/* 042140 7F00D610 2631AB94 */ addiu $s1, %lo(D_8002AB94) # addiu $s1, $s1, -0x546c +/* 042144 7F00D614 3C198003 */ lui $t9, %hi(D_8002AF84) +/* 042148 7F00D618 2739AF84 */ addiu $t9, %lo(D_8002AF84) # addiu $t9, $t9, -0x507c +/* 04214C 7F00D61C 44806000 */ mtc1 $zero, $f12 +/* 042150 7F00D620 AFBF003C */ sw $ra, 0x3c($sp) +/* 042154 7F00D624 AFB0002C */ sw $s0, 0x2c($sp) +/* 042158 7F00D628 AFA40158 */ sw $a0, 0x158($sp) +/* 04215C 7F00D62C 00007812 */ mflo $t7 +/* 042160 7F00D630 022F1021 */ addu $v0, $s1, $t7 +/* 042164 7F00D634 C4400000 */ lwc1 $f0, ($v0) +/* 042168 7F00D638 C4420004 */ lwc1 $f2, 4($v0) +/* 04216C 7F00D63C 272A003C */ addiu $t2, $t9, 0x3c +/* 042170 7F00D640 27B8010C */ addiu $t8, $sp, 0x10c +.L7F00D644: +/* 042174 7F00D644 8F210000 */ lw $at, ($t9) +/* 042178 7F00D648 2739000C */ addiu $t9, $t9, 0xc +/* 04217C 7F00D64C 2718000C */ addiu $t8, $t8, 0xc +/* 042180 7F00D650 AF01FFF4 */ sw $at, -0xc($t8) +/* 042184 7F00D654 8F21FFF8 */ lw $at, -8($t9) +/* 042188 7F00D658 AF01FFF8 */ sw $at, -8($t8) +/* 04218C 7F00D65C 8F21FFFC */ lw $at, -4($t9) +/* 042190 7F00D660 172AFFF8 */ bne $t9, $t2, .L7F00D644 +/* 042194 7F00D664 AF01FFFC */ sw $at, -4($t8) +/* 042198 7F00D668 8F210000 */ lw $at, ($t9) +/* 04219C 7F00D66C 27A400C8 */ addiu $a0, $sp, 0xc8 +/* 0421A0 7F00D670 AF010000 */ sw $at, ($t8) +/* 0421A4 7F00D674 3C018003 */ lui $at, %hi(D_8002AFC4) +/* 0421A8 7F00D678 C424AFC4 */ lwc1 $f4, %lo(D_8002AFC4)($at) +/* 0421AC 7F00D67C 3C018003 */ lui $at, %hi(D_8002AFC8) +/* 0421B0 7F00D680 C426AFC8 */ lwc1 $f6, %lo(D_8002AFC8)($at) +/* 0421B4 7F00D684 3C01457A */ li $at, 0x457A0000 # 4000.000000 +/* 0421B8 7F00D688 44814000 */ mtc1 $at, $f8 +/* 0421BC 7F00D68C 3C018003 */ lui $at, %hi(D_8002AFCC) +/* 0421C0 7F00D690 C42AAFCC */ lwc1 $f10, %lo(D_8002AFCC)($at) +/* 0421C4 7F00D694 46040000 */ add.s $f0, $f0, $f4 +/* 0421C8 7F00D698 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0421CC 7F00D69C 44819000 */ mtc1 $at, $f18 +/* 0421D0 7F00D6A0 46061080 */ add.s $f2, $f2, $f6 +/* 0421D4 7F00D6A4 44050000 */ mfc1 $a1, $f0 +/* 0421D8 7F00D6A8 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0421DC 7F00D6AC 460A4400 */ add.s $f16, $f8, $f10 +/* 0421E0 7F00D6B0 44061000 */ mfc1 $a2, $f2 +/* 0421E4 7F00D6B4 E7A20014 */ swc1 $f2, 0x14($sp) +/* 0421E8 7F00D6B8 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 0421EC 7F00D6BC 44078000 */ mfc1 $a3, $f16 +/* 0421F0 7F00D6C0 E7AC001C */ swc1 $f12, 0x1c($sp) +/* 0421F4 7F00D6C4 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0421F8 7F00D6C8 0FC165A5 */ jal sub_GAME_7F059694 +/* 0421FC 7F00D6CC E7B20020 */ swc1 $f18, 0x20($sp) +/* 042200 7F00D6D0 8E4B0000 */ lw $t3, ($s2) +/* 042204 7F00D6D4 27B00088 */ addiu $s0, $sp, 0x88 +/* 042208 7F00D6D8 02002825 */ move $a1, $s0 +/* 04220C 7F00D6DC 01730019 */ multu $t3, $s3 +/* 042210 7F00D6E0 00006012 */ mflo $t4 +/* 042214 7F00D6E4 022C2021 */ addu $a0, $s1, $t4 +/* 042218 7F00D6E8 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 04221C 7F00D6EC 00000000 */ nop +/* 042220 7F00D6F0 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 042224 7F00D6F4 44816000 */ mtc1 $at, $f12 +/* 042228 7F00D6F8 0FC1629F */ jal matrix_scalar_multiply +/* 04222C 7F00D6FC 02002825 */ move $a1, $s0 +/* 042230 7F00D700 27A400C8 */ addiu $a0, $sp, 0xc8 +/* 042234 7F00D704 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 042238 7F00D708 02002825 */ move $a1, $s0 +/* 04223C 7F00D70C 3C138003 */ lui $s3, %hi(ptr_folder_object_instance) +/* 042240 7F00D710 2673A95C */ addiu $s3, %lo(ptr_folder_object_instance) # addiu $s3, $s3, -0x56a4 +/* 042244 7F00D714 8E6D0000 */ lw $t5, ($s3) +/* 042248 7F00D718 AFB0010C */ sw $s0, 0x10c($sp) +/* 04224C 7F00D71C 8DAE0008 */ lw $t6, 8($t5) +/* 042250 7F00D720 85C4000E */ lh $a0, 0xe($t6) +/* 042254 7F00D724 00047980 */ sll $t7, $a0, 6 +/* 042258 7F00D728 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 04225C 7F00D72C 01E02025 */ move $a0, $t7 +/* 042260 7F00D730 AFA2011C */ sw $v0, 0x11c($sp) +/* 042264 7F00D734 02002025 */ move $a0, $s0 +/* 042268 7F00D738 0FC16008 */ jal matrix_4x4_copy +/* 04226C 7F00D73C 00402825 */ move $a1, $v0 +/* 042270 7F00D740 8FA9011C */ lw $t1, 0x11c($sp) +/* 042274 7F00D744 8E680000 */ lw $t0, ($s3) +/* 042278 7F00D748 240A0003 */ li $t2, 3 +/* 04227C 7F00D74C 27A4010C */ addiu $a0, $sp, 0x10c +/* 042280 7F00D750 AD09000C */ sw $t1, 0xc($t0) +/* 042284 7F00D754 8FB90158 */ lw $t9, 0x158($sp) +/* 042288 7F00D758 AFAA0114 */ sw $t2, 0x114($sp) +/* 04228C 7F00D75C AFA00110 */ sw $zero, 0x110($sp) +/* 042290 7F00D760 8E650000 */ lw $a1, ($s3) +/* 042294 7F00D764 0FC1D1A1 */ jal subdraw +/* 042298 7F00D768 AFB90118 */ sw $t9, 0x118($sp) +/* 04229C 7F00D76C 8FB80118 */ lw $t8, 0x118($sp) +/* 0422A0 7F00D770 8E620000 */ lw $v0, ($s3) +/* 0422A4 7F00D774 00008025 */ move $s0, $zero +/* 0422A8 7F00D778 AFB80158 */ sw $t8, 0x158($sp) +/* 0422AC 7F00D77C 8C4B0008 */ lw $t3, 8($v0) +/* 0422B0 7F00D780 00008825 */ move $s1, $zero +/* 0422B4 7F00D784 27B20048 */ addiu $s2, $sp, 0x48 +/* 0422B8 7F00D788 856C000E */ lh $t4, 0xe($t3) +/* 0422BC 7F00D78C 59800014 */ blezl $t4, .L7F00D7E0 +/* 0422C0 7F00D790 8FBF003C */ lw $ra, 0x3c($sp) +/* 0422C4 7F00D794 8C4D000C */ lw $t5, 0xc($v0) +.L7F00D798: +/* 0422C8 7F00D798 02402825 */ move $a1, $s2 +/* 0422CC 7F00D79C 0FC16008 */ jal matrix_4x4_copy +/* 0422D0 7F00D7A0 01B12021 */ addu $a0, $t5, $s1 +/* 0422D4 7F00D7A4 8E6E0000 */ lw $t6, ($s3) +/* 0422D8 7F00D7A8 00104980 */ sll $t1, $s0, 6 +/* 0422DC 7F00D7AC 02402025 */ move $a0, $s2 +/* 0422E0 7F00D7B0 8DCF000C */ lw $t7, 0xc($t6) +/* 0422E4 7F00D7B4 0FC16327 */ jal sub_GAME_7F058C9C +/* 0422E8 7F00D7B8 01E92821 */ addu $a1, $t7, $t1 +/* 0422EC 7F00D7BC 8E620000 */ lw $v0, ($s3) +/* 0422F0 7F00D7C0 26100001 */ addiu $s0, $s0, 1 +/* 0422F4 7F00D7C4 26310040 */ addiu $s1, $s1, 0x40 +/* 0422F8 7F00D7C8 8C480008 */ lw $t0, 8($v0) +/* 0422FC 7F00D7CC 850A000E */ lh $t2, 0xe($t0) +/* 042300 7F00D7D0 020A082A */ slt $at, $s0, $t2 +/* 042304 7F00D7D4 5420FFF0 */ bnezl $at, .L7F00D798 +/* 042308 7F00D7D8 8C4D000C */ lw $t5, 0xc($v0) +/* 04230C 7F00D7DC 8FBF003C */ lw $ra, 0x3c($sp) +.L7F00D7E0: +/* 042310 7F00D7E0 8FA20158 */ lw $v0, 0x158($sp) +/* 042314 7F00D7E4 8FB0002C */ lw $s0, 0x2c($sp) +/* 042318 7F00D7E8 8FB10030 */ lw $s1, 0x30($sp) +/* 04231C 7F00D7EC 8FB20034 */ lw $s2, 0x34($sp) +/* 042320 7F00D7F0 8FB30038 */ lw $s3, 0x38($sp) +/* 042324 7F00D7F4 03E00008 */ jr $ra +/* 042328 7F00D7F8 27BD0158 */ addiu $sp, $sp, 0x158 +) +#endif + + + +#ifdef NONMATCHING +void set_menu_cursor_pos_to_setting(s32 arg0) { + // Node 0 + cursor_h_pos = 126.0f; + cursor_v_pos = (f32) ((arg0 << 5) + 0xe2); + return; + // (function likely void) +} +#else +GLOBAL_ASM( +.text +glabel set_menu_cursor_pos_to_setting +/* 04232C 7F00D7FC 00047140 */ sll $t6, $a0, 5 +/* 042330 7F00D800 25CF00E2 */ addiu $t7, $t6, 0xe2 +/* 042334 7F00D804 448F3000 */ mtc1 $t7, $f6 +/* 042338 7F00D808 3C0142FC */ li $at, 0x42FC0000 # 126.000000 +/* 04233C 7F00D80C 44812000 */ mtc1 $at, $f4 +/* 042340 7F00D810 46803220 */ cvt.s.w $f8, $f6 +/* 042344 7F00D814 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 042348 7F00D818 E424A908 */ swc1 $f4, %lo(cursor_h_pos)($at) +/* 04234C 7F00D81C 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 042350 7F00D820 03E00008 */ jr $ra +/* 042354 7F00D824 E428A90C */ swc1 $f8, %lo(cursor_v_pos)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void constructor_menu06_modesel(void) +{ + s32 sp5C; + s32 sp58; + s32 sp54; + s32 sp50; + s32 sp4C; + s32 sp48; + s16 sp44; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_ret_3; + s32 temp_s0; + s32 temp_s0_2; + s32 temp_s0_3; + s32 temp_s0_4; + s32 temp_s0_5; + s32 phi_a0; + s32 phi_s0; + s32 phi_a0_2; + s32 phi_s0_2; + s32 phi_s0_3; + s32 phi_s0_4; + + sp58 = 0x96; + sp54 = 0xdc; + sp44 = get_video2_settings_txtClipW(); + temp_s0 = write_text_at_abs_coord(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(0, 0, 0)))), &sp58, &sp54, &a1_, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + if (append_cheat_sp != 0) + { + phi_a0 = TEXT(LTITLE, 0x75); + } + else + { + phi_a0 = TEXT(LTITLE, 0x1d); + } + temp_ret = get_textptr_for_textID(phi_a0); + sp5C = temp_ret; + sub_GAME_7F0AE98C(&sp4C, &sp50, temp_ret, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0xaa; + sp54 = 0xdc; + phi_s0 = temp_s0; + if (mission_difficulty_highlighted == 0) + { + phi_s0 = microcode_constructor_related_to_menus(temp_s0, 0x94, 0xda, sp50 + 0xaf, 0xea, 0x32); + } + sp44 = get_video2_settings_txtClipW(); + temp_s0_2 = write_text_at_abs_coord(phi_s0, &sp58, &sp54, sp5C, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp58 = 0x96; + sp54 = 0xfc; + if (get_attached_controller_count() >= 2) + { + sp48 = 0xff; + } + else + { + sp48 = 0x70; + } + sp44 = get_video2_settings_txtClipW(); + temp_s0_3 = write_text_at_abs_coord(temp_s0_2, &sp58, &sp54, &a2_, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, sp48, sp44, get_video2_settings_txtClipH(), 0, 0); + phi_a0_2 = TEXT(LTITLE, 0x1e); + if (append_cheat_mp != 0) + { + phi_a0_2 = TEXT(LTITLE, 0x114); + } + temp_ret_2 = get_textptr_for_textID(phi_a0_2); + sp5C = temp_ret_2; + sub_GAME_7F0AE98C(&sp4C, &sp50, temp_ret_2, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0xaa; + sp54 = 0xfc; + phi_s0_2 = temp_s0_3; + if (mission_difficulty_highlighted == 1) + { + phi_s0_2 = microcode_constructor_related_to_menus(temp_s0_3, 0x94, 0xfa, sp50 + 0xaf, 0x10a, 0x32); + } + sp44 = get_video2_settings_txtClipW(); + temp_s0_4 = write_text_at_abs_coord(phi_s0_2, &sp58, &sp54, sp5C, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, sp48, sp44, get_video2_settings_txtClipH(), 0, 0); + phi_s0_4 = temp_s0_4; + if (is_cheat_menu_available != 0) + { + sp58 = 0x96; + sp54 = 0x11c; + sp44 = get_video2_settings_txtClipW(); + temp_s0_5 = write_text_at_abs_coord(temp_s0_4, &sp58, &sp54, &a3_, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret_3 = get_textptr_for_textID(TEXT(LTITLE, 0x1f)); + sp5C = temp_ret_3; + sub_GAME_7F0AE98C(&sp4C, &sp50, temp_ret_3, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0xaa; + sp54 = 0x11c; + phi_s0_3 = temp_s0_5; + if (mission_difficulty_highlighted == 2) + { + phi_s0_3 = microcode_constructor_related_to_menus(temp_s0_5, 0x94, 0x11a, sp50 + 0xaf, 0x12a, 0x32); + } + sp44 = get_video2_settings_txtClipW(); + phi_s0_4 = write_text_at_abs_coord(phi_s0_3, &sp58, &sp54, sp5C, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + } + load_draw_selected_icon_folder_select(add_tab3_previous(phi_s0_4)); +} +#else +const char a1_[] = "1.\n"; +const char a2_[] = "2.\n"; +const char a3_[] = "3.\n"; +GLOBAL_ASM( +.text +glabel constructor_menu06_modesel +/* 042358 7F00D828 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 04235C 7F00D82C AFBF003C */ sw $ra, 0x3c($sp) +/* 042360 7F00D830 AFB00038 */ sw $s0, 0x38($sp) +/* 042364 7F00D834 00002825 */ move $a1, $zero +/* 042368 7F00D838 00003025 */ move $a2, $zero +/* 04236C 7F00D83C 0C0011B4 */ jal set_setfillcolor +/* 042370 7F00D840 00003825 */ move $a3, $zero +/* 042374 7F00D844 0C000FBE */ jal insert_generic_fillrect +/* 042378 7F00D848 00402025 */ move $a0, $v0 +/* 04237C 7F00D84C 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 042380 7F00D850 00402025 */ move $a0, $v0 +/* 042384 7F00D854 0FC2B366 */ jal microcode_constructor +/* 042388 7F00D858 00402025 */ move $a0, $v0 +/* 04238C 7F00D85C 240E0096 */ li $t6, 150 +/* 042390 7F00D860 240F00DC */ li $t7, 220 +/* 042394 7F00D864 00408025 */ move $s0, $v0 +/* 042398 7F00D868 AFAE0058 */ sw $t6, 0x58($sp) +/* 04239C 7F00D86C 0C001107 */ jal get_video2_settings_txtClipW +/* 0423A0 7F00D870 AFAF0054 */ sw $t7, 0x54($sp) +/* 0423A4 7F00D874 0C00110B */ jal get_video2_settings_txtClipH +/* 0423A8 7F00D878 A7A20044 */ sh $v0, 0x44($sp) +/* 0423AC 7F00D87C 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 0423B0 7F00D880 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 0423B4 7F00D884 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 0423B8 7F00D888 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 0423BC 7F00D88C 87A90044 */ lh $t1, 0x44($sp) +/* 0423C0 7F00D890 3C078005 */ lui $a3, %hi(a1_) +/* 0423C4 7F00D894 240800FF */ li $t0, 255 +/* 0423C8 7F00D898 AFA80018 */ sw $t0, 0x18($sp) +/* 0423CC 7F00D89C 24E7F494 */ addiu $a3, %lo(a1_) # addiu $a3, $a3, -0xb6c +/* 0423D0 7F00D8A0 02002025 */ move $a0, $s0 +/* 0423D4 7F00D8A4 27A50058 */ addiu $a1, $sp, 0x58 +/* 0423D8 7F00D8A8 27A60054 */ addiu $a2, $sp, 0x54 +/* 0423DC 7F00D8AC AFA20020 */ sw $v0, 0x20($sp) +/* 0423E0 7F00D8B0 AFA00024 */ sw $zero, 0x24($sp) +/* 0423E4 7F00D8B4 AFA00028 */ sw $zero, 0x28($sp) +/* 0423E8 7F00D8B8 AFB90014 */ sw $t9, 0x14($sp) +/* 0423EC 7F00D8BC AFB80010 */ sw $t8, 0x10($sp) +/* 0423F0 7F00D8C0 0FC025D8 */ jal write_text_at_abs_coord +/* 0423F4 7F00D8C4 AFA9001C */ sw $t1, 0x1c($sp) +/* 0423F8 7F00D8C8 3C0A8003 */ lui $t2, %hi(append_cheat_sp) +/* 0423FC 7F00D8CC 8D4AA900 */ lw $t2, %lo(append_cheat_sp)($t2) +/* 042400 7F00D8D0 00408025 */ move $s0, $v0 +/* 042404 7F00D8D4 51400004 */ beql $t2, $zero, .L7F00D8E8 +/* 042408 7F00D8D8 34049C1D */ li $a0, 39965 +/* 04240C 7F00D8DC 10000002 */ b .L7F00D8E8 +/* 042410 7F00D8E0 34049C75 */ li $a0, 40053 +/* 042414 7F00D8E4 34049C1D */ li $a0, 39965 +.L7F00D8E8: +/* 042418 7F00D8E8 0FC30776 */ jal get_textptr_for_textID +/* 04241C 7F00D8EC 00000000 */ nop +/* 042420 7F00D8F0 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) +/* 042424 7F00D8F4 8D6B0EB4 */ lw $t3, %lo(ptrFirstFontTableLarge)($t3) +/* 042428 7F00D8F8 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 04242C 7F00D8FC AFA2005C */ sw $v0, 0x5c($sp) +/* 042430 7F00D900 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 042434 7F00D904 27A4004C */ addiu $a0, $sp, 0x4c +/* 042438 7F00D908 27A50050 */ addiu $a1, $sp, 0x50 +/* 04243C 7F00D90C 00403025 */ move $a2, $v0 +/* 042440 7F00D910 AFA00014 */ sw $zero, 0x14($sp) +/* 042444 7F00D914 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 042448 7F00D918 AFAB0010 */ sw $t3, 0x10($sp) +/* 04244C 7F00D91C 3C0E8007 */ lui $t6, %hi(mission_difficulty_highlighted) +/* 042450 7F00D920 8DCE9784 */ lw $t6, %lo(mission_difficulty_highlighted)($t6) +/* 042454 7F00D924 240C00AA */ li $t4, 170 +/* 042458 7F00D928 240D00DC */ li $t5, 220 +/* 04245C 7F00D92C AFAC0058 */ sw $t4, 0x58($sp) +/* 042460 7F00D930 15C0000C */ bnez $t6, .L7F00D964 +/* 042464 7F00D934 AFAD0054 */ sw $t5, 0x54($sp) +/* 042468 7F00D938 8FA70050 */ lw $a3, 0x50($sp) +/* 04246C 7F00D93C 240F00EA */ li $t7, 234 +/* 042470 7F00D940 24180032 */ li $t8, 50 +/* 042474 7F00D944 AFB80014 */ sw $t8, 0x14($sp) +/* 042478 7F00D948 AFAF0010 */ sw $t7, 0x10($sp) +/* 04247C 7F00D94C 02002025 */ move $a0, $s0 +/* 042480 7F00D950 24050094 */ li $a1, 148 +/* 042484 7F00D954 240600DA */ li $a2, 218 +/* 042488 7F00D958 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04248C 7F00D95C 24E700AF */ addiu $a3, $a3, 0xaf +/* 042490 7F00D960 00408025 */ move $s0, $v0 +.L7F00D964: +/* 042494 7F00D964 0C001107 */ jal get_video2_settings_txtClipW +/* 042498 7F00D968 00000000 */ nop +/* 04249C 7F00D96C 0C00110B */ jal get_video2_settings_txtClipH +/* 0424A0 7F00D970 A7A20044 */ sh $v0, 0x44($sp) +/* 0424A4 7F00D974 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 0424A8 7F00D978 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 0424AC 7F00D97C 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 0424B0 7F00D980 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 0424B4 7F00D984 87AA0044 */ lh $t2, 0x44($sp) +/* 0424B8 7F00D988 240900FF */ li $t1, 255 +/* 0424BC 7F00D98C AFA90018 */ sw $t1, 0x18($sp) +/* 0424C0 7F00D990 02002025 */ move $a0, $s0 +/* 0424C4 7F00D994 27A50058 */ addiu $a1, $sp, 0x58 +/* 0424C8 7F00D998 27A60054 */ addiu $a2, $sp, 0x54 +/* 0424CC 7F00D99C 8FA7005C */ lw $a3, 0x5c($sp) +/* 0424D0 7F00D9A0 AFA20020 */ sw $v0, 0x20($sp) +/* 0424D4 7F00D9A4 AFA00024 */ sw $zero, 0x24($sp) +/* 0424D8 7F00D9A8 AFA00028 */ sw $zero, 0x28($sp) +/* 0424DC 7F00D9AC AFA80014 */ sw $t0, 0x14($sp) +/* 0424E0 7F00D9B0 AFB90010 */ sw $t9, 0x10($sp) +/* 0424E4 7F00D9B4 0FC025D8 */ jal write_text_at_abs_coord +/* 0424E8 7F00D9B8 AFAA001C */ sw $t2, 0x1c($sp) +/* 0424EC 7F00D9BC 240B0096 */ li $t3, 150 +/* 0424F0 7F00D9C0 240C00FC */ li $t4, 252 +/* 0424F4 7F00D9C4 00408025 */ move $s0, $v0 +/* 0424F8 7F00D9C8 AFAB0058 */ sw $t3, 0x58($sp) +/* 0424FC 7F00D9CC 0C002E7E */ jal get_attached_controller_count +/* 042500 7F00D9D0 AFAC0054 */ sw $t4, 0x54($sp) +/* 042504 7F00D9D4 28410002 */ slti $at, $v0, 2 +/* 042508 7F00D9D8 14200003 */ bnez $at, .L7F00D9E8 +/* 04250C 7F00D9DC 240D00FF */ li $t5, 255 +/* 042510 7F00D9E0 10000003 */ b .L7F00D9F0 +/* 042514 7F00D9E4 AFAD0048 */ sw $t5, 0x48($sp) +.L7F00D9E8: +/* 042518 7F00D9E8 240E0070 */ li $t6, 112 +/* 04251C 7F00D9EC AFAE0048 */ sw $t6, 0x48($sp) +.L7F00D9F0: +/* 042520 7F00D9F0 0C001107 */ jal get_video2_settings_txtClipW +/* 042524 7F00D9F4 00000000 */ nop +/* 042528 7F00D9F8 0C00110B */ jal get_video2_settings_txtClipH +/* 04252C 7F00D9FC A7A20044 */ sh $v0, 0x44($sp) +/* 042530 7F00DA00 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableLarge) +/* 042534 7F00DA04 3C188004 */ lui $t8, %hi(ptrFirstFontTableLarge) +/* 042538 7F00DA08 8F180EB4 */ lw $t8, %lo(ptrFirstFontTableLarge)($t8) +/* 04253C 7F00DA0C 8DEF0EB8 */ lw $t7, %lo(ptrSecondFontTableLarge)($t7) +/* 042540 7F00DA10 8FB90048 */ lw $t9, 0x48($sp) +/* 042544 7F00DA14 87A80044 */ lh $t0, 0x44($sp) +/* 042548 7F00DA18 3C078005 */ lui $a3, %hi(a2_) +/* 04254C 7F00DA1C 24E7F498 */ addiu $a3, %lo(a2_) # addiu $a3, $a3, -0xb68 +/* 042550 7F00DA20 02002025 */ move $a0, $s0 +/* 042554 7F00DA24 27A50058 */ addiu $a1, $sp, 0x58 +/* 042558 7F00DA28 27A60054 */ addiu $a2, $sp, 0x54 +/* 04255C 7F00DA2C AFA20020 */ sw $v0, 0x20($sp) +/* 042560 7F00DA30 AFA00024 */ sw $zero, 0x24($sp) +/* 042564 7F00DA34 AFA00028 */ sw $zero, 0x28($sp) +/* 042568 7F00DA38 AFB80014 */ sw $t8, 0x14($sp) +/* 04256C 7F00DA3C AFAF0010 */ sw $t7, 0x10($sp) +/* 042570 7F00DA40 AFB90018 */ sw $t9, 0x18($sp) +/* 042574 7F00DA44 0FC025D8 */ jal write_text_at_abs_coord +/* 042578 7F00DA48 AFA8001C */ sw $t0, 0x1c($sp) +/* 04257C 7F00DA4C 3C098003 */ lui $t1, %hi(append_cheat_mp) +/* 042580 7F00DA50 8D29A904 */ lw $t1, %lo(append_cheat_mp)($t1) +/* 042584 7F00DA54 00408025 */ move $s0, $v0 +/* 042588 7F00DA58 34049C1E */ li $a0, 39966 +/* 04258C 7F00DA5C 11200003 */ beqz $t1, .L7F00DA6C +/* 042590 7F00DA60 00000000 */ nop +/* 042594 7F00DA64 10000001 */ b .L7F00DA6C +/* 042598 7F00DA68 34049D14 */ li $a0, 40212 +.L7F00DA6C: +/* 04259C 7F00DA6C 0FC30776 */ jal get_textptr_for_textID +/* 0425A0 7F00DA70 00000000 */ nop +/* 0425A4 7F00DA74 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 0425A8 7F00DA78 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 0425AC 7F00DA7C 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 0425B0 7F00DA80 AFA2005C */ sw $v0, 0x5c($sp) +/* 0425B4 7F00DA84 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 0425B8 7F00DA88 27A4004C */ addiu $a0, $sp, 0x4c +/* 0425BC 7F00DA8C 27A50050 */ addiu $a1, $sp, 0x50 +/* 0425C0 7F00DA90 00403025 */ move $a2, $v0 +/* 0425C4 7F00DA94 AFA00014 */ sw $zero, 0x14($sp) +/* 0425C8 7F00DA98 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0425CC 7F00DA9C AFAA0010 */ sw $t2, 0x10($sp) +/* 0425D0 7F00DAA0 3C0D8007 */ lui $t5, %hi(mission_difficulty_highlighted) +/* 0425D4 7F00DAA4 8DAD9784 */ lw $t5, %lo(mission_difficulty_highlighted)($t5) +/* 0425D8 7F00DAA8 240B00AA */ li $t3, 170 +/* 0425DC 7F00DAAC 240C00FC */ li $t4, 252 +/* 0425E0 7F00DAB0 24010001 */ li $at, 1 +/* 0425E4 7F00DAB4 AFAB0058 */ sw $t3, 0x58($sp) +/* 0425E8 7F00DAB8 15A1000C */ bne $t5, $at, .L7F00DAEC +/* 0425EC 7F00DABC AFAC0054 */ sw $t4, 0x54($sp) +/* 0425F0 7F00DAC0 8FA70050 */ lw $a3, 0x50($sp) +/* 0425F4 7F00DAC4 240E010A */ li $t6, 266 +/* 0425F8 7F00DAC8 240F0032 */ li $t7, 50 +/* 0425FC 7F00DACC AFAF0014 */ sw $t7, 0x14($sp) +/* 042600 7F00DAD0 AFAE0010 */ sw $t6, 0x10($sp) +/* 042604 7F00DAD4 02002025 */ move $a0, $s0 +/* 042608 7F00DAD8 24050094 */ li $a1, 148 +/* 04260C 7F00DADC 240600FA */ li $a2, 250 +/* 042610 7F00DAE0 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 042614 7F00DAE4 24E700AF */ addiu $a3, $a3, 0xaf +/* 042618 7F00DAE8 00408025 */ move $s0, $v0 +.L7F00DAEC: +/* 04261C 7F00DAEC 0C001107 */ jal get_video2_settings_txtClipW +/* 042620 7F00DAF0 00000000 */ nop +/* 042624 7F00DAF4 0C00110B */ jal get_video2_settings_txtClipH +/* 042628 7F00DAF8 A7A20044 */ sh $v0, 0x44($sp) +/* 04262C 7F00DAFC 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 042630 7F00DB00 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 042634 7F00DB04 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 042638 7F00DB08 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 04263C 7F00DB0C 8FA80048 */ lw $t0, 0x48($sp) +/* 042640 7F00DB10 87A90044 */ lh $t1, 0x44($sp) +/* 042644 7F00DB14 02002025 */ move $a0, $s0 +/* 042648 7F00DB18 27A50058 */ addiu $a1, $sp, 0x58 +/* 04264C 7F00DB1C 27A60054 */ addiu $a2, $sp, 0x54 +/* 042650 7F00DB20 8FA7005C */ lw $a3, 0x5c($sp) +/* 042654 7F00DB24 AFA20020 */ sw $v0, 0x20($sp) +/* 042658 7F00DB28 AFA00024 */ sw $zero, 0x24($sp) +/* 04265C 7F00DB2C AFA00028 */ sw $zero, 0x28($sp) +/* 042660 7F00DB30 AFB90014 */ sw $t9, 0x14($sp) +/* 042664 7F00DB34 AFB80010 */ sw $t8, 0x10($sp) +/* 042668 7F00DB38 AFA80018 */ sw $t0, 0x18($sp) +/* 04266C 7F00DB3C 0FC025D8 */ jal write_text_at_abs_coord +/* 042670 7F00DB40 AFA9001C */ sw $t1, 0x1c($sp) +/* 042674 7F00DB44 3C0A8003 */ lui $t2, %hi(is_cheat_menu_available) +/* 042678 7F00DB48 8D4AA94C */ lw $t2, %lo(is_cheat_menu_available)($t2) +/* 04267C 7F00DB4C 00408025 */ move $s0, $v0 +/* 042680 7F00DB50 240B0096 */ li $t3, 150 +/* 042684 7F00DB54 11400051 */ beqz $t2, .L7F00DC9C +/* 042688 7F00DB58 240C011C */ li $t4, 284 +/* 04268C 7F00DB5C AFAB0058 */ sw $t3, 0x58($sp) +/* 042690 7F00DB60 0C001107 */ jal get_video2_settings_txtClipW +/* 042694 7F00DB64 AFAC0054 */ sw $t4, 0x54($sp) +/* 042698 7F00DB68 0C00110B */ jal get_video2_settings_txtClipH +/* 04269C 7F00DB6C A7A20044 */ sh $v0, 0x44($sp) +/* 0426A0 7F00DB70 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) +/* 0426A4 7F00DB74 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 0426A8 7F00DB78 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 0426AC 7F00DB7C 8DAD0EB8 */ lw $t5, %lo(ptrSecondFontTableLarge)($t5) +/* 0426B0 7F00DB80 87B80044 */ lh $t8, 0x44($sp) +/* 0426B4 7F00DB84 3C078005 */ lui $a3, %hi(a3_) +/* 0426B8 7F00DB88 240F00FF */ li $t7, 255 +/* 0426BC 7F00DB8C AFAF0018 */ sw $t7, 0x18($sp) +/* 0426C0 7F00DB90 24E7F49C */ addiu $a3, %lo(a3_) # addiu $a3, $a3, -0xb64 +/* 0426C4 7F00DB94 02002025 */ move $a0, $s0 +/* 0426C8 7F00DB98 27A50058 */ addiu $a1, $sp, 0x58 +/* 0426CC 7F00DB9C 27A60054 */ addiu $a2, $sp, 0x54 +/* 0426D0 7F00DBA0 AFA20020 */ sw $v0, 0x20($sp) +/* 0426D4 7F00DBA4 AFA00024 */ sw $zero, 0x24($sp) +/* 0426D8 7F00DBA8 AFA00028 */ sw $zero, 0x28($sp) +/* 0426DC 7F00DBAC AFAE0014 */ sw $t6, 0x14($sp) +/* 0426E0 7F00DBB0 AFAD0010 */ sw $t5, 0x10($sp) +/* 0426E4 7F00DBB4 0FC025D8 */ jal write_text_at_abs_coord +/* 0426E8 7F00DBB8 AFB8001C */ sw $t8, 0x1c($sp) +/* 0426EC 7F00DBBC 00408025 */ move $s0, $v0 +/* 0426F0 7F00DBC0 0FC30776 */ jal get_textptr_for_textID +/* 0426F4 7F00DBC4 34049C1F */ li $a0, 39967 +/* 0426F8 7F00DBC8 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 0426FC 7F00DBCC 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 042700 7F00DBD0 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 042704 7F00DBD4 AFA2005C */ sw $v0, 0x5c($sp) +/* 042708 7F00DBD8 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04270C 7F00DBDC 27A4004C */ addiu $a0, $sp, 0x4c +/* 042710 7F00DBE0 27A50050 */ addiu $a1, $sp, 0x50 +/* 042714 7F00DBE4 00403025 */ move $a2, $v0 +/* 042718 7F00DBE8 AFA00014 */ sw $zero, 0x14($sp) +/* 04271C 7F00DBEC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 042720 7F00DBF0 AFB90010 */ sw $t9, 0x10($sp) +/* 042724 7F00DBF4 3C0A8007 */ lui $t2, %hi(mission_difficulty_highlighted) +/* 042728 7F00DBF8 8D4A9784 */ lw $t2, %lo(mission_difficulty_highlighted)($t2) +/* 04272C 7F00DBFC 240800AA */ li $t0, 170 +/* 042730 7F00DC00 2409011C */ li $t1, 284 +/* 042734 7F00DC04 24010002 */ li $at, 2 +/* 042738 7F00DC08 AFA80058 */ sw $t0, 0x58($sp) +/* 04273C 7F00DC0C 1541000C */ bne $t2, $at, .L7F00DC40 +/* 042740 7F00DC10 AFA90054 */ sw $t1, 0x54($sp) +/* 042744 7F00DC14 8FA70050 */ lw $a3, 0x50($sp) +/* 042748 7F00DC18 240B012A */ li $t3, 298 +/* 04274C 7F00DC1C 240C0032 */ li $t4, 50 +/* 042750 7F00DC20 AFAC0014 */ sw $t4, 0x14($sp) +/* 042754 7F00DC24 AFAB0010 */ sw $t3, 0x10($sp) +/* 042758 7F00DC28 02002025 */ move $a0, $s0 +/* 04275C 7F00DC2C 24050094 */ li $a1, 148 +/* 042760 7F00DC30 2406011A */ li $a2, 282 +/* 042764 7F00DC34 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 042768 7F00DC38 24E700AF */ addiu $a3, $a3, 0xaf +/* 04276C 7F00DC3C 00408025 */ move $s0, $v0 +.L7F00DC40: +/* 042770 7F00DC40 0C001107 */ jal get_video2_settings_txtClipW +/* 042774 7F00DC44 00000000 */ nop +/* 042778 7F00DC48 0C00110B */ jal get_video2_settings_txtClipH +/* 04277C 7F00DC4C A7A20044 */ sh $v0, 0x44($sp) +/* 042780 7F00DC50 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) +/* 042784 7F00DC54 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 042788 7F00DC58 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 04278C 7F00DC5C 8DAD0EB8 */ lw $t5, %lo(ptrSecondFontTableLarge)($t5) +/* 042790 7F00DC60 87B80044 */ lh $t8, 0x44($sp) +/* 042794 7F00DC64 240F00FF */ li $t7, 255 +/* 042798 7F00DC68 AFAF0018 */ sw $t7, 0x18($sp) +/* 04279C 7F00DC6C 02002025 */ move $a0, $s0 +/* 0427A0 7F00DC70 27A50058 */ addiu $a1, $sp, 0x58 +/* 0427A4 7F00DC74 27A60054 */ addiu $a2, $sp, 0x54 +/* 0427A8 7F00DC78 8FA7005C */ lw $a3, 0x5c($sp) +/* 0427AC 7F00DC7C AFA20020 */ sw $v0, 0x20($sp) +/* 0427B0 7F00DC80 AFA00024 */ sw $zero, 0x24($sp) +/* 0427B4 7F00DC84 AFA00028 */ sw $zero, 0x28($sp) +/* 0427B8 7F00DC88 AFAE0014 */ sw $t6, 0x14($sp) +/* 0427BC 7F00DC8C AFAD0010 */ sw $t5, 0x10($sp) +/* 0427C0 7F00DC90 0FC025D8 */ jal write_text_at_abs_coord +/* 0427C4 7F00DC94 AFB8001C */ sw $t8, 0x1c($sp) +/* 0427C8 7F00DC98 00408025 */ move $s0, $v0 +.L7F00DC9C: +/* 0427CC 7F00DC9C 0FC0288E */ jal add_tab3_previous +/* 0427D0 7F00DCA0 02002025 */ move $a0, $s0 +/* 0427D4 7F00DCA4 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 0427D8 7F00DCA8 00402025 */ move $a0, $v0 +/* 0427DC 7F00DCAC 8FBF003C */ lw $ra, 0x3c($sp) +/* 0427E0 7F00DCB0 8FB00038 */ lw $s0, 0x38($sp) +/* 0427E4 7F00DCB4 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0427E8 7F00DCB8 03E00008 */ jr $ra +/* 0427EC 7F00DCBC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 pull_and_display_text_for_folder_a0(s32 arg0) +{ + void *phi_v0; + s32 phi_v1; + + phi_v0 = &mission_folder_setup_entries; + phi_v1 = 0; + if (D_8002ABE8 != 0) + { +loop_1: + if (arg0 == phi_v0->unk14) + { + return phi_v1; + } + phi_v0 = phi_v0 + 0x1c; + phi_v1 = phi_v1 + 1; + if (phi_v0->unk20 != 0) + { + goto loop_1; + } + } + return -1; +} +#else +GLOBAL_ASM( +.text +glabel pull_and_display_text_for_folder_a0 +/* 0427F0 7F00DCC0 3C0E8003 */ lui $t6, %hi(mission_folder_setup_entries+4) +/* 0427F4 7F00DCC4 95CEABE8 */ lhu $t6, %lo(mission_folder_setup_entries+4)($t6) +/* 0427F8 7F00DCC8 3C028003 */ lui $v0, %hi(mission_folder_setup_entries) +/* 0427FC 7F00DCCC 2442ABE4 */ addiu $v0, %lo(mission_folder_setup_entries) # addiu $v0, $v0, -0x541c +/* 042800 7F00DCD0 11C0000B */ beqz $t6, .L7F00DD00 +/* 042804 7F00DCD4 00001825 */ move $v1, $zero +/* 042808 7F00DCD8 8C4F0014 */ lw $t7, 0x14($v0) +.L7F00DCDC: +/* 04280C 7F00DCDC 548F0004 */ bnel $a0, $t7, .L7F00DCF0 +/* 042810 7F00DCE0 94580020 */ lhu $t8, 0x20($v0) +/* 042814 7F00DCE4 03E00008 */ jr $ra +/* 042818 7F00DCE8 00601025 */ move $v0, $v1 +/* 04281C 7F00DCEC 94580020 */ lhu $t8, 0x20($v0) +.L7F00DCF0: +/* 042820 7F00DCF0 24630001 */ addiu $v1, $v1, 1 +/* 042824 7F00DCF4 2442001C */ addiu $v0, $v0, 0x1c +/* 042828 7F00DCF8 5700FFF8 */ bnezl $t8, .L7F00DCDC +/* 04282C 7F00DCFC 8C4F0014 */ lw $t7, 0x14($v0) +.L7F00DD00: +/* 042830 7F00DD00 2402FFFF */ li $v0, -1 +/* 042834 7F00DD04 03E00008 */ jr $ra +/* 042838 7F00DD08 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +u32 check_if_stage_completed_on_difficulty(int stage, DIFFICULTY difficulty) { + u32 completed; + + if (mission_folder_setup_entries[stage].mission_num < 0) { + completed = FALSE; + } + else { + completed = isStageUnlockedAtDifficulty(selected_folder_num,mission_folder_setup_entries[stage].mission_num,difficulty); + } + return completed; +} +#else +GLOBAL_ASM( +.text +glabel check_if_stage_completed_on_difficulty +/* 04283C 7F00DD0C 000470C0 */ sll $t6, $a0, 3 +/* 042840 7F00DD10 01C47023 */ subu $t6, $t6, $a0 +/* 042844 7F00DD14 000E7080 */ sll $t6, $t6, 2 +/* 042848 7F00DD18 3C078003 */ lui $a3, %hi(mission_folder_setup_entries+0x14) +/* 04284C 7F00DD1C 00EE3821 */ addu $a3, $a3, $t6 +/* 042850 7F00DD20 8CE7ABF8 */ lw $a3, %lo(mission_folder_setup_entries+0x14)($a3) +/* 042854 7F00DD24 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 042858 7F00DD28 AFBF0014 */ sw $ra, 0x14($sp) +/* 04285C 7F00DD2C 04E00007 */ bltz $a3, .L7F00DD4C +/* 042860 7F00DD30 00A03025 */ move $a2, $a1 +/* 042864 7F00DD34 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 042868 7F00DD38 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 04286C 7F00DD3C 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 042870 7F00DD40 00E02825 */ move $a1, $a3 +/* 042874 7F00DD44 10000003 */ b .L7F00DD54 +/* 042878 7F00DD48 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00DD4C: +/* 04287C 7F00DD4C 00001025 */ move $v0, $zero +/* 042880 7F00DD50 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00DD54: +/* 042884 7F00DD54 27BD0018 */ addiu $sp, $sp, 0x18 +/* 042888 7F00DD58 03E00008 */ jr $ra +/* 04288C 7F00DD5C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 get_highest_unlocked_difficulty_for_level(s32 arg0) +{ + s32 temp_ret; + s32 temp_ret_2; + s32 temp_s0; + s32 phi_s1; + s32 phi_s0; + + temp_ret = pull_and_display_text_for_folder_a0(); + if ((0x80030000 + (((temp_ret * 8) - temp_ret) * 4))->unk-5414 >= 0) + { + if ((check_for_007_mode_unlocked(selected_folder_num) != 0) || (get_debug_007_unlock_flag() != 0)) + { + phi_s1 = 3; + } + else + { + + } + if (phi_s1 >= 0) + { + phi_s0 = phi_s1; +loop_6: + temp_ret_2 = isStageUnlockedAtDifficulty(selected_folder_num, arg0, phi_s0); + if (append_cheat_sp == 0) + { + if (temp_ret_2 != 0) + { + return phi_s0; + } + } + else + { + if (temp_ret_2 == 3) + { + return phi_s0; + } + } + temp_s0 = phi_s0 + -1; + phi_s0 = temp_s0; + if (temp_s0 >= 0) + { + goto loop_6; + } + } + } + return -1; +} +#else +GLOBAL_ASM( +.text +glabel get_highest_unlocked_difficulty_for_level +/* 042890 7F00DD60 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 042894 7F00DD64 AFBF002C */ sw $ra, 0x2c($sp) +/* 042898 7F00DD68 AFB30024 */ sw $s3, 0x24($sp) +/* 04289C 7F00DD6C 00809825 */ move $s3, $a0 +/* 0428A0 7F00DD70 AFB40028 */ sw $s4, 0x28($sp) +/* 0428A4 7F00DD74 AFB20020 */ sw $s2, 0x20($sp) +/* 0428A8 7F00DD78 AFB1001C */ sw $s1, 0x1c($sp) +/* 0428AC 7F00DD7C 0FC03730 */ jal pull_and_display_text_for_folder_a0 +/* 0428B0 7F00DD80 AFB00018 */ sw $s0, 0x18($sp) +/* 0428B4 7F00DD84 000270C0 */ sll $t6, $v0, 3 +/* 0428B8 7F00DD88 01C27023 */ subu $t6, $t6, $v0 +/* 0428BC 7F00DD8C 000E7080 */ sll $t6, $t6, 2 +/* 0428C0 7F00DD90 3C0F8003 */ lui $t7, %hi(mission_folder_setup_entries+8) +/* 0428C4 7F00DD94 01EE7821 */ addu $t7, $t7, $t6 +/* 0428C8 7F00DD98 8DEFABEC */ lw $t7, %lo(mission_folder_setup_entries+8)($t7) +/* 0428CC 7F00DD9C 3C148003 */ lui $s4, %hi(selected_folder_num) +/* 0428D0 7F00DDA0 2694A8E8 */ addiu $s4, %lo(selected_folder_num) # addiu $s4, $s4, -0x5718 +/* 0428D4 7F00DDA4 05E00021 */ bltz $t7, .L7F00DE2C +/* 0428D8 7F00DDA8 24110002 */ li $s1, 2 +/* 0428DC 7F00DDAC 0FC07D28 */ jal check_for_007_mode_unlocked +/* 0428E0 7F00DDB0 8E840000 */ lw $a0, ($s4) +/* 0428E4 7F00DDB4 54400006 */ bnezl $v0, .L7F00DDD0 +/* 0428E8 7F00DDB8 24110003 */ li $s1, 3 +/* 0428EC 7F00DDBC 0FC243FD */ jal get_debug_007_unlock_flag +/* 0428F0 7F00DDC0 00000000 */ nop +/* 0428F4 7F00DDC4 10400002 */ beqz $v0, .L7F00DDD0 +/* 0428F8 7F00DDC8 00000000 */ nop +/* 0428FC 7F00DDCC 24110003 */ li $s1, 3 +.L7F00DDD0: +/* 042900 7F00DDD0 06200016 */ bltz $s1, .L7F00DE2C +/* 042904 7F00DDD4 02208025 */ move $s0, $s1 +/* 042908 7F00DDD8 3C118003 */ lui $s1, %hi(append_cheat_sp) +/* 04290C 7F00DDDC 2631A900 */ addiu $s1, %lo(append_cheat_sp) # addiu $s1, $s1, -0x5700 +/* 042910 7F00DDE0 24120003 */ li $s2, 3 +/* 042914 7F00DDE4 8E840000 */ lw $a0, ($s4) +.L7F00DDE8: +/* 042918 7F00DDE8 02602825 */ move $a1, $s3 +/* 04291C 7F00DDEC 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 042920 7F00DDF0 02003025 */ move $a2, $s0 +/* 042924 7F00DDF4 8E380000 */ lw $t8, ($s1) +/* 042928 7F00DDF8 17000005 */ bnez $t8, .L7F00DE10 +/* 04292C 7F00DDFC 00000000 */ nop +/* 042930 7F00DE00 50400008 */ beql $v0, $zero, .L7F00DE24 +/* 042934 7F00DE04 2610FFFF */ addiu $s0, $s0, -1 +/* 042938 7F00DE08 10000009 */ b .L7F00DE30 +/* 04293C 7F00DE0C 02001025 */ move $v0, $s0 +.L7F00DE10: +/* 042940 7F00DE10 54520004 */ bnel $v0, $s2, .L7F00DE24 +/* 042944 7F00DE14 2610FFFF */ addiu $s0, $s0, -1 +/* 042948 7F00DE18 10000005 */ b .L7F00DE30 +/* 04294C 7F00DE1C 02001025 */ move $v0, $s0 +/* 042950 7F00DE20 2610FFFF */ addiu $s0, $s0, -1 +.L7F00DE24: +/* 042954 7F00DE24 0603FFF0 */ bgezl $s0, .L7F00DDE8 +/* 042958 7F00DE28 8E840000 */ lw $a0, ($s4) +.L7F00DE2C: +/* 04295C 7F00DE2C 2402FFFF */ li $v0, -1 +.L7F00DE30: +/* 042960 7F00DE30 8FBF002C */ lw $ra, 0x2c($sp) +/* 042964 7F00DE34 8FB00018 */ lw $s0, 0x18($sp) +/* 042968 7F00DE38 8FB1001C */ lw $s1, 0x1c($sp) +/* 04296C 7F00DE3C 8FB20020 */ lw $s2, 0x20($sp) +/* 042970 7F00DE40 8FB30024 */ lw $s3, 0x24($sp) +/* 042974 7F00DE44 8FB40028 */ lw $s4, 0x28($sp) +/* 042978 7F00DE48 03E00008 */ jr $ra +/* 04297C 7F00DE4C 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +void init_menu07_missionselect(void) +{ + selected_stage = -1; + briefingpage = -1; + tab_2_selected = 0; + tab_3_selected = 0; + if (maybe_is_in_menu != 0) + { + musicTrack1Play(0x17); + maybe_is_in_menu = 0; + } + load_walletbond(); +} + +void update_menu07_missionsel(void) { + return; +} + + + + + + +#ifdef NONMATCHING +void interface_menu07_missionsel(void) +{ + s32 temp_s1; + s32 temp_s1_2; + s32 temp_s2; + s32 temp_s2_2; + s32 temp_s2_3; + s32 temp_s4; + s32 temp_s4_2; + s32 temp_s4_3; + s32 temp_s5; + void *temp_t1; + void *temp_t3; + void *temp_v0; + void *temp_v0_2; + s32 phi_s4; + s32 phi_s2; + s32 phi_s2_2; + s32 phi_s0; + s32 phi_s1; + s32 phi_s1_2; + s32 phi_s2_3; + s32 phi_s4_2; + s32 phi_s0_2; + s32 phi_s4_3; + s32 phi_s4_4; + s32 phi_s0_3; + s32 phi_s4_5; + s32 phi_s2_4; + s32 phi_s4_6; + s32 phi_s0_4; + s32 phi_s2_5; + s32 phi_a0; + s32 phi_s5; + + setvideo_far(0x42700000); + video_related_21(D_80051A44); + set_page_height(0x42c80000, D_80051A48); + set_video2_settings_offset_24(0); + disable_all_switches(ptr_folder_object_instance); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0x13, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0x14, 1); + tab_3_highlight = 0; + mission_difficulty_highlighted = -1; + if (isontab3() != 0) + { + tab_3_highlight = 1; + } + else + { + phi_s4 = 0; +loop_3: + phi_s4_2 = phi_s4; + if (phi_s4 < 4) + { + temp_v0 = &cursor_xpos_table_mission_select + (phi_s4 * 4); + phi_s4_2 = phi_s4; + if (!(cursor_h_pos < ((f32) (temp_v0->unk4 + temp_v0->unk0) * 0.5f))) + { + temp_s4 = phi_s4 + 1; + phi_s4 = temp_s4; + phi_s4_2 = temp_s4; + if (temp_s4 != 5) + { + goto loop_3; + } + } + } + phi_s2 = 0; +loop_7: + phi_s2_2 = phi_s2; + if (phi_s2 < 3) + { + temp_v0_2 = &cursor_ypos_table_mission_select + (phi_s2 * 4); + phi_s2_2 = phi_s2; + if (!(cursor_v_pos < ((f32) (temp_v0_2->unk4 + temp_v0_2->unk0) * 0.5f))) + { + temp_s2 = phi_s2 + 1; + phi_s2 = temp_s2; + phi_s2_2 = temp_s2; + if (temp_s2 != 4) + { + goto loop_7; + } + } + } + phi_s2_4 = phi_s2_2; + if (phi_s2_2 > 0) + { + phi_s2_3 = phi_s2_2; + phi_s5 = (phi_s2_2 * 4) + phi_s2_2; +loop_12: + phi_s0 = phi_s5; + phi_s1 = 0; +loop_13: + phi_s1_2 = phi_s1; + if (get_highest_unlocked_difficulty_for_level(phi_s0) < 0) + { + temp_s1 = phi_s1 + 1; + phi_s0 = phi_s0 + 1; + phi_s1 = temp_s1; + phi_s1_2 = temp_s1; + if (temp_s1 != 5) + { + goto loop_13; + } + } + phi_s2_4 = phi_s2_3; + if (phi_s1_2 >= 5) + { + temp_s2_2 = phi_s2_3 + -1; + phi_s2_3 = temp_s2_2; + phi_s2_4 = temp_s2_2; + phi_s5 = phi_s5 + -5; + if (temp_s2_2 > 0) + { + goto loop_12; + } + } + } + temp_s5 = (phi_s2_4 * 4) + phi_s2_4; + phi_s4_4 = phi_s4_2; + if (phi_s4_2 >= 0) + { + phi_s0_2 = temp_s5 + phi_s4_2; + phi_s4_3 = phi_s4_2; +loop_19: + phi_s4_4 = phi_s4_3; + if (get_highest_unlocked_difficulty_for_level(phi_s0_2) < 0) + { + temp_s4_2 = phi_s4_3 + -1; + phi_s0_2 = phi_s0_2 + -1; + phi_s4_3 = temp_s4_2; + phi_s4_4 = temp_s4_2; + if (temp_s4_2 >= 0) + { + goto loop_19; + } + } + } + phi_s4_6 = phi_s4_4; + if (phi_s4_4 < 0) + { + phi_s0_3 = temp_s5; + phi_s4_5 = 0; +loop_23: + phi_s4_6 = phi_s4_5; + if (get_highest_unlocked_difficulty_for_level(phi_s0_3) < 0) + { + temp_s4_3 = phi_s4_5 + 1; + phi_s0_3 = phi_s0_3 + 1; + phi_s4_5 = temp_s4_3; + phi_s4_6 = temp_s4_3; + if (temp_s4_3 != 5) + { + goto loop_23; + } + } + } + mission_difficulty_highlighted = (s32) (temp_s5 + phi_s4_6); + } + if (ptr_folder_object_instance->unk8->unk8->unk54 != 0) + { + temp_s1_2 = extract_id_from_object_structure_microcode(ptr_folder_object_instance, ptr_folder_object_instance->unk8->unk8->unk54); + *temp_s1_2 = sub_GAME_7F0BD6C4(ptr_folder_object_instance->unk8->unk8->unk54->unk4->unkC); + if (ptr_folder_object_instance->unk8->unk8->unk54->unk4->unkC > 0) + { + phi_s0_4 = 0; + phi_s2_5 = 0; +loop_29: + temp_t3 = ptr_folder_object_instance->unk8->unk8->unk54->unk4->unk8 + phi_s0_4; + temp_t1 = *temp_s1_2 + phi_s0_4; + temp_t1->unk0 = (s32) temp_t3->unk0; + temp_t1->unk4 = (s32) temp_t3->unk4; + temp_t1->unk8 = (s32) temp_t3->unk8; + temp_t1->unkC = (s32) temp_t3->unkC; + phi_a0 = (s32) phi_s2_5 >> 2; + if (phi_s2_5 < 0) + { + phi_a0 = (s32) (phi_s2_5 + 3) >> 2; + } + if (get_highest_unlocked_difficulty_for_level(phi_a0) >= 0) + { + if (sp30 == mission_difficulty_highlighted) + { + (*temp_s1_2 + phi_s0_4)->unkC = (u8)0xff; + (*temp_s1_2 + phi_s0_4)->unkD = (u8)0xff; + (*temp_s1_2 + phi_s0_4)->unkE = (u8)0xff; + (*temp_s1_2 + phi_s0_4)->unkF = (u8)0xf5; + } + else + { + (*temp_s1_2 + phi_s0_4)->unkC = (u8)0x6e; + (*temp_s1_2 + phi_s0_4)->unkD = (u8)0x6e; + (*temp_s1_2 + phi_s0_4)->unkE = (u8)0x6e; + (*temp_s1_2 + phi_s0_4)->unkF = (u8)0xff; + } + } + else + { + (*temp_s1_2 + phi_s0_4)->unkC = (u8)0xf; + (*temp_s1_2 + phi_s0_4)->unkD = (u8)0xf; + (*temp_s1_2 + phi_s0_4)->unkE = (u8)0xf; + (*temp_s1_2 + phi_s0_4)->unkF = (u8)0xff; + } + temp_s2_3 = phi_s2_5 + 1; + phi_s0_4 = phi_s0_4 + 0x10; + phi_s2_5 = temp_s2_3; + if (temp_s2_3 < ptr_folder_object_instance->unk8->unk8->unk54->unk4->unkC) + { + goto loop_29; + } + } + } + if (get_controller_buttons_pressed(0, 0xb000) != 0) + { + if (tab_3_highlight != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if ((void *)0x80070000->unk-687C >= 0) + { + briefingpage = pull_and_display_text_for_folder_a0((void *)0x80070000->unk-687C); + selected_stage = (s32) (0x80030000 + (briefingpage * 0x1c))->unk-5414; + tab_2_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + else + { + if (get_controller_buttons_pressed(0, 0x4000) != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + menu_control_stick_tracking(); + if (tab_2_selected != 0) + { + set_menu_to_mode(MENU_DIFFICULTY, 0); + set_cursor_pos_difficulty(get_highest_unlocked_difficulty_for_level((0x80030000 + (briefingpage * 0x1c))->unk-5408)); + return; + } + if (tab_3_selected != 0) + { + set_menu_to_mode(MENU_MODE_SELECT, 0); + set_menu_cursor_pos_to_setting(0); + } +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80051A44 +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_80051A48 +.word 0x461C4000 /* 10000.0;*/ +.text +glabel interface_menu07_missionsel +/* 0429E8 7F00DEB8 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0429EC 7F00DEBC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0429F0 7F00DEC0 AFBF002C */ sw $ra, 0x2c($sp) +/* 0429F4 7F00DEC4 44816000 */ mtc1 $at, $f12 +/* 0429F8 7F00DEC8 AFB50028 */ sw $s5, 0x28($sp) +/* 0429FC 7F00DECC AFB40024 */ sw $s4, 0x24($sp) +/* 042A00 7F00DED0 AFB30020 */ sw $s3, 0x20($sp) +/* 042A04 7F00DED4 AFB2001C */ sw $s2, 0x1c($sp) +/* 042A08 7F00DED8 AFB10018 */ sw $s1, 0x18($sp) +/* 042A0C 7F00DEDC 0C001151 */ jal setvideo_far +/* 042A10 7F00DEE0 AFB00014 */ sw $s0, 0x14($sp) +/* 042A14 7F00DEE4 3C018005 */ lui $at, %hi(D_80051A44) +/* 042A18 7F00DEE8 0C001164 */ jal video_related_21 +/* 042A1C 7F00DEEC C42C1A44 */ lwc1 $f12, %lo(D_80051A44)($at) +/* 042A20 7F00DEF0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 042A24 7F00DEF4 44816000 */ mtc1 $at, $f12 +/* 042A28 7F00DEF8 3C018005 */ lui $at, %hi(D_80051A48) +/* 042A2C 7F00DEFC 0C001194 */ jal set_page_height +/* 042A30 7F00DF00 C42E1A48 */ lwc1 $f14, %lo(D_80051A48)($at) +/* 042A34 7F00DF04 0C00114D */ jal set_video2_settings_offset_24 +/* 042A38 7F00DF08 00002025 */ move $a0, $zero +/* 042A3C 7F00DF0C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 042A40 7F00DF10 0FC02DC9 */ jal disable_all_switches +/* 042A44 7F00DF14 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042A48 7F00DF18 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 042A4C 7F00DF1C 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042A50 7F00DF20 00002825 */ move $a1, $zero +/* 042A54 7F00DF24 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 042A58 7F00DF28 24060001 */ li $a2, 1 +/* 042A5C 7F00DF2C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 042A60 7F00DF30 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042A64 7F00DF34 24050013 */ li $a1, 19 +/* 042A68 7F00DF38 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 042A6C 7F00DF3C 24060001 */ li $a2, 1 +/* 042A70 7F00DF40 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 042A74 7F00DF44 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042A78 7F00DF48 24050014 */ li $a1, 20 +/* 042A7C 7F00DF4C 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 042A80 7F00DF50 24060001 */ li $a2, 1 +/* 042A84 7F00DF54 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 042A88 7F00DF58 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 042A8C 7F00DF5C 3C018007 */ lui $at, %hi(mission_difficulty_highlighted) +/* 042A90 7F00DF60 240EFFFF */ li $t6, -1 +/* 042A94 7F00DF64 0FC028E7 */ jal isontab3 +/* 042A98 7F00DF68 AC2E9784 */ sw $t6, %lo(mission_difficulty_highlighted)($at) +/* 042A9C 7F00DF6C 10400005 */ beqz $v0, .L7F00DF84 +/* 042AA0 7F00DF70 0000A025 */ move $s4, $zero +/* 042AA4 7F00DF74 240F0001 */ li $t7, 1 +/* 042AA8 7F00DF78 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 042AAC 7F00DF7C 1000005E */ b .L7F00E0F8 +/* 042AB0 7F00DF80 AC2FA8E4 */ sw $t7, %lo(tab_3_highlight)($at) +.L7F00DF84: +/* 042AB4 7F00DF84 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 042AB8 7F00DF88 3C048003 */ lui $a0, %hi(cursor_xpos_table_mission_select) +/* 042ABC 7F00DF8C 3C038003 */ lui $v1, %hi(cursor_h_pos) +/* 042AC0 7F00DF90 44810000 */ mtc1 $at, $f0 +/* 042AC4 7F00DF94 2463A908 */ addiu $v1, %lo(cursor_h_pos) # addiu $v1, $v1, -0x56f8 +/* 042AC8 7F00DF98 2484AFD0 */ addiu $a0, %lo(cursor_xpos_table_mission_select) # addiu $a0, $a0, -0x5030 +/* 042ACC 7F00DF9C 24130005 */ li $s3, 5 +/* 042AD0 7F00DFA0 2A810004 */ slti $at, $s4, 4 +.L7F00DFA4: +/* 042AD4 7F00DFA4 10200011 */ beqz $at, .L7F00DFEC +/* 042AD8 7F00DFA8 0014C080 */ sll $t8, $s4, 2 +/* 042ADC 7F00DFAC 00981021 */ addu $v0, $a0, $t8 +/* 042AE0 7F00DFB0 8C590004 */ lw $t9, 4($v0) +/* 042AE4 7F00DFB4 8C480000 */ lw $t0, ($v0) +/* 042AE8 7F00DFB8 C4640000 */ lwc1 $f4, ($v1) +/* 042AEC 7F00DFBC 03284821 */ addu $t1, $t9, $t0 +/* 042AF0 7F00DFC0 44893000 */ mtc1 $t1, $f6 +/* 042AF4 7F00DFC4 00000000 */ nop +/* 042AF8 7F00DFC8 46803220 */ cvt.s.w $f8, $f6 +/* 042AFC 7F00DFCC 46004282 */ mul.s $f10, $f8, $f0 +/* 042B00 7F00DFD0 460A203C */ c.lt.s $f4, $f10 +/* 042B04 7F00DFD4 00000000 */ nop +/* 042B08 7F00DFD8 45010004 */ bc1t .L7F00DFEC +/* 042B0C 7F00DFDC 00000000 */ nop +/* 042B10 7F00DFE0 26940001 */ addiu $s4, $s4, 1 +/* 042B14 7F00DFE4 5693FFEF */ bnel $s4, $s3, .L7F00DFA4 +/* 042B18 7F00DFE8 2A810004 */ slti $at, $s4, 4 +.L7F00DFEC: +/* 042B1C 7F00DFEC 3C048003 */ lui $a0, %hi(cursor_ypos_table_mission_select) +/* 042B20 7F00DFF0 3C038003 */ lui $v1, %hi(cursor_v_pos) +/* 042B24 7F00DFF4 2463A90C */ addiu $v1, %lo(cursor_v_pos) # addiu $v1, $v1, -0x56f4 +/* 042B28 7F00DFF8 2484AFE4 */ addiu $a0, %lo(cursor_ypos_table_mission_select) # addiu $a0, $a0, -0x501c +/* 042B2C 7F00DFFC 00009025 */ move $s2, $zero +/* 042B30 7F00E000 24050004 */ li $a1, 4 +/* 042B34 7F00E004 2A410003 */ slti $at, $s2, 3 +.L7F00E008: +/* 042B38 7F00E008 10200011 */ beqz $at, .L7F00E050 +/* 042B3C 7F00E00C 00125080 */ sll $t2, $s2, 2 +/* 042B40 7F00E010 008A1021 */ addu $v0, $a0, $t2 +/* 042B44 7F00E014 8C4B0004 */ lw $t3, 4($v0) +/* 042B48 7F00E018 8C4C0000 */ lw $t4, ($v0) +/* 042B4C 7F00E01C C4700000 */ lwc1 $f16, ($v1) +/* 042B50 7F00E020 016C6821 */ addu $t5, $t3, $t4 +/* 042B54 7F00E024 448D9000 */ mtc1 $t5, $f18 +/* 042B58 7F00E028 00000000 */ nop +/* 042B5C 7F00E02C 468091A0 */ cvt.s.w $f6, $f18 +/* 042B60 7F00E030 46003202 */ mul.s $f8, $f6, $f0 +/* 042B64 7F00E034 4608803C */ c.lt.s $f16, $f8 +/* 042B68 7F00E038 00000000 */ nop +/* 042B6C 7F00E03C 45010004 */ bc1t .L7F00E050 +/* 042B70 7F00E040 00000000 */ nop +/* 042B74 7F00E044 26520001 */ addiu $s2, $s2, 1 +/* 042B78 7F00E048 5645FFEF */ bnel $s2, $a1, .L7F00E008 +/* 042B7C 7F00E04C 2A410003 */ slti $at, $s2, 3 +.L7F00E050: +/* 042B80 7F00E050 1A400011 */ blez $s2, .L7F00E098 +/* 042B84 7F00E054 0012A880 */ sll $s5, $s2, 2 +/* 042B88 7F00E058 02B2A821 */ addu $s5, $s5, $s2 +.L7F00E05C: +/* 042B8C 7F00E05C 00008825 */ move $s1, $zero +/* 042B90 7F00E060 02A08025 */ move $s0, $s5 +.L7F00E064: +/* 042B94 7F00E064 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 042B98 7F00E068 02002025 */ move $a0, $s0 +/* 042B9C 7F00E06C 04430005 */ bgezl $v0, .L7F00E084 +/* 042BA0 7F00E070 2A210005 */ slti $at, $s1, 5 +/* 042BA4 7F00E074 26310001 */ addiu $s1, $s1, 1 +/* 042BA8 7F00E078 1633FFFA */ bne $s1, $s3, .L7F00E064 +/* 042BAC 7F00E07C 26100001 */ addiu $s0, $s0, 1 +/* 042BB0 7F00E080 2A210005 */ slti $at, $s1, 5 +.L7F00E084: +/* 042BB4 7F00E084 54200005 */ bnezl $at, .L7F00E09C +/* 042BB8 7F00E088 0012A880 */ sll $s5, $s2, 2 +/* 042BBC 7F00E08C 2652FFFF */ addiu $s2, $s2, -1 +/* 042BC0 7F00E090 1E40FFF2 */ bgtz $s2, .L7F00E05C +/* 042BC4 7F00E094 26B5FFFB */ addiu $s5, $s5, -5 +.L7F00E098: +/* 042BC8 7F00E098 0012A880 */ sll $s5, $s2, 2 +.L7F00E09C: +/* 042BCC 7F00E09C 06800009 */ bltz $s4, .L7F00E0C4 +/* 042BD0 7F00E0A0 02B2A821 */ addu $s5, $s5, $s2 +/* 042BD4 7F00E0A4 02B48021 */ addu $s0, $s5, $s4 +.L7F00E0A8: +/* 042BD8 7F00E0A8 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 042BDC 7F00E0AC 02002025 */ move $a0, $s0 +/* 042BE0 7F00E0B0 04410004 */ bgez $v0, .L7F00E0C4 +/* 042BE4 7F00E0B4 00000000 */ nop +/* 042BE8 7F00E0B8 2694FFFF */ addiu $s4, $s4, -1 +/* 042BEC 7F00E0BC 0681FFFA */ bgez $s4, .L7F00E0A8 +/* 042BF0 7F00E0C0 2610FFFF */ addiu $s0, $s0, -1 +.L7F00E0C4: +/* 042BF4 7F00E0C4 06810009 */ bgez $s4, .L7F00E0EC +/* 042BF8 7F00E0C8 02A08025 */ move $s0, $s5 +/* 042BFC 7F00E0CC 0000A025 */ move $s4, $zero +.L7F00E0D0: +/* 042C00 7F00E0D0 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 042C04 7F00E0D4 02002025 */ move $a0, $s0 +/* 042C08 7F00E0D8 04430005 */ bgezl $v0, .L7F00E0F0 +/* 042C0C 7F00E0DC 02B47021 */ addu $t6, $s5, $s4 +/* 042C10 7F00E0E0 26940001 */ addiu $s4, $s4, 1 +/* 042C14 7F00E0E4 1693FFFA */ bne $s4, $s3, .L7F00E0D0 +/* 042C18 7F00E0E8 26100001 */ addiu $s0, $s0, 1 +.L7F00E0EC: +/* 042C1C 7F00E0EC 02B47021 */ addu $t6, $s5, $s4 +.L7F00E0F0: +/* 042C20 7F00E0F0 3C018007 */ lui $at, %hi(mission_difficulty_highlighted) +/* 042C24 7F00E0F4 AC2E9784 */ sw $t6, %lo(mission_difficulty_highlighted)($at) +.L7F00E0F8: +/* 042C28 7F00E0F8 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 042C2C 7F00E0FC 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042C30 7F00E100 8C8F0008 */ lw $t7, 8($a0) +/* 042C34 7F00E104 8DF80008 */ lw $t8, 8($t7) +/* 042C38 7F00E108 8F050054 */ lw $a1, 0x54($t8) +/* 042C3C 7F00E10C 50A00054 */ beql $a1, $zero, .L7F00E260 +/* 042C40 7F00E110 00002025 */ move $a0, $zero +/* 042C44 7F00E114 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 042C48 7F00E118 8CB40004 */ lw $s4, 4($a1) +/* 042C4C 7F00E11C 00408825 */ move $s1, $v0 +/* 042C50 7F00E120 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 042C54 7F00E124 8684000C */ lh $a0, 0xc($s4) +/* 042C58 7F00E128 AE220000 */ sw $v0, ($s1) +/* 042C5C 7F00E12C 8699000C */ lh $t9, 0xc($s4) +/* 042C60 7F00E130 00009025 */ move $s2, $zero +/* 042C64 7F00E134 00008025 */ move $s0, $zero +/* 042C68 7F00E138 1B200048 */ blez $t9, .L7F00E25C +/* 042C6C 7F00E13C 241500F5 */ li $s5, 245 +/* 042C70 7F00E140 2413006E */ li $s3, 110 +/* 042C74 7F00E144 8E8A0008 */ lw $t2, 8($s4) +.L7F00E148: +/* 042C78 7F00E148 8E280000 */ lw $t0, ($s1) +/* 042C7C 7F00E14C 01505821 */ addu $t3, $t2, $s0 +/* 042C80 7F00E150 8D610000 */ lw $at, ($t3) +/* 042C84 7F00E154 01104821 */ addu $t1, $t0, $s0 +/* 042C88 7F00E158 AD210000 */ sw $at, ($t1) +/* 042C8C 7F00E15C 8D6D0004 */ lw $t5, 4($t3) +/* 042C90 7F00E160 AD2D0004 */ sw $t5, 4($t1) +/* 042C94 7F00E164 8D610008 */ lw $at, 8($t3) +/* 042C98 7F00E168 AD210008 */ sw $at, 8($t1) +/* 042C9C 7F00E16C 8D6D000C */ lw $t5, 0xc($t3) +/* 042CA0 7F00E170 AD2D000C */ sw $t5, 0xc($t1) +/* 042CA4 7F00E174 06410003 */ bgez $s2, .L7F00E184 +/* 042CA8 7F00E178 00122083 */ sra $a0, $s2, 2 +/* 042CAC 7F00E17C 26410003 */ addiu $at, $s2, 3 +/* 042CB0 7F00E180 00012083 */ sra $a0, $at, 2 +.L7F00E184: +/* 042CB4 7F00E184 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 042CB8 7F00E188 AFA40030 */ sw $a0, 0x30($sp) +/* 042CBC 7F00E18C 240300FF */ li $v1, 255 +/* 042CC0 7F00E190 8FA40030 */ lw $a0, 0x30($sp) +/* 042CC4 7F00E194 0440001F */ bltz $v0, .L7F00E214 +/* 042CC8 7F00E198 2405000F */ li $a1, 15 +/* 042CCC 7F00E19C 3C0E8007 */ lui $t6, %hi(mission_difficulty_highlighted) +/* 042CD0 7F00E1A0 8DCE9784 */ lw $t6, %lo(mission_difficulty_highlighted)($t6) +/* 042CD4 7F00E1A4 548E000F */ bnel $a0, $t6, .L7F00E1E4 +/* 042CD8 7F00E1A8 8E2D0000 */ lw $t5, ($s1) +/* 042CDC 7F00E1AC 8E2F0000 */ lw $t7, ($s1) +/* 042CE0 7F00E1B0 01F0C021 */ addu $t8, $t7, $s0 +/* 042CE4 7F00E1B4 A303000C */ sb $v1, 0xc($t8) +/* 042CE8 7F00E1B8 8E390000 */ lw $t9, ($s1) +/* 042CEC 7F00E1BC 03304021 */ addu $t0, $t9, $s0 +/* 042CF0 7F00E1C0 A103000D */ sb $v1, 0xd($t0) +/* 042CF4 7F00E1C4 8E2A0000 */ lw $t2, ($s1) +/* 042CF8 7F00E1C8 01506021 */ addu $t4, $t2, $s0 +/* 042CFC 7F00E1CC A183000E */ sb $v1, 0xe($t4) +/* 042D00 7F00E1D0 8E290000 */ lw $t1, ($s1) +/* 042D04 7F00E1D4 01305821 */ addu $t3, $t1, $s0 +/* 042D08 7F00E1D8 1000001A */ b .L7F00E244 +/* 042D0C 7F00E1DC A175000F */ sb $s5, 0xf($t3) +/* 042D10 7F00E1E0 8E2D0000 */ lw $t5, ($s1) +.L7F00E1E4: +/* 042D14 7F00E1E4 01B07021 */ addu $t6, $t5, $s0 +/* 042D18 7F00E1E8 A1D3000C */ sb $s3, 0xc($t6) +/* 042D1C 7F00E1EC 8E2F0000 */ lw $t7, ($s1) +/* 042D20 7F00E1F0 01F0C021 */ addu $t8, $t7, $s0 +/* 042D24 7F00E1F4 A313000D */ sb $s3, 0xd($t8) +/* 042D28 7F00E1F8 8E390000 */ lw $t9, ($s1) +/* 042D2C 7F00E1FC 03304021 */ addu $t0, $t9, $s0 +/* 042D30 7F00E200 A113000E */ sb $s3, 0xe($t0) +/* 042D34 7F00E204 8E2A0000 */ lw $t2, ($s1) +/* 042D38 7F00E208 01506021 */ addu $t4, $t2, $s0 +/* 042D3C 7F00E20C 1000000D */ b .L7F00E244 +/* 042D40 7F00E210 A183000F */ sb $v1, 0xf($t4) +.L7F00E214: +/* 042D44 7F00E214 8E290000 */ lw $t1, ($s1) +/* 042D48 7F00E218 01305821 */ addu $t3, $t1, $s0 +/* 042D4C 7F00E21C A165000C */ sb $a1, 0xc($t3) +/* 042D50 7F00E220 8E2D0000 */ lw $t5, ($s1) +/* 042D54 7F00E224 01B07021 */ addu $t6, $t5, $s0 +/* 042D58 7F00E228 A1C5000D */ sb $a1, 0xd($t6) +/* 042D5C 7F00E22C 8E2F0000 */ lw $t7, ($s1) +/* 042D60 7F00E230 01F0C021 */ addu $t8, $t7, $s0 +/* 042D64 7F00E234 A305000E */ sb $a1, 0xe($t8) +/* 042D68 7F00E238 8E390000 */ lw $t9, ($s1) +/* 042D6C 7F00E23C 03304021 */ addu $t0, $t9, $s0 +/* 042D70 7F00E240 A103000F */ sb $v1, 0xf($t0) +.L7F00E244: +/* 042D74 7F00E244 868A000C */ lh $t2, 0xc($s4) +/* 042D78 7F00E248 26520001 */ addiu $s2, $s2, 1 +/* 042D7C 7F00E24C 26100010 */ addiu $s0, $s0, 0x10 +/* 042D80 7F00E250 024A082A */ slt $at, $s2, $t2 +/* 042D84 7F00E254 5420FFBC */ bnezl $at, .L7F00E148 +/* 042D88 7F00E258 8E8A0008 */ lw $t2, 8($s4) +.L7F00E25C: +/* 042D8C 7F00E25C 00002025 */ move $a0, $zero +.L7F00E260: +/* 042D90 7F00E260 0C0030EB */ jal get_controller_buttons_pressed +/* 042D94 7F00E264 3405B000 */ li $a1, 45056 +/* 042D98 7F00E268 1040002A */ beqz $v0, .L7F00E314 +/* 042D9C 7F00E26C 00002025 */ move $a0, $zero +/* 042DA0 7F00E270 3C0C8003 */ lui $t4, %hi(tab_3_highlight) +/* 042DA4 7F00E274 8D8CA8E4 */ lw $t4, %lo(tab_3_highlight)($t4) +/* 042DA8 7F00E278 24090001 */ li $t1, 1 +/* 042DAC 7F00E27C 3C018003 */ lui $at, %hi(tab_3_selected) +/* 042DB0 7F00E280 11800009 */ beqz $t4, .L7F00E2A8 +/* 042DB4 7F00E284 3C048007 */ lui $a0, %hi(mission_difficulty_highlighted) +/* 042DB8 7F00E288 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042DBC 7F00E28C AC29A8D8 */ sw $t1, %lo(tab_3_selected)($at) +/* 042DC0 7F00E290 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042DC4 7F00E294 240500C7 */ li $a1, 199 +/* 042DC8 7F00E298 0C002382 */ jal play_sfx_a1 +/* 042DCC 7F00E29C 00003025 */ move $a2, $zero +/* 042DD0 7F00E2A0 10000027 */ b .L7F00E340 +/* 042DD4 7F00E2A4 00000000 */ nop +.L7F00E2A8: +/* 042DD8 7F00E2A8 8C849784 */ lw $a0, %lo(mission_difficulty_highlighted)($a0) +/* 042DDC 7F00E2AC 04800024 */ bltz $a0, .L7F00E340 +/* 042DE0 7F00E2B0 00000000 */ nop +/* 042DE4 7F00E2B4 0FC03730 */ jal pull_and_display_text_for_folder_a0 +/* 042DE8 7F00E2B8 00000000 */ nop +/* 042DEC 7F00E2BC 3C018003 */ lui $at, %hi(briefingpage) +/* 042DF0 7F00E2C0 AC22A8F8 */ sw $v0, %lo(briefingpage)($at) +/* 042DF4 7F00E2C4 3C0B8003 */ lui $t3, %hi(briefingpage) +/* 042DF8 7F00E2C8 8D6BA8F8 */ lw $t3, %lo(briefingpage)($t3) +/* 042DFC 7F00E2CC 3C0E8003 */ lui $t6, %hi(mission_folder_setup_entries+8) +/* 042E00 7F00E2D0 3C018003 */ lui $at, %hi(selected_stage) +/* 042E04 7F00E2D4 000B68C0 */ sll $t5, $t3, 3 +/* 042E08 7F00E2D8 01AB6823 */ subu $t5, $t5, $t3 +/* 042E0C 7F00E2DC 000D6880 */ sll $t5, $t5, 2 +/* 042E10 7F00E2E0 01CD7021 */ addu $t6, $t6, $t5 +/* 042E14 7F00E2E4 8DCEABEC */ lw $t6, %lo(mission_folder_setup_entries+8)($t6) +/* 042E18 7F00E2E8 240F0001 */ li $t7, 1 +/* 042E1C 7F00E2EC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042E20 7F00E2F0 AC2EA8F4 */ sw $t6, %lo(selected_stage)($at) +/* 042E24 7F00E2F4 3C018003 */ lui $at, %hi(tab_2_selected) +/* 042E28 7F00E2F8 AC2FA8D4 */ sw $t7, %lo(tab_2_selected)($at) +/* 042E2C 7F00E2FC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042E30 7F00E300 240500C7 */ li $a1, 199 +/* 042E34 7F00E304 0C002382 */ jal play_sfx_a1 +/* 042E38 7F00E308 00003025 */ move $a2, $zero +/* 042E3C 7F00E30C 1000000C */ b .L7F00E340 +/* 042E40 7F00E310 00000000 */ nop +.L7F00E314: +/* 042E44 7F00E314 0C0030EB */ jal get_controller_buttons_pressed +/* 042E48 7F00E318 24054000 */ li $a1, 16384 +/* 042E4C 7F00E31C 10400008 */ beqz $v0, .L7F00E340 +/* 042E50 7F00E320 24180001 */ li $t8, 1 +/* 042E54 7F00E324 3C018003 */ lui $at, %hi(tab_3_selected) +/* 042E58 7F00E328 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042E5C 7F00E32C AC38A8D8 */ sw $t8, %lo(tab_3_selected)($at) +/* 042E60 7F00E330 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042E64 7F00E334 240500C7 */ li $a1, 199 +/* 042E68 7F00E338 0C002382 */ jal play_sfx_a1 +/* 042E6C 7F00E33C 00003025 */ move $a2, $zero +.L7F00E340: +/* 042E70 7F00E340 0FC026E1 */ jal menu_control_stick_tracking +/* 042E74 7F00E344 00000000 */ nop +/* 042E78 7F00E348 3C198003 */ lui $t9, %hi(tab_2_selected) +/* 042E7C 7F00E34C 8F39A8D4 */ lw $t9, %lo(tab_2_selected)($t9) +/* 042E80 7F00E350 24040008 */ li $a0, 8 +/* 042E84 7F00E354 3C0C8003 */ lui $t4, %hi(tab_3_selected) +/* 042E88 7F00E358 13200010 */ beqz $t9, .L7F00E39C +/* 042E8C 7F00E35C 00000000 */ nop +/* 042E90 7F00E360 0FC06975 */ jal set_menu_to_mode +/* 042E94 7F00E364 00002825 */ move $a1, $zero +/* 042E98 7F00E368 3C088003 */ lui $t0, %hi(briefingpage) +/* 042E9C 7F00E36C 8D08A8F8 */ lw $t0, %lo(briefingpage)($t0) +/* 042EA0 7F00E370 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+20) +/* 042EA4 7F00E374 000850C0 */ sll $t2, $t0, 3 +/* 042EA8 7F00E378 01485023 */ subu $t2, $t2, $t0 +/* 042EAC 7F00E37C 000A5080 */ sll $t2, $t2, 2 +/* 042EB0 7F00E380 008A2021 */ addu $a0, $a0, $t2 +/* 042EB4 7F00E384 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 042EB8 7F00E388 8C84ABF8 */ lw $a0, %lo(mission_folder_setup_entries+20)($a0) +/* 042EBC 7F00E38C 0FC03B59 */ jal set_cursor_pos_difficulty +/* 042EC0 7F00E390 00402025 */ move $a0, $v0 +/* 042EC4 7F00E394 1000000A */ b .L7F00E3C0 +/* 042EC8 7F00E398 8FBF002C */ lw $ra, 0x2c($sp) +.L7F00E39C: +/* 042ECC 7F00E39C 8D8CA8D8 */ lw $t4, %lo(tab_3_selected)($t4) +/* 042ED0 7F00E3A0 24040006 */ li $a0, 6 +/* 042ED4 7F00E3A4 51800006 */ beql $t4, $zero, .L7F00E3C0 +/* 042ED8 7F00E3A8 8FBF002C */ lw $ra, 0x2c($sp) +/* 042EDC 7F00E3AC 0FC06975 */ jal set_menu_to_mode +/* 042EE0 7F00E3B0 00002825 */ move $a1, $zero +/* 042EE4 7F00E3B4 0FC035FF */ jal set_menu_cursor_pos_to_setting +/* 042EE8 7F00E3B8 00002025 */ move $a0, $zero +/* 042EEC 7F00E3BC 8FBF002C */ lw $ra, 0x2c($sp) +.L7F00E3C0: +/* 042EF0 7F00E3C0 8FB00014 */ lw $s0, 0x14($sp) +/* 042EF4 7F00E3C4 8FB10018 */ lw $s1, 0x18($sp) +/* 042EF8 7F00E3C8 8FB2001C */ lw $s2, 0x1c($sp) +/* 042EFC 7F00E3CC 8FB30020 */ lw $s3, 0x20($sp) +/* 042F00 7F00E3D0 8FB40024 */ lw $s4, 0x24($sp) +/* 042F04 7F00E3D4 8FB50028 */ lw $s5, 0x28($sp) +/* 042F08 7F00E3D8 03E00008 */ jr $ra +/* 042F0C 7F00E3DC 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80051A44 +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_80051A48 +.word 0x461C4000 /* 10000.0;*/ +.text +glabel interface_menu07_missionsel +/* 042A48 7F00DED8 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 042A4C 7F00DEDC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 042A50 7F00DEE0 AFBF002C */ sw $ra, 0x2c($sp) +/* 042A54 7F00DEE4 44816000 */ mtc1 $at, $f12 +/* 042A58 7F00DEE8 AFB50028 */ sw $s5, 0x28($sp) +/* 042A5C 7F00DEEC AFB40024 */ sw $s4, 0x24($sp) +/* 042A60 7F00DEF0 AFB30020 */ sw $s3, 0x20($sp) +/* 042A64 7F00DEF4 AFB2001C */ sw $s2, 0x1c($sp) +/* 042A68 7F00DEF8 AFB10018 */ sw $s1, 0x18($sp) +/* 042A6C 7F00DEFC 0C001151 */ jal setvideo_far +/* 042A70 7F00DF00 AFB00014 */ sw $s0, 0x14($sp) +/* 042A74 7F00DF04 3C018005 */ lui $at, %hi(D_80051A44) # $at, 0x8005 +/* 042A78 7F00DF08 0C001164 */ jal video_related_21 +/* 042A7C 7F00DF0C C42C1A74 */ lwc1 $f12, %lo(D_80051A44)($at) +/* 042A80 7F00DF10 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 042A84 7F00DF14 44816000 */ mtc1 $at, $f12 +/* 042A88 7F00DF18 3C018005 */ lui $at, %hi(D_80051A48) # $at, 0x8005 +/* 042A8C 7F00DF1C 0C001194 */ jal set_page_height +/* 042A90 7F00DF20 C42E1A78 */ lwc1 $f14, %lo(D_80051A48)($at) +/* 042A94 7F00DF24 0C00114D */ jal set_video2_settings_offset_24 +/* 042A98 7F00DF28 00002025 */ move $a0, $zero +/* 042A9C 7F00DF2C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) # $a0, 0x8003 +/* 042AA0 7F00DF30 0FC02DD1 */ jal disable_all_switches +/* 042AA4 7F00DF34 8C84A99C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042AA8 7F00DF38 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) # $a0, 0x8003 +/* 042AAC 7F00DF3C 8C84A99C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042AB0 7F00DF40 00002825 */ move $a1, $zero +/* 042AB4 7F00DF44 0FC02DF8 */ jal set_item_visibility_in_objinstance +/* 042AB8 7F00DF48 24060001 */ li $a2, 1 +/* 042ABC 7F00DF4C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) # $a0, 0x8003 +/* 042AC0 7F00DF50 8C84A99C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042AC4 7F00DF54 24050013 */ li $a1, 19 +/* 042AC8 7F00DF58 0FC02DF8 */ jal set_item_visibility_in_objinstance +/* 042ACC 7F00DF5C 24060001 */ li $a2, 1 +/* 042AD0 7F00DF60 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) # $a0, 0x8003 +/* 042AD4 7F00DF64 8C84A99C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042AD8 7F00DF68 24050014 */ li $a1, 20 +/* 042ADC 7F00DF6C 0FC02DF8 */ jal set_item_visibility_in_objinstance +/* 042AE0 7F00DF70 24060001 */ li $a2, 1 +/* 042AE4 7F00DF74 3C018003 */ lui $at, %hi(tab_3_highlight) # $at, 0x8003 +/* 042AE8 7F00DF78 AC20A924 */ sw $zero, %lo(tab_3_highlight)($at) +/* 042AEC 7F00DF7C 3C018007 */ lui $at, %hi(mission_difficulty_highlighted) # $at, 0x8007 +/* 042AF0 7F00DF80 240EFFFF */ li $t6, -1 +/* 042AF4 7F00DF84 0FC028EF */ jal isontab3 +/* 042AF8 7F00DF88 AC2E97C4 */ sw $t6, %lo(mission_difficulty_highlighted)($at) +/* 042AFC 7F00DF8C 10400005 */ beqz $v0, .L7F00DFA4 +/* 042B00 7F00DF90 0000A025 */ move $s4, $zero +/* 042B04 7F00DF94 240F0001 */ li $t7, 1 +/* 042B08 7F00DF98 3C018003 */ lui $at, %hi(tab_3_highlight) # $at, 0x8003 +/* 042B0C 7F00DF9C 1000005E */ b .L7F00E118 +/* 042B10 7F00DFA0 AC2FA924 */ sw $t7, %lo(tab_3_highlight)($at) +.L7F00DFA4: +/* 042B14 7F00DFA4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 042B18 7F00DFA8 3C048003 */ lui $a0, %hi(cursor_xpos_table_mission_select) # $a0, 0x8003 +/* 042B1C 7F00DFAC 3C038003 */ lui $v1, %hi(cursor_h_pos) # $v1, 0x8003 +/* 042B20 7F00DFB0 44810000 */ mtc1 $at, $f0 +/* 042B24 7F00DFB4 2463A948 */ addiu $v1, %lo(cursor_h_pos) # addiu $v1, $v1, -0x56b8 +/* 042B28 7F00DFB8 2484B010 */ addiu $a0, %lo(cursor_xpos_table_mission_select) # addiu $a0, $a0, -0x4ff0 +/* 042B2C 7F00DFBC 24130005 */ li $s3, 5 +/* 042B30 7F00DFC0 2A810004 */ slti $at, $s4, 4 +.L7F00DFC4: +/* 042B34 7F00DFC4 10200011 */ beqz $at, .L7F00E00C +/* 042B38 7F00DFC8 0014C080 */ sll $t8, $s4, 2 +/* 042B3C 7F00DFCC 00981021 */ addu $v0, $a0, $t8 +/* 042B40 7F00DFD0 8C590004 */ lw $t9, 4($v0) +/* 042B44 7F00DFD4 8C480000 */ lw $t0, ($v0) +/* 042B48 7F00DFD8 C4640000 */ lwc1 $f4, ($v1) +/* 042B4C 7F00DFDC 03284821 */ addu $t1, $t9, $t0 +/* 042B50 7F00DFE0 44893000 */ mtc1 $t1, $f6 +/* 042B54 7F00DFE4 00000000 */ nop +/* 042B58 7F00DFE8 46803220 */ cvt.s.w $f8, $f6 +/* 042B5C 7F00DFEC 46004282 */ mul.s $f10, $f8, $f0 +/* 042B60 7F00DFF0 460A203C */ c.lt.s $f4, $f10 +/* 042B64 7F00DFF4 00000000 */ nop +/* 042B68 7F00DFF8 45010004 */ bc1t .L7F00E00C +/* 042B6C 7F00DFFC 00000000 */ nop +/* 042B70 7F00E000 26940001 */ addiu $s4, $s4, 1 +/* 042B74 7F00E004 5693FFEF */ bnel $s4, $s3, .L7F00DFC4 +/* 042B78 7F00E008 2A810004 */ slti $at, $s4, 4 +.L7F00E00C: +/* 042B7C 7F00E00C 3C048003 */ lui $a0, %hi(cursor_ypos_table_mission_select) # $a0, 0x8003 +/* 042B80 7F00E010 3C038003 */ lui $v1, %hi(cursor_v_pos) # $v1, 0x8003 +/* 042B84 7F00E014 2463A94C */ addiu $v1, %lo(cursor_v_pos) # addiu $v1, $v1, -0x56b4 +/* 042B88 7F00E018 2484B024 */ addiu $a0, %lo(cursor_ypos_table_mission_select) # addiu $a0, $a0, -0x4fdc +/* 042B8C 7F00E01C 00009025 */ move $s2, $zero +/* 042B90 7F00E020 24050004 */ li $a1, 4 +/* 042B94 7F00E024 2A410003 */ slti $at, $s2, 3 +.L7F00E028: +/* 042B98 7F00E028 10200011 */ beqz $at, .L7F00E070 +/* 042B9C 7F00E02C 00125080 */ sll $t2, $s2, 2 +/* 042BA0 7F00E030 008A1021 */ addu $v0, $a0, $t2 +/* 042BA4 7F00E034 8C4B0004 */ lw $t3, 4($v0) +/* 042BA8 7F00E038 8C4C0000 */ lw $t4, ($v0) +/* 042BAC 7F00E03C C4700000 */ lwc1 $f16, ($v1) +/* 042BB0 7F00E040 016C6821 */ addu $t5, $t3, $t4 +/* 042BB4 7F00E044 448D9000 */ mtc1 $t5, $f18 +/* 042BB8 7F00E048 00000000 */ nop +/* 042BBC 7F00E04C 468091A0 */ cvt.s.w $f6, $f18 +/* 042BC0 7F00E050 46003202 */ mul.s $f8, $f6, $f0 +/* 042BC4 7F00E054 4608803C */ c.lt.s $f16, $f8 +/* 042BC8 7F00E058 00000000 */ nop +/* 042BCC 7F00E05C 45010004 */ bc1t .L7F00E070 +/* 042BD0 7F00E060 00000000 */ nop +/* 042BD4 7F00E064 26520001 */ addiu $s2, $s2, 1 +/* 042BD8 7F00E068 5645FFEF */ bnel $s2, $a1, .L7F00E028 +/* 042BDC 7F00E06C 2A410003 */ slti $at, $s2, 3 +.L7F00E070: +/* 042BE0 7F00E070 1A400011 */ blez $s2, .L7F00E0B8 +/* 042BE4 7F00E074 0012A880 */ sll $s5, $s2, 2 +/* 042BE8 7F00E078 02B2A821 */ addu $s5, $s5, $s2 +.L7F00E07C: +/* 042BEC 7F00E07C 00008825 */ move $s1, $zero +/* 042BF0 7F00E080 02A08025 */ move $s0, $s5 +.L7F00E084: +/* 042BF4 7F00E084 0FC03760 */ jal get_highest_unlocked_difficulty_for_level +/* 042BF8 7F00E088 02002025 */ move $a0, $s0 +/* 042BFC 7F00E08C 04430005 */ bgezl $v0, .L7F00E0A4 +/* 042C00 7F00E090 2A210005 */ slti $at, $s1, 5 +/* 042C04 7F00E094 26310001 */ addiu $s1, $s1, 1 +/* 042C08 7F00E098 1633FFFA */ bne $s1, $s3, .L7F00E084 +/* 042C0C 7F00E09C 26100001 */ addiu $s0, $s0, 1 +/* 042C10 7F00E0A0 2A210005 */ slti $at, $s1, 5 +.L7F00E0A4: +/* 042C14 7F00E0A4 54200005 */ bnezl $at, .L7F00E0BC +/* 042C18 7F00E0A8 0012A880 */ sll $s5, $s2, 2 +/* 042C1C 7F00E0AC 2652FFFF */ addiu $s2, $s2, -1 +/* 042C20 7F00E0B0 1E40FFF2 */ bgtz $s2, .L7F00E07C +/* 042C24 7F00E0B4 26B5FFFB */ addiu $s5, $s5, -5 +.L7F00E0B8: +/* 042C28 7F00E0B8 0012A880 */ sll $s5, $s2, 2 +.L7F00E0BC: +/* 042C2C 7F00E0BC 06800009 */ bltz $s4, .L7F00E0E4 +/* 042C30 7F00E0C0 02B2A821 */ addu $s5, $s5, $s2 +/* 042C34 7F00E0C4 02B48021 */ addu $s0, $s5, $s4 +.L7F00E0C8: +/* 042C38 7F00E0C8 0FC03760 */ jal get_highest_unlocked_difficulty_for_level +/* 042C3C 7F00E0CC 02002025 */ move $a0, $s0 +/* 042C40 7F00E0D0 04410004 */ bgez $v0, .L7F00E0E4 +/* 042C44 7F00E0D4 00000000 */ nop +/* 042C48 7F00E0D8 2694FFFF */ addiu $s4, $s4, -1 +/* 042C4C 7F00E0DC 0681FFFA */ bgez $s4, .L7F00E0C8 +/* 042C50 7F00E0E0 2610FFFF */ addiu $s0, $s0, -1 +.L7F00E0E4: +/* 042C54 7F00E0E4 06810009 */ bgez $s4, .L7F00E10C +/* 042C58 7F00E0E8 02A08025 */ move $s0, $s5 +/* 042C5C 7F00E0EC 0000A025 */ move $s4, $zero +.L7F00E0F0: +/* 042C60 7F00E0F0 0FC03760 */ jal get_highest_unlocked_difficulty_for_level +/* 042C64 7F00E0F4 02002025 */ move $a0, $s0 +/* 042C68 7F00E0F8 04430005 */ bgezl $v0, .L7F00E110 +/* 042C6C 7F00E0FC 02B47021 */ addu $t6, $s5, $s4 +/* 042C70 7F00E100 26940001 */ addiu $s4, $s4, 1 +/* 042C74 7F00E104 1693FFFA */ bne $s4, $s3, .L7F00E0F0 +/* 042C78 7F00E108 26100001 */ addiu $s0, $s0, 1 +.L7F00E10C: +/* 042C7C 7F00E10C 02B47021 */ addu $t6, $s5, $s4 +.L7F00E110: +/* 042C80 7F00E110 3C018007 */ lui $at, %hi(mission_difficulty_highlighted) # $at, 0x8007 +/* 042C84 7F00E114 AC2E97C4 */ sw $t6, %lo(mission_difficulty_highlighted)($at) +.L7F00E118: +/* 042C88 7F00E118 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) # $a0, 0x8003 +/* 042C8C 7F00E11C 8C84A99C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042C90 7F00E120 8C8F0008 */ lw $t7, 8($a0) +/* 042C94 7F00E124 8DF80008 */ lw $t8, 8($t7) +/* 042C98 7F00E128 8F050054 */ lw $a1, 0x54($t8) +/* 042C9C 7F00E12C 50A00054 */ beql $a1, $zero, .L7F00E280 +/* 042CA0 7F00E130 00002025 */ move $a0, $zero +/* 042CA4 7F00E134 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 042CA8 7F00E138 8CB40004 */ lw $s4, 4($a1) +/* 042CAC 7F00E13C 00408825 */ move $s1, $v0 +/* 042CB0 7F00E140 0FC2F89D */ jal sub_GAME_7F0BD6C4 +/* 042CB4 7F00E144 8684000C */ lh $a0, 0xc($s4) +/* 042CB8 7F00E148 AE220000 */ sw $v0, ($s1) +/* 042CBC 7F00E14C 8699000C */ lh $t9, 0xc($s4) +/* 042CC0 7F00E150 00009025 */ move $s2, $zero +/* 042CC4 7F00E154 00008025 */ move $s0, $zero +/* 042CC8 7F00E158 1B200048 */ blez $t9, .L7F00E27C +/* 042CCC 7F00E15C 241500F5 */ li $s5, 245 +/* 042CD0 7F00E160 2413006E */ li $s3, 110 +/* 042CD4 7F00E164 8E8A0008 */ lw $t2, 8($s4) +.L7F00E168: +/* 042CD8 7F00E168 8E280000 */ lw $t0, ($s1) +/* 042CDC 7F00E16C 01505821 */ addu $t3, $t2, $s0 +/* 042CE0 7F00E170 8D610000 */ lw $at, ($t3) +/* 042CE4 7F00E174 01104821 */ addu $t1, $t0, $s0 +/* 042CE8 7F00E178 AD210000 */ sw $at, ($t1) +/* 042CEC 7F00E17C 8D6D0004 */ lw $t5, 4($t3) +/* 042CF0 7F00E180 AD2D0004 */ sw $t5, 4($t1) +/* 042CF4 7F00E184 8D610008 */ lw $at, 8($t3) +/* 042CF8 7F00E188 AD210008 */ sw $at, 8($t1) +/* 042CFC 7F00E18C 8D6D000C */ lw $t5, 0xc($t3) +/* 042D00 7F00E190 AD2D000C */ sw $t5, 0xc($t1) +/* 042D04 7F00E194 06410003 */ bgez $s2, .L7F00E1A4 +/* 042D08 7F00E198 00122083 */ sra $a0, $s2, 2 +/* 042D0C 7F00E19C 26410003 */ addiu $at, $s2, 3 +/* 042D10 7F00E1A0 00012083 */ sra $a0, $at, 2 +.L7F00E1A4: +/* 042D14 7F00E1A4 0FC03760 */ jal get_highest_unlocked_difficulty_for_level +/* 042D18 7F00E1A8 AFA40030 */ sw $a0, 0x30($sp) +/* 042D1C 7F00E1AC 240300FF */ li $v1, 255 +/* 042D20 7F00E1B0 8FA40030 */ lw $a0, 0x30($sp) +/* 042D24 7F00E1B4 0440001F */ bltz $v0, .L7F00E234 +/* 042D28 7F00E1B8 2405000F */ li $a1, 15 +/* 042D2C 7F00E1BC 3C0E8007 */ lui $t6, %hi(mission_difficulty_highlighted) # $t6, 0x8007 +/* 042D30 7F00E1C0 8DCE97C4 */ lw $t6, %lo(mission_difficulty_highlighted)($t6) +/* 042D34 7F00E1C4 548E000F */ bnel $a0, $t6, .L7F00E204 +/* 042D38 7F00E1C8 8E2D0000 */ lw $t5, ($s1) +/* 042D3C 7F00E1CC 8E2F0000 */ lw $t7, ($s1) +/* 042D40 7F00E1D0 01F0C021 */ addu $t8, $t7, $s0 +/* 042D44 7F00E1D4 A303000C */ sb $v1, 0xc($t8) +/* 042D48 7F00E1D8 8E390000 */ lw $t9, ($s1) +/* 042D4C 7F00E1DC 03304021 */ addu $t0, $t9, $s0 +/* 042D50 7F00E1E0 A103000D */ sb $v1, 0xd($t0) +/* 042D54 7F00E1E4 8E2A0000 */ lw $t2, ($s1) +/* 042D58 7F00E1E8 01506021 */ addu $t4, $t2, $s0 +/* 042D5C 7F00E1EC A183000E */ sb $v1, 0xe($t4) +/* 042D60 7F00E1F0 8E290000 */ lw $t1, ($s1) +/* 042D64 7F00E1F4 01305821 */ addu $t3, $t1, $s0 +/* 042D68 7F00E1F8 1000001A */ b .L7F00E264 +/* 042D6C 7F00E1FC A175000F */ sb $s5, 0xf($t3) +/* 042D70 7F00E200 8E2D0000 */ lw $t5, ($s1) +.L7F00E204: +/* 042D74 7F00E204 01B07021 */ addu $t6, $t5, $s0 +/* 042D78 7F00E208 A1D3000C */ sb $s3, 0xc($t6) +/* 042D7C 7F00E20C 8E2F0000 */ lw $t7, ($s1) +/* 042D80 7F00E210 01F0C021 */ addu $t8, $t7, $s0 +/* 042D84 7F00E214 A313000D */ sb $s3, 0xd($t8) +/* 042D88 7F00E218 8E390000 */ lw $t9, ($s1) +/* 042D8C 7F00E21C 03304021 */ addu $t0, $t9, $s0 +/* 042D90 7F00E220 A113000E */ sb $s3, 0xe($t0) +/* 042D94 7F00E224 8E2A0000 */ lw $t2, ($s1) +/* 042D98 7F00E228 01506021 */ addu $t4, $t2, $s0 +/* 042D9C 7F00E22C 1000000D */ b .L7F00E264 +/* 042DA0 7F00E230 A183000F */ sb $v1, 0xf($t4) +.L7F00E234: +/* 042DA4 7F00E234 8E290000 */ lw $t1, ($s1) +/* 042DA8 7F00E238 01305821 */ addu $t3, $t1, $s0 +/* 042DAC 7F00E23C A165000C */ sb $a1, 0xc($t3) +/* 042DB0 7F00E240 8E2D0000 */ lw $t5, ($s1) +/* 042DB4 7F00E244 01B07021 */ addu $t6, $t5, $s0 +/* 042DB8 7F00E248 A1C5000D */ sb $a1, 0xd($t6) +/* 042DBC 7F00E24C 8E2F0000 */ lw $t7, ($s1) +/* 042DC0 7F00E250 01F0C021 */ addu $t8, $t7, $s0 +/* 042DC4 7F00E254 A305000E */ sb $a1, 0xe($t8) +/* 042DC8 7F00E258 8E390000 */ lw $t9, ($s1) +/* 042DCC 7F00E25C 03304021 */ addu $t0, $t9, $s0 +/* 042DD0 7F00E260 A103000F */ sb $v1, 0xf($t0) +.L7F00E264: +/* 042DD4 7F00E264 868A000C */ lh $t2, 0xc($s4) +/* 042DD8 7F00E268 26520001 */ addiu $s2, $s2, 1 +/* 042DDC 7F00E26C 26100010 */ addiu $s0, $s0, 0x10 +/* 042DE0 7F00E270 024A082A */ slt $at, $s2, $t2 +/* 042DE4 7F00E274 5420FFBC */ bnezl $at, .L7F00E168 +/* 042DE8 7F00E278 8E8A0008 */ lw $t2, 8($s4) +.L7F00E27C: +/* 042DEC 7F00E27C 00002025 */ move $a0, $zero +.L7F00E280: +/* 042DF0 7F00E280 0C003104 */ jal get_controller_buttons_pressed +/* 042DF4 7F00E284 3405B000 */ li $a1, 45056 +/* 042DF8 7F00E288 1040002A */ beqz $v0, .L7F00E334 +/* 042DFC 7F00E28C 00002025 */ move $a0, $zero +/* 042E00 7F00E290 3C0C8003 */ lui $t4, %hi(tab_3_highlight) # $t4, 0x8003 +/* 042E04 7F00E294 8D8CA924 */ lw $t4, %lo(tab_3_highlight)($t4) +/* 042E08 7F00E298 24090001 */ li $t1, 1 +/* 042E0C 7F00E29C 3C018003 */ lui $at, %hi(tab_3_selected) # $at, 0x8003 +/* 042E10 7F00E2A0 11800009 */ beqz $t4, .L7F00E2C8 +/* 042E14 7F00E2A4 3C048007 */ lui $a0, %hi(mission_difficulty_highlighted) +/* 042E18 7F00E2A8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 042E1C 7F00E2AC AC29A918 */ sw $t1, %lo(tab_3_selected)($at) +/* 042E20 7F00E2B0 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042E24 7F00E2B4 240500C7 */ li $a1, 199 +/* 042E28 7F00E2B8 0C002386 */ jal play_sfx_a1 +/* 042E2C 7F00E2BC 00003025 */ move $a2, $zero +/* 042E30 7F00E2C0 10000027 */ b .L7F00E360 +/* 042E34 7F00E2C4 00000000 */ nop +.L7F00E2C8: +/* 042E38 7F00E2C8 8C8497C4 */ lw $a0, %lo(mission_difficulty_highlighted)($a0) +/* 042E3C 7F00E2CC 04800024 */ bltz $a0, .L7F00E360 +/* 042E40 7F00E2D0 00000000 */ nop +/* 042E44 7F00E2D4 0FC03738 */ jal pull_and_display_text_for_folder_a0 +/* 042E48 7F00E2D8 00000000 */ nop +/* 042E4C 7F00E2DC 3C018003 */ lui $at, %hi(briefingpage) # $at, 0x8003 +/* 042E50 7F00E2E0 AC22A938 */ sw $v0, %lo(briefingpage)($at) +/* 042E54 7F00E2E4 3C0B8003 */ lui $t3, %hi(briefingpage) # $t3, 0x8003 +/* 042E58 7F00E2E8 8D6BA938 */ lw $t3, %lo(briefingpage)($t3) +/* 042E5C 7F00E2EC 3C0E8003 */ lui $t6, %hi(mission_folder_setup_entries+8) +/* 042E60 7F00E2F0 3C018003 */ lui $at, %hi(selected_stage) # $at, 0x8003 +/* 042E64 7F00E2F4 000B68C0 */ sll $t5, $t3, 3 +/* 042E68 7F00E2F8 01AB6823 */ subu $t5, $t5, $t3 +/* 042E6C 7F00E2FC 000D6880 */ sll $t5, $t5, 2 +/* 042E70 7F00E300 01CD7021 */ addu $t6, $t6, $t5 +/* 042E74 7F00E304 8DCEAC2C */ lw $t6, %lo(mission_folder_setup_entries+8)($t6) +/* 042E78 7F00E308 240F0001 */ li $t7, 1 +/* 042E7C 7F00E30C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 042E80 7F00E310 AC2EA934 */ sw $t6, %lo(selected_stage)($at) +/* 042E84 7F00E314 3C018003 */ lui $at, %hi(tab_2_selected) # $at, 0x8003 +/* 042E88 7F00E318 AC2FA914 */ sw $t7, %lo(tab_2_selected)($at) +/* 042E8C 7F00E31C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042E90 7F00E320 240500C7 */ li $a1, 199 +/* 042E94 7F00E324 0C002386 */ jal play_sfx_a1 +/* 042E98 7F00E328 00003025 */ move $a2, $zero +/* 042E9C 7F00E32C 1000000C */ b .L7F00E360 +/* 042EA0 7F00E330 00000000 */ nop +.L7F00E334: +/* 042EA4 7F00E334 0C003104 */ jal get_controller_buttons_pressed +/* 042EA8 7F00E338 24054000 */ li $a1, 16384 +/* 042EAC 7F00E33C 10400008 */ beqz $v0, .L7F00E360 +/* 042EB0 7F00E340 24180001 */ li $t8, 1 +/* 042EB4 7F00E344 3C018003 */ lui $at, %hi(tab_3_selected) # $at, 0x8003 +/* 042EB8 7F00E348 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 042EBC 7F00E34C AC38A918 */ sw $t8, %lo(tab_3_selected)($at) +/* 042EC0 7F00E350 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042EC4 7F00E354 240500C7 */ li $a1, 199 +/* 042EC8 7F00E358 0C002386 */ jal play_sfx_a1 +/* 042ECC 7F00E35C 00003025 */ move $a2, $zero +.L7F00E360: +/* 042ED0 7F00E360 0FC026E9 */ jal menu_control_stick_tracking +/* 042ED4 7F00E364 00000000 */ nop +/* 042ED8 7F00E368 3C198003 */ lui $t9, %hi(tab_2_selected) # $t9, 0x8003 +/* 042EDC 7F00E36C 8F39A914 */ lw $t9, %lo(tab_2_selected)($t9) +/* 042EE0 7F00E370 24040008 */ li $a0, 8 +/* 042EE4 7F00E374 3C098003 */ lui $t1, %hi(tab_3_selected) # $t1, 0x8003 +/* 042EE8 7F00E378 13200018 */ beqz $t9, .L7F00E3DC +/* 042EEC 7F00E37C 00000000 */ nop +/* 042EF0 7F00E380 0FC069E2 */ jal set_menu_to_mode +/* 042EF4 7F00E384 00002825 */ move $a1, $zero +/* 042EF8 7F00E388 3C088005 */ lui $t0, %hi(j_text_trigger) # $t0, 0x8005 +/* 042EFC 7F00E38C 8D088500 */ lw $t0, %lo(j_text_trigger)($t0) +/* 042F00 7F00E390 3C0A8003 */ lui $t2, %hi(briefingpage) # $t2, 0x8003 +/* 042F04 7F00E394 11000005 */ beqz $t0, .L7F00E3AC +/* 042F08 7F00E398 00000000 */ nop +/* 042F0C 7F00E39C 0FC03B69 */ jal set_cursor_pos_difficulty +/* 042F10 7F00E3A0 00002025 */ move $a0, $zero +/* 042F14 7F00E3A4 10000016 */ b .L7F00E400 +/* 042F18 7F00E3A8 8FBF002C */ lw $ra, 0x2c($sp) +.L7F00E3AC: +/* 042F1C 7F00E3AC 8D4AA938 */ lw $t2, %lo(briefingpage)($t2) +/* 042F20 7F00E3B0 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+20) +/* 042F24 7F00E3B4 000A60C0 */ sll $t4, $t2, 3 +/* 042F28 7F00E3B8 018A6023 */ subu $t4, $t4, $t2 +/* 042F2C 7F00E3BC 000C6080 */ sll $t4, $t4, 2 +/* 042F30 7F00E3C0 008C2021 */ addu $a0, $a0, $t4 +/* 042F34 7F00E3C4 0FC03760 */ jal get_highest_unlocked_difficulty_for_level +/* 042F38 7F00E3C8 8C84AC38 */ lw $a0, %lo(mission_folder_setup_entries+20)($a0) +/* 042F3C 7F00E3CC 0FC03B69 */ jal set_cursor_pos_difficulty +/* 042F40 7F00E3D0 00402025 */ move $a0, $v0 +/* 042F44 7F00E3D4 1000000A */ b .L7F00E400 +/* 042F48 7F00E3D8 8FBF002C */ lw $ra, 0x2c($sp) +.L7F00E3DC: +/* 042F4C 7F00E3DC 8D29A918 */ lw $t1, %lo(tab_3_selected)($t1) +/* 042F50 7F00E3E0 24040006 */ li $a0, 6 +/* 042F54 7F00E3E4 51200006 */ beql $t1, $zero, .L7F00E400 +/* 042F58 7F00E3E8 8FBF002C */ lw $ra, 0x2c($sp) +/* 042F5C 7F00E3EC 0FC069E2 */ jal set_menu_to_mode +/* 042F60 7F00E3F0 00002825 */ move $a1, $zero +/* 042F64 7F00E3F4 0FC03607 */ jal set_menu_cursor_pos_to_setting +/* 042F68 7F00E3F8 00002025 */ move $a0, $zero +/* 042F6C 7F00E3FC 8FBF002C */ lw $ra, 0x2c($sp) +.L7F00E400: +/* 042F70 7F00E400 8FB00014 */ lw $s0, 0x14($sp) +/* 042F74 7F00E404 8FB10018 */ lw $s1, 0x18($sp) +/* 042F78 7F00E408 8FB2001C */ lw $s2, 0x1c($sp) +/* 042F7C 7F00E40C 8FB30020 */ lw $s3, 0x20($sp) +/* 042F80 7F00E410 8FB40024 */ lw $s4, 0x24($sp) +/* 042F84 7F00E414 8FB50028 */ lw $s5, 0x28($sp) +/* 042F88 7F00E418 03E00008 */ jr $ra +/* 042F8C 7F00E41C 27BD0060 */ addiu $sp, $sp, 0x60 + +) +#endif + +#endif + + +#ifdef NONMATCHING +s32 set_cursor_to_stage_solo(s32 arg0) +{ + cursor_h_pos = (f32) *(&cursor_xpos_table_mission_select + ((arg0 % 5) * 4)); + cursor_v_pos = (f32) *(&cursor_ypos_table_mission_select + ((arg0 / 5) * 4)); + return 5; +} +#else +GLOBAL_ASM( +.text +glabel set_cursor_to_stage_solo +/* 042F10 7F00E3E0 24020005 */ li $v0, 5 +/* 042F14 7F00E3E4 0082001A */ div $zero, $a0, $v0 +/* 042F18 7F00E3E8 00007010 */ mfhi $t6 +/* 042F1C 7F00E3EC 000E7880 */ sll $t7, $t6, 2 +/* 042F20 7F00E3F0 3C188003 */ lui $t8, %hi(cursor_xpos_table_mission_select) +/* 042F24 7F00E3F4 030FC021 */ addu $t8, $t8, $t7 +/* 042F28 7F00E3F8 8F18AFD0 */ lw $t8, %lo(cursor_xpos_table_mission_select)($t8) +/* 042F2C 7F00E3FC 0000C812 */ mflo $t9 +/* 042F30 7F00E400 00194080 */ sll $t0, $t9, 2 +/* 042F34 7F00E404 3C098003 */ lui $t1, %hi(cursor_ypos_table_mission_select) +/* 042F38 7F00E408 01284821 */ addu $t1, $t1, $t0 +/* 042F3C 7F00E40C 8D29AFE4 */ lw $t1, %lo(cursor_ypos_table_mission_select)($t1) +/* 042F40 7F00E410 44982000 */ mtc1 $t8, $f4 +/* 042F44 7F00E414 14400002 */ bnez $v0, .L7F00E420 +/* 042F48 7F00E418 00000000 */ nop +/* 042F4C 7F00E41C 0007000D */ break 7 +.L7F00E420: +/* 042F50 7F00E420 2401FFFF */ li $at, -1 +/* 042F54 7F00E424 14410004 */ bne $v0, $at, .L7F00E438 +/* 042F58 7F00E428 3C018000 */ lui $at, 0x8000 +/* 042F5C 7F00E42C 14810002 */ bne $a0, $at, .L7F00E438 +/* 042F60 7F00E430 00000000 */ nop +/* 042F64 7F00E434 0006000D */ break 6 +.L7F00E438: +/* 042F68 7F00E438 468021A0 */ cvt.s.w $f6, $f4 +/* 042F6C 7F00E43C 44894000 */ mtc1 $t1, $f8 +/* 042F70 7F00E440 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 042F74 7F00E444 468042A0 */ cvt.s.w $f10, $f8 +/* 042F78 7F00E448 E426A908 */ swc1 $f6, %lo(cursor_h_pos)($at) +/* 042F7C 7F00E44C 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 042F80 7F00E450 03E00008 */ jr $ra +/* 042F84 7F00E454 E42AA90C */ swc1 $f10, %lo(cursor_v_pos)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void constructor_menu07_missionsel(void) +{ + s32 spD8; + s32 spC8; + s32 spC4; + s32 sp90; + s32 sp8C; + s32 sp88; + s32 temp_a1; + s32 temp_a2; + s32 temp_ret; + s32 temp_s6; + s32 temp_t3; + s32 temp_v1; + s8 temp_v1_2; + u32 temp_v0_2; + void *temp_a0; + void *temp_s7; + void *temp_v0; + s32 phi_s3; + void *phi_v0; + s32 phi_s4; + s32 phi_s5; + s32 phi_s6; + s32 phi_s4_2; + + temp_ret = insert_generic_fillrect(set_setfillcolor(0, 0, 0)); + temp_ret->unk4 = -1; + temp_ret->unk0 = 0xf8000000; + spD8 = 0; + phi_s4 = microcode_constructor(sub_GAME_7F00D5E8(temp_ret + 8)); +loop_1: + phi_s3 = spD8; + phi_s6 = 0; +loop_2: + phi_s4_2 = phi_s4; + if (get_highest_unlocked_difficulty_for_level(phi_s3) >= 0) + { + temp_s7 = (spD8 * 4) + &cursor_xpos_table_mission_select; + phi_s5 = 0x96969600; + if (phi_s3 == mission_difficulty_highlighted) + { + phi_s5 = -0x100; + } + temp_v0 = (pull_and_display_text_for_folder_a0(phi_s3) * 0x1c) + &mission_folder_setup_entries; + if (temp_v0->unk6 != 0) + { + textpointer_load_parse_something(&sp90, get_textptr_for_textID(temp_v0->unk6)); + } + else + { + textpointer_load_parse_something(&sp90, get_textptr_for_textID(temp_v0->unk4)); + } + if (j_text_trigger == 0) + { + temp_v1 = strlen(&sp90) + -1; + phi_v0 = &sp90 + temp_v1; + if (temp_v1 >= 0) + { +loop_10: + temp_v1_2 = *phi_v0; + if (temp_v1_2 >= 0x61) + { + *phi_v0 = (s8) (temp_v1_2 + -0x20); + } + temp_v0_2 = phi_v0 + -1; + phi_v0 = temp_v0_2; + if (temp_v0_2 >= &sp90) + { + goto loop_10; + } + } + } + string_append_from_obseg_textbank(&sp90, &asc_D_8004F4A0); + spC4 = 0; + temp_a0 = &spC8; + spC8 = 0; + sub_GAME_7F0AE98C(temp_a0, &spC4, &sp90, ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0); + temp_a2 = (subroutine_arg0 - spC8) + 0x1d; + temp_a1 = *temp_s7 + -0x1f; + get_video2_settings_txtClipW(); + get_video2_settings_txtClipW(*temp_s7 + -0x1f, (subroutine_arg0 - spC8) + 0x1d); + phi_s4_2 = en_text_write_stuff(en_text_write_stuff(microcode_constructor_related_to_menus(phi_s4, temp_a1, temp_a2, temp_a1 + spC4, (s32) (temp_a2 + spC8), 0), &sp8C, &sp88, &sp90, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, (s32) (phi_s5 | 0xff), get_video2_settings_txtClipH(), 0, 0), &sp8C, &sp88, &sp90, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, (s32) (phi_s5 | 0x64), get_video2_settings_txtClipH(), 0, 0); + } + temp_s6 = phi_s6 + 1; + phi_s3 = phi_s3 + 5; + phi_s4 = phi_s4_2; + phi_s6 = temp_s6; + if (temp_s6 != 4) + { + goto loop_2; + } + temp_t3 = spD8 + 1; + spD8 = temp_t3; + phi_s4 = phi_s4_2; + if (temp_t3 != 5) + { + goto loop_1; + } + load_draw_selected_icon_folder_select(add_tab3_previous(phi_s4_2)); +} +#else +const char asc_D_8004F4A0[] = "\n"; +GLOBAL_ASM( +.text +glabel constructor_menu07_missionsel +/* 042F88 7F00E458 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 042F8C 7F00E45C AFBF005C */ sw $ra, 0x5c($sp) +/* 042F90 7F00E460 AFBE0058 */ sw $fp, 0x58($sp) +/* 042F94 7F00E464 AFB70054 */ sw $s7, 0x54($sp) +/* 042F98 7F00E468 AFB60050 */ sw $s6, 0x50($sp) +/* 042F9C 7F00E46C AFB5004C */ sw $s5, 0x4c($sp) +/* 042FA0 7F00E470 AFB40048 */ sw $s4, 0x48($sp) +/* 042FA4 7F00E474 AFB30044 */ sw $s3, 0x44($sp) +/* 042FA8 7F00E478 AFB20040 */ sw $s2, 0x40($sp) +/* 042FAC 7F00E47C AFB1003C */ sw $s1, 0x3c($sp) +/* 042FB0 7F00E480 AFB00038 */ sw $s0, 0x38($sp) +/* 042FB4 7F00E484 00002825 */ move $a1, $zero +/* 042FB8 7F00E488 00003025 */ move $a2, $zero +/* 042FBC 7F00E48C 0C0011B4 */ jal set_setfillcolor +/* 042FC0 7F00E490 00003825 */ move $a3, $zero +/* 042FC4 7F00E494 0C000FBE */ jal insert_generic_fillrect +/* 042FC8 7F00E498 00402025 */ move $a0, $v0 +/* 042FCC 7F00E49C 3C0EF800 */ lui $t6, 0xf800 +/* 042FD0 7F00E4A0 240FFFFF */ li $t7, -1 +/* 042FD4 7F00E4A4 AC4F0004 */ sw $t7, 4($v0) +/* 042FD8 7F00E4A8 AC4E0000 */ sw $t6, ($v0) +/* 042FDC 7F00E4AC 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 042FE0 7F00E4B0 24440008 */ addiu $a0, $v0, 8 +/* 042FE4 7F00E4B4 0FC2B366 */ jal microcode_constructor +/* 042FE8 7F00E4B8 00402025 */ move $a0, $v0 +/* 042FEC 7F00E4BC 27B10090 */ addiu $s1, $sp, 0x90 +/* 042FF0 7F00E4C0 0040A025 */ move $s4, $v0 +/* 042FF4 7F00E4C4 02209025 */ move $s2, $s1 +/* 042FF8 7F00E4C8 AFA000D8 */ sw $zero, 0xd8($sp) +.L7F00E4CC: +/* 042FFC 7F00E4CC 8FB300D8 */ lw $s3, 0xd8($sp) +/* 043000 7F00E4D0 0000B025 */ move $s6, $zero +.L7F00E4D4: +/* 043004 7F00E4D4 0FC03730 */ jal pull_and_display_text_for_folder_a0 +/* 043008 7F00E4D8 02602025 */ move $a0, $s3 +/* 04300C 7F00E4DC 00408025 */ move $s0, $v0 +/* 043010 7F00E4E0 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 043014 7F00E4E4 02602025 */ move $a0, $s3 +/* 043018 7F00E4E8 0440008C */ bltz $v0, .L7F00E71C +/* 04301C 7F00E4EC 3C159696 */ lui $s5, (0x96969600 >> 16) # lui $s5, 0x9696 +/* 043020 7F00E4F0 8FB900D8 */ lw $t9, 0xd8($sp) +/* 043024 7F00E4F4 3C0C8007 */ lui $t4, %hi(mission_difficulty_highlighted) +/* 043028 7F00E4F8 8D8C9784 */ lw $t4, %lo(mission_difficulty_highlighted)($t4) +/* 04302C 7F00E4FC 3C098003 */ lui $t1, %hi(cursor_xpos_table_mission_select) +/* 043030 7F00E500 3C0B8003 */ lui $t3, %hi(cursor_ypos_table_mission_select) +/* 043034 7F00E504 256BAFE4 */ addiu $t3, %lo(cursor_ypos_table_mission_select) # addiu $t3, $t3, -0x501c +/* 043038 7F00E508 2529AFD0 */ addiu $t1, %lo(cursor_xpos_table_mission_select) # addiu $t1, $t1, -0x5030 +/* 04303C 7F00E50C 00165080 */ sll $t2, $s6, 2 +/* 043040 7F00E510 00194080 */ sll $t0, $t9, 2 +/* 043044 7F00E514 36B59600 */ ori $s5, (0x96969600 & 0xFFFF) # ori $s5, $s5, 0x9600 +/* 043048 7F00E518 0109B821 */ addu $s7, $t0, $t1 +/* 04304C 7F00E51C 166C0002 */ bne $s3, $t4, .L7F00E528 +/* 043050 7F00E520 014BF021 */ addu $fp, $t2, $t3 +/* 043054 7F00E524 2415FF00 */ li $s5, -256 +.L7F00E528: +/* 043058 7F00E528 001068C0 */ sll $t5, $s0, 3 +/* 04305C 7F00E52C 01B06823 */ subu $t5, $t5, $s0 +/* 043060 7F00E530 3C0E8003 */ lui $t6, %hi(mission_folder_setup_entries) +/* 043064 7F00E534 25CEABE4 */ addiu $t6, %lo(mission_folder_setup_entries) # addiu $t6, $t6, -0x541c +/* 043068 7F00E538 000D6880 */ sll $t5, $t5, 2 +/* 04306C 7F00E53C 01AE1021 */ addu $v0, $t5, $t6 +/* 043070 7F00E540 94430006 */ lhu $v1, 6($v0) +/* 043074 7F00E544 10600008 */ beqz $v1, .L7F00E568 +/* 043078 7F00E548 00000000 */ nop +/* 04307C 7F00E54C 0FC30776 */ jal get_textptr_for_textID +/* 043080 7F00E550 00602025 */ move $a0, $v1 +/* 043084 7F00E554 02402025 */ move $a0, $s2 +/* 043088 7F00E558 0C0029DC */ jal textpointer_load_parse_something +/* 04308C 7F00E55C 00402825 */ move $a1, $v0 +/* 043090 7F00E560 10000006 */ b .L7F00E57C +/* 043094 7F00E564 00000000 */ nop +.L7F00E568: +/* 043098 7F00E568 0FC30776 */ jal get_textptr_for_textID +/* 04309C 7F00E56C 94440004 */ lhu $a0, 4($v0) +/* 0430A0 7F00E570 02402025 */ move $a0, $s2 +/* 0430A4 7F00E574 0C0029DC */ jal textpointer_load_parse_something +/* 0430A8 7F00E578 00402825 */ move $a1, $v0 +.L7F00E57C: +/* 0430AC 7F00E57C 3C0F8005 */ lui $t7, %hi(j_text_trigger) +/* 0430B0 7F00E580 8DEF84D0 */ lw $t7, %lo(j_text_trigger)($t7) +/* 0430B4 7F00E584 15E0000F */ bnez $t7, .L7F00E5C4 +/* 0430B8 7F00E588 00000000 */ nop +/* 0430BC 7F00E58C 0C004E1F */ jal strlen +/* 0430C0 7F00E590 02402025 */ move $a0, $s2 +/* 0430C4 7F00E594 2443FFFF */ addiu $v1, $v0, -1 +/* 0430C8 7F00E598 0460000A */ bltz $v1, .L7F00E5C4 +/* 0430CC 7F00E59C 02431021 */ addu $v0, $s2, $v1 +/* 0430D0 7F00E5A0 90430000 */ lbu $v1, ($v0) +.L7F00E5A4: +/* 0430D4 7F00E5A4 28610061 */ slti $at, $v1, 0x61 +/* 0430D8 7F00E5A8 14200002 */ bnez $at, .L7F00E5B4 +/* 0430DC 7F00E5AC 2478FFE0 */ addiu $t8, $v1, -0x20 +/* 0430E0 7F00E5B0 A0580000 */ sb $t8, ($v0) +.L7F00E5B4: +/* 0430E4 7F00E5B4 2442FFFF */ addiu $v0, $v0, -1 +/* 0430E8 7F00E5B8 0051082B */ sltu $at, $v0, $s1 +/* 0430EC 7F00E5BC 5020FFF9 */ beql $at, $zero, .L7F00E5A4 +/* 0430F0 7F00E5C0 90430000 */ lbu $v1, ($v0) +.L7F00E5C4: +/* 0430F4 7F00E5C4 3C058005 */ lui $a1, %hi(asc_D_8004F4A0) +/* 0430F8 7F00E5C8 24A5F4A0 */ addiu $a1, %lo(asc_D_8004F4A0) # addiu $a1, $a1, -0xb60 +/* 0430FC 7F00E5CC 0C0029FF */ jal string_append_from_obseg_textbank +/* 043100 7F00E5D0 02402025 */ move $a0, $s2 +/* 043104 7F00E5D4 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 043108 7F00E5D8 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 04310C 7F00E5DC 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 043110 7F00E5E0 AFA000C4 */ sw $zero, 0xc4($sp) +/* 043114 7F00E5E4 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 043118 7F00E5E8 27A400C8 */ addiu $a0, $sp, 0xc8 +/* 04311C 7F00E5EC 27A500C4 */ addiu $a1, $sp, 0xc4 +/* 043120 7F00E5F0 02403025 */ move $a2, $s2 +/* 043124 7F00E5F4 AFA00014 */ sw $zero, 0x14($sp) +/* 043128 7F00E5F8 AFA000C8 */ sw $zero, 0xc8($sp) +/* 04312C 7F00E5FC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 043130 7F00E600 AFB90010 */ sw $t9, 0x10($sp) +/* 043134 7F00E604 8FA300C8 */ lw $v1, 0xc8($sp) +/* 043138 7F00E608 8FC80000 */ lw $t0, ($fp) +/* 04313C 7F00E60C 8EE50000 */ lw $a1, ($s7) +/* 043140 7F00E610 8FA900C4 */ lw $t1, 0xc4($sp) +/* 043144 7F00E614 01033023 */ subu $a2, $t0, $v1 +/* 043148 7F00E618 24C6001D */ addiu $a2, $a2, 0x1d +/* 04314C 7F00E61C 00C35021 */ addu $t2, $a2, $v1 +/* 043150 7F00E620 24A5FFE1 */ addiu $a1, $a1, -0x1f +/* 043154 7F00E624 AFA5008C */ sw $a1, 0x8c($sp) +/* 043158 7F00E628 AFAA0010 */ sw $t2, 0x10($sp) +/* 04315C 7F00E62C AFA60088 */ sw $a2, 0x88($sp) +/* 043160 7F00E630 02802025 */ move $a0, $s4 +/* 043164 7F00E634 AFA00014 */ sw $zero, 0x14($sp) +/* 043168 7F00E638 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04316C 7F00E63C 00A93821 */ addu $a3, $a1, $t1 +/* 043170 7F00E640 0C001107 */ jal get_video2_settings_txtClipW +/* 043174 7F00E644 0040A025 */ move $s4, $v0 +/* 043178 7F00E648 00028400 */ sll $s0, $v0, 0x10 +/* 04317C 7F00E64C 00105C03 */ sra $t3, $s0, 0x10 +/* 043180 7F00E650 0C00110B */ jal get_video2_settings_txtClipH +/* 043184 7F00E654 01608025 */ move $s0, $t3 +/* 043188 7F00E658 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) +/* 04318C 7F00E65C 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) +/* 043190 7F00E660 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 043194 7F00E664 8D8C0EB0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 043198 7F00E668 36AE00FF */ ori $t6, $s5, 0xff +/* 04319C 7F00E66C AFAE0018 */ sw $t6, 0x18($sp) +/* 0431A0 7F00E670 02802025 */ move $a0, $s4 +/* 0431A4 7F00E674 27A5008C */ addiu $a1, $sp, 0x8c +/* 0431A8 7F00E678 27A60088 */ addiu $a2, $sp, 0x88 +/* 0431AC 7F00E67C 02403825 */ move $a3, $s2 +/* 0431B0 7F00E680 AFB0001C */ sw $s0, 0x1c($sp) +/* 0431B4 7F00E684 AFA20020 */ sw $v0, 0x20($sp) +/* 0431B8 7F00E688 AFA00024 */ sw $zero, 0x24($sp) +/* 0431BC 7F00E68C AFA00028 */ sw $zero, 0x28($sp) +/* 0431C0 7F00E690 AFAD0014 */ sw $t5, 0x14($sp) +/* 0431C4 7F00E694 0FC2B6AF */ jal en_text_write_stuff +/* 0431C8 7F00E698 AFAC0010 */ sw $t4, 0x10($sp) +/* 0431CC 7F00E69C 8FA300C8 */ lw $v1, 0xc8($sp) +/* 0431D0 7F00E6A0 8FCF0000 */ lw $t7, ($fp) +/* 0431D4 7F00E6A4 8EE50000 */ lw $a1, ($s7) +/* 0431D8 7F00E6A8 0040A025 */ move $s4, $v0 +/* 0431DC 7F00E6AC 01E33023 */ subu $a2, $t7, $v1 +/* 0431E0 7F00E6B0 24C6001D */ addiu $a2, $a2, 0x1d +/* 0431E4 7F00E6B4 24A5FFE1 */ addiu $a1, $a1, -0x1f +/* 0431E8 7F00E6B8 AFA5008C */ sw $a1, 0x8c($sp) +/* 0431EC 7F00E6BC 0C001107 */ jal get_video2_settings_txtClipW +/* 0431F0 7F00E6C0 AFA60088 */ sw $a2, 0x88($sp) +/* 0431F4 7F00E6C4 00028400 */ sll $s0, $v0, 0x10 +/* 0431F8 7F00E6C8 0010C403 */ sra $t8, $s0, 0x10 +/* 0431FC 7F00E6CC 0C00110B */ jal get_video2_settings_txtClipH +/* 043200 7F00E6D0 03008025 */ move $s0, $t8 +/* 043204 7F00E6D4 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) +/* 043208 7F00E6D8 3C088004 */ lui $t0, %hi(ptrFirstFontTableSmall) +/* 04320C 7F00E6DC 8D080EAC */ lw $t0, %lo(ptrFirstFontTableSmall)($t0) +/* 043210 7F00E6E0 8F390EB0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 043214 7F00E6E4 36A90064 */ ori $t1, $s5, 0x64 +/* 043218 7F00E6E8 AFA90018 */ sw $t1, 0x18($sp) +/* 04321C 7F00E6EC 02802025 */ move $a0, $s4 +/* 043220 7F00E6F0 27A5008C */ addiu $a1, $sp, 0x8c +/* 043224 7F00E6F4 27A60088 */ addiu $a2, $sp, 0x88 +/* 043228 7F00E6F8 02403825 */ move $a3, $s2 +/* 04322C 7F00E6FC AFB0001C */ sw $s0, 0x1c($sp) +/* 043230 7F00E700 AFA20020 */ sw $v0, 0x20($sp) +/* 043234 7F00E704 AFA00024 */ sw $zero, 0x24($sp) +/* 043238 7F00E708 AFA00028 */ sw $zero, 0x28($sp) +/* 04323C 7F00E70C AFA80014 */ sw $t0, 0x14($sp) +/* 043240 7F00E710 0FC2B6AF */ jal en_text_write_stuff +/* 043244 7F00E714 AFB90010 */ sw $t9, 0x10($sp) +/* 043248 7F00E718 0040A025 */ move $s4, $v0 +.L7F00E71C: +/* 04324C 7F00E71C 26D60001 */ addiu $s6, $s6, 1 +/* 043250 7F00E720 24010004 */ li $at, 4 +/* 043254 7F00E724 16C1FF6B */ bne $s6, $at, .L7F00E4D4 +/* 043258 7F00E728 26730005 */ addiu $s3, $s3, 5 +/* 04325C 7F00E72C 8FAA00D8 */ lw $t2, 0xd8($sp) +/* 043260 7F00E730 24010005 */ li $at, 5 +/* 043264 7F00E734 254B0001 */ addiu $t3, $t2, 1 +/* 043268 7F00E738 1561FF64 */ bne $t3, $at, .L7F00E4CC +/* 04326C 7F00E73C AFAB00D8 */ sw $t3, 0xd8($sp) +/* 043270 7F00E740 0FC0288E */ jal add_tab3_previous +/* 043274 7F00E744 02802025 */ move $a0, $s4 +/* 043278 7F00E748 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 04327C 7F00E74C 00402025 */ move $a0, $v0 +/* 043280 7F00E750 8FBF005C */ lw $ra, 0x5c($sp) +/* 043284 7F00E754 8FB00038 */ lw $s0, 0x38($sp) +/* 043288 7F00E758 8FB1003C */ lw $s1, 0x3c($sp) +/* 04328C 7F00E75C 8FB20040 */ lw $s2, 0x40($sp) +/* 043290 7F00E760 8FB30044 */ lw $s3, 0x44($sp) +/* 043294 7F00E764 8FB40048 */ lw $s4, 0x48($sp) +/* 043298 7F00E768 8FB5004C */ lw $s5, 0x4c($sp) +/* 04329C 7F00E76C 8FB60050 */ lw $s6, 0x50($sp) +/* 0432A0 7F00E770 8FB70054 */ lw $s7, 0x54($sp) +/* 0432A4 7F00E774 8FBE0058 */ lw $fp, 0x58($sp) +/* 0432A8 7F00E778 03E00008 */ jr $ra +/* 0432AC 7F00E77C 27BD00E0 */ addiu $sp, $sp, 0xe0 +) +#endif + + + +void init_menu08_difficultyselect(void) +{ + selected_difficulty = DIFFICULTY_MULTI; + tab_2_selected = FALSE; + tab_3_selected = FALSE; + load_walletbond(); +} + +void update_menu08_difficulty(void) { + return; +} + + + + + +#ifdef NONMATCHING +void interface_menu08_difficulty(void) +{ + s32 sp1C; + + sp1C = get_highest_unlocked_difficulty_for_level((0x80030000 + (briefingpage * 0x1c))->unk-5408); + setvideo_far(0x42700000); + video_related_21(D_80051A4C); + set_page_height(0x42c80000, D_80051A50); + set_video2_settings_offset_24(0); + disable_all_switches(ptr_folder_object_instance); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 4, 1); + tab_3_highlight = 0; + mission_difficulty_highlighted = -1; + if (isontab3() != 0) + { + tab_3_highlight = 1; + } + else + { + if ((sp1C >= 3) && (D_80051A54 <= cursor_v_pos)) + { + mission_difficulty_highlighted = 3; + } + else + { + if ((sp1C >= 2) && (243.0f <= cursor_v_pos)) + { + mission_difficulty_highlighted = 2; + } + else + { + if ((sp1C > 0) && (211.0f <= cursor_v_pos)) + { + mission_difficulty_highlighted = 1; + } + else + { + mission_difficulty_highlighted = 0; + } + } + } + } + if (get_controller_buttons_pressed(0, 0xb000) != 0) + { + if (tab_3_highlight != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0, 1); + } + else + { + if (mission_difficulty_highlighted >= 0) + { + selected_difficulty = (s32) mission_difficulty_highlighted; + tab_2_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0x4d, 0, 1); + } + } + } + else + { + if (get_controller_buttons_pressed(0, 0x4000, 1) != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0, 1); + } + } + menu_control_stick_tracking(); + if (tab_2_selected != 0) + { + if (selected_difficulty != DIFFICULTY_007) + { + set_menu_to_mode(MENU_BRIEFING, 0); + set_cursor_pos_tab2(); + return; + } + set_menu_to_mode(MENU_007_OPTIONS, 0); + set_cursor_pos_tab2(); + return; + } + if (tab_3_selected != 0) + { + set_menu_to_mode(MENU_MISSION_SELECT, 0); + set_cursor_to_stage_solo((0x80030000 + (briefingpage * 0x1c))->unk-5408); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051A4C +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_80051A50 +.word 0x461C4000 /* 10000.0;*/ +glabel D_80051A54 +.word 0x43898000 /* 275.0;*/ +.text +glabel interface_menu08_difficulty +/* 0432F0 7F00E7C0 3C0E8003 */ lui $t6, %hi(briefingpage) +/* 0432F4 7F00E7C4 8DCEA8F8 */ lw $t6, %lo(briefingpage)($t6) +/* 0432F8 7F00E7C8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0432FC 7F00E7CC 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+0x14) +/* 043300 7F00E7D0 000E78C0 */ sll $t7, $t6, 3 +/* 043304 7F00E7D4 01EE7823 */ subu $t7, $t7, $t6 +/* 043308 7F00E7D8 000F7880 */ sll $t7, $t7, 2 +/* 04330C 7F00E7DC AFBF0014 */ sw $ra, 0x14($sp) +/* 043310 7F00E7E0 008F2021 */ addu $a0, $a0, $t7 +/* 043314 7F00E7E4 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 043318 7F00E7E8 8C84ABF8 */ lw $a0, %lo(mission_folder_setup_entries+0x14)($a0) +/* 04331C 7F00E7EC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 043320 7F00E7F0 44816000 */ mtc1 $at, $f12 +/* 043324 7F00E7F4 0C001151 */ jal setvideo_far +/* 043328 7F00E7F8 AFA2001C */ sw $v0, 0x1c($sp) +/* 04332C 7F00E7FC 3C018005 */ lui $at, %hi(D_80051A4C) +/* 043330 7F00E800 0C001164 */ jal video_related_21 +/* 043334 7F00E804 C42C1A4C */ lwc1 $f12, %lo(D_80051A4C)($at) +/* 043338 7F00E808 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04333C 7F00E80C 44816000 */ mtc1 $at, $f12 +/* 043340 7F00E810 3C018005 */ lui $at, %hi(D_80051A50) +/* 043344 7F00E814 0C001194 */ jal set_page_height +/* 043348 7F00E818 C42E1A50 */ lwc1 $f14, %lo(D_80051A50)($at) +/* 04334C 7F00E81C 0C00114D */ jal set_video2_settings_offset_24 +/* 043350 7F00E820 00002025 */ move $a0, $zero +/* 043354 7F00E824 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 043358 7F00E828 0FC02DC9 */ jal disable_all_switches +/* 04335C 7F00E82C 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 043360 7F00E830 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 043364 7F00E834 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 043368 7F00E838 00002825 */ move $a1, $zero +/* 04336C 7F00E83C 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 043370 7F00E840 24060001 */ li $a2, 1 +/* 043374 7F00E844 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 043378 7F00E848 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04337C 7F00E84C 24050001 */ li $a1, 1 +/* 043380 7F00E850 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 043384 7F00E854 24060001 */ li $a2, 1 +/* 043388 7F00E858 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04338C 7F00E85C 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 043390 7F00E860 24050003 */ li $a1, 3 +/* 043394 7F00E864 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 043398 7F00E868 24060001 */ li $a2, 1 +/* 04339C 7F00E86C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 0433A0 7F00E870 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 0433A4 7F00E874 24050004 */ li $a1, 4 +/* 0433A8 7F00E878 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 0433AC 7F00E87C 24060001 */ li $a2, 1 +/* 0433B0 7F00E880 3C038007 */ lui $v1, %hi(mission_difficulty_highlighted) +/* 0433B4 7F00E884 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 0433B8 7F00E888 24639784 */ addiu $v1, %lo(mission_difficulty_highlighted) # addiu $v1, $v1, -0x687c +/* 0433BC 7F00E88C AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 0433C0 7F00E890 2418FFFF */ li $t8, -1 +/* 0433C4 7F00E894 0FC028E7 */ jal isontab3 +/* 0433C8 7F00E898 AC780000 */ sw $t8, ($v1) +/* 0433CC 7F00E89C 3C038007 */ lui $v1, %hi(mission_difficulty_highlighted) +/* 0433D0 7F00E8A0 10400005 */ beqz $v0, .L7F00E8B8 +/* 0433D4 7F00E8A4 24639784 */ addiu $v1, %lo(mission_difficulty_highlighted) # addiu $v1, $v1, -0x687c +/* 0433D8 7F00E8A8 24190001 */ li $t9, 1 +/* 0433DC 7F00E8AC 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 0433E0 7F00E8B0 1000002A */ b .L7F00E95C +/* 0433E4 7F00E8B4 AC39A8E4 */ sw $t9, %lo(tab_3_highlight)($at) +.L7F00E8B8: +/* 0433E8 7F00E8B8 8FA4001C */ lw $a0, 0x1c($sp) +/* 0433EC 7F00E8BC 3C028003 */ lui $v0, %hi(cursor_v_pos) +/* 0433F0 7F00E8C0 2442A90C */ addiu $v0, %lo(cursor_v_pos) # addiu $v0, $v0, -0x56f4 +/* 0433F4 7F00E8C4 28810003 */ slti $at, $a0, 3 +/* 0433F8 7F00E8C8 1420000A */ bnez $at, .L7F00E8F4 +/* 0433FC 7F00E8CC 3C018005 */ lui $at, %hi(D_80051A54) +/* 043400 7F00E8D0 C4261A54 */ lwc1 $f6, %lo(D_80051A54)($at) +/* 043404 7F00E8D4 C4440000 */ lwc1 $f4, ($v0) +/* 043408 7F00E8D8 24080003 */ li $t0, 3 +/* 04340C 7F00E8DC 4604303E */ c.le.s $f6, $f4 +/* 043410 7F00E8E0 00000000 */ nop +/* 043414 7F00E8E4 45000003 */ bc1f .L7F00E8F4 +/* 043418 7F00E8E8 00000000 */ nop +/* 04341C 7F00E8EC 1000001B */ b .L7F00E95C +/* 043420 7F00E8F0 AC680000 */ sw $t0, ($v1) +.L7F00E8F4: +/* 043424 7F00E8F4 3C028003 */ lui $v0, %hi(cursor_v_pos) +/* 043428 7F00E8F8 28810002 */ slti $at, $a0, 2 +/* 04342C 7F00E8FC 1420000B */ bnez $at, .L7F00E92C +/* 043430 7F00E900 2442A90C */ addiu $v0, %lo(cursor_v_pos) # addiu $v0, $v0, -0x56f4 +/* 043434 7F00E904 3C014373 */ li $at, 0x43730000 # 243.000000 +/* 043438 7F00E908 44815000 */ mtc1 $at, $f10 +/* 04343C 7F00E90C C4480000 */ lwc1 $f8, ($v0) +/* 043440 7F00E910 24090002 */ li $t1, 2 +/* 043444 7F00E914 4608503E */ c.le.s $f10, $f8 +/* 043448 7F00E918 00000000 */ nop +/* 04344C 7F00E91C 45000003 */ bc1f .L7F00E92C +/* 043450 7F00E920 00000000 */ nop +/* 043454 7F00E924 1000000D */ b .L7F00E95C +/* 043458 7F00E928 AC690000 */ sw $t1, ($v1) +.L7F00E92C: +/* 04345C 7F00E92C 1880000A */ blez $a0, .L7F00E958 +/* 043460 7F00E930 3C014353 */ li $at, 0x43530000 # 211.000000 +/* 043464 7F00E934 C4500000 */ lwc1 $f16, ($v0) +/* 043468 7F00E938 44819000 */ mtc1 $at, $f18 +/* 04346C 7F00E93C 24070001 */ li $a3, 1 +/* 043470 7F00E940 4610903E */ c.le.s $f18, $f16 +/* 043474 7F00E944 00000000 */ nop +/* 043478 7F00E948 45020004 */ bc1fl .L7F00E95C +/* 04347C 7F00E94C AC600000 */ sw $zero, ($v1) +/* 043480 7F00E950 10000002 */ b .L7F00E95C +/* 043484 7F00E954 AC670000 */ sw $a3, ($v1) +.L7F00E958: +/* 043488 7F00E958 AC600000 */ sw $zero, ($v1) +.L7F00E95C: +/* 04348C 7F00E95C 00002025 */ move $a0, $zero +/* 043490 7F00E960 0C0030EB */ jal get_controller_buttons_pressed +/* 043494 7F00E964 3405B000 */ li $a1, 45056 +/* 043498 7F00E968 3C038007 */ lui $v1, %hi(mission_difficulty_highlighted) +/* 04349C 7F00E96C 24639784 */ addiu $v1, %lo(mission_difficulty_highlighted) # addiu $v1, $v1, -0x687c +/* 0434A0 7F00E970 1040001A */ beqz $v0, .L7F00E9DC +/* 0434A4 7F00E974 24070001 */ li $a3, 1 +/* 0434A8 7F00E978 3C0A8003 */ lui $t2, %hi(tab_3_highlight) +/* 0434AC 7F00E97C 8D4AA8E4 */ lw $t2, %lo(tab_3_highlight)($t2) +/* 0434B0 7F00E980 3C018003 */ lui $at, %hi(tab_3_selected) +/* 0434B4 7F00E984 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0434B8 7F00E988 11400007 */ beqz $t2, .L7F00E9A8 +/* 0434BC 7F00E98C 240500C7 */ li $a1, 199 +/* 0434C0 7F00E990 AC27A8D8 */ sw $a3, %lo(tab_3_selected)($at) +/* 0434C4 7F00E994 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0434C8 7F00E998 0C002382 */ jal play_sfx_a1 +/* 0434CC 7F00E99C 00003025 */ move $a2, $zero +/* 0434D0 7F00E9A0 1000001A */ b .L7F00EA0C +/* 0434D4 7F00E9A4 00000000 */ nop +.L7F00E9A8: +/* 0434D8 7F00E9A8 8C620000 */ lw $v0, ($v1) +/* 0434DC 7F00E9AC 3C018003 */ lui $at, %hi(selected_difficulty) +/* 0434E0 7F00E9B0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0434E4 7F00E9B4 04400015 */ bltz $v0, .L7F00EA0C +/* 0434E8 7F00E9B8 2405004D */ li $a1, 77 +/* 0434EC 7F00E9BC AC22A8FC */ sw $v0, %lo(selected_difficulty)($at) +/* 0434F0 7F00E9C0 3C018003 */ lui $at, %hi(tab_2_selected) +/* 0434F4 7F00E9C4 AC27A8D4 */ sw $a3, %lo(tab_2_selected)($at) +/* 0434F8 7F00E9C8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0434FC 7F00E9CC 0C002382 */ jal play_sfx_a1 +/* 043500 7F00E9D0 00003025 */ move $a2, $zero +/* 043504 7F00E9D4 1000000D */ b .L7F00EA0C +/* 043508 7F00E9D8 00000000 */ nop +.L7F00E9DC: +/* 04350C 7F00E9DC 00002025 */ move $a0, $zero +/* 043510 7F00E9E0 0C0030EB */ jal get_controller_buttons_pressed +/* 043514 7F00E9E4 24054000 */ li $a1, 16384 +/* 043518 7F00E9E8 10400008 */ beqz $v0, .L7F00EA0C +/* 04351C 7F00E9EC 24070001 */ li $a3, 1 +/* 043520 7F00E9F0 3C018003 */ lui $at, %hi(tab_3_selected) +/* 043524 7F00E9F4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 043528 7F00E9F8 AC27A8D8 */ sw $a3, %lo(tab_3_selected)($at) +/* 04352C 7F00E9FC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 043530 7F00EA00 240500C7 */ li $a1, 199 +/* 043534 7F00EA04 0C002382 */ jal play_sfx_a1 +/* 043538 7F00EA08 00003025 */ move $a2, $zero +.L7F00EA0C: +/* 04353C 7F00EA0C 0FC026E1 */ jal menu_control_stick_tracking +/* 043540 7F00EA10 00000000 */ nop +/* 043544 7F00EA14 3C0B8003 */ lui $t3, %hi(tab_2_selected) +/* 043548 7F00EA18 8D6BA8D4 */ lw $t3, %lo(tab_2_selected)($t3) +/* 04354C 7F00EA1C 3C0C8003 */ lui $t4, %hi(selected_difficulty) +/* 043550 7F00EA20 3C0D8003 */ lui $t5, %hi(tab_3_selected) +/* 043554 7F00EA24 11600012 */ beqz $t3, .L7F00EA70 +/* 043558 7F00EA28 00000000 */ nop +/* 04355C 7F00EA2C 8D8CA8FC */ lw $t4, %lo(selected_difficulty)($t4) +/* 043560 7F00EA30 24010003 */ li $at, 3 +/* 043564 7F00EA34 00002825 */ move $a1, $zero +/* 043568 7F00EA38 15810007 */ bne $t4, $at, .L7F00EA58 +/* 04356C 7F00EA3C 2404000A */ li $a0, 10 +/* 043570 7F00EA40 0FC06975 */ jal set_menu_to_mode +/* 043574 7F00EA44 24040009 */ li $a0, 9 +/* 043578 7F00EA48 0FC028FC */ jal set_cursor_pos_tab2 +/* 04357C 7F00EA4C 00000000 */ nop +/* 043580 7F00EA50 10000017 */ b .L7F00EAB0 +/* 043584 7F00EA54 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00EA58: +/* 043588 7F00EA58 0FC06975 */ jal set_menu_to_mode +/* 04358C 7F00EA5C 00002825 */ move $a1, $zero +/* 043590 7F00EA60 0FC028FC */ jal set_cursor_pos_tab2 +/* 043594 7F00EA64 00000000 */ nop +/* 043598 7F00EA68 10000011 */ b .L7F00EAB0 +/* 04359C 7F00EA6C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00EA70: +/* 0435A0 7F00EA70 8DADA8D8 */ lw $t5, %lo(tab_3_selected)($t5) +/* 0435A4 7F00EA74 24040007 */ li $a0, 7 +/* 0435A8 7F00EA78 51A0000D */ beql $t5, $zero, .L7F00EAB0 +/* 0435AC 7F00EA7C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0435B0 7F00EA80 0FC06975 */ jal set_menu_to_mode +/* 0435B4 7F00EA84 00002825 */ move $a1, $zero +/* 0435B8 7F00EA88 3C0E8003 */ lui $t6, %hi(briefingpage) +/* 0435BC 7F00EA8C 8DCEA8F8 */ lw $t6, %lo(briefingpage)($t6) +/* 0435C0 7F00EA90 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+20) +/* 0435C4 7F00EA94 000E78C0 */ sll $t7, $t6, 3 +/* 0435C8 7F00EA98 01EE7823 */ subu $t7, $t7, $t6 +/* 0435CC 7F00EA9C 000F7880 */ sll $t7, $t7, 2 +/* 0435D0 7F00EAA0 008F2021 */ addu $a0, $a0, $t7 +/* 0435D4 7F00EAA4 0FC038F8 */ jal set_cursor_to_stage_solo +/* 0435D8 7F00EAA8 8C84ABF8 */ lw $a0, %lo(mission_folder_setup_entries+20)($a0) +/* 0435DC 7F00EAAC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00EAB0: +/* 0435E0 7F00EAB0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0435E4 7F00EAB4 03E00008 */ jr $ra +/* 0435E8 7F00EAB8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void print_current_solo_briefing_stage_name(s32 arg0, s32 arg1) +{ + s32 sp54; + s32 sp50; + s32 sp4C; + s16 sp44; + void *sp40; + s32 temp_ret; + void *temp_v1; + + if (selected_difficulty >= DIFFICULTY_AGENT) + { + textpointer_load_parse_something(arg1, get_ptr_difficulty_name(selected_difficulty, selected_difficulty)); + string_append_from_obseg_textbank(arg1, get_textptr_for_textID(TEXT(LTITLE, 0x20))); + sp54 = 0x37; + sp50 = 0x57; + sp44 = get_video2_settings_txtClipW(); + arg0 = write_text_at_abs_coord(arg0, &sp54, &sp50, arg1, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + } + temp_ret = get_chapter_briefing_entry(briefingpage); + sp4C = temp_ret; + if (temp_ret >= 0) + { + textpointer_load_parse_something(arg1, get_textptr_for_textID(TEXT(LTITLE, 0x21))); + temp_v1 = (sp4C * 0x1c) + &mission_folder_setup_entries; + sp40 = temp_v1; + string_append_from_obseg_textbank(arg1, *temp_v1); + string_append_from_obseg_textbank(arg1, &asc_D_8004F4A4); + string_append_from_obseg_textbank(arg1, get_textptr_for_textID(sp40->unk4)); + string_append_from_obseg_textbank(arg1, &asc_D_8004F4A8); + sp54 = 0x37; + sp50 = 0x67; + sp44 = get_video2_settings_txtClipW(); + arg0 = write_text_at_abs_coord(arg0, &sp54, &sp50, arg1, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + } + textpointer_load_parse_something(arg1, get_textptr_for_textID(TEXT(LTITLE, 0x22))); + string_append_from_obseg_textbank(arg1, *(&mission_folder_setup_entries + (briefingpage * 0x1c))); + string_append_from_obseg_textbank(arg1, &asc_D_8004F4AC); + string_append_from_obseg_textbank(arg1, get_textptr_for_textID(*(&mission_folder_setup_entries + (briefingpage * 0x1c)))); + string_append_from_obseg_textbank(arg1, &asc_D_8004F4B0); + sp54 = 0x37; + sp50 = 0x77; + sp44 = get_video2_settings_txtClipW(); + write_text_at_abs_coord(arg0, &sp54, &sp50, arg1, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); +} +#else +const char asc_D_8004F4A4[] = ": "; +const char asc_D_8004F4A8[] = "\n"; +const char asc_D_8004F4AC[] = ": "; +const char asc_D_8004F4B0[] = "\n"; +GLOBAL_ASM( +.text +glabel print_current_solo_briefing_stage_name +/* 0435EC 7F00EABC 3C068003 */ lui $a2, %hi(selected_difficulty) +/* 0435F0 7F00EAC0 8CC6A8FC */ lw $a2, %lo(selected_difficulty)($a2) +/* 0435F4 7F00EAC4 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0435F8 7F00EAC8 AFB00038 */ sw $s0, 0x38($sp) +/* 0435FC 7F00EACC 00A08025 */ move $s0, $a1 +/* 043600 7F00EAD0 AFBF003C */ sw $ra, 0x3c($sp) +/* 043604 7F00EAD4 04C00025 */ bltz $a2, .L7F00EB6C +/* 043608 7F00EAD8 AFA40058 */ sw $a0, 0x58($sp) +/* 04360C 7F00EADC 0FC030E1 */ jal get_ptr_difficulty_name +/* 043610 7F00EAE0 00C02025 */ move $a0, $a2 +/* 043614 7F00EAE4 02002025 */ move $a0, $s0 +/* 043618 7F00EAE8 0C0029DC */ jal textpointer_load_parse_something +/* 04361C 7F00EAEC 00402825 */ move $a1, $v0 +/* 043620 7F00EAF0 0FC30776 */ jal get_textptr_for_textID +/* 043624 7F00EAF4 34049C20 */ li $a0, 39968 +/* 043628 7F00EAF8 02002025 */ move $a0, $s0 +/* 04362C 7F00EAFC 0C0029FF */ jal string_append_from_obseg_textbank +/* 043630 7F00EB00 00402825 */ move $a1, $v0 +/* 043634 7F00EB04 240E0037 */ li $t6, 55 +/* 043638 7F00EB08 240F0057 */ li $t7, 87 +/* 04363C 7F00EB0C AFAE0054 */ sw $t6, 0x54($sp) +/* 043640 7F00EB10 0C001107 */ jal get_video2_settings_txtClipW +/* 043644 7F00EB14 AFAF0050 */ sw $t7, 0x50($sp) +/* 043648 7F00EB18 0C00110B */ jal get_video2_settings_txtClipH +/* 04364C 7F00EB1C A7A20044 */ sh $v0, 0x44($sp) +/* 043650 7F00EB20 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 043654 7F00EB24 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 043658 7F00EB28 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 04365C 7F00EB2C 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 043660 7F00EB30 87A90044 */ lh $t1, 0x44($sp) +/* 043664 7F00EB34 240800FF */ li $t0, 255 +/* 043668 7F00EB38 AFA80018 */ sw $t0, 0x18($sp) +/* 04366C 7F00EB3C 8FA40058 */ lw $a0, 0x58($sp) +/* 043670 7F00EB40 27A50054 */ addiu $a1, $sp, 0x54 +/* 043674 7F00EB44 27A60050 */ addiu $a2, $sp, 0x50 +/* 043678 7F00EB48 02003825 */ move $a3, $s0 +/* 04367C 7F00EB4C AFA20020 */ sw $v0, 0x20($sp) +/* 043680 7F00EB50 AFA00024 */ sw $zero, 0x24($sp) +/* 043684 7F00EB54 AFA00028 */ sw $zero, 0x28($sp) +/* 043688 7F00EB58 AFB90014 */ sw $t9, 0x14($sp) +/* 04368C 7F00EB5C AFB80010 */ sw $t8, 0x10($sp) +/* 043690 7F00EB60 0FC025D8 */ jal write_text_at_abs_coord +/* 043694 7F00EB64 AFA9001C */ sw $t1, 0x1c($sp) +/* 043698 7F00EB68 AFA20058 */ sw $v0, 0x58($sp) +.L7F00EB6C: +/* 04369C 7F00EB6C 3C048003 */ lui $a0, %hi(briefingpage) +/* 0436A0 7F00EB70 0FC02EC7 */ jal get_chapter_briefing_entry +/* 0436A4 7F00EB74 8C84A8F8 */ lw $a0, %lo(briefingpage)($a0) +/* 0436A8 7F00EB78 04400039 */ bltz $v0, .L7F00EC60 +/* 0436AC 7F00EB7C AFA2004C */ sw $v0, 0x4c($sp) +/* 0436B0 7F00EB80 0FC30776 */ jal get_textptr_for_textID +/* 0436B4 7F00EB84 34049C21 */ li $a0, 39969 +/* 0436B8 7F00EB88 02002025 */ move $a0, $s0 +/* 0436BC 7F00EB8C 0C0029DC */ jal textpointer_load_parse_something +/* 0436C0 7F00EB90 00402825 */ move $a1, $v0 +/* 0436C4 7F00EB94 8FAA004C */ lw $t2, 0x4c($sp) +/* 0436C8 7F00EB98 3C0C8003 */ lui $t4, %hi(mission_folder_setup_entries) +/* 0436CC 7F00EB9C 258CABE4 */ addiu $t4, %lo(mission_folder_setup_entries) # addiu $t4, $t4, -0x541c +/* 0436D0 7F00EBA0 000A58C0 */ sll $t3, $t2, 3 +/* 0436D4 7F00EBA4 016A5823 */ subu $t3, $t3, $t2 +/* 0436D8 7F00EBA8 000B5880 */ sll $t3, $t3, 2 +/* 0436DC 7F00EBAC 016C1821 */ addu $v1, $t3, $t4 +/* 0436E0 7F00EBB0 8C650000 */ lw $a1, ($v1) +/* 0436E4 7F00EBB4 AFA30040 */ sw $v1, 0x40($sp) +/* 0436E8 7F00EBB8 0C0029FF */ jal string_append_from_obseg_textbank +/* 0436EC 7F00EBBC 02002025 */ move $a0, $s0 +/* 0436F0 7F00EBC0 3C058005 */ lui $a1, %hi(asc_D_8004F4A4) +/* 0436F4 7F00EBC4 24A5F4A4 */ addiu $a1, %lo(asc_D_8004F4A4) # addiu $a1, $a1, -0xb5c +/* 0436F8 7F00EBC8 0C0029FF */ jal string_append_from_obseg_textbank +/* 0436FC 7F00EBCC 02002025 */ move $a0, $s0 +/* 043700 7F00EBD0 8FAD0040 */ lw $t5, 0x40($sp) +/* 043704 7F00EBD4 0FC30776 */ jal get_textptr_for_textID +/* 043708 7F00EBD8 95A40004 */ lhu $a0, 4($t5) +/* 04370C 7F00EBDC 02002025 */ move $a0, $s0 +/* 043710 7F00EBE0 0C0029FF */ jal string_append_from_obseg_textbank +/* 043714 7F00EBE4 00402825 */ move $a1, $v0 +/* 043718 7F00EBE8 3C058005 */ lui $a1, %hi(asc_D_8004F4A8) +/* 04371C 7F00EBEC 24A5F4A8 */ addiu $a1, %lo(asc_D_8004F4A8) # addiu $a1, $a1, -0xb58 +/* 043720 7F00EBF0 0C0029FF */ jal string_append_from_obseg_textbank +/* 043724 7F00EBF4 02002025 */ move $a0, $s0 +/* 043728 7F00EBF8 240E0037 */ li $t6, 55 +/* 04372C 7F00EBFC 240F0067 */ li $t7, 103 +/* 043730 7F00EC00 AFAE0054 */ sw $t6, 0x54($sp) +/* 043734 7F00EC04 0C001107 */ jal get_video2_settings_txtClipW +/* 043738 7F00EC08 AFAF0050 */ sw $t7, 0x50($sp) +/* 04373C 7F00EC0C 0C00110B */ jal get_video2_settings_txtClipH +/* 043740 7F00EC10 A7A20044 */ sh $v0, 0x44($sp) +/* 043744 7F00EC14 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 043748 7F00EC18 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 04374C 7F00EC1C 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 043750 7F00EC20 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 043754 7F00EC24 87A90044 */ lh $t1, 0x44($sp) +/* 043758 7F00EC28 240800FF */ li $t0, 255 +/* 04375C 7F00EC2C AFA80018 */ sw $t0, 0x18($sp) +/* 043760 7F00EC30 8FA40058 */ lw $a0, 0x58($sp) +/* 043764 7F00EC34 27A50054 */ addiu $a1, $sp, 0x54 +/* 043768 7F00EC38 27A60050 */ addiu $a2, $sp, 0x50 +/* 04376C 7F00EC3C 02003825 */ move $a3, $s0 +/* 043770 7F00EC40 AFA20020 */ sw $v0, 0x20($sp) +/* 043774 7F00EC44 AFA00024 */ sw $zero, 0x24($sp) +/* 043778 7F00EC48 AFA00028 */ sw $zero, 0x28($sp) +/* 04377C 7F00EC4C AFB90014 */ sw $t9, 0x14($sp) +/* 043780 7F00EC50 AFB80010 */ sw $t8, 0x10($sp) +/* 043784 7F00EC54 0FC025D8 */ jal write_text_at_abs_coord +/* 043788 7F00EC58 AFA9001C */ sw $t1, 0x1c($sp) +/* 04378C 7F00EC5C AFA20058 */ sw $v0, 0x58($sp) +.L7F00EC60: +/* 043790 7F00EC60 0FC30776 */ jal get_textptr_for_textID +/* 043794 7F00EC64 34049C22 */ li $a0, 39970 +/* 043798 7F00EC68 02002025 */ move $a0, $s0 +/* 04379C 7F00EC6C 0C0029DC */ jal textpointer_load_parse_something +/* 0437A0 7F00EC70 00402825 */ move $a1, $v0 +/* 0437A4 7F00EC74 3C0A8003 */ lui $t2, %hi(briefingpage) +/* 0437A8 7F00EC78 8D4AA8F8 */ lw $t2, %lo(briefingpage)($t2) +/* 0437AC 7F00EC7C 3C058003 */ lui $a1, %hi(mission_folder_setup_entries) +/* 0437B0 7F00EC80 02002025 */ move $a0, $s0 +/* 0437B4 7F00EC84 000A58C0 */ sll $t3, $t2, 3 +/* 0437B8 7F00EC88 016A5823 */ subu $t3, $t3, $t2 +/* 0437BC 7F00EC8C 000B5880 */ sll $t3, $t3, 2 +/* 0437C0 7F00EC90 00AB2821 */ addu $a1, $a1, $t3 +/* 0437C4 7F00EC94 0C0029FF */ jal string_append_from_obseg_textbank +/* 0437C8 7F00EC98 8CA5ABE4 */ lw $a1, %lo(mission_folder_setup_entries)($a1) +/* 0437CC 7F00EC9C 3C058005 */ lui $a1, %hi(asc_D_8004F4AC) +/* 0437D0 7F00ECA0 24A5F4AC */ addiu $a1, %lo(asc_D_8004F4AC) # addiu $a1, $a1, -0xb54 +/* 0437D4 7F00ECA4 0C0029FF */ jal string_append_from_obseg_textbank +/* 0437D8 7F00ECA8 02002025 */ move $a0, $s0 +/* 0437DC 7F00ECAC 3C0C8003 */ lui $t4, %hi(briefingpage) +/* 0437E0 7F00ECB0 8D8CA8F8 */ lw $t4, %lo(briefingpage)($t4) +/* 0437E4 7F00ECB4 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+0x4) +/* 0437E8 7F00ECB8 000C68C0 */ sll $t5, $t4, 3 +/* 0437EC 7F00ECBC 01AC6823 */ subu $t5, $t5, $t4 +/* 0437F0 7F00ECC0 000D6880 */ sll $t5, $t5, 2 +/* 0437F4 7F00ECC4 008D2021 */ addu $a0, $a0, $t5 +/* 0437F8 7F00ECC8 0FC30776 */ jal get_textptr_for_textID +/* 0437FC 7F00ECCC 9484ABE8 */ lhu $a0, %lo(mission_folder_setup_entries+0x4)($a0) +/* 043800 7F00ECD0 02002025 */ move $a0, $s0 +/* 043804 7F00ECD4 0C0029FF */ jal string_append_from_obseg_textbank +/* 043808 7F00ECD8 00402825 */ move $a1, $v0 +/* 04380C 7F00ECDC 3C058005 */ lui $a1, %hi(asc_D_8004F4B0) +/* 043810 7F00ECE0 24A5F4B0 */ addiu $a1, %lo(asc_D_8004F4B0) # addiu $a1, $a1, -0xb50 +/* 043814 7F00ECE4 0C0029FF */ jal string_append_from_obseg_textbank +/* 043818 7F00ECE8 02002025 */ move $a0, $s0 +/* 04381C 7F00ECEC 240E0037 */ li $t6, 55 +/* 043820 7F00ECF0 240F0077 */ li $t7, 119 +/* 043824 7F00ECF4 AFAE0054 */ sw $t6, 0x54($sp) +/* 043828 7F00ECF8 0C001107 */ jal get_video2_settings_txtClipW +/* 04382C 7F00ECFC AFAF0050 */ sw $t7, 0x50($sp) +/* 043830 7F00ED00 0C00110B */ jal get_video2_settings_txtClipH +/* 043834 7F00ED04 A7A20044 */ sh $v0, 0x44($sp) +/* 043838 7F00ED08 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 04383C 7F00ED0C 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 043840 7F00ED10 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 043844 7F00ED14 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 043848 7F00ED18 87A90044 */ lh $t1, 0x44($sp) +/* 04384C 7F00ED1C 240800FF */ li $t0, 255 +/* 043850 7F00ED20 AFA80018 */ sw $t0, 0x18($sp) +/* 043854 7F00ED24 8FA40058 */ lw $a0, 0x58($sp) +/* 043858 7F00ED28 27A50054 */ addiu $a1, $sp, 0x54 +/* 04385C 7F00ED2C 27A60050 */ addiu $a2, $sp, 0x50 +/* 043860 7F00ED30 02003825 */ move $a3, $s0 +/* 043864 7F00ED34 AFA20020 */ sw $v0, 0x20($sp) +/* 043868 7F00ED38 AFA00024 */ sw $zero, 0x24($sp) +/* 04386C 7F00ED3C AFA00028 */ sw $zero, 0x28($sp) +/* 043870 7F00ED40 AFB90014 */ sw $t9, 0x14($sp) +/* 043874 7F00ED44 AFB80010 */ sw $t8, 0x10($sp) +/* 043878 7F00ED48 0FC025D8 */ jal write_text_at_abs_coord +/* 04387C 7F00ED4C AFA9001C */ sw $t1, 0x1c($sp) +/* 043880 7F00ED50 8FBF003C */ lw $ra, 0x3c($sp) +/* 043884 7F00ED54 8FB00038 */ lw $s0, 0x38($sp) +/* 043888 7F00ED58 27BD0058 */ addiu $sp, $sp, 0x58 +/* 04388C 7F00ED5C 03E00008 */ jr $ra +/* 043890 7F00ED60 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void set_cursor_pos_difficulty(s32 arg0) +{ + cursor_h_pos = 106.0f; + cursor_v_pos = (f32) ((arg0 * 0x1e) + 0xba); +} +#else +GLOBAL_ASM( +.text +glabel set_cursor_pos_difficulty +/* 043894 7F00ED64 00047100 */ sll $t6, $a0, 4 +/* 043898 7F00ED68 01C47023 */ subu $t6, $t6, $a0 +/* 04389C 7F00ED6C 000E7040 */ sll $t6, $t6, 1 +/* 0438A0 7F00ED70 25CF00BA */ addiu $t7, $t6, 0xba +/* 0438A4 7F00ED74 448F3000 */ mtc1 $t7, $f6 +/* 0438A8 7F00ED78 3C0142D4 */ li $at, 0x42D40000 # 106.000000 +/* 0438AC 7F00ED7C 44812000 */ mtc1 $at, $f4 +/* 0438B0 7F00ED80 46803220 */ cvt.s.w $f8, $f6 +/* 0438B4 7F00ED84 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 0438B8 7F00ED88 E424A908 */ swc1 $f4, %lo(cursor_h_pos)($at) +/* 0438BC 7F00ED8C 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 0438C0 7F00ED90 03E00008 */ jr $ra +/* 0438C4 7F00ED94 E428A90C */ swc1 $f8, %lo(cursor_v_pos)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void constructor_menu08_difficulty(s32 arg0) +{ + s32 spC68; + s32 spC60; + s32 spC5C; + s32 spA4; + s32 sp9C; + s32 sp98; + f32 sp94; + f32 sp90; + f32 sp8C; + f32 sp88; + f32 temp_f16; + f32 temp_f8; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_ret_3; + s32 temp_ret_4; + s32 temp_s1; + s32 temp_s1_2; + s32 temp_v0; + s32 temp_v0_2; + s32 temp_v0_3; + s32 temp_v0_4; + s32 temp_v1; + void *temp_s0; + void *temp_t8; + void *temp_t9; + void *phi_t9; + void *phi_t8; + s32 phi_v0; + s32 phi_s1; + void *phi_s2; + s32 phi_v0_2; + void *phi_s2_2; + s32 phi_s1_2; + f32 phi_f16; + f32 phi_f8; + void *phi_s2_3; + + spC68 = get_highest_unlocked_difficulty_for_level((0x80030000 + (briefingpage * 0x1c))->unk-5408); + temp_ret = set_setfillcolor(arg0, 0, 0, 0); + arg0 = temp_ret; + temp_v0 = temp_ret; + temp_ret_2 = insert_generic_fillrect(temp_v0); + arg0 = temp_ret_2; + temp_v0_2 = temp_ret_2; + temp_ret_3 = sub_GAME_7F00D5E8(temp_v0_2); + arg0 = temp_ret_3; + temp_v0_3 = temp_ret_3; + phi_t9 = &asc_D_8004F4B4; + phi_t8 = &spA4; +loop_1: + temp_t9 = phi_t9 + 0xc; + temp_t8 = phi_t8 + 0xc; + temp_t8->unk-C = (s32) *phi_t9; + temp_t8->unk-8 = (s32) temp_t9->unk-8; + temp_t8->unk-4 = (s32) temp_t9->unk-4; + phi_t9 = temp_t9; + phi_t8 = temp_t8; + if (temp_t9 != (&asc_D_8004F4B4 + 0xbb8)) + { + goto loop_1; + } + temp_ret_4 = microcode_constructor(temp_v0_3); + arg0 = temp_ret_4; + temp_v0_4 = temp_ret_4; + arg0 = print_current_solo_briefing_stage_name(temp_v0_4, &spA4); + spC60 = 0x37; + spC5C = 0x8f; + get_video2_settings_txtClipW(); + arg0 = write_text_at_abs_coord(arg0, &spC60, &spC5C, get_textptr_for_textID(TEXT(LTITLE, 0x23)), (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, get_video2_settings_txtClipH(), 0, 0); + if (mission_difficulty_highlighted >= 0) + { + if (j_text_trigger != 0) + { + phi_v0 = 0x32; + } + else + { + phi_v0 = 0; + } + temp_v1 = mission_difficulty_highlighted * 0x1e; + arg0 = microcode_constructor_related_to_menus(arg0, 0x7e - phi_v0, temp_v1 + 0xb2, 0xf0, (s32) (temp_v1 + 0xc3), 0x32); + } + phi_s1 = 0; + phi_s2_3 = spA0; +loop_8: + if ((phi_s1 == 0) || (spC68 >= phi_s1)) + { + if (j_text_trigger != 0) + { + if (phi_s1 != 0) + { + if (phi_s1 != 1) + { + if (phi_s1 != 2) + { + if (phi_s1 != 3) + { + phi_s2 = phi_s2_3; + } + else + { + phi_s2 = get_textptr_for_textID(TEXT(LTITLE, 0x10c)); +block_21: + } + } + else + { + phi_s2 = get_textptr_for_textID(TEXT(LTITLE, 0x10b)); + goto block_21; + } + } + else + { + phi_s2 = get_textptr_for_textID(TEXT(LTITLE, 0x10a)); + goto block_21; + } + } + else + { + phi_s2 = get_textptr_for_textID(TEXT(LTITLE, 0x109)); + goto block_21; + } + } + else + { + sprintf(&spA4, &aD_, phi_s1 + 1); + phi_s2 = &spA4; + goto block_21; + } + sub_GAME_7F0AE98C(&sp98, &sp9C, phi_s2, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + phi_v0_2 = 0; + if (j_text_trigger != 0) + { + phi_v0_2 = sp9C + -0xa; + } + spC60 = (s32) (0x82 - phi_v0_2); + get_video2_settings_txtClipW(); + arg0 = write_text_at_abs_coord(arg0, &spC60, &spC5C, phi_s2, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, get_video2_settings_txtClipH(), 0, 0); + if (phi_s1 != 0) + { + if (phi_s1 != 1) + { + if (phi_s1 != 2) + { + if (phi_s1 != 3) + { + phi_s2_2 = phi_s2; + } + else + { + phi_s2_2 = get_textptr_for_textID(TEXT(LTITLE, 0x27)); +block_33: + } + } + else + { + phi_s2_2 = get_textptr_for_textID(TEXT(LTITLE, 0x26)); + goto block_33; + } + } + else + { + phi_s2_2 = get_textptr_for_textID(TEXT(LTITLE, 0x25)); + goto block_33; + } + } + else + { + phi_s2_2 = get_textptr_for_textID(TEXT(LTITLE, 0x24)); + goto block_33; + } + spC60 = (s32) 0x96; + get_video2_settings_txtClipW(); + arg0 = write_text_at_abs_coord(arg0, &spC60, &spC5C, phi_s2_2, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, get_video2_settings_txtClipH(), 0, 0); + phi_s2_3 = phi_s2_2; + } + else + { + + } + temp_s1 = phi_s1 + 1; + phi_s1 = temp_s1; + if (temp_s1 < 4) + { + goto loop_8; + } + arg0 = add_tab3_previous(arg0); + phi_s1_2 = 0; +loop_37: + if ((phi_s1_2 == 0) || (spC68 >= phi_s1_2)) + { + if (check_if_stage_completed_on_difficulty(briefingpage, phi_s1_2) == 3) + { + sp90 = 280.0f; + temp_s0 = mainfolderimages + 0x30; + sp94 = (f32) ((((phi_s1_2 * 0x10) - phi_s1_2) * 2) + 0xba); + temp_f16 = (f32) temp_s0->unk4; + phi_f16 = temp_f16; + if (temp_s0->unk4 < 0) + { + phi_f16 = temp_f16 + 4294967296.0f; + } + sp88 = (f32) (phi_f16 * 0.5f); + temp_f8 = (f32) temp_s0->unk5; + phi_f8 = temp_f8; + if (temp_s0->unk5 < 0) + { + phi_f8 = temp_f8 + 4294967296.0f; + } + sp8C = (f32) (phi_f8 * 0.5f); + likely_generate_DL_for_image_declaration(&arg0, temp_s0, 4, 0, 0); + display_image_at_on_screen_coord(&arg0, &sp90, &sp88, temp_s0->unk4, (s32) temp_s0->unk5, 0, 0, 1, 0xb4, 0, 0, 0xff, (s32) (0 < temp_s0->unk6), 0); + } + } + else + { + + } + temp_s1_2 = phi_s1_2 + 1; + phi_s1_2 = temp_s1_2; + if (temp_s1_2 != 3) + { + goto loop_37; + } + load_draw_selected_icon_folder_select(arg0); +} +#else +const char asc_D_8004F4B4[3000] = {0xA, 0}; +const char aD_[] = "%d.\n"; +GLOBAL_ASM( +.text +glabel constructor_menu08_difficulty +/* 0438C8 7F00ED98 27BDF390 */ addiu $sp, $sp, -0xc70 +/* 0438CC 7F00ED9C 3C0E8003 */ lui $t6, %hi(briefingpage) +/* 0438D0 7F00EDA0 8DCEA8F8 */ lw $t6, %lo(briefingpage)($t6) +/* 0438D4 7F00EDA4 AFA40C70 */ sw $a0, 0xc70($sp) +/* 0438D8 7F00EDA8 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+20) +/* 0438DC 7F00EDAC 000E78C0 */ sll $t7, $t6, 3 +/* 0438E0 7F00EDB0 01EE7823 */ subu $t7, $t7, $t6 +/* 0438E4 7F00EDB4 000F7880 */ sll $t7, $t7, 2 +/* 0438E8 7F00EDB8 AFBF006C */ sw $ra, 0x6c($sp) +/* 0438EC 7F00EDBC 008F2021 */ addu $a0, $a0, $t7 +/* 0438F0 7F00EDC0 AFBE0068 */ sw $fp, 0x68($sp) +/* 0438F4 7F00EDC4 AFB70064 */ sw $s7, 0x64($sp) +/* 0438F8 7F00EDC8 AFB60060 */ sw $s6, 0x60($sp) +/* 0438FC 7F00EDCC AFB5005C */ sw $s5, 0x5c($sp) +/* 043900 7F00EDD0 AFB40058 */ sw $s4, 0x58($sp) +/* 043904 7F00EDD4 AFB30054 */ sw $s3, 0x54($sp) +/* 043908 7F00EDD8 AFB20050 */ sw $s2, 0x50($sp) +/* 04390C 7F00EDDC AFB1004C */ sw $s1, 0x4c($sp) +/* 043910 7F00EDE0 AFB00048 */ sw $s0, 0x48($sp) +/* 043914 7F00EDE4 F7B40040 */ sdc1 $f20, 0x40($sp) +/* 043918 7F00EDE8 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 04391C 7F00EDEC 8C84ABF8 */ lw $a0, %lo(mission_folder_setup_entries+20)($a0) +/* 043920 7F00EDF0 AFA20C68 */ sw $v0, 0xc68($sp) +/* 043924 7F00EDF4 8FA40C70 */ lw $a0, 0xc70($sp) +/* 043928 7F00EDF8 00002825 */ move $a1, $zero +/* 04392C 7F00EDFC 00003025 */ move $a2, $zero +/* 043930 7F00EE00 0C0011B4 */ jal set_setfillcolor +/* 043934 7F00EE04 00003825 */ move $a3, $zero +/* 043938 7F00EE08 AFA20C70 */ sw $v0, 0xc70($sp) +/* 04393C 7F00EE0C 0C000FBE */ jal insert_generic_fillrect +/* 043940 7F00EE10 00402025 */ move $a0, $v0 +/* 043944 7F00EE14 AFA20C70 */ sw $v0, 0xc70($sp) +/* 043948 7F00EE18 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 04394C 7F00EE1C 00402025 */ move $a0, $v0 +/* 043950 7F00EE20 3C198005 */ lui $t9, %hi(asc_D_8004F4B4) +/* 043954 7F00EE24 2739F4B4 */ addiu $t9, %lo(asc_D_8004F4B4) # addiu $t9, $t9, -0xb4c +/* 043958 7F00EE28 AFA20C70 */ sw $v0, 0xc70($sp) +/* 04395C 7F00EE2C 272B0BB8 */ addiu $t3, $t9, 0xbb8 +/* 043960 7F00EE30 27B800A4 */ addiu $t8, $sp, 0xa4 +.L7F00EE34: +/* 043964 7F00EE34 8F210000 */ lw $at, ($t9) +/* 043968 7F00EE38 2739000C */ addiu $t9, $t9, 0xc +/* 04396C 7F00EE3C 2718000C */ addiu $t8, $t8, 0xc +/* 043970 7F00EE40 AF01FFF4 */ sw $at, -0xc($t8) +/* 043974 7F00EE44 8F21FFF8 */ lw $at, -8($t9) +/* 043978 7F00EE48 AF01FFF8 */ sw $at, -8($t8) +/* 04397C 7F00EE4C 8F21FFFC */ lw $at, -4($t9) +/* 043980 7F00EE50 172BFFF8 */ bne $t9, $t3, .L7F00EE34 +/* 043984 7F00EE54 AF01FFFC */ sw $at, -4($t8) +/* 043988 7F00EE58 0FC2B366 */ jal microcode_constructor +/* 04398C 7F00EE5C 00402025 */ move $a0, $v0 +/* 043990 7F00EE60 AFA20C70 */ sw $v0, 0xc70($sp) +/* 043994 7F00EE64 00402025 */ move $a0, $v0 +/* 043998 7F00EE68 0FC03AAF */ jal print_current_solo_briefing_stage_name +/* 04399C 7F00EE6C 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 0439A0 7F00EE70 AFA20C70 */ sw $v0, 0xc70($sp) +/* 0439A4 7F00EE74 0FC30776 */ jal get_textptr_for_textID +/* 0439A8 7F00EE78 34049C23 */ li $a0, 39971 +/* 0439AC 7F00EE7C 240C0037 */ li $t4, 55 +/* 0439B0 7F00EE80 240D008F */ li $t5, 143 +/* 0439B4 7F00EE84 00408825 */ move $s1, $v0 +/* 0439B8 7F00EE88 AFAC0C60 */ sw $t4, 0xc60($sp) +/* 0439BC 7F00EE8C 0C001107 */ jal get_video2_settings_txtClipW +/* 0439C0 7F00EE90 AFAD0C5C */ sw $t5, 0xc5c($sp) +/* 0439C4 7F00EE94 00028400 */ sll $s0, $v0, 0x10 +/* 0439C8 7F00EE98 00107403 */ sra $t6, $s0, 0x10 +/* 0439CC 7F00EE9C 0C00110B */ jal get_video2_settings_txtClipH +/* 0439D0 7F00EEA0 01C08025 */ move $s0, $t6 +/* 0439D4 7F00EEA4 3C158004 */ lui $s5, %hi(ptrSecondFontTableLarge) +/* 0439D8 7F00EEA8 3C168004 */ lui $s6, %hi(ptrFirstFontTableLarge) +/* 0439DC 7F00EEAC 26D60EB4 */ addiu $s6, %lo(ptrFirstFontTableLarge) # addiu $s6, $s6, 0xeb4 +/* 0439E0 7F00EEB0 26B50EB8 */ addiu $s5, %lo(ptrSecondFontTableLarge) # addiu $s5, $s5, 0xeb8 +/* 0439E4 7F00EEB4 8EAF0000 */ lw $t7, ($s5) +/* 0439E8 7F00EEB8 8ECA0000 */ lw $t2, ($s6) +/* 0439EC 7F00EEBC 240900FF */ li $t1, 255 +/* 0439F0 7F00EEC0 AFA90018 */ sw $t1, 0x18($sp) +/* 0439F4 7F00EEC4 8FA40C70 */ lw $a0, 0xc70($sp) +/* 0439F8 7F00EEC8 27A50C60 */ addiu $a1, $sp, 0xc60 +/* 0439FC 7F00EECC 27A60C5C */ addiu $a2, $sp, 0xc5c +/* 043A00 7F00EED0 02203825 */ move $a3, $s1 +/* 043A04 7F00EED4 AFB0001C */ sw $s0, 0x1c($sp) +/* 043A08 7F00EED8 AFA20020 */ sw $v0, 0x20($sp) +/* 043A0C 7F00EEDC AFA00024 */ sw $zero, 0x24($sp) +/* 043A10 7F00EEE0 AFA00028 */ sw $zero, 0x28($sp) +/* 043A14 7F00EEE4 AFAF0010 */ sw $t7, 0x10($sp) +/* 043A18 7F00EEE8 0FC025D8 */ jal write_text_at_abs_coord +/* 043A1C 7F00EEEC AFAA0014 */ sw $t2, 0x14($sp) +/* 043A20 7F00EEF0 3C088007 */ lui $t0, %hi(mission_difficulty_highlighted) +/* 043A24 7F00EEF4 8D089784 */ lw $t0, %lo(mission_difficulty_highlighted)($t0) +/* 043A28 7F00EEF8 AFA20C70 */ sw $v0, 0xc70($sp) +/* 043A2C 7F00EEFC 8FA40C70 */ lw $a0, 0xc70($sp) +/* 043A30 7F00EF00 05000013 */ bltz $t0, .L7F00EF50 +/* 043A34 7F00EF04 3C0B8005 */ lui $t3, %hi(j_text_trigger) +/* 043A38 7F00EF08 8D6B84D0 */ lw $t3, %lo(j_text_trigger)($t3) +/* 043A3C 7F00EF0C 00081900 */ sll $v1, $t0, 4 +/* 043A40 7F00EF10 00681823 */ subu $v1, $v1, $t0 +/* 043A44 7F00EF14 11600003 */ beqz $t3, .L7F00EF24 +/* 043A48 7F00EF18 2419007E */ li $t9, 126 +/* 043A4C 7F00EF1C 10000002 */ b .L7F00EF28 +/* 043A50 7F00EF20 24020032 */ li $v0, 50 +.L7F00EF24: +/* 043A54 7F00EF24 00001025 */ move $v0, $zero +.L7F00EF28: +/* 043A58 7F00EF28 00031840 */ sll $v1, $v1, 1 +/* 043A5C 7F00EF2C 247800C3 */ addiu $t8, $v1, 0xc3 +/* 043A60 7F00EF30 240C0032 */ li $t4, 50 +/* 043A64 7F00EF34 AFAC0014 */ sw $t4, 0x14($sp) +/* 043A68 7F00EF38 AFB80010 */ sw $t8, 0x10($sp) +/* 043A6C 7F00EF3C 246600B2 */ addiu $a2, $v1, 0xb2 +/* 043A70 7F00EF40 03222823 */ subu $a1, $t9, $v0 +/* 043A74 7F00EF44 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 043A78 7F00EF48 240700F0 */ li $a3, 240 +/* 043A7C 7F00EF4C AFA20C70 */ sw $v0, 0xc70($sp) +.L7F00EF50: +/* 043A80 7F00EF50 00008825 */ move $s1, $zero +/* 043A84 7F00EF54 241E0002 */ li $fp, 2 +/* 043A88 7F00EF58 24170001 */ li $s7, 1 +/* 043A8C 7F00EF5C 24140003 */ li $s4, 3 +/* 043A90 7F00EF60 8FB200A0 */ lw $s2, 0xa0($sp) +.L7F00EF64: +/* 043A94 7F00EF64 12200003 */ beqz $s1, .L7F00EF74 +/* 043A98 7F00EF68 8FAD0C68 */ lw $t5, 0xc68($sp) +/* 043A9C 7F00EF6C 01B1082A */ slt $at, $t5, $s1 +/* 043AA0 7F00EF70 14200080 */ bnez $at, .L7F00F174 +.L7F00EF74: +/* 043AA4 7F00EF74 3C0E8005 */ lui $t6, %hi(j_text_trigger) +/* 043AA8 7F00EF78 8DCE84D0 */ lw $t6, %lo(j_text_trigger)($t6) +/* 043AAC 7F00EF7C 00119900 */ sll $s3, $s1, 4 +/* 043AB0 7F00EF80 02719823 */ subu $s3, $s3, $s1 +/* 043AB4 7F00EF84 00139840 */ sll $s3, $s3, 1 +/* 043AB8 7F00EF88 11C0001B */ beqz $t6, .L7F00EFF8 +/* 043ABC 7F00EF8C 267300B4 */ addiu $s3, $s3, 0xb4 +/* 043AC0 7F00EF90 12200009 */ beqz $s1, .L7F00EFB8 +/* 043AC4 7F00EF94 00000000 */ nop +/* 043AC8 7F00EF98 1237000B */ beq $s1, $s7, .L7F00EFC8 +/* 043ACC 7F00EF9C 00000000 */ nop +/* 043AD0 7F00EFA0 123E000D */ beq $s1, $fp, .L7F00EFD8 +/* 043AD4 7F00EFA4 00000000 */ nop +/* 043AD8 7F00EFA8 1234000F */ beq $s1, $s4, .L7F00EFE8 +/* 043ADC 7F00EFAC 00000000 */ nop +/* 043AE0 7F00EFB0 10000018 */ b .L7F00F014 +/* 043AE4 7F00EFB4 8ECA0000 */ lw $t2, ($s6) +.L7F00EFB8: +/* 043AE8 7F00EFB8 0FC30776 */ jal get_textptr_for_textID +/* 043AEC 7F00EFBC 34049D09 */ li $a0, 40201 +/* 043AF0 7F00EFC0 10000013 */ b .L7F00F010 +/* 043AF4 7F00EFC4 00409025 */ move $s2, $v0 +.L7F00EFC8: +/* 043AF8 7F00EFC8 0FC30776 */ jal get_textptr_for_textID +/* 043AFC 7F00EFCC 34049D0A */ li $a0, 40202 +/* 043B00 7F00EFD0 1000000F */ b .L7F00F010 +/* 043B04 7F00EFD4 00409025 */ move $s2, $v0 +.L7F00EFD8: +/* 043B08 7F00EFD8 0FC30776 */ jal get_textptr_for_textID +/* 043B0C 7F00EFDC 34049D0B */ li $a0, 40203 +/* 043B10 7F00EFE0 1000000B */ b .L7F00F010 +/* 043B14 7F00EFE4 00409025 */ move $s2, $v0 +.L7F00EFE8: +/* 043B18 7F00EFE8 0FC30776 */ jal get_textptr_for_textID +/* 043B1C 7F00EFEC 34049D0C */ li $a0, 40204 +/* 043B20 7F00EFF0 10000007 */ b .L7F00F010 +/* 043B24 7F00EFF4 00409025 */ move $s2, $v0 +.L7F00EFF8: +/* 043B28 7F00EFF8 27B200A4 */ addiu $s2, $sp, 0xa4 +/* 043B2C 7F00EFFC 3C058005 */ lui $a1, %hi(aD_) +/* 043B30 7F00F000 24A5006C */ addiu $a1, %lo(aD_) # addiu $a1, $a1, 0x6c +/* 043B34 7F00F004 02402025 */ move $a0, $s2 +/* 043B38 7F00F008 0C002B25 */ jal sprintf +/* 043B3C 7F00F00C 26260001 */ addiu $a2, $s1, 1 +.L7F00F010: +/* 043B40 7F00F010 8ECA0000 */ lw $t2, ($s6) +.L7F00F014: +/* 043B44 7F00F014 27A40098 */ addiu $a0, $sp, 0x98 +/* 043B48 7F00F018 27A5009C */ addiu $a1, $sp, 0x9c +/* 043B4C 7F00F01C 02403025 */ move $a2, $s2 +/* 043B50 7F00F020 8EA70000 */ lw $a3, ($s5) +/* 043B54 7F00F024 AFA00014 */ sw $zero, 0x14($sp) +/* 043B58 7F00F028 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 043B5C 7F00F02C AFAA0010 */ sw $t2, 0x10($sp) +/* 043B60 7F00F030 3C098005 */ lui $t1, %hi(j_text_trigger) +/* 043B64 7F00F034 8D2984D0 */ lw $t1, %lo(j_text_trigger)($t1) +/* 043B68 7F00F038 240B0082 */ li $t3, 130 +/* 043B6C 7F00F03C 00001025 */ move $v0, $zero +/* 043B70 7F00F040 11200004 */ beqz $t1, .L7F00F054 +/* 043B74 7F00F044 00000000 */ nop +/* 043B78 7F00F048 8FA2009C */ lw $v0, 0x9c($sp) +/* 043B7C 7F00F04C 10000001 */ b .L7F00F054 +/* 043B80 7F00F050 2442FFF6 */ addiu $v0, $v0, -0xa +.L7F00F054: +/* 043B84 7F00F054 0162C823 */ subu $t9, $t3, $v0 +/* 043B88 7F00F058 AFB90C60 */ sw $t9, 0xc60($sp) +/* 043B8C 7F00F05C 0C001107 */ jal get_video2_settings_txtClipW +/* 043B90 7F00F060 AFB30C5C */ sw $s3, 0xc5c($sp) +/* 043B94 7F00F064 00028400 */ sll $s0, $v0, 0x10 +/* 043B98 7F00F068 0010C403 */ sra $t8, $s0, 0x10 +/* 043B9C 7F00F06C 0C00110B */ jal get_video2_settings_txtClipH +/* 043BA0 7F00F070 03008025 */ move $s0, $t8 +/* 043BA4 7F00F074 8EAC0000 */ lw $t4, ($s5) +/* 043BA8 7F00F078 8ECD0000 */ lw $t5, ($s6) +/* 043BAC 7F00F07C 240E00FF */ li $t6, 255 +/* 043BB0 7F00F080 AFAE0018 */ sw $t6, 0x18($sp) +/* 043BB4 7F00F084 8FA40C70 */ lw $a0, 0xc70($sp) +/* 043BB8 7F00F088 27A50C60 */ addiu $a1, $sp, 0xc60 +/* 043BBC 7F00F08C 27A60C5C */ addiu $a2, $sp, 0xc5c +/* 043BC0 7F00F090 02403825 */ move $a3, $s2 +/* 043BC4 7F00F094 AFB0001C */ sw $s0, 0x1c($sp) +/* 043BC8 7F00F098 AFA20020 */ sw $v0, 0x20($sp) +/* 043BCC 7F00F09C AFA00024 */ sw $zero, 0x24($sp) +/* 043BD0 7F00F0A0 AFA00028 */ sw $zero, 0x28($sp) +/* 043BD4 7F00F0A4 AFAC0010 */ sw $t4, 0x10($sp) +/* 043BD8 7F00F0A8 0FC025D8 */ jal write_text_at_abs_coord +/* 043BDC 7F00F0AC AFAD0014 */ sw $t5, 0x14($sp) +/* 043BE0 7F00F0B0 12200009 */ beqz $s1, .L7F00F0D8 +/* 043BE4 7F00F0B4 AFA20C70 */ sw $v0, 0xc70($sp) +/* 043BE8 7F00F0B8 1237000B */ beq $s1, $s7, .L7F00F0E8 +/* 043BEC 7F00F0BC 00000000 */ nop +/* 043BF0 7F00F0C0 123E000D */ beq $s1, $fp, .L7F00F0F8 +/* 043BF4 7F00F0C4 00000000 */ nop +/* 043BF8 7F00F0C8 1234000F */ beq $s1, $s4, .L7F00F108 +/* 043BFC 7F00F0CC 00000000 */ nop +/* 043C00 7F00F0D0 10000011 */ b .L7F00F118 +/* 043C04 7F00F0D4 240F0096 */ li $t7, 150 +.L7F00F0D8: +/* 043C08 7F00F0D8 0FC30776 */ jal get_textptr_for_textID +/* 043C0C 7F00F0DC 34049C24 */ li $a0, 39972 +/* 043C10 7F00F0E0 1000000C */ b .L7F00F114 +/* 043C14 7F00F0E4 00409025 */ move $s2, $v0 +.L7F00F0E8: +/* 043C18 7F00F0E8 0FC30776 */ jal get_textptr_for_textID +/* 043C1C 7F00F0EC 34049C25 */ li $a0, 39973 +/* 043C20 7F00F0F0 10000008 */ b .L7F00F114 +/* 043C24 7F00F0F4 00409025 */ move $s2, $v0 +.L7F00F0F8: +/* 043C28 7F00F0F8 0FC30776 */ jal get_textptr_for_textID +/* 043C2C 7F00F0FC 34049C26 */ li $a0, 39974 +/* 043C30 7F00F100 10000004 */ b .L7F00F114 +/* 043C34 7F00F104 00409025 */ move $s2, $v0 +.L7F00F108: +/* 043C38 7F00F108 0FC30776 */ jal get_textptr_for_textID +/* 043C3C 7F00F10C 34049C27 */ li $a0, 39975 +/* 043C40 7F00F110 00409025 */ move $s2, $v0 +.L7F00F114: +/* 043C44 7F00F114 240F0096 */ li $t7, 150 +.L7F00F118: +/* 043C48 7F00F118 AFAF0C60 */ sw $t7, 0xc60($sp) +/* 043C4C 7F00F11C 0C001107 */ jal get_video2_settings_txtClipW +/* 043C50 7F00F120 AFB30C5C */ sw $s3, 0xc5c($sp) +/* 043C54 7F00F124 00028400 */ sll $s0, $v0, 0x10 +/* 043C58 7F00F128 00105403 */ sra $t2, $s0, 0x10 +/* 043C5C 7F00F12C 0C00110B */ jal get_video2_settings_txtClipH +/* 043C60 7F00F130 01408025 */ move $s0, $t2 +/* 043C64 7F00F134 8EA90000 */ lw $t1, ($s5) +/* 043C68 7F00F138 8ECB0000 */ lw $t3, ($s6) +/* 043C6C 7F00F13C 241900FF */ li $t9, 255 +/* 043C70 7F00F140 AFB90018 */ sw $t9, 0x18($sp) +/* 043C74 7F00F144 8FA40C70 */ lw $a0, 0xc70($sp) +/* 043C78 7F00F148 27A50C60 */ addiu $a1, $sp, 0xc60 +/* 043C7C 7F00F14C 27A60C5C */ addiu $a2, $sp, 0xc5c +/* 043C80 7F00F150 02403825 */ move $a3, $s2 +/* 043C84 7F00F154 AFB0001C */ sw $s0, 0x1c($sp) +/* 043C88 7F00F158 AFA20020 */ sw $v0, 0x20($sp) +/* 043C8C 7F00F15C AFA00024 */ sw $zero, 0x24($sp) +/* 043C90 7F00F160 AFA00028 */ sw $zero, 0x28($sp) +/* 043C94 7F00F164 AFA90010 */ sw $t1, 0x10($sp) +/* 043C98 7F00F168 0FC025D8 */ jal write_text_at_abs_coord +/* 043C9C 7F00F16C AFAB0014 */ sw $t3, 0x14($sp) +/* 043CA0 7F00F170 AFA20C70 */ sw $v0, 0xc70($sp) +.L7F00F174: +/* 043CA4 7F00F174 26310001 */ addiu $s1, $s1, 1 +/* 043CA8 7F00F178 2A210004 */ slti $at, $s1, 4 +/* 043CAC 7F00F17C 1420FF79 */ bnez $at, .L7F00EF64 +/* 043CB0 7F00F180 00000000 */ nop +/* 043CB4 7F00F184 AFB200A0 */ sw $s2, 0xa0($sp) +/* 043CB8 7F00F188 0FC0288E */ jal add_tab3_previous +/* 043CBC 7F00F18C 8FA40C70 */ lw $a0, 0xc70($sp) +/* 043CC0 7F00F190 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 043CC4 7F00F194 4481A000 */ mtc1 $at, $f20 +/* 043CC8 7F00F198 AFA20C70 */ sw $v0, 0xc70($sp) +/* 043CCC 7F00F19C 00008825 */ move $s1, $zero +/* 043CD0 7F00F1A0 27B20C70 */ addiu $s2, $sp, 0xc70 +.L7F00F1A4: +/* 043CD4 7F00F1A4 12200003 */ beqz $s1, .L7F00F1B4 +/* 043CD8 7F00F1A8 8FB80C68 */ lw $t8, 0xc68($sp) +/* 043CDC 7F00F1AC 0311082A */ slt $at, $t8, $s1 +/* 043CE0 7F00F1B0 14200041 */ bnez $at, .L7F00F2B8 +.L7F00F1B4: +/* 043CE4 7F00F1B4 3C048003 */ lui $a0, %hi(briefingpage) +/* 043CE8 7F00F1B8 8C84A8F8 */ lw $a0, %lo(briefingpage)($a0) +/* 043CEC 7F00F1BC 0FC03743 */ jal check_if_stage_completed_on_difficulty +/* 043CF0 7F00F1C0 02202825 */ move $a1, $s1 +/* 043CF4 7F00F1C4 1454003C */ bne $v0, $s4, .L7F00F2B8 +/* 043CF8 7F00F1C8 00116100 */ sll $t4, $s1, 4 +/* 043CFC 7F00F1CC 01916023 */ subu $t4, $t4, $s1 +/* 043D00 7F00F1D0 000C6040 */ sll $t4, $t4, 1 +/* 043D04 7F00F1D4 258D00BA */ addiu $t5, $t4, 0xba +/* 043D08 7F00F1D8 448D3000 */ mtc1 $t5, $f6 +/* 043D0C 7F00F1DC 3C01438C */ li $at, 0x438C0000 # 280.000000 +/* 043D10 7F00F1E0 44812000 */ mtc1 $at, $f4 +/* 043D14 7F00F1E4 46803220 */ cvt.s.w $f8, $f6 +/* 043D18 7F00F1E8 3C108009 */ lui $s0, %hi(mainfolderimages) +/* 043D1C 7F00F1EC 8E10D128 */ lw $s0, %lo(mainfolderimages)($s0) +/* 043D20 7F00F1F0 E7A40090 */ swc1 $f4, 0x90($sp) +/* 043D24 7F00F1F4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 043D28 7F00F1F8 26100030 */ addiu $s0, $s0, 0x30 +/* 043D2C 7F00F1FC E7A80094 */ swc1 $f8, 0x94($sp) +/* 043D30 7F00F200 920E0004 */ lbu $t6, 4($s0) +/* 043D34 7F00F204 448E5000 */ mtc1 $t6, $f10 +/* 043D38 7F00F208 05C10004 */ bgez $t6, .L7F00F21C +/* 043D3C 7F00F20C 46805420 */ cvt.s.w $f16, $f10 +/* 043D40 7F00F210 44819000 */ mtc1 $at, $f18 +/* 043D44 7F00F214 00000000 */ nop +/* 043D48 7F00F218 46128400 */ add.s $f16, $f16, $f18 +.L7F00F21C: +/* 043D4C 7F00F21C 46148102 */ mul.s $f4, $f16, $f20 +/* 043D50 7F00F220 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 043D54 7F00F224 E7A40088 */ swc1 $f4, 0x88($sp) +/* 043D58 7F00F228 920F0005 */ lbu $t7, 5($s0) +/* 043D5C 7F00F22C 448F3000 */ mtc1 $t7, $f6 +/* 043D60 7F00F230 05E10004 */ bgez $t7, .L7F00F244 +/* 043D64 7F00F234 46803220 */ cvt.s.w $f8, $f6 +/* 043D68 7F00F238 44815000 */ mtc1 $at, $f10 +/* 043D6C 7F00F23C 00000000 */ nop +/* 043D70 7F00F240 460A4200 */ add.s $f8, $f8, $f10 +.L7F00F244: +/* 043D74 7F00F244 46144482 */ mul.s $f18, $f8, $f20 +/* 043D78 7F00F248 02402025 */ move $a0, $s2 +/* 043D7C 7F00F24C 02002825 */ move $a1, $s0 +/* 043D80 7F00F250 24060004 */ li $a2, 4 +/* 043D84 7F00F254 00003825 */ move $a3, $zero +/* 043D88 7F00F258 AFA00010 */ sw $zero, 0x10($sp) +/* 043D8C 7F00F25C 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 043D90 7F00F260 E7B2008C */ swc1 $f18, 0x8c($sp) +/* 043D94 7F00F264 920A0005 */ lbu $t2, 5($s0) +/* 043D98 7F00F268 92070004 */ lbu $a3, 4($s0) +/* 043D9C 7F00F26C 24090001 */ li $t1, 1 +/* 043DA0 7F00F270 240B00B4 */ li $t3, 180 +/* 043DA4 7F00F274 241900FF */ li $t9, 255 +/* 043DA8 7F00F278 AFB9002C */ sw $t9, 0x2c($sp) +/* 043DAC 7F00F27C AFAB0020 */ sw $t3, 0x20($sp) +/* 043DB0 7F00F280 AFA9001C */ sw $t1, 0x1c($sp) +/* 043DB4 7F00F284 AFA00028 */ sw $zero, 0x28($sp) +/* 043DB8 7F00F288 AFA00024 */ sw $zero, 0x24($sp) +/* 043DBC 7F00F28C AFA00018 */ sw $zero, 0x18($sp) +/* 043DC0 7F00F290 AFA00014 */ sw $zero, 0x14($sp) +/* 043DC4 7F00F294 AFAA0010 */ sw $t2, 0x10($sp) +/* 043DC8 7F00F298 92180006 */ lbu $t8, 6($s0) +/* 043DCC 7F00F29C AFA00034 */ sw $zero, 0x34($sp) +/* 043DD0 7F00F2A0 02402025 */ move $a0, $s2 +/* 043DD4 7F00F2A4 0018602A */ slt $t4, $zero, $t8 +/* 043DD8 7F00F2A8 AFAC0030 */ sw $t4, 0x30($sp) +/* 043DDC 7F00F2AC 27A50090 */ addiu $a1, $sp, 0x90 +/* 043DE0 7F00F2B0 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 043DE4 7F00F2B4 27A60088 */ addiu $a2, $sp, 0x88 +.L7F00F2B8: +/* 043DE8 7F00F2B8 26310001 */ addiu $s1, $s1, 1 +/* 043DEC 7F00F2BC 1634FFB9 */ bne $s1, $s4, .L7F00F1A4 +/* 043DF0 7F00F2C0 00000000 */ nop +/* 043DF4 7F00F2C4 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 043DF8 7F00F2C8 8FA40C70 */ lw $a0, 0xc70($sp) +/* 043DFC 7F00F2CC 8FBF006C */ lw $ra, 0x6c($sp) +/* 043E00 7F00F2D0 D7B40040 */ ldc1 $f20, 0x40($sp) +/* 043E04 7F00F2D4 8FB00048 */ lw $s0, 0x48($sp) +/* 043E08 7F00F2D8 8FB1004C */ lw $s1, 0x4c($sp) +/* 043E0C 7F00F2DC 8FB20050 */ lw $s2, 0x50($sp) +/* 043E10 7F00F2E0 8FB30054 */ lw $s3, 0x54($sp) +/* 043E14 7F00F2E4 8FB40058 */ lw $s4, 0x58($sp) +/* 043E18 7F00F2E8 8FB5005C */ lw $s5, 0x5c($sp) +/* 043E1C 7F00F2EC 8FB60060 */ lw $s6, 0x60($sp) +/* 043E20 7F00F2F0 8FB70064 */ lw $s7, 0x64($sp) +/* 043E24 7F00F2F4 8FBE0068 */ lw $fp, 0x68($sp) +/* 043E28 7F00F2F8 03E00008 */ jr $ra +/* 043E2C 7F00F2FC 27BD0C70 */ addiu $sp, $sp, 0xc70 +) +#endif + + + +void init_menu09_007difficultyselect(void) +{ + tab_1_selected = 0; + tab_2_selected = 0; + tab_3_selected = 0; + tab_3_highlight = 0; + tab_2_highlight = 0; + tab_1_highlight = 0; + highlight_enemy_reaction = 0; + highlight_enemy_health = 0; + highlight_enemy_accuracy = 0; + highlight_enemy_damage = 0; + load_walletbond(); +} + +void update_menu09_007options(void) { + return; +} + + + + + + + +#ifdef NONMATCHING +void interface_menu09_007options(void) +{ + f32 temp_f0; + s32 temp_f6; + f32 phi_f0; + f32 phi_f0_2; + + setvideo_far(0x42700000); + video_related_21(D_80051A58); + set_page_height(0x42c80000, D_80051A5C); + set_video2_settings_offset_24(0); + if (get_controller_buttons_held(0, 0xa000) == 0) + { + tab_3_highlight = 0; + tab_2_highlight = 0; + tab_1_highlight = 0; + highlight_enemy_reaction = 0; + highlight_enemy_health = 0; + highlight_enemy_accuracy = 0; + highlight_enemy_damage = 0; + if (isontab3() != 0) + { + tab_3_highlight = 1; + } + else + { + if (isontab2() != 0) + { + tab_2_highlight = 1; + } + else + { + if (isontab1() != 0) + { + cursor_v_pos = 1; + } + else + { + temp_f6 = (s32) cursor_v_pos; + if (temp_f6 >= 0x107) + { + highlight_enemy_reaction = 1; + } + else + { + if (temp_f6 >= 0xe6) + { + highlight_enemy_damage = 1; + } + else + { + if (temp_f6 >= 0xc5) + { + highlight_enemy_accuracy = 1; + } + else + { + if (temp_f6 >= 0xa4) + { + highlight_enemy_health = 1; + } + else + { + tab_2_highlight = 1; + } + } + } + } + } + } + } + } + if (get_controller_buttons_pressed(0, 0x1000) != 0) + { + tab_1_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if (get_controller_buttons_pressed(0, 0xa000) != 0) + { + if (tab_2_highlight != 0) + { + tab_2_selected = 1; + } + else + { + if (tab_3_highlight != 0) + { + tab_3_selected = 1; + } + else + { + if (tab_1_highlight != 0) + { + tab_1_selected = 1; + } + } + } + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if (get_controller_buttons_pressed(0, 0x4000) != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + if (get_controller_buttons_held(0, 0xa000) != 0) + { + temp_f0 = (cursor_h_pos - 55.0f) / 300.0f; + phi_f0 = temp_f0; + if (1.0f < temp_f0) + { + phi_f0 = 1.0f; + } + phi_f0_2 = phi_f0; + if (phi_f0 < 0.0f) + { + phi_f0_2 = 0.0f; + } + if (highlight_enemy_reaction != 0) + { + slider_007_mode_reaction = (f32) phi_f0_2; + } + else + { + if (highlight_enemy_health != 0) + { + slider_007_mode_health = (f32) ((phi_f0_2 * phi_f0_2) * 10.0f); + } + else + { + if (highlight_enemy_accuracy != 0) + { + slider_007_mode_accuracy = (f32) ((phi_f0_2 * phi_f0_2) * 10.0f); + } + else + { + if (highlight_enemy_damage != 0) + { + slider_007_mode_damage = (f32) ((phi_f0_2 * phi_f0_2) * 10.0f); + } + } + } + } + } + disable_all_switches(ptr_folder_object_instance); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 6, 1); + menu_control_stick_tracking(); + if (tab_1_selected != 0) + { + set_menu_to_mode(MENU_RUN_STAGE, 1); + return; + } + if (tab_2_selected != 0) + { + set_menu_to_mode(MENU_BRIEFING, 0); + return; + } + if (tab_3_selected != 0) + { + set_menu_to_mode(MENU_DIFFICULTY, 0); + set_cursor_pos_difficulty(selected_difficulty); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051A58 +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_80051A5C +.word 0x461C4000 /* 10000.0;*/ +.text +glabel interface_menu09_007options +/* 043EA4 7F00F374 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 043EA8 7F00F378 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 043EAC 7F00F37C AFBF0014 */ sw $ra, 0x14($sp) +/* 043EB0 7F00F380 44816000 */ mtc1 $at, $f12 +/* 043EB4 7F00F384 0C001151 */ jal setvideo_far +/* 043EB8 7F00F388 00000000 */ nop +/* 043EBC 7F00F38C 3C018005 */ lui $at, %hi(D_80051A58) +/* 043EC0 7F00F390 0C001164 */ jal video_related_21 +/* 043EC4 7F00F394 C42C1A58 */ lwc1 $f12, %lo(D_80051A58)($at) +/* 043EC8 7F00F398 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 043ECC 7F00F39C 44816000 */ mtc1 $at, $f12 +/* 043ED0 7F00F3A0 3C018005 */ lui $at, %hi(D_80051A5C) +/* 043ED4 7F00F3A4 0C001194 */ jal set_page_height +/* 043ED8 7F00F3A8 C42E1A5C */ lwc1 $f14, %lo(D_80051A5C)($at) +/* 043EDC 7F00F3AC 0C00114D */ jal set_video2_settings_offset_24 +/* 043EE0 7F00F3B0 00002025 */ move $a0, $zero +/* 043EE4 7F00F3B4 00002025 */ move $a0, $zero +/* 043EE8 7F00F3B8 0C0030C3 */ jal get_controller_buttons_held +/* 043EEC 7F00F3BC 3405A000 */ li $a1, 40960 +/* 043EF0 7F00F3C0 14400042 */ bnez $v0, .L7F00F4CC +/* 043EF4 7F00F3C4 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 043EF8 7F00F3C8 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 043EFC 7F00F3CC 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 043F00 7F00F3D0 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 043F04 7F00F3D4 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 043F08 7F00F3D8 AC20A8DC */ sw $zero, %lo(tab_1_highlight)($at) +/* 043F0C 7F00F3DC 3C018007 */ lui $at, %hi(highlight_enemy_reaction) +/* 043F10 7F00F3E0 AC209794 */ sw $zero, %lo(highlight_enemy_reaction)($at) +/* 043F14 7F00F3E4 3C018007 */ lui $at, %hi(highlight_enemy_health) +/* 043F18 7F00F3E8 AC209798 */ sw $zero, %lo(highlight_enemy_health)($at) +/* 043F1C 7F00F3EC 3C018007 */ lui $at, %hi(highlight_enemy_accuracy) +/* 043F20 7F00F3F0 AC20979C */ sw $zero, %lo(highlight_enemy_accuracy)($at) +/* 043F24 7F00F3F4 3C018007 */ lui $at, %hi(highlight_enemy_damage) +/* 043F28 7F00F3F8 0FC028E7 */ jal isontab3 +/* 043F2C 7F00F3FC AC2097A0 */ sw $zero, %lo(highlight_enemy_damage)($at) +/* 043F30 7F00F400 10400004 */ beqz $v0, .L7F00F414 +/* 043F34 7F00F404 240E0001 */ li $t6, 1 +/* 043F38 7F00F408 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 043F3C 7F00F40C 1000002F */ b .L7F00F4CC +/* 043F40 7F00F410 AC2EA8E4 */ sw $t6, %lo(tab_3_highlight)($at) +.L7F00F414: +/* 043F44 7F00F414 0FC0295E */ jal isontab2 +/* 043F48 7F00F418 00000000 */ nop +/* 043F4C 7F00F41C 10400004 */ beqz $v0, .L7F00F430 +/* 043F50 7F00F420 24030001 */ li $v1, 1 +/* 043F54 7F00F424 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 043F58 7F00F428 10000028 */ b .L7F00F4CC +/* 043F5C 7F00F42C AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) +.L7F00F430: +/* 043F60 7F00F430 0FC02879 */ jal isontab1 +/* 043F64 7F00F434 00000000 */ nop +/* 043F68 7F00F438 10400005 */ beqz $v0, .L7F00F450 +/* 043F6C 7F00F43C 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 043F70 7F00F440 24030001 */ li $v1, 1 +/* 043F74 7F00F444 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 043F78 7F00F448 10000020 */ b .L7F00F4CC +/* 043F7C 7F00F44C AC23A8DC */ sw $v1, %lo(tab_1_highlight)($at) +.L7F00F450: +/* 043F80 7F00F450 C424A90C */ lwc1 $f4, %lo(cursor_v_pos)($at) +/* 043F84 7F00F454 24030001 */ li $v1, 1 +/* 043F88 7F00F458 4600218D */ trunc.w.s $f6, $f4 +/* 043F8C 7F00F45C 44023000 */ mfc1 $v0, $f6 +/* 043F90 7F00F460 00000000 */ nop +/* 043F94 7F00F464 28410107 */ slti $at, $v0, 0x107 +/* 043F98 7F00F468 14200003 */ bnez $at, .L7F00F478 +/* 043F9C 7F00F46C 3C018007 */ lui $at, %hi(highlight_enemy_reaction) +/* 043FA0 7F00F470 10000016 */ b .L7F00F4CC +/* 043FA4 7F00F474 AC239794 */ sw $v1, %lo(highlight_enemy_reaction)($at) +.L7F00F478: +/* 043FA8 7F00F478 284100E6 */ slti $at, $v0, 0xe6 +/* 043FAC 7F00F47C 14200004 */ bnez $at, .L7F00F490 +/* 043FB0 7F00F480 24030001 */ li $v1, 1 +/* 043FB4 7F00F484 3C018007 */ lui $at, %hi(highlight_enemy_damage) +/* 043FB8 7F00F488 10000010 */ b .L7F00F4CC +/* 043FBC 7F00F48C AC2397A0 */ sw $v1, %lo(highlight_enemy_damage)($at) +.L7F00F490: +/* 043FC0 7F00F490 284100C5 */ slti $at, $v0, 0xc5 +/* 043FC4 7F00F494 14200004 */ bnez $at, .L7F00F4A8 +/* 043FC8 7F00F498 24030001 */ li $v1, 1 +/* 043FCC 7F00F49C 3C018007 */ lui $at, %hi(highlight_enemy_accuracy) +/* 043FD0 7F00F4A0 1000000A */ b .L7F00F4CC +/* 043FD4 7F00F4A4 AC23979C */ sw $v1, %lo(highlight_enemy_accuracy)($at) +.L7F00F4A8: +/* 043FD8 7F00F4A8 284100A4 */ slti $at, $v0, 0xa4 +/* 043FDC 7F00F4AC 14200005 */ bnez $at, .L7F00F4C4 +/* 043FE0 7F00F4B0 24030001 */ li $v1, 1 +/* 043FE4 7F00F4B4 24030001 */ li $v1, 1 +/* 043FE8 7F00F4B8 3C018007 */ lui $at, %hi(highlight_enemy_health) +/* 043FEC 7F00F4BC 10000003 */ b .L7F00F4CC +/* 043FF0 7F00F4C0 AC239798 */ sw $v1, %lo(highlight_enemy_health)($at) +.L7F00F4C4: +/* 043FF4 7F00F4C4 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 043FF8 7F00F4C8 AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) +.L7F00F4CC: +/* 043FFC 7F00F4CC 00002025 */ move $a0, $zero +/* 044000 7F00F4D0 0C0030EB */ jal get_controller_buttons_pressed +/* 044004 7F00F4D4 24051000 */ li $a1, 4096 +/* 044008 7F00F4D8 1040000A */ beqz $v0, .L7F00F504 +/* 04400C 7F00F4DC 24030001 */ li $v1, 1 +/* 044010 7F00F4E0 3C018003 */ lui $at, %hi(tab_1_selected) +/* 044014 7F00F4E4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 044018 7F00F4E8 AC23A8D0 */ sw $v1, %lo(tab_1_selected)($at) +/* 04401C 7F00F4EC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 044020 7F00F4F0 240500C7 */ li $a1, 199 +/* 044024 7F00F4F4 0C002382 */ jal play_sfx_a1 +/* 044028 7F00F4F8 00003025 */ move $a2, $zero +/* 04402C 7F00F4FC 1000002D */ b .L7F00F5B4 +/* 044030 7F00F500 00002025 */ move $a0, $zero +.L7F00F504: +/* 044034 7F00F504 00002025 */ move $a0, $zero +/* 044038 7F00F508 0C0030EB */ jal get_controller_buttons_pressed +/* 04403C 7F00F50C 3405A000 */ li $a1, 40960 +/* 044040 7F00F510 1040001B */ beqz $v0, .L7F00F580 +/* 044044 7F00F514 24030001 */ li $v1, 1 +/* 044048 7F00F518 3C188003 */ lui $t8, %hi(tab_2_highlight) +/* 04404C 7F00F51C 8F18A8E0 */ lw $t8, %lo(tab_2_highlight)($t8) +/* 044050 7F00F520 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 044054 7F00F524 240500C7 */ li $a1, 199 +/* 044058 7F00F528 13000004 */ beqz $t8, .L7F00F53C +/* 04405C 7F00F52C 00003025 */ move $a2, $zero +/* 044060 7F00F530 3C018003 */ lui $at, %hi(tab_2_selected) +/* 044064 7F00F534 1000000E */ b .L7F00F570 +/* 044068 7F00F538 AC23A8D4 */ sw $v1, %lo(tab_2_selected)($at) +.L7F00F53C: +/* 04406C 7F00F53C 3C198003 */ lui $t9, %hi(tab_3_highlight) +/* 044070 7F00F540 8F39A8E4 */ lw $t9, %lo(tab_3_highlight)($t9) +/* 044074 7F00F544 3C018003 */ lui $at, %hi(tab_3_selected) +/* 044078 7F00F548 3C088003 */ lui $t0, %hi(tab_1_highlight) +/* 04407C 7F00F54C 13200003 */ beqz $t9, .L7F00F55C +/* 044080 7F00F550 00000000 */ nop +/* 044084 7F00F554 10000006 */ b .L7F00F570 +/* 044088 7F00F558 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +.L7F00F55C: +/* 04408C 7F00F55C 8D08A8DC */ lw $t0, %lo(tab_1_highlight)($t0) +/* 044090 7F00F560 3C018003 */ lui $at, %hi(tab_1_selected) +/* 044094 7F00F564 11000002 */ beqz $t0, .L7F00F570 +/* 044098 7F00F568 00000000 */ nop +/* 04409C 7F00F56C AC23A8D0 */ sw $v1, %lo(tab_1_selected)($at) +.L7F00F570: +/* 0440A0 7F00F570 0C002382 */ jal play_sfx_a1 +/* 0440A4 7F00F574 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0440A8 7F00F578 1000000E */ b .L7F00F5B4 +/* 0440AC 7F00F57C 00002025 */ move $a0, $zero +.L7F00F580: +/* 0440B0 7F00F580 00002025 */ move $a0, $zero +/* 0440B4 7F00F584 0C0030EB */ jal get_controller_buttons_pressed +/* 0440B8 7F00F588 24054000 */ li $a1, 16384 +/* 0440BC 7F00F58C 10400008 */ beqz $v0, .L7F00F5B0 +/* 0440C0 7F00F590 24030001 */ li $v1, 1 +/* 0440C4 7F00F594 3C018003 */ lui $at, %hi(tab_3_selected) +/* 0440C8 7F00F598 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0440CC 7F00F59C AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +/* 0440D0 7F00F5A0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0440D4 7F00F5A4 240500C7 */ li $a1, 199 +/* 0440D8 7F00F5A8 0C002382 */ jal play_sfx_a1 +/* 0440DC 7F00F5AC 00003025 */ move $a2, $zero +.L7F00F5B0: +/* 0440E0 7F00F5B0 00002025 */ move $a0, $zero +.L7F00F5B4: +/* 0440E4 7F00F5B4 0C0030C3 */ jal get_controller_buttons_held +/* 0440E8 7F00F5B8 3405A000 */ li $a1, 40960 +/* 0440EC 7F00F5BC 1040003E */ beqz $v0, .L7F00F6B8 +/* 0440F0 7F00F5C0 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 0440F4 7F00F5C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0440F8 7F00F5C8 44811000 */ mtc1 $at, $f2 +/* 0440FC 7F00F5CC 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 044100 7F00F5D0 C428A908 */ lwc1 $f8, %lo(cursor_h_pos)($at) +/* 044104 7F00F5D4 3C01425C */ li $at, 0x425C0000 # 55.000000 +/* 044108 7F00F5D8 44815000 */ mtc1 $at, $f10 +/* 04410C 7F00F5DC 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 044110 7F00F5E0 44819000 */ mtc1 $at, $f18 +/* 044114 7F00F5E4 460A4401 */ sub.s $f16, $f8, $f10 +/* 044118 7F00F5E8 3C098007 */ lui $t1, %hi(highlight_enemy_reaction) +/* 04411C 7F00F5EC 3C018003 */ lui $at, %hi(slider_007_mode_reaction) +/* 044120 7F00F5F0 3C0A8007 */ lui $t2, %hi(highlight_enemy_health) +/* 044124 7F00F5F4 46128003 */ div.s $f0, $f16, $f18 +/* 044128 7F00F5F8 4600103C */ c.lt.s $f2, $f0 +/* 04412C 7F00F5FC 00000000 */ nop +/* 044130 7F00F600 45020003 */ bc1fl .L7F00F610 +/* 044134 7F00F604 44801000 */ mtc1 $zero, $f2 +/* 044138 7F00F608 46001006 */ mov.s $f0, $f2 +/* 04413C 7F00F60C 44801000 */ mtc1 $zero, $f2 +.L7F00F610: +/* 044140 7F00F610 00000000 */ nop +/* 044144 7F00F614 4602003C */ c.lt.s $f0, $f2 +/* 044148 7F00F618 00000000 */ nop +/* 04414C 7F00F61C 45000002 */ bc1f .L7F00F628 +/* 044150 7F00F620 00000000 */ nop +/* 044154 7F00F624 46001006 */ mov.s $f0, $f2 +.L7F00F628: +/* 044158 7F00F628 8D299794 */ lw $t1, %lo(highlight_enemy_reaction)($t1) +/* 04415C 7F00F62C 11200003 */ beqz $t1, .L7F00F63C +/* 044160 7F00F630 00000000 */ nop +/* 044164 7F00F634 10000020 */ b .L7F00F6B8 +/* 044168 7F00F638 E420A9A0 */ swc1 $f0, %lo(slider_007_mode_reaction)($at) +.L7F00F63C: +/* 04416C 7F00F63C 8D4A9798 */ lw $t2, %lo(highlight_enemy_health)($t2) +/* 044170 7F00F640 3C0B8007 */ lui $t3, %hi(highlight_enemy_accuracy) +/* 044174 7F00F644 11400008 */ beqz $t2, .L7F00F668 +/* 044178 7F00F648 00000000 */ nop +/* 04417C 7F00F64C 46000102 */ mul.s $f4, $f0, $f0 +/* 044180 7F00F650 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 044184 7F00F654 44813000 */ mtc1 $at, $f6 +/* 044188 7F00F658 3C018003 */ lui $at, %hi(slider_007_mode_health) +/* 04418C 7F00F65C 46062202 */ mul.s $f8, $f4, $f6 +/* 044190 7F00F660 10000015 */ b .L7F00F6B8 +/* 044194 7F00F664 E428A9A4 */ swc1 $f8, %lo(slider_007_mode_health)($at) +.L7F00F668: +/* 044198 7F00F668 8D6B979C */ lw $t3, %lo(highlight_enemy_accuracy)($t3) +/* 04419C 7F00F66C 3C0C8007 */ lui $t4, %hi(highlight_enemy_damage) +/* 0441A0 7F00F670 11600008 */ beqz $t3, .L7F00F694 +/* 0441A4 7F00F674 00000000 */ nop +/* 0441A8 7F00F678 46000282 */ mul.s $f10, $f0, $f0 +/* 0441AC 7F00F67C 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0441B0 7F00F680 44818000 */ mtc1 $at, $f16 +/* 0441B4 7F00F684 3C018003 */ lui $at, %hi(slider_007_mode_accuracy) +/* 0441B8 7F00F688 46105482 */ mul.s $f18, $f10, $f16 +/* 0441BC 7F00F68C 1000000A */ b .L7F00F6B8 +/* 0441C0 7F00F690 E432A9A8 */ swc1 $f18, %lo(slider_007_mode_accuracy)($at) +.L7F00F694: +/* 0441C4 7F00F694 8D8C97A0 */ lw $t4, %lo(highlight_enemy_damage)($t4) +/* 0441C8 7F00F698 11800007 */ beqz $t4, .L7F00F6B8 +/* 0441CC 7F00F69C 00000000 */ nop +/* 0441D0 7F00F6A0 46000102 */ mul.s $f4, $f0, $f0 +/* 0441D4 7F00F6A4 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0441D8 7F00F6A8 44813000 */ mtc1 $at, $f6 +/* 0441DC 7F00F6AC 3C018003 */ lui $at, %hi(slider_007_mode_damage) +/* 0441E0 7F00F6B0 46062202 */ mul.s $f8, $f4, $f6 +/* 0441E4 7F00F6B4 E428A9AC */ swc1 $f8, %lo(slider_007_mode_damage)($at) +.L7F00F6B8: +/* 0441E8 7F00F6B8 0FC02DC9 */ jal disable_all_switches +/* 0441EC 7F00F6BC 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 0441F0 7F00F6C0 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 0441F4 7F00F6C4 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 0441F8 7F00F6C8 00002825 */ move $a1, $zero +/* 0441FC 7F00F6CC 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 044200 7F00F6D0 24060001 */ li $a2, 1 +/* 044204 7F00F6D4 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 044208 7F00F6D8 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04420C 7F00F6DC 24050001 */ li $a1, 1 +/* 044210 7F00F6E0 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 044214 7F00F6E4 24060001 */ li $a2, 1 +/* 044218 7F00F6E8 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04421C 7F00F6EC 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 044220 7F00F6F0 24050003 */ li $a1, 3 +/* 044224 7F00F6F4 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 044228 7F00F6F8 24060001 */ li $a2, 1 +/* 04422C 7F00F6FC 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 044230 7F00F700 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 044234 7F00F704 24050006 */ li $a1, 6 +/* 044238 7F00F708 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04423C 7F00F70C 24060001 */ li $a2, 1 +/* 044240 7F00F710 0FC026E1 */ jal menu_control_stick_tracking +/* 044244 7F00F714 00000000 */ nop +/* 044248 7F00F718 3C0D8003 */ lui $t5, %hi(tab_1_selected) +/* 04424C 7F00F71C 8DADA8D0 */ lw $t5, %lo(tab_1_selected)($t5) +/* 044250 7F00F720 2404000B */ li $a0, 11 +/* 044254 7F00F724 3C0E8003 */ lui $t6, %hi(tab_2_selected) +/* 044258 7F00F728 11A00005 */ beqz $t5, .L7F00F740 +/* 04425C 7F00F72C 00000000 */ nop +/* 044260 7F00F730 0FC06975 */ jal set_menu_to_mode +/* 044264 7F00F734 24050001 */ li $a1, 1 +/* 044268 7F00F738 10000014 */ b .L7F00F78C +/* 04426C 7F00F73C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00F740: +/* 044270 7F00F740 8DCEA8D4 */ lw $t6, %lo(tab_2_selected)($t6) +/* 044274 7F00F744 2404000A */ li $a0, 10 +/* 044278 7F00F748 3C0F8003 */ lui $t7, %hi(tab_3_selected) +/* 04427C 7F00F74C 11C00005 */ beqz $t6, .L7F00F764 +/* 044280 7F00F750 00000000 */ nop +/* 044284 7F00F754 0FC06975 */ jal set_menu_to_mode +/* 044288 7F00F758 00002825 */ move $a1, $zero +/* 04428C 7F00F75C 1000000B */ b .L7F00F78C +/* 044290 7F00F760 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00F764: +/* 044294 7F00F764 8DEFA8D8 */ lw $t7, %lo(tab_3_selected)($t7) +/* 044298 7F00F768 24040008 */ li $a0, 8 +/* 04429C 7F00F76C 51E00007 */ beql $t7, $zero, .L7F00F78C +/* 0442A0 7F00F770 8FBF0014 */ lw $ra, 0x14($sp) +/* 0442A4 7F00F774 0FC06975 */ jal set_menu_to_mode +/* 0442A8 7F00F778 00002825 */ move $a1, $zero +/* 0442AC 7F00F77C 3C048003 */ lui $a0, %hi(selected_difficulty) +/* 0442B0 7F00F780 0FC03B59 */ jal set_cursor_pos_difficulty +/* 0442B4 7F00F784 8C84A8FC */ lw $a0, %lo(selected_difficulty)($a0) +/* 0442B8 7F00F788 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00F78C: +/* 0442BC 7F00F78C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0442C0 7F00F790 03E00008 */ jr $ra +/* 0442C4 7F00F794 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void constructor_menu09_007options(void) +{ + s32 spC14; + s32 spC10; + s32 spC0C; + s32 sp54; + s32 sp50; + s32 sp4C; + s16 sp44; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_ret_3; + s32 temp_ret_4; + s32 temp_s0; + s32 temp_s0_2; + s32 temp_s0_3; + s32 temp_s0_4; + s32 temp_s0_5; + s32 temp_s0_6; + s32 temp_s0_7; + s32 temp_s0_8; + void *temp_t6; + void *temp_t7; + void *phi_t7; + void *phi_t6; + s32 phi_s0; + s32 phi_s0_2; + s32 phi_s0_3; + s32 phi_s0_4; + + phi_t7 = &asc_D_80050074; + phi_t6 = &sp54; +loop_1: + temp_t7 = phi_t7 + 0xc; + temp_t6 = phi_t6 + 0xc; + temp_t6->unk-C = (s32) *phi_t7; + temp_t6->unk-8 = (s32) temp_t7->unk-8; + temp_t6->unk-4 = (s32) temp_t7->unk-4; + phi_t7 = temp_t7; + phi_t6 = temp_t6; + if (temp_t7 != (&asc_D_80050074 + 0xbb8)) + { + goto loop_1; + } + spC14 = get_textptr_for_textID(TEXT(LTITLE, 0x28)); + spC10 = 0x37; + spC0C = 0x8f; + sp44 = get_video2_settings_txtClipW(); + temp_s0 = write_text_at_abs_coord(print_current_solo_briefing_stage_name(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(0, 0, 0)))), &sp54), &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + spC14 = get_textptr_for_textID(TEXT(LTITLE, 0x2a)); + spC10 = 0x39; + spC0C = 0xa4; + temp_ret = microcode_constructor_related_to_menus(microcode_constructor_related_to_menus(temp_s0, 0x37, 0xb5, 0x163, 0xc0, 0x32), 0x37, 0xa4 + 0x11, (s32) (sqrtf(slider_007_mode_health / 10.0f) * 300.0f) + 0x37, (s32) (0xa4 + 0x1c), 0x64); + phi_s0 = temp_ret; + if (highlight_enemy_health != 0) + { + phi_s0 = microcode_constructor_related_to_menus(temp_ret, 0x37, spC0C + -1, 0xc7, (s32) (spC0C + 0xe), 0x32); + } + sp44 = get_video2_settings_txtClipW(); + temp_s0_2 = write_text_at_abs_coord(phi_s0, &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sprintf(&sp54, &aD, (s32) (slider_007_mode_health * 100.0f)); + sp4C = 0; + sp50 = 0; + sub_GAME_7F0AE98C(&sp50, &sp4C, &sp54, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + spC10 = (s32) (0x11d - sp4C); + spC0C = 0xa4; + sp44 = get_video2_settings_txtClipW(); + temp_s0_3 = write_text_at_abs_coord(temp_s0_2, &spC10, &spC0C, &sp54, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + spC14 = get_textptr_for_textID(TEXT(LTITLE, 0x2b)); + spC10 = 0x39; + spC0C = 0xc5; + temp_ret_2 = microcode_constructor_related_to_menus(microcode_constructor_related_to_menus(temp_s0_3, 0x37, 0xd6, 0x163, 0xe1, 0x32), 0x37, 0xc5 + 0x11, (s32) (sqrtf(slider_007_mode_accuracy / 10.0f) * 300.0f) + 0x37, (s32) (0xc5 + 0x1c), 0x64); + phi_s0_2 = temp_ret_2; + if (highlight_enemy_accuracy != 0) + { + phi_s0_2 = microcode_constructor_related_to_menus(temp_ret_2, 0x37, spC0C + -1, 0xc7, (s32) (spC0C + 0xe), 0x32); + } + sp44 = get_video2_settings_txtClipW(); + temp_s0_4 = write_text_at_abs_coord(phi_s0_2, &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sprintf(&sp54, &aD_0, (s32) (slider_007_mode_accuracy * 100.0f)); + sp4C = 0; + sp50 = 0; + sub_GAME_7F0AE98C(&sp50, &sp4C, &sp54, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + spC10 = (s32) (0x11d - sp4C); + spC0C = 0xc5; + sp44 = get_video2_settings_txtClipW(); + temp_s0_5 = write_text_at_abs_coord(temp_s0_4, &spC10, &spC0C, &sp54, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + spC14 = get_textptr_for_textID(TEXT(LTITLE, 0x2c)); + spC10 = 0x39; + spC0C = 0xe6; + temp_ret_3 = microcode_constructor_related_to_menus(microcode_constructor_related_to_menus(temp_s0_5, 0x37, 0xf7, 0x163, 0x102, 0x32), 0x37, 0xe6 + 0x11, (s32) (sqrtf(slider_007_mode_damage / 10.0f) * 300.0f) + 0x37, (s32) (0xe6 + 0x1c), 0x64); + phi_s0_3 = temp_ret_3; + if (highlight_enemy_damage != 0) + { + phi_s0_3 = microcode_constructor_related_to_menus(temp_ret_3, 0x37, spC0C + -1, 0xc7, (s32) (spC0C + 0xe), 0x32); + } + sp44 = get_video2_settings_txtClipW(); + temp_s0_6 = write_text_at_abs_coord(phi_s0_3, &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sprintf(&sp54, &aD_1, (s32) (slider_007_mode_damage * 10.0f)); + sp4C = 0; + sp50 = 0; + sub_GAME_7F0AE98C(&sp50, &sp4C, &sp54, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + spC10 = (s32) (0x11d - sp4C); + spC0C = 0xe6; + sp44 = get_video2_settings_txtClipW(); + temp_s0_7 = write_text_at_abs_coord(temp_s0_6, &spC10, &spC0C, &sp54, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + spC14 = get_textptr_for_textID(TEXT(LTITLE, 0x29)); + spC10 = 0x39; + spC0C = 0x107; + temp_ret_4 = microcode_constructor_related_to_menus(microcode_constructor_related_to_menus(temp_s0_7, 0x37, 0x118, 0x163, 0x123, 0x32), 0x37, 0x107 + 0x11, (s32) ((slider_007_mode_reaction * 300.0f) * 1.0f) + 0x37, (s32) (0x107 + 0x1c), 0x64); + phi_s0_4 = temp_ret_4; + if (highlight_enemy_reaction != 0) + { + phi_s0_4 = microcode_constructor_related_to_menus(temp_ret_4, 0x37, spC0C + -1, 0xc7, (s32) (spC0C + 0xe), 0x32); + } + sp44 = get_video2_settings_txtClipW(); + temp_s0_8 = write_text_at_abs_coord(phi_s0_4, &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sprintf(&sp54, &aD_2, (s32) (slider_007_mode_reaction * 100.0f)); + sp4C = 0; + sp50 = 0; + sub_GAME_7F0AE98C(&sp50, &sp4C, &sp54, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + spC10 = (s32) (0x11d - sp4C); + spC0C = 0x107; + sp44 = get_video2_settings_txtClipW(); + load_draw_selected_icon_folder_select(add_tab2_next(add_tab3_previous(add_tab1_start(write_text_at_abs_coord(temp_s0_8, &spC10, &spC0C, &sp54, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0))))); +} +#else +const char asc_D_80050074[3000] = {0xA, 0}; +const char aD[] = "%d%%\n"; +const char aD_0[] = "%d%%\n"; +const char aD_1[] = "%d%%\n"; +const char aD_2[] = "%d%%\n"; +GLOBAL_ASM( +.text +glabel constructor_menu09_007options +/* 0442C8 7F00F798 27BDF3E8 */ addiu $sp, $sp, -0xc18 +/* 0442CC 7F00F79C AFBF003C */ sw $ra, 0x3c($sp) +/* 0442D0 7F00F7A0 AFB00038 */ sw $s0, 0x38($sp) +/* 0442D4 7F00F7A4 00002825 */ move $a1, $zero +/* 0442D8 7F00F7A8 00003025 */ move $a2, $zero +/* 0442DC 7F00F7AC 0C0011B4 */ jal set_setfillcolor +/* 0442E0 7F00F7B0 00003825 */ move $a3, $zero +/* 0442E4 7F00F7B4 0C000FBE */ jal insert_generic_fillrect +/* 0442E8 7F00F7B8 00402025 */ move $a0, $v0 +/* 0442EC 7F00F7BC 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 0442F0 7F00F7C0 00402025 */ move $a0, $v0 +/* 0442F4 7F00F7C4 3C0F8005 */ lui $t7, %hi(asc_D_80050074) +/* 0442F8 7F00F7C8 25EF0074 */ addiu $t7, %lo(asc_D_80050074) # addiu $t7, $t7, 0x74 +/* 0442FC 7F00F7CC 25E80BB8 */ addiu $t0, $t7, 0xbb8 +/* 044300 7F00F7D0 27AE0054 */ addiu $t6, $sp, 0x54 +.L7F00F7D4: +/* 044304 7F00F7D4 8DE10000 */ lw $at, ($t7) +/* 044308 7F00F7D8 25EF000C */ addiu $t7, $t7, 0xc +/* 04430C 7F00F7DC 25CE000C */ addiu $t6, $t6, 0xc +/* 044310 7F00F7E0 ADC1FFF4 */ sw $at, -0xc($t6) +/* 044314 7F00F7E4 8DE1FFF8 */ lw $at, -8($t7) +/* 044318 7F00F7E8 ADC1FFF8 */ sw $at, -8($t6) +/* 04431C 7F00F7EC 8DE1FFFC */ lw $at, -4($t7) +/* 044320 7F00F7F0 15E8FFF8 */ bne $t7, $t0, .L7F00F7D4 +/* 044324 7F00F7F4 ADC1FFFC */ sw $at, -4($t6) +/* 044328 7F00F7F8 0FC2B366 */ jal microcode_constructor +/* 04432C 7F00F7FC 00402025 */ move $a0, $v0 +/* 044330 7F00F800 00402025 */ move $a0, $v0 +/* 044334 7F00F804 0FC03AAF */ jal print_current_solo_briefing_stage_name +/* 044338 7F00F808 27A50054 */ addiu $a1, $sp, 0x54 +/* 04433C 7F00F80C 00408025 */ move $s0, $v0 +/* 044340 7F00F810 0FC30776 */ jal get_textptr_for_textID +/* 044344 7F00F814 34049C28 */ li $a0, 39976 +/* 044348 7F00F818 24090037 */ li $t1, 55 +/* 04434C 7F00F81C 2403008F */ li $v1, 143 +/* 044350 7F00F820 AFA20C14 */ sw $v0, 0xc14($sp) +/* 044354 7F00F824 AFA90C10 */ sw $t1, 0xc10($sp) +/* 044358 7F00F828 0C001107 */ jal get_video2_settings_txtClipW +/* 04435C 7F00F82C AFA30C0C */ sw $v1, 0xc0c($sp) +/* 044360 7F00F830 0C00110B */ jal get_video2_settings_txtClipH +/* 044364 7F00F834 A7A20044 */ sh $v0, 0x44($sp) +/* 044368 7F00F838 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableLarge) +/* 04436C 7F00F83C 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) +/* 044370 7F00F840 8D6B0EB4 */ lw $t3, %lo(ptrFirstFontTableLarge)($t3) +/* 044374 7F00F844 8D4A0EB8 */ lw $t2, %lo(ptrSecondFontTableLarge)($t2) +/* 044378 7F00F848 87AD0044 */ lh $t5, 0x44($sp) +/* 04437C 7F00F84C 240C00FF */ li $t4, 255 +/* 044380 7F00F850 AFAC0018 */ sw $t4, 0x18($sp) +/* 044384 7F00F854 02002025 */ move $a0, $s0 +/* 044388 7F00F858 27A50C10 */ addiu $a1, $sp, 0xc10 +/* 04438C 7F00F85C 27A60C0C */ addiu $a2, $sp, 0xc0c +/* 044390 7F00F860 8FA70C14 */ lw $a3, 0xc14($sp) +/* 044394 7F00F864 AFA20020 */ sw $v0, 0x20($sp) +/* 044398 7F00F868 AFA00024 */ sw $zero, 0x24($sp) +/* 04439C 7F00F86C AFA00028 */ sw $zero, 0x28($sp) +/* 0443A0 7F00F870 AFAB0014 */ sw $t3, 0x14($sp) +/* 0443A4 7F00F874 AFAA0010 */ sw $t2, 0x10($sp) +/* 0443A8 7F00F878 0FC025D8 */ jal write_text_at_abs_coord +/* 0443AC 7F00F87C AFAD001C */ sw $t5, 0x1c($sp) +/* 0443B0 7F00F880 00408025 */ move $s0, $v0 +/* 0443B4 7F00F884 0FC30776 */ jal get_textptr_for_textID +/* 0443B8 7F00F888 34049C2A */ li $a0, 39978 +/* 0443BC 7F00F88C 24190039 */ li $t9, 57 +/* 0443C0 7F00F890 240300A4 */ li $v1, 164 +/* 0443C4 7F00F894 241800C0 */ li $t8, 192 +/* 0443C8 7F00F898 24080032 */ li $t0, 50 +/* 0443CC 7F00F89C AFA20C14 */ sw $v0, 0xc14($sp) +/* 0443D0 7F00F8A0 AFB90C10 */ sw $t9, 0xc10($sp) +/* 0443D4 7F00F8A4 AFA80014 */ sw $t0, 0x14($sp) +/* 0443D8 7F00F8A8 AFB80010 */ sw $t8, 0x10($sp) +/* 0443DC 7F00F8AC AFA30C0C */ sw $v1, 0xc0c($sp) +/* 0443E0 7F00F8B0 02002025 */ move $a0, $s0 +/* 0443E4 7F00F8B4 24050037 */ li $a1, 55 +/* 0443E8 7F00F8B8 240600B5 */ li $a2, 181 +/* 0443EC 7F00F8BC 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0443F0 7F00F8C0 24070163 */ li $a3, 355 +/* 0443F4 7F00F8C4 3C018003 */ lui $at, %hi(slider_007_mode_health) +/* 0443F8 7F00F8C8 C424A9A4 */ lwc1 $f4, %lo(slider_007_mode_health)($at) +/* 0443FC 7F00F8CC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 044400 7F00F8D0 44813000 */ mtc1 $at, $f6 +/* 044404 7F00F8D4 00408025 */ move $s0, $v0 +/* 044408 7F00F8D8 0C007DF8 */ jal sqrtf +/* 04440C 7F00F8DC 46062303 */ div.s $f12, $f4, $f6 +/* 044410 7F00F8E0 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 044414 7F00F8E4 44814000 */ mtc1 $at, $f8 +/* 044418 7F00F8E8 8FA30C0C */ lw $v1, 0xc0c($sp) +/* 04441C 7F00F8EC 24090064 */ li $t1, 100 +/* 044420 7F00F8F0 46080282 */ mul.s $f10, $f0, $f8 +/* 044424 7F00F8F4 246E001C */ addiu $t6, $v1, 0x1c +/* 044428 7F00F8F8 AFAE0010 */ sw $t6, 0x10($sp) +/* 04442C 7F00F8FC AFA90014 */ sw $t1, 0x14($sp) +/* 044430 7F00F900 02002025 */ move $a0, $s0 +/* 044434 7F00F904 24050037 */ li $a1, 55 +/* 044438 7F00F908 24660011 */ addiu $a2, $v1, 0x11 +/* 04443C 7F00F90C 4600540D */ trunc.w.s $f16, $f10 +/* 044440 7F00F910 44078000 */ mfc1 $a3, $f16 +/* 044444 7F00F914 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 044448 7F00F918 24E70037 */ addiu $a3, $a3, 0x37 +/* 04444C 7F00F91C 3C0A8007 */ lui $t2, %hi(highlight_enemy_health) +/* 044450 7F00F920 8D4A9798 */ lw $t2, %lo(highlight_enemy_health)($t2) +/* 044454 7F00F924 00408025 */ move $s0, $v0 +/* 044458 7F00F928 1140000C */ beqz $t2, .L7F00F95C +/* 04445C 7F00F92C 00000000 */ nop +/* 044460 7F00F930 8FA30C0C */ lw $v1, 0xc0c($sp) +/* 044464 7F00F934 240C0032 */ li $t4, 50 +/* 044468 7F00F938 AFAC0014 */ sw $t4, 0x14($sp) +/* 04446C 7F00F93C 246B000E */ addiu $t3, $v1, 0xe +/* 044470 7F00F940 AFAB0010 */ sw $t3, 0x10($sp) +/* 044474 7F00F944 00402025 */ move $a0, $v0 +/* 044478 7F00F948 24050037 */ li $a1, 55 +/* 04447C 7F00F94C 240700C7 */ li $a3, 199 +/* 044480 7F00F950 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 044484 7F00F954 2466FFFF */ addiu $a2, $v1, -1 +/* 044488 7F00F958 00408025 */ move $s0, $v0 +.L7F00F95C: +/* 04448C 7F00F95C 0C001107 */ jal get_video2_settings_txtClipW +/* 044490 7F00F960 00000000 */ nop +/* 044494 7F00F964 0C00110B */ jal get_video2_settings_txtClipH +/* 044498 7F00F968 A7A20044 */ sh $v0, 0x44($sp) +/* 04449C 7F00F96C 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) +/* 0444A0 7F00F970 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 0444A4 7F00F974 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 0444A8 7F00F978 8DAD0EB8 */ lw $t5, %lo(ptrSecondFontTableLarge)($t5) +/* 0444AC 7F00F97C 87A80044 */ lh $t0, 0x44($sp) +/* 0444B0 7F00F980 241800FF */ li $t8, 255 +/* 0444B4 7F00F984 AFB80018 */ sw $t8, 0x18($sp) +/* 0444B8 7F00F988 02002025 */ move $a0, $s0 +/* 0444BC 7F00F98C 27A50C10 */ addiu $a1, $sp, 0xc10 +/* 0444C0 7F00F990 27A60C0C */ addiu $a2, $sp, 0xc0c +/* 0444C4 7F00F994 8FA70C14 */ lw $a3, 0xc14($sp) +/* 0444C8 7F00F998 AFA20020 */ sw $v0, 0x20($sp) +/* 0444CC 7F00F99C AFA00024 */ sw $zero, 0x24($sp) +/* 0444D0 7F00F9A0 AFA00028 */ sw $zero, 0x28($sp) +/* 0444D4 7F00F9A4 AFB90014 */ sw $t9, 0x14($sp) +/* 0444D8 7F00F9A8 AFAD0010 */ sw $t5, 0x10($sp) +/* 0444DC 7F00F9AC 0FC025D8 */ jal write_text_at_abs_coord +/* 0444E0 7F00F9B0 AFA8001C */ sw $t0, 0x1c($sp) +/* 0444E4 7F00F9B4 3C018003 */ lui $at, %hi(slider_007_mode_health) +/* 0444E8 7F00F9B8 C432A9A4 */ lwc1 $f18, %lo(slider_007_mode_health)($at) +/* 0444EC 7F00F9BC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0444F0 7F00F9C0 44812000 */ mtc1 $at, $f4 +/* 0444F4 7F00F9C4 3C058005 */ lui $a1, %hi(aD) +/* 0444F8 7F00F9C8 00408025 */ move $s0, $v0 +/* 0444FC 7F00F9CC 46049182 */ mul.s $f6, $f18, $f4 +/* 044500 7F00F9D0 24A50C2C */ addiu $a1, %lo(aD) # addiu $a1, $a1, 0xc2c +/* 044504 7F00F9D4 27A40054 */ addiu $a0, $sp, 0x54 +/* 044508 7F00F9D8 4600320D */ trunc.w.s $f8, $f6 +/* 04450C 7F00F9DC 44064000 */ mfc1 $a2, $f8 +/* 044510 7F00F9E0 0C002B25 */ jal sprintf +/* 044514 7F00F9E4 00000000 */ nop +/* 044518 7F00F9E8 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 04451C 7F00F9EC 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 044520 7F00F9F0 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 044524 7F00F9F4 AFA0004C */ sw $zero, 0x4c($sp) +/* 044528 7F00F9F8 AFA00050 */ sw $zero, 0x50($sp) +/* 04452C 7F00F9FC 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 044530 7F00FA00 27A40050 */ addiu $a0, $sp, 0x50 +/* 044534 7F00FA04 27A5004C */ addiu $a1, $sp, 0x4c +/* 044538 7F00FA08 27A60054 */ addiu $a2, $sp, 0x54 +/* 04453C 7F00FA0C AFA00014 */ sw $zero, 0x14($sp) +/* 044540 7F00FA10 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 044544 7F00FA14 AFAE0010 */ sw $t6, 0x10($sp) +/* 044548 7F00FA18 8FA9004C */ lw $t1, 0x4c($sp) +/* 04454C 7F00FA1C 240A011D */ li $t2, 285 +/* 044550 7F00FA20 240300A4 */ li $v1, 164 +/* 044554 7F00FA24 01495823 */ subu $t3, $t2, $t1 +/* 044558 7F00FA28 AFAB0C10 */ sw $t3, 0xc10($sp) +/* 04455C 7F00FA2C 0C001107 */ jal get_video2_settings_txtClipW +/* 044560 7F00FA30 AFA30C0C */ sw $v1, 0xc0c($sp) +/* 044564 7F00FA34 0C00110B */ jal get_video2_settings_txtClipH +/* 044568 7F00FA38 A7A20044 */ sh $v0, 0x44($sp) +/* 04456C 7F00FA3C 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) +/* 044570 7F00FA40 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 044574 7F00FA44 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 044578 7F00FA48 8D8C0EB8 */ lw $t4, %lo(ptrSecondFontTableLarge)($t4) +/* 04457C 7F00FA4C 87B80044 */ lh $t8, 0x44($sp) +/* 044580 7F00FA50 241900FF */ li $t9, 255 +/* 044584 7F00FA54 AFB90018 */ sw $t9, 0x18($sp) +/* 044588 7F00FA58 02002025 */ move $a0, $s0 +/* 04458C 7F00FA5C 27A50C10 */ addiu $a1, $sp, 0xc10 +/* 044590 7F00FA60 27A60C0C */ addiu $a2, $sp, 0xc0c +/* 044594 7F00FA64 27A70054 */ addiu $a3, $sp, 0x54 +/* 044598 7F00FA68 AFA20020 */ sw $v0, 0x20($sp) +/* 04459C 7F00FA6C AFA00024 */ sw $zero, 0x24($sp) +/* 0445A0 7F00FA70 AFA00028 */ sw $zero, 0x28($sp) +/* 0445A4 7F00FA74 AFAD0014 */ sw $t5, 0x14($sp) +/* 0445A8 7F00FA78 AFAC0010 */ sw $t4, 0x10($sp) +/* 0445AC 7F00FA7C 0FC025D8 */ jal write_text_at_abs_coord +/* 0445B0 7F00FA80 AFB8001C */ sw $t8, 0x1c($sp) +/* 0445B4 7F00FA84 00408025 */ move $s0, $v0 +/* 0445B8 7F00FA88 0FC30776 */ jal get_textptr_for_textID +/* 0445BC 7F00FA8C 34049C2B */ li $a0, 39979 +/* 0445C0 7F00FA90 24080039 */ li $t0, 57 +/* 0445C4 7F00FA94 240300C5 */ li $v1, 197 +/* 0445C8 7F00FA98 240F00E1 */ li $t7, 225 +/* 0445CC 7F00FA9C 240E0032 */ li $t6, 50 +/* 0445D0 7F00FAA0 AFA20C14 */ sw $v0, 0xc14($sp) +/* 0445D4 7F00FAA4 AFA80C10 */ sw $t0, 0xc10($sp) +/* 0445D8 7F00FAA8 AFAE0014 */ sw $t6, 0x14($sp) +/* 0445DC 7F00FAAC AFAF0010 */ sw $t7, 0x10($sp) +/* 0445E0 7F00FAB0 AFA30C0C */ sw $v1, 0xc0c($sp) +/* 0445E4 7F00FAB4 02002025 */ move $a0, $s0 +/* 0445E8 7F00FAB8 24050037 */ li $a1, 55 +/* 0445EC 7F00FABC 240600D6 */ li $a2, 214 +/* 0445F0 7F00FAC0 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0445F4 7F00FAC4 24070163 */ li $a3, 355 +/* 0445F8 7F00FAC8 3C018003 */ lui $at, %hi(slider_007_mode_accuracy) +/* 0445FC 7F00FACC C42AA9A8 */ lwc1 $f10, %lo(slider_007_mode_accuracy)($at) +/* 044600 7F00FAD0 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 044604 7F00FAD4 44818000 */ mtc1 $at, $f16 +/* 044608 7F00FAD8 00408025 */ move $s0, $v0 +/* 04460C 7F00FADC 0C007DF8 */ jal sqrtf +/* 044610 7F00FAE0 46105303 */ div.s $f12, $f10, $f16 +/* 044614 7F00FAE4 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 044618 7F00FAE8 44819000 */ mtc1 $at, $f18 +/* 04461C 7F00FAEC 8FA30C0C */ lw $v1, 0xc0c($sp) +/* 044620 7F00FAF0 240B0064 */ li $t3, 100 +/* 044624 7F00FAF4 46120102 */ mul.s $f4, $f0, $f18 +/* 044628 7F00FAF8 2469001C */ addiu $t1, $v1, 0x1c +/* 04462C 7F00FAFC AFA90010 */ sw $t1, 0x10($sp) +/* 044630 7F00FB00 AFAB0014 */ sw $t3, 0x14($sp) +/* 044634 7F00FB04 02002025 */ move $a0, $s0 +/* 044638 7F00FB08 24050037 */ li $a1, 55 +/* 04463C 7F00FB0C 24660011 */ addiu $a2, $v1, 0x11 +/* 044640 7F00FB10 4600218D */ trunc.w.s $f6, $f4 +/* 044644 7F00FB14 44073000 */ mfc1 $a3, $f6 +/* 044648 7F00FB18 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04464C 7F00FB1C 24E70037 */ addiu $a3, $a3, 0x37 +/* 044650 7F00FB20 3C0C8007 */ lui $t4, %hi(highlight_enemy_accuracy) +/* 044654 7F00FB24 8D8C979C */ lw $t4, %lo(highlight_enemy_accuracy)($t4) +/* 044658 7F00FB28 00408025 */ move $s0, $v0 +/* 04465C 7F00FB2C 1180000C */ beqz $t4, .L7F00FB60 +/* 044660 7F00FB30 00000000 */ nop +/* 044664 7F00FB34 8FA30C0C */ lw $v1, 0xc0c($sp) +/* 044668 7F00FB38 24190032 */ li $t9, 50 +/* 04466C 7F00FB3C AFB90014 */ sw $t9, 0x14($sp) +/* 044670 7F00FB40 246D000E */ addiu $t5, $v1, 0xe +/* 044674 7F00FB44 AFAD0010 */ sw $t5, 0x10($sp) +/* 044678 7F00FB48 00402025 */ move $a0, $v0 +/* 04467C 7F00FB4C 24050037 */ li $a1, 55 +/* 044680 7F00FB50 240700C7 */ li $a3, 199 +/* 044684 7F00FB54 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 044688 7F00FB58 2466FFFF */ addiu $a2, $v1, -1 +/* 04468C 7F00FB5C 00408025 */ move $s0, $v0 +.L7F00FB60: +/* 044690 7F00FB60 0C001107 */ jal get_video2_settings_txtClipW +/* 044694 7F00FB64 00000000 */ nop +/* 044698 7F00FB68 0C00110B */ jal get_video2_settings_txtClipH +/* 04469C 7F00FB6C A7A20044 */ sh $v0, 0x44($sp) +/* 0446A0 7F00FB70 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 0446A4 7F00FB74 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 0446A8 7F00FB78 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 0446AC 7F00FB7C 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 0446B0 7F00FB80 87AE0044 */ lh $t6, 0x44($sp) +/* 0446B4 7F00FB84 240F00FF */ li $t7, 255 +/* 0446B8 7F00FB88 AFAF0018 */ sw $t7, 0x18($sp) +/* 0446BC 7F00FB8C 02002025 */ move $a0, $s0 +/* 0446C0 7F00FB90 27A50C10 */ addiu $a1, $sp, 0xc10 +/* 0446C4 7F00FB94 27A60C0C */ addiu $a2, $sp, 0xc0c +/* 0446C8 7F00FB98 8FA70C14 */ lw $a3, 0xc14($sp) +/* 0446CC 7F00FB9C AFA20020 */ sw $v0, 0x20($sp) +/* 0446D0 7F00FBA0 AFA00024 */ sw $zero, 0x24($sp) +/* 0446D4 7F00FBA4 AFA00028 */ sw $zero, 0x28($sp) +/* 0446D8 7F00FBA8 AFA80014 */ sw $t0, 0x14($sp) +/* 0446DC 7F00FBAC AFB80010 */ sw $t8, 0x10($sp) +/* 0446E0 7F00FBB0 0FC025D8 */ jal write_text_at_abs_coord +/* 0446E4 7F00FBB4 AFAE001C */ sw $t6, 0x1c($sp) +/* 0446E8 7F00FBB8 3C018003 */ lui $at, %hi(slider_007_mode_accuracy) +/* 0446EC 7F00FBBC C428A9A8 */ lwc1 $f8, %lo(slider_007_mode_accuracy)($at) +/* 0446F0 7F00FBC0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0446F4 7F00FBC4 44815000 */ mtc1 $at, $f10 +/* 0446F8 7F00FBC8 3C058005 */ lui $a1, %hi(aD_0) +/* 0446FC 7F00FBCC 00408025 */ move $s0, $v0 +/* 044700 7F00FBD0 460A4402 */ mul.s $f16, $f8, $f10 +/* 044704 7F00FBD4 24A50C34 */ addiu $a1, %lo(aD_0) # addiu $a1, $a1, 0xc34 +/* 044708 7F00FBD8 27A40054 */ addiu $a0, $sp, 0x54 +/* 04470C 7F00FBDC 4600848D */ trunc.w.s $f18, $f16 +/* 044710 7F00FBE0 44069000 */ mfc1 $a2, $f18 +/* 044714 7F00FBE4 0C002B25 */ jal sprintf +/* 044718 7F00FBE8 00000000 */ nop +/* 04471C 7F00FBEC 3C098004 */ lui $t1, %hi(ptrFirstFontTableLarge) +/* 044720 7F00FBF0 8D290EB4 */ lw $t1, %lo(ptrFirstFontTableLarge)($t1) +/* 044724 7F00FBF4 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 044728 7F00FBF8 AFA0004C */ sw $zero, 0x4c($sp) +/* 04472C 7F00FBFC AFA00050 */ sw $zero, 0x50($sp) +/* 044730 7F00FC00 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 044734 7F00FC04 27A40050 */ addiu $a0, $sp, 0x50 +/* 044738 7F00FC08 27A5004C */ addiu $a1, $sp, 0x4c +/* 04473C 7F00FC0C 27A60054 */ addiu $a2, $sp, 0x54 +/* 044740 7F00FC10 AFA00014 */ sw $zero, 0x14($sp) +/* 044744 7F00FC14 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 044748 7F00FC18 AFA90010 */ sw $t1, 0x10($sp) +/* 04474C 7F00FC1C 8FAB004C */ lw $t3, 0x4c($sp) +/* 044750 7F00FC20 240C011D */ li $t4, 285 +/* 044754 7F00FC24 240300C5 */ li $v1, 197 +/* 044758 7F00FC28 018B6823 */ subu $t5, $t4, $t3 +/* 04475C 7F00FC2C AFAD0C10 */ sw $t5, 0xc10($sp) +/* 044760 7F00FC30 0C001107 */ jal get_video2_settings_txtClipW +/* 044764 7F00FC34 AFA30C0C */ sw $v1, 0xc0c($sp) +/* 044768 7F00FC38 0C00110B */ jal get_video2_settings_txtClipH +/* 04476C 7F00FC3C A7A20044 */ sh $v0, 0x44($sp) +/* 044770 7F00FC40 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 044774 7F00FC44 3C188004 */ lui $t8, %hi(ptrFirstFontTableLarge) +/* 044778 7F00FC48 8F180EB4 */ lw $t8, %lo(ptrFirstFontTableLarge)($t8) +/* 04477C 7F00FC4C 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 044780 7F00FC50 87AF0044 */ lh $t7, 0x44($sp) +/* 044784 7F00FC54 240800FF */ li $t0, 255 +/* 044788 7F00FC58 AFA80018 */ sw $t0, 0x18($sp) +/* 04478C 7F00FC5C 02002025 */ move $a0, $s0 +/* 044790 7F00FC60 27A50C10 */ addiu $a1, $sp, 0xc10 +/* 044794 7F00FC64 27A60C0C */ addiu $a2, $sp, 0xc0c +/* 044798 7F00FC68 27A70054 */ addiu $a3, $sp, 0x54 +/* 04479C 7F00FC6C AFA20020 */ sw $v0, 0x20($sp) +/* 0447A0 7F00FC70 AFA00024 */ sw $zero, 0x24($sp) +/* 0447A4 7F00FC74 AFA00028 */ sw $zero, 0x28($sp) +/* 0447A8 7F00FC78 AFB80014 */ sw $t8, 0x14($sp) +/* 0447AC 7F00FC7C AFB90010 */ sw $t9, 0x10($sp) +/* 0447B0 7F00FC80 0FC025D8 */ jal write_text_at_abs_coord +/* 0447B4 7F00FC84 AFAF001C */ sw $t7, 0x1c($sp) +/* 0447B8 7F00FC88 00408025 */ move $s0, $v0 +/* 0447BC 7F00FC8C 0FC30776 */ jal get_textptr_for_textID +/* 0447C0 7F00FC90 34049C2C */ li $a0, 39980 +/* 0447C4 7F00FC94 240E0039 */ li $t6, 57 +/* 0447C8 7F00FC98 240300E6 */ li $v1, 230 +/* 0447CC 7F00FC9C 240A0102 */ li $t2, 258 +/* 0447D0 7F00FCA0 24090032 */ li $t1, 50 +/* 0447D4 7F00FCA4 AFA20C14 */ sw $v0, 0xc14($sp) +/* 0447D8 7F00FCA8 AFAE0C10 */ sw $t6, 0xc10($sp) +/* 0447DC 7F00FCAC AFA90014 */ sw $t1, 0x14($sp) +/* 0447E0 7F00FCB0 AFAA0010 */ sw $t2, 0x10($sp) +/* 0447E4 7F00FCB4 AFA30C0C */ sw $v1, 0xc0c($sp) +/* 0447E8 7F00FCB8 02002025 */ move $a0, $s0 +/* 0447EC 7F00FCBC 24050037 */ li $a1, 55 +/* 0447F0 7F00FCC0 240600F7 */ li $a2, 247 +/* 0447F4 7F00FCC4 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0447F8 7F00FCC8 24070163 */ li $a3, 355 +/* 0447FC 7F00FCCC 3C018003 */ lui $at, %hi(slider_007_mode_damage) +/* 044800 7F00FCD0 C424A9AC */ lwc1 $f4, %lo(slider_007_mode_damage)($at) +/* 044804 7F00FCD4 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 044808 7F00FCD8 44813000 */ mtc1 $at, $f6 +/* 04480C 7F00FCDC 00408025 */ move $s0, $v0 +/* 044810 7F00FCE0 0C007DF8 */ jal sqrtf +/* 044814 7F00FCE4 46062303 */ div.s $f12, $f4, $f6 +/* 044818 7F00FCE8 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 04481C 7F00FCEC 44814000 */ mtc1 $at, $f8 +/* 044820 7F00FCF0 8FA30C0C */ lw $v1, 0xc0c($sp) +/* 044824 7F00FCF4 240D0064 */ li $t5, 100 +/* 044828 7F00FCF8 46080282 */ mul.s $f10, $f0, $f8 +/* 04482C 7F00FCFC 246B001C */ addiu $t3, $v1, 0x1c +/* 044830 7F00FD00 AFAB0010 */ sw $t3, 0x10($sp) +/* 044834 7F00FD04 AFAD0014 */ sw $t5, 0x14($sp) +/* 044838 7F00FD08 02002025 */ move $a0, $s0 +/* 04483C 7F00FD0C 24050037 */ li $a1, 55 +/* 044840 7F00FD10 24660011 */ addiu $a2, $v1, 0x11 +/* 044844 7F00FD14 4600540D */ trunc.w.s $f16, $f10 +/* 044848 7F00FD18 44078000 */ mfc1 $a3, $f16 +/* 04484C 7F00FD1C 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 044850 7F00FD20 24E70037 */ addiu $a3, $a3, 0x37 +/* 044854 7F00FD24 3C198007 */ lui $t9, %hi(highlight_enemy_damage) +/* 044858 7F00FD28 8F3997A0 */ lw $t9, %lo(highlight_enemy_damage)($t9) +/* 04485C 7F00FD2C 00408025 */ move $s0, $v0 +/* 044860 7F00FD30 1320000C */ beqz $t9, .L7F00FD64 +/* 044864 7F00FD34 00000000 */ nop +/* 044868 7F00FD38 8FA30C0C */ lw $v1, 0xc0c($sp) +/* 04486C 7F00FD3C 24080032 */ li $t0, 50 +/* 044870 7F00FD40 AFA80014 */ sw $t0, 0x14($sp) +/* 044874 7F00FD44 2478000E */ addiu $t8, $v1, 0xe +/* 044878 7F00FD48 AFB80010 */ sw $t8, 0x10($sp) +/* 04487C 7F00FD4C 00402025 */ move $a0, $v0 +/* 044880 7F00FD50 24050037 */ li $a1, 55 +/* 044884 7F00FD54 240700C7 */ li $a3, 199 +/* 044888 7F00FD58 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04488C 7F00FD5C 2466FFFF */ addiu $a2, $v1, -1 +/* 044890 7F00FD60 00408025 */ move $s0, $v0 +.L7F00FD64: +/* 044894 7F00FD64 0C001107 */ jal get_video2_settings_txtClipW +/* 044898 7F00FD68 00000000 */ nop +/* 04489C 7F00FD6C 0C00110B */ jal get_video2_settings_txtClipH +/* 0448A0 7F00FD70 A7A20044 */ sh $v0, 0x44($sp) +/* 0448A4 7F00FD74 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableLarge) +/* 0448A8 7F00FD78 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 0448AC 7F00FD7C 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 0448B0 7F00FD80 8DEF0EB8 */ lw $t7, %lo(ptrSecondFontTableLarge)($t7) +/* 0448B4 7F00FD84 87A90044 */ lh $t1, 0x44($sp) +/* 0448B8 7F00FD88 240A00FF */ li $t2, 255 +/* 0448BC 7F00FD8C AFAA0018 */ sw $t2, 0x18($sp) +/* 0448C0 7F00FD90 02002025 */ move $a0, $s0 +/* 0448C4 7F00FD94 27A50C10 */ addiu $a1, $sp, 0xc10 +/* 0448C8 7F00FD98 27A60C0C */ addiu $a2, $sp, 0xc0c +/* 0448CC 7F00FD9C 8FA70C14 */ lw $a3, 0xc14($sp) +/* 0448D0 7F00FDA0 AFA20020 */ sw $v0, 0x20($sp) +/* 0448D4 7F00FDA4 AFA00024 */ sw $zero, 0x24($sp) +/* 0448D8 7F00FDA8 AFA00028 */ sw $zero, 0x28($sp) +/* 0448DC 7F00FDAC AFAE0014 */ sw $t6, 0x14($sp) +/* 0448E0 7F00FDB0 AFAF0010 */ sw $t7, 0x10($sp) +/* 0448E4 7F00FDB4 0FC025D8 */ jal write_text_at_abs_coord +/* 0448E8 7F00FDB8 AFA9001C */ sw $t1, 0x1c($sp) +/* 0448EC 7F00FDBC 3C018003 */ lui $at, %hi(slider_007_mode_damage) +/* 0448F0 7F00FDC0 C432A9AC */ lwc1 $f18, %lo(slider_007_mode_damage)($at) +/* 0448F4 7F00FDC4 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0448F8 7F00FDC8 44812000 */ mtc1 $at, $f4 +/* 0448FC 7F00FDCC 3C058005 */ lui $a1, %hi(aD_1) +/* 044900 7F00FDD0 00408025 */ move $s0, $v0 +/* 044904 7F00FDD4 46049182 */ mul.s $f6, $f18, $f4 +/* 044908 7F00FDD8 24A50C3C */ addiu $a1, %lo(aD_1) # addiu $a1, $a1, 0xc3c +/* 04490C 7F00FDDC 27A40054 */ addiu $a0, $sp, 0x54 +/* 044910 7F00FDE0 4600320D */ trunc.w.s $f8, $f6 +/* 044914 7F00FDE4 44064000 */ mfc1 $a2, $f8 +/* 044918 7F00FDE8 0C002B25 */ jal sprintf +/* 04491C 7F00FDEC 00000000 */ nop +/* 044920 7F00FDF0 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) +/* 044924 7F00FDF4 8D6B0EB4 */ lw $t3, %lo(ptrFirstFontTableLarge)($t3) +/* 044928 7F00FDF8 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 04492C 7F00FDFC AFA0004C */ sw $zero, 0x4c($sp) +/* 044930 7F00FE00 AFA00050 */ sw $zero, 0x50($sp) +/* 044934 7F00FE04 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 044938 7F00FE08 27A40050 */ addiu $a0, $sp, 0x50 +/* 04493C 7F00FE0C 27A5004C */ addiu $a1, $sp, 0x4c +/* 044940 7F00FE10 27A60054 */ addiu $a2, $sp, 0x54 +/* 044944 7F00FE14 AFA00014 */ sw $zero, 0x14($sp) +/* 044948 7F00FE18 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04494C 7F00FE1C AFAB0010 */ sw $t3, 0x10($sp) +/* 044950 7F00FE20 8FAD004C */ lw $t5, 0x4c($sp) +/* 044954 7F00FE24 2419011D */ li $t9, 285 +/* 044958 7F00FE28 240300E6 */ li $v1, 230 +/* 04495C 7F00FE2C 032DC023 */ subu $t8, $t9, $t5 +/* 044960 7F00FE30 AFB80C10 */ sw $t8, 0xc10($sp) +/* 044964 7F00FE34 0C001107 */ jal get_video2_settings_txtClipW +/* 044968 7F00FE38 AFA30C0C */ sw $v1, 0xc0c($sp) +/* 04496C 7F00FE3C 0C00110B */ jal get_video2_settings_txtClipH +/* 044970 7F00FE40 A7A20044 */ sh $v0, 0x44($sp) +/* 044974 7F00FE44 3C088004 */ lui $t0, %hi(ptrSecondFontTableLarge) +/* 044978 7F00FE48 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) +/* 04497C 7F00FE4C 8DEF0EB4 */ lw $t7, %lo(ptrFirstFontTableLarge)($t7) +/* 044980 7F00FE50 8D080EB8 */ lw $t0, %lo(ptrSecondFontTableLarge)($t0) +/* 044984 7F00FE54 87AA0044 */ lh $t2, 0x44($sp) +/* 044988 7F00FE58 240E00FF */ li $t6, 255 +/* 04498C 7F00FE5C AFAE0018 */ sw $t6, 0x18($sp) +/* 044990 7F00FE60 02002025 */ move $a0, $s0 +/* 044994 7F00FE64 27A50C10 */ addiu $a1, $sp, 0xc10 +/* 044998 7F00FE68 27A60C0C */ addiu $a2, $sp, 0xc0c +/* 04499C 7F00FE6C 27A70054 */ addiu $a3, $sp, 0x54 +/* 0449A0 7F00FE70 AFA20020 */ sw $v0, 0x20($sp) +/* 0449A4 7F00FE74 AFA00024 */ sw $zero, 0x24($sp) +/* 0449A8 7F00FE78 AFA00028 */ sw $zero, 0x28($sp) +/* 0449AC 7F00FE7C AFAF0014 */ sw $t7, 0x14($sp) +/* 0449B0 7F00FE80 AFA80010 */ sw $t0, 0x10($sp) +/* 0449B4 7F00FE84 0FC025D8 */ jal write_text_at_abs_coord +/* 0449B8 7F00FE88 AFAA001C */ sw $t2, 0x1c($sp) +/* 0449BC 7F00FE8C 00408025 */ move $s0, $v0 +/* 0449C0 7F00FE90 0FC30776 */ jal get_textptr_for_textID +/* 0449C4 7F00FE94 34049C29 */ li $a0, 39977 +/* 0449C8 7F00FE98 24090039 */ li $t1, 57 +/* 0449CC 7F00FE9C 24030107 */ li $v1, 263 +/* 0449D0 7F00FEA0 240C0123 */ li $t4, 291 +/* 0449D4 7F00FEA4 240B0032 */ li $t3, 50 +/* 0449D8 7F00FEA8 AFA20C14 */ sw $v0, 0xc14($sp) +/* 0449DC 7F00FEAC AFA90C10 */ sw $t1, 0xc10($sp) +/* 0449E0 7F00FEB0 AFAB0014 */ sw $t3, 0x14($sp) +/* 0449E4 7F00FEB4 AFAC0010 */ sw $t4, 0x10($sp) +/* 0449E8 7F00FEB8 AFA30C0C */ sw $v1, 0xc0c($sp) +/* 0449EC 7F00FEBC 02002025 */ move $a0, $s0 +/* 0449F0 7F00FEC0 24050037 */ li $a1, 55 +/* 0449F4 7F00FEC4 24060118 */ li $a2, 280 +/* 0449F8 7F00FEC8 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0449FC 7F00FECC 24070163 */ li $a3, 355 +/* 044A00 7F00FED0 3C018003 */ lui $at, %hi(slider_007_mode_reaction) +/* 044A04 7F00FED4 C42AA9A0 */ lwc1 $f10, %lo(slider_007_mode_reaction)($at) +/* 044A08 7F00FED8 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 044A0C 7F00FEDC 44818000 */ mtc1 $at, $f16 +/* 044A10 7F00FEE0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 044A14 7F00FEE4 44812000 */ mtc1 $at, $f4 +/* 044A18 7F00FEE8 46105482 */ mul.s $f18, $f10, $f16 +/* 044A1C 7F00FEEC 8FA30C0C */ lw $v1, 0xc0c($sp) +/* 044A20 7F00FEF0 24180064 */ li $t8, 100 +/* 044A24 7F00FEF4 AFB80014 */ sw $t8, 0x14($sp) +/* 044A28 7F00FEF8 246D001C */ addiu $t5, $v1, 0x1c +/* 044A2C 7F00FEFC AFAD0010 */ sw $t5, 0x10($sp) +/* 044A30 7F00FF00 00402025 */ move $a0, $v0 +/* 044A34 7F00FF04 46049182 */ mul.s $f6, $f18, $f4 +/* 044A38 7F00FF08 24050037 */ li $a1, 55 +/* 044A3C 7F00FF0C 24660011 */ addiu $a2, $v1, 0x11 +/* 044A40 7F00FF10 4600320D */ trunc.w.s $f8, $f6 +/* 044A44 7F00FF14 44074000 */ mfc1 $a3, $f8 +/* 044A48 7F00FF18 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 044A4C 7F00FF1C 24E70037 */ addiu $a3, $a3, 0x37 +/* 044A50 7F00FF20 3C088007 */ lui $t0, %hi(highlight_enemy_reaction) +/* 044A54 7F00FF24 8D089794 */ lw $t0, %lo(highlight_enemy_reaction)($t0) +/* 044A58 7F00FF28 00408025 */ move $s0, $v0 +/* 044A5C 7F00FF2C 1100000C */ beqz $t0, .L7F00FF60 +/* 044A60 7F00FF30 00000000 */ nop +/* 044A64 7F00FF34 8FA30C0C */ lw $v1, 0xc0c($sp) +/* 044A68 7F00FF38 240E0032 */ li $t6, 50 +/* 044A6C 7F00FF3C AFAE0014 */ sw $t6, 0x14($sp) +/* 044A70 7F00FF40 246F000E */ addiu $t7, $v1, 0xe +/* 044A74 7F00FF44 AFAF0010 */ sw $t7, 0x10($sp) +/* 044A78 7F00FF48 00402025 */ move $a0, $v0 +/* 044A7C 7F00FF4C 24050037 */ li $a1, 55 +/* 044A80 7F00FF50 240700C7 */ li $a3, 199 +/* 044A84 7F00FF54 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 044A88 7F00FF58 2466FFFF */ addiu $a2, $v1, -1 +/* 044A8C 7F00FF5C 00408025 */ move $s0, $v0 +.L7F00FF60: +/* 044A90 7F00FF60 0C001107 */ jal get_video2_settings_txtClipW +/* 044A94 7F00FF64 00000000 */ nop +/* 044A98 7F00FF68 0C00110B */ jal get_video2_settings_txtClipH +/* 044A9C 7F00FF6C A7A20044 */ sh $v0, 0x44($sp) +/* 044AA0 7F00FF70 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableLarge) +/* 044AA4 7F00FF74 3C098004 */ lui $t1, %hi(ptrFirstFontTableLarge) +/* 044AA8 7F00FF78 8D290EB4 */ lw $t1, %lo(ptrFirstFontTableLarge)($t1) +/* 044AAC 7F00FF7C 8D4A0EB8 */ lw $t2, %lo(ptrSecondFontTableLarge)($t2) +/* 044AB0 7F00FF80 87AB0044 */ lh $t3, 0x44($sp) +/* 044AB4 7F00FF84 240C00FF */ li $t4, 255 +/* 044AB8 7F00FF88 AFAC0018 */ sw $t4, 0x18($sp) +/* 044ABC 7F00FF8C 02002025 */ move $a0, $s0 +/* 044AC0 7F00FF90 27A50C10 */ addiu $a1, $sp, 0xc10 +/* 044AC4 7F00FF94 27A60C0C */ addiu $a2, $sp, 0xc0c +/* 044AC8 7F00FF98 8FA70C14 */ lw $a3, 0xc14($sp) +/* 044ACC 7F00FF9C AFA20020 */ sw $v0, 0x20($sp) +/* 044AD0 7F00FFA0 AFA00024 */ sw $zero, 0x24($sp) +/* 044AD4 7F00FFA4 AFA00028 */ sw $zero, 0x28($sp) +/* 044AD8 7F00FFA8 AFA90014 */ sw $t1, 0x14($sp) +/* 044ADC 7F00FFAC AFAA0010 */ sw $t2, 0x10($sp) +/* 044AE0 7F00FFB0 0FC025D8 */ jal write_text_at_abs_coord +/* 044AE4 7F00FFB4 AFAB001C */ sw $t3, 0x1c($sp) +/* 044AE8 7F00FFB8 3C018003 */ lui $at, %hi(slider_007_mode_reaction) +/* 044AEC 7F00FFBC C42AA9A0 */ lwc1 $f10, %lo(slider_007_mode_reaction)($at) +/* 044AF0 7F00FFC0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 044AF4 7F00FFC4 44818000 */ mtc1 $at, $f16 +/* 044AF8 7F00FFC8 3C058005 */ lui $a1, %hi(aD_2) +/* 044AFC 7F00FFCC 00408025 */ move $s0, $v0 +/* 044B00 7F00FFD0 46105482 */ mul.s $f18, $f10, $f16 +/* 044B04 7F00FFD4 24A50C44 */ addiu $a1, %lo(aD_2) # addiu $a1, $a1, 0xc44 +/* 044B08 7F00FFD8 27A40054 */ addiu $a0, $sp, 0x54 +/* 044B0C 7F00FFDC 4600910D */ trunc.w.s $f4, $f18 +/* 044B10 7F00FFE0 44062000 */ mfc1 $a2, $f4 +/* 044B14 7F00FFE4 0C002B25 */ jal sprintf +/* 044B18 7F00FFE8 00000000 */ nop +/* 044B1C 7F00FFEC 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 044B20 7F00FFF0 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 044B24 7F00FFF4 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 044B28 7F00FFF8 AFA0004C */ sw $zero, 0x4c($sp) +/* 044B2C 7F00FFFC AFA00050 */ sw $zero, 0x50($sp) +/* 044B30 7F010000 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 044B34 7F010004 27A40050 */ addiu $a0, $sp, 0x50 +/* 044B38 7F010008 27A5004C */ addiu $a1, $sp, 0x4c +/* 044B3C 7F01000C 27A60054 */ addiu $a2, $sp, 0x54 +/* 044B40 7F010010 AFA00014 */ sw $zero, 0x14($sp) +/* 044B44 7F010014 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 044B48 7F010018 AFAD0010 */ sw $t5, 0x10($sp) +/* 044B4C 7F01001C 8FB8004C */ lw $t8, 0x4c($sp) +/* 044B50 7F010020 2408011D */ li $t0, 285 +/* 044B54 7F010024 24030107 */ li $v1, 263 +/* 044B58 7F010028 01187823 */ subu $t7, $t0, $t8 +/* 044B5C 7F01002C AFAF0C10 */ sw $t7, 0xc10($sp) +/* 044B60 7F010030 0C001107 */ jal get_video2_settings_txtClipW +/* 044B64 7F010034 AFA30C0C */ sw $v1, 0xc0c($sp) +/* 044B68 7F010038 0C00110B */ jal get_video2_settings_txtClipH +/* 044B6C 7F01003C A7A20044 */ sh $v0, 0x44($sp) +/* 044B70 7F010040 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableLarge) +/* 044B74 7F010044 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 044B78 7F010048 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 044B7C 7F01004C 8DCE0EB8 */ lw $t6, %lo(ptrSecondFontTableLarge)($t6) +/* 044B80 7F010050 87AC0044 */ lh $t4, 0x44($sp) +/* 044B84 7F010054 240900FF */ li $t1, 255 +/* 044B88 7F010058 AFA90018 */ sw $t1, 0x18($sp) +/* 044B8C 7F01005C 02002025 */ move $a0, $s0 +/* 044B90 7F010060 27A50C10 */ addiu $a1, $sp, 0xc10 +/* 044B94 7F010064 27A60C0C */ addiu $a2, $sp, 0xc0c +/* 044B98 7F010068 27A70054 */ addiu $a3, $sp, 0x54 +/* 044B9C 7F01006C AFA20020 */ sw $v0, 0x20($sp) +/* 044BA0 7F010070 AFA00024 */ sw $zero, 0x24($sp) +/* 044BA4 7F010074 AFA00028 */ sw $zero, 0x28($sp) +/* 044BA8 7F010078 AFAA0014 */ sw $t2, 0x14($sp) +/* 044BAC 7F01007C AFAE0010 */ sw $t6, 0x10($sp) +/* 044BB0 7F010080 0FC025D8 */ jal write_text_at_abs_coord +/* 044BB4 7F010084 AFAC001C */ sw $t4, 0x1c($sp) +/* 044BB8 7F010088 0FC02820 */ jal add_tab1_start +/* 044BBC 7F01008C 00402025 */ move $a0, $v0 +/* 044BC0 7F010090 0FC0288E */ jal add_tab3_previous +/* 044BC4 7F010094 00402025 */ move $a0, $v0 +/* 044BC8 7F010098 0FC02905 */ jal add_tab2_next +/* 044BCC 7F01009C 00402025 */ move $a0, $v0 +/* 044BD0 7F0100A0 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 044BD4 7F0100A4 00402025 */ move $a0, $v0 +/* 044BD8 7F0100A8 8FBF003C */ lw $ra, 0x3c($sp) +/* 044BDC 7F0100AC 8FB00038 */ lw $s0, 0x38($sp) +/* 044BE0 7F0100B0 27BD0C18 */ addiu $sp, $sp, 0xc18 +/* 044BE4 7F0100B4 03E00008 */ jr $ra +/* 044BE8 7F0100B8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 get_player_control_style(int playernum) { + return (&controlstyle_player)[playernum]; +} +#else +GLOBAL_ASM( +.text +glabel get_player_control_style +/* 044BEC 7F0100BC 00047080 */ sll $t6, $a0, 2 +/* 044BF0 7F0100C0 3C028007 */ lui $v0, %hi(controlstyle_player) +/* 044BF4 7F0100C4 004E1021 */ addu $v0, $v0, $t6 +/* 044BF8 7F0100C8 03E00008 */ jr $ra +/* 044BFC 7F0100CC 8C4297B8 */ lw $v0, %lo(controlstyle_player)($v0) +) +#endif + + + + + + +s32 check_if_mp_stage_unlocked(s32 stage) +{ + s32 players; + if (!multi_stage_setups[stage].min_player) + { + return 0; + } + players=get_selected_num_players(); + if (multi_stage_setups[stage].max_player < players) + { + return 0; + } + if (multi_stage_setups[stage].unlock_after == -1) + { + return 1; + } + if (isStageUnlockedAtDifficulty(selected_folder_num, multi_stage_setups[stage].unlock_after, DIFFICULTY_AGENT)) + { + return 1; + } + return 0; +} + + + + + +#ifdef NONMATCHING +void *select_game_length(void) +{ + s32 temp_t1; + s32 temp_t2; + s32 phi_t2; + + if (scenario != 2) + { + game_length = (s32) ((s32) (game_length + 1) % 7); + return &game_length; + } + temp_t1 = game_length + 1; + temp_t2 = temp_t1 & 3; + phi_t2 = temp_t2; + if (temp_t1 < 0) + { + phi_t2 = temp_t2; + if (temp_t2 != 0) + { + phi_t2 = temp_t2 + -4; + } + } + game_length = (s32) phi_t2; + return &game_length; +} +#else +GLOBAL_ASM( +.text +glabel select_game_length +/* 044CA0 7F010170 3C0E8003 */ lui $t6, %hi(scenario) +/* 044CA4 7F010174 8DCEB540 */ lw $t6, %lo(scenario)($t6) +/* 044CA8 7F010178 24010002 */ li $at, 2 +/* 044CAC 7F01017C 3C028003 */ lui $v0, %hi(game_length) +/* 044CB0 7F010180 11C1000B */ beq $t6, $at, .L7F0101B0 +/* 044CB4 7F010184 2442B538 */ addiu $v0, %lo(game_length) # addiu $v0, $v0, -0x4ac8 +/* 044CB8 7F010188 3C028003 */ lui $v0, %hi(game_length) +/* 044CBC 7F01018C 2442B538 */ addiu $v0, %lo(game_length) # addiu $v0, $v0, -0x4ac8 +/* 044CC0 7F010190 8C4F0000 */ lw $t7, ($v0) +/* 044CC4 7F010194 24010007 */ li $at, 7 +/* 044CC8 7F010198 25F80001 */ addiu $t8, $t7, 1 +/* 044CCC 7F01019C 0301001A */ div $zero, $t8, $at +/* 044CD0 7F0101A0 0000C810 */ mfhi $t9 +/* 044CD4 7F0101A4 AC590000 */ sw $t9, ($v0) +/* 044CD8 7F0101A8 03E00008 */ jr $ra +/* 044CDC 7F0101AC 00000000 */ nop +.L7F0101B0: +/* 044CE0 7F0101B0 8C480000 */ lw $t0, ($v0) +/* 044CE4 7F0101B4 25090001 */ addiu $t1, $t0, 1 +/* 044CE8 7F0101B8 05210004 */ bgez $t1, .L7F0101CC +/* 044CEC 7F0101BC 312A0003 */ andi $t2, $t1, 3 +/* 044CF0 7F0101C0 11400002 */ beqz $t2, .L7F0101CC +/* 044CF4 7F0101C4 00000000 */ nop +/* 044CF8 7F0101C8 254AFFFC */ addiu $t2, $t2, -4 +.L7F0101CC: +/* 044CFC 7F0101CC AC4A0000 */ sw $t2, ($v0) +/* 044D00 7F0101D0 03E00008 */ jr $ra +/* 044D04 7F0101D4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void copy_aim_settings_to_playerdata(void) +{ + player1_player_data.autoaim = mp_sight_adjust_table[aim_sight_adjustment].autoaim; + player1_player_data.sight = mp_sight_adjust_table[aim_sight_adjustment].sight; + player2_player_data.autoaim = mp_sight_adjust_table[aim_sight_adjustment].autoaim; + player2_player_data.sight = mp_sight_adjust_table[aim_sight_adjustment].sight; + player3_player_data.autoaim = mp_sight_adjust_table[aim_sight_adjustment].autoaim; + player3_player_data.sight = mp_sight_adjust_table[aim_sight_adjustment].sight; + player4_player_data.autoaim = mp_sight_adjust_table[aim_sight_adjustment].autoaim; + player4_player_data.sight = mp_sight_adjust_table[aim_sight_adjustment].sight; +} +#else +GLOBAL_ASM( +.text +glabel copy_aim_settings_to_playerdata +/* 044D08 7F0101D8 3C0E8003 */ lui $t6, %hi(aim_sight_adjustment) +/* 044D0C 7F0101DC 8DCEB53C */ lw $t6, %lo(aim_sight_adjustment)($t6) +/* 044D10 7F0101E0 3C188003 */ lui $t8, %hi(mp_sight_adjust_table) +/* 044D14 7F0101E4 2718B510 */ addiu $t8, %lo(mp_sight_adjust_table) # addiu $t8, $t8, -0x4af0 +/* 044D18 7F0101E8 000E7880 */ sll $t7, $t6, 2 +/* 044D1C 7F0101EC 01F81021 */ addu $v0, $t7, $t8 +/* 044D20 7F0101F0 90430003 */ lbu $v1, 3($v0) +/* 044D24 7F0101F4 3C018008 */ lui $at, %hi(player1_player_data+0x6A) +/* 044D28 7F0101F8 A0239F5A */ sb $v1, %lo(player1_player_data+0x6A)($at) +/* 044D2C 7F0101FC 90440002 */ lbu $a0, 2($v0) +/* 044D30 7F010200 3C018008 */ lui $at, %hi(player1_player_data+0x6B) +/* 044D34 7F010204 A0249F5B */ sb $a0, %lo(player1_player_data+0x6B)($at) +/* 044D38 7F010208 3C018008 */ lui $at, %hi(player2_player_data+0x6A) +/* 044D3C 7F01020C A0239FCA */ sb $v1, %lo(player2_player_data+0x6A)($at) +/* 044D40 7F010210 3C018008 */ lui $at, %hi(player2_player_data+0x6B) +/* 044D44 7F010214 A0249FCB */ sb $a0, %lo(player2_player_data+0x6B)($at) +/* 044D48 7F010218 3C018008 */ lui $at, %hi(player3_player_data+0x6A) +/* 044D4C 7F01021C A023A03A */ sb $v1, %lo(player3_player_data+0x6A)($at) +/* 044D50 7F010220 3C018008 */ lui $at, %hi(player3_player_data+0x6B) +/* 044D54 7F010224 A024A03B */ sb $a0, %lo(player3_player_data+0x6B)($at) +/* 044D58 7F010228 3C018008 */ lui $at, %hi(player4_player_data+0x6A) +/* 044D5C 7F01022C A023A0AA */ sb $v1, %lo(player4_player_data+0x6A)($at) +/* 044D60 7F010230 3C018008 */ lui $at, %hi(player4_player_data+0x6B) +/* 044D64 7F010234 03E00008 */ jr $ra +/* 044D68 7F010238 A024A0AB */ sb $a0, %lo(player4_player_data+0x6B)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void advance_aim_settings_selection(void) +{ + s32 temp_t7; + s32 temp_t8; + s32 phi_t8; + + temp_t7 = aim_sight_adjustment + 1; + temp_t8 = temp_t7 & 3; + phi_t8 = temp_t8; + if (temp_t7 < 0) + { + phi_t8 = temp_t8; + if (temp_t8 != 0) + { + phi_t8 = temp_t8 + -4; + } + } + aim_sight_adjustment = (s32) phi_t8; + copy_aim_settings_to_playerdata(); +} +#else +GLOBAL_ASM( +.text +glabel advance_aim_settings_selection +/* 044D6C 7F01023C 3C028003 */ lui $v0, %hi(aim_sight_adjustment) +/* 044D70 7F010240 2442B53C */ addiu $v0, %lo(aim_sight_adjustment) # addiu $v0, $v0, -0x4ac4 +/* 044D74 7F010244 8C4E0000 */ lw $t6, ($v0) +/* 044D78 7F010248 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 044D7C 7F01024C AFBF0014 */ sw $ra, 0x14($sp) +/* 044D80 7F010250 25CF0001 */ addiu $t7, $t6, 1 +/* 044D84 7F010254 05E10004 */ bgez $t7, .L7F010268 +/* 044D88 7F010258 31F80003 */ andi $t8, $t7, 3 +/* 044D8C 7F01025C 13000002 */ beqz $t8, .L7F010268 +/* 044D90 7F010260 00000000 */ nop +/* 044D94 7F010264 2718FFFC */ addiu $t8, $t8, -4 +.L7F010268: +/* 044D98 7F010268 0FC04076 */ jal copy_aim_settings_to_playerdata +/* 044D9C 7F01026C AC580000 */ sw $t8, ($v0) +/* 044DA0 7F010270 8FBF0014 */ lw $ra, 0x14($sp) +/* 044DA4 7F010274 27BD0018 */ addiu $sp, $sp, 0x18 +/* 044DA8 7F010278 03E00008 */ jr $ra +/* 044DAC 7F01027C 00000000 */ nop +) +#endif + + + + + +void unlock_all_mp_chars(void) { + num_chars_selectable_mp = 0x40; +} + + +s32 get_selected_num_players(void) +{ + if (gamemode == GAMEMODE_MULTI) + { + return selected_num_players; + } + return 1; +} + +u16 get_player_mp_char_head(s32 player) +{ + if ((&player_1_char)[player] < 0) + { + return mp_chr_setup[player].head; + } + return mp_chr_setup[(&player_1_char)[player]].head; +} + +u8 get_player_mp_char_gender(int player) +{ + if ((&player_1_char)[player] < 0) + { + return mp_chr_setup[player].gender; + } + return mp_chr_setup[(&player_1_char)[player]].gender; +} + +u16 get_player_mp_char_body(int player) +{ + if ((&player_1_char)[player] < 0) + { + return mp_chr_setup[player].body; + } + return mp_chr_setup[(&player_1_char)[player]].body; +} + +f32 get_player_mp_handicap(int player) +{ + return MP_handicap_table[(&handicap_player1)[player]].damage_modifier; +} + +f32 get_player_mp_char_height(int player) +{ + if ((&player_1_char)[player] < 0) { + return mp_chr_setup[player].pov; + } + return mp_chr_setup[(&player_1_char)[player]].pov; +} + +int get_mp_timelimit(void) { + return multi_game_lengths[game_length].time; +} + +int get_mp_pointlimit(void) { + return multi_game_lengths[game_length].points; +} + +void reset_mp_options_for_scenario(MPSCENARIOS scenarioid) +{ + scenario = scenarioid; + + unlock_stage_select = 1; + unlock_game_length = 1; + unlock_chars = 1; + unlock_weapon_select = 1; + unlock_handicap = 1; + unlock_control_style = 1; + unlock_aim_sight = 1; + + + switch(scenario) + { + case SCENARIO_NORMAL: + case SCENARIO_2v2: + case SCENARIO_3v1: + case SCENARIO_2v1: + if (6 < game_length) + { + game_length = 2; + } + if (0xd < getMPWeaponSet()) + { + setMPWeaponSet(0xd); + } + break; + case SCENARIO_YOLT: + game_length = 7; + + if (0xd < getMPWeaponSet()) + { + setMPWeaponSet(0xd); + } + unlock_game_length = 0; + break; + case SCENARIO_TLD: + if (3 < game_length) + { + game_length = 2; + } + if (0xd < getMPWeaponSet()) + { + setMPWeaponSet(0xd); + } + break; + case SCENARIO_MWTGG: + if (6 < game_length) + { + game_length = 2; + } + setMPWeaponSet(0xd); + unlock_weapon_select = 0; + break; + case SCENARIO_LTK: + if (6 < game_length) + { + game_length = 2; + } + setMPWeaponSet(1); + unlock_handicap = 0; + } + return; +} + + + + + + +#ifdef NONMATCHING +void init_mp_options_for_scenario(s32 numplayers) +{ + s32 lVar1; + int iVar2; + int *piVar3; + + if (numplayers < 2) { + numplayers = 2; + } + selected_num_players = (u32)numplayers; + lVar1 = 0; + if (0 < numplayers) { + piVar3 = &player_1_char; + iVar2 = 0; + do { + if (*piVar3 == -1) { + *piVar3 = (int)lVar1; + *(s32 *)((int)&handicap_player1 + iVar2) = 5; + } + lVar1 = (s32)((int)lVar1 + 1); + if ((2 < numplayers) && (3 < *(int *)((int)&controlstyle_player + iVar2))) { + *(int *)((int)&controlstyle_player + iVar2) = 0; + } + iVar2 += 4; + piVar3 = piVar3 + 1; + } while (lVar1 < numplayers); + } + if (((s32)(s32)(u8)mp_stage_playercounts[scenario].max < numplayers) || + (numplayers < (s32)(s32)(u8)mp_stage_playercounts[scenario].min)) { + reset_mp_options_for_scenario(0); + numplayers = (s32)(int)selected_num_players; + } + if ((s32)multi_stage_setups[MP_stage_selected].max_player < numplayers) { + MP_stage_selected = MP_STAGE_TEMPLE; + } + return; +} +#else +GLOBAL_ASM( +.text +glabel init_mp_options_for_scenario +/* 045138 7F010608 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 04513C 7F01060C AFB00018 */ sw $s0, 0x18($sp) +/* 045140 7F010610 28810002 */ slti $at, $a0, 2 +/* 045144 7F010614 00808025 */ move $s0, $a0 +/* 045148 7F010618 10200002 */ beqz $at, .L7F010624 +/* 04514C 7F01061C AFBF001C */ sw $ra, 0x1c($sp) +/* 045150 7F010620 24100002 */ li $s0, 2 +.L7F010624: +/* 045154 7F010624 3C028003 */ lui $v0, %hi(selected_num_players) +/* 045158 7F010628 2442B520 */ addiu $v0, %lo(selected_num_players) # addiu $v0, $v0, -0x4ae0 +/* 04515C 7F01062C AC500000 */ sw $s0, ($v0) +/* 045160 7F010630 00001825 */ move $v1, $zero +/* 045164 7F010634 1A00001C */ blez $s0, .L7F0106A8 +/* 045168 7F010638 02003025 */ move $a2, $s0 +/* 04516C 7F01063C 3C058003 */ lui $a1, %hi(player_1_char) +/* 045170 7F010640 3C0A8007 */ lui $t2, %hi(controlstyle_player) +/* 045174 7F010644 3C088007 */ lui $t0, %hi(handicap_player1) +/* 045178 7F010648 250897A8 */ addiu $t0, %lo(handicap_player1) # addiu $t0, $t0, -0x6858 +/* 04517C 7F01064C 254A97B8 */ addiu $t2, %lo(controlstyle_player) # addiu $t2, $t2, -0x6848 +/* 045180 7F010650 24A5B524 */ addiu $a1, %lo(player_1_char) # addiu $a1, $a1, -0x4adc +/* 045184 7F010654 00002025 */ move $a0, $zero +/* 045188 7F010658 24090005 */ li $t1, 5 +/* 04518C 7F01065C 2407FFFF */ li $a3, -1 +.L7F010660: +/* 045190 7F010660 8CAE0000 */ lw $t6, ($a1) +/* 045194 7F010664 01047821 */ addu $t7, $t0, $a0 +/* 045198 7F010668 2A010003 */ slti $at, $s0, 3 +/* 04519C 7F01066C 14EE0003 */ bne $a3, $t6, .L7F01067C +/* 0451A0 7F010670 01441021 */ addu $v0, $t2, $a0 +/* 0451A4 7F010674 ACA30000 */ sw $v1, ($a1) +/* 0451A8 7F010678 ADE90000 */ sw $t1, ($t7) +.L7F01067C: +/* 0451AC 7F01067C 14200006 */ bnez $at, .L7F010698 +/* 0451B0 7F010680 24630001 */ addiu $v1, $v1, 1 +/* 0451B4 7F010684 8C580000 */ lw $t8, ($v0) +/* 0451B8 7F010688 2B010004 */ slti $at, $t8, 4 +/* 0451BC 7F01068C 54200003 */ bnezl $at, .L7F01069C +/* 0451C0 7F010690 0066082A */ slt $at, $v1, $a2 +/* 0451C4 7F010694 AC400000 */ sw $zero, ($v0) +.L7F010698: +/* 0451C8 7F010698 0066082A */ slt $at, $v1, $a2 +.L7F01069C: +/* 0451CC 7F01069C 24840004 */ addiu $a0, $a0, 4 +/* 0451D0 7F0106A0 1420FFEF */ bnez $at, .L7F010660 +/* 0451D4 7F0106A4 24A50004 */ addiu $a1, $a1, 4 +.L7F0106A8: +/* 0451D8 7F0106A8 3C198003 */ lui $t9, %hi(scenario) +/* 0451DC 7F0106AC 8F39B540 */ lw $t9, %lo(scenario)($t9) +/* 0451E0 7F0106B0 3C0C8003 */ lui $t4, %hi(mp_player_counts) +/* 0451E4 7F0106B4 258CB054 */ addiu $t4, %lo(mp_player_counts) # addiu $t4, $t4, -0x4fac +/* 0451E8 7F0106B8 00195880 */ sll $t3, $t9, 2 +/* 0451EC 7F0106BC 016C1021 */ addu $v0, $t3, $t4 +/* 0451F0 7F0106C0 904D0003 */ lbu $t5, 3($v0) +/* 0451F4 7F0106C4 01A6082A */ slt $at, $t5, $a2 +/* 0451F8 7F0106C8 14200005 */ bnez $at, .L7F0106E0 +/* 0451FC 7F0106CC 00000000 */ nop +/* 045200 7F0106D0 904E0002 */ lbu $t6, 2($v0) +/* 045204 7F0106D4 00CE082A */ slt $at, $a2, $t6 +/* 045208 7F0106D8 10200005 */ beqz $at, .L7F0106F0 +/* 04520C 7F0106DC 00000000 */ nop +.L7F0106E0: +/* 045210 7F0106E0 0FC0411A */ jal reset_mp_options_for_scenario +/* 045214 7F0106E4 00002025 */ move $a0, $zero +/* 045218 7F0106E8 3C068003 */ lui $a2, %hi(selected_num_players) +/* 04521C 7F0106EC 8CC6B520 */ lw $a2, %lo(selected_num_players)($a2) +.L7F0106F0: +/* 045220 7F0106F0 3C028003 */ lui $v0, %hi(MP_stage_selected) +/* 045224 7F0106F4 2442B534 */ addiu $v0, %lo(MP_stage_selected) # addiu $v0, $v0, -0x4acc +/* 045228 7F0106F8 8C4F0000 */ lw $t7, ($v0) +/* 04522C 7F0106FC 3C198003 */ lui $t9, %hi(multi_stage_setups+20) +/* 045230 7F010700 240B0001 */ li $t3, 1 +/* 045234 7F010704 000FC080 */ sll $t8, $t7, 2 +/* 045238 7F010708 030FC023 */ subu $t8, $t8, $t7 +/* 04523C 7F01070C 0018C0C0 */ sll $t8, $t8, 3 +/* 045240 7F010710 0338C821 */ addu $t9, $t9, $t8 +/* 045244 7F010714 8F39B088 */ lw $t9, %lo(multi_stage_setups+20)($t9) +/* 045248 7F010718 0326082A */ slt $at, $t9, $a2 +/* 04524C 7F01071C 50200003 */ beql $at, $zero, .L7F01072C +/* 045250 7F010720 8FBF001C */ lw $ra, 0x1c($sp) +/* 045254 7F010724 AC4B0000 */ sw $t3, ($v0) +/* 045258 7F010728 8FBF001C */ lw $ra, 0x1c($sp) +.L7F01072C: +/* 04525C 7F01072C 8FB00018 */ lw $s0, 0x18($sp) +/* 045260 7F010730 27BD0020 */ addiu $sp, $sp, 0x20 +/* 045264 7F010734 03E00008 */ jr $ra +/* 045268 7F010738 00000000 */ nop +) +#endif + + + +void init_menu0E_mpoptions(void) +{ + int numplayers; + + tab_1_selected = FALSE; + tab_2_selected = FALSE; + tab_3_selected = FALSE; + tab_3_highlight = FALSE; + tab_2_highlight = FALSE; + tab_1_highlight = FALSE; + + if (maybe_is_in_menu != FALSE) + { + sfx_c_700091E8(0x7fff); + musicTrack1Vol(0x7fff); + music1_playing = FALSE; + musicTrack1Play(M_FOLDERS); + maybe_is_in_menu = FALSE; + } + + if (selected_num_players == 0) + { + numplayers = get_attached_controller_count(); + init_mp_options_for_scenario(numplayers); + } + + if (check_if_mp_stage_unlocked(MP_stage_selected) == FALSE) + { + MP_stage_selected = MP_STAGE_TEMPLE; + } + + highlight_players = FALSE; + highlight_scenario = FALSE; + highlight_gameselect = FALSE; + highlight_gamelength = FALSE; + highlight_character = FALSE; + highlight_weaponselect = FALSE; + highlight_health = FALSE; + highlight_controlstyle = FALSE; + highlight_aimadjustment = FALSE; + load_walletbond(); +} + +void update_menu0E_mpoptions(void) +{ + return; +} + + + + + + + + +#ifdef NONMATCHING +void interface_menu0E_mpoptions(void) +{ + s32 players_selected; + s32 scenario_selected; + s32 gameselect_selected; + s32 gamelength_selected; + s32 character_selected; + s32 weaponselect_selected; + s32 health_selected; + s32 controlstyle_selected; + s32 aimadjustment_selected; + + s32 cursor_v; + s32 temp_v1; + u32 temp_hi; + void *temp_v0; + s32 phi_a0; + + players_selected = 0; + scenario_selected = 0; + gameselect_selected = 0; + gamelength_selected = 0; + character_selected = 0; + weaponselect_selected = 0; + health_selected = 0; + controlstyle_selected = 0; + aimadjustment_selected = 0; + setvideo_far(60.0f); + video_related_21(menu0E_aspect); + set_page_height(100.0f, menu0E_pageheight); + set_video2_settings_offset_24(0); + if (get_attached_controller_count() < 2) + { + set_menu_to_mode(MENU_MODE_SELECT, 0); + set_menu_cursor_pos_to_setting(gamemode); + } + if (get_attached_controller_count() < selected_num_players) + { + init_mp_options_for_scenario(get_attached_controller_count()); + } + if (get_controller_buttons_held(0, Z_TRIG|A_BUTTON) == 0) + { + tab_3_highlight = 0; + tab_2_highlight = 0; + tab_1_highlight = 0; + highlight_players = 0; + highlight_scenario = 0; + highlight_gameselect = 0; + highlight_gamelength = 0; + highlight_character = 0; + highlight_weaponselect = 0; + highlight_health = 0; + highlight_controlstyle = 0; + highlight_aimadjustment = 0; + if (isontab3()) + { + tab_3_highlight = 1; + } + + if (isontab1()) + { + cursor_v_pos = 1; + } + + cursor_v = (s32)cursor_v_pos; + if ((cursor_v >= 0x119) && (unlock_aim_sight != 0)) + { + highlight_aimadjustment = 1; + } + + if ((cursor_v >= 0x105) && (unlock_control_style != 0)) + { + highlight_controlstyle = 1; + } + + if ((cursor_v >= 0xf1) && (unlock_handicap != 0)) + { + highlight_health = 1; + } + + if ((cursor_v >= 0xdd) && (unlock_chars != 0)) + { + highlight_character = 1; + } + + if ((cursor_v >= 0xc9) && (unlock_weapon_select != 0)) + { + highlight_weaponselect = 1; + } + + if ((cursor_v >= 0xb5) && (unlock_game_length != 0)) + { + highlight_gamelength = 1; + } + + if ((cursor_v >= 0xa1) && (unlock_stage_select != 0)) + { + highlight_gameselect = 1; + } + + if (cursor_v >= 0x8d) + { + highlight_scenario = 1; + } + else + { + highlight_players = 1; + } + } + + if (get_controller_buttons_pressed(0, START_BUTTON) != 0) + { + tab_1_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if (get_controller_buttons_pressed(0, Z_TRIG|A_BUTTON) != 0) + { + if (tab_3_highlight != 0) + { + tab_3_selected = 1; + } + if (tab_1_highlight != 0) + { + tab_1_selected = 1; + } + if (highlight_players != 0) + { + players_selected = 1; + } + if (highlight_scenario != 0) + { + scenario_selected = 1; + } + if (highlight_gameselect != 0) + { + gameselect_selected = 1; + } + if (highlight_gamelength != 0) + { + gamelength_selected = 1; + } + if (highlight_character != 0) + { + character_selected = 1; + } + if (highlight_weaponselect != 0) + { + weaponselect_selected = 1; + } + if (highlight_health != 0) + { + health_selected = 1; + } + if (highlight_controlstyle != 0) + { + controlstyle_selected = 1; + } + if (highlight_aimadjustment != 0) + { + aimadjustment_selected = 1; + } + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if (get_controller_buttons_pressed(0, B_BUTTON) != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + disable_all_switches(ptr_folder_object_instance); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 5, 1); + menu_control_stick_tracking(); + if (tab_3_selected != 0) + { + set_menu_to_mode(MENU_MODE_SELECT, 0); + set_menu_cursor_pos_to_setting(gamemode); + return; + } + if (tab_1_selected != 0) + { + curstageid = multi_stage_setups[MP_stage_selected].stage_id; + if (multi_stage_setups[MP_stage_selected].stage_id < 0) { + do { + numplayers = get_random_value(); + selected_stage = multi_stage_setups[numplayers % 0xb + 1].stage_id; + curstageid = selected_stage; + } while (check_if_mp_stage_unlocked(numplayers % 0xb + 1) == FALSE); + } + selected_stage = curstageid; + briefingpage = 0xffffffff; + set_menu_to_mode(MENU_RUN_STAGE,1); + } + if (players_selected != 0) + { + temp_v1 = selected_num_players + 1; + phi_a0 = temp_v1; + if (get_attached_controller_count() < temp_v1) + { + phi_a0 = 2; + } + init_mp_options_for_scenario(phi_a0); + return; + } + if (scenario_selected != 0) + { + set_menu_to_mode(MENU_MP_SCENARIO_SELECT, 0); + return; + } + if (gameselect_selected != 0) + { + set_menu_to_mode(MENU_MP_STAGE_SELECT, 0); + return; + } + if (gamelength_selected != 0) + { + select_game_length(); + return; + } + if (character_selected != 0) + { + set_menu_to_mode(MENU_MP_CHAR_SELECT, 0); + return; + } + if (weaponselect_selected != 0) + { + incrementMPWeaponSet(); + return; + } + if (health_selected != 0) + { + set_menu_to_mode(MENU_MP_HANDICAP, 0); + return; + } + if (controlstyle_selected != 0) + { + set_menu_to_mode(MENU_MP_CONTROL_STYLE, 0); + return; + } + if (aimadjustment_selected != 0) + { + advance_aim_settings_selection(); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel menu0E_aspect +.word 0x3FAAAAAB /*1.3333334;*/ +glabel menu0E_pageheight +.word 0x461C4000 /*10000.0;*/ + +.text +glabel interface_menu0E_mpoptions +/* 045378 7F010848 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 04537C 7F01084C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 045380 7F010850 AFBF0014 */ sw $ra, 0x14($sp) +/* 045384 7F010854 44816000 */ mtc1 $at, $f12 +/* 045388 7F010858 AFA0003C */ sw $zero, 0x3c($sp) +/* 04538C 7F01085C AFA00038 */ sw $zero, 0x38($sp) +/* 045390 7F010860 AFA00034 */ sw $zero, 0x34($sp) +/* 045394 7F010864 AFA00030 */ sw $zero, 0x30($sp) +/* 045398 7F010868 AFA0002C */ sw $zero, 0x2c($sp) +/* 04539C 7F01086C AFA00028 */ sw $zero, 0x28($sp) +/* 0453A0 7F010870 AFA00024 */ sw $zero, 0x24($sp) +/* 0453A4 7F010874 AFA00020 */ sw $zero, 0x20($sp) +/* 0453A8 7F010878 0C001151 */ jal setvideo_far +/* 0453AC 7F01087C AFA0001C */ sw $zero, 0x1c($sp) +/* 0453B0 7F010880 3C018005 */ lui $at, %hi(menu0E_aspect) +/* 0453B4 7F010884 0C001164 */ jal video_related_21 +/* 0453B8 7F010888 C42C1A80 */ lwc1 $f12, %lo(menu0E_aspect)($at) +/* 0453BC 7F01088C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0453C0 7F010890 44816000 */ mtc1 $at, $f12 +/* 0453C4 7F010894 3C018005 */ lui $at, %hi(menu0E_pageheight) +/* 0453C8 7F010898 0C001194 */ jal set_page_height +/* 0453CC 7F01089C C42E1A84 */ lwc1 $f14, %lo(menu0E_pageheight)($at) +/* 0453D0 7F0108A0 0C00114D */ jal set_video2_settings_offset_24 +/* 0453D4 7F0108A4 00002025 */ move $a0, $zero +/* 0453D8 7F0108A8 0C002E7E */ jal get_attached_controller_count +/* 0453DC 7F0108AC 00000000 */ nop +/* 0453E0 7F0108B0 28410002 */ slti $at, $v0, 2 +/* 0453E4 7F0108B4 10200006 */ beqz $at, .L7F0108D0 +/* 0453E8 7F0108B8 24040006 */ li $a0, 6 +/* 0453EC 7F0108BC 0FC06975 */ jal set_menu_to_mode +/* 0453F0 7F0108C0 00002825 */ move $a1, $zero +/* 0453F4 7F0108C4 3C048003 */ lui $a0, %hi(gamemode) +/* 0453F8 7F0108C8 0FC035FF */ jal set_menu_cursor_pos_to_setting +/* 0453FC 7F0108CC 8C84A8F0 */ lw $a0, %lo(gamemode)($a0) +.L7F0108D0: +/* 045400 7F0108D0 0C002E7E */ jal get_attached_controller_count +/* 045404 7F0108D4 00000000 */ nop +/* 045408 7F0108D8 3C0E8003 */ lui $t6, %hi(selected_num_players) +/* 04540C 7F0108DC 8DCEB520 */ lw $t6, %lo(selected_num_players)($t6) +/* 045410 7F0108E0 004E082A */ slt $at, $v0, $t6 +/* 045414 7F0108E4 50200006 */ beql $at, $zero, .L7F010900 +/* 045418 7F0108E8 00002025 */ move $a0, $zero +/* 04541C 7F0108EC 0C002E7E */ jal get_attached_controller_count +/* 045420 7F0108F0 00000000 */ nop +/* 045424 7F0108F4 0FC04182 */ jal init_mp_options_for_scenario +/* 045428 7F0108F8 00402025 */ move $a0, $v0 +/* 04542C 7F0108FC 00002025 */ move $a0, $zero +.L7F010900: +/* 045430 7F010900 0C0030C3 */ jal get_controller_buttons_held +/* 045434 7F010904 3405A000 */ li $a1, 40960 +/* 045438 7F010908 1440007A */ bnez $v0, .L7F010AF4 +/* 04543C 7F01090C 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 045440 7F010910 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 045444 7F010914 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 045448 7F010918 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 04544C 7F01091C 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 045450 7F010920 AC20A8DC */ sw $zero, %lo(tab_1_highlight)($at) +/* 045454 7F010924 3C018007 */ lui $at, %hi(highlight_players) +/* 045458 7F010928 AC2097C8 */ sw $zero, %lo(highlight_players)($at) +/* 04545C 7F01092C 3C018007 */ lui $at, %hi(highlight_scenario) +/* 045460 7F010930 AC2097CC */ sw $zero, %lo(highlight_scenario)($at) +/* 045464 7F010934 3C018007 */ lui $at, %hi(highlight_gameselect) +/* 045468 7F010938 AC2097D0 */ sw $zero, %lo(highlight_gameselect)($at) +/* 04546C 7F01093C 3C018007 */ lui $at, %hi(highlight_gamelength) +/* 045470 7F010940 AC2097D4 */ sw $zero, %lo(highlight_gamelength)($at) +/* 045474 7F010944 3C018007 */ lui $at, %hi(highlight_character) +/* 045478 7F010948 AC2097D8 */ sw $zero, %lo(highlight_character)($at) +/* 04547C 7F01094C 3C018007 */ lui $at, %hi(highlight_weaponselect) +/* 045480 7F010950 AC2097DC */ sw $zero, %lo(highlight_weaponselect)($at) +/* 045484 7F010954 3C018007 */ lui $at, %hi(highlight_health) +/* 045488 7F010958 AC2097E0 */ sw $zero, %lo(highlight_health)($at) +/* 04548C 7F01095C 3C018007 */ lui $at, %hi(highlight_controlstyle) +/* 045490 7F010960 AC2097E4 */ sw $zero, %lo(highlight_controlstyle)($at) +/* 045494 7F010964 3C018007 */ lui $at, %hi(highlight_aimadjustment) +/* 045498 7F010968 0FC028E7 */ jal isontab3 +/* 04549C 7F01096C AC2097E8 */ sw $zero, %lo(highlight_aimadjustment)($at) +/* 0454A0 7F010970 10400004 */ beqz $v0, .L7F010984 +/* 0454A4 7F010974 240F0001 */ li $t7, 1 +/* 0454A8 7F010978 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 0454AC 7F01097C 1000005D */ b .L7F010AF4 +/* 0454B0 7F010980 AC2FA8E4 */ sw $t7, %lo(tab_3_highlight)($at) +.L7F010984: +/* 0454B4 7F010984 0FC02879 */ jal isontab1 +/* 0454B8 7F010988 00000000 */ nop +/* 0454BC 7F01098C 10400005 */ beqz $v0, .L7F0109A4 +/* 0454C0 7F010990 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 0454C4 7F010994 24030001 */ li $v1, 1 +/* 0454C8 7F010998 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 0454CC 7F01099C 10000055 */ b .L7F010AF4 +/* 0454D0 7F0109A0 AC23A8DC */ sw $v1, %lo(tab_1_highlight)($at) +.L7F0109A4: +/* 0454D4 7F0109A4 C424A90C */ lwc1 $f4, %lo(cursor_v_pos)($at) +/* 0454D8 7F0109A8 3C198003 */ lui $t9, %hi(unlock_aim_sight) +/* 0454DC 7F0109AC 4600218D */ trunc.w.s $f6, $f4 +/* 0454E0 7F0109B0 44023000 */ mfc1 $v0, $f6 +/* 0454E4 7F0109B4 00000000 */ nop +/* 0454E8 7F0109B8 28410119 */ slti $at, $v0, 0x119 +/* 0454EC 7F0109BC 54200009 */ bnezl $at, .L7F0109E4 +/* 0454F0 7F0109C0 28410105 */ slti $at, $v0, 0x105 +/* 0454F4 7F0109C4 8F39B55C */ lw $t9, %lo(unlock_aim_sight)($t9) +/* 0454F8 7F0109C8 24030001 */ li $v1, 1 +/* 0454FC 7F0109CC 3C018007 */ lui $at, %hi(highlight_aimadjustment) +/* 045500 7F0109D0 53200004 */ beql $t9, $zero, .L7F0109E4 +/* 045504 7F0109D4 28410105 */ slti $at, $v0, 0x105 +/* 045508 7F0109D8 10000046 */ b .L7F010AF4 +/* 04550C 7F0109DC AC2397E8 */ sw $v1, %lo(highlight_aimadjustment)($at) +/* 045510 7F0109E0 28410105 */ slti $at, $v0, 0x105 +.L7F0109E4: +/* 045514 7F0109E4 14200008 */ bnez $at, .L7F010A08 +/* 045518 7F0109E8 3C088003 */ lui $t0, %hi(unlock_control_style) +/* 04551C 7F0109EC 8D08B558 */ lw $t0, %lo(unlock_control_style)($t0) +/* 045520 7F0109F0 24030001 */ li $v1, 1 +/* 045524 7F0109F4 3C018007 */ lui $at, %hi(highlight_controlstyle) +/* 045528 7F0109F8 51000004 */ beql $t0, $zero, .L7F010A0C +/* 04552C 7F0109FC 284100F1 */ slti $at, $v0, 0xf1 +/* 045530 7F010A00 1000003C */ b .L7F010AF4 +/* 045534 7F010A04 AC2397E4 */ sw $v1, %lo(highlight_controlstyle)($at) +.L7F010A08: +/* 045538 7F010A08 284100F1 */ slti $at, $v0, 0xf1 +.L7F010A0C: +/* 04553C 7F010A0C 14200008 */ bnez $at, .L7F010A30 +/* 045540 7F010A10 3C098003 */ lui $t1, %hi(unlock_handicap) +/* 045544 7F010A14 8D29B554 */ lw $t1, %lo(unlock_handicap)($t1) +/* 045548 7F010A18 24030001 */ li $v1, 1 +/* 04554C 7F010A1C 3C018007 */ lui $at, %hi(highlight_health) +/* 045550 7F010A20 51200004 */ beql $t1, $zero, .L7F010A34 +/* 045554 7F010A24 284100DD */ slti $at, $v0, 0xdd +/* 045558 7F010A28 10000032 */ b .L7F010AF4 +/* 04555C 7F010A2C AC2397E0 */ sw $v1, %lo(highlight_health)($at) +.L7F010A30: +/* 045560 7F010A30 284100DD */ slti $at, $v0, 0xdd +.L7F010A34: +/* 045564 7F010A34 14200008 */ bnez $at, .L7F010A58 +/* 045568 7F010A38 3C0A8003 */ lui $t2, %hi(unlock_chars) +/* 04556C 7F010A3C 8D4AB54C */ lw $t2, %lo(unlock_chars)($t2) +/* 045570 7F010A40 24030001 */ li $v1, 1 +/* 045574 7F010A44 3C018007 */ lui $at, %hi(highlight_character) +/* 045578 7F010A48 51400004 */ beql $t2, $zero, .L7F010A5C +/* 04557C 7F010A4C 284100C9 */ slti $at, $v0, 0xc9 +/* 045580 7F010A50 10000028 */ b .L7F010AF4 +/* 045584 7F010A54 AC2397D8 */ sw $v1, %lo(highlight_character)($at) +.L7F010A58: +/* 045588 7F010A58 284100C9 */ slti $at, $v0, 0xc9 +.L7F010A5C: +/* 04558C 7F010A5C 14200008 */ bnez $at, .L7F010A80 +/* 045590 7F010A60 3C0B8003 */ lui $t3, %hi(unlock_weapon_select) +/* 045594 7F010A64 8D6BB550 */ lw $t3, %lo(unlock_weapon_select)($t3) +/* 045598 7F010A68 24030001 */ li $v1, 1 +/* 04559C 7F010A6C 3C018007 */ lui $at, %hi(highlight_weaponselect) +/* 0455A0 7F010A70 51600004 */ beql $t3, $zero, .L7F010A84 +/* 0455A4 7F010A74 284100B5 */ slti $at, $v0, 0xb5 +/* 0455A8 7F010A78 1000001E */ b .L7F010AF4 +/* 0455AC 7F010A7C AC2397DC */ sw $v1, %lo(highlight_weaponselect)($at) +.L7F010A80: +/* 0455B0 7F010A80 284100B5 */ slti $at, $v0, 0xb5 +.L7F010A84: +/* 0455B4 7F010A84 14200008 */ bnez $at, .L7F010AA8 +/* 0455B8 7F010A88 3C0C8003 */ lui $t4, %hi(unlock_game_length) +/* 0455BC 7F010A8C 8D8CB548 */ lw $t4, %lo(unlock_game_length)($t4) +/* 0455C0 7F010A90 24030001 */ li $v1, 1 +/* 0455C4 7F010A94 3C018007 */ lui $at, %hi(highlight_gamelength) +/* 0455C8 7F010A98 51800004 */ beql $t4, $zero, .L7F010AAC +/* 0455CC 7F010A9C 284100A1 */ slti $at, $v0, 0xa1 +/* 0455D0 7F010AA0 10000014 */ b .L7F010AF4 +/* 0455D4 7F010AA4 AC2397D4 */ sw $v1, %lo(highlight_gamelength)($at) +.L7F010AA8: +/* 0455D8 7F010AA8 284100A1 */ slti $at, $v0, 0xa1 +.L7F010AAC: +/* 0455DC 7F010AAC 14200008 */ bnez $at, .L7F010AD0 +/* 0455E0 7F010AB0 3C0D8003 */ lui $t5, %hi(unlock_stage_select) +/* 0455E4 7F010AB4 8DADB544 */ lw $t5, %lo(unlock_stage_select)($t5) +/* 0455E8 7F010AB8 24030001 */ li $v1, 1 +/* 0455EC 7F010ABC 3C018007 */ lui $at, %hi(highlight_gameselect) +/* 0455F0 7F010AC0 51A00004 */ beql $t5, $zero, .L7F010AD4 +/* 0455F4 7F010AC4 2841008D */ slti $at, $v0, 0x8d +/* 0455F8 7F010AC8 1000000A */ b .L7F010AF4 +/* 0455FC 7F010ACC AC2397D0 */ sw $v1, %lo(highlight_gameselect)($at) +.L7F010AD0: +/* 045600 7F010AD0 2841008D */ slti $at, $v0, 0x8d +.L7F010AD4: +/* 045604 7F010AD4 14200005 */ bnez $at, .L7F010AEC +/* 045608 7F010AD8 24030001 */ li $v1, 1 +/* 04560C 7F010ADC 24030001 */ li $v1, 1 +/* 045610 7F010AE0 3C018007 */ lui $at, %hi(highlight_scenario) +/* 045614 7F010AE4 10000003 */ b .L7F010AF4 +/* 045618 7F010AE8 AC2397CC */ sw $v1, %lo(highlight_scenario)($at) +.L7F010AEC: +/* 04561C 7F010AEC 3C018007 */ lui $at, %hi(highlight_players) +/* 045620 7F010AF0 AC2397C8 */ sw $v1, %lo(highlight_players)($at) +.L7F010AF4: +/* 045624 7F010AF4 00002025 */ move $a0, $zero +/* 045628 7F010AF8 0C0030EB */ jal get_controller_buttons_pressed +/* 04562C 7F010AFC 24051000 */ li $a1, 4096 +/* 045630 7F010B00 1040000A */ beqz $v0, .L7F010B2C +/* 045634 7F010B04 24030001 */ li $v1, 1 +/* 045638 7F010B08 3C018003 */ lui $at, %hi(tab_1_selected) +/* 04563C 7F010B0C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 045640 7F010B10 AC23A8D0 */ sw $v1, %lo(tab_1_selected)($at) +/* 045644 7F010B14 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 045648 7F010B18 240500C7 */ li $a1, 199 +/* 04564C 7F010B1C 0C002382 */ jal play_sfx_a1 +/* 045650 7F010B20 00003025 */ move $a2, $zero +/* 045654 7F010B24 10000062 */ b .L7F010CB0 +/* 045658 7F010B28 00000000 */ nop +.L7F010B2C: +/* 04565C 7F010B2C 00002025 */ move $a0, $zero +/* 045660 7F010B30 0C0030EB */ jal get_controller_buttons_pressed +/* 045664 7F010B34 3405A000 */ li $a1, 40960 +/* 045668 7F010B38 10400051 */ beqz $v0, .L7F010C80 +/* 04566C 7F010B3C 24030001 */ li $v1, 1 +/* 045670 7F010B40 3C0E8003 */ lui $t6, %hi(tab_3_highlight) +/* 045674 7F010B44 8DCEA8E4 */ lw $t6, %lo(tab_3_highlight)($t6) +/* 045678 7F010B48 3C0F8003 */ lui $t7, %hi(tab_1_highlight) +/* 04567C 7F010B4C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 045680 7F010B50 11C00003 */ beqz $t6, .L7F010B60 +/* 045684 7F010B54 240500C7 */ li $a1, 199 +/* 045688 7F010B58 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04568C 7F010B5C AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +.L7F010B60: +/* 045690 7F010B60 8DEFA8DC */ lw $t7, %lo(tab_1_highlight)($t7) +/* 045694 7F010B64 3C018003 */ lui $at, %hi(tab_1_selected) +/* 045698 7F010B68 3C188007 */ lui $t8, %hi(highlight_players) +/* 04569C 7F010B6C 11E00003 */ beqz $t7, .L7F010B7C +/* 0456A0 7F010B70 00003025 */ move $a2, $zero +/* 0456A4 7F010B74 1000003E */ b .L7F010C70 +/* 0456A8 7F010B78 AC23A8D0 */ sw $v1, %lo(tab_1_selected)($at) +.L7F010B7C: +/* 0456AC 7F010B7C 8F1897C8 */ lw $t8, %lo(highlight_players)($t8) +/* 0456B0 7F010B80 24190001 */ li $t9, 1 +/* 0456B4 7F010B84 3C088007 */ lui $t0, %hi(highlight_scenario) +/* 0456B8 7F010B88 13000003 */ beqz $t8, .L7F010B98 +/* 0456BC 7F010B8C 00000000 */ nop +/* 0456C0 7F010B90 10000037 */ b .L7F010C70 +/* 0456C4 7F010B94 AFB9003C */ sw $t9, 0x3c($sp) +.L7F010B98: +/* 0456C8 7F010B98 8D0897CC */ lw $t0, %lo(highlight_scenario)($t0) +/* 0456CC 7F010B9C 24090001 */ li $t1, 1 +/* 0456D0 7F010BA0 3C0A8007 */ lui $t2, %hi(highlight_gameselect) +/* 0456D4 7F010BA4 11000003 */ beqz $t0, .L7F010BB4 +/* 0456D8 7F010BA8 00000000 */ nop +/* 0456DC 7F010BAC 10000030 */ b .L7F010C70 +/* 0456E0 7F010BB0 AFA90038 */ sw $t1, 0x38($sp) +.L7F010BB4: +/* 0456E4 7F010BB4 8D4A97D0 */ lw $t2, %lo(highlight_gameselect)($t2) +/* 0456E8 7F010BB8 240B0001 */ li $t3, 1 +/* 0456EC 7F010BBC 3C0C8007 */ lui $t4, %hi(highlight_gamelength) +/* 0456F0 7F010BC0 11400003 */ beqz $t2, .L7F010BD0 +/* 0456F4 7F010BC4 00000000 */ nop +/* 0456F8 7F010BC8 10000029 */ b .L7F010C70 +/* 0456FC 7F010BCC AFAB0034 */ sw $t3, 0x34($sp) +.L7F010BD0: +/* 045700 7F010BD0 8D8C97D4 */ lw $t4, %lo(highlight_gamelength)($t4) +/* 045704 7F010BD4 240D0001 */ li $t5, 1 +/* 045708 7F010BD8 3C0E8007 */ lui $t6, %hi(highlight_character) +/* 04570C 7F010BDC 11800003 */ beqz $t4, .L7F010BEC +/* 045710 7F010BE0 00000000 */ nop +/* 045714 7F010BE4 10000022 */ b .L7F010C70 +/* 045718 7F010BE8 AFAD0030 */ sw $t5, 0x30($sp) +.L7F010BEC: +/* 04571C 7F010BEC 8DCE97D8 */ lw $t6, %lo(highlight_character)($t6) +/* 045720 7F010BF0 240F0001 */ li $t7, 1 +/* 045724 7F010BF4 3C188007 */ lui $t8, %hi(highlight_weaponselect) +/* 045728 7F010BF8 11C00003 */ beqz $t6, .L7F010C08 +/* 04572C 7F010BFC 00000000 */ nop +/* 045730 7F010C00 1000001B */ b .L7F010C70 +/* 045734 7F010C04 AFAF002C */ sw $t7, 0x2c($sp) +.L7F010C08: +/* 045738 7F010C08 8F1897DC */ lw $t8, %lo(highlight_weaponselect)($t8) +/* 04573C 7F010C0C 24190001 */ li $t9, 1 +/* 045740 7F010C10 3C088007 */ lui $t0, %hi(highlight_health) +/* 045744 7F010C14 13000003 */ beqz $t8, .L7F010C24 +/* 045748 7F010C18 00000000 */ nop +/* 04574C 7F010C1C 10000014 */ b .L7F010C70 +/* 045750 7F010C20 AFB90028 */ sw $t9, 0x28($sp) +.L7F010C24: +/* 045754 7F010C24 8D0897E0 */ lw $t0, %lo(highlight_health)($t0) +/* 045758 7F010C28 24090001 */ li $t1, 1 +/* 04575C 7F010C2C 3C0A8007 */ lui $t2, %hi(highlight_controlstyle) +/* 045760 7F010C30 11000003 */ beqz $t0, .L7F010C40 +/* 045764 7F010C34 00000000 */ nop +/* 045768 7F010C38 1000000D */ b .L7F010C70 +/* 04576C 7F010C3C AFA90024 */ sw $t1, 0x24($sp) +.L7F010C40: +/* 045770 7F010C40 8D4A97E4 */ lw $t2, %lo(highlight_controlstyle)($t2) +/* 045774 7F010C44 240B0001 */ li $t3, 1 +/* 045778 7F010C48 3C0C8007 */ lui $t4, %hi(highlight_aimadjustment) +/* 04577C 7F010C4C 11400003 */ beqz $t2, .L7F010C5C +/* 045780 7F010C50 00000000 */ nop +/* 045784 7F010C54 10000006 */ b .L7F010C70 +/* 045788 7F010C58 AFAB0020 */ sw $t3, 0x20($sp) +.L7F010C5C: +/* 04578C 7F010C5C 8D8C97E8 */ lw $t4, %lo(highlight_aimadjustment)($t4) +/* 045790 7F010C60 240D0001 */ li $t5, 1 +/* 045794 7F010C64 11800002 */ beqz $t4, .L7F010C70 +/* 045798 7F010C68 00000000 */ nop +/* 04579C 7F010C6C AFAD001C */ sw $t5, 0x1c($sp) +.L7F010C70: +/* 0457A0 7F010C70 0C002382 */ jal play_sfx_a1 +/* 0457A4 7F010C74 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0457A8 7F010C78 1000000D */ b .L7F010CB0 +/* 0457AC 7F010C7C 00000000 */ nop +.L7F010C80: +/* 0457B0 7F010C80 00002025 */ move $a0, $zero +/* 0457B4 7F010C84 0C0030EB */ jal get_controller_buttons_pressed +/* 0457B8 7F010C88 24054000 */ li $a1, 16384 +/* 0457BC 7F010C8C 10400008 */ beqz $v0, .L7F010CB0 +/* 0457C0 7F010C90 24030001 */ li $v1, 1 +/* 0457C4 7F010C94 3C018003 */ lui $at, %hi(tab_3_selected) +/* 0457C8 7F010C98 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0457CC 7F010C9C AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +/* 0457D0 7F010CA0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0457D4 7F010CA4 240500C7 */ li $a1, 199 +/* 0457D8 7F010CA8 0C002382 */ jal play_sfx_a1 +/* 0457DC 7F010CAC 00003025 */ move $a2, $zero +.L7F010CB0: +/* 0457E0 7F010CB0 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 0457E4 7F010CB4 0FC02DC9 */ jal disable_all_switches +/* 0457E8 7F010CB8 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 0457EC 7F010CBC 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 0457F0 7F010CC0 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 0457F4 7F010CC4 00002825 */ move $a1, $zero +/* 0457F8 7F010CC8 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 0457FC 7F010CCC 24060001 */ li $a2, 1 +/* 045800 7F010CD0 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 045804 7F010CD4 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 045808 7F010CD8 24050001 */ li $a1, 1 +/* 04580C 7F010CDC 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 045810 7F010CE0 24060001 */ li $a2, 1 +/* 045814 7F010CE4 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 045818 7F010CE8 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04581C 7F010CEC 24050003 */ li $a1, 3 +/* 045820 7F010CF0 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 045824 7F010CF4 24060001 */ li $a2, 1 +/* 045828 7F010CF8 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04582C 7F010CFC 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 045830 7F010D00 24050005 */ li $a1, 5 +/* 045834 7F010D04 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 045838 7F010D08 24060001 */ li $a2, 1 +/* 04583C 7F010D0C 0FC026E1 */ jal menu_control_stick_tracking +/* 045840 7F010D10 00000000 */ nop +/* 045844 7F010D14 3C0E8003 */ lui $t6, %hi(tab_3_selected) +/* 045848 7F010D18 8DCEA8D8 */ lw $t6, %lo(tab_3_selected)($t6) +/* 04584C 7F010D1C 24040006 */ li $a0, 6 +/* 045850 7F010D20 3C0F8003 */ lui $t7, %hi(tab_1_selected) +/* 045854 7F010D24 11C00008 */ beqz $t6, .L7F010D48 +/* 045858 7F010D28 00000000 */ nop +/* 04585C 7F010D2C 0FC06975 */ jal set_menu_to_mode +/* 045860 7F010D30 00002825 */ move $a1, $zero +/* 045864 7F010D34 3C048003 */ lui $a0, %hi(gamemode) +/* 045868 7F010D38 0FC035FF */ jal set_menu_cursor_pos_to_setting +/* 04586C 7F010D3C 8C84A8F0 */ lw $a0, %lo(gamemode)($a0) +/* 045870 7F010D40 10000070 */ b .L7F010F04 +/* 045874 7F010D44 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010D48: +/* 045878 7F010D48 8DEFA8D0 */ lw $t7, %lo(tab_1_selected)($t7) +/* 04587C 7F010D4C 3C188003 */ lui $t8, %hi(MP_stage_selected) +/* 045880 7F010D50 8FAB003C */ lw $t3, 0x3c($sp) +/* 045884 7F010D54 11E00027 */ beqz $t7, .L7F010DF4 +/* 045888 7F010D58 00000000 */ nop +/* 04588C 7F010D5C 8F18B534 */ lw $t8, %lo(MP_stage_selected)($t8) +/* 045890 7F010D60 3C028003 */ lui $v0, %hi(multi_stage_setups+8) +/* 045894 7F010D64 3C018003 */ lui $at, %hi(selected_stage) +/* 045898 7F010D68 0018C880 */ sll $t9, $t8, 2 +/* 04589C 7F010D6C 0338C823 */ subu $t9, $t9, $t8 +/* 0458A0 7F010D70 0019C8C0 */ sll $t9, $t9, 3 +/* 0458A4 7F010D74 00591021 */ addu $v0, $v0, $t9 +/* 0458A8 7F010D78 8C42B07C */ lw $v0, %lo(multi_stage_setups+8)($v0) +/* 0458AC 7F010D7C 04410014 */ bgez $v0, .L7F010DD0 +/* 0458B0 7F010D80 00000000 */ nop +.L7F010D84: +/* 0458B4 7F010D84 0C002914 */ jal get_random_value +/* 0458B8 7F010D88 00000000 */ nop +/* 0458BC 7F010D8C 2401000B */ li $at, 11 +/* 0458C0 7F010D90 0041001B */ divu $zero, $v0, $at +/* 0458C4 7F010D94 00001810 */ mfhi $v1 +/* 0458C8 7F010D98 00034080 */ sll $t0, $v1, 2 +/* 0458CC 7F010D9C 01034023 */ subu $t0, $t0, $v1 +/* 0458D0 7F010DA0 000840C0 */ sll $t0, $t0, 3 +/* 0458D4 7F010DA4 3C098003 */ lui $t1, %hi(multi_stage_setups+32) +/* 0458D8 7F010DA8 01284821 */ addu $t1, $t1, $t0 +/* 0458DC 7F010DAC 8D29B094 */ lw $t1, %lo(multi_stage_setups+32)($t1) +/* 0458E0 7F010DB0 3C018003 */ lui $at, %hi(selected_stage) +/* 0458E4 7F010DB4 24640001 */ addiu $a0, $v1, 1 +/* 0458E8 7F010DB8 0FC04034 */ jal check_if_mp_stage_unlocked +/* 0458EC 7F010DBC AC29A8F4 */ sw $t1, %lo(selected_stage)($at) +/* 0458F0 7F010DC0 1040FFF0 */ beqz $v0, .L7F010D84 +/* 0458F4 7F010DC4 00000000 */ nop +/* 0458F8 7F010DC8 10000003 */ b .L7F010DD8 +/* 0458FC 7F010DCC 240AFFFF */ li $t2, -1 +.L7F010DD0: +/* 045900 7F010DD0 AC22A8F4 */ sw $v0, %lo(selected_stage)($at) +/* 045904 7F010DD4 240AFFFF */ li $t2, -1 +.L7F010DD8: +/* 045908 7F010DD8 3C018003 */ lui $at, %hi(briefingpage) +/* 04590C 7F010DDC AC2AA8F8 */ sw $t2, %lo(briefingpage)($at) +/* 045910 7F010DE0 2404000B */ li $a0, 11 +/* 045914 7F010DE4 0FC06975 */ jal set_menu_to_mode +/* 045918 7F010DE8 24050001 */ li $a1, 1 +/* 04591C 7F010DEC 10000045 */ b .L7F010F04 +/* 045920 7F010DF0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010DF4: +/* 045924 7F010DF4 1160000F */ beqz $t3, .L7F010E34 +/* 045928 7F010DF8 8FAC0038 */ lw $t4, 0x38($sp) +/* 04592C 7F010DFC 0C002E7E */ jal get_attached_controller_count +/* 045930 7F010E00 00000000 */ nop +/* 045934 7F010E04 3C038003 */ lui $v1, %hi(selected_num_players) +/* 045938 7F010E08 8C63B520 */ lw $v1, %lo(selected_num_players)($v1) +/* 04593C 7F010E0C 24630001 */ addiu $v1, $v1, 1 +/* 045940 7F010E10 0043082A */ slt $at, $v0, $v1 +/* 045944 7F010E14 10200003 */ beqz $at, .L7F010E24 +/* 045948 7F010E18 00602025 */ move $a0, $v1 +/* 04594C 7F010E1C 10000001 */ b .L7F010E24 +/* 045950 7F010E20 24040002 */ li $a0, 2 +.L7F010E24: +/* 045954 7F010E24 0FC04182 */ jal init_mp_options_for_scenario +/* 045958 7F010E28 00000000 */ nop +/* 04595C 7F010E2C 10000035 */ b .L7F010F04 +/* 045960 7F010E30 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010E34: +/* 045964 7F010E34 11800006 */ beqz $t4, .L7F010E50 +/* 045968 7F010E38 8FAD0034 */ lw $t5, 0x34($sp) +/* 04596C 7F010E3C 24040013 */ li $a0, 19 +/* 045970 7F010E40 0FC06975 */ jal set_menu_to_mode +/* 045974 7F010E44 00002825 */ move $a1, $zero +/* 045978 7F010E48 1000002E */ b .L7F010F04 +/* 04597C 7F010E4C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010E50: +/* 045980 7F010E50 11A00006 */ beqz $t5, .L7F010E6C +/* 045984 7F010E54 8FAE0030 */ lw $t6, 0x30($sp) +/* 045988 7F010E58 24040012 */ li $a0, 18 +/* 04598C 7F010E5C 0FC06975 */ jal set_menu_to_mode +/* 045990 7F010E60 00002825 */ move $a1, $zero +/* 045994 7F010E64 10000027 */ b .L7F010F04 +/* 045998 7F010E68 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010E6C: +/* 04599C 7F010E6C 11C00005 */ beqz $t6, .L7F010E84 +/* 0459A0 7F010E70 8FAF002C */ lw $t7, 0x2c($sp) +/* 0459A4 7F010E74 0FC0405C */ jal select_game_length +/* 0459A8 7F010E78 00000000 */ nop +/* 0459AC 7F010E7C 10000021 */ b .L7F010F04 +/* 0459B0 7F010E80 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010E84: +/* 0459B4 7F010E84 11E00006 */ beqz $t7, .L7F010EA0 +/* 0459B8 7F010E88 8FB80028 */ lw $t8, 0x28($sp) +/* 0459BC 7F010E8C 2404000F */ li $a0, 15 +/* 0459C0 7F010E90 0FC06975 */ jal set_menu_to_mode +/* 0459C4 7F010E94 00002825 */ move $a1, $zero +/* 0459C8 7F010E98 1000001A */ b .L7F010F04 +/* 0459CC 7F010E9C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010EA0: +/* 0459D0 7F010EA0 13000005 */ beqz $t8, .L7F010EB8 +/* 0459D4 7F010EA4 8FB90024 */ lw $t9, 0x24($sp) +/* 0459D8 7F010EA8 0FC31974 */ jal incrementMPWeaponSet +/* 0459DC 7F010EAC 00000000 */ nop +/* 0459E0 7F010EB0 10000014 */ b .L7F010F04 +/* 0459E4 7F010EB4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010EB8: +/* 0459E8 7F010EB8 13200006 */ beqz $t9, .L7F010ED4 +/* 0459EC 7F010EBC 8FA80020 */ lw $t0, 0x20($sp) +/* 0459F0 7F010EC0 24040010 */ li $a0, 16 +/* 0459F4 7F010EC4 0FC06975 */ jal set_menu_to_mode +/* 0459F8 7F010EC8 00002825 */ move $a1, $zero +/* 0459FC 7F010ECC 1000000D */ b .L7F010F04 +/* 045A00 7F010ED0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010ED4: +/* 045A04 7F010ED4 11000006 */ beqz $t0, .L7F010EF0 +/* 045A08 7F010ED8 8FA9001C */ lw $t1, 0x1c($sp) +/* 045A0C 7F010EDC 24040011 */ li $a0, 17 +/* 045A10 7F010EE0 0FC06975 */ jal set_menu_to_mode +/* 045A14 7F010EE4 00002825 */ move $a1, $zero +/* 045A18 7F010EE8 10000006 */ b .L7F010F04 +/* 045A1C 7F010EEC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010EF0: +/* 045A20 7F010EF0 51200004 */ beql $t1, $zero, .L7F010F04 +/* 045A24 7F010EF4 8FBF0014 */ lw $ra, 0x14($sp) +/* 045A28 7F010EF8 0FC0408F */ jal advance_aim_settings_selection +/* 045A2C 7F010EFC 00000000 */ nop +/* 045A30 7F010F00 8FBF0014 */ lw $ra, 0x14($sp) +.L7F010F04: +/* 045A34 7F010F04 27BD0040 */ addiu $sp, $sp, 0x40 +/* 045A38 7F010F08 03E00008 */ jr $ra +/* 045A3C 7F010F0C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu0E_mpoptions(void) +{ + s32 sp64; + s32 sp5C; + s32 sp58; + s32 sp54; + s32 sp50; + s32 sp4C; + s32 sp48; + s16 sp44; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_ret_3; + s32 temp_ret_4; + s32 temp_ret_5; + s32 temp_ret_6; + s32 temp_ret_7; + s32 temp_ret_8; + s32 temp_ret_9; + s32 temp_s0; + s32 temp_s0_10; + s32 temp_s0_11; + s32 temp_s0_12; + s32 temp_s0_13; + s32 temp_s0_14; + s32 temp_s0_15; + s32 temp_s0_2; + s32 temp_s0_3; + s32 temp_s0_4; + s32 temp_s0_5; + s32 temp_s0_6; + s32 temp_s0_7; + s32 temp_s0_8; + s32 temp_s0_9; + s32 phi_s0; + s32 phi_s0_2; + s32 phi_v1; + s32 phi_s0_3; + s32 phi_v1_2; + s32 phi_s0_4; + s32 phi_v1_3; + s32 phi_s0_5; + s32 phi_v1_4; + s32 phi_s0_6; + s32 phi_v1_5; + s32 phi_s0_7; + s32 phi_v1_6; + s32 phi_s0_8; + s32 phi_v1_7; + s32 phi_s0_9; + s32 phi_v1_8; + s32 phi_v1_9; + s32 phi_v1_10; + s32 phi_v1_11; + + sp64 = get_textptr_for_textID(TEXT(LTITLE, 0x4c)); + sp58 = 0x37; + sp54 = 0x5f; + sp44 = get_video2_settings_txtClipW(); + temp_s0 = write_text_at_abs_coord(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(0, 0, 0)))), &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret = get_textptr_for_textID(TEXT(LTITLE, 0x4d)); + sp64 = temp_ret; + sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0x39; + sp54 = 0x79; + phi_s0 = temp_s0; + if (highlight_players != 0) + { + phi_s0 = microcode_constructor_related_to_menus(temp_s0, 0x37, 0x78, sp4C + 0x3c, 0x87, 0x32); + } + sp44 = get_video2_settings_txtClipW(); + temp_s0_2 = write_text_at_abs_coord(phi_s0, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret_2 = get_textptr_for_textID(TEXT(LTITLE, 0x4e)); + sp64 = temp_ret_2; + sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_2, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0x39; + sp54 = 0x8d; + phi_s0_2 = temp_s0_2; + if (highlight_scenario != 0) + { + phi_s0_2 = microcode_constructor_related_to_menus(temp_s0_2, 0x37, 0x8c, sp4C + 0x3c, 0x9b, 0x32); + } + sp44 = get_video2_settings_txtClipW(); + temp_s0_3 = write_text_at_abs_coord(phi_s0_2, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret_3 = get_textptr_for_textID(TEXT(LTITLE, 0x4f)); + sp64 = temp_ret_3; + sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_3, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0x39; + sp54 = 0xa1; + phi_s0_3 = temp_s0_3; + if (highlight_gameselect != 0) + { + phi_s0_3 = microcode_constructor_related_to_menus(temp_s0_3, 0x37, 0xa0, sp4C + 0x3c, 0xaf, 0x32); + } + if (unlock_stage_select != 0) + { + phi_v1 = 0xff; + } + else + { + phi_v1 = 0x70; + } + sp48 = (s32) phi_v1; + sp44 = get_video2_settings_txtClipW(); + temp_s0_4 = write_text_at_abs_coord(phi_s0_3, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret_4 = get_textptr_for_textID(TEXT(LTITLE, 0x50)); + sp64 = temp_ret_4; + sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_4, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0x39; + sp54 = 0xb5; + phi_s0_4 = temp_s0_4; + if (highlight_gamelength != 0) + { + phi_s0_4 = microcode_constructor_related_to_menus(temp_s0_4, 0x37, 0xb4, sp4C + 0x3c, 0xc3, 0x32); + } + if (unlock_game_length != 0) + { + phi_v1_2 = 0xff; + } + else + { + phi_v1_2 = 0x70; + } + sp48 = (s32) phi_v1_2; + sp44 = get_video2_settings_txtClipW(); + temp_s0_5 = write_text_at_abs_coord(phi_s0_4, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_2, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret_5 = get_textptr_for_textID(TEXT(LTITLE, 0x51)); + sp64 = temp_ret_5; + sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_5, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0x39; + sp54 = 0xc9; + phi_s0_5 = temp_s0_5; + if (highlight_weaponselect != 0) + { + phi_s0_5 = microcode_constructor_related_to_menus(temp_s0_5, 0x37, 0xc8, sp4C + 0x3c, 0xd7, 0x32); + } + if (unlock_weapon_select != 0) + { + phi_v1_3 = 0xff; + } + else + { + phi_v1_3 = 0x70; + } + sp48 = (s32) phi_v1_3; + sp44 = get_video2_settings_txtClipW(); + temp_s0_6 = write_text_at_abs_coord(phi_s0_5, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_3, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret_6 = get_textptr_for_textID(TEXT(LTITLE, 0x52)); + sp64 = temp_ret_6; + sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_6, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0x39; + sp54 = 0xdd; + phi_s0_6 = temp_s0_6; + if (highlight_character != 0) + { + phi_s0_6 = microcode_constructor_related_to_menus(temp_s0_6, 0x37, 0xdc, sp4C + 0x3c, 0xeb, 0x32); + } + if (unlock_chars != 0) + { + phi_v1_4 = 0xff; + } + else + { + phi_v1_4 = 0x70; + } + sp48 = (s32) phi_v1_4; + sp44 = get_video2_settings_txtClipW(); + temp_s0_7 = write_text_at_abs_coord(phi_s0_6, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_4, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret_7 = get_textptr_for_textID(TEXT(LTITLE, 0x53)); + sp64 = temp_ret_7; + sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_7, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0x39; + sp54 = 0xf1; + phi_s0_7 = temp_s0_7; + if (highlight_health != 0) + { + phi_s0_7 = microcode_constructor_related_to_menus(temp_s0_7, 0x37, 0xf0, sp4C + 0x3c, 0xff, 0x32); + } + if (unlock_handicap != 0) + { + phi_v1_5 = 0xff; + } + else + { + phi_v1_5 = 0x70; + } + sp48 = (s32) phi_v1_5; + sp44 = get_video2_settings_txtClipW(); + temp_s0_8 = write_text_at_abs_coord(phi_s0_7, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_5, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret_8 = get_textptr_for_textID(TEXT(LTITLE, 0x11e)); + sp64 = temp_ret_8; + sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_8, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0x39; + sp54 = 0x105; + phi_s0_8 = temp_s0_8; + if (highlight_controlstyle != 0) + { + phi_s0_8 = microcode_constructor_related_to_menus(temp_s0_8, 0x37, 0x104, sp4C + 0x3c, 0x113, 0x32); + } + if (unlock_control_style != 0) + { + phi_v1_6 = 0xff; + } + else + { + phi_v1_6 = 0x70; + } + sp48 = (s32) phi_v1_6; + sp44 = get_video2_settings_txtClipW(); + temp_s0_9 = write_text_at_abs_coord(phi_s0_8, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_6, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret_9 = get_textptr_for_textID(TEXT(LTITLE, 0x54)); + sp64 = temp_ret_9; + sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_9, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp58 = 0x39; + sp54 = 0x119; + phi_s0_9 = temp_s0_9; + if (highlight_aimadjustment != 0) + { + phi_s0_9 = microcode_constructor_related_to_menus(temp_s0_9, 0x37, 0x118, sp4C + 0x3c, 0x127, 0x32); + } + if (unlock_aim_sight != 0) + { + phi_v1_7 = 0xff; + } + else + { + phi_v1_7 = 0x70; + } + sp48 = (s32) phi_v1_7; + sp44 = get_video2_settings_txtClipW(); + temp_s0_10 = write_text_at_abs_coord(phi_s0_9, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_7, sp44, get_video2_settings_txtClipH(), 0, 0); + sprintf(&sp5C, &aD_7, selected_num_players); + sp58 = 0xa0; + sp54 = 0x79; + sp44 = get_video2_settings_txtClipW(); + temp_s0_11 = write_text_at_abs_coord(temp_s0_10, &sp58, &sp54, &sp5C, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp64 = get_textptr_for_textID((0x80030000 + (scenario * 4))->unk-4FAC); + sp58 = 0xa0; + sp54 = 0x8d; + sp44 = get_video2_settings_txtClipW(); + temp_s0_12 = write_text_at_abs_coord(temp_s0_11, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp64 = get_textptr_for_textID((0x80030000 + (MP_stage_selected * 0x18))->unk-4F8C); + sp58 = 0xa0; + sp54 = 0xa1; + if (unlock_stage_select != 0) + { + phi_v1_8 = 0xff; + } + else + { + phi_v1_8 = 0x70; + } + sp48 = (s32) phi_v1_8; + sp44 = get_video2_settings_txtClipW(); + temp_s0_13 = write_text_at_abs_coord(temp_s0_12, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_8, sp44, get_video2_settings_txtClipH(), 0, 0); + sp64 = get_textptr_for_textID((0x80030000 + (game_length * 0xc))->unk-500C); + sp58 = 0xa0; + sp54 = 0xb5; + if (unlock_game_length != 0) + { + phi_v1_9 = 0xff; + } + else + { + phi_v1_9 = 0x70; + } + sp48 = (s32) phi_v1_9; + sp44 = get_video2_settings_txtClipW(); + temp_s0_14 = write_text_at_abs_coord(temp_s0_13, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_9, sp44, get_video2_settings_txtClipH(), 0, 0); + sp64 = get_textptr_for_textID(*getPtrMPWeaponSetTextID()); + sp58 = 0xa0; + sp54 = 0xc9; + if (unlock_weapon_select != 0) + { + phi_v1_10 = 0xff; + } + else + { + phi_v1_10 = 0x70; + } + sp48 = (s32) phi_v1_10; + sp44 = get_video2_settings_txtClipW(); + temp_s0_15 = write_text_at_abs_coord(temp_s0_14, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_10, sp44, get_video2_settings_txtClipH(), 0, 0); + sp64 = get_textptr_for_textID((0x80030000 + (aim_sight_adjustment * 4))->unk-4AF0); + sp58 = 0xa0; + sp54 = 0x119; + if (unlock_aim_sight != 0) + { + phi_v1_11 = 0xff; + } + else + { + phi_v1_11 = 0x70; + } + sp48 = (s32) phi_v1_11; + sp44 = get_video2_settings_txtClipW(); + load_draw_selected_icon_folder_select(add_tab1_start(add_tab3_previous(write_text_at_abs_coord(temp_s0_15, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_11, sp44, get_video2_settings_txtClipH(), 0, 0)))); +} +#else +const char aD_7[] = "%d"; +GLOBAL_ASM( +.text +glabel constructor_menu0E_mpoptions +/* 045A40 7F010F10 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 045A44 7F010F14 AFBF003C */ sw $ra, 0x3c($sp) +/* 045A48 7F010F18 AFB00038 */ sw $s0, 0x38($sp) +/* 045A4C 7F010F1C 00002825 */ move $a1, $zero +/* 045A50 7F010F20 00003025 */ move $a2, $zero +/* 045A54 7F010F24 0C0011B4 */ jal set_setfillcolor +/* 045A58 7F010F28 00003825 */ move $a3, $zero +/* 045A5C 7F010F2C 0C000FBE */ jal insert_generic_fillrect +/* 045A60 7F010F30 00402025 */ move $a0, $v0 +/* 045A64 7F010F34 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 045A68 7F010F38 00402025 */ move $a0, $v0 +/* 045A6C 7F010F3C 0FC2B366 */ jal microcode_constructor +/* 045A70 7F010F40 00402025 */ move $a0, $v0 +/* 045A74 7F010F44 00408025 */ move $s0, $v0 +/* 045A78 7F010F48 0FC30776 */ jal get_textptr_for_textID +/* 045A7C 7F010F4C 34049C4C */ li $a0, 40012 +/* 045A80 7F010F50 240E0037 */ li $t6, 55 +/* 045A84 7F010F54 240F005F */ li $t7, 95 +/* 045A88 7F010F58 AFA20064 */ sw $v0, 0x64($sp) +/* 045A8C 7F010F5C AFAE0058 */ sw $t6, 0x58($sp) +/* 045A90 7F010F60 0C001107 */ jal get_video2_settings_txtClipW +/* 045A94 7F010F64 AFAF0054 */ sw $t7, 0x54($sp) +/* 045A98 7F010F68 0C00110B */ jal get_video2_settings_txtClipH +/* 045A9C 7F010F6C A7A20044 */ sh $v0, 0x44($sp) +/* 045AA0 7F010F70 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 045AA4 7F010F74 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 045AA8 7F010F78 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 045AAC 7F010F7C 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 045AB0 7F010F80 87A90044 */ lh $t1, 0x44($sp) +/* 045AB4 7F010F84 240800FF */ li $t0, 255 +/* 045AB8 7F010F88 AFA80018 */ sw $t0, 0x18($sp) +/* 045ABC 7F010F8C 02002025 */ move $a0, $s0 +/* 045AC0 7F010F90 27A50058 */ addiu $a1, $sp, 0x58 +/* 045AC4 7F010F94 27A60054 */ addiu $a2, $sp, 0x54 +/* 045AC8 7F010F98 8FA70064 */ lw $a3, 0x64($sp) +/* 045ACC 7F010F9C AFA20020 */ sw $v0, 0x20($sp) +/* 045AD0 7F010FA0 AFA00024 */ sw $zero, 0x24($sp) +/* 045AD4 7F010FA4 AFA00028 */ sw $zero, 0x28($sp) +/* 045AD8 7F010FA8 AFB90014 */ sw $t9, 0x14($sp) +/* 045ADC 7F010FAC AFB80010 */ sw $t8, 0x10($sp) +/* 045AE0 7F010FB0 0FC025D8 */ jal write_text_at_abs_coord +/* 045AE4 7F010FB4 AFA9001C */ sw $t1, 0x1c($sp) +/* 045AE8 7F010FB8 00408025 */ move $s0, $v0 +/* 045AEC 7F010FBC 0FC30776 */ jal get_textptr_for_textID +/* 045AF0 7F010FC0 34049C4D */ li $a0, 40013 +/* 045AF4 7F010FC4 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 045AF8 7F010FC8 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 045AFC 7F010FCC 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 045B00 7F010FD0 AFA20064 */ sw $v0, 0x64($sp) +/* 045B04 7F010FD4 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 045B08 7F010FD8 27A40050 */ addiu $a0, $sp, 0x50 +/* 045B0C 7F010FDC 27A5004C */ addiu $a1, $sp, 0x4c +/* 045B10 7F010FE0 00403025 */ move $a2, $v0 +/* 045B14 7F010FE4 AFA00014 */ sw $zero, 0x14($sp) +/* 045B18 7F010FE8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 045B1C 7F010FEC AFAA0010 */ sw $t2, 0x10($sp) +/* 045B20 7F010FF0 3C0D8007 */ lui $t5, %hi(highlight_players) +/* 045B24 7F010FF4 8DAD97C8 */ lw $t5, %lo(highlight_players)($t5) +/* 045B28 7F010FF8 240B0039 */ li $t3, 57 +/* 045B2C 7F010FFC 240C0079 */ li $t4, 121 +/* 045B30 7F011000 AFAB0058 */ sw $t3, 0x58($sp) +/* 045B34 7F011004 11A0000C */ beqz $t5, .L7F011038 +/* 045B38 7F011008 AFAC0054 */ sw $t4, 0x54($sp) +/* 045B3C 7F01100C 8FA7004C */ lw $a3, 0x4c($sp) +/* 045B40 7F011010 240E0087 */ li $t6, 135 +/* 045B44 7F011014 240F0032 */ li $t7, 50 +/* 045B48 7F011018 AFAF0014 */ sw $t7, 0x14($sp) +/* 045B4C 7F01101C AFAE0010 */ sw $t6, 0x10($sp) +/* 045B50 7F011020 02002025 */ move $a0, $s0 +/* 045B54 7F011024 24050037 */ li $a1, 55 +/* 045B58 7F011028 24060078 */ li $a2, 120 +/* 045B5C 7F01102C 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 045B60 7F011030 24E7003C */ addiu $a3, $a3, 0x3c +/* 045B64 7F011034 00408025 */ move $s0, $v0 +.L7F011038: +/* 045B68 7F011038 0C001107 */ jal get_video2_settings_txtClipW +/* 045B6C 7F01103C 00000000 */ nop +/* 045B70 7F011040 0C00110B */ jal get_video2_settings_txtClipH +/* 045B74 7F011044 A7A20044 */ sh $v0, 0x44($sp) +/* 045B78 7F011048 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 045B7C 7F01104C 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 045B80 7F011050 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 045B84 7F011054 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 045B88 7F011058 87A90044 */ lh $t1, 0x44($sp) +/* 045B8C 7F01105C 240800FF */ li $t0, 255 +/* 045B90 7F011060 AFA80018 */ sw $t0, 0x18($sp) +/* 045B94 7F011064 02002025 */ move $a0, $s0 +/* 045B98 7F011068 27A50058 */ addiu $a1, $sp, 0x58 +/* 045B9C 7F01106C 27A60054 */ addiu $a2, $sp, 0x54 +/* 045BA0 7F011070 8FA70064 */ lw $a3, 0x64($sp) +/* 045BA4 7F011074 AFA20020 */ sw $v0, 0x20($sp) +/* 045BA8 7F011078 AFA00024 */ sw $zero, 0x24($sp) +/* 045BAC 7F01107C AFA00028 */ sw $zero, 0x28($sp) +/* 045BB0 7F011080 AFB90014 */ sw $t9, 0x14($sp) +/* 045BB4 7F011084 AFB80010 */ sw $t8, 0x10($sp) +/* 045BB8 7F011088 0FC025D8 */ jal write_text_at_abs_coord +/* 045BBC 7F01108C AFA9001C */ sw $t1, 0x1c($sp) +/* 045BC0 7F011090 00408025 */ move $s0, $v0 +/* 045BC4 7F011094 0FC30776 */ jal get_textptr_for_textID +/* 045BC8 7F011098 34049C4E */ li $a0, 40014 +/* 045BCC 7F01109C 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 045BD0 7F0110A0 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 045BD4 7F0110A4 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 045BD8 7F0110A8 AFA20064 */ sw $v0, 0x64($sp) +/* 045BDC 7F0110AC 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 045BE0 7F0110B0 27A40050 */ addiu $a0, $sp, 0x50 +/* 045BE4 7F0110B4 27A5004C */ addiu $a1, $sp, 0x4c +/* 045BE8 7F0110B8 00403025 */ move $a2, $v0 +/* 045BEC 7F0110BC AFA00014 */ sw $zero, 0x14($sp) +/* 045BF0 7F0110C0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 045BF4 7F0110C4 AFAA0010 */ sw $t2, 0x10($sp) +/* 045BF8 7F0110C8 3C0D8007 */ lui $t5, %hi(highlight_scenario) +/* 045BFC 7F0110CC 8DAD97CC */ lw $t5, %lo(highlight_scenario)($t5) +/* 045C00 7F0110D0 240B0039 */ li $t3, 57 +/* 045C04 7F0110D4 240C008D */ li $t4, 141 +/* 045C08 7F0110D8 AFAB0058 */ sw $t3, 0x58($sp) +/* 045C0C 7F0110DC 11A0000C */ beqz $t5, .L7F011110 +/* 045C10 7F0110E0 AFAC0054 */ sw $t4, 0x54($sp) +/* 045C14 7F0110E4 8FA7004C */ lw $a3, 0x4c($sp) +/* 045C18 7F0110E8 240E009B */ li $t6, 155 +/* 045C1C 7F0110EC 240F0032 */ li $t7, 50 +/* 045C20 7F0110F0 AFAF0014 */ sw $t7, 0x14($sp) +/* 045C24 7F0110F4 AFAE0010 */ sw $t6, 0x10($sp) +/* 045C28 7F0110F8 02002025 */ move $a0, $s0 +/* 045C2C 7F0110FC 24050037 */ li $a1, 55 +/* 045C30 7F011100 2406008C */ li $a2, 140 +/* 045C34 7F011104 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 045C38 7F011108 24E7003C */ addiu $a3, $a3, 0x3c +/* 045C3C 7F01110C 00408025 */ move $s0, $v0 +.L7F011110: +/* 045C40 7F011110 0C001107 */ jal get_video2_settings_txtClipW +/* 045C44 7F011114 00000000 */ nop +/* 045C48 7F011118 0C00110B */ jal get_video2_settings_txtClipH +/* 045C4C 7F01111C A7A20044 */ sh $v0, 0x44($sp) +/* 045C50 7F011120 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 045C54 7F011124 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 045C58 7F011128 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 045C5C 7F01112C 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 045C60 7F011130 87A90044 */ lh $t1, 0x44($sp) +/* 045C64 7F011134 240800FF */ li $t0, 255 +/* 045C68 7F011138 AFA80018 */ sw $t0, 0x18($sp) +/* 045C6C 7F01113C 02002025 */ move $a0, $s0 +/* 045C70 7F011140 27A50058 */ addiu $a1, $sp, 0x58 +/* 045C74 7F011144 27A60054 */ addiu $a2, $sp, 0x54 +/* 045C78 7F011148 8FA70064 */ lw $a3, 0x64($sp) +/* 045C7C 7F01114C AFA20020 */ sw $v0, 0x20($sp) +/* 045C80 7F011150 AFA00024 */ sw $zero, 0x24($sp) +/* 045C84 7F011154 AFA00028 */ sw $zero, 0x28($sp) +/* 045C88 7F011158 AFB90014 */ sw $t9, 0x14($sp) +/* 045C8C 7F01115C AFB80010 */ sw $t8, 0x10($sp) +/* 045C90 7F011160 0FC025D8 */ jal write_text_at_abs_coord +/* 045C94 7F011164 AFA9001C */ sw $t1, 0x1c($sp) +/* 045C98 7F011168 00408025 */ move $s0, $v0 +/* 045C9C 7F01116C 0FC30776 */ jal get_textptr_for_textID +/* 045CA0 7F011170 34049C4F */ li $a0, 40015 +/* 045CA4 7F011174 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 045CA8 7F011178 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 045CAC 7F01117C 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 045CB0 7F011180 AFA20064 */ sw $v0, 0x64($sp) +/* 045CB4 7F011184 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 045CB8 7F011188 27A40050 */ addiu $a0, $sp, 0x50 +/* 045CBC 7F01118C 27A5004C */ addiu $a1, $sp, 0x4c +/* 045CC0 7F011190 00403025 */ move $a2, $v0 +/* 045CC4 7F011194 AFA00014 */ sw $zero, 0x14($sp) +/* 045CC8 7F011198 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 045CCC 7F01119C AFAA0010 */ sw $t2, 0x10($sp) +/* 045CD0 7F0111A0 3C0D8007 */ lui $t5, %hi(highlight_gameselect) +/* 045CD4 7F0111A4 8DAD97D0 */ lw $t5, %lo(highlight_gameselect)($t5) +/* 045CD8 7F0111A8 240B0039 */ li $t3, 57 +/* 045CDC 7F0111AC 240C00A1 */ li $t4, 161 +/* 045CE0 7F0111B0 AFAB0058 */ sw $t3, 0x58($sp) +/* 045CE4 7F0111B4 11A0000C */ beqz $t5, .L7F0111E8 +/* 045CE8 7F0111B8 AFAC0054 */ sw $t4, 0x54($sp) +/* 045CEC 7F0111BC 8FA7004C */ lw $a3, 0x4c($sp) +/* 045CF0 7F0111C0 240E00AF */ li $t6, 175 +/* 045CF4 7F0111C4 240F0032 */ li $t7, 50 +/* 045CF8 7F0111C8 AFAF0014 */ sw $t7, 0x14($sp) +/* 045CFC 7F0111CC AFAE0010 */ sw $t6, 0x10($sp) +/* 045D00 7F0111D0 02002025 */ move $a0, $s0 +/* 045D04 7F0111D4 24050037 */ li $a1, 55 +/* 045D08 7F0111D8 240600A0 */ li $a2, 160 +/* 045D0C 7F0111DC 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 045D10 7F0111E0 24E7003C */ addiu $a3, $a3, 0x3c +/* 045D14 7F0111E4 00408025 */ move $s0, $v0 +.L7F0111E8: +/* 045D18 7F0111E8 3C188003 */ lui $t8, %hi(unlock_stage_select) +/* 045D1C 7F0111EC 8F18B544 */ lw $t8, %lo(unlock_stage_select)($t8) +/* 045D20 7F0111F0 53000004 */ beql $t8, $zero, .L7F011204 +/* 045D24 7F0111F4 24030070 */ li $v1, 112 +/* 045D28 7F0111F8 10000002 */ b .L7F011204 +/* 045D2C 7F0111FC 240300FF */ li $v1, 255 +/* 045D30 7F011200 24030070 */ li $v1, 112 +.L7F011204: +/* 045D34 7F011204 0C001107 */ jal get_video2_settings_txtClipW +/* 045D38 7F011208 AFA30048 */ sw $v1, 0x48($sp) +/* 045D3C 7F01120C 0C00110B */ jal get_video2_settings_txtClipH +/* 045D40 7F011210 A7A20044 */ sh $v0, 0x44($sp) +/* 045D44 7F011214 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 045D48 7F011218 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 045D4C 7F01121C 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 045D50 7F011220 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 045D54 7F011224 8FA30048 */ lw $v1, 0x48($sp) +/* 045D58 7F011228 87A90044 */ lh $t1, 0x44($sp) +/* 045D5C 7F01122C 02002025 */ move $a0, $s0 +/* 045D60 7F011230 27A50058 */ addiu $a1, $sp, 0x58 +/* 045D64 7F011234 27A60054 */ addiu $a2, $sp, 0x54 +/* 045D68 7F011238 8FA70064 */ lw $a3, 0x64($sp) +/* 045D6C 7F01123C AFA20020 */ sw $v0, 0x20($sp) +/* 045D70 7F011240 AFA00024 */ sw $zero, 0x24($sp) +/* 045D74 7F011244 AFA00028 */ sw $zero, 0x28($sp) +/* 045D78 7F011248 AFA80014 */ sw $t0, 0x14($sp) +/* 045D7C 7F01124C AFB90010 */ sw $t9, 0x10($sp) +/* 045D80 7F011250 AFA30018 */ sw $v1, 0x18($sp) +/* 045D84 7F011254 0FC025D8 */ jal write_text_at_abs_coord +/* 045D88 7F011258 AFA9001C */ sw $t1, 0x1c($sp) +/* 045D8C 7F01125C 00408025 */ move $s0, $v0 +/* 045D90 7F011260 0FC30776 */ jal get_textptr_for_textID +/* 045D94 7F011264 34049C50 */ li $a0, 40016 +/* 045D98 7F011268 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 045D9C 7F01126C 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 045DA0 7F011270 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 045DA4 7F011274 AFA20064 */ sw $v0, 0x64($sp) +/* 045DA8 7F011278 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 045DAC 7F01127C 27A40050 */ addiu $a0, $sp, 0x50 +/* 045DB0 7F011280 27A5004C */ addiu $a1, $sp, 0x4c +/* 045DB4 7F011284 00403025 */ move $a2, $v0 +/* 045DB8 7F011288 AFA00014 */ sw $zero, 0x14($sp) +/* 045DBC 7F01128C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 045DC0 7F011290 AFAA0010 */ sw $t2, 0x10($sp) +/* 045DC4 7F011294 3C0D8007 */ lui $t5, %hi(highlight_gamelength) +/* 045DC8 7F011298 8DAD97D4 */ lw $t5, %lo(highlight_gamelength)($t5) +/* 045DCC 7F01129C 240B0039 */ li $t3, 57 +/* 045DD0 7F0112A0 240C00B5 */ li $t4, 181 +/* 045DD4 7F0112A4 AFAB0058 */ sw $t3, 0x58($sp) +/* 045DD8 7F0112A8 11A0000C */ beqz $t5, .L7F0112DC +/* 045DDC 7F0112AC AFAC0054 */ sw $t4, 0x54($sp) +/* 045DE0 7F0112B0 8FA7004C */ lw $a3, 0x4c($sp) +/* 045DE4 7F0112B4 240E00C3 */ li $t6, 195 +/* 045DE8 7F0112B8 240F0032 */ li $t7, 50 +/* 045DEC 7F0112BC AFAF0014 */ sw $t7, 0x14($sp) +/* 045DF0 7F0112C0 AFAE0010 */ sw $t6, 0x10($sp) +/* 045DF4 7F0112C4 02002025 */ move $a0, $s0 +/* 045DF8 7F0112C8 24050037 */ li $a1, 55 +/* 045DFC 7F0112CC 240600B4 */ li $a2, 180 +/* 045E00 7F0112D0 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 045E04 7F0112D4 24E7003C */ addiu $a3, $a3, 0x3c +/* 045E08 7F0112D8 00408025 */ move $s0, $v0 +.L7F0112DC: +/* 045E0C 7F0112DC 3C188003 */ lui $t8, %hi(unlock_game_length) +/* 045E10 7F0112E0 8F18B548 */ lw $t8, %lo(unlock_game_length)($t8) +/* 045E14 7F0112E4 53000004 */ beql $t8, $zero, .L7F0112F8 +/* 045E18 7F0112E8 24030070 */ li $v1, 112 +/* 045E1C 7F0112EC 10000002 */ b .L7F0112F8 +/* 045E20 7F0112F0 240300FF */ li $v1, 255 +/* 045E24 7F0112F4 24030070 */ li $v1, 112 +.L7F0112F8: +/* 045E28 7F0112F8 0C001107 */ jal get_video2_settings_txtClipW +/* 045E2C 7F0112FC AFA30048 */ sw $v1, 0x48($sp) +/* 045E30 7F011300 0C00110B */ jal get_video2_settings_txtClipH +/* 045E34 7F011304 A7A20044 */ sh $v0, 0x44($sp) +/* 045E38 7F011308 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 045E3C 7F01130C 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 045E40 7F011310 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 045E44 7F011314 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 045E48 7F011318 8FA30048 */ lw $v1, 0x48($sp) +/* 045E4C 7F01131C 87A90044 */ lh $t1, 0x44($sp) +/* 045E50 7F011320 02002025 */ move $a0, $s0 +/* 045E54 7F011324 27A50058 */ addiu $a1, $sp, 0x58 +/* 045E58 7F011328 27A60054 */ addiu $a2, $sp, 0x54 +/* 045E5C 7F01132C 8FA70064 */ lw $a3, 0x64($sp) +/* 045E60 7F011330 AFA20020 */ sw $v0, 0x20($sp) +/* 045E64 7F011334 AFA00024 */ sw $zero, 0x24($sp) +/* 045E68 7F011338 AFA00028 */ sw $zero, 0x28($sp) +/* 045E6C 7F01133C AFA80014 */ sw $t0, 0x14($sp) +/* 045E70 7F011340 AFB90010 */ sw $t9, 0x10($sp) +/* 045E74 7F011344 AFA30018 */ sw $v1, 0x18($sp) +/* 045E78 7F011348 0FC025D8 */ jal write_text_at_abs_coord +/* 045E7C 7F01134C AFA9001C */ sw $t1, 0x1c($sp) +/* 045E80 7F011350 00408025 */ move $s0, $v0 +/* 045E84 7F011354 0FC30776 */ jal get_textptr_for_textID +/* 045E88 7F011358 34049C51 */ li $a0, 40017 +/* 045E8C 7F01135C 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 045E90 7F011360 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 045E94 7F011364 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 045E98 7F011368 AFA20064 */ sw $v0, 0x64($sp) +/* 045E9C 7F01136C 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 045EA0 7F011370 27A40050 */ addiu $a0, $sp, 0x50 +/* 045EA4 7F011374 27A5004C */ addiu $a1, $sp, 0x4c +/* 045EA8 7F011378 00403025 */ move $a2, $v0 +/* 045EAC 7F01137C AFA00014 */ sw $zero, 0x14($sp) +/* 045EB0 7F011380 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 045EB4 7F011384 AFAA0010 */ sw $t2, 0x10($sp) +/* 045EB8 7F011388 3C0D8007 */ lui $t5, %hi(highlight_weaponselect) +/* 045EBC 7F01138C 8DAD97DC */ lw $t5, %lo(highlight_weaponselect)($t5) +/* 045EC0 7F011390 240B0039 */ li $t3, 57 +/* 045EC4 7F011394 240C00C9 */ li $t4, 201 +/* 045EC8 7F011398 AFAB0058 */ sw $t3, 0x58($sp) +/* 045ECC 7F01139C 11A0000C */ beqz $t5, .L7F0113D0 +/* 045ED0 7F0113A0 AFAC0054 */ sw $t4, 0x54($sp) +/* 045ED4 7F0113A4 8FA7004C */ lw $a3, 0x4c($sp) +/* 045ED8 7F0113A8 240E00D7 */ li $t6, 215 +/* 045EDC 7F0113AC 240F0032 */ li $t7, 50 +/* 045EE0 7F0113B0 AFAF0014 */ sw $t7, 0x14($sp) +/* 045EE4 7F0113B4 AFAE0010 */ sw $t6, 0x10($sp) +/* 045EE8 7F0113B8 02002025 */ move $a0, $s0 +/* 045EEC 7F0113BC 24050037 */ li $a1, 55 +/* 045EF0 7F0113C0 240600C8 */ li $a2, 200 +/* 045EF4 7F0113C4 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 045EF8 7F0113C8 24E7003C */ addiu $a3, $a3, 0x3c +/* 045EFC 7F0113CC 00408025 */ move $s0, $v0 +.L7F0113D0: +/* 045F00 7F0113D0 3C188003 */ lui $t8, %hi(unlock_weapon_select) +/* 045F04 7F0113D4 8F18B550 */ lw $t8, %lo(unlock_weapon_select)($t8) +/* 045F08 7F0113D8 53000004 */ beql $t8, $zero, .L7F0113EC +/* 045F0C 7F0113DC 24030070 */ li $v1, 112 +/* 045F10 7F0113E0 10000002 */ b .L7F0113EC +/* 045F14 7F0113E4 240300FF */ li $v1, 255 +/* 045F18 7F0113E8 24030070 */ li $v1, 112 +.L7F0113EC: +/* 045F1C 7F0113EC 0C001107 */ jal get_video2_settings_txtClipW +/* 045F20 7F0113F0 AFA30048 */ sw $v1, 0x48($sp) +/* 045F24 7F0113F4 0C00110B */ jal get_video2_settings_txtClipH +/* 045F28 7F0113F8 A7A20044 */ sh $v0, 0x44($sp) +/* 045F2C 7F0113FC 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 045F30 7F011400 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 045F34 7F011404 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 045F38 7F011408 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 045F3C 7F01140C 8FA30048 */ lw $v1, 0x48($sp) +/* 045F40 7F011410 87A90044 */ lh $t1, 0x44($sp) +/* 045F44 7F011414 02002025 */ move $a0, $s0 +/* 045F48 7F011418 27A50058 */ addiu $a1, $sp, 0x58 +/* 045F4C 7F01141C 27A60054 */ addiu $a2, $sp, 0x54 +/* 045F50 7F011420 8FA70064 */ lw $a3, 0x64($sp) +/* 045F54 7F011424 AFA20020 */ sw $v0, 0x20($sp) +/* 045F58 7F011428 AFA00024 */ sw $zero, 0x24($sp) +/* 045F5C 7F01142C AFA00028 */ sw $zero, 0x28($sp) +/* 045F60 7F011430 AFA80014 */ sw $t0, 0x14($sp) +/* 045F64 7F011434 AFB90010 */ sw $t9, 0x10($sp) +/* 045F68 7F011438 AFA30018 */ sw $v1, 0x18($sp) +/* 045F6C 7F01143C 0FC025D8 */ jal write_text_at_abs_coord +/* 045F70 7F011440 AFA9001C */ sw $t1, 0x1c($sp) +/* 045F74 7F011444 00408025 */ move $s0, $v0 +/* 045F78 7F011448 0FC30776 */ jal get_textptr_for_textID +/* 045F7C 7F01144C 34049C52 */ li $a0, 40018 +/* 045F80 7F011450 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 045F84 7F011454 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 045F88 7F011458 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 045F8C 7F01145C AFA20064 */ sw $v0, 0x64($sp) +/* 045F90 7F011460 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 045F94 7F011464 27A40050 */ addiu $a0, $sp, 0x50 +/* 045F98 7F011468 27A5004C */ addiu $a1, $sp, 0x4c +/* 045F9C 7F01146C 00403025 */ move $a2, $v0 +/* 045FA0 7F011470 AFA00014 */ sw $zero, 0x14($sp) +/* 045FA4 7F011474 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 045FA8 7F011478 AFAA0010 */ sw $t2, 0x10($sp) +/* 045FAC 7F01147C 3C0D8007 */ lui $t5, %hi(highlight_character) +/* 045FB0 7F011480 8DAD97D8 */ lw $t5, %lo(highlight_character)($t5) +/* 045FB4 7F011484 240B0039 */ li $t3, 57 +/* 045FB8 7F011488 240C00DD */ li $t4, 221 +/* 045FBC 7F01148C AFAB0058 */ sw $t3, 0x58($sp) +/* 045FC0 7F011490 11A0000C */ beqz $t5, .L7F0114C4 +/* 045FC4 7F011494 AFAC0054 */ sw $t4, 0x54($sp) +/* 045FC8 7F011498 8FA7004C */ lw $a3, 0x4c($sp) +/* 045FCC 7F01149C 240E00EB */ li $t6, 235 +/* 045FD0 7F0114A0 240F0032 */ li $t7, 50 +/* 045FD4 7F0114A4 AFAF0014 */ sw $t7, 0x14($sp) +/* 045FD8 7F0114A8 AFAE0010 */ sw $t6, 0x10($sp) +/* 045FDC 7F0114AC 02002025 */ move $a0, $s0 +/* 045FE0 7F0114B0 24050037 */ li $a1, 55 +/* 045FE4 7F0114B4 240600DC */ li $a2, 220 +/* 045FE8 7F0114B8 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 045FEC 7F0114BC 24E7003C */ addiu $a3, $a3, 0x3c +/* 045FF0 7F0114C0 00408025 */ move $s0, $v0 +.L7F0114C4: +/* 045FF4 7F0114C4 3C188003 */ lui $t8, %hi(unlock_chars) +/* 045FF8 7F0114C8 8F18B54C */ lw $t8, %lo(unlock_chars)($t8) +/* 045FFC 7F0114CC 53000004 */ beql $t8, $zero, .L7F0114E0 +/* 046000 7F0114D0 24030070 */ li $v1, 112 +/* 046004 7F0114D4 10000002 */ b .L7F0114E0 +/* 046008 7F0114D8 240300FF */ li $v1, 255 +/* 04600C 7F0114DC 24030070 */ li $v1, 112 +.L7F0114E0: +/* 046010 7F0114E0 0C001107 */ jal get_video2_settings_txtClipW +/* 046014 7F0114E4 AFA30048 */ sw $v1, 0x48($sp) +/* 046018 7F0114E8 0C00110B */ jal get_video2_settings_txtClipH +/* 04601C 7F0114EC A7A20044 */ sh $v0, 0x44($sp) +/* 046020 7F0114F0 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 046024 7F0114F4 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 046028 7F0114F8 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 04602C 7F0114FC 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 046030 7F011500 8FA30048 */ lw $v1, 0x48($sp) +/* 046034 7F011504 87A90044 */ lh $t1, 0x44($sp) +/* 046038 7F011508 02002025 */ move $a0, $s0 +/* 04603C 7F01150C 27A50058 */ addiu $a1, $sp, 0x58 +/* 046040 7F011510 27A60054 */ addiu $a2, $sp, 0x54 +/* 046044 7F011514 8FA70064 */ lw $a3, 0x64($sp) +/* 046048 7F011518 AFA20020 */ sw $v0, 0x20($sp) +/* 04604C 7F01151C AFA00024 */ sw $zero, 0x24($sp) +/* 046050 7F011520 AFA00028 */ sw $zero, 0x28($sp) +/* 046054 7F011524 AFA80014 */ sw $t0, 0x14($sp) +/* 046058 7F011528 AFB90010 */ sw $t9, 0x10($sp) +/* 04605C 7F01152C AFA30018 */ sw $v1, 0x18($sp) +/* 046060 7F011530 0FC025D8 */ jal write_text_at_abs_coord +/* 046064 7F011534 AFA9001C */ sw $t1, 0x1c($sp) +/* 046068 7F011538 00408025 */ move $s0, $v0 +/* 04606C 7F01153C 0FC30776 */ jal get_textptr_for_textID +/* 046070 7F011540 34049C53 */ li $a0, 40019 +/* 046074 7F011544 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 046078 7F011548 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 04607C 7F01154C 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 046080 7F011550 AFA20064 */ sw $v0, 0x64($sp) +/* 046084 7F011554 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 046088 7F011558 27A40050 */ addiu $a0, $sp, 0x50 +/* 04608C 7F01155C 27A5004C */ addiu $a1, $sp, 0x4c +/* 046090 7F011560 00403025 */ move $a2, $v0 +/* 046094 7F011564 AFA00014 */ sw $zero, 0x14($sp) +/* 046098 7F011568 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04609C 7F01156C AFAA0010 */ sw $t2, 0x10($sp) +/* 0460A0 7F011570 3C0D8007 */ lui $t5, %hi(highlight_health) +/* 0460A4 7F011574 8DAD97E0 */ lw $t5, %lo(highlight_health)($t5) +/* 0460A8 7F011578 240B0039 */ li $t3, 57 +/* 0460AC 7F01157C 240C00F1 */ li $t4, 241 +/* 0460B0 7F011580 AFAB0058 */ sw $t3, 0x58($sp) +/* 0460B4 7F011584 11A0000C */ beqz $t5, .L7F0115B8 +/* 0460B8 7F011588 AFAC0054 */ sw $t4, 0x54($sp) +/* 0460BC 7F01158C 8FA7004C */ lw $a3, 0x4c($sp) +/* 0460C0 7F011590 240E00FF */ li $t6, 255 +/* 0460C4 7F011594 240F0032 */ li $t7, 50 +/* 0460C8 7F011598 AFAF0014 */ sw $t7, 0x14($sp) +/* 0460CC 7F01159C AFAE0010 */ sw $t6, 0x10($sp) +/* 0460D0 7F0115A0 02002025 */ move $a0, $s0 +/* 0460D4 7F0115A4 24050037 */ li $a1, 55 +/* 0460D8 7F0115A8 240600F0 */ li $a2, 240 +/* 0460DC 7F0115AC 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0460E0 7F0115B0 24E7003C */ addiu $a3, $a3, 0x3c +/* 0460E4 7F0115B4 00408025 */ move $s0, $v0 +.L7F0115B8: +/* 0460E8 7F0115B8 3C188003 */ lui $t8, %hi(unlock_handicap) +/* 0460EC 7F0115BC 8F18B554 */ lw $t8, %lo(unlock_handicap)($t8) +/* 0460F0 7F0115C0 53000004 */ beql $t8, $zero, .L7F0115D4 +/* 0460F4 7F0115C4 24030070 */ li $v1, 112 +/* 0460F8 7F0115C8 10000002 */ b .L7F0115D4 +/* 0460FC 7F0115CC 240300FF */ li $v1, 255 +/* 046100 7F0115D0 24030070 */ li $v1, 112 +.L7F0115D4: +/* 046104 7F0115D4 0C001107 */ jal get_video2_settings_txtClipW +/* 046108 7F0115D8 AFA30048 */ sw $v1, 0x48($sp) +/* 04610C 7F0115DC 0C00110B */ jal get_video2_settings_txtClipH +/* 046110 7F0115E0 A7A20044 */ sh $v0, 0x44($sp) +/* 046114 7F0115E4 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 046118 7F0115E8 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 04611C 7F0115EC 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 046120 7F0115F0 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 046124 7F0115F4 8FA30048 */ lw $v1, 0x48($sp) +/* 046128 7F0115F8 87A90044 */ lh $t1, 0x44($sp) +/* 04612C 7F0115FC 02002025 */ move $a0, $s0 +/* 046130 7F011600 27A50058 */ addiu $a1, $sp, 0x58 +/* 046134 7F011604 27A60054 */ addiu $a2, $sp, 0x54 +/* 046138 7F011608 8FA70064 */ lw $a3, 0x64($sp) +/* 04613C 7F01160C AFA20020 */ sw $v0, 0x20($sp) +/* 046140 7F011610 AFA00024 */ sw $zero, 0x24($sp) +/* 046144 7F011614 AFA00028 */ sw $zero, 0x28($sp) +/* 046148 7F011618 AFA80014 */ sw $t0, 0x14($sp) +/* 04614C 7F01161C AFB90010 */ sw $t9, 0x10($sp) +/* 046150 7F011620 AFA30018 */ sw $v1, 0x18($sp) +/* 046154 7F011624 0FC025D8 */ jal write_text_at_abs_coord +/* 046158 7F011628 AFA9001C */ sw $t1, 0x1c($sp) +/* 04615C 7F01162C 00408025 */ move $s0, $v0 +/* 046160 7F011630 0FC30776 */ jal get_textptr_for_textID +/* 046164 7F011634 34049D1E */ li $a0, 40222 +/* 046168 7F011638 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 04616C 7F01163C 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 046170 7F011640 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 046174 7F011644 AFA20064 */ sw $v0, 0x64($sp) +/* 046178 7F011648 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04617C 7F01164C 27A40050 */ addiu $a0, $sp, 0x50 +/* 046180 7F011650 27A5004C */ addiu $a1, $sp, 0x4c +/* 046184 7F011654 00403025 */ move $a2, $v0 +/* 046188 7F011658 AFA00014 */ sw $zero, 0x14($sp) +/* 04618C 7F01165C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 046190 7F011660 AFAA0010 */ sw $t2, 0x10($sp) +/* 046194 7F011664 3C0D8007 */ lui $t5, %hi(highlight_controlstyle) +/* 046198 7F011668 8DAD97E4 */ lw $t5, %lo(highlight_controlstyle)($t5) +/* 04619C 7F01166C 240B0039 */ li $t3, 57 +/* 0461A0 7F011670 240C0105 */ li $t4, 261 +/* 0461A4 7F011674 AFAB0058 */ sw $t3, 0x58($sp) +/* 0461A8 7F011678 11A0000C */ beqz $t5, .L7F0116AC +/* 0461AC 7F01167C AFAC0054 */ sw $t4, 0x54($sp) +/* 0461B0 7F011680 8FA7004C */ lw $a3, 0x4c($sp) +/* 0461B4 7F011684 240E0113 */ li $t6, 275 +/* 0461B8 7F011688 240F0032 */ li $t7, 50 +/* 0461BC 7F01168C AFAF0014 */ sw $t7, 0x14($sp) +/* 0461C0 7F011690 AFAE0010 */ sw $t6, 0x10($sp) +/* 0461C4 7F011694 02002025 */ move $a0, $s0 +/* 0461C8 7F011698 24050037 */ li $a1, 55 +/* 0461CC 7F01169C 24060104 */ li $a2, 260 +/* 0461D0 7F0116A0 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0461D4 7F0116A4 24E7003C */ addiu $a3, $a3, 0x3c +/* 0461D8 7F0116A8 00408025 */ move $s0, $v0 +.L7F0116AC: +/* 0461DC 7F0116AC 3C188003 */ lui $t8, %hi(unlock_control_style) +/* 0461E0 7F0116B0 8F18B558 */ lw $t8, %lo(unlock_control_style)($t8) +/* 0461E4 7F0116B4 53000004 */ beql $t8, $zero, .L7F0116C8 +/* 0461E8 7F0116B8 24030070 */ li $v1, 112 +/* 0461EC 7F0116BC 10000002 */ b .L7F0116C8 +/* 0461F0 7F0116C0 240300FF */ li $v1, 255 +/* 0461F4 7F0116C4 24030070 */ li $v1, 112 +.L7F0116C8: +/* 0461F8 7F0116C8 0C001107 */ jal get_video2_settings_txtClipW +/* 0461FC 7F0116CC AFA30048 */ sw $v1, 0x48($sp) +/* 046200 7F0116D0 0C00110B */ jal get_video2_settings_txtClipH +/* 046204 7F0116D4 A7A20044 */ sh $v0, 0x44($sp) +/* 046208 7F0116D8 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 04620C 7F0116DC 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 046210 7F0116E0 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 046214 7F0116E4 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 046218 7F0116E8 8FA30048 */ lw $v1, 0x48($sp) +/* 04621C 7F0116EC 87A90044 */ lh $t1, 0x44($sp) +/* 046220 7F0116F0 02002025 */ move $a0, $s0 +/* 046224 7F0116F4 27A50058 */ addiu $a1, $sp, 0x58 +/* 046228 7F0116F8 27A60054 */ addiu $a2, $sp, 0x54 +/* 04622C 7F0116FC 8FA70064 */ lw $a3, 0x64($sp) +/* 046230 7F011700 AFA20020 */ sw $v0, 0x20($sp) +/* 046234 7F011704 AFA00024 */ sw $zero, 0x24($sp) +/* 046238 7F011708 AFA00028 */ sw $zero, 0x28($sp) +/* 04623C 7F01170C AFA80014 */ sw $t0, 0x14($sp) +/* 046240 7F011710 AFB90010 */ sw $t9, 0x10($sp) +/* 046244 7F011714 AFA30018 */ sw $v1, 0x18($sp) +/* 046248 7F011718 0FC025D8 */ jal write_text_at_abs_coord +/* 04624C 7F01171C AFA9001C */ sw $t1, 0x1c($sp) +/* 046250 7F011720 00408025 */ move $s0, $v0 +/* 046254 7F011724 0FC30776 */ jal get_textptr_for_textID +/* 046258 7F011728 34049C54 */ li $a0, 40020 +/* 04625C 7F01172C 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 046260 7F011730 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 046264 7F011734 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 046268 7F011738 AFA20064 */ sw $v0, 0x64($sp) +/* 04626C 7F01173C 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 046270 7F011740 27A40050 */ addiu $a0, $sp, 0x50 +/* 046274 7F011744 27A5004C */ addiu $a1, $sp, 0x4c +/* 046278 7F011748 00403025 */ move $a2, $v0 +/* 04627C 7F01174C AFA00014 */ sw $zero, 0x14($sp) +/* 046280 7F011750 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 046284 7F011754 AFAA0010 */ sw $t2, 0x10($sp) +/* 046288 7F011758 3C0D8007 */ lui $t5, %hi(highlight_aimadjustment) +/* 04628C 7F01175C 8DAD97E8 */ lw $t5, %lo(highlight_aimadjustment)($t5) +/* 046290 7F011760 240B0039 */ li $t3, 57 +/* 046294 7F011764 240C0119 */ li $t4, 281 +/* 046298 7F011768 AFAB0058 */ sw $t3, 0x58($sp) +/* 04629C 7F01176C 11A0000C */ beqz $t5, .L7F0117A0 +/* 0462A0 7F011770 AFAC0054 */ sw $t4, 0x54($sp) +/* 0462A4 7F011774 8FA7004C */ lw $a3, 0x4c($sp) +/* 0462A8 7F011778 240E0127 */ li $t6, 295 +/* 0462AC 7F01177C 240F0032 */ li $t7, 50 +/* 0462B0 7F011780 AFAF0014 */ sw $t7, 0x14($sp) +/* 0462B4 7F011784 AFAE0010 */ sw $t6, 0x10($sp) +/* 0462B8 7F011788 02002025 */ move $a0, $s0 +/* 0462BC 7F01178C 24050037 */ li $a1, 55 +/* 0462C0 7F011790 24060118 */ li $a2, 280 +/* 0462C4 7F011794 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0462C8 7F011798 24E7003C */ addiu $a3, $a3, 0x3c +/* 0462CC 7F01179C 00408025 */ move $s0, $v0 +.L7F0117A0: +/* 0462D0 7F0117A0 3C188003 */ lui $t8, %hi(unlock_aim_sight) +/* 0462D4 7F0117A4 8F18B55C */ lw $t8, %lo(unlock_aim_sight)($t8) +/* 0462D8 7F0117A8 53000004 */ beql $t8, $zero, .L7F0117BC +/* 0462DC 7F0117AC 24030070 */ li $v1, 112 +/* 0462E0 7F0117B0 10000002 */ b .L7F0117BC +/* 0462E4 7F0117B4 240300FF */ li $v1, 255 +/* 0462E8 7F0117B8 24030070 */ li $v1, 112 +.L7F0117BC: +/* 0462EC 7F0117BC 0C001107 */ jal get_video2_settings_txtClipW +/* 0462F0 7F0117C0 AFA30048 */ sw $v1, 0x48($sp) +/* 0462F4 7F0117C4 0C00110B */ jal get_video2_settings_txtClipH +/* 0462F8 7F0117C8 A7A20044 */ sh $v0, 0x44($sp) +/* 0462FC 7F0117CC 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 046300 7F0117D0 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 046304 7F0117D4 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 046308 7F0117D8 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 04630C 7F0117DC 8FA30048 */ lw $v1, 0x48($sp) +/* 046310 7F0117E0 87A90044 */ lh $t1, 0x44($sp) +/* 046314 7F0117E4 02002025 */ move $a0, $s0 +/* 046318 7F0117E8 27A50058 */ addiu $a1, $sp, 0x58 +/* 04631C 7F0117EC 27A60054 */ addiu $a2, $sp, 0x54 +/* 046320 7F0117F0 8FA70064 */ lw $a3, 0x64($sp) +/* 046324 7F0117F4 AFA20020 */ sw $v0, 0x20($sp) +/* 046328 7F0117F8 AFA00024 */ sw $zero, 0x24($sp) +/* 04632C 7F0117FC AFA00028 */ sw $zero, 0x28($sp) +/* 046330 7F011800 AFA80014 */ sw $t0, 0x14($sp) +/* 046334 7F011804 AFB90010 */ sw $t9, 0x10($sp) +/* 046338 7F011808 AFA30018 */ sw $v1, 0x18($sp) +/* 04633C 7F01180C 0FC025D8 */ jal write_text_at_abs_coord +/* 046340 7F011810 AFA9001C */ sw $t1, 0x1c($sp) +/* 046344 7F011814 3C058005 */ lui $a1, %hi(aD_7) +/* 046348 7F011818 3C068003 */ lui $a2, %hi(selected_num_players) +/* 04634C 7F01181C 00408025 */ move $s0, $v0 +/* 046350 7F011820 8CC6B520 */ lw $a2, %lo(selected_num_players)($a2) +/* 046354 7F011824 24A50C4C */ addiu $a1, %lo(aD_7) # addiu $a1, $a1, 0xc4c +/* 046358 7F011828 0C002B25 */ jal sprintf +/* 04635C 7F01182C 27A4005C */ addiu $a0, $sp, 0x5c +/* 046360 7F011830 240A00A0 */ li $t2, 160 +/* 046364 7F011834 240B0079 */ li $t3, 121 +/* 046368 7F011838 AFAA0058 */ sw $t2, 0x58($sp) +/* 04636C 7F01183C 0C001107 */ jal get_video2_settings_txtClipW +/* 046370 7F011840 AFAB0054 */ sw $t3, 0x54($sp) +/* 046374 7F011844 0C00110B */ jal get_video2_settings_txtClipH +/* 046378 7F011848 A7A20044 */ sh $v0, 0x44($sp) +/* 04637C 7F01184C 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) +/* 046380 7F011850 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 046384 7F011854 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 046388 7F011858 8D8C0EB8 */ lw $t4, %lo(ptrSecondFontTableLarge)($t4) +/* 04638C 7F01185C 87AF0044 */ lh $t7, 0x44($sp) +/* 046390 7F011860 240E00FF */ li $t6, 255 +/* 046394 7F011864 AFAE0018 */ sw $t6, 0x18($sp) +/* 046398 7F011868 02002025 */ move $a0, $s0 +/* 04639C 7F01186C 27A50058 */ addiu $a1, $sp, 0x58 +/* 0463A0 7F011870 27A60054 */ addiu $a2, $sp, 0x54 +/* 0463A4 7F011874 27A7005C */ addiu $a3, $sp, 0x5c +/* 0463A8 7F011878 AFA20020 */ sw $v0, 0x20($sp) +/* 0463AC 7F01187C AFA00024 */ sw $zero, 0x24($sp) +/* 0463B0 7F011880 AFA00028 */ sw $zero, 0x28($sp) +/* 0463B4 7F011884 AFAD0014 */ sw $t5, 0x14($sp) +/* 0463B8 7F011888 AFAC0010 */ sw $t4, 0x10($sp) +/* 0463BC 7F01188C 0FC025D8 */ jal write_text_at_abs_coord +/* 0463C0 7F011890 AFAF001C */ sw $t7, 0x1c($sp) +/* 0463C4 7F011894 3C188003 */ lui $t8, %hi(scenario) +/* 0463C8 7F011898 8F18B540 */ lw $t8, %lo(scenario)($t8) +/* 0463CC 7F01189C 3C048003 */ lui $a0, %hi(mp_player_counts) +/* 0463D0 7F0118A0 00408025 */ move $s0, $v0 +/* 0463D4 7F0118A4 0018C880 */ sll $t9, $t8, 2 +/* 0463D8 7F0118A8 00992021 */ addu $a0, $a0, $t9 +/* 0463DC 7F0118AC 0FC30776 */ jal get_textptr_for_textID +/* 0463E0 7F0118B0 9484B054 */ lhu $a0, %lo(mp_player_counts)($a0) +/* 0463E4 7F0118B4 240800A0 */ li $t0, 160 +/* 0463E8 7F0118B8 2409008D */ li $t1, 141 +/* 0463EC 7F0118BC AFA20064 */ sw $v0, 0x64($sp) +/* 0463F0 7F0118C0 AFA80058 */ sw $t0, 0x58($sp) +/* 0463F4 7F0118C4 0C001107 */ jal get_video2_settings_txtClipW +/* 0463F8 7F0118C8 AFA90054 */ sw $t1, 0x54($sp) +/* 0463FC 7F0118CC 0C00110B */ jal get_video2_settings_txtClipH +/* 046400 7F0118D0 A7A20044 */ sh $v0, 0x44($sp) +/* 046404 7F0118D4 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableLarge) +/* 046408 7F0118D8 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) +/* 04640C 7F0118DC 8D6B0EB4 */ lw $t3, %lo(ptrFirstFontTableLarge)($t3) +/* 046410 7F0118E0 8D4A0EB8 */ lw $t2, %lo(ptrSecondFontTableLarge)($t2) +/* 046414 7F0118E4 87AD0044 */ lh $t5, 0x44($sp) +/* 046418 7F0118E8 240C00FF */ li $t4, 255 +/* 04641C 7F0118EC AFAC0018 */ sw $t4, 0x18($sp) +/* 046420 7F0118F0 02002025 */ move $a0, $s0 +/* 046424 7F0118F4 27A50058 */ addiu $a1, $sp, 0x58 +/* 046428 7F0118F8 27A60054 */ addiu $a2, $sp, 0x54 +/* 04642C 7F0118FC 8FA70064 */ lw $a3, 0x64($sp) +/* 046430 7F011900 AFA20020 */ sw $v0, 0x20($sp) +/* 046434 7F011904 AFA00024 */ sw $zero, 0x24($sp) +/* 046438 7F011908 AFA00028 */ sw $zero, 0x28($sp) +/* 04643C 7F01190C AFAB0014 */ sw $t3, 0x14($sp) +/* 046440 7F011910 AFAA0010 */ sw $t2, 0x10($sp) +/* 046444 7F011914 0FC025D8 */ jal write_text_at_abs_coord +/* 046448 7F011918 AFAD001C */ sw $t5, 0x1c($sp) +/* 04644C 7F01191C 3C0E8003 */ lui $t6, %hi(MP_stage_selected) +/* 046450 7F011920 8DCEB534 */ lw $t6, %lo(MP_stage_selected)($t6) +/* 046454 7F011924 3C048003 */ lui $a0, %hi(multi_stage_setups) +/* 046458 7F011928 00408025 */ move $s0, $v0 +/* 04645C 7F01192C 000E7880 */ sll $t7, $t6, 2 +/* 046460 7F011930 01EE7823 */ subu $t7, $t7, $t6 +/* 046464 7F011934 000F78C0 */ sll $t7, $t7, 3 +/* 046468 7F011938 008F2021 */ addu $a0, $a0, $t7 +/* 04646C 7F01193C 0FC30776 */ jal get_textptr_for_textID +/* 046470 7F011940 9484B074 */ lhu $a0, %lo(multi_stage_setups)($a0) +/* 046474 7F011944 3C088003 */ lui $t0, %hi(unlock_stage_select) +/* 046478 7F011948 8D08B544 */ lw $t0, %lo(unlock_stage_select)($t0) +/* 04647C 7F01194C 241800A0 */ li $t8, 160 +/* 046480 7F011950 241900A1 */ li $t9, 161 +/* 046484 7F011954 AFA20064 */ sw $v0, 0x64($sp) +/* 046488 7F011958 AFB80058 */ sw $t8, 0x58($sp) +/* 04648C 7F01195C 11000003 */ beqz $t0, .L7F01196C +/* 046490 7F011960 AFB90054 */ sw $t9, 0x54($sp) +/* 046494 7F011964 10000002 */ b .L7F011970 +/* 046498 7F011968 240300FF */ li $v1, 255 +.L7F01196C: +/* 04649C 7F01196C 24030070 */ li $v1, 112 +.L7F011970: +/* 0464A0 7F011970 0C001107 */ jal get_video2_settings_txtClipW +/* 0464A4 7F011974 AFA30048 */ sw $v1, 0x48($sp) +/* 0464A8 7F011978 0C00110B */ jal get_video2_settings_txtClipH +/* 0464AC 7F01197C A7A20044 */ sh $v0, 0x44($sp) +/* 0464B0 7F011980 3C098004 */ lui $t1, %hi(ptrSecondFontTableLarge) +/* 0464B4 7F011984 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 0464B8 7F011988 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 0464BC 7F01198C 8D290EB8 */ lw $t1, %lo(ptrSecondFontTableLarge)($t1) +/* 0464C0 7F011990 8FA30048 */ lw $v1, 0x48($sp) +/* 0464C4 7F011994 87AB0044 */ lh $t3, 0x44($sp) +/* 0464C8 7F011998 02002025 */ move $a0, $s0 +/* 0464CC 7F01199C 27A50058 */ addiu $a1, $sp, 0x58 +/* 0464D0 7F0119A0 27A60054 */ addiu $a2, $sp, 0x54 +/* 0464D4 7F0119A4 8FA70064 */ lw $a3, 0x64($sp) +/* 0464D8 7F0119A8 AFA20020 */ sw $v0, 0x20($sp) +/* 0464DC 7F0119AC AFA00024 */ sw $zero, 0x24($sp) +/* 0464E0 7F0119B0 AFA00028 */ sw $zero, 0x28($sp) +/* 0464E4 7F0119B4 AFAA0014 */ sw $t2, 0x14($sp) +/* 0464E8 7F0119B8 AFA90010 */ sw $t1, 0x10($sp) +/* 0464EC 7F0119BC AFA30018 */ sw $v1, 0x18($sp) +/* 0464F0 7F0119C0 0FC025D8 */ jal write_text_at_abs_coord +/* 0464F4 7F0119C4 AFAB001C */ sw $t3, 0x1c($sp) +/* 0464F8 7F0119C8 3C0C8003 */ lui $t4, %hi(game_length) +/* 0464FC 7F0119CC 8D8CB538 */ lw $t4, %lo(game_length)($t4) +/* 046500 7F0119D0 3C048003 */ lui $a0, %hi(multi_game_lengths) +/* 046504 7F0119D4 00408025 */ move $s0, $v0 +/* 046508 7F0119D8 000C6880 */ sll $t5, $t4, 2 +/* 04650C 7F0119DC 01AC6823 */ subu $t5, $t5, $t4 +/* 046510 7F0119E0 000D6880 */ sll $t5, $t5, 2 +/* 046514 7F0119E4 008D2021 */ addu $a0, $a0, $t5 +/* 046518 7F0119E8 0FC30776 */ jal get_textptr_for_textID +/* 04651C 7F0119EC 9484AFF4 */ lhu $a0, %lo(multi_game_lengths)($a0) +/* 046520 7F0119F0 3C188003 */ lui $t8, %hi(unlock_game_length) +/* 046524 7F0119F4 8F18B548 */ lw $t8, %lo(unlock_game_length)($t8) +/* 046528 7F0119F8 240E00A0 */ li $t6, 160 +/* 04652C 7F0119FC 240F00B5 */ li $t7, 181 +/* 046530 7F011A00 AFA20064 */ sw $v0, 0x64($sp) +/* 046534 7F011A04 AFAE0058 */ sw $t6, 0x58($sp) +/* 046538 7F011A08 13000003 */ beqz $t8, .L7F011A18 +/* 04653C 7F011A0C AFAF0054 */ sw $t7, 0x54($sp) +/* 046540 7F011A10 10000002 */ b .L7F011A1C +/* 046544 7F011A14 240300FF */ li $v1, 255 +.L7F011A18: +/* 046548 7F011A18 24030070 */ li $v1, 112 +.L7F011A1C: +/* 04654C 7F011A1C 0C001107 */ jal get_video2_settings_txtClipW +/* 046550 7F011A20 AFA30048 */ sw $v1, 0x48($sp) +/* 046554 7F011A24 0C00110B */ jal get_video2_settings_txtClipH +/* 046558 7F011A28 A7A20044 */ sh $v0, 0x44($sp) +/* 04655C 7F011A2C 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 046560 7F011A30 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) +/* 046564 7F011A34 8D080EB4 */ lw $t0, %lo(ptrFirstFontTableLarge)($t0) +/* 046568 7F011A38 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 04656C 7F011A3C 8FA30048 */ lw $v1, 0x48($sp) +/* 046570 7F011A40 87A90044 */ lh $t1, 0x44($sp) +/* 046574 7F011A44 02002025 */ move $a0, $s0 +/* 046578 7F011A48 27A50058 */ addiu $a1, $sp, 0x58 +/* 04657C 7F011A4C 27A60054 */ addiu $a2, $sp, 0x54 +/* 046580 7F011A50 8FA70064 */ lw $a3, 0x64($sp) +/* 046584 7F011A54 AFA20020 */ sw $v0, 0x20($sp) +/* 046588 7F011A58 AFA00024 */ sw $zero, 0x24($sp) +/* 04658C 7F011A5C AFA00028 */ sw $zero, 0x28($sp) +/* 046590 7F011A60 AFA80014 */ sw $t0, 0x14($sp) +/* 046594 7F011A64 AFB90010 */ sw $t9, 0x10($sp) +/* 046598 7F011A68 AFA30018 */ sw $v1, 0x18($sp) +/* 04659C 7F011A6C 0FC025D8 */ jal write_text_at_abs_coord +/* 0465A0 7F011A70 AFA9001C */ sw $t1, 0x1c($sp) +/* 0465A4 7F011A74 0FC3197E */ jal getPtrMPWeaponSetTextID +/* 0465A8 7F011A78 00408025 */ move $s0, $v0 +/* 0465AC 7F011A7C 0FC30776 */ jal get_textptr_for_textID +/* 0465B0 7F011A80 94440000 */ lhu $a0, ($v0) +/* 0465B4 7F011A84 3C0C8003 */ lui $t4, %hi(unlock_weapon_select) +/* 0465B8 7F011A88 8D8CB550 */ lw $t4, %lo(unlock_weapon_select)($t4) +/* 0465BC 7F011A8C 240A00A0 */ li $t2, 160 +/* 0465C0 7F011A90 240B00C9 */ li $t3, 201 +/* 0465C4 7F011A94 AFA20064 */ sw $v0, 0x64($sp) +/* 0465C8 7F011A98 AFAA0058 */ sw $t2, 0x58($sp) +/* 0465CC 7F011A9C 11800003 */ beqz $t4, .L7F011AAC +/* 0465D0 7F011AA0 AFAB0054 */ sw $t3, 0x54($sp) +/* 0465D4 7F011AA4 10000002 */ b .L7F011AB0 +/* 0465D8 7F011AA8 240300FF */ li $v1, 255 +.L7F011AAC: +/* 0465DC 7F011AAC 24030070 */ li $v1, 112 +.L7F011AB0: +/* 0465E0 7F011AB0 0C001107 */ jal get_video2_settings_txtClipW +/* 0465E4 7F011AB4 AFA30048 */ sw $v1, 0x48($sp) +/* 0465E8 7F011AB8 0C00110B */ jal get_video2_settings_txtClipH +/* 0465EC 7F011ABC A7A20044 */ sh $v0, 0x44($sp) +/* 0465F0 7F011AC0 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) +/* 0465F4 7F011AC4 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 0465F8 7F011AC8 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 0465FC 7F011ACC 8DAD0EB8 */ lw $t5, %lo(ptrSecondFontTableLarge)($t5) +/* 046600 7F011AD0 8FA30048 */ lw $v1, 0x48($sp) +/* 046604 7F011AD4 87AF0044 */ lh $t7, 0x44($sp) +/* 046608 7F011AD8 02002025 */ move $a0, $s0 +/* 04660C 7F011ADC 27A50058 */ addiu $a1, $sp, 0x58 +/* 046610 7F011AE0 27A60054 */ addiu $a2, $sp, 0x54 +/* 046614 7F011AE4 8FA70064 */ lw $a3, 0x64($sp) +/* 046618 7F011AE8 AFA20020 */ sw $v0, 0x20($sp) +/* 04661C 7F011AEC AFA00024 */ sw $zero, 0x24($sp) +/* 046620 7F011AF0 AFA00028 */ sw $zero, 0x28($sp) +/* 046624 7F011AF4 AFAE0014 */ sw $t6, 0x14($sp) +/* 046628 7F011AF8 AFAD0010 */ sw $t5, 0x10($sp) +/* 04662C 7F011AFC AFA30018 */ sw $v1, 0x18($sp) +/* 046630 7F011B00 0FC025D8 */ jal write_text_at_abs_coord +/* 046634 7F011B04 AFAF001C */ sw $t7, 0x1c($sp) +/* 046638 7F011B08 3C188003 */ lui $t8, %hi(aim_sight_adjustment) +/* 04663C 7F011B0C 8F18B53C */ lw $t8, %lo(aim_sight_adjustment)($t8) +/* 046640 7F011B10 3C048003 */ lui $a0, %hi(mp_sight_adjust_table) +/* 046644 7F011B14 00408025 */ move $s0, $v0 +/* 046648 7F011B18 0018C880 */ sll $t9, $t8, 2 +/* 04664C 7F011B1C 00992021 */ addu $a0, $a0, $t9 +/* 046650 7F011B20 0FC30776 */ jal get_textptr_for_textID +/* 046654 7F011B24 9484B510 */ lhu $a0, %lo(mp_sight_adjust_table)($a0) +/* 046658 7F011B28 3C0A8003 */ lui $t2, %hi(unlock_aim_sight) +/* 04665C 7F011B2C 8D4AB55C */ lw $t2, %lo(unlock_aim_sight)($t2) +/* 046660 7F011B30 240800A0 */ li $t0, 160 +/* 046664 7F011B34 24090119 */ li $t1, 281 +/* 046668 7F011B38 AFA20064 */ sw $v0, 0x64($sp) +/* 04666C 7F011B3C AFA80058 */ sw $t0, 0x58($sp) +/* 046670 7F011B40 11400003 */ beqz $t2, .L7F011B50 +/* 046674 7F011B44 AFA90054 */ sw $t1, 0x54($sp) +/* 046678 7F011B48 10000002 */ b .L7F011B54 +/* 04667C 7F011B4C 240300FF */ li $v1, 255 +.L7F011B50: +/* 046680 7F011B50 24030070 */ li $v1, 112 +.L7F011B54: +/* 046684 7F011B54 0C001107 */ jal get_video2_settings_txtClipW +/* 046688 7F011B58 AFA30048 */ sw $v1, 0x48($sp) +/* 04668C 7F011B5C 0C00110B */ jal get_video2_settings_txtClipH +/* 046690 7F011B60 A7A20044 */ sh $v0, 0x44($sp) +/* 046694 7F011B64 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) +/* 046698 7F011B68 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) +/* 04669C 7F011B6C 8D8C0EB4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 0466A0 7F011B70 8D6B0EB8 */ lw $t3, %lo(ptrSecondFontTableLarge)($t3) +/* 0466A4 7F011B74 8FA30048 */ lw $v1, 0x48($sp) +/* 0466A8 7F011B78 87AD0044 */ lh $t5, 0x44($sp) +/* 0466AC 7F011B7C 02002025 */ move $a0, $s0 +/* 0466B0 7F011B80 27A50058 */ addiu $a1, $sp, 0x58 +/* 0466B4 7F011B84 27A60054 */ addiu $a2, $sp, 0x54 +/* 0466B8 7F011B88 8FA70064 */ lw $a3, 0x64($sp) +/* 0466BC 7F011B8C AFA20020 */ sw $v0, 0x20($sp) +/* 0466C0 7F011B90 AFA00024 */ sw $zero, 0x24($sp) +/* 0466C4 7F011B94 AFA00028 */ sw $zero, 0x28($sp) +/* 0466C8 7F011B98 AFAC0014 */ sw $t4, 0x14($sp) +/* 0466CC 7F011B9C AFAB0010 */ sw $t3, 0x10($sp) +/* 0466D0 7F011BA0 AFA30018 */ sw $v1, 0x18($sp) +/* 0466D4 7F011BA4 0FC025D8 */ jal write_text_at_abs_coord +/* 0466D8 7F011BA8 AFAD001C */ sw $t5, 0x1c($sp) +/* 0466DC 7F011BAC 0FC0288E */ jal add_tab3_previous +/* 0466E0 7F011BB0 00402025 */ move $a0, $v0 +/* 0466E4 7F011BB4 0FC02820 */ jal add_tab1_start +/* 0466E8 7F011BB8 00402025 */ move $a0, $v0 +/* 0466EC 7F011BBC 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 0466F0 7F011BC0 00402025 */ move $a0, $v0 +/* 0466F4 7F011BC4 8FBF003C */ lw $ra, 0x3c($sp) +/* 0466F8 7F011BC8 8FB00038 */ lw $s0, 0x38($sp) +/* 0466FC 7F011BCC 27BD0068 */ addiu $sp, $sp, 0x68 +/* 046700 7F011BD0 03E00008 */ jr $ra +/* 046704 7F011BD4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 get_players_who_have_selected_mp_char(s32 arg0) +{ + u32 temp_a0_2; + void *temp_a0; + void *phi_a0; + s32 phi_v0; + s32 phi_v1; + s32 phi_v1_2; + s32 phi_v1_3; + + phi_v1 = 0; + if (selected_num_players > 0) + { + temp_a0 = 0x80070000 + -0x68c0; + phi_a0 = temp_a0; + phi_v0 = 0; + phi_v1_3 = 0; +loop_2: + temp_a0_2 = phi_a0 + 4; + phi_v1_2 = phi_v1_3; + if (*phi_a0 != 0) + { + phi_v1_2 = phi_v1_3; + if (arg0 == *(&player_1_char + phi_v0)) + { + phi_v1_2 = 1; + } + } + phi_a0 = temp_a0_2; + phi_v0 = phi_v0 + 4; + phi_v1 = phi_v1_2; + phi_v1_3 = phi_v1_2; + if (temp_a0_2 < (u32) ((selected_num_players * 4) + temp_a0)) + { + goto loop_2; + } + } + return phi_v1; +} +#else +GLOBAL_ASM( +.text +glabel get_players_who_have_selected_mp_char +/* 046708 7F011BD8 3C058003 */ lui $a1, %hi(selected_num_players) +/* 04670C 7F011BDC 8CA5B520 */ lw $a1, %lo(selected_num_players)($a1) +/* 046710 7F011BE0 00803025 */ move $a2, $a0 +/* 046714 7F011BE4 00001825 */ move $v1, $zero +/* 046718 7F011BE8 18A00012 */ blez $a1, .L7F011C34 +/* 04671C 7F011BEC 00001025 */ move $v0, $zero +/* 046720 7F011BF0 3C0E8007 */ lui $t6, %hi(has_selected_char_player1) +/* 046724 7F011BF4 00057880 */ sll $t7, $a1, 2 +/* 046728 7F011BF8 3C058003 */ lui $a1, %hi(player_1_char) +/* 04672C 7F011BFC 25C49740 */ addiu $a0, $t6, %lo(has_selected_char_player1) +/* 046730 7F011C00 01E43821 */ addu $a3, $t7, $a0 +/* 046734 7F011C04 24A5B524 */ addiu $a1, %lo(player_1_char) # addiu $a1, $a1, -0x4adc +.L7F011C08: +/* 046738 7F011C08 8C980000 */ lw $t8, ($a0) +/* 04673C 7F011C0C 24840004 */ addiu $a0, $a0, 4 +/* 046740 7F011C10 0087082B */ sltu $at, $a0, $a3 +/* 046744 7F011C14 13000005 */ beqz $t8, .L7F011C2C +/* 046748 7F011C18 00A2C821 */ addu $t9, $a1, $v0 +/* 04674C 7F011C1C 8F280000 */ lw $t0, ($t9) +/* 046750 7F011C20 14C80002 */ bne $a2, $t0, .L7F011C2C +/* 046754 7F011C24 00000000 */ nop +/* 046758 7F011C28 24030001 */ li $v1, 1 +.L7F011C2C: +/* 04675C 7F011C2C 1420FFF6 */ bnez $at, .L7F011C08 +/* 046760 7F011C30 24420004 */ addiu $v0, $v0, 4 +.L7F011C34: +/* 046764 7F011C34 03E00008 */ jr $ra +/* 046768 7F011C38 00601025 */ move $v0, $v1 +) +#endif + + + +#ifdef NONMATCHING +void init_menu0f_mpcharsel(void) +{ + s32 temp_lo; + s32 temp_s0; + u32 temp_s1; + u32 temp_v1; + u32 temp_v1_2; + u32 temp_v1_3; + void *temp_s2; + void *temp_v0; + void *phi_s1; + void *phi_v0; + void *phi_v0_2; + void *phi_v0_3; + void *phi_s2; + s32 phi_s0; + s32 phi_s0_2; + + tab_1_selected = 0; + tab_2_selected = 0; + tab_3_selected = 0; + tab_3_highlight = 0; + tab_2_highlight = 0; + tab_1_highlight = 0; + phi_s1 = &mp_chr_setup; +loop_1: + temp_lo = (phi_s1->unk3 * 4) * 0xc; + temp_v0 = mpcharselimages + temp_lo; + phi_v0 = temp_v0; + if ((u32) *temp_v0 < 0xbb8U) + { + calls_load_image_to_buffer(*temp_v0, 0, *temp_v0); + phi_v0 = mpcharselimages + temp_lo; + } + temp_v1 = phi_v0->unkC; + phi_v0_2 = phi_v0; + if (temp_v1 < 0xbb8U) + { + calls_load_image_to_buffer(temp_v1, 0); + phi_v0_2 = mpcharselimages + temp_lo; + } + temp_v1_2 = phi_v0_2->unk18; + phi_v0_3 = phi_v0_2; + if (temp_v1_2 < 0xbb8U) + { + calls_load_image_to_buffer(temp_v1_2, 0); + phi_v0_3 = mpcharselimages + temp_lo; + } + temp_v1_3 = phi_v0_3->unk24; + if (temp_v1_3 < 0xbb8U) + { + calls_load_image_to_buffer(temp_v1_3, 0); + } + temp_s1 = phi_s1 + 0xc; + phi_s1 = temp_s1; + if (temp_s1 < &MP_handicap_table) + { + goto loop_1; + } + if (num_chars_selectable_mp != 0x40) + { + if (isStageUnlockedAtDifficulty(selected_folder_num, 0x11, 0) == 3) + { + num_chars_selectable_mp = 0x21; + } + else + { + num_chars_selectable_mp = 8; + phi_s2 = &player_1_char; +loop_14: + if (*phi_s2 >= num_chars_selectable_mp) + { + phi_s0 = 0; + phi_s0_2 = 0; + if (num_chars_selectable_mp > 0) + { +loop_16: + phi_s0_2 = phi_s0; + if (get_players_who_have_selected_mp_char(phi_s0) != 0) + { + temp_s0 = phi_s0 + 1; + phi_s0 = temp_s0; + phi_s0_2 = temp_s0; + if (temp_s0 < num_chars_selectable_mp) + { + goto loop_16; + } + } + } + *phi_s2 = (s32) phi_s0_2; + } + temp_s2 = phi_s2 + 4; + phi_s2 = temp_s2; + if (temp_s2 != &MP_stage_selected) + { + goto loop_14; + } + } + } + mp_char_cur_select_player1 = (s32) player_1_char; + mp_char_prev_select_player1 = (s32) player_1_char; + dword_CODE_bss_80069730 = 0; + has_selected_char_player1 = 0; + size_mp_select_image_player1 = 0; + mp_char_cur_select_player2 = (s32) player_2_char; + mp_char_prev_select_player2 = (s32) player_2_char; + dword_CODE_bss_80069734 = 0; + has_selected_char_player2 = 0; + size_mp_select_image_player2 = 0; + mp_char_cur_select_player3 = (s32) player_3_char; + mp_char_prev_select_player3 = (s32) player_3_char; + dword_CODE_bss_80069738 = 0; + has_selected_char_player3 = 0; + size_mp_select_image_player3 = 0; + mp_char_cur_select_player4 = (s32) player_4_char; + mp_char_prev_select_player4 = (s32) player_4_char; + dword_CODE_bss_8006973C = 0; + has_selected_char_player4 = 0; + size_mp_select_image_player4 = 0; + load_walletbond(player_3_char, player_4_char); +} +#else +GLOBAL_ASM( +.text +glabel init_menu0f_mpcharsel +/* 04676C 7F011C3C 3C018003 */ lui $at, %hi(tab_1_selected) +/* 046770 7F011C40 AC20A8D0 */ sw $zero, %lo(tab_1_selected)($at) +/* 046774 7F011C44 3C018003 */ lui $at, %hi(tab_2_selected) +/* 046778 7F011C48 AC20A8D4 */ sw $zero, %lo(tab_2_selected)($at) +/* 04677C 7F011C4C 3C018003 */ lui $at, %hi(tab_3_selected) +/* 046780 7F011C50 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 046784 7F011C54 AC20A8D8 */ sw $zero, %lo(tab_3_selected)($at) +/* 046788 7F011C58 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04678C 7F011C5C AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 046790 7F011C60 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 046794 7F011C64 AFB40028 */ sw $s4, 0x28($sp) +/* 046798 7F011C68 AFB20020 */ sw $s2, 0x20($sp) +/* 04679C 7F011C6C AFB1001C */ sw $s1, 0x1c($sp) +/* 0467A0 7F011C70 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 0467A4 7F011C74 AFB30024 */ sw $s3, 0x24($sp) +/* 0467A8 7F011C78 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 0467AC 7F011C7C 3C118003 */ lui $s1, %hi(mp_chr_setup) +/* 0467B0 7F011C80 3C128009 */ lui $s2, %hi(mpcharselimages) +/* 0467B4 7F011C84 3C148003 */ lui $s4, %hi(MP_handicap_table) +/* 0467B8 7F011C88 AFBF002C */ sw $ra, 0x2c($sp) +/* 0467BC 7F011C8C AFB00018 */ sw $s0, 0x18($sp) +/* 0467C0 7F011C90 AC20A8DC */ sw $zero, %lo(tab_1_highlight)($at) +/* 0467C4 7F011C94 2694B498 */ addiu $s4, %lo(MP_handicap_table) # addiu $s4, $s4, -0x4b68 +/* 0467C8 7F011C98 2652D130 */ addiu $s2, %lo(mpcharselimages) # addiu $s2, $s2, -0x2ed0 +/* 0467CC 7F011C9C 2631B198 */ addiu $s1, %lo(mp_chr_setup) # addiu $s1, $s1, -0x4e68 +/* 0467D0 7F011CA0 2413000C */ li $s3, 12 +/* 0467D4 7F011CA4 92230003 */ lbu $v1, 3($s1) +.L7F011CA8: +/* 0467D8 7F011CA8 8E4F0000 */ lw $t7, ($s2) +/* 0467DC 7F011CAC 00037080 */ sll $t6, $v1, 2 +/* 0467E0 7F011CB0 01D30019 */ multu $t6, $s3 +/* 0467E4 7F011CB4 00008012 */ mflo $s0 +/* 0467E8 7F011CB8 01F01021 */ addu $v0, $t7, $s0 +/* 0467EC 7F011CBC 8C460000 */ lw $a2, ($v0) +/* 0467F0 7F011CC0 2CC10BB8 */ sltiu $at, $a2, 0xbb8 +/* 0467F4 7F011CC4 10200005 */ beqz $at, .L7F011CDC +/* 0467F8 7F011CC8 00C02025 */ move $a0, $a2 +/* 0467FC 7F011CCC 0FC32FBA */ jal calls_load_image_to_buffer +/* 046800 7F011CD0 00002825 */ move $a1, $zero +/* 046804 7F011CD4 8E580000 */ lw $t8, ($s2) +/* 046808 7F011CD8 03101021 */ addu $v0, $t8, $s0 +.L7F011CDC: +/* 04680C 7F011CDC 8C43000C */ lw $v1, 0xc($v0) +/* 046810 7F011CE0 2C610BB8 */ sltiu $at, $v1, 0xbb8 +/* 046814 7F011CE4 10200005 */ beqz $at, .L7F011CFC +/* 046818 7F011CE8 00602025 */ move $a0, $v1 +/* 04681C 7F011CEC 0FC32FBA */ jal calls_load_image_to_buffer +/* 046820 7F011CF0 00002825 */ move $a1, $zero +/* 046824 7F011CF4 8E590000 */ lw $t9, ($s2) +/* 046828 7F011CF8 03301021 */ addu $v0, $t9, $s0 +.L7F011CFC: +/* 04682C 7F011CFC 8C430018 */ lw $v1, 0x18($v0) +/* 046830 7F011D00 2C610BB8 */ sltiu $at, $v1, 0xbb8 +/* 046834 7F011D04 10200005 */ beqz $at, .L7F011D1C +/* 046838 7F011D08 00602025 */ move $a0, $v1 +/* 04683C 7F011D0C 0FC32FBA */ jal calls_load_image_to_buffer +/* 046840 7F011D10 00002825 */ move $a1, $zero +/* 046844 7F011D14 8E480000 */ lw $t0, ($s2) +/* 046848 7F011D18 01101021 */ addu $v0, $t0, $s0 +.L7F011D1C: +/* 04684C 7F011D1C 8C430024 */ lw $v1, 0x24($v0) +/* 046850 7F011D20 2C610BB8 */ sltiu $at, $v1, 0xbb8 +/* 046854 7F011D24 10200003 */ beqz $at, .L7F011D34 +/* 046858 7F011D28 00602025 */ move $a0, $v1 +/* 04685C 7F011D2C 0FC32FBA */ jal calls_load_image_to_buffer +/* 046860 7F011D30 00002825 */ move $a1, $zero +.L7F011D34: +/* 046864 7F011D34 2631000C */ addiu $s1, $s1, 0xc +/* 046868 7F011D38 0234082B */ sltu $at, $s1, $s4 +/* 04686C 7F011D3C 5420FFDA */ bnezl $at, .L7F011CA8 +/* 046870 7F011D40 92230003 */ lbu $v1, 3($s1) +/* 046874 7F011D44 3C118003 */ lui $s1, %hi(num_chars_selectable_mp) +/* 046878 7F011D48 2631B194 */ addiu $s1, %lo(num_chars_selectable_mp) # addiu $s1, $s1, -0x4e6c +/* 04687C 7F011D4C 8E290000 */ lw $t1, ($s1) +/* 046880 7F011D50 24010040 */ li $at, 64 +/* 046884 7F011D54 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 046888 7F011D58 11210023 */ beq $t1, $at, .L7F011DE8 +/* 04688C 7F011D5C 24050011 */ li $a1, 17 +/* 046890 7F011D60 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 046894 7F011D64 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 046898 7F011D68 00003025 */ move $a2, $zero +/* 04689C 7F011D6C 24010003 */ li $at, 3 +/* 0468A0 7F011D70 14410004 */ bne $v0, $at, .L7F011D84 +/* 0468A4 7F011D74 240B0008 */ li $t3, 8 +/* 0468A8 7F011D78 240A0021 */ li $t2, 33 +/* 0468AC 7F011D7C 1000001A */ b .L7F011DE8 +/* 0468B0 7F011D80 AE2A0000 */ sw $t2, ($s1) +.L7F011D84: +/* 0468B4 7F011D84 3C128003 */ lui $s2, %hi(player_1_char) +/* 0468B8 7F011D88 3C138003 */ lui $s3, %hi(MP_stage_selected) +/* 0468BC 7F011D8C AE2B0000 */ sw $t3, ($s1) +/* 0468C0 7F011D90 2673B534 */ addiu $s3, %lo(MP_stage_selected) # addiu $s3, $s3, -0x4acc +/* 0468C4 7F011D94 2652B524 */ addiu $s2, %lo(player_1_char) # addiu $s2, $s2, -0x4adc +/* 0468C8 7F011D98 8E220000 */ lw $v0, ($s1) +.L7F011D9C: +/* 0468CC 7F011D9C 8E4C0000 */ lw $t4, ($s2) +/* 0468D0 7F011DA0 0182082A */ slt $at, $t4, $v0 +/* 0468D4 7F011DA4 5420000E */ bnezl $at, .L7F011DE0 +/* 0468D8 7F011DA8 26520004 */ addiu $s2, $s2, 4 +/* 0468DC 7F011DAC 1840000A */ blez $v0, .L7F011DD8 +/* 0468E0 7F011DB0 00008025 */ move $s0, $zero +.L7F011DB4: +/* 0468E4 7F011DB4 0FC046F6 */ jal get_players_who_have_selected_mp_char +/* 0468E8 7F011DB8 02002025 */ move $a0, $s0 +/* 0468EC 7F011DBC 50400007 */ beql $v0, $zero, .L7F011DDC +/* 0468F0 7F011DC0 AE500000 */ sw $s0, ($s2) +/* 0468F4 7F011DC4 8E2D0000 */ lw $t5, ($s1) +/* 0468F8 7F011DC8 26100001 */ addiu $s0, $s0, 1 +/* 0468FC 7F011DCC 020D082A */ slt $at, $s0, $t5 +/* 046900 7F011DD0 1420FFF8 */ bnez $at, .L7F011DB4 +/* 046904 7F011DD4 00000000 */ nop +.L7F011DD8: +/* 046908 7F011DD8 AE500000 */ sw $s0, ($s2) +.L7F011DDC: +/* 04690C 7F011DDC 26520004 */ addiu $s2, $s2, 4 +.L7F011DE0: +/* 046910 7F011DE0 5653FFEE */ bnel $s2, $s3, .L7F011D9C +/* 046914 7F011DE4 8E220000 */ lw $v0, ($s1) +.L7F011DE8: +/* 046918 7F011DE8 3C028003 */ lui $v0, %hi(player_1_char) +/* 04691C 7F011DEC 8C42B524 */ lw $v0, %lo(player_1_char)($v0) +/* 046920 7F011DF0 3C018007 */ lui $at, %hi(mp_char_cur_select_player1) +/* 046924 7F011DF4 3C038003 */ lui $v1, %hi(player_2_char) +/* 046928 7F011DF8 AC229710 */ sw $v0, %lo(mp_char_cur_select_player1)($at) +/* 04692C 7F011DFC 3C018007 */ lui $at, %hi(mp_char_prev_select_player1) +/* 046930 7F011E00 AC229720 */ sw $v0, %lo(mp_char_prev_select_player1)($at) +/* 046934 7F011E04 3C018007 */ lui $at, %hi(dword_CODE_bss_80069730) +/* 046938 7F011E08 AC209730 */ sw $zero, %lo(dword_CODE_bss_80069730)($at) +/* 04693C 7F011E0C 3C018007 */ lui $at, %hi(has_selected_char_player1) +/* 046940 7F011E10 AC209740 */ sw $zero, %lo(has_selected_char_player1)($at) +/* 046944 7F011E14 8C63B528 */ lw $v1, %lo(player_2_char)($v1) +/* 046948 7F011E18 3C018007 */ lui $at, %hi(size_mp_select_image_player1) +/* 04694C 7F011E1C AC209750 */ sw $zero, %lo(size_mp_select_image_player1)($at) +/* 046950 7F011E20 3C018007 */ lui $at, %hi(mp_char_cur_select_player2) +/* 046954 7F011E24 AC239714 */ sw $v1, %lo(mp_char_cur_select_player2)($at) +/* 046958 7F011E28 3C018007 */ lui $at, %hi(mp_char_prev_select_player2) +/* 04695C 7F011E2C AC239724 */ sw $v1, %lo(mp_char_prev_select_player2)($at) +/* 046960 7F011E30 3C018007 */ lui $at, %hi(dword_CODE_bss_80069734) +/* 046964 7F011E34 AC209734 */ sw $zero, %lo(dword_CODE_bss_80069734)($at) +/* 046968 7F011E38 3C018007 */ lui $at, %hi(has_selected_char_player2) +/* 04696C 7F011E3C AC209744 */ sw $zero, %lo(has_selected_char_player2)($at) +/* 046970 7F011E40 3C048003 */ lui $a0, %hi(player_3_char) +/* 046974 7F011E44 8C84B52C */ lw $a0, %lo(player_3_char)($a0) +/* 046978 7F011E48 3C018007 */ lui $at, %hi(size_mp_select_image_player2) +/* 04697C 7F011E4C AC209754 */ sw $zero, %lo(size_mp_select_image_player2)($at) +/* 046980 7F011E50 3C018007 */ lui $at, %hi(mp_char_cur_select_player3) +/* 046984 7F011E54 AC249718 */ sw $a0, %lo(mp_char_cur_select_player3)($at) +/* 046988 7F011E58 3C018007 */ lui $at, %hi(mp_char_prev_select_player3) +/* 04698C 7F011E5C AC249728 */ sw $a0, %lo(mp_char_prev_select_player3)($at) +/* 046990 7F011E60 3C018007 */ lui $at, %hi(dword_CODE_bss_80069738) +/* 046994 7F011E64 AC209738 */ sw $zero, %lo(dword_CODE_bss_80069738)($at) +/* 046998 7F011E68 3C018007 */ lui $at, %hi(has_selected_char_player3) +/* 04699C 7F011E6C AC209748 */ sw $zero, %lo(has_selected_char_player3)($at) +/* 0469A0 7F011E70 3C058003 */ lui $a1, %hi(player_4_char) +/* 0469A4 7F011E74 8CA5B530 */ lw $a1, %lo(player_4_char)($a1) +/* 0469A8 7F011E78 3C018007 */ lui $at, %hi(size_mp_select_image_player3) +/* 0469AC 7F011E7C AC209758 */ sw $zero, %lo(size_mp_select_image_player3)($at) +/* 0469B0 7F011E80 3C018007 */ lui $at, %hi(mp_char_cur_select_player4) +/* 0469B4 7F011E84 AC25971C */ sw $a1, %lo(mp_char_cur_select_player4)($at) +/* 0469B8 7F011E88 3C018007 */ lui $at, %hi(mp_char_prev_select_player4) +/* 0469BC 7F011E8C AC25972C */ sw $a1, %lo(mp_char_prev_select_player4)($at) +/* 0469C0 7F011E90 3C018007 */ lui $at, %hi(dword_CODE_bss_8006973C) +/* 0469C4 7F011E94 AC20973C */ sw $zero, %lo(dword_CODE_bss_8006973C)($at) +/* 0469C8 7F011E98 3C018007 */ lui $at, %hi(has_selected_char_player4) +/* 0469CC 7F011E9C AC20974C */ sw $zero, %lo(has_selected_char_player4)($at) +/* 0469D0 7F011EA0 3C018007 */ lui $at, %hi(size_mp_select_image_player4) +/* 0469D4 7F011EA4 0FC02E2B */ jal load_walletbond +/* 0469D8 7F011EA8 AC20975C */ sw $zero, %lo(size_mp_select_image_player4)($at) +/* 0469DC 7F011EAC 8FBF002C */ lw $ra, 0x2c($sp) +/* 0469E0 7F011EB0 8FB00018 */ lw $s0, 0x18($sp) +/* 0469E4 7F011EB4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0469E8 7F011EB8 8FB20020 */ lw $s2, 0x20($sp) +/* 0469EC 7F011EBC 8FB30024 */ lw $s3, 0x24($sp) +/* 0469F0 7F011EC0 8FB40028 */ lw $s4, 0x28($sp) +/* 0469F4 7F011EC4 03E00008 */ jr $ra +/* 0469F8 7F011EC8 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +void update_menu0F_mpcharsel(void) { + +} + + + + +#ifdef NONMATCHING +void interface_menu0F_mpcharsel(void) + +{ + int iVar1; + int iVar2; + int iVar4; + s32 uVar3; + u32 BVar5; + int iVar6; + int iVar7; + char controller; + int *piVar8; + int *piVar9; + int iVar10; + u32 *pBVar11; + int *piVar12; + int iVar13; + int iStack12; + + iVar4 = get_selected_num_players(); + iStack12 = 0; + setvideo_far(60.00000000); + video_related_21((f32)flt_80051A88); + set_page_height(100.00000000,(f32)flt_80051A8C); + set_video2_settings_offset_24(0); + iVar13 = 0; + iVar10 = 0; + if (0 < iVar4) { + piVar9 = &mp_unknown1_player1; + piVar8 = &mp_char_cur_select_player1; + piVar12 = &mp_char_prev_select_player1; + pBVar11 = &has_selected_char_player1; + do { + controller = (char)iVar13; + if (*pBVar11 != FALSE) { + iVar6 = *(int *)((int)&size_mp_select_image_player1 + iVar10); + if ((iVar6 < 0xb) && (*piVar12 == *piVar8)) { + *(int *)((int)&size_mp_select_image_player1 + iVar10) = iVar6 + 1; + } + uVar3 = get_controller_buttons_pressed(controller,B_BUTTON); + if (uVar3 != 0) { + *pBVar11 = FALSE; + play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + } + } + if ((*pBVar11 == FALSE) && + (iVar6 = *(int *)((int)&size_mp_select_image_player1 + iVar10), 0 < iVar6)) { + *(int *)((int)&size_mp_select_image_player1 + iVar10) = iVar6 + -1; +LAB_7f012164: + iVar6 = *piVar12; + } + else { + if (*pBVar11 != FALSE) goto LAB_7f012164; + uVar3 = get_controller_buttons_pressed(controller,L_CBUTTONS|L_JPAD); + if (uVar3 != 0) { + if (0 < *piVar8) { + *piVar8 = *piVar8 + -1; + } + goto LAB_7f012164; + } + uVar3 = get_controller_buttons_pressed(controller,R_CBUTTONS|R_JPAD); + if (uVar3 != 0) { + if (*piVar8 < (int)(num_chars_selectable_mp - 1)) { + *piVar8 = *piVar8 + 1; + } + goto LAB_7f012164; + } + uVar3 = get_controller_buttons_pressed(controller,START_BUTTON|Z_TRIG|A_BUTTON); + if (uVar3 == 0) { + iVar6 = get_controller_3dstick_L_R(controller,-2,1); + if (iVar6 < 1) { + iVar6 = get_controller_3dstick_L_R(controller,-2,1); + if (iVar6 < -1) { + if (*piVar9 == 0) { + if (0 < *piVar8) { + *piVar8 = *piVar8 + -1; + } + goto LAB_7f012164; + } + iVar6 = *piVar12; + } + else { + iVar6 = *piVar12; + } + } + else { + if (*piVar9 == 0) { + if (*piVar8 < (int)(num_chars_selectable_mp - 1)) { + *piVar8 = *piVar8 + 1; + } + goto LAB_7f012164; + } + iVar6 = *piVar12; + } + } + else { + BVar5 = hasPlayerSelectedMPChar(*piVar8); + if (BVar5 != FALSE) goto LAB_7f012164; + *(int *)((int)&player_1_char + iVar10) = *piVar8; + *(s32 *)((int)&size_mp_select_image_player1 + iVar10) = 1; + *pBVar11 = TRUE; + play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + iVar6 = *piVar12; + } + } + iVar1 = *piVar8; + iVar2 = *piVar9; + iVar13 += 1; + piVar8 = piVar8 + 1; + BVar5 = *pBVar11; + iVar7 = iVar2 + iVar6 * 0x54; + if (iVar1 * 0x54 < iVar7) { + *piVar9 = iVar2 + -0xc; + if (iVar2 + -0xc < 0) { + *piVar9 = iVar2 + 0x48; + *piVar12 = iVar6 + -1; + } + } + else { + if ((iVar7 < iVar1 * 0x54) && (*piVar9 = iVar2 + 0xc, 0x53 < iVar2 + 0xc)) { + *piVar9 = iVar2 + -0x48; + *piVar12 = iVar6 + 1; + } + } + if ((BVar5 != FALSE) && (*(int *)((int)&size_mp_select_image_player1 + iVar10) == 0xb)) { + iStack12 = iStack12 + 1; + } + iVar10 += 4; + piVar12 = piVar12 + 1; + piVar9 = piVar9 + 1; + pBVar11 = pBVar11 + 1; + } while (iVar13 != iVar4); + } + disable_all_switches((int)ptr_folder_object_instance); + set_item_visibility_in_objinstance((int)ptr_folder_object_instance,0,1); + set_item_visibility_in_objinstance((int)ptr_folder_object_instance,0x2a,1); + menu_control_stick_tracking(); + if (iStack12 == iVar4) { + set_menu_to_mode(MENU_MP_OPTIONS,0); + } + return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051A88 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051A8C +.word 0x461C4000 /*10000.0;*/ + +.text +glabel interface_menu0F_mpcharsel +/* 046A04 7F011ED4 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 046A08 7F011ED8 AFBF003C */ sw $ra, 0x3c($sp) +/* 046A0C 7F011EDC AFBE0038 */ sw $fp, 0x38($sp) +/* 046A10 7F011EE0 AFB70034 */ sw $s7, 0x34($sp) +/* 046A14 7F011EE4 AFB60030 */ sw $s6, 0x30($sp) +/* 046A18 7F011EE8 AFB5002C */ sw $s5, 0x2c($sp) +/* 046A1C 7F011EEC AFB40028 */ sw $s4, 0x28($sp) +/* 046A20 7F011EF0 AFB30024 */ sw $s3, 0x24($sp) +/* 046A24 7F011EF4 AFB20020 */ sw $s2, 0x20($sp) +/* 046A28 7F011EF8 AFB1001C */ sw $s1, 0x1c($sp) +/* 046A2C 7F011EFC 0FC040A4 */ jal get_selected_num_players +/* 046A30 7F011F00 AFB00018 */ sw $s0, 0x18($sp) +/* 046A34 7F011F04 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 046A38 7F011F08 44816000 */ mtc1 $at, $f12 +/* 046A3C 7F011F0C AFA2004C */ sw $v0, 0x4c($sp) +/* 046A40 7F011F10 0C001151 */ jal setvideo_far +/* 046A44 7F011F14 AFA00044 */ sw $zero, 0x44($sp) +/* 046A48 7F011F18 3C018005 */ lui $at, %hi(D_80051A88) +/* 046A4C 7F011F1C 0C001164 */ jal video_related_21 +/* 046A50 7F011F20 C42C1A88 */ lwc1 $f12, %lo(D_80051A88)($at) +/* 046A54 7F011F24 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 046A58 7F011F28 44816000 */ mtc1 $at, $f12 +/* 046A5C 7F011F2C 3C018005 */ lui $at, %hi(D_80051A8C) +/* 046A60 7F011F30 0C001194 */ jal set_page_height +/* 046A64 7F011F34 C42E1A8C */ lwc1 $f14, %lo(D_80051A8C)($at) +/* 046A68 7F011F38 0C00114D */ jal set_video2_settings_offset_24 +/* 046A6C 7F011F3C 00002025 */ move $a0, $zero +/* 046A70 7F011F40 8FAE004C */ lw $t6, 0x4c($sp) +/* 046A74 7F011F44 0000B025 */ move $s6, $zero +/* 046A78 7F011F48 00009825 */ move $s3, $zero +/* 046A7C 7F011F4C 19C000B6 */ blez $t6, .L7F012228 +/* 046A80 7F011F50 3C148007 */ lui $s4, %hi(has_selected_char_player1) +/* 046A84 7F011F54 3C158007 */ lui $s5, %hi(mp_char_prev_select_player1) +/* 046A88 7F011F58 3C118007 */ lui $s1, %hi(mp_char_cur_select_player1) +/* 046A8C 7F011F5C 3C128007 */ lui $s2, %hi(dword_CODE_bss_80069730) +/* 046A90 7F011F60 3C1E8006 */ lui $fp, %hi(ptr_sfx_buf) +/* 046A94 7F011F64 3C178007 */ lui $s7, %hi(size_mp_select_image_player1) +/* 046A98 7F011F68 26F79750 */ addiu $s7, %lo(size_mp_select_image_player1) # addiu $s7, $s7, -0x68b0 +/* 046A9C 7F011F6C 27DE3720 */ addiu $fp, %lo(ptr_sfx_buf) # addiu $fp, $fp, 0x3720 +/* 046AA0 7F011F70 26529730 */ addiu $s2, %lo(dword_CODE_bss_80069730) # addiu $s2, $s2, -0x68d0 +/* 046AA4 7F011F74 26319710 */ addiu $s1, %lo(mp_char_cur_select_player1) # addiu $s1, $s1, -0x68f0 +/* 046AA8 7F011F78 26B59720 */ addiu $s5, %lo(mp_char_prev_select_player1) # addiu $s5, $s5, -0x68e0 +/* 046AAC 7F011F7C 26949740 */ addiu $s4, %lo(has_selected_char_player1) # addiu $s4, $s4, -0x68c0 +.L7F011F80: +/* 046AB0 7F011F80 8E8F0000 */ lw $t7, ($s4) +/* 046AB4 7F011F84 00162600 */ sll $a0, $s6, 0x18 +/* 046AB8 7F011F88 02F31021 */ addu $v0, $s7, $s3 +/* 046ABC 7F011F8C 11E00014 */ beqz $t7, .L7F011FE0 +/* 046AC0 7F011F90 00044E03 */ sra $t1, $a0, 0x18 +/* 046AC4 7F011F94 8C430000 */ lw $v1, ($v0) +/* 046AC8 7F011F98 01202025 */ move $a0, $t1 +/* 046ACC 7F011F9C 2861000B */ slti $at, $v1, 0xb +/* 046AD0 7F011FA0 10200007 */ beqz $at, .L7F011FC0 +/* 046AD4 7F011FA4 00000000 */ nop +/* 046AD8 7F011FA8 8EB80000 */ lw $t8, ($s5) +/* 046ADC 7F011FAC 8E390000 */ lw $t9, ($s1) +/* 046AE0 7F011FB0 24680001 */ addiu $t0, $v1, 1 +/* 046AE4 7F011FB4 17190002 */ bne $t8, $t9, .L7F011FC0 +/* 046AE8 7F011FB8 00000000 */ nop +/* 046AEC 7F011FBC AC480000 */ sw $t0, ($v0) +.L7F011FC0: +/* 046AF0 7F011FC0 0C0030EB */ jal get_controller_buttons_pressed +/* 046AF4 7F011FC4 24054000 */ li $a1, 16384 +/* 046AF8 7F011FC8 10400005 */ beqz $v0, .L7F011FE0 +/* 046AFC 7F011FCC 240500C7 */ li $a1, 199 +/* 046B00 7F011FD0 AE800000 */ sw $zero, ($s4) +/* 046B04 7F011FD4 8FC40000 */ lw $a0, ($fp) +/* 046B08 7F011FD8 0C002382 */ jal play_sfx_a1 +/* 046B0C 7F011FDC 00003025 */ move $a2, $zero +.L7F011FE0: +/* 046B10 7F011FE0 8E860000 */ lw $a2, ($s4) +/* 046B14 7F011FE4 02F31021 */ addu $v0, $s7, $s3 +/* 046B18 7F011FE8 14C00006 */ bnez $a2, .L7F012004 +/* 046B1C 7F011FEC 00000000 */ nop +/* 046B20 7F011FF0 8C430000 */ lw $v1, ($v0) +/* 046B24 7F011FF4 18600003 */ blez $v1, .L7F012004 +/* 046B28 7F011FF8 246AFFFF */ addiu $t2, $v1, -1 +/* 046B2C 7F011FFC 10000059 */ b .L7F012164 +/* 046B30 7F012000 AC4A0000 */ sw $t2, ($v0) +.L7F012004: +/* 046B34 7F012004 14C00057 */ bnez $a2, .L7F012164 +/* 046B38 7F012008 00168600 */ sll $s0, $s6, 0x18 +/* 046B3C 7F01200C 00105E03 */ sra $t3, $s0, 0x18 +/* 046B40 7F012010 000B2600 */ sll $a0, $t3, 0x18 +/* 046B44 7F012014 00046603 */ sra $t4, $a0, 0x18 +/* 046B48 7F012018 01802025 */ move $a0, $t4 +/* 046B4C 7F01201C 01608025 */ move $s0, $t3 +/* 046B50 7F012020 0C0030EB */ jal get_controller_buttons_pressed +/* 046B54 7F012024 24050202 */ li $a1, 514 +/* 046B58 7F012028 10400006 */ beqz $v0, .L7F012044 +/* 046B5C 7F01202C 00102600 */ sll $a0, $s0, 0x18 +/* 046B60 7F012030 8E220000 */ lw $v0, ($s1) +/* 046B64 7F012034 1840004B */ blez $v0, .L7F012164 +/* 046B68 7F012038 244DFFFF */ addiu $t5, $v0, -1 +/* 046B6C 7F01203C 10000049 */ b .L7F012164 +/* 046B70 7F012040 AE2D0000 */ sw $t5, ($s1) +.L7F012044: +/* 046B74 7F012044 00047603 */ sra $t6, $a0, 0x18 +/* 046B78 7F012048 01C02025 */ move $a0, $t6 +/* 046B7C 7F01204C 0C0030EB */ jal get_controller_buttons_pressed +/* 046B80 7F012050 24050101 */ li $a1, 257 +/* 046B84 7F012054 1040000A */ beqz $v0, .L7F012080 +/* 046B88 7F012058 00102600 */ sll $a0, $s0, 0x18 +/* 046B8C 7F01205C 3C0F8003 */ lui $t7, %hi(num_chars_selectable_mp) +/* 046B90 7F012060 8DEFB194 */ lw $t7, %lo(num_chars_selectable_mp)($t7) +/* 046B94 7F012064 8E220000 */ lw $v0, ($s1) +/* 046B98 7F012068 25F8FFFF */ addiu $t8, $t7, -1 +/* 046B9C 7F01206C 0058082A */ slt $at, $v0, $t8 +/* 046BA0 7F012070 1020003C */ beqz $at, .L7F012164 +/* 046BA4 7F012074 24590001 */ addiu $t9, $v0, 1 +/* 046BA8 7F012078 1000003A */ b .L7F012164 +/* 046BAC 7F01207C AE390000 */ sw $t9, ($s1) +.L7F012080: +/* 046BB0 7F012080 00044603 */ sra $t0, $a0, 0x18 +/* 046BB4 7F012084 01002025 */ move $a0, $t0 +/* 046BB8 7F012088 0C0030EB */ jal get_controller_buttons_pressed +/* 046BBC 7F01208C 3405B000 */ li $a1, 45056 +/* 046BC0 7F012090 10400012 */ beqz $v0, .L7F0120DC +/* 046BC4 7F012094 00102600 */ sll $a0, $s0, 0x18 +/* 046BC8 7F012098 0FC046F6 */ jal get_players_who_have_selected_mp_char +/* 046BCC 7F01209C 8E240000 */ lw $a0, ($s1) +/* 046BD0 7F0120A0 14400030 */ bnez $v0, .L7F012164 +/* 046BD4 7F0120A4 3C018003 */ lui $at, %hi(player_1_char) +/* 046BD8 7F0120A8 8E290000 */ lw $t1, ($s1) +/* 046BDC 7F0120AC 00330821 */ addu $at, $at, $s3 +/* 046BE0 7F0120B0 24020001 */ li $v0, 1 +/* 046BE4 7F0120B4 02F35021 */ addu $t2, $s7, $s3 +/* 046BE8 7F0120B8 AC29B524 */ sw $t1, %lo(player_1_char)($at) +/* 046BEC 7F0120BC AD420000 */ sw $v0, ($t2) +/* 046BF0 7F0120C0 AE820000 */ sw $v0, ($s4) +/* 046BF4 7F0120C4 8FC40000 */ lw $a0, ($fp) +/* 046BF8 7F0120C8 240500C7 */ li $a1, 199 +/* 046BFC 7F0120CC 0C002382 */ jal play_sfx_a1 +/* 046C00 7F0120D0 00003025 */ move $a2, $zero +/* 046C04 7F0120D4 10000024 */ b .L7F012168 +/* 046C08 7F0120D8 8EA50000 */ lw $a1, ($s5) +.L7F0120DC: +/* 046C0C 7F0120DC 00045E03 */ sra $t3, $a0, 0x18 +/* 046C10 7F0120E0 01602025 */ move $a0, $t3 +/* 046C14 7F0120E4 2405FFFE */ li $a1, -2 +/* 046C18 7F0120E8 0C00312D */ jal get_controller_3dstick_L_R +/* 046C1C 7F0120EC 24060001 */ li $a2, 1 +/* 046C20 7F0120F0 1840000D */ blez $v0, .L7F012128 +/* 046C24 7F0120F4 00102600 */ sll $a0, $s0, 0x18 +/* 046C28 7F0120F8 8E4C0000 */ lw $t4, ($s2) +/* 046C2C 7F0120FC 3C0D8003 */ lui $t5, %hi(num_chars_selectable_mp) +/* 046C30 7F012100 55800019 */ bnezl $t4, .L7F012168 +/* 046C34 7F012104 8EA50000 */ lw $a1, ($s5) +/* 046C38 7F012108 8DADB194 */ lw $t5, %lo(num_chars_selectable_mp)($t5) +/* 046C3C 7F01210C 8E220000 */ lw $v0, ($s1) +/* 046C40 7F012110 25AEFFFF */ addiu $t6, $t5, -1 +/* 046C44 7F012114 004E082A */ slt $at, $v0, $t6 +/* 046C48 7F012118 10200012 */ beqz $at, .L7F012164 +/* 046C4C 7F01211C 244F0001 */ addiu $t7, $v0, 1 +/* 046C50 7F012120 10000010 */ b .L7F012164 +/* 046C54 7F012124 AE2F0000 */ sw $t7, ($s1) +.L7F012128: +/* 046C58 7F012128 0004C603 */ sra $t8, $a0, 0x18 +/* 046C5C 7F01212C 03002025 */ move $a0, $t8 +/* 046C60 7F012130 2405FFFE */ li $a1, -2 +/* 046C64 7F012134 0C00312D */ jal get_controller_3dstick_L_R +/* 046C68 7F012138 24060001 */ li $a2, 1 +/* 046C6C 7F01213C 2841FFFF */ slti $at, $v0, -1 +/* 046C70 7F012140 50200009 */ beql $at, $zero, .L7F012168 +/* 046C74 7F012144 8EA50000 */ lw $a1, ($s5) +/* 046C78 7F012148 8E590000 */ lw $t9, ($s2) +/* 046C7C 7F01214C 57200006 */ bnezl $t9, .L7F012168 +/* 046C80 7F012150 8EA50000 */ lw $a1, ($s5) +/* 046C84 7F012154 8E220000 */ lw $v0, ($s1) +/* 046C88 7F012158 18400002 */ blez $v0, .L7F012164 +/* 046C8C 7F01215C 2448FFFF */ addiu $t0, $v0, -1 +/* 046C90 7F012160 AE280000 */ sw $t0, ($s1) +.L7F012164: +/* 046C94 7F012164 8EA50000 */ lw $a1, ($s5) +.L7F012168: +/* 046C98 7F012168 24070054 */ li $a3, 84 +/* 046C9C 7F01216C 8E2A0000 */ lw $t2, ($s1) +/* 046CA0 7F012170 00A70019 */ multu $a1, $a3 +/* 046CA4 7F012174 8E420000 */ lw $v0, ($s2) +/* 046CA8 7F012178 26D60001 */ addiu $s6, $s6, 1 +/* 046CAC 7F01217C 26940004 */ addiu $s4, $s4, 4 +/* 046CB0 7F012180 26310004 */ addiu $s1, $s1, 4 +/* 046CB4 7F012184 8E86FFFC */ lw $a2, -4($s4) +/* 046CB8 7F012188 02F3C821 */ addu $t9, $s7, $s3 +/* 046CBC 7F01218C 244BFFF4 */ addiu $t3, $v0, -0xc +/* 046CC0 7F012190 00004812 */ mflo $t1 +/* 046CC4 7F012194 00491821 */ addu $v1, $v0, $t1 +/* 046CC8 7F012198 00000000 */ nop +/* 046CCC 7F01219C 01470019 */ multu $t2, $a3 +/* 046CD0 7F0121A0 00002012 */ mflo $a0 +/* 046CD4 7F0121A4 0083082A */ slt $at, $a0, $v1 +/* 046CD8 7F0121A8 50200009 */ beql $at, $zero, .L7F0121D0 +/* 046CDC 7F0121AC 0064082A */ slt $at, $v1, $a0 +/* 046CE0 7F0121B0 05610010 */ bgez $t3, .L7F0121F4 +/* 046CE4 7F0121B4 AE4B0000 */ sw $t3, ($s2) +/* 046CE8 7F0121B8 256C0054 */ addiu $t4, $t3, 0x54 +/* 046CEC 7F0121BC 24ADFFFF */ addiu $t5, $a1, -1 +/* 046CF0 7F0121C0 AE4C0000 */ sw $t4, ($s2) +/* 046CF4 7F0121C4 1000000B */ b .L7F0121F4 +/* 046CF8 7F0121C8 AEAD0000 */ sw $t5, ($s5) +/* 046CFC 7F0121CC 0064082A */ slt $at, $v1, $a0 +.L7F0121D0: +/* 046D00 7F0121D0 10200008 */ beqz $at, .L7F0121F4 +/* 046D04 7F0121D4 244E000C */ addiu $t6, $v0, 0xc +/* 046D08 7F0121D8 29C10054 */ slti $at, $t6, 0x54 +/* 046D0C 7F0121DC 14200005 */ bnez $at, .L7F0121F4 +/* 046D10 7F0121E0 AE4E0000 */ sw $t6, ($s2) +/* 046D14 7F0121E4 25CFFFAC */ addiu $t7, $t6, -0x54 +/* 046D18 7F0121E8 24B80001 */ addiu $t8, $a1, 1 +/* 046D1C 7F0121EC AE4F0000 */ sw $t7, ($s2) +/* 046D20 7F0121F0 AEB80000 */ sw $t8, ($s5) +.L7F0121F4: +/* 046D24 7F0121F4 50C00008 */ beql $a2, $zero, .L7F012218 +/* 046D28 7F0121F8 8FAB004C */ lw $t3, 0x4c($sp) +/* 046D2C 7F0121FC 8F280000 */ lw $t0, ($t9) +/* 046D30 7F012200 8FA90044 */ lw $t1, 0x44($sp) +/* 046D34 7F012204 2401000B */ li $at, 11 +/* 046D38 7F012208 15010002 */ bne $t0, $at, .L7F012214 +/* 046D3C 7F01220C 252A0001 */ addiu $t2, $t1, 1 +/* 046D40 7F012210 AFAA0044 */ sw $t2, 0x44($sp) +.L7F012214: +/* 046D44 7F012214 8FAB004C */ lw $t3, 0x4c($sp) +.L7F012218: +/* 046D48 7F012218 26730004 */ addiu $s3, $s3, 4 +/* 046D4C 7F01221C 26B50004 */ addiu $s5, $s5, 4 +/* 046D50 7F012220 16CBFF57 */ bne $s6, $t3, .L7F011F80 +/* 046D54 7F012224 26520004 */ addiu $s2, $s2, 4 +.L7F012228: +/* 046D58 7F012228 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 046D5C 7F01222C 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 046D60 7F012230 0FC02DC9 */ jal disable_all_switches +/* 046D64 7F012234 8E040000 */ lw $a0, ($s0) +/* 046D68 7F012238 8E040000 */ lw $a0, ($s0) +/* 046D6C 7F01223C 00002825 */ move $a1, $zero +/* 046D70 7F012240 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 046D74 7F012244 24060001 */ li $a2, 1 +/* 046D78 7F012248 8E040000 */ lw $a0, ($s0) +/* 046D7C 7F01224C 2405002A */ li $a1, 42 +/* 046D80 7F012250 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 046D84 7F012254 24060001 */ li $a2, 1 +/* 046D88 7F012258 0FC026E1 */ jal menu_control_stick_tracking +/* 046D8C 7F01225C 00000000 */ nop +/* 046D90 7F012260 8FAC0044 */ lw $t4, 0x44($sp) +/* 046D94 7F012264 8FAD004C */ lw $t5, 0x4c($sp) +/* 046D98 7F012268 158D0003 */ bne $t4, $t5, .L7F012278 +/* 046D9C 7F01226C 2404000E */ li $a0, 14 +/* 046DA0 7F012270 0FC06975 */ jal set_menu_to_mode +/* 046DA4 7F012274 00002825 */ move $a1, $zero +.L7F012278: +/* 046DA8 7F012278 8FBF003C */ lw $ra, 0x3c($sp) +/* 046DAC 7F01227C 8FB00018 */ lw $s0, 0x18($sp) +/* 046DB0 7F012280 8FB1001C */ lw $s1, 0x1c($sp) +/* 046DB4 7F012284 8FB20020 */ lw $s2, 0x20($sp) +/* 046DB8 7F012288 8FB30024 */ lw $s3, 0x24($sp) +/* 046DBC 7F01228C 8FB40028 */ lw $s4, 0x28($sp) +/* 046DC0 7F012290 8FB5002C */ lw $s5, 0x2c($sp) +/* 046DC4 7F012294 8FB60030 */ lw $s6, 0x30($sp) +/* 046DC8 7F012298 8FB70034 */ lw $s7, 0x34($sp) +/* 046DCC 7F01229C 8FBE0038 */ lw $fp, 0x38($sp) +/* 046DD0 7F0122A0 03E00008 */ jr $ra +/* 046DD4 7F0122A4 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0122A8(s32 arg0, s32 arg1, s32 arg2) +{ + if (arg1 >= arg0) + { + return 0; + } + if (arg0 >= arg2) + { + return 0; + } + if (arg0 < (arg1 + 0x28)) + { + return 0xf - ((arg1 - arg0) * 6); + } + if ((arg2 + -0x28) < arg0) + { + return 0xf - ((arg0 - arg2) * 6); + } + return 0xff; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0122A8 +/* 046DD8 7F0122A8 00A4082A */ slt $at, $a1, $a0 +/* 046DDC 7F0122AC 10200003 */ beqz $at, .L7F0122BC +/* 046DE0 7F0122B0 0086082A */ slt $at, $a0, $a2 +/* 046DE4 7F0122B4 14200003 */ bnez $at, .L7F0122C4 +/* 046DE8 7F0122B8 24AE0028 */ addiu $t6, $a1, 0x28 +.L7F0122BC: +/* 046DEC 7F0122BC 03E00008 */ jr $ra +/* 046DF0 7F0122C0 00001025 */ move $v0, $zero +.L7F0122C4: +/* 046DF4 7F0122C4 008E082A */ slt $at, $a0, $t6 +/* 046DF8 7F0122C8 10200008 */ beqz $at, .L7F0122EC +/* 046DFC 7F0122CC 24C8FFD8 */ addiu $t0, $a2, -0x28 +/* 046E00 7F0122D0 00A47823 */ subu $t7, $a1, $a0 +/* 046E04 7F0122D4 000FC080 */ sll $t8, $t7, 2 +/* 046E08 7F0122D8 030FC023 */ subu $t8, $t8, $t7 +/* 046E0C 7F0122DC 0018C040 */ sll $t8, $t8, 1 +/* 046E10 7F0122E0 2419000F */ li $t9, 15 +/* 046E14 7F0122E4 03E00008 */ jr $ra +/* 046E18 7F0122E8 03381023 */ subu $v0, $t9, $t8 +.L7F0122EC: +/* 046E1C 7F0122EC 0104082A */ slt $at, $t0, $a0 +/* 046E20 7F0122F0 10200008 */ beqz $at, .L7F012314 +/* 046E24 7F0122F4 240200FF */ li $v0, 255 +/* 046E28 7F0122F8 00864823 */ subu $t1, $a0, $a2 +/* 046E2C 7F0122FC 00095080 */ sll $t2, $t1, 2 +/* 046E30 7F012300 01495023 */ subu $t2, $t2, $t1 +/* 046E34 7F012304 000A5040 */ sll $t2, $t2, 1 +/* 046E38 7F012308 240B000F */ li $t3, 15 +/* 046E3C 7F01230C 03E00008 */ jr $ra +/* 046E40 7F012310 016A1023 */ subu $v0, $t3, $t2 +.L7F012314: +/* 046E44 7F012314 03E00008 */ jr $ra +/* 046E48 7F012318 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 sub_GAME_7F01231C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) +{ + s32 spD4; + s32 spD0; + s32 spCC; + s32 sp58; + s32 sp54; + s32 sp50; + s32 temp_s1; + s32 temp_s4; + s32 temp_t2; + s32 temp_t2_2; + s32 temp_t3; + s32 temp_t3_2; + s32 temp_t5; + s32 temp_t5_2; + s32 temp_t6; + s32 temp_t7; + s32 temp_t7_2; + s32 temp_t8; + s32 temp_t9; + void *temp_s0; + void *temp_s2; + void *temp_s5; + s32 phi_s1; + s32 phi_s4; + s32 phi_s3; + void *phi_s0; + s32 phi_s2; + s8 phi_v0; + + spD4 = sub_GAME_7F0BD6E0(); + spD0 = sub_GAME_7F0BD6E0(); + spCC = sub_GAME_7F0BD6C4(0x10); + arg0 = microcode_constructor(arg0); + guOrtho(spD4, 0, 0x43dc0000, 0, 330.0f, 1.0f, 10.0f, 1.0f); + guRotate(spD0, 0x40490fdb, 0x3f800000, 0.0f, 0.0f); + sp54 = (s32) (0x14a - arg4); + sp50 = (s32) (arg6 + 0x2a); + sp58 = (s32) (arg6 + 0x23); + phi_s4 = 0; + phi_s0 = spCC; +loop_1: + phi_s1 = 0; +loop_2: + phi_s3 = phi_s1; + if (phi_s1 >= 2) + { + phi_s3 = phi_s1 + -1; + } + phi_s2 = phi_s4; + if (phi_s4 >= 2) + { + phi_s2 = phi_s4 + -1; + } + if ((get_players_who_have_selected_mp_char(arg5) != 0) && (arg6 == 0)) + { + phi_v0 = (u8)0x6e; + } + else + { + phi_v0 = (u8)0xff; + } + phi_s0->unk0 = (s16) (((phi_s3 + -1) * sp58) + arg3); + phi_s0->unk4 = (u16)-5; + phi_s0->unk6 = (u16)0; + phi_s0->unk2 = (s16) ((sp54 + ((phi_s2 + -1) * sp50)) + arg6); + if ((phi_s1 & 1) != 0) + { + phi_s0->unk8 = (u16)0x1000; + } + else + { + phi_s0->unk8 = (u16)0; + } + if ((phi_s4 & 1) != 0) + { + phi_s0->unkA = (u16)0x1000; + } + else + { + phi_s0->unkA = (u16)0; + } + phi_s0->unkC = (s8) phi_v0; + phi_s0->unkD = (s8) phi_v0; + phi_s0->unkE = (s8) phi_v0; + if (arg6 == 0) + { + phi_s0->unkF = sub_GAME_7F0122A8(phi_s0->unk0, arg1, arg2); + } + else + { + phi_s0->unkF = (u8)0xff; + } + temp_s1 = phi_s1 + 1; + temp_s0 = phi_s0 + 0x10; + phi_s1 = temp_s1; + phi_s0 = temp_s0; + if (temp_s1 != 4) + { + goto loop_2; + } + temp_s4 = phi_s4 + 1; + phi_s4 = temp_s4; + phi_s0 = temp_s0; + if (temp_s4 != 4) + { + goto loop_1; + } + temp_t9 = arg0; + arg0 = (s32) (temp_t9 + 8); + temp_t9->unk0 = 0x1030040; + temp_t9->unk4 = (s32) (spD4 + 0x80000000); + temp_t6 = arg0; + arg0 = (s32) (temp_t6 + 8); + temp_t6->unk0 = 0x1020040; + temp_t6->unk4 = (s32) (spD0 + 0x80000000); + temp_t2 = arg0; + arg0 = (s32) (temp_t2 + 8); + temp_t2->unk0 = 0x4f00100; + temp_t2->unk4 = spCC; + temp_s5 = &arg0; + temp_s2 = (arg5 * 0xc) + &mp_chr_setup; + likely_generate_DL_for_image_declaration(temp_s5, (((temp_s2->unk3 * 4) * 0xc) + mpcharselimages) + 0x18, 2, 0, 2); + temp_t8 = arg0; + arg0 = (s32) (temp_t8 + 8); + temp_t8->unk4 = 0xa28; + temp_t8->unk0 = 0xbf000000; + temp_t3 = arg0; + arg0 = (s32) (temp_t3 + 8); + temp_t3->unk4 = 0x280a32; + temp_t3->unk0 = 0xbf000000; + likely_generate_DL_for_image_declaration(temp_s5, (((temp_s2->unk3 * 4) * 0xc) + mpcharselimages) + 0x24, 2, 0, 2); + temp_t3_2 = arg0; + arg0 = (s32) (temp_t3_2 + 8); + temp_t3_2->unk4 = 0x141e3c; + temp_t3_2->unk0 = 0xbf000000; + temp_t5 = arg0; + arg0 = (s32) (temp_t5 + 8); + temp_t5->unk4 = 0x3c1e46; + temp_t5->unk0 = 0xbf000000; + likely_generate_DL_for_image_declaration(temp_s5, ((temp_s2->unk3 * 4) * 0xc) + mpcharselimages, 2, 0, 2); + temp_t5_2 = arg0; + arg0 = (s32) (temp_t5_2 + 8); + temp_t5_2->unk4 = 0x505a78; + temp_t5_2->unk0 = 0xbf000000; + temp_t7 = arg0; + arg0 = (s32) (temp_t7 + 8); + temp_t7->unk4 = 0x785a82; + temp_t7->unk0 = 0xbf000000; + likely_generate_DL_for_image_declaration(temp_s5, (((temp_s2->unk3 * 4) * 0xc) + mpcharselimages) + 0xc, 2, 0, 2); + temp_t7_2 = arg0; + arg0 = (s32) (temp_t7_2 + 8); + temp_t7_2->unk4 = 0x646e8c; + temp_t7_2->unk0 = 0xbf000000; + temp_t2_2 = arg0; + arg0 = (s32) (temp_t2_2 + 8); + temp_t2_2->unk4 = 0x8c6e96; + temp_t2_2->unk0 = 0xbf000000; + return arg0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01231C +/* 046E4C 7F01231C 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 046E50 7F012320 AFBF004C */ sw $ra, 0x4c($sp) +/* 046E54 7F012324 AFBE0048 */ sw $fp, 0x48($sp) +/* 046E58 7F012328 AFB70044 */ sw $s7, 0x44($sp) +/* 046E5C 7F01232C AFB60040 */ sw $s6, 0x40($sp) +/* 046E60 7F012330 AFB5003C */ sw $s5, 0x3c($sp) +/* 046E64 7F012334 AFB40038 */ sw $s4, 0x38($sp) +/* 046E68 7F012338 AFB30034 */ sw $s3, 0x34($sp) +/* 046E6C 7F01233C AFB20030 */ sw $s2, 0x30($sp) +/* 046E70 7F012340 AFB1002C */ sw $s1, 0x2c($sp) +/* 046E74 7F012344 AFB00028 */ sw $s0, 0x28($sp) +/* 046E78 7F012348 AFA400D8 */ sw $a0, 0xd8($sp) +/* 046E7C 7F01234C AFA500DC */ sw $a1, 0xdc($sp) +/* 046E80 7F012350 AFA600E0 */ sw $a2, 0xe0($sp) +/* 046E84 7F012354 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 046E88 7F012358 AFA700E4 */ sw $a3, 0xe4($sp) +/* 046E8C 7F01235C 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 046E90 7F012360 AFA200D4 */ sw $v0, 0xd4($sp) +/* 046E94 7F012364 AFA200D0 */ sw $v0, 0xd0($sp) +/* 046E98 7F012368 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 046E9C 7F01236C 24040010 */ li $a0, 16 +/* 046EA0 7F012370 AFA200CC */ sw $v0, 0xcc($sp) +/* 046EA4 7F012374 0FC2B366 */ jal microcode_constructor +/* 046EA8 7F012378 8FA400D8 */ lw $a0, 0xd8($sp) +/* 046EAC 7F01237C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 046EB0 7F012380 44811000 */ mtc1 $at, $f2 +/* 046EB4 7F012384 44800000 */ mtc1 $zero, $f0 +/* 046EB8 7F012388 3C0143A5 */ li $at, 0x43A50000 # 330.000000 +/* 046EBC 7F01238C 44812000 */ mtc1 $at, $f4 +/* 046EC0 7F012390 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 046EC4 7F012394 44813000 */ mtc1 $at, $f6 +/* 046EC8 7F012398 44050000 */ mfc1 $a1, $f0 +/* 046ECC 7F01239C 44070000 */ mfc1 $a3, $f0 +/* 046ED0 7F0123A0 AFA200D8 */ sw $v0, 0xd8($sp) +/* 046ED4 7F0123A4 8FA400D4 */ lw $a0, 0xd4($sp) +/* 046ED8 7F0123A8 3C0643DC */ lui $a2, 0x43dc +/* 046EDC 7F0123AC E7A20014 */ swc1 $f2, 0x14($sp) +/* 046EE0 7F0123B0 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 046EE4 7F0123B4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 046EE8 7F0123B8 0C005AF1 */ jal guOrtho +/* 046EEC 7F0123BC E7A60018 */ swc1 $f6, 0x18($sp) +/* 046EF0 7F0123C0 44800000 */ mtc1 $zero, $f0 +/* 046EF4 7F0123C4 3C054049 */ lui $a1, (0x40490FDB >> 16) # lui $a1, 0x4049 +/* 046EF8 7F0123C8 34A50FDB */ ori $a1, (0x40490FDB & 0xFFFF) # ori $a1, $a1, 0xfdb +/* 046EFC 7F0123CC 44070000 */ mfc1 $a3, $f0 +/* 046F00 7F0123D0 8FA400D0 */ lw $a0, 0xd0($sp) +/* 046F04 7F0123D4 3C063F80 */ lui $a2, 0x3f80 +/* 046F08 7F0123D8 0C005E2D */ jal guRotate +/* 046F0C 7F0123DC E7A00010 */ swc1 $f0, 0x10($sp) +/* 046F10 7F0123E0 8FB500F0 */ lw $s5, 0xf0($sp) +/* 046F14 7F0123E4 8FAF00E8 */ lw $t7, 0xe8($sp) +/* 046F18 7F0123E8 2418014A */ li $t8, 330 +/* 046F1C 7F0123EC 26AE0023 */ addiu $t6, $s5, 0x23 +/* 046F20 7F0123F0 26AA002A */ addiu $t2, $s5, 0x2a +/* 046F24 7F0123F4 030FC823 */ subu $t9, $t8, $t7 +/* 046F28 7F0123F8 AFB90054 */ sw $t9, 0x54($sp) +/* 046F2C 7F0123FC AFAA0050 */ sw $t2, 0x50($sp) +/* 046F30 7F012400 AFAE0058 */ sw $t6, 0x58($sp) +/* 046F34 7F012404 0000A025 */ move $s4, $zero +/* 046F38 7F012408 8FB000CC */ lw $s0, 0xcc($sp) +/* 046F3C 7F01240C 241E0004 */ li $fp, 4 +/* 046F40 7F012410 24161000 */ li $s6, 4096 +/* 046F44 7F012414 00008825 */ move $s1, $zero +.L7F012418: +/* 046F48 7F012418 32970001 */ andi $s7, $s4, 1 +.L7F01241C: +/* 046F4C 7F01241C 2A210002 */ slti $at, $s1, 2 +/* 046F50 7F012420 14200003 */ bnez $at, .L7F012430 +/* 046F54 7F012424 02209825 */ move $s3, $s1 +/* 046F58 7F012428 10000001 */ b .L7F012430 +/* 046F5C 7F01242C 2633FFFF */ addiu $s3, $s1, -1 +.L7F012430: +/* 046F60 7F012430 2A810002 */ slti $at, $s4, 2 +/* 046F64 7F012434 14200003 */ bnez $at, .L7F012444 +/* 046F68 7F012438 02809025 */ move $s2, $s4 +/* 046F6C 7F01243C 10000001 */ b .L7F012444 +/* 046F70 7F012440 2692FFFF */ addiu $s2, $s4, -1 +.L7F012444: +/* 046F74 7F012444 0FC046F6 */ jal get_players_who_have_selected_mp_char +/* 046F78 7F012448 8FA400EC */ lw $a0, 0xec($sp) +/* 046F7C 7F01244C 10400005 */ beqz $v0, .L7F012464 +/* 046F80 7F012450 8FAC0058 */ lw $t4, 0x58($sp) +/* 046F84 7F012454 56A00004 */ bnezl $s5, .L7F012468 +/* 046F88 7F012458 240200FF */ li $v0, 255 +/* 046F8C 7F01245C 10000002 */ b .L7F012468 +/* 046F90 7F012460 2402006E */ li $v0, 110 +.L7F012464: +/* 046F94 7F012464 240200FF */ li $v0, 255 +.L7F012468: +/* 046F98 7F012468 266BFFFF */ addiu $t3, $s3, -1 +/* 046F9C 7F01246C 016C0019 */ multu $t3, $t4 +/* 046FA0 7F012470 8FAE00E4 */ lw $t6, 0xe4($sp) +/* 046FA4 7F012474 264FFFFF */ addiu $t7, $s2, -1 +/* 046FA8 7F012478 00006812 */ mflo $t5 +/* 046FAC 7F01247C 01AEC021 */ addu $t8, $t5, $t6 +/* 046FB0 7F012480 A6180000 */ sh $t8, ($s0) +/* 046FB4 7F012484 8FB90050 */ lw $t9, 0x50($sp) +/* 046FB8 7F012488 8FAB0054 */ lw $t3, 0x54($sp) +/* 046FBC 7F01248C 240EFFFB */ li $t6, -5 +/* 046FC0 7F012490 01F90019 */ multu $t7, $t9 +/* 046FC4 7F012494 32380001 */ andi $t8, $s1, 1 +/* 046FC8 7F012498 A60E0004 */ sh $t6, 4($s0) +/* 046FCC 7F01249C A6000006 */ sh $zero, 6($s0) +/* 046FD0 7F0124A0 240F00FF */ li $t7, 255 +/* 046FD4 7F0124A4 00005012 */ mflo $t2 +/* 046FD8 7F0124A8 016A6021 */ addu $t4, $t3, $t2 +/* 046FDC 7F0124AC 01956821 */ addu $t5, $t4, $s5 +/* 046FE0 7F0124B0 13000003 */ beqz $t8, .L7F0124C0 +/* 046FE4 7F0124B4 A60D0002 */ sh $t5, 2($s0) +/* 046FE8 7F0124B8 10000002 */ b .L7F0124C4 +/* 046FEC 7F0124BC A6160008 */ sh $s6, 8($s0) +.L7F0124C0: +/* 046FF0 7F0124C0 A6000008 */ sh $zero, 8($s0) +.L7F0124C4: +/* 046FF4 7F0124C4 52E00004 */ beql $s7, $zero, .L7F0124D8 +/* 046FF8 7F0124C8 A600000A */ sh $zero, 0xa($s0) +/* 046FFC 7F0124CC 10000002 */ b .L7F0124D8 +/* 047000 7F0124D0 A616000A */ sh $s6, 0xa($s0) +/* 047004 7F0124D4 A600000A */ sh $zero, 0xa($s0) +.L7F0124D8: +/* 047008 7F0124D8 A202000C */ sb $v0, 0xc($s0) +/* 04700C 7F0124DC A202000D */ sb $v0, 0xd($s0) +/* 047010 7F0124E0 16A00007 */ bnez $s5, .L7F012500 +/* 047014 7F0124E4 A202000E */ sb $v0, 0xe($s0) +/* 047018 7F0124E8 86040000 */ lh $a0, ($s0) +/* 04701C 7F0124EC 8FA500DC */ lw $a1, 0xdc($sp) +/* 047020 7F0124F0 0FC048AA */ jal sub_GAME_7F0122A8 +/* 047024 7F0124F4 8FA600E0 */ lw $a2, 0xe0($sp) +/* 047028 7F0124F8 10000002 */ b .L7F012504 +/* 04702C 7F0124FC A202000F */ sb $v0, 0xf($s0) +.L7F012500: +/* 047030 7F012500 A20F000F */ sb $t7, 0xf($s0) +.L7F012504: +/* 047034 7F012504 26310001 */ addiu $s1, $s1, 1 +/* 047038 7F012508 163EFFC4 */ bne $s1, $fp, .L7F01241C +/* 04703C 7F01250C 26100010 */ addiu $s0, $s0, 0x10 +/* 047040 7F012510 26940001 */ addiu $s4, $s4, 1 +/* 047044 7F012514 569EFFC0 */ bnel $s4, $fp, .L7F012418 +/* 047048 7F012518 00008825 */ move $s1, $zero +/* 04704C 7F01251C 8FB900D8 */ lw $t9, 0xd8($sp) +/* 047050 7F012520 3C0A0103 */ lui $t2, (0x01030040 >> 16) # lui $t2, 0x103 +/* 047054 7F012524 354A0040 */ ori $t2, (0x01030040 & 0xFFFF) # ori $t2, $t2, 0x40 +/* 047058 7F012528 272B0008 */ addiu $t3, $t9, 8 +/* 04705C 7F01252C AFAB00D8 */ sw $t3, 0xd8($sp) +/* 047060 7F012530 AF2A0000 */ sw $t2, ($t9) +/* 047064 7F012534 8FAC00D4 */ lw $t4, 0xd4($sp) +/* 047068 7F012538 3C098000 */ lui $t1, 0x8000 +/* 04706C 7F01253C 3C0F0102 */ lui $t7, (0x01020040 >> 16) # lui $t7, 0x102 +/* 047070 7F012540 01896821 */ addu $t5, $t4, $t1 +/* 047074 7F012544 AF2D0004 */ sw $t5, 4($t9) +/* 047078 7F012548 8FAE00D8 */ lw $t6, 0xd8($sp) +/* 04707C 7F01254C 35EF0040 */ ori $t7, (0x01020040 & 0xFFFF) # ori $t7, $t7, 0x40 +/* 047080 7F012550 3C0D04F0 */ lui $t5, (0x04F00100 >> 16) # lui $t5, 0x4f0 +/* 047084 7F012554 25D80008 */ addiu $t8, $t6, 8 +/* 047088 7F012558 AFB800D8 */ sw $t8, 0xd8($sp) +/* 04708C 7F01255C ADCF0000 */ sw $t7, ($t6) +/* 047090 7F012560 8FB900D0 */ lw $t9, 0xd0($sp) +/* 047094 7F012564 35AD0100 */ ori $t5, (0x04F00100 & 0xFFFF) # ori $t5, $t5, 0x100 +/* 047098 7F012568 2413000C */ li $s3, 12 +/* 04709C 7F01256C 03295821 */ addu $t3, $t9, $t1 +/* 0470A0 7F012570 ADCB0004 */ sw $t3, 4($t6) +/* 0470A4 7F012574 8FAA00D8 */ lw $t2, 0xd8($sp) +/* 0470A8 7F012578 3C198003 */ lui $t9, %hi(mp_chr_setup) +/* 0470AC 7F01257C 2739B198 */ addiu $t9, %lo(mp_chr_setup) # addiu $t9, $t9, -0x4e68 +/* 0470B0 7F012580 254C0008 */ addiu $t4, $t2, 8 +/* 0470B4 7F012584 AFAC00D8 */ sw $t4, 0xd8($sp) +/* 0470B8 7F012588 AD4D0000 */ sw $t5, ($t2) +/* 0470BC 7F01258C 8FAE00CC */ lw $t6, 0xcc($sp) +/* 0470C0 7F012590 3C148009 */ lui $s4, %hi(mpcharselimages) +/* 0470C4 7F012594 2694D130 */ addiu $s4, %lo(mpcharselimages) # addiu $s4, $s4, -0x2ed0 +/* 0470C8 7F012598 AD4E0004 */ sw $t6, 4($t2) +/* 0470CC 7F01259C 8FB800EC */ lw $t8, 0xec($sp) +/* 0470D0 7F0125A0 8E8D0000 */ lw $t5, ($s4) +/* 0470D4 7F0125A4 27B500D8 */ addiu $s5, $sp, 0xd8 +/* 0470D8 7F0125A8 03130019 */ multu $t8, $s3 +/* 0470DC 7F0125AC 240E0002 */ li $t6, 2 +/* 0470E0 7F0125B0 AFAE0010 */ sw $t6, 0x10($sp) +/* 0470E4 7F0125B4 02A02025 */ move $a0, $s5 +/* 0470E8 7F0125B8 24060002 */ li $a2, 2 +/* 0470EC 7F0125BC 00003825 */ move $a3, $zero +/* 0470F0 7F0125C0 00007812 */ mflo $t7 +/* 0470F4 7F0125C4 01F99021 */ addu $s2, $t7, $t9 +/* 0470F8 7F0125C8 924B0003 */ lbu $t3, 3($s2) +/* 0470FC 7F0125CC 000B5080 */ sll $t2, $t3, 2 +/* 047100 7F0125D0 01530019 */ multu $t2, $s3 +/* 047104 7F0125D4 00006012 */ mflo $t4 +/* 047108 7F0125D8 018D8021 */ addu $s0, $t4, $t5 +/* 04710C 7F0125DC 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 047110 7F0125E0 26050018 */ addiu $a1, $s0, 0x18 +/* 047114 7F0125E4 8FB800D8 */ lw $t8, 0xd8($sp) +/* 047118 7F0125E8 3C11BF00 */ lui $s1, 0xbf00 +/* 04711C 7F0125EC 24190A28 */ li $t9, 2600 +/* 047120 7F0125F0 270F0008 */ addiu $t7, $t8, 8 +/* 047124 7F0125F4 AFAF00D8 */ sw $t7, 0xd8($sp) +/* 047128 7F0125F8 AF190004 */ sw $t9, 4($t8) +/* 04712C 7F0125FC AF110000 */ sw $s1, ($t8) +/* 047130 7F012600 8FAB00D8 */ lw $t3, 0xd8($sp) +/* 047134 7F012604 3C0C0028 */ lui $t4, (0x00280A32 >> 16) # lui $t4, 0x28 +/* 047138 7F012608 358C0A32 */ ori $t4, (0x00280A32 & 0xFFFF) # ori $t4, $t4, 0xa32 +/* 04713C 7F01260C 256A0008 */ addiu $t2, $t3, 8 +/* 047140 7F012610 AFAA00D8 */ sw $t2, 0xd8($sp) +/* 047144 7F012614 AD6C0004 */ sw $t4, 4($t3) +/* 047148 7F012618 AD710000 */ sw $s1, ($t3) +/* 04714C 7F01261C 924D0003 */ lbu $t5, 3($s2) +/* 047150 7F012620 8E8F0000 */ lw $t7, ($s4) +/* 047154 7F012624 24190002 */ li $t9, 2 +/* 047158 7F012628 000D7080 */ sll $t6, $t5, 2 +/* 04715C 7F01262C 01D30019 */ multu $t6, $s3 +/* 047160 7F012630 AFB90010 */ sw $t9, 0x10($sp) +/* 047164 7F012634 02A02025 */ move $a0, $s5 +/* 047168 7F012638 24060002 */ li $a2, 2 +/* 04716C 7F01263C 00003825 */ move $a3, $zero +/* 047170 7F012640 0000C012 */ mflo $t8 +/* 047174 7F012644 030F8021 */ addu $s0, $t8, $t7 +/* 047178 7F012648 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 04717C 7F01264C 26050024 */ addiu $a1, $s0, 0x24 +/* 047180 7F012650 8FAB00D8 */ lw $t3, 0xd8($sp) +/* 047184 7F012654 3C0C0014 */ lui $t4, (0x00141E3C >> 16) # lui $t4, 0x14 +/* 047188 7F012658 358C1E3C */ ori $t4, (0x00141E3C & 0xFFFF) # ori $t4, $t4, 0x1e3c +/* 04718C 7F01265C 256A0008 */ addiu $t2, $t3, 8 +/* 047190 7F012660 AFAA00D8 */ sw $t2, 0xd8($sp) +/* 047194 7F012664 AD6C0004 */ sw $t4, 4($t3) +/* 047198 7F012668 AD710000 */ sw $s1, ($t3) +/* 04719C 7F01266C 8FAD00D8 */ lw $t5, 0xd8($sp) +/* 0471A0 7F012670 3C18003C */ lui $t8, (0x003C1E46 >> 16) # lui $t8, 0x3c +/* 0471A4 7F012674 37181E46 */ ori $t8, (0x003C1E46 & 0xFFFF) # ori $t8, $t8, 0x1e46 +/* 0471A8 7F012678 25AE0008 */ addiu $t6, $t5, 8 +/* 0471AC 7F01267C AFAE00D8 */ sw $t6, 0xd8($sp) +/* 0471B0 7F012680 ADB80004 */ sw $t8, 4($t5) +/* 0471B4 7F012684 ADB10000 */ sw $s1, ($t5) +/* 0471B8 7F012688 924F0003 */ lbu $t7, 3($s2) +/* 0471BC 7F01268C 8E8A0000 */ lw $t2, ($s4) +/* 0471C0 7F012690 240C0002 */ li $t4, 2 +/* 0471C4 7F012694 000FC880 */ sll $t9, $t7, 2 +/* 0471C8 7F012698 03330019 */ multu $t9, $s3 +/* 0471CC 7F01269C AFAC0010 */ sw $t4, 0x10($sp) +/* 0471D0 7F0126A0 02A02025 */ move $a0, $s5 +/* 0471D4 7F0126A4 24060002 */ li $a2, 2 +/* 0471D8 7F0126A8 00003825 */ move $a3, $zero +/* 0471DC 7F0126AC 00005812 */ mflo $t3 +/* 0471E0 7F0126B0 016A2821 */ addu $a1, $t3, $t2 +/* 0471E4 7F0126B4 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 0471E8 7F0126B8 00000000 */ nop +/* 0471EC 7F0126BC 8FAD00D8 */ lw $t5, 0xd8($sp) +/* 0471F0 7F0126C0 3C180050 */ lui $t8, (0x00505A78 >> 16) # lui $t8, 0x50 +/* 0471F4 7F0126C4 37185A78 */ ori $t8, (0x00505A78 & 0xFFFF) # ori $t8, $t8, 0x5a78 +/* 0471F8 7F0126C8 25AE0008 */ addiu $t6, $t5, 8 +/* 0471FC 7F0126CC AFAE00D8 */ sw $t6, 0xd8($sp) +/* 047200 7F0126D0 ADB80004 */ sw $t8, 4($t5) +/* 047204 7F0126D4 ADB10000 */ sw $s1, ($t5) +/* 047208 7F0126D8 8FAF00D8 */ lw $t7, 0xd8($sp) +/* 04720C 7F0126DC 3C0B0078 */ lui $t3, (0x00785A82 >> 16) # lui $t3, 0x78 +/* 047210 7F0126E0 356B5A82 */ ori $t3, (0x00785A82 & 0xFFFF) # ori $t3, $t3, 0x5a82 +/* 047214 7F0126E4 25F90008 */ addiu $t9, $t7, 8 +/* 047218 7F0126E8 AFB900D8 */ sw $t9, 0xd8($sp) +/* 04721C 7F0126EC ADEB0004 */ sw $t3, 4($t7) +/* 047220 7F0126F0 ADF10000 */ sw $s1, ($t7) +/* 047224 7F0126F4 924A0003 */ lbu $t2, 3($s2) +/* 047228 7F0126F8 8E8E0000 */ lw $t6, ($s4) +/* 04722C 7F0126FC 24180002 */ li $t8, 2 +/* 047230 7F012700 000A6080 */ sll $t4, $t2, 2 +/* 047234 7F012704 01930019 */ multu $t4, $s3 +/* 047238 7F012708 AFB80010 */ sw $t8, 0x10($sp) +/* 04723C 7F01270C 02A02025 */ move $a0, $s5 +/* 047240 7F012710 24060002 */ li $a2, 2 +/* 047244 7F012714 00003825 */ move $a3, $zero +/* 047248 7F012718 00006812 */ mflo $t5 +/* 04724C 7F01271C 01AE8021 */ addu $s0, $t5, $t6 +/* 047250 7F012720 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 047254 7F012724 2605000C */ addiu $a1, $s0, 0xc +/* 047258 7F012728 8FAF00D8 */ lw $t7, 0xd8($sp) +/* 04725C 7F01272C 3C0B0064 */ lui $t3, (0x00646E8C >> 16) # lui $t3, 0x64 +/* 047260 7F012730 356B6E8C */ ori $t3, (0x00646E8C & 0xFFFF) # ori $t3, $t3, 0x6e8c +/* 047264 7F012734 25F90008 */ addiu $t9, $t7, 8 +/* 047268 7F012738 AFB900D8 */ sw $t9, 0xd8($sp) +/* 04726C 7F01273C ADEB0004 */ sw $t3, 4($t7) +/* 047270 7F012740 ADF10000 */ sw $s1, ($t7) +/* 047274 7F012744 8FAA00D8 */ lw $t2, 0xd8($sp) +/* 047278 7F012748 3C0D008C */ lui $t5, (0x008C6E96 >> 16) # lui $t5, 0x8c +/* 04727C 7F01274C 35AD6E96 */ ori $t5, (0x008C6E96 & 0xFFFF) # ori $t5, $t5, 0x6e96 +/* 047280 7F012750 254C0008 */ addiu $t4, $t2, 8 +/* 047284 7F012754 AFAC00D8 */ sw $t4, 0xd8($sp) +/* 047288 7F012758 AD4D0004 */ sw $t5, 4($t2) +/* 04728C 7F01275C AD510000 */ sw $s1, ($t2) +/* 047290 7F012760 8FBF004C */ lw $ra, 0x4c($sp) +/* 047294 7F012764 8FBE0048 */ lw $fp, 0x48($sp) +/* 047298 7F012768 8FB70044 */ lw $s7, 0x44($sp) +/* 04729C 7F01276C 8FB60040 */ lw $s6, 0x40($sp) +/* 0472A0 7F012770 8FB5003C */ lw $s5, 0x3c($sp) +/* 0472A4 7F012774 8FB40038 */ lw $s4, 0x38($sp) +/* 0472A8 7F012778 8FB30034 */ lw $s3, 0x34($sp) +/* 0472AC 7F01277C 8FB20030 */ lw $s2, 0x30($sp) +/* 0472B0 7F012780 8FB1002C */ lw $s1, 0x2c($sp) +/* 0472B4 7F012784 8FB00028 */ lw $s0, 0x28($sp) +/* 0472B8 7F012788 8FA200D8 */ lw $v0, 0xd8($sp) +/* 0472BC 7F01278C 03E00008 */ jr $ra +/* 0472C0 7F012790 27BD00D8 */ addiu $sp, $sp, 0xd8 +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu0F_mpcharsel(s32 arg0) +{ + s32 spE4; + s32 spE0; + s32 spBC; + s32 spB8; + s32 spB4; + s32 spB0; + s32 spA8; + s32 spA4; + s32 spA0; + s32 sp9C; + s32 sp8C; + void *sp88; + void *sp80; + void *sp74; + void *sp70; + s32 temp_ret; + s32 temp_ret_10; + s32 temp_ret_11; + s32 temp_ret_2; + s32 temp_ret_3; + s32 temp_ret_4; + s32 temp_ret_5; + s32 temp_ret_6; + s32 temp_ret_7; + s32 temp_ret_8; + s32 temp_ret_9; + s32 temp_s1; + s32 temp_s1_2; + s32 temp_s1_3; + s32 temp_s3; + s32 temp_s4; + s32 temp_s6; + s32 temp_t7; + s32 temp_t9; + s32 phi_s2; + s32 phi_s7; + void *phi_v0; + s32 phi_s4; + s32 phi_s1; + s32 phi_s0; + s32 phi_s1_2; + s32 phi_s0_2; + s32 phi_s1_3; + s32 phi_s0_3; + s32 phi_s1_4; + s32 phi_s0_4; + s32 phi_v1; + s32 phi_s1_5; + s32 phi_s0_5; + s32 phi_v1_2; + s32 phi_s1_6; + s32 phi_s1_7; + s32 phi_v1_3; + s32 phi_v1_4; + + spE4 = get_selected_num_players(); + temp_ret = microcode_constructor_related_to_menus(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(arg0, 0, 0, 0)))), 0x26, 0xa9, 0x184, 0xab, 0x90); + temp_s1 = temp_ret; + phi_v0 = temp_ret; + phi_s1_7 = temp_s1; + if (spE4 >= 3) + { + temp_ret_2 = microcode_constructor_related_to_menus(temp_s1, 0xd4, 0x1e, 0xd6, 0x136, 0x80); + phi_v0 = temp_ret_2; + phi_s1_7 = temp_ret_2; + } + if (spE4 > 0) + { + sp88 = &has_selected_char_player1; + sp80 = &mp_char_cur_select_player1; + sp74 = &dword_CODE_bss_80069730; + sp70 = &mp_char_prev_select_player1; + spE0 = 0; +loop_4: + if (spE4 == 2) + { + if (spE0 > 0) + { + phi_s2 = 0x26; + phi_s7 = 0xaa; + phi_s4 = 0x15e; + } + else + { + phi_s2 = 0x26; + phi_s7 = 0 + 0x1e; + phi_s4 = 0x15e; + } + } + else + { + if (spE0 >= 2) + { + phi_v1_4 = 0x8c; + } + else + { + phi_v1_4 = 0; + } + if ((spE0 & 1) != 0) + { + phi_v1_3 = 0xaf; + } + else + { + phi_v1_3 = 0; + } + phi_s2 = phi_v1_3 + 0x26; + phi_s7 = phi_v1_4 + 0x1e; + phi_s4 = 0xaf; + } + temp_t7 = phi_s2 + phi_s4; + temp_s1_2 = phi_v0 + 8; + phi_v0->unk0 = (s32) (((((s32) ((f32) (phi_s2 + 6) * 4.0f) & 0xfff) << 0xc) | 0xed000000) | ((s32) ((f32) (phi_s7 + 5) * 4.0f) & 0xfff)); + sp8C = temp_t7; + phi_v0->unk4 = (s32) ((((s32) ((f32) (temp_t7 + -6) * 4.0f) & 0xfff) << 0xc) | ((s32) ((f32) (phi_s7 + 0x87) * 4.0f) & 0xfff)); + phi_s1 = temp_s1_2; + if (*sp88 == 0) + { + phi_s1 = temp_s1_2; + if (subroutine_arg0 == 0) + { + temp_ret_3 = get_textptr_for_textID(TEXT(LTITLE, 0x55)); + sub_GAME_7F0AE98C(&spBC, &spB8, temp_ret_3, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + spB4 = (s32) ((((s32) phi_s4 >> 1) + phi_s2) - (spB8 >> 1)); + get_video2_settings_txtClipW(); + phi_s1 = write_text_at_abs_coord(microcode_constructor(temp_s1_2), &spB4, &spB0, temp_ret_3, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, get_video2_settings_txtClipH(), 0, 0); + } + } + temp_s6 = ((s32) phi_s4 >> 1) + phi_s2; + temp_ret_4 = get_textptr_for_textID((0x80030000 + (*sp80 * 0xc))->unk-4E68); + sub_GAME_7F0AE98C(&spA8, &spA4, temp_ret_4, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + sp9C = (s32) (phi_s7 + 0x78); + spA0 = (s32) (temp_s6 - (spA4 >> 1)); + get_video2_settings_txtClipW(); + temp_s3 = phi_s2 + 0xd; + temp_s4 = sp8C + -0xe; + temp_ret_5 = sub_GAME_7F01231C(write_text_at_abs_coord(microcode_constructor(phi_s1), &spA0, &sp9C, temp_ret_4, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, get_video2_settings_txtClipH(), 0, 0), temp_s3, temp_s4, temp_s6 - *sp74, (s32) *sp70, (s32) subroutine_arg0); + temp_s1_3 = temp_ret_5; + if ((*sp88 != 0) || (subroutine_arg0 != 0)) + { + phi_v0 = temp_ret_5; + phi_s1_7 = temp_s1_3; + if (*sp70 != *sp80) + { +block_21: + phi_s0 = *sp70; + phi_s1_2 = temp_s1_3; + phi_v0 = temp_ret_5; + if (*sp70 >= 3) + { + temp_ret_6 = sub_GAME_7F01231C(temp_s1_3, temp_s3, temp_s4, (temp_s6 - *sp74) + -0xfc, (s32) (*sp70 + -3), (s32) subroutine_arg0); + phi_s0 = *sp70; + phi_s1_2 = temp_ret_6; + phi_v0 = temp_ret_6; + } + phi_s0_2 = phi_s0; + phi_s1_3 = phi_s1_2; + if (phi_s0 >= 2) + { + temp_ret_7 = sub_GAME_7F01231C(phi_s1_2, temp_s3, temp_s4, (temp_s6 - *sp74) + -0xa8, (s32) (phi_s0 + -2), (s32) subroutine_arg0); + phi_s0_2 = *sp70; + phi_s1_3 = temp_ret_7; + phi_v0 = temp_ret_7; + } + phi_s0_3 = phi_s0_2; + phi_s1_4 = phi_s1_3; + if (phi_s0_2 > 0) + { + temp_ret_8 = sub_GAME_7F01231C(phi_s1_3, temp_s3, temp_s4, (temp_s6 - *sp74) + -0x54, (s32) (phi_s0_2 + -1), (s32) subroutine_arg0); + phi_s0_3 = *sp70; + phi_s1_4 = temp_ret_8; + phi_v0 = temp_ret_8; + } + phi_s0_4 = phi_s0_3; + phi_v1 = num_chars_selectable_mp; + phi_s1_5 = phi_s1_4; + if (phi_s0_3 < (num_chars_selectable_mp + -1)) + { + temp_ret_9 = sub_GAME_7F01231C(phi_s1_4, temp_s3, temp_s4, (temp_s6 - *sp74) + 0x54, (s32) (phi_s0_3 + 1), (s32) subroutine_arg0); + phi_s0_4 = *sp70; + phi_v1 = num_chars_selectable_mp; + phi_s1_5 = temp_ret_9; + phi_v0 = temp_ret_9; + } + phi_s0_5 = phi_s0_4; + phi_v1_2 = phi_v1; + phi_s1_6 = phi_s1_5; + if (phi_s0_4 < (phi_v1 + -2)) + { + temp_ret_10 = sub_GAME_7F01231C(phi_s1_5, temp_s3, temp_s4, (temp_s6 - *sp74) + 0xa8, (s32) (phi_s0_4 + 2), (s32) subroutine_arg0); + phi_s0_5 = *sp70; + phi_v1_2 = num_chars_selectable_mp; + phi_s1_6 = temp_ret_10; + phi_v0 = temp_ret_10; + } + phi_s1_7 = phi_s1_6; + if (phi_s0_5 < (phi_v1_2 + -3)) + { + temp_ret_11 = sub_GAME_7F01231C(phi_s1_6, temp_s3, temp_s4, (temp_s6 - *sp74) + 0xfc, (s32) (phi_s0_5 + 3), (s32) subroutine_arg0); + phi_v0 = temp_ret_11; + phi_s1_7 = temp_ret_11; + } + } + } + else + { + goto block_21; + } + temp_t9 = spE0 + 1; + sp70 = (void *) (sp70 + 4); + sp74 = (void *) (sp74 + 4); + sp80 = (void *) (sp80 + 4); + spE0 = temp_t9; + sp88 = (void *) (sp88 + 4); + if (temp_t9 != spE4) + { + goto loop_4; + } + } + combiner_bayer_lod_perspective(phi_s1_7); +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu0F_mpcharsel +/* 0472C4 7F012794 27BDFF18 */ addiu $sp, $sp, -0xe8 +/* 0472C8 7F012798 AFBF0064 */ sw $ra, 0x64($sp) +/* 0472CC 7F01279C AFB10044 */ sw $s1, 0x44($sp) +/* 0472D0 7F0127A0 00808825 */ move $s1, $a0 +/* 0472D4 7F0127A4 AFBE0060 */ sw $fp, 0x60($sp) +/* 0472D8 7F0127A8 AFB7005C */ sw $s7, 0x5c($sp) +/* 0472DC 7F0127AC AFB60058 */ sw $s6, 0x58($sp) +/* 0472E0 7F0127B0 AFB50054 */ sw $s5, 0x54($sp) +/* 0472E4 7F0127B4 AFB40050 */ sw $s4, 0x50($sp) +/* 0472E8 7F0127B8 AFB3004C */ sw $s3, 0x4c($sp) +/* 0472EC 7F0127BC AFB20048 */ sw $s2, 0x48($sp) +/* 0472F0 7F0127C0 AFB00040 */ sw $s0, 0x40($sp) +/* 0472F4 7F0127C4 0FC040A4 */ jal get_selected_num_players +/* 0472F8 7F0127C8 F7B40038 */ sdc1 $f20, 0x38($sp) +/* 0472FC 7F0127CC AFA200E4 */ sw $v0, 0xe4($sp) +/* 047300 7F0127D0 02202025 */ move $a0, $s1 +/* 047304 7F0127D4 00002825 */ move $a1, $zero +/* 047308 7F0127D8 00003025 */ move $a2, $zero +/* 04730C 7F0127DC 0C0011B4 */ jal set_setfillcolor +/* 047310 7F0127E0 00003825 */ move $a3, $zero +/* 047314 7F0127E4 0C000FBE */ jal insert_generic_fillrect +/* 047318 7F0127E8 00402025 */ move $a0, $v0 +/* 04731C 7F0127EC 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 047320 7F0127F0 00402025 */ move $a0, $v0 +/* 047324 7F0127F4 0FC2B366 */ jal microcode_constructor +/* 047328 7F0127F8 00402025 */ move $a0, $v0 +/* 04732C 7F0127FC 240E00AB */ li $t6, 171 +/* 047330 7F012800 240F0090 */ li $t7, 144 +/* 047334 7F012804 AFAF0014 */ sw $t7, 0x14($sp) +/* 047338 7F012808 AFAE0010 */ sw $t6, 0x10($sp) +/* 04733C 7F01280C 00402025 */ move $a0, $v0 +/* 047340 7F012810 24050026 */ li $a1, 38 +/* 047344 7F012814 240600A9 */ li $a2, 169 +/* 047348 7F012818 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04734C 7F01281C 24070184 */ li $a3, 388 +/* 047350 7F012820 8FA800E4 */ lw $t0, 0xe4($sp) +/* 047354 7F012824 00408825 */ move $s1, $v0 +/* 047358 7F012828 02202025 */ move $a0, $s1 +/* 04735C 7F01282C 29010003 */ slti $at, $t0, 3 +/* 047360 7F012830 1420000A */ bnez $at, .L7F01285C +/* 047364 7F012834 240500D4 */ li $a1, 212 +/* 047368 7F012838 24180136 */ li $t8, 310 +/* 04736C 7F01283C 24190080 */ li $t9, 128 +/* 047370 7F012840 AFB90014 */ sw $t9, 0x14($sp) +/* 047374 7F012844 AFB80010 */ sw $t8, 0x10($sp) +/* 047378 7F012848 2406001E */ li $a2, 30 +/* 04737C 7F01284C 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 047380 7F012850 240700D6 */ li $a3, 214 +/* 047384 7F012854 00408825 */ move $s1, $v0 +/* 047388 7F012858 8FA800E4 */ lw $t0, 0xe4($sp) +.L7F01285C: +/* 04738C 7F01285C 19000165 */ blez $t0, .L7F012DF4 +/* 047390 7F012860 3C098007 */ lui $t1, %hi(has_selected_char_player1) +/* 047394 7F012864 3C0A8007 */ lui $t2, %hi(mp_char_cur_select_player1) +/* 047398 7F012868 3C0B8007 */ lui $t3, %hi(dword_CODE_bss_80069730) +/* 04739C 7F01286C 3C0C8007 */ lui $t4, %hi(mp_char_prev_select_player1) +/* 0473A0 7F012870 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0473A4 7F012874 258C9720 */ addiu $t4, %lo(mp_char_prev_select_player1) # addiu $t4, $t4, -0x68e0 +/* 0473A8 7F012878 256B9730 */ addiu $t3, %lo(dword_CODE_bss_80069730) # addiu $t3, $t3, -0x68d0 +/* 0473AC 7F01287C 254A9710 */ addiu $t2, %lo(mp_char_cur_select_player1) # addiu $t2, $t2, -0x68f0 +/* 0473B0 7F012880 25299740 */ addiu $t1, %lo(has_selected_char_player1) # addiu $t1, $t1, -0x68c0 +/* 0473B4 7F012884 3C1E8007 */ lui $fp, %hi(size_mp_select_image_player1) +/* 0473B8 7F012888 4481A000 */ mtc1 $at, $f20 +/* 0473BC 7F01288C 27DE9750 */ addiu $fp, %lo(size_mp_select_image_player1) # addiu $fp, $fp, -0x68b0 +/* 0473C0 7F012890 AFA90088 */ sw $t1, 0x88($sp) +/* 0473C4 7F012894 AFAA0080 */ sw $t2, 0x80($sp) +/* 0473C8 7F012898 AFAB0074 */ sw $t3, 0x74($sp) +/* 0473CC 7F01289C AFAC0070 */ sw $t4, 0x70($sp) +/* 0473D0 7F0128A0 AFA000E0 */ sw $zero, 0xe0($sp) +.L7F0128A4: +/* 0473D4 7F0128A4 8FA800E4 */ lw $t0, 0xe4($sp) +/* 0473D8 7F0128A8 8FA400E0 */ lw $a0, 0xe0($sp) +/* 0473DC 7F0128AC 24010002 */ li $at, 2 +/* 0473E0 7F0128B0 15010009 */ bne $t0, $at, .L7F0128D8 +/* 0473E4 7F0128B4 308D0001 */ andi $t5, $a0, 1 +/* 0473E8 7F0128B8 24120026 */ li $s2, 38 +/* 0473EC 7F0128BC 18800003 */ blez $a0, .L7F0128CC +/* 0473F0 7F0128C0 2414015E */ li $s4, 350 +/* 0473F4 7F0128C4 10000010 */ b .L7F012908 +/* 0473F8 7F0128C8 241700AA */ li $s7, 170 +.L7F0128CC: +/* 0473FC 7F0128CC 00001825 */ move $v1, $zero +/* 047400 7F0128D0 1000000D */ b .L7F012908 +/* 047404 7F0128D4 2477001E */ addiu $s7, $v1, 0x1e +.L7F0128D8: +/* 047408 7F0128D8 28810002 */ slti $at, $a0, 2 +/* 04740C 7F0128DC 14200003 */ bnez $at, .L7F0128EC +/* 047410 7F0128E0 241400AF */ li $s4, 175 +/* 047414 7F0128E4 10000002 */ b .L7F0128F0 +/* 047418 7F0128E8 2403008C */ li $v1, 140 +.L7F0128EC: +/* 04741C 7F0128EC 00001825 */ move $v1, $zero +.L7F0128F0: +/* 047420 7F0128F0 11A00003 */ beqz $t5, .L7F012900 +/* 047424 7F0128F4 2477001E */ addiu $s7, $v1, 0x1e +/* 047428 7F0128F8 10000002 */ b .L7F012904 +/* 04742C 7F0128FC 240300AF */ li $v1, 175 +.L7F012900: +/* 047430 7F012900 00001825 */ move $v1, $zero +.L7F012904: +/* 047434 7F012904 24720026 */ addiu $s2, $v1, 0x26 +.L7F012908: +/* 047438 7F012908 264E0006 */ addiu $t6, $s2, 6 +/* 04743C 7F01290C 448E2000 */ mtc1 $t6, $f4 +/* 047440 7F012910 26F00005 */ addiu $s0, $s7, 5 +/* 047444 7F012914 44908000 */ mtc1 $s0, $f16 +/* 047448 7F012918 468021A0 */ cvt.s.w $f6, $f4 +/* 04744C 7F01291C 02547821 */ addu $t7, $s2, $s4 +/* 047450 7F012920 3C01ED00 */ lui $at, 0xed00 +/* 047454 7F012924 24510008 */ addiu $s1, $v0, 8 +/* 047458 7F012928 468084A0 */ cvt.s.w $f18, $f16 +/* 04745C 7F01292C 46143202 */ mul.s $f8, $f6, $f20 +/* 047460 7F012930 4600428D */ trunc.w.s $f10, $f8 +/* 047464 7F012934 46149102 */ mul.s $f4, $f18, $f20 +/* 047468 7F012938 44185000 */ mfc1 $t8, $f10 +/* 04746C 7F01293C 00000000 */ nop +/* 047470 7F012940 33190FFF */ andi $t9, $t8, 0xfff +/* 047474 7F012944 4600218D */ trunc.w.s $f6, $f4 +/* 047478 7F012948 00194B00 */ sll $t1, $t9, 0xc +/* 04747C 7F01294C 25F9FFFA */ addiu $t9, $t7, -6 +/* 047480 7F012950 44994000 */ mtc1 $t9, $f8 +/* 047484 7F012954 440C3000 */ mfc1 $t4, $f6 +/* 047488 7F012958 01215025 */ or $t2, $t1, $at +/* 04748C 7F01295C 468042A0 */ cvt.s.w $f10, $f8 +/* 047490 7F012960 318D0FFF */ andi $t5, $t4, 0xfff +/* 047494 7F012964 014D7025 */ or $t6, $t2, $t5 +/* 047498 7F012968 26ED0087 */ addiu $t5, $s7, 0x87 +/* 04749C 7F01296C 448D2000 */ mtc1 $t5, $f4 +/* 0474A0 7F012970 AC4E0000 */ sw $t6, ($v0) +/* 0474A4 7F012974 46145402 */ mul.s $f16, $f10, $f20 +/* 0474A8 7F012978 AFAF008C */ sw $t7, 0x8c($sp) +/* 0474AC 7F01297C 468021A0 */ cvt.s.w $f6, $f4 +/* 0474B0 7F012980 4600848D */ trunc.w.s $f18, $f16 +/* 0474B4 7F012984 46143202 */ mul.s $f8, $f6, $f20 +/* 0474B8 7F012988 440B9000 */ mfc1 $t3, $f18 +/* 0474BC 7F01298C 00000000 */ nop +/* 0474C0 7F012990 316C0FFF */ andi $t4, $t3, 0xfff +/* 0474C4 7F012994 4600428D */ trunc.w.s $f10, $f8 +/* 0474C8 7F012998 000C5300 */ sll $t2, $t4, 0xc +/* 0474CC 7F01299C 440F5000 */ mfc1 $t7, $f10 +/* 0474D0 7F0129A0 00000000 */ nop +/* 0474D4 7F0129A4 31F80FFF */ andi $t8, $t7, 0xfff +/* 0474D8 7F0129A8 0158C825 */ or $t9, $t2, $t8 +/* 0474DC 7F0129AC AC590004 */ sw $t9, 4($v0) +/* 0474E0 7F0129B0 8FA90088 */ lw $t1, 0x88($sp) +/* 0474E4 7F0129B4 AFA400E0 */ sw $a0, 0xe0($sp) +/* 0474E8 7F0129B8 8D2B0000 */ lw $t3, ($t1) +/* 0474EC 7F0129BC 55600034 */ bnezl $t3, .L7F012A90 +/* 0474F0 7F0129C0 8FAE0080 */ lw $t6, 0x80($sp) +/* 0474F4 7F0129C4 8FCC0000 */ lw $t4, ($fp) +/* 0474F8 7F0129C8 AFA400E0 */ sw $a0, 0xe0($sp) +/* 0474FC 7F0129CC 55800030 */ bnezl $t4, .L7F012A90 +/* 047500 7F0129D0 8FAE0080 */ lw $t6, 0x80($sp) +/* 047504 7F0129D4 0FC30776 */ jal get_textptr_for_textID +/* 047508 7F0129D8 34049C55 */ li $a0, 40021 +/* 04750C 7F0129DC 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 047510 7F0129E0 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 047514 7F0129E4 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 047518 7F0129E8 00409825 */ move $s3, $v0 +/* 04751C 7F0129EC 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 047520 7F0129F0 27A400BC */ addiu $a0, $sp, 0xbc +/* 047524 7F0129F4 27A500B8 */ addiu $a1, $sp, 0xb8 +/* 047528 7F0129F8 00403025 */ move $a2, $v0 +/* 04752C 7F0129FC AFA00014 */ sw $zero, 0x14($sp) +/* 047530 7F012A00 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 047534 7F012A04 AFAD0010 */ sw $t5, 0x10($sp) +/* 047538 7F012A08 8FAA00B8 */ lw $t2, 0xb8($sp) +/* 04753C 7F012A0C 00147043 */ sra $t6, $s4, 1 +/* 047540 7F012A10 01D27821 */ addu $t7, $t6, $s2 +/* 047544 7F012A14 000AC043 */ sra $t8, $t2, 1 +/* 047548 7F012A18 01F8C823 */ subu $t9, $t7, $t8 +/* 04754C 7F012A1C AFB900B4 */ sw $t9, 0xb4($sp) +/* 047550 7F012A20 AFB000B0 */ sw $s0, 0xb0($sp) +/* 047554 7F012A24 0FC2B366 */ jal microcode_constructor +/* 047558 7F012A28 02202025 */ move $a0, $s1 +/* 04755C 7F012A2C 0C001107 */ jal get_video2_settings_txtClipW +/* 047560 7F012A30 00408825 */ move $s1, $v0 +/* 047564 7F012A34 00028400 */ sll $s0, $v0, 0x10 +/* 047568 7F012A38 00104C03 */ sra $t1, $s0, 0x10 +/* 04756C 7F012A3C 0C00110B */ jal get_video2_settings_txtClipH +/* 047570 7F012A40 01208025 */ move $s0, $t1 +/* 047574 7F012A44 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) +/* 047578 7F012A48 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) +/* 04757C 7F012A4C 8D8C0EB4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 047580 7F012A50 8D6B0EB8 */ lw $t3, %lo(ptrSecondFontTableLarge)($t3) +/* 047584 7F012A54 240D00FF */ li $t5, 255 +/* 047588 7F012A58 AFAD0018 */ sw $t5, 0x18($sp) +/* 04758C 7F012A5C 02202025 */ move $a0, $s1 +/* 047590 7F012A60 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 047594 7F012A64 27A600B0 */ addiu $a2, $sp, 0xb0 +/* 047598 7F012A68 02603825 */ move $a3, $s3 +/* 04759C 7F012A6C AFB0001C */ sw $s0, 0x1c($sp) +/* 0475A0 7F012A70 AFA20020 */ sw $v0, 0x20($sp) +/* 0475A4 7F012A74 AFA00024 */ sw $zero, 0x24($sp) +/* 0475A8 7F012A78 AFA00028 */ sw $zero, 0x28($sp) +/* 0475AC 7F012A7C AFAC0014 */ sw $t4, 0x14($sp) +/* 0475B0 7F012A80 0FC025D8 */ jal write_text_at_abs_coord +/* 0475B4 7F012A84 AFAB0010 */ sw $t3, 0x10($sp) +/* 0475B8 7F012A88 00408825 */ move $s1, $v0 +/* 0475BC 7F012A8C 8FAE0080 */ lw $t6, 0x80($sp) +.L7F012A90: +/* 0475C0 7F012A90 3C048003 */ lui $a0, %hi(mp_chr_setup) +/* 0475C4 7F012A94 0014C043 */ sra $t8, $s4, 1 +/* 0475C8 7F012A98 8DCA0000 */ lw $t2, ($t6) +/* 0475CC 7F012A9C 0312B021 */ addu $s6, $t8, $s2 +/* 0475D0 7F012AA0 000A7880 */ sll $t7, $t2, 2 +/* 0475D4 7F012AA4 01EA7823 */ subu $t7, $t7, $t2 +/* 0475D8 7F012AA8 000F7880 */ sll $t7, $t7, 2 +/* 0475DC 7F012AAC 008F2021 */ addu $a0, $a0, $t7 +/* 0475E0 7F012AB0 0FC30776 */ jal get_textptr_for_textID +/* 0475E4 7F012AB4 9484B198 */ lhu $a0, %lo(mp_chr_setup)($a0) +/* 0475E8 7F012AB8 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 0475EC 7F012ABC 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 0475F0 7F012AC0 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 0475F4 7F012AC4 00409825 */ move $s3, $v0 +/* 0475F8 7F012AC8 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 0475FC 7F012ACC 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 047600 7F012AD0 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 047604 7F012AD4 00403025 */ move $a2, $v0 +/* 047608 7F012AD8 AFA00014 */ sw $zero, 0x14($sp) +/* 04760C 7F012ADC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 047610 7F012AE0 AFB90010 */ sw $t9, 0x10($sp) +/* 047614 7F012AE4 8FA900A4 */ lw $t1, 0xa4($sp) +/* 047618 7F012AE8 26ED0078 */ addiu $t5, $s7, 0x78 +/* 04761C 7F012AEC AFAD009C */ sw $t5, 0x9c($sp) +/* 047620 7F012AF0 00095843 */ sra $t3, $t1, 1 +/* 047624 7F012AF4 02CB6023 */ subu $t4, $s6, $t3 +/* 047628 7F012AF8 AFAC00A0 */ sw $t4, 0xa0($sp) +/* 04762C 7F012AFC 0FC2B366 */ jal microcode_constructor +/* 047630 7F012B00 02202025 */ move $a0, $s1 +/* 047634 7F012B04 0C001107 */ jal get_video2_settings_txtClipW +/* 047638 7F012B08 00408825 */ move $s1, $v0 +/* 04763C 7F012B0C 00028400 */ sll $s0, $v0, 0x10 +/* 047640 7F012B10 00107403 */ sra $t6, $s0, 0x10 +/* 047644 7F012B14 0C00110B */ jal get_video2_settings_txtClipH +/* 047648 7F012B18 01C08025 */ move $s0, $t6 +/* 04764C 7F012B1C 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableLarge) +/* 047650 7F012B20 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) +/* 047654 7F012B24 8DEF0EB4 */ lw $t7, %lo(ptrFirstFontTableLarge)($t7) +/* 047658 7F012B28 8D4A0EB8 */ lw $t2, %lo(ptrSecondFontTableLarge)($t2) +/* 04765C 7F012B2C 241800FF */ li $t8, 255 +/* 047660 7F012B30 AFB80018 */ sw $t8, 0x18($sp) +/* 047664 7F012B34 02202025 */ move $a0, $s1 +/* 047668 7F012B38 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 04766C 7F012B3C 27A6009C */ addiu $a2, $sp, 0x9c +/* 047670 7F012B40 02603825 */ move $a3, $s3 +/* 047674 7F012B44 AFB0001C */ sw $s0, 0x1c($sp) +/* 047678 7F012B48 AFA20020 */ sw $v0, 0x20($sp) +/* 04767C 7F012B4C AFA00024 */ sw $zero, 0x24($sp) +/* 047680 7F012B50 AFA00028 */ sw $zero, 0x28($sp) +/* 047684 7F012B54 AFAF0014 */ sw $t7, 0x14($sp) +/* 047688 7F012B58 0FC025D8 */ jal write_text_at_abs_coord +/* 04768C 7F012B5C AFAA0010 */ sw $t2, 0x10($sp) +/* 047690 7F012B60 8FB90074 */ lw $t9, 0x74($sp) +/* 047694 7F012B64 8FAB0070 */ lw $t3, 0x70($sp) +/* 047698 7F012B68 8FB4008C */ lw $s4, 0x8c($sp) +/* 04769C 7F012B6C 8F290000 */ lw $t1, ($t9) +/* 0476A0 7F012B70 26F50046 */ addiu $s5, $s7, 0x46 +/* 0476A4 7F012B74 AFB50010 */ sw $s5, 0x10($sp) +/* 0476A8 7F012B78 8FCD0000 */ lw $t5, ($fp) +/* 0476AC 7F012B7C 8D6C0000 */ lw $t4, ($t3) +/* 0476B0 7F012B80 2653000D */ addiu $s3, $s2, 0xd +/* 0476B4 7F012B84 2694FFF2 */ addiu $s4, $s4, -0xe +/* 0476B8 7F012B88 02803025 */ move $a2, $s4 +/* 0476BC 7F012B8C 02602825 */ move $a1, $s3 +/* 0476C0 7F012B90 00402025 */ move $a0, $v0 +/* 0476C4 7F012B94 02C93823 */ subu $a3, $s6, $t1 +/* 0476C8 7F012B98 AFAD0018 */ sw $t5, 0x18($sp) +/* 0476CC 7F012B9C 0FC048C7 */ jal sub_GAME_7F01231C +/* 0476D0 7F012BA0 AFAC0014 */ sw $t4, 0x14($sp) +/* 0476D4 7F012BA4 8FAE0088 */ lw $t6, 0x88($sp) +/* 0476D8 7F012BA8 00408825 */ move $s1, $v0 +/* 0476DC 7F012BAC 8FB80070 */ lw $t8, 0x70($sp) +/* 0476E0 7F012BB0 8DCA0000 */ lw $t2, ($t6) +/* 0476E4 7F012BB4 8FA90080 */ lw $t1, 0x80($sp) +/* 0476E8 7F012BB8 55400005 */ bnezl $t2, .L7F012BD0 +/* 0476EC 7F012BBC 8F190000 */ lw $t9, ($t8) +/* 0476F0 7F012BC0 8FCF0000 */ lw $t7, ($fp) +/* 0476F4 7F012BC4 51E00006 */ beql $t7, $zero, .L7F012BE0 +/* 0476F8 7F012BC8 8FAC0070 */ lw $t4, 0x70($sp) +/* 0476FC 7F012BCC 8F190000 */ lw $t9, ($t8) +.L7F012BD0: +/* 047700 7F012BD0 8D2B0000 */ lw $t3, ($t1) +/* 047704 7F012BD4 532B0076 */ beql $t9, $t3, .L7F012DB0 +/* 047708 7F012BD8 8FAB0088 */ lw $t3, 0x88($sp) +/* 04770C 7F012BDC 8FAC0070 */ lw $t4, 0x70($sp) +.L7F012BE0: +/* 047710 7F012BE0 02202025 */ move $a0, $s1 +/* 047714 7F012BE4 02602825 */ move $a1, $s3 +/* 047718 7F012BE8 8D900000 */ lw $s0, ($t4) +/* 04771C 7F012BEC 02803025 */ move $a2, $s4 +/* 047720 7F012BF0 8FAD0074 */ lw $t5, 0x74($sp) +/* 047724 7F012BF4 2A010003 */ slti $at, $s0, 3 +/* 047728 7F012BF8 1420000C */ bnez $at, .L7F012C2C +/* 04772C 7F012BFC 260AFFFD */ addiu $t2, $s0, -3 +/* 047730 7F012C00 8DAE0000 */ lw $t6, ($t5) +/* 047734 7F012C04 8FCF0000 */ lw $t7, ($fp) +/* 047738 7F012C08 AFAA0014 */ sw $t2, 0x14($sp) +/* 04773C 7F012C0C 02CE3823 */ subu $a3, $s6, $t6 +/* 047740 7F012C10 24E7FF04 */ addiu $a3, $a3, -0xfc +/* 047744 7F012C14 AFB50010 */ sw $s5, 0x10($sp) +/* 047748 7F012C18 0FC048C7 */ jal sub_GAME_7F01231C +/* 04774C 7F012C1C AFAF0018 */ sw $t7, 0x18($sp) +/* 047750 7F012C20 8FB80070 */ lw $t8, 0x70($sp) +/* 047754 7F012C24 00408825 */ move $s1, $v0 +/* 047758 7F012C28 8F100000 */ lw $s0, ($t8) +.L7F012C2C: +/* 04775C 7F012C2C 2A010002 */ slti $at, $s0, 2 +/* 047760 7F012C30 14200010 */ bnez $at, .L7F012C74 +/* 047764 7F012C34 02202025 */ move $a0, $s1 +/* 047768 7F012C38 8FA90074 */ lw $t1, 0x74($sp) +/* 04776C 7F012C3C 8FCC0000 */ lw $t4, ($fp) +/* 047770 7F012C40 260BFFFE */ addiu $t3, $s0, -2 +/* 047774 7F012C44 8D390000 */ lw $t9, ($t1) +/* 047778 7F012C48 AFAB0014 */ sw $t3, 0x14($sp) +/* 04777C 7F012C4C AFB50010 */ sw $s5, 0x10($sp) +/* 047780 7F012C50 02D93823 */ subu $a3, $s6, $t9 +/* 047784 7F012C54 24E7FF58 */ addiu $a3, $a3, -0xa8 +/* 047788 7F012C58 02602825 */ move $a1, $s3 +/* 04778C 7F012C5C 02803025 */ move $a2, $s4 +/* 047790 7F012C60 0FC048C7 */ jal sub_GAME_7F01231C +/* 047794 7F012C64 AFAC0018 */ sw $t4, 0x18($sp) +/* 047798 7F012C68 8FAD0070 */ lw $t5, 0x70($sp) +/* 04779C 7F012C6C 00408825 */ move $s1, $v0 +/* 0477A0 7F012C70 8DB00000 */ lw $s0, ($t5) +.L7F012C74: +/* 0477A4 7F012C74 1A000010 */ blez $s0, .L7F012CB8 +/* 0477A8 7F012C78 02202025 */ move $a0, $s1 +/* 0477AC 7F012C7C 8FAE0074 */ lw $t6, 0x74($sp) +/* 0477B0 7F012C80 8FD80000 */ lw $t8, ($fp) +/* 0477B4 7F012C84 260FFFFF */ addiu $t7, $s0, -1 +/* 0477B8 7F012C88 8DCA0000 */ lw $t2, ($t6) +/* 0477BC 7F012C8C AFAF0014 */ sw $t7, 0x14($sp) +/* 0477C0 7F012C90 AFB50010 */ sw $s5, 0x10($sp) +/* 0477C4 7F012C94 02CA3823 */ subu $a3, $s6, $t2 +/* 0477C8 7F012C98 24E7FFAC */ addiu $a3, $a3, -0x54 +/* 0477CC 7F012C9C 02602825 */ move $a1, $s3 +/* 0477D0 7F012CA0 02803025 */ move $a2, $s4 +/* 0477D4 7F012CA4 0FC048C7 */ jal sub_GAME_7F01231C +/* 0477D8 7F012CA8 AFB80018 */ sw $t8, 0x18($sp) +/* 0477DC 7F012CAC 8FA90070 */ lw $t1, 0x70($sp) +/* 0477E0 7F012CB0 00408825 */ move $s1, $v0 +/* 0477E4 7F012CB4 8D300000 */ lw $s0, ($t1) +.L7F012CB8: +/* 0477E8 7F012CB8 3C038003 */ lui $v1, %hi(num_chars_selectable_mp) +/* 0477EC 7F012CBC 8C63B194 */ lw $v1, %lo(num_chars_selectable_mp)($v1) +/* 0477F0 7F012CC0 02202025 */ move $a0, $s1 +/* 0477F4 7F012CC4 02602825 */ move $a1, $s3 +/* 0477F8 7F012CC8 2479FFFF */ addiu $t9, $v1, -1 +/* 0477FC 7F012CCC 0219082A */ slt $at, $s0, $t9 +/* 047800 7F012CD0 10200010 */ beqz $at, .L7F012D14 +/* 047804 7F012CD4 02803025 */ move $a2, $s4 +/* 047808 7F012CD8 8FAB0074 */ lw $t3, 0x74($sp) +/* 04780C 7F012CDC 8FCE0000 */ lw $t6, ($fp) +/* 047810 7F012CE0 260D0001 */ addiu $t5, $s0, 1 +/* 047814 7F012CE4 8D6C0000 */ lw $t4, ($t3) +/* 047818 7F012CE8 AFAD0014 */ sw $t5, 0x14($sp) +/* 04781C 7F012CEC AFB50010 */ sw $s5, 0x10($sp) +/* 047820 7F012CF0 02CC3823 */ subu $a3, $s6, $t4 +/* 047824 7F012CF4 24E70054 */ addiu $a3, $a3, 0x54 +/* 047828 7F012CF8 0FC048C7 */ jal sub_GAME_7F01231C +/* 04782C 7F012CFC AFAE0018 */ sw $t6, 0x18($sp) +/* 047830 7F012D00 8FAA0070 */ lw $t2, 0x70($sp) +/* 047834 7F012D04 3C038003 */ lui $v1, %hi(num_chars_selectable_mp) +/* 047838 7F012D08 8C63B194 */ lw $v1, %lo(num_chars_selectable_mp)($v1) +/* 04783C 7F012D0C 00408825 */ move $s1, $v0 +/* 047840 7F012D10 8D500000 */ lw $s0, ($t2) +.L7F012D14: +/* 047844 7F012D14 246FFFFE */ addiu $t7, $v1, -2 +/* 047848 7F012D18 020F082A */ slt $at, $s0, $t7 +/* 04784C 7F012D1C 10200012 */ beqz $at, .L7F012D68 +/* 047850 7F012D20 02202025 */ move $a0, $s1 +/* 047854 7F012D24 8FB80074 */ lw $t8, 0x74($sp) +/* 047858 7F012D28 8FCB0000 */ lw $t3, ($fp) +/* 04785C 7F012D2C 26190002 */ addiu $t9, $s0, 2 +/* 047860 7F012D30 8F090000 */ lw $t1, ($t8) +/* 047864 7F012D34 AFB90014 */ sw $t9, 0x14($sp) +/* 047868 7F012D38 AFB50010 */ sw $s5, 0x10($sp) +/* 04786C 7F012D3C 02C93823 */ subu $a3, $s6, $t1 +/* 047870 7F012D40 24E700A8 */ addiu $a3, $a3, 0xa8 +/* 047874 7F012D44 02602825 */ move $a1, $s3 +/* 047878 7F012D48 02803025 */ move $a2, $s4 +/* 04787C 7F012D4C 0FC048C7 */ jal sub_GAME_7F01231C +/* 047880 7F012D50 AFAB0018 */ sw $t3, 0x18($sp) +/* 047884 7F012D54 8FAC0070 */ lw $t4, 0x70($sp) +/* 047888 7F012D58 3C038003 */ lui $v1, %hi(num_chars_selectable_mp) +/* 04788C 7F012D5C 8C63B194 */ lw $v1, %lo(num_chars_selectable_mp)($v1) +/* 047890 7F012D60 00408825 */ move $s1, $v0 +/* 047894 7F012D64 8D900000 */ lw $s0, ($t4) +.L7F012D68: +/* 047898 7F012D68 246DFFFD */ addiu $t5, $v1, -3 +/* 04789C 7F012D6C 020D082A */ slt $at, $s0, $t5 +/* 0478A0 7F012D70 1020000E */ beqz $at, .L7F012DAC +/* 0478A4 7F012D74 02202025 */ move $a0, $s1 +/* 0478A8 7F012D78 8FAE0074 */ lw $t6, 0x74($sp) +/* 0478AC 7F012D7C 8FD80000 */ lw $t8, ($fp) +/* 0478B0 7F012D80 260F0003 */ addiu $t7, $s0, 3 +/* 0478B4 7F012D84 8DCA0000 */ lw $t2, ($t6) +/* 0478B8 7F012D88 AFAF0014 */ sw $t7, 0x14($sp) +/* 0478BC 7F012D8C AFB50010 */ sw $s5, 0x10($sp) +/* 0478C0 7F012D90 02CA3823 */ subu $a3, $s6, $t2 +/* 0478C4 7F012D94 24E700FC */ addiu $a3, $a3, 0xfc +/* 0478C8 7F012D98 02602825 */ move $a1, $s3 +/* 0478CC 7F012D9C 02803025 */ move $a2, $s4 +/* 0478D0 7F012DA0 0FC048C7 */ jal sub_GAME_7F01231C +/* 0478D4 7F012DA4 AFB80018 */ sw $t8, 0x18($sp) +/* 0478D8 7F012DA8 00408825 */ move $s1, $v0 +.L7F012DAC: +/* 0478DC 7F012DAC 8FAB0088 */ lw $t3, 0x88($sp) +.L7F012DB0: +/* 0478E0 7F012DB0 8FA900E0 */ lw $t1, 0xe0($sp) +/* 0478E4 7F012DB4 8FAD0080 */ lw $t5, 0x80($sp) +/* 0478E8 7F012DB8 8FAA0074 */ lw $t2, 0x74($sp) +/* 0478EC 7F012DBC 8FB80070 */ lw $t8, 0x70($sp) +/* 0478F0 7F012DC0 256C0004 */ addiu $t4, $t3, 4 +/* 0478F4 7F012DC4 8FAB00E4 */ lw $t3, 0xe4($sp) +/* 0478F8 7F012DC8 25390001 */ addiu $t9, $t1, 1 +/* 0478FC 7F012DCC 25AE0004 */ addiu $t6, $t5, 4 +/* 047900 7F012DD0 254F0004 */ addiu $t7, $t2, 4 +/* 047904 7F012DD4 27090004 */ addiu $t1, $t8, 4 +/* 047908 7F012DD8 AFA90070 */ sw $t1, 0x70($sp) +/* 04790C 7F012DDC AFAF0074 */ sw $t7, 0x74($sp) +/* 047910 7F012DE0 AFAE0080 */ sw $t6, 0x80($sp) +/* 047914 7F012DE4 AFB900E0 */ sw $t9, 0xe0($sp) +/* 047918 7F012DE8 AFAC0088 */ sw $t4, 0x88($sp) +/* 04791C 7F012DEC 172BFEAD */ bne $t9, $t3, .L7F0128A4 +/* 047920 7F012DF0 27DE0004 */ addiu $fp, $fp, 4 +.L7F012DF4: +/* 047924 7F012DF4 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 047928 7F012DF8 02202025 */ move $a0, $s1 +/* 04792C 7F012DFC 8FBF0064 */ lw $ra, 0x64($sp) +/* 047930 7F012E00 D7B40038 */ ldc1 $f20, 0x38($sp) +/* 047934 7F012E04 8FB00040 */ lw $s0, 0x40($sp) +/* 047938 7F012E08 8FB10044 */ lw $s1, 0x44($sp) +/* 04793C 7F012E0C 8FB20048 */ lw $s2, 0x48($sp) +/* 047940 7F012E10 8FB3004C */ lw $s3, 0x4c($sp) +/* 047944 7F012E14 8FB40050 */ lw $s4, 0x50($sp) +/* 047948 7F012E18 8FB50054 */ lw $s5, 0x54($sp) +/* 04794C 7F012E1C 8FB60058 */ lw $s6, 0x58($sp) +/* 047950 7F012E20 8FB7005C */ lw $s7, 0x5c($sp) +/* 047954 7F012E24 8FBE0060 */ lw $fp, 0x60($sp) +/* 047958 7F012E28 03E00008 */ jr $ra +/* 04795C 7F012E2C 27BD00E8 */ addiu $sp, $sp, 0xe8 +) +#endif + + + +void init_menu10_mphandicap(void) +{ + tab_1_selected = FALSE; + tab_2_selected = FALSE; + tab_3_selected = FALSE; + tab_3_highlight = FALSE; + tab_2_highlight = FALSE; + tab_1_highlight = FALSE; + has_selected_char_player1 = FALSE; + dword_CODE_bss_80069760 = 0; + has_selected_char_player2 = FALSE; + dword_CODE_bss_80069764 = 0; + has_selected_char_player3 = FALSE; + dword_CODE_bss_80069768 = 0; + has_selected_char_player4 = FALSE; + dword_CODE_bss_8006976C = 0; + load_walletbond(); +} + +void update_menu10_mphandicap(void) { + return; +} + + + + + + + +#ifdef NONMATCHING +void interface_menu10_mphandicap(void) +{ + s32 sp44; + s32 temp_s3; + s32 temp_t9; + void *temp_s2; + void *temp_v0; + void *temp_v0_2; + void *phi_s1; + s32 phi_s3; + s32 phi_s4; + s32 phi_fp; + s32 phi_fp_2; + + sp44 = get_selected_num_players(); + setvideo_far(0x42700000); + video_related_21(D_80051A90); + set_page_height(0x42c80000, D_80051A94); + set_video2_settings_offset_24(0); + phi_fp = 0; + if (sp44 > 0) + { + phi_s1 = &has_selected_char_player1; + phi_s3 = 0; + phi_s4 = 0; + phi_fp_2 = 0; +loop_2: + if (*phi_s1 != 0) + { + if (get_controller_buttons_pressed((s32) (phi_s3 << 0x18) >> 0x18, 0x4000) != 0) + { + *phi_s1 = 0; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + temp_t9 = (s32) (phi_s3 << 0x18) >> 0x18; + if (*phi_s1 == 0) + { + temp_s2 = phi_s4 + &handicap_player1; + if ((get_controller_buttons_pressed((s32) (temp_t9 << 0x18) >> 0x18, 0x202) == 0) && (get_controller_3dstick_L_R((s32) (temp_t9 << 0x18) >> 0x18, -2, 1) < -1)) + { + if ((*temp_s2 != 0) && (*temp_v0 > 0)) + { +block_10: + *temp_v0 = (s32) (*temp_v0 + -1); + } + else + { + if ((get_controller_buttons_pressed((s32) (temp_t9 << 0x18) >> 0x18, 0x101) == 0) && (get_controller_3dstick_L_R((s32) (temp_t9 << 0x18) >> 0x18, -2, 1) > 0)) + { + if ((*temp_s2 != 0) && (*temp_v0_2 < 0xa)) + { +block_15: + *temp_v0_2 = (s32) (*temp_v0_2 + 1); + } + else + { + if (get_controller_buttons_pressed((s32) (temp_t9 << 0x18) >> 0x18, 0xb000) != 0) + { + *phi_s1 = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + else + { + temp_v0_2 = &handicap_player1 + phi_s4; + if (*temp_v0_2 < 0xa) + { + goto block_15; + } + } + } + } + else + { + temp_v0 = &handicap_player1 + phi_s4; + if (*temp_v0 > 0) + { + goto block_10; + } + } + if ((get_controller_3dstick_L_R((s32) (temp_t9 << 0x18) >> 0x18, -2, 1) == -1) || (get_controller_3dstick_L_R((s32) (temp_t9 << 0x18) >> 0x18, -2, 1) == 0)) + { + *temp_s2 = 1; + } + else + { + *temp_s2 = 0; + } + } + if (*phi_s1 != 0) + { + + } + temp_s3 = phi_s3 + 1; + phi_s1 = phi_s1 + 4; + phi_s3 = temp_s3; + phi_s4 = phi_s4 + 4; + phi_fp = phi_fp_2; + phi_fp_2 = phi_fp_2; + if (temp_s3 != sp44) + { + goto loop_2; + } + } + disable_all_switches(ptr_folder_object_instance); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0x2a, 1); + menu_control_stick_tracking(); + if (phi_fp == sp44) + { + set_menu_to_mode(MENU_MP_OPTIONS, 0); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051A90 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051A94 +.word 0x461C4000 /*10000.0;*/ + +.text +glabel interface_menu10_mphandicap +/* 0479F4 7F012EC4 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0479F8 7F012EC8 AFBF003C */ sw $ra, 0x3c($sp) +/* 0479FC 7F012ECC AFBE0038 */ sw $fp, 0x38($sp) +/* 047A00 7F012ED0 AFB70034 */ sw $s7, 0x34($sp) +/* 047A04 7F012ED4 AFB60030 */ sw $s6, 0x30($sp) +/* 047A08 7F012ED8 AFB5002C */ sw $s5, 0x2c($sp) +/* 047A0C 7F012EDC AFB40028 */ sw $s4, 0x28($sp) +/* 047A10 7F012EE0 AFB30024 */ sw $s3, 0x24($sp) +/* 047A14 7F012EE4 AFB20020 */ sw $s2, 0x20($sp) +/* 047A18 7F012EE8 AFB1001C */ sw $s1, 0x1c($sp) +/* 047A1C 7F012EEC 0FC040A4 */ jal get_selected_num_players +/* 047A20 7F012EF0 AFB00018 */ sw $s0, 0x18($sp) +/* 047A24 7F012EF4 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 047A28 7F012EF8 44816000 */ mtc1 $at, $f12 +/* 047A2C 7F012EFC AFA20044 */ sw $v0, 0x44($sp) +/* 047A30 7F012F00 0C001151 */ jal setvideo_far +/* 047A34 7F012F04 0000F025 */ move $fp, $zero +/* 047A38 7F012F08 3C018005 */ lui $at, %hi(D_80051A90) +/* 047A3C 7F012F0C 0C001164 */ jal video_related_21 +/* 047A40 7F012F10 C42C1A90 */ lwc1 $f12, %lo(D_80051A90)($at) +/* 047A44 7F012F14 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 047A48 7F012F18 44816000 */ mtc1 $at, $f12 +/* 047A4C 7F012F1C 3C018005 */ lui $at, %hi(D_80051A94) +/* 047A50 7F012F20 0C001194 */ jal set_page_height +/* 047A54 7F012F24 C42E1A94 */ lwc1 $f14, %lo(D_80051A94)($at) +/* 047A58 7F012F28 0C00114D */ jal set_video2_settings_offset_24 +/* 047A5C 7F012F2C 00002025 */ move $a0, $zero +/* 047A60 7F012F30 8FAE0044 */ lw $t6, 0x44($sp) +/* 047A64 7F012F34 00009825 */ move $s3, $zero +/* 047A68 7F012F38 0000A025 */ move $s4, $zero +/* 047A6C 7F012F3C 19C0006F */ blez $t6, .L7F0130FC +/* 047A70 7F012F40 3C118007 */ lui $s1, %hi(has_selected_char_player1) +/* 047A74 7F012F44 3C168007 */ lui $s6, %hi(handicap_player1) +/* 047A78 7F012F48 3C158006 */ lui $s5, %hi(ptr_sfx_buf) +/* 047A7C 7F012F4C 26B53720 */ addiu $s5, %lo(ptr_sfx_buf) # addiu $s5, $s5, 0x3720 +/* 047A80 7F012F50 26D697A8 */ addiu $s6, %lo(handicap_player1) # addiu $s6, $s6, -0x6858 +/* 047A84 7F012F54 26319740 */ addiu $s1, %lo(has_selected_char_player1) # addiu $s1, $s1, -0x68c0 +/* 047A88 7F012F58 24170001 */ li $s7, 1 +.L7F012F5C: +/* 047A8C 7F012F5C 8E2F0000 */ lw $t7, ($s1) +/* 047A90 7F012F60 00132600 */ sll $a0, $s3, 0x18 +/* 047A94 7F012F64 0004C603 */ sra $t8, $a0, 0x18 +/* 047A98 7F012F68 11E00009 */ beqz $t7, .L7F012F90 +/* 047A9C 7F012F6C 03002025 */ move $a0, $t8 +/* 047AA0 7F012F70 0C0030EB */ jal get_controller_buttons_pressed +/* 047AA4 7F012F74 24054000 */ li $a1, 16384 +/* 047AA8 7F012F78 10400005 */ beqz $v0, .L7F012F90 +/* 047AAC 7F012F7C 240500C7 */ li $a1, 199 +/* 047AB0 7F012F80 AE200000 */ sw $zero, ($s1) +/* 047AB4 7F012F84 8EA40000 */ lw $a0, ($s5) +/* 047AB8 7F012F88 0C002382 */ jal play_sfx_a1 +/* 047ABC 7F012F8C 00003025 */ move $a2, $zero +.L7F012F90: +/* 047AC0 7F012F90 8E220000 */ lw $v0, ($s1) +/* 047AC4 7F012F94 00138600 */ sll $s0, $s3, 0x18 +/* 047AC8 7F012F98 0010CE03 */ sra $t9, $s0, 0x18 +/* 047ACC 7F012F9C 14400050 */ bnez $v0, .L7F0130E0 +/* 047AD0 7F012FA0 03208025 */ move $s0, $t9 +/* 047AD4 7F012FA4 00192600 */ sll $a0, $t9, 0x18 +/* 047AD8 7F012FA8 3C098007 */ lui $t1, %hi(dword_CODE_bss_80069760) +/* 047ADC 7F012FAC 25299760 */ addiu $t1, $t1, %lo(dword_CODE_bss_80069760) +/* 047AE0 7F012FB0 00044603 */ sra $t0, $a0, 0x18 +/* 047AE4 7F012FB4 01002025 */ move $a0, $t0 +/* 047AE8 7F012FB8 02899021 */ addu $s2, $s4, $t1 +/* 047AEC 7F012FBC 0C0030EB */ jal get_controller_buttons_pressed +/* 047AF0 7F012FC0 24050202 */ li $a1, 514 +/* 047AF4 7F012FC4 1440000B */ bnez $v0, .L7F012FF4 +/* 047AF8 7F012FC8 00102600 */ sll $a0, $s0, 0x18 +/* 047AFC 7F012FCC 00045603 */ sra $t2, $a0, 0x18 +/* 047B00 7F012FD0 01402025 */ move $a0, $t2 +/* 047B04 7F012FD4 2405FFFE */ li $a1, -2 +/* 047B08 7F012FD8 0C00312D */ jal get_controller_3dstick_L_R +/* 047B0C 7F012FDC 02E03025 */ move $a2, $s7 +/* 047B10 7F012FE0 2841FFFF */ slti $at, $v0, -1 +/* 047B14 7F012FE4 10200009 */ beqz $at, .L7F01300C +/* 047B18 7F012FE8 00102600 */ sll $a0, $s0, 0x18 +/* 047B1C 7F012FEC 8E4B0000 */ lw $t3, ($s2) +/* 047B20 7F012FF0 11600006 */ beqz $t3, .L7F01300C +.L7F012FF4: +/* 047B24 7F012FF4 02D41021 */ addu $v0, $s6, $s4 +/* 047B28 7F012FF8 8C430000 */ lw $v1, ($v0) +/* 047B2C 7F012FFC 18600023 */ blez $v1, .L7F01308C +/* 047B30 7F013000 246CFFFF */ addiu $t4, $v1, -1 +/* 047B34 7F013004 10000021 */ b .L7F01308C +/* 047B38 7F013008 AC4C0000 */ sw $t4, ($v0) +.L7F01300C: +/* 047B3C 7F01300C 00046E03 */ sra $t5, $a0, 0x18 +/* 047B40 7F013010 01A02025 */ move $a0, $t5 +/* 047B44 7F013014 0C0030EB */ jal get_controller_buttons_pressed +/* 047B48 7F013018 24050101 */ li $a1, 257 +/* 047B4C 7F01301C 1440000A */ bnez $v0, .L7F013048 +/* 047B50 7F013020 00102600 */ sll $a0, $s0, 0x18 +/* 047B54 7F013024 00047603 */ sra $t6, $a0, 0x18 +/* 047B58 7F013028 01C02025 */ move $a0, $t6 +/* 047B5C 7F01302C 2405FFFE */ li $a1, -2 +/* 047B60 7F013030 0C00312D */ jal get_controller_3dstick_L_R +/* 047B64 7F013034 02E03025 */ move $a2, $s7 +/* 047B68 7F013038 1840000A */ blez $v0, .L7F013064 +/* 047B6C 7F01303C 00102600 */ sll $a0, $s0, 0x18 +/* 047B70 7F013040 8E4F0000 */ lw $t7, ($s2) +/* 047B74 7F013044 11E00007 */ beqz $t7, .L7F013064 +.L7F013048: +/* 047B78 7F013048 02D41021 */ addu $v0, $s6, $s4 +/* 047B7C 7F01304C 8C430000 */ lw $v1, ($v0) +/* 047B80 7F013050 2861000A */ slti $at, $v1, 0xa +/* 047B84 7F013054 1020000D */ beqz $at, .L7F01308C +/* 047B88 7F013058 24780001 */ addiu $t8, $v1, 1 +/* 047B8C 7F01305C 1000000B */ b .L7F01308C +/* 047B90 7F013060 AC580000 */ sw $t8, ($v0) +.L7F013064: +/* 047B94 7F013064 0004CE03 */ sra $t9, $a0, 0x18 +/* 047B98 7F013068 03202025 */ move $a0, $t9 +/* 047B9C 7F01306C 0C0030EB */ jal get_controller_buttons_pressed +/* 047BA0 7F013070 3405B000 */ li $a1, 45056 +/* 047BA4 7F013074 10400005 */ beqz $v0, .L7F01308C +/* 047BA8 7F013078 240500C7 */ li $a1, 199 +/* 047BAC 7F01307C AE370000 */ sw $s7, ($s1) +/* 047BB0 7F013080 8EA40000 */ lw $a0, ($s5) +/* 047BB4 7F013084 0C002382 */ jal play_sfx_a1 +/* 047BB8 7F013088 00003025 */ move $a2, $zero +.L7F01308C: +/* 047BBC 7F01308C 00102600 */ sll $a0, $s0, 0x18 +/* 047BC0 7F013090 00044603 */ sra $t0, $a0, 0x18 +/* 047BC4 7F013094 01002025 */ move $a0, $t0 +/* 047BC8 7F013098 2405FFFE */ li $a1, -2 +/* 047BCC 7F01309C 0C00312D */ jal get_controller_3dstick_L_R +/* 047BD0 7F0130A0 02E03025 */ move $a2, $s7 +/* 047BD4 7F0130A4 2401FFFF */ li $at, -1 +/* 047BD8 7F0130A8 10410008 */ beq $v0, $at, .L7F0130CC +/* 047BDC 7F0130AC 00102600 */ sll $a0, $s0, 0x18 +/* 047BE0 7F0130B0 00044E03 */ sra $t1, $a0, 0x18 +/* 047BE4 7F0130B4 01202025 */ move $a0, $t1 +/* 047BE8 7F0130B8 2405FFFE */ li $a1, -2 +/* 047BEC 7F0130BC 0C00312D */ jal get_controller_3dstick_L_R +/* 047BF0 7F0130C0 02E03025 */ move $a2, $s7 +/* 047BF4 7F0130C4 54400005 */ bnezl $v0, .L7F0130DC +/* 047BF8 7F0130C8 AE400000 */ sw $zero, ($s2) +.L7F0130CC: +/* 047BFC 7F0130CC AE570000 */ sw $s7, ($s2) +/* 047C00 7F0130D0 10000003 */ b .L7F0130E0 +/* 047C04 7F0130D4 8E220000 */ lw $v0, ($s1) +/* 047C08 7F0130D8 AE400000 */ sw $zero, ($s2) +.L7F0130DC: +/* 047C0C 7F0130DC 8E220000 */ lw $v0, ($s1) +.L7F0130E0: +/* 047C10 7F0130E0 10400002 */ beqz $v0, .L7F0130EC +/* 047C14 7F0130E4 8FAA0044 */ lw $t2, 0x44($sp) +/* 047C18 7F0130E8 27DE0001 */ addiu $fp, $fp, 1 +.L7F0130EC: +/* 047C1C 7F0130EC 26730001 */ addiu $s3, $s3, 1 +/* 047C20 7F0130F0 26940004 */ addiu $s4, $s4, 4 +/* 047C24 7F0130F4 166AFF99 */ bne $s3, $t2, .L7F012F5C +/* 047C28 7F0130F8 26310004 */ addiu $s1, $s1, 4 +.L7F0130FC: +/* 047C2C 7F0130FC 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 047C30 7F013100 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 047C34 7F013104 0FC02DC9 */ jal disable_all_switches +/* 047C38 7F013108 8E040000 */ lw $a0, ($s0) +/* 047C3C 7F01310C 8E040000 */ lw $a0, ($s0) +/* 047C40 7F013110 00002825 */ move $a1, $zero +/* 047C44 7F013114 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 047C48 7F013118 24060001 */ li $a2, 1 +/* 047C4C 7F01311C 8E040000 */ lw $a0, ($s0) +/* 047C50 7F013120 2405002A */ li $a1, 42 +/* 047C54 7F013124 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 047C58 7F013128 24060001 */ li $a2, 1 +/* 047C5C 7F01312C 0FC026E1 */ jal menu_control_stick_tracking +/* 047C60 7F013130 00000000 */ nop +/* 047C64 7F013134 8FAB0044 */ lw $t3, 0x44($sp) +/* 047C68 7F013138 2404000E */ li $a0, 14 +/* 047C6C 7F01313C 57CB0004 */ bnel $fp, $t3, .L7F013150 +/* 047C70 7F013140 8FBF003C */ lw $ra, 0x3c($sp) +/* 047C74 7F013144 0FC06975 */ jal set_menu_to_mode +/* 047C78 7F013148 00002825 */ move $a1, $zero +/* 047C7C 7F01314C 8FBF003C */ lw $ra, 0x3c($sp) +.L7F013150: +/* 047C80 7F013150 8FB00018 */ lw $s0, 0x18($sp) +/* 047C84 7F013154 8FB1001C */ lw $s1, 0x1c($sp) +/* 047C88 7F013158 8FB20020 */ lw $s2, 0x20($sp) +/* 047C8C 7F01315C 8FB30024 */ lw $s3, 0x24($sp) +/* 047C90 7F013160 8FB40028 */ lw $s4, 0x28($sp) +/* 047C94 7F013164 8FB5002C */ lw $s5, 0x2c($sp) +/* 047C98 7F013168 8FB60030 */ lw $s6, 0x30($sp) +/* 047C9C 7F01316C 8FB70034 */ lw $s7, 0x34($sp) +/* 047CA0 7F013170 8FBE0038 */ lw $fp, 0x38($sp) +/* 047CA4 7F013174 03E00008 */ jr $ra +/* 047CA8 7F013178 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu10_mphandicap(s32 arg0) +{ + s32 spCC; + s32 spA4; + s32 spA0; + s32 sp9C; + s32 sp98; + s32 sp90; + s32 sp8C; + s32 sp88; + s32 sp84; + void *sp74; + void *sp70; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_ret_3; + s32 temp_ret_4; + s32 temp_s1; + s32 temp_s1_2; + s32 temp_s6; + s32 temp_v0; + s32 phi_s6; + s32 phi_s3; + s32 phi_s2; + void *phi_v0; + s32 phi_s5; + s32 phi_s1; + s32 phi_s1_2; + s32 phi_v1; + s32 phi_v1_2; + + spCC = get_selected_num_players(); + temp_ret = microcode_constructor_related_to_menus(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(arg0, 0, 0, 0)))), 0x26, 0xa9, 0x184, 0xab, 0x90); + temp_s1 = temp_ret; + phi_v0 = temp_ret; + phi_s1_2 = temp_s1; + if (spCC >= 3) + { + temp_ret_2 = microcode_constructor_related_to_menus(temp_s1, 0xd4, 0x1e, 0xd6, 0x136, 0x80); + phi_v0 = temp_ret_2; + phi_s1_2 = temp_ret_2; + } + if (spCC > 0) + { + sp74 = &has_selected_char_player1; + sp70 = &handicap_player1; + phi_s6 = 0; +loop_4: + if (spCC == 2) + { + if (phi_s6 > 0) + { + phi_s3 = 0x26; + phi_s2 = 0xaa; + phi_s5 = 0x15e; + } + else + { + phi_s3 = 0x26; + phi_s2 = 0 + 0x1e; + phi_s5 = 0x15e; + } + } + else + { + if (phi_s6 >= 2) + { + phi_v1_2 = 0x8c; + } + else + { + phi_v1_2 = 0; + } + if ((phi_s6 & 1) != 0) + { + phi_v1 = 0xaf; + } + else + { + phi_v1 = 0; + } + phi_s3 = phi_v1 + 0x26; + phi_s2 = phi_v1_2 + 0x1e; + phi_s5 = 0xaf; + } + temp_s1_2 = phi_v0 + 8; + phi_v0->unk0 = (s32) (((((s32) ((f32) (phi_s3 + 6) * 4.0f) & 0xfff) << 0xc) | 0xed000000) | ((s32) ((f32) (phi_s2 + 5) * 4.0f) & 0xfff)); + phi_v0->unk4 = (s32) ((((s32) ((f32) ((phi_s3 + phi_s5) + -6) * 4.0f) & 0xfff) << 0xc) | ((s32) ((f32) (phi_s2 + 0x87) * 4.0f) & 0xfff)); + phi_s1 = temp_s1_2; + if (*sp74 == 0) + { + temp_ret_3 = get_textptr_for_textID(TEXT(LTITLE, 0x56)); + sub_GAME_7F0AE98C(&spA4, &spA0, temp_ret_3, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); + sp9C = (s32) ((((s32) phi_s5 >> 1) + phi_s3) - (spA0 >> 1)); + sp98 = (s32) ((phi_s2 - (spA4 >> 1)) + 0x37); + get_video2_settings_txtClipW(); + phi_s1 = write_text_at_abs_coord(microcode_constructor(temp_s1_2), &sp9C, &sp98, temp_ret_3, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, get_video2_settings_txtClipH(), 0, 0); + } + temp_ret_4 = get_textptr_for_textID((0x80030000 + (*sp70 * 8))->unk-4B68); + sub_GAME_7F0AE98C(&sp90, &sp8C, temp_ret_4, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); + sp88 = (s32) ((((s32) phi_s5 >> 1) + phi_s3) - (sp8C >> 1)); + sp84 = (s32) (((phi_s2 + 0x46) - (sp90 >> 1)) + 0xf); + get_video2_settings_txtClipW(); + temp_s6 = phi_s6 + 1; + sp70 = (void *) (sp70 + 4); + temp_v0 = write_text_at_abs_coord(microcode_constructor(phi_s1), &sp88, &sp84, temp_ret_4, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, get_video2_settings_txtClipH(), 0, 0); + sp74 = (void *) (sp74 + 4); + phi_s6 = temp_s6; + phi_v0 = temp_v0; + phi_s1_2 = temp_v0; + if (temp_s6 != spCC) + { + goto loop_4; + } + } + combiner_bayer_lod_perspective(phi_s1_2); +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu10_mphandicap +/* 047CAC 7F01317C 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 047CB0 7F013180 AFBF0064 */ sw $ra, 0x64($sp) +/* 047CB4 7F013184 AFB10044 */ sw $s1, 0x44($sp) +/* 047CB8 7F013188 00808825 */ move $s1, $a0 +/* 047CBC 7F01318C AFBE0060 */ sw $fp, 0x60($sp) +/* 047CC0 7F013190 AFB7005C */ sw $s7, 0x5c($sp) +/* 047CC4 7F013194 AFB60058 */ sw $s6, 0x58($sp) +/* 047CC8 7F013198 AFB50054 */ sw $s5, 0x54($sp) +/* 047CCC 7F01319C AFB40050 */ sw $s4, 0x50($sp) +/* 047CD0 7F0131A0 AFB3004C */ sw $s3, 0x4c($sp) +/* 047CD4 7F0131A4 AFB20048 */ sw $s2, 0x48($sp) +/* 047CD8 7F0131A8 AFB00040 */ sw $s0, 0x40($sp) +/* 047CDC 7F0131AC 0FC040A4 */ jal get_selected_num_players +/* 047CE0 7F0131B0 F7B40038 */ sdc1 $f20, 0x38($sp) +/* 047CE4 7F0131B4 AFA200CC */ sw $v0, 0xcc($sp) +/* 047CE8 7F0131B8 02202025 */ move $a0, $s1 +/* 047CEC 7F0131BC 00002825 */ move $a1, $zero +/* 047CF0 7F0131C0 00003025 */ move $a2, $zero +/* 047CF4 7F0131C4 0C0011B4 */ jal set_setfillcolor +/* 047CF8 7F0131C8 00003825 */ move $a3, $zero +/* 047CFC 7F0131CC 0C000FBE */ jal insert_generic_fillrect +/* 047D00 7F0131D0 00402025 */ move $a0, $v0 +/* 047D04 7F0131D4 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 047D08 7F0131D8 00402025 */ move $a0, $v0 +/* 047D0C 7F0131DC 0FC2B366 */ jal microcode_constructor +/* 047D10 7F0131E0 00402025 */ move $a0, $v0 +/* 047D14 7F0131E4 240E00AB */ li $t6, 171 +/* 047D18 7F0131E8 240F0090 */ li $t7, 144 +/* 047D1C 7F0131EC AFAF0014 */ sw $t7, 0x14($sp) +/* 047D20 7F0131F0 AFAE0010 */ sw $t6, 0x10($sp) +/* 047D24 7F0131F4 00402025 */ move $a0, $v0 +/* 047D28 7F0131F8 24050026 */ li $a1, 38 +/* 047D2C 7F0131FC 240600A9 */ li $a2, 169 +/* 047D30 7F013200 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 047D34 7F013204 24070184 */ li $a3, 388 +/* 047D38 7F013208 8FA800CC */ lw $t0, 0xcc($sp) +/* 047D3C 7F01320C 00408825 */ move $s1, $v0 +/* 047D40 7F013210 02202025 */ move $a0, $s1 +/* 047D44 7F013214 29010003 */ slti $at, $t0, 3 +/* 047D48 7F013218 1420000A */ bnez $at, .L7F013244 +/* 047D4C 7F01321C 240500D4 */ li $a1, 212 +/* 047D50 7F013220 24180136 */ li $t8, 310 +/* 047D54 7F013224 24190080 */ li $t9, 128 +/* 047D58 7F013228 AFB90014 */ sw $t9, 0x14($sp) +/* 047D5C 7F01322C AFB80010 */ sw $t8, 0x10($sp) +/* 047D60 7F013230 2406001E */ li $a2, 30 +/* 047D64 7F013234 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 047D68 7F013238 240700D6 */ li $a3, 214 +/* 047D6C 7F01323C 00408825 */ move $s1, $v0 +/* 047D70 7F013240 8FA800CC */ lw $t0, 0xcc($sp) +.L7F013244: +/* 047D74 7F013244 190000BC */ blez $t0, .L7F013538 +/* 047D78 7F013248 0000B025 */ move $s6, $zero +/* 047D7C 7F01324C 3C098007 */ lui $t1, %hi(has_selected_char_player1) +/* 047D80 7F013250 3C0A8007 */ lui $t2, %hi(handicap_player1) +/* 047D84 7F013254 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 047D88 7F013258 254A97A8 */ addiu $t2, %lo(handicap_player1) # addiu $t2, $t2, -0x6858 +/* 047D8C 7F01325C 25299740 */ addiu $t1, %lo(has_selected_char_player1) # addiu $t1, $t1, -0x68c0 +/* 047D90 7F013260 3C1E8004 */ lui $fp, %hi(ptrFirstFontTableLarge) +/* 047D94 7F013264 3C178004 */ lui $s7, %hi(ptrSecondFontTableLarge) +/* 047D98 7F013268 4481A000 */ mtc1 $at, $f20 +/* 047D9C 7F01326C 26F70EB8 */ addiu $s7, %lo(ptrSecondFontTableLarge) # addiu $s7, $s7, 0xeb8 +/* 047DA0 7F013270 27DE0EB4 */ addiu $fp, %lo(ptrFirstFontTableLarge) # addiu $fp, $fp, 0xeb4 +/* 047DA4 7F013274 AFA90074 */ sw $t1, 0x74($sp) +/* 047DA8 7F013278 AFAA0070 */ sw $t2, 0x70($sp) +.L7F01327C: +/* 047DAC 7F01327C 8FA800CC */ lw $t0, 0xcc($sp) +/* 047DB0 7F013280 24010002 */ li $at, 2 +/* 047DB4 7F013284 24130026 */ li $s3, 38 +/* 047DB8 7F013288 15010008 */ bne $t0, $at, .L7F0132AC +/* 047DBC 7F01328C 32CB0001 */ andi $t3, $s6, 1 +/* 047DC0 7F013290 1AC00003 */ blez $s6, .L7F0132A0 +/* 047DC4 7F013294 2415015E */ li $s5, 350 +/* 047DC8 7F013298 10000010 */ b .L7F0132DC +/* 047DCC 7F01329C 241200AA */ li $s2, 170 +.L7F0132A0: +/* 047DD0 7F0132A0 00001825 */ move $v1, $zero +/* 047DD4 7F0132A4 1000000D */ b .L7F0132DC +/* 047DD8 7F0132A8 2472001E */ addiu $s2, $v1, 0x1e +.L7F0132AC: +/* 047DDC 7F0132AC 2AC10002 */ slti $at, $s6, 2 +/* 047DE0 7F0132B0 14200003 */ bnez $at, .L7F0132C0 +/* 047DE4 7F0132B4 241500AF */ li $s5, 175 +/* 047DE8 7F0132B8 10000002 */ b .L7F0132C4 +/* 047DEC 7F0132BC 2403008C */ li $v1, 140 +.L7F0132C0: +/* 047DF0 7F0132C0 00001825 */ move $v1, $zero +.L7F0132C4: +/* 047DF4 7F0132C4 11600003 */ beqz $t3, .L7F0132D4 +/* 047DF8 7F0132C8 2472001E */ addiu $s2, $v1, 0x1e +/* 047DFC 7F0132CC 10000002 */ b .L7F0132D8 +/* 047E00 7F0132D0 240300AF */ li $v1, 175 +.L7F0132D4: +/* 047E04 7F0132D4 00001825 */ move $v1, $zero +.L7F0132D8: +/* 047E08 7F0132D8 24730026 */ addiu $s3, $v1, 0x26 +.L7F0132DC: +/* 047E0C 7F0132DC 266C0006 */ addiu $t4, $s3, 6 +/* 047E10 7F0132E0 448C2000 */ mtc1 $t4, $f4 +/* 047E14 7F0132E4 26490005 */ addiu $t1, $s2, 5 +/* 047E18 7F0132E8 44898000 */ mtc1 $t1, $f16 +/* 047E1C 7F0132EC 468021A0 */ cvt.s.w $f6, $f4 +/* 047E20 7F0132F0 3C01ED00 */ lui $at, 0xed00 +/* 047E24 7F0132F4 24510008 */ addiu $s1, $v0, 8 +/* 047E28 7F0132F8 468084A0 */ cvt.s.w $f18, $f16 +/* 047E2C 7F0132FC 46143202 */ mul.s $f8, $f6, $f20 +/* 047E30 7F013300 4600428D */ trunc.w.s $f10, $f8 +/* 047E34 7F013304 46149102 */ mul.s $f4, $f18, $f20 +/* 047E38 7F013308 440E5000 */ mfc1 $t6, $f10 +/* 047E3C 7F01330C 00000000 */ nop +/* 047E40 7F013310 31CF0FFF */ andi $t7, $t6, 0xfff +/* 047E44 7F013314 4600218D */ trunc.w.s $f6, $f4 +/* 047E48 7F013318 000FC300 */ sll $t8, $t7, 0xc +/* 047E4C 7F01331C 02757021 */ addu $t6, $s3, $s5 +/* 047E50 7F013320 25CFFFFA */ addiu $t7, $t6, -6 +/* 047E54 7F013324 440B3000 */ mfc1 $t3, $f6 +/* 047E58 7F013328 448F4000 */ mtc1 $t7, $f8 +/* 047E5C 7F01332C 0301C825 */ or $t9, $t8, $at +/* 047E60 7F013330 316C0FFF */ andi $t4, $t3, 0xfff +/* 047E64 7F013334 032C6825 */ or $t5, $t9, $t4 +/* 047E68 7F013338 26590087 */ addiu $t9, $s2, 0x87 +/* 047E6C 7F01333C 468042A0 */ cvt.s.w $f10, $f8 +/* 047E70 7F013340 44992000 */ mtc1 $t9, $f4 +/* 047E74 7F013344 AC4D0000 */ sw $t5, ($v0) +/* 047E78 7F013348 468021A0 */ cvt.s.w $f6, $f4 +/* 047E7C 7F01334C 46145402 */ mul.s $f16, $f10, $f20 +/* 047E80 7F013350 00000000 */ nop +/* 047E84 7F013354 46143202 */ mul.s $f8, $f6, $f20 +/* 047E88 7F013358 4600848D */ trunc.w.s $f18, $f16 +/* 047E8C 7F01335C 4600428D */ trunc.w.s $f10, $f8 +/* 047E90 7F013360 44099000 */ mfc1 $t1, $f18 +/* 047E94 7F013364 440D5000 */ mfc1 $t5, $f10 +/* 047E98 7F013368 312A0FFF */ andi $t2, $t1, 0xfff +/* 047E9C 7F01336C 000A5B00 */ sll $t3, $t2, 0xc +/* 047EA0 7F013370 31AE0FFF */ andi $t6, $t5, 0xfff +/* 047EA4 7F013374 016E7825 */ or $t7, $t3, $t6 +/* 047EA8 7F013378 AC4F0004 */ sw $t7, 4($v0) +/* 047EAC 7F01337C 8FB80074 */ lw $t8, 0x74($sp) +/* 047EB0 7F013380 8F090000 */ lw $t1, ($t8) +/* 047EB4 7F013384 1520002F */ bnez $t1, .L7F013444 +/* 047EB8 7F013388 00000000 */ nop +/* 047EBC 7F01338C 0FC30776 */ jal get_textptr_for_textID +/* 047EC0 7F013390 34049C56 */ li $a0, 40022 +/* 047EC4 7F013394 8FCA0000 */ lw $t2, ($fp) +/* 047EC8 7F013398 0040A025 */ move $s4, $v0 +/* 047ECC 7F01339C 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 047ED0 7F0133A0 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 047ED4 7F0133A4 00403025 */ move $a2, $v0 +/* 047ED8 7F0133A8 8EE70000 */ lw $a3, ($s7) +/* 047EDC 7F0133AC AFA00014 */ sw $zero, 0x14($sp) +/* 047EE0 7F0133B0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 047EE4 7F0133B4 AFAA0010 */ sw $t2, 0x10($sp) +/* 047EE8 7F0133B8 8FAF00A4 */ lw $t7, 0xa4($sp) +/* 047EEC 7F0133BC 8FAD00A0 */ lw $t5, 0xa0($sp) +/* 047EF0 7F0133C0 0015C843 */ sra $t9, $s5, 1 +/* 047EF4 7F0133C4 000FC043 */ sra $t8, $t7, 1 +/* 047EF8 7F0133C8 03336021 */ addu $t4, $t9, $s3 +/* 047EFC 7F0133CC 02584823 */ subu $t1, $s2, $t8 +/* 047F00 7F0133D0 000D5843 */ sra $t3, $t5, 1 +/* 047F04 7F0133D4 018B7023 */ subu $t6, $t4, $t3 +/* 047F08 7F0133D8 252A0037 */ addiu $t2, $t1, 0x37 +/* 047F0C 7F0133DC AFAE009C */ sw $t6, 0x9c($sp) +/* 047F10 7F0133E0 AFAA0098 */ sw $t2, 0x98($sp) +/* 047F14 7F0133E4 0FC2B366 */ jal microcode_constructor +/* 047F18 7F0133E8 02202025 */ move $a0, $s1 +/* 047F1C 7F0133EC 0C001107 */ jal get_video2_settings_txtClipW +/* 047F20 7F0133F0 00408825 */ move $s1, $v0 +/* 047F24 7F0133F4 00028400 */ sll $s0, $v0, 0x10 +/* 047F28 7F0133F8 0010CC03 */ sra $t9, $s0, 0x10 +/* 047F2C 7F0133FC 0C00110B */ jal get_video2_settings_txtClipH +/* 047F30 7F013400 03208025 */ move $s0, $t9 +/* 047F34 7F013404 8EED0000 */ lw $t5, ($s7) +/* 047F38 7F013408 8FCC0000 */ lw $t4, ($fp) +/* 047F3C 7F01340C 240B00FF */ li $t3, 255 +/* 047F40 7F013410 AFAB0018 */ sw $t3, 0x18($sp) +/* 047F44 7F013414 02202025 */ move $a0, $s1 +/* 047F48 7F013418 27A5009C */ addiu $a1, $sp, 0x9c +/* 047F4C 7F01341C 27A60098 */ addiu $a2, $sp, 0x98 +/* 047F50 7F013420 02803825 */ move $a3, $s4 +/* 047F54 7F013424 AFB0001C */ sw $s0, 0x1c($sp) +/* 047F58 7F013428 AFA20020 */ sw $v0, 0x20($sp) +/* 047F5C 7F01342C AFA00024 */ sw $zero, 0x24($sp) +/* 047F60 7F013430 AFA00028 */ sw $zero, 0x28($sp) +/* 047F64 7F013434 AFAD0010 */ sw $t5, 0x10($sp) +/* 047F68 7F013438 0FC025D8 */ jal write_text_at_abs_coord +/* 047F6C 7F01343C AFAC0014 */ sw $t4, 0x14($sp) +/* 047F70 7F013440 00408825 */ move $s1, $v0 +.L7F013444: +/* 047F74 7F013444 8FAE0070 */ lw $t6, 0x70($sp) +/* 047F78 7F013448 3C048003 */ lui $a0, %hi(MP_handicap_table) +/* 047F7C 7F01344C 00154843 */ sra $t1, $s5, 1 +/* 047F80 7F013450 8DCF0000 */ lw $t7, ($t6) +/* 047F84 7F013454 01338021 */ addu $s0, $t1, $s3 +/* 047F88 7F013458 26540046 */ addiu $s4, $s2, 0x46 +/* 047F8C 7F01345C 000FC0C0 */ sll $t8, $t7, 3 +/* 047F90 7F013460 00982021 */ addu $a0, $a0, $t8 +/* 047F94 7F013464 0FC30776 */ jal get_textptr_for_textID +/* 047F98 7F013468 9484B498 */ lhu $a0, %lo(MP_handicap_table)($a0) +/* 047F9C 7F01346C 8FCA0000 */ lw $t2, ($fp) +/* 047FA0 7F013470 00409025 */ move $s2, $v0 +/* 047FA4 7F013474 27A40090 */ addiu $a0, $sp, 0x90 +/* 047FA8 7F013478 27A5008C */ addiu $a1, $sp, 0x8c +/* 047FAC 7F01347C 00403025 */ move $a2, $v0 +/* 047FB0 7F013480 8EE70000 */ lw $a3, ($s7) +/* 047FB4 7F013484 AFA00014 */ sw $zero, 0x14($sp) +/* 047FB8 7F013488 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 047FBC 7F01348C AFAA0010 */ sw $t2, 0x10($sp) +/* 047FC0 7F013490 8FAB0090 */ lw $t3, 0x90($sp) +/* 047FC4 7F013494 8FB9008C */ lw $t9, 0x8c($sp) +/* 047FC8 7F013498 02202025 */ move $a0, $s1 +/* 047FCC 7F01349C 000B7043 */ sra $t6, $t3, 1 +/* 047FD0 7F0134A0 028E7823 */ subu $t7, $s4, $t6 +/* 047FD4 7F0134A4 00196843 */ sra $t5, $t9, 1 +/* 047FD8 7F0134A8 020D6023 */ subu $t4, $s0, $t5 +/* 047FDC 7F0134AC 25F8000F */ addiu $t8, $t7, 0xf +/* 047FE0 7F0134B0 AFAC0088 */ sw $t4, 0x88($sp) +/* 047FE4 7F0134B4 0FC2B366 */ jal microcode_constructor +/* 047FE8 7F0134B8 AFB80084 */ sw $t8, 0x84($sp) +/* 047FEC 7F0134BC 0C001107 */ jal get_video2_settings_txtClipW +/* 047FF0 7F0134C0 00408825 */ move $s1, $v0 +/* 047FF4 7F0134C4 00028400 */ sll $s0, $v0, 0x10 +/* 047FF8 7F0134C8 00104C03 */ sra $t1, $s0, 0x10 +/* 047FFC 7F0134CC 0C00110B */ jal get_video2_settings_txtClipH +/* 048000 7F0134D0 01208025 */ move $s0, $t1 +/* 048004 7F0134D4 8EEA0000 */ lw $t2, ($s7) +/* 048008 7F0134D8 8FD90000 */ lw $t9, ($fp) +/* 04800C 7F0134DC 240D00FF */ li $t5, 255 +/* 048010 7F0134E0 AFAD0018 */ sw $t5, 0x18($sp) +/* 048014 7F0134E4 02202025 */ move $a0, $s1 +/* 048018 7F0134E8 27A50088 */ addiu $a1, $sp, 0x88 +/* 04801C 7F0134EC 27A60084 */ addiu $a2, $sp, 0x84 +/* 048020 7F0134F0 02403825 */ move $a3, $s2 +/* 048024 7F0134F4 AFB0001C */ sw $s0, 0x1c($sp) +/* 048028 7F0134F8 AFA20020 */ sw $v0, 0x20($sp) +/* 04802C 7F0134FC AFA00024 */ sw $zero, 0x24($sp) +/* 048030 7F013500 AFA00028 */ sw $zero, 0x28($sp) +/* 048034 7F013504 AFAA0010 */ sw $t2, 0x10($sp) +/* 048038 7F013508 0FC025D8 */ jal write_text_at_abs_coord +/* 04803C 7F01350C AFB90014 */ sw $t9, 0x14($sp) +/* 048040 7F013510 8FAC0074 */ lw $t4, 0x74($sp) +/* 048044 7F013514 8FAE0070 */ lw $t6, 0x70($sp) +/* 048048 7F013518 8FB800CC */ lw $t8, 0xcc($sp) +/* 04804C 7F01351C 26D60001 */ addiu $s6, $s6, 1 +/* 048050 7F013520 258B0004 */ addiu $t3, $t4, 4 +/* 048054 7F013524 25CF0004 */ addiu $t7, $t6, 4 +/* 048058 7F013528 AFAF0070 */ sw $t7, 0x70($sp) +/* 04805C 7F01352C AFAB0074 */ sw $t3, 0x74($sp) +/* 048060 7F013530 16D8FF52 */ bne $s6, $t8, .L7F01327C +/* 048064 7F013534 00408825 */ move $s1, $v0 +.L7F013538: +/* 048068 7F013538 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 04806C 7F01353C 02202025 */ move $a0, $s1 +/* 048070 7F013540 8FBF0064 */ lw $ra, 0x64($sp) +/* 048074 7F013544 D7B40038 */ ldc1 $f20, 0x38($sp) +/* 048078 7F013548 8FB00040 */ lw $s0, 0x40($sp) +/* 04807C 7F01354C 8FB10044 */ lw $s1, 0x44($sp) +/* 048080 7F013550 8FB20048 */ lw $s2, 0x48($sp) +/* 048084 7F013554 8FB3004C */ lw $s3, 0x4c($sp) +/* 048088 7F013558 8FB40050 */ lw $s4, 0x50($sp) +/* 04808C 7F01355C 8FB50054 */ lw $s5, 0x54($sp) +/* 048090 7F013560 8FB60058 */ lw $s6, 0x58($sp) +/* 048094 7F013564 8FB7005C */ lw $s7, 0x5c($sp) +/* 048098 7F013568 8FBE0060 */ lw $fp, 0x60($sp) +/* 04809C 7F01356C 03E00008 */ jr $ra +/* 0480A0 7F013570 27BD00D0 */ addiu $sp, $sp, 0xd0 +) +#endif + + + +void init_menu11_mpcontrol(void) +{ + tab_1_selected = FALSE; + tab_2_selected = FALSE; + tab_3_selected = FALSE; + tab_3_highlight = FALSE; + tab_2_highlight = FALSE; + tab_1_highlight = FALSE; + has_selected_char_player1 = FALSE; + dword_CODE_bss_80069760 = 0; + has_selected_char_player2 = FALSE; + dword_CODE_bss_80069764 = 0; + has_selected_char_player3 = FALSE; + dword_CODE_bss_80069768 = 0; + has_selected_char_player4 = FALSE; + dword_CODE_bss_8006976C = 0; + load_walletbond(); +} + +void update_menu11_mpcontrols(void) { + return; +} + + + + + + + +#ifdef NONMATCHING +void interface_menu11_mpcontrols(void) +{ + s32 sp44; + s32 temp_s1; + s32 temp_s6; + s32 temp_t8; + void *temp_s4; + void *temp_v1; + void *temp_v1_2; + void *phi_s2; + s32 phi_s1; + s32 phi_s5; + + temp_s6 = get_selected_num_players(); + sp44 = 0; + setvideo_far(0x42700000); + video_related_21(D_80051A98); + set_page_height(0x42c80000, D_80051A9C); + set_video2_settings_offset_24(0); + if (temp_s6 > 0) + { + phi_s2 = &has_selected_char_player1; + phi_s1 = 0; + phi_s5 = 0; +loop_2: + if (*phi_s2 != 0) + { + if (get_controller_buttons_pressed((s32) (phi_s1 << 0x18) >> 0x18, 0x4000) != 0) + { + *phi_s2 = 0; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + temp_t8 = (s32) (phi_s1 << 0x18) >> 0x18; + if (*phi_s2 == 0) + { + temp_s4 = phi_s5 + &handicap_player1; + if ((get_controller_buttons_pressed((s32) (temp_t8 << 0x18) >> 0x18, 0x202) == 0) && (get_controller_3dstick_L_R((s32) (temp_t8 << 0x18) >> 0x18, -2, 1) < -1)) + { + if ((*temp_s4 != 0) && (*temp_v1 > 0)) + { +block_10: + if ((((temp_s6 != 2) || (phi_s1 != 1)) || (controlstyle_player.unk0 < 4)) || (*temp_v1 >= 5)) + { + *temp_v1 = (s32) (*temp_v1 + -1); + } + else + { + + } + if (temp_s6 == 2) + { + if (phi_s1 == 0) + { + if (controlstyle_player.unk0 < 4) + { + if (controlstyle_player.unk4 >= 4) + { + controlstyle_player.unk4 = 0; + } + } + } + } + } + else + { + if ((get_controller_buttons_pressed((s32) (temp_t8 << 0x18) >> 0x18, 0x101) == 0) && (get_controller_3dstick_L_R((s32) (temp_t8 << 0x18) >> 0x18, -2, 1) > 0)) + { + if ((*temp_s4 != 0) && (temp_s6 == 2)) + { + if ((phi_s1 == 0) || (*temp_v1_2 >= 4)) + { +block_26: + if (*temp_v1_2 < 7) + { + *temp_v1_2 = (s32) (*temp_v1_2 + 1); + if (phi_s1 == 0) + { + if (controlstyle_player.unk0 == 4) + { + if (controlstyle_player.unk4 < 4) + { + controlstyle_player.unk4 = 4; + } + } + } + } + } + else + { +block_31: + if (*temp_v1_2 < 3) + { + *temp_v1_2 = (s32) (*temp_v1_2 + 1); + } + } + } + else + { + if (get_controller_buttons_pressed((s32) (temp_t8 << 0x18) >> 0x18, 0xb000) != 0) + { + *phi_s2 = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + else + { + temp_v1_2 = &controlstyle_player + phi_s5; + if ((temp_s6 != 2) || (phi_s1 != 0)) + { + if (*temp_v1_2 >= 4) + { + goto block_26; + } + else + { + goto block_31; + } + } + else + { + goto block_26; + } + } + } + } + else + { + temp_v1 = &controlstyle_player + phi_s5; + if (*temp_v1 > 0) + { + goto block_10; + } + } + if ((get_controller_3dstick_L_R((s32) (temp_t8 << 0x18) >> 0x18, -2, 1) == -1) || (get_controller_3dstick_L_R((s32) (temp_t8 << 0x18) >> 0x18, -2, 1) == 0)) + { + *temp_s4 = 1; + } + else + { + *temp_s4 = 0; + } + } + temp_s1 = phi_s1 + 1; + if (*phi_s2 != 0) + { + sp44 = (s32) (sp44 + 1); + } + phi_s2 = phi_s2 + 4; + phi_s1 = temp_s1; + phi_s5 = phi_s5 + 4; + if (temp_s1 != temp_s6) + { + goto loop_2; + } + } + disable_all_switches(ptr_folder_object_instance); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0x2a, 1); + menu_control_stick_tracking(); + if (sp44 == temp_s6) + { + set_menu_to_mode(MENU_MP_OPTIONS, 0); + } +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80051A98 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051A9C +.word 0x461C4000 /*10000.0;*/ + +.text +glabel interface_menu11_mpcontrols +/* 048138 7F013608 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 04813C 7F01360C AFBF003C */ sw $ra, 0x3c($sp) +/* 048140 7F013610 AFBE0038 */ sw $fp, 0x38($sp) +/* 048144 7F013614 AFB70034 */ sw $s7, 0x34($sp) +/* 048148 7F013618 AFB60030 */ sw $s6, 0x30($sp) +/* 04814C 7F01361C AFB5002C */ sw $s5, 0x2c($sp) +/* 048150 7F013620 AFB40028 */ sw $s4, 0x28($sp) +/* 048154 7F013624 AFB30024 */ sw $s3, 0x24($sp) +/* 048158 7F013628 AFB20020 */ sw $s2, 0x20($sp) +/* 04815C 7F01362C AFB1001C */ sw $s1, 0x1c($sp) +/* 048160 7F013630 0FC040A4 */ jal get_selected_num_players +/* 048164 7F013634 AFB00018 */ sw $s0, 0x18($sp) +/* 048168 7F013638 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 04816C 7F01363C 44816000 */ mtc1 $at, $f12 +/* 048170 7F013640 0040B025 */ move $s6, $v0 +/* 048174 7F013644 0C001151 */ jal setvideo_far +/* 048178 7F013648 AFA00044 */ sw $zero, 0x44($sp) +/* 04817C 7F01364C 3C018005 */ lui $at, %hi(D_80051A98) +/* 048180 7F013650 0C001164 */ jal video_related_21 +/* 048184 7F013654 C42C1A98 */ lwc1 $f12, %lo(D_80051A98)($at) +/* 048188 7F013658 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04818C 7F01365C 44816000 */ mtc1 $at, $f12 +/* 048190 7F013660 3C018005 */ lui $at, %hi(D_80051A9C) +/* 048194 7F013664 0C001194 */ jal set_page_height +/* 048198 7F013668 C42E1A9C */ lwc1 $f14, %lo(D_80051A9C)($at) +/* 04819C 7F01366C 0C00114D */ jal set_video2_settings_offset_24 +/* 0481A0 7F013670 00002025 */ move $a0, $zero +/* 0481A4 7F013674 1AC000A2 */ blez $s6, .L7F013900 +/* 0481A8 7F013678 00008825 */ move $s1, $zero +/* 0481AC 7F01367C 3C128007 */ lui $s2, %hi(has_selected_char_player1) +/* 0481B0 7F013680 3C138007 */ lui $s3, %hi(controlstyle_player) +/* 0481B4 7F013684 267397B8 */ addiu $s3, %lo(controlstyle_player) # addiu $s3, $s3, -0x6848 +/* 0481B8 7F013688 26529740 */ addiu $s2, %lo(has_selected_char_player1) # addiu $s2, $s2, -0x68c0 +/* 0481BC 7F01368C 0000A825 */ move $s5, $zero +/* 0481C0 7F013690 241E0001 */ li $fp, 1 +/* 0481C4 7F013694 24170002 */ li $s7, 2 +.L7F013698: +/* 0481C8 7F013698 8E4E0000 */ lw $t6, ($s2) +/* 0481CC 7F01369C 00112600 */ sll $a0, $s1, 0x18 +/* 0481D0 7F0136A0 00047E03 */ sra $t7, $a0, 0x18 +/* 0481D4 7F0136A4 11C0000A */ beqz $t6, .L7F0136D0 +/* 0481D8 7F0136A8 01E02025 */ move $a0, $t7 +/* 0481DC 7F0136AC 0C0030EB */ jal get_controller_buttons_pressed +/* 0481E0 7F0136B0 24054000 */ li $a1, 16384 +/* 0481E4 7F0136B4 10400006 */ beqz $v0, .L7F0136D0 +/* 0481E8 7F0136B8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0481EC 7F0136BC AE400000 */ sw $zero, ($s2) +/* 0481F0 7F0136C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0481F4 7F0136C4 240500C7 */ li $a1, 199 +/* 0481F8 7F0136C8 0C002382 */ jal play_sfx_a1 +/* 0481FC 7F0136CC 00003025 */ move $a2, $zero +.L7F0136D0: +/* 048200 7F0136D0 8E420000 */ lw $v0, ($s2) +/* 048204 7F0136D4 00118600 */ sll $s0, $s1, 0x18 +/* 048208 7F0136D8 0010C603 */ sra $t8, $s0, 0x18 +/* 04820C 7F0136DC 14400080 */ bnez $v0, .L7F0138E0 +/* 048210 7F0136E0 03008025 */ move $s0, $t8 +/* 048214 7F0136E4 00182600 */ sll $a0, $t8, 0x18 +/* 048218 7F0136E8 3C088007 */ lui $t0, %hi(dword_CODE_bss_80069760) +/* 04821C 7F0136EC 25089760 */ addiu $t0, $t0, %lo(dword_CODE_bss_80069760) +/* 048220 7F0136F0 0004CE03 */ sra $t9, $a0, 0x18 +/* 048224 7F0136F4 03202025 */ move $a0, $t9 +/* 048228 7F0136F8 02A8A021 */ addu $s4, $s5, $t0 +/* 04822C 7F0136FC 0C0030EB */ jal get_controller_buttons_pressed +/* 048230 7F013700 24050202 */ li $a1, 514 +/* 048234 7F013704 1440000B */ bnez $v0, .L7F013734 +/* 048238 7F013708 00102600 */ sll $a0, $s0, 0x18 +/* 04823C 7F01370C 00044E03 */ sra $t1, $a0, 0x18 +/* 048240 7F013710 01202025 */ move $a0, $t1 +/* 048244 7F013714 2405FFFE */ li $a1, -2 +/* 048248 7F013718 0C00312D */ jal get_controller_3dstick_L_R +/* 04824C 7F01371C 03C03025 */ move $a2, $fp +/* 048250 7F013720 2841FFFF */ slti $at, $v0, -1 +/* 048254 7F013724 10200020 */ beqz $at, .L7F0137A8 +/* 048258 7F013728 00102600 */ sll $a0, $s0, 0x18 +/* 04825C 7F01372C 8E8A0000 */ lw $t2, ($s4) +/* 048260 7F013730 1140001D */ beqz $t2, .L7F0137A8 +.L7F013734: +/* 048264 7F013734 02751821 */ addu $v1, $s3, $s5 +/* 048268 7F013738 8C620000 */ lw $v0, ($v1) +/* 04826C 7F01373C 58400054 */ blezl $v0, .L7F013890 +/* 048270 7F013740 00102600 */ sll $a0, $s0, 0x18 +/* 048274 7F013744 16D70009 */ bne $s6, $s7, .L7F01376C +/* 048278 7F013748 244CFFFF */ addiu $t4, $v0, -1 +/* 04827C 7F01374C 563E0008 */ bnel $s1, $fp, .L7F013770 +/* 048280 7F013750 AC6C0000 */ sw $t4, ($v1) +/* 048284 7F013754 8E6B0000 */ lw $t3, ($s3) +/* 048288 7F013758 29610004 */ slti $at, $t3, 4 +/* 04828C 7F01375C 14200003 */ bnez $at, .L7F01376C +/* 048290 7F013760 28410005 */ slti $at, $v0, 5 +/* 048294 7F013764 14200002 */ bnez $at, .L7F013770 +/* 048298 7F013768 00000000 */ nop +.L7F01376C: +/* 04829C 7F01376C AC6C0000 */ sw $t4, ($v1) +.L7F013770: +/* 0482A0 7F013770 56D70047 */ bnel $s6, $s7, .L7F013890 +/* 0482A4 7F013774 00102600 */ sll $a0, $s0, 0x18 +/* 0482A8 7F013778 56200045 */ bnezl $s1, .L7F013890 +/* 0482AC 7F01377C 00102600 */ sll $a0, $s0, 0x18 +/* 0482B0 7F013780 8E6D0000 */ lw $t5, ($s3) +/* 0482B4 7F013784 29A10004 */ slti $at, $t5, 4 +/* 0482B8 7F013788 50200041 */ beql $at, $zero, .L7F013890 +/* 0482BC 7F01378C 00102600 */ sll $a0, $s0, 0x18 +/* 0482C0 7F013790 8E6E0004 */ lw $t6, 4($s3) +/* 0482C4 7F013794 29C10004 */ slti $at, $t6, 4 +/* 0482C8 7F013798 5420003D */ bnezl $at, .L7F013890 +/* 0482CC 7F01379C 00102600 */ sll $a0, $s0, 0x18 +/* 0482D0 7F0137A0 1000003A */ b .L7F01388C +/* 0482D4 7F0137A4 AE600004 */ sw $zero, 4($s3) +.L7F0137A8: +/* 0482D8 7F0137A8 00047E03 */ sra $t7, $a0, 0x18 +/* 0482DC 7F0137AC 01E02025 */ move $a0, $t7 +/* 0482E0 7F0137B0 0C0030EB */ jal get_controller_buttons_pressed +/* 0482E4 7F0137B4 24050101 */ li $a1, 257 +/* 0482E8 7F0137B8 1440000B */ bnez $v0, .L7F0137E8 +/* 0482EC 7F0137BC 00102600 */ sll $a0, $s0, 0x18 +/* 0482F0 7F0137C0 0004C603 */ sra $t8, $a0, 0x18 +/* 0482F4 7F0137C4 03002025 */ move $a0, $t8 +/* 0482F8 7F0137C8 2405FFFE */ li $a1, -2 +/* 0482FC 7F0137CC 0C00312D */ jal get_controller_3dstick_L_R +/* 048300 7F0137D0 03C03025 */ move $a2, $fp +/* 048304 7F0137D4 18400022 */ blez $v0, .L7F013860 +/* 048308 7F0137D8 00102600 */ sll $a0, $s0, 0x18 +/* 04830C 7F0137DC 8E990000 */ lw $t9, ($s4) +/* 048310 7F0137E0 53200020 */ beql $t9, $zero, .L7F013864 +/* 048314 7F0137E4 00046E03 */ sra $t5, $a0, 0x18 +.L7F0137E8: +/* 048318 7F0137E8 16D70003 */ bne $s6, $s7, .L7F0137F8 +/* 04831C 7F0137EC 02751821 */ addu $v1, $s3, $s5 +/* 048320 7F0137F0 52200006 */ beql $s1, $zero, .L7F01380C +/* 048324 7F0137F4 8C620000 */ lw $v0, ($v1) +.L7F0137F8: +/* 048328 7F0137F8 8C620000 */ lw $v0, ($v1) +/* 04832C 7F0137FC 28410004 */ slti $at, $v0, 4 +/* 048330 7F013800 54200013 */ bnezl $at, .L7F013850 +/* 048334 7F013804 28410003 */ slti $at, $v0, 3 +/* 048338 7F013808 8C620000 */ lw $v0, ($v1) +.L7F01380C: +/* 04833C 7F01380C 28410007 */ slti $at, $v0, 7 +/* 048340 7F013810 1020001E */ beqz $at, .L7F01388C +/* 048344 7F013814 24480001 */ addiu $t0, $v0, 1 +/* 048348 7F013818 1620001C */ bnez $s1, .L7F01388C +/* 04834C 7F01381C AC680000 */ sw $t0, ($v1) +/* 048350 7F013820 8E690000 */ lw $t1, ($s3) +/* 048354 7F013824 24010004 */ li $at, 4 +/* 048358 7F013828 55210019 */ bnel $t1, $at, .L7F013890 +/* 04835C 7F01382C 00102600 */ sll $a0, $s0, 0x18 +/* 048360 7F013830 8E6A0004 */ lw $t2, 4($s3) +/* 048364 7F013834 240B0004 */ li $t3, 4 +/* 048368 7F013838 29410004 */ slti $at, $t2, 4 +/* 04836C 7F01383C 50200014 */ beql $at, $zero, .L7F013890 +/* 048370 7F013840 00102600 */ sll $a0, $s0, 0x18 +/* 048374 7F013844 10000011 */ b .L7F01388C +/* 048378 7F013848 AE6B0004 */ sw $t3, 4($s3) +/* 04837C 7F01384C 28410003 */ slti $at, $v0, 3 +.L7F013850: +/* 048380 7F013850 1020000E */ beqz $at, .L7F01388C +/* 048384 7F013854 244C0001 */ addiu $t4, $v0, 1 +/* 048388 7F013858 1000000C */ b .L7F01388C +/* 04838C 7F01385C AC6C0000 */ sw $t4, ($v1) +.L7F013860: +/* 048390 7F013860 00046E03 */ sra $t5, $a0, 0x18 +.L7F013864: +/* 048394 7F013864 01A02025 */ move $a0, $t5 +/* 048398 7F013868 0C0030EB */ jal get_controller_buttons_pressed +/* 04839C 7F01386C 3405B000 */ li $a1, 45056 +/* 0483A0 7F013870 10400006 */ beqz $v0, .L7F01388C +/* 0483A4 7F013874 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0483A8 7F013878 AE5E0000 */ sw $fp, ($s2) +/* 0483AC 7F01387C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0483B0 7F013880 240500C7 */ li $a1, 199 +/* 0483B4 7F013884 0C002382 */ jal play_sfx_a1 +/* 0483B8 7F013888 00003025 */ move $a2, $zero +.L7F01388C: +/* 0483BC 7F01388C 00102600 */ sll $a0, $s0, 0x18 +.L7F013890: +/* 0483C0 7F013890 00047603 */ sra $t6, $a0, 0x18 +/* 0483C4 7F013894 01C02025 */ move $a0, $t6 +/* 0483C8 7F013898 2405FFFE */ li $a1, -2 +/* 0483CC 7F01389C 0C00312D */ jal get_controller_3dstick_L_R +/* 0483D0 7F0138A0 03C03025 */ move $a2, $fp +/* 0483D4 7F0138A4 2401FFFF */ li $at, -1 +/* 0483D8 7F0138A8 10410008 */ beq $v0, $at, .L7F0138CC +/* 0483DC 7F0138AC 00102600 */ sll $a0, $s0, 0x18 +/* 0483E0 7F0138B0 00047E03 */ sra $t7, $a0, 0x18 +/* 0483E4 7F0138B4 01E02025 */ move $a0, $t7 +/* 0483E8 7F0138B8 2405FFFE */ li $a1, -2 +/* 0483EC 7F0138BC 0C00312D */ jal get_controller_3dstick_L_R +/* 0483F0 7F0138C0 03C03025 */ move $a2, $fp +/* 0483F4 7F0138C4 54400005 */ bnezl $v0, .L7F0138DC +/* 0483F8 7F0138C8 AE800000 */ sw $zero, ($s4) +.L7F0138CC: +/* 0483FC 7F0138CC AE9E0000 */ sw $fp, ($s4) +/* 048400 7F0138D0 10000003 */ b .L7F0138E0 +/* 048404 7F0138D4 8E420000 */ lw $v0, ($s2) +/* 048408 7F0138D8 AE800000 */ sw $zero, ($s4) +.L7F0138DC: +/* 04840C 7F0138DC 8E420000 */ lw $v0, ($s2) +.L7F0138E0: +/* 048410 7F0138E0 10400004 */ beqz $v0, .L7F0138F4 +/* 048414 7F0138E4 26310001 */ addiu $s1, $s1, 1 +/* 048418 7F0138E8 8FB80044 */ lw $t8, 0x44($sp) +/* 04841C 7F0138EC 27190001 */ addiu $t9, $t8, 1 +/* 048420 7F0138F0 AFB90044 */ sw $t9, 0x44($sp) +.L7F0138F4: +/* 048424 7F0138F4 26B50004 */ addiu $s5, $s5, 4 +/* 048428 7F0138F8 1636FF67 */ bne $s1, $s6, .L7F013698 +/* 04842C 7F0138FC 26520004 */ addiu $s2, $s2, 4 +.L7F013900: +/* 048430 7F013900 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 048434 7F013904 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 048438 7F013908 0FC02DC9 */ jal disable_all_switches +/* 04843C 7F01390C 8E040000 */ lw $a0, ($s0) +/* 048440 7F013910 8E040000 */ lw $a0, ($s0) +/* 048444 7F013914 00002825 */ move $a1, $zero +/* 048448 7F013918 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04844C 7F01391C 24060001 */ li $a2, 1 +/* 048450 7F013920 8E040000 */ lw $a0, ($s0) +/* 048454 7F013924 2405002A */ li $a1, 42 +/* 048458 7F013928 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04845C 7F01392C 24060001 */ li $a2, 1 +/* 048460 7F013930 0FC026E1 */ jal menu_control_stick_tracking +/* 048464 7F013934 00000000 */ nop +/* 048468 7F013938 8FA80044 */ lw $t0, 0x44($sp) +/* 04846C 7F01393C 2404000E */ li $a0, 14 +/* 048470 7F013940 55160004 */ bnel $t0, $s6, .L7F013954 +/* 048474 7F013944 8FBF003C */ lw $ra, 0x3c($sp) +/* 048478 7F013948 0FC06975 */ jal set_menu_to_mode +/* 04847C 7F01394C 00002825 */ move $a1, $zero +/* 048480 7F013950 8FBF003C */ lw $ra, 0x3c($sp) +.L7F013954: +/* 048484 7F013954 8FB00018 */ lw $s0, 0x18($sp) +/* 048488 7F013958 8FB1001C */ lw $s1, 0x1c($sp) +/* 04848C 7F01395C 8FB20020 */ lw $s2, 0x20($sp) +/* 048490 7F013960 8FB30024 */ lw $s3, 0x24($sp) +/* 048494 7F013964 8FB40028 */ lw $s4, 0x28($sp) +/* 048498 7F013968 8FB5002C */ lw $s5, 0x2c($sp) +/* 04849C 7F01396C 8FB60030 */ lw $s6, 0x30($sp) +/* 0484A0 7F013970 8FB70034 */ lw $s7, 0x34($sp) +/* 0484A4 7F013974 8FBE0038 */ lw $fp, 0x38($sp) +/* 0484A8 7F013978 03E00008 */ jr $ra +/* 0484AC 7F01397C 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80051A98 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051A9C +.word 0x461C4000 /*10000.0;*/ +.text +glabel interface_menu11_mpcontrols +/* 0481B8 7F013648 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0481BC 7F01364C AFBF003C */ sw $ra, 0x3c($sp) +/* 0481C0 7F013650 AFBE0038 */ sw $fp, 0x38($sp) +/* 0481C4 7F013654 AFB70034 */ sw $s7, 0x34($sp) +/* 0481C8 7F013658 AFB60030 */ sw $s6, 0x30($sp) +/* 0481CC 7F01365C AFB5002C */ sw $s5, 0x2c($sp) +/* 0481D0 7F013660 AFB40028 */ sw $s4, 0x28($sp) +/* 0481D4 7F013664 AFB30024 */ sw $s3, 0x24($sp) +/* 0481D8 7F013668 AFB20020 */ sw $s2, 0x20($sp) +/* 0481DC 7F01366C AFB1001C */ sw $s1, 0x1c($sp) +/* 0481E0 7F013670 0FC040B4 */ jal get_selected_num_players +/* 0481E4 7F013674 AFB00018 */ sw $s0, 0x18($sp) +/* 0481E8 7F013678 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0481EC 7F01367C 44816000 */ mtc1 $at, $f12 +/* 0481F0 7F013680 0040B825 */ move $s7, $v0 +/* 0481F4 7F013684 0C001151 */ jal setvideo_far +/* 0481F8 7F013688 AFA00054 */ sw $zero, 0x54($sp) +/* 0481FC 7F01368C 3C018005 */ lui $at, %hi(D_80051A98) # $at, 0x8005 +/* 048200 7F013690 0C001164 */ jal video_related_21 +/* 048204 7F013694 C42C1AC8 */ lwc1 $f12, %lo(D_80051A98)($at) +/* 048208 7F013698 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04820C 7F01369C 44816000 */ mtc1 $at, $f12 +/* 048210 7F0136A0 3C018005 */ lui $at, %hi(D_80051A9C) # $at, 0x8005 +/* 048214 7F0136A4 0C001194 */ jal set_page_height +/* 048218 7F0136A8 C42E1ACC */ lwc1 $f14, %lo(D_80051A9C)($at) +/* 04821C 7F0136AC 0C00114D */ jal set_video2_settings_offset_24 +/* 048220 7F0136B0 00002025 */ move $a0, $zero +/* 048224 7F0136B4 1AE000BE */ blez $s7, .L7F0139B0 +/* 048228 7F0136B8 00009025 */ move $s2, $zero +/* 04822C 7F0136BC 3C138007 */ lui $s3, %hi(has_selected_char_player1) # $s3, 0x8007 +/* 048230 7F0136C0 3C108007 */ lui $s0, %hi(controlstyle_player) # $s0, 0x8007 +/* 048234 7F0136C4 261097F8 */ addiu $s0, %lo(controlstyle_player) # addiu $s0, $s0, -0x6808 +/* 048238 7F0136C8 26739780 */ addiu $s3, %lo(has_selected_char_player1) # addiu $s3, $s3, -0x6880 +/* 04823C 7F0136CC 0000B025 */ move $s6, $zero +/* 048240 7F0136D0 241E0002 */ li $fp, 2 +/* 048244 7F0136D4 24140004 */ li $s4, 4 +.L7F0136D8: +/* 048248 7F0136D8 8E6E0000 */ lw $t6, ($s3) +/* 04824C 7F0136DC 00122600 */ sll $a0, $s2, 0x18 +/* 048250 7F0136E0 00047E03 */ sra $t7, $a0, 0x18 +/* 048254 7F0136E4 11C0000A */ beqz $t6, .L7F013710 +/* 048258 7F0136E8 01E02025 */ move $a0, $t7 +/* 04825C 7F0136EC 0C003104 */ jal get_controller_buttons_pressed +/* 048260 7F0136F0 24054000 */ li $a1, 16384 +/* 048264 7F0136F4 10400006 */ beqz $v0, .L7F013710 +/* 048268 7F0136F8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 04826C 7F0136FC AE600000 */ sw $zero, ($s3) +/* 048270 7F013700 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 048274 7F013704 240500C7 */ li $a1, 199 +/* 048278 7F013708 0C002386 */ jal play_sfx_a1 +/* 04827C 7F01370C 00003025 */ move $a2, $zero +.L7F013710: +/* 048280 7F013710 8E620000 */ lw $v0, ($s3) +/* 048284 7F013714 00128E00 */ sll $s1, $s2, 0x18 +/* 048288 7F013718 0011C603 */ sra $t8, $s1, 0x18 +/* 04828C 7F01371C 1440009C */ bnez $v0, .L7F013990 +/* 048290 7F013720 03008825 */ move $s1, $t8 +/* 048294 7F013724 00182600 */ sll $a0, $t8, 0x18 +/* 048298 7F013728 3C088007 */ lui $t0, %hi(dword_CODE_bss_80069760) # $t0, 0x8007 +/* 04829C 7F01372C 250897A0 */ addiu $t0, %lo(dword_CODE_bss_80069760) # addiu $t0, $t0, -0x6860 +/* 0482A0 7F013730 0004CE03 */ sra $t9, $a0, 0x18 +/* 0482A4 7F013734 03202025 */ move $a0, $t9 +/* 0482A8 7F013738 02C8A821 */ addu $s5, $s6, $t0 +/* 0482AC 7F01373C 0C003104 */ jal get_controller_buttons_pressed +/* 0482B0 7F013740 24050202 */ li $a1, 514 +/* 0482B4 7F013744 1440000B */ bnez $v0, .L7F013774 +/* 0482B8 7F013748 00112600 */ sll $a0, $s1, 0x18 +/* 0482BC 7F01374C 00044E03 */ sra $t1, $a0, 0x18 +/* 0482C0 7F013750 01202025 */ move $a0, $t1 +/* 0482C4 7F013754 2405FFFE */ li $a1, -2 +/* 0482C8 7F013758 0C003146 */ jal get_controller_3dstick_L_R +/* 0482CC 7F01375C 24060001 */ li $a2, 1 +/* 0482D0 7F013760 2841FFFF */ slti $at, $v0, -1 +/* 0482D4 7F013764 1020002C */ beqz $at, .L7F013818 +/* 0482D8 7F013768 00112600 */ sll $a0, $s1, 0x18 +/* 0482DC 7F01376C 8EAA0000 */ lw $t2, ($s5) +/* 0482E0 7F013770 11400029 */ beqz $t2, .L7F013818 +.L7F013774: +/* 0482E4 7F013774 02161821 */ addu $v1, $s0, $s6 +/* 0482E8 7F013778 8C6B0000 */ lw $t3, ($v1) +/* 0482EC 7F01377C 19600062 */ blez $t3, .L7F013908 +/* 0482F0 7F013780 00000000 */ nop +/* 0482F4 7F013784 16FE000F */ bne $s7, $fp, .L7F0137C4 +/* 0482F8 7F013788 24010001 */ li $at, 1 +/* 0482FC 7F01378C 5641000E */ bnel $s2, $at, .L7F0137C8 +/* 048300 7F013790 8C6E0000 */ lw $t6, ($v1) +/* 048304 7F013794 0C002E82 */ jal get_attached_controller_count +/* 048308 7F013798 AFA30040 */ sw $v1, 0x40($sp) +/* 04830C 7F01379C 14540009 */ bne $v0, $s4, .L7F0137C4 +/* 048310 7F0137A0 8FA30040 */ lw $v1, 0x40($sp) +/* 048314 7F0137A4 8E0C0000 */ lw $t4, ($s0) +/* 048318 7F0137A8 29810004 */ slti $at, $t4, 4 +/* 04831C 7F0137AC 54200006 */ bnezl $at, .L7F0137C8 +/* 048320 7F0137B0 8C6E0000 */ lw $t6, ($v1) +/* 048324 7F0137B4 8C6D0000 */ lw $t5, ($v1) +/* 048328 7F0137B8 29A10005 */ slti $at, $t5, 5 +/* 04832C 7F0137BC 14200004 */ bnez $at, .L7F0137D0 +/* 048330 7F0137C0 00000000 */ nop +.L7F0137C4: +/* 048334 7F0137C4 8C6E0000 */ lw $t6, ($v1) +.L7F0137C8: +/* 048338 7F0137C8 25CFFFFF */ addiu $t7, $t6, -1 +/* 04833C 7F0137CC AC6F0000 */ sw $t7, ($v1) +.L7F0137D0: +/* 048340 7F0137D0 16FE004D */ bne $s7, $fp, .L7F013908 +/* 048344 7F0137D4 00000000 */ nop +/* 048348 7F0137D8 1640004B */ bnez $s2, .L7F013908 +/* 04834C 7F0137DC 00000000 */ nop +/* 048350 7F0137E0 0C002E82 */ jal get_attached_controller_count +/* 048354 7F0137E4 00000000 */ nop +/* 048358 7F0137E8 14540047 */ bne $v0, $s4, .L7F013908 +/* 04835C 7F0137EC 00000000 */ nop +/* 048360 7F0137F0 8E180000 */ lw $t8, ($s0) +/* 048364 7F0137F4 2B010004 */ slti $at, $t8, 4 +/* 048368 7F0137F8 10200043 */ beqz $at, .L7F013908 +/* 04836C 7F0137FC 00000000 */ nop +/* 048370 7F013800 8E190004 */ lw $t9, 4($s0) +/* 048374 7F013804 2B210004 */ slti $at, $t9, 4 +/* 048378 7F013808 1420003F */ bnez $at, .L7F013908 +/* 04837C 7F01380C 00000000 */ nop +/* 048380 7F013810 1000003D */ b .L7F013908 +/* 048384 7F013814 AE000004 */ sw $zero, 4($s0) +.L7F013818: +/* 048388 7F013818 00044603 */ sra $t0, $a0, 0x18 +/* 04838C 7F01381C 01002025 */ move $a0, $t0 +/* 048390 7F013820 0C003104 */ jal get_controller_buttons_pressed +/* 048394 7F013824 24050101 */ li $a1, 257 +/* 048398 7F013828 1440000B */ bnez $v0, .L7F013858 +/* 04839C 7F01382C 00112600 */ sll $a0, $s1, 0x18 +/* 0483A0 7F013830 00044E03 */ sra $t1, $a0, 0x18 +/* 0483A4 7F013834 01202025 */ move $a0, $t1 +/* 0483A8 7F013838 2405FFFE */ li $a1, -2 +/* 0483AC 7F01383C 0C003146 */ jal get_controller_3dstick_L_R +/* 0483B0 7F013840 24060001 */ li $a2, 1 +/* 0483B4 7F013844 18400024 */ blez $v0, .L7F0138D8 +/* 0483B8 7F013848 00112600 */ sll $a0, $s1, 0x18 +/* 0483BC 7F01384C 8EAA0000 */ lw $t2, ($s5) +/* 0483C0 7F013850 51400022 */ beql $t2, $zero, .L7F0138DC +/* 0483C4 7F013854 00047E03 */ sra $t7, $a0, 0x18 +.L7F013858: +/* 0483C8 7F013858 16FE0007 */ bne $s7, $fp, .L7F013878 +/* 0483CC 7F01385C 02161821 */ addu $v1, $s0, $s6 +/* 0483D0 7F013860 56400006 */ bnezl $s2, .L7F01387C +/* 0483D4 7F013864 8C620000 */ lw $v0, ($v1) +/* 0483D8 7F013868 0C002E82 */ jal get_attached_controller_count +/* 0483DC 7F01386C AFA30040 */ sw $v1, 0x40($sp) +/* 0483E0 7F013870 10540005 */ beq $v0, $s4, .L7F013888 +/* 0483E4 7F013874 8FA30040 */ lw $v1, 0x40($sp) +.L7F013878: +/* 0483E8 7F013878 8C620000 */ lw $v0, ($v1) +.L7F01387C: +/* 0483EC 7F01387C 28410004 */ slti $at, $v0, 4 +/* 0483F0 7F013880 54200011 */ bnezl $at, .L7F0138C8 +/* 0483F4 7F013884 28410003 */ slti $at, $v0, 3 +.L7F013888: +/* 0483F8 7F013888 8C620000 */ lw $v0, ($v1) +/* 0483FC 7F01388C 28410007 */ slti $at, $v0, 7 +/* 048400 7F013890 1020001D */ beqz $at, .L7F013908 +/* 048404 7F013894 244B0001 */ addiu $t3, $v0, 1 +/* 048408 7F013898 1640001B */ bnez $s2, .L7F013908 +/* 04840C 7F01389C AC6B0000 */ sw $t3, ($v1) +/* 048410 7F0138A0 8E0C0000 */ lw $t4, ($s0) +/* 048414 7F0138A4 168C0018 */ bne $s4, $t4, .L7F013908 +/* 048418 7F0138A8 00000000 */ nop +/* 04841C 7F0138AC 8E0D0004 */ lw $t5, 4($s0) +/* 048420 7F0138B0 29A10004 */ slti $at, $t5, 4 +/* 048424 7F0138B4 10200014 */ beqz $at, .L7F013908 +/* 048428 7F0138B8 00000000 */ nop +/* 04842C 7F0138BC 10000012 */ b .L7F013908 +/* 048430 7F0138C0 AE140004 */ sw $s4, 4($s0) +/* 048434 7F0138C4 28410003 */ slti $at, $v0, 3 +.L7F0138C8: +/* 048438 7F0138C8 1020000F */ beqz $at, .L7F013908 +/* 04843C 7F0138CC 244E0001 */ addiu $t6, $v0, 1 +/* 048440 7F0138D0 1000000D */ b .L7F013908 +/* 048444 7F0138D4 AC6E0000 */ sw $t6, ($v1) +.L7F0138D8: +/* 048448 7F0138D8 00047E03 */ sra $t7, $a0, 0x18 +.L7F0138DC: +/* 04844C 7F0138DC 01E02025 */ move $a0, $t7 +/* 048450 7F0138E0 0C003104 */ jal get_controller_buttons_pressed +/* 048454 7F0138E4 3405B000 */ li $a1, 45056 +/* 048458 7F0138E8 10400007 */ beqz $v0, .L7F013908 +/* 04845C 7F0138EC 24180001 */ li $t8, 1 +/* 048460 7F0138F0 AE780000 */ sw $t8, ($s3) +/* 048464 7F0138F4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 048468 7F0138F8 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04846C 7F0138FC 240500C7 */ li $a1, 199 +/* 048470 7F013900 0C002386 */ jal play_sfx_a1 +/* 048474 7F013904 00003025 */ move $a2, $zero +.L7F013908: +/* 048478 7F013908 0C002E82 */ jal get_attached_controller_count +/* 04847C 7F01390C 00000000 */ nop +/* 048480 7F013910 1054000B */ beq $v0, $s4, .L7F013940 +/* 048484 7F013914 00112600 */ sll $a0, $s1, 0x18 +/* 048488 7F013918 8E190000 */ lw $t9, ($s0) +/* 04848C 7F01391C 2B210004 */ slti $at, $t9, 4 +/* 048490 7F013920 54200003 */ bnezl $at, .L7F013930 +/* 048494 7F013924 8E080004 */ lw $t0, 4($s0) +/* 048498 7F013928 AE000000 */ sw $zero, ($s0) +/* 04849C 7F01392C 8E080004 */ lw $t0, 4($s0) +.L7F013930: +/* 0484A0 7F013930 29010004 */ slti $at, $t0, 4 +/* 0484A4 7F013934 54200003 */ bnezl $at, .L7F013944 +/* 0484A8 7F013938 00044E03 */ sra $t1, $a0, 0x18 +/* 0484AC 7F01393C AE000004 */ sw $zero, 4($s0) +.L7F013940: +/* 0484B0 7F013940 00044E03 */ sra $t1, $a0, 0x18 +.L7F013944: +/* 0484B4 7F013944 01202025 */ move $a0, $t1 +/* 0484B8 7F013948 2405FFFE */ li $a1, -2 +/* 0484BC 7F01394C 0C003146 */ jal get_controller_3dstick_L_R +/* 0484C0 7F013950 24060001 */ li $a2, 1 +/* 0484C4 7F013954 2401FFFF */ li $at, -1 +/* 0484C8 7F013958 10410007 */ beq $v0, $at, .L7F013978 +/* 0484CC 7F01395C 00112600 */ sll $a0, $s1, 0x18 +/* 0484D0 7F013960 00045603 */ sra $t2, $a0, 0x18 +/* 0484D4 7F013964 01402025 */ move $a0, $t2 +/* 0484D8 7F013968 2405FFFE */ li $a1, -2 +/* 0484DC 7F01396C 0C003146 */ jal get_controller_3dstick_L_R +/* 0484E0 7F013970 24060001 */ li $a2, 1 +/* 0484E4 7F013974 14400004 */ bnez $v0, .L7F013988 +.L7F013978: +/* 0484E8 7F013978 240B0001 */ li $t3, 1 +/* 0484EC 7F01397C AEAB0000 */ sw $t3, ($s5) +/* 0484F0 7F013980 10000003 */ b .L7F013990 +/* 0484F4 7F013984 8E620000 */ lw $v0, ($s3) +.L7F013988: +/* 0484F8 7F013988 AEA00000 */ sw $zero, ($s5) +/* 0484FC 7F01398C 8E620000 */ lw $v0, ($s3) +.L7F013990: +/* 048500 7F013990 10400004 */ beqz $v0, .L7F0139A4 +/* 048504 7F013994 26520001 */ addiu $s2, $s2, 1 +/* 048508 7F013998 8FAC0054 */ lw $t4, 0x54($sp) +/* 04850C 7F01399C 258D0001 */ addiu $t5, $t4, 1 +/* 048510 7F0139A0 AFAD0054 */ sw $t5, 0x54($sp) +.L7F0139A4: +/* 048514 7F0139A4 26D60004 */ addiu $s6, $s6, 4 +/* 048518 7F0139A8 1657FF4B */ bne $s2, $s7, .L7F0136D8 +/* 04851C 7F0139AC 26730004 */ addiu $s3, $s3, 4 +.L7F0139B0: +/* 048520 7F0139B0 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) # $s0, 0x8003 +/* 048524 7F0139B4 2610A99C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x5664 +/* 048528 7F0139B8 0FC02DD1 */ jal disable_all_switches +/* 04852C 7F0139BC 8E040000 */ lw $a0, ($s0) +/* 048530 7F0139C0 8E040000 */ lw $a0, ($s0) +/* 048534 7F0139C4 00002825 */ move $a1, $zero +/* 048538 7F0139C8 0FC02DF8 */ jal set_item_visibility_in_objinstance +/* 04853C 7F0139CC 24060001 */ li $a2, 1 +/* 048540 7F0139D0 8E040000 */ lw $a0, ($s0) +/* 048544 7F0139D4 2405002A */ li $a1, 42 +/* 048548 7F0139D8 0FC02DF8 */ jal set_item_visibility_in_objinstance +/* 04854C 7F0139DC 24060001 */ li $a2, 1 +/* 048550 7F0139E0 0FC026E9 */ jal menu_control_stick_tracking +/* 048554 7F0139E4 00000000 */ nop +/* 048558 7F0139E8 8FAE0054 */ lw $t6, 0x54($sp) +/* 04855C 7F0139EC 2404000E */ li $a0, 14 +/* 048560 7F0139F0 55D70004 */ bnel $t6, $s7, .L7F013A04 +/* 048564 7F0139F4 8FBF003C */ lw $ra, 0x3c($sp) +/* 048568 7F0139F8 0FC069E2 */ jal set_menu_to_mode +/* 04856C 7F0139FC 00002825 */ move $a1, $zero +/* 048570 7F013A00 8FBF003C */ lw $ra, 0x3c($sp) +.L7F013A04: +/* 048574 7F013A04 8FB00018 */ lw $s0, 0x18($sp) +/* 048578 7F013A08 8FB1001C */ lw $s1, 0x1c($sp) +/* 04857C 7F013A0C 8FB20020 */ lw $s2, 0x20($sp) +/* 048580 7F013A10 8FB30024 */ lw $s3, 0x24($sp) +/* 048584 7F013A14 8FB40028 */ lw $s4, 0x28($sp) +/* 048588 7F013A18 8FB5002C */ lw $s5, 0x2c($sp) +/* 04858C 7F013A1C 8FB60030 */ lw $s6, 0x30($sp) +/* 048590 7F013A20 8FB70034 */ lw $s7, 0x34($sp) +/* 048594 7F013A24 8FBE0038 */ lw $fp, 0x38($sp) +/* 048598 7F013A28 03E00008 */ jr $ra +/* 04859C 7F013A2C 27BD0060 */ addiu $sp, $sp, 0x60 + +) +#endif + +#endif + + +#ifdef NONMATCHING +void constructor_menu11_mpcontrol(s32 arg0) +{ + s32 spCC; + s32 spA4; + s32 spA0; + s32 sp9C; + s32 sp98; + s32 sp90; + s32 sp8C; + s32 sp88; + s32 sp84; + void *sp74; + void *sp70; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_ret_3; + s32 temp_ret_4; + s32 temp_s1; + s32 temp_s1_2; + s32 temp_s6; + s32 temp_v0; + s32 phi_s6; + s32 phi_s3; + s32 phi_s2; + void *phi_v0; + s32 phi_s5; + s32 phi_s1; + s32 phi_s1_2; + s32 phi_v1; + s32 phi_v1_2; + + spCC = get_selected_num_players(); + temp_ret = microcode_constructor_related_to_menus(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(arg0, 0, 0, 0)))), 0x26, 0xa9, 0x184, 0xab, 0x90); + temp_s1 = temp_ret; + phi_v0 = temp_ret; + phi_s1_2 = temp_s1; + if (spCC >= 3) + { + temp_ret_2 = microcode_constructor_related_to_menus(temp_s1, 0xd4, 0x1e, 0xd6, 0x136, 0x80); + phi_v0 = temp_ret_2; + phi_s1_2 = temp_ret_2; + } + if (spCC > 0) + { + sp74 = &has_selected_char_player1; + sp70 = &controlstyle_player; + phi_s6 = 0; +loop_4: + if (spCC == 2) + { + if (phi_s6 > 0) + { + phi_s3 = 0x26; + phi_s2 = 0xaa; + phi_s5 = 0x15e; + } + else + { + phi_s3 = 0x26; + phi_s2 = 0 + 0x1e; + phi_s5 = 0x15e; + } + } + else + { + if (phi_s6 >= 2) + { + phi_v1_2 = 0x8c; + } + else + { + phi_v1_2 = 0; + } + if ((phi_s6 & 1) != 0) + { + phi_v1 = 0xaf; + } + else + { + phi_v1 = 0; + } + phi_s3 = phi_v1 + 0x26; + phi_s2 = phi_v1_2 + 0x1e; + phi_s5 = 0xaf; + } + temp_s1_2 = phi_v0 + 8; + phi_v0->unk0 = (s32) (((((s32) ((f32) (phi_s3 + 6) * 4.0f) & 0xfff) << 0xc) | 0xed000000) | ((s32) ((f32) (phi_s2 + 5) * 4.0f) & 0xfff)); + phi_v0->unk4 = (s32) ((((s32) ((f32) ((phi_s3 + phi_s5) + -6) * 4.0f) & 0xfff) << 0xc) | ((s32) ((f32) (phi_s2 + 0x87) * 4.0f) & 0xfff)); + phi_s1 = temp_s1_2; + if (*sp74 == 0) + { + temp_ret_3 = get_textptr_for_textID(TEXT(LTITLE, 0x11d)); + sub_GAME_7F0AE98C(&spA4, &spA0, temp_ret_3, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); + sp9C = (s32) ((((s32) phi_s5 >> 1) + phi_s3) - (spA0 >> 1)); + sp98 = (s32) ((phi_s2 - (spA4 >> 1)) + 0x37); + get_video2_settings_txtClipW(); + phi_s1 = write_text_at_abs_coord(microcode_constructor(temp_s1_2), &sp9C, &sp98, temp_ret_3, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, get_video2_settings_txtClipH(), 0, 0); + } + temp_ret_4 = get_textptr_for_textID((0x80030000 + (*sp70 * 4))->unk-4B10); + sub_GAME_7F0AE98C(&sp90, &sp8C, temp_ret_4, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); + sp88 = (s32) ((((s32) phi_s5 >> 1) + phi_s3) - (sp8C >> 1)); + sp84 = (s32) (((phi_s2 + 0x46) - (sp90 >> 1)) + 0xf); + get_video2_settings_txtClipW(); + temp_s6 = phi_s6 + 1; + sp70 = (void *) (sp70 + 4); + temp_v0 = write_text_at_abs_coord(microcode_constructor(phi_s1), &sp88, &sp84, temp_ret_4, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, get_video2_settings_txtClipH(), 0, 0); + sp74 = (void *) (sp74 + 4); + phi_s6 = temp_s6; + phi_v0 = temp_v0; + phi_s1_2 = temp_v0; + if (temp_s6 != spCC) + { + goto loop_4; + } + } + combiner_bayer_lod_perspective(phi_s1_2); +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu11_mpcontrol +/* 0484B0 7F013980 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 0484B4 7F013984 AFBF0064 */ sw $ra, 0x64($sp) +/* 0484B8 7F013988 AFB10044 */ sw $s1, 0x44($sp) +/* 0484BC 7F01398C 00808825 */ move $s1, $a0 +/* 0484C0 7F013990 AFBE0060 */ sw $fp, 0x60($sp) +/* 0484C4 7F013994 AFB7005C */ sw $s7, 0x5c($sp) +/* 0484C8 7F013998 AFB60058 */ sw $s6, 0x58($sp) +/* 0484CC 7F01399C AFB50054 */ sw $s5, 0x54($sp) +/* 0484D0 7F0139A0 AFB40050 */ sw $s4, 0x50($sp) +/* 0484D4 7F0139A4 AFB3004C */ sw $s3, 0x4c($sp) +/* 0484D8 7F0139A8 AFB20048 */ sw $s2, 0x48($sp) +/* 0484DC 7F0139AC AFB00040 */ sw $s0, 0x40($sp) +/* 0484E0 7F0139B0 0FC040A4 */ jal get_selected_num_players +/* 0484E4 7F0139B4 F7B40038 */ sdc1 $f20, 0x38($sp) +/* 0484E8 7F0139B8 AFA200CC */ sw $v0, 0xcc($sp) +/* 0484EC 7F0139BC 02202025 */ move $a0, $s1 +/* 0484F0 7F0139C0 00002825 */ move $a1, $zero +/* 0484F4 7F0139C4 00003025 */ move $a2, $zero +/* 0484F8 7F0139C8 0C0011B4 */ jal set_setfillcolor +/* 0484FC 7F0139CC 00003825 */ move $a3, $zero +/* 048500 7F0139D0 0C000FBE */ jal insert_generic_fillrect +/* 048504 7F0139D4 00402025 */ move $a0, $v0 +/* 048508 7F0139D8 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 04850C 7F0139DC 00402025 */ move $a0, $v0 +/* 048510 7F0139E0 0FC2B366 */ jal microcode_constructor +/* 048514 7F0139E4 00402025 */ move $a0, $v0 +/* 048518 7F0139E8 240E00AB */ li $t6, 171 +/* 04851C 7F0139EC 240F0090 */ li $t7, 144 +/* 048520 7F0139F0 AFAF0014 */ sw $t7, 0x14($sp) +/* 048524 7F0139F4 AFAE0010 */ sw $t6, 0x10($sp) +/* 048528 7F0139F8 00402025 */ move $a0, $v0 +/* 04852C 7F0139FC 24050026 */ li $a1, 38 +/* 048530 7F013A00 240600A9 */ li $a2, 169 +/* 048534 7F013A04 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 048538 7F013A08 24070184 */ li $a3, 388 +/* 04853C 7F013A0C 8FA800CC */ lw $t0, 0xcc($sp) +/* 048540 7F013A10 00408825 */ move $s1, $v0 +/* 048544 7F013A14 02202025 */ move $a0, $s1 +/* 048548 7F013A18 29010003 */ slti $at, $t0, 3 +/* 04854C 7F013A1C 1420000A */ bnez $at, .L7F013A48 +/* 048550 7F013A20 240500D4 */ li $a1, 212 +/* 048554 7F013A24 24180136 */ li $t8, 310 +/* 048558 7F013A28 24190080 */ li $t9, 128 +/* 04855C 7F013A2C AFB90014 */ sw $t9, 0x14($sp) +/* 048560 7F013A30 AFB80010 */ sw $t8, 0x10($sp) +/* 048564 7F013A34 2406001E */ li $a2, 30 +/* 048568 7F013A38 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04856C 7F013A3C 240700D6 */ li $a3, 214 +/* 048570 7F013A40 00408825 */ move $s1, $v0 +/* 048574 7F013A44 8FA800CC */ lw $t0, 0xcc($sp) +.L7F013A48: +/* 048578 7F013A48 190000BC */ blez $t0, .L7F013D3C +/* 04857C 7F013A4C 0000B025 */ move $s6, $zero +/* 048580 7F013A50 3C098007 */ lui $t1, %hi(has_selected_char_player1) +/* 048584 7F013A54 3C0A8007 */ lui $t2, %hi(controlstyle_player) +/* 048588 7F013A58 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 04858C 7F013A5C 254A97B8 */ addiu $t2, %lo(controlstyle_player) # addiu $t2, $t2, -0x6848 +/* 048590 7F013A60 25299740 */ addiu $t1, %lo(has_selected_char_player1) # addiu $t1, $t1, -0x68c0 +/* 048594 7F013A64 3C1E8004 */ lui $fp, %hi(ptrFirstFontTableLarge) +/* 048598 7F013A68 3C178004 */ lui $s7, %hi(ptrSecondFontTableLarge) +/* 04859C 7F013A6C 4481A000 */ mtc1 $at, $f20 +/* 0485A0 7F013A70 26F70EB8 */ addiu $s7, %lo(ptrSecondFontTableLarge) # addiu $s7, $s7, 0xeb8 +/* 0485A4 7F013A74 27DE0EB4 */ addiu $fp, %lo(ptrFirstFontTableLarge) # addiu $fp, $fp, 0xeb4 +/* 0485A8 7F013A78 AFA90074 */ sw $t1, 0x74($sp) +/* 0485AC 7F013A7C AFAA0070 */ sw $t2, 0x70($sp) +.L7F013A80: +/* 0485B0 7F013A80 8FA800CC */ lw $t0, 0xcc($sp) +/* 0485B4 7F013A84 24010002 */ li $at, 2 +/* 0485B8 7F013A88 24130026 */ li $s3, 38 +/* 0485BC 7F013A8C 15010008 */ bne $t0, $at, .L7F013AB0 +/* 0485C0 7F013A90 32CB0001 */ andi $t3, $s6, 1 +/* 0485C4 7F013A94 1AC00003 */ blez $s6, .L7F013AA4 +/* 0485C8 7F013A98 2415015E */ li $s5, 350 +/* 0485CC 7F013A9C 10000010 */ b .L7F013AE0 +/* 0485D0 7F013AA0 241200AA */ li $s2, 170 +.L7F013AA4: +/* 0485D4 7F013AA4 00001825 */ move $v1, $zero +/* 0485D8 7F013AA8 1000000D */ b .L7F013AE0 +/* 0485DC 7F013AAC 2472001E */ addiu $s2, $v1, 0x1e +.L7F013AB0: +/* 0485E0 7F013AB0 2AC10002 */ slti $at, $s6, 2 +/* 0485E4 7F013AB4 14200003 */ bnez $at, .L7F013AC4 +/* 0485E8 7F013AB8 241500AF */ li $s5, 175 +/* 0485EC 7F013ABC 10000002 */ b .L7F013AC8 +/* 0485F0 7F013AC0 2403008C */ li $v1, 140 +.L7F013AC4: +/* 0485F4 7F013AC4 00001825 */ move $v1, $zero +.L7F013AC8: +/* 0485F8 7F013AC8 11600003 */ beqz $t3, .L7F013AD8 +/* 0485FC 7F013ACC 2472001E */ addiu $s2, $v1, 0x1e +/* 048600 7F013AD0 10000002 */ b .L7F013ADC +/* 048604 7F013AD4 240300AF */ li $v1, 175 +.L7F013AD8: +/* 048608 7F013AD8 00001825 */ move $v1, $zero +.L7F013ADC: +/* 04860C 7F013ADC 24730026 */ addiu $s3, $v1, 0x26 +.L7F013AE0: +/* 048610 7F013AE0 266C0006 */ addiu $t4, $s3, 6 +/* 048614 7F013AE4 448C2000 */ mtc1 $t4, $f4 +/* 048618 7F013AE8 26490005 */ addiu $t1, $s2, 5 +/* 04861C 7F013AEC 44898000 */ mtc1 $t1, $f16 +/* 048620 7F013AF0 468021A0 */ cvt.s.w $f6, $f4 +/* 048624 7F013AF4 3C01ED00 */ lui $at, 0xed00 +/* 048628 7F013AF8 24510008 */ addiu $s1, $v0, 8 +/* 04862C 7F013AFC 468084A0 */ cvt.s.w $f18, $f16 +/* 048630 7F013B00 46143202 */ mul.s $f8, $f6, $f20 +/* 048634 7F013B04 4600428D */ trunc.w.s $f10, $f8 +/* 048638 7F013B08 46149102 */ mul.s $f4, $f18, $f20 +/* 04863C 7F013B0C 440E5000 */ mfc1 $t6, $f10 +/* 048640 7F013B10 00000000 */ nop +/* 048644 7F013B14 31CF0FFF */ andi $t7, $t6, 0xfff +/* 048648 7F013B18 4600218D */ trunc.w.s $f6, $f4 +/* 04864C 7F013B1C 000FC300 */ sll $t8, $t7, 0xc +/* 048650 7F013B20 02757021 */ addu $t6, $s3, $s5 +/* 048654 7F013B24 25CFFFFA */ addiu $t7, $t6, -6 +/* 048658 7F013B28 440B3000 */ mfc1 $t3, $f6 +/* 04865C 7F013B2C 448F4000 */ mtc1 $t7, $f8 +/* 048660 7F013B30 0301C825 */ or $t9, $t8, $at +/* 048664 7F013B34 316C0FFF */ andi $t4, $t3, 0xfff +/* 048668 7F013B38 032C6825 */ or $t5, $t9, $t4 +/* 04866C 7F013B3C 26590087 */ addiu $t9, $s2, 0x87 +/* 048670 7F013B40 468042A0 */ cvt.s.w $f10, $f8 +/* 048674 7F013B44 44992000 */ mtc1 $t9, $f4 +/* 048678 7F013B48 AC4D0000 */ sw $t5, ($v0) +/* 04867C 7F013B4C 468021A0 */ cvt.s.w $f6, $f4 +/* 048680 7F013B50 46145402 */ mul.s $f16, $f10, $f20 +/* 048684 7F013B54 00000000 */ nop +/* 048688 7F013B58 46143202 */ mul.s $f8, $f6, $f20 +/* 04868C 7F013B5C 4600848D */ trunc.w.s $f18, $f16 +/* 048690 7F013B60 4600428D */ trunc.w.s $f10, $f8 +/* 048694 7F013B64 44099000 */ mfc1 $t1, $f18 +/* 048698 7F013B68 440D5000 */ mfc1 $t5, $f10 +/* 04869C 7F013B6C 312A0FFF */ andi $t2, $t1, 0xfff +/* 0486A0 7F013B70 000A5B00 */ sll $t3, $t2, 0xc +/* 0486A4 7F013B74 31AE0FFF */ andi $t6, $t5, 0xfff +/* 0486A8 7F013B78 016E7825 */ or $t7, $t3, $t6 +/* 0486AC 7F013B7C AC4F0004 */ sw $t7, 4($v0) +/* 0486B0 7F013B80 8FB80074 */ lw $t8, 0x74($sp) +/* 0486B4 7F013B84 8F090000 */ lw $t1, ($t8) +/* 0486B8 7F013B88 1520002F */ bnez $t1, .L7F013C48 +/* 0486BC 7F013B8C 00000000 */ nop +/* 0486C0 7F013B90 0FC30776 */ jal get_textptr_for_textID +/* 0486C4 7F013B94 34049D1D */ li $a0, 40221 +/* 0486C8 7F013B98 8FCA0000 */ lw $t2, ($fp) +/* 0486CC 7F013B9C 0040A025 */ move $s4, $v0 +/* 0486D0 7F013BA0 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 0486D4 7F013BA4 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 0486D8 7F013BA8 00403025 */ move $a2, $v0 +/* 0486DC 7F013BAC 8EE70000 */ lw $a3, ($s7) +/* 0486E0 7F013BB0 AFA00014 */ sw $zero, 0x14($sp) +/* 0486E4 7F013BB4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0486E8 7F013BB8 AFAA0010 */ sw $t2, 0x10($sp) +/* 0486EC 7F013BBC 8FAF00A4 */ lw $t7, 0xa4($sp) +/* 0486F0 7F013BC0 8FAD00A0 */ lw $t5, 0xa0($sp) +/* 0486F4 7F013BC4 0015C843 */ sra $t9, $s5, 1 +/* 0486F8 7F013BC8 000FC043 */ sra $t8, $t7, 1 +/* 0486FC 7F013BCC 03336021 */ addu $t4, $t9, $s3 +/* 048700 7F013BD0 02584823 */ subu $t1, $s2, $t8 +/* 048704 7F013BD4 000D5843 */ sra $t3, $t5, 1 +/* 048708 7F013BD8 018B7023 */ subu $t6, $t4, $t3 +/* 04870C 7F013BDC 252A0037 */ addiu $t2, $t1, 0x37 +/* 048710 7F013BE0 AFAE009C */ sw $t6, 0x9c($sp) +/* 048714 7F013BE4 AFAA0098 */ sw $t2, 0x98($sp) +/* 048718 7F013BE8 0FC2B366 */ jal microcode_constructor +/* 04871C 7F013BEC 02202025 */ move $a0, $s1 +/* 048720 7F013BF0 0C001107 */ jal get_video2_settings_txtClipW +/* 048724 7F013BF4 00408825 */ move $s1, $v0 +/* 048728 7F013BF8 00028400 */ sll $s0, $v0, 0x10 +/* 04872C 7F013BFC 0010CC03 */ sra $t9, $s0, 0x10 +/* 048730 7F013C00 0C00110B */ jal get_video2_settings_txtClipH +/* 048734 7F013C04 03208025 */ move $s0, $t9 +/* 048738 7F013C08 8EED0000 */ lw $t5, ($s7) +/* 04873C 7F013C0C 8FCC0000 */ lw $t4, ($fp) +/* 048740 7F013C10 240B00FF */ li $t3, 255 +/* 048744 7F013C14 AFAB0018 */ sw $t3, 0x18($sp) +/* 048748 7F013C18 02202025 */ move $a0, $s1 +/* 04874C 7F013C1C 27A5009C */ addiu $a1, $sp, 0x9c +/* 048750 7F013C20 27A60098 */ addiu $a2, $sp, 0x98 +/* 048754 7F013C24 02803825 */ move $a3, $s4 +/* 048758 7F013C28 AFB0001C */ sw $s0, 0x1c($sp) +/* 04875C 7F013C2C AFA20020 */ sw $v0, 0x20($sp) +/* 048760 7F013C30 AFA00024 */ sw $zero, 0x24($sp) +/* 048764 7F013C34 AFA00028 */ sw $zero, 0x28($sp) +/* 048768 7F013C38 AFAD0010 */ sw $t5, 0x10($sp) +/* 04876C 7F013C3C 0FC025D8 */ jal write_text_at_abs_coord +/* 048770 7F013C40 AFAC0014 */ sw $t4, 0x14($sp) +/* 048774 7F013C44 00408825 */ move $s1, $v0 +.L7F013C48: +/* 048778 7F013C48 8FAE0070 */ lw $t6, 0x70($sp) +/* 04877C 7F013C4C 3C048003 */ lui $a0, %hi(MP_controller_configuration_table) +/* 048780 7F013C50 00154843 */ sra $t1, $s5, 1 +/* 048784 7F013C54 8DCF0000 */ lw $t7, ($t6) +/* 048788 7F013C58 01338021 */ addu $s0, $t1, $s3 +/* 04878C 7F013C5C 26540046 */ addiu $s4, $s2, 0x46 +/* 048790 7F013C60 000FC080 */ sll $t8, $t7, 2 +/* 048794 7F013C64 00982021 */ addu $a0, $a0, $t8 +/* 048798 7F013C68 0FC30776 */ jal get_textptr_for_textID +/* 04879C 7F013C6C 9484B4F0 */ lhu $a0, %lo(MP_controller_configuration_table)($a0) +/* 0487A0 7F013C70 8FCA0000 */ lw $t2, ($fp) +/* 0487A4 7F013C74 00409025 */ move $s2, $v0 +/* 0487A8 7F013C78 27A40090 */ addiu $a0, $sp, 0x90 +/* 0487AC 7F013C7C 27A5008C */ addiu $a1, $sp, 0x8c +/* 0487B0 7F013C80 00403025 */ move $a2, $v0 +/* 0487B4 7F013C84 8EE70000 */ lw $a3, ($s7) +/* 0487B8 7F013C88 AFA00014 */ sw $zero, 0x14($sp) +/* 0487BC 7F013C8C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0487C0 7F013C90 AFAA0010 */ sw $t2, 0x10($sp) +/* 0487C4 7F013C94 8FAB0090 */ lw $t3, 0x90($sp) +/* 0487C8 7F013C98 8FB9008C */ lw $t9, 0x8c($sp) +/* 0487CC 7F013C9C 02202025 */ move $a0, $s1 +/* 0487D0 7F013CA0 000B7043 */ sra $t6, $t3, 1 +/* 0487D4 7F013CA4 028E7823 */ subu $t7, $s4, $t6 +/* 0487D8 7F013CA8 00196843 */ sra $t5, $t9, 1 +/* 0487DC 7F013CAC 020D6023 */ subu $t4, $s0, $t5 +/* 0487E0 7F013CB0 25F8000F */ addiu $t8, $t7, 0xf +/* 0487E4 7F013CB4 AFAC0088 */ sw $t4, 0x88($sp) +/* 0487E8 7F013CB8 0FC2B366 */ jal microcode_constructor +/* 0487EC 7F013CBC AFB80084 */ sw $t8, 0x84($sp) +/* 0487F0 7F013CC0 0C001107 */ jal get_video2_settings_txtClipW +/* 0487F4 7F013CC4 00408825 */ move $s1, $v0 +/* 0487F8 7F013CC8 00028400 */ sll $s0, $v0, 0x10 +/* 0487FC 7F013CCC 00104C03 */ sra $t1, $s0, 0x10 +/* 048800 7F013CD0 0C00110B */ jal get_video2_settings_txtClipH +/* 048804 7F013CD4 01208025 */ move $s0, $t1 +/* 048808 7F013CD8 8EEA0000 */ lw $t2, ($s7) +/* 04880C 7F013CDC 8FD90000 */ lw $t9, ($fp) +/* 048810 7F013CE0 240D00FF */ li $t5, 255 +/* 048814 7F013CE4 AFAD0018 */ sw $t5, 0x18($sp) +/* 048818 7F013CE8 02202025 */ move $a0, $s1 +/* 04881C 7F013CEC 27A50088 */ addiu $a1, $sp, 0x88 +/* 048820 7F013CF0 27A60084 */ addiu $a2, $sp, 0x84 +/* 048824 7F013CF4 02403825 */ move $a3, $s2 +/* 048828 7F013CF8 AFB0001C */ sw $s0, 0x1c($sp) +/* 04882C 7F013CFC AFA20020 */ sw $v0, 0x20($sp) +/* 048830 7F013D00 AFA00024 */ sw $zero, 0x24($sp) +/* 048834 7F013D04 AFA00028 */ sw $zero, 0x28($sp) +/* 048838 7F013D08 AFAA0010 */ sw $t2, 0x10($sp) +/* 04883C 7F013D0C 0FC025D8 */ jal write_text_at_abs_coord +/* 048840 7F013D10 AFB90014 */ sw $t9, 0x14($sp) +/* 048844 7F013D14 8FAC0074 */ lw $t4, 0x74($sp) +/* 048848 7F013D18 8FAE0070 */ lw $t6, 0x70($sp) +/* 04884C 7F013D1C 8FB800CC */ lw $t8, 0xcc($sp) +/* 048850 7F013D20 26D60001 */ addiu $s6, $s6, 1 +/* 048854 7F013D24 258B0004 */ addiu $t3, $t4, 4 +/* 048858 7F013D28 25CF0004 */ addiu $t7, $t6, 4 +/* 04885C 7F013D2C AFAF0070 */ sw $t7, 0x70($sp) +/* 048860 7F013D30 AFAB0074 */ sw $t3, 0x74($sp) +/* 048864 7F013D34 16D8FF52 */ bne $s6, $t8, .L7F013A80 +/* 048868 7F013D38 00408825 */ move $s1, $v0 +.L7F013D3C: +/* 04886C 7F013D3C 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 048870 7F013D40 02202025 */ move $a0, $s1 +/* 048874 7F013D44 8FBF0064 */ lw $ra, 0x64($sp) +/* 048878 7F013D48 D7B40038 */ ldc1 $f20, 0x38($sp) +/* 04887C 7F013D4C 8FB00040 */ lw $s0, 0x40($sp) +/* 048880 7F013D50 8FB10044 */ lw $s1, 0x44($sp) +/* 048884 7F013D54 8FB20048 */ lw $s2, 0x48($sp) +/* 048888 7F013D58 8FB3004C */ lw $s3, 0x4c($sp) +/* 04888C 7F013D5C 8FB40050 */ lw $s4, 0x50($sp) +/* 048890 7F013D60 8FB50054 */ lw $s5, 0x54($sp) +/* 048894 7F013D64 8FB60058 */ lw $s6, 0x58($sp) +/* 048898 7F013D68 8FB7005C */ lw $s7, 0x5c($sp) +/* 04889C 7F013D6C 8FBE0060 */ lw $fp, 0x60($sp) +/* 0488A0 7F013D70 03E00008 */ jr $ra +/* 0488A4 7F013D74 27BD00D0 */ addiu $sp, $sp, 0xd0 +) +#endif + + + +void init_menu12_mpstage(void) +{ + tab_1_selected = FALSE; + tab_2_selected = FALSE; + tab_3_selected = FALSE; + tab_3_highlight = FALSE; + tab_2_highlight = FALSE; + tab_1_highlight = FALSE; + current_mp_stage_highlighted = MP_STAGE_RANDOM; + load_walletbond(); +} + +void update_menu12_mpstage(void) { +return; +} + + + + + + + +#ifdef NONMATCHING +void interface_menu12_mpstage(void) +{ + s32 temp_a0; + s32 temp_a0_2; + s32 temp_f10; + s32 temp_f6; + s32 phi_v1; + s32 phi_v0; + + setvideo_far(0x42700000); + video_related_21(D_80051AA0); + set_page_height(0x42c80000, D_80051AA4); + set_video2_settings_offset_24(0); + if (get_controller_buttons_held(0, 0xb000) == 0) + { + tab_3_highlight = 0; + tab_2_highlight = 0; + tab_1_highlight = 0; + if (isontab3() != 0) + { + cursor_v_pos = 1; + } + else + { + temp_f6 = (s32) *(void *)0x80030000; + if (temp_f6 >= 0xf0) + { + phi_v1 = 2; + } + else + { + phi_v1 = 0; + if (temp_f6 >= 0xaa) + { + phi_v1 = 1; + } + } + temp_f10 = (s32) cursor_h_pos; + if (temp_f10 >= 0x124) + { + phi_v0 = 3; + } + else + { + if (temp_f10 >= 0xcf) + { + phi_v0 = 2; + } + else + { + phi_v0 = 0; + if (temp_f10 >= 0x7a) + { + phi_v0 = 1; + } + } + } + temp_a0 = (phi_v1 * 4) + phi_v0; + current_mp_stage_highlighted = temp_a0; + if (check_if_mp_stage_unlocked(temp_a0) == 0) + { +loop_14: + temp_a0_2 = current_mp_stage_highlighted + -1; + current_mp_stage_highlighted = temp_a0_2; + if (check_if_mp_stage_unlocked(temp_a0_2) == 0) + { + goto loop_14; + } + } + } + } + if (get_controller_buttons_pressed(0, 0xb000) != 0) + { + if (tab_3_highlight != 0) + { + tab_3_selected = 1; + } + else + { + if (current_mp_stage_highlighted >= 0) + { + tab_2_selected = 1; + MP_stage_selected = (s32) current_mp_stage_highlighted; + } + } + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if (get_controller_buttons_pressed(0, 0x4000) != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + disable_all_switches(ptr_folder_object_instance); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0x2a, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, 1); + menu_control_stick_tracking(); + if (tab_2_selected != 0) + { + set_menu_to_mode(MENU_MP_OPTIONS, 0); + return; + } + if (tab_3_selected != 0) + { + set_menu_to_mode(MENU_MP_OPTIONS, 0); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051AA0 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051AA4 +.word 0x461C4000 /*10000.0;*/ + +.text +glabel interface_menu12_mpstage +/* 048904 7F013DD4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 048908 7F013DD8 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 04890C 7F013DDC AFBF001C */ sw $ra, 0x1c($sp) +/* 048910 7F013DE0 44816000 */ mtc1 $at, $f12 +/* 048914 7F013DE4 0C001151 */ jal setvideo_far +/* 048918 7F013DE8 AFB00018 */ sw $s0, 0x18($sp) +/* 04891C 7F013DEC 3C018005 */ lui $at, %hi(D_80051AA0) +/* 048920 7F013DF0 0C001164 */ jal video_related_21 +/* 048924 7F013DF4 C42C1AA0 */ lwc1 $f12, %lo(D_80051AA0)($at) +/* 048928 7F013DF8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04892C 7F013DFC 44816000 */ mtc1 $at, $f12 +/* 048930 7F013E00 3C018005 */ lui $at, %hi(D_80051AA4) +/* 048934 7F013E04 0C001194 */ jal set_page_height +/* 048938 7F013E08 C42E1AA4 */ lwc1 $f14, %lo(D_80051AA4)($at) +/* 04893C 7F013E0C 0C00114D */ jal set_video2_settings_offset_24 +/* 048940 7F013E10 00002025 */ move $a0, $zero +/* 048944 7F013E14 00002025 */ move $a0, $zero +/* 048948 7F013E18 0C0030C3 */ jal get_controller_buttons_held +/* 04894C 7F013E1C 3405B000 */ li $a1, 45056 +/* 048950 7F013E20 1440003D */ bnez $v0, .L7F013F18 +/* 048954 7F013E24 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 048958 7F013E28 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 04895C 7F013E2C 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 048960 7F013E30 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 048964 7F013E34 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 048968 7F013E38 0FC028E7 */ jal isontab3 +/* 04896C 7F013E3C AC20A8DC */ sw $zero, %lo(tab_1_highlight)($at) +/* 048970 7F013E40 10400005 */ beqz $v0, .L7F013E58 +/* 048974 7F013E44 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 048978 7F013E48 240E0001 */ li $t6, 1 +/* 04897C 7F013E4C 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 048980 7F013E50 10000031 */ b .L7F013F18 +/* 048984 7F013E54 AC2EA8E4 */ sw $t6, %lo(tab_3_highlight)($at) +.L7F013E58: +/* 048988 7F013E58 C424A90C */ lwc1 $f4, %lo(cursor_v_pos)($at) +/* 04898C 7F013E5C 3C108007 */ lui $s0, %hi(current_mp_stage_highlighted) +/* 048990 7F013E60 2610977C */ addiu $s0, %lo(current_mp_stage_highlighted) # addiu $s0, $s0, -0x6884 +/* 048994 7F013E64 4600218D */ trunc.w.s $f6, $f4 +/* 048998 7F013E68 44023000 */ mfc1 $v0, $f6 +/* 04899C 7F013E6C 00000000 */ nop +/* 0489A0 7F013E70 284100F0 */ slti $at, $v0, 0xf0 +/* 0489A4 7F013E74 54200004 */ bnezl $at, .L7F013E88 +/* 0489A8 7F013E78 284100AA */ slti $at, $v0, 0xaa +/* 0489AC 7F013E7C 10000006 */ b .L7F013E98 +/* 0489B0 7F013E80 24030002 */ li $v1, 2 +/* 0489B4 7F013E84 284100AA */ slti $at, $v0, 0xaa +.L7F013E88: +/* 0489B8 7F013E88 14200003 */ bnez $at, .L7F013E98 +/* 0489BC 7F013E8C 00001825 */ move $v1, $zero +/* 0489C0 7F013E90 10000001 */ b .L7F013E98 +/* 0489C4 7F013E94 24030001 */ li $v1, 1 +.L7F013E98: +/* 0489C8 7F013E98 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 0489CC 7F013E9C C428A908 */ lwc1 $f8, %lo(cursor_h_pos)($at) +/* 0489D0 7F013EA0 0003C880 */ sll $t9, $v1, 2 +/* 0489D4 7F013EA4 4600428D */ trunc.w.s $f10, $f8 +/* 0489D8 7F013EA8 44025000 */ mfc1 $v0, $f10 +/* 0489DC 7F013EAC 00000000 */ nop +/* 0489E0 7F013EB0 28410124 */ slti $at, $v0, 0x124 +/* 0489E4 7F013EB4 54200004 */ bnezl $at, .L7F013EC8 +/* 0489E8 7F013EB8 284100CF */ slti $at, $v0, 0xcf +/* 0489EC 7F013EBC 1000000B */ b .L7F013EEC +/* 0489F0 7F013EC0 24020003 */ li $v0, 3 +/* 0489F4 7F013EC4 284100CF */ slti $at, $v0, 0xcf +.L7F013EC8: +/* 0489F8 7F013EC8 54200004 */ bnezl $at, .L7F013EDC +/* 0489FC 7F013ECC 2841007A */ slti $at, $v0, 0x7a +/* 048A00 7F013ED0 10000006 */ b .L7F013EEC +/* 048A04 7F013ED4 24020002 */ li $v0, 2 +/* 048A08 7F013ED8 2841007A */ slti $at, $v0, 0x7a +.L7F013EDC: +/* 048A0C 7F013EDC 14200003 */ bnez $at, .L7F013EEC +/* 048A10 7F013EE0 00001025 */ move $v0, $zero +/* 048A14 7F013EE4 10000001 */ b .L7F013EEC +/* 048A18 7F013EE8 24020001 */ li $v0, 1 +.L7F013EEC: +/* 048A1C 7F013EEC 03222021 */ addu $a0, $t9, $v0 +/* 048A20 7F013EF0 0FC04034 */ jal check_if_mp_stage_unlocked +/* 048A24 7F013EF4 AE040000 */ sw $a0, ($s0) +/* 048A28 7F013EF8 14400007 */ bnez $v0, .L7F013F18 +/* 048A2C 7F013EFC 00000000 */ nop +/* 048A30 7F013F00 8E090000 */ lw $t1, ($s0) +.L7F013F04: +/* 048A34 7F013F04 2524FFFF */ addiu $a0, $t1, -1 +/* 048A38 7F013F08 0FC04034 */ jal check_if_mp_stage_unlocked +/* 048A3C 7F013F0C AE040000 */ sw $a0, ($s0) +/* 048A40 7F013F10 5040FFFC */ beql $v0, $zero, .L7F013F04 +/* 048A44 7F013F14 8E090000 */ lw $t1, ($s0) +.L7F013F18: +/* 048A48 7F013F18 3C108007 */ lui $s0, %hi(current_mp_stage_highlighted) +/* 048A4C 7F013F1C 2610977C */ addiu $s0, %lo(current_mp_stage_highlighted) # addiu $s0, $s0, -0x6884 +/* 048A50 7F013F20 00002025 */ move $a0, $zero +/* 048A54 7F013F24 0C0030EB */ jal get_controller_buttons_pressed +/* 048A58 7F013F28 3405B000 */ li $a1, 45056 +/* 048A5C 7F013F2C 10400015 */ beqz $v0, .L7F013F84 +/* 048A60 7F013F30 24030001 */ li $v1, 1 +/* 048A64 7F013F34 3C0B8003 */ lui $t3, %hi(tab_3_highlight) +/* 048A68 7F013F38 8D6BA8E4 */ lw $t3, %lo(tab_3_highlight)($t3) +/* 048A6C 7F013F3C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 048A70 7F013F40 240500C7 */ li $a1, 199 +/* 048A74 7F013F44 11600004 */ beqz $t3, .L7F013F58 +/* 048A78 7F013F48 00003025 */ move $a2, $zero +/* 048A7C 7F013F4C 3C018003 */ lui $at, %hi(tab_3_selected) +/* 048A80 7F013F50 10000008 */ b .L7F013F74 +/* 048A84 7F013F54 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +.L7F013F58: +/* 048A88 7F013F58 8E020000 */ lw $v0, ($s0) +/* 048A8C 7F013F5C 3C018003 */ lui $at, %hi(tab_2_selected) +/* 048A90 7F013F60 04400004 */ bltz $v0, .L7F013F74 +/* 048A94 7F013F64 00000000 */ nop +/* 048A98 7F013F68 AC23A8D4 */ sw $v1, %lo(tab_2_selected)($at) +/* 048A9C 7F013F6C 3C018003 */ lui $at, %hi(MP_stage_selected) +/* 048AA0 7F013F70 AC22B534 */ sw $v0, %lo(MP_stage_selected)($at) +.L7F013F74: +/* 048AA4 7F013F74 0C002382 */ jal play_sfx_a1 +/* 048AA8 7F013F78 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 048AAC 7F013F7C 1000000D */ b .L7F013FB4 +/* 048AB0 7F013F80 00000000 */ nop +.L7F013F84: +/* 048AB4 7F013F84 00002025 */ move $a0, $zero +/* 048AB8 7F013F88 0C0030EB */ jal get_controller_buttons_pressed +/* 048ABC 7F013F8C 24054000 */ li $a1, 16384 +/* 048AC0 7F013F90 10400008 */ beqz $v0, .L7F013FB4 +/* 048AC4 7F013F94 24030001 */ li $v1, 1 +/* 048AC8 7F013F98 3C018003 */ lui $at, %hi(tab_3_selected) +/* 048ACC 7F013F9C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 048AD0 7F013FA0 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +/* 048AD4 7F013FA4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 048AD8 7F013FA8 240500C7 */ li $a1, 199 +/* 048ADC 7F013FAC 0C002382 */ jal play_sfx_a1 +/* 048AE0 7F013FB0 00003025 */ move $a2, $zero +.L7F013FB4: +/* 048AE4 7F013FB4 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 048AE8 7F013FB8 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 048AEC 7F013FBC 0FC02DC9 */ jal disable_all_switches +/* 048AF0 7F013FC0 8E040000 */ lw $a0, ($s0) +/* 048AF4 7F013FC4 8E040000 */ lw $a0, ($s0) +/* 048AF8 7F013FC8 00002825 */ move $a1, $zero +/* 048AFC 7F013FCC 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 048B00 7F013FD0 24060001 */ li $a2, 1 +/* 048B04 7F013FD4 8E040000 */ lw $a0, ($s0) +/* 048B08 7F013FD8 2405002A */ li $a1, 42 +/* 048B0C 7F013FDC 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 048B10 7F013FE0 24060001 */ li $a2, 1 +/* 048B14 7F013FE4 8E040000 */ lw $a0, ($s0) +/* 048B18 7F013FE8 24050003 */ li $a1, 3 +/* 048B1C 7F013FEC 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 048B20 7F013FF0 24060001 */ li $a2, 1 +/* 048B24 7F013FF4 0FC026E1 */ jal menu_control_stick_tracking +/* 048B28 7F013FF8 00000000 */ nop +/* 048B2C 7F013FFC 3C0C8003 */ lui $t4, %hi(tab_2_selected) +/* 048B30 7F014000 8D8CA8D4 */ lw $t4, %lo(tab_2_selected)($t4) +/* 048B34 7F014004 2404000E */ li $a0, 14 +/* 048B38 7F014008 3C0D8003 */ lui $t5, %hi(tab_3_selected) +/* 048B3C 7F01400C 11800005 */ beqz $t4, .L7F014024 +/* 048B40 7F014010 00000000 */ nop +/* 048B44 7F014014 0FC06975 */ jal set_menu_to_mode +/* 048B48 7F014018 00002825 */ move $a1, $zero +/* 048B4C 7F01401C 10000008 */ b .L7F014040 +/* 048B50 7F014020 8FBF001C */ lw $ra, 0x1c($sp) +.L7F014024: +/* 048B54 7F014024 8DADA8D8 */ lw $t5, %lo(tab_3_selected)($t5) +/* 048B58 7F014028 2404000E */ li $a0, 14 +/* 048B5C 7F01402C 51A00004 */ beql $t5, $zero, .L7F014040 +/* 048B60 7F014030 8FBF001C */ lw $ra, 0x1c($sp) +/* 048B64 7F014034 0FC06975 */ jal set_menu_to_mode +/* 048B68 7F014038 00002825 */ move $a1, $zero +/* 048B6C 7F01403C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F014040: +/* 048B70 7F014040 8FB00018 */ lw $s0, 0x18($sp) +/* 048B74 7F014044 27BD0020 */ addiu $sp, $sp, 0x20 +/* 048B78 7F014048 03E00008 */ jr $ra +/* 048B7C 7F01404C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu12_mpstage(s32 arg0) +{ + s32 sp130; + s32 sp12C; + s32 sp128; + s32 sp124; + f32 sp104; + f32 sp100; + f32 spF8; + f32 spDC; + f32 spD8; + f32 spD4; + f32 spD0; + s32 spB4; + s32 sp9C; + s32 sp90; + s32 temp_a2; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_ret_3; + s32 temp_ret_4; + s32 temp_ret_5; + s32 temp_ret_6; + s32 temp_ret_7; + s32 temp_s0; + s32 temp_s1; + s32 temp_s1_2; + s32 temp_s2; + s32 temp_s4_3; + s32 temp_s5_2; + s32 temp_s7; + s32 temp_t1; + s32 temp_t4; + s32 temp_t5; + s32 temp_t7; + s32 temp_t9; + s32 temp_v0; + s32 temp_v0_2; + s32 temp_v0_3; + s32 temp_v0_4; + void *temp_s0_2; + void *temp_s0_3; + void *temp_s3; + void *temp_s3_2; + void *temp_s4; + void *temp_s4_2; + void *temp_s5; + s32 phi_s1; + s32 phi_s0; + s32 phi_s1_2; + s32 phi_s1_3; + s32 phi_s2; + s32 phi_s5; + s32 phi_s6; + s32 phi_s2_2; + s32 phi_s7; + + temp_ret = set_setfillcolor(0, 0, 0); + arg0 = temp_ret; + temp_ret_2 = insert_generic_fillrect(temp_ret); + arg0 = temp_ret_2; + temp_ret_3 = sub_GAME_7F00D5E8(temp_ret_2); + arg0 = temp_ret_3; + arg0 = microcode_constructor(temp_ret_3); + phi_s1 = 0x6c; + phi_s0 = 0xa0; +loop_1: + temp_ret_4 = microcode_constructor_related_to_menus(arg0, 0x25, phi_s1, 0x185); + temp_s0 = phi_s0 + 0x46; + arg0 = temp_ret_4; + temp_v0 = temp_ret_4; + phi_s1 = phi_s1 + 0x46; + phi_s0 = temp_s0; + if (temp_s0 != 0x172) + { + goto loop_1; + } + temp_ret_5 = combiner_bayer_lod_perspective(temp_v0); + arg0 = (s32) (temp_ret_5 + 8); + temp_v0_2 = temp_ret_5; + temp_v0_2->unk0 = 0xba000c02; + temp_v0_2->unk4 = 0; + temp_s3 = &arg0; + temp_s0_2 = mainfolderimages + 0x3c; + likely_generate_DL_for_image_declaration(temp_s3, temp_s0_2, 1, 0, 2); + sp100 = (f32) (176.0f + 37.0f); + sp104 = (f32) (4.0f + 100.0f); + temp_s4 = &spF8; + spF8 = 176.0f; + phi_s1_2 = 0; +loop_3: + display_image_at_on_screen_coord(temp_s3, &sp100, temp_s4, 0x2f0, 0x12, 0, 0, 1, 0x6b, 0x67, 0x53, 0xff, (s32) (0 < temp_s0_2->unk6), 0); + sp104 = (f32) (sp104 + 60.0f); + display_image_at_on_screen_coord(temp_s3, &sp100, temp_s4, 0x2f0, 0x12, 0, 0, 1, 0x6b, 0x67, 0x53, 0xff, (s32) (0 < temp_s0_2->unk6), 0); + temp_s1 = phi_s1_2 + 1; + sp104 = (f32) ((sp104 - 60.0f) + 70.0f); + phi_s1_2 = temp_s1; + if (temp_s1 != 3) + { + goto loop_3; + } + spB4 = 0; + spDC = (f32) ((22.0f + 108.0f) + 4.0f); + temp_s5 = &spD0; + temp_s4_2 = &spD8; + spD0 = 34.0f; + spD4 = 22.0f; + phi_s1_3 = 0; +loop_5: + spD8 = 86.0f; + phi_s2 = 0; +loop_6: + if (phi_s1_3 < 0xc) + { + temp_s0_3 = ((&multi_stage_setups + (phi_s1_3 * 0x18))->unk4 * 0xc) + mpstageselimages; + likely_generate_DL_for_image_declaration(temp_s3, temp_s0_3, 1, 0, 2); + temp_t5 = arg0; + if (phi_s1_3 == current_mp_stage_highlighted) + { + arg0 = (s32) (temp_t5 + 8); + temp_t5->unk4 = 0x100000; + temp_t5->unk0 = 0xba001402; + temp_t9 = arg0; + arg0 = (s32) (temp_t9 + 8); + temp_t9->unk4 = -0xf6; + temp_t9->unk0 = 0xf8000000; + temp_t4 = arg0; + arg0 = (s32) (temp_t4 + 8); + temp_t4->unk4 = 0xc4112048; + temp_t4->unk0 = 0xb900031d; + display_image_at_on_screen_coord(temp_s3, temp_s4_2, temp_s5, 0x44, 0x2c, 0, 0, 1, 0xff, 0xff, 0xff, 0xff, (s32) (0 < temp_s0_3->unk6), 1); + } + else + { + if (check_if_mp_stage_unlocked(phi_s1_3) != 0) + { + display_image_at_on_screen_coord(temp_s3, temp_s4_2, temp_s5, 0x44, 0x2c, 0, 0, 1, 0x6e, 0x6e, 0x6e, 0xff, (s32) (0 < temp_s0_3->unk6), 0); + } + else + { + display_image_at_on_screen_coord(temp_s3, temp_s4_2, temp_s5, 0x44, 0x2c, 0, 0, 1, 0xf, 0xf, 0xf, 0xff, (s32) (0 < temp_s0_3->unk6), 0); +block_12: + } + } + } + else + { + goto block_12; + } + temp_s2 = phi_s2 + 1; + temp_s1_2 = phi_s1_3 + 1; + spD8 = (f32) (spD8 + 85.0f); + phi_s1_3 = temp_s1_2; + phi_s2 = temp_s2; + if (temp_s2 != 4) + { + goto loop_6; + } + temp_t7 = spB4 + 1; + spB4 = temp_t7; + spDC = (f32) (spDC + 70.0f); + phi_s1_3 = temp_s1_2; + if (temp_t7 != 3) + { + goto loop_5; + } + arg0 = microcode_constructor(arg0); + sp90 = 0x97; + sp9C = 0; + phi_s5 = 0; +loop_16: + phi_s6 = 0x56; + phi_s7 = 0; +loop_17: + if (phi_s5 < 0xc) + { + if (check_if_mp_stage_unlocked(phi_s5) != 0) + { + temp_s3_2 = (((phi_s5 * 4) - phi_s5) * 8) + &multi_stage_setups; + phi_s2_2 = 0x96969600; + if (phi_s5 == current_mp_stage_highlighted) + { + phi_s2_2 = -0x100; + } + sub_GAME_7F0AE98C(&sp128, &sp124, get_textptr_for_textID(temp_s3_2->unk2), subroutine_arg0, (s32) ptrFirstFontTableSmall, 0); + temp_s4_3 = phi_s6 + -0x1f; + temp_a2 = sp90 - sp128; + arg0 = microcode_constructor_related_to_menus(arg0, temp_s4_3, temp_a2, temp_s4_3 + sp124, (s32) (temp_a2 + sp128), 0); + get_video2_settings_txtClipW(); + arg0 = en_text_write_stuff(arg0, &sp130, &sp12C, get_textptr_for_textID(temp_s3_2->unk2), (s32) subroutine_arg0, (s32) ptrFirstFontTableSmall, (s32) (phi_s2_2 | 0xff), get_video2_settings_txtClipH(), 0, 0); + get_video2_settings_txtClipW(); + arg0 = en_text_write_stuff(arg0, &sp130, &sp12C, get_textptr_for_textID(temp_s3_2->unk2, sp90 - sp128), (s32) subroutine_arg0, (s32) ptrFirstFontTableSmall, (s32) (phi_s2_2 | 0x64), get_video2_settings_txtClipH(), 0, 0); + } + } + temp_s7 = phi_s7 + 1; + temp_s5_2 = phi_s5 + 1; + phi_s5 = temp_s5_2; + phi_s6 = phi_s6 + 0x55; + phi_s7 = temp_s7; + if (temp_s7 != 4) + { + goto loop_17; + } + temp_t1 = sp9C + 1; + sp9C = temp_t1; + sp90 = (s32) (sp90 + 0x46); + phi_s5 = temp_s5_2; + if (temp_t1 != 3) + { + goto loop_16; + } + temp_ret_6 = microcode_constructor(arg0); + arg0 = temp_ret_6; + temp_v0_3 = temp_ret_6; + temp_ret_7 = add_tab3_previous(temp_v0_3); + arg0 = temp_ret_7; + temp_v0_4 = temp_ret_7; + load_draw_selected_icon_folder_select(temp_v0_4); +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu12_mpstage +/* 048B80 7F014050 27BDFEC8 */ addiu $sp, $sp, -0x138 +/* 048B84 7F014054 AFBF0074 */ sw $ra, 0x74($sp) +/* 048B88 7F014058 AFBE0070 */ sw $fp, 0x70($sp) +/* 048B8C 7F01405C AFB7006C */ sw $s7, 0x6c($sp) +/* 048B90 7F014060 AFB60068 */ sw $s6, 0x68($sp) +/* 048B94 7F014064 AFB50064 */ sw $s5, 0x64($sp) +/* 048B98 7F014068 AFB40060 */ sw $s4, 0x60($sp) +/* 048B9C 7F01406C AFB3005C */ sw $s3, 0x5c($sp) +/* 048BA0 7F014070 AFB20058 */ sw $s2, 0x58($sp) +/* 048BA4 7F014074 AFB10054 */ sw $s1, 0x54($sp) +/* 048BA8 7F014078 AFB00050 */ sw $s0, 0x50($sp) +/* 048BAC 7F01407C F7B60048 */ sdc1 $f22, 0x48($sp) +/* 048BB0 7F014080 F7B40040 */ sdc1 $f20, 0x40($sp) +/* 048BB4 7F014084 AFA40138 */ sw $a0, 0x138($sp) +/* 048BB8 7F014088 00002825 */ move $a1, $zero +/* 048BBC 7F01408C 00003025 */ move $a2, $zero +/* 048BC0 7F014090 0C0011B4 */ jal set_setfillcolor +/* 048BC4 7F014094 00003825 */ move $a3, $zero +/* 048BC8 7F014098 AFA20138 */ sw $v0, 0x138($sp) +/* 048BCC 7F01409C 0C000FBE */ jal insert_generic_fillrect +/* 048BD0 7F0140A0 00402025 */ move $a0, $v0 +/* 048BD4 7F0140A4 AFA20138 */ sw $v0, 0x138($sp) +/* 048BD8 7F0140A8 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 048BDC 7F0140AC 00402025 */ move $a0, $v0 +/* 048BE0 7F0140B0 AFA20138 */ sw $v0, 0x138($sp) +/* 048BE4 7F0140B4 0FC2B366 */ jal microcode_constructor +/* 048BE8 7F0140B8 00402025 */ move $a0, $v0 +/* 048BEC 7F0140BC 3C121010 */ lui $s2, (0x101010FF >> 16) # lui $s2, 0x1010 +/* 048BF0 7F0140C0 AFA20138 */ sw $v0, 0x138($sp) +/* 048BF4 7F0140C4 365210FF */ ori $s2, (0x101010FF & 0xFFFF) # ori $s2, $s2, 0x10ff +/* 048BF8 7F0140C8 2411006C */ li $s1, 108 +/* 048BFC 7F0140CC 241000A0 */ li $s0, 160 +/* 048C00 7F0140D0 24130172 */ li $s3, 370 +.L7F0140D4: +/* 048C04 7F0140D4 8FA40138 */ lw $a0, 0x138($sp) +/* 048C08 7F0140D8 24050025 */ li $a1, 37 +/* 048C0C 7F0140DC 02203025 */ move $a2, $s1 +/* 048C10 7F0140E0 24070185 */ li $a3, 389 +/* 048C14 7F0140E4 AFB00010 */ sw $s0, 0x10($sp) +/* 048C18 7F0140E8 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 048C1C 7F0140EC AFB20014 */ sw $s2, 0x14($sp) +/* 048C20 7F0140F0 26100046 */ addiu $s0, $s0, 0x46 +/* 048C24 7F0140F4 26310046 */ addiu $s1, $s1, 0x46 +/* 048C28 7F0140F8 1613FFF6 */ bne $s0, $s3, .L7F0140D4 +/* 048C2C 7F0140FC AFA20138 */ sw $v0, 0x138($sp) +/* 048C30 7F014100 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 048C34 7F014104 00402025 */ move $a0, $v0 +/* 048C38 7F014108 244E0008 */ addiu $t6, $v0, 8 +/* 048C3C 7F01410C AFAE0138 */ sw $t6, 0x138($sp) +/* 048C40 7F014110 3C0FBA00 */ lui $t7, (0xBA000C02 >> 16) # lui $t7, 0xba00 +/* 048C44 7F014114 35EF0C02 */ ori $t7, (0xBA000C02 & 0xFFFF) # ori $t7, $t7, 0xc02 +/* 048C48 7F014118 AC4F0000 */ sw $t7, ($v0) +/* 048C4C 7F01411C AC400004 */ sw $zero, 4($v0) +/* 048C50 7F014120 3C108009 */ lui $s0, %hi(mainfolderimages) +/* 048C54 7F014124 8E10D128 */ lw $s0, %lo(mainfolderimages)($s0) +/* 048C58 7F014128 27B30138 */ addiu $s3, $sp, 0x138 +/* 048C5C 7F01412C 24180002 */ li $t8, 2 +/* 048C60 7F014130 2610003C */ addiu $s0, $s0, 0x3c +/* 048C64 7F014134 02002825 */ move $a1, $s0 +/* 048C68 7F014138 AFB80010 */ sw $t8, 0x10($sp) +/* 048C6C 7F01413C 02602025 */ move $a0, $s3 +/* 048C70 7F014140 24060001 */ li $a2, 1 +/* 048C74 7F014144 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 048C78 7F014148 00003825 */ move $a3, $zero +/* 048C7C 7F01414C 3C014330 */ li $at, 0x43300000 # 176.000000 +/* 048C80 7F014150 44811000 */ mtc1 $at, $f2 +/* 048C84 7F014154 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 048C88 7F014158 44816000 */ mtc1 $at, $f12 +/* 048C8C 7F01415C 3C014214 */ li $at, 0x42140000 # 37.000000 +/* 048C90 7F014160 44812000 */ mtc1 $at, $f4 +/* 048C94 7F014164 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 048C98 7F014168 44814000 */ mtc1 $at, $f8 +/* 048C9C 7F01416C 46041180 */ add.s $f6, $f2, $f4 +/* 048CA0 7F014170 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 048CA4 7F014174 4481B000 */ mtc1 $at, $f22 +/* 048CA8 7F014178 46086000 */ add.s $f0, $f12, $f8 +/* 048CAC 7F01417C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 048CB0 7F014180 4481A000 */ mtc1 $at, $f20 +/* 048CB4 7F014184 E7A60100 */ swc1 $f6, 0x100($sp) +/* 048CB8 7F014188 E7A00104 */ swc1 $f0, 0x104($sp) +/* 048CBC 7F01418C 00008825 */ move $s1, $zero +/* 048CC0 7F014190 27B400F8 */ addiu $s4, $sp, 0xf8 +/* 048CC4 7F014194 27B20100 */ addiu $s2, $sp, 0x100 +/* 048CC8 7F014198 E7A200F8 */ swc1 $f2, 0xf8($sp) +/* 048CCC 7F01419C E7AC00FC */ swc1 $f12, 0xfc($sp) +.L7F0141A0: +/* 048CD0 7F0141A0 24190012 */ li $t9, 18 +/* 048CD4 7F0141A4 24090001 */ li $t1, 1 +/* 048CD8 7F0141A8 240A006B */ li $t2, 107 +/* 048CDC 7F0141AC 240B0067 */ li $t3, 103 +/* 048CE0 7F0141B0 240C0053 */ li $t4, 83 +/* 048CE4 7F0141B4 240D00FF */ li $t5, 255 +/* 048CE8 7F0141B8 AFAD002C */ sw $t5, 0x2c($sp) +/* 048CEC 7F0141BC AFAC0028 */ sw $t4, 0x28($sp) +/* 048CF0 7F0141C0 AFAB0024 */ sw $t3, 0x24($sp) +/* 048CF4 7F0141C4 AFAA0020 */ sw $t2, 0x20($sp) +/* 048CF8 7F0141C8 AFA9001C */ sw $t1, 0x1c($sp) +/* 048CFC 7F0141CC AFB90010 */ sw $t9, 0x10($sp) +/* 048D00 7F0141D0 AFA00014 */ sw $zero, 0x14($sp) +/* 048D04 7F0141D4 AFA00018 */ sw $zero, 0x18($sp) +/* 048D08 7F0141D8 920E0006 */ lbu $t6, 6($s0) +/* 048D0C 7F0141DC AFA00034 */ sw $zero, 0x34($sp) +/* 048D10 7F0141E0 02602025 */ move $a0, $s3 +/* 048D14 7F0141E4 000E782A */ slt $t7, $zero, $t6 +/* 048D18 7F0141E8 AFAF0030 */ sw $t7, 0x30($sp) +/* 048D1C 7F0141EC 02402825 */ move $a1, $s2 +/* 048D20 7F0141F0 02803025 */ move $a2, $s4 +/* 048D24 7F0141F4 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 048D28 7F0141F8 240702F0 */ li $a3, 752 +/* 048D2C 7F0141FC C7AA0104 */ lwc1 $f10, 0x104($sp) +/* 048D30 7F014200 24180012 */ li $t8, 18 +/* 048D34 7F014204 24190001 */ li $t9, 1 +/* 048D38 7F014208 46145400 */ add.s $f16, $f10, $f20 +/* 048D3C 7F01420C 2409006B */ li $t1, 107 +/* 048D40 7F014210 240A0067 */ li $t2, 103 +/* 048D44 7F014214 240B0053 */ li $t3, 83 +/* 048D48 7F014218 240C00FF */ li $t4, 255 +/* 048D4C 7F01421C E7B00104 */ swc1 $f16, 0x104($sp) +/* 048D50 7F014220 AFAC002C */ sw $t4, 0x2c($sp) +/* 048D54 7F014224 AFAB0028 */ sw $t3, 0x28($sp) +/* 048D58 7F014228 AFAA0024 */ sw $t2, 0x24($sp) +/* 048D5C 7F01422C AFA90020 */ sw $t1, 0x20($sp) +/* 048D60 7F014230 AFB9001C */ sw $t9, 0x1c($sp) +/* 048D64 7F014234 AFB80010 */ sw $t8, 0x10($sp) +/* 048D68 7F014238 AFA00014 */ sw $zero, 0x14($sp) +/* 048D6C 7F01423C AFA00018 */ sw $zero, 0x18($sp) +/* 048D70 7F014240 920D0006 */ lbu $t5, 6($s0) +/* 048D74 7F014244 AFA00034 */ sw $zero, 0x34($sp) +/* 048D78 7F014248 02602025 */ move $a0, $s3 +/* 048D7C 7F01424C 000D702A */ slt $t6, $zero, $t5 +/* 048D80 7F014250 AFAE0030 */ sw $t6, 0x30($sp) +/* 048D84 7F014254 02402825 */ move $a1, $s2 +/* 048D88 7F014258 02803025 */ move $a2, $s4 +/* 048D8C 7F01425C 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 048D90 7F014260 240702F0 */ li $a3, 752 +/* 048D94 7F014264 C7A00104 */ lwc1 $f0, 0x104($sp) +/* 048D98 7F014268 26310001 */ addiu $s1, $s1, 1 +/* 048D9C 7F01426C 24010003 */ li $at, 3 +/* 048DA0 7F014270 46140001 */ sub.s $f0, $f0, $f20 +/* 048DA4 7F014274 46160000 */ add.s $f0, $f0, $f22 +/* 048DA8 7F014278 1621FFC9 */ bne $s1, $at, .L7F0141A0 +/* 048DAC 7F01427C E7A00104 */ swc1 $f0, 0x104($sp) +/* 048DB0 7F014280 3C014208 */ li $at, 0x42080000 # 34.000000 +/* 048DB4 7F014284 44819000 */ mtc1 $at, $f18 +/* 048DB8 7F014288 3C0141B0 */ li $at, 0x41B00000 # 22.000000 +/* 048DBC 7F01428C 44810000 */ mtc1 $at, $f0 +/* 048DC0 7F014290 3C0142D8 */ li $at, 0x42D80000 # 108.000000 +/* 048DC4 7F014294 44812000 */ mtc1 $at, $f4 +/* 048DC8 7F014298 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 048DCC 7F01429C 44814000 */ mtc1 $at, $f8 +/* 048DD0 7F0142A0 46040180 */ add.s $f6, $f0, $f4 +/* 048DD4 7F0142A4 3C0142AA */ li $at, 0x42AA0000 # 85.000000 +/* 048DD8 7F0142A8 3C168003 */ lui $s6, %hi(multi_stage_setups) +/* 048DDC 7F0142AC 4481A000 */ mtc1 $at, $f20 +/* 048DE0 7F0142B0 46083280 */ add.s $f10, $f6, $f8 +/* 048DE4 7F0142B4 00008825 */ move $s1, $zero +/* 048DE8 7F0142B8 26D6B074 */ addiu $s6, %lo(multi_stage_setups) # addiu $s6, $s6, -0x4f8c +/* 048DEC 7F0142BC AFA000B4 */ sw $zero, 0xb4($sp) +/* 048DF0 7F0142C0 E7AA00DC */ swc1 $f10, 0xdc($sp) +/* 048DF4 7F0142C4 241E000C */ li $fp, 12 +/* 048DF8 7F0142C8 24170018 */ li $s7, 24 +/* 048DFC 7F0142CC 27B500D0 */ addiu $s5, $sp, 0xd0 +/* 048E00 7F0142D0 27B400D8 */ addiu $s4, $sp, 0xd8 +/* 048E04 7F0142D4 E7B200D0 */ swc1 $f18, 0xd0($sp) +/* 048E08 7F0142D8 E7A000D4 */ swc1 $f0, 0xd4($sp) +.L7F0142DC: +/* 048E0C 7F0142DC 3C0142AC */ li $at, 0x42AC0000 # 86.000000 +/* 048E10 7F0142E0 44818000 */ mtc1 $at, $f16 +/* 048E14 7F0142E4 00009025 */ move $s2, $zero +/* 048E18 7F0142E8 E7B000D8 */ swc1 $f16, 0xd8($sp) +.L7F0142EC: +/* 048E1C 7F0142EC 2A21000C */ slti $at, $s1, 0xc +/* 048E20 7F0142F0 5020007A */ beql $at, $zero, .L7F0144DC +/* 048E24 7F0142F4 C7B200D8 */ lwc1 $f18, 0xd8($sp) +/* 048E28 7F0142F8 02370019 */ multu $s1, $s7 +/* 048E2C 7F0142FC 3C0A8009 */ lui $t2, %hi(mpstageselimages) +/* 048E30 7F014300 8D4AD134 */ lw $t2, %lo(mpstageselimages)($t2) +/* 048E34 7F014304 240B0002 */ li $t3, 2 +/* 048E38 7F014308 02602025 */ move $a0, $s3 +/* 048E3C 7F01430C 24060001 */ li $a2, 1 +/* 048E40 7F014310 00003825 */ move $a3, $zero +/* 048E44 7F014314 00007812 */ mflo $t7 +/* 048E48 7F014318 02CFC021 */ addu $t8, $s6, $t7 +/* 048E4C 7F01431C 8F190004 */ lw $t9, 4($t8) +/* 048E50 7F014320 AFAB0010 */ sw $t3, 0x10($sp) +/* 048E54 7F014324 033E0019 */ multu $t9, $fp +/* 048E58 7F014328 00004812 */ mflo $t1 +/* 048E5C 7F01432C 012A8021 */ addu $s0, $t1, $t2 +/* 048E60 7F014330 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 048E64 7F014334 02002825 */ move $a1, $s0 +/* 048E68 7F014338 3C0C8007 */ lui $t4, %hi(current_mp_stage_highlighted) +/* 048E6C 7F01433C 8D8C977C */ lw $t4, %lo(current_mp_stage_highlighted)($t4) +/* 048E70 7F014340 8FAD0138 */ lw $t5, 0x138($sp) +/* 048E74 7F014344 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00 +/* 048E78 7F014348 162C0030 */ bne $s1, $t4, .L7F01440C +/* 048E7C 7F01434C 25AE0008 */ addiu $t6, $t5, 8 +/* 048E80 7F014350 AFAE0138 */ sw $t6, 0x138($sp) +/* 048E84 7F014354 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402 +/* 048E88 7F014358 3C180010 */ lui $t8, 0x10 +/* 048E8C 7F01435C ADB80004 */ sw $t8, 4($t5) +/* 048E90 7F014360 ADAF0000 */ sw $t7, ($t5) +/* 048E94 7F014364 8FB90138 */ lw $t9, 0x138($sp) +/* 048E98 7F014368 3C0AF800 */ lui $t2, 0xf800 +/* 048E9C 7F01436C 240BFF0A */ li $t3, -246 +/* 048EA0 7F014370 27290008 */ addiu $t1, $t9, 8 +/* 048EA4 7F014374 AFA90138 */ sw $t1, 0x138($sp) +/* 048EA8 7F014378 AF2B0004 */ sw $t3, 4($t9) +/* 048EAC 7F01437C AF2A0000 */ sw $t2, ($t9) +/* 048EB0 7F014380 8FAC0138 */ lw $t4, 0x138($sp) +/* 048EB4 7F014384 3C0FC411 */ lui $t7, (0xC4112048 >> 16) # lui $t7, 0xc411 +/* 048EB8 7F014388 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 048EBC 7F01438C 258D0008 */ addiu $t5, $t4, 8 +/* 048EC0 7F014390 AFAD0138 */ sw $t5, 0x138($sp) +/* 048EC4 7F014394 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 048EC8 7F014398 35EF2048 */ ori $t7, (0xC4112048 & 0xFFFF) # ori $t7, $t7, 0x2048 +/* 048ECC 7F01439C AD8F0004 */ sw $t7, 4($t4) +/* 048ED0 7F0143A0 AD8E0000 */ sw $t6, ($t4) +/* 048ED4 7F0143A4 240C00FF */ li $t4, 255 +/* 048ED8 7F0143A8 240A00FF */ li $t2, 255 +/* 048EDC 7F0143AC 24190001 */ li $t9, 1 +/* 048EE0 7F0143B0 240B00FF */ li $t3, 255 +/* 048EE4 7F0143B4 240900FF */ li $t1, 255 +/* 048EE8 7F0143B8 2418002C */ li $t8, 44 +/* 048EEC 7F0143BC AFB80010 */ sw $t8, 0x10($sp) +/* 048EF0 7F0143C0 AFA90020 */ sw $t1, 0x20($sp) +/* 048EF4 7F0143C4 AFAB0028 */ sw $t3, 0x28($sp) +/* 048EF8 7F0143C8 AFB9001C */ sw $t9, 0x1c($sp) +/* 048EFC 7F0143CC AFAA0024 */ sw $t2, 0x24($sp) +/* 048F00 7F0143D0 AFAC002C */ sw $t4, 0x2c($sp) +/* 048F04 7F0143D4 AFA00018 */ sw $zero, 0x18($sp) +/* 048F08 7F0143D8 AFA00014 */ sw $zero, 0x14($sp) +/* 048F0C 7F0143DC 920D0006 */ lbu $t5, 6($s0) +/* 048F10 7F0143E0 240F0001 */ li $t7, 1 +/* 048F14 7F0143E4 AFAF0034 */ sw $t7, 0x34($sp) +/* 048F18 7F0143E8 000D702A */ slt $t6, $zero, $t5 +/* 048F1C 7F0143EC AFAE0030 */ sw $t6, 0x30($sp) +/* 048F20 7F0143F0 02602025 */ move $a0, $s3 +/* 048F24 7F0143F4 02802825 */ move $a1, $s4 +/* 048F28 7F0143F8 02A03025 */ move $a2, $s5 +/* 048F2C 7F0143FC 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 048F30 7F014400 24070044 */ li $a3, 68 +/* 048F34 7F014404 10000035 */ b .L7F0144DC +/* 048F38 7F014408 C7B200D8 */ lwc1 $f18, 0xd8($sp) +.L7F01440C: +/* 048F3C 7F01440C 0FC04034 */ jal check_if_mp_stage_unlocked +/* 048F40 7F014410 02202025 */ move $a0, $s1 +/* 048F44 7F014414 1040001A */ beqz $v0, .L7F014480 +/* 048F48 7F014418 02602025 */ move $a0, $s3 +/* 048F4C 7F01441C 2418002C */ li $t8, 44 +/* 048F50 7F014420 24190001 */ li $t9, 1 +/* 048F54 7F014424 2409006E */ li $t1, 110 +/* 048F58 7F014428 240A006E */ li $t2, 110 +/* 048F5C 7F01442C 240B006E */ li $t3, 110 +/* 048F60 7F014430 240C00FF */ li $t4, 255 +/* 048F64 7F014434 AFAC002C */ sw $t4, 0x2c($sp) +/* 048F68 7F014438 AFAB0028 */ sw $t3, 0x28($sp) +/* 048F6C 7F01443C AFAA0024 */ sw $t2, 0x24($sp) +/* 048F70 7F014440 AFA90020 */ sw $t1, 0x20($sp) +/* 048F74 7F014444 AFB9001C */ sw $t9, 0x1c($sp) +/* 048F78 7F014448 AFB80010 */ sw $t8, 0x10($sp) +/* 048F7C 7F01444C AFA00014 */ sw $zero, 0x14($sp) +/* 048F80 7F014450 AFA00018 */ sw $zero, 0x18($sp) +/* 048F84 7F014454 920D0006 */ lbu $t5, 6($s0) +/* 048F88 7F014458 AFA00034 */ sw $zero, 0x34($sp) +/* 048F8C 7F01445C 02602025 */ move $a0, $s3 +/* 048F90 7F014460 000D702A */ slt $t6, $zero, $t5 +/* 048F94 7F014464 AFAE0030 */ sw $t6, 0x30($sp) +/* 048F98 7F014468 02802825 */ move $a1, $s4 +/* 048F9C 7F01446C 02A03025 */ move $a2, $s5 +/* 048FA0 7F014470 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 048FA4 7F014474 24070044 */ li $a3, 68 +/* 048FA8 7F014478 10000018 */ b .L7F0144DC +/* 048FAC 7F01447C C7B200D8 */ lwc1 $f18, 0xd8($sp) +.L7F014480: +/* 048FB0 7F014480 240F002C */ li $t7, 44 +/* 048FB4 7F014484 24180001 */ li $t8, 1 +/* 048FB8 7F014488 2419000F */ li $t9, 15 +/* 048FBC 7F01448C 2409000F */ li $t1, 15 +/* 048FC0 7F014490 240A000F */ li $t2, 15 +/* 048FC4 7F014494 240B00FF */ li $t3, 255 +/* 048FC8 7F014498 AFAB002C */ sw $t3, 0x2c($sp) +/* 048FCC 7F01449C AFAA0028 */ sw $t2, 0x28($sp) +/* 048FD0 7F0144A0 AFA90024 */ sw $t1, 0x24($sp) +/* 048FD4 7F0144A4 AFB90020 */ sw $t9, 0x20($sp) +/* 048FD8 7F0144A8 AFB8001C */ sw $t8, 0x1c($sp) +/* 048FDC 7F0144AC AFAF0010 */ sw $t7, 0x10($sp) +/* 048FE0 7F0144B0 AFA00014 */ sw $zero, 0x14($sp) +/* 048FE4 7F0144B4 AFA00018 */ sw $zero, 0x18($sp) +/* 048FE8 7F0144B8 920C0006 */ lbu $t4, 6($s0) +/* 048FEC 7F0144BC AFA00034 */ sw $zero, 0x34($sp) +/* 048FF0 7F0144C0 02802825 */ move $a1, $s4 +/* 048FF4 7F0144C4 000C682A */ slt $t5, $zero, $t4 +/* 048FF8 7F0144C8 AFAD0030 */ sw $t5, 0x30($sp) +/* 048FFC 7F0144CC 02A03025 */ move $a2, $s5 +/* 049000 7F0144D0 0FC1ABFA */ jal display_image_at_on_screen_coord +/* 049004 7F0144D4 24070044 */ li $a3, 68 +/* 049008 7F0144D8 C7B200D8 */ lwc1 $f18, 0xd8($sp) +.L7F0144DC: +/* 04900C 7F0144DC 26520001 */ addiu $s2, $s2, 1 +/* 049010 7F0144E0 24010004 */ li $at, 4 +/* 049014 7F0144E4 46149100 */ add.s $f4, $f18, $f20 +/* 049018 7F0144E8 26310001 */ addiu $s1, $s1, 1 +/* 04901C 7F0144EC 1641FF7F */ bne $s2, $at, .L7F0142EC +/* 049020 7F0144F0 E7A400D8 */ swc1 $f4, 0xd8($sp) +/* 049024 7F0144F4 C7A600DC */ lwc1 $f6, 0xdc($sp) +/* 049028 7F0144F8 8FAE00B4 */ lw $t6, 0xb4($sp) +/* 04902C 7F0144FC 24010003 */ li $at, 3 +/* 049030 7F014500 46163200 */ add.s $f8, $f6, $f22 +/* 049034 7F014504 25CF0001 */ addiu $t7, $t6, 1 +/* 049038 7F014508 AFAF00B4 */ sw $t7, 0xb4($sp) +/* 04903C 7F01450C 15E1FF73 */ bne $t7, $at, .L7F0142DC +/* 049040 7F014510 E7A800DC */ swc1 $f8, 0xdc($sp) +/* 049044 7F014514 0FC2B366 */ jal microcode_constructor +/* 049048 7F014518 8FA40138 */ lw $a0, 0x138($sp) +/* 04904C 7F01451C 24180097 */ li $t8, 151 +/* 049050 7F014520 3C1E8004 */ lui $fp, %hi(ptrSecondFontTableSmall) +/* 049054 7F014524 AFA20138 */ sw $v0, 0x138($sp) +/* 049058 7F014528 0000A825 */ move $s5, $zero +/* 04905C 7F01452C AFB80090 */ sw $t8, 0x90($sp) +/* 049060 7F014530 27DE0EB0 */ addiu $fp, %lo(ptrSecondFontTableSmall) # addiu $fp, $fp, 0xeb0 +/* 049064 7F014534 AFA0009C */ sw $zero, 0x9c($sp) +.L7F014538: +/* 049068 7F014538 24160056 */ li $s6, 86 +/* 04906C 7F01453C 0000B825 */ move $s7, $zero +.L7F014540: +/* 049070 7F014540 2AA1000C */ slti $at, $s5, 0xc +/* 049074 7F014544 50200062 */ beql $at, $zero, .L7F0146D0 +/* 049078 7F014548 26F70001 */ addiu $s7, $s7, 1 +/* 04907C 7F01454C 0FC04034 */ jal check_if_mp_stage_unlocked +/* 049080 7F014550 02A02025 */ move $a0, $s5 +/* 049084 7F014554 1040005D */ beqz $v0, .L7F0146CC +/* 049088 7F014558 3C129696 */ lui $s2, (0x96969600 >> 16) # lui $s2, 0x9696 +/* 04908C 7F01455C 3C0A8007 */ lui $t2, %hi(current_mp_stage_highlighted) +/* 049090 7F014560 8D4A977C */ lw $t2, %lo(current_mp_stage_highlighted)($t2) +/* 049094 7F014564 0015C880 */ sll $t9, $s5, 2 +/* 049098 7F014568 0335C823 */ subu $t9, $t9, $s5 +/* 04909C 7F01456C 3C098003 */ lui $t1, %hi(multi_stage_setups) +/* 0490A0 7F014570 2529B074 */ addiu $t1, %lo(multi_stage_setups) # addiu $t1, $t1, -0x4f8c +/* 0490A4 7F014574 0019C8C0 */ sll $t9, $t9, 3 +/* 0490A8 7F014578 36529600 */ ori $s2, (0x96969600 & 0xFFFF) # ori $s2, $s2, 0x9600 +/* 0490AC 7F01457C 16AA0002 */ bne $s5, $t2, .L7F014588 +/* 0490B0 7F014580 03299821 */ addu $s3, $t9, $t1 +/* 0490B4 7F014584 2412FF00 */ li $s2, -256 +.L7F014588: +/* 0490B8 7F014588 0FC30776 */ jal get_textptr_for_textID +/* 0490BC 7F01458C 96640002 */ lhu $a0, 2($s3) +/* 0490C0 7F014590 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) +/* 0490C4 7F014594 8D6B0EAC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0490C8 7F014598 27A40128 */ addiu $a0, $sp, 0x128 +/* 0490CC 7F01459C 27A50124 */ addiu $a1, $sp, 0x124 +/* 0490D0 7F0145A0 00403025 */ move $a2, $v0 +/* 0490D4 7F0145A4 8FC70000 */ lw $a3, ($fp) +/* 0490D8 7F0145A8 AFA00014 */ sw $zero, 0x14($sp) +/* 0490DC 7F0145AC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0490E0 7F0145B0 AFAB0010 */ sw $t3, 0x10($sp) +/* 0490E4 7F0145B4 8FA30128 */ lw $v1, 0x128($sp) +/* 0490E8 7F0145B8 8FAC0090 */ lw $t4, 0x90($sp) +/* 0490EC 7F0145BC 8FAD0124 */ lw $t5, 0x124($sp) +/* 0490F0 7F0145C0 26D4FFE1 */ addiu $s4, $s6, -0x1f +/* 0490F4 7F0145C4 01833023 */ subu $a2, $t4, $v1 +/* 0490F8 7F0145C8 00C37021 */ addu $t6, $a2, $v1 +/* 0490FC 7F0145CC 02802825 */ move $a1, $s4 +/* 049100 7F0145D0 AFAE0010 */ sw $t6, 0x10($sp) +/* 049104 7F0145D4 AFA6012C */ sw $a2, 0x12c($sp) +/* 049108 7F0145D8 AFB40130 */ sw $s4, 0x130($sp) +/* 04910C 7F0145DC 8FA40138 */ lw $a0, 0x138($sp) +/* 049110 7F0145E0 AFA00014 */ sw $zero, 0x14($sp) +/* 049114 7F0145E4 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 049118 7F0145E8 028D3821 */ addu $a3, $s4, $t5 +/* 04911C 7F0145EC AFA20138 */ sw $v0, 0x138($sp) +/* 049120 7F0145F0 0FC30776 */ jal get_textptr_for_textID +/* 049124 7F0145F4 96640002 */ lhu $a0, 2($s3) +/* 049128 7F0145F8 0C001107 */ jal get_video2_settings_txtClipW +/* 04912C 7F0145FC 00408825 */ move $s1, $v0 +/* 049130 7F014600 00028400 */ sll $s0, $v0, 0x10 +/* 049134 7F014604 00107C03 */ sra $t7, $s0, 0x10 +/* 049138 7F014608 0C00110B */ jal get_video2_settings_txtClipH +/* 04913C 7F01460C 01E08025 */ move $s0, $t7 +/* 049140 7F014610 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 049144 7F014614 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 049148 7F014618 8FD80000 */ lw $t8, ($fp) +/* 04914C 7F01461C 364900FF */ ori $t1, $s2, 0xff +/* 049150 7F014620 AFA90018 */ sw $t1, 0x18($sp) +/* 049154 7F014624 8FA40138 */ lw $a0, 0x138($sp) +/* 049158 7F014628 27A50130 */ addiu $a1, $sp, 0x130 +/* 04915C 7F01462C 27A6012C */ addiu $a2, $sp, 0x12c +/* 049160 7F014630 02203825 */ move $a3, $s1 +/* 049164 7F014634 AFB0001C */ sw $s0, 0x1c($sp) +/* 049168 7F014638 AFA20020 */ sw $v0, 0x20($sp) +/* 04916C 7F01463C AFA00024 */ sw $zero, 0x24($sp) +/* 049170 7F014640 AFA00028 */ sw $zero, 0x28($sp) +/* 049174 7F014644 AFB90014 */ sw $t9, 0x14($sp) +/* 049178 7F014648 0FC2B6AF */ jal en_text_write_stuff +/* 04917C 7F01464C AFB80010 */ sw $t8, 0x10($sp) +/* 049180 7F014650 8FA30128 */ lw $v1, 0x128($sp) +/* 049184 7F014654 8FAA0090 */ lw $t2, 0x90($sp) +/* 049188 7F014658 AFA20138 */ sw $v0, 0x138($sp) +/* 04918C 7F01465C 96640002 */ lhu $a0, 2($s3) +/* 049190 7F014660 01433023 */ subu $a2, $t2, $v1 +/* 049194 7F014664 AFA6012C */ sw $a2, 0x12c($sp) +/* 049198 7F014668 0FC30776 */ jal get_textptr_for_textID +/* 04919C 7F01466C AFB40130 */ sw $s4, 0x130($sp) +/* 0491A0 7F014670 0C001107 */ jal get_video2_settings_txtClipW +/* 0491A4 7F014674 00408825 */ move $s1, $v0 +/* 0491A8 7F014678 00028400 */ sll $s0, $v0, 0x10 +/* 0491AC 7F01467C 00105C03 */ sra $t3, $s0, 0x10 +/* 0491B0 7F014680 0C00110B */ jal get_video2_settings_txtClipH +/* 0491B4 7F014684 01608025 */ move $s0, $t3 +/* 0491B8 7F014688 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) +/* 0491BC 7F01468C 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0491C0 7F014690 8FCC0000 */ lw $t4, ($fp) +/* 0491C4 7F014694 364E0064 */ ori $t6, $s2, 0x64 +/* 0491C8 7F014698 AFAE0018 */ sw $t6, 0x18($sp) +/* 0491CC 7F01469C 8FA40138 */ lw $a0, 0x138($sp) +/* 0491D0 7F0146A0 27A50130 */ addiu $a1, $sp, 0x130 +/* 0491D4 7F0146A4 27A6012C */ addiu $a2, $sp, 0x12c +/* 0491D8 7F0146A8 02203825 */ move $a3, $s1 +/* 0491DC 7F0146AC AFB0001C */ sw $s0, 0x1c($sp) +/* 0491E0 7F0146B0 AFA20020 */ sw $v0, 0x20($sp) +/* 0491E4 7F0146B4 AFA00024 */ sw $zero, 0x24($sp) +/* 0491E8 7F0146B8 AFA00028 */ sw $zero, 0x28($sp) +/* 0491EC 7F0146BC AFAD0014 */ sw $t5, 0x14($sp) +/* 0491F0 7F0146C0 0FC2B6AF */ jal en_text_write_stuff +/* 0491F4 7F0146C4 AFAC0010 */ sw $t4, 0x10($sp) +/* 0491F8 7F0146C8 AFA20138 */ sw $v0, 0x138($sp) +.L7F0146CC: +/* 0491FC 7F0146CC 26F70001 */ addiu $s7, $s7, 1 +.L7F0146D0: +/* 049200 7F0146D0 24010004 */ li $at, 4 +/* 049204 7F0146D4 26D60055 */ addiu $s6, $s6, 0x55 +/* 049208 7F0146D8 16E1FF99 */ bne $s7, $at, .L7F014540 +/* 04920C 7F0146DC 26B50001 */ addiu $s5, $s5, 1 +/* 049210 7F0146E0 8FB9009C */ lw $t9, 0x9c($sp) +/* 049214 7F0146E4 8FAF0090 */ lw $t7, 0x90($sp) +/* 049218 7F0146E8 24010003 */ li $at, 3 +/* 04921C 7F0146EC 27290001 */ addiu $t1, $t9, 1 +/* 049220 7F0146F0 25F80046 */ addiu $t8, $t7, 0x46 +/* 049224 7F0146F4 AFA9009C */ sw $t1, 0x9c($sp) +/* 049228 7F0146F8 1521FF8F */ bne $t1, $at, .L7F014538 +/* 04922C 7F0146FC AFB80090 */ sw $t8, 0x90($sp) +/* 049230 7F014700 0FC2B366 */ jal microcode_constructor +/* 049234 7F014704 8FA40138 */ lw $a0, 0x138($sp) +/* 049238 7F014708 AFA20138 */ sw $v0, 0x138($sp) +/* 04923C 7F01470C 0FC0288E */ jal add_tab3_previous +/* 049240 7F014710 00402025 */ move $a0, $v0 +/* 049244 7F014714 AFA20138 */ sw $v0, 0x138($sp) +/* 049248 7F014718 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 04924C 7F01471C 00402025 */ move $a0, $v0 +/* 049250 7F014720 8FBF0074 */ lw $ra, 0x74($sp) +/* 049254 7F014724 D7B40040 */ ldc1 $f20, 0x40($sp) +/* 049258 7F014728 D7B60048 */ ldc1 $f22, 0x48($sp) +/* 04925C 7F01472C 8FB00050 */ lw $s0, 0x50($sp) +/* 049260 7F014730 8FB10054 */ lw $s1, 0x54($sp) +/* 049264 7F014734 8FB20058 */ lw $s2, 0x58($sp) +/* 049268 7F014738 8FB3005C */ lw $s3, 0x5c($sp) +/* 04926C 7F01473C 8FB40060 */ lw $s4, 0x60($sp) +/* 049270 7F014740 8FB50064 */ lw $s5, 0x64($sp) +/* 049274 7F014744 8FB60068 */ lw $s6, 0x68($sp) +/* 049278 7F014748 8FB7006C */ lw $s7, 0x6c($sp) +/* 04927C 7F01474C 8FBE0070 */ lw $fp, 0x70($sp) +/* 049280 7F014750 03E00008 */ jr $ra +/* 049284 7F014754 27BD0138 */ addiu $sp, $sp, 0x138 +) +#endif + + + +MPSCENARIOS get_scenario(void) +{ + return scenario; +} + +void init_menu13_mpscenariosel(void) +{ + tab_1_selected = FALSE; + tab_2_selected = FALSE; + tab_3_selected = FALSE; + tab_3_highlight = FALSE; + tab_2_highlight = FALSE; + tab_1_highlight = FALSE; + load_walletbond(); +} + +void update_menu13_mpscenario(void) { + return; +} + + + + + + + +#ifdef NONMATCHING +void interface_menu13_mpscenario(void) +{ + s32 sp2C; + s32 temp_a0; + s32 temp_s1; + void *temp_s0; + s32 phi_s2; + s32 phi_s1; + + sp2C = 0; + setvideo_far(0x42700000); + video_related_21(D_80051AA8); + set_page_height(0x42c80000, D_80051AAC); + set_video2_settings_offset_24(0); + if (get_controller_buttons_held(0, 0xa000) == 0) + { + tab_3_highlight = 0; + tab_2_highlight = 0; + tab_1_highlight = 0; + if (isontab3() != 0) + { + tab_3_highlight = 1; + dword_CODE_bss_80069780 = 0; + } + else + { + dword_CODE_bss_80069780 = 1; + phi_s2 = 0x11d; + phi_s1 = 7; +loop_4: + if ((((s32) cursor_v_pos >= phi_s2) && (get_selected_num_players() >= temp_s0->unk2)) && (temp_s0->unk3 >= get_selected_num_players())) + { + dword_CODE_bss_80069780 = (s32) (phi_s1 + 1); + } + else + { + temp_s1 = phi_s1 + -1; + phi_s2 = phi_s2 + -0x16; + phi_s1 = temp_s1; + if (temp_s1 != 0) + { + goto loop_4; + } + } + } + } + if (get_controller_buttons_pressed(0, 0xb000) != 0) + { + if (tab_3_highlight != 0) + { + tab_3_selected = 1; + } + else + { + temp_a0 = dword_CODE_bss_80069780 + -1; + if (((temp_a0 == 5) || (temp_a0 == 6)) || (temp_a0 == 7)) + { + reset_mp_options_for_scenario(temp_a0); + sp2C = 1; + } + else + { + reset_mp_options_for_scenario(temp_a0); + tab_3_selected = 1; + } + } + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if (get_controller_buttons_pressed(0, 0x4000) != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + disable_all_switches(ptr_folder_object_instance); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 6, 1); + menu_control_stick_tracking(); + if (sp2C != 0) + { + set_menu_to_mode(MENU_MP_TEAMS, 0); + return; + } + if (tab_3_selected != 0) + { + set_menu_to_mode(MENU_MP_OPTIONS, 0); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051AA8 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051AAC +.word 0x461C4000 /*10000.0;*/ + +.text +glabel interface_menu13_mpscenario +/* 0492E8 7F0147B8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0492EC 7F0147BC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0492F0 7F0147C0 AFBF0024 */ sw $ra, 0x24($sp) +/* 0492F4 7F0147C4 44816000 */ mtc1 $at, $f12 +/* 0492F8 7F0147C8 AFB20020 */ sw $s2, 0x20($sp) +/* 0492FC 7F0147CC AFB1001C */ sw $s1, 0x1c($sp) +/* 049300 7F0147D0 AFB00018 */ sw $s0, 0x18($sp) +/* 049304 7F0147D4 0C001151 */ jal setvideo_far +/* 049308 7F0147D8 AFA0002C */ sw $zero, 0x2c($sp) +/* 04930C 7F0147DC 3C018005 */ lui $at, %hi(D_80051AA8) +/* 049310 7F0147E0 0C001164 */ jal video_related_21 +/* 049314 7F0147E4 C42C1AA8 */ lwc1 $f12, %lo(D_80051AA8)($at) +/* 049318 7F0147E8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04931C 7F0147EC 44816000 */ mtc1 $at, $f12 +/* 049320 7F0147F0 3C018005 */ lui $at, %hi(D_80051AAC) +/* 049324 7F0147F4 0C001194 */ jal set_page_height +/* 049328 7F0147F8 C42E1AAC */ lwc1 $f14, %lo(D_80051AAC)($at) +/* 04932C 7F0147FC 0C00114D */ jal set_video2_settings_offset_24 +/* 049330 7F014800 00002025 */ move $a0, $zero +/* 049334 7F014804 00002025 */ move $a0, $zero +/* 049338 7F014808 0C0030C3 */ jal get_controller_buttons_held +/* 04933C 7F01480C 3405A000 */ li $a1, 40960 +/* 049340 7F014810 14400030 */ bnez $v0, .L7F0148D4 +/* 049344 7F014814 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 049348 7F014818 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 04934C 7F01481C 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 049350 7F014820 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 049354 7F014824 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 049358 7F014828 0FC028E7 */ jal isontab3 +/* 04935C 7F01482C AC20A8DC */ sw $zero, %lo(tab_1_highlight)($at) +/* 049360 7F014830 10400007 */ beqz $v0, .L7F014850 +/* 049364 7F014834 240F0001 */ li $t7, 1 +/* 049368 7F014838 240E0001 */ li $t6, 1 +/* 04936C 7F01483C 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 049370 7F014840 AC2EA8E4 */ sw $t6, %lo(tab_3_highlight)($at) +/* 049374 7F014844 3C018007 */ lui $at, %hi(dword_CODE_bss_80069780) +/* 049378 7F014848 10000022 */ b .L7F0148D4 +/* 04937C 7F01484C AC209780 */ sw $zero, %lo(dword_CODE_bss_80069780)($at) +.L7F014850: +/* 049380 7F014850 3C018007 */ lui $at, %hi(dword_CODE_bss_80069780) +/* 049384 7F014854 AC2F9780 */ sw $t7, %lo(dword_CODE_bss_80069780)($at) +/* 049388 7F014858 24110007 */ li $s1, 7 +/* 04938C 7F01485C 2412011D */ li $s2, 285 +.L7F014860: +/* 049390 7F014860 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 049394 7F014864 C424A90C */ lwc1 $f4, %lo(cursor_v_pos)($at) +/* 049398 7F014868 3C098003 */ lui $t1, %hi(mp_player_counts) +/* 04939C 7F01486C 2529B054 */ addiu $t1, %lo(mp_player_counts) # addiu $t1, $t1, -0x4fac +/* 0493A0 7F014870 4600218D */ trunc.w.s $f6, $f4 +/* 0493A4 7F014874 00114080 */ sll $t0, $s1, 2 +/* 0493A8 7F014878 44193000 */ mfc1 $t9, $f6 +/* 0493AC 7F01487C 00000000 */ nop +/* 0493B0 7F014880 0332082A */ slt $at, $t9, $s2 +/* 0493B4 7F014884 54200011 */ bnezl $at, .L7F0148CC +/* 0493B8 7F014888 2631FFFF */ addiu $s1, $s1, -1 +/* 0493BC 7F01488C 0FC040A4 */ jal get_selected_num_players +/* 0493C0 7F014890 01098021 */ addu $s0, $t0, $t1 +/* 0493C4 7F014894 920A0002 */ lbu $t2, 2($s0) +/* 0493C8 7F014898 004A082A */ slt $at, $v0, $t2 +/* 0493CC 7F01489C 5420000B */ bnezl $at, .L7F0148CC +/* 0493D0 7F0148A0 2631FFFF */ addiu $s1, $s1, -1 +/* 0493D4 7F0148A4 0FC040A4 */ jal get_selected_num_players +/* 0493D8 7F0148A8 00000000 */ nop +/* 0493DC 7F0148AC 920B0003 */ lbu $t3, 3($s0) +/* 0493E0 7F0148B0 0162082A */ slt $at, $t3, $v0 +/* 0493E4 7F0148B4 14200004 */ bnez $at, .L7F0148C8 +/* 0493E8 7F0148B8 262C0001 */ addiu $t4, $s1, 1 +/* 0493EC 7F0148BC 3C018007 */ lui $at, %hi(dword_CODE_bss_80069780) +/* 0493F0 7F0148C0 10000004 */ b .L7F0148D4 +/* 0493F4 7F0148C4 AC2C9780 */ sw $t4, %lo(dword_CODE_bss_80069780)($at) +.L7F0148C8: +/* 0493F8 7F0148C8 2631FFFF */ addiu $s1, $s1, -1 +.L7F0148CC: +/* 0493FC 7F0148CC 1620FFE4 */ bnez $s1, .L7F014860 +/* 049400 7F0148D0 2652FFEA */ addiu $s2, $s2, -0x16 +.L7F0148D4: +/* 049404 7F0148D4 00002025 */ move $a0, $zero +/* 049408 7F0148D8 0C0030EB */ jal get_controller_buttons_pressed +/* 04940C 7F0148DC 3405B000 */ li $a1, 45056 +/* 049410 7F0148E0 10400023 */ beqz $v0, .L7F014970 +/* 049414 7F0148E4 00002025 */ move $a0, $zero +/* 049418 7F0148E8 3C0D8003 */ lui $t5, %hi(tab_3_highlight) +/* 04941C 7F0148EC 8DADA8E4 */ lw $t5, %lo(tab_3_highlight)($t5) +/* 049420 7F0148F0 240E0001 */ li $t6, 1 +/* 049424 7F0148F4 3C018003 */ lui $at, %hi(tab_3_selected) +/* 049428 7F0148F8 11A00003 */ beqz $t5, .L7F014908 +/* 04942C 7F0148FC 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069780) +/* 049430 7F014900 10000014 */ b .L7F014954 +/* 049434 7F014904 AC2EA8D8 */ sw $t6, %lo(tab_3_selected)($at) +.L7F014908: +/* 049438 7F014908 8C849780 */ lw $a0, %lo(dword_CODE_bss_80069780)($a0) +/* 04943C 7F01490C 24010005 */ li $at, 5 +/* 049440 7F014910 2484FFFF */ addiu $a0, $a0, -1 +/* 049444 7F014914 10810005 */ beq $a0, $at, .L7F01492C +/* 049448 7F014918 24010006 */ li $at, 6 +/* 04944C 7F01491C 10810003 */ beq $a0, $at, .L7F01492C +/* 049450 7F014920 24010007 */ li $at, 7 +/* 049454 7F014924 14810006 */ bne $a0, $at, .L7F014940 +/* 049458 7F014928 00000000 */ nop +.L7F01492C: +/* 04945C 7F01492C 0FC0411A */ jal reset_mp_options_for_scenario +/* 049460 7F014930 00000000 */ nop +/* 049464 7F014934 240F0001 */ li $t7, 1 +/* 049468 7F014938 10000006 */ b .L7F014954 +/* 04946C 7F01493C AFAF002C */ sw $t7, 0x2c($sp) +.L7F014940: +/* 049470 7F014940 0FC0411A */ jal reset_mp_options_for_scenario +/* 049474 7F014944 00000000 */ nop +/* 049478 7F014948 24180001 */ li $t8, 1 +/* 04947C 7F01494C 3C018003 */ lui $at, %hi(tab_3_selected) +/* 049480 7F014950 AC38A8D8 */ sw $t8, %lo(tab_3_selected)($at) +.L7F014954: +/* 049484 7F014954 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049488 7F014958 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04948C 7F01495C 240500C7 */ li $a1, 199 +/* 049490 7F014960 0C002382 */ jal play_sfx_a1 +/* 049494 7F014964 00003025 */ move $a2, $zero +/* 049498 7F014968 1000000C */ b .L7F01499C +/* 04949C 7F01496C 00000000 */ nop +.L7F014970: +/* 0494A0 7F014970 0C0030EB */ jal get_controller_buttons_pressed +/* 0494A4 7F014974 24054000 */ li $a1, 16384 +/* 0494A8 7F014978 10400008 */ beqz $v0, .L7F01499C +/* 0494AC 7F01497C 24190001 */ li $t9, 1 +/* 0494B0 7F014980 3C018003 */ lui $at, %hi(tab_3_selected) +/* 0494B4 7F014984 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0494B8 7F014988 AC39A8D8 */ sw $t9, %lo(tab_3_selected)($at) +/* 0494BC 7F01498C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0494C0 7F014990 240500C7 */ li $a1, 199 +/* 0494C4 7F014994 0C002382 */ jal play_sfx_a1 +/* 0494C8 7F014998 00003025 */ move $a2, $zero +.L7F01499C: +/* 0494CC 7F01499C 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 0494D0 7F0149A0 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 0494D4 7F0149A4 0FC02DC9 */ jal disable_all_switches +/* 0494D8 7F0149A8 8E040000 */ lw $a0, ($s0) +/* 0494DC 7F0149AC 8E040000 */ lw $a0, ($s0) +/* 0494E0 7F0149B0 00002825 */ move $a1, $zero +/* 0494E4 7F0149B4 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 0494E8 7F0149B8 24060001 */ li $a2, 1 +/* 0494EC 7F0149BC 8E040000 */ lw $a0, ($s0) +/* 0494F0 7F0149C0 24050001 */ li $a1, 1 +/* 0494F4 7F0149C4 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 0494F8 7F0149C8 24060001 */ li $a2, 1 +/* 0494FC 7F0149CC 8E040000 */ lw $a0, ($s0) +/* 049500 7F0149D0 24050003 */ li $a1, 3 +/* 049504 7F0149D4 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 049508 7F0149D8 24060001 */ li $a2, 1 +/* 04950C 7F0149DC 8E040000 */ lw $a0, ($s0) +/* 049510 7F0149E0 24050006 */ li $a1, 6 +/* 049514 7F0149E4 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 049518 7F0149E8 24060001 */ li $a2, 1 +/* 04951C 7F0149EC 0FC026E1 */ jal menu_control_stick_tracking +/* 049520 7F0149F0 00000000 */ nop +/* 049524 7F0149F4 8FA8002C */ lw $t0, 0x2c($sp) +/* 049528 7F0149F8 24040014 */ li $a0, 20 +/* 04952C 7F0149FC 3C098003 */ lui $t1, %hi(tab_3_selected) +/* 049530 7F014A00 11000005 */ beqz $t0, .L7F014A18 +/* 049534 7F014A04 00000000 */ nop +/* 049538 7F014A08 0FC06975 */ jal set_menu_to_mode +/* 04953C 7F014A0C 00002825 */ move $a1, $zero +/* 049540 7F014A10 10000008 */ b .L7F014A34 +/* 049544 7F014A14 8FBF0024 */ lw $ra, 0x24($sp) +.L7F014A18: +/* 049548 7F014A18 8D29A8D8 */ lw $t1, %lo(tab_3_selected)($t1) +/* 04954C 7F014A1C 2404000E */ li $a0, 14 +/* 049550 7F014A20 51200004 */ beql $t1, $zero, .L7F014A34 +/* 049554 7F014A24 8FBF0024 */ lw $ra, 0x24($sp) +/* 049558 7F014A28 0FC06975 */ jal set_menu_to_mode +/* 04955C 7F014A2C 00002825 */ move $a1, $zero +/* 049560 7F014A30 8FBF0024 */ lw $ra, 0x24($sp) +.L7F014A34: +/* 049564 7F014A34 8FB00018 */ lw $s0, 0x18($sp) +/* 049568 7F014A38 8FB1001C */ lw $s1, 0x1c($sp) +/* 04956C 7F014A3C 8FB20020 */ lw $s2, 0x20($sp) +/* 049570 7F014A40 03E00008 */ jr $ra +/* 049574 7F014A44 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu13_mpscenario(void) +{ + s32 sp88; + s32 sp84; + s32 sp7C; + s32 sp78; + s32 sp28; + s32 sp24; + s32 sp20; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_s2; + s32 temp_v1; + void *phi_s1; + s32 phi_s2; + s32 phi_s5; + s32 phi_s4; + s32 phi_s4_2; + + sp88 = 0x37; + sp84 = 0x66; + get_video2_settings_txtClipW(); + sp20 = get_video2_settings_txtClipH(); + sp24 = 0; + sp28 = 0; + phi_s1 = &mp_player_counts; + phi_s2 = 0; + phi_s5 = 0x83; + phi_s4 = write_text_at_abs_coord(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(0, 0, 0)))), &sp88, &sp84, get_textptr_for_textID(TEXT(LTITLE, 0x57)), (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff); +loop_1: + if ((phi_s1->unk3 < get_selected_num_players()) || (get_selected_num_players() < phi_s1->unk2)) + { + + } + else + { + + } + temp_ret = get_textptr_for_textID(phi_s1->unk0); + sub_GAME_7F0AE98C(&sp7C, &sp78, temp_ret, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); + sp88 = 0x39; + temp_v1 = phi_s5; + phi_s4_2 = phi_s4; + if ((phi_s2 + 1) == dword_CODE_bss_80069780) + { + sp84 = temp_v1; + phi_s4_2 = microcode_constructor_related_to_menus(phi_s4, 0x37, temp_v1 + -1, sp78 + 0x3c, (s32) (temp_v1 + 0xe), 0x32); + } + get_video2_settings_txtClipW(); + sp20 = get_video2_settings_txtClipH(); + sp24 = 0; + sp28 = 0; + temp_ret_2 = write_text_at_abs_coord(phi_s4_2, &sp88, &sp84, temp_ret, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0); + temp_s2 = phi_s2 + 1; + phi_s1 = phi_s1 + 4; + phi_s2 = temp_s2; + phi_s5 = phi_s5 + 0x16; + phi_s4 = temp_ret_2; + if (temp_s2 != 8) + { + goto loop_1; + } + load_draw_selected_icon_folder_select(add_tab3_previous(temp_ret_2)); +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu13_mpscenario +/* 049578 7F014A48 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 04957C 7F014A4C AFBF005C */ sw $ra, 0x5c($sp) +/* 049580 7F014A50 AFBE0058 */ sw $fp, 0x58($sp) +/* 049584 7F014A54 AFB70054 */ sw $s7, 0x54($sp) +/* 049588 7F014A58 AFB60050 */ sw $s6, 0x50($sp) +/* 04958C 7F014A5C AFB5004C */ sw $s5, 0x4c($sp) +/* 049590 7F014A60 AFB40048 */ sw $s4, 0x48($sp) +/* 049594 7F014A64 AFB30044 */ sw $s3, 0x44($sp) +/* 049598 7F014A68 AFB20040 */ sw $s2, 0x40($sp) +/* 04959C 7F014A6C AFB1003C */ sw $s1, 0x3c($sp) +/* 0495A0 7F014A70 AFB00038 */ sw $s0, 0x38($sp) +/* 0495A4 7F014A74 00002825 */ move $a1, $zero +/* 0495A8 7F014A78 00003025 */ move $a2, $zero +/* 0495AC 7F014A7C 0C0011B4 */ jal set_setfillcolor +/* 0495B0 7F014A80 00003825 */ move $a3, $zero +/* 0495B4 7F014A84 0C000FBE */ jal insert_generic_fillrect +/* 0495B8 7F014A88 00402025 */ move $a0, $v0 +/* 0495BC 7F014A8C 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 0495C0 7F014A90 00402025 */ move $a0, $v0 +/* 0495C4 7F014A94 0FC2B366 */ jal microcode_constructor +/* 0495C8 7F014A98 00402025 */ move $a0, $v0 +/* 0495CC 7F014A9C 0040A025 */ move $s4, $v0 +/* 0495D0 7F014AA0 0FC30776 */ jal get_textptr_for_textID +/* 0495D4 7F014AA4 34049C57 */ li $a0, 40023 +/* 0495D8 7F014AA8 240E0037 */ li $t6, 55 +/* 0495DC 7F014AAC 24030066 */ li $v1, 102 +/* 0495E0 7F014AB0 0040B025 */ move $s6, $v0 +/* 0495E4 7F014AB4 AFAE0088 */ sw $t6, 0x88($sp) +/* 0495E8 7F014AB8 0C001107 */ jal get_video2_settings_txtClipW +/* 0495EC 7F014ABC AFA30084 */ sw $v1, 0x84($sp) +/* 0495F0 7F014AC0 00028400 */ sll $s0, $v0, 0x10 +/* 0495F4 7F014AC4 00107C03 */ sra $t7, $s0, 0x10 +/* 0495F8 7F014AC8 0C00110B */ jal get_video2_settings_txtClipH +/* 0495FC 7F014ACC 01E08025 */ move $s0, $t7 +/* 049600 7F014AD0 3C178004 */ lui $s7, %hi(ptrSecondFontTableLarge) +/* 049604 7F014AD4 3C1E8004 */ lui $fp, %hi(ptrFirstFontTableLarge) +/* 049608 7F014AD8 27DE0EB4 */ addiu $fp, %lo(ptrFirstFontTableLarge) # addiu $fp, $fp, 0xeb4 +/* 04960C 7F014ADC 26F70EB8 */ addiu $s7, %lo(ptrSecondFontTableLarge) # addiu $s7, $s7, 0xeb8 +/* 049610 7F014AE0 8EF80000 */ lw $t8, ($s7) +/* 049614 7F014AE4 8FD90000 */ lw $t9, ($fp) +/* 049618 7F014AE8 240800FF */ li $t0, 255 +/* 04961C 7F014AEC AFA80018 */ sw $t0, 0x18($sp) +/* 049620 7F014AF0 02802025 */ move $a0, $s4 +/* 049624 7F014AF4 27A50088 */ addiu $a1, $sp, 0x88 +/* 049628 7F014AF8 27A60084 */ addiu $a2, $sp, 0x84 +/* 04962C 7F014AFC 02C03825 */ move $a3, $s6 +/* 049630 7F014B00 AFB0001C */ sw $s0, 0x1c($sp) +/* 049634 7F014B04 AFA20020 */ sw $v0, 0x20($sp) +/* 049638 7F014B08 AFA00024 */ sw $zero, 0x24($sp) +/* 04963C 7F014B0C AFA00028 */ sw $zero, 0x28($sp) +/* 049640 7F014B10 AFB80010 */ sw $t8, 0x10($sp) +/* 049644 7F014B14 0FC025D8 */ jal write_text_at_abs_coord +/* 049648 7F014B18 AFB90014 */ sw $t9, 0x14($sp) +/* 04964C 7F014B1C 3C118003 */ lui $s1, %hi(mp_player_counts) +/* 049650 7F014B20 0040A025 */ move $s4, $v0 +/* 049654 7F014B24 2631B054 */ addiu $s1, %lo(mp_player_counts) # addiu $s1, $s1, -0x4fac +/* 049658 7F014B28 00009025 */ move $s2, $zero +/* 04965C 7F014B2C 24150083 */ li $s5, 131 +.L7F014B30: +/* 049660 7F014B30 0FC040A4 */ jal get_selected_num_players +/* 049664 7F014B34 241300FF */ li $s3, 255 +/* 049668 7F014B38 92290003 */ lbu $t1, 3($s1) +/* 04966C 7F014B3C 0122082A */ slt $at, $t1, $v0 +/* 049670 7F014B40 54200008 */ bnezl $at, .L7F014B64 +/* 049674 7F014B44 24130070 */ li $s3, 112 +/* 049678 7F014B48 0FC040A4 */ jal get_selected_num_players +/* 04967C 7F014B4C 00000000 */ nop +/* 049680 7F014B50 922A0002 */ lbu $t2, 2($s1) +/* 049684 7F014B54 004A082A */ slt $at, $v0, $t2 +/* 049688 7F014B58 10200002 */ beqz $at, .L7F014B64 +/* 04968C 7F014B5C 00000000 */ nop +/* 049690 7F014B60 24130070 */ li $s3, 112 +.L7F014B64: +/* 049694 7F014B64 0FC30776 */ jal get_textptr_for_textID +/* 049698 7F014B68 96240000 */ lhu $a0, ($s1) +/* 04969C 7F014B6C 8FCB0000 */ lw $t3, ($fp) +/* 0496A0 7F014B70 0040B025 */ move $s6, $v0 +/* 0496A4 7F014B74 27A4007C */ addiu $a0, $sp, 0x7c +/* 0496A8 7F014B78 27A50078 */ addiu $a1, $sp, 0x78 +/* 0496AC 7F014B7C 00403025 */ move $a2, $v0 +/* 0496B0 7F014B80 8EE70000 */ lw $a3, ($s7) +/* 0496B4 7F014B84 AFA00014 */ sw $zero, 0x14($sp) +/* 0496B8 7F014B88 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0496BC 7F014B8C AFAB0010 */ sw $t3, 0x10($sp) +/* 0496C0 7F014B90 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80069780) +/* 0496C4 7F014B94 8DCE9780 */ lw $t6, %lo(dword_CODE_bss_80069780)($t6) +/* 0496C8 7F014B98 240C0039 */ li $t4, 57 +/* 0496CC 7F014B9C 264D0001 */ addiu $t5, $s2, 1 +/* 0496D0 7F014BA0 AFAC0088 */ sw $t4, 0x88($sp) +/* 0496D4 7F014BA4 02A01825 */ move $v1, $s5 +/* 0496D8 7F014BA8 15AE000D */ bne $t5, $t6, .L7F014BE0 +/* 0496DC 7F014BAC AFB50084 */ sw $s5, 0x84($sp) +/* 0496E0 7F014BB0 8FA70078 */ lw $a3, 0x78($sp) +/* 0496E4 7F014BB4 246F000E */ addiu $t7, $v1, 0xe +/* 0496E8 7F014BB8 24180032 */ li $t8, 50 +/* 0496EC 7F014BBC AFB80014 */ sw $t8, 0x14($sp) +/* 0496F0 7F014BC0 AFAF0010 */ sw $t7, 0x10($sp) +/* 0496F4 7F014BC4 02802025 */ move $a0, $s4 +/* 0496F8 7F014BC8 24050037 */ li $a1, 55 +/* 0496FC 7F014BCC 2466FFFF */ addiu $a2, $v1, -1 +/* 049700 7F014BD0 AFA30084 */ sw $v1, 0x84($sp) +/* 049704 7F014BD4 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 049708 7F014BD8 24E7003C */ addiu $a3, $a3, 0x3c +/* 04970C 7F014BDC 0040A025 */ move $s4, $v0 +.L7F014BE0: +/* 049710 7F014BE0 0C001107 */ jal get_video2_settings_txtClipW +/* 049714 7F014BE4 00000000 */ nop +/* 049718 7F014BE8 00028400 */ sll $s0, $v0, 0x10 +/* 04971C 7F014BEC 0010CC03 */ sra $t9, $s0, 0x10 +/* 049720 7F014BF0 0C00110B */ jal get_video2_settings_txtClipH +/* 049724 7F014BF4 03208025 */ move $s0, $t9 +/* 049728 7F014BF8 8EE80000 */ lw $t0, ($s7) +/* 04972C 7F014BFC 8FC90000 */ lw $t1, ($fp) +/* 049730 7F014C00 02802025 */ move $a0, $s4 +/* 049734 7F014C04 27A50088 */ addiu $a1, $sp, 0x88 +/* 049738 7F014C08 27A60084 */ addiu $a2, $sp, 0x84 +/* 04973C 7F014C0C 02C03825 */ move $a3, $s6 +/* 049740 7F014C10 AFB30018 */ sw $s3, 0x18($sp) +/* 049744 7F014C14 AFB0001C */ sw $s0, 0x1c($sp) +/* 049748 7F014C18 AFA20020 */ sw $v0, 0x20($sp) +/* 04974C 7F014C1C AFA00024 */ sw $zero, 0x24($sp) +/* 049750 7F014C20 AFA00028 */ sw $zero, 0x28($sp) +/* 049754 7F014C24 AFA80010 */ sw $t0, 0x10($sp) +/* 049758 7F014C28 0FC025D8 */ jal write_text_at_abs_coord +/* 04975C 7F014C2C AFA90014 */ sw $t1, 0x14($sp) +/* 049760 7F014C30 26520001 */ addiu $s2, $s2, 1 +/* 049764 7F014C34 24010008 */ li $at, 8 +/* 049768 7F014C38 26310004 */ addiu $s1, $s1, 4 +/* 04976C 7F014C3C 26B50016 */ addiu $s5, $s5, 0x16 +/* 049770 7F014C40 1641FFBB */ bne $s2, $at, .L7F014B30 +/* 049774 7F014C44 0040A025 */ move $s4, $v0 +/* 049778 7F014C48 0FC0288E */ jal add_tab3_previous +/* 04977C 7F014C4C 00402025 */ move $a0, $v0 +/* 049780 7F014C50 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 049784 7F014C54 00402025 */ move $a0, $v0 +/* 049788 7F014C58 8FBF005C */ lw $ra, 0x5c($sp) +/* 04978C 7F014C5C 8FB00038 */ lw $s0, 0x38($sp) +/* 049790 7F014C60 8FB1003C */ lw $s1, 0x3c($sp) +/* 049794 7F014C64 8FB20040 */ lw $s2, 0x40($sp) +/* 049798 7F014C68 8FB30044 */ lw $s3, 0x44($sp) +/* 04979C 7F014C6C 8FB40048 */ lw $s4, 0x48($sp) +/* 0497A0 7F014C70 8FB5004C */ lw $s5, 0x4c($sp) +/* 0497A4 7F014C74 8FB60050 */ lw $s6, 0x50($sp) +/* 0497A8 7F014C78 8FB70054 */ lw $s7, 0x54($sp) +/* 0497AC 7F014C7C 8FBE0058 */ lw $fp, 0x58($sp) +/* 0497B0 7F014C80 03E00008 */ jr $ra +/* 0497B4 7F014C84 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + +#ifdef NONMATCHING +s32 get_players_team_or_scenario_item_flag(int player) +{ + return (s32)(u8)(&player1_player_data)[player].have_token_or_goldengun; +} +#else +GLOBAL_ASM( +.text +glabel get_players_team_or_scenario_item_flag +/* 0497B8 7F014C88 000470C0 */ sll $t6, $a0, 3 +/* 0497BC 7F014C8C 01C47023 */ subu $t6, $t6, $a0 +/* 0497C0 7F014C90 000E7100 */ sll $t6, $t6, 4 +/* 0497C4 7F014C94 3C028008 */ lui $v0, %hi(player1_player_data+105) +/* 0497C8 7F014C98 004E1021 */ addu $v0, $v0, $t6 +/* 0497CC 7F014C9C 03E00008 */ jr $ra +/* 0497D0 7F014CA0 90429F59 */ lbu $v0, %lo(player1_player_data+105)($v0) +) +#endif + + + + + + +#ifdef NONMATCHING +void set_players_team_or_scenario_item_flag(int player,char flag) +{ + (&player1_player_data)[player].have_token_or_goldengun = flag; +} +#else +GLOBAL_ASM( +.text +glabel set_players_team_or_scenario_item_flag +/* 0497D4 7F014CA4 000470C0 */ sll $t6, $a0, 3 +/* 0497D8 7F014CA8 01C47023 */ subu $t6, $t6, $a0 +/* 0497DC 7F014CAC 000E7100 */ sll $t6, $t6, 4 +/* 0497E0 7F014CB0 3C018008 */ lui $at, %hi(player1_player_data+105) +/* 0497E4 7F014CB4 002E0821 */ addu $at, $at, $t6 +/* 0497E8 7F014CB8 03E00008 */ jr $ra +/* 0497EC 7F014CBC A0259F59 */ sb $a1, %lo(player1_player_data+105)($at) +) +#endif + + + + + + +void init_menu14_mpteamsel(void) +{ + tab_1_selected = FALSE; + tab_2_selected = FALSE; + tab_3_selected = FALSE; + tab_3_highlight = FALSE; + tab_2_highlight = FALSE; + tab_1_highlight = FALSE; + if (scenario == SCENARIO_2v1) { + teamsize = 2; + } + else { + teamsize = 3; + } + D_8002B560 = 0; + load_walletbond(); +} + +void update_menu14_mpteams(void) { +return; +} + + + + + + + +#ifdef NONMATCHING +void interface_menu14_mpteams(void) +{ + s32 phi_s0; + s32 phi_a1; + s32 phi_a1_2; + s32 phi_s0_2; + + setvideo_far(0x42700000); + video_related_21(D_80051AB0); + set_page_height(0x42c80000, D_80051AB4); + set_video2_settings_offset_24(0); + D_8002B560 = (s32) ((s32) (D_8002B560 + 1) % 0x14); + if ((get_controller_buttons_pressed(0, 0x101) != 0) || (get_controller_3dstick_L_R(0, -2, 1) > 0)) + { + if (scenario == 7) + { + if ((teamsize & 1) == 0) + { + teamsize = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + else + { + if ((teamsize & 1) == 0) + { + teamsize = (s32) (teamsize + 1); + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + else + { + if ((get_controller_buttons_pressed(0, 0x808) != 0) || (get_controller_3dstick_U_D(0, -2, 1) > 0)) + { + if (scenario == 5) + { + if ((teamsize & 2) != 0) + { + teamsize = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + else + { + if ((teamsize & 2) != 0) + { + teamsize = (s32) (teamsize + -2); + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + else + { + if ((get_controller_buttons_pressed(0, 0x202) != 0) || (get_controller_3dstick_L_R(0, -2, 1) < -1)) + { + if (scenario == 5) + { + if ((teamsize & 1) != 0) + { + teamsize = 2; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + else + { + if ((teamsize & 1) != 0) + { + teamsize = (s32) (teamsize + -1); + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + else + { + if ((get_controller_buttons_pressed(0, 0x404) != 0) || (get_controller_3dstick_U_D(0, -2, 1) < -1)) + { + if (scenario == 7) + { + if ((teamsize & 2) == 0) + { + teamsize = 2; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + else + { + if ((teamsize & 2) == 0) + { + teamsize = (s32) (teamsize + 2); + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + else + { + + } + } + } + } + disable_all_switches(ptr_folder_object_instance); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0x2a, 1); + menu_control_stick_tracking(); + phi_s0 = 0; + if (get_controller_buttons_pressed(0, 0xb000) != 0) + { +loop_29: + if (scenario == 5) + { + if ((phi_s0 == 0) || (phi_s0 == teamsize)) + { + phi_a1 = 0; + } + else + { + + } + set_players_team_or_scenario_item_flag(phi_s0, phi_a1); + phi_s0_2 = phi_s0 + 1; + } + else + { + phi_a1_2 = 1; + if (phi_s0 != teamsize) + { + phi_a1_2 = 0; + } + set_players_team_or_scenario_item_flag(phi_s0, phi_a1_2); + phi_s0_2 = phi_s0 + 1; + } + phi_s0 = phi_s0_2; + if (phi_s0_2 != 4) + { + goto loop_29; + } + set_menu_to_mode(MENU_MP_OPTIONS, 0); + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051AB0 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051AB4 +.word 0x461C4000 /*10000.0;*/ + +.text +glabel interface_menu14_mpteams +/* 049878 7F014D48 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 04987C 7F014D4C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 049880 7F014D50 AFBF001C */ sw $ra, 0x1c($sp) +/* 049884 7F014D54 44816000 */ mtc1 $at, $f12 +/* 049888 7F014D58 AFB10018 */ sw $s1, 0x18($sp) +/* 04988C 7F014D5C 0C001151 */ jal setvideo_far +/* 049890 7F014D60 AFB00014 */ sw $s0, 0x14($sp) +/* 049894 7F014D64 3C018005 */ lui $at, %hi(D_80051AB0) +/* 049898 7F014D68 0C001164 */ jal video_related_21 +/* 04989C 7F014D6C C42C1AB0 */ lwc1 $f12, %lo(D_80051AB0)($at) +/* 0498A0 7F014D70 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0498A4 7F014D74 44816000 */ mtc1 $at, $f12 +/* 0498A8 7F014D78 3C018005 */ lui $at, %hi(D_80051AB4) +/* 0498AC 7F014D7C 0C001194 */ jal set_page_height +/* 0498B0 7F014D80 C42E1AB4 */ lwc1 $f14, %lo(D_80051AB4)($at) +/* 0498B4 7F014D84 0C00114D */ jal set_video2_settings_offset_24 +/* 0498B8 7F014D88 00002025 */ move $a0, $zero +/* 0498BC 7F014D8C 3C028003 */ lui $v0, %hi(D_8002B560) +/* 0498C0 7F014D90 2442B560 */ addiu $v0, %lo(D_8002B560) # addiu $v0, $v0, -0x4aa0 +/* 0498C4 7F014D94 8C4E0000 */ lw $t6, ($v0) +/* 0498C8 7F014D98 24010014 */ li $at, 20 +/* 0498CC 7F014D9C 00002025 */ move $a0, $zero +/* 0498D0 7F014DA0 25CF0001 */ addiu $t7, $t6, 1 +/* 0498D4 7F014DA4 01E1001A */ div $zero, $t7, $at +/* 0498D8 7F014DA8 0000C010 */ mfhi $t8 +/* 0498DC 7F014DAC AC580000 */ sw $t8, ($v0) +/* 0498E0 7F014DB0 0C0030EB */ jal get_controller_buttons_pressed +/* 0498E4 7F014DB4 24050101 */ li $a1, 257 +/* 0498E8 7F014DB8 14400005 */ bnez $v0, .L7F014DD0 +/* 0498EC 7F014DBC 00002025 */ move $a0, $zero +/* 0498F0 7F014DC0 2405FFFE */ li $a1, -2 +/* 0498F4 7F014DC4 0C00312D */ jal get_controller_3dstick_L_R +/* 0498F8 7F014DC8 24060001 */ li $a2, 1 +/* 0498FC 7F014DCC 18400020 */ blez $v0, .L7F014E50 +.L7F014DD0: +/* 049900 7F014DD0 3C198003 */ lui $t9, %hi(scenario) +/* 049904 7F014DD4 8F39B540 */ lw $t9, %lo(scenario)($t9) +/* 049908 7F014DD8 24010007 */ li $at, 7 +/* 04990C 7F014DDC 3C118007 */ lui $s1, %hi(teamsize) +/* 049910 7F014DE0 1721000F */ bne $t9, $at, .L7F014E20 +/* 049914 7F014DE4 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 +/* 049918 7F014DE8 3C118007 */ lui $s1, %hi(teamsize) +/* 04991C 7F014DEC 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 +/* 049920 7F014DF0 8E280000 */ lw $t0, ($s1) +/* 049924 7F014DF4 240A0001 */ li $t2, 1 +/* 049928 7F014DF8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04992C 7F014DFC 31090001 */ andi $t1, $t0, 1 +/* 049930 7F014E00 1520008E */ bnez $t1, .L7F01503C +/* 049934 7F014E04 240500C7 */ li $a1, 199 +/* 049938 7F014E08 AE2A0000 */ sw $t2, ($s1) +/* 04993C 7F014E0C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049940 7F014E10 0C002382 */ jal play_sfx_a1 +/* 049944 7F014E14 00003025 */ move $a2, $zero +/* 049948 7F014E18 10000088 */ b .L7F01503C +/* 04994C 7F014E1C 00000000 */ nop +.L7F014E20: +/* 049950 7F014E20 8E220000 */ lw $v0, ($s1) +/* 049954 7F014E24 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049958 7F014E28 240500C7 */ li $a1, 199 +/* 04995C 7F014E2C 304B0001 */ andi $t3, $v0, 1 +/* 049960 7F014E30 15600082 */ bnez $t3, .L7F01503C +/* 049964 7F014E34 244C0001 */ addiu $t4, $v0, 1 +/* 049968 7F014E38 AE2C0000 */ sw $t4, ($s1) +/* 04996C 7F014E3C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049970 7F014E40 0C002382 */ jal play_sfx_a1 +/* 049974 7F014E44 00003025 */ move $a2, $zero +/* 049978 7F014E48 1000007C */ b .L7F01503C +/* 04997C 7F014E4C 00000000 */ nop +.L7F014E50: +/* 049980 7F014E50 00002025 */ move $a0, $zero +/* 049984 7F014E54 0C0030EB */ jal get_controller_buttons_pressed +/* 049988 7F014E58 24050808 */ li $a1, 2056 +/* 04998C 7F014E5C 14400005 */ bnez $v0, .L7F014E74 +/* 049990 7F014E60 00002025 */ move $a0, $zero +/* 049994 7F014E64 2405FFFE */ li $a1, -2 +/* 049998 7F014E68 0C00314A */ jal get_controller_3dstick_U_D +/* 04999C 7F014E6C 24060001 */ li $a2, 1 +/* 0499A0 7F014E70 18400020 */ blez $v0, .L7F014EF4 +.L7F014E74: +/* 0499A4 7F014E74 3C0D8003 */ lui $t5, %hi(scenario) +/* 0499A8 7F014E78 8DADB540 */ lw $t5, %lo(scenario)($t5) +/* 0499AC 7F014E7C 24010005 */ li $at, 5 +/* 0499B0 7F014E80 3C118007 */ lui $s1, %hi(teamsize) +/* 0499B4 7F014E84 15A1000F */ bne $t5, $at, .L7F014EC4 +/* 0499B8 7F014E88 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 +/* 0499BC 7F014E8C 3C118007 */ lui $s1, %hi(teamsize) +/* 0499C0 7F014E90 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 +/* 0499C4 7F014E94 8E2E0000 */ lw $t6, ($s1) +/* 0499C8 7F014E98 24180001 */ li $t8, 1 +/* 0499CC 7F014E9C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0499D0 7F014EA0 31CF0002 */ andi $t7, $t6, 2 +/* 0499D4 7F014EA4 11E00065 */ beqz $t7, .L7F01503C +/* 0499D8 7F014EA8 240500C7 */ li $a1, 199 +/* 0499DC 7F014EAC AE380000 */ sw $t8, ($s1) +/* 0499E0 7F014EB0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0499E4 7F014EB4 0C002382 */ jal play_sfx_a1 +/* 0499E8 7F014EB8 00003025 */ move $a2, $zero +/* 0499EC 7F014EBC 1000005F */ b .L7F01503C +/* 0499F0 7F014EC0 00000000 */ nop +.L7F014EC4: +/* 0499F4 7F014EC4 8E220000 */ lw $v0, ($s1) +/* 0499F8 7F014EC8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0499FC 7F014ECC 240500C7 */ li $a1, 199 +/* 049A00 7F014ED0 30590002 */ andi $t9, $v0, 2 +/* 049A04 7F014ED4 13200059 */ beqz $t9, .L7F01503C +/* 049A08 7F014ED8 2448FFFE */ addiu $t0, $v0, -2 +/* 049A0C 7F014EDC AE280000 */ sw $t0, ($s1) +/* 049A10 7F014EE0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049A14 7F014EE4 0C002382 */ jal play_sfx_a1 +/* 049A18 7F014EE8 00003025 */ move $a2, $zero +/* 049A1C 7F014EEC 10000053 */ b .L7F01503C +/* 049A20 7F014EF0 00000000 */ nop +.L7F014EF4: +/* 049A24 7F014EF4 00002025 */ move $a0, $zero +/* 049A28 7F014EF8 0C0030EB */ jal get_controller_buttons_pressed +/* 049A2C 7F014EFC 24050202 */ li $a1, 514 +/* 049A30 7F014F00 14400006 */ bnez $v0, .L7F014F1C +/* 049A34 7F014F04 00002025 */ move $a0, $zero +/* 049A38 7F014F08 2405FFFE */ li $a1, -2 +/* 049A3C 7F014F0C 0C00312D */ jal get_controller_3dstick_L_R +/* 049A40 7F014F10 24060001 */ li $a2, 1 +/* 049A44 7F014F14 2841FFFF */ slti $at, $v0, -1 +/* 049A48 7F014F18 10200020 */ beqz $at, .L7F014F9C +.L7F014F1C: +/* 049A4C 7F014F1C 3C098003 */ lui $t1, %hi(scenario) +/* 049A50 7F014F20 8D29B540 */ lw $t1, %lo(scenario)($t1) +/* 049A54 7F014F24 24010005 */ li $at, 5 +/* 049A58 7F014F28 3C118007 */ lui $s1, %hi(teamsize) +/* 049A5C 7F014F2C 1521000F */ bne $t1, $at, .L7F014F6C +/* 049A60 7F014F30 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 +/* 049A64 7F014F34 3C118007 */ lui $s1, %hi(teamsize) +/* 049A68 7F014F38 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 +/* 049A6C 7F014F3C 8E2A0000 */ lw $t2, ($s1) +/* 049A70 7F014F40 240C0002 */ li $t4, 2 +/* 049A74 7F014F44 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049A78 7F014F48 314B0001 */ andi $t3, $t2, 1 +/* 049A7C 7F014F4C 1160003B */ beqz $t3, .L7F01503C +/* 049A80 7F014F50 240500C7 */ li $a1, 199 +/* 049A84 7F014F54 AE2C0000 */ sw $t4, ($s1) +/* 049A88 7F014F58 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049A8C 7F014F5C 0C002382 */ jal play_sfx_a1 +/* 049A90 7F014F60 00003025 */ move $a2, $zero +/* 049A94 7F014F64 10000035 */ b .L7F01503C +/* 049A98 7F014F68 00000000 */ nop +.L7F014F6C: +/* 049A9C 7F014F6C 8E220000 */ lw $v0, ($s1) +/* 049AA0 7F014F70 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049AA4 7F014F74 240500C7 */ li $a1, 199 +/* 049AA8 7F014F78 304D0001 */ andi $t5, $v0, 1 +/* 049AAC 7F014F7C 11A0002F */ beqz $t5, .L7F01503C +/* 049AB0 7F014F80 244EFFFF */ addiu $t6, $v0, -1 +/* 049AB4 7F014F84 AE2E0000 */ sw $t6, ($s1) +/* 049AB8 7F014F88 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049ABC 7F014F8C 0C002382 */ jal play_sfx_a1 +/* 049AC0 7F014F90 00003025 */ move $a2, $zero +/* 049AC4 7F014F94 10000029 */ b .L7F01503C +/* 049AC8 7F014F98 00000000 */ nop +.L7F014F9C: +/* 049ACC 7F014F9C 00002025 */ move $a0, $zero +/* 049AD0 7F014FA0 0C0030EB */ jal get_controller_buttons_pressed +/* 049AD4 7F014FA4 24050404 */ li $a1, 1028 +/* 049AD8 7F014FA8 14400006 */ bnez $v0, .L7F014FC4 +/* 049ADC 7F014FAC 00002025 */ move $a0, $zero +/* 049AE0 7F014FB0 2405FFFE */ li $a1, -2 +/* 049AE4 7F014FB4 0C00314A */ jal get_controller_3dstick_U_D +/* 049AE8 7F014FB8 24060001 */ li $a2, 1 +/* 049AEC 7F014FBC 2841FFFF */ slti $at, $v0, -1 +/* 049AF0 7F014FC0 1020001E */ beqz $at, .L7F01503C +.L7F014FC4: +/* 049AF4 7F014FC4 3C0F8003 */ lui $t7, %hi(scenario) +/* 049AF8 7F014FC8 8DEFB540 */ lw $t7, %lo(scenario)($t7) +/* 049AFC 7F014FCC 24010007 */ li $at, 7 +/* 049B00 7F014FD0 3C118007 */ lui $s1, %hi(teamsize) +/* 049B04 7F014FD4 15E1000F */ bne $t7, $at, .L7F015014 +/* 049B08 7F014FD8 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 +/* 049B0C 7F014FDC 3C118007 */ lui $s1, %hi(teamsize) +/* 049B10 7F014FE0 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 +/* 049B14 7F014FE4 8E380000 */ lw $t8, ($s1) +/* 049B18 7F014FE8 24080002 */ li $t0, 2 +/* 049B1C 7F014FEC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049B20 7F014FF0 33190002 */ andi $t9, $t8, 2 +/* 049B24 7F014FF4 17200011 */ bnez $t9, .L7F01503C +/* 049B28 7F014FF8 240500C7 */ li $a1, 199 +/* 049B2C 7F014FFC AE280000 */ sw $t0, ($s1) +/* 049B30 7F015000 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049B34 7F015004 0C002382 */ jal play_sfx_a1 +/* 049B38 7F015008 00003025 */ move $a2, $zero +/* 049B3C 7F01500C 1000000B */ b .L7F01503C +/* 049B40 7F015010 00000000 */ nop +.L7F015014: +/* 049B44 7F015014 8E220000 */ lw $v0, ($s1) +/* 049B48 7F015018 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049B4C 7F01501C 240500C7 */ li $a1, 199 +/* 049B50 7F015020 30490002 */ andi $t1, $v0, 2 +/* 049B54 7F015024 15200005 */ bnez $t1, .L7F01503C +/* 049B58 7F015028 244A0002 */ addiu $t2, $v0, 2 +/* 049B5C 7F01502C AE2A0000 */ sw $t2, ($s1) +/* 049B60 7F015030 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049B64 7F015034 0C002382 */ jal play_sfx_a1 +/* 049B68 7F015038 00003025 */ move $a2, $zero +.L7F01503C: +/* 049B6C 7F01503C 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 049B70 7F015040 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 049B74 7F015044 3C118007 */ lui $s1, %hi(teamsize) +/* 049B78 7F015048 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 +/* 049B7C 7F01504C 0FC02DC9 */ jal disable_all_switches +/* 049B80 7F015050 8E040000 */ lw $a0, ($s0) +/* 049B84 7F015054 8E040000 */ lw $a0, ($s0) +/* 049B88 7F015058 00002825 */ move $a1, $zero +/* 049B8C 7F01505C 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 049B90 7F015060 24060001 */ li $a2, 1 +/* 049B94 7F015064 8E040000 */ lw $a0, ($s0) +/* 049B98 7F015068 2405002A */ li $a1, 42 +/* 049B9C 7F01506C 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 049BA0 7F015070 24060001 */ li $a2, 1 +/* 049BA4 7F015074 0FC026E1 */ jal menu_control_stick_tracking +/* 049BA8 7F015078 00000000 */ nop +/* 049BAC 7F01507C 00002025 */ move $a0, $zero +/* 049BB0 7F015080 0C0030EB */ jal get_controller_buttons_pressed +/* 049BB4 7F015084 3405B000 */ li $a1, 45056 +/* 049BB8 7F015088 10400026 */ beqz $v0, .L7F015124 +/* 049BBC 7F01508C 00008025 */ move $s0, $zero +.L7F015090: +/* 049BC0 7F015090 3C0B8003 */ lui $t3, %hi(scenario) +/* 049BC4 7F015094 8D6BB540 */ lw $t3, %lo(scenario)($t3) +/* 049BC8 7F015098 24010005 */ li $at, 5 +/* 049BCC 7F01509C 5561000E */ bnel $t3, $at, .L7F0150D8 +/* 049BD0 7F0150A0 8E2D0000 */ lw $t5, ($s1) +/* 049BD4 7F0150A4 12000005 */ beqz $s0, .L7F0150BC +/* 049BD8 7F0150A8 00000000 */ nop +/* 049BDC 7F0150AC 8E2C0000 */ lw $t4, ($s1) +/* 049BE0 7F0150B0 24050001 */ li $a1, 1 +/* 049BE4 7F0150B4 160C0003 */ bne $s0, $t4, .L7F0150C4 +/* 049BE8 7F0150B8 00000000 */ nop +.L7F0150BC: +/* 049BEC 7F0150BC 10000001 */ b .L7F0150C4 +/* 049BF0 7F0150C0 00002825 */ move $a1, $zero +.L7F0150C4: +/* 049BF4 7F0150C4 0FC05329 */ jal set_players_team_or_scenario_item_flag +/* 049BF8 7F0150C8 02002025 */ move $a0, $s0 +/* 049BFC 7F0150CC 1000000A */ b .L7F0150F8 +/* 049C00 7F0150D0 26100001 */ addiu $s0, $s0, 1 +/* 049C04 7F0150D4 8E2D0000 */ lw $t5, ($s1) +.L7F0150D8: +/* 049C08 7F0150D8 24050001 */ li $a1, 1 +/* 049C0C 7F0150DC 120D0003 */ beq $s0, $t5, .L7F0150EC +/* 049C10 7F0150E0 00000000 */ nop +/* 049C14 7F0150E4 10000001 */ b .L7F0150EC +/* 049C18 7F0150E8 00002825 */ move $a1, $zero +.L7F0150EC: +/* 049C1C 7F0150EC 0FC05329 */ jal set_players_team_or_scenario_item_flag +/* 049C20 7F0150F0 02002025 */ move $a0, $s0 +/* 049C24 7F0150F4 26100001 */ addiu $s0, $s0, 1 +.L7F0150F8: +/* 049C28 7F0150F8 24010004 */ li $at, 4 +/* 049C2C 7F0150FC 1601FFE4 */ bne $s0, $at, .L7F015090 +/* 049C30 7F015100 00000000 */ nop +/* 049C34 7F015104 2404000E */ li $a0, 14 +/* 049C38 7F015108 0FC06975 */ jal set_menu_to_mode +/* 049C3C 7F01510C 00002825 */ move $a1, $zero +/* 049C40 7F015110 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049C44 7F015114 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049C48 7F015118 240500C7 */ li $a1, 199 +/* 049C4C 7F01511C 0C002382 */ jal play_sfx_a1 +/* 049C50 7F015120 00003025 */ move $a2, $zero +.L7F015124: +/* 049C54 7F015124 8FBF001C */ lw $ra, 0x1c($sp) +/* 049C58 7F015128 8FB00014 */ lw $s0, 0x14($sp) +/* 049C5C 7F01512C 8FB10018 */ lw $s1, 0x18($sp) +/* 049C60 7F015130 03E00008 */ jr $ra +/* 049C64 7F015134 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu14_mpteams(s32 arg0) +{ + s32 spCC; + s32 spA4; + s32 spA0; + s32 sp9C; + s32 sp98; + s32 sp90; + s32 sp8C; + s32 sp88; + s32 sp84; + s32 temp_ret; + s32 temp_ret_2; + s32 temp_s5; + s32 temp_s6; + u32 temp_s2; + u32 temp_s4; + void *temp_v1; + u32 phi_s4; + s32 phi_v0; + s32 phi_v0_2; + void *phi_s5; + u32 phi_s0; + s32 phi_s1; + s32 phi_s5_2; + void *phi_s5_3; + void *phi_s5_4; + void *phi_s5_5; + u32 phi_v0_3; + + spCC = get_selected_num_players(); + temp_ret = microcode_constructor_related_to_menus(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(arg0, 0, 0, 0)))), 0x26, 0xa9, 0x184, 0xab, 0x90); + phi_s5_5 = temp_ret; + if (spCC >= 3) + { + phi_s5_5 = microcode_constructor_related_to_menus(temp_ret, 0xd4, 0x1e, 0xd6, 0x136, 0x80); + } + phi_s5_3 = phi_s5_5; + if (spCC > 0) + { + phi_s4 = 0U; + phi_s5 = phi_s5_5; +loop_4: + if (phi_s4 >= 2) + { + phi_v0_2 = 0x8c; + } + else + { + phi_v0_2 = 0; + } + temp_s6 = phi_v0_2 + 0x1e; + if ((phi_s4 & 1) != 0) + { + phi_v0 = 0xaf; + } + else + { + phi_v0 = 0; + } + temp_v1 = phi_s5; + temp_s2 = (u32) phi_s4 < 1U; + temp_s5 = phi_s5 + 8; + temp_v1->unk0 = (s32) (((((s32) ((f32) (phi_v0 + 0x2c) * 4.0f) & 0xfff) << 0xc) | 0xed000000) | ((s32) ((f32) (temp_s6 + 5) * 4.0f) & 0xfff)); + temp_v1->unk4 = (s32) ((((s32) ((f32) (phi_v0 + 0xcf) * 4.0f) & 0xfff) << 0xc) | ((s32) ((f32) (temp_s6 + 0x87) * 4.0f) & 0xfff)); + phi_s5_2 = temp_s5; + if (temp_s2 != 0) + { + temp_ret_2 = get_textptr_for_textID(TEXT(LTITLE, 0x58)); + sub_GAME_7F0AE98C(&spA4, &spA0, temp_ret_2, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); + sp9C = (s32) ((phi_v0 + 0x7d) - (spA0 >> 1)); + get_video2_settings_txtClipW(); + phi_s5_2 = write_text_at_abs_coord(temp_s5, &sp9C, &sp98, temp_ret_2, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, get_video2_settings_txtClipH(), 0, 0); + } + if (scenario == 5) + { + phi_v0_3 = temp_s2; + if (temp_s2 == 0) + { + phi_v0_3 = (u32) (phi_s4 ^ teamsize) < 1U; + } + phi_s0 = phi_v0_3; + } + else + { + phi_s0 = 0U < (u32) (phi_s4 ^ teamsize); + } + if (phi_s0 != 0) + { + phi_s1 = get_textptr_for_textID(TEXT(LTITLE, 0x59)); + } + else + { + phi_s1 = get_textptr_for_textID(TEXT(LTITLE, 0x5a)); + } + if (phi_s0 != 0) + { + + } + else + { + + } + sub_GAME_7F0AE98C(&sp90, &sp8C, phi_s1, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); + sp88 = (s32) (spB4 - (sp8C >> 1)); + sp84 = (s32) ((temp_s6 - (sp90 >> 1)) + 0x46); + if ((phi_s4 == teamsize) && (phi_s4 == teamsize)) + { + phi_s5_4 = (void *) phi_s5_2; + if (D_8002B560 < 0xa) + { +block_26: + get_video2_settings_txtClipW(); + phi_s5_4 = write_text_at_abs_coord(phi_s5_2, &sp88, &sp84, phi_s1, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, get_video2_settings_txtClipH(), 0, 0); + } + } + else + { + goto block_26; + } + temp_s4 = phi_s4 + 1; + phi_s4 = temp_s4; + phi_s5 = phi_s5_4; + phi_s5_3 = phi_s5_4; + if (temp_s4 != spCC) + { + goto loop_4; + } + } + combiner_bayer_lod_perspective(phi_s5_3); +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu14_mpteams +/* 049C68 7F015138 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 049C6C 7F01513C AFBF0064 */ sw $ra, 0x64($sp) +/* 049C70 7F015140 AFB50054 */ sw $s5, 0x54($sp) +/* 049C74 7F015144 0080A825 */ move $s5, $a0 +/* 049C78 7F015148 AFBE0060 */ sw $fp, 0x60($sp) +/* 049C7C 7F01514C AFB7005C */ sw $s7, 0x5c($sp) +/* 049C80 7F015150 AFB60058 */ sw $s6, 0x58($sp) +/* 049C84 7F015154 AFB40050 */ sw $s4, 0x50($sp) +/* 049C88 7F015158 AFB3004C */ sw $s3, 0x4c($sp) +/* 049C8C 7F01515C AFB20048 */ sw $s2, 0x48($sp) +/* 049C90 7F015160 AFB10044 */ sw $s1, 0x44($sp) +/* 049C94 7F015164 AFB00040 */ sw $s0, 0x40($sp) +/* 049C98 7F015168 0FC040A4 */ jal get_selected_num_players +/* 049C9C 7F01516C F7B40038 */ sdc1 $f20, 0x38($sp) +/* 049CA0 7F015170 AFA200CC */ sw $v0, 0xcc($sp) +/* 049CA4 7F015174 02A02025 */ move $a0, $s5 +/* 049CA8 7F015178 00002825 */ move $a1, $zero +/* 049CAC 7F01517C 00003025 */ move $a2, $zero +/* 049CB0 7F015180 0C0011B4 */ jal set_setfillcolor +/* 049CB4 7F015184 00003825 */ move $a3, $zero +/* 049CB8 7F015188 0C000FBE */ jal insert_generic_fillrect +/* 049CBC 7F01518C 00402025 */ move $a0, $v0 +/* 049CC0 7F015190 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 049CC4 7F015194 00402025 */ move $a0, $v0 +/* 049CC8 7F015198 0FC2B366 */ jal microcode_constructor +/* 049CCC 7F01519C 00402025 */ move $a0, $v0 +/* 049CD0 7F0151A0 240E00AB */ li $t6, 171 +/* 049CD4 7F0151A4 240F0090 */ li $t7, 144 +/* 049CD8 7F0151A8 AFAF0014 */ sw $t7, 0x14($sp) +/* 049CDC 7F0151AC AFAE0010 */ sw $t6, 0x10($sp) +/* 049CE0 7F0151B0 00402025 */ move $a0, $v0 +/* 049CE4 7F0151B4 24050026 */ li $a1, 38 +/* 049CE8 7F0151B8 240600A9 */ li $a2, 169 +/* 049CEC 7F0151BC 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 049CF0 7F0151C0 24070184 */ li $a3, 388 +/* 049CF4 7F0151C4 8FB800CC */ lw $t8, 0xcc($sp) +/* 049CF8 7F0151C8 0040A825 */ move $s5, $v0 +/* 049CFC 7F0151CC 00402025 */ move $a0, $v0 +/* 049D00 7F0151D0 2B010003 */ slti $at, $t8, 3 +/* 049D04 7F0151D4 14200009 */ bnez $at, .L7F0151FC +/* 049D08 7F0151D8 240500D4 */ li $a1, 212 +/* 049D0C 7F0151DC 24190136 */ li $t9, 310 +/* 049D10 7F0151E0 24080080 */ li $t0, 128 +/* 049D14 7F0151E4 AFA80014 */ sw $t0, 0x14($sp) +/* 049D18 7F0151E8 AFB90010 */ sw $t9, 0x10($sp) +/* 049D1C 7F0151EC 2406001E */ li $a2, 30 +/* 049D20 7F0151F0 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 049D24 7F0151F4 240700D6 */ li $a3, 214 +/* 049D28 7F0151F8 0040A825 */ move $s5, $v0 +.L7F0151FC: +/* 049D2C 7F0151FC 8FA900CC */ lw $t1, 0xcc($sp) +/* 049D30 7F015200 0000A025 */ move $s4, $zero +/* 049D34 7F015204 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 049D38 7F015208 192000B2 */ blez $t1, .L7F0154D4 +/* 049D3C 7F01520C 3C178004 */ lui $s7, %hi(ptrSecondFontTableLarge) +/* 049D40 7F015210 3C1E8004 */ lui $fp, %hi(ptrFirstFontTableLarge) +/* 049D44 7F015214 4481A000 */ mtc1 $at, $f20 +/* 049D48 7F015218 27DE0EB4 */ addiu $fp, %lo(ptrFirstFontTableLarge) # addiu $fp, $fp, 0xeb4 +/* 049D4C 7F01521C 26F70EB8 */ addiu $s7, %lo(ptrSecondFontTableLarge) # addiu $s7, $s7, 0xeb8 +/* 049D50 7F015220 2A810002 */ slti $at, $s4, 2 +.L7F015224: +/* 049D54 7F015224 14200003 */ bnez $at, .L7F015234 +/* 049D58 7F015228 328A0001 */ andi $t2, $s4, 1 +/* 049D5C 7F01522C 10000002 */ b .L7F015238 +/* 049D60 7F015230 2402008C */ li $v0, 140 +.L7F015234: +/* 049D64 7F015234 00001025 */ move $v0, $zero +.L7F015238: +/* 049D68 7F015238 11400003 */ beqz $t2, .L7F015248 +/* 049D6C 7F01523C 2456001E */ addiu $s6, $v0, 0x1e +/* 049D70 7F015240 10000002 */ b .L7F01524C +/* 049D74 7F015244 240200AF */ li $v0, 175 +.L7F015248: +/* 049D78 7F015248 00001025 */ move $v0, $zero +.L7F01524C: +/* 049D7C 7F01524C 244B002C */ addiu $t3, $v0, 0x2c +/* 049D80 7F015250 448B2000 */ mtc1 $t3, $f4 +/* 049D84 7F015254 26D00005 */ addiu $s0, $s6, 5 +/* 049D88 7F015258 44908000 */ mtc1 $s0, $f16 +/* 049D8C 7F01525C 468021A0 */ cvt.s.w $f6, $f4 +/* 049D90 7F015260 244B00CF */ addiu $t3, $v0, 0xcf +/* 049D94 7F015264 26D90087 */ addiu $t9, $s6, 0x87 +/* 049D98 7F015268 3C01ED00 */ lui $at, 0xed00 +/* 049D9C 7F01526C 02A01825 */ move $v1, $s5 +/* 049DA0 7F015270 468084A0 */ cvt.s.w $f18, $f16 +/* 049DA4 7F015274 46143202 */ mul.s $f8, $f6, $f20 +/* 049DA8 7F015278 2451007D */ addiu $s1, $v0, 0x7d +/* 049DAC 7F01527C 2E920001 */ sltiu $s2, $s4, 1 +/* 049DB0 7F015280 26B50008 */ addiu $s5, $s5, 8 +/* 049DB4 7F015284 46149102 */ mul.s $f4, $f18, $f20 +/* 049DB8 7F015288 4600428D */ trunc.w.s $f10, $f8 +/* 049DBC 7F01528C 448B4000 */ mtc1 $t3, $f8 +/* 049DC0 7F015290 4600218D */ trunc.w.s $f6, $f4 +/* 049DC4 7F015294 440D5000 */ mfc1 $t5, $f10 +/* 049DC8 7F015298 44992000 */ mtc1 $t9, $f4 +/* 049DCC 7F01529C 468042A0 */ cvt.s.w $f10, $f8 +/* 049DD0 7F0152A0 44083000 */ mfc1 $t0, $f6 +/* 049DD4 7F0152A4 31AE0FFF */ andi $t6, $t5, 0xfff +/* 049DD8 7F0152A8 000E7B00 */ sll $t7, $t6, 0xc +/* 049DDC 7F0152AC 01E1C025 */ or $t8, $t7, $at +/* 049DE0 7F0152B0 468021A0 */ cvt.s.w $f6, $f4 +/* 049DE4 7F0152B4 46145402 */ mul.s $f16, $f10, $f20 +/* 049DE8 7F0152B8 31090FFF */ andi $t1, $t0, 0xfff +/* 049DEC 7F0152BC 03095025 */ or $t2, $t8, $t1 +/* 049DF0 7F0152C0 AC6A0000 */ sw $t2, ($v1) +/* 049DF4 7F0152C4 46143202 */ mul.s $f8, $f6, $f20 +/* 049DF8 7F0152C8 4600848D */ trunc.w.s $f18, $f16 +/* 049DFC 7F0152CC 4600428D */ trunc.w.s $f10, $f8 +/* 049E00 7F0152D0 440D9000 */ mfc1 $t5, $f18 +/* 049E04 7F0152D4 44185000 */ mfc1 $t8, $f10 +/* 049E08 7F0152D8 31AE0FFF */ andi $t6, $t5, 0xfff +/* 049E0C 7F0152DC 000E7B00 */ sll $t7, $t6, 0xc +/* 049E10 7F0152E0 33090FFF */ andi $t1, $t8, 0xfff +/* 049E14 7F0152E4 01E95025 */ or $t2, $t7, $t1 +/* 049E18 7F0152E8 AC6A0004 */ sw $t2, 4($v1) +/* 049E1C 7F0152EC 12400026 */ beqz $s2, .L7F015388 +/* 049E20 7F0152F0 AFB100B4 */ sw $s1, 0xb4($sp) +/* 049E24 7F0152F4 0FC30776 */ jal get_textptr_for_textID +/* 049E28 7F0152F8 34049C58 */ li $a0, 40024 +/* 049E2C 7F0152FC 8FCB0000 */ lw $t3, ($fp) +/* 049E30 7F015300 00409825 */ move $s3, $v0 +/* 049E34 7F015304 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 049E38 7F015308 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 049E3C 7F01530C 00403025 */ move $a2, $v0 +/* 049E40 7F015310 8EE70000 */ lw $a3, ($s7) +/* 049E44 7F015314 AFA00014 */ sw $zero, 0x14($sp) +/* 049E48 7F015318 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 049E4C 7F01531C AFAB0010 */ sw $t3, 0x10($sp) +/* 049E50 7F015320 8FAC00A0 */ lw $t4, 0xa0($sp) +/* 049E54 7F015324 AFB00098 */ sw $s0, 0x98($sp) +/* 049E58 7F015328 000C6843 */ sra $t5, $t4, 1 +/* 049E5C 7F01532C 022D7023 */ subu $t6, $s1, $t5 +/* 049E60 7F015330 0C001107 */ jal get_video2_settings_txtClipW +/* 049E64 7F015334 AFAE009C */ sw $t6, 0x9c($sp) +/* 049E68 7F015338 00028400 */ sll $s0, $v0, 0x10 +/* 049E6C 7F01533C 0010CC03 */ sra $t9, $s0, 0x10 +/* 049E70 7F015340 0C00110B */ jal get_video2_settings_txtClipH +/* 049E74 7F015344 03208025 */ move $s0, $t9 +/* 049E78 7F015348 8EE80000 */ lw $t0, ($s7) +/* 049E7C 7F01534C 8FD80000 */ lw $t8, ($fp) +/* 049E80 7F015350 240F00FF */ li $t7, 255 +/* 049E84 7F015354 AFAF0018 */ sw $t7, 0x18($sp) +/* 049E88 7F015358 02A02025 */ move $a0, $s5 +/* 049E8C 7F01535C 27A5009C */ addiu $a1, $sp, 0x9c +/* 049E90 7F015360 27A60098 */ addiu $a2, $sp, 0x98 +/* 049E94 7F015364 02603825 */ move $a3, $s3 +/* 049E98 7F015368 AFB0001C */ sw $s0, 0x1c($sp) +/* 049E9C 7F01536C AFA20020 */ sw $v0, 0x20($sp) +/* 049EA0 7F015370 AFA00024 */ sw $zero, 0x24($sp) +/* 049EA4 7F015374 AFA00028 */ sw $zero, 0x28($sp) +/* 049EA8 7F015378 AFA80010 */ sw $t0, 0x10($sp) +/* 049EAC 7F01537C 0FC025D8 */ jal write_text_at_abs_coord +/* 049EB0 7F015380 AFB80014 */ sw $t8, 0x14($sp) +/* 049EB4 7F015384 0040A825 */ move $s5, $v0 +.L7F015388: +/* 049EB8 7F015388 3C098003 */ lui $t1, %hi(scenario) +/* 049EBC 7F01538C 8D29B540 */ lw $t1, %lo(scenario)($t1) +/* 049EC0 7F015390 24010005 */ li $at, 5 +/* 049EC4 7F015394 3C0B8007 */ lui $t3, %hi(teamsize) +/* 049EC8 7F015398 15210009 */ bne $t1, $at, .L7F0153C0 +/* 049ECC 7F01539C 00000000 */ nop +/* 049ED0 7F0153A0 16400005 */ bnez $s2, .L7F0153B8 +/* 049ED4 7F0153A4 02401025 */ move $v0, $s2 +/* 049ED8 7F0153A8 3C0A8007 */ lui $t2, %hi(teamsize) +/* 049EDC 7F0153AC 8D4A9788 */ lw $t2, %lo(teamsize)($t2) +/* 049EE0 7F0153B0 028A1026 */ xor $v0, $s4, $t2 +/* 049EE4 7F0153B4 2C420001 */ sltiu $v0, $v0, 1 +.L7F0153B8: +/* 049EE8 7F0153B8 10000004 */ b .L7F0153CC +/* 049EEC 7F0153BC 00408025 */ move $s0, $v0 +.L7F0153C0: +/* 049EF0 7F0153C0 8D6B9788 */ lw $t3, %lo(teamsize)($t3) +/* 049EF4 7F0153C4 028B8026 */ xor $s0, $s4, $t3 +/* 049EF8 7F0153C8 0010802B */ sltu $s0, $zero, $s0 +.L7F0153CC: +/* 049EFC 7F0153CC 12000005 */ beqz $s0, .L7F0153E4 +/* 049F00 7F0153D0 00000000 */ nop +/* 049F04 7F0153D4 0FC30776 */ jal get_textptr_for_textID +/* 049F08 7F0153D8 34049C59 */ li $a0, 40025 +/* 049F0C 7F0153DC 10000004 */ b .L7F0153F0 +/* 049F10 7F0153E0 00408825 */ move $s1, $v0 +.L7F0153E4: +/* 049F14 7F0153E4 0FC30776 */ jal get_textptr_for_textID +/* 049F18 7F0153E8 34049C5A */ li $a0, 40026 +/* 049F1C 7F0153EC 00408825 */ move $s1, $v0 +.L7F0153F0: +/* 049F20 7F0153F0 12000004 */ beqz $s0, .L7F015404 +/* 049F24 7F0153F4 27A40090 */ addiu $a0, $sp, 0x90 +/* 049F28 7F0153F8 3C12FF00 */ lui $s2, (0xFF0000FF >> 16) # lui $s2, 0xff00 +/* 049F2C 7F0153FC 10000002 */ b .L7F015408 +/* 049F30 7F015400 365200FF */ ori $s2, (0xFF0000FF & 0xFFFF) # ori $s2, $s2, 0xff +.L7F015404: +/* 049F34 7F015404 3412FFFF */ li $s2, 65535 +.L7F015408: +/* 049F38 7F015408 8FCC0000 */ lw $t4, ($fp) +/* 049F3C 7F01540C 27A5008C */ addiu $a1, $sp, 0x8c +/* 049F40 7F015410 02203025 */ move $a2, $s1 +/* 049F44 7F015414 8EE70000 */ lw $a3, ($s7) +/* 049F48 7F015418 AFA00014 */ sw $zero, 0x14($sp) +/* 049F4C 7F01541C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 049F50 7F015420 AFAC0010 */ sw $t4, 0x10($sp) +/* 049F54 7F015424 8FB80090 */ lw $t8, 0x90($sp) +/* 049F58 7F015428 8FAE008C */ lw $t6, 0x8c($sp) +/* 049F5C 7F01542C 8FAD00B4 */ lw $t5, 0xb4($sp) +/* 049F60 7F015430 3C028007 */ lui $v0, %hi(teamsize) +/* 049F64 7F015434 8C429788 */ lw $v0, %lo(teamsize)($v0) +/* 049F68 7F015438 00187843 */ sra $t7, $t8, 1 +/* 049F6C 7F01543C 02CF4823 */ subu $t1, $s6, $t7 +/* 049F70 7F015440 000EC843 */ sra $t9, $t6, 1 +/* 049F74 7F015444 252A0046 */ addiu $t2, $t1, 0x46 +/* 049F78 7F015448 01B94023 */ subu $t0, $t5, $t9 +/* 049F7C 7F01544C AFA80088 */ sw $t0, 0x88($sp) +/* 049F80 7F015450 16820007 */ bne $s4, $v0, .L7F015470 +/* 049F84 7F015454 AFAA0084 */ sw $t2, 0x84($sp) +/* 049F88 7F015458 1682001A */ bne $s4, $v0, .L7F0154C4 +/* 049F8C 7F01545C 3C0B8003 */ lui $t3, %hi(D_8002B560) +/* 049F90 7F015460 8D6BB560 */ lw $t3, %lo(D_8002B560)($t3) +/* 049F94 7F015464 2961000A */ slti $at, $t3, 0xa +/* 049F98 7F015468 50200017 */ beql $at, $zero, .L7F0154C8 +/* 049F9C 7F01546C 8FB900CC */ lw $t9, 0xcc($sp) +.L7F015470: +/* 049FA0 7F015470 0C001107 */ jal get_video2_settings_txtClipW +/* 049FA4 7F015474 00000000 */ nop +/* 049FA8 7F015478 00028400 */ sll $s0, $v0, 0x10 +/* 049FAC 7F01547C 00106403 */ sra $t4, $s0, 0x10 +/* 049FB0 7F015480 0C00110B */ jal get_video2_settings_txtClipH +/* 049FB4 7F015484 01808025 */ move $s0, $t4 +/* 049FB8 7F015488 8EEE0000 */ lw $t6, ($s7) +/* 049FBC 7F01548C 8FCD0000 */ lw $t5, ($fp) +/* 049FC0 7F015490 02A02025 */ move $a0, $s5 +/* 049FC4 7F015494 27A50088 */ addiu $a1, $sp, 0x88 +/* 049FC8 7F015498 27A60084 */ addiu $a2, $sp, 0x84 +/* 049FCC 7F01549C 02203825 */ move $a3, $s1 +/* 049FD0 7F0154A0 AFB20018 */ sw $s2, 0x18($sp) +/* 049FD4 7F0154A4 AFB0001C */ sw $s0, 0x1c($sp) +/* 049FD8 7F0154A8 AFA20020 */ sw $v0, 0x20($sp) +/* 049FDC 7F0154AC AFA00024 */ sw $zero, 0x24($sp) +/* 049FE0 7F0154B0 AFA00028 */ sw $zero, 0x28($sp) +/* 049FE4 7F0154B4 AFAE0010 */ sw $t6, 0x10($sp) +/* 049FE8 7F0154B8 0FC025D8 */ jal write_text_at_abs_coord +/* 049FEC 7F0154BC AFAD0014 */ sw $t5, 0x14($sp) +/* 049FF0 7F0154C0 0040A825 */ move $s5, $v0 +.L7F0154C4: +/* 049FF4 7F0154C4 8FB900CC */ lw $t9, 0xcc($sp) +.L7F0154C8: +/* 049FF8 7F0154C8 26940001 */ addiu $s4, $s4, 1 +/* 049FFC 7F0154CC 5699FF55 */ bnel $s4, $t9, .L7F015224 +/* 04A000 7F0154D0 2A810002 */ slti $at, $s4, 2 +.L7F0154D4: +/* 04A004 7F0154D4 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 04A008 7F0154D8 02A02025 */ move $a0, $s5 +/* 04A00C 7F0154DC 8FBF0064 */ lw $ra, 0x64($sp) +/* 04A010 7F0154E0 D7B40038 */ ldc1 $f20, 0x38($sp) +/* 04A014 7F0154E4 8FB00040 */ lw $s0, 0x40($sp) +/* 04A018 7F0154E8 8FB10044 */ lw $s1, 0x44($sp) +/* 04A01C 7F0154EC 8FB20048 */ lw $s2, 0x48($sp) +/* 04A020 7F0154F0 8FB3004C */ lw $s3, 0x4c($sp) +/* 04A024 7F0154F4 8FB40050 */ lw $s4, 0x50($sp) +/* 04A028 7F0154F8 8FB50054 */ lw $s5, 0x54($sp) +/* 04A02C 7F0154FC 8FB60058 */ lw $s6, 0x58($sp) +/* 04A030 7F015500 8FB7005C */ lw $s7, 0x5c($sp) +/* 04A034 7F015504 8FBE0060 */ lw $fp, 0x60($sp) +/* 04A038 7F015508 03E00008 */ jr $ra +/* 04A03C 7F01550C 27BD00D0 */ addiu $sp, $sp, 0xd0 +) +#endif + + + +#ifdef NONMATCHING +void set_briefing_page(WATCH_BRIEFING_PAGE page) +{ + current_menu_briefing_page = page; +} +#else +GLOBAL_ASM( +.text +glabel set_briefing_page +/* 04A040 7F015510 3C028003 */ lui $v0, %hi(current_menu_briefing_page) +/* 04A044 7F015514 2442A914 */ addiu $v0, %lo(current_menu_briefing_page) # addiu $v0, $v0, -0x56ec +/* 04A048 7F015518 03E00008 */ jr $ra +/* 04A04C 7F01551C AC440000 */ sw $a0, ($v0) +) +#endif + + + + + + +#ifdef NONMATCHING +s32 load_briefing_text_for_stage(void) +{ + s32 sp20; + s32 temp_s0; + s32 temp_v0; + void *phi_v1; + s32 phi_v0; + + temp_s0 = ptr_logo_and_walletbond_DL + 0xa000; + ptrbriefingdata = _load_resource_named_to_buffer((0x80030000 + (briefingpage * 0x1c))->unk-5404, 1, temp_s0, 0x200); + sp20 = 0x6de00; + load_briefing_text_bank(get_textbank_number_for_stagenum((0x80030000 + (briefingpage * 0x1c))->unk-5414), temp_s0 + 0x200, sp20); + phi_v1 = ptrbriefingdata; + phi_v0 = 0; +loop_1: + temp_v0 = phi_v0 + 4; + if (phi_v1->unk8 != 0) + { + phi_v1 = phi_v1 + 4; + phi_v0 = temp_v0; + if (temp_v0 != 0x28) + { + goto loop_1; + } + } + return temp_v0; +} +#else +GLOBAL_ASM( +.text +glabel load_briefing_text_for_stage +/* 04A050 7F015520 3C0E8003 */ lui $t6, %hi(briefingpage) +/* 04A054 7F015524 8DCEA8F8 */ lw $t6, %lo(briefingpage)($t6) +/* 04A058 7F015528 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 04A05C 7F01552C AFB00018 */ sw $s0, 0x18($sp) +/* 04A060 7F015530 3C108003 */ lui $s0, %hi(ptr_logo_and_walletbond_DL) +/* 04A064 7F015534 8E10A950 */ lw $s0, %lo(ptr_logo_and_walletbond_DL)($s0) +/* 04A068 7F015538 000E78C0 */ sll $t7, $t6, 3 +/* 04A06C 7F01553C 01EE7823 */ subu $t7, $t7, $t6 +/* 04A070 7F015540 3401A000 */ li $at, 40960 +/* 04A074 7F015544 000F7880 */ sll $t7, $t7, 2 +/* 04A078 7F015548 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+24) +/* 04A07C 7F01554C AFBF001C */ sw $ra, 0x1c($sp) +/* 04A080 7F015550 008F2021 */ addu $a0, $a0, $t7 +/* 04A084 7F015554 02018021 */ addu $s0, $s0, $at +/* 04A088 7F015558 02003025 */ move $a2, $s0 +/* 04A08C 7F01555C 8C84ABFC */ lw $a0, %lo(mission_folder_setup_entries+24)($a0) +/* 04A090 7F015560 24050001 */ li $a1, 1 +/* 04A094 7F015564 0FC2F350 */ jal _load_resource_named_to_buffer +/* 04A098 7F015568 24070200 */ li $a3, 512 +/* 04A09C 7F01556C 3C198003 */ lui $t9, %hi(briefingpage) +/* 04A0A0 7F015570 8F39A8F8 */ lw $t9, %lo(briefingpage)($t9) +/* 04A0A4 7F015574 3C180006 */ lui $t8, (0x0006DE00 >> 16) # lui $t8, 6 +/* 04A0A8 7F015578 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+8) +/* 04A0AC 7F01557C 001940C0 */ sll $t0, $t9, 3 +/* 04A0B0 7F015580 01194023 */ subu $t0, $t0, $t9 +/* 04A0B4 7F015584 00084080 */ sll $t0, $t0, 2 +/* 04A0B8 7F015588 3C018007 */ lui $at, %hi(ptrbriefingdata) +/* 04A0BC 7F01558C 3718DE00 */ ori $t8, (0x0006DE00 & 0xFFFF) # ori $t8, $t8, 0xde00 +/* 04A0C0 7F015590 00882021 */ addu $a0, $a0, $t0 +/* 04A0C4 7F015594 AC22978C */ sw $v0, %lo(ptrbriefingdata)($at) +/* 04A0C8 7F015598 26100200 */ addiu $s0, $s0, 0x200 +/* 04A0CC 7F01559C AFB80020 */ sw $t8, 0x20($sp) +/* 04A0D0 7F0155A0 0FC30578 */ jal get_textbank_number_for_stagenum +/* 04A0D4 7F0155A4 8C84ABEC */ lw $a0, %lo(mission_folder_setup_entries+8)($a0) +/* 04A0D8 7F0155A8 00402025 */ move $a0, $v0 +/* 04A0DC 7F0155AC 02002825 */ move $a1, $s0 +/* 04A0E0 7F0155B0 0FC30759 */ jal load_briefing_text_bank +/* 04A0E4 7F0155B4 8FA60020 */ lw $a2, 0x20($sp) +/* 04A0E8 7F0155B8 3C038007 */ lui $v1, %hi(ptrbriefingdata) +/* 04A0EC 7F0155BC 8C63978C */ lw $v1, %lo(ptrbriefingdata)($v1) +/* 04A0F0 7F0155C0 00001025 */ move $v0, $zero +/* 04A0F4 7F0155C4 24040028 */ li $a0, 40 +.L7F0155C8: +/* 04A0F8 7F0155C8 94690008 */ lhu $t1, 8($v1) +/* 04A0FC 7F0155CC 24420004 */ addiu $v0, $v0, 4 +/* 04A100 7F0155D0 51200004 */ beql $t1, $zero, .L7F0155E4 +/* 04A104 7F0155D4 8FBF001C */ lw $ra, 0x1c($sp) +/* 04A108 7F0155D8 1444FFFB */ bne $v0, $a0, .L7F0155C8 +/* 04A10C 7F0155DC 24630004 */ addiu $v1, $v1, 4 +/* 04A110 7F0155E0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0155E4: +/* 04A114 7F0155E4 8FB00018 */ lw $s0, 0x18($sp) +/* 04A118 7F0155E8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 04A11C 7F0155EC 03E00008 */ jr $ra +/* 04A120 7F0155F0 00000000 */ nop +) +#endif + + + +void init_menu0A_briefing(void) +{ + tab_2_selected = 0; + tab_3_selected = 0; + final_menu_briefing_page = 5; + set_briefing_page(0); + load_walletbond(); + load_briefing_text_for_stage(); +} + +void update_menu0A_briefing(void) +{ + blank_text_bank(get_textbank_number_for_stagenum(mission_folder_setup_entries[briefingpage].stage_id)); + if (-1 < menu_update) { + sub_GAME_7F00B990(); + } +} + + + + + + + +#ifdef NONMATCHING +void interface_menu0A_briefing(void) +{ + setvideo_far(0x42700000); + video_related_21(D_80051AB8); + set_page_height(0x42c80000, D_80051ABC); + set_video2_settings_offset_24(0); + tab_3_highlight = 0; + tab_2_highlight = 0; + tab_1_highlight = 0; + if (isontab3() != 0) + { + tab_3_highlight = 1; + } + else + { + if ((isontab2() != 0) && (current_menu_briefing_page < (final_menu_briefing_page + -1))) + { + tab_2_highlight = 1; + } + else + { + if (isontab1() != 0) + { + tab_1_highlight = 1; + } + else + { + if (current_menu_briefing_page < (final_menu_briefing_page + -1)) + { + tab_2_highlight = 1; + } + else + { + tab_1_highlight = 1; + } + } + } + } + if (get_controller_buttons_pressed(0, 0x1000) != 0) + { + tab_2_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if (get_controller_buttons_pressed(0, 0xa000) != 0) + { + if (tab_2_highlight != 0) + { + set_briefing_page(current_menu_briefing_page + 1); + } + else + { + if (tab_3_highlight != 0) + { + if (current_menu_briefing_page > 0) + { + set_briefing_page(current_menu_briefing_page + -1); + } + else + { + tab_3_selected = 1; + } + } + else + { + if (tab_1_highlight != 0) + { + tab_2_selected = 1; + } + } + } + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if (get_controller_buttons_pressed(0, 0x4000) != 0) + { + if (current_menu_briefing_page > 0) + { + set_briefing_page(current_menu_briefing_page + -1); + } + else + { + tab_3_selected = 1; + } + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + disable_all_switches(ptr_folder_object_instance); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0xc, (u32) current_menu_briefing_page < 1U); + set_item_visibility_in_objinstance(ptr_folder_object_instance, (0x80030000 + (briefingpage * 0x1c))->unk-5408 + 0x16, (u32) current_menu_briefing_page < 1U); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 6, 1); + menu_control_stick_tracking(); + if (tab_2_selected != 0) + { + set_menu_to_mode(MENU_RUN_STAGE, 1); + return; + } + if (tab_3_selected != 0) + { + set_menu_to_mode(MENU_MISSION_SELECT, 0); + set_cursor_to_stage_solo((0x80030000 + (briefingpage * 0x1c))->unk-5408); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051AB8 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051ABC +.word 0x461C4000 /*10000.0;*/ +.text +glabel interface_menu0A_briefing +/* 04A1CC 7F01569C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 04A1D0 7F0156A0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 04A1D4 7F0156A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 04A1D8 7F0156A8 44816000 */ mtc1 $at, $f12 +/* 04A1DC 7F0156AC 0C001151 */ jal setvideo_far +/* 04A1E0 7F0156B0 00000000 */ nop +/* 04A1E4 7F0156B4 3C018005 */ lui $at, %hi(D_80051AB8) +/* 04A1E8 7F0156B8 0C001164 */ jal video_related_21 +/* 04A1EC 7F0156BC C42C1AB8 */ lwc1 $f12, %lo(D_80051AB8)($at) +/* 04A1F0 7F0156C0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04A1F4 7F0156C4 44816000 */ mtc1 $at, $f12 +/* 04A1F8 7F0156C8 3C018005 */ lui $at, %hi(D_80051ABC) +/* 04A1FC 7F0156CC 0C001194 */ jal set_page_height +/* 04A200 7F0156D0 C42E1ABC */ lwc1 $f14, %lo(D_80051ABC)($at) +/* 04A204 7F0156D4 0C00114D */ jal set_video2_settings_offset_24 +/* 04A208 7F0156D8 00002025 */ move $a0, $zero +/* 04A20C 7F0156DC 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04A210 7F0156E0 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 04A214 7F0156E4 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04A218 7F0156E8 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 04A21C 7F0156EC 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 04A220 7F0156F0 0FC028E7 */ jal isontab3 +/* 04A224 7F0156F4 AC20A8DC */ sw $zero, %lo(tab_1_highlight)($at) +/* 04A228 7F0156F8 10400004 */ beqz $v0, .L7F01570C +/* 04A22C 7F0156FC 24030001 */ li $v1, 1 +/* 04A230 7F015700 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04A234 7F015704 10000025 */ b .L7F01579C +/* 04A238 7F015708 AC23A8E4 */ sw $v1, %lo(tab_3_highlight)($at) +.L7F01570C: +/* 04A23C 7F01570C 0FC0295E */ jal isontab2 +/* 04A240 7F015710 00000000 */ nop +/* 04A244 7F015714 1040000B */ beqz $v0, .L7F015744 +/* 04A248 7F015718 3C0E8003 */ lui $t6, %hi(current_menu_briefing_page) +/* 04A24C 7F01571C 3C0F8003 */ lui $t7, %hi(final_menu_briefing_page) +/* 04A250 7F015720 8DEFA910 */ lw $t7, %lo(final_menu_briefing_page)($t7) +/* 04A254 7F015724 8DCEA914 */ lw $t6, %lo(current_menu_briefing_page)($t6) +/* 04A258 7F015728 24030001 */ li $v1, 1 +/* 04A25C 7F01572C 25F8FFFF */ addiu $t8, $t7, -1 +/* 04A260 7F015730 01D8082A */ slt $at, $t6, $t8 +/* 04A264 7F015734 10200003 */ beqz $at, .L7F015744 +/* 04A268 7F015738 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04A26C 7F01573C 10000017 */ b .L7F01579C +/* 04A270 7F015740 AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) +.L7F015744: +/* 04A274 7F015744 0FC02879 */ jal isontab1 +/* 04A278 7F015748 00000000 */ nop +/* 04A27C 7F01574C 10400005 */ beqz $v0, .L7F015764 +/* 04A280 7F015750 3C198003 */ lui $t9, %hi(current_menu_briefing_page) +/* 04A284 7F015754 24030001 */ li $v1, 1 +/* 04A288 7F015758 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 04A28C 7F01575C 1000000F */ b .L7F01579C +/* 04A290 7F015760 AC23A8DC */ sw $v1, %lo(tab_1_highlight)($at) +.L7F015764: +/* 04A294 7F015764 3C088003 */ lui $t0, %hi(final_menu_briefing_page) +/* 04A298 7F015768 8D08A910 */ lw $t0, %lo(final_menu_briefing_page)($t0) +/* 04A29C 7F01576C 8F39A914 */ lw $t9, %lo(current_menu_briefing_page)($t9) +/* 04A2A0 7F015770 24030001 */ li $v1, 1 +/* 04A2A4 7F015774 2509FFFF */ addiu $t1, $t0, -1 +/* 04A2A8 7F015778 0329082A */ slt $at, $t9, $t1 +/* 04A2AC 7F01577C 10200005 */ beqz $at, .L7F015794 +/* 04A2B0 7F015780 00000000 */ nop +/* 04A2B4 7F015784 24030001 */ li $v1, 1 +/* 04A2B8 7F015788 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04A2BC 7F01578C 10000003 */ b .L7F01579C +/* 04A2C0 7F015790 AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) +.L7F015794: +/* 04A2C4 7F015794 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 04A2C8 7F015798 AC23A8DC */ sw $v1, %lo(tab_1_highlight)($at) +.L7F01579C: +/* 04A2CC 7F01579C 00002025 */ move $a0, $zero +/* 04A2D0 7F0157A0 0C0030EB */ jal get_controller_buttons_pressed +/* 04A2D4 7F0157A4 24051000 */ li $a1, 4096 +/* 04A2D8 7F0157A8 1040000A */ beqz $v0, .L7F0157D4 +/* 04A2DC 7F0157AC 24030001 */ li $v1, 1 +/* 04A2E0 7F0157B0 3C018003 */ lui $at, %hi(tab_2_selected) +/* 04A2E4 7F0157B4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04A2E8 7F0157B8 AC23A8D4 */ sw $v1, %lo(tab_2_selected)($at) +/* 04A2EC 7F0157BC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04A2F0 7F0157C0 240500C7 */ li $a1, 199 +/* 04A2F4 7F0157C4 0C002382 */ jal play_sfx_a1 +/* 04A2F8 7F0157C8 00003025 */ move $a2, $zero +/* 04A2FC 7F0157CC 10000040 */ b .L7F0158D0 +/* 04A300 7F0157D0 00000000 */ nop +.L7F0157D4: +/* 04A304 7F0157D4 00002025 */ move $a0, $zero +/* 04A308 7F0157D8 0C0030EB */ jal get_controller_buttons_pressed +/* 04A30C 7F0157DC 3405A000 */ li $a1, 40960 +/* 04A310 7F0157E0 10400027 */ beqz $v0, .L7F015880 +/* 04A314 7F0157E4 24030001 */ li $v1, 1 +/* 04A318 7F0157E8 3C0A8003 */ lui $t2, %hi(tab_2_highlight) +/* 04A31C 7F0157EC 8D4AA8E0 */ lw $t2, %lo(tab_2_highlight)($t2) +/* 04A320 7F0157F0 3C048003 */ lui $a0, %hi(current_menu_briefing_page) +/* 04A324 7F0157F4 3C0B8003 */ lui $t3, %hi(tab_3_highlight) +/* 04A328 7F0157F8 11400006 */ beqz $t2, .L7F015814 +/* 04A32C 7F0157FC 00000000 */ nop +/* 04A330 7F015800 8C84A914 */ lw $a0, %lo(current_menu_briefing_page)($a0) +/* 04A334 7F015804 0FC05544 */ jal set_briefing_page +/* 04A338 7F015808 24840001 */ addiu $a0, $a0, 1 +/* 04A33C 7F01580C 10000015 */ b .L7F015864 +/* 04A340 7F015810 00000000 */ nop +.L7F015814: +/* 04A344 7F015814 8D6BA8E4 */ lw $t3, %lo(tab_3_highlight)($t3) +/* 04A348 7F015818 3C028003 */ lui $v0, %hi(current_menu_briefing_page) +/* 04A34C 7F01581C 3C0C8003 */ lui $t4, %hi(tab_1_highlight) +/* 04A350 7F015820 1160000B */ beqz $t3, .L7F015850 +/* 04A354 7F015824 00000000 */ nop +/* 04A358 7F015828 8C42A914 */ lw $v0, %lo(current_menu_briefing_page)($v0) +/* 04A35C 7F01582C 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04A360 7F015830 18400005 */ blez $v0, .L7F015848 +/* 04A364 7F015834 00000000 */ nop +/* 04A368 7F015838 0FC05544 */ jal set_briefing_page +/* 04A36C 7F01583C 2444FFFF */ addiu $a0, $v0, -1 +/* 04A370 7F015840 10000008 */ b .L7F015864 +/* 04A374 7F015844 00000000 */ nop +.L7F015848: +/* 04A378 7F015848 10000006 */ b .L7F015864 +/* 04A37C 7F01584C AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +.L7F015850: +/* 04A380 7F015850 8D8CA8DC */ lw $t4, %lo(tab_1_highlight)($t4) +/* 04A384 7F015854 3C018003 */ lui $at, %hi(tab_2_selected) +/* 04A388 7F015858 11800002 */ beqz $t4, .L7F015864 +/* 04A38C 7F01585C 00000000 */ nop +/* 04A390 7F015860 AC23A8D4 */ sw $v1, %lo(tab_2_selected)($at) +.L7F015864: +/* 04A394 7F015864 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04A398 7F015868 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04A39C 7F01586C 240500C7 */ li $a1, 199 +/* 04A3A0 7F015870 0C002382 */ jal play_sfx_a1 +/* 04A3A4 7F015874 00003025 */ move $a2, $zero +/* 04A3A8 7F015878 10000015 */ b .L7F0158D0 +/* 04A3AC 7F01587C 00000000 */ nop +.L7F015880: +/* 04A3B0 7F015880 00002025 */ move $a0, $zero +/* 04A3B4 7F015884 0C0030EB */ jal get_controller_buttons_pressed +/* 04A3B8 7F015888 24054000 */ li $a1, 16384 +/* 04A3BC 7F01588C 10400010 */ beqz $v0, .L7F0158D0 +/* 04A3C0 7F015890 24030001 */ li $v1, 1 +/* 04A3C4 7F015894 3C028003 */ lui $v0, %hi(current_menu_briefing_page) +/* 04A3C8 7F015898 8C42A914 */ lw $v0, %lo(current_menu_briefing_page)($v0) +/* 04A3CC 7F01589C 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04A3D0 7F0158A0 18400005 */ blez $v0, .L7F0158B8 +/* 04A3D4 7F0158A4 00000000 */ nop +/* 04A3D8 7F0158A8 0FC05544 */ jal set_briefing_page +/* 04A3DC 7F0158AC 2444FFFF */ addiu $a0, $v0, -1 +/* 04A3E0 7F0158B0 10000002 */ b .L7F0158BC +/* 04A3E4 7F0158B4 00000000 */ nop +.L7F0158B8: +/* 04A3E8 7F0158B8 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +.L7F0158BC: +/* 04A3EC 7F0158BC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04A3F0 7F0158C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04A3F4 7F0158C4 240500C7 */ li $a1, 199 +/* 04A3F8 7F0158C8 0C002382 */ jal play_sfx_a1 +/* 04A3FC 7F0158CC 00003025 */ move $a2, $zero +.L7F0158D0: +/* 04A400 7F0158D0 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04A404 7F0158D4 0FC02DC9 */ jal disable_all_switches +/* 04A408 7F0158D8 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04A40C 7F0158DC 3C068003 */ lui $a2, %hi(current_menu_briefing_page) +/* 04A410 7F0158E0 8CC6A914 */ lw $a2, %lo(current_menu_briefing_page)($a2) +/* 04A414 7F0158E4 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04A418 7F0158E8 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04A41C 7F0158EC 2CCD0001 */ sltiu $t5, $a2, 1 +/* 04A420 7F0158F0 01A03025 */ move $a2, $t5 +/* 04A424 7F0158F4 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04A428 7F0158F8 2405000C */ li $a1, 12 +/* 04A42C 7F0158FC 3C0F8003 */ lui $t7, %hi(briefingpage) +/* 04A430 7F015900 8DEFA8F8 */ lw $t7, %lo(briefingpage)($t7) +/* 04A434 7F015904 3C068003 */ lui $a2, %hi(current_menu_briefing_page) +/* 04A438 7F015908 8CC6A914 */ lw $a2, %lo(current_menu_briefing_page)($a2) +/* 04A43C 7F01590C 000F70C0 */ sll $t6, $t7, 3 +/* 04A440 7F015910 01CF7023 */ subu $t6, $t6, $t7 +/* 04A444 7F015914 000E7080 */ sll $t6, $t6, 2 +/* 04A448 7F015918 3C058003 */ lui $a1, %hi(mission_folder_setup_entries+20) +/* 04A44C 7F01591C 00AE2821 */ addu $a1, $a1, $t6 +/* 04A450 7F015920 8CA5ABF8 */ lw $a1, %lo(mission_folder_setup_entries+20)($a1) +/* 04A454 7F015924 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04A458 7F015928 2CD80001 */ sltiu $t8, $a2, 1 +/* 04A45C 7F01592C 03003025 */ move $a2, $t8 +/* 04A460 7F015930 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04A464 7F015934 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04A468 7F015938 24A50016 */ addiu $a1, $a1, 0x16 +/* 04A46C 7F01593C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04A470 7F015940 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04A474 7F015944 00002825 */ move $a1, $zero +/* 04A478 7F015948 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04A47C 7F01594C 24060001 */ li $a2, 1 +/* 04A480 7F015950 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04A484 7F015954 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04A488 7F015958 24050001 */ li $a1, 1 +/* 04A48C 7F01595C 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04A490 7F015960 24060001 */ li $a2, 1 +/* 04A494 7F015964 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04A498 7F015968 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04A49C 7F01596C 24050003 */ li $a1, 3 +/* 04A4A0 7F015970 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04A4A4 7F015974 24060001 */ li $a2, 1 +/* 04A4A8 7F015978 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04A4AC 7F01597C 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04A4B0 7F015980 24050006 */ li $a1, 6 +/* 04A4B4 7F015984 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04A4B8 7F015988 24060001 */ li $a2, 1 +/* 04A4BC 7F01598C 0FC026E1 */ jal menu_control_stick_tracking +/* 04A4C0 7F015990 00000000 */ nop +/* 04A4C4 7F015994 3C088003 */ lui $t0, %hi(tab_2_selected) +/* 04A4C8 7F015998 8D08A8D4 */ lw $t0, %lo(tab_2_selected)($t0) +/* 04A4CC 7F01599C 2404000B */ li $a0, 11 +/* 04A4D0 7F0159A0 3C198003 */ lui $t9, %hi(tab_3_selected) +/* 04A4D4 7F0159A4 11000005 */ beqz $t0, .L7F0159BC +/* 04A4D8 7F0159A8 00000000 */ nop +/* 04A4DC 7F0159AC 0FC06975 */ jal set_menu_to_mode +/* 04A4E0 7F0159B0 24050001 */ li $a1, 1 +/* 04A4E4 7F0159B4 10000011 */ b .L7F0159FC +/* 04A4E8 7F0159B8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0159BC: +/* 04A4EC 7F0159BC 8F39A8D8 */ lw $t9, %lo(tab_3_selected)($t9) +/* 04A4F0 7F0159C0 24040007 */ li $a0, 7 +/* 04A4F4 7F0159C4 5320000D */ beql $t9, $zero, .L7F0159FC +/* 04A4F8 7F0159C8 8FBF0014 */ lw $ra, 0x14($sp) +/* 04A4FC 7F0159CC 0FC06975 */ jal set_menu_to_mode +/* 04A500 7F0159D0 00002825 */ move $a1, $zero +/* 04A504 7F0159D4 3C098003 */ lui $t1, %hi(briefingpage) +/* 04A508 7F0159D8 8D29A8F8 */ lw $t1, %lo(briefingpage)($t1) +/* 04A50C 7F0159DC 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+20) +/* 04A510 7F0159E0 000950C0 */ sll $t2, $t1, 3 +/* 04A514 7F0159E4 01495023 */ subu $t2, $t2, $t1 +/* 04A518 7F0159E8 000A5080 */ sll $t2, $t2, 2 +/* 04A51C 7F0159EC 008A2021 */ addu $a0, $a0, $t2 +/* 04A520 7F0159F0 0FC038F8 */ jal set_cursor_to_stage_solo +/* 04A524 7F0159F4 8C84ABF8 */ lw $a0, %lo(mission_folder_setup_entries+20)($a0) +/* 04A528 7F0159F8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0159FC: +/* 04A52C 7F0159FC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 04A530 7F015A00 03E00008 */ jr $ra +/* 04A534 7F015A04 00000000 */ nop +) +#endif + + + + + + +#ifdef NONMATCHING +u32 * print_objectives_and_status_to_menu(u32 *param_1,int param_2,u8 *param_3,int param_4) +{ + ushort uVar1; + u8 *pbVar2; + short sVar5; + short sVar6; + u32 *puVar3; + int iVar4; + int iVar7; + u32 uVar8; + int iVar9; + u32 uStack24; + u32 uStack20; + int iStack16; + int iStack12; + int iStack8; + int iStack4; + + iStack8 = 0; + iVar9 = 0; + iStack4 = 0; + iVar7 = 0; + do { + uVar1 = *(ushort *)(ptrbriefingdata + iVar7 + 8); + if (uVar1 == 0) { + iStack4 += 1; + } + else { + if ((s32)selected_difficulty < + (s32)(s32)*(ushort *)(ptrbriefingdata + iVar7 + 10)) { + iStack4 += 1; + } + else { + pbVar2 = get_textptr_for_textID((u32)uVar1); + textpointer_load_parse_something((char *)param_3,aA_); + *param_3 = *param_3 + (char)iStack8; + iStack12 = 0; + iStack16 = 0; + proc_7F0AE98C(&iStack12,&iStack16,param_3,(int)ptrSecondFontTableLarge,(int *)ptrFirstFontTableLarge,0 + ); + uStack20 = 0x37; + uStack24 = iStack12 * iVar9 + param_2; + sVar5 = get_video2_settings_txtClipW(); + sVar6 = get_video2_settings_txtClipH(); + puVar3 = write_text_at_abs_coord + (param_1,&uStack20,&uStack24,param_3,(int)ptrSecondFontTableLarge, + (int)ptrFirstFontTableLarge,0xff,(int)sVar5,(int)sVar6,0,0); + uStack20 = 0x4b; + uStack24 = iStack12 * iVar9 + param_2; + if (param_4 == 0) { + proc_7F0AEB64(0x140,pbVar2,param_3,(int)ptrSecondFontTableLarge,(int *)ptrFirstFontTableLarge); + } + else { + proc_7F0ACB94(2); + proc_7F0AEB64(0xdc,pbVar2,param_3,(int)ptrSecondFontTableLarge,(int *)ptrFirstFontTableLarge); + proc_7F0ACB94(0); + } + sVar5 = get_video2_settings_txtClipW(); + sVar6 = get_video2_settings_txtClipH(); + param_1 = write_text_at_abs_coord + (puVar3,&uStack20,&uStack24,param_3,(int)ptrSecondFontTableLarge, + (int)ptrFirstFontTableLarge,0xff,(int)sVar5,(int)sVar6,0,0); + if (param_4 != 0) { + iVar4 = get_status_of_objective((s32)iStack4); + if ((iVar4 == 0) || (iVar4 != 1)) { + uVar8 = 0x780000ff; + pbVar2 = get_textptr_for_textID(TEXT(LTITLE, 0x5c)); + } + else { + uVar8 = 0xff; + pbVar2 = get_textptr_for_textID(TEXT(LTITLE, 0x5b)); + } + uStack20 = 0x136; + uStack24 = iStack12 * iVar9 + param_2; + sVar5 = get_video2_settings_txtClipW(); + sVar6 = get_video2_settings_txtClipH(); + param_1 = write_text_at_abs_coord + (param_1,&uStack20,&uStack24,pbVar2,(int)ptrSecondFontTableLarge, + (int)ptrFirstFontTableLarge,uVar8,(int)sVar5,(int)sVar6,0,0); + } + iVar4 = proc_7F0AC0E8((char *)param_3); + iVar9 += iVar4; + iStack8 += 1; + iStack4 += 1; + } + } + iVar7 += 4; + } while (iStack4 != 10); + return param_1; +} +#else +const char aA_[] = "a.\n"; +GLOBAL_ASM( +.text +glabel print_objectives_and_status_to_menu +/* 04A538 7F015A08 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 04A53C 7F015A0C AFB5004C */ sw $s5, 0x4c($sp) +/* 04A540 7F015A10 AFB40048 */ sw $s4, 0x48($sp) +/* 04A544 7F015A14 AFBE0058 */ sw $fp, 0x58($sp) +/* 04A548 7F015A18 AFB60050 */ sw $s6, 0x50($sp) +/* 04A54C 7F015A1C AFB30044 */ sw $s3, 0x44($sp) +/* 04A550 7F015A20 3C148004 */ lui $s4, %hi(ptrSecondFontTableLarge) +/* 04A554 7F015A24 3C158004 */ lui $s5, %hi(ptrFirstFontTableLarge) +/* 04A558 7F015A28 00C09825 */ move $s3, $a2 +/* 04A55C 7F015A2C 0080B025 */ move $s6, $a0 +/* 04A560 7F015A30 AFBF005C */ sw $ra, 0x5c($sp) +/* 04A564 7F015A34 AFB70054 */ sw $s7, 0x54($sp) +/* 04A568 7F015A38 AFB20040 */ sw $s2, 0x40($sp) +/* 04A56C 7F015A3C AFB1003C */ sw $s1, 0x3c($sp) +/* 04A570 7F015A40 AFB00038 */ sw $s0, 0x38($sp) +/* 04A574 7F015A44 AFA500A4 */ sw $a1, 0xa4($sp) +/* 04A578 7F015A48 AFA700AC */ sw $a3, 0xac($sp) +/* 04A57C 7F015A4C AFA00098 */ sw $zero, 0x98($sp) +/* 04A580 7F015A50 0000F025 */ move $fp, $zero +/* 04A584 7F015A54 26B50EB4 */ addiu $s5, %lo(ptrFirstFontTableLarge) # addiu $s5, $s5, 0xeb4 +/* 04A588 7F015A58 26940EB8 */ addiu $s4, %lo(ptrSecondFontTableLarge) # addiu $s4, $s4, 0xeb8 +/* 04A58C 7F015A5C 00004025 */ move $t0, $zero +/* 04A590 7F015A60 00004825 */ move $t1, $zero +.L7F015A64: +/* 04A594 7F015A64 3C0E8007 */ lui $t6, %hi(ptrbriefingdata) +/* 04A598 7F015A68 8DCE978C */ lw $t6, %lo(ptrbriefingdata)($t6) +/* 04A59C 7F015A6C 3C0F8003 */ lui $t7, %hi(selected_difficulty) +/* 04A5A0 7F015A70 01C91021 */ addu $v0, $t6, $t1 +/* 04A5A4 7F015A74 94430008 */ lhu $v1, 8($v0) +/* 04A5A8 7F015A78 506000AE */ beql $v1, $zero, .L7F015D34 +/* 04A5AC 7F015A7C 25080001 */ addiu $t0, $t0, 1 +/* 04A5B0 7F015A80 8DEFA8FC */ lw $t7, %lo(selected_difficulty)($t7) +/* 04A5B4 7F015A84 9458000A */ lhu $t8, 0xa($v0) +/* 04A5B8 7F015A88 00602025 */ move $a0, $v1 +/* 04A5BC 7F015A8C 0000B825 */ move $s7, $zero +/* 04A5C0 7F015A90 01F8082A */ slt $at, $t7, $t8 +/* 04A5C4 7F015A94 542000A7 */ bnezl $at, .L7F015D34 +/* 04A5C8 7F015A98 25080001 */ addiu $t0, $t0, 1 +/* 04A5CC 7F015A9C AFA9006C */ sw $t1, 0x6c($sp) +/* 04A5D0 7F015AA0 0FC30776 */ jal get_textptr_for_textID +/* 04A5D4 7F015AA4 AFA8009C */ sw $t0, 0x9c($sp) +/* 04A5D8 7F015AA8 3C058005 */ lui $a1, %hi(aA_) +/* 04A5DC 7F015AAC 00408825 */ move $s1, $v0 +/* 04A5E0 7F015AB0 24A50C50 */ addiu $a1, %lo(aA_) # addiu $a1, $a1, 0xc50 +/* 04A5E4 7F015AB4 0C0029DC */ jal textpointer_load_parse_something +/* 04A5E8 7F015AB8 02602025 */ move $a0, $s3 +/* 04A5EC 7F015ABC 92790000 */ lbu $t9, ($s3) +/* 04A5F0 7F015AC0 8FAA0098 */ lw $t2, 0x98($sp) +/* 04A5F4 7F015AC4 27A40094 */ addiu $a0, $sp, 0x94 +/* 04A5F8 7F015AC8 27A50090 */ addiu $a1, $sp, 0x90 +/* 04A5FC 7F015ACC 032A5821 */ addu $t3, $t9, $t2 +/* 04A600 7F015AD0 A26B0000 */ sb $t3, ($s3) +/* 04A604 7F015AD4 8EAC0000 */ lw $t4, ($s5) +/* 04A608 7F015AD8 AFA00094 */ sw $zero, 0x94($sp) +/* 04A60C 7F015ADC AFA00090 */ sw $zero, 0x90($sp) +/* 04A610 7F015AE0 AFA00014 */ sw $zero, 0x14($sp) +/* 04A614 7F015AE4 8E870000 */ lw $a3, ($s4) +/* 04A618 7F015AE8 02603025 */ move $a2, $s3 +/* 04A61C 7F015AEC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04A620 7F015AF0 AFAC0010 */ sw $t4, 0x10($sp) +/* 04A624 7F015AF4 8FAE0094 */ lw $t6, 0x94($sp) +/* 04A628 7F015AF8 8FB800A4 */ lw $t8, 0xa4($sp) +/* 04A62C 7F015AFC 240D0037 */ li $t5, 55 +/* 04A630 7F015B00 01DE0019 */ multu $t6, $fp +/* 04A634 7F015B04 AFAD008C */ sw $t5, 0x8c($sp) +/* 04A638 7F015B08 00007812 */ mflo $t7 +/* 04A63C 7F015B0C 01F8C821 */ addu $t9, $t7, $t8 +/* 04A640 7F015B10 03375021 */ addu $t2, $t9, $s7 +/* 04A644 7F015B14 0C001107 */ jal get_video2_settings_txtClipW +/* 04A648 7F015B18 AFAA0088 */ sw $t2, 0x88($sp) +/* 04A64C 7F015B1C 00028400 */ sll $s0, $v0, 0x10 +/* 04A650 7F015B20 00105C03 */ sra $t3, $s0, 0x10 +/* 04A654 7F015B24 0C00110B */ jal get_video2_settings_txtClipH +/* 04A658 7F015B28 01608025 */ move $s0, $t3 +/* 04A65C 7F015B2C 8E8C0000 */ lw $t4, ($s4) +/* 04A660 7F015B30 8EAD0000 */ lw $t5, ($s5) +/* 04A664 7F015B34 240E00FF */ li $t6, 255 +/* 04A668 7F015B38 AFAE0018 */ sw $t6, 0x18($sp) +/* 04A66C 7F015B3C 02C02025 */ move $a0, $s6 +/* 04A670 7F015B40 27A5008C */ addiu $a1, $sp, 0x8c +/* 04A674 7F015B44 27A60088 */ addiu $a2, $sp, 0x88 +/* 04A678 7F015B48 02603825 */ move $a3, $s3 +/* 04A67C 7F015B4C AFB0001C */ sw $s0, 0x1c($sp) +/* 04A680 7F015B50 AFA20020 */ sw $v0, 0x20($sp) +/* 04A684 7F015B54 AFA00024 */ sw $zero, 0x24($sp) +/* 04A688 7F015B58 AFA00028 */ sw $zero, 0x28($sp) +/* 04A68C 7F015B5C AFAC0010 */ sw $t4, 0x10($sp) +/* 04A690 7F015B60 0FC025D8 */ jal write_text_at_abs_coord +/* 04A694 7F015B64 AFAD0014 */ sw $t5, 0x14($sp) +/* 04A698 7F015B68 8FB80094 */ lw $t8, 0x94($sp) +/* 04A69C 7F015B6C 8FAA00A4 */ lw $t2, 0xa4($sp) +/* 04A6A0 7F015B70 8FAD00AC */ lw $t5, 0xac($sp) +/* 04A6A4 7F015B74 031E0019 */ multu $t8, $fp +/* 04A6A8 7F015B78 240F004B */ li $t7, 75 +/* 04A6AC 7F015B7C 0040B025 */ move $s6, $v0 +/* 04A6B0 7F015B80 AFAF008C */ sw $t7, 0x8c($sp) +/* 04A6B4 7F015B84 24040140 */ li $a0, 320 +/* 04A6B8 7F015B88 02202825 */ move $a1, $s1 +/* 04A6BC 7F015B8C 02603025 */ move $a2, $s3 +/* 04A6C0 7F015B90 0000C812 */ mflo $t9 +/* 04A6C4 7F015B94 032A5821 */ addu $t3, $t9, $t2 +/* 04A6C8 7F015B98 01776021 */ addu $t4, $t3, $s7 +/* 04A6CC 7F015B9C 11A0000E */ beqz $t5, .L7F015BD8 +/* 04A6D0 7F015BA0 AFAC0088 */ sw $t4, 0x88($sp) +/* 04A6D4 7F015BA4 0FC2B2E5 */ jal setTextWordWrap +/* 04A6D8 7F015BA8 24040002 */ li $a0, 2 +/* 04A6DC 7F015BAC 8EAE0000 */ lw $t6, ($s5) +/* 04A6E0 7F015BB0 240400DC */ li $a0, 220 +/* 04A6E4 7F015BB4 02202825 */ move $a1, $s1 +/* 04A6E8 7F015BB8 02603025 */ move $a2, $s3 +/* 04A6EC 7F015BBC 8E870000 */ lw $a3, ($s4) +/* 04A6F0 7F015BC0 0FC2BAD9 */ jal sub_GAME_7F0AEB64 +/* 04A6F4 7F015BC4 AFAE0010 */ sw $t6, 0x10($sp) +/* 04A6F8 7F015BC8 0FC2B2E5 */ jal setTextWordWrap +/* 04A6FC 7F015BCC 00002025 */ move $a0, $zero +/* 04A700 7F015BD0 10000005 */ b .L7F015BE8 +/* 04A704 7F015BD4 00000000 */ nop +.L7F015BD8: +/* 04A708 7F015BD8 8EAF0000 */ lw $t7, ($s5) +/* 04A70C 7F015BDC 8E870000 */ lw $a3, ($s4) +/* 04A710 7F015BE0 0FC2BAD9 */ jal sub_GAME_7F0AEB64 +/* 04A714 7F015BE4 AFAF0010 */ sw $t7, 0x10($sp) +.L7F015BE8: +/* 04A718 7F015BE8 0C001107 */ jal get_video2_settings_txtClipW +/* 04A71C 7F015BEC 00000000 */ nop +/* 04A720 7F015BF0 00028400 */ sll $s0, $v0, 0x10 +/* 04A724 7F015BF4 0010C403 */ sra $t8, $s0, 0x10 +/* 04A728 7F015BF8 0C00110B */ jal get_video2_settings_txtClipH +/* 04A72C 7F015BFC 03008025 */ move $s0, $t8 +/* 04A730 7F015C00 8E990000 */ lw $t9, ($s4) +/* 04A734 7F015C04 8EAA0000 */ lw $t2, ($s5) +/* 04A738 7F015C08 240B00FF */ li $t3, 255 +/* 04A73C 7F015C0C AFAB0018 */ sw $t3, 0x18($sp) +/* 04A740 7F015C10 02C02025 */ move $a0, $s6 +/* 04A744 7F015C14 27A5008C */ addiu $a1, $sp, 0x8c +/* 04A748 7F015C18 27A60088 */ addiu $a2, $sp, 0x88 +/* 04A74C 7F015C1C 02603825 */ move $a3, $s3 +/* 04A750 7F015C20 AFB0001C */ sw $s0, 0x1c($sp) +/* 04A754 7F015C24 AFA20020 */ sw $v0, 0x20($sp) +/* 04A758 7F015C28 AFA00024 */ sw $zero, 0x24($sp) +/* 04A75C 7F015C2C AFA00028 */ sw $zero, 0x28($sp) +/* 04A760 7F015C30 AFB90010 */ sw $t9, 0x10($sp) +/* 04A764 7F015C34 0FC025D8 */ jal write_text_at_abs_coord +/* 04A768 7F015C38 AFAA0014 */ sw $t2, 0x14($sp) +/* 04A76C 7F015C3C 8FAC00AC */ lw $t4, 0xac($sp) +/* 04A770 7F015C40 0040B025 */ move $s6, $v0 +/* 04A774 7F015C44 11800032 */ beqz $t4, .L7F015D10 +/* 04A778 7F015C48 00000000 */ nop +/* 04A77C 7F015C4C 0FC15C8E */ jal get_status_of_objective +/* 04A780 7F015C50 8FA4009C */ lw $a0, 0x9c($sp) +/* 04A784 7F015C54 1040000C */ beqz $v0, .L7F015C88 +/* 04A788 7F015C58 24010001 */ li $at, 1 +/* 04A78C 7F015C5C 10410006 */ beq $v0, $at, .L7F015C78 +/* 04A790 7F015C60 34049C5B */ li $a0, 40027 +/* 04A794 7F015C64 24010002 */ li $at, 2 +/* 04A798 7F015C68 50410008 */ beql $v0, $at, .L7F015C8C +/* 04A79C 7F015C6C 3C127800 */ lui $s2, 0x7800 +/* 04A7A0 7F015C70 10000006 */ b .L7F015C8C +/* 04A7A4 7F015C74 3C127800 */ lui $s2, 0x7800 +.L7F015C78: +/* 04A7A8 7F015C78 0FC30776 */ jal get_textptr_for_textID +/* 04A7AC 7F015C7C 241200FF */ li $s2, 255 +/* 04A7B0 7F015C80 10000006 */ b .L7F015C9C +/* 04A7B4 7F015C84 00408825 */ move $s1, $v0 +.L7F015C88: +/* 04A7B8 7F015C88 3C127800 */ lui $s2, (0x780000FF >> 16) # lui $s2, 0x7800 +.L7F015C8C: +/* 04A7BC 7F015C8C 365200FF */ ori $s2, (0x780000FF & 0xFFFF) # ori $s2, $s2, 0xff +/* 04A7C0 7F015C90 0FC30776 */ jal get_textptr_for_textID +/* 04A7C4 7F015C94 34049C5C */ li $a0, 40028 +/* 04A7C8 7F015C98 00408825 */ move $s1, $v0 +.L7F015C9C: +/* 04A7CC 7F015C9C 8FAE0094 */ lw $t6, 0x94($sp) +/* 04A7D0 7F015CA0 8FB800A4 */ lw $t8, 0xa4($sp) +/* 04A7D4 7F015CA4 240D0136 */ li $t5, 310 +/* 04A7D8 7F015CA8 01DE0019 */ multu $t6, $fp +/* 04A7DC 7F015CAC AFAD008C */ sw $t5, 0x8c($sp) +/* 04A7E0 7F015CB0 00007812 */ mflo $t7 +/* 04A7E4 7F015CB4 01F8C821 */ addu $t9, $t7, $t8 +/* 04A7E8 7F015CB8 03375021 */ addu $t2, $t9, $s7 +/* 04A7EC 7F015CBC 0C001107 */ jal get_video2_settings_txtClipW +/* 04A7F0 7F015CC0 AFAA0088 */ sw $t2, 0x88($sp) +/* 04A7F4 7F015CC4 00028400 */ sll $s0, $v0, 0x10 +/* 04A7F8 7F015CC8 00105C03 */ sra $t3, $s0, 0x10 +/* 04A7FC 7F015CCC 0C00110B */ jal get_video2_settings_txtClipH +/* 04A800 7F015CD0 01608025 */ move $s0, $t3 +/* 04A804 7F015CD4 8E8C0000 */ lw $t4, ($s4) +/* 04A808 7F015CD8 8EAD0000 */ lw $t5, ($s5) +/* 04A80C 7F015CDC 02C02025 */ move $a0, $s6 +/* 04A810 7F015CE0 27A5008C */ addiu $a1, $sp, 0x8c +/* 04A814 7F015CE4 27A60088 */ addiu $a2, $sp, 0x88 +/* 04A818 7F015CE8 02203825 */ move $a3, $s1 +/* 04A81C 7F015CEC AFB20018 */ sw $s2, 0x18($sp) +/* 04A820 7F015CF0 AFB0001C */ sw $s0, 0x1c($sp) +/* 04A824 7F015CF4 AFA20020 */ sw $v0, 0x20($sp) +/* 04A828 7F015CF8 AFA00024 */ sw $zero, 0x24($sp) +/* 04A82C 7F015CFC AFA00028 */ sw $zero, 0x28($sp) +/* 04A830 7F015D00 AFAC0010 */ sw $t4, 0x10($sp) +/* 04A834 7F015D04 0FC025D8 */ jal write_text_at_abs_coord +/* 04A838 7F015D08 AFAD0014 */ sw $t5, 0x14($sp) +/* 04A83C 7F015D0C 0040B025 */ move $s6, $v0 +.L7F015D10: +/* 04A840 7F015D10 0FC2B03A */ jal sub_GAME_7F0AC0E8 +/* 04A844 7F015D14 02602025 */ move $a0, $s3 +/* 04A848 7F015D18 8FAE0098 */ lw $t6, 0x98($sp) +/* 04A84C 7F015D1C 03C2F021 */ addu $fp, $fp, $v0 +/* 04A850 7F015D20 8FA9006C */ lw $t1, 0x6c($sp) +/* 04A854 7F015D24 25CF0001 */ addiu $t7, $t6, 1 +/* 04A858 7F015D28 AFAF0098 */ sw $t7, 0x98($sp) +/* 04A85C 7F015D2C 8FA8009C */ lw $t0, 0x9c($sp) +/* 04A860 7F015D30 25080001 */ addiu $t0, $t0, 1 +.L7F015D34: +/* 04A864 7F015D34 2401000A */ li $at, 10 +/* 04A868 7F015D38 1501FF4A */ bne $t0, $at, .L7F015A64 +/* 04A86C 7F015D3C 25290004 */ addiu $t1, $t1, 4 +/* 04A870 7F015D40 8FBF005C */ lw $ra, 0x5c($sp) +/* 04A874 7F015D44 02C01025 */ move $v0, $s6 +/* 04A878 7F015D48 8FB60050 */ lw $s6, 0x50($sp) +/* 04A87C 7F015D4C 8FB00038 */ lw $s0, 0x38($sp) +/* 04A880 7F015D50 8FB1003C */ lw $s1, 0x3c($sp) +/* 04A884 7F015D54 8FB20040 */ lw $s2, 0x40($sp) +/* 04A888 7F015D58 8FB30044 */ lw $s3, 0x44($sp) +/* 04A88C 7F015D5C 8FB40048 */ lw $s4, 0x48($sp) +/* 04A890 7F015D60 8FB5004C */ lw $s5, 0x4c($sp) +/* 04A894 7F015D64 8FB70054 */ lw $s7, 0x54($sp) +/* 04A898 7F015D68 8FBE0058 */ lw $fp, 0x58($sp) +/* 04A89C 7F015D6C 03E00008 */ jr $ra +/* 04A8A0 7F015D70 27BD00A0 */ addiu $sp, $sp, 0xa0 +) +#endif + + + +#ifdef NONMATCHING +s32 constructor_menu0A_briefing(s32 *param_1) +{ + s32 *puVar1; + s32 *DL; + u32 *puVar2; + short sVar4; + short sVar5; + s32 uVar3; + s32 *puVar6; + s32 *puVar7; + s32 auStack3012 [750]; + u32 uStack12; + u32 uStack8; + u8 *pbStack4; + + puVar1 = set_setfillcolor(param_1,0,0,0); + puVar1 = insert_generic_fillrect(puVar1); + DL = (s32 *)proc_7F00D5E8(puVar1); + puVar1 = (s32 *)array_80050C54; + puVar6 = auStack3012; + do { + puVar7 = puVar1 + 3; + *puVar6 = *puVar1; + puVar6[1] = puVar1[1]; + puVar6[2] = puVar1[2]; + puVar1 = puVar7; + puVar6 = puVar6 + 3; + } while (puVar7 != (s32 *)a02d02d); + puVar2 = microcode_constructor(DL); + puVar2 = print_current_solo_briefing_stage_name(puVar2,(u8 *)auStack3012); + switch(current_menu_briefing_page) { + case BRIEFING_TITLE: + pbStack4 = get_textptr_for_textID(TEXT(LTITLE, 0x5d)); + break; + case BRIEFING_OVERVIEW: + pbStack4 = get_textptr_for_textID(TEXT(LTITLE, 0x5e)); + break; + case BRIEFING_M: + pbStack4 = get_textptr_for_textID(TEXT(LTITLE, 0x5f)); + break; + case BRIEFING_Q: + pbStack4 = get_textptr_for_textID(TEXT(LTITLE, 0x60)); + break; + case BRIEFING_MONEYPENNY: + pbStack4 = get_textptr_for_textID(TEXT(LTITLE, 0x61)); + } + uStack8 = 0x37; + uStack12 = 0x8f; + sVar4 = get_video2_settings_txtClipW(); + sVar5 = get_video2_settings_txtClipH(); + puVar2 = write_text_at_abs_coord + (puVar2,&uStack8,&uStack12,pbStack4,(int)ptrSecondFontTableLarge, + (int)ptrFirstFontTableLarge,0xff,(int)sVar4,(int)sVar5,0,0); + if (current_menu_briefing_page == BRIEFING_TITLE) { + puVar2 = print_objectives_and_status_to_menu(puVar2,0xa7,(u8 *)auStack3012,0); + } + else { + if (current_menu_briefing_page == BRIEFING_OVERVIEW) { + pbStack4 = get_textptr_for_textID((u32)*(ushort *)ptrbriefingdata); + } + else { + if (current_menu_briefing_page == BRIEFING_M) { + pbStack4 = get_textptr_for_textID((u32)*(ushort *)(ptrbriefingdata + 2)); + } + else { + if (current_menu_briefing_page == BRIEFING_Q) { + pbStack4 = get_textptr_for_textID((u32)*(ushort *)(ptrbriefingdata + 4)); + } + else { + if (current_menu_briefing_page == BRIEFING_MONEYPENNY) { + pbStack4 = get_textptr_for_textID((u32)*(ushort *)(ptrbriefingdata + 6)); + } + } + } + } + uStack8 = 0x37; + uStack12 = 0xa7; + proc_7F0AEB64(0x140,pbStack4,(u8 *)auStack3012,(int)ptrSecondFontTableLarge, + (int *)ptrFirstFontTableLarge); + proc_7F0ACBA0(8); + sVar4 = get_video2_settings_txtClipW(); + sVar5 = get_video2_settings_txtClipH(); + puVar2 = write_text_at_abs_coord + (puVar2,&uStack8,&uStack12,(u8 *)auStack3012,(int)ptrSecondFontTableLarge, + (int)ptrFirstFontTableLarge,0xff,(int)sVar4,(int)sVar5,0,0); + proc_7F0ACBA0(0xffffffff); + } + puVar2 = add_tab1_start(puVar2); + puVar2 = add_tab3_previous(puVar2); + if ((int)current_menu_briefing_page < 4) { + puVar2 = add_tab2_next(puVar2); + } + uVar3 = load_draw_selected_icon_folder_select(puVar2); + return uVar3; +} +#else +const char asc_D_80050C54[3000] = {0xA,0}; +GLOBAL_ASM( +.late_rodata +glabel jpt_briefingpage_name + .word .L7F015E14 + .word .L7F015E24 + .word .L7F015E34 + .word .L7F015E44 + .word .L7F015E54 + +.text +glabel constructor_menu0A_briefing +/* 04A8A4 7F015D74 27BDF3F0 */ addiu $sp, $sp, -0xc10 +/* 04A8A8 7F015D78 AFBF003C */ sw $ra, 0x3c($sp) +/* 04A8AC 7F015D7C AFB00038 */ sw $s0, 0x38($sp) +/* 04A8B0 7F015D80 00002825 */ move $a1, $zero +/* 04A8B4 7F015D84 00003025 */ move $a2, $zero +/* 04A8B8 7F015D88 0C0011B4 */ jal set_setfillcolor +/* 04A8BC 7F015D8C 00003825 */ move $a3, $zero +/* 04A8C0 7F015D90 0C000FBE */ jal insert_generic_fillrect +/* 04A8C4 7F015D94 00402025 */ move $a0, $v0 +/* 04A8C8 7F015D98 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 04A8CC 7F015D9C 00402025 */ move $a0, $v0 +/* 04A8D0 7F015DA0 3C0F8005 */ lui $t7, %hi(asc_D_80050C54) +/* 04A8D4 7F015DA4 25EF0C54 */ addiu $t7, %lo(asc_D_80050C54) # addiu $t7, $t7, 0xc54 +/* 04A8D8 7F015DA8 25E80BB8 */ addiu $t0, $t7, 0xbb8 +/* 04A8DC 7F015DAC 27AE004C */ addiu $t6, $sp, 0x4c +.L7F015DB0: +/* 04A8E0 7F015DB0 8DE10000 */ lw $at, ($t7) +/* 04A8E4 7F015DB4 25EF000C */ addiu $t7, $t7, 0xc +/* 04A8E8 7F015DB8 25CE000C */ addiu $t6, $t6, 0xc +/* 04A8EC 7F015DBC ADC1FFF4 */ sw $at, -0xc($t6) +/* 04A8F0 7F015DC0 8DE1FFF8 */ lw $at, -8($t7) +/* 04A8F4 7F015DC4 ADC1FFF8 */ sw $at, -8($t6) +/* 04A8F8 7F015DC8 8DE1FFFC */ lw $at, -4($t7) +/* 04A8FC 7F015DCC 15E8FFF8 */ bne $t7, $t0, .L7F015DB0 +/* 04A900 7F015DD0 ADC1FFFC */ sw $at, -4($t6) +/* 04A904 7F015DD4 0FC2B366 */ jal microcode_constructor +/* 04A908 7F015DD8 00402025 */ move $a0, $v0 +/* 04A90C 7F015DDC 00402025 */ move $a0, $v0 +/* 04A910 7F015DE0 0FC03AAF */ jal print_current_solo_briefing_stage_name +/* 04A914 7F015DE4 27A5004C */ addiu $a1, $sp, 0x4c +/* 04A918 7F015DE8 3C098003 */ lui $t1, %hi(current_menu_briefing_page) +/* 04A91C 7F015DEC 8D29A914 */ lw $t1, %lo(current_menu_briefing_page)($t1) +/* 04A920 7F015DF0 00408025 */ move $s0, $v0 +/* 04A924 7F015DF4 2D210005 */ sltiu $at, $t1, 5 +/* 04A928 7F015DF8 10200019 */ beqz $at, .L7F015E60 +/* 04A92C 7F015DFC 00094880 */ sll $t1, $t1, 2 +/* 04A930 7F015E00 3C018005 */ lui $at, %hi(jpt_briefingpage_name) +/* 04A934 7F015E04 00290821 */ addu $at, $at, $t1 +/* 04A938 7F015E08 8C291AC0 */ lw $t1, %lo(jpt_briefingpage_name)($at) +/* 04A93C 7F015E0C 01200008 */ jr $t1 +/* 04A940 7F015E10 00000000 */ nop +.L7F015E14: +/* 04A944 7F015E14 0FC30776 */ jal get_textptr_for_textID +/* 04A948 7F015E18 34049C5D */ li $a0, 40029 +/* 04A94C 7F015E1C 10000010 */ b .L7F015E60 +/* 04A950 7F015E20 AFA20C0C */ sw $v0, 0xc0c($sp) +.L7F015E24: +/* 04A954 7F015E24 0FC30776 */ jal get_textptr_for_textID +/* 04A958 7F015E28 34049C5E */ li $a0, 40030 +/* 04A95C 7F015E2C 1000000C */ b .L7F015E60 +/* 04A960 7F015E30 AFA20C0C */ sw $v0, 0xc0c($sp) +.L7F015E34: +/* 04A964 7F015E34 0FC30776 */ jal get_textptr_for_textID +/* 04A968 7F015E38 34049C5F */ li $a0, 40031 +/* 04A96C 7F015E3C 10000008 */ b .L7F015E60 +/* 04A970 7F015E40 AFA20C0C */ sw $v0, 0xc0c($sp) +.L7F015E44: +/* 04A974 7F015E44 0FC30776 */ jal get_textptr_for_textID +/* 04A978 7F015E48 34049C60 */ li $a0, 40032 +/* 04A97C 7F015E4C 10000004 */ b .L7F015E60 +/* 04A980 7F015E50 AFA20C0C */ sw $v0, 0xc0c($sp) +.L7F015E54: +/* 04A984 7F015E54 0FC30776 */ jal get_textptr_for_textID +/* 04A988 7F015E58 34049C61 */ li $a0, 40033 +/* 04A98C 7F015E5C AFA20C0C */ sw $v0, 0xc0c($sp) +def_7F015E0C: +.L7F015E60: +/* 04A990 7F015E60 240A0037 */ li $t2, 55 +/* 04A994 7F015E64 240B008F */ li $t3, 143 +/* 04A998 7F015E68 AFAA0C08 */ sw $t2, 0xc08($sp) +/* 04A99C 7F015E6C 0C001107 */ jal get_video2_settings_txtClipW +/* 04A9A0 7F015E70 AFAB0C04 */ sw $t3, 0xc04($sp) +/* 04A9A4 7F015E74 0C00110B */ jal get_video2_settings_txtClipH +/* 04A9A8 7F015E78 A7A20048 */ sh $v0, 0x48($sp) +/* 04A9AC 7F015E7C 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) +/* 04A9B0 7F015E80 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04A9B4 7F015E84 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04A9B8 7F015E88 8D8C0EB8 */ lw $t4, %lo(ptrSecondFontTableLarge)($t4) +/* 04A9BC 7F015E8C 87B80048 */ lh $t8, 0x48($sp) +/* 04A9C0 7F015E90 241900FF */ li $t9, 255 +/* 04A9C4 7F015E94 AFB90018 */ sw $t9, 0x18($sp) +/* 04A9C8 7F015E98 02002025 */ move $a0, $s0 +/* 04A9CC 7F015E9C 27A50C08 */ addiu $a1, $sp, 0xc08 +/* 04A9D0 7F015EA0 27A60C04 */ addiu $a2, $sp, 0xc04 +/* 04A9D4 7F015EA4 8FA70C0C */ lw $a3, 0xc0c($sp) +/* 04A9D8 7F015EA8 AFA20020 */ sw $v0, 0x20($sp) +/* 04A9DC 7F015EAC AFA00024 */ sw $zero, 0x24($sp) +/* 04A9E0 7F015EB0 AFA00028 */ sw $zero, 0x28($sp) +/* 04A9E4 7F015EB4 AFAD0014 */ sw $t5, 0x14($sp) +/* 04A9E8 7F015EB8 AFAC0010 */ sw $t4, 0x10($sp) +/* 04A9EC 7F015EBC 0FC025D8 */ jal write_text_at_abs_coord +/* 04A9F0 7F015EC0 AFB8001C */ sw $t8, 0x1c($sp) +/* 04A9F4 7F015EC4 3C038003 */ lui $v1, %hi(current_menu_briefing_page) +/* 04A9F8 7F015EC8 8C63A914 */ lw $v1, %lo(current_menu_briefing_page)($v1) +/* 04A9FC 7F015ECC 00408025 */ move $s0, $v0 +/* 04AA00 7F015ED0 24010001 */ li $at, 1 +/* 04AA04 7F015ED4 14600007 */ bnez $v1, .L7F015EF4 +/* 04AA08 7F015ED8 00402025 */ move $a0, $v0 +/* 04AA0C 7F015EDC 240500A7 */ li $a1, 167 +/* 04AA10 7F015EE0 27A6004C */ addiu $a2, $sp, 0x4c +/* 04AA14 7F015EE4 0FC05682 */ jal print_objectives_and_status_to_menu +/* 04AA18 7F015EE8 00003825 */ move $a3, $zero +/* 04AA1C 7F015EEC 10000049 */ b .L7F016014 +/* 04AA20 7F015EF0 00408025 */ move $s0, $v0 +.L7F015EF4: +/* 04AA24 7F015EF4 1061000C */ beq $v1, $at, .L7F015F28 +/* 04AA28 7F015EF8 3C088007 */ lui $t0, %hi(ptrbriefingdata) +/* 04AA2C 7F015EFC 24010002 */ li $at, 2 +/* 04AA30 7F015F00 1061000E */ beq $v1, $at, .L7F015F3C +/* 04AA34 7F015F04 3C0F8007 */ lui $t7, %hi(ptrbriefingdata) +/* 04AA38 7F015F08 24010003 */ li $at, 3 +/* 04AA3C 7F015F0C 10610010 */ beq $v1, $at, .L7F015F50 +/* 04AA40 7F015F10 3C0E8007 */ lui $t6, %hi(ptrbriefingdata) +/* 04AA44 7F015F14 24010004 */ li $at, 4 +/* 04AA48 7F015F18 10610012 */ beq $v1, $at, .L7F015F64 +/* 04AA4C 7F015F1C 3C098007 */ lui $t1, %hi(ptrbriefingdata) +/* 04AA50 7F015F20 10000014 */ b .L7F015F74 +/* 04AA54 7F015F24 00000000 */ nop +.L7F015F28: +/* 04AA58 7F015F28 8D08978C */ lw $t0, %lo(ptrbriefingdata)($t0) +/* 04AA5C 7F015F2C 0FC30776 */ jal get_textptr_for_textID +/* 04AA60 7F015F30 95040000 */ lhu $a0, ($t0) +/* 04AA64 7F015F34 1000000F */ b .L7F015F74 +/* 04AA68 7F015F38 AFA20C0C */ sw $v0, 0xc0c($sp) +.L7F015F3C: +/* 04AA6C 7F015F3C 8DEF978C */ lw $t7, %lo(ptrbriefingdata)($t7) +/* 04AA70 7F015F40 0FC30776 */ jal get_textptr_for_textID +/* 04AA74 7F015F44 95E40002 */ lhu $a0, 2($t7) +/* 04AA78 7F015F48 1000000A */ b .L7F015F74 +/* 04AA7C 7F015F4C AFA20C0C */ sw $v0, 0xc0c($sp) +.L7F015F50: +/* 04AA80 7F015F50 8DCE978C */ lw $t6, %lo(ptrbriefingdata)($t6) +/* 04AA84 7F015F54 0FC30776 */ jal get_textptr_for_textID +/* 04AA88 7F015F58 95C40004 */ lhu $a0, 4($t6) +/* 04AA8C 7F015F5C 10000005 */ b .L7F015F74 +/* 04AA90 7F015F60 AFA20C0C */ sw $v0, 0xc0c($sp) +.L7F015F64: +/* 04AA94 7F015F64 8D29978C */ lw $t1, %lo(ptrbriefingdata)($t1) +/* 04AA98 7F015F68 0FC30776 */ jal get_textptr_for_textID +/* 04AA9C 7F015F6C 95240006 */ lhu $a0, 6($t1) +/* 04AAA0 7F015F70 AFA20C0C */ sw $v0, 0xc0c($sp) +.L7F015F74: +/* 04AAA4 7F015F74 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) +/* 04AAA8 7F015F78 8D8C0EB4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 04AAAC 7F015F7C 240A0037 */ li $t2, 55 +/* 04AAB0 7F015F80 240B00A7 */ li $t3, 167 +/* 04AAB4 7F015F84 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 04AAB8 7F015F88 AFAA0C08 */ sw $t2, 0xc08($sp) +/* 04AABC 7F015F8C AFAB0C04 */ sw $t3, 0xc04($sp) +/* 04AAC0 7F015F90 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04AAC4 7F015F94 24040140 */ li $a0, 320 +/* 04AAC8 7F015F98 8FA50C0C */ lw $a1, 0xc0c($sp) +/* 04AACC 7F015F9C 27A6004C */ addiu $a2, $sp, 0x4c +/* 04AAD0 7F015FA0 0FC2BAD9 */ jal sub_GAME_7F0AEB64 +/* 04AAD4 7F015FA4 AFAC0010 */ sw $t4, 0x10($sp) +/* 04AAD8 7F015FA8 0FC2B2E8 */ jal setTextOverlapCorrection +/* 04AADC 7F015FAC 24040008 */ li $a0, 8 +/* 04AAE0 7F015FB0 0C001107 */ jal get_video2_settings_txtClipW +/* 04AAE4 7F015FB4 00000000 */ nop +/* 04AAE8 7F015FB8 0C00110B */ jal get_video2_settings_txtClipH +/* 04AAEC 7F015FBC A7A20048 */ sh $v0, 0x48($sp) +/* 04AAF0 7F015FC0 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) +/* 04AAF4 7F015FC4 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 04AAF8 7F015FC8 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 04AAFC 7F015FCC 8DAD0EB8 */ lw $t5, %lo(ptrSecondFontTableLarge)($t5) +/* 04AB00 7F015FD0 87A80048 */ lh $t0, 0x48($sp) +/* 04AB04 7F015FD4 241800FF */ li $t8, 255 +/* 04AB08 7F015FD8 AFB80018 */ sw $t8, 0x18($sp) +/* 04AB0C 7F015FDC 02002025 */ move $a0, $s0 +/* 04AB10 7F015FE0 27A50C08 */ addiu $a1, $sp, 0xc08 +/* 04AB14 7F015FE4 27A60C04 */ addiu $a2, $sp, 0xc04 +/* 04AB18 7F015FE8 27A7004C */ addiu $a3, $sp, 0x4c +/* 04AB1C 7F015FEC AFA20020 */ sw $v0, 0x20($sp) +/* 04AB20 7F015FF0 AFA00024 */ sw $zero, 0x24($sp) +/* 04AB24 7F015FF4 AFA00028 */ sw $zero, 0x28($sp) +/* 04AB28 7F015FF8 AFB90014 */ sw $t9, 0x14($sp) +/* 04AB2C 7F015FFC AFAD0010 */ sw $t5, 0x10($sp) +/* 04AB30 7F016000 0FC025D8 */ jal write_text_at_abs_coord +/* 04AB34 7F016004 AFA8001C */ sw $t0, 0x1c($sp) +/* 04AB38 7F016008 00408025 */ move $s0, $v0 +/* 04AB3C 7F01600C 0FC2B2E8 */ jal setTextOverlapCorrection +/* 04AB40 7F016010 2404FFFF */ li $a0, -1 +.L7F016014: +/* 04AB44 7F016014 0FC02820 */ jal add_tab1_start +/* 04AB48 7F016018 02002025 */ move $a0, $s0 +/* 04AB4C 7F01601C 0FC0288E */ jal add_tab3_previous +/* 04AB50 7F016020 00402025 */ move $a0, $v0 +/* 04AB54 7F016024 3C0F8003 */ lui $t7, %hi(current_menu_briefing_page) +/* 04AB58 7F016028 8DEFA914 */ lw $t7, %lo(current_menu_briefing_page)($t7) +/* 04AB5C 7F01602C 00408025 */ move $s0, $v0 +/* 04AB60 7F016030 29E10004 */ slti $at, $t7, 4 +/* 04AB64 7F016034 10200004 */ beqz $at, .L7F016048 +/* 04AB68 7F016038 00000000 */ nop +/* 04AB6C 7F01603C 0FC02905 */ jal add_tab2_next +/* 04AB70 7F016040 00402025 */ move $a0, $v0 +/* 04AB74 7F016044 00408025 */ move $s0, $v0 +.L7F016048: +/* 04AB78 7F016048 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 04AB7C 7F01604C 02002025 */ move $a0, $s0 +/* 04AB80 7F016050 8FBF003C */ lw $ra, 0x3c($sp) +/* 04AB84 7F016054 8FB00038 */ lw $s0, 0x38($sp) +/* 04AB88 7F016058 27BD0C10 */ addiu $sp, $sp, 0xc10 +/* 04AB8C 7F01605C 03E00008 */ jr $ra +/* 04AB90 7F016060 00000000 */ nop +) +#endif + + + +void init_menu0B_runstage(void) +{ + set_loaded_stage(selected_stage); + set_difficulty(selected_difficulty); +} + +void init_menu0C_missionfailed(void) +{ + tab_2_selected = FALSE; + tab_3_selected = FALSE; + load_walletbond(); + load_briefing_text_for_stage(); + set_cursor_pos_tab2(); + if (maybe_is_in_menu != FALSE) { + sfx_c_700091E8(0x7fff); + musicTrack1Vol(0x7fff); + music1_playing = FALSE; + musicTrack1Play(M_FOLDERS); + maybe_is_in_menu = FALSE; + } +} + +void update_menu0C_missionfailed(void) { + return; +} + + + + + + + +#ifdef NONMATCHING +void interface_menu0C_missionfailed(void) +{ + const f32 menu0C_aspect = 1.3333334; + const f32 menu0C_pageheight = 10000.0; + + setvideo_far(60.00000000); + video_related_21(menu0C_aspect); + set_page_height(100.00000000, menu0C_pageheight); + set_video2_settings_offset_24(0); + tab_2_highlight = 0; + tab_3_highlight = 0; + if (isontab3() != 0) + { + tab_3_highlight = 1; + } + else + { + if (isontab2() != 0) + { + tab_2_highlight = 1; + } + else + { + tab_2_highlight = 1; + } + } + if (get_controller_buttons_pressed(0, 0xb000) != 0) + { + if (tab_3_highlight != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + else + { + if (tab_2_highlight != 0) + { + tab_2_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + } + else + { + if (get_controller_buttons_pressed(0, 0x4000) != 0) + { + tab_3_selected = 1; + play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + } + } + disable_all_switches(ptr_folder_object_instance); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, 1); + set_item_visibility_in_objinstance(ptr_folder_object_instance, 6, 1); + menu_control_stick_tracking(); + if (tab_2_selected != 0) + { + set_menu_to_mode(MENU_MISSION_COMPLETE, 0); + return; + } + if (tab_3_selected != 0) + { + set_menu_to_mode(MENU_MISSION_SELECT, 0); + set_cursor_to_stage_solo(mission_folder_setup_entries[briefingpage].mission_num); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel menu0C_aspect +.word 0x3FAAAAAB /*1.3333334;*/ +glabel menu0C_pageheight +.word 0x461C4000 /*10000.0;*/ +.text +glabel interface_menu0C_missionfailed +/* 04AC40 7F016110 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 04AC44 7F016114 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 04AC48 7F016118 AFBF0014 */ sw $ra, 0x14($sp) +/* 04AC4C 7F01611C 44816000 */ mtc1 $at, $f12 +/* 04AC50 7F016120 0C001151 */ jal setvideo_far +/* 04AC54 7F016124 00000000 */ nop +/* 04AC58 7F016128 3C018005 */ lui $at, %hi(menu0C_aspect) +/* 04AC5C 7F01612C 0C001164 */ jal video_related_21 +/* 04AC60 7F016130 C42C1AD4 */ lwc1 $f12, %lo(menu0C_aspect)($at) +/* 04AC64 7F016134 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04AC68 7F016138 44816000 */ mtc1 $at, $f12 +/* 04AC6C 7F01613C 3C018005 */ lui $at, %hi(menu0C_pageheight) +/* 04AC70 7F016140 0C001194 */ jal set_page_height +/* 04AC74 7F016144 C42E1AD8 */ lwc1 $f14, %lo(menu0C_pageheight)($at) +/* 04AC78 7F016148 0C00114D */ jal set_video2_settings_offset_24 +/* 04AC7C 7F01614C 00002025 */ move $a0, $zero +/* 04AC80 7F016150 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04AC84 7F016154 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 04AC88 7F016158 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04AC8C 7F01615C 0FC028E7 */ jal isontab3 +/* 04AC90 7F016160 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 04AC94 7F016164 10400004 */ beqz $v0, .L7F016178 +/* 04AC98 7F016168 24030001 */ li $v1, 1 +/* 04AC9C 7F01616C 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04ACA0 7F016170 1000000B */ b .L7F0161A0 +/* 04ACA4 7F016174 AC23A8E4 */ sw $v1, %lo(tab_3_highlight)($at) +.L7F016178: +/* 04ACA8 7F016178 0FC0295E */ jal isontab2 +/* 04ACAC 7F01617C 00000000 */ nop +/* 04ACB0 7F016180 10400005 */ beqz $v0, .L7F016198 +/* 04ACB4 7F016184 24030001 */ li $v1, 1 +/* 04ACB8 7F016188 24030001 */ li $v1, 1 +/* 04ACBC 7F01618C 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04ACC0 7F016190 10000003 */ b .L7F0161A0 +/* 04ACC4 7F016194 AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) +.L7F016198: +/* 04ACC8 7F016198 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04ACCC 7F01619C AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) +.L7F0161A0: +/* 04ACD0 7F0161A0 00002025 */ move $a0, $zero +/* 04ACD4 7F0161A4 0C0030EB */ jal get_controller_buttons_pressed +/* 04ACD8 7F0161A8 3405B000 */ li $a1, 45056 +/* 04ACDC 7F0161AC 10400019 */ beqz $v0, .L7F016214 +/* 04ACE0 7F0161B0 24030001 */ li $v1, 1 +/* 04ACE4 7F0161B4 3C0E8003 */ lui $t6, %hi(tab_3_highlight) +/* 04ACE8 7F0161B8 8DCEA8E4 */ lw $t6, %lo(tab_3_highlight)($t6) +/* 04ACEC 7F0161BC 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04ACF0 7F0161C0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04ACF4 7F0161C4 11C00008 */ beqz $t6, .L7F0161E8 +/* 04ACF8 7F0161C8 3C0F8003 */ lui $t7, %hi(tab_2_highlight) +/* 04ACFC 7F0161CC AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +/* 04AD00 7F0161D0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04AD04 7F0161D4 240500C7 */ li $a1, 199 +/* 04AD08 7F0161D8 0C002382 */ jal play_sfx_a1 +/* 04AD0C 7F0161DC 00003025 */ move $a2, $zero +/* 04AD10 7F0161E0 10000018 */ b .L7F016244 +/* 04AD14 7F0161E4 00000000 */ nop +.L7F0161E8: +/* 04AD18 7F0161E8 8DEFA8E0 */ lw $t7, %lo(tab_2_highlight)($t7) +/* 04AD1C 7F0161EC 3C018003 */ lui $at, %hi(tab_2_selected) +/* 04AD20 7F0161F0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04AD24 7F0161F4 11E00013 */ beqz $t7, .L7F016244 +/* 04AD28 7F0161F8 240500C7 */ li $a1, 199 +/* 04AD2C 7F0161FC AC23A8D4 */ sw $v1, %lo(tab_2_selected)($at) +/* 04AD30 7F016200 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04AD34 7F016204 0C002382 */ jal play_sfx_a1 +/* 04AD38 7F016208 00003025 */ move $a2, $zero +/* 04AD3C 7F01620C 1000000D */ b .L7F016244 +/* 04AD40 7F016210 00000000 */ nop +.L7F016214: +/* 04AD44 7F016214 00002025 */ move $a0, $zero +/* 04AD48 7F016218 0C0030EB */ jal get_controller_buttons_pressed +/* 04AD4C 7F01621C 24054000 */ li $a1, 16384 +/* 04AD50 7F016220 10400008 */ beqz $v0, .L7F016244 +/* 04AD54 7F016224 24030001 */ li $v1, 1 +/* 04AD58 7F016228 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04AD5C 7F01622C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04AD60 7F016230 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +/* 04AD64 7F016234 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04AD68 7F016238 240500C7 */ li $a1, 199 +/* 04AD6C 7F01623C 0C002382 */ jal play_sfx_a1 +/* 04AD70 7F016240 00003025 */ move $a2, $zero +.L7F016244: +/* 04AD74 7F016244 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04AD78 7F016248 0FC02DC9 */ jal disable_all_switches +/* 04AD7C 7F01624C 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04AD80 7F016250 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04AD84 7F016254 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04AD88 7F016258 00002825 */ move $a1, $zero +/* 04AD8C 7F01625C 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04AD90 7F016260 24060001 */ li $a2, 1 +/* 04AD94 7F016264 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04AD98 7F016268 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04AD9C 7F01626C 24050001 */ li $a1, 1 +/* 04ADA0 7F016270 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04ADA4 7F016274 24060001 */ li $a2, 1 +/* 04ADA8 7F016278 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04ADAC 7F01627C 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04ADB0 7F016280 24050003 */ li $a1, 3 +/* 04ADB4 7F016284 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04ADB8 7F016288 24060001 */ li $a2, 1 +/* 04ADBC 7F01628C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04ADC0 7F016290 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04ADC4 7F016294 24050006 */ li $a1, 6 +/* 04ADC8 7F016298 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04ADCC 7F01629C 24060001 */ li $a2, 1 +/* 04ADD0 7F0162A0 0FC026E1 */ jal menu_control_stick_tracking +/* 04ADD4 7F0162A4 00000000 */ nop +/* 04ADD8 7F0162A8 3C188003 */ lui $t8, %hi(tab_2_selected) +/* 04ADDC 7F0162AC 8F18A8D4 */ lw $t8, %lo(tab_2_selected)($t8) +/* 04ADE0 7F0162B0 2404000D */ li $a0, 13 +/* 04ADE4 7F0162B4 3C198003 */ lui $t9, %hi(tab_3_selected) +/* 04ADE8 7F0162B8 13000005 */ beqz $t8, .L7F0162D0 +/* 04ADEC 7F0162BC 00000000 */ nop +/* 04ADF0 7F0162C0 0FC06975 */ jal set_menu_to_mode +/* 04ADF4 7F0162C4 00002825 */ move $a1, $zero +/* 04ADF8 7F0162C8 10000011 */ b .L7F016310 +/* 04ADFC 7F0162CC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0162D0: +/* 04AE00 7F0162D0 8F39A8D8 */ lw $t9, %lo(tab_3_selected)($t9) +/* 04AE04 7F0162D4 24040007 */ li $a0, 7 +/* 04AE08 7F0162D8 5320000D */ beql $t9, $zero, .L7F016310 +/* 04AE0C 7F0162DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 04AE10 7F0162E0 0FC06975 */ jal set_menu_to_mode +/* 04AE14 7F0162E4 00002825 */ move $a1, $zero +/* 04AE18 7F0162E8 3C088003 */ lui $t0, %hi(briefingpage) +/* 04AE1C 7F0162EC 8D08A8F8 */ lw $t0, %lo(briefingpage)($t0) +/* 04AE20 7F0162F0 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+200) +/* 04AE24 7F0162F4 000848C0 */ sll $t1, $t0, 3 +/* 04AE28 7F0162F8 01284823 */ subu $t1, $t1, $t0 +/* 04AE2C 7F0162FC 00094880 */ sll $t1, $t1, 2 +/* 04AE30 7F016300 00892021 */ addu $a0, $a0, $t1 +/* 04AE34 7F016304 0FC038F8 */ jal set_cursor_to_stage_solo +/* 04AE38 7F016308 8C84ABF8 */ lw $a0, %lo(mission_folder_setup_entries+20)($a0) +/* 04AE3C 7F01630C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F016310: +/* 04AE40 7F016310 27BD0018 */ addiu $sp, $sp, 0x18 +/* 04AE44 7F016314 03E00008 */ jr $ra +/* 04AE48 7F016318 00000000 */ nop +) +#endif + + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F01631C(void) +{ + s32 temp_s0; + s32 phi_s1; + s32 phi_s0; + + if (mission_failed_or_aborted != 0) + { +block_2: + return 0; + } + if (mission_kia_flag != 0) + { + goto block_2; + } + phi_s1 = 0; + phi_s0 = 0; +loop_4: + if ((ptrbriefingdata + phi_s1)->unk8 != 0) + { + if (get_current_difficulty() >= (ptrbriefingdata + phi_s1)->unkA) + { + if (get_status_of_objective(phi_s0) != 1) + { + return 0; + } + } + } + temp_s0 = phi_s0 + 1; + phi_s1 = phi_s1 + 4; + phi_s0 = temp_s0; + if (temp_s0 != 0xa) + { + goto loop_4; + } + return 1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01631C +/* 04AE4C 7F01631C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 04AE50 7F016320 3C0E8003 */ lui $t6, %hi(mission_failed_or_aborted) +/* 04AE54 7F016324 8DCEA924 */ lw $t6, %lo(mission_failed_or_aborted)($t6) +/* 04AE58 7F016328 AFBF002C */ sw $ra, 0x2c($sp) +/* 04AE5C 7F01632C AFB40028 */ sw $s4, 0x28($sp) +/* 04AE60 7F016330 AFB30024 */ sw $s3, 0x24($sp) +/* 04AE64 7F016334 AFB20020 */ sw $s2, 0x20($sp) +/* 04AE68 7F016338 AFB1001C */ sw $s1, 0x1c($sp) +/* 04AE6C 7F01633C 15C00007 */ bnez $t6, .L7F01635C +/* 04AE70 7F016340 AFB00018 */ sw $s0, 0x18($sp) +/* 04AE74 7F016344 3C0F8003 */ lui $t7, %hi(mission_kia_flag) +/* 04AE78 7F016348 8DEFA928 */ lw $t7, %lo(mission_kia_flag)($t7) +/* 04AE7C 7F01634C 00008025 */ move $s0, $zero +/* 04AE80 7F016350 00008825 */ move $s1, $zero +/* 04AE84 7F016354 11E00003 */ beqz $t7, .L7F016364 +/* 04AE88 7F016358 2414000A */ li $s4, 10 +.L7F01635C: +/* 04AE8C 7F01635C 1000001B */ b .L7F0163CC +/* 04AE90 7F016360 00001025 */ move $v0, $zero +.L7F016364: +/* 04AE94 7F016364 3C128007 */ lui $s2, %hi(ptrbriefingdata) +/* 04AE98 7F016368 2652978C */ addiu $s2, %lo(ptrbriefingdata) # addiu $s2, $s2, -0x6874 +/* 04AE9C 7F01636C 24130001 */ li $s3, 1 +.L7F016370: +/* 04AEA0 7F016370 8E580000 */ lw $t8, ($s2) +/* 04AEA4 7F016374 0311C821 */ addu $t9, $t8, $s1 +/* 04AEA8 7F016378 97280008 */ lhu $t0, 8($t9) +/* 04AEAC 7F01637C 51000010 */ beql $t0, $zero, .L7F0163C0 +/* 04AEB0 7F016380 26100001 */ addiu $s0, $s0, 1 +/* 04AEB4 7F016384 0FC2FF04 */ jal get_current_difficulty +/* 04AEB8 7F016388 00000000 */ nop +/* 04AEBC 7F01638C 8E490000 */ lw $t1, ($s2) +/* 04AEC0 7F016390 01315021 */ addu $t2, $t1, $s1 +/* 04AEC4 7F016394 954B000A */ lhu $t3, 0xa($t2) +/* 04AEC8 7F016398 004B082A */ slt $at, $v0, $t3 +/* 04AECC 7F01639C 54200008 */ bnezl $at, .L7F0163C0 +/* 04AED0 7F0163A0 26100001 */ addiu $s0, $s0, 1 +/* 04AED4 7F0163A4 0FC15C8E */ jal get_status_of_objective +/* 04AED8 7F0163A8 02002025 */ move $a0, $s0 +/* 04AEDC 7F0163AC 50530004 */ beql $v0, $s3, .L7F0163C0 +/* 04AEE0 7F0163B0 26100001 */ addiu $s0, $s0, 1 +/* 04AEE4 7F0163B4 10000005 */ b .L7F0163CC +/* 04AEE8 7F0163B8 00001025 */ move $v0, $zero +/* 04AEEC 7F0163BC 26100001 */ addiu $s0, $s0, 1 +.L7F0163C0: +/* 04AEF0 7F0163C0 1614FFEB */ bne $s0, $s4, .L7F016370 +/* 04AEF4 7F0163C4 26310004 */ addiu $s1, $s1, 4 +/* 04AEF8 7F0163C8 24020001 */ li $v0, 1 +.L7F0163CC: +/* 04AEFC 7F0163CC 8FBF002C */ lw $ra, 0x2c($sp) +/* 04AF00 7F0163D0 8FB00018 */ lw $s0, 0x18($sp) +/* 04AF04 7F0163D4 8FB1001C */ lw $s1, 0x1c($sp) +/* 04AF08 7F0163D8 8FB20020 */ lw $s2, 0x20($sp) +/* 04AF0C 7F0163DC 8FB30024 */ lw $s3, 0x24($sp) +/* 04AF10 7F0163E0 8FB40028 */ lw $s4, 0x28($sp) +/* 04AF14 7F0163E4 03E00008 */ jr $ra +/* 04AF18 7F0163E8 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu0C_missionfailed(s32 arg0) +{ + s32 spC14; + s32 spC10; + s32 sp58; + s32 sp50; + s32 sp4C; + s32 sp48; + s16 sp44; + s32 temp_ret; + s32 phi_v1; + s32 phi_s0; + + arg0 = print_current_solo_briefing_stage_name(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(0, 0, 0)))), &sp58); + spC14 = 0x37; + spC10 = 0x8f; + sp44 = get_video2_settings_txtClipW(); + arg0 = write_text_at_abs_coord(arg0, &spC14, &spC10, get_textptr_for_textID(TEXT(LTITLE, 0x62)), (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + temp_ret = get_textptr_for_textID(TEXT(LTITLE, 0x63)); + sp48 = 0; + sp4C = 0; + sub_GAME_7F0AE98C(&sp4C, &sp48, temp_ret, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); + spC14 = 0x37; + spC10 = 0xa7; + sp44 = get_video2_settings_txtClipW(); + arg0 = write_text_at_abs_coord(arg0, &spC14, &spC10, temp_ret, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + if (mission_kia_flag != 0) + { + phi_v1 = 0x780000ff; + phi_s0 = get_textptr_for_textID(TEXT(LTITLE, 0x64)); + } + else + { + if (mission_failed_or_aborted != 0) + { + phi_v1 = 0x780000ff; + phi_s0 = get_textptr_for_textID(TEXT(LTITLE, 0x65)); + } + else + { + if (sub_GAME_7F01631C() != 0) + { + phi_v1 = 0xff; + phi_s0 = get_textptr_for_textID(TEXT(LTITLE, 0x66)); + } + else + { + phi_v1 = 0x780000ff; + phi_s0 = get_textptr_for_textID(TEXT(LTITLE, 0x67)); + } + } + } + spC10 = 0xa7; + spC14 = (s32) (sp48 + 0x37); + sp50 = (s32) phi_v1; + sp44 = get_video2_settings_txtClipW(); + load_draw_selected_icon_folder_select(add_tab3_previous(add_tab2_next(print_objectives_and_status_to_menu(write_text_at_abs_coord(arg0, &spC14, &spC10, phi_s0, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1, sp44, get_video2_settings_txtClipH(), 0, 0), 0xbf, &sp58, 1)))); +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu0C_missionfailed +/* 04AF1C 7F0163EC 27BDF3E8 */ addiu $sp, $sp, -0xc18 +/* 04AF20 7F0163F0 AFBF003C */ sw $ra, 0x3c($sp) +/* 04AF24 7F0163F4 AFB00038 */ sw $s0, 0x38($sp) +/* 04AF28 7F0163F8 00002825 */ move $a1, $zero +/* 04AF2C 7F0163FC 00003025 */ move $a2, $zero +/* 04AF30 7F016400 0C0011B4 */ jal set_setfillcolor +/* 04AF34 7F016404 00003825 */ move $a3, $zero +/* 04AF38 7F016408 0C000FBE */ jal insert_generic_fillrect +/* 04AF3C 7F01640C 00402025 */ move $a0, $v0 +/* 04AF40 7F016410 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 04AF44 7F016414 00402025 */ move $a0, $v0 +/* 04AF48 7F016418 0FC2B366 */ jal microcode_constructor +/* 04AF4C 7F01641C 00402025 */ move $a0, $v0 +/* 04AF50 7F016420 00402025 */ move $a0, $v0 +/* 04AF54 7F016424 0FC03AAF */ jal print_current_solo_briefing_stage_name +/* 04AF58 7F016428 27A50058 */ addiu $a1, $sp, 0x58 +/* 04AF5C 7F01642C AFA20C18 */ sw $v0, 0xc18($sp) +/* 04AF60 7F016430 0FC30776 */ jal get_textptr_for_textID +/* 04AF64 7F016434 34049C62 */ li $a0, 40034 +/* 04AF68 7F016438 240E0037 */ li $t6, 55 +/* 04AF6C 7F01643C 240F008F */ li $t7, 143 +/* 04AF70 7F016440 00408025 */ move $s0, $v0 +/* 04AF74 7F016444 AFAE0C14 */ sw $t6, 0xc14($sp) +/* 04AF78 7F016448 0C001107 */ jal get_video2_settings_txtClipW +/* 04AF7C 7F01644C AFAF0C10 */ sw $t7, 0xc10($sp) +/* 04AF80 7F016450 0C00110B */ jal get_video2_settings_txtClipH +/* 04AF84 7F016454 A7A20044 */ sh $v0, 0x44($sp) +/* 04AF88 7F016458 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 04AF8C 7F01645C 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 04AF90 7F016460 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 04AF94 7F016464 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 04AF98 7F016468 87A90044 */ lh $t1, 0x44($sp) +/* 04AF9C 7F01646C 240800FF */ li $t0, 255 +/* 04AFA0 7F016470 AFA80018 */ sw $t0, 0x18($sp) +/* 04AFA4 7F016474 8FA40C18 */ lw $a0, 0xc18($sp) +/* 04AFA8 7F016478 27A50C14 */ addiu $a1, $sp, 0xc14 +/* 04AFAC 7F01647C 27A60C10 */ addiu $a2, $sp, 0xc10 +/* 04AFB0 7F016480 02003825 */ move $a3, $s0 +/* 04AFB4 7F016484 AFA20020 */ sw $v0, 0x20($sp) +/* 04AFB8 7F016488 AFA00024 */ sw $zero, 0x24($sp) +/* 04AFBC 7F01648C AFA00028 */ sw $zero, 0x28($sp) +/* 04AFC0 7F016490 AFB90014 */ sw $t9, 0x14($sp) +/* 04AFC4 7F016494 AFB80010 */ sw $t8, 0x10($sp) +/* 04AFC8 7F016498 0FC025D8 */ jal write_text_at_abs_coord +/* 04AFCC 7F01649C AFA9001C */ sw $t1, 0x1c($sp) +/* 04AFD0 7F0164A0 AFA20C18 */ sw $v0, 0xc18($sp) +/* 04AFD4 7F0164A4 0FC30776 */ jal get_textptr_for_textID +/* 04AFD8 7F0164A8 34049C63 */ li $a0, 40035 +/* 04AFDC 7F0164AC 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 04AFE0 7F0164B0 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 04AFE4 7F0164B4 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 04AFE8 7F0164B8 00408025 */ move $s0, $v0 +/* 04AFEC 7F0164BC AFA00048 */ sw $zero, 0x48($sp) +/* 04AFF0 7F0164C0 AFA0004C */ sw $zero, 0x4c($sp) +/* 04AFF4 7F0164C4 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04AFF8 7F0164C8 27A4004C */ addiu $a0, $sp, 0x4c +/* 04AFFC 7F0164CC 27A50048 */ addiu $a1, $sp, 0x48 +/* 04B000 7F0164D0 00403025 */ move $a2, $v0 +/* 04B004 7F0164D4 AFA00014 */ sw $zero, 0x14($sp) +/* 04B008 7F0164D8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04B00C 7F0164DC AFAA0010 */ sw $t2, 0x10($sp) +/* 04B010 7F0164E0 240B0037 */ li $t3, 55 +/* 04B014 7F0164E4 240C00A7 */ li $t4, 167 +/* 04B018 7F0164E8 AFAB0C14 */ sw $t3, 0xc14($sp) +/* 04B01C 7F0164EC 0C001107 */ jal get_video2_settings_txtClipW +/* 04B020 7F0164F0 AFAC0C10 */ sw $t4, 0xc10($sp) +/* 04B024 7F0164F4 0C00110B */ jal get_video2_settings_txtClipH +/* 04B028 7F0164F8 A7A20044 */ sh $v0, 0x44($sp) +/* 04B02C 7F0164FC 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) +/* 04B030 7F016500 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 04B034 7F016504 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 04B038 7F016508 8DAD0EB8 */ lw $t5, %lo(ptrSecondFontTableLarge)($t5) +/* 04B03C 7F01650C 87B80044 */ lh $t8, 0x44($sp) +/* 04B040 7F016510 240F00FF */ li $t7, 255 +/* 04B044 7F016514 AFAF0018 */ sw $t7, 0x18($sp) +/* 04B048 7F016518 8FA40C18 */ lw $a0, 0xc18($sp) +/* 04B04C 7F01651C 27A50C14 */ addiu $a1, $sp, 0xc14 +/* 04B050 7F016520 27A60C10 */ addiu $a2, $sp, 0xc10 +/* 04B054 7F016524 02003825 */ move $a3, $s0 +/* 04B058 7F016528 AFA20020 */ sw $v0, 0x20($sp) +/* 04B05C 7F01652C AFA00024 */ sw $zero, 0x24($sp) +/* 04B060 7F016530 AFA00028 */ sw $zero, 0x28($sp) +/* 04B064 7F016534 AFAE0014 */ sw $t6, 0x14($sp) +/* 04B068 7F016538 AFAD0010 */ sw $t5, 0x10($sp) +/* 04B06C 7F01653C 0FC025D8 */ jal write_text_at_abs_coord +/* 04B070 7F016540 AFB8001C */ sw $t8, 0x1c($sp) +/* 04B074 7F016544 3C198003 */ lui $t9, %hi(mission_kia_flag) +/* 04B078 7F016548 8F39A928 */ lw $t9, %lo(mission_kia_flag)($t9) +/* 04B07C 7F01654C AFA20C18 */ sw $v0, 0xc18($sp) +/* 04B080 7F016550 3C088003 */ lui $t0, %hi(mission_failed_or_aborted) +/* 04B084 7F016554 13200007 */ beqz $t9, .L7F016574 +/* 04B088 7F016558 00000000 */ nop +/* 04B08C 7F01655C 0FC30776 */ jal get_textptr_for_textID +/* 04B090 7F016560 34049C64 */ li $a0, 40036 +/* 04B094 7F016564 3C037800 */ lui $v1, (0x780000FF >> 16) # lui $v1, 0x7800 +/* 04B098 7F016568 00408025 */ move $s0, $v0 +/* 04B09C 7F01656C 10000018 */ b .L7F0165D0 +/* 04B0A0 7F016570 346300FF */ ori $v1, (0x780000FF & 0xFFFF) # ori $v1, $v1, 0xff +.L7F016574: +/* 04B0A4 7F016574 8D08A924 */ lw $t0, %lo(mission_failed_or_aborted)($t0) +/* 04B0A8 7F016578 11000007 */ beqz $t0, .L7F016598 +/* 04B0AC 7F01657C 00000000 */ nop +/* 04B0B0 7F016580 0FC30776 */ jal get_textptr_for_textID +/* 04B0B4 7F016584 34049C65 */ li $a0, 40037 +/* 04B0B8 7F016588 3C037800 */ lui $v1, (0x780000FF >> 16) # lui $v1, 0x7800 +/* 04B0BC 7F01658C 00408025 */ move $s0, $v0 +/* 04B0C0 7F016590 1000000F */ b .L7F0165D0 +/* 04B0C4 7F016594 346300FF */ ori $v1, (0x780000FF & 0xFFFF) # ori $v1, $v1, 0xff +.L7F016598: +/* 04B0C8 7F016598 0FC058C7 */ jal sub_GAME_7F01631C +/* 04B0CC 7F01659C 00000000 */ nop +/* 04B0D0 7F0165A0 10400006 */ beqz $v0, .L7F0165BC +/* 04B0D4 7F0165A4 00000000 */ nop +/* 04B0D8 7F0165A8 0FC30776 */ jal get_textptr_for_textID +/* 04B0DC 7F0165AC 34049C66 */ li $a0, 40038 +/* 04B0E0 7F0165B0 00408025 */ move $s0, $v0 +/* 04B0E4 7F0165B4 10000006 */ b .L7F0165D0 +/* 04B0E8 7F0165B8 240300FF */ li $v1, 255 +.L7F0165BC: +/* 04B0EC 7F0165BC 0FC30776 */ jal get_textptr_for_textID +/* 04B0F0 7F0165C0 34049C67 */ li $a0, 40039 +/* 04B0F4 7F0165C4 3C037800 */ lui $v1, (0x780000FF >> 16) # lui $v1, 0x7800 +/* 04B0F8 7F0165C8 00408025 */ move $s0, $v0 +/* 04B0FC 7F0165CC 346300FF */ ori $v1, (0x780000FF & 0xFFFF) # ori $v1, $v1, 0xff +.L7F0165D0: +/* 04B100 7F0165D0 8FA90048 */ lw $t1, 0x48($sp) +/* 04B104 7F0165D4 240B00A7 */ li $t3, 167 +/* 04B108 7F0165D8 AFAB0C10 */ sw $t3, 0xc10($sp) +/* 04B10C 7F0165DC 252A0037 */ addiu $t2, $t1, 0x37 +/* 04B110 7F0165E0 AFAA0C14 */ sw $t2, 0xc14($sp) +/* 04B114 7F0165E4 0C001107 */ jal get_video2_settings_txtClipW +/* 04B118 7F0165E8 AFA30050 */ sw $v1, 0x50($sp) +/* 04B11C 7F0165EC 0C00110B */ jal get_video2_settings_txtClipH +/* 04B120 7F0165F0 A7A20044 */ sh $v0, 0x44($sp) +/* 04B124 7F0165F4 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) +/* 04B128 7F0165F8 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04B12C 7F0165FC 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04B130 7F016600 8D8C0EB8 */ lw $t4, %lo(ptrSecondFontTableLarge)($t4) +/* 04B134 7F016604 8FA30050 */ lw $v1, 0x50($sp) +/* 04B138 7F016608 87AE0044 */ lh $t6, 0x44($sp) +/* 04B13C 7F01660C 8FA40C18 */ lw $a0, 0xc18($sp) +/* 04B140 7F016610 27A50C14 */ addiu $a1, $sp, 0xc14 +/* 04B144 7F016614 27A60C10 */ addiu $a2, $sp, 0xc10 +/* 04B148 7F016618 02003825 */ move $a3, $s0 +/* 04B14C 7F01661C AFA20020 */ sw $v0, 0x20($sp) +/* 04B150 7F016620 AFA00024 */ sw $zero, 0x24($sp) +/* 04B154 7F016624 AFA00028 */ sw $zero, 0x28($sp) +/* 04B158 7F016628 AFAD0014 */ sw $t5, 0x14($sp) +/* 04B15C 7F01662C AFAC0010 */ sw $t4, 0x10($sp) +/* 04B160 7F016630 AFA30018 */ sw $v1, 0x18($sp) +/* 04B164 7F016634 0FC025D8 */ jal write_text_at_abs_coord +/* 04B168 7F016638 AFAE001C */ sw $t6, 0x1c($sp) +/* 04B16C 7F01663C 00402025 */ move $a0, $v0 +/* 04B170 7F016640 240500BF */ li $a1, 191 +/* 04B174 7F016644 27A60058 */ addiu $a2, $sp, 0x58 +/* 04B178 7F016648 0FC05682 */ jal print_objectives_and_status_to_menu +/* 04B17C 7F01664C 24070001 */ li $a3, 1 +/* 04B180 7F016650 0FC02905 */ jal add_tab2_next +/* 04B184 7F016654 00402025 */ move $a0, $v0 +/* 04B188 7F016658 0FC0288E */ jal add_tab3_previous +/* 04B18C 7F01665C 00402025 */ move $a0, $v0 +/* 04B190 7F016660 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 04B194 7F016664 00402025 */ move $a0, $v0 +/* 04B198 7F016668 8FBF003C */ lw $ra, 0x3c($sp) +/* 04B19C 7F01666C 8FB00038 */ lw $s0, 0x38($sp) +/* 04B1A0 7F016670 27BD0C18 */ addiu $sp, $sp, 0xc18 +/* 04B1A4 7F016674 03E00008 */ jr $ra +/* 04B1A8 7F016678 00000000 */ nop +) +#endif + + + + + + +void init_menu0D_missioncomplete(void) +{ + tab_2_selected = 0; + tab_3_selected = 0; + load_walletbond(); + load_briefing_text_for_stage(); + if (newcheatunlocked != 0) + { + play_sfx_a1(ptr_sfx_buf, 0x102, 0); + } +} + +void update_menu0D_missioncomplete(void) { + return; +} + + + + + + + +#ifdef NONMATCHING +void interface_menu0D_missioncomplete(u32 param_1,u32 param_2) +{ + u32 BVar3; + s32 uVar1; + s32 lVar2; + mission_folder_setup *pmVar4; + mission_folder_setup *pmVar5; + int entry; + short sVar6; + int iVar7; + + setvideo_far(60.00000000); + video_related_21((f32)menu0D_aspect); + set_page_height(100.00000000,(f32)menu0D_pageheight); + set_video2_settings_offset_24(0); + tab_3_highlight = FALSE; + tab_2_highlight = FALSE; + if (isontab3() == FALSE) { + if (isontab2() == FALSE) { + tab_2_highlight = TRUE; + } + else { + tab_2_highlight = TRUE; + } + } + else { + tab_3_highlight = TRUE; + } + if (get_controller_buttons_pressed(0,START_BUTTON|Z_TRIG|A_BUTTON) == 0) { + if (get_controller_buttons_pressed(0,B_BUTTON) != 0) { + tab_3_selected = TRUE; + play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + } + } + else { + if (tab_2_highlight == FALSE) { + if (tab_3_highlight != FALSE) { + tab_3_selected = TRUE; + play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + } + } + else { + tab_2_selected = TRUE; + play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + } + } + disable_all_switches((int)ptr_folder_object_instance); + set_item_visibility_in_objinstance((int)ptr_folder_object_instance,0,1); + set_item_visibility_in_objinstance((int)ptr_folder_object_instance,1,1); + set_item_visibility_in_objinstance((int)ptr_folder_object_instance,3,1); + set_item_visibility_in_objinstance((int)ptr_folder_object_instance,6,1); + menu_control_stick_tracking(); + if (tab_2_selected == FALSE) { + if (tab_3_selected != FALSE) { + set_menu_to_mode(MENU_MISSION_SELECT,0); + set_cursor_to_stage_solo((s32)mission_folder_setup_entries[briefingpage].mission_num); + } + } + else { + lVar2 = proc_7F01631C(); + if ((lVar2 == 0) || (append_cheat_sp != FALSE)) { + set_menu_to_mode(MENU_BRIEFING,0); + } + else { + if (mission_folder_setup_entries[briefingpage].mission_num == 0x11) { + set_menu_to_mode(MENU_RUN_STAGE,1); + selected_stage = LEVELID_CUBA; + } + else { + entry = briefingpage + 1; + if (mission_folder_setup_entries[briefingpage].mission_num < 0x12) { + sVar6 = mission_folder_setup_entries[entry].folder_text_preset; + pmVar5 = mission_folder_setup_entries + entry; + if (sVar6 != 0) { + iVar7 = mission_folder_setup_entries[entry].stage_id; + pmVar4 = mission_folder_setup_entries + entry; + while (pmVar5 = pmVar4, iVar7 < 0) { + sVar6 = pmVar4[1].folder_text_preset; + entry += 1; + pmVar5 = pmVar4 + 1; + if (sVar6 == 0) break; + iVar7 = pmVar4[1].stage_id; + pmVar4 = pmVar5; + } + } + if (sVar6 != 0) { + selected_stage = pmVar5->stage_id; + briefingpage = entry; + } + set_menu_to_mode(MENU_BRIEFING,0); + } + else { + set_menu_to_mode(MENU_MISSION_SELECT,0); + set_cursor_to_stage_solo((s32)mission_folder_setup_entries[briefingpage].mission_num) + ; + } + } + } + } + return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel menu0D_aspect +.word 0x3FAAAAAB /*1.3333334;*/ +glabel menu0D_pageheight +.word 0x461C4000 /*10000.0;*/ + +.text +glabel interface_menu0D_missioncomplete +/* 04B208 7F0166D8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 04B20C 7F0166DC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 04B210 7F0166E0 AFBF0014 */ sw $ra, 0x14($sp) +/* 04B214 7F0166E4 44816000 */ mtc1 $at, $f12 +/* 04B218 7F0166E8 0C001151 */ jal setvideo_far +/* 04B21C 7F0166EC 00000000 */ nop +/* 04B220 7F0166F0 3C018005 */ lui $at, %hi(menu0D_aspect) +/* 04B224 7F0166F4 0C001164 */ jal video_related_21 +/* 04B228 7F0166F8 C42C1ADC */ lwc1 $f12, %lo(menu0D_aspect)($at) +/* 04B22C 7F0166FC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04B230 7F016700 44816000 */ mtc1 $at, $f12 +/* 04B234 7F016704 3C018005 */ lui $at, %hi(menu0D_pageheight) +/* 04B238 7F016708 0C001194 */ jal set_page_height +/* 04B23C 7F01670C C42E1AE0 */ lwc1 $f14, %lo(menu0D_pageheight)($at) +/* 04B240 7F016710 0C00114D */ jal set_video2_settings_offset_24 +/* 04B244 7F016714 00002025 */ move $a0, $zero +/* 04B248 7F016718 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04B24C 7F01671C AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 04B250 7F016720 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04B254 7F016724 0FC028E7 */ jal isontab3 +/* 04B258 7F016728 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 04B25C 7F01672C 10400004 */ beqz $v0, .L7F016740 +/* 04B260 7F016730 24030001 */ li $v1, 1 +/* 04B264 7F016734 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04B268 7F016738 1000000B */ b .L7F016768 +/* 04B26C 7F01673C AC23A8E4 */ sw $v1, %lo(tab_3_highlight)($at) +.L7F016740: +/* 04B270 7F016740 0FC0295E */ jal isontab2 +/* 04B274 7F016744 00000000 */ nop +/* 04B278 7F016748 10400005 */ beqz $v0, .L7F016760 +/* 04B27C 7F01674C 24030001 */ li $v1, 1 +/* 04B280 7F016750 24030001 */ li $v1, 1 +/* 04B284 7F016754 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04B288 7F016758 10000003 */ b .L7F016768 +/* 04B28C 7F01675C AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) +.L7F016760: +/* 04B290 7F016760 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04B294 7F016764 AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) +.L7F016768: +/* 04B298 7F016768 00002025 */ move $a0, $zero +/* 04B29C 7F01676C 0C0030EB */ jal get_controller_buttons_pressed +/* 04B2A0 7F016770 3405B000 */ li $a1, 45056 +/* 04B2A4 7F016774 10400019 */ beqz $v0, .L7F0167DC +/* 04B2A8 7F016778 24030001 */ li $v1, 1 +/* 04B2AC 7F01677C 3C0E8003 */ lui $t6, %hi(tab_2_highlight) +/* 04B2B0 7F016780 8DCEA8E0 */ lw $t6, %lo(tab_2_highlight)($t6) +/* 04B2B4 7F016784 3C018003 */ lui $at, %hi(tab_2_selected) +/* 04B2B8 7F016788 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04B2BC 7F01678C 11C00008 */ beqz $t6, .L7F0167B0 +/* 04B2C0 7F016790 3C0F8003 */ lui $t7, %hi(tab_3_highlight) +/* 04B2C4 7F016794 AC23A8D4 */ sw $v1, %lo(tab_2_selected)($at) +/* 04B2C8 7F016798 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04B2CC 7F01679C 240500C7 */ li $a1, 199 +/* 04B2D0 7F0167A0 0C002382 */ jal play_sfx_a1 +/* 04B2D4 7F0167A4 00003025 */ move $a2, $zero +/* 04B2D8 7F0167A8 10000018 */ b .L7F01680C +/* 04B2DC 7F0167AC 00000000 */ nop +.L7F0167B0: +/* 04B2E0 7F0167B0 8DEFA8E4 */ lw $t7, %lo(tab_3_highlight)($t7) +/* 04B2E4 7F0167B4 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04B2E8 7F0167B8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04B2EC 7F0167BC 11E00013 */ beqz $t7, .L7F01680C +/* 04B2F0 7F0167C0 240500C7 */ li $a1, 199 +/* 04B2F4 7F0167C4 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +/* 04B2F8 7F0167C8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04B2FC 7F0167CC 0C002382 */ jal play_sfx_a1 +/* 04B300 7F0167D0 00003025 */ move $a2, $zero +/* 04B304 7F0167D4 1000000D */ b .L7F01680C +/* 04B308 7F0167D8 00000000 */ nop +.L7F0167DC: +/* 04B30C 7F0167DC 00002025 */ move $a0, $zero +/* 04B310 7F0167E0 0C0030EB */ jal get_controller_buttons_pressed +/* 04B314 7F0167E4 24054000 */ li $a1, 16384 +/* 04B318 7F0167E8 10400008 */ beqz $v0, .L7F01680C +/* 04B31C 7F0167EC 24030001 */ li $v1, 1 +/* 04B320 7F0167F0 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04B324 7F0167F4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04B328 7F0167F8 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +/* 04B32C 7F0167FC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04B330 7F016800 240500C7 */ li $a1, 199 +/* 04B334 7F016804 0C002382 */ jal play_sfx_a1 +/* 04B338 7F016808 00003025 */ move $a2, $zero +.L7F01680C: +/* 04B33C 7F01680C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04B340 7F016810 0FC02DC9 */ jal disable_all_switches +/* 04B344 7F016814 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04B348 7F016818 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04B34C 7F01681C 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04B350 7F016820 00002825 */ move $a1, $zero +/* 04B354 7F016824 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04B358 7F016828 24060001 */ li $a2, 1 +/* 04B35C 7F01682C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04B360 7F016830 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04B364 7F016834 24050001 */ li $a1, 1 +/* 04B368 7F016838 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04B36C 7F01683C 24060001 */ li $a2, 1 +/* 04B370 7F016840 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04B374 7F016844 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04B378 7F016848 24050003 */ li $a1, 3 +/* 04B37C 7F01684C 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04B380 7F016850 24060001 */ li $a2, 1 +/* 04B384 7F016854 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04B388 7F016858 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04B38C 7F01685C 24050006 */ li $a1, 6 +/* 04B390 7F016860 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04B394 7F016864 24060001 */ li $a2, 1 +/* 04B398 7F016868 0FC026E1 */ jal menu_control_stick_tracking +/* 04B39C 7F01686C 00000000 */ nop +/* 04B3A0 7F016870 3C188003 */ lui $t8, %hi(tab_2_selected) +/* 04B3A4 7F016874 8F18A8D4 */ lw $t8, %lo(tab_2_selected)($t8) +/* 04B3A8 7F016878 3C098003 */ lui $t1, %hi(tab_3_selected) +/* 04B3AC 7F01687C 1300004D */ beqz $t8, .L7F0169B4 +/* 04B3B0 7F016880 00000000 */ nop +/* 04B3B4 7F016884 0FC058C7 */ jal sub_GAME_7F01631C +/* 04B3B8 7F016888 00000000 */ nop +/* 04B3BC 7F01688C 10400044 */ beqz $v0, .L7F0169A0 +/* 04B3C0 7F016890 3C198003 */ lui $t9, %hi(append_cheat_sp) +/* 04B3C4 7F016894 8F39A900 */ lw $t9, %lo(append_cheat_sp)($t9) +/* 04B3C8 7F016898 3C088003 */ lui $t0, %hi(briefingpage) +/* 04B3CC 7F01689C 2508A8F8 */ addiu $t0, %lo(briefingpage) # addiu $t0, $t0, -0x5708 +/* 04B3D0 7F0168A0 57200040 */ bnezl $t9, .L7F0169A4 +/* 04B3D4 7F0168A4 2404000A */ li $a0, 10 +/* 04B3D8 7F0168A8 8D050000 */ lw $a1, ($t0) +/* 04B3DC 7F0168AC 2407001C */ li $a3, 28 +/* 04B3E0 7F0168B0 3C068003 */ lui $a2, %hi(mission_folder_setup_entries) +/* 04B3E4 7F0168B4 00A70019 */ multu $a1, $a3 +/* 04B3E8 7F0168B8 24C6ABE4 */ addiu $a2, %lo(mission_folder_setup_entries) # addiu $a2, $a2, -0x541c +/* 04B3EC 7F0168BC 24010011 */ li $at, 17 +/* 04B3F0 7F0168C0 2404000B */ li $a0, 11 +/* 04B3F4 7F0168C4 00004812 */ mflo $t1 +/* 04B3F8 7F0168C8 00C95021 */ addu $t2, $a2, $t1 +/* 04B3FC 7F0168CC 8D420014 */ lw $v0, 0x14($t2) +/* 04B400 7F0168D0 54410008 */ bnel $v0, $at, .L7F0168F4 +/* 04B404 7F0168D4 28410012 */ slti $at, $v0, 0x12 +/* 04B408 7F0168D8 0FC06975 */ jal set_menu_to_mode +/* 04B40C 7F0168DC 24050001 */ li $a1, 1 +/* 04B410 7F0168E0 240B0036 */ li $t3, 54 +/* 04B414 7F0168E4 3C018003 */ lui $at, %hi(selected_stage) +/* 04B418 7F0168E8 10000043 */ b .L7F0169F8 +/* 04B41C 7F0168EC AC2BA8F4 */ sw $t3, %lo(selected_stage)($at) +/* 04B420 7F0168F0 28410012 */ slti $at, $v0, 0x12 +.L7F0168F4: +/* 04B424 7F0168F4 14200011 */ bnez $at, .L7F01693C +/* 04B428 7F0168F8 24A30001 */ addiu $v1, $a1, 1 +/* 04B42C 7F0168FC 24040007 */ li $a0, 7 +/* 04B430 7F016900 0FC06975 */ jal set_menu_to_mode +/* 04B434 7F016904 00002825 */ move $a1, $zero +/* 04B438 7F016908 3C088003 */ lui $t0, %hi(briefingpage) +/* 04B43C 7F01690C 2508A8F8 */ addiu $t0, %lo(briefingpage) # addiu $t0, $t0, -0x5708 +/* 04B440 7F016910 8D0C0000 */ lw $t4, ($t0) +/* 04B444 7F016914 2407001C */ li $a3, 28 +/* 04B448 7F016918 3C068003 */ lui $a2, %hi(mission_folder_setup_entries) +/* 04B44C 7F01691C 01870019 */ multu $t4, $a3 +/* 04B450 7F016920 24C6ABE4 */ addiu $a2, %lo(mission_folder_setup_entries) # addiu $a2, $a2, -0x541c +/* 04B454 7F016924 00006812 */ mflo $t5 +/* 04B458 7F016928 00CD7021 */ addu $t6, $a2, $t5 +/* 04B45C 7F01692C 0FC038F8 */ jal set_cursor_to_stage_solo +/* 04B460 7F016930 8DC40014 */ lw $a0, 0x14($t6) +/* 04B464 7F016934 10000031 */ b .L7F0169FC +/* 04B468 7F016938 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01693C: +/* 04B46C 7F01693C 00670019 */ multu $v1, $a3 +/* 04B470 7F016940 00002825 */ move $a1, $zero +/* 04B474 7F016944 00007812 */ mflo $t7 +/* 04B478 7F016948 00CF1021 */ addu $v0, $a2, $t7 +/* 04B47C 7F01694C 94440004 */ lhu $a0, 4($v0) +/* 04B480 7F016950 10800009 */ beqz $a0, .L7F016978 +/* 04B484 7F016954 00000000 */ nop +/* 04B488 7F016958 8C580008 */ lw $t8, 8($v0) +.L7F01695C: +/* 04B48C 7F01695C 07010006 */ bgez $t8, .L7F016978 +/* 04B490 7F016960 00000000 */ nop +/* 04B494 7F016964 94440020 */ lhu $a0, 0x20($v0) +/* 04B498 7F016968 24630001 */ addiu $v1, $v1, 1 +/* 04B49C 7F01696C 2442001C */ addiu $v0, $v0, 0x1c +/* 04B4A0 7F016970 5480FFFA */ bnezl $a0, .L7F01695C +/* 04B4A4 7F016974 8C580008 */ lw $t8, 8($v0) +.L7F016978: +/* 04B4A8 7F016978 10800005 */ beqz $a0, .L7F016990 +/* 04B4AC 7F01697C 00000000 */ nop +/* 04B4B0 7F016980 8C590008 */ lw $t9, 8($v0) +/* 04B4B4 7F016984 AD030000 */ sw $v1, ($t0) +/* 04B4B8 7F016988 3C018003 */ lui $at, %hi(selected_stage) +/* 04B4BC 7F01698C AC39A8F4 */ sw $t9, %lo(selected_stage)($at) +.L7F016990: +/* 04B4C0 7F016990 0FC06975 */ jal set_menu_to_mode +/* 04B4C4 7F016994 2404000A */ li $a0, 10 +/* 04B4C8 7F016998 10000018 */ b .L7F0169FC +/* 04B4CC 7F01699C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0169A0: +/* 04B4D0 7F0169A0 2404000A */ li $a0, 10 +.L7F0169A4: +/* 04B4D4 7F0169A4 0FC06975 */ jal set_menu_to_mode +/* 04B4D8 7F0169A8 00002825 */ move $a1, $zero +/* 04B4DC 7F0169AC 10000013 */ b .L7F0169FC +/* 04B4E0 7F0169B0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0169B4: +/* 04B4E4 7F0169B4 8D29A8D8 */ lw $t1, %lo(tab_3_selected)($t1) +/* 04B4E8 7F0169B8 24040007 */ li $a0, 7 +/* 04B4EC 7F0169BC 5120000F */ beql $t1, $zero, .L7F0169FC +/* 04B4F0 7F0169C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 04B4F4 7F0169C4 0FC06975 */ jal set_menu_to_mode +/* 04B4F8 7F0169C8 00002825 */ move $a1, $zero +/* 04B4FC 7F0169CC 3C088003 */ lui $t0, %hi(briefingpage) +/* 04B500 7F0169D0 2508A8F8 */ addiu $t0, %lo(briefingpage) # addiu $t0, $t0, -0x5708 +/* 04B504 7F0169D4 8D0A0000 */ lw $t2, ($t0) +/* 04B508 7F0169D8 2407001C */ li $a3, 28 +/* 04B50C 7F0169DC 3C068003 */ lui $a2, %hi(mission_folder_setup_entries) +/* 04B510 7F0169E0 01470019 */ multu $t2, $a3 +/* 04B514 7F0169E4 24C6ABE4 */ addiu $a2, %lo(mission_folder_setup_entries) # addiu $a2, $a2, -0x541c +/* 04B518 7F0169E8 00005812 */ mflo $t3 +/* 04B51C 7F0169EC 00CB6021 */ addu $t4, $a2, $t3 +/* 04B520 7F0169F0 0FC038F8 */ jal set_cursor_to_stage_solo +/* 04B524 7F0169F4 8D840014 */ lw $a0, 0x14($t4) +.L7F0169F8: +/* 04B528 7F0169F8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0169FC: +/* 04B52C 7F0169FC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 04B530 7F016A00 03E00008 */ jr $ra +/* 04B534 7F016A04 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu0D_missioncomplete(void) { + +} +#else +const char a02d02d[] = "%02d:%02d"; +const char aS[] = " [%s]"; +const char a02d02d_0[] = "%02d:%02d"; +const char aS02d02d[] = " (%s %02d:%02d)"; +const char D_80051848[] = ""; +const char a02d02d_1[] = "%02d:%02d"; +const char a_1f[] = "%.1f%%"; +const char aX2[] = " x 2\n"; +const char aD_8[] = "%d"; +const char aDD_0[] = "%d (%d%%)"; +const char aDD_1[] = "%d (%d%%)"; +const char aDD_2[] = "%d (%d%%)"; +const char aDD_3[] = "%d (%d%%)"; +const char aD_10[] = "%d"; +GLOBAL_ASM( +.text +glabel constructor_menu0D_missioncomplete +/* 04B538 7F016A08 27BDF398 */ addiu $sp, $sp, -0xc68 +/* 04B53C 7F016A0C AFBF003C */ sw $ra, 0x3c($sp) +/* 04B540 7F016A10 AFB10038 */ sw $s1, 0x38($sp) +/* 04B544 7F016A14 AFB00034 */ sw $s0, 0x34($sp) +/* 04B548 7F016A18 00002825 */ move $a1, $zero +/* 04B54C 7F016A1C 00003025 */ move $a2, $zero +/* 04B550 7F016A20 0C0011B4 */ jal set_setfillcolor +/* 04B554 7F016A24 00003825 */ move $a3, $zero +/* 04B558 7F016A28 0C000FBE */ jal insert_generic_fillrect +/* 04B55C 7F016A2C 00402025 */ move $a0, $v0 +/* 04B560 7F016A30 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 04B564 7F016A34 00402025 */ move $a0, $v0 +/* 04B568 7F016A38 0FC2B366 */ jal microcode_constructor +/* 04B56C 7F016A3C 00402025 */ move $a0, $v0 +/* 04B570 7F016A40 0FC22FEE */ jal get_mission_timer +/* 04B574 7F016A44 00408825 */ move $s1, $v0 +/* 04B578 7F016A48 0FC1AA49 */ jal get_curplay_killcount +/* 04B57C 7F016A4C AFA20098 */ sw $v0, 0x98($sp) +/* 04B580 7F016A50 AFA20094 */ sw $v0, 0x94($sp) +/* 04B584 7F016A54 0FC1A9D0 */ jal get_curplayer_shot_register +/* 04B588 7F016A58 00002025 */ move $a0, $zero +/* 04B58C 7F016A5C AFA20090 */ sw $v0, 0x90($sp) +/* 04B590 7F016A60 0FC1A9D0 */ jal get_curplayer_shot_register +/* 04B594 7F016A64 24040001 */ li $a0, 1 +/* 04B598 7F016A68 AFA2008C */ sw $v0, 0x8c($sp) +/* 04B59C 7F016A6C 0FC1A9D0 */ jal get_curplayer_shot_register +/* 04B5A0 7F016A70 24040002 */ li $a0, 2 +/* 04B5A4 7F016A74 AFA20088 */ sw $v0, 0x88($sp) +/* 04B5A8 7F016A78 0FC1A9D0 */ jal get_curplayer_shot_register +/* 04B5AC 7F016A7C 24040003 */ li $a0, 3 +/* 04B5B0 7F016A80 AFA20084 */ sw $v0, 0x84($sp) +/* 04B5B4 7F016A84 0FC1A9D0 */ jal get_curplayer_shot_register +/* 04B5B8 7F016A88 24040004 */ li $a0, 4 +/* 04B5BC 7F016A8C AFA20080 */ sw $v0, 0x80($sp) +/* 04B5C0 7F016A90 0FC1A9D0 */ jal get_curplayer_shot_register +/* 04B5C4 7F016A94 24040005 */ li $a0, 5 +/* 04B5C8 7F016A98 AFA2007C */ sw $v0, 0x7c($sp) +/* 04B5CC 7F016A9C 0FC1A9D0 */ jal get_curplayer_shot_register +/* 04B5D0 7F016AA0 24040006 */ li $a0, 6 +/* 04B5D4 7F016AA4 8FAE008C */ lw $t6, 0x8c($sp) +/* 04B5D8 7F016AA8 8FAF0088 */ lw $t7, 0x88($sp) +/* 04B5DC 7F016AAC 8FB90084 */ lw $t9, 0x84($sp) +/* 04B5E0 7F016AB0 8FAB0080 */ lw $t3, 0x80($sp) +/* 04B5E4 7F016AB4 8FAD007C */ lw $t5, 0x7c($sp) +/* 04B5E8 7F016AB8 01CFC021 */ addu $t8, $t6, $t7 +/* 04B5EC 7F016ABC 03195021 */ addu $t2, $t8, $t9 +/* 04B5F0 7F016AC0 014B6021 */ addu $t4, $t2, $t3 +/* 04B5F4 7F016AC4 018D3021 */ addu $a2, $t4, $t5 +/* 04B5F8 7F016AC8 00C27021 */ addu $t6, $a2, $v0 +/* 04B5FC 7F016ACC 1CC00002 */ bgtz $a2, .L7F016AD8 +/* 04B600 7F016AD0 AFAE0074 */ sw $t6, 0x74($sp) +/* 04B604 7F016AD4 24060001 */ li $a2, 1 +.L7F016AD8: +/* 04B608 7F016AD8 02202025 */ move $a0, $s1 +/* 04B60C 7F016ADC 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 04B610 7F016AE0 0FC03AAF */ jal print_current_solo_briefing_stage_name +/* 04B614 7F016AE4 AFA60070 */ sw $a2, 0x70($sp) +/* 04B618 7F016AE8 00408825 */ move $s1, $v0 +/* 04B61C 7F016AEC 0FC30776 */ jal get_textptr_for_textID +/* 04B620 7F016AF0 34049C68 */ li $a0, 40040 +/* 04B624 7F016AF4 240F0037 */ li $t7, 55 +/* 04B628 7F016AF8 2418008F */ li $t8, 143 +/* 04B62C 7F016AFC AFA200A4 */ sw $v0, 0xa4($sp) +/* 04B630 7F016B00 AFAF0C64 */ sw $t7, 0xc64($sp) +/* 04B634 7F016B04 0C001107 */ jal get_video2_settings_txtClipW +/* 04B638 7F016B08 AFB80C60 */ sw $t8, 0xc60($sp) +/* 04B63C 7F016B0C 00028400 */ sll $s0, $v0, 0x10 +/* 04B640 7F016B10 0010CC03 */ sra $t9, $s0, 0x10 +/* 04B644 7F016B14 0C00110B */ jal get_video2_settings_txtClipH +/* 04B648 7F016B18 03208025 */ move $s0, $t9 +/* 04B64C 7F016B1C 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableLarge) +/* 04B650 7F016B20 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) +/* 04B654 7F016B24 8D6B0EB4 */ lw $t3, %lo(ptrFirstFontTableLarge)($t3) +/* 04B658 7F016B28 8D4A0EB8 */ lw $t2, %lo(ptrSecondFontTableLarge)($t2) +/* 04B65C 7F016B2C 240C00FF */ li $t4, 255 +/* 04B660 7F016B30 AFAC0018 */ sw $t4, 0x18($sp) +/* 04B664 7F016B34 02202025 */ move $a0, $s1 +/* 04B668 7F016B38 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04B66C 7F016B3C 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04B670 7F016B40 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04B674 7F016B44 AFB0001C */ sw $s0, 0x1c($sp) +/* 04B678 7F016B48 AFA20020 */ sw $v0, 0x20($sp) +/* 04B67C 7F016B4C AFA00024 */ sw $zero, 0x24($sp) +/* 04B680 7F016B50 AFA00028 */ sw $zero, 0x28($sp) +/* 04B684 7F016B54 AFAB0014 */ sw $t3, 0x14($sp) +/* 04B688 7F016B58 0FC025D8 */ jal write_text_at_abs_coord +/* 04B68C 7F016B5C AFAA0010 */ sw $t2, 0x10($sp) +/* 04B690 7F016B60 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04B694 7F016B64 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04B698 7F016B68 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 04B69C 7F016B6C 00408825 */ move $s1, $v0 +/* 04B6A0 7F016B70 AFA0009C */ sw $zero, 0x9c($sp) +/* 04B6A4 7F016B74 AFA000A0 */ sw $zero, 0xa0($sp) +/* 04B6A8 7F016B78 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04B6AC 7F016B7C 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 04B6B0 7F016B80 27A5009C */ addiu $a1, $sp, 0x9c +/* 04B6B4 7F016B84 8FA600A4 */ lw $a2, 0xa4($sp) +/* 04B6B8 7F016B88 AFA00014 */ sw $zero, 0x14($sp) +/* 04B6BC 7F016B8C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04B6C0 7F016B90 AFAD0010 */ sw $t5, 0x10($sp) +/* 04B6C4 7F016B94 0FC30776 */ jal get_textptr_for_textID +/* 04B6C8 7F016B98 34049C69 */ li $a0, 40041 +/* 04B6CC 7F016B9C 240E0037 */ li $t6, 55 +/* 04B6D0 7F016BA0 240F00A7 */ li $t7, 167 +/* 04B6D4 7F016BA4 AFA200A4 */ sw $v0, 0xa4($sp) +/* 04B6D8 7F016BA8 AFAE0C64 */ sw $t6, 0xc64($sp) +/* 04B6DC 7F016BAC 0C001107 */ jal get_video2_settings_txtClipW +/* 04B6E0 7F016BB0 AFAF0C60 */ sw $t7, 0xc60($sp) +/* 04B6E4 7F016BB4 00028400 */ sll $s0, $v0, 0x10 +/* 04B6E8 7F016BB8 0010C403 */ sra $t8, $s0, 0x10 +/* 04B6EC 7F016BBC 0C00110B */ jal get_video2_settings_txtClipH +/* 04B6F0 7F016BC0 03008025 */ move $s0, $t8 +/* 04B6F4 7F016BC4 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 04B6F8 7F016BC8 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 04B6FC 7F016BCC 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 04B700 7F016BD0 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 04B704 7F016BD4 240B00FF */ li $t3, 255 +/* 04B708 7F016BD8 AFAB0018 */ sw $t3, 0x18($sp) +/* 04B70C 7F016BDC 02202025 */ move $a0, $s1 +/* 04B710 7F016BE0 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04B714 7F016BE4 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04B718 7F016BE8 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04B71C 7F016BEC AFB0001C */ sw $s0, 0x1c($sp) +/* 04B720 7F016BF0 AFA20020 */ sw $v0, 0x20($sp) +/* 04B724 7F016BF4 AFA00024 */ sw $zero, 0x24($sp) +/* 04B728 7F016BF8 AFA00028 */ sw $zero, 0x28($sp) +/* 04B72C 7F016BFC AFAA0014 */ sw $t2, 0x14($sp) +/* 04B730 7F016C00 0FC025D8 */ jal write_text_at_abs_coord +/* 04B734 7F016C04 AFB90010 */ sw $t9, 0x10($sp) +/* 04B738 7F016C08 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 04B73C 7F016C0C 00408825 */ move $s1, $v0 +/* 04B740 7F016C10 0FC07771 */ jal get_save_folder_ptr +/* 04B744 7F016C14 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 04B748 7F016C18 3C0C8003 */ lui $t4, %hi(briefingpage) +/* 04B74C 7F016C1C 8D8CA8F8 */ lw $t4, %lo(briefingpage)($t4) +/* 04B750 7F016C20 3C108003 */ lui $s0, %hi(mission_folder_setup_entries) +/* 04B754 7F016C24 2610ABE4 */ addiu $s0, %lo(mission_folder_setup_entries) # addiu $s0, $s0, -0x541c +/* 04B758 7F016C28 000C68C0 */ sll $t5, $t4, 3 +/* 04B75C 7F016C2C 01AC6823 */ subu $t5, $t5, $t4 +/* 04B760 7F016C30 000D6880 */ sll $t5, $t5, 2 +/* 04B764 7F016C34 020D7021 */ addu $t6, $s0, $t5 +/* 04B768 7F016C38 3C068003 */ lui $a2, %hi(selected_difficulty) +/* 04B76C 7F016C3C 8CC6A8FC */ lw $a2, %lo(selected_difficulty)($a2) +/* 04B770 7F016C40 8DC50014 */ lw $a1, 0x14($t6) +/* 04B774 7F016C44 0FC07664 */ jal get_eeprom_stage_complete_time_for_difficulty +/* 04B778 7F016C48 00402025 */ move $a0, $v0 +/* 04B77C 7F016C4C 10400004 */ beqz $v0, .L7F016C60 +/* 04B780 7F016C50 00404825 */ move $t1, $v0 +/* 04B784 7F016C54 284103FF */ slti $at, $v0, 0x3ff +/* 04B788 7F016C58 14200002 */ bnez $at, .L7F016C64 +/* 04B78C 7F016C5C 00000000 */ nop +.L7F016C60: +/* 04B790 7F016C60 2409FFFF */ li $t1, -1 +.L7F016C64: +/* 04B794 7F016C64 3C028003 */ lui $v0, %hi(selected_difficulty) +/* 04B798 7F016C68 8C42A8FC */ lw $v0, %lo(selected_difficulty)($v0) +/* 04B79C 7F016C6C 2408003C */ li $t0, 60 +/* 04B7A0 7F016C70 3C0F8003 */ lui $t7, %hi(briefingpage) +/* 04B7A4 7F016C74 28410003 */ slti $at, $v0, 3 +/* 04B7A8 7F016C78 14200003 */ bnez $at, .L7F016C88 +/* 04B7AC 7F016C7C 3C0E8003 */ lui $t6, %hi(solo_target_time_array) +/* 04B7B0 7F016C80 10000002 */ b .L7F016C8C +/* 04B7B4 7F016C84 24030002 */ li $v1, 2 +.L7F016C88: +/* 04B7B8 7F016C88 00401825 */ move $v1, $v0 +.L7F016C8C: +/* 04B7BC 7F016C8C 8DEFA8F8 */ lw $t7, %lo(briefingpage)($t7) +/* 04B7C0 7F016C90 00036040 */ sll $t4, $v1, 1 +/* 04B7C4 7F016C94 3C058005 */ lui $a1, %hi(a02d02d) +/* 04B7C8 7F016C98 000FC0C0 */ sll $t8, $t7, 3 +/* 04B7CC 7F016C9C 030FC023 */ subu $t8, $t8, $t7 +/* 04B7D0 7F016CA0 8FAF0098 */ lw $t7, 0x98($sp) +/* 04B7D4 7F016CA4 0018C080 */ sll $t8, $t8, 2 +/* 04B7D8 7F016CA8 0218C821 */ addu $t9, $s0, $t8 +/* 04B7DC 7F016CAC 01E8001A */ div $zero, $t7, $t0 +/* 04B7E0 7F016CB0 00001012 */ mflo $v0 +/* 04B7E4 7F016CB4 8F2A0014 */ lw $t2, 0x14($t9) +/* 04B7E8 7F016CB8 A3A000A8 */ sb $zero, 0xa8($sp) +/* 04B7EC 7F016CBC 0048001A */ div $zero, $v0, $t0 +/* 04B7F0 7F016CC0 000A5880 */ sll $t3, $t2, 2 +/* 04B7F4 7F016CC4 016A5823 */ subu $t3, $t3, $t2 +/* 04B7F8 7F016CC8 000B5840 */ sll $t3, $t3, 1 +/* 04B7FC 7F016CCC 016C6821 */ addu $t5, $t3, $t4 +/* 04B800 7F016CD0 01CD7021 */ addu $t6, $t6, $t5 +/* 04B804 7F016CD4 85CEB564 */ lh $t6, %lo(solo_target_time_array)($t6) +/* 04B808 7F016CD8 00003810 */ mfhi $a3 +/* 04B80C 7F016CDC 00003012 */ mflo $a2 +/* 04B810 7F016CE0 AFA90064 */ sw $t1, 0x64($sp) +/* 04B814 7F016CE4 24A5180C */ addiu $a1, %lo(a02d02d) # addiu $a1, $a1, 0x180c +/* 04B818 7F016CE8 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04B81C 7F016CEC AFAE0060 */ sw $t6, 0x60($sp) +/* 04B820 7F016CF0 15000002 */ bnez $t0, .L7F016CFC +/* 04B824 7F016CF4 00000000 */ nop +/* 04B828 7F016CF8 0007000D */ break 7 +.L7F016CFC: +/* 04B82C 7F016CFC 2401FFFF */ li $at, -1 +/* 04B830 7F016D00 15010004 */ bne $t0, $at, .L7F016D14 +/* 04B834 7F016D04 3C018000 */ lui $at, 0x8000 +/* 04B838 7F016D08 15E10002 */ bne $t7, $at, .L7F016D14 +/* 04B83C 7F016D0C 00000000 */ nop +/* 04B840 7F016D10 0006000D */ break 6 +.L7F016D14: +/* 04B844 7F016D14 15000002 */ bnez $t0, .L7F016D20 +/* 04B848 7F016D18 00000000 */ nop +/* 04B84C 7F016D1C 0007000D */ break 7 +.L7F016D20: +/* 04B850 7F016D20 2401FFFF */ li $at, -1 +/* 04B854 7F016D24 15010004 */ bne $t0, $at, .L7F016D38 +/* 04B858 7F016D28 3C018000 */ lui $at, 0x8000 +/* 04B85C 7F016D2C 14410002 */ bne $v0, $at, .L7F016D38 +/* 04B860 7F016D30 00000000 */ nop +/* 04B864 7F016D34 0006000D */ break 6 +.L7F016D38: +/* 04B868 7F016D38 0C002B25 */ jal sprintf +/* 04B86C 7F016D3C 00000000 */ nop +/* 04B870 7F016D40 24180082 */ li $t8, 130 +/* 04B874 7F016D44 241900A7 */ li $t9, 167 +/* 04B878 7F016D48 AFB80C64 */ sw $t8, 0xc64($sp) +/* 04B87C 7F016D4C 0C001107 */ jal get_video2_settings_txtClipW +/* 04B880 7F016D50 AFB90C60 */ sw $t9, 0xc60($sp) +/* 04B884 7F016D54 00028400 */ sll $s0, $v0, 0x10 +/* 04B888 7F016D58 00105403 */ sra $t2, $s0, 0x10 +/* 04B88C 7F016D5C 0C00110B */ jal get_video2_settings_txtClipH +/* 04B890 7F016D60 01408025 */ move $s0, $t2 +/* 04B894 7F016D64 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) +/* 04B898 7F016D68 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) +/* 04B89C 7F016D6C 8D8C0EB4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 04B8A0 7F016D70 8D6B0EB8 */ lw $t3, %lo(ptrSecondFontTableLarge)($t3) +/* 04B8A4 7F016D74 240D00FF */ li $t5, 255 +/* 04B8A8 7F016D78 AFAD0018 */ sw $t5, 0x18($sp) +/* 04B8AC 7F016D7C 02202025 */ move $a0, $s1 +/* 04B8B0 7F016D80 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04B8B4 7F016D84 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04B8B8 7F016D88 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04B8BC 7F016D8C AFB0001C */ sw $s0, 0x1c($sp) +/* 04B8C0 7F016D90 AFA20020 */ sw $v0, 0x20($sp) +/* 04B8C4 7F016D94 AFA00024 */ sw $zero, 0x24($sp) +/* 04B8C8 7F016D98 AFA00028 */ sw $zero, 0x28($sp) +/* 04B8CC 7F016D9C AFAC0014 */ sw $t4, 0x14($sp) +/* 04B8D0 7F016DA0 0FC025D8 */ jal write_text_at_abs_coord +/* 04B8D4 7F016DA4 AFAB0010 */ sw $t3, 0x10($sp) +/* 04B8D8 7F016DA8 3C0E8007 */ lui $t6, %hi(newcheatunlocked) +/* 04B8DC 7F016DAC 8DCE9790 */ lw $t6, %lo(newcheatunlocked)($t6) +/* 04B8E0 7F016DB0 00408825 */ move $s1, $v0 +/* 04B8E4 7F016DB4 51C00023 */ beql $t6, $zero, .L7F016E44 +/* 04B8E8 7F016DB8 8FAB0060 */ lw $t3, 0x60($sp) +/* 04B8EC 7F016DBC A3A000A8 */ sb $zero, 0xa8($sp) +/* 04B8F0 7F016DC0 0FC30776 */ jal get_textptr_for_textID +/* 04B8F4 7F016DC4 34049D13 */ li $a0, 40211 +/* 04B8F8 7F016DC8 3C058005 */ lui $a1, %hi(aS) +/* 04B8FC 7F016DCC 24A51818 */ addiu $a1, %lo(aS) # addiu $a1, $a1, 0x1818 +/* 04B900 7F016DD0 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04B904 7F016DD4 0C002B25 */ jal sprintf +/* 04B908 7F016DD8 00403025 */ move $a2, $v0 +/* 04B90C 7F016DDC 0C001107 */ jal get_video2_settings_txtClipW +/* 04B910 7F016DE0 00000000 */ nop +/* 04B914 7F016DE4 00028400 */ sll $s0, $v0, 0x10 +/* 04B918 7F016DE8 00107C03 */ sra $t7, $s0, 0x10 +/* 04B91C 7F016DEC 0C00110B */ jal get_video2_settings_txtClipH +/* 04B920 7F016DF0 01E08025 */ move $s0, $t7 +/* 04B924 7F016DF4 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 04B928 7F016DF8 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 04B92C 7F016DFC 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 04B930 7F016E00 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 04B934 7F016E04 3C0AA000 */ lui $t2, (0xA00000FF >> 16) # lui $t2, 0xa000 +/* 04B938 7F016E08 354A00FF */ ori $t2, (0xA00000FF & 0xFFFF) # ori $t2, $t2, 0xff +/* 04B93C 7F016E0C AFAA0018 */ sw $t2, 0x18($sp) +/* 04B940 7F016E10 02202025 */ move $a0, $s1 +/* 04B944 7F016E14 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04B948 7F016E18 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04B94C 7F016E1C 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04B950 7F016E20 AFB0001C */ sw $s0, 0x1c($sp) +/* 04B954 7F016E24 AFA20020 */ sw $v0, 0x20($sp) +/* 04B958 7F016E28 AFA00024 */ sw $zero, 0x24($sp) +/* 04B95C 7F016E2C AFA00028 */ sw $zero, 0x28($sp) +/* 04B960 7F016E30 AFB90014 */ sw $t9, 0x14($sp) +/* 04B964 7F016E34 0FC025D8 */ jal write_text_at_abs_coord +/* 04B968 7F016E38 AFB80010 */ sw $t8, 0x10($sp) +/* 04B96C 7F016E3C 00408825 */ move $s1, $v0 +/* 04B970 7F016E40 8FAB0060 */ lw $t3, 0x60($sp) +.L7F016E44: +/* 04B974 7F016E44 19600091 */ blez $t3, .L7F01708C +/* 04B978 7F016E48 3C0C8003 */ lui $t4, %hi(selected_difficulty) +/* 04B97C 7F016E4C 8D8CA8FC */ lw $t4, %lo(selected_difficulty)($t4) +/* 04B980 7F016E50 24010003 */ li $at, 3 +/* 04B984 7F016E54 5181008E */ beql $t4, $at, .L7F017090 +/* 04B988 7F016E58 8FA20064 */ lw $v0, 0x64($sp) +/* 04B98C 7F016E5C 0FC30776 */ jal get_textptr_for_textID +/* 04B990 7F016E60 34049D12 */ li $a0, 40210 +/* 04B994 7F016E64 8FAE00A0 */ lw $t6, 0xa0($sp) +/* 04B998 7F016E68 240D0037 */ li $t5, 55 +/* 04B99C 7F016E6C AFA200A4 */ sw $v0, 0xa4($sp) +/* 04B9A0 7F016E70 25CF00A9 */ addiu $t7, $t6, 0xa9 +/* 04B9A4 7F016E74 AFAD0C64 */ sw $t5, 0xc64($sp) +/* 04B9A8 7F016E78 0C001107 */ jal get_video2_settings_txtClipW +/* 04B9AC 7F016E7C AFAF0C60 */ sw $t7, 0xc60($sp) +/* 04B9B0 7F016E80 00028400 */ sll $s0, $v0, 0x10 +/* 04B9B4 7F016E84 0010C403 */ sra $t8, $s0, 0x10 +/* 04B9B8 7F016E88 0C00110B */ jal get_video2_settings_txtClipH +/* 04B9BC 7F016E8C 03008025 */ move $s0, $t8 +/* 04B9C0 7F016E90 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 04B9C4 7F016E94 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 04B9C8 7F016E98 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 04B9CC 7F016E9C 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 04B9D0 7F016EA0 240B00FF */ li $t3, 255 +/* 04B9D4 7F016EA4 AFAB0018 */ sw $t3, 0x18($sp) +/* 04B9D8 7F016EA8 02202025 */ move $a0, $s1 +/* 04B9DC 7F016EAC 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04B9E0 7F016EB0 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04B9E4 7F016EB4 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04B9E8 7F016EB8 AFB0001C */ sw $s0, 0x1c($sp) +/* 04B9EC 7F016EBC AFA20020 */ sw $v0, 0x20($sp) +/* 04B9F0 7F016EC0 AFA00024 */ sw $zero, 0x24($sp) +/* 04B9F4 7F016EC4 AFA00028 */ sw $zero, 0x28($sp) +/* 04B9F8 7F016EC8 AFAA0014 */ sw $t2, 0x14($sp) +/* 04B9FC 7F016ECC 0FC025D8 */ jal write_text_at_abs_coord +/* 04BA00 7F016ED0 AFB90010 */ sw $t9, 0x10($sp) +/* 04BA04 7F016ED4 8FAC0060 */ lw $t4, 0x60($sp) +/* 04BA08 7F016ED8 2403003C */ li $v1, 60 +/* 04BA0C 7F016EDC 3C058005 */ lui $a1, %hi(a02d02d_0) +/* 04BA10 7F016EE0 0183001A */ div $zero, $t4, $v1 +/* 04BA14 7F016EE4 00003810 */ mfhi $a3 +/* 04BA18 7F016EE8 00003012 */ mflo $a2 +/* 04BA1C 7F016EEC 00408825 */ move $s1, $v0 +/* 04BA20 7F016EF0 A3A000A8 */ sb $zero, 0xa8($sp) +/* 04BA24 7F016EF4 24A51824 */ addiu $a1, %lo(a02d02d_0) # addiu $a1, $a1, 0x1824 +/* 04BA28 7F016EF8 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04BA2C 7F016EFC 14600002 */ bnez $v1, .L7F016F08 +/* 04BA30 7F016F00 00000000 */ nop +/* 04BA34 7F016F04 0007000D */ break 7 +.L7F016F08: +/* 04BA38 7F016F08 2401FFFF */ li $at, -1 +/* 04BA3C 7F016F0C 14610004 */ bne $v1, $at, .L7F016F20 +/* 04BA40 7F016F10 3C018000 */ lui $at, 0x8000 +/* 04BA44 7F016F14 15810002 */ bne $t4, $at, .L7F016F20 +/* 04BA48 7F016F18 00000000 */ nop +/* 04BA4C 7F016F1C 0006000D */ break 6 +.L7F016F20: +/* 04BA50 7F016F20 0C002B25 */ jal sprintf +/* 04BA54 7F016F24 00000000 */ nop +/* 04BA58 7F016F28 8FAE00A0 */ lw $t6, 0xa0($sp) +/* 04BA5C 7F016F2C 240D0082 */ li $t5, 130 +/* 04BA60 7F016F30 AFAD0C64 */ sw $t5, 0xc64($sp) +/* 04BA64 7F016F34 25CF00A9 */ addiu $t7, $t6, 0xa9 +/* 04BA68 7F016F38 0C001107 */ jal get_video2_settings_txtClipW +/* 04BA6C 7F016F3C AFAF0C60 */ sw $t7, 0xc60($sp) +/* 04BA70 7F016F40 00028400 */ sll $s0, $v0, 0x10 +/* 04BA74 7F016F44 0010C403 */ sra $t8, $s0, 0x10 +/* 04BA78 7F016F48 0C00110B */ jal get_video2_settings_txtClipH +/* 04BA7C 7F016F4C 03008025 */ move $s0, $t8 +/* 04BA80 7F016F50 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 04BA84 7F016F54 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 04BA88 7F016F58 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 04BA8C 7F016F5C 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 04BA90 7F016F60 240B00FF */ li $t3, 255 +/* 04BA94 7F016F64 AFAB0018 */ sw $t3, 0x18($sp) +/* 04BA98 7F016F68 02202025 */ move $a0, $s1 +/* 04BA9C 7F016F6C 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04BAA0 7F016F70 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04BAA4 7F016F74 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04BAA8 7F016F78 AFB0001C */ sw $s0, 0x1c($sp) +/* 04BAAC 7F016F7C AFA20020 */ sw $v0, 0x20($sp) +/* 04BAB0 7F016F80 AFA00024 */ sw $zero, 0x24($sp) +/* 04BAB4 7F016F84 AFA00028 */ sw $zero, 0x28($sp) +/* 04BAB8 7F016F88 AFAA0014 */ sw $t2, 0x14($sp) +/* 04BABC 7F016F8C 0FC025D8 */ jal write_text_at_abs_coord +/* 04BAC0 7F016F90 AFB90010 */ sw $t9, 0x10($sp) +/* 04BAC4 7F016F94 8FA30064 */ lw $v1, 0x64($sp) +/* 04BAC8 7F016F98 00408825 */ move $s1, $v0 +/* 04BACC 7F016F9C 04600085 */ bltz $v1, .L7F0171B4 +/* 04BAD0 7F016FA0 286103FF */ slti $at, $v1, 0x3ff +/* 04BAD4 7F016FA4 10200083 */ beqz $at, .L7F0171B4 +/* 04BAD8 7F016FA8 00000000 */ nop +/* 04BADC 7F016FAC 0460001A */ bltz $v1, .L7F017018 +/* 04BAE0 7F016FB0 A3A000A8 */ sb $zero, 0xa8($sp) +/* 04BAE4 7F016FB4 0FC30776 */ jal get_textptr_for_textID +/* 04BAE8 7F016FB8 34049D11 */ li $a0, 40209 +/* 04BAEC 7F016FBC 8FA30064 */ lw $v1, 0x64($sp) +/* 04BAF0 7F016FC0 2408003C */ li $t0, 60 +/* 04BAF4 7F016FC4 3C058005 */ lui $a1, %hi(aS02d02d) +/* 04BAF8 7F016FC8 0068001A */ div $zero, $v1, $t0 +/* 04BAFC 7F016FCC 00006010 */ mfhi $t4 +/* 04BB00 7F016FD0 00003812 */ mflo $a3 +/* 04BB04 7F016FD4 AFAC0010 */ sw $t4, 0x10($sp) +/* 04BB08 7F016FD8 24A51830 */ addiu $a1, %lo(aS02d02d) # addiu $a1, $a1, 0x1830 +/* 04BB0C 7F016FDC 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04BB10 7F016FE0 00403025 */ move $a2, $v0 +/* 04BB14 7F016FE4 15000002 */ bnez $t0, .L7F016FF0 +/* 04BB18 7F016FE8 00000000 */ nop +/* 04BB1C 7F016FEC 0007000D */ break 7 +.L7F016FF0: +/* 04BB20 7F016FF0 2401FFFF */ li $at, -1 +/* 04BB24 7F016FF4 15010004 */ bne $t0, $at, .L7F017008 +/* 04BB28 7F016FF8 3C018000 */ lui $at, 0x8000 +/* 04BB2C 7F016FFC 14610002 */ bne $v1, $at, .L7F017008 +/* 04BB30 7F017000 00000000 */ nop +/* 04BB34 7F017004 0006000D */ break 6 +.L7F017008: +/* 04BB38 7F017008 0C002B25 */ jal sprintf +/* 04BB3C 7F01700C 00000000 */ nop +/* 04BB40 7F017010 10000005 */ b .L7F017028 +/* 04BB44 7F017014 00000000 */ nop +.L7F017018: +/* 04BB48 7F017018 3C058005 */ lui $a1, %hi(D_80051848) +/* 04BB4C 7F01701C 24A51848 */ addiu $a1, %lo(D_80051848) # addiu $a1, $a1, 0x1848 +/* 04BB50 7F017020 0C002B25 */ jal sprintf +/* 04BB54 7F017024 27A400A8 */ addiu $a0, $sp, 0xa8 +.L7F017028: +/* 04BB58 7F017028 0C001107 */ jal get_video2_settings_txtClipW +/* 04BB5C 7F01702C 00000000 */ nop +/* 04BB60 7F017030 00028400 */ sll $s0, $v0, 0x10 +/* 04BB64 7F017034 00106C03 */ sra $t5, $s0, 0x10 +/* 04BB68 7F017038 0C00110B */ jal get_video2_settings_txtClipH +/* 04BB6C 7F01703C 01A08025 */ move $s0, $t5 +/* 04BB70 7F017040 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableLarge) +/* 04BB74 7F017044 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) +/* 04BB78 7F017048 8DEF0EB4 */ lw $t7, %lo(ptrFirstFontTableLarge)($t7) +/* 04BB7C 7F01704C 8DCE0EB8 */ lw $t6, %lo(ptrSecondFontTableLarge)($t6) +/* 04BB80 7F017050 241800FF */ li $t8, 255 +/* 04BB84 7F017054 AFB80018 */ sw $t8, 0x18($sp) +/* 04BB88 7F017058 02202025 */ move $a0, $s1 +/* 04BB8C 7F01705C 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04BB90 7F017060 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04BB94 7F017064 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04BB98 7F017068 AFB0001C */ sw $s0, 0x1c($sp) +/* 04BB9C 7F01706C AFA20020 */ sw $v0, 0x20($sp) +/* 04BBA0 7F017070 AFA00024 */ sw $zero, 0x24($sp) +/* 04BBA4 7F017074 AFA00028 */ sw $zero, 0x28($sp) +/* 04BBA8 7F017078 AFAF0014 */ sw $t7, 0x14($sp) +/* 04BBAC 7F01707C 0FC025D8 */ jal write_text_at_abs_coord +/* 04BBB0 7F017080 AFAE0010 */ sw $t6, 0x10($sp) +/* 04BBB4 7F017084 1000004B */ b .L7F0171B4 +/* 04BBB8 7F017088 00408825 */ move $s1, $v0 +.L7F01708C: +/* 04BBBC 7F01708C 8FA20064 */ lw $v0, 0x64($sp) +.L7F017090: +/* 04BBC0 7F017090 04400048 */ bltz $v0, .L7F0171B4 +/* 04BBC4 7F017094 284103FF */ slti $at, $v0, 0x3ff +/* 04BBC8 7F017098 10200046 */ beqz $at, .L7F0171B4 +/* 04BBCC 7F01709C 00000000 */ nop +/* 04BBD0 7F0170A0 0FC30776 */ jal get_textptr_for_textID +/* 04BBD4 7F0170A4 34049D11 */ li $a0, 40209 +/* 04BBD8 7F0170A8 8FAA00A0 */ lw $t2, 0xa0($sp) +/* 04BBDC 7F0170AC 24190037 */ li $t9, 55 +/* 04BBE0 7F0170B0 AFA200A4 */ sw $v0, 0xa4($sp) +/* 04BBE4 7F0170B4 254B00A9 */ addiu $t3, $t2, 0xa9 +/* 04BBE8 7F0170B8 AFB90C64 */ sw $t9, 0xc64($sp) +/* 04BBEC 7F0170BC 0C001107 */ jal get_video2_settings_txtClipW +/* 04BBF0 7F0170C0 AFAB0C60 */ sw $t3, 0xc60($sp) +/* 04BBF4 7F0170C4 00028400 */ sll $s0, $v0, 0x10 +/* 04BBF8 7F0170C8 00106403 */ sra $t4, $s0, 0x10 +/* 04BBFC 7F0170CC 0C00110B */ jal get_video2_settings_txtClipH +/* 04BC00 7F0170D0 01808025 */ move $s0, $t4 +/* 04BC04 7F0170D4 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) +/* 04BC08 7F0170D8 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 04BC0C 7F0170DC 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 04BC10 7F0170E0 8DAD0EB8 */ lw $t5, %lo(ptrSecondFontTableLarge)($t5) +/* 04BC14 7F0170E4 240F00FF */ li $t7, 255 +/* 04BC18 7F0170E8 AFAF0018 */ sw $t7, 0x18($sp) +/* 04BC1C 7F0170EC 02202025 */ move $a0, $s1 +/* 04BC20 7F0170F0 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04BC24 7F0170F4 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04BC28 7F0170F8 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04BC2C 7F0170FC AFB0001C */ sw $s0, 0x1c($sp) +/* 04BC30 7F017100 AFA20020 */ sw $v0, 0x20($sp) +/* 04BC34 7F017104 AFA00024 */ sw $zero, 0x24($sp) +/* 04BC38 7F017108 AFA00028 */ sw $zero, 0x28($sp) +/* 04BC3C 7F01710C AFAE0014 */ sw $t6, 0x14($sp) +/* 04BC40 7F017110 0FC025D8 */ jal write_text_at_abs_coord +/* 04BC44 7F017114 AFAD0010 */ sw $t5, 0x10($sp) +/* 04BC48 7F017118 8FB80064 */ lw $t8, 0x64($sp) +/* 04BC4C 7F01711C 2401003C */ li $at, 60 +/* 04BC50 7F017120 3C058005 */ lui $a1, %hi(a02d02d_1) +/* 04BC54 7F017124 0301001A */ div $zero, $t8, $at +/* 04BC58 7F017128 00003810 */ mfhi $a3 +/* 04BC5C 7F01712C 00003012 */ mflo $a2 +/* 04BC60 7F017130 00408825 */ move $s1, $v0 +/* 04BC64 7F017134 A3A000A8 */ sb $zero, 0xa8($sp) +/* 04BC68 7F017138 24A5184C */ addiu $a1, %lo(a02d02d_1) # addiu $a1, $a1, 0x184c +/* 04BC6C 7F01713C 0C002B25 */ jal sprintf +/* 04BC70 7F017140 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04BC74 7F017144 8FAA00A0 */ lw $t2, 0xa0($sp) +/* 04BC78 7F017148 24190082 */ li $t9, 130 +/* 04BC7C 7F01714C AFB90C64 */ sw $t9, 0xc64($sp) +/* 04BC80 7F017150 254B00A9 */ addiu $t3, $t2, 0xa9 +/* 04BC84 7F017154 0C001107 */ jal get_video2_settings_txtClipW +/* 04BC88 7F017158 AFAB0C60 */ sw $t3, 0xc60($sp) +/* 04BC8C 7F01715C 00028400 */ sll $s0, $v0, 0x10 +/* 04BC90 7F017160 00106403 */ sra $t4, $s0, 0x10 +/* 04BC94 7F017164 0C00110B */ jal get_video2_settings_txtClipH +/* 04BC98 7F017168 01808025 */ move $s0, $t4 +/* 04BC9C 7F01716C 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) +/* 04BCA0 7F017170 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 04BCA4 7F017174 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 04BCA8 7F017178 8DAD0EB8 */ lw $t5, %lo(ptrSecondFontTableLarge)($t5) +/* 04BCAC 7F01717C 240F00FF */ li $t7, 255 +/* 04BCB0 7F017180 AFAF0018 */ sw $t7, 0x18($sp) +/* 04BCB4 7F017184 02202025 */ move $a0, $s1 +/* 04BCB8 7F017188 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04BCBC 7F01718C 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04BCC0 7F017190 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04BCC4 7F017194 AFB0001C */ sw $s0, 0x1c($sp) +/* 04BCC8 7F017198 AFA20020 */ sw $v0, 0x20($sp) +/* 04BCCC 7F01719C AFA00024 */ sw $zero, 0x24($sp) +/* 04BCD0 7F0171A0 AFA00028 */ sw $zero, 0x28($sp) +/* 04BCD4 7F0171A4 AFAE0014 */ sw $t6, 0x14($sp) +/* 04BCD8 7F0171A8 0FC025D8 */ jal write_text_at_abs_coord +/* 04BCDC 7F0171AC AFAD0010 */ sw $t5, 0x10($sp) +/* 04BCE0 7F0171B0 00408825 */ move $s1, $v0 +.L7F0171B4: +/* 04BCE4 7F0171B4 0FC30776 */ jal get_textptr_for_textID +/* 04BCE8 7F0171B8 34049C6A */ li $a0, 40042 +/* 04BCEC 7F0171BC 24180037 */ li $t8, 55 +/* 04BCF0 7F0171C0 241900CC */ li $t9, 204 +/* 04BCF4 7F0171C4 AFA200A4 */ sw $v0, 0xa4($sp) +/* 04BCF8 7F0171C8 AFB80C64 */ sw $t8, 0xc64($sp) +/* 04BCFC 7F0171CC 0C001107 */ jal get_video2_settings_txtClipW +/* 04BD00 7F0171D0 AFB90C60 */ sw $t9, 0xc60($sp) +/* 04BD04 7F0171D4 00028400 */ sll $s0, $v0, 0x10 +/* 04BD08 7F0171D8 00105403 */ sra $t2, $s0, 0x10 +/* 04BD0C 7F0171DC 0C00110B */ jal get_video2_settings_txtClipH +/* 04BD10 7F0171E0 01408025 */ move $s0, $t2 +/* 04BD14 7F0171E4 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) +/* 04BD18 7F0171E8 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) +/* 04BD1C 7F0171EC 8D8C0EB4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 04BD20 7F0171F0 8D6B0EB8 */ lw $t3, %lo(ptrSecondFontTableLarge)($t3) +/* 04BD24 7F0171F4 240D00FF */ li $t5, 255 +/* 04BD28 7F0171F8 AFAD0018 */ sw $t5, 0x18($sp) +/* 04BD2C 7F0171FC 02202025 */ move $a0, $s1 +/* 04BD30 7F017200 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04BD34 7F017204 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04BD38 7F017208 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04BD3C 7F01720C AFB0001C */ sw $s0, 0x1c($sp) +/* 04BD40 7F017210 AFA20020 */ sw $v0, 0x20($sp) +/* 04BD44 7F017214 AFA00024 */ sw $zero, 0x24($sp) +/* 04BD48 7F017218 AFA00028 */ sw $zero, 0x28($sp) +/* 04BD4C 7F01721C AFAC0014 */ sw $t4, 0x14($sp) +/* 04BD50 7F017220 0FC025D8 */ jal write_text_at_abs_coord +/* 04BD54 7F017224 AFAB0010 */ sw $t3, 0x10($sp) +/* 04BD58 7F017228 8FA30090 */ lw $v1, 0x90($sp) +/* 04BD5C 7F01722C 00408825 */ move $s1, $v0 +/* 04BD60 7F017230 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04BD64 7F017234 5860000C */ blezl $v1, .L7F017268 +/* 04BD68 7F017238 44800000 */ mtc1 $zero, $f0 +/* 04BD6C 7F01723C 8FAE0074 */ lw $t6, 0x74($sp) +/* 04BD70 7F017240 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04BD74 7F017244 44814000 */ mtc1 $at, $f8 +/* 04BD78 7F017248 448E2000 */ mtc1 $t6, $f4 +/* 04BD7C 7F01724C 44838000 */ mtc1 $v1, $f16 +/* 04BD80 7F017250 468021A0 */ cvt.s.w $f6, $f4 +/* 04BD84 7F017254 468084A0 */ cvt.s.w $f18, $f16 +/* 04BD88 7F017258 46083282 */ mul.s $f10, $f6, $f8 +/* 04BD8C 7F01725C 10000003 */ b .L7F01726C +/* 04BD90 7F017260 46125003 */ div.s $f0, $f10, $f18 +/* 04BD94 7F017264 44800000 */ mtc1 $zero, $f0 +.L7F017268: +/* 04BD98 7F017268 00000000 */ nop +.L7F01726C: +/* 04BD9C 7F01726C 46000121 */ cvt.d.s $f4, $f0 +/* 04BDA0 7F017270 3C058005 */ lui $a1, %hi(a_1f) +/* 04BDA4 7F017274 44072000 */ mfc1 $a3, $f4 +/* 04BDA8 7F017278 44062800 */ mfc1 $a2, $f5 +/* 04BDAC 7F01727C 0C002B25 */ jal sprintf +/* 04BDB0 7F017280 24A51858 */ addiu $a1, %lo(a_1f) # addiu $a1, $a1, 0x1858 +/* 04BDB4 7F017284 240F0082 */ li $t7, 130 +/* 04BDB8 7F017288 241800CC */ li $t8, 204 +/* 04BDBC 7F01728C AFAF0C64 */ sw $t7, 0xc64($sp) +/* 04BDC0 7F017290 0C001107 */ jal get_video2_settings_txtClipW +/* 04BDC4 7F017294 AFB80C60 */ sw $t8, 0xc60($sp) +/* 04BDC8 7F017298 00028400 */ sll $s0, $v0, 0x10 +/* 04BDCC 7F01729C 0010CC03 */ sra $t9, $s0, 0x10 +/* 04BDD0 7F0172A0 0C00110B */ jal get_video2_settings_txtClipH +/* 04BDD4 7F0172A4 03208025 */ move $s0, $t9 +/* 04BDD8 7F0172A8 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableLarge) +/* 04BDDC 7F0172AC 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) +/* 04BDE0 7F0172B0 8D6B0EB4 */ lw $t3, %lo(ptrFirstFontTableLarge)($t3) +/* 04BDE4 7F0172B4 8D4A0EB8 */ lw $t2, %lo(ptrSecondFontTableLarge)($t2) +/* 04BDE8 7F0172B8 240C00FF */ li $t4, 255 +/* 04BDEC 7F0172BC AFAC0018 */ sw $t4, 0x18($sp) +/* 04BDF0 7F0172C0 02202025 */ move $a0, $s1 +/* 04BDF4 7F0172C4 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04BDF8 7F0172C8 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04BDFC 7F0172CC 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04BE00 7F0172D0 AFB0001C */ sw $s0, 0x1c($sp) +/* 04BE04 7F0172D4 AFA20020 */ sw $v0, 0x20($sp) +/* 04BE08 7F0172D8 AFA00024 */ sw $zero, 0x24($sp) +/* 04BE0C 7F0172DC AFA00028 */ sw $zero, 0x28($sp) +/* 04BE10 7F0172E0 AFAB0014 */ sw $t3, 0x14($sp) +/* 04BE14 7F0172E4 0FC025D8 */ jal write_text_at_abs_coord +/* 04BE18 7F0172E8 AFAA0010 */ sw $t2, 0x10($sp) +/* 04BE1C 7F0172EC 00408825 */ move $s1, $v0 +/* 04BE20 7F0172F0 0FC30776 */ jal get_textptr_for_textID +/* 04BE24 7F0172F4 34049C6B */ li $a0, 40043 +/* 04BE28 7F0172F8 240D0037 */ li $t5, 55 +/* 04BE2C 7F0172FC 240E00DC */ li $t6, 220 +/* 04BE30 7F017300 AFA200A4 */ sw $v0, 0xa4($sp) +/* 04BE34 7F017304 AFAD0C64 */ sw $t5, 0xc64($sp) +/* 04BE38 7F017308 0C001107 */ jal get_video2_settings_txtClipW +/* 04BE3C 7F01730C AFAE0C60 */ sw $t6, 0xc60($sp) +/* 04BE40 7F017310 00028400 */ sll $s0, $v0, 0x10 +/* 04BE44 7F017314 00107C03 */ sra $t7, $s0, 0x10 +/* 04BE48 7F017318 0C00110B */ jal get_video2_settings_txtClipH +/* 04BE4C 7F01731C 01E08025 */ move $s0, $t7 +/* 04BE50 7F017320 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 04BE54 7F017324 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 04BE58 7F017328 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 04BE5C 7F01732C 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 04BE60 7F017330 240A00FF */ li $t2, 255 +/* 04BE64 7F017334 AFAA0018 */ sw $t2, 0x18($sp) +/* 04BE68 7F017338 02202025 */ move $a0, $s1 +/* 04BE6C 7F01733C 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04BE70 7F017340 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04BE74 7F017344 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04BE78 7F017348 AFB0001C */ sw $s0, 0x1c($sp) +/* 04BE7C 7F01734C AFA20020 */ sw $v0, 0x20($sp) +/* 04BE80 7F017350 AFA00024 */ sw $zero, 0x24($sp) +/* 04BE84 7F017354 AFA00028 */ sw $zero, 0x28($sp) +/* 04BE88 7F017358 AFB90014 */ sw $t9, 0x14($sp) +/* 04BE8C 7F01735C 0FC025D8 */ jal write_text_at_abs_coord +/* 04BE90 7F017360 AFB80010 */ sw $t8, 0x10($sp) +/* 04BE94 7F017364 00408825 */ move $s1, $v0 +/* 04BE98 7F017368 00002025 */ move $a0, $zero +/* 04BE9C 7F01736C 0FC026D4 */ jal getplayerfavoredweapon +/* 04BEA0 7F017370 00002825 */ move $a1, $zero +/* 04BEA4 7F017374 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04BEA8 7F017378 0C0029DC */ jal textpointer_load_parse_something +/* 04BEAC 7F01737C 00402825 */ move $a1, $v0 +/* 04BEB0 7F017380 3C048007 */ lui $a0, %hi(array_favweapon) +/* 04BEB4 7F017384 248496F0 */ addiu $a0, %lo(array_favweapon) # addiu $a0, $a0, -0x6910 +/* 04BEB8 7F017388 8C830000 */ lw $v1, ($a0) +/* 04BEBC 7F01738C 5860000D */ blezl $v1, .L7F0173C4 +/* 04BEC0 7F017390 240E00BE */ li $t6, 190 +/* 04BEC4 7F017394 8C8B0004 */ lw $t3, 4($a0) +/* 04BEC8 7F017398 5563000A */ bnel $t3, $v1, .L7F0173C4 +/* 04BECC 7F01739C 240E00BE */ li $t6, 190 +/* 04BED0 7F0173A0 0C004E1F */ jal strlen +/* 04BED4 7F0173A4 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04BED8 7F0173A8 244CFFFF */ addiu $t4, $v0, -1 +/* 04BEDC 7F0173AC 27AD00A8 */ addiu $t5, $sp, 0xa8 +/* 04BEE0 7F0173B0 3C058005 */ lui $a1, %hi(aX2) +/* 04BEE4 7F0173B4 24A51860 */ addiu $a1, %lo(aX2) # addiu $a1, $a1, 0x1860 +/* 04BEE8 7F0173B8 0C002B25 */ jal sprintf +/* 04BEEC 7F0173BC 018D2021 */ addu $a0, $t4, $t5 +/* 04BEF0 7F0173C0 240E00BE */ li $t6, 190 +.L7F0173C4: +/* 04BEF4 7F0173C4 240F00DC */ li $t7, 220 +/* 04BEF8 7F0173C8 AFAE0C64 */ sw $t6, 0xc64($sp) +/* 04BEFC 7F0173CC 0C001107 */ jal get_video2_settings_txtClipW +/* 04BF00 7F0173D0 AFAF0C60 */ sw $t7, 0xc60($sp) +/* 04BF04 7F0173D4 00028400 */ sll $s0, $v0, 0x10 +/* 04BF08 7F0173D8 0010C403 */ sra $t8, $s0, 0x10 +/* 04BF0C 7F0173DC 0C00110B */ jal get_video2_settings_txtClipH +/* 04BF10 7F0173E0 03008025 */ move $s0, $t8 +/* 04BF14 7F0173E4 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 04BF18 7F0173E8 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 04BF1C 7F0173EC 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 04BF20 7F0173F0 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 04BF24 7F0173F4 240B00FF */ li $t3, 255 +/* 04BF28 7F0173F8 AFAB0018 */ sw $t3, 0x18($sp) +/* 04BF2C 7F0173FC 02202025 */ move $a0, $s1 +/* 04BF30 7F017400 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04BF34 7F017404 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04BF38 7F017408 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04BF3C 7F01740C AFB0001C */ sw $s0, 0x1c($sp) +/* 04BF40 7F017410 AFA20020 */ sw $v0, 0x20($sp) +/* 04BF44 7F017414 AFA00024 */ sw $zero, 0x24($sp) +/* 04BF48 7F017418 AFA00028 */ sw $zero, 0x28($sp) +/* 04BF4C 7F01741C AFAA0014 */ sw $t2, 0x14($sp) +/* 04BF50 7F017420 0FC025D8 */ jal write_text_at_abs_coord +/* 04BF54 7F017424 AFB90010 */ sw $t9, 0x10($sp) +/* 04BF58 7F017428 00408825 */ move $s1, $v0 +/* 04BF5C 7F01742C 0FC30776 */ jal get_textptr_for_textID +/* 04BF60 7F017430 34049C6C */ li $a0, 40044 +/* 04BF64 7F017434 240C0037 */ li $t4, 55 +/* 04BF68 7F017438 240D00F4 */ li $t5, 244 +/* 04BF6C 7F01743C AFA200A4 */ sw $v0, 0xa4($sp) +/* 04BF70 7F017440 AFAC0C64 */ sw $t4, 0xc64($sp) +/* 04BF74 7F017444 0C001107 */ jal get_video2_settings_txtClipW +/* 04BF78 7F017448 AFAD0C60 */ sw $t5, 0xc60($sp) +/* 04BF7C 7F01744C 00028400 */ sll $s0, $v0, 0x10 +/* 04BF80 7F017450 00107403 */ sra $t6, $s0, 0x10 +/* 04BF84 7F017454 0C00110B */ jal get_video2_settings_txtClipH +/* 04BF88 7F017458 01C08025 */ move $s0, $t6 +/* 04BF8C 7F01745C 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableLarge) +/* 04BF90 7F017460 3C188004 */ lui $t8, %hi(ptrFirstFontTableLarge) +/* 04BF94 7F017464 8F180EB4 */ lw $t8, %lo(ptrFirstFontTableLarge)($t8) +/* 04BF98 7F017468 8DEF0EB8 */ lw $t7, %lo(ptrSecondFontTableLarge)($t7) +/* 04BF9C 7F01746C 241900FF */ li $t9, 255 +/* 04BFA0 7F017470 AFB90018 */ sw $t9, 0x18($sp) +/* 04BFA4 7F017474 02202025 */ move $a0, $s1 +/* 04BFA8 7F017478 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04BFAC 7F01747C 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04BFB0 7F017480 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04BFB4 7F017484 AFB0001C */ sw $s0, 0x1c($sp) +/* 04BFB8 7F017488 AFA20020 */ sw $v0, 0x20($sp) +/* 04BFBC 7F01748C AFA00024 */ sw $zero, 0x24($sp) +/* 04BFC0 7F017490 AFA00028 */ sw $zero, 0x28($sp) +/* 04BFC4 7F017494 AFB80014 */ sw $t8, 0x14($sp) +/* 04BFC8 7F017498 0FC025D8 */ jal write_text_at_abs_coord +/* 04BFCC 7F01749C AFAF0010 */ sw $t7, 0x10($sp) +/* 04BFD0 7F0174A0 3C058005 */ lui $a1, %hi(aD_8) +/* 04BFD4 7F0174A4 00408825 */ move $s1, $v0 +/* 04BFD8 7F0174A8 24A51868 */ addiu $a1, %lo(aD_8) # addiu $a1, $a1, 0x1868 +/* 04BFDC 7F0174AC 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04BFE0 7F0174B0 0C002B25 */ jal sprintf +/* 04BFE4 7F0174B4 8FA60090 */ lw $a2, 0x90($sp) +/* 04BFE8 7F0174B8 240A0082 */ li $t2, 130 +/* 04BFEC 7F0174BC 240B00F4 */ li $t3, 244 +/* 04BFF0 7F0174C0 AFAA0C64 */ sw $t2, 0xc64($sp) +/* 04BFF4 7F0174C4 0C001107 */ jal get_video2_settings_txtClipW +/* 04BFF8 7F0174C8 AFAB0C60 */ sw $t3, 0xc60($sp) +/* 04BFFC 7F0174CC 00028400 */ sll $s0, $v0, 0x10 +/* 04C000 7F0174D0 00106403 */ sra $t4, $s0, 0x10 +/* 04C004 7F0174D4 0C00110B */ jal get_video2_settings_txtClipH +/* 04C008 7F0174D8 01808025 */ move $s0, $t4 +/* 04C00C 7F0174DC 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) +/* 04C010 7F0174E0 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 04C014 7F0174E4 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 04C018 7F0174E8 8DAD0EB8 */ lw $t5, %lo(ptrSecondFontTableLarge)($t5) +/* 04C01C 7F0174EC 240F00FF */ li $t7, 255 +/* 04C020 7F0174F0 AFAF0018 */ sw $t7, 0x18($sp) +/* 04C024 7F0174F4 02202025 */ move $a0, $s1 +/* 04C028 7F0174F8 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C02C 7F0174FC 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C030 7F017500 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04C034 7F017504 AFB0001C */ sw $s0, 0x1c($sp) +/* 04C038 7F017508 AFA20020 */ sw $v0, 0x20($sp) +/* 04C03C 7F01750C AFA00024 */ sw $zero, 0x24($sp) +/* 04C040 7F017510 AFA00028 */ sw $zero, 0x28($sp) +/* 04C044 7F017514 AFAE0014 */ sw $t6, 0x14($sp) +/* 04C048 7F017518 0FC025D8 */ jal write_text_at_abs_coord +/* 04C04C 7F01751C AFAD0010 */ sw $t5, 0x10($sp) +/* 04C050 7F017520 00408825 */ move $s1, $v0 +/* 04C054 7F017524 0FC30776 */ jal get_textptr_for_textID +/* 04C058 7F017528 34049C6D */ li $a0, 40045 +/* 04C05C 7F01752C 241800B4 */ li $t8, 180 +/* 04C060 7F017530 241900F4 */ li $t9, 244 +/* 04C064 7F017534 AFA200A4 */ sw $v0, 0xa4($sp) +/* 04C068 7F017538 AFB80C64 */ sw $t8, 0xc64($sp) +/* 04C06C 7F01753C 0C001107 */ jal get_video2_settings_txtClipW +/* 04C070 7F017540 AFB90C60 */ sw $t9, 0xc60($sp) +/* 04C074 7F017544 00028400 */ sll $s0, $v0, 0x10 +/* 04C078 7F017548 00105403 */ sra $t2, $s0, 0x10 +/* 04C07C 7F01754C 0C00110B */ jal get_video2_settings_txtClipH +/* 04C080 7F017550 01408025 */ move $s0, $t2 +/* 04C084 7F017554 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) +/* 04C088 7F017558 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) +/* 04C08C 7F01755C 8D8C0EB4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 04C090 7F017560 8D6B0EB8 */ lw $t3, %lo(ptrSecondFontTableLarge)($t3) +/* 04C094 7F017564 240D00FF */ li $t5, 255 +/* 04C098 7F017568 AFAD0018 */ sw $t5, 0x18($sp) +/* 04C09C 7F01756C 02202025 */ move $a0, $s1 +/* 04C0A0 7F017570 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C0A4 7F017574 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C0A8 7F017578 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04C0AC 7F01757C AFB0001C */ sw $s0, 0x1c($sp) +/* 04C0B0 7F017580 AFA20020 */ sw $v0, 0x20($sp) +/* 04C0B4 7F017584 AFA00024 */ sw $zero, 0x24($sp) +/* 04C0B8 7F017588 AFA00028 */ sw $zero, 0x28($sp) +/* 04C0BC 7F01758C AFAC0014 */ sw $t4, 0x14($sp) +/* 04C0C0 7F017590 0FC025D8 */ jal write_text_at_abs_coord +/* 04C0C4 7F017594 AFAB0010 */ sw $t3, 0x10($sp) +/* 04C0C8 7F017598 8FAF008C */ lw $t7, 0x8c($sp) +/* 04C0CC 7F01759C 8FAE0070 */ lw $t6, 0x70($sp) +/* 04C0D0 7F0175A0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04C0D4 7F0175A4 448F4000 */ mtc1 $t7, $f8 +/* 04C0D8 7F0175A8 44815000 */ mtc1 $at, $f10 +/* 04C0DC 7F0175AC 448E3000 */ mtc1 $t6, $f6 +/* 04C0E0 7F0175B0 46804420 */ cvt.s.w $f16, $f8 +/* 04C0E4 7F0175B4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 04C0E8 7F0175B8 00408825 */ move $s1, $v0 +/* 04C0EC 7F0175BC 46803020 */ cvt.s.w $f0, $f6 +/* 04C0F0 7F0175C0 460A8482 */ mul.s $f18, $f16, $f10 +/* 04C0F4 7F0175C4 44813000 */ mtc1 $at, $f6 +/* 04C0F8 7F0175C8 E7A00048 */ swc1 $f0, 0x48($sp) +/* 04C0FC 7F0175CC 46009103 */ div.s $f4, $f18, $f0 +/* 04C100 7F0175D0 0FC170D8 */ jal truncf +/* 04C104 7F0175D4 46062300 */ add.s $f12, $f4, $f6 +/* 04C108 7F0175D8 4600020D */ trunc.w.s $f8, $f0 +/* 04C10C 7F0175DC 3C058005 */ lui $a1, %hi(aDD_0) +/* 04C110 7F0175E0 24A5186C */ addiu $a1, %lo(aDD_0) # addiu $a1, $a1, 0x186c +/* 04C114 7F0175E4 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04C118 7F0175E8 44074000 */ mfc1 $a3, $f8 +/* 04C11C 7F0175EC 0C002B25 */ jal sprintf +/* 04C120 7F0175F0 8FA6008C */ lw $a2, 0x8c($sp) +/* 04C124 7F0175F4 2419012C */ li $t9, 300 +/* 04C128 7F0175F8 240A00F4 */ li $t2, 244 +/* 04C12C 7F0175FC AFB90C64 */ sw $t9, 0xc64($sp) +/* 04C130 7F017600 0C001107 */ jal get_video2_settings_txtClipW +/* 04C134 7F017604 AFAA0C60 */ sw $t2, 0xc60($sp) +/* 04C138 7F017608 00028400 */ sll $s0, $v0, 0x10 +/* 04C13C 7F01760C 00105C03 */ sra $t3, $s0, 0x10 +/* 04C140 7F017610 0C00110B */ jal get_video2_settings_txtClipH +/* 04C144 7F017614 01608025 */ move $s0, $t3 +/* 04C148 7F017618 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) +/* 04C14C 7F01761C 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04C150 7F017620 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04C154 7F017624 8D8C0EB8 */ lw $t4, %lo(ptrSecondFontTableLarge)($t4) +/* 04C158 7F017628 240E00FF */ li $t6, 255 +/* 04C15C 7F01762C AFAE0018 */ sw $t6, 0x18($sp) +/* 04C160 7F017630 02202025 */ move $a0, $s1 +/* 04C164 7F017634 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C168 7F017638 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C16C 7F01763C 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04C170 7F017640 AFB0001C */ sw $s0, 0x1c($sp) +/* 04C174 7F017644 AFA20020 */ sw $v0, 0x20($sp) +/* 04C178 7F017648 AFA00024 */ sw $zero, 0x24($sp) +/* 04C17C 7F01764C AFA00028 */ sw $zero, 0x28($sp) +/* 04C180 7F017650 AFAD0014 */ sw $t5, 0x14($sp) +/* 04C184 7F017654 0FC025D8 */ jal write_text_at_abs_coord +/* 04C188 7F017658 AFAC0010 */ sw $t4, 0x10($sp) +/* 04C18C 7F01765C 00408825 */ move $s1, $v0 +/* 04C190 7F017660 0FC30776 */ jal get_textptr_for_textID +/* 04C194 7F017664 34049C6E */ li $a0, 40046 +/* 04C198 7F017668 8FB800A0 */ lw $t8, 0xa0($sp) +/* 04C19C 7F01766C 240F00B4 */ li $t7, 180 +/* 04C1A0 7F017670 AFA200A4 */ sw $v0, 0xa4($sp) +/* 04C1A4 7F017674 271900F4 */ addiu $t9, $t8, 0xf4 +/* 04C1A8 7F017678 AFAF0C64 */ sw $t7, 0xc64($sp) +/* 04C1AC 7F01767C 0C001107 */ jal get_video2_settings_txtClipW +/* 04C1B0 7F017680 AFB90C60 */ sw $t9, 0xc60($sp) +/* 04C1B4 7F017684 00028400 */ sll $s0, $v0, 0x10 +/* 04C1B8 7F017688 00105403 */ sra $t2, $s0, 0x10 +/* 04C1BC 7F01768C 0C00110B */ jal get_video2_settings_txtClipH +/* 04C1C0 7F017690 01408025 */ move $s0, $t2 +/* 04C1C4 7F017694 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) +/* 04C1C8 7F017698 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) +/* 04C1CC 7F01769C 8D8C0EB4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 04C1D0 7F0176A0 8D6B0EB8 */ lw $t3, %lo(ptrSecondFontTableLarge)($t3) +/* 04C1D4 7F0176A4 240D00FF */ li $t5, 255 +/* 04C1D8 7F0176A8 AFAD0018 */ sw $t5, 0x18($sp) +/* 04C1DC 7F0176AC 02202025 */ move $a0, $s1 +/* 04C1E0 7F0176B0 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C1E4 7F0176B4 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C1E8 7F0176B8 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04C1EC 7F0176BC AFB0001C */ sw $s0, 0x1c($sp) +/* 04C1F0 7F0176C0 AFA20020 */ sw $v0, 0x20($sp) +/* 04C1F4 7F0176C4 AFA00024 */ sw $zero, 0x24($sp) +/* 04C1F8 7F0176C8 AFA00028 */ sw $zero, 0x28($sp) +/* 04C1FC 7F0176CC AFAC0014 */ sw $t4, 0x14($sp) +/* 04C200 7F0176D0 0FC025D8 */ jal write_text_at_abs_coord +/* 04C204 7F0176D4 AFAB0010 */ sw $t3, 0x10($sp) +/* 04C208 7F0176D8 8FAE0088 */ lw $t6, 0x88($sp) +/* 04C20C 7F0176DC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04C210 7F0176E0 44819000 */ mtc1 $at, $f18 +/* 04C214 7F0176E4 448E8000 */ mtc1 $t6, $f16 +/* 04C218 7F0176E8 C7A60048 */ lwc1 $f6, 0x48($sp) +/* 04C21C 7F0176EC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 04C220 7F0176F0 468082A0 */ cvt.s.w $f10, $f16 +/* 04C224 7F0176F4 44818000 */ mtc1 $at, $f16 +/* 04C228 7F0176F8 00408825 */ move $s1, $v0 +/* 04C22C 7F0176FC 46125102 */ mul.s $f4, $f10, $f18 +/* 04C230 7F017700 46062203 */ div.s $f8, $f4, $f6 +/* 04C234 7F017704 0FC170D8 */ jal truncf +/* 04C238 7F017708 46104300 */ add.s $f12, $f8, $f16 +/* 04C23C 7F01770C 4600028D */ trunc.w.s $f10, $f0 +/* 04C240 7F017710 3C058005 */ lui $a1, %hi(aDD_1) +/* 04C244 7F017714 24A51878 */ addiu $a1, %lo(aDD_1) # addiu $a1, $a1, 0x1878 +/* 04C248 7F017718 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04C24C 7F01771C 44075000 */ mfc1 $a3, $f10 +/* 04C250 7F017720 0C002B25 */ jal sprintf +/* 04C254 7F017724 8FA60088 */ lw $a2, 0x88($sp) +/* 04C258 7F017728 8FB900A0 */ lw $t9, 0xa0($sp) +/* 04C25C 7F01772C 2418012C */ li $t8, 300 +/* 04C260 7F017730 AFB80C64 */ sw $t8, 0xc64($sp) +/* 04C264 7F017734 272A00F4 */ addiu $t2, $t9, 0xf4 +/* 04C268 7F017738 0C001107 */ jal get_video2_settings_txtClipW +/* 04C26C 7F01773C AFAA0C60 */ sw $t2, 0xc60($sp) +/* 04C270 7F017740 00028400 */ sll $s0, $v0, 0x10 +/* 04C274 7F017744 00105C03 */ sra $t3, $s0, 0x10 +/* 04C278 7F017748 0C00110B */ jal get_video2_settings_txtClipH +/* 04C27C 7F01774C 01608025 */ move $s0, $t3 +/* 04C280 7F017750 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) +/* 04C284 7F017754 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04C288 7F017758 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04C28C 7F01775C 8D8C0EB8 */ lw $t4, %lo(ptrSecondFontTableLarge)($t4) +/* 04C290 7F017760 240E00FF */ li $t6, 255 +/* 04C294 7F017764 AFAE0018 */ sw $t6, 0x18($sp) +/* 04C298 7F017768 02202025 */ move $a0, $s1 +/* 04C29C 7F01776C 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C2A0 7F017770 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C2A4 7F017774 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04C2A8 7F017778 AFB0001C */ sw $s0, 0x1c($sp) +/* 04C2AC 7F01777C AFA20020 */ sw $v0, 0x20($sp) +/* 04C2B0 7F017780 AFA00024 */ sw $zero, 0x24($sp) +/* 04C2B4 7F017784 AFA00028 */ sw $zero, 0x28($sp) +/* 04C2B8 7F017788 AFAD0014 */ sw $t5, 0x14($sp) +/* 04C2BC 7F01778C 0FC025D8 */ jal write_text_at_abs_coord +/* 04C2C0 7F017790 AFAC0010 */ sw $t4, 0x10($sp) +/* 04C2C4 7F017794 00408825 */ move $s1, $v0 +/* 04C2C8 7F017798 0FC30776 */ jal get_textptr_for_textID +/* 04C2CC 7F01779C 34049C6F */ li $a0, 40047 +/* 04C2D0 7F0177A0 8FB800A0 */ lw $t8, 0xa0($sp) +/* 04C2D4 7F0177A4 240F00B4 */ li $t7, 180 +/* 04C2D8 7F0177A8 AFA200A4 */ sw $v0, 0xa4($sp) +/* 04C2DC 7F0177AC 0018C840 */ sll $t9, $t8, 1 +/* 04C2E0 7F0177B0 272A00F4 */ addiu $t2, $t9, 0xf4 +/* 04C2E4 7F0177B4 AFAF0C64 */ sw $t7, 0xc64($sp) +/* 04C2E8 7F0177B8 0C001107 */ jal get_video2_settings_txtClipW +/* 04C2EC 7F0177BC AFAA0C60 */ sw $t2, 0xc60($sp) +/* 04C2F0 7F0177C0 00028400 */ sll $s0, $v0, 0x10 +/* 04C2F4 7F0177C4 00105C03 */ sra $t3, $s0, 0x10 +/* 04C2F8 7F0177C8 0C00110B */ jal get_video2_settings_txtClipH +/* 04C2FC 7F0177CC 01608025 */ move $s0, $t3 +/* 04C300 7F0177D0 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) +/* 04C304 7F0177D4 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04C308 7F0177D8 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04C30C 7F0177DC 8D8C0EB8 */ lw $t4, %lo(ptrSecondFontTableLarge)($t4) +/* 04C310 7F0177E0 240E00FF */ li $t6, 255 +/* 04C314 7F0177E4 AFAE0018 */ sw $t6, 0x18($sp) +/* 04C318 7F0177E8 02202025 */ move $a0, $s1 +/* 04C31C 7F0177EC 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C320 7F0177F0 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C324 7F0177F4 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04C328 7F0177F8 AFB0001C */ sw $s0, 0x1c($sp) +/* 04C32C 7F0177FC AFA20020 */ sw $v0, 0x20($sp) +/* 04C330 7F017800 AFA00024 */ sw $zero, 0x24($sp) +/* 04C334 7F017804 AFA00028 */ sw $zero, 0x28($sp) +/* 04C338 7F017808 AFAD0014 */ sw $t5, 0x14($sp) +/* 04C33C 7F01780C 0FC025D8 */ jal write_text_at_abs_coord +/* 04C340 7F017810 AFAC0010 */ sw $t4, 0x10($sp) +/* 04C344 7F017814 8FAF0084 */ lw $t7, 0x84($sp) +/* 04C348 7F017818 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04C34C 7F01781C 44813000 */ mtc1 $at, $f6 +/* 04C350 7F017820 448F9000 */ mtc1 $t7, $f18 +/* 04C354 7F017824 C7B00048 */ lwc1 $f16, 0x48($sp) +/* 04C358 7F017828 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 04C35C 7F01782C 46809120 */ cvt.s.w $f4, $f18 +/* 04C360 7F017830 44819000 */ mtc1 $at, $f18 +/* 04C364 7F017834 00408825 */ move $s1, $v0 +/* 04C368 7F017838 46062202 */ mul.s $f8, $f4, $f6 +/* 04C36C 7F01783C 46104283 */ div.s $f10, $f8, $f16 +/* 04C370 7F017840 0FC170D8 */ jal truncf +/* 04C374 7F017844 46125300 */ add.s $f12, $f10, $f18 +/* 04C378 7F017848 4600010D */ trunc.w.s $f4, $f0 +/* 04C37C 7F01784C 3C058005 */ lui $a1, %hi(aDD_2) +/* 04C380 7F017850 24A51884 */ addiu $a1, %lo(aDD_2) # addiu $a1, $a1, 0x1884 +/* 04C384 7F017854 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04C388 7F017858 44072000 */ mfc1 $a3, $f4 +/* 04C38C 7F01785C 0C002B25 */ jal sprintf +/* 04C390 7F017860 8FA60084 */ lw $a2, 0x84($sp) +/* 04C394 7F017864 8FAA00A0 */ lw $t2, 0xa0($sp) +/* 04C398 7F017868 2419012C */ li $t9, 300 +/* 04C39C 7F01786C AFB90C64 */ sw $t9, 0xc64($sp) +/* 04C3A0 7F017870 000A5840 */ sll $t3, $t2, 1 +/* 04C3A4 7F017874 256C00F4 */ addiu $t4, $t3, 0xf4 +/* 04C3A8 7F017878 0C001107 */ jal get_video2_settings_txtClipW +/* 04C3AC 7F01787C AFAC0C60 */ sw $t4, 0xc60($sp) +/* 04C3B0 7F017880 00028400 */ sll $s0, $v0, 0x10 +/* 04C3B4 7F017884 00106C03 */ sra $t5, $s0, 0x10 +/* 04C3B8 7F017888 0C00110B */ jal get_video2_settings_txtClipH +/* 04C3BC 7F01788C 01A08025 */ move $s0, $t5 +/* 04C3C0 7F017890 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableLarge) +/* 04C3C4 7F017894 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) +/* 04C3C8 7F017898 8DEF0EB4 */ lw $t7, %lo(ptrFirstFontTableLarge)($t7) +/* 04C3CC 7F01789C 8DCE0EB8 */ lw $t6, %lo(ptrSecondFontTableLarge)($t6) +/* 04C3D0 7F0178A0 241800FF */ li $t8, 255 +/* 04C3D4 7F0178A4 AFB80018 */ sw $t8, 0x18($sp) +/* 04C3D8 7F0178A8 02202025 */ move $a0, $s1 +/* 04C3DC 7F0178AC 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C3E0 7F0178B0 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C3E4 7F0178B4 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04C3E8 7F0178B8 AFB0001C */ sw $s0, 0x1c($sp) +/* 04C3EC 7F0178BC AFA20020 */ sw $v0, 0x20($sp) +/* 04C3F0 7F0178C0 AFA00024 */ sw $zero, 0x24($sp) +/* 04C3F4 7F0178C4 AFA00028 */ sw $zero, 0x28($sp) +/* 04C3F8 7F0178C8 AFAF0014 */ sw $t7, 0x14($sp) +/* 04C3FC 7F0178CC 0FC025D8 */ jal write_text_at_abs_coord +/* 04C400 7F0178D0 AFAE0010 */ sw $t6, 0x10($sp) +/* 04C404 7F0178D4 00408825 */ move $s1, $v0 +/* 04C408 7F0178D8 0FC30776 */ jal get_textptr_for_textID +/* 04C40C 7F0178DC 34049C70 */ li $a0, 40048 +/* 04C410 7F0178E0 8FAA00A0 */ lw $t2, 0xa0($sp) +/* 04C414 7F0178E4 241900B4 */ li $t9, 180 +/* 04C418 7F0178E8 AFA200A4 */ sw $v0, 0xa4($sp) +/* 04C41C 7F0178EC 000A5880 */ sll $t3, $t2, 2 +/* 04C420 7F0178F0 016A5823 */ subu $t3, $t3, $t2 +/* 04C424 7F0178F4 256C00F4 */ addiu $t4, $t3, 0xf4 +/* 04C428 7F0178F8 AFB90C64 */ sw $t9, 0xc64($sp) +/* 04C42C 7F0178FC 0C001107 */ jal get_video2_settings_txtClipW +/* 04C430 7F017900 AFAC0C60 */ sw $t4, 0xc60($sp) +/* 04C434 7F017904 00028400 */ sll $s0, $v0, 0x10 +/* 04C438 7F017908 00106C03 */ sra $t5, $s0, 0x10 +/* 04C43C 7F01790C 0C00110B */ jal get_video2_settings_txtClipH +/* 04C440 7F017910 01A08025 */ move $s0, $t5 +/* 04C444 7F017914 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableLarge) +/* 04C448 7F017918 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) +/* 04C44C 7F01791C 8DEF0EB4 */ lw $t7, %lo(ptrFirstFontTableLarge)($t7) +/* 04C450 7F017920 8DCE0EB8 */ lw $t6, %lo(ptrSecondFontTableLarge)($t6) +/* 04C454 7F017924 241800FF */ li $t8, 255 +/* 04C458 7F017928 AFB80018 */ sw $t8, 0x18($sp) +/* 04C45C 7F01792C 02202025 */ move $a0, $s1 +/* 04C460 7F017930 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C464 7F017934 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C468 7F017938 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04C46C 7F01793C AFB0001C */ sw $s0, 0x1c($sp) +/* 04C470 7F017940 AFA20020 */ sw $v0, 0x20($sp) +/* 04C474 7F017944 AFA00024 */ sw $zero, 0x24($sp) +/* 04C478 7F017948 AFA00028 */ sw $zero, 0x28($sp) +/* 04C47C 7F01794C AFAF0014 */ sw $t7, 0x14($sp) +/* 04C480 7F017950 0FC025D8 */ jal write_text_at_abs_coord +/* 04C484 7F017954 AFAE0010 */ sw $t6, 0x10($sp) +/* 04C488 7F017958 8FB9007C */ lw $t9, 0x7c($sp) +/* 04C48C 7F01795C 8FAA0080 */ lw $t2, 0x80($sp) +/* 04C490 7F017960 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04C494 7F017964 44818000 */ mtc1 $at, $f16 +/* 04C498 7F017968 032A8021 */ addu $s0, $t9, $t2 +/* 04C49C 7F01796C 44903000 */ mtc1 $s0, $f6 +/* 04C4A0 7F017970 C7B20048 */ lwc1 $f18, 0x48($sp) +/* 04C4A4 7F017974 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 04C4A8 7F017978 46803220 */ cvt.s.w $f8, $f6 +/* 04C4AC 7F01797C 44813000 */ mtc1 $at, $f6 +/* 04C4B0 7F017980 00408825 */ move $s1, $v0 +/* 04C4B4 7F017984 46104282 */ mul.s $f10, $f8, $f16 +/* 04C4B8 7F017988 46125103 */ div.s $f4, $f10, $f18 +/* 04C4BC 7F01798C 0FC170D8 */ jal truncf +/* 04C4C0 7F017990 46062300 */ add.s $f12, $f4, $f6 +/* 04C4C4 7F017994 4600020D */ trunc.w.s $f8, $f0 +/* 04C4C8 7F017998 3C058005 */ lui $a1, %hi(aDD_3) +/* 04C4CC 7F01799C 24A51890 */ addiu $a1, %lo(aDD_3) # addiu $a1, $a1, 0x1890 +/* 04C4D0 7F0179A0 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04C4D4 7F0179A4 44074000 */ mfc1 $a3, $f8 +/* 04C4D8 7F0179A8 0C002B25 */ jal sprintf +/* 04C4DC 7F0179AC 02003025 */ move $a2, $s0 +/* 04C4E0 7F0179B0 8FAD00A0 */ lw $t5, 0xa0($sp) +/* 04C4E4 7F0179B4 240C012C */ li $t4, 300 +/* 04C4E8 7F0179B8 AFAC0C64 */ sw $t4, 0xc64($sp) +/* 04C4EC 7F0179BC 000D7080 */ sll $t6, $t5, 2 +/* 04C4F0 7F0179C0 01CD7023 */ subu $t6, $t6, $t5 +/* 04C4F4 7F0179C4 25CF00F4 */ addiu $t7, $t6, 0xf4 +/* 04C4F8 7F0179C8 0C001107 */ jal get_video2_settings_txtClipW +/* 04C4FC 7F0179CC AFAF0C60 */ sw $t7, 0xc60($sp) +/* 04C500 7F0179D0 00028400 */ sll $s0, $v0, 0x10 +/* 04C504 7F0179D4 0010C403 */ sra $t8, $s0, 0x10 +/* 04C508 7F0179D8 0C00110B */ jal get_video2_settings_txtClipH +/* 04C50C 7F0179DC 03008025 */ move $s0, $t8 +/* 04C510 7F0179E0 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 04C514 7F0179E4 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) +/* 04C518 7F0179E8 8D4A0EB4 */ lw $t2, %lo(ptrFirstFontTableLarge)($t2) +/* 04C51C 7F0179EC 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 04C520 7F0179F0 240B00FF */ li $t3, 255 +/* 04C524 7F0179F4 AFAB0018 */ sw $t3, 0x18($sp) +/* 04C528 7F0179F8 02202025 */ move $a0, $s1 +/* 04C52C 7F0179FC 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C530 7F017A00 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C534 7F017A04 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04C538 7F017A08 AFB0001C */ sw $s0, 0x1c($sp) +/* 04C53C 7F017A0C AFA20020 */ sw $v0, 0x20($sp) +/* 04C540 7F017A10 AFA00024 */ sw $zero, 0x24($sp) +/* 04C544 7F017A14 AFA00028 */ sw $zero, 0x28($sp) +/* 04C548 7F017A18 AFAA0014 */ sw $t2, 0x14($sp) +/* 04C54C 7F017A1C 0FC025D8 */ jal write_text_at_abs_coord +/* 04C550 7F017A20 AFB90010 */ sw $t9, 0x10($sp) +/* 04C554 7F017A24 00408825 */ move $s1, $v0 +/* 04C558 7F017A28 0FC30776 */ jal get_textptr_for_textID +/* 04C55C 7F017A2C 34049C71 */ li $a0, 40049 +/* 04C560 7F017A30 8FAD00A0 */ lw $t5, 0xa0($sp) +/* 04C564 7F017A34 240C0037 */ li $t4, 55 +/* 04C568 7F017A38 AFA200A4 */ sw $v0, 0xa4($sp) +/* 04C56C 7F017A3C 25AE00F4 */ addiu $t6, $t5, 0xf4 +/* 04C570 7F017A40 AFAC0C64 */ sw $t4, 0xc64($sp) +/* 04C574 7F017A44 0C001107 */ jal get_video2_settings_txtClipW +/* 04C578 7F017A48 AFAE0C60 */ sw $t6, 0xc60($sp) +/* 04C57C 7F017A4C 00028400 */ sll $s0, $v0, 0x10 +/* 04C580 7F017A50 00107C03 */ sra $t7, $s0, 0x10 +/* 04C584 7F017A54 0C00110B */ jal get_video2_settings_txtClipH +/* 04C588 7F017A58 01E08025 */ move $s0, $t7 +/* 04C58C 7F017A5C 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) +/* 04C590 7F017A60 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 04C594 7F017A64 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 04C598 7F017A68 8F180EB8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 04C59C 7F017A6C 240A00FF */ li $t2, 255 +/* 04C5A0 7F017A70 AFAA0018 */ sw $t2, 0x18($sp) +/* 04C5A4 7F017A74 02202025 */ move $a0, $s1 +/* 04C5A8 7F017A78 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C5AC 7F017A7C 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C5B0 7F017A80 8FA700A4 */ lw $a3, 0xa4($sp) +/* 04C5B4 7F017A84 AFB0001C */ sw $s0, 0x1c($sp) +/* 04C5B8 7F017A88 AFA20020 */ sw $v0, 0x20($sp) +/* 04C5BC 7F017A8C AFA00024 */ sw $zero, 0x24($sp) +/* 04C5C0 7F017A90 AFA00028 */ sw $zero, 0x28($sp) +/* 04C5C4 7F017A94 AFB90014 */ sw $t9, 0x14($sp) +/* 04C5C8 7F017A98 0FC025D8 */ jal write_text_at_abs_coord +/* 04C5CC 7F017A9C AFB80010 */ sw $t8, 0x10($sp) +/* 04C5D0 7F017AA0 3C058005 */ lui $a1, %hi(aD_10) +/* 04C5D4 7F017AA4 00408825 */ move $s1, $v0 +/* 04C5D8 7F017AA8 24A5189C */ addiu $a1, %lo(aD_10) # addiu $a1, $a1, 0x189c +/* 04C5DC 7F017AAC 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 04C5E0 7F017AB0 0C002B25 */ jal sprintf +/* 04C5E4 7F017AB4 8FA60094 */ lw $a2, 0x94($sp) +/* 04C5E8 7F017AB8 8FAC00A0 */ lw $t4, 0xa0($sp) +/* 04C5EC 7F017ABC 240B0082 */ li $t3, 130 +/* 04C5F0 7F017AC0 AFAB0C64 */ sw $t3, 0xc64($sp) +/* 04C5F4 7F017AC4 258D00F4 */ addiu $t5, $t4, 0xf4 +/* 04C5F8 7F017AC8 0C001107 */ jal get_video2_settings_txtClipW +/* 04C5FC 7F017ACC AFAD0C60 */ sw $t5, 0xc60($sp) +/* 04C600 7F017AD0 00028400 */ sll $s0, $v0, 0x10 +/* 04C604 7F017AD4 00107403 */ sra $t6, $s0, 0x10 +/* 04C608 7F017AD8 0C00110B */ jal get_video2_settings_txtClipH +/* 04C60C 7F017ADC 01C08025 */ move $s0, $t6 +/* 04C610 7F017AE0 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableLarge) +/* 04C614 7F017AE4 3C188004 */ lui $t8, %hi(ptrFirstFontTableLarge) +/* 04C618 7F017AE8 8F180EB4 */ lw $t8, %lo(ptrFirstFontTableLarge)($t8) +/* 04C61C 7F017AEC 8DEF0EB8 */ lw $t7, %lo(ptrSecondFontTableLarge)($t7) +/* 04C620 7F017AF0 241900FF */ li $t9, 255 +/* 04C624 7F017AF4 AFB90018 */ sw $t9, 0x18($sp) +/* 04C628 7F017AF8 02202025 */ move $a0, $s1 +/* 04C62C 7F017AFC 27A50C64 */ addiu $a1, $sp, 0xc64 +/* 04C630 7F017B00 27A60C60 */ addiu $a2, $sp, 0xc60 +/* 04C634 7F017B04 27A700A8 */ addiu $a3, $sp, 0xa8 +/* 04C638 7F017B08 AFB0001C */ sw $s0, 0x1c($sp) +/* 04C63C 7F017B0C AFA20020 */ sw $v0, 0x20($sp) +/* 04C640 7F017B10 AFA00024 */ sw $zero, 0x24($sp) +/* 04C644 7F017B14 AFA00028 */ sw $zero, 0x28($sp) +/* 04C648 7F017B18 AFB80014 */ sw $t8, 0x14($sp) +/* 04C64C 7F017B1C 0FC025D8 */ jal write_text_at_abs_coord +/* 04C650 7F017B20 AFAF0010 */ sw $t7, 0x10($sp) +/* 04C654 7F017B24 0FC02905 */ jal add_tab2_next +/* 04C658 7F017B28 00402025 */ move $a0, $v0 +/* 04C65C 7F017B2C 0FC0288E */ jal add_tab3_previous +/* 04C660 7F017B30 00402025 */ move $a0, $v0 +/* 04C664 7F017B34 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 04C668 7F017B38 00402025 */ move $a0, $v0 +/* 04C66C 7F017B3C 8FBF003C */ lw $ra, 0x3c($sp) +/* 04C670 7F017B40 8FB00034 */ lw $s0, 0x34($sp) +/* 04C674 7F017B44 8FB10038 */ lw $s1, 0x38($sp) +/* 04C678 7F017B48 03E00008 */ jr $ra +/* 04C67C 7F017B4C 27BD0C68 */ addiu $sp, $sp, 0xc68 +) +#endif + + + +#ifdef NONMATCHING +void init_menu15_cheat(void) + +{ + int iVar1; + undefined1 *puVar2; + + tab_1_selected = FALSE; + tab_2_selected = FALSE; + tab_3_selected = FALSE; + tab_3_highlight = FALSE; + tab_2_highlight = FALSE; + tab_1_highlight = FALSE; + dword_8002B5DC = NULL; + puVar2 = cheat_available; + iVar1 = 1; + do { + if (*puVar2 != '\0') { + (&DAT_800697f0)[(int)dword_8002B5DC] = iVar1; + dword_8002B5DC = dword_8002B5DC + 1; + } + iVar1 += 1; + puVar2 = puVar2 + 1; + } while (iVar1 != 0x4b); + load_walletbond(); + return; +} +#else +GLOBAL_ASM( +.text +glabel init_menu15_cheat +/* 04C680 7F017B50 3C018003 */ lui $at, %hi(tab_1_selected) +/* 04C684 7F017B54 AC20A8D0 */ sw $zero, %lo(tab_1_selected)($at) +/* 04C688 7F017B58 3C018003 */ lui $at, %hi(tab_2_selected) +/* 04C68C 7F017B5C AC20A8D4 */ sw $zero, %lo(tab_2_selected)($at) +/* 04C690 7F017B60 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04C694 7F017B64 AC20A8D8 */ sw $zero, %lo(tab_3_selected)($at) +/* 04C698 7F017B68 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04C69C 7F017B6C AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 04C6A0 7F017B70 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04C6A4 7F017B74 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 04C6A8 7F017B78 3C058003 */ lui $a1, %hi(D_8002B5DC) +/* 04C6AC 7F017B7C 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 04C6B0 7F017B80 24A5B5DC */ addiu $a1, %lo(D_8002B5DC) # addiu $a1, $a1, -0x4a24 +/* 04C6B4 7F017B84 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 04C6B8 7F017B88 AC20A8DC */ sw $zero, %lo(tab_1_highlight)($at) +/* 04C6BC 7F017B8C 3C048007 */ lui $a0, %hi(cheat_available) +/* 04C6C0 7F017B90 3C068007 */ lui $a2, %hi(dword_CODE_bss_800697F0) +/* 04C6C4 7F017B94 AFBF0014 */ sw $ra, 0x14($sp) +/* 04C6C8 7F017B98 ACA00000 */ sw $zero, ($a1) +/* 04C6CC 7F017B9C 24C697F0 */ addiu $a2, %lo(dword_CODE_bss_800697F0) # addiu $a2, $a2, -0x6810 +/* 04C6D0 7F017BA0 24849651 */ addiu $a0, %lo(cheat_available) # addiu $a0, $a0, -0x69af +/* 04C6D4 7F017BA4 24030001 */ li $v1, 1 +/* 04C6D8 7F017BA8 2407004B */ li $a3, 75 +.L7F017BAC: +/* 04C6DC 7F017BAC 908E0000 */ lbu $t6, ($a0) +/* 04C6E0 7F017BB0 51C00008 */ beql $t6, $zero, .L7F017BD4 +/* 04C6E4 7F017BB4 24630001 */ addiu $v1, $v1, 1 +/* 04C6E8 7F017BB8 8CA20000 */ lw $v0, ($a1) +/* 04C6EC 7F017BBC 00027880 */ sll $t7, $v0, 2 +/* 04C6F0 7F017BC0 00CFC021 */ addu $t8, $a2, $t7 +/* 04C6F4 7F017BC4 AF030000 */ sw $v1, ($t8) +/* 04C6F8 7F017BC8 24590001 */ addiu $t9, $v0, 1 +/* 04C6FC 7F017BCC ACB90000 */ sw $t9, ($a1) +/* 04C700 7F017BD0 24630001 */ addiu $v1, $v1, 1 +.L7F017BD4: +/* 04C704 7F017BD4 1467FFF5 */ bne $v1, $a3, .L7F017BAC +/* 04C708 7F017BD8 24840001 */ addiu $a0, $a0, 1 +/* 04C70C 7F017BDC 0FC02E2B */ jal load_walletbond +/* 04C710 7F017BE0 00000000 */ nop +/* 04C714 7F017BE4 8FBF0014 */ lw $ra, 0x14($sp) +/* 04C718 7F017BE8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 04C71C 7F017BEC 03E00008 */ jr $ra +/* 04C720 7F017BF0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void update_menu15_cheat(void) +{ + s32 lVar1; + int i; + undefined1 *puVar2; + u32 appendsp; + u32 appendmp; + + appendsp = FALSE; + appendmp = FALSE; + puVar2 = CHEAT_AVAILABLE_EXTRA_CHARS; + i = 1; + do { + if (*puVar2 != 0) { + appendsp = TRUE; + lVar1 = proc_7F091A78(i); + if (lVar1 != 0) { + appendmp = TRUE; + } + } + i += 1; + puVar2 = puVar2 + 1; + } while (i != 0x4b); + append_cheat_sp = appendsp; + append_cheat_mp = appendmp; +} +#else +GLOBAL_ASM( +.text +glabel update_menu15_cheat +/* 04C724 7F017BF4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 04C728 7F017BF8 AFB1001C */ sw $s1, 0x1c($sp) +/* 04C72C 7F017BFC AFB40028 */ sw $s4, 0x28($sp) +/* 04C730 7F017C00 AFB30024 */ sw $s3, 0x24($sp) +/* 04C734 7F017C04 AFB20020 */ sw $s2, 0x20($sp) +/* 04C738 7F017C08 AFB00018 */ sw $s0, 0x18($sp) +/* 04C73C 7F017C0C 3C118007 */ lui $s1, %hi(CHEAT_AVAILABLE_EXTRA_CHARS) +/* 04C740 7F017C10 AFBF002C */ sw $ra, 0x2c($sp) +/* 04C744 7F017C14 00009825 */ move $s3, $zero +/* 04C748 7F017C18 0000A025 */ move $s4, $zero +/* 04C74C 7F017C1C 263196A1 */ addiu $s1, %lo(CHEAT_AVAILABLE_EXTRA_CHARS) # addiu $s1, $s1, -0x695f +/* 04C750 7F017C20 24100001 */ li $s0, 1 +/* 04C754 7F017C24 2412004B */ li $s2, 75 +.L7F017C28: +/* 04C758 7F017C28 922E0000 */ lbu $t6, ($s1) +/* 04C75C 7F017C2C 02002025 */ move $a0, $s0 +/* 04C760 7F017C30 51C00007 */ beql $t6, $zero, .L7F017C50 +/* 04C764 7F017C34 26100001 */ addiu $s0, $s0, 1 +/* 04C768 7F017C38 0FC2469E */ jal cheatCheckIfMPCheat +/* 04C76C 7F017C3C 24130001 */ li $s3, 1 +/* 04C770 7F017C40 50400003 */ beql $v0, $zero, .L7F017C50 +/* 04C774 7F017C44 26100001 */ addiu $s0, $s0, 1 +/* 04C778 7F017C48 24140001 */ li $s4, 1 +/* 04C77C 7F017C4C 26100001 */ addiu $s0, $s0, 1 +.L7F017C50: +/* 04C780 7F017C50 1612FFF5 */ bne $s0, $s2, .L7F017C28 +/* 04C784 7F017C54 26310001 */ addiu $s1, $s1, 1 +/* 04C788 7F017C58 3C018003 */ lui $at, %hi(append_cheat_sp) +/* 04C78C 7F017C5C AC33A900 */ sw $s3, %lo(append_cheat_sp)($at) +/* 04C790 7F017C60 8FBF002C */ lw $ra, 0x2c($sp) +/* 04C794 7F017C64 3C018003 */ lui $at, %hi(append_cheat_mp) +/* 04C798 7F017C68 AC34A904 */ sw $s4, %lo(append_cheat_mp)($at) +/* 04C79C 7F017C6C 8FB40028 */ lw $s4, 0x28($sp) +/* 04C7A0 7F017C70 8FB30024 */ lw $s3, 0x24($sp) +/* 04C7A4 7F017C74 8FB00018 */ lw $s0, 0x18($sp) +/* 04C7A8 7F017C78 8FB1001C */ lw $s1, 0x1c($sp) +/* 04C7AC 7F017C7C 8FB20020 */ lw $s2, 0x20($sp) +/* 04C7B0 7F017C80 03E00008 */ jr $ra +/* 04C7B4 7F017C84 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +#ifdef NONMATCHING +void interface_menu15_cheat(u32 param_1,u32 param_2) +{ + int iVar1; + u32 BVar3; + int iVar4; + int iVar5; + + setvideo_far(60.00000000); + video_related_21(menu15_aspect); + set_page_height(100.00000000, menu15_pageheight); + set_video2_settings_offset_24(0); + MP_menu_selected_option = 0; + iVar1 = dword_8002B5E0; + if (get_controller_buttons_held(0,Z_TRIG|A_BUTTON) == 0) { + tab_3_highlight = FALSE; + tab_2_highlight = FALSE; + tab_1_highlight = FALSE; + dword_8002B5E0 = 0; + BVar3 = isontab3(); + if (BVar3 == FALSE) { + iVar1 = dword_8002B5E0; + if (((0xc < dword_8002B5DC) && + (iVar5 = dword_8002B5DC + -0xd, iVar1 = dword_8002B5E0, 0xdb < (int)(float)cursor_h_pos)) + && (iVar1 = dword_8002B5E0, -1 < iVar5)) { + iVar4 = iVar5 * 0x14 + 0x35; + do { + iVar1 = iVar5 + 0xc; + if (iVar4 <= (int)(float)cursor_v_pos) break; + iVar5 += -1; + iVar4 += -0x14; + iVar1 = dword_8002B5E0; + } while (-1 < iVar5); + } + dword_8002B5E0 = iVar1; + iVar1 = dword_8002B5E0; + if (dword_8002B5E0 == 0) { + iVar5 = dword_8002B5DC + -1; + if (0xc < dword_8002B5DC) { + iVar5 = 0xb; + } + iVar1 = dword_8002B5E0; + if (-1 < iVar5) { + iVar4 = iVar5 * 0x14 + 0x35; + do { + iVar1 = iVar5; + if (iVar4 <= (int)(float)cursor_v_pos) break; + iVar5 += -1; + iVar4 += -0x14; + iVar1 = dword_8002B5E0; + } while (-1 < iVar5); + } + } + } + else { + tab_3_highlight = TRUE; + iVar1 = dword_8002B5E0; + } + } + dword_8002B5E0 = iVar1; + uVar2 = get_controller_buttons_pressed(0,Z_TRIG|A_BUTTON); + if (uVar2 == 0) { + uVar2 = get_controller_buttons_pressed(0,B_BUTTON); + if (uVar2 != 0) { + tab_3_selected = TRUE; + play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + } + } + else { + if (tab_3_highlight == FALSE) { + MP_menu_selected_option = 1; + } + else { + tab_3_selected = TRUE; + } + play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + } + disable_all_switches((int)ptr_folder_object_instance); + set_item_visibility_in_objinstance((int)ptr_folder_object_instance,0,1); + set_item_visibility_in_objinstance((int)ptr_folder_object_instance,0x2a,1); + set_item_visibility_in_objinstance((int)ptr_folder_object_instance,6,1); + menu_control_stick_tracking(); + if (tab_3_selected == FALSE) { + if (MP_menu_selected_option != 0) { + *(char *)((&DAT_800697f0)[dword_8002B5E0] + -0x7ff96960) = + 1 - *(char *)((&DAT_800697f0)[dword_8002B5E0] + -0x7ff96960); + } + } + else { + set_menu_to_mode(MENU_MODE_SELECT,0); + set_menu_cursor_pos_to_setting(gamemode); + } +} +#else +GLOBAL_ASM( +.late_rodata +glabel menu15_aspect +.word 0x3FAAAAAB /*1.3333334;*/ +glabel menu15_pageheight +.word 0x461C4000 /*10000.0;*/ +.text +glabel interface_menu15_cheat +/* 04C7B8 7F017C88 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 04C7BC 7F017C8C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 04C7C0 7F017C90 AFBF0014 */ sw $ra, 0x14($sp) +/* 04C7C4 7F017C94 44816000 */ mtc1 $at, $f12 +/* 04C7C8 7F017C98 0C001151 */ jal setvideo_far +/* 04C7CC 7F017C9C 00000000 */ nop +/* 04C7D0 7F017CA0 3C018005 */ lui $at, %hi(menu15_aspect) +/* 04C7D4 7F017CA4 0C001164 */ jal video_related_21 +/* 04C7D8 7F017CA8 C42C1AE4 */ lwc1 $f12, %lo(menu15_aspect)($at) +/* 04C7DC 7F017CAC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04C7E0 7F017CB0 44816000 */ mtc1 $at, $f12 +/* 04C7E4 7F017CB4 3C018005 */ lui $at, %hi(menu15_pageheight) +/* 04C7E8 7F017CB8 0C001194 */ jal set_page_height +/* 04C7EC 7F017CBC C42E1AE8 */ lwc1 $f14, %lo(menu15_pageheight)($at) +/* 04C7F0 7F017CC0 0C00114D */ jal set_video2_settings_offset_24 +/* 04C7F4 7F017CC4 00002025 */ move $a0, $zero +/* 04C7F8 7F017CC8 3C018003 */ lui $at, %hi(MP_menu_selected_option) +/* 04C7FC 7F017CCC AC20B5E4 */ sw $zero, %lo(MP_menu_selected_option)($at) +/* 04C800 7F017CD0 00002025 */ move $a0, $zero +/* 04C804 7F017CD4 0C0030C3 */ jal get_controller_buttons_held +/* 04C808 7F017CD8 3405A000 */ li $a1, 40960 +/* 04C80C 7F017CDC 14400049 */ bnez $v0, .L7F017E04 +/* 04C810 7F017CE0 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04C814 7F017CE4 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 04C818 7F017CE8 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 04C81C 7F017CEC AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 04C820 7F017CF0 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 04C824 7F017CF4 AC20A8DC */ sw $zero, %lo(tab_1_highlight)($at) +/* 04C828 7F017CF8 3C018003 */ lui $at, %hi(D_8002B5E0) +/* 04C82C 7F017CFC 0FC028E7 */ jal isontab3 +/* 04C830 7F017D00 AC20B5E0 */ sw $zero, %lo(D_8002B5E0)($at) +/* 04C834 7F017D04 10400005 */ beqz $v0, .L7F017D1C +/* 04C838 7F017D08 3C058003 */ lui $a1, %hi(D_8002B5DC) +/* 04C83C 7F017D0C 240E0001 */ li $t6, 1 +/* 04C840 7F017D10 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04C844 7F017D14 1000003B */ b .L7F017E04 +/* 04C848 7F017D18 AC2EA8E4 */ sw $t6, %lo(tab_3_highlight)($at) +.L7F017D1C: +/* 04C84C 7F017D1C 8CA5B5DC */ lw $a1, %lo(D_8002B5DC)($a1) +/* 04C850 7F017D20 3C098003 */ lui $t1, %hi(D_8002B5E0) +/* 04C854 7F017D24 28A1000D */ slti $at, $a1, 0xd +/* 04C858 7F017D28 1420001C */ bnez $at, .L7F017D9C +/* 04C85C 7F017D2C 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 04C860 7F017D30 C424A908 */ lwc1 $f4, %lo(cursor_h_pos)($at) +/* 04C864 7F017D34 24A3FFF3 */ addiu $v1, $a1, -0xd +/* 04C868 7F017D38 4600218D */ trunc.w.s $f6, $f4 +/* 04C86C 7F017D3C 44183000 */ mfc1 $t8, $f6 +/* 04C870 7F017D40 00000000 */ nop +/* 04C874 7F017D44 2B0100DC */ slti $at, $t8, 0xdc +/* 04C878 7F017D48 14200014 */ bnez $at, .L7F017D9C +/* 04C87C 7F017D4C 00000000 */ nop +/* 04C880 7F017D50 04600012 */ bltz $v1, .L7F017D9C +/* 04C884 7F017D54 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 04C888 7F017D58 C428A90C */ lwc1 $f8, %lo(cursor_v_pos)($at) +/* 04C88C 7F017D5C 00031080 */ sll $v0, $v1, 2 +/* 04C890 7F017D60 00431021 */ addu $v0, $v0, $v1 +/* 04C894 7F017D64 4600428D */ trunc.w.s $f10, $f8 +/* 04C898 7F017D68 00021080 */ sll $v0, $v0, 2 +/* 04C89C 7F017D6C 24420035 */ addiu $v0, $v0, 0x35 +/* 04C8A0 7F017D70 44045000 */ mfc1 $a0, $f10 +/* 04C8A4 7F017D74 00000000 */ nop +.L7F017D78: +/* 04C8A8 7F017D78 0082082A */ slt $at, $a0, $v0 +/* 04C8AC 7F017D7C 14200004 */ bnez $at, .L7F017D90 +/* 04C8B0 7F017D80 2468000C */ addiu $t0, $v1, 0xc +/* 04C8B4 7F017D84 3C018003 */ lui $at, %hi(D_8002B5E0) +/* 04C8B8 7F017D88 10000004 */ b .L7F017D9C +/* 04C8BC 7F017D8C AC28B5E0 */ sw $t0, %lo(D_8002B5E0)($at) +.L7F017D90: +/* 04C8C0 7F017D90 2463FFFF */ addiu $v1, $v1, -1 +/* 04C8C4 7F017D94 0461FFF8 */ bgez $v1, .L7F017D78 +/* 04C8C8 7F017D98 2442FFEC */ addiu $v0, $v0, -0x14 +.L7F017D9C: +/* 04C8CC 7F017D9C 8D29B5E0 */ lw $t1, %lo(D_8002B5E0)($t1) +/* 04C8D0 7F017DA0 28A1000D */ slti $at, $a1, 0xd +/* 04C8D4 7F017DA4 55200018 */ bnezl $t1, .L7F017E08 +/* 04C8D8 7F017DA8 00002025 */ move $a0, $zero +/* 04C8DC 7F017DAC 14200003 */ bnez $at, .L7F017DBC +/* 04C8E0 7F017DB0 24A3FFFF */ addiu $v1, $a1, -1 +/* 04C8E4 7F017DB4 10000001 */ b .L7F017DBC +/* 04C8E8 7F017DB8 2403000B */ li $v1, 11 +.L7F017DBC: +/* 04C8EC 7F017DBC 04600011 */ bltz $v1, .L7F017E04 +/* 04C8F0 7F017DC0 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 04C8F4 7F017DC4 C430A90C */ lwc1 $f16, %lo(cursor_v_pos)($at) +/* 04C8F8 7F017DC8 00031080 */ sll $v0, $v1, 2 +/* 04C8FC 7F017DCC 00431021 */ addu $v0, $v0, $v1 +/* 04C900 7F017DD0 4600848D */ trunc.w.s $f18, $f16 +/* 04C904 7F017DD4 00021080 */ sll $v0, $v0, 2 +/* 04C908 7F017DD8 24420035 */ addiu $v0, $v0, 0x35 +/* 04C90C 7F017DDC 44049000 */ mfc1 $a0, $f18 +/* 04C910 7F017DE0 00000000 */ nop +.L7F017DE4: +/* 04C914 7F017DE4 0082082A */ slt $at, $a0, $v0 +/* 04C918 7F017DE8 14200003 */ bnez $at, .L7F017DF8 +/* 04C91C 7F017DEC 3C018003 */ lui $at, %hi(D_8002B5E0) +/* 04C920 7F017DF0 10000004 */ b .L7F017E04 +/* 04C924 7F017DF4 AC23B5E0 */ sw $v1, %lo(D_8002B5E0)($at) +.L7F017DF8: +/* 04C928 7F017DF8 2463FFFF */ addiu $v1, $v1, -1 +/* 04C92C 7F017DFC 0461FFF9 */ bgez $v1, .L7F017DE4 +/* 04C930 7F017E00 2442FFEC */ addiu $v0, $v0, -0x14 +.L7F017E04: +/* 04C934 7F017E04 00002025 */ move $a0, $zero +.L7F017E08: +/* 04C938 7F017E08 0C0030EB */ jal get_controller_buttons_pressed +/* 04C93C 7F017E0C 3405A000 */ li $a1, 40960 +/* 04C940 7F017E10 10400012 */ beqz $v0, .L7F017E5C +/* 04C944 7F017E14 00002025 */ move $a0, $zero +/* 04C948 7F017E18 3C0B8003 */ lui $t3, %hi(tab_3_highlight) +/* 04C94C 7F017E1C 8D6BA8E4 */ lw $t3, %lo(tab_3_highlight)($t3) +/* 04C950 7F017E20 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04C954 7F017E24 240500C7 */ li $a1, 199 +/* 04C958 7F017E28 11600005 */ beqz $t3, .L7F017E40 +/* 04C95C 7F017E2C 00003025 */ move $a2, $zero +/* 04C960 7F017E30 240C0001 */ li $t4, 1 +/* 04C964 7F017E34 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04C968 7F017E38 10000004 */ b .L7F017E4C +/* 04C96C 7F017E3C AC2CA8D8 */ sw $t4, %lo(tab_3_selected)($at) +.L7F017E40: +/* 04C970 7F017E40 240D0001 */ li $t5, 1 +/* 04C974 7F017E44 3C018003 */ lui $at, %hi(MP_menu_selected_option) +/* 04C978 7F017E48 AC2DB5E4 */ sw $t5, %lo(MP_menu_selected_option)($at) +.L7F017E4C: +/* 04C97C 7F017E4C 0C002382 */ jal play_sfx_a1 +/* 04C980 7F017E50 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04C984 7F017E54 1000000C */ b .L7F017E88 +/* 04C988 7F017E58 00000000 */ nop +.L7F017E5C: +/* 04C98C 7F017E5C 0C0030EB */ jal get_controller_buttons_pressed +/* 04C990 7F017E60 24054000 */ li $a1, 16384 +/* 04C994 7F017E64 10400008 */ beqz $v0, .L7F017E88 +/* 04C998 7F017E68 240E0001 */ li $t6, 1 +/* 04C99C 7F017E6C 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04C9A0 7F017E70 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04C9A4 7F017E74 AC2EA8D8 */ sw $t6, %lo(tab_3_selected)($at) +/* 04C9A8 7F017E78 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04C9AC 7F017E7C 240500C7 */ li $a1, 199 +/* 04C9B0 7F017E80 0C002382 */ jal play_sfx_a1 +/* 04C9B4 7F017E84 00003025 */ move $a2, $zero +.L7F017E88: +/* 04C9B8 7F017E88 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04C9BC 7F017E8C 0FC02DC9 */ jal disable_all_switches +/* 04C9C0 7F017E90 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04C9C4 7F017E94 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04C9C8 7F017E98 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04C9CC 7F017E9C 00002825 */ move $a1, $zero +/* 04C9D0 7F017EA0 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04C9D4 7F017EA4 24060001 */ li $a2, 1 +/* 04C9D8 7F017EA8 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04C9DC 7F017EAC 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04C9E0 7F017EB0 2405002A */ li $a1, 42 +/* 04C9E4 7F017EB4 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04C9E8 7F017EB8 24060001 */ li $a2, 1 +/* 04C9EC 7F017EBC 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04C9F0 7F017EC0 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04C9F4 7F017EC4 24050006 */ li $a1, 6 +/* 04C9F8 7F017EC8 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04C9FC 7F017ECC 24060001 */ li $a2, 1 +/* 04CA00 7F017ED0 0FC026E1 */ jal menu_control_stick_tracking +/* 04CA04 7F017ED4 00000000 */ nop +/* 04CA08 7F017ED8 3C0F8003 */ lui $t7, %hi(tab_3_selected) +/* 04CA0C 7F017EDC 8DEFA8D8 */ lw $t7, %lo(tab_3_selected)($t7) +/* 04CA10 7F017EE0 24040006 */ li $a0, 6 +/* 04CA14 7F017EE4 3C188003 */ lui $t8, %hi(MP_menu_selected_option) +/* 04CA18 7F017EE8 11E00008 */ beqz $t7, .L7F017F0C +/* 04CA1C 7F017EEC 00000000 */ nop +/* 04CA20 7F017EF0 0FC06975 */ jal set_menu_to_mode +/* 04CA24 7F017EF4 00002825 */ move $a1, $zero +/* 04CA28 7F017EF8 3C048003 */ lui $a0, %hi(gamemode) +/* 04CA2C 7F017EFC 0FC035FF */ jal set_menu_cursor_pos_to_setting +/* 04CA30 7F017F00 8C84A8F0 */ lw $a0, %lo(gamemode)($a0) +/* 04CA34 7F017F04 10000012 */ b .L7F017F50 +/* 04CA38 7F017F08 8FBF0014 */ lw $ra, 0x14($sp) +.L7F017F0C: +/* 04CA3C 7F017F0C 8F18B5E4 */ lw $t8, %lo(MP_menu_selected_option)($t8) +/* 04CA40 7F017F10 3C198003 */ lui $t9, %hi(D_8002B5E0) +/* 04CA44 7F017F14 5300000E */ beql $t8, $zero, .L7F017F50 +/* 04CA48 7F017F18 8FBF0014 */ lw $ra, 0x14($sp) +/* 04CA4C 7F017F1C 8F39B5E0 */ lw $t9, %lo(D_8002B5E0)($t9) +/* 04CA50 7F017F20 3C038007 */ lui $v1, %hi(dword_CODE_bss_800697F0) +/* 04CA54 7F017F24 3C098007 */ lui $t1, %hi(cheat_activated) +/* 04CA58 7F017F28 00194080 */ sll $t0, $t9, 2 +/* 04CA5C 7F017F2C 00681821 */ addu $v1, $v1, $t0 +/* 04CA60 7F017F30 8C6397F0 */ lw $v1, %lo(dword_CODE_bss_800697F0)($v1) +/* 04CA64 7F017F34 252996A0 */ addiu $t1, %lo(cheat_activated) # addiu $t1, $t1, -0x6960 +/* 04CA68 7F017F38 240B0001 */ li $t3, 1 +/* 04CA6C 7F017F3C 00691021 */ addu $v0, $v1, $t1 +/* 04CA70 7F017F40 904A0000 */ lbu $t2, ($v0) +/* 04CA74 7F017F44 016A6023 */ subu $t4, $t3, $t2 +/* 04CA78 7F017F48 A04C0000 */ sb $t4, ($v0) +/* 04CA7C 7F017F4C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F017F50: +/* 04CA80 7F017F50 27BD0018 */ addiu $sp, $sp, 0x18 +/* 04CA84 7F017F54 03E00008 */ jr $ra +/* 04CA88 7F017F58 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu15_cheat(void) { + +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu15_cheat +/* 04CA8C 7F017F5C 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 04CA90 7F017F60 AFBF005C */ sw $ra, 0x5c($sp) +/* 04CA94 7F017F64 AFBE0058 */ sw $fp, 0x58($sp) +/* 04CA98 7F017F68 AFB70054 */ sw $s7, 0x54($sp) +/* 04CA9C 7F017F6C AFB60050 */ sw $s6, 0x50($sp) +/* 04CAA0 7F017F70 AFB5004C */ sw $s5, 0x4c($sp) +/* 04CAA4 7F017F74 AFB40048 */ sw $s4, 0x48($sp) +/* 04CAA8 7F017F78 AFB30044 */ sw $s3, 0x44($sp) +/* 04CAAC 7F017F7C AFB20040 */ sw $s2, 0x40($sp) +/* 04CAB0 7F017F80 AFB1003C */ sw $s1, 0x3c($sp) +/* 04CAB4 7F017F84 AFB00038 */ sw $s0, 0x38($sp) +/* 04CAB8 7F017F88 00002825 */ move $a1, $zero +/* 04CABC 7F017F8C 00003025 */ move $a2, $zero +/* 04CAC0 7F017F90 0C0011B4 */ jal set_setfillcolor +/* 04CAC4 7F017F94 00003825 */ move $a3, $zero +/* 04CAC8 7F017F98 0C000FBE */ jal insert_generic_fillrect +/* 04CACC 7F017F9C 00402025 */ move $a0, $v0 +/* 04CAD0 7F017FA0 0FC0357A */ jal sub_GAME_7F00D5E8 +/* 04CAD4 7F017FA4 00402025 */ move $a0, $v0 +/* 04CAD8 7F017FA8 0FC2B366 */ jal microcode_constructor +/* 04CADC 7F017FAC 00402025 */ move $a0, $v0 +/* 04CAE0 7F017FB0 3C038003 */ lui $v1, %hi(D_8002B5DC) +/* 04CAE4 7F017FB4 8C63B5DC */ lw $v1, %lo(D_8002B5DC)($v1) +/* 04CAE8 7F017FB8 0040A025 */ move $s4, $v0 +/* 04CAEC 7F017FBC 0000F025 */ move $fp, $zero +/* 04CAF0 7F017FC0 2861000D */ slti $at, $v1, 0xd +/* 04CAF4 7F017FC4 14200003 */ bnez $at, .L7F017FD4 +/* 04CAF8 7F017FC8 00608825 */ move $s1, $v1 +/* 04CAFC 7F017FCC 10000001 */ b .L7F017FD4 +/* 04CB00 7F017FD0 2411000C */ li $s1, 12 +.L7F017FD4: +/* 04CB04 7F017FD4 1A200086 */ blez $s1, .L7F0181F0 +/* 04CB08 7F017FD8 001E7080 */ sll $t6, $fp, 2 +/* 04CB0C 7F017FDC 001EA880 */ sll $s5, $fp, 2 +/* 04CB10 7F017FE0 02BEA821 */ addu $s5, $s5, $fp +/* 04CB14 7F017FE4 3C0F8007 */ lui $t7, %hi(dword_CODE_bss_800697F0) +/* 04CB18 7F017FE8 25EF97F0 */ addiu $t7, %lo(dword_CODE_bss_800697F0) # addiu $t7, $t7, -0x6810 +/* 04CB1C 7F017FEC 0015A880 */ sll $s5, $s5, 2 +/* 04CB20 7F017FF0 3C178004 */ lui $s7, %hi(ptrFirstFontTableLarge) +/* 04CB24 7F017FF4 3C168004 */ lui $s6, %hi(ptrSecondFontTableLarge) +/* 04CB28 7F017FF8 26D60EB8 */ addiu $s6, %lo(ptrSecondFontTableLarge) # addiu $s6, $s6, 0xeb8 +/* 04CB2C 7F017FFC 26F70EB4 */ addiu $s7, %lo(ptrFirstFontTableLarge) # addiu $s7, $s7, 0xeb4 +/* 04CB30 7F018000 26B50035 */ addiu $s5, $s5, 0x35 +/* 04CB34 7F018004 01CF9821 */ addu $s3, $t6, $t7 +.L7F018008: +/* 04CB38 7F018008 0FC249DD */ jal cheatGetMenuTextPointer +/* 04CB3C 7F01800C 8E640000 */ lw $a0, ($s3) +/* 04CB40 7F018010 8EF80000 */ lw $t8, ($s7) +/* 04CB44 7F018014 00409025 */ move $s2, $v0 +/* 04CB48 7F018018 27A40080 */ addiu $a0, $sp, 0x80 +/* 04CB4C 7F01801C 27A5007C */ addiu $a1, $sp, 0x7c +/* 04CB50 7F018020 00403025 */ move $a2, $v0 +/* 04CB54 7F018024 8EC70000 */ lw $a3, ($s6) +/* 04CB58 7F018028 AFA00014 */ sw $zero, 0x14($sp) +/* 04CB5C 7F01802C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04CB60 7F018030 AFB80010 */ sw $t8, 0x10($sp) +/* 04CB64 7F018034 3C198003 */ lui $t9, %hi(D_8002B5E0) +/* 04CB68 7F018038 8F39B5E0 */ lw $t9, %lo(D_8002B5E0)($t9) +/* 04CB6C 7F01803C 24020037 */ li $v0, 55 +/* 04CB70 7F018040 AFA20088 */ sw $v0, 0x88($sp) +/* 04CB74 7F018044 17D90012 */ bne $fp, $t9, .L7F018090 +/* 04CB78 7F018048 AFB50084 */ sw $s5, 0x84($sp) +/* 04CB7C 7F01804C 0FC028E7 */ jal isontab3 +/* 04CB80 7F018050 00000000 */ nop +/* 04CB84 7F018054 1440000E */ bnez $v0, .L7F018090 +/* 04CB88 7F018058 8FA30084 */ lw $v1, 0x84($sp) +/* 04CB8C 7F01805C 8FA20088 */ lw $v0, 0x88($sp) +/* 04CB90 7F018060 8FA8007C */ lw $t0, 0x7c($sp) +/* 04CB94 7F018064 2469000E */ addiu $t1, $v1, 0xe +/* 04CB98 7F018068 240A0032 */ li $t2, 50 +/* 04CB9C 7F01806C 00483821 */ addu $a3, $v0, $t0 +/* 04CBA0 7F018070 24E70005 */ addiu $a3, $a3, 5 +/* 04CBA4 7F018074 AFAA0014 */ sw $t2, 0x14($sp) +/* 04CBA8 7F018078 AFA90010 */ sw $t1, 0x10($sp) +/* 04CBAC 7F01807C 02802025 */ move $a0, $s4 +/* 04CBB0 7F018080 2466FFFF */ addiu $a2, $v1, -1 +/* 04CBB4 7F018084 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04CBB8 7F018088 2445FFFE */ addiu $a1, $v0, -2 +/* 04CBBC 7F01808C 0040A025 */ move $s4, $v0 +.L7F018090: +/* 04CBC0 7F018090 0C001107 */ jal get_video2_settings_txtClipW +/* 04CBC4 7F018094 00000000 */ nop +/* 04CBC8 7F018098 00028400 */ sll $s0, $v0, 0x10 +/* 04CBCC 7F01809C 00105C03 */ sra $t3, $s0, 0x10 +/* 04CBD0 7F0180A0 0C00110B */ jal get_video2_settings_txtClipH +/* 04CBD4 7F0180A4 01608025 */ move $s0, $t3 +/* 04CBD8 7F0180A8 8ECC0000 */ lw $t4, ($s6) +/* 04CBDC 7F0180AC 8EED0000 */ lw $t5, ($s7) +/* 04CBE0 7F0180B0 240E00FF */ li $t6, 255 +/* 04CBE4 7F0180B4 AFAE0018 */ sw $t6, 0x18($sp) +/* 04CBE8 7F0180B8 02802025 */ move $a0, $s4 +/* 04CBEC 7F0180BC 27A50088 */ addiu $a1, $sp, 0x88 +/* 04CBF0 7F0180C0 27A60084 */ addiu $a2, $sp, 0x84 +/* 04CBF4 7F0180C4 02403825 */ move $a3, $s2 +/* 04CBF8 7F0180C8 AFB0001C */ sw $s0, 0x1c($sp) +/* 04CBFC 7F0180CC AFA20020 */ sw $v0, 0x20($sp) +/* 04CC00 7F0180D0 AFA00024 */ sw $zero, 0x24($sp) +/* 04CC04 7F0180D4 AFA00028 */ sw $zero, 0x28($sp) +/* 04CC08 7F0180D8 AFAC0010 */ sw $t4, 0x10($sp) +/* 04CC0C 7F0180DC 0FC025D8 */ jal write_text_at_abs_coord +/* 04CC10 7F0180E0 AFAD0014 */ sw $t5, 0x14($sp) +/* 04CC14 7F0180E4 8E6F0000 */ lw $t7, ($s3) +/* 04CC18 7F0180E8 3C188007 */ lui $t8, %hi(cheat_activated) +/* 04CC1C 7F0180EC 0040A025 */ move $s4, $v0 +/* 04CC20 7F0180F0 030FC021 */ addu $t8, $t8, $t7 +/* 04CC24 7F0180F4 931896A0 */ lbu $t8, %lo(cheat_activated)($t8) +/* 04CC28 7F0180F8 34119C74 */ li $s1, 40052 +/* 04CC2C 7F0180FC 13000003 */ beqz $t8, .L7F01810C +/* 04CC30 7F018100 00000000 */ nop +/* 04CC34 7F018104 10000001 */ b .L7F01810C +/* 04CC38 7F018108 34119C73 */ li $s1, 40051 +.L7F01810C: +/* 04CC3C 7F01810C 0FC30776 */ jal get_textptr_for_textID +/* 04CC40 7F018110 02202025 */ move $a0, $s1 +/* 04CC44 7F018114 8EF90000 */ lw $t9, ($s7) +/* 04CC48 7F018118 00409025 */ move $s2, $v0 +/* 04CC4C 7F01811C 27A40080 */ addiu $a0, $sp, 0x80 +/* 04CC50 7F018120 27A5007C */ addiu $a1, $sp, 0x7c +/* 04CC54 7F018124 00403025 */ move $a2, $v0 +/* 04CC58 7F018128 8EC70000 */ lw $a3, ($s6) +/* 04CC5C 7F01812C AFA00014 */ sw $zero, 0x14($sp) +/* 04CC60 7F018130 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04CC64 7F018134 AFB90010 */ sw $t9, 0x10($sp) +/* 04CC68 7F018138 8E680000 */ lw $t0, ($s3) +/* 04CC6C 7F01813C 3C098007 */ lui $t1, %hi(cheat_activated) +/* 04CC70 7F018140 240200B3 */ li $v0, 179 +/* 04CC74 7F018144 01284821 */ addu $t1, $t1, $t0 +/* 04CC78 7F018148 912996A0 */ lbu $t1, %lo(cheat_activated)($t1) +/* 04CC7C 7F01814C AFA20088 */ sw $v0, 0x88($sp) +/* 04CC80 7F018150 AFB50084 */ sw $s5, 0x84($sp) +/* 04CC84 7F018154 11200004 */ beqz $t1, .L7F018168 +/* 04CC88 7F018158 241100FF */ li $s1, 255 +/* 04CC8C 7F01815C 3C11A000 */ lui $s1, (0xA00000FF >> 16) # lui $s1, 0xa000 +/* 04CC90 7F018160 10000001 */ b .L7F018168 +/* 04CC94 7F018164 363100FF */ ori $s1, (0xA00000FF & 0xFFFF) # ori $s1, $s1, 0xff +.L7F018168: +/* 04CC98 7F018168 0C001107 */ jal get_video2_settings_txtClipW +/* 04CC9C 7F01816C 00000000 */ nop +/* 04CCA0 7F018170 00028400 */ sll $s0, $v0, 0x10 +/* 04CCA4 7F018174 00105403 */ sra $t2, $s0, 0x10 +/* 04CCA8 7F018178 0C00110B */ jal get_video2_settings_txtClipH +/* 04CCAC 7F01817C 01408025 */ move $s0, $t2 +/* 04CCB0 7F018180 8ECB0000 */ lw $t3, ($s6) +/* 04CCB4 7F018184 8EEC0000 */ lw $t4, ($s7) +/* 04CCB8 7F018188 02802025 */ move $a0, $s4 +/* 04CCBC 7F01818C 27A50088 */ addiu $a1, $sp, 0x88 +/* 04CCC0 7F018190 27A60084 */ addiu $a2, $sp, 0x84 +/* 04CCC4 7F018194 02403825 */ move $a3, $s2 +/* 04CCC8 7F018198 AFB10018 */ sw $s1, 0x18($sp) +/* 04CCCC 7F01819C AFB0001C */ sw $s0, 0x1c($sp) +/* 04CCD0 7F0181A0 AFA20020 */ sw $v0, 0x20($sp) +/* 04CCD4 7F0181A4 AFA00024 */ sw $zero, 0x24($sp) +/* 04CCD8 7F0181A8 AFA00028 */ sw $zero, 0x28($sp) +/* 04CCDC 7F0181AC AFAB0010 */ sw $t3, 0x10($sp) +/* 04CCE0 7F0181B0 0FC025D8 */ jal write_text_at_abs_coord +/* 04CCE4 7F0181B4 AFAC0014 */ sw $t4, 0x14($sp) +/* 04CCE8 7F0181B8 3C038003 */ lui $v1, %hi(D_8002B5DC) +/* 04CCEC 7F0181BC 8C63B5DC */ lw $v1, %lo(D_8002B5DC)($v1) +/* 04CCF0 7F0181C0 27DE0001 */ addiu $fp, $fp, 1 +/* 04CCF4 7F0181C4 26730004 */ addiu $s3, $s3, 4 +/* 04CCF8 7F0181C8 2861000D */ slti $at, $v1, 0xd +/* 04CCFC 7F0181CC 26B50014 */ addiu $s5, $s5, 0x14 +/* 04CD00 7F0181D0 14200003 */ bnez $at, .L7F0181E0 +/* 04CD04 7F0181D4 0040A025 */ move $s4, $v0 +/* 04CD08 7F0181D8 10000002 */ b .L7F0181E4 +/* 04CD0C 7F0181DC 2411000C */ li $s1, 12 +.L7F0181E0: +/* 04CD10 7F0181E0 00608825 */ move $s1, $v1 +.L7F0181E4: +/* 04CD14 7F0181E4 03D1082A */ slt $at, $fp, $s1 +/* 04CD18 7F0181E8 1420FF87 */ bnez $at, .L7F018008 +/* 04CD1C 7F0181EC 00000000 */ nop +.L7F0181F0: +/* 04CD20 7F0181F0 3C168004 */ lui $s6, %hi(ptrSecondFontTableLarge) +/* 04CD24 7F0181F4 3C178004 */ lui $s7, %hi(ptrFirstFontTableLarge) +/* 04CD28 7F0181F8 2861000D */ slti $at, $v1, 0xd +/* 04CD2C 7F0181FC 26F70EB4 */ addiu $s7, %lo(ptrFirstFontTableLarge) # addiu $s7, $s7, 0xeb4 +/* 04CD30 7F018200 1420007D */ bnez $at, .L7F0183F8 +/* 04CD34 7F018204 26D60EB8 */ addiu $s6, %lo(ptrSecondFontTableLarge) # addiu $s6, $s6, 0xeb8 +/* 04CD38 7F018208 246DFFF4 */ addiu $t5, $v1, -0xc +/* 04CD3C 7F01820C 19A0007A */ blez $t5, .L7F0183F8 +/* 04CD40 7F018210 0000F025 */ move $fp, $zero +/* 04CD44 7F018214 3C138007 */ lui $s3, %hi(dword_CODE_bss_800697F0) +/* 04CD48 7F018218 267397F0 */ addiu $s3, %lo(dword_CODE_bss_800697F0) # addiu $s3, $s3, -0x6810 +/* 04CD4C 7F01821C 24150035 */ li $s5, 53 +.L7F018220: +/* 04CD50 7F018220 0FC249DD */ jal cheatGetMenuTextPointer +/* 04CD54 7F018224 8E640030 */ lw $a0, 0x30($s3) +/* 04CD58 7F018228 8EEE0000 */ lw $t6, ($s7) +/* 04CD5C 7F01822C 00409025 */ move $s2, $v0 +/* 04CD60 7F018230 27A40080 */ addiu $a0, $sp, 0x80 +/* 04CD64 7F018234 27A5007C */ addiu $a1, $sp, 0x7c +/* 04CD68 7F018238 00403025 */ move $a2, $v0 +/* 04CD6C 7F01823C 8EC70000 */ lw $a3, ($s6) +/* 04CD70 7F018240 AFA00014 */ sw $zero, 0x14($sp) +/* 04CD74 7F018244 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04CD78 7F018248 AFAE0010 */ sw $t6, 0x10($sp) +/* 04CD7C 7F01824C 3C188003 */ lui $t8, %hi(D_8002B5E0) +/* 04CD80 7F018250 8F18B5E0 */ lw $t8, %lo(D_8002B5E0)($t8) +/* 04CD84 7F018254 240200DC */ li $v0, 220 +/* 04CD88 7F018258 27CF000C */ addiu $t7, $fp, 0xc +/* 04CD8C 7F01825C AFA20088 */ sw $v0, 0x88($sp) +/* 04CD90 7F018260 15F80012 */ bne $t7, $t8, .L7F0182AC +/* 04CD94 7F018264 AFB50084 */ sw $s5, 0x84($sp) +/* 04CD98 7F018268 0FC028E7 */ jal isontab3 +/* 04CD9C 7F01826C 00000000 */ nop +/* 04CDA0 7F018270 1440000E */ bnez $v0, .L7F0182AC +/* 04CDA4 7F018274 8FA30084 */ lw $v1, 0x84($sp) +/* 04CDA8 7F018278 8FA20088 */ lw $v0, 0x88($sp) +/* 04CDAC 7F01827C 8FB9007C */ lw $t9, 0x7c($sp) +/* 04CDB0 7F018280 2468000E */ addiu $t0, $v1, 0xe +/* 04CDB4 7F018284 24090032 */ li $t1, 50 +/* 04CDB8 7F018288 00593821 */ addu $a3, $v0, $t9 +/* 04CDBC 7F01828C 24E70005 */ addiu $a3, $a3, 5 +/* 04CDC0 7F018290 AFA90014 */ sw $t1, 0x14($sp) +/* 04CDC4 7F018294 AFA80010 */ sw $t0, 0x10($sp) +/* 04CDC8 7F018298 02802025 */ move $a0, $s4 +/* 04CDCC 7F01829C 2466FFFF */ addiu $a2, $v1, -1 +/* 04CDD0 7F0182A0 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04CDD4 7F0182A4 2445FFFE */ addiu $a1, $v0, -2 +/* 04CDD8 7F0182A8 0040A025 */ move $s4, $v0 +.L7F0182AC: +/* 04CDDC 7F0182AC 0C001107 */ jal get_video2_settings_txtClipW +/* 04CDE0 7F0182B0 00000000 */ nop +/* 04CDE4 7F0182B4 00028400 */ sll $s0, $v0, 0x10 +/* 04CDE8 7F0182B8 00105403 */ sra $t2, $s0, 0x10 +/* 04CDEC 7F0182BC 0C00110B */ jal get_video2_settings_txtClipH +/* 04CDF0 7F0182C0 01408025 */ move $s0, $t2 +/* 04CDF4 7F0182C4 8ECB0000 */ lw $t3, ($s6) +/* 04CDF8 7F0182C8 8EEC0000 */ lw $t4, ($s7) +/* 04CDFC 7F0182CC 240D00FF */ li $t5, 255 +/* 04CE00 7F0182D0 AFAD0018 */ sw $t5, 0x18($sp) +/* 04CE04 7F0182D4 02802025 */ move $a0, $s4 +/* 04CE08 7F0182D8 27A50088 */ addiu $a1, $sp, 0x88 +/* 04CE0C 7F0182DC 27A60084 */ addiu $a2, $sp, 0x84 +/* 04CE10 7F0182E0 02403825 */ move $a3, $s2 +/* 04CE14 7F0182E4 AFB0001C */ sw $s0, 0x1c($sp) +/* 04CE18 7F0182E8 AFA20020 */ sw $v0, 0x20($sp) +/* 04CE1C 7F0182EC AFA00024 */ sw $zero, 0x24($sp) +/* 04CE20 7F0182F0 AFA00028 */ sw $zero, 0x28($sp) +/* 04CE24 7F0182F4 AFAB0010 */ sw $t3, 0x10($sp) +/* 04CE28 7F0182F8 0FC025D8 */ jal write_text_at_abs_coord +/* 04CE2C 7F0182FC AFAC0014 */ sw $t4, 0x14($sp) +/* 04CE30 7F018300 8E6E0030 */ lw $t6, 0x30($s3) +/* 04CE34 7F018304 3C0F8007 */ lui $t7, %hi(cheat_activated) +/* 04CE38 7F018308 0040A025 */ move $s4, $v0 +/* 04CE3C 7F01830C 01EE7821 */ addu $t7, $t7, $t6 +/* 04CE40 7F018310 91EF96A0 */ lbu $t7, %lo(cheat_activated)($t7) +/* 04CE44 7F018314 34119C74 */ li $s1, 40052 +/* 04CE48 7F018318 11E00003 */ beqz $t7, .L7F018328 +/* 04CE4C 7F01831C 00000000 */ nop +/* 04CE50 7F018320 10000001 */ b .L7F018328 +/* 04CE54 7F018324 34119C73 */ li $s1, 40051 +.L7F018328: +/* 04CE58 7F018328 0FC30776 */ jal get_textptr_for_textID +/* 04CE5C 7F01832C 02202025 */ move $a0, $s1 +/* 04CE60 7F018330 8EF80000 */ lw $t8, ($s7) +/* 04CE64 7F018334 00409025 */ move $s2, $v0 +/* 04CE68 7F018338 27A40080 */ addiu $a0, $sp, 0x80 +/* 04CE6C 7F01833C 27A5007C */ addiu $a1, $sp, 0x7c +/* 04CE70 7F018340 00403025 */ move $a2, $v0 +/* 04CE74 7F018344 8EC70000 */ lw $a3, ($s6) +/* 04CE78 7F018348 AFA00014 */ sw $zero, 0x14($sp) +/* 04CE7C 7F01834C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04CE80 7F018350 AFB80010 */ sw $t8, 0x10($sp) +/* 04CE84 7F018354 8E790030 */ lw $t9, 0x30($s3) +/* 04CE88 7F018358 3C088007 */ lui $t0, %hi(cheat_activated) +/* 04CE8C 7F01835C 24020158 */ li $v0, 344 +/* 04CE90 7F018360 01194021 */ addu $t0, $t0, $t9 +/* 04CE94 7F018364 910896A0 */ lbu $t0, %lo(cheat_activated)($t0) +/* 04CE98 7F018368 AFA20088 */ sw $v0, 0x88($sp) +/* 04CE9C 7F01836C AFB50084 */ sw $s5, 0x84($sp) +/* 04CEA0 7F018370 11000004 */ beqz $t0, .L7F018384 +/* 04CEA4 7F018374 241100FF */ li $s1, 255 +/* 04CEA8 7F018378 3C11A000 */ lui $s1, (0xA00000FF >> 16) # lui $s1, 0xa000 +/* 04CEAC 7F01837C 10000001 */ b .L7F018384 +/* 04CEB0 7F018380 363100FF */ ori $s1, (0xA00000FF & 0xFFFF) # ori $s1, $s1, 0xff +.L7F018384: +/* 04CEB4 7F018384 0C001107 */ jal get_video2_settings_txtClipW +/* 04CEB8 7F018388 00000000 */ nop +/* 04CEBC 7F01838C 00028400 */ sll $s0, $v0, 0x10 +/* 04CEC0 7F018390 00104C03 */ sra $t1, $s0, 0x10 +/* 04CEC4 7F018394 0C00110B */ jal get_video2_settings_txtClipH +/* 04CEC8 7F018398 01208025 */ move $s0, $t1 +/* 04CECC 7F01839C 8ECA0000 */ lw $t2, ($s6) +/* 04CED0 7F0183A0 8EEB0000 */ lw $t3, ($s7) +/* 04CED4 7F0183A4 02802025 */ move $a0, $s4 +/* 04CED8 7F0183A8 27A50088 */ addiu $a1, $sp, 0x88 +/* 04CEDC 7F0183AC 27A60084 */ addiu $a2, $sp, 0x84 +/* 04CEE0 7F0183B0 02403825 */ move $a3, $s2 +/* 04CEE4 7F0183B4 AFB10018 */ sw $s1, 0x18($sp) +/* 04CEE8 7F0183B8 AFB0001C */ sw $s0, 0x1c($sp) +/* 04CEEC 7F0183BC AFA20020 */ sw $v0, 0x20($sp) +/* 04CEF0 7F0183C0 AFA00024 */ sw $zero, 0x24($sp) +/* 04CEF4 7F0183C4 AFA00028 */ sw $zero, 0x28($sp) +/* 04CEF8 7F0183C8 AFAA0010 */ sw $t2, 0x10($sp) +/* 04CEFC 7F0183CC 0FC025D8 */ jal write_text_at_abs_coord +/* 04CF00 7F0183D0 AFAB0014 */ sw $t3, 0x14($sp) +/* 04CF04 7F0183D4 3C0C8003 */ lui $t4, %hi(D_8002B5DC) +/* 04CF08 7F0183D8 8D8CB5DC */ lw $t4, %lo(D_8002B5DC)($t4) +/* 04CF0C 7F0183DC 27DE0001 */ addiu $fp, $fp, 1 +/* 04CF10 7F0183E0 26730004 */ addiu $s3, $s3, 4 +/* 04CF14 7F0183E4 258DFFF4 */ addiu $t5, $t4, -0xc +/* 04CF18 7F0183E8 03CD082A */ slt $at, $fp, $t5 +/* 04CF1C 7F0183EC 26B50014 */ addiu $s5, $s5, 0x14 +/* 04CF20 7F0183F0 1420FF8B */ bnez $at, .L7F018220 +/* 04CF24 7F0183F4 0040A025 */ move $s4, $v0 +.L7F0183F8: +/* 04CF28 7F0183F8 0FC0288E */ jal add_tab3_previous +/* 04CF2C 7F0183FC 02802025 */ move $a0, $s4 +/* 04CF30 7F018400 0FC027C2 */ jal load_draw_selected_icon_folder_select +/* 04CF34 7F018404 00402025 */ move $a0, $v0 +/* 04CF38 7F018408 8FBF005C */ lw $ra, 0x5c($sp) +/* 04CF3C 7F01840C 8FB00038 */ lw $s0, 0x38($sp) +/* 04CF40 7F018410 8FB1003C */ lw $s1, 0x3c($sp) +/* 04CF44 7F018414 8FB20040 */ lw $s2, 0x40($sp) +/* 04CF48 7F018418 8FB30044 */ lw $s3, 0x44($sp) +/* 04CF4C 7F01841C 8FB40048 */ lw $s4, 0x48($sp) +/* 04CF50 7F018420 8FB5004C */ lw $s5, 0x4c($sp) +/* 04CF54 7F018424 8FB60050 */ lw $s6, 0x50($sp) +/* 04CF58 7F018428 8FB70054 */ lw $s7, 0x54($sp) +/* 04CF5C 7F01842C 8FBE0058 */ lw $fp, 0x58($sp) +/* 04CF60 7F018430 03E00008 */ jr $ra +/* 04CF64 7F018434 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + + +void init_menu16_nocontroller(void) { + return; +} + +void update_menu16_nocontrollers(void) { + return; +} + +void interface_menu16_nocontrollers(void) { + return; +} + + + + + + + +#ifdef NONMATCHING +void constructor_menu16_nocontrollers(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel constructor_menu16_nocontrollers +/* 04CF80 7F018450 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 04CF84 7F018454 AFBF0034 */ sw $ra, 0x34($sp) +/* 04CF88 7F018458 0C002E9C */ jal get_num_controllers_plugged_in +/* 04CF8C 7F01845C AFA40060 */ sw $a0, 0x60($sp) +/* 04CF90 7F018460 304E0008 */ andi $t6, $v0, 8 +/* 04CF94 7F018464 00004025 */ move $t0, $zero +/* 04CF98 7F018468 11C00002 */ beqz $t6, .L7F018474 +/* 04CF9C 7F01846C 00401825 */ move $v1, $v0 +/* 04CFA0 7F018470 24080001 */ li $t0, 1 +.L7F018474: +/* 04CFA4 7F018474 306F0004 */ andi $t7, $v1, 4 +/* 04CFA8 7F018478 11E00002 */ beqz $t7, .L7F018484 +/* 04CFAC 7F01847C 30780002 */ andi $t8, $v1, 2 +/* 04CFB0 7F018480 25080001 */ addiu $t0, $t0, 1 +.L7F018484: +/* 04CFB4 7F018484 13000002 */ beqz $t8, .L7F018490 +/* 04CFB8 7F018488 8FA40060 */ lw $a0, 0x60($sp) +/* 04CFBC 7F01848C 25080001 */ addiu $t0, $t0, 1 +.L7F018490: +/* 04CFC0 7F018490 0FC07034 */ jal insert_imageDL +/* 04CFC4 7F018494 AFA80044 */ sw $t0, 0x44($sp) +/* 04CFC8 7F018498 0FC2B366 */ jal microcode_constructor +/* 04CFCC 7F01849C 00402025 */ move $a0, $v0 +/* 04CFD0 7F0184A0 8FA80044 */ lw $t0, 0x44($sp) +/* 04CFD4 7F0184A4 AFA20060 */ sw $v0, 0x60($sp) +/* 04CFD8 7F0184A8 24010001 */ li $at, 1 +/* 04CFDC 7F0184AC 51000007 */ beql $t0, $zero, .L7F0184CC +/* 04CFE0 7F0184B0 34049C76 */ li $a0, 40054 +/* 04CFE4 7F0184B4 11010004 */ beq $t0, $at, .L7F0184C8 +/* 04CFE8 7F0184B8 24010002 */ li $at, 2 +/* 04CFEC 7F0184BC 11010002 */ beq $t0, $at, .L7F0184C8 +/* 04CFF0 7F0184C0 24010003 */ li $at, 3 +/* 04CFF4 7F0184C4 15010005 */ bne $t0, $at, .L7F0184DC +.L7F0184C8: +/* 04CFF8 7F0184C8 34049C76 */ li $a0, 40054 +.L7F0184CC: +/* 04CFFC 7F0184CC 0FC30776 */ jal get_textptr_for_textID +/* 04D000 7F0184D0 AFA80044 */ sw $t0, 0x44($sp) +/* 04D004 7F0184D4 8FA80044 */ lw $t0, 0x44($sp) +/* 04D008 7F0184D8 AFA2004C */ sw $v0, 0x4c($sp) +.L7F0184DC: +/* 04D00C 7F0184DC 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 04D010 7F0184E0 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 04D014 7F0184E4 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 04D018 7F0184E8 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04D01C 7F0184EC 27A4005C */ addiu $a0, $sp, 0x5c +/* 04D020 7F0184F0 27A50058 */ addiu $a1, $sp, 0x58 +/* 04D024 7F0184F4 8FA6004C */ lw $a2, 0x4c($sp) +/* 04D028 7F0184F8 AFA00014 */ sw $zero, 0x14($sp) +/* 04D02C 7F0184FC AFA80044 */ sw $t0, 0x44($sp) +/* 04D030 7F018500 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04D034 7F018504 AFB90010 */ sw $t9, 0x10($sp) +/* 04D038 7F018508 8FA90058 */ lw $t1, 0x58($sp) +/* 04D03C 7F01850C 8FAD005C */ lw $t5, 0x5c($sp) +/* 04D040 7F018510 240B00DC */ li $t3, 220 +/* 04D044 7F018514 240F0099 */ li $t7, 153 +/* 04D048 7F018518 00095043 */ sra $t2, $t1, 1 +/* 04D04C 7F01851C 000D7043 */ sra $t6, $t5, 1 +/* 04D050 7F018520 016A6023 */ subu $t4, $t3, $t2 +/* 04D054 7F018524 01EEC023 */ subu $t8, $t7, $t6 +/* 04D058 7F018528 AFAC0054 */ sw $t4, 0x54($sp) +/* 04D05C 7F01852C 0C001107 */ jal get_video2_settings_txtClipW +/* 04D060 7F018530 AFB80050 */ sw $t8, 0x50($sp) +/* 04D064 7F018534 0C00110B */ jal get_video2_settings_txtClipH +/* 04D068 7F018538 A7A2003C */ sh $v0, 0x3c($sp) +/* 04D06C 7F01853C 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 04D070 7F018540 3C098004 */ lui $t1, %hi(ptrFirstFontTableLarge) +/* 04D074 7F018544 8D290EB4 */ lw $t1, %lo(ptrFirstFontTableLarge)($t1) +/* 04D078 7F018548 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 04D07C 7F01854C 87AA003C */ lh $t2, 0x3c($sp) +/* 04D080 7F018550 240BFFFF */ li $t3, -1 +/* 04D084 7F018554 AFAB0018 */ sw $t3, 0x18($sp) +/* 04D088 7F018558 8FA40060 */ lw $a0, 0x60($sp) +/* 04D08C 7F01855C 27A50054 */ addiu $a1, $sp, 0x54 +/* 04D090 7F018560 27A60050 */ addiu $a2, $sp, 0x50 +/* 04D094 7F018564 8FA7004C */ lw $a3, 0x4c($sp) +/* 04D098 7F018568 AFA20020 */ sw $v0, 0x20($sp) +/* 04D09C 7F01856C AFA00024 */ sw $zero, 0x24($sp) +/* 04D0A0 7F018570 AFA00028 */ sw $zero, 0x28($sp) +/* 04D0A4 7F018574 AFA90014 */ sw $t1, 0x14($sp) +/* 04D0A8 7F018578 AFB90010 */ sw $t9, 0x10($sp) +/* 04D0AC 7F01857C 0FC2B6AF */ jal en_text_write_stuff +/* 04D0B0 7F018580 AFAA001C */ sw $t2, 0x1c($sp) +/* 04D0B4 7F018584 8FA80044 */ lw $t0, 0x44($sp) +/* 04D0B8 7F018588 AFA20060 */ sw $v0, 0x60($sp) +/* 04D0BC 7F01858C 24010001 */ li $at, 1 +/* 04D0C0 7F018590 11000007 */ beqz $t0, .L7F0185B0 +/* 04D0C4 7F018594 00000000 */ nop +/* 04D0C8 7F018598 11010005 */ beq $t0, $at, .L7F0185B0 +/* 04D0CC 7F01859C 24010002 */ li $at, 2 +/* 04D0D0 7F0185A0 11010003 */ beq $t0, $at, .L7F0185B0 +/* 04D0D4 7F0185A4 24010003 */ li $at, 3 +/* 04D0D8 7F0185A8 15010004 */ bne $t0, $at, .L7F0185BC +/* 04D0DC 7F0185AC 00000000 */ nop +.L7F0185B0: +/* 04D0E0 7F0185B0 0FC30776 */ jal get_textptr_for_textID +/* 04D0E4 7F0185B4 34049C77 */ li $a0, 40055 +/* 04D0E8 7F0185B8 AFA2004C */ sw $v0, 0x4c($sp) +.L7F0185BC: +/* 04D0EC 7F0185BC 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) +/* 04D0F0 7F0185C0 8D8C0EB4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 04D0F4 7F0185C4 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 04D0F8 7F0185C8 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04D0FC 7F0185CC 27A4005C */ addiu $a0, $sp, 0x5c +/* 04D100 7F0185D0 27A50058 */ addiu $a1, $sp, 0x58 +/* 04D104 7F0185D4 8FA6004C */ lw $a2, 0x4c($sp) +/* 04D108 7F0185D8 AFA00014 */ sw $zero, 0x14($sp) +/* 04D10C 7F0185DC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04D110 7F0185E0 AFAC0010 */ sw $t4, 0x10($sp) +/* 04D114 7F0185E4 8FAD0058 */ lw $t5, 0x58($sp) +/* 04D118 7F0185E8 8FB9005C */ lw $t9, 0x5c($sp) +/* 04D11C 7F0185EC 240E00DC */ li $t6, 220 +/* 04D120 7F0185F0 240B00B1 */ li $t3, 177 +/* 04D124 7F0185F4 000D7843 */ sra $t7, $t5, 1 +/* 04D128 7F0185F8 00194843 */ sra $t1, $t9, 1 +/* 04D12C 7F0185FC 01CFC023 */ subu $t8, $t6, $t7 +/* 04D130 7F018600 01695023 */ subu $t2, $t3, $t1 +/* 04D134 7F018604 AFB80054 */ sw $t8, 0x54($sp) +/* 04D138 7F018608 0C001107 */ jal get_video2_settings_txtClipW +/* 04D13C 7F01860C AFAA0050 */ sw $t2, 0x50($sp) +/* 04D140 7F018610 0C00110B */ jal get_video2_settings_txtClipH +/* 04D144 7F018614 A7A2003C */ sh $v0, 0x3c($sp) +/* 04D148 7F018618 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) +/* 04D14C 7F01861C 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04D150 7F018620 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04D154 7F018624 8D8C0EB8 */ lw $t4, %lo(ptrSecondFontTableLarge)($t4) +/* 04D158 7F018628 87AF003C */ lh $t7, 0x3c($sp) +/* 04D15C 7F01862C 240EFFFF */ li $t6, -1 +/* 04D160 7F018630 AFAE0018 */ sw $t6, 0x18($sp) +/* 04D164 7F018634 8FA40060 */ lw $a0, 0x60($sp) +/* 04D168 7F018638 27A50054 */ addiu $a1, $sp, 0x54 +/* 04D16C 7F01863C 27A60050 */ addiu $a2, $sp, 0x50 +/* 04D170 7F018640 8FA7004C */ lw $a3, 0x4c($sp) +/* 04D174 7F018644 AFA20020 */ sw $v0, 0x20($sp) +/* 04D178 7F018648 AFA00024 */ sw $zero, 0x24($sp) +/* 04D17C 7F01864C AFA00028 */ sw $zero, 0x28($sp) +/* 04D180 7F018650 AFAD0014 */ sw $t5, 0x14($sp) +/* 04D184 7F018654 AFAC0010 */ sw $t4, 0x10($sp) +/* 04D188 7F018658 0FC2B6AF */ jal en_text_write_stuff +/* 04D18C 7F01865C AFAF001C */ sw $t7, 0x1c($sp) +/* 04D190 7F018660 8FBF0034 */ lw $ra, 0x34($sp) +/* 04D194 7F018664 27BD0060 */ addiu $sp, $sp, 0x60 +/* 04D198 7F018668 03E00008 */ jr $ra +/* 04D19C 7F01866C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel constructor_menu16_nocontrollers +/* 04D070 7F018500 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 04D074 7F018504 AFBF0034 */ sw $ra, 0x34($sp) +/* 04D078 7F018508 0C002EA0 */ jal get_num_controllers_plugged_in +/* 04D07C 7F01850C AFA40060 */ sw $a0, 0x60($sp) +/* 04D080 7F018510 304E0008 */ andi $t6, $v0, 8 +/* 04D084 7F018514 00004025 */ move $t0, $zero +/* 04D088 7F018518 11C00002 */ beqz $t6, .L7F018524 +/* 04D08C 7F01851C 00401825 */ move $v1, $v0 +/* 04D090 7F018520 24080001 */ li $t0, 1 +.L7F018524: +/* 04D094 7F018524 306F0004 */ andi $t7, $v1, 4 +/* 04D098 7F018528 11E00002 */ beqz $t7, .L7F018534 +/* 04D09C 7F01852C 30780002 */ andi $t8, $v1, 2 +/* 04D0A0 7F018530 25080001 */ addiu $t0, $t0, 1 +.L7F018534: +/* 04D0A4 7F018534 13000002 */ beqz $t8, .L7F018540 +/* 04D0A8 7F018538 8FA40060 */ lw $a0, 0x60($sp) +/* 04D0AC 7F01853C 25080001 */ addiu $t0, $t0, 1 +.L7F018540: +/* 04D0B0 7F018540 0FC070A0 */ jal insert_imageDL +/* 04D0B4 7F018544 AFA80044 */ sw $t0, 0x44($sp) +/* 04D0B8 7F018548 0FC2B652 */ jal microcode_constructor +/* 04D0BC 7F01854C 00402025 */ move $a0, $v0 +/* 04D0C0 7F018550 8FA80044 */ lw $t0, 0x44($sp) +/* 04D0C4 7F018554 AFA20060 */ sw $v0, 0x60($sp) +/* 04D0C8 7F018558 24010001 */ li $at, 1 +/* 04D0CC 7F01855C 11000007 */ beqz $t0, .L7F01857C +/* 04D0D0 7F018560 34049C76 */ li $a0, 40054 +/* 04D0D4 7F018564 11010005 */ beq $t0, $at, .L7F01857C +/* 04D0D8 7F018568 24010002 */ li $at, 2 +/* 04D0DC 7F01856C 11010003 */ beq $t0, $at, .L7F01857C +/* 04D0E0 7F018570 24010003 */ li $at, 3 +/* 04D0E4 7F018574 15010005 */ bne $t0, $at, .L7F01858C +/* 04D0E8 7F018578 00000000 */ nop +.L7F01857C: +/* 04D0EC 7F01857C 0FC30AA2 */ jal get_textptr_for_textID +/* 04D0F0 7F018580 AFA80044 */ sw $t0, 0x44($sp) +/* 04D0F4 7F018584 8FA80044 */ lw $t0, 0x44($sp) +/* 04D0F8 7F018588 AFA2004C */ sw $v0, 0x4c($sp) +.L7F01858C: +/* 04D0FC 7F01858C 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) # $t9, 0x8004 +/* 04D100 7F018590 8F390EE4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 04D104 7F018594 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) # $a3, 0x8004 +/* 04D108 7F018598 8CE70EE8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04D10C 7F01859C 27A4005C */ addiu $a0, $sp, 0x5c +/* 04D110 7F0185A0 27A50058 */ addiu $a1, $sp, 0x58 +/* 04D114 7F0185A4 8FA6004C */ lw $a2, 0x4c($sp) +/* 04D118 7F0185A8 AFA00014 */ sw $zero, 0x14($sp) +/* 04D11C 7F0185AC AFA80044 */ sw $t0, 0x44($sp) +/* 04D120 7F0185B0 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 04D124 7F0185B4 AFB90010 */ sw $t9, 0x10($sp) +/* 04D128 7F0185B8 8FA90058 */ lw $t1, 0x58($sp) +/* 04D12C 7F0185BC 8FAD005C */ lw $t5, 0x5c($sp) +/* 04D130 7F0185C0 3C198005 */ lui $t9, %hi(j_text_trigger) # $t9, 0x8005 +/* 04D134 7F0185C4 8F398500 */ lw $t9, %lo(j_text_trigger)($t9) +/* 04D138 7F0185C8 240B00DC */ li $t3, 220 +/* 04D13C 7F0185CC 240F0099 */ li $t7, 153 +/* 04D140 7F0185D0 00095043 */ sra $t2, $t1, 1 +/* 04D144 7F0185D4 000D7043 */ sra $t6, $t5, 1 +/* 04D148 7F0185D8 016A6023 */ subu $t4, $t3, $t2 +/* 04D14C 7F0185DC 01EEC023 */ subu $t8, $t7, $t6 +/* 04D150 7F0185E0 8FA80044 */ lw $t0, 0x44($sp) +/* 04D154 7F0185E4 AFAC0054 */ sw $t4, 0x54($sp) +/* 04D158 7F0185E8 1320001D */ beqz $t9, .L7F018660 +/* 04D15C 7F0185EC AFB80050 */ sw $t8, 0x50($sp) +/* 04D160 7F0185F0 0C001107 */ jal get_video2_settings_txtClipW +/* 04D164 7F0185F4 AFA80044 */ sw $t0, 0x44($sp) +/* 04D168 7F0185F8 0C00110B */ jal get_video2_settings_txtClipH +/* 04D16C 7F0185FC A7A2003C */ sh $v0, 0x3c($sp) +/* 04D170 7F018600 3C098004 */ lui $t1, %hi(ptrSecondFontTableLarge) # $t1, 0x8004 +/* 04D174 7F018604 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) # $t3, 0x8004 +/* 04D178 7F018608 8D6B0EE4 */ lw $t3, %lo(ptrFirstFontTableLarge)($t3) +/* 04D17C 7F01860C 8D290EE8 */ lw $t1, %lo(ptrSecondFontTableLarge)($t1) +/* 04D180 7F018610 87AD003C */ lh $t5, 0x3c($sp) +/* 04D184 7F018614 3C0C0080 */ lui $t4, (0x008000FF >> 16) # lui $t4, 0x80 +/* 04D188 7F018618 358C00FF */ ori $t4, (0x008000FF & 0xFFFF) # ori $t4, $t4, 0xff +/* 04D18C 7F01861C 240AFFFF */ li $t2, -1 +/* 04D190 7F018620 AFAA0018 */ sw $t2, 0x18($sp) +/* 04D194 7F018624 AFAC001C */ sw $t4, 0x1c($sp) +/* 04D198 7F018628 8FA40060 */ lw $a0, 0x60($sp) +/* 04D19C 7F01862C 27A50054 */ addiu $a1, $sp, 0x54 +/* 04D1A0 7F018630 27A60050 */ addiu $a2, $sp, 0x50 +/* 04D1A4 7F018634 8FA7004C */ lw $a3, 0x4c($sp) +/* 04D1A8 7F018638 AFA20024 */ sw $v0, 0x24($sp) +/* 04D1AC 7F01863C AFA00028 */ sw $zero, 0x28($sp) +/* 04D1B0 7F018640 AFA0002C */ sw $zero, 0x2c($sp) +/* 04D1B4 7F018644 AFAB0014 */ sw $t3, 0x14($sp) +/* 04D1B8 7F018648 AFA90010 */ sw $t1, 0x10($sp) +/* 04D1BC 7F01864C 0FC2BCA7 */ jal jp_text_write_stuff +/* 04D1C0 7F018650 AFAD0020 */ sw $t5, 0x20($sp) +/* 04D1C4 7F018654 8FA80044 */ lw $t0, 0x44($sp) +/* 04D1C8 7F018658 10000019 */ b .L7F0186C0 +/* 04D1CC 7F01865C AFA20060 */ sw $v0, 0x60($sp) +.L7F018660: +/* 04D1D0 7F018660 0C001107 */ jal get_video2_settings_txtClipW +/* 04D1D4 7F018664 AFA80044 */ sw $t0, 0x44($sp) +/* 04D1D8 7F018668 0C00110B */ jal get_video2_settings_txtClipH +/* 04D1DC 7F01866C A7A2003C */ sh $v0, 0x3c($sp) +/* 04D1E0 7F018670 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableLarge) # $t7, 0x8004 +/* 04D1E4 7F018674 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) # $t6, 0x8004 +/* 04D1E8 7F018678 8DCE0EE4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 04D1EC 7F01867C 8DEF0EE8 */ lw $t7, %lo(ptrSecondFontTableLarge)($t7) +/* 04D1F0 7F018680 87B9003C */ lh $t9, 0x3c($sp) +/* 04D1F4 7F018684 2418FFFF */ li $t8, -1 +/* 04D1F8 7F018688 AFB80018 */ sw $t8, 0x18($sp) +/* 04D1FC 7F01868C 8FA40060 */ lw $a0, 0x60($sp) +/* 04D200 7F018690 27A50054 */ addiu $a1, $sp, 0x54 +/* 04D204 7F018694 27A60050 */ addiu $a2, $sp, 0x50 +/* 04D208 7F018698 8FA7004C */ lw $a3, 0x4c($sp) +/* 04D20C 7F01869C AFA20020 */ sw $v0, 0x20($sp) +/* 04D210 7F0186A0 AFA00024 */ sw $zero, 0x24($sp) +/* 04D214 7F0186A4 AFA00028 */ sw $zero, 0x28($sp) +/* 04D218 7F0186A8 AFAE0014 */ sw $t6, 0x14($sp) +/* 04D21C 7F0186AC AFAF0010 */ sw $t7, 0x10($sp) +/* 04D220 7F0186B0 0FC2B99B */ jal en_text_write_stuff +/* 04D224 7F0186B4 AFB9001C */ sw $t9, 0x1c($sp) +/* 04D228 7F0186B8 8FA80044 */ lw $t0, 0x44($sp) +/* 04D22C 7F0186BC AFA20060 */ sw $v0, 0x60($sp) +.L7F0186C0: +/* 04D230 7F0186C0 11000007 */ beqz $t0, .L7F0186E0 +/* 04D234 7F0186C4 24010001 */ li $at, 1 +/* 04D238 7F0186C8 11010005 */ beq $t0, $at, .L7F0186E0 +/* 04D23C 7F0186CC 24010002 */ li $at, 2 +/* 04D240 7F0186D0 11010003 */ beq $t0, $at, .L7F0186E0 +/* 04D244 7F0186D4 24010003 */ li $at, 3 +/* 04D248 7F0186D8 15010004 */ bne $t0, $at, .L7F0186EC +/* 04D24C 7F0186DC 00000000 */ nop +.L7F0186E0: +/* 04D250 7F0186E0 0FC30AA2 */ jal get_textptr_for_textID +/* 04D254 7F0186E4 34049C77 */ li $a0, 40055 +/* 04D258 7F0186E8 AFA2004C */ sw $v0, 0x4c($sp) +.L7F0186EC: +/* 04D25C 7F0186EC 3C098004 */ lui $t1, %hi(ptrFirstFontTableLarge) # $t1, 0x8004 +/* 04D260 7F0186F0 8D290EE4 */ lw $t1, %lo(ptrFirstFontTableLarge)($t1) +/* 04D264 7F0186F4 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) # $a3, 0x8004 +/* 04D268 7F0186F8 8CE70EE8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04D26C 7F0186FC 27A4005C */ addiu $a0, $sp, 0x5c +/* 04D270 7F018700 27A50058 */ addiu $a1, $sp, 0x58 +/* 04D274 7F018704 8FA6004C */ lw $a2, 0x4c($sp) +/* 04D278 7F018708 AFA00014 */ sw $zero, 0x14($sp) +/* 04D27C 7F01870C 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 04D280 7F018710 AFA90010 */ sw $t1, 0x10($sp) +/* 04D284 7F018714 8FAB0058 */ lw $t3, 0x58($sp) +/* 04D288 7F018718 8FAF005C */ lw $t7, 0x5c($sp) +/* 04D28C 7F01871C 3C098005 */ lui $t1, %hi(j_text_trigger) # $t1, 0x8005 +/* 04D290 7F018720 8D298500 */ lw $t1, %lo(j_text_trigger)($t1) +/* 04D294 7F018724 240C00DC */ li $t4, 220 +/* 04D298 7F018728 241800B1 */ li $t8, 177 +/* 04D29C 7F01872C 000B5043 */ sra $t2, $t3, 1 +/* 04D2A0 7F018730 000F7043 */ sra $t6, $t7, 1 +/* 04D2A4 7F018734 018A6823 */ subu $t5, $t4, $t2 +/* 04D2A8 7F018738 030EC823 */ subu $t9, $t8, $t6 +/* 04D2AC 7F01873C AFAD0054 */ sw $t5, 0x54($sp) +/* 04D2B0 7F018740 1120001C */ beqz $t1, .L7F0187B4 +/* 04D2B4 7F018744 AFB90050 */ sw $t9, 0x50($sp) +/* 04D2B8 7F018748 0C001107 */ jal get_video2_settings_txtClipW +/* 04D2BC 7F01874C 00000000 */ nop +/* 04D2C0 7F018750 0C00110B */ jal get_video2_settings_txtClipH +/* 04D2C4 7F018754 A7A2003C */ sh $v0, 0x3c($sp) +/* 04D2C8 7F018758 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) # $t3, 0x8004 +/* 04D2CC 7F01875C 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) # $t4, 0x8004 +/* 04D2D0 7F018760 8D8C0EE4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 04D2D4 7F018764 8D6B0EE8 */ lw $t3, %lo(ptrSecondFontTableLarge)($t3) +/* 04D2D8 7F018768 87AF003C */ lh $t7, 0x3c($sp) +/* 04D2DC 7F01876C 3C0D0080 */ lui $t5, (0x008000FF >> 16) # lui $t5, 0x80 +/* 04D2E0 7F018770 35AD00FF */ ori $t5, (0x008000FF & 0xFFFF) # ori $t5, $t5, 0xff +/* 04D2E4 7F018774 240AFFFF */ li $t2, -1 +/* 04D2E8 7F018778 AFAA0018 */ sw $t2, 0x18($sp) +/* 04D2EC 7F01877C AFAD001C */ sw $t5, 0x1c($sp) +/* 04D2F0 7F018780 8FA40060 */ lw $a0, 0x60($sp) +/* 04D2F4 7F018784 27A50054 */ addiu $a1, $sp, 0x54 +/* 04D2F8 7F018788 27A60050 */ addiu $a2, $sp, 0x50 +/* 04D2FC 7F01878C 8FA7004C */ lw $a3, 0x4c($sp) +/* 04D300 7F018790 AFA20024 */ sw $v0, 0x24($sp) +/* 04D304 7F018794 AFA00028 */ sw $zero, 0x28($sp) +/* 04D308 7F018798 AFA0002C */ sw $zero, 0x2c($sp) +/* 04D30C 7F01879C AFAC0014 */ sw $t4, 0x14($sp) +/* 04D310 7F0187A0 AFAB0010 */ sw $t3, 0x10($sp) +/* 04D314 7F0187A4 0FC2BCA7 */ jal jp_text_write_stuff +/* 04D318 7F0187A8 AFAF0020 */ sw $t7, 0x20($sp) +/* 04D31C 7F0187AC 10000018 */ b .L7F018810 +/* 04D320 7F0187B0 AFA20060 */ sw $v0, 0x60($sp) +.L7F0187B4: +/* 04D324 7F0187B4 0C001107 */ jal get_video2_settings_txtClipW +/* 04D328 7F0187B8 00000000 */ nop +/* 04D32C 7F0187BC 0C00110B */ jal get_video2_settings_txtClipH +/* 04D330 7F0187C0 A7A2003C */ sh $v0, 0x3c($sp) +/* 04D334 7F0187C4 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) # $t8, 0x8004 +/* 04D338 7F0187C8 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) # $t6, 0x8004 +/* 04D33C 7F0187CC 8DCE0EE4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 04D340 7F0187D0 8F180EE8 */ lw $t8, %lo(ptrSecondFontTableLarge)($t8) +/* 04D344 7F0187D4 87A9003C */ lh $t1, 0x3c($sp) +/* 04D348 7F0187D8 2419FFFF */ li $t9, -1 +/* 04D34C 7F0187DC AFB90018 */ sw $t9, 0x18($sp) +/* 04D350 7F0187E0 8FA40060 */ lw $a0, 0x60($sp) +/* 04D354 7F0187E4 27A50054 */ addiu $a1, $sp, 0x54 +/* 04D358 7F0187E8 27A60050 */ addiu $a2, $sp, 0x50 +/* 04D35C 7F0187EC 8FA7004C */ lw $a3, 0x4c($sp) +/* 04D360 7F0187F0 AFA20020 */ sw $v0, 0x20($sp) +/* 04D364 7F0187F4 AFA00024 */ sw $zero, 0x24($sp) +/* 04D368 7F0187F8 AFA00028 */ sw $zero, 0x28($sp) +/* 04D36C 7F0187FC AFAE0014 */ sw $t6, 0x14($sp) +/* 04D370 7F018800 AFB80010 */ sw $t8, 0x10($sp) +/* 04D374 7F018804 0FC2B99B */ jal en_text_write_stuff +/* 04D378 7F018808 AFA9001C */ sw $t1, 0x1c($sp) +/* 04D37C 7F01880C AFA20060 */ sw $v0, 0x60($sp) +.L7F018810: +/* 04D380 7F018810 8FBF0034 */ lw $ra, 0x34($sp) +/* 04D384 7F018814 8FA20060 */ lw $v0, 0x60($sp) +/* 04D388 7F018818 27BD0060 */ addiu $sp, $sp, 0x60 +/* 04D38C 7F01881C 03E00008 */ jr $ra +/* 04D390 7F018820 00000000 */ nop +) +#endif + +#endif + +#ifdef NONMATCHING +void do_extended_cast_display(u32 flag) +{ + if (flag != FALSE) { + do_not_play_intro_movie = 0; + full_actor_intro = flag; + return; + } + do_not_play_intro_movie = 1; + full_actor_intro = flag; +} +#else +GLOBAL_ASM( +.text +glabel do_extended_cast_display +/* 04D1A0 7F018670 3C018003 */ lui $at, %hi(full_actor_intro) +/* 04D1A4 7F018674 10800004 */ beqz $a0, .L7F018688 +/* 04D1A8 7F018678 AC24B5FC */ sw $a0, %lo(full_actor_intro)($at) +/* 04D1AC 7F01867C 3C018003 */ lui $at, %hi(do_not_play_intro_movie) +/* 04D1B0 7F018680 03E00008 */ jr $ra +/* 04D1B4 7F018684 AC20B5E8 */ sw $zero, %lo(do_not_play_intro_movie)($at) +.L7F018688: +/* 04D1B8 7F018688 240E0001 */ li $t6, 1 +/* 04D1BC 7F01868C 3C018003 */ lui $at, %hi(do_not_play_intro_movie) +/* 04D1C0 7F018690 AC2EB5E8 */ sw $t6, %lo(do_not_play_intro_movie)($at) +/* 04D1C4 7F018694 03E00008 */ jr $ra +/* 04D1C8 7F018698 00000000 */ nop +) +#endif + + + + + + +#ifdef NONMATCHING +void init_menu18_displaycast(void) +{ + object_header *objheader; + u32 uVar2; + u32 uVar3; + int iVar4; + s32 lVar1; + u32 BVar5; + int iVar6; + s32 extraout_a2_lo; + s32 extraout_a2_lo_00; + s32 extraout_a3_lo; + int *piVar7; + int *piVar8; + int *piVar9; + int *piVar10; + float fVar11; + f32 scale; + f32 scale_00; + float extraout_f12; + f32 extraout_f12_00; + float extraout_f12_01; + f32 extraout_f14; + float extraout_f14_00; + int local_8c [10]; + int rifles [6]; + object_header *headHeader; + HEADS headID; + BODIES bodyID; + int aiStack40 [4]; + float local_18; + s32 local_14; + s32 local_10; + undefined *local_8; + undefined *local_4; + + local_4 = ptr_logo_and_walletbond_DL; + local_18 = dword_8002BA2C; + local_14 = DAT_8002ba30; + local_10 = DAT_8002ba34; + headHeader = NULL; + uVar2 = get_random_value(); + if ((full_actor_intro != FALSE) && (do_not_play_intro_movie == 0)) { + musicTrack1Vol(0x7fff); + music1_playing = FALSE; + musicTrack1Play(M_INTRO); + } + intro_animation_count = 0; + if (-1 < intro_animation_table[0].animID) { + intro_animation_count = 1; + while (-1 < intro_animation_table[intro_animation_count].animID) { + intro_animation_count += 1; + } + } + randomly_selected_intro_animation = get_random_value(); + randomly_selected_intro_animation %= intro_animation_count; + bodyID = intro_char_table[do_not_play_intro_movie].body; + headID = intro_char_table[do_not_play_intro_movie].head; + iVar6 = intro_animation_table[randomly_selected_intro_animation].camera_preset; + if (intro_animation_count == 0) { + trap(0x1c00); + } + if (bodyID == BODY_Special_Operations_Uniform) { + uVar3 = get_random_value(); + if (true) { + switch(uVar3 % 5) { + case 1: + headID = HEAD_Male_Pierce_Bond_2; + bodyID = BODY_Formal_Wear; + break; + case 2: + headID = HEAD_Male_Pierce_Bond_2; + bodyID = BODY_Jungle_Fatigues; + break; + case 3: + headID = HEAD_Male_Pierce_Bond_2; + bodyID = BODY_Parka; + break; + case 4: + headID = HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT; + bodyID = BODY_Tuxedo; + } + } + } + else { + if (bodyID == BODY_Natalya_Skirt) { + uVar3 = get_random_value(); + if ((uVar3 & 1) != 0) { + bodyID = BODY_Natalya_Jungle_Fatigues; + } + } + else { + if ((bodyID == BODY_Trevelyan_006) && (uVar3 = get_random_value(), (uVar3 & 1) != 0)) { + bodyID = BODY_Trevelyan_Janus; + } + } + } + if (headID == 0xffffff9f) { + headID = get_random_head(bodyID); + } + local_8 = &DAT_00031160; + proc_7F0D2448(((u32)(local_4 + 0x3119f) | 0x3f) ^ 0x3f,0x1b8,0x14a); + proc_7F0CBAF4(aiStack40,(int)local_4,0x19000); + objheader = c_item_entries[bodyID].header; + local_4 = local_4 + 0x19000; + local_8 = local_8 + -0x19000; + load_object_fill_header + (objheader,(int *)c_item_entries[bodyID].filename,(int)local_4,(int)local_8, + (int)aiStack40); + iVar4 = proc_7F0BD188((u8 *)c_item_entries[bodyID].filename); + uVar3 = (iVar4 + 0x3fU | 0x3f) ^ 0x3f; + local_8 = local_8 + -uVar3; + local_4 = local_4 + uVar3; + if (-1 < (int)headID) { + headHeader = c_item_entries[headID].header; + load_object_fill_header + (headHeader,(int *)c_item_entries[headID].filename,(int)local_4,(int)local_8, + (int)aiStack40); + iVar4 = proc_7F0BD188((u8 *)c_item_entries[headID].filename); + uVar3 = (iVar4 + 0x3fU | 0x3f) ^ 0x3f; + local_8 = local_8 + -uVar3; + local_4 = local_4 + uVar3; + } + objinstance = (undefined *)setup_chr_instance(bodyID,headID,objheader,headHeader,0); + set_obj_instance_controller_scale((int)objinstance,scale); + if (iVar6 == 0) { + ptrobjinstance = NULL; + } + else { + if (iVar6 == 2) { + rifles[0] = random_rifles_in_intro[0]; + rifles[1] = random_rifles_in_intro[1]; + rifles[3] = random_rifles_in_intro[3]; + rifles[2] = random_rifles_in_intro[2]; + rifles[4] = random_rifles_in_intro[4]; + rifles[5] = random_rifles_in_intro[5]; + uVar3 = get_random_value(); + iVar6 = rifles[uVar3 % 6]; + } + else { + piVar7 = random_pistols_in_intro; + piVar9 = local_8c; + do { + piVar8 = piVar7 + 3; + piVar10 = piVar9 + 3; + *piVar9 = *piVar7; + piVar9[1] = piVar7[1]; + piVar9[2] = piVar7[2]; + piVar7 = piVar8; + piVar9 = piVar10; + } while (piVar8 != random_pistols_in_intro + 9); + *piVar10 = random_pistols_in_intro[9]; + uVar3 = get_random_value(); + iVar6 = local_8c[uVar3 % 10]; + } + if ((iVar6 == 0xbe) && (lVar1 = check_cradle_completed_any_folder(), lVar1 == 0)) { + iVar6 = 0xbf; + } + if ((iVar6 == 0xbb) && (BVar5 = check_aztec_completed_any_folder_secret_00(), BVar5 == FALSE)) { + iVar6 = 0xbf; + } + if ((iVar6 == 0xd0) && (BVar5 = check_egypt_completed_any_folder_00(), BVar5 == FALSE)) { + iVar6 = 0xbf; + } + objheader = (object_header *)PitemZ_entries[iVar6].header; + load_object_fill_header + (objheader,(int *)PitemZ_entries[iVar6].filename,(int)local_4,(int)local_8, + (int)aiStack40); + proc_7F0BD188((u8 *)PitemZ_entries[iVar6].filename); + set_objuse_flag_compute_grp_nums_set_obj_loaded(objheader); + ptrobjinstance = (undefined *)get_obj_instance_controller_for_header((PitemZ_header *)objheader) + ; + set_obj_instance_controller_scale((int)ptrobjinstance,scale_00); + iVar6 = 3; + *(undefined **)(ptrobjinstance + 0x18) = objinstance; + if ((uVar2 & 1) != 0) { + iVar6 = 5; + } + *(s32 *)(ptrobjinstance + 0x1c) = + *(s32 *)(*(int *)(*(int *)(objinstance + 8) + 8) + iVar6 * 4); + } + proc_7F06CE84((int)objinstance,0x3dcccccd); + setsuboffset((int)objinstance,&local_18,extraout_a2_lo,extraout_a3_lo); + setsubroty((int)objinstance,extraout_f12,0.00000000,extraout_a2_lo_00); + proc_7F06FF18((int)objinstance,extraout_f12_00,extraout_f14); + proc_7F06FCA8((int)objinstance, + *(s32 *) + (animation_table_ptrs1 + + intro_animation_table[randomly_selected_intro_animation].animID * 4), + (char)(uVar2 & 1),extraout_f12_01, + intro_animation_table[randomly_selected_intro_animation].startframeoffset, + extraout_f14_00); + menu_timer = 0; + iVar6 = get_random_value(); + fVar11 = (float)iVar6; + if (iVar6 < 0) { + fVar11 = fVar11 + 4294967296.00000000; + } + DAT_800695a4 = fVar11 * 0.00000000 * 80.00000000 + 70.00000000; + iVar6 = get_random_value(); + fVar11 = (float)iVar6; + if (iVar6 < 0) { + fVar11 = fVar11 + 4294967296.00000000; + } + DAT_800695a8 = fVar11 * 0.00000000 * 80.00000000 + 70.00000000; + iVar6 = get_random_value(); + fVar11 = (float)iVar6; + if (iVar6 < 0) { + fVar11 = fVar11 + 4294967296.00000000; + } + DAT_800695b0 = (fVar11 * 0.00000000 - 0.50000000) * flt_80051B00; + iVar6 = get_random_value(); + fVar11 = (float)iVar6; + if (iVar6 < 0) { + fVar11 = fVar11 + 4294967296.00000000; + } + DAT_800695b4 = (fVar11 * 0.00000000 - 0.50000000) * flt_80051B04; + iVar6 = get_random_value(); + fVar11 = (float)iVar6; + if (iVar6 < 0) { + fVar11 = fVar11 + 4294967296.00000000; + } + DAT_800695bc = fVar11 * 0.00000000 * 200.00000000 + -100.00000000; + iVar6 = get_random_value(); + fVar11 = (float)iVar6; + if (iVar6 < 0) { + fVar11 = fVar11 + 4294967296.00000000; + } + DAT_800695a0 = DAT_800695a4; + dword_80069C6C = DAT_800695b0; + DAT_800695b8 = DAT_800695bc; + DAT_800695c0 = fVar11 * 0.00000000 * 200.00000000 + -100.00000000; + DAT_800695e4 = 1; + DAT_800695e8 = 0; + DAT_800695ec = 0; + DAT_800695f0 = 0; +} +#else +GLOBAL_ASM( +.late_rodata +glabel jpt_intro_bond_head + .word set_body_mp_choice_maybe + .word set_body_default + .word set_body_jungle + .word set_body_snowsuit + .word set_body_5 +glabel D_80051B00 +.word 0x40C90FDB /*6.2831855;*/ +glabel D_80051B04 +.word 0x4020D97C /*2.5132742;*/ +glabel D_80051B08 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051B0C +.word 0x40C90FDB /*6.2831855;*/ +glabel D_80051B10 +.word 0x3E4CCCCD /*0.2;*/ +glabel D_80051B14 +.word 0x3E4CCCCD /*0.2;*/ +glabel D_80051B18 +.word 0x3E4CCCCD /*0.2;*/ +glabel D_80051B1C +.word 0x3E4CCCCD /*0.2;*/ +glabel D_80051B20 +.word 0x3D4CCCD0 /*0.050000012;*/ +glabel D_80051B24 +.word 0x3D4CCCD0 /*0.050000012;*/ +glabel D_80051B28 +.word 0x3F733333 /*0.94999999;*/ +glabel D_80051B2C +.word 0x3F733333 /*0.94999999;*/ +glabel D_80051B30 +.word 0x3F733333 /*0.94999999;*/ +glabel D_80051B34 +.word 0x3D4CCCD0 /*0.050000012;*/ +glabel D_80051B38 +.word 0x40490FDB /*3.1415927;*/ +glabel D_80051B3C +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051B40 +.word 0x461C4000 /*10000.0;*/ +glabel D_80051B44 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051B48 +.word 0x3FAAAAAB /*1.3333334;*/ +.text +glabel init_menu18_displaycast +/* 04D1CC 7F01869C 3C0E8003 */ lui $t6, %hi(ptr_logo_and_walletbond_DL) +/* 04D1D0 7F0186A0 8DCEA950 */ lw $t6, %lo(ptr_logo_and_walletbond_DL)($t6) +/* 04D1D4 7F0186A4 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 04D1D8 7F0186A8 3C188003 */ lui $t8, %hi(D_8002BA2C) +/* 04D1DC 7F0186AC AFBF001C */ sw $ra, 0x1c($sp) +/* 04D1E0 7F0186B0 2718BA2C */ addiu $t8, %lo(D_8002BA2C) # addiu $t8, $t8, -0x45d4 +/* 04D1E4 7F0186B4 AFAE00B4 */ sw $t6, 0xb4($sp) +/* 04D1E8 7F0186B8 8F010000 */ lw $at, ($t8) +/* 04D1EC 7F0186BC 27AF00A0 */ addiu $t7, $sp, 0xa0 +/* 04D1F0 7F0186C0 8F090004 */ lw $t1, 4($t8) +/* 04D1F4 7F0186C4 ADE10000 */ sw $at, ($t7) +/* 04D1F8 7F0186C8 8F010008 */ lw $at, 8($t8) +/* 04D1FC 7F0186CC ADE90004 */ sw $t1, 4($t7) +/* 04D200 7F0186D0 ADE10008 */ sw $at, 8($t7) +/* 04D204 7F0186D4 0C002914 */ jal get_random_value +/* 04D208 7F0186D8 AFA0007C */ sw $zero, 0x7c($sp) +/* 04D20C 7F0186DC 3C0B8003 */ lui $t3, %hi(full_actor_intro) +/* 04D210 7F0186E0 8D6BB5FC */ lw $t3, %lo(full_actor_intro)($t3) +/* 04D214 7F0186E4 304A0001 */ andi $t2, $v0, 1 +/* 04D218 7F0186E8 AFAA0070 */ sw $t2, 0x70($sp) +/* 04D21C 7F0186EC 1160000A */ beqz $t3, .L7F018718 +/* 04D220 7F0186F0 3C0C8003 */ lui $t4, %hi(do_not_play_intro_movie) +/* 04D224 7F0186F4 8D8CB5E8 */ lw $t4, %lo(do_not_play_intro_movie)($t4) +/* 04D228 7F0186F8 15800007 */ bnez $t4, .L7F018718 +/* 04D22C 7F0186FC 00000000 */ nop +/* 04D230 7F018700 0C001C0F */ jal musicTrack1Vol +/* 04D234 7F018704 24047FFF */ li $a0, 32767 +/* 04D238 7F018708 3C018002 */ lui $at, %hi(music1_playing) +/* 04D23C 7F01870C AC20434C */ sw $zero, %lo(music1_playing)($at) +/* 04D240 7F018710 0C001B9F */ jal musicTrack1Play +/* 04D244 7F018714 24040002 */ li $a0, 2 +.L7F018718: +/* 04D248 7F018718 3C048003 */ lui $a0, %hi(intro_animation_table) +/* 04D24C 7F01871C 2484B8BC */ addiu $a0, %lo(intro_animation_table) # addiu $a0, $a0, -0x4744 +/* 04D250 7F018720 00006900 */ sll $t5, $zero, 4 +/* 04D254 7F018724 008D7021 */ addu $t6, $a0, $t5 +/* 04D258 7F018728 8DC80000 */ lw $t0, ($t6) +/* 04D25C 7F01872C 3C038003 */ lui $v1, %hi(intro_animation_count) +/* 04D260 7F018730 2463B5F0 */ addiu $v1, %lo(intro_animation_count) # addiu $v1, $v1, -0x4a10 +/* 04D264 7F018734 AC600000 */ sw $zero, ($v1) +/* 04D268 7F018738 05000009 */ bltz $t0, .L7F018760 +/* 04D26C 7F01873C 00001025 */ move $v0, $zero +/* 04D270 7F018740 24590001 */ addiu $t9, $v0, 1 +.L7F018744: +/* 04D274 7F018744 00197900 */ sll $t7, $t9, 4 +/* 04D278 7F018748 008FC021 */ addu $t8, $a0, $t7 +/* 04D27C 7F01874C 8F090000 */ lw $t1, ($t8) +/* 04D280 7F018750 AC790000 */ sw $t9, ($v1) +/* 04D284 7F018754 03201025 */ move $v0, $t9 +/* 04D288 7F018758 0523FFFA */ bgezl $t1, .L7F018744 +/* 04D28C 7F01875C 24590001 */ addiu $t9, $v0, 1 +.L7F018760: +/* 04D290 7F018760 0C002914 */ jal get_random_value +/* 04D294 7F018764 00000000 */ nop +/* 04D298 7F018768 3C038003 */ lui $v1, %hi(intro_animation_count) +/* 04D29C 7F01876C 2463B5F0 */ addiu $v1, %lo(intro_animation_count) # addiu $v1, $v1, -0x4a10 +/* 04D2A0 7F018770 8C6A0000 */ lw $t2, ($v1) +/* 04D2A4 7F018774 3C0C8003 */ lui $t4, %hi(do_not_play_intro_movie) +/* 04D2A8 7F018778 8D8CB5E8 */ lw $t4, %lo(do_not_play_intro_movie)($t4) +/* 04D2AC 7F01877C 004A001B */ divu $zero, $v0, $t2 +/* 04D2B0 7F018780 00005810 */ mfhi $t3 +/* 04D2B4 7F018784 3C018003 */ lui $at, %hi(randomly_selected_intro_animation) +/* 04D2B8 7F018788 AC2BB5EC */ sw $t3, %lo(randomly_selected_intro_animation)($at) +/* 04D2BC 7F01878C 3C0F8003 */ lui $t7, %hi(randomly_selected_intro_animation) +/* 04D2C0 7F018790 000C6880 */ sll $t5, $t4, 2 +/* 04D2C4 7F018794 8DEFB5EC */ lw $t7, %lo(randomly_selected_intro_animation)($t7) +/* 04D2C8 7F018798 3C0E8003 */ lui $t6, %hi(intro_char_table) +/* 04D2CC 7F01879C 01AC6821 */ addu $t5, $t5, $t4 +/* 04D2D0 7F0187A0 000D6880 */ sll $t5, $t5, 2 +/* 04D2D4 7F0187A4 25CEB600 */ addiu $t6, %lo(intro_char_table) # addiu $t6, $t6, -0x4a00 +/* 04D2D8 7F0187A8 01AE2021 */ addu $a0, $t5, $t6 +/* 04D2DC 7F0187AC 8C880000 */ lw $t0, ($a0) +/* 04D2E0 7F0187B0 3C098003 */ lui $t1, %hi(intro_animation_table+12) +/* 04D2E4 7F0187B4 000FC100 */ sll $t8, $t7, 4 +/* 04D2E8 7F0187B8 01384821 */ addu $t1, $t1, $t8 +/* 04D2EC 7F0187BC 8C990004 */ lw $t9, 4($a0) +/* 04D2F0 7F0187C0 8D29B8C8 */ lw $t1, %lo(intro_animation_table+12)($t1) +/* 04D2F4 7F0187C4 24010016 */ li $at, 22 +/* 04D2F8 7F0187C8 15400002 */ bnez $t2, .L7F0187D4 +/* 04D2FC 7F0187CC 00000000 */ nop +/* 04D300 7F0187D0 0007000D */ break 7 +.L7F0187D4: +/* 04D304 7F0187D4 AFA8008C */ sw $t0, 0x8c($sp) +/* 04D308 7F0187D8 01005025 */ move $t2, $t0 +/* 04D30C 7F0187DC AFB90088 */ sw $t9, 0x88($sp) +/* 04D310 7F0187E0 15010022 */ bne $t0, $at, .L7F01886C +/* 04D314 7F0187E4 AFA9006C */ sw $t1, 0x6c($sp) +/* 04D318 7F0187E8 0C002914 */ jal get_random_value +/* 04D31C 7F0187EC 00000000 */ nop +/* 04D320 7F0187F0 24010005 */ li $at, 5 +/* 04D324 7F0187F4 0041001B */ divu $zero, $v0, $at +/* 04D328 7F0187F8 00005810 */ mfhi $t3 +/* 04D32C 7F0187FC 2D610005 */ sltiu $at, $t3, 5 +/* 04D330 7F018800 1020002F */ beqz $at, .L7F0188C0 +/* 04D334 7F018804 000B5880 */ sll $t3, $t3, 2 +/* 04D338 7F018808 3C018005 */ lui $at, %hi(jpt_intro_bond_head) +/* 04D33C 7F01880C 002B0821 */ addu $at, $at, $t3 +/* 04D340 7F018810 8C2B1AEC */ lw $t3, %lo(jpt_intro_bond_head)($at) +/* 04D344 7F018814 01600008 */ jr $t3 +/* 04D348 7F018818 00000000 */ nop +set_body_default: +/* 04D34C 7F01881C 240C0017 */ li $t4, 23 +/* 04D350 7F018820 240D004B */ li $t5, 75 +/* 04D354 7F018824 AFAD0088 */ sw $t5, 0x88($sp) +/* 04D358 7F018828 10000025 */ b .L7F0188C0 +/* 04D35C 7F01882C AFAC008C */ sw $t4, 0x8c($sp) +set_body_jungle: +/* 04D360 7F018830 240E0018 */ li $t6, 24 +/* 04D364 7F018834 2408004B */ li $t0, 75 +/* 04D368 7F018838 AFA80088 */ sw $t0, 0x88($sp) +/* 04D36C 7F01883C 10000020 */ b .L7F0188C0 +/* 04D370 7F018840 AFAE008C */ sw $t6, 0x8c($sp) +set_body_snowsuit: +/* 04D374 7F018844 24190019 */ li $t9, 25 +/* 04D378 7F018848 240F004B */ li $t7, 75 +/* 04D37C 7F01884C AFAF0088 */ sw $t7, 0x88($sp) +/* 04D380 7F018850 1000001B */ b .L7F0188C0 +/* 04D384 7F018854 AFB9008C */ sw $t9, 0x8c($sp) +set_body_5: +/* 04D388 7F018858 24180005 */ li $t8, 5 +/* 04D38C 7F01885C 2409004E */ li $t1, 78 +/* 04D390 7F018860 AFA90088 */ sw $t1, 0x88($sp) +/* 04D394 7F018864 10000016 */ b .L7F0188C0 +/* 04D398 7F018868 AFB8008C */ sw $t8, 0x8c($sp) +.L7F01886C: +/* 04D39C 7F01886C 8FAA008C */ lw $t2, 0x8c($sp) +/* 04D3A0 7F018870 24010010 */ li $at, 16 +/* 04D3A4 7F018874 8FAD008C */ lw $t5, 0x8c($sp) +/* 04D3A8 7F018878 55410009 */ bnel $t2, $at, .L7F0188A0 +/* 04D3AC 7F01887C 24010009 */ li $at, 9 +/* 04D3B0 7F018880 0C002914 */ jal get_random_value +/* 04D3B4 7F018884 00000000 */ nop +/* 04D3B8 7F018888 304B0001 */ andi $t3, $v0, 1 +/* 04D3BC 7F01888C 1160000C */ beqz $t3, .L7F0188C0 +/* 04D3C0 7F018890 240C004F */ li $t4, 79 +/* 04D3C4 7F018894 1000000A */ b .L7F0188C0 +/* 04D3C8 7F018898 AFAC008C */ sw $t4, 0x8c($sp) +/* 04D3CC 7F01889C 24010009 */ li $at, 9 +.L7F0188A0: +/* 04D3D0 7F0188A0 55A10008 */ bnel $t5, $at, .L7F0188C4 +/* 04D3D4 7F0188A4 8FB90088 */ lw $t9, 0x88($sp) +/* 04D3D8 7F0188A8 0C002914 */ jal get_random_value +/* 04D3DC 7F0188AC 00000000 */ nop +/* 04D3E0 7F0188B0 304E0001 */ andi $t6, $v0, 1 +/* 04D3E4 7F0188B4 11C00002 */ beqz $t6, .L7F0188C0 +/* 04D3E8 7F0188B8 24080008 */ li $t0, 8 +/* 04D3EC 7F0188BC AFA8008C */ sw $t0, 0x8c($sp) +set_body_mp_choice_maybe: +.L7F0188C0: +/* 04D3F0 7F0188C0 8FB90088 */ lw $t9, 0x88($sp) +.L7F0188C4: +/* 04D3F4 7F0188C4 2401FF9F */ li $at, -97 +/* 04D3F8 7F0188C8 57210005 */ bnel $t9, $at, .L7F0188E0 +/* 04D3FC 7F0188CC 8FAF00B4 */ lw $t7, 0xb4($sp) +/* 04D400 7F0188D0 0FC08D98 */ jal get_random_head +/* 04D404 7F0188D4 8FA4008C */ lw $a0, 0x8c($sp) +/* 04D408 7F0188D8 AFA20088 */ sw $v0, 0x88($sp) +/* 04D40C 7F0188DC 8FAF00B4 */ lw $t7, 0xb4($sp) +.L7F0188E0: +/* 04D410 7F0188E0 3C020003 */ lui $v0, (0x00031160 >> 16) # lui $v0, 3 +/* 04D414 7F0188E4 34421160 */ ori $v0, (0x00031160 & 0xFFFF) # ori $v0, $v0, 0x1160 +/* 04D418 7F0188E8 01E22021 */ addu $a0, $t7, $v0 +/* 04D41C 7F0188EC 2484003F */ addiu $a0, $a0, 0x3f +/* 04D420 7F0188F0 3498003F */ ori $t8, $a0, 0x3f +/* 04D424 7F0188F4 3B04003F */ xori $a0, $t8, 0x3f +/* 04D428 7F0188F8 AFA200B0 */ sw $v0, 0xb0($sp) +/* 04D42C 7F0188FC 240501B8 */ li $a1, 440 +/* 04D430 7F018900 0FC34912 */ jal sub_GAME_7F0D2448 +/* 04D434 7F018904 2406014A */ li $a2, 330 +/* 04D438 7F018908 3C060001 */ lui $a2, (0x00019000 >> 16) # lui $a2, 1 +/* 04D43C 7F01890C 34C69000 */ ori $a2, (0x00019000 & 0xFFFF) # ori $a2, $a2, 0x9000 +/* 04D440 7F018910 27A40090 */ addiu $a0, $sp, 0x90 +/* 04D444 7F018914 0FC32EBD */ jal sub_GAME_7F0CBAF4 +/* 04D448 7F018918 8FA500B4 */ lw $a1, 0xb4($sp) +/* 04D44C 7F01891C 8FAA008C */ lw $t2, 0x8c($sp) +/* 04D450 7F018920 3C0C8004 */ lui $t4, %hi(c_item_entries) +/* 04D454 7F018924 8FA600B4 */ lw $a2, 0xb4($sp) +/* 04D458 7F018928 000A5880 */ sll $t3, $t2, 2 +/* 04D45C 7F01892C 016A5821 */ addu $t3, $t3, $t2 +/* 04D460 7F018930 8FA700B0 */ lw $a3, 0xb0($sp) +/* 04D464 7F018934 3C030001 */ lui $v1, (0x00019000 >> 16) # lui $v1, 1 +/* 04D468 7F018938 000B5880 */ sll $t3, $t3, 2 +/* 04D46C 7F01893C 258CDE10 */ addiu $t4, %lo(c_item_entries) # addiu $t4, $t4, -0x21f0 +/* 04D470 7F018940 34639000 */ ori $v1, (0x00019000 & 0xFFFF) # ori $v1, $v1, 0x9000 +/* 04D474 7F018944 016C1021 */ addu $v0, $t3, $t4 +/* 04D478 7F018948 8C440000 */ lw $a0, ($v0) +/* 04D47C 7F01894C 27AD0090 */ addiu $t5, $sp, 0x90 +/* 04D480 7F018950 00C33021 */ addu $a2, $a2, $v1 +/* 04D484 7F018954 00E33823 */ subu $a3, $a3, $v1 +/* 04D488 7F018958 AFA700B0 */ sw $a3, 0xb0($sp) +/* 04D48C 7F01895C AFA600B4 */ sw $a2, 0xb4($sp) +/* 04D490 7F018960 AFAD0010 */ sw $t5, 0x10($sp) +/* 04D494 7F018964 8C450004 */ lw $a1, 4($v0) +/* 04D498 7F018968 AFA20024 */ sw $v0, 0x24($sp) +/* 04D49C 7F01896C 0FC1D929 */ jal load_object_fill_header +/* 04D4A0 7F018970 AFA40080 */ sw $a0, 0x80($sp) +/* 04D4A4 7F018974 8FA20024 */ lw $v0, 0x24($sp) +/* 04D4A8 7F018978 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 04D4AC 7F01897C 8C440004 */ lw $a0, 4($v0) +/* 04D4B0 7F018980 2443003F */ addiu $v1, $v0, 0x3f +/* 04D4B4 7F018984 8FB900B0 */ lw $t9, 0xb0($sp) +/* 04D4B8 7F018988 8FB800B4 */ lw $t8, 0xb4($sp) +/* 04D4BC 7F01898C 346E003F */ ori $t6, $v1, 0x3f +/* 04D4C0 7F018990 8FAA0088 */ lw $t2, 0x88($sp) +/* 04D4C4 7F018994 39C8003F */ xori $t0, $t6, 0x3f +/* 04D4C8 7F018998 03287823 */ subu $t7, $t9, $t0 +/* 04D4CC 7F01899C 03084821 */ addu $t1, $t8, $t0 +/* 04D4D0 7F0189A0 AFAF00B0 */ sw $t7, 0xb0($sp) +/* 04D4D4 7F0189A4 0540001C */ bltz $t2, .L7F018A18 +/* 04D4D8 7F0189A8 AFA900B4 */ sw $t1, 0xb4($sp) +/* 04D4DC 7F0189AC 000A5880 */ sll $t3, $t2, 2 +/* 04D4E0 7F0189B0 016A5821 */ addu $t3, $t3, $t2 +/* 04D4E4 7F0189B4 3C0C8004 */ lui $t4, %hi(c_item_entries) +/* 04D4E8 7F0189B8 258CDE10 */ addiu $t4, %lo(c_item_entries) # addiu $t4, $t4, -0x21f0 +/* 04D4EC 7F0189BC 000B5880 */ sll $t3, $t3, 2 +/* 04D4F0 7F0189C0 016C1021 */ addu $v0, $t3, $t4 +/* 04D4F4 7F0189C4 8C440000 */ lw $a0, ($v0) +/* 04D4F8 7F0189C8 27AD0090 */ addiu $t5, $sp, 0x90 +/* 04D4FC 7F0189CC AFAD0010 */ sw $t5, 0x10($sp) +/* 04D500 7F0189D0 8C450004 */ lw $a1, 4($v0) +/* 04D504 7F0189D4 AFA20024 */ sw $v0, 0x24($sp) +/* 04D508 7F0189D8 01203025 */ move $a2, $t1 +/* 04D50C 7F0189DC 01E03825 */ move $a3, $t7 +/* 04D510 7F0189E0 0FC1D929 */ jal load_object_fill_header +/* 04D514 7F0189E4 AFA4007C */ sw $a0, 0x7c($sp) +/* 04D518 7F0189E8 8FA20024 */ lw $v0, 0x24($sp) +/* 04D51C 7F0189EC 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 04D520 7F0189F0 8C440004 */ lw $a0, 4($v0) +/* 04D524 7F0189F4 2443003F */ addiu $v1, $v0, 0x3f +/* 04D528 7F0189F8 8FB900B0 */ lw $t9, 0xb0($sp) +/* 04D52C 7F0189FC 8FAA00B4 */ lw $t2, 0xb4($sp) +/* 04D530 7F018A00 346E003F */ ori $t6, $v1, 0x3f +/* 04D534 7F018A04 39C8003F */ xori $t0, $t6, 0x3f +/* 04D538 7F018A08 0328C023 */ subu $t8, $t9, $t0 +/* 04D53C 7F018A0C 01485821 */ addu $t3, $t2, $t0 +/* 04D540 7F018A10 AFB800B0 */ sw $t8, 0xb0($sp) +/* 04D544 7F018A14 AFAB00B4 */ sw $t3, 0xb4($sp) +.L7F018A18: +/* 04D548 7F018A18 8FA4008C */ lw $a0, 0x8c($sp) +/* 04D54C 7F018A1C 8FA50088 */ lw $a1, 0x88($sp) +/* 04D550 7F018A20 8FA60080 */ lw $a2, 0x80($sp) +/* 04D554 7F018A24 8FA7007C */ lw $a3, 0x7c($sp) +/* 04D558 7F018A28 0FC08D2A */ jal sub_GAME_7F0234A8 +/* 04D55C 7F018A2C AFA00010 */ sw $zero, 0x10($sp) +/* 04D560 7F018A30 3C038003 */ lui $v1, %hi(objinstance) +/* 04D564 7F018A34 2463B5F4 */ addiu $v1, %lo(objinstance) # addiu $v1, $v1, -0x4a0c +/* 04D568 7F018A38 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 04D56C 7F018A3C AC620000 */ sw $v0, ($v1) +/* 04D570 7F018A40 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 04D574 7F018A44 0FC1B39E */ jal set_obj_instance_controller_scale +/* 04D578 7F018A48 00402025 */ move $a0, $v0 +/* 04D57C 7F018A4C 8FAC006C */ lw $t4, 0x6c($sp) +/* 04D580 7F018A50 24010002 */ li $at, 2 +/* 04D584 7F018A54 1180007A */ beqz $t4, .L7F018C40 +/* 04D588 7F018A58 00000000 */ nop +/* 04D58C 7F018A5C 15810018 */ bne $t4, $at, .L7F018AC0 +/* 04D590 7F018A60 27B8002C */ addiu $t8, $sp, 0x2c +/* 04D594 7F018A64 3C0F8003 */ lui $t7, %hi(random_rifles_in_intro) +/* 04D598 7F018A68 25EFBA38 */ addiu $t7, %lo(random_rifles_in_intro) # addiu $t7, $t7, -0x45c8 +/* 04D59C 7F018A6C 8DE10000 */ lw $at, ($t7) +/* 04D5A0 7F018A70 8DEE0004 */ lw $t6, 4($t7) +/* 04D5A4 7F018A74 27A90054 */ addiu $t1, $sp, 0x54 +/* 04D5A8 7F018A78 AD210000 */ sw $at, ($t1) +/* 04D5AC 7F018A7C AD2E0004 */ sw $t6, 4($t1) +/* 04D5B0 7F018A80 8DEE000C */ lw $t6, 0xc($t7) +/* 04D5B4 7F018A84 8DE10008 */ lw $at, 8($t7) +/* 04D5B8 7F018A88 AD2E000C */ sw $t6, 0xc($t1) +/* 04D5BC 7F018A8C AD210008 */ sw $at, 8($t1) +/* 04D5C0 7F018A90 8DE10010 */ lw $at, 0x10($t7) +/* 04D5C4 7F018A94 8DEE0014 */ lw $t6, 0x14($t7) +/* 04D5C8 7F018A98 AD210010 */ sw $at, 0x10($t1) +/* 04D5CC 7F018A9C 0C002914 */ jal get_random_value +/* 04D5D0 7F018AA0 AD2E0014 */ sw $t6, 0x14($t1) +/* 04D5D4 7F018AA4 24010006 */ li $at, 6 +/* 04D5D8 7F018AA8 0041001B */ divu $zero, $v0, $at +/* 04D5DC 7F018AAC 00004010 */ mfhi $t0 +/* 04D5E0 7F018AB0 0008C880 */ sll $t9, $t0, 2 +/* 04D5E4 7F018AB4 03B91821 */ addu $v1, $sp, $t9 +/* 04D5E8 7F018AB8 10000016 */ b .L7F018B14 +/* 04D5EC 7F018ABC 8C630054 */ lw $v1, 0x54($v1) +.L7F018AC0: +/* 04D5F0 7F018AC0 3C0A8003 */ lui $t2, %hi(random_pistols_in_intro) +/* 04D5F4 7F018AC4 254ABA50 */ addiu $t2, %lo(random_pistols_in_intro) # addiu $t2, $t2, -0x45b0 +/* 04D5F8 7F018AC8 254C0024 */ addiu $t4, $t2, 0x24 +.L7F018ACC: +/* 04D5FC 7F018ACC 8D410000 */ lw $at, ($t2) +/* 04D600 7F018AD0 254A000C */ addiu $t2, $t2, 0xc +/* 04D604 7F018AD4 2718000C */ addiu $t8, $t8, 0xc +/* 04D608 7F018AD8 AF01FFF4 */ sw $at, -0xc($t8) +/* 04D60C 7F018ADC 8D41FFF8 */ lw $at, -8($t2) +/* 04D610 7F018AE0 AF01FFF8 */ sw $at, -8($t8) +/* 04D614 7F018AE4 8D41FFFC */ lw $at, -4($t2) +/* 04D618 7F018AE8 154CFFF8 */ bne $t2, $t4, .L7F018ACC +/* 04D61C 7F018AEC AF01FFFC */ sw $at, -4($t8) +/* 04D620 7F018AF0 8D410000 */ lw $at, ($t2) +/* 04D624 7F018AF4 0C002914 */ jal get_random_value +/* 04D628 7F018AF8 AF010000 */ sw $at, ($t8) +/* 04D62C 7F018AFC 2401000A */ li $at, 10 +/* 04D630 7F018B00 0041001B */ divu $zero, $v0, $at +/* 04D634 7F018B04 00006810 */ mfhi $t5 +/* 04D638 7F018B08 000D4880 */ sll $t1, $t5, 2 +/* 04D63C 7F018B0C 03A91821 */ addu $v1, $sp, $t1 +/* 04D640 7F018B10 8C63002C */ lw $v1, 0x2c($v1) +.L7F018B14: +/* 04D644 7F018B14 240100BE */ li $at, 190 +/* 04D648 7F018B18 54610007 */ bnel $v1, $at, .L7F018B38 +/* 04D64C 7F018B1C 240100BB */ li $at, 187 +/* 04D650 7F018B20 0FC07AB4 */ jal check_cradle_completed_any_folder +/* 04D654 7F018B24 AFA30084 */ sw $v1, 0x84($sp) +/* 04D658 7F018B28 14400002 */ bnez $v0, .L7F018B34 +/* 04D65C 7F018B2C 8FA30084 */ lw $v1, 0x84($sp) +/* 04D660 7F018B30 240300BF */ li $v1, 191 +.L7F018B34: +/* 04D664 7F018B34 240100BB */ li $at, 187 +.L7F018B38: +/* 04D668 7F018B38 54610007 */ bnel $v1, $at, .L7F018B58 +/* 04D66C 7F018B3C 240100D0 */ li $at, 208 +/* 04D670 7F018B40 0FC07AC8 */ jal check_aztec_completed_any_folder_secret_00 +/* 04D674 7F018B44 AFA30084 */ sw $v1, 0x84($sp) +/* 04D678 7F018B48 14400002 */ bnez $v0, .L7F018B54 +/* 04D67C 7F018B4C 8FA30084 */ lw $v1, 0x84($sp) +/* 04D680 7F018B50 240300BF */ li $v1, 191 +.L7F018B54: +/* 04D684 7F018B54 240100D0 */ li $at, 208 +.L7F018B58: +/* 04D688 7F018B58 54610007 */ bnel $v1, $at, .L7F018B78 +/* 04D68C 7F018B5C 00037880 */ sll $t7, $v1, 2 +/* 04D690 7F018B60 0FC07ADC */ jal check_egypt_completed_any_folder_00 +/* 04D694 7F018B64 AFA30084 */ sw $v1, 0x84($sp) +/* 04D698 7F018B68 14400002 */ bnez $v0, .L7F018B74 +/* 04D69C 7F018B6C 8FA30084 */ lw $v1, 0x84($sp) +/* 04D6A0 7F018B70 240300BF */ li $v1, 191 +.L7F018B74: +/* 04D6A4 7F018B74 00037880 */ sll $t7, $v1, 2 +.L7F018B78: +/* 04D6A8 7F018B78 01E37823 */ subu $t7, $t7, $v1 +/* 04D6AC 7F018B7C 3C0E8004 */ lui $t6, %hi(PitemZ_entries) +/* 04D6B0 7F018B80 25CEA228 */ addiu $t6, %lo(PitemZ_entries) # addiu $t6, $t6, -0x5dd8 +/* 04D6B4 7F018B84 000F7880 */ sll $t7, $t7, 2 +/* 04D6B8 7F018B88 01EE1021 */ addu $v0, $t7, $t6 +/* 04D6BC 7F018B8C 8C440000 */ lw $a0, ($v0) +/* 04D6C0 7F018B90 27A80090 */ addiu $t0, $sp, 0x90 +/* 04D6C4 7F018B94 AFA80010 */ sw $t0, 0x10($sp) +/* 04D6C8 7F018B98 8C450004 */ lw $a1, 4($v0) +/* 04D6CC 7F018B9C AFA20024 */ sw $v0, 0x24($sp) +/* 04D6D0 7F018BA0 8FA600B4 */ lw $a2, 0xb4($sp) +/* 04D6D4 7F018BA4 8FA700B0 */ lw $a3, 0xb0($sp) +/* 04D6D8 7F018BA8 0FC1D929 */ jal load_object_fill_header +/* 04D6DC 7F018BAC AFA40078 */ sw $a0, 0x78($sp) +/* 04D6E0 7F018BB0 8FA20024 */ lw $v0, 0x24($sp) +/* 04D6E4 7F018BB4 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 04D6E8 7F018BB8 8C440004 */ lw $a0, 4($v0) +/* 04D6EC 7F018BBC 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 04D6F0 7F018BC0 8FA40078 */ lw $a0, 0x78($sp) +/* 04D6F4 7F018BC4 0FC1B025 */ jal get_obj_instance_controller_for_header +/* 04D6F8 7F018BC8 8FA40078 */ lw $a0, 0x78($sp) +/* 04D6FC 7F018BCC 3C038003 */ lui $v1, %hi(ptrobjinstance) +/* 04D700 7F018BD0 2463B5F8 */ addiu $v1, %lo(ptrobjinstance) # addiu $v1, $v1, -0x4a08 +/* 04D704 7F018BD4 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 04D708 7F018BD8 AC620000 */ sw $v0, ($v1) +/* 04D70C 7F018BDC 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 04D710 7F018BE0 0FC1B39E */ jal set_obj_instance_controller_scale +/* 04D714 7F018BE4 00402025 */ move $a0, $v0 +/* 04D718 7F018BE8 3C038003 */ lui $v1, %hi(ptrobjinstance) +/* 04D71C 7F018BEC 3C068003 */ lui $a2, %hi(objinstance) +/* 04D720 7F018BF0 24C6B5F4 */ addiu $a2, %lo(objinstance) # addiu $a2, $a2, -0x4a0c +/* 04D724 7F018BF4 2463B5F8 */ addiu $v1, %lo(ptrobjinstance) # addiu $v1, $v1, -0x4a08 +/* 04D728 7F018BF8 8C6B0000 */ lw $t3, ($v1) +/* 04D72C 7F018BFC 8CD90000 */ lw $t9, ($a2) +/* 04D730 7F018C00 24020003 */ li $v0, 3 +/* 04D734 7F018C04 AD790018 */ sw $t9, 0x18($t3) +/* 04D738 7F018C08 8FAC0070 */ lw $t4, 0x70($sp) +/* 04D73C 7F018C0C 11800003 */ beqz $t4, .L7F018C1C +/* 04D740 7F018C10 00000000 */ nop +/* 04D744 7F018C14 10000001 */ b .L7F018C1C +/* 04D748 7F018C18 24020005 */ li $v0, 5 +.L7F018C1C: +/* 04D74C 7F018C1C 8CCA0000 */ lw $t2, ($a2) +/* 04D750 7F018C20 00024880 */ sll $t1, $v0, 2 +/* 04D754 7F018C24 8C680000 */ lw $t0, ($v1) +/* 04D758 7F018C28 8D580008 */ lw $t8, 8($t2) +/* 04D75C 7F018C2C 8F0D0008 */ lw $t5, 8($t8) +/* 04D760 7F018C30 01A97821 */ addu $t7, $t5, $t1 +/* 04D764 7F018C34 8DEE0000 */ lw $t6, ($t7) +/* 04D768 7F018C38 10000006 */ b .L7F018C54 +/* 04D76C 7F018C3C AD0E001C */ sw $t6, 0x1c($t0) +.L7F018C40: +/* 04D770 7F018C40 3C038003 */ lui $v1, %hi(ptrobjinstance) +/* 04D774 7F018C44 2463B5F8 */ addiu $v1, %lo(ptrobjinstance) # addiu $v1, $v1, -0x4a08 +/* 04D778 7F018C48 3C068003 */ lui $a2, %hi(objinstance) +/* 04D77C 7F018C4C 24C6B5F4 */ addiu $a2, %lo(objinstance) # addiu $a2, $a2, -0x4a0c +/* 04D780 7F018C50 AC600000 */ sw $zero, ($v1) +.L7F018C54: +/* 04D784 7F018C54 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 04D788 7F018C58 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 04D78C 7F018C5C 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 04D790 7F018C60 8CC40000 */ lw $a0, ($a2) +/* 04D794 7F018C64 3C048003 */ lui $a0, %hi(objinstance) +/* 04D798 7F018C68 8C84B5F4 */ lw $a0, %lo(objinstance)($a0) +/* 04D79C 7F018C6C 0FC1B303 */ jal setsuboffset +/* 04D7A0 7F018C70 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 04D7A4 7F018C74 3C048003 */ lui $a0, %hi(objinstance) +/* 04D7A8 7F018C78 8C84B5F4 */ lw $a0, %lo(objinstance)($a0) +/* 04D7AC 7F018C7C 0FC1B34F */ jal setsubroty +/* 04D7B0 7F018C80 24050000 */ li $a1, 0 +/* 04D7B4 7F018C84 3C048003 */ lui $a0, %hi(objinstance) +/* 04D7B8 7F018C88 8C84B5F4 */ lw $a0, %lo(objinstance)($a0) +/* 04D7BC 7F018C8C 3C053F00 */ lui $a1, 0x3f00 +/* 04D7C0 7F018C90 0FC1BFC6 */ jal sub_GAME_7F06FF18 +/* 04D7C4 7F018C94 24060000 */ li $a2, 0 +/* 04D7C8 7F018C98 3C198003 */ lui $t9, %hi(randomly_selected_intro_animation) +/* 04D7CC 7F018C9C 8F39B5EC */ lw $t9, %lo(randomly_selected_intro_animation)($t9) +/* 04D7D0 7F018CA0 3C0C8003 */ lui $t4, %hi(intro_animation_table) +/* 04D7D4 7F018CA4 258CB8BC */ addiu $t4, %lo(intro_animation_table) # addiu $t4, $t4, -0x4744 +/* 04D7D8 7F018CA8 00195900 */ sll $t3, $t9, 4 +/* 04D7DC 7F018CAC 016C1021 */ addu $v0, $t3, $t4 +/* 04D7E0 7F018CB0 8C4A0000 */ lw $t2, ($v0) +/* 04D7E4 7F018CB4 C4440008 */ lwc1 $f4, 8($v0) +/* 04D7E8 7F018CB8 44803000 */ mtc1 $zero, $f6 +/* 04D7EC 7F018CBC 3C058003 */ lui $a1, %hi(animation_table_ptrs1) +/* 04D7F0 7F018CC0 000AC080 */ sll $t8, $t2, 2 +/* 04D7F4 7F018CC4 00B82821 */ addu $a1, $a1, $t8 +/* 04D7F8 7F018CC8 3C048003 */ lui $a0, %hi(objinstance) +/* 04D7FC 7F018CCC 8C84B5F4 */ lw $a0, %lo(objinstance)($a0) +/* 04D800 7F018CD0 8CA59D6C */ lw $a1, %lo(animation_table_ptrs1)($a1) +/* 04D804 7F018CD4 8C470004 */ lw $a3, 4($v0) +/* 04D808 7F018CD8 8FA60070 */ lw $a2, 0x70($sp) +/* 04D80C 7F018CDC E7A40010 */ swc1 $f4, 0x10($sp) +/* 04D810 7F018CE0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 04D814 7F018CE4 E7A60014 */ swc1 $f6, 0x14($sp) +/* 04D818 7F018CE8 3C018003 */ lui $at, %hi(menu_timer) +/* 04D81C 7F018CEC 0C002914 */ jal get_random_value +/* 04D820 7F018CF0 AC20A8CC */ sw $zero, %lo(menu_timer)($at) +/* 04D824 7F018CF4 44824000 */ mtc1 $v0, $f8 +/* 04D828 7F018CF8 04410005 */ bgez $v0, .L7F018D10 +/* 04D82C 7F018CFC 468042A0 */ cvt.s.w $f10, $f8 +/* 04D830 7F018D00 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 04D834 7F018D04 44818000 */ mtc1 $at, $f16 +/* 04D838 7F018D08 00000000 */ nop +/* 04D83C 7F018D0C 46105280 */ add.s $f10, $f10, $f16 +.L7F018D10: +/* 04D840 7F018D10 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 04D844 7F018D14 44819000 */ mtc1 $at, $f18 +/* 04D848 7F018D18 3C0142A0 */ li $at, 0x42A00000 # 80.000000 +/* 04D84C 7F018D1C 44813000 */ mtc1 $at, $f6 +/* 04D850 7F018D20 46125102 */ mul.s $f4, $f10, $f18 +/* 04D854 7F018D24 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 04D858 7F018D28 44818000 */ mtc1 $at, $f16 +/* 04D85C 7F018D2C 3C018007 */ lui $at, %hi(flt_CODE_bss_800695A4) +/* 04D860 7F018D30 46062202 */ mul.s $f8, $f4, $f6 +/* 04D864 7F018D34 46104280 */ add.s $f10, $f8, $f16 +/* 04D868 7F018D38 0C002914 */ jal get_random_value +/* 04D86C 7F018D3C E42A95A4 */ swc1 $f10, %lo(flt_CODE_bss_800695A4)($at) +/* 04D870 7F018D40 44829000 */ mtc1 $v0, $f18 +/* 04D874 7F018D44 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 04D878 7F018D48 04410004 */ bgez $v0, .L7F018D5C +/* 04D87C 7F018D4C 46809120 */ cvt.s.w $f4, $f18 +/* 04D880 7F018D50 44813000 */ mtc1 $at, $f6 +/* 04D884 7F018D54 00000000 */ nop +/* 04D888 7F018D58 46062100 */ add.s $f4, $f4, $f6 +.L7F018D5C: +/* 04D88C 7F018D5C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 04D890 7F018D60 44814000 */ mtc1 $at, $f8 +/* 04D894 7F018D64 3C0142A0 */ li $at, 0x42A00000 # 80.000000 +/* 04D898 7F018D68 44815000 */ mtc1 $at, $f10 +/* 04D89C 7F018D6C 46082402 */ mul.s $f16, $f4, $f8 +/* 04D8A0 7F018D70 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 04D8A4 7F018D74 44813000 */ mtc1 $at, $f6 +/* 04D8A8 7F018D78 3C018007 */ lui $at, %hi(flt_CODE_bss_800695A8) +/* 04D8AC 7F018D7C 460A8482 */ mul.s $f18, $f16, $f10 +/* 04D8B0 7F018D80 46069100 */ add.s $f4, $f18, $f6 +/* 04D8B4 7F018D84 0C002914 */ jal get_random_value +/* 04D8B8 7F018D88 E42495A8 */ swc1 $f4, %lo(flt_CODE_bss_800695A8)($at) +/* 04D8BC 7F018D8C 44824000 */ mtc1 $v0, $f8 +/* 04D8C0 7F018D90 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 04D8C4 7F018D94 04410004 */ bgez $v0, .L7F018DA8 +/* 04D8C8 7F018D98 46804420 */ cvt.s.w $f16, $f8 +/* 04D8CC 7F018D9C 44815000 */ mtc1 $at, $f10 +/* 04D8D0 7F018DA0 00000000 */ nop +/* 04D8D4 7F018DA4 460A8400 */ add.s $f16, $f16, $f10 +.L7F018DA8: +/* 04D8D8 7F018DA8 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 04D8DC 7F018DAC 44819000 */ mtc1 $at, $f18 +/* 04D8E0 7F018DB0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 04D8E4 7F018DB4 44812000 */ mtc1 $at, $f4 +/* 04D8E8 7F018DB8 46128182 */ mul.s $f6, $f16, $f18 +/* 04D8EC 7F018DBC 3C018005 */ lui $at, %hi(D_80051B00) +/* 04D8F0 7F018DC0 C42A1B00 */ lwc1 $f10, %lo(D_80051B00)($at) +/* 04D8F4 7F018DC4 3C018007 */ lui $at, %hi(flt_CODE_bss_800695B0) +/* 04D8F8 7F018DC8 46043201 */ sub.s $f8, $f6, $f4 +/* 04D8FC 7F018DCC 460A4402 */ mul.s $f16, $f8, $f10 +/* 04D900 7F018DD0 0C002914 */ jal get_random_value +/* 04D904 7F018DD4 E43095B0 */ swc1 $f16, %lo(flt_CODE_bss_800695B0)($at) +/* 04D908 7F018DD8 44829000 */ mtc1 $v0, $f18 +/* 04D90C 7F018DDC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 04D910 7F018DE0 04410004 */ bgez $v0, .L7F018DF4 +/* 04D914 7F018DE4 468091A0 */ cvt.s.w $f6, $f18 +/* 04D918 7F018DE8 44812000 */ mtc1 $at, $f4 +/* 04D91C 7F018DEC 00000000 */ nop +/* 04D920 7F018DF0 46043180 */ add.s $f6, $f6, $f4 +.L7F018DF4: +/* 04D924 7F018DF4 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 04D928 7F018DF8 44814000 */ mtc1 $at, $f8 +/* 04D92C 7F018DFC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 04D930 7F018E00 44818000 */ mtc1 $at, $f16 +/* 04D934 7F018E04 46083282 */ mul.s $f10, $f6, $f8 +/* 04D938 7F018E08 3C018005 */ lui $at, %hi(D_80051B04) +/* 04D93C 7F018E0C C4241B04 */ lwc1 $f4, %lo(D_80051B04)($at) +/* 04D940 7F018E10 3C018007 */ lui $at, %hi(flt_CODE_bss_800695B4) +/* 04D944 7F018E14 46105481 */ sub.s $f18, $f10, $f16 +/* 04D948 7F018E18 46049182 */ mul.s $f6, $f18, $f4 +/* 04D94C 7F018E1C 0C002914 */ jal get_random_value +/* 04D950 7F018E20 E42695B4 */ swc1 $f6, %lo(flt_CODE_bss_800695B4)($at) +/* 04D954 7F018E24 44824000 */ mtc1 $v0, $f8 +/* 04D958 7F018E28 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 04D95C 7F018E2C 04410004 */ bgez $v0, .L7F018E40 +/* 04D960 7F018E30 468042A0 */ cvt.s.w $f10, $f8 +/* 04D964 7F018E34 44818000 */ mtc1 $at, $f16 +/* 04D968 7F018E38 00000000 */ nop +/* 04D96C 7F018E3C 46105280 */ add.s $f10, $f10, $f16 +.L7F018E40: +/* 04D970 7F018E40 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 04D974 7F018E44 44819000 */ mtc1 $at, $f18 +/* 04D978 7F018E48 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 04D97C 7F018E4C 44813000 */ mtc1 $at, $f6 +/* 04D980 7F018E50 46125102 */ mul.s $f4, $f10, $f18 +/* 04D984 7F018E54 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 04D988 7F018E58 44818000 */ mtc1 $at, $f16 +/* 04D98C 7F018E5C 3C018007 */ lui $at, %hi(flt_CODE_bss_800695BC) +/* 04D990 7F018E60 46062202 */ mul.s $f8, $f4, $f6 +/* 04D994 7F018E64 46104280 */ add.s $f10, $f8, $f16 +/* 04D998 7F018E68 0C002914 */ jal get_random_value +/* 04D99C 7F018E6C E42A95BC */ swc1 $f10, %lo(flt_CODE_bss_800695BC)($at) +/* 04D9A0 7F018E70 44829000 */ mtc1 $v0, $f18 +/* 04D9A4 7F018E74 3C038007 */ lui $v1, %hi(flt_CODE_bss_800695E8) +/* 04D9A8 7F018E78 44800000 */ mtc1 $zero, $f0 +/* 04D9AC 7F018E7C 246395E8 */ addiu $v1, %lo(flt_CODE_bss_800695E8) # addiu $v1, $v1, -0x6a18 +/* 04D9B0 7F018E80 04410005 */ bgez $v0, .L7F018E98 +/* 04D9B4 7F018E84 46809120 */ cvt.s.w $f4, $f18 +/* 04D9B8 7F018E88 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 04D9BC 7F018E8C 44813000 */ mtc1 $at, $f6 +/* 04D9C0 7F018E90 00000000 */ nop +/* 04D9C4 7F018E94 46062100 */ add.s $f4, $f4, $f6 +.L7F018E98: +/* 04D9C8 7F018E98 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 04D9CC 7F018E9C 44814000 */ mtc1 $at, $f8 +/* 04D9D0 7F018EA0 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 04D9D4 7F018EA4 44815000 */ mtc1 $at, $f10 +/* 04D9D8 7F018EA8 46082402 */ mul.s $f16, $f4, $f8 +/* 04D9DC 7F018EAC 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 04D9E0 7F018EB0 44813000 */ mtc1 $at, $f6 +/* 04D9E4 7F018EB4 3C018007 */ lui $at, %hi(flt_CODE_bss_800695C0) +/* 04D9E8 7F018EB8 8FBF001C */ lw $ra, 0x1c($sp) +/* 04D9EC 7F018EBC 240D0001 */ li $t5, 1 +/* 04D9F0 7F018EC0 460A8482 */ mul.s $f18, $f16, $f10 +/* 04D9F4 7F018EC4 46069100 */ add.s $f4, $f18, $f6 +/* 04D9F8 7F018EC8 E42495C0 */ swc1 $f4, %lo(flt_CODE_bss_800695C0)($at) +/* 04D9FC 7F018ECC 3C018007 */ lui $at, %hi(flt_CODE_bss_800695A4) +/* 04DA00 7F018ED0 C42895A4 */ lwc1 $f8, %lo(flt_CODE_bss_800695A4)($at) +/* 04DA04 7F018ED4 3C018007 */ lui $at, %hi(flt_CODE_bss_800695A0) +/* 04DA08 7F018ED8 E42895A0 */ swc1 $f8, %lo(flt_CODE_bss_800695A0)($at) +/* 04DA0C 7F018EDC 3C018007 */ lui $at, %hi(flt_CODE_bss_800695B0) +/* 04DA10 7F018EE0 C43095B0 */ lwc1 $f16, %lo(flt_CODE_bss_800695B0)($at) +/* 04DA14 7F018EE4 3C018007 */ lui $at, %hi(flt_CODE_bss_800695AC) +/* 04DA18 7F018EE8 E43095AC */ swc1 $f16, %lo(flt_CODE_bss_800695AC)($at) +/* 04DA1C 7F018EEC 3C018007 */ lui $at, %hi(flt_CODE_bss_800695BC) +/* 04DA20 7F018EF0 C42A95BC */ lwc1 $f10, %lo(flt_CODE_bss_800695BC)($at) +/* 04DA24 7F018EF4 3C018007 */ lui $at, %hi(flt_CODE_bss_800695B8) +/* 04DA28 7F018EF8 27BD00B8 */ addiu $sp, $sp, 0xb8 +/* 04DA2C 7F018EFC E42A95B8 */ swc1 $f10, %lo(flt_CODE_bss_800695B8)($at) +/* 04DA30 7F018F00 3C018007 */ lui $at, %hi(flt_CODE_bss_800695E4) +/* 04DA34 7F018F04 AC2D95E4 */ sw $t5, %lo(flt_CODE_bss_800695E4)($at) +/* 04DA38 7F018F08 E4600000 */ swc1 $f0, ($v1) +/* 04DA3C 7F018F0C E4600004 */ swc1 $f0, 4($v1) +/* 04DA40 7F018F10 03E00008 */ jr $ra +/* 04DA44 7F018F14 E4600008 */ swc1 $f0, 8($v1) +) +#endif + + + +void update_menu18_displaycast(void) { + if (objinstance != 0) { + set_aircraft_obj_inst_scale_to_zero(objinstance); + } + if (ptrobjinstance != 0) { + set_obj_instance_scale_to_zero(ptrobjinstance); + return; + } +} + + + + + + +#ifdef NONMATCHING +void interface_menu18_displaycast(u32 param_1,u32 param_2) +{ + u32 BVar2; + u32 uVar3; + s32 uVar1; + int iVar4; + + setvideo_far(46.00000000); + set_page_height(10.00000000,2000.00000000); + set_video2_settings_offset_24(1); + video_related_21((f32)flt_80051B08); + set_cur_player_screen_size(0x1b8,0x14a); + set_video2_width_height(0x1b8,0x14a); + set_cur_player_viewport_size(0,0); + set_video2_ulx_uly(0,0); + menu_timer += clock_timer; + if (menu_timer < 0xb5) { + uVar1 = get_controller_buttons_pressed + (0,R_CBUTTONS|L_CBUTTONS|D_CBUTTONS|U_CBUTTONS|R_TRIG|L_TRIG|DUMMY_2|DUMMY_1| + R_JPAD|L_JPAD|D_JPAD|U_JPAD|START_BUTTON|Z_TRIG|B_BUTTON|A_BUTTON); + if ((uVar1 != 0) && (full_actor_intro == FALSE)) { + set_menu_to_mode(MENU_FILE_SELECT,1); + } + return; + } + iVar4 = do_not_play_intro_movie + 1; +LAB_7f01902c: + do_not_play_intro_movie = iVar4; + if (intro_char_table[do_not_play_intro_movie].flag != 0) goto code_r0x7f01904c; + iVar4 = intro_char_table[do_not_play_intro_movie].body; + goto LAB_7f019068; +code_r0x7f01904c: + iVar4 = do_not_play_intro_movie + 1; + if (full_actor_intro != FALSE) { + iVar4 = intro_char_table[do_not_play_intro_movie].body; +LAB_7f019068: + if ((iVar4 == 0x27) && (BVar2 = check_aztec_completed_any_folder_secret_00(), BVar2 == FALSE)) { + iVar4 = do_not_play_intro_movie + 1; + goto LAB_7f01902c; + } + if ((intro_char_table[do_not_play_intro_movie].body == 0x28) && + (BVar2 = check_aztec_completed_any_folder_secret_00(), BVar2 == FALSE)) { + iVar4 = do_not_play_intro_movie + 1; + goto LAB_7f01902c; + } + if ((intro_char_table[do_not_play_intro_movie].body == 0xe) && + (BVar2 = check_aztec_completed_any_folder_secret_00(), BVar2 == FALSE)) { + uVar3 = get_random_value(); + if (false) { + trap(0x1c00); + } + if (uVar3 % 10000 != 0) { + iVar4 = do_not_play_intro_movie + 1; + goto LAB_7f01902c; + } + } + if ((intro_char_table[do_not_play_intro_movie].body == 0xd) && + (BVar2 = check_aztec_completed_any_folder_secret_00(), BVar2 == FALSE)) { + uVar3 = get_random_value(); + if (false) { + trap(0x1c00); + } + if (uVar3 % 10000 != 0) { + iVar4 = do_not_play_intro_movie + 1; + goto LAB_7f01902c; + } + } + if ((intro_char_table[do_not_play_intro_movie].body == 0xf) && + (BVar2 = check_egypt_completed_any_folder_00(), BVar2 == FALSE)) { + uVar3 = get_random_value(); + if (false) { + trap(0x1c00); + } + if (uVar3 % 10000 != 0) { + iVar4 = do_not_play_intro_movie + 1; + goto LAB_7f01902c; + } + } + if ((intro_char_table[do_not_play_intro_movie].body != 0xc) || + (BVar2 = check_egypt_completed_any_folder_00(), BVar2 != FALSE)) { +LAB_7f019268: + if (intro_char_table[do_not_play_intro_movie].body < 0) { + do_not_play_intro_movie = 0; + } + if (do_not_play_intro_movie < 1) { + if (full_actor_intro != FALSE) { + set_menu_to_mode(MENU_MISSION_SELECT,1); + set_cursor_to_stage_solo(0x11); + full_actor_intro = FALSE; + return; + } + select_ramrom_to_play(); + return; + } + set_menu_to_mode(MENU_DISPLAY_CAST,1); + return; + } + uVar3 = get_random_value(); + if (false) { + trap(0x1c00); + } + if (uVar3 % 10000 == 0) goto LAB_7f019268; + iVar4 = do_not_play_intro_movie + 1; + } + goto LAB_7f01902c; +} +#else +GLOBAL_ASM( +.text +glabel interface_menu18_displaycast +/* 04DA90 7F018F60 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 04DA94 7F018F64 3C014238 */ li $at, 0x42380000 # 46.000000 +/* 04DA98 7F018F68 AFBF0024 */ sw $ra, 0x24($sp) +/* 04DA9C 7F018F6C 44816000 */ mtc1 $at, $f12 +/* 04DAA0 7F018F70 AFB30020 */ sw $s3, 0x20($sp) +/* 04DAA4 7F018F74 AFB2001C */ sw $s2, 0x1c($sp) +/* 04DAA8 7F018F78 AFB10018 */ sw $s1, 0x18($sp) +/* 04DAAC 7F018F7C 0C001151 */ jal setvideo_far +/* 04DAB0 7F018F80 AFB00014 */ sw $s0, 0x14($sp) +/* 04DAB4 7F018F84 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 04DAB8 7F018F88 44816000 */ mtc1 $at, $f12 +/* 04DABC 7F018F8C 3C0144FA */ li $at, 0x44FA0000 # 2000.000000 +/* 04DAC0 7F018F90 44817000 */ mtc1 $at, $f14 +/* 04DAC4 7F018F94 0C001194 */ jal set_page_height +/* 04DAC8 7F018F98 00000000 */ nop +/* 04DACC 7F018F9C 0C00114D */ jal set_video2_settings_offset_24 +/* 04DAD0 7F018FA0 24040001 */ li $a0, 1 +/* 04DAD4 7F018FA4 3C018005 */ lui $at, %hi(D_80051B08) +/* 04DAD8 7F018FA8 0C001164 */ jal video_related_21 +/* 04DADC 7F018FAC C42C1B08 */ lwc1 $f12, %lo(D_80051B08)($at) +/* 04DAE0 7F018FB0 240401B8 */ li $a0, 440 +/* 04DAE4 7F018FB4 0FC26C77 */ jal set_cur_player_screen_size +/* 04DAE8 7F018FB8 2405014A */ li $a1, 330 +/* 04DAEC 7F018FBC 240401B8 */ li $a0, 440 +/* 04DAF0 7F018FC0 0C00110F */ jal set_video2_width_height +/* 04DAF4 7F018FC4 2405014A */ li $a1, 330 +/* 04DAF8 7F018FC8 00002025 */ move $a0, $zero +/* 04DAFC 7F018FCC 0FC26C7E */ jal set_cur_player_viewport_size +/* 04DB00 7F018FD0 00002825 */ move $a1, $zero +/* 04DB04 7F018FD4 00002025 */ move $a0, $zero +/* 04DB08 7F018FD8 0C00112F */ jal set_video2_ulx_uly +/* 04DB0C 7F018FDC 00002825 */ move $a1, $zero +/* 04DB10 7F018FE0 3C028003 */ lui $v0, %hi(menu_timer) +/* 04DB14 7F018FE4 2442A8CC */ addiu $v0, %lo(menu_timer) # addiu $v0, $v0, -0x5734 +/* 04DB18 7F018FE8 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 04DB1C 7F018FEC 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 04DB20 7F018FF0 8C4E0000 */ lw $t6, ($v0) +/* 04DB24 7F018FF4 3C108003 */ lui $s0, %hi(do_not_play_intro_movie) +/* 04DB28 7F018FF8 00002025 */ move $a0, $zero +/* 04DB2C 7F018FFC 01CFC021 */ addu $t8, $t6, $t7 +/* 04DB30 7F019000 2B0100B5 */ slti $at, $t8, 0xb5 +/* 04DB34 7F019004 142000B7 */ bnez $at, .L7F0192E4 +/* 04DB38 7F019008 AC580000 */ sw $t8, ($v0) +/* 04DB3C 7F01900C 2610B5E8 */ addiu $s0, %lo(do_not_play_intro_movie) # addiu $s0, $s0, -0x4a18 +/* 04DB40 7F019010 8E080000 */ lw $t0, ($s0) +/* 04DB44 7F019014 3C118003 */ lui $s1, %hi(intro_char_table) +/* 04DB48 7F019018 2631B600 */ addiu $s1, %lo(intro_char_table) # addiu $s1, $s1, -0x4a00 +/* 04DB4C 7F01901C 25090001 */ addiu $t1, $t0, 1 +/* 04DB50 7F019020 AE090000 */ sw $t1, ($s0) +/* 04DB54 7F019024 24132710 */ li $s3, 10000 +/* 04DB58 7F019028 24120014 */ li $s2, 20 +.L7F01902C: +/* 04DB5C 7F01902C 8E030000 */ lw $v1, ($s0) +/* 04DB60 7F019030 3C0C8003 */ lui $t4, %hi(full_actor_intro) +/* 04DB64 7F019034 00720019 */ multu $v1, $s2 +/* 04DB68 7F019038 00005012 */ mflo $t2 +/* 04DB6C 7F01903C 022A1021 */ addu $v0, $s1, $t2 +/* 04DB70 7F019040 8C4B0010 */ lw $t3, 0x10($v0) +/* 04DB74 7F019044 51600008 */ beql $t3, $zero, .L7F019068 +/* 04DB78 7F019048 8C4E0000 */ lw $t6, ($v0) +/* 04DB7C 7F01904C 8D8CB5FC */ lw $t4, %lo(full_actor_intro)($t4) +/* 04DB80 7F019050 246D0001 */ addiu $t5, $v1, 1 +/* 04DB84 7F019054 55800004 */ bnezl $t4, .L7F019068 +/* 04DB88 7F019058 8C4E0000 */ lw $t6, ($v0) +/* 04DB8C 7F01905C 1000FFF3 */ b .L7F01902C +/* 04DB90 7F019060 AE0D0000 */ sw $t5, ($s0) +/* 04DB94 7F019064 8C4E0000 */ lw $t6, ($v0) +.L7F019068: +/* 04DB98 7F019068 24010027 */ li $at, 39 +/* 04DB9C 7F01906C 55C1000A */ bnel $t6, $at, .L7F019098 +/* 04DBA0 7F019070 8E190000 */ lw $t9, ($s0) +/* 04DBA4 7F019074 0FC07AC8 */ jal check_aztec_completed_any_folder_secret_00 +/* 04DBA8 7F019078 00000000 */ nop +/* 04DBAC 7F01907C 54400006 */ bnezl $v0, .L7F019098 +/* 04DBB0 7F019080 8E190000 */ lw $t9, ($s0) +/* 04DBB4 7F019084 8E0F0000 */ lw $t7, ($s0) +/* 04DBB8 7F019088 25F80001 */ addiu $t8, $t7, 1 +/* 04DBBC 7F01908C 1000FFE7 */ b .L7F01902C +/* 04DBC0 7F019090 AE180000 */ sw $t8, ($s0) +/* 04DBC4 7F019094 8E190000 */ lw $t9, ($s0) +.L7F019098: +/* 04DBC8 7F019098 24010028 */ li $at, 40 +/* 04DBCC 7F01909C 03320019 */ multu $t9, $s2 +/* 04DBD0 7F0190A0 00004012 */ mflo $t0 +/* 04DBD4 7F0190A4 02284821 */ addu $t1, $s1, $t0 +/* 04DBD8 7F0190A8 8D2A0000 */ lw $t2, ($t1) +/* 04DBDC 7F0190AC 5541000A */ bnel $t2, $at, .L7F0190D8 +/* 04DBE0 7F0190B0 8E0D0000 */ lw $t5, ($s0) +/* 04DBE4 7F0190B4 0FC07AC8 */ jal check_aztec_completed_any_folder_secret_00 +/* 04DBE8 7F0190B8 00000000 */ nop +/* 04DBEC 7F0190BC 54400006 */ bnezl $v0, .L7F0190D8 +/* 04DBF0 7F0190C0 8E0D0000 */ lw $t5, ($s0) +/* 04DBF4 7F0190C4 8E0B0000 */ lw $t3, ($s0) +/* 04DBF8 7F0190C8 256C0001 */ addiu $t4, $t3, 1 +/* 04DBFC 7F0190CC 1000FFD7 */ b .L7F01902C +/* 04DC00 7F0190D0 AE0C0000 */ sw $t4, ($s0) +/* 04DC04 7F0190D4 8E0D0000 */ lw $t5, ($s0) +.L7F0190D8: +/* 04DC08 7F0190D8 2401000E */ li $at, 14 +/* 04DC0C 7F0190DC 01B20019 */ multu $t5, $s2 +/* 04DC10 7F0190E0 00007012 */ mflo $t6 +/* 04DC14 7F0190E4 022E7821 */ addu $t7, $s1, $t6 +/* 04DC18 7F0190E8 8DF80000 */ lw $t8, ($t7) +/* 04DC1C 7F0190EC 57010013 */ bnel $t8, $at, .L7F01913C +/* 04DC20 7F0190F0 8E0A0000 */ lw $t2, ($s0) +/* 04DC24 7F0190F4 0FC07AC8 */ jal check_aztec_completed_any_folder_secret_00 +/* 04DC28 7F0190F8 00000000 */ nop +/* 04DC2C 7F0190FC 5440000F */ bnezl $v0, .L7F01913C +/* 04DC30 7F019100 8E0A0000 */ lw $t2, ($s0) +/* 04DC34 7F019104 0C002914 */ jal get_random_value +/* 04DC38 7F019108 00000000 */ nop +/* 04DC3C 7F01910C 0053001B */ divu $zero, $v0, $s3 +/* 04DC40 7F019110 0000C810 */ mfhi $t9 +/* 04DC44 7F019114 16600002 */ bnez $s3, .L7F019120 +/* 04DC48 7F019118 00000000 */ nop +/* 04DC4C 7F01911C 0007000D */ break 7 +.L7F019120: +/* 04DC50 7F019120 53200006 */ beql $t9, $zero, .L7F01913C +/* 04DC54 7F019124 8E0A0000 */ lw $t2, ($s0) +/* 04DC58 7F019128 8E080000 */ lw $t0, ($s0) +/* 04DC5C 7F01912C 25090001 */ addiu $t1, $t0, 1 +/* 04DC60 7F019130 1000FFBE */ b .L7F01902C +/* 04DC64 7F019134 AE090000 */ sw $t1, ($s0) +/* 04DC68 7F019138 8E0A0000 */ lw $t2, ($s0) +.L7F01913C: +/* 04DC6C 7F01913C 2401000D */ li $at, 13 +/* 04DC70 7F019140 01520019 */ multu $t2, $s2 +/* 04DC74 7F019144 00005812 */ mflo $t3 +/* 04DC78 7F019148 022B6021 */ addu $t4, $s1, $t3 +/* 04DC7C 7F01914C 8D8D0000 */ lw $t5, ($t4) +/* 04DC80 7F019150 55A10013 */ bnel $t5, $at, .L7F0191A0 +/* 04DC84 7F019154 8E190000 */ lw $t9, ($s0) +/* 04DC88 7F019158 0FC07AC8 */ jal check_aztec_completed_any_folder_secret_00 +/* 04DC8C 7F01915C 00000000 */ nop +/* 04DC90 7F019160 5440000F */ bnezl $v0, .L7F0191A0 +/* 04DC94 7F019164 8E190000 */ lw $t9, ($s0) +/* 04DC98 7F019168 0C002914 */ jal get_random_value +/* 04DC9C 7F01916C 00000000 */ nop +/* 04DCA0 7F019170 0053001B */ divu $zero, $v0, $s3 +/* 04DCA4 7F019174 00007010 */ mfhi $t6 +/* 04DCA8 7F019178 16600002 */ bnez $s3, .L7F019184 +/* 04DCAC 7F01917C 00000000 */ nop +/* 04DCB0 7F019180 0007000D */ break 7 +.L7F019184: +/* 04DCB4 7F019184 51C00006 */ beql $t6, $zero, .L7F0191A0 +/* 04DCB8 7F019188 8E190000 */ lw $t9, ($s0) +/* 04DCBC 7F01918C 8E0F0000 */ lw $t7, ($s0) +/* 04DCC0 7F019190 25F80001 */ addiu $t8, $t7, 1 +/* 04DCC4 7F019194 1000FFA5 */ b .L7F01902C +/* 04DCC8 7F019198 AE180000 */ sw $t8, ($s0) +/* 04DCCC 7F01919C 8E190000 */ lw $t9, ($s0) +.L7F0191A0: +/* 04DCD0 7F0191A0 2401000F */ li $at, 15 +/* 04DCD4 7F0191A4 03320019 */ multu $t9, $s2 +/* 04DCD8 7F0191A8 00004012 */ mflo $t0 +/* 04DCDC 7F0191AC 02284821 */ addu $t1, $s1, $t0 +/* 04DCE0 7F0191B0 8D2A0000 */ lw $t2, ($t1) +/* 04DCE4 7F0191B4 55410013 */ bnel $t2, $at, .L7F019204 +/* 04DCE8 7F0191B8 8E0E0000 */ lw $t6, ($s0) +/* 04DCEC 7F0191BC 0FC07ADC */ jal check_egypt_completed_any_folder_00 +/* 04DCF0 7F0191C0 00000000 */ nop +/* 04DCF4 7F0191C4 5440000F */ bnezl $v0, .L7F019204 +/* 04DCF8 7F0191C8 8E0E0000 */ lw $t6, ($s0) +/* 04DCFC 7F0191CC 0C002914 */ jal get_random_value +/* 04DD00 7F0191D0 00000000 */ nop +/* 04DD04 7F0191D4 0053001B */ divu $zero, $v0, $s3 +/* 04DD08 7F0191D8 00005810 */ mfhi $t3 +/* 04DD0C 7F0191DC 16600002 */ bnez $s3, .L7F0191E8 +/* 04DD10 7F0191E0 00000000 */ nop +/* 04DD14 7F0191E4 0007000D */ break 7 +.L7F0191E8: +/* 04DD18 7F0191E8 51600006 */ beql $t3, $zero, .L7F019204 +/* 04DD1C 7F0191EC 8E0E0000 */ lw $t6, ($s0) +/* 04DD20 7F0191F0 8E0C0000 */ lw $t4, ($s0) +/* 04DD24 7F0191F4 258D0001 */ addiu $t5, $t4, 1 +/* 04DD28 7F0191F8 1000FF8C */ b .L7F01902C +/* 04DD2C 7F0191FC AE0D0000 */ sw $t5, ($s0) +/* 04DD30 7F019200 8E0E0000 */ lw $t6, ($s0) +.L7F019204: +/* 04DD34 7F019204 2401000C */ li $at, 12 +/* 04DD38 7F019208 01D20019 */ multu $t6, $s2 +/* 04DD3C 7F01920C 00007812 */ mflo $t7 +/* 04DD40 7F019210 022FC021 */ addu $t8, $s1, $t7 +/* 04DD44 7F019214 8F190000 */ lw $t9, ($t8) +/* 04DD48 7F019218 57210013 */ bnel $t9, $at, .L7F019268 +/* 04DD4C 7F01921C 8E030000 */ lw $v1, ($s0) +/* 04DD50 7F019220 0FC07ADC */ jal check_egypt_completed_any_folder_00 +/* 04DD54 7F019224 00000000 */ nop +/* 04DD58 7F019228 5440000F */ bnezl $v0, .L7F019268 +/* 04DD5C 7F01922C 8E030000 */ lw $v1, ($s0) +/* 04DD60 7F019230 0C002914 */ jal get_random_value +/* 04DD64 7F019234 00000000 */ nop +/* 04DD68 7F019238 0053001B */ divu $zero, $v0, $s3 +/* 04DD6C 7F01923C 00004010 */ mfhi $t0 +/* 04DD70 7F019240 16600002 */ bnez $s3, .L7F01924C +/* 04DD74 7F019244 00000000 */ nop +/* 04DD78 7F019248 0007000D */ break 7 +.L7F01924C: +/* 04DD7C 7F01924C 51000006 */ beql $t0, $zero, .L7F019268 +/* 04DD80 7F019250 8E030000 */ lw $v1, ($s0) +/* 04DD84 7F019254 8E090000 */ lw $t1, ($s0) +/* 04DD88 7F019258 252A0001 */ addiu $t2, $t1, 1 +/* 04DD8C 7F01925C 1000FF73 */ b .L7F01902C +/* 04DD90 7F019260 AE0A0000 */ sw $t2, ($s0) +/* 04DD94 7F019264 8E030000 */ lw $v1, ($s0) +.L7F019268: +/* 04DD98 7F019268 24040018 */ li $a0, 24 +/* 04DD9C 7F01926C 3C0E8003 */ lui $t6, %hi(full_actor_intro) +/* 04DDA0 7F019270 00720019 */ multu $v1, $s2 +/* 04DDA4 7F019274 00005812 */ mflo $t3 +/* 04DDA8 7F019278 022B6021 */ addu $t4, $s1, $t3 +/* 04DDAC 7F01927C 8D8D0000 */ lw $t5, ($t4) +/* 04DDB0 7F019280 05A10003 */ bgez $t5, .L7F019290 +/* 04DDB4 7F019284 00000000 */ nop +/* 04DDB8 7F019288 AE000000 */ sw $zero, ($s0) +/* 04DDBC 7F01928C 00001825 */ move $v1, $zero +.L7F019290: +/* 04DDC0 7F019290 18600005 */ blez $v1, .L7F0192A8 +/* 04DDC4 7F019294 00000000 */ nop +/* 04DDC8 7F019298 0FC06975 */ jal set_menu_to_mode +/* 04DDCC 7F01929C 24050001 */ li $a1, 1 +/* 04DDD0 7F0192A0 1000001B */ b .L7F019310 +/* 04DDD4 7F0192A4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0192A8: +/* 04DDD8 7F0192A8 8DCEB5FC */ lw $t6, %lo(full_actor_intro)($t6) +/* 04DDDC 7F0192AC 24040007 */ li $a0, 7 +/* 04DDE0 7F0192B0 11C00008 */ beqz $t6, .L7F0192D4 +/* 04DDE4 7F0192B4 00000000 */ nop +/* 04DDE8 7F0192B8 0FC06975 */ jal set_menu_to_mode +/* 04DDEC 7F0192BC 24050001 */ li $a1, 1 +/* 04DDF0 7F0192C0 0FC038F8 */ jal set_cursor_to_stage_solo +/* 04DDF4 7F0192C4 24040011 */ li $a0, 17 +/* 04DDF8 7F0192C8 3C018003 */ lui $at, %hi(full_actor_intro) +/* 04DDFC 7F0192CC 1000000F */ b .L7F01930C +/* 04DE00 7F0192D0 AC20B5FC */ sw $zero, %lo(full_actor_intro)($at) +.L7F0192D4: +/* 04DE04 7F0192D4 0FC3025C */ jal select_ramrom_to_play +/* 04DE08 7F0192D8 00000000 */ nop +/* 04DE0C 7F0192DC 1000000C */ b .L7F019310 +/* 04DE10 7F0192E0 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0192E4: +/* 04DE14 7F0192E4 0C0030EB */ jal get_controller_buttons_pressed +/* 04DE18 7F0192E8 3405FFFF */ li $a1, 65535 +/* 04DE1C 7F0192EC 10400007 */ beqz $v0, .L7F01930C +/* 04DE20 7F0192F0 3C0F8003 */ lui $t7, %hi(full_actor_intro) +/* 04DE24 7F0192F4 8DEFB5FC */ lw $t7, %lo(full_actor_intro)($t7) +/* 04DE28 7F0192F8 24040005 */ li $a0, 5 +/* 04DE2C 7F0192FC 55E00004 */ bnezl $t7, .L7F019310 +/* 04DE30 7F019300 8FBF0024 */ lw $ra, 0x24($sp) +/* 04DE34 7F019304 0FC06975 */ jal set_menu_to_mode +/* 04DE38 7F019308 24050001 */ li $a1, 1 +.L7F01930C: +/* 04DE3C 7F01930C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F019310: +/* 04DE40 7F019310 8FB00014 */ lw $s0, 0x14($sp) +/* 04DE44 7F019314 8FB10018 */ lw $s1, 0x18($sp) +/* 04DE48 7F019318 8FB2001C */ lw $s2, 0x1c($sp) +/* 04DE4C 7F01931C 8FB30020 */ lw $s3, 0x20($sp) +/* 04DE50 7F019320 03E00008 */ jr $ra +/* 04DE54 7F019324 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void constructor_menu18_displaycast(void) { + +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu18_displaycast +/* 04DE58 7F019328 27BDFDB0 */ addiu $sp, $sp, -0x250 +/* 04DE5C 7F01932C 3C0E8003 */ lui $t6, %hi(D_8002BA78) +/* 04DE60 7F019330 AFBF004C */ sw $ra, 0x4c($sp) +/* 04DE64 7F019334 AFB40048 */ sw $s4, 0x48($sp) +/* 04DE68 7F019338 AFB30044 */ sw $s3, 0x44($sp) +/* 04DE6C 7F01933C AFB20040 */ sw $s2, 0x40($sp) +/* 04DE70 7F019340 AFB1003C */ sw $s1, 0x3c($sp) +/* 04DE74 7F019344 AFB00038 */ sw $s0, 0x38($sp) +/* 04DE78 7F019348 25CEBA78 */ addiu $t6, %lo(D_8002BA78) # addiu $t6, $t6, -0x4588 +/* 04DE7C 7F01934C 8DC10000 */ lw $at, ($t6) +/* 04DE80 7F019350 27AF0244 */ addiu $t7, $sp, 0x244 +/* 04DE84 7F019354 8DCC0004 */ lw $t4, 4($t6) +/* 04DE88 7F019358 ADE10000 */ sw $at, ($t7) +/* 04DE8C 7F01935C 8DC10008 */ lw $at, 8($t6) +/* 04DE90 7F019360 3C0D8003 */ lui $t5, %hi(D_8002BA84) +/* 04DE94 7F019364 25ADBA84 */ addiu $t5, %lo(D_8002BA84) # addiu $t5, $t5, -0x457c +/* 04DE98 7F019368 ADEC0004 */ sw $t4, 4($t7) +/* 04DE9C 7F01936C ADE10008 */ sw $at, 8($t7) +/* 04DEA0 7F019370 8DA10000 */ lw $at, ($t5) +/* 04DEA4 7F019374 27B90238 */ addiu $t9, $sp, 0x238 +/* 04DEA8 7F019378 8DAF0004 */ lw $t7, 4($t5) +/* 04DEAC 7F01937C AF210000 */ sw $at, ($t9) +/* 04DEB0 7F019380 8DA10008 */ lw $at, 8($t5) +/* 04DEB4 7F019384 3C0C8003 */ lui $t4, %hi(D_8002BA90) +/* 04DEB8 7F019388 258CBA90 */ addiu $t4, %lo(D_8002BA90) # addiu $t4, $t4, -0x4570 +/* 04DEBC 7F01938C AF2F0004 */ sw $t7, 4($t9) +/* 04DEC0 7F019390 AF210008 */ sw $at, 8($t9) +/* 04DEC4 7F019394 8D810000 */ lw $at, ($t4) +/* 04DEC8 7F019398 27AE022C */ addiu $t6, $sp, 0x22c +/* 04DECC 7F01939C 8D990004 */ lw $t9, 4($t4) +/* 04DED0 7F0193A0 ADC10000 */ sw $at, ($t6) +/* 04DED4 7F0193A4 8D810008 */ lw $at, 8($t4) +/* 04DED8 7F0193A8 3C0F8003 */ lui $t7, %hi(D_8002BA9C) +/* 04DEDC 7F0193AC 25EFBA9C */ addiu $t7, %lo(D_8002BA9C) # addiu $t7, $t7, -0x4564 +/* 04DEE0 7F0193B0 ADD90004 */ sw $t9, 4($t6) +/* 04DEE4 7F0193B4 ADC10008 */ sw $at, 8($t6) +/* 04DEE8 7F0193B8 00809825 */ move $s3, $a0 +/* 04DEEC 7F0193BC 25EE003C */ addiu $t6, $t7, 0x3c +/* 04DEF0 7F0193C0 27AD01A8 */ addiu $t5, $sp, 0x1a8 +.L7F0193C4: +/* 04DEF4 7F0193C4 8DE10000 */ lw $at, ($t7) +/* 04DEF8 7F0193C8 25EF000C */ addiu $t7, $t7, 0xc +/* 04DEFC 7F0193CC 25AD000C */ addiu $t5, $t5, 0xc +/* 04DF00 7F0193D0 ADA1FFF4 */ sw $at, -0xc($t5) +/* 04DF04 7F0193D4 8DE1FFF8 */ lw $at, -8($t7) +/* 04DF08 7F0193D8 ADA1FFF8 */ sw $at, -8($t5) +/* 04DF0C 7F0193DC 8DE1FFFC */ lw $at, -4($t7) +/* 04DF10 7F0193E0 15EEFFF8 */ bne $t7, $t6, .L7F0193C4 +/* 04DF14 7F0193E4 ADA1FFFC */ sw $at, -4($t5) +/* 04DF18 7F0193E8 8DE10000 */ lw $at, ($t7) +/* 04DF1C 7F0193EC 3C028003 */ lui $v0, %hi(menu_timer) +/* 04DF20 7F0193F0 3C198003 */ lui $t9, %hi(D_8002BADC) +/* 04DF24 7F0193F4 ADA10000 */ sw $at, ($t5) +/* 04DF28 7F0193F8 8C42A8CC */ lw $v0, %lo(menu_timer)($v0) +/* 04DF2C 7F0193FC 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 04DF30 7F019400 44819000 */ mtc1 $at, $f18 +/* 04DF34 7F019404 44827000 */ mtc1 $v0, $f14 +/* 04DF38 7F019408 2739BADC */ addiu $t9, %lo(D_8002BADC) # addiu $t9, $t9, -0x4524 +/* 04DF3C 7F01940C 8F210000 */ lw $at, ($t9) +/* 04DF40 7F019410 46807020 */ cvt.s.w $f0, $f14 +/* 04DF44 7F019414 8F2E0004 */ lw $t6, 4($t9) +/* 04DF48 7F019418 27AC0134 */ addiu $t4, $sp, 0x134 +/* 04DF4C 7F01941C AD810000 */ sw $at, ($t4) +/* 04DF50 7F019420 8F210008 */ lw $at, 8($t9) +/* 04DF54 7F019424 AD8E0004 */ sw $t6, 4($t4) +/* 04DF58 7F019428 46120403 */ div.s $f16, $f0, $f18 +/* 04DF5C 7F01942C 04400004 */ bltz $v0, .L7F019440 +/* 04DF60 7F019430 AD810008 */ sw $at, 8($t4) +/* 04DF64 7F019434 284100B4 */ slti $at, $v0, 0xb4 +/* 04DF68 7F019438 54200005 */ bnezl $at, .L7F019450 +/* 04DF6C 7F01943C 2841001E */ slti $at, $v0, 0x1e +.L7F019440: +/* 04DF70 7F019440 44802000 */ mtc1 $zero, $f4 +/* 04DF74 7F019444 10000018 */ b .L7F0194A8 +/* 04DF78 7F019448 E7A40144 */ swc1 $f4, 0x144($sp) +/* 04DF7C 7F01944C 2841001E */ slti $at, $v0, 0x1e +.L7F019450: +/* 04DF80 7F019450 10200006 */ beqz $at, .L7F01946C +/* 04DF84 7F019454 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 04DF88 7F019458 44815000 */ mtc1 $at, $f10 +/* 04DF8C 7F01945C 00000000 */ nop +/* 04DF90 7F019460 460A0203 */ div.s $f8, $f0, $f10 +/* 04DF94 7F019464 10000010 */ b .L7F0194A8 +/* 04DF98 7F019468 E7A80144 */ swc1 $f8, 0x144($sp) +.L7F01946C: +/* 04DF9C 7F01946C 28410097 */ slti $at, $v0, 0x97 +/* 04DFA0 7F019470 14200009 */ bnez $at, .L7F019498 +/* 04DFA4 7F019474 240F00B4 */ li $t7, 180 +/* 04DFA8 7F019478 01E26823 */ subu $t5, $t7, $v0 +/* 04DFAC 7F01947C 448D3000 */ mtc1 $t5, $f6 +/* 04DFB0 7F019480 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 04DFB4 7F019484 44815000 */ mtc1 $at, $f10 +/* 04DFB8 7F019488 46803120 */ cvt.s.w $f4, $f6 +/* 04DFBC 7F01948C 460A2203 */ div.s $f8, $f4, $f10 +/* 04DFC0 7F019490 10000005 */ b .L7F0194A8 +/* 04DFC4 7F019494 E7A80144 */ swc1 $f8, 0x144($sp) +.L7F019498: +/* 04DFC8 7F019498 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 04DFCC 7F01949C 44813000 */ mtc1 $at, $f6 +/* 04DFD0 7F0194A0 00000000 */ nop +/* 04DFD4 7F0194A4 E7A60144 */ swc1 $f6, 0x144($sp) +.L7F0194A8: +/* 04DFD8 7F0194A8 02602025 */ move $a0, $s3 +/* 04DFDC 7F0194AC 00002825 */ move $a1, $zero +/* 04DFE0 7F0194B0 00003025 */ move $a2, $zero +/* 04DFE4 7F0194B4 00003825 */ move $a3, $zero +/* 04DFE8 7F0194B8 0C0011B4 */ jal set_setfillcolor +/* 04DFEC 7F0194BC E7B00148 */ swc1 $f16, 0x148($sp) +/* 04DFF0 7F0194C0 0C000FBE */ jal insert_generic_fillrect +/* 04DFF4 7F0194C4 00402025 */ move $a0, $v0 +/* 04DFF8 7F0194C8 3C018007 */ lui $at, %hi(flt_CODE_bss_800695A4) +/* 04DFFC 7F0194CC C42095A4 */ lwc1 $f0, %lo(flt_CODE_bss_800695A4)($at) +/* 04E000 7F0194D0 3C018007 */ lui $at, %hi(flt_CODE_bss_800695A8) +/* 04E004 7F0194D4 C42495A8 */ lwc1 $f4, %lo(flt_CODE_bss_800695A8)($at) +/* 04E008 7F0194D8 C7B00148 */ lwc1 $f16, 0x148($sp) +/* 04E00C 7F0194DC 3C118007 */ lui $s1, %hi(flt_CODE_bss_800695A0) +/* 04E010 7F0194E0 46002281 */ sub.s $f10, $f4, $f0 +/* 04E014 7F0194E4 263195A0 */ addiu $s1, %lo(flt_CODE_bss_800695A0) # addiu $s1, $s1, -0x6a60 +/* 04E018 7F0194E8 3C018007 */ lui $at, %hi(flt_CODE_bss_800695B0) +/* 04E01C 7F0194EC 3C108007 */ lui $s0, %hi(flt_CODE_bss_800695AC) +/* 04E020 7F0194F0 46105202 */ mul.s $f8, $f10, $f16 +/* 04E024 7F0194F4 261095AC */ addiu $s0, %lo(flt_CODE_bss_800695AC) # addiu $s0, $s0, -0x6a54 +/* 04E028 7F0194F8 3C128007 */ lui $s2, %hi(flt_CODE_bss_800695B8) +/* 04E02C 7F0194FC 265295B8 */ addiu $s2, %lo(flt_CODE_bss_800695B8) # addiu $s2, $s2, -0x6a48 +/* 04E030 7F019500 00409825 */ move $s3, $v0 +/* 04E034 7F019504 46004180 */ add.s $f6, $f8, $f0 +/* 04E038 7F019508 E6260000 */ swc1 $f6, ($s1) +/* 04E03C 7F01950C C42295B0 */ lwc1 $f2, %lo(flt_CODE_bss_800695B0)($at) +/* 04E040 7F019510 3C018007 */ lui $at, %hi(flt_CODE_bss_800695B4) +/* 04E044 7F019514 C42495B4 */ lwc1 $f4, %lo(flt_CODE_bss_800695B4)($at) +/* 04E048 7F019518 3C018007 */ lui $at, %hi(flt_CODE_bss_800695BC) +/* 04E04C 7F01951C 46022281 */ sub.s $f10, $f4, $f2 +/* 04E050 7F019520 46105202 */ mul.s $f8, $f10, $f16 +/* 04E054 7F019524 46024180 */ add.s $f6, $f8, $f2 +/* 04E058 7F019528 E6060000 */ swc1 $f6, ($s0) +/* 04E05C 7F01952C C42C95BC */ lwc1 $f12, %lo(flt_CODE_bss_800695BC)($at) +/* 04E060 7F019530 3C018007 */ lui $at, %hi(flt_CODE_bss_800695C0) +/* 04E064 7F019534 C42495C0 */ lwc1 $f4, %lo(flt_CODE_bss_800695C0)($at) +/* 04E068 7F019538 C60E0000 */ lwc1 $f14, ($s0) +/* 04E06C 7F01953C 460C2281 */ sub.s $f10, $f4, $f12 +/* 04E070 7F019540 44802000 */ mtc1 $zero, $f4 +/* 04E074 7F019544 46105202 */ mul.s $f8, $f10, $f16 +/* 04E078 7F019548 4604703C */ c.lt.s $f14, $f4 +/* 04E07C 7F01954C 460C4180 */ add.s $f6, $f8, $f12 +/* 04E080 7F019550 45000006 */ bc1f .L7F01956C +/* 04E084 7F019554 E6460000 */ swc1 $f6, ($s2) +/* 04E088 7F019558 3C018005 */ lui $at, %hi(D_80051B0C) +/* 04E08C 7F01955C C42A1B0C */ lwc1 $f10, %lo(D_80051B0C)($at) +/* 04E090 7F019560 460A7200 */ add.s $f8, $f14, $f10 +/* 04E094 7F019564 E6080000 */ swc1 $f8, ($s0) +/* 04E098 7F019568 C60E0000 */ lwc1 $f14, ($s0) +.L7F01956C: +/* 04E09C 7F01956C 0FC15FAB */ jal sinf +/* 04E0A0 7F019570 46007306 */ mov.s $f12, $f14 +/* 04E0A4 7F019574 E7A00078 */ swc1 $f0, 0x78($sp) +/* 04E0A8 7F019578 0FC15FA8 */ jal cosf +/* 04E0AC 7F01957C C60C0000 */ lwc1 $f12, ($s0) +/* 04E0B0 7F019580 3C018005 */ lui $at, %hi(D_80051B10) +/* 04E0B4 7F019584 C4261B10 */ lwc1 $f6, %lo(D_80051B10)($at) +/* 04E0B8 7F019588 C6220000 */ lwc1 $f2, ($s1) +/* 04E0BC 7F01958C C7A80078 */ lwc1 $f8, 0x78($sp) +/* 04E0C0 7F019590 46060102 */ mul.s $f4, $f0, $f6 +/* 04E0C4 7F019594 C60C0000 */ lwc1 $f12, ($s0) +/* 04E0C8 7F019598 46022282 */ mul.s $f10, $f4, $f2 +/* 04E0CC 7F01959C 00000000 */ nop +/* 04E0D0 7F0195A0 46081182 */ mul.s $f6, $f2, $f8 +/* 04E0D4 7F0195A4 C6480000 */ lwc1 $f8, ($s2) +/* 04E0D8 7F0195A8 E7A80248 */ swc1 $f8, 0x248($sp) +/* 04E0DC 7F0195AC 46065100 */ add.s $f4, $f10, $f6 +/* 04E0E0 7F0195B0 0FC15FA8 */ jal cosf +/* 04E0E4 7F0195B4 E7A40244 */ swc1 $f4, 0x244($sp) +/* 04E0E8 7F0195B8 E7A00078 */ swc1 $f0, 0x78($sp) +/* 04E0EC 7F0195BC 0FC15FAB */ jal sinf +/* 04E0F0 7F0195C0 C60C0000 */ lwc1 $f12, ($s0) +/* 04E0F4 7F0195C4 C6220000 */ lwc1 $f2, ($s1) +/* 04E0F8 7F0195C8 C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 04E0FC 7F0195CC 3C018005 */ lui $at, %hi(D_80051B14) +/* 04E100 7F0195D0 C4241B14 */ lwc1 $f4, %lo(D_80051B14)($at) +/* 04E104 7F0195D4 460A1182 */ mul.s $f6, $f2, $f10 +/* 04E108 7F0195D8 C60C0000 */ lwc1 $f12, ($s0) +/* 04E10C 7F0195DC 46040202 */ mul.s $f8, $f0, $f4 +/* 04E110 7F0195E0 00000000 */ nop +/* 04E114 7F0195E4 46024282 */ mul.s $f10, $f8, $f2 +/* 04E118 7F0195E8 460A3101 */ sub.s $f4, $f6, $f10 +/* 04E11C 7F0195EC 0FC15FA8 */ jal cosf +/* 04E120 7F0195F0 E7A4024C */ swc1 $f4, 0x24c($sp) +/* 04E124 7F0195F4 3C018005 */ lui $at, %hi(D_80051B18) +/* 04E128 7F0195F8 C4281B18 */ lwc1 $f8, %lo(D_80051B18)($at) +/* 04E12C 7F0195FC C62A0000 */ lwc1 $f10, ($s1) +/* 04E130 7F019600 C60C0000 */ lwc1 $f12, ($s0) +/* 04E134 7F019604 46080182 */ mul.s $f6, $f0, $f8 +/* 04E138 7F019608 C7A80238 */ lwc1 $f8, 0x238($sp) +/* 04E13C 7F01960C 460A3102 */ mul.s $f4, $f6, $f10 +/* 04E140 7F019610 46044180 */ add.s $f6, $f8, $f4 +/* 04E144 7F019614 0FC15FAB */ jal sinf +/* 04E148 7F019618 E7A60238 */ swc1 $f6, 0x238($sp) +/* 04E14C 7F01961C 3C018005 */ lui $at, %hi(D_80051B1C) +/* 04E150 7F019620 C4281B1C */ lwc1 $f8, %lo(D_80051B1C)($at) +/* 04E154 7F019624 46000287 */ neg.s $f10, $f0 +/* 04E158 7F019628 C6260000 */ lwc1 $f6, ($s1) +/* 04E15C 7F01962C 46085102 */ mul.s $f4, $f10, $f8 +/* 04E160 7F019630 C7A80240 */ lwc1 $f8, 0x240($sp) +/* 04E164 7F019634 24040002 */ li $a0, 2 +/* 04E168 7F019638 46062282 */ mul.s $f10, $f4, $f6 +/* 04E16C 7F01963C 460A4100 */ add.s $f4, $f8, $f10 +/* 04E170 7F019640 0FC2F5BE */ jal sub_GAME_7F0BD6F8 +/* 04E174 7F019644 E7A40240 */ swc1 $f4, 0x240($sp) +/* 04E178 7F019648 44800000 */ mtc1 $zero, $f0 +/* 04E17C 7F01964C 3C01457A */ li $at, 0x457A0000 # 4000.000000 +/* 04E180 7F019650 44813000 */ mtc1 $at, $f6 +/* 04E184 7F019654 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 04E188 7F019658 44814000 */ mtc1 $at, $f8 +/* 04E18C 7F01965C 44060000 */ mfc1 $a2, $f0 +/* 04E190 7F019660 44070000 */ mfc1 $a3, $f0 +/* 04E194 7F019664 00408025 */ move $s0, $v0 +/* 04E198 7F019668 27A400E0 */ addiu $a0, $sp, 0xe0 +/* 04E19C 7F01966C 00402825 */ move $a1, $v0 +/* 04E1A0 7F019670 E7A00014 */ swc1 $f0, 0x14($sp) +/* 04E1A4 7F019674 E7A00018 */ swc1 $f0, 0x18($sp) +/* 04E1A8 7F019678 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 04E1AC 7F01967C E7A00020 */ swc1 $f0, 0x20($sp) +/* 04E1B0 7F019680 E7A00028 */ swc1 $f0, 0x28($sp) +/* 04E1B4 7F019684 E7A60010 */ swc1 $f6, 0x10($sp) +/* 04E1B8 7F019688 0C005CDC */ jal guLookAtReflect +/* 04E1BC 7F01968C E7A80024 */ swc1 $f8, 0x24($sp) +/* 04E1C0 7F019690 02601025 */ move $v0, $s3 +/* 04E1C4 7F019694 26730008 */ addiu $s3, $s3, 8 +/* 04E1C8 7F019698 3C0BBC00 */ lui $t3, (0xBC000002 >> 16) # lui $t3, 0xbc00 +/* 04E1CC 7F01969C 3C188000 */ lui $t8, (0x80000040 >> 16) # lui $t8, 0x8000 +/* 04E1D0 7F0196A0 37180040 */ ori $t8, (0x80000040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 04E1D4 7F0196A4 356B0002 */ ori $t3, (0xBC000002 & 0xFFFF) # ori $t3, $t3, 2 +/* 04E1D8 7F0196A8 02601825 */ move $v1, $s3 +/* 04E1DC 7F0196AC 26730008 */ addiu $s3, $s3, 8 +/* 04E1E0 7F0196B0 AC4B0000 */ sw $t3, ($v0) +/* 04E1E4 7F0196B4 AC580004 */ sw $t8, 4($v0) +/* 04E1E8 7F0196B8 3C0C0386 */ lui $t4, (0x03860010 >> 16) # lui $t4, 0x386 +/* 04E1EC 7F0196BC 3C198003 */ lui $t9, %hi(D_8002A978) +/* 04E1F0 7F0196C0 2739A978 */ addiu $t9, %lo(D_8002A978) # addiu $t9, $t9, -0x5688 +/* 04E1F4 7F0196C4 358C0010 */ ori $t4, (0x03860010 & 0xFFFF) # ori $t4, $t4, 0x10 +/* 04E1F8 7F0196C8 02602025 */ move $a0, $s3 +/* 04E1FC 7F0196CC 26730008 */ addiu $s3, $s3, 8 +/* 04E200 7F0196D0 AC6C0000 */ sw $t4, ($v1) +/* 04E204 7F0196D4 AC790004 */ sw $t9, 4($v1) +/* 04E208 7F0196D8 3C0E0388 */ lui $t6, (0x03880010 >> 16) # lui $t6, 0x388 +/* 04E20C 7F0196DC 3C0F8003 */ lui $t7, %hi(D_8002A970) +/* 04E210 7F0196E0 25EFA970 */ addiu $t7, %lo(D_8002A970) # addiu $t7, $t7, -0x5690 +/* 04E214 7F0196E4 35CE0010 */ ori $t6, (0x03880010 & 0xFFFF) # ori $t6, $t6, 0x10 +/* 04E218 7F0196E8 02602825 */ move $a1, $s3 +/* 04E21C 7F0196EC AC8E0000 */ sw $t6, ($a0) +/* 04E220 7F0196F0 AC8F0004 */ sw $t7, 4($a0) +/* 04E224 7F0196F4 3C0D0384 */ lui $t5, (0x03840010 >> 16) # lui $t5, 0x384 +/* 04E228 7F0196F8 35AD0010 */ ori $t5, (0x03840010 & 0xFFFF) # ori $t5, $t5, 0x10 +/* 04E22C 7F0196FC ACAD0000 */ sw $t5, ($a1) +/* 04E230 7F019700 ACB00004 */ sw $s0, 4($a1) +/* 04E234 7F019704 26730008 */ addiu $s3, $s3, 8 +/* 04E238 7F019708 02603825 */ move $a3, $s3 +/* 04E23C 7F01970C 3C0B0382 */ lui $t3, (0x03820010 >> 16) # lui $t3, 0x382 +/* 04E240 7F019710 356B0010 */ ori $t3, (0x03820010 & 0xFFFF) # ori $t3, $t3, 0x10 +/* 04E244 7F019714 26180010 */ addiu $t8, $s0, 0x10 +/* 04E248 7F019718 3C148003 */ lui $s4, %hi(objinstance) +/* 04E24C 7F01971C 2694B5F4 */ addiu $s4, %lo(objinstance) # addiu $s4, $s4, -0x4a0c +/* 04E250 7F019720 ACF80004 */ sw $t8, 4($a3) +/* 04E254 7F019724 ACEB0000 */ sw $t3, ($a3) +/* 04E258 7F019728 3C058005 */ lui $a1, %hi(clock_timer) +/* 04E25C 7F01972C 26730008 */ addiu $s3, $s3, 8 +/* 04E260 7F019730 8CA58374 */ lw $a1, %lo(clock_timer)($a1) +/* 04E264 7F019734 8E840000 */ lw $a0, ($s4) +/* 04E268 7F019738 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 04E26C 7F01973C 24060001 */ li $a2, 1 +/* 04E270 7F019740 0FC1B100 */ jal set_80036084 +/* 04E274 7F019744 24040001 */ li $a0, 1 +/* 04E278 7F019748 0FC1CFF2 */ jal sub_GAME_7F073FC8 +/* 04E27C 7F01974C 00002025 */ move $a0, $zero +/* 04E280 7F019750 0FC1B5AC */ jal subcalcpos +/* 04E284 7F019754 8E840000 */ lw $a0, ($s4) +/* 04E288 7F019758 3C078003 */ lui $a3, %hi(ptrobjinstance) +/* 04E28C 7F01975C 8CE7B5F8 */ lw $a3, %lo(ptrobjinstance)($a3) +/* 04E290 7F019760 10E0000B */ beqz $a3, .L7F019790 +/* 04E294 7F019764 00000000 */ nop +/* 04E298 7F019768 8CEC0008 */ lw $t4, 8($a3) +/* 04E29C 7F01976C 8D990008 */ lw $t9, 8($t4) +/* 04E2A0 7F019770 8F250000 */ lw $a1, ($t9) +/* 04E2A4 7F019774 10A00006 */ beqz $a1, .L7F019790 +/* 04E2A8 7F019778 00000000 */ nop +/* 04E2AC 7F01977C 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 04E2B0 7F019780 00E02025 */ move $a0, $a3 +/* 04E2B4 7F019784 A4400000 */ sh $zero, ($v0) +/* 04E2B8 7F019788 3C078003 */ lui $a3, %hi(ptrobjinstance) +/* 04E2BC 7F01978C 8CE7B5F8 */ lw $a3, %lo(ptrobjinstance)($a3) +.L7F019790: +/* 04E2C0 7F019790 50E0000A */ beql $a3, $zero, .L7F0197BC +/* 04E2C4 7F019794 8E8D0000 */ lw $t5, ($s4) +/* 04E2C8 7F019798 8CEE0008 */ lw $t6, 8($a3) +/* 04E2CC 7F01979C 8DCF0008 */ lw $t7, 8($t6) +/* 04E2D0 7F0197A0 8DE50008 */ lw $a1, 8($t7) +/* 04E2D4 7F0197A4 50A00005 */ beql $a1, $zero, .L7F0197BC +/* 04E2D8 7F0197A8 8E8D0000 */ lw $t5, ($s4) +/* 04E2DC 7F0197AC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 04E2E0 7F0197B0 00E02025 */ move $a0, $a3 +/* 04E2E4 7F0197B4 AC400000 */ sw $zero, ($v0) +/* 04E2E8 7F0197B8 8E8D0000 */ lw $t5, ($s4) +.L7F0197BC: +/* 04E2EC 7F0197BC 8DAB0008 */ lw $t3, 8($t5) +/* 04E2F0 7F0197C0 8564000E */ lh $a0, 0xe($t3) +/* 04E2F4 7F0197C4 0004C180 */ sll $t8, $a0, 6 +/* 04E2F8 7F0197C8 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 04E2FC 7F0197CC 03002025 */ move $a0, $t8 +/* 04E300 7F0197D0 27B201E8 */ addiu $s2, $sp, 0x1e8 +/* 04E304 7F0197D4 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 04E308 7F0197D8 0FC15FF4 */ jal matrix_4x4_set_identity +/* 04E30C 7F0197DC 02402025 */ move $a0, $s2 +/* 04E310 7F0197E0 AFB201A8 */ sw $s2, 0x1a8($sp) +/* 04E314 7F0197E4 27A401A8 */ addiu $a0, $sp, 0x1a8 +/* 04E318 7F0197E8 0FC1BCBE */ jal subcalcmatrices +/* 04E31C 7F0197EC 8E850000 */ lw $a1, ($s4) +/* 04E320 7F0197F0 8E840000 */ lw $a0, ($s4) +/* 04E324 7F0197F4 0FC1B2E6 */ jal getsuboffset +/* 04E328 7F0197F8 27A50128 */ addiu $a1, $sp, 0x128 +/* 04E32C 7F0197FC 3C068007 */ lui $a2, %hi(flt_CODE_bss_800695E4) +/* 04E330 7F019800 24C695E4 */ addiu $a2, %lo(flt_CODE_bss_800695E4) # addiu $a2, $a2, -0x6a1c +/* 04E334 7F019804 8CC20000 */ lw $v0, ($a2) +/* 04E338 7F019808 00008825 */ move $s1, $zero +/* 04E33C 7F01980C 3C038005 */ lui $v1, %hi(clock_timer) +/* 04E340 7F019810 10400005 */ beqz $v0, .L7F019828 +/* 04E344 7F019814 00000000 */ nop +/* 04E348 7F019818 C7AA012C */ lwc1 $f10, 0x12c($sp) +/* 04E34C 7F01981C 3C108007 */ lui $s0, %hi(flt_CODE_bss_800695E8) +/* 04E350 7F019820 261095E8 */ addiu $s0, %lo(flt_CODE_bss_800695E8) # addiu $s0, $s0, -0x6a18 +/* 04E354 7F019824 E60A0004 */ swc1 $f10, 4($s0) +.L7F019828: +/* 04E358 7F019828 3C108007 */ lui $s0, %hi(flt_CODE_bss_800695E8) +/* 04E35C 7F01982C 261095E8 */ addiu $s0, %lo(flt_CODE_bss_800695E8) # addiu $s0, $s0, -0x6a18 +/* 04E360 7F019830 C6040000 */ lwc1 $f4, ($s0) +/* 04E364 7F019834 C7A60128 */ lwc1 $f6, 0x128($sp) +/* 04E368 7F019838 3C018005 */ lui $at, %hi(global_timer_delta) +/* 04E36C 7F01983C E7A4006C */ swc1 $f4, 0x6c($sp) +/* 04E370 7F019840 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 04E374 7F019844 C6040004 */ lwc1 $f4, 4($s0) +/* 04E378 7F019848 C4328378 */ lwc1 $f18, %lo(global_timer_delta)($at) +/* 04E37C 7F01984C 46083281 */ sub.s $f10, $f6, $f8 +/* 04E380 7F019850 E7A40064 */ swc1 $f4, 0x64($sp) +/* 04E384 7F019854 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 04E388 7F019858 C7A6012C */ lwc1 $f6, 0x12c($sp) +/* 04E38C 7F01985C C6040008 */ lwc1 $f4, 8($s0) +/* 04E390 7F019860 46125083 */ div.s $f2, $f10, $f18 +/* 04E394 7F019864 E7A40060 */ swc1 $f4, 0x60($sp) +/* 04E398 7F019868 46083281 */ sub.s $f10, $f6, $f8 +/* 04E39C 7F01986C C7A80060 */ lwc1 $f8, 0x60($sp) +/* 04E3A0 7F019870 C7A60130 */ lwc1 $f6, 0x130($sp) +/* 04E3A4 7F019874 46125303 */ div.s $f12, $f10, $f18 +/* 04E3A8 7F019878 46083281 */ sub.s $f10, $f6, $f8 +/* 04E3AC 7F01987C 1040000B */ beqz $v0, .L7F0198AC +/* 04E3B0 7F019880 46125383 */ div.s $f14, $f10, $f18 +/* 04E3B4 7F019884 3C018005 */ lui $at, %hi(D_80051B20) +/* 04E3B8 7F019888 C4301B20 */ lwc1 $f16, %lo(D_80051B20)($at) +/* 04E3BC 7F01988C 3C028007 */ lui $v0, %hi(flt_CODE_bss_80069608) +/* 04E3C0 7F019890 24429608 */ addiu $v0, %lo(flt_CODE_bss_80069608) # addiu $v0, $v0, -0x69f8 +/* 04E3C4 7F019894 46101103 */ div.s $f4, $f2, $f16 +/* 04E3C8 7F019898 46106183 */ div.s $f6, $f12, $f16 +/* 04E3CC 7F01989C E4440000 */ swc1 $f4, ($v0) +/* 04E3D0 7F0198A0 46107203 */ div.s $f8, $f14, $f16 +/* 04E3D4 7F0198A4 E4460004 */ swc1 $f6, 4($v0) +/* 04E3D8 7F0198A8 E4480008 */ swc1 $f8, 8($v0) +.L7F0198AC: +/* 04E3DC 7F0198AC 8C638374 */ lw $v1, %lo(clock_timer)($v1) +/* 04E3E0 7F0198B0 3C028007 */ lui $v0, %hi(flt_CODE_bss_80069608) +/* 04E3E4 7F0198B4 3C018005 */ lui $at, %hi(D_80051B24) +/* 04E3E8 7F0198B8 C4301B24 */ lwc1 $f16, %lo(D_80051B24)($at) +/* 04E3EC 7F0198BC 24429608 */ addiu $v0, %lo(flt_CODE_bss_80069608) # addiu $v0, $v0, -0x69f8 +/* 04E3F0 7F0198C0 E7A20134 */ swc1 $f2, 0x134($sp) +/* 04E3F4 7F0198C4 E7AC0138 */ swc1 $f12, 0x138($sp) +/* 04E3F8 7F0198C8 18600025 */ blez $v1, .L7F019960 +/* 04E3FC 7F0198CC E7AE013C */ swc1 $f14, 0x13c($sp) +/* 04E400 7F0198D0 3C018005 */ lui $at, %hi(D_80051B28) +/* 04E404 7F0198D4 C4201B28 */ lwc1 $f0, %lo(D_80051B28)($at) +/* 04E408 7F0198D8 C4440000 */ lwc1 $f4, ($v0) +/* 04E40C 7F0198DC 26310001 */ addiu $s1, $s1, 1 +/* 04E410 7F0198E0 0223082A */ slt $at, $s1, $v1 +/* 04E414 7F0198E4 46040282 */ mul.s $f10, $f0, $f4 +/* 04E418 7F0198E8 10200010 */ beqz $at, .L7F01992C +/* 04E41C 7F0198EC C4480004 */ lwc1 $f8, 4($v0) +.L7F0198F0: +/* 04E420 7F0198F0 46080182 */ mul.s $f6, $f0, $f8 +/* 04E424 7F0198F4 460A1100 */ add.s $f4, $f2, $f10 +/* 04E428 7F0198F8 C4480008 */ lwc1 $f8, 8($v0) +/* 04E42C 7F0198FC 26310001 */ addiu $s1, $s1, 1 +/* 04E430 7F019900 0223082A */ slt $at, $s1, $v1 +/* 04E434 7F019904 46080282 */ mul.s $f10, $f0, $f8 +/* 04E438 7F019908 E4440000 */ swc1 $f4, ($v0) +/* 04E43C 7F01990C 46066180 */ add.s $f6, $f12, $f6 +/* 04E440 7F019910 C4440000 */ lwc1 $f4, ($v0) +/* 04E444 7F019914 E4460004 */ swc1 $f6, 4($v0) +/* 04E448 7F019918 460A7180 */ add.s $f6, $f14, $f10 +/* 04E44C 7F01991C 46040282 */ mul.s $f10, $f0, $f4 +/* 04E450 7F019920 C4480004 */ lwc1 $f8, 4($v0) +/* 04E454 7F019924 1420FFF2 */ bnez $at, .L7F0198F0 +/* 04E458 7F019928 E4460008 */ swc1 $f6, 8($v0) +.L7F01992C: +/* 04E45C 7F01992C 46080182 */ mul.s $f6, $f0, $f8 +/* 04E460 7F019930 C4480008 */ lwc1 $f8, 8($v0) +/* 04E464 7F019934 460A1100 */ add.s $f4, $f2, $f10 +/* 04E468 7F019938 46080282 */ mul.s $f10, $f0, $f8 +/* 04E46C 7F01993C E4440000 */ swc1 $f4, ($v0) +/* 04E470 7F019940 46066180 */ add.s $f6, $f12, $f6 +/* 04E474 7F019944 E4460004 */ swc1 $f6, 4($v0) +/* 04E478 7F019948 460A7180 */ add.s $f6, $f14, $f10 +/* 04E47C 7F01994C E4460008 */ swc1 $f6, 8($v0) +/* 04E480 7F019950 E7AE013C */ swc1 $f14, 0x13c($sp) +/* 04E484 7F019954 E7AC0138 */ swc1 $f12, 0x138($sp) +/* 04E488 7F019958 E7A20134 */ swc1 $f2, 0x134($sp) +/* 04E48C 7F01995C 00008825 */ move $s1, $zero +.L7F019960: +/* 04E490 7F019960 C4440000 */ lwc1 $f4, ($v0) +/* 04E494 7F019964 C4480004 */ lwc1 $f8, 4($v0) +/* 04E498 7F019968 3C038007 */ lui $v1, %hi(flt_CODE_bss_800695F8) +/* 04E49C 7F01996C 46102182 */ mul.s $f6, $f4, $f16 +/* 04E4A0 7F019970 C4440008 */ lwc1 $f4, 8($v0) +/* 04E4A4 7F019974 246395F8 */ addiu $v1, %lo(flt_CODE_bss_800695F8) # addiu $v1, $v1, -0x6a08 +/* 04E4A8 7F019978 46104282 */ mul.s $f10, $f8, $f16 +/* 04E4AC 7F01997C C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 04E4B0 7F019980 8E8C0000 */ lw $t4, ($s4) +/* 04E4B4 7F019984 27A50134 */ addiu $a1, $sp, 0x134 +/* 04E4B8 7F019988 E4660000 */ swc1 $f6, ($v1) +/* 04E4BC 7F01998C 46102182 */ mul.s $f6, $f4, $f16 +/* 04E4C0 7F019990 E46A0004 */ swc1 $f10, 4($v1) +/* 04E4C4 7F019994 C46A0000 */ lwc1 $f10, ($v1) +/* 04E4C8 7F019998 46125102 */ mul.s $f4, $f10, $f18 +/* 04E4CC 7F01999C E4660008 */ swc1 $f6, 8($v1) +/* 04E4D0 7F0199A0 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 04E4D4 7F0199A4 46044180 */ add.s $f6, $f8, $f4 +/* 04E4D8 7F0199A8 C4680004 */ lwc1 $f8, 4($v1) +/* 04E4DC 7F0199AC 46124102 */ mul.s $f4, $f8, $f18 +/* 04E4E0 7F0199B0 E6060000 */ swc1 $f6, ($s0) +/* 04E4E4 7F0199B4 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 04E4E8 7F0199B8 46045180 */ add.s $f6, $f10, $f4 +/* 04E4EC 7F0199BC C46A0008 */ lwc1 $f10, 8($v1) +/* 04E4F0 7F0199C0 46125102 */ mul.s $f4, $f10, $f18 +/* 04E4F4 7F0199C4 E6060004 */ swc1 $f6, 4($s0) +/* 04E4F8 7F0199C8 46044180 */ add.s $f6, $f8, $f4 +/* 04E4FC 7F0199CC E6060008 */ swc1 $f6, 8($s0) +/* 04E500 7F0199D0 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 04E504 7F0199D4 8D84000C */ lw $a0, 0xc($t4) +/* 04E508 7F0199D8 C60A0004 */ lwc1 $f10, 4($s0) +/* 04E50C 7F0199DC C6040008 */ lwc1 $f4, 8($s0) +/* 04E510 7F0199E0 3C068007 */ lui $a2, %hi(flt_CODE_bss_800695E4) +/* 04E514 7F0199E4 24C695E4 */ addiu $a2, %lo(flt_CODE_bss_800695E4) # addiu $a2, $a2, -0x6a1c +/* 04E518 7F0199E8 8CD90000 */ lw $t9, ($a2) +/* 04E51C 7F0199EC 3C018005 */ lui $at, %hi(D_80051B30) +/* 04E520 7F0199F0 E7AA0064 */ swc1 $f10, 0x64($sp) +/* 04E524 7F0199F4 E7A40060 */ swc1 $f4, 0x60($sp) +/* 04E528 7F0199F8 C7A20134 */ lwc1 $f2, 0x134($sp) +/* 04E52C 7F0199FC C7AC0138 */ lwc1 $f12, 0x138($sp) +/* 04E530 7F019A00 C7AE013C */ lwc1 $f14, 0x13c($sp) +/* 04E534 7F019A04 C6120000 */ lwc1 $f18, ($s0) +/* 04E538 7F019A08 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 04E53C 7F019A0C C7A60060 */ lwc1 $f6, 0x60($sp) +/* 04E540 7F019A10 C4201B30 */ lwc1 $f0, %lo(D_80051B30)($at) +/* 04E544 7F019A14 3C018005 */ lui $at, %hi(D_80051B34) +/* 04E548 7F019A18 C4301B34 */ lwc1 $f16, %lo(D_80051B34)($at) +/* 04E54C 7F019A1C 46121081 */ sub.s $f2, $f2, $f18 +/* 04E550 7F019A20 46086301 */ sub.s $f12, $f12, $f8 +/* 04E554 7F019A24 1320000A */ beqz $t9, .L7F019A50 +/* 04E558 7F019A28 46067381 */ sub.s $f14, $f14, $f6 +/* 04E55C 7F019A2C 46101283 */ div.s $f10, $f2, $f16 +/* 04E560 7F019A30 3C028007 */ lui $v0, %hi(flt_CODE_bss_800695D8) +/* 04E564 7F019A34 244295D8 */ addiu $v0, %lo(flt_CODE_bss_800695D8) # addiu $v0, $v0, -0x6a28 +/* 04E568 7F019A38 ACC00000 */ sw $zero, ($a2) +/* 04E56C 7F019A3C 46106203 */ div.s $f8, $f12, $f16 +/* 04E570 7F019A40 E44A0000 */ swc1 $f10, ($v0) +/* 04E574 7F019A44 46107103 */ div.s $f4, $f14, $f16 +/* 04E578 7F019A48 E4480004 */ swc1 $f8, 4($v0) +/* 04E57C 7F019A4C E4440008 */ swc1 $f4, 8($v0) +.L7F019A50: +/* 04E580 7F019A50 3C038005 */ lui $v1, %hi(clock_timer) +/* 04E584 7F019A54 8C638374 */ lw $v1, %lo(clock_timer)($v1) +/* 04E588 7F019A58 3C028007 */ lui $v0, %hi(flt_CODE_bss_800695D8) +/* 04E58C 7F019A5C 244295D8 */ addiu $v0, %lo(flt_CODE_bss_800695D8) # addiu $v0, $v0, -0x6a28 +/* 04E590 7F019A60 58600021 */ blezl $v1, .L7F019AE8 +/* 04E594 7F019A64 C44A0000 */ lwc1 $f10, ($v0) +/* 04E598 7F019A68 C4440000 */ lwc1 $f4, ($v0) +/* 04E59C 7F019A6C 26310001 */ addiu $s1, $s1, 1 +/* 04E5A0 7F019A70 0223082A */ slt $at, $s1, $v1 +/* 04E5A4 7F019A74 46040202 */ mul.s $f8, $f0, $f4 +/* 04E5A8 7F019A78 10200010 */ beqz $at, .L7F019ABC +/* 04E5AC 7F019A7C C44A0004 */ lwc1 $f10, 4($v0) +.L7F019A80: +/* 04E5B0 7F019A80 460A0182 */ mul.s $f6, $f0, $f10 +/* 04E5B4 7F019A84 46081100 */ add.s $f4, $f2, $f8 +/* 04E5B8 7F019A88 C44A0008 */ lwc1 $f10, 8($v0) +/* 04E5BC 7F019A8C 26310001 */ addiu $s1, $s1, 1 +/* 04E5C0 7F019A90 0223082A */ slt $at, $s1, $v1 +/* 04E5C4 7F019A94 460A0202 */ mul.s $f8, $f0, $f10 +/* 04E5C8 7F019A98 E4440000 */ swc1 $f4, ($v0) +/* 04E5CC 7F019A9C 46066180 */ add.s $f6, $f12, $f6 +/* 04E5D0 7F019AA0 C4440000 */ lwc1 $f4, ($v0) +/* 04E5D4 7F019AA4 E4460004 */ swc1 $f6, 4($v0) +/* 04E5D8 7F019AA8 46087180 */ add.s $f6, $f14, $f8 +/* 04E5DC 7F019AAC 46040202 */ mul.s $f8, $f0, $f4 +/* 04E5E0 7F019AB0 C44A0004 */ lwc1 $f10, 4($v0) +/* 04E5E4 7F019AB4 1420FFF2 */ bnez $at, .L7F019A80 +/* 04E5E8 7F019AB8 E4460008 */ swc1 $f6, 8($v0) +.L7F019ABC: +/* 04E5EC 7F019ABC 460A0182 */ mul.s $f6, $f0, $f10 +/* 04E5F0 7F019AC0 C44A0008 */ lwc1 $f10, 8($v0) +/* 04E5F4 7F019AC4 46081100 */ add.s $f4, $f2, $f8 +/* 04E5F8 7F019AC8 460A0202 */ mul.s $f8, $f0, $f10 +/* 04E5FC 7F019ACC E4440000 */ swc1 $f4, ($v0) +/* 04E600 7F019AD0 46066180 */ add.s $f6, $f12, $f6 +/* 04E604 7F019AD4 E4460004 */ swc1 $f6, 4($v0) +/* 04E608 7F019AD8 46087180 */ add.s $f6, $f14, $f8 +/* 04E60C 7F019ADC E4460008 */ swc1 $f6, 8($v0) +/* 04E610 7F019AE0 00008825 */ move $s1, $zero +/* 04E614 7F019AE4 C44A0000 */ lwc1 $f10, ($v0) +.L7F019AE8: +/* 04E618 7F019AE8 C4440004 */ lwc1 $f4, 4($v0) +/* 04E61C 7F019AEC 3C038007 */ lui $v1, %hi(flt_CODE_bss_800695C8) +/* 04E620 7F019AF0 46105202 */ mul.s $f8, $f10, $f16 +/* 04E624 7F019AF4 C44A0008 */ lwc1 $f10, 8($v0) +/* 04E628 7F019AF8 246395C8 */ addiu $v1, %lo(flt_CODE_bss_800695C8) # addiu $v1, $v1, -0x6a38 +/* 04E62C 7F019AFC 46102182 */ mul.s $f6, $f4, $f16 +/* 04E630 7F019B00 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 04E634 7F019B04 C7A0023C */ lwc1 $f0, 0x23c($sp) +/* 04E638 7F019B08 02402025 */ move $a0, $s2 +/* 04E63C 7F019B0C E4680000 */ swc1 $f8, ($v1) +/* 04E640 7F019B10 46105202 */ mul.s $f8, $f10, $f16 +/* 04E644 7F019B14 C4640000 */ lwc1 $f4, ($v1) +/* 04E648 7F019B18 E4660004 */ swc1 $f6, 4($v1) +/* 04E64C 7F019B1C C46A0004 */ lwc1 $f10, 4($v1) +/* 04E650 7F019B20 C7A60064 */ lwc1 $f6, 0x64($sp) +/* 04E654 7F019B24 46049080 */ add.s $f2, $f18, $f4 +/* 04E658 7F019B28 44812000 */ mtc1 $at, $f4 +/* 04E65C 7F019B2C E4680008 */ swc1 $f8, 8($v1) +/* 04E660 7F019B30 460A3200 */ add.s $f8, $f6, $f10 +/* 04E664 7F019B34 C7AA0060 */ lwc1 $f10, 0x60($sp) +/* 04E668 7F019B38 E7A60050 */ swc1 $f6, 0x50($sp) +/* 04E66C 7F019B3C 3C014252 */ li $at, 0x42520000 # 52.500000 +/* 04E670 7F019B40 46044301 */ sub.s $f12, $f8, $f4 +/* 04E674 7F019B44 C4680008 */ lwc1 $f8, 8($v1) +/* 04E678 7F019B48 C7A40238 */ lwc1 $f4, 0x238($sp) +/* 04E67C 7F019B4C E7AA0054 */ swc1 $f10, 0x54($sp) +/* 04E680 7F019B50 46085380 */ add.s $f14, $f10, $f8 +/* 04E684 7F019B54 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 04E688 7F019B58 C7A60244 */ lwc1 $f6, 0x244($sp) +/* 04E68C 7F019B5C 46022200 */ add.s $f8, $f4, $f2 +/* 04E690 7F019B60 C7A40240 */ lwc1 $f4, 0x240($sp) +/* 04E694 7F019B64 E7AE013C */ swc1 $f14, 0x13c($sp) +/* 04E698 7F019B68 46123180 */ add.s $f6, $f6, $f18 +/* 04E69C 7F019B6C E7A80238 */ swc1 $f8, 0x238($sp) +/* 04E6A0 7F019B70 E7A80050 */ swc1 $f8, 0x50($sp) +/* 04E6A4 7F019B74 44814000 */ mtc1 $at, $f8 +/* 04E6A8 7F019B78 460E2100 */ add.s $f4, $f4, $f14 +/* 04E6AC 7F019B7C E7A60244 */ swc1 $f6, 0x244($sp) +/* 04E6B0 7F019B80 44053000 */ mfc1 $a1, $f6 +/* 04E6B4 7F019B84 46085280 */ add.s $f10, $f10, $f8 +/* 04E6B8 7F019B88 C7A80248 */ lwc1 $f8, 0x248($sp) +/* 04E6BC 7F019B8C E7A40240 */ swc1 $f4, 0x240($sp) +/* 04E6C0 7F019B90 E7A40058 */ swc1 $f4, 0x58($sp) +/* 04E6C4 7F019B94 460A4200 */ add.s $f8, $f8, $f10 +/* 04E6C8 7F019B98 C7AA024C */ lwc1 $f10, 0x24c($sp) +/* 04E6CC 7F019B9C C7A40054 */ lwc1 $f4, 0x54($sp) +/* 04E6D0 7F019BA0 460C0000 */ add.s $f0, $f0, $f12 +/* 04E6D4 7F019BA4 E7A80248 */ swc1 $f8, 0x248($sp) +/* 04E6D8 7F019BA8 44064000 */ mfc1 $a2, $f8 +/* 04E6DC 7F019BAC 46045280 */ add.s $f10, $f10, $f4 +/* 04E6E0 7F019BB0 C7A40050 */ lwc1 $f4, 0x50($sp) +/* 04E6E4 7F019BB4 C7A8022C */ lwc1 $f8, 0x22c($sp) +/* 04E6E8 7F019BB8 C7A60058 */ lwc1 $f6, 0x58($sp) +/* 04E6EC 7F019BBC E7AA024C */ swc1 $f10, 0x24c($sp) +/* 04E6F0 7F019BC0 44075000 */ mfc1 $a3, $f10 +/* 04E6F4 7F019BC4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 04E6F8 7F019BC8 C7A40234 */ lwc1 $f4, 0x234($sp) +/* 04E6FC 7F019BCC C7AA0230 */ lwc1 $f10, 0x230($sp) +/* 04E700 7F019BD0 E7A00014 */ swc1 $f0, 0x14($sp) +/* 04E704 7F019BD4 E7A0023C */ swc1 $f0, 0x23c($sp) +/* 04E708 7F019BD8 E7AC0138 */ swc1 $f12, 0x138($sp) +/* 04E70C 7F019BDC E7A20134 */ swc1 $f2, 0x134($sp) +/* 04E710 7F019BE0 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 04E714 7F019BE4 E7A60018 */ swc1 $f6, 0x18($sp) +/* 04E718 7F019BE8 E7A40024 */ swc1 $f4, 0x24($sp) +/* 04E71C 7F019BEC 0FC165A5 */ jal sub_GAME_7F059694 +/* 04E720 7F019BF0 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 04E724 7F019BF4 8E8E0000 */ lw $t6, ($s4) +/* 04E728 7F019BF8 AFB201A8 */ sw $s2, 0x1a8($sp) +/* 04E72C 7F019BFC 8DCF0008 */ lw $t7, 8($t6) +/* 04E730 7F019C00 85E4000E */ lh $a0, 0xe($t7) +/* 04E734 7F019C04 00046980 */ sll $t5, $a0, 6 +/* 04E738 7F019C08 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 04E73C 7F019C0C 01A02025 */ move $a0, $t5 +/* 04E740 7F019C10 AFA201B8 */ sw $v0, 0x1b8($sp) +/* 04E744 7F019C14 27A401A8 */ addiu $a0, $sp, 0x1a8 +/* 04E748 7F019C18 0FC1BCBE */ jal subcalcmatrices +/* 04E74C 7F019C1C 8E850000 */ lw $a1, ($s4) +/* 04E750 7F019C20 3C078003 */ lui $a3, %hi(ptrobjinstance) +/* 04E754 7F019C24 8CE7B5F8 */ lw $a3, %lo(ptrobjinstance)($a3) +/* 04E758 7F019C28 50E00025 */ beql $a3, $zero, .L7F019CC0 +/* 04E75C 7F019C2C 24180007 */ li $t8, 7 +/* 04E760 7F019C30 8E840000 */ lw $a0, ($s4) +/* 04E764 7F019C34 8CE5001C */ lw $a1, 0x1c($a3) +/* 04E768 7F019C38 0FC1B198 */ jal sub_GAME_7F06C660 +/* 04E76C 7F019C3C 00003025 */ move $a2, $zero +/* 04E770 7F019C40 8E980000 */ lw $t8, ($s4) +/* 04E774 7F019C44 AFA201A8 */ sw $v0, 0x1a8($sp) +/* 04E778 7F019C48 3C078003 */ lui $a3, %hi(ptrobjinstance) +/* 04E77C 7F019C4C 8F0C0008 */ lw $t4, 8($t8) +/* 04E780 7F019C50 8CE7B5F8 */ lw $a3, %lo(ptrobjinstance)($a3) +/* 04E784 7F019C54 27B20160 */ addiu $s2, $sp, 0x160 +/* 04E788 7F019C58 8D990008 */ lw $t9, 8($t4) +/* 04E78C 7F019C5C 8CEB001C */ lw $t3, 0x1c($a3) +/* 04E790 7F019C60 02402825 */ move $a1, $s2 +/* 04E794 7F019C64 8F2E0014 */ lw $t6, 0x14($t9) +/* 04E798 7F019C68 3C018005 */ lui $at, %hi(D_80051B38) +/* 04E79C 7F019C6C 556E000A */ bnel $t3, $t6, .L7F019C98 +/* 04E7A0 7F019C70 8CEF0008 */ lw $t7, 8($a3) +/* 04E7A4 7F019C74 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 04E7A8 7F019C78 C42C1B38 */ lwc1 $f12, %lo(D_80051B38)($at) +/* 04E7AC 7F019C7C 8FA401A8 */ lw $a0, 0x1a8($sp) +/* 04E7B0 7F019C80 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 04E7B4 7F019C84 02402825 */ move $a1, $s2 +/* 04E7B8 7F019C88 3C078003 */ lui $a3, %hi(ptrobjinstance) +/* 04E7BC 7F019C8C 8CE7B5F8 */ lw $a3, %lo(ptrobjinstance)($a3) +/* 04E7C0 7F019C90 AFB201A8 */ sw $s2, 0x1a8($sp) +/* 04E7C4 7F019C94 8CEF0008 */ lw $t7, 8($a3) +.L7F019C98: +/* 04E7C8 7F019C98 85E4000E */ lh $a0, 0xe($t7) +/* 04E7CC 7F019C9C 00046980 */ sll $t5, $a0, 6 +/* 04E7D0 7F019CA0 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 04E7D4 7F019CA4 01A02025 */ move $a0, $t5 +/* 04E7D8 7F019CA8 3C058003 */ lui $a1, %hi(ptrobjinstance) +/* 04E7DC 7F019CAC AFA201B8 */ sw $v0, 0x1b8($sp) +/* 04E7E0 7F019CB0 8CA5B5F8 */ lw $a1, %lo(ptrobjinstance)($a1) +/* 04E7E4 7F019CB4 0FC1BC92 */ jal instcalcmatrices +/* 04E7E8 7F019CB8 27A401A8 */ addiu $a0, $sp, 0x1a8 +/* 04E7EC 7F019CBC 24180007 */ li $t8, 7 +.L7F019CC0: +/* 04E7F0 7F019CC0 240C0001 */ li $t4, 1 +/* 04E7F4 7F019CC4 24190003 */ li $t9, 3 +/* 04E7F8 7F019CC8 27B20160 */ addiu $s2, $sp, 0x160 +/* 04E7FC 7F019CCC AFB801D8 */ sw $t8, 0x1d8($sp) +/* 04E800 7F019CD0 AFAC01AC */ sw $t4, 0x1ac($sp) +/* 04E804 7F019CD4 AFB301B4 */ sw $s3, 0x1b4($sp) +/* 04E808 7F019CD8 AFB901B0 */ sw $t9, 0x1b0($sp) +/* 04E80C 7F019CDC 27A401A8 */ addiu $a0, $sp, 0x1a8 +/* 04E810 7F019CE0 0FC1D1A1 */ jal subdraw +/* 04E814 7F019CE4 8E850000 */ lw $a1, ($s4) +/* 04E818 7F019CE8 3C078003 */ lui $a3, %hi(ptrobjinstance) +/* 04E81C 7F019CEC 8CE7B5F8 */ lw $a3, %lo(ptrobjinstance)($a3) +/* 04E820 7F019CF0 10E00003 */ beqz $a3, .L7F019D00 +/* 04E824 7F019CF4 27A401A8 */ addiu $a0, $sp, 0x1a8 +/* 04E828 7F019CF8 0FC1D1A1 */ jal subdraw +/* 04E82C 7F019CFC 00E02825 */ move $a1, $a3 +.L7F019D00: +/* 04E830 7F019D00 8FB301B4 */ lw $s3, 0x1b4($sp) +/* 04E834 7F019D04 0FC1B100 */ jal set_80036084 +/* 04E838 7F019D08 00002025 */ move $a0, $zero +/* 04E83C 7F019D0C 8E820000 */ lw $v0, ($s4) +/* 04E840 7F019D10 8C4B0008 */ lw $t3, 8($v0) +/* 04E844 7F019D14 856E000E */ lh $t6, 0xe($t3) +/* 04E848 7F019D18 19C00013 */ blez $t6, .L7F019D68 +/* 04E84C 7F019D1C 00008025 */ move $s0, $zero +/* 04E850 7F019D20 8C4F000C */ lw $t7, 0xc($v0) +.L7F019D24: +/* 04E854 7F019D24 02402825 */ move $a1, $s2 +/* 04E858 7F019D28 0FC16008 */ jal matrix_4x4_copy +/* 04E85C 7F019D2C 01F02021 */ addu $a0, $t7, $s0 +/* 04E860 7F019D30 8E8D0000 */ lw $t5, ($s4) +/* 04E864 7F019D34 00116180 */ sll $t4, $s1, 6 +/* 04E868 7F019D38 02402025 */ move $a0, $s2 +/* 04E86C 7F019D3C 8DB8000C */ lw $t8, 0xc($t5) +/* 04E870 7F019D40 0FC16327 */ jal sub_GAME_7F058C9C +/* 04E874 7F019D44 030C2821 */ addu $a1, $t8, $t4 +/* 04E878 7F019D48 8E820000 */ lw $v0, ($s4) +/* 04E87C 7F019D4C 26310001 */ addiu $s1, $s1, 1 +/* 04E880 7F019D50 26100040 */ addiu $s0, $s0, 0x40 +/* 04E884 7F019D54 8C590008 */ lw $t9, 8($v0) +/* 04E888 7F019D58 872B000E */ lh $t3, 0xe($t9) +/* 04E88C 7F019D5C 022B082A */ slt $at, $s1, $t3 +/* 04E890 7F019D60 5420FFF0 */ bnezl $at, .L7F019D24 +/* 04E894 7F019D64 8C4F000C */ lw $t7, 0xc($v0) +.L7F019D68: +/* 04E898 7F019D68 3C078003 */ lui $a3, %hi(ptrobjinstance) +/* 04E89C 7F019D6C 8CE7B5F8 */ lw $a3, %lo(ptrobjinstance)($a3) +/* 04E8A0 7F019D70 50E0001C */ beql $a3, $zero, .L7F019DE4 +/* 04E8A4 7F019D74 02601025 */ move $v0, $s3 +/* 04E8A8 7F019D78 8CEE0008 */ lw $t6, 8($a3) +/* 04E8AC 7F019D7C 00008825 */ move $s1, $zero +/* 04E8B0 7F019D80 00008025 */ move $s0, $zero +/* 04E8B4 7F019D84 85CF000E */ lh $t7, 0xe($t6) +/* 04E8B8 7F019D88 59E00016 */ blezl $t7, .L7F019DE4 +/* 04E8BC 7F019D8C 02601025 */ move $v0, $s3 +/* 04E8C0 7F019D90 8CED000C */ lw $t5, 0xc($a3) +.L7F019D94: +/* 04E8C4 7F019D94 02402825 */ move $a1, $s2 +/* 04E8C8 7F019D98 0FC16008 */ jal matrix_4x4_copy +/* 04E8CC 7F019D9C 01B02021 */ addu $a0, $t5, $s0 +/* 04E8D0 7F019DA0 3C188003 */ lui $t8, %hi(ptrobjinstance) +/* 04E8D4 7F019DA4 8F18B5F8 */ lw $t8, %lo(ptrobjinstance)($t8) +/* 04E8D8 7F019DA8 0011C980 */ sll $t9, $s1, 6 +/* 04E8DC 7F019DAC 02402025 */ move $a0, $s2 +/* 04E8E0 7F019DB0 8F0C000C */ lw $t4, 0xc($t8) +/* 04E8E4 7F019DB4 0FC16327 */ jal sub_GAME_7F058C9C +/* 04E8E8 7F019DB8 01992821 */ addu $a1, $t4, $t9 +/* 04E8EC 7F019DBC 3C078003 */ lui $a3, %hi(ptrobjinstance) +/* 04E8F0 7F019DC0 8CE7B5F8 */ lw $a3, %lo(ptrobjinstance)($a3) +/* 04E8F4 7F019DC4 26310001 */ addiu $s1, $s1, 1 +/* 04E8F8 7F019DC8 26100040 */ addiu $s0, $s0, 0x40 +/* 04E8FC 7F019DCC 8CEB0008 */ lw $t3, 8($a3) +/* 04E900 7F019DD0 856E000E */ lh $t6, 0xe($t3) +/* 04E904 7F019DD4 022E082A */ slt $at, $s1, $t6 +/* 04E908 7F019DD8 5420FFEE */ bnezl $at, .L7F019D94 +/* 04E90C 7F019DDC 8CED000C */ lw $t5, 0xc($a3) +/* 04E910 7F019DE0 02601025 */ move $v0, $s3 +.L7F019DE4: +/* 04E914 7F019DE4 3C0D006E */ lui $t5, (0x006E0528 >> 16) # lui $t5, 0x6e +/* 04E918 7F019DE8 35AD0528 */ ori $t5, (0x006E0528 & 0xFFFF) # ori $t5, $t5, 0x528 +/* 04E91C 7F019DEC 3C0FED00 */ lui $t7, 0xed00 +/* 04E920 7F019DF0 AC4F0000 */ sw $t7, ($v0) +/* 04E924 7F019DF4 AC4D0004 */ sw $t5, 4($v0) +/* 04E928 7F019DF8 26730008 */ addiu $s3, $s3, 8 +/* 04E92C 7F019DFC 3C07E700 */ lui $a3, 0xe700 +/* 04E930 7F019E00 26640008 */ addiu $a0, $s3, 8 +/* 04E934 7F019E04 AE670000 */ sw $a3, ($s3) +/* 04E938 7F019E08 AE600004 */ sw $zero, 4($s3) +/* 04E93C 7F019E0C 3C18BA00 */ lui $t8, (0xBA001402 >> 16) # lui $t8, 0xba00 +/* 04E940 7F019E10 37181402 */ ori $t8, (0xBA001402 & 0xFFFF) # ori $t8, $t8, 0x1402 +/* 04E944 7F019E14 AC980000 */ sw $t8, ($a0) +/* 04E948 7F019E18 AC800004 */ sw $zero, 4($a0) +/* 04E94C 7F019E1C 24850008 */ addiu $a1, $a0, 8 +/* 04E950 7F019E20 3C08BA00 */ lui $t0, (0xBA000602 >> 16) # lui $t0, 0xba00 +/* 04E954 7F019E24 35080602 */ ori $t0, (0xBA000602 & 0xFFFF) # ori $t0, $t0, 0x602 +/* 04E958 7F019E28 24A60008 */ addiu $a2, $a1, 8 +/* 04E95C 7F019E2C 240C00C0 */ li $t4, 192 +/* 04E960 7F019E30 3C09BA00 */ lui $t1, (0xBA001301 >> 16) # lui $t1, 0xba00 +/* 04E964 7F019E34 ACAC0004 */ sw $t4, 4($a1) +/* 04E968 7F019E38 ACA80000 */ sw $t0, ($a1) +/* 04E96C 7F019E3C 35291301 */ ori $t1, (0xBA001301 & 0xFFFF) # ori $t1, $t1, 0x1301 +/* 04E970 7F019E40 24C20008 */ addiu $v0, $a2, 8 +/* 04E974 7F019E44 ACC90000 */ sw $t1, ($a2) +/* 04E978 7F019E48 ACC00004 */ sw $zero, 4($a2) +/* 04E97C 7F019E4C 3C19B900 */ lui $t9, (0xB9000002 >> 16) # lui $t9, 0xb900 +/* 04E980 7F019E50 37390002 */ ori $t9, (0xB9000002 & 0xFFFF) # ori $t9, $t9, 2 +/* 04E984 7F019E54 24430008 */ addiu $v1, $v0, 8 +/* 04E988 7F019E58 3C0ABA00 */ lui $t2, (0xBA001001 >> 16) # lui $t2, 0xba00 +/* 04E98C 7F019E5C AC590000 */ sw $t9, ($v0) +/* 04E990 7F019E60 AC400004 */ sw $zero, 4($v0) +/* 04E994 7F019E64 354A1001 */ ori $t2, (0xBA001001 & 0xFFFF) # ori $t2, $t2, 0x1001 +/* 04E998 7F019E68 24730008 */ addiu $s3, $v1, 8 +/* 04E99C 7F019E6C AC6A0000 */ sw $t2, ($v1) +/* 04E9A0 7F019E70 AC600004 */ sw $zero, 4($v1) +/* 04E9A4 7F019E74 02602025 */ move $a0, $s3 +/* 04E9A8 7F019E78 3C0BBA00 */ lui $t3, (0xBA000C02 >> 16) # lui $t3, 0xba00 +/* 04E9AC 7F019E7C 356B0C02 */ ori $t3, (0xBA000C02 & 0xFFFF) # ori $t3, $t3, 0xc02 +/* 04E9B0 7F019E80 240E2000 */ li $t6, 8192 +/* 04E9B4 7F019E84 AC8E0004 */ sw $t6, 4($a0) +/* 04E9B8 7F019E88 AC8B0000 */ sw $t3, ($a0) +/* 04E9BC 7F019E8C 26650008 */ addiu $a1, $s3, 8 +/* 04E9C0 7F019E90 3C0FBA00 */ lui $t7, (0xBA000903 >> 16) # lui $t7, 0xba00 +/* 04E9C4 7F019E94 35EF0903 */ ori $t7, (0xBA000903 & 0xFFFF) # ori $t7, $t7, 0x903 +/* 04E9C8 7F019E98 ACAF0000 */ sw $t7, ($a1) +/* 04E9CC 7F019E9C 24A60008 */ addiu $a2, $a1, 8 +/* 04E9D0 7F019EA0 240D0C00 */ li $t5, 3072 +/* 04E9D4 7F019EA4 ACAD0004 */ sw $t5, 4($a1) +/* 04E9D8 7F019EA8 3C18BA00 */ lui $t8, (0xBA000E02 >> 16) # lui $t8, 0xba00 +/* 04E9DC 7F019EAC 37180E02 */ ori $t8, (0xBA000E02 & 0xFFFF) # ori $t8, $t8, 0xe02 +/* 04E9E0 7F019EB0 24C20008 */ addiu $v0, $a2, 8 +/* 04E9E4 7F019EB4 ACD80000 */ sw $t8, ($a2) +/* 04E9E8 7F019EB8 ACC00004 */ sw $zero, 4($a2) +/* 04E9EC 7F019EBC 3C190050 */ lui $t9, (0x00504340 >> 16) # lui $t9, 0x50 +/* 04E9F0 7F019EC0 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 +/* 04E9F4 7F019EC4 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d +/* 04E9F8 7F019EC8 37394340 */ ori $t9, (0x00504340 & 0xFFFF) # ori $t9, $t9, 0x4340 +/* 04E9FC 7F019ECC 24430008 */ addiu $v1, $v0, 8 +/* 04EA00 7F019ED0 AC590004 */ sw $t9, 4($v0) +/* 04EA04 7F019ED4 AC4C0000 */ sw $t4, ($v0) +/* 04EA08 7F019ED8 3C0BFCFF */ lui $t3, (0xFCFFFFFF >> 16) # lui $t3, 0xfcff +/* 04EA0C 7F019EDC 3C0EFFFD */ lui $t6, (0xFFFDF6FB >> 16) # lui $t6, 0xfffd +/* 04EA10 7F019EE0 35CEF6FB */ ori $t6, (0xFFFDF6FB & 0xFFFF) # ori $t6, $t6, 0xf6fb +/* 04EA14 7F019EE4 356BFFFF */ ori $t3, (0xFCFFFFFF & 0xFFFF) # ori $t3, $t3, 0xffff +/* 04EA18 7F019EE8 AC6B0000 */ sw $t3, ($v1) +/* 04EA1C 7F019EEC AC6E0004 */ sw $t6, 4($v1) +/* 04EA20 7F019EF0 24640008 */ addiu $a0, $v1, 8 +/* 04EA24 7F019EF4 3C0FFA00 */ lui $t7, 0xfa00 +/* 04EA28 7F019EF8 AC8F0000 */ sw $t7, ($a0) +/* 04EA2C 7F019EFC 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 04EA30 7F019F00 44813000 */ mtc1 $at, $f6 +/* 04EA34 7F019F04 C7A80144 */ lwc1 $f8, 0x144($sp) +/* 04EA38 7F019F08 240C00FF */ li $t4, 255 +/* 04EA3C 7F019F0C 24930008 */ addiu $s3, $a0, 8 +/* 04EA40 7F019F10 46083002 */ mul.s $f0, $f6, $f8 +/* 04EA44 7F019F14 3C0EF66E */ lui $t6, (0xF66E0528 >> 16) # lui $t6, 0xf66e +/* 04EA48 7F019F18 35CE0528 */ ori $t6, (0xF66E0528 & 0xFFFF) # ori $t6, $t6, 0x528 +/* 04EA4C 7F019F1C 26660008 */ addiu $a2, $s3, 8 +/* 04EA50 7F019F20 24C20008 */ addiu $v0, $a2, 8 +/* 04EA54 7F019F24 24430008 */ addiu $v1, $v0, 8 +/* 04EA58 7F019F28 240F0040 */ li $t7, 64 +/* 04EA5C 7F019F2C 4600028D */ trunc.w.s $f10, $f0 +/* 04EA60 7F019F30 3C0D0008 */ lui $t5, 8 +/* 04EA64 7F019F34 24650008 */ addiu $a1, $v1, 8 +/* 04EA68 7F019F38 44185000 */ mfc1 $t8, $f10 +/* 04EA6C 7F019F3C 00000000 */ nop +/* 04EA70 7F019F40 0198C823 */ subu $t9, $t4, $t8 +/* 04EA74 7F019F44 332B00FF */ andi $t3, $t9, 0xff +/* 04EA78 7F019F48 AC8B0004 */ sw $t3, 4($a0) +/* 04EA7C 7F019F4C AE600004 */ sw $zero, 4($s3) +/* 04EA80 7F019F50 AE6E0000 */ sw $t6, ($s3) +/* 04EA84 7F019F54 ACC00004 */ sw $zero, 4($a2) +/* 04EA88 7F019F58 ACC70000 */ sw $a3, ($a2) +/* 04EA8C 7F019F5C AC4F0004 */ sw $t7, 4($v0) +/* 04EA90 7F019F60 AC480000 */ sw $t0, ($v0) +/* 04EA94 7F019F64 AC6D0004 */ sw $t5, 4($v1) +/* 04EA98 7F019F68 AC690000 */ sw $t1, ($v1) +/* 04EA9C 7F019F6C 3C0C0001 */ lui $t4, 1 +/* 04EAA0 7F019F70 ACAC0004 */ sw $t4, 4($a1) +/* 04EAA4 7F019F74 ACAA0000 */ sw $t2, ($a1) +/* 04EAA8 7F019F78 24A40008 */ addiu $a0, $a1, 8 +/* 04EAAC 7F019F7C 0FC2B366 */ jal microcode_constructor +/* 04EAB0 7F019F80 E7A00070 */ swc1 $f0, 0x70($sp) +/* 04EAB4 7F019F84 3C188003 */ lui $t8, %hi(full_actor_intro) +/* 04EAB8 7F019F88 8F18B5FC */ lw $t8, %lo(full_actor_intro)($t8) +/* 04EABC 7F019F8C 00409825 */ move $s3, $v0 +/* 04EAC0 7F019F90 1700005F */ bnez $t8, .L7F01A110 +/* 04EAC4 7F019F94 3C198003 */ lui $t9, %hi(do_not_play_intro_movie) +/* 04EAC8 7F019F98 8F39B5E8 */ lw $t9, %lo(do_not_play_intro_movie)($t9) +/* 04EACC 7F019F9C 3C048003 */ lui $a0, %hi(intro_char_table+8) +/* 04EAD0 7F019FA0 00195880 */ sll $t3, $t9, 2 +/* 04EAD4 7F019FA4 01795821 */ addu $t3, $t3, $t9 +/* 04EAD8 7F019FA8 000B5880 */ sll $t3, $t3, 2 +/* 04EADC 7F019FAC 008B2021 */ addu $a0, $a0, $t3 +/* 04EAE0 7F019FB0 0FC30776 */ jal get_textptr_for_textID +/* 04EAE4 7F019FB4 9484B608 */ lhu $a0, %lo(intro_char_table+8)($a0) +/* 04EAE8 7F019FB8 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 04EAEC 7F019FBC 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 04EAF0 7F019FC0 3C148004 */ lui $s4, %hi(ptrSecondFontTableLarge) +/* 04EAF4 7F019FC4 26940EB8 */ addiu $s4, %lo(ptrSecondFontTableLarge) # addiu $s4, $s4, 0xeb8 +/* 04EAF8 7F019FC8 00408825 */ move $s1, $v0 +/* 04EAFC 7F019FCC 8E870000 */ lw $a3, ($s4) +/* 04EB00 7F019FD0 27A40150 */ addiu $a0, $sp, 0x150 +/* 04EB04 7F019FD4 27A50154 */ addiu $a1, $sp, 0x154 +/* 04EB08 7F019FD8 00403025 */ move $a2, $v0 +/* 04EB0C 7F019FDC AFA00014 */ sw $zero, 0x14($sp) +/* 04EB10 7F019FE0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04EB14 7F019FE4 AFAE0010 */ sw $t6, 0x10($sp) +/* 04EB18 7F019FE8 8FA20154 */ lw $v0, 0x154($sp) +/* 04EB1C 7F019FEC 8FB80150 */ lw $t8, 0x150($sp) +/* 04EB20 7F019FF0 240D013B */ li $t5, 315 +/* 04EB24 7F019FF4 04410003 */ bgez $v0, .L7F01A004 +/* 04EB28 7F019FF8 00027843 */ sra $t7, $v0, 1 +/* 04EB2C 7F019FFC 24410001 */ addiu $at, $v0, 1 +/* 04EB30 7F01A000 00017843 */ sra $t7, $at, 1 +.L7F01A004: +/* 04EB34 7F01A004 01AF2823 */ subu $a1, $t5, $t7 +/* 04EB38 7F01A008 240C006C */ li $t4, 108 +/* 04EB3C 7F01A00C 00A23821 */ addu $a3, $a1, $v0 +/* 04EB40 7F01A010 2719006D */ addiu $t9, $t8, 0x6d +/* 04EB44 7F01A014 AFAC0158 */ sw $t4, 0x158($sp) +/* 04EB48 7F01A018 AFB90010 */ sw $t9, 0x10($sp) +/* 04EB4C 7F01A01C 24E70001 */ addiu $a3, $a3, 1 +/* 04EB50 7F01A020 AFA5015C */ sw $a1, 0x15c($sp) +/* 04EB54 7F01A024 02602025 */ move $a0, $s3 +/* 04EB58 7F01A028 2406006C */ li $a2, 108 +/* 04EB5C 7F01A02C 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04EB60 7F01A030 AFA00014 */ sw $zero, 0x14($sp) +/* 04EB64 7F01A034 0C001107 */ jal get_video2_settings_txtClipW +/* 04EB68 7F01A038 00409825 */ move $s3, $v0 +/* 04EB6C 7F01A03C 00028400 */ sll $s0, $v0, 0x10 +/* 04EB70 7F01A040 00105C03 */ sra $t3, $s0, 0x10 +/* 04EB74 7F01A044 0C00110B */ jal get_video2_settings_txtClipH +/* 04EB78 7F01A048 01608025 */ move $s0, $t3 +/* 04EB7C 7F01A04C 444FF800 */ cfc1 $t7, $31 +/* 04EB80 7F01A050 240C0001 */ li $t4, 1 +/* 04EB84 7F01A054 44CCF800 */ ctc1 $t4, $31 +/* 04EB88 7F01A058 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 04EB8C 7F01A05C 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04EB90 7F01A060 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04EB94 7F01A064 460021A4 */ cvt.w.s $f6, $f4 +/* 04EB98 7F01A068 8E8E0000 */ lw $t6, ($s4) +/* 04EB9C 7F01A06C 02602025 */ move $a0, $s3 +/* 04EBA0 7F01A070 27A5015C */ addiu $a1, $sp, 0x15c +/* 04EBA4 7F01A074 444CF800 */ cfc1 $t4, $31 +/* 04EBA8 7F01A078 27A60158 */ addiu $a2, $sp, 0x158 +/* 04EBAC 7F01A07C 02203825 */ move $a3, $s1 +/* 04EBB0 7F01A080 318C0078 */ andi $t4, $t4, 0x78 +/* 04EBB4 7F01A084 AFAD0014 */ sw $t5, 0x14($sp) +/* 04EBB8 7F01A088 11800013 */ beqz $t4, .L7F01A0D8 +/* 04EBBC 7F01A08C AFAE0010 */ sw $t6, 0x10($sp) +/* 04EBC0 7F01A090 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 04EBC4 7F01A094 44813000 */ mtc1 $at, $f6 +/* 04EBC8 7F01A098 240C0001 */ li $t4, 1 +/* 04EBCC 7F01A09C 46062181 */ sub.s $f6, $f4, $f6 +/* 04EBD0 7F01A0A0 44CCF800 */ ctc1 $t4, $31 +/* 04EBD4 7F01A0A4 00000000 */ nop +/* 04EBD8 7F01A0A8 460031A4 */ cvt.w.s $f6, $f6 +/* 04EBDC 7F01A0AC 444CF800 */ cfc1 $t4, $31 +/* 04EBE0 7F01A0B0 00000000 */ nop +/* 04EBE4 7F01A0B4 318C0078 */ andi $t4, $t4, 0x78 +/* 04EBE8 7F01A0B8 15800005 */ bnez $t4, .L7F01A0D0 +/* 04EBEC 7F01A0BC 00000000 */ nop +/* 04EBF0 7F01A0C0 440C3000 */ mfc1 $t4, $f6 +/* 04EBF4 7F01A0C4 3C018000 */ lui $at, 0x8000 +/* 04EBF8 7F01A0C8 10000007 */ b .L7F01A0E8 +/* 04EBFC 7F01A0CC 01816025 */ or $t4, $t4, $at +.L7F01A0D0: +/* 04EC00 7F01A0D0 10000005 */ b .L7F01A0E8 +/* 04EC04 7F01A0D4 240CFFFF */ li $t4, -1 +.L7F01A0D8: +/* 04EC08 7F01A0D8 440C3000 */ mfc1 $t4, $f6 +/* 04EC0C 7F01A0DC 00000000 */ nop +/* 04EC10 7F01A0E0 0580FFFB */ bltz $t4, .L7F01A0D0 +/* 04EC14 7F01A0E4 00000000 */ nop +.L7F01A0E8: +/* 04EC18 7F01A0E8 2401FF00 */ li $at, -256 +/* 04EC1C 7F01A0EC 0181C025 */ or $t8, $t4, $at +/* 04EC20 7F01A0F0 44CFF800 */ ctc1 $t7, $31 +/* 04EC24 7F01A0F4 AFB80018 */ sw $t8, 0x18($sp) +/* 04EC28 7F01A0F8 AFB0001C */ sw $s0, 0x1c($sp) +/* 04EC2C 7F01A0FC AFA20020 */ sw $v0, 0x20($sp) +/* 04EC30 7F01A100 AFA00024 */ sw $zero, 0x24($sp) +/* 04EC34 7F01A104 0FC2B6AF */ jal en_text_write_stuff +/* 04EC38 7F01A108 AFA00028 */ sw $zero, 0x28($sp) +/* 04EC3C 7F01A10C 00409825 */ move $s3, $v0 +.L7F01A110: +/* 04EC40 7F01A110 444EF800 */ cfc1 $t6, $31 +/* 04EC44 7F01A114 24120001 */ li $s2, 1 +/* 04EC48 7F01A118 44D2F800 */ ctc1 $s2, $31 +/* 04EC4C 7F01A11C C7A80070 */ lwc1 $f8, 0x70($sp) +/* 04EC50 7F01A120 3C198003 */ lui $t9, %hi(do_not_play_intro_movie) +/* 04EC54 7F01A124 8F39B5E8 */ lw $t9, %lo(do_not_play_intro_movie)($t9) +/* 04EC58 7F01A128 460042A4 */ cvt.w.s $f10, $f8 +/* 04EC5C 7F01A12C 3C048003 */ lui $a0, %hi(intro_char_table+10) +/* 04EC60 7F01A130 00195880 */ sll $t3, $t9, 2 +/* 04EC64 7F01A134 01795821 */ addu $t3, $t3, $t9 +/* 04EC68 7F01A138 4452F800 */ cfc1 $s2, $31 +/* 04EC6C 7F01A13C 000B5880 */ sll $t3, $t3, 2 +/* 04EC70 7F01A140 3C148004 */ lui $s4, %hi(ptrSecondFontTableLarge) +/* 04EC74 7F01A144 008B2021 */ addu $a0, $a0, $t3 +/* 04EC78 7F01A148 32520078 */ andi $s2, $s2, 0x78 +/* 04EC7C 7F01A14C 26940EB8 */ addiu $s4, %lo(ptrSecondFontTableLarge) # addiu $s4, $s4, 0xeb8 +/* 04EC80 7F01A150 12400013 */ beqz $s2, .L7F01A1A0 +/* 04EC84 7F01A154 9484B60A */ lhu $a0, %lo(intro_char_table+10)($a0) +/* 04EC88 7F01A158 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 04EC8C 7F01A15C 44815000 */ mtc1 $at, $f10 +/* 04EC90 7F01A160 24120001 */ li $s2, 1 +/* 04EC94 7F01A164 460A4281 */ sub.s $f10, $f8, $f10 +/* 04EC98 7F01A168 44D2F800 */ ctc1 $s2, $31 +/* 04EC9C 7F01A16C 00000000 */ nop +/* 04ECA0 7F01A170 460052A4 */ cvt.w.s $f10, $f10 +/* 04ECA4 7F01A174 4452F800 */ cfc1 $s2, $31 +/* 04ECA8 7F01A178 00000000 */ nop +/* 04ECAC 7F01A17C 32520078 */ andi $s2, $s2, 0x78 +/* 04ECB0 7F01A180 16400005 */ bnez $s2, .L7F01A198 +/* 04ECB4 7F01A184 00000000 */ nop +/* 04ECB8 7F01A188 44125000 */ mfc1 $s2, $f10 +/* 04ECBC 7F01A18C 3C018000 */ lui $at, 0x8000 +/* 04ECC0 7F01A190 10000007 */ b .L7F01A1B0 +/* 04ECC4 7F01A194 02419025 */ or $s2, $s2, $at +.L7F01A198: +/* 04ECC8 7F01A198 10000005 */ b .L7F01A1B0 +/* 04ECCC 7F01A19C 2412FFFF */ li $s2, -1 +.L7F01A1A0: +/* 04ECD0 7F01A1A0 44125000 */ mfc1 $s2, $f10 +/* 04ECD4 7F01A1A4 00000000 */ nop +/* 04ECD8 7F01A1A8 0640FFFB */ bltz $s2, .L7F01A198 +/* 04ECDC 7F01A1AC 00000000 */ nop +.L7F01A1B0: +/* 04ECE0 7F01A1B0 2401FF00 */ li $at, -256 +/* 04ECE4 7F01A1B4 02416825 */ or $t5, $s2, $at +/* 04ECE8 7F01A1B8 44CEF800 */ ctc1 $t6, $31 +/* 04ECEC 7F01A1BC 0FC30776 */ jal get_textptr_for_textID +/* 04ECF0 7F01A1C0 01A09025 */ move $s2, $t5 +/* 04ECF4 7F01A1C4 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) +/* 04ECF8 7F01A1C8 8DEF0EB4 */ lw $t7, %lo(ptrFirstFontTableLarge)($t7) +/* 04ECFC 7F01A1CC 00408825 */ move $s1, $v0 +/* 04ED00 7F01A1D0 27A40150 */ addiu $a0, $sp, 0x150 +/* 04ED04 7F01A1D4 27A50154 */ addiu $a1, $sp, 0x154 +/* 04ED08 7F01A1D8 00403025 */ move $a2, $v0 +/* 04ED0C 7F01A1DC 8E870000 */ lw $a3, ($s4) +/* 04ED10 7F01A1E0 AFA00014 */ sw $zero, 0x14($sp) +/* 04ED14 7F01A1E4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04ED18 7F01A1E8 AFAF0010 */ sw $t7, 0x10($sp) +/* 04ED1C 7F01A1EC 8FA20154 */ lw $v0, 0x154($sp) +/* 04ED20 7F01A1F0 8FAB0150 */ lw $t3, 0x150($sp) +/* 04ED24 7F01A1F4 2418013B */ li $t8, 315 +/* 04ED28 7F01A1F8 04410003 */ bgez $v0, .L7F01A208 +/* 04ED2C 7F01A1FC 00026043 */ sra $t4, $v0, 1 +/* 04ED30 7F01A200 24410001 */ addiu $at, $v0, 1 +/* 04ED34 7F01A204 00016043 */ sra $t4, $at, 1 +.L7F01A208: +/* 04ED38 7F01A208 030C2823 */ subu $a1, $t8, $t4 +/* 04ED3C 7F01A20C 24190098 */ li $t9, 152 +/* 04ED40 7F01A210 00A23821 */ addu $a3, $a1, $v0 +/* 04ED44 7F01A214 256E0099 */ addiu $t6, $t3, 0x99 +/* 04ED48 7F01A218 AFB90158 */ sw $t9, 0x158($sp) +/* 04ED4C 7F01A21C AFAE0010 */ sw $t6, 0x10($sp) +/* 04ED50 7F01A220 24E70001 */ addiu $a3, $a3, 1 +/* 04ED54 7F01A224 AFA5015C */ sw $a1, 0x15c($sp) +/* 04ED58 7F01A228 02602025 */ move $a0, $s3 +/* 04ED5C 7F01A22C 24060098 */ li $a2, 152 +/* 04ED60 7F01A230 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04ED64 7F01A234 AFA00014 */ sw $zero, 0x14($sp) +/* 04ED68 7F01A238 0C001107 */ jal get_video2_settings_txtClipW +/* 04ED6C 7F01A23C 00409825 */ move $s3, $v0 +/* 04ED70 7F01A240 00028400 */ sll $s0, $v0, 0x10 +/* 04ED74 7F01A244 00106C03 */ sra $t5, $s0, 0x10 +/* 04ED78 7F01A248 0C00110B */ jal get_video2_settings_txtClipH +/* 04ED7C 7F01A24C 01A08025 */ move $s0, $t5 +/* 04ED80 7F01A250 3C188004 */ lui $t8, %hi(ptrFirstFontTableLarge) +/* 04ED84 7F01A254 8F180EB4 */ lw $t8, %lo(ptrFirstFontTableLarge)($t8) +/* 04ED88 7F01A258 8E8F0000 */ lw $t7, ($s4) +/* 04ED8C 7F01A25C 02602025 */ move $a0, $s3 +/* 04ED90 7F01A260 27A5015C */ addiu $a1, $sp, 0x15c +/* 04ED94 7F01A264 27A60158 */ addiu $a2, $sp, 0x158 +/* 04ED98 7F01A268 02203825 */ move $a3, $s1 +/* 04ED9C 7F01A26C AFB20018 */ sw $s2, 0x18($sp) +/* 04EDA0 7F01A270 AFB0001C */ sw $s0, 0x1c($sp) +/* 04EDA4 7F01A274 AFA20020 */ sw $v0, 0x20($sp) +/* 04EDA8 7F01A278 AFA00024 */ sw $zero, 0x24($sp) +/* 04EDAC 7F01A27C AFA00028 */ sw $zero, 0x28($sp) +/* 04EDB0 7F01A280 AFB80014 */ sw $t8, 0x14($sp) +/* 04EDB4 7F01A284 0FC2B6AF */ jal en_text_write_stuff +/* 04EDB8 7F01A288 AFAF0010 */ sw $t7, 0x10($sp) +/* 04EDBC 7F01A28C 3C0C8003 */ lui $t4, %hi(do_not_play_intro_movie) +/* 04EDC0 7F01A290 8D8CB5E8 */ lw $t4, %lo(do_not_play_intro_movie)($t4) +/* 04EDC4 7F01A294 3C048003 */ lui $a0, %hi(intro_char_table+12) +/* 04EDC8 7F01A298 00409825 */ move $s3, $v0 +/* 04EDCC 7F01A29C 000CC880 */ sll $t9, $t4, 2 +/* 04EDD0 7F01A2A0 032CC821 */ addu $t9, $t9, $t4 +/* 04EDD4 7F01A2A4 0019C880 */ sll $t9, $t9, 2 +/* 04EDD8 7F01A2A8 00992021 */ addu $a0, $a0, $t9 +/* 04EDDC 7F01A2AC 0FC30776 */ jal get_textptr_for_textID +/* 04EDE0 7F01A2B0 9484B60C */ lhu $a0, %lo(intro_char_table+12)($a0) +/* 04EDE4 7F01A2B4 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) +/* 04EDE8 7F01A2B8 8D6B0EB4 */ lw $t3, %lo(ptrFirstFontTableLarge)($t3) +/* 04EDEC 7F01A2BC 00408825 */ move $s1, $v0 +/* 04EDF0 7F01A2C0 27A40150 */ addiu $a0, $sp, 0x150 +/* 04EDF4 7F01A2C4 27A50154 */ addiu $a1, $sp, 0x154 +/* 04EDF8 7F01A2C8 00403025 */ move $a2, $v0 +/* 04EDFC 7F01A2CC 8E870000 */ lw $a3, ($s4) +/* 04EE00 7F01A2D0 AFA00014 */ sw $zero, 0x14($sp) +/* 04EE04 7F01A2D4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04EE08 7F01A2D8 AFAB0010 */ sw $t3, 0x10($sp) +/* 04EE0C 7F01A2DC 8FA20154 */ lw $v0, 0x154($sp) +/* 04EE10 7F01A2E0 8FB80150 */ lw $t8, 0x150($sp) +/* 04EE14 7F01A2E4 240D013B */ li $t5, 315 +/* 04EE18 7F01A2E8 04410003 */ bgez $v0, .L7F01A2F8 +/* 04EE1C 7F01A2EC 00027043 */ sra $t6, $v0, 1 +/* 04EE20 7F01A2F0 24410001 */ addiu $at, $v0, 1 +/* 04EE24 7F01A2F4 00017043 */ sra $t6, $at, 1 +.L7F01A2F8: +/* 04EE28 7F01A2F8 01AE2823 */ subu $a1, $t5, $t6 +/* 04EE2C 7F01A2FC 240F00AE */ li $t7, 174 +/* 04EE30 7F01A300 00A23821 */ addu $a3, $a1, $v0 +/* 04EE34 7F01A304 270C00AF */ addiu $t4, $t8, 0xaf +/* 04EE38 7F01A308 AFAF0158 */ sw $t7, 0x158($sp) +/* 04EE3C 7F01A30C AFAC0010 */ sw $t4, 0x10($sp) +/* 04EE40 7F01A310 24E70001 */ addiu $a3, $a3, 1 +/* 04EE44 7F01A314 AFA5015C */ sw $a1, 0x15c($sp) +/* 04EE48 7F01A318 02602025 */ move $a0, $s3 +/* 04EE4C 7F01A31C 240600AE */ li $a2, 174 +/* 04EE50 7F01A320 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 04EE54 7F01A324 AFA00014 */ sw $zero, 0x14($sp) +/* 04EE58 7F01A328 0C001107 */ jal get_video2_settings_txtClipW +/* 04EE5C 7F01A32C 00409825 */ move $s3, $v0 +/* 04EE60 7F01A330 00028400 */ sll $s0, $v0, 0x10 +/* 04EE64 7F01A334 0010CC03 */ sra $t9, $s0, 0x10 +/* 04EE68 7F01A338 0C00110B */ jal get_video2_settings_txtClipH +/* 04EE6C 7F01A33C 03208025 */ move $s0, $t9 +/* 04EE70 7F01A340 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04EE74 7F01A344 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04EE78 7F01A348 8E8B0000 */ lw $t3, ($s4) +/* 04EE7C 7F01A34C 02602025 */ move $a0, $s3 +/* 04EE80 7F01A350 27A5015C */ addiu $a1, $sp, 0x15c +/* 04EE84 7F01A354 27A60158 */ addiu $a2, $sp, 0x158 +/* 04EE88 7F01A358 02203825 */ move $a3, $s1 +/* 04EE8C 7F01A35C AFB20018 */ sw $s2, 0x18($sp) +/* 04EE90 7F01A360 AFB0001C */ sw $s0, 0x1c($sp) +/* 04EE94 7F01A364 AFA20020 */ sw $v0, 0x20($sp) +/* 04EE98 7F01A368 AFA00024 */ sw $zero, 0x24($sp) +/* 04EE9C 7F01A36C AFA00028 */ sw $zero, 0x28($sp) +/* 04EEA0 7F01A370 AFAD0014 */ sw $t5, 0x14($sp) +/* 04EEA4 7F01A374 0FC2B6AF */ jal en_text_write_stuff +/* 04EEA8 7F01A378 AFAB0010 */ sw $t3, 0x10($sp) +/* 04EEAC 7F01A37C 8FBF004C */ lw $ra, 0x4c($sp) +/* 04EEB0 7F01A380 8FB00038 */ lw $s0, 0x38($sp) +/* 04EEB4 7F01A384 8FB1003C */ lw $s1, 0x3c($sp) +/* 04EEB8 7F01A388 8FB20040 */ lw $s2, 0x40($sp) +/* 04EEBC 7F01A38C 8FB30044 */ lw $s3, 0x44($sp) +/* 04EEC0 7F01A390 8FB40048 */ lw $s4, 0x48($sp) +/* 04EEC4 7F01A394 03E00008 */ jr $ra +/* 04EEC8 7F01A398 27BD0250 */ addiu $sp, $sp, 0x250 +) +#endif + + + +#ifdef NONMATCHING +void init_menu19_spectrum(void) { + u8 rom; + + // Node 0 + rom = 0; + if (get_controller_buttons_held(2, 2) == 0) + { + // Node 1 + if (get_controller_buttons_held(2, 1) != 0) + { + // Node 2 + rom = 1; + } + else + { + // Node 3 + if (get_controller_buttons_held(2, 8) != 0) + { + // Node 4 + rom = 2; + } + else + { + // Node 5 + if (get_controller_buttons_held(2, 4) != 0) + { + // Node 6 + rom = 3; + } + else + { + // Node 7 + if (get_controller_buttons_held(2, 0x200) != 0) + { + // Node 8 + rom = 4; + } + else + { + // Node 9 + if (get_controller_buttons_held(2, 0x100) != 0) + { + // Node 10 + rom = 5; + } + else + { + // Node 11 + if (get_controller_buttons_held(2, 0x800) != 0) + { + // Node 12 + rom = 6; + } + else + { + // Node 13 + rom = 0; + if (get_controller_buttons_held(2, 0x400) != 0) + { + // Node 14 + rom = 7; + } + } + } + } + } + } + } + } + // Node 15 + return init_spectrum_game(rom); +} +#else +GLOBAL_ASM( +.text +glabel init_menu19_spectrum +/* 04EECC 7F01A39C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 04EED0 7F01A3A0 AFBF001C */ sw $ra, 0x1c($sp) +/* 04EED4 7F01A3A4 AFB00018 */ sw $s0, 0x18($sp) +/* 04EED8 7F01A3A8 00008025 */ move $s0, $zero +/* 04EEDC 7F01A3AC 24040002 */ li $a0, 2 +/* 04EEE0 7F01A3B0 0C0030C3 */ jal get_controller_buttons_held +/* 04EEE4 7F01A3B4 24050002 */ li $a1, 2 +/* 04EEE8 7F01A3B8 1440002A */ bnez $v0, .L7F01A464 +/* 04EEEC 7F01A3BC 24040002 */ li $a0, 2 +/* 04EEF0 7F01A3C0 0C0030C3 */ jal get_controller_buttons_held +/* 04EEF4 7F01A3C4 24050001 */ li $a1, 1 +/* 04EEF8 7F01A3C8 10400003 */ beqz $v0, .L7F01A3D8 +/* 04EEFC 7F01A3CC 24040002 */ li $a0, 2 +/* 04EF00 7F01A3D0 10000024 */ b .L7F01A464 +/* 04EF04 7F01A3D4 24100001 */ li $s0, 1 +.L7F01A3D8: +/* 04EF08 7F01A3D8 0C0030C3 */ jal get_controller_buttons_held +/* 04EF0C 7F01A3DC 24050008 */ li $a1, 8 +/* 04EF10 7F01A3E0 10400003 */ beqz $v0, .L7F01A3F0 +/* 04EF14 7F01A3E4 24040002 */ li $a0, 2 +/* 04EF18 7F01A3E8 1000001E */ b .L7F01A464 +/* 04EF1C 7F01A3EC 24100002 */ li $s0, 2 +.L7F01A3F0: +/* 04EF20 7F01A3F0 0C0030C3 */ jal get_controller_buttons_held +/* 04EF24 7F01A3F4 24050004 */ li $a1, 4 +/* 04EF28 7F01A3F8 10400003 */ beqz $v0, .L7F01A408 +/* 04EF2C 7F01A3FC 24040002 */ li $a0, 2 +/* 04EF30 7F01A400 10000018 */ b .L7F01A464 +/* 04EF34 7F01A404 24100003 */ li $s0, 3 +.L7F01A408: +/* 04EF38 7F01A408 0C0030C3 */ jal get_controller_buttons_held +/* 04EF3C 7F01A40C 24050200 */ li $a1, 512 +/* 04EF40 7F01A410 10400003 */ beqz $v0, .L7F01A420 +/* 04EF44 7F01A414 24040002 */ li $a0, 2 +/* 04EF48 7F01A418 10000012 */ b .L7F01A464 +/* 04EF4C 7F01A41C 24100004 */ li $s0, 4 +.L7F01A420: +/* 04EF50 7F01A420 0C0030C3 */ jal get_controller_buttons_held +/* 04EF54 7F01A424 24050100 */ li $a1, 256 +/* 04EF58 7F01A428 10400003 */ beqz $v0, .L7F01A438 +/* 04EF5C 7F01A42C 24040002 */ li $a0, 2 +/* 04EF60 7F01A430 1000000C */ b .L7F01A464 +/* 04EF64 7F01A434 24100005 */ li $s0, 5 +.L7F01A438: +/* 04EF68 7F01A438 0C0030C3 */ jal get_controller_buttons_held +/* 04EF6C 7F01A43C 24050800 */ li $a1, 2048 +/* 04EF70 7F01A440 10400003 */ beqz $v0, .L7F01A450 +/* 04EF74 7F01A444 24040002 */ li $a0, 2 +/* 04EF78 7F01A448 10000006 */ b .L7F01A464 +/* 04EF7C 7F01A44C 24100006 */ li $s0, 6 +.L7F01A450: +/* 04EF80 7F01A450 0C0030C3 */ jal get_controller_buttons_held +/* 04EF84 7F01A454 24050400 */ li $a1, 1024 +/* 04EF88 7F01A458 10400002 */ beqz $v0, .L7F01A464 +/* 04EF8C 7F01A45C 00000000 */ nop +/* 04EF90 7F01A460 24100007 */ li $s0, 7 +.L7F01A464: +/* 04EF94 7F01A464 0FC34BF1 */ jal init_spectrum_game +/* 04EF98 7F01A468 02002025 */ move $a0, $s0 +/* 04EF9C 7F01A46C 8FBF001C */ lw $ra, 0x1c($sp) +/* 04EFA0 7F01A470 8FB00018 */ lw $s0, 0x18($sp) +/* 04EFA4 7F01A474 27BD0020 */ addiu $sp, $sp, 0x20 +/* 04EFA8 7F01A478 03E00008 */ jr $ra +/* 04EFAC 7F01A47C 00000000 */ nop +) +#endif + + + + + + +void update_menu19_spectrum(void) { + return; +} + + + +#ifdef NONMATCHING +void interface_menu19_spectrum(void) { + setvideo_far(60.0f); + video_related_21(D_80051B3C); + set_page_height(100.0f, D_80051B40); + set_video2_settings_offset_24(0); + run_spectrum_game(); +} +#else +GLOBAL_ASM( +.text +glabel interface_menu19_spectrum +/* 04EFB8 7F01A488 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 04EFBC 7F01A48C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 04EFC0 7F01A490 AFBF0014 */ sw $ra, 0x14($sp) +/* 04EFC4 7F01A494 44816000 */ mtc1 $at, $f12 +/* 04EFC8 7F01A498 0C001151 */ jal setvideo_far +/* 04EFCC 7F01A49C 00000000 */ nop +/* 04EFD0 7F01A4A0 3C018005 */ lui $at, %hi(D_80051B3C) +/* 04EFD4 7F01A4A4 0C001164 */ jal video_related_21 +/* 04EFD8 7F01A4A8 C42C1B3C */ lwc1 $f12, %lo(D_80051B3C)($at) +/* 04EFDC 7F01A4AC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04EFE0 7F01A4B0 44816000 */ mtc1 $at, $f12 +/* 04EFE4 7F01A4B4 3C018005 */ lui $at, %hi(D_80051B40) +/* 04EFE8 7F01A4B8 0C001194 */ jal set_page_height +/* 04EFEC 7F01A4BC C42E1B40 */ lwc1 $f14, %lo(D_80051B40)($at) +/* 04EFF0 7F01A4C0 0C00114D */ jal set_video2_settings_offset_24 +/* 04EFF4 7F01A4C4 00002025 */ move $a0, $zero +/* 04EFF8 7F01A4C8 0FC34CDD */ jal run_spectrum_game +/* 04EFFC 7F01A4CC 00000000 */ nop +/* 04F000 7F01A4D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 04F004 7F01A4D4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 04F008 7F01A4D8 03E00008 */ jr $ra +/* 04F00C 7F01A4DC 00000000 */ nop +) +#endif + + + + + + +#ifdef NONMATCHING +void constructor_menu19_spectrum(void) { + s32 temp_ret; + + // Node 0 + temp_ret = insert_imageDL(); + *temp_ret = 0xba001402; + temp_ret->unk14 = 0x204; + temp_ret->unk10 = 0xb6000000; + temp_ret->unk1C = 0xfffcf87c; + temp_ret->unk8 = 0xb900031d; + temp_ret->unkC = 0x552048; + temp_ret->unk18 = 0xfcffffff; + temp_ret->unk20 = 0xba000c02; + temp_ret->unk4 = 0; + temp_ret->unk24 = 0; + temp_ret->unk28 = 0xfd500000; + temp_ret->unk2C = &color_palette_entries_50_percent; + temp_ret->unk34 = 0x7000000; + temp_ret->unk30 = 0xf5000300; + temp_ret->unk38 = 0xe6000000; + temp_ret->unk3C = 0; + temp_ret->unk40 = 0xf0000ff0; + temp_ret->unk44 = 0x701cff0; + temp_ret->unk48 = 0xe7000000; + temp_ret->unk4C = 0; + temp_ret->unk54 = 0x8000; + temp_ret->unk50 = 0xba000e02; + spectrum_draw_screen((temp_ret + 0x58)); + return; + // (possible return value: spectrum_draw_screen((temp_ret + 0x58))) +} +#else +GLOBAL_ASM( +.text +glabel constructor_menu19_spectrum +/* 04F010 7F01A4E0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 04F014 7F01A4E4 AFBF0014 */ sw $ra, 0x14($sp) +/* 04F018 7F01A4E8 0FC07034 */ jal insert_imageDL +/* 04F01C 7F01A4EC 00000000 */ nop +/* 04F020 7F01A4F0 3C0EBA00 */ lui $t6, (0xBA001402 >> 16) # lui $t6, 0xba00 +/* 04F024 7F01A4F4 3C0AFFFC */ lui $t2, (0xFFFCF87C >> 16) # lui $t2, 0xfffc +/* 04F028 7F01A4F8 35CE1402 */ ori $t6, (0xBA001402 & 0xFFFF) # ori $t6, $t6, 0x1402 +/* 04F02C 7F01A4FC 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 04F030 7F01A500 3C180055 */ lui $t8, (0x00552048 >> 16) # lui $t8, 0x55 +/* 04F034 7F01A504 3C19B600 */ lui $t9, 0xb600 +/* 04F038 7F01A508 24080204 */ li $t0, 516 +/* 04F03C 7F01A50C 354AF87C */ ori $t2, (0xFFFCF87C & 0xFFFF) # ori $t2, $t2, 0xf87c +/* 04F040 7F01A510 3C09FCFF */ lui $t1, (0xFCFFFFFF >> 16) # lui $t1, 0xfcff +/* 04F044 7F01A514 3C0BBA00 */ lui $t3, (0xBA000C02 >> 16) # lui $t3, 0xba00 +/* 04F048 7F01A518 AC4E0000 */ sw $t6, ($v0) +/* 04F04C 7F01A51C 37182048 */ ori $t8, (0x00552048 & 0xFFFF) # ori $t8, $t8, 0x2048 +/* 04F050 7F01A520 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 04F054 7F01A524 AC480014 */ sw $t0, 0x14($v0) +/* 04F058 7F01A528 AC590010 */ sw $t9, 0x10($v0) +/* 04F05C 7F01A52C 3529FFFF */ ori $t1, (0xFCFFFFFF & 0xFFFF) # ori $t1, $t1, 0xffff +/* 04F060 7F01A530 AC4A001C */ sw $t2, 0x1c($v0) +/* 04F064 7F01A534 356B0C02 */ ori $t3, (0xBA000C02 & 0xFFFF) # ori $t3, $t3, 0xc02 +/* 04F068 7F01A538 AC4F0008 */ sw $t7, 8($v0) +/* 04F06C 7F01A53C AC58000C */ sw $t8, 0xc($v0) +/* 04F070 7F01A540 AC490018 */ sw $t1, 0x18($v0) +/* 04F074 7F01A544 AC4B0020 */ sw $t3, 0x20($v0) +/* 04F078 7F01A548 3C0D8003 */ lui $t5, %hi(color_palette_entries_50_percent) +/* 04F07C 7F01A54C 3C0EF500 */ lui $t6, (0xF5000300 >> 16) # lui $t6, 0xf500 +/* 04F080 7F01A550 3C19F000 */ lui $t9, (0xF0000FF0 >> 16) # lui $t9, 0xf000 +/* 04F084 7F01A554 3C080701 */ lui $t0, (0x0701CFF0 >> 16) # lui $t0, 0x701 +/* 04F088 7F01A558 3C0ABA00 */ lui $t2, (0xBA000E02 >> 16) # lui $t2, 0xba00 +/* 04F08C 7F01A55C 25ADBAF0 */ addiu $t5, %lo(color_palette_entries_50_percent) # addiu $t5, $t5, -0x4510 +/* 04F090 7F01A560 3C0CFD50 */ lui $t4, 0xfd50 +/* 04F094 7F01A564 35CE0300 */ ori $t6, (0xF5000300 & 0xFFFF) # ori $t6, $t6, 0x300 +/* 04F098 7F01A568 3C0F0700 */ lui $t7, 0x700 +/* 04F09C 7F01A56C 3C18E600 */ lui $t8, 0xe600 +/* 04F0A0 7F01A570 3508CFF0 */ ori $t0, (0x0701CFF0 & 0xFFFF) # ori $t0, $t0, 0xcff0 +/* 04F0A4 7F01A574 37390FF0 */ ori $t9, (0xF0000FF0 & 0xFFFF) # ori $t9, $t9, 0xff0 +/* 04F0A8 7F01A578 3C09E700 */ lui $t1, 0xe700 +/* 04F0AC 7F01A57C 354A0E02 */ ori $t2, (0xBA000E02 & 0xFFFF) # ori $t2, $t2, 0xe02 +/* 04F0B0 7F01A580 340B8000 */ li $t3, 32768 +/* 04F0B4 7F01A584 AC400004 */ sw $zero, 4($v0) +/* 04F0B8 7F01A588 AC400024 */ sw $zero, 0x24($v0) +/* 04F0BC 7F01A58C AC4C0028 */ sw $t4, 0x28($v0) +/* 04F0C0 7F01A590 AC4D002C */ sw $t5, 0x2c($v0) +/* 04F0C4 7F01A594 AC4F0034 */ sw $t7, 0x34($v0) +/* 04F0C8 7F01A598 AC4E0030 */ sw $t6, 0x30($v0) +/* 04F0CC 7F01A59C AC580038 */ sw $t8, 0x38($v0) +/* 04F0D0 7F01A5A0 AC40003C */ sw $zero, 0x3c($v0) +/* 04F0D4 7F01A5A4 AC590040 */ sw $t9, 0x40($v0) +/* 04F0D8 7F01A5A8 AC480044 */ sw $t0, 0x44($v0) +/* 04F0DC 7F01A5AC AC490048 */ sw $t1, 0x48($v0) +/* 04F0E0 7F01A5B0 AC40004C */ sw $zero, 0x4c($v0) +/* 04F0E4 7F01A5B4 AC4B0054 */ sw $t3, 0x54($v0) +/* 04F0E8 7F01A5B8 AC4A0050 */ sw $t2, 0x50($v0) +/* 04F0EC 7F01A5BC 0FC34CED */ jal spectrum_draw_screen +/* 04F0F0 7F01A5C0 24440058 */ addiu $a0, $v0, 0x58 +/* 04F0F4 7F01A5C4 8FBF0014 */ lw $ra, 0x14($sp) +/* 04F0F8 7F01A5C8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 04F0FC 7F01A5CC 03E00008 */ jr $ra +/* 04F100 7F01A5D0 00000000 */ nop +) +#endif + + + + + + +#ifdef NONMATCHING +void set_menu_to_mode(MENU menu, u32 mode) +{ + if ((menu == MENU_RUN_STAGE) || (menu == MENU_SPECTRUM_EMU)) { + is_emulating_spectrum = TRUE; + } + if (mode == 0) { + maybe_prev_menu = menu; + return; + } + menu_update = menu; + return; +} +#else +GLOBAL_ASM( +.text +glabel set_menu_to_mode +/* 04F104 7F01A5D4 2401000B */ li $at, 11 +/* 04F108 7F01A5D8 10810003 */ beq $a0, $at, .L7F01A5E8 +/* 04F10C 7F01A5DC 240E0001 */ li $t6, 1 +/* 04F110 7F01A5E0 24010019 */ li $at, 25 +/* 04F114 7F01A5E4 14810002 */ bne $a0, $at, .L7F01A5F0 +.L7F01A5E8: +/* 04F118 7F01A5E8 3C018003 */ lui $at, %hi(is_emulating_spectrum) +/* 04F11C 7F01A5EC AC2EA948 */ sw $t6, %lo(is_emulating_spectrum)($at) +.L7F01A5F0: +/* 04F120 7F01A5F0 10A00004 */ beqz $a1, .L7F01A604 +/* 04F124 7F01A5F4 3C018003 */ lui $at, %hi(maybe_prev_menu) +/* 04F128 7F01A5F8 3C018003 */ lui $at, %hi(menu_update) +/* 04F12C 7F01A5FC 03E00008 */ jr $ra +/* 04F130 7F01A600 AC24A8C4 */ sw $a0, %lo(menu_update)($at) +.L7F01A604: +/* 04F134 7F01A604 AC24A8C8 */ sw $a0, %lo(maybe_prev_menu)($at) +/* 04F138 7F01A608 03E00008 */ jr $ra +/* 04F13C 7F01A60C 00000000 */ nop +) +#endif + + + +MENU get_currentmenu(void) +{ + return current_menu; +} + + + + + +#ifdef NONMATCHING +void menu_init(u32 param_1,u32 param_2) +{ + MENU MVar1; + + if (current_menu == MENU_SWITCH_SCREENS) { + if (spectrum_related_flag == FALSE) { + if ((is_emulating_spectrum != FALSE) && + (get_video_settings2_frameb() == cfb_16_a)) { + screen_size = SCREEN_SIZE_320x240; + is_emulating_spectrum = FALSE; + } + } + else { + if (get_video_settings2_frameb() == cfb_16_b) { + screen_size = SCREEN_SIZE_440x330; + spectrum_related_flag = FALSE; + } + } + } + + if (screen_size == SCREEN_SIZE_320x240) { + video_related_21((f32)flt_80051B48); + set_video2_text_clip_size(320,240); + set_video2_settings_offset_18_1A(320,240); + set_cur_player_screen_size(320,240); + set_video2_width_height(320,240); + set_cur_player_viewport_size(0,0); + set_video2_ulx_uly(0,0); + } + else { + if (get_video_settings2_frameb() == cfb_16_b) { + set_video_settings2_frameb(ptr_menu_videobuffer); + } + video_related_21((f32)flt_80051B44); + set_video2_text_clip_size(440,330); + set_video2_settings_offset_18_1A(440,330); + set_cur_player_screen_size(440,330); + set_video2_width_height(440,330); + set_cur_player_viewport_size(0,0); + set_video2_ulx_uly(0,0); + } + if (((-1 < menu_update) || (-1 < maybe_prev_menu)) && + (current_menu != MENU_SWITCH_SCREENS)) { + if (true) { + switch(current_menu) { + case MENU_LEGAL_SCREEN: + update_menu00_legalscreen(); + break; + case MENU_NINTENDO_LOGO: + update_menu01_nintendo(); + break; + case MENU_RAREWARE_LOGO: + update_menu02_rareware(); + break; + case MENU_EYE_INTRO: + update_menu_03_eyeintro(); + break; + case MENU_GOLDENEYE_LOGO: + update_menu04_goldeneyelogo(); + break; + case MENU_FILE_SELECT: + update_menu05_filesel(); + break; + case MENU_MODE_SELECT: + update_menu06_modesel(); + break; + case MENU_MISSION_SELECT: + update_menu07_missionsel(); + break; + case MENU_DIFFICULTY: + update_menu08_difficulty(); + break; + case MENU_007_OPTIONS: + update_menu09_007options(); + break; + case MENU_BRIEFING: + update_menu0A_briefing(); + break; + case MENU_MISSION_FAILED: + update_menu0C_missionfailed(); + break; + case MENU_MISSION_COMPLETE: + update_menu0D_missioncomplete(); + break; + case MENU_MP_OPTIONS: + update_menu0E_mpoptions(); + break; + case MENU_MP_CHAR_SELECT: + update_menu0F_mpcharsel(); + break; + case MENU_MP_HANDICAP: + update_menu10_mphandicap(); + break; + case MENU_MP_CONTROL_STYLE: + update_menu11_mpcontrols(); + break; + case MENU_MP_STAGE_SELECT: + update_menu12_mpstage(); + break; + case MENU_MP_SCENARIO_SELECT: + update_menu13_mpscenario(); + break; + case MENU_MP_TEAMS: + update_menu14_mpteams(); + break; + case MENU_CHEAT: + update_menu15_cheat(); + break; + case MENU_NO_CONTROLLERS: + update_menu16_nocontrollers(); + break; + case MENU_DISPLAY_CAST: + update_menu18_displaycast(); + break; + case MENU_SPECTRUM_EMU: + update_menu19_spectrum(); + } + } + if (-1 < menu_update) { + current_menu = MENU_SWITCH_SCREENS; + reset_menutimer(); + } + } + MVar1 = maybe_prev_menu; + if (true) { + current_menu = maybe_prev_menu; + maybe_prev_menu = ~MENU_LEGAL_SCREEN; + if (true) { + switch(MVar1) { + case MENU_LEGAL_SCREEN: + init_menu00_legalscreen(); + break; + case MENU_NINTENDO_LOGO: + init_menu01_nintendo(); + break; + case MENU_RAREWARE_LOGO: + init_menu02_rareware(); + break; + case MENU_EYE_INTRO: + init_menu03_eyeintro(); + break; + case MENU_GOLDENEYE_LOGO: + init_menu04_goldeneyelogo(); + break; + case MENU_FILE_SELECT: + init_menu05_filesel(); + break; + case MENU_MODE_SELECT: + init_menu06_modesel(); + break; + case MENU_MISSION_SELECT: + init_menu07_missionsel(); + break; + case MENU_DIFFICULTY: + init_menu08_difficulty(); + break; + case MENU_007_OPTIONS: + init_menu09_007options(); + break; + case MENU_BRIEFING: + init_menu0A_briefing(); + break; + case MENU_RUN_STAGE: + init_menu0B_runstage(); + break; + case MENU_MISSION_FAILED: + init_menu0C_missionfailed(); + break; + case MENU_MISSION_COMPLETE: + init_menu0D_missioncomplete(); + break; + case MENU_MP_OPTIONS: + init_menu0E_mpoptions(); + break; + case MENU_MP_CHAR_SELECT: + init_menu0f_mpcharsel(); + break; + case MENU_MP_HANDICAP: + init_menu10_mphandicap(); + break; + case MENU_MP_CONTROL_STYLE: + init_menu11_mpcontrol(); + break; + case MENU_MP_STAGE_SELECT: + init_menu12_mpstage(); + break; + case MENU_MP_SCENARIO_SELECT: + init_menu13_mpscenariosel(); + break; + case MENU_MP_TEAMS: + init_menu14_mpteamsel(); + break; + case MENU_CHEAT: + init_menu15_cheat(); + break; + case MENU_NO_CONTROLLERS: + init_menu16_nocontroller(); + break; + case MENU_DISPLAY_CAST: + init_menu18_displaycast(); + break; + case MENU_SPECTRUM_EMU: + init_menu19_spectrum(); + } + } + } + switch(current_menu) { + case MENU_LEGAL_SCREEN: + interface_menu00_legalscreen(); + break; + case MENU_NINTENDO_LOGO: + interface_menu01_nintendo(); + break; + case MENU_RAREWARE_LOGO: + interface_menu02_rareware(); + break; + case MENU_EYE_INTRO: + interface_menu03_eyeintro(); + break; + case MENU_GOLDENEYE_LOGO: + interface_menu04_goldeneyelogo(); + break; + case MENU_FILE_SELECT: + interface_menu05_filesel(); + break; + case MENU_MODE_SELECT: + interface_menu06_modesel(); + break; + case MENU_MISSION_SELECT: + interface_menu07_missionsel(); + break; + case MENU_DIFFICULTY: + interface_menu08_difficulty(); + break; + case MENU_007_OPTIONS: + interface_menu09_007options(); + break; + case MENU_BRIEFING: + interface_menu0A_briefing(); + break; + case MENU_RUN_STAGE: + if (interface_menu0B_runstage() == 0) { + if (gamemode == GAMEMODE_MULTI) { + set_menu_to_mode(MENU_MP_OPTIONS,1); + } + else { + if (selected_stage == LEVELID_CUBA) { + do_extended_cast_display(1); + set_menu_to_mode(MENU_DISPLAY_CAST,1); + } + else { + set_menu_to_mode(MENU_MISSION_FAILED,1); + } + } + } + else { + set_menu_to_mode(MENU_LEGAL_SCREEN,1); + } + break; + case MENU_MISSION_FAILED: + interface_menu0C_missionfailed(); + break; + case MENU_MISSION_COMPLETE: + interface_menu0D_missioncomplete(); + break; + case MENU_MP_OPTIONS: + interface_menu0E_mpoptions(); + break; + case MENU_MP_CHAR_SELECT: + interface_menu0F_mpcharsel(); + break; + case MENU_MP_HANDICAP: + interface_menu10_mphandicap(); + break; + case MENU_MP_CONTROL_STYLE: + interface_menu11_mpcontrols(); + break; + case MENU_MP_STAGE_SELECT: + interface_menu12_mpstage(); + break; + case MENU_MP_SCENARIO_SELECT: + interface_menu13_mpscenario(); + break; + case MENU_MP_TEAMS: + interface_menu14_mpteams(); + break; + case MENU_CHEAT: + interface_menu15_cheat(); + break; + case MENU_NO_CONTROLLERS: + interface_menu16_nocontrollers(); + break; + case MENU_SWITCH_SCREENS: + interface_menu17_switchscreens(); + break; + case MENU_DISPLAY_CAST: + interface_menu18_displaycast(); + break; + case MENU_SPECTRUM_EMU: + interface_menu19_spectrum(); + } + return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel jpt_menu_update + .word menu_legal_screen_update + .word menu_nintendo_logo_update + .word menu_rareware_logo_update + .word menu_eye_intro_update + .word menu_goldeneye_logo_update + .word menu_file_select_update + .word menu_mode_select_update + .word menu_mission_select_update + .word menu_difficulty_update + .word menu_007_options_update + .word menu_briefing_update + .word menu_switch_screen_update + .word menu_mission_failed_update + .word menu_mission_complete_update + .word menu_mp_options_update + .word menu_mp_char_select_update + .word menu_mp_handicap_update + .word menu_mp_control_style_update + .word menu_mp_stage_select_update + .word menu_mp_scenario_select_update + .word menu_mp_teams_update + .word menu_cheat_update + .word menu_no_controllers_update + .word menu_switch_screen_update + .word menu_display_cast_update + .word menu_spectrum_emu_update + + glabel jpt_menu_init + .word menu_legal_screen_init + .word menu_nintendo_logo_init + .word menu_rareware_logo_init + .word menu_eye_intro_init + .word menu_goldeneye_logo_init + .word menu_file_select_init + .word menu_mode_select_init + .word menu_mission_select_init + .word menu_difficulty_init + .word menu_007_options_init + .word menu_briefing_init + .word menu_runstage_init + .word menu_mission_failed_init + .word menu_mission_complete_init + .word menu_mp_options_init + .word menu_mp_char_select_init + .word menu_mp_handicap_init + .word menu_mp_control_style_init + .word menu_mp_stage_select_init + .word menu_mp_scenario_select_init + .word menu_mp_teams_init + .word menu_cheat_init + .word menu_no_controllers_init + .word menu_switch_screens_init + .word menu_display_cast_init + .word menu_spectrum_emu_init + +glabel jpt_menu_interface + .word menu00_legal_interface + .word menu01_nintendo_interface + .word menu02_rareware_interface + .word menu03_eye_interface + .word menu04_goldeneye_interface + .word menu05_filesel_interface + .word menu06_modesel_interface + .word menu07_missionsel_interface + .word menu08_difficulty_interface + .word menu09_007options_interface + .word menu0A_briefing_interface + .word menu0B_runstage_interface + .word menu0C_missionfailed_interface + .word menu0D_missioncomplete_interface + .word menu0E_mpoptions_interface + .word menu0F_mpcharsel_interface + .word menu10_mphandicap_interface + .word menu11_mpcontrol_interface + .word menu12_mpstage_interface + .word menu13_mpscenario_interface + .word menu14_mpteams_interface + .word menu15_cheat_interface + .word menu16_nocontrollers_interface + .word menu17_switchscreen_interface + .word menu18_displaycast_interface + .word menu19_spectrum_interface +.text +glabel menu_init +/* 04F14C 7F01A61C 3C0E8003 */ lui $t6, %hi(current_menu) +/* 04F150 7F01A620 8DCEA8C0 */ lw $t6, %lo(current_menu)($t6) +/* 04F154 7F01A624 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 04F158 7F01A628 24010017 */ li $at, 23 +/* 04F15C 7F01A62C 15C1001D */ bne $t6, $at, .L7F01A6A4 +/* 04F160 7F01A630 AFBF0014 */ sw $ra, 0x14($sp) +/* 04F164 7F01A634 3C0F8003 */ lui $t7, %hi(spectrum_related_flag) +/* 04F168 7F01A638 8DEFA944 */ lw $t7, %lo(spectrum_related_flag)($t7) +/* 04F16C 7F01A63C 3C088003 */ lui $t0, %hi(is_emulating_spectrum) +/* 04F170 7F01A640 11E0000C */ beqz $t7, .L7F01A674 +/* 04F174 7F01A644 00000000 */ nop +/* 04F178 7F01A648 0C000F07 */ jal get_video_settings2_frameb +/* 04F17C 7F01A64C 00000000 */ nop +/* 04F180 7F01A650 3C18803E */ lui $t8, %hi(cfb_16_b) # $t8, 0x803e +/* 04F184 7F01A654 2718A800 */ addiu $t8, %lo(cfb_16_b) # addiu $t8, $t8, -0x5800 +/* 04F188 7F01A658 14580012 */ bne $v0, $t8, .L7F01A6A4 +/* 04F18C 7F01A65C 24190001 */ li $t9, 1 +/* 04F190 7F01A660 3C018003 */ lui $at, %hi(screen_size) +/* 04F194 7F01A664 AC39A940 */ sw $t9, %lo(screen_size)($at) +/* 04F198 7F01A668 3C018003 */ lui $at, %hi(spectrum_related_flag) +/* 04F19C 7F01A66C 1000000D */ b .L7F01A6A4 +/* 04F1A0 7F01A670 AC20A944 */ sw $zero, %lo(spectrum_related_flag)($at) +.L7F01A674: +/* 04F1A4 7F01A674 8D08A948 */ lw $t0, %lo(is_emulating_spectrum)($t0) +/* 04F1A8 7F01A678 1100000A */ beqz $t0, .L7F01A6A4 +/* 04F1AC 7F01A67C 00000000 */ nop +/* 04F1B0 7F01A680 0C000F07 */ jal get_video_settings2_frameb +/* 04F1B4 7F01A684 00000000 */ nop +/* 04F1B8 7F01A688 3C09803B */ lui $t1, %hi(cfb_16_a) # $t1, 0x803b +/* 04F1BC 7F01A68C 25295000 */ addiu $t1, %lo(cfb_16_a) # addiu $t1, $t1, 0x5000 +/* 04F1C0 7F01A690 14490004 */ bne $v0, $t1, .L7F01A6A4 +/* 04F1C4 7F01A694 3C018003 */ lui $at, %hi(screen_size) +/* 04F1C8 7F01A698 AC20A940 */ sw $zero, %lo(screen_size)($at) +/* 04F1CC 7F01A69C 3C018003 */ lui $at, %hi(is_emulating_spectrum) +/* 04F1D0 7F01A6A0 AC20A948 */ sw $zero, %lo(is_emulating_spectrum)($at) +.L7F01A6A4: +/* 04F1D4 7F01A6A4 3C0A8003 */ lui $t2, %hi(screen_size) +/* 04F1D8 7F01A6A8 8D4AA940 */ lw $t2, %lo(screen_size)($t2) +/* 04F1DC 7F01A6AC 3C018005 */ lui $at, %hi(D_80051B48) +/* 04F1E0 7F01A6B0 11400020 */ beqz $t2, .L7F01A734 +/* 04F1E4 7F01A6B4 00000000 */ nop +/* 04F1E8 7F01A6B8 0C000F07 */ jal get_video_settings2_frameb +/* 04F1EC 7F01A6BC 00000000 */ nop +/* 04F1F0 7F01A6C0 3C0B803E */ lui $t3, %hi(cfb_16_b) # $t3, 0x803e +/* 04F1F4 7F01A6C4 256BA800 */ addiu $t3, %lo(cfb_16_b) # addiu $t3, $t3, -0x5800 +/* 04F1F8 7F01A6C8 144B0003 */ bne $v0, $t3, .L7F01A6D8 +/* 04F1FC 7F01A6CC 3C048003 */ lui $a0, %hi(ptr_menu_videobuffer) +/* 04F200 7F01A6D0 0C000F0F */ jal set_video2buf_frameb +/* 04F204 7F01A6D4 8C84A954 */ lw $a0, %lo(ptr_menu_videobuffer)($a0) +.L7F01A6D8: +/* 04F208 7F01A6D8 3C018005 */ lui $at, %hi(D_80051B48) +/* 04F20C 7F01A6DC 0C001164 */ jal video_related_21 +/* 04F210 7F01A6E0 C42C1B44 */ lwc1 $f12, %lo(D_80051B44)($at) +/* 04F214 7F01A6E4 240401B8 */ li $a0, 440 +/* 04F218 7F01A6E8 0C0010FE */ jal set_video2_text_clip_size +/* 04F21C 7F01A6EC 2405014A */ li $a1, 330 +/* 04F220 7F01A6F0 240401B8 */ li $a0, 440 +/* 04F224 7F01A6F4 0C0010ED */ jal set_video2_settings_offset_18_1A +/* 04F228 7F01A6F8 2405014A */ li $a1, 330 +/* 04F22C 7F01A6FC 240401B8 */ li $a0, 440 +/* 04F230 7F01A700 0FC26C77 */ jal set_cur_player_screen_size +/* 04F234 7F01A704 2405014A */ li $a1, 330 +/* 04F238 7F01A708 240401B8 */ li $a0, 440 +/* 04F23C 7F01A70C 0C00110F */ jal set_video2_width_height +/* 04F240 7F01A710 2405014A */ li $a1, 330 +/* 04F244 7F01A714 00002025 */ move $a0, $zero +/* 04F248 7F01A718 0FC26C7E */ jal set_cur_player_viewport_size +/* 04F24C 7F01A71C 00002825 */ move $a1, $zero +/* 04F250 7F01A720 00002025 */ move $a0, $zero +/* 04F254 7F01A724 0C00112F */ jal set_video2_ulx_uly +/* 04F258 7F01A728 00002825 */ move $a1, $zero +/* 04F25C 7F01A72C 10000015 */ b .L7F01A784 +/* 04F260 7F01A730 00000000 */ nop +.L7F01A734: +/* 04F264 7F01A734 0C001164 */ jal video_related_21 +/* 04F268 7F01A738 C42C1B48 */ lwc1 $f12, %lo(D_80051B48)($at) +/* 04F26C 7F01A73C 24040140 */ li $a0, 320 +/* 04F270 7F01A740 0C0010FE */ jal set_video2_text_clip_size +/* 04F274 7F01A744 240500F0 */ li $a1, 240 +/* 04F278 7F01A748 24040140 */ li $a0, 320 +/* 04F27C 7F01A74C 0C0010ED */ jal set_video2_settings_offset_18_1A +/* 04F280 7F01A750 240500F0 */ li $a1, 240 +/* 04F284 7F01A754 24040140 */ li $a0, 320 +/* 04F288 7F01A758 0FC26C77 */ jal set_cur_player_screen_size +/* 04F28C 7F01A75C 240500F0 */ li $a1, 240 +/* 04F290 7F01A760 24040140 */ li $a0, 320 +/* 04F294 7F01A764 0C00110F */ jal set_video2_width_height +/* 04F298 7F01A768 240500F0 */ li $a1, 240 +/* 04F29C 7F01A76C 00002025 */ move $a0, $zero +/* 04F2A0 7F01A770 0FC26C7E */ jal set_cur_player_viewport_size +/* 04F2A4 7F01A774 00002825 */ move $a1, $zero +/* 04F2A8 7F01A778 00002025 */ move $a0, $zero +/* 04F2AC 7F01A77C 0C00112F */ jal set_video2_ulx_uly +/* 04F2B0 7F01A780 00002825 */ move $a1, $zero +.L7F01A784: +/* 04F2B4 7F01A784 3C028003 */ lui $v0, %hi(menu_update) +/* 04F2B8 7F01A788 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +/* 04F2BC 7F01A78C 3C048003 */ lui $a0, %hi(current_menu) +/* 04F2C0 7F01A790 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F2C4 7F01A794 04410004 */ bgez $v0, .L7F01A7A8 +/* 04F2C8 7F01A798 3C0C8003 */ lui $t4, %hi(maybe_prev_menu) +/* 04F2CC 7F01A79C 8D8CA8C8 */ lw $t4, %lo(maybe_prev_menu)($t4) +/* 04F2D0 7F01A7A0 058000B7 */ bltz $t4, .L7F01AA80 +/* 04F2D4 7F01A7A4 00000000 */ nop +.L7F01A7A8: +/* 04F2D8 7F01A7A8 8C830000 */ lw $v1, ($a0) +/* 04F2DC 7F01A7AC 24010017 */ li $at, 23 +/* 04F2E0 7F01A7B0 106100B3 */ beq $v1, $at, .L7F01AA80 +/* 04F2E4 7F01A7B4 2C61001A */ sltiu $at, $v1, 0x1a +/* 04F2E8 7F01A7B8 102000AD */ beqz $at, .L7F01AA70 +/* 04F2EC 7F01A7BC 00036880 */ sll $t5, $v1, 2 +/* 04F2F0 7F01A7C0 3C018005 */ lui $at, %hi(jpt_menu_update) +/* 04F2F4 7F01A7C4 002D0821 */ addu $at, $at, $t5 +/* 04F2F8 7F01A7C8 8C2D1B4C */ lw $t5, %lo(jpt_menu_update)($at) +/* 04F2FC 7F01A7CC 01A00008 */ jr $t5 +/* 04F300 7F01A7D0 00000000 */ nop +menu_legal_screen_update: +/* 04F304 7F01A7D4 0FC029AC */ jal update_menu00_legalscreen +/* 04F308 7F01A7D8 00000000 */ nop +/* 04F30C 7F01A7DC 3C028003 */ lui $v0, %hi(menu_update) +/* 04F310 7F01A7E0 3C048003 */ lui $a0, %hi(current_menu) +/* 04F314 7F01A7E4 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F318 7F01A7E8 100000A1 */ b .L7F01AA70 +/* 04F31C 7F01A7EC 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_nintendo_logo_update: +/* 04F320 7F01A7F0 0FC02B29 */ jal update_menu01_nintendo +/* 04F324 7F01A7F4 00000000 */ nop +/* 04F328 7F01A7F8 3C028003 */ lui $v0, %hi(menu_update) +/* 04F32C 7F01A7FC 3C048003 */ lui $a0, %hi(current_menu) +/* 04F330 7F01A800 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F334 7F01A804 1000009A */ b .L7F01AA70 +/* 04F338 7F01A808 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_rareware_logo_update: +/* 04F33C 7F01A80C 0FC02C29 */ jal update_menu02_rareware +/* 04F340 7F01A810 00000000 */ nop +/* 04F344 7F01A814 3C028003 */ lui $v0, %hi(menu_update) +/* 04F348 7F01A818 3C048003 */ lui $a0, %hi(current_menu) +/* 04F34C 7F01A81C 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F350 7F01A820 10000093 */ b .L7F01AA70 +/* 04F354 7F01A824 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_eye_intro_update: +/* 04F358 7F01A828 0FC02C64 */ jal update_menu_03_eye +/* 04F35C 7F01A82C 00000000 */ nop +/* 04F360 7F01A830 3C028003 */ lui $v0, %hi(menu_update) +/* 04F364 7F01A834 3C048003 */ lui $a0, %hi(current_menu) +/* 04F368 7F01A838 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F36C 7F01A83C 1000008C */ b .L7F01AA70 +/* 04F370 7F01A840 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_goldeneye_logo_update: +/* 04F374 7F01A844 0FC02CC1 */ jal update_menu04_goldeneye +/* 04F378 7F01A848 00000000 */ nop +/* 04F37C 7F01A84C 3C028003 */ lui $v0, %hi(menu_update) +/* 04F380 7F01A850 3C048003 */ lui $a0, %hi(current_menu) +/* 04F384 7F01A854 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F388 7F01A858 10000085 */ b .L7F01AA70 +/* 04F38C 7F01A85C 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_file_select_update: +/* 04F390 7F01A860 0FC02EB8 */ jal update_menu05_filesel +/* 04F394 7F01A864 00000000 */ nop +/* 04F398 7F01A868 3C028003 */ lui $v0, %hi(menu_update) +/* 04F39C 7F01A86C 3C048003 */ lui $a0, %hi(current_menu) +/* 04F3A0 7F01A870 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F3A4 7F01A874 1000007E */ b .L7F01AA70 +/* 04F3A8 7F01A878 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mode_select_update: +/* 04F3AC 7F01A87C 0FC034A4 */ jal update_menu06_modesel +/* 04F3B0 7F01A880 00000000 */ nop +/* 04F3B4 7F01A884 3C028003 */ lui $v0, %hi(menu_update) +/* 04F3B8 7F01A888 3C048003 */ lui $a0, %hi(current_menu) +/* 04F3BC 7F01A88C 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F3C0 7F01A890 10000077 */ b .L7F01AA70 +/* 04F3C4 7F01A894 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mission_select_update: +/* 04F3C8 7F01A898 0FC037AC */ jal update_menu07_missionsel +/* 04F3CC 7F01A89C 00000000 */ nop +/* 04F3D0 7F01A8A0 3C028003 */ lui $v0, %hi(menu_update) +/* 04F3D4 7F01A8A4 3C048003 */ lui $a0, %hi(current_menu) +/* 04F3D8 7F01A8A8 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F3DC 7F01A8AC 10000070 */ b .L7F01AA70 +/* 04F3E0 7F01A8B0 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_difficulty_update: +/* 04F3E4 7F01A8B4 0FC039EE */ jal update_menu08_difficulty +/* 04F3E8 7F01A8B8 00000000 */ nop +/* 04F3EC 7F01A8BC 3C028003 */ lui $v0, %hi(menu_update) +/* 04F3F0 7F01A8C0 3C048003 */ lui $a0, %hi(current_menu) +/* 04F3F4 7F01A8C4 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F3F8 7F01A8C8 10000069 */ b .L7F01AA70 +/* 04F3FC 7F01A8CC 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_007_options_update: +/* 04F400 7F01A8D0 0FC03CDB */ jal update_menu09_007options +/* 04F404 7F01A8D4 00000000 */ nop +/* 04F408 7F01A8D8 3C028003 */ lui $v0, %hi(menu_update) +/* 04F40C 7F01A8DC 3C048003 */ lui $a0, %hi(current_menu) +/* 04F410 7F01A8E0 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F414 7F01A8E4 10000062 */ b .L7F01AA70 +/* 04F418 7F01A8E8 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_briefing_update: +/* 04F41C 7F01A8EC 0FC05590 */ jal update_menu0A_briefing +/* 04F420 7F01A8F0 00000000 */ nop +/* 04F424 7F01A8F4 3C028003 */ lui $v0, %hi(menu_update) +/* 04F428 7F01A8F8 3C048003 */ lui $a0, %hi(current_menu) +/* 04F42C 7F01A8FC 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F430 7F01A900 1000005B */ b .L7F01AA70 +/* 04F434 7F01A904 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mission_failed_update: +/* 04F438 7F01A908 0FC05842 */ jal update_menu0C_missionfailed +/* 04F43C 7F01A90C 00000000 */ nop +/* 04F440 7F01A910 3C028003 */ lui $v0, %hi(menu_update) +/* 04F444 7F01A914 3C048003 */ lui $a0, %hi(current_menu) +/* 04F448 7F01A918 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F44C 7F01A91C 10000054 */ b .L7F01AA70 +/* 04F450 7F01A920 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mission_complete_update: +/* 04F454 7F01A924 0FC059B4 */ jal update_menu0D_missioncomplete +/* 04F458 7F01A928 00000000 */ nop +/* 04F45C 7F01A92C 3C028003 */ lui $v0, %hi(menu_update) +/* 04F460 7F01A930 3C048003 */ lui $a0, %hi(current_menu) +/* 04F464 7F01A934 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F468 7F01A938 1000004D */ b .L7F01AA70 +/* 04F46C 7F01A93C 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mp_options_update: +/* 04F470 7F01A940 0FC04210 */ jal update_menu0E_mpoptions +/* 04F474 7F01A944 00000000 */ nop +/* 04F478 7F01A948 3C028003 */ lui $v0, %hi(menu_update) +/* 04F47C 7F01A94C 3C048003 */ lui $a0, %hi(current_menu) +/* 04F480 7F01A950 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F484 7F01A954 10000046 */ b .L7F01AA70 +/* 04F488 7F01A958 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mp_scenario_select_update: +/* 04F48C 7F01A95C 0FC051EC */ jal update_menu13_mpscenario +/* 04F490 7F01A960 00000000 */ nop +/* 04F494 7F01A964 3C028003 */ lui $v0, %hi(menu_update) +/* 04F498 7F01A968 3C048003 */ lui $a0, %hi(current_menu) +/* 04F49C 7F01A96C 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F4A0 7F01A970 1000003F */ b .L7F01AA70 +/* 04F4A4 7F01A974 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mp_char_select_update: +/* 04F4A8 7F01A978 0FC047B3 */ jal update_menu0F_mpcharsel +/* 04F4AC 7F01A97C 00000000 */ nop +/* 04F4B0 7F01A980 3C028003 */ lui $v0, %hi(menu_update) +/* 04F4B4 7F01A984 3C048003 */ lui $a0, %hi(current_menu) +/* 04F4B8 7F01A988 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F4BC 7F01A98C 10000038 */ b .L7F01AA70 +/* 04F4C0 7F01A990 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mp_teams_update: +/* 04F4C4 7F01A994 0FC05350 */ jal update_menu14_mpteams +/* 04F4C8 7F01A998 00000000 */ nop +/* 04F4CC 7F01A99C 3C028003 */ lui $v0, %hi(menu_update) +/* 04F4D0 7F01A9A0 3C048003 */ lui $a0, %hi(current_menu) +/* 04F4D4 7F01A9A4 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F4D8 7F01A9A8 10000031 */ b .L7F01AA70 +/* 04F4DC 7F01A9AC 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mp_handicap_update: +/* 04F4E0 7F01A9B0 0FC04BAF */ jal update_menu10_mphandicap +/* 04F4E4 7F01A9B4 00000000 */ nop +/* 04F4E8 7F01A9B8 3C028003 */ lui $v0, %hi(menu_update) +/* 04F4EC 7F01A9BC 3C048003 */ lui $a0, %hi(current_menu) +/* 04F4F0 7F01A9C0 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F4F4 7F01A9C4 1000002A */ b .L7F01AA70 +/* 04F4F8 7F01A9C8 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mp_control_style_update: +/* 04F4FC 7F01A9CC 0FC04D80 */ jal update_menu11_mpcontrols +/* 04F500 7F01A9D0 00000000 */ nop +/* 04F504 7F01A9D4 3C028003 */ lui $v0, %hi(menu_update) +/* 04F508 7F01A9D8 3C048003 */ lui $a0, %hi(current_menu) +/* 04F50C 7F01A9DC 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F510 7F01A9E0 10000023 */ b .L7F01AA70 +/* 04F514 7F01A9E4 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_mp_stage_select_update: +/* 04F518 7F01A9E8 0FC04F73 */ jal update_menu12_mpstage +/* 04F51C 7F01A9EC 00000000 */ nop +/* 04F520 7F01A9F0 3C028003 */ lui $v0, %hi(menu_update) +/* 04F524 7F01A9F4 3C048003 */ lui $a0, %hi(current_menu) +/* 04F528 7F01A9F8 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F52C 7F01A9FC 1000001C */ b .L7F01AA70 +/* 04F530 7F01AA00 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_cheat_update: +/* 04F534 7F01AA04 0FC05EFD */ jal update_menu15_cheat +/* 04F538 7F01AA08 00000000 */ nop +/* 04F53C 7F01AA0C 3C028003 */ lui $v0, %hi(menu_update) +/* 04F540 7F01AA10 3C048003 */ lui $a0, %hi(current_menu) +/* 04F544 7F01AA14 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F548 7F01AA18 10000015 */ b .L7F01AA70 +/* 04F54C 7F01AA1C 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_no_controllers_update: +/* 04F550 7F01AA20 0FC06110 */ jal update_menu16_nocontrollers +/* 04F554 7F01AA24 00000000 */ nop +/* 04F558 7F01AA28 3C028003 */ lui $v0, %hi(menu_update) +/* 04F55C 7F01AA2C 3C048003 */ lui $a0, %hi(current_menu) +/* 04F560 7F01AA30 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F564 7F01AA34 1000000E */ b .L7F01AA70 +/* 04F568 7F01AA38 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_display_cast_update: +/* 04F56C 7F01AA3C 0FC063C6 */ jal update_menu18_displaycast +/* 04F570 7F01AA40 00000000 */ nop +/* 04F574 7F01AA44 3C028003 */ lui $v0, %hi(menu_update) +/* 04F578 7F01AA48 3C048003 */ lui $a0, %hi(current_menu) +/* 04F57C 7F01AA4C 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F580 7F01AA50 10000007 */ b .L7F01AA70 +/* 04F584 7F01AA54 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_spectrum_emu_update: +/* 04F588 7F01AA58 0FC06920 */ jal update_menu19_spectrum +/* 04F58C 7F01AA5C 00000000 */ nop +/* 04F590 7F01AA60 3C028003 */ lui $v0, %hi(menu_update) +/* 04F594 7F01AA64 3C048003 */ lui $a0, %hi(current_menu) +/* 04F598 7F01AA68 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F59C 7F01AA6C 8C42A8C4 */ lw $v0, %lo(menu_update)($v0) +menu_switch_screen_update: +.L7F01AA70: +/* 04F5A0 7F01AA70 04400003 */ bltz $v0, .L7F01AA80 +/* 04F5A4 7F01AA74 240E0017 */ li $t6, 23 +/* 04F5A8 7F01AA78 0FC02ABB */ jal reset_menutimer +/* 04F5AC 7F01AA7C AC8E0000 */ sw $t6, ($a0) +.L7F01AA80: +/* 04F5B0 7F01AA80 3C028003 */ lui $v0, %hi(maybe_prev_menu) +/* 04F5B4 7F01AA84 8C42A8C8 */ lw $v0, %lo(maybe_prev_menu)($v0) +/* 04F5B8 7F01AA88 3C048003 */ lui $a0, %hi(current_menu) +/* 04F5BC 7F01AA8C 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +/* 04F5C0 7F01AA90 04400089 */ bltz $v0, .L7F01ACB8 +/* 04F5C4 7F01AA94 240FFFFF */ li $t7, -1 +/* 04F5C8 7F01AA98 AC820000 */ sw $v0, ($a0) +/* 04F5CC 7F01AA9C 3C018003 */ lui $at, %hi(maybe_prev_menu) +/* 04F5D0 7F01AAA0 AC2FA8C8 */ sw $t7, %lo(maybe_prev_menu)($at) +/* 04F5D4 7F01AAA4 8C980000 */ lw $t8, ($a0) +/* 04F5D8 7F01AAA8 2F01001A */ sltiu $at, $t8, 0x1a +/* 04F5DC 7F01AAAC 10200082 */ beqz $at, .L7F01ACB8 +/* 04F5E0 7F01AAB0 0018C080 */ sll $t8, $t8, 2 +/* 04F5E4 7F01AAB4 3C018005 */ lui $at, %hi(jpt_menu_init) +/* 04F5E8 7F01AAB8 00380821 */ addu $at, $at, $t8 +/* 04F5EC 7F01AABC 8C381BB4 */ lw $t8, %lo(jpt_menu_init)($at) +/* 04F5F0 7F01AAC0 03000008 */ jr $t8 +/* 04F5F4 7F01AAC4 00000000 */ nop +menu_legal_screen_init: +/* 04F5F8 7F01AAC8 0FC0297A */ jal init_menu00_legalscreen +/* 04F5FC 7F01AACC 00000000 */ nop +/* 04F600 7F01AAD0 3C048003 */ lui $a0, %hi(current_menu) +/* 04F604 7F01AAD4 10000078 */ b .L7F01ACB8 +/* 04F608 7F01AAD8 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_nintendo_logo_init: +/* 04F60C 7F01AADC 0FC02AF2 */ jal init_menu01_nintendo +/* 04F610 7F01AAE0 00000000 */ nop +/* 04F614 7F01AAE4 3C048003 */ lui $a0, %hi(current_menu) +/* 04F618 7F01AAE8 10000073 */ b .L7F01ACB8 +/* 04F61C 7F01AAEC 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_rareware_logo_init: +/* 04F620 7F01AAF0 0FC02C19 */ jal init_menu02_rarelogo +/* 04F624 7F01AAF4 00000000 */ nop +/* 04F628 7F01AAF8 3C048003 */ lui $a0, %hi(current_menu) +/* 04F62C 7F01AAFC 1000006E */ b .L7F01ACB8 +/* 04F630 7F01AB00 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_eye_intro_init: +/* 04F634 7F01AB04 0FC02C55 */ jal init_menu03_eyeintro +/* 04F638 7F01AB08 00000000 */ nop +/* 04F63C 7F01AB0C 3C048003 */ lui $a0, %hi(current_menu) +/* 04F640 7F01AB10 10000069 */ b .L7F01ACB8 +/* 04F644 7F01AB14 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_goldeneye_logo_init: +/* 04F648 7F01AB18 0FC02C96 */ jal init_menu04_goldeneyelogo +/* 04F64C 7F01AB1C 00000000 */ nop +/* 04F650 7F01AB20 3C048003 */ lui $a0, %hi(current_menu) +/* 04F654 7F01AB24 10000064 */ b .L7F01ACB8 +/* 04F658 7F01AB28 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_file_select_init: +/* 04F65C 7F01AB2C 0FC02E7A */ jal init_menu05_fileselect +/* 04F660 7F01AB30 00000000 */ nop +/* 04F664 7F01AB34 3C048003 */ lui $a0, %hi(current_menu) +/* 04F668 7F01AB38 1000005F */ b .L7F01ACB8 +/* 04F66C 7F01AB3C 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mode_select_init: +/* 04F670 7F01AB40 0FC03494 */ jal init_menu06_modeselect +/* 04F674 7F01AB44 00000000 */ nop +/* 04F678 7F01AB48 3C048003 */ lui $a0, %hi(current_menu) +/* 04F67C 7F01AB4C 1000005A */ b .L7F01ACB8 +/* 04F680 7F01AB50 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mission_select_init: +/* 04F684 7F01AB54 0FC03794 */ jal init_menu07_missionselect +/* 04F688 7F01AB58 00000000 */ nop +/* 04F68C 7F01AB5C 3C048003 */ lui $a0, %hi(current_menu) +/* 04F690 7F01AB60 10000055 */ b .L7F01ACB8 +/* 04F694 7F01AB64 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_difficulty_init: +/* 04F698 7F01AB68 0FC039E0 */ jal init_menu08_difficultyselect +/* 04F69C 7F01AB6C 00000000 */ nop +/* 04F6A0 7F01AB70 3C048003 */ lui $a0, %hi(current_menu) +/* 04F6A4 7F01AB74 10000050 */ b .L7F01ACB8 +/* 04F6A8 7F01AB78 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_007_options_init: +/* 04F6AC 7F01AB7C 0FC03CC0 */ jal init_menu09_007difficultyselect +/* 04F6B0 7F01AB80 00000000 */ nop +/* 04F6B4 7F01AB84 3C048003 */ lui $a0, %hi(current_menu) +/* 04F6B8 7F01AB88 1000004B */ b .L7F01ACB8 +/* 04F6BC 7F01AB8C 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_briefing_init: +/* 04F6C0 7F01AB90 0FC0557D */ jal init_menu0A_briefing +/* 04F6C4 7F01AB94 00000000 */ nop +/* 04F6C8 7F01AB98 3C048003 */ lui $a0, %hi(current_menu) +/* 04F6CC 7F01AB9C 10000046 */ b .L7F01ACB8 +/* 04F6D0 7F01ABA0 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_runstage_init: +/* 04F6D4 7F01ABA4 0FC05819 */ jal init_menu0B_runstage +/* 04F6D8 7F01ABA8 00000000 */ nop +/* 04F6DC 7F01ABAC 3C048003 */ lui $a0, %hi(current_menu) +/* 04F6E0 7F01ABB0 10000041 */ b .L7F01ACB8 +/* 04F6E4 7F01ABB4 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mission_failed_init: +/* 04F6E8 7F01ABB8 0FC05825 */ jal init_menu0C_missionfailed +/* 04F6EC 7F01ABBC 00000000 */ nop +/* 04F6F0 7F01ABC0 3C048003 */ lui $a0, %hi(current_menu) +/* 04F6F4 7F01ABC4 1000003C */ b .L7F01ACB8 +/* 04F6F8 7F01ABC8 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mission_complete_init: +/* 04F6FC 7F01ABCC 0FC0599F */ jal init_menu0D_missioncomplete +/* 04F700 7F01ABD0 00000000 */ nop +/* 04F704 7F01ABD4 3C048003 */ lui $a0, %hi(current_menu) +/* 04F708 7F01ABD8 10000037 */ b .L7F01ACB8 +/* 04F70C 7F01ABDC 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mp_options_init: +/* 04F710 7F01ABE0 0FC041CF */ jal init_menu0E_mpoptions +/* 04F714 7F01ABE4 00000000 */ nop +/* 04F718 7F01ABE8 3C048003 */ lui $a0, %hi(current_menu) +/* 04F71C 7F01ABEC 10000032 */ b .L7F01ACB8 +/* 04F720 7F01ABF0 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mp_scenario_select_init: +/* 04F724 7F01ABF4 0FC051D9 */ jal init_menu13_mpscenariosel +/* 04F728 7F01ABF8 00000000 */ nop +/* 04F72C 7F01ABFC 3C048003 */ lui $a0, %hi(current_menu) +/* 04F730 7F01AC00 1000002D */ b .L7F01ACB8 +/* 04F734 7F01AC04 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mp_char_select_init: +/* 04F738 7F01AC08 0FC0470F */ jal init_menu0f_mpcharsel +/* 04F73C 7F01AC0C 00000000 */ nop +/* 04F740 7F01AC10 3C048003 */ lui $a0, %hi(current_menu) +/* 04F744 7F01AC14 10000028 */ b .L7F01ACB8 +/* 04F748 7F01AC18 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mp_teams_init: +/* 04F74C 7F01AC1C 0FC05330 */ jal init_menu14_mpteamsel +/* 04F750 7F01AC20 00000000 */ nop +/* 04F754 7F01AC24 3C048003 */ lui $a0, %hi(current_menu) +/* 04F758 7F01AC28 10000023 */ b .L7F01ACB8 +/* 04F75C 7F01AC2C 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mp_handicap_init: +/* 04F760 7F01AC30 0FC04B8C */ jal init_menu10_mphandicap +/* 04F764 7F01AC34 00000000 */ nop +/* 04F768 7F01AC38 3C048003 */ lui $a0, %hi(current_menu) +/* 04F76C 7F01AC3C 1000001E */ b .L7F01ACB8 +/* 04F770 7F01AC40 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mp_control_style_init: +/* 04F774 7F01AC44 0FC04D5D */ jal init_menu11_mpcontrol +/* 04F778 7F01AC48 00000000 */ nop +/* 04F77C 7F01AC4C 3C048003 */ lui $a0, %hi(current_menu) +/* 04F780 7F01AC50 10000019 */ b .L7F01ACB8 +/* 04F784 7F01AC54 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_mp_stage_select_init: +/* 04F788 7F01AC58 0FC04F5E */ jal init_menu12_mpstage +/* 04F78C 7F01AC5C 00000000 */ nop +/* 04F790 7F01AC60 3C048003 */ lui $a0, %hi(current_menu) +/* 04F794 7F01AC64 10000014 */ b .L7F01ACB8 +/* 04F798 7F01AC68 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_cheat_init: +/* 04F79C 7F01AC6C 0FC05ED4 */ jal init_menu15_cheat +/* 04F7A0 7F01AC70 00000000 */ nop +/* 04F7A4 7F01AC74 3C048003 */ lui $a0, %hi(current_menu) +/* 04F7A8 7F01AC78 1000000F */ b .L7F01ACB8 +/* 04F7AC 7F01AC7C 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_no_controllers_init: +/* 04F7B0 7F01AC80 0FC0610E */ jal init_menu16_nocontroller +/* 04F7B4 7F01AC84 00000000 */ nop +/* 04F7B8 7F01AC88 3C048003 */ lui $a0, %hi(current_menu) +/* 04F7BC 7F01AC8C 1000000A */ b .L7F01ACB8 +/* 04F7C0 7F01AC90 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_display_cast_init: +/* 04F7C4 7F01AC94 0FC061A7 */ jal init_menu18_displaycast +/* 04F7C8 7F01AC98 00000000 */ nop +/* 04F7CC 7F01AC9C 3C048003 */ lui $a0, %hi(current_menu) +/* 04F7D0 7F01ACA0 10000005 */ b .L7F01ACB8 +/* 04F7D4 7F01ACA4 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_spectrum_emu_init: +/* 04F7D8 7F01ACA8 0FC068E7 */ jal init_menu19_spectrum +/* 04F7DC 7F01ACAC 00000000 */ nop +/* 04F7E0 7F01ACB0 3C048003 */ lui $a0, %hi(current_menu) +/* 04F7E4 7F01ACB4 2484A8C0 */ addiu $a0, %lo(current_menu) # addiu $a0, $a0, -0x5740 +menu_switch_screens_init: +.L7F01ACB8: +/* 04F7E8 7F01ACB8 8C990000 */ lw $t9, ($a0) +/* 04F7EC 7F01ACBC 2F21001A */ sltiu $at, $t9, 0x1a +/* 04F7F0 7F01ACC0 1020008A */ beqz $at, .L7F01AEEC +/* 04F7F4 7F01ACC4 0019C880 */ sll $t9, $t9, 2 +/* 04F7F8 7F01ACC8 3C018005 */ lui $at, %hi(jpt_menu_interface) +/* 04F7FC 7F01ACCC 00390821 */ addu $at, $at, $t9 +/* 04F800 7F01ACD0 8C391C1C */ lw $t9, %lo(jpt_menu_interface)($at) +/* 04F804 7F01ACD4 03200008 */ jr $t9 +/* 04F808 7F01ACD8 00000000 */ nop +menu00_legal_interface: +/* 04F80C 7F01ACDC 0FC029B7 */ jal interface_menu00_legalscreen +/* 04F810 7F01ACE0 00000000 */ nop +/* 04F814 7F01ACE4 10000082 */ b .L7F01AEF0 +/* 04F818 7F01ACE8 8FBF0014 */ lw $ra, 0x14($sp) +menu17_switchscreen_interface: +/* 04F81C 7F01ACEC 0FC02AC0 */ jal interface_menu17_switchscreens +/* 04F820 7F01ACF0 00000000 */ nop +/* 04F824 7F01ACF4 1000007E */ b .L7F01AEF0 +/* 04F828 7F01ACF8 8FBF0014 */ lw $ra, 0x14($sp) +menu01_nintendo_interface: +/* 04F82C 7F01ACFC 0FC02B32 */ jal interface_menu01_nintendo +/* 04F830 7F01AD00 00000000 */ nop +/* 04F834 7F01AD04 1000007A */ b .L7F01AEF0 +/* 04F838 7F01AD08 8FBF0014 */ lw $ra, 0x14($sp) +menu02_rareware_interface: +/* 04F83C 7F01AD0C 0FC02C2B */ jal interface_menu02_rareware +/* 04F840 7F01AD10 00000000 */ nop +/* 04F844 7F01AD14 10000076 */ b .L7F01AEF0 +/* 04F848 7F01AD18 8FBF0014 */ lw $ra, 0x14($sp) +menu03_eye_interface: +/* 04F84C 7F01AD1C 0FC02C6C */ jal interface_menu03_eye +/* 04F850 7F01AD20 00000000 */ nop +/* 04F854 7F01AD24 10000072 */ b .L7F01AEF0 +/* 04F858 7F01AD28 8FBF0014 */ lw $ra, 0x14($sp) +menu04_goldeneye_interface: +/* 04F85C 7F01AD2C 0FC02CCC */ jal interface_menu04_goldeneyelogo +/* 04F860 7F01AD30 00000000 */ nop +/* 04F864 7F01AD34 1000006E */ b .L7F01AEF0 +/* 04F868 7F01AD38 8FBF0014 */ lw $ra, 0x14($sp) +menu05_filesel_interface: +/* 04F86C 7F01AD3C 0FC02EF3 */ jal interface_menu05_fileselect +/* 04F870 7F01AD40 00000000 */ nop +/* 04F874 7F01AD44 1000006A */ b .L7F01AEF0 +/* 04F878 7F01AD48 8FBF0014 */ lw $ra, 0x14($sp) +menu06_modesel_interface: +/* 04F87C 7F01AD4C 0FC034A6 */ jal interface_menu06_modesel +/* 04F880 7F01AD50 00000000 */ nop +/* 04F884 7F01AD54 10000066 */ b .L7F01AEF0 +/* 04F888 7F01AD58 8FBF0014 */ lw $ra, 0x14($sp) +menu07_missionsel_interface: +/* 04F88C 7F01AD5C 0FC037AE */ jal interface_menu07_missionsel +/* 04F890 7F01AD60 00000000 */ nop +/* 04F894 7F01AD64 10000062 */ b .L7F01AEF0 +/* 04F898 7F01AD68 8FBF0014 */ lw $ra, 0x14($sp) +menu08_difficulty_interface: +/* 04F89C 7F01AD6C 0FC039F0 */ jal interface_menu08_difficulty +/* 04F8A0 7F01AD70 00000000 */ nop +/* 04F8A4 7F01AD74 1000005E */ b .L7F01AEF0 +/* 04F8A8 7F01AD78 8FBF0014 */ lw $ra, 0x14($sp) +menu09_007options_interface: +/* 04F8AC 7F01AD7C 0FC03CDD */ jal interface_menu09_007options +/* 04F8B0 7F01AD80 00000000 */ nop +/* 04F8B4 7F01AD84 1000005A */ b .L7F01AEF0 +/* 04F8B8 7F01AD88 8FBF0014 */ lw $ra, 0x14($sp) +menu0A_briefing_interface: +/* 04F8BC 7F01AD8C 0FC055A7 */ jal interface_menu0A_briefing +/* 04F8C0 7F01AD90 00000000 */ nop +/* 04F8C4 7F01AD94 10000056 */ b .L7F01AEF0 +/* 04F8C8 7F01AD98 8FBF0014 */ lw $ra, 0x14($sp) +menu0C_missionfailed_interface: +/* 04F8CC 7F01AD9C 0FC05844 */ jal interface_menu0C_missionfailed +/* 04F8D0 7F01ADA0 00000000 */ nop +/* 04F8D4 7F01ADA4 10000052 */ b .L7F01AEF0 +/* 04F8D8 7F01ADA8 8FBF0014 */ lw $ra, 0x14($sp) +menu0D_missioncomplete_interface: +/* 04F8DC 7F01ADAC 0FC059B6 */ jal interface_menu0D_missioncomplete +/* 04F8E0 7F01ADB0 00000000 */ nop +/* 04F8E4 7F01ADB4 1000004E */ b .L7F01AEF0 +/* 04F8E8 7F01ADB8 8FBF0014 */ lw $ra, 0x14($sp) +menu0E_mpoptions_interface: +/* 04F8EC 7F01ADBC 0FC04212 */ jal interface_menu0E_mpoptions +/* 04F8F0 7F01ADC0 00000000 */ nop +/* 04F8F4 7F01ADC4 1000004A */ b .L7F01AEF0 +/* 04F8F8 7F01ADC8 8FBF0014 */ lw $ra, 0x14($sp) +menu13_mpscenario_interface: +/* 04F8FC 7F01ADCC 0FC051EE */ jal interface_menu13_mpscenario +/* 04F900 7F01ADD0 00000000 */ nop +/* 04F904 7F01ADD4 10000046 */ b .L7F01AEF0 +/* 04F908 7F01ADD8 8FBF0014 */ lw $ra, 0x14($sp) +menu0F_mpcharsel_interface: +/* 04F90C 7F01ADDC 0FC047B5 */ jal interface_menu0F_mpcharsel +/* 04F910 7F01ADE0 00000000 */ nop +/* 04F914 7F01ADE4 10000042 */ b .L7F01AEF0 +/* 04F918 7F01ADE8 8FBF0014 */ lw $ra, 0x14($sp) +menu14_mpteams_interface: +/* 04F91C 7F01ADEC 0FC05352 */ jal interface_menu14_mpteams +/* 04F920 7F01ADF0 00000000 */ nop +/* 04F924 7F01ADF4 1000003E */ b .L7F01AEF0 +/* 04F928 7F01ADF8 8FBF0014 */ lw $ra, 0x14($sp) +menu10_mphandicap_interface: +/* 04F92C 7F01ADFC 0FC04BB1 */ jal interface_menu10_mphandicap +/* 04F930 7F01AE00 00000000 */ nop +/* 04F934 7F01AE04 1000003A */ b .L7F01AEF0 +/* 04F938 7F01AE08 8FBF0014 */ lw $ra, 0x14($sp) +menu11_mpcontrol_interface: +/* 04F93C 7F01AE0C 0FC04D82 */ jal interface_menu11_mpcontrols +/* 04F940 7F01AE10 00000000 */ nop +/* 04F944 7F01AE14 10000036 */ b .L7F01AEF0 +/* 04F948 7F01AE18 8FBF0014 */ lw $ra, 0x14($sp) +menu12_mpstage_interface: +/* 04F94C 7F01AE1C 0FC04F75 */ jal interface_menu12_mpstage +/* 04F950 7F01AE20 00000000 */ nop +/* 04F954 7F01AE24 10000032 */ b .L7F01AEF0 +/* 04F958 7F01AE28 8FBF0014 */ lw $ra, 0x14($sp) +menu15_cheat_interface: +/* 04F95C 7F01AE2C 0FC05F22 */ jal interface_menu15_cheat +/* 04F960 7F01AE30 00000000 */ nop +/* 04F964 7F01AE34 1000002E */ b .L7F01AEF0 +/* 04F968 7F01AE38 8FBF0014 */ lw $ra, 0x14($sp) +menu16_nocontrollers_interface: +/* 04F96C 7F01AE3C 0FC06112 */ jal interface_menu16_nocontrollers +/* 04F970 7F01AE40 00000000 */ nop +/* 04F974 7F01AE44 1000002A */ b .L7F01AEF0 +/* 04F978 7F01AE48 8FBF0014 */ lw $ra, 0x14($sp) +menu18_displaycast_interface: +/* 04F97C 7F01AE4C 0FC063D8 */ jal interface_menu18_displaycast +/* 04F980 7F01AE50 00000000 */ nop +/* 04F984 7F01AE54 10000026 */ b .L7F01AEF0 +/* 04F988 7F01AE58 8FBF0014 */ lw $ra, 0x14($sp) +menu19_spectrum_interface: +/* 04F98C 7F01AE5C 0FC06922 */ jal interface_menu19_spectrum +/* 04F990 7F01AE60 00000000 */ nop +/* 04F994 7F01AE64 10000022 */ b .L7F01AEF0 +/* 04F998 7F01AE68 8FBF0014 */ lw $ra, 0x14($sp) +menu0B_runstage_interface: +/* 04F99C 7F01AE6C 0FC2FF29 */ jal interface_menu0B_runstage +/* 04F9A0 7F01AE70 00000000 */ nop +/* 04F9A4 7F01AE74 10400006 */ beqz $v0, .L7F01AE90 +/* 04F9A8 7F01AE78 3C088003 */ lui $t0, %hi(gamemode) +/* 04F9AC 7F01AE7C 00002025 */ move $a0, $zero +/* 04F9B0 7F01AE80 0FC06975 */ jal set_menu_to_mode +/* 04F9B4 7F01AE84 24050001 */ li $a1, 1 +/* 04F9B8 7F01AE88 10000019 */ b .L7F01AEF0 +/* 04F9BC 7F01AE8C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01AE90: +/* 04F9C0 7F01AE90 8D08A8F0 */ lw $t0, %lo(gamemode)($t0) +/* 04F9C4 7F01AE94 24010001 */ li $at, 1 +/* 04F9C8 7F01AE98 2404000E */ li $a0, 14 +/* 04F9CC 7F01AE9C 15010005 */ bne $t0, $at, .L7F01AEB4 +/* 04F9D0 7F01AEA0 3C098003 */ lui $t1, %hi(selected_stage) +/* 04F9D4 7F01AEA4 0FC06975 */ jal set_menu_to_mode +/* 04F9D8 7F01AEA8 24050001 */ li $a1, 1 +/* 04F9DC 7F01AEAC 10000010 */ b .L7F01AEF0 +/* 04F9E0 7F01AEB0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01AEB4: +/* 04F9E4 7F01AEB4 8D29A8F4 */ lw $t1, %lo(selected_stage)($t1) +/* 04F9E8 7F01AEB8 24010036 */ li $at, 54 +/* 04F9EC 7F01AEBC 2404000C */ li $a0, 12 +/* 04F9F0 7F01AEC0 15210008 */ bne $t1, $at, .L7F01AEE4 +/* 04F9F4 7F01AEC4 00000000 */ nop +/* 04F9F8 7F01AEC8 0FC0619C */ jal do_extended_cast_display +/* 04F9FC 7F01AECC 24040001 */ li $a0, 1 +/* 04FA00 7F01AED0 24040018 */ li $a0, 24 +/* 04FA04 7F01AED4 0FC06975 */ jal set_menu_to_mode +/* 04FA08 7F01AED8 24050001 */ li $a1, 1 +/* 04FA0C 7F01AEDC 10000004 */ b .L7F01AEF0 +/* 04FA10 7F01AEE0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01AEE4: +/* 04FA14 7F01AEE4 0FC06975 */ jal set_menu_to_mode +/* 04FA18 7F01AEE8 24050001 */ li $a1, 1 +.L7F01AEEC: +/* 04FA1C 7F01AEEC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01AEF0: +/* 04FA20 7F01AEF0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 04FA24 7F01AEF4 03E00008 */ jr $ra +/* 04FA28 7F01AEF8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void menu_jump_constructor_handler(Gfx *DL) +{ + switch(current_menu) { + case MENU_LEGAL_SCREEN: + constructor_menu00_legalscreen(DL); + break; + case MENU_NINTENDO_LOGO: + constructor_menu01_nintendo(DL); + break; + case MENU_RAREWARE_LOGO: + constructor_menu02_rareware(DL); + break; + case MENU_EYE_INTRO: + constructor_menu03_eye(DL); + break; + case MENU_GOLDENEYE_LOGO: + constructor_menu04_goldeneyelogo(DL); + break; + case MENU_FILE_SELECT: + constructor_menu05_fileselect(DL); + break; + case MENU_MODE_SELECT: + constructor_menu06_modesel(DL); + break; + case MENU_MISSION_SELECT: + constructor_menu07_missionsel(DL); + break; + case MENU_DIFFICULTY: + constructor_menu08_difficulty(DL); + break; + case MENU_007_OPTIONS: + constructor_menu09_007options(DL); + break; + case MENU_BRIEFING: + constructor_menu0A_briefing(DL); + break; + case MENU_MISSION_FAILED: + constructor_menu0C_missionfailed(DL); + break; + case MENU_MISSION_COMPLETE: + constructor_menu0D_missioncomplete(DL); + break; + case MENU_MP_OPTIONS: + constructor_menu0E_mpoptions(DL); + break; + case MENU_MP_CHAR_SELECT: + constructor_menu0F_mpcharsel(DL); + break; + case MENU_MP_HANDICAP: + constructor_menu10_mphandicap(DL); + break; + case MENU_MP_CONTROL_STYLE: + constructor_menu11_mpcontrol(DL); + break; + case MENU_MP_STAGE_SELECT: + constructor_menu12_mpstage(DL); + break; + case MENU_MP_SCENARIO_SELECT: + constructor_menu13_mpscenario(DL); + break; + case MENU_MP_TEAMS: + constructor_menu14_mpteams(DL); + break; + case MENU_CHEAT: + constructor_menu15_cheat(DL); + break; + case MENU_NO_CONTROLLERS: + constructor_menu16_nocontrollers(DL); + break; + case MENU_SWITCH_SCREENS: + constructor_menu17_switchscreens(DL); + break; + case MENU_DISPLAY_CAST: + constructor_menu18_displaycast(DL); + break; + case MENU_SPECTRUM_EMU: + constructor_menu19_spectrum(DL); + } + return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel jpt_menu_constructor + .word menu00_legal_constructor + .word menu01_nintendo_constructor + .word menu02_rareware_constructor + .word menu03_eyeintro_constructor + .word menu04_goldeneye_constructor + .word menu05_fileselect_constructor + .word menu06_modesel_constructor + .word menu07_missionsel_constructor + .word menu08_difficulty_constructor + .word menu09_007options_constructor + .word menu0A_briefing_constructor + .word menu0B_runstage_constructor + .word menu0C_missionfailed_constructor + .word menu0D_missioncomplete_constructor + .word menu0E_mpoptions_constructor + .word menu0F_mpcharsel_constructor + .word menu10_mphandicap_constructor + .word menu11_mpcontrol_constructor + .word menu12_mpstage_constructor + .word menu13_mpscenario_constructor + .word menu14_mpteams_constructor + .word menu15_cheat_constructor + .word menu16_nocontrollers_constructor + .word menu17_switchscreens_constructor + .word menu18_displaycast_constructor + .word menu19_spectrum_constructor + +.text +glabel menu_jump_constructor_handler +/* 04FA2C 7F01AEFC 3C0E8003 */ lui $t6, %hi(current_menu) +/* 04FA30 7F01AF00 8DCEA8C0 */ lw $t6, %lo(current_menu)($t6) +/* 04FA34 7F01AF04 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 04FA38 7F01AF08 AFB00018 */ sw $s0, 0x18($sp) +/* 04FA3C 7F01AF0C 2DC1001A */ sltiu $at, $t6, 0x1a +/* 04FA40 7F01AF10 00808025 */ move $s0, $a0 +/* 04FA44 7F01AF14 1020006A */ beqz $at, menu0B_runstage_constructor +/* 04FA48 7F01AF18 AFBF001C */ sw $ra, 0x1c($sp) +/* 04FA4C 7F01AF1C 000E7080 */ sll $t6, $t6, 2 +/* 04FA50 7F01AF20 3C018005 */ lui $at, %hi(jpt_menu_constructor) +/* 04FA54 7F01AF24 002E0821 */ addu $at, $at, $t6 +/* 04FA58 7F01AF28 8C2E1C84 */ lw $t6, %lo(jpt_menu_constructor)($at) +/* 04FA5C 7F01AF2C 01C00008 */ jr $t6 +/* 04FA60 7F01AF30 00000000 */ nop +glabel menu00_legal_constructor +/* 04FA64 7F01AF34 0FC02A38 */ jal constructor_menu00_legalscreen +/* 04FA68 7F01AF38 02002025 */ move $a0, $s0 +/* 04FA6C 7F01AF3C 10000060 */ b menu0B_runstage_constructor +/* 04FA70 7F01AF40 00408025 */ move $s0, $v0 +glabel menu17_switchscreens_constructor +/* 04FA74 7F01AF44 0FC02AEA */ jal constructor_menu17_switchscreens +/* 04FA78 7F01AF48 02002025 */ move $a0, $s0 +/* 04FA7C 7F01AF4C 1000005C */ b menu0B_runstage_constructor +/* 04FA80 7F01AF50 00408025 */ move $s0, $v0 +glabel menu01_nintendo_constructor +/* 04FA84 7F01AF54 0FC02B66 */ jal constructor_menu01_nintendo +/* 04FA88 7F01AF58 02002025 */ move $a0, $s0 +/* 04FA8C 7F01AF5C 10000058 */ b menu0B_runstage_constructor +/* 04FA90 7F01AF60 00408025 */ move $s0, $v0 +glabel menu02_rareware_constructor +/* 04FA94 7F01AF64 0FC02C4D */ jal constructor_menu02_rareware +/* 04FA98 7F01AF68 02002025 */ move $a0, $s0 +/* 04FA9C 7F01AF6C 10000054 */ b menu0B_runstage_constructor +/* 04FAA0 7F01AF70 00408025 */ move $s0, $v0 +glabel menu03_eyeintro_constructor +/* 04FAA4 7F01AF74 0FC02C8E */ jal constructor_menu03_eye +/* 04FAA8 7F01AF78 02002025 */ move $a0, $s0 +/* 04FAAC 7F01AF7C 10000050 */ b menu0B_runstage_constructor +/* 04FAB0 7F01AF80 00408025 */ move $s0, $v0 +glabel menu04_goldeneye_constructor +/* 04FAB4 7F01AF84 0FC02D1F */ jal constructor_menu04_goldeneyelogo +/* 04FAB8 7F01AF88 02002025 */ move $a0, $s0 +/* 04FABC 7F01AF8C 1000004C */ b menu0B_runstage_constructor +/* 04FAC0 7F01AF90 00408025 */ move $s0, $v0 +glabel menu05_fileselect_constructor +/* 04FAC4 7F01AF94 0FC03102 */ jal constructor_menu05_fileselect +/* 04FAC8 7F01AF98 02002025 */ move $a0, $s0 +/* 04FACC 7F01AF9C 10000048 */ b menu0B_runstage_constructor +/* 04FAD0 7F01AFA0 00408025 */ move $s0, $v0 +glabel menu06_modesel_constructor +/* 04FAD4 7F01AFA4 0FC0360A */ jal constructor_menu06_modesel +/* 04FAD8 7F01AFA8 02002025 */ move $a0, $s0 +/* 04FADC 7F01AFAC 10000044 */ b menu0B_runstage_constructor +/* 04FAE0 7F01AFB0 00408025 */ move $s0, $v0 +glabel menu07_missionsel_constructor +/* 04FAE4 7F01AFB4 0FC03916 */ jal constructor_menu07_missionsel +/* 04FAE8 7F01AFB8 02002025 */ move $a0, $s0 +/* 04FAEC 7F01AFBC 10000040 */ b menu0B_runstage_constructor +/* 04FAF0 7F01AFC0 00408025 */ move $s0, $v0 +glabel menu08_difficulty_constructor +/* 04FAF4 7F01AFC4 0FC03B66 */ jal constructor_menu08_difficulty +/* 04FAF8 7F01AFC8 02002025 */ move $a0, $s0 +/* 04FAFC 7F01AFCC 1000003C */ b menu0B_runstage_constructor +/* 04FB00 7F01AFD0 00408025 */ move $s0, $v0 +glabel menu09_007options_constructor +/* 04FB04 7F01AFD4 0FC03DE6 */ jal constructor_menu09_007options +/* 04FB08 7F01AFD8 02002025 */ move $a0, $s0 +/* 04FB0C 7F01AFDC 10000038 */ b menu0B_runstage_constructor +/* 04FB10 7F01AFE0 00408025 */ move $s0, $v0 +glabel menu0A_briefing_constructor +/* 04FB14 7F01AFE4 0FC0575D */ jal constructor_menu0A_briefing +/* 04FB18 7F01AFE8 02002025 */ move $a0, $s0 +/* 04FB1C 7F01AFEC 10000034 */ b menu0B_runstage_constructor +/* 04FB20 7F01AFF0 00408025 */ move $s0, $v0 +glabel menu0C_missionfailed_constructor +/* 04FB24 7F01AFF4 0FC058FB */ jal constructor_menu0C_missionfailed +/* 04FB28 7F01AFF8 02002025 */ move $a0, $s0 +/* 04FB2C 7F01AFFC 10000030 */ b menu0B_runstage_constructor +/* 04FB30 7F01B000 00408025 */ move $s0, $v0 +glabel menu0D_missioncomplete_constructor +/* 04FB34 7F01B004 0FC05A82 */ jal constructor_menu0D_missioncomplete +/* 04FB38 7F01B008 02002025 */ move $a0, $s0 +/* 04FB3C 7F01B00C 1000002C */ b menu0B_runstage_constructor +/* 04FB40 7F01B010 00408025 */ move $s0, $v0 +glabel menu0E_mpoptions_constructor +/* 04FB44 7F01B014 0FC043C4 */ jal constructor_menu0E_mpoptions +/* 04FB48 7F01B018 02002025 */ move $a0, $s0 +/* 04FB4C 7F01B01C 10000028 */ b menu0B_runstage_constructor +/* 04FB50 7F01B020 00408025 */ move $s0, $v0 +glabel menu13_mpscenario_constructor +/* 04FB54 7F01B024 0FC05292 */ jal constructor_menu13_mpscenario +/* 04FB58 7F01B028 02002025 */ move $a0, $s0 +/* 04FB5C 7F01B02C 10000024 */ b menu0B_runstage_constructor +/* 04FB60 7F01B030 00408025 */ move $s0, $v0 +glabel menu0F_mpcharsel_constructor +/* 04FB64 7F01B034 0FC049E5 */ jal constructor_menu0F_mpcharsel +/* 04FB68 7F01B038 02002025 */ move $a0, $s0 +/* 04FB6C 7F01B03C 10000020 */ b menu0B_runstage_constructor +/* 04FB70 7F01B040 00408025 */ move $s0, $v0 +glabel menu14_mpteams_constructor +/* 04FB74 7F01B044 0FC0544E */ jal constructor_menu14_mpteams +/* 04FB78 7F01B048 02002025 */ move $a0, $s0 +/* 04FB7C 7F01B04C 1000001C */ b menu0B_runstage_constructor +/* 04FB80 7F01B050 00408025 */ move $s0, $v0 +glabel menu10_mphandicap_constructor +/* 04FB84 7F01B054 0FC04C5F */ jal constructor_menu10_mphandicap +/* 04FB88 7F01B058 02002025 */ move $a0, $s0 +/* 04FB8C 7F01B05C 10000018 */ b menu0B_runstage_constructor +/* 04FB90 7F01B060 00408025 */ move $s0, $v0 +glabel menu11_mpcontrol_constructor +/* 04FB94 7F01B064 0FC04E60 */ jal constructor_menu11_mpcontrol +/* 04FB98 7F01B068 02002025 */ move $a0, $s0 +/* 04FB9C 7F01B06C 10000014 */ b menu0B_runstage_constructor +/* 04FBA0 7F01B070 00408025 */ move $s0, $v0 +glabel menu12_mpstage_constructor +/* 04FBA4 7F01B074 0FC05014 */ jal constructor_menu12_mpstage +/* 04FBA8 7F01B078 02002025 */ move $a0, $s0 +/* 04FBAC 7F01B07C 10000010 */ b menu0B_runstage_constructor +/* 04FBB0 7F01B080 00408025 */ move $s0, $v0 +glabel menu15_cheat_constructor +/* 04FBB4 7F01B084 0FC05FD7 */ jal constructor_menu15_cheat +/* 04FBB8 7F01B088 02002025 */ move $a0, $s0 +/* 04FBBC 7F01B08C 1000000C */ b menu0B_runstage_constructor +/* 04FBC0 7F01B090 00408025 */ move $s0, $v0 +glabel menu16_nocontrollers_constructor +/* 04FBC4 7F01B094 0FC06114 */ jal constructor_menu16_nocontrollers +/* 04FBC8 7F01B098 02002025 */ move $a0, $s0 +/* 04FBCC 7F01B09C 10000008 */ b menu0B_runstage_constructor +/* 04FBD0 7F01B0A0 00408025 */ move $s0, $v0 +glabel menu18_displaycast_constructor +/* 04FBD4 7F01B0A4 0FC064CA */ jal constructor_menu18_displaycast +/* 04FBD8 7F01B0A8 02002025 */ move $a0, $s0 +/* 04FBDC 7F01B0AC 10000004 */ b menu0B_runstage_constructor +/* 04FBE0 7F01B0B0 00408025 */ move $s0, $v0 +glabel menu19_spectrum_constructor +/* 04FBE4 7F01B0B4 0FC06938 */ jal constructor_menu19_spectrum +/* 04FBE8 7F01B0B8 02002025 */ move $a0, $s0 +/* 04FBEC 7F01B0BC 00408025 */ move $s0, $v0 +glabel menu0B_runstage_constructor +/* 04FBF0 7F01B0C0 8FBF001C */ lw $ra, 0x1c($sp) +/* 04FBF4 7F01B0C4 02001025 */ move $v0, $s0 +/* 04FBF8 7F01B0C8 8FB00018 */ lw $s0, 0x18($sp) +/* 04FBFC 7F01B0CC 03E00008 */ jr $ra +/* 04FC00 7F01B0D0 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + diff --git a/src/game/mainmenu.h b/src/game/mainmenu.h new file mode 100644 index 0000000..6ca60c5 --- /dev/null +++ b/src/game/mainmenu.h @@ -0,0 +1,797 @@ +#ifndef _MAINMENU_H_ +#define _MAINMENU_H_ +#include "ultra64.h" +#include "bondgame.h" +#include "bondconstants.h" + +struct legal_screen_text { + int h_pos; + int v_pos; + int flag; + int flag2; + short txtID; + short anonymous_5; +}; + +struct mission_folder_setup { + void * string_ptr; + short folder_text_preset; + short icon_text_preset; + int stage_id; + int unknown; + int type; + int mission_num; + void * briefing_name_ptr; +}; + +struct MP_game_length_settings { + u16 text_preset; + u16 padding; + int time; + int points; +}; + +struct mp_stage_playercount { + short stage; + char min; + char max; +}; + +struct mp_stage_setup { + s16 folder_text_preset; + s16 select_screen_text_preset; + s32 photo; + s32 stage_id; + s32 unlock_after; + s32 min_player; + s32 max_player; +}; + +struct MP_selectable_chars { + short text_preset; + char gender; + char select_photo; + short body; + short head; + float pov; +}; + +struct MP_handicap_menu { + short text_preset; + short padding; + float damage_modifier; +}; + +struct MP_controller_configuration_menu { + char anonymous_0; + char field_1; + char field_2; + char field_3; +}; + +struct MP_sight_aim_settings { + char anonymous_0; + char field_1; + char sight; + char autoaim; +}; + +struct intro_char { + int body; + int head; + short text1; + short text2; + short text3; + short RESERVED; + int flag; +}; + +struct intro_animation { + int animID; + float startframeoffset; + float playback_speed; + int camera_preset; +}; + +struct solo_target_times { + u16 agent_time; + u16 secret_agent_time; + u16 OO_agent_time; +}; + + + +extern f32 flt_CODE_bss_800695A0; +//CODE.bss:800695A4 +extern f32 flt_CODE_bss_800695A4; +//CODE.bss:800695A8 +extern f32 flt_CODE_bss_800695A8; +//CODE.bss:800695AC +extern f32 flt_CODE_bss_800695AC; +//CODE.bss:800695B0 +extern f32 flt_CODE_bss_800695B0; +//CODE.bss:800695B4 +extern f32 flt_CODE_bss_800695B4; +//CODE.bss:800695B8 +extern f32 flt_CODE_bss_800695B8; +//CODE.bss:800695BC +extern f32 flt_CODE_bss_800695BC; +//CODE.bss:800695C0 +extern f32 flt_CODE_bss_800695C0; +//CODE.bss:800695C4 .align 3 +//CODE.bss:800695C8 +extern f32 flt_CODE_bss_800695C8; +//CODE.bss:800695CC +extern f32 flt_CODE_bss_800695CC; +//CODE.bss:800695D0 +extern f32 flt_CODE_bss_800695D0; +//CODE.bss:800695D4 .align 3 +//CODE.bss:800695D8 +extern f32 flt_CODE_bss_800695D8; +//CODE.bss:800695DC +extern f32 flt_CODE_bss_800695DC; +//CODE.bss:800695E0 +extern f32 flt_CODE_bss_800695E0; +//CODE.bss:800695E4 +extern f32 flt_CODE_bss_800695E4; +//CODE.bss:800695E8 +extern f32 flt_CODE_bss_800695E8; +//CODE.bss:800695EC +extern f32 flt_CODE_bss_800695EC; +//CODE.bss:800695F0 +extern f32 flt_CODE_bss_800695F0; +//CODE.bss:800695F4 .align 3 +//CODE.bss:800695F8 +extern f32 flt_CODE_bss_800695F8; +//CODE.bss:800695FC +extern f32 flt_CODE_bss_800695FC; +//CODE.bss:80069600 +extern f32 flt_CODE_bss_80069600; +//CODE.bss:80069604 .align 3 +//CODE.bss:80069608 +extern f32 flt_CODE_bss_80069608; +//CODE.bss:8006960C +extern f32 flt_CODE_bss_8006960C; +//CODE.bss:80069610 +extern f32 flt_CODE_bss_80069610; +//CODE.bss:80069614 +extern f32 flt_CODE_bss_80069614; +//CODE.bss:80069618 +extern f32 flt_CODE_bss_80069618; +//CODE.bss:8006961C .align 4 +/* +CODE.bss:80069620 dword_CODE_bss_80069620:.space 0x30 +CODE.bss:80069650 .space 1 +CODE.bss:80069651 cheat_available:.space 1 +CODE.bss:80069652 CHEAT_AVAILABLE_INVINCIBLE:.space 1 +CODE.bss:80069653 CHEAT_AVAILABLE_ALLGUNS:.space 1 +CODE.bss:80069654 .space 1 +CODE.bss:80069655 .space 2 +CODE.bss:80069657 CHEAT_AVAILABLE_LINEMODE:.space 1 +CODE.bss:80069658 CHEAT_AVAILABLE_2X_HEALTH:.space 1 +CODE.bss:80069659 CHEAT_AVAILABLE_2X_ARMOR:.space 1 +CODE.bss:8006965A CHEAT_AVAILABLE_BOND_INVIS:.space 1 +CODE.bss:8006965B CHEAT_AVAILABLE_INFINITE_AMMO:.space 1 +CODE.bss:8006965C CHEAT_AVAILABLE_DK_MODE:.space 1 +CODE.bss:8006965D CHEAT_AVAILABLE_EXTRA_WEAPONS:.space 1 +CODE.bss:8006965E CHEAT_AVAILABLE_TINY_BOND:.space 1 +CODE.bss:8006965F CHEAT_AVAILABLE_PAINTBALL:.space 1 +CODE.bss:80069660 CHEAT_AVAILABLE_10X_HEALTH:.space 1 +CODE.bss:80069661 CHEAT_AVAILABLE_MAGNUM:.space 1 +CODE.bss:80069662 CHEAT_AVAILABLE_LASER:.space 1 +CODE.bss:80069663 CHEAT_AVAILABLE_GOLDENGUN:.space 1 +CODE.bss:80069664 CHEAT_AVAILABLE_SILVERPP7:.space 1 +CODE.bss:80069665 CHEAT_AVAILABLE_GOLDPP7:.space 1 +CODE.bss:80069666 CHEAT_AVAILABLE_MP_INVINCIBILITY:.space 1 +CODE.bss:80069667 CHEAT_AVAILABLE_NO_MP_RADAR:.space 1 +CODE.bss:80069668 CHEAT_AVAILABLE_TURBO:.space 1 +CODE.bss:80069669 CHEAT_AVAILABLE_DEBUG_MODE:.space 1 +CODE.bss:8006966A CHEAT_AVAILABLE_FAST_ANI:.space 1 +CODE.bss:8006966B CHEAT_AVAILABLE_SLOW_ANI:.space 1 +CODE.bss:8006966C CHEAT_AVAILABLE_ENMY_ROCKETS:.space 1 +CODE.bss:8006966D CHEAT_AVAILABLE_2X_ROCKET:.space 1 +CODE.bss:8006966E CHEAT_AVAILABLE_2X_GRENADE_LAUNCHER:.space 1 +CODE.bss:8006966F CHEAT_AVAILABLE_2X_RCP90:.space 1 +CODE.bss:80069670 CHEAT_AVAILABLE_2X_THROWING_KNIVES:.space 1 +CODE.bss:80069671 CHEAT_AVAILABLE_2X_HUNTING_KNIVES:.space 1 +CODE.bss:80069672 CHEAT_AVAILABLE_2X_LASER:.space 2 +CODE.bss:80069674 .space 0x2C +*/ +//CODE.bss:800696A0 +extern u8 cheat_activated; +//CODE.bss:800696A1 +extern u8 CHEAT_AVAILABLE_EXTRA_CHARS; +//CODE.bss:800696A2 +extern u8 cheat_activated_1; +//CODE.bss:800696A3 +extern u8 cheat_activated_2; +//CODE.bss:800696A4 +extern u8 CHEAT_AVAILABLE_MAX_AMMO; +//CODE.bss:800696A5 +extern u8 cheat_activated_4; +//CODE.bss:800696A6 +extern u8 cheat_activated_5; +//CODE.bss:800696A7 +extern u8 cheat_activated_6; +//CODE.bss:800696A8 +extern u8 cheat_activated_7; +//CODE.bss:800696A9 +extern u8 cheat_activated_8; +//CODE.bss:800696AA +extern u8 cheat_activated_9; +//CODE.bss:800696AB +extern u8 cheat_activated_10; +//CODE.bss:800696AC +extern u8 cheat_activated_11; +//CODE.bss:800696AD +extern u8 cheat_activated_12; +//CODE.bss:800696AE +extern u8 cheat_activated_13; +//CODE.bss:800696AF +extern u8 cheat_activated_14; +//CODE.bss:800696B0 +extern u8 cheat_activated_15; +//CODE.bss:800696B1 +extern u8 cheat_activated_16; +//CODE.bss:800696B2 +extern u8 cheat_activated_17; +//CODE.bss:800696B3 +extern u8 cheat_activated_18; +//CODE.bss:800696B4 +extern u8 cheat_activated_19; +//CODE.bss:800696B5 +extern u8 cheat_activated_20; +//CODE.bss:800696B6 +extern u8 cheat_activated_21; +//CODE.bss:800696B7 +extern u8 cheat_activated_22; +//CODE.bss:800696B8 +extern u8 cheat_activated_23; +//CODE.bss:800696B9 +extern u8 cheat_activated_24; +//CODE.bss:800696BA +extern u8 cheat_activated_25; +//CODE.bss:800696BB +extern u8 cheat_activated_26; +//CODE.bss:800696BC +extern u8 cheat_activated_27; +//CODE.bss:800696BD +extern u8 cheat_activated_28; +//CODE.bss:800696BE +extern u8 cheat_activated_29; +//CODE.bss:800696BF +extern u8 cheat_activated_30; +//CODE.bss:800696C0 +extern u8 cheat_activated_31; +//CODE.bss:800696C1 +extern u8 cheat_activated_32; +//CODE.bss:800696C2 +extern u8 cheat_activated_33; +//CODE.bss:800696C3 +extern u8 cheat_activated_34; +//CODE.bss:800696C4 +extern u8 cheat_activated_35; +//CODE.bss:800696C5 +extern u8 cheat_activated_36; +//CODE.bss:800696C6 +extern u8 cheat_activated_37; +//CODE.bss:800696C7 +extern u8 cheat_activated_38; +//CODE.bss:800696C8 +extern u8 cheat_activated_39; +//CODE.bss:800696C9 +extern u8 cheat_activated_40; +//CODE.bss:800696CA +extern u8 cheat_activated_41; +//CODE.bss:800696CB +extern u8 cheat_activated_42; +//CODE.bss:800696CC +extern u8 cheat_activated_43; +//CODE.bss:800696CD +extern u8 cheat_activated_44; +//CODE.bss:800696CE +extern u8 cheat_activated_45; +//CODE.bss:800696CF +extern u8 cheat_activated_46; +//CODE.bss:800696D0 +extern u8 cheat_activated_47; +//CODE.bss:800696D1 +extern u8 cheat_activated_48; +//CODE.bss:800696D2 +extern u8 cheat_activated_49; +//CODE.bss:800696D3 +extern u8 cheat_activated_50; +//CODE.bss:800696D4 +extern u8 cheat_activated_51; +//CODE.bss:800696D5 +extern u8 cheat_activated_52; +//CODE.bss:800696D6 +extern u8 cheat_activated_53; +//CODE.bss:800696D7 +extern u8 cheat_activated_54; +//CODE.bss:800696D8 +extern u8 cheat_activated_55; +//CODE.bss:800696D9 +extern u8 cheat_activated_56; +//CODE.bss:800696DA +extern u8 cheat_activated_57; +//CODE.bss:800696DB +extern u8 cheat_activated_58; +//CODE.bss:800696DC +extern u8 cheat_activated_59; +//CODE.bss:800696DD +extern u8 cheat_activated_60; +//CODE.bss:800696DE +extern u8 cheat_activated_61; +//CODE.bss:800696DF +extern u8 cheat_activated_62; +//CODE.bss:800696E0 +extern u8 cheat_activated_63; +//CODE.bss:800696E1 +extern u8 cheat_activated_64; +//CODE.bss:800696E2 +extern u8 cheat_activated_65; +//CODE.bss:800696E3 +extern u8 cheat_activated_66; +//CODE.bss:800696E4 +extern u8 cheat_activated_67; +//CODE.bss:800696E5 +extern u8 cheat_activated_68; +//CODE.bss:800696E6 +extern u8 cheat_activated_69; +//CODE.bss:800696E7 +extern u8 cheat_activated_70; +//CODE.bss:800696E8 +extern u8 cheat_activated_71; +//CODE.bss:800696E9 +extern u8 cheat_activated_72; +//CODE.bss:800696EA +extern u8 cheat_activated_73; +//CODE.bss:800696EB +extern u8 cheat_activated_74; +//CODE.bss:800696EC +extern u8 cheat_activated_75; +//CODE.bss:800696ED +extern u8 cheat_activated_76; +//CODE.bss:800696EE +extern u8 cheat_activated_77; +//CODE.bss:800696EF +extern u8 cheat_activated_78; + +//CODE.bss:800696F0 +extern s32 array_favweapon[4][2]; +//CODE.bss:80069710 +extern s32 mp_char_cur_select_player1; +//CODE.bss:80069714 +extern s32 mp_char_cur_select_player2; +//CODE.bss:80069718 +extern s32 mp_char_cur_select_player3; +//CODE.bss:8006971C +extern s32 mp_char_cur_select_player4; +//CODE.bss:80069720 +extern s32 mp_char_prev_select_player1; +//CODE.bss:80069724 +extern s32 mp_char_prev_select_player2; +//CODE.bss:80069728 +extern s32 mp_char_prev_select_player3; +//CODE.bss:8006972C +extern s32 mp_char_prev_select_player4; +//CODE.bss:80069730 +extern s32 dword_CODE_bss_80069730; +//CODE.bss:80069734 +extern s32 dword_CODE_bss_80069734; +//CODE.bss:80069738 +extern s32 dword_CODE_bss_80069738; +//CODE.bss:8006973C +extern s32 dword_CODE_bss_8006973C; +//CODE.bss:80069740 +extern s32 has_selected_char_player1; +//CODE.bss:80069744 +extern s32 has_selected_char_player2; +//CODE.bss:80069748 +extern s32 has_selected_char_player3; +//CODE.bss:8006974C +extern s32 has_selected_char_player4; +//CODE.bss:80069750 +extern s32 size_mp_select_image_player1; +//CODE.bss:80069754 +extern s32 size_mp_select_image_player2; +//CODE.bss:80069758 +extern s32 size_mp_select_image_player3; +//CODE.bss:8006975C +extern s32 size_mp_select_image_player4; +//CODE.bss:80069760 +extern s32 handicap_player1; +//CODE.bss:80069764 +extern s32 handicap_player2; +//CODE.bss:80069768 +extern s32 handicap_player3; +//CODE.bss:8006976C +extern s32 handicap_player4; +//CODE.bss:80069770 +extern s32 dword_CODE_bss_80069770; +//CODE.bss:80069774 +extern s32 dword_CODE_bss_80069774; +//CODE.bss:80069778 +extern s32 dword_CODE_bss_80069778; +//CODE.bss:8006977C +extern s32 current_mp_stage_highlighted; +//CODE.bss:80069780 +extern s32 dword_CODE_bss_80069780; +//CODE.bss:80069784 +extern s32 mission_difficulty_highlighted; +//CODE.bss:80069788 +extern s32 teamsize; +//CODE.bss:8006978C +extern s32 ptrbriefingdata; +//CODE.bss:80069790 +extern s32 newcheatunlocked; +//CODE.bss:80069794 +extern s32 highlight_enemy_reaction; +//CODE.bss:80069798 +extern s32 highlight_enemy_health; +//CODE.bss:8006979C +extern s32 highlight_enemy_accuracy; +//CODE.bss:800697A0 +extern s32 highlight_enemy_damage; + +//CODE.bss:800697A4 .align 3 + +//CODE.bss:800697A8 +extern s32 handicap_player1; +//CODE.bss:800697AC +extern s32 handicap_player2; +//CODE.bss:800697B0 +extern s32 handicap_player3; +//CODE.bss:800697B4 +extern s32 handicap_player4; +//CODE.bss:800697B8 +extern u32 controlstyle_player[]; + + +//CODE.bss:800697C8 +extern s32 highlight_players; +//CODE.bss:800697CC +extern s32 highlight_scenario; +//CODE.bss:800697D0 +extern s32 highlight_gameselect; +//CODE.bss:800697D4 +extern s32 highlight_gamelength; +//CODE.bss:800697D8 +extern s32 highlight_character; +//CODE.bss:800697DC +extern s32 highlight_weaponselect; +//CODE.bss:800697E0 +extern s32 highlight_health; +//CODE.bss:800697E4 +extern s32 highlight_controlstyle; +//CODE.bss:800697E8 +extern s32 highlight_aimadjustment; +//CODE.bss:800697EC .align 4 +/* +CODE.bss:800697F0 dword_CODE_bss_800697F0:.space 0x130 +*/ + +extern s32 current_menu; +extern s32 menu_update; +extern s32 maybe_prev_menu; +extern s32 menu_timer; +extern s32 tab_1_selected; +extern s32 tab_2_selected; +extern s32 tab_3_selected; +extern s32 tab_1_highlight; +extern s32 tab_2_highlight; +extern s32 tab_3_highlight; + +extern f32 tab2_first_x_coord; +extern f32 tab1_max_x_coord; +extern f32 tab2_bottom_y_coord; + +extern s32 selected_folder_num; +extern s32 selected_folder_num_copy; +extern s32 gamemode; +extern s32 selected_stage; +extern s32 briefingpage; +extern DIFFICULTY selected_difficulty; +extern s32 append_cheat_sp; +extern s32 append_cheat_mp; +extern f32 cursor_h_pos; +extern f32 cursor_v_pos; +extern s32 final_menu_briefing_page; +extern s32 current_menu_briefing_page; +extern s32 folder_selection_screen_option_icon; +extern s32 folder_selected_for_deletion; +extern s32 folder_selected_for_deletion_choice; +extern s32 mission_failed_or_aborted; +extern s32 mission_kia_flag; +extern s32 is_first_time_on_legal_screen; +extern s32 is_first_time_on_main_menu; +extern s32 prev_keypresses; +extern s32 dword_D_8002A938; +extern s32 maybe_is_in_menu; +extern s32 screen_size; +extern s32 spectrum_related_flag; +extern s32 is_emulating_spectrum; +extern s32 is_cheat_menu_available; +extern s32 ptr_logo_and_walletbond_DL; +extern s32 ptr_menu_videobuffer; +extern s32 something_legalscreen_constructor; +extern s32 ptr_folder_object_instance; +extern s32 set0_never_used; +extern s32 set0_never_used_0; +extern s32 D_8002A968; +extern s32 dword_D_8002A96C; +extern struct rgba_val stru_D_8002A970; +extern struct rgba_val stru_D_8002A974; +extern struct rgba_val stru_D_8002A978; +extern struct rgba_val stru_D_8002A97C; +extern struct rgba_val stru_D_8002A980; +extern struct rgba_val stru_D_8002A984; +extern struct rgba_val stru_D_8002A988; +extern struct rgba_val stru_D_8002A98C; +extern u32 dword_D_8002A990; +extern u32 dword_D_8002A994; +extern u32 dword_D_8002A998; +extern u32 dword_D_8002A99C; +extern f32 slider_007_mode_reaction; +extern f32 slider_007_mode_health; +extern f32 slider_007_mode_damage; +extern f32 slider_007_mode_accuracy; + +/* +dword_D_8002A9B0:.word 0xA0000000 +dword_D_8002A9B4:.word 0x96000000 +dword_D_8002A9B8:.word 0x28000000 +dword_D_8002A9BC:.word 0x8C000000 +dword_D_8002A9C0:.word 0 +dword_D_8002A9C4:.word 0 +dword_D_8002A9C8:.word 0 +stru_D_8002A9CC:legal_screen_text <220, 30, 1, 1, 0x9C07, 0> + legal_screen_text <34, 83, 0, 1, 0x9C08, 0> + legal_screen_text <226, 84, 0, 1, 0x9C09, 0> + legal_screen_text <226, 97, 0, 1, 0x9C0A, 0> + legal_screen_text <226, 110, 0, 1, 0x9C0B, 0> + legal_screen_text <226, 122, 0, 1, 0x9C0C, 0> + legal_screen_text <227, 134, 0, 1, 0x9C0D, 0> + legal_screen_text <219, 211, 0, 1, 0x9C0E, 0> + legal_screen_text <60, 169, 0, 1, 0x9C0F, 0> + legal_screen_text <60, 201, 0, 1, 0x9C10, 0> + legal_screen_text <99, 266, 0, 1, 0x9C11, 0> + legal_screen_text <80, 280, 0, 1, 0x9C12, 0> +dword_D_8002AABC:.word 0 +dword_D_8002AAC0:.word 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +dword_D_8002AB0C:.word 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +dword_D_8002AB58:.word 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +dword_D_8002AB94:.word 0xC4610000, 0x44480000, 0 + .word 0x44E10000, 0x44480000, 0 + .word 0xC4E10000, 0xC3480000, 0 + .float 900.0 + .float -200.0 + .word 0 +f32 folder_option_COPY_left_bound = 0.0; +f32 folder_option_COPY_upper_bound = 0.0; +f32 folder_option_COPY_right_bound = 0.0; +f32 folder_option_COPY_lower_bound = 0.0; +f32 folder_option_ERASE_left_bound = 0.0; +f32 folder_option_ERASE_upper_bound = 0.0; +f32 folder_option_ERASE_right_bound = 0.0; +f32 folder_option_ERASE_lower_bound = 0.0; +mission_folder_setup_entries: + mission_folder_setup <"1", 0x9C78, 0, LEVELID_NONE, 0, MISSION_HEADER, 0xFFFFFFFF, 0> + mission_folder_setup <"i", 0x9C79, 0, LEVELID_DAM, 0, MISSION_PART, 0, "UbriefdamZ"> + mission_folder_setup <"ii", 0x9C7A, 0, LEVELID_FACILITY, 0, MISSION_PART, 1, "UbriefarkZ"> + mission_folder_setup <"iii", 0x9C7B, 0, LEVELID_RUNWAY, 0, MISSION_PART, 2, "UbriefrunZ"> + mission_folder_setup <"2", 0x9C7C, 0, LEVELID_NONE, 0, MISSION_HEADER, 0xFFFFFFFF, 0> + mission_folder_setup <"i", 0x9C7D, 0, LEVELID_SURFACE, 0, MISSION_PART, 3, "UbriefsevxZ"> + mission_folder_setup <"ii", 0x9C7E, 0, LEVELID_BUNKER1, 0, MISSION_PART, 4, "UbriefsevbunkerZ"> + mission_folder_setup <"3", 0x9C7F, 0, LEVELID_NONE, 1, MISSION_HEADER, 0xFFFFFFFF, 0> + mission_folder_setup <"i", 0x9C80, 0x9C81, LEVELID_SILO, 1, MISSION_PART, 5, "UbriefsiloZ"> + mission_folder_setup <"4", 0x9C82, 0, LEVELID_NONE, 1, MISSION_HEADER, 0xFFFFFFFF, 0> + mission_folder_setup <"i", 0x9C83, 0, LEVELID_FRIGATE, 1, MISSION_PART, 6, "UbriefdestZ"> + mission_folder_setup <"5", 0x9C7C, 0, LEVELID_NONE, 1, MISSION_HEADER, 0xFFFFFFFF, 0> + mission_folder_setup <"i", 0x9C7D, 0, LEVELID_SURFACE2, 1, MISSION_PART, 7, "UbriefsevxbZ"> + mission_folder_setup <"ii", 0x9C7E, 0, LEVELID_BUNKER2, 1, MISSION_PART, 8, "UbriefsevbZ"> + mission_folder_setup <"6", 0x9C84, 0, LEVELID_NONE, 2, MISSION_HEADER, 0xFFFFFFFF, 0> + mission_folder_setup <"i", 0x9C85, 0x9C86, LEVELID_STATUE, 2, MISSION_PART, 9, "UbriefstatueZ"> + mission_folder_setup <"ii", 0x9C87, 0x9C88, LEVELID_ARCHIVES, 2, MISSION_PART, 0xA, "UbriefarchZ"> + mission_folder_setup <"iii", 0x9C89, 0, LEVELID_STREETS, 2, MISSION_PART, 0xB, "UbriefpeteZ"> + mission_folder_setup <"iv", 0x9C8A, 0, LEVELID_DEPOT, 2, MISSION_PART, 0xC, "UbriefdepoZ"> + mission_folder_setup <"v", 0x9C8B, 0, LEVELID_TRAIN, 2, MISSION_PART, 0xD, "UbrieftraZ"> + mission_folder_setup <"7", 0x9C8C, 0, LEVELID_NONE, 3, MISSION_HEADER, 0xFFFFFFFF, 0> + mission_folder_setup <"i" , 0x9C8D, 0, LEVELID_JUNGLE, 3, MISSION_PART, 0xE, "UbriefjunZ"> + mission_folder_setup <"ii", 0x9C8E, 0x9C8F, LEVELID_CONTROL, 3, MISSION_PART, 0xF, "UbriefcontrolZ"> + mission_folder_setup <"iii", 0x9C90, 0x9C91, LEVELID_CAVERNS, 3, MISSION_PART, 0x10, "UbriefcaveZ"> + mission_folder_setup <"iv", 0x9C92, 0x9C93, LEVELID_CRADLE, 3, MISSION_PART, 0x11, "UbriefcradZ"> + mission_folder_setup <"8", 0x9C94, 0, LEVELID_NONE, 4, MISSION_HEADER, 0xFFFFFFFF, 0> + mission_folder_setup <"i", 0x9C95, 0x9C96, LEVELID_AZTEC, 4, MISSION_PART, 0x12, "UbriefaztZ"> + mission_folder_setup <"9", 0x9C97, 0, LEVELID_NONE, 4, MISSION_HEADER, 0xFFFFFFFF, 0> + mission_folder_setup <"i", 0x9C98, 0x9C99, LEVELID_EGYPT, 4, MISSION_PART, 0x13, "UbriefcrypZ"> + mission_folder_setup <0, 0, 0, LEVELID_NONE, 0xFFFFFFFF, MISSION_PART, 0xFFFFFFFF, 0> + +unknown_folderselect_constructor:.word 0x14 +dword_D_8002AF30:.word 0x14 +dword_D_8002AF34:.word 0x14 +unknown_folderselect_constructor_0:.word 0x32 +dword_D_8002AF3C:.word 0x32 +dword_D_8002AF40:.word 0x32 +unknown_folderselect:.word 0, 1, 3, 0, 0, 0, 0 + .word 0, 0, 0, 0, 0, 0, 0 + .word 0, 0 +dword_D_8002AF84:.word 0, 1, 3, 0, 0, 0, 0 + .word 0, 0, 0, 0, 0, 0, 0 + .word 0 +dword_D_8002AFC0:.word 0 +dword_D_8002AFC4:.word 0 +flt_D_8002AFC8: .float 190.0 +flt_D_8002AFCC: .float -3300.0 +cursor_xpos_table_mission_select:.word 73, 142, 212, 282, 352 +cursor_ypos_table_mission_select:.word 62, 131, 201, 270 + MP_game_length_settings <0x9C2D, 0, 0, 0> + MP_game_length_settings <0x9C2E, 0, 0x4650, 0> + MP_game_length_settings <0x9C2F, 0, 0x8CA0, 0> + MP_game_length_settings <0x9C30, 0, 0x11940, 0> + MP_game_length_settings <0x9C31, 0, 0, 5> + MP_game_length_settings <0x9C32, 0, 0, 0xA> + MP_game_length_settings <0x9C33, 0, 0, 0x14> + MP_game_length_settings <0x9C34, 0, 0, 0> +mp_player_counts:mp_stage_playercount <0x9C35, 2, 4> + mp_stage_playercount <0x9C36, 2, 4> + mp_stage_playercount <0x9C37, 2, 4> + mp_stage_playercount <0x9C38, 2, 4> + mp_stage_playercount <0x9C39, 2, 4> + mp_stage_playercount <0x9C3A, 4, 4> + mp_stage_playercount <0x9C3B, 4, 4> + mp_stage_playercount <0x9C3C, 3, 3> +multi_stage_setups:mp_stage_setup <0x9C9A, 0x9C9B, 0x10, 0xFFFFFFFF, 0xFFFFFFFF, 1, 4> +stru_D_8002B08C:mp_stage_setup <0x9C9C, 0x9C9D, 0xC, 0x26, 0xFFFFFFFF, 1, 4> + mp_stage_setup <0x9C9E, 0x9C9F, 0xE, 0x1F, 0xFFFFFFFF, 1, 4> + mp_stage_setup <0x9CA2, 0x9CA3, 0xF, 0x32, 0xFFFFFFFF, 1, 4> + mp_stage_setup <0x9CA0, 0x9CA1, 0xD, 0x30, 0xFFFFFFFF, 1, 4> + mp_stage_setup <0x9D0D, 0x9D0E, 0xD, 0x2D, 0xFFFFFFFF, 1, 4> + mp_stage_setup <0x9D0F, 0x9D10, 0xD, 0x2E, 0xFFFFFFFF, 1, 4> + mp_stage_setup <0x9CA4, 0x9CA5, 4, 0x22, 1, 1, 4> + mp_stage_setup <0x9CA6, 0x9CA7, 0, 0x1B, 8, 1, 3> + mp_stage_setup <0x9CA8, 0x9CA9, 2, 0x18, 0xA, 1, 3> + mp_stage_setup <0x9CAA, 0x9CAB, 1, 0x27, 0x10, 1, 3> + mp_stage_setup <0x9CAC, 0x9CAD, 0xA, 0x20, 0x13, 1, 2> +num_chars_selectable_mp:.word 8 +mp_chr_setup: MP_selectable_chars <0x9CB8, MALE, 0, BODY_Tuxedo, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0> + MP_selectable_chars <0x9CBF, FEMALE, 9, BODY_Natalya_Skirt, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.96609998> + MP_selectable_chars <0x9CBC, MALE, 6, BODY_Trevelyan_Janus, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0> + MP_selectable_chars <0x9CBE, FEMALE, 8, BODY_Xenia, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0> + MP_selectable_chars <0x9CBB, MALE, 5, BODY_Ourumov, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0778> + MP_selectable_chars <0x9CBA, MALE, 4, BODY_Boris, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.9702> + MP_selectable_chars <0x9CBD, MALE, 7, BODY_Valentin_, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.93239999> + MP_selectable_chars <0x9CB9, MALE, 0xF, BODY_Siberian_Guard_1_Mishkin, HEAD_Male_Mishkin, 1.0> + MP_selectable_chars <0x9CC2, FEMALE, 0xC, BODY_Mayday, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0> + MP_selectable_chars <0x9CC1, MALE, 0xB, BODY_Jaws, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.199> + MP_selectable_chars <0x9CC3, MALE, 0xD, BODY_Oddjob, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT,0.78780001> + MP_selectable_chars <0x9CC0, MALE, 0xA, BODY_Baron_Samedi, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0> + MP_selectable_chars <0x9CFD, MALE, 0xE, BODY_Russian_Soldier, HEAD_Male_Mark, 1.0> + MP_selectable_chars <0x9CFC, MALE, 0xE, BODY_Russian_Infantry, HEAD_Male_Karl, 1.0> + MP_selectable_chars <0x9D07, MALE, 0xE, BODY_Scientist_1_Male, HEAD_Male_Dave_Dr_Doak, 1.0> + MP_selectable_chars <0x9D07, FEMALE, 0xE, BODY_Scientist_2_Female, HEAD_Female_Sally, 1.0> + MP_selectable_chars <0x9D00, MALE, 0xE, BODY_Russian_Commandant, HEAD_Male_Martin, 1.0> + MP_selectable_chars <0x9CFE, MALE, 0xE, BODY_Janus_Marine, HEAD_Male_Steve_Ellis, 1.0> + MP_selectable_chars <0x9D01, MALE, 0xE, BODY_Naval_Officer, HEAD_Male_Duncan, 1.0> + MP_selectable_chars <0x9D06, MALE, 0xE, BODY_Helicopter_Pilot, HEAD_Male_Pete, 1.0> + MP_selectable_chars <0x9CFB, MALE, 0xE, BODY_St_Petersburg_Guard, HEAD_Male_Ken, 1.0> + MP_selectable_chars <0x9D08, FEMALE, 0xE, BODY_Civilian_1_Female, HEAD_Female_Marion_Rosika, 1.0> + MP_selectable_chars <0x9D08, MALE, 0xE, BODY_Civilian_2, HEAD_Male_Graeme, 1.0> + MP_selectable_chars <0x9D08, MALE, 0xE, BODY_Civilian_3, HEAD_Male_Grant, 1.0> + MP_selectable_chars <0x9D08, MALE, 0xE, BODY_Civilian_4, HEAD_Male_Dwayne, 1.0> + MP_selectable_chars <0x9D02, MALE, 0xE, BODY_Siberian_Guard_1_Mishkin, HEAD_Male_Lee, 1.0> + MP_selectable_chars <0x9D03, MALE, 0xE, BODY_Arctic_Commando, HEAD_Male_Chris, 1.0> + MP_selectable_chars <0x9D02, MALE, 0xE, BODY_Siberian_Guard_2, HEAD_Male_Scott, 1.0> + MP_selectable_chars <0x9D04, MALE, 0xE, BODY_Siberian_Special_Forces, HEAD_Male_Alan, 1.0> + MP_selectable_chars <0x9CFA, MALE, 0xE, BODY_Jungle_Commando, HEAD_Male_Joel, 1.0> + MP_selectable_chars <0x9CFF, MALE, 0xE, BODY_Janus_Special_Forces, HEAD_Male_B, 1.0> + MP_selectable_chars <0x9D05, MALE, 0xE, BODY_Moonraker_Elite_1_Male, HEAD_Male_Neil, 1.0> + MP_selectable_chars <0x9D05, FEMALE, 0xE, BODY_Moonraker_Elite_2_Female, HEAD_Female_Vivien, 1.0> + MP_selectable_chars <0x9CC4, FEMALE, 0xE, BODY_Rosika, HEAD_Female_Marion_Rosika, 0.88529998> + MP_selectable_chars <0x9CC5, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Karl, 1.0446> + MP_selectable_chars <0x9CC6, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Martin, 1.0446> + MP_selectable_chars <0x9CC7, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Mark, 1.0446> + MP_selectable_chars <0x9CC8, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Dave_Dr_Doak, 1.0446> + MP_selectable_chars <0x9CC9, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Duncan, 1.0446> + MP_selectable_chars <0x9CCA, FEMALE, 0xE, BODY_Tuxedo, HEAD_Male_B, 1.0446> + MP_selectable_chars <0x9CCB, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Steve_Ellis, 1.0446> + MP_selectable_chars <0x9CCC, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Grant, 1.0446> + MP_selectable_chars <0x9CCD, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Graeme, 1.0446> + MP_selectable_chars <0x9CCE, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Ken, 1.0446> + MP_selectable_chars <0x9CCF, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Alan, 1.0446> + MP_selectable_chars <0x9CD0, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Pete, 1.0446> + MP_selectable_chars <0x9CD1, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Shaun, 1.0446> + MP_selectable_chars <0x9CD2, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Dwayne, 1.0446> + MP_selectable_chars <0x9CD3, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Des, 1.0446> + MP_selectable_chars <0x9CD4, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Chris, 1.0446> + MP_selectable_chars <0x9CD5, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Lee, 1.0446> + MP_selectable_chars <0x9CD6, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Neil, 1.0446> + MP_selectable_chars <0x9CD7, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Jim, 1.0446> + MP_selectable_chars <0x9CD8, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Robin, 1.0446> + MP_selectable_chars <0x9CD9, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Steve_H, 1.0446> + MP_selectable_chars <0x9CDA, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Terrorist, 1.0446> + MP_selectable_chars <0x9CDB, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Biker, 1.0446> + MP_selectable_chars <0x9CDC, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Joel, 1.0446> + MP_selectable_chars <0x9CDD, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Scott, 1.0446> + MP_selectable_chars <0x9CDE, MALE, 0xE, BODY_Tuxedo, HEAD_Male_Joe, 1.0446> + MP_selectable_chars <0x9CDF, FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Sally, 1.0446> + MP_selectable_chars <0x9CE0, FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Marion_Rosika, 1.0446> + MP_selectable_chars <0x9CE1, FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Mandy, 1.0446> + MP_selectable_chars <0x9CE2, FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Vivien, 1.0446> + +MP_handicap_table:MP_handicap_menu <0x9C3D, 0, 10.0> + MP_handicap_menu <0x9C3E, 0, 2.8560996> + MP_handicap_menu <0x9C3F, 0, 2.1969998> + MP_handicap_menu <0x9C40, 0, 1.6899998> + MP_handicap_menu <0x9C41, 0, 1.3> + MP_handicap_menu <0x9C42, 0, 1.0> + MP_handicap_menu <0x9C43, 0, 0.76923078> + MP_handicap_menu <0x9C44, 0, 0.59171599> + MP_handicap_menu <0x9C45, 0, 0.45516616> + MP_handicap_menu <0x9C46, 0, 0.35012782> + MP_handicap_menu <0x9C47, 0, 0.1> + MP_controller_configuration_menu <0x9D, 0x15, 0, 1> + MP_controller_configuration_menu <0x9D, 0x16, 1, 1> + MP_controller_configuration_menu <0x9D, 0x17, 2, 1> + MP_controller_configuration_menu <0x9D, 0x18, 3, 1> + MP_controller_configuration_menu <0x9D, 0x19, 4, 2> + MP_controller_configuration_menu <0x9D, 0x1A, 5, 2> + MP_controller_configuration_menu <0x9D, 0x1B, 6, 2> + MP_controller_configuration_menu <0x9D, 0x1C, 7, 2> +stru_mp_sight_adjust_table:MP_sight_aim_settings <0x9C, 0x48, 0, 0> + MP_sight_aim_settings <0x9C, 0x49, 1, 0> + MP_sight_aim_settings <0x9C, 0x4A, 0, 1> + MP_sight_aim_settings <0x9C, 0x4B, 1, 1> +*/ +extern s32 selected_num_players; +extern s32 player_1_char; +extern s32 player_2_char; +extern s32 player_3_char; +extern s32 player_4_char; +extern s32 MP_stage_selected; +extern s32 game_length; +extern s32 aim_sight_adjustment; +extern s32 scenario; +extern s32 unlock_stage_select; +extern s32 unlock_game_length; +extern s32 unlock_chars; +extern s32 unlock_weapon_select; +extern s32 unlock_handicap; +extern s32 unlock_control_style; +extern s32 unlock_aim_sight; +/* +dword_D_8002B560:.word 0 + solo_target_times <0, 160, 0> + solo_target_times <0, 0, 125> + solo_target_times <300, 0, 0> + solo_target_times <0, 210, 0> + solo_target_times <0, 0, 240> + solo_target_times <180, 0, 0> + solo_target_times <0, 270, 0> + solo_target_times <0, 0, 255> + solo_target_times <90, 0, 0> + solo_target_times <0, 195, 0> + solo_target_times <0, 0, 80> + solo_target_times <105, 0, 0> + solo_target_times <0, 100, 0> + solo_target_times <0, 0, 325> + solo_target_times <225, 0, 0> + solo_target_times <0, 600, 0> + solo_target_times <0, 0, 570> + solo_target_times <135, 0, 0> + solo_target_times <0, 540, 0> + solo_target_times <0, 0, 360> +dword_D_8002B5DC:.word 0 +dword_D_8002B5E0:.word 0 +MP_menu_selected_option:.word 0 +*/ +extern u32 do_not_play_intro_movie; +extern u32 randomly_selected_intro_animation; +extern u32 intro_animation_count; +extern u32 objinstance; +extern u32 ptrobjinstance; +extern u32 full_actor_intro; +void set_menu_to_mode(MENU menu, u32 mode); + +#endif diff --git a/src/game/matrixmath.c b/src/game/matrixmath.c new file mode 100644 index 0000000..7e1612c --- /dev/null +++ b/src/game/matrixmath.c @@ -0,0 +1,2392 @@ +#include "ultra64.h" + +// bss +//CODE.bss:80075DA0 +f32 flt_CODE_bss_80075DA0; + + +// data +//D:80032310 +f32 D_80032310[2] = {65536.0f, 65536.0f}; + +// f32 D_80032310 = 65536.0; +// //D:80032314 +// f32 D_80032314 = 65536.0; + + +// rodata +//D:800536F0 + +typedef f32 vec3[3]; +typedef f32 mat44[4][4]; + +void matrix_4x4_set_identity(mat44 matrix) { + matrix[0][0] = 1.0f; + matrix[0][1] = 0.0f; + matrix[0][2] = 0.0f; + matrix[0][3] = 0.0f; + matrix[1][0] = 0.0f; + matrix[1][1] = 1.0f; + matrix[1][2] = 0.0f; + matrix[1][3] = 0.0f; + matrix[2][0] = 0.0f; + matrix[2][1] = 0.0f; + matrix[2][2] = 1.0f; + matrix[2][3] = 0.0f; + matrix[3][0] = 0.0f; + matrix[3][1] = 0.0f; + matrix[3][2] = 0.0f; + matrix[3][3] = 1.0f; +} + +void matrix_4x4_copy(mat44 src, mat44 dst) { + s32 i; + for (i = 0; i < 4; i++) { + dst[i][0] = src[i][0]; + dst[i][1] = src[i][1]; + dst[i][2] = src[i][2]; + dst[i][3] = src[i][3]; + } +} + +void matrix_4x4_multiply(mat44 lhs, mat44 rhs, mat44 result); + +void matrix_4x4_multiply_in_place(mat44 lhs, mat44 rhs) { + mat44 result; + matrix_4x4_multiply(lhs, rhs, result); + matrix_4x4_copy(result, rhs); +} + +void matrix_4x4_multiply_homogeneous_in_place(mat44 lhs, mat44 rhs) { + mat44 result; + matrix_4x4_multiply_homogeneous(lhs, rhs, result); + matrix_4x4_copy(result, rhs); +} + +#ifdef NONMATCHING +// 8cbf8: move v1,zero 8cbf8: move v1,zero +// 8cbfc: move t0,a0 r 8cbfc: move t1,a0 +// 8cc00: li t2,0x10 r 8cc00: li t3,0x10 +// 8cc04: li t1,4 r 8cc04: li t2,0x40 +// 8cc08: move v0,zero | 8cc08: addu a0,a2,v1 +// 8cc0c: addu a0,a2,v1 | 8cc0c: move a3,zero +// 8cc10: move a3,a1 r 8cc10: move t0,a1 +// 8cc14: lwc1 $f18,0(t0) r 8cc14: lwc1 $f18,0(t1) +// 8cc18: lwc1 $f16,0(a3) r 8cc18: lwc1 $f16,0(t0) +// 8cc1c: lwc1 $f14,0x10(t0) r 8cc1c: lwc1 $f14,0x10(t1) +// 8cc20: lwc1 $f12,4(a3) r 8cc20: lwc1 $f12,4(t0) +// 8cc24: mul.s $f16,$f18,$f16 8cc24: mul.s $f16,$f18,$f16 +// 8cc28: lwc1 $f18,0x20(t0) r 8cc28: lwc1 $f18,0x20(t1) +// 8cc2c: lwc1 $f10,8(a3) r 8cc2c: lwc1 $f10,8(t0) +// 8cc30: mul.s $f12,$f14,$f12 8cc30: mul.s $f12,$f14,$f12 +// 8cc34: lwc1 $f14,0xc(a3) r 8cc34: lwc1 $f14,0xc(t0) +// 8cc38: lwc1 $f8,0x30(t0) r 8cc38: lwc1 $f8,0x30(t1) +// 8cc3c: mul.s $f10,$f18,$f10 8cc3c: mul.s $f10,$f18,$f10 +// 8cc40: addiu v0,v0,2 r 8cc40: addiu a3,a3,0x20 +// 8cc44: addiu a0,a0,0x20 8cc44: addiu a0,a0,0x20 +// 8cc48: mul.s $f8,$f14,$f8 8cc48: mul.s $f8,$f14,$f8 +// 8cc4c: addiu a3,a3,0x20 r 8cc4c: addiu t0,t0,0x20 +// 8cc50: add.s $f12,$f16,$f12 8cc50: add.s $f12,$f16,$f12 +// 8cc54: add.s $f10,$f12,$f10 8cc54: add.s $f10,$f12,$f10 +// 8cc58: add.s $f10,$f8,$f10 8cc58: add.s $f10,$f8,$f10 +// 8cc5c: swc1 $f10,-0x20(a0) 8cc5c: swc1 $f10,-0x20(a0) +// 8cc60: lwc1 $f10,0(t0) r 8cc60: lwc1 $f10,0(t1) +// 8cc64: lwc1 $f8,-0x10(a3) r 8cc64: lwc1 $f8,-0x10(t0) +// 8cc68: lwc1 $f12,0x10(t0) r 8cc68: lwc1 $f12,0x10(t1) +// 8cc6c: lwc1 $f16,-0xc(a3) r 8cc6c: lwc1 $f16,-0xc(t0) +// 8cc70: mul.s $f8,$f10,$f8 8cc70: mul.s $f8,$f10,$f8 +// 8cc74: lwc1 $f10,0x20(t0) r 8cc74: lwc1 $f10,0x20(t1) +// 8cc78: lwc1 $f14,-8(a3) r 8cc78: lwc1 $f14,-8(t0) +// 8cc7c: mul.s $f16,$f12,$f16 8cc7c: mul.s $f16,$f12,$f16 +// 8cc80: lwc1 $f12,-4(a3) r 8cc80: lwc1 $f12,-4(t0) +// 8cc84: lwc1 $f18,0x30(t0) r 8cc84: lwc1 $f18,0x30(t1) +// 8cc88: mul.s $f14,$f10,$f14 8cc88: mul.s $f14,$f10,$f14 +// 8cc8c: nop 8cc8c: nop +// 8cc90: mul.s $f18,$f12,$f18 8cc90: mul.s $f18,$f12,$f18 +// 8cc94: add.s $f16,$f8,$f16 8cc94: add.s $f16,$f8,$f16 +// 8cc98: add.s $f14,$f16,$f14 8cc98: add.s $f14,$f16,$f14 +// 8cc9c: add.s $f14,$f18,$f14 8cc9c: add.s $f14,$f18,$f14 +// 8cca0: bne v0,t1,0x8cc14 ~> r 8cca0: bne a3,t2,0x8cc14 ~> +// 8cca4: swc1 $f14,-0x10(a0) 8cca4: swc1 $f14,-0x10(a0) +// 8cca8: addiu v1,v1,4 8cca8: addiu v1,v1,4 +// 8ccac: bne v1,t2,0x8cc08 ~> r 8ccac: bne v1,t3,0x8cc08 ~> +// 8ccb0: addiu t0,t0,4 r 8ccb0: addiu t1,t1,4 +// 8ccb4: jr ra 8ccb4: jr ra +void matrix_4x4_multiply(mat44 lhs, mat44 rhs, mat44 result) { + s32 i, j; + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j += 2) { + result[j + 0][i] = lhs[0][i] * rhs[j + 0][0] + lhs[1][i] * rhs[j + 0][1] + lhs[2][i] * rhs[j + 0][2] + lhs[3][i] * rhs[j + 0][3]; + result[j + 1][i] = lhs[0][i] * rhs[j + 1][0] + lhs[1][i] * rhs[j + 1][1] + lhs[2][i] * rhs[j + 1][2] + lhs[3][i] * rhs[j + 1][3]; + } + } +} +#else +GLOBAL_ASM( +.text +glabel matrix_4x4_multiply +/* 08CBF8 7F0580C8 00001825 */ move $v1, $zero +/* 08CBFC 7F0580CC 00804025 */ move $t0, $a0 +/* 08CC00 7F0580D0 240A0010 */ li $t2, 16 +/* 08CC04 7F0580D4 24090004 */ li $t1, 4 +.L7F0580D8: +/* 08CC08 7F0580D8 00001025 */ move $v0, $zero +/* 08CC0C 7F0580DC 00C32021 */ addu $a0, $a2, $v1 +/* 08CC10 7F0580E0 00A03825 */ move $a3, $a1 +.L7F0580E4: +/* 08CC14 7F0580E4 C5120000 */ lwc1 $f18, ($t0) +/* 08CC18 7F0580E8 C4F00000 */ lwc1 $f16, ($a3) +/* 08CC1C 7F0580EC C50E0010 */ lwc1 $f14, 0x10($t0) +/* 08CC20 7F0580F0 C4EC0004 */ lwc1 $f12, 4($a3) +/* 08CC24 7F0580F4 46109402 */ mul.s $f16, $f18, $f16 +/* 08CC28 7F0580F8 C5120020 */ lwc1 $f18, 0x20($t0) +/* 08CC2C 7F0580FC C4EA0008 */ lwc1 $f10, 8($a3) +/* 08CC30 7F058100 460C7302 */ mul.s $f12, $f14, $f12 +/* 08CC34 7F058104 C4EE000C */ lwc1 $f14, 0xc($a3) +/* 08CC38 7F058108 C5080030 */ lwc1 $f8, 0x30($t0) +/* 08CC3C 7F05810C 460A9282 */ mul.s $f10, $f18, $f10 +/* 08CC40 7F058110 24420002 */ addiu $v0, $v0, 2 +/* 08CC44 7F058114 24840020 */ addiu $a0, $a0, 0x20 +/* 08CC48 7F058118 46087202 */ mul.s $f8, $f14, $f8 +/* 08CC4C 7F05811C 24E70020 */ addiu $a3, $a3, 0x20 +/* 08CC50 7F058120 460C8300 */ add.s $f12, $f16, $f12 +/* 08CC54 7F058124 460A6280 */ add.s $f10, $f12, $f10 +/* 08CC58 7F058128 460A4280 */ add.s $f10, $f8, $f10 +/* 08CC5C 7F05812C E48AFFE0 */ swc1 $f10, -0x20($a0) +/* 08CC60 7F058130 C50A0000 */ lwc1 $f10, ($t0) +/* 08CC64 7F058134 C4E8FFF0 */ lwc1 $f8, -0x10($a3) +/* 08CC68 7F058138 C50C0010 */ lwc1 $f12, 0x10($t0) +/* 08CC6C 7F05813C C4F0FFF4 */ lwc1 $f16, -0xc($a3) +/* 08CC70 7F058140 46085202 */ mul.s $f8, $f10, $f8 +/* 08CC74 7F058144 C50A0020 */ lwc1 $f10, 0x20($t0) +/* 08CC78 7F058148 C4EEFFF8 */ lwc1 $f14, -8($a3) +/* 08CC7C 7F05814C 46106402 */ mul.s $f16, $f12, $f16 +/* 08CC80 7F058150 C4ECFFFC */ lwc1 $f12, -4($a3) +/* 08CC84 7F058154 C5120030 */ lwc1 $f18, 0x30($t0) +/* 08CC88 7F058158 460E5382 */ mul.s $f14, $f10, $f14 +/* 08CC8C 7F05815C 00000000 */ nop +/* 08CC90 7F058160 46126482 */ mul.s $f18, $f12, $f18 +/* 08CC94 7F058164 46104400 */ add.s $f16, $f8, $f16 +/* 08CC98 7F058168 460E8380 */ add.s $f14, $f16, $f14 +/* 08CC9C 7F05816C 460E9380 */ add.s $f14, $f18, $f14 +/* 08CCA0 7F058170 1449FFDC */ bne $v0, $t1, .L7F0580E4 +/* 08CCA4 7F058174 E48EFFF0 */ swc1 $f14, -0x10($a0) +/* 08CCA8 7F058178 24630004 */ addiu $v1, $v1, 4 +/* 08CCAC 7F05817C 146AFFD6 */ bne $v1, $t2, .L7F0580D8 +/* 08CCB0 7F058180 25080004 */ addiu $t0, $t0, 4 +/* 08CCB4 7F058184 03E00008 */ jr $ra +/* 08CCB8 7F058188 00000000 */ nop +) +#endif + +s32 matrix_4x4_multiply_homogeneous(mat44 lhs, mat44 rhs, mat44 result) { + s32 i, j; + for (i = 0; i < 3; i++) { + for (j = 0; j < 4; j += 2) { + result[j + 0][i] = (lhs[0][i] * rhs[j + 0][0]) + (lhs[1][i] * rhs[j + 0][1]) + (lhs[2][i] * rhs[j + 0][2]); + if (j == 3) { + result[j + 0][i] += lhs[3][i]; + } + result[j + 1][i] = (lhs[0][i] * rhs[j + 1][0]) + (lhs[1][i] * rhs[j + 1][1]) + (lhs[2][i] * rhs[j + 1][2]); + if (j == 2) { + result[j + 1][i] += lhs[3][i]; + } + } + } + + result[0][3] = 0.0f; + result[1][3] = 0.0f; + result[2][3] = 0.0f; + result[3][3] = 1.0f; +} + +void sub_GAME_7F058274(mat44 arg0, mat44 arg1, mat44 arg2) { + arg2[0][0] = (arg0[0][0] * arg1[0][0]); + arg2[1][0] = (arg0[0][0] * arg1[1][0]); + arg2[2][0] = (arg0[0][0] * arg1[2][0]); + arg2[3][0] = (arg0[0][0] * arg1[3][0]); + arg2[0][1] = (arg0[1][1] * arg1[0][1]); + arg2[1][1] = (arg0[1][1] * arg1[1][1]); + arg2[2][1] = (arg0[1][1] * arg1[2][1]); + arg2[3][1] = (arg0[1][1] * arg1[3][1]); + arg2[0][2] = (arg0[2][2] * arg1[0][2]); + arg2[1][2] = (arg0[2][2] * arg1[1][2]); + arg2[2][2] = (arg0[2][2] * arg1[2][2]); + arg2[3][2] = (arg0[2][2] * arg1[3][2]) + arg0[3][2]; + arg2[0][3] = (arg0[2][3] * arg1[0][2]); + arg2[1][3] = (arg0[2][3] * arg1[1][2]); + arg2[2][3] = (arg0[2][3] * arg1[2][2]); + arg2[3][3] = (arg0[2][3] * arg1[3][2]); +} + +void matrix_4x4_rotate_vector(mat44 matrix, vec3 vector, vec3 result) { + s32 i; + for (i = 0; i < 3; i++) { + result[i] = matrix[0][i] * vector[0] + matrix[1][i] * vector[1] + matrix[2][i] * vector[2]; + } +} + +void matrix_4x4_rotate_vector_in_place(mat44 matrix, vec3 vector) { + vec3 result; + matrix_4x4_rotate_vector(matrix, vector, result); + vector[0] = result[0]; + vector[1] = result[1]; + vector[2] = result[2]; +} + +void matrix_4x4_transform_vector(mat44 matrix, vec3 vector, vec3 result) { + matrix_4x4_rotate_vector(matrix, vector, result); + result[0] += matrix[3][0]; + result[1] += matrix[3][1]; + result[2] += matrix[3][2]; +} + +void matrix_4x4_transform_vector_in_place(mat44 matrix, vec3 vector) { + matrix_4x4_rotate_vector_in_place(matrix, vector); + vector[0] += matrix[3][0]; + vector[1] += matrix[3][1]; + vector[2] += matrix[3][2]; +} + +void matrix_4x4_set_position_and_rotation_around_y(f32* position, f32 angle, mat44 matrix) { + f32 cosine = cosf(angle); + f32 sine = sinf(angle); + matrix[0][0] = cosine; + matrix[0][1] = 0.0f; + matrix[0][2] = -sine; + matrix[0][3] = 0.0f; + matrix[1][0] = 0.0f; + matrix[1][1] = 1.0f; + matrix[1][2] = 0.0f; + matrix[1][3] = 0.0f; + matrix[2][0] = sine; + matrix[2][1] = 0.0f; + matrix[2][2] = cosine; + matrix[2][3] = 0.0f; + matrix[3][0] = position[0]; + matrix[3][1] = position[1]; + matrix[3][2] = position[2]; + matrix[3][3] = 1.0f; +} + +void matrix_4x4_set_rotation_around_x(f32 angle, mat44 matrix) { + f32 cosine = cosf(angle); + f32 sine = sinf(angle); + matrix[0][0] = 1.0f; + matrix[0][1] = 0.0f; + matrix[0][2] = 0.0f; + matrix[0][3] = 0.0f; + matrix[1][0] = 0.0f; + matrix[1][1] = cosine; + matrix[1][2] = sine; + matrix[1][3] = 0.0f; + matrix[2][0] = 0.0f; + matrix[2][1] = -sine; + matrix[2][2] = cosine; + matrix[2][3] = 0.0f; + matrix[3][0] = 0.0f; + matrix[3][1] = 0.0f; + matrix[3][2] = 0.0f; + matrix[3][3] = 1.0f; +} + +void matrix_4x4_set_rotation_around_y(f32 angle, mat44 matrix) { + f32 cosine = cosf(angle); + f32 sine = sinf(angle); + matrix[0][0] = cosine; + matrix[0][1] = 0.0f; + matrix[0][2] = -sine; + matrix[0][3] = 0.0f; + matrix[1][0] = 0.0f; + matrix[1][1] = 1.0f; + matrix[1][2] = 0.0f; + matrix[1][3] = 0.0f; + matrix[2][0] = sine; + matrix[2][1] = 0.0f; + matrix[2][2] = cosine; + matrix[2][3] = 0.0f; + matrix[3][0] = 0.0f; + matrix[3][1] = 0.0f; + matrix[3][2] = 0.0f; + matrix[3][3] = 1.0f; +} + +void matrix_4x4_set_rotation_around_z(f32 angle, mat44 matrix) { + f32 cosine = cosf(angle); + f32 sine = sinf(angle); + matrix[0][0] = cosine; + matrix[0][1] = sine; + matrix[0][2] = 0.0f; + matrix[0][3] = 0.0f; + matrix[1][0] = -sine; + matrix[1][1] = cosine; + matrix[1][2] = 0.0f; + matrix[1][3] = 0.0f; + matrix[2][0] = 0.0f; + matrix[2][1] = 0.0f; + matrix[2][2] = 1.0f; + matrix[2][3] = 0.0f; + matrix[3][0] = 0.0f; + matrix[3][1] = 0.0f; + matrix[3][2] = 0.0f; + matrix[3][3] = 1.0f; +} + +#ifdef NONMATCHING +// 8d300: lwc1 $f10,0x54(sp) r 8d300: lwc1 $f8,0x54(sp) +// 8d304: mul.s $f18,$f4,$f0 r 8d304: mul.s $f10,$f4,$f0 +// 8d308: nop 8d308: nop +// 8d30c: mul.s $f8,$f10,$f16 r 8d30c: mul.s $f18,$f8,$f16 +// 8d310: nop 8d310: nop +// 8d314: mul.s $f6,$f18,$f2 r 8d314: mul.s $f6,$f10,$f2 +// 8d318: swc1 $f8,0x20(sp) r 8d318: swc1 $f10,0x20(sp) +// 8d31c: add.s $f4,$f6,$f8 r 8d31c: add.s $f4,$f6,$f18 +// 8d320: swc1 $f4,0x14(s0) 8d320: swc1 $f4,0x14(s0) +// 8d324: lwc1 $f10,0x50(sp) r 8d324: lwc1 $f8,0x50(sp) +// 8d328: swc1 $f12,0x1c(s0) 8d328: swc1 $f12,0x1c(s0) +// 8d32c: mul.s $f6,$f10,$f14 r 8d32c: mul.s $f10,$f8,$f14 +// 8d330: swc1 $f6,0x18(s0) r 8d330: swc1 $f10,0x18(s0) +// 8d334: lwc1 $f8,0x20(sp) | 8d334: mul.s $f6,$f18,$f2 +// 8d338: mul.s $f4,$f8,$f2 | 8d338: lwc1 $f4,0x20(sp) +// 8d33c: add.s $f10,$f4,$f18 r 8d33c: add.s $f8,$f6,$f4 +// 8d340: swc1 $f10,0x20(s0) r 8d340: swc1 $f8,0x20(s0) +// 8d344: lwc1 $f6,0x28(sp) r 8d344: lwc1 $f10,0x28(sp) +// 8d348: lwc1 $f4,0x24(sp) 8d348: lwc1 $f4,0x24(sp) +// 8d34c: mul.s $f8,$f6,$f2 r 8d34c: mul.s $f6,$f10,$f2 +// 8d350: sub.s $f10,$f8,$f4 r 8d350: sub.s $f8,$f6,$f4 +// 8d354: mtc1 at,$f4 8d354: mtc1 at,$f4 +// 8d358: swc1 $f10,0x24(s0) r 8d358: swc1 $f8,0x24(s0) +// 8d35c: lwc1 $f6,0x54(sp) r 8d35c: lwc1 $f10,0x54(sp) +// 8d360: swc1 $f12,0x2c(s0) 8d360: swc1 $f12,0x2c(s0) +// 8d364: swc1 $f12,0x30(s0) 8d364: swc1 $f12,0x30(s0) +// 8d368: mul.s $f8,$f6,$f14 r 8d368: mul.s $f6,$f10,$f14 +// 8d36c: swc1 $f12,0x34(s0) 8d36c: swc1 $f12,0x34(s0) +// 8d370: swc1 $f12,0x38(s0) 8d370: swc1 $f12,0x38(s0) +// 8d374: swc1 $f4,0x3c(s0) 8d374: swc1 $f4,0x3c(s0) +// 8d378: swc1 $f8,0x28(s0) r 8d378: swc1 $f6,0x28(s0) +// void matrix_4x4_set_rotation_around_xyz(vec3 angles, mat44 matrix) { +// f32 cos_x = cosf(angles[0]); +// f32 sin_x = sinf(angles[0]); +// f32 cos_y = cosf(angles[1]); +// f32 sin_y = sinf(angles[1]); +// f32 cos_z = cosf(angles[2]); +// f32 sin_z = sinf(angles[2]); +// f32 cos_x_cos_z = cos_x * cos_z; +// f32 cos_x_sin_z = cos_x * sin_z; +// f32 sin_x_cos_z = sin_x * cos_z; +// f32 sin_x_sin_z = sin_x * sin_z; +// matrix[0][0] = (cos_y * cos_z); +// matrix[0][1] = (cos_y * sin_z); +// matrix[0][2] = -sin_y; +// matrix[0][3] = 0.0f; +// matrix[1][0] = ((sin_x_cos_z * sin_y) - cos_x_sin_z); +// matrix[1][1] = ((sin_x_sin_z * sin_y) + cos_x_cos_z); +// matrix[1][2] = sin_x * cos_y; +// matrix[1][3] = 0.0f; +// matrix[2][0] = ((cos_x_cos_z * sin_y) + sin_x_sin_z); +// matrix[2][1] = ((cos_x_sin_z * sin_y) - sin_x_cos_z); +// matrix[2][2] = cos_x * cos_y; +// matrix[2][3] = 0.0f; +// matrix[3][0] = 0.0f; +// matrix[3][1] = 0.0f; +// matrix[3][2] = 0.0f; +// matrix[3][3] = 1.0f; +// } +#else +GLOBAL_ASM( +.text +glabel matrix_4x4_set_rotation_around_xyz +/* 08D244 7F058714 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 08D248 7F058718 AFBF001C */ sw $ra, 0x1c($sp) +/* 08D24C 7F05871C AFB10018 */ sw $s1, 0x18($sp) +/* 08D250 7F058720 AFB00014 */ sw $s0, 0x14($sp) +/* 08D254 7F058724 00A08025 */ move $s0, $a1 +/* 08D258 7F058728 00808825 */ move $s1, $a0 +/* 08D25C 7F05872C 0FC15FA8 */ jal cosf +/* 08D260 7F058730 C48C0000 */ lwc1 $f12, ($a0) +/* 08D264 7F058734 E7A00054 */ swc1 $f0, 0x54($sp) +/* 08D268 7F058738 0FC15FAB */ jal sinf +/* 08D26C 7F05873C C62C0000 */ lwc1 $f12, ($s1) +/* 08D270 7F058740 E7A00050 */ swc1 $f0, 0x50($sp) +/* 08D274 7F058744 0FC15FA8 */ jal cosf +/* 08D278 7F058748 C62C0004 */ lwc1 $f12, 4($s1) +/* 08D27C 7F05874C C62C0004 */ lwc1 $f12, 4($s1) +/* 08D280 7F058750 0FC15FAB */ jal sinf +/* 08D284 7F058754 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 08D288 7F058758 C62C0008 */ lwc1 $f12, 8($s1) +/* 08D28C 7F05875C 0FC15FA8 */ jal cosf +/* 08D290 7F058760 E7A00048 */ swc1 $f0, 0x48($sp) +/* 08D294 7F058764 C62C0008 */ lwc1 $f12, 8($s1) +/* 08D298 7F058768 0FC15FAB */ jal sinf +/* 08D29C 7F05876C E7A00044 */ swc1 $f0, 0x44($sp) +/* 08D2A0 7F058770 C7AE004C */ lwc1 $f14, 0x4c($sp) +/* 08D2A4 7F058774 C7B00044 */ lwc1 $f16, 0x44($sp) +/* 08D2A8 7F058778 C7A20048 */ lwc1 $f2, 0x48($sp) +/* 08D2AC 7F05877C 44806000 */ mtc1 $zero, $f12 +/* 08D2B0 7F058780 46107102 */ mul.s $f4, $f14, $f16 +/* 08D2B4 7F058784 46001207 */ neg.s $f8, $f2 +/* 08D2B8 7F058788 E60C000C */ swc1 $f12, 0xc($s0) +/* 08D2BC 7F05878C 46007182 */ mul.s $f6, $f14, $f0 +/* 08D2C0 7F058790 E6080008 */ swc1 $f8, 8($s0) +/* 08D2C4 7F058794 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 08D2C8 7F058798 E6040000 */ swc1 $f4, ($s0) +/* 08D2CC 7F05879C E6060004 */ swc1 $f6, 4($s0) +/* 08D2D0 7F0587A0 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 08D2D4 7F0587A4 C7A60054 */ lwc1 $f6, 0x54($sp) +/* 08D2D8 7F0587A8 46105102 */ mul.s $f4, $f10, $f16 +/* 08D2DC 7F0587AC 00000000 */ nop +/* 08D2E0 7F0587B0 46003202 */ mul.s $f8, $f6, $f0 +/* 08D2E4 7F0587B4 00000000 */ nop +/* 08D2E8 7F0587B8 46022282 */ mul.s $f10, $f4, $f2 +/* 08D2EC 7F0587BC E7A40024 */ swc1 $f4, 0x24($sp) +/* 08D2F0 7F0587C0 E7A80028 */ swc1 $f8, 0x28($sp) +/* 08D2F4 7F0587C4 46085181 */ sub.s $f6, $f10, $f8 +/* 08D2F8 7F0587C8 E6060010 */ swc1 $f6, 0x10($s0) +/* 08D2FC 7F0587CC C7A40050 */ lwc1 $f4, 0x50($sp) +/* 08D300 7F0587D0 C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 08D304 7F0587D4 46002482 */ mul.s $f18, $f4, $f0 +/* 08D308 7F0587D8 00000000 */ nop +/* 08D30C 7F0587DC 46105202 */ mul.s $f8, $f10, $f16 +/* 08D310 7F0587E0 00000000 */ nop +/* 08D314 7F0587E4 46029182 */ mul.s $f6, $f18, $f2 +/* 08D318 7F0587E8 E7A80020 */ swc1 $f8, 0x20($sp) +/* 08D31C 7F0587EC 46083100 */ add.s $f4, $f6, $f8 +/* 08D320 7F0587F0 E6040014 */ swc1 $f4, 0x14($s0) +/* 08D324 7F0587F4 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 08D328 7F0587F8 E60C001C */ swc1 $f12, 0x1c($s0) +/* 08D32C 7F0587FC 460E5182 */ mul.s $f6, $f10, $f14 +/* 08D330 7F058800 E6060018 */ swc1 $f6, 0x18($s0) +/* 08D334 7F058804 C7A80020 */ lwc1 $f8, 0x20($sp) +/* 08D338 7F058808 46024102 */ mul.s $f4, $f8, $f2 +/* 08D33C 7F05880C 46122280 */ add.s $f10, $f4, $f18 +/* 08D340 7F058810 E60A0020 */ swc1 $f10, 0x20($s0) +/* 08D344 7F058814 C7A60028 */ lwc1 $f6, 0x28($sp) +/* 08D348 7F058818 C7A40024 */ lwc1 $f4, 0x24($sp) +/* 08D34C 7F05881C 46023202 */ mul.s $f8, $f6, $f2 +/* 08D350 7F058820 46044281 */ sub.s $f10, $f8, $f4 +/* 08D354 7F058824 44812000 */ mtc1 $at, $f4 +/* 08D358 7F058828 E60A0024 */ swc1 $f10, 0x24($s0) +/* 08D35C 7F05882C C7A60054 */ lwc1 $f6, 0x54($sp) +/* 08D360 7F058830 E60C002C */ swc1 $f12, 0x2c($s0) +/* 08D364 7F058834 E60C0030 */ swc1 $f12, 0x30($s0) +/* 08D368 7F058838 460E3202 */ mul.s $f8, $f6, $f14 +/* 08D36C 7F05883C E60C0034 */ swc1 $f12, 0x34($s0) +/* 08D370 7F058840 E60C0038 */ swc1 $f12, 0x38($s0) +/* 08D374 7F058844 E604003C */ swc1 $f4, 0x3c($s0) +/* 08D378 7F058848 E6080028 */ swc1 $f8, 0x28($s0) +/* 08D37C 7F05884C 8FBF001C */ lw $ra, 0x1c($sp) +/* 08D380 7F058850 8FB10018 */ lw $s1, 0x18($sp) +/* 08D384 7F058854 8FB00014 */ lw $s0, 0x14($sp) +/* 08D388 7F058858 03E00008 */ jr $ra +/* 08D38C 7F05885C 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + +f32 atan2f(f32, f32); + +#define EPSILON 0.0000019073486f + +// https://stackoverflow.com/a/15029416 +void matrix_4x4_get_rotation_around_xyz(mat44 matrix, vec3 angles) { + f32 norm; + f32 sin_x_cos_y = matrix[1][2]; + f32 cos_x_cos_y = matrix[2][2]; + norm = sqrtf((sin_x_cos_y * sin_x_cos_y) + (cos_x_cos_y * cos_x_cos_y)); + if (EPSILON < norm) { + angles[0] = atan2f(matrix[1][2], matrix[2][2]); + angles[1] = atan2f(-matrix[0][2], norm); + angles[2] = atan2f(matrix[0][1], matrix[0][0]); + } else { + angles[0] = 0.0f; + angles[1] = atan2f(-matrix[0][2], norm); + angles[2] = atan2f(-matrix[1][0], matrix[1][1]); + } +} + +void matrix_4x4_set_position(vec3 position, mat44 matrix); + +void matrix_4x4_set_position_and_rotation_around_xyz(vec3 position, vec3 rotation, mat44 matrix) { + matrix_4x4_set_rotation_around_xyz(rotation, matrix); + matrix_4x4_set_position(position, matrix); +} + +void matrix_4x4_set_identity_and_position(vec3 position, mat44 matrix) { + matrix_4x4_set_identity(matrix); + matrix_4x4_set_position(position, matrix); +} + +void matrix_4x4_set_position(vec3 position, mat44 matrix) { + matrix[3][0] = position[0]; + matrix[3][1] = position[1]; + matrix[3][2] = position[2]; +} + +void matrix_column_1_scalar_multiply(f32 scalar, f32* matrix) { + matrix[0] *= scalar; + matrix[1] *= scalar; + matrix[2] *= scalar; +} + +void matrix_column_2_scalar_multiply(f32 scalar, f32* matrix) { + matrix[4] *= scalar; + matrix[5] *= scalar; + matrix[6] *= scalar; +} + +void matrix_column_3_scalar_multiply(f32 scalar, f32* matrix) { + matrix[8] *= scalar; + matrix[9] *= scalar; + matrix[10] *= scalar; + matrix[11] *= scalar; +} + +void matrix_column_3_scalar_multiply_2(f32 scalar, f32* matrix) { + matrix[8] *= scalar; + matrix[9] *= scalar; + matrix[10] *= scalar; +} + +void matrix_scalar_multiply(f32 scalar, f32* matrix) { + matrix[0] *= scalar; + matrix[1] *= scalar; + matrix[2] *= scalar; + matrix[3] *= scalar; + matrix[4] *= scalar; + matrix[5] *= scalar; + matrix[6] *= scalar; + matrix[7] *= scalar; + matrix[8] *= scalar; + matrix[9] *= scalar; + matrix[10] *= scalar; + matrix[11] *= scalar; +} + +void matrix_scalar_multiply_2(f32 scalar, f32* matrix) { + matrix[0] *= scalar; + matrix[1] *= scalar; + matrix[2] *= scalar; + matrix[4] *= scalar; + matrix[5] *= scalar; + matrix[6] *= scalar; + matrix[8] *= scalar; + matrix[9] *= scalar; + matrix[10] *= scalar; +} + +void matrix_row_3_scalar_multiply(f32 scalar, f32* matrix) { + matrix[2] *= scalar; + matrix[6] *= scalar; + matrix[10] *= scalar; + matrix[14] *= scalar; +} + +void matrix_scalar_multiply_3(f32 scalar, f32* matrix) { + matrix[0] *= scalar; + matrix[4] *= scalar; + matrix[8] *= scalar; + matrix[12] *= scalar; + matrix[1] *= scalar; + matrix[5] *= scalar; + matrix[9] *= scalar; + matrix[13] *= scalar; + matrix[2] *= scalar; + matrix[6] *= scalar; + matrix[10] *= scalar; + matrix[14] *= scalar; +} + +void sub_GAME_7F058C4C(f32 arg0) { + D_80032310[0] = (65536.0f * arg0); +} + +void sub_GAME_7F058C64(void) { + flt_CODE_bss_80075DA0 = D_80032310[0]; + D_80032310[0] = 65536.0f; +} + +void sub_GAME_7F058C88(void) { + D_80032310[0] = flt_CODE_bss_80075DA0; +} + +#ifdef NONMATCHING +// #define GET_HIGH_S16(x, y) (x & 0xFFFF0000) | (y >> 16); +// #define GET_LOW_S16(x, y) (x << 16) | (y & 0xFFFF); + +// #define STORE_HIGH_AND_LOW_16(index) \ +// var1 = (s32)(matrix[(index) * 2 + 0] * D_80032310[(index) & 0]); \ +// var2 = (s32)(matrix[(index) * 2 + 1] * D_80032310[(index) & 1]); \ +// result[index + 0] = GET_HIGH_S16(var1, var2); \ +// result[index + 8] = GET_LOW_S16(var1, var2); +// void sub_GAME_7F058C9C(f32* matrix, s32* result) { +// // s32 i; +// // s32 x; +// // s32 y; +// // for (i = 0; i < 8; i++) { +// // result[i] = +// // //x = D_80032310[(i + 0) & 0] * matrix[i][0]; +// // //y = D_80032310[(i + 0) & 0] * matrix[0][i]; +// // //y = D_80032310[(i + 0) & 1] +// // } + +// s32 i; +// u32 var1; +// u32 var2; +// // u32 var3; +// // u32 var4; +// // u32 var5; +// // u32 var6; +// // u32 var7; +// // u32 var8; +// for (i = 0; i < 8; i += 4) { +// STORE_HIGH_AND_LOW_16(i + 0) +// STORE_HIGH_AND_LOW_16(i + 1) +// STORE_HIGH_AND_LOW_16(i + 2) +// STORE_HIGH_AND_LOW_16(i + 3) + + + +// // var1 = (s32)(D_80032310[0] * matrix[(i + 0) * 2 + 0]); +// // var2 = (s32)(D_80032310[0] * matrix[(i + 0) * 2 + 1]); +// // result[i + 0] = GET_HIGH_S16(var1, var2); +// // result[i + 8] = GET_LOW_S16(var1, var2); +// // var3 = (s32)(D_80032310[0] * matrix[(i + 1) * 2 + 0]); +// // var4 = (s32)(D_80032310[1] * matrix[(i + 1) * 2 + 1]); +// // result[i + 1]= GET_HIGH_S16(var3, var4); +// // result[i + 9] = GET_LOW_S16(var3, var4); +// // var5 = (s32)(D_80032310[0] * matrix[(i + 2) * 2 + 0]); +// // var6 = (s32)(D_80032310[0] * matrix[(i + 2) * 2 + 1]); +// // result[i + 2] = GET_HIGH_S16(var5, var6); +// // result[i + 10] = GET_LOW_S16(var5, var6); +// // var7 = (s32)(D_80032310[0] * matrix[(i + 3) * 2 + 0]); +// // var8 = (s32)(D_80032310[1] * matrix[(i + 3) * 2 + 1]); +// // result[i + 3] = GET_HIGH_S16(var7, var8); +// // result[i + 11] = GET_LOW_S16(var7, var8); +// } +// } +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F058C9C +/* 08D7CC 7F058C9C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08D7D0 7F058CA0 AFB1000C */ sw $s1, 0xc($sp) +/* 08D7D4 7F058CA4 AFB30014 */ sw $s3, 0x14($sp) +/* 08D7D8 7F058CA8 AFB20010 */ sw $s2, 0x10($sp) +/* 08D7DC 7F058CAC 3C118003 */ lui $s1, %hi(D_80032310) +/* 08D7E0 7F058CB0 AFB00008 */ sw $s0, 8($sp) +/* 08D7E4 7F058CB4 26312310 */ addiu $s1, %lo(D_80032310) # addiu $s1, $s1, 0x2310 +/* 08D7E8 7F058CB8 3C12FFFF */ lui $s2, 0xffff +/* 08D7EC 7F058CBC 24130008 */ li $s3, 8 +/* 08D7F0 7F058CC0 00001025 */ move $v0, $zero +/* 08D7F4 7F058CC4 00A05825 */ move $t3, $a1 +.L7F058CC8: +/* 08D7F8 7F058CC8 C6320000 */ lwc1 $f18, ($s1) +/* 08D7FC 7F058CCC 000278C0 */ sll $t7, $v0, 3 +/* 08D800 7F058CD0 008F5021 */ addu $t2, $a0, $t7 +/* 08D804 7F058CD4 C5500000 */ lwc1 $f16, ($t2) +/* 08D808 7F058CD8 C54E0004 */ lwc1 $f14, 4($t2) +/* 08D80C 7F058CDC 30590001 */ andi $t9, $v0, 1 +/* 08D810 7F058CE0 46109402 */ mul.s $f16, $f18, $f16 +/* 08D814 7F058CE4 00197080 */ sll $t6, $t9, 2 +/* 08D818 7F058CE8 022E7821 */ addu $t7, $s1, $t6 +/* 08D81C 7F058CEC C5F20000 */ lwc1 $f18, ($t7) +/* 08D820 7F058CF0 24470001 */ addiu $a3, $v0, 1 +/* 08D824 7F058CF4 24480002 */ addiu $t0, $v0, 2 +/* 08D828 7F058CF8 460E9382 */ mul.s $f14, $f18, $f14 +/* 08D82C 7F058CFC 4600840D */ trunc.w.s $f16, $f16 +/* 08D830 7F058D00 24490003 */ addiu $t1, $v0, 3 +/* 08D834 7F058D04 24420004 */ addiu $v0, $v0, 4 +/* 08D838 7F058D08 256B0010 */ addiu $t3, $t3, 0x10 +/* 08D83C 7F058D0C 44038000 */ mfc1 $v1, $f16 +/* 08D840 7F058D10 4600738D */ trunc.w.s $f14, $f14 +/* 08D844 7F058D14 0072C824 */ and $t9, $v1, $s2 +/* 08D848 7F058D18 0003C400 */ sll $t8, $v1, 0x10 +/* 08D84C 7F058D1C 44067000 */ mfc1 $a2, $f14 +/* 08D850 7F058D20 00000000 */ nop +/* 08D854 7F058D24 00067402 */ srl $t6, $a2, 0x10 +/* 08D858 7F058D28 032E7825 */ or $t7, $t9, $t6 +/* 08D85C 7F058D2C AD6FFFF0 */ sw $t7, -0x10($t3) +/* 08D860 7F058D30 30D9FFFF */ andi $t9, $a2, 0xffff +/* 08D864 7F058D34 03197025 */ or $t6, $t8, $t9 +/* 08D868 7F058D38 AD6E0010 */ sw $t6, 0x10($t3) +/* 08D86C 7F058D3C C62E0000 */ lwc1 $f14, ($s1) +/* 08D870 7F058D40 0007C0C0 */ sll $t8, $a3, 3 +/* 08D874 7F058D44 00986021 */ addu $t4, $a0, $t8 +/* 08D878 7F058D48 C5900000 */ lwc1 $f16, ($t4) +/* 08D87C 7F058D4C C5920004 */ lwc1 $f18, 4($t4) +/* 08D880 7F058D50 30EE0001 */ andi $t6, $a3, 1 +/* 08D884 7F058D54 46107402 */ mul.s $f16, $f14, $f16 +/* 08D888 7F058D58 000E7880 */ sll $t7, $t6, 2 +/* 08D88C 7F058D5C 022FC021 */ addu $t8, $s1, $t7 +/* 08D890 7F058D60 C70E0000 */ lwc1 $f14, ($t8) +/* 08D894 7F058D64 46127482 */ mul.s $f18, $f14, $f18 +/* 08D898 7F058D68 4600840D */ trunc.w.s $f16, $f16 +/* 08D89C 7F058D6C 44038000 */ mfc1 $v1, $f16 +/* 08D8A0 7F058D70 4600948D */ trunc.w.s $f18, $f18 +/* 08D8A4 7F058D74 00727024 */ and $t6, $v1, $s2 +/* 08D8A8 7F058D78 0003CC00 */ sll $t9, $v1, 0x10 +/* 08D8AC 7F058D7C 44069000 */ mfc1 $a2, $f18 +/* 08D8B0 7F058D80 00000000 */ nop +/* 08D8B4 7F058D84 00067C02 */ srl $t7, $a2, 0x10 +/* 08D8B8 7F058D88 01CFC025 */ or $t8, $t6, $t7 +/* 08D8BC 7F058D8C AD78FFF4 */ sw $t8, -0xc($t3) +/* 08D8C0 7F058D90 30CEFFFF */ andi $t6, $a2, 0xffff +/* 08D8C4 7F058D94 032E7825 */ or $t7, $t9, $t6 +/* 08D8C8 7F058D98 AD6F0014 */ sw $t7, 0x14($t3) +/* 08D8CC 7F058D9C C6320000 */ lwc1 $f18, ($s1) +/* 08D8D0 7F058DA0 0008C8C0 */ sll $t9, $t0, 3 +/* 08D8D4 7F058DA4 00996821 */ addu $t5, $a0, $t9 +/* 08D8D8 7F058DA8 C5B00000 */ lwc1 $f16, ($t5) +/* 08D8DC 7F058DAC C5AE0004 */ lwc1 $f14, 4($t5) +/* 08D8E0 7F058DB0 310F0001 */ andi $t7, $t0, 1 +/* 08D8E4 7F058DB4 46109402 */ mul.s $f16, $f18, $f16 +/* 08D8E8 7F058DB8 000FC080 */ sll $t8, $t7, 2 +/* 08D8EC 7F058DBC 0238C821 */ addu $t9, $s1, $t8 +/* 08D8F0 7F058DC0 C7320000 */ lwc1 $f18, ($t9) +/* 08D8F4 7F058DC4 460E9382 */ mul.s $f14, $f18, $f14 +/* 08D8F8 7F058DC8 4600840D */ trunc.w.s $f16, $f16 +/* 08D8FC 7F058DCC 44038000 */ mfc1 $v1, $f16 +/* 08D900 7F058DD0 4600738D */ trunc.w.s $f14, $f14 +/* 08D904 7F058DD4 00727824 */ and $t7, $v1, $s2 +/* 08D908 7F058DD8 00037400 */ sll $t6, $v1, 0x10 +/* 08D90C 7F058DDC 44067000 */ mfc1 $a2, $f14 +/* 08D910 7F058DE0 00000000 */ nop +/* 08D914 7F058DE4 0006C402 */ srl $t8, $a2, 0x10 +/* 08D918 7F058DE8 01F8C825 */ or $t9, $t7, $t8 +/* 08D91C 7F058DEC 30CFFFFF */ andi $t7, $a2, 0xffff +/* 08D920 7F058DF0 AD79FFF8 */ sw $t9, -8($t3) +/* 08D924 7F058DF4 01CFC025 */ or $t8, $t6, $t7 +/* 08D928 7F058DF8 AD780018 */ sw $t8, 0x18($t3) +/* 08D92C 7F058DFC C62E0000 */ lwc1 $f14, ($s1) +/* 08D930 7F058E00 000970C0 */ sll $t6, $t1, 3 +/* 08D934 7F058E04 008E8021 */ addu $s0, $a0, $t6 +/* 08D938 7F058E08 C6100000 */ lwc1 $f16, ($s0) +/* 08D93C 7F058E0C C6120004 */ lwc1 $f18, 4($s0) +/* 08D940 7F058E10 31380001 */ andi $t8, $t1, 1 +/* 08D944 7F058E14 46107402 */ mul.s $f16, $f14, $f16 +/* 08D948 7F058E18 0018C880 */ sll $t9, $t8, 2 +/* 08D94C 7F058E1C 02397021 */ addu $t6, $s1, $t9 +/* 08D950 7F058E20 C5CE0000 */ lwc1 $f14, ($t6) +/* 08D954 7F058E24 46127482 */ mul.s $f18, $f14, $f18 +/* 08D958 7F058E28 4600840D */ trunc.w.s $f16, $f16 +/* 08D95C 7F058E2C 44038000 */ mfc1 $v1, $f16 +/* 08D960 7F058E30 4600948D */ trunc.w.s $f18, $f18 +/* 08D964 7F058E34 0072C024 */ and $t8, $v1, $s2 +/* 08D968 7F058E38 00037C00 */ sll $t7, $v1, 0x10 +/* 08D96C 7F058E3C 44069000 */ mfc1 $a2, $f18 +/* 08D970 7F058E40 00000000 */ nop +/* 08D974 7F058E44 0006CC02 */ srl $t9, $a2, 0x10 +/* 08D978 7F058E48 03197025 */ or $t6, $t8, $t9 +/* 08D97C 7F058E4C 30D8FFFF */ andi $t8, $a2, 0xffff +/* 08D980 7F058E50 01F8C825 */ or $t9, $t7, $t8 +/* 08D984 7F058E54 AD6EFFFC */ sw $t6, -4($t3) +/* 08D988 7F058E58 1453FF9B */ bne $v0, $s3, .L7F058CC8 +/* 08D98C 7F058E5C AD79001C */ sw $t9, 0x1c($t3) +/* 08D990 7F058E60 8FB00008 */ lw $s0, 8($sp) +/* 08D994 7F058E64 8FB1000C */ lw $s1, 0xc($sp) +/* 08D998 7F058E68 8FB20010 */ lw $s2, 0x10($sp) +/* 08D99C 7F058E6C 8FB30014 */ lw $s3, 0x14($sp) +/* 08D9A0 7F058E70 03E00008 */ jr $ra +/* 08D9A4 7F058E74 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F058E78(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F058E78 +/* 08D9A8 7F058E78 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08D9AC 7F058E7C AFB20010 */ sw $s2, 0x10($sp) +/* 08D9B0 7F058E80 AFB30014 */ sw $s3, 0x14($sp) +/* 08D9B4 7F058E84 AFB1000C */ sw $s1, 0xc($sp) +/* 08D9B8 7F058E88 3C128003 */ lui $s2, %hi(D_80032310) +/* 08D9BC 7F058E8C AFB00008 */ sw $s0, 8($sp) +/* 08D9C0 7F058E90 26522310 */ addiu $s2, %lo(D_80032310) # addiu $s2, $s2, 0x2310 +/* 08D9C4 7F058E94 3C11FFFF */ lui $s1, 0xffff +/* 08D9C8 7F058E98 24130008 */ li $s3, 8 +/* 08D9CC 7F058E9C 00001025 */ move $v0, $zero +/* 08D9D0 7F058EA0 00805025 */ move $t2, $a0 +.L7F058EA4: +/* 08D9D4 7F058EA4 8D430000 */ lw $v1, ($t2) +/* 08D9D8 7F058EA8 8D460020 */ lw $a2, 0x20($t2) +/* 08D9DC 7F058EAC C6480000 */ lwc1 $f8, ($s2) +/* 08D9E0 7F058EB0 0071C024 */ and $t8, $v1, $s1 +/* 08D9E4 7F058EB4 0006CC02 */ srl $t9, $a2, 0x10 +/* 08D9E8 7F058EB8 03197025 */ or $t6, $t8, $t9 +/* 08D9EC 7F058EBC 448E2000 */ mtc1 $t6, $f4 +/* 08D9F0 7F058EC0 000278C0 */ sll $t7, $v0, 3 +/* 08D9F4 7F058EC4 00AF5821 */ addu $t3, $a1, $t7 +/* 08D9F8 7F058EC8 468021A0 */ cvt.s.w $f6, $f4 +/* 08D9FC 7F058ECC 00037C00 */ sll $t7, $v1, 0x10 +/* 08DA00 7F058ED0 30D8FFFF */ andi $t8, $a2, 0xffff +/* 08DA04 7F058ED4 01F8C825 */ or $t9, $t7, $t8 +/* 08DA08 7F058ED8 44998000 */ mtc1 $t9, $f16 +/* 08DA0C 7F058EDC 304E0001 */ andi $t6, $v0, 1 +/* 08DA10 7F058EE0 46083283 */ div.s $f10, $f6, $f8 +/* 08DA14 7F058EE4 000E7880 */ sll $t7, $t6, 2 +/* 08DA18 7F058EE8 024FC021 */ addu $t8, $s2, $t7 +/* 08DA1C 7F058EEC 24470001 */ addiu $a3, $v0, 1 +/* 08DA20 7F058EF0 468084A0 */ cvt.s.w $f18, $f16 +/* 08DA24 7F058EF4 000770C0 */ sll $t6, $a3, 3 +/* 08DA28 7F058EF8 00AE6021 */ addu $t4, $a1, $t6 +/* 08DA2C 7F058EFC 24480002 */ addiu $t0, $v0, 2 +/* 08DA30 7F058F00 24490003 */ addiu $t1, $v0, 3 +/* 08DA34 7F058F04 24420004 */ addiu $v0, $v0, 4 +/* 08DA38 7F058F08 254A0010 */ addiu $t2, $t2, 0x10 +/* 08DA3C 7F058F0C E56A0000 */ swc1 $f10, ($t3) +/* 08DA40 7F058F10 C7040000 */ lwc1 $f4, ($t8) +/* 08DA44 7F058F14 46049183 */ div.s $f6, $f18, $f4 +/* 08DA48 7F058F18 E5660004 */ swc1 $f6, 4($t3) +/* 08DA4C 7F058F1C 8D460014 */ lw $a2, 0x14($t2) +/* 08DA50 7F058F20 8D43FFF4 */ lw $v1, -0xc($t2) +/* 08DA54 7F058F24 C6500000 */ lwc1 $f16, ($s2) +/* 08DA58 7F058F28 0006C402 */ srl $t8, $a2, 0x10 +/* 08DA5C 7F058F2C 00717824 */ and $t7, $v1, $s1 +/* 08DA60 7F058F30 01F8C825 */ or $t9, $t7, $t8 +/* 08DA64 7F058F34 44994000 */ mtc1 $t9, $f8 +/* 08DA68 7F058F38 30CFFFFF */ andi $t7, $a2, 0xffff +/* 08DA6C 7F058F3C 00037400 */ sll $t6, $v1, 0x10 +/* 08DA70 7F058F40 468042A0 */ cvt.s.w $f10, $f8 +/* 08DA74 7F058F44 01CFC025 */ or $t8, $t6, $t7 +/* 08DA78 7F058F48 44982000 */ mtc1 $t8, $f4 +/* 08DA7C 7F058F4C 30F90001 */ andi $t9, $a3, 1 +/* 08DA80 7F058F50 00197080 */ sll $t6, $t9, 2 +/* 08DA84 7F058F54 468021A0 */ cvt.s.w $f6, $f4 +/* 08DA88 7F058F58 024E7821 */ addu $t7, $s2, $t6 +/* 08DA8C 7F058F5C 0008C8C0 */ sll $t9, $t0, 3 +/* 08DA90 7F058F60 00B96821 */ addu $t5, $a1, $t9 +/* 08DA94 7F058F64 46105483 */ div.s $f18, $f10, $f16 +/* 08DA98 7F058F68 E5920000 */ swc1 $f18, ($t4) +/* 08DA9C 7F058F6C C5E80000 */ lwc1 $f8, ($t7) +/* 08DAA0 7F058F70 46083283 */ div.s $f10, $f6, $f8 +/* 08DAA4 7F058F74 E58A0004 */ swc1 $f10, 4($t4) +/* 08DAA8 7F058F78 8D460018 */ lw $a2, 0x18($t2) +/* 08DAAC 7F058F7C 8D43FFF8 */ lw $v1, -8($t2) +/* 08DAB0 7F058F80 C6440000 */ lwc1 $f4, ($s2) +/* 08DAB4 7F058F84 00067C02 */ srl $t7, $a2, 0x10 +/* 08DAB8 7F058F88 00717024 */ and $t6, $v1, $s1 +/* 08DABC 7F058F8C 01CFC025 */ or $t8, $t6, $t7 +/* 08DAC0 7F058F90 44988000 */ mtc1 $t8, $f16 +/* 08DAC4 7F058F94 30CEFFFF */ andi $t6, $a2, 0xffff +/* 08DAC8 7F058F98 0003CC00 */ sll $t9, $v1, 0x10 +/* 08DACC 7F058F9C 468084A0 */ cvt.s.w $f18, $f16 +/* 08DAD0 7F058FA0 032E7825 */ or $t7, $t9, $t6 +/* 08DAD4 7F058FA4 448F4000 */ mtc1 $t7, $f8 +/* 08DAD8 7F058FA8 31180001 */ andi $t8, $t0, 1 +/* 08DADC 7F058FAC 0018C880 */ sll $t9, $t8, 2 +/* 08DAE0 7F058FB0 468042A0 */ cvt.s.w $f10, $f8 +/* 08DAE4 7F058FB4 02597021 */ addu $t6, $s2, $t9 +/* 08DAE8 7F058FB8 0009C0C0 */ sll $t8, $t1, 3 +/* 08DAEC 7F058FBC 00B88021 */ addu $s0, $a1, $t8 +/* 08DAF0 7F058FC0 46049183 */ div.s $f6, $f18, $f4 +/* 08DAF4 7F058FC4 E5A60000 */ swc1 $f6, ($t5) +/* 08DAF8 7F058FC8 C5D00000 */ lwc1 $f16, ($t6) +/* 08DAFC 7F058FCC 46105483 */ div.s $f18, $f10, $f16 +/* 08DB00 7F058FD0 E5B20004 */ swc1 $f18, 4($t5) +/* 08DB04 7F058FD4 8D46001C */ lw $a2, 0x1c($t2) +/* 08DB08 7F058FD8 8D43FFFC */ lw $v1, -4($t2) +/* 08DB0C 7F058FDC C6480000 */ lwc1 $f8, ($s2) +/* 08DB10 7F058FE0 00067402 */ srl $t6, $a2, 0x10 +/* 08DB14 7F058FE4 0071C824 */ and $t9, $v1, $s1 +/* 08DB18 7F058FE8 032E7825 */ or $t7, $t9, $t6 +/* 08DB1C 7F058FEC 448F2000 */ mtc1 $t7, $f4 +/* 08DB20 7F058FF0 30D9FFFF */ andi $t9, $a2, 0xffff +/* 08DB24 7F058FF4 0003C400 */ sll $t8, $v1, 0x10 +/* 08DB28 7F058FF8 468021A0 */ cvt.s.w $f6, $f4 +/* 08DB2C 7F058FFC 03197025 */ or $t6, $t8, $t9 +/* 08DB30 7F059000 448E8000 */ mtc1 $t6, $f16 +/* 08DB34 7F059004 312F0001 */ andi $t7, $t1, 1 +/* 08DB38 7F059008 000FC080 */ sll $t8, $t7, 2 +/* 08DB3C 7F05900C 468084A0 */ cvt.s.w $f18, $f16 +/* 08DB40 7F059010 0258C821 */ addu $t9, $s2, $t8 +/* 08DB44 7F059014 46083283 */ div.s $f10, $f6, $f8 +/* 08DB48 7F059018 E60A0000 */ swc1 $f10, ($s0) +/* 08DB4C 7F05901C C7240000 */ lwc1 $f4, ($t9) +/* 08DB50 7F059020 46049183 */ div.s $f6, $f18, $f4 +/* 08DB54 7F059024 1453FF9F */ bne $v0, $s3, .L7F058EA4 +/* 08DB58 7F059028 E6060004 */ swc1 $f6, 4($s0) +/* 08DB5C 7F05902C 8FB00008 */ lw $s0, 8($sp) +/* 08DB60 7F059030 8FB1000C */ lw $s1, 0xc($sp) +/* 08DB64 7F059034 8FB20010 */ lw $s2, 0x10($sp) +/* 08DB68 7F059038 8FB30014 */ lw $s3, 0x14($sp) +/* 08DB6C 7F05903C 03E00008 */ jr $ra +/* 08DB70 7F059040 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F059044(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F059044 +/* 08DB74 7F059044 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 08DB78 7F059048 00803025 */ move $a2, $a0 +/* 08DB7C 7F05904C 44810000 */ mtc1 $at, $f0 +/* 08DB80 7F059050 24040004 */ li $a0, 4 +/* 08DB84 7F059054 00001025 */ move $v0, $zero +/* 08DB88 7F059058 00A01825 */ move $v1, $a1 +/* 08DB8C 7F05905C C4D00000 */ lwc1 $f16, ($a2) +/* 08DB90 7F059060 24420001 */ addiu $v0, $v0, 1 +/* 08DB94 7F059064 46008482 */ mul.s $f18, $f16, $f0 +/* 08DB98 7F059068 5044001F */ beql $v0, $a0, .L7F0590E8 +/* 08DB9C 7F05906C 4600940D */ trunc.w.s $f16, $f18 +/* 08DBA0 7F059070 4600940D */ trunc.w.s $f16, $f18 +.L7F059074: +/* 08DBA4 7F059074 24420001 */ addiu $v0, $v0, 1 +/* 08DBA8 7F059078 24630010 */ addiu $v1, $v1, 0x10 +/* 08DBAC 7F05907C 24C60010 */ addiu $a2, $a2, 0x10 +/* 08DBB0 7F059080 440F8000 */ mfc1 $t7, $f16 +/* 08DBB4 7F059084 00000000 */ nop +/* 08DBB8 7F059088 AC6FFFF0 */ sw $t7, -0x10($v1) +/* 08DBBC 7F05908C C4D0FFF4 */ lwc1 $f16, -0xc($a2) +/* 08DBC0 7F059090 46008402 */ mul.s $f16, $f16, $f0 +/* 08DBC4 7F059094 4600840D */ trunc.w.s $f16, $f16 +/* 08DBC8 7F059098 44198000 */ mfc1 $t9, $f16 +/* 08DBCC 7F05909C 00000000 */ nop +/* 08DBD0 7F0590A0 AC79FFF4 */ sw $t9, -0xc($v1) +/* 08DBD4 7F0590A4 C4D0FFF8 */ lwc1 $f16, -8($a2) +/* 08DBD8 7F0590A8 46008402 */ mul.s $f16, $f16, $f0 +/* 08DBDC 7F0590AC 4600840D */ trunc.w.s $f16, $f16 +/* 08DBE0 7F0590B0 44098000 */ mfc1 $t1, $f16 +/* 08DBE4 7F0590B4 00000000 */ nop +/* 08DBE8 7F0590B8 AC69FFF8 */ sw $t1, -8($v1) +/* 08DBEC 7F0590BC C4D0FFFC */ lwc1 $f16, -4($a2) +/* 08DBF0 7F0590C0 46008402 */ mul.s $f16, $f16, $f0 +/* 08DBF4 7F0590C4 4600840D */ trunc.w.s $f16, $f16 +/* 08DBF8 7F0590C8 440B8000 */ mfc1 $t3, $f16 +/* 08DBFC 7F0590CC 00000000 */ nop +/* 08DC00 7F0590D0 AC6BFFFC */ sw $t3, -4($v1) +/* 08DC04 7F0590D4 C4D00000 */ lwc1 $f16, ($a2) +/* 08DC08 7F0590D8 46008482 */ mul.s $f18, $f16, $f0 +/* 08DC0C 7F0590DC 5444FFE5 */ bnel $v0, $a0, .L7F059074 +/* 08DC10 7F0590E0 4600940D */ trunc.w.s $f16, $f18 +/* 08DC14 7F0590E4 4600940D */ trunc.w.s $f16, $f18 +.L7F0590E8: +/* 08DC18 7F0590E8 24630010 */ addiu $v1, $v1, 0x10 +/* 08DC1C 7F0590EC 24C60010 */ addiu $a2, $a2, 0x10 +/* 08DC20 7F0590F0 440F8000 */ mfc1 $t7, $f16 +/* 08DC24 7F0590F4 00000000 */ nop +/* 08DC28 7F0590F8 AC6FFFF0 */ sw $t7, -0x10($v1) +/* 08DC2C 7F0590FC C4D0FFF4 */ lwc1 $f16, -0xc($a2) +/* 08DC30 7F059100 46008402 */ mul.s $f16, $f16, $f0 +/* 08DC34 7F059104 4600840D */ trunc.w.s $f16, $f16 +/* 08DC38 7F059108 44198000 */ mfc1 $t9, $f16 +/* 08DC3C 7F05910C 00000000 */ nop +/* 08DC40 7F059110 AC79FFF4 */ sw $t9, -0xc($v1) +/* 08DC44 7F059114 C4D0FFF8 */ lwc1 $f16, -8($a2) +/* 08DC48 7F059118 46008402 */ mul.s $f16, $f16, $f0 +/* 08DC4C 7F05911C 4600840D */ trunc.w.s $f16, $f16 +/* 08DC50 7F059120 44098000 */ mfc1 $t1, $f16 +/* 08DC54 7F059124 00000000 */ nop +/* 08DC58 7F059128 AC69FFF8 */ sw $t1, -8($v1) +/* 08DC5C 7F05912C C4D0FFFC */ lwc1 $f16, -4($a2) +/* 08DC60 7F059130 46008402 */ mul.s $f16, $f16, $f0 +/* 08DC64 7F059134 4600840D */ trunc.w.s $f16, $f16 +/* 08DC68 7F059138 440B8000 */ mfc1 $t3, $f16 +/* 08DC6C 7F05913C 00000000 */ nop +/* 08DC70 7F059140 AC6BFFFC */ sw $t3, -4($v1) +/* 08DC74 7F059144 03E00008 */ jr $ra +/* 08DC78 7F059148 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05914C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05914C +/* 08DC7C 7F05914C 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 08DC80 7F059150 00803025 */ move $a2, $a0 +/* 08DC84 7F059154 44810000 */ mtc1 $at, $f0 +/* 08DC88 7F059158 24040004 */ li $a0, 4 +/* 08DC8C 7F05915C 00001025 */ move $v0, $zero +/* 08DC90 7F059160 00A01825 */ move $v1, $a1 +/* 08DC94 7F059164 24420001 */ addiu $v0, $v0, 1 +/* 08DC98 7F059168 1044001C */ beq $v0, $a0, .L7F0591DC +/* 08DC9C 7F05916C 8CCE0000 */ lw $t6, ($a2) +.L7F059170: +/* 08DCA0 7F059170 448E9000 */ mtc1 $t6, $f18 +/* 08DCA4 7F059174 24420001 */ addiu $v0, $v0, 1 +/* 08DCA8 7F059178 24630010 */ addiu $v1, $v1, 0x10 +/* 08DCAC 7F05917C 468094A0 */ cvt.s.w $f18, $f18 +/* 08DCB0 7F059180 24C60010 */ addiu $a2, $a2, 0x10 +/* 08DCB4 7F059184 46009483 */ div.s $f18, $f18, $f0 +/* 08DCB8 7F059188 E472FFF0 */ swc1 $f18, -0x10($v1) +/* 08DCBC 7F05918C 8CCFFFF4 */ lw $t7, -0xc($a2) +/* 08DCC0 7F059190 448F9000 */ mtc1 $t7, $f18 +/* 08DCC4 7F059194 00000000 */ nop +/* 08DCC8 7F059198 468094A0 */ cvt.s.w $f18, $f18 +/* 08DCCC 7F05919C 46009483 */ div.s $f18, $f18, $f0 +/* 08DCD0 7F0591A0 E472FFF4 */ swc1 $f18, -0xc($v1) +/* 08DCD4 7F0591A4 8CD8FFF8 */ lw $t8, -8($a2) +/* 08DCD8 7F0591A8 44989000 */ mtc1 $t8, $f18 +/* 08DCDC 7F0591AC 00000000 */ nop +/* 08DCE0 7F0591B0 468094A0 */ cvt.s.w $f18, $f18 +/* 08DCE4 7F0591B4 46009483 */ div.s $f18, $f18, $f0 +/* 08DCE8 7F0591B8 E472FFF8 */ swc1 $f18, -8($v1) +/* 08DCEC 7F0591BC 8CD9FFFC */ lw $t9, -4($a2) +/* 08DCF0 7F0591C0 44999000 */ mtc1 $t9, $f18 +/* 08DCF4 7F0591C4 00000000 */ nop +/* 08DCF8 7F0591C8 468094A0 */ cvt.s.w $f18, $f18 +/* 08DCFC 7F0591CC 46009483 */ div.s $f18, $f18, $f0 +/* 08DD00 7F0591D0 E472FFFC */ swc1 $f18, -4($v1) +/* 08DD04 7F0591D4 1444FFE6 */ bne $v0, $a0, .L7F059170 +/* 08DD08 7F0591D8 8CCE0000 */ lw $t6, ($a2) +.L7F0591DC: +/* 08DD0C 7F0591DC 448E9000 */ mtc1 $t6, $f18 +/* 08DD10 7F0591E0 24630010 */ addiu $v1, $v1, 0x10 +/* 08DD14 7F0591E4 24C60010 */ addiu $a2, $a2, 0x10 +/* 08DD18 7F0591E8 468094A0 */ cvt.s.w $f18, $f18 +/* 08DD1C 7F0591EC 46009483 */ div.s $f18, $f18, $f0 +/* 08DD20 7F0591F0 E472FFF0 */ swc1 $f18, -0x10($v1) +/* 08DD24 7F0591F4 8CCFFFF4 */ lw $t7, -0xc($a2) +/* 08DD28 7F0591F8 448F9000 */ mtc1 $t7, $f18 +/* 08DD2C 7F0591FC 00000000 */ nop +/* 08DD30 7F059200 468094A0 */ cvt.s.w $f18, $f18 +/* 08DD34 7F059204 46009483 */ div.s $f18, $f18, $f0 +/* 08DD38 7F059208 E472FFF4 */ swc1 $f18, -0xc($v1) +/* 08DD3C 7F05920C 8CD8FFF8 */ lw $t8, -8($a2) +/* 08DD40 7F059210 44989000 */ mtc1 $t8, $f18 +/* 08DD44 7F059214 00000000 */ nop +/* 08DD48 7F059218 468094A0 */ cvt.s.w $f18, $f18 +/* 08DD4C 7F05921C 46009483 */ div.s $f18, $f18, $f0 +/* 08DD50 7F059220 E472FFF8 */ swc1 $f18, -8($v1) +/* 08DD54 7F059224 8CD9FFFC */ lw $t9, -4($a2) +/* 08DD58 7F059228 44999000 */ mtc1 $t9, $f18 +/* 08DD5C 7F05922C 00000000 */ nop +/* 08DD60 7F059230 468094A0 */ cvt.s.w $f18, $f18 +/* 08DD64 7F059234 46009483 */ div.s $f18, $f18, $f0 +/* 08DD68 7F059238 E472FFFC */ swc1 $f18, -4($v1) +/* 08DD6C 7F05923C 03E00008 */ jr $ra +/* 08DD70 7F059240 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F059244(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F059244 +/* 08DD74 7F059244 00001025 */ move $v0, $zero +/* 08DD78 7F059248 00A04025 */ move $t0, $a1 +/* 08DD7C 7F05924C 240D0008 */ li $t5, 8 +/* 08DD80 7F059250 3C0CFFFF */ lui $t4, 0xffff +.L7F059254: +/* 08DD84 7F059254 000278C0 */ sll $t7, $v0, 3 +/* 08DD88 7F059258 008F3821 */ addu $a3, $a0, $t7 +/* 08DD8C 7F05925C 8CE30000 */ lw $v1, ($a3) +/* 08DD90 7F059260 8CE60004 */ lw $a2, 4($a3) +/* 08DD94 7F059264 25080010 */ addiu $t0, $t0, 0x10 +/* 08DD98 7F059268 006CC024 */ and $t8, $v1, $t4 +/* 08DD9C 7F05926C 0006CC02 */ srl $t9, $a2, 0x10 +/* 08DDA0 7F059270 03197025 */ or $t6, $t8, $t9 +/* 08DDA4 7F059274 00037C00 */ sll $t7, $v1, 0x10 +/* 08DDA8 7F059278 30D8FFFF */ andi $t8, $a2, 0xffff +/* 08DDAC 7F05927C 01F8C825 */ or $t9, $t7, $t8 +/* 08DDB0 7F059280 244F0001 */ addiu $t7, $v0, 1 +/* 08DDB4 7F059284 000FC0C0 */ sll $t8, $t7, 3 +/* 08DDB8 7F059288 00984821 */ addu $t1, $a0, $t8 +/* 08DDBC 7F05928C AD0EFFF0 */ sw $t6, -0x10($t0) +/* 08DDC0 7F059290 AD190010 */ sw $t9, 0x10($t0) +/* 08DDC4 7F059294 8D260004 */ lw $a2, 4($t1) +/* 08DDC8 7F059298 8D230000 */ lw $v1, ($t1) +/* 08DDCC 7F05929C 00067402 */ srl $t6, $a2, 0x10 +/* 08DDD0 7F0592A0 006CC824 */ and $t9, $v1, $t4 +/* 08DDD4 7F0592A4 032E7825 */ or $t7, $t9, $t6 +/* 08DDD8 7F0592A8 30D9FFFF */ andi $t9, $a2, 0xffff +/* 08DDDC 7F0592AC 0003C400 */ sll $t8, $v1, 0x10 +/* 08DDE0 7F0592B0 03197025 */ or $t6, $t8, $t9 +/* 08DDE4 7F0592B4 24580002 */ addiu $t8, $v0, 2 +/* 08DDE8 7F0592B8 0018C8C0 */ sll $t9, $t8, 3 +/* 08DDEC 7F0592BC 00995021 */ addu $t2, $a0, $t9 +/* 08DDF0 7F0592C0 AD0E0014 */ sw $t6, 0x14($t0) +/* 08DDF4 7F0592C4 AD0FFFF4 */ sw $t7, -0xc($t0) +/* 08DDF8 7F0592C8 8D460004 */ lw $a2, 4($t2) +/* 08DDFC 7F0592CC 8D430000 */ lw $v1, ($t2) +/* 08DE00 7F0592D0 00067C02 */ srl $t7, $a2, 0x10 +/* 08DE04 7F0592D4 006C7024 */ and $t6, $v1, $t4 +/* 08DE08 7F0592D8 01CFC025 */ or $t8, $t6, $t7 +/* 08DE0C 7F0592DC 30CEFFFF */ andi $t6, $a2, 0xffff +/* 08DE10 7F0592E0 0003CC00 */ sll $t9, $v1, 0x10 +/* 08DE14 7F0592E4 032E7825 */ or $t7, $t9, $t6 +/* 08DE18 7F0592E8 24590003 */ addiu $t9, $v0, 3 +/* 08DE1C 7F0592EC 001970C0 */ sll $t6, $t9, 3 +/* 08DE20 7F0592F0 008E5821 */ addu $t3, $a0, $t6 +/* 08DE24 7F0592F4 AD0F0018 */ sw $t7, 0x18($t0) +/* 08DE28 7F0592F8 AD18FFF8 */ sw $t8, -8($t0) +/* 08DE2C 7F0592FC 8D660004 */ lw $a2, 4($t3) +/* 08DE30 7F059300 8D630000 */ lw $v1, ($t3) +/* 08DE34 7F059304 24420004 */ addiu $v0, $v0, 4 +/* 08DE38 7F059308 0006C402 */ srl $t8, $a2, 0x10 +/* 08DE3C 7F05930C 006C7824 */ and $t7, $v1, $t4 +/* 08DE40 7F059310 01F8C825 */ or $t9, $t7, $t8 +/* 08DE44 7F059314 30CFFFFF */ andi $t7, $a2, 0xffff +/* 08DE48 7F059318 00037400 */ sll $t6, $v1, 0x10 +/* 08DE4C 7F05931C 01CFC025 */ or $t8, $t6, $t7 +/* 08DE50 7F059320 AD18001C */ sw $t8, 0x1c($t0) +/* 08DE54 7F059324 144DFFCB */ bne $v0, $t5, .L7F059254 +/* 08DE58 7F059328 AD19FFFC */ sw $t9, -4($t0) +/* 08DE5C 7F05932C 03E00008 */ jr $ra +/* 08DE60 7F059330 00000000 */ nop +) +#endif + +/* +for ($v0 = 0; $v0 < 2; $v0++) { // pointers? + $a1[$v0 * 2 + 0][0] = $a0[$v0][0] & 0xFFFF0000 | ($a0[$v0 + 2][0] >> 16) + $a1[$v0 * 2 + 0][1] = $a0[$v0][0] << 16 | ($a0[$v0 + 2][0] & 0xFFFF) + $a1[$v0 * 2 + 0][2] = $a0[$v0][1] & 0xFFFF0000 | $a0[$v0 + 2][1] >> 16 + $a1[$v0 * 2 + 0][3] = $a0[$v0][1] << 16 | $a0[$v0 + 2][1] & 0xFFFF + $a1[$v0 * 2 + 1][0] = $a0[$v0][2] & 0xFFFF0000 | $a0[$v0 + 2][2] << 16 + $a1[$v0 * 2 + 1][1] = $a0[$v0][2] << 16 | $a0[$v0 + 2][2] & 0xFFFF + $a1[$v0 * 2 + 1][2] = $a0[$v0][3] & 0xFFFF0000 | $a0[$v0 + 2][3] >> 16 + $a1[$v0 * 2 + 1][3] = $a0[$v0][3] << 16 | $a0[$v0 + 2][3] & 0xffff +} + +*/ + +/* +$v0 = 0 +$a3 = $a0 +loop: + $v1 = *($a3) + $a2 = *($a3 + 0x20) + $t0 = $a1 + (($v0 + 0) * 8) + *($t0) = ($v1 & 0xFFFF0000) | ($a2 >> 16) + *($t0 + 0x4) = ($v1 << 16) | ($a2 & 0xFFFF) + $a2 = *($a3 + 0x24) + $v1 = *($a3 + 0x4) + $t1 = $a1 + (($v0 + 1) * 8) + *($t1 + 0) = $v1 & 0xFFFF0000 | $a2 >> 16 + *($t1 + 4) = $v1 << 16 | $a2 & 0xFFFF + $a2 = *($a3 + 0x28) + $v1 = *($a3 + 0x8) + $t2 = $a1 + (($v0 + 2) * 8) + *($t2 + 0) = $v1 & 0xFFFF0000 | $a2 << 16 + *($t2 + 4) = $v1 << 16 | $a2 & 0xFFFF + $a2 = *($a3 + 0x2C) + $v1 = *($a3 + 0xC) + $t3 = $a1 + (($v0 + 3) * 8) + $v0 += 4 + *($t3 + 0) = $v1 & 0xFFFF0000 | $a2 >> 16 + *($t3 + 4) = $v1 << 16 | $a2 & 0xffff + if ($v0 != 8) + { + $a3 += 0x10; + goto loop; + } +return + +*/ +//typedef s32 mat4s[4][4]; + +//void sub_GAME_7F059334(mat4s arg0, mat4s arg1) { +//sub_GAME_7F059334(s32* arg0, s32* arg1) { + //s32* var1 = arg0; + //s32* var2 = arg1; + //for (i = 0; i < 2; i++) { + // for (; var1 < (arg0 + 8); var1++, var2 += 4) + // var1 = arg0[i + 0][0]; + // var2 = arg0[i + 2][0]; + // arg1[i * 2 + 0][0] = ((var1 & 0xFFFF0000) | (var2 >> 16)); + // arg1[i * 2 + 0][1] = ((var1 << 16) | (var2 & 0xFFFF)); + // var1 = arg0[i + 0][1]; + // var2 = arg0[i + 2][1]; + // arg1[i * 2 + 0][2] = ((var1 & 0xFFFF0000) | (var2 >> 16)); + // arg1[i * 2 + 0][3] = ((var1 << 16) | (var2 & 0xFFFF)); + // var1 = arg0[i + 0][2]; + // var2 = arg0[i + 2][2]; + // arg1[i * 2 + 1][0] = ((var1 & 0xFFFF0000) | (var2 << 16)); + // arg1[i * 2 + 1][1] = ((var1 << 16) | (var2 & 0xFFFF)); + // var1 = arg0[i + 0][3]; + // var2 = arg0[i + 2][3]; + // arg1[i * 2 + 1][2] = ((var1 & 0xFFFF0000) | (var2 >> 16)); + // arg1[i * 2 + 1][3] = ((var1 << 16) | (var2 & 0xffff)); + // } + + // s32 var1; + // s32 var2; + // s32 i; + // for (i = 0; i < 2; i++) { + // var1 = arg0[i + 0][0]; + // var2 = arg0[i + 2][0]; + // arg1[i * 2 + 0][0] = ((var1 & 0xFFFF0000) | (var2 >> 16)); + // arg1[i * 2 + 0][1] = ((var1 << 16) | (var2 & 0xFFFF)); + // var1 = arg0[i + 0][1]; + // var2 = arg0[i + 2][1]; + // arg1[i * 2 + 0][2] = ((var1 & 0xFFFF0000) | (var2 >> 16)); + // arg1[i * 2 + 0][3] = ((var1 << 16) | (var2 & 0xFFFF)); + // var1 = arg0[i + 0][2]; + // var2 = arg0[i + 2][2]; + // arg1[i * 2 + 1][0] = ((var1 & 0xFFFF0000) | (var2 << 16)); + // arg1[i * 2 + 1][1] = ((var1 << 16) | (var2 & 0xFFFF)); + // var1 = arg0[i + 0][3]; + // var2 = arg0[i + 2][3]; + // arg1[i * 2 + 1][2] = ((var1 & 0xFFFF0000) | (var2 >> 16)); + // arg1[i * 2 + 1][3] = ((var1 << 16) | (var2 & 0xffff)); + // } + + // s32 temp_v1; + // s32 temp_v1_2; + // s32 temp_v1_3; + // s32 temp_v1_4; + // u32 temp_a2; + // u32 temp_a2_2; + // u32 temp_a2_3; + // u32 temp_a2_4; + // s32 i; + + // for (i = 0; i < 2; i++) { + // temp_v1 = arg0[i + 0][0]; + // temp_a2 = arg0[i + 2][0]; + // arg1[i * 2][0] = ((temp_v1 & 0xFFFF0000) | (temp_a2 >> 0x10)); + // arg1[i * 2][1] = ((temp_v1 << 0x10) | (temp_a2 & 0xFFFF)); + // temp_v1_2 = arg0[i + 0][1]; + // temp_a2_2 = arg0[i + 2][1]; + // arg1[i * 2][2] = ((temp_v1_2 & 0xFFFF0000) | (temp_a2_2 >> 0x10)); + // arg1[i * 2][3] = ((temp_v1_2 << 0x10) | (temp_a2_2 & 0xFFFF)); + // temp_v1_3 = arg0[i + 0][2]; + // temp_a2_3 = arg0[i + 2][2]; + // arg1[i * 2 + 1][0] = ((temp_v1_3 & 0xFFFF0000) | (temp_a2_3 >> 0x10)); + // arg1[i * 2 + 1][1] = ((temp_v1_3 << 0x10) | (temp_a2_3 & 0xFFFF)); + // temp_v1_4 = arg0[i + 0][3]; + // temp_a2_4 = arg0[i + 2][3]; + // arg1[i * 2 + 1][2] = ((temp_v1_4 & 0xFFFF0000) | (temp_a2_4 >> 0x10)); + // arg1[i * 2 + 1][3] = ((temp_v1_4 << 0x10) | (temp_a2_4 & 0xFFFF)); + // } +//} + +#ifdef NONMATCHING +void sub_GAME_7F059334(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F059334 +/* 08DE64 7F059334 00001025 */ move $v0, $zero +/* 08DE68 7F059338 00803825 */ move $a3, $a0 +/* 08DE6C 7F05933C 240D0008 */ li $t5, 8 +/* 08DE70 7F059340 3C0CFFFF */ lui $t4, 0xffff +.L7F059344: +/* 08DE74 7F059344 8CE30000 */ lw $v1, ($a3) +/* 08DE78 7F059348 8CE60020 */ lw $a2, 0x20($a3) +/* 08DE7C 7F05934C 000278C0 */ sll $t7, $v0, 3 +/* 08DE80 7F059350 006CC024 */ and $t8, $v1, $t4 +/* 08DE84 7F059354 0006CC02 */ srl $t9, $a2, 0x10 +/* 08DE88 7F059358 03197025 */ or $t6, $t8, $t9 +/* 08DE8C 7F05935C 00AF4021 */ addu $t0, $a1, $t7 +/* 08DE90 7F059360 00037C00 */ sll $t7, $v1, 0x10 +/* 08DE94 7F059364 30D8FFFF */ andi $t8, $a2, 0xffff +/* 08DE98 7F059368 01F8C825 */ or $t9, $t7, $t8 +/* 08DE9C 7F05936C AD0E0000 */ sw $t6, ($t0) +/* 08DEA0 7F059370 AD190004 */ sw $t9, 4($t0) +/* 08DEA4 7F059374 8CE60024 */ lw $a2, 0x24($a3) +/* 08DEA8 7F059378 8CE30004 */ lw $v1, 4($a3) +/* 08DEAC 7F05937C 244F0001 */ addiu $t7, $v0, 1 +/* 08DEB0 7F059380 000FC0C0 */ sll $t8, $t7, 3 +/* 08DEB4 7F059384 00067402 */ srl $t6, $a2, 0x10 +/* 08DEB8 7F059388 006CC824 */ and $t9, $v1, $t4 +/* 08DEBC 7F05938C 032E7825 */ or $t7, $t9, $t6 +/* 08DEC0 7F059390 00B84821 */ addu $t1, $a1, $t8 +/* 08DEC4 7F059394 30D9FFFF */ andi $t9, $a2, 0xffff +/* 08DEC8 7F059398 0003C400 */ sll $t8, $v1, 0x10 +/* 08DECC 7F05939C 03197025 */ or $t6, $t8, $t9 +/* 08DED0 7F0593A0 AD2E0004 */ sw $t6, 4($t1) +/* 08DED4 7F0593A4 AD2F0000 */ sw $t7, ($t1) +/* 08DED8 7F0593A8 8CE60028 */ lw $a2, 0x28($a3) +/* 08DEDC 7F0593AC 8CE30008 */ lw $v1, 8($a3) +/* 08DEE0 7F0593B0 24580002 */ addiu $t8, $v0, 2 +/* 08DEE4 7F0593B4 0018C8C0 */ sll $t9, $t8, 3 +/* 08DEE8 7F0593B8 00067C02 */ srl $t7, $a2, 0x10 +/* 08DEEC 7F0593BC 006C7024 */ and $t6, $v1, $t4 +/* 08DEF0 7F0593C0 01CFC025 */ or $t8, $t6, $t7 +/* 08DEF4 7F0593C4 00B95021 */ addu $t2, $a1, $t9 +/* 08DEF8 7F0593C8 30CEFFFF */ andi $t6, $a2, 0xffff +/* 08DEFC 7F0593CC 0003CC00 */ sll $t9, $v1, 0x10 +/* 08DF00 7F0593D0 032E7825 */ or $t7, $t9, $t6 +/* 08DF04 7F0593D4 AD4F0004 */ sw $t7, 4($t2) +/* 08DF08 7F0593D8 AD580000 */ sw $t8, ($t2) +/* 08DF0C 7F0593DC 8CE6002C */ lw $a2, 0x2c($a3) +/* 08DF10 7F0593E0 8CE3000C */ lw $v1, 0xc($a3) +/* 08DF14 7F0593E4 24590003 */ addiu $t9, $v0, 3 +/* 08DF18 7F0593E8 001970C0 */ sll $t6, $t9, 3 +/* 08DF1C 7F0593EC 0006C402 */ srl $t8, $a2, 0x10 +/* 08DF20 7F0593F0 006C7824 */ and $t7, $v1, $t4 +/* 08DF24 7F0593F4 01F8C825 */ or $t9, $t7, $t8 +/* 08DF28 7F0593F8 00AE5821 */ addu $t3, $a1, $t6 +/* 08DF2C 7F0593FC 30CFFFFF */ andi $t7, $a2, 0xffff +/* 08DF30 7F059400 00037400 */ sll $t6, $v1, 0x10 +/* 08DF34 7F059404 01CFC025 */ or $t8, $t6, $t7 +/* 08DF38 7F059408 24420004 */ addiu $v0, $v0, 4 +/* 08DF3C 7F05940C AD780004 */ sw $t8, 4($t3) +/* 08DF40 7F059410 AD790000 */ sw $t9, ($t3) +/* 08DF44 7F059414 144DFFCB */ bne $v0, $t5, .L7F059344 +/* 08DF48 7F059418 24E70010 */ addiu $a3, $a3, 0x10 +/* 08DF4C 7F05941C 03E00008 */ jr $ra +/* 08DF50 7F059420 00000000 */ nop +) +#endif + +void sub_GAME_7F059424(mat44 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, f32 arg9) { + f32 temp_f26; + f32 temp_f28; + f32 temp_f2_2; + f32 temp_f2_3; + f32 temp_f30; + f32 temp_f2 = -1.0f / sqrtf((arg4 * arg4) + (arg5 * arg5) + (arg6 * arg6)); + arg4 *= temp_f2; + arg5 *= temp_f2; + arg6 *= temp_f2; + temp_f26 = (arg8 * arg6) - (arg9 * arg5); + temp_f28 = (arg9 * arg4) - (arg7 * arg6); + temp_f30 = (arg7 * arg5) - (arg8 * arg4); + temp_f2_2 = 1.0f / sqrtf((temp_f26 * temp_f26) + (temp_f28 * temp_f28) + (temp_f30 * temp_f30)); + temp_f26 *= temp_f2_2; + temp_f28 *= temp_f2_2; + temp_f30 *= temp_f2_2; + arg7 = (arg5 * temp_f30) - (arg6 * temp_f28); + arg8 = (arg6 * temp_f26) - (arg4 * temp_f30); + arg9 = (arg4 * temp_f28) - (arg5 * temp_f26); + temp_f2_3 = 1.0f / sqrtf((arg7 * arg7) + (arg8 * arg8) + (arg9 * arg9)); + arg7 *= temp_f2_3; + arg8 *= temp_f2_3; + arg9 *= temp_f2_3; + arg0[0][0] = temp_f26; + arg0[1][0] = temp_f28; + arg0[2][0] = temp_f30; + arg0[3][0] = -((arg1 * temp_f26) + (arg2 * temp_f28) + (arg3 * temp_f30)); + arg0[0][1] = arg7; + arg0[1][1] = arg8; + arg0[2][1] = arg9; + arg0[3][1] = -((arg1 * arg7) + (arg2 * arg8) + (arg3 * arg9)); + arg0[0][2] = arg4; + arg0[1][2] = arg5; + arg0[2][2] = arg6; + arg0[3][2] = -((arg1 * arg4) + (arg2 * arg5) + (arg3 * arg6)); + arg0[0][3] = 0.0f; + arg0[1][3] = 0.0f; + arg0[2][3] = 0.0f; + arg0[3][3] = 1.0f; +} + +void sub_GAME_7F059424(mat44 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, f32 arg9); + +void sub_GAME_7F059694(mat44 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, f32 arg9) { + sub_GAME_7F059424(arg0, arg1, arg2, arg3, arg4 - arg1, arg5 - arg2, arg6 - arg3, arg7, arg8, arg9); +} + +void sub_GAME_7F059708(mat44 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, f32 arg9) { + f32 temp_f26; + f32 temp_f28; + f32 temp_f2_2; + f32 temp_f2_3; + f32 temp_f30; + f32 temp_f2 = -1.0f / sqrtf((arg4 * arg4) + (arg5 * arg5) + (arg6 * arg6)); + arg4 *= temp_f2; + arg5 *= temp_f2; + arg6 *= temp_f2; + temp_f26 = (arg8 * arg6) - (arg9 * arg5); + temp_f28 = (arg9 * arg4) - (arg7 * arg6); + temp_f30 = (arg7 * arg5) - (arg8 * arg4); + temp_f2_2 = 1.0f / sqrtf((temp_f26 * temp_f26) + (temp_f28 * temp_f28) + (temp_f30 * temp_f30)); + temp_f26 *= temp_f2_2; + temp_f28 *= temp_f2_2; + temp_f30 *= temp_f2_2; + arg7 = (arg5 * temp_f30) - (arg6 * temp_f28); + arg8 = (arg6 * temp_f26) - (arg4 * temp_f30); + arg9 = (arg4 * temp_f28) - (arg5 * temp_f26); + temp_f2_3 = 1.0f / sqrtf((arg7 * arg7) + (arg8 * arg8) + (arg9 * arg9)); + arg7 *= temp_f2_3; + arg8 *= temp_f2_3; + arg9 *= temp_f2_3; + arg0[0][0] = temp_f26; + arg0[1][0] = arg7; + arg0[2][0] = arg4; + arg0[3][0] = arg1; + arg0[0][1] = temp_f28; + arg0[1][1] = arg8; + arg0[2][1] = arg5; + arg0[3][1] = arg2; + arg0[0][2] = temp_f30; + arg0[1][2] = arg9; + arg0[2][2] = arg6; + arg0[3][2] = arg3; + arg0[0][3] = 0.0f; + arg0[1][3] = 0.0f; + arg0[2][3] = 0.0f; + arg0[3][3] = 1.0f; +} + +void sub_GAME_7F059908(mat44 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, f32 arg9) { + sub_GAME_7F059708(arg0, arg1, arg2, arg3, arg4 - arg1, arg5 - arg2, arg6 - arg3, arg7, arg8, arg9); +} + +#ifdef NONMATCHING +//< 8e568: 3043ffff andi v1,v0,0xffff +//--- +//> 8e568: 31e3ffff andi v1,t7,0xffff +//57,58c57,58 +//< 8e570: 03e00008 jr ra +//< 8e574: 00601025 move v0,v1 +//--- +//> 8e570: 00601025 move v0,v1 +//> 8e574: 03e00008 jr ra +s32 sub_GAME_7F05997C(f32 arg0, f32 arg1) { + f32 temp_f0; + u32 temp_v0; + s32 phi_v1; + + temp_f0 = arg0 + arg1; + if (temp_f0 <= 2.0f) { + return 0xFFFF; + } + temp_v0 = (u32) (131072.0f / temp_f0) & 0xFFFF; + phi_v1 = temp_v0 & 0xFFFF; + if ((s32)temp_v0 <= 0) { + phi_v1 = 1; + } + return phi_v1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05997C +/* 08E4AC 7F05997C 460E6000 */ add.s $f0, $f12, $f14 +/* 08E4B0 7F059980 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 08E4B4 7F059984 44812000 */ mtc1 $at, $f4 +/* 08E4B8 7F059988 3C014800 */ li $at, 0x48000000 # 131072.000000 +/* 08E4BC 7F05998C 4604003E */ c.le.s $f0, $f4 +/* 08E4C0 7F059990 00000000 */ nop +/* 08E4C4 7F059994 45020004 */ bc1fl .L7F0599A8 +/* 08E4C8 7F059998 44813000 */ mtc1 $at, $f6 +/* 08E4CC 7F05999C 03E00008 */ jr $ra +/* 08E4D0 7F0599A0 3402FFFF */ li $v0, 65535 + +/* 08E4D4 7F0599A4 44813000 */ mtc1 $at, $f6 +.L7F0599A8: +/* 08E4D8 7F0599A8 24020001 */ li $v0, 1 +/* 08E4DC 7F0599AC 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 08E4E0 7F0599B0 46003203 */ div.s $f8, $f6, $f0 +/* 08E4E4 7F0599B4 444EF800 */ cfc1 $t6, $31 +/* 08E4E8 7F0599B8 44C2F800 */ ctc1 $v0, $31 +/* 08E4EC 7F0599BC 00000000 */ nop +/* 08E4F0 7F0599C0 460042A4 */ cvt.w.s $f10, $f8 +/* 08E4F4 7F0599C4 4442F800 */ cfc1 $v0, $31 +/* 08E4F8 7F0599C8 00000000 */ nop +/* 08E4FC 7F0599CC 30420078 */ andi $v0, $v0, 0x78 +/* 08E500 7F0599D0 50400013 */ beql $v0, $zero, .L7F059A20 +/* 08E504 7F0599D4 44025000 */ mfc1 $v0, $f10 +/* 08E508 7F0599D8 44815000 */ mtc1 $at, $f10 +/* 08E50C 7F0599DC 24020001 */ li $v0, 1 +/* 08E510 7F0599E0 460A4281 */ sub.s $f10, $f8, $f10 +/* 08E514 7F0599E4 44C2F800 */ ctc1 $v0, $31 +/* 08E518 7F0599E8 00000000 */ nop +/* 08E51C 7F0599EC 460052A4 */ cvt.w.s $f10, $f10 +/* 08E520 7F0599F0 4442F800 */ cfc1 $v0, $31 +/* 08E524 7F0599F4 00000000 */ nop +/* 08E528 7F0599F8 30420078 */ andi $v0, $v0, 0x78 +/* 08E52C 7F0599FC 14400005 */ bnez $v0, .L7F059A14 +/* 08E530 7F059A00 00000000 */ nop +/* 08E534 7F059A04 44025000 */ mfc1 $v0, $f10 +/* 08E538 7F059A08 3C018000 */ lui $at, 0x8000 +/* 08E53C 7F059A0C 10000007 */ b .L7F059A2C +/* 08E540 7F059A10 00411025 */ or $v0, $v0, $at +.L7F059A14: +/* 08E544 7F059A14 10000005 */ b .L7F059A2C +/* 08E548 7F059A18 2402FFFF */ li $v0, -1 +/* 08E54C 7F059A1C 44025000 */ mfc1 $v0, $f10 +.L7F059A20: +/* 08E550 7F059A20 00000000 */ nop +/* 08E554 7F059A24 0440FFFB */ bltz $v0, .L7F059A14 +/* 08E558 7F059A28 00000000 */ nop +.L7F059A2C: +/* 08E55C 7F059A2C 44CEF800 */ ctc1 $t6, $31 +/* 08E560 7F059A30 304FFFFF */ andi $t7, $v0, 0xffff +/* 08E564 7F059A34 1DE00002 */ bgtz $t7, .L7F059A40 +/* 08E568 7F059A38 3043FFFF */ andi $v1, $v0, 0xffff +/* 08E56C 7F059A3C 24030001 */ li $v1, 1 +.L7F059A40: +/* 08E570 7F059A40 03E00008 */ jr $ra +/* 08E574 7F059A44 00601025 */ move $v0, $v1 +) +#endif + +s16 sub_GAME_7F05997C(f32 arg0, f32 arg1); + +void sub_GAME_7F059A48(mat44 matrix, s16* arg1, f32 angle, f32 arg3, f32 arg4, f32 arg5, f32 arg6) { + f32 temp_f12_2 = cosf(angle * 0.5f) / sinf(angle * 0.5f); + arg6 *= 65536.0f; + matrix[0][0] = ((temp_f12_2 / arg3) * arg6); + matrix[1][1] = (temp_f12_2 * arg6); + matrix[1][0] = 0.0f; + matrix[2][0] = 0.0f; + matrix[3][0] = 0.0f; + matrix[0][1] = 0.0f; + matrix[2][1] = 0.0f; + matrix[3][1] = 0.0f; + matrix[0][2] = 0.0f; + matrix[1][2] = 0.0f; + matrix[2][2] = (((arg4 + arg5) / (arg4 - arg5)) * arg6); + matrix[3][2] = ((((arg4 + arg4) * arg5) / (arg4 - arg5)) * arg6); + matrix[2][3] = -arg6; + matrix[0][3] = 0.0f; + matrix[1][3] = 0.0f; + matrix[3][3] = 0.0f; + if (arg1 != 0) { + *arg1 = sub_GAME_7F05997C(arg4, arg5); + } +} + +void guNormalize(f32 *x, f32 *y, f32 *z); + +void sub_GAME_7F059B58(mat44 matrix, f32 angle, f32 x, f32 y, f32 z) { + f32 sine; + f32 cosine; + f32 norm; + f32 invnorm; + f32 cos_x; + f32 sin_x; + f32 cos_z; + f32 sin_z; + guNormalize(&x, &y, &z); + sine = sinf(angle); + cosine = cosf(angle); + norm = sqrtf((x * x) + (z * z)); + if (norm != 0.0f) { + cos_x = x * cosine; + sin_x = x * sine; + cos_z = z * cosine; + sin_z = z * sine; + invnorm = 1.0f / norm; + matrix[0][0] = ((-cos_z - (y * sin_x)) * invnorm); + matrix[1][0] = (sine * norm); + matrix[2][0] = ((cos_x - (y * sin_z)) * invnorm); + matrix[3][0] = 0.0f; + matrix[0][1] = ((sin_z - (y * cos_x)) * invnorm); + matrix[1][1] = (cosine * norm); + matrix[2][1] = ((-sin_x - (y * cos_z)) * invnorm); + matrix[3][1] = 0.0f; + matrix[0][2] = -x; + matrix[1][2] = -y; + matrix[2][2] = -z; + matrix[3][2] = 0.0f; + matrix[0][3] = 0.0f; + matrix[1][3] = 0.0f; + matrix[2][3] = 0.0f; + matrix[3][3] = 1.0f; + return; + } + matrix_4x4_set_identity(matrix); +} + +void guAlignF(float mf[4][4], float a, float x, float y, float z); + +#define RAD2DEG(x) x * 57.295776f + +void matrix_4x4_align(mat44 matrix, f32 angle, f32 x, f32 y, f32 z) { + angle = RAD2DEG(angle); + guAlignF(matrix, angle, x, y, z); +} + +void sub_GAME_7F059D30(u32 arg0) { + return; +} + +void matrix_4x4_set_rotation_inverse(mat44 rotation, mat44 transpose) { + transpose[0][0] = rotation[0][0]; + transpose[0][1] = rotation[1][0]; + transpose[0][2] = rotation[2][0]; + transpose[1][0] = rotation[0][1]; + transpose[1][1] = rotation[1][1]; + transpose[1][2] = rotation[2][1]; + transpose[2][0] = rotation[0][2]; + transpose[2][1] = rotation[1][2]; + transpose[2][2] = rotation[2][2]; + transpose[3][0] = 0.0f; + transpose[3][1] = 0.0f; + transpose[3][2] = 0.0f; + transpose[0][3] = 0.0f; + transpose[1][3] = 0.0f; + transpose[2][3] = 0.0f; + transpose[3][3] = 1.0f; +} + +void sub_GAME_7F059DAC(mat44 arg0, mat44 arg1) { + f32 temp_f0 = ((arg0[0][0] * arg0[0][0]) + (arg0[1][0] * arg0[1][0]) + (arg0[2][0] * arg0[2][0])); + temp_f0 = 1.0f / temp_f0; + arg1[0][0] = (arg0[0][0] * temp_f0); + arg1[0][1] = (arg0[1][0] * temp_f0); + arg1[0][2] = (arg0[2][0] * temp_f0); + arg1[1][0] = (arg0[0][1] * temp_f0); + arg1[1][1] = (arg0[1][1] * temp_f0); + arg1[1][2] = (arg0[2][1] * temp_f0); + arg1[2][0] = (arg0[0][2] * temp_f0); + arg1[2][1] = (arg0[1][2] * temp_f0); + arg1[2][2] = (arg0[2][2] * temp_f0); + arg1[3][0] = 0.0f; + arg1[3][1] = 0.0f; + arg1[3][2] = 0.0f; + arg1[0][3] = 0.0f; + arg1[1][3] = 0.0f; + arg1[2][3] = 0.0f; + arg1[3][3] = 1.0f; +} + +void sub_GAME_7F059E64(mat44 arg0, mat44 arg1) { + f32 temp_f0 = (arg0[0][0] * arg0[0][0]) + (arg0[1][0] * arg0[1][0]) + (arg0[2][0] * arg0[2][0]); + temp_f0 = 1.0f / temp_f0; + arg1[0][0] = (arg0[0][0] * temp_f0); + arg1[0][1] = (arg0[1][0] * temp_f0); + arg1[0][2] = (arg0[2][0] * temp_f0); + arg1[1][0] = (arg0[0][1] * temp_f0); + arg1[1][1] = (arg0[1][1] * temp_f0); + arg1[1][2] = (arg0[2][1] * temp_f0); + arg1[2][0] = (arg0[0][2] * temp_f0); + arg1[2][1] = (arg0[1][2] * temp_f0); + arg1[2][2] = (arg0[2][2] * temp_f0); + arg1[3][0] = -((arg1[0][0] * arg0[3][0]) + (arg1[1][0] * arg0[3][1]) + (arg1[2][0] * arg0[3][2])); + arg1[3][1] = -((arg1[0][1] * arg0[3][0]) + (arg1[1][1] * arg0[3][1]) + (arg1[2][1] * arg0[3][2])); + arg1[3][2] = -((arg1[0][2] * arg0[3][0]) + (arg1[1][2] * arg0[3][1]) + (arg1[2][2] * arg0[3][2])); + arg1[3][3] = 1.0f; + arg1[0][3] = 0.0f; + arg1[1][3] = 0.0f; + arg1[2][3] = 0.0f; +} + + +#ifdef NONMATCHING +void sub_GAME_7F059FB8(mat44 arg0, mat44 arg1) { + f32 temp_f0 = (arg0[0][0] * arg0[1][1] * arg0[2][2]) + (arg0[0][1] * arg0[1][2] * arg0[2][0]) + (arg0[0][2] * arg0[1][0] * arg0[2][1]) - (arg0[0][2] * arg0[1][1] * arg0[2][0]) - (arg0[0][1] * arg0[1][0] * arg0[2][2]) - (arg0[0][0] * arg0[1][2] * arg0[2][1]); + temp_f0 = 1.0f / temp_f0; + arg1[0][0] = (((arg0[1][1] * arg0[2][2]) - (arg0[2][1] * arg0[1][2])) * temp_f0); + arg1[1][0] = (((arg0[1][2] * arg0[2][0]) - (arg0[2][2] * arg0[1][0])) * temp_f0); + arg1[2][0] = (((arg0[1][0] * arg0[2][1]) - (arg0[2][0] * arg0[1][1])) * temp_f0); + arg1[0][1] = (((arg0[0][2] * arg0[2][1]) - (arg0[2][2] * arg0[0][1])) * temp_f0); + arg1[1][1] = (((arg0[0][0] * arg0[2][2]) - (arg0[2][0] * arg0[0][2])) * temp_f0); + arg1[2][1] = (((arg0[0][1] * arg0[2][0]) - (arg0[2][1] * arg0[0][0])) * temp_f0); + arg1[0][2] = (((arg0[0][1] * arg0[1][2]) - (arg0[1][1] * arg0[0][2])) * temp_f0); + arg1[1][2] = (((arg0[0][2] * arg0[1][0]) - (arg0[1][2] * arg0[0][0])) * temp_f0); + arg1[2][2] = (((arg0[0][0] * arg0[1][1]) - (arg0[1][0] * arg0[0][1])) * temp_f0); + arg1[3][0] = -((arg1[0][0] * arg0[3][0]) + (arg1[1][0] * arg0[3][1]) + (arg1[2][0] * arg0[3][2])); + arg1[3][1] = -((arg1[0][1] * arg0[3][0]) + (arg1[1][1] * arg0[3][1]) + (arg1[2][1] * arg0[3][2])); + arg1[3][2] = -((arg1[0][2] * arg0[3][0]) + (arg1[1][2] * arg0[3][1]) + (arg1[2][2] * arg0[3][2])); + arg1[3][3] = 1.0f; + arg1[0][3] = 0.0f; + arg1[1][3] = 0.0f; + arg1[2][3] = 0.0f; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F059FB8 +/* 08EAE8 7F059FB8 C4820000 */ lwc1 $f2, ($a0) +/* 08EAEC 7F059FBC C48C0014 */ lwc1 $f12, 0x14($a0) +/* 08EAF0 7F059FC0 C48E0028 */ lwc1 $f14, 0x28($a0) +/* 08EAF4 7F059FC4 C4900004 */ lwc1 $f16, 4($a0) +/* 08EAF8 7F059FC8 460C1102 */ mul.s $f4, $f2, $f12 +/* 08EAFC 7F059FCC C4920018 */ lwc1 $f18, 0x18($a0) +/* 08EB00 7F059FD0 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 08EB04 7F059FD4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 08EB08 7F059FD8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 08EB0C 7F059FDC E7AA0010 */ swc1 $f10, 0x10($sp) +/* 08EB10 7F059FE0 C7A80010 */ lwc1 $f8, 0x10($sp) +/* 08EB14 7F059FE4 460E2002 */ mul.s $f0, $f4, $f14 +/* 08EB18 7F059FE8 C48A0008 */ lwc1 $f10, 8($a0) +/* 08EB1C 7F059FEC 46128182 */ mul.s $f6, $f16, $f18 +/* 08EB20 7F059FF0 E7AA000C */ swc1 $f10, 0xc($sp) +/* 08EB24 7F059FF4 C7AA000C */ lwc1 $f10, 0xc($sp) +/* 08EB28 7F059FF8 46083102 */ mul.s $f4, $f6, $f8 +/* 08EB2C 7F059FFC C4860010 */ lwc1 $f6, 0x10($a0) +/* 08EB30 7F05A000 E7A60008 */ swc1 $f6, 8($sp) +/* 08EB34 7F05A004 C7A60008 */ lwc1 $f6, 8($sp) +/* 08EB38 7F05A008 46040000 */ add.s $f0, $f0, $f4 +/* 08EB3C 7F05A00C C4840024 */ lwc1 $f4, 0x24($a0) +/* 08EB40 7F05A010 E7A80000 */ swc1 $f8, ($sp) +/* 08EB44 7F05A014 E7A4001C */ swc1 $f4, 0x1c($sp) +/* 08EB48 7F05A018 46065102 */ mul.s $f4, $f10, $f6 +/* 08EB4C 7F05A01C C7A8001C */ lwc1 $f8, 0x1c($sp) +/* 08EB50 7F05A020 46082102 */ mul.s $f4, $f4, $f8 +/* 08EB54 7F05A024 46040000 */ add.s $f0, $f0, $f4 +/* 08EB58 7F05A028 460C5102 */ mul.s $f4, $f10, $f12 +/* 08EB5C 7F05A02C C7AA0000 */ lwc1 $f10, ($sp) +/* 08EB60 7F05A030 460A2102 */ mul.s $f4, $f4, $f10 +/* 08EB64 7F05A034 00000000 */ nop +/* 08EB68 7F05A038 46068282 */ mul.s $f10, $f16, $f6 +/* 08EB6C 7F05A03C 46040001 */ sub.s $f0, $f0, $f4 +/* 08EB70 7F05A040 460E5102 */ mul.s $f4, $f10, $f14 +/* 08EB74 7F05A044 00000000 */ nop +/* 08EB78 7F05A048 46121182 */ mul.s $f6, $f2, $f18 +/* 08EB7C 7F05A04C 44811000 */ mtc1 $at, $f2 +/* 08EB80 7F05A050 46040001 */ sub.s $f0, $f0, $f4 +/* 08EB84 7F05A054 46083282 */ mul.s $f10, $f6, $f8 +/* 08EB88 7F05A058 460A0001 */ sub.s $f0, $f0, $f10 +/* 08EB8C 7F05A05C 460E6102 */ mul.s $f4, $f12, $f14 +/* 08EB90 7F05A060 00000000 */ nop +/* 08EB94 7F05A064 46124182 */ mul.s $f6, $f8, $f18 +/* 08EB98 7F05A068 46001003 */ div.s $f0, $f2, $f0 +/* 08EB9C 7F05A06C 46062281 */ sub.s $f10, $f4, $f6 +/* 08EBA0 7F05A070 46005202 */ mul.s $f8, $f10, $f0 +/* 08EBA4 7F05A074 E4A80000 */ swc1 $f8, ($a1) +/* 08EBA8 7F05A078 C4840018 */ lwc1 $f4, 0x18($a0) +/* 08EBAC 7F05A07C C4860020 */ lwc1 $f6, 0x20($a0) +/* 08EBB0 7F05A080 C4880028 */ lwc1 $f8, 0x28($a0) +/* 08EBB4 7F05A084 46062282 */ mul.s $f10, $f4, $f6 +/* 08EBB8 7F05A088 C4840010 */ lwc1 $f4, 0x10($a0) +/* 08EBBC 7F05A08C 46044182 */ mul.s $f6, $f8, $f4 +/* 08EBC0 7F05A090 46065201 */ sub.s $f8, $f10, $f6 +/* 08EBC4 7F05A094 46004102 */ mul.s $f4, $f8, $f0 +/* 08EBC8 7F05A098 E4A40010 */ swc1 $f4, 0x10($a1) +/* 08EBCC 7F05A09C C48A0010 */ lwc1 $f10, 0x10($a0) +/* 08EBD0 7F05A0A0 C4860024 */ lwc1 $f6, 0x24($a0) +/* 08EBD4 7F05A0A4 C4840020 */ lwc1 $f4, 0x20($a0) +/* 08EBD8 7F05A0A8 46065202 */ mul.s $f8, $f10, $f6 +/* 08EBDC 7F05A0AC C48A0014 */ lwc1 $f10, 0x14($a0) +/* 08EBE0 7F05A0B0 460A2182 */ mul.s $f6, $f4, $f10 +/* 08EBE4 7F05A0B4 46064101 */ sub.s $f4, $f8, $f6 +/* 08EBE8 7F05A0B8 46002282 */ mul.s $f10, $f4, $f0 +/* 08EBEC 7F05A0BC E4AA0020 */ swc1 $f10, 0x20($a1) +/* 08EBF0 7F05A0C0 C4880008 */ lwc1 $f8, 8($a0) +/* 08EBF4 7F05A0C4 C4860024 */ lwc1 $f6, 0x24($a0) +/* 08EBF8 7F05A0C8 C48A0028 */ lwc1 $f10, 0x28($a0) +/* 08EBFC 7F05A0CC 46064102 */ mul.s $f4, $f8, $f6 +/* 08EC00 7F05A0D0 C4880004 */ lwc1 $f8, 4($a0) +/* 08EC04 7F05A0D4 46085182 */ mul.s $f6, $f10, $f8 +/* 08EC08 7F05A0D8 46062281 */ sub.s $f10, $f4, $f6 +/* 08EC0C 7F05A0DC 46005202 */ mul.s $f8, $f10, $f0 +/* 08EC10 7F05A0E0 E4A80004 */ swc1 $f8, 4($a1) +/* 08EC14 7F05A0E4 C4840000 */ lwc1 $f4, ($a0) +/* 08EC18 7F05A0E8 C4860028 */ lwc1 $f6, 0x28($a0) +/* 08EC1C 7F05A0EC C4880020 */ lwc1 $f8, 0x20($a0) +/* 08EC20 7F05A0F0 46062282 */ mul.s $f10, $f4, $f6 +/* 08EC24 7F05A0F4 C4840008 */ lwc1 $f4, 8($a0) +/* 08EC28 7F05A0F8 46044182 */ mul.s $f6, $f8, $f4 +/* 08EC2C 7F05A0FC 46065201 */ sub.s $f8, $f10, $f6 +/* 08EC30 7F05A100 46004102 */ mul.s $f4, $f8, $f0 +/* 08EC34 7F05A104 E4A40014 */ swc1 $f4, 0x14($a1) +/* 08EC38 7F05A108 C48A0004 */ lwc1 $f10, 4($a0) +/* 08EC3C 7F05A10C C4860020 */ lwc1 $f6, 0x20($a0) +/* 08EC40 7F05A110 C4840024 */ lwc1 $f4, 0x24($a0) +/* 08EC44 7F05A114 46065202 */ mul.s $f8, $f10, $f6 +/* 08EC48 7F05A118 C48A0000 */ lwc1 $f10, ($a0) +/* 08EC4C 7F05A11C 460A2182 */ mul.s $f6, $f4, $f10 +/* 08EC50 7F05A120 46064101 */ sub.s $f4, $f8, $f6 +/* 08EC54 7F05A124 46002282 */ mul.s $f10, $f4, $f0 +/* 08EC58 7F05A128 E4AA0024 */ swc1 $f10, 0x24($a1) +/* 08EC5C 7F05A12C C4880004 */ lwc1 $f8, 4($a0) +/* 08EC60 7F05A130 C4860018 */ lwc1 $f6, 0x18($a0) +/* 08EC64 7F05A134 C48A0014 */ lwc1 $f10, 0x14($a0) +/* 08EC68 7F05A138 46064102 */ mul.s $f4, $f8, $f6 +/* 08EC6C 7F05A13C C4880008 */ lwc1 $f8, 8($a0) +/* 08EC70 7F05A140 46085182 */ mul.s $f6, $f10, $f8 +/* 08EC74 7F05A144 46062281 */ sub.s $f10, $f4, $f6 +/* 08EC78 7F05A148 46005202 */ mul.s $f8, $f10, $f0 +/* 08EC7C 7F05A14C E4A80008 */ swc1 $f8, 8($a1) +/* 08EC80 7F05A150 C4860010 */ lwc1 $f6, 0x10($a0) +/* 08EC84 7F05A154 C4840008 */ lwc1 $f4, 8($a0) +/* 08EC88 7F05A158 C4880018 */ lwc1 $f8, 0x18($a0) +/* 08EC8C 7F05A15C 46062282 */ mul.s $f10, $f4, $f6 +/* 08EC90 7F05A160 C4840000 */ lwc1 $f4, ($a0) +/* 08EC94 7F05A164 46044182 */ mul.s $f6, $f8, $f4 +/* 08EC98 7F05A168 46065201 */ sub.s $f8, $f10, $f6 +/* 08EC9C 7F05A16C 46004102 */ mul.s $f4, $f8, $f0 +/* 08ECA0 7F05A170 E4A40018 */ swc1 $f4, 0x18($a1) +/* 08ECA4 7F05A174 C4860014 */ lwc1 $f6, 0x14($a0) +/* 08ECA8 7F05A178 C48A0000 */ lwc1 $f10, ($a0) +/* 08ECAC 7F05A17C C4840010 */ lwc1 $f4, 0x10($a0) +/* 08ECB0 7F05A180 46065202 */ mul.s $f8, $f10, $f6 +/* 08ECB4 7F05A184 C48A0004 */ lwc1 $f10, 4($a0) +/* 08ECB8 7F05A188 460A2182 */ mul.s $f6, $f4, $f10 +/* 08ECBC 7F05A18C 46064101 */ sub.s $f4, $f8, $f6 +/* 08ECC0 7F05A190 C4A60000 */ lwc1 $f6, ($a1) +/* 08ECC4 7F05A194 46002282 */ mul.s $f10, $f4, $f0 +/* 08ECC8 7F05A198 44800000 */ mtc1 $zero, $f0 +/* 08ECCC 7F05A19C E4AA0028 */ swc1 $f10, 0x28($a1) +/* 08ECD0 7F05A1A0 C4880030 */ lwc1 $f8, 0x30($a0) +/* 08ECD4 7F05A1A4 C48A0034 */ lwc1 $f10, 0x34($a0) +/* 08ECD8 7F05A1A8 46064102 */ mul.s $f4, $f8, $f6 +/* 08ECDC 7F05A1AC C4A80010 */ lwc1 $f8, 0x10($a1) +/* 08ECE0 7F05A1B0 46085182 */ mul.s $f6, $f10, $f8 +/* 08ECE4 7F05A1B4 C4A80020 */ lwc1 $f8, 0x20($a1) +/* 08ECE8 7F05A1B8 46062280 */ add.s $f10, $f4, $f6 +/* 08ECEC 7F05A1BC C4840038 */ lwc1 $f4, 0x38($a0) +/* 08ECF0 7F05A1C0 46044182 */ mul.s $f6, $f8, $f4 +/* 08ECF4 7F05A1C4 460A3200 */ add.s $f8, $f6, $f10 +/* 08ECF8 7F05A1C8 C4AA0004 */ lwc1 $f10, 4($a1) +/* 08ECFC 7F05A1CC 46004107 */ neg.s $f4, $f8 +/* 08ED00 7F05A1D0 E4A40030 */ swc1 $f4, 0x30($a1) +/* 08ED04 7F05A1D4 C4860030 */ lwc1 $f6, 0x30($a0) +/* 08ED08 7F05A1D8 C4840034 */ lwc1 $f4, 0x34($a0) +/* 08ED0C 7F05A1DC 460A3202 */ mul.s $f8, $f6, $f10 +/* 08ED10 7F05A1E0 C4A60014 */ lwc1 $f6, 0x14($a1) +/* 08ED14 7F05A1E4 46062282 */ mul.s $f10, $f4, $f6 +/* 08ED18 7F05A1E8 C4A60024 */ lwc1 $f6, 0x24($a1) +/* 08ED1C 7F05A1EC 460A4100 */ add.s $f4, $f8, $f10 +/* 08ED20 7F05A1F0 C4880038 */ lwc1 $f8, 0x38($a0) +/* 08ED24 7F05A1F4 46083282 */ mul.s $f10, $f6, $f8 +/* 08ED28 7F05A1F8 46045180 */ add.s $f6, $f10, $f4 +/* 08ED2C 7F05A1FC C4A40008 */ lwc1 $f4, 8($a1) +/* 08ED30 7F05A200 46003207 */ neg.s $f8, $f6 +/* 08ED34 7F05A204 E4A80034 */ swc1 $f8, 0x34($a1) +/* 08ED38 7F05A208 C48A0030 */ lwc1 $f10, 0x30($a0) +/* 08ED3C 7F05A20C C4880034 */ lwc1 $f8, 0x34($a0) +/* 08ED40 7F05A210 46045182 */ mul.s $f6, $f10, $f4 +/* 08ED44 7F05A214 C4AA0018 */ lwc1 $f10, 0x18($a1) +/* 08ED48 7F05A218 460A4102 */ mul.s $f4, $f8, $f10 +/* 08ED4C 7F05A21C C4AA0028 */ lwc1 $f10, 0x28($a1) +/* 08ED50 7F05A220 46043200 */ add.s $f8, $f6, $f4 +/* 08ED54 7F05A224 C4860038 */ lwc1 $f6, 0x38($a0) +/* 08ED58 7F05A228 27BD0030 */ addiu $sp, $sp, 0x30 +/* 08ED5C 7F05A22C E4A2003C */ swc1 $f2, 0x3c($a1) +/* 08ED60 7F05A230 46065102 */ mul.s $f4, $f10, $f6 +/* 08ED64 7F05A234 E4A0000C */ swc1 $f0, 0xc($a1) +/* 08ED68 7F05A238 E4A0001C */ swc1 $f0, 0x1c($a1) +/* 08ED6C 7F05A23C E4A0002C */ swc1 $f0, 0x2c($a1) +/* 08ED70 7F05A240 46082280 */ add.s $f10, $f4, $f8 +/* 08ED74 7F05A244 46005187 */ neg.s $f6, $f10 +/* 08ED78 7F05A248 03E00008 */ jr $ra +/* 08ED7C 7F05A24C E4A60038 */ swc1 $f6, 0x38($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05A250(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05A250 +/* 08ED80 7F05A250 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08ED84 7F05A254 AFBF0014 */ sw $ra, 0x14($sp) +/* 08ED88 7F05A258 AFA40018 */ sw $a0, 0x18($sp) +/* 08ED8C 7F05A25C 0FC168C4 */ jal sub_GAME_7F05A310 +/* 08ED90 7F05A260 AFA5001C */ sw $a1, 0x1c($sp) +/* 08ED94 7F05A264 0FC169DD */ jal matrix_4x4_determinant +/* 08ED98 7F05A268 8FA40018 */ lw $a0, 0x18($sp) +/* 08ED9C 7F05A26C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 08EDA0 7F05A270 44812000 */ mtc1 $at, $f4 +/* 08EDA4 7F05A274 00001825 */ move $v1, $zero +/* 08EDA8 7F05A278 8FA2001C */ lw $v0, 0x1c($sp) +/* 08EDAC 7F05A27C 24040004 */ li $a0, 4 +/* 08EDB0 7F05A280 46002083 */ div.s $f2, $f4, $f0 +/* 08EDB4 7F05A284 C4480000 */ lwc1 $f8, ($v0) +/* 08EDB8 7F05A288 24630001 */ addiu $v1, $v1, 1 +/* 08EDBC 7F05A28C C44E0004 */ lwc1 $f14, 4($v0) +/* 08EDC0 7F05A290 46024402 */ mul.s $f16, $f8, $f2 +/* 08EDC4 7F05A294 C44C0008 */ lwc1 $f12, 8($v0) +/* 08EDC8 7F05A298 10640010 */ beq $v1, $a0, .L7F05A2DC +/* 08EDCC 7F05A29C C452000C */ lwc1 $f18, 0xc($v0) +.L7F05A2A0: +/* 08EDD0 7F05A2A0 46027282 */ mul.s $f10, $f14, $f2 +/* 08EDD4 7F05A2A4 C4480010 */ lwc1 $f8, 0x10($v0) +/* 08EDD8 7F05A2A8 C44E0014 */ lwc1 $f14, 0x14($v0) +/* 08EDDC 7F05A2AC 46026182 */ mul.s $f6, $f12, $f2 +/* 08EDE0 7F05A2B0 C44C0018 */ lwc1 $f12, 0x18($v0) +/* 08EDE4 7F05A2B4 24630001 */ addiu $v1, $v1, 1 +/* 08EDE8 7F05A2B8 46029102 */ mul.s $f4, $f18, $f2 +/* 08EDEC 7F05A2BC C452001C */ lwc1 $f18, 0x1c($v0) +/* 08EDF0 7F05A2C0 E4500000 */ swc1 $f16, ($v0) +/* 08EDF4 7F05A2C4 46024402 */ mul.s $f16, $f8, $f2 +/* 08EDF8 7F05A2C8 E44A0004 */ swc1 $f10, 4($v0) +/* 08EDFC 7F05A2CC E4460008 */ swc1 $f6, 8($v0) +/* 08EE00 7F05A2D0 24420010 */ addiu $v0, $v0, 0x10 +/* 08EE04 7F05A2D4 1464FFF2 */ bne $v1, $a0, .L7F05A2A0 +/* 08EE08 7F05A2D8 E444FFFC */ swc1 $f4, -4($v0) +.L7F05A2DC: +/* 08EE0C 7F05A2DC 46027282 */ mul.s $f10, $f14, $f2 +/* 08EE10 7F05A2E0 24420010 */ addiu $v0, $v0, 0x10 +/* 08EE14 7F05A2E4 E450FFF0 */ swc1 $f16, -0x10($v0) +/* 08EE18 7F05A2E8 46026182 */ mul.s $f6, $f12, $f2 +/* 08EE1C 7F05A2EC 00000000 */ nop +/* 08EE20 7F05A2F0 46029102 */ mul.s $f4, $f18, $f2 +/* 08EE24 7F05A2F4 E44AFFF4 */ swc1 $f10, -0xc($v0) +/* 08EE28 7F05A2F8 E446FFF8 */ swc1 $f6, -8($v0) +/* 08EE2C 7F05A2FC E444FFFC */ swc1 $f4, -4($v0) +/* 08EE30 7F05A300 8FBF0014 */ lw $ra, 0x14($sp) +/* 08EE34 7F05A304 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08EE38 7F05A308 03E00008 */ jr $ra +/* 08EE3C 7F05A30C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05A310(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05A310 +/* 08EE40 7F05A310 27BDFF58 */ addiu $sp, $sp, -0xa8 +/* 08EE44 7F05A314 AFBF0064 */ sw $ra, 0x64($sp) +/* 08EE48 7F05A318 AFB00060 */ sw $s0, 0x60($sp) +/* 08EE4C 7F05A31C F7BE0058 */ sdc1 $f30, 0x58($sp) +/* 08EE50 7F05A320 F7BC0050 */ sdc1 $f28, 0x50($sp) +/* 08EE54 7F05A324 F7BA0048 */ sdc1 $f26, 0x48($sp) +/* 08EE58 7F05A328 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 08EE5C 7F05A32C F7B60038 */ sdc1 $f22, 0x38($sp) +/* 08EE60 7F05A330 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 08EE64 7F05A334 C4840008 */ lwc1 $f4, 8($a0) +/* 08EE68 7F05A338 C49E0004 */ lwc1 $f30, 4($a0) +/* 08EE6C 7F05A33C C49C0000 */ lwc1 $f28, ($a0) +/* 08EE70 7F05A340 E7A40084 */ swc1 $f4, 0x84($sp) +/* 08EE74 7F05A344 C486000C */ lwc1 $f6, 0xc($a0) +/* 08EE78 7F05A348 00A08025 */ move $s0, $a1 +/* 08EE7C 7F05A34C E7A60074 */ swc1 $f6, 0x74($sp) +/* 08EE80 7F05A350 C4880010 */ lwc1 $f8, 0x10($a0) +/* 08EE84 7F05A354 E7A800A0 */ swc1 $f8, 0xa0($sp) +/* 08EE88 7F05A358 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 08EE8C 7F05A35C C48C0014 */ lwc1 $f12, 0x14($a0) +/* 08EE90 7F05A360 C482001C */ lwc1 $f2, 0x1c($a0) +/* 08EE94 7F05A364 C4800018 */ lwc1 $f0, 0x18($a0) +/* 08EE98 7F05A368 E7AA009C */ swc1 $f10, 0x9c($sp) +/* 08EE9C 7F05A36C C4960034 */ lwc1 $f22, 0x34($a0) +/* 08EEA0 7F05A370 C48E0024 */ lwc1 $f14, 0x24($a0) +/* 08EEA4 7F05A374 C492002C */ lwc1 $f18, 0x2c($a0) +/* 08EEA8 7F05A378 C4900028 */ lwc1 $f16, 0x28($a0) +/* 08EEAC 7F05A37C C49A003C */ lwc1 $f26, 0x3c($a0) +/* 08EEB0 7F05A380 C4980038 */ lwc1 $f24, 0x38($a0) +/* 08EEB4 7F05A384 C4940030 */ lwc1 $f20, 0x30($a0) +/* 08EEB8 7F05A388 44070000 */ mfc1 $a3, $f0 +/* 08EEBC 7F05A38C 4406B000 */ mfc1 $a2, $f22 +/* 08EEC0 7F05A390 E7AC0090 */ swc1 $f12, 0x90($sp) +/* 08EEC4 7F05A394 E7A20070 */ swc1 $f2, 0x70($sp) +/* 08EEC8 7F05A398 E7A20018 */ swc1 $f2, 0x18($sp) +/* 08EECC 7F05A39C E7A00080 */ swc1 $f0, 0x80($sp) +/* 08EED0 7F05A3A0 E7AE008C */ swc1 $f14, 0x8c($sp) +/* 08EED4 7F05A3A4 E7B2006C */ swc1 $f18, 0x6c($sp) +/* 08EED8 7F05A3A8 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 08EEDC 7F05A3AC E7B0007C */ swc1 $f16, 0x7c($sp) +/* 08EEE0 7F05A3B0 E7B00010 */ swc1 $f16, 0x10($sp) +/* 08EEE4 7F05A3B4 E7BA0020 */ swc1 $f26, 0x20($sp) +/* 08EEE8 7F05A3B8 0FC16A4A */ jal matrix_3x3_determinant +/* 08EEEC 7F05A3BC E7B80014 */ swc1 $f24, 0x14($sp) +/* 08EEF0 7F05A3C0 E6000000 */ swc1 $f0, ($s0) +/* 08EEF4 7F05A3C4 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 08EEF8 7F05A3C8 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 08EEFC 7F05A3CC C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 08EF00 7F05A3D0 4406A000 */ mfc1 $a2, $f20 +/* 08EF04 7F05A3D4 E7BA0020 */ swc1 $f26, 0x20($sp) +/* 08EF08 7F05A3D8 E7B80014 */ swc1 $f24, 0x14($sp) +/* 08EF0C 7F05A3DC 8FA70080 */ lw $a3, 0x80($sp) +/* 08EF10 7F05A3E0 C7AE009C */ lwc1 $f14, 0x9c($sp) +/* 08EF14 7F05A3E4 C7AC00A0 */ lwc1 $f12, 0xa0($sp) +/* 08EF18 7F05A3E8 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 08EF1C 7F05A3EC E7A60018 */ swc1 $f6, 0x18($sp) +/* 08EF20 7F05A3F0 0FC16A4A */ jal matrix_3x3_determinant +/* 08EF24 7F05A3F4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 08EF28 7F05A3F8 46000287 */ neg.s $f10, $f0 +/* 08EF2C 7F05A3FC 4406A000 */ mfc1 $a2, $f20 +/* 08EF30 7F05A400 E60A0010 */ swc1 $f10, 0x10($s0) +/* 08EF34 7F05A404 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 08EF38 7F05A408 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 08EF3C 7F05A40C C7A4008C */ lwc1 $f4, 0x8c($sp) +/* 08EF40 7F05A410 E7BA0020 */ swc1 $f26, 0x20($sp) +/* 08EF44 7F05A414 E7B60014 */ swc1 $f22, 0x14($sp) +/* 08EF48 7F05A418 8FA70090 */ lw $a3, 0x90($sp) +/* 08EF4C 7F05A41C C7AE009C */ lwc1 $f14, 0x9c($sp) +/* 08EF50 7F05A420 C7AC00A0 */ lwc1 $f12, 0xa0($sp) +/* 08EF54 7F05A424 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 08EF58 7F05A428 E7A60018 */ swc1 $f6, 0x18($sp) +/* 08EF5C 7F05A42C 0FC16A4A */ jal matrix_3x3_determinant +/* 08EF60 7F05A430 E7A40010 */ swc1 $f4, 0x10($sp) +/* 08EF64 7F05A434 E6000020 */ swc1 $f0, 0x20($s0) +/* 08EF68 7F05A438 C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 08EF6C 7F05A43C C7A40080 */ lwc1 $f4, 0x80($sp) +/* 08EF70 7F05A440 C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 08EF74 7F05A444 4406A000 */ mfc1 $a2, $f20 +/* 08EF78 7F05A448 E7B80020 */ swc1 $f24, 0x20($sp) +/* 08EF7C 7F05A44C E7B60014 */ swc1 $f22, 0x14($sp) +/* 08EF80 7F05A450 8FA70090 */ lw $a3, 0x90($sp) +/* 08EF84 7F05A454 C7AE009C */ lwc1 $f14, 0x9c($sp) +/* 08EF88 7F05A458 C7AC00A0 */ lwc1 $f12, 0xa0($sp) +/* 08EF8C 7F05A45C E7A6001C */ swc1 $f6, 0x1c($sp) +/* 08EF90 7F05A460 E7A40018 */ swc1 $f4, 0x18($sp) +/* 08EF94 7F05A464 0FC16A4A */ jal matrix_3x3_determinant +/* 08EF98 7F05A468 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 08EF9C 7F05A46C 46000207 */ neg.s $f8, $f0 +/* 08EFA0 7F05A470 4406B000 */ mfc1 $a2, $f22 +/* 08EFA4 7F05A474 E6080030 */ swc1 $f8, 0x30($s0) +/* 08EFA8 7F05A478 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 08EFAC 7F05A47C C7A40074 */ lwc1 $f4, 0x74($sp) +/* 08EFB0 7F05A480 C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 08EFB4 7F05A484 E7BA0020 */ swc1 $f26, 0x20($sp) +/* 08EFB8 7F05A488 E7B80014 */ swc1 $f24, 0x14($sp) +/* 08EFBC 7F05A48C 8FA70084 */ lw $a3, 0x84($sp) +/* 08EFC0 7F05A490 C7AE008C */ lwc1 $f14, 0x8c($sp) +/* 08EFC4 7F05A494 4600F306 */ mov.s $f12, $f30 +/* 08EFC8 7F05A498 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 08EFCC 7F05A49C E7A40018 */ swc1 $f4, 0x18($sp) +/* 08EFD0 7F05A4A0 0FC16A4A */ jal matrix_3x3_determinant +/* 08EFD4 7F05A4A4 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 08EFD8 7F05A4A8 46000207 */ neg.s $f8, $f0 +/* 08EFDC 7F05A4AC 4406A000 */ mfc1 $a2, $f20 +/* 08EFE0 7F05A4B0 E6080004 */ swc1 $f8, 4($s0) +/* 08EFE4 7F05A4B4 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 08EFE8 7F05A4B8 C7A40074 */ lwc1 $f4, 0x74($sp) +/* 08EFEC 7F05A4BC C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 08EFF0 7F05A4C0 E7BA0020 */ swc1 $f26, 0x20($sp) +/* 08EFF4 7F05A4C4 E7B80014 */ swc1 $f24, 0x14($sp) +/* 08EFF8 7F05A4C8 8FA70084 */ lw $a3, 0x84($sp) +/* 08EFFC 7F05A4CC C7AE009C */ lwc1 $f14, 0x9c($sp) +/* 08F000 7F05A4D0 4600E306 */ mov.s $f12, $f28 +/* 08F004 7F05A4D4 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 08F008 7F05A4D8 E7A40018 */ swc1 $f4, 0x18($sp) +/* 08F00C 7F05A4DC 0FC16A4A */ jal matrix_3x3_determinant +/* 08F010 7F05A4E0 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 08F014 7F05A4E4 E6000014 */ swc1 $f0, 0x14($s0) +/* 08F018 7F05A4E8 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 08F01C 7F05A4EC C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 08F020 7F05A4F0 C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 08F024 7F05A4F4 4406A000 */ mfc1 $a2, $f20 +/* 08F028 7F05A4F8 4407F000 */ mfc1 $a3, $f30 +/* 08F02C 7F05A4FC E7BA0020 */ swc1 $f26, 0x20($sp) +/* 08F030 7F05A500 E7B60014 */ swc1 $f22, 0x14($sp) +/* 08F034 7F05A504 C7AE009C */ lwc1 $f14, 0x9c($sp) +/* 08F038 7F05A508 4600E306 */ mov.s $f12, $f28 +/* 08F03C 7F05A50C E7A4001C */ swc1 $f4, 0x1c($sp) +/* 08F040 7F05A510 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 08F044 7F05A514 0FC16A4A */ jal matrix_3x3_determinant +/* 08F048 7F05A518 E7A80010 */ swc1 $f8, 0x10($sp) +/* 08F04C 7F05A51C 46000187 */ neg.s $f6, $f0 +/* 08F050 7F05A520 4406A000 */ mfc1 $a2, $f20 +/* 08F054 7F05A524 E6060024 */ swc1 $f6, 0x24($s0) +/* 08F058 7F05A528 C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 08F05C 7F05A52C C7AA0084 */ lwc1 $f10, 0x84($sp) +/* 08F060 7F05A530 C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 08F064 7F05A534 4407F000 */ mfc1 $a3, $f30 +/* 08F068 7F05A538 E7B80020 */ swc1 $f24, 0x20($sp) +/* 08F06C 7F05A53C E7B60014 */ swc1 $f22, 0x14($sp) +/* 08F070 7F05A540 C7AE009C */ lwc1 $f14, 0x9c($sp) +/* 08F074 7F05A544 4600E306 */ mov.s $f12, $f28 +/* 08F078 7F05A548 E7A4001C */ swc1 $f4, 0x1c($sp) +/* 08F07C 7F05A54C E7AA0018 */ swc1 $f10, 0x18($sp) +/* 08F080 7F05A550 0FC16A4A */ jal matrix_3x3_determinant +/* 08F084 7F05A554 E7A80010 */ swc1 $f8, 0x10($sp) +/* 08F088 7F05A558 E6000034 */ swc1 $f0, 0x34($s0) +/* 08F08C 7F05A55C C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 08F090 7F05A560 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 08F094 7F05A564 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 08F098 7F05A568 4406B000 */ mfc1 $a2, $f22 +/* 08F09C 7F05A56C E7BA0020 */ swc1 $f26, 0x20($sp) +/* 08F0A0 7F05A570 E7B80014 */ swc1 $f24, 0x14($sp) +/* 08F0A4 7F05A574 8FA70084 */ lw $a3, 0x84($sp) +/* 08F0A8 7F05A578 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 08F0AC 7F05A57C 4600F306 */ mov.s $f12, $f30 +/* 08F0B0 7F05A580 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 08F0B4 7F05A584 E7A80018 */ swc1 $f8, 0x18($sp) +/* 08F0B8 7F05A588 0FC16A4A */ jal matrix_3x3_determinant +/* 08F0BC 7F05A58C E7A60010 */ swc1 $f6, 0x10($sp) +/* 08F0C0 7F05A590 E6000008 */ swc1 $f0, 8($s0) +/* 08F0C4 7F05A594 C7A80070 */ lwc1 $f8, 0x70($sp) +/* 08F0C8 7F05A598 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 08F0CC 7F05A59C C7A40080 */ lwc1 $f4, 0x80($sp) +/* 08F0D0 7F05A5A0 4406A000 */ mfc1 $a2, $f20 +/* 08F0D4 7F05A5A4 E7BA0020 */ swc1 $f26, 0x20($sp) +/* 08F0D8 7F05A5A8 E7B80014 */ swc1 $f24, 0x14($sp) +/* 08F0DC 7F05A5AC 8FA70084 */ lw $a3, 0x84($sp) +/* 08F0E0 7F05A5B0 C7AE00A0 */ lwc1 $f14, 0xa0($sp) +/* 08F0E4 7F05A5B4 4600E306 */ mov.s $f12, $f28 +/* 08F0E8 7F05A5B8 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 08F0EC 7F05A5BC E7A60018 */ swc1 $f6, 0x18($sp) +/* 08F0F0 7F05A5C0 0FC16A4A */ jal matrix_3x3_determinant +/* 08F0F4 7F05A5C4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 08F0F8 7F05A5C8 46000287 */ neg.s $f10, $f0 +/* 08F0FC 7F05A5CC 4406A000 */ mfc1 $a2, $f20 +/* 08F100 7F05A5D0 E60A0018 */ swc1 $f10, 0x18($s0) +/* 08F104 7F05A5D4 C7A80070 */ lwc1 $f8, 0x70($sp) +/* 08F108 7F05A5D8 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 08F10C 7F05A5DC C7A40090 */ lwc1 $f4, 0x90($sp) +/* 08F110 7F05A5E0 4407F000 */ mfc1 $a3, $f30 +/* 08F114 7F05A5E4 E7BA0020 */ swc1 $f26, 0x20($sp) +/* 08F118 7F05A5E8 E7B60014 */ swc1 $f22, 0x14($sp) +/* 08F11C 7F05A5EC C7AE00A0 */ lwc1 $f14, 0xa0($sp) +/* 08F120 7F05A5F0 4600E306 */ mov.s $f12, $f28 +/* 08F124 7F05A5F4 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 08F128 7F05A5F8 E7A60018 */ swc1 $f6, 0x18($sp) +/* 08F12C 7F05A5FC 0FC16A4A */ jal matrix_3x3_determinant +/* 08F130 7F05A600 E7A40010 */ swc1 $f4, 0x10($sp) +/* 08F134 7F05A604 E6000028 */ swc1 $f0, 0x28($s0) +/* 08F138 7F05A608 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 08F13C 7F05A60C C7A40084 */ lwc1 $f4, 0x84($sp) +/* 08F140 7F05A610 C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 08F144 7F05A614 4406A000 */ mfc1 $a2, $f20 +/* 08F148 7F05A618 4407F000 */ mfc1 $a3, $f30 +/* 08F14C 7F05A61C E7B80020 */ swc1 $f24, 0x20($sp) +/* 08F150 7F05A620 E7B60014 */ swc1 $f22, 0x14($sp) +/* 08F154 7F05A624 C7AE00A0 */ lwc1 $f14, 0xa0($sp) +/* 08F158 7F05A628 4600E306 */ mov.s $f12, $f28 +/* 08F15C 7F05A62C E7A6001C */ swc1 $f6, 0x1c($sp) +/* 08F160 7F05A630 E7A40018 */ swc1 $f4, 0x18($sp) +/* 08F164 7F05A634 0FC16A4A */ jal matrix_3x3_determinant +/* 08F168 7F05A638 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 08F16C 7F05A63C 46000207 */ neg.s $f8, $f0 +/* 08F170 7F05A640 4600F306 */ mov.s $f12, $f30 +/* 08F174 7F05A644 E6080038 */ swc1 $f8, 0x38($s0) +/* 08F178 7F05A648 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 08F17C 7F05A64C C7A80070 */ lwc1 $f8, 0x70($sp) +/* 08F180 7F05A650 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 08F184 7F05A654 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 08F188 7F05A658 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 08F18C 7F05A65C C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 08F190 7F05A660 8FA70084 */ lw $a3, 0x84($sp) +/* 08F194 7F05A664 8FA6008C */ lw $a2, 0x8c($sp) +/* 08F198 7F05A668 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 08F19C 7F05A66C E7A8001C */ swc1 $f8, 0x1c($sp) +/* 08F1A0 7F05A670 E7A60018 */ swc1 $f6, 0x18($sp) +/* 08F1A4 7F05A674 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 08F1A8 7F05A678 0FC16A4A */ jal matrix_3x3_determinant +/* 08F1AC 7F05A67C E7A40014 */ swc1 $f4, 0x14($sp) +/* 08F1B0 7F05A680 46000107 */ neg.s $f4, $f0 +/* 08F1B4 7F05A684 4600E306 */ mov.s $f12, $f28 +/* 08F1B8 7F05A688 E604000C */ swc1 $f4, 0xc($s0) +/* 08F1BC 7F05A68C C7A60080 */ lwc1 $f6, 0x80($sp) +/* 08F1C0 7F05A690 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 08F1C4 7F05A694 C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 08F1C8 7F05A698 E7A60010 */ swc1 $f6, 0x10($sp) +/* 08F1CC 7F05A69C C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 08F1D0 7F05A6A0 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 08F1D4 7F05A6A4 8FA70084 */ lw $a3, 0x84($sp) +/* 08F1D8 7F05A6A8 8FA6009C */ lw $a2, 0x9c($sp) +/* 08F1DC 7F05A6AC C7AE00A0 */ lwc1 $f14, 0xa0($sp) +/* 08F1E0 7F05A6B0 E7A4001C */ swc1 $f4, 0x1c($sp) +/* 08F1E4 7F05A6B4 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 08F1E8 7F05A6B8 E7A60020 */ swc1 $f6, 0x20($sp) +/* 08F1EC 7F05A6BC 0FC16A4A */ jal matrix_3x3_determinant +/* 08F1F0 7F05A6C0 E7A80014 */ swc1 $f8, 0x14($sp) +/* 08F1F4 7F05A6C4 E600001C */ swc1 $f0, 0x1c($s0) +/* 08F1F8 7F05A6C8 C7A80090 */ lwc1 $f8, 0x90($sp) +/* 08F1FC 7F05A6CC C7A60070 */ lwc1 $f6, 0x70($sp) +/* 08F200 7F05A6D0 C7A40074 */ lwc1 $f4, 0x74($sp) +/* 08F204 7F05A6D4 E7A80010 */ swc1 $f8, 0x10($sp) +/* 08F208 7F05A6D8 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 08F20C 7F05A6DC C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 08F210 7F05A6E0 4407F000 */ mfc1 $a3, $f30 +/* 08F214 7F05A6E4 8FA6009C */ lw $a2, 0x9c($sp) +/* 08F218 7F05A6E8 C7AE00A0 */ lwc1 $f14, 0xa0($sp) +/* 08F21C 7F05A6EC 4600E306 */ mov.s $f12, $f28 +/* 08F220 7F05A6F0 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 08F224 7F05A6F4 E7A40018 */ swc1 $f4, 0x18($sp) +/* 08F228 7F05A6F8 E7A80020 */ swc1 $f8, 0x20($sp) +/* 08F22C 7F05A6FC 0FC16A4A */ jal matrix_3x3_determinant +/* 08F230 7F05A700 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 08F234 7F05A704 46000287 */ neg.s $f10, $f0 +/* 08F238 7F05A708 4407F000 */ mfc1 $a3, $f30 +/* 08F23C 7F05A70C E60A002C */ swc1 $f10, 0x2c($s0) +/* 08F240 7F05A710 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 08F244 7F05A714 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 08F248 7F05A718 C7A80084 */ lwc1 $f8, 0x84($sp) +/* 08F24C 7F05A71C E7A40010 */ swc1 $f4, 0x10($sp) +/* 08F250 7F05A720 C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 08F254 7F05A724 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 08F258 7F05A728 8FA6009C */ lw $a2, 0x9c($sp) +/* 08F25C 7F05A72C C7AE00A0 */ lwc1 $f14, 0xa0($sp) +/* 08F260 7F05A730 4600E306 */ mov.s $f12, $f28 +/* 08F264 7F05A734 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 08F268 7F05A738 E7A80018 */ swc1 $f8, 0x18($sp) +/* 08F26C 7F05A73C E7A40020 */ swc1 $f4, 0x20($sp) +/* 08F270 7F05A740 0FC16A4A */ jal matrix_3x3_determinant +/* 08F274 7F05A744 E7A60014 */ swc1 $f6, 0x14($sp) +/* 08F278 7F05A748 E600003C */ swc1 $f0, 0x3c($s0) +/* 08F27C 7F05A74C 8FBF0064 */ lw $ra, 0x64($sp) +/* 08F280 7F05A750 8FB00060 */ lw $s0, 0x60($sp) +/* 08F284 7F05A754 D7BE0058 */ ldc1 $f30, 0x58($sp) +/* 08F288 7F05A758 D7BC0050 */ ldc1 $f28, 0x50($sp) +/* 08F28C 7F05A75C D7BA0048 */ ldc1 $f26, 0x48($sp) +/* 08F290 7F05A760 D7B80040 */ ldc1 $f24, 0x40($sp) +/* 08F294 7F05A764 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 08F298 7F05A768 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 08F29C 7F05A76C 03E00008 */ jr $ra +/* 08F2A0 7F05A770 27BD00A8 */ addiu $sp, $sp, 0xa8 +) +#endif + +f32 matrix_3x3_determinant(f32 m11, f32 m21, f32 m31, f32 m12, f32 m22, f32 m32, f32 m13, f32 m23, f32 m33); + + #ifdef NONMATCHING + // Stack pointer mostly +f32 matrix_4x4_determinant(mat44 matrix) { + f32 det; + f32 a = matrix[0][0]; + f32 b = matrix[0][1]; + f32 c = matrix[0][2]; + f32 d = matrix[0][3]; + f32 e = matrix[1][0]; + f32 f = matrix[1][1]; + f32 g = matrix[1][2]; + f32 h = matrix[1][3]; + f32 i = matrix[2][0]; + f32 j = matrix[2][1]; + f32 k = matrix[2][2]; + f32 l = matrix[2][3]; + f32 m = matrix[3][0]; + f32 n = matrix[3][1]; + f32 o = matrix[3][2]; + f32 p = matrix[3][3]; + det = (a * matrix_3x3_determinant(f, j, n, g, k, o, h, l, p)) - (b * matrix_3x3_determinant(e, i, m, g, k, o, h, l, p)) + (c * matrix_3x3_determinant(e, i, m, f, j, n, h, l, p)) - (d * matrix_3x3_determinant(e, i, m, f, j, n, g, k, o)); + return det; +} +#else +GLOBAL_ASM( +.text +glabel matrix_4x4_determinant +/* 08F2A4 7F05A774 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 08F2A8 7F05A778 AFBF002C */ sw $ra, 0x2c($sp) +/* 08F2AC 7F05A77C C4840000 */ lwc1 $f4, ($a0) +/* 08F2B0 7F05A780 E7A40078 */ swc1 $f4, 0x78($sp) +/* 08F2B4 7F05A784 C4860004 */ lwc1 $f6, 4($a0) +/* 08F2B8 7F05A788 E7A60068 */ swc1 $f6, 0x68($sp) +/* 08F2BC 7F05A78C C4880008 */ lwc1 $f8, 8($a0) +/* 08F2C0 7F05A790 E7A80058 */ swc1 $f8, 0x58($sp) +/* 08F2C4 7F05A794 C48A000C */ lwc1 $f10, 0xc($a0) +/* 08F2C8 7F05A798 E7AA0048 */ swc1 $f10, 0x48($sp) +/* 08F2CC 7F05A79C C4840018 */ lwc1 $f4, 0x18($a0) +/* 08F2D0 7F05A7A0 C4800014 */ lwc1 $f0, 0x14($a0) +/* 08F2D4 7F05A7A4 C48C0010 */ lwc1 $f12, 0x10($a0) +/* 08F2D8 7F05A7A8 E7A40054 */ swc1 $f4, 0x54($sp) +/* 08F2DC 7F05A7AC C4860028 */ lwc1 $f6, 0x28($a0) +/* 08F2E0 7F05A7B0 C482001C */ lwc1 $f2, 0x1c($a0) +/* 08F2E4 7F05A7B4 C4900024 */ lwc1 $f16, 0x24($a0) +/* 08F2E8 7F05A7B8 C48E0020 */ lwc1 $f14, 0x20($a0) +/* 08F2EC 7F05A7BC E7A60050 */ swc1 $f6, 0x50($sp) +/* 08F2F0 7F05A7C0 C4880030 */ lwc1 $f8, 0x30($a0) +/* 08F2F4 7F05A7C4 C492002C */ lwc1 $f18, 0x2c($a0) +/* 08F2F8 7F05A7C8 44070000 */ mfc1 $a3, $f0 +/* 08F2FC 7F05A7CC E7A8006C */ swc1 $f8, 0x6c($sp) +/* 08F300 7F05A7D0 C48A0034 */ lwc1 $f10, 0x34($a0) +/* 08F304 7F05A7D4 8FA6006C */ lw $a2, 0x6c($sp) +/* 08F308 7F05A7D8 E7AA005C */ swc1 $f10, 0x5c($sp) +/* 08F30C 7F05A7DC C4840038 */ lwc1 $f4, 0x38($a0) +/* 08F310 7F05A7E0 C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 08F314 7F05A7E4 E7A4004C */ swc1 $f4, 0x4c($sp) +/* 08F318 7F05A7E8 C486003C */ lwc1 $f6, 0x3c($a0) +/* 08F31C 7F05A7EC E7A00064 */ swc1 $f0, 0x64($sp) +/* 08F320 7F05A7F0 E7AC0074 */ swc1 $f12, 0x74($sp) +/* 08F324 7F05A7F4 E7A6003C */ swc1 $f6, 0x3c($sp) +/* 08F328 7F05A7F8 C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 08F32C 7F05A7FC E7A20044 */ swc1 $f2, 0x44($sp) +/* 08F330 7F05A800 E7A20018 */ swc1 $f2, 0x18($sp) +/* 08F334 7F05A804 E7B00060 */ swc1 $f16, 0x60($sp) +/* 08F338 7F05A808 E7B00010 */ swc1 $f16, 0x10($sp) +/* 08F33C 7F05A80C E7AE0070 */ swc1 $f14, 0x70($sp) +/* 08F340 7F05A810 E7B20040 */ swc1 $f18, 0x40($sp) +/* 08F344 7F05A814 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 08F348 7F05A818 E7A80014 */ swc1 $f8, 0x14($sp) +/* 08F34C 7F05A81C 0FC16A4A */ jal matrix_3x3_determinant +/* 08F350 7F05A820 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 08F354 7F05A824 C7A40050 */ lwc1 $f4, 0x50($sp) +/* 08F358 7F05A828 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 08F35C 7F05A82C C7A80044 */ lwc1 $f8, 0x44($sp) +/* 08F360 7F05A830 E7A40010 */ swc1 $f4, 0x10($sp) +/* 08F364 7F05A834 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 08F368 7F05A838 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 08F36C 7F05A83C E7A00030 */ swc1 $f0, 0x30($sp) +/* 08F370 7F05A840 C7AC0074 */ lwc1 $f12, 0x74($sp) +/* 08F374 7F05A844 C7AE0070 */ lwc1 $f14, 0x70($sp) +/* 08F378 7F05A848 8FA6006C */ lw $a2, 0x6c($sp) +/* 08F37C 7F05A84C 8FA70054 */ lw $a3, 0x54($sp) +/* 08F380 7F05A850 E7A60014 */ swc1 $f6, 0x14($sp) +/* 08F384 7F05A854 E7A80018 */ swc1 $f8, 0x18($sp) +/* 08F388 7F05A858 E7A40020 */ swc1 $f4, 0x20($sp) +/* 08F38C 7F05A85C 0FC16A4A */ jal matrix_3x3_determinant +/* 08F390 7F05A860 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 08F394 7F05A864 C7A60050 */ lwc1 $f6, 0x50($sp) +/* 08F398 7F05A868 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 08F39C 7F05A86C C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 08F3A0 7F05A870 E7A60010 */ swc1 $f6, 0x10($sp) +/* 08F3A4 7F05A874 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 08F3A8 7F05A878 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 08F3AC 7F05A87C E7A00034 */ swc1 $f0, 0x34($sp) +/* 08F3B0 7F05A880 C7AC0064 */ lwc1 $f12, 0x64($sp) +/* 08F3B4 7F05A884 C7AE0060 */ lwc1 $f14, 0x60($sp) +/* 08F3B8 7F05A888 8FA6005C */ lw $a2, 0x5c($sp) +/* 08F3BC 7F05A88C 8FA70054 */ lw $a3, 0x54($sp) +/* 08F3C0 7F05A890 E7A80014 */ swc1 $f8, 0x14($sp) +/* 08F3C4 7F05A894 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 08F3C8 7F05A898 E7A60020 */ swc1 $f6, 0x20($sp) +/* 08F3CC 7F05A89C 0FC16A4A */ jal matrix_3x3_determinant +/* 08F3D0 7F05A8A0 E7A4001C */ swc1 $f4, 0x1c($sp) +/* 08F3D4 7F05A8A4 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 08F3D8 7F05A8A8 C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 08F3DC 7F05A8AC C7A40054 */ lwc1 $f4, 0x54($sp) +/* 08F3E0 7F05A8B0 E7A80010 */ swc1 $f8, 0x10($sp) +/* 08F3E4 7F05A8B4 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 08F3E8 7F05A8B8 C7A60050 */ lwc1 $f6, 0x50($sp) +/* 08F3EC 7F05A8BC E7A00038 */ swc1 $f0, 0x38($sp) +/* 08F3F0 7F05A8C0 C7AC0074 */ lwc1 $f12, 0x74($sp) +/* 08F3F4 7F05A8C4 C7AE0070 */ lwc1 $f14, 0x70($sp) +/* 08F3F8 7F05A8C8 8FA6006C */ lw $a2, 0x6c($sp) +/* 08F3FC 7F05A8CC 8FA70064 */ lw $a3, 0x64($sp) +/* 08F400 7F05A8D0 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 08F404 7F05A8D4 E7A40018 */ swc1 $f4, 0x18($sp) +/* 08F408 7F05A8D8 E7A80020 */ swc1 $f8, 0x20($sp) +/* 08F40C 7F05A8DC 0FC16A4A */ jal matrix_3x3_determinant +/* 08F410 7F05A8E0 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 08F414 7F05A8E4 C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 08F418 7F05A8E8 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 08F41C 7F05A8EC C7A80068 */ lwc1 $f8, 0x68($sp) +/* 08F420 7F05A8F0 8FBF002C */ lw $ra, 0x2c($sp) +/* 08F424 7F05A8F4 46045182 */ mul.s $f6, $f10, $f4 +/* 08F428 7F05A8F8 C7AA0034 */ lwc1 $f10, 0x34($sp) +/* 08F42C 7F05A8FC 460A4102 */ mul.s $f4, $f8, $f10 +/* 08F430 7F05A900 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 08F434 7F05A904 46043201 */ sub.s $f8, $f6, $f4 +/* 08F438 7F05A908 C7A60030 */ lwc1 $f6, 0x30($sp) +/* 08F43C 7F05A90C 46065102 */ mul.s $f4, $f10, $f6 +/* 08F440 7F05A910 C7A60048 */ lwc1 $f6, 0x48($sp) +/* 08F444 7F05A914 27BD0080 */ addiu $sp, $sp, 0x80 +/* 08F448 7F05A918 46044280 */ add.s $f10, $f8, $f4 +/* 08F44C 7F05A91C 46060202 */ mul.s $f8, $f0, $f6 +/* 08F450 7F05A920 03E00008 */ jr $ra +/* 08F454 7F05A924 46085001 */ sub.s $f0, $f10, $f8 +) +#endif + + +f32 matrix_2x2_determinant(f32 a, f32 c, f32 b, f32 d); + +f32 matrix_3x3_determinant(f32 a, f32 d, f32 g, f32 b, f32 e, f32 h, f32 c, f32 f, f32 i) { + f32 determinant = (a * matrix_2x2_determinant(e, h, f, i)) - (b * matrix_2x2_determinant(d, g, f, i)) + (c * matrix_2x2_determinant(d, g, e, h)); + return determinant; +} + +f32 matrix_2x2_determinant(f32 a, f32 c, f32 b, f32 d) { + return (a * d) - (c * b); +} \ No newline at end of file diff --git a/src/game/mp_music.c b/src/game/mp_music.c new file mode 100644 index 0000000..8c07481 --- /dev/null +++ b/src/game/mp_music.c @@ -0,0 +1,1390 @@ +#include "ultra64.h" +//#include "" + +// bss +//CODE.bss:8008C600 +s32 dword_CODE_bss_8008C600; +//CODE.bss:8008C604 +s32 dword_CODE_bss_8008C604; +//CODE.bss:8008C608 +s32 music_slot_active_0; +//CODE.bss:8008C60C +s32 music_slot_active_1; +//CODE.bss:8008C610 +s32 music_slot_active_2; +//CODE.bss:8008C614 +s32 music_slot_active_3; +//CODE.bss:8008C618 +s32 music_slot_minutes_0; +//CODE.bss:8008C61C +s32 music_slot_minutes_1; +//CODE.bss:8008C620 +s32 music_slot_minutes_2; +//CODE.bss:8008C624 +s32 music_slot_minutes_3; +//CODE.bss:8008C628 +s32 music_slot_seconds_0; +//CODE.bss:8008C62C +s32 music_slot_seconds_1; +//CODE.bss:8008C630 +s32 music_slot_seconds_2; +//CODE.bss:8008C634 +s32 music_slot_seconds_3; + + +// data +//D:800484C0 +s32 mission_state = 0; + + + + + +void sub_GAME_7F0C0C10(void) { + call_sfx_c_700091C8(); +} + +s32 get_mission_state(void) { + return mission_state; +} + + + + + + +#ifdef NONMATCHING +void set_missionstate(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +/*D:8005B790*/ +glabel jpt_8005B790 +.word .L7F0C0C74 +.word .L7F0C0D28 +.word .L7F0C0E18 +.word .L7F0C0EB0 +.word .L7F0C0FE8 +.word .L7F0C10B4 +.word .L7F0C115C + +/*D:8005B7AC*/ +glabel jpt_8005B7AC +.word .L7F0C11EC +.word .L7F0C0C94 +.word .L7F0C0D28 +.word .L7F0C0D28 +.word .L7F0C0CC8 +.word .L7F0C0D28 +.word .L7F0C0D28 + +/*D:8005B7C8*/ +glabel jpt_8005B7C8 +.word .L7F0C0D48 +.word .L7F0C0E18 +.word .L7F0C0D68 +.word .L7F0C0DAC +.word .L7F0C0E18 +.word .L7F0C0E18 +.word .L7F0C0DE4 + +glabel music_rate_8005B7E4 +.word 0x3ca3d70a /*0.02*/ + +/*D:8005B7E8*/ +glabel jpt_8005B7E8 +.word .L7F0C0E38 +.word .L7F0C0E58 +.word .L7F0C11EC +.word .L7F0C0E88 +.word .L7F0C0EB0 +.word .L7F0C0EB0 +.word .L7F0C0EB0 + +/*D:8005B804*/ +glabel jpt_8005B804 +.word .L7F0C0ED0 +.word .L7F0C0EF0 +.word .L7F0C0F20 +.word .L7F0C0FE8 +.word .L7F0C0F54 +.word .L7F0C0F9C +.word .L7F0C0FE8 + +/*D:8005B820*/ +glabel jpt_8005B820 +.word .L7F0C1008 +.word .L7F0C10B4 +.word .L7F0C10B4 +.word .L7F0C1028 +.word .L7F0C10B4 +.word .L7F0C1070 +.word .L7F0C10B4 + +/*D:8005B83C*/ +glabel jpt_8005B83C +.word .L7F0C10D4 +.word .L7F0C115C +.word .L7F0C115C +.word .L7F0C10F4 +.word .L7F0C112C +.word .L7F0C115C +.word .L7F0C115C + +/*D:8005B858*/ +glabel jpt_8005B858 +.word .L7F0C117C +.word .L7F0C119C +.word .L7F0C11E4 +.word .L7F0C11E4 +.word .L7F0C11E4 +.word .L7F0C11E4 +.word .L7F0C11CC + + +.text +glabel set_missionstate +/* 0F576C set_missionstate 3C038005 */ lui $v1, %hi(mission_state) +/* 0F5770 7F0C0C40 246384C0 */ addiu $v1, %lo(mission_state) # addiu $v1, $v1, -0x7b40 +/* 0F5774 7F0C0C44 8C620000 */ lw $v0, ($v1) +/* 0F5778 7F0C0C48 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F577C 7F0C0C4C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F5780 7F0C0C50 2C410007 */ sltiu $at, $v0, 7 +/* 0F5784 7F0C0C54 10200163 */ beqz $at, .L7F0C11E4 +/* 0F5788 7F0C0C58 AC640000 */ sw $a0, ($v1) +/* 0F578C 7F0C0C5C 00027080 */ sll $t6, $v0, 2 +/* 0F5790 7F0C0C60 3C018006 */ lui $at, %hi(jpt_8005B790) +/* 0F5794 7F0C0C64 002E0821 */ addu $at, $at, $t6 +/* 0F5798 7F0C0C68 8C2EB790 */ lw $t6, %lo(jpt_8005B790)($at) +/* 0F579C 7F0C0C6C 01C00008 */ jr $t6 +/* 0F57A0 7F0C0C70 00000000 */ nop +.L7F0C0C74: +/* 0F57A4 7F0C0C74 2C810007 */ sltiu $at, $a0, 7 +/* 0F57A8 7F0C0C78 1020002B */ beqz $at, .L7F0C0D28 +/* 0F57AC 7F0C0C7C 00047880 */ sll $t7, $a0, 2 +/* 0F57B0 7F0C0C80 3C018006 */ lui $at, %hi(jpt_8005B7AC) +/* 0F57B4 7F0C0C84 002F0821 */ addu $at, $at, $t7 +/* 0F57B8 7F0C0C88 8C2FB7AC */ lw $t7, %lo(jpt_8005B7AC)($at) +/* 0F57BC 7F0C0C8C 01E00008 */ jr $t7 +/* 0F57C0 7F0C0C90 00000000 */ nop +.L7F0C0C94: +/* 0F57C4 7F0C0C94 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F57C8 7F0C0C98 00000000 */ nop +/* 0F57CC 7F0C0C9C 0C001C0F */ jal musicTrack1Vol +/* 0F57D0 7F0C0CA0 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F57D4 7F0C0CA4 3C018002 */ lui $at, %hi(music1_playing) +/* 0F57D8 7F0C0CA8 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F57DC 7F0C0CAC AC20434C */ sw $zero, %lo(music1_playing)($at) +/* 0F57E0 7F0C0CB0 0FC349C8 */ jal getmusictrack_or_randomtrack +/* 0F57E4 7F0C0CB4 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F57E8 7F0C0CB8 0C001B9F */ jal musicTrack1Play +/* 0F57EC 7F0C0CBC 00402025 */ move $a0, $v0 +/* 0F57F0 7F0C0CC0 1000014B */ b .L7F0C11F0 +/* 0F57F4 7F0C0CC4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0CC8: +/* 0F57F8 7F0C0CC8 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F57FC 7F0C0CCC 00000000 */ nop +/* 0F5800 7F0C0CD0 0C001C0F */ jal musicTrack1Vol +/* 0F5804 7F0C0CD4 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5808 7F0C0CD8 3C018002 */ lui $at, %hi(music1_playing) +/* 0F580C 7F0C0CDC 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F5810 7F0C0CE0 AC20434C */ sw $zero, %lo(music1_playing)($at) +/* 0F5814 7F0C0CE4 0FC349C8 */ jal getmusictrack_or_randomtrack +/* 0F5818 7F0C0CE8 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F581C 7F0C0CEC 0C001B9F */ jal musicTrack1Play +/* 0F5820 7F0C0CF0 00402025 */ move $a0, $v0 +/* 0F5824 7F0C0CF4 0FC30304 */ jal sub_GAME_7F0C0C10 +/* 0F5828 7F0C0CF8 00000000 */ nop +/* 0F582C 7F0C0CFC 0C001DD3 */ jal musicTrack3Vol +/* 0F5830 7F0C0D00 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5834 7F0C0D04 3C018002 */ lui $at, %hi(music3_playing) +/* 0F5838 7F0C0D08 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F583C 7F0C0D0C AC204354 */ sw $zero, %lo(music3_playing)($at) +/* 0F5840 7F0C0D10 0FC34A12 */ jal sub_GAME_7F0D2848 +/* 0F5844 7F0C0D14 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F5848 7F0C0D18 0C001D63 */ jal music_related_3rd_block +/* 0F584C 7F0C0D1C 00402025 */ move $a0, $v0 +/* 0F5850 7F0C0D20 10000133 */ b .L7F0C11F0 +/* 0F5854 7F0C0D24 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0D28: +/* 0F5858 7F0C0D28 2C810007 */ sltiu $at, $a0, 7 +/* 0F585C 7F0C0D2C 1020003A */ beqz $at, .L7F0C0E18 +/* 0F5860 7F0C0D30 0004C080 */ sll $t8, $a0, 2 +/* 0F5864 7F0C0D34 3C018006 */ lui $at, %hi(jpt_8005B7C8) +/* 0F5868 7F0C0D38 00380821 */ addu $at, $at, $t8 +/* 0F586C 7F0C0D3C 8C38B7C8 */ lw $t8, %lo(jpt_8005B7C8)($at) +/* 0F5870 7F0C0D40 03000008 */ jr $t8 +/* 0F5874 7F0C0D44 00000000 */ nop +.L7F0C0D48: +/* 0F5878 7F0C0D48 0C001BF4 */ jal musicTrack1Stop +/* 0F587C 7F0C0D4C 00000000 */ nop +/* 0F5880 7F0C0D50 0C001CD6 */ jal musicTrack2Stop +/* 0F5884 7F0C0D54 00000000 */ nop +/* 0F5888 7F0C0D58 0C001DB8 */ jal musicTrack3Stop +/* 0F588C 7F0C0D5C 00000000 */ nop +/* 0F5890 7F0C0D60 10000123 */ b .L7F0C11F0 +/* 0F5894 7F0C0D64 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0D68: +/* 0F5898 7F0C0D68 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F589C 7F0C0D6C 00000000 */ nop +/* 0F58A0 7F0C0D70 0C001CF1 */ jal musicTrack2Vol +/* 0F58A4 7F0C0D74 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F58A8 7F0C0D78 3C018002 */ lui $at, %hi(music2_playing) +/* 0F58AC 7F0C0D7C 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F58B0 7F0C0D80 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F58B4 7F0C0D84 0FC34A24 */ jal sub_GAME_7F0D2890 +/* 0F58B8 7F0C0D88 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F58BC 7F0C0D8C 0C001C81 */ jal musicTrack2Play +/* 0F58C0 7F0C0D90 00402025 */ move $a0, $v0 +/* 0F58C4 7F0C0D94 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F58C8 7F0C0D98 44816000 */ mtc1 $at, $f12 +/* 0F58CC 7F0C0D9C 0C001C3E */ jal music_related_1 +/* 0F58D0 7F0C0DA0 00000000 */ nop +/* 0F58D4 7F0C0DA4 10000112 */ b .L7F0C11F0 +/* 0F58D8 7F0C0DA8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0DAC: +/* 0F58DC 7F0C0DAC 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F58E0 7F0C0DB0 00000000 */ nop +/* 0F58E4 7F0C0DB4 0C001CF1 */ jal musicTrack2Vol +/* 0F58E8 7F0C0DB8 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F58EC 7F0C0DBC 3C018002 */ lui $at, %hi(music2_playing) +/* 0F58F0 7F0C0DC0 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F58F4 7F0C0DC4 0C001C81 */ jal musicTrack2Play +/* 0F58F8 7F0C0DC8 24040018 */ li $a0, 24 +/* 0F58FC 7F0C0DCC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5900 7F0C0DD0 44816000 */ mtc1 $at, $f12 +/* 0F5904 7F0C0DD4 0C001C3E */ jal music_related_1 +/* 0F5908 7F0C0DD8 00000000 */ nop +/* 0F590C 7F0C0DDC 10000104 */ b .L7F0C11F0 +/* 0F5910 7F0C0DE0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0DE4: +/* 0F5914 7F0C0DE4 3C018006 */ lui $at, %hi(music_rate_8005B7E4) +/* 0F5918 7F0C0DE8 0C001C3E */ jal music_related_1 +/* 0F591C 7F0C0DEC C42CB7E4 */ lwc1 $f12, %lo(music_rate_8005B7E4)($at) +/* 0F5920 7F0C0DF0 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5924 7F0C0DF4 00000000 */ nop +/* 0F5928 7F0C0DF8 0C001CF1 */ jal musicTrack2Vol +/* 0F592C 7F0C0DFC 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5930 7F0C0E00 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5934 7F0C0E04 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5938 7F0C0E08 0C001C81 */ jal musicTrack2Play +/* 0F593C 7F0C0E0C 2404003A */ li $a0, 58 +/* 0F5940 7F0C0E10 100000F7 */ b .L7F0C11F0 +/* 0F5944 7F0C0E14 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0E18: +/* 0F5948 7F0C0E18 2C810007 */ sltiu $at, $a0, 7 +/* 0F594C 7F0C0E1C 10200024 */ beqz $at, .L7F0C0EB0 +/* 0F5950 7F0C0E20 0004C880 */ sll $t9, $a0, 2 +/* 0F5954 7F0C0E24 3C018006 */ lui $at, %hi(jpt_8005B7E8) +/* 0F5958 7F0C0E28 00390821 */ addu $at, $at, $t9 +/* 0F595C 7F0C0E2C 8C39B7E8 */ lw $t9, %lo(jpt_8005B7E8)($at) +/* 0F5960 7F0C0E30 03200008 */ jr $t9 +/* 0F5964 7F0C0E34 00000000 */ nop +.L7F0C0E38: +/* 0F5968 7F0C0E38 0C001BF4 */ jal musicTrack1Stop +/* 0F596C 7F0C0E3C 00000000 */ nop +/* 0F5970 7F0C0E40 0C001CD6 */ jal musicTrack2Stop +/* 0F5974 7F0C0E44 00000000 */ nop +/* 0F5978 7F0C0E48 0C001DB8 */ jal musicTrack3Stop +/* 0F597C 7F0C0E4C 00000000 */ nop +/* 0F5980 7F0C0E50 100000E7 */ b .L7F0C11F0 +/* 0F5984 7F0C0E54 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0E58: +/* 0F5988 7F0C0E58 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F598C 7F0C0E5C 00000000 */ nop +/* 0F5990 7F0C0E60 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5994 7F0C0E64 44816000 */ mtc1 $at, $f12 +/* 0F5998 7F0C0E68 0C001C5A */ jal music_related_3 +/* 0F599C 7F0C0E6C 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F59A0 7F0C0E70 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F59A4 7F0C0E74 44816000 */ mtc1 $at, $f12 +/* 0F59A8 7F0C0E78 0C001D20 */ jal music_related_6 +/* 0F59AC 7F0C0E7C 00000000 */ nop +/* 0F59B0 7F0C0E80 100000DB */ b .L7F0C11F0 +/* 0F59B4 7F0C0E84 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0E88: +/* 0F59B8 7F0C0E88 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F59BC 7F0C0E8C 00000000 */ nop +/* 0F59C0 7F0C0E90 0C001CF1 */ jal musicTrack2Vol +/* 0F59C4 7F0C0E94 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F59C8 7F0C0E98 3C018002 */ lui $at, %hi(music2_playing) +/* 0F59CC 7F0C0E9C AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F59D0 7F0C0EA0 0C001C81 */ jal musicTrack2Play +/* 0F59D4 7F0C0EA4 24040018 */ li $a0, 24 +/* 0F59D8 7F0C0EA8 100000D1 */ b .L7F0C11F0 +/* 0F59DC 7F0C0EAC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0EB0: +/* 0F59E0 7F0C0EB0 2C810007 */ sltiu $at, $a0, 7 +/* 0F59E4 7F0C0EB4 1020004C */ beqz $at, .L7F0C0FE8 +/* 0F59E8 7F0C0EB8 00044080 */ sll $t0, $a0, 2 +/* 0F59EC 7F0C0EBC 3C018006 */ lui $at, %hi(jpt_8005B804) +/* 0F59F0 7F0C0EC0 00280821 */ addu $at, $at, $t0 +/* 0F59F4 7F0C0EC4 8C28B804 */ lw $t0, %lo(jpt_8005B804)($at) +/* 0F59F8 7F0C0EC8 01000008 */ jr $t0 +/* 0F59FC 7F0C0ECC 00000000 */ nop +.L7F0C0ED0: +/* 0F5A00 7F0C0ED0 0C001BF4 */ jal musicTrack1Stop +/* 0F5A04 7F0C0ED4 00000000 */ nop +/* 0F5A08 7F0C0ED8 0C001CD6 */ jal musicTrack2Stop +/* 0F5A0C 7F0C0EDC 00000000 */ nop +/* 0F5A10 7F0C0EE0 0C001DB8 */ jal musicTrack3Stop +/* 0F5A14 7F0C0EE4 00000000 */ nop +/* 0F5A18 7F0C0EE8 100000C1 */ b .L7F0C11F0 +/* 0F5A1C 7F0C0EEC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0EF0: +/* 0F5A20 7F0C0EF0 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5A24 7F0C0EF4 00000000 */ nop +/* 0F5A28 7F0C0EF8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F5A2C 7F0C0EFC 44816000 */ mtc1 $at, $f12 +/* 0F5A30 7F0C0F00 0C001C5A */ jal music_related_3 +/* 0F5A34 7F0C0F04 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F5A38 7F0C0F08 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F5A3C 7F0C0F0C 44816000 */ mtc1 $at, $f12 +/* 0F5A40 7F0C0F10 0C001D20 */ jal music_related_6 +/* 0F5A44 7F0C0F14 00000000 */ nop +/* 0F5A48 7F0C0F18 100000B5 */ b .L7F0C11F0 +/* 0F5A4C 7F0C0F1C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0F20: +/* 0F5A50 7F0C0F20 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5A54 7F0C0F24 00000000 */ nop +/* 0F5A58 7F0C0F28 0C001CF1 */ jal musicTrack2Vol +/* 0F5A5C 7F0C0F2C 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5A60 7F0C0F30 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5A64 7F0C0F34 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F5A68 7F0C0F38 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5A6C 7F0C0F3C 0FC34A24 */ jal sub_GAME_7F0D2890 +/* 0F5A70 7F0C0F40 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F5A74 7F0C0F44 0C001C81 */ jal musicTrack2Play +/* 0F5A78 7F0C0F48 00402025 */ move $a0, $v0 +/* 0F5A7C 7F0C0F4C 100000A8 */ b .L7F0C11F0 +/* 0F5A80 7F0C0F50 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0F54: +/* 0F5A84 7F0C0F54 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5A88 7F0C0F58 00000000 */ nop +/* 0F5A8C 7F0C0F5C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F5A90 7F0C0F60 44816000 */ mtc1 $at, $f12 +/* 0F5A94 7F0C0F64 0C001C5A */ jal music_related_3 +/* 0F5A98 7F0C0F68 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F5A9C 7F0C0F6C 0FC30304 */ jal sub_GAME_7F0C0C10 +/* 0F5AA0 7F0C0F70 00000000 */ nop +/* 0F5AA4 7F0C0F74 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F5AA8 7F0C0F78 44816000 */ mtc1 $at, $f12 +/* 0F5AAC 7F0C0F7C 0C001E1E */ jal music_related_13 +/* 0F5AB0 7F0C0F80 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F5AB4 7F0C0F84 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F5AB8 7F0C0F88 44816000 */ mtc1 $at, $f12 +/* 0F5ABC 7F0C0F8C 0C001D20 */ jal music_related_6 +/* 0F5AC0 7F0C0F90 00000000 */ nop +/* 0F5AC4 7F0C0F94 10000096 */ b .L7F0C11F0 +/* 0F5AC8 7F0C0F98 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0F9C: +/* 0F5ACC 7F0C0F9C 0FC30304 */ jal sub_GAME_7F0C0C10 +/* 0F5AD0 7F0C0FA0 00000000 */ nop +/* 0F5AD4 7F0C0FA4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F5AD8 7F0C0FA8 44816000 */ mtc1 $at, $f12 +/* 0F5ADC 7F0C0FAC 0C001E1E */ jal music_related_13 +/* 0F5AE0 7F0C0FB0 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F5AE4 7F0C0FB4 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5AE8 7F0C0FB8 00000000 */ nop +/* 0F5AEC 7F0C0FBC 0C001CF1 */ jal musicTrack2Vol +/* 0F5AF0 7F0C0FC0 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5AF4 7F0C0FC4 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5AF8 7F0C0FC8 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F5AFC 7F0C0FCC AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5B00 7F0C0FD0 0FC34A24 */ jal sub_GAME_7F0D2890 +/* 0F5B04 7F0C0FD4 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F5B08 7F0C0FD8 0C001C81 */ jal musicTrack2Play +/* 0F5B0C 7F0C0FDC 00402025 */ move $a0, $v0 +/* 0F5B10 7F0C0FE0 10000083 */ b .L7F0C11F0 +/* 0F5B14 7F0C0FE4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0FE8: +/* 0F5B18 7F0C0FE8 2C810007 */ sltiu $at, $a0, 7 +/* 0F5B1C 7F0C0FEC 10200031 */ beqz $at, .L7F0C10B4 +/* 0F5B20 7F0C0FF0 00044880 */ sll $t1, $a0, 2 +/* 0F5B24 7F0C0FF4 3C018006 */ lui $at, %hi(jpt_8005B820) +/* 0F5B28 7F0C0FF8 00290821 */ addu $at, $at, $t1 +/* 0F5B2C 7F0C0FFC 8C29B820 */ lw $t1, %lo(jpt_8005B820)($at) +/* 0F5B30 7F0C1000 01200008 */ jr $t1 +/* 0F5B34 7F0C1004 00000000 */ nop +.L7F0C1008: +/* 0F5B38 7F0C1008 0C001BF4 */ jal musicTrack1Stop +/* 0F5B3C 7F0C100C 00000000 */ nop +/* 0F5B40 7F0C1010 0C001CD6 */ jal musicTrack2Stop +/* 0F5B44 7F0C1014 00000000 */ nop +/* 0F5B48 7F0C1018 0C001DB8 */ jal musicTrack3Stop +/* 0F5B4C 7F0C101C 00000000 */ nop +/* 0F5B50 7F0C1020 10000073 */ b .L7F0C11F0 +/* 0F5B54 7F0C1024 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C1028: +/* 0F5B58 7F0C1028 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5B5C 7F0C102C 00000000 */ nop +/* 0F5B60 7F0C1030 0C001CF1 */ jal musicTrack2Vol +/* 0F5B64 7F0C1034 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5B68 7F0C1038 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5B6C 7F0C103C AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5B70 7F0C1040 0C001C81 */ jal musicTrack2Play +/* 0F5B74 7F0C1044 24040018 */ li $a0, 24 +/* 0F5B78 7F0C1048 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5B7C 7F0C104C 44816000 */ mtc1 $at, $f12 +/* 0F5B80 7F0C1050 0C001C3E */ jal music_related_1 +/* 0F5B84 7F0C1054 00000000 */ nop +/* 0F5B88 7F0C1058 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5B8C 7F0C105C 44816000 */ mtc1 $at, $f12 +/* 0F5B90 7F0C1060 0C001E02 */ jal music_related_11 +/* 0F5B94 7F0C1064 00000000 */ nop +/* 0F5B98 7F0C1068 10000061 */ b .L7F0C11F0 +/* 0F5B9C 7F0C106C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C1070: +/* 0F5BA0 7F0C1070 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5BA4 7F0C1074 00000000 */ nop +/* 0F5BA8 7F0C1078 0C001CF1 */ jal musicTrack2Vol +/* 0F5BAC 7F0C107C 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5BB0 7F0C1080 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5BB4 7F0C1084 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F5BB8 7F0C1088 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5BBC 7F0C108C 0FC34A24 */ jal sub_GAME_7F0D2890 +/* 0F5BC0 7F0C1090 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F5BC4 7F0C1094 0C001C81 */ jal musicTrack2Play +/* 0F5BC8 7F0C1098 00402025 */ move $a0, $v0 +/* 0F5BCC 7F0C109C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5BD0 7F0C10A0 44816000 */ mtc1 $at, $f12 +/* 0F5BD4 7F0C10A4 0C001C3E */ jal music_related_1 +/* 0F5BD8 7F0C10A8 00000000 */ nop +/* 0F5BDC 7F0C10AC 10000050 */ b .L7F0C11F0 +/* 0F5BE0 7F0C10B0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C10B4: +/* 0F5BE4 7F0C10B4 2C810007 */ sltiu $at, $a0, 7 +/* 0F5BE8 7F0C10B8 10200028 */ beqz $at, .L7F0C115C +/* 0F5BEC 7F0C10BC 00045080 */ sll $t2, $a0, 2 +/* 0F5BF0 7F0C10C0 3C018006 */ lui $at, %hi(jpt_8005B83C) +/* 0F5BF4 7F0C10C4 002A0821 */ addu $at, $at, $t2 +/* 0F5BF8 7F0C10C8 8C2AB83C */ lw $t2, %lo(jpt_8005B83C)($at) +/* 0F5BFC 7F0C10CC 01400008 */ jr $t2 +/* 0F5C00 7F0C10D0 00000000 */ nop +.L7F0C10D4: +/* 0F5C04 7F0C10D4 0C001BF4 */ jal musicTrack1Stop +/* 0F5C08 7F0C10D8 00000000 */ nop +/* 0F5C0C 7F0C10DC 0C001CD6 */ jal musicTrack2Stop +/* 0F5C10 7F0C10E0 00000000 */ nop +/* 0F5C14 7F0C10E4 0C001DB8 */ jal musicTrack3Stop +/* 0F5C18 7F0C10E8 00000000 */ nop +/* 0F5C1C 7F0C10EC 10000040 */ b .L7F0C11F0 +/* 0F5C20 7F0C10F0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C10F4: +/* 0F5C24 7F0C10F4 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5C28 7F0C10F8 00000000 */ nop +/* 0F5C2C 7F0C10FC 0C001CF1 */ jal musicTrack2Vol +/* 0F5C30 7F0C1100 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5C34 7F0C1104 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5C38 7F0C1108 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5C3C 7F0C110C 0C001C81 */ jal musicTrack2Play +/* 0F5C40 7F0C1110 24040018 */ li $a0, 24 +/* 0F5C44 7F0C1114 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5C48 7F0C1118 44816000 */ mtc1 $at, $f12 +/* 0F5C4C 7F0C111C 0C001E02 */ jal music_related_11 +/* 0F5C50 7F0C1120 00000000 */ nop +/* 0F5C54 7F0C1124 10000032 */ b .L7F0C11F0 +/* 0F5C58 7F0C1128 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C112C: +/* 0F5C5C 7F0C112C 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5C60 7F0C1130 00000000 */ nop +/* 0F5C64 7F0C1134 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5C68 7F0C1138 44816000 */ mtc1 $at, $f12 +/* 0F5C6C 7F0C113C 0C001C5A */ jal music_related_3 +/* 0F5C70 7F0C1140 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F5C74 7F0C1144 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5C78 7F0C1148 44816000 */ mtc1 $at, $f12 +/* 0F5C7C 7F0C114C 0C001D20 */ jal music_related_6 +/* 0F5C80 7F0C1150 00000000 */ nop +/* 0F5C84 7F0C1154 10000026 */ b .L7F0C11F0 +/* 0F5C88 7F0C1158 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C115C: +/* 0F5C8C 7F0C115C 2C810007 */ sltiu $at, $a0, 7 +/* 0F5C90 7F0C1160 10200020 */ beqz $at, .L7F0C11E4 +/* 0F5C94 7F0C1164 00045880 */ sll $t3, $a0, 2 +/* 0F5C98 7F0C1168 3C018006 */ lui $at, %hi(jpt_8005B858) +/* 0F5C9C 7F0C116C 002B0821 */ addu $at, $at, $t3 +/* 0F5CA0 7F0C1170 8C2BB858 */ lw $t3, %lo(jpt_8005B858)($at) +/* 0F5CA4 7F0C1174 01600008 */ jr $t3 +/* 0F5CA8 7F0C1178 00000000 */ nop +.L7F0C117C: +/* 0F5CAC 7F0C117C 0C001BF4 */ jal musicTrack1Stop +/* 0F5CB0 7F0C1180 00000000 */ nop +/* 0F5CB4 7F0C1184 0C001CD6 */ jal musicTrack2Stop +/* 0F5CB8 7F0C1188 00000000 */ nop +/* 0F5CBC 7F0C118C 0C001DB8 */ jal musicTrack3Stop +/* 0F5CC0 7F0C1190 00000000 */ nop +/* 0F5CC4 7F0C1194 10000016 */ b .L7F0C11F0 +/* 0F5CC8 7F0C1198 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C119C: +/* 0F5CCC 7F0C119C 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5CD0 7F0C11A0 00000000 */ nop +/* 0F5CD4 7F0C11A4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0F5CD8 7F0C11A8 44816000 */ mtc1 $at, $f12 +/* 0F5CDC 7F0C11AC 0C001C5A */ jal music_related_3 +/* 0F5CE0 7F0C11B0 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F5CE4 7F0C11B4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0F5CE8 7F0C11B8 44816000 */ mtc1 $at, $f12 +/* 0F5CEC 7F0C11BC 0C001D20 */ jal music_related_6 +/* 0F5CF0 7F0C11C0 00000000 */ nop +/* 0F5CF4 7F0C11C4 1000000A */ b .L7F0C11F0 +/* 0F5CF8 7F0C11C8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C11CC: +/* 0F5CFC 7F0C11CC 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5D00 7F0C11D0 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5D04 7F0C11D4 0C001C81 */ jal musicTrack2Play +/* 0F5D08 7F0C11D8 2404003A */ li $a0, 58 +/* 0F5D0C 7F0C11DC 10000004 */ b .L7F0C11F0 +/* 0F5D10 7F0C11E0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C11E4: +/* 0F5D14 7F0C11E4 1000FFFF */ b .L7F0C11E4 +/* 0F5D18 7F0C11E8 00000000 */ nop +.L7F0C11EC: +/* 0F5D1C 7F0C11EC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C11F0: +/* 0F5D20 7F0C11F0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F5D24 7F0C11F4 03E00008 */ jr $ra +/* 0F5D28 7F0C11F8 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( + .late_rodata +/*D:8005B790*/ +glabel jpt_8005B790 +.word .Ljp7F0C1904 +.word .Ljp7F0C19D8 +.word .Ljp7F0C1AC8 +.word .Ljp7F0C1B60 +.word .Ljp7F0C1C98 +.word .Ljp7F0C1D64 +.word .Ljp7F0C1E0C + +/*D:8005B7AC*/ +glabel jpt_8005B7AC +.word .Ljp7F0C1924 +.word .Ljp7F0C1944 +.word .Ljp7F0C19D8 +.word .Ljp7F0C19D8 +.word .Ljp7F0C1978 +.word .Ljp7F0C19D8 +.word .Ljp7F0C19D8 + + +/*D:8005B7C8*/ +glabel jpt_8005B7C8 +.word .Ljp7F0C19F8 +.word .Ljp7F0C1AC8 +.word .Ljp7F0C1A18 +.word .Ljp7F0C1A5C +.word .Ljp7F0C1AC8 +.word .Ljp7F0C1AC8 +.word .Ljp7F0C1A94 + +glabel music_rate_8005B7E4 +.word 0x3ca3d70a /*0.02*/ + +/*D:8005B7E8*/ +glabel jpt_8005B7E8 +.word .Ljp7F0C1AE8 +.word .Ljp7F0C1B08 +.word .Ljp7F0C1E9C +.word .Ljp7F0C1B38 +.word .Ljp7F0C1B60 +.word .Ljp7F0C1B60 +.word .Ljp7F0C1B60 + +/*D:8005B804*/ +glabel jpt_8005B804 +.word .Ljp7F0C1B80 +.word .Ljp7F0C1BA0 +.word .Ljp7F0C1BD0 +.word .Ljp7F0C1C98 +.word .Ljp7F0C1C04 +.word .Ljp7F0C1C4C +.word .Ljp7F0C1C98 + +/*D:8005B820*/ +glabel jpt_8005B820 +.word .Ljp7F0C1CB8 +.word .Ljp7F0C1D64 +.word .Ljp7F0C1D64 +.word .Ljp7F0C1CD8 +.word .Ljp7F0C1D64 +.word .Ljp7F0C1D20 +.word .Ljp7F0C1D64 + +/*D:8005B83C*/ +glabel jpt_8005B83C +.word .Ljp7F0C1D84 +.word .Ljp7F0C1E0C +.word .Ljp7F0C1E0C +.word .Ljp7F0C1DA4 +.word .Ljp7F0C1DDC +.word .Ljp7F0C1E0C +.word .Ljp7F0C1E0C + +/*D:8005B858*/ +glabel jpt_8005B858 +.word .Ljp7F0C1E2C +.word .Ljp7F0C1E4C +.word .Ljp7F0C1E94 +.word .Ljp7F0C1E94 +.word .Ljp7F0C1E94 +.word .Ljp7F0C1E94 +.word .Ljp7F0C1E7C + +.text +glabel set_missionstate +/* 0F643C 7F0C18CC 3C038005 */ lui $v1, %hi(mission_state) # $v1, 0x8005 +/* 0F6440 7F0C18D0 246384F0 */ addiu $v1, %lo(mission_state) # addiu $v1, $v1, -0x7b10 +/* 0F6444 7F0C18D4 8C620000 */ lw $v0, ($v1) +/* 0F6448 7F0C18D8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F644C 7F0C18DC AFBF0014 */ sw $ra, 0x14($sp) +/* 0F6450 7F0C18E0 2C410007 */ sltiu $at, $v0, 7 +/* 0F6454 7F0C18E4 1020016B */ beqz $at, .Ljp7F0C1E94 +/* 0F6458 7F0C18E8 AC640000 */ sw $a0, ($v1) +/* 0F645C 7F0C18EC 00027080 */ sll $t6, $v0, 2 +/* 0F6460 7F0C18F0 3C018006 */ lui $at, %hi(jpt_8005B790) +/* 0F6464 7F0C18F4 002E0821 */ addu $at, $at, $t6 +/* 0F6468 7F0C18F8 8C2EB7D0 */ lw $t6, %lo(jpt_8005B790)($at) +/* 0F646C 7F0C18FC 01C00008 */ jr $t6 +/* 0F6470 7F0C1900 00000000 */ nop +.Ljp7F0C1904: +/* 0F6474 7F0C1904 2C810007 */ sltiu $at, $a0, 7 +/* 0F6478 7F0C1908 10200033 */ beqz $at, .Ljp7F0C19D8 +/* 0F647C 7F0C190C 00047880 */ sll $t7, $a0, 2 +/* 0F6480 7F0C1910 3C018006 */ lui $at, %hi(jpt_8005B7AC) +/* 0F6484 7F0C1914 002F0821 */ addu $at, $at, $t7 +/* 0F6488 7F0C1918 8C2FB7EC */ lw $t7, %lo(jpt_8005B7AC)($at) +/* 0F648C 7F0C191C 01E00008 */ jr $t7 +/* 0F6490 7F0C1920 00000000 */ nop +.Ljp7F0C1924: +/* 0F6494 7F0C1924 0C001BF8 */ jal musicTrack1Stop +/* 0F6498 7F0C1928 00000000 */ nop +/* 0F649C 7F0C192C 0C001CDA */ jal musicTrack2Stop +/* 0F64A0 7F0C1930 00000000 */ nop +/* 0F64A4 7F0C1934 0C001DBC */ jal musicTrack3Stop +/* 0F64A8 7F0C1938 00000000 */ nop +/* 0F64AC 7F0C193C 10000158 */ b .Ljp7F0C1EA0 +/* 0F64B0 7F0C1940 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1944: +/* 0F64B4 7F0C1944 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F64B8 7F0C1948 00000000 */ nop +/* 0F64BC 7F0C194C 0C001C13 */ jal musicTrack1Vol +/* 0F64C0 7F0C1950 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F64C4 7F0C1954 3C018002 */ lui $at, %hi(music1_playing) # $at, 0x8002 +/* 0F64C8 7F0C1958 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 +/* 0F64CC 7F0C195C AC20438C */ sw $zero, %lo(music1_playing)($at) +/* 0F64D0 7F0C1960 0FC34D00 */ jal getmusictrack_or_randomtrack +/* 0F64D4 7F0C1964 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F64D8 7F0C1968 0C001BA3 */ jal musicTrack1Play +/* 0F64DC 7F0C196C 00402025 */ move $a0, $v0 +/* 0F64E0 7F0C1970 1000014B */ b .Ljp7F0C1EA0 +/* 0F64E4 7F0C1974 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1978: +/* 0F64E8 7F0C1978 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F64EC 7F0C197C 00000000 */ nop +/* 0F64F0 7F0C1980 0C001C13 */ jal musicTrack1Vol +/* 0F64F4 7F0C1984 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F64F8 7F0C1988 3C018002 */ lui $at, %hi(music1_playing) # $at, 0x8002 +/* 0F64FC 7F0C198C 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 +/* 0F6500 7F0C1990 AC20438C */ sw $zero, %lo(music1_playing)($at) +/* 0F6504 7F0C1994 0FC34D00 */ jal getmusictrack_or_randomtrack +/* 0F6508 7F0C1998 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F650C 7F0C199C 0C001BA3 */ jal musicTrack1Play +/* 0F6510 7F0C19A0 00402025 */ move $a0, $v0 +/* 0F6514 7F0C19A4 0FC30628 */ jal sub_GAME_7F0C0C10 +/* 0F6518 7F0C19A8 00000000 */ nop +/* 0F651C 7F0C19AC 0C001DD7 */ jal musicTrack3Vol +/* 0F6520 7F0C19B0 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F6524 7F0C19B4 3C018002 */ lui $at, %hi(music3_playing) # $at, 0x8002 +/* 0F6528 7F0C19B8 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 +/* 0F652C 7F0C19BC AC204394 */ sw $zero, %lo(music3_playing)($at) +/* 0F6530 7F0C19C0 0FC34D4A */ jal sub_GAME_7F0D2848 +/* 0F6534 7F0C19C4 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F6538 7F0C19C8 0C001D67 */ jal music_related_3rd_block +/* 0F653C 7F0C19CC 00402025 */ move $a0, $v0 +/* 0F6540 7F0C19D0 10000133 */ b .Ljp7F0C1EA0 +/* 0F6544 7F0C19D4 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C19D8: +/* 0F6548 7F0C19D8 2C810007 */ sltiu $at, $a0, 7 +/* 0F654C 7F0C19DC 1020003A */ beqz $at, .Ljp7F0C1AC8 +/* 0F6550 7F0C19E0 0004C080 */ sll $t8, $a0, 2 +/* 0F6554 7F0C19E4 3C018006 */ lui $at, %hi(jpt_8005B7C8) +/* 0F6558 7F0C19E8 00380821 */ addu $at, $at, $t8 +/* 0F655C 7F0C19EC 8C38B808 */ lw $t8, %lo(jpt_8005B7C8)($at) +/* 0F6560 7F0C19F0 03000008 */ jr $t8 +/* 0F6564 7F0C19F4 00000000 */ nop +.Ljp7F0C19F8: +/* 0F6568 7F0C19F8 0C001BF8 */ jal musicTrack1Stop +/* 0F656C 7F0C19FC 00000000 */ nop +/* 0F6570 7F0C1A00 0C001CDA */ jal musicTrack2Stop +/* 0F6574 7F0C1A04 00000000 */ nop +/* 0F6578 7F0C1A08 0C001DBC */ jal musicTrack3Stop +/* 0F657C 7F0C1A0C 00000000 */ nop +/* 0F6580 7F0C1A10 10000123 */ b .Ljp7F0C1EA0 +/* 0F6584 7F0C1A14 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1A18: +/* 0F6588 7F0C1A18 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F658C 7F0C1A1C 00000000 */ nop +/* 0F6590 7F0C1A20 0C001CF5 */ jal musicTrack2Vol +/* 0F6594 7F0C1A24 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F6598 7F0C1A28 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F659C 7F0C1A2C 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 +/* 0F65A0 7F0C1A30 AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F65A4 7F0C1A34 0FC34D5C */ jal sub_GAME_7F0D2890 +/* 0F65A8 7F0C1A38 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F65AC 7F0C1A3C 0C001C85 */ jal musicTrack2Play +/* 0F65B0 7F0C1A40 00402025 */ move $a0, $v0 +/* 0F65B4 7F0C1A44 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F65B8 7F0C1A48 44816000 */ mtc1 $at, $f12 +/* 0F65BC 7F0C1A4C 0C001C42 */ jal music_related_1 +/* 0F65C0 7F0C1A50 00000000 */ nop +/* 0F65C4 7F0C1A54 10000112 */ b .Ljp7F0C1EA0 +/* 0F65C8 7F0C1A58 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1A5C: +/* 0F65CC 7F0C1A5C 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F65D0 7F0C1A60 00000000 */ nop +/* 0F65D4 7F0C1A64 0C001CF5 */ jal musicTrack2Vol +/* 0F65D8 7F0C1A68 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F65DC 7F0C1A6C 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F65E0 7F0C1A70 AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F65E4 7F0C1A74 0C001C85 */ jal musicTrack2Play +/* 0F65E8 7F0C1A78 24040018 */ li $a0, 24 +/* 0F65EC 7F0C1A7C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F65F0 7F0C1A80 44816000 */ mtc1 $at, $f12 +/* 0F65F4 7F0C1A84 0C001C42 */ jal music_related_1 +/* 0F65F8 7F0C1A88 00000000 */ nop +/* 0F65FC 7F0C1A8C 10000104 */ b .Ljp7F0C1EA0 +/* 0F6600 7F0C1A90 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1A94: +/* 0F6604 7F0C1A94 3C018006 */ lui $at, %hi(music_rate_8005B7E4) # $at, 0x8006 +/* 0F6608 7F0C1A98 0C001C42 */ jal music_related_1 +/* 0F660C 7F0C1A9C C42CB824 */ lwc1 $f12, %lo(music_rate_8005B7E4)($at) +/* 0F6610 7F0C1AA0 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F6614 7F0C1AA4 00000000 */ nop +/* 0F6618 7F0C1AA8 0C001CF5 */ jal musicTrack2Vol +/* 0F661C 7F0C1AAC 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F6620 7F0C1AB0 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F6624 7F0C1AB4 AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F6628 7F0C1AB8 0C001C85 */ jal musicTrack2Play +/* 0F662C 7F0C1ABC 2404003A */ li $a0, 58 +/* 0F6630 7F0C1AC0 100000F7 */ b .Ljp7F0C1EA0 +/* 0F6634 7F0C1AC4 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1AC8: +/* 0F6638 7F0C1AC8 2C810007 */ sltiu $at, $a0, 7 +/* 0F663C 7F0C1ACC 10200024 */ beqz $at, .Ljp7F0C1B60 +/* 0F6640 7F0C1AD0 0004C880 */ sll $t9, $a0, 2 +/* 0F6644 7F0C1AD4 3C018006 */ lui $at, 0x8006 +/* 0F6648 7F0C1AD8 00390821 */ addu $at, $at, $t9 +/* 0F664C 7F0C1ADC 8C39B828 */ lw $t9, -0x47d8($at) +/* 0F6650 7F0C1AE0 03200008 */ jr $t9 +/* 0F6654 7F0C1AE4 00000000 */ nop +.Ljp7F0C1AE8: +/* 0F6658 7F0C1AE8 0C001BF8 */ jal musicTrack1Stop +/* 0F665C 7F0C1AEC 00000000 */ nop +/* 0F6660 7F0C1AF0 0C001CDA */ jal musicTrack2Stop +/* 0F6664 7F0C1AF4 00000000 */ nop +/* 0F6668 7F0C1AF8 0C001DBC */ jal musicTrack3Stop +/* 0F666C 7F0C1AFC 00000000 */ nop +/* 0F6670 7F0C1B00 100000E7 */ b .Ljp7F0C1EA0 +/* 0F6674 7F0C1B04 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1B08: +/* 0F6678 7F0C1B08 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F667C 7F0C1B0C 00000000 */ nop +/* 0F6680 7F0C1B10 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F6684 7F0C1B14 44816000 */ mtc1 $at, $f12 +/* 0F6688 7F0C1B18 0C001C5E */ jal music_related_3 +/* 0F668C 7F0C1B1C 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F6690 7F0C1B20 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F6694 7F0C1B24 44816000 */ mtc1 $at, $f12 +/* 0F6698 7F0C1B28 0C001D24 */ jal music_related_6 +/* 0F669C 7F0C1B2C 00000000 */ nop +/* 0F66A0 7F0C1B30 100000DB */ b .Ljp7F0C1EA0 +/* 0F66A4 7F0C1B34 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1B38: +/* 0F66A8 7F0C1B38 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F66AC 7F0C1B3C 00000000 */ nop +/* 0F66B0 7F0C1B40 0C001CF5 */ jal musicTrack2Vol +/* 0F66B4 7F0C1B44 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F66B8 7F0C1B48 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F66BC 7F0C1B4C AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F66C0 7F0C1B50 0C001C85 */ jal musicTrack2Play +/* 0F66C4 7F0C1B54 24040018 */ li $a0, 24 +/* 0F66C8 7F0C1B58 100000D1 */ b .Ljp7F0C1EA0 +/* 0F66CC 7F0C1B5C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1B60: +/* 0F66D0 7F0C1B60 2C810007 */ sltiu $at, $a0, 7 +/* 0F66D4 7F0C1B64 1020004C */ beqz $at, .Ljp7F0C1C98 +/* 0F66D8 7F0C1B68 00044080 */ sll $t0, $a0, 2 +/* 0F66DC 7F0C1B6C 3C018006 */ lui $at, %hi(jpt_8005B804) +/* 0F66E0 7F0C1B70 00280821 */ addu $at, $at, $t0 +/* 0F66E4 7F0C1B74 8C28B844 */ lw $t0, %lo(jpt_8005B804)($at) +/* 0F66E8 7F0C1B78 01000008 */ jr $t0 +/* 0F66EC 7F0C1B7C 00000000 */ nop +.Ljp7F0C1B80: +/* 0F66F0 7F0C1B80 0C001BF8 */ jal musicTrack1Stop +/* 0F66F4 7F0C1B84 00000000 */ nop +/* 0F66F8 7F0C1B88 0C001CDA */ jal musicTrack2Stop +/* 0F66FC 7F0C1B8C 00000000 */ nop +/* 0F6700 7F0C1B90 0C001DBC */ jal musicTrack3Stop +/* 0F6704 7F0C1B94 00000000 */ nop +/* 0F6708 7F0C1B98 100000C1 */ b .Ljp7F0C1EA0 +/* 0F670C 7F0C1B9C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1BA0: +/* 0F6710 7F0C1BA0 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F6714 7F0C1BA4 00000000 */ nop +/* 0F6718 7F0C1BA8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F671C 7F0C1BAC 44816000 */ mtc1 $at, $f12 +/* 0F6720 7F0C1BB0 0C001C5E */ jal music_related_3 +/* 0F6724 7F0C1BB4 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F6728 7F0C1BB8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F672C 7F0C1BBC 44816000 */ mtc1 $at, $f12 +/* 0F6730 7F0C1BC0 0C001D24 */ jal music_related_6 +/* 0F6734 7F0C1BC4 00000000 */ nop +/* 0F6738 7F0C1BC8 100000B5 */ b .Ljp7F0C1EA0 +/* 0F673C 7F0C1BCC 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1BD0: +/* 0F6740 7F0C1BD0 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F6744 7F0C1BD4 00000000 */ nop +/* 0F6748 7F0C1BD8 0C001CF5 */ jal musicTrack2Vol +/* 0F674C 7F0C1BDC 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F6750 7F0C1BE0 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F6754 7F0C1BE4 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 +/* 0F6758 7F0C1BE8 AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F675C 7F0C1BEC 0FC34D5C */ jal sub_GAME_7F0D2890 +/* 0F6760 7F0C1BF0 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F6764 7F0C1BF4 0C001C85 */ jal musicTrack2Play +/* 0F6768 7F0C1BF8 00402025 */ move $a0, $v0 +/* 0F676C 7F0C1BFC 100000A8 */ b .Ljp7F0C1EA0 +/* 0F6770 7F0C1C00 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1C04: +/* 0F6774 7F0C1C04 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F6778 7F0C1C08 00000000 */ nop +/* 0F677C 7F0C1C0C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F6780 7F0C1C10 44816000 */ mtc1 $at, $f12 +/* 0F6784 7F0C1C14 0C001C5E */ jal music_related_3 +/* 0F6788 7F0C1C18 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F678C 7F0C1C1C 0FC30628 */ jal sub_GAME_7F0C0C10 +/* 0F6790 7F0C1C20 00000000 */ nop +/* 0F6794 7F0C1C24 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F6798 7F0C1C28 44816000 */ mtc1 $at, $f12 +/* 0F679C 7F0C1C2C 0C001E22 */ jal music_related_13 +/* 0F67A0 7F0C1C30 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F67A4 7F0C1C34 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F67A8 7F0C1C38 44816000 */ mtc1 $at, $f12 +/* 0F67AC 7F0C1C3C 0C001D24 */ jal music_related_6 +/* 0F67B0 7F0C1C40 00000000 */ nop +/* 0F67B4 7F0C1C44 10000096 */ b .Ljp7F0C1EA0 +/* 0F67B8 7F0C1C48 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1C4C: +/* 0F67BC 7F0C1C4C 0FC30628 */ jal sub_GAME_7F0C0C10 +/* 0F67C0 7F0C1C50 00000000 */ nop +/* 0F67C4 7F0C1C54 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F67C8 7F0C1C58 44816000 */ mtc1 $at, $f12 +/* 0F67CC 7F0C1C5C 0C001E22 */ jal music_related_13 +/* 0F67D0 7F0C1C60 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F67D4 7F0C1C64 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F67D8 7F0C1C68 00000000 */ nop +/* 0F67DC 7F0C1C6C 0C001CF5 */ jal musicTrack2Vol +/* 0F67E0 7F0C1C70 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F67E4 7F0C1C74 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F67E8 7F0C1C78 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 +/* 0F67EC 7F0C1C7C AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F67F0 7F0C1C80 0FC34D5C */ jal sub_GAME_7F0D2890 +/* 0F67F4 7F0C1C84 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F67F8 7F0C1C88 0C001C85 */ jal musicTrack2Play +/* 0F67FC 7F0C1C8C 00402025 */ move $a0, $v0 +/* 0F6800 7F0C1C90 10000083 */ b .Ljp7F0C1EA0 +/* 0F6804 7F0C1C94 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1C98: +/* 0F6808 7F0C1C98 2C810007 */ sltiu $at, $a0, 7 +/* 0F680C 7F0C1C9C 10200031 */ beqz $at, .Ljp7F0C1D64 +/* 0F6810 7F0C1CA0 00044880 */ sll $t1, $a0, 2 +/* 0F6814 7F0C1CA4 3C018006 */ lui $at, 0x8006 +/* 0F6818 7F0C1CA8 00290821 */ addu $at, $at, $t1 +/* 0F681C 7F0C1CAC 8C29B860 */ lw $t1, -0x47a0($at) +/* 0F6820 7F0C1CB0 01200008 */ jr $t1 +/* 0F6824 7F0C1CB4 00000000 */ nop +.Ljp7F0C1CB8: +/* 0F6828 7F0C1CB8 0C001BF8 */ jal musicTrack1Stop +/* 0F682C 7F0C1CBC 00000000 */ nop +/* 0F6830 7F0C1CC0 0C001CDA */ jal musicTrack2Stop +/* 0F6834 7F0C1CC4 00000000 */ nop +/* 0F6838 7F0C1CC8 0C001DBC */ jal musicTrack3Stop +/* 0F683C 7F0C1CCC 00000000 */ nop +/* 0F6840 7F0C1CD0 10000073 */ b .Ljp7F0C1EA0 +/* 0F6844 7F0C1CD4 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1CD8: +/* 0F6848 7F0C1CD8 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F684C 7F0C1CDC 00000000 */ nop +/* 0F6850 7F0C1CE0 0C001CF5 */ jal musicTrack2Vol +/* 0F6854 7F0C1CE4 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F6858 7F0C1CE8 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F685C 7F0C1CEC AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F6860 7F0C1CF0 0C001C85 */ jal musicTrack2Play +/* 0F6864 7F0C1CF4 24040018 */ li $a0, 24 +/* 0F6868 7F0C1CF8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F686C 7F0C1CFC 44816000 */ mtc1 $at, $f12 +/* 0F6870 7F0C1D00 0C001C42 */ jal music_related_1 +/* 0F6874 7F0C1D04 00000000 */ nop +/* 0F6878 7F0C1D08 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F687C 7F0C1D0C 44816000 */ mtc1 $at, $f12 +/* 0F6880 7F0C1D10 0C001E06 */ jal music_related_11 +/* 0F6884 7F0C1D14 00000000 */ nop +/* 0F6888 7F0C1D18 10000061 */ b .Ljp7F0C1EA0 +/* 0F688C 7F0C1D1C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1D20: +/* 0F6890 7F0C1D20 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F6894 7F0C1D24 00000000 */ nop +/* 0F6898 7F0C1D28 0C001CF5 */ jal musicTrack2Vol +/* 0F689C 7F0C1D2C 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F68A0 7F0C1D30 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F68A4 7F0C1D34 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 +/* 0F68A8 7F0C1D38 AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F68AC 7F0C1D3C 0FC34D5C */ jal sub_GAME_7F0D2890 +/* 0F68B0 7F0C1D40 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F68B4 7F0C1D44 0C001C85 */ jal musicTrack2Play +/* 0F68B8 7F0C1D48 00402025 */ move $a0, $v0 +/* 0F68BC 7F0C1D4C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F68C0 7F0C1D50 44816000 */ mtc1 $at, $f12 +/* 0F68C4 7F0C1D54 0C001C42 */ jal music_related_1 +/* 0F68C8 7F0C1D58 00000000 */ nop +/* 0F68CC 7F0C1D5C 10000050 */ b .Ljp7F0C1EA0 +/* 0F68D0 7F0C1D60 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1D64: +/* 0F68D4 7F0C1D64 2C810007 */ sltiu $at, $a0, 7 +/* 0F68D8 7F0C1D68 10200028 */ beqz $at, .Ljp7F0C1E0C +/* 0F68DC 7F0C1D6C 00045080 */ sll $t2, $a0, 2 +/* 0F68E0 7F0C1D70 3C018006 */ lui $at, %hi(jpt_8005B83C) +/* 0F68E4 7F0C1D74 002A0821 */ addu $at, $at, $t2 +/* 0F68E8 7F0C1D78 8C2AB87C */ lw $t2, %lo(jpt_8005B83C)($at) +/* 0F68EC 7F0C1D7C 01400008 */ jr $t2 +/* 0F68F0 7F0C1D80 00000000 */ nop +.Ljp7F0C1D84: +/* 0F68F4 7F0C1D84 0C001BF8 */ jal musicTrack1Stop +/* 0F68F8 7F0C1D88 00000000 */ nop +/* 0F68FC 7F0C1D8C 0C001CDA */ jal musicTrack2Stop +/* 0F6900 7F0C1D90 00000000 */ nop +/* 0F6904 7F0C1D94 0C001DBC */ jal musicTrack3Stop +/* 0F6908 7F0C1D98 00000000 */ nop +/* 0F690C 7F0C1D9C 10000040 */ b .Ljp7F0C1EA0 +/* 0F6910 7F0C1DA0 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1DA4: +/* 0F6914 7F0C1DA4 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F6918 7F0C1DA8 00000000 */ nop +/* 0F691C 7F0C1DAC 0C001CF5 */ jal musicTrack2Vol +/* 0F6920 7F0C1DB0 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F6924 7F0C1DB4 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F6928 7F0C1DB8 AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F692C 7F0C1DBC 0C001C85 */ jal musicTrack2Play +/* 0F6930 7F0C1DC0 24040018 */ li $a0, 24 +/* 0F6934 7F0C1DC4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F6938 7F0C1DC8 44816000 */ mtc1 $at, $f12 +/* 0F693C 7F0C1DCC 0C001E06 */ jal music_related_11 +/* 0F6940 7F0C1DD0 00000000 */ nop +/* 0F6944 7F0C1DD4 10000032 */ b .Ljp7F0C1EA0 +/* 0F6948 7F0C1DD8 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1DDC: +/* 0F694C 7F0C1DDC 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F6950 7F0C1DE0 00000000 */ nop +/* 0F6954 7F0C1DE4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F6958 7F0C1DE8 44816000 */ mtc1 $at, $f12 +/* 0F695C 7F0C1DEC 0C001C5E */ jal music_related_3 +/* 0F6960 7F0C1DF0 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F6964 7F0C1DF4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F6968 7F0C1DF8 44816000 */ mtc1 $at, $f12 +/* 0F696C 7F0C1DFC 0C001D24 */ jal music_related_6 +/* 0F6970 7F0C1E00 00000000 */ nop +/* 0F6974 7F0C1E04 10000026 */ b .Ljp7F0C1EA0 +/* 0F6978 7F0C1E08 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1E0C: +/* 0F697C 7F0C1E0C 2C810007 */ sltiu $at, $a0, 7 +/* 0F6980 7F0C1E10 10200020 */ beqz $at, .Ljp7F0C1E94 +/* 0F6984 7F0C1E14 00045880 */ sll $t3, $a0, 2 +/* 0F6988 7F0C1E18 3C018006 */ lui $at, %hi(jpt_8005B858) +/* 0F698C 7F0C1E1C 002B0821 */ addu $at, $at, $t3 +/* 0F6990 7F0C1E20 8C2BB898 */ lw $t3, %lo(jpt_8005B858)($at) +/* 0F6994 7F0C1E24 01600008 */ jr $t3 +/* 0F6998 7F0C1E28 00000000 */ nop +.Ljp7F0C1E2C: +/* 0F699C 7F0C1E2C 0C001BF8 */ jal musicTrack1Stop +/* 0F69A0 7F0C1E30 00000000 */ nop +/* 0F69A4 7F0C1E34 0C001CDA */ jal musicTrack2Stop +/* 0F69A8 7F0C1E38 00000000 */ nop +/* 0F69AC 7F0C1E3C 0C001DBC */ jal musicTrack3Stop +/* 0F69B0 7F0C1E40 00000000 */ nop +/* 0F69B4 7F0C1E44 10000016 */ b .Ljp7F0C1EA0 +/* 0F69B8 7F0C1E48 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1E4C: +/* 0F69BC 7F0C1E4C 0FC30620 */ jal sub_GAME_7F0C0BF0 +/* 0F69C0 7F0C1E50 00000000 */ nop +/* 0F69C4 7F0C1E54 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0F69C8 7F0C1E58 44816000 */ mtc1 $at, $f12 +/* 0F69CC 7F0C1E5C 0C001C5E */ jal music_related_3 +/* 0F69D0 7F0C1E60 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F69D4 7F0C1E64 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0F69D8 7F0C1E68 44816000 */ mtc1 $at, $f12 +/* 0F69DC 7F0C1E6C 0C001D24 */ jal music_related_6 +/* 0F69E0 7F0C1E70 00000000 */ nop +/* 0F69E4 7F0C1E74 1000000A */ b .Ljp7F0C1EA0 +/* 0F69E8 7F0C1E78 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1E7C: +/* 0F69EC 7F0C1E7C 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F69F0 7F0C1E80 AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F69F4 7F0C1E84 0C001C85 */ jal musicTrack2Play +/* 0F69F8 7F0C1E88 2404003A */ li $a0, 58 +/* 0F69FC 7F0C1E8C 10000004 */ b .Ljp7F0C1EA0 +/* 0F6A00 7F0C1E90 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1E94: +/* 0F6A04 7F0C1E94 1000FFFF */ b .Ljp7F0C1E94 +/* 0F6A08 7F0C1E98 00000000 */ nop +.Ljp7F0C1E9C: +/* 0F6A0C 7F0C1E9C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C1EA0: +/* 0F6A10 7F0C1EA0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F6A14 7F0C1EA4 03E00008 */ jr $ra +/* 0F6A18 7F0C1EA8 00000000 */ nop +) +#endif + +#endif + + + +#ifdef NONMATCHING// +void sub_GAME_7F0C11FC(s16 param_1) +{ + musicTrack1Stop(); + musicTrack2Stop(); + musicTrack3Stop(); + mission_state = 0; + dword_CODE_bss_8008C600 = (int)param_1; + + if (sub_GAME_7F0D2848(param_1) < 0) + { + set_missionstate(1); + } + else + { + set_missionstate(4); + } +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C11FC +/* 0F5D2C 7F0C11FC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F5D30 7F0C1200 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F5D34 7F0C1204 0C001BF4 */ jal musicTrack1Stop +/* 0F5D38 7F0C1208 AFA40018 */ sw $a0, 0x18($sp) +/* 0F5D3C 7F0C120C 0C001CD6 */ jal musicTrack2Stop +/* 0F5D40 7F0C1210 00000000 */ nop +/* 0F5D44 7F0C1214 0C001DB8 */ jal musicTrack3Stop +/* 0F5D48 7F0C1218 00000000 */ nop +/* 0F5D4C 7F0C121C 8FA40018 */ lw $a0, 0x18($sp) +/* 0F5D50 7F0C1220 3C028009 */ lui $v0, %hi(dword_CODE_bss_8008C600) +/* 0F5D54 7F0C1224 3C018005 */ lui $at, %hi(mission_state) +/* 0F5D58 7F0C1228 2442C600 */ addiu $v0, %lo(dword_CODE_bss_8008C600) # addiu $v0, $v0, -0x3a00 +/* 0F5D5C 7F0C122C AC2084C0 */ sw $zero, %lo(mission_state)($at) +/* 0F5D60 7F0C1230 0FC34A12 */ jal sub_GAME_7F0D2848 +/* 0F5D64 7F0C1234 AC440000 */ sw $a0, ($v0) +/* 0F5D68 7F0C1238 04410005 */ bgez $v0, .L7F0C1250 +/* 0F5D6C 7F0C123C 00000000 */ nop +/* 0F5D70 7F0C1240 0FC3030F */ jal set_missionstate +/* 0F5D74 7F0C1244 24040001 */ li $a0, 1 +/* 0F5D78 7F0C1248 10000004 */ b .L7F0C125C +/* 0F5D7C 7F0C124C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C1250: +/* 0F5D80 7F0C1250 0FC3030F */ jal set_missionstate +/* 0F5D84 7F0C1254 24040004 */ li $a0, 4 +/* 0F5D88 7F0C1258 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C125C: +/* 0F5D8C 7F0C125C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F5D90 7F0C1260 03E00008 */ jr $ra +/* 0F5D94 7F0C1264 00000000 */ nop +) +#endif + + + + + +void sub_GAME_7F0C1268(void) +{ + set_missionstate(0); +} + +void sub_GAME_7F0C1288(void) +{ + if (sub_GAME_7F0D2848(dword_CODE_bss_8008C600) < 0) + { + set_missionstate(2); + } + else + { + set_missionstate(5); + } +} + +void sub_GAME_7F0C12CC(void) +{ + if (sub_GAME_7F0D2848(dword_CODE_bss_8008C600) < 0) + { + set_missionstate(1); + } + else + { + set_missionstate(4); + } +} + +void sub_GAME_7F0C1310(void) +{ + dword_CODE_bss_8008C604 = mission_state; + set_missionstate(3); +} + +void sub_GAME_7F0C1340(void) +{ + set_missionstate(dword_CODE_bss_8008C604); +} + +void sub_GAME_7F0C1364(void) +{ + music_slot_active_0 = 0; + music_slot_minutes_0 = 0; + music_slot_seconds_0 = 0; + music_slot_active_1 = 0; + music_slot_minutes_1 = 0; + music_slot_seconds_1 = 0; + music_slot_active_2 = 0; + music_slot_minutes_2 = 0; + music_slot_seconds_2 = 0; + music_slot_active_3 = 0; + music_slot_minutes_3 = 0; + music_slot_seconds_3 = 0; +} + + + + + + +#ifdef NONMATCHING +void reset_all_music_slots(void) { + +} +#else +GLOBAL_ASM( +.text +glabel reset_all_music_slots +/* 0F5EF8 7F0C13C8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F5EFC 7F0C13CC 3C078009 */ lui $a3, %hi(music_slot_active_0) +/* 0F5F00 7F0C13D0 3C048009 */ lui $a0, %hi(music_slot_minutes_0) +/* 0F5F04 7F0C13D4 3C068005 */ lui $a2, %hi(clock_timer) +/* 0F5F08 7F0C13D8 3C098009 */ lui $t1, %hi(music_slot_seconds_0) +/* 0F5F0C 7F0C13DC AFBF0014 */ sw $ra, 0x14($sp) +/* 0F5F10 7F0C13E0 00005025 */ move $t2, $zero +/* 0F5F14 7F0C13E4 2529C628 */ addiu $t1, %lo(music_slot_seconds_0) # addiu $t1, $t1, -0x39d8 +/* 0F5F18 7F0C13E8 8CC68374 */ lw $a2, %lo(clock_timer)($a2) +/* 0F5F1C 7F0C13EC 2484C618 */ addiu $a0, %lo(music_slot_minutes_0) # addiu $a0, $a0, -0x39e8 +/* 0F5F20 7F0C13F0 24E7C608 */ addiu $a3, %lo(music_slot_active_0) # addiu $a3, $a3, -0x39f8 +/* 0F5F24 7F0C13F4 00004025 */ move $t0, $zero +.L7F0C13F8: +/* 0F5F28 7F0C13F8 8CE50000 */ lw $a1, ($a3) +/* 0F5F2C 7F0C13FC 54A00005 */ bnezl $a1, .L7F0C1414 +/* 0F5F30 7F0C1400 8C820000 */ lw $v0, ($a0) +/* 0F5F34 7F0C1404 8C8E0000 */ lw $t6, ($a0) +/* 0F5F38 7F0C1408 59C0001F */ blezl $t6, .L7F0C1488 +/* 0F5F3C 7F0C140C 24840004 */ addiu $a0, $a0, 4 +/* 0F5F40 7F0C1410 8C820000 */ lw $v0, ($a0) +.L7F0C1414: +/* 0F5F44 7F0C1414 3C0F8009 */ lui $t7, %hi(music_slot_seconds_0) +/* 0F5F48 7F0C1418 25EFC628 */ addiu $t7, %lo(music_slot_seconds_0) # addiu $t7, $t7, -0x39d8 +/* 0F5F4C 7F0C141C 0046082A */ slt $at, $v0, $a2 +/* 0F5F50 7F0C1420 14200004 */ bnez $at, .L7F0C1434 +/* 0F5F54 7F0C1424 010F1821 */ addu $v1, $t0, $t7 +/* 0F5F58 7F0C1428 0046C023 */ subu $t8, $v0, $a2 +/* 0F5F5C 7F0C142C 10000002 */ b .L7F0C1438 +/* 0F5F60 7F0C1430 AC980000 */ sw $t8, ($a0) +.L7F0C1434: +/* 0F5F64 7F0C1434 AC800000 */ sw $zero, ($a0) +.L7F0C1438: +/* 0F5F68 7F0C1438 8C620000 */ lw $v0, ($v1) +/* 0F5F6C 7F0C143C 10400011 */ beqz $v0, .L7F0C1484 +/* 0F5F70 7F0C1440 0046082A */ slt $at, $v0, $a2 +/* 0F5F74 7F0C1444 14200003 */ bnez $at, .L7F0C1454 +/* 0F5F78 7F0C1448 0046C823 */ subu $t9, $v0, $a2 +/* 0F5F7C 7F0C144C 10000002 */ b .L7F0C1458 +/* 0F5F80 7F0C1450 AC790000 */ sw $t9, ($v1) +.L7F0C1454: +/* 0F5F84 7F0C1454 AC600000 */ sw $zero, ($v1) +.L7F0C1458: +/* 0F5F88 7F0C1458 8C6B0000 */ lw $t3, ($v1) +/* 0F5F8C 7F0C145C 51600009 */ beql $t3, $zero, .L7F0C1484 +/* 0F5F90 7F0C1460 ACE00000 */ sw $zero, ($a3) +/* 0F5F94 7F0C1464 14A00004 */ bnez $a1, .L7F0C1478 +/* 0F5F98 7F0C1468 00000000 */ nop +/* 0F5F9C 7F0C146C 8C8C0000 */ lw $t4, ($a0) +/* 0F5FA0 7F0C1470 51800005 */ beql $t4, $zero, .L7F0C1488 +/* 0F5FA4 7F0C1474 24840004 */ addiu $a0, $a0, 4 +.L7F0C1478: +/* 0F5FA8 7F0C1478 10000002 */ b .L7F0C1484 +/* 0F5FAC 7F0C147C 240A0001 */ li $t2, 1 +/* 0F5FB0 7F0C1480 ACE00000 */ sw $zero, ($a3) +.L7F0C1484: +/* 0F5FB4 7F0C1484 24840004 */ addiu $a0, $a0, 4 +.L7F0C1488: +/* 0F5FB8 7F0C1488 25080004 */ addiu $t0, $t0, 4 +/* 0F5FBC 7F0C148C 1489FFDA */ bne $a0, $t1, .L7F0C13F8 +/* 0F5FC0 7F0C1490 24E70004 */ addiu $a3, $a3, 4 +/* 0F5FC4 7F0C1494 50C00016 */ beql $a2, $zero, .L7F0C14F0 +/* 0F5FC8 7F0C1498 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F5FCC 7F0C149C 0FC3030C */ jal get_mission_state +/* 0F5FD0 7F0C14A0 AFAA0018 */ sw $t2, 0x18($sp) +/* 0F5FD4 7F0C14A4 24010002 */ li $at, 2 +/* 0F5FD8 7F0C14A8 10410006 */ beq $v0, $at, .L7F0C14C4 +/* 0F5FDC 7F0C14AC 8FAA0018 */ lw $t2, 0x18($sp) +/* 0F5FE0 7F0C14B0 0FC3030C */ jal get_mission_state +/* 0F5FE4 7F0C14B4 AFAA0018 */ sw $t2, 0x18($sp) +/* 0F5FE8 7F0C14B8 24010005 */ li $at, 5 +/* 0F5FEC 7F0C14BC 14410007 */ bne $v0, $at, .L7F0C14DC +/* 0F5FF0 7F0C14C0 8FAA0018 */ lw $t2, 0x18($sp) +.L7F0C14C4: +/* 0F5FF4 7F0C14C4 5540000A */ bnezl $t2, .L7F0C14F0 +/* 0F5FF8 7F0C14C8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F5FFC 7F0C14CC 0FC304B3 */ jal sub_GAME_7F0C12CC +/* 0F6000 7F0C14D0 00000000 */ nop +/* 0F6004 7F0C14D4 10000006 */ b .L7F0C14F0 +/* 0F6008 7F0C14D8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C14DC: +/* 0F600C 7F0C14DC 51400004 */ beql $t2, $zero, .L7F0C14F0 +/* 0F6010 7F0C14E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6014 7F0C14E4 0FC304A2 */ jal sub_GAME_7F0C1288 +/* 0F6018 7F0C14E8 00000000 */ nop +/* 0F601C 7F0C14EC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C14F0: +/* 0F6020 7F0C14F0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F6024 7F0C14F4 03E00008 */ jr $ra +/* 0F6028 7F0C14F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void set_musicslot_time(int slot,int min,int sec) +{ + if (music_slot_active[slot] == 0) { + music_slot_active[slot] = 1; + music_slot_minutes[slot] = min * 0x3c; + music_slot_seconds[slot] = sec * 0x3c; + } +} +#else +GLOBAL_ASM( +.text +glabel set_musicslot_time +/* 0F602C 7F0C14FC 3C0E8009 */ lui $t6, %hi(music_slot_active_0) +/* 0F6030 7F0C1500 25CEC608 */ addiu $t6, %lo(music_slot_active_0) # addiu $t6, $t6, -0x39f8 +/* 0F6034 7F0C1504 00041080 */ sll $v0, $a0, 2 +/* 0F6038 7F0C1508 004E1821 */ addu $v1, $v0, $t6 +/* 0F603C 7F0C150C 8C6F0000 */ lw $t7, ($v1) +/* 0F6040 7F0C1510 2404003C */ li $a0, 60 +/* 0F6044 7F0C1514 15E0000E */ bnez $t7, .L7F0C1550 +/* 0F6048 7F0C1518 00000000 */ nop +/* 0F604C 7F0C151C 00A40019 */ multu $a1, $a0 +/* 0F6050 7F0C1520 24180001 */ li $t8, 1 +/* 0F6054 7F0C1524 3C018009 */ lui $at, %hi(music_slot_minutes_0) +/* 0F6058 7F0C1528 AC780000 */ sw $t8, ($v1) +/* 0F605C 7F0C152C 00220821 */ addu $at, $at, $v0 +/* 0F6060 7F0C1530 0000C812 */ mflo $t9 +/* 0F6064 7F0C1534 AC39C618 */ sw $t9, %lo(music_slot_minutes_0)($at) +/* 0F6068 7F0C1538 3C018009 */ lui $at, %hi(music_slot_seconds_0) +/* 0F606C 7F0C153C 00C40019 */ multu $a2, $a0 +/* 0F6070 7F0C1540 00220821 */ addu $at, $at, $v0 +/* 0F6074 7F0C1544 00004012 */ mflo $t0 +/* 0F6078 7F0C1548 AC28C628 */ sw $t0, %lo(music_slot_seconds_0)($at) +/* 0F607C 7F0C154C 00000000 */ nop +.L7F0C1550: +/* 0F6080 7F0C1550 03E00008 */ jr $ra +/* 0F6084 7F0C1554 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void reset_music_in_slot(int lParm1) +{ + if (-1 < lParm1) { + (&music_slot_active_0)[(int)lParm1] = 0; + return; + } + music_slot_active_0 = 0; + music_slot_active_1 = 0; + music_slot_active_2 = 0; + music_slot_active_3 = 0; + music_slot_minutes_0 = 0; + music_slot_minutes_1 = 0; + music_slot_minutes_2 = 0; + music_slot_minutes_3 = 0; + music_slot_seconds_0 = 0; + music_slot_seconds_1 = 0; + music_slot_seconds_2 = 0; + music_slot_seconds_3 = 0; + return; +} +#else +GLOBAL_ASM( +.text +glabel reset_music_in_slot +/* 0F6088 7F0C1558 04800006 */ bltz $a0, .L7F0C1574 +/* 0F608C 7F0C155C 3C018009 */ lui $at, %hi(music_slot_active_0) +/* 0F6090 7F0C1560 00047080 */ sll $t6, $a0, 2 +/* 0F6094 7F0C1564 3C018009 */ lui $at, %hi(music_slot_active_0) +/* 0F6098 7F0C1568 002E0821 */ addu $at, $at, $t6 +/* 0F609C 7F0C156C 03E00008 */ jr $ra +/* 0F60A0 7F0C1570 AC20C608 */ sw $zero, %lo(music_slot_active_0)($at) + +.L7F0C1574: +/* 0F60A4 7F0C1574 AC20C608 */ sw $zero, %lo(music_slot_active_0)($at) +/* 0F60A8 7F0C1578 3C018009 */ lui $at, %hi(music_slot_minutes_0) +/* 0F60AC 7F0C157C AC20C618 */ sw $zero, %lo(music_slot_minutes_0)($at) +/* 0F60B0 7F0C1580 3C018009 */ lui $at, %hi(music_slot_seconds_0) +/* 0F60B4 7F0C1584 AC20C628 */ sw $zero, %lo(music_slot_seconds_0)($at) +/* 0F60B8 7F0C1588 3C018009 */ lui $at, %hi(music_slot_active_1) +/* 0F60BC 7F0C158C AC20C60C */ sw $zero, %lo(music_slot_active_1)($at) +/* 0F60C0 7F0C1590 3C018009 */ lui $at, %hi(music_slot_minutes_1) +/* 0F60C4 7F0C1594 AC20C61C */ sw $zero, %lo(music_slot_minutes_1)($at) +/* 0F60C8 7F0C1598 3C018009 */ lui $at, %hi(music_slot_seconds_1) +/* 0F60CC 7F0C159C AC20C62C */ sw $zero, %lo(music_slot_seconds_1)($at) +/* 0F60D0 7F0C15A0 3C018009 */ lui $at, %hi(music_slot_active_2) +/* 0F60D4 7F0C15A4 AC20C610 */ sw $zero, %lo(music_slot_active_2)($at) +/* 0F60D8 7F0C15A8 3C018009 */ lui $at, %hi(music_slot_minutes_2) +/* 0F60DC 7F0C15AC AC20C620 */ sw $zero, %lo(music_slot_minutes_2)($at) +/* 0F60E0 7F0C15B0 3C018009 */ lui $at, %hi(music_slot_seconds_2) +/* 0F60E4 7F0C15B4 AC20C630 */ sw $zero, %lo(music_slot_seconds_2)($at) +/* 0F60E8 7F0C15B8 3C018009 */ lui $at, %hi(music_slot_active_3) +/* 0F60EC 7F0C15BC AC20C614 */ sw $zero, %lo(music_slot_active_3)($at) +/* 0F60F0 7F0C15C0 3C018009 */ lui $at, %hi(music_slot_minutes_3) +/* 0F60F4 7F0C15C4 AC20C624 */ sw $zero, %lo(music_slot_minutes_3)($at) +/* 0F60F8 7F0C15C8 3C018009 */ lui $at, %hi(music_slot_seconds_3) +/* 0F60FC 7F0C15CC AC20C634 */ sw $zero, %lo(music_slot_seconds_3)($at) +/* 0F6100 7F0C15D0 03E00008 */ jr $ra +/* 0F6104 7F0C15D4 00000000 */ nop +) +#endif + + + diff --git a/src/game/mp_watch.c b/src/game/mp_watch.c new file mode 100644 index 0000000..0c9aa63 --- /dev/null +++ b/src/game/mp_watch.c @@ -0,0 +1,7276 @@ +#include "ultra64.h" +#include "game/unk_0C0A70.h" +#include "game/unk_093880.h" +#include "music.h" +#include "bondgame.h" +#include "bondconstants.h" + + +// bss +s32 stop_play_flag; +s32 is_gameover_flag; +s32 dword_CODE_bss_8008C708; +s32 dword_CODE_bss_8008C70C; +s32 time_trigger_alt_gameover_msg; +s32 dword_CODE_bss_8008C714; +s32 is_paused; +s32 who_paused; + +// data +u16 loaded_text_index[] = { + TEXT(LMPMENU,0),TEXT(LMPMENU,1),TEXT(LMPMENU,2),TEXT(LMPMENU,3),TEXT(LMPMENU,4),TEXT(LMPMENU,5), + TEXT(LMPMENU,6),TEXT(LMPMENU,7),TEXT(LMPMENU,8),TEXT(LMPMENU,9),TEXT(LMPMENU,0xA),TEXT(LMPMENU,0xB), + TEXT(LMPMENU,0xC),TEXT(LMPMENU,0xD),TEXT(LMPMENU,0xE),TEXT(LMPMENU,0xF),TEXT(LMPMENU,0x10) +}; + +//rodata +/*8005BC20*/ +const char ascii_MP_watch_menu_percentd[] = "%d"; +const char ascii_MP_watch_menu_BLANK[] = ""; +const char ascii_MP_watch_menu_left_chevron[] = "<"; +const char ascii_MP_watch_menu_right_chevron[] = ">"; +const char ascii_pnum_KILLS[] = "%s%d %s"; +const char ascii_pnum_LOSSES[] = "%s%d %s"; + +// rodata + + +#ifdef NONMATCHING +u32 check_can_advance_right_on_mpmenu(void) { + switch(pPlayer->mpmenumode) { + case 0: + return 1; + case 1: + return 1; + case 2: + return 1; + case 3: + if (is_gameover_flag == 0) { + return 1; + } + return 0; + case 4: + return 1; + case 5: + return 0; + case 6: + return 0; + case 7: + return 0; + default: + return 0; + } +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BC40*/ +glabel jpt_MP_menu_page_adv_right +.word page_adv_right_yes +.word page_adv_right_yes +.word page_adv_right_yes +.word page_adv_right_gameover +.word page_adv_right_yes +.word page_adv_right_no +.word page_adv_right_no +.word page_adv_right_no +.text +glabel check_can_advance_right_on_mpmenu +/* 0F6950 7F0C1E20 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0F6954 7F0C1E24 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0F6958 7F0C1E28 00001025 */ move $v0, $zero +/* 0F695C 7F0C1E2C 8DCF29C8 */ lw $t7, 0x29c8($t6) +/* 0F6960 7F0C1E30 2DE10008 */ sltiu $at, $t7, 8 +/* 0F6964 7F0C1E34 10200013 */ beqz $at, .L7F0C1E84 +/* 0F6968 7F0C1E38 000F7880 */ sll $t7, $t7, 2 +/* 0F696C 7F0C1E3C 3C018006 */ lui $at, %hi(jpt_MP_menu_page_adv_right) +/* 0F6970 7F0C1E40 002F0821 */ addu $at, $at, $t7 +/* 0F6974 7F0C1E44 8C2FBC40 */ lw $t7, %lo(jpt_MP_menu_page_adv_right)($at) +/* 0F6978 7F0C1E48 01E00008 */ jr $t7 +/* 0F697C 7F0C1E4C 00000000 */ nop +page_adv_right_yes: +/* 0F6980 7F0C1E50 03E00008 */ jr $ra +/* 0F6984 7F0C1E54 24020001 */ li $v0, 1 + +page_adv_right_no: +/* 0F6988 7F0C1E58 03E00008 */ jr $ra +/* 0F698C 7F0C1E5C 00001025 */ move $v0, $zero + +page_adv_right_gameover: +/* 0F6990 7F0C1E60 3C188009 */ lui $t8, %hi(is_gameover_flag) +/* 0F6994 7F0C1E64 8F18C704 */ lw $t8, %lo(is_gameover_flag)($t8) +/* 0F6998 7F0C1E68 24030001 */ li $v1, 1 +/* 0F699C 7F0C1E6C 13000003 */ beqz $t8, .L7F0C1E7C +/* 0F69A0 7F0C1E70 00000000 */ nop +/* 0F69A4 7F0C1E74 03E00008 */ jr $ra +/* 0F69A8 7F0C1E78 00001025 */ move $v0, $zero + +.L7F0C1E7C: +/* 0F69AC 7F0C1E7C 03E00008 */ jr $ra +/* 0F69B0 7F0C1E80 00601025 */ move $v0, $v1 + +.L7F0C1E84: +/* 0F69B4 7F0C1E84 03E00008 */ jr $ra +/* 0F69B8 7F0C1E88 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +u32 check_can_advance_left_on_mpmenu(void) { + switch(pPlayer->mpmenumode) { + case 0: + return 0; + case 1: + if (is_gameover_flag == 0) { + return 0; + } + return 1; + case 2: + return 1; + case 3: + return 1; + case 4: + return 1; + case 5: + return 1; + case 6: + return 0; + case 7: + return 0; + default: + return 0; + } +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BC60*/ +glabel jpt_MP_menu_page_adv_left +.word page_adv_left_no +.word page_adv_left_gameover +.word page_adv_left_yes +.word page_adv_left_yes +.word page_adv_left_yes +.word page_adv_left_yes +.word page_adv_left_no +.word page_adv_left_no + +.text +glabel check_can_advance_left_on_mpmenu +/* 0F69BC 7F0C1E8C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0F69C0 7F0C1E90 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0F69C4 7F0C1E94 00001025 */ move $v0, $zero +/* 0F69C8 7F0C1E98 8DCF29C8 */ lw $t7, 0x29c8($t6) +/* 0F69CC 7F0C1E9C 2DE10008 */ sltiu $at, $t7, 8 +/* 0F69D0 7F0C1EA0 10200013 */ beqz $at, .L7F0C1EF0 +/* 0F69D4 7F0C1EA4 000F7880 */ sll $t7, $t7, 2 +/* 0F69D8 7F0C1EA8 3C018006 */ lui $at, %hi(jpt_MP_menu_page_adv_left) +/* 0F69DC 7F0C1EAC 002F0821 */ addu $at, $at, $t7 +/* 0F69E0 7F0C1EB0 8C2FBC60 */ lw $t7, %lo(jpt_MP_menu_page_adv_left)($at) +/* 0F69E4 7F0C1EB4 01E00008 */ jr $t7 +/* 0F69E8 7F0C1EB8 00000000 */ nop +page_adv_left_yes: +/* 0F69EC 7F0C1EBC 03E00008 */ jr $ra +/* 0F69F0 7F0C1EC0 24020001 */ li $v0, 1 + +page_adv_left_no: +/* 0F69F4 7F0C1EC4 03E00008 */ jr $ra +/* 0F69F8 7F0C1EC8 00001025 */ move $v0, $zero + +page_adv_left_gameover: +/* 0F69FC 7F0C1ECC 3C188009 */ lui $t8, %hi(is_gameover_flag) +/* 0F6A00 7F0C1ED0 8F18C704 */ lw $t8, %lo(is_gameover_flag)($t8) +/* 0F6A04 7F0C1ED4 00001825 */ move $v1, $zero +/* 0F6A08 7F0C1ED8 13000003 */ beqz $t8, .L7F0C1EE8 +/* 0F6A0C 7F0C1EDC 00000000 */ nop +/* 0F6A10 7F0C1EE0 03E00008 */ jr $ra +/* 0F6A14 7F0C1EE4 24020001 */ li $v0, 1 + +.L7F0C1EE8: +/* 0F6A18 7F0C1EE8 03E00008 */ jr $ra +/* 0F6A1C 7F0C1EEC 00601025 */ move $v0, $v1 + +def_7F0C1EB4: +.L7F0C1EF0: +/* 0F6A20 7F0C1EF0 03E00008 */ jr $ra +/* 0F6A24 7F0C1EF4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void check_if_player_is_pressing_anything_right(s32 arg0) { + s32 sp18; + s32 sp1C; + s32 temp_t6; + ? temp_ret; + + // Node 0 + temp_t6 = ((s32) (arg0 << 0x18) >> 0x18); + sp18 = temp_t6; + sp1C = get_controller_3dstick_L_R(temp_t6, -2, 1); + temp_ret = get_controller_buttons_pressed(sp18, 0x101); + if ((temp_ret == 0) && (sp1C > 0)) + { + // Node 2 + if (pPlayer->unk29D0 != 0) + { + // Node 3 + } + } + else + { + // Node 3 + } + // Node 4 + return temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel check_if_player_is_pressing_anything_right +/* 0F6A28 7F0C1EF8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F6A2C 7F0C1EFC 00042600 */ sll $a0, $a0, 0x18 +/* 0F6A30 7F0C1F00 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F6A34 7F0C1F04 00047603 */ sra $t6, $a0, 0x18 +/* 0F6A38 7F0C1F08 01C02025 */ move $a0, $t6 +/* 0F6A3C 7F0C1F0C AFAE0018 */ sw $t6, 0x18($sp) +/* 0F6A40 7F0C1F10 2405FFFE */ li $a1, -2 +/* 0F6A44 7F0C1F14 0C00312D */ jal get_controller_3dstick_L_R +/* 0F6A48 7F0C1F18 24060001 */ li $a2, 1 +/* 0F6A4C 7F0C1F1C 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6A50 7F0C1F20 AFA2001C */ sw $v0, 0x1c($sp) +/* 0F6A54 7F0C1F24 0C0030EB */ jal get_controller_buttons_pressed +/* 0F6A58 7F0C1F28 24050101 */ li $a1, 257 +/* 0F6A5C 7F0C1F2C 1440000A */ bnez $v0, .L7F0C1F58 +/* 0F6A60 7F0C1F30 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6A64 7F0C1F34 8FAF001C */ lw $t7, 0x1c($sp) +/* 0F6A68 7F0C1F38 3C188008 */ lui $t8, %hi(pPlayer) +/* 0F6A6C 7F0C1F3C 00001025 */ move $v0, $zero +/* 0F6A70 7F0C1F40 19E00007 */ blez $t7, .L7F0C1F60 +/* 0F6A74 7F0C1F44 00000000 */ nop +/* 0F6A78 7F0C1F48 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0F6A7C 7F0C1F4C 8F1929D0 */ lw $t9, 0x29d0($t8) +/* 0F6A80 7F0C1F50 13200003 */ beqz $t9, .L7F0C1F60 +/* 0F6A84 7F0C1F54 00000000 */ nop +.L7F0C1F58: +/* 0F6A88 7F0C1F58 10000001 */ b .L7F0C1F60 +/* 0F6A8C 7F0C1F5C 24020001 */ li $v0, 1 +.L7F0C1F60: +/* 0F6A90 7F0C1F60 03E00008 */ jr $ra +/* 0F6A94 7F0C1F64 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void check_if_player_is_pressing_anything_left(s32 arg0) { + s32 sp18; + s32 sp1C; + s32 temp_t6; + + // Node 0 + temp_t6 = ((s32) (arg0 << 0x18) >> 0x18); + sp18 = temp_t6; + sp1C = get_controller_3dstick_L_R(temp_t6, -2, 1); + if ((get_controller_buttons_pressed(sp18, 0x202) == 0) && (sp1C < -1)) + { + // Node 2 + if (pPlayer->unk29D0 != 0) + { + // Node 3 + return; + // (possible return value: 1) + } + } + else + { + // Node 3 + return; + // (possible return value: 1) + } + // (possible return value: 1) +} + +#else +GLOBAL_ASM( +.text +glabel check_if_player_is_pressing_anything_left +/* 0F6A98 7F0C1F68 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F6A9C 7F0C1F6C 00042600 */ sll $a0, $a0, 0x18 +/* 0F6AA0 7F0C1F70 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F6AA4 7F0C1F74 00047603 */ sra $t6, $a0, 0x18 +/* 0F6AA8 7F0C1F78 01C02025 */ move $a0, $t6 +/* 0F6AAC 7F0C1F7C AFAE0018 */ sw $t6, 0x18($sp) +/* 0F6AB0 7F0C1F80 2405FFFE */ li $a1, -2 +/* 0F6AB4 7F0C1F84 0C00312D */ jal get_controller_3dstick_L_R +/* 0F6AB8 7F0C1F88 24060001 */ li $a2, 1 +/* 0F6ABC 7F0C1F8C 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6AC0 7F0C1F90 AFA2001C */ sw $v0, 0x1c($sp) +/* 0F6AC4 7F0C1F94 0C0030EB */ jal get_controller_buttons_pressed +/* 0F6AC8 7F0C1F98 24050202 */ li $a1, 514 +/* 0F6ACC 7F0C1F9C 1440000B */ bnez $v0, .L7F0C1FCC +/* 0F6AD0 7F0C1FA0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6AD4 7F0C1FA4 8FAF001C */ lw $t7, 0x1c($sp) +/* 0F6AD8 7F0C1FA8 3C188008 */ lui $t8, %hi(pPlayer) +/* 0F6ADC 7F0C1FAC 00001025 */ move $v0, $zero +/* 0F6AE0 7F0C1FB0 29E1FFFF */ slti $at, $t7, -1 +/* 0F6AE4 7F0C1FB4 10200007 */ beqz $at, .L7F0C1FD4 +/* 0F6AE8 7F0C1FB8 00000000 */ nop +/* 0F6AEC 7F0C1FBC 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0F6AF0 7F0C1FC0 8F1929D0 */ lw $t9, 0x29d0($t8) +/* 0F6AF4 7F0C1FC4 13200003 */ beqz $t9, .L7F0C1FD4 +/* 0F6AF8 7F0C1FC8 00000000 */ nop +.L7F0C1FCC: +/* 0F6AFC 7F0C1FCC 10000001 */ b .L7F0C1FD4 +/* 0F6B00 7F0C1FD0 24020001 */ li $v0, 1 +.L7F0C1FD4: +/* 0F6B04 7F0C1FD4 03E00008 */ jr $ra +/* 0F6B08 7F0C1FD8 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +void play_watch_sfx_beep(void) +{ + play_sfx_a1(ptr_sfx_buf, 0x9f, 0); +} + +void unpause_game(void) +{ + stop_play_flag = 0; + is_gameover_flag = 0; + is_paused = 0; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C2024(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C2024 +/* 0F6B54 7F0C2024 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F6B58 7F0C2028 00A6082A */ slt $at, $a1, $a2 +/* 0F6B5C 7F0C202C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F6B60 7F0C2030 1420000C */ bnez $at, .L7F0C2064 +/* 0F6B64 7F0C2034 AFA40020 */ sw $a0, 0x20($sp) +/* 0F6B68 7F0C2038 54C5000E */ bnel $a2, $a1, .L7F0C2074 +/* 0F6B6C 7F0C203C 00002025 */ move $a0, $zero +/* 0F6B70 7F0C2040 AFA50024 */ sw $a1, 0x24($sp) +/* 0F6B74 7F0C2044 AFA60028 */ sw $a2, 0x28($sp) +/* 0F6B78 7F0C2048 0C002914 */ jal get_random_value +/* 0F6B7C 7F0C204C AFA7002C */ sw $a3, 0x2c($sp) +/* 0F6B80 7F0C2050 304E0001 */ andi $t6, $v0, 1 +/* 0F6B84 7F0C2054 8FA50024 */ lw $a1, 0x24($sp) +/* 0F6B88 7F0C2058 8FA60028 */ lw $a2, 0x28($sp) +/* 0F6B8C 7F0C205C 11C00004 */ beqz $t6, .L7F0C2070 +/* 0F6B90 7F0C2060 8FA7002C */ lw $a3, 0x2c($sp) +.L7F0C2064: +/* 0F6B94 7F0C2064 24040001 */ li $a0, 1 +/* 0F6B98 7F0C2068 10000003 */ b .L7F0C2078 +/* 0F6B9C 7F0C206C 00C01825 */ move $v1, $a2 +.L7F0C2070: +/* 0F6BA0 7F0C2070 00002025 */ move $a0, $zero +.L7F0C2074: +/* 0F6BA4 7F0C2074 00A01825 */ move $v1, $a1 +.L7F0C2078: +/* 0F6BA8 7F0C2078 8FAF0020 */ lw $t7, 0x20($sp) +/* 0F6BAC 7F0C207C 29E10003 */ slti $at, $t7, 3 +/* 0F6BB0 7F0C2080 1420001F */ bnez $at, .L7F0C2100 +/* 0F6BB4 7F0C2084 0067082A */ slt $at, $v1, $a3 +/* 0F6BB8 7F0C2088 5420000D */ bnezl $at, .L7F0C20C0 +/* 0F6BBC 7F0C208C 24040002 */ li $a0, 2 +/* 0F6BC0 7F0C2090 54E3000D */ bnel $a3, $v1, .L7F0C20C8 +/* 0F6BC4 7F0C2094 8FB90020 */ lw $t9, 0x20($sp) +/* 0F6BC8 7F0C2098 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F6BCC 7F0C209C AFA40018 */ sw $a0, 0x18($sp) +/* 0F6BD0 7F0C20A0 0C002914 */ jal get_random_value +/* 0F6BD4 7F0C20A4 AFA7002C */ sw $a3, 0x2c($sp) +/* 0F6BD8 7F0C20A8 30580001 */ andi $t8, $v0, 1 +/* 0F6BDC 7F0C20AC 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F6BE0 7F0C20B0 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6BE4 7F0C20B4 13000003 */ beqz $t8, .L7F0C20C4 +/* 0F6BE8 7F0C20B8 8FA7002C */ lw $a3, 0x2c($sp) +/* 0F6BEC 7F0C20BC 24040002 */ li $a0, 2 +.L7F0C20C0: +/* 0F6BF0 7F0C20C0 00E01825 */ move $v1, $a3 +.L7F0C20C4: +/* 0F6BF4 7F0C20C4 8FB90020 */ lw $t9, 0x20($sp) +.L7F0C20C8: +/* 0F6BF8 7F0C20C8 8FA20030 */ lw $v0, 0x30($sp) +/* 0F6BFC 7F0C20CC 2B210004 */ slti $at, $t9, 4 +/* 0F6C00 7F0C20D0 1420000B */ bnez $at, .L7F0C2100 +/* 0F6C04 7F0C20D4 0062082A */ slt $at, $v1, $v0 +/* 0F6C08 7F0C20D8 54200009 */ bnezl $at, .L7F0C2100 +/* 0F6C0C 7F0C20DC 24040003 */ li $a0, 3 +/* 0F6C10 7F0C20E0 54430008 */ bnel $v0, $v1, .L7F0C2104 +/* 0F6C14 7F0C20E4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6C18 7F0C20E8 0C002914 */ jal get_random_value +/* 0F6C1C 7F0C20EC AFA40018 */ sw $a0, 0x18($sp) +/* 0F6C20 7F0C20F0 30480001 */ andi $t0, $v0, 1 +/* 0F6C24 7F0C20F4 11000002 */ beqz $t0, .L7F0C2100 +/* 0F6C28 7F0C20F8 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6C2C 7F0C20FC 24040003 */ li $a0, 3 +.L7F0C2100: +/* 0F6C30 7F0C2100 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C2104: +/* 0F6C34 7F0C2104 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F6C38 7F0C2108 00801025 */ move $v0, $a0 +/* 0F6C3C 7F0C210C 03E00008 */ jr $ra +/* 0F6C40 7F0C2110 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C2114(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C2114 +/* 0F6C44 7F0C2114 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F6C48 7F0C2118 00C5082A */ slt $at, $a2, $a1 +/* 0F6C4C 7F0C211C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F6C50 7F0C2120 1420000C */ bnez $at, .L7F0C2154 +/* 0F6C54 7F0C2124 AFA40020 */ sw $a0, 0x20($sp) +/* 0F6C58 7F0C2128 54C5000E */ bnel $a2, $a1, .L7F0C2164 +/* 0F6C5C 7F0C212C 00002025 */ move $a0, $zero +/* 0F6C60 7F0C2130 AFA50024 */ sw $a1, 0x24($sp) +/* 0F6C64 7F0C2134 AFA60028 */ sw $a2, 0x28($sp) +/* 0F6C68 7F0C2138 0C002914 */ jal get_random_value +/* 0F6C6C 7F0C213C AFA7002C */ sw $a3, 0x2c($sp) +/* 0F6C70 7F0C2140 304E0001 */ andi $t6, $v0, 1 +/* 0F6C74 7F0C2144 8FA50024 */ lw $a1, 0x24($sp) +/* 0F6C78 7F0C2148 8FA60028 */ lw $a2, 0x28($sp) +/* 0F6C7C 7F0C214C 11C00004 */ beqz $t6, .L7F0C2160 +/* 0F6C80 7F0C2150 8FA7002C */ lw $a3, 0x2c($sp) +.L7F0C2154: +/* 0F6C84 7F0C2154 24040001 */ li $a0, 1 +/* 0F6C88 7F0C2158 10000003 */ b .L7F0C2168 +/* 0F6C8C 7F0C215C 00C01825 */ move $v1, $a2 +.L7F0C2160: +/* 0F6C90 7F0C2160 00002025 */ move $a0, $zero +.L7F0C2164: +/* 0F6C94 7F0C2164 00A01825 */ move $v1, $a1 +.L7F0C2168: +/* 0F6C98 7F0C2168 8FAF0020 */ lw $t7, 0x20($sp) +/* 0F6C9C 7F0C216C 29E10003 */ slti $at, $t7, 3 +/* 0F6CA0 7F0C2170 1420001F */ bnez $at, .L7F0C21F0 +/* 0F6CA4 7F0C2174 00E3082A */ slt $at, $a3, $v1 +/* 0F6CA8 7F0C2178 5420000D */ bnezl $at, .L7F0C21B0 +/* 0F6CAC 7F0C217C 24040002 */ li $a0, 2 +/* 0F6CB0 7F0C2180 54E3000D */ bnel $a3, $v1, .L7F0C21B8 +/* 0F6CB4 7F0C2184 8FB90020 */ lw $t9, 0x20($sp) +/* 0F6CB8 7F0C2188 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F6CBC 7F0C218C AFA40018 */ sw $a0, 0x18($sp) +/* 0F6CC0 7F0C2190 0C002914 */ jal get_random_value +/* 0F6CC4 7F0C2194 AFA7002C */ sw $a3, 0x2c($sp) +/* 0F6CC8 7F0C2198 30580001 */ andi $t8, $v0, 1 +/* 0F6CCC 7F0C219C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F6CD0 7F0C21A0 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6CD4 7F0C21A4 13000003 */ beqz $t8, .L7F0C21B4 +/* 0F6CD8 7F0C21A8 8FA7002C */ lw $a3, 0x2c($sp) +/* 0F6CDC 7F0C21AC 24040002 */ li $a0, 2 +.L7F0C21B0: +/* 0F6CE0 7F0C21B0 00E01825 */ move $v1, $a3 +.L7F0C21B4: +/* 0F6CE4 7F0C21B4 8FB90020 */ lw $t9, 0x20($sp) +.L7F0C21B8: +/* 0F6CE8 7F0C21B8 8FA20030 */ lw $v0, 0x30($sp) +/* 0F6CEC 7F0C21BC 2B210004 */ slti $at, $t9, 4 +/* 0F6CF0 7F0C21C0 1420000B */ bnez $at, .L7F0C21F0 +/* 0F6CF4 7F0C21C4 0043082A */ slt $at, $v0, $v1 +/* 0F6CF8 7F0C21C8 54200009 */ bnezl $at, .L7F0C21F0 +/* 0F6CFC 7F0C21CC 24040003 */ li $a0, 3 +/* 0F6D00 7F0C21D0 54430008 */ bnel $v0, $v1, .L7F0C21F4 +/* 0F6D04 7F0C21D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6D08 7F0C21D8 0C002914 */ jal get_random_value +/* 0F6D0C 7F0C21DC AFA40018 */ sw $a0, 0x18($sp) +/* 0F6D10 7F0C21E0 30480001 */ andi $t0, $v0, 1 +/* 0F6D14 7F0C21E4 11000002 */ beqz $t0, .L7F0C21F0 +/* 0F6D18 7F0C21E8 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6D1C 7F0C21EC 24040003 */ li $a0, 3 +.L7F0C21F0: +/* 0F6D20 7F0C21F0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C21F4: +/* 0F6D24 7F0C21F4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F6D28 7F0C21F8 00801025 */ move $v0, $a0 +/* 0F6D2C 7F0C21FC 03E00008 */ jr $ra +/* 0F6D30 7F0C2200 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C2204(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C2204 +/* 0F6D34 7F0C2204 44856000 */ mtc1 $a1, $f12 +/* 0F6D38 7F0C2208 44867000 */ mtc1 $a2, $f14 +/* 0F6D3C 7F0C220C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F6D40 7F0C2210 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F6D44 7F0C2214 460E603C */ c.lt.s $f12, $f14 +/* 0F6D48 7F0C2218 AFA40020 */ sw $a0, 0x20($sp) +/* 0F6D4C 7F0C221C AFA7002C */ sw $a3, 0x2c($sp) +/* 0F6D50 7F0C2220 4503000D */ bc1tl .L7F0C2258 +/* 0F6D54 7F0C2224 4600710D */ trunc.w.s $f4, $f14 +/* 0F6D58 7F0C2228 460C7032 */ c.eq.s $f14, $f12 +/* 0F6D5C 7F0C222C 00000000 */ nop +/* 0F6D60 7F0C2230 4502000E */ bc1fl .L7F0C226C +/* 0F6D64 7F0C2234 4600618D */ trunc.w.s $f6, $f12 +/* 0F6D68 7F0C2238 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 0F6D6C 7F0C223C 0C002914 */ jal get_random_value +/* 0F6D70 7F0C2240 E7AE0028 */ swc1 $f14, 0x28($sp) +/* 0F6D74 7F0C2244 304E0001 */ andi $t6, $v0, 1 +/* 0F6D78 7F0C2248 C7AC0024 */ lwc1 $f12, 0x24($sp) +/* 0F6D7C 7F0C224C 11C00006 */ beqz $t6, .L7F0C2268 +/* 0F6D80 7F0C2250 C7AE0028 */ lwc1 $f14, 0x28($sp) +/* 0F6D84 7F0C2254 4600710D */ trunc.w.s $f4, $f14 +.L7F0C2258: +/* 0F6D88 7F0C2258 24040001 */ li $a0, 1 +/* 0F6D8C 7F0C225C 44032000 */ mfc1 $v1, $f4 +/* 0F6D90 7F0C2260 10000006 */ b .L7F0C227C +/* 0F6D94 7F0C2264 8FB90020 */ lw $t9, 0x20($sp) +.L7F0C2268: +/* 0F6D98 7F0C2268 4600618D */ trunc.w.s $f6, $f12 +.L7F0C226C: +/* 0F6D9C 7F0C226C 00002025 */ move $a0, $zero +/* 0F6DA0 7F0C2270 44033000 */ mfc1 $v1, $f6 +/* 0F6DA4 7F0C2274 00000000 */ nop +/* 0F6DA8 7F0C2278 8FB90020 */ lw $t9, 0x20($sp) +.L7F0C227C: +/* 0F6DAC 7F0C227C 2B210003 */ slti $at, $t9, 3 +/* 0F6DB0 7F0C2280 5420002E */ bnezl $at, .L7F0C233C +/* 0F6DB4 7F0C2284 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6DB8 7F0C2288 44834000 */ mtc1 $v1, $f8 +/* 0F6DBC 7F0C228C C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 0F6DC0 7F0C2290 46804020 */ cvt.s.w $f0, $f8 +/* 0F6DC4 7F0C2294 460A003C */ c.lt.s $f0, $f10 +/* 0F6DC8 7F0C2298 00000000 */ nop +/* 0F6DCC 7F0C229C 4503000D */ bc1tl .L7F0C22D4 +/* 0F6DD0 7F0C22A0 C7B0002C */ lwc1 $f16, 0x2c($sp) +/* 0F6DD4 7F0C22A4 46005032 */ c.eq.s $f10, $f0 +/* 0F6DD8 7F0C22A8 00000000 */ nop +/* 0F6DDC 7F0C22AC 4502000E */ bc1fl .L7F0C22E8 +/* 0F6DE0 7F0C22B0 8FAA0020 */ lw $t2, 0x20($sp) +/* 0F6DE4 7F0C22B4 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F6DE8 7F0C22B8 0C002914 */ jal get_random_value +/* 0F6DEC 7F0C22BC AFA40018 */ sw $a0, 0x18($sp) +/* 0F6DF0 7F0C22C0 30480001 */ andi $t0, $v0, 1 +/* 0F6DF4 7F0C22C4 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F6DF8 7F0C22C8 11000006 */ beqz $t0, .L7F0C22E4 +/* 0F6DFC 7F0C22CC 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6E00 7F0C22D0 C7B0002C */ lwc1 $f16, 0x2c($sp) +.L7F0C22D4: +/* 0F6E04 7F0C22D4 24040002 */ li $a0, 2 +/* 0F6E08 7F0C22D8 4600848D */ trunc.w.s $f18, $f16 +/* 0F6E0C 7F0C22DC 44039000 */ mfc1 $v1, $f18 +/* 0F6E10 7F0C22E0 00000000 */ nop +.L7F0C22E4: +/* 0F6E14 7F0C22E4 8FAA0020 */ lw $t2, 0x20($sp) +.L7F0C22E8: +/* 0F6E18 7F0C22E8 29410004 */ slti $at, $t2, 4 +/* 0F6E1C 7F0C22EC 54200013 */ bnezl $at, .L7F0C233C +/* 0F6E20 7F0C22F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6E24 7F0C22F4 44832000 */ mtc1 $v1, $f4 +/* 0F6E28 7F0C22F8 C7A20030 */ lwc1 $f2, 0x30($sp) +/* 0F6E2C 7F0C22FC 46802020 */ cvt.s.w $f0, $f4 +/* 0F6E30 7F0C2300 4602003C */ c.lt.s $f0, $f2 +/* 0F6E34 7F0C2304 00000000 */ nop +/* 0F6E38 7F0C2308 4503000B */ bc1tl .L7F0C2338 +/* 0F6E3C 7F0C230C 24040003 */ li $a0, 3 +/* 0F6E40 7F0C2310 46001032 */ c.eq.s $f2, $f0 +/* 0F6E44 7F0C2314 00000000 */ nop +/* 0F6E48 7F0C2318 45020008 */ bc1fl .L7F0C233C +/* 0F6E4C 7F0C231C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6E50 7F0C2320 0C002914 */ jal get_random_value +/* 0F6E54 7F0C2324 AFA40018 */ sw $a0, 0x18($sp) +/* 0F6E58 7F0C2328 304B0001 */ andi $t3, $v0, 1 +/* 0F6E5C 7F0C232C 11600002 */ beqz $t3, .L7F0C2338 +/* 0F6E60 7F0C2330 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6E64 7F0C2334 24040003 */ li $a0, 3 +.L7F0C2338: +/* 0F6E68 7F0C2338 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C233C: +/* 0F6E6C 7F0C233C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F6E70 7F0C2340 00801025 */ move $v0, $a0 +/* 0F6E74 7F0C2344 03E00008 */ jr $ra +/* 0F6E78 7F0C2348 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C234C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C234C +/* 0F6E7C 7F0C234C 44856000 */ mtc1 $a1, $f12 +/* 0F6E80 7F0C2350 44867000 */ mtc1 $a2, $f14 +/* 0F6E84 7F0C2354 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F6E88 7F0C2358 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F6E8C 7F0C235C 460C703C */ c.lt.s $f14, $f12 +/* 0F6E90 7F0C2360 AFA40020 */ sw $a0, 0x20($sp) +/* 0F6E94 7F0C2364 AFA7002C */ sw $a3, 0x2c($sp) +/* 0F6E98 7F0C2368 4503000D */ bc1tl .L7F0C23A0 +/* 0F6E9C 7F0C236C 4600710D */ trunc.w.s $f4, $f14 +/* 0F6EA0 7F0C2370 460C7032 */ c.eq.s $f14, $f12 +/* 0F6EA4 7F0C2374 00000000 */ nop +/* 0F6EA8 7F0C2378 4502000E */ bc1fl .L7F0C23B4 +/* 0F6EAC 7F0C237C 4600618D */ trunc.w.s $f6, $f12 +/* 0F6EB0 7F0C2380 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 0F6EB4 7F0C2384 0C002914 */ jal get_random_value +/* 0F6EB8 7F0C2388 E7AE0028 */ swc1 $f14, 0x28($sp) +/* 0F6EBC 7F0C238C 304E0001 */ andi $t6, $v0, 1 +/* 0F6EC0 7F0C2390 C7AC0024 */ lwc1 $f12, 0x24($sp) +/* 0F6EC4 7F0C2394 11C00006 */ beqz $t6, .L7F0C23B0 +/* 0F6EC8 7F0C2398 C7AE0028 */ lwc1 $f14, 0x28($sp) +/* 0F6ECC 7F0C239C 4600710D */ trunc.w.s $f4, $f14 +.L7F0C23A0: +/* 0F6ED0 7F0C23A0 24040001 */ li $a0, 1 +/* 0F6ED4 7F0C23A4 44032000 */ mfc1 $v1, $f4 +/* 0F6ED8 7F0C23A8 10000006 */ b .L7F0C23C4 +/* 0F6EDC 7F0C23AC 8FB90020 */ lw $t9, 0x20($sp) +.L7F0C23B0: +/* 0F6EE0 7F0C23B0 4600618D */ trunc.w.s $f6, $f12 +.L7F0C23B4: +/* 0F6EE4 7F0C23B4 00002025 */ move $a0, $zero +/* 0F6EE8 7F0C23B8 44033000 */ mfc1 $v1, $f6 +/* 0F6EEC 7F0C23BC 00000000 */ nop +/* 0F6EF0 7F0C23C0 8FB90020 */ lw $t9, 0x20($sp) +.L7F0C23C4: +/* 0F6EF4 7F0C23C4 2B210003 */ slti $at, $t9, 3 +/* 0F6EF8 7F0C23C8 5420002E */ bnezl $at, .L7F0C2484 +/* 0F6EFC 7F0C23CC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6F00 7F0C23D0 44834000 */ mtc1 $v1, $f8 +/* 0F6F04 7F0C23D4 C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 0F6F08 7F0C23D8 46804020 */ cvt.s.w $f0, $f8 +/* 0F6F0C 7F0C23DC 4600503C */ c.lt.s $f10, $f0 +/* 0F6F10 7F0C23E0 00000000 */ nop +/* 0F6F14 7F0C23E4 4503000D */ bc1tl .L7F0C241C +/* 0F6F18 7F0C23E8 C7B0002C */ lwc1 $f16, 0x2c($sp) +/* 0F6F1C 7F0C23EC 46005032 */ c.eq.s $f10, $f0 +/* 0F6F20 7F0C23F0 00000000 */ nop +/* 0F6F24 7F0C23F4 4502000E */ bc1fl .L7F0C2430 +/* 0F6F28 7F0C23F8 8FAA0020 */ lw $t2, 0x20($sp) +/* 0F6F2C 7F0C23FC AFA3001C */ sw $v1, 0x1c($sp) +/* 0F6F30 7F0C2400 0C002914 */ jal get_random_value +/* 0F6F34 7F0C2404 AFA40018 */ sw $a0, 0x18($sp) +/* 0F6F38 7F0C2408 30480001 */ andi $t0, $v0, 1 +/* 0F6F3C 7F0C240C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F6F40 7F0C2410 11000006 */ beqz $t0, .L7F0C242C +/* 0F6F44 7F0C2414 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6F48 7F0C2418 C7B0002C */ lwc1 $f16, 0x2c($sp) +.L7F0C241C: +/* 0F6F4C 7F0C241C 24040002 */ li $a0, 2 +/* 0F6F50 7F0C2420 4600848D */ trunc.w.s $f18, $f16 +/* 0F6F54 7F0C2424 44039000 */ mfc1 $v1, $f18 +/* 0F6F58 7F0C2428 00000000 */ nop +.L7F0C242C: +/* 0F6F5C 7F0C242C 8FAA0020 */ lw $t2, 0x20($sp) +.L7F0C2430: +/* 0F6F60 7F0C2430 29410004 */ slti $at, $t2, 4 +/* 0F6F64 7F0C2434 54200013 */ bnezl $at, .L7F0C2484 +/* 0F6F68 7F0C2438 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6F6C 7F0C243C 44832000 */ mtc1 $v1, $f4 +/* 0F6F70 7F0C2440 C7A20030 */ lwc1 $f2, 0x30($sp) +/* 0F6F74 7F0C2444 46802020 */ cvt.s.w $f0, $f4 +/* 0F6F78 7F0C2448 4600103C */ c.lt.s $f2, $f0 +/* 0F6F7C 7F0C244C 00000000 */ nop +/* 0F6F80 7F0C2450 4503000B */ bc1tl .L7F0C2480 +/* 0F6F84 7F0C2454 24040003 */ li $a0, 3 +/* 0F6F88 7F0C2458 46001032 */ c.eq.s $f2, $f0 +/* 0F6F8C 7F0C245C 00000000 */ nop +/* 0F6F90 7F0C2460 45020008 */ bc1fl .L7F0C2484 +/* 0F6F94 7F0C2464 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6F98 7F0C2468 0C002914 */ jal get_random_value +/* 0F6F9C 7F0C246C AFA40018 */ sw $a0, 0x18($sp) +/* 0F6FA0 7F0C2470 304B0001 */ andi $t3, $v0, 1 +/* 0F6FA4 7F0C2474 11600002 */ beqz $t3, .L7F0C2480 +/* 0F6FA8 7F0C2478 8FA40018 */ lw $a0, 0x18($sp) +/* 0F6FAC 7F0C247C 24040003 */ li $a0, 3 +.L7F0C2480: +/* 0F6FB0 7F0C2480 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C2484: +/* 0F6FB4 7F0C2484 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F6FB8 7F0C2488 00801025 */ move $v0, $a0 +/* 0F6FBC 7F0C248C 03E00008 */ jr $ra +/* 0F6FC0 7F0C2490 00000000 */ nop +) +#endif + + + + + +void pauseAndLockControls(void) { + set_controls_locked_flag(1); + is_paused = 1; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C24BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C24BC +/* 0F6FEC 7F0C24BC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F6FF0 7F0C24C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F6FF4 7F0C24C4 0FC26919 */ jal get_num_players +/* 0F6FF8 7F0C24C8 00000000 */ nop +/* 0F6FFC 7F0C24CC 24010001 */ li $at, 1 +/* 0F7000 7F0C24D0 14410003 */ bne $v0, $at, .L7F0C24E0 +/* 0F7004 7F0C24D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F7008 7F0C24D8 1000000F */ b .L7F0C2518 +/* 0F700C 7F0C24DC 24020001 */ li $v0, 1 +.L7F0C24E0: +/* 0F7010 7F0C24E0 3C0E8009 */ lui $t6, %hi(stop_play_flag) +/* 0F7014 7F0C24E4 8DCEC700 */ lw $t6, %lo(stop_play_flag)($t6) +/* 0F7018 7F0C24E8 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0F701C 7F0C24EC 11C00003 */ beqz $t6, .L7F0C24FC +/* 0F7020 7F0C24F0 00000000 */ nop +/* 0F7024 7F0C24F4 10000008 */ b .L7F0C2518 +/* 0F7028 7F0C24F8 00001025 */ move $v0, $zero +.L7F0C24FC: +/* 0F702C 7F0C24FC 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0F7030 7F0C2500 24020001 */ li $v0, 1 +/* 0F7034 7F0C2504 8DF829C4 */ lw $t8, 0x29c4($t7) +/* 0F7038 7F0C2508 13000003 */ beqz $t8, .L7F0C2518 +/* 0F703C 7F0C250C 00000000 */ nop +/* 0F7040 7F0C2510 10000001 */ b .L7F0C2518 +/* 0F7044 7F0C2514 00001025 */ move $v0, $zero +.L7F0C2518: +/* 0F7048 7F0C2518 03E00008 */ jr $ra +/* 0F704C 7F0C251C 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +void set_stopplay_flag(void) { + stop_play_flag = 1; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C2530(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005BC80 +.word 0x4852f000 /*216000.0*/ +glabel D_8005BC84 +.word 0x47c35000 /*100000.0*/ +.text +glabel sub_GAME_7F0C2530 +/* 0F7060 7F0C2530 27BDFE98 */ addiu $sp, $sp, -0x168 +/* 0F7064 7F0C2534 AFBF0044 */ sw $ra, 0x44($sp) +/* 0F7068 7F0C2538 AFB10024 */ sw $s1, 0x24($sp) +/* 0F706C 7F0C253C 00808825 */ move $s1, $a0 +/* 0F7070 7F0C2540 AFBE0040 */ sw $fp, 0x40($sp) +/* 0F7074 7F0C2544 AFB7003C */ sw $s7, 0x3c($sp) +/* 0F7078 7F0C2548 AFB60038 */ sw $s6, 0x38($sp) +/* 0F707C 7F0C254C AFB50034 */ sw $s5, 0x34($sp) +/* 0F7080 7F0C2550 AFB40030 */ sw $s4, 0x30($sp) +/* 0F7084 7F0C2554 AFB3002C */ sw $s3, 0x2c($sp) +/* 0F7088 7F0C2558 AFB20028 */ sw $s2, 0x28($sp) +/* 0F708C 7F0C255C 0FC26919 */ jal get_num_players +/* 0F7090 7F0C2560 AFB00020 */ sw $s0, 0x20($sp) +/* 0F7094 7F0C2564 0FC22FEE */ jal get_mission_timer +/* 0F7098 7F0C2568 0040F025 */ move $fp, $v0 +/* 0F709C 7F0C256C 0C002449 */ jal sfx_c_70009124 +/* 0F70A0 7F0C2570 00408025 */ move $s0, $v0 +/* 0F70A4 7F0C2574 0FC3030F */ jal set_missionstate +/* 0F70A8 7F0C2578 00002025 */ move $a0, $zero +/* 0F70AC 7F0C257C 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F70B0 7F0C2580 00000000 */ nop +/* 0F70B4 7F0C2584 0C001C0F */ jal musicTrack1Vol +/* 0F70B8 7F0C2588 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F70BC 7F0C258C 3C018002 */ lui $at, %hi(music1_playing) +/* 0F70C0 7F0C2590 AC20434C */ sw $zero, %lo(music1_playing)($at) +/* 0F70C4 7F0C2594 0C001B9F */ jal musicTrack1Play +/* 0F70C8 7F0C2598 2404002C */ li $a0, 44 +/* 0F70CC 7F0C259C 0FC30925 */ jal pauseAndLockControls +/* 0F70D0 7F0C25A0 00000000 */ nop +/* 0F70D4 7F0C25A4 12200005 */ beqz $s1, .L7F0C25BC +/* 0F70D8 7F0C25A8 24180001 */ li $t8, 1 +/* 0F70DC 7F0C25AC 240E012C */ li $t6, 300 +/* 0F70E0 7F0C25B0 3C018009 */ lui $at, %hi(is_gameover_flag) +/* 0F70E4 7F0C25B4 10000004 */ b .L7F0C25C8 +/* 0F70E8 7F0C25B8 AC2EC704 */ sw $t6, %lo(is_gameover_flag)($at) +.L7F0C25BC: +/* 0F70EC 7F0C25BC 240F0001 */ li $t7, 1 +/* 0F70F0 7F0C25C0 3C018009 */ lui $at, %hi(is_gameover_flag) +/* 0F70F4 7F0C25C4 AC2FC704 */ sw $t7, %lo(is_gameover_flag)($at) +.L7F0C25C8: +/* 0F70F8 7F0C25C8 3C018009 */ lui $at, %hi(time_trigger_alt_gameover_msg) +/* 0F70FC 7F0C25CC AC38C710 */ sw $t8, %lo(time_trigger_alt_gameover_msg)($at) +/* 0F7100 7F0C25D0 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C714) +/* 0F7104 7F0C25D4 24190014 */ li $t9, 20 +/* 0F7108 7F0C25D8 AC39C714 */ sw $t9, %lo(dword_CODE_bss_8008C714)($at) +/* 0F710C 7F0C25DC 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C708) +/* 0F7110 7F0C25E0 AC20C708 */ sw $zero, %lo(dword_CODE_bss_8008C708)($at) +/* 0F7114 7F0C25E4 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C70C) +/* 0F7118 7F0C25E8 0FC26C54 */ jal get_cur_playernum +/* 0F711C 7F0C25EC AC20C70C */ sw $zero, %lo(dword_CODE_bss_8008C70C)($at) +/* 0F7120 7F0C25F0 AFA20150 */ sw $v0, 0x150($sp) +/* 0F7124 7F0C25F4 1BC00078 */ blez $fp, .L7F0C27D8 +/* 0F7128 7F0C25F8 0000B025 */ move $s6, $zero +/* 0F712C 7F0C25FC 26080001 */ addiu $t0, $s0, 1 +/* 0F7130 7F0C2600 44882000 */ mtc1 $t0, $f4 +/* 0F7134 7F0C2604 3C018006 */ lui $at, %hi(D_8005BC80) +/* 0F7138 7F0C2608 C428BC80 */ lwc1 $f8, %lo(D_8005BC80)($at) +/* 0F713C 7F0C260C 468021A0 */ cvt.s.w $f6, $f4 +/* 0F7140 7F0C2610 3C148008 */ lui $s4, %hi(player1_player_data) +/* 0F7144 7F0C2614 3C158008 */ lui $s5, %hi(pPlayer) +/* 0F7148 7F0C2618 26B5A0B0 */ addiu $s5, %lo(pPlayer) # addiu $s5, $s5, -0x5f50 +/* 0F714C 7F0C261C 26949EF0 */ addiu $s4, %lo(player1_player_data) # addiu $s4, $s4, -0x6110 +/* 0F7150 7F0C2620 27B2006C */ addiu $s2, $sp, 0x6c +/* 0F7154 7F0C2624 46083283 */ div.s $f10, $f6, $f8 +/* 0F7158 7F0C2628 24170003 */ li $s7, 3 +/* 0F715C 7F0C262C E7AA0048 */ swc1 $f10, 0x48($sp) +.L7F0C2630: +/* 0F7160 7F0C2630 02C02025 */ move $a0, $s6 +/* 0F7164 7F0C2634 0FC26C43 */ jal set_cur_player +/* 0F7168 7F0C2638 00008825 */ move $s1, $zero +/* 0F716C 7F0C263C 8EAA0000 */ lw $t2, ($s5) +/* 0F7170 7F0C2640 24090001 */ li $t1, 1 +/* 0F7174 7F0C2644 27A40154 */ addiu $a0, $sp, 0x154 +/* 0F7178 7F0C2648 AD4929C4 */ sw $t1, 0x29c4($t2) +/* 0F717C 7F0C264C 8EAB0000 */ lw $t3, ($s5) +/* 0F7180 7F0C2650 27A50158 */ addiu $a1, $sp, 0x158 +/* 0F7184 7F0C2654 AD7729C8 */ sw $s7, 0x29c8($t3) +/* 0F7188 7F0C2658 8EAC0000 */ lw $t4, ($s5) +/* 0F718C 7F0C265C AD802A10 */ sw $zero, 0x2a10($t4) +/* 0F7190 7F0C2660 8EAD0000 */ lw $t5, ($s5) +/* 0F7194 7F0C2664 0FC236C2 */ jal sub_GAME_7F08DB08 +/* 0F7198 7F0C2668 ADA02A14 */ sw $zero, 0x2a14($t5) +/* 0F719C 7F0C266C 8FA40154 */ lw $a0, 0x154($sp) +/* 0F71A0 7F0C2670 0FC075A0 */ jal store_favorite_weapon_current_player +/* 0F71A4 7F0C2674 8FA50158 */ lw $a1, 0x158($sp) +/* 0F71A8 7F0C2678 0FC1A9D0 */ jal get_curplayer_shot_register +/* 0F71AC 7F0C267C 00002025 */ move $a0, $zero +/* 0F71B0 7F0C2680 AE420000 */ sw $v0, ($s2) +/* 0F71B4 7F0C2684 0FC1A9D0 */ jal get_curplayer_shot_register +/* 0F71B8 7F0C2688 24040001 */ li $a0, 1 +/* 0F71BC 7F0C268C AE420004 */ sw $v0, 4($s2) +/* 0F71C0 7F0C2690 AE400008 */ sw $zero, 8($s2) +/* 0F71C4 7F0C2694 AE40000C */ sw $zero, 0xc($s2) +/* 0F71C8 7F0C2698 0FC040A4 */ jal get_selected_num_players +/* 0F71CC 7F0C269C AE400010 */ sw $zero, 0x10($s2) +/* 0F71D0 7F0C26A0 18400023 */ blez $v0, .L7F0C2730 +/* 0F71D4 7F0C26A4 001170C0 */ sll $t6, $s1, 3 +/* 0F71D8 7F0C26A8 001640C0 */ sll $t0, $s6, 3 +/* 0F71DC 7F0C26AC 01164023 */ subu $t0, $t0, $s6 +/* 0F71E0 7F0C26B0 01D17023 */ subu $t6, $t6, $s1 +/* 0F71E4 7F0C26B4 3C198008 */ lui $t9, %hi(player1_player_data) +/* 0F71E8 7F0C26B8 27399EF0 */ addiu $t9, %lo(player1_player_data) # addiu $t9, $t9, -0x6110 +/* 0F71EC 7F0C26BC 000E7100 */ sll $t6, $t6, 4 +/* 0F71F0 7F0C26C0 00084100 */ sll $t0, $t0, 4 +/* 0F71F4 7F0C26C4 00167880 */ sll $t7, $s6, 2 +/* 0F71F8 7F0C26C8 00114880 */ sll $t1, $s1, 2 +/* 0F71FC 7F0C26CC 01095021 */ addu $t2, $t0, $t1 +/* 0F7200 7F0C26D0 01CFC021 */ addu $t8, $t6, $t7 +/* 0F7204 7F0C26D4 03199821 */ addu $s3, $t8, $t9 +/* 0F7208 7F0C26D8 01598021 */ addu $s0, $t2, $t9 +/* 0F720C 7F0C26DC 8E4B000C */ lw $t3, 0xc($s2) +.L7F0C26E0: +/* 0F7210 7F0C26E0 8E6C0024 */ lw $t4, 0x24($s3) +/* 0F7214 7F0C26E4 26730070 */ addiu $s3, $s3, 0x70 +/* 0F7218 7F0C26E8 016C6821 */ addu $t5, $t3, $t4 +/* 0F721C 7F0C26EC 16D10006 */ bne $s6, $s1, .L7F0C2708 +/* 0F7220 7F0C26F0 AE4D000C */ sw $t5, 0xc($s2) +/* 0F7224 7F0C26F4 8E4E0010 */ lw $t6, 0x10($s2) +/* 0F7228 7F0C26F8 8E0F0024 */ lw $t7, 0x24($s0) +/* 0F722C 7F0C26FC 01CFC021 */ addu $t8, $t6, $t7 +/* 0F7230 7F0C2700 10000005 */ b .L7F0C2718 +/* 0F7234 7F0C2704 AE580010 */ sw $t8, 0x10($s2) +.L7F0C2708: +/* 0F7238 7F0C2708 8E480008 */ lw $t0, 8($s2) +/* 0F723C 7F0C270C 8E090024 */ lw $t1, 0x24($s0) +/* 0F7240 7F0C2710 01095021 */ addu $t2, $t0, $t1 +/* 0F7244 7F0C2714 AE4A0008 */ sw $t2, 8($s2) +.L7F0C2718: +/* 0F7248 7F0C2718 26310001 */ addiu $s1, $s1, 1 +/* 0F724C 7F0C271C 0FC040A4 */ jal get_selected_num_players +/* 0F7250 7F0C2720 26100004 */ addiu $s0, $s0, 4 +/* 0F7254 7F0C2724 0222082A */ slt $at, $s1, $v0 +/* 0F7258 7F0C2728 5420FFED */ bnezl $at, .L7F0C26E0 +/* 0F725C 7F0C272C 8E4B000C */ lw $t3, 0xc($s2) +.L7F0C2730: +/* 0F7260 7F0C2730 8E590008 */ lw $t9, 8($s2) +/* 0F7264 7F0C2734 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F7268 7F0C2738 44811000 */ mtc1 $at, $f2 +/* 0F726C 7F0C273C 44998000 */ mtc1 $t9, $f16 +/* 0F7270 7F0C2740 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0F7274 7F0C2744 44812000 */ mtc1 $at, $f4 +/* 0F7278 7F0C2748 468084A0 */ cvt.s.w $f18, $f16 +/* 0F727C 7F0C274C 8E4B0000 */ lw $t3, ($s2) +/* 0F7280 7F0C2750 8E4C000C */ lw $t4, 0xc($s2) +/* 0F7284 7F0C2754 8E8D003C */ lw $t5, 0x3c($s4) +/* 0F7288 7F0C2758 448B3000 */ mtc1 $t3, $f6 +/* 0F728C 7F0C275C 8E8E0034 */ lw $t6, 0x34($s4) +/* 0F7290 7F0C2760 46049002 */ mul.s $f0, $f18, $f4 +/* 0F7294 7F0C2764 448C9000 */ mtc1 $t4, $f18 +/* 0F7298 7F0C2768 3C018006 */ lui $at, %hi(D_8005BC84) +/* 0F729C 7F0C276C AE4D001C */ sw $t5, 0x1c($s2) +/* 0F72A0 7F0C2770 AE4E0020 */ sw $t6, 0x20($s2) +/* 0F72A4 7F0C2774 8E8F004C */ lw $t7, 0x4c($s4) +/* 0F72A8 7F0C2778 46803220 */ cvt.s.w $f8, $f6 +/* 0F72AC 7F0C277C 8E980050 */ lw $t8, 0x50($s4) +/* 0F72B0 7F0C2780 26D60001 */ addiu $s6, $s6, 1 +/* 0F72B4 7F0C2784 26520038 */ addiu $s2, $s2, 0x38 +/* 0F72B8 7F0C2788 26940070 */ addiu $s4, $s4, 0x70 +/* 0F72BC 7F0C278C 46809120 */ cvt.s.w $f4, $f18 +/* 0F72C0 7F0C2790 46024280 */ add.s $f10, $f8, $f2 +/* 0F72C4 7F0C2794 46022180 */ add.s $f6, $f4, $f2 +/* 0F72C8 7F0C2798 460A0403 */ div.s $f16, $f0, $f10 +/* 0F72CC 7F0C279C C68AFFC8 */ lwc1 $f10, -0x38($s4) +/* 0F72D0 7F0C27A0 46060203 */ div.s $f8, $f0, $f6 +/* 0F72D4 7F0C27A4 E650FFDC */ swc1 $f16, -0x24($s2) +/* 0F72D8 7F0C27A8 E648FFE0 */ swc1 $f8, -0x20($s2) +/* 0F72DC 7F0C27AC C430BC84 */ lwc1 $f16, %lo(D_8005BC84)($at) +/* 0F72E0 7F0C27B0 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 0F72E4 7F0C27B4 C688FFD0 */ lwc1 $f8, -0x30($s4) +/* 0F72E8 7F0C27B8 46105483 */ div.s $f18, $f10, $f16 +/* 0F72EC 7F0C27BC AE40FFF4 */ sw $zero, -0xc($s2) +/* 0F72F0 7F0C27C0 AE4FFFF8 */ sw $t7, -8($s2) +/* 0F72F4 7F0C27C4 AE58FFFC */ sw $t8, -4($s2) +/* 0F72F8 7F0C27C8 E648FFF0 */ swc1 $f8, -0x10($s2) +/* 0F72FC 7F0C27CC 46049183 */ div.s $f6, $f18, $f4 +/* 0F7300 7F0C27D0 16DEFF97 */ bne $s6, $fp, .L7F0C2630 +/* 0F7304 7F0C27D4 E646FFEC */ swc1 $f6, -0x14($s2) +.L7F0C27D8: +/* 0F7308 7F0C27D8 24170003 */ li $s7, 3 +/* 0F730C 7F0C27DC 0FC26C43 */ jal set_cur_player +/* 0F7310 7F0C27E0 8FA40150 */ lw $a0, 0x150($sp) +/* 0F7314 7F0C27E4 8FA80124 */ lw $t0, 0x124($sp) +/* 0F7318 7F0C27E8 03C02025 */ move $a0, $fp +/* 0F731C 7F0C27EC 8FA5007C */ lw $a1, 0x7c($sp) +/* 0F7320 7F0C27F0 8FA600B4 */ lw $a2, 0xb4($sp) +/* 0F7324 7F0C27F4 8FA700EC */ lw $a3, 0xec($sp) +/* 0F7328 7F0C27F8 0FC30809 */ jal sub_GAME_7F0C2024 +/* 0F732C 7F0C27FC AFA80010 */ sw $t0, 0x10($sp) +/* 0F7330 7F0C2800 24130038 */ li $s3, 56 +/* 0F7334 7F0C2804 00530019 */ multu $v0, $s3 +/* 0F7338 7F0C2808 27B1006C */ addiu $s1, $sp, 0x6c +/* 0F733C 7F0C280C 03C02025 */ move $a0, $fp +/* 0F7340 7F0C2810 00004812 */ mflo $t1 +/* 0F7344 7F0C2814 02298021 */ addu $s0, $s1, $t1 +/* 0F7348 7F0C2818 8E0A0010 */ lw $t2, 0x10($s0) +/* 0F734C 7F0C281C 59400005 */ blezl $t2, .L7F0C2834 +/* 0F7350 7F0C2820 8FAC0114 */ lw $t4, 0x114($sp) +/* 0F7354 7F0C2824 8E19002C */ lw $t9, 0x2c($s0) +/* 0F7358 7F0C2828 372B0001 */ ori $t3, $t9, 1 +/* 0F735C 7F0C282C AE0B002C */ sw $t3, 0x2c($s0) +/* 0F7360 7F0C2830 8FAC0114 */ lw $t4, 0x114($sp) +.L7F0C2834: +/* 0F7364 7F0C2834 8FA5006C */ lw $a1, 0x6c($sp) +/* 0F7368 7F0C2838 8FA600A4 */ lw $a2, 0xa4($sp) +/* 0F736C 7F0C283C 8FA700DC */ lw $a3, 0xdc($sp) +/* 0F7370 7F0C2840 0FC30845 */ jal sub_GAME_7F0C2114 +/* 0F7374 7F0C2844 AFAC0010 */ sw $t4, 0x10($sp) +/* 0F7378 7F0C2848 00530019 */ multu $v0, $s3 +/* 0F737C 7F0C284C 03C02025 */ move $a0, $fp +/* 0F7380 7F0C2850 00006812 */ mflo $t5 +/* 0F7384 7F0C2854 022D8021 */ addu $s0, $s1, $t5 +/* 0F7388 7F0C2858 8E0E0000 */ lw $t6, ($s0) +/* 0F738C 7F0C285C 29C10064 */ slti $at, $t6, 0x64 +/* 0F7390 7F0C2860 50200005 */ beql $at, $zero, .L7F0C2878 +/* 0F7394 7F0C2864 C7AA013C */ lwc1 $f10, 0x13c($sp) +/* 0F7398 7F0C2868 8E0F002C */ lw $t7, 0x2c($s0) +/* 0F739C 7F0C286C 35F80002 */ ori $t8, $t7, 2 +/* 0F73A0 7F0C2870 AE18002C */ sw $t8, 0x2c($s0) +/* 0F73A4 7F0C2874 C7AA013C */ lwc1 $f10, 0x13c($sp) +.L7F0C2878: +/* 0F73A8 7F0C2878 8FA50094 */ lw $a1, 0x94($sp) +/* 0F73AC 7F0C287C 8FA600CC */ lw $a2, 0xcc($sp) +/* 0F73B0 7F0C2880 8FA70104 */ lw $a3, 0x104($sp) +/* 0F73B4 7F0C2884 0FC308D3 */ jal sub_GAME_7F0C234C +/* 0F73B8 7F0C2888 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0F73BC 7F0C288C 00530019 */ multu $v0, $s3 +/* 0F73C0 7F0C2890 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0F73C4 7F0C2894 44818000 */ mtc1 $at, $f16 +/* 0F73C8 7F0C2898 03C02025 */ move $a0, $fp +/* 0F73CC 7F0C289C 00004012 */ mflo $t0 +/* 0F73D0 7F0C28A0 02288021 */ addu $s0, $s1, $t0 +/* 0F73D4 7F0C28A4 C6120028 */ lwc1 $f18, 0x28($s0) +/* 0F73D8 7F0C28A8 4610903E */ c.le.s $f18, $f16 +/* 0F73DC 7F0C28AC 00000000 */ nop +/* 0F73E0 7F0C28B0 45020005 */ bc1fl .L7F0C28C8 +/* 0F73E4 7F0C28B4 C7A4013C */ lwc1 $f4, 0x13c($sp) +/* 0F73E8 7F0C28B8 8E09002C */ lw $t1, 0x2c($s0) +/* 0F73EC 7F0C28BC 352A0004 */ ori $t2, $t1, 4 +/* 0F73F0 7F0C28C0 AE0A002C */ sw $t2, 0x2c($s0) +/* 0F73F4 7F0C28C4 C7A4013C */ lwc1 $f4, 0x13c($sp) +.L7F0C28C8: +/* 0F73F8 7F0C28C8 8FA50094 */ lw $a1, 0x94($sp) +/* 0F73FC 7F0C28CC 8FA600CC */ lw $a2, 0xcc($sp) +/* 0F7400 7F0C28D0 8FA70104 */ lw $a3, 0x104($sp) +/* 0F7404 7F0C28D4 0FC30881 */ jal sub_GAME_7F0C2204 +/* 0F7408 7F0C28D8 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0F740C 7F0C28DC 00530019 */ multu $v0, $s3 +/* 0F7410 7F0C28E0 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 0F7414 7F0C28E4 44813000 */ mtc1 $at, $f6 +/* 0F7418 7F0C28E8 03C02025 */ move $a0, $fp +/* 0F741C 7F0C28EC 0000C812 */ mflo $t9 +/* 0F7420 7F0C28F0 02398021 */ addu $s0, $s1, $t9 +/* 0F7424 7F0C28F4 C6080028 */ lwc1 $f8, 0x28($s0) +/* 0F7428 7F0C28F8 4608303C */ c.lt.s $f6, $f8 +/* 0F742C 7F0C28FC 00000000 */ nop +/* 0F7430 7F0C2900 45020005 */ bc1fl .L7F0C2918 +/* 0F7434 7F0C2904 8FAD0118 */ lw $t5, 0x118($sp) +/* 0F7438 7F0C2908 8E0B002C */ lw $t3, 0x2c($s0) +/* 0F743C 7F0C290C 356C0008 */ ori $t4, $t3, 8 +/* 0F7440 7F0C2910 AE0C002C */ sw $t4, 0x2c($s0) +/* 0F7444 7F0C2914 8FAD0118 */ lw $t5, 0x118($sp) +.L7F0C2918: +/* 0F7448 7F0C2918 8FA50070 */ lw $a1, 0x70($sp) +/* 0F744C 7F0C291C 8FA600A8 */ lw $a2, 0xa8($sp) +/* 0F7450 7F0C2920 8FA700E0 */ lw $a3, 0xe0($sp) +/* 0F7454 7F0C2924 0FC30809 */ jal sub_GAME_7F0C2024 +/* 0F7458 7F0C2928 AFAD0010 */ sw $t5, 0x10($sp) +/* 0F745C 7F0C292C 00530019 */ multu $v0, $s3 +/* 0F7460 7F0C2930 03C02025 */ move $a0, $fp +/* 0F7464 7F0C2934 00007012 */ mflo $t6 +/* 0F7468 7F0C2938 022E8021 */ addu $s0, $s1, $t6 +/* 0F746C 7F0C293C 8E0F0004 */ lw $t7, 4($s0) +/* 0F7470 7F0C2940 59E00005 */ blezl $t7, .L7F0C2958 +/* 0F7474 7F0C2944 C7AA0128 */ lwc1 $f10, 0x128($sp) +/* 0F7478 7F0C2948 8E18002C */ lw $t8, 0x2c($s0) +/* 0F747C 7F0C294C 37080010 */ ori $t0, $t8, 0x10 +/* 0F7480 7F0C2950 AE08002C */ sw $t0, 0x2c($s0) +/* 0F7484 7F0C2954 C7AA0128 */ lwc1 $f10, 0x128($sp) +.L7F0C2958: +/* 0F7488 7F0C2958 8FA50080 */ lw $a1, 0x80($sp) +/* 0F748C 7F0C295C 8FA600B8 */ lw $a2, 0xb8($sp) +/* 0F7490 7F0C2960 8FA700F0 */ lw $a3, 0xf0($sp) +/* 0F7494 7F0C2964 0FC30881 */ jal sub_GAME_7F0C2204 +/* 0F7498 7F0C2968 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0F749C 7F0C296C 00530019 */ multu $v0, $s3 +/* 0F74A0 7F0C2970 44808000 */ mtc1 $zero, $f16 +/* 0F74A4 7F0C2974 03C02025 */ move $a0, $fp +/* 0F74A8 7F0C2978 00004812 */ mflo $t1 +/* 0F74AC 7F0C297C 02298021 */ addu $s0, $s1, $t1 +/* 0F74B0 7F0C2980 C6120014 */ lwc1 $f18, 0x14($s0) +/* 0F74B4 7F0C2984 4612803C */ c.lt.s $f16, $f18 +/* 0F74B8 7F0C2988 00000000 */ nop +/* 0F74BC 7F0C298C 45020005 */ bc1fl .L7F0C29A4 +/* 0F74C0 7F0C2990 C7A4012C */ lwc1 $f4, 0x12c($sp) +/* 0F74C4 7F0C2994 8E0A002C */ lw $t2, 0x2c($s0) +/* 0F74C8 7F0C2998 35590020 */ ori $t9, $t2, 0x20 +/* 0F74CC 7F0C299C AE19002C */ sw $t9, 0x2c($s0) +/* 0F74D0 7F0C29A0 C7A4012C */ lwc1 $f4, 0x12c($sp) +.L7F0C29A4: +/* 0F74D4 7F0C29A4 8FA50084 */ lw $a1, 0x84($sp) +/* 0F74D8 7F0C29A8 8FA600BC */ lw $a2, 0xbc($sp) +/* 0F74DC 7F0C29AC 8FA700F4 */ lw $a3, 0xf4($sp) +/* 0F74E0 7F0C29B0 0FC30881 */ jal sub_GAME_7F0C2204 +/* 0F74E4 7F0C29B4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0F74E8 7F0C29B8 00530019 */ multu $v0, $s3 +/* 0F74EC 7F0C29BC 44803000 */ mtc1 $zero, $f6 +/* 0F74F0 7F0C29C0 03C02025 */ move $a0, $fp +/* 0F74F4 7F0C29C4 00005812 */ mflo $t3 +/* 0F74F8 7F0C29C8 022B8021 */ addu $s0, $s1, $t3 +/* 0F74FC 7F0C29CC C6080018 */ lwc1 $f8, 0x18($s0) +/* 0F7500 7F0C29D0 4608303C */ c.lt.s $f6, $f8 +/* 0F7504 7F0C29D4 00000000 */ nop +/* 0F7508 7F0C29D8 45020005 */ bc1fl .L7F0C29F0 +/* 0F750C 7F0C29DC C7AA012C */ lwc1 $f10, 0x12c($sp) +/* 0F7510 7F0C29E0 8E0C002C */ lw $t4, 0x2c($s0) +/* 0F7514 7F0C29E4 358D0040 */ ori $t5, $t4, 0x40 +/* 0F7518 7F0C29E8 AE0D002C */ sw $t5, 0x2c($s0) +/* 0F751C 7F0C29EC C7AA012C */ lwc1 $f10, 0x12c($sp) +.L7F0C29F0: +/* 0F7520 7F0C29F0 8FA50084 */ lw $a1, 0x84($sp) +/* 0F7524 7F0C29F4 8FA600BC */ lw $a2, 0xbc($sp) +/* 0F7528 7F0C29F8 8FA700F4 */ lw $a3, 0xf4($sp) +/* 0F752C 7F0C29FC 0FC308D3 */ jal sub_GAME_7F0C234C +/* 0F7530 7F0C2A00 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0F7534 7F0C2A04 00530019 */ multu $v0, $s3 +/* 0F7538 7F0C2A08 03C02025 */ move $a0, $fp +/* 0F753C 7F0C2A0C 00007012 */ mflo $t6 +/* 0F7540 7F0C2A10 022E8021 */ addu $s0, $s1, $t6 +/* 0F7544 7F0C2A14 8E0F002C */ lw $t7, 0x2c($s0) +/* 0F7548 7F0C2A18 35F80080 */ ori $t8, $t7, 0x80 +/* 0F754C 7F0C2A1C AE18002C */ sw $t8, 0x2c($s0) +/* 0F7550 7F0C2A20 8FA80134 */ lw $t0, 0x134($sp) +/* 0F7554 7F0C2A24 8FA700FC */ lw $a3, 0xfc($sp) +/* 0F7558 7F0C2A28 8FA600C4 */ lw $a2, 0xc4($sp) +/* 0F755C 7F0C2A2C 8FA5008C */ lw $a1, 0x8c($sp) +/* 0F7560 7F0C2A30 0FC30845 */ jal sub_GAME_7F0C2114 +/* 0F7564 7F0C2A34 AFA80010 */ sw $t0, 0x10($sp) +/* 0F7568 7F0C2A38 00530019 */ multu $v0, $s3 +/* 0F756C 7F0C2A3C 03C02025 */ move $a0, $fp +/* 0F7570 7F0C2A40 00004812 */ mflo $t1 +/* 0F7574 7F0C2A44 02298021 */ addu $s0, $s1, $t1 +/* 0F7578 7F0C2A48 8E0A002C */ lw $t2, 0x2c($s0) +/* 0F757C 7F0C2A4C 35590100 */ ori $t9, $t2, 0x100 +/* 0F7580 7F0C2A50 AE19002C */ sw $t9, 0x2c($s0) +/* 0F7584 7F0C2A54 C7B00138 */ lwc1 $f16, 0x138($sp) +/* 0F7588 7F0C2A58 8FA70100 */ lw $a3, 0x100($sp) +/* 0F758C 7F0C2A5C 8FA600C8 */ lw $a2, 0xc8($sp) +/* 0F7590 7F0C2A60 8FA50090 */ lw $a1, 0x90($sp) +/* 0F7594 7F0C2A64 0FC30881 */ jal sub_GAME_7F0C2204 +/* 0F7598 7F0C2A68 E7B00010 */ swc1 $f16, 0x10($sp) +/* 0F759C 7F0C2A6C 00530019 */ multu $v0, $s3 +/* 0F75A0 7F0C2A70 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0F75A4 7F0C2A74 44819000 */ mtc1 $at, $f18 +/* 0F75A8 7F0C2A78 03C02025 */ move $a0, $fp +/* 0F75AC 7F0C2A7C 00005812 */ mflo $t3 +/* 0F75B0 7F0C2A80 022B8021 */ addu $s0, $s1, $t3 +/* 0F75B4 7F0C2A84 C6040024 */ lwc1 $f4, 0x24($s0) +/* 0F75B8 7F0C2A88 4604903C */ c.lt.s $f18, $f4 +/* 0F75BC 7F0C2A8C 00000000 */ nop +/* 0F75C0 7F0C2A90 45020005 */ bc1fl .L7F0C2AA8 +/* 0F75C4 7F0C2A94 8FAE0130 */ lw $t6, 0x130($sp) +/* 0F75C8 7F0C2A98 8E0C002C */ lw $t4, 0x2c($s0) +/* 0F75CC 7F0C2A9C 358D0200 */ ori $t5, $t4, 0x200 +/* 0F75D0 7F0C2AA0 AE0D002C */ sw $t5, 0x2c($s0) +/* 0F75D4 7F0C2AA4 8FAE0130 */ lw $t6, 0x130($sp) +.L7F0C2AA8: +/* 0F75D8 7F0C2AA8 8FA50088 */ lw $a1, 0x88($sp) +/* 0F75DC 7F0C2AAC 8FA600C0 */ lw $a2, 0xc0($sp) +/* 0F75E0 7F0C2AB0 8FA700F8 */ lw $a3, 0xf8($sp) +/* 0F75E4 7F0C2AB4 0FC30845 */ jal sub_GAME_7F0C2114 +/* 0F75E8 7F0C2AB8 AFAE0010 */ sw $t6, 0x10($sp) +/* 0F75EC 7F0C2ABC 00530019 */ multu $v0, $s3 +/* 0F75F0 7F0C2AC0 03C02025 */ move $a0, $fp +/* 0F75F4 7F0C2AC4 00007812 */ mflo $t7 +/* 0F75F8 7F0C2AC8 022F8021 */ addu $s0, $s1, $t7 +/* 0F75FC 7F0C2ACC 8E18002C */ lw $t8, 0x2c($s0) +/* 0F7600 7F0C2AD0 37080400 */ ori $t0, $t8, 0x400 +/* 0F7604 7F0C2AD4 AE08002C */ sw $t0, 0x2c($s0) +/* 0F7608 7F0C2AD8 8FA90130 */ lw $t1, 0x130($sp) +/* 0F760C 7F0C2ADC 8FA700F8 */ lw $a3, 0xf8($sp) +/* 0F7610 7F0C2AE0 8FA600C0 */ lw $a2, 0xc0($sp) +/* 0F7614 7F0C2AE4 8FA50088 */ lw $a1, 0x88($sp) +/* 0F7618 7F0C2AE8 0FC30809 */ jal sub_GAME_7F0C2024 +/* 0F761C 7F0C2AEC AFA90010 */ sw $t1, 0x10($sp) +/* 0F7620 7F0C2AF0 00530019 */ multu $v0, $s3 +/* 0F7624 7F0C2AF4 03C02025 */ move $a0, $fp +/* 0F7628 7F0C2AF8 00005012 */ mflo $t2 +/* 0F762C 7F0C2AFC 022A8021 */ addu $s0, $s1, $t2 +/* 0F7630 7F0C2B00 8E19001C */ lw $t9, 0x1c($s0) +/* 0F7634 7F0C2B04 5B200007 */ blezl $t9, .L7F0C2B24 +/* 0F7638 7F0C2B08 8FAD0144 */ lw $t5, 0x144($sp) +/* 0F763C 7F0C2B0C 8E03002C */ lw $v1, 0x2c($s0) +/* 0F7640 7F0C2B10 306B0400 */ andi $t3, $v1, 0x400 +/* 0F7644 7F0C2B14 15600002 */ bnez $t3, .L7F0C2B20 +/* 0F7648 7F0C2B18 346C0800 */ ori $t4, $v1, 0x800 +/* 0F764C 7F0C2B1C AE0C002C */ sw $t4, 0x2c($s0) +.L7F0C2B20: +/* 0F7650 7F0C2B20 8FAD0144 */ lw $t5, 0x144($sp) +.L7F0C2B24: +/* 0F7654 7F0C2B24 8FA5009C */ lw $a1, 0x9c($sp) +/* 0F7658 7F0C2B28 8FA600D4 */ lw $a2, 0xd4($sp) +/* 0F765C 7F0C2B2C 8FA7010C */ lw $a3, 0x10c($sp) +/* 0F7660 7F0C2B30 0FC30809 */ jal sub_GAME_7F0C2024 +/* 0F7664 7F0C2B34 AFAD0010 */ sw $t5, 0x10($sp) +/* 0F7668 7F0C2B38 00530019 */ multu $v0, $s3 +/* 0F766C 7F0C2B3C 03C02025 */ move $a0, $fp +/* 0F7670 7F0C2B40 00007012 */ mflo $t6 +/* 0F7674 7F0C2B44 022E8021 */ addu $s0, $s1, $t6 +/* 0F7678 7F0C2B48 8E0F0030 */ lw $t7, 0x30($s0) +/* 0F767C 7F0C2B4C 59E00005 */ blezl $t7, .L7F0C2B64 +/* 0F7680 7F0C2B50 8FA90148 */ lw $t1, 0x148($sp) +/* 0F7684 7F0C2B54 8E18002C */ lw $t8, 0x2c($s0) +/* 0F7688 7F0C2B58 37082000 */ ori $t0, $t8, 0x2000 +/* 0F768C 7F0C2B5C AE08002C */ sw $t0, 0x2c($s0) +/* 0F7690 7F0C2B60 8FA90148 */ lw $t1, 0x148($sp) +.L7F0C2B64: +/* 0F7694 7F0C2B64 8FA500A0 */ lw $a1, 0xa0($sp) +/* 0F7698 7F0C2B68 8FA600D8 */ lw $a2, 0xd8($sp) +/* 0F769C 7F0C2B6C 8FA70110 */ lw $a3, 0x110($sp) +/* 0F76A0 7F0C2B70 0FC30845 */ jal sub_GAME_7F0C2114 +/* 0F76A4 7F0C2B74 AFA90010 */ sw $t1, 0x10($sp) +/* 0F76A8 7F0C2B78 00530019 */ multu $v0, $s3 +/* 0F76AC 7F0C2B7C 33C20001 */ andi $v0, $fp, 1 +/* 0F76B0 7F0C2B80 00005012 */ mflo $t2 +/* 0F76B4 7F0C2B84 022A8021 */ addu $s0, $s1, $t2 +/* 0F76B8 7F0C2B88 8E190034 */ lw $t9, 0x34($s0) +/* 0F76BC 7F0C2B8C 1B200004 */ blez $t9, .L7F0C2BA0 +/* 0F76C0 7F0C2B90 00000000 */ nop +/* 0F76C4 7F0C2B94 8E0B002C */ lw $t3, 0x2c($s0) +/* 0F76C8 7F0C2B98 356C1000 */ ori $t4, $t3, 0x1000 +/* 0F76CC 7F0C2B9C AE0C002C */ sw $t4, 0x2c($s0) +.L7F0C2BA0: +/* 0F76D0 7F0C2BA0 1BC0005A */ blez $fp, .L7F0C2D0C +/* 0F76D4 7F0C2BA4 0000B025 */ move $s6, $zero +/* 0F76D8 7F0C2BA8 10400016 */ beqz $v0, .L7F0C2C04 +/* 0F76DC 7F0C2BAC 3C198008 */ lui $t9, %hi(player1_player_data) +/* 0F76E0 7F0C2BB0 3C028008 */ lui $v0, %hi(player1_player_data + 0x58) +/* 0F76E4 7F0C2BB4 8C429F48 */ lw $v0, %lo(player1_player_data + 0x58)($v0) +/* 0F76E8 7F0C2BB8 24030004 */ li $v1, 4 +/* 0F76EC 7F0C2BBC 24160001 */ li $s6, 1 +/* 0F76F0 7F0C2BC0 14620005 */ bne $v1, $v0, .L7F0C2BD8 +/* 0F76F4 7F0C2BC4 8FAD0098 */ lw $t5, 0x98($sp) +/* 0F76F8 7F0C2BC8 3C040001 */ lui $a0, 1 +/* 0F76FC 7F0C2BCC 01A47025 */ or $t6, $t5, $a0 +/* 0F7700 7F0C2BD0 1000000B */ b .L7F0C2C00 +/* 0F7704 7F0C2BD4 AFAE0098 */ sw $t6, 0x98($sp) +.L7F0C2BD8: +/* 0F7708 7F0C2BD8 16E20005 */ bne $s7, $v0, .L7F0C2BF0 +/* 0F770C 7F0C2BDC 24050002 */ li $a1, 2 +/* 0F7710 7F0C2BE0 8FAF0098 */ lw $t7, 0x98($sp) +/* 0F7714 7F0C2BE4 35F88000 */ ori $t8, $t7, 0x8000 +/* 0F7718 7F0C2BE8 10000005 */ b .L7F0C2C00 +/* 0F771C 7F0C2BEC AFB80098 */ sw $t8, 0x98($sp) +.L7F0C2BF0: +/* 0F7720 7F0C2BF0 14A20003 */ bne $a1, $v0, .L7F0C2C00 +/* 0F7724 7F0C2BF4 8FA80098 */ lw $t0, 0x98($sp) +/* 0F7728 7F0C2BF8 35094000 */ ori $t1, $t0, 0x4000 +/* 0F772C 7F0C2BFC AFA90098 */ sw $t1, 0x98($sp) +.L7F0C2C00: +/* 0F7730 7F0C2C00 12DE0041 */ beq $s6, $fp, .L7F0C2D08 +.L7F0C2C04: +/* 0F7734 7F0C2C04 001650C0 */ sll $t2, $s6, 3 +/* 0F7738 7F0C2C08 01565023 */ subu $t2, $t2, $s6 +/* 0F773C 7F0C2C0C 000A5100 */ sll $t2, $t2, 4 +/* 0F7740 7F0C2C10 27399EF0 */ addiu $t9, %lo(player1_player_data) # addiu $t9, $t9, -0x6110 +/* 0F7744 7F0C2C14 0159A021 */ addu $s4, $t2, $t9 +/* 0F7748 7F0C2C18 24030004 */ li $v1, 4 +/* 0F774C 7F0C2C1C 3C040001 */ lui $a0, 1 +/* 0F7750 7F0C2C20 24050002 */ li $a1, 2 +.L7F0C2C24: +/* 0F7754 7F0C2C24 8E820058 */ lw $v0, 0x58($s4) +/* 0F7758 7F0C2C28 14620008 */ bne $v1, $v0, .L7F0C2C4C +/* 0F775C 7F0C2C2C 00000000 */ nop +/* 0F7760 7F0C2C30 02D30019 */ multu $s6, $s3 +/* 0F7764 7F0C2C34 00005812 */ mflo $t3 +/* 0F7768 7F0C2C38 022B9021 */ addu $s2, $s1, $t3 +/* 0F776C 7F0C2C3C 8E4C002C */ lw $t4, 0x2c($s2) +/* 0F7770 7F0C2C40 01846825 */ or $t5, $t4, $a0 +/* 0F7774 7F0C2C44 10000012 */ b .L7F0C2C90 +/* 0F7778 7F0C2C48 AE4D002C */ sw $t5, 0x2c($s2) +.L7F0C2C4C: +/* 0F777C 7F0C2C4C 16E20008 */ bne $s7, $v0, .L7F0C2C70 +/* 0F7780 7F0C2C50 00000000 */ nop +/* 0F7784 7F0C2C54 02D30019 */ multu $s6, $s3 +/* 0F7788 7F0C2C58 00007012 */ mflo $t6 +/* 0F778C 7F0C2C5C 022E9021 */ addu $s2, $s1, $t6 +/* 0F7790 7F0C2C60 8E4F002C */ lw $t7, 0x2c($s2) +/* 0F7794 7F0C2C64 35F88000 */ ori $t8, $t7, 0x8000 +/* 0F7798 7F0C2C68 10000009 */ b .L7F0C2C90 +/* 0F779C 7F0C2C6C AE58002C */ sw $t8, 0x2c($s2) +.L7F0C2C70: +/* 0F77A0 7F0C2C70 54A20008 */ bnel $a1, $v0, .L7F0C2C94 +/* 0F77A4 7F0C2C74 8E8200C8 */ lw $v0, 0xc8($s4) +/* 0F77A8 7F0C2C78 02D30019 */ multu $s6, $s3 +/* 0F77AC 7F0C2C7C 00004012 */ mflo $t0 +/* 0F77B0 7F0C2C80 02289021 */ addu $s2, $s1, $t0 +/* 0F77B4 7F0C2C84 8E49002C */ lw $t1, 0x2c($s2) +/* 0F77B8 7F0C2C88 352A4000 */ ori $t2, $t1, 0x4000 +/* 0F77BC 7F0C2C8C AE4A002C */ sw $t2, 0x2c($s2) +.L7F0C2C90: +/* 0F77C0 7F0C2C90 8E8200C8 */ lw $v0, 0xc8($s4) +.L7F0C2C94: +/* 0F77C4 7F0C2C94 14620008 */ bne $v1, $v0, .L7F0C2CB8 +/* 0F77C8 7F0C2C98 00000000 */ nop +/* 0F77CC 7F0C2C9C 02D30019 */ multu $s6, $s3 +/* 0F77D0 7F0C2CA0 0000C812 */ mflo $t9 +/* 0F77D4 7F0C2CA4 02399021 */ addu $s2, $s1, $t9 +/* 0F77D8 7F0C2CA8 8E4B0064 */ lw $t3, 0x64($s2) +/* 0F77DC 7F0C2CAC 01646025 */ or $t4, $t3, $a0 +/* 0F77E0 7F0C2CB0 10000012 */ b .L7F0C2CFC +/* 0F77E4 7F0C2CB4 AE4C0064 */ sw $t4, 0x64($s2) +.L7F0C2CB8: +/* 0F77E8 7F0C2CB8 16E20008 */ bne $s7, $v0, .L7F0C2CDC +/* 0F77EC 7F0C2CBC 00000000 */ nop +/* 0F77F0 7F0C2CC0 02D30019 */ multu $s6, $s3 +/* 0F77F4 7F0C2CC4 00006812 */ mflo $t5 +/* 0F77F8 7F0C2CC8 022D9021 */ addu $s2, $s1, $t5 +/* 0F77FC 7F0C2CCC 8E4E0064 */ lw $t6, 0x64($s2) +/* 0F7800 7F0C2CD0 35CF8000 */ ori $t7, $t6, 0x8000 +/* 0F7804 7F0C2CD4 10000009 */ b .L7F0C2CFC +/* 0F7808 7F0C2CD8 AE4F0064 */ sw $t7, 0x64($s2) +.L7F0C2CDC: +/* 0F780C 7F0C2CDC 54A20008 */ bnel $a1, $v0, .L7F0C2D00 +/* 0F7810 7F0C2CE0 26D60002 */ addiu $s6, $s6, 2 +/* 0F7814 7F0C2CE4 02D30019 */ multu $s6, $s3 +/* 0F7818 7F0C2CE8 0000C012 */ mflo $t8 +/* 0F781C 7F0C2CEC 02389021 */ addu $s2, $s1, $t8 +/* 0F7820 7F0C2CF0 8E480064 */ lw $t0, 0x64($s2) +/* 0F7824 7F0C2CF4 35094000 */ ori $t1, $t0, 0x4000 +/* 0F7828 7F0C2CF8 AE490064 */ sw $t1, 0x64($s2) +.L7F0C2CFC: +/* 0F782C 7F0C2CFC 26D60002 */ addiu $s6, $s6, 2 +.L7F0C2D00: +/* 0F7830 7F0C2D00 16DEFFC8 */ bne $s6, $fp, .L7F0C2C24 +/* 0F7834 7F0C2D04 269400E0 */ addiu $s4, $s4, 0xe0 +.L7F0C2D08: +/* 0F7838 7F0C2D08 0000B025 */ move $s6, $zero +.L7F0C2D0C: +/* 0F783C 7F0C2D0C 1BC00050 */ blez $fp, .L7F0C2E50 +/* 0F7840 7F0C2D10 3C148005 */ lui $s4, %hi(loaded_text_index) +/* 0F7844 7F0C2D14 26948640 */ addiu $s4, %lo(loaded_text_index) # addiu $s4, $s4, -0x79c0 +/* 0F7848 7F0C2D18 27B2006C */ addiu $s2, $sp, 0x6c +/* 0F784C 7F0C2D1C 24150011 */ li $s5, 17 +.L7F0C2D20: +/* 0F7850 7F0C2D20 00009825 */ move $s3, $zero +/* 0F7854 7F0C2D24 24050010 */ li $a1, 16 +/* 0F7858 7F0C2D28 8E50002C */ lw $s0, 0x2c($s2) +.L7F0C2D2C: +/* 0F785C 7F0C2D2C 240A0001 */ li $t2, 1 +/* 0F7860 7F0C2D30 00AA1004 */ sllv $v0, $t2, $a1 +/* 0F7864 7F0C2D34 0202C824 */ and $t9, $s0, $v0 +/* 0F7868 7F0C2D38 1320000F */ beqz $t9, .L7F0C2D78 +/* 0F786C 7F0C2D3C 00405827 */ not $t3, $v0 +/* 0F7870 7F0C2D40 00056840 */ sll $t5, $a1, 1 +/* 0F7874 7F0C2D44 3C188008 */ lui $t8, %hi(ptr_BONDdata_p1) +/* 0F7878 7F0C2D48 020B6024 */ and $t4, $s0, $t3 +/* 0F787C 7F0C2D4C 27189EE0 */ addiu $t8, %lo(ptr_BONDdata_p1) # addiu $t8, $t8, -0x6120 +/* 0F7880 7F0C2D50 028D7021 */ addu $t6, $s4, $t5 +/* 0F7884 7F0C2D54 00167880 */ sll $t7, $s6, 2 +/* 0F7888 7F0C2D58 AE4C002C */ sw $t4, 0x2c($s2) +/* 0F788C 7F0C2D5C 01F88821 */ addu $s1, $t7, $t8 +/* 0F7890 7F0C2D60 95C40000 */ lhu $a0, ($t6) +/* 0F7894 7F0C2D64 0FC30776 */ jal get_textptr_for_textID +/* 0F7898 7F0C2D68 24130001 */ li $s3, 1 +/* 0F789C 7F0C2D6C 8E280000 */ lw $t0, ($s1) +/* 0F78A0 7F0C2D70 AD022A10 */ sw $v0, 0x2a10($t0) +/* 0F78A4 7F0C2D74 8E50002C */ lw $s0, 0x2c($s2) +.L7F0C2D78: +/* 0F78A8 7F0C2D78 16000002 */ bnez $s0, .L7F0C2D84 +/* 0F78AC 7F0C2D7C 00000000 */ nop +/* 0F78B0 7F0C2D80 24130001 */ li $s3, 1 +.L7F0C2D84: +/* 0F78B4 7F0C2D84 0C002914 */ jal get_random_value +/* 0F78B8 7F0C2D88 00000000 */ nop +/* 0F78BC 7F0C2D8C 0055001B */ divu $zero, $v0, $s5 +/* 0F78C0 7F0C2D90 00002810 */ mfhi $a1 +/* 0F78C4 7F0C2D94 16A00002 */ bnez $s5, .L7F0C2DA0 +/* 0F78C8 7F0C2D98 00000000 */ nop +/* 0F78CC 7F0C2D9C 0007000D */ break 7 +.L7F0C2DA0: +/* 0F78D0 7F0C2DA0 5260FFE2 */ beql $s3, $zero, .L7F0C2D2C +/* 0F78D4 7F0C2DA4 8E50002C */ lw $s0, 0x2c($s2) +/* 0F78D8 7F0C2DA8 2A610002 */ slti $at, $s3, 2 +/* 0F78DC 7F0C2DAC 50200026 */ beql $at, $zero, .L7F0C2E48 +/* 0F78E0 7F0C2DB0 26D60001 */ addiu $s6, $s6, 1 +.L7F0C2DB4: +/* 0F78E4 7F0C2DB4 0C002914 */ jal get_random_value +/* 0F78E8 7F0C2DB8 00000000 */ nop +/* 0F78EC 7F0C2DBC 0055001B */ divu $zero, $v0, $s5 +/* 0F78F0 7F0C2DC0 8E50002C */ lw $s0, 0x2c($s2) +/* 0F78F4 7F0C2DC4 00001810 */ mfhi $v1 +/* 0F78F8 7F0C2DC8 24090001 */ li $t1, 1 +/* 0F78FC 7F0C2DCC 00695004 */ sllv $t2, $t1, $v1 +/* 0F7900 7F0C2DD0 16A00002 */ bnez $s5, .L7F0C2DDC +/* 0F7904 7F0C2DD4 00000000 */ nop +/* 0F7908 7F0C2DD8 0007000D */ break 7 +.L7F0C2DDC: +/* 0F790C 7F0C2DDC 020AC824 */ and $t9, $s0, $t2 +/* 0F7910 7F0C2DE0 13200012 */ beqz $t9, .L7F0C2E2C +/* 0F7914 7F0C2DE4 00602825 */ move $a1, $v1 +/* 0F7918 7F0C2DE8 240B0001 */ li $t3, 1 +/* 0F791C 7F0C2DEC 006B6004 */ sllv $t4, $t3, $v1 +/* 0F7920 7F0C2DF0 01806827 */ not $t5, $t4 +/* 0F7924 7F0C2DF4 00037840 */ sll $t7, $v1, 1 +/* 0F7928 7F0C2DF8 3C098008 */ lui $t1, %hi(ptr_BONDdata_p1) +/* 0F792C 7F0C2DFC 020D7024 */ and $t6, $s0, $t5 +/* 0F7930 7F0C2E00 25299EE0 */ addiu $t1, %lo(ptr_BONDdata_p1) # addiu $t1, $t1, -0x6120 +/* 0F7934 7F0C2E04 028FC021 */ addu $t8, $s4, $t7 +/* 0F7938 7F0C2E08 00164080 */ sll $t0, $s6, 2 +/* 0F793C 7F0C2E0C AE4E002C */ sw $t6, 0x2c($s2) +/* 0F7940 7F0C2E10 01098821 */ addu $s1, $t0, $t1 +/* 0F7944 7F0C2E14 97040000 */ lhu $a0, ($t8) +/* 0F7948 7F0C2E18 0FC30776 */ jal get_textptr_for_textID +/* 0F794C 7F0C2E1C 24130002 */ li $s3, 2 +/* 0F7950 7F0C2E20 8E2A0000 */ lw $t2, ($s1) +/* 0F7954 7F0C2E24 AD422A14 */ sw $v0, 0x2a14($t2) +/* 0F7958 7F0C2E28 8E50002C */ lw $s0, 0x2c($s2) +.L7F0C2E2C: +/* 0F795C 7F0C2E2C 56000003 */ bnezl $s0, .L7F0C2E3C +/* 0F7960 7F0C2E30 2A610002 */ slti $at, $s3, 2 +/* 0F7964 7F0C2E34 24130002 */ li $s3, 2 +/* 0F7968 7F0C2E38 2A610002 */ slti $at, $s3, 2 +.L7F0C2E3C: +/* 0F796C 7F0C2E3C 1420FFDD */ bnez $at, .L7F0C2DB4 +/* 0F7970 7F0C2E40 00000000 */ nop +/* 0F7974 7F0C2E44 26D60001 */ addiu $s6, $s6, 1 +.L7F0C2E48: +/* 0F7978 7F0C2E48 16DEFFB5 */ bne $s6, $fp, .L7F0C2D20 +/* 0F797C 7F0C2E4C 26520038 */ addiu $s2, $s2, 0x38 +.L7F0C2E50: +/* 0F7980 7F0C2E50 8FBF0044 */ lw $ra, 0x44($sp) +/* 0F7984 7F0C2E54 8FB00020 */ lw $s0, 0x20($sp) +/* 0F7988 7F0C2E58 8FB10024 */ lw $s1, 0x24($sp) +/* 0F798C 7F0C2E5C 8FB20028 */ lw $s2, 0x28($sp) +/* 0F7990 7F0C2E60 8FB3002C */ lw $s3, 0x2c($sp) +/* 0F7994 7F0C2E64 8FB40030 */ lw $s4, 0x30($sp) +/* 0F7998 7F0C2E68 8FB50034 */ lw $s5, 0x34($sp) +/* 0F799C 7F0C2E6C 8FB60038 */ lw $s6, 0x38($sp) +/* 0F79A0 7F0C2E70 8FB7003C */ lw $s7, 0x3c($sp) +/* 0F79A4 7F0C2E74 8FBE0040 */ lw $fp, 0x40($sp) +/* 0F79A8 7F0C2E78 03E00008 */ jr $ra +/* 0F79AC 7F0C2E7C 27BD0168 */ addiu $sp, $sp, 0x168 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0C2E80(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C2E80 +/* 0F79B0 7F0C2E80 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0F79B4 7F0C2E84 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F79B8 7F0C2E88 0FC26C54 */ jal get_cur_playernum +/* 0F79BC 7F0C2E8C 00000000 */ nop +/* 0F79C0 7F0C2E90 0FC26919 */ jal get_num_players +/* 0F79C4 7F0C2E94 AFA20034 */ sw $v0, 0x34($sp) +/* 0F79C8 7F0C2E98 83A40037 */ lb $a0, 0x37($sp) +/* 0F79CC 7F0C2E9C 2405FFFE */ li $a1, -2 +/* 0F79D0 7F0C2EA0 24060001 */ li $a2, 1 +/* 0F79D4 7F0C2EA4 AFA20030 */ sw $v0, 0x30($sp) +/* 0F79D8 7F0C2EA8 0C00312D */ jal get_controller_3dstick_L_R +/* 0F79DC 7F0C2EAC AFA40018 */ sw $a0, 0x18($sp) +/* 0F79E0 7F0C2EB0 AFA2002C */ sw $v0, 0x2c($sp) +/* 0F79E4 7F0C2EB4 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 0F79E8 7F0C2EB8 8FA40034 */ lw $a0, 0x34($sp) +/* 0F79EC 7F0C2EBC 1440000E */ bnez $v0, .L7F0C2EF8 +/* 0F79F0 7F0C2EC0 8FA80030 */ lw $t0, 0x30($sp) +/* 0F79F4 7F0C2EC4 3C058009 */ lui $a1, %hi(is_gameover_flag) +/* 0F79F8 7F0C2EC8 24A5C704 */ addiu $a1, %lo(is_gameover_flag) # addiu $a1, $a1, -0x38fc +/* 0F79FC 7F0C2ECC 8CA20000 */ lw $v0, ($a1) +/* 0F7A00 7F0C2ED0 3C0E8005 */ lui $t6, %hi(D_80048498) +/* 0F7A04 7F0C2ED4 28410002 */ slti $at, $v0, 2 +/* 0F7A08 7F0C2ED8 14200007 */ bnez $at, .L7F0C2EF8 +/* 0F7A0C 7F0C2EDC 00000000 */ nop +/* 0F7A10 7F0C2EE0 8DCE8498 */ lw $t6, %lo(D_80048498)($t6) +/* 0F7A14 7F0C2EE4 24190001 */ li $t9, 1 +/* 0F7A18 7F0C2EE8 004E7823 */ subu $t7, $v0, $t6 +/* 0F7A1C 7F0C2EEC 1DE00002 */ bgtz $t7, .L7F0C2EF8 +/* 0F7A20 7F0C2EF0 ACAF0000 */ sw $t7, ($a1) +/* 0F7A24 7F0C2EF4 ACB90000 */ sw $t9, ($a1) +.L7F0C2EF8: +/* 0F7A28 7F0C2EF8 3C058009 */ lui $a1, %hi(is_gameover_flag) +/* 0F7A2C 7F0C2EFC 24010001 */ li $at, 1 +/* 0F7A30 7F0C2F00 110101A3 */ beq $t0, $at, .L7F0C3590 +/* 0F7A34 7F0C2F04 24A5C704 */ addiu $a1, %lo(is_gameover_flag) # addiu $a1, $a1, -0x38fc +/* 0F7A38 7F0C2F08 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7A3C 7F0C2F0C 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7A40 7F0C2F10 8CE30000 */ lw $v1, ($a3) +/* 0F7A44 7F0C2F14 8CA20000 */ lw $v0, ($a1) +/* 0F7A48 7F0C2F18 8C6900D8 */ lw $t1, 0xd8($v1) +/* 0F7A4C 7F0C2F1C 28410002 */ slti $at, $v0, 2 +/* 0F7A50 7F0C2F20 11200007 */ beqz $t1, .L7F0C2F40 +/* 0F7A54 7F0C2F24 00000000 */ nop +/* 0F7A58 7F0C2F28 14400005 */ bnez $v0, .L7F0C2F40 +/* 0F7A5C 7F0C2F2C 00000000 */ nop +/* 0F7A60 7F0C2F30 AC6029C4 */ sw $zero, 0x29c4($v1) +/* 0F7A64 7F0C2F34 8CEA0000 */ lw $t2, ($a3) +/* 0F7A68 7F0C2F38 10000195 */ b .L7F0C3590 +/* 0F7A6C 7F0C2F3C AD402A00 */ sw $zero, 0x2a00($t2) +.L7F0C2F40: +/* 0F7A70 7F0C2F40 10200193 */ beqz $at, .L7F0C3590 +/* 0F7A74 7F0C2F44 8FA40034 */ lw $a0, 0x34($sp) +/* 0F7A78 7F0C2F48 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 0F7A7C 7F0C2F4C AFA80030 */ sw $t0, 0x30($sp) +/* 0F7A80 7F0C2F50 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7A84 7F0C2F54 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7A88 7F0C2F58 14400021 */ bnez $v0, .L7F0C2FE0 +/* 0F7A8C 7F0C2F5C 8FA80030 */ lw $t0, 0x30($sp) +/* 0F7A90 7F0C2F60 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C70C) +/* 0F7A94 7F0C2F64 2484C70C */ addiu $a0, %lo(dword_CODE_bss_8008C70C) # addiu $a0, $a0, -0x38f4 +/* 0F7A98 7F0C2F68 3C058009 */ lui $a1, %hi(dword_CODE_bss_8008C714) +/* 0F7A9C 7F0C2F6C 3C028005 */ lui $v0, %hi(D_80048498) +/* 0F7AA0 7F0C2F70 8C428498 */ lw $v0, %lo(D_80048498)($v0) +/* 0F7AA4 7F0C2F74 8C8B0000 */ lw $t3, ($a0) +/* 0F7AA8 7F0C2F78 24A5C714 */ addiu $a1, %lo(dword_CODE_bss_8008C714) # addiu $a1, $a1, -0x38ec +/* 0F7AAC 7F0C2F7C 8CAD0000 */ lw $t5, ($a1) +/* 0F7AB0 7F0C2F80 01626021 */ addu $t4, $t3, $v0 +/* 0F7AB4 7F0C2F84 29810014 */ slti $at, $t4, 0x14 +/* 0F7AB8 7F0C2F88 01A27021 */ addu $t6, $t5, $v0 +/* 0F7ABC 7F0C2F8C AC8C0000 */ sw $t4, ($a0) +/* 0F7AC0 7F0C2F90 14200008 */ bnez $at, .L7F0C2FB4 +/* 0F7AC4 7F0C2F94 ACAE0000 */ sw $t6, ($a1) +/* 0F7AC8 7F0C2F98 3C068009 */ lui $a2, %hi(dword_CODE_bss_8008C708) +/* 0F7ACC 7F0C2F9C 24C6C708 */ addiu $a2, %lo(dword_CODE_bss_8008C708) # addiu $a2, $a2, -0x38f8 +/* 0F7AD0 7F0C2FA0 8CC20000 */ lw $v0, ($a2) +/* 0F7AD4 7F0C2FA4 258FFFEC */ addiu $t7, $t4, -0x14 +/* 0F7AD8 7F0C2FA8 AC8F0000 */ sw $t7, ($a0) +/* 0F7ADC 7F0C2FAC 2C580001 */ sltiu $t8, $v0, 1 +/* 0F7AE0 7F0C2FB0 ACD80000 */ sw $t8, ($a2) +.L7F0C2FB4: +/* 0F7AE4 7F0C2FB4 8CA30000 */ lw $v1, ($a1) +/* 0F7AE8 7F0C2FB8 3C048009 */ lui $a0, %hi(time_trigger_alt_gameover_msg) +/* 0F7AEC 7F0C2FBC 2484C710 */ addiu $a0, %lo(time_trigger_alt_gameover_msg) # addiu $a0, $a0, -0x38f0 +/* 0F7AF0 7F0C2FC0 28610078 */ slti $at, $v1, 0x78 +/* 0F7AF4 7F0C2FC4 14200006 */ bnez $at, .L7F0C2FE0 +/* 0F7AF8 7F0C2FC8 00000000 */ nop +/* 0F7AFC 7F0C2FCC 8C820000 */ lw $v0, ($a0) +/* 0F7B00 7F0C2FD0 2479FF88 */ addiu $t9, $v1, -0x78 +/* 0F7B04 7F0C2FD4 ACB90000 */ sw $t9, ($a1) +/* 0F7B08 7F0C2FD8 2C490001 */ sltiu $t1, $v0, 1 +/* 0F7B0C 7F0C2FDC AC890000 */ sw $t1, ($a0) +.L7F0C2FE0: +/* 0F7B10 7F0C2FE0 3C028008 */ lui $v0, %hi(pPlayersPerm) +/* 0F7B14 7F0C2FE4 8C42A0B4 */ lw $v0, %lo(pPlayersPerm)($v0) +/* 0F7B18 7F0C2FE8 8CEA0000 */ lw $t2, ($a3) +/* 0F7B1C 7F0C2FEC 8C4B0054 */ lw $t3, 0x54($v0) +/* 0F7B20 7F0C2FF0 8D4329F8 */ lw $v1, 0x29f8($t2) +/* 0F7B24 7F0C2FF4 0163082A */ slt $at, $t3, $v1 +/* 0F7B28 7F0C2FF8 10200002 */ beqz $at, .L7F0C3004 +/* 0F7B2C 7F0C2FFC 00000000 */ nop +/* 0F7B30 7F0C3000 AC430054 */ sw $v1, 0x54($v0) +.L7F0C3004: +/* 0F7B34 7F0C3004 0FC22FEE */ jal get_mission_timer +/* 0F7B38 7F0C3008 AFA80030 */ sw $t0, 0x30($sp) +/* 0F7B3C 7F0C300C 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7B40 7F0C3010 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7B44 7F0C3014 8CE30000 */ lw $v1, ($a3) +/* 0F7B48 7F0C3018 3C0C8008 */ lui $t4, %hi(pPlayersPerm) +/* 0F7B4C 7F0C301C 8D8CA0B4 */ lw $t4, %lo(pPlayersPerm)($t4) +/* 0F7B50 7F0C3020 8C6E29F4 */ lw $t6, 0x29f4($v1) +/* 0F7B54 7F0C3024 8FA80030 */ lw $t0, 0x30($sp) +/* 0F7B58 7F0C3028 8D8D004C */ lw $t5, 0x4c($t4) +/* 0F7B5C 7F0C302C 004E7823 */ subu $t7, $v0, $t6 +/* 0F7B60 7F0C3030 01AF082A */ slt $at, $t5, $t7 +/* 0F7B64 7F0C3034 5020000E */ beql $at, $zero, .L7F0C3070 +/* 0F7B68 7F0C3038 8C6B29C4 */ lw $t3, 0x29c4($v1) +/* 0F7B6C 7F0C303C 0FC22FEE */ jal get_mission_timer +/* 0F7B70 7F0C3040 AFA80030 */ sw $t0, 0x30($sp) +/* 0F7B74 7F0C3044 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7B78 7F0C3048 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7B7C 7F0C304C 8CF80000 */ lw $t8, ($a3) +/* 0F7B80 7F0C3050 3C0A8008 */ lui $t2, %hi(pPlayersPerm) +/* 0F7B84 7F0C3054 8D4AA0B4 */ lw $t2, %lo(pPlayersPerm)($t2) +/* 0F7B88 7F0C3058 8F1929F4 */ lw $t9, 0x29f4($t8) +/* 0F7B8C 7F0C305C 8FA80030 */ lw $t0, 0x30($sp) +/* 0F7B90 7F0C3060 00594823 */ subu $t1, $v0, $t9 +/* 0F7B94 7F0C3064 AD49004C */ sw $t1, 0x4c($t2) +/* 0F7B98 7F0C3068 8CE30000 */ lw $v1, ($a3) +/* 0F7B9C 7F0C306C 8C6B29C4 */ lw $t3, 0x29c4($v1) +.L7F0C3070: +/* 0F7BA0 7F0C3070 83A4001B */ lb $a0, 0x1b($sp) +/* 0F7BA4 7F0C3074 1160012F */ beqz $t3, .L7F0C3534 +/* 0F7BA8 7F0C3078 00000000 */ nop +/* 0F7BAC 7F0C307C 8FA40034 */ lw $a0, 0x34($sp) +/* 0F7BB0 7F0C3080 0FC307BE */ jal check_if_player_is_pressing_anything_right +/* 0F7BB4 7F0C3084 AFA80030 */ sw $t0, 0x30($sp) +/* 0F7BB8 7F0C3088 1040000E */ beqz $v0, .L7F0C30C4 +/* 0F7BBC 7F0C308C 8FA80030 */ lw $t0, 0x30($sp) +/* 0F7BC0 7F0C3090 0FC30788 */ jal check_can_advance_right_on_mpmenu +/* 0F7BC4 7F0C3094 AFA80030 */ sw $t0, 0x30($sp) +/* 0F7BC8 7F0C3098 1040000A */ beqz $v0, .L7F0C30C4 +/* 0F7BCC 7F0C309C 8FA80030 */ lw $t0, 0x30($sp) +/* 0F7BD0 7F0C30A0 0FC307F7 */ jal play_watch_sfx_beep +/* 0F7BD4 7F0C30A4 00000000 */ nop +/* 0F7BD8 7F0C30A8 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7BDC 7F0C30AC 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7BE0 7F0C30B0 8CE30000 */ lw $v1, ($a3) +/* 0F7BE4 7F0C30B4 8C6C29C8 */ lw $t4, 0x29c8($v1) +/* 0F7BE8 7F0C30B8 258E0001 */ addiu $t6, $t4, 1 +/* 0F7BEC 7F0C30BC 10000112 */ b .L7F0C3508 +/* 0F7BF0 7F0C30C0 AC6E29C8 */ sw $t6, 0x29c8($v1) +.L7F0C30C4: +/* 0F7BF4 7F0C30C4 8FA40034 */ lw $a0, 0x34($sp) +/* 0F7BF8 7F0C30C8 0FC307DA */ jal check_if_player_is_pressing_anything_left +/* 0F7BFC 7F0C30CC AFA80030 */ sw $t0, 0x30($sp) +/* 0F7C00 7F0C30D0 1040000E */ beqz $v0, .L7F0C310C +/* 0F7C04 7F0C30D4 8FA80030 */ lw $t0, 0x30($sp) +/* 0F7C08 7F0C30D8 0FC307A3 */ jal check_can_advance_left_on_mpmenu +/* 0F7C0C 7F0C30DC AFA80030 */ sw $t0, 0x30($sp) +/* 0F7C10 7F0C30E0 1040000A */ beqz $v0, .L7F0C310C +/* 0F7C14 7F0C30E4 8FA80030 */ lw $t0, 0x30($sp) +/* 0F7C18 7F0C30E8 0FC307F7 */ jal play_watch_sfx_beep +/* 0F7C1C 7F0C30EC 00000000 */ nop +/* 0F7C20 7F0C30F0 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7C24 7F0C30F4 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7C28 7F0C30F8 8CE30000 */ lw $v1, ($a3) +/* 0F7C2C 7F0C30FC 8C6D29C8 */ lw $t5, 0x29c8($v1) +/* 0F7C30 7F0C3100 25AFFFFF */ addiu $t7, $t5, -1 +/* 0F7C34 7F0C3104 10000100 */ b .L7F0C3508 +/* 0F7C38 7F0C3108 AC6F29C8 */ sw $t7, 0x29c8($v1) +.L7F0C310C: +/* 0F7C3C 7F0C310C 8FA40034 */ lw $a0, 0x34($sp) +/* 0F7C40 7F0C3110 0FC307BE */ jal check_if_player_is_pressing_anything_right +/* 0F7C44 7F0C3114 AFA80030 */ sw $t0, 0x30($sp) +/* 0F7C48 7F0C3118 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7C4C 7F0C311C 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7C50 7F0C3120 1040000E */ beqz $v0, .L7F0C315C +/* 0F7C54 7F0C3124 8FA80030 */ lw $t0, 0x30($sp) +/* 0F7C58 7F0C3128 8CF80000 */ lw $t8, ($a3) +/* 0F7C5C 7F0C312C 24010006 */ li $at, 6 +/* 0F7C60 7F0C3130 8F1929C8 */ lw $t9, 0x29c8($t8) +/* 0F7C64 7F0C3134 5721000A */ bnel $t9, $at, .L7F0C3160 +/* 0F7C68 7F0C3138 8FA40034 */ lw $a0, 0x34($sp) +/* 0F7C6C 7F0C313C 0FC307F7 */ jal play_watch_sfx_beep +/* 0F7C70 7F0C3140 00000000 */ nop +/* 0F7C74 7F0C3144 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7C78 7F0C3148 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7C7C 7F0C314C 8CEA0000 */ lw $t2, ($a3) +/* 0F7C80 7F0C3150 24090001 */ li $t1, 1 +/* 0F7C84 7F0C3154 100000EC */ b .L7F0C3508 +/* 0F7C88 7F0C3158 AD4929CC */ sw $t1, 0x29cc($t2) +.L7F0C315C: +/* 0F7C8C 7F0C315C 8FA40034 */ lw $a0, 0x34($sp) +.L7F0C3160: +/* 0F7C90 7F0C3160 0FC307DA */ jal check_if_player_is_pressing_anything_left +/* 0F7C94 7F0C3164 AFA80030 */ sw $t0, 0x30($sp) +/* 0F7C98 7F0C3168 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7C9C 7F0C316C 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7CA0 7F0C3170 1040000D */ beqz $v0, .L7F0C31A8 +/* 0F7CA4 7F0C3174 8FA80030 */ lw $t0, 0x30($sp) +/* 0F7CA8 7F0C3178 8CEB0000 */ lw $t3, ($a3) +/* 0F7CAC 7F0C317C 24010006 */ li $at, 6 +/* 0F7CB0 7F0C3180 8D6C29C8 */ lw $t4, 0x29c8($t3) +/* 0F7CB4 7F0C3184 55810009 */ bnel $t4, $at, .L7F0C31AC +/* 0F7CB8 7F0C3188 83A4001B */ lb $a0, 0x1b($sp) +/* 0F7CBC 7F0C318C 0FC307F7 */ jal play_watch_sfx_beep +/* 0F7CC0 7F0C3190 00000000 */ nop +/* 0F7CC4 7F0C3194 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7CC8 7F0C3198 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7CCC 7F0C319C 8CEE0000 */ lw $t6, ($a3) +/* 0F7CD0 7F0C31A0 100000D9 */ b .L7F0C3508 +/* 0F7CD4 7F0C31A4 ADC029CC */ sw $zero, 0x29cc($t6) +.L7F0C31A8: +/* 0F7CD8 7F0C31A8 83A4001B */ lb $a0, 0x1b($sp) +.L7F0C31AC: +/* 0F7CDC 7F0C31AC 34058000 */ li $a1, 32768 +/* 0F7CE0 7F0C31B0 0C0030EB */ jal get_controller_buttons_pressed +/* 0F7CE4 7F0C31B4 AFA80030 */ sw $t0, 0x30($sp) +/* 0F7CE8 7F0C31B8 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7CEC 7F0C31BC 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7CF0 7F0C31C0 10400022 */ beqz $v0, .L7F0C324C +/* 0F7CF4 7F0C31C4 8FA80030 */ lw $t0, 0x30($sp) +/* 0F7CF8 7F0C31C8 8CED0000 */ lw $t5, ($a3) +/* 0F7CFC 7F0C31CC 24010004 */ li $at, 4 +/* 0F7D00 7F0C31D0 8DAF29C8 */ lw $t7, 0x29c8($t5) +/* 0F7D04 7F0C31D4 55E1001E */ bnel $t7, $at, .L7F0C3250 +/* 0F7D08 7F0C31D8 8CEA0000 */ lw $t2, ($a3) +/* 0F7D0C 7F0C31DC 0FC307F7 */ jal play_watch_sfx_beep +/* 0F7D10 7F0C31E0 00000000 */ nop +/* 0F7D14 7F0C31E4 3C038009 */ lui $v1, %hi(is_paused) +/* 0F7D18 7F0C31E8 2463C718 */ addiu $v1, %lo(is_paused) # addiu $v1, $v1, -0x38e8 +/* 0F7D1C 7F0C31EC 8C780000 */ lw $t8, ($v1) +/* 0F7D20 7F0C31F0 24190001 */ li $t9, 1 +/* 0F7D24 7F0C31F4 17000009 */ bnez $t8, .L7F0C321C +/* 0F7D28 7F0C31F8 00000000 */ nop +/* 0F7D2C 7F0C31FC 0FC26C54 */ jal get_cur_playernum +/* 0F7D30 7F0C3200 AC790000 */ sw $t9, ($v1) +/* 0F7D34 7F0C3204 3C018009 */ lui $at, %hi(who_paused) +/* 0F7D38 7F0C3208 AC22C71C */ sw $v0, %lo(who_paused)($at) +/* 0F7D3C 7F0C320C 0FC2FEFE */ jal set_controls_locked_flag +/* 0F7D40 7F0C3210 24040001 */ li $a0, 1 +/* 0F7D44 7F0C3214 100000BD */ b .L7F0C350C +/* 0F7D48 7F0C3218 8FA2002C */ lw $v0, 0x2c($sp) +.L7F0C321C: +/* 0F7D4C 7F0C321C 0FC26C54 */ jal get_cur_playernum +/* 0F7D50 7F0C3220 00000000 */ nop +/* 0F7D54 7F0C3224 3C098009 */ lui $t1, %hi(who_paused) +/* 0F7D58 7F0C3228 8D29C71C */ lw $t1, %lo(who_paused)($t1) +/* 0F7D5C 7F0C322C 3C038009 */ lui $v1, %hi(is_paused) +/* 0F7D60 7F0C3230 2463C718 */ addiu $v1, %lo(is_paused) # addiu $v1, $v1, -0x38e8 +/* 0F7D64 7F0C3234 144900B4 */ bne $v0, $t1, .L7F0C3508 +/* 0F7D68 7F0C3238 00002025 */ move $a0, $zero +/* 0F7D6C 7F0C323C 0FC2FEFE */ jal set_controls_locked_flag +/* 0F7D70 7F0C3240 AC600000 */ sw $zero, ($v1) +/* 0F7D74 7F0C3244 100000B1 */ b .L7F0C350C +/* 0F7D78 7F0C3248 8FA2002C */ lw $v0, 0x2c($sp) +.L7F0C324C: +/* 0F7D7C 7F0C324C 8CEA0000 */ lw $t2, ($a3) +.L7F0C3250: +/* 0F7D80 7F0C3250 24060007 */ li $a2, 7 +/* 0F7D84 7F0C3254 83A4001B */ lb $a0, 0x1b($sp) +/* 0F7D88 7F0C3258 8D4B29C8 */ lw $t3, 0x29c8($t2) +/* 0F7D8C 7F0C325C 34059000 */ li $a1, 36864 +/* 0F7D90 7F0C3260 14CB0011 */ bne $a2, $t3, .L7F0C32A8 +/* 0F7D94 7F0C3264 00000000 */ nop +/* 0F7D98 7F0C3268 83A4001B */ lb $a0, 0x1b($sp) +/* 0F7D9C 7F0C326C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F7DA0 7F0C3270 24054000 */ li $a1, 16384 +/* 0F7DA4 7F0C3274 504000A5 */ beql $v0, $zero, .L7F0C350C +/* 0F7DA8 7F0C3278 8FA2002C */ lw $v0, 0x2c($sp) +/* 0F7DAC 7F0C327C 0FC307F7 */ jal play_watch_sfx_beep +/* 0F7DB0 7F0C3280 00000000 */ nop +/* 0F7DB4 7F0C3284 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7DB8 7F0C3288 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7DBC 7F0C328C 8CEE0000 */ lw $t6, ($a3) +/* 0F7DC0 7F0C3290 240C0001 */ li $t4, 1 +/* 0F7DC4 7F0C3294 240D0003 */ li $t5, 3 +/* 0F7DC8 7F0C3298 ADCC29C4 */ sw $t4, 0x29c4($t6) +/* 0F7DCC 7F0C329C 8CEF0000 */ lw $t7, ($a3) +/* 0F7DD0 7F0C32A0 10000099 */ b .L7F0C3508 +/* 0F7DD4 7F0C32A4 ADED29C8 */ sw $t5, 0x29c8($t7) +.L7F0C32A8: +/* 0F7DD8 7F0C32A8 0C0030EB */ jal get_controller_buttons_pressed +/* 0F7DDC 7F0C32AC AFA80030 */ sw $t0, 0x30($sp) +/* 0F7DE0 7F0C32B0 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7DE4 7F0C32B4 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7DE8 7F0C32B8 1040000E */ beqz $v0, .L7F0C32F4 +/* 0F7DEC 7F0C32BC 8FA80030 */ lw $t0, 0x30($sp) +/* 0F7DF0 7F0C32C0 8CE30000 */ lw $v1, ($a3) +/* 0F7DF4 7F0C32C4 24010005 */ li $at, 5 +/* 0F7DF8 7F0C32C8 8C6229C8 */ lw $v0, 0x29c8($v1) +/* 0F7DFC 7F0C32CC 10410002 */ beq $v0, $at, .L7F0C32D8 +/* 0F7E00 7F0C32D0 24010006 */ li $at, 6 +/* 0F7E04 7F0C32D4 1441000D */ bne $v0, $at, .L7F0C330C +.L7F0C32D8: +/* 0F7E08 7F0C32D8 24010006 */ li $at, 6 +/* 0F7E0C 7F0C32DC 54410006 */ bnel $v0, $at, .L7F0C32F8 +/* 0F7E10 7F0C32E0 83A4001B */ lb $a0, 0x1b($sp) +/* 0F7E14 7F0C32E4 8C7829CC */ lw $t8, 0x29cc($v1) +/* 0F7E18 7F0C32E8 24010001 */ li $at, 1 +/* 0F7E1C 7F0C32EC 17010007 */ bne $t8, $at, .L7F0C330C +/* 0F7E20 7F0C32F0 00000000 */ nop +.L7F0C32F4: +/* 0F7E24 7F0C32F4 83A4001B */ lb $a0, 0x1b($sp) +.L7F0C32F8: +/* 0F7E28 7F0C32F8 24054000 */ li $a1, 16384 +/* 0F7E2C 7F0C32FC 0C0030EB */ jal get_controller_buttons_pressed +/* 0F7E30 7F0C3300 AFA80030 */ sw $t0, 0x30($sp) +/* 0F7E34 7F0C3304 10400052 */ beqz $v0, .L7F0C3450 +/* 0F7E38 7F0C3308 8FA80030 */ lw $t0, 0x30($sp) +.L7F0C330C: +/* 0F7E3C 7F0C330C 0FC307F7 */ jal play_watch_sfx_beep +/* 0F7E40 7F0C3310 AFA80030 */ sw $t0, 0x30($sp) +/* 0F7E44 7F0C3314 3C198009 */ lui $t9, %hi(is_gameover_flag) +/* 0F7E48 7F0C3318 8F39C704 */ lw $t9, %lo(is_gameover_flag)($t9) +/* 0F7E4C 7F0C331C 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7E50 7F0C3320 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7E54 7F0C3324 24060007 */ li $a2, 7 +/* 0F7E58 7F0C3328 13200039 */ beqz $t9, .L7F0C3410 +/* 0F7E5C 7F0C332C 8FA80030 */ lw $t0, 0x30($sp) +/* 0F7E60 7F0C3330 8CE90000 */ lw $t1, ($a3) +/* 0F7E64 7F0C3334 00001825 */ move $v1, $zero +/* 0F7E68 7F0C3338 00002025 */ move $a0, $zero +/* 0F7E6C 7F0C333C 1900002E */ blez $t0, .L7F0C33F8 +/* 0F7E70 7F0C3340 AD2629C8 */ sw $a2, 0x29c8($t1) +/* 0F7E74 7F0C3344 31070003 */ andi $a3, $t0, 3 +/* 0F7E78 7F0C3348 10E0000E */ beqz $a3, .L7F0C3384 +/* 0F7E7C 7F0C334C 00E02825 */ move $a1, $a3 +/* 0F7E80 7F0C3350 3C0B8008 */ lui $t3, %hi(ptr_BONDdata_p1) +/* 0F7E84 7F0C3354 256B9EE0 */ addiu $t3, %lo(ptr_BONDdata_p1) # addiu $t3, $t3, -0x6120 +/* 0F7E88 7F0C3358 00005080 */ sll $t2, $zero, 2 +/* 0F7E8C 7F0C335C 014B1021 */ addu $v0, $t2, $t3 +.L7F0C3360: +/* 0F7E90 7F0C3360 8C4C0000 */ lw $t4, ($v0) +/* 0F7E94 7F0C3364 24840001 */ addiu $a0, $a0, 1 +/* 0F7E98 7F0C3368 8D8E29C8 */ lw $t6, 0x29c8($t4) +/* 0F7E9C 7F0C336C 14CE0002 */ bne $a2, $t6, .L7F0C3378 +/* 0F7EA0 7F0C3370 00000000 */ nop +/* 0F7EA4 7F0C3374 24630001 */ addiu $v1, $v1, 1 +.L7F0C3378: +/* 0F7EA8 7F0C3378 14A4FFF9 */ bne $a1, $a0, .L7F0C3360 +/* 0F7EAC 7F0C337C 24420004 */ addiu $v0, $v0, 4 +/* 0F7EB0 7F0C3380 1088001D */ beq $a0, $t0, .L7F0C33F8 +.L7F0C3384: +/* 0F7EB4 7F0C3384 3C0F8008 */ lui $t7, %hi(ptr_BONDdata_p1) +/* 0F7EB8 7F0C3388 25EF9EE0 */ addiu $t7, %lo(ptr_BONDdata_p1) # addiu $t7, $t7, -0x6120 +/* 0F7EBC 7F0C338C 00046880 */ sll $t5, $a0, 2 +/* 0F7EC0 7F0C3390 0008C080 */ sll $t8, $t0, 2 +/* 0F7EC4 7F0C3394 030F2821 */ addu $a1, $t8, $t7 +/* 0F7EC8 7F0C3398 01AF1021 */ addu $v0, $t5, $t7 +/* 0F7ECC 7F0C339C 8C590000 */ lw $t9, ($v0) +.L7F0C33A0: +/* 0F7ED0 7F0C33A0 8F2929C8 */ lw $t1, 0x29c8($t9) +/* 0F7ED4 7F0C33A4 54C90003 */ bnel $a2, $t1, .L7F0C33B4 +/* 0F7ED8 7F0C33A8 8C4A0004 */ lw $t2, 4($v0) +/* 0F7EDC 7F0C33AC 24630001 */ addiu $v1, $v1, 1 +/* 0F7EE0 7F0C33B0 8C4A0004 */ lw $t2, 4($v0) +.L7F0C33B4: +/* 0F7EE4 7F0C33B4 8D4B29C8 */ lw $t3, 0x29c8($t2) +/* 0F7EE8 7F0C33B8 54CB0003 */ bnel $a2, $t3, .L7F0C33C8 +/* 0F7EEC 7F0C33BC 8C4C0008 */ lw $t4, 8($v0) +/* 0F7EF0 7F0C33C0 24630001 */ addiu $v1, $v1, 1 +/* 0F7EF4 7F0C33C4 8C4C0008 */ lw $t4, 8($v0) +.L7F0C33C8: +/* 0F7EF8 7F0C33C8 8D8E29C8 */ lw $t6, 0x29c8($t4) +/* 0F7EFC 7F0C33CC 54CE0003 */ bnel $a2, $t6, .L7F0C33DC +/* 0F7F00 7F0C33D0 8C4D000C */ lw $t5, 0xc($v0) +/* 0F7F04 7F0C33D4 24630001 */ addiu $v1, $v1, 1 +/* 0F7F08 7F0C33D8 8C4D000C */ lw $t5, 0xc($v0) +.L7F0C33DC: +/* 0F7F0C 7F0C33DC 24420010 */ addiu $v0, $v0, 0x10 +/* 0F7F10 7F0C33E0 8DB829C8 */ lw $t8, 0x29c8($t5) +/* 0F7F14 7F0C33E4 14D80002 */ bne $a2, $t8, .L7F0C33F0 +/* 0F7F18 7F0C33E8 00000000 */ nop +/* 0F7F1C 7F0C33EC 24630001 */ addiu $v1, $v1, 1 +.L7F0C33F0: +/* 0F7F20 7F0C33F0 5445FFEB */ bnel $v0, $a1, .L7F0C33A0 +/* 0F7F24 7F0C33F4 8C590000 */ lw $t9, ($v0) +.L7F0C33F8: +/* 0F7F28 7F0C33F8 54680044 */ bnel $v1, $t0, .L7F0C350C +/* 0F7F2C 7F0C33FC 8FA2002C */ lw $v0, 0x2c($sp) +/* 0F7F30 7F0C3400 0C001A54 */ jal set_loaded_stage +/* 0F7F34 7F0C3404 2404005A */ li $a0, 90 +/* 0F7F38 7F0C3408 10000040 */ b .L7F0C350C +/* 0F7F3C 7F0C340C 8FA2002C */ lw $v0, 0x2c($sp) +.L7F0C3410: +/* 0F7F40 7F0C3410 8CEF0000 */ lw $t7, ($a3) +/* 0F7F44 7F0C3414 2419003C */ li $t9, 60 +/* 0F7F48 7F0C3418 ADE029C4 */ sw $zero, 0x29c4($t7) +/* 0F7F4C 7F0C341C 8CE90000 */ lw $t1, ($a3) +/* 0F7F50 7F0C3420 0FC26C54 */ jal get_cur_playernum +/* 0F7F54 7F0C3424 AD392A00 */ sw $t9, 0x2a00($t1) +/* 0F7F58 7F0C3428 3C0A8009 */ lui $t2, %hi(who_paused) +/* 0F7F5C 7F0C342C 8D4AC71C */ lw $t2, %lo(who_paused)($t2) +/* 0F7F60 7F0C3430 3C038009 */ lui $v1, %hi(is_paused) +/* 0F7F64 7F0C3434 2463C718 */ addiu $v1, %lo(is_paused) # addiu $v1, $v1, -0x38e8 +/* 0F7F68 7F0C3438 144A0033 */ bne $v0, $t2, .L7F0C3508 +/* 0F7F6C 7F0C343C 00002025 */ move $a0, $zero +/* 0F7F70 7F0C3440 0FC2FEFE */ jal set_controls_locked_flag +/* 0F7F74 7F0C3444 AC600000 */ sw $zero, ($v1) +/* 0F7F78 7F0C3448 10000030 */ b .L7F0C350C +/* 0F7F7C 7F0C344C 8FA2002C */ lw $v0, 0x2c($sp) +.L7F0C3450: +/* 0F7F80 7F0C3450 83A4001B */ lb $a0, 0x1b($sp) +/* 0F7F84 7F0C3454 0C0030EB */ jal get_controller_buttons_pressed +/* 0F7F88 7F0C3458 34059000 */ li $a1, 36864 +/* 0F7F8C 7F0C345C 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7F90 7F0C3460 10400010 */ beqz $v0, .L7F0C34A4 +/* 0F7F94 7F0C3464 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7F98 7F0C3468 8CEB0000 */ lw $t3, ($a3) +/* 0F7F9C 7F0C346C 24010005 */ li $at, 5 +/* 0F7FA0 7F0C3470 8D6C29C8 */ lw $t4, 0x29c8($t3) +/* 0F7FA4 7F0C3474 5581000C */ bnel $t4, $at, .L7F0C34A8 +/* 0F7FA8 7F0C3478 83A4001B */ lb $a0, 0x1b($sp) +/* 0F7FAC 7F0C347C 0FC307F7 */ jal play_watch_sfx_beep +/* 0F7FB0 7F0C3480 00000000 */ nop +/* 0F7FB4 7F0C3484 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7FB8 7F0C3488 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7FBC 7F0C348C 8CED0000 */ lw $t5, ($a3) +/* 0F7FC0 7F0C3490 240E0006 */ li $t6, 6 +/* 0F7FC4 7F0C3494 ADAE29C8 */ sw $t6, 0x29c8($t5) +/* 0F7FC8 7F0C3498 8CF80000 */ lw $t8, ($a3) +/* 0F7FCC 7F0C349C 1000001A */ b .L7F0C3508 +/* 0F7FD0 7F0C34A0 AF0029CC */ sw $zero, 0x29cc($t8) +.L7F0C34A4: +/* 0F7FD4 7F0C34A4 83A4001B */ lb $a0, 0x1b($sp) +.L7F0C34A8: +/* 0F7FD8 7F0C34A8 0C0030EB */ jal get_controller_buttons_pressed +/* 0F7FDC 7F0C34AC 34059000 */ li $a1, 36864 +/* 0F7FE0 7F0C34B0 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F7FE4 7F0C34B4 10400014 */ beqz $v0, .L7F0C3508 +/* 0F7FE8 7F0C34B8 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F7FEC 7F0C34BC 8CE30000 */ lw $v1, ($a3) +/* 0F7FF0 7F0C34C0 24010006 */ li $at, 6 +/* 0F7FF4 7F0C34C4 8C6F29C8 */ lw $t7, 0x29c8($v1) +/* 0F7FF8 7F0C34C8 55E10010 */ bnel $t7, $at, .L7F0C350C +/* 0F7FFC 7F0C34CC 8FA2002C */ lw $v0, 0x2c($sp) +/* 0F8000 7F0C34D0 8C7929CC */ lw $t9, 0x29cc($v1) +/* 0F8004 7F0C34D4 24010001 */ li $at, 1 +/* 0F8008 7F0C34D8 5721000C */ bnel $t9, $at, .L7F0C350C +/* 0F800C 7F0C34DC 8FA2002C */ lw $v0, 0x2c($sp) +/* 0F8010 7F0C34E0 0FC307F7 */ jal play_watch_sfx_beep +/* 0F8014 7F0C34E4 00000000 */ nop +/* 0F8018 7F0C34E8 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F801C 7F0C34EC 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F8020 7F0C34F0 8CE90000 */ lw $t1, ($a3) +/* 0F8024 7F0C34F4 00002025 */ move $a0, $zero +/* 0F8028 7F0C34F8 AD2029C4 */ sw $zero, 0x29c4($t1) +/* 0F802C 7F0C34FC 8CEA0000 */ lw $t2, ($a3) +/* 0F8030 7F0C3500 0FC3094C */ jal sub_GAME_7F0C2530 +/* 0F8034 7F0C3504 AD402A00 */ sw $zero, 0x2a00($t2) +.L7F0C3508: +/* 0F8038 7F0C3508 8FA2002C */ lw $v0, 0x2c($sp) +.L7F0C350C: +/* 0F803C 7F0C350C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0F8040 7F0C3510 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0F8044 7F0C3514 10400002 */ beqz $v0, .L7F0C3520 +/* 0F8048 7F0C3518 2401FFFF */ li $at, -1 +/* 0F804C 7F0C351C 14410003 */ bne $v0, $at, .L7F0C352C +.L7F0C3520: +/* 0F8050 7F0C3520 240B0001 */ li $t3, 1 +/* 0F8054 7F0C3524 1000001A */ b .L7F0C3590 +/* 0F8058 7F0C3528 AC6B29D0 */ sw $t3, 0x29d0($v1) +.L7F0C352C: +/* 0F805C 7F0C352C 10000018 */ b .L7F0C3590 +/* 0F8060 7F0C3530 AC6029D0 */ sw $zero, 0x29d0($v1) +.L7F0C3534: +/* 0F8064 7F0C3534 0C0030EB */ jal get_controller_buttons_pressed +/* 0F8068 7F0C3538 24051000 */ li $a1, 4096 +/* 0F806C 7F0C353C 50400015 */ beql $v0, $zero, .L7F0C3594 +/* 0F8070 7F0C3540 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F8074 7F0C3544 0FC307F7 */ jal play_watch_sfx_beep +/* 0F8078 7F0C3548 00000000 */ nop +/* 0F807C 7F0C354C 3C078008 */ lui $a3, %hi(pPlayer) +/* 0F8080 7F0C3550 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0F8084 7F0C3554 8CEE0000 */ lw $t6, ($a3) +/* 0F8088 7F0C3558 240C0001 */ li $t4, 1 +/* 0F808C 7F0C355C 240D0003 */ li $t5, 3 +/* 0F8090 7F0C3560 ADCC29C4 */ sw $t4, 0x29c4($t6) +/* 0F8094 7F0C3564 8CF80000 */ lw $t8, ($a3) +/* 0F8098 7F0C3568 240F0001 */ li $t7, 1 +/* 0F809C 7F0C356C AF0D29C8 */ sw $t5, 0x29c8($t8) +/* 0F80A0 7F0C3570 8CF90000 */ lw $t9, ($a3) +/* 0F80A4 7F0C3574 AF2F29D0 */ sw $t7, 0x29d0($t9) +/* 0F80A8 7F0C3578 8CE30000 */ lw $v1, ($a3) +/* 0F80AC 7F0C357C C46400DC */ lwc1 $f4, 0xdc($v1) +/* 0F80B0 7F0C3580 E46400EC */ swc1 $f4, 0xec($v1) +/* 0F80B4 7F0C3584 8CE30000 */ lw $v1, ($a3) +/* 0F80B8 7F0C3588 C46600E0 */ lwc1 $f6, 0xe0($v1) +/* 0F80BC 7F0C358C E46600F0 */ swc1 $f6, 0xf0($v1) +.L7F0C3590: +/* 0F80C0 7F0C3590 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C3594: +/* 0F80C4 7F0C3594 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0F80C8 7F0C3598 03E00008 */ jr $ra +/* 0F80CC 7F0C359C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void display_text_for_playerdata_on_MP_menu(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BC88*/ +glabel jpt_MP_overlays_scoring_scenario_0 +.word green_text_normal +.word green_text_highlighted +.word red_text_normal +.word red_text_highlighted +.word blue_text_normal +.word blue_text_highlighted + +.text +glabel display_text_for_playerdata_on_MP_menu +/* 0F80D0 7F0C35A0 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0F80D4 7F0C35A4 AFB00034 */ sw $s0, 0x34($sp) +/* 0F80D8 7F0C35A8 00A08025 */ move $s0, $a1 +/* 0F80DC 7F0C35AC AFB10038 */ sw $s1, 0x38($sp) +/* 0F80E0 7F0C35B0 00808825 */ move $s1, $a0 +/* 0F80E4 7F0C35B4 AFBF003C */ sw $ra, 0x3c($sp) +/* 0F80E8 7F0C35B8 AFA60068 */ sw $a2, 0x68($sp) +/* 0F80EC 7F0C35BC 3C058006 */ lui $a1, %hi(ascii_MP_watch_menu_percentd) +/* 0F80F0 7F0C35C0 24A5BC20 */ addiu $a1, %lo(ascii_MP_watch_menu_percentd) # addiu $a1, $a1, -0x43e0 +/* 0F80F4 7F0C35C4 00E03025 */ move $a2, $a3 +/* 0F80F8 7F0C35C8 0C002B25 */ jal sprintf +/* 0F80FC 7F0C35CC 27A40048 */ addiu $a0, $sp, 0x48 +/* 0F8100 7F0C35D0 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0F8104 7F0C35D4 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0F8108 7F0C35D8 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F810C 7F0C35DC 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F8110 7F0C35E0 27A40050 */ addiu $a0, $sp, 0x50 +/* 0F8114 7F0C35E4 27A50054 */ addiu $a1, $sp, 0x54 +/* 0F8118 7F0C35E8 27A60048 */ addiu $a2, $sp, 0x48 +/* 0F811C 7F0C35EC AFA00014 */ sw $zero, 0x14($sp) +/* 0F8120 7F0C35F0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F8124 7F0C35F4 AFAE0010 */ sw $t6, 0x10($sp) +/* 0F8128 7F0C35F8 8FAF0054 */ lw $t7, 0x54($sp) +/* 0F812C 7F0C35FC 8FA90070 */ lw $t1, 0x70($sp) +/* 0F8130 7F0C3600 8FA80068 */ lw $t0, 0x68($sp) +/* 0F8134 7F0C3604 000FC043 */ sra $t8, $t7, 1 +/* 0F8138 7F0C3608 0218C823 */ subu $t9, $s0, $t8 +/* 0F813C 7F0C360C 2D210006 */ sltiu $at, $t1, 6 +/* 0F8140 7F0C3610 AFB9005C */ sw $t9, 0x5c($sp) +/* 0F8144 7F0C3614 102000AA */ beqz $at, .L7F0C38C0 +/* 0F8148 7F0C3618 AFA80058 */ sw $t0, 0x58($sp) +/* 0F814C 7F0C361C 00094880 */ sll $t1, $t1, 2 +/* 0F8150 7F0C3620 3C018006 */ lui $at, %hi(jpt_MP_overlays_scoring_scenario_0) +/* 0F8154 7F0C3624 00290821 */ addu $at, $at, $t1 +/* 0F8158 7F0C3628 8C29BC88 */ lw $t1, %lo(jpt_MP_overlays_scoring_scenario_0)($at) +/* 0F815C 7F0C362C 01200008 */ jr $t1 +/* 0F8160 7F0C3630 00000000 */ nop +green_text_normal: +/* 0F8164 7F0C3634 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8168 7F0C3638 00000000 */ nop +/* 0F816C 7F0C363C 00028400 */ sll $s0, $v0, 0x10 +/* 0F8170 7F0C3640 00105403 */ sra $t2, $s0, 0x10 +/* 0F8174 7F0C3644 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8178 7F0C3648 01408025 */ move $s0, $t2 +/* 0F817C 7F0C364C 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableSmall) +/* 0F8180 7F0C3650 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0F8184 7F0C3654 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0F8188 7F0C3658 8D6B0EB0 */ lw $t3, %lo(ptrSecondFontTableSmall)($t3) +/* 0F818C 7F0C365C 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0F8190 7F0C3660 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0F8194 7F0C3664 AFAD0018 */ sw $t5, 0x18($sp) +/* 0F8198 7F0C3668 02202025 */ move $a0, $s1 +/* 0F819C 7F0C366C 27A5005C */ addiu $a1, $sp, 0x5c +/* 0F81A0 7F0C3670 27A60058 */ addiu $a2, $sp, 0x58 +/* 0F81A4 7F0C3674 27A70048 */ addiu $a3, $sp, 0x48 +/* 0F81A8 7F0C3678 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F81AC 7F0C367C AFA20020 */ sw $v0, 0x20($sp) +/* 0F81B0 7F0C3680 AFA00024 */ sw $zero, 0x24($sp) +/* 0F81B4 7F0C3684 AFA00028 */ sw $zero, 0x28($sp) +/* 0F81B8 7F0C3688 AFAC0014 */ sw $t4, 0x14($sp) +/* 0F81BC 7F0C368C 0FC2B6AF */ jal en_text_write_stuff +/* 0F81C0 7F0C3690 AFAB0010 */ sw $t3, 0x10($sp) +/* 0F81C4 7F0C3694 1000008A */ b .L7F0C38C0 +/* 0F81C8 7F0C3698 00408825 */ move $s1, $v0 +green_text_highlighted: +/* 0F81CC 7F0C369C 0C001107 */ jal get_video2_settings_txtClipW +/* 0F81D0 7F0C36A0 00000000 */ nop +/* 0F81D4 7F0C36A4 00028400 */ sll $s0, $v0, 0x10 +/* 0F81D8 7F0C36A8 00107403 */ sra $t6, $s0, 0x10 +/* 0F81DC 7F0C36AC 0C00110B */ jal get_video2_settings_txtClipH +/* 0F81E0 7F0C36B0 01C08025 */ move $s0, $t6 +/* 0F81E4 7F0C36B4 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0F81E8 7F0C36B8 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0F81EC 7F0C36BC 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0F81F0 7F0C36C0 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0F81F4 7F0C36C4 3C19A0FF */ lui $t9, (0xA0FFA0F0 >> 16) # lui $t9, 0xa0ff +/* 0F81F8 7F0C36C8 3C080070 */ lui $t0, (0x007000A0 >> 16) # lui $t0, 0x70 +/* 0F81FC 7F0C36CC 350800A0 */ ori $t0, (0x007000A0 & 0xFFFF) # ori $t0, $t0, 0xa0 +/* 0F8200 7F0C36D0 3739A0F0 */ ori $t9, (0xA0FFA0F0 & 0xFFFF) # ori $t9, $t9, 0xa0f0 +/* 0F8204 7F0C36D4 AFB90018 */ sw $t9, 0x18($sp) +/* 0F8208 7F0C36D8 AFA8001C */ sw $t0, 0x1c($sp) +/* 0F820C 7F0C36DC 02202025 */ move $a0, $s1 +/* 0F8210 7F0C36E0 27A5005C */ addiu $a1, $sp, 0x5c +/* 0F8214 7F0C36E4 27A60058 */ addiu $a2, $sp, 0x58 +/* 0F8218 7F0C36E8 27A70048 */ addiu $a3, $sp, 0x48 +/* 0F821C 7F0C36EC AFB00020 */ sw $s0, 0x20($sp) +/* 0F8220 7F0C36F0 AFA20024 */ sw $v0, 0x24($sp) +/* 0F8224 7F0C36F4 AFA00028 */ sw $zero, 0x28($sp) +/* 0F8228 7F0C36F8 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F822C 7F0C36FC AFB80014 */ sw $t8, 0x14($sp) +/* 0F8230 7F0C3700 0FC2B9BB */ jal jp_text_write_stuff +/* 0F8234 7F0C3704 AFAF0010 */ sw $t7, 0x10($sp) +/* 0F8238 7F0C3708 1000006D */ b .L7F0C38C0 +/* 0F823C 7F0C370C 00408825 */ move $s1, $v0 +red_text_normal: +/* 0F8240 7F0C3710 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8244 7F0C3714 00000000 */ nop +/* 0F8248 7F0C3718 00028400 */ sll $s0, $v0, 0x10 +/* 0F824C 7F0C371C 00104C03 */ sra $t1, $s0, 0x10 +/* 0F8250 7F0C3720 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8254 7F0C3724 01208025 */ move $s0, $t1 +/* 0F8258 7F0C3728 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) +/* 0F825C 7F0C372C 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) +/* 0F8260 7F0C3730 8D6B0EAC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0F8264 7F0C3734 8D4A0EB0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0F8268 7F0C3738 3C0CFF40 */ lui $t4, (0xFF4040B0 >> 16) # lui $t4, 0xff40 +/* 0F826C 7F0C373C 358C40B0 */ ori $t4, (0xFF4040B0 & 0xFFFF) # ori $t4, $t4, 0x40b0 +/* 0F8270 7F0C3740 AFAC0018 */ sw $t4, 0x18($sp) +/* 0F8274 7F0C3744 02202025 */ move $a0, $s1 +/* 0F8278 7F0C3748 27A5005C */ addiu $a1, $sp, 0x5c +/* 0F827C 7F0C374C 27A60058 */ addiu $a2, $sp, 0x58 +/* 0F8280 7F0C3750 27A70048 */ addiu $a3, $sp, 0x48 +/* 0F8284 7F0C3754 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F8288 7F0C3758 AFA20020 */ sw $v0, 0x20($sp) +/* 0F828C 7F0C375C AFA00024 */ sw $zero, 0x24($sp) +/* 0F8290 7F0C3760 AFA00028 */ sw $zero, 0x28($sp) +/* 0F8294 7F0C3764 AFAB0014 */ sw $t3, 0x14($sp) +/* 0F8298 7F0C3768 0FC2B6AF */ jal en_text_write_stuff +/* 0F829C 7F0C376C AFAA0010 */ sw $t2, 0x10($sp) +/* 0F82A0 7F0C3770 10000053 */ b .L7F0C38C0 +/* 0F82A4 7F0C3774 00408825 */ move $s1, $v0 +red_text_highlighted: +/* 0F82A8 7F0C3778 0C001107 */ jal get_video2_settings_txtClipW +/* 0F82AC 7F0C377C 00000000 */ nop +/* 0F82B0 7F0C3780 00028400 */ sll $s0, $v0, 0x10 +/* 0F82B4 7F0C3784 00106C03 */ sra $t5, $s0, 0x10 +/* 0F82B8 7F0C3788 0C00110B */ jal get_video2_settings_txtClipH +/* 0F82BC 7F0C378C 01A08025 */ move $s0, $t5 +/* 0F82C0 7F0C3790 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) +/* 0F82C4 7F0C3794 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) +/* 0F82C8 7F0C3798 8DEF0EAC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0F82CC 7F0C379C 8DCE0EB0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0F82D0 7F0C37A0 3C18FFA0 */ lui $t8, (0xFFA0A0F0 >> 16) # lui $t8, 0xffa0 +/* 0F82D4 7F0C37A4 3C197000 */ lui $t9, (0x700000A0 >> 16) # lui $t9, 0x7000 +/* 0F82D8 7F0C37A8 373900A0 */ ori $t9, (0x700000A0 & 0xFFFF) # ori $t9, $t9, 0xa0 +/* 0F82DC 7F0C37AC 3718A0F0 */ ori $t8, (0xFFA0A0F0 & 0xFFFF) # ori $t8, $t8, 0xa0f0 +/* 0F82E0 7F0C37B0 AFB80018 */ sw $t8, 0x18($sp) +/* 0F82E4 7F0C37B4 AFB9001C */ sw $t9, 0x1c($sp) +/* 0F82E8 7F0C37B8 02202025 */ move $a0, $s1 +/* 0F82EC 7F0C37BC 27A5005C */ addiu $a1, $sp, 0x5c +/* 0F82F0 7F0C37C0 27A60058 */ addiu $a2, $sp, 0x58 +/* 0F82F4 7F0C37C4 27A70048 */ addiu $a3, $sp, 0x48 +/* 0F82F8 7F0C37C8 AFB00020 */ sw $s0, 0x20($sp) +/* 0F82FC 7F0C37CC AFA20024 */ sw $v0, 0x24($sp) +/* 0F8300 7F0C37D0 AFA00028 */ sw $zero, 0x28($sp) +/* 0F8304 7F0C37D4 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F8308 7F0C37D8 AFAF0014 */ sw $t7, 0x14($sp) +/* 0F830C 7F0C37DC 0FC2B9BB */ jal jp_text_write_stuff +/* 0F8310 7F0C37E0 AFAE0010 */ sw $t6, 0x10($sp) +/* 0F8314 7F0C37E4 10000036 */ b .L7F0C38C0 +/* 0F8318 7F0C37E8 00408825 */ move $s1, $v0 +blue_text_normal: +/* 0F831C 7F0C37EC 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8320 7F0C37F0 00000000 */ nop +/* 0F8324 7F0C37F4 00028400 */ sll $s0, $v0, 0x10 +/* 0F8328 7F0C37F8 00104403 */ sra $t0, $s0, 0x10 +/* 0F832C 7F0C37FC 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8330 7F0C3800 01008025 */ move $s0, $t0 +/* 0F8334 7F0C3804 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) +/* 0F8338 7F0C3808 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) +/* 0F833C 7F0C380C 8D4A0EAC */ lw $t2, %lo(ptrFirstFontTableSmall)($t2) +/* 0F8340 7F0C3810 8D290EB0 */ lw $t1, %lo(ptrSecondFontTableSmall)($t1) +/* 0F8344 7F0C3814 3C0B4040 */ lui $t3, (0x4040FFB0 >> 16) # lui $t3, 0x4040 +/* 0F8348 7F0C3818 356BFFB0 */ ori $t3, (0x4040FFB0 & 0xFFFF) # ori $t3, $t3, 0xffb0 +/* 0F834C 7F0C381C AFAB0018 */ sw $t3, 0x18($sp) +/* 0F8350 7F0C3820 02202025 */ move $a0, $s1 +/* 0F8354 7F0C3824 27A5005C */ addiu $a1, $sp, 0x5c +/* 0F8358 7F0C3828 27A60058 */ addiu $a2, $sp, 0x58 +/* 0F835C 7F0C382C 27A70048 */ addiu $a3, $sp, 0x48 +/* 0F8360 7F0C3830 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F8364 7F0C3834 AFA20020 */ sw $v0, 0x20($sp) +/* 0F8368 7F0C3838 AFA00024 */ sw $zero, 0x24($sp) +/* 0F836C 7F0C383C AFA00028 */ sw $zero, 0x28($sp) +/* 0F8370 7F0C3840 AFAA0014 */ sw $t2, 0x14($sp) +/* 0F8374 7F0C3844 0FC2B6AF */ jal en_text_write_stuff +/* 0F8378 7F0C3848 AFA90010 */ sw $t1, 0x10($sp) +/* 0F837C 7F0C384C 1000001C */ b .L7F0C38C0 +/* 0F8380 7F0C3850 00408825 */ move $s1, $v0 +blue_text_highlighted: +/* 0F8384 7F0C3854 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8388 7F0C3858 00000000 */ nop +/* 0F838C 7F0C385C 00028400 */ sll $s0, $v0, 0x10 +/* 0F8390 7F0C3860 00106403 */ sra $t4, $s0, 0x10 +/* 0F8394 7F0C3864 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8398 7F0C3868 01808025 */ move $s0, $t4 +/* 0F839C 7F0C386C 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableSmall) +/* 0F83A0 7F0C3870 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0F83A4 7F0C3874 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0F83A8 7F0C3878 8DAD0EB0 */ lw $t5, %lo(ptrSecondFontTableSmall)($t5) +/* 0F83AC 7F0C387C 3C0FA0A0 */ lui $t7, (0xA0A0FFF0 >> 16) # lui $t7, 0xa0a0 +/* 0F83B0 7F0C3880 35EFFFF0 */ ori $t7, (0xA0A0FFF0 & 0xFFFF) # ori $t7, $t7, 0xfff0 +/* 0F83B4 7F0C3884 241870A0 */ li $t8, 28832 +/* 0F83B8 7F0C3888 AFB8001C */ sw $t8, 0x1c($sp) +/* 0F83BC 7F0C388C AFAF0018 */ sw $t7, 0x18($sp) +/* 0F83C0 7F0C3890 02202025 */ move $a0, $s1 +/* 0F83C4 7F0C3894 27A5005C */ addiu $a1, $sp, 0x5c +/* 0F83C8 7F0C3898 27A60058 */ addiu $a2, $sp, 0x58 +/* 0F83CC 7F0C389C 27A70048 */ addiu $a3, $sp, 0x48 +/* 0F83D0 7F0C38A0 AFB00020 */ sw $s0, 0x20($sp) +/* 0F83D4 7F0C38A4 AFA20024 */ sw $v0, 0x24($sp) +/* 0F83D8 7F0C38A8 AFA00028 */ sw $zero, 0x28($sp) +/* 0F83DC 7F0C38AC AFA0002C */ sw $zero, 0x2c($sp) +/* 0F83E0 7F0C38B0 AFAE0014 */ sw $t6, 0x14($sp) +/* 0F83E4 7F0C38B4 0FC2B9BB */ jal jp_text_write_stuff +/* 0F83E8 7F0C38B8 AFAD0010 */ sw $t5, 0x10($sp) +/* 0F83EC 7F0C38BC 00408825 */ move $s1, $v0 +def_7F0C362C: +.L7F0C38C0: +/* 0F83F0 7F0C38C0 8FBF003C */ lw $ra, 0x3c($sp) +/* 0F83F4 7F0C38C4 02201025 */ move $v0, $s1 +/* 0F83F8 7F0C38C8 8FB10038 */ lw $s1, 0x38($sp) +/* 0F83FC 7F0C38CC 8FB00034 */ lw $s0, 0x34($sp) +/* 0F8400 7F0C38D0 03E00008 */ jr $ra +/* 0F8404 7F0C38D4 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + +#ifdef NONMATCHING +void get_points_for_mp_player(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BCA0*/ +glabel jpt_MP_overlays_scoring +.word num_player_kills +.word num_deaths +.word time_with_flag +.word num_player_kills +.word num_player_kills +.word team_player_kills +.word team_player_kills +.word team_player_kills + +.text +glabel get_points_for_mp_player +/* 0F8408 7F0C38D8 000470C0 */ sll $t6, $a0, 3 +/* 0F840C 7F0C38DC 3C038008 */ lui $v1, %hi(player1_player_data) +/* 0F8410 7F0C38E0 01C47023 */ subu $t6, $t6, $a0 +/* 0F8414 7F0C38E4 24639EF0 */ addiu $v1, %lo(player1_player_data) # addiu $v1, $v1, -0x6110 +/* 0F8418 7F0C38E8 000E7100 */ sll $t6, $t6, 4 +/* 0F841C 7F0C38EC 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0F8420 7F0C38F0 006E5821 */ addu $t3, $v1, $t6 +/* 0F8424 7F0C38F4 91670069 */ lbu $a3, 0x69($t3) +/* 0F8428 7F0C38F8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F842C 7F0C38FC AFAB0018 */ sw $t3, 0x18($sp) +/* 0F8430 7F0C3900 AFA40038 */ sw $a0, 0x38($sp) +/* 0F8434 7F0C3904 0FC26919 */ jal get_num_players +/* 0F8438 7F0C3908 AFA70034 */ sw $a3, 0x34($sp) +/* 0F843C 7F0C390C AFA00024 */ sw $zero, 0x24($sp) +/* 0F8440 7F0C3910 0FC051D6 */ jal get_scenario +/* 0F8444 7F0C3914 AFA20030 */ sw $v0, 0x30($sp) +/* 0F8448 7F0C3918 3C038008 */ lui $v1, %hi(player1_player_data) +/* 0F844C 7F0C391C 2C410008 */ sltiu $at, $v0, 8 +/* 0F8450 7F0C3920 24639EF0 */ addiu $v1, %lo(player1_player_data) # addiu $v1, $v1, -0x6110 +/* 0F8454 7F0C3924 8FA40024 */ lw $a0, 0x24($sp) +/* 0F8458 7F0C3928 8FA50038 */ lw $a1, 0x38($sp) +/* 0F845C 7F0C392C 8FA70034 */ lw $a3, 0x34($sp) +/* 0F8460 7F0C3930 8FAA0030 */ lw $t2, 0x30($sp) +/* 0F8464 7F0C3934 102000D2 */ beqz $at, .L7F0C3C80 +/* 0F8468 7F0C3938 8FAB0018 */ lw $t3, 0x18($sp) +/* 0F846C 7F0C393C 00027880 */ sll $t7, $v0, 2 +/* 0F8470 7F0C3940 3C018006 */ lui $at, %hi(jpt_MP_overlays_scoring) +/* 0F8474 7F0C3944 002F0821 */ addu $at, $at, $t7 +/* 0F8478 7F0C3948 8C2FBCA0 */ lw $t7, %lo(jpt_MP_overlays_scoring)($at) +/* 0F847C 7F0C394C 01E00008 */ jr $t7 +/* 0F8480 7F0C3950 00000000 */ nop +num_player_kills: +/* 0F8484 7F0C3954 19400068 */ blez $t2, .L7F0C3AF8 +/* 0F8488 7F0C3958 00004825 */ move $t1, $zero +/* 0F848C 7F0C395C 31480003 */ andi $t0, $t2, 3 +/* 0F8490 7F0C3960 11000017 */ beqz $t0, .L7F0C39C0 +/* 0F8494 7F0C3964 01001025 */ move $v0, $t0 +.L7F0C3968: +/* 0F8498 7F0C3968 1125000A */ beq $t1, $a1, .L7F0C3994 +/* 0F849C 7F0C396C 0009C0C0 */ sll $t8, $t1, 3 +/* 0F84A0 7F0C3970 0005C0C0 */ sll $t8, $a1, 3 +/* 0F84A4 7F0C3974 0305C023 */ subu $t8, $t8, $a1 +/* 0F84A8 7F0C3978 0018C100 */ sll $t8, $t8, 4 +/* 0F84AC 7F0C397C 0078C821 */ addu $t9, $v1, $t8 +/* 0F84B0 7F0C3980 00096880 */ sll $t5, $t1, 2 +/* 0F84B4 7F0C3984 032D7021 */ addu $t6, $t9, $t5 +/* 0F84B8 7F0C3988 8DCF0024 */ lw $t7, 0x24($t6) +/* 0F84BC 7F0C398C 10000008 */ b .L7F0C39B0 +/* 0F84C0 7F0C3990 008F2021 */ addu $a0, $a0, $t7 +.L7F0C3994: +/* 0F84C4 7F0C3994 0309C023 */ subu $t8, $t8, $t1 +/* 0F84C8 7F0C3998 0018C100 */ sll $t8, $t8, 4 +/* 0F84CC 7F0C399C 0078C821 */ addu $t9, $v1, $t8 +/* 0F84D0 7F0C39A0 00056880 */ sll $t5, $a1, 2 +/* 0F84D4 7F0C39A4 032D7021 */ addu $t6, $t9, $t5 +/* 0F84D8 7F0C39A8 8DCF0024 */ lw $t7, 0x24($t6) +/* 0F84DC 7F0C39AC 008F2023 */ subu $a0, $a0, $t7 +.L7F0C39B0: +/* 0F84E0 7F0C39B0 25290001 */ addiu $t1, $t1, 1 +/* 0F84E4 7F0C39B4 1449FFEC */ bne $v0, $t1, .L7F0C3968 +/* 0F84E8 7F0C39B8 00000000 */ nop +/* 0F84EC 7F0C39BC 112A004E */ beq $t1, $t2, .L7F0C3AF8 +.L7F0C39C0: +/* 0F84F0 7F0C39C0 24A2FFFF */ addiu $v0, $a1, -1 +/* 0F84F4 7F0C39C4 24A6FFFE */ addiu $a2, $a1, -2 +/* 0F84F8 7F0C39C8 24A7FFFD */ addiu $a3, $a1, -3 +.L7F0C39CC: +/* 0F84FC 7F0C39CC 1125000A */ beq $t1, $a1, .L7F0C39F8 +/* 0F8500 7F0C39D0 0009C0C0 */ sll $t8, $t1, 3 +/* 0F8504 7F0C39D4 0005C0C0 */ sll $t8, $a1, 3 +/* 0F8508 7F0C39D8 0305C023 */ subu $t8, $t8, $a1 +/* 0F850C 7F0C39DC 0018C100 */ sll $t8, $t8, 4 +/* 0F8510 7F0C39E0 0078C821 */ addu $t9, $v1, $t8 +/* 0F8514 7F0C39E4 00096880 */ sll $t5, $t1, 2 +/* 0F8518 7F0C39E8 032D7021 */ addu $t6, $t9, $t5 +/* 0F851C 7F0C39EC 8DCF0024 */ lw $t7, 0x24($t6) +/* 0F8520 7F0C39F0 10000008 */ b .L7F0C3A14 +/* 0F8524 7F0C39F4 008F2021 */ addu $a0, $a0, $t7 +.L7F0C39F8: +/* 0F8528 7F0C39F8 0309C023 */ subu $t8, $t8, $t1 +/* 0F852C 7F0C39FC 0018C100 */ sll $t8, $t8, 4 +/* 0F8530 7F0C3A00 0078C821 */ addu $t9, $v1, $t8 +/* 0F8534 7F0C3A04 00056880 */ sll $t5, $a1, 2 +/* 0F8538 7F0C3A08 032D7021 */ addu $t6, $t9, $t5 +/* 0F853C 7F0C3A0C 8DCF0024 */ lw $t7, 0x24($t6) +/* 0F8540 7F0C3A10 008F2023 */ subu $a0, $a0, $t7 +.L7F0C3A14: +/* 0F8544 7F0C3A14 1122000A */ beq $t1, $v0, .L7F0C3A40 +/* 0F8548 7F0C3A18 0009C0C0 */ sll $t8, $t1, 3 +/* 0F854C 7F0C3A1C 0005C0C0 */ sll $t8, $a1, 3 +/* 0F8550 7F0C3A20 0305C023 */ subu $t8, $t8, $a1 +/* 0F8554 7F0C3A24 0018C100 */ sll $t8, $t8, 4 +/* 0F8558 7F0C3A28 0078C821 */ addu $t9, $v1, $t8 +/* 0F855C 7F0C3A2C 00096880 */ sll $t5, $t1, 2 +/* 0F8560 7F0C3A30 032D7021 */ addu $t6, $t9, $t5 +/* 0F8564 7F0C3A34 8DCF0028 */ lw $t7, 0x28($t6) +/* 0F8568 7F0C3A38 10000008 */ b .L7F0C3A5C +/* 0F856C 7F0C3A3C 008F2021 */ addu $a0, $a0, $t7 +.L7F0C3A40: +/* 0F8570 7F0C3A40 0309C023 */ subu $t8, $t8, $t1 +/* 0F8574 7F0C3A44 0018C100 */ sll $t8, $t8, 4 +/* 0F8578 7F0C3A48 0078C821 */ addu $t9, $v1, $t8 +/* 0F857C 7F0C3A4C 00056880 */ sll $t5, $a1, 2 +/* 0F8580 7F0C3A50 032D7021 */ addu $t6, $t9, $t5 +/* 0F8584 7F0C3A54 8DCF0094 */ lw $t7, 0x94($t6) +/* 0F8588 7F0C3A58 008F2023 */ subu $a0, $a0, $t7 +.L7F0C3A5C: +/* 0F858C 7F0C3A5C 1126000A */ beq $t1, $a2, .L7F0C3A88 +/* 0F8590 7F0C3A60 0009C0C0 */ sll $t8, $t1, 3 +/* 0F8594 7F0C3A64 0005C0C0 */ sll $t8, $a1, 3 +/* 0F8598 7F0C3A68 0305C023 */ subu $t8, $t8, $a1 +/* 0F859C 7F0C3A6C 0018C100 */ sll $t8, $t8, 4 +/* 0F85A0 7F0C3A70 0078C821 */ addu $t9, $v1, $t8 +/* 0F85A4 7F0C3A74 00096880 */ sll $t5, $t1, 2 +/* 0F85A8 7F0C3A78 032D7021 */ addu $t6, $t9, $t5 +/* 0F85AC 7F0C3A7C 8DCF002C */ lw $t7, 0x2c($t6) +/* 0F85B0 7F0C3A80 10000008 */ b .L7F0C3AA4 +/* 0F85B4 7F0C3A84 008F2021 */ addu $a0, $a0, $t7 +.L7F0C3A88: +/* 0F85B8 7F0C3A88 0309C023 */ subu $t8, $t8, $t1 +/* 0F85BC 7F0C3A8C 0018C100 */ sll $t8, $t8, 4 +/* 0F85C0 7F0C3A90 0078C821 */ addu $t9, $v1, $t8 +/* 0F85C4 7F0C3A94 00056880 */ sll $t5, $a1, 2 +/* 0F85C8 7F0C3A98 032D7021 */ addu $t6, $t9, $t5 +/* 0F85CC 7F0C3A9C 8DCF0104 */ lw $t7, 0x104($t6) +/* 0F85D0 7F0C3AA0 008F2023 */ subu $a0, $a0, $t7 +.L7F0C3AA4: +/* 0F85D4 7F0C3AA4 1127000A */ beq $t1, $a3, .L7F0C3AD0 +/* 0F85D8 7F0C3AA8 0009C0C0 */ sll $t8, $t1, 3 +/* 0F85DC 7F0C3AAC 0005C0C0 */ sll $t8, $a1, 3 +/* 0F85E0 7F0C3AB0 0305C023 */ subu $t8, $t8, $a1 +/* 0F85E4 7F0C3AB4 0018C100 */ sll $t8, $t8, 4 +/* 0F85E8 7F0C3AB8 0078C821 */ addu $t9, $v1, $t8 +/* 0F85EC 7F0C3ABC 00096880 */ sll $t5, $t1, 2 +/* 0F85F0 7F0C3AC0 032D7021 */ addu $t6, $t9, $t5 +/* 0F85F4 7F0C3AC4 8DCF0030 */ lw $t7, 0x30($t6) +/* 0F85F8 7F0C3AC8 10000008 */ b .L7F0C3AEC +/* 0F85FC 7F0C3ACC 008F2021 */ addu $a0, $a0, $t7 +.L7F0C3AD0: +/* 0F8600 7F0C3AD0 0309C023 */ subu $t8, $t8, $t1 +/* 0F8604 7F0C3AD4 0018C100 */ sll $t8, $t8, 4 +/* 0F8608 7F0C3AD8 0078C821 */ addu $t9, $v1, $t8 +/* 0F860C 7F0C3ADC 00056880 */ sll $t5, $a1, 2 +/* 0F8610 7F0C3AE0 032D7021 */ addu $t6, $t9, $t5 +/* 0F8614 7F0C3AE4 8DCF0174 */ lw $t7, 0x174($t6) +/* 0F8618 7F0C3AE8 008F2023 */ subu $a0, $a0, $t7 +.L7F0C3AEC: +/* 0F861C 7F0C3AEC 25290004 */ addiu $t1, $t1, 4 +/* 0F8620 7F0C3AF0 152AFFB6 */ bne $t1, $t2, .L7F0C39CC +/* 0F8624 7F0C3AF4 00000000 */ nop +.L7F0C3AF8: +/* 0F8628 7F0C3AF8 8D780020 */ lw $t8, 0x20($t3) +/* 0F862C 7F0C3AFC 2559FFFE */ addiu $t9, $t2, -2 +/* 0F8630 7F0C3B00 03190019 */ multu $t8, $t9 +/* 0F8634 7F0C3B04 00006812 */ mflo $t5 +/* 0F8638 7F0C3B08 008D2021 */ addu $a0, $a0, $t5 +/* 0F863C 7F0C3B0C 1000005D */ b .L7F0C3C84 +/* 0F8640 7F0C3B10 8FBF0014 */ lw $ra, 0x14($sp) +num_deaths: +/* 0F8644 7F0C3B14 916E0068 */ lbu $t6, 0x68($t3) +/* 0F8648 7F0C3B18 240F0004 */ li $t7, 4 +/* 0F864C 7F0C3B1C 10000058 */ b .L7F0C3C80 +/* 0F8650 7F0C3B20 01EE2023 */ subu $a0, $t7, $t6 +time_with_flag: +/* 0F8654 7F0C3B24 10000056 */ b .L7F0C3C80 +/* 0F8658 7F0C3B28 8D640060 */ lw $a0, 0x60($t3) +team_player_kills: +/* 0F865C 7F0C3B2C 19400054 */ blez $t2, .L7F0C3C80 +/* 0F8660 7F0C3B30 00004825 */ move $t1, $zero +/* 0F8664 7F0C3B34 3C0C8008 */ lui $t4, %hi(player1_player_data) +/* 0F8668 7F0C3B38 258C9EF0 */ addiu $t4, %lo(player1_player_data) # addiu $t4, $t4, -0x6110 +.L7F0C3B3C: +/* 0F866C 7F0C3B3C 91980069 */ lbu $t8, 0x69($t4) +/* 0F8670 7F0C3B40 54F8004D */ bnel $a3, $t8, .L7F0C3C78 +/* 0F8674 7F0C3B44 25290001 */ addiu $t1, $t1, 1 +/* 0F8678 7F0C3B48 1940004A */ blez $t2, .L7F0C3C74 +/* 0F867C 7F0C3B4C 00002825 */ move $a1, $zero +/* 0F8680 7F0C3B50 0009C8C0 */ sll $t9, $t1, 3 +/* 0F8684 7F0C3B54 0329C823 */ subu $t9, $t9, $t1 +/* 0F8688 7F0C3B58 3C0D8008 */ lui $t5, %hi(player1_player_data) +/* 0F868C 7F0C3B5C 25AD9EF0 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x6110 +/* 0F8690 7F0C3B60 0019C900 */ sll $t9, $t9, 4 +/* 0F8694 7F0C3B64 31480003 */ andi $t0, $t2, 3 +/* 0F8698 7F0C3B68 11000015 */ beqz $t0, .L7F0C3BC0 +/* 0F869C 7F0C3B6C 032D5821 */ addu $t3, $t9, $t5 +/* 0F86A0 7F0C3B70 000078C0 */ sll $t7, $zero, 3 +/* 0F86A4 7F0C3B74 01E07823 */ subu $t7, $t7, $zero +/* 0F86A8 7F0C3B78 000F7900 */ sll $t7, $t7, 4 +/* 0F86AC 7F0C3B7C 00007080 */ sll $t6, $zero, 2 +/* 0F86B0 7F0C3B80 016E1021 */ addu $v0, $t3, $t6 +/* 0F86B4 7F0C3B84 01ED1821 */ addu $v1, $t7, $t5 +/* 0F86B8 7F0C3B88 01003025 */ move $a2, $t0 +.L7F0C3B8C: +/* 0F86BC 7F0C3B8C 90780069 */ lbu $t8, 0x69($v1) +/* 0F86C0 7F0C3B90 24A50001 */ addiu $a1, $a1, 1 +/* 0F86C4 7F0C3B94 24630070 */ addiu $v1, $v1, 0x70 +/* 0F86C8 7F0C3B98 50F80005 */ beql $a3, $t8, .L7F0C3BB0 +/* 0F86CC 7F0C3B9C 8C4F0024 */ lw $t7, 0x24($v0) +/* 0F86D0 7F0C3BA0 8C590024 */ lw $t9, 0x24($v0) +/* 0F86D4 7F0C3BA4 10000003 */ b .L7F0C3BB4 +/* 0F86D8 7F0C3BA8 00992021 */ addu $a0, $a0, $t9 +/* 0F86DC 7F0C3BAC 8C4F0024 */ lw $t7, 0x24($v0) +.L7F0C3BB0: +/* 0F86E0 7F0C3BB0 008F2023 */ subu $a0, $a0, $t7 +.L7F0C3BB4: +/* 0F86E4 7F0C3BB4 14C5FFF5 */ bne $a2, $a1, .L7F0C3B8C +/* 0F86E8 7F0C3BB8 24420004 */ addiu $v0, $v0, 4 +/* 0F86EC 7F0C3BBC 10AA002D */ beq $a1, $t2, .L7F0C3C74 +.L7F0C3BC0: +/* 0F86F0 7F0C3BC0 000568C0 */ sll $t5, $a1, 3 +/* 0F86F4 7F0C3BC4 01A56823 */ subu $t5, $t5, $a1 +/* 0F86F8 7F0C3BC8 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0F86FC 7F0C3BCC 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0F8700 7F0C3BD0 000D6900 */ sll $t5, $t5, 4 +/* 0F8704 7F0C3BD4 00053080 */ sll $a2, $a1, 2 +/* 0F8708 7F0C3BD8 01661021 */ addu $v0, $t3, $a2 +/* 0F870C 7F0C3BDC 01AE1821 */ addu $v1, $t5, $t6 +/* 0F8710 7F0C3BE0 000A4080 */ sll $t0, $t2, 2 +.L7F0C3BE4: +/* 0F8714 7F0C3BE4 90780069 */ lbu $t8, 0x69($v1) +/* 0F8718 7F0C3BE8 24C60010 */ addiu $a2, $a2, 0x10 +/* 0F871C 7F0C3BEC 50F80005 */ beql $a3, $t8, .L7F0C3C04 +/* 0F8720 7F0C3BF0 8C4F0024 */ lw $t7, 0x24($v0) +/* 0F8724 7F0C3BF4 8C590024 */ lw $t9, 0x24($v0) +/* 0F8728 7F0C3BF8 10000003 */ b .L7F0C3C08 +/* 0F872C 7F0C3BFC 00992021 */ addu $a0, $a0, $t9 +/* 0F8730 7F0C3C00 8C4F0024 */ lw $t7, 0x24($v0) +.L7F0C3C04: +/* 0F8734 7F0C3C04 008F2023 */ subu $a0, $a0, $t7 +.L7F0C3C08: +/* 0F8738 7F0C3C08 906D00D9 */ lbu $t5, 0xd9($v1) +/* 0F873C 7F0C3C0C 50ED0005 */ beql $a3, $t5, .L7F0C3C24 +/* 0F8740 7F0C3C10 8C580028 */ lw $t8, 0x28($v0) +/* 0F8744 7F0C3C14 8C4E0028 */ lw $t6, 0x28($v0) +/* 0F8748 7F0C3C18 10000003 */ b .L7F0C3C28 +/* 0F874C 7F0C3C1C 008E2021 */ addu $a0, $a0, $t6 +/* 0F8750 7F0C3C20 8C580028 */ lw $t8, 0x28($v0) +.L7F0C3C24: +/* 0F8754 7F0C3C24 00982023 */ subu $a0, $a0, $t8 +.L7F0C3C28: +/* 0F8758 7F0C3C28 90790149 */ lbu $t9, 0x149($v1) +/* 0F875C 7F0C3C2C 50F90005 */ beql $a3, $t9, .L7F0C3C44 +/* 0F8760 7F0C3C30 8C4D002C */ lw $t5, 0x2c($v0) +/* 0F8764 7F0C3C34 8C4F002C */ lw $t7, 0x2c($v0) +/* 0F8768 7F0C3C38 10000003 */ b .L7F0C3C48 +/* 0F876C 7F0C3C3C 008F2021 */ addu $a0, $a0, $t7 +/* 0F8770 7F0C3C40 8C4D002C */ lw $t5, 0x2c($v0) +.L7F0C3C44: +/* 0F8774 7F0C3C44 008D2023 */ subu $a0, $a0, $t5 +.L7F0C3C48: +/* 0F8778 7F0C3C48 906E01B9 */ lbu $t6, 0x1b9($v1) +/* 0F877C 7F0C3C4C 246301C0 */ addiu $v1, $v1, 0x1c0 +/* 0F8780 7F0C3C50 50EE0005 */ beql $a3, $t6, .L7F0C3C68 +/* 0F8784 7F0C3C54 8C590030 */ lw $t9, 0x30($v0) +/* 0F8788 7F0C3C58 8C580030 */ lw $t8, 0x30($v0) +/* 0F878C 7F0C3C5C 10000003 */ b .L7F0C3C6C +/* 0F8790 7F0C3C60 00982021 */ addu $a0, $a0, $t8 +/* 0F8794 7F0C3C64 8C590030 */ lw $t9, 0x30($v0) +.L7F0C3C68: +/* 0F8798 7F0C3C68 00992023 */ subu $a0, $a0, $t9 +.L7F0C3C6C: +/* 0F879C 7F0C3C6C 14C8FFDD */ bne $a2, $t0, .L7F0C3BE4 +/* 0F87A0 7F0C3C70 24420010 */ addiu $v0, $v0, 0x10 +.L7F0C3C74: +/* 0F87A4 7F0C3C74 25290001 */ addiu $t1, $t1, 1 +.L7F0C3C78: +/* 0F87A8 7F0C3C78 152AFFB0 */ bne $t1, $t2, .L7F0C3B3C +/* 0F87AC 7F0C3C7C 258C0070 */ addiu $t4, $t4, 0x70 +def_7F0C394C: +.L7F0C3C80: +/* 0F87B0 7F0C3C80 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C3C84: +/* 0F87B4 7F0C3C84 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0F87B8 7F0C3C88 00801025 */ move $v0, $a0 +/* 0F87BC 7F0C3C8C 03E00008 */ jr $ra +/* 0F87C0 7F0C3C90 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void write_playerrank_to_buffer(void) { + +} +#else +GLOBAL_ASM( +.text +glabel write_playerrank_to_buffer +/* 0F87C4 7F0C3C94 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0F87C8 7F0C3C98 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F87CC 7F0C3C9C AFB00018 */ sw $s0, 0x18($sp) +/* 0F87D0 7F0C3CA0 AFA40080 */ sw $a0, 0x80($sp) +/* 0F87D4 7F0C3CA4 0FC051D6 */ jal get_scenario +/* 0F87D8 7F0C3CA8 AFA50084 */ sw $a1, 0x84($sp) +/* 0F87DC 7F0C3CAC 0FC26919 */ jal get_num_players +/* 0F87E0 7F0C3CB0 AFA2007C */ sw $v0, 0x7c($sp) +/* 0F87E4 7F0C3CB4 00405825 */ move $t3, $v0 +/* 0F87E8 7F0C3CB8 18400013 */ blez $v0, .L7F0C3D08 +/* 0F87EC 7F0C3CBC 00008025 */ move $s0, $zero +/* 0F87F0 7F0C3CC0 27A30068 */ addiu $v1, $sp, 0x68 +/* 0F87F4 7F0C3CC4 27A50058 */ addiu $a1, $sp, 0x58 +.L7F0C3CC8: +/* 0F87F8 7F0C3CC8 02002025 */ move $a0, $s0 +/* 0F87FC 7F0C3CCC AFA30038 */ sw $v1, 0x38($sp) +/* 0F8800 7F0C3CD0 AFA5003C */ sw $a1, 0x3c($sp) +/* 0F8804 7F0C3CD4 0FC30E36 */ jal get_points_for_mp_player +/* 0F8808 7F0C3CD8 AFAB0078 */ sw $t3, 0x78($sp) +/* 0F880C 7F0C3CDC 8FA5003C */ lw $a1, 0x3c($sp) +/* 0F8810 7F0C3CE0 8FAB0078 */ lw $t3, 0x78($sp) +/* 0F8814 7F0C3CE4 8FA30038 */ lw $v1, 0x38($sp) +/* 0F8818 7F0C3CE8 ACB00000 */ sw $s0, ($a1) +/* 0F881C 7F0C3CEC 26100001 */ addiu $s0, $s0, 1 +/* 0F8820 7F0C3CF0 020B082A */ slt $at, $s0, $t3 +/* 0F8824 7F0C3CF4 24A50004 */ addiu $a1, $a1, 4 +/* 0F8828 7F0C3CF8 24630004 */ addiu $v1, $v1, 4 +/* 0F882C 7F0C3CFC 1420FFF2 */ bnez $at, .L7F0C3CC8 +/* 0F8830 7F0C3D00 AC62FFFC */ sw $v0, -4($v1) +/* 0F8834 7F0C3D04 00008025 */ move $s0, $zero +.L7F0C3D08: +/* 0F8838 7F0C3D08 1960003F */ blez $t3, .L7F0C3E08 +/* 0F883C 7F0C3D0C 00005025 */ move $t2, $zero +/* 0F8840 7F0C3D10 256CFFFF */ addiu $t4, $t3, -1 +/* 0F8844 7F0C3D14 27A80058 */ addiu $t0, $sp, 0x58 +/* 0F8848 7F0C3D18 8FA50068 */ lw $a1, 0x68($sp) +/* 0F884C 7F0C3D1C 8FA4006C */ lw $a0, 0x6c($sp) +.L7F0C3D20: +/* 0F8850 7F0C3D20 19800034 */ blez $t4, .L7F0C3DF4 +/* 0F8854 7F0C3D24 254A0001 */ addiu $t2, $t2, 1 +/* 0F8858 7F0C3D28 2562FFFF */ addiu $v0, $t3, -1 +/* 0F885C 7F0C3D2C 304E0001 */ andi $t6, $v0, 1 +/* 0F8860 7F0C3D30 11C0000B */ beqz $t6, .L7F0C3D60 +/* 0F8864 7F0C3D34 00A4082A */ slt $at, $a1, $a0 +/* 0F8868 7F0C3D38 10200008 */ beqz $at, .L7F0C3D5C +/* 0F886C 7F0C3D3C 24100001 */ li $s0, 1 +/* 0F8870 7F0C3D40 00801025 */ move $v0, $a0 +/* 0F8874 7F0C3D44 00A02025 */ move $a0, $a1 +/* 0F8878 7F0C3D48 00402825 */ move $a1, $v0 +/* 0F887C 7F0C3D4C 8FA2005C */ lw $v0, 0x5c($sp) +/* 0F8880 7F0C3D50 8FAF0058 */ lw $t7, 0x58($sp) +/* 0F8884 7F0C3D54 AFA20058 */ sw $v0, 0x58($sp) +/* 0F8888 7F0C3D58 AFAF005C */ sw $t7, 0x5c($sp) +.L7F0C3D5C: +/* 0F888C 7F0C3D5C 120C0024 */ beq $s0, $t4, .L7F0C3DF0 +.L7F0C3D60: +/* 0F8890 7F0C3D60 27B80068 */ addiu $t8, $sp, 0x68 +/* 0F8894 7F0C3D64 00103880 */ sll $a3, $s0, 2 +/* 0F8898 7F0C3D68 000CC880 */ sll $t9, $t4, 2 +/* 0F889C 7F0C3D6C 03384821 */ addu $t1, $t9, $t8 +/* 0F88A0 7F0C3D70 00F81821 */ addu $v1, $a3, $t8 +/* 0F88A4 7F0C3D74 AFA4006C */ sw $a0, 0x6c($sp) +/* 0F88A8 7F0C3D78 AFA50068 */ sw $a1, 0x68($sp) +.L7F0C3D7C: +/* 0F88AC 7F0C3D7C 8C660000 */ lw $a2, ($v1) +/* 0F88B0 7F0C3D80 8C640004 */ lw $a0, 4($v1) +/* 0F88B4 7F0C3D84 01072821 */ addu $a1, $t0, $a3 +/* 0F88B8 7F0C3D88 00C4082A */ slt $at, $a2, $a0 +/* 0F88BC 7F0C3D8C 50200009 */ beql $at, $zero, .L7F0C3DB4 +/* 0F88C0 7F0C3D90 8C660008 */ lw $a2, 8($v1) +/* 0F88C4 7F0C3D94 8CA20004 */ lw $v0, 4($a1) +/* 0F88C8 7F0C3D98 8CAD0000 */ lw $t5, ($a1) +/* 0F88CC 7F0C3D9C AC640000 */ sw $a0, ($v1) +/* 0F88D0 7F0C3DA0 AC660004 */ sw $a2, 4($v1) +/* 0F88D4 7F0C3DA4 00C02025 */ move $a0, $a2 +/* 0F88D8 7F0C3DA8 ACA20000 */ sw $v0, ($a1) +/* 0F88DC 7F0C3DAC ACAD0004 */ sw $t5, 4($a1) +/* 0F88E0 7F0C3DB0 8C660008 */ lw $a2, 8($v1) +.L7F0C3DB4: +/* 0F88E4 7F0C3DB4 01072821 */ addu $a1, $t0, $a3 +/* 0F88E8 7F0C3DB8 0086082A */ slt $at, $a0, $a2 +/* 0F88EC 7F0C3DBC 50200008 */ beql $at, $zero, .L7F0C3DE0 +/* 0F88F0 7F0C3DC0 24630008 */ addiu $v1, $v1, 8 +/* 0F88F4 7F0C3DC4 8CA20008 */ lw $v0, 8($a1) +/* 0F88F8 7F0C3DC8 8CAE0004 */ lw $t6, 4($a1) +/* 0F88FC 7F0C3DCC AC640008 */ sw $a0, 8($v1) +/* 0F8900 7F0C3DD0 AC660004 */ sw $a2, 4($v1) +/* 0F8904 7F0C3DD4 ACA20004 */ sw $v0, 4($a1) +/* 0F8908 7F0C3DD8 ACAE0008 */ sw $t6, 8($a1) +/* 0F890C 7F0C3DDC 24630008 */ addiu $v1, $v1, 8 +.L7F0C3DE0: +/* 0F8910 7F0C3DE0 8FA4006C */ lw $a0, 0x6c($sp) +/* 0F8914 7F0C3DE4 8FA50068 */ lw $a1, 0x68($sp) +/* 0F8918 7F0C3DE8 1469FFE4 */ bne $v1, $t1, .L7F0C3D7C +/* 0F891C 7F0C3DEC 24E70008 */ addiu $a3, $a3, 8 +.L7F0C3DF0: +/* 0F8920 7F0C3DF0 00008025 */ move $s0, $zero +.L7F0C3DF4: +/* 0F8924 7F0C3DF4 154BFFCA */ bne $t2, $t3, .L7F0C3D20 +/* 0F8928 7F0C3DF8 00000000 */ nop +/* 0F892C 7F0C3DFC AFA50068 */ sw $a1, 0x68($sp) +/* 0F8930 7F0C3E00 AFA4006C */ sw $a0, 0x6c($sp) +/* 0F8934 7F0C3E04 00005025 */ move $t2, $zero +.L7F0C3E08: +/* 0F8938 7F0C3E08 19600008 */ blez $t3, .L7F0C3E2C +/* 0F893C 7F0C3E0C 27A50058 */ addiu $a1, $sp, 0x58 +/* 0F8940 7F0C3E10 8FA20084 */ lw $v0, 0x84($sp) +.L7F0C3E14: +/* 0F8944 7F0C3E14 8CAF0000 */ lw $t7, ($a1) +/* 0F8948 7F0C3E18 104F0004 */ beq $v0, $t7, .L7F0C3E2C +/* 0F894C 7F0C3E1C 00000000 */ nop +/* 0F8950 7F0C3E20 26100001 */ addiu $s0, $s0, 1 +/* 0F8954 7F0C3E24 160BFFFB */ bne $s0, $t3, .L7F0C3E14 +/* 0F8958 7F0C3E28 24A50004 */ addiu $a1, $a1, 4 +.L7F0C3E2C: +/* 0F895C 7F0C3E2C 0600000B */ bltz $s0, .L7F0C3E5C +/* 0F8960 7F0C3E30 0010C880 */ sll $t9, $s0, 2 +/* 0F8964 7F0C3E34 27A20068 */ addiu $v0, $sp, 0x68 +/* 0F8968 7F0C3E38 03226821 */ addu $t5, $t9, $v0 +/* 0F896C 7F0C3E3C 8DA60000 */ lw $a2, ($t5) +.L7F0C3E40: +/* 0F8970 7F0C3E40 8C4E0000 */ lw $t6, ($v0) +/* 0F8974 7F0C3E44 260F0001 */ addiu $t7, $s0, 1 +/* 0F8978 7F0C3E48 11C60004 */ beq $t6, $a2, .L7F0C3E5C +/* 0F897C 7F0C3E4C 00000000 */ nop +/* 0F8980 7F0C3E50 254A0001 */ addiu $t2, $t2, 1 +/* 0F8984 7F0C3E54 15EAFFFA */ bne $t7, $t2, .L7F0C3E40 +/* 0F8988 7F0C3E58 24420004 */ addiu $v0, $v0, 4 +.L7F0C3E5C: +/* 0F898C 7F0C3E5C 1140000A */ beqz $t2, .L7F0C3E88 +/* 0F8990 7F0C3E60 24010001 */ li $at, 1 +/* 0F8994 7F0C3E64 1141000F */ beq $t2, $at, .L7F0C3EA4 +/* 0F8998 7F0C3E68 24010002 */ li $at, 2 +/* 0F899C 7F0C3E6C 11410014 */ beq $t2, $at, .L7F0C3EC0 +/* 0F89A0 7F0C3E70 8FA2007C */ lw $v0, 0x7c($sp) +/* 0F89A4 7F0C3E74 24010003 */ li $at, 3 +/* 0F89A8 7F0C3E78 11410024 */ beq $t2, $at, .L7F0C3F0C +/* 0F89AC 7F0C3E7C 8FB9007C */ lw $t9, 0x7c($sp) +/* 0F89B0 7F0C3E80 10000032 */ b .L7F0C3F4C +/* 0F89B4 7F0C3E84 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0C3E88: +/* 0F89B8 7F0C3E88 0FC30776 */ jal get_textptr_for_textID +/* 0F89BC 7F0C3E8C 3404A011 */ li $a0, 40977 +/* 0F89C0 7F0C3E90 8FA40080 */ lw $a0, 0x80($sp) +/* 0F89C4 7F0C3E94 0C002B25 */ jal sprintf +/* 0F89C8 7F0C3E98 00402825 */ move $a1, $v0 +/* 0F89CC 7F0C3E9C 1000002B */ b .L7F0C3F4C +/* 0F89D0 7F0C3EA0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0C3EA4: +/* 0F89D4 7F0C3EA4 0FC30776 */ jal get_textptr_for_textID +/* 0F89D8 7F0C3EA8 3404A012 */ li $a0, 40978 +/* 0F89DC 7F0C3EAC 8FA40080 */ lw $a0, 0x80($sp) +/* 0F89E0 7F0C3EB0 0C002B25 */ jal sprintf +/* 0F89E4 7F0C3EB4 00402825 */ move $a1, $v0 +/* 0F89E8 7F0C3EB8 10000024 */ b .L7F0C3F4C +/* 0F89EC 7F0C3EBC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0C3EC0: +/* 0F89F0 7F0C3EC0 24010005 */ li $at, 5 +/* 0F89F4 7F0C3EC4 1041000A */ beq $v0, $at, .L7F0C3EF0 +/* 0F89F8 7F0C3EC8 24010007 */ li $at, 7 +/* 0F89FC 7F0C3ECC 10410008 */ beq $v0, $at, .L7F0C3EF0 +/* 0F8A00 7F0C3ED0 00000000 */ nop +/* 0F8A04 7F0C3ED4 0FC30776 */ jal get_textptr_for_textID +/* 0F8A08 7F0C3ED8 3404A013 */ li $a0, 40979 +/* 0F8A0C 7F0C3EDC 8FA40080 */ lw $a0, 0x80($sp) +/* 0F8A10 7F0C3EE0 0C002B25 */ jal sprintf +/* 0F8A14 7F0C3EE4 00402825 */ move $a1, $v0 +/* 0F8A18 7F0C3EE8 10000018 */ b .L7F0C3F4C +/* 0F8A1C 7F0C3EEC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0C3EF0: +/* 0F8A20 7F0C3EF0 0FC30776 */ jal get_textptr_for_textID +/* 0F8A24 7F0C3EF4 3404A012 */ li $a0, 40978 +/* 0F8A28 7F0C3EF8 8FA40080 */ lw $a0, 0x80($sp) +/* 0F8A2C 7F0C3EFC 0C002B25 */ jal sprintf +/* 0F8A30 7F0C3F00 00402825 */ move $a1, $v0 +/* 0F8A34 7F0C3F04 10000011 */ b .L7F0C3F4C +/* 0F8A38 7F0C3F08 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0C3F0C: +/* 0F8A3C 7F0C3F0C 24010006 */ li $at, 6 +/* 0F8A40 7F0C3F10 13210008 */ beq $t9, $at, .L7F0C3F34 +/* 0F8A44 7F0C3F14 00000000 */ nop +/* 0F8A48 7F0C3F18 0FC30776 */ jal get_textptr_for_textID +/* 0F8A4C 7F0C3F1C 3404A014 */ li $a0, 40980 +/* 0F8A50 7F0C3F20 8FA40080 */ lw $a0, 0x80($sp) +/* 0F8A54 7F0C3F24 0C002B25 */ jal sprintf +/* 0F8A58 7F0C3F28 00402825 */ move $a1, $v0 +/* 0F8A5C 7F0C3F2C 10000007 */ b .L7F0C3F4C +/* 0F8A60 7F0C3F30 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0C3F34: +/* 0F8A64 7F0C3F34 0FC30776 */ jal get_textptr_for_textID +/* 0F8A68 7F0C3F38 3404A012 */ li $a0, 40978 +/* 0F8A6C 7F0C3F3C 8FA40080 */ lw $a0, 0x80($sp) +/* 0F8A70 7F0C3F40 0C002B25 */ jal sprintf +/* 0F8A74 7F0C3F44 00402825 */ move $a1, $v0 +/* 0F8A78 7F0C3F48 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0C3F4C: +/* 0F8A7C 7F0C3F4C 8FB00018 */ lw $s0, 0x18($sp) +/* 0F8A80 7F0C3F50 27BD0080 */ addiu $sp, $sp, 0x80 +/* 0F8A84 7F0C3F54 03E00008 */ jr $ra +/* 0F8A88 7F0C3F58 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void true_if_displaying_rank_in_mp(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BCC0*/ +glabel jpt_MP_overlays_scoring_scenario_1 +.word not_yolt +.word yolt +.word not_yolt +.word not_yolt +.word not_yolt +.word not_yolt +.word not_yolt +.word not_yolt +.text +glabel true_if_displaying_rank_in_mp +/* 0F8A8C 7F0C3F5C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F8A90 7F0C3F60 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F8A94 7F0C3F64 0FC051D6 */ jal get_scenario +/* 0F8A98 7F0C3F68 AFA40018 */ sw $a0, 0x18($sp) +/* 0F8A9C 7F0C3F6C 2C410008 */ sltiu $at, $v0, 8 +/* 0F8AA0 7F0C3F70 10200010 */ beqz $at, .L7F0C3FB4 +/* 0F8AA4 7F0C3F74 00027080 */ sll $t6, $v0, 2 +/* 0F8AA8 7F0C3F78 3C018006 */ lui $at, %hi(jpt_MP_overlays_scoring_scenario_1) +/* 0F8AAC 7F0C3F7C 002E0821 */ addu $at, $at, $t6 +/* 0F8AB0 7F0C3F80 8C2EBCC0 */ lw $t6, %lo(jpt_MP_overlays_scoring_scenario_1)($at) +/* 0F8AB4 7F0C3F84 01C00008 */ jr $t6 +/* 0F8AB8 7F0C3F88 00000000 */ nop +not_yolt: +/* 0F8ABC 7F0C3F8C 1000000B */ b .L7F0C3FBC +/* 0F8AC0 7F0C3F90 24020001 */ li $v0, 1 +yolt: +/* 0F8AC4 7F0C3F94 8FAF0018 */ lw $t7, 0x18($sp) +/* 0F8AC8 7F0C3F98 24030001 */ li $v1, 1 +/* 0F8ACC 7F0C3F9C 11E00003 */ beqz $t7, .L7F0C3FAC +/* 0F8AD0 7F0C3FA0 00000000 */ nop +/* 0F8AD4 7F0C3FA4 10000005 */ b .L7F0C3FBC +/* 0F8AD8 7F0C3FA8 00001025 */ move $v0, $zero +.L7F0C3FAC: +/* 0F8ADC 7F0C3FAC 10000003 */ b .L7F0C3FBC +/* 0F8AE0 7F0C3FB0 00601025 */ move $v0, $v1 +def_7F0C3F84: +.L7F0C3FB4: +/* 0F8AE4 7F0C3FB4 1000FFFF */ b .L7F0C3FB4 +/* 0F8AE8 7F0C3FB8 00000000 */ nop +.L7F0C3FBC: +/* 0F8AEC 7F0C3FBC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F8AF0 7F0C3FC0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F8AF4 7F0C3FC4 03E00008 */ jr $ra +/* 0F8AF8 7F0C3FC8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void true_if_displaying_score_in_mp(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005BCE0*/ +glabel jpt_MP_overlays_scoring_scenario_2 +.word not_yolt_tld +.word yolt_tld +.word yolt_tld +.word not_yolt_tld +.word not_yolt_tld +.word not_yolt_tld +.word not_yolt_tld +/*.word not_yolt_tld*/ +.text +glabel true_if_displaying_score_in_mp +/* 0F8AFC 7F0C3FCC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F8B00 7F0C3FD0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F8B04 7F0C3FD4 0FC051D6 */ jal get_scenario +/* 0F8B08 7F0C3FD8 AFA40018 */ sw $a0, 0x18($sp) +/* 0F8B0C 7F0C3FDC 2C410008 */ sltiu $at, $v0, 8 +/* 0F8B10 7F0C3FE0 1020000A */ beqz $at, .L7F0C400C +/* 0F8B14 7F0C3FE4 00027080 */ sll $t6, $v0, 2 +/* 0F8B18 7F0C3FE8 3C018006 */ lui $at, %hi(jpt_MP_overlays_scoring_scenario_2) +/* 0F8B1C 7F0C3FEC 002E0821 */ addu $at, $at, $t6 +/* 0F8B20 7F0C3FF0 8C2EBCE0 */ lw $t6, %lo(jpt_MP_overlays_scoring_scenario_2)($at) +/* 0F8B24 7F0C3FF4 01C00008 */ jr $t6 +/* 0F8B28 7F0C3FF8 00000000 */ nop +not_yolt_tld: +/* 0F8B2C 7F0C3FFC 10000005 */ b .L7F0C4014 +/* 0F8B30 7F0C4000 24020001 */ li $v0, 1 +yolt_tld: +/* 0F8B34 7F0C4004 10000003 */ b .L7F0C4014 +/* 0F8B38 7F0C4008 00001025 */ move $v0, $zero +def_7F0C3FF4: +.L7F0C400C: +/* 0F8B3C 7F0C400C 1000FFFF */ b .L7F0C400C +/* 0F8B40 7F0C4010 00000000 */ nop +.L7F0C4014: +/* 0F8B44 7F0C4014 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F8B48 7F0C4018 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F8B4C 7F0C401C 03E00008 */ jr $ra +/* 0F8B50 7F0C4020 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void mp_watch_menu_display(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +/*jtbl hacks*/ +.word not_yolt_tld + +/*D:8005BD00*/ +glabel jpt_MP_menu_window_text +.word text_play +.word text_play +.word text_play +.word text_play +.word text_pause_unpause +.word text_exit +.word text_exit +.word text_blank + +.text +glabel mp_watch_menu_display +/* 0F8B54 7F0C4024 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 0F8B58 7F0C4028 AFBF003C */ sw $ra, 0x3c($sp) +/* 0F8B5C 7F0C402C AFB10038 */ sw $s1, 0x38($sp) +/* 0F8B60 7F0C4030 00808825 */ move $s1, $a0 +/* 0F8B64 7F0C4034 0FC26C54 */ jal get_cur_playernum +/* 0F8B68 7F0C4038 AFB00034 */ sw $s0, 0x34($sp) +/* 0F8B6C 7F0C403C 0FC26919 */ jal get_num_players +/* 0F8B70 7F0C4040 AFA200D4 */ sw $v0, 0xd4($sp) +/* 0F8B74 7F0C4044 24010001 */ li $at, 1 +/* 0F8B78 7F0C4048 00404025 */ move $t0, $v0 +/* 0F8B7C 7F0C404C 14410003 */ bne $v0, $at, .L7F0C405C +/* 0F8B80 7F0C4050 00008025 */ move $s0, $zero +/* 0F8B84 7F0C4054 100007F7 */ b .L7F0C6034 +/* 0F8B88 7F0C4058 02201025 */ move $v0, $s1 +.L7F0C405C: +/* 0F8B8C 7F0C405C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0F8B90 7F0C4060 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0F8B94 7F0C4064 02202025 */ move $a0, $s1 +/* 0F8B98 7F0C4068 8C6E29C4 */ lw $t6, 0x29c4($v1) +/* 0F8B9C 7F0C406C 51C0076D */ beql $t6, $zero, .L7F0C5E24 +/* 0F8BA0 7F0C4070 8C6E00D8 */ lw $t6, 0xd8($v1) +/* 0F8BA4 7F0C4074 0FC2B366 */ jal microcode_constructor +/* 0F8BA8 7F0C4078 AFA800D0 */ sw $t0, 0xd0($sp) +/* 0F8BAC 7F0C407C 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0F8BB0 7F0C4080 24010002 */ li $at, 2 +/* 0F8BB4 7F0C4084 00408825 */ move $s1, $v0 +/* 0F8BB8 7F0C4088 15E10004 */ bne $t7, $at, .L7F0C409C +/* 0F8BBC 7F0C408C 3C198008 */ lui $t9, %hi(pPlayer) +/* 0F8BC0 7F0C4090 24180050 */ li $t8, 80 +/* 0F8BC4 7F0C4094 10000002 */ b .L7F0C40A0 +/* 0F8BC8 7F0C4098 AFB800A8 */ sw $t8, 0xa8($sp) +.L7F0C409C: +/* 0F8BCC 7F0C409C AFA000A8 */ sw $zero, 0xa8($sp) +.L7F0C40A0: +/* 0F8BD0 7F0C40A0 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0F8BD4 7F0C40A4 8F2929C8 */ lw $t1, 0x29c8($t9) +/* 0F8BD8 7F0C40A8 2D210008 */ sltiu $at, $t1, 8 +/* 0F8BDC 7F0C40AC 10200038 */ beqz $at, .L7F0C4190 +/* 0F8BE0 7F0C40B0 00094880 */ sll $t1, $t1, 2 +/* 0F8BE4 7F0C40B4 3C018006 */ lui $at, %hi(jpt_MP_menu_window_text) +/* 0F8BE8 7F0C40B8 00290821 */ addu $at, $at, $t1 +/* 0F8BEC 7F0C40BC 8C29BD00 */ lw $t1, %lo(jpt_MP_menu_window_text)($at) +/* 0F8BF0 7F0C40C0 01200008 */ jr $t1 +/* 0F8BF4 7F0C40C4 00000000 */ nop +text_play: +/* 0F8BF8 7F0C40C8 3C0A8009 */ lui $t2, %hi(is_gameover_flag) +/* 0F8BFC 7F0C40CC 8D4AC704 */ lw $t2, %lo(is_gameover_flag)($t2) +/* 0F8C00 7F0C40D0 3C0B8009 */ lui $t3, %hi(time_trigger_alt_gameover_msg) +/* 0F8C04 7F0C40D4 15400005 */ bnez $t2, .L7F0C40EC +/* 0F8C08 7F0C40D8 00000000 */ nop +/* 0F8C0C 7F0C40DC 0FC30776 */ jal get_textptr_for_textID +/* 0F8C10 7F0C40E0 3404A015 */ li $a0, 40981 +/* 0F8C14 7F0C40E4 1000002A */ b .L7F0C4190 +/* 0F8C18 7F0C40E8 AFA200A4 */ sw $v0, 0xa4($sp) +.L7F0C40EC: +/* 0F8C1C 7F0C40EC 8D6BC710 */ lw $t3, %lo(time_trigger_alt_gameover_msg)($t3) +/* 0F8C20 7F0C40F0 11600005 */ beqz $t3, .L7F0C4108 +/* 0F8C24 7F0C40F4 00000000 */ nop +/* 0F8C28 7F0C40F8 0FC30776 */ jal get_textptr_for_textID +/* 0F8C2C 7F0C40FC 3404A016 */ li $a0, 40982 +/* 0F8C30 7F0C4100 10000023 */ b .L7F0C4190 +/* 0F8C34 7F0C4104 AFA200A4 */ sw $v0, 0xa4($sp) +.L7F0C4108: +/* 0F8C38 7F0C4108 0FC30776 */ jal get_textptr_for_textID +/* 0F8C3C 7F0C410C 3404A017 */ li $a0, 40983 +/* 0F8C40 7F0C4110 1000001F */ b .L7F0C4190 +/* 0F8C44 7F0C4114 AFA200A4 */ sw $v0, 0xa4($sp) +text_blank: +/* 0F8C48 7F0C4118 3C0C8006 */ lui $t4, %hi(ascii_MP_watch_menu_BLANK) +/* 0F8C4C 7F0C411C 258CBC24 */ addiu $t4, %lo(ascii_MP_watch_menu_BLANK) # addiu $t4, $t4, -0x43dc +/* 0F8C50 7F0C4120 1000001B */ b .L7F0C4190 +/* 0F8C54 7F0C4124 AFAC00A4 */ sw $t4, 0xa4($sp) +text_pause_unpause: +/* 0F8C58 7F0C4128 3C0D8009 */ lui $t5, %hi(is_paused) +/* 0F8C5C 7F0C412C 8DADC718 */ lw $t5, %lo(is_paused)($t5) +/* 0F8C60 7F0C4130 11A0000B */ beqz $t5, .L7F0C4160 +/* 0F8C64 7F0C4134 00000000 */ nop +/* 0F8C68 7F0C4138 0FC30776 */ jal get_textptr_for_textID +/* 0F8C6C 7F0C413C 3404A018 */ li $a0, 40984 +/* 0F8C70 7F0C4140 0FC26C54 */ jal get_cur_playernum +/* 0F8C74 7F0C4144 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0F8C78 7F0C4148 3C0E8009 */ lui $t6, %hi(who_paused) +/* 0F8C7C 7F0C414C 8DCEC71C */ lw $t6, %lo(who_paused)($t6) +/* 0F8C80 7F0C4150 144E000F */ bne $v0, $t6, .L7F0C4190 +/* 0F8C84 7F0C4154 00000000 */ nop +/* 0F8C88 7F0C4158 1000000D */ b .L7F0C4190 +/* 0F8C8C 7F0C415C 24100001 */ li $s0, 1 +.L7F0C4160: +/* 0F8C90 7F0C4160 0FC30776 */ jal get_textptr_for_textID +/* 0F8C94 7F0C4164 3404A019 */ li $a0, 40985 +/* 0F8C98 7F0C4168 10000009 */ b .L7F0C4190 +/* 0F8C9C 7F0C416C AFA200A4 */ sw $v0, 0xa4($sp) +text_exit: +/* 0F8CA0 7F0C4170 0FC30776 */ jal get_textptr_for_textID +/* 0F8CA4 7F0C4174 3404A01A */ li $a0, 40986 +/* 0F8CA8 7F0C4178 0C001145 */ jal get_video2_settings_ulx +/* 0F8CAC 7F0C417C AFA200A4 */ sw $v0, 0xa4($sp) +/* 0F8CB0 7F0C4180 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0F8CB4 7F0C4184 004F2021 */ addu $a0, $v0, $t7 +/* 0F8CB8 7F0C4188 24840041 */ addiu $a0, $a0, 0x41 +/* 0F8CBC 7F0C418C AFA400CC */ sw $a0, 0xcc($sp) +def_7F0C40C0: +.L7F0C4190: +/* 0F8CC0 7F0C4190 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0F8CC4 7F0C4194 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0F8CC8 7F0C4198 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F8CCC 7F0C419C 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F8CD0 7F0C41A0 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F8CD4 7F0C41A4 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F8CD8 7F0C41A8 8FA600A4 */ lw $a2, 0xa4($sp) +/* 0F8CDC 7F0C41AC AFA00014 */ sw $zero, 0x14($sp) +/* 0F8CE0 7F0C41B0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F8CE4 7F0C41B4 AFB80010 */ sw $t8, 0x10($sp) +/* 0F8CE8 7F0C41B8 0C001145 */ jal get_video2_settings_ulx +/* 0F8CEC 7F0C41BC 00000000 */ nop +/* 0F8CF0 7F0C41C0 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F8CF4 7F0C41C4 8FAA00C0 */ lw $t2, 0xc0($sp) +/* 0F8CF8 7F0C41C8 00594821 */ addu $t1, $v0, $t9 +/* 0F8CFC 7F0C41CC 000A5843 */ sra $t3, $t2, 1 +/* 0F8D00 7F0C41D0 012B2023 */ subu $a0, $t1, $t3 +/* 0F8D04 7F0C41D4 24840050 */ addiu $a0, $a0, 0x50 +/* 0F8D08 7F0C41D8 0C001149 */ jal get_video2_settings_uly +/* 0F8D0C 7F0C41DC AFA400CC */ sw $a0, 0xcc($sp) +/* 0F8D10 7F0C41E0 8FAC00BC */ lw $t4, 0xbc($sp) +/* 0F8D14 7F0C41E4 000C6843 */ sra $t5, $t4, 1 +/* 0F8D18 7F0C41E8 004D7023 */ subu $t6, $v0, $t5 +/* 0F8D1C 7F0C41EC 25CF0016 */ addiu $t7, $t6, 0x16 +/* 0F8D20 7F0C41F0 1200001E */ beqz $s0, .L7F0C426C +/* 0F8D24 7F0C41F4 AFAF00C8 */ sw $t7, 0xc8($sp) +/* 0F8D28 7F0C41F8 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8D2C 7F0C41FC 00000000 */ nop +/* 0F8D30 7F0C4200 00028400 */ sll $s0, $v0, 0x10 +/* 0F8D34 7F0C4204 0010C403 */ sra $t8, $s0, 0x10 +/* 0F8D38 7F0C4208 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8D3C 7F0C420C 03008025 */ move $s0, $t8 +/* 0F8D40 7F0C4210 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) +/* 0F8D44 7F0C4214 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) +/* 0F8D48 7F0C4218 8D4A0EAC */ lw $t2, %lo(ptrFirstFontTableSmall)($t2) +/* 0F8D4C 7F0C421C 8F390EB0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0F8D50 7F0C4220 3C09A0FF */ lui $t1, (0xA0FFA0F0 >> 16) # lui $t1, 0xa0ff +/* 0F8D54 7F0C4224 3C0B0070 */ lui $t3, (0x007000A0 >> 16) # lui $t3, 0x70 +/* 0F8D58 7F0C4228 356B00A0 */ ori $t3, (0x007000A0 & 0xFFFF) # ori $t3, $t3, 0xa0 +/* 0F8D5C 7F0C422C 3529A0F0 */ ori $t1, (0xA0FFA0F0 & 0xFFFF) # ori $t1, $t1, 0xa0f0 +/* 0F8D60 7F0C4230 AFA90018 */ sw $t1, 0x18($sp) +/* 0F8D64 7F0C4234 AFAB001C */ sw $t3, 0x1c($sp) +/* 0F8D68 7F0C4238 02202025 */ move $a0, $s1 +/* 0F8D6C 7F0C423C 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F8D70 7F0C4240 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F8D74 7F0C4244 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0F8D78 7F0C4248 AFB00020 */ sw $s0, 0x20($sp) +/* 0F8D7C 7F0C424C AFA20024 */ sw $v0, 0x24($sp) +/* 0F8D80 7F0C4250 AFA00028 */ sw $zero, 0x28($sp) +/* 0F8D84 7F0C4254 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F8D88 7F0C4258 AFAA0014 */ sw $t2, 0x14($sp) +/* 0F8D8C 7F0C425C 0FC2B9BB */ jal jp_text_write_stuff +/* 0F8D90 7F0C4260 AFB90010 */ sw $t9, 0x10($sp) +/* 0F8D94 7F0C4264 1000001A */ b .L7F0C42D0 +/* 0F8D98 7F0C4268 00408825 */ move $s1, $v0 +.L7F0C426C: +/* 0F8D9C 7F0C426C 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8DA0 7F0C4270 00000000 */ nop +/* 0F8DA4 7F0C4274 00028400 */ sll $s0, $v0, 0x10 +/* 0F8DA8 7F0C4278 00106403 */ sra $t4, $s0, 0x10 +/* 0F8DAC 7F0C427C 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8DB0 7F0C4280 01808025 */ move $s0, $t4 +/* 0F8DB4 7F0C4284 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableSmall) +/* 0F8DB8 7F0C4288 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0F8DBC 7F0C428C 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0F8DC0 7F0C4290 8DAD0EB0 */ lw $t5, %lo(ptrSecondFontTableSmall)($t5) +/* 0F8DC4 7F0C4294 3C0F00FF */ lui $t7, (0x00FF00B0 >> 16) # lui $t7, 0xff +/* 0F8DC8 7F0C4298 35EF00B0 */ ori $t7, (0x00FF00B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0F8DCC 7F0C429C AFAF0018 */ sw $t7, 0x18($sp) +/* 0F8DD0 7F0C42A0 02202025 */ move $a0, $s1 +/* 0F8DD4 7F0C42A4 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F8DD8 7F0C42A8 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F8DDC 7F0C42AC 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0F8DE0 7F0C42B0 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F8DE4 7F0C42B4 AFA20020 */ sw $v0, 0x20($sp) +/* 0F8DE8 7F0C42B8 AFA00024 */ sw $zero, 0x24($sp) +/* 0F8DEC 7F0C42BC AFA00028 */ sw $zero, 0x28($sp) +/* 0F8DF0 7F0C42C0 AFAE0014 */ sw $t6, 0x14($sp) +/* 0F8DF4 7F0C42C4 0FC2B6AF */ jal en_text_write_stuff +/* 0F8DF8 7F0C42C8 AFAD0010 */ sw $t5, 0x10($sp) +/* 0F8DFC 7F0C42CC 00408825 */ move $s1, $v0 +.L7F0C42D0: +/* 0F8E00 7F0C42D0 0FC307A3 */ jal check_can_advance_left_on_mpmenu +/* 0F8E04 7F0C42D4 00000000 */ nop +/* 0F8E08 7F0C42D8 10400056 */ beqz $v0, .L7F0C4434 +/* 0F8E0C 7F0C42DC 00000000 */ nop +/* 0F8E10 7F0C42E0 0C001145 */ jal get_video2_settings_ulx +/* 0F8E14 7F0C42E4 00000000 */ nop +/* 0F8E18 7F0C42E8 3C038009 */ lui $v1, %hi(is_gameover_flag) +/* 0F8E1C 7F0C42EC 8C63C704 */ lw $v1, %lo(is_gameover_flag)($v1) +/* 0F8E20 7F0C42F0 0002CC00 */ sll $t9, $v0, 0x10 +/* 0F8E24 7F0C42F4 2418000A */ li $t8, 10 +/* 0F8E28 7F0C42F8 50600004 */ beql $v1, $zero, .L7F0C430C +/* 0F8E2C 7F0C42FC AFA00050 */ sw $zero, 0x50($sp) +/* 0F8E30 7F0C4300 10000002 */ b .L7F0C430C +/* 0F8E34 7F0C4304 AFB80050 */ sw $t8, 0x50($sp) +/* 0F8E38 7F0C4308 AFA00050 */ sw $zero, 0x50($sp) +.L7F0C430C: +/* 0F8E3C 7F0C430C 8FA900A8 */ lw $t1, 0xa8($sp) +/* 0F8E40 7F0C4310 8FAC0050 */ lw $t4, 0x50($sp) +/* 0F8E44 7F0C4314 00195403 */ sra $t2, $t9, 0x10 +/* 0F8E48 7F0C4318 01495821 */ addu $t3, $t2, $t1 +/* 0F8E4C 7F0C431C 016C2023 */ subu $a0, $t3, $t4 +/* 0F8E50 7F0C4320 24840028 */ addiu $a0, $a0, 0x28 +/* 0F8E54 7F0C4324 10600003 */ beqz $v1, .L7F0C4334 +/* 0F8E58 7F0C4328 AFA400CC */ sw $a0, 0xcc($sp) +/* 0F8E5C 7F0C432C 2484FFF8 */ addiu $a0, $a0, -8 +/* 0F8E60 7F0C4330 AFA400CC */ sw $a0, 0xcc($sp) +.L7F0C4334: +/* 0F8E64 7F0C4334 0C001149 */ jal get_video2_settings_uly +/* 0F8E68 7F0C4338 00000000 */ nop +/* 0F8E6C 7F0C433C 3C0E8009 */ lui $t6, %hi(dword_CODE_bss_8008C708) +/* 0F8E70 7F0C4340 8DCEC708 */ lw $t6, %lo(dword_CODE_bss_8008C708)($t6) +/* 0F8E74 7F0C4344 244D0016 */ addiu $t5, $v0, 0x16 +/* 0F8E78 7F0C4348 AFAD00C8 */ sw $t5, 0xc8($sp) +/* 0F8E7C 7F0C434C 15C0001C */ bnez $t6, .L7F0C43C0 +/* 0F8E80 7F0C4350 00000000 */ nop +/* 0F8E84 7F0C4354 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8E88 7F0C4358 00000000 */ nop +/* 0F8E8C 7F0C435C 00028400 */ sll $s0, $v0, 0x10 +/* 0F8E90 7F0C4360 00107C03 */ sra $t7, $s0, 0x10 +/* 0F8E94 7F0C4364 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8E98 7F0C4368 01E08025 */ move $s0, $t7 +/* 0F8E9C 7F0C436C 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) +/* 0F8EA0 7F0C4370 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 0F8EA4 7F0C4374 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0F8EA8 7F0C4378 8F180EB0 */ lw $t8, %lo(ptrSecondFontTableSmall)($t8) +/* 0F8EAC 7F0C437C 3C0A00FF */ lui $t2, (0x00FF00B0 >> 16) # lui $t2, 0xff +/* 0F8EB0 7F0C4380 354A00B0 */ ori $t2, (0x00FF00B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +/* 0F8EB4 7F0C4384 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_left_chevron) +/* 0F8EB8 7F0C4388 24E7BC28 */ addiu $a3, %lo(ascii_MP_watch_menu_left_chevron) # addiu $a3, $a3, -0x43d8 +/* 0F8EBC 7F0C438C AFAA0018 */ sw $t2, 0x18($sp) +/* 0F8EC0 7F0C4390 02202025 */ move $a0, $s1 +/* 0F8EC4 7F0C4394 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F8EC8 7F0C4398 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F8ECC 7F0C439C AFB0001C */ sw $s0, 0x1c($sp) +/* 0F8ED0 7F0C43A0 AFA20020 */ sw $v0, 0x20($sp) +/* 0F8ED4 7F0C43A4 AFA00024 */ sw $zero, 0x24($sp) +/* 0F8ED8 7F0C43A8 AFA00028 */ sw $zero, 0x28($sp) +/* 0F8EDC 7F0C43AC AFB90014 */ sw $t9, 0x14($sp) +/* 0F8EE0 7F0C43B0 0FC2B6AF */ jal en_text_write_stuff +/* 0F8EE4 7F0C43B4 AFB80010 */ sw $t8, 0x10($sp) +/* 0F8EE8 7F0C43B8 1000001E */ b .L7F0C4434 +/* 0F8EEC 7F0C43BC 00408825 */ move $s1, $v0 +.L7F0C43C0: +/* 0F8EF0 7F0C43C0 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8EF4 7F0C43C4 00000000 */ nop +/* 0F8EF8 7F0C43C8 00028400 */ sll $s0, $v0, 0x10 +/* 0F8EFC 7F0C43CC 00104C03 */ sra $t1, $s0, 0x10 +/* 0F8F00 7F0C43D0 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8F04 7F0C43D4 01208025 */ move $s0, $t1 +/* 0F8F08 7F0C43D8 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableSmall) +/* 0F8F0C 7F0C43DC 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0F8F10 7F0C43E0 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0F8F14 7F0C43E4 8D6B0EB0 */ lw $t3, %lo(ptrSecondFontTableSmall)($t3) +/* 0F8F18 7F0C43E8 3C0DA0FF */ lui $t5, (0xA0FFA0F0 >> 16) # lui $t5, 0xa0ff +/* 0F8F1C 7F0C43EC 3C0E0070 */ lui $t6, (0x007000A0 >> 16) # lui $t6, 0x70 +/* 0F8F20 7F0C43F0 35CE00A0 */ ori $t6, (0x007000A0 & 0xFFFF) # ori $t6, $t6, 0xa0 +/* 0F8F24 7F0C43F4 35ADA0F0 */ ori $t5, (0xA0FFA0F0 & 0xFFFF) # ori $t5, $t5, 0xa0f0 +/* 0F8F28 7F0C43F8 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_left_chevron) +/* 0F8F2C 7F0C43FC 24E7BC28 */ addiu $a3, %lo(ascii_MP_watch_menu_left_chevron) # addiu $a3, $a3, -0x43d8 +/* 0F8F30 7F0C4400 AFAD0018 */ sw $t5, 0x18($sp) +/* 0F8F34 7F0C4404 AFAE001C */ sw $t6, 0x1c($sp) +/* 0F8F38 7F0C4408 02202025 */ move $a0, $s1 +/* 0F8F3C 7F0C440C 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F8F40 7F0C4410 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F8F44 7F0C4414 AFB00020 */ sw $s0, 0x20($sp) +/* 0F8F48 7F0C4418 AFA20024 */ sw $v0, 0x24($sp) +/* 0F8F4C 7F0C441C AFA00028 */ sw $zero, 0x28($sp) +/* 0F8F50 7F0C4420 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F8F54 7F0C4424 AFAC0014 */ sw $t4, 0x14($sp) +/* 0F8F58 7F0C4428 0FC2B9BB */ jal jp_text_write_stuff +/* 0F8F5C 7F0C442C AFAB0010 */ sw $t3, 0x10($sp) +/* 0F8F60 7F0C4430 00408825 */ move $s1, $v0 +.L7F0C4434: +/* 0F8F64 7F0C4434 0FC30788 */ jal check_can_advance_right_on_mpmenu +/* 0F8F68 7F0C4438 00000000 */ nop +/* 0F8F6C 7F0C443C 10400056 */ beqz $v0, .L7F0C4598 +/* 0F8F70 7F0C4440 00000000 */ nop +/* 0F8F74 7F0C4444 0C001145 */ jal get_video2_settings_ulx +/* 0F8F78 7F0C4448 00000000 */ nop +/* 0F8F7C 7F0C444C 3C038009 */ lui $v1, %hi(is_gameover_flag) +/* 0F8F80 7F0C4450 8C63C704 */ lw $v1, %lo(is_gameover_flag)($v1) +/* 0F8F84 7F0C4454 0002CC00 */ sll $t9, $v0, 0x10 +/* 0F8F88 7F0C4458 240F000A */ li $t7, 10 +/* 0F8F8C 7F0C445C 50600004 */ beql $v1, $zero, .L7F0C4470 +/* 0F8F90 7F0C4460 AFA00050 */ sw $zero, 0x50($sp) +/* 0F8F94 7F0C4464 10000002 */ b .L7F0C4470 +/* 0F8F98 7F0C4468 AFAF0050 */ sw $t7, 0x50($sp) +/* 0F8F9C 7F0C446C AFA00050 */ sw $zero, 0x50($sp) +.L7F0C4470: +/* 0F8FA0 7F0C4470 8FB80050 */ lw $t8, 0x50($sp) +/* 0F8FA4 7F0C4474 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0F8FA8 7F0C4478 00195403 */ sra $t2, $t9, 0x10 +/* 0F8FAC 7F0C447C 030A4821 */ addu $t1, $t8, $t2 +/* 0F8FB0 7F0C4480 012B2021 */ addu $a0, $t1, $t3 +/* 0F8FB4 7F0C4484 24840070 */ addiu $a0, $a0, 0x70 +/* 0F8FB8 7F0C4488 10600003 */ beqz $v1, .L7F0C4498 +/* 0F8FBC 7F0C448C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F8FC0 7F0C4490 24840008 */ addiu $a0, $a0, 8 +/* 0F8FC4 7F0C4494 AFA400CC */ sw $a0, 0xcc($sp) +.L7F0C4498: +/* 0F8FC8 7F0C4498 0C001149 */ jal get_video2_settings_uly +/* 0F8FCC 7F0C449C 00000000 */ nop +/* 0F8FD0 7F0C44A0 3C0D8009 */ lui $t5, %hi(dword_CODE_bss_8008C708) +/* 0F8FD4 7F0C44A4 8DADC708 */ lw $t5, %lo(dword_CODE_bss_8008C708)($t5) +/* 0F8FD8 7F0C44A8 244C0016 */ addiu $t4, $v0, 0x16 +/* 0F8FDC 7F0C44AC AFAC00C8 */ sw $t4, 0xc8($sp) +/* 0F8FE0 7F0C44B0 15A0001C */ bnez $t5, .L7F0C4524 +/* 0F8FE4 7F0C44B4 00000000 */ nop +/* 0F8FE8 7F0C44B8 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8FEC 7F0C44BC 00000000 */ nop +/* 0F8FF0 7F0C44C0 00028400 */ sll $s0, $v0, 0x10 +/* 0F8FF4 7F0C44C4 00107403 */ sra $t6, $s0, 0x10 +/* 0F8FF8 7F0C44C8 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8FFC 7F0C44CC 01C08025 */ move $s0, $t6 +/* 0F9000 7F0C44D0 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0F9004 7F0C44D4 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 0F9008 7F0C44D8 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0F900C 7F0C44DC 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0F9010 7F0C44E0 3C1800FF */ lui $t8, (0x00FF00B0 >> 16) # lui $t8, 0xff +/* 0F9014 7F0C44E4 371800B0 */ ori $t8, (0x00FF00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0F9018 7F0C44E8 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_right_chevron) +/* 0F901C 7F0C44EC 24E7BC2C */ addiu $a3, %lo(ascii_MP_watch_menu_right_chevron) # addiu $a3, $a3, -0x43d4 +/* 0F9020 7F0C44F0 AFB80018 */ sw $t8, 0x18($sp) +/* 0F9024 7F0C44F4 02202025 */ move $a0, $s1 +/* 0F9028 7F0C44F8 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F902C 7F0C44FC 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9030 7F0C4500 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9034 7F0C4504 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9038 7F0C4508 AFA00024 */ sw $zero, 0x24($sp) +/* 0F903C 7F0C450C AFA00028 */ sw $zero, 0x28($sp) +/* 0F9040 7F0C4510 AFB90014 */ sw $t9, 0x14($sp) +/* 0F9044 7F0C4514 0FC2B6AF */ jal en_text_write_stuff +/* 0F9048 7F0C4518 AFAF0010 */ sw $t7, 0x10($sp) +/* 0F904C 7F0C451C 1000001E */ b .L7F0C4598 +/* 0F9050 7F0C4520 00408825 */ move $s1, $v0 +.L7F0C4524: +/* 0F9054 7F0C4524 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9058 7F0C4528 00000000 */ nop +/* 0F905C 7F0C452C 00028400 */ sll $s0, $v0, 0x10 +/* 0F9060 7F0C4530 00105403 */ sra $t2, $s0, 0x10 +/* 0F9064 7F0C4534 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9068 7F0C4538 01408025 */ move $s0, $t2 +/* 0F906C 7F0C453C 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) +/* 0F9070 7F0C4540 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) +/* 0F9074 7F0C4544 8D6B0EAC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0F9078 7F0C4548 8D290EB0 */ lw $t1, %lo(ptrSecondFontTableSmall)($t1) +/* 0F907C 7F0C454C 3C0CA0FF */ lui $t4, (0xA0FFA0F0 >> 16) # lui $t4, 0xa0ff +/* 0F9080 7F0C4550 3C0D0070 */ lui $t5, (0x007000A0 >> 16) # lui $t5, 0x70 +/* 0F9084 7F0C4554 35AD00A0 */ ori $t5, (0x007000A0 & 0xFFFF) # ori $t5, $t5, 0xa0 +/* 0F9088 7F0C4558 358CA0F0 */ ori $t4, (0xA0FFA0F0 & 0xFFFF) # ori $t4, $t4, 0xa0f0 +/* 0F908C 7F0C455C 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_right_chevron) +/* 0F9090 7F0C4560 24E7BC2C */ addiu $a3, %lo(ascii_MP_watch_menu_right_chevron) # addiu $a3, $a3, -0x43d4 +/* 0F9094 7F0C4564 AFAC0018 */ sw $t4, 0x18($sp) +/* 0F9098 7F0C4568 AFAD001C */ sw $t5, 0x1c($sp) +/* 0F909C 7F0C456C 02202025 */ move $a0, $s1 +/* 0F90A0 7F0C4570 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F90A4 7F0C4574 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F90A8 7F0C4578 AFB00020 */ sw $s0, 0x20($sp) +/* 0F90AC 7F0C457C AFA20024 */ sw $v0, 0x24($sp) +/* 0F90B0 7F0C4580 AFA00028 */ sw $zero, 0x28($sp) +/* 0F90B4 7F0C4584 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F90B8 7F0C4588 AFAB0014 */ sw $t3, 0x14($sp) +/* 0F90BC 7F0C458C 0FC2B9BB */ jal jp_text_write_stuff +/* 0F90C0 7F0C4590 AFA90010 */ sw $t1, 0x10($sp) +/* 0F90C4 7F0C4594 00408825 */ move $s1, $v0 +.L7F0C4598: +/* 0F90C8 7F0C4598 3C038008 */ lui $v1, %hi(pPlayer) +/* 0F90CC 7F0C459C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0F90D0 7F0C45A0 24010003 */ li $at, 3 +/* 0F90D4 7F0C45A4 8FAE00D0 */ lw $t6, 0xd0($sp) +/* 0F90D8 7F0C45A8 8C6229C8 */ lw $v0, 0x29c8($v1) +/* 0F90DC 7F0C45AC 10410003 */ beq $v0, $at, .L7F0C45BC +/* 0F90E0 7F0C45B0 24010004 */ li $at, 4 +/* 0F90E4 7F0C45B4 544101AA */ bnel $v0, $at, .L7F0C4C60 +/* 0F90E8 7F0C45B8 24010002 */ li $at, 2 +.L7F0C45BC: +/* 0F90EC 7F0C45BC 19C0000D */ blez $t6, .L7F0C45F4 +/* 0F90F0 7F0C45C0 00002025 */ move $a0, $zero +/* 0F90F4 7F0C45C4 27A30094 */ addiu $v1, $sp, 0x94 +/* 0F90F8 7F0C45C8 AFA30044 */ sw $v1, 0x44($sp) +.L7F0C45CC: +/* 0F90FC 7F0C45CC 0FC30E36 */ jal get_points_for_mp_player +/* 0F9100 7F0C45D0 AFA40090 */ sw $a0, 0x90($sp) +/* 0F9104 7F0C45D4 8FA30044 */ lw $v1, 0x44($sp) +/* 0F9108 7F0C45D8 8FA40090 */ lw $a0, 0x90($sp) +/* 0F910C 7F0C45DC AC620000 */ sw $v0, ($v1) +/* 0F9110 7F0C45E0 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0F9114 7F0C45E4 24840001 */ addiu $a0, $a0, 1 +/* 0F9118 7F0C45E8 24630004 */ addiu $v1, $v1, 4 +/* 0F911C 7F0C45EC 548FFFF7 */ bnel $a0, $t7, .L7F0C45CC +/* 0F9120 7F0C45F0 AFA30044 */ sw $v1, 0x44($sp) +.L7F0C45F4: +/* 0F9124 7F0C45F4 3C048009 */ lui $a0, %hi(is_gameover_flag) +/* 0F9128 7F0C45F8 8C84C704 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0F912C 7F0C45FC 2C990001 */ sltiu $t9, $a0, 1 +/* 0F9130 7F0C4600 13200005 */ beqz $t9, .L7F0C4618 +/* 0F9134 7F0C4604 03202025 */ move $a0, $t9 +/* 0F9138 7F0C4608 3C048009 */ lui $a0, %hi(stop_play_flag) +/* 0F913C 7F0C460C 8C84C700 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0F9140 7F0C4610 2C980001 */ sltiu $t8, $a0, 1 +/* 0F9144 7F0C4614 03002025 */ move $a0, $t8 +.L7F0C4618: +/* 0F9148 7F0C4618 0FC30FD7 */ jal true_if_displaying_rank_in_mp +/* 0F914C 7F0C461C 00000000 */ nop +/* 0F9150 7F0C4620 10400034 */ beqz $v0, .L7F0C46F4 +/* 0F9154 7F0C4624 27A400AC */ addiu $a0, $sp, 0xac +/* 0F9158 7F0C4628 0FC30F25 */ jal write_playerrank_to_buffer +/* 0F915C 7F0C462C 8FA500D4 */ lw $a1, 0xd4($sp) +/* 0F9160 7F0C4630 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) +/* 0F9164 7F0C4634 8D4A0EAC */ lw $t2, %lo(ptrFirstFontTableSmall)($t2) +/* 0F9168 7F0C4638 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F916C 7F0C463C 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F9170 7F0C4640 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F9174 7F0C4644 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F9178 7F0C4648 27A600AC */ addiu $a2, $sp, 0xac +/* 0F917C 7F0C464C AFA00014 */ sw $zero, 0x14($sp) +/* 0F9180 7F0C4650 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F9184 7F0C4654 AFAA0010 */ sw $t2, 0x10($sp) +/* 0F9188 7F0C4658 0C001145 */ jal get_video2_settings_ulx +/* 0F918C 7F0C465C 00000000 */ nop +/* 0F9190 7F0C4660 8FA900A8 */ lw $t1, 0xa8($sp) +/* 0F9194 7F0C4664 8FAC00C0 */ lw $t4, 0xc0($sp) +/* 0F9198 7F0C4668 00495821 */ addu $t3, $v0, $t1 +/* 0F919C 7F0C466C 000C6843 */ sra $t5, $t4, 1 +/* 0F91A0 7F0C4670 016D2023 */ subu $a0, $t3, $t5 +/* 0F91A4 7F0C4674 24840050 */ addiu $a0, $a0, 0x50 +/* 0F91A8 7F0C4678 0C001149 */ jal get_video2_settings_uly +/* 0F91AC 7F0C467C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F91B0 7F0C4680 8FAE00BC */ lw $t6, 0xbc($sp) +/* 0F91B4 7F0C4684 000E7843 */ sra $t7, $t6, 1 +/* 0F91B8 7F0C4688 004FC823 */ subu $t9, $v0, $t7 +/* 0F91BC 7F0C468C 27380025 */ addiu $t8, $t9, 0x25 +/* 0F91C0 7F0C4690 0C001107 */ jal get_video2_settings_txtClipW +/* 0F91C4 7F0C4694 AFB800C8 */ sw $t8, 0xc8($sp) +/* 0F91C8 7F0C4698 00028400 */ sll $s0, $v0, 0x10 +/* 0F91CC 7F0C469C 00105403 */ sra $t2, $s0, 0x10 +/* 0F91D0 7F0C46A0 0C00110B */ jal get_video2_settings_txtClipH +/* 0F91D4 7F0C46A4 01408025 */ move $s0, $t2 +/* 0F91D8 7F0C46A8 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) +/* 0F91DC 7F0C46AC 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0F91E0 7F0C46B0 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0F91E4 7F0C46B4 8D290EB0 */ lw $t1, %lo(ptrSecondFontTableSmall)($t1) +/* 0F91E8 7F0C46B8 3C0B00FF */ lui $t3, (0x00FF00B0 >> 16) # lui $t3, 0xff +/* 0F91EC 7F0C46BC 356B00B0 */ ori $t3, (0x00FF00B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0F91F0 7F0C46C0 AFAB0018 */ sw $t3, 0x18($sp) +/* 0F91F4 7F0C46C4 02202025 */ move $a0, $s1 +/* 0F91F8 7F0C46C8 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F91FC 7F0C46CC 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9200 7F0C46D0 27A700AC */ addiu $a3, $sp, 0xac +/* 0F9204 7F0C46D4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9208 7F0C46D8 AFA20020 */ sw $v0, 0x20($sp) +/* 0F920C 7F0C46DC AFA00024 */ sw $zero, 0x24($sp) +/* 0F9210 7F0C46E0 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9214 7F0C46E4 AFAC0014 */ sw $t4, 0x14($sp) +/* 0F9218 7F0C46E8 0FC2B6AF */ jal en_text_write_stuff +/* 0F921C 7F0C46EC AFA90010 */ sw $t1, 0x10($sp) +/* 0F9220 7F0C46F0 00408825 */ move $s1, $v0 +.L7F0C46F4: +/* 0F9224 7F0C46F4 3C048009 */ lui $a0, %hi(is_gameover_flag) +/* 0F9228 7F0C46F8 8C84C704 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0F922C 7F0C46FC 2C8D0001 */ sltiu $t5, $a0, 1 +/* 0F9230 7F0C4700 11A00005 */ beqz $t5, .L7F0C4718 +/* 0F9234 7F0C4704 01A02025 */ move $a0, $t5 +/* 0F9238 7F0C4708 3C048009 */ lui $a0, %hi(stop_play_flag) +/* 0F923C 7F0C470C 8C84C700 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0F9240 7F0C4710 2C8E0001 */ sltiu $t6, $a0, 1 +/* 0F9244 7F0C4714 01C02025 */ move $a0, $t6 +.L7F0C4718: +/* 0F9248 7F0C4718 0FC30FF3 */ jal true_if_displaying_score_in_mp +/* 0F924C 7F0C471C 00000000 */ nop +/* 0F9250 7F0C4720 1040014B */ beqz $v0, .L7F0C4C50 +/* 0F9254 7F0C4724 00000000 */ nop +/* 0F9258 7F0C4728 0FC051D6 */ jal get_scenario +/* 0F925C 7F0C472C 00000000 */ nop +/* 0F9260 7F0C4730 AFA20080 */ sw $v0, 0x80($sp) +/* 0F9264 7F0C4734 0FC30776 */ jal get_textptr_for_textID +/* 0F9268 7F0C4738 3404A01B */ li $a0, 40987 +/* 0F926C 7F0C473C 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) +/* 0F9270 7F0C4740 8DEF0EAC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0F9274 7F0C4744 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F9278 7F0C4748 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0F927C 7F0C474C 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F9280 7F0C4750 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F9284 7F0C4754 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F9288 7F0C4758 00403025 */ move $a2, $v0 +/* 0F928C 7F0C475C AFA00014 */ sw $zero, 0x14($sp) +/* 0F9290 7F0C4760 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F9294 7F0C4764 AFAF0010 */ sw $t7, 0x10($sp) +/* 0F9298 7F0C4768 0C001145 */ jal get_video2_settings_ulx +/* 0F929C 7F0C476C 00000000 */ nop +/* 0F92A0 7F0C4770 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F92A4 7F0C4774 8FAA00C0 */ lw $t2, 0xc0($sp) +/* 0F92A8 7F0C4778 0059C021 */ addu $t8, $v0, $t9 +/* 0F92AC 7F0C477C 000A4843 */ sra $t1, $t2, 1 +/* 0F92B0 7F0C4780 03092023 */ subu $a0, $t8, $t1 +/* 0F92B4 7F0C4784 24840050 */ addiu $a0, $a0, 0x50 +/* 0F92B8 7F0C4788 0C001149 */ jal get_video2_settings_uly +/* 0F92BC 7F0C478C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F92C0 7F0C4790 8FAC00BC */ lw $t4, 0xbc($sp) +/* 0F92C4 7F0C4794 000C5843 */ sra $t3, $t4, 1 +/* 0F92C8 7F0C4798 004B6823 */ subu $t5, $v0, $t3 +/* 0F92CC 7F0C479C 25AE0035 */ addiu $t6, $t5, 0x35 +/* 0F92D0 7F0C47A0 0C001107 */ jal get_video2_settings_txtClipW +/* 0F92D4 7F0C47A4 AFAE00C8 */ sw $t6, 0xc8($sp) +/* 0F92D8 7F0C47A8 00028400 */ sll $s0, $v0, 0x10 +/* 0F92DC 7F0C47AC 00107C03 */ sra $t7, $s0, 0x10 +/* 0F92E0 7F0C47B0 0C00110B */ jal get_video2_settings_txtClipH +/* 0F92E4 7F0C47B4 01E08025 */ move $s0, $t7 +/* 0F92E8 7F0C47B8 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) +/* 0F92EC 7F0C47BC 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) +/* 0F92F0 7F0C47C0 8D4A0EAC */ lw $t2, %lo(ptrFirstFontTableSmall)($t2) +/* 0F92F4 7F0C47C4 8F390EB0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0F92F8 7F0C47C8 3C1800FF */ lui $t8, (0x00FF00B0 >> 16) # lui $t8, 0xff +/* 0F92FC 7F0C47CC 371800B0 */ ori $t8, (0x00FF00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0F9300 7F0C47D0 AFB80018 */ sw $t8, 0x18($sp) +/* 0F9304 7F0C47D4 02202025 */ move $a0, $s1 +/* 0F9308 7F0C47D8 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F930C 7F0C47DC 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9310 7F0C47E0 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0F9314 7F0C47E4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9318 7F0C47E8 AFA20020 */ sw $v0, 0x20($sp) +/* 0F931C 7F0C47EC AFA00024 */ sw $zero, 0x24($sp) +/* 0F9320 7F0C47F0 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9324 7F0C47F4 AFAA0014 */ sw $t2, 0x14($sp) +/* 0F9328 7F0C47F8 0FC2B6AF */ jal en_text_write_stuff +/* 0F932C 7F0C47FC AFB90010 */ sw $t9, 0x10($sp) +/* 0F9330 7F0C4800 8FA30080 */ lw $v1, 0x80($sp) +/* 0F9334 7F0C4804 24010005 */ li $at, 5 +/* 0F9338 7F0C4808 00408825 */ move $s1, $v0 +/* 0F933C 7F0C480C 10610009 */ beq $v1, $at, .L7F0C4834 +/* 0F9340 7F0C4810 8FA900D4 */ lw $t1, 0xd4($sp) +/* 0F9344 7F0C4814 24010006 */ li $at, 6 +/* 0F9348 7F0C4818 10610006 */ beq $v1, $at, .L7F0C4834 +/* 0F934C 7F0C481C 24010007 */ li $at, 7 +/* 0F9350 7F0C4820 10610004 */ beq $v1, $at, .L7F0C4834 +/* 0F9354 7F0C4824 24010002 */ li $at, 2 +/* 0F9358 7F0C4828 10610002 */ beq $v1, $at, .L7F0C4834 +/* 0F935C 7F0C482C 24010003 */ li $at, 3 +/* 0F9360 7F0C4830 14610015 */ bne $v1, $at, .L7F0C4888 +.L7F0C4834: +/* 0F9364 7F0C4834 000960C0 */ sll $t4, $t1, 3 +/* 0F9368 7F0C4838 01896023 */ subu $t4, $t4, $t1 +/* 0F936C 7F0C483C 000C6100 */ sll $t4, $t4, 4 +/* 0F9370 7F0C4840 3C0B8008 */ lui $t3, %hi(player1_player_data+105) +/* 0F9374 7F0C4844 016C5821 */ addu $t3, $t3, $t4 +/* 0F9378 7F0C4848 916B9F59 */ lbu $t3, %lo(player1_player_data+105)($t3) +/* 0F937C 7F0C484C 24190005 */ li $t9, 5 +/* 0F9380 7F0C4850 240A0004 */ li $t2, 4 +/* 0F9384 7F0C4854 15600008 */ bnez $t3, .L7F0C4878 +/* 0F9388 7F0C4858 24180002 */ li $t8, 2 +/* 0F938C 7F0C485C 240D0003 */ li $t5, 3 +/* 0F9390 7F0C4860 240E0002 */ li $t6, 2 +/* 0F9394 7F0C4864 240F0004 */ li $t7, 4 +/* 0F9398 7F0C4868 AFAD008C */ sw $t5, 0x8c($sp) +/* 0F939C 7F0C486C AFAE0088 */ sw $t6, 0x88($sp) +/* 0F93A0 7F0C4870 10000009 */ b .L7F0C4898 +/* 0F93A4 7F0C4874 AFAF0084 */ sw $t7, 0x84($sp) +.L7F0C4878: +/* 0F93A8 7F0C4878 AFB9008C */ sw $t9, 0x8c($sp) +/* 0F93AC 7F0C487C AFAA0088 */ sw $t2, 0x88($sp) +/* 0F93B0 7F0C4880 10000005 */ b .L7F0C4898 +/* 0F93B4 7F0C4884 AFB80084 */ sw $t8, 0x84($sp) +.L7F0C4888: +/* 0F93B8 7F0C4888 24090001 */ li $t1, 1 +/* 0F93BC 7F0C488C AFA9008C */ sw $t1, 0x8c($sp) +/* 0F93C0 7F0C4890 AFA00088 */ sw $zero, 0x88($sp) +/* 0F93C4 7F0C4894 AFA00084 */ sw $zero, 0x84($sp) +.L7F0C4898: +/* 0F93C8 7F0C4898 8FAC00D0 */ lw $t4, 0xd0($sp) +/* 0F93CC 7F0C489C 24010002 */ li $at, 2 +/* 0F93D0 7F0C48A0 1581004E */ bne $t4, $at, .L7F0C49DC +/* 0F93D4 7F0C48A4 00000000 */ nop +/* 0F93D8 7F0C48A8 0C001145 */ jal get_video2_settings_ulx +/* 0F93DC 7F0C48AC 00000000 */ nop +/* 0F93E0 7F0C48B0 00028400 */ sll $s0, $v0, 0x10 +/* 0F93E4 7F0C48B4 00105C03 */ sra $t3, $s0, 0x10 +/* 0F93E8 7F0C48B8 0C001149 */ jal get_video2_settings_uly +/* 0F93EC 7F0C48BC 01608025 */ move $s0, $t3 +/* 0F93F0 7F0C48C0 8FA800D4 */ lw $t0, 0xd4($sp) +/* 0F93F4 7F0C48C4 00021C00 */ sll $v1, $v0, 0x10 +/* 0F93F8 7F0C48C8 00036C03 */ sra $t5, $v1, 0x10 +/* 0F93FC 7F0C48CC 15000004 */ bnez $t0, .L7F0C48E0 +/* 0F9400 7F0C48D0 01A01825 */ move $v1, $t5 +/* 0F9404 7F0C48D4 8FAE008C */ lw $t6, 0x8c($sp) +/* 0F9408 7F0C48D8 1000000F */ b .L7F0C4918 +/* 0F940C 7F0C48DC AFAE0050 */ sw $t6, 0x50($sp) +.L7F0C48E0: +/* 0F9410 7F0C48E0 0008C8C0 */ sll $t9, $t0, 3 +/* 0F9414 7F0C48E4 0328C823 */ subu $t9, $t9, $t0 +/* 0F9418 7F0C48E8 0019C900 */ sll $t9, $t9, 4 +/* 0F941C 7F0C48EC 3C0A8008 */ lui $t2, %hi(player1_player_data + 0x69) +/* 0F9420 7F0C48F0 01595021 */ addu $t2, $t2, $t9 +/* 0F9424 7F0C48F4 3C0F8008 */ lui $t7, %hi(player1_player_data + 0x69) +/* 0F9428 7F0C48F8 91EF9F59 */ lbu $t7, %lo(player1_player_data + 0x69)($t7) +/* 0F942C 7F0C48FC 914A9F59 */ lbu $t2, %lo(player1_player_data + 0x69)($t2) +/* 0F9430 7F0C4900 8FA60084 */ lw $a2, 0x84($sp) +/* 0F9434 7F0C4904 15EA0003 */ bne $t7, $t2, .L7F0C4914 +/* 0F9438 7F0C4908 00000000 */ nop +/* 0F943C 7F0C490C 10000001 */ b .L7F0C4914 +/* 0F9440 7F0C4910 8FA60088 */ lw $a2, 0x88($sp) +.L7F0C4914: +/* 0F9444 7F0C4914 AFA60050 */ sw $a2, 0x50($sp) +.L7F0C4918: +/* 0F9448 7F0C4918 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0F944C 7F0C491C 8FA90050 */ lw $t1, 0x50($sp) +/* 0F9450 7F0C4920 02202025 */ move $a0, $s1 +/* 0F9454 7F0C4924 02182821 */ addu $a1, $s0, $t8 +/* 0F9458 7F0C4928 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F945C 7F0C492C 24660046 */ addiu $a2, $v1, 0x46 +/* 0F9460 7F0C4930 8FA70094 */ lw $a3, 0x94($sp) +/* 0F9464 7F0C4934 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9468 7F0C4938 AFA90010 */ sw $t1, 0x10($sp) +/* 0F946C 7F0C493C 0C001145 */ jal get_video2_settings_ulx +/* 0F9470 7F0C4940 00408825 */ move $s1, $v0 +/* 0F9474 7F0C4944 00028400 */ sll $s0, $v0, 0x10 +/* 0F9478 7F0C4948 00106403 */ sra $t4, $s0, 0x10 +/* 0F947C 7F0C494C 0C001149 */ jal get_video2_settings_uly +/* 0F9480 7F0C4950 01808025 */ move $s0, $t4 +/* 0F9484 7F0C4954 8FA400D4 */ lw $a0, 0xd4($sp) +/* 0F9488 7F0C4958 00021C00 */ sll $v1, $v0, 0x10 +/* 0F948C 7F0C495C 00035C03 */ sra $t3, $v1, 0x10 +/* 0F9490 7F0C4960 24010001 */ li $at, 1 +/* 0F9494 7F0C4964 14810004 */ bne $a0, $at, .L7F0C4978 +/* 0F9498 7F0C4968 01601825 */ move $v1, $t3 +/* 0F949C 7F0C496C 8FAD008C */ lw $t5, 0x8c($sp) +/* 0F94A0 7F0C4970 1000000F */ b .L7F0C49B0 +/* 0F94A4 7F0C4974 AFAD0050 */ sw $t5, 0x50($sp) +.L7F0C4978: +/* 0F94A8 7F0C4978 0004C8C0 */ sll $t9, $a0, 3 +/* 0F94AC 7F0C497C 0324C823 */ subu $t9, $t9, $a0 +/* 0F94B0 7F0C4980 3C028008 */ lui $v0, %hi(player1_player_data) +/* 0F94B4 7F0C4984 24429EF0 */ addiu $v0, %lo(player1_player_data) # addiu $v0, $v0, -0x6110 +/* 0F94B8 7F0C4988 0019C900 */ sll $t9, $t9, 4 +/* 0F94BC 7F0C498C 00597821 */ addu $t7, $v0, $t9 +/* 0F94C0 7F0C4990 91EA0069 */ lbu $t2, 0x69($t7) +/* 0F94C4 7F0C4994 904E00D9 */ lbu $t6, 0xd9($v0) +/* 0F94C8 7F0C4998 8FA60084 */ lw $a2, 0x84($sp) +/* 0F94CC 7F0C499C 15CA0003 */ bne $t6, $t2, .L7F0C49AC +/* 0F94D0 7F0C49A0 00000000 */ nop +/* 0F94D4 7F0C49A4 10000001 */ b .L7F0C49AC +/* 0F94D8 7F0C49A8 8FA60088 */ lw $a2, 0x88($sp) +.L7F0C49AC: +/* 0F94DC 7F0C49AC AFA60050 */ sw $a2, 0x50($sp) +.L7F0C49B0: +/* 0F94E0 7F0C49B0 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0F94E4 7F0C49B4 8FA90050 */ lw $t1, 0x50($sp) +/* 0F94E8 7F0C49B8 02202025 */ move $a0, $s1 +/* 0F94EC 7F0C49BC 02182821 */ addu $a1, $s0, $t8 +/* 0F94F0 7F0C49C0 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F94F4 7F0C49C4 24660056 */ addiu $a2, $v1, 0x56 +/* 0F94F8 7F0C49C8 8FA70098 */ lw $a3, 0x98($sp) +/* 0F94FC 7F0C49CC 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9500 7F0C49D0 AFA90010 */ sw $t1, 0x10($sp) +/* 0F9504 7F0C49D4 1000009E */ b .L7F0C4C50 +/* 0F9508 7F0C49D8 00408825 */ move $s1, $v0 +.L7F0C49DC: +/* 0F950C 7F0C49DC 0C001145 */ jal get_video2_settings_ulx +/* 0F9510 7F0C49E0 00000000 */ nop +/* 0F9514 7F0C49E4 00028400 */ sll $s0, $v0, 0x10 +/* 0F9518 7F0C49E8 00106403 */ sra $t4, $s0, 0x10 +/* 0F951C 7F0C49EC 0C001149 */ jal get_video2_settings_uly +/* 0F9520 7F0C49F0 01808025 */ move $s0, $t4 +/* 0F9524 7F0C49F4 8FA800D4 */ lw $t0, 0xd4($sp) +/* 0F9528 7F0C49F8 00021C00 */ sll $v1, $v0, 0x10 +/* 0F952C 7F0C49FC 00035C03 */ sra $t3, $v1, 0x10 +/* 0F9530 7F0C4A00 15000004 */ bnez $t0, .L7F0C4A14 +/* 0F9534 7F0C4A04 01601825 */ move $v1, $t3 +/* 0F9538 7F0C4A08 8FAD008C */ lw $t5, 0x8c($sp) +/* 0F953C 7F0C4A0C 1000000F */ b .L7F0C4A4C +/* 0F9540 7F0C4A10 AFAD0050 */ sw $t5, 0x50($sp) +.L7F0C4A14: +/* 0F9544 7F0C4A14 000878C0 */ sll $t7, $t0, 3 +/* 0F9548 7F0C4A18 01E87823 */ subu $t7, $t7, $t0 +/* 0F954C 7F0C4A1C 000F7900 */ sll $t7, $t7, 4 +/* 0F9550 7F0C4A20 3C0E8008 */ lui $t6, %hi(player1_player_data + 0x69) +/* 0F9554 7F0C4A24 01CF7021 */ addu $t6, $t6, $t7 +/* 0F9558 7F0C4A28 3C198008 */ lui $t9, %hi(player1_player_data + 0x69) +/* 0F955C 7F0C4A2C 93399F59 */ lbu $t9, %lo(player1_player_data + 0x69)($t9) +/* 0F9560 7F0C4A30 91CE9F59 */ lbu $t6, %lo(player1_player_data + 0x69)($t6) +/* 0F9564 7F0C4A34 8FA60084 */ lw $a2, 0x84($sp) +/* 0F9568 7F0C4A38 172E0003 */ bne $t9, $t6, .L7F0C4A48 +/* 0F956C 7F0C4A3C 00000000 */ nop +/* 0F9570 7F0C4A40 10000001 */ b .L7F0C4A48 +/* 0F9574 7F0C4A44 8FA60088 */ lw $a2, 0x88($sp) +.L7F0C4A48: +/* 0F9578 7F0C4A48 AFA60050 */ sw $a2, 0x50($sp) +.L7F0C4A4C: +/* 0F957C 7F0C4A4C 8FAA00A8 */ lw $t2, 0xa8($sp) +/* 0F9580 7F0C4A50 8FB80050 */ lw $t8, 0x50($sp) +/* 0F9584 7F0C4A54 02202025 */ move $a0, $s1 +/* 0F9588 7F0C4A58 020A2821 */ addu $a1, $s0, $t2 +/* 0F958C 7F0C4A5C 24A50040 */ addiu $a1, $a1, 0x40 +/* 0F9590 7F0C4A60 24660046 */ addiu $a2, $v1, 0x46 +/* 0F9594 7F0C4A64 8FA70094 */ lw $a3, 0x94($sp) +/* 0F9598 7F0C4A68 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F959C 7F0C4A6C AFB80010 */ sw $t8, 0x10($sp) +/* 0F95A0 7F0C4A70 0C001145 */ jal get_video2_settings_ulx +/* 0F95A4 7F0C4A74 00408825 */ move $s1, $v0 +/* 0F95A8 7F0C4A78 00028400 */ sll $s0, $v0, 0x10 +/* 0F95AC 7F0C4A7C 00104C03 */ sra $t1, $s0, 0x10 +/* 0F95B0 7F0C4A80 0C001149 */ jal get_video2_settings_uly +/* 0F95B4 7F0C4A84 01208025 */ move $s0, $t1 +/* 0F95B8 7F0C4A88 8FA800D4 */ lw $t0, 0xd4($sp) +/* 0F95BC 7F0C4A8C 00021C00 */ sll $v1, $v0, 0x10 +/* 0F95C0 7F0C4A90 00036403 */ sra $t4, $v1, 0x10 +/* 0F95C4 7F0C4A94 24010001 */ li $at, 1 +/* 0F95C8 7F0C4A98 15010004 */ bne $t0, $at, .L7F0C4AAC +/* 0F95CC 7F0C4A9C 01801825 */ move $v1, $t4 +/* 0F95D0 7F0C4AA0 8FAB008C */ lw $t3, 0x8c($sp) +/* 0F95D4 7F0C4AA4 1000000F */ b .L7F0C4AE4 +/* 0F95D8 7F0C4AA8 AFAB0050 */ sw $t3, 0x50($sp) +.L7F0C4AAC: +/* 0F95DC 7F0C4AAC 000878C0 */ sll $t7, $t0, 3 +/* 0F95E0 7F0C4AB0 01E87823 */ subu $t7, $t7, $t0 +/* 0F95E4 7F0C4AB4 000F7900 */ sll $t7, $t7, 4 +/* 0F95E8 7F0C4AB8 3C198008 */ lui $t9, %hi(player1_player_data + 0x69) +/* 0F95EC 7F0C4ABC 032FC821 */ addu $t9, $t9, $t7 +/* 0F95F0 7F0C4AC0 3C0D8008 */ lui $t5, %hi(player2_player_data + 0x69) +/* 0F95F4 7F0C4AC4 91AD9FC9 */ lbu $t5, %lo(player2_player_data + 0x69)($t5) +/* 0F95F8 7F0C4AC8 93399F59 */ lbu $t9, %lo(player1_player_data + 0x69)($t9) +/* 0F95FC 7F0C4ACC 8FA60084 */ lw $a2, 0x84($sp) +/* 0F9600 7F0C4AD0 15B90003 */ bne $t5, $t9, .L7F0C4AE0 +/* 0F9604 7F0C4AD4 00000000 */ nop +/* 0F9608 7F0C4AD8 10000001 */ b .L7F0C4AE0 +/* 0F960C 7F0C4ADC 8FA60088 */ lw $a2, 0x88($sp) +.L7F0C4AE0: +/* 0F9610 7F0C4AE0 AFA60050 */ sw $a2, 0x50($sp) +.L7F0C4AE4: +/* 0F9614 7F0C4AE4 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0F9618 7F0C4AE8 8FAA0050 */ lw $t2, 0x50($sp) +/* 0F961C 7F0C4AEC 02202025 */ move $a0, $s1 +/* 0F9620 7F0C4AF0 020E2821 */ addu $a1, $s0, $t6 +/* 0F9624 7F0C4AF4 24A50060 */ addiu $a1, $a1, 0x60 +/* 0F9628 7F0C4AF8 24660046 */ addiu $a2, $v1, 0x46 +/* 0F962C 7F0C4AFC 8FA70098 */ lw $a3, 0x98($sp) +/* 0F9630 7F0C4B00 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9634 7F0C4B04 AFAA0010 */ sw $t2, 0x10($sp) +/* 0F9638 7F0C4B08 0C001145 */ jal get_video2_settings_ulx +/* 0F963C 7F0C4B0C 00408825 */ move $s1, $v0 +/* 0F9640 7F0C4B10 00028400 */ sll $s0, $v0, 0x10 +/* 0F9644 7F0C4B14 0010C403 */ sra $t8, $s0, 0x10 +/* 0F9648 7F0C4B18 0C001149 */ jal get_video2_settings_uly +/* 0F964C 7F0C4B1C 03008025 */ move $s0, $t8 +/* 0F9650 7F0C4B20 8FA800D4 */ lw $t0, 0xd4($sp) +/* 0F9654 7F0C4B24 00021C00 */ sll $v1, $v0, 0x10 +/* 0F9658 7F0C4B28 00034C03 */ sra $t1, $v1, 0x10 +/* 0F965C 7F0C4B2C 24010002 */ li $at, 2 +/* 0F9660 7F0C4B30 15010004 */ bne $t0, $at, .L7F0C4B44 +/* 0F9664 7F0C4B34 01201825 */ move $v1, $t1 +/* 0F9668 7F0C4B38 8FAC008C */ lw $t4, 0x8c($sp) +/* 0F966C 7F0C4B3C 1000000F */ b .L7F0C4B7C +/* 0F9670 7F0C4B40 AFAC0050 */ sw $t4, 0x50($sp) +.L7F0C4B44: +/* 0F9674 7F0C4B44 000878C0 */ sll $t7, $t0, 3 +/* 0F9678 7F0C4B48 01E87823 */ subu $t7, $t7, $t0 +/* 0F967C 7F0C4B4C 000F7900 */ sll $t7, $t7, 4 +/* 0F9680 7F0C4B50 3C0D8008 */ lui $t5, %hi(player1_player_data + 0x69) +/* 0F9684 7F0C4B54 01AF6821 */ addu $t5, $t5, $t7 +/* 0F9688 7F0C4B58 3C0B8008 */ lui $t3, %hi(player3_player_data + 0x69) +/* 0F968C 7F0C4B5C 916BA039 */ lbu $t3, %lo(player3_player_data + 0x69)($t3) +/* 0F9690 7F0C4B60 91AD9F59 */ lbu $t5, %lo(player1_player_data + 0x69)($t5) +/* 0F9694 7F0C4B64 8FA60084 */ lw $a2, 0x84($sp) +/* 0F9698 7F0C4B68 156D0003 */ bne $t3, $t5, .L7F0C4B78 +/* 0F969C 7F0C4B6C 00000000 */ nop +/* 0F96A0 7F0C4B70 10000001 */ b .L7F0C4B78 +/* 0F96A4 7F0C4B74 8FA60088 */ lw $a2, 0x88($sp) +.L7F0C4B78: +/* 0F96A8 7F0C4B78 AFA60050 */ sw $a2, 0x50($sp) +.L7F0C4B7C: +/* 0F96AC 7F0C4B7C 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F96B0 7F0C4B80 8FAE0050 */ lw $t6, 0x50($sp) +/* 0F96B4 7F0C4B84 02202025 */ move $a0, $s1 +/* 0F96B8 7F0C4B88 02192821 */ addu $a1, $s0, $t9 +/* 0F96BC 7F0C4B8C 24A50040 */ addiu $a1, $a1, 0x40 +/* 0F96C0 7F0C4B90 24660056 */ addiu $a2, $v1, 0x56 +/* 0F96C4 7F0C4B94 8FA7009C */ lw $a3, 0x9c($sp) +/* 0F96C8 7F0C4B98 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F96CC 7F0C4B9C AFAE0010 */ sw $t6, 0x10($sp) +/* 0F96D0 7F0C4BA0 8FAA00D0 */ lw $t2, 0xd0($sp) +/* 0F96D4 7F0C4BA4 24010004 */ li $at, 4 +/* 0F96D8 7F0C4BA8 00408825 */ move $s1, $v0 +/* 0F96DC 7F0C4BAC 15410028 */ bne $t2, $at, .L7F0C4C50 +/* 0F96E0 7F0C4BB0 00000000 */ nop +/* 0F96E4 7F0C4BB4 0C001145 */ jal get_video2_settings_ulx +/* 0F96E8 7F0C4BB8 00000000 */ nop +/* 0F96EC 7F0C4BBC 00028400 */ sll $s0, $v0, 0x10 +/* 0F96F0 7F0C4BC0 0010C403 */ sra $t8, $s0, 0x10 +/* 0F96F4 7F0C4BC4 0C001149 */ jal get_video2_settings_uly +/* 0F96F8 7F0C4BC8 03008025 */ move $s0, $t8 +/* 0F96FC 7F0C4BCC 8FA400D4 */ lw $a0, 0xd4($sp) +/* 0F9700 7F0C4BD0 00021C00 */ sll $v1, $v0, 0x10 +/* 0F9704 7F0C4BD4 00034C03 */ sra $t1, $v1, 0x10 +/* 0F9708 7F0C4BD8 24010003 */ li $at, 3 +/* 0F970C 7F0C4BDC 14810004 */ bne $a0, $at, .L7F0C4BF0 +/* 0F9710 7F0C4BE0 01201825 */ move $v1, $t1 +/* 0F9714 7F0C4BE4 8FAC008C */ lw $t4, 0x8c($sp) +/* 0F9718 7F0C4BE8 1000000F */ b .L7F0C4C28 +/* 0F971C 7F0C4BEC AFAC0050 */ sw $t4, 0x50($sp) +.L7F0C4BF0: +/* 0F9720 7F0C4BF0 000458C0 */ sll $t3, $a0, 3 +/* 0F9724 7F0C4BF4 01645823 */ subu $t3, $t3, $a0 +/* 0F9728 7F0C4BF8 3C028008 */ lui $v0, %hi(player1_player_data) +/* 0F972C 7F0C4BFC 24429EF0 */ addiu $v0, %lo(player1_player_data) # addiu $v0, $v0, -0x6110 +/* 0F9730 7F0C4C00 000B5900 */ sll $t3, $t3, 4 +/* 0F9734 7F0C4C04 004B6821 */ addu $t5, $v0, $t3 +/* 0F9738 7F0C4C08 91B90069 */ lbu $t9, 0x69($t5) +/* 0F973C 7F0C4C0C 904F01B9 */ lbu $t7, 0x1b9($v0) +/* 0F9740 7F0C4C10 8FA60084 */ lw $a2, 0x84($sp) +/* 0F9744 7F0C4C14 15F90003 */ bne $t7, $t9, .L7F0C4C24 +/* 0F9748 7F0C4C18 00000000 */ nop +/* 0F974C 7F0C4C1C 10000001 */ b .L7F0C4C24 +/* 0F9750 7F0C4C20 8FA60088 */ lw $a2, 0x88($sp) +.L7F0C4C24: +/* 0F9754 7F0C4C24 AFA60050 */ sw $a2, 0x50($sp) +.L7F0C4C28: +/* 0F9758 7F0C4C28 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0F975C 7F0C4C2C 8FAA0050 */ lw $t2, 0x50($sp) +/* 0F9760 7F0C4C30 02202025 */ move $a0, $s1 +/* 0F9764 7F0C4C34 020E2821 */ addu $a1, $s0, $t6 +/* 0F9768 7F0C4C38 24A50060 */ addiu $a1, $a1, 0x60 +/* 0F976C 7F0C4C3C 24660056 */ addiu $a2, $v1, 0x56 +/* 0F9770 7F0C4C40 8FA700A0 */ lw $a3, 0xa0($sp) +/* 0F9774 7F0C4C44 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9778 7F0C4C48 AFAA0010 */ sw $t2, 0x10($sp) +/* 0F977C 7F0C4C4C 00408825 */ move $s1, $v0 +.L7F0C4C50: +/* 0F9780 7F0C4C50 3C038008 */ lui $v1, %hi(pPlayer) +/* 0F9784 7F0C4C54 100003BB */ b .L7F0C5B44 +/* 0F9788 7F0C4C58 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0F978C 7F0C4C5C 24010002 */ li $at, 2 +.L7F0C4C60: +/* 0F9790 7F0C4C60 1441011C */ bne $v0, $at, .L7F0C50D4 +/* 0F9794 7F0C4C64 3C048009 */ lui $a0, %hi(is_gameover_flag) +/* 0F9798 7F0C4C68 8C84C704 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0F979C 7F0C4C6C 2C980001 */ sltiu $t8, $a0, 1 +/* 0F97A0 7F0C4C70 13000005 */ beqz $t8, .L7F0C4C88 +/* 0F97A4 7F0C4C74 03002025 */ move $a0, $t8 +/* 0F97A8 7F0C4C78 3C048009 */ lui $a0, %hi(stop_play_flag) +/* 0F97AC 7F0C4C7C 8C84C700 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0F97B0 7F0C4C80 2C890001 */ sltiu $t1, $a0, 1 +/* 0F97B4 7F0C4C84 01202025 */ move $a0, $t1 +.L7F0C4C88: +/* 0F97B8 7F0C4C88 0FC30FD7 */ jal true_if_displaying_rank_in_mp +/* 0F97BC 7F0C4C8C 00000000 */ nop +/* 0F97C0 7F0C4C90 10400034 */ beqz $v0, .L7F0C4D64 +/* 0F97C4 7F0C4C94 27A400AC */ addiu $a0, $sp, 0xac +/* 0F97C8 7F0C4C98 0FC30F25 */ jal write_playerrank_to_buffer +/* 0F97CC 7F0C4C9C 8FA500D4 */ lw $a1, 0xd4($sp) +/* 0F97D0 7F0C4CA0 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0F97D4 7F0C4CA4 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0F97D8 7F0C4CA8 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F97DC 7F0C4CAC 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F97E0 7F0C4CB0 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F97E4 7F0C4CB4 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F97E8 7F0C4CB8 27A600AC */ addiu $a2, $sp, 0xac +/* 0F97EC 7F0C4CBC AFA00014 */ sw $zero, 0x14($sp) +/* 0F97F0 7F0C4CC0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F97F4 7F0C4CC4 AFAC0010 */ sw $t4, 0x10($sp) +/* 0F97F8 7F0C4CC8 0C001145 */ jal get_video2_settings_ulx +/* 0F97FC 7F0C4CCC 00000000 */ nop +/* 0F9800 7F0C4CD0 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0F9804 7F0C4CD4 8FAF00C0 */ lw $t7, 0xc0($sp) +/* 0F9808 7F0C4CD8 004B6821 */ addu $t5, $v0, $t3 +/* 0F980C 7F0C4CDC 000FC843 */ sra $t9, $t7, 1 +/* 0F9810 7F0C4CE0 01B92023 */ subu $a0, $t5, $t9 +/* 0F9814 7F0C4CE4 24840050 */ addiu $a0, $a0, 0x50 +/* 0F9818 7F0C4CE8 0C001149 */ jal get_video2_settings_uly +/* 0F981C 7F0C4CEC AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9820 7F0C4CF0 8FAE00BC */ lw $t6, 0xbc($sp) +/* 0F9824 7F0C4CF4 000E5043 */ sra $t2, $t6, 1 +/* 0F9828 7F0C4CF8 004AC023 */ subu $t8, $v0, $t2 +/* 0F982C 7F0C4CFC 27090025 */ addiu $t1, $t8, 0x25 +/* 0F9830 7F0C4D00 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9834 7F0C4D04 AFA900C8 */ sw $t1, 0xc8($sp) +/* 0F9838 7F0C4D08 00028400 */ sll $s0, $v0, 0x10 +/* 0F983C 7F0C4D0C 00106403 */ sra $t4, $s0, 0x10 +/* 0F9840 7F0C4D10 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9844 7F0C4D14 01808025 */ move $s0, $t4 +/* 0F9848 7F0C4D18 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableSmall) +/* 0F984C 7F0C4D1C 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) +/* 0F9850 7F0C4D20 8DEF0EAC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0F9854 7F0C4D24 8D6B0EB0 */ lw $t3, %lo(ptrSecondFontTableSmall)($t3) +/* 0F9858 7F0C4D28 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0F985C 7F0C4D2C 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0F9860 7F0C4D30 AFAD0018 */ sw $t5, 0x18($sp) +/* 0F9864 7F0C4D34 02202025 */ move $a0, $s1 +/* 0F9868 7F0C4D38 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F986C 7F0C4D3C 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9870 7F0C4D40 27A700AC */ addiu $a3, $sp, 0xac +/* 0F9874 7F0C4D44 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9878 7F0C4D48 AFA20020 */ sw $v0, 0x20($sp) +/* 0F987C 7F0C4D4C AFA00024 */ sw $zero, 0x24($sp) +/* 0F9880 7F0C4D50 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9884 7F0C4D54 AFAF0014 */ sw $t7, 0x14($sp) +/* 0F9888 7F0C4D58 0FC2B6AF */ jal en_text_write_stuff +/* 0F988C 7F0C4D5C AFAB0010 */ sw $t3, 0x10($sp) +/* 0F9890 7F0C4D60 00408825 */ move $s1, $v0 +.L7F0C4D64: +/* 0F9894 7F0C4D64 0FC30776 */ jal get_textptr_for_textID +/* 0F9898 7F0C4D68 3404A01C */ li $a0, 40988 +/* 0F989C 7F0C4D6C 3404A01D */ li $a0, 40989 +/* 0F98A0 7F0C4D70 0FC30776 */ jal get_textptr_for_textID +/* 0F98A4 7F0C4D74 AFA2004C */ sw $v0, 0x4c($sp) +/* 0F98A8 7F0C4D78 8FA700D4 */ lw $a3, 0xd4($sp) +/* 0F98AC 7F0C4D7C 3C058006 */ lui $a1, %hi(ascii_pnum_KILLS) +/* 0F98B0 7F0C4D80 24A5BC30 */ addiu $a1, %lo(ascii_pnum_KILLS) # addiu $a1, $a1, -0x43d0 +/* 0F98B4 7F0C4D84 8FA6004C */ lw $a2, 0x4c($sp) +/* 0F98B8 7F0C4D88 27A400AC */ addiu $a0, $sp, 0xac +/* 0F98BC 7F0C4D8C AFA20010 */ sw $v0, 0x10($sp) +/* 0F98C0 7F0C4D90 0C002B25 */ jal sprintf +/* 0F98C4 7F0C4D94 24E70001 */ addiu $a3, $a3, 1 +/* 0F98C8 7F0C4D98 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 0F98CC 7F0C4D9C 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0F98D0 7F0C4DA0 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F98D4 7F0C4DA4 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F98D8 7F0C4DA8 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F98DC 7F0C4DAC 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F98E0 7F0C4DB0 27A600AC */ addiu $a2, $sp, 0xac +/* 0F98E4 7F0C4DB4 AFA00014 */ sw $zero, 0x14($sp) +/* 0F98E8 7F0C4DB8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F98EC 7F0C4DBC AFB90010 */ sw $t9, 0x10($sp) +/* 0F98F0 7F0C4DC0 0C001145 */ jal get_video2_settings_ulx +/* 0F98F4 7F0C4DC4 00000000 */ nop +/* 0F98F8 7F0C4DC8 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0F98FC 7F0C4DCC 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0F9900 7F0C4DD0 004E5021 */ addu $t2, $v0, $t6 +/* 0F9904 7F0C4DD4 00184843 */ sra $t1, $t8, 1 +/* 0F9908 7F0C4DD8 01492023 */ subu $a0, $t2, $t1 +/* 0F990C 7F0C4DDC 24840050 */ addiu $a0, $a0, 0x50 +/* 0F9910 7F0C4DE0 0C001149 */ jal get_video2_settings_uly +/* 0F9914 7F0C4DE4 AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9918 7F0C4DE8 8FAC00BC */ lw $t4, 0xbc($sp) +/* 0F991C 7F0C4DEC 000C5843 */ sra $t3, $t4, 1 +/* 0F9920 7F0C4DF0 004B7823 */ subu $t7, $v0, $t3 +/* 0F9924 7F0C4DF4 25ED0035 */ addiu $t5, $t7, 0x35 +/* 0F9928 7F0C4DF8 0C001107 */ jal get_video2_settings_txtClipW +/* 0F992C 7F0C4DFC AFAD00C8 */ sw $t5, 0xc8($sp) +/* 0F9930 7F0C4E00 00028400 */ sll $s0, $v0, 0x10 +/* 0F9934 7F0C4E04 0010CC03 */ sra $t9, $s0, 0x10 +/* 0F9938 7F0C4E08 0C00110B */ jal get_video2_settings_txtClipH +/* 0F993C 7F0C4E0C 03208025 */ move $s0, $t9 +/* 0F9940 7F0C4E10 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) +/* 0F9944 7F0C4E14 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0F9948 7F0C4E18 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0F994C 7F0C4E1C 8DCE0EB0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0F9950 7F0C4E20 3C0A00FF */ lui $t2, (0x00FF00B0 >> 16) # lui $t2, 0xff +/* 0F9954 7F0C4E24 354A00B0 */ ori $t2, (0x00FF00B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +/* 0F9958 7F0C4E28 AFAA0018 */ sw $t2, 0x18($sp) +/* 0F995C 7F0C4E2C 02202025 */ move $a0, $s1 +/* 0F9960 7F0C4E30 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9964 7F0C4E34 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9968 7F0C4E38 27A700AC */ addiu $a3, $sp, 0xac +/* 0F996C 7F0C4E3C AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9970 7F0C4E40 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9974 7F0C4E44 AFA00024 */ sw $zero, 0x24($sp) +/* 0F9978 7F0C4E48 AFA00028 */ sw $zero, 0x28($sp) +/* 0F997C 7F0C4E4C AFB80014 */ sw $t8, 0x14($sp) +/* 0F9980 7F0C4E50 0FC2B6AF */ jal en_text_write_stuff +/* 0F9984 7F0C4E54 AFAE0010 */ sw $t6, 0x10($sp) +/* 0F9988 7F0C4E58 8FA900D0 */ lw $t1, 0xd0($sp) +/* 0F998C 7F0C4E5C 00408825 */ move $s1, $v0 +/* 0F9990 7F0C4E60 24010002 */ li $at, 2 +/* 0F9994 7F0C4E64 15210033 */ bne $t1, $at, .L7F0C4F34 +/* 0F9998 7F0C4E68 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0F999C 7F0C4E6C 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0F99A0 7F0C4E70 50400018 */ beql $v0, $zero, .L7F0C4ED4 +/* 0F99A4 7F0C4E74 24010001 */ li $at, 1 +/* 0F99A8 7F0C4E78 0C001145 */ jal get_video2_settings_ulx +/* 0F99AC 7F0C4E7C 00000000 */ nop +/* 0F99B0 7F0C4E80 00028400 */ sll $s0, $v0, 0x10 +/* 0F99B4 7F0C4E84 00106403 */ sra $t4, $s0, 0x10 +/* 0F99B8 7F0C4E88 0C001149 */ jal get_video2_settings_uly +/* 0F99BC 7F0C4E8C 01808025 */ move $s0, $t4 +/* 0F99C0 7F0C4E90 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 0F99C4 7F0C4E94 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0F99C8 7F0C4E98 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0F99CC 7F0C4E9C 000F68C0 */ sll $t5, $t7, 3 +/* 0F99D0 7F0C4EA0 01AF6823 */ subu $t5, $t5, $t7 +/* 0F99D4 7F0C4EA4 000D6900 */ sll $t5, $t5, 4 +/* 0F99D8 7F0C4EA8 00ED3821 */ addu $a3, $a3, $t5 +/* 0F99DC 7F0C4EAC 020B2821 */ addu $a1, $s0, $t3 +/* 0F99E0 7F0C4EB0 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F99E4 7F0C4EB4 8CE79F14 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0F99E8 7F0C4EB8 02202025 */ move $a0, $s1 +/* 0F99EC 7F0C4EBC 24460046 */ addiu $a2, $v0, 0x46 +/* 0F99F0 7F0C4EC0 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F99F4 7F0C4EC4 AFA00010 */ sw $zero, 0x10($sp) +/* 0F99F8 7F0C4EC8 00408825 */ move $s1, $v0 +/* 0F99FC 7F0C4ECC 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0F9A00 7F0C4ED0 24010001 */ li $at, 1 +.L7F0C4ED4: +/* 0F9A04 7F0C4ED4 1041007C */ beq $v0, $at, .L7F0C50C8 +/* 0F9A08 7F0C4ED8 0002C8C0 */ sll $t9, $v0, 3 +/* 0F9A0C 7F0C4EDC 0322C823 */ subu $t9, $t9, $v0 +/* 0F9A10 7F0C4EE0 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0F9A14 7F0C4EE4 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0F9A18 7F0C4EE8 0019C900 */ sll $t9, $t9, 4 +/* 0F9A1C 7F0C4EEC 032EC021 */ addu $t8, $t9, $t6 +/* 0F9A20 7F0C4EF0 0C001145 */ jal get_video2_settings_ulx +/* 0F9A24 7F0C4EF4 AFB80044 */ sw $t8, 0x44($sp) +/* 0F9A28 7F0C4EF8 00028400 */ sll $s0, $v0, 0x10 +/* 0F9A2C 7F0C4EFC 00105403 */ sra $t2, $s0, 0x10 +/* 0F9A30 7F0C4F00 0C001149 */ jal get_video2_settings_uly +/* 0F9A34 7F0C4F04 01408025 */ move $s0, $t2 +/* 0F9A38 7F0C4F08 8FA900A8 */ lw $t1, 0xa8($sp) +/* 0F9A3C 7F0C4F0C 8FAC0044 */ lw $t4, 0x44($sp) +/* 0F9A40 7F0C4F10 02202025 */ move $a0, $s1 +/* 0F9A44 7F0C4F14 02092821 */ addu $a1, $s0, $t1 +/* 0F9A48 7F0C4F18 8D870028 */ lw $a3, 0x28($t4) +/* 0F9A4C 7F0C4F1C AFA00010 */ sw $zero, 0x10($sp) +/* 0F9A50 7F0C4F20 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F9A54 7F0C4F24 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9A58 7F0C4F28 24460056 */ addiu $a2, $v0, 0x56 +/* 0F9A5C 7F0C4F2C 10000066 */ b .L7F0C50C8 +/* 0F9A60 7F0C4F30 00408825 */ move $s1, $v0 +.L7F0C4F34: +/* 0F9A64 7F0C4F34 50400018 */ beql $v0, $zero, .L7F0C4F98 +/* 0F9A68 7F0C4F38 24010001 */ li $at, 1 +/* 0F9A6C 7F0C4F3C 0C001145 */ jal get_video2_settings_ulx +/* 0F9A70 7F0C4F40 00000000 */ nop +/* 0F9A74 7F0C4F44 00028400 */ sll $s0, $v0, 0x10 +/* 0F9A78 7F0C4F48 00105C03 */ sra $t3, $s0, 0x10 +/* 0F9A7C 7F0C4F4C 0C001149 */ jal get_video2_settings_uly +/* 0F9A80 7F0C4F50 01608025 */ move $s0, $t3 +/* 0F9A84 7F0C4F54 8FAD00D4 */ lw $t5, 0xd4($sp) +/* 0F9A88 7F0C4F58 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0F9A8C 7F0C4F5C 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0F9A90 7F0C4F60 000DC8C0 */ sll $t9, $t5, 3 +/* 0F9A94 7F0C4F64 032DC823 */ subu $t9, $t9, $t5 +/* 0F9A98 7F0C4F68 0019C900 */ sll $t9, $t9, 4 +/* 0F9A9C 7F0C4F6C 00F93821 */ addu $a3, $a3, $t9 +/* 0F9AA0 7F0C4F70 020F2821 */ addu $a1, $s0, $t7 +/* 0F9AA4 7F0C4F74 24A50040 */ addiu $a1, $a1, 0x40 +/* 0F9AA8 7F0C4F78 8CE79F14 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0F9AAC 7F0C4F7C 02202025 */ move $a0, $s1 +/* 0F9AB0 7F0C4F80 24460046 */ addiu $a2, $v0, 0x46 +/* 0F9AB4 7F0C4F84 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9AB8 7F0C4F88 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9ABC 7F0C4F8C 00408825 */ move $s1, $v0 +/* 0F9AC0 7F0C4F90 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0F9AC4 7F0C4F94 24010001 */ li $at, 1 +.L7F0C4F98: +/* 0F9AC8 7F0C4F98 10410017 */ beq $v0, $at, .L7F0C4FF8 +/* 0F9ACC 7F0C4F9C 000270C0 */ sll $t6, $v0, 3 +/* 0F9AD0 7F0C4FA0 01C27023 */ subu $t6, $t6, $v0 +/* 0F9AD4 7F0C4FA4 3C188008 */ lui $t8, %hi(player1_player_data) +/* 0F9AD8 7F0C4FA8 27189EF0 */ addiu $t8, %lo(player1_player_data) # addiu $t8, $t8, -0x6110 +/* 0F9ADC 7F0C4FAC 000E7100 */ sll $t6, $t6, 4 +/* 0F9AE0 7F0C4FB0 01D85021 */ addu $t2, $t6, $t8 +/* 0F9AE4 7F0C4FB4 0C001145 */ jal get_video2_settings_ulx +/* 0F9AE8 7F0C4FB8 AFAA0044 */ sw $t2, 0x44($sp) +/* 0F9AEC 7F0C4FBC 00028400 */ sll $s0, $v0, 0x10 +/* 0F9AF0 7F0C4FC0 00104C03 */ sra $t1, $s0, 0x10 +/* 0F9AF4 7F0C4FC4 0C001149 */ jal get_video2_settings_uly +/* 0F9AF8 7F0C4FC8 01208025 */ move $s0, $t1 +/* 0F9AFC 7F0C4FCC 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0F9B00 7F0C4FD0 8FAB0044 */ lw $t3, 0x44($sp) +/* 0F9B04 7F0C4FD4 02202025 */ move $a0, $s1 +/* 0F9B08 7F0C4FD8 020C2821 */ addu $a1, $s0, $t4 +/* 0F9B0C 7F0C4FDC 8D670028 */ lw $a3, 0x28($t3) +/* 0F9B10 7F0C4FE0 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9B14 7F0C4FE4 24A50060 */ addiu $a1, $a1, 0x60 +/* 0F9B18 7F0C4FE8 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9B1C 7F0C4FEC 24460046 */ addiu $a2, $v0, 0x46 +/* 0F9B20 7F0C4FF0 00408825 */ move $s1, $v0 +/* 0F9B24 7F0C4FF4 8FA200D4 */ lw $v0, 0xd4($sp) +.L7F0C4FF8: +/* 0F9B28 7F0C4FF8 24010002 */ li $at, 2 +/* 0F9B2C 7F0C4FFC 10410017 */ beq $v0, $at, .L7F0C505C +/* 0F9B30 7F0C5000 000278C0 */ sll $t7, $v0, 3 +/* 0F9B34 7F0C5004 01E27823 */ subu $t7, $t7, $v0 +/* 0F9B38 7F0C5008 3C0D8008 */ lui $t5, %hi(player1_player_data) +/* 0F9B3C 7F0C500C 25AD9EF0 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x6110 +/* 0F9B40 7F0C5010 000F7900 */ sll $t7, $t7, 4 +/* 0F9B44 7F0C5014 01EDC821 */ addu $t9, $t7, $t5 +/* 0F9B48 7F0C5018 0C001145 */ jal get_video2_settings_ulx +/* 0F9B4C 7F0C501C AFB90044 */ sw $t9, 0x44($sp) +/* 0F9B50 7F0C5020 00028400 */ sll $s0, $v0, 0x10 +/* 0F9B54 7F0C5024 00107403 */ sra $t6, $s0, 0x10 +/* 0F9B58 7F0C5028 0C001149 */ jal get_video2_settings_uly +/* 0F9B5C 7F0C502C 01C08025 */ move $s0, $t6 +/* 0F9B60 7F0C5030 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0F9B64 7F0C5034 8FAA0044 */ lw $t2, 0x44($sp) +/* 0F9B68 7F0C5038 02202025 */ move $a0, $s1 +/* 0F9B6C 7F0C503C 02182821 */ addu $a1, $s0, $t8 +/* 0F9B70 7F0C5040 8D47002C */ lw $a3, 0x2c($t2) +/* 0F9B74 7F0C5044 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9B78 7F0C5048 24A50040 */ addiu $a1, $a1, 0x40 +/* 0F9B7C 7F0C504C 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9B80 7F0C5050 24460056 */ addiu $a2, $v0, 0x56 +/* 0F9B84 7F0C5054 00408825 */ move $s1, $v0 +/* 0F9B88 7F0C5058 8FA200D4 */ lw $v0, 0xd4($sp) +.L7F0C505C: +/* 0F9B8C 7F0C505C 8FA900D0 */ lw $t1, 0xd0($sp) +/* 0F9B90 7F0C5060 24010004 */ li $at, 4 +/* 0F9B94 7F0C5064 15210018 */ bne $t1, $at, .L7F0C50C8 +/* 0F9B98 7F0C5068 24010003 */ li $at, 3 +/* 0F9B9C 7F0C506C 10410016 */ beq $v0, $at, .L7F0C50C8 +/* 0F9BA0 7F0C5070 000260C0 */ sll $t4, $v0, 3 +/* 0F9BA4 7F0C5074 01826023 */ subu $t4, $t4, $v0 +/* 0F9BA8 7F0C5078 3C0B8008 */ lui $t3, %hi(player1_player_data) +/* 0F9BAC 7F0C507C 256B9EF0 */ addiu $t3, %lo(player1_player_data) # addiu $t3, $t3, -0x6110 +/* 0F9BB0 7F0C5080 000C6100 */ sll $t4, $t4, 4 +/* 0F9BB4 7F0C5084 018B7821 */ addu $t7, $t4, $t3 +/* 0F9BB8 7F0C5088 0C001145 */ jal get_video2_settings_ulx +/* 0F9BBC 7F0C508C AFAF0044 */ sw $t7, 0x44($sp) +/* 0F9BC0 7F0C5090 00028400 */ sll $s0, $v0, 0x10 +/* 0F9BC4 7F0C5094 00106C03 */ sra $t5, $s0, 0x10 +/* 0F9BC8 7F0C5098 0C001149 */ jal get_video2_settings_uly +/* 0F9BCC 7F0C509C 01A08025 */ move $s0, $t5 +/* 0F9BD0 7F0C50A0 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F9BD4 7F0C50A4 8FAE0044 */ lw $t6, 0x44($sp) +/* 0F9BD8 7F0C50A8 02202025 */ move $a0, $s1 +/* 0F9BDC 7F0C50AC 02192821 */ addu $a1, $s0, $t9 +/* 0F9BE0 7F0C50B0 8DC70030 */ lw $a3, 0x30($t6) +/* 0F9BE4 7F0C50B4 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9BE8 7F0C50B8 24A50060 */ addiu $a1, $a1, 0x60 +/* 0F9BEC 7F0C50BC 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9BF0 7F0C50C0 24460056 */ addiu $a2, $v0, 0x56 +/* 0F9BF4 7F0C50C4 00408825 */ move $s1, $v0 +.L7F0C50C8: +/* 0F9BF8 7F0C50C8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0F9BFC 7F0C50CC 1000029D */ b .L7F0C5B44 +/* 0F9C00 7F0C50D0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F0C50D4: +/* 0F9C04 7F0C50D4 24010001 */ li $at, 1 +/* 0F9C08 7F0C50D8 144101A9 */ bne $v0, $at, .L7F0C5780 +/* 0F9C0C 7F0C50DC 3C048009 */ lui $a0, %hi(is_gameover_flag) +/* 0F9C10 7F0C50E0 8C84C704 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0F9C14 7F0C50E4 2C980001 */ sltiu $t8, $a0, 1 +/* 0F9C18 7F0C50E8 13000005 */ beqz $t8, .L7F0C5100 +/* 0F9C1C 7F0C50EC 03002025 */ move $a0, $t8 +/* 0F9C20 7F0C50F0 3C048009 */ lui $a0, %hi(stop_play_flag) +/* 0F9C24 7F0C50F4 8C84C700 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0F9C28 7F0C50F8 2C8A0001 */ sltiu $t2, $a0, 1 +/* 0F9C2C 7F0C50FC 01402025 */ move $a0, $t2 +.L7F0C5100: +/* 0F9C30 7F0C5100 0FC30FD7 */ jal true_if_displaying_rank_in_mp +/* 0F9C34 7F0C5104 00000000 */ nop +/* 0F9C38 7F0C5108 10400034 */ beqz $v0, .L7F0C51DC +/* 0F9C3C 7F0C510C 27A400AC */ addiu $a0, $sp, 0xac +/* 0F9C40 7F0C5110 0FC30F25 */ jal write_playerrank_to_buffer +/* 0F9C44 7F0C5114 8FA500D4 */ lw $a1, 0xd4($sp) +/* 0F9C48 7F0C5118 3C098004 */ lui $t1, %hi(ptrFirstFontTableSmall) +/* 0F9C4C 7F0C511C 8D290EAC */ lw $t1, %lo(ptrFirstFontTableSmall)($t1) +/* 0F9C50 7F0C5120 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F9C54 7F0C5124 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F9C58 7F0C5128 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F9C5C 7F0C512C 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F9C60 7F0C5130 27A600AC */ addiu $a2, $sp, 0xac +/* 0F9C64 7F0C5134 AFA00014 */ sw $zero, 0x14($sp) +/* 0F9C68 7F0C5138 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F9C6C 7F0C513C AFA90010 */ sw $t1, 0x10($sp) +/* 0F9C70 7F0C5140 0C001145 */ jal get_video2_settings_ulx +/* 0F9C74 7F0C5144 00000000 */ nop +/* 0F9C78 7F0C5148 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0F9C7C 7F0C514C 8FAF00C0 */ lw $t7, 0xc0($sp) +/* 0F9C80 7F0C5150 004C5821 */ addu $t3, $v0, $t4 +/* 0F9C84 7F0C5154 000F6843 */ sra $t5, $t7, 1 +/* 0F9C88 7F0C5158 016D2023 */ subu $a0, $t3, $t5 +/* 0F9C8C 7F0C515C 24840050 */ addiu $a0, $a0, 0x50 +/* 0F9C90 7F0C5160 0C001149 */ jal get_video2_settings_uly +/* 0F9C94 7F0C5164 AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9C98 7F0C5168 8FB900BC */ lw $t9, 0xbc($sp) +/* 0F9C9C 7F0C516C 00197043 */ sra $t6, $t9, 1 +/* 0F9CA0 7F0C5170 004EC023 */ subu $t8, $v0, $t6 +/* 0F9CA4 7F0C5174 270A0025 */ addiu $t2, $t8, 0x25 +/* 0F9CA8 7F0C5178 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9CAC 7F0C517C AFAA00C8 */ sw $t2, 0xc8($sp) +/* 0F9CB0 7F0C5180 00028400 */ sll $s0, $v0, 0x10 +/* 0F9CB4 7F0C5184 00104C03 */ sra $t1, $s0, 0x10 +/* 0F9CB8 7F0C5188 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9CBC 7F0C518C 01208025 */ move $s0, $t1 +/* 0F9CC0 7F0C5190 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) +/* 0F9CC4 7F0C5194 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) +/* 0F9CC8 7F0C5198 8DEF0EAC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0F9CCC 7F0C519C 8D8C0EB0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 0F9CD0 7F0C51A0 3C0B00FF */ lui $t3, (0x00FF00B0 >> 16) # lui $t3, 0xff +/* 0F9CD4 7F0C51A4 356B00B0 */ ori $t3, (0x00FF00B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0F9CD8 7F0C51A8 AFAB0018 */ sw $t3, 0x18($sp) +/* 0F9CDC 7F0C51AC 02202025 */ move $a0, $s1 +/* 0F9CE0 7F0C51B0 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9CE4 7F0C51B4 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9CE8 7F0C51B8 27A700AC */ addiu $a3, $sp, 0xac +/* 0F9CEC 7F0C51BC AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9CF0 7F0C51C0 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9CF4 7F0C51C4 AFA00024 */ sw $zero, 0x24($sp) +/* 0F9CF8 7F0C51C8 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9CFC 7F0C51CC AFAF0014 */ sw $t7, 0x14($sp) +/* 0F9D00 7F0C51D0 0FC2B6AF */ jal en_text_write_stuff +/* 0F9D04 7F0C51D4 AFAC0010 */ sw $t4, 0x10($sp) +/* 0F9D08 7F0C51D8 00408825 */ move $s1, $v0 +.L7F0C51DC: +/* 0F9D0C 7F0C51DC 0FC30776 */ jal get_textptr_for_textID +/* 0F9D10 7F0C51E0 3404A01C */ li $a0, 40988 +/* 0F9D14 7F0C51E4 3404A01E */ li $a0, 40990 +/* 0F9D18 7F0C51E8 0FC30776 */ jal get_textptr_for_textID +/* 0F9D1C 7F0C51EC AFA2004C */ sw $v0, 0x4c($sp) +/* 0F9D20 7F0C51F0 8FA700D4 */ lw $a3, 0xd4($sp) +/* 0F9D24 7F0C51F4 3C058006 */ lui $a1, %hi(ascii_pnum_LOSSES) +/* 0F9D28 7F0C51F8 24A5BC38 */ addiu $a1, %lo(ascii_pnum_LOSSES) # addiu $a1, $a1, -0x43c8 +/* 0F9D2C 7F0C51FC 8FA6004C */ lw $a2, 0x4c($sp) +/* 0F9D30 7F0C5200 27A400AC */ addiu $a0, $sp, 0xac +/* 0F9D34 7F0C5204 AFA20010 */ sw $v0, 0x10($sp) +/* 0F9D38 7F0C5208 0C002B25 */ jal sprintf +/* 0F9D3C 7F0C520C 24E70001 */ addiu $a3, $a3, 1 +/* 0F9D40 7F0C5210 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) +/* 0F9D44 7F0C5214 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0F9D48 7F0C5218 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F9D4C 7F0C521C 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F9D50 7F0C5220 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F9D54 7F0C5224 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F9D58 7F0C5228 27A600AC */ addiu $a2, $sp, 0xac +/* 0F9D5C 7F0C522C AFA00014 */ sw $zero, 0x14($sp) +/* 0F9D60 7F0C5230 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F9D64 7F0C5234 AFAD0010 */ sw $t5, 0x10($sp) +/* 0F9D68 7F0C5238 0C001145 */ jal get_video2_settings_ulx +/* 0F9D6C 7F0C523C 00000000 */ nop +/* 0F9D70 7F0C5240 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F9D74 7F0C5244 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0F9D78 7F0C5248 00597021 */ addu $t6, $v0, $t9 +/* 0F9D7C 7F0C524C 00185043 */ sra $t2, $t8, 1 +/* 0F9D80 7F0C5250 01CA2023 */ subu $a0, $t6, $t2 +/* 0F9D84 7F0C5254 24840050 */ addiu $a0, $a0, 0x50 +/* 0F9D88 7F0C5258 0C001149 */ jal get_video2_settings_uly +/* 0F9D8C 7F0C525C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9D90 7F0C5260 8FA900BC */ lw $t1, 0xbc($sp) +/* 0F9D94 7F0C5264 00096043 */ sra $t4, $t1, 1 +/* 0F9D98 7F0C5268 004C7823 */ subu $t7, $v0, $t4 +/* 0F9D9C 7F0C526C 25EB0035 */ addiu $t3, $t7, 0x35 +/* 0F9DA0 7F0C5270 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9DA4 7F0C5274 AFAB00C8 */ sw $t3, 0xc8($sp) +/* 0F9DA8 7F0C5278 00028400 */ sll $s0, $v0, 0x10 +/* 0F9DAC 7F0C527C 00106C03 */ sra $t5, $s0, 0x10 +/* 0F9DB0 7F0C5280 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9DB4 7F0C5284 01A08025 */ move $s0, $t5 +/* 0F9DB8 7F0C5288 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) +/* 0F9DBC 7F0C528C 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0F9DC0 7F0C5290 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0F9DC4 7F0C5294 8F390EB0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0F9DC8 7F0C5298 3C0EFF40 */ lui $t6, (0xFF4040B0 >> 16) # lui $t6, 0xff40 +/* 0F9DCC 7F0C529C 35CE40B0 */ ori $t6, (0xFF4040B0 & 0xFFFF) # ori $t6, $t6, 0x40b0 +/* 0F9DD0 7F0C52A0 AFAE0018 */ sw $t6, 0x18($sp) +/* 0F9DD4 7F0C52A4 02202025 */ move $a0, $s1 +/* 0F9DD8 7F0C52A8 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9DDC 7F0C52AC 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9DE0 7F0C52B0 27A700AC */ addiu $a3, $sp, 0xac +/* 0F9DE4 7F0C52B4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9DE8 7F0C52B8 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9DEC 7F0C52BC AFA00024 */ sw $zero, 0x24($sp) +/* 0F9DF0 7F0C52C0 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9DF4 7F0C52C4 AFB80014 */ sw $t8, 0x14($sp) +/* 0F9DF8 7F0C52C8 0FC2B6AF */ jal en_text_write_stuff +/* 0F9DFC 7F0C52CC AFB90010 */ sw $t9, 0x10($sp) +/* 0F9E00 7F0C52D0 8FAA00D0 */ lw $t2, 0xd0($sp) +/* 0F9E04 7F0C52D4 24010002 */ li $at, 2 +/* 0F9E08 7F0C52D8 00408825 */ move $s1, $v0 +/* 0F9E0C 7F0C52DC 15410062 */ bne $t2, $at, .L7F0C5468 +/* 0F9E10 7F0C52E0 8FB800D4 */ lw $t8, 0xd4($sp) +/* 0F9E14 7F0C52E4 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0F9E18 7F0C52E8 3C0D8008 */ lui $t5, %hi(player1_player_data + 0x24) +/* 0F9E1C 7F0C52EC 10400016 */ beqz $v0, .L7F0C5348 +/* 0F9E20 7F0C52F0 00000000 */ nop +/* 0F9E24 7F0C52F4 0C001145 */ jal get_video2_settings_ulx +/* 0F9E28 7F0C52F8 00000000 */ nop +/* 0F9E2C 7F0C52FC 00028400 */ sll $s0, $v0, 0x10 +/* 0F9E30 7F0C5300 00104C03 */ sra $t1, $s0, 0x10 +/* 0F9E34 7F0C5304 0C001149 */ jal get_video2_settings_uly +/* 0F9E38 7F0C5308 01208025 */ move $s0, $t1 +/* 0F9E3C 7F0C530C 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 0F9E40 7F0C5310 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0F9E44 7F0C5314 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0F9E48 7F0C5318 000F5880 */ sll $t3, $t7, 2 +/* 0F9E4C 7F0C531C 00EB3821 */ addu $a3, $a3, $t3 +/* 0F9E50 7F0C5320 020C2821 */ addu $a1, $s0, $t4 +/* 0F9E54 7F0C5324 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F9E58 7F0C5328 8CE79F14 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0F9E5C 7F0C532C 02202025 */ move $a0, $s1 +/* 0F9E60 7F0C5330 24460046 */ addiu $a2, $v0, 0x46 +/* 0F9E64 7F0C5334 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9E68 7F0C5338 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9E6C 7F0C533C 00408825 */ move $s1, $v0 +/* 0F9E70 7F0C5340 10000019 */ b .L7F0C53A8 +/* 0F9E74 7F0C5344 8FA200D4 */ lw $v0, 0xd4($sp) +.L7F0C5348: +/* 0F9E78 7F0C5348 8DAD9F14 */ lw $t5, %lo(player1_player_data + 0x24)($t5) +/* 0F9E7C 7F0C534C 59A00017 */ blezl $t5, .L7F0C53AC +/* 0F9E80 7F0C5350 24010001 */ li $at, 1 +/* 0F9E84 7F0C5354 0C001145 */ jal get_video2_settings_ulx +/* 0F9E88 7F0C5358 00000000 */ nop +/* 0F9E8C 7F0C535C 00028400 */ sll $s0, $v0, 0x10 +/* 0F9E90 7F0C5360 0010CC03 */ sra $t9, $s0, 0x10 +/* 0F9E94 7F0C5364 0C001149 */ jal get_video2_settings_uly +/* 0F9E98 7F0C5368 03208025 */ move $s0, $t9 +/* 0F9E9C 7F0C536C 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0F9EA0 7F0C5370 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0F9EA4 7F0C5374 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0F9EA8 7F0C5378 000E5080 */ sll $t2, $t6, 2 +/* 0F9EAC 7F0C537C 00EA3821 */ addu $a3, $a3, $t2 +/* 0F9EB0 7F0C5380 24090003 */ li $t1, 3 +/* 0F9EB4 7F0C5384 02182821 */ addu $a1, $s0, $t8 +/* 0F9EB8 7F0C5388 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F9EBC 7F0C538C AFA90010 */ sw $t1, 0x10($sp) +/* 0F9EC0 7F0C5390 8CE79F14 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0F9EC4 7F0C5394 02202025 */ move $a0, $s1 +/* 0F9EC8 7F0C5398 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9ECC 7F0C539C 24460046 */ addiu $a2, $v0, 0x46 +/* 0F9ED0 7F0C53A0 00408825 */ move $s1, $v0 +/* 0F9ED4 7F0C53A4 8FA200D4 */ lw $v0, 0xd4($sp) +.L7F0C53A8: +/* 0F9ED8 7F0C53A8 24010001 */ li $at, 1 +.L7F0C53AC: +/* 0F9EDC 7F0C53AC 10410016 */ beq $v0, $at, .L7F0C5408 +/* 0F9EE0 7F0C53B0 3C0E8008 */ lui $t6, %hi(player2_player_data + 0x28) +/* 0F9EE4 7F0C53B4 3C0F8008 */ lui $t7, %hi(player1_player_data) +/* 0F9EE8 7F0C53B8 25EF9EF0 */ addiu $t7, %lo(player1_player_data) # addiu $t7, $t7, -0x6110 +/* 0F9EEC 7F0C53BC 00026080 */ sll $t4, $v0, 2 +/* 0F9EF0 7F0C53C0 018F5821 */ addu $t3, $t4, $t7 +/* 0F9EF4 7F0C53C4 0C001145 */ jal get_video2_settings_ulx +/* 0F9EF8 7F0C53C8 AFAB0044 */ sw $t3, 0x44($sp) +/* 0F9EFC 7F0C53CC 00028400 */ sll $s0, $v0, 0x10 +/* 0F9F00 7F0C53D0 00106C03 */ sra $t5, $s0, 0x10 +/* 0F9F04 7F0C53D4 0C001149 */ jal get_video2_settings_uly +/* 0F9F08 7F0C53D8 01A08025 */ move $s0, $t5 +/* 0F9F0C 7F0C53DC 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F9F10 7F0C53E0 8FB80044 */ lw $t8, 0x44($sp) +/* 0F9F14 7F0C53E4 02202025 */ move $a0, $s1 +/* 0F9F18 7F0C53E8 02192821 */ addu $a1, $s0, $t9 +/* 0F9F1C 7F0C53EC 8F070094 */ lw $a3, 0x94($t8) +/* 0F9F20 7F0C53F0 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9F24 7F0C53F4 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F9F28 7F0C53F8 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9F2C 7F0C53FC 24460056 */ addiu $a2, $v0, 0x56 +/* 0F9F30 7F0C5400 100000DC */ b .L7F0C5774 +/* 0F9F34 7F0C5404 00408825 */ move $s1, $v0 +.L7F0C5408: +/* 0F9F38 7F0C5408 8DCE9F88 */ lw $t6, %lo(player2_player_data + 0x28)($t6) +/* 0F9F3C 7F0C540C 3C098008 */ lui $t1, %hi(player1_player_data) +/* 0F9F40 7F0C5410 25299EF0 */ addiu $t1, %lo(player1_player_data) # addiu $t1, $t1, -0x6110 +/* 0F9F44 7F0C5414 19C000D7 */ blez $t6, .L7F0C5774 +/* 0F9F48 7F0C5418 00025080 */ sll $t2, $v0, 2 +/* 0F9F4C 7F0C541C 01496021 */ addu $t4, $t2, $t1 +/* 0F9F50 7F0C5420 0C001145 */ jal get_video2_settings_ulx +/* 0F9F54 7F0C5424 AFAC0044 */ sw $t4, 0x44($sp) +/* 0F9F58 7F0C5428 00028400 */ sll $s0, $v0, 0x10 +/* 0F9F5C 7F0C542C 00107C03 */ sra $t7, $s0, 0x10 +/* 0F9F60 7F0C5430 0C001149 */ jal get_video2_settings_uly +/* 0F9F64 7F0C5434 01E08025 */ move $s0, $t7 +/* 0F9F68 7F0C5438 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0F9F6C 7F0C543C 8FAD0044 */ lw $t5, 0x44($sp) +/* 0F9F70 7F0C5440 24190003 */ li $t9, 3 +/* 0F9F74 7F0C5444 020B2821 */ addu $a1, $s0, $t3 +/* 0F9F78 7F0C5448 8DA70094 */ lw $a3, 0x94($t5) +/* 0F9F7C 7F0C544C AFB90010 */ sw $t9, 0x10($sp) +/* 0F9F80 7F0C5450 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F9F84 7F0C5454 02202025 */ move $a0, $s1 +/* 0F9F88 7F0C5458 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9F8C 7F0C545C 24460056 */ addiu $a2, $v0, 0x56 +/* 0F9F90 7F0C5460 100000C4 */ b .L7F0C5774 +/* 0F9F94 7F0C5464 00408825 */ move $s1, $v0 +.L7F0C5468: +/* 0F9F98 7F0C5468 13000015 */ beqz $t8, .L7F0C54C0 +/* 0F9F9C 7F0C546C 3C0F8008 */ lui $t7, %hi(player1_player_data + 0x24) +/* 0F9FA0 7F0C5470 0C001145 */ jal get_video2_settings_ulx +/* 0F9FA4 7F0C5474 00000000 */ nop +/* 0F9FA8 7F0C5478 00028400 */ sll $s0, $v0, 0x10 +/* 0F9FAC 7F0C547C 00107403 */ sra $t6, $s0, 0x10 +/* 0F9FB0 7F0C5480 0C001149 */ jal get_video2_settings_uly +/* 0F9FB4 7F0C5484 01C08025 */ move $s0, $t6 +/* 0F9FB8 7F0C5488 8FA900D4 */ lw $t1, 0xd4($sp) +/* 0F9FBC 7F0C548C 8FAA00A8 */ lw $t2, 0xa8($sp) +/* 0F9FC0 7F0C5490 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0F9FC4 7F0C5494 00096080 */ sll $t4, $t1, 2 +/* 0F9FC8 7F0C5498 00EC3821 */ addu $a3, $a3, $t4 +/* 0F9FCC 7F0C549C 020A2821 */ addu $a1, $s0, $t2 +/* 0F9FD0 7F0C54A0 24A50040 */ addiu $a1, $a1, 0x40 +/* 0F9FD4 7F0C54A4 8CE79F14 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0F9FD8 7F0C54A8 02202025 */ move $a0, $s1 +/* 0F9FDC 7F0C54AC 24460046 */ addiu $a2, $v0, 0x46 +/* 0F9FE0 7F0C54B0 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9FE4 7F0C54B4 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9FE8 7F0C54B8 10000018 */ b .L7F0C551C +/* 0F9FEC 7F0C54BC 00408825 */ move $s1, $v0 +.L7F0C54C0: +/* 0F9FF0 7F0C54C0 8DEF9F14 */ lw $t7, %lo(player1_player_data + 0x24)($t7) +/* 0F9FF4 7F0C54C4 59E00016 */ blezl $t7, .L7F0C5520 +/* 0F9FF8 7F0C54C8 8FAA00D4 */ lw $t2, 0xd4($sp) +/* 0F9FFC 7F0C54CC 0C001145 */ jal get_video2_settings_ulx +/* 0FA000 7F0C54D0 00000000 */ nop +/* 0FA004 7F0C54D4 00028400 */ sll $s0, $v0, 0x10 +/* 0FA008 7F0C54D8 00105C03 */ sra $t3, $s0, 0x10 +/* 0FA00C 7F0C54DC 0C001149 */ jal get_video2_settings_uly +/* 0FA010 7F0C54E0 01608025 */ move $s0, $t3 +/* 0FA014 7F0C54E4 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FA018 7F0C54E8 8FAD00A8 */ lw $t5, 0xa8($sp) +/* 0FA01C 7F0C54EC 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0FA020 7F0C54F0 0019C080 */ sll $t8, $t9, 2 +/* 0FA024 7F0C54F4 00F83821 */ addu $a3, $a3, $t8 +/* 0FA028 7F0C54F8 240E0003 */ li $t6, 3 +/* 0FA02C 7F0C54FC 020D2821 */ addu $a1, $s0, $t5 +/* 0FA030 7F0C5500 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FA034 7F0C5504 AFAE0010 */ sw $t6, 0x10($sp) +/* 0FA038 7F0C5508 8CE79F14 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0FA03C 7F0C550C 02202025 */ move $a0, $s1 +/* 0FA040 7F0C5510 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA044 7F0C5514 24460046 */ addiu $a2, $v0, 0x46 +/* 0FA048 7F0C5518 00408825 */ move $s1, $v0 +.L7F0C551C: +/* 0FA04C 7F0C551C 8FAA00D4 */ lw $t2, 0xd4($sp) +.L7F0C5520: +/* 0FA050 7F0C5520 24010001 */ li $at, 1 +/* 0FA054 7F0C5524 3C188008 */ lui $t8, %hi(player2_player_data + 0x28) +/* 0FA058 7F0C5528 11410015 */ beq $t2, $at, .L7F0C5580 +/* 0FA05C 7F0C552C 000A4880 */ sll $t1, $t2, 2 +/* 0FA060 7F0C5530 3C0C8008 */ lui $t4, %hi(player1_player_data) +/* 0FA064 7F0C5534 258C9EF0 */ addiu $t4, %lo(player1_player_data) # addiu $t4, $t4, -0x6110 +/* 0FA068 7F0C5538 012C7821 */ addu $t7, $t1, $t4 +/* 0FA06C 7F0C553C 0C001145 */ jal get_video2_settings_ulx +/* 0FA070 7F0C5540 AFAF0044 */ sw $t7, 0x44($sp) +/* 0FA074 7F0C5544 00028400 */ sll $s0, $v0, 0x10 +/* 0FA078 7F0C5548 00105C03 */ sra $t3, $s0, 0x10 +/* 0FA07C 7F0C554C 0C001149 */ jal get_video2_settings_uly +/* 0FA080 7F0C5550 01608025 */ move $s0, $t3 +/* 0FA084 7F0C5554 8FAD00A8 */ lw $t5, 0xa8($sp) +/* 0FA088 7F0C5558 8FB90044 */ lw $t9, 0x44($sp) +/* 0FA08C 7F0C555C 02202025 */ move $a0, $s1 +/* 0FA090 7F0C5560 020D2821 */ addu $a1, $s0, $t5 +/* 0FA094 7F0C5564 8F270094 */ lw $a3, 0x94($t9) +/* 0FA098 7F0C5568 AFA00010 */ sw $zero, 0x10($sp) +/* 0FA09C 7F0C556C 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA0A0 7F0C5570 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA0A4 7F0C5574 24460046 */ addiu $a2, $v0, 0x46 +/* 0FA0A8 7F0C5578 10000019 */ b .L7F0C55E0 +/* 0FA0AC 7F0C557C 00408825 */ move $s1, $v0 +.L7F0C5580: +/* 0FA0B0 7F0C5580 8F189F88 */ lw $t8, %lo(player2_player_data + 0x28)($t8) +/* 0FA0B4 7F0C5584 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0FA0B8 7F0C5588 3C098008 */ lui $t1, %hi(player1_player_data) +/* 0FA0BC 7F0C558C 1B000014 */ blez $t8, .L7F0C55E0 +/* 0FA0C0 7F0C5590 000E5080 */ sll $t2, $t6, 2 +/* 0FA0C4 7F0C5594 25299EF0 */ addiu $t1, %lo(player1_player_data) # addiu $t1, $t1, -0x6110 +/* 0FA0C8 7F0C5598 01496021 */ addu $t4, $t2, $t1 +/* 0FA0CC 7F0C559C 0C001145 */ jal get_video2_settings_ulx +/* 0FA0D0 7F0C55A0 AFAC0044 */ sw $t4, 0x44($sp) +/* 0FA0D4 7F0C55A4 00028400 */ sll $s0, $v0, 0x10 +/* 0FA0D8 7F0C55A8 00107C03 */ sra $t7, $s0, 0x10 +/* 0FA0DC 7F0C55AC 0C001149 */ jal get_video2_settings_uly +/* 0FA0E0 7F0C55B0 01E08025 */ move $s0, $t7 +/* 0FA0E4 7F0C55B4 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FA0E8 7F0C55B8 8FAD0044 */ lw $t5, 0x44($sp) +/* 0FA0EC 7F0C55BC 24190003 */ li $t9, 3 +/* 0FA0F0 7F0C55C0 020B2821 */ addu $a1, $s0, $t3 +/* 0FA0F4 7F0C55C4 8DA70094 */ lw $a3, 0x94($t5) +/* 0FA0F8 7F0C55C8 AFB90010 */ sw $t9, 0x10($sp) +/* 0FA0FC 7F0C55CC 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA100 7F0C55D0 02202025 */ move $a0, $s1 +/* 0FA104 7F0C55D4 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA108 7F0C55D8 24460046 */ addiu $a2, $v0, 0x46 +/* 0FA10C 7F0C55DC 00408825 */ move $s1, $v0 +.L7F0C55E0: +/* 0FA110 7F0C55E0 8FB800D4 */ lw $t8, 0xd4($sp) +/* 0FA114 7F0C55E4 24010002 */ li $at, 2 +/* 0FA118 7F0C55E8 3C0D8008 */ lui $t5, %hi(player3_player_data + 0x2C) +/* 0FA11C 7F0C55EC 13010015 */ beq $t8, $at, .L7F0C5644 +/* 0FA120 7F0C55F0 00187080 */ sll $t6, $t8, 2 +/* 0FA124 7F0C55F4 3C0A8008 */ lui $t2, %hi(player1_player_data) +/* 0FA128 7F0C55F8 254A9EF0 */ addiu $t2, %lo(player1_player_data) # addiu $t2, $t2, -0x6110 +/* 0FA12C 7F0C55FC 01CA4821 */ addu $t1, $t6, $t2 +/* 0FA130 7F0C5600 0C001145 */ jal get_video2_settings_ulx +/* 0FA134 7F0C5604 AFA90044 */ sw $t1, 0x44($sp) +/* 0FA138 7F0C5608 00028400 */ sll $s0, $v0, 0x10 +/* 0FA13C 7F0C560C 00106403 */ sra $t4, $s0, 0x10 +/* 0FA140 7F0C5610 0C001149 */ jal get_video2_settings_uly +/* 0FA144 7F0C5614 01808025 */ move $s0, $t4 +/* 0FA148 7F0C5618 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FA14C 7F0C561C 8FAB0044 */ lw $t3, 0x44($sp) +/* 0FA150 7F0C5620 02202025 */ move $a0, $s1 +/* 0FA154 7F0C5624 020F2821 */ addu $a1, $s0, $t7 +/* 0FA158 7F0C5628 8D670104 */ lw $a3, 0x104($t3) +/* 0FA15C 7F0C562C AFA00010 */ sw $zero, 0x10($sp) +/* 0FA160 7F0C5630 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FA164 7F0C5634 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA168 7F0C5638 24460056 */ addiu $a2, $v0, 0x56 +/* 0FA16C 7F0C563C 10000019 */ b .L7F0C56A4 +/* 0FA170 7F0C5640 00408825 */ move $s1, $v0 +.L7F0C5644: +/* 0FA174 7F0C5644 8DAD9FFC */ lw $t5, %lo(player3_player_data + 0x2C)($t5) +/* 0FA178 7F0C5648 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FA17C 7F0C564C 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0FA180 7F0C5650 19A00014 */ blez $t5, .L7F0C56A4 +/* 0FA184 7F0C5654 0019C080 */ sll $t8, $t9, 2 +/* 0FA188 7F0C5658 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0FA18C 7F0C565C 030E5021 */ addu $t2, $t8, $t6 +/* 0FA190 7F0C5660 0C001145 */ jal get_video2_settings_ulx +/* 0FA194 7F0C5664 AFAA0044 */ sw $t2, 0x44($sp) +/* 0FA198 7F0C5668 00028400 */ sll $s0, $v0, 0x10 +/* 0FA19C 7F0C566C 00104C03 */ sra $t1, $s0, 0x10 +/* 0FA1A0 7F0C5670 0C001149 */ jal get_video2_settings_uly +/* 0FA1A4 7F0C5674 01208025 */ move $s0, $t1 +/* 0FA1A8 7F0C5678 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0FA1AC 7F0C567C 8FAF0044 */ lw $t7, 0x44($sp) +/* 0FA1B0 7F0C5680 240B0003 */ li $t3, 3 +/* 0FA1B4 7F0C5684 020C2821 */ addu $a1, $s0, $t4 +/* 0FA1B8 7F0C5688 8DE70104 */ lw $a3, 0x104($t7) +/* 0FA1BC 7F0C568C AFAB0010 */ sw $t3, 0x10($sp) +/* 0FA1C0 7F0C5690 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FA1C4 7F0C5694 02202025 */ move $a0, $s1 +/* 0FA1C8 7F0C5698 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA1CC 7F0C569C 24460056 */ addiu $a2, $v0, 0x56 +/* 0FA1D0 7F0C56A0 00408825 */ move $s1, $v0 +.L7F0C56A4: +/* 0FA1D4 7F0C56A4 8FAD00D0 */ lw $t5, 0xd0($sp) +/* 0FA1D8 7F0C56A8 24010004 */ li $at, 4 +/* 0FA1DC 7F0C56AC 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FA1E0 7F0C56B0 15A10030 */ bne $t5, $at, .L7F0C5774 +/* 0FA1E4 7F0C56B4 24010003 */ li $at, 3 +/* 0FA1E8 7F0C56B8 13210016 */ beq $t9, $at, .L7F0C5714 +/* 0FA1EC 7F0C56BC 3C0B8008 */ lui $t3, %hi(player3_player_data + 0x30) +/* 0FA1F0 7F0C56C0 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0FA1F4 7F0C56C4 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0FA1F8 7F0C56C8 0019C080 */ sll $t8, $t9, 2 +/* 0FA1FC 7F0C56CC 030E5021 */ addu $t2, $t8, $t6 +/* 0FA200 7F0C56D0 0C001145 */ jal get_video2_settings_ulx +/* 0FA204 7F0C56D4 AFAA0044 */ sw $t2, 0x44($sp) +/* 0FA208 7F0C56D8 00028400 */ sll $s0, $v0, 0x10 +/* 0FA20C 7F0C56DC 00104C03 */ sra $t1, $s0, 0x10 +/* 0FA210 7F0C56E0 0C001149 */ jal get_video2_settings_uly +/* 0FA214 7F0C56E4 01208025 */ move $s0, $t1 +/* 0FA218 7F0C56E8 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0FA21C 7F0C56EC 8FAF0044 */ lw $t7, 0x44($sp) +/* 0FA220 7F0C56F0 02202025 */ move $a0, $s1 +/* 0FA224 7F0C56F4 020C2821 */ addu $a1, $s0, $t4 +/* 0FA228 7F0C56F8 8DE70174 */ lw $a3, 0x174($t7) +/* 0FA22C 7F0C56FC AFA00010 */ sw $zero, 0x10($sp) +/* 0FA230 7F0C5700 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA234 7F0C5704 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA238 7F0C5708 24460056 */ addiu $a2, $v0, 0x56 +/* 0FA23C 7F0C570C 10000019 */ b .L7F0C5774 +/* 0FA240 7F0C5710 00408825 */ move $s1, $v0 +.L7F0C5714: +/* 0FA244 7F0C5714 8D6BA070 */ lw $t3, %lo(player4_player_data+0x30)($t3) +/* 0FA248 7F0C5718 8FAD00D4 */ lw $t5, 0xd4($sp) +/* 0FA24C 7F0C571C 3C188008 */ lui $t8, %hi(player1_player_data) +/* 0FA250 7F0C5720 19600014 */ blez $t3, .L7F0C5774 +/* 0FA254 7F0C5724 000DC880 */ sll $t9, $t5, 2 +/* 0FA258 7F0C5728 27189EF0 */ addiu $t8, %lo(player1_player_data) # addiu $t8, $t8, -0x6110 +/* 0FA25C 7F0C572C 03387021 */ addu $t6, $t9, $t8 +/* 0FA260 7F0C5730 0C001145 */ jal get_video2_settings_ulx +/* 0FA264 7F0C5734 AFAE0044 */ sw $t6, 0x44($sp) +/* 0FA268 7F0C5738 00028400 */ sll $s0, $v0, 0x10 +/* 0FA26C 7F0C573C 00105403 */ sra $t2, $s0, 0x10 +/* 0FA270 7F0C5740 0C001149 */ jal get_video2_settings_uly +/* 0FA274 7F0C5744 01408025 */ move $s0, $t2 +/* 0FA278 7F0C5748 8FA900A8 */ lw $t1, 0xa8($sp) +/* 0FA27C 7F0C574C 8FAC0044 */ lw $t4, 0x44($sp) +/* 0FA280 7F0C5750 240F0003 */ li $t7, 3 +/* 0FA284 7F0C5754 02092821 */ addu $a1, $s0, $t1 +/* 0FA288 7F0C5758 8D870174 */ lw $a3, 0x174($t4) +/* 0FA28C 7F0C575C AFAF0010 */ sw $t7, 0x10($sp) +/* 0FA290 7F0C5760 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA294 7F0C5764 02202025 */ move $a0, $s1 +/* 0FA298 7F0C5768 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA29C 7F0C576C 24460056 */ addiu $a2, $v0, 0x56 +/* 0FA2A0 7F0C5770 00408825 */ move $s1, $v0 +.L7F0C5774: +/* 0FA2A4 7F0C5774 3C038008 */ lui $v1, %hi(pPlayer) +/* 0FA2A8 7F0C5778 100000F2 */ b .L7F0C5B44 +/* 0FA2AC 7F0C577C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F0C5780: +/* 0FA2B0 7F0C5780 544000F1 */ bnezl $v0, .L7F0C5B48 +/* 0FA2B4 7F0C5784 8C6F29C8 */ lw $t7, 0x29c8($v1) +/* 0FA2B8 7F0C5788 8FAD00D0 */ lw $t5, 0xd0($sp) +/* 0FA2BC 7F0C578C 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FA2C0 7F0C5790 29A10003 */ slti $at, $t5, 3 +/* 0FA2C4 7F0C5794 1420000A */ bnez $at, .L7F0C57C0 +/* 0FA2C8 7F0C5798 AFAB0074 */ sw $t3, 0x74($sp) +/* 0FA2CC 7F0C579C 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FA2D0 7F0C57A0 8FAA00A8 */ lw $t2, 0xa8($sp) +/* 0FA2D4 7F0C57A4 256EFFF9 */ addiu $t6, $t3, -7 +/* 0FA2D8 7F0C57A8 33380001 */ andi $t8, $t9, 1 +/* 0FA2DC 7F0C57AC 13000003 */ beqz $t8, .L7F0C57BC +/* 0FA2E0 7F0C57B0 25490007 */ addiu $t1, $t2, 7 +/* 0FA2E4 7F0C57B4 10000002 */ b .L7F0C57C0 +/* 0FA2E8 7F0C57B8 AFAE0074 */ sw $t6, 0x74($sp) +.L7F0C57BC: +/* 0FA2EC 7F0C57BC AFA90074 */ sw $t1, 0x74($sp) +.L7F0C57C0: +/* 0FA2F0 7F0C57C0 0FC30776 */ jal get_textptr_for_textID +/* 0FA2F4 7F0C57C4 3404A01F */ li $a0, 40991 +/* 0FA2F8 7F0C57C8 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0FA2FC 7F0C57CC 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FA300 7F0C57D0 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FA304 7F0C57D4 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FA308 7F0C57D8 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA30C 7F0C57DC 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FA310 7F0C57E0 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FA314 7F0C57E4 00403025 */ move $a2, $v0 +/* 0FA318 7F0C57E8 AFA00014 */ sw $zero, 0x14($sp) +/* 0FA31C 7F0C57EC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FA320 7F0C57F0 AFAC0010 */ sw $t4, 0x10($sp) +/* 0FA324 7F0C57F4 0C001145 */ jal get_video2_settings_ulx +/* 0FA328 7F0C57F8 00000000 */ nop +/* 0FA32C 7F0C57FC 8FAF0074 */ lw $t7, 0x74($sp) +/* 0FA330 7F0C5800 8FB90078 */ lw $t9, 0x78($sp) +/* 0FA334 7F0C5804 004F6821 */ addu $t5, $v0, $t7 +/* 0FA338 7F0C5808 0019C043 */ sra $t8, $t9, 1 +/* 0FA33C 7F0C580C 01B82023 */ subu $a0, $t5, $t8 +/* 0FA340 7F0C5810 24840050 */ addiu $a0, $a0, 0x50 +/* 0FA344 7F0C5814 0C001149 */ jal get_video2_settings_uly +/* 0FA348 7F0C5818 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA34C 7F0C581C 8FAB007C */ lw $t3, 0x7c($sp) +/* 0FA350 7F0C5820 000B7043 */ sra $t6, $t3, 1 +/* 0FA354 7F0C5824 004E5023 */ subu $t2, $v0, $t6 +/* 0FA358 7F0C5828 25490025 */ addiu $t1, $t2, 0x25 +/* 0FA35C 7F0C582C 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA360 7F0C5830 AFA900C8 */ sw $t1, 0xc8($sp) +/* 0FA364 7F0C5834 00028400 */ sll $s0, $v0, 0x10 +/* 0FA368 7F0C5838 00106403 */ sra $t4, $s0, 0x10 +/* 0FA36C 7F0C583C 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA370 7F0C5840 01808025 */ move $s0, $t4 +/* 0FA374 7F0C5844 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0FA378 7F0C5848 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 0FA37C 7F0C584C 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0FA380 7F0C5850 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0FA384 7F0C5854 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0FA388 7F0C5858 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0FA38C 7F0C585C AFAD0018 */ sw $t5, 0x18($sp) +/* 0FA390 7F0C5860 02202025 */ move $a0, $s1 +/* 0FA394 7F0C5864 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA398 7F0C5868 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA39C 7F0C586C 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA3A0 7F0C5870 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA3A4 7F0C5874 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA3A8 7F0C5878 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA3AC 7F0C587C AFA00028 */ sw $zero, 0x28($sp) +/* 0FA3B0 7F0C5880 AFB90014 */ sw $t9, 0x14($sp) +/* 0FA3B4 7F0C5884 0FC2B6AF */ jal en_text_write_stuff +/* 0FA3B8 7F0C5888 AFAF0010 */ sw $t7, 0x10($sp) +/* 0FA3BC 7F0C588C 00408825 */ move $s1, $v0 +/* 0FA3C0 7F0C5890 8FA400D4 */ lw $a0, 0xd4($sp) +/* 0FA3C4 7F0C5894 0FC026D4 */ jal getplayerfavoredweapon +/* 0FA3C8 7F0C5898 00002825 */ move $a1, $zero +/* 0FA3CC 7F0C589C 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0FA3D0 7F0C58A0 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0FA3D4 7F0C58A4 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FA3D8 7F0C58A8 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FA3DC 7F0C58AC 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA3E0 7F0C58B0 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FA3E4 7F0C58B4 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FA3E8 7F0C58B8 00403025 */ move $a2, $v0 +/* 0FA3EC 7F0C58BC AFA00014 */ sw $zero, 0x14($sp) +/* 0FA3F0 7F0C58C0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FA3F4 7F0C58C4 AFB80010 */ sw $t8, 0x10($sp) +/* 0FA3F8 7F0C58C8 0C001145 */ jal get_video2_settings_ulx +/* 0FA3FC 7F0C58CC 00000000 */ nop +/* 0FA400 7F0C58D0 8FAB0074 */ lw $t3, 0x74($sp) +/* 0FA404 7F0C58D4 8FAA0078 */ lw $t2, 0x78($sp) +/* 0FA408 7F0C58D8 004B7021 */ addu $t6, $v0, $t3 +/* 0FA40C 7F0C58DC 000A4843 */ sra $t1, $t2, 1 +/* 0FA410 7F0C58E0 01C92023 */ subu $a0, $t6, $t1 +/* 0FA414 7F0C58E4 24840050 */ addiu $a0, $a0, 0x50 +/* 0FA418 7F0C58E8 0C001149 */ jal get_video2_settings_uly +/* 0FA41C 7F0C58EC AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA420 7F0C58F0 3C0F8005 */ lui $t7, %hi(j_text_trigger) +/* 0FA424 7F0C58F4 8DEF84D0 */ lw $t7, %lo(j_text_trigger)($t7) +/* 0FA428 7F0C58F8 00021C00 */ sll $v1, $v0, 0x10 +/* 0FA42C 7F0C58FC 00036403 */ sra $t4, $v1, 0x10 +/* 0FA430 7F0C5900 11E00003 */ beqz $t7, .L7F0C5910 +/* 0FA434 7F0C5904 01801825 */ move $v1, $t4 +/* 0FA438 7F0C5908 10000002 */ b .L7F0C5914 +/* 0FA43C 7F0C590C 24040004 */ li $a0, 4 +.L7F0C5910: +/* 0FA440 7F0C5910 00002025 */ move $a0, $zero +.L7F0C5914: +/* 0FA444 7F0C5914 8FAD007C */ lw $t5, 0x7c($sp) +/* 0FA448 7F0C5918 0083C821 */ addu $t9, $a0, $v1 +/* 0FA44C 7F0C591C 000DC043 */ sra $t8, $t5, 1 +/* 0FA450 7F0C5920 03385823 */ subu $t3, $t9, $t8 +/* 0FA454 7F0C5924 256A0035 */ addiu $t2, $t3, 0x35 +/* 0FA458 7F0C5928 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA45C 7F0C592C AFAA00C8 */ sw $t2, 0xc8($sp) +/* 0FA460 7F0C5930 00028400 */ sll $s0, $v0, 0x10 +/* 0FA464 7F0C5934 00107403 */ sra $t6, $s0, 0x10 +/* 0FA468 7F0C5938 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA46C 7F0C593C 01C08025 */ move $s0, $t6 +/* 0FA470 7F0C5940 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) +/* 0FA474 7F0C5944 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0FA478 7F0C5948 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FA47C 7F0C594C 8D290EB0 */ lw $t1, %lo(ptrSecondFontTableSmall)($t1) +/* 0FA480 7F0C5950 3C0F00FF */ lui $t7, (0x00FF00B0 >> 16) # lui $t7, 0xff +/* 0FA484 7F0C5954 35EF00B0 */ ori $t7, (0x00FF00B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0FA488 7F0C5958 AFAF0018 */ sw $t7, 0x18($sp) +/* 0FA48C 7F0C595C 02202025 */ move $a0, $s1 +/* 0FA490 7F0C5960 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA494 7F0C5964 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA498 7F0C5968 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA49C 7F0C596C AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA4A0 7F0C5970 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA4A4 7F0C5974 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA4A8 7F0C5978 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA4AC 7F0C597C AFAC0014 */ sw $t4, 0x14($sp) +/* 0FA4B0 7F0C5980 0FC2B6AF */ jal en_text_write_stuff +/* 0FA4B4 7F0C5984 AFA90010 */ sw $t1, 0x10($sp) +/* 0FA4B8 7F0C5988 3C038008 */ lui $v1, %hi(pPlayer) +/* 0FA4BC 7F0C598C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0FA4C0 7F0C5990 00408825 */ move $s1, $v0 +/* 0FA4C4 7F0C5994 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FA4C8 7F0C5998 8C682A10 */ lw $t0, 0x2a10($v1) +/* 0FA4CC 7F0C599C 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FA4D0 7F0C59A0 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FA4D4 7F0C59A4 11000031 */ beqz $t0, .L7F0C5A6C +/* 0FA4D8 7F0C59A8 01003025 */ move $a2, $t0 +/* 0FA4DC 7F0C59AC 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) +/* 0FA4E0 7F0C59B0 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FA4E4 7F0C59B4 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA4E8 7F0C59B8 AFA00014 */ sw $zero, 0x14($sp) +/* 0FA4EC 7F0C59BC AFA800A4 */ sw $t0, 0xa4($sp) +/* 0FA4F0 7F0C59C0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FA4F4 7F0C59C4 AFAD0010 */ sw $t5, 0x10($sp) +/* 0FA4F8 7F0C59C8 0C001145 */ jal get_video2_settings_ulx +/* 0FA4FC 7F0C59CC 00000000 */ nop +/* 0FA500 7F0C59D0 8FB90074 */ lw $t9, 0x74($sp) +/* 0FA504 7F0C59D4 8FAB0078 */ lw $t3, 0x78($sp) +/* 0FA508 7F0C59D8 0059C021 */ addu $t8, $v0, $t9 +/* 0FA50C 7F0C59DC 000B5043 */ sra $t2, $t3, 1 +/* 0FA510 7F0C59E0 030A2023 */ subu $a0, $t8, $t2 +/* 0FA514 7F0C59E4 24840050 */ addiu $a0, $a0, 0x50 +/* 0FA518 7F0C59E8 0C001149 */ jal get_video2_settings_uly +/* 0FA51C 7F0C59EC AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA520 7F0C59F0 8FAE007C */ lw $t6, 0x7c($sp) +/* 0FA524 7F0C59F4 000E4843 */ sra $t1, $t6, 1 +/* 0FA528 7F0C59F8 00496023 */ subu $t4, $v0, $t1 +/* 0FA52C 7F0C59FC 258F004B */ addiu $t7, $t4, 0x4b +/* 0FA530 7F0C5A00 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA534 7F0C5A04 AFAF00C8 */ sw $t7, 0xc8($sp) +/* 0FA538 7F0C5A08 00028400 */ sll $s0, $v0, 0x10 +/* 0FA53C 7F0C5A0C 00106C03 */ sra $t5, $s0, 0x10 +/* 0FA540 7F0C5A10 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA544 7F0C5A14 01A08025 */ move $s0, $t5 +/* 0FA548 7F0C5A18 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) +/* 0FA54C 7F0C5A1C 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) +/* 0FA550 7F0C5A20 8D6B0EAC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0FA554 7F0C5A24 8F390EB0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0FA558 7F0C5A28 3C1800FF */ lui $t8, (0x00FF00B0 >> 16) # lui $t8, 0xff +/* 0FA55C 7F0C5A2C 371800B0 */ ori $t8, (0x00FF00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0FA560 7F0C5A30 AFB80018 */ sw $t8, 0x18($sp) +/* 0FA564 7F0C5A34 02202025 */ move $a0, $s1 +/* 0FA568 7F0C5A38 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA56C 7F0C5A3C 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA570 7F0C5A40 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA574 7F0C5A44 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA578 7F0C5A48 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA57C 7F0C5A4C AFA00024 */ sw $zero, 0x24($sp) +/* 0FA580 7F0C5A50 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA584 7F0C5A54 AFAB0014 */ sw $t3, 0x14($sp) +/* 0FA588 7F0C5A58 0FC2B6AF */ jal en_text_write_stuff +/* 0FA58C 7F0C5A5C AFB90010 */ sw $t9, 0x10($sp) +/* 0FA590 7F0C5A60 3C038008 */ lui $v1, %hi(pPlayer) +/* 0FA594 7F0C5A64 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0FA598 7F0C5A68 00408825 */ move $s1, $v0 +.L7F0C5A6C: +/* 0FA59C 7F0C5A6C 8C622A14 */ lw $v0, 0x2a14($v1) +/* 0FA5A0 7F0C5A70 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FA5A4 7F0C5A74 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FA5A8 7F0C5A78 10400032 */ beqz $v0, .L7F0C5B44 +/* 0FA5AC 7F0C5A7C 00403025 */ move $a2, $v0 +/* 0FA5B0 7F0C5A80 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) +/* 0FA5B4 7F0C5A84 8D4A0EAC */ lw $t2, %lo(ptrFirstFontTableSmall)($t2) +/* 0FA5B8 7F0C5A88 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FA5BC 7F0C5A8C 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA5C0 7F0C5A90 AFA00014 */ sw $zero, 0x14($sp) +/* 0FA5C4 7F0C5A94 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FA5C8 7F0C5A98 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FA5CC 7F0C5A9C AFAA0010 */ sw $t2, 0x10($sp) +/* 0FA5D0 7F0C5AA0 0C001145 */ jal get_video2_settings_ulx +/* 0FA5D4 7F0C5AA4 00000000 */ nop +/* 0FA5D8 7F0C5AA8 8FAE0074 */ lw $t6, 0x74($sp) +/* 0FA5DC 7F0C5AAC 8FAC0078 */ lw $t4, 0x78($sp) +/* 0FA5E0 7F0C5AB0 004E4821 */ addu $t1, $v0, $t6 +/* 0FA5E4 7F0C5AB4 000C7843 */ sra $t7, $t4, 1 +/* 0FA5E8 7F0C5AB8 012F2023 */ subu $a0, $t1, $t7 +/* 0FA5EC 7F0C5ABC 24840050 */ addiu $a0, $a0, 0x50 +/* 0FA5F0 7F0C5AC0 0C001149 */ jal get_video2_settings_uly +/* 0FA5F4 7F0C5AC4 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA5F8 7F0C5AC8 8FAD007C */ lw $t5, 0x7c($sp) +/* 0FA5FC 7F0C5ACC 000DC843 */ sra $t9, $t5, 1 +/* 0FA600 7F0C5AD0 00595823 */ subu $t3, $v0, $t9 +/* 0FA604 7F0C5AD4 25780058 */ addiu $t8, $t3, 0x58 +/* 0FA608 7F0C5AD8 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA60C 7F0C5ADC AFB800C8 */ sw $t8, 0xc8($sp) +/* 0FA610 7F0C5AE0 00028400 */ sll $s0, $v0, 0x10 +/* 0FA614 7F0C5AE4 00105403 */ sra $t2, $s0, 0x10 +/* 0FA618 7F0C5AE8 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA61C 7F0C5AEC 01408025 */ move $s0, $t2 +/* 0FA620 7F0C5AF0 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) +/* 0FA624 7F0C5AF4 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0FA628 7F0C5AF8 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FA62C 7F0C5AFC 8DCE0EB0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0FA630 7F0C5B00 3C0900FF */ lui $t1, (0x00FF00B0 >> 16) # lui $t1, 0xff +/* 0FA634 7F0C5B04 352900B0 */ ori $t1, (0x00FF00B0 & 0xFFFF) # ori $t1, $t1, 0xb0 +/* 0FA638 7F0C5B08 AFA90018 */ sw $t1, 0x18($sp) +/* 0FA63C 7F0C5B0C 02202025 */ move $a0, $s1 +/* 0FA640 7F0C5B10 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA644 7F0C5B14 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA648 7F0C5B18 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA64C 7F0C5B1C AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA650 7F0C5B20 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA654 7F0C5B24 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA658 7F0C5B28 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA65C 7F0C5B2C AFAC0014 */ sw $t4, 0x14($sp) +/* 0FA660 7F0C5B30 0FC2B6AF */ jal en_text_write_stuff +/* 0FA664 7F0C5B34 AFAE0010 */ sw $t6, 0x10($sp) +/* 0FA668 7F0C5B38 3C038008 */ lui $v1, %hi(pPlayer) +/* 0FA66C 7F0C5B3C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0FA670 7F0C5B40 00408825 */ move $s1, $v0 +.L7F0C5B44: +/* 0FA674 7F0C5B44 8C6F29C8 */ lw $t7, 0x29c8($v1) +.L7F0C5B48: +/* 0FA678 7F0C5B48 24010006 */ li $at, 6 +/* 0FA67C 7F0C5B4C 15E100B0 */ bne $t7, $at, .L7F0C5E10 +/* 0FA680 7F0C5B50 00000000 */ nop +/* 0FA684 7F0C5B54 0FC30776 */ jal get_textptr_for_textID +/* 0FA688 7F0C5B58 3404A020 */ li $a0, 40992 +/* 0FA68C 7F0C5B5C 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) +/* 0FA690 7F0C5B60 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FA694 7F0C5B64 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FA698 7F0C5B68 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FA69C 7F0C5B6C 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA6A0 7F0C5B70 27A400BC */ addiu $a0, $sp, 0xbc +/* 0FA6A4 7F0C5B74 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0FA6A8 7F0C5B78 00403025 */ move $a2, $v0 +/* 0FA6AC 7F0C5B7C AFA00014 */ sw $zero, 0x14($sp) +/* 0FA6B0 7F0C5B80 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FA6B4 7F0C5B84 AFAD0010 */ sw $t5, 0x10($sp) +/* 0FA6B8 7F0C5B88 0C001145 */ jal get_video2_settings_ulx +/* 0FA6BC 7F0C5B8C 00000000 */ nop +/* 0FA6C0 7F0C5B90 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0FA6C4 7F0C5B94 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0FA6C8 7F0C5B98 00595821 */ addu $t3, $v0, $t9 +/* 0FA6CC 7F0C5B9C 00185043 */ sra $t2, $t8, 1 +/* 0FA6D0 7F0C5BA0 016A2023 */ subu $a0, $t3, $t2 +/* 0FA6D4 7F0C5BA4 24840036 */ addiu $a0, $a0, 0x36 +/* 0FA6D8 7F0C5BA8 0C001149 */ jal get_video2_settings_uly +/* 0FA6DC 7F0C5BAC AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA6E0 7F0C5BB0 8FAE00BC */ lw $t6, 0xbc($sp) +/* 0FA6E4 7F0C5BB4 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0FA6E8 7F0C5BB8 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0FA6EC 7F0C5BBC 000E6043 */ sra $t4, $t6, 1 +/* 0FA6F0 7F0C5BC0 004C4823 */ subu $t1, $v0, $t4 +/* 0FA6F4 7F0C5BC4 252F0036 */ addiu $t7, $t1, 0x36 +/* 0FA6F8 7F0C5BC8 AFAF00C8 */ sw $t7, 0xc8($sp) +/* 0FA6FC 7F0C5BCC 8DB929CC */ lw $t9, 0x29cc($t5) +/* 0FA700 7F0C5BD0 1720001E */ bnez $t9, .L7F0C5C4C +/* 0FA704 7F0C5BD4 00000000 */ nop +/* 0FA708 7F0C5BD8 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA70C 7F0C5BDC 00000000 */ nop +/* 0FA710 7F0C5BE0 00028400 */ sll $s0, $v0, 0x10 +/* 0FA714 7F0C5BE4 0010C403 */ sra $t8, $s0, 0x10 +/* 0FA718 7F0C5BE8 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA71C 7F0C5BEC 03008025 */ move $s0, $t8 +/* 0FA720 7F0C5BF0 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableSmall) +/* 0FA724 7F0C5BF4 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) +/* 0FA728 7F0C5BF8 8D4A0EAC */ lw $t2, %lo(ptrFirstFontTableSmall)($t2) +/* 0FA72C 7F0C5BFC 8D6B0EB0 */ lw $t3, %lo(ptrSecondFontTableSmall)($t3) +/* 0FA730 7F0C5C00 3C0EA0FF */ lui $t6, (0xA0FFA0F0 >> 16) # lui $t6, 0xa0ff +/* 0FA734 7F0C5C04 3C0C0070 */ lui $t4, (0x007000A0 >> 16) # lui $t4, 0x70 +/* 0FA738 7F0C5C08 358C00A0 */ ori $t4, (0x007000A0 & 0xFFFF) # ori $t4, $t4, 0xa0 +/* 0FA73C 7F0C5C0C 35CEA0F0 */ ori $t6, (0xA0FFA0F0 & 0xFFFF) # ori $t6, $t6, 0xa0f0 +/* 0FA740 7F0C5C10 AFAE0018 */ sw $t6, 0x18($sp) +/* 0FA744 7F0C5C14 AFAC001C */ sw $t4, 0x1c($sp) +/* 0FA748 7F0C5C18 02202025 */ move $a0, $s1 +/* 0FA74C 7F0C5C1C 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA750 7F0C5C20 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA754 7F0C5C24 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA758 7F0C5C28 AFB00020 */ sw $s0, 0x20($sp) +/* 0FA75C 7F0C5C2C AFA20024 */ sw $v0, 0x24($sp) +/* 0FA760 7F0C5C30 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA764 7F0C5C34 AFA0002C */ sw $zero, 0x2c($sp) +/* 0FA768 7F0C5C38 AFAA0014 */ sw $t2, 0x14($sp) +/* 0FA76C 7F0C5C3C 0FC2B9BB */ jal jp_text_write_stuff +/* 0FA770 7F0C5C40 AFAB0010 */ sw $t3, 0x10($sp) +/* 0FA774 7F0C5C44 1000001A */ b .L7F0C5CB0 +/* 0FA778 7F0C5C48 00408825 */ move $s1, $v0 +.L7F0C5C4C: +/* 0FA77C 7F0C5C4C 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA780 7F0C5C50 00000000 */ nop +/* 0FA784 7F0C5C54 00028400 */ sll $s0, $v0, 0x10 +/* 0FA788 7F0C5C58 00104C03 */ sra $t1, $s0, 0x10 +/* 0FA78C 7F0C5C5C 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA790 7F0C5C60 01208025 */ move $s0, $t1 +/* 0FA794 7F0C5C64 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0FA798 7F0C5C68 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) +/* 0FA79C 7F0C5C6C 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FA7A0 7F0C5C70 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0FA7A4 7F0C5C74 3C1900FF */ lui $t9, (0x00FF00B0 >> 16) # lui $t9, 0xff +/* 0FA7A8 7F0C5C78 373900B0 */ ori $t9, (0x00FF00B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0FA7AC 7F0C5C7C AFB90018 */ sw $t9, 0x18($sp) +/* 0FA7B0 7F0C5C80 02202025 */ move $a0, $s1 +/* 0FA7B4 7F0C5C84 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA7B8 7F0C5C88 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA7BC 7F0C5C8C 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA7C0 7F0C5C90 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA7C4 7F0C5C94 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA7C8 7F0C5C98 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA7CC 7F0C5C9C AFA00028 */ sw $zero, 0x28($sp) +/* 0FA7D0 7F0C5CA0 AFAD0014 */ sw $t5, 0x14($sp) +/* 0FA7D4 7F0C5CA4 0FC2B6AF */ jal en_text_write_stuff +/* 0FA7D8 7F0C5CA8 AFAF0010 */ sw $t7, 0x10($sp) +/* 0FA7DC 7F0C5CAC 00408825 */ move $s1, $v0 +.L7F0C5CB0: +/* 0FA7E0 7F0C5CB0 0FC30776 */ jal get_textptr_for_textID +/* 0FA7E4 7F0C5CB4 3404A021 */ li $a0, 40993 +/* 0FA7E8 7F0C5CB8 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0FA7EC 7F0C5CBC 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0FA7F0 7F0C5CC0 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FA7F4 7F0C5CC4 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FA7F8 7F0C5CC8 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA7FC 7F0C5CCC 27A400BC */ addiu $a0, $sp, 0xbc +/* 0FA800 7F0C5CD0 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0FA804 7F0C5CD4 00403025 */ move $a2, $v0 +/* 0FA808 7F0C5CD8 AFA00014 */ sw $zero, 0x14($sp) +/* 0FA80C 7F0C5CDC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FA810 7F0C5CE0 AFB80010 */ sw $t8, 0x10($sp) +/* 0FA814 7F0C5CE4 0C001145 */ jal get_video2_settings_ulx +/* 0FA818 7F0C5CE8 00000000 */ nop +/* 0FA81C 7F0C5CEC 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FA820 7F0C5CF0 8FAE00C0 */ lw $t6, 0xc0($sp) +/* 0FA824 7F0C5CF4 004B5021 */ addu $t2, $v0, $t3 +/* 0FA828 7F0C5CF8 000E6043 */ sra $t4, $t6, 1 +/* 0FA82C 7F0C5CFC 014C2023 */ subu $a0, $t2, $t4 +/* 0FA830 7F0C5D00 24840068 */ addiu $a0, $a0, 0x68 +/* 0FA834 7F0C5D04 0C001149 */ jal get_video2_settings_uly +/* 0FA838 7F0C5D08 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA83C 7F0C5D0C 8FA900BC */ lw $t1, 0xbc($sp) +/* 0FA840 7F0C5D10 3C188008 */ lui $t8, %hi(pPlayer) +/* 0FA844 7F0C5D14 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0FA848 7F0C5D18 00097843 */ sra $t7, $t1, 1 +/* 0FA84C 7F0C5D1C 004F6823 */ subu $t5, $v0, $t7 +/* 0FA850 7F0C5D20 25B90036 */ addiu $t9, $t5, 0x36 +/* 0FA854 7F0C5D24 AFB900C8 */ sw $t9, 0xc8($sp) +/* 0FA858 7F0C5D28 8F0B29CC */ lw $t3, 0x29cc($t8) +/* 0FA85C 7F0C5D2C 24010001 */ li $at, 1 +/* 0FA860 7F0C5D30 1561001E */ bne $t3, $at, .L7F0C5DAC +/* 0FA864 7F0C5D34 00000000 */ nop +/* 0FA868 7F0C5D38 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA86C 7F0C5D3C 00000000 */ nop +/* 0FA870 7F0C5D40 00028400 */ sll $s0, $v0, 0x10 +/* 0FA874 7F0C5D44 00107403 */ sra $t6, $s0, 0x10 +/* 0FA878 7F0C5D48 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA87C 7F0C5D4C 01C08025 */ move $s0, $t6 +/* 0FA880 7F0C5D50 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) +/* 0FA884 7F0C5D54 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0FA888 7F0C5D58 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FA88C 7F0C5D5C 8D4A0EB0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0FA890 7F0C5D60 3C09A0FF */ lui $t1, (0xA0FFA0F0 >> 16) # lui $t1, 0xa0ff +/* 0FA894 7F0C5D64 3C0F0070 */ lui $t7, (0x007000A0 >> 16) # lui $t7, 0x70 +/* 0FA898 7F0C5D68 35EF00A0 */ ori $t7, (0x007000A0 & 0xFFFF) # ori $t7, $t7, 0xa0 +/* 0FA89C 7F0C5D6C 3529A0F0 */ ori $t1, (0xA0FFA0F0 & 0xFFFF) # ori $t1, $t1, 0xa0f0 +/* 0FA8A0 7F0C5D70 AFA90018 */ sw $t1, 0x18($sp) +/* 0FA8A4 7F0C5D74 AFAF001C */ sw $t7, 0x1c($sp) +/* 0FA8A8 7F0C5D78 02202025 */ move $a0, $s1 +/* 0FA8AC 7F0C5D7C 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA8B0 7F0C5D80 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA8B4 7F0C5D84 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA8B8 7F0C5D88 AFB00020 */ sw $s0, 0x20($sp) +/* 0FA8BC 7F0C5D8C AFA20024 */ sw $v0, 0x24($sp) +/* 0FA8C0 7F0C5D90 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA8C4 7F0C5D94 AFA0002C */ sw $zero, 0x2c($sp) +/* 0FA8C8 7F0C5D98 AFAC0014 */ sw $t4, 0x14($sp) +/* 0FA8CC 7F0C5D9C 0FC2B9BB */ jal jp_text_write_stuff +/* 0FA8D0 7F0C5DA0 AFAA0010 */ sw $t2, 0x10($sp) +/* 0FA8D4 7F0C5DA4 1000001A */ b .L7F0C5E10 +/* 0FA8D8 7F0C5DA8 00408825 */ move $s1, $v0 +.L7F0C5DAC: +/* 0FA8DC 7F0C5DAC 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA8E0 7F0C5DB0 00000000 */ nop +/* 0FA8E4 7F0C5DB4 00028400 */ sll $s0, $v0, 0x10 +/* 0FA8E8 7F0C5DB8 00106C03 */ sra $t5, $s0, 0x10 +/* 0FA8EC 7F0C5DBC 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA8F0 7F0C5DC0 01A08025 */ move $s0, $t5 +/* 0FA8F4 7F0C5DC4 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) +/* 0FA8F8 7F0C5DC8 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0FA8FC 7F0C5DCC 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0FA900 7F0C5DD0 8F390EB0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0FA904 7F0C5DD4 3C0B00FF */ lui $t3, (0x00FF00B0 >> 16) # lui $t3, 0xff +/* 0FA908 7F0C5DD8 356B00B0 */ ori $t3, (0x00FF00B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0FA90C 7F0C5DDC AFAB0018 */ sw $t3, 0x18($sp) +/* 0FA910 7F0C5DE0 02202025 */ move $a0, $s1 +/* 0FA914 7F0C5DE4 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA918 7F0C5DE8 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA91C 7F0C5DEC 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA920 7F0C5DF0 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA924 7F0C5DF4 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA928 7F0C5DF8 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA92C 7F0C5DFC AFA00028 */ sw $zero, 0x28($sp) +/* 0FA930 7F0C5E00 AFB80014 */ sw $t8, 0x14($sp) +/* 0FA934 7F0C5E04 0FC2B6AF */ jal en_text_write_stuff +/* 0FA938 7F0C5E08 AFB90010 */ sw $t9, 0x10($sp) +/* 0FA93C 7F0C5E0C 00408825 */ move $s1, $v0 +.L7F0C5E10: +/* 0FA940 7F0C5E10 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0FA944 7F0C5E14 02202025 */ move $a0, $s1 +/* 0FA948 7F0C5E18 10000085 */ b .L7F0C6030 +/* 0FA94C 7F0C5E1C 00408825 */ move $s1, $v0 +/* 0FA950 7F0C5E20 8C6E00D8 */ lw $t6, 0xd8($v1) +.L7F0C5E24: +/* 0FA954 7F0C5E24 51C00083 */ beql $t6, $zero, .L7F0C6034 +/* 0FA958 7F0C5E28 02201025 */ move $v0, $s1 +/* 0FA95C 7F0C5E2C 8C6A0428 */ lw $t2, 0x428($v1) +/* 0FA960 7F0C5E30 51400080 */ beql $t2, $zero, .L7F0C6034 +/* 0FA964 7F0C5E34 02201025 */ move $v0, $s1 +/* 0FA968 7F0C5E38 8C6C0424 */ lw $t4, 0x424($v1) +/* 0FA96C 7F0C5E3C 3C098009 */ lui $t1, %hi(stop_play_flag) +/* 0FA970 7F0C5E40 5180007C */ beql $t4, $zero, .L7F0C6034 +/* 0FA974 7F0C5E44 02201025 */ move $v0, $s1 +/* 0FA978 7F0C5E48 8D29C700 */ lw $t1, %lo(stop_play_flag)($t1) +/* 0FA97C 7F0C5E4C 3C0F8009 */ lui $t7, %hi(is_gameover_flag) +/* 0FA980 7F0C5E50 55200078 */ bnezl $t1, .L7F0C6034 +/* 0FA984 7F0C5E54 02201025 */ move $v0, $s1 +/* 0FA988 7F0C5E58 8DEFC704 */ lw $t7, %lo(is_gameover_flag)($t7) +/* 0FA98C 7F0C5E5C 00002025 */ move $a0, $zero +/* 0FA990 7F0C5E60 55E00074 */ bnezl $t7, .L7F0C6034 +/* 0FA994 7F0C5E64 02201025 */ move $v0, $s1 +/* 0FA998 7F0C5E68 18400028 */ blez $v0, .L7F0C5F0C +/* 0FA99C 7F0C5E6C 00002825 */ move $a1, $zero +/* 0FA9A0 7F0C5E70 30470003 */ andi $a3, $v0, 3 +/* 0FA9A4 7F0C5E74 10E00011 */ beqz $a3, .L7F0C5EBC +/* 0FA9A8 7F0C5E78 00E03025 */ move $a2, $a3 +/* 0FA9AC 7F0C5E7C 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FA9B0 7F0C5E80 000068C0 */ sll $t5, $zero, 3 +/* 0FA9B4 7F0C5E84 01A06823 */ subu $t5, $t5, $zero +/* 0FA9B8 7F0C5E88 000D6900 */ sll $t5, $t5, 4 +/* 0FA9BC 7F0C5E8C 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0FA9C0 7F0C5E90 0019C080 */ sll $t8, $t9, 2 +/* 0FA9C4 7F0C5E94 01B85821 */ addu $t3, $t5, $t8 +/* 0FA9C8 7F0C5E98 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0FA9CC 7F0C5E9C 016E1821 */ addu $v1, $t3, $t6 +.L7F0C5EA0: +/* 0FA9D0 7F0C5EA0 8C6A0024 */ lw $t2, 0x24($v1) +/* 0FA9D4 7F0C5EA4 24A50001 */ addiu $a1, $a1, 1 +/* 0FA9D8 7F0C5EA8 24630070 */ addiu $v1, $v1, 0x70 +/* 0FA9DC 7F0C5EAC 14C5FFFC */ bne $a2, $a1, .L7F0C5EA0 +/* 0FA9E0 7F0C5EB0 008A2021 */ addu $a0, $a0, $t2 +/* 0FA9E4 7F0C5EB4 10A20015 */ beq $a1, $v0, .L7F0C5F0C +/* 0FA9E8 7F0C5EB8 00000000 */ nop +.L7F0C5EBC: +/* 0FA9EC 7F0C5EBC 8FA900D4 */ lw $t1, 0xd4($sp) +/* 0FA9F0 7F0C5EC0 000560C0 */ sll $t4, $a1, 3 +/* 0FA9F4 7F0C5EC4 01856023 */ subu $t4, $t4, $a1 +/* 0FA9F8 7F0C5EC8 000C6100 */ sll $t4, $t4, 4 +/* 0FA9FC 7F0C5ECC 3C0D8008 */ lui $t5, %hi(player1_player_data) +/* 0FAA00 7F0C5ED0 00097880 */ sll $t7, $t1, 2 +/* 0FAA04 7F0C5ED4 018FC821 */ addu $t9, $t4, $t7 +/* 0FAA08 7F0C5ED8 25AD9EF0 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x6110 +/* 0FAA0C 7F0C5EDC 032D1821 */ addu $v1, $t9, $t5 +.L7F0C5EE0: +/* 0FAA10 7F0C5EE0 8C780024 */ lw $t8, 0x24($v1) +/* 0FAA14 7F0C5EE4 8C6B0094 */ lw $t3, 0x94($v1) +/* 0FAA18 7F0C5EE8 8C6E0104 */ lw $t6, 0x104($v1) +/* 0FAA1C 7F0C5EEC 00982021 */ addu $a0, $a0, $t8 +/* 0FAA20 7F0C5EF0 8C6A0174 */ lw $t2, 0x174($v1) +/* 0FAA24 7F0C5EF4 008B2021 */ addu $a0, $a0, $t3 +/* 0FAA28 7F0C5EF8 24A50004 */ addiu $a1, $a1, 4 +/* 0FAA2C 7F0C5EFC 008E2021 */ addu $a0, $a0, $t6 +/* 0FAA30 7F0C5F00 246301C0 */ addiu $v1, $v1, 0x1c0 +/* 0FAA34 7F0C5F04 14A8FFF6 */ bne $a1, $t0, .L7F0C5EE0 +/* 0FAA38 7F0C5F08 008A2021 */ addu $a0, $a0, $t2 +.L7F0C5F0C: +/* 0FAA3C 7F0C5F0C 0FC051D6 */ jal get_scenario +/* 0FAA40 7F0C5F10 AFA40058 */ sw $a0, 0x58($sp) +/* 0FAA44 7F0C5F14 24010001 */ li $at, 1 +/* 0FAA48 7F0C5F18 14410004 */ bne $v0, $at, .L7F0C5F2C +/* 0FAA4C 7F0C5F1C 8FA40058 */ lw $a0, 0x58($sp) +/* 0FAA50 7F0C5F20 28810002 */ slti $at, $a0, 2 +/* 0FAA54 7F0C5F24 50200043 */ beql $at, $zero, .L7F0C6034 +/* 0FAA58 7F0C5F28 02201025 */ move $v0, $s1 +.L7F0C5F2C: +/* 0FAA5C 7F0C5F2C 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 0FAA60 7F0C5F30 02202025 */ move $a0, $s1 +/* 0FAA64 7F0C5F34 0FC2B366 */ jal microcode_constructor +/* 0FAA68 7F0C5F38 00402025 */ move $a0, $v0 +/* 0FAA6C 7F0C5F3C 00408825 */ move $s1, $v0 +/* 0FAA70 7F0C5F40 0FC30776 */ jal get_textptr_for_textID +/* 0FAA74 7F0C5F44 3404A022 */ li $a0, 40994 +/* 0FAA78 7F0C5F48 3C098004 */ lui $t1, %hi(ptrFirstFontTableSmall) +/* 0FAA7C 7F0C5F4C 8D290EAC */ lw $t1, %lo(ptrFirstFontTableSmall)($t1) +/* 0FAA80 7F0C5F50 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FAA84 7F0C5F54 AFA20060 */ sw $v0, 0x60($sp) +/* 0FAA88 7F0C5F58 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FAA8C 7F0C5F5C 27A40064 */ addiu $a0, $sp, 0x64 +/* 0FAA90 7F0C5F60 27A50068 */ addiu $a1, $sp, 0x68 +/* 0FAA94 7F0C5F64 00403025 */ move $a2, $v0 +/* 0FAA98 7F0C5F68 AFA00014 */ sw $zero, 0x14($sp) +/* 0FAA9C 7F0C5F6C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FAAA0 7F0C5F70 AFA90010 */ sw $t1, 0x10($sp) +/* 0FAAA4 7F0C5F74 0C001145 */ jal get_video2_settings_ulx +/* 0FAAA8 7F0C5F78 00000000 */ nop +/* 0FAAAC 7F0C5F7C 0C001127 */ jal get_video2_settings_width +/* 0FAAB0 7F0C5F80 A7A20056 */ sh $v0, 0x56($sp) +/* 0FAAB4 7F0C5F84 87A30056 */ lh $v1, 0x56($sp) +/* 0FAAB8 7F0C5F88 8FAD0068 */ lw $t5, 0x68($sp) +/* 0FAABC 7F0C5F8C 00027843 */ sra $t7, $v0, 1 +/* 0FAAC0 7F0C5F90 01E3C821 */ addu $t9, $t7, $v1 +/* 0FAAC4 7F0C5F94 000DC043 */ sra $t8, $t5, 1 +/* 0FAAC8 7F0C5F98 03385823 */ subu $t3, $t9, $t8 +/* 0FAACC 7F0C5F9C 0C001149 */ jal get_video2_settings_uly +/* 0FAAD0 7F0C5FA0 AFAB0070 */ sw $t3, 0x70($sp) +/* 0FAAD4 7F0C5FA4 0C00112B */ jal get_video2_settings_height +/* 0FAAD8 7F0C5FA8 A7A20056 */ sh $v0, 0x56($sp) +/* 0FAADC 7F0C5FAC 87A30056 */ lh $v1, 0x56($sp) +/* 0FAAE0 7F0C5FB0 8FAC0064 */ lw $t4, 0x64($sp) +/* 0FAAE4 7F0C5FB4 00025043 */ sra $t2, $v0, 1 +/* 0FAAE8 7F0C5FB8 01434821 */ addu $t1, $t2, $v1 +/* 0FAAEC 7F0C5FBC 000C7843 */ sra $t7, $t4, 1 +/* 0FAAF0 7F0C5FC0 012F6823 */ subu $t5, $t1, $t7 +/* 0FAAF4 7F0C5FC4 0C001107 */ jal get_video2_settings_txtClipW +/* 0FAAF8 7F0C5FC8 AFAD006C */ sw $t5, 0x6c($sp) +/* 0FAAFC 7F0C5FCC 00028400 */ sll $s0, $v0, 0x10 +/* 0FAB00 7F0C5FD0 0010CC03 */ sra $t9, $s0, 0x10 +/* 0FAB04 7F0C5FD4 0C00110B */ jal get_video2_settings_txtClipH +/* 0FAB08 7F0C5FD8 03208025 */ move $s0, $t9 +/* 0FAB0C 7F0C5FDC 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) +/* 0FAB10 7F0C5FE0 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) +/* 0FAB14 7F0C5FE4 8D6B0EAC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0FAB18 7F0C5FE8 8F180EB0 */ lw $t8, %lo(ptrSecondFontTableSmall)($t8) +/* 0FAB1C 7F0C5FEC 3C0E00FF */ lui $t6, (0x00FF00B0 >> 16) # lui $t6, 0xff +/* 0FAB20 7F0C5FF0 35CE00B0 */ ori $t6, (0x00FF00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0FAB24 7F0C5FF4 AFAE0018 */ sw $t6, 0x18($sp) +/* 0FAB28 7F0C5FF8 02202025 */ move $a0, $s1 +/* 0FAB2C 7F0C5FFC 27A50070 */ addiu $a1, $sp, 0x70 +/* 0FAB30 7F0C6000 27A6006C */ addiu $a2, $sp, 0x6c +/* 0FAB34 7F0C6004 8FA70060 */ lw $a3, 0x60($sp) +/* 0FAB38 7F0C6008 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FAB3C 7F0C600C AFA20020 */ sw $v0, 0x20($sp) +/* 0FAB40 7F0C6010 AFA00024 */ sw $zero, 0x24($sp) +/* 0FAB44 7F0C6014 AFA00028 */ sw $zero, 0x28($sp) +/* 0FAB48 7F0C6018 AFAB0014 */ sw $t3, 0x14($sp) +/* 0FAB4C 7F0C601C 0FC2B6AF */ jal en_text_write_stuff +/* 0FAB50 7F0C6020 AFB80010 */ sw $t8, 0x10($sp) +/* 0FAB54 7F0C6024 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0FAB58 7F0C6028 00402025 */ move $a0, $v0 +/* 0FAB5C 7F0C602C 00408825 */ move $s1, $v0 +.L7F0C6030: +/* 0FAB60 7F0C6030 02201025 */ move $v0, $s1 +.L7F0C6034: +/* 0FAB64 7F0C6034 8FBF003C */ lw $ra, 0x3c($sp) +/* 0FAB68 7F0C6038 8FB00034 */ lw $s0, 0x34($sp) +/* 0FAB6C 7F0C603C 8FB10038 */ lw $s1, 0x38($sp) +/* 0FAB70 7F0C6040 03E00008 */ jr $ra +/* 0FAB74 7F0C6044 27BD00D8 */ addiu $sp, $sp, 0xd8 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +/*jtbl hacks*/ +.word not_yolt_tld + +/*D:8005BD00*/ +glabel jpt_MP_menu_window_text +.word text_play +.word text_play +.word text_play +.word text_play +.word text_pause_unpause +.word text_exit +.word text_exit +.word text_blank + +.text +glabel mp_watch_menu_display +/* 0F9844 7F0C4CD4 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 0F9848 7F0C4CD8 AFBF003C */ sw $ra, 0x3c($sp) +/* 0F984C 7F0C4CDC AFB10038 */ sw $s1, 0x38($sp) +/* 0F9850 7F0C4CE0 00808825 */ move $s1, $a0 +/* 0F9854 7F0C4CE4 0FC26F3C */ jal get_cur_playernum +/* 0F9858 7F0C4CE8 AFB00034 */ sw $s0, 0x34($sp) +/* 0F985C 7F0C4CEC 0FC26C01 */ jal get_num_players +/* 0F9860 7F0C4CF0 AFA200D4 */ sw $v0, 0xd4($sp) +/* 0F9864 7F0C4CF4 24010001 */ li $at, 1 +/* 0F9868 7F0C4CF8 00404025 */ move $t0, $v0 +/* 0F986C 7F0C4CFC 14410003 */ bne $v0, $at, .Ljp7F0C4D0C +/* 0F9870 7F0C4D00 00008025 */ move $s0, $zero +/* 0F9874 7F0C4D04 10000804 */ b .Ljp7F0C6D18 +/* 0F9878 7F0C4D08 02201025 */ move $v0, $s1 +.Ljp7F0C4D0C: +/* 0F987C 7F0C4D0C 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0F9880 7F0C4D10 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0F9884 7F0C4D14 02202025 */ move $a0, $s1 +/* 0F9888 7F0C4D18 8C6E29C4 */ lw $t6, 0x29c4($v1) +/* 0F988C 7F0C4D1C 51C0076D */ beql $t6, $zero, .Ljp7F0C6AD4 +/* 0F9890 7F0C4D20 8C6C00D8 */ lw $t4, 0xd8($v1) +/* 0F9894 7F0C4D24 0FC2B652 */ jal microcode_constructor +/* 0F9898 7F0C4D28 AFA800D0 */ sw $t0, 0xd0($sp) +/* 0F989C 7F0C4D2C 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0F98A0 7F0C4D30 24010002 */ li $at, 2 +/* 0F98A4 7F0C4D34 00408825 */ move $s1, $v0 +/* 0F98A8 7F0C4D38 15E10004 */ bne $t7, $at, .Ljp7F0C4D4C +/* 0F98AC 7F0C4D3C 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 0F98B0 7F0C4D40 24180050 */ li $t8, 80 +/* 0F98B4 7F0C4D44 10000002 */ b .Ljp7F0C4D50 +/* 0F98B8 7F0C4D48 AFB800A8 */ sw $t8, 0xa8($sp) +.Ljp7F0C4D4C: +/* 0F98BC 7F0C4D4C AFA000A8 */ sw $zero, 0xa8($sp) +.Ljp7F0C4D50: +/* 0F98C0 7F0C4D50 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 0F98C4 7F0C4D54 8F2B29C8 */ lw $t3, 0x29c8($t9) +/* 0F98C8 7F0C4D58 2D610008 */ sltiu $at, $t3, 8 +/* 0F98CC 7F0C4D5C 10200038 */ beqz $at, .Ljp7F0C4E40 +/* 0F98D0 7F0C4D60 000B5880 */ sll $t3, $t3, 2 +/* 0F98D4 7F0C4D64 3C018006 */ lui $at, %hi(jpt_MP_menu_window_text) +/* 0F98D8 7F0C4D68 002B0821 */ addu $at, $at, $t3 +/* 0F98DC 7F0C4D6C 8C2BBD40 */ lw $t3, %lo(jpt_MP_menu_window_text)($at) +/* 0F98E0 7F0C4D70 01600008 */ jr $t3 +/* 0F98E4 7F0C4D74 00000000 */ nop +text_play: +/* 0F98E8 7F0C4D78 3C0C8009 */ lui $t4, %hi(is_gameover_flag) # $t4, 0x8009 +/* 0F98EC 7F0C4D7C 8D8CC774 */ lw $t4, %lo(is_gameover_flag)($t4) +/* 0F98F0 7F0C4D80 3C0D8009 */ lui $t5, %hi(time_trigger_alt_gameover_msg) # $t5, 0x8009 +/* 0F98F4 7F0C4D84 15800005 */ bnez $t4, .Ljp7F0C4D9C +/* 0F98F8 7F0C4D88 00000000 */ nop +/* 0F98FC 7F0C4D8C 0FC30AA2 */ jal get_textptr_for_textID +/* 0F9900 7F0C4D90 3404A015 */ li $a0, 40981 +/* 0F9904 7F0C4D94 1000002A */ b .Ljp7F0C4E40 +/* 0F9908 7F0C4D98 AFA200A4 */ sw $v0, 0xa4($sp) +.Ljp7F0C4D9C: +/* 0F990C 7F0C4D9C 8DADC780 */ lw $t5, %lo(time_trigger_alt_gameover_msg)($t5) +/* 0F9910 7F0C4DA0 11A00005 */ beqz $t5, .Ljp7F0C4DB8 +/* 0F9914 7F0C4DA4 00000000 */ nop +/* 0F9918 7F0C4DA8 0FC30AA2 */ jal get_textptr_for_textID +/* 0F991C 7F0C4DAC 3404A016 */ li $a0, 40982 +/* 0F9920 7F0C4DB0 10000023 */ b .Ljp7F0C4E40 +/* 0F9924 7F0C4DB4 AFA200A4 */ sw $v0, 0xa4($sp) +.Ljp7F0C4DB8: +/* 0F9928 7F0C4DB8 0FC30AA2 */ jal get_textptr_for_textID +/* 0F992C 7F0C4DBC 3404A017 */ li $a0, 40983 +/* 0F9930 7F0C4DC0 1000001F */ b .Ljp7F0C4E40 +/* 0F9934 7F0C4DC4 AFA200A4 */ sw $v0, 0xa4($sp) +text_blank: +/* 0F9938 7F0C4DC8 3C0E8006 */ lui $t6, %hi(ascii_MP_watch_menu_BLANK) # $t6, 0x8006 +/* 0F993C 7F0C4DCC 25CEBC64 */ addiu $t6, %lo(ascii_MP_watch_menu_BLANK) # addiu $t6, $t6, -0x439c +/* 0F9940 7F0C4DD0 1000001B */ b .Ljp7F0C4E40 +/* 0F9944 7F0C4DD4 AFAE00A4 */ sw $t6, 0xa4($sp) +text_pause_unpause: +/* 0F9948 7F0C4DD8 3C0F8009 */ lui $t7, %hi(is_paused) # $t7, 0x8009 +/* 0F994C 7F0C4DDC 8DEFC788 */ lw $t7, %lo(is_paused)($t7) +/* 0F9950 7F0C4DE0 11E0000B */ beqz $t7, .Ljp7F0C4E10 +/* 0F9954 7F0C4DE4 00000000 */ nop +/* 0F9958 7F0C4DE8 0FC30AA2 */ jal get_textptr_for_textID +/* 0F995C 7F0C4DEC 3404A018 */ li $a0, 40984 +/* 0F9960 7F0C4DF0 0FC26F3C */ jal get_cur_playernum +/* 0F9964 7F0C4DF4 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0F9968 7F0C4DF8 3C188009 */ lui $t8, %hi(who_paused) # $t8, 0x8009 +/* 0F996C 7F0C4DFC 8F18C78C */ lw $t8, %lo(who_paused)($t8) +/* 0F9970 7F0C4E00 1458000F */ bne $v0, $t8, .Ljp7F0C4E40 +/* 0F9974 7F0C4E04 00000000 */ nop +/* 0F9978 7F0C4E08 1000000D */ b .Ljp7F0C4E40 +/* 0F997C 7F0C4E0C 24100001 */ li $s0, 1 +.Ljp7F0C4E10: +/* 0F9980 7F0C4E10 0FC30AA2 */ jal get_textptr_for_textID +/* 0F9984 7F0C4E14 3404A019 */ li $a0, 40985 +/* 0F9988 7F0C4E18 10000009 */ b .Ljp7F0C4E40 +/* 0F998C 7F0C4E1C AFA200A4 */ sw $v0, 0xa4($sp) +text_exit: +/* 0F9990 7F0C4E20 0FC30AA2 */ jal get_textptr_for_textID +/* 0F9994 7F0C4E24 3404A01A */ li $a0, 40986 +/* 0F9998 7F0C4E28 0C001145 */ jal get_video2_settings_ulx +/* 0F999C 7F0C4E2C AFA200A4 */ sw $v0, 0xa4($sp) +/* 0F99A0 7F0C4E30 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F99A4 7F0C4E34 00592021 */ addu $a0, $v0, $t9 +/* 0F99A8 7F0C4E38 24840041 */ addiu $a0, $a0, 0x41 +/* 0F99AC 7F0C4E3C AFA400CC */ sw $a0, 0xcc($sp) +def_7F0C40C0: +.Ljp7F0C4E40: +/* 0F99B0 7F0C4E40 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) # $t3, 0x8004 +/* 0F99B4 7F0C4E44 8D6B0EDC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0F99B8 7F0C4E48 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0F99BC 7F0C4E4C 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F99C0 7F0C4E50 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F99C4 7F0C4E54 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F99C8 7F0C4E58 8FA600A4 */ lw $a2, 0xa4($sp) +/* 0F99CC 7F0C4E5C AFA00014 */ sw $zero, 0x14($sp) +/* 0F99D0 7F0C4E60 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0F99D4 7F0C4E64 AFAB0010 */ sw $t3, 0x10($sp) +/* 0F99D8 7F0C4E68 0C001145 */ jal get_video2_settings_ulx +/* 0F99DC 7F0C4E6C 00000000 */ nop +/* 0F99E0 7F0C4E70 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0F99E4 7F0C4E74 8FAE00C0 */ lw $t6, 0xc0($sp) +/* 0F99E8 7F0C4E78 004C6821 */ addu $t5, $v0, $t4 +/* 0F99EC 7F0C4E7C 000E7843 */ sra $t7, $t6, 1 +/* 0F99F0 7F0C4E80 01AF2023 */ subu $a0, $t5, $t7 +/* 0F99F4 7F0C4E84 24840050 */ addiu $a0, $a0, 0x50 +/* 0F99F8 7F0C4E88 0C001149 */ jal get_video2_settings_uly +/* 0F99FC 7F0C4E8C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9A00 7F0C4E90 8FB800BC */ lw $t8, 0xbc($sp) +/* 0F9A04 7F0C4E94 0018C843 */ sra $t9, $t8, 1 +/* 0F9A08 7F0C4E98 00595823 */ subu $t3, $v0, $t9 +/* 0F9A0C 7F0C4E9C 256C0016 */ addiu $t4, $t3, 0x16 +/* 0F9A10 7F0C4EA0 1200001E */ beqz $s0, .Ljp7F0C4F1C +/* 0F9A14 7F0C4EA4 AFAC00C8 */ sw $t4, 0xc8($sp) +/* 0F9A18 7F0C4EA8 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9A1C 7F0C4EAC 00000000 */ nop +/* 0F9A20 7F0C4EB0 00028400 */ sll $s0, $v0, 0x10 +/* 0F9A24 7F0C4EB4 00107403 */ sra $t6, $s0, 0x10 +/* 0F9A28 7F0C4EB8 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9A2C 7F0C4EBC 01C08025 */ move $s0, $t6 +/* 0F9A30 7F0C4EC0 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableSmall) # $t5, 0x8004 +/* 0F9A34 7F0C4EC4 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 +/* 0F9A38 7F0C4EC8 8DEF0EDC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0F9A3C 7F0C4ECC 8DAD0EE0 */ lw $t5, %lo(ptrSecondFontTableSmall)($t5) +/* 0F9A40 7F0C4ED0 3C18A0FF */ lui $t8, (0xA0FFA0F0 >> 16) # lui $t8, 0xa0ff +/* 0F9A44 7F0C4ED4 3C190070 */ lui $t9, (0x007000A0 >> 16) # lui $t9, 0x70 +/* 0F9A48 7F0C4ED8 373900A0 */ ori $t9, (0x007000A0 & 0xFFFF) # ori $t9, $t9, 0xa0 +/* 0F9A4C 7F0C4EDC 3718A0F0 */ ori $t8, (0xA0FFA0F0 & 0xFFFF) # ori $t8, $t8, 0xa0f0 +/* 0F9A50 7F0C4EE0 AFB80018 */ sw $t8, 0x18($sp) +/* 0F9A54 7F0C4EE4 AFB9001C */ sw $t9, 0x1c($sp) +/* 0F9A58 7F0C4EE8 02202025 */ move $a0, $s1 +/* 0F9A5C 7F0C4EEC 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9A60 7F0C4EF0 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9A64 7F0C4EF4 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0F9A68 7F0C4EF8 AFB00020 */ sw $s0, 0x20($sp) +/* 0F9A6C 7F0C4EFC AFA20024 */ sw $v0, 0x24($sp) +/* 0F9A70 7F0C4F00 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9A74 7F0C4F04 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F9A78 7F0C4F08 AFAF0014 */ sw $t7, 0x14($sp) +/* 0F9A7C 7F0C4F0C 0FC2BCA7 */ jal jp_text_write_stuff +/* 0F9A80 7F0C4F10 AFAD0010 */ sw $t5, 0x10($sp) +/* 0F9A84 7F0C4F14 1000001A */ b .Ljp7F0C4F80 +/* 0F9A88 7F0C4F18 00408825 */ move $s1, $v0 +.Ljp7F0C4F1C: +/* 0F9A8C 7F0C4F1C 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9A90 7F0C4F20 00000000 */ nop +/* 0F9A94 7F0C4F24 00028400 */ sll $s0, $v0, 0x10 +/* 0F9A98 7F0C4F28 00105C03 */ sra $t3, $s0, 0x10 +/* 0F9A9C 7F0C4F2C 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9AA0 7F0C4F30 01608025 */ move $s0, $t3 +/* 0F9AA4 7F0C4F34 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 +/* 0F9AA8 7F0C4F38 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) # $t6, 0x8004 +/* 0F9AAC 7F0C4F3C 8DCE0EDC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0F9AB0 7F0C4F40 8D8C0EE0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 0F9AB4 7F0C4F44 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0F9AB8 7F0C4F48 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0F9ABC 7F0C4F4C AFAD0018 */ sw $t5, 0x18($sp) +/* 0F9AC0 7F0C4F50 02202025 */ move $a0, $s1 +/* 0F9AC4 7F0C4F54 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9AC8 7F0C4F58 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9ACC 7F0C4F5C 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0F9AD0 7F0C4F60 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9AD4 7F0C4F64 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9AD8 7F0C4F68 AFA00024 */ sw $zero, 0x24($sp) +/* 0F9ADC 7F0C4F6C AFA00028 */ sw $zero, 0x28($sp) +/* 0F9AE0 7F0C4F70 AFAE0014 */ sw $t6, 0x14($sp) +/* 0F9AE4 7F0C4F74 0FC2B99B */ jal en_text_write_stuff +/* 0F9AE8 7F0C4F78 AFAC0010 */ sw $t4, 0x10($sp) +/* 0F9AEC 7F0C4F7C 00408825 */ move $s1, $v0 +.Ljp7F0C4F80: +/* 0F9AF0 7F0C4F80 0FC30ACF */ jal check_can_advance_left_on_mpmenu +/* 0F9AF4 7F0C4F84 00000000 */ nop +/* 0F9AF8 7F0C4F88 10400056 */ beqz $v0, .Ljp7F0C50E4 +/* 0F9AFC 7F0C4F8C 00000000 */ nop +/* 0F9B00 7F0C4F90 0C001145 */ jal get_video2_settings_ulx +/* 0F9B04 7F0C4F94 00000000 */ nop +/* 0F9B08 7F0C4F98 3C038009 */ lui $v1, %hi(is_gameover_flag) # $v1, 0x8009 +/* 0F9B0C 7F0C4F9C 8C63C774 */ lw $v1, %lo(is_gameover_flag)($v1) +/* 0F9B10 7F0C4FA0 0002C400 */ sll $t8, $v0, 0x10 +/* 0F9B14 7F0C4FA4 240F000A */ li $t7, 10 +/* 0F9B18 7F0C4FA8 50600004 */ beql $v1, $zero, .Ljp7F0C4FBC +/* 0F9B1C 7F0C4FAC AFA00050 */ sw $zero, 0x50($sp) +/* 0F9B20 7F0C4FB0 10000002 */ b .Ljp7F0C4FBC +/* 0F9B24 7F0C4FB4 AFAF0050 */ sw $t7, 0x50($sp) +/* 0F9B28 7F0C4FB8 AFA00050 */ sw $zero, 0x50($sp) +.Ljp7F0C4FBC: +/* 0F9B2C 7F0C4FBC 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0F9B30 7F0C4FC0 8FAE0050 */ lw $t6, 0x50($sp) +/* 0F9B34 7F0C4FC4 0018CC03 */ sra $t9, $t8, 0x10 +/* 0F9B38 7F0C4FC8 032B6021 */ addu $t4, $t9, $t3 +/* 0F9B3C 7F0C4FCC 018E2023 */ subu $a0, $t4, $t6 +/* 0F9B40 7F0C4FD0 24840028 */ addiu $a0, $a0, 0x28 +/* 0F9B44 7F0C4FD4 10600003 */ beqz $v1, .Ljp7F0C4FE4 +/* 0F9B48 7F0C4FD8 AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9B4C 7F0C4FDC 2484FFF8 */ addiu $a0, $a0, -8 +/* 0F9B50 7F0C4FE0 AFA400CC */ sw $a0, 0xcc($sp) +.Ljp7F0C4FE4: +/* 0F9B54 7F0C4FE4 0C001149 */ jal get_video2_settings_uly +/* 0F9B58 7F0C4FE8 00000000 */ nop +/* 0F9B5C 7F0C4FEC 3C0F8009 */ lui $t7, %hi(dword_CODE_bss_8008C708) # $t7, 0x8009 +/* 0F9B60 7F0C4FF0 8DEFC778 */ lw $t7, %lo(dword_CODE_bss_8008C708)($t7) +/* 0F9B64 7F0C4FF4 244D0016 */ addiu $t5, $v0, 0x16 +/* 0F9B68 7F0C4FF8 AFAD00C8 */ sw $t5, 0xc8($sp) +/* 0F9B6C 7F0C4FFC 15E0001C */ bnez $t7, .Ljp7F0C5070 +/* 0F9B70 7F0C5000 00000000 */ nop +/* 0F9B74 7F0C5004 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9B78 7F0C5008 00000000 */ nop +/* 0F9B7C 7F0C500C 00028400 */ sll $s0, $v0, 0x10 +/* 0F9B80 7F0C5010 0010C403 */ sra $t8, $s0, 0x10 +/* 0F9B84 7F0C5014 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9B88 7F0C5018 03008025 */ move $s0, $t8 +/* 0F9B8C 7F0C501C 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) # $t9, 0x8004 +/* 0F9B90 7F0C5020 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) # $t3, 0x8004 +/* 0F9B94 7F0C5024 8D6B0EDC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0F9B98 7F0C5028 8F390EE0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0F9B9C 7F0C502C 3C0C00FF */ lui $t4, (0x00FF00B0 >> 16) # lui $t4, 0xff +/* 0F9BA0 7F0C5030 358C00B0 */ ori $t4, (0x00FF00B0 & 0xFFFF) # ori $t4, $t4, 0xb0 +/* 0F9BA4 7F0C5034 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_left_chevron) # $a3, 0x8006 +/* 0F9BA8 7F0C5038 24E7BC68 */ addiu $a3, %lo(ascii_MP_watch_menu_left_chevron) # addiu $a3, $a3, -0x4398 +/* 0F9BAC 7F0C503C AFAC0018 */ sw $t4, 0x18($sp) +/* 0F9BB0 7F0C5040 02202025 */ move $a0, $s1 +/* 0F9BB4 7F0C5044 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9BB8 7F0C5048 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9BBC 7F0C504C AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9BC0 7F0C5050 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9BC4 7F0C5054 AFA00024 */ sw $zero, 0x24($sp) +/* 0F9BC8 7F0C5058 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9BCC 7F0C505C AFAB0014 */ sw $t3, 0x14($sp) +/* 0F9BD0 7F0C5060 0FC2B99B */ jal en_text_write_stuff +/* 0F9BD4 7F0C5064 AFB90010 */ sw $t9, 0x10($sp) +/* 0F9BD8 7F0C5068 1000001E */ b .Ljp7F0C50E4 +/* 0F9BDC 7F0C506C 00408825 */ move $s1, $v0 +.Ljp7F0C5070: +/* 0F9BE0 7F0C5070 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9BE4 7F0C5074 00000000 */ nop +/* 0F9BE8 7F0C5078 00028400 */ sll $s0, $v0, 0x10 +/* 0F9BEC 7F0C507C 00107403 */ sra $t6, $s0, 0x10 +/* 0F9BF0 7F0C5080 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9BF4 7F0C5084 01C08025 */ move $s0, $t6 +/* 0F9BF8 7F0C5088 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableSmall) # $t5, 0x8004 +/* 0F9BFC 7F0C508C 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 +/* 0F9C00 7F0C5090 8DEF0EDC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0F9C04 7F0C5094 8DAD0EE0 */ lw $t5, %lo(ptrSecondFontTableSmall)($t5) +/* 0F9C08 7F0C5098 3C18A0FF */ lui $t8, (0xA0FFA0F0 >> 16) # lui $t8, 0xa0ff +/* 0F9C0C 7F0C509C 3C190070 */ lui $t9, (0x007000A0 >> 16) # lui $t9, 0x70 +/* 0F9C10 7F0C50A0 373900A0 */ ori $t9, (0x007000A0 & 0xFFFF) # ori $t9, $t9, 0xa0 +/* 0F9C14 7F0C50A4 3718A0F0 */ ori $t8, (0xA0FFA0F0 & 0xFFFF) # ori $t8, $t8, 0xa0f0 +/* 0F9C18 7F0C50A8 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_left_chevron) # $a3, 0x8006 +/* 0F9C1C 7F0C50AC 24E7BC68 */ addiu $a3, %lo(ascii_MP_watch_menu_left_chevron) # addiu $a3, $a3, -0x4398 +/* 0F9C20 7F0C50B0 AFB80018 */ sw $t8, 0x18($sp) +/* 0F9C24 7F0C50B4 AFB9001C */ sw $t9, 0x1c($sp) +/* 0F9C28 7F0C50B8 02202025 */ move $a0, $s1 +/* 0F9C2C 7F0C50BC 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9C30 7F0C50C0 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9C34 7F0C50C4 AFB00020 */ sw $s0, 0x20($sp) +/* 0F9C38 7F0C50C8 AFA20024 */ sw $v0, 0x24($sp) +/* 0F9C3C 7F0C50CC AFA00028 */ sw $zero, 0x28($sp) +/* 0F9C40 7F0C50D0 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F9C44 7F0C50D4 AFAF0014 */ sw $t7, 0x14($sp) +/* 0F9C48 7F0C50D8 0FC2BCA7 */ jal jp_text_write_stuff +/* 0F9C4C 7F0C50DC AFAD0010 */ sw $t5, 0x10($sp) +/* 0F9C50 7F0C50E0 00408825 */ move $s1, $v0 +.Ljp7F0C50E4: +/* 0F9C54 7F0C50E4 0FC30AB4 */ jal check_can_advance_right_on_mpmenu +/* 0F9C58 7F0C50E8 00000000 */ nop +/* 0F9C5C 7F0C50EC 10400056 */ beqz $v0, .Ljp7F0C5248 +/* 0F9C60 7F0C50F0 00000000 */ nop +/* 0F9C64 7F0C50F4 0C001145 */ jal get_video2_settings_ulx +/* 0F9C68 7F0C50F8 00000000 */ nop +/* 0F9C6C 7F0C50FC 3C038009 */ lui $v1, %hi(is_gameover_flag) # $v1, 0x8009 +/* 0F9C70 7F0C5100 8C63C774 */ lw $v1, %lo(is_gameover_flag)($v1) +/* 0F9C74 7F0C5104 00027400 */ sll $t6, $v0, 0x10 +/* 0F9C78 7F0C5108 240B000A */ li $t3, 10 +/* 0F9C7C 7F0C510C 50600004 */ beql $v1, $zero, .Ljp7F0C5120 +/* 0F9C80 7F0C5110 AFA00050 */ sw $zero, 0x50($sp) +/* 0F9C84 7F0C5114 10000002 */ b .Ljp7F0C5120 +/* 0F9C88 7F0C5118 AFAB0050 */ sw $t3, 0x50($sp) +/* 0F9C8C 7F0C511C AFA00050 */ sw $zero, 0x50($sp) +.Ljp7F0C5120: +/* 0F9C90 7F0C5120 8FAC0050 */ lw $t4, 0x50($sp) +/* 0F9C94 7F0C5124 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0F9C98 7F0C5128 000E6C03 */ sra $t5, $t6, 0x10 +/* 0F9C9C 7F0C512C 018D7821 */ addu $t7, $t4, $t5 +/* 0F9CA0 7F0C5130 01F82021 */ addu $a0, $t7, $t8 +/* 0F9CA4 7F0C5134 24840070 */ addiu $a0, $a0, 0x70 +/* 0F9CA8 7F0C5138 10600003 */ beqz $v1, .Ljp7F0C5148 +/* 0F9CAC 7F0C513C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9CB0 7F0C5140 24840008 */ addiu $a0, $a0, 8 +/* 0F9CB4 7F0C5144 AFA400CC */ sw $a0, 0xcc($sp) +.Ljp7F0C5148: +/* 0F9CB8 7F0C5148 0C001149 */ jal get_video2_settings_uly +/* 0F9CBC 7F0C514C 00000000 */ nop +/* 0F9CC0 7F0C5150 3C0B8009 */ lui $t3, %hi(dword_CODE_bss_8008C708) # $t3, 0x8009 +/* 0F9CC4 7F0C5154 8D6BC778 */ lw $t3, %lo(dword_CODE_bss_8008C708)($t3) +/* 0F9CC8 7F0C5158 24590016 */ addiu $t9, $v0, 0x16 +/* 0F9CCC 7F0C515C AFB900C8 */ sw $t9, 0xc8($sp) +/* 0F9CD0 7F0C5160 1560001C */ bnez $t3, .Ljp7F0C51D4 +/* 0F9CD4 7F0C5164 00000000 */ nop +/* 0F9CD8 7F0C5168 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9CDC 7F0C516C 00000000 */ nop +/* 0F9CE0 7F0C5170 00028400 */ sll $s0, $v0, 0x10 +/* 0F9CE4 7F0C5174 00107403 */ sra $t6, $s0, 0x10 +/* 0F9CE8 7F0C5178 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9CEC 7F0C517C 01C08025 */ move $s0, $t6 +/* 0F9CF0 7F0C5180 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 +/* 0F9CF4 7F0C5184 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0F9CF8 7F0C5188 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0F9CFC 7F0C518C 8D8C0EE0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 0F9D00 7F0C5190 3C0F00FF */ lui $t7, (0x00FF00B0 >> 16) # lui $t7, 0xff +/* 0F9D04 7F0C5194 35EF00B0 */ ori $t7, (0x00FF00B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0F9D08 7F0C5198 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_right_chevron) # $a3, 0x8006 +/* 0F9D0C 7F0C519C 24E7BC6C */ addiu $a3, %lo(ascii_MP_watch_menu_right_chevron) # addiu $a3, $a3, -0x4394 +/* 0F9D10 7F0C51A0 AFAF0018 */ sw $t7, 0x18($sp) +/* 0F9D14 7F0C51A4 02202025 */ move $a0, $s1 +/* 0F9D18 7F0C51A8 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9D1C 7F0C51AC 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9D20 7F0C51B0 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9D24 7F0C51B4 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9D28 7F0C51B8 AFA00024 */ sw $zero, 0x24($sp) +/* 0F9D2C 7F0C51BC AFA00028 */ sw $zero, 0x28($sp) +/* 0F9D30 7F0C51C0 AFAD0014 */ sw $t5, 0x14($sp) +/* 0F9D34 7F0C51C4 0FC2B99B */ jal en_text_write_stuff +/* 0F9D38 7F0C51C8 AFAC0010 */ sw $t4, 0x10($sp) +/* 0F9D3C 7F0C51CC 1000001E */ b .Ljp7F0C5248 +/* 0F9D40 7F0C51D0 00408825 */ move $s1, $v0 +.Ljp7F0C51D4: +/* 0F9D44 7F0C51D4 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9D48 7F0C51D8 00000000 */ nop +/* 0F9D4C 7F0C51DC 00028400 */ sll $s0, $v0, 0x10 +/* 0F9D50 7F0C51E0 0010C403 */ sra $t8, $s0, 0x10 +/* 0F9D54 7F0C51E4 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9D58 7F0C51E8 03008025 */ move $s0, $t8 +/* 0F9D5C 7F0C51EC 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) # $t9, 0x8004 +/* 0F9D60 7F0C51F0 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) # $t3, 0x8004 +/* 0F9D64 7F0C51F4 8D6B0EDC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0F9D68 7F0C51F8 8F390EE0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0F9D6C 7F0C51FC 3C0EA0FF */ lui $t6, (0xA0FFA0F0 >> 16) # lui $t6, 0xa0ff +/* 0F9D70 7F0C5200 3C0C0070 */ lui $t4, (0x007000A0 >> 16) # lui $t4, 0x70 +/* 0F9D74 7F0C5204 358C00A0 */ ori $t4, (0x007000A0 & 0xFFFF) # ori $t4, $t4, 0xa0 +/* 0F9D78 7F0C5208 35CEA0F0 */ ori $t6, (0xA0FFA0F0 & 0xFFFF) # ori $t6, $t6, 0xa0f0 +/* 0F9D7C 7F0C520C 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_right_chevron) # $a3, 0x8006 +/* 0F9D80 7F0C5210 24E7BC6C */ addiu $a3, %lo(ascii_MP_watch_menu_right_chevron) # addiu $a3, $a3, -0x4394 +/* 0F9D84 7F0C5214 AFAE0018 */ sw $t6, 0x18($sp) +/* 0F9D88 7F0C5218 AFAC001C */ sw $t4, 0x1c($sp) +/* 0F9D8C 7F0C521C 02202025 */ move $a0, $s1 +/* 0F9D90 7F0C5220 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9D94 7F0C5224 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9D98 7F0C5228 AFB00020 */ sw $s0, 0x20($sp) +/* 0F9D9C 7F0C522C AFA20024 */ sw $v0, 0x24($sp) +/* 0F9DA0 7F0C5230 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9DA4 7F0C5234 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F9DA8 7F0C5238 AFAB0014 */ sw $t3, 0x14($sp) +/* 0F9DAC 7F0C523C 0FC2BCA7 */ jal jp_text_write_stuff +/* 0F9DB0 7F0C5240 AFB90010 */ sw $t9, 0x10($sp) +/* 0F9DB4 7F0C5244 00408825 */ move $s1, $v0 +.Ljp7F0C5248: +/* 0F9DB8 7F0C5248 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0F9DBC 7F0C524C 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0F9DC0 7F0C5250 24010003 */ li $at, 3 +/* 0F9DC4 7F0C5254 8FAD00D0 */ lw $t5, 0xd0($sp) +/* 0F9DC8 7F0C5258 8C6229C8 */ lw $v0, 0x29c8($v1) +/* 0F9DCC 7F0C525C 10410003 */ beq $v0, $at, .Ljp7F0C526C +/* 0F9DD0 7F0C5260 24010004 */ li $at, 4 +/* 0F9DD4 7F0C5264 544101AA */ bnel $v0, $at, .Ljp7F0C5910 +/* 0F9DD8 7F0C5268 24010002 */ li $at, 2 +.Ljp7F0C526C: +/* 0F9DDC 7F0C526C 19A0000D */ blez $t5, .Ljp7F0C52A4 +/* 0F9DE0 7F0C5270 00002025 */ move $a0, $zero +/* 0F9DE4 7F0C5274 27A30094 */ addiu $v1, $sp, 0x94 +/* 0F9DE8 7F0C5278 AFA30044 */ sw $v1, 0x44($sp) +.Ljp7F0C527C: +/* 0F9DEC 7F0C527C 0FC31162 */ jal get_points_for_mp_player +/* 0F9DF0 7F0C5280 AFA40090 */ sw $a0, 0x90($sp) +/* 0F9DF4 7F0C5284 8FA30044 */ lw $v1, 0x44($sp) +/* 0F9DF8 7F0C5288 8FA40090 */ lw $a0, 0x90($sp) +/* 0F9DFC 7F0C528C AC620000 */ sw $v0, ($v1) +/* 0F9E00 7F0C5290 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0F9E04 7F0C5294 24840001 */ addiu $a0, $a0, 1 +/* 0F9E08 7F0C5298 24630004 */ addiu $v1, $v1, 4 +/* 0F9E0C 7F0C529C 548FFFF7 */ bnel $a0, $t7, .Ljp7F0C527C +/* 0F9E10 7F0C52A0 AFA30044 */ sw $v1, 0x44($sp) +.Ljp7F0C52A4: +/* 0F9E14 7F0C52A4 3C048009 */ lui $a0, %hi(is_gameover_flag) # $a0, 0x8009 +/* 0F9E18 7F0C52A8 8C84C774 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0F9E1C 7F0C52AC 2C980001 */ sltiu $t8, $a0, 1 +/* 0F9E20 7F0C52B0 13000005 */ beqz $t8, .Ljp7F0C52C8 +/* 0F9E24 7F0C52B4 03002025 */ move $a0, $t8 +/* 0F9E28 7F0C52B8 3C048009 */ lui $a0, %hi(stop_play_flag) # $a0, 0x8009 +/* 0F9E2C 7F0C52BC 8C84C770 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0F9E30 7F0C52C0 2C990001 */ sltiu $t9, $a0, 1 +/* 0F9E34 7F0C52C4 03202025 */ move $a0, $t9 +.Ljp7F0C52C8: +/* 0F9E38 7F0C52C8 0FC31303 */ jal true_if_displaying_rank_in_mp +/* 0F9E3C 7F0C52CC 00000000 */ nop +/* 0F9E40 7F0C52D0 10400034 */ beqz $v0, .Ljp7F0C53A4 +/* 0F9E44 7F0C52D4 27A400AC */ addiu $a0, $sp, 0xac +/* 0F9E48 7F0C52D8 0FC31251 */ jal write_playerrank_to_buffer +/* 0F9E4C 7F0C52DC 8FA500D4 */ lw $a1, 0xd4($sp) +/* 0F9E50 7F0C52E0 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) # $t3, 0x8004 +/* 0F9E54 7F0C52E4 8D6B0EDC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0F9E58 7F0C52E8 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0F9E5C 7F0C52EC 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F9E60 7F0C52F0 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F9E64 7F0C52F4 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F9E68 7F0C52F8 27A600AC */ addiu $a2, $sp, 0xac +/* 0F9E6C 7F0C52FC AFA00014 */ sw $zero, 0x14($sp) +/* 0F9E70 7F0C5300 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0F9E74 7F0C5304 AFAB0010 */ sw $t3, 0x10($sp) +/* 0F9E78 7F0C5308 0C001145 */ jal get_video2_settings_ulx +/* 0F9E7C 7F0C530C 00000000 */ nop +/* 0F9E80 7F0C5310 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0F9E84 7F0C5314 8FAD00C0 */ lw $t5, 0xc0($sp) +/* 0F9E88 7F0C5318 004E6021 */ addu $t4, $v0, $t6 +/* 0F9E8C 7F0C531C 000D7843 */ sra $t7, $t5, 1 +/* 0F9E90 7F0C5320 018F2023 */ subu $a0, $t4, $t7 +/* 0F9E94 7F0C5324 24840050 */ addiu $a0, $a0, 0x50 +/* 0F9E98 7F0C5328 0C001149 */ jal get_video2_settings_uly +/* 0F9E9C 7F0C532C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9EA0 7F0C5330 8FB800BC */ lw $t8, 0xbc($sp) +/* 0F9EA4 7F0C5334 0018C843 */ sra $t9, $t8, 1 +/* 0F9EA8 7F0C5338 00595823 */ subu $t3, $v0, $t9 +/* 0F9EAC 7F0C533C 256E0025 */ addiu $t6, $t3, 0x25 +/* 0F9EB0 7F0C5340 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9EB4 7F0C5344 AFAE00C8 */ sw $t6, 0xc8($sp) +/* 0F9EB8 7F0C5348 00028400 */ sll $s0, $v0, 0x10 +/* 0F9EBC 7F0C534C 00106C03 */ sra $t5, $s0, 0x10 +/* 0F9EC0 7F0C5350 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9EC4 7F0C5354 01A08025 */ move $s0, $t5 +/* 0F9EC8 7F0C5358 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 +/* 0F9ECC 7F0C535C 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 +/* 0F9ED0 7F0C5360 8DEF0EDC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0F9ED4 7F0C5364 8D8C0EE0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 0F9ED8 7F0C5368 3C1800FF */ lui $t8, (0x00FF00B0 >> 16) # lui $t8, 0xff +/* 0F9EDC 7F0C536C 371800B0 */ ori $t8, (0x00FF00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0F9EE0 7F0C5370 AFB80018 */ sw $t8, 0x18($sp) +/* 0F9EE4 7F0C5374 02202025 */ move $a0, $s1 +/* 0F9EE8 7F0C5378 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9EEC 7F0C537C 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9EF0 7F0C5380 27A700AC */ addiu $a3, $sp, 0xac +/* 0F9EF4 7F0C5384 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9EF8 7F0C5388 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9EFC 7F0C538C AFA00024 */ sw $zero, 0x24($sp) +/* 0F9F00 7F0C5390 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9F04 7F0C5394 AFAF0014 */ sw $t7, 0x14($sp) +/* 0F9F08 7F0C5398 0FC2B99B */ jal en_text_write_stuff +/* 0F9F0C 7F0C539C AFAC0010 */ sw $t4, 0x10($sp) +/* 0F9F10 7F0C53A0 00408825 */ move $s1, $v0 +.Ljp7F0C53A4: +/* 0F9F14 7F0C53A4 3C048009 */ lui $a0, %hi(is_gameover_flag) # $a0, 0x8009 +/* 0F9F18 7F0C53A8 8C84C774 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0F9F1C 7F0C53AC 2C990001 */ sltiu $t9, $a0, 1 +/* 0F9F20 7F0C53B0 13200005 */ beqz $t9, .Ljp7F0C53C8 +/* 0F9F24 7F0C53B4 03202025 */ move $a0, $t9 +/* 0F9F28 7F0C53B8 3C048009 */ lui $a0, %hi(stop_play_flag) # $a0, 0x8009 +/* 0F9F2C 7F0C53BC 8C84C770 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0F9F30 7F0C53C0 2C8B0001 */ sltiu $t3, $a0, 1 +/* 0F9F34 7F0C53C4 01602025 */ move $a0, $t3 +.Ljp7F0C53C8: +/* 0F9F38 7F0C53C8 0FC3131F */ jal true_if_displaying_score_in_mp +/* 0F9F3C 7F0C53CC 00000000 */ nop +/* 0F9F40 7F0C53D0 1040014B */ beqz $v0, .Ljp7F0C5900 +/* 0F9F44 7F0C53D4 00000000 */ nop +/* 0F9F48 7F0C53D8 0FC05202 */ jal get_scenario +/* 0F9F4C 7F0C53DC 00000000 */ nop +/* 0F9F50 7F0C53E0 AFA20080 */ sw $v0, 0x80($sp) +/* 0F9F54 7F0C53E4 0FC30AA2 */ jal get_textptr_for_textID +/* 0F9F58 7F0C53E8 3404A01B */ li $a0, 40987 +/* 0F9F5C 7F0C53EC 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) # $t6, 0x8004 +/* 0F9F60 7F0C53F0 8DCE0EDC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0F9F64 7F0C53F4 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0F9F68 7F0C53F8 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0F9F6C 7F0C53FC 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F9F70 7F0C5400 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F9F74 7F0C5404 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F9F78 7F0C5408 00403025 */ move $a2, $v0 +/* 0F9F7C 7F0C540C AFA00014 */ sw $zero, 0x14($sp) +/* 0F9F80 7F0C5410 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0F9F84 7F0C5414 AFAE0010 */ sw $t6, 0x10($sp) +/* 0F9F88 7F0C5418 0C001145 */ jal get_video2_settings_ulx +/* 0F9F8C 7F0C541C 00000000 */ nop +/* 0F9F90 7F0C5420 8FAD00A8 */ lw $t5, 0xa8($sp) +/* 0F9F94 7F0C5424 8FAF00C0 */ lw $t7, 0xc0($sp) +/* 0F9F98 7F0C5428 004D6021 */ addu $t4, $v0, $t5 +/* 0F9F9C 7F0C542C 000FC043 */ sra $t8, $t7, 1 +/* 0F9FA0 7F0C5430 01982023 */ subu $a0, $t4, $t8 +/* 0F9FA4 7F0C5434 24840050 */ addiu $a0, $a0, 0x50 +/* 0F9FA8 7F0C5438 0C001149 */ jal get_video2_settings_uly +/* 0F9FAC 7F0C543C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9FB0 7F0C5440 8FB900BC */ lw $t9, 0xbc($sp) +/* 0F9FB4 7F0C5444 00195843 */ sra $t3, $t9, 1 +/* 0F9FB8 7F0C5448 004B7023 */ subu $t6, $v0, $t3 +/* 0F9FBC 7F0C544C 25CD0035 */ addiu $t5, $t6, 0x35 +/* 0F9FC0 7F0C5450 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9FC4 7F0C5454 AFAD00C8 */ sw $t5, 0xc8($sp) +/* 0F9FC8 7F0C5458 00028400 */ sll $s0, $v0, 0x10 +/* 0F9FCC 7F0C545C 00107C03 */ sra $t7, $s0, 0x10 +/* 0F9FD0 7F0C5460 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9FD4 7F0C5464 01E08025 */ move $s0, $t7 +/* 0F9FD8 7F0C5468 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 +/* 0F9FDC 7F0C546C 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) # $t8, 0x8004 +/* 0F9FE0 7F0C5470 8F180EDC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0F9FE4 7F0C5474 8D8C0EE0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 0F9FE8 7F0C5478 3C1900FF */ lui $t9, (0x00FF00B0 >> 16) # lui $t9, 0xff +/* 0F9FEC 7F0C547C 373900B0 */ ori $t9, (0x00FF00B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0F9FF0 7F0C5480 AFB90018 */ sw $t9, 0x18($sp) +/* 0F9FF4 7F0C5484 02202025 */ move $a0, $s1 +/* 0F9FF8 7F0C5488 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9FFC 7F0C548C 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA000 7F0C5490 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA004 7F0C5494 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA008 7F0C5498 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA00C 7F0C549C AFA00024 */ sw $zero, 0x24($sp) +/* 0FA010 7F0C54A0 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA014 7F0C54A4 AFB80014 */ sw $t8, 0x14($sp) +/* 0FA018 7F0C54A8 0FC2B99B */ jal en_text_write_stuff +/* 0FA01C 7F0C54AC AFAC0010 */ sw $t4, 0x10($sp) +/* 0FA020 7F0C54B0 8FA30080 */ lw $v1, 0x80($sp) +/* 0FA024 7F0C54B4 24010005 */ li $at, 5 +/* 0FA028 7F0C54B8 00408825 */ move $s1, $v0 +/* 0FA02C 7F0C54BC 1061000A */ beq $v1, $at, .Ljp7F0C54E8 +/* 0FA030 7F0C54C0 8FAB00D4 */ lw $t3, 0xd4($sp) +/* 0FA034 7F0C54C4 24010006 */ li $at, 6 +/* 0FA038 7F0C54C8 10610007 */ beq $v1, $at, .Ljp7F0C54E8 +/* 0FA03C 7F0C54CC 24010007 */ li $at, 7 +/* 0FA040 7F0C54D0 10610005 */ beq $v1, $at, .Ljp7F0C54E8 +/* 0FA044 7F0C54D4 24010002 */ li $at, 2 +/* 0FA048 7F0C54D8 10610003 */ beq $v1, $at, .Ljp7F0C54E8 +/* 0FA04C 7F0C54DC 24010003 */ li $at, 3 +/* 0FA050 7F0C54E0 14610016 */ bne $v1, $at, .Ljp7F0C553C +/* 0FA054 7F0C54E4 240D0001 */ li $t5, 1 +.Ljp7F0C54E8: +/* 0FA058 7F0C54E8 000B70C0 */ sll $t6, $t3, 3 +/* 0FA05C 7F0C54EC 01CB7023 */ subu $t6, $t6, $t3 +/* 0FA060 7F0C54F0 000E7100 */ sll $t6, $t6, 4 +/* 0FA064 7F0C54F4 3C0D8008 */ lui $t5, %hi(player1_player_data+105) +/* 0FA068 7F0C54F8 01AE6821 */ addu $t5, $t5, $t6 +/* 0FA06C 7F0C54FC 91AD9FC9 */ lbu $t5, %lo(player1_player_data+105)($t5) +/* 0FA070 7F0C5500 24190005 */ li $t9, 5 +/* 0FA074 7F0C5504 240B0004 */ li $t3, 4 +/* 0FA078 7F0C5508 15A00008 */ bnez $t5, .Ljp7F0C552C +/* 0FA07C 7F0C550C 240E0002 */ li $t6, 2 +/* 0FA080 7F0C5510 240F0003 */ li $t7, 3 +/* 0FA084 7F0C5514 240C0002 */ li $t4, 2 +/* 0FA088 7F0C5518 24180004 */ li $t8, 4 +/* 0FA08C 7F0C551C AFAF008C */ sw $t7, 0x8c($sp) +/* 0FA090 7F0C5520 AFAC0088 */ sw $t4, 0x88($sp) +/* 0FA094 7F0C5524 10000008 */ b .Ljp7F0C5548 +/* 0FA098 7F0C5528 AFB80084 */ sw $t8, 0x84($sp) +.Ljp7F0C552C: +/* 0FA09C 7F0C552C AFB9008C */ sw $t9, 0x8c($sp) +/* 0FA0A0 7F0C5530 AFAB0088 */ sw $t3, 0x88($sp) +/* 0FA0A4 7F0C5534 10000004 */ b .Ljp7F0C5548 +/* 0FA0A8 7F0C5538 AFAE0084 */ sw $t6, 0x84($sp) +.Ljp7F0C553C: +/* 0FA0AC 7F0C553C AFAD008C */ sw $t5, 0x8c($sp) +/* 0FA0B0 7F0C5540 AFA00088 */ sw $zero, 0x88($sp) +/* 0FA0B4 7F0C5544 AFA00084 */ sw $zero, 0x84($sp) +.Ljp7F0C5548: +/* 0FA0B8 7F0C5548 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0FA0BC 7F0C554C 24010002 */ li $at, 2 +/* 0FA0C0 7F0C5550 15E1004E */ bne $t7, $at, .Ljp7F0C568C +/* 0FA0C4 7F0C5554 00000000 */ nop +/* 0FA0C8 7F0C5558 0C001145 */ jal get_video2_settings_ulx +/* 0FA0CC 7F0C555C 00000000 */ nop +/* 0FA0D0 7F0C5560 00028400 */ sll $s0, $v0, 0x10 +/* 0FA0D4 7F0C5564 00106403 */ sra $t4, $s0, 0x10 +/* 0FA0D8 7F0C5568 0C001149 */ jal get_video2_settings_uly +/* 0FA0DC 7F0C556C 01808025 */ move $s0, $t4 +/* 0FA0E0 7F0C5570 8FA300D4 */ lw $v1, 0xd4($sp) +/* 0FA0E4 7F0C5574 00024400 */ sll $t0, $v0, 0x10 +/* 0FA0E8 7F0C5578 0008C403 */ sra $t8, $t0, 0x10 +/* 0FA0EC 7F0C557C 14600004 */ bnez $v1, .Ljp7F0C5590 +/* 0FA0F0 7F0C5580 03004025 */ move $t0, $t8 +/* 0FA0F4 7F0C5584 8FB9008C */ lw $t9, 0x8c($sp) +/* 0FA0F8 7F0C5588 1000000F */ b .Ljp7F0C55C8 +/* 0FA0FC 7F0C558C AFB90050 */ sw $t9, 0x50($sp) +.Ljp7F0C5590: +/* 0FA100 7F0C5590 000370C0 */ sll $t6, $v1, 3 +/* 0FA104 7F0C5594 01C37023 */ subu $t6, $t6, $v1 +/* 0FA108 7F0C5598 000E7100 */ sll $t6, $t6, 4 +/* 0FA10C 7F0C559C 3C0D8008 */ lui $t5, %hi(player1_player_data + 0x69) +/* 0FA110 7F0C55A0 01AE6821 */ addu $t5, $t5, $t6 +/* 0FA114 7F0C55A4 3C0B8008 */ lui $t3, %hi(player1_player_data + 0x69) # $t3, 0x8008 +/* 0FA118 7F0C55A8 916B9FC9 */ lbu $t3, %lo(player1_player_data + 0x69)($t3) +/* 0FA11C 7F0C55AC 91AD9FC9 */ lbu $t5, %lo(player1_player_data + 0x69)($t5) +/* 0FA120 7F0C55B0 8FA60084 */ lw $a2, 0x84($sp) +/* 0FA124 7F0C55B4 156D0003 */ bne $t3, $t5, .Ljp7F0C55C4 +/* 0FA128 7F0C55B8 00000000 */ nop +/* 0FA12C 7F0C55BC 10000001 */ b .Ljp7F0C55C4 +/* 0FA130 7F0C55C0 8FA60088 */ lw $a2, 0x88($sp) +.Ljp7F0C55C4: +/* 0FA134 7F0C55C4 AFA60050 */ sw $a2, 0x50($sp) +.Ljp7F0C55C8: +/* 0FA138 7F0C55C8 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FA13C 7F0C55CC 8FAC0050 */ lw $t4, 0x50($sp) +/* 0FA140 7F0C55D0 02202025 */ move $a0, $s1 +/* 0FA144 7F0C55D4 020F2821 */ addu $a1, $s0, $t7 +/* 0FA148 7F0C55D8 24A50050 */ addiu $a1, $a1, 0x50 +/* 0FA14C 7F0C55DC 25060046 */ addiu $a2, $t0, 0x46 +/* 0FA150 7F0C55E0 8FA70094 */ lw $a3, 0x94($sp) +/* 0FA154 7F0C55E4 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA158 7F0C55E8 AFAC0010 */ sw $t4, 0x10($sp) +/* 0FA15C 7F0C55EC 0C001145 */ jal get_video2_settings_ulx +/* 0FA160 7F0C55F0 00408825 */ move $s1, $v0 +/* 0FA164 7F0C55F4 00028400 */ sll $s0, $v0, 0x10 +/* 0FA168 7F0C55F8 0010C403 */ sra $t8, $s0, 0x10 +/* 0FA16C 7F0C55FC 0C001149 */ jal get_video2_settings_uly +/* 0FA170 7F0C5600 03008025 */ move $s0, $t8 +/* 0FA174 7F0C5604 8FA300D4 */ lw $v1, 0xd4($sp) +/* 0FA178 7F0C5608 00024400 */ sll $t0, $v0, 0x10 +/* 0FA17C 7F0C560C 0008CC03 */ sra $t9, $t0, 0x10 +/* 0FA180 7F0C5610 24010001 */ li $at, 1 +/* 0FA184 7F0C5614 14610004 */ bne $v1, $at, .Ljp7F0C5628 +/* 0FA188 7F0C5618 03204025 */ move $t0, $t9 +/* 0FA18C 7F0C561C 8FAE008C */ lw $t6, 0x8c($sp) +/* 0FA190 7F0C5620 1000000F */ b .Ljp7F0C5660 +/* 0FA194 7F0C5624 AFAE0050 */ sw $t6, 0x50($sp) +.Ljp7F0C5628: +/* 0FA198 7F0C5628 000368C0 */ sll $t5, $v1, 3 +/* 0FA19C 7F0C562C 01A36823 */ subu $t5, $t5, $v1 +/* 0FA1A0 7F0C5630 3C028008 */ lui $v0, %hi(player1_player_data) # $v0, 0x8008 +/* 0FA1A4 7F0C5634 24429F60 */ addiu $v0, %lo(player1_player_data) # addiu $v0, $v0, -0x60a0 +/* 0FA1A8 7F0C5638 000D6900 */ sll $t5, $t5, 4 +/* 0FA1AC 7F0C563C 004D7821 */ addu $t7, $v0, $t5 +/* 0FA1B0 7F0C5640 91EC0069 */ lbu $t4, 0x69($t7) +/* 0FA1B4 7F0C5644 904B00D9 */ lbu $t3, 0xd9($v0) +/* 0FA1B8 7F0C5648 8FA60084 */ lw $a2, 0x84($sp) +/* 0FA1BC 7F0C564C 156C0003 */ bne $t3, $t4, .Ljp7F0C565C +/* 0FA1C0 7F0C5650 00000000 */ nop +/* 0FA1C4 7F0C5654 10000001 */ b .Ljp7F0C565C +/* 0FA1C8 7F0C5658 8FA60088 */ lw $a2, 0x88($sp) +.Ljp7F0C565C: +/* 0FA1CC 7F0C565C AFA60050 */ sw $a2, 0x50($sp) +.Ljp7F0C5660: +/* 0FA1D0 7F0C5660 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0FA1D4 7F0C5664 8FB90050 */ lw $t9, 0x50($sp) +/* 0FA1D8 7F0C5668 02202025 */ move $a0, $s1 +/* 0FA1DC 7F0C566C 02182821 */ addu $a1, $s0, $t8 +/* 0FA1E0 7F0C5670 24A50050 */ addiu $a1, $a1, 0x50 +/* 0FA1E4 7F0C5674 25060056 */ addiu $a2, $t0, 0x56 +/* 0FA1E8 7F0C5678 8FA70098 */ lw $a3, 0x98($sp) +/* 0FA1EC 7F0C567C 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA1F0 7F0C5680 AFB90010 */ sw $t9, 0x10($sp) +/* 0FA1F4 7F0C5684 1000009E */ b .Ljp7F0C5900 +/* 0FA1F8 7F0C5688 00408825 */ move $s1, $v0 +.Ljp7F0C568C: +/* 0FA1FC 7F0C568C 0C001145 */ jal get_video2_settings_ulx +/* 0FA200 7F0C5690 00000000 */ nop +/* 0FA204 7F0C5694 00028400 */ sll $s0, $v0, 0x10 +/* 0FA208 7F0C5698 00107403 */ sra $t6, $s0, 0x10 +/* 0FA20C 7F0C569C 0C001149 */ jal get_video2_settings_uly +/* 0FA210 7F0C56A0 01C08025 */ move $s0, $t6 +/* 0FA214 7F0C56A4 8FA300D4 */ lw $v1, 0xd4($sp) +/* 0FA218 7F0C56A8 00024400 */ sll $t0, $v0, 0x10 +/* 0FA21C 7F0C56AC 00086C03 */ sra $t5, $t0, 0x10 +/* 0FA220 7F0C56B0 14600004 */ bnez $v1, .Ljp7F0C56C4 +/* 0FA224 7F0C56B4 01A04025 */ move $t0, $t5 +/* 0FA228 7F0C56B8 8FAF008C */ lw $t7, 0x8c($sp) +/* 0FA22C 7F0C56BC 1000000F */ b .Ljp7F0C56FC +/* 0FA230 7F0C56C0 AFAF0050 */ sw $t7, 0x50($sp) +.Ljp7F0C56C4: +/* 0FA234 7F0C56C4 000360C0 */ sll $t4, $v1, 3 +/* 0FA238 7F0C56C8 01836023 */ subu $t4, $t4, $v1 +/* 0FA23C 7F0C56CC 000C6100 */ sll $t4, $t4, 4 +/* 0FA240 7F0C56D0 3C188008 */ lui $t8, %hi(player1_player_data + 0x69) +/* 0FA244 7F0C56D4 030CC021 */ addu $t8, $t8, $t4 +/* 0FA248 7F0C56D8 3C0B8008 */ lui $t3, %hi(player1_player_data + 0x69) # $t3, 0x8008 +/* 0FA24C 7F0C56DC 916B9FC9 */ lbu $t3, %lo(player1_player_data + 0x69)($t3) +/* 0FA250 7F0C56E0 93189FC9 */ lbu $t8, %lo(player1_player_data + 0x69)($t8) +/* 0FA254 7F0C56E4 8FA60084 */ lw $a2, 0x84($sp) +/* 0FA258 7F0C56E8 15780003 */ bne $t3, $t8, .Ljp7F0C56F8 +/* 0FA25C 7F0C56EC 00000000 */ nop +/* 0FA260 7F0C56F0 10000001 */ b .Ljp7F0C56F8 +/* 0FA264 7F0C56F4 8FA60088 */ lw $a2, 0x88($sp) +.Ljp7F0C56F8: +/* 0FA268 7F0C56F8 AFA60050 */ sw $a2, 0x50($sp) +.Ljp7F0C56FC: +/* 0FA26C 7F0C56FC 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0FA270 7F0C5700 8FAE0050 */ lw $t6, 0x50($sp) +/* 0FA274 7F0C5704 02202025 */ move $a0, $s1 +/* 0FA278 7F0C5708 02192821 */ addu $a1, $s0, $t9 +/* 0FA27C 7F0C570C 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FA280 7F0C5710 25060046 */ addiu $a2, $t0, 0x46 +/* 0FA284 7F0C5714 8FA70094 */ lw $a3, 0x94($sp) +/* 0FA288 7F0C5718 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA28C 7F0C571C AFAE0010 */ sw $t6, 0x10($sp) +/* 0FA290 7F0C5720 0C001145 */ jal get_video2_settings_ulx +/* 0FA294 7F0C5724 00408825 */ move $s1, $v0 +/* 0FA298 7F0C5728 00028400 */ sll $s0, $v0, 0x10 +/* 0FA29C 7F0C572C 00106C03 */ sra $t5, $s0, 0x10 +/* 0FA2A0 7F0C5730 0C001149 */ jal get_video2_settings_uly +/* 0FA2A4 7F0C5734 01A08025 */ move $s0, $t5 +/* 0FA2A8 7F0C5738 8FA300D4 */ lw $v1, 0xd4($sp) +/* 0FA2AC 7F0C573C 00024400 */ sll $t0, $v0, 0x10 +/* 0FA2B0 7F0C5740 00087C03 */ sra $t7, $t0, 0x10 +/* 0FA2B4 7F0C5744 24010001 */ li $at, 1 +/* 0FA2B8 7F0C5748 14610004 */ bne $v1, $at, .Ljp7F0C575C +/* 0FA2BC 7F0C574C 01E04025 */ move $t0, $t7 +/* 0FA2C0 7F0C5750 8FAC008C */ lw $t4, 0x8c($sp) +/* 0FA2C4 7F0C5754 1000000F */ b .Ljp7F0C5794 +/* 0FA2C8 7F0C5758 AFAC0050 */ sw $t4, 0x50($sp) +.Ljp7F0C575C: +/* 0FA2CC 7F0C575C 0003C0C0 */ sll $t8, $v1, 3 +/* 0FA2D0 7F0C5760 0303C023 */ subu $t8, $t8, $v1 +/* 0FA2D4 7F0C5764 0018C100 */ sll $t8, $t8, 4 +/* 0FA2D8 7F0C5768 3C198008 */ lui $t9, %hi(player1_player_data + 0x69) +/* 0FA2DC 7F0C576C 0338C821 */ addu $t9, $t9, $t8 +/* 0FA2E0 7F0C5770 3C0B8008 */ lui $t3, %hi(player2_player_data + 0x69) # $t3, 0x8008 +/* 0FA2E4 7F0C5774 916BA039 */ lbu $t3, %lo(player2_player_data + 0x69)($t3) +/* 0FA2E8 7F0C5778 93399FC9 */ lbu $t9, %lo(player1_player_data + 0x69)($t9) +/* 0FA2EC 7F0C577C 8FA60084 */ lw $a2, 0x84($sp) +/* 0FA2F0 7F0C5780 15790003 */ bne $t3, $t9, .Ljp7F0C5790 +/* 0FA2F4 7F0C5784 00000000 */ nop +/* 0FA2F8 7F0C5788 10000001 */ b .Ljp7F0C5790 +/* 0FA2FC 7F0C578C 8FA60088 */ lw $a2, 0x88($sp) +.Ljp7F0C5790: +/* 0FA300 7F0C5790 AFA60050 */ sw $a2, 0x50($sp) +.Ljp7F0C5794: +/* 0FA304 7F0C5794 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0FA308 7F0C5798 8FAD0050 */ lw $t5, 0x50($sp) +/* 0FA30C 7F0C579C 02202025 */ move $a0, $s1 +/* 0FA310 7F0C57A0 020E2821 */ addu $a1, $s0, $t6 +/* 0FA314 7F0C57A4 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA318 7F0C57A8 25060046 */ addiu $a2, $t0, 0x46 +/* 0FA31C 7F0C57AC 8FA70098 */ lw $a3, 0x98($sp) +/* 0FA320 7F0C57B0 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA324 7F0C57B4 AFAD0010 */ sw $t5, 0x10($sp) +/* 0FA328 7F0C57B8 0C001145 */ jal get_video2_settings_ulx +/* 0FA32C 7F0C57BC 00408825 */ move $s1, $v0 +/* 0FA330 7F0C57C0 00028400 */ sll $s0, $v0, 0x10 +/* 0FA334 7F0C57C4 00107C03 */ sra $t7, $s0, 0x10 +/* 0FA338 7F0C57C8 0C001149 */ jal get_video2_settings_uly +/* 0FA33C 7F0C57CC 01E08025 */ move $s0, $t7 +/* 0FA340 7F0C57D0 8FA300D4 */ lw $v1, 0xd4($sp) +/* 0FA344 7F0C57D4 00024400 */ sll $t0, $v0, 0x10 +/* 0FA348 7F0C57D8 00086403 */ sra $t4, $t0, 0x10 +/* 0FA34C 7F0C57DC 24010002 */ li $at, 2 +/* 0FA350 7F0C57E0 14610004 */ bne $v1, $at, .Ljp7F0C57F4 +/* 0FA354 7F0C57E4 01804025 */ move $t0, $t4 +/* 0FA358 7F0C57E8 8FB8008C */ lw $t8, 0x8c($sp) +/* 0FA35C 7F0C57EC 1000000F */ b .Ljp7F0C582C +/* 0FA360 7F0C57F0 AFB80050 */ sw $t8, 0x50($sp) +.Ljp7F0C57F4: +/* 0FA364 7F0C57F4 0003C8C0 */ sll $t9, $v1, 3 +/* 0FA368 7F0C57F8 0323C823 */ subu $t9, $t9, $v1 +/* 0FA36C 7F0C57FC 0019C900 */ sll $t9, $t9, 4 +/* 0FA370 7F0C5800 3C0E8008 */ lui $t6, %hi(player1_player_data + 0x69) +/* 0FA374 7F0C5804 01D97021 */ addu $t6, $t6, $t9 +/* 0FA378 7F0C5808 3C0B8008 */ lui $t3, %hi(player3_player_data + 0x69) # $t3, 0x8008 +/* 0FA37C 7F0C580C 916BA0A9 */ lbu $t3, %lo(player3_player_data + 0x69)($t3) +/* 0FA380 7F0C5810 91CE9FC9 */ lbu $t6, %lo(player1_player_data + 0x69)($t6) +/* 0FA384 7F0C5814 8FA60084 */ lw $a2, 0x84($sp) +/* 0FA388 7F0C5818 156E0003 */ bne $t3, $t6, .Ljp7F0C5828 +/* 0FA38C 7F0C581C 00000000 */ nop +/* 0FA390 7F0C5820 10000001 */ b .Ljp7F0C5828 +/* 0FA394 7F0C5824 8FA60088 */ lw $a2, 0x88($sp) +.Ljp7F0C5828: +/* 0FA398 7F0C5828 AFA60050 */ sw $a2, 0x50($sp) +.Ljp7F0C582C: +/* 0FA39C 7F0C582C 8FAD00A8 */ lw $t5, 0xa8($sp) +/* 0FA3A0 7F0C5830 8FAF0050 */ lw $t7, 0x50($sp) +/* 0FA3A4 7F0C5834 02202025 */ move $a0, $s1 +/* 0FA3A8 7F0C5838 020D2821 */ addu $a1, $s0, $t5 +/* 0FA3AC 7F0C583C 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FA3B0 7F0C5840 25060056 */ addiu $a2, $t0, 0x56 +/* 0FA3B4 7F0C5844 8FA7009C */ lw $a3, 0x9c($sp) +/* 0FA3B8 7F0C5848 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA3BC 7F0C584C AFAF0010 */ sw $t7, 0x10($sp) +/* 0FA3C0 7F0C5850 8FAC00D0 */ lw $t4, 0xd0($sp) +/* 0FA3C4 7F0C5854 24010004 */ li $at, 4 +/* 0FA3C8 7F0C5858 00408825 */ move $s1, $v0 +/* 0FA3CC 7F0C585C 15810028 */ bne $t4, $at, .Ljp7F0C5900 +/* 0FA3D0 7F0C5860 00000000 */ nop +/* 0FA3D4 7F0C5864 0C001145 */ jal get_video2_settings_ulx +/* 0FA3D8 7F0C5868 00000000 */ nop +/* 0FA3DC 7F0C586C 00028400 */ sll $s0, $v0, 0x10 +/* 0FA3E0 7F0C5870 0010C403 */ sra $t8, $s0, 0x10 +/* 0FA3E4 7F0C5874 0C001149 */ jal get_video2_settings_uly +/* 0FA3E8 7F0C5878 03008025 */ move $s0, $t8 +/* 0FA3EC 7F0C587C 8FA300D4 */ lw $v1, 0xd4($sp) +/* 0FA3F0 7F0C5880 00024400 */ sll $t0, $v0, 0x10 +/* 0FA3F4 7F0C5884 0008CC03 */ sra $t9, $t0, 0x10 +/* 0FA3F8 7F0C5888 24010003 */ li $at, 3 +/* 0FA3FC 7F0C588C 14610004 */ bne $v1, $at, .Ljp7F0C58A0 +/* 0FA400 7F0C5890 03204025 */ move $t0, $t9 +/* 0FA404 7F0C5894 8FAB008C */ lw $t3, 0x8c($sp) +/* 0FA408 7F0C5898 1000000F */ b .Ljp7F0C58D8 +/* 0FA40C 7F0C589C AFAB0050 */ sw $t3, 0x50($sp) +.Ljp7F0C58A0: +/* 0FA410 7F0C58A0 000368C0 */ sll $t5, $v1, 3 +/* 0FA414 7F0C58A4 01A36823 */ subu $t5, $t5, $v1 +/* 0FA418 7F0C58A8 3C028008 */ lui $v0, %hi(player1_player_data) # $v0, 0x8008 +/* 0FA41C 7F0C58AC 24429F60 */ addiu $v0, %lo(player1_player_data) # addiu $v0, $v0, -0x60a0 +/* 0FA420 7F0C58B0 000D6900 */ sll $t5, $t5, 4 +/* 0FA424 7F0C58B4 004D7821 */ addu $t7, $v0, $t5 +/* 0FA428 7F0C58B8 91EC0069 */ lbu $t4, 0x69($t7) +/* 0FA42C 7F0C58BC 904E01B9 */ lbu $t6, 0x1b9($v0) +/* 0FA430 7F0C58C0 8FA60084 */ lw $a2, 0x84($sp) +/* 0FA434 7F0C58C4 15CC0003 */ bne $t6, $t4, .Ljp7F0C58D4 +/* 0FA438 7F0C58C8 00000000 */ nop +/* 0FA43C 7F0C58CC 10000001 */ b .Ljp7F0C58D4 +/* 0FA440 7F0C58D0 8FA60088 */ lw $a2, 0x88($sp) +.Ljp7F0C58D4: +/* 0FA444 7F0C58D4 AFA60050 */ sw $a2, 0x50($sp) +.Ljp7F0C58D8: +/* 0FA448 7F0C58D8 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0FA44C 7F0C58DC 8FB90050 */ lw $t9, 0x50($sp) +/* 0FA450 7F0C58E0 02202025 */ move $a0, $s1 +/* 0FA454 7F0C58E4 02182821 */ addu $a1, $s0, $t8 +/* 0FA458 7F0C58E8 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA45C 7F0C58EC 25060056 */ addiu $a2, $t0, 0x56 +/* 0FA460 7F0C58F0 8FA700A0 */ lw $a3, 0xa0($sp) +/* 0FA464 7F0C58F4 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA468 7F0C58F8 AFB90010 */ sw $t9, 0x10($sp) +/* 0FA46C 7F0C58FC 00408825 */ move $s1, $v0 +.Ljp7F0C5900: +/* 0FA470 7F0C5900 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0FA474 7F0C5904 100003BB */ b .Ljp7F0C67F4 +/* 0FA478 7F0C5908 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0FA47C 7F0C590C 24010002 */ li $at, 2 +.Ljp7F0C5910: +/* 0FA480 7F0C5910 1441011C */ bne $v0, $at, .Ljp7F0C5D84 +/* 0FA484 7F0C5914 3C048009 */ lui $a0, %hi(is_gameover_flag) # $a0, 0x8009 +/* 0FA488 7F0C5918 8C84C774 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0FA48C 7F0C591C 2C8B0001 */ sltiu $t3, $a0, 1 +/* 0FA490 7F0C5920 11600005 */ beqz $t3, .Ljp7F0C5938 +/* 0FA494 7F0C5924 01602025 */ move $a0, $t3 +/* 0FA498 7F0C5928 3C048009 */ lui $a0, %hi(stop_play_flag) # $a0, 0x8009 +/* 0FA49C 7F0C592C 8C84C770 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0FA4A0 7F0C5930 2C8D0001 */ sltiu $t5, $a0, 1 +/* 0FA4A4 7F0C5934 01A02025 */ move $a0, $t5 +.Ljp7F0C5938: +/* 0FA4A8 7F0C5938 0FC31303 */ jal true_if_displaying_rank_in_mp +/* 0FA4AC 7F0C593C 00000000 */ nop +/* 0FA4B0 7F0C5940 10400034 */ beqz $v0, .Ljp7F0C5A14 +/* 0FA4B4 7F0C5944 27A400AC */ addiu $a0, $sp, 0xac +/* 0FA4B8 7F0C5948 0FC31251 */ jal write_playerrank_to_buffer +/* 0FA4BC 7F0C594C 8FA500D4 */ lw $a1, 0xd4($sp) +/* 0FA4C0 7F0C5950 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 +/* 0FA4C4 7F0C5954 8DEF0EDC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0FA4C8 7F0C5958 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FA4CC 7F0C595C 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA4D0 7F0C5960 27A400BC */ addiu $a0, $sp, 0xbc +/* 0FA4D4 7F0C5964 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0FA4D8 7F0C5968 27A600AC */ addiu $a2, $sp, 0xac +/* 0FA4DC 7F0C596C AFA00014 */ sw $zero, 0x14($sp) +/* 0FA4E0 7F0C5970 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FA4E4 7F0C5974 AFAF0010 */ sw $t7, 0x10($sp) +/* 0FA4E8 7F0C5978 0C001145 */ jal get_video2_settings_ulx +/* 0FA4EC 7F0C597C 00000000 */ nop +/* 0FA4F0 7F0C5980 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0FA4F4 7F0C5984 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0FA4F8 7F0C5988 004E6021 */ addu $t4, $v0, $t6 +/* 0FA4FC 7F0C598C 0018C843 */ sra $t9, $t8, 1 +/* 0FA500 7F0C5990 01992023 */ subu $a0, $t4, $t9 +/* 0FA504 7F0C5994 24840050 */ addiu $a0, $a0, 0x50 +/* 0FA508 7F0C5998 0C001149 */ jal get_video2_settings_uly +/* 0FA50C 7F0C599C AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA510 7F0C59A0 8FAB00BC */ lw $t3, 0xbc($sp) +/* 0FA514 7F0C59A4 000B6843 */ sra $t5, $t3, 1 +/* 0FA518 7F0C59A8 004D7823 */ subu $t7, $v0, $t5 +/* 0FA51C 7F0C59AC 25EE0025 */ addiu $t6, $t7, 0x25 +/* 0FA520 7F0C59B0 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA524 7F0C59B4 AFAE00C8 */ sw $t6, 0xc8($sp) +/* 0FA528 7F0C59B8 00028400 */ sll $s0, $v0, 0x10 +/* 0FA52C 7F0C59BC 0010C403 */ sra $t8, $s0, 0x10 +/* 0FA530 7F0C59C0 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA534 7F0C59C4 03008025 */ move $s0, $t8 +/* 0FA538 7F0C59C8 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 +/* 0FA53C 7F0C59CC 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) # $t9, 0x8004 +/* 0FA540 7F0C59D0 8F390EDC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0FA544 7F0C59D4 8D8C0EE0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 0FA548 7F0C59D8 3C0B00FF */ lui $t3, (0x00FF00B0 >> 16) # lui $t3, 0xff +/* 0FA54C 7F0C59DC 356B00B0 */ ori $t3, (0x00FF00B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0FA550 7F0C59E0 AFAB0018 */ sw $t3, 0x18($sp) +/* 0FA554 7F0C59E4 02202025 */ move $a0, $s1 +/* 0FA558 7F0C59E8 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA55C 7F0C59EC 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA560 7F0C59F0 27A700AC */ addiu $a3, $sp, 0xac +/* 0FA564 7F0C59F4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA568 7F0C59F8 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA56C 7F0C59FC AFA00024 */ sw $zero, 0x24($sp) +/* 0FA570 7F0C5A00 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA574 7F0C5A04 AFB90014 */ sw $t9, 0x14($sp) +/* 0FA578 7F0C5A08 0FC2B99B */ jal en_text_write_stuff +/* 0FA57C 7F0C5A0C AFAC0010 */ sw $t4, 0x10($sp) +/* 0FA580 7F0C5A10 00408825 */ move $s1, $v0 +.Ljp7F0C5A14: +/* 0FA584 7F0C5A14 0FC30AA2 */ jal get_textptr_for_textID +/* 0FA588 7F0C5A18 3404A01C */ li $a0, 40988 +/* 0FA58C 7F0C5A1C 3404A01D */ li $a0, 40989 +/* 0FA590 7F0C5A20 0FC30AA2 */ jal get_textptr_for_textID +/* 0FA594 7F0C5A24 AFA2004C */ sw $v0, 0x4c($sp) +/* 0FA598 7F0C5A28 8FA700D4 */ lw $a3, 0xd4($sp) +/* 0FA59C 7F0C5A2C 3C058006 */ lui $a1, %hi(ascii_pnum_KILLS) # $a1, 0x8006 +/* 0FA5A0 7F0C5A30 24A5BC70 */ addiu $a1, %lo(ascii_pnum_KILLS) # addiu $a1, $a1, -0x4390 +/* 0FA5A4 7F0C5A34 8FA6004C */ lw $a2, 0x4c($sp) +/* 0FA5A8 7F0C5A38 27A400AC */ addiu $a0, $sp, 0xac +/* 0FA5AC 7F0C5A3C AFA20010 */ sw $v0, 0x10($sp) +/* 0FA5B0 7F0C5A40 0C002B29 */ jal sprintf +/* 0FA5B4 7F0C5A44 24E70001 */ addiu $a3, $a3, 1 +/* 0FA5B8 7F0C5A48 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0FA5BC 7F0C5A4C 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FA5C0 7F0C5A50 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FA5C4 7F0C5A54 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA5C8 7F0C5A58 27A400BC */ addiu $a0, $sp, 0xbc +/* 0FA5CC 7F0C5A5C 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0FA5D0 7F0C5A60 27A600AC */ addiu $a2, $sp, 0xac +/* 0FA5D4 7F0C5A64 AFA00014 */ sw $zero, 0x14($sp) +/* 0FA5D8 7F0C5A68 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FA5DC 7F0C5A6C AFAD0010 */ sw $t5, 0x10($sp) +/* 0FA5E0 7F0C5A70 0C001145 */ jal get_video2_settings_ulx +/* 0FA5E4 7F0C5A74 00000000 */ nop +/* 0FA5E8 7F0C5A78 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FA5EC 7F0C5A7C 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0FA5F0 7F0C5A80 004F7021 */ addu $t6, $v0, $t7 +/* 0FA5F4 7F0C5A84 00186043 */ sra $t4, $t8, 1 +/* 0FA5F8 7F0C5A88 01CC2023 */ subu $a0, $t6, $t4 +/* 0FA5FC 7F0C5A8C 24840050 */ addiu $a0, $a0, 0x50 +/* 0FA600 7F0C5A90 0C001149 */ jal get_video2_settings_uly +/* 0FA604 7F0C5A94 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA608 7F0C5A98 8FB900BC */ lw $t9, 0xbc($sp) +/* 0FA60C 7F0C5A9C 00195843 */ sra $t3, $t9, 1 +/* 0FA610 7F0C5AA0 004B6823 */ subu $t5, $v0, $t3 +/* 0FA614 7F0C5AA4 25AF0035 */ addiu $t7, $t5, 0x35 +/* 0FA618 7F0C5AA8 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA61C 7F0C5AAC AFAF00C8 */ sw $t7, 0xc8($sp) +/* 0FA620 7F0C5AB0 00028400 */ sll $s0, $v0, 0x10 +/* 0FA624 7F0C5AB4 0010C403 */ sra $t8, $s0, 0x10 +/* 0FA628 7F0C5AB8 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA62C 7F0C5ABC 03008025 */ move $s0, $t8 +/* 0FA630 7F0C5AC0 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) # $t6, 0x8004 +/* 0FA634 7F0C5AC4 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) # $t4, 0x8004 +/* 0FA638 7F0C5AC8 8D8C0EDC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FA63C 7F0C5ACC 8DCE0EE0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0FA640 7F0C5AD0 3C1900FF */ lui $t9, (0x00FF00B0 >> 16) # lui $t9, 0xff +/* 0FA644 7F0C5AD4 373900B0 */ ori $t9, (0x00FF00B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0FA648 7F0C5AD8 AFB90018 */ sw $t9, 0x18($sp) +/* 0FA64C 7F0C5ADC 02202025 */ move $a0, $s1 +/* 0FA650 7F0C5AE0 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA654 7F0C5AE4 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA658 7F0C5AE8 27A700AC */ addiu $a3, $sp, 0xac +/* 0FA65C 7F0C5AEC AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA660 7F0C5AF0 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA664 7F0C5AF4 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA668 7F0C5AF8 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA66C 7F0C5AFC AFAC0014 */ sw $t4, 0x14($sp) +/* 0FA670 7F0C5B00 0FC2B99B */ jal en_text_write_stuff +/* 0FA674 7F0C5B04 AFAE0010 */ sw $t6, 0x10($sp) +/* 0FA678 7F0C5B08 8FAB00D0 */ lw $t3, 0xd0($sp) +/* 0FA67C 7F0C5B0C 00408825 */ move $s1, $v0 +/* 0FA680 7F0C5B10 24010002 */ li $at, 2 +/* 0FA684 7F0C5B14 15610033 */ bne $t3, $at, .Ljp7F0C5BE4 +/* 0FA688 7F0C5B18 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0FA68C 7F0C5B1C 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0FA690 7F0C5B20 50400018 */ beql $v0, $zero, .Ljp7F0C5B84 +/* 0FA694 7F0C5B24 24010001 */ li $at, 1 +/* 0FA698 7F0C5B28 0C001145 */ jal get_video2_settings_ulx +/* 0FA69C 7F0C5B2C 00000000 */ nop +/* 0FA6A0 7F0C5B30 00028400 */ sll $s0, $v0, 0x10 +/* 0FA6A4 7F0C5B34 00106C03 */ sra $t5, $s0, 0x10 +/* 0FA6A8 7F0C5B38 0C001149 */ jal get_video2_settings_uly +/* 0FA6AC 7F0C5B3C 01A08025 */ move $s0, $t5 +/* 0FA6B0 7F0C5B40 8FB800D4 */ lw $t8, 0xd4($sp) +/* 0FA6B4 7F0C5B44 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FA6B8 7F0C5B48 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0FA6BC 7F0C5B4C 001870C0 */ sll $t6, $t8, 3 +/* 0FA6C0 7F0C5B50 01D87023 */ subu $t6, $t6, $t8 +/* 0FA6C4 7F0C5B54 000E7100 */ sll $t6, $t6, 4 +/* 0FA6C8 7F0C5B58 00EE3821 */ addu $a3, $a3, $t6 +/* 0FA6CC 7F0C5B5C 020F2821 */ addu $a1, $s0, $t7 +/* 0FA6D0 7F0C5B60 24A50050 */ addiu $a1, $a1, 0x50 +/* 0FA6D4 7F0C5B64 8CE79F84 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0FA6D8 7F0C5B68 02202025 */ move $a0, $s1 +/* 0FA6DC 7F0C5B6C 24460046 */ addiu $a2, $v0, 0x46 +/* 0FA6E0 7F0C5B70 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA6E4 7F0C5B74 AFA00010 */ sw $zero, 0x10($sp) +/* 0FA6E8 7F0C5B78 00408825 */ move $s1, $v0 +/* 0FA6EC 7F0C5B7C 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0FA6F0 7F0C5B80 24010001 */ li $at, 1 +.Ljp7F0C5B84: +/* 0FA6F4 7F0C5B84 1041007C */ beq $v0, $at, .Ljp7F0C5D78 +/* 0FA6F8 7F0C5B88 000260C0 */ sll $t4, $v0, 3 +/* 0FA6FC 7F0C5B8C 01826023 */ subu $t4, $t4, $v0 +/* 0FA700 7F0C5B90 3C198008 */ lui $t9, %hi(player1_player_data) # $t9, 0x8008 +/* 0FA704 7F0C5B94 27399F60 */ addiu $t9, %lo(player1_player_data) # addiu $t9, $t9, -0x60a0 +/* 0FA708 7F0C5B98 000C6100 */ sll $t4, $t4, 4 +/* 0FA70C 7F0C5B9C 01995821 */ addu $t3, $t4, $t9 +/* 0FA710 7F0C5BA0 0C001145 */ jal get_video2_settings_ulx +/* 0FA714 7F0C5BA4 AFAB0044 */ sw $t3, 0x44($sp) +/* 0FA718 7F0C5BA8 00028400 */ sll $s0, $v0, 0x10 +/* 0FA71C 7F0C5BAC 00106C03 */ sra $t5, $s0, 0x10 +/* 0FA720 7F0C5BB0 0C001149 */ jal get_video2_settings_uly +/* 0FA724 7F0C5BB4 01A08025 */ move $s0, $t5 +/* 0FA728 7F0C5BB8 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FA72C 7F0C5BBC 8FB80044 */ lw $t8, 0x44($sp) +/* 0FA730 7F0C5BC0 02202025 */ move $a0, $s1 +/* 0FA734 7F0C5BC4 020F2821 */ addu $a1, $s0, $t7 +/* 0FA738 7F0C5BC8 8F070028 */ lw $a3, 0x28($t8) +/* 0FA73C 7F0C5BCC AFA00010 */ sw $zero, 0x10($sp) +/* 0FA740 7F0C5BD0 24A50050 */ addiu $a1, $a1, 0x50 +/* 0FA744 7F0C5BD4 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA748 7F0C5BD8 24460056 */ addiu $a2, $v0, 0x56 +/* 0FA74C 7F0C5BDC 10000066 */ b .Ljp7F0C5D78 +/* 0FA750 7F0C5BE0 00408825 */ move $s1, $v0 +.Ljp7F0C5BE4: +/* 0FA754 7F0C5BE4 50400018 */ beql $v0, $zero, .Ljp7F0C5C48 +/* 0FA758 7F0C5BE8 24010001 */ li $at, 1 +/* 0FA75C 7F0C5BEC 0C001145 */ jal get_video2_settings_ulx +/* 0FA760 7F0C5BF0 00000000 */ nop +/* 0FA764 7F0C5BF4 00028400 */ sll $s0, $v0, 0x10 +/* 0FA768 7F0C5BF8 00107403 */ sra $t6, $s0, 0x10 +/* 0FA76C 7F0C5BFC 0C001149 */ jal get_video2_settings_uly +/* 0FA770 7F0C5C00 01C08025 */ move $s0, $t6 +/* 0FA774 7F0C5C04 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FA778 7F0C5C08 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0FA77C 7F0C5C0C 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0FA780 7F0C5C10 001958C0 */ sll $t3, $t9, 3 +/* 0FA784 7F0C5C14 01795823 */ subu $t3, $t3, $t9 +/* 0FA788 7F0C5C18 000B5900 */ sll $t3, $t3, 4 +/* 0FA78C 7F0C5C1C 00EB3821 */ addu $a3, $a3, $t3 +/* 0FA790 7F0C5C20 020C2821 */ addu $a1, $s0, $t4 +/* 0FA794 7F0C5C24 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FA798 7F0C5C28 8CE79F84 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0FA79C 7F0C5C2C 02202025 */ move $a0, $s1 +/* 0FA7A0 7F0C5C30 24460046 */ addiu $a2, $v0, 0x46 +/* 0FA7A4 7F0C5C34 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA7A8 7F0C5C38 AFA00010 */ sw $zero, 0x10($sp) +/* 0FA7AC 7F0C5C3C 00408825 */ move $s1, $v0 +/* 0FA7B0 7F0C5C40 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0FA7B4 7F0C5C44 24010001 */ li $at, 1 +.Ljp7F0C5C48: +/* 0FA7B8 7F0C5C48 10410017 */ beq $v0, $at, .Ljp7F0C5CA8 +/* 0FA7BC 7F0C5C4C 000268C0 */ sll $t5, $v0, 3 +/* 0FA7C0 7F0C5C50 01A26823 */ subu $t5, $t5, $v0 +/* 0FA7C4 7F0C5C54 3C0F8008 */ lui $t7, %hi(player1_player_data) # $t7, 0x8008 +/* 0FA7C8 7F0C5C58 25EF9F60 */ addiu $t7, %lo(player1_player_data) # addiu $t7, $t7, -0x60a0 +/* 0FA7CC 7F0C5C5C 000D6900 */ sll $t5, $t5, 4 +/* 0FA7D0 7F0C5C60 01AFC021 */ addu $t8, $t5, $t7 +/* 0FA7D4 7F0C5C64 0C001145 */ jal get_video2_settings_ulx +/* 0FA7D8 7F0C5C68 AFB80044 */ sw $t8, 0x44($sp) +/* 0FA7DC 7F0C5C6C 00028400 */ sll $s0, $v0, 0x10 +/* 0FA7E0 7F0C5C70 00107403 */ sra $t6, $s0, 0x10 +/* 0FA7E4 7F0C5C74 0C001149 */ jal get_video2_settings_uly +/* 0FA7E8 7F0C5C78 01C08025 */ move $s0, $t6 +/* 0FA7EC 7F0C5C7C 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0FA7F0 7F0C5C80 8FB90044 */ lw $t9, 0x44($sp) +/* 0FA7F4 7F0C5C84 02202025 */ move $a0, $s1 +/* 0FA7F8 7F0C5C88 020C2821 */ addu $a1, $s0, $t4 +/* 0FA7FC 7F0C5C8C 8F270028 */ lw $a3, 0x28($t9) +/* 0FA800 7F0C5C90 AFA00010 */ sw $zero, 0x10($sp) +/* 0FA804 7F0C5C94 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA808 7F0C5C98 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA80C 7F0C5C9C 24460046 */ addiu $a2, $v0, 0x46 +/* 0FA810 7F0C5CA0 00408825 */ move $s1, $v0 +/* 0FA814 7F0C5CA4 8FA200D4 */ lw $v0, 0xd4($sp) +.Ljp7F0C5CA8: +/* 0FA818 7F0C5CA8 24010002 */ li $at, 2 +/* 0FA81C 7F0C5CAC 10410017 */ beq $v0, $at, .Ljp7F0C5D0C +/* 0FA820 7F0C5CB0 000258C0 */ sll $t3, $v0, 3 +/* 0FA824 7F0C5CB4 01625823 */ subu $t3, $t3, $v0 +/* 0FA828 7F0C5CB8 3C0D8008 */ lui $t5, %hi(player1_player_data) # $t5, 0x8008 +/* 0FA82C 7F0C5CBC 25AD9F60 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x60a0 +/* 0FA830 7F0C5CC0 000B5900 */ sll $t3, $t3, 4 +/* 0FA834 7F0C5CC4 016D7821 */ addu $t7, $t3, $t5 +/* 0FA838 7F0C5CC8 0C001145 */ jal get_video2_settings_ulx +/* 0FA83C 7F0C5CCC AFAF0044 */ sw $t7, 0x44($sp) +/* 0FA840 7F0C5CD0 00028400 */ sll $s0, $v0, 0x10 +/* 0FA844 7F0C5CD4 0010C403 */ sra $t8, $s0, 0x10 +/* 0FA848 7F0C5CD8 0C001149 */ jal get_video2_settings_uly +/* 0FA84C 7F0C5CDC 03008025 */ move $s0, $t8 +/* 0FA850 7F0C5CE0 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0FA854 7F0C5CE4 8FAC0044 */ lw $t4, 0x44($sp) +/* 0FA858 7F0C5CE8 02202025 */ move $a0, $s1 +/* 0FA85C 7F0C5CEC 020E2821 */ addu $a1, $s0, $t6 +/* 0FA860 7F0C5CF0 8D87002C */ lw $a3, 0x2c($t4) +/* 0FA864 7F0C5CF4 AFA00010 */ sw $zero, 0x10($sp) +/* 0FA868 7F0C5CF8 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FA86C 7F0C5CFC 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA870 7F0C5D00 24460056 */ addiu $a2, $v0, 0x56 +/* 0FA874 7F0C5D04 00408825 */ move $s1, $v0 +/* 0FA878 7F0C5D08 8FA200D4 */ lw $v0, 0xd4($sp) +.Ljp7F0C5D0C: +/* 0FA87C 7F0C5D0C 8FB900D0 */ lw $t9, 0xd0($sp) +/* 0FA880 7F0C5D10 24010004 */ li $at, 4 +/* 0FA884 7F0C5D14 17210018 */ bne $t9, $at, .Ljp7F0C5D78 +/* 0FA888 7F0C5D18 24010003 */ li $at, 3 +/* 0FA88C 7F0C5D1C 10410016 */ beq $v0, $at, .Ljp7F0C5D78 +/* 0FA890 7F0C5D20 000258C0 */ sll $t3, $v0, 3 +/* 0FA894 7F0C5D24 01625823 */ subu $t3, $t3, $v0 +/* 0FA898 7F0C5D28 3C0D8008 */ lui $t5, %hi(player1_player_data) # $t5, 0x8008 +/* 0FA89C 7F0C5D2C 25AD9F60 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x60a0 +/* 0FA8A0 7F0C5D30 000B5900 */ sll $t3, $t3, 4 +/* 0FA8A4 7F0C5D34 016D7821 */ addu $t7, $t3, $t5 +/* 0FA8A8 7F0C5D38 0C001145 */ jal get_video2_settings_ulx +/* 0FA8AC 7F0C5D3C AFAF0044 */ sw $t7, 0x44($sp) +/* 0FA8B0 7F0C5D40 00028400 */ sll $s0, $v0, 0x10 +/* 0FA8B4 7F0C5D44 0010C403 */ sra $t8, $s0, 0x10 +/* 0FA8B8 7F0C5D48 0C001149 */ jal get_video2_settings_uly +/* 0FA8BC 7F0C5D4C 03008025 */ move $s0, $t8 +/* 0FA8C0 7F0C5D50 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0FA8C4 7F0C5D54 8FAC0044 */ lw $t4, 0x44($sp) +/* 0FA8C8 7F0C5D58 02202025 */ move $a0, $s1 +/* 0FA8CC 7F0C5D5C 020E2821 */ addu $a1, $s0, $t6 +/* 0FA8D0 7F0C5D60 8D870030 */ lw $a3, 0x30($t4) +/* 0FA8D4 7F0C5D64 AFA00010 */ sw $zero, 0x10($sp) +/* 0FA8D8 7F0C5D68 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA8DC 7F0C5D6C 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA8E0 7F0C5D70 24460056 */ addiu $a2, $v0, 0x56 +/* 0FA8E4 7F0C5D74 00408825 */ move $s1, $v0 +.Ljp7F0C5D78: +/* 0FA8E8 7F0C5D78 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0FA8EC 7F0C5D7C 1000029D */ b .Ljp7F0C67F4 +/* 0FA8F0 7F0C5D80 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +.Ljp7F0C5D84: +/* 0FA8F4 7F0C5D84 24010001 */ li $at, 1 +/* 0FA8F8 7F0C5D88 144101A9 */ bne $v0, $at, .Ljp7F0C6430 +/* 0FA8FC 7F0C5D8C 3C048009 */ lui $a0, %hi(is_gameover_flag) # $a0, 0x8009 +/* 0FA900 7F0C5D90 8C84C774 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0FA904 7F0C5D94 2C990001 */ sltiu $t9, $a0, 1 +/* 0FA908 7F0C5D98 13200005 */ beqz $t9, .Ljp7F0C5DB0 +/* 0FA90C 7F0C5D9C 03202025 */ move $a0, $t9 +/* 0FA910 7F0C5DA0 3C048009 */ lui $a0, %hi(stop_play_flag) # $a0, 0x8009 +/* 0FA914 7F0C5DA4 8C84C770 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0FA918 7F0C5DA8 2C8B0001 */ sltiu $t3, $a0, 1 +/* 0FA91C 7F0C5DAC 01602025 */ move $a0, $t3 +.Ljp7F0C5DB0: +/* 0FA920 7F0C5DB0 0FC31303 */ jal true_if_displaying_rank_in_mp +/* 0FA924 7F0C5DB4 00000000 */ nop +/* 0FA928 7F0C5DB8 10400034 */ beqz $v0, .Ljp7F0C5E8C +/* 0FA92C 7F0C5DBC 27A400AC */ addiu $a0, $sp, 0xac +/* 0FA930 7F0C5DC0 0FC31251 */ jal write_playerrank_to_buffer +/* 0FA934 7F0C5DC4 8FA500D4 */ lw $a1, 0xd4($sp) +/* 0FA938 7F0C5DC8 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0FA93C 7F0C5DCC 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FA940 7F0C5DD0 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FA944 7F0C5DD4 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA948 7F0C5DD8 27A400BC */ addiu $a0, $sp, 0xbc +/* 0FA94C 7F0C5DDC 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0FA950 7F0C5DE0 27A600AC */ addiu $a2, $sp, 0xac +/* 0FA954 7F0C5DE4 AFA00014 */ sw $zero, 0x14($sp) +/* 0FA958 7F0C5DE8 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FA95C 7F0C5DEC AFAD0010 */ sw $t5, 0x10($sp) +/* 0FA960 7F0C5DF0 0C001145 */ jal get_video2_settings_ulx +/* 0FA964 7F0C5DF4 00000000 */ nop +/* 0FA968 7F0C5DF8 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FA96C 7F0C5DFC 8FAE00C0 */ lw $t6, 0xc0($sp) +/* 0FA970 7F0C5E00 004FC021 */ addu $t8, $v0, $t7 +/* 0FA974 7F0C5E04 000E6043 */ sra $t4, $t6, 1 +/* 0FA978 7F0C5E08 030C2023 */ subu $a0, $t8, $t4 +/* 0FA97C 7F0C5E0C 24840050 */ addiu $a0, $a0, 0x50 +/* 0FA980 7F0C5E10 0C001149 */ jal get_video2_settings_uly +/* 0FA984 7F0C5E14 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA988 7F0C5E18 8FB900BC */ lw $t9, 0xbc($sp) +/* 0FA98C 7F0C5E1C 00195843 */ sra $t3, $t9, 1 +/* 0FA990 7F0C5E20 004B6823 */ subu $t5, $v0, $t3 +/* 0FA994 7F0C5E24 25AF0025 */ addiu $t7, $t5, 0x25 +/* 0FA998 7F0C5E28 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA99C 7F0C5E2C AFAF00C8 */ sw $t7, 0xc8($sp) +/* 0FA9A0 7F0C5E30 00028400 */ sll $s0, $v0, 0x10 +/* 0FA9A4 7F0C5E34 00107403 */ sra $t6, $s0, 0x10 +/* 0FA9A8 7F0C5E38 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA9AC 7F0C5E3C 01C08025 */ move $s0, $t6 +/* 0FA9B0 7F0C5E40 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) # $t8, 0x8004 +/* 0FA9B4 7F0C5E44 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) # $t4, 0x8004 +/* 0FA9B8 7F0C5E48 8D8C0EDC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FA9BC 7F0C5E4C 8F180EE0 */ lw $t8, %lo(ptrSecondFontTableSmall)($t8) +/* 0FA9C0 7F0C5E50 3C1900FF */ lui $t9, (0x00FF00B0 >> 16) # lui $t9, 0xff +/* 0FA9C4 7F0C5E54 373900B0 */ ori $t9, (0x00FF00B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0FA9C8 7F0C5E58 AFB90018 */ sw $t9, 0x18($sp) +/* 0FA9CC 7F0C5E5C 02202025 */ move $a0, $s1 +/* 0FA9D0 7F0C5E60 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA9D4 7F0C5E64 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA9D8 7F0C5E68 27A700AC */ addiu $a3, $sp, 0xac +/* 0FA9DC 7F0C5E6C AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA9E0 7F0C5E70 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA9E4 7F0C5E74 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA9E8 7F0C5E78 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA9EC 7F0C5E7C AFAC0014 */ sw $t4, 0x14($sp) +/* 0FA9F0 7F0C5E80 0FC2B99B */ jal en_text_write_stuff +/* 0FA9F4 7F0C5E84 AFB80010 */ sw $t8, 0x10($sp) +/* 0FA9F8 7F0C5E88 00408825 */ move $s1, $v0 +.Ljp7F0C5E8C: +/* 0FA9FC 7F0C5E8C 0FC30AA2 */ jal get_textptr_for_textID +/* 0FAA00 7F0C5E90 3404A01C */ li $a0, 40988 +/* 0FAA04 7F0C5E94 3404A01E */ li $a0, 40990 +/* 0FAA08 7F0C5E98 0FC30AA2 */ jal get_textptr_for_textID +/* 0FAA0C 7F0C5E9C AFA2004C */ sw $v0, 0x4c($sp) +/* 0FAA10 7F0C5EA0 8FA700D4 */ lw $a3, 0xd4($sp) +/* 0FAA14 7F0C5EA4 3C058006 */ lui $a1, %hi(ascii_pnum_LOSSES) # $a1, 0x8006 +/* 0FAA18 7F0C5EA8 24A5BC78 */ addiu $a1, %lo(ascii_pnum_LOSSES) # addiu $a1, $a1, -0x4388 +/* 0FAA1C 7F0C5EAC 8FA6004C */ lw $a2, 0x4c($sp) +/* 0FAA20 7F0C5EB0 27A400AC */ addiu $a0, $sp, 0xac +/* 0FAA24 7F0C5EB4 AFA20010 */ sw $v0, 0x10($sp) +/* 0FAA28 7F0C5EB8 0C002B29 */ jal sprintf +/* 0FAA2C 7F0C5EBC 24E70001 */ addiu $a3, $a3, 1 +/* 0FAA30 7F0C5EC0 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) # $t3, 0x8004 +/* 0FAA34 7F0C5EC4 8D6B0EDC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0FAA38 7F0C5EC8 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FAA3C 7F0C5ECC 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FAA40 7F0C5ED0 27A400BC */ addiu $a0, $sp, 0xbc +/* 0FAA44 7F0C5ED4 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0FAA48 7F0C5ED8 27A600AC */ addiu $a2, $sp, 0xac +/* 0FAA4C 7F0C5EDC AFA00014 */ sw $zero, 0x14($sp) +/* 0FAA50 7F0C5EE0 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FAA54 7F0C5EE4 AFAB0010 */ sw $t3, 0x10($sp) +/* 0FAA58 7F0C5EE8 0C001145 */ jal get_video2_settings_ulx +/* 0FAA5C 7F0C5EEC 00000000 */ nop +/* 0FAA60 7F0C5EF0 8FAD00A8 */ lw $t5, 0xa8($sp) +/* 0FAA64 7F0C5EF4 8FAE00C0 */ lw $t6, 0xc0($sp) +/* 0FAA68 7F0C5EF8 004D7821 */ addu $t7, $v0, $t5 +/* 0FAA6C 7F0C5EFC 000EC043 */ sra $t8, $t6, 1 +/* 0FAA70 7F0C5F00 01F82023 */ subu $a0, $t7, $t8 +/* 0FAA74 7F0C5F04 24840050 */ addiu $a0, $a0, 0x50 +/* 0FAA78 7F0C5F08 0C001149 */ jal get_video2_settings_uly +/* 0FAA7C 7F0C5F0C AFA400CC */ sw $a0, 0xcc($sp) +/* 0FAA80 7F0C5F10 8FAC00BC */ lw $t4, 0xbc($sp) +/* 0FAA84 7F0C5F14 000CC843 */ sra $t9, $t4, 1 +/* 0FAA88 7F0C5F18 00595823 */ subu $t3, $v0, $t9 +/* 0FAA8C 7F0C5F1C 256D0035 */ addiu $t5, $t3, 0x35 +/* 0FAA90 7F0C5F20 0C001107 */ jal get_video2_settings_txtClipW +/* 0FAA94 7F0C5F24 AFAD00C8 */ sw $t5, 0xc8($sp) +/* 0FAA98 7F0C5F28 00028400 */ sll $s0, $v0, 0x10 +/* 0FAA9C 7F0C5F2C 00107403 */ sra $t6, $s0, 0x10 +/* 0FAAA0 7F0C5F30 0C00110B */ jal get_video2_settings_txtClipH +/* 0FAAA4 7F0C5F34 01C08025 */ move $s0, $t6 +/* 0FAAA8 7F0C5F38 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) # $t7, 0x8004 +/* 0FAAAC 7F0C5F3C 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) # $t8, 0x8004 +/* 0FAAB0 7F0C5F40 8F180EDC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0FAAB4 7F0C5F44 8DEF0EE0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0FAAB8 7F0C5F48 3C0CFF40 */ lui $t4, (0xFF4040B0 >> 16) # lui $t4, 0xff40 +/* 0FAABC 7F0C5F4C 358C40B0 */ ori $t4, (0xFF4040B0 & 0xFFFF) # ori $t4, $t4, 0x40b0 +/* 0FAAC0 7F0C5F50 AFAC0018 */ sw $t4, 0x18($sp) +/* 0FAAC4 7F0C5F54 02202025 */ move $a0, $s1 +/* 0FAAC8 7F0C5F58 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FAACC 7F0C5F5C 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FAAD0 7F0C5F60 27A700AC */ addiu $a3, $sp, 0xac +/* 0FAAD4 7F0C5F64 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FAAD8 7F0C5F68 AFA20020 */ sw $v0, 0x20($sp) +/* 0FAADC 7F0C5F6C AFA00024 */ sw $zero, 0x24($sp) +/* 0FAAE0 7F0C5F70 AFA00028 */ sw $zero, 0x28($sp) +/* 0FAAE4 7F0C5F74 AFB80014 */ sw $t8, 0x14($sp) +/* 0FAAE8 7F0C5F78 0FC2B99B */ jal en_text_write_stuff +/* 0FAAEC 7F0C5F7C AFAF0010 */ sw $t7, 0x10($sp) +/* 0FAAF0 7F0C5F80 8FB900D0 */ lw $t9, 0xd0($sp) +/* 0FAAF4 7F0C5F84 24010002 */ li $at, 2 +/* 0FAAF8 7F0C5F88 00408825 */ move $s1, $v0 +/* 0FAAFC 7F0C5F8C 17210062 */ bne $t9, $at, .Ljp7F0C6118 +/* 0FAB00 7F0C5F90 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 0FAB04 7F0C5F94 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0FAB08 7F0C5F98 3C188008 */ lui $t8, %hi(player1_player_data + 0x24) # $t8, 0x8008 +/* 0FAB0C 7F0C5F9C 10400016 */ beqz $v0, .Ljp7F0C5FF8 +/* 0FAB10 7F0C5FA0 00000000 */ nop +/* 0FAB14 7F0C5FA4 0C001145 */ jal get_video2_settings_ulx +/* 0FAB18 7F0C5FA8 00000000 */ nop +/* 0FAB1C 7F0C5FAC 00028400 */ sll $s0, $v0, 0x10 +/* 0FAB20 7F0C5FB0 00105C03 */ sra $t3, $s0, 0x10 +/* 0FAB24 7F0C5FB4 0C001149 */ jal get_video2_settings_uly +/* 0FAB28 7F0C5FB8 01608025 */ move $s0, $t3 +/* 0FAB2C 7F0C5FBC 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0FAB30 7F0C5FC0 8FAD00A8 */ lw $t5, 0xa8($sp) +/* 0FAB34 7F0C5FC4 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0FAB38 7F0C5FC8 000E7880 */ sll $t7, $t6, 2 +/* 0FAB3C 7F0C5FCC 00EF3821 */ addu $a3, $a3, $t7 +/* 0FAB40 7F0C5FD0 020D2821 */ addu $a1, $s0, $t5 +/* 0FAB44 7F0C5FD4 24A50050 */ addiu $a1, $a1, 0x50 +/* 0FAB48 7F0C5FD8 8CE79F84 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0FAB4C 7F0C5FDC 02202025 */ move $a0, $s1 +/* 0FAB50 7F0C5FE0 24460046 */ addiu $a2, $v0, 0x46 +/* 0FAB54 7F0C5FE4 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FAB58 7F0C5FE8 AFA00010 */ sw $zero, 0x10($sp) +/* 0FAB5C 7F0C5FEC 00408825 */ move $s1, $v0 +/* 0FAB60 7F0C5FF0 10000019 */ b .Ljp7F0C6058 +/* 0FAB64 7F0C5FF4 8FA200D4 */ lw $v0, 0xd4($sp) +.Ljp7F0C5FF8: +/* 0FAB68 7F0C5FF8 8F189F84 */ lw $t8, %lo(player1_player_data + 0x24)($t8) +/* 0FAB6C 7F0C5FFC 5B000017 */ blezl $t8, .Ljp7F0C605C +/* 0FAB70 7F0C6000 24010001 */ li $at, 1 +/* 0FAB74 7F0C6004 0C001145 */ jal get_video2_settings_ulx +/* 0FAB78 7F0C6008 00000000 */ nop +/* 0FAB7C 7F0C600C 00028400 */ sll $s0, $v0, 0x10 +/* 0FAB80 7F0C6010 00106403 */ sra $t4, $s0, 0x10 +/* 0FAB84 7F0C6014 0C001149 */ jal get_video2_settings_uly +/* 0FAB88 7F0C6018 01808025 */ move $s0, $t4 +/* 0FAB8C 7F0C601C 8FAB00D4 */ lw $t3, 0xd4($sp) +/* 0FAB90 7F0C6020 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0FAB94 7F0C6024 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0FAB98 7F0C6028 000B6880 */ sll $t5, $t3, 2 +/* 0FAB9C 7F0C602C 00ED3821 */ addu $a3, $a3, $t5 +/* 0FABA0 7F0C6030 240E0003 */ li $t6, 3 +/* 0FABA4 7F0C6034 02192821 */ addu $a1, $s0, $t9 +/* 0FABA8 7F0C6038 24A50050 */ addiu $a1, $a1, 0x50 +/* 0FABAC 7F0C603C AFAE0010 */ sw $t6, 0x10($sp) +/* 0FABB0 7F0C6040 8CE79F84 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0FABB4 7F0C6044 02202025 */ move $a0, $s1 +/* 0FABB8 7F0C6048 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FABBC 7F0C604C 24460046 */ addiu $a2, $v0, 0x46 +/* 0FABC0 7F0C6050 00408825 */ move $s1, $v0 +/* 0FABC4 7F0C6054 8FA200D4 */ lw $v0, 0xd4($sp) +.Ljp7F0C6058: +/* 0FABC8 7F0C6058 24010001 */ li $at, 1 +.Ljp7F0C605C: +/* 0FABCC 7F0C605C 10410016 */ beq $v0, $at, .Ljp7F0C60B8 +/* 0FABD0 7F0C6060 3C0E8008 */ lui $t6, %hi(player2_player_data + 0x28) # $t6, 0x8008 +/* 0FABD4 7F0C6064 3C188008 */ lui $t8, %hi(player1_player_data) # $t8, 0x8008 +/* 0FABD8 7F0C6068 27189F60 */ addiu $t8, %lo(player1_player_data) # addiu $t8, $t8, -0x60a0 +/* 0FABDC 7F0C606C 00027880 */ sll $t7, $v0, 2 +/* 0FABE0 7F0C6070 01F86021 */ addu $t4, $t7, $t8 +/* 0FABE4 7F0C6074 0C001145 */ jal get_video2_settings_ulx +/* 0FABE8 7F0C6078 AFAC0044 */ sw $t4, 0x44($sp) +/* 0FABEC 7F0C607C 00028400 */ sll $s0, $v0, 0x10 +/* 0FABF0 7F0C6080 0010CC03 */ sra $t9, $s0, 0x10 +/* 0FABF4 7F0C6084 0C001149 */ jal get_video2_settings_uly +/* 0FABF8 7F0C6088 03208025 */ move $s0, $t9 +/* 0FABFC 7F0C608C 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FAC00 7F0C6090 8FAD0044 */ lw $t5, 0x44($sp) +/* 0FAC04 7F0C6094 02202025 */ move $a0, $s1 +/* 0FAC08 7F0C6098 020B2821 */ addu $a1, $s0, $t3 +/* 0FAC0C 7F0C609C 8DA70094 */ lw $a3, 0x94($t5) +/* 0FAC10 7F0C60A0 AFA00010 */ sw $zero, 0x10($sp) +/* 0FAC14 7F0C60A4 24A50050 */ addiu $a1, $a1, 0x50 +/* 0FAC18 7F0C60A8 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FAC1C 7F0C60AC 24460056 */ addiu $a2, $v0, 0x56 +/* 0FAC20 7F0C60B0 100000DC */ b .Ljp7F0C6424 +/* 0FAC24 7F0C60B4 00408825 */ move $s1, $v0 +.Ljp7F0C60B8: +/* 0FAC28 7F0C60B8 8DCE9FF8 */ lw $t6, %lo(player2_player_data + 0x28)($t6) +/* 0FAC2C 7F0C60BC 3C188008 */ lui $t8, %hi(player1_player_data) # $t8, 0x8008 +/* 0FAC30 7F0C60C0 27189F60 */ addiu $t8, %lo(player1_player_data) # addiu $t8, $t8, -0x60a0 +/* 0FAC34 7F0C60C4 19C000D7 */ blez $t6, .Ljp7F0C6424 +/* 0FAC38 7F0C60C8 00027880 */ sll $t7, $v0, 2 +/* 0FAC3C 7F0C60CC 01F86021 */ addu $t4, $t7, $t8 +/* 0FAC40 7F0C60D0 0C001145 */ jal get_video2_settings_ulx +/* 0FAC44 7F0C60D4 AFAC0044 */ sw $t4, 0x44($sp) +/* 0FAC48 7F0C60D8 00028400 */ sll $s0, $v0, 0x10 +/* 0FAC4C 7F0C60DC 0010CC03 */ sra $t9, $s0, 0x10 +/* 0FAC50 7F0C60E0 0C001149 */ jal get_video2_settings_uly +/* 0FAC54 7F0C60E4 03208025 */ move $s0, $t9 +/* 0FAC58 7F0C60E8 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FAC5C 7F0C60EC 8FAD0044 */ lw $t5, 0x44($sp) +/* 0FAC60 7F0C60F0 240E0003 */ li $t6, 3 +/* 0FAC64 7F0C60F4 020B2821 */ addu $a1, $s0, $t3 +/* 0FAC68 7F0C60F8 8DA70094 */ lw $a3, 0x94($t5) +/* 0FAC6C 7F0C60FC AFAE0010 */ sw $t6, 0x10($sp) +/* 0FAC70 7F0C6100 24A50050 */ addiu $a1, $a1, 0x50 +/* 0FAC74 7F0C6104 02202025 */ move $a0, $s1 +/* 0FAC78 7F0C6108 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FAC7C 7F0C610C 24460056 */ addiu $a2, $v0, 0x56 +/* 0FAC80 7F0C6110 100000C4 */ b .Ljp7F0C6424 +/* 0FAC84 7F0C6114 00408825 */ move $s1, $v0 +.Ljp7F0C6118: +/* 0FAC88 7F0C6118 11E00015 */ beqz $t7, .Ljp7F0C6170 +/* 0FAC8C 7F0C611C 3C0D8008 */ lui $t5, %hi(player1_player_data + 0x24) # $t5, 0x8008 +/* 0FAC90 7F0C6120 0C001145 */ jal get_video2_settings_ulx +/* 0FAC94 7F0C6124 00000000 */ nop +/* 0FAC98 7F0C6128 00028400 */ sll $s0, $v0, 0x10 +/* 0FAC9C 7F0C612C 0010C403 */ sra $t8, $s0, 0x10 +/* 0FACA0 7F0C6130 0C001149 */ jal get_video2_settings_uly +/* 0FACA4 7F0C6134 03008025 */ move $s0, $t8 +/* 0FACA8 7F0C6138 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FACAC 7F0C613C 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0FACB0 7F0C6140 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0FACB4 7F0C6144 00195880 */ sll $t3, $t9, 2 +/* 0FACB8 7F0C6148 00EB3821 */ addu $a3, $a3, $t3 +/* 0FACBC 7F0C614C 020C2821 */ addu $a1, $s0, $t4 +/* 0FACC0 7F0C6150 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FACC4 7F0C6154 8CE79F84 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0FACC8 7F0C6158 02202025 */ move $a0, $s1 +/* 0FACCC 7F0C615C 24460046 */ addiu $a2, $v0, 0x46 +/* 0FACD0 7F0C6160 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FACD4 7F0C6164 AFA00010 */ sw $zero, 0x10($sp) +/* 0FACD8 7F0C6168 10000018 */ b .Ljp7F0C61CC +/* 0FACDC 7F0C616C 00408825 */ move $s1, $v0 +.Ljp7F0C6170: +/* 0FACE0 7F0C6170 8DAD9F84 */ lw $t5, %lo(player1_player_data + 0x24)($t5) +/* 0FACE4 7F0C6174 59A00016 */ blezl $t5, .Ljp7F0C61D0 +/* 0FACE8 7F0C6178 8FAB00D4 */ lw $t3, 0xd4($sp) +/* 0FACEC 7F0C617C 0C001145 */ jal get_video2_settings_ulx +/* 0FACF0 7F0C6180 00000000 */ nop +/* 0FACF4 7F0C6184 00028400 */ sll $s0, $v0, 0x10 +/* 0FACF8 7F0C6188 00107403 */ sra $t6, $s0, 0x10 +/* 0FACFC 7F0C618C 0C001149 */ jal get_video2_settings_uly +/* 0FAD00 7F0C6190 01C08025 */ move $s0, $t6 +/* 0FAD04 7F0C6194 8FB800D4 */ lw $t8, 0xd4($sp) +/* 0FAD08 7F0C6198 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FAD0C 7F0C619C 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0FAD10 7F0C61A0 00186080 */ sll $t4, $t8, 2 +/* 0FAD14 7F0C61A4 00EC3821 */ addu $a3, $a3, $t4 +/* 0FAD18 7F0C61A8 24190003 */ li $t9, 3 +/* 0FAD1C 7F0C61AC 020F2821 */ addu $a1, $s0, $t7 +/* 0FAD20 7F0C61B0 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FAD24 7F0C61B4 AFB90010 */ sw $t9, 0x10($sp) +/* 0FAD28 7F0C61B8 8CE79F84 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0FAD2C 7F0C61BC 02202025 */ move $a0, $s1 +/* 0FAD30 7F0C61C0 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FAD34 7F0C61C4 24460046 */ addiu $a2, $v0, 0x46 +/* 0FAD38 7F0C61C8 00408825 */ move $s1, $v0 +.Ljp7F0C61CC: +/* 0FAD3C 7F0C61CC 8FAB00D4 */ lw $t3, 0xd4($sp) +.Ljp7F0C61D0: +/* 0FAD40 7F0C61D0 24010001 */ li $at, 1 +/* 0FAD44 7F0C61D4 3C0E8008 */ lui $t6, %hi(player1_player_data) # $t6, 0x8008 +/* 0FAD48 7F0C61D8 11610014 */ beq $t3, $at, .Ljp7F0C622C +/* 0FAD4C 7F0C61DC 000B6880 */ sll $t5, $t3, 2 +/* 0FAD50 7F0C61E0 25CE9F60 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x60a0 +/* 0FAD54 7F0C61E4 01AE7821 */ addu $t7, $t5, $t6 +/* 0FAD58 7F0C61E8 0C001145 */ jal get_video2_settings_ulx +/* 0FAD5C 7F0C61EC AFAF0044 */ sw $t7, 0x44($sp) +/* 0FAD60 7F0C61F0 00028400 */ sll $s0, $v0, 0x10 +/* 0FAD64 7F0C61F4 0010C403 */ sra $t8, $s0, 0x10 +/* 0FAD68 7F0C61F8 0C001149 */ jal get_video2_settings_uly +/* 0FAD6C 7F0C61FC 03008025 */ move $s0, $t8 +/* 0FAD70 7F0C6200 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0FAD74 7F0C6204 8FB90044 */ lw $t9, 0x44($sp) +/* 0FAD78 7F0C6208 02202025 */ move $a0, $s1 +/* 0FAD7C 7F0C620C 020C2821 */ addu $a1, $s0, $t4 +/* 0FAD80 7F0C6210 8F270094 */ lw $a3, 0x94($t9) +/* 0FAD84 7F0C6214 AFA00010 */ sw $zero, 0x10($sp) +/* 0FAD88 7F0C6218 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FAD8C 7F0C621C 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FAD90 7F0C6220 24460046 */ addiu $a2, $v0, 0x46 +/* 0FAD94 7F0C6224 1000001A */ b .Ljp7F0C6290 +/* 0FAD98 7F0C6228 00408825 */ move $s1, $v0 +.Ljp7F0C622C: +/* 0FAD9C 7F0C622C 3C0B8008 */ lui $t3, %hi(player2_player_data + 0x28) # $t3, 0x8008 +/* 0FADA0 7F0C6230 8D6B9FF8 */ lw $t3, %lo(player2_player_data + 0x28)($t3) +/* 0FADA4 7F0C6234 8FAD00D4 */ lw $t5, 0xd4($sp) +/* 0FADA8 7F0C6238 3C0F8008 */ lui $t7, %hi(player1_player_data) # $t7, 0x8008 +/* 0FADAC 7F0C623C 19600014 */ blez $t3, .Ljp7F0C6290 +/* 0FADB0 7F0C6240 000D7080 */ sll $t6, $t5, 2 +/* 0FADB4 7F0C6244 25EF9F60 */ addiu $t7, %lo(player1_player_data) # addiu $t7, $t7, -0x60a0 +/* 0FADB8 7F0C6248 01CFC021 */ addu $t8, $t6, $t7 +/* 0FADBC 7F0C624C 0C001145 */ jal get_video2_settings_ulx +/* 0FADC0 7F0C6250 AFB80044 */ sw $t8, 0x44($sp) +/* 0FADC4 7F0C6254 00028400 */ sll $s0, $v0, 0x10 +/* 0FADC8 7F0C6258 00106403 */ sra $t4, $s0, 0x10 +/* 0FADCC 7F0C625C 0C001149 */ jal get_video2_settings_uly +/* 0FADD0 7F0C6260 01808025 */ move $s0, $t4 +/* 0FADD4 7F0C6264 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0FADD8 7F0C6268 8FAB0044 */ lw $t3, 0x44($sp) +/* 0FADDC 7F0C626C 240D0003 */ li $t5, 3 +/* 0FADE0 7F0C6270 02192821 */ addu $a1, $s0, $t9 +/* 0FADE4 7F0C6274 8D670094 */ lw $a3, 0x94($t3) +/* 0FADE8 7F0C6278 AFAD0010 */ sw $t5, 0x10($sp) +/* 0FADEC 7F0C627C 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FADF0 7F0C6280 02202025 */ move $a0, $s1 +/* 0FADF4 7F0C6284 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FADF8 7F0C6288 24460046 */ addiu $a2, $v0, 0x46 +/* 0FADFC 7F0C628C 00408825 */ move $s1, $v0 +.Ljp7F0C6290: +/* 0FAE00 7F0C6290 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0FAE04 7F0C6294 24010002 */ li $at, 2 +/* 0FAE08 7F0C6298 3C188008 */ lui $t8, %hi(player1_player_data) # $t8, 0x8008 +/* 0FAE0C 7F0C629C 11C10014 */ beq $t6, $at, .Ljp7F0C62F0 +/* 0FAE10 7F0C62A0 000E7880 */ sll $t7, $t6, 2 +/* 0FAE14 7F0C62A4 27189F60 */ addiu $t8, %lo(player1_player_data) # addiu $t8, $t8, -0x60a0 +/* 0FAE18 7F0C62A8 01F86021 */ addu $t4, $t7, $t8 +/* 0FAE1C 7F0C62AC 0C001145 */ jal get_video2_settings_ulx +/* 0FAE20 7F0C62B0 AFAC0044 */ sw $t4, 0x44($sp) +/* 0FAE24 7F0C62B4 00028400 */ sll $s0, $v0, 0x10 +/* 0FAE28 7F0C62B8 0010CC03 */ sra $t9, $s0, 0x10 +/* 0FAE2C 7F0C62BC 0C001149 */ jal get_video2_settings_uly +/* 0FAE30 7F0C62C0 03208025 */ move $s0, $t9 +/* 0FAE34 7F0C62C4 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FAE38 7F0C62C8 8FAD0044 */ lw $t5, 0x44($sp) +/* 0FAE3C 7F0C62CC 02202025 */ move $a0, $s1 +/* 0FAE40 7F0C62D0 020B2821 */ addu $a1, $s0, $t3 +/* 0FAE44 7F0C62D4 8DA70104 */ lw $a3, 0x104($t5) +/* 0FAE48 7F0C62D8 AFA00010 */ sw $zero, 0x10($sp) +/* 0FAE4C 7F0C62DC 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FAE50 7F0C62E0 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FAE54 7F0C62E4 24460056 */ addiu $a2, $v0, 0x56 +/* 0FAE58 7F0C62E8 1000001A */ b .Ljp7F0C6354 +/* 0FAE5C 7F0C62EC 00408825 */ move $s1, $v0 +.Ljp7F0C62F0: +/* 0FAE60 7F0C62F0 3C0E8008 */ lui $t6, %hi(player3_player_data + 0x2C) # $t6, 0x8008 +/* 0FAE64 7F0C62F4 8DCEA06C */ lw $t6, %lo(player3_player_data + 0x2C)($t6) +/* 0FAE68 7F0C62F8 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 0FAE6C 7F0C62FC 3C0C8008 */ lui $t4, %hi(player1_player_data) # $t4, 0x8008 +/* 0FAE70 7F0C6300 19C00014 */ blez $t6, .Ljp7F0C6354 +/* 0FAE74 7F0C6304 000FC080 */ sll $t8, $t7, 2 +/* 0FAE78 7F0C6308 258C9F60 */ addiu $t4, %lo(player1_player_data) # addiu $t4, $t4, -0x60a0 +/* 0FAE7C 7F0C630C 030CC821 */ addu $t9, $t8, $t4 +/* 0FAE80 7F0C6310 0C001145 */ jal get_video2_settings_ulx +/* 0FAE84 7F0C6314 AFB90044 */ sw $t9, 0x44($sp) +/* 0FAE88 7F0C6318 00028400 */ sll $s0, $v0, 0x10 +/* 0FAE8C 7F0C631C 00105C03 */ sra $t3, $s0, 0x10 +/* 0FAE90 7F0C6320 0C001149 */ jal get_video2_settings_uly +/* 0FAE94 7F0C6324 01608025 */ move $s0, $t3 +/* 0FAE98 7F0C6328 8FAD00A8 */ lw $t5, 0xa8($sp) +/* 0FAE9C 7F0C632C 8FAE0044 */ lw $t6, 0x44($sp) +/* 0FAEA0 7F0C6330 240F0003 */ li $t7, 3 +/* 0FAEA4 7F0C6334 020D2821 */ addu $a1, $s0, $t5 +/* 0FAEA8 7F0C6338 8DC70104 */ lw $a3, 0x104($t6) +/* 0FAEAC 7F0C633C AFAF0010 */ sw $t7, 0x10($sp) +/* 0FAEB0 7F0C6340 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FAEB4 7F0C6344 02202025 */ move $a0, $s1 +/* 0FAEB8 7F0C6348 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FAEBC 7F0C634C 24460056 */ addiu $a2, $v0, 0x56 +/* 0FAEC0 7F0C6350 00408825 */ move $s1, $v0 +.Ljp7F0C6354: +/* 0FAEC4 7F0C6354 8FB800D0 */ lw $t8, 0xd0($sp) +/* 0FAEC8 7F0C6358 24010004 */ li $at, 4 +/* 0FAECC 7F0C635C 8FAC00D4 */ lw $t4, 0xd4($sp) +/* 0FAED0 7F0C6360 17010030 */ bne $t8, $at, .Ljp7F0C6424 +/* 0FAED4 7F0C6364 24010003 */ li $at, 3 +/* 0FAED8 7F0C6368 11810015 */ beq $t4, $at, .Ljp7F0C63C0 +/* 0FAEDC 7F0C636C 000CC880 */ sll $t9, $t4, 2 +/* 0FAEE0 7F0C6370 3C0B8008 */ lui $t3, %hi(player1_player_data) # $t3, 0x8008 +/* 0FAEE4 7F0C6374 256B9F60 */ addiu $t3, %lo(player1_player_data) # addiu $t3, $t3, -0x60a0 +/* 0FAEE8 7F0C6378 032B6821 */ addu $t5, $t9, $t3 +/* 0FAEEC 7F0C637C 0C001145 */ jal get_video2_settings_ulx +/* 0FAEF0 7F0C6380 AFAD0044 */ sw $t5, 0x44($sp) +/* 0FAEF4 7F0C6384 00028400 */ sll $s0, $v0, 0x10 +/* 0FAEF8 7F0C6388 00107403 */ sra $t6, $s0, 0x10 +/* 0FAEFC 7F0C638C 0C001149 */ jal get_video2_settings_uly +/* 0FAF00 7F0C6390 01C08025 */ move $s0, $t6 +/* 0FAF04 7F0C6394 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FAF08 7F0C6398 8FB80044 */ lw $t8, 0x44($sp) +/* 0FAF0C 7F0C639C 02202025 */ move $a0, $s1 +/* 0FAF10 7F0C63A0 020F2821 */ addu $a1, $s0, $t7 +/* 0FAF14 7F0C63A4 8F070174 */ lw $a3, 0x174($t8) +/* 0FAF18 7F0C63A8 AFA00010 */ sw $zero, 0x10($sp) +/* 0FAF1C 7F0C63AC 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FAF20 7F0C63B0 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FAF24 7F0C63B4 24460056 */ addiu $a2, $v0, 0x56 +/* 0FAF28 7F0C63B8 1000001A */ b .Ljp7F0C6424 +/* 0FAF2C 7F0C63BC 00408825 */ move $s1, $v0 +.Ljp7F0C63C0: +/* 0FAF30 7F0C63C0 3C0C8008 */ lui $t4, %hi(player4_player_data+0x30) # $t4, 0x8008 +/* 0FAF34 7F0C63C4 8D8CA0E0 */ lw $t4, %lo(player4_player_data+0x30)($t4) +/* 0FAF38 7F0C63C8 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FAF3C 7F0C63CC 3C0D8008 */ lui $t5, %hi(player1_player_data) # $t5, 0x8008 +/* 0FAF40 7F0C63D0 19800014 */ blez $t4, .Ljp7F0C6424 +/* 0FAF44 7F0C63D4 00195880 */ sll $t3, $t9, 2 +/* 0FAF48 7F0C63D8 25AD9F60 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x60a0 +/* 0FAF4C 7F0C63DC 016D7021 */ addu $t6, $t3, $t5 +/* 0FAF50 7F0C63E0 0C001145 */ jal get_video2_settings_ulx +/* 0FAF54 7F0C63E4 AFAE0044 */ sw $t6, 0x44($sp) +/* 0FAF58 7F0C63E8 00028400 */ sll $s0, $v0, 0x10 +/* 0FAF5C 7F0C63EC 00107C03 */ sra $t7, $s0, 0x10 +/* 0FAF60 7F0C63F0 0C001149 */ jal get_video2_settings_uly +/* 0FAF64 7F0C63F4 01E08025 */ move $s0, $t7 +/* 0FAF68 7F0C63F8 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0FAF6C 7F0C63FC 8FAC0044 */ lw $t4, 0x44($sp) +/* 0FAF70 7F0C6400 24190003 */ li $t9, 3 +/* 0FAF74 7F0C6404 02182821 */ addu $a1, $s0, $t8 +/* 0FAF78 7F0C6408 8D870174 */ lw $a3, 0x174($t4) +/* 0FAF7C 7F0C640C AFB90010 */ sw $t9, 0x10($sp) +/* 0FAF80 7F0C6410 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FAF84 7F0C6414 02202025 */ move $a0, $s1 +/* 0FAF88 7F0C6418 0FC31094 */ jal display_text_for_playerdata_on_MP_menu +/* 0FAF8C 7F0C641C 24460056 */ addiu $a2, $v0, 0x56 +/* 0FAF90 7F0C6420 00408825 */ move $s1, $v0 +.Ljp7F0C6424: +/* 0FAF94 7F0C6424 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0FAF98 7F0C6428 100000F2 */ b .Ljp7F0C67F4 +/* 0FAF9C 7F0C642C 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +.Ljp7F0C6430: +/* 0FAFA0 7F0C6430 544000F1 */ bnezl $v0, .Ljp7F0C67F8 +/* 0FAFA4 7F0C6434 8C6D29C8 */ lw $t5, 0x29c8($v1) +/* 0FAFA8 7F0C6438 8FAD00D0 */ lw $t5, 0xd0($sp) +/* 0FAFAC 7F0C643C 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FAFB0 7F0C6440 29A10003 */ slti $at, $t5, 3 +/* 0FAFB4 7F0C6444 1420000A */ bnez $at, .Ljp7F0C6470 +/* 0FAFB8 7F0C6448 AFAB0074 */ sw $t3, 0x74($sp) +/* 0FAFBC 7F0C644C 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0FAFC0 7F0C6450 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0FAFC4 7F0C6454 2578FFF9 */ addiu $t8, $t3, -7 +/* 0FAFC8 7F0C6458 31CF0001 */ andi $t7, $t6, 1 +/* 0FAFCC 7F0C645C 11E00003 */ beqz $t7, .Ljp7F0C646C +/* 0FAFD0 7F0C6460 25990007 */ addiu $t9, $t4, 7 +/* 0FAFD4 7F0C6464 10000002 */ b .Ljp7F0C6470 +/* 0FAFD8 7F0C6468 AFB80074 */ sw $t8, 0x74($sp) +.Ljp7F0C646C: +/* 0FAFDC 7F0C646C AFB90074 */ sw $t9, 0x74($sp) +.Ljp7F0C6470: +/* 0FAFE0 7F0C6470 0FC30AA2 */ jal get_textptr_for_textID +/* 0FAFE4 7F0C6474 3404A01F */ li $a0, 40991 +/* 0FAFE8 7F0C6478 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0FAFEC 7F0C647C 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FAFF0 7F0C6480 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FAFF4 7F0C6484 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FAFF8 7F0C6488 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FAFFC 7F0C648C 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FB000 7F0C6490 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FB004 7F0C6494 00403025 */ move $a2, $v0 +/* 0FB008 7F0C6498 AFA00014 */ sw $zero, 0x14($sp) +/* 0FB00C 7F0C649C 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FB010 7F0C64A0 AFAD0010 */ sw $t5, 0x10($sp) +/* 0FB014 7F0C64A4 0C001145 */ jal get_video2_settings_ulx +/* 0FB018 7F0C64A8 00000000 */ nop +/* 0FB01C 7F0C64AC 8FAE0074 */ lw $t6, 0x74($sp) +/* 0FB020 7F0C64B0 8FAB0078 */ lw $t3, 0x78($sp) +/* 0FB024 7F0C64B4 004E7821 */ addu $t7, $v0, $t6 +/* 0FB028 7F0C64B8 000BC043 */ sra $t8, $t3, 1 +/* 0FB02C 7F0C64BC 01F82023 */ subu $a0, $t7, $t8 +/* 0FB030 7F0C64C0 24840050 */ addiu $a0, $a0, 0x50 +/* 0FB034 7F0C64C4 0C001149 */ jal get_video2_settings_uly +/* 0FB038 7F0C64C8 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FB03C 7F0C64CC 8FAC007C */ lw $t4, 0x7c($sp) +/* 0FB040 7F0C64D0 000CC843 */ sra $t9, $t4, 1 +/* 0FB044 7F0C64D4 00596823 */ subu $t5, $v0, $t9 +/* 0FB048 7F0C64D8 25AE0025 */ addiu $t6, $t5, 0x25 +/* 0FB04C 7F0C64DC 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB050 7F0C64E0 AFAE00C8 */ sw $t6, 0xc8($sp) +/* 0FB054 7F0C64E4 00028400 */ sll $s0, $v0, 0x10 +/* 0FB058 7F0C64E8 00105C03 */ sra $t3, $s0, 0x10 +/* 0FB05C 7F0C64EC 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB060 7F0C64F0 01608025 */ move $s0, $t3 +/* 0FB064 7F0C64F4 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) # $t7, 0x8004 +/* 0FB068 7F0C64F8 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) # $t8, 0x8004 +/* 0FB06C 7F0C64FC 8F180EDC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0FB070 7F0C6500 8DEF0EE0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0FB074 7F0C6504 3C0C00FF */ lui $t4, (0x00FF00B0 >> 16) # lui $t4, 0xff +/* 0FB078 7F0C6508 358C00B0 */ ori $t4, (0x00FF00B0 & 0xFFFF) # ori $t4, $t4, 0xb0 +/* 0FB07C 7F0C650C AFAC0018 */ sw $t4, 0x18($sp) +/* 0FB080 7F0C6510 02202025 */ move $a0, $s1 +/* 0FB084 7F0C6514 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FB088 7F0C6518 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FB08C 7F0C651C 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FB090 7F0C6520 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FB094 7F0C6524 AFA20020 */ sw $v0, 0x20($sp) +/* 0FB098 7F0C6528 AFA00024 */ sw $zero, 0x24($sp) +/* 0FB09C 7F0C652C AFA00028 */ sw $zero, 0x28($sp) +/* 0FB0A0 7F0C6530 AFB80014 */ sw $t8, 0x14($sp) +/* 0FB0A4 7F0C6534 0FC2B99B */ jal en_text_write_stuff +/* 0FB0A8 7F0C6538 AFAF0010 */ sw $t7, 0x10($sp) +/* 0FB0AC 7F0C653C 00408825 */ move $s1, $v0 +/* 0FB0B0 7F0C6540 8FA400D4 */ lw $a0, 0xd4($sp) +/* 0FB0B4 7F0C6544 0FC026DC */ jal getplayerfavoredweapon +/* 0FB0B8 7F0C6548 00002825 */ move $a1, $zero +/* 0FB0BC 7F0C654C 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) # $t9, 0x8004 +/* 0FB0C0 7F0C6550 8F390EDC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0FB0C4 7F0C6554 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FB0C8 7F0C6558 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FB0CC 7F0C655C 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FB0D0 7F0C6560 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FB0D4 7F0C6564 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FB0D8 7F0C6568 00403025 */ move $a2, $v0 +/* 0FB0DC 7F0C656C AFA00014 */ sw $zero, 0x14($sp) +/* 0FB0E0 7F0C6570 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FB0E4 7F0C6574 AFB90010 */ sw $t9, 0x10($sp) +/* 0FB0E8 7F0C6578 0C001145 */ jal get_video2_settings_ulx +/* 0FB0EC 7F0C657C 00000000 */ nop +/* 0FB0F0 7F0C6580 8FAD0074 */ lw $t5, 0x74($sp) +/* 0FB0F4 7F0C6584 8FAB0078 */ lw $t3, 0x78($sp) +/* 0FB0F8 7F0C6588 004D7021 */ addu $t6, $v0, $t5 +/* 0FB0FC 7F0C658C 000B7843 */ sra $t7, $t3, 1 +/* 0FB100 7F0C6590 01CF2023 */ subu $a0, $t6, $t7 +/* 0FB104 7F0C6594 24840050 */ addiu $a0, $a0, 0x50 +/* 0FB108 7F0C6598 0C001149 */ jal get_video2_settings_uly +/* 0FB10C 7F0C659C AFA400CC */ sw $a0, 0xcc($sp) +/* 0FB110 7F0C65A0 3C0C8005 */ lui $t4, %hi(j_text_trigger) # $t4, 0x8005 +/* 0FB114 7F0C65A4 8D8C8500 */ lw $t4, %lo(j_text_trigger)($t4) +/* 0FB118 7F0C65A8 00024400 */ sll $t0, $v0, 0x10 +/* 0FB11C 7F0C65AC 0008C403 */ sra $t8, $t0, 0x10 +/* 0FB120 7F0C65B0 11800003 */ beqz $t4, .Ljp7F0C65C0 +/* 0FB124 7F0C65B4 03004025 */ move $t0, $t8 +/* 0FB128 7F0C65B8 10000002 */ b .Ljp7F0C65C4 +/* 0FB12C 7F0C65BC 24040004 */ li $a0, 4 +.Ljp7F0C65C0: +/* 0FB130 7F0C65C0 00002025 */ move $a0, $zero +.Ljp7F0C65C4: +/* 0FB134 7F0C65C4 8FAD007C */ lw $t5, 0x7c($sp) +/* 0FB138 7F0C65C8 0088C821 */ addu $t9, $a0, $t0 +/* 0FB13C 7F0C65CC 000D5843 */ sra $t3, $t5, 1 +/* 0FB140 7F0C65D0 032B7023 */ subu $t6, $t9, $t3 +/* 0FB144 7F0C65D4 25CF0035 */ addiu $t7, $t6, 0x35 +/* 0FB148 7F0C65D8 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB14C 7F0C65DC AFAF00C8 */ sw $t7, 0xc8($sp) +/* 0FB150 7F0C65E0 00028400 */ sll $s0, $v0, 0x10 +/* 0FB154 7F0C65E4 0010C403 */ sra $t8, $s0, 0x10 +/* 0FB158 7F0C65E8 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB15C 7F0C65EC 03008025 */ move $s0, $t8 +/* 0FB160 7F0C65F0 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 +/* 0FB164 7F0C65F4 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0FB168 7F0C65F8 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FB16C 7F0C65FC 8D8C0EE0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 0FB170 7F0C6600 3C1900FF */ lui $t9, (0x00FF00B0 >> 16) # lui $t9, 0xff +/* 0FB174 7F0C6604 373900B0 */ ori $t9, (0x00FF00B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0FB178 7F0C6608 AFB90018 */ sw $t9, 0x18($sp) +/* 0FB17C 7F0C660C 02202025 */ move $a0, $s1 +/* 0FB180 7F0C6610 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FB184 7F0C6614 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FB188 7F0C6618 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FB18C 7F0C661C AFB0001C */ sw $s0, 0x1c($sp) +/* 0FB190 7F0C6620 AFA20020 */ sw $v0, 0x20($sp) +/* 0FB194 7F0C6624 AFA00024 */ sw $zero, 0x24($sp) +/* 0FB198 7F0C6628 AFA00028 */ sw $zero, 0x28($sp) +/* 0FB19C 7F0C662C AFAD0014 */ sw $t5, 0x14($sp) +/* 0FB1A0 7F0C6630 0FC2B99B */ jal en_text_write_stuff +/* 0FB1A4 7F0C6634 AFAC0010 */ sw $t4, 0x10($sp) +/* 0FB1A8 7F0C6638 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0FB1AC 7F0C663C 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0FB1B0 7F0C6640 00408825 */ move $s1, $v0 +/* 0FB1B4 7F0C6644 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FB1B8 7F0C6648 8C682A10 */ lw $t0, 0x2a10($v1) +/* 0FB1BC 7F0C664C 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FB1C0 7F0C6650 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FB1C4 7F0C6654 11000031 */ beqz $t0, .Ljp7F0C671C +/* 0FB1C8 7F0C6658 01003025 */ move $a2, $t0 +/* 0FB1CC 7F0C665C 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) # $t3, 0x8004 +/* 0FB1D0 7F0C6660 8D6B0EDC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0FB1D4 7F0C6664 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FB1D8 7F0C6668 AFA00014 */ sw $zero, 0x14($sp) +/* 0FB1DC 7F0C666C AFA800A4 */ sw $t0, 0xa4($sp) +/* 0FB1E0 7F0C6670 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FB1E4 7F0C6674 AFAB0010 */ sw $t3, 0x10($sp) +/* 0FB1E8 7F0C6678 0C001145 */ jal get_video2_settings_ulx +/* 0FB1EC 7F0C667C 00000000 */ nop +/* 0FB1F0 7F0C6680 8FAE0074 */ lw $t6, 0x74($sp) +/* 0FB1F4 7F0C6684 8FB80078 */ lw $t8, 0x78($sp) +/* 0FB1F8 7F0C6688 004E7821 */ addu $t7, $v0, $t6 +/* 0FB1FC 7F0C668C 00186043 */ sra $t4, $t8, 1 +/* 0FB200 7F0C6690 01EC2023 */ subu $a0, $t7, $t4 +/* 0FB204 7F0C6694 24840050 */ addiu $a0, $a0, 0x50 +/* 0FB208 7F0C6698 0C001149 */ jal get_video2_settings_uly +/* 0FB20C 7F0C669C AFA400CC */ sw $a0, 0xcc($sp) +/* 0FB210 7F0C66A0 8FAD007C */ lw $t5, 0x7c($sp) +/* 0FB214 7F0C66A4 000DC843 */ sra $t9, $t5, 1 +/* 0FB218 7F0C66A8 00595823 */ subu $t3, $v0, $t9 +/* 0FB21C 7F0C66AC 256E004B */ addiu $t6, $t3, 0x4b +/* 0FB220 7F0C66B0 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB224 7F0C66B4 AFAE00C8 */ sw $t6, 0xc8($sp) +/* 0FB228 7F0C66B8 00028400 */ sll $s0, $v0, 0x10 +/* 0FB22C 7F0C66BC 0010C403 */ sra $t8, $s0, 0x10 +/* 0FB230 7F0C66C0 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB234 7F0C66C4 03008025 */ move $s0, $t8 +/* 0FB238 7F0C66C8 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) # $t7, 0x8004 +/* 0FB23C 7F0C66CC 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) # $t4, 0x8004 +/* 0FB240 7F0C66D0 8D8C0EDC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FB244 7F0C66D4 8DEF0EE0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0FB248 7F0C66D8 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0FB24C 7F0C66DC 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0FB250 7F0C66E0 AFAD0018 */ sw $t5, 0x18($sp) +/* 0FB254 7F0C66E4 02202025 */ move $a0, $s1 +/* 0FB258 7F0C66E8 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FB25C 7F0C66EC 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FB260 7F0C66F0 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FB264 7F0C66F4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FB268 7F0C66F8 AFA20020 */ sw $v0, 0x20($sp) +/* 0FB26C 7F0C66FC AFA00024 */ sw $zero, 0x24($sp) +/* 0FB270 7F0C6700 AFA00028 */ sw $zero, 0x28($sp) +/* 0FB274 7F0C6704 AFAC0014 */ sw $t4, 0x14($sp) +/* 0FB278 7F0C6708 0FC2B99B */ jal en_text_write_stuff +/* 0FB27C 7F0C670C AFAF0010 */ sw $t7, 0x10($sp) +/* 0FB280 7F0C6710 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0FB284 7F0C6714 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0FB288 7F0C6718 00408825 */ move $s1, $v0 +.Ljp7F0C671C: +/* 0FB28C 7F0C671C 8C622A14 */ lw $v0, 0x2a14($v1) +/* 0FB290 7F0C6720 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FB294 7F0C6724 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FB298 7F0C6728 10400032 */ beqz $v0, .Ljp7F0C67F4 +/* 0FB29C 7F0C672C 00403025 */ move $a2, $v0 +/* 0FB2A0 7F0C6730 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) # $t9, 0x8004 +/* 0FB2A4 7F0C6734 8F390EDC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0FB2A8 7F0C6738 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FB2AC 7F0C673C 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FB2B0 7F0C6740 AFA00014 */ sw $zero, 0x14($sp) +/* 0FB2B4 7F0C6744 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FB2B8 7F0C6748 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FB2BC 7F0C674C AFB90010 */ sw $t9, 0x10($sp) +/* 0FB2C0 7F0C6750 0C001145 */ jal get_video2_settings_ulx +/* 0FB2C4 7F0C6754 00000000 */ nop +/* 0FB2C8 7F0C6758 8FAB0074 */ lw $t3, 0x74($sp) +/* 0FB2CC 7F0C675C 8FB80078 */ lw $t8, 0x78($sp) +/* 0FB2D0 7F0C6760 004B7021 */ addu $t6, $v0, $t3 +/* 0FB2D4 7F0C6764 00187843 */ sra $t7, $t8, 1 +/* 0FB2D8 7F0C6768 01CF2023 */ subu $a0, $t6, $t7 +/* 0FB2DC 7F0C676C 24840050 */ addiu $a0, $a0, 0x50 +/* 0FB2E0 7F0C6770 0C001149 */ jal get_video2_settings_uly +/* 0FB2E4 7F0C6774 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FB2E8 7F0C6778 8FAC007C */ lw $t4, 0x7c($sp) +/* 0FB2EC 7F0C677C 000C6843 */ sra $t5, $t4, 1 +/* 0FB2F0 7F0C6780 004DC823 */ subu $t9, $v0, $t5 +/* 0FB2F4 7F0C6784 272B0058 */ addiu $t3, $t9, 0x58 +/* 0FB2F8 7F0C6788 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB2FC 7F0C678C AFAB00C8 */ sw $t3, 0xc8($sp) +/* 0FB300 7F0C6790 00028400 */ sll $s0, $v0, 0x10 +/* 0FB304 7F0C6794 0010C403 */ sra $t8, $s0, 0x10 +/* 0FB308 7F0C6798 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB30C 7F0C679C 03008025 */ move $s0, $t8 +/* 0FB310 7F0C67A0 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) # $t6, 0x8004 +/* 0FB314 7F0C67A4 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 +/* 0FB318 7F0C67A8 8DEF0EDC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0FB31C 7F0C67AC 8DCE0EE0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0FB320 7F0C67B0 3C0C00FF */ lui $t4, (0x00FF00B0 >> 16) # lui $t4, 0xff +/* 0FB324 7F0C67B4 358C00B0 */ ori $t4, (0x00FF00B0 & 0xFFFF) # ori $t4, $t4, 0xb0 +/* 0FB328 7F0C67B8 AFAC0018 */ sw $t4, 0x18($sp) +/* 0FB32C 7F0C67BC 02202025 */ move $a0, $s1 +/* 0FB330 7F0C67C0 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FB334 7F0C67C4 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FB338 7F0C67C8 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FB33C 7F0C67CC AFB0001C */ sw $s0, 0x1c($sp) +/* 0FB340 7F0C67D0 AFA20020 */ sw $v0, 0x20($sp) +/* 0FB344 7F0C67D4 AFA00024 */ sw $zero, 0x24($sp) +/* 0FB348 7F0C67D8 AFA00028 */ sw $zero, 0x28($sp) +/* 0FB34C 7F0C67DC AFAF0014 */ sw $t7, 0x14($sp) +/* 0FB350 7F0C67E0 0FC2B99B */ jal en_text_write_stuff +/* 0FB354 7F0C67E4 AFAE0010 */ sw $t6, 0x10($sp) +/* 0FB358 7F0C67E8 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 +/* 0FB35C 7F0C67EC 8C63A120 */ lw $v1, %lo(pPlayer)($v1) +/* 0FB360 7F0C67F0 00408825 */ move $s1, $v0 +.Ljp7F0C67F4: +/* 0FB364 7F0C67F4 8C6D29C8 */ lw $t5, 0x29c8($v1) +.Ljp7F0C67F8: +/* 0FB368 7F0C67F8 24010006 */ li $at, 6 +/* 0FB36C 7F0C67FC 15A100B0 */ bne $t5, $at, .Ljp7F0C6AC0 +/* 0FB370 7F0C6800 00000000 */ nop +/* 0FB374 7F0C6804 0FC30AA2 */ jal get_textptr_for_textID +/* 0FB378 7F0C6808 3404A020 */ li $a0, 40992 +/* 0FB37C 7F0C680C 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) # $t9, 0x8004 +/* 0FB380 7F0C6810 8F390EDC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0FB384 7F0C6814 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FB388 7F0C6818 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FB38C 7F0C681C 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FB390 7F0C6820 27A400BC */ addiu $a0, $sp, 0xbc +/* 0FB394 7F0C6824 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0FB398 7F0C6828 00403025 */ move $a2, $v0 +/* 0FB39C 7F0C682C AFA00014 */ sw $zero, 0x14($sp) +/* 0FB3A0 7F0C6830 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FB3A4 7F0C6834 AFB90010 */ sw $t9, 0x10($sp) +/* 0FB3A8 7F0C6838 0C001145 */ jal get_video2_settings_ulx +/* 0FB3AC 7F0C683C 00000000 */ nop +/* 0FB3B0 7F0C6840 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FB3B4 7F0C6844 8FAE00C0 */ lw $t6, 0xc0($sp) +/* 0FB3B8 7F0C6848 004BC021 */ addu $t8, $v0, $t3 +/* 0FB3BC 7F0C684C 000E7843 */ sra $t7, $t6, 1 +/* 0FB3C0 7F0C6850 030F2023 */ subu $a0, $t8, $t7 +/* 0FB3C4 7F0C6854 24840036 */ addiu $a0, $a0, 0x36 +/* 0FB3C8 7F0C6858 0C001149 */ jal get_video2_settings_uly +/* 0FB3CC 7F0C685C AFA400CC */ sw $a0, 0xcc($sp) +/* 0FB3D0 7F0C6860 8FAC00BC */ lw $t4, 0xbc($sp) +/* 0FB3D4 7F0C6864 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0FB3D8 7F0C6868 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0FB3DC 7F0C686C 000C6843 */ sra $t5, $t4, 1 +/* 0FB3E0 7F0C6870 004DC823 */ subu $t9, $v0, $t5 +/* 0FB3E4 7F0C6874 272B0036 */ addiu $t3, $t9, 0x36 +/* 0FB3E8 7F0C6878 AFAB00C8 */ sw $t3, 0xc8($sp) +/* 0FB3EC 7F0C687C 8DD829CC */ lw $t8, 0x29cc($t6) +/* 0FB3F0 7F0C6880 1700001E */ bnez $t8, .Ljp7F0C68FC +/* 0FB3F4 7F0C6884 00000000 */ nop +/* 0FB3F8 7F0C6888 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB3FC 7F0C688C 00000000 */ nop +/* 0FB400 7F0C6890 00028400 */ sll $s0, $v0, 0x10 +/* 0FB404 7F0C6894 00107C03 */ sra $t7, $s0, 0x10 +/* 0FB408 7F0C6898 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB40C 7F0C689C 01E08025 */ move $s0, $t7 +/* 0FB410 7F0C68A0 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 +/* 0FB414 7F0C68A4 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0FB418 7F0C68A8 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FB41C 7F0C68AC 8D8C0EE0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 0FB420 7F0C68B0 3C19A0FF */ lui $t9, (0xA0FFA0F0 >> 16) # lui $t9, 0xa0ff +/* 0FB424 7F0C68B4 3C0B0070 */ lui $t3, (0x007000A0 >> 16) # lui $t3, 0x70 +/* 0FB428 7F0C68B8 356B00A0 */ ori $t3, (0x007000A0 & 0xFFFF) # ori $t3, $t3, 0xa0 +/* 0FB42C 7F0C68BC 3739A0F0 */ ori $t9, (0xA0FFA0F0 & 0xFFFF) # ori $t9, $t9, 0xa0f0 +/* 0FB430 7F0C68C0 AFB90018 */ sw $t9, 0x18($sp) +/* 0FB434 7F0C68C4 AFAB001C */ sw $t3, 0x1c($sp) +/* 0FB438 7F0C68C8 02202025 */ move $a0, $s1 +/* 0FB43C 7F0C68CC 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FB440 7F0C68D0 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FB444 7F0C68D4 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FB448 7F0C68D8 AFB00020 */ sw $s0, 0x20($sp) +/* 0FB44C 7F0C68DC AFA20024 */ sw $v0, 0x24($sp) +/* 0FB450 7F0C68E0 AFA00028 */ sw $zero, 0x28($sp) +/* 0FB454 7F0C68E4 AFA0002C */ sw $zero, 0x2c($sp) +/* 0FB458 7F0C68E8 AFAD0014 */ sw $t5, 0x14($sp) +/* 0FB45C 7F0C68EC 0FC2BCA7 */ jal jp_text_write_stuff +/* 0FB460 7F0C68F0 AFAC0010 */ sw $t4, 0x10($sp) +/* 0FB464 7F0C68F4 1000001A */ b .Ljp7F0C6960 +/* 0FB468 7F0C68F8 00408825 */ move $s1, $v0 +.Ljp7F0C68FC: +/* 0FB46C 7F0C68FC 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB470 7F0C6900 00000000 */ nop +/* 0FB474 7F0C6904 00028400 */ sll $s0, $v0, 0x10 +/* 0FB478 7F0C6908 00107403 */ sra $t6, $s0, 0x10 +/* 0FB47C 7F0C690C 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB480 7F0C6910 01C08025 */ move $s0, $t6 +/* 0FB484 7F0C6914 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) # $t8, 0x8004 +/* 0FB488 7F0C6918 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 +/* 0FB48C 7F0C691C 8DEF0EDC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0FB490 7F0C6920 8F180EE0 */ lw $t8, %lo(ptrSecondFontTableSmall)($t8) +/* 0FB494 7F0C6924 3C0C00FF */ lui $t4, (0x00FF00B0 >> 16) # lui $t4, 0xff +/* 0FB498 7F0C6928 358C00B0 */ ori $t4, (0x00FF00B0 & 0xFFFF) # ori $t4, $t4, 0xb0 +/* 0FB49C 7F0C692C AFAC0018 */ sw $t4, 0x18($sp) +/* 0FB4A0 7F0C6930 02202025 */ move $a0, $s1 +/* 0FB4A4 7F0C6934 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FB4A8 7F0C6938 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FB4AC 7F0C693C 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FB4B0 7F0C6940 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FB4B4 7F0C6944 AFA20020 */ sw $v0, 0x20($sp) +/* 0FB4B8 7F0C6948 AFA00024 */ sw $zero, 0x24($sp) +/* 0FB4BC 7F0C694C AFA00028 */ sw $zero, 0x28($sp) +/* 0FB4C0 7F0C6950 AFAF0014 */ sw $t7, 0x14($sp) +/* 0FB4C4 7F0C6954 0FC2B99B */ jal en_text_write_stuff +/* 0FB4C8 7F0C6958 AFB80010 */ sw $t8, 0x10($sp) +/* 0FB4CC 7F0C695C 00408825 */ move $s1, $v0 +.Ljp7F0C6960: +/* 0FB4D0 7F0C6960 0FC30AA2 */ jal get_textptr_for_textID +/* 0FB4D4 7F0C6964 3404A021 */ li $a0, 40993 +/* 0FB4D8 7F0C6968 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 +/* 0FB4DC 7F0C696C 8DAD0EDC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FB4E0 7F0C6970 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FB4E4 7F0C6974 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FB4E8 7F0C6978 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FB4EC 7F0C697C 27A400BC */ addiu $a0, $sp, 0xbc +/* 0FB4F0 7F0C6980 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0FB4F4 7F0C6984 00403025 */ move $a2, $v0 +/* 0FB4F8 7F0C6988 AFA00014 */ sw $zero, 0x14($sp) +/* 0FB4FC 7F0C698C 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FB500 7F0C6990 AFAD0010 */ sw $t5, 0x10($sp) +/* 0FB504 7F0C6994 0C001145 */ jal get_video2_settings_ulx +/* 0FB508 7F0C6998 00000000 */ nop +/* 0FB50C 7F0C699C 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0FB510 7F0C69A0 8FAE00C0 */ lw $t6, 0xc0($sp) +/* 0FB514 7F0C69A4 00595821 */ addu $t3, $v0, $t9 +/* 0FB518 7F0C69A8 000EC043 */ sra $t8, $t6, 1 +/* 0FB51C 7F0C69AC 01782023 */ subu $a0, $t3, $t8 +/* 0FB520 7F0C69B0 24840068 */ addiu $a0, $a0, 0x68 +/* 0FB524 7F0C69B4 0C001149 */ jal get_video2_settings_uly +/* 0FB528 7F0C69B8 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FB52C 7F0C69BC 8FAF00BC */ lw $t7, 0xbc($sp) +/* 0FB530 7F0C69C0 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0FB534 7F0C69C4 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0FB538 7F0C69C8 000F6043 */ sra $t4, $t7, 1 +/* 0FB53C 7F0C69CC 004C6823 */ subu $t5, $v0, $t4 +/* 0FB540 7F0C69D0 25B90036 */ addiu $t9, $t5, 0x36 +/* 0FB544 7F0C69D4 AFB900C8 */ sw $t9, 0xc8($sp) +/* 0FB548 7F0C69D8 8DCB29CC */ lw $t3, 0x29cc($t6) +/* 0FB54C 7F0C69DC 24010001 */ li $at, 1 +/* 0FB550 7F0C69E0 1561001E */ bne $t3, $at, .Ljp7F0C6A5C +/* 0FB554 7F0C69E4 00000000 */ nop +/* 0FB558 7F0C69E8 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB55C 7F0C69EC 00000000 */ nop +/* 0FB560 7F0C69F0 00028400 */ sll $s0, $v0, 0x10 +/* 0FB564 7F0C69F4 0010C403 */ sra $t8, $s0, 0x10 +/* 0FB568 7F0C69F8 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB56C 7F0C69FC 03008025 */ move $s0, $t8 +/* 0FB570 7F0C6A00 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) # $t7, 0x8004 +/* 0FB574 7F0C6A04 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) # $t4, 0x8004 +/* 0FB578 7F0C6A08 8D8C0EDC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FB57C 7F0C6A0C 8DEF0EE0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0FB580 7F0C6A10 3C0DA0FF */ lui $t5, (0xA0FFA0F0 >> 16) # lui $t5, 0xa0ff +/* 0FB584 7F0C6A14 3C190070 */ lui $t9, (0x007000A0 >> 16) # lui $t9, 0x70 +/* 0FB588 7F0C6A18 373900A0 */ ori $t9, (0x007000A0 & 0xFFFF) # ori $t9, $t9, 0xa0 +/* 0FB58C 7F0C6A1C 35ADA0F0 */ ori $t5, (0xA0FFA0F0 & 0xFFFF) # ori $t5, $t5, 0xa0f0 +/* 0FB590 7F0C6A20 AFAD0018 */ sw $t5, 0x18($sp) +/* 0FB594 7F0C6A24 AFB9001C */ sw $t9, 0x1c($sp) +/* 0FB598 7F0C6A28 02202025 */ move $a0, $s1 +/* 0FB59C 7F0C6A2C 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FB5A0 7F0C6A30 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FB5A4 7F0C6A34 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FB5A8 7F0C6A38 AFB00020 */ sw $s0, 0x20($sp) +/* 0FB5AC 7F0C6A3C AFA20024 */ sw $v0, 0x24($sp) +/* 0FB5B0 7F0C6A40 AFA00028 */ sw $zero, 0x28($sp) +/* 0FB5B4 7F0C6A44 AFA0002C */ sw $zero, 0x2c($sp) +/* 0FB5B8 7F0C6A48 AFAC0014 */ sw $t4, 0x14($sp) +/* 0FB5BC 7F0C6A4C 0FC2BCA7 */ jal jp_text_write_stuff +/* 0FB5C0 7F0C6A50 AFAF0010 */ sw $t7, 0x10($sp) +/* 0FB5C4 7F0C6A54 1000001A */ b .Ljp7F0C6AC0 +/* 0FB5C8 7F0C6A58 00408825 */ move $s1, $v0 +.Ljp7F0C6A5C: +/* 0FB5CC 7F0C6A5C 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB5D0 7F0C6A60 00000000 */ nop +/* 0FB5D4 7F0C6A64 00028400 */ sll $s0, $v0, 0x10 +/* 0FB5D8 7F0C6A68 00107403 */ sra $t6, $s0, 0x10 +/* 0FB5DC 7F0C6A6C 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB5E0 7F0C6A70 01C08025 */ move $s0, $t6 +/* 0FB5E4 7F0C6A74 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableSmall) # $t3, 0x8004 +/* 0FB5E8 7F0C6A78 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) # $t8, 0x8004 +/* 0FB5EC 7F0C6A7C 8F180EDC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0FB5F0 7F0C6A80 8D6B0EE0 */ lw $t3, %lo(ptrSecondFontTableSmall)($t3) +/* 0FB5F4 7F0C6A84 3C0F00FF */ lui $t7, (0x00FF00B0 >> 16) # lui $t7, 0xff +/* 0FB5F8 7F0C6A88 35EF00B0 */ ori $t7, (0x00FF00B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0FB5FC 7F0C6A8C AFAF0018 */ sw $t7, 0x18($sp) +/* 0FB600 7F0C6A90 02202025 */ move $a0, $s1 +/* 0FB604 7F0C6A94 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FB608 7F0C6A98 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FB60C 7F0C6A9C 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FB610 7F0C6AA0 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FB614 7F0C6AA4 AFA20020 */ sw $v0, 0x20($sp) +/* 0FB618 7F0C6AA8 AFA00024 */ sw $zero, 0x24($sp) +/* 0FB61C 7F0C6AAC AFA00028 */ sw $zero, 0x28($sp) +/* 0FB620 7F0C6AB0 AFB80014 */ sw $t8, 0x14($sp) +/* 0FB624 7F0C6AB4 0FC2B99B */ jal en_text_write_stuff +/* 0FB628 7F0C6AB8 AFAB0010 */ sw $t3, 0x10($sp) +/* 0FB62C 7F0C6ABC 00408825 */ move $s1, $v0 +.Ljp7F0C6AC0: +/* 0FB630 7F0C6AC0 0FC2B6A8 */ jal combiner_bayer_lod_perspective +/* 0FB634 7F0C6AC4 02202025 */ move $a0, $s1 +/* 0FB638 7F0C6AC8 10000092 */ b .Ljp7F0C6D14 +/* 0FB63C 7F0C6ACC 00408825 */ move $s1, $v0 +/* 0FB640 7F0C6AD0 8C6C00D8 */ lw $t4, 0xd8($v1) +.Ljp7F0C6AD4: +/* 0FB644 7F0C6AD4 51800090 */ beql $t4, $zero, .Ljp7F0C6D18 +/* 0FB648 7F0C6AD8 02201025 */ move $v0, $s1 +/* 0FB64C 7F0C6ADC 8C6D0428 */ lw $t5, 0x428($v1) +/* 0FB650 7F0C6AE0 51A0008D */ beql $t5, $zero, .Ljp7F0C6D18 +/* 0FB654 7F0C6AE4 02201025 */ move $v0, $s1 +/* 0FB658 7F0C6AE8 8C790424 */ lw $t9, 0x424($v1) +/* 0FB65C 7F0C6AEC 3C0E8009 */ lui $t6, %hi(stop_play_flag) # $t6, 0x8009 +/* 0FB660 7F0C6AF0 53200089 */ beql $t9, $zero, .Ljp7F0C6D18 +/* 0FB664 7F0C6AF4 02201025 */ move $v0, $s1 +/* 0FB668 7F0C6AF8 8DCEC770 */ lw $t6, %lo(stop_play_flag)($t6) +/* 0FB66C 7F0C6AFC 3C0B8009 */ lui $t3, %hi(is_gameover_flag) # $t3, 0x8009 +/* 0FB670 7F0C6B00 55C00085 */ bnezl $t6, .Ljp7F0C6D18 +/* 0FB674 7F0C6B04 02201025 */ move $v0, $s1 +/* 0FB678 7F0C6B08 8D6BC774 */ lw $t3, %lo(is_gameover_flag)($t3) +/* 0FB67C 7F0C6B0C 00002025 */ move $a0, $zero +/* 0FB680 7F0C6B10 55600081 */ bnezl $t3, .Ljp7F0C6D18 +/* 0FB684 7F0C6B14 02201025 */ move $v0, $s1 +/* 0FB688 7F0C6B18 18400028 */ blez $v0, .Ljp7F0C6BBC +/* 0FB68C 7F0C6B1C 00002825 */ move $a1, $zero +/* 0FB690 7F0C6B20 30470003 */ andi $a3, $v0, 3 +/* 0FB694 7F0C6B24 10E00011 */ beqz $a3, .Ljp7F0C6B6C +/* 0FB698 7F0C6B28 00E03025 */ move $a2, $a3 +/* 0FB69C 7F0C6B2C 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 0FB6A0 7F0C6B30 0000C0C0 */ sll $t8, $zero, 3 +/* 0FB6A4 7F0C6B34 0300C023 */ subu $t8, $t8, $zero +/* 0FB6A8 7F0C6B38 0018C100 */ sll $t8, $t8, 4 +/* 0FB6AC 7F0C6B3C 3C198008 */ lui $t9, %hi(player1_player_data) # $t9, 0x8008 +/* 0FB6B0 7F0C6B40 000F6080 */ sll $t4, $t7, 2 +/* 0FB6B4 7F0C6B44 030C6821 */ addu $t5, $t8, $t4 +/* 0FB6B8 7F0C6B48 27399F60 */ addiu $t9, %lo(player1_player_data) # addiu $t9, $t9, -0x60a0 +/* 0FB6BC 7F0C6B4C 01B91821 */ addu $v1, $t5, $t9 +.Ljp7F0C6B50: +/* 0FB6C0 7F0C6B50 8C6E0024 */ lw $t6, 0x24($v1) +/* 0FB6C4 7F0C6B54 24A50001 */ addiu $a1, $a1, 1 +/* 0FB6C8 7F0C6B58 24630070 */ addiu $v1, $v1, 0x70 +/* 0FB6CC 7F0C6B5C 14C5FFFC */ bne $a2, $a1, .Ljp7F0C6B50 +/* 0FB6D0 7F0C6B60 008E2021 */ addu $a0, $a0, $t6 +/* 0FB6D4 7F0C6B64 10A20015 */ beq $a1, $v0, .Ljp7F0C6BBC +/* 0FB6D8 7F0C6B68 00000000 */ nop +.Ljp7F0C6B6C: +/* 0FB6DC 7F0C6B6C 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 0FB6E0 7F0C6B70 000558C0 */ sll $t3, $a1, 3 +/* 0FB6E4 7F0C6B74 01655823 */ subu $t3, $t3, $a1 +/* 0FB6E8 7F0C6B78 000B5900 */ sll $t3, $t3, 4 +/* 0FB6EC 7F0C6B7C 3C0D8008 */ lui $t5, %hi(player1_player_data) # $t5, 0x8008 +/* 0FB6F0 7F0C6B80 000FC080 */ sll $t8, $t7, 2 +/* 0FB6F4 7F0C6B84 01786021 */ addu $t4, $t3, $t8 +/* 0FB6F8 7F0C6B88 25AD9F60 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x60a0 +/* 0FB6FC 7F0C6B8C 018D1821 */ addu $v1, $t4, $t5 +.Ljp7F0C6B90: +/* 0FB700 7F0C6B90 8C790024 */ lw $t9, 0x24($v1) +/* 0FB704 7F0C6B94 8C6E0094 */ lw $t6, 0x94($v1) +/* 0FB708 7F0C6B98 8C6F0104 */ lw $t7, 0x104($v1) +/* 0FB70C 7F0C6B9C 00992021 */ addu $a0, $a0, $t9 +/* 0FB710 7F0C6BA0 8C6B0174 */ lw $t3, 0x174($v1) +/* 0FB714 7F0C6BA4 008E2021 */ addu $a0, $a0, $t6 +/* 0FB718 7F0C6BA8 24A50004 */ addiu $a1, $a1, 4 +/* 0FB71C 7F0C6BAC 008F2021 */ addu $a0, $a0, $t7 +/* 0FB720 7F0C6BB0 246301C0 */ addiu $v1, $v1, 0x1c0 +/* 0FB724 7F0C6BB4 14A8FFF6 */ bne $a1, $t0, .Ljp7F0C6B90 +/* 0FB728 7F0C6BB8 008B2021 */ addu $a0, $a0, $t3 +.Ljp7F0C6BBC: +/* 0FB72C 7F0C6BBC 0FC05202 */ jal get_scenario +/* 0FB730 7F0C6BC0 AFA40058 */ sw $a0, 0x58($sp) +/* 0FB734 7F0C6BC4 24010001 */ li $at, 1 +/* 0FB738 7F0C6BC8 14410004 */ bne $v0, $at, .Ljp7F0C6BDC +/* 0FB73C 7F0C6BCC 8FA40058 */ lw $a0, 0x58($sp) +/* 0FB740 7F0C6BD0 28810002 */ slti $at, $a0, 2 +/* 0FB744 7F0C6BD4 50200050 */ beql $at, $zero, .Ljp7F0C6D18 +/* 0FB748 7F0C6BD8 02201025 */ move $v0, $s1 +.Ljp7F0C6BDC: +/* 0FB74C 7F0C6BDC 0FC2D6D9 */ jal sub_GAME_7F0B4FB4 +/* 0FB750 7F0C6BE0 02202025 */ move $a0, $s1 +/* 0FB754 7F0C6BE4 0FC2B652 */ jal microcode_constructor +/* 0FB758 7F0C6BE8 00402025 */ move $a0, $v0 +/* 0FB75C 7F0C6BEC 00408825 */ move $s1, $v0 +/* 0FB760 7F0C6BF0 0FC30AA2 */ jal get_textptr_for_textID +/* 0FB764 7F0C6BF4 3404A022 */ li $a0, 40994 +/* 0FB768 7F0C6BF8 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) # $t8, 0x8004 +/* 0FB76C 7F0C6BFC 8F180EDC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0FB770 7F0C6C00 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) # $a3, 0x8004 +/* 0FB774 7F0C6C04 AFA20060 */ sw $v0, 0x60($sp) +/* 0FB778 7F0C6C08 8CE70EE0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FB77C 7F0C6C0C 27A40064 */ addiu $a0, $sp, 0x64 +/* 0FB780 7F0C6C10 27A50068 */ addiu $a1, $sp, 0x68 +/* 0FB784 7F0C6C14 00403025 */ move $a2, $v0 +/* 0FB788 7F0C6C18 AFA00014 */ sw $zero, 0x14($sp) +/* 0FB78C 7F0C6C1C 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0FB790 7F0C6C20 AFB80010 */ sw $t8, 0x10($sp) +/* 0FB794 7F0C6C24 0C001145 */ jal get_video2_settings_ulx +/* 0FB798 7F0C6C28 00000000 */ nop +/* 0FB79C 7F0C6C2C 0C001127 */ jal get_video2_settings_width +/* 0FB7A0 7F0C6C30 A7A20056 */ sh $v0, 0x56($sp) +/* 0FB7A4 7F0C6C34 87A80056 */ lh $t0, 0x56($sp) +/* 0FB7A8 7F0C6C38 8FAE0068 */ lw $t6, 0x68($sp) +/* 0FB7AC 7F0C6C3C 00026843 */ sra $t5, $v0, 1 +/* 0FB7B0 7F0C6C40 01A8C821 */ addu $t9, $t5, $t0 +/* 0FB7B4 7F0C6C44 000E7843 */ sra $t7, $t6, 1 +/* 0FB7B8 7F0C6C48 032F5023 */ subu $t2, $t9, $t7 +/* 0FB7BC 7F0C6C4C 0C001149 */ jal get_video2_settings_uly +/* 0FB7C0 7F0C6C50 AFAA0070 */ sw $t2, 0x70($sp) +/* 0FB7C4 7F0C6C54 0C00112B */ jal get_video2_settings_height +/* 0FB7C8 7F0C6C58 A7A20056 */ sh $v0, 0x56($sp) +/* 0FB7CC 7F0C6C5C 87A80056 */ lh $t0, 0x56($sp) +/* 0FB7D0 7F0C6C60 8FA90064 */ lw $t1, 0x64($sp) +/* 0FB7D4 7F0C6C64 0002C043 */ sra $t8, $v0, 1 +/* 0FB7D8 7F0C6C68 8FAA0070 */ lw $t2, 0x70($sp) +/* 0FB7DC 7F0C6C6C 8FAE0068 */ lw $t6, 0x68($sp) +/* 0FB7E0 7F0C6C70 03086021 */ addu $t4, $t8, $t0 +/* 0FB7E4 7F0C6C74 00096843 */ sra $t5, $t1, 1 +/* 0FB7E8 7F0C6C78 018D1823 */ subu $v1, $t4, $t5 +/* 0FB7EC 7F0C6C7C 0069C821 */ addu $t9, $v1, $t1 +/* 0FB7F0 7F0C6C80 272F0001 */ addiu $t7, $t9, 1 +/* 0FB7F4 7F0C6C84 014E3821 */ addu $a3, $t2, $t6 +/* 0FB7F8 7F0C6C88 24E70001 */ addiu $a3, $a3, 1 +/* 0FB7FC 7F0C6C8C AFAF0010 */ sw $t7, 0x10($sp) +/* 0FB800 7F0C6C90 2466FFFF */ addiu $a2, $v1, -1 +/* 0FB804 7F0C6C94 AFA3006C */ sw $v1, 0x6c($sp) +/* 0FB808 7F0C6C98 02202025 */ move $a0, $s1 +/* 0FB80C 7F0C6C9C AFA00014 */ sw $zero, 0x14($sp) +/* 0FB810 7F0C6CA0 0FC2B6F1 */ jal microcode_constructor_related_to_menus +/* 0FB814 7F0C6CA4 2545FFFF */ addiu $a1, $t2, -1 +/* 0FB818 7F0C6CA8 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB81C 7F0C6CAC 00408825 */ move $s1, $v0 +/* 0FB820 7F0C6CB0 00028400 */ sll $s0, $v0, 0x10 +/* 0FB824 7F0C6CB4 00105C03 */ sra $t3, $s0, 0x10 +/* 0FB828 7F0C6CB8 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB82C 7F0C6CBC 01608025 */ move $s0, $t3 +/* 0FB830 7F0C6CC0 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) # $t8, 0x8004 +/* 0FB834 7F0C6CC4 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) # $t4, 0x8004 +/* 0FB838 7F0C6CC8 8D8C0EDC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FB83C 7F0C6CCC 8F180EE0 */ lw $t8, %lo(ptrSecondFontTableSmall)($t8) +/* 0FB840 7F0C6CD0 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0FB844 7F0C6CD4 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0FB848 7F0C6CD8 AFAD0018 */ sw $t5, 0x18($sp) +/* 0FB84C 7F0C6CDC 02202025 */ move $a0, $s1 +/* 0FB850 7F0C6CE0 27A50070 */ addiu $a1, $sp, 0x70 +/* 0FB854 7F0C6CE4 27A6006C */ addiu $a2, $sp, 0x6c +/* 0FB858 7F0C6CE8 8FA70060 */ lw $a3, 0x60($sp) +/* 0FB85C 7F0C6CEC AFB0001C */ sw $s0, 0x1c($sp) +/* 0FB860 7F0C6CF0 AFA20020 */ sw $v0, 0x20($sp) +/* 0FB864 7F0C6CF4 AFA00024 */ sw $zero, 0x24($sp) +/* 0FB868 7F0C6CF8 AFA00028 */ sw $zero, 0x28($sp) +/* 0FB86C 7F0C6CFC AFAC0014 */ sw $t4, 0x14($sp) +/* 0FB870 7F0C6D00 0FC2B99B */ jal en_text_write_stuff +/* 0FB874 7F0C6D04 AFB80010 */ sw $t8, 0x10($sp) +/* 0FB878 7F0C6D08 0FC2B6A8 */ jal combiner_bayer_lod_perspective +/* 0FB87C 7F0C6D0C 00402025 */ move $a0, $v0 +/* 0FB880 7F0C6D10 00408825 */ move $s1, $v0 +.Ljp7F0C6D14: +/* 0FB884 7F0C6D14 02201025 */ move $v0, $s1 +.Ljp7F0C6D18: +/* 0FB888 7F0C6D18 8FBF003C */ lw $ra, 0x3c($sp) +/* 0FB88C 7F0C6D1C 8FB00034 */ lw $s0, 0x34($sp) +/* 0FB890 7F0C6D20 8FB10038 */ lw $s1, 0x38($sp) +/* 0FB894 7F0C6D24 03E00008 */ jr $ra +/* 0FB898 7F0C6D28 27BD00D8 */ addiu $sp, $sp, 0xd8 +) +#endif + +#endif + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0C6048(void) +{ + if (is_gameover_flag != 0) + { + return 0; + } + return (pPlayer->mpmenuon | (0 < pPlayer->healthdisplaytime)); +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C6048 +/* 0FAB78 7F0C6048 3C0E8009 */ lui $t6, %hi(is_gameover_flag) +/* 0FAB7C 7F0C604C 8DCEC704 */ lw $t6, %lo(is_gameover_flag)($t6) +/* 0FAB80 7F0C6050 3C028008 */ lui $v0, %hi(pPlayer) +/* 0FAB84 7F0C6054 11C00003 */ beqz $t6, .L7F0C6064 +/* 0FAB88 7F0C6058 00000000 */ nop +/* 0FAB8C 7F0C605C 03E00008 */ jr $ra +/* 0FAB90 7F0C6060 00001025 */ move $v0, $zero + +.L7F0C6064: +/* 0FAB94 7F0C6064 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0FAB98 7F0C6068 8C582A00 */ lw $t8, 0x2a00($v0) +/* 0FAB9C 7F0C606C 8C4F29C4 */ lw $t7, 0x29c4($v0) +/* 0FABA0 7F0C6070 0018C82A */ slt $t9, $zero, $t8 +/* 0FABA4 7F0C6074 01F91825 */ or $v1, $t7, $t9 +/* 0FABA8 7F0C6078 03E00008 */ jr $ra +/* 0FABAC 7F0C607C 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +s32 checkGamePaused(void) { + return is_paused; +} +#else +GLOBAL_ASM( +.text +glabel checkGamePaused +/* 0FABB0 7F0C6080 3C028009 */ lui $v0, %hi(is_paused) +/* 0FABB4 7F0C6084 03E00008 */ jr $ra +/* 0FABB8 7F0C6088 8C42C718 */ lw $v0, %lo(is_paused)($v0) +) +#endif + + diff --git a/src/game/mp_weapon.c b/src/game/mp_weapon.c new file mode 100644 index 0000000..686663a --- /dev/null +++ b/src/game/mp_weapon.c @@ -0,0 +1,249 @@ +#include "ultra64.h" +#include "bondconstants.h" +#include "game/mp_weapon.h" + +// data +//D:80048670 +struct s_mp_weapon_set mp_weapon_set_slaps[] = +{ + {ITEM_UNARMED, PROP_chrtt33, 1.0, AMMO_9MM, 0, 1}, + {ITEM_UNARMED, PROP_chrtt33, 1.0, AMMO_9MM, 0, 1}, + {ITEM_UNARMED, PROP_chrtt33, 1.0, AMMO_9MM, 0, 1}, + {ITEM_UNARMED, PROP_chrtt33, 1.0, AMMO_9MM, 0, 1}, + {ITEM_UNARMED, PROP_chrtt33, 1.0, AMMO_9MM, 0, 1}, + {ITEM_UNARMED, PROP_chrtt33, 1.0, AMMO_9MM, 0, 1}, + {ITEM_UNARMED, PROP_chrtt33, 1.0, AMMO_9MM, 0, 1}, + {ITEM_UNARMED, PROP_chrtt33, 1.0, AMMO_9MM, 0, 1} +}; + +//D:80048730 +struct s_mp_weapon_set mp_weapon_set_pistols[] = +{ + {ITEM_TT33, PROP_chrtt33, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_WPPKSIL, PROP_chrwppksil, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_WPPKSIL, PROP_chrwppksil, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_WPPKSIL, PROP_chrwppksil, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_RUGER, PROP_chrruger, 1.0, AMMO_MAGNUM, 0x32, 1}, + {ITEM_RUGER, PROP_chrruger, 1.0, AMMO_MAGNUM, 0x32, 1} +}; + +//D:800487F0 +struct s_mp_weapon_set mp_weapon_set_knife[] = +{ + {ITEM_THROWKNIFE, PROP_chrthrowknife, 1.0, AMMO_KNIFE, 0xA, 0}, + {ITEM_THROWKNIFE, PROP_chrthrowknife, 1.0, AMMO_KNIFE, 0xA, 0}, + {ITEM_THROWKNIFE, PROP_chrthrowknife, 1.0, AMMO_KNIFE, 0xA, 0}, + {ITEM_THROWKNIFE, PROP_chrthrowknife, 1.0, AMMO_KNIFE, 0xA, 0}, + {ITEM_THROWKNIFE, PROP_chrthrowknife, 1.0, AMMO_KNIFE, 0xA, 0}, + {ITEM_THROWKNIFE, PROP_chrthrowknife, 1.0, AMMO_KNIFE, 0xA, 0}, + {ITEM_THROWKNIFE, PROP_chrthrowknife, 1.0, AMMO_KNIFE, 0xA, 0}, + {ITEM_THROWKNIFE, PROP_chrthrowknife, 1.0, AMMO_KNIFE, 0xA, 0} +}; + +//D:800488B0 +struct s_mp_weapon_set mp_weapon_set_auto[] = +{ + {ITEM_WPPKSIL, PROP_chrwppksil, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_WPPKSIL, PROP_chrwppksil, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_MP5K, PROP_chrmp5k, 1.0, AMMO_9MM, 0x64, 1}, + {ITEM_MP5K, PROP_chrmp5k, 1.0, AMMO_9MM, 0x64, 1} +}; + +//D:80048970 +struct s_mp_weapon_set mp_weapon_set_power[] = +{ + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_RUGER, PROP_chrruger, 1.0, AMMO_MAGNUM, 0x32, 1}, + {ITEM_RUGER, PROP_chrruger, 1.0, AMMO_MAGNUM, 0x32, 1}, + {ITEM_FNP90, PROP_chrfnp90, 1.0, AMMO_9MM, 0x64, 1}, + {ITEM_FNP90, PROP_chrfnp90, 1.0, AMMO_9MM, 0x64, 1}, + {ITEM_AUTOSHOT, PROP_chrautoshot, 1.0, AMMO_SHOTGUN, 0x1E, 1}, + {ITEM_AUTOSHOT, PROP_chrautoshot, 1.0, AMMO_SHOTGUN, 0x1E, 1} +}; + +//D:80048A30 +struct s_mp_weapon_set mp_weapon_set_sniper[] = +{ + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_RUGER, PROP_chrruger, 1.0, AMMO_MAGNUM, 0x32, 1}, + {ITEM_RUGER, PROP_chrruger, 1.0, AMMO_MAGNUM, 0x32, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.0, AMMO_9MM, 0x64, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.0, AMMO_9MM, 0x64, 1}, + {ITEM_SNIPERRIFLE, PROP_chrsniperrifle, 1.0, AMMO_RIFLE, 0x32, 1}, + {ITEM_SNIPERRIFLE, PROP_chrsniperrifle, 1.0, AMMO_RIFLE, 0x32, 1} +}; + +//D:80048AF0 +struct s_mp_weapon_set mp_weapon_set_grenade[] = +{ + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_GRENADE, PROP_chrgrenade, 1.5, AMMO_GRENADE, 5, 0}, + {ITEM_GRENADE, PROP_chrgrenade, 1.5, AMMO_GRENADE, 5, 0} +}; + +//D:80048BB0 +struct s_mp_weapon_set mp_weapon_set_remote_m[] = +{ + {ITEM_WPPK, PROP_chrwppk, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_WPPK, PROP_chrwppk, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_UZI, PROP_chruzi, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_UZI, PROP_chruzi, 1.5, AMMO_9MM, 0x64, 1}, +#ifdef VERSION_US + {ITEM_M16, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_M16, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, +#else + {ITEM_M16, PROP_chrm16, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_M16, PROP_chrm16, 1.5, AMMO_RIFLE, 0x64, 1}, +#endif + {ITEM_REMOTEMINE, PROP_chrremotemine, 1.5, AMMO_REMOTEMINE, 5, 0}, + {ITEM_REMOTEMINE, PROP_chrremotemine, 1.5, AMMO_REMOTEMINE, 5, 0} +}; + + +//D:80048C70 +struct s_mp_weapon_set mp_weapon_set_glaunch[] = +{ + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_GRENADELAUNCH, PROP_chrgrenadelaunch, 1.0, AMMO_GRENADEROUND, 6, 1}, + {ITEM_GRENADELAUNCH, PROP_chrgrenadelaunch, 1.0, AMMO_GRENADEROUND, 6, 1} +}; + +//D:80048D30 +struct s_mp_weapon_set mp_weapon_set_timed_m[] = +{ + {ITEM_WPPK, PROP_chrwppk, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_WPPK, PROP_chrwppk, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_UZI, PROP_chruzi, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_UZI, PROP_chruzi, 1.5, AMMO_9MM, 0x64, 1}, +#ifdef VERSION_US + {ITEM_M16, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_M16, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, +#else + {ITEM_M16, PROP_chrm16, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_M16, PROP_chrm16, 1.5, AMMO_RIFLE, 0x64, 1}, +#endif + {ITEM_TIMEDMINE, PROP_chrtimedmine, 1.5, AMMO_TIMEDMINE, 5, 0}, + {ITEM_TIMEDMINE, PROP_chrtimedmine, 1.5, AMMO_TIMEDMINE, 5, 0} +}; + +//D:80048DF0 +struct s_mp_weapon_set mp_weapon_set_prox_m[] = +{ + {ITEM_WPPK, PROP_chrwppk, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_WPPK, PROP_chrwppk, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_UZI, PROP_chruzi, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_UZI, PROP_chruzi, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_M16, PROP_chrm16, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_M16, PROP_chrm16, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_PROXIMITYMINE, PROP_chrproximitymine, 1.5, AMMO_PROXMINE, 5, 0}, + {ITEM_PROXIMITYMINE, PROP_chrproximitymine, 1.5, AMMO_PROXMINE, 5, 0} +}; + +//D:80048EB0 +struct s_mp_weapon_set mp_weapon_set_rockets[] = +{ + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_ROCKETLAUNCH, PROP_chrrocketlaunch, 1.5, AMMO_ROCKETS, 6, 1}, + {ITEM_ROCKETLAUNCH, PROP_chrrocketlaunch, 1.5, AMMO_ROCKETS, 6, 1} +}; + +//D:80048F70 +struct s_mp_weapon_set mp_weapon_set_lasers[] = +{ + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_LASER, PROP_chrlaser, 1.5, AMMO_NONE, 0, 1}, + {ITEM_LASER, PROP_chrlaser, 1.5, AMMO_NONE, 0, 1} +}; + +//D:80049030 +struct s_mp_weapon_set mp_weapon_set_golden[] = +{ + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_TT33, PROP_chrtt33, 3.0, AMMO_9MM, 0x32, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_SKORPION, PROP_chrskorpion, 1.5, AMMO_9MM, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_AK47, PROP_chrkalash, 1.5, AMMO_RIFLE, 0x64, 1}, + {ITEM_WPPKSIL, PROP_chrwppksil, 1.0, AMMO_9MM, 0x32, 1}, + {ITEM_GOLDENGUN, PROP_chrgolden, 1.5, AMMO_GGUN, 0xA, 1} +}; + +//D:800490F0 +struct s_mp_weapon_set_text mp_weapon_set_text_table[] = +{ + {TEXT(LMPWEAPONS, 0x0), mp_weapon_set_slaps}, + {TEXT(LMPWEAPONS, 0x1), mp_weapon_set_pistols}, + {TEXT(LMPWEAPONS, 0xD), mp_weapon_set_knife}, + {TEXT(LMPWEAPONS, 0x2), mp_weapon_set_auto}, + {TEXT(LMPWEAPONS, 0x3), mp_weapon_set_power}, + {TEXT(LMPWEAPONS, 0x4), mp_weapon_set_sniper}, + {TEXT(LMPWEAPONS, 0x5), mp_weapon_set_grenade}, + {TEXT(LMPWEAPONS, 0x6), mp_weapon_set_remote_m}, + {TEXT(LMPWEAPONS, 0x7), mp_weapon_set_glaunch}, + {TEXT(LMPWEAPONS, 0x8), mp_weapon_set_timed_m}, + {TEXT(LMPWEAPONS, 0x9), mp_weapon_set_prox_m}, + {TEXT(LMPWEAPONS, 0xA), mp_weapon_set_rockets}, + {TEXT(LMPWEAPONS, 0xB), mp_weapon_set_lasers}, + {TEXT(LMPWEAPONS, 0xC), mp_weapon_set_golden} +}; + +s32 mp_weapon_set = 0xB; + + +//increment mp_weapon_set by 1, capping at 0xE +void incrementMPWeaponSet(void) +{ + mp_weapon_set = (mp_weapon_set + 1) % 0xe; +} + +//return pointer to selected mp_weapon_set textID +u16* getPtrMPWeaponSetTextID(void) +{ + return &mp_weapon_set_text_table[mp_weapon_set].textID; +} + +//return pointer to selected mp_weapon_set data +struct s_mp_weapon_set* getPtrMPWeaponSetData(void) +{ + return mp_weapon_set_text_table[mp_weapon_set].weapon_set; +} + +//set mp weapon set +void setMPWeaponSet(s32 setNUM) +{ + mp_weapon_set = setNUM; +} + +//return mp weapon set +s32 getMPWeaponSet(void) +{ + return mp_weapon_set; +} diff --git a/src/game/mp_weapon.h b/src/game/mp_weapon.h new file mode 100644 index 0000000..0268594 --- /dev/null +++ b/src/game/mp_weapon.h @@ -0,0 +1,42 @@ +#ifndef _MP_WEAPON_H_ +#define _MP_WEAPON_H_ +#include "ultra64.h" + +struct s_mp_weapon_set +{ + s32 itemID; + s32 propID; + f32 size; + s32 ammotype; + s32 ammoamount; + s32 allowpickup; +}; + +struct s_mp_weapon_set_text +{ + u16 textID; + struct s_mp_weapon_set * weapon_set; +}; + +extern struct s_mp_weapon_set mp_weapon_set_slaps[]; +extern struct s_mp_weapon_set mp_weapon_set_pistols[]; +extern struct s_mp_weapon_set mp_weapon_set_knife[]; +extern struct s_mp_weapon_set mp_weapon_set_auto[]; +extern struct s_mp_weapon_set mp_weapon_set_power[]; +extern struct s_mp_weapon_set mp_weapon_set_sniper[]; +extern struct s_mp_weapon_set mp_weapon_set_grenade[]; +extern struct s_mp_weapon_set mp_weapon_set_remote_m[]; +extern struct s_mp_weapon_set mp_weapon_set_glaunch[]; +extern struct s_mp_weapon_set mp_weapon_set_timed_m[]; +extern struct s_mp_weapon_set mp_weapon_set_prox_m[]; +extern struct s_mp_weapon_set mp_weapon_set_rockets[]; +extern struct s_mp_weapon_set mp_weapon_set_lasers[]; +extern struct s_mp_weapon_set mp_weapon_set_golden[]; + +void incrementMPWeaponSet(void); +u16* getPtrMPWeaponSetTextID(void); +struct s_mp_weapon_set* getPtrMPWeaponSetData(void); +void setMPWeaponSet(s32 arg0); +s32 getMPWeaponSet(void); + +#endif diff --git a/src/game/music_0D2720.c b/src/game/music_0D2720.c new file mode 100644 index 0000000..c6ec204 --- /dev/null +++ b/src/game/music_0D2720.c @@ -0,0 +1,279 @@ +#include "ultra64.h" + +struct music_setup +{ + s16 stage_id; + s16 main_music; + s16 bg_sound; + s16 xtrack; +}; + +// data +//D:8004EB10 +struct music_setup music_setup_entries[] = { +{ 9, 0xF, 0xFFFF, 0x29}, +{0x14, 0xC, 0xFFFF, 0x26}, +{0x16, 0x11, 0xFFFF, 0x3D}, +{0x17, 8, 0xFFFF, 0x12}, +{0x18, 0xB, 0xFFFF, 0x25}, +{0x19, 3, 0xFFFF, 0x1D}, +{0x1A, 0xA, 0xFFFF, 0x3E}, +{0x1B, 0x10, 0xFFFF, 0x2A}, +{0x1C, 0x19, 0xFFFF, 0x2E}, +{0x1D, 0xE, 0xFFFF, 0x28}, +{0x1E, 4, 0xFFFF, 0x20}, +{0x20, 0x16, 0xFFFF, 0x2F}, +{0x21, 9, 0xFFFF, 0x35}, +{0x22, 7, 0xFFFF, 0x1F}, +{0x23, 0x32, 0xFFFF, 0x33}, +{0x24, 0x39, 0xFFFF, 0x35}, +{0x25, 0x37, 0xFFFF, 0x2B}, +{0x27, 0x1A, 0xFFFF, 0x15}, +{0x28, 6, 0xFFFF, 0xFFFF}, +{0x29, 0x13, 0xFFFF, 0x30}, +{0x2A, 0x1C, 0xFFFF, 0xFFFF}, +{0x2B, 0x1C, 0x35, 0x3C}, +{0x36, 0x31, 0xFFFF, 0xFFFF}, +{0} +}; + +//D:8004EBD0 +s16 random_tracks[] = { + 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xC, 0xD, + 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0x15, 0x16, 0x19, 0x1A, 0x1C, + 0x1D, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x28, 0x29, + 0x2A, 0x2B, 0x2D, 0x2E, 0x2F, 0x30, 0x32, 0x34, 0x38, 0x39, 0 +}; + + + +#ifdef NONMATCHING +void getmusictrack_or_randomtrack(void) { + +} +#else +GLOBAL_ASM( +.text +glabel getmusictrack_or_randomtrack +/* 107250 7F0D2720 3C0E8005 */ lui $t6, %hi(music_setup_entries) +/* 107254 7F0D2724 85CEEB10 */ lh $t6, %lo(music_setup_entries)($t6) +/* 107258 7F0D2728 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 10725C 7F0D272C AFBF0014 */ sw $ra, 0x14($sp) +/* 107260 7F0D2730 11C0002A */ beqz $t6, .L7F0D27DC +/* 107264 7F0D2734 3C0A8005 */ lui $t2, %hi(random_tracks) +/* 107268 7F0D2738 3C0F8005 */ lui $t7, %hi(music_setup_entries) +/* 10726C 7F0D273C 25E2EB10 */ addiu $v0, $t7, %lo(music_setup_entries) +/* 107270 7F0D2740 84430000 */ lh $v1, ($v0) +.L7F0D2744: +/* 107274 7F0D2744 54830022 */ bnel $a0, $v1, .L7F0D27D0 +/* 107278 7F0D2748 84430008 */ lh $v1, 8($v0) +/* 10727C 7F0D274C 84430002 */ lh $v1, 2($v0) +/* 107280 7F0D2750 2401FFFF */ li $at, -1 +/* 107284 7F0D2754 3C188005 */ lui $t8, %hi(random_tracks) +/* 107288 7F0D2758 1461001A */ bne $v1, $at, .L7F0D27C4 +/* 10728C 7F0D275C 00000000 */ nop +/* 107290 7F0D2760 8718EBD0 */ lh $t8, %lo(random_tracks)($t8) +/* 107294 7F0D2764 3C028005 */ lui $v0, %hi(random_tracks) +/* 107298 7F0D2768 00001825 */ move $v1, $zero +/* 10729C 7F0D276C 13000006 */ beqz $t8, .L7F0D2788 +/* 1072A0 7F0D2770 2442EBD0 */ addiu $v0, %lo(random_tracks) # addiu $v0, $v0, -0x1430 +/* 1072A4 7F0D2774 84590002 */ lh $t9, 2($v0) +.L7F0D2778: +/* 1072A8 7F0D2778 24630001 */ addiu $v1, $v1, 1 +/* 1072AC 7F0D277C 24420002 */ addiu $v0, $v0, 2 +/* 1072B0 7F0D2780 5720FFFD */ bnezl $t9, .L7F0D2778 +/* 1072B4 7F0D2784 84590002 */ lh $t9, 2($v0) +.L7F0D2788: +/* 1072B8 7F0D2788 0C002914 */ jal get_random_value +/* 1072BC 7F0D278C AFA30020 */ sw $v1, 0x20($sp) +/* 1072C0 7F0D2790 8FA30020 */ lw $v1, 0x20($sp) +/* 1072C4 7F0D2794 3C048005 */ lui $a0, %hi(random_tracks) +/* 1072C8 7F0D2798 0043001B */ divu $zero, $v0, $v1 +/* 1072CC 7F0D279C 00004010 */ mfhi $t0 +/* 1072D0 7F0D27A0 00084840 */ sll $t1, $t0, 1 +/* 1072D4 7F0D27A4 00892021 */ addu $a0, $a0, $t1 +/* 1072D8 7F0D27A8 8484EBD0 */ lh $a0, %lo(random_tracks)($a0) +/* 1072DC 7F0D27AC 14600002 */ bnez $v1, .L7F0D27B8 +/* 1072E0 7F0D27B0 00000000 */ nop +/* 1072E4 7F0D27B4 0007000D */ break 7 +.L7F0D27B8: +/* 1072E8 7F0D27B8 00801025 */ move $v0, $a0 +/* 1072EC 7F0D27BC 1000001F */ b .L7F0D283C +/* 1072F0 7F0D27C0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0D27C4: +/* 1072F4 7F0D27C4 1000001C */ b .L7F0D2838 +/* 1072F8 7F0D27C8 00601025 */ move $v0, $v1 +/* 1072FC 7F0D27CC 84430008 */ lh $v1, 8($v0) +.L7F0D27D0: +/* 107300 7F0D27D0 24420008 */ addiu $v0, $v0, 8 +/* 107304 7F0D27D4 1460FFDB */ bnez $v1, .L7F0D2744 +/* 107308 7F0D27D8 00000000 */ nop +.L7F0D27DC: +/* 10730C 7F0D27DC 854AEBD0 */ lh $t2, %lo(random_tracks)($t2) +/* 107310 7F0D27E0 3C028005 */ lui $v0, %hi(random_tracks) +/* 107314 7F0D27E4 00001825 */ move $v1, $zero +/* 107318 7F0D27E8 11400006 */ beqz $t2, .L7F0D2804 +/* 10731C 7F0D27EC 2442EBD0 */ addiu $v0, %lo(random_tracks) # addiu $v0, $v0, -0x1430 +/* 107320 7F0D27F0 844B0002 */ lh $t3, 2($v0) +.L7F0D27F4: +/* 107324 7F0D27F4 24630001 */ addiu $v1, $v1, 1 +/* 107328 7F0D27F8 24420002 */ addiu $v0, $v0, 2 +/* 10732C 7F0D27FC 5560FFFD */ bnezl $t3, .L7F0D27F4 +/* 107330 7F0D2800 844B0002 */ lh $t3, 2($v0) +.L7F0D2804: +/* 107334 7F0D2804 0C002914 */ jal get_random_value +/* 107338 7F0D2808 AFA30018 */ sw $v1, 0x18($sp) +/* 10733C 7F0D280C 8FA30018 */ lw $v1, 0x18($sp) +/* 107340 7F0D2810 3C048005 */ lui $a0, %hi(random_tracks) +/* 107344 7F0D2814 0043001B */ divu $zero, $v0, $v1 +/* 107348 7F0D2818 00006010 */ mfhi $t4 +/* 10734C 7F0D281C 000C6840 */ sll $t5, $t4, 1 +/* 107350 7F0D2820 008D2021 */ addu $a0, $a0, $t5 +/* 107354 7F0D2824 8484EBD0 */ lh $a0, %lo(random_tracks)($a0) +/* 107358 7F0D2828 14600002 */ bnez $v1, .L7F0D2834 +/* 10735C 7F0D282C 00000000 */ nop +/* 107360 7F0D2830 0007000D */ break 7 +.L7F0D2834: +/* 107364 7F0D2834 00801025 */ move $v0, $a0 +.L7F0D2838: +/* 107368 7F0D2838 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0D283C: +/* 10736C 7F0D283C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 107370 7F0D2840 03E00008 */ jr $ra +/* 107374 7F0D2844 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D2848(s32 arg0) { + void *temp_v1; + s32 temp_v0; + s32 phi_v0; + void *phi_v1; + + // Node 0 + temp_v1 = (0x80050000 + -0x14f0); + if (music_setup_entries != 0) + { + // Node 1 + phi_v0 = *temp_v1; + phi_v1 = temp_v1; + // Node 2 + if (arg0 == phi_v0) + { + // Node 3 + return phi_v1->unk4; + } + // Node 4 + temp_v0 = phi_v1->unk8; + phi_v0 = temp_v0; + phi_v1 = (phi_v1 + 8); + if (temp_v0 != 0) + { + goto loop_2; + } + } + // Node 5 + return -1; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D2848 +/* 107378 7F0D2848 3C0E8005 */ lui $t6, %hi(music_setup_entries) +/* 10737C 7F0D284C 85CEEB10 */ lh $t6, %lo(music_setup_entries)($t6) +/* 107380 7F0D2850 3C0F8005 */ lui $t7, %hi(music_setup_entries) +/* 107384 7F0D2854 25E3EB10 */ addiu $v1, $t7, %lo(music_setup_entries) +/* 107388 7F0D2858 51C0000B */ beql $t6, $zero, .L7F0D2888 +/* 10738C 7F0D285C 2402FFFF */ li $v0, -1 +/* 107390 7F0D2860 84620000 */ lh $v0, ($v1) +.L7F0D2864: +/* 107394 7F0D2864 54820004 */ bnel $a0, $v0, .L7F0D2878 +/* 107398 7F0D2868 84620008 */ lh $v0, 8($v1) +/* 10739C 7F0D286C 03E00008 */ jr $ra +/* 1073A0 7F0D2870 84620004 */ lh $v0, 4($v1) + +/* 1073A4 7F0D2874 84620008 */ lh $v0, 8($v1) +.L7F0D2878: +/* 1073A8 7F0D2878 24630008 */ addiu $v1, $v1, 8 +/* 1073AC 7F0D287C 1440FFF9 */ bnez $v0, .L7F0D2864 +/* 1073B0 7F0D2880 00000000 */ nop +/* 1073B4 7F0D2884 2402FFFF */ li $v0, -1 +.L7F0D2888: +/* 1073B8 7F0D2888 03E00008 */ jr $ra +/* 1073BC 7F0D288C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D2890(s32 arg0) { + void *temp_v1; + s32 temp_v0; + s32 phi_v0; + void *phi_v1; + + // Node 0 + temp_v1 = (0x80050000 + -0x14f0); + if (music_setup_entries != 0) + { + // Node 1 + phi_v0 = *temp_v1; + phi_v1 = temp_v1; + // Node 2 + if (arg0 == phi_v0) + { + // Node 3 + return phi_v1->unk6; + } + // Node 4 + temp_v0 = phi_v1->unk8; + phi_v0 = temp_v0; + phi_v1 = (phi_v1 + 8); + if (temp_v0 != 0) + { + goto loop_2; + } + } + // Node 5 + return -1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D2890 +/* 1073C0 7F0D2890 3C0E8005 */ lui $t6, %hi(music_setup_entries) +/* 1073C4 7F0D2894 85CEEB10 */ lh $t6, %lo(music_setup_entries)($t6) +/* 1073C8 7F0D2898 3C0F8005 */ lui $t7, %hi(music_setup_entries) +/* 1073CC 7F0D289C 25E3EB10 */ addiu $v1, $t7, %lo(music_setup_entries) +/* 1073D0 7F0D28A0 51C0000B */ beql $t6, $zero, .L7F0D28D0 +/* 1073D4 7F0D28A4 2402FFFF */ li $v0, -1 +/* 1073D8 7F0D28A8 84620000 */ lh $v0, ($v1) +.L7F0D28AC: +/* 1073DC 7F0D28AC 54820004 */ bnel $a0, $v0, .L7F0D28C0 +/* 1073E0 7F0D28B0 84620008 */ lh $v0, 8($v1) +/* 1073E4 7F0D28B4 03E00008 */ jr $ra +/* 1073E8 7F0D28B8 84620006 */ lh $v0, 6($v1) + +/* 1073EC 7F0D28BC 84620008 */ lh $v0, 8($v1) +.L7F0D28C0: +/* 1073F0 7F0D28C0 24630008 */ addiu $v1, $v1, 8 +/* 1073F4 7F0D28C4 1440FFF9 */ bnez $v0, .L7F0D28AC +/* 1073F8 7F0D28C8 00000000 */ nop +/* 1073FC 7F0D28CC 2402FFFF */ li $v0, -1 +.L7F0D28D0: +/* 107400 7F0D28D0 03E00008 */ jr $ra +/* 107404 7F0D28D4 00000000 */ nop +) +#endif + + + diff --git a/src/game/null_007970.c b/src/game/null_007970.c new file mode 100644 index 0000000..544af8d --- /dev/null +++ b/src/game/null_007970.c @@ -0,0 +1,8 @@ +#include "ultra64.h" + + + +void cleanup_REMOVED_(void){ + +} + diff --git a/src/game/ob.c b/src/game/ob.c new file mode 100644 index 0000000..983b897 --- /dev/null +++ b/src/game/ob.c @@ -0,0 +1,940 @@ +#include "ultra64.h" +#include "game/ob.h" +#include "memp.h" +#include "assets/obseg/obseg.h" +#include "game/decompress.h" + + +//bss +//800888b0 +struct resource_lookup_data_entry resource_lookup_data_array[736]; + +// data +//D:80046050 +s32 ob_c_debug_notice_list_entry = 0; + + +#include "assets/obseg/file_resource_table.inc.c" +/* struct fileentry file_resource_table[] = + { + blah; + }; + */ + + +//D:800482D4 +s32 file_entry_max = OBJ_INDEX_END; + + + + +void load_resource(u8 *ptrdata, u32 bytes, struct fileentry *srcfile, struct resource_lookup_data_entry *lookupdata) +{ + u8 *source; + u8 buffer[0x2100]; + s32 unused; + + + if (bytes == 0) + { + romCopy(ptrdata, srcfile->hw_address, lookupdata->rom_size); + return; + } + source = (ptrdata + bytes) - ((lookupdata->rom_size + 7) & -8); + if ((u32) (source - ptrdata) < 8U) + { + lookupdata->pc_remaining = 0; + } + else + { + romCopy(source, srcfile->hw_address, lookupdata->rom_size); + lookupdata->pc_remaining = decompressdata(source, ptrdata, buffer);; + } +} + + + + +#ifdef NONMATCHING +//need to tinker with stack size +void resource_load_from_indy(u8 *ptrdata, u32 bytes, struct fileentry *srcfile, struct resource_lookup_data_entry *lookupdata) +{ + void *sp2124; + u8 buffer[8450]; + u8 *pPayload; + u32 size; +static const u8 rz_header_1[] = {0x11, 0x72, 0x00, 0x00}; +static const u8 rz_header_2[] = {0x11, 0x72, 0x00, 0x00}; + if (bytes == 0) + { + load_resource_on_indy(srcfile->filename, ptrdata); + return; + } + check_file_found_on_indy(srcfile->filename, lookupdata->pc_size); + pPayload = (ptrdata + bytes) - ((lookupdata->pc_size + 7) & -8); + if ((u32) (pPayload - ptrdata) < 8U) + { + lookupdata->pc_remaining = 0; + } + else + { + sp2124 = pPayload; + load_resource_on_indy(srcfile->filename, pPayload); + if ((pPayload[0] == rz_header_1[0]) && (pPayload[1] == rz_header_2[1])) + { + size = decompressdata(pPayload, ptrdata, &buffer); + } + else + { + bcopy(pPayload, ptrdata, lookupdata->pc_size); + size = lookupdata->pc_size; + } + lookupdata->pc_remaining = (s32) size; + } +} +#else +GLOBAL_ASM( +.rdata +/*8005b66c*/ +glabel rz_header_1 +.word 0x11720000 +/*8005b670*/ +glabel rz_header_2 +.word 0x11720000 +.text +glabel resource_load_from_indy +/* 0F1664 7F0BCB34 27BDDED8 */ addiu $sp, $sp, -0x2128 +/* 0F1668 7F0BCB38 AFB10018 */ sw $s1, 0x18($sp) +/* 0F166C 7F0BCB3C AFB00014 */ sw $s0, 0x14($sp) +/* 0F1670 7F0BCB40 00808025 */ move $s0, $a0 +/* 0F1674 7F0BCB44 00E08825 */ move $s1, $a3 +/* 0F1678 7F0BCB48 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F167C 7F0BCB4C 14A00006 */ bnez $a1, .L7F0BCB68 +/* 0F1680 7F0BCB50 AFA5212C */ sw $a1, 0x212c($sp) +/* 0F1684 7F0BCB54 8CC40004 */ lw $a0, 4($a2) +/* 0F1688 7F0BCB58 0FC33FE7 */ jal load_resource_on_indy +/* 0F168C 7F0BCB5C 02002825 */ move $a1, $s0 +/* 0F1690 7F0BCB60 1000002D */ b .L7F0BCC18 +/* 0F1694 7F0BCB64 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0BCB68: +/* 0F1698 7F0BCB68 8CC40004 */ lw $a0, 4($a2) +/* 0F169C 7F0BCB6C AFA62130 */ sw $a2, 0x2130($sp) +/* 0F16A0 7F0BCB70 0FC34026 */ jal check_file_found_on_indy +/* 0F16A4 7F0BCB74 26250008 */ addiu $a1, $s1, 8 +/* 0F16A8 7F0BCB78 8E390008 */ lw $t9, 8($s1) +/* 0F16AC 7F0BCB7C 8FAF212C */ lw $t7, 0x212c($sp) +/* 0F16B0 7F0BCB80 2401FFF8 */ li $at, -8 +/* 0F16B4 7F0BCB84 27280007 */ addiu $t0, $t9, 7 +/* 0F16B8 7F0BCB88 01014824 */ and $t1, $t0, $at +/* 0F16BC 7F0BCB8C 020FC021 */ addu $t8, $s0, $t7 +/* 0F16C0 7F0BCB90 03093823 */ subu $a3, $t8, $t1 +/* 0F16C4 7F0BCB94 00F05023 */ subu $t2, $a3, $s0 +/* 0F16C8 7F0BCB98 2D410008 */ sltiu $at, $t2, 8 +/* 0F16CC 7F0BCB9C 10200003 */ beqz $at, .L7F0BCBAC +/* 0F16D0 7F0BCBA0 8FA62130 */ lw $a2, 0x2130($sp) +/* 0F16D4 7F0BCBA4 1000001B */ b .L7F0BCC14 +/* 0F16D8 7F0BCBA8 AE200004 */ sw $zero, 4($s1) +.L7F0BCBAC: +/* 0F16DC 7F0BCBAC 8CC40004 */ lw $a0, 4($a2) +/* 0F16E0 7F0BCBB0 AFA72124 */ sw $a3, 0x2124($sp) +/* 0F16E4 7F0BCBB4 0FC33FE7 */ jal load_resource_on_indy +/* 0F16E8 7F0BCBB8 00E02825 */ move $a1, $a3 +/* 0F16EC 7F0BCBBC 8FA72124 */ lw $a3, 0x2124($sp) +/* 0F16F0 7F0BCBC0 3C0C8006 */ lui $t4, %hi(rz_header_1) +/* 0F16F4 7F0BCBC4 918CB66C */ lbu $t4, %lo(rz_header_1)($t4) +/* 0F16F8 7F0BCBC8 90EB0000 */ lbu $t3, ($a3) +/* 0F16FC 7F0BCBCC 3C0E8006 */ lui $t6, %hi(rz_header_2 + 0x1) +/* 0F1700 7F0BCBD0 02002825 */ move $a1, $s0 +/* 0F1704 7F0BCBD4 156C000B */ bne $t3, $t4, .L7F0BCC04 +/* 0F1708 7F0BCBD8 00E02025 */ move $a0, $a3 +/* 0F170C 7F0BCBDC 90ED0001 */ lbu $t5, 1($a3) +/* 0F1710 7F0BCBE0 91CEB671 */ lbu $t6, %lo(rz_header_2 + 0x1)($t6) +/* 0F1714 7F0BCBE4 27A60024 */ addiu $a2, $sp, 0x24 +/* 0F1718 7F0BCBE8 15AE0006 */ bne $t5, $t6, .L7F0BCC04 +/* 0F171C 7F0BCBEC 00000000 */ nop +/* 0F1720 7F0BCBF0 00E02025 */ move $a0, $a3 +/* 0F1724 7F0BCBF4 0FC339FC */ jal decompressdata +/* 0F1728 7F0BCBF8 02002825 */ move $a1, $s0 +/* 0F172C 7F0BCBFC 10000004 */ b .L7F0BCC10 +/* 0F1730 7F0BCC00 00401825 */ move $v1, $v0 +.L7F0BCC04: +/* 0F1734 7F0BCC04 0C003E5C */ jal bcopy +/* 0F1738 7F0BCC08 8E260008 */ lw $a2, 8($s1) +/* 0F173C 7F0BCC0C 8E230008 */ lw $v1, 8($s1) +.L7F0BCC10: +/* 0F1740 7F0BCC10 AE230004 */ sw $v1, 4($s1) +.L7F0BCC14: +/* 0F1744 7F0BCC14 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0BCC18: +/* 0F1748 7F0BCC18 8FB00014 */ lw $s0, 0x14($sp) +/* 0F174C 7F0BCC1C 8FB10018 */ lw $s1, 0x18($sp) +/* 0F1750 7F0BCC20 03E00008 */ jr $ra +/* 0F1754 7F0BCC24 27BD2128 */ addiu $sp, $sp, 0x2128 +) +#endif + + + + + +#ifdef NONMATCHING +void obInitDebugNoticeList(void) +{ + struct resource_lookup_data_entry *lookupentry; + struct resource_lookup_data_entry *nextlookup; + int file_count; + struct fileentry *filetable_entry; + + debCheckAddDebugNoticeListEntry(&ob_c_debug_notice_list_entry,"ob_c_debug"); + filetable_entry = &file_resource_table[0]; + file_count = file_entry_max - 1; + if (1 < file_count) { + lookupentry = resource_lookup_data_array + 1; + while (nextlookup < resource_lookup_data_array + file_count) { + filetable_entry = filetable_entry + 1; + nextlookup = lookupentry + 1; + lookupentry->rom_size = filetable_entry[1].hw_address - filetable_entry->hw_address; + lookupentry->pc_remaining = 0; + lookupentry->pc_size = 0; + lookupentry->rom_remaining = 0; + lookupentry = nextlookup; + } ; + } + return; +} +#else +GLOBAL_ASM( +.rdata +/*D:8005B674*/ +glabel aOb_c_debug +/*"ob_c_debug"*/ +.word 0x6F625F63, 0x5F646562, 0x75670000 +.text +glabel obInitDebugNoticeList +/* 0F1758 7F0BCC28 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F175C 7F0BCC2C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F1760 7F0BCC30 3C048004 */ lui $a0, %hi(ob_c_debug_notice_list_entry) +/* 0F1764 7F0BCC34 3C058006 */ lui $a1, %hi(aOb_c_debug) +/* 0F1768 7F0BCC38 24A5B674 */ addiu $a1, %lo(aOb_c_debug) # addiu $a1, $a1, -0x498c +/* 0F176C 7F0BCC3C 0C001398 */ jal debCheckAddDebugNoticeListEntry +/* 0F1770 7F0BCC40 24846050 */ addiu $a0, %lo(ob_c_debug_notice_list_entry) # addiu $a0, $a0, 0x6050 +/* 0F1774 7F0BCC44 3C038005 */ lui $v1, %hi(file_entry_max) +/* 0F1778 7F0BCC48 8C6382D4 */ lw $v1, %lo(file_entry_max)($v1) +/* 0F177C 7F0BCC4C 3C048004 */ lui $a0, %hi(file_resource_table + 0xC) +/* 0F1780 7F0BCC50 24846060 */ addiu $a0, %lo(file_resource_table + 0xC) # addiu $a0, $a0, 0x6060 +/* 0F1784 7F0BCC54 2463FFFF */ addiu $v1, $v1, -1 +/* 0F1788 7F0BCC58 28610002 */ slti $at, $v1, 2 +/* 0F178C 7F0BCC5C 14200013 */ bnez $at, .L7F0BCCAC +/* 0F1790 7F0BCC60 3C028009 */ lui $v0, %hi(resource_lookup_data_array+0x14) +/* 0F1794 7F0BCC64 00037080 */ sll $t6, $v1, 2 +/* 0F1798 7F0BCC68 01C37021 */ addu $t6, $t6, $v1 +/* 0F179C 7F0BCC6C 3C0F8009 */ lui $t7, %hi(resource_lookup_data_array) +/* 0F17A0 7F0BCC70 25EF88B0 */ addiu $t7, %lo(resource_lookup_data_array) # addiu $t7, $t7, -0x7750 +/* 0F17A4 7F0BCC74 000E7080 */ sll $t6, $t6, 2 +/* 0F17A8 7F0BCC78 01CF2821 */ addu $a1, $t6, $t7 +/* 0F17AC 7F0BCC7C 244288C4 */ addiu $v0, %lo(resource_lookup_data_array+0x14) # addiu $v0, $v0, -0x773c +.L7F0BCC80: +/* 0F17B0 7F0BCC80 8C980014 */ lw $t8, 0x14($a0) +/* 0F17B4 7F0BCC84 8C990008 */ lw $t9, 8($a0) +/* 0F17B8 7F0BCC88 24420014 */ addiu $v0, $v0, 0x14 +/* 0F17BC 7F0BCC8C 0045082B */ sltu $at, $v0, $a1 +/* 0F17C0 7F0BCC90 03191823 */ subu $v1, $t8, $t9 +/* 0F17C4 7F0BCC94 2484000C */ addiu $a0, $a0, 0xc +/* 0F17C8 7F0BCC98 AC43FFEC */ sw $v1, -0x14($v0) +/* 0F17CC 7F0BCC9C AC40FFF0 */ sw $zero, -0x10($v0) +/* 0F17D0 7F0BCCA0 AC40FFF4 */ sw $zero, -0xc($v0) +/* 0F17D4 7F0BCCA4 1420FFF6 */ bnez $at, .L7F0BCC80 +/* 0F17D8 7F0BCCA8 AC40FFF8 */ sw $zero, -8($v0) +.L7F0BCCAC: +/* 0F17DC 7F0BCCAC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F17E0 7F0BCCB0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F17E4 7F0BCCB4 03E00008 */ jr $ra +/* 0F17E8 7F0BCCB8 00000000 */ nop +) +#endif + + + + + + +void _load_rom_index_to_membank(s32 index,s32 param_2,s32 size,u8 bank) { + load_rom_resource_index_to_membank(index, param_2, size, bank); +} + +void _load_resource_index_to_membank(int index,s32 param_2,u8 *ptrdata,int size) { + load_resource_index_to_buffer(index, param_2, ptrdata, size); +} + +void _load_resource_named_to_membank(u8 *filename,s32 param_2,s32 size,u8 bank) +{ + load_rom_resource_index_to_membank(get_index_num_of_named_resource(filename), param_2, size, bank); +} + +void _load_resource_named_to_buffer(u8 *filename,s32 bank,u8 *ptrdata,int size) +{ + load_resource_index_to_buffer(get_index_num_of_named_resource(filename), bank, ptrdata, size); +} + +/** + * 0F18AC 7F0BCD7C + * loads data stored at an offset of a bg file + */ +void obLoadBGFileBytesAtOffset(u8 *bgname, u8 *target, s32 offset, s32 len) +{ + s32 index; + struct fileentry *fileentry; + + index = get_index_num_of_named_resource(bgname); + fileentry = &file_resource_table[index]; + + if (resource_lookup_data_array[index].rom_size != 0) + { + //if the size of offset data would exceed file size, loop forever + if ((resource_lookup_data_array[index].rom_size + 0xF) < (offset + len)) + { + while (1){}; + } + romCopy(target, &fileentry->hw_address[offset], len, fileentry); + } + +} + + + + +#ifdef NONMATCHING// +u8 * load_rom_resource_index_to_membank(s32 index,s32 type,s32 size,u8 bank) +{ + + u8 *ptrdata; + if (((type == 0) || (type == 1)) || (type == 2)) + { + if (resource_lookup_data_array[index].pc_remaining == 0) + { + resource_lookup_data_array[index].pc_remaining = mempGetBankSizeLeft(bank); + } + ptrdata = mempAllocBytesInBank(resource_lookup_data_array[index].pc_remaining, bank); + resource_lookup_data_array[index].rom_remaining = resource_lookup_data_array[index].pc_remaining; + if (file_resource_table[index].hw_address == 0) + { + resource_load_from_indy(ptrdata, resource_lookup_data_array[index].rom_remaining, &file_resource_table[index], &resource_lookup_data_array[index]); + } + else + { + load_resource(ptrdata, resource_lookup_data_array[index].rom_remaining, &file_resource_table[index], &resource_lookup_data_array[index]); + } + if (type != 0) + { + mempAddEntryOfSizeToBank(ptrdata, resource_lookup_data_array[index].pc_remaining, bank); + } + } + else + { + if (resource_lookup_data_array[index].pc_remaining == 0) + { + if (resource_lookup_data_array[index].rom_size == 0) + { + resource_lookup_data_array[index].pc_remaining = resource_lookup_data_array[index].pc_size; + } + else + { + resource_lookup_data_array[index].pc_remaining = resource_lookup_data_array[index].rom_size; + } + } + ptrdata = mempAllocBytesInBank(resource_lookup_data_array[index].pc_remaining,bank); + resource_lookup_data_array[index].rom_remaining = resource_lookup_data_array[index].pc_remaining; + if (file_resource_table[index].hw_address == 0) + { + resource_load_from_indy(ptrdata, 0, &file_resource_table[index], &resource_lookup_data_array[index]); + } + else + { + + load_resource(ptrdata , 0, &file_resource_table[index], &resource_lookup_data_array[index]); + } + if (size == 0) + { + resource_lookup_data_array[index].loaded_bank = bank; + } + } + return ptrdata; +} +#else +GLOBAL_ASM( +.text +glabel load_rom_resource_index_to_membank +/* 0F193C 7F0BCE0C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0F1940 7F0BCE10 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F1944 7F0BCE14 AFB10018 */ sw $s1, 0x18($sp) +/* 0F1948 7F0BCE18 AFB00014 */ sw $s0, 0x14($sp) +/* 0F194C 7F0BCE1C AFA40030 */ sw $a0, 0x30($sp) +/* 0F1950 7F0BCE20 AFA50034 */ sw $a1, 0x34($sp) +/* 0F1954 7F0BCE24 AFA60038 */ sw $a2, 0x38($sp) +/* 0F1958 7F0BCE28 10A00006 */ beqz $a1, .L7F0BCE44 +/* 0F195C 7F0BCE2C AFA7003C */ sw $a3, 0x3c($sp) +/* 0F1960 7F0BCE30 24010001 */ li $at, 1 +/* 0F1964 7F0BCE34 10A10003 */ beq $a1, $at, .L7F0BCE44 +/* 0F1968 7F0BCE38 24010002 */ li $at, 2 +/* 0F196C 7F0BCE3C 14A10033 */ bne $a1, $at, .L7F0BCF0C +/* 0F1970 7F0BCE40 8FAD0030 */ lw $t5, 0x30($sp) +.L7F0BCE44: +/* 0F1974 7F0BCE44 8FAF0030 */ lw $t7, 0x30($sp) +/* 0F1978 7F0BCE48 3C198009 */ lui $t9, %hi(resource_lookup_data_array) +/* 0F197C 7F0BCE4C 273988B0 */ addiu $t9, %lo(resource_lookup_data_array) # addiu $t9, $t9, -0x7750 +/* 0F1980 7F0BCE50 000FC080 */ sll $t8, $t7, 2 +/* 0F1984 7F0BCE54 030FC021 */ addu $t8, $t8, $t7 +/* 0F1988 7F0BCE58 0018C080 */ sll $t8, $t8, 2 +/* 0F198C 7F0BCE5C 03198821 */ addu $s1, $t8, $t9 +/* 0F1990 7F0BCE60 8E300004 */ lw $s0, 4($s1) +/* 0F1994 7F0BCE64 56000006 */ bnezl $s0, .L7F0BCE80 +/* 0F1998 7F0BCE68 02002025 */ move $a0, $s0 +/* 0F199C 7F0BCE6C 0C002644 */ jal mempGetBankSizeLeft +/* 0F19A0 7F0BCE70 93A4003F */ lbu $a0, 0x3f($sp) +/* 0F19A4 7F0BCE74 AE220004 */ sw $v0, 4($s1) +/* 0F19A8 7F0BCE78 00408025 */ move $s0, $v0 +/* 0F19AC 7F0BCE7C 02002025 */ move $a0, $s0 +.L7F0BCE80: +/* 0F19B0 7F0BCE80 0C0025C8 */ jal mempAllocBytesInBank +/* 0F19B4 7F0BCE84 93A5003F */ lbu $a1, 0x3f($sp) +/* 0F19B8 7F0BCE88 8E300004 */ lw $s0, 4($s1) +/* 0F19BC 7F0BCE8C 3C0A8004 */ lui $t2, %hi(file_resource_table) +/* 0F19C0 7F0BCE90 254A6054 */ addiu $t2, %lo(file_resource_table) # addiu $t2, $t2, 0x6054 +/* 0F19C4 7F0BCE94 AE30000C */ sw $s0, 0xc($s1) +/* 0F19C8 7F0BCE98 8FA80030 */ lw $t0, 0x30($sp) +/* 0F19CC 7F0BCE9C 00402025 */ move $a0, $v0 +/* 0F19D0 7F0BCEA0 02203825 */ move $a3, $s1 +/* 0F19D4 7F0BCEA4 00084880 */ sll $t1, $t0, 2 +/* 0F19D8 7F0BCEA8 01284823 */ subu $t1, $t1, $t0 +/* 0F19DC 7F0BCEAC 00094880 */ sll $t1, $t1, 2 +/* 0F19E0 7F0BCEB0 012A3021 */ addu $a2, $t1, $t2 +/* 0F19E4 7F0BCEB4 8CCB0008 */ lw $t3, 8($a2) +/* 0F19E8 7F0BCEB8 02002825 */ move $a1, $s0 +/* 0F19EC 7F0BCEBC 15600007 */ bnez $t3, .L7F0BCEDC +/* 0F19F0 7F0BCEC0 00000000 */ nop +/* 0F19F4 7F0BCEC4 02002825 */ move $a1, $s0 +/* 0F19F8 7F0BCEC8 02203825 */ move $a3, $s1 +/* 0F19FC 7F0BCECC 0FC2F2CD */ jal resource_load_from_indy +/* 0F1A00 7F0BCED0 AFA20024 */ sw $v0, 0x24($sp) +/* 0F1A04 7F0BCED4 10000004 */ b .L7F0BCEE8 +/* 0F1A08 7F0BCED8 8FB00024 */ lw $s0, 0x24($sp) +.L7F0BCEDC: +/* 0F1A0C 7F0BCEDC 0FC2F2A8 */ jal load_resource +/* 0F1A10 7F0BCEE0 AFA40024 */ sw $a0, 0x24($sp) +/* 0F1A14 7F0BCEE4 8FB00024 */ lw $s0, 0x24($sp) +.L7F0BCEE8: +/* 0F1A18 7F0BCEE8 8FAC0034 */ lw $t4, 0x34($sp) +/* 0F1A1C 7F0BCEEC 02002025 */ move $a0, $s0 +/* 0F1A20 7F0BCEF0 93A6003F */ lbu $a2, 0x3f($sp) +/* 0F1A24 7F0BCEF4 51800035 */ beql $t4, $zero, .L7F0BCFCC +/* 0F1A28 7F0BCEF8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F1A2C 7F0BCEFC 0C002601 */ jal mempAddEntryOfSizeToBank +/* 0F1A30 7F0BCF00 8E250004 */ lw $a1, 4($s1) +/* 0F1A34 7F0BCF04 10000031 */ b .L7F0BCFCC +/* 0F1A38 7F0BCF08 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0BCF0C: +/* 0F1A3C 7F0BCF0C 000D7080 */ sll $t6, $t5, 2 +/* 0F1A40 7F0BCF10 01CD7021 */ addu $t6, $t6, $t5 +/* 0F1A44 7F0BCF14 3C0F8009 */ lui $t7, %hi(resource_lookup_data_array) +/* 0F1A48 7F0BCF18 25EF88B0 */ addiu $t7, %lo(resource_lookup_data_array) # addiu $t7, $t7, -0x7750 +/* 0F1A4C 7F0BCF1C 000E7080 */ sll $t6, $t6, 2 +/* 0F1A50 7F0BCF20 01CF8821 */ addu $s1, $t6, $t7 +/* 0F1A54 7F0BCF24 8E300004 */ lw $s0, 4($s1) +/* 0F1A58 7F0BCF28 56000009 */ bnezl $s0, .L7F0BCF50 +/* 0F1A5C 7F0BCF2C 02002025 */ move $a0, $s0 +/* 0F1A60 7F0BCF30 8E220000 */ lw $v0, ($s1) +/* 0F1A64 7F0BCF34 10400003 */ beqz $v0, .L7F0BCF44 +/* 0F1A68 7F0BCF38 00408025 */ move $s0, $v0 +/* 0F1A6C 7F0BCF3C 10000003 */ b .L7F0BCF4C +/* 0F1A70 7F0BCF40 AE220004 */ sw $v0, 4($s1) +.L7F0BCF44: +/* 0F1A74 7F0BCF44 8E300008 */ lw $s0, 8($s1) +/* 0F1A78 7F0BCF48 AE300004 */ sw $s0, 4($s1) +.L7F0BCF4C: +/* 0F1A7C 7F0BCF4C 02002025 */ move $a0, $s0 +.L7F0BCF50: +/* 0F1A80 7F0BCF50 0C0025C8 */ jal mempAllocBytesInBank +/* 0F1A84 7F0BCF54 93A5003F */ lbu $a1, 0x3f($sp) +/* 0F1A88 7F0BCF58 8E390004 */ lw $t9, 4($s1) +/* 0F1A8C 7F0BCF5C 3C0A8004 */ lui $t2, %hi(file_resource_table) +/* 0F1A90 7F0BCF60 254A6054 */ addiu $t2, %lo(file_resource_table) # addiu $t2, $t2, 0x6054 +/* 0F1A94 7F0BCF64 AE39000C */ sw $t9, 0xc($s1) +/* 0F1A98 7F0BCF68 8FA80030 */ lw $t0, 0x30($sp) +/* 0F1A9C 7F0BCF6C 00408025 */ move $s0, $v0 +/* 0F1AA0 7F0BCF70 02203825 */ move $a3, $s1 +/* 0F1AA4 7F0BCF74 00084880 */ sll $t1, $t0, 2 +/* 0F1AA8 7F0BCF78 01284823 */ subu $t1, $t1, $t0 +/* 0F1AAC 7F0BCF7C 00094880 */ sll $t1, $t1, 2 +/* 0F1AB0 7F0BCF80 012A3021 */ addu $a2, $t1, $t2 +/* 0F1AB4 7F0BCF84 8CCB0008 */ lw $t3, 8($a2) +/* 0F1AB8 7F0BCF88 02002025 */ move $a0, $s0 +/* 0F1ABC 7F0BCF8C 00002825 */ move $a1, $zero +/* 0F1AC0 7F0BCF90 15600006 */ bnez $t3, .L7F0BCFAC +/* 0F1AC4 7F0BCF94 00000000 */ nop +/* 0F1AC8 7F0BCF98 00402025 */ move $a0, $v0 +/* 0F1ACC 7F0BCF9C 0FC2F2CD */ jal resource_load_from_indy +/* 0F1AD0 7F0BCFA0 00002825 */ move $a1, $zero +/* 0F1AD4 7F0BCFA4 10000004 */ b .L7F0BCFB8 +/* 0F1AD8 7F0BCFA8 8FAC0038 */ lw $t4, 0x38($sp) +.L7F0BCFAC: +/* 0F1ADC 7F0BCFAC 0FC2F2A8 */ jal load_resource +/* 0F1AE0 7F0BCFB0 02203825 */ move $a3, $s1 +/* 0F1AE4 7F0BCFB4 8FAC0038 */ lw $t4, 0x38($sp) +.L7F0BCFB8: +/* 0F1AE8 7F0BCFB8 93AD003F */ lbu $t5, 0x3f($sp) +/* 0F1AEC 7F0BCFBC 55800003 */ bnezl $t4, .L7F0BCFCC +/* 0F1AF0 7F0BCFC0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F1AF4 7F0BCFC4 A22D0010 */ sb $t5, 0x10($s1) +/* 0F1AF8 7F0BCFC8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0BCFCC: +/* 0F1AFC 7F0BCFCC 02001025 */ move $v0, $s0 +/* 0F1B00 7F0BCFD0 8FB00014 */ lw $s0, 0x14($sp) +/* 0F1B04 7F0BCFD4 8FB10018 */ lw $s1, 0x18($sp) +/* 0F1B08 7F0BCFD8 03E00008 */ jr $ra +/* 0F1B0C 7F0BCFDC 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +/* + *this matches except: + *baserom.u.z64 + *000F 1BC0: AE 0C 00 0C 8F A5 00 2C 0F C2 F2 A8 8F A4 00 28 ......., .......( + *ge007.u.z64 this is flipped with this + *000F 1BC0: AE 0C 00 0C 8F A4 00 28 0F C2 F2 A8 8F A5 00 2C .......( ......., + */ +#ifdef NONMATCHING// +u8* load_resource_index_to_buffer(s32 index,s32 bank,u8 *ptrdata,s32 bytes) +{ + if (resource_lookup_data_array[index].pc_remaining == 0) + { + if (resource_lookup_data_array[index].rom_size > 0) + { + resource_lookup_data_array[index].pc_remaining = resource_lookup_data_array[index].rom_size; + } + else + { + resource_lookup_data_array[index].pc_remaining = resource_lookup_data_array[index].pc_size; + } + } + if (((bank == 0) || (bank == 1)) || (bank == 2)) + { + if (!file_resource_table[index].hw_address) + { + resource_lookup_data_array[index].rom_remaining = bytes; + resource_load_from_indy(ptrdata, bytes, &file_resource_table[index], &resource_lookup_data_array[index]); + } + else + { + resource_lookup_data_array[index].rom_remaining = bytes; + //flip happens here + load_resource(ptrdata, bytes, &file_resource_table[index], &resource_lookup_data_array[index]); + } + } + else + { + if (!file_resource_table[index].hw_address) + { + resource_load_from_indy(ptrdata, 0, &file_resource_table[index], &resource_lookup_data_array[index]); + } + else + { + + load_resource(ptrdata, 0, &file_resource_table[index], &resource_lookup_data_array[index]); + } + } + return ptrdata; +} +#else +GLOBAL_ASM( +.text +glabel load_resource_index_to_buffer +/* 0F1B10 7F0BCFE0 00047080 */ sll $t6, $a0, 2 +/* 0F1B14 7F0BCFE4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F1B18 7F0BCFE8 01C47021 */ addu $t6, $t6, $a0 +/* 0F1B1C 7F0BCFEC 3C0F8009 */ lui $t7, %hi(resource_lookup_data_array) +/* 0F1B20 7F0BCFF0 AFB00018 */ sw $s0, 0x18($sp) +/* 0F1B24 7F0BCFF4 25EF88B0 */ addiu $t7, %lo(resource_lookup_data_array) # addiu $t7, $t7, -0x7750 +/* 0F1B28 7F0BCFF8 000E7080 */ sll $t6, $t6, 2 +/* 0F1B2C 7F0BCFFC 01CF8021 */ addu $s0, $t6, $t7 +/* 0F1B30 7F0BD000 8E180004 */ lw $t8, 4($s0) +/* 0F1B34 7F0BD004 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F1B38 7F0BD008 AFA60028 */ sw $a2, 0x28($sp) +/* 0F1B3C 7F0BD00C 17000008 */ bnez $t8, .L7F0BD030 +/* 0F1B40 7F0BD010 AFA7002C */ sw $a3, 0x2c($sp) +/* 0F1B44 7F0BD014 8E020000 */ lw $v0, ($s0) +/* 0F1B48 7F0BD018 50400004 */ beql $v0, $zero, .L7F0BD02C +/* 0F1B4C 7F0BD01C 8E190008 */ lw $t9, 8($s0) +/* 0F1B50 7F0BD020 10000003 */ b .L7F0BD030 +/* 0F1B54 7F0BD024 AE020004 */ sw $v0, 4($s0) +/* 0F1B58 7F0BD028 8E190008 */ lw $t9, 8($s0) +.L7F0BD02C: +/* 0F1B5C 7F0BD02C AE190004 */ sw $t9, 4($s0) +.L7F0BD030: +/* 0F1B60 7F0BD030 10A00005 */ beqz $a1, .L7F0BD048 +/* 0F1B64 7F0BD034 24010001 */ li $at, 1 +/* 0F1B68 7F0BD038 10A10003 */ beq $a1, $at, .L7F0BD048 +/* 0F1B6C 7F0BD03C 24010002 */ li $at, 2 +/* 0F1B70 7F0BD040 14A10019 */ bne $a1, $at, .L7F0BD0A8 +/* 0F1B74 7F0BD044 00046880 */ sll $t5, $a0, 2 +.L7F0BD048: +/* 0F1B78 7F0BD048 00044080 */ sll $t0, $a0, 2 +/* 0F1B7C 7F0BD04C 01044023 */ subu $t0, $t0, $a0 +/* 0F1B80 7F0BD050 3C098004 */ lui $t1, %hi(file_resource_table) +/* 0F1B84 7F0BD054 25296054 */ addiu $t1, %lo(file_resource_table) # addiu $t1, $t1, 0x6054 +/* 0F1B88 7F0BD058 00084080 */ sll $t0, $t0, 2 +/* 0F1B8C 7F0BD05C 01093021 */ addu $a2, $t0, $t1 +/* 0F1B90 7F0BD060 8CCA0008 */ lw $t2, 8($a2) +/* 0F1B94 7F0BD064 8FAB002C */ lw $t3, 0x2c($sp) +/* 0F1B98 7F0BD068 8FAC002C */ lw $t4, 0x2c($sp) +/* 0F1B9C 7F0BD06C 15400008 */ bnez $t2, .L7F0BD090 +/* 0F1BA0 7F0BD070 02003825 */ move $a3, $s0 +/* 0F1BA4 7F0BD074 AE0B000C */ sw $t3, 0xc($s0) +/* 0F1BA8 7F0BD078 8FA40028 */ lw $a0, 0x28($sp) +/* 0F1BAC 7F0BD07C 8FA5002C */ lw $a1, 0x2c($sp) +/* 0F1BB0 7F0BD080 0FC2F2CD */ jal resource_load_from_indy +/* 0F1BB4 7F0BD084 02003825 */ move $a3, $s0 +/* 0F1BB8 7F0BD088 10000019 */ b .L7F0BD0F0 +/* 0F1BBC 7F0BD08C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0BD090: +/* 0F1BC0 7F0BD090 AE0C000C */ sw $t4, 0xc($s0) +/* 0F1BC4 7F0BD094 8FA5002C */ lw $a1, 0x2c($sp) +/* 0F1BC8 7F0BD098 0FC2F2A8 */ jal load_resource +/* 0F1BCC 7F0BD09C 8FA40028 */ lw $a0, 0x28($sp) +/* 0F1BD0 7F0BD0A0 10000013 */ b .L7F0BD0F0 +/* 0F1BD4 7F0BD0A4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0BD0A8: +/* 0F1BD8 7F0BD0A8 01A46823 */ subu $t5, $t5, $a0 +/* 0F1BDC 7F0BD0AC 3C0E8004 */ lui $t6, %hi(file_resource_table) +/* 0F1BE0 7F0BD0B0 25CE6054 */ addiu $t6, %lo(file_resource_table) # addiu $t6, $t6, 0x6054 +/* 0F1BE4 7F0BD0B4 000D6880 */ sll $t5, $t5, 2 +/* 0F1BE8 7F0BD0B8 01AE3021 */ addu $a2, $t5, $t6 +/* 0F1BEC 7F0BD0BC 8CCF0008 */ lw $t7, 8($a2) +/* 0F1BF0 7F0BD0C0 02003825 */ move $a3, $s0 +/* 0F1BF4 7F0BD0C4 8FA40028 */ lw $a0, 0x28($sp) +/* 0F1BF8 7F0BD0C8 15E00006 */ bnez $t7, .L7F0BD0E4 +/* 0F1BFC 7F0BD0CC 00002825 */ move $a1, $zero +/* 0F1C00 7F0BD0D0 8FA40028 */ lw $a0, 0x28($sp) +/* 0F1C04 7F0BD0D4 0FC2F2CD */ jal resource_load_from_indy +/* 0F1C08 7F0BD0D8 00002825 */ move $a1, $zero +/* 0F1C0C 7F0BD0DC 10000004 */ b .L7F0BD0F0 +/* 0F1C10 7F0BD0E0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0BD0E4: +/* 0F1C14 7F0BD0E4 0FC2F2A8 */ jal load_resource +/* 0F1C18 7F0BD0E8 02003825 */ move $a3, $s0 +/* 0F1C1C 7F0BD0EC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0BD0F0: +/* 0F1C20 7F0BD0F0 8FA20028 */ lw $v0, 0x28($sp) +/* 0F1C24 7F0BD0F4 8FB00018 */ lw $s0, 0x18($sp) +/* 0F1C28 7F0BD0F8 03E00008 */ jr $ra +/* 0F1C2C 7F0BD0FC 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + + +s32 get_pc_remaining_buffer_for_index(s32 index) +{ + return resource_lookup_data_array[index].pc_remaining; +} + + +s32 get_rom_remaining_buffer_for_index(s32 index) +{ + return resource_lookup_data_array[index].rom_remaining; +} + + + +#ifdef NONMATCHING +void sub_GAME_7F0BD138(int index, u8 *ptrdata, u32 size, u32 param_4) +{ + u32 new_var; + resource_lookup_data_array[index].pc_remaining = size; + resource_lookup_data_array[index].rom_remaining = size; + new_var = param_4; + if (new_var) + { + mempAddEntryOfSizeToBank(ptrdata, size, 4); + } + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BD138 +/* 0F1C68 7F0BD138 00047080 */ sll $t6, $a0, 2 +/* 0F1C6C 7F0BD13C 01C47021 */ addu $t6, $t6, $a0 +/* 0F1C70 7F0BD140 3C0F8009 */ lui $t7, %hi(resource_lookup_data_array) +/* 0F1C74 7F0BD144 25EF88B0 */ addiu $t7, %lo(resource_lookup_data_array) # addiu $t7, $t7, -0x7750 +/* 0F1C78 7F0BD148 000E7080 */ sll $t6, $t6, 2 +/* 0F1C7C 7F0BD14C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F1C80 7F0BD150 01CF1021 */ addu $v0, $t6, $t7 +/* 0F1C84 7F0BD154 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F1C88 7F0BD158 AFA5001C */ sw $a1, 0x1c($sp) +/* 0F1C8C 7F0BD15C AC460004 */ sw $a2, 4($v0) +/* 0F1C90 7F0BD160 10E00005 */ beqz $a3, .L7F0BD178 +/* 0F1C94 7F0BD164 AC46000C */ sw $a2, 0xc($v0) +/* 0F1C98 7F0BD168 00A02025 */ move $a0, $a1 +/* 0F1C9C 7F0BD16C 00C02825 */ move $a1, $a2 +/* 0F1CA0 7F0BD170 0C002601 */ jal mempAddEntryOfSizeToBank +/* 0F1CA4 7F0BD174 24060004 */ li $a2, 4 +.L7F0BD178: +/* 0F1CA8 7F0BD178 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F1CAC 7F0BD17C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F1CB0 7F0BD180 03E00008 */ jr $ra +/* 0F1CB4 7F0BD184 00000000 */ nop +) +#endif + + + + + + +s32 get_pc_buffer_remaining_value(u8 *name) +{ + int index; + + index = get_index_num_of_named_resource(name); + return resource_lookup_data_array[index].pc_remaining; +} + + +void obBlankResourcesLoadedInBank(u8 bank) +{ + int i; + for (i = 1; i < file_entry_max; i++) { + if (resource_lookup_data_array[i].loaded_bank <= bank) { + resource_lookup_data_array[i].loaded_bank = '\0'; + } + if (bank == 4) { + resource_lookup_data_array[i].pc_remaining = 0; + } + } +} + +void obBlankResourcesInBank5(void) { + obBlankResourcesLoadedInBank(5); +} + + + + + +#ifdef NONMATCHING + +int get_index_num_of_named_resource(u8 *resname) +{ + + int i; + int buffer [3]; + + for (i = 1; i < file_entry_max; i++) + { + if ((file_resource_table[i].filename) && \ + (something_with_strings_0(resname,file_resource_table[i].filename) == 0)); + { + return i; + } + } + + i = file_entry_max; + if (file_entry_max < OBJ_INDEX_MAX) { + file_entry_max += 1; + + if (check_file_found_on_indy(resname,buffer) != 0) { + file_resource_table[i].index = i; + file_resource_table[i].filename = resname; + resource_lookup_data_array[i].unk_11 = '\0'; + file_resource_table[i].hw_address = 0; + resource_lookup_data_array[i].rom_size = 0; + resource_lookup_data_array[i].pc_remaining = 0; + resource_lookup_data_array[i].rom_remaining = 0; + resource_lookup_data_array[i].loaded_bank = '\0'; + resource_lookup_data_array[i].pc_size = (buffer[0] + 0xfU | 0xf) ^ 0xf; + } + } + else { + i = 0; + } + return i; +} +#else +GLOBAL_ASM( +.text +glabel get_index_num_of_named_resource +/* 0F1D84 7F0BD254 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0F1D88 7F0BD258 AFB2001C */ sw $s2, 0x1c($sp) +/* 0F1D8C 7F0BD25C 3C128005 */ lui $s2, %hi(file_entry_max) +/* 0F1D90 7F0BD260 265282D4 */ addiu $s2, %lo(file_entry_max) # addiu $s2, $s2, -0x7d2c +/* 0F1D94 7F0BD264 8E420000 */ lw $v0, ($s2) +/* 0F1D98 7F0BD268 AFB30020 */ sw $s3, 0x20($sp) +/* 0F1D9C 7F0BD26C AFB10018 */ sw $s1, 0x18($sp) +/* 0F1DA0 7F0BD270 28410002 */ slti $at, $v0, 2 +/* 0F1DA4 7F0BD274 00809825 */ move $s3, $a0 +/* 0F1DA8 7F0BD278 AFBF0024 */ sw $ra, 0x24($sp) +/* 0F1DAC 7F0BD27C AFB00014 */ sw $s0, 0x14($sp) +/* 0F1DB0 7F0BD280 14200012 */ bnez $at, .L7F0BD2CC +/* 0F1DB4 7F0BD284 24110001 */ li $s1, 1 +/* 0F1DB8 7F0BD288 3C108004 */ lui $s0, %hi(file_resource_table + 0xC) +/* 0F1DBC 7F0BD28C 26106060 */ addiu $s0, %lo(file_resource_table + 0xC) # addiu $s0, $s0, 0x6060 +/* 0F1DC0 7F0BD290 8E050004 */ lw $a1, 4($s0) +.L7F0BD294: +/* 0F1DC4 7F0BD294 50A00008 */ beql $a1, $zero, .L7F0BD2B8 +/* 0F1DC8 7F0BD298 8E420000 */ lw $v0, ($s2) +/* 0F1DCC 7F0BD29C 0C002A13 */ jal something_with_strings_0 +/* 0F1DD0 7F0BD2A0 02602025 */ move $a0, $s3 +/* 0F1DD4 7F0BD2A4 54400004 */ bnezl $v0, .L7F0BD2B8 +/* 0F1DD8 7F0BD2A8 8E420000 */ lw $v0, ($s2) +/* 0F1DDC 7F0BD2AC 1000002E */ b .L7F0BD368 +/* 0F1DE0 7F0BD2B0 02201025 */ move $v0, $s1 +/* 0F1DE4 7F0BD2B4 8E420000 */ lw $v0, ($s2) +.L7F0BD2B8: +/* 0F1DE8 7F0BD2B8 26310001 */ addiu $s1, $s1, 1 +/* 0F1DEC 7F0BD2BC 2610000C */ addiu $s0, $s0, 0xc +/* 0F1DF0 7F0BD2C0 0222082A */ slt $at, $s1, $v0 +/* 0F1DF4 7F0BD2C4 5420FFF3 */ bnezl $at, .L7F0BD294 +/* 0F1DF8 7F0BD2C8 8E050004 */ lw $a1, 4($s0) +.L7F0BD2CC: +/* 0F1DFC 7F0BD2CC 284102E0 */ slti $at, $v0, 0x2e0 /*OBJ_INDEX_MAX*/ +/* 0F1E00 7F0BD2D0 14200003 */ bnez $at, .L7F0BD2E0 +/* 0F1E04 7F0BD2D4 00408825 */ move $s1, $v0 +/* 0F1E08 7F0BD2D8 10000023 */ b .L7F0BD368 +/* 0F1E0C 7F0BD2DC 00001025 */ move $v0, $zero +.L7F0BD2E0: +/* 0F1E10 7F0BD2E0 244E0001 */ addiu $t6, $v0, 1 +/* 0F1E14 7F0BD2E4 AE4E0000 */ sw $t6, ($s2) +/* 0F1E18 7F0BD2E8 02602025 */ move $a0, $s3 +/* 0F1E1C 7F0BD2EC 0FC34026 */ jal check_file_found_on_indy +/* 0F1E20 7F0BD2F0 27A50034 */ addiu $a1, $sp, 0x34 +/* 0F1E24 7F0BD2F4 14400003 */ bnez $v0, .L7F0BD304 +/* 0F1E28 7F0BD2F8 00117880 */ sll $t7, $s1, 2 +/* 0F1E2C 7F0BD2FC 1000001A */ b .L7F0BD368 +/* 0F1E30 7F0BD300 00001025 */ move $v0, $zero +.L7F0BD304: +/* 0F1E34 7F0BD304 01F17823 */ subu $t7, $t7, $s1 +/* 0F1E38 7F0BD308 3C188004 */ lui $t8, %hi(file_resource_table) +/* 0F1E3C 7F0BD30C 27186054 */ addiu $t8, %lo(file_resource_table) # addiu $t8, $t8, 0x6054 +/* 0F1E40 7F0BD310 000F7880 */ sll $t7, $t7, 2 +/* 0F1E44 7F0BD314 0011C880 */ sll $t9, $s1, 2 +/* 0F1E48 7F0BD318 01F88021 */ addu $s0, $t7, $t8 +/* 0F1E4C 7F0BD31C 0331C821 */ addu $t9, $t9, $s1 +/* 0F1E50 7F0BD320 3C088009 */ lui $t0, %hi(resource_lookup_data_array) +/* 0F1E54 7F0BD324 250888B0 */ addiu $t0, %lo(resource_lookup_data_array) # addiu $t0, $t0, -0x7750 +/* 0F1E58 7F0BD328 0019C880 */ sll $t9, $t9, 2 +/* 0F1E5C 7F0BD32C AE110000 */ sw $s1, ($s0) +/* 0F1E60 7F0BD330 AE130004 */ sw $s3, 4($s0) +/* 0F1E64 7F0BD334 03281821 */ addu $v1, $t9, $t0 +/* 0F1E68 7F0BD338 A0600011 */ sb $zero, 0x11($v1) +/* 0F1E6C 7F0BD33C AE000008 */ sw $zero, 8($s0) +/* 0F1E70 7F0BD340 AC600000 */ sw $zero, ($v1) +/* 0F1E74 7F0BD344 AC600004 */ sw $zero, 4($v1) +/* 0F1E78 7F0BD348 8FA90034 */ lw $t1, 0x34($sp) +/* 0F1E7C 7F0BD34C AC60000C */ sw $zero, 0xc($v1) +/* 0F1E80 7F0BD350 A0600010 */ sb $zero, 0x10($v1) +/* 0F1E84 7F0BD354 252A000F */ addiu $t2, $t1, 0xf +/* 0F1E88 7F0BD358 354B000F */ ori $t3, $t2, 0xf +/* 0F1E8C 7F0BD35C 396C000F */ xori $t4, $t3, 0xf +/* 0F1E90 7F0BD360 AC6C0008 */ sw $t4, 8($v1) +/* 0F1E94 7F0BD364 02201025 */ move $v0, $s1 +.L7F0BD368: +/* 0F1E98 7F0BD368 8FBF0024 */ lw $ra, 0x24($sp) +/* 0F1E9C 7F0BD36C 8FB00014 */ lw $s0, 0x14($sp) +/* 0F1EA0 7F0BD370 8FB10018 */ lw $s1, 0x18($sp) +/* 0F1EA4 7F0BD374 8FB2001C */ lw $s2, 0x1c($sp) +/* 0F1EA8 7F0BD378 8FB30020 */ lw $s3, 0x20($sp) +/* 0F1EAC 7F0BD37C 03E00008 */ jr $ra +/* 0F1EB0 7F0BD380 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +void removed_handle_filetable_entry(u32 index) +{ + return; +} + +void removed_loop_handle_filetable_entries(void) +{ + int i; + for (i = 1; (i < file_entry_max); i++) + { + removed_handle_filetable_entry(i); + } +} + +void removed_loop_filetableentries(void) +{ + int i; + + for (i = 1; (i < file_entry_max); i++) + { + ; + } +} + + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0BD410(void) { + u32 temp_v0; + u32 phi_v0; + + // Node 0 + if (file_entry_max >= 2) + { + // Node 1 + phi_v0 = &resource_lookup_data_array+0x14; +loop_2: + // Node 2 + temp_v0 = (phi_v0 + 0x14); + phi_v0 = temp_v0; + if (temp_v0 < (u32) ((file_entry_max * 0x14) + &resource_lookup_data_array)) + { + goto loop_2; + } + } + // Node 3 + return &resource_lookup_data_array+0x14; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BD410 +/* 0F1F40 7F0BD410 3C038005 */ lui $v1, %hi(file_entry_max) +/* 0F1F44 7F0BD414 8C6382D4 */ lw $v1, %lo(file_entry_max)($v1) +/* 0F1F48 7F0BD418 3C028009 */ lui $v0, %hi(resource_lookup_data_array+0x14) +/* 0F1F4C 7F0BD41C 244288C4 */ addiu $v0, %lo(resource_lookup_data_array+0x14) # addiu $v0, $v0, -0x773c +/* 0F1F50 7F0BD420 28610002 */ slti $at, $v1, 2 +/* 0F1F54 7F0BD424 1420000A */ bnez $at, .L7F0BD450 +/* 0F1F58 7F0BD428 00037080 */ sll $t6, $v1, 2 +/* 0F1F5C 7F0BD42C 01C37021 */ addu $t6, $t6, $v1 +/* 0F1F60 7F0BD430 3C0F8009 */ lui $t7, %hi(resource_lookup_data_array) +/* 0F1F64 7F0BD434 25EF88B0 */ addiu $t7, %lo(resource_lookup_data_array) # addiu $t7, $t7, -0x7750 +/* 0F1F68 7F0BD438 000E7080 */ sll $t6, $t6, 2 +/* 0F1F6C 7F0BD43C 01CF2021 */ addu $a0, $t6, $t7 +/* 0F1F70 7F0BD440 24420014 */ addiu $v0, $v0, 0x14 +.L7F0BD444: +/* 0F1F74 7F0BD444 0044082B */ sltu $at, $v0, $a0 +/* 0F1F78 7F0BD448 5420FFFE */ bnezl $at, .L7F0BD444 +/* 0F1F7C 7F0BD44C 24420014 */ addiu $v0, $v0, 0x14 +.L7F0BD450: +/* 0F1F80 7F0BD450 03E00008 */ jr $ra +/* 0F1F84 7F0BD454 00000000 */ nop +) +#endif + + + diff --git a/src/game/ob.h b/src/game/ob.h new file mode 100644 index 0000000..f76104b --- /dev/null +++ b/src/game/ob.h @@ -0,0 +1,28 @@ +#ifndef _OB_H_ +#define _OB_H_ +#include "ultra64.h" + +struct resource_lookup_data_entry { + u32 rom_size; + u32 pc_remaining; + u32 pc_size; + u32 rom_remaining; + u8 loaded_bank; + u8 unk_11; + u16 reserved; +}; + +struct fileentry { + s32 index; + char *filename; + u8 *hw_address; +}; + +void obBlankResourcesLoadedInBank(u8 i); +void obBlankResourcesInBank5(void); +u8* load_resource_index_to_buffer(s32 index,s32 param_2,u8 *ptrdata,s32 bytes); +u8 * load_rom_resource_index_to_membank(s32 index,s32 type,s32 size,u8 bank); +void resource_load_from_indy(u8 *ptrdata, u32 bytes, struct fileentry *srcfile, struct resource_lookup_data_entry *lookupdata); +void load_resource(u8 *ptrdata, u32 bytes, struct fileentry *srcfile, struct resource_lookup_data_entry *lookupdata); + +#endif diff --git a/src/game/objecthandler.c b/src/game/objecthandler.c new file mode 100644 index 0000000..3086cea --- /dev/null +++ b/src/game/objecthandler.c @@ -0,0 +1,2354 @@ +#include "ultra64.h" + +// bss +//CODE.bss:80076A50 +char dword_CODE_bss_80076A50[0xC]; +//CODE.bss:80076A5C +u32 dword_CODE_bss_80076A5C; +//CODE.bss:80076A60 +u32 dword_CODE_bss_80076A60; +//CODE.bss:80076A64; +u32 dword_CODE_bss_80076A64; +//CODE.bss:80076A68; +u32 dword_CODE_bss_80076A68; +//CODE.bss:80076A6C; +u32 dword_CODE_bss_80076A6C; +//CODE.bss:80076A70 +u32 dword_CODE_bss_80076A70; +//CODE.bss:80076A74 +u32 dword_CODE_bss_80076A74; +//CODE.bss:80076A78 +char dword_CODE_bss_80076A78[0xC]; +//CODE.bss:80076A84 +u32 dword_CODE_bss_80076A84; +//CODE.bss:80076A88 +u32 dword_CODE_bss_80076A88; +//CODE.bss:80076A8C +char dword_CODE_bss_80076A8C; +char dword_CODE_bss_80076A8D; +char dword_CODE_bss_80076A8E; +char dword_CODE_bss_80076A8F; +char dword_CODE_bss_80076A90[0x10]; +//CODE.bss:80076AA0 +char dword_CODE_bss_80076AA0[0x14]; +//CODE.bss:80076AB4 +char dword_CODE_bss_80076AB4; +char dword_CODE_bss_80076AB5; +char dword_CODE_bss_80076AB6; +char dword_CODE_bss_80076AB7; +char dword_CODE_bss_80076AB8[0x10]; +//CODE.bss:80076AC8 +char dword_CODE_bss_80076AC8[0x14]; +//CODE.bss:80076ADC +char dword_CODE_bss_80076ADC; +char dword_CODE_bss_80076ADD; +char dword_CODE_bss_80076ADE; +char dword_CODE_bss_80076ADF; +char dword_CODE_bss_80076AE0[0x2E28]; +//CODE.bss:80079908 +char dword_CODE_bss_80079908[0x28]; + +//CODE.bss:80079930 +void * ptr_allocation_0; +//CODE.bss:80079934 +void * ptr_allocation_1; + + +// data +//D:80036070 +u32 D_80036070 = 0; +//D:80036074 +u32 D_80036074 = 0; +//D:80036078 +u32 D_80036078 = 0; +//D:8003607C +u32 D_8003607C = 0; +//D:80036080 +u32 D_80036080 = 0; +//D:80036084 +s32 D_80036084 = 0; +//D:80036088 +f32 D_80036088 = 1.0; +//D:8003608C +s32 D_8003608C = 0; +//D:80036090 +u32 D_80036090 = 0; +//D:80036094 +u32 D_80036094 = 0; +//D:80036098 +u32 D_80036098 = 0; +//D:8003609C +u32 D_8003609C = 0; +//D:800360A0 +u32 D_800360A0 = 0; +//D:800360A4 +u32 D_800360A4 = 0; +//D:800360A8 +u32 D_800360A8 = 0; +//D:800360AC +u32 D_800360AC = 0; +//D:800360B0 +u32 D_800360B0 = 0; +//D:800360B4 +u32 D_800360B4 = 0; +//D:800360B8 +u32 D_800360B8 = 0; +//D:800360BC +u32 D_800360BC = 0; +//D:800360C0 +u32 D_800360C0 = 0; +//D:800360C4 +u32 D_800360C4 = 0; +//D:800360C8 +u32 D_800360C8 = 0; +//D:800360CC +u32 D_800360CC = 0x10; +//D:800360D0 +u32 D_800360D0 = 1; +//D:800360D4 +u32 D_800360D4 = 0x1000; +//D:800360D8 +u32 D_800360D8 = 0xD; +//D:800360DC +u32 D_800360DC = 1; +//D:800360E0 +u32 D_800360E0 = 0x1000; +//D:800360E4 +u32 D_800360E4 = 0xD; +//D:800360E8 +u32 D_800360E8 = 9; +//D:800360EC +u32 D_800360EC = 0x800; +//D:800360F0 +u32 D_800360F0 = 0xC; +//D:800360F4 +u32 D_800360F4 = 9; +//D:800360F8 +u32 D_800360F8 = 0x800; +//D:800360FC +u32 D_800360FC = 0xC; +//D:80036100 +u32 D_80036100 = 0x19; +//D:80036104 +u32 D_80036104 = 0x400; +//D:80036108 +u32 D_80036108 = 0xB; +//D:8003610C +u32 D_8003610C = 0x19; +//D:80036110 +u32 D_80036110 = 0x400; +//D:80036114 +u32 D_80036114 = 0xB; +//D:80036118 +u32 D_80036118 = 0x39; +//D:8003611C +u32 D_8003611C = 0x400; +//D:80036120 +u32 D_80036120 = 0xB; +//D:80036124 +u32 D_80036124 = 0x39; +//D:80036128 +u32 D_80036128 = 0x400; +//D:8003612C +u32 D_8003612C = 0xB; +//D:80036130 +u32 D_80036130 = 0x59; +//D:80036134 +u32 D_80036134 = 0x400; +//D:80036138 +u32 D_80036138 = 0xB; +//D:8003613C +u32 D_8003613C = 0x59; +//D:80036140 +u32 D_80036140 = 0x400; +//D:80036144 +u32 D_80036144 = 0xB; +//D:80036148 +u32 D_80036148 = 0x79; +//D:8003614C +u32 D_8003614C = 0x400; +//D:80036150 +u32 D_80036150 = 0xB; +//D:80036154 +u32 D_80036154 = 0x79; +//D:80036158 +u32 D_80036158 = 0x400; +//D:8003615C +u32 D_8003615C = 0xB; +//D:80036160 +u32 D_80036160 = 0x99; +//D:80036164 +u32 D_80036164 = 0x400; +//D:80036168 +u32 D_80036168 = 0xB; +//D:8003616C +u32 D_8003616C = 0x99; +//D:80036170 +u32 D_80036170 = 0x400; +//D:80036174 +u32 D_80036174 = 0xB; +//D:80036178 +u32 D_80036178 = 0xB9; +//D:8003617C +u32 D_8003617C = 0x400; +//D:80036180 +u32 D_80036180 = 0xB; +//D:80036184 +u32 D_80036184 = 0xB9; +//D:80036188 +u32 D_80036188 = 0x400; +//D:8003618C +u32 D_8003618C = 0xB; +//D:80036190 +u32 D_80036190 = 0xD9; +//D:80036194 +u32 D_80036194 = 0x400; +//D:80036198 +u32 D_80036198 = 0xB; +//D:8003619C +u32 D_8003619C = 0xD9; +//D:800361A0 +u32 D_800361A0 = 0x400; +//D:800361A4 +u32 D_800361A4 = 0xB; +//D:800361A8 +u32 D_800361A8 = 0xF9; +//D:800361AC +u32 D_800361AC = 0x400; +//D:800361B0 +u32 D_800361B0 = 0xB; +//D:800361B4 +u32 D_800361B4 = 0xF9; +//D:800361B8 +u32 D_800361B8 = 0x400; +//D:800361BC +u32 D_800361BC = 0xB; +//D:800361C0 +u32 D_800361C0 = 0x119; +//D:800361C4 +u32 D_800361C4 = 0x400; +//D:800361C8 +u32 D_800361C8 = 0xB; +//D:800361CC +u32 D_800361CC = 0x119; +//D:800361D0 +u32 D_800361D0 = 0x400; +//D:800361D4 +u32 D_800361D4 = 0xB; +//D:800361D8 +u32 D_800361D8 = 0x139; +//D:800361DC +u32 D_800361DC = 0x400; +//D:800361E0 +u32 D_800361E0 = 0xB; +//D:800361E4 +u32 D_800361E4 = 0x139; +//D:800361E8 +u32 D_800361E8 = 0x400; +//D:800361EC +u32 D_800361EC = 0xB; +//D:800361F0 +u32 D_800361F0 = 0x159; +//D:800361F4 +u32 D_800361F4 = 0x400; +//D:800361F8 +u32 D_800361F8 = 0xB; +//D:800361FC +u32 D_800361FC = 0x159; +//D:80036200 +u32 D_80036200 = 0x400; +//D:80036204 +u32 D_80036204 = 0xB; +//D:80036208 +u32 D_80036208 = 0x179; +//D:8003620C +u32 D_8003620C = 0x800; +//D:80036210 +u32 D_80036210 = 0xC; +//D:80036214 +u32 D_80036214 = 0x179; +//D:80036218 +u32 D_80036218 = 0x800; +//D:8003621C +u32 D_8003621C = 0xC; +//D:80036220 +u32 D_80036220 = 0x189; +//D:80036224 +u32 D_80036224 = 0x1000; +//D:80036228 +u32 D_80036228 = 0xD; +//D:8003622C +u32 D_8003622C = 0x189; +//D:80036230 +u32 D_80036230 = 0x1000; +//D:80036234 +u32 D_80036234 = 0xD; +//D:80036238 +u32 D_80036238 = 0x191; +//D:8003623C +u32 D_8003623C = 0; +//D:80036240 +u32 D_80036240 = 0x10; +//D:80036244 +u32 D_80036244 = 0; +//D:80036248 +u32 D_80036248 = 0; +//D:8003624C +u32 D_8003624C = 0; +//D:80036250 +u32 D_80036250 = 1; +//D:80036254 +u32 D_80036254 = 0; +//D:80036258 +u32 D_80036258 = 0; +//D:8003625C +u32 D_8003625C = 0; +//D:80036260 +u32 D_80036260 = 0; +//D:80036264 +u32 D_80036264 = 0; +//D:80036268 +u32 D_80036268 = 0x10; +//D:8003626C +u32 D_8003626C = 1; +//D:80036270 +u32 D_80036270 = 0x1000; +//D:80036274 +u32 D_80036274 = 0xD; +//D:80036278 +u32 D_80036278 = 1; +//D:8003627C +u32 D_8003627C = 0x1000; +//D:80036280 +u32 D_80036280 = 0xD; +//D:80036284 +u32 D_80036284 = 9; +//D:80036288 +u32 D_80036288 = 0x800; +//D:8003628C +u32 D_8003628C = 0xC; +//D:80036290 +u32 D_80036290 = 9; +//D:80036294 +u32 D_80036294 = 0x800; +//D:80036298 +u32 D_80036298 = 0xC; +//D:8003629C +u32 D_8003629C = 0x19; +//D:800362A0 +u32 D_800362A0 = 0x800; +//D:800362A4 +u32 D_800362A4 = 0xC; +//D:800362A8 +u32 D_800362A8 = 0x19; +//D:800362AC +u32 D_800362AC = 0x800; +//D:800362B0 +u32 D_800362B0 = 0xC; +//D:800362B4 +u32 D_800362B4 = 0x29; +//D:800362B8 +u32 D_800362B8 = 0x800; +//D:800362BC +u32 D_800362BC = 0xC; +//D:800362C0 +u32 D_800362C0 = 0x29; +//D:800362C4 +u32 D_800362C4 = 0x800; +//D:800362C8 +u32 D_800362C8 = 0xC; +//D:800362CC +u32 D_800362CC = 0x39; +//D:800362D0 +u32 D_800362D0 = 0x800; +//D:800362D4 +u32 D_800362D4 = 0xC; +//D:800362D8 +u32 D_800362D8 = 0x39; +//D:800362DC +u32 D_800362DC = 0x800; +//D:800362E0 +u32 D_800362E0 = 0xC; +//D:800362E4 +u32 D_800362E4 = 0x49; +//D:800362E8 +u32 D_800362E8 = 0x800; +//D:800362EC +u32 D_800362EC = 0xC; +//D:800362F0 +u32 D_800362F0 = 0x49; +//D:800362F4 +u32 D_800362F4 = 0x800; +//D:800362F8 +u32 D_800362F8 = 0xC; +//D:800362FC +u32 D_800362FC = 0x59; +//D:80036300 +u32 D_80036300 = 0x1000; +//D:80036304 +u32 D_80036304 = 0xD; +//D:80036308 +u32 D_80036308 = 0x59; +//D:8003630C +u32 D_8003630C = 0x1000; +//D:80036310 +u32 D_80036310 = 0xD; +//D:80036314 +u32 D_80036314 = 0x61; +//D:80036318 +u32 D_80036318 = 0; +//D:8003631C +u32 D_8003631C[] = { + 0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; +//D:800363EC0 +u32 D_800363E0 = 0; +//D:800363E4 +u32 D_800363E4 = 0; +//D:800363E8 +u32 D_800363E8 = 0; +//D:800363EC +u32 D_800363EC = 0xFFFFFFFF; +//D:800363F0 +u32 D_800363F0 = 0x50; +//D:800363F4 +u32 D_800363F4 = 0; +//D:800363F8 +u32 D_800363F8 = 0; +//D:800363FC +u32 D_800363FC = 0; +//D:80036400 +u32 D_80036400 = 0; +//D:80036404 +u32 D_80036404 = 0xFFFFFF50; +//D:80036408 +f32 D_80036408 = 1.0f; +//D:8003640C +u32 D_8003640C = 0; +//D:80036410 +s32 D_80036410 = 0; +//D:80036414 +s32 D_80036414 = 0; +//D:80036418 +s32 D_80036418 = 0; +//D:8003641C +s32 D_8003641C = 0; + + +// rodata +//D:80054420 +const char aDrawjointlistNoGfxlist[] = "drawjointlist: no gfxlist!\n"; +//D:8005443C +const char aDrawjointlistNoObject0xX[] = "drawjointlist: no object! (0x%X)\n"; +//D:80054460 +const char aDrawjointlistObjectNotInitialised0[] = "drawjointlist: object not initialised! (0x%X)\n"; + +/* +*/ + + + +#ifdef NONMATCHING +void sub_GAME_7F06B120(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80054490*/ +glabel jpt_80054490 +.word loc_CODE_7F06B174 +.word loc_CODE_7F06B174 +.word loc_CODE_7F06B174 +.word def_7F06B16C +.word def_7F06B16C +.word def_7F06B16C +.word def_7F06B16C +.word def_7F06B16C +.word def_7F06B16C +.word def_7F06B16C +.word loc_CODE_7F06B174 +.word loc_CODE_7F06B174 +.word loc_CODE_7F06B174 +.word loc_CODE_7F06B174 +.word loc_CODE_7F06B174 +.word loc_CODE_7F06B174 +.word def_7F06B16C +.word def_7F06B16C +.word def_7F06B16C +.word def_7F06B16C +.word loc_CODE_7F06B174 + +.text +glabel sub_GAME_7F06B120 +/* 09FC50 7F06B120 8CAE0008 */ lw $t6, 8($a1) +/* 09FC54 7F06B124 3C078003 */ lui $a3, %hi(D_80036060) +/* 09FC58 7F06B128 24E76060 */ addiu $a3, %lo(D_80036060) # addiu $a3, $a3, 0x6060 +/* 09FC5C 7F06B12C 8DC20000 */ lw $v0, ($t6) +/* 09FC60 7F06B130 00803025 */ move $a2, $a0 +/* 09FC64 7F06B134 8CE30000 */ lw $v1, ($a3) +/* 09FC68 7F06B138 50400027 */ beql $v0, $zero, .L7F06B1D8 +/* 09FC6C 7F06B13C 8CE20000 */ lw $v0, ($a3) +/* 09FC70 7F06B140 50600025 */ beql $v1, $zero, .L7F06B1D8 +/* 09FC74 7F06B144 8CE20000 */ lw $v0, ($a3) +/* 09FC78 7F06B148 94440000 */ lhu $a0, ($v0) +.L7F06B14C: +/* 09FC7C 7F06B14C 308F00FF */ andi $t7, $a0, 0xff +/* 09FC80 7F06B150 25F8FFFF */ addiu $t8, $t7, -1 +/* 09FC84 7F06B154 2F010015 */ sltiu $at, $t8, 0x15 +/* 09FC88 7F06B158 1020000B */ beqz $at, .L7F06B188 +/* 09FC8C 7F06B15C 0018C080 */ sll $t8, $t8, 2 +/* 09FC90 7F06B160 3C018005 */ lui $at, %hi(jpt_80054490) +/* 09FC94 7F06B164 00380821 */ addu $at, $at, $t8 +/* 09FC98 7F06B168 8C384490 */ lw $t8, %lo(jpt_80054490)($at) +/* 09FC9C 7F06B16C 03000008 */ jr $t8 +/* 09FCA0 7F06B170 00000000 */ nop +loc_CODE_7F06B174: +/* 09FCA4 7F06B174 AC650000 */ sw $a1, ($v1) +/* 09FCA8 7F06B178 AC620004 */ sw $v0, 4($v1) +/* 09FCAC 7F06B17C 8C63000C */ lw $v1, 0xc($v1) +/* 09FCB0 7F06B180 10000002 */ b .L7F06B18C +/* 09FCB4 7F06B184 8C440014 */ lw $a0, 0x14($v0) +def_7F06B16C: +.L7F06B188: +/* 09FCB8 7F06B188 8C440014 */ lw $a0, 0x14($v0) +.L7F06B18C: +/* 09FCBC 7F06B18C 10800003 */ beqz $a0, .L7F06B19C +/* 09FCC0 7F06B190 00000000 */ nop +/* 09FCC4 7F06B194 1000000B */ b .L7F06B1C4 +/* 09FCC8 7F06B198 00801025 */ move $v0, $a0 +.L7F06B19C: +/* 09FCCC 7F06B19C 10400009 */ beqz $v0, .L7F06B1C4 +/* 09FCD0 7F06B1A0 00000000 */ nop +/* 09FCD4 7F06B1A4 8C44000C */ lw $a0, 0xc($v0) +.L7F06B1A8: +/* 09FCD8 7F06B1A8 50800004 */ beql $a0, $zero, .L7F06B1BC +/* 09FCDC 7F06B1AC 8C420008 */ lw $v0, 8($v0) +/* 09FCE0 7F06B1B0 10000004 */ b .L7F06B1C4 +/* 09FCE4 7F06B1B4 00801025 */ move $v0, $a0 +/* 09FCE8 7F06B1B8 8C420008 */ lw $v0, 8($v0) +.L7F06B1BC: +/* 09FCEC 7F06B1BC 5440FFFA */ bnezl $v0, .L7F06B1A8 +/* 09FCF0 7F06B1C0 8C44000C */ lw $a0, 0xc($v0) +.L7F06B1C4: +/* 09FCF4 7F06B1C4 50400004 */ beql $v0, $zero, .L7F06B1D8 +/* 09FCF8 7F06B1C8 8CE20000 */ lw $v0, ($a3) +/* 09FCFC 7F06B1CC 5460FFDF */ bnezl $v1, .L7F06B14C +/* 09FD00 7F06B1D0 94440000 */ lhu $a0, ($v0) +/* 09FD04 7F06B1D4 8CE20000 */ lw $v0, ($a3) +.L7F06B1D8: +/* 09FD08 7F06B1D8 10620019 */ beq $v1, $v0, .L7F06B240 +/* 09FD0C 7F06B1DC 00000000 */ nop +/* 09FD10 7F06B1E0 50C0000F */ beql $a2, $zero, .L7F06B220 +/* 09FD14 7F06B1E4 00403025 */ move $a2, $v0 +/* 09FD18 7F06B1E8 8CD9000C */ lw $t9, 0xc($a2) +/* 09FD1C 7F06B1EC 00C02025 */ move $a0, $a2 +/* 09FD20 7F06B1F0 53200007 */ beql $t9, $zero, .L7F06B210 +/* 09FD24 7F06B1F4 AC82000C */ sw $v0, 0xc($a0) +/* 09FD28 7F06B1F8 8C85000C */ lw $a1, 0xc($a0) +/* 09FD2C 7F06B1FC 00A02025 */ move $a0, $a1 +.L7F06B200: +/* 09FD30 7F06B200 8CA5000C */ lw $a1, 0xc($a1) +/* 09FD34 7F06B204 54A0FFFE */ bnezl $a1, .L7F06B200 +/* 09FD38 7F06B208 00A02025 */ move $a0, $a1 +/* 09FD3C 7F06B20C AC82000C */ sw $v0, 0xc($a0) +.L7F06B210: +/* 09FD40 7F06B210 8CE80000 */ lw $t0, ($a3) +/* 09FD44 7F06B214 10000002 */ b .L7F06B220 +/* 09FD48 7F06B218 AD040010 */ sw $a0, 0x10($t0) +/* 09FD4C 7F06B21C 00403025 */ move $a2, $v0 +.L7F06B220: +/* 09FD50 7F06B220 50600007 */ beql $v1, $zero, .L7F06B240 +/* 09FD54 7F06B224 ACE30000 */ sw $v1, ($a3) +/* 09FD58 7F06B228 8C620010 */ lw $v0, 0x10($v1) +/* 09FD5C 7F06B22C 50400004 */ beql $v0, $zero, .L7F06B240 +/* 09FD60 7F06B230 ACE30000 */ sw $v1, ($a3) +/* 09FD64 7F06B234 AC40000C */ sw $zero, 0xc($v0) +/* 09FD68 7F06B238 AC600010 */ sw $zero, 0x10($v1) +/* 09FD6C 7F06B23C ACE30000 */ sw $v1, ($a3) +.L7F06B240: +/* 09FD70 7F06B240 03E00008 */ jr $ra +/* 09FD74 7F06B244 00C01025 */ move $v0, $a2 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06B248(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06B248 +/* 09FD78 7F06B248 10800012 */ beqz $a0, .L7F06B294 +/* 09FD7C 7F06B24C 3C068003 */ lui $a2, %hi(D_80036060) +/* 09FD80 7F06B250 24C66060 */ addiu $a2, %lo(D_80036060) # addiu $a2, $a2, 0x6060 +/* 09FD84 7F06B254 8CC20000 */ lw $v0, ($a2) +/* 09FD88 7F06B258 5040000E */ beql $v0, $zero, .L7F06B294 +/* 09FD8C 7F06B25C ACC40000 */ sw $a0, ($a2) +/* 09FD90 7F06B260 8C8E000C */ lw $t6, 0xc($a0) +/* 09FD94 7F06B264 00801825 */ move $v1, $a0 +/* 09FD98 7F06B268 51C00007 */ beql $t6, $zero, .L7F06B288 +/* 09FD9C 7F06B26C AC62000C */ sw $v0, 0xc($v1) +/* 09FDA0 7F06B270 8C65000C */ lw $a1, 0xc($v1) +/* 09FDA4 7F06B274 00A01825 */ move $v1, $a1 +.L7F06B278: +/* 09FDA8 7F06B278 8CA5000C */ lw $a1, 0xc($a1) +/* 09FDAC 7F06B27C 54A0FFFE */ bnezl $a1, .L7F06B278 +/* 09FDB0 7F06B280 00A01825 */ move $v1, $a1 +/* 09FDB4 7F06B284 AC62000C */ sw $v0, 0xc($v1) +.L7F06B288: +/* 09FDB8 7F06B288 8CCF0000 */ lw $t7, ($a2) +/* 09FDBC 7F06B28C ADE30010 */ sw $v1, 0x10($t7) +/* 09FDC0 7F06B290 ACC40000 */ sw $a0, ($a2) +.L7F06B294: +/* 09FDC4 7F06B294 03E00008 */ jr $ra +/* 09FDC8 7F06B298 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06B29C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:800544E4*/ +glabel jpt_800544E4 +.word .L7F06B2FC +.word .L7F06B360 +.word .L7F06B3C4 +.word .L7F06B6A4 +.word .L7F06B6A4 +.word .L7F06B6A4 +.word .L7F06B6A4 +.word .L7F06B6A4 +.word .L7F06B6A4 +.word .L7F06B6A4 +.word .L7F06B588 +.word .L7F06B5DC +.word .L7F06B630 +.word .L7F06B448 +.word .L7F06B49C +.word .L7F06B530 +.word .L7F06B6A4 +.word .L7F06B6A4 +.word .L7F06B6A4 +.word .L7F06B6A4 +.word .L7F06B428 + +.text +glabel sub_GAME_7F06B29C +/* 09FDCC 7F06B29C 27BDFEE8 */ addiu $sp, $sp, -0x118 +/* 09FDD0 7F06B2A0 AFB10020 */ sw $s1, 0x20($sp) +/* 09FDD4 7F06B2A4 00808825 */ move $s1, $a0 +/* 09FDD8 7F06B2A8 AFBF0024 */ sw $ra, 0x24($sp) +/* 09FDDC 7F06B2AC AFB0001C */ sw $s0, 0x1c($sp) +/* 09FDE0 7F06B2B0 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 09FDE4 7F06B2B4 AFA40114 */ sw $a0, 0x114($sp) +/* 09FDE8 7F06B2B8 108000FD */ beqz $a0, .L7F06B6B0 +/* 09FDEC 7F06B2BC AFA00110 */ sw $zero, 0x110($sp) +/* 09FDF0 7F06B2C0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09FDF4 7F06B2C4 4481A000 */ mtc1 $at, $f20 +/* 09FDF8 7F06B2C8 00000000 */ nop +/* 09FDFC 7F06B2CC 8E300004 */ lw $s0, 4($s1) +.L7F06B2D0: +/* 09FE00 7F06B2D0 96020000 */ lhu $v0, ($s0) +/* 09FE04 7F06B2D4 305800FF */ andi $t8, $v0, 0xff +/* 09FE08 7F06B2D8 2719FFFF */ addiu $t9, $t8, -1 +/* 09FE0C 7F06B2DC 2F210015 */ sltiu $at, $t9, 0x15 +/* 09FE10 7F06B2E0 102000F0 */ beqz $at, .L7F06B6A4 +/* 09FE14 7F06B2E4 0019C880 */ sll $t9, $t9, 2 +/* 09FE18 7F06B2E8 3C018005 */ lui $at, %hi(jpt_800544E4) # -0.000000 +/* 09FE1C 7F06B2EC 00390821 */ addu $at, $at, $t9 +/* 09FE20 7F06B2F0 8C3944E4 */ lw $t9, %lo(jpt_800544E4)($at) +.L7F06B2F4: +/* 09FE24 7F06B2F4 03200008 */ jr $t9 +/* 09FE28 7F06B2F8 00000000 */ nop +.L7F06B2FC: +/* 09FE2C 7F06B2FC 8E020004 */ lw $v0, 4($s0) +/* 09FE30 7F06B300 8E240000 */ lw $a0, ($s1) +/* 09FE34 7F06B304 02002825 */ move $a1, $s0 +/* 09FE38 7F06B308 8C470004 */ lw $a3, 4($v0) +/* 09FE3C 7F06B30C 00003025 */ move $a2, $zero +/* 09FE40 7F06B310 0FC1B198 */ jal sub_GAME_7F06C660 +/* 09FE44 7F06B314 AFA70100 */ sw $a3, 0x100($sp) +/* 09FE48 7F06B318 8FA70100 */ lw $a3, 0x100($sp) +/* 09FE4C 7F06B31C 00408025 */ move $s0, $v0 +/* 09FE50 7F06B320 00003025 */ move $a2, $zero +/* 09FE54 7F06B324 10E0000A */ beqz $a3, .L7F06B350 +/* 09FE58 7F06B328 00E02825 */ move $a1, $a3 +/* 09FE5C 7F06B32C 0FC1B198 */ jal sub_GAME_7F06C660 +/* 09FE60 7F06B330 8E240000 */ lw $a0, ($s1) +/* 09FE64 7F06B334 C44A0038 */ lwc1 $f10, 0x38($v0) +/* 09FE68 7F06B338 C6040038 */ lwc1 $f4, 0x38($s0) +/* 09FE6C 7F06B33C 46045180 */ add.s $f6, $f10, $f4 +/* 09FE70 7F06B340 46003207 */ neg.s $f8, $f6 +/* 09FE74 7F06B344 46144282 */ mul.s $f10, $f8, $f20 +/* 09FE78 7F06B348 100000D6 */ b .L7F06B6A4 +/* 09FE7C 7F06B34C E62A0008 */ swc1 $f10, 8($s1) +.L7F06B350: +/* 09FE80 7F06B350 C4440038 */ lwc1 $f4, 0x38($v0) +/* 09FE84 7F06B354 46002187 */ neg.s $f6, $f4 +/* 09FE88 7F06B358 100000D2 */ b .L7F06B6A4 +/* 09FE8C 7F06B35C E6260008 */ swc1 $f6, 8($s1) +.L7F06B360: +/* 09FE90 7F06B360 8E020004 */ lw $v0, 4($s0) +/* 09FE94 7F06B364 8E240000 */ lw $a0, ($s1) +/* 09FE98 7F06B368 02002825 */ move $a1, $s0 +/* 09FE9C 7F06B36C 8C470014 */ lw $a3, 0x14($v0) +/* 09FEA0 7F06B370 00003025 */ move $a2, $zero +/* 09FEA4 7F06B374 0FC1B198 */ jal sub_GAME_7F06C660 +/* 09FEA8 7F06B378 AFA700F0 */ sw $a3, 0xf0($sp) +/* 09FEAC 7F06B37C 8FA700F0 */ lw $a3, 0xf0($sp) +/* 09FEB0 7F06B380 00408025 */ move $s0, $v0 +/* 09FEB4 7F06B384 00003025 */ move $a2, $zero +/* 09FEB8 7F06B388 10E0000A */ beqz $a3, .L7F06B3B4 +/* 09FEBC 7F06B38C 00E02825 */ move $a1, $a3 +/* 09FEC0 7F06B390 0FC1B198 */ jal sub_GAME_7F06C660 +/* 09FEC4 7F06B394 8E240000 */ lw $a0, ($s1) +/* 09FEC8 7F06B398 C4480038 */ lwc1 $f8, 0x38($v0) +/* 09FECC 7F06B39C C60A0038 */ lwc1 $f10, 0x38($s0) +/* 09FED0 7F06B3A0 460A4100 */ add.s $f4, $f8, $f10 +/* 09FED4 7F06B3A4 46002187 */ neg.s $f6, $f4 +/* 09FED8 7F06B3A8 46143202 */ mul.s $f8, $f6, $f20 +/* 09FEDC 7F06B3AC 100000BD */ b .L7F06B6A4 +/* 09FEE0 7F06B3B0 E6280008 */ swc1 $f8, 8($s1) +.L7F06B3B4: +/* 09FEE4 7F06B3B4 C44A0038 */ lwc1 $f10, 0x38($v0) +/* 09FEE8 7F06B3B8 46005107 */ neg.s $f4, $f10 +/* 09FEEC 7F06B3BC 100000B9 */ b .L7F06B6A4 +/* 09FEF0 7F06B3C0 E6240008 */ swc1 $f4, 8($s1) +.L7F06B3C4: +/* 09FEF4 7F06B3C4 8E020004 */ lw $v0, 4($s0) +/* 09FEF8 7F06B3C8 8E240000 */ lw $a0, ($s1) +/* 09FEFC 7F06B3CC 02002825 */ move $a1, $s0 +/* 09FF00 7F06B3D0 8C470014 */ lw $a3, 0x14($v0) +/* 09FF04 7F06B3D4 00003025 */ move $a2, $zero +/* 09FF08 7F06B3D8 0FC1B198 */ jal sub_GAME_7F06C660 +/* 09FF0C 7F06B3DC AFA700E0 */ sw $a3, 0xe0($sp) +/* 09FF10 7F06B3E0 8FA700E0 */ lw $a3, 0xe0($sp) +/* 09FF14 7F06B3E4 00408025 */ move $s0, $v0 +/* 09FF18 7F06B3E8 00003025 */ move $a2, $zero +/* 09FF1C 7F06B3EC 10E0000A */ beqz $a3, .L7F06B418 +/* 09FF20 7F06B3F0 00E02825 */ move $a1, $a3 +/* 09FF24 7F06B3F4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 09FF28 7F06B3F8 8E240000 */ lw $a0, ($s1) +/* 09FF2C 7F06B3FC C4460038 */ lwc1 $f6, 0x38($v0) +/* 09FF30 7F06B400 C6080038 */ lwc1 $f8, 0x38($s0) +/* 09FF34 7F06B404 46083280 */ add.s $f10, $f6, $f8 +/* 09FF38 7F06B408 46005107 */ neg.s $f4, $f10 +/* 09FF3C 7F06B40C 46142182 */ mul.s $f6, $f4, $f20 +/* 09FF40 7F06B410 100000A4 */ b .L7F06B6A4 +/* 09FF44 7F06B414 E6260008 */ swc1 $f6, 8($s1) +.L7F06B418: +/* 09FF48 7F06B418 C4480038 */ lwc1 $f8, 0x38($v0) +/* 09FF4C 7F06B41C 46004287 */ neg.s $f10, $f8 +/* 09FF50 7F06B420 100000A0 */ b .L7F06B6A4 +/* 09FF54 7F06B424 E62A0008 */ swc1 $f10, 8($s1) +.L7F06B428: +/* 09FF58 7F06B428 8E240000 */ lw $a0, ($s1) +/* 09FF5C 7F06B42C 02002825 */ move $a1, $s0 +/* 09FF60 7F06B430 0FC1B198 */ jal sub_GAME_7F06C660 +/* 09FF64 7F06B434 00003025 */ move $a2, $zero +/* 09FF68 7F06B438 C4440038 */ lwc1 $f4, 0x38($v0) +/* 09FF6C 7F06B43C 46002187 */ neg.s $f6, $f4 +/* 09FF70 7F06B440 10000098 */ b .L7F06B6A4 +/* 09FF74 7F06B444 E6260008 */ swc1 $f6, 8($s1) +.L7F06B448: +/* 09FF78 7F06B448 8E240000 */ lw $a0, ($s1) +/* 09FF7C 7F06B44C 02002825 */ move $a1, $s0 +/* 09FF80 7F06B450 0FC1B198 */ jal sub_GAME_7F06C660 +/* 09FF84 7F06B454 00003025 */ move $a2, $zero +/* 09FF88 7F06B458 8E030004 */ lw $v1, 4($s0) +/* 09FF8C 7F06B45C C44A0008 */ lwc1 $f10, 8($v0) +/* 09FF90 7F06B460 C4680000 */ lwc1 $f8, ($v1) +/* 09FF94 7F06B464 C4660004 */ lwc1 $f6, 4($v1) +/* 09FF98 7F06B468 460A4102 */ mul.s $f4, $f8, $f10 +/* 09FF9C 7F06B46C C4480018 */ lwc1 $f8, 0x18($v0) +/* 09FFA0 7F06B470 46083282 */ mul.s $f10, $f6, $f8 +/* 09FFA4 7F06B474 C4680008 */ lwc1 $f8, 8($v1) +/* 09FFA8 7F06B478 460A2180 */ add.s $f6, $f4, $f10 +/* 09FFAC 7F06B47C C4440028 */ lwc1 $f4, 0x28($v0) +/* 09FFB0 7F06B480 46044282 */ mul.s $f10, $f8, $f4 +/* 09FFB4 7F06B484 C4440038 */ lwc1 $f4, 0x38($v0) +/* 09FFB8 7F06B488 460A3200 */ add.s $f8, $f6, $f10 +/* 09FFBC 7F06B48C 46082180 */ add.s $f6, $f4, $f8 +/* 09FFC0 7F06B490 46003287 */ neg.s $f10, $f6 +/* 09FFC4 7F06B494 10000083 */ b .L7F06B6A4 +/* 09FFC8 7F06B498 E62A0008 */ swc1 $f10, 8($s1) +.L7F06B49C: +/* 09FFCC 7F06B49C 8E240000 */ lw $a0, ($s1) +/* 09FFD0 7F06B4A0 02002825 */ move $a1, $s0 +/* 09FFD4 7F06B4A4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 09FFD8 7F06B4A8 00003025 */ move $a2, $zero +/* 09FFDC 7F06B4AC 8E030004 */ lw $v1, 4($s0) +/* 09FFE0 7F06B4B0 C4420008 */ lwc1 $f2, 8($v0) +/* 09FFE4 7F06B4B4 C44C0018 */ lwc1 $f12, 0x18($v0) +/* 09FFE8 7F06B4B8 C4640000 */ lwc1 $f4, ($v1) +/* 09FFEC 7F06B4BC C4660004 */ lwc1 $f6, 4($v1) +/* 09FFF0 7F06B4C0 C44E0028 */ lwc1 $f14, 0x28($v0) +/* 09FFF4 7F06B4C4 46022202 */ mul.s $f8, $f4, $f2 +/* 09FFF8 7F06B4C8 C4400038 */ lwc1 $f0, 0x38($v0) +/* 09FFFC 7F06B4CC 460C3282 */ mul.s $f10, $f6, $f12 +/* 0A0000 7F06B4D0 C4660008 */ lwc1 $f6, 8($v1) +/* 0A0004 7F06B4D4 460A4100 */ add.s $f4, $f8, $f10 +/* 0A0008 7F06B4D8 460E3202 */ mul.s $f8, $f6, $f14 +/* 0A000C 7F06B4DC C466000C */ lwc1 $f6, 0xc($v1) +/* 0A0010 7F06B4E0 46082280 */ add.s $f10, $f4, $f8 +/* 0A0014 7F06B4E4 46023102 */ mul.s $f4, $f6, $f2 +/* 0A0018 7F06B4E8 C4680010 */ lwc1 $f8, 0x10($v1) +/* 0A001C 7F06B4EC 460A0400 */ add.s $f16, $f0, $f10 +/* 0A0020 7F06B4F0 460C4282 */ mul.s $f10, $f8, $f12 +/* 0A0024 7F06B4F4 C4680014 */ lwc1 $f8, 0x14($v1) +/* 0A0028 7F06B4F8 46008407 */ neg.s $f16, $f16 +/* 0A002C 7F06B4FC 460A2180 */ add.s $f6, $f4, $f10 +/* 0A0030 7F06B500 460E4102 */ mul.s $f4, $f8, $f14 +/* 0A0034 7F06B504 46043280 */ add.s $f10, $f6, $f4 +/* 0A0038 7F06B508 460A0480 */ add.s $f18, $f0, $f10 +/* 0A003C 7F06B50C 46009487 */ neg.s $f18, $f18 +/* 0A0040 7F06B510 4612803C */ c.lt.s $f16, $f18 +/* 0A0044 7F06B514 00000000 */ nop +/* 0A0048 7F06B518 45000003 */ bc1f .L7F06B528 +/* 0A004C 7F06B51C 00000000 */ nop +/* 0A0050 7F06B520 10000060 */ b .L7F06B6A4 +/* 0A0054 7F06B524 E6300008 */ swc1 $f16, 8($s1) +.L7F06B528: +/* 0A0058 7F06B528 1000005E */ b .L7F06B6A4 +/* 0A005C 7F06B52C E6320008 */ swc1 $f18, 8($s1) +.L7F06B530: +/* 0A0060 7F06B530 8E240000 */ lw $a0, ($s1) +/* 0A0064 7F06B534 02002825 */ move $a1, $s0 +/* 0A0068 7F06B538 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A006C 7F06B53C 00003025 */ move $a2, $zero +/* 0A0070 7F06B540 8E030004 */ lw $v1, 4($s0) +/* 0A0074 7F06B544 C4460008 */ lwc1 $f6, 8($v0) +/* 0A0078 7F06B548 C4680000 */ lwc1 $f8, ($v1) +/* 0A007C 7F06B54C C46A0004 */ lwc1 $f10, 4($v1) +/* 0A0080 7F06B550 46064102 */ mul.s $f4, $f8, $f6 +/* 0A0084 7F06B554 C4480018 */ lwc1 $f8, 0x18($v0) +/* 0A0088 7F06B558 46085182 */ mul.s $f6, $f10, $f8 +/* 0A008C 7F06B55C C4680008 */ lwc1 $f8, 8($v1) +/* 0A0090 7F06B560 46062280 */ add.s $f10, $f4, $f6 +/* 0A0094 7F06B564 C4440028 */ lwc1 $f4, 0x28($v0) +/* 0A0098 7F06B568 46044182 */ mul.s $f6, $f8, $f4 +/* 0A009C 7F06B56C C4440038 */ lwc1 $f4, 0x38($v0) +/* 0A00A0 7F06B570 46065200 */ add.s $f8, $f10, $f6 +/* 0A00A4 7F06B574 46082280 */ add.s $f10, $f4, $f8 +/* 0A00A8 7F06B578 46005187 */ neg.s $f6, $f10 +/* 0A00AC 7F06B57C E6260008 */ swc1 $f6, 8($s1) +/* 0A00B0 7F06B580 10000048 */ b .L7F06B6A4 +/* 0A00B4 7F06B584 AFB10110 */ sw $s1, 0x110($sp) +.L7F06B588: +/* 0A00B8 7F06B588 8E240000 */ lw $a0, ($s1) +/* 0A00BC 7F06B58C 02002825 */ move $a1, $s0 +/* 0A00C0 7F06B590 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A00C4 7F06B594 00003025 */ move $a2, $zero +/* 0A00C8 7F06B598 8E030004 */ lw $v1, 4($s0) +/* 0A00CC 7F06B59C C4480008 */ lwc1 $f8, 8($v0) +/* 0A00D0 7F06B5A0 C4640000 */ lwc1 $f4, ($v1) +/* 0A00D4 7F06B5A4 C4660004 */ lwc1 $f6, 4($v1) +/* 0A00D8 7F06B5A8 46082282 */ mul.s $f10, $f4, $f8 +/* 0A00DC 7F06B5AC C4440018 */ lwc1 $f4, 0x18($v0) +/* 0A00E0 7F06B5B0 46043202 */ mul.s $f8, $f6, $f4 +/* 0A00E4 7F06B5B4 C4640008 */ lwc1 $f4, 8($v1) +/* 0A00E8 7F06B5B8 46085180 */ add.s $f6, $f10, $f8 +/* 0A00EC 7F06B5BC C44A0028 */ lwc1 $f10, 0x28($v0) +/* 0A00F0 7F06B5C0 460A2202 */ mul.s $f8, $f4, $f10 +/* 0A00F4 7F06B5C4 C44A0038 */ lwc1 $f10, 0x38($v0) +/* 0A00F8 7F06B5C8 46083100 */ add.s $f4, $f6, $f8 +/* 0A00FC 7F06B5CC 46045180 */ add.s $f6, $f10, $f4 +/* 0A0100 7F06B5D0 46003207 */ neg.s $f8, $f6 +/* 0A0104 7F06B5D4 10000033 */ b .L7F06B6A4 +/* 0A0108 7F06B5D8 E6280008 */ swc1 $f8, 8($s1) +.L7F06B5DC: +/* 0A010C 7F06B5DC 8E240000 */ lw $a0, ($s1) +/* 0A0110 7F06B5E0 02002825 */ move $a1, $s0 +/* 0A0114 7F06B5E4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A0118 7F06B5E8 00003025 */ move $a2, $zero +/* 0A011C 7F06B5EC 8E030004 */ lw $v1, 4($s0) +/* 0A0120 7F06B5F0 C4440008 */ lwc1 $f4, 8($v0) +/* 0A0124 7F06B5F4 C46A0000 */ lwc1 $f10, ($v1) +/* 0A0128 7F06B5F8 C4680004 */ lwc1 $f8, 4($v1) +/* 0A012C 7F06B5FC 46045182 */ mul.s $f6, $f10, $f4 +/* 0A0130 7F06B600 C44A0018 */ lwc1 $f10, 0x18($v0) +/* 0A0134 7F06B604 460A4102 */ mul.s $f4, $f8, $f10 +/* 0A0138 7F06B608 C46A0008 */ lwc1 $f10, 8($v1) +/* 0A013C 7F06B60C 46043200 */ add.s $f8, $f6, $f4 +/* 0A0140 7F06B610 C4460028 */ lwc1 $f6, 0x28($v0) +/* 0A0144 7F06B614 46065102 */ mul.s $f4, $f10, $f6 +/* 0A0148 7F06B618 C4460038 */ lwc1 $f6, 0x38($v0) +/* 0A014C 7F06B61C 46044280 */ add.s $f10, $f8, $f4 +/* 0A0150 7F06B620 460A3200 */ add.s $f8, $f6, $f10 +/* 0A0154 7F06B624 46004107 */ neg.s $f4, $f8 +/* 0A0158 7F06B628 1000001E */ b .L7F06B6A4 +/* 0A015C 7F06B62C E6240008 */ swc1 $f4, 8($s1) +.L7F06B630: +/* 0A0160 7F06B630 8E240000 */ lw $a0, ($s1) +/* 0A0164 7F06B634 02002825 */ move $a1, $s0 +/* 0A0168 7F06B638 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A016C 7F06B63C 00003025 */ move $a2, $zero +/* 0A0170 7F06B640 8E060004 */ lw $a2, 4($s0) +/* 0A0174 7F06B644 8E240000 */ lw $a0, ($s1) +/* 0A0178 7F06B648 8CC50014 */ lw $a1, 0x14($a2) +/* 0A017C 7F06B64C AFA200A0 */ sw $v0, 0xa0($sp) +/* 0A0180 7F06B650 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A0184 7F06B654 AFA6009C */ sw $a2, 0x9c($sp) +/* 0A0188 7F06B658 8FA300A0 */ lw $v1, 0xa0($sp) +/* 0A018C 7F06B65C 8FA6009C */ lw $a2, 0x9c($sp) +/* 0A0190 7F06B660 C4440004 */ lwc1 $f4, 4($v0) +/* 0A0194 7F06B664 C46A0008 */ lwc1 $f10, 8($v1) +/* 0A0198 7F06B668 C4C60000 */ lwc1 $f6, ($a2) +/* 0A019C 7F06B66C 460A3202 */ mul.s $f8, $f6, $f10 +/* 0A01A0 7F06B670 C446000C */ lwc1 $f6, 0xc($v0) +/* 0A01A4 7F06B674 46062281 */ sub.s $f10, $f4, $f6 +/* 0A01A8 7F06B678 C4640018 */ lwc1 $f4, 0x18($v1) +/* 0A01AC 7F06B67C 46045182 */ mul.s $f6, $f10, $f4 +/* 0A01B0 7F06B680 C4C40004 */ lwc1 $f4, 4($a2) +/* 0A01B4 7F06B684 46064280 */ add.s $f10, $f8, $f6 +/* 0A01B8 7F06B688 C4680028 */ lwc1 $f8, 0x28($v1) +/* 0A01BC 7F06B68C 46082182 */ mul.s $f6, $f4, $f8 +/* 0A01C0 7F06B690 C4680038 */ lwc1 $f8, 0x38($v1) +/* 0A01C4 7F06B694 46065100 */ add.s $f4, $f10, $f6 +/* 0A01C8 7F06B698 46044280 */ add.s $f10, $f8, $f4 +/* 0A01CC 7F06B69C 46005187 */ neg.s $f6, $f10 +/* 0A01D0 7F06B6A0 E6260008 */ swc1 $f6, 8($s1) +def_7F06B2F4: +.L7F06B6A4: +/* 0A01D4 7F06B6A4 8E31000C */ lw $s1, 0xc($s1) +/* 0A01D8 7F06B6A8 5620FF09 */ bnezl $s1, .L7F06B2D0 +/* 0A01DC 7F06B6AC 8E300004 */ lw $s0, 4($s1) +.L7F06B6B0: +/* 0A01E0 7F06B6B0 8FAC0110 */ lw $t4, 0x110($sp) +/* 0A01E4 7F06B6B4 51800117 */ beql $t4, $zero, .L7F06BB14 +/* 0A01E8 7F06B6B8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A01EC 7F06B6BC 8D840000 */ lw $a0, ($t4) +/* 0A01F0 7F06B6C0 8C830018 */ lw $v1, 0x18($a0) +/* 0A01F4 7F06B6C4 50600113 */ beql $v1, $zero, .L7F06BB14 +/* 0A01F8 7F06B6C8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A01FC 7F06B6CC 8D850004 */ lw $a1, 4($t4) +/* 0A0200 7F06B6D0 8C6D0008 */ lw $t5, 8($v1) +/* 0A0204 7F06B6D4 C5940008 */ lwc1 $f20, 8($t4) +/* 0A0208 7F06B6D8 8CB00004 */ lw $s0, 4($a1) +/* 0A020C 7F06B6DC 8DA20008 */ lw $v0, 8($t5) +/* 0A0210 7F06B6E0 00003025 */ move $a2, $zero +/* 0A0214 7F06B6E4 860E000E */ lh $t6, 0xe($s0) +/* 0A0218 7F06B6E8 8619000C */ lh $t9, 0xc($s0) +/* 0A021C 7F06B6EC 000E7880 */ sll $t7, $t6, 2 +/* 0A0220 7F06B6F0 860E0010 */ lh $t6, 0x10($s0) +/* 0A0224 7F06B6F4 004FC021 */ addu $t8, $v0, $t7 +/* 0A0228 7F06B6F8 8F110000 */ lw $s1, ($t8) +/* 0A022C 7F06B6FC 00196080 */ sll $t4, $t9, 2 +/* 0A0230 7F06B700 000E7880 */ sll $t7, $t6, 2 +/* 0A0234 7F06B704 004C6821 */ addu $t5, $v0, $t4 +/* 0A0238 7F06B708 004FC021 */ addu $t8, $v0, $t7 +/* 0A023C 7F06B70C 8DA70000 */ lw $a3, ($t5) +/* 0A0240 7F06B710 8F080000 */ lw $t0, ($t8) +/* 0A0244 7F06B714 AFA00070 */ sw $zero, 0x70($sp) +/* 0A0248 7F06B718 AFA00078 */ sw $zero, 0x78($sp) +/* 0A024C 7F06B71C AFA00074 */ sw $zero, 0x74($sp) +/* 0A0250 7F06B720 AFA70080 */ sw $a3, 0x80($sp) +/* 0A0254 7F06B724 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A0258 7F06B728 AFA8007C */ sw $t0, 0x7c($sp) +/* 0A025C 7F06B72C 8FA30114 */ lw $v1, 0x114($sp) +/* 0A0260 7F06B730 8FA70080 */ lw $a3, 0x80($sp) +/* 0A0264 7F06B734 8FA8007C */ lw $t0, 0x7c($sp) +/* 0A0268 7F06B738 8FA90074 */ lw $t1, 0x74($sp) +/* 0A026C 7F06B73C 8FAA0078 */ lw $t2, 0x78($sp) +/* 0A0270 7F06B740 1060000E */ beqz $v1, .L7F06B77C +/* 0A0274 7F06B744 8FAB0070 */ lw $t3, 0x70($sp) +/* 0A0278 7F06B748 8C640004 */ lw $a0, 4($v1) +.L7F06B74C: +/* 0A027C 7F06B74C 16240002 */ bne $s1, $a0, .L7F06B758 +/* 0A0280 7F06B750 00000000 */ nop +/* 0A0284 7F06B754 00605025 */ move $t2, $v1 +.L7F06B758: +/* 0A0288 7F06B758 14E40002 */ bne $a3, $a0, .L7F06B764 +/* 0A028C 7F06B75C 00000000 */ nop +/* 0A0290 7F06B760 00604825 */ move $t1, $v1 +.L7F06B764: +/* 0A0294 7F06B764 55040003 */ bnel $t0, $a0, .L7F06B774 +/* 0A0298 7F06B768 8C63000C */ lw $v1, 0xc($v1) +/* 0A029C 7F06B76C 00605825 */ move $t3, $v1 +/* 0A02A0 7F06B770 8C63000C */ lw $v1, 0xc($v1) +.L7F06B774: +/* 0A02A4 7F06B774 5460FFF5 */ bnezl $v1, .L7F06B74C +/* 0A02A8 7F06B778 8C640004 */ lw $a0, 4($v1) +.L7F06B77C: +/* 0A02AC 7F06B77C C4480020 */ lwc1 $f8, 0x20($v0) +/* 0A02B0 7F06B780 E7A80054 */ swc1 $f8, 0x54($sp) +/* 0A02B4 7F06B784 C4440024 */ lwc1 $f4, 0x24($v0) +/* 0A02B8 7F06B788 E7A40058 */ swc1 $f4, 0x58($sp) +/* 0A02BC 7F06B78C C44A0028 */ lwc1 $f10, 0x28($v0) +/* 0A02C0 7F06B790 E7AA005C */ swc1 $f10, 0x5c($sp) +/* 0A02C4 7F06B794 C4460010 */ lwc1 $f6, 0x10($v0) +/* 0A02C8 7F06B798 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0A02CC 7F06B79C C4480014 */ lwc1 $f8, 0x14($v0) +/* 0A02D0 7F06B7A0 E7A8004C */ swc1 $f8, 0x4c($sp) +/* 0A02D4 7F06B7A4 C4440018 */ lwc1 $f4, 0x18($v0) +/* 0A02D8 7F06B7A8 E7A40050 */ swc1 $f4, 0x50($sp) +/* 0A02DC 7F06B7AC C60A0000 */ lwc1 $f10, ($s0) +/* 0A02E0 7F06B7B0 C4460000 */ lwc1 $f6, ($v0) +/* 0A02E4 7F06B7B4 C6040004 */ lwc1 $f4, 4($s0) +/* 0A02E8 7F06B7B8 46065202 */ mul.s $f8, $f10, $f6 +/* 0A02EC 7F06B7BC C44A0010 */ lwc1 $f10, 0x10($v0) +/* 0A02F0 7F06B7C0 460A2182 */ mul.s $f6, $f4, $f10 +/* 0A02F4 7F06B7C4 C60A0008 */ lwc1 $f10, 8($s0) +/* 0A02F8 7F06B7C8 46064100 */ add.s $f4, $f8, $f6 +/* 0A02FC 7F06B7CC C4480020 */ lwc1 $f8, 0x20($v0) +/* 0A0300 7F06B7D0 46085182 */ mul.s $f6, $f10, $f8 +/* 0A0304 7F06B7D4 C4480030 */ lwc1 $f8, 0x30($v0) +/* 0A0308 7F06B7D8 46062280 */ add.s $f10, $f4, $f6 +/* 0A030C 7F06B7DC 460A4100 */ add.s $f4, $f8, $f10 +/* 0A0310 7F06B7E0 E7A40034 */ swc1 $f4, 0x34($sp) +/* 0A0314 7F06B7E4 C6060000 */ lwc1 $f6, ($s0) +/* 0A0318 7F06B7E8 C4480004 */ lwc1 $f8, 4($v0) +/* 0A031C 7F06B7EC C6040004 */ lwc1 $f4, 4($s0) +/* 0A0320 7F06B7F0 46083282 */ mul.s $f10, $f6, $f8 +/* 0A0324 7F06B7F4 C4460014 */ lwc1 $f6, 0x14($v0) +/* 0A0328 7F06B7F8 46062202 */ mul.s $f8, $f4, $f6 +/* 0A032C 7F06B7FC C6060008 */ lwc1 $f6, 8($s0) +/* 0A0330 7F06B800 46085100 */ add.s $f4, $f10, $f8 +/* 0A0334 7F06B804 C44A0024 */ lwc1 $f10, 0x24($v0) +/* 0A0338 7F06B808 460A3202 */ mul.s $f8, $f6, $f10 +/* 0A033C 7F06B80C C44A0034 */ lwc1 $f10, 0x34($v0) +/* 0A0340 7F06B810 46082180 */ add.s $f6, $f4, $f8 +/* 0A0344 7F06B814 46065100 */ add.s $f4, $f10, $f6 +/* 0A0348 7F06B818 E7A40038 */ swc1 $f4, 0x38($sp) +/* 0A034C 7F06B81C C44A0008 */ lwc1 $f10, 8($v0) +/* 0A0350 7F06B820 C6080000 */ lwc1 $f8, ($s0) +/* 0A0354 7F06B824 C6040004 */ lwc1 $f4, 4($s0) +/* 0A0358 7F06B828 460A4182 */ mul.s $f6, $f8, $f10 +/* 0A035C 7F06B82C C4480018 */ lwc1 $f8, 0x18($v0) +/* 0A0360 7F06B830 46082282 */ mul.s $f10, $f4, $f8 +/* 0A0364 7F06B834 C6080008 */ lwc1 $f8, 8($s0) +/* 0A0368 7F06B838 460A3100 */ add.s $f4, $f6, $f10 +/* 0A036C 7F06B83C C4460028 */ lwc1 $f6, 0x28($v0) +/* 0A0370 7F06B840 46064282 */ mul.s $f10, $f8, $f6 +/* 0A0374 7F06B844 C4460038 */ lwc1 $f6, 0x38($v0) +/* 0A0378 7F06B848 460A2200 */ add.s $f8, $f4, $f10 +/* 0A037C 7F06B84C C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 0A0380 7F06B850 46083100 */ add.s $f4, $f6, $f8 +/* 0A0384 7F06B854 C7A60034 */ lwc1 $f6, 0x34($sp) +/* 0A0388 7F06B858 46065202 */ mul.s $f8, $f10, $f6 +/* 0A038C 7F06B85C E7A4003C */ swc1 $f4, 0x3c($sp) +/* 0A0390 7F06B860 C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0A0394 7F06B864 C7AA0038 */ lwc1 $f10, 0x38($sp) +/* 0A0398 7F06B868 E7A60028 */ swc1 $f6, 0x28($sp) +/* 0A039C 7F06B86C C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 0A03A0 7F06B870 460A2102 */ mul.s $f4, $f4, $f10 +/* 0A03A4 7F06B874 C54E0008 */ lwc1 $f14, 8($t2) +/* 0A03A8 7F06B878 C52C0008 */ lwc1 $f12, 8($t1) +/* 0A03AC 7F06B87C C5700008 */ lwc1 $f16, 8($t3) +/* 0A03B0 7F06B880 46044200 */ add.s $f8, $f8, $f4 +/* 0A03B4 7F06B884 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0A03B8 7F06B888 46062182 */ mul.s $f6, $f4, $f6 +/* 0A03BC 7F06B88C 46083080 */ add.s $f2, $f6, $f8 +/* 0A03C0 7F06B890 C7A80028 */ lwc1 $f8, 0x28($sp) +/* 0A03C4 7F06B894 C7A60048 */ lwc1 $f6, 0x48($sp) +/* 0A03C8 7F06B898 46083182 */ mul.s $f6, $f6, $f8 +/* 0A03CC 7F06B89C C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 0A03D0 7F06B8A0 460A4202 */ mul.s $f8, $f8, $f10 +/* 0A03D4 7F06B8A4 46083280 */ add.s $f10, $f6, $f8 +/* 0A03D8 7F06B8A8 C7A60050 */ lwc1 $f6, 0x50($sp) +/* 0A03DC 7F06B8AC 46062202 */ mul.s $f8, $f4, $f6 +/* 0A03E0 7F06B8B0 44802000 */ mtc1 $zero, $f4 +/* 0A03E4 7F06B8B4 00000000 */ nop +/* 0A03E8 7F06B8B8 4604103C */ c.lt.s $f2, $f4 +/* 0A03EC 7F06B8BC 460A4480 */ add.s $f18, $f8, $f10 +/* 0A03F0 7F06B8C0 45020018 */ bc1fl .L7F06B924 +/* 0A03F4 7F06B8C4 44803000 */ mtc1 $zero, $f6 +/* 0A03F8 7F06B8C8 460E803C */ c.lt.s $f16, $f14 +/* 0A03FC 7F06B8CC 00000000 */ nop +/* 0A0400 7F06B8D0 4502000B */ bc1fl .L7F06B900 +/* 0A0404 7F06B8D4 4614703C */ c.lt.s $f14, $f20 +/* 0A0408 7F06B8D8 4614803C */ c.lt.s $f16, $f20 +/* 0A040C 7F06B8DC 3C013800 */ li $at, 0x38000000 # 0.000031 +/* 0A0410 7F06B8E0 45020030 */ bc1fl .L7F06B9A4 +/* 0A0414 7F06B8E4 44802000 */ mtc1 $zero, $f4 +/* 0A0418 7F06B8E8 44813000 */ mtc1 $at, $f6 +/* 0A041C 7F06B8EC 8FAC0110 */ lw $t4, 0x110($sp) +/* 0A0420 7F06B8F0 46068201 */ sub.s $f8, $f16, $f6 +/* 0A0424 7F06B8F4 1000002A */ b .L7F06B9A0 +/* 0A0428 7F06B8F8 E5880008 */ swc1 $f8, 8($t4) +/* 0A042C 7F06B8FC 4614703C */ c.lt.s $f14, $f20 +.L7F06B900: +/* 0A0430 7F06B900 3C013800 */ li $at, 0x38000000 # 0.000031 +/* 0A0434 7F06B904 45020027 */ bc1fl .L7F06B9A4 +/* 0A0438 7F06B908 44802000 */ mtc1 $zero, $f4 +/* 0A043C 7F06B90C 44815000 */ mtc1 $at, $f10 +/* 0A0440 7F06B910 8FAD0110 */ lw $t5, 0x110($sp) +/* 0A0444 7F06B914 460A7101 */ sub.s $f4, $f14, $f10 +/* 0A0448 7F06B918 10000021 */ b .L7F06B9A0 +/* 0A044C 7F06B91C E5A40008 */ swc1 $f4, 8($t5) +/* 0A0450 7F06B920 44803000 */ mtc1 $zero, $f6 +.L7F06B924: +/* 0A0454 7F06B924 00000000 */ nop +/* 0A0458 7F06B928 4602303E */ c.le.s $f6, $f2 +/* 0A045C 7F06B92C 00000000 */ nop +/* 0A0460 7F06B930 4502001C */ bc1fl .L7F06B9A4 +/* 0A0464 7F06B934 44802000 */ mtc1 $zero, $f4 +/* 0A0468 7F06B938 460EA03C */ c.lt.s $f20, $f14 +/* 0A046C 7F06B93C 3C013880 */ li $at, 0x38800000 # 0.000061 +/* 0A0470 7F06B940 45020006 */ bc1fl .L7F06B95C +/* 0A0474 7F06B944 4610A03C */ c.lt.s $f20, $f16 +/* 0A0478 7F06B948 44814000 */ mtc1 $at, $f8 +/* 0A047C 7F06B94C 00000000 */ nop +/* 0A0480 7F06B950 4608A281 */ sub.s $f10, $f20, $f8 +/* 0A0484 7F06B954 E54A0008 */ swc1 $f10, 8($t2) +/* 0A0488 7F06B958 4610A03C */ c.lt.s $f20, $f16 +.L7F06B95C: +/* 0A048C 7F06B95C 00000000 */ nop +/* 0A0490 7F06B960 45020010 */ bc1fl .L7F06B9A4 +/* 0A0494 7F06B964 44802000 */ mtc1 $zero, $f4 +/* 0A0498 7F06B968 460E803C */ c.lt.s $f16, $f14 +/* 0A049C 7F06B96C 3C013800 */ li $at, 0x38000000 # 0.000031 +/* 0A04A0 7F06B970 45020008 */ bc1fl .L7F06B994 +/* 0A04A4 7F06B974 44814000 */ mtc1 $at, $f8 +/* 0A04A8 7F06B978 3C0138C0 */ li $at, 0x38C00000 # 0.000092 +/* 0A04AC 7F06B97C 44812000 */ mtc1 $at, $f4 +/* 0A04B0 7F06B980 00000000 */ nop +/* 0A04B4 7F06B984 4604A181 */ sub.s $f6, $f20, $f4 +/* 0A04B8 7F06B988 10000005 */ b .L7F06B9A0 +/* 0A04BC 7F06B98C E5660008 */ swc1 $f6, 8($t3) +/* 0A04C0 7F06B990 44814000 */ mtc1 $at, $f8 +.L7F06B994: +/* 0A04C4 7F06B994 00000000 */ nop +/* 0A04C8 7F06B998 4608A281 */ sub.s $f10, $f20, $f8 +/* 0A04CC 7F06B99C E56A0008 */ swc1 $f10, 8($t3) +.L7F06B9A0: +/* 0A04D0 7F06B9A0 44802000 */ mtc1 $zero, $f4 +.L7F06B9A4: +/* 0A04D4 7F06B9A4 8FAE0110 */ lw $t6, 0x110($sp) +/* 0A04D8 7F06B9A8 4604903C */ c.lt.s $f18, $f4 +/* 0A04DC 7F06B9AC 00000000 */ nop +/* 0A04E0 7F06B9B0 45020033 */ bc1fl .L7F06BA80 +/* 0A04E4 7F06B9B4 44802000 */ mtc1 $zero, $f4 +/* 0A04E8 7F06B9B8 C5C20008 */ lwc1 $f2, 8($t6) +/* 0A04EC 7F06B9BC 4602603C */ c.lt.s $f12, $f2 +/* 0A04F0 7F06B9C0 00000000 */ nop +/* 0A04F4 7F06B9C4 45020053 */ bc1fl .L7F06BB14 +/* 0A04F8 7F06B9C8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A04FC 7F06B9CC C5400008 */ lwc1 $f0, 8($t2) +/* 0A0500 7F06B9D0 4602003C */ c.lt.s $f0, $f2 +/* 0A0504 7F06B9D4 00000000 */ nop +/* 0A0508 7F06B9D8 4502000C */ bc1fl .L7F06BA0C +/* 0A050C 7F06B9DC C5600008 */ lwc1 $f0, 8($t3) +/* 0A0510 7F06B9E0 4600603C */ c.lt.s $f12, $f0 +/* 0A0514 7F06B9E4 3C013880 */ li $at, 0x38800000 # 0.000061 +/* 0A0518 7F06B9E8 45020008 */ bc1fl .L7F06BA0C +/* 0A051C 7F06B9EC C5600008 */ lwc1 $f0, 8($t3) +/* 0A0520 7F06B9F0 44813000 */ mtc1 $at, $f6 +/* 0A0524 7F06B9F4 00000000 */ nop +/* 0A0528 7F06B9F8 46066201 */ sub.s $f8, $f12, $f6 +/* 0A052C 7F06B9FC E5480008 */ swc1 $f8, 8($t2) +/* 0A0530 7F06BA00 8FAF0110 */ lw $t7, 0x110($sp) +/* 0A0534 7F06BA04 C5E20008 */ lwc1 $f2, 8($t7) +/* 0A0538 7F06BA08 C5600008 */ lwc1 $f0, 8($t3) +.L7F06BA0C: +/* 0A053C 7F06BA0C 4602003C */ c.lt.s $f0, $f2 +/* 0A0540 7F06BA10 00000000 */ nop +/* 0A0544 7F06BA14 45020014 */ bc1fl .L7F06BA68 +/* 0A0548 7F06BA18 3C013780 */ lui $at, 0x3780 +/* 0A054C 7F06BA1C 4600603C */ c.lt.s $f12, $f0 +/* 0A0550 7F06BA20 00000000 */ nop +/* 0A0554 7F06BA24 45020010 */ bc1fl .L7F06BA68 +/* 0A0558 7F06BA28 3C013780 */ li $at, 0x37800000 # 0.000015 +/* 0A055C 7F06BA2C 460E803C */ c.lt.s $f16, $f14 +/* 0A0560 7F06BA30 3C013800 */ li $at, 0x38000000 # 0.000031 +/* 0A0564 7F06BA34 45020008 */ bc1fl .L7F06BA58 +/* 0A0568 7F06BA38 44813000 */ mtc1 $at, $f6 +/* 0A056C 7F06BA3C 3C0138C0 */ li $at, 0x38C00000 # 0.000092 +/* 0A0570 7F06BA40 44815000 */ mtc1 $at, $f10 +/* 0A0574 7F06BA44 00000000 */ nop +/* 0A0578 7F06BA48 460A6101 */ sub.s $f4, $f12, $f10 +/* 0A057C 7F06BA4C 10000005 */ b .L7F06BA64 +/* 0A0580 7F06BA50 E5640008 */ swc1 $f4, 8($t3) +/* 0A0584 7F06BA54 44813000 */ mtc1 $at, $f6 +.L7F06BA58: +/* 0A0588 7F06BA58 00000000 */ nop +/* 0A058C 7F06BA5C 46066201 */ sub.s $f8, $f12, $f6 +/* 0A0590 7F06BA60 E5680008 */ swc1 $f8, 8($t3) +.L7F06BA64: +/* 0A0594 7F06BA64 3C013780 */ li $at, 0x37800000 # 0.000015 +.L7F06BA68: +/* 0A0598 7F06BA68 44819000 */ mtc1 $at, $f18 +/* 0A059C 7F06BA6C 8FB80110 */ lw $t8, 0x110($sp) +/* 0A05A0 7F06BA70 46126281 */ sub.s $f10, $f12, $f18 +/* 0A05A4 7F06BA74 10000026 */ b .L7F06BB10 +/* 0A05A8 7F06BA78 E70A0008 */ swc1 $f10, 8($t8) +/* 0A05AC 7F06BA7C 44802000 */ mtc1 $zero, $f4 +.L7F06BA80: +/* 0A05B0 7F06BA80 8FB90110 */ lw $t9, 0x110($sp) +/* 0A05B4 7F06BA84 4612203E */ c.le.s $f4, $f18 +/* 0A05B8 7F06BA88 00000000 */ nop +/* 0A05BC 7F06BA8C 45020021 */ bc1fl .L7F06BB14 +/* 0A05C0 7F06BA90 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A05C4 7F06BA94 C7220008 */ lwc1 $f2, 8($t9) +/* 0A05C8 7F06BA98 3C013780 */ li $at, 0x37800000 # 0.000015 +/* 0A05CC 7F06BA9C 460C103C */ c.lt.s $f2, $f12 +/* 0A05D0 7F06BAA0 00000000 */ nop +/* 0A05D4 7F06BAA4 4502001B */ bc1fl .L7F06BB14 +/* 0A05D8 7F06BAA8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A05DC 7F06BAAC 44819000 */ mtc1 $at, $f18 +/* 0A05E0 7F06BAB0 460E603C */ c.lt.s $f12, $f14 +/* 0A05E4 7F06BAB4 46121181 */ sub.s $f6, $f2, $f18 +/* 0A05E8 7F06BAB8 45000009 */ bc1f .L7F06BAE0 +/* 0A05EC 7F06BABC E5260008 */ swc1 $f6, 8($t1) +/* 0A05F0 7F06BAC0 C5400008 */ lwc1 $f0, 8($t2) +/* 0A05F4 7F06BAC4 C5280008 */ lwc1 $f8, 8($t1) +/* 0A05F8 7F06BAC8 4608003C */ c.lt.s $f0, $f8 +/* 0A05FC 7F06BACC 00000000 */ nop +/* 0A0600 7F06BAD0 45020004 */ bc1fl .L7F06BAE4 +/* 0A0604 7F06BAD4 4610603C */ c.lt.s $f12, $f16 +/* 0A0608 7F06BAD8 46120281 */ sub.s $f10, $f0, $f18 +/* 0A060C 7F06BADC E52A0008 */ swc1 $f10, 8($t1) +.L7F06BAE0: +/* 0A0610 7F06BAE0 4610603C */ c.lt.s $f12, $f16 +.L7F06BAE4: +/* 0A0614 7F06BAE4 00000000 */ nop +/* 0A0618 7F06BAE8 4502000A */ bc1fl .L7F06BB14 +/* 0A061C 7F06BAEC 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A0620 7F06BAF0 C5600008 */ lwc1 $f0, 8($t3) +/* 0A0624 7F06BAF4 C5240008 */ lwc1 $f4, 8($t1) +/* 0A0628 7F06BAF8 4604003C */ c.lt.s $f0, $f4 +/* 0A062C 7F06BAFC 00000000 */ nop +/* 0A0630 7F06BB00 45020004 */ bc1fl .L7F06BB14 +/* 0A0634 7F06BB04 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A0638 7F06BB08 46120181 */ sub.s $f6, $f0, $f18 +/* 0A063C 7F06BB0C E5260008 */ swc1 $f6, 8($t1) +.L7F06BB10: +/* 0A0640 7F06BB10 8FBF0024 */ lw $ra, 0x24($sp) +.L7F06BB14: +/* 0A0644 7F06BB14 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0A0648 7F06BB18 8FB0001C */ lw $s0, 0x1c($sp) +/* 0A064C 7F06BB1C 8FB10020 */ lw $s1, 0x20($sp) +/* 0A0650 7F06BB20 03E00008 */ jr $ra +/* 0A0654 7F06BB24 27BD0118 */ addiu $sp, $sp, 0x118 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06BB28(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06BB28 +/* 0A0658 7F06BB28 10800035 */ beqz $a0, .L7F06BC00 +/* 0A065C 7F06BB2C 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0A0660 7F06BB30 8C8E000C */ lw $t6, 0xc($a0) +/* 0A0664 7F06BB34 00801025 */ move $v0, $a0 +/* 0A0668 7F06BB38 27A60020 */ addiu $a2, $sp, 0x20 +/* 0A066C 7F06BB3C 11C00006 */ beqz $t6, .L7F06BB58 +/* 0A0670 7F06BB40 3C01CF80 */ li $at, 0xCF800000 # -4294967296.000000 +/* 0A0674 7F06BB44 8C43000C */ lw $v1, 0xc($v0) +/* 0A0678 7F06BB48 00601025 */ move $v0, $v1 +.L7F06BB4C: +/* 0A067C 7F06BB4C 8C63000C */ lw $v1, 0xc($v1) +/* 0A0680 7F06BB50 5460FFFE */ bnezl $v1, .L7F06BB4C +/* 0A0684 7F06BB54 00601025 */ move $v0, $v1 +.L7F06BB58: +/* 0A0688 7F06BB58 27A30034 */ addiu $v1, $sp, 0x34 +/* 0A068C 7F06BB5C AFA40040 */ sw $a0, 0x40($sp) +/* 0A0690 7F06BB60 AC830010 */ sw $v1, 0x10($a0) +/* 0A0694 7F06BB64 AFA20030 */ sw $v0, 0x30($sp) +/* 0A0698 7F06BB68 44816000 */ mtc1 $at, $f12 +/* 0A069C 7F06BB6C AC46000C */ sw $a2, 0xc($v0) +.L7F06BB70: +/* 0A06A0 7F06BB70 8C65000C */ lw $a1, 0xc($v1) +/* 0A06A4 7F06BB74 00001025 */ move $v0, $zero +/* 0A06A8 7F06BB78 46006006 */ mov.s $f0, $f12 +/* 0A06AC 7F06BB7C 10A6000B */ beq $a1, $a2, .L7F06BBAC +/* 0A06B0 7F06BB80 00A02025 */ move $a0, $a1 +/* 0A06B4 7F06BB84 C4820008 */ lwc1 $f2, 8($a0) +.L7F06BB88: +/* 0A06B8 7F06BB88 4602003C */ c.lt.s $f0, $f2 +/* 0A06BC 7F06BB8C 00000000 */ nop +/* 0A06C0 7F06BB90 45020004 */ bc1fl .L7F06BBA4 +/* 0A06C4 7F06BB94 8C84000C */ lw $a0, 0xc($a0) +/* 0A06C8 7F06BB98 46001006 */ mov.s $f0, $f2 +/* 0A06CC 7F06BB9C 00801025 */ move $v0, $a0 +/* 0A06D0 7F06BBA0 8C84000C */ lw $a0, 0xc($a0) +.L7F06BBA4: +/* 0A06D4 7F06BBA4 5486FFF8 */ bnel $a0, $a2, .L7F06BB88 +/* 0A06D8 7F06BBA8 C4820008 */ lwc1 $f2, 8($a0) +.L7F06BBAC: +/* 0A06DC 7F06BBAC 1040000E */ beqz $v0, .L7F06BBE8 +/* 0A06E0 7F06BBB0 00000000 */ nop +/* 0A06E4 7F06BBB4 8C4F0010 */ lw $t7, 0x10($v0) +/* 0A06E8 7F06BBB8 8C58000C */ lw $t8, 0xc($v0) +/* 0A06EC 7F06BBBC 00402825 */ move $a1, $v0 +/* 0A06F0 7F06BBC0 AF0F0010 */ sw $t7, 0x10($t8) +/* 0A06F4 7F06BBC4 8C59000C */ lw $t9, 0xc($v0) +/* 0A06F8 7F06BBC8 8C480010 */ lw $t0, 0x10($v0) +/* 0A06FC 7F06BBCC AD19000C */ sw $t9, 0xc($t0) +/* 0A0700 7F06BBD0 AC430010 */ sw $v1, 0x10($v0) +/* 0A0704 7F06BBD4 8C69000C */ lw $t1, 0xc($v1) +/* 0A0708 7F06BBD8 AC49000C */ sw $t1, 0xc($v0) +/* 0A070C 7F06BBDC 8C6A000C */ lw $t2, 0xc($v1) +/* 0A0710 7F06BBE0 AD420010 */ sw $v0, 0x10($t2) +/* 0A0714 7F06BBE4 AC62000C */ sw $v0, 0xc($v1) +.L7F06BBE8: +/* 0A0718 7F06BBE8 14A6FFE1 */ bne $a1, $a2, .L7F06BB70 +/* 0A071C 7F06BBEC 00A01825 */ move $v1, $a1 +/* 0A0720 7F06BBF0 8FA40040 */ lw $a0, 0x40($sp) +/* 0A0724 7F06BBF4 AC800010 */ sw $zero, 0x10($a0) +/* 0A0728 7F06BBF8 8FAC0030 */ lw $t4, 0x30($sp) +/* 0A072C 7F06BBFC AD80000C */ sw $zero, 0xc($t4) +.L7F06BC00: +/* 0A0730 7F06BC00 00801025 */ move $v0, $a0 +/* 0A0734 7F06BC04 03E00008 */ jr $ra +/* 0A0738 7F06BC08 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +void drawjointlist(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80054538*/ +glabel obj_table_jointlist +.word .L7F06BD44 +.word .L7F06BD44 +.word .L7F06BD44 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD44 +.word .L7F06BD44 +.word .L7F06BD44 +.word .L7F06BD44 +.word .L7F06BD44 +.word .L7F06BD44 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD44 +.word .L7F06BD68 +.word .L7F06BD68 +.word .L7F06BD68 + +.text +glabel drawjointlist +/* 0A073C 7F06BC0C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A0740 7F06BC10 AFBF002C */ sw $ra, 0x2c($sp) +/* 0A0744 7F06BC14 AFB40028 */ sw $s4, 0x28($sp) +/* 0A0748 7F06BC18 AFB30024 */ sw $s3, 0x24($sp) +/* 0A074C 7F06BC1C AFB20020 */ sw $s2, 0x20($sp) +/* 0A0750 7F06BC20 AFB1001C */ sw $s1, 0x1c($sp) +/* 0A0754 7F06BC24 AFB00018 */ sw $s0, 0x18($sp) +/* 0A0758 7F06BC28 8C8E000C */ lw $t6, 0xc($a0) +/* 0A075C 7F06BC2C 0080A025 */ move $s4, $a0 +/* 0A0760 7F06BC30 00A09825 */ move $s3, $a1 +/* 0A0764 7F06BC34 15C00005 */ bnez $t6, .L7F06BC4C +/* 0A0768 7F06BC38 3C048005 */ lui $a0, %hi(aDrawjointlistNoGfxlist) +/* 0A076C 7F06BC3C 0C0033D1 */ jal osSyncPrintf +/* 0A0770 7F06BC40 24844420 */ addiu $a0, %lo(aDrawjointlistNoGfxlist) # addiu $a0, $a0, 0x4420 +/* 0A0774 7F06BC44 0FC1B11B */ jal return_null +/* 0A0778 7F06BC48 00000000 */ nop +.L7F06BC4C: +/* 0A077C 7F06BC4C 52600065 */ beql $s3, $zero, .L7F06BDE4 +/* 0A0780 7F06BC50 8FBF002C */ lw $ra, 0x2c($sp) +/* 0A0784 7F06BC54 8E660000 */ lw $a2, ($s3) +.L7F06BC58: +/* 0A0788 7F06BC58 8E710004 */ lw $s1, 4($s3) +/* 0A078C 7F06BC5C 3C048005 */ lui $a0, %hi(aDrawjointlistNoObject0xX) +/* 0A0790 7F06BC60 8CC50008 */ lw $a1, 8($a2) +/* 0A0794 7F06BC64 2484443C */ addiu $a0, %lo(aDrawjointlistNoObject0xX) # addiu $a0, $a0, 0x443c +/* 0A0798 7F06BC68 02208025 */ move $s0, $s1 +/* 0A079C 7F06BC6C 54A00008 */ bnezl $a1, .L7F06BC90 +/* 0A07A0 7F06BC70 8CB8001C */ lw $t8, 0x1c($a1) +/* 0A07A4 7F06BC74 0C0033D1 */ jal osSyncPrintf +/* 0A07A8 7F06BC78 00C02825 */ move $a1, $a2 +/* 0A07AC 7F06BC7C 0FC1B11B */ jal return_null +/* 0A07B0 7F06BC80 00000000 */ nop +/* 0A07B4 7F06BC84 8E6F0000 */ lw $t7, ($s3) +/* 0A07B8 7F06BC88 8DE50008 */ lw $a1, 8($t7) +/* 0A07BC 7F06BC8C 8CB8001C */ lw $t8, 0x1c($a1) +.L7F06BC90: +/* 0A07C0 7F06BC90 3C048005 */ lui $a0, %hi(aDrawjointlistObjectNotInitialised0) +/* 0A07C4 7F06BC94 57000006 */ bnezl $t8, .L7F06BCB0 +/* 0A07C8 7F06BC98 8E990018 */ lw $t9, 0x18($s4) +/* 0A07CC 7F06BC9C 0C0033D1 */ jal osSyncPrintf +/* 0A07D0 7F06BCA0 24844460 */ addiu $a0, %lo(aDrawjointlistObjectNotInitialised0) # addiu $a0, $a0, 0x4460 +/* 0A07D4 7F06BCA4 0FC1B11B */ jal return_null +/* 0A07D8 7F06BCA8 00000000 */ nop +/* 0A07DC 7F06BCAC 8E990018 */ lw $t9, 0x18($s4) +.L7F06BCB0: +/* 0A07E0 7F06BCB0 02202825 */ move $a1, $s1 +/* 0A07E4 7F06BCB4 5320000B */ beql $t9, $zero, .L7F06BCE4 +/* 0A07E8 7F06BCB8 8E82000C */ lw $v0, 0xc($s4) +/* 0A07EC 7F06BCBC 0FC1B3A4 */ jal getjointsize +/* 0A07F0 7F06BCC0 8E640000 */ lw $a0, ($s3) +/* 0A07F4 7F06BCC4 C6640008 */ lwc1 $f4, 8($s3) +/* 0A07F8 7F06BCC8 4600203C */ c.lt.s $f4, $f0 +/* 0A07FC 7F06BCCC 00000000 */ nop +/* 0A0800 7F06BCD0 4500000E */ bc1f .L7F06BD0C +/* 0A0804 7F06BCD4 00000000 */ nop +/* 0A0808 7F06BCD8 1000000C */ b .L7F06BD0C +/* 0A080C 7F06BCDC 00008025 */ move $s0, $zero +/* 0A0810 7F06BCE0 8E82000C */ lw $v0, 0xc($s4) +.L7F06BCE4: +/* 0A0814 7F06BCE4 3C09BC00 */ lui $t1, (0xBC000C06 >> 16) # lui $t1, 0xbc00 +/* 0A0818 7F06BCE8 35290C06 */ ori $t1, (0xBC000C06 & 0xFFFF) # ori $t1, $t1, 0xc06 +/* 0A081C 7F06BCEC 24480008 */ addiu $t0, $v0, 8 +/* 0A0820 7F06BCF0 AE88000C */ sw $t0, 0xc($s4) +/* 0A0824 7F06BCF4 AC490000 */ sw $t1, ($v0) +/* 0A0828 7F06BCF8 8E6A0000 */ lw $t2, ($s3) +/* 0A082C 7F06BCFC 00409025 */ move $s2, $v0 +/* 0A0830 7F06BD00 0C003A2C */ jal osVirtualToPhysical +/* 0A0834 7F06BD04 8D44000C */ lw $a0, 0xc($t2) +/* 0A0838 7F06BD08 AE420004 */ sw $v0, 4($s2) +.L7F06BD0C: +/* 0A083C 7F06BD0C 52000032 */ beql $s0, $zero, .L7F06BDD8 +/* 0A0840 7F06BD10 8E73000C */ lw $s3, 0xc($s3) +/* 0A0844 7F06BD14 96020000 */ lhu $v0, ($s0) +.L7F06BD18: +/* 0A0848 7F06BD18 24120001 */ li $s2, 1 +/* 0A084C 7F06BD1C 304B00FF */ andi $t3, $v0, 0xff +/* 0A0850 7F06BD20 256CFFFF */ addiu $t4, $t3, -1 +/* 0A0854 7F06BD24 2D810018 */ sltiu $at, $t4, 0x18 +/* 0A0858 7F06BD28 1020000F */ beqz $at, .L7F06BD68 +/* 0A085C 7F06BD2C 000C6080 */ sll $t4, $t4, 2 +/* 0A0860 7F06BD30 3C018005 */ lui $at, %hi(obj_table_jointlist) +/* 0A0864 7F06BD34 002C0821 */ addu $at, $at, $t4 +/* 0A0868 7F06BD38 8C2C4538 */ lw $t4, %lo(obj_table_jointlist)($at) +.L7F06BD3C: +/* 0A086C 7F06BD3C 01800008 */ jr $t4 +/* 0A0870 7F06BD40 00000000 */ nop +.L7F06BD44: +/* 0A0874 7F06BD44 16110006 */ bne $s0, $s1, .L7F06BD60 +/* 0A0878 7F06BD48 02802025 */ move $a0, $s4 +/* 0A087C 7F06BD4C 8E650000 */ lw $a1, ($s3) +/* 0A0880 7F06BD50 0FC1D14D */ jal sub_GAME_7F074534 +/* 0A0884 7F06BD54 02003025 */ move $a2, $s0 +/* 0A0888 7F06BD58 10000007 */ b .L7F06BD78 +/* 0A088C 7F06BD5C 00000000 */ nop +.L7F06BD60: +/* 0A0890 7F06BD60 10000005 */ b .L7F06BD78 +/* 0A0894 7F06BD64 00009025 */ move $s2, $zero +def_7F06BD3C: +.L7F06BD68: +/* 0A0898 7F06BD68 02802025 */ move $a0, $s4 +/* 0A089C 7F06BD6C 8E650000 */ lw $a1, ($s3) +/* 0A08A0 7F06BD70 0FC1D14D */ jal sub_GAME_7F074534 +/* 0A08A4 7F06BD74 02003025 */ move $a2, $s0 +.L7F06BD78: +/* 0A08A8 7F06BD78 12400006 */ beqz $s2, .L7F06BD94 +/* 0A08AC 7F06BD7C 00000000 */ nop +/* 0A08B0 7F06BD80 8E020014 */ lw $v0, 0x14($s0) +/* 0A08B4 7F06BD84 10400003 */ beqz $v0, .L7F06BD94 +/* 0A08B8 7F06BD88 00000000 */ nop +/* 0A08BC 7F06BD8C 1000000F */ b .L7F06BDCC +/* 0A08C0 7F06BD90 00408025 */ move $s0, $v0 +.L7F06BD94: +/* 0A08C4 7F06BD94 1200000D */ beqz $s0, .L7F06BDCC +/* 0A08C8 7F06BD98 00000000 */ nop +.L7F06BD9C: +/* 0A08CC 7F06BD9C 56110004 */ bnel $s0, $s1, .L7F06BDB0 +/* 0A08D0 7F06BDA0 8E02000C */ lw $v0, 0xc($s0) +/* 0A08D4 7F06BDA4 10000009 */ b .L7F06BDCC +/* 0A08D8 7F06BDA8 00008025 */ move $s0, $zero +/* 0A08DC 7F06BDAC 8E02000C */ lw $v0, 0xc($s0) +.L7F06BDB0: +/* 0A08E0 7F06BDB0 50400004 */ beql $v0, $zero, .L7F06BDC4 +/* 0A08E4 7F06BDB4 8E100008 */ lw $s0, 8($s0) +/* 0A08E8 7F06BDB8 10000004 */ b .L7F06BDCC +/* 0A08EC 7F06BDBC 00408025 */ move $s0, $v0 +/* 0A08F0 7F06BDC0 8E100008 */ lw $s0, 8($s0) +.L7F06BDC4: +/* 0A08F4 7F06BDC4 1600FFF5 */ bnez $s0, .L7F06BD9C +/* 0A08F8 7F06BDC8 00000000 */ nop +.L7F06BDCC: +/* 0A08FC 7F06BDCC 5600FFD2 */ bnezl $s0, .L7F06BD18 +/* 0A0900 7F06BDD0 96020000 */ lhu $v0, ($s0) +/* 0A0904 7F06BDD4 8E73000C */ lw $s3, 0xc($s3) +.L7F06BDD8: +/* 0A0908 7F06BDD8 5660FF9F */ bnezl $s3, .L7F06BC58 +/* 0A090C 7F06BDDC 8E660000 */ lw $a2, ($s3) +/* 0A0910 7F06BDE0 8FBF002C */ lw $ra, 0x2c($sp) +.L7F06BDE4: +/* 0A0914 7F06BDE4 8FB00018 */ lw $s0, 0x18($sp) +/* 0A0918 7F06BDE8 8FB1001C */ lw $s1, 0x1c($sp) +/* 0A091C 7F06BDEC 8FB20020 */ lw $s2, 0x20($sp) +/* 0A0920 7F06BDF0 8FB30024 */ lw $s3, 0x24($sp) +/* 0A0924 7F06BDF4 8FB40028 */ lw $s4, 0x28($sp) +/* 0A0928 7F06BDF8 03E00008 */ jr $ra +/* 0A092C 7F06BDFC 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void probably_damage_detail_blood_effect_related(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80054598*/ +glabel jpt_damage_detail +.word .L7F06BEF4 +.word .L7F06BEF4 +.word .L7F06BEF4 +.word .L7F06BFC8 +.word .L7F06BFC8 +.word .L7F06BFC8 +.word .L7F06BFC8 +.word .L7F06BF94 +.word .L7F06BFC8 +.word .L7F06BF04 +.word .L7F06BEFC +.word .L7F06BEFC +.word .L7F06BEFC +.word .L7F06BEFC +.word .L7F06BEFC +.word .L7F06BEFC +.word .L7F06BF4C +.word .L7F06BFA8 +.word .L7F06BFC8 +.word .L7F06BFC8 +.word .L7F06BEF4 +.word .L7F06BFC8 +.word .L7F06BFBC +.word .L7F06BFC8 + +/*D:800545F8*/ +glabel D_800545F8 +.word 0,0 + +.text +glabel probably_damage_detail_blood_effect_related +/* 0A0930 7F06BE00 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0A0934 7F06BE04 AFBF0034 */ sw $ra, 0x34($sp) +/* 0A0938 7F06BE08 AFB60030 */ sw $s6, 0x30($sp) +/* 0A093C 7F06BE0C AFB5002C */ sw $s5, 0x2c($sp) +/* 0A0940 7F06BE10 AFB40028 */ sw $s4, 0x28($sp) +/* 0A0944 7F06BE14 AFB30024 */ sw $s3, 0x24($sp) +/* 0A0948 7F06BE18 AFB20020 */ sw $s2, 0x20($sp) +/* 0A094C 7F06BE1C AFB1001C */ sw $s1, 0x1c($sp) +/* 0A0950 7F06BE20 AFB00018 */ sw $s0, 0x18($sp) +/* 0A0954 7F06BE24 AFA40038 */ sw $a0, 0x38($sp) +/* 0A0958 7F06BE28 AFA70044 */ sw $a3, 0x44($sp) +/* 0A095C 7F06BE2C 8C930000 */ lw $s3, ($a0) +/* 0A0960 7F06BE30 00A0A025 */ move $s4, $a1 +/* 0A0964 7F06BE34 00C0A825 */ move $s5, $a2 +/* 0A0968 7F06BE38 12600068 */ beqz $s3, .L7F06BFDC +/* 0A096C 7F06BE3C 8FB60048 */ lw $s6, 0x48($sp) +/* 0A0970 7F06BE40 8EC20000 */ lw $v0, ($s6) +.L7F06BE44: +/* 0A0974 7F06BE44 8E720004 */ lw $s2, 4($s3) +/* 0A0978 7F06BE48 24110001 */ li $s1, 1 +/* 0A097C 7F06BE4C 10400004 */ beqz $v0, .L7F06BE60 +/* 0A0980 7F06BE50 02408025 */ move $s0, $s2 +/* 0A0984 7F06BE54 00408025 */ move $s0, $v0 +/* 0A0988 7F06BE58 10000001 */ b .L7F06BE60 +/* 0A098C 7F06BE5C AEC00000 */ sw $zero, ($s6) +.L7F06BE60: +/* 0A0990 7F06BE60 5200005C */ beql $s0, $zero, .L7F06BFD4 +/* 0A0994 7F06BE64 8E730010 */ lw $s3, 0x10($s3) +.L7F06BE68: +/* 0A0998 7F06BE68 12200006 */ beqz $s1, .L7F06BE84 +/* 0A099C 7F06BE6C 00000000 */ nop +/* 0A09A0 7F06BE70 8E020014 */ lw $v0, 0x14($s0) +/* 0A09A4 7F06BE74 10400003 */ beqz $v0, .L7F06BE84 +/* 0A09A8 7F06BE78 00000000 */ nop +/* 0A09AC 7F06BE7C 10000011 */ b .L7F06BEC4 +/* 0A09B0 7F06BE80 00408025 */ move $s0, $v0 +.L7F06BE84: +/* 0A09B4 7F06BE84 1200000D */ beqz $s0, .L7F06BEBC +/* 0A09B8 7F06BE88 00000000 */ nop +.L7F06BE8C: +/* 0A09BC 7F06BE8C 56120004 */ bnel $s0, $s2, .L7F06BEA0 +/* 0A09C0 7F06BE90 8E02000C */ lw $v0, 0xc($s0) +/* 0A09C4 7F06BE94 10000009 */ b .L7F06BEBC +/* 0A09C8 7F06BE98 00008025 */ move $s0, $zero +/* 0A09CC 7F06BE9C 8E02000C */ lw $v0, 0xc($s0) +.L7F06BEA0: +/* 0A09D0 7F06BEA0 50400004 */ beql $v0, $zero, .L7F06BEB4 +/* 0A09D4 7F06BEA4 8E100008 */ lw $s0, 8($s0) +/* 0A09D8 7F06BEA8 10000004 */ b .L7F06BEBC +/* 0A09DC 7F06BEAC 00408025 */ move $s0, $v0 +/* 0A09E0 7F06BEB0 8E100008 */ lw $s0, 8($s0) +.L7F06BEB4: +/* 0A09E4 7F06BEB4 1600FFF5 */ bnez $s0, .L7F06BE8C +/* 0A09E8 7F06BEB8 00000000 */ nop +.L7F06BEBC: +/* 0A09EC 7F06BEBC 52000045 */ beql $s0, $zero, .L7F06BFD4 +/* 0A09F0 7F06BEC0 8E730010 */ lw $s3, 0x10($s3) +.L7F06BEC4: +/* 0A09F4 7F06BEC4 96020000 */ lhu $v0, ($s0) +/* 0A09F8 7F06BEC8 24110001 */ li $s1, 1 +/* 0A09FC 7F06BECC 304F00FF */ andi $t7, $v0, 0xff +/* 0A0A00 7F06BED0 25F8FFFF */ addiu $t8, $t7, -1 +/* 0A0A04 7F06BED4 2F010018 */ sltiu $at, $t8, 0x18 +/* 0A0A08 7F06BED8 1020003B */ beqz $at, .L7F06BFC8 +/* 0A0A0C 7F06BEDC 0018C080 */ sll $t8, $t8, 2 +/* 0A0A10 7F06BEE0 3C018005 */ lui $at, %hi(jpt_damage_detail) +/* 0A0A14 7F06BEE4 00380821 */ addu $at, $at, $t8 +/* 0A0A18 7F06BEE8 8C384598 */ lw $t8, %lo(jpt_damage_detail)($at) +.L7F06BEEC: +/* 0A0A1C 7F06BEEC 03000008 */ jr $t8 +/* 0A0A20 7F06BEF0 00000000 */ nop +.L7F06BEF4: +/* 0A0A24 7F06BEF4 10000034 */ b .L7F06BFC8 +/* 0A0A28 7F06BEF8 00008825 */ move $s1, $zero +.L7F06BEFC: +/* 0A0A2C 7F06BEFC 10000032 */ b .L7F06BFC8 +/* 0A0A30 7F06BF00 00008825 */ move $s1, $zero +.L7F06BF04: +/* 0A0A34 7F06BF04 8E640000 */ lw $a0, ($s3) +/* 0A0A38 7F06BF08 02002825 */ move $a1, $s0 +/* 0A0A3C 7F06BF0C 02803025 */ move $a2, $s4 +/* 0A0A40 7F06BF10 0FC1D31A */ jal sub_GAME_7F074C68 +/* 0A0A44 7F06BF14 02A03825 */ move $a3, $s5 +/* 0A0A48 7F06BF18 1040000A */ beqz $v0, .L7F06BF44 +/* 0A0A4C 7F06BF1C 00000000 */ nop +/* 0A0A50 7F06BF20 8E790000 */ lw $t9, ($s3) +/* 0A0A54 7F06BF24 8FA80044 */ lw $t0, 0x44($sp) +/* 0A0A58 7F06BF28 AD190000 */ sw $t9, ($t0) +/* 0A0A5C 7F06BF2C AED00000 */ sw $s0, ($s6) +/* 0A0A60 7F06BF30 8FA90038 */ lw $t1, 0x38($sp) +/* 0A0A64 7F06BF34 AD330000 */ sw $s3, ($t1) +/* 0A0A68 7F06BF38 8E0A0004 */ lw $t2, 4($s0) +/* 0A0A6C 7F06BF3C 1000002A */ b .L7F06BFE8 +/* 0A0A70 7F06BF40 8D420000 */ lw $v0, ($t2) +.L7F06BF44: +/* 0A0A74 7F06BF44 10000020 */ b .L7F06BFC8 +/* 0A0A78 7F06BF48 00008825 */ move $s1, $zero +.L7F06BF4C: +/* 0A0A7C 7F06BF4C 8E640000 */ lw $a0, ($s3) +/* 0A0A80 7F06BF50 02002825 */ move $a1, $s0 +/* 0A0A84 7F06BF54 02803025 */ move $a2, $s4 +/* 0A0A88 7F06BF58 0FC1D32B */ jal sub_GAME_7F074CAC +/* 0A0A8C 7F06BF5C 02A03825 */ move $a3, $s5 +/* 0A0A90 7F06BF60 1040000A */ beqz $v0, .L7F06BF8C +/* 0A0A94 7F06BF64 00000000 */ nop +/* 0A0A98 7F06BF68 8E6B0000 */ lw $t3, ($s3) +/* 0A0A9C 7F06BF6C 8FAC0044 */ lw $t4, 0x44($sp) +/* 0A0AA0 7F06BF70 AD8B0000 */ sw $t3, ($t4) +/* 0A0AA4 7F06BF74 AED00000 */ sw $s0, ($s6) +/* 0A0AA8 7F06BF78 8FAD0038 */ lw $t5, 0x38($sp) +/* 0A0AAC 7F06BF7C ADB30000 */ sw $s3, ($t5) +/* 0A0AB0 7F06BF80 8E0E0004 */ lw $t6, 4($s0) +/* 0A0AB4 7F06BF84 10000018 */ b .L7F06BFE8 +/* 0A0AB8 7F06BF88 8DC20000 */ lw $v0, ($t6) +.L7F06BF8C: +/* 0A0ABC 7F06BF8C 1000000E */ b .L7F06BFC8 +/* 0A0AC0 7F06BF90 00008825 */ move $s1, $zero +.L7F06BF94: +/* 0A0AC4 7F06BF94 8E640000 */ lw $a0, ($s3) +/* 0A0AC8 7F06BF98 0FC1BA5C */ jal sub_GAME_7F06E970 +/* 0A0ACC 7F06BF9C 02002825 */ move $a1, $s0 +/* 0A0AD0 7F06BFA0 10000009 */ b .L7F06BFC8 +/* 0A0AD4 7F06BFA4 00000000 */ nop +.L7F06BFA8: +/* 0A0AD8 7F06BFA8 8E640000 */ lw $a0, ($s3) +/* 0A0ADC 7F06BFAC 0FC1BA6F */ jal process_12_handle_switch +/* 0A0AE0 7F06BFB0 02002825 */ move $a1, $s0 +/* 0A0AE4 7F06BFB4 10000004 */ b .L7F06BFC8 +/* 0A0AE8 7F06BFB8 00000000 */ nop +.L7F06BFBC: +/* 0A0AEC 7F06BFBC 8E640000 */ lw $a0, ($s3) +/* 0A0AF0 7F06BFC0 0FC1BA82 */ jal process_17_pointer_to_head +/* 0A0AF4 7F06BFC4 02002825 */ move $a1, $s0 +def_7F06BEEC: +.L7F06BFC8: +/* 0A0AF8 7F06BFC8 1600FFA7 */ bnez $s0, .L7F06BE68 +/* 0A0AFC 7F06BFCC 00000000 */ nop +/* 0A0B00 7F06BFD0 8E730010 */ lw $s3, 0x10($s3) +.L7F06BFD4: +/* 0A0B04 7F06BFD4 5660FF9B */ bnezl $s3, .L7F06BE44 +/* 0A0B08 7F06BFD8 8EC20000 */ lw $v0, ($s6) +.L7F06BFDC: +/* 0A0B0C 7F06BFDC 8FAF0038 */ lw $t7, 0x38($sp) +/* 0A0B10 7F06BFE0 00001025 */ move $v0, $zero +/* 0A0B14 7F06BFE4 ADE00000 */ sw $zero, ($t7) +.L7F06BFE8: +/* 0A0B18 7F06BFE8 8FBF0034 */ lw $ra, 0x34($sp) +/* 0A0B1C 7F06BFEC 8FB00018 */ lw $s0, 0x18($sp) +/* 0A0B20 7F06BFF0 8FB1001C */ lw $s1, 0x1c($sp) +/* 0A0B24 7F06BFF4 8FB20020 */ lw $s2, 0x20($sp) +/* 0A0B28 7F06BFF8 8FB30024 */ lw $s3, 0x24($sp) +/* 0A0B2C 7F06BFFC 8FB40028 */ lw $s4, 0x28($sp) +/* 0A0B30 7F06C000 8FB5002C */ lw $s5, 0x2c($sp) +/* 0A0B34 7F06C004 8FB60030 */ lw $s6, 0x30($sp) +/* 0A0B38 7F06C008 03E00008 */ jr $ra +/* 0A0B3C 7F06C00C 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06C010(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06C010 +/* 0A0B40 7F06C010 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A0B44 7F06C014 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A0B48 7F06C018 8C830000 */ lw $v1, ($a0) +/* 0A0B4C 7F06C01C 8C62000C */ lw $v0, 0xc($v1) +/* 0A0B50 7F06C020 50400006 */ beql $v0, $zero, .L7F06C03C +/* 0A0B54 7F06C024 8FA20030 */ lw $v0, 0x30($sp) +/* 0A0B58 7F06C028 00401825 */ move $v1, $v0 +.L7F06C02C: +/* 0A0B5C 7F06C02C 8C42000C */ lw $v0, 0xc($v0) +/* 0A0B60 7F06C030 5440FFFE */ bnezl $v0, .L7F06C02C +/* 0A0B64 7F06C034 00401825 */ move $v1, $v0 +/* 0A0B68 7F06C038 8FA20030 */ lw $v0, 0x30($sp) +.L7F06C03C: +/* 0A0B6C 7F06C03C AC830000 */ sw $v1, ($a0) +/* 0A0B70 7F06C040 ACE00000 */ sw $zero, ($a3) +/* 0A0B74 7F06C044 AC400000 */ sw $zero, ($v0) +/* 0A0B78 7F06C048 0FC1AF80 */ jal probably_damage_detail_blood_effect_related +/* 0A0B7C 7F06C04C AFA20010 */ sw $v0, 0x10($sp) +/* 0A0B80 7F06C050 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A0B84 7F06C054 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0A0B88 7F06C058 03E00008 */ jr $ra +/* 0A0B8C 7F06C05C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06C060(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06C060 +/* 0A0B90 7F06C060 84A30014 */ lh $v1, 0x14($a1) +/* 0A0B94 7F06C064 28620001 */ slti $v0, $v1, 1 +/* 0A0B98 7F06C068 14400008 */ bnez $v0, .L7F06C08C +/* 0A0B9C 7F06C06C 00000000 */ nop +/* 0A0BA0 7F06C070 8C820010 */ lw $v0, 0x10($a0) +/* 0A0BA4 7F06C074 0002702B */ sltu $t6, $zero, $v0 +/* 0A0BA8 7F06C078 11C00004 */ beqz $t6, .L7F06C08C +/* 0A0BAC 7F06C07C 01C01025 */ move $v0, $t6 +/* 0A0BB0 7F06C080 848F0002 */ lh $t7, 2($a0) +/* 0A0BB4 7F06C084 01E3102A */ slt $v0, $t7, $v1 +/* 0A0BB8 7F06C088 38420001 */ xori $v0, $v0, 1 +.L7F06C08C: +/* 0A0BBC 7F06C08C 03E00008 */ jr $ra +/* 0A0BC0 7F06C090 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_obj_instance_controller_for_header(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_obj_instance_controller_for_header +/* 0A0BC4 7F06C094 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0A0BC8 7F06C098 3C0F8003 */ lui $t7, %hi(D_80036078) +/* 0A0BCC 7F06C09C 8DEF6078 */ lw $t7, %lo(D_80036078)($t7) +/* 0A0BD0 7F06C0A0 AFB60030 */ sw $s6, 0x30($sp) +/* 0A0BD4 7F06C0A4 AFB5002C */ sw $s5, 0x2c($sp) +/* 0A0BD8 7F06C0A8 240EFFFF */ li $t6, -1 +/* 0A0BDC 7F06C0AC 0080A825 */ move $s5, $a0 +/* 0A0BE0 7F06C0B0 AFBF0034 */ sw $ra, 0x34($sp) +/* 0A0BE4 7F06C0B4 AFB40028 */ sw $s4, 0x28($sp) +/* 0A0BE8 7F06C0B8 AFB30024 */ sw $s3, 0x24($sp) +/* 0A0BEC 7F06C0BC AFB20020 */ sw $s2, 0x20($sp) +/* 0A0BF0 7F06C0C0 AFB1001C */ sw $s1, 0x1c($sp) +/* 0A0BF4 7F06C0C4 AFB00018 */ sw $s0, 0x18($sp) +/* 0A0BF8 7F06C0C8 0000B025 */ move $s6, $zero +/* 0A0BFC 7F06C0CC AFA00040 */ sw $zero, 0x40($sp) +/* 0A0C00 7F06C0D0 11E00025 */ beqz $t7, .L7F06C168 +/* 0A0C04 7F06C0D4 A7AE003E */ sh $t6, 0x3e($sp) +/* 0A0C08 7F06C0D8 3C148003 */ lui $s4, %hi(D_80036074) +/* 0A0C0C 7F06C0DC 26946074 */ addiu $s4, %lo(D_80036074) # addiu $s4, $s4, 0x6074 +/* 0A0C10 7F06C0E0 8E840000 */ lw $a0, ($s4) +/* 0A0C14 7F06C0E4 00001025 */ move $v0, $zero +/* 0A0C18 7F06C0E8 3C068008 */ lui $a2, %hi(ptr_allocation_1) +/* 0A0C1C 7F06C0EC 2484FFE2 */ addiu $a0, $a0, -0x1e +/* 0A0C20 7F06C0F0 1880000C */ blez $a0, .L7F06C124 +/* 0A0C24 7F06C0F4 24050004 */ li $a1, 4 +/* 0A0C28 7F06C0F8 8CC69934 */ lw $a2, %lo(ptr_allocation_1)($a2) +/* 0A0C2C 7F06C0FC 00C01825 */ move $v1, $a2 +.L7F06C100: +/* 0A0C30 7F06C100 8C780008 */ lw $t8, 8($v1) +/* 0A0C34 7F06C104 17000003 */ bnez $t8, .L7F06C114 +/* 0A0C38 7F06C108 0002C940 */ sll $t9, $v0, 5 +/* 0A0C3C 7F06C10C 10000005 */ b .L7F06C124 +/* 0A0C40 7F06C110 0326B021 */ addu $s6, $t9, $a2 +.L7F06C114: +/* 0A0C44 7F06C114 24420001 */ addiu $v0, $v0, 1 +/* 0A0C48 7F06C118 0044082A */ slt $at, $v0, $a0 +/* 0A0C4C 7F06C11C 1420FFF8 */ bnez $at, .L7F06C100 +/* 0A0C50 7F06C120 24630020 */ addiu $v1, $v1, 0x20 +.L7F06C124: +/* 0A0C54 7F06C124 56C00005 */ bnezl $s6, .L7F06C13C +/* 0A0C58 7F06C128 86A20014 */ lh $v0, 0x14($s5) +/* 0A0C5C 7F06C12C 0C0025C8 */ jal mempAllocBytesInBank +/* 0A0C60 7F06C130 24040020 */ li $a0, 32 +/* 0A0C64 7F06C134 0040B025 */ move $s6, $v0 +/* 0A0C68 7F06C138 86A20014 */ lh $v0, 0x14($s5) +.L7F06C13C: +/* 0A0C6C 7F06C13C 24050004 */ li $a1, 4 +/* 0A0C70 7F06C140 1840002A */ blez $v0, .L7F06C1EC +/* 0A0C74 7F06C144 00022080 */ sll $a0, $v0, 2 +/* 0A0C78 7F06C148 2484000F */ addiu $a0, $a0, 0xf +/* 0A0C7C 7F06C14C 3488000F */ ori $t0, $a0, 0xf +/* 0A0C80 7F06C150 0C0025C8 */ jal mempAllocBytesInBank +/* 0A0C84 7F06C154 3904000F */ xori $a0, $t0, 0xf +/* 0A0C88 7F06C158 AFA20040 */ sw $v0, 0x40($sp) +/* 0A0C8C 7F06C15C 86AA0014 */ lh $t2, 0x14($s5) +/* 0A0C90 7F06C160 10000022 */ b .L7F06C1EC +/* 0A0C94 7F06C164 A7AA003E */ sh $t2, 0x3e($sp) +.L7F06C168: +/* 0A0C98 7F06C168 3C148003 */ lui $s4, %hi(D_80036074) +/* 0A0C9C 7F06C16C 26946074 */ addiu $s4, %lo(D_80036074) # addiu $s4, $s4, 0x6074 +/* 0A0CA0 7F06C170 8E8B0000 */ lw $t3, ($s4) +/* 0A0CA4 7F06C174 00008025 */ move $s0, $zero +/* 0A0CA8 7F06C178 00008825 */ move $s1, $zero +/* 0A0CAC 7F06C17C 1960001B */ blez $t3, .L7F06C1EC +/* 0A0CB0 7F06C180 3C138008 */ lui $s3, %hi(ptr_allocation_1) +/* 0A0CB4 7F06C184 26739934 */ addiu $s3, %lo(ptr_allocation_1) # addiu $s3, $s3, -0x66cc +/* 0A0CB8 7F06C188 8E660000 */ lw $a2, ($s3) +.L7F06C18C: +/* 0A0CBC 7F06C18C 00109140 */ sll $s2, $s0, 5 +/* 0A0CC0 7F06C190 00D16021 */ addu $t4, $a2, $s1 +/* 0A0CC4 7F06C194 8D8D0008 */ lw $t5, 8($t4) +/* 0A0CC8 7F06C198 02462021 */ addu $a0, $s2, $a2 +/* 0A0CCC 7F06C19C 55A0000E */ bnezl $t5, .L7F06C1D8 +/* 0A0CD0 7F06C1A0 8E980000 */ lw $t8, ($s4) +/* 0A0CD4 7F06C1A4 0FC1B018 */ jal sub_GAME_7F06C060 +/* 0A0CD8 7F06C1A8 02A02825 */ move $a1, $s5 +/* 0A0CDC 7F06C1AC 5040000A */ beql $v0, $zero, .L7F06C1D8 +/* 0A0CE0 7F06C1B0 8E980000 */ lw $t8, ($s4) +/* 0A0CE4 7F06C1B4 8E660000 */ lw $a2, ($s3) +/* 0A0CE8 7F06C1B8 00D11021 */ addu $v0, $a2, $s1 +/* 0A0CEC 7F06C1BC 8C4E0010 */ lw $t6, 0x10($v0) +/* 0A0CF0 7F06C1C0 0246B021 */ addu $s6, $s2, $a2 +/* 0A0CF4 7F06C1C4 AFAE0040 */ sw $t6, 0x40($sp) +/* 0A0CF8 7F06C1C8 844F0002 */ lh $t7, 2($v0) +/* 0A0CFC 7F06C1CC 10000007 */ b .L7F06C1EC +/* 0A0D00 7F06C1D0 A7AF003E */ sh $t7, 0x3e($sp) +/* 0A0D04 7F06C1D4 8E980000 */ lw $t8, ($s4) +.L7F06C1D8: +/* 0A0D08 7F06C1D8 26100001 */ addiu $s0, $s0, 1 +/* 0A0D0C 7F06C1DC 26310020 */ addiu $s1, $s1, 0x20 +/* 0A0D10 7F06C1E0 0218082A */ slt $at, $s0, $t8 +/* 0A0D14 7F06C1E4 5420FFE9 */ bnezl $at, .L7F06C18C +/* 0A0D18 7F06C1E8 8E660000 */ lw $a2, ($s3) +.L7F06C1EC: +/* 0A0D1C 7F06C1EC 12C00006 */ beqz $s6, .L7F06C208 +/* 0A0D20 7F06C1F0 02C02025 */ move $a0, $s6 +/* 0A0D24 7F06C1F4 02A02825 */ move $a1, $s5 +/* 0A0D28 7F06C1F8 0FC1D7DA */ jal sub_GAME_7F075F68 +/* 0A0D2C 7F06C1FC 8FA60040 */ lw $a2, 0x40($sp) +/* 0A0D30 7F06C200 87B9003E */ lh $t9, 0x3e($sp) +/* 0A0D34 7F06C204 A6D90002 */ sh $t9, 2($s6) +.L7F06C208: +/* 0A0D38 7F06C208 8FBF0034 */ lw $ra, 0x34($sp) +/* 0A0D3C 7F06C20C 02C01025 */ move $v0, $s6 +/* 0A0D40 7F06C210 8FB60030 */ lw $s6, 0x30($sp) +/* 0A0D44 7F06C214 8FB00018 */ lw $s0, 0x18($sp) +/* 0A0D48 7F06C218 8FB1001C */ lw $s1, 0x1c($sp) +/* 0A0D4C 7F06C21C 8FB20020 */ lw $s2, 0x20($sp) +/* 0A0D50 7F06C220 8FB30024 */ lw $s3, 0x24($sp) +/* 0A0D54 7F06C224 8FB40028 */ lw $s4, 0x28($sp) +/* 0A0D58 7F06C228 8FB5002C */ lw $s5, 0x2c($sp) +/* 0A0D5C 7F06C22C 03E00008 */ jr $ra +/* 0A0D60 7F06C230 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +void set_obj_instance_scale_to_zero(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_obj_instance_scale_to_zero +/* 0A0D64 7F06C234 03E00008 */ jr $ra +/* 0A0D68 7F06C238 AC800008 */ sw $zero, 8($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void get_aircraft_obj_instance_controller(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_aircraft_obj_instance_controller +/* 0A0D6C 7F06C23C 3C0E8003 */ lui $t6, %hi(D_80036078) +/* 0A0D70 7F06C240 8DCE6078 */ lw $t6, %lo(D_80036078)($t6) +/* 0A0D74 7F06C244 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A0D78 7F06C248 AFB00018 */ sw $s0, 0x18($sp) +/* 0A0D7C 7F06C24C AFBF001C */ sw $ra, 0x1c($sp) +/* 0A0D80 7F06C250 AFA40030 */ sw $a0, 0x30($sp) +/* 0A0D84 7F06C254 00008025 */ move $s0, $zero +/* 0A0D88 7F06C258 AFA00028 */ sw $zero, 0x28($sp) +/* 0A0D8C 7F06C25C 11C00028 */ beqz $t6, .L7F06C300 +/* 0A0D90 7F06C260 2408FFFF */ li $t0, -1 +/* 0A0D94 7F06C264 3C058003 */ lui $a1, %hi(D_80036070) +/* 0A0D98 7F06C268 8CA56070 */ lw $a1, %lo(D_80036070)($a1) +/* 0A0D9C 7F06C26C 00001025 */ move $v0, $zero +/* 0A0DA0 7F06C270 3C078008 */ lui $a3, %hi(ptr_allocation_0) +/* 0A0DA4 7F06C274 24A5FFF6 */ addiu $a1, $a1, -0xa +/* 0A0DA8 7F06C278 18A0000D */ blez $a1, .L7F06C2B0 +/* 0A0DAC 7F06C27C 00000000 */ nop +/* 0A0DB0 7F06C280 8CE79930 */ lw $a3, %lo(ptr_allocation_0)($a3) +/* 0A0DB4 7F06C284 00002025 */ move $a0, $zero +/* 0A0DB8 7F06C288 00E01825 */ move $v1, $a3 +.L7F06C28C: +/* 0A0DBC 7F06C28C 8C6F0008 */ lw $t7, 8($v1) +/* 0A0DC0 7F06C290 24420001 */ addiu $v0, $v0, 1 +/* 0A0DC4 7F06C294 0045082A */ slt $at, $v0, $a1 +/* 0A0DC8 7F06C298 15E00003 */ bnez $t7, .L7F06C2A8 +/* 0A0DCC 7F06C29C 246300BC */ addiu $v1, $v1, 0xbc +/* 0A0DD0 7F06C2A0 10000003 */ b .L7F06C2B0 +/* 0A0DD4 7F06C2A4 00878021 */ addu $s0, $a0, $a3 +.L7F06C2A8: +/* 0A0DD8 7F06C2A8 1420FFF8 */ bnez $at, .L7F06C28C +/* 0A0DDC 7F06C2AC 248400BC */ addiu $a0, $a0, 0xbc +.L7F06C2B0: +/* 0A0DE0 7F06C2B0 16000006 */ bnez $s0, .L7F06C2CC +/* 0A0DE4 7F06C2B4 240400C0 */ li $a0, 192 +/* 0A0DE8 7F06C2B8 24050004 */ li $a1, 4 +/* 0A0DEC 7F06C2BC 0C0025C8 */ jal mempAllocBytesInBank +/* 0A0DF0 7F06C2C0 A7A80026 */ sh $t0, 0x26($sp) +/* 0A0DF4 7F06C2C4 87A80026 */ lh $t0, 0x26($sp) +/* 0A0DF8 7F06C2C8 00408025 */ move $s0, $v0 +.L7F06C2CC: +/* 0A0DFC 7F06C2CC 8FB80030 */ lw $t8, 0x30($sp) +/* 0A0E00 7F06C2D0 24050004 */ li $a1, 4 +/* 0A0E04 7F06C2D4 87060014 */ lh $a2, 0x14($t8) +/* 0A0E08 7F06C2D8 18C00029 */ blez $a2, .L7F06C380 +/* 0A0E0C 7F06C2DC 00062080 */ sll $a0, $a2, 2 +/* 0A0E10 7F06C2E0 2484000F */ addiu $a0, $a0, 0xf +/* 0A0E14 7F06C2E4 3499000F */ ori $t9, $a0, 0xf +/* 0A0E18 7F06C2E8 0C0025C8 */ jal mempAllocBytesInBank +/* 0A0E1C 7F06C2EC 3B24000F */ xori $a0, $t9, 0xf +/* 0A0E20 7F06C2F0 8FAA0030 */ lw $t2, 0x30($sp) +/* 0A0E24 7F06C2F4 AFA20028 */ sw $v0, 0x28($sp) +/* 0A0E28 7F06C2F8 10000021 */ b .L7F06C380 +/* 0A0E2C 7F06C2FC 85480014 */ lh $t0, 0x14($t2) +.L7F06C300: +/* 0A0E30 7F06C300 3C058003 */ lui $a1, %hi(D_80036070) +/* 0A0E34 7F06C304 8CA56070 */ lw $a1, %lo(D_80036070)($a1) +/* 0A0E38 7F06C308 8FAB0030 */ lw $t3, 0x30($sp) +/* 0A0E3C 7F06C30C 00001825 */ move $v1, $zero +/* 0A0E40 7F06C310 18A0001B */ blez $a1, .L7F06C380 +/* 0A0E44 7F06C314 85660014 */ lh $a2, 0x14($t3) +/* 0A0E48 7F06C318 3C078008 */ lui $a3, %hi(ptr_allocation_0) +/* 0A0E4C 7F06C31C 8CE79930 */ lw $a3, %lo(ptr_allocation_0)($a3) +/* 0A0E50 7F06C320 00002025 */ move $a0, $zero +/* 0A0E54 7F06C324 00E01025 */ move $v0, $a3 +.L7F06C328: +/* 0A0E58 7F06C328 8C4C0008 */ lw $t4, 8($v0) +/* 0A0E5C 7F06C32C 24630001 */ addiu $v1, $v1, 1 +/* 0A0E60 7F06C330 55800010 */ bnezl $t4, .L7F06C374 +/* 0A0E64 7F06C334 0065082A */ slt $at, $v1, $a1 +/* 0A0E68 7F06C338 58C00009 */ blezl $a2, .L7F06C360 +/* 0A0E6C 7F06C33C 8C4F0010 */ lw $t7, 0x10($v0) +/* 0A0E70 7F06C340 8C4D0010 */ lw $t5, 0x10($v0) +/* 0A0E74 7F06C344 51A0000B */ beql $t5, $zero, .L7F06C374 +/* 0A0E78 7F06C348 0065082A */ slt $at, $v1, $a1 +/* 0A0E7C 7F06C34C 844E0002 */ lh $t6, 2($v0) +/* 0A0E80 7F06C350 01C6082A */ slt $at, $t6, $a2 +/* 0A0E84 7F06C354 54200007 */ bnezl $at, .L7F06C374 +/* 0A0E88 7F06C358 0065082A */ slt $at, $v1, $a1 +/* 0A0E8C 7F06C35C 8C4F0010 */ lw $t7, 0x10($v0) +.L7F06C360: +/* 0A0E90 7F06C360 00878021 */ addu $s0, $a0, $a3 +/* 0A0E94 7F06C364 AFAF0028 */ sw $t7, 0x28($sp) +/* 0A0E98 7F06C368 10000005 */ b .L7F06C380 +/* 0A0E9C 7F06C36C 84480002 */ lh $t0, 2($v0) +/* 0A0EA0 7F06C370 0065082A */ slt $at, $v1, $a1 +.L7F06C374: +/* 0A0EA4 7F06C374 248400BC */ addiu $a0, $a0, 0xbc +/* 0A0EA8 7F06C378 1420FFEB */ bnez $at, .L7F06C328 +/* 0A0EAC 7F06C37C 244200BC */ addiu $v0, $v0, 0xbc +.L7F06C380: +/* 0A0EB0 7F06C380 12000007 */ beqz $s0, .L7F06C3A0 +/* 0A0EB4 7F06C384 02002025 */ move $a0, $s0 +/* 0A0EB8 7F06C388 8FA50030 */ lw $a1, 0x30($sp) +/* 0A0EBC 7F06C38C 8FA60028 */ lw $a2, 0x28($sp) +/* 0A0EC0 7F06C390 0FC1D7EB */ jal sub_GAME_7F075FAC +/* 0A0EC4 7F06C394 A7A80026 */ sh $t0, 0x26($sp) +/* 0A0EC8 7F06C398 87A80026 */ lh $t0, 0x26($sp) +/* 0A0ECC 7F06C39C A6080002 */ sh $t0, 2($s0) +.L7F06C3A0: +/* 0A0ED0 7F06C3A0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A0ED4 7F06C3A4 02001025 */ move $v0, $s0 +/* 0A0ED8 7F06C3A8 8FB00018 */ lw $s0, 0x18($sp) +/* 0A0EDC 7F06C3AC 03E00008 */ jr $ra +/* 0A0EE0 7F06C3B0 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06C3B4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06C3B4 +/* 0A0EE4 7F06C3B4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A0EE8 7F06C3B8 AFA60020 */ sw $a2, 0x20($sp) +/* 0A0EEC 7F06C3BC 00A03025 */ move $a2, $a1 +/* 0A0EF0 7F06C3C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A0EF4 7F06C3C4 AFA5001C */ sw $a1, 0x1c($sp) +/* 0A0EF8 7F06C3C8 8C850008 */ lw $a1, 8($a0) +/* 0A0EFC 7F06C3CC AFA40018 */ sw $a0, 0x18($sp) +/* 0A0F00 7F06C3D0 0FC1D80C */ jal sub_GAME_7F076030 +/* 0A0F04 7F06C3D4 8FA70020 */ lw $a3, 0x20($sp) +/* 0A0F08 7F06C3D8 8FAE0020 */ lw $t6, 0x20($sp) +/* 0A0F0C 7F06C3DC 8FA40018 */ lw $a0, 0x18($sp) +/* 0A0F10 7F06C3E0 0FC1D74B */ jal unknown_object_microcode_handler +/* 0A0F14 7F06C3E4 8DC50000 */ lw $a1, ($t6) +/* 0A0F18 7F06C3E8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A0F1C 7F06C3EC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A0F20 7F06C3F0 03E00008 */ jr $ra +/* 0A0F24 7F06C3F4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void set_aircraft_obj_inst_scale_to_zero(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_aircraft_obj_inst_scale_to_zero +/* 0A0F28 7F06C3F8 03E00008 */ jr $ra +/* 0A0F2C 7F06C3FC AC800008 */ sw $zero, 8($a0) +) +#endif + + + + + +void set_80036084(s32 param_1) { + D_80036084 = param_1; +} + +void set_float_80036088(f32 param_1) { + D_80036088 = param_1; +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06C418(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06C418 +/* 0A0F48 7F06C418 00803025 */ move $a2, $a0 +/* 0A0F4C 7F06C41C 24040004 */ li $a0, 4 +/* 0A0F50 7F06C420 00001025 */ move $v0, $zero +/* 0A0F54 7F06C424 00A01825 */ move $v1, $a1 +.L7F06C428: +/* 0A0F58 7F06C428 8CCE0000 */ lw $t6, ($a2) +/* 0A0F5C 7F06C42C 24420001 */ addiu $v0, $v0, 1 +/* 0A0F60 7F06C430 24630010 */ addiu $v1, $v1, 0x10 +/* 0A0F64 7F06C434 AC6EFFF0 */ sw $t6, -0x10($v1) +/* 0A0F68 7F06C438 8CCF0004 */ lw $t7, 4($a2) +/* 0A0F6C 7F06C43C 24C60010 */ addiu $a2, $a2, 0x10 +/* 0A0F70 7F06C440 AC6FFFF4 */ sw $t7, -0xc($v1) +/* 0A0F74 7F06C444 8CD8FFF8 */ lw $t8, -8($a2) +/* 0A0F78 7F06C448 AC78FFF8 */ sw $t8, -8($v1) +/* 0A0F7C 7F06C44C 8CD9FFFC */ lw $t9, -4($a2) +/* 0A0F80 7F06C450 1444FFF5 */ bne $v0, $a0, .L7F06C428 +/* 0A0F84 7F06C454 AC79FFFC */ sw $t9, -4($v1) +/* 0A0F88 7F06C458 03E00008 */ jr $ra +/* 0A0F8C 7F06C45C 00000000 */ nop +) +#endif + + + + + +void set_8003608C(s32 param_1) { + D_8003608C = param_1; +} + +void return_null(void) { + return; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06C474(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06C474 +/* 0A0FA4 7F06C474 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A0FA8 7F06C478 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A0FAC 7F06C47C AFA40030 */ sw $a0, 0x30($sp) +/* 0A0FB0 7F06C480 0FC1B1A8 */ jal getsubmatrix +/* 0A0FB4 7F06C484 AFA50034 */ sw $a1, 0x34($sp) +/* 0A0FB8 7F06C488 C44E0030 */ lwc1 $f14, 0x30($v0) +/* 0A0FBC 7F06C48C C4500034 */ lwc1 $f16, 0x34($v0) +/* 0A0FC0 7F06C490 C4520038 */ lwc1 $f18, 0x38($v0) +/* 0A0FC4 7F06C494 46007387 */ neg.s $f14, $f14 +/* 0A0FC8 7F06C498 46008407 */ neg.s $f16, $f16 +/* 0A0FCC 7F06C49C 460E7102 */ mul.s $f4, $f14, $f14 +/* 0A0FD0 7F06C4A0 46009487 */ neg.s $f18, $f18 +/* 0A0FD4 7F06C4A4 E7B00020 */ swc1 $f16, 0x20($sp) +/* 0A0FD8 7F06C4A8 46108182 */ mul.s $f6, $f16, $f16 +/* 0A0FDC 7F06C4AC E7B2001C */ swc1 $f18, 0x1c($sp) +/* 0A0FE0 7F06C4B0 E7AE0024 */ swc1 $f14, 0x24($sp) +/* 0A0FE4 7F06C4B4 46129282 */ mul.s $f10, $f18, $f18 +/* 0A0FE8 7F06C4B8 46062200 */ add.s $f8, $f4, $f6 +/* 0A0FEC 7F06C4BC 0C007DF8 */ jal sqrtf +/* 0A0FF0 7F06C4C0 460A4300 */ add.s $f12, $f8, $f10 +/* 0A0FF4 7F06C4C4 44801000 */ mtc1 $zero, $f2 +/* 0A0FF8 7F06C4C8 8FA50034 */ lw $a1, 0x34($sp) +/* 0A0FFC 7F06C4CC C7AE0024 */ lwc1 $f14, 0x24($sp) +/* 0A1000 7F06C4D0 4600103C */ c.lt.s $f2, $f0 +/* 0A1004 7F06C4D4 C7B00020 */ lwc1 $f16, 0x20($sp) +/* 0A1008 7F06C4D8 C7B2001C */ lwc1 $f18, 0x1c($sp) +/* 0A100C 7F06C4DC 8FAE0030 */ lw $t6, 0x30($sp) +/* 0A1010 7F06C4E0 45020010 */ bc1fl .L7F06C524 +/* 0A1014 7F06C4E4 E4A20000 */ swc1 $f2, ($a1) +/* 0A1018 7F06C4E8 C5C60014 */ lwc1 $f6, 0x14($t6) +/* 0A101C 7F06C4EC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A1020 7F06C4F0 44812000 */ mtc1 $at, $f4 +/* 0A1024 7F06C4F4 46003202 */ mul.s $f8, $f6, $f0 +/* 0A1028 7F06C4F8 46082083 */ div.s $f2, $f4, $f8 +/* 0A102C 7F06C4FC 46027282 */ mul.s $f10, $f14, $f2 +/* 0A1030 7F06C500 00000000 */ nop +/* 0A1034 7F06C504 46028182 */ mul.s $f6, $f16, $f2 +/* 0A1038 7F06C508 00000000 */ nop +/* 0A103C 7F06C50C 46029102 */ mul.s $f4, $f18, $f2 +/* 0A1040 7F06C510 E4AA0000 */ swc1 $f10, ($a1) +/* 0A1044 7F06C514 E4A60004 */ swc1 $f6, 4($a1) +/* 0A1048 7F06C518 10000009 */ b .L7F06C540 +/* 0A104C 7F06C51C E4A40008 */ swc1 $f4, 8($a1) +/* 0A1050 7F06C520 E4A20000 */ swc1 $f2, ($a1) +.L7F06C524: +/* 0A1054 7F06C524 E4A20004 */ swc1 $f2, 4($a1) +/* 0A1058 7F06C528 8FAF0030 */ lw $t7, 0x30($sp) +/* 0A105C 7F06C52C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A1060 7F06C530 44814000 */ mtc1 $at, $f8 +/* 0A1064 7F06C534 C5EA0014 */ lwc1 $f10, 0x14($t7) +/* 0A1068 7F06C538 460A4183 */ div.s $f6, $f8, $f10 +/* 0A106C 7F06C53C E4A60008 */ swc1 $f6, 8($a1) +.L7F06C540: +/* 0A1070 7F06C540 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A1074 7F06C544 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0A1078 7F06C548 03E00008 */ jr $ra +/* 0A107C 7F06C54C 00000000 */ nop +) +#endif + + + + + +void sub_GAME_7F06C550(void) { + sub_GAME_7F06C474(); +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06C570(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06C570 +/* 0A10A0 7F06C570 10800038 */ beqz $a0, .L7F06C654 +/* 0A10A4 7F06C574 00A03025 */ move $a2, $a1 +/* 0A10A8 7F06C578 24080015 */ li $t0, 21 +/* 0A10AC 7F06C57C 24070003 */ li $a3, 3 +/* 0A10B0 7F06C580 24050002 */ li $a1, 2 +/* 0A10B4 7F06C584 24020001 */ li $v0, 1 +/* 0A10B8 7F06C588 94830000 */ lhu $v1, ($a0) +.L7F06C58C: +/* 0A10BC 7F06C58C 306E00FF */ andi $t6, $v1, 0xff +/* 0A10C0 7F06C590 51C2000A */ beql $t6, $v0, .L7F06C5BC +/* 0A10C4 7F06C594 8C830004 */ lw $v1, 4($a0) +/* 0A10C8 7F06C598 51C5000B */ beql $t6, $a1, .L7F06C5C8 +/* 0A10CC 7F06C59C 24010200 */ li $at, 512 +/* 0A10D0 7F06C5A0 51C70018 */ beql $t6, $a3, .L7F06C604 +/* 0A10D4 7F06C5A4 24010200 */ li $at, 512 +/* 0A10D8 7F06C5A8 51C80025 */ beql $t6, $t0, .L7F06C640 +/* 0A10DC 7F06C5AC 8C830004 */ lw $v1, 4($a0) +/* 0A10E0 7F06C5B0 10000026 */ b .L7F06C64C +/* 0A10E4 7F06C5B4 8C840008 */ lw $a0, 8($a0) +/* 0A10E8 7F06C5B8 8C830004 */ lw $v1, 4($a0) +.L7F06C5BC: +/* 0A10EC 7F06C5BC 03E00008 */ jr $ra +/* 0A10F0 7F06C5C0 84620002 */ lh $v0, 2($v1) + +/* 0A10F4 7F06C5C4 24010200 */ li $at, 512 +.L7F06C5C8: +/* 0A10F8 7F06C5C8 14C10003 */ bne $a2, $at, .L7F06C5D8 +/* 0A10FC 7F06C5CC 8C850004 */ lw $a1, 4($a0) +/* 0A1100 7F06C5D0 10000007 */ b .L7F06C5F0 +/* 0A1104 7F06C5D4 24030002 */ li $v1, 2 +.L7F06C5D8: +/* 0A1108 7F06C5D8 24010100 */ li $at, 256 +/* 0A110C 7F06C5DC 14C10003 */ bne $a2, $at, .L7F06C5EC +/* 0A1110 7F06C5E0 00001025 */ move $v0, $zero +/* 0A1114 7F06C5E4 10000001 */ b .L7F06C5EC +/* 0A1118 7F06C5E8 24020001 */ li $v0, 1 +.L7F06C5EC: +/* 0A111C 7F06C5EC 00401825 */ move $v1, $v0 +.L7F06C5F0: +/* 0A1120 7F06C5F0 00037840 */ sll $t7, $v1, 1 +/* 0A1124 7F06C5F4 00AFC021 */ addu $t8, $a1, $t7 +/* 0A1128 7F06C5F8 03E00008 */ jr $ra +/* 0A112C 7F06C5FC 8702000E */ lh $v0, 0xe($t8) + +/* 0A1130 7F06C600 24010200 */ li $at, 512 +.L7F06C604: +/* 0A1134 7F06C604 14C10003 */ bne $a2, $at, .L7F06C614 +/* 0A1138 7F06C608 8C850004 */ lw $a1, 4($a0) +/* 0A113C 7F06C60C 10000007 */ b .L7F06C62C +/* 0A1140 7F06C610 24030002 */ li $v1, 2 +.L7F06C614: +/* 0A1144 7F06C614 24010100 */ li $at, 256 +/* 0A1148 7F06C618 14C10003 */ bne $a2, $at, .L7F06C628 +/* 0A114C 7F06C61C 00001025 */ move $v0, $zero +/* 0A1150 7F06C620 10000001 */ b .L7F06C628 +/* 0A1154 7F06C624 24020001 */ li $v0, 1 +.L7F06C628: +/* 0A1158 7F06C628 00401825 */ move $v1, $v0 +.L7F06C62C: +/* 0A115C 7F06C62C 0003C840 */ sll $t9, $v1, 1 +/* 0A1160 7F06C630 00B94821 */ addu $t1, $a1, $t9 +/* 0A1164 7F06C634 03E00008 */ jr $ra +/* 0A1168 7F06C638 8522000E */ lh $v0, 0xe($t1) + +/* 0A116C 7F06C63C 8C830004 */ lw $v1, 4($a0) +.L7F06C640: +/* 0A1170 7F06C640 03E00008 */ jr $ra +/* 0A1174 7F06C644 8462000C */ lh $v0, 0xc($v1) + +/* 0A1178 7F06C648 8C840008 */ lw $a0, 8($a0) +.L7F06C64C: +/* 0A117C 7F06C64C 5480FFCF */ bnezl $a0, .L7F06C58C +/* 0A1180 7F06C650 94830000 */ lhu $v1, ($a0) +.L7F06C654: +/* 0A1184 7F06C654 2402FFFF */ li $v0, -1 +/* 0A1188 7F06C658 03E00008 */ jr $ra +/* 0A118C 7F06C65C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06C660(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06C660 +/* 0A1190 7F06C660 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A1194 7F06C664 AFA40018 */ sw $a0, 0x18($sp) +/* 0A1198 7F06C668 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A119C 7F06C66C 00A02025 */ move $a0, $a1 +/* 0A11A0 7F06C670 0FC1B15C */ jal sub_GAME_7F06C570 +/* 0A11A4 7F06C674 00C02825 */ move $a1, $a2 +/* 0A11A8 7F06C678 04400006 */ bltz $v0, .L7F06C694 +/* 0A11AC 7F06C67C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A11B0 7F06C680 8FAE0018 */ lw $t6, 0x18($sp) +/* 0A11B4 7F06C684 0002C180 */ sll $t8, $v0, 6 +/* 0A11B8 7F06C688 8DCF000C */ lw $t7, 0xc($t6) +/* 0A11BC 7F06C68C 10000002 */ b .L7F06C698 +/* 0A11C0 7F06C690 01F81021 */ addu $v0, $t7, $t8 +.L7F06C694: +/* 0A11C4 7F06C694 00001025 */ move $v0, $zero +.L7F06C698: +/* 0A11C8 7F06C698 03E00008 */ jr $ra +/* 0A11CC 7F06C69C 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + diff --git a/src/game/objecthandler.h b/src/game/objecthandler.h new file mode 100644 index 0000000..804d831 --- /dev/null +++ b/src/game/objecthandler.h @@ -0,0 +1,10 @@ +#ifndef _OBJECTHANDLER_ +#define _OBJECTHANDLER_ +#include "ultra64.h" + +extern s32 D_80036410; +extern s32 D_80036414; +extern s32 D_80036418; +extern s32 D_8003641C; + +#endif diff --git a/src/game/objecthandler_2.c b/src/game/objecthandler_2.c new file mode 100644 index 0000000..0b2e6c7 --- /dev/null +++ b/src/game/objecthandler_2.c @@ -0,0 +1,13457 @@ +#include "ultra64.h" + +//D:80054600 +const char aGetsubmatrixNoObjinst[] = "getsubmatrix: no objinst!\n"; +//D:8005461C +const char aGetsubmatrixObjinstHasNoObject[] = "getsubmatrix: objinst has no object!\n"; +//D:80054644 +const char aGetpartoffsetNoObjinst[] = "getpartoffset: no objinst!"; +//D:80054660 +const char aGetpartoffsetNoPartdesc[] = "getpartoffset: no partdesc!"; +//D:8005467C +const char aSetpartoffsetNoObjinst[] = "setpartoffset: no objinst!"; +//D:80054698 +const char aSetpartoffsetNoPartdesc[] = "setpartoffset: no partdesc!"; +//D:800546B4 +const char aGetsuboffsetNoObjinst[] = "getsuboffset: no objinst!"; +//D:800546D0 +const char aGetsuboffsetObjinstHasNoObject[] = "getsuboffset: objinst has no object!"; +//D:800546F8 +const char aSetsuboffsetNoObjinst[] = "setsuboffset: no objinst!"; +//D:80054714 +const char aSetsuboffsetObjinstHasNoObject[] = "setsuboffset: objinst has no object!"; +//D:8005473C +const char aGetsubrotyNoObjinst[] = "getsubroty: no objinst!"; +//D:80054754 +const char aGetsubrotyObjinstHasNoObject[] = "getsubroty: objinst has no object!"; +//D:80054778 +const char aGetsubrotyObjinstHasNoRootPart[] = "getsubroty: objinst has no root part!"; +//D:800547A0 +const char aSetsubrotyNoObjinst[] = "setsubroty: no objinst!"; +//D:800547B8 +const char aSetsubrotyObjinstHasNoObject[] = "setsubroty: objinst has no object!"; +//D:800547DC +const char aSetsubrotyObjinstHasNoRootPart[] = "setsubroty: objinst has no root part!"; +//D:80054804 +const char aGetjointsizeNoObjinst[] = "getjointsize: no objinst!\n"; +//D:80054820 +const char aGetinstsizeNoObjinst[] = "getinstsize: no objinst!\n"; +//D:8005483C +const char aGetinstsizeNoObjdesc[] = "getinstsize: no objdesc!\n"; +//D:80054858 +const char aSubcalcposNoObjanim[] = "subcalcpos: no objanim!\n"; +//D:80054874 +const char aSubcalcposNoObjdesc[] = "subcalcpos: no objdesc!\n"; +//D:80054890 +const char aInstcalcmatricesNoObjinst[] = "instcalcmatrices: no objinst!\n"; +//D:800548B0 +const char aInstcalcmatricesNoBasemtx[] = "instcalcmatrices: no basemtx!\n"; +//D:800548D0 +const char aInstcalcmatricesNoMtxlist[] = "instcalcmatrices: no mtxlist!\n"; +//D:800548F0 +const char aSubcalcmatricesNoObjanim[] = "subcalcmatrices: no objanim!\n"; +//D:80054910 +const char aSubcalcmatricesNoBasemtx[] = "subcalcmatrices: no basemtx!\n"; +//D:80054930 +const char aSubcalcmatricesNoMtxlist[] = "subcalcmatrices: no mtxlist!\n"; +//D:80054950 +const char aSubcalcmatricesNoAttachForObjinst[] = "subcalcmatrices: no attach for objinst!\n"; +//D:8005497C +const char aSubcalcmatricesFrameaOutOfRange[] = "subcalcmatrices: framea out of range!\n"; +//D:800549A4 +const char aSubcalcmatricesFramebOutOfRange[] = "subcalcmatrices: frameb out of range!\n"; +//D:800549CC +const char aSubcalcmatricesNoAnim2[] = "subcalcmatrices: no anim2!\n"; +//D:800549E8 +const char aSubcalcmatricesFrame2aOutOfRange[] = "subcalcmatrices: frame2a out of range!\n"; +//D:80054A10 +const char aSubcalcmatricesFrame2bOutOfRange[] = "subcalcmatrices: frame2b out of range!\n"; +//D:80054A38 +const char aDorottexNoVtxAllocator[] = "dorottex: no vtx allocator!\n"; +//D:80054A58 +const char aDotubeNoVtxAllocator[] = "dotube: no vtx allocator!\n"; +//D:80054A74 +const char aDogfnegxNoVtxAllocator[] = "dogfnegx: no vtx allocator!\n"; +//D:80054A94 +const char aDoshadowNoVtxAllocator[] = "doshadow: no vtx allocator!\n"; +//D:80054AB4 +const char aSubdrawNoGfxlist[] = "subdraw: no gfxlist!\n"; +//D:80054ACC +const char aSubdrawObjectNotInitialised0xX[] = "subdraw: object not initialised! (0x%X)\n"; + +/* +*/ + +/* +*/ + +/* +*/ + +/* +*/ + + +#ifdef NONMATCHING +void getsubmatrix(void) { + +} +#else +GLOBAL_ASM( +.late_rodata + + +.text +glabel getsubmatrix +/* 0A11D0 7F06C6A0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A11D4 7F06C6A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A11D8 7F06C6A8 14800006 */ bnez $a0, .L7F06C6C4 +/* 0A11DC 7F06C6AC AFA40018 */ sw $a0, 0x18($sp) +/* 0A11E0 7F06C6B0 3C048005 */ lui $a0, %hi(aGetsubmatrixNoObjinst) +/* 0A11E4 7F06C6B4 0C0033D1 */ jal osSyncPrintf +/* 0A11E8 7F06C6B8 24844600 */ addiu $a0, %lo(aGetsubmatrixNoObjinst) # addiu $a0, $a0, 0x4600 +/* 0A11EC 7F06C6BC 0FC1B11B */ jal return_null +/* 0A11F0 7F06C6C0 00000000 */ nop +.L7F06C6C4: +/* 0A11F4 7F06C6C4 8FAF0018 */ lw $t7, 0x18($sp) +/* 0A11F8 7F06C6C8 3C048005 */ lui $a0, %hi(aGetsubmatrixObjinstHasNoObject) +/* 0A11FC 7F06C6CC 8DE20008 */ lw $v0, 8($t7) +/* 0A1200 7F06C6D0 54400008 */ bnezl $v0, .L7F06C6F4 +/* 0A1204 7F06C6D4 8FA40018 */ lw $a0, 0x18($sp) +/* 0A1208 7F06C6D8 0C0033D1 */ jal osSyncPrintf +/* 0A120C 7F06C6DC 2484461C */ addiu $a0, $a0, %lo(aGetsubmatrixObjinstHasNoObject) +/* 0A1210 7F06C6E0 0FC1B11B */ jal return_null +/* 0A1214 7F06C6E4 00000000 */ nop +/* 0A1218 7F06C6E8 8FB80018 */ lw $t8, 0x18($sp) +/* 0A121C 7F06C6EC 8F020008 */ lw $v0, 8($t8) +/* 0A1220 7F06C6F0 8FA40018 */ lw $a0, 0x18($sp) +.L7F06C6F4: +/* 0A1224 7F06C6F4 8C450000 */ lw $a1, ($v0) +/* 0A1228 7F06C6F8 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A122C 7F06C6FC 00003025 */ move $a2, $zero +/* 0A1230 7F06C700 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A1234 7F06C704 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A1238 7F06C708 03E00008 */ jr $ra +/* 0A123C 7F06C70C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06C710(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06C710 +/* 0A1240 7F06C710 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A1244 7F06C714 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A1248 7F06C718 0FC1B1A8 */ jal getsubmatrix +/* 0A124C 7F06C71C AFA5001C */ sw $a1, 0x1c($sp) +/* 0A1250 7F06C720 10400008 */ beqz $v0, .L7F06C744 +/* 0A1254 7F06C724 8FA5001C */ lw $a1, 0x1c($sp) +/* 0A1258 7F06C728 C4440030 */ lwc1 $f4, 0x30($v0) +/* 0A125C 7F06C72C E4A40000 */ swc1 $f4, ($a1) +/* 0A1260 7F06C730 C4460034 */ lwc1 $f6, 0x34($v0) +/* 0A1264 7F06C734 E4A60004 */ swc1 $f6, 4($a1) +/* 0A1268 7F06C738 C4480038 */ lwc1 $f8, 0x38($v0) +/* 0A126C 7F06C73C 10000006 */ b .L7F06C758 +/* 0A1270 7F06C740 E4A80008 */ swc1 $f8, 8($a1) +.L7F06C744: +/* 0A1274 7F06C744 44800000 */ mtc1 $zero, $f0 +/* 0A1278 7F06C748 00000000 */ nop +/* 0A127C 7F06C74C E4A00000 */ swc1 $f0, ($a1) +/* 0A1280 7F06C750 E4A00004 */ swc1 $f0, 4($a1) +/* 0A1284 7F06C754 E4A00008 */ swc1 $f0, 8($a1) +.L7F06C758: +/* 0A1288 7F06C758 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A128C 7F06C75C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A1290 7F06C760 03E00008 */ jr $ra +/* 0A1294 7F06C764 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06C768(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06C768 +/* 0A1298 7F06C768 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A129C 7F06C76C AFBF0014 */ sw $ra, 0x14($sp) +/* 0A12A0 7F06C770 0FC1B1A8 */ jal getsubmatrix +/* 0A12A4 7F06C774 00000000 */ nop +/* 0A12A8 7F06C778 10400004 */ beqz $v0, .L7F06C78C +/* 0A12AC 7F06C77C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A12B0 7F06C780 C4400038 */ lwc1 $f0, 0x38($v0) +/* 0A12B4 7F06C784 10000003 */ b .L7F06C794 +/* 0A12B8 7F06C788 46000007 */ neg.s $f0, $f0 +.L7F06C78C: +/* 0A12BC 7F06C78C 44800000 */ mtc1 $zero, $f0 +/* 0A12C0 7F06C790 00000000 */ nop +.L7F06C794: +/* 0A12C4 7F06C794 03E00008 */ jr $ra +/* 0A12C8 7F06C798 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void extract_id_from_object_structure_microcode(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80054AF8*/ +glabel jpt_obj_struct_microcode_id +.word .L7F06C7D8 +.word .L7F06C840 +.word .L7F06C840 +.word .L7F06C840 +.word .L7F06C840 +.word .L7F06C840 +.word .L7F06C7F0 +.word .L7F06C7FC +.word .L7F06C814 +.word .L7F06C840 +.word .L7F06C820 +.word .L7F06C82C +.word .L7F06C840 +.word .L7F06C840 +.word .L7F06C840 +.word .L7F06C840 +.word .L7F06C840 +.word .L7F06C808 +.word .L7F06C840 +.word .L7F06C840 +/*.word .L7F06C840*/ +/*.word .L7F06C840*/ +/*.word .L7F06C838*/ +/*.word .L7F06C7E4*/ + +.text +glabel extract_id_from_object_structure_microcode +/* 0A12CC 7F06C79C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A12D0 7F06C7A0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A12D4 7F06C7A4 94AE0000 */ lhu $t6, ($a1) +/* 0A12D8 7F06C7A8 00003025 */ move $a2, $zero +/* 0A12DC 7F06C7AC 8C870010 */ lw $a3, 0x10($a0) +/* 0A12E0 7F06C7B0 31CF00FF */ andi $t7, $t6, 0xff +/* 0A12E4 7F06C7B4 25F8FFFF */ addiu $t8, $t7, -1 +/* 0A12E8 7F06C7B8 2F010018 */ sltiu $at, $t8, 0x18 +/* 0A12EC 7F06C7BC 10200020 */ beqz $at, .L7F06C840 +/* 0A12F0 7F06C7C0 0018C080 */ sll $t8, $t8, 2 +/* 0A12F4 7F06C7C4 3C018005 */ lui $at, %hi(jpt_obj_struct_microcode_id) +/* 0A12F8 7F06C7C8 00380821 */ addu $at, $at, $t8 +/* 0A12FC 7F06C7CC 8C384AF8 */ lw $t8, %lo(jpt_obj_struct_microcode_id)($at) +.L7F06C7D0: +/* 0A1300 7F06C7D0 03000008 */ jr $t8 +/* 0A1304 7F06C7D4 00000000 */ nop +.L7F06C7D8: +/* 0A1308 7F06C7D8 8CB90004 */ lw $t9, 4($a1) +/* 0A130C 7F06C7DC 10000018 */ b .L7F06C840 +/* 0A1310 7F06C7E0 9726000C */ lhu $a2, 0xc($t9) +.L7F06C7E4: +/* 0A1314 7F06C7E4 8CA80004 */ lw $t0, 4($a1) +/* 0A1318 7F06C7E8 10000015 */ b .L7F06C840 +/* 0A131C 7F06C7EC 9506001A */ lhu $a2, 0x1a($t0) +.L7F06C7F0: +/* 0A1320 7F06C7F0 8CA90004 */ lw $t1, 4($a1) +/* 0A1324 7F06C7F4 10000012 */ b .L7F06C840 +/* 0A1328 7F06C7F8 952601AA */ lhu $a2, 0x1aa($t1) +.L7F06C7FC: +/* 0A132C 7F06C7FC 8CAA0004 */ lw $t2, 4($a1) +/* 0A1330 7F06C800 1000000F */ b .L7F06C840 +/* 0A1334 7F06C804 9546000C */ lhu $a2, 0xc($t2) +.L7F06C808: +/* 0A1338 7F06C808 8CAB0004 */ lw $t3, 4($a1) +/* 0A133C 7F06C80C 1000000C */ b .L7F06C840 +/* 0A1340 7F06C810 95660004 */ lhu $a2, 4($t3) +.L7F06C814: +/* 0A1344 7F06C814 8CAC0004 */ lw $t4, 4($a1) +/* 0A1348 7F06C818 10000009 */ b .L7F06C840 +/* 0A134C 7F06C81C 95860022 */ lhu $a2, 0x22($t4) +.L7F06C820: +/* 0A1350 7F06C820 8CAD0004 */ lw $t5, 4($a1) +/* 0A1354 7F06C824 10000006 */ b .L7F06C840 +/* 0A1358 7F06C828 95A60044 */ lhu $a2, 0x44($t5) +.L7F06C82C: +/* 0A135C 7F06C82C 8CAE0004 */ lw $t6, 4($a1) +/* 0A1360 7F06C830 10000003 */ b .L7F06C840 +/* 0A1364 7F06C834 95C60020 */ lhu $a2, 0x20($t6) +.L7F06C838: +/* 0A1368 7F06C838 8CAF0004 */ lw $t7, 4($a1) +/* 0A136C 7F06C83C 95E60000 */ lhu $a2, ($t7) +def_7F06C7D0: +.L7F06C840: +/* 0A1370 7F06C840 8CA20008 */ lw $v0, 8($a1) +/* 0A1374 7F06C844 24030017 */ li $v1, 23 +/* 0A1378 7F06C848 5040000F */ beql $v0, $zero, .L7F06C888 +/* 0A137C 7F06C84C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A1380 7F06C850 94580000 */ lhu $t8, ($v0) +.L7F06C854: +/* 0A1384 7F06C854 00402825 */ move $a1, $v0 +/* 0A1388 7F06C858 331900FF */ andi $t9, $t8, 0xff +/* 0A138C 7F06C85C 54790007 */ bnel $v1, $t9, .L7F06C87C +/* 0A1390 7F06C860 8CA20008 */ lw $v0, 8($a1) +/* 0A1394 7F06C864 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A1398 7F06C868 AFA6001C */ sw $a2, 0x1c($sp) +/* 0A139C 7F06C86C 8FA6001C */ lw $a2, 0x1c($sp) +/* 0A13A0 7F06C870 10000004 */ b .L7F06C884 +/* 0A13A4 7F06C874 8C470004 */ lw $a3, 4($v0) +/* 0A13A8 7F06C878 8CA20008 */ lw $v0, 8($a1) +.L7F06C87C: +/* 0A13AC 7F06C87C 5440FFF5 */ bnezl $v0, .L7F06C854 +/* 0A13B0 7F06C880 94580000 */ lhu $t8, ($v0) +.L7F06C884: +/* 0A13B4 7F06C884 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06C888: +/* 0A13B8 7F06C888 00064080 */ sll $t0, $a2, 2 +/* 0A13BC 7F06C88C 01071021 */ addu $v0, $t0, $a3 +/* 0A13C0 7F06C890 03E00008 */ jr $ra +/* 0A13C4 7F06C894 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void getpartoffset(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*HACKY, above jtable too big*/ +.word .L7F06C840 +.word .L7F06C840 +.word .L7F06C838 +.word .L7F06C7E4 + +.text +glabel getpartoffset +/* 0A13C8 7F06C898 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A13CC 7F06C89C AFBF0014 */ sw $ra, 0x14($sp) +/* 0A13D0 7F06C8A0 1480000A */ bnez $a0, .L7F06C8CC +/* 0A13D4 7F06C8A4 AFA40018 */ sw $a0, 0x18($sp) +/* 0A13D8 7F06C8A8 3C048005 */ lui $a0, %hi(aGetpartoffsetNoObjinst) +/* 0A13DC 7F06C8AC 24844644 */ addiu $a0, %lo(aGetpartoffsetNoObjinst) # addiu $a0, $a0, 0x4644 +/* 0A13E0 7F06C8B0 AFA5001C */ sw $a1, 0x1c($sp) +/* 0A13E4 7F06C8B4 0C0033D1 */ jal osSyncPrintf +/* 0A13E8 7F06C8B8 AFA60020 */ sw $a2, 0x20($sp) +/* 0A13EC 7F06C8BC 0FC1B11B */ jal return_null +/* 0A13F0 7F06C8C0 00000000 */ nop +/* 0A13F4 7F06C8C4 8FA5001C */ lw $a1, 0x1c($sp) +/* 0A13F8 7F06C8C8 8FA60020 */ lw $a2, 0x20($sp) +.L7F06C8CC: +/* 0A13FC 7F06C8CC 14A00009 */ bnez $a1, .L7F06C8F4 +/* 0A1400 7F06C8D0 3C048005 */ lui $a0, %hi(aGetpartoffsetNoPartdesc) +/* 0A1404 7F06C8D4 24844660 */ addiu $a0, %lo(aGetpartoffsetNoPartdesc) # addiu $a0, $a0, 0x4660 +/* 0A1408 7F06C8D8 AFA5001C */ sw $a1, 0x1c($sp) +/* 0A140C 7F06C8DC 0C0033D1 */ jal osSyncPrintf +/* 0A1410 7F06C8E0 AFA60020 */ sw $a2, 0x20($sp) +/* 0A1414 7F06C8E4 0FC1B11B */ jal return_null +/* 0A1418 7F06C8E8 00000000 */ nop +/* 0A141C 7F06C8EC 8FA5001C */ lw $a1, 0x1c($sp) +/* 0A1420 7F06C8F0 8FA60020 */ lw $a2, 0x20($sp) +.L7F06C8F4: +/* 0A1424 7F06C8F4 94A20000 */ lhu $v0, ($a1) +/* 0A1428 7F06C8F8 24010001 */ li $at, 1 +/* 0A142C 7F06C8FC 8FA40018 */ lw $a0, 0x18($sp) +/* 0A1430 7F06C900 304F00FF */ andi $t7, $v0, 0xff +/* 0A1434 7F06C904 11E1000D */ beq $t7, $at, .L7F06C93C +/* 0A1438 7F06C908 24010002 */ li $at, 2 +/* 0A143C 7F06C90C 11E10015 */ beq $t7, $at, .L7F06C964 +/* 0A1440 7F06C910 24010003 */ li $at, 3 +/* 0A1444 7F06C914 11E1001B */ beq $t7, $at, .L7F06C984 +/* 0A1448 7F06C918 24010015 */ li $at, 21 +/* 0A144C 7F06C91C 51E10022 */ beql $t7, $at, .L7F06C9A8 +/* 0A1450 7F06C920 8CA20004 */ lw $v0, 4($a1) +/* 0A1454 7F06C924 44800000 */ mtc1 $zero, $f0 +/* 0A1458 7F06C928 00000000 */ nop +/* 0A145C 7F06C92C E4C00000 */ swc1 $f0, ($a2) +/* 0A1460 7F06C930 E4C00004 */ swc1 $f0, 4($a2) +/* 0A1464 7F06C934 10000022 */ b .L7F06C9C0 +/* 0A1468 7F06C938 E4C00008 */ swc1 $f0, 8($a2) +.L7F06C93C: +/* 0A146C 7F06C93C 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A1470 7F06C940 AFA60020 */ sw $a2, 0x20($sp) +/* 0A1474 7F06C944 8FA60020 */ lw $a2, 0x20($sp) +/* 0A1478 7F06C948 C4440008 */ lwc1 $f4, 8($v0) +/* 0A147C 7F06C94C E4C40000 */ swc1 $f4, ($a2) +/* 0A1480 7F06C950 C446000C */ lwc1 $f6, 0xc($v0) +/* 0A1484 7F06C954 E4C60004 */ swc1 $f6, 4($a2) +/* 0A1488 7F06C958 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0A148C 7F06C95C 10000018 */ b .L7F06C9C0 +/* 0A1490 7F06C960 E4C80008 */ swc1 $f8, 8($a2) +.L7F06C964: +/* 0A1494 7F06C964 8CA20004 */ lw $v0, 4($a1) +/* 0A1498 7F06C968 C44A0000 */ lwc1 $f10, ($v0) +/* 0A149C 7F06C96C E4CA0000 */ swc1 $f10, ($a2) +/* 0A14A0 7F06C970 C4500004 */ lwc1 $f16, 4($v0) +/* 0A14A4 7F06C974 E4D00004 */ swc1 $f16, 4($a2) +/* 0A14A8 7F06C978 C4520008 */ lwc1 $f18, 8($v0) +/* 0A14AC 7F06C97C 10000010 */ b .L7F06C9C0 +/* 0A14B0 7F06C980 E4D20008 */ swc1 $f18, 8($a2) +.L7F06C984: +/* 0A14B4 7F06C984 8CA20004 */ lw $v0, 4($a1) +/* 0A14B8 7F06C988 C4440000 */ lwc1 $f4, ($v0) +/* 0A14BC 7F06C98C E4C40000 */ swc1 $f4, ($a2) +/* 0A14C0 7F06C990 C4460004 */ lwc1 $f6, 4($v0) +/* 0A14C4 7F06C994 E4C60004 */ swc1 $f6, 4($a2) +/* 0A14C8 7F06C998 C4480008 */ lwc1 $f8, 8($v0) +/* 0A14CC 7F06C99C 10000008 */ b .L7F06C9C0 +/* 0A14D0 7F06C9A0 E4C80008 */ swc1 $f8, 8($a2) +/* 0A14D4 7F06C9A4 8CA20004 */ lw $v0, 4($a1) +.L7F06C9A8: +/* 0A14D8 7F06C9A8 C44A0000 */ lwc1 $f10, ($v0) +/* 0A14DC 7F06C9AC E4CA0000 */ swc1 $f10, ($a2) +/* 0A14E0 7F06C9B0 C4500004 */ lwc1 $f16, 4($v0) +/* 0A14E4 7F06C9B4 E4D00004 */ swc1 $f16, 4($a2) +/* 0A14E8 7F06C9B8 C4520008 */ lwc1 $f18, 8($v0) +/* 0A14EC 7F06C9BC E4D20008 */ swc1 $f18, 8($a2) +.L7F06C9C0: +/* 0A14F0 7F06C9C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A14F4 7F06C9C4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A14F8 7F06C9C8 03E00008 */ jr $ra +/* 0A14FC 7F06C9CC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void setpartoffset(void) { + +} +#else +GLOBAL_ASM( +.text +glabel setpartoffset +/* 0A1500 7F06C9D0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0A1504 7F06C9D4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A1508 7F06C9D8 1480000A */ bnez $a0, .L7F06CA04 +/* 0A150C 7F06C9DC AFA40028 */ sw $a0, 0x28($sp) +/* 0A1510 7F06C9E0 3C048005 */ lui $a0, %hi(aSetpartoffsetNoObjinst) +/* 0A1514 7F06C9E4 2484467C */ addiu $a0, %lo(aSetpartoffsetNoObjinst) # addiu $a0, $a0, 0x467c +/* 0A1518 7F06C9E8 AFA5002C */ sw $a1, 0x2c($sp) +/* 0A151C 7F06C9EC 0C0033D1 */ jal osSyncPrintf +/* 0A1520 7F06C9F0 AFA60030 */ sw $a2, 0x30($sp) +/* 0A1524 7F06C9F4 0FC1B11B */ jal return_null +/* 0A1528 7F06C9F8 00000000 */ nop +/* 0A152C 7F06C9FC 8FA5002C */ lw $a1, 0x2c($sp) +/* 0A1530 7F06CA00 8FA60030 */ lw $a2, 0x30($sp) +.L7F06CA04: +/* 0A1534 7F06CA04 14A00009 */ bnez $a1, .L7F06CA2C +/* 0A1538 7F06CA08 3C048005 */ lui $a0, %hi(aSetpartoffsetNoPartdesc) +/* 0A153C 7F06CA0C 24844698 */ addiu $a0, %lo(aSetpartoffsetNoPartdesc) # addiu $a0, $a0, 0x4698 +/* 0A1540 7F06CA10 AFA5002C */ sw $a1, 0x2c($sp) +/* 0A1544 7F06CA14 0C0033D1 */ jal osSyncPrintf +/* 0A1548 7F06CA18 AFA60030 */ sw $a2, 0x30($sp) +/* 0A154C 7F06CA1C 0FC1B11B */ jal return_null +/* 0A1550 7F06CA20 00000000 */ nop +/* 0A1554 7F06CA24 8FA5002C */ lw $a1, 0x2c($sp) +/* 0A1558 7F06CA28 8FA60030 */ lw $a2, 0x30($sp) +.L7F06CA2C: +/* 0A155C 7F06CA2C 94A20000 */ lhu $v0, ($a1) +/* 0A1560 7F06CA30 24010001 */ li $at, 1 +/* 0A1564 7F06CA34 8FA40028 */ lw $a0, 0x28($sp) +/* 0A1568 7F06CA38 304F00FF */ andi $t7, $v0, 0xff +/* 0A156C 7F06CA3C 11E10009 */ beq $t7, $at, .L7F06CA64 +/* 0A1570 7F06CA40 24010002 */ li $at, 2 +/* 0A1574 7F06CA44 11E10039 */ beq $t7, $at, .L7F06CB2C +/* 0A1578 7F06CA48 24010003 */ li $at, 3 +/* 0A157C 7F06CA4C 11E1003F */ beq $t7, $at, .L7F06CB4C +/* 0A1580 7F06CA50 24010015 */ li $at, 21 +/* 0A1584 7F06CA54 51E10046 */ beql $t7, $at, .L7F06CB70 +/* 0A1588 7F06CA58 8CA20004 */ lw $v0, 4($a1) +/* 0A158C 7F06CA5C 1000004B */ b .L7F06CB8C +/* 0A1590 7F06CA60 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06CA64: +/* 0A1594 7F06CA64 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A1598 7F06CA68 AFA60030 */ sw $a2, 0x30($sp) +/* 0A159C 7F06CA6C 8FA60030 */ lw $a2, 0x30($sp) +/* 0A15A0 7F06CA70 C4460008 */ lwc1 $f6, 8($v0) +/* 0A15A4 7F06CA74 C4C40000 */ lwc1 $f4, ($a2) +/* 0A15A8 7F06CA78 46062201 */ sub.s $f8, $f4, $f6 +/* 0A15AC 7F06CA7C E7A80018 */ swc1 $f8, 0x18($sp) +/* 0A15B0 7F06CA80 C4500010 */ lwc1 $f16, 0x10($v0) +/* 0A15B4 7F06CA84 C4CA0008 */ lwc1 $f10, 8($a2) +/* 0A15B8 7F06CA88 46105481 */ sub.s $f18, $f10, $f16 +/* 0A15BC 7F06CA8C E7B20020 */ swc1 $f18, 0x20($sp) +/* 0A15C0 7F06CA90 C4C40000 */ lwc1 $f4, ($a2) +/* 0A15C4 7F06CA94 C44A0024 */ lwc1 $f10, 0x24($v0) +/* 0A15C8 7F06CA98 E4440008 */ swc1 $f4, 8($v0) +/* 0A15CC 7F06CA9C C4C60004 */ lwc1 $f6, 4($a2) +/* 0A15D0 7F06CAA0 C444002C */ lwc1 $f4, 0x2c($v0) +/* 0A15D4 7F06CAA4 E446000C */ swc1 $f6, 0xc($v0) +/* 0A15D8 7F06CAA8 C4C80008 */ lwc1 $f8, 8($a2) +/* 0A15DC 7F06CAAC E4480010 */ swc1 $f8, 0x10($v0) +/* 0A15E0 7F06CAB0 C7B00018 */ lwc1 $f16, 0x18($sp) +/* 0A15E4 7F06CAB4 46105480 */ add.s $f18, $f10, $f16 +/* 0A15E8 7F06CAB8 C44A0034 */ lwc1 $f10, 0x34($v0) +/* 0A15EC 7F06CABC E4520024 */ swc1 $f18, 0x24($v0) +/* 0A15F0 7F06CAC0 C7A60020 */ lwc1 $f6, 0x20($sp) +/* 0A15F4 7F06CAC4 46062200 */ add.s $f8, $f4, $f6 +/* 0A15F8 7F06CAC8 C444003C */ lwc1 $f4, 0x3c($v0) +/* 0A15FC 7F06CACC E448002C */ swc1 $f8, 0x2c($v0) +/* 0A1600 7F06CAD0 C7B00018 */ lwc1 $f16, 0x18($sp) +/* 0A1604 7F06CAD4 46105480 */ add.s $f18, $f10, $f16 +/* 0A1608 7F06CAD8 C44A0040 */ lwc1 $f10, 0x40($v0) +/* 0A160C 7F06CADC E4520034 */ swc1 $f18, 0x34($v0) +/* 0A1610 7F06CAE0 C7A60020 */ lwc1 $f6, 0x20($sp) +/* 0A1614 7F06CAE4 46062200 */ add.s $f8, $f4, $f6 +/* 0A1618 7F06CAE8 C4440048 */ lwc1 $f4, 0x48($v0) +/* 0A161C 7F06CAEC E448003C */ swc1 $f8, 0x3c($v0) +/* 0A1620 7F06CAF0 C7B00018 */ lwc1 $f16, 0x18($sp) +/* 0A1624 7F06CAF4 46105480 */ add.s $f18, $f10, $f16 +/* 0A1628 7F06CAF8 C44A004C */ lwc1 $f10, 0x4c($v0) +/* 0A162C 7F06CAFC E4520040 */ swc1 $f18, 0x40($v0) +/* 0A1630 7F06CB00 C7A60020 */ lwc1 $f6, 0x20($sp) +/* 0A1634 7F06CB04 46062200 */ add.s $f8, $f4, $f6 +/* 0A1638 7F06CB08 C4440054 */ lwc1 $f4, 0x54($v0) +/* 0A163C 7F06CB0C E4480048 */ swc1 $f8, 0x48($v0) +/* 0A1640 7F06CB10 C7B00018 */ lwc1 $f16, 0x18($sp) +/* 0A1644 7F06CB14 46105480 */ add.s $f18, $f10, $f16 +/* 0A1648 7F06CB18 E452004C */ swc1 $f18, 0x4c($v0) +/* 0A164C 7F06CB1C C7A60020 */ lwc1 $f6, 0x20($sp) +/* 0A1650 7F06CB20 46062200 */ add.s $f8, $f4, $f6 +/* 0A1654 7F06CB24 10000018 */ b .L7F06CB88 +/* 0A1658 7F06CB28 E4480054 */ swc1 $f8, 0x54($v0) +.L7F06CB2C: +/* 0A165C 7F06CB2C 8CA20004 */ lw $v0, 4($a1) +/* 0A1660 7F06CB30 C4CA0000 */ lwc1 $f10, ($a2) +/* 0A1664 7F06CB34 E44A0000 */ swc1 $f10, ($v0) +/* 0A1668 7F06CB38 C4D00004 */ lwc1 $f16, 4($a2) +/* 0A166C 7F06CB3C E4500004 */ swc1 $f16, 4($v0) +/* 0A1670 7F06CB40 C4D20008 */ lwc1 $f18, 8($a2) +/* 0A1674 7F06CB44 10000010 */ b .L7F06CB88 +/* 0A1678 7F06CB48 E4520008 */ swc1 $f18, 8($v0) +.L7F06CB4C: +/* 0A167C 7F06CB4C 8CA20004 */ lw $v0, 4($a1) +/* 0A1680 7F06CB50 C4C40000 */ lwc1 $f4, ($a2) +/* 0A1684 7F06CB54 E4440000 */ swc1 $f4, ($v0) +/* 0A1688 7F06CB58 C4C60004 */ lwc1 $f6, 4($a2) +/* 0A168C 7F06CB5C E4460004 */ swc1 $f6, 4($v0) +/* 0A1690 7F06CB60 C4C80008 */ lwc1 $f8, 8($a2) +/* 0A1694 7F06CB64 10000008 */ b .L7F06CB88 +/* 0A1698 7F06CB68 E4480008 */ swc1 $f8, 8($v0) +/* 0A169C 7F06CB6C 8CA20004 */ lw $v0, 4($a1) +.L7F06CB70: +/* 0A16A0 7F06CB70 C4CA0000 */ lwc1 $f10, ($a2) +/* 0A16A4 7F06CB74 E44A0000 */ swc1 $f10, ($v0) +/* 0A16A8 7F06CB78 C4D00004 */ lwc1 $f16, 4($a2) +/* 0A16AC 7F06CB7C E4500004 */ swc1 $f16, 4($v0) +/* 0A16B0 7F06CB80 C4D20008 */ lwc1 $f18, 8($a2) +/* 0A16B4 7F06CB84 E4520008 */ swc1 $f18, 8($v0) +.L7F06CB88: +/* 0A16B8 7F06CB88 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06CB8C: +/* 0A16BC 7F06CB8C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0A16C0 7F06CB90 03E00008 */ jr $ra +/* 0A16C4 7F06CB94 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void getsuboffset(void) { + +} +#else +GLOBAL_ASM( +.text +glabel getsuboffset +/* 0A16C8 7F06CB98 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A16CC 7F06CB9C AFBF0014 */ sw $ra, 0x14($sp) +/* 0A16D0 7F06CBA0 AFA40018 */ sw $a0, 0x18($sp) +/* 0A16D4 7F06CBA4 14800006 */ bnez $a0, .L7F06CBC0 +/* 0A16D8 7F06CBA8 AFA5001C */ sw $a1, 0x1c($sp) +/* 0A16DC 7F06CBAC 3C048005 */ lui $a0, %hi(aGetsuboffsetNoObjinst) +/* 0A16E0 7F06CBB0 0C0033D1 */ jal osSyncPrintf +/* 0A16E4 7F06CBB4 248446B4 */ addiu $a0, %lo(aGetsuboffsetNoObjinst) # addiu $a0, $a0, 0x46b4 +/* 0A16E8 7F06CBB8 0FC1B11B */ jal return_null +/* 0A16EC 7F06CBBC 00000000 */ nop +.L7F06CBC0: +/* 0A16F0 7F06CBC0 8FAF0018 */ lw $t7, 0x18($sp) +/* 0A16F4 7F06CBC4 3C048005 */ lui $a0, %hi(aGetsuboffsetObjinstHasNoObject) +/* 0A16F8 7F06CBC8 8DE20008 */ lw $v0, 8($t7) +/* 0A16FC 7F06CBCC 54400008 */ bnezl $v0, .L7F06CBF0 +/* 0A1700 7F06CBD0 8FA40018 */ lw $a0, 0x18($sp) +/* 0A1704 7F06CBD4 0C0033D1 */ jal osSyncPrintf +/* 0A1708 7F06CBD8 248446D0 */ addiu $a0, $a0, %lo(aGetsuboffsetObjinstHasNoObject) +/* 0A170C 7F06CBDC 0FC1B11B */ jal return_null +/* 0A1710 7F06CBE0 00000000 */ nop +/* 0A1714 7F06CBE4 8FB80018 */ lw $t8, 0x18($sp) +/* 0A1718 7F06CBE8 8F020008 */ lw $v0, 8($t8) +/* 0A171C 7F06CBEC 8FA40018 */ lw $a0, 0x18($sp) +.L7F06CBF0: +/* 0A1720 7F06CBF0 8C450000 */ lw $a1, ($v0) +/* 0A1724 7F06CBF4 0FC1B226 */ jal getpartoffset +/* 0A1728 7F06CBF8 8FA6001C */ lw $a2, 0x1c($sp) +/* 0A172C 7F06CBFC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A1730 7F06CC00 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A1734 7F06CC04 03E00008 */ jr $ra +/* 0A1738 7F06CC08 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void setsuboffset(void) { + +} +#else +GLOBAL_ASM( +.text +glabel setsuboffset +/* 0A173C 7F06CC0C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A1740 7F06CC10 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A1744 7F06CC14 AFA40018 */ sw $a0, 0x18($sp) +/* 0A1748 7F06CC18 14800006 */ bnez $a0, .L7F06CC34 +/* 0A174C 7F06CC1C AFA5001C */ sw $a1, 0x1c($sp) +/* 0A1750 7F06CC20 3C048005 */ lui $a0, %hi(aSetsuboffsetNoObjinst) +/* 0A1754 7F06CC24 0C0033D1 */ jal osSyncPrintf +/* 0A1758 7F06CC28 248446F8 */ addiu $a0, %lo(aSetsuboffsetNoObjinst) # addiu $a0, $a0, 0x46f8 +/* 0A175C 7F06CC2C 0FC1B11B */ jal return_null +/* 0A1760 7F06CC30 00000000 */ nop +.L7F06CC34: +/* 0A1764 7F06CC34 8FAF0018 */ lw $t7, 0x18($sp) +/* 0A1768 7F06CC38 3C048005 */ lui $a0, %hi(aSetsuboffsetObjinstHasNoObject) +/* 0A176C 7F06CC3C 8DE20008 */ lw $v0, 8($t7) +/* 0A1770 7F06CC40 54400008 */ bnezl $v0, .L7F06CC64 +/* 0A1774 7F06CC44 8FA40018 */ lw $a0, 0x18($sp) +/* 0A1778 7F06CC48 0C0033D1 */ jal osSyncPrintf +/* 0A177C 7F06CC4C 24844714 */ addiu $a0, $a0, %lo(aSetsuboffsetObjinstHasNoObject) +/* 0A1780 7F06CC50 0FC1B11B */ jal return_null +/* 0A1784 7F06CC54 00000000 */ nop +/* 0A1788 7F06CC58 8FB80018 */ lw $t8, 0x18($sp) +/* 0A178C 7F06CC5C 8F020008 */ lw $v0, 8($t8) +/* 0A1790 7F06CC60 8FA40018 */ lw $a0, 0x18($sp) +.L7F06CC64: +/* 0A1794 7F06CC64 8C450000 */ lw $a1, ($v0) +/* 0A1798 7F06CC68 0FC1B274 */ jal setpartoffset +/* 0A179C 7F06CC6C 8FA6001C */ lw $a2, 0x1c($sp) +/* 0A17A0 7F06CC70 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A17A4 7F06CC74 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A17A8 7F06CC78 03E00008 */ jr $ra +/* 0A17AC 7F06CC7C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void getsubroty(void) { + +} +#else +GLOBAL_ASM( +.text +glabel getsubroty +/* 0A17B0 7F06CC80 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A17B4 7F06CC84 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A17B8 7F06CC88 14800006 */ bnez $a0, .L7F06CCA4 +/* 0A17BC 7F06CC8C AFA40018 */ sw $a0, 0x18($sp) +/* 0A17C0 7F06CC90 3C048005 */ lui $a0, %hi(aGetsubrotyNoObjinst) +/* 0A17C4 7F06CC94 0C0033D1 */ jal osSyncPrintf +/* 0A17C8 7F06CC98 2484473C */ addiu $a0, %lo(aGetsubrotyNoObjinst) # addiu $a0, $a0, 0x473c +/* 0A17CC 7F06CC9C 0FC1B11B */ jal return_null +/* 0A17D0 7F06CCA0 00000000 */ nop +.L7F06CCA4: +/* 0A17D4 7F06CCA4 8FAF0018 */ lw $t7, 0x18($sp) +/* 0A17D8 7F06CCA8 3C048005 */ lui $a0, %hi(aGetsubrotyObjinstHasNoObject) +/* 0A17DC 7F06CCAC 8DE20008 */ lw $v0, 8($t7) +/* 0A17E0 7F06CCB0 54400008 */ bnezl $v0, .L7F06CCD4 +/* 0A17E4 7F06CCB4 8C430000 */ lw $v1, ($v0) +/* 0A17E8 7F06CCB8 0C0033D1 */ jal osSyncPrintf +/* 0A17EC 7F06CCBC 24844754 */ addiu $a0, %lo(aGetsubrotyObjinstHasNoObject) # addiu $a0, $a0, 0x4754 +/* 0A17F0 7F06CCC0 0FC1B11B */ jal return_null +/* 0A17F4 7F06CCC4 00000000 */ nop +/* 0A17F8 7F06CCC8 8FB80018 */ lw $t8, 0x18($sp) +/* 0A17FC 7F06CCCC 8F020008 */ lw $v0, 8($t8) +/* 0A1800 7F06CCD0 8C430000 */ lw $v1, ($v0) +.L7F06CCD4: +/* 0A1804 7F06CCD4 3C048005 */ lui $a0, %hi(aGetsubrotyObjinstHasNoRootPart) +/* 0A1808 7F06CCD8 54600009 */ bnezl $v1, .L7F06CD00 +/* 0A180C 7F06CCDC 94690000 */ lhu $t1, ($v1) +/* 0A1810 7F06CCE0 0C0033D1 */ jal osSyncPrintf +/* 0A1814 7F06CCE4 24844778 */ addiu $a0, %lo(aGetsubrotyObjinstHasNoRootPart) # addiu $a0, $a0, 0x4778 +/* 0A1818 7F06CCE8 0FC1B11B */ jal return_null +/* 0A181C 7F06CCEC 00000000 */ nop +/* 0A1820 7F06CCF0 8FB90018 */ lw $t9, 0x18($sp) +/* 0A1824 7F06CCF4 8F280008 */ lw $t0, 8($t9) +/* 0A1828 7F06CCF8 8D030000 */ lw $v1, ($t0) +/* 0A182C 7F06CCFC 94690000 */ lhu $t1, ($v1) +.L7F06CD00: +/* 0A1830 7F06CD00 24010001 */ li $at, 1 +/* 0A1834 7F06CD04 00602825 */ move $a1, $v1 +/* 0A1838 7F06CD08 312A00FF */ andi $t2, $t1, 0xff +/* 0A183C 7F06CD0C 55410006 */ bnel $t2, $at, .L7F06CD28 +/* 0A1840 7F06CD10 44800000 */ mtc1 $zero, $f0 +/* 0A1844 7F06CD14 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A1848 7F06CD18 8FA40018 */ lw $a0, 0x18($sp) +/* 0A184C 7F06CD1C 10000003 */ b .L7F06CD2C +/* 0A1850 7F06CD20 C4400014 */ lwc1 $f0, 0x14($v0) +/* 0A1854 7F06CD24 44800000 */ mtc1 $zero, $f0 +.L7F06CD28: +/* 0A1858 7F06CD28 00000000 */ nop +.L7F06CD2C: +/* 0A185C 7F06CD2C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A1860 7F06CD30 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A1864 7F06CD34 03E00008 */ jr $ra +/* 0A1868 7F06CD38 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void setsubroty(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054B58 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054B5C +.word 0x40c90fdb /*6.2831855*/ +.text +glabel setsubroty +/* 0A186C 7F06CD3C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A1870 7F06CD40 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A1874 7F06CD44 AFA40018 */ sw $a0, 0x18($sp) +/* 0A1878 7F06CD48 14800006 */ bnez $a0, .L7F06CD64 +/* 0A187C 7F06CD4C AFA5001C */ sw $a1, 0x1c($sp) +/* 0A1880 7F06CD50 3C048005 */ lui $a0, %hi(aSetsubrotyNoObjinst) +/* 0A1884 7F06CD54 0C0033D1 */ jal osSyncPrintf +/* 0A1888 7F06CD58 248447A0 */ addiu $a0, %lo(aSetsubrotyNoObjinst) # addiu $a0, $a0, 0x47a0 +/* 0A188C 7F06CD5C 0FC1B11B */ jal return_null +/* 0A1890 7F06CD60 00000000 */ nop +.L7F06CD64: +/* 0A1894 7F06CD64 8FAF0018 */ lw $t7, 0x18($sp) +/* 0A1898 7F06CD68 3C048005 */ lui $a0, %hi(aSetsubrotyObjinstHasNoObject) +/* 0A189C 7F06CD6C 8DE20008 */ lw $v0, 8($t7) +/* 0A18A0 7F06CD70 54400008 */ bnezl $v0, .L7F06CD94 +/* 0A18A4 7F06CD74 8C430000 */ lw $v1, ($v0) +/* 0A18A8 7F06CD78 0C0033D1 */ jal osSyncPrintf +/* 0A18AC 7F06CD7C 248447B8 */ addiu $a0, %lo(aSetsubrotyObjinstHasNoObject) # addiu $a0, $a0, 0x47b8 +/* 0A18B0 7F06CD80 0FC1B11B */ jal return_null +/* 0A18B4 7F06CD84 00000000 */ nop +/* 0A18B8 7F06CD88 8FB80018 */ lw $t8, 0x18($sp) +/* 0A18BC 7F06CD8C 8F020008 */ lw $v0, 8($t8) +/* 0A18C0 7F06CD90 8C430000 */ lw $v1, ($v0) +.L7F06CD94: +/* 0A18C4 7F06CD94 3C048005 */ lui $a0, %hi(aSetsubrotyObjinstHasNoRootPart) +/* 0A18C8 7F06CD98 54600009 */ bnezl $v1, .L7F06CDC0 +/* 0A18CC 7F06CD9C 94690000 */ lhu $t1, ($v1) +/* 0A18D0 7F06CDA0 0C0033D1 */ jal osSyncPrintf +/* 0A18D4 7F06CDA4 248447DC */ addiu $a0, %lo(aSetsubrotyObjinstHasNoRootPart) # addiu $a0, $a0, 0x47dc +/* 0A18D8 7F06CDA8 0FC1B11B */ jal return_null +/* 0A18DC 7F06CDAC 00000000 */ nop +/* 0A18E0 7F06CDB0 8FB90018 */ lw $t9, 0x18($sp) +/* 0A18E4 7F06CDB4 8F280008 */ lw $t0, 8($t9) +/* 0A18E8 7F06CDB8 8D030000 */ lw $v1, ($t0) +/* 0A18EC 7F06CDBC 94690000 */ lhu $t1, ($v1) +.L7F06CDC0: +/* 0A18F0 7F06CDC0 24010001 */ li $at, 1 +/* 0A18F4 7F06CDC4 00602825 */ move $a1, $v1 +/* 0A18F8 7F06CDC8 312A00FF */ andi $t2, $t1, 0xff +/* 0A18FC 7F06CDCC 55410027 */ bnel $t2, $at, .L7F06CE6C +/* 0A1900 7F06CDD0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A1904 7F06CDD4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A1908 7F06CDD8 8FA40018 */ lw $a0, 0x18($sp) +/* 0A190C 7F06CDDC C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0A1910 7F06CDE0 C4460014 */ lwc1 $f6, 0x14($v0) +/* 0A1914 7F06CDE4 44804000 */ mtc1 $zero, $f8 +/* 0A1918 7F06CDE8 3C018005 */ lui $at, %hi(D_80054B58) +/* 0A191C 7F06CDEC 46062001 */ sub.s $f0, $f4, $f6 +/* 0A1920 7F06CDF0 4608003C */ c.lt.s $f0, $f8 +/* 0A1924 7F06CDF4 00000000 */ nop +/* 0A1928 7F06CDF8 45020004 */ bc1fl .L7F06CE0C +/* 0A192C 7F06CDFC C44A0030 */ lwc1 $f10, 0x30($v0) +/* 0A1930 7F06CE00 C42C4B58 */ lwc1 $f12, %lo(D_80054B58)($at) +/* 0A1934 7F06CE04 460C0000 */ add.s $f0, $f0, $f12 +/* 0A1938 7F06CE08 C44A0030 */ lwc1 $f10, 0x30($v0) +.L7F06CE0C: +/* 0A193C 7F06CE0C 3C018005 */ lui $at, %hi(D_80054B5C) +/* 0A1940 7F06CE10 C42C4B5C */ lwc1 $f12, %lo(D_80054B5C)($at) +/* 0A1944 7F06CE14 46005400 */ add.s $f16, $f10, $f0 +/* 0A1948 7F06CE18 E4500030 */ swc1 $f16, 0x30($v0) +/* 0A194C 7F06CE1C C4420030 */ lwc1 $f2, 0x30($v0) +/* 0A1950 7F06CE20 4602603E */ c.le.s $f12, $f2 +/* 0A1954 7F06CE24 00000000 */ nop +/* 0A1958 7F06CE28 45020004 */ bc1fl .L7F06CE3C +/* 0A195C 7F06CE2C C4440020 */ lwc1 $f4, 0x20($v0) +/* 0A1960 7F06CE30 460C1481 */ sub.s $f18, $f2, $f12 +/* 0A1964 7F06CE34 E4520030 */ swc1 $f18, 0x30($v0) +/* 0A1968 7F06CE38 C4440020 */ lwc1 $f4, 0x20($v0) +.L7F06CE3C: +/* 0A196C 7F06CE3C 46002180 */ add.s $f6, $f4, $f0 +/* 0A1970 7F06CE40 E4460020 */ swc1 $f6, 0x20($v0) +/* 0A1974 7F06CE44 C4420020 */ lwc1 $f2, 0x20($v0) +/* 0A1978 7F06CE48 4602603E */ c.le.s $f12, $f2 +/* 0A197C 7F06CE4C 00000000 */ nop +/* 0A1980 7F06CE50 45020004 */ bc1fl .L7F06CE64 +/* 0A1984 7F06CE54 C7AA001C */ lwc1 $f10, 0x1c($sp) +/* 0A1988 7F06CE58 460C1201 */ sub.s $f8, $f2, $f12 +/* 0A198C 7F06CE5C E4480020 */ swc1 $f8, 0x20($v0) +/* 0A1990 7F06CE60 C7AA001C */ lwc1 $f10, 0x1c($sp) +.L7F06CE64: +/* 0A1994 7F06CE64 E44A0014 */ swc1 $f10, 0x14($v0) +/* 0A1998 7F06CE68 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06CE6C: +/* 0A199C 7F06CE6C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A19A0 7F06CE70 03E00008 */ jr $ra +/* 0A19A4 7F06CE74 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void set_obj_instance_controller_scale(void) { + +} +#else +GLOBAL_ASM( +.text +glabel set_obj_instance_controller_scale +/* 0A19A8 7F06CE78 44856000 */ mtc1 $a1, $f12 +/* 0A19AC 7F06CE7C 03E00008 */ jr $ra +/* 0A19B0 7F06CE80 E48C0014 */ swc1 $f12, 0x14($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06CE84(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06CE84 +/* 0A19B4 7F06CE84 44856000 */ mtc1 $a1, $f12 +/* 0A19B8 7F06CE88 03E00008 */ jr $ra +/* 0A19BC 7F06CE8C E48C00B8 */ swc1 $f12, 0xb8($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void getjointsize(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80054B60*/ +glabel jpt_getjointsize +.word .L7F06CEF8 +.word .L7F06CF10 +.word .L7F06CF28 +.word .L7F06CFE8 +.word .L7F06CFE8 +.word .L7F06CFE8 +.word .L7F06CFE8 +.word .L7F06CFE8 +.word .L7F06CFE8 +.word .L7F06CFE8 +.word .L7F06CF58 +.word .L7F06CF70 +.word .L7F06CF88 +.word .L7F06CFA0 +.word .L7F06CFB8 +.word .L7F06CFD0 +.word .L7F06CFE8 +.word .L7F06CFE8 +.word .L7F06CFE8 +.word .L7F06CFE8 +.word .L7F06CF40 + +.text +glabel getjointsize +/* 0A19C0 7F06CE90 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A19C4 7F06CE94 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A19C8 7F06CE98 1480000A */ bnez $a0, .L7F06CEC4 +/* 0A19CC 7F06CE9C 00803025 */ move $a2, $a0 +/* 0A19D0 7F06CEA0 3C048005 */ lui $a0, %hi(aGetjointsizeNoObjinst) +/* 0A19D4 7F06CEA4 24844804 */ addiu $a0, %lo(aGetjointsizeNoObjinst) # addiu $a0, $a0, 0x4804 +/* 0A19D8 7F06CEA8 AFA5001C */ sw $a1, 0x1c($sp) +/* 0A19DC 7F06CEAC 0C0033D1 */ jal osSyncPrintf +/* 0A19E0 7F06CEB0 AFA60018 */ sw $a2, 0x18($sp) +/* 0A19E4 7F06CEB4 0FC1B11B */ jal return_null +/* 0A19E8 7F06CEB8 00000000 */ nop +/* 0A19EC 7F06CEBC 8FA5001C */ lw $a1, 0x1c($sp) +/* 0A19F0 7F06CEC0 8FA60018 */ lw $a2, 0x18($sp) +.L7F06CEC4: +/* 0A19F4 7F06CEC4 50A0004C */ beql $a1, $zero, .L7F06CFF8 +/* 0A19F8 7F06CEC8 44800000 */ mtc1 $zero, $f0 +/* 0A19FC 7F06CECC 94AE0000 */ lhu $t6, ($a1) +.L7F06CED0: +/* 0A1A00 7F06CED0 31CF00FF */ andi $t7, $t6, 0xff +/* 0A1A04 7F06CED4 25F8FFFF */ addiu $t8, $t7, -1 +/* 0A1A08 7F06CED8 2F010015 */ sltiu $at, $t8, 0x15 +/* 0A1A0C 7F06CEDC 10200042 */ beqz $at, .L7F06CFE8 +/* 0A1A10 7F06CEE0 0018C080 */ sll $t8, $t8, 2 +/* 0A1A14 7F06CEE4 3C018005 */ lui $at, %hi(jpt_getjointsize) +/* 0A1A18 7F06CEE8 00380821 */ addu $at, $at, $t8 +/* 0A1A1C 7F06CEEC 8C384B60 */ lw $t8, %lo(jpt_getjointsize)($at) +.L7F06CEF0: +/* 0A1A20 7F06CEF0 03000008 */ jr $t8 +/* 0A1A24 7F06CEF4 00000000 */ nop +.L7F06CEF8: +/* 0A1A28 7F06CEF8 8CA20004 */ lw $v0, 4($a1) +/* 0A1A2C 7F06CEFC C4C60014 */ lwc1 $f6, 0x14($a2) +/* 0A1A30 7F06CF00 C4440008 */ lwc1 $f4, 8($v0) +/* 0A1A34 7F06CF04 46062002 */ mul.s $f0, $f4, $f6 +/* 0A1A38 7F06CF08 1000003D */ b .L7F06D000 +/* 0A1A3C 7F06CF0C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06CF10: +/* 0A1A40 7F06CF10 8CA20004 */ lw $v0, 4($a1) +/* 0A1A44 7F06CF14 C4CA0014 */ lwc1 $f10, 0x14($a2) +/* 0A1A48 7F06CF18 C4480018 */ lwc1 $f8, 0x18($v0) +/* 0A1A4C 7F06CF1C 460A4002 */ mul.s $f0, $f8, $f10 +/* 0A1A50 7F06CF20 10000037 */ b .L7F06D000 +/* 0A1A54 7F06CF24 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06CF28: +/* 0A1A58 7F06CF28 8CA20004 */ lw $v0, 4($a1) +/* 0A1A5C 7F06CF2C C4D20014 */ lwc1 $f18, 0x14($a2) +/* 0A1A60 7F06CF30 C4500018 */ lwc1 $f16, 0x18($v0) +/* 0A1A64 7F06CF34 46128002 */ mul.s $f0, $f16, $f18 +/* 0A1A68 7F06CF38 10000031 */ b .L7F06D000 +/* 0A1A6C 7F06CF3C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06CF40: +/* 0A1A70 7F06CF40 8CA20004 */ lw $v0, 4($a1) +/* 0A1A74 7F06CF44 C4C60014 */ lwc1 $f6, 0x14($a2) +/* 0A1A78 7F06CF48 C4440010 */ lwc1 $f4, 0x10($v0) +/* 0A1A7C 7F06CF4C 46062002 */ mul.s $f0, $f4, $f6 +/* 0A1A80 7F06CF50 1000002B */ b .L7F06D000 +/* 0A1A84 7F06CF54 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06CF58: +/* 0A1A88 7F06CF58 8CA20004 */ lw $v0, 4($a1) +/* 0A1A8C 7F06CF5C C4CA0014 */ lwc1 $f10, 0x14($a2) +/* 0A1A90 7F06CF60 C4480040 */ lwc1 $f8, 0x40($v0) +/* 0A1A94 7F06CF64 460A4002 */ mul.s $f0, $f8, $f10 +/* 0A1A98 7F06CF68 10000025 */ b .L7F06D000 +/* 0A1A9C 7F06CF6C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06CF70: +/* 0A1AA0 7F06CF70 8CA20004 */ lw $v0, 4($a1) +/* 0A1AA4 7F06CF74 C4D20014 */ lwc1 $f18, 0x14($a2) +/* 0A1AA8 7F06CF78 C450001C */ lwc1 $f16, 0x1c($v0) +/* 0A1AAC 7F06CF7C 46128002 */ mul.s $f0, $f16, $f18 +/* 0A1AB0 7F06CF80 1000001F */ b .L7F06D000 +/* 0A1AB4 7F06CF84 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06CF88: +/* 0A1AB8 7F06CF88 8CA20004 */ lw $v0, 4($a1) +/* 0A1ABC 7F06CF8C C4C60014 */ lwc1 $f6, 0x14($a2) +/* 0A1AC0 7F06CF90 C4440018 */ lwc1 $f4, 0x18($v0) +/* 0A1AC4 7F06CF94 46062002 */ mul.s $f0, $f4, $f6 +/* 0A1AC8 7F06CF98 10000019 */ b .L7F06D000 +/* 0A1ACC 7F06CF9C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06CFA0: +/* 0A1AD0 7F06CFA0 8CA20004 */ lw $v0, 4($a1) +/* 0A1AD4 7F06CFA4 C4CA0014 */ lwc1 $f10, 0x14($a2) +/* 0A1AD8 7F06CFA8 C448000C */ lwc1 $f8, 0xc($v0) +/* 0A1ADC 7F06CFAC 460A4002 */ mul.s $f0, $f8, $f10 +/* 0A1AE0 7F06CFB0 10000013 */ b .L7F06D000 +/* 0A1AE4 7F06CFB4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06CFB8: +/* 0A1AE8 7F06CFB8 8CA20004 */ lw $v0, 4($a1) +/* 0A1AEC 7F06CFBC C4D20014 */ lwc1 $f18, 0x14($a2) +/* 0A1AF0 7F06CFC0 C4500018 */ lwc1 $f16, 0x18($v0) +/* 0A1AF4 7F06CFC4 46128002 */ mul.s $f0, $f16, $f18 +/* 0A1AF8 7F06CFC8 1000000D */ b .L7F06D000 +/* 0A1AFC 7F06CFCC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06CFD0: +/* 0A1B00 7F06CFD0 8CA20004 */ lw $v0, 4($a1) +/* 0A1B04 7F06CFD4 C4C60014 */ lwc1 $f6, 0x14($a2) +/* 0A1B08 7F06CFD8 C4440014 */ lwc1 $f4, 0x14($v0) +/* 0A1B0C 7F06CFDC 46062002 */ mul.s $f0, $f4, $f6 +/* 0A1B10 7F06CFE0 10000007 */ b .L7F06D000 +/* 0A1B14 7F06CFE4 8FBF0014 */ lw $ra, 0x14($sp) +def_7F06CEF0: +.L7F06CFE8: +/* 0A1B18 7F06CFE8 8CA50008 */ lw $a1, 8($a1) +/* 0A1B1C 7F06CFEC 54A0FFB8 */ bnezl $a1, .L7F06CED0 +/* 0A1B20 7F06CFF0 94AE0000 */ lhu $t6, ($a1) +/* 0A1B24 7F06CFF4 44800000 */ mtc1 $zero, $f0 +.L7F06CFF8: +/* 0A1B28 7F06CFF8 00000000 */ nop +/* 0A1B2C 7F06CFFC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06D000: +/* 0A1B30 7F06D000 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A1B34 7F06D004 03E00008 */ jr $ra +/* 0A1B38 7F06D008 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void getinstsize(void) { + +} +#else +GLOBAL_ASM( +.text +glabel getinstsize +/* 0A1B3C 7F06D00C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A1B40 7F06D010 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A1B44 7F06D014 14800006 */ bnez $a0, .L7F06D030 +/* 0A1B48 7F06D018 AFA40018 */ sw $a0, 0x18($sp) +/* 0A1B4C 7F06D01C 3C048005 */ lui $a0, %hi(aGetinstsizeNoObjinst) +/* 0A1B50 7F06D020 0C0033D1 */ jal osSyncPrintf +/* 0A1B54 7F06D024 24844820 */ addiu $a0, %lo(aGetinstsizeNoObjinst) # addiu $a0, $a0, 0x4820 +/* 0A1B58 7F06D028 0FC1B11B */ jal return_null +/* 0A1B5C 7F06D02C 00000000 */ nop +.L7F06D030: +/* 0A1B60 7F06D030 8FAF0018 */ lw $t7, 0x18($sp) +/* 0A1B64 7F06D034 3C048005 */ lui $a0, %hi(aGetinstsizeNoObjdesc) +/* 0A1B68 7F06D038 8DE20008 */ lw $v0, 8($t7) +/* 0A1B6C 7F06D03C 54400008 */ bnezl $v0, .L7F06D060 +/* 0A1B70 7F06D040 8FB90018 */ lw $t9, 0x18($sp) +/* 0A1B74 7F06D044 0C0033D1 */ jal osSyncPrintf +/* 0A1B78 7F06D048 2484483C */ addiu $a0, %lo(aGetinstsizeNoObjdesc) # addiu $a0, $a0, 0x483c +/* 0A1B7C 7F06D04C 0FC1B11B */ jal return_null +/* 0A1B80 7F06D050 00000000 */ nop +/* 0A1B84 7F06D054 8FB80018 */ lw $t8, 0x18($sp) +/* 0A1B88 7F06D058 8F020008 */ lw $v0, 8($t8) +/* 0A1B8C 7F06D05C 8FB90018 */ lw $t9, 0x18($sp) +.L7F06D060: +/* 0A1B90 7F06D060 C4440010 */ lwc1 $f4, 0x10($v0) +/* 0A1B94 7F06D064 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A1B98 7F06D068 C7260014 */ lwc1 $f6, 0x14($t9) +/* 0A1B9C 7F06D06C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A1BA0 7F06D070 46062002 */ mul.s $f0, $f4, $f6 +/* 0A1BA4 7F06D074 03E00008 */ jr $ra +/* 0A1BA8 7F06D078 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06D07C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06D07C +/* 0A1BAC 7F06D07C C4800000 */ lwc1 $f0, ($a0) +/* 0A1BB0 7F06D080 C4A40000 */ lwc1 $f4, ($a1) +/* 0A1BB4 7F06D084 44866000 */ mtc1 $a2, $f12 +/* 0A1BB8 7F06D088 C4820004 */ lwc1 $f2, 4($a0) +/* 0A1BBC 7F06D08C 46002181 */ sub.s $f6, $f4, $f0 +/* 0A1BC0 7F06D090 C48E0008 */ lwc1 $f14, 8($a0) +/* 0A1BC4 7F06D094 460C3202 */ mul.s $f8, $f6, $f12 +/* 0A1BC8 7F06D098 46080280 */ add.s $f10, $f0, $f8 +/* 0A1BCC 7F06D09C E48A0000 */ swc1 $f10, ($a0) +/* 0A1BD0 7F06D0A0 C4B00004 */ lwc1 $f16, 4($a1) +/* 0A1BD4 7F06D0A4 46028481 */ sub.s $f18, $f16, $f2 +/* 0A1BD8 7F06D0A8 460C9102 */ mul.s $f4, $f18, $f12 +/* 0A1BDC 7F06D0AC 46041180 */ add.s $f6, $f2, $f4 +/* 0A1BE0 7F06D0B0 E4860004 */ swc1 $f6, 4($a0) +/* 0A1BE4 7F06D0B4 C4A80008 */ lwc1 $f8, 8($a1) +/* 0A1BE8 7F06D0B8 460E4281 */ sub.s $f10, $f8, $f14 +/* 0A1BEC 7F06D0BC 460C5402 */ mul.s $f16, $f10, $f12 +/* 0A1BF0 7F06D0C0 46107480 */ add.s $f18, $f14, $f16 +/* 0A1BF4 7F06D0C4 03E00008 */ jr $ra +/* 0A1BF8 7F06D0C8 E4920008 */ swc1 $f18, 8($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06D0CC(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054BB4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054BB8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054BBC +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F06D0CC +/* 0A1BFC 7F06D0CC 460C703C */ c.lt.s $f14, $f12 +/* 0A1C00 7F06D0D0 AFA60008 */ sw $a2, 8($sp) +/* 0A1C04 7F06D0D4 460C7081 */ sub.s $f2, $f14, $f12 +/* 0A1C08 7F06D0D8 3C018005 */ lui $at, %hi(D_80054BB4) +/* 0A1C0C 7F06D0DC C7A60008 */ lwc1 $f6, 8($sp) +/* 0A1C10 7F06D0E0 45000003 */ bc1f .L7F06D0F0 +/* 0A1C14 7F06D0E4 46001006 */ mov.s $f0, $f2 +/* 0A1C18 7F06D0E8 C42E4BB4 */ lwc1 $f14, %lo(D_80054BB4)($at) +/* 0A1C1C 7F06D0EC 460E1000 */ add.s $f0, $f2, $f14 +.L7F06D0F0: +/* 0A1C20 7F06D0F0 3C018005 */ lui $at, %hi(D_80054BB8) +/* 0A1C24 7F06D0F4 C42E4BB8 */ lwc1 $f14, %lo(D_80054BB8)($at) +/* 0A1C28 7F06D0F8 3C018005 */ lui $at, %hi(D_80054BBC) +/* 0A1C2C 7F06D0FC C4244BBC */ lwc1 $f4, %lo(D_80054BBC)($at) +/* 0A1C30 7F06D100 4604003C */ c.lt.s $f0, $f4 +/* 0A1C34 7F06D104 00000000 */ nop +/* 0A1C38 7F06D108 4502000A */ bc1fl .L7F06D134 +/* 0A1C3C 7F06D10C 46007281 */ sub.s $f10, $f14, $f0 +/* 0A1C40 7F06D110 46060202 */ mul.s $f8, $f0, $f6 +/* 0A1C44 7F06D114 46086300 */ add.s $f12, $f12, $f8 +/* 0A1C48 7F06D118 460C703E */ c.le.s $f14, $f12 +/* 0A1C4C 7F06D11C 00000000 */ nop +/* 0A1C50 7F06D120 4500000D */ bc1f .L7F06D158 +/* 0A1C54 7F06D124 00000000 */ nop +/* 0A1C58 7F06D128 03E00008 */ jr $ra +/* 0A1C5C 7F06D12C 460E6001 */ sub.s $f0, $f12, $f14 + +/* 0A1C60 7F06D130 46007281 */ sub.s $f10, $f14, $f0 +.L7F06D134: +/* 0A1C64 7F06D134 C7B00008 */ lwc1 $f16, 8($sp) +/* 0A1C68 7F06D138 44802000 */ mtc1 $zero, $f4 +/* 0A1C6C 7F06D13C 46105482 */ mul.s $f18, $f10, $f16 +/* 0A1C70 7F06D140 46126301 */ sub.s $f12, $f12, $f18 +/* 0A1C74 7F06D144 4604603C */ c.lt.s $f12, $f4 +/* 0A1C78 7F06D148 00000000 */ nop +/* 0A1C7C 7F06D14C 45000002 */ bc1f .L7F06D158 +/* 0A1C80 7F06D150 00000000 */ nop +/* 0A1C84 7F06D154 460E6300 */ add.s $f12, $f12, $f14 +.L7F06D158: +/* 0A1C88 7F06D158 03E00008 */ jr $ra +/* 0A1C8C 7F06D15C 46006006 */ mov.s $f0, $f12 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06D160(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06D160 +/* 0A1C90 7F06D160 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A1C94 7F06D164 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A1C98 7F06D168 AFB00018 */ sw $s0, 0x18($sp) +/* 0A1C9C 7F06D16C AFA50024 */ sw $a1, 0x24($sp) +/* 0A1CA0 7F06D170 AFA60028 */ sw $a2, 0x28($sp) +/* 0A1CA4 7F06D174 00808025 */ move $s0, $a0 +/* 0A1CA8 7F06D178 C4AE0000 */ lwc1 $f14, ($a1) +/* 0A1CAC 7F06D17C 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 0A1CB0 7F06D180 C48C0000 */ lwc1 $f12, ($a0) +/* 0A1CB4 7F06D184 E6000000 */ swc1 $f0, ($s0) +/* 0A1CB8 7F06D188 8FAF0024 */ lw $t7, 0x24($sp) +/* 0A1CBC 7F06D18C 8FA60028 */ lw $a2, 0x28($sp) +/* 0A1CC0 7F06D190 C60C0004 */ lwc1 $f12, 4($s0) +/* 0A1CC4 7F06D194 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 0A1CC8 7F06D198 C5EE0004 */ lwc1 $f14, 4($t7) +/* 0A1CCC 7F06D19C E6000004 */ swc1 $f0, 4($s0) +/* 0A1CD0 7F06D1A0 8FB80024 */ lw $t8, 0x24($sp) +/* 0A1CD4 7F06D1A4 8FA60028 */ lw $a2, 0x28($sp) +/* 0A1CD8 7F06D1A8 C60C0008 */ lwc1 $f12, 8($s0) +/* 0A1CDC 7F06D1AC 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 0A1CE0 7F06D1B0 C70E0008 */ lwc1 $f14, 8($t8) +/* 0A1CE4 7F06D1B4 E6000008 */ swc1 $f0, 8($s0) +/* 0A1CE8 7F06D1B8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A1CEC 7F06D1BC 8FB00018 */ lw $s0, 0x18($sp) +/* 0A1CF0 7F06D1C0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0A1CF4 7F06D1C4 03E00008 */ jr $ra +/* 0A1CF8 7F06D1C8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06D1CC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06D1CC +/* 0A1CFC 7F06D1CC 8C8E0008 */ lw $t6, 8($a0) +/* 0A1D00 7F06D1D0 00057880 */ sll $t7, $a1, 2 +/* 0A1D04 7F06D1D4 01E57823 */ subu $t7, $t7, $a1 +/* 0A1D08 7F06D1D8 000F7840 */ sll $t7, $t7, 1 +/* 0A1D0C 7F06D1DC 01CF3821 */ addu $a3, $t6, $t7 +/* 0A1D10 7F06D1E0 90E80002 */ lbu $t0, 2($a3) +/* 0A1D14 7F06D1E4 00001825 */ move $v1, $zero +/* 0A1D18 7F06D1E8 01004825 */ move $t1, $t0 +/* 0A1D1C 7F06D1EC 5920003A */ blezl $t1, .L7F06D2D8 +/* 0A1D20 7F06D1F0 94F80004 */ lhu $t8, 4($a3) +/* 0A1D24 7F06D1F4 94F80000 */ lhu $t8, ($a3) +/* 0A1D28 7F06D1F8 240E0008 */ li $t6, 8 +/* 0A1D2C 7F06D1FC 8C8D0010 */ lw $t5, 0x10($a0) +/* 0A1D30 7F06D200 03061021 */ addu $v0, $t8, $a2 +/* 0A1D34 7F06D204 30590007 */ andi $t9, $v0, 7 +/* 0A1D38 7F06D208 01D96023 */ subu $t4, $t6, $t9 +/* 0A1D3C 7F06D20C 318F00FF */ andi $t7, $t4, 0xff +/* 0A1D40 7F06D210 000228C2 */ srl $a1, $v0, 3 +/* 0A1D44 7F06D214 012F082A */ slt $at, $t1, $t7 +/* 0A1D48 7F06D218 318B00FF */ andi $t3, $t4, 0xff +/* 0A1D4C 7F06D21C 14200010 */ bnez $at, .L7F06D260 +/* 0A1D50 7F06D220 01A55021 */ addu $t2, $t5, $a1 +.L7F06D224: +/* 0A1D54 7F06D224 91590000 */ lbu $t9, ($t2) +/* 0A1D58 7F06D228 240D0001 */ li $t5, 1 +/* 0A1D5C 7F06D22C 016D7004 */ sllv $t6, $t5, $t3 +/* 0A1D60 7F06D230 012B1023 */ subu $v0, $t1, $t3 +/* 0A1D64 7F06D234 25CFFFFF */ addiu $t7, $t6, -1 +/* 0A1D68 7F06D238 304900FF */ andi $t1, $v0, 0xff +/* 0A1D6C 7F06D23C 032FC024 */ and $t8, $t9, $t7 +/* 0A1D70 7F06D240 01386804 */ sllv $t5, $t8, $t1 +/* 0A1D74 7F06D244 006D1825 */ or $v1, $v1, $t5 +/* 0A1D78 7F06D248 306EFFFF */ andi $t6, $v1, 0xffff +/* 0A1D7C 7F06D24C 29210008 */ slti $at, $t1, 8 +/* 0A1D80 7F06D250 01C01825 */ move $v1, $t6 +/* 0A1D84 7F06D254 254A0001 */ addiu $t2, $t2, 1 +/* 0A1D88 7F06D258 1020FFF2 */ beqz $at, .L7F06D224 +/* 0A1D8C 7F06D25C 240B0008 */ li $t3, 8 +.L7F06D260: +/* 0A1D90 7F06D260 1920000A */ blez $t1, .L7F06D28C +/* 0A1D94 7F06D264 01697823 */ subu $t7, $t3, $t1 +/* 0A1D98 7F06D268 91590000 */ lbu $t9, ($t2) +/* 0A1D9C 7F06D26C 240D0001 */ li $t5, 1 +/* 0A1DA0 7F06D270 012D7004 */ sllv $t6, $t5, $t1 +/* 0A1DA4 7F06D274 01F9C007 */ srav $t8, $t9, $t7 +/* 0A1DA8 7F06D278 25D9FFFF */ addiu $t9, $t6, -1 +/* 0A1DAC 7F06D27C 03197824 */ and $t7, $t8, $t9 +/* 0A1DB0 7F06D280 006F1825 */ or $v1, $v1, $t7 +/* 0A1DB4 7F06D284 306DFFFF */ andi $t5, $v1, 0xffff +/* 0A1DB8 7F06D288 01A01825 */ move $v1, $t5 +.L7F06D28C: +/* 0A1DBC 7F06D28C 310900FF */ andi $t1, $t0, 0xff +/* 0A1DC0 7F06D290 29210010 */ slti $at, $t1, 0x10 +/* 0A1DC4 7F06D294 1020000F */ beqz $at, .L7F06D2D4 +/* 0A1DC8 7F06D298 252E001F */ addiu $t6, $t1, 0x1f +/* 0A1DCC 7F06D29C 24180001 */ li $t8, 1 +/* 0A1DD0 7F06D2A0 01D8C804 */ sllv $t9, $t8, $t6 +/* 0A1DD4 7F06D2A4 00797824 */ and $t7, $v1, $t9 +/* 0A1DD8 7F06D2A8 11E0000A */ beqz $t7, .L7F06D2D4 +/* 0A1DDC 7F06D2AC 00601025 */ move $v0, $v1 +/* 0A1DE0 7F06D2B0 240D0010 */ li $t5, 16 +/* 0A1DE4 7F06D2B4 01A9C023 */ subu $t8, $t5, $t1 +/* 0A1DE8 7F06D2B8 240E0001 */ li $t6, 1 +/* 0A1DEC 7F06D2BC 030EC804 */ sllv $t9, $t6, $t8 +/* 0A1DF0 7F06D2C0 272FFFFF */ addiu $t7, $t9, -1 +/* 0A1DF4 7F06D2C4 012F6804 */ sllv $t5, $t7, $t1 +/* 0A1DF8 7F06D2C8 004D1825 */ or $v1, $v0, $t5 +/* 0A1DFC 7F06D2CC 306EFFFF */ andi $t6, $v1, 0xffff +/* 0A1E00 7F06D2D0 01C01825 */ move $v1, $t6 +.L7F06D2D4: +/* 0A1E04 7F06D2D4 94F80004 */ lhu $t8, 4($a3) +.L7F06D2D8: +/* 0A1E08 7F06D2D8 00781821 */ addu $v1, $v1, $t8 +/* 0A1E0C 7F06D2DC 03E00008 */ jr $ra +/* 0A1E10 7F06D2E0 3062FFFF */ andi $v0, $v1, 0xffff +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06D2E4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06D2E4 +/* 0A1E14 7F06D2E4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0A1E18 7F06D2E8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0A1E1C 7F06D2EC AFB20020 */ sw $s2, 0x20($sp) +/* 0A1E20 7F06D2F0 AFB1001C */ sw $s1, 0x1c($sp) +/* 0A1E24 7F06D2F4 AFB00018 */ sw $s0, 0x18($sp) +/* 0A1E28 7F06D2F8 AFA5002C */ sw $a1, 0x2c($sp) +/* 0A1E2C 7F06D2FC 94EE000C */ lhu $t6, 0xc($a3) +/* 0A1E30 7F06D300 8FAF0038 */ lw $t7, 0x38($sp) +/* 0A1E34 7F06D304 00E09025 */ move $s2, $a3 +/* 0A1E38 7F06D308 00044080 */ sll $t0, $a0, 2 +/* 0A1E3C 7F06D30C 01CF0019 */ multu $t6, $t7 +/* 0A1E40 7F06D310 00045880 */ sll $t3, $a0, 2 +/* 0A1E44 7F06D314 00008812 */ mflo $s1 +/* 0A1E48 7F06D318 50A00008 */ beql $a1, $zero, .L7F06D33C +/* 0A1E4C 7F06D31C 8CCA0004 */ lw $t2, 4($a2) +/* 0A1E50 7F06D320 8CD90004 */ lw $t9, 4($a2) +/* 0A1E54 7F06D324 01044023 */ subu $t0, $t0, $a0 +/* 0A1E58 7F06D328 00084040 */ sll $t0, $t0, 1 +/* 0A1E5C 7F06D32C 03284821 */ addu $t1, $t9, $t0 +/* 0A1E60 7F06D330 10000006 */ b .L7F06D34C +/* 0A1E64 7F06D334 95300004 */ lhu $s0, 4($t1) +/* 0A1E68 7F06D338 8CCA0004 */ lw $t2, 4($a2) +.L7F06D33C: +/* 0A1E6C 7F06D33C 01645823 */ subu $t3, $t3, $a0 +/* 0A1E70 7F06D340 000B5840 */ sll $t3, $t3, 1 +/* 0A1E74 7F06D344 014B6021 */ addu $t4, $t2, $t3 +/* 0A1E78 7F06D348 95900002 */ lhu $s0, 2($t4) +.L7F06D34C: +/* 0A1E7C 7F06D34C 02402025 */ move $a0, $s2 +/* 0A1E80 7F06D350 02002825 */ move $a1, $s0 +/* 0A1E84 7F06D354 0FC1B473 */ jal sub_GAME_7F06D1CC +/* 0A1E88 7F06D358 02203025 */ move $a2, $s1 +/* 0A1E8C 7F06D35C 8FAD003C */ lw $t5, 0x3c($sp) +/* 0A1E90 7F06D360 02402025 */ move $a0, $s2 +/* 0A1E94 7F06D364 26050001 */ addiu $a1, $s0, 1 +/* 0A1E98 7F06D368 02203025 */ move $a2, $s1 +/* 0A1E9C 7F06D36C 0FC1B473 */ jal sub_GAME_7F06D1CC +/* 0A1EA0 7F06D370 A5A20000 */ sh $v0, ($t5) +/* 0A1EA4 7F06D374 8FAE003C */ lw $t6, 0x3c($sp) +/* 0A1EA8 7F06D378 02402025 */ move $a0, $s2 +/* 0A1EAC 7F06D37C 26050002 */ addiu $a1, $s0, 2 +/* 0A1EB0 7F06D380 02203025 */ move $a2, $s1 +/* 0A1EB4 7F06D384 0FC1B473 */ jal sub_GAME_7F06D1CC +/* 0A1EB8 7F06D388 A5C20002 */ sh $v0, 2($t6) +/* 0A1EBC 7F06D38C 8FAF003C */ lw $t7, 0x3c($sp) +/* 0A1EC0 7F06D390 02402025 */ move $a0, $s2 +/* 0A1EC4 7F06D394 26050003 */ addiu $a1, $s0, 3 +/* 0A1EC8 7F06D398 02203025 */ move $a2, $s1 +/* 0A1ECC 7F06D39C 0FC1B473 */ jal sub_GAME_7F06D1CC +/* 0A1ED0 7F06D3A0 A5E20004 */ sh $v0, 4($t7) +/* 0A1ED4 7F06D3A4 8FB8002C */ lw $t8, 0x2c($sp) +/* 0A1ED8 7F06D3A8 8FA5003C */ lw $a1, 0x3c($sp) +/* 0A1EDC 7F06D3AC 3043FFFF */ andi $v1, $v0, 0xffff +/* 0A1EE0 7F06D3B0 5300000A */ beql $t8, $zero, .L7F06D3DC +/* 0A1EE4 7F06D3B4 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A1EE8 7F06D3B8 84B90000 */ lh $t9, ($a1) +/* 0A1EEC 7F06D3BC 3C090001 */ lui $t1, 1 +/* 0A1EF0 7F06D3C0 00194023 */ negu $t0, $t9 +/* 0A1EF4 7F06D3C4 10400004 */ beqz $v0, .L7F06D3D8 +/* 0A1EF8 7F06D3C8 A4A80000 */ sh $t0, ($a1) +/* 0A1EFC 7F06D3CC 01221823 */ subu $v1, $t1, $v0 +/* 0A1F00 7F06D3D0 306AFFFF */ andi $t2, $v1, 0xffff +/* 0A1F04 7F06D3D4 01401825 */ move $v1, $t2 +.L7F06D3D8: +/* 0A1F08 7F06D3D8 8FBF0024 */ lw $ra, 0x24($sp) +.L7F06D3DC: +/* 0A1F0C 7F06D3DC 8FB00018 */ lw $s0, 0x18($sp) +/* 0A1F10 7F06D3E0 8FB1001C */ lw $s1, 0x1c($sp) +/* 0A1F14 7F06D3E4 8FB20020 */ lw $s2, 0x20($sp) +/* 0A1F18 7F06D3E8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0A1F1C 7F06D3EC 03E00008 */ jr $ra +/* 0A1F20 7F06D3F0 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06D3F4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054BC0 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F06D3F4 +/* 0A1F24 7F06D3F4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A1F28 7F06D3F8 8FAE0040 */ lw $t6, 0x40($sp) +/* 0A1F2C 7F06D3FC AFBF001C */ sw $ra, 0x1c($sp) +/* 0A1F30 7F06D400 27AF0028 */ addiu $t7, $sp, 0x28 +/* 0A1F34 7F06D404 AFAF0014 */ sw $t7, 0x14($sp) +/* 0A1F38 7F06D408 0FC1B4B9 */ jal sub_GAME_7F06D2E4 +/* 0A1F3C 7F06D40C AFAE0010 */ sw $t6, 0x10($sp) +/* 0A1F40 7F06D410 87B80028 */ lh $t8, 0x28($sp) +/* 0A1F44 7F06D414 8FA30044 */ lw $v1, 0x44($sp) +/* 0A1F48 7F06D418 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0A1F4C 7F06D41C 44982000 */ mtc1 $t8, $f4 +/* 0A1F50 7F06D420 00000000 */ nop +/* 0A1F54 7F06D424 468021A0 */ cvt.s.w $f6, $f4 +/* 0A1F58 7F06D428 44822000 */ mtc1 $v0, $f4 +/* 0A1F5C 7F06D42C E4660000 */ swc1 $f6, ($v1) +/* 0A1F60 7F06D430 87B9002A */ lh $t9, 0x2a($sp) +/* 0A1F64 7F06D434 468021A0 */ cvt.s.w $f6, $f4 +/* 0A1F68 7F06D438 44994000 */ mtc1 $t9, $f8 +/* 0A1F6C 7F06D43C 00000000 */ nop +/* 0A1F70 7F06D440 468042A0 */ cvt.s.w $f10, $f8 +/* 0A1F74 7F06D444 E46A0004 */ swc1 $f10, 4($v1) +/* 0A1F78 7F06D448 87A8002C */ lh $t0, 0x2c($sp) +/* 0A1F7C 7F06D44C 44888000 */ mtc1 $t0, $f16 +/* 0A1F80 7F06D450 00000000 */ nop +/* 0A1F84 7F06D454 468084A0 */ cvt.s.w $f18, $f16 +/* 0A1F88 7F06D458 04410004 */ bgez $v0, .L7F06D46C +/* 0A1F8C 7F06D45C E4720008 */ swc1 $f18, 8($v1) +/* 0A1F90 7F06D460 44814000 */ mtc1 $at, $f8 +/* 0A1F94 7F06D464 00000000 */ nop +/* 0A1F98 7F06D468 46083180 */ add.s $f6, $f6, $f8 +.L7F06D46C: +/* 0A1F9C 7F06D46C 3C018005 */ lui $at, %hi(D_80054BC0) +/* 0A1FA0 7F06D470 C42A4BC0 */ lwc1 $f10, %lo(D_80054BC0)($at) +/* 0A1FA4 7F06D474 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A1FA8 7F06D478 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0A1FAC 7F06D47C 460A3402 */ mul.s $f16, $f6, $f10 +/* 0A1FB0 7F06D480 44819000 */ mtc1 $at, $f18 +/* 0A1FB4 7F06D484 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0A1FB8 7F06D488 03E00008 */ jr $ra +/* 0A1FBC 7F06D48C 46128003 */ div.s $f0, $f16, $f18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06D490(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06D490 +/* 0A1FC0 7F06D490 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0A1FC4 7F06D494 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A1FC8 7F06D498 AFB10018 */ sw $s1, 0x18($sp) +/* 0A1FCC 7F06D49C 00808825 */ move $s1, $a0 +/* 0A1FD0 7F06D4A0 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A1FD4 7F06D4A4 AFB00014 */ sw $s0, 0x14($sp) +/* 0A1FD8 7F06D4A8 804E0000 */ lb $t6, ($v0) +/* 0A1FDC 7F06D4AC 00408025 */ move $s0, $v0 +/* 0A1FE0 7F06D4B0 55C0007B */ bnezl $t6, .L7F06D6A0 +/* 0A1FE4 7F06D4B4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A1FE8 7F06D4B8 C4440034 */ lwc1 $f4, 0x34($v0) +/* 0A1FEC 7F06D4BC 44807000 */ mtc1 $zero, $f14 +/* 0A1FF0 7F06D4C0 E7A40038 */ swc1 $f4, 0x38($sp) +/* 0A1FF4 7F06D4C4 C4460038 */ lwc1 $f6, 0x38($v0) +/* 0A1FF8 7F06D4C8 E7A6003C */ swc1 $f6, 0x3c($sp) +/* 0A1FFC 7F06D4CC C448003C */ lwc1 $f8, 0x3c($v0) +/* 0A2000 7F06D4D0 E7A80040 */ swc1 $f8, 0x40($sp) +/* 0A2004 7F06D4D4 C44A0030 */ lwc1 $f10, 0x30($v0) +/* 0A2008 7F06D4D8 E44A0014 */ swc1 $f10, 0x14($v0) +/* 0A200C 7F06D4DC C620002C */ lwc1 $f0, 0x2c($s1) +/* 0A2010 7F06D4E0 46007032 */ c.eq.s $f14, $f0 +/* 0A2014 7F06D4E4 00000000 */ nop +/* 0A2018 7F06D4E8 4503000F */ bc1tl .L7F06D528 +/* 0A201C 7F06D4EC 8E380054 */ lw $t8, 0x54($s1) +/* 0A2020 7F06D4F0 804F0001 */ lb $t7, 1($v0) +/* 0A2024 7F06D4F4 27A40038 */ addiu $a0, $sp, 0x38 +/* 0A2028 7F06D4F8 51E0000B */ beql $t7, $zero, .L7F06D528 +/* 0A202C 7F06D4FC 8E380054 */ lw $t8, 0x54($s1) +/* 0A2030 7F06D500 44060000 */ mfc1 $a2, $f0 +/* 0A2034 7F06D504 0FC1B41F */ jal sub_GAME_7F06D07C +/* 0A2038 7F06D508 24450024 */ addiu $a1, $v0, 0x24 +/* 0A203C 7F06D50C C60C0030 */ lwc1 $f12, 0x30($s0) +/* 0A2040 7F06D510 C60E0020 */ lwc1 $f14, 0x20($s0) +/* 0A2044 7F06D514 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 0A2048 7F06D518 8E26002C */ lw $a2, 0x2c($s1) +/* 0A204C 7F06D51C 44807000 */ mtc1 $zero, $f14 +/* 0A2050 7F06D520 E6000014 */ swc1 $f0, 0x14($s0) +/* 0A2054 7F06D524 8E380054 */ lw $t8, 0x54($s1) +.L7F06D528: +/* 0A2058 7F06D528 02202025 */ move $a0, $s1 +/* 0A205C 7F06D52C 26050008 */ addiu $a1, $s0, 8 +/* 0A2060 7F06D530 17000006 */ bnez $t8, .L7F06D54C +/* 0A2064 7F06D534 27A6002C */ addiu $a2, $sp, 0x2c +/* 0A2068 7F06D538 C6300084 */ lwc1 $f16, 0x84($s1) +/* 0A206C 7F06D53C 46107032 */ c.eq.s $f14, $f16 +/* 0A2070 7F06D540 00000000 */ nop +/* 0A2074 7F06D544 45030015 */ bc1tl .L7F06D59C +/* 0A2078 7F06D548 C7A40038 */ lwc1 $f4, 0x38($sp) +.L7F06D54C: +/* 0A207C 7F06D54C 82190002 */ lb $t9, 2($s0) +/* 0A2080 7F06D550 C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0A2084 7F06D554 53200011 */ beql $t9, $zero, .L7F06D59C +/* 0A2088 7F06D558 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0A208C 7F06D55C C622005C */ lwc1 $f2, 0x5c($s1) +/* 0A2090 7F06D560 C6000050 */ lwc1 $f0, 0x50($s0) +/* 0A2094 7F06D564 C62C0084 */ lwc1 $f12, 0x84($s1) +/* 0A2098 7F06D568 46027032 */ c.eq.s $f14, $f2 +/* 0A209C 7F06D56C 00000000 */ nop +/* 0A20A0 7F06D570 45030006 */ bc1tl .L7F06D58C +/* 0A20A4 7F06D574 46080281 */ sub.s $f10, $f0, $f8 +/* 0A20A8 7F06D578 C6120044 */ lwc1 $f18, 0x44($s0) +/* 0A20AC 7F06D57C 46009101 */ sub.s $f4, $f18, $f0 +/* 0A20B0 7F06D580 46022182 */ mul.s $f6, $f4, $f2 +/* 0A20B4 7F06D584 46060000 */ add.s $f0, $f0, $f6 +/* 0A20B8 7F06D588 46080281 */ sub.s $f10, $f0, $f8 +.L7F06D58C: +/* 0A20BC 7F06D58C 460C5402 */ mul.s $f16, $f10, $f12 +/* 0A20C0 7F06D590 46104480 */ add.s $f18, $f8, $f16 +/* 0A20C4 7F06D594 E7B2003C */ swc1 $f18, 0x3c($sp) +/* 0A20C8 7F06D598 C7A40038 */ lwc1 $f4, 0x38($sp) +.L7F06D59C: +/* 0A20CC 7F06D59C C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0A20D0 7F06D5A0 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 0A20D4 7F06D5A4 E7A4002C */ swc1 $f4, 0x2c($sp) +/* 0A20D8 7F06D5A8 E7A60030 */ swc1 $f6, 0x30($sp) +/* 0A20DC 7F06D5AC E7AA0034 */ swc1 $f10, 0x34($sp) +/* 0A20E0 7F06D5B0 8E2200A0 */ lw $v0, 0xa0($s1) +/* 0A20E4 7F06D5B4 50400006 */ beql $v0, $zero, .L7F06D5D0 +/* 0A20E8 7F06D5B8 C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 0A20EC 7F06D5BC 0040F809 */ jalr $v0 +/* 0A20F0 7F06D5C0 26070004 */ addiu $a3, $s0, 4 +/* 0A20F4 7F06D5C4 50400036 */ beql $v0, $zero, .L7F06D6A0 +/* 0A20F8 7F06D5C8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A20FC 7F06D5CC C7A8002C */ lwc1 $f8, 0x2c($sp) +.L7F06D5D0: +/* 0A2100 7F06D5D0 C7B00038 */ lwc1 $f16, 0x38($sp) +/* 0A2104 7F06D5D4 C7A40034 */ lwc1 $f4, 0x34($sp) +/* 0A2108 7F06D5D8 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 0A210C 7F06D5DC 46104481 */ sub.s $f18, $f8, $f16 +/* 0A2110 7F06D5E0 46062281 */ sub.s $f10, $f4, $f6 +/* 0A2114 7F06D5E4 E7B20038 */ swc1 $f18, 0x38($sp) +/* 0A2118 7F06D5E8 E7AA0040 */ swc1 $f10, 0x40($sp) +/* 0A211C 7F06D5EC E6080008 */ swc1 $f8, 8($s0) +/* 0A2120 7F06D5F0 C7B00030 */ lwc1 $f16, 0x30($sp) +/* 0A2124 7F06D5F4 C6120004 */ lwc1 $f18, 4($s0) +/* 0A2128 7F06D5F8 C60A0034 */ lwc1 $f10, 0x34($s0) +/* 0A212C 7F06D5FC 82080001 */ lb $t0, 1($s0) +/* 0A2130 7F06D600 46128100 */ add.s $f4, $f16, $f18 +/* 0A2134 7F06D604 C612003C */ lwc1 $f18, 0x3c($s0) +/* 0A2138 7F06D608 E604000C */ swc1 $f4, 0xc($s0) +/* 0A213C 7F06D60C C7A60034 */ lwc1 $f6, 0x34($sp) +/* 0A2140 7F06D610 E6060010 */ swc1 $f6, 0x10($s0) +/* 0A2144 7F06D614 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0A2148 7F06D618 46085400 */ add.s $f16, $f10, $f8 +/* 0A214C 7F06D61C E6100034 */ swc1 $f16, 0x34($s0) +/* 0A2150 7F06D620 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0A2154 7F06D624 46049180 */ add.s $f6, $f18, $f4 +/* 0A2158 7F06D628 11000009 */ beqz $t0, .L7F06D650 +/* 0A215C 7F06D62C E606003C */ swc1 $f6, 0x3c($s0) +/* 0A2160 7F06D630 C60A0024 */ lwc1 $f10, 0x24($s0) +/* 0A2164 7F06D634 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0A2168 7F06D638 C612002C */ lwc1 $f18, 0x2c($s0) +/* 0A216C 7F06D63C 46085400 */ add.s $f16, $f10, $f8 +/* 0A2170 7F06D640 E6100024 */ swc1 $f16, 0x24($s0) +/* 0A2174 7F06D644 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0A2178 7F06D648 46049180 */ add.s $f6, $f18, $f4 +/* 0A217C 7F06D64C E606002C */ swc1 $f6, 0x2c($s0) +.L7F06D650: +/* 0A2180 7F06D650 82090002 */ lb $t1, 2($s0) +/* 0A2184 7F06D654 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0A2188 7F06D658 51200011 */ beql $t1, $zero, .L7F06D6A0 +/* 0A218C 7F06D65C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A2190 7F06D660 C60A004C */ lwc1 $f10, 0x4c($s0) +/* 0A2194 7F06D664 C6120054 */ lwc1 $f18, 0x54($s0) +/* 0A2198 7F06D668 46085400 */ add.s $f16, $f10, $f8 +/* 0A219C 7F06D66C C60A0040 */ lwc1 $f10, 0x40($s0) +/* 0A21A0 7F06D670 E610004C */ swc1 $f16, 0x4c($s0) +/* 0A21A4 7F06D674 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0A21A8 7F06D678 46049180 */ add.s $f6, $f18, $f4 +/* 0A21AC 7F06D67C C6120048 */ lwc1 $f18, 0x48($s0) +/* 0A21B0 7F06D680 E6060054 */ swc1 $f6, 0x54($s0) +/* 0A21B4 7F06D684 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0A21B8 7F06D688 46085400 */ add.s $f16, $f10, $f8 +/* 0A21BC 7F06D68C E6100040 */ swc1 $f16, 0x40($s0) +/* 0A21C0 7F06D690 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0A21C4 7F06D694 46049180 */ add.s $f6, $f18, $f4 +/* 0A21C8 7F06D698 E6060048 */ swc1 $f6, 0x48($s0) +/* 0A21CC 7F06D69C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F06D6A0: +/* 0A21D0 7F06D6A0 8FB00014 */ lw $s0, 0x14($sp) +/* 0A21D4 7F06D6A4 8FB10018 */ lw $s1, 0x18($sp) +/* 0A21D8 7F06D6A8 03E00008 */ jr $ra +/* 0A21DC 7F06D6AC 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +void subcalcpos(void) { + +} +#else +GLOBAL_ASM( +.text +glabel subcalcpos +/* 0A21E0 7F06D6B0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A21E4 7F06D6B4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A21E8 7F06D6B8 14800006 */ bnez $a0, .L7F06D6D4 +/* 0A21EC 7F06D6BC AFA40018 */ sw $a0, 0x18($sp) +/* 0A21F0 7F06D6C0 3C048005 */ lui $a0, %hi(aSubcalcposNoObjanim) +/* 0A21F4 7F06D6C4 0C0033D1 */ jal osSyncPrintf +/* 0A21F8 7F06D6C8 24844858 */ addiu $a0, %lo(aSubcalcposNoObjanim) # addiu $a0, $a0, 0x4858 +/* 0A21FC 7F06D6CC 0FC1B11B */ jal return_null +/* 0A2200 7F06D6D0 00000000 */ nop +.L7F06D6D4: +/* 0A2204 7F06D6D4 8FAF0018 */ lw $t7, 0x18($sp) +/* 0A2208 7F06D6D8 3C048005 */ lui $a0, %hi(aSubcalcposNoObjdesc) +/* 0A220C 7F06D6DC 8DE20008 */ lw $v0, 8($t7) +/* 0A2210 7F06D6E0 54400008 */ bnezl $v0, .L7F06D704 +/* 0A2214 7F06D6E4 8C450000 */ lw $a1, ($v0) +/* 0A2218 7F06D6E8 0C0033D1 */ jal osSyncPrintf +/* 0A221C 7F06D6EC 24844874 */ addiu $a0, %lo(aSubcalcposNoObjdesc) # addiu $a0, $a0, 0x4874 +/* 0A2220 7F06D6F0 0FC1B11B */ jal return_null +/* 0A2224 7F06D6F4 00000000 */ nop +/* 0A2228 7F06D6F8 8FB80018 */ lw $t8, 0x18($sp) +/* 0A222C 7F06D6FC 8F020008 */ lw $v0, 8($t8) +/* 0A2230 7F06D700 8C450000 */ lw $a1, ($v0) +.L7F06D704: +/* 0A2234 7F06D704 50A00009 */ beql $a1, $zero, .L7F06D72C +/* 0A2238 7F06D708 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A223C 7F06D70C 94B90000 */ lhu $t9, ($a1) +/* 0A2240 7F06D710 24010001 */ li $at, 1 +/* 0A2244 7F06D714 332800FF */ andi $t0, $t9, 0xff +/* 0A2248 7F06D718 55010004 */ bnel $t0, $at, .L7F06D72C +/* 0A224C 7F06D71C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A2250 7F06D720 0FC1B524 */ jal sub_GAME_7F06D490 +/* 0A2254 7F06D724 8FA40018 */ lw $a0, 0x18($sp) +/* 0A2258 7F06D728 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06D72C: +/* 0A225C 7F06D72C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A2260 7F06D730 03E00008 */ jr $ra +/* 0A2264 7F06D734 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void process_01_group_heading(void) { + +} +#else +GLOBAL_ASM( +.text +glabel process_01_group_heading +/* 0A2268 7F06D738 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0A226C 7F06D73C AFBF0014 */ sw $ra, 0x14($sp) +/* 0A2270 7F06D740 AFA40080 */ sw $a0, 0x80($sp) +/* 0A2274 7F06D744 8CCE0004 */ lw $t6, 4($a2) +/* 0A2278 7F06D748 00A03825 */ move $a3, $a1 +/* 0A227C 7F06D74C 00A02025 */ move $a0, $a1 +/* 0A2280 7F06D750 00C02825 */ move $a1, $a2 +/* 0A2284 7F06D754 AFA70084 */ sw $a3, 0x84($sp) +/* 0A2288 7F06D758 AFA60088 */ sw $a2, 0x88($sp) +/* 0A228C 7F06D75C 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A2290 7F06D760 AFAE007C */ sw $t6, 0x7c($sp) +/* 0A2294 7F06D764 8FA70084 */ lw $a3, 0x84($sp) +/* 0A2298 7F06D768 8FB8007C */ lw $t8, 0x7c($sp) +/* 0A229C 7F06D76C 244F0008 */ addiu $t7, $v0, 8 +/* 0A22A0 7F06D770 C4E40014 */ lwc1 $f4, 0x14($a3) +/* 0A22A4 7F06D774 AFAF0070 */ sw $t7, 0x70($sp) +/* 0A22A8 7F06D778 8FA60088 */ lw $a2, 0x88($sp) +/* 0A22AC 7F06D77C E7A40074 */ swc1 $f4, 0x74($sp) +/* 0A22B0 7F06D780 87030002 */ lh $v1, 2($t8) +/* 0A22B4 7F06D784 8CF9000C */ lw $t9, 0xc($a3) +/* 0A22B8 7F06D788 C44C0014 */ lwc1 $f12, 0x14($v0) +/* 0A22BC 7F06D78C 00034980 */ sll $t1, $v1, 6 +/* 0A22C0 7F06D790 03295021 */ addu $t2, $t9, $t1 +/* 0A22C4 7F06D794 AFAA0060 */ sw $t2, 0x60($sp) +/* 0A22C8 7F06D798 8CC50008 */ lw $a1, 8($a2) +/* 0A22CC 7F06D79C 00404025 */ move $t0, $v0 +/* 0A22D0 7F06D7A0 8FAB0080 */ lw $t3, 0x80($sp) +/* 0A22D4 7F06D7A4 10A00009 */ beqz $a1, .L7F06D7CC +/* 0A22D8 7F06D7A8 00E02025 */ move $a0, $a3 +/* 0A22DC 7F06D7AC 00003025 */ move $a2, $zero +/* 0A22E0 7F06D7B0 AFA20078 */ sw $v0, 0x78($sp) +/* 0A22E4 7F06D7B4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A22E8 7F06D7B8 E7AC006C */ swc1 $f12, 0x6c($sp) +/* 0A22EC 7F06D7BC 8FA80078 */ lw $t0, 0x78($sp) +/* 0A22F0 7F06D7C0 C7AC006C */ lwc1 $f12, 0x6c($sp) +/* 0A22F4 7F06D7C4 10000002 */ b .L7F06D7D0 +/* 0A22F8 7F06D7C8 00403825 */ move $a3, $v0 +.L7F06D7CC: +/* 0A22FC 7F06D7CC 8D670000 */ lw $a3, ($t3) +.L7F06D7D0: +/* 0A2300 7F06D7D0 C5000018 */ lwc1 $f0, 0x18($t0) +/* 0A2304 7F06D7D4 44803000 */ mtc1 $zero, $f6 +/* 0A2308 7F06D7D8 00000000 */ nop +/* 0A230C 7F06D7DC 46003032 */ c.eq.s $f6, $f0 +/* 0A2310 7F06D7E0 00000000 */ nop +/* 0A2314 7F06D7E4 45010007 */ bc1t .L7F06D804 +/* 0A2318 7F06D7E8 00000000 */ nop +/* 0A231C 7F06D7EC C50E001C */ lwc1 $f14, 0x1c($t0) +/* 0A2320 7F06D7F0 44060000 */ mfc1 $a2, $f0 +/* 0A2324 7F06D7F4 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 0A2328 7F06D7F8 AFA70068 */ sw $a3, 0x68($sp) +/* 0A232C 7F06D7FC 8FA70068 */ lw $a3, 0x68($sp) +/* 0A2330 7F06D800 46000306 */ mov.s $f12, $f0 +.L7F06D804: +/* 0A2334 7F06D804 10E00019 */ beqz $a3, .L7F06D86C +/* 0A2338 7F06D808 8FA40070 */ lw $a0, 0x70($sp) +/* 0A233C 7F06D80C 44056000 */ mfc1 $a1, $f12 +/* 0A2340 7F06D810 8FA40070 */ lw $a0, 0x70($sp) +/* 0A2344 7F06D814 27A60020 */ addiu $a2, $sp, 0x20 +/* 0A2348 7F06D818 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0A234C 7F06D81C AFA70068 */ sw $a3, 0x68($sp) +/* 0A2350 7F06D820 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A2354 7F06D824 44815000 */ mtc1 $at, $f10 +/* 0A2358 7F06D828 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 0A235C 7F06D82C 8FA70068 */ lw $a3, 0x68($sp) +/* 0A2360 7F06D830 27A50020 */ addiu $a1, $sp, 0x20 +/* 0A2364 7F06D834 460A4032 */ c.eq.s $f8, $f10 +/* 0A2368 7F06D838 00000000 */ nop +/* 0A236C 7F06D83C 45030006 */ bc1tl .L7F06D858 +/* 0A2370 7F06D840 00E02025 */ move $a0, $a3 +/* 0A2374 7F06D844 46004306 */ mov.s $f12, $f8 +/* 0A2378 7F06D848 0FC162C4 */ jal matrix_scalar_multiply_2 +/* 0A237C 7F06D84C AFA70068 */ sw $a3, 0x68($sp) +/* 0A2380 7F06D850 8FA70068 */ lw $a3, 0x68($sp) +/* 0A2384 7F06D854 00E02025 */ move $a0, $a3 +.L7F06D858: +/* 0A2388 7F06D858 27A50020 */ addiu $a1, $sp, 0x20 +/* 0A238C 7F06D85C 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A2390 7F06D860 8FA60060 */ lw $a2, 0x60($sp) +/* 0A2394 7F06D864 1000000F */ b .L7F06D8A4 +/* 0A2398 7F06D868 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06D86C: +/* 0A239C 7F06D86C 44056000 */ mfc1 $a1, $f12 +/* 0A23A0 7F06D870 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0A23A4 7F06D874 8FA60060 */ lw $a2, 0x60($sp) +/* 0A23A8 7F06D878 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A23AC 7F06D87C 44819000 */ mtc1 $at, $f18 +/* 0A23B0 7F06D880 C7B00074 */ lwc1 $f16, 0x74($sp) +/* 0A23B4 7F06D884 8FA50060 */ lw $a1, 0x60($sp) +/* 0A23B8 7F06D888 46128032 */ c.eq.s $f16, $f18 +/* 0A23BC 7F06D88C 00000000 */ nop +/* 0A23C0 7F06D890 45030004 */ bc1tl .L7F06D8A4 +/* 0A23C4 7F06D894 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A23C8 7F06D898 0FC162C4 */ jal matrix_scalar_multiply_2 +/* 0A23CC 7F06D89C 46008306 */ mov.s $f12, $f16 +/* 0A23D0 7F06D8A0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06D8A4: +/* 0A23D4 7F06D8A4 27BD0080 */ addiu $sp, $sp, 0x80 +/* 0A23D8 7F06D8A8 03E00008 */ jr $ra +/* 0A23DC 7F06D8AC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06D8B0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054BC4 +.word 0x40490fdb /*3.1415927*/ +glabel D_80054BC8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054BCC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054BD0 +.word 0x40490fdb /*3.1415927*/ +glabel D_80054BD4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054BD8 +.word 0x3f63dec6 /*0.890118*/ +.text +glabel sub_GAME_7F06D8B0 +/* 0A23E0 7F06D8B0 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0A23E4 7F06D8B4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A23E8 7F06D8B8 AFA500BC */ sw $a1, 0xbc($sp) +/* 0A23EC 7F06D8BC AFA700C4 */ sw $a3, 0xc4($sp) +/* 0A23F0 7F06D8C0 94CE0000 */ lhu $t6, ($a2) +/* 0A23F4 7F06D8C4 AFAE00B4 */ sw $t6, 0xb4($sp) +/* 0A23F8 7F06D8C8 8CCF0004 */ lw $t7, 4($a2) +/* 0A23FC 7F06D8CC AFAF00B0 */ sw $t7, 0xb0($sp) +/* 0A2400 7F06D8D0 85F9000E */ lh $t9, 0xe($t7) +/* 0A2404 7F06D8D4 AFB90064 */ sw $t9, 0x64($sp) +/* 0A2408 7F06D8D8 85E80010 */ lh $t0, 0x10($t7) +/* 0A240C 7F06D8DC AFA80060 */ sw $t0, 0x60($sp) +/* 0A2410 7F06D8E0 85E90012 */ lh $t1, 0x12($t7) +/* 0A2414 7F06D8E4 AFA9005C */ sw $t1, 0x5c($sp) +/* 0A2418 7F06D8E8 8CAB000C */ lw $t3, 0xc($a1) +/* 0A241C 7F06D8EC AFAB0058 */ sw $t3, 0x58($sp) +/* 0A2420 7F06D8F0 8CCC0008 */ lw $t4, 8($a2) +/* 0A2424 7F06D8F4 00003025 */ move $a2, $zero +/* 0A2428 7F06D8F8 11800006 */ beqz $t4, .L7F06D914 +/* 0A242C 7F06D8FC AFAC001C */ sw $t4, 0x1c($sp) +/* 0A2430 7F06D900 00A02025 */ move $a0, $a1 +/* 0A2434 7F06D904 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A2438 7F06D908 01802825 */ move $a1, $t4 +/* 0A243C 7F06D90C 10000003 */ b .L7F06D91C +/* 0A2440 7F06D910 AFA200AC */ sw $v0, 0xac($sp) +.L7F06D914: +/* 0A2444 7F06D914 8C8E0000 */ lw $t6, ($a0) +/* 0A2448 7F06D918 AFAE00AC */ sw $t6, 0xac($sp) +.L7F06D91C: +/* 0A244C 7F06D91C 8FAF00AC */ lw $t7, 0xac($sp) +/* 0A2450 7F06D920 8FA90064 */ lw $t1, 0x64($sp) +/* 0A2454 7F06D924 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0A2458 7F06D928 11E00017 */ beqz $t7, .L7F06D988 +/* 0A245C 7F06D92C 00095980 */ sll $t3, $t1, 6 +/* 0A2460 7F06D930 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0A2464 7F06D934 8FA500C4 */ lw $a1, 0xc4($sp) +/* 0A2468 7F06D938 0FC1624B */ jal matrix_4x4_set_position_and_rotation_around_xyz +/* 0A246C 7F06D93C 27A60068 */ addiu $a2, $sp, 0x68 +/* 0A2470 7F06D940 8FB90064 */ lw $t9, 0x64($sp) +/* 0A2474 7F06D944 8FB80058 */ lw $t8, 0x58($sp) +/* 0A2478 7F06D948 8FA400AC */ lw $a0, 0xac($sp) +/* 0A247C 7F06D94C 00194180 */ sll $t0, $t9, 6 +/* 0A2480 7F06D950 01183021 */ addu $a2, $t0, $t8 +/* 0A2484 7F06D954 AFA6001C */ sw $a2, 0x1c($sp) +/* 0A2488 7F06D958 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A248C 7F06D95C 27A50068 */ addiu $a1, $sp, 0x68 +/* 0A2490 7F06D960 3C028003 */ lui $v0, %hi(D_80036090) +/* 0A2494 7F06D964 8C426090 */ lw $v0, %lo(D_80036090)($v0) +/* 0A2498 7F06D968 8FA6001C */ lw $a2, 0x1c($sp) +/* 0A249C 7F06D96C 8FA40064 */ lw $a0, 0x64($sp) +/* 0A24A0 7F06D970 5040000A */ beql $v0, $zero, .L7F06D99C +/* 0A24A4 7F06D974 8FAA00B4 */ lw $t2, 0xb4($sp) +/* 0A24A8 7F06D978 0040F809 */ jalr $v0 +/* 0A24AC 7F06D97C 00C02825 */ move $a1, $a2 +/* 0A24B0 7F06D980 10000006 */ b .L7F06D99C +/* 0A24B4 7F06D984 8FAA00B4 */ lw $t2, 0xb4($sp) +.L7F06D988: +/* 0A24B8 7F06D988 8FAC0058 */ lw $t4, 0x58($sp) +/* 0A24BC 7F06D98C 8FA500C4 */ lw $a1, 0xc4($sp) +/* 0A24C0 7F06D990 0FC1624B */ jal matrix_4x4_set_position_and_rotation_around_xyz +/* 0A24C4 7F06D994 016C3021 */ addu $a2, $t3, $t4 +/* 0A24C8 7F06D998 8FAA00B4 */ lw $t2, 0xb4($sp) +.L7F06D99C: +/* 0A24CC 7F06D99C 8FA400C4 */ lw $a0, 0xc4($sp) +/* 0A24D0 7F06D9A0 314D0100 */ andi $t5, $t2, 0x100 +/* 0A24D4 7F06D9A4 51A0001D */ beql $t5, $zero, .L7F06DA1C +/* 0A24D8 7F06D9A8 8FAC00B4 */ lw $t4, 0xb4($sp) +/* 0A24DC 7F06D9AC 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 0A24E0 7F06D9B0 27A5003C */ addiu $a1, $sp, 0x3c +/* 0A24E4 7F06D9B4 27A4003C */ addiu $a0, $sp, 0x3c +/* 0A24E8 7F06D9B8 3C053F00 */ lui $a1, 0x3f00 +/* 0A24EC 7F06D9BC 0FC16F1A */ jal quaternion_7F05BC68 +/* 0A24F0 7F06D9C0 27A6002C */ addiu $a2, $sp, 0x2c +/* 0A24F4 7F06D9C4 8FAE00AC */ lw $t6, 0xac($sp) +/* 0A24F8 7F06D9C8 8FB80060 */ lw $t8, 0x60($sp) +/* 0A24FC 7F06D9CC 27A5002C */ addiu $a1, $sp, 0x2c +/* 0A2500 7F06D9D0 11C0000D */ beqz $t6, .L7F06DA08 +/* 0A2504 7F06D9D4 00184980 */ sll $t1, $t8, 6 +/* 0A2508 7F06D9D8 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0A250C 7F06D9DC 0FC16E6D */ jal quaternion_to_transform_matrix +/* 0A2510 7F06D9E0 27A60068 */ addiu $a2, $sp, 0x68 +/* 0A2514 7F06D9E4 8FAF0060 */ lw $t7, 0x60($sp) +/* 0A2518 7F06D9E8 8FA80058 */ lw $t0, 0x58($sp) +/* 0A251C 7F06D9EC 8FA400AC */ lw $a0, 0xac($sp) +/* 0A2520 7F06D9F0 000FC980 */ sll $t9, $t7, 6 +/* 0A2524 7F06D9F4 27A50068 */ addiu $a1, $sp, 0x68 +/* 0A2528 7F06D9F8 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A252C 7F06D9FC 03283021 */ addu $a2, $t9, $t0 +/* 0A2530 7F06DA00 10000006 */ b .L7F06DA1C +/* 0A2534 7F06DA04 8FAC00B4 */ lw $t4, 0xb4($sp) +.L7F06DA08: +/* 0A2538 7F06DA08 8FAB0058 */ lw $t3, 0x58($sp) +/* 0A253C 7F06DA0C 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0A2540 7F06DA10 0FC16E6D */ jal quaternion_to_transform_matrix +/* 0A2544 7F06DA14 012B3021 */ addu $a2, $t1, $t3 +/* 0A2548 7F06DA18 8FAC00B4 */ lw $t4, 0xb4($sp) +.L7F06DA1C: +/* 0A254C 7F06DA1C 8FAD00AC */ lw $t5, 0xac($sp) +/* 0A2550 7F06DA20 318A0200 */ andi $t2, $t4, 0x200 +/* 0A2554 7F06DA24 5140004A */ beql $t2, $zero, .L7F06DB50 +/* 0A2558 7F06DA28 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A255C 7F06DA2C 11A00004 */ beqz $t5, .L7F06DA40 +/* 0A2560 7F06DA30 8FAF005C */ lw $t7, 0x5c($sp) +/* 0A2564 7F06DA34 27AE0068 */ addiu $t6, $sp, 0x68 +/* 0A2568 7F06DA38 10000005 */ b .L7F06DA50 +/* 0A256C 7F06DA3C AFAE0028 */ sw $t6, 0x28($sp) +.L7F06DA40: +/* 0A2570 7F06DA40 8FA80058 */ lw $t0, 0x58($sp) +/* 0A2574 7F06DA44 000FC980 */ sll $t9, $t7, 6 +/* 0A2578 7F06DA48 0328C021 */ addu $t8, $t9, $t0 +/* 0A257C 7F06DA4C AFB80028 */ sw $t8, 0x28($sp) +.L7F06DA50: +/* 0A2580 7F06DA50 8FA900C4 */ lw $t1, 0xc4($sp) +/* 0A2584 7F06DA54 3C018005 */ lui $at, %hi(D_80054BC4) +/* 0A2588 7F06DA58 C4244BC4 */ lwc1 $f4, %lo(D_80054BC4)($at) +/* 0A258C 7F06DA5C C52C0004 */ lwc1 $f12, 4($t1) +/* 0A2590 7F06DA60 3C018005 */ lui $at, %hi(D_80054BC8) +/* 0A2594 7F06DA64 8FA50028 */ lw $a1, 0x28($sp) +/* 0A2598 7F06DA68 4604603C */ c.lt.s $f12, $f4 +/* 0A259C 7F06DA6C 00000000 */ nop +/* 0A25A0 7F06DA70 45000007 */ bc1f .L7F06DA90 +/* 0A25A4 7F06DA74 00000000 */ nop +/* 0A25A8 7F06DA78 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0A25AC 7F06DA7C 44813000 */ mtc1 $at, $f6 +/* 0A25B0 7F06DA80 00000000 */ nop +/* 0A25B4 7F06DA84 46066302 */ mul.s $f12, $f12, $f6 +/* 0A25B8 7F06DA88 10000009 */ b .L7F06DAB0 +/* 0A25BC 7F06DA8C 00000000 */ nop +.L7F06DA90: +/* 0A25C0 7F06DA90 C4284BC8 */ lwc1 $f8, %lo(D_80054BC8)($at) +/* 0A25C4 7F06DA94 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0A25C8 7F06DA98 44818000 */ mtc1 $at, $f16 +/* 0A25CC 7F06DA9C 460C4281 */ sub.s $f10, $f8, $f12 +/* 0A25D0 7F06DAA0 3C018005 */ lui $at, %hi(D_80054BCC) +/* 0A25D4 7F06DAA4 C4244BCC */ lwc1 $f4, %lo(D_80054BCC)($at) +/* 0A25D8 7F06DAA8 46105482 */ mul.s $f18, $f10, $f16 +/* 0A25DC 7F06DAAC 46122301 */ sub.s $f12, $f4, $f18 +.L7F06DAB0: +/* 0A25E0 7F06DAB0 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0A25E4 7F06DAB4 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 0A25E8 7F06DAB8 3C018005 */ lui $at, %hi(D_80054BD0) +/* 0A25EC 7F06DABC C7AC0024 */ lwc1 $f12, 0x24($sp) +/* 0A25F0 7F06DAC0 C4264BD0 */ lwc1 $f6, %lo(D_80054BD0)($at) +/* 0A25F4 7F06DAC4 3C018005 */ lui $at, %hi(D_80054BD4) +/* 0A25F8 7F06DAC8 460C303E */ c.le.s $f6, $f12 +/* 0A25FC 7F06DACC 00000000 */ nop +/* 0A2600 7F06DAD0 45000003 */ bc1f .L7F06DAE0 +/* 0A2604 7F06DAD4 00000000 */ nop +/* 0A2608 7F06DAD8 C4284BD4 */ lwc1 $f8, %lo(D_80054BD4)($at) +/* 0A260C 7F06DADC 460C4301 */ sub.s $f12, $f8, $f12 +.L7F06DAE0: +/* 0A2610 7F06DAE0 3C018005 */ lui $at, %hi(D_80054BD8) +/* 0A2614 7F06DAE4 C42A4BD8 */ lwc1 $f10, %lo(D_80054BD8)($at) +/* 0A2618 7F06DAE8 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0A261C 7F06DAEC 460A603C */ c.lt.s $f12, $f10 +/* 0A2620 7F06DAF0 00000000 */ nop +/* 0A2624 7F06DAF4 45020006 */ bc1fl .L7F06DB10 +/* 0A2628 7F06DAF8 44816000 */ mtc1 $at, $f12 +/* 0A262C 7F06DAFC 0FC16A78 */ jal sub_GAME_7F05A9E0 +/* 0A2630 7F06DB00 00000000 */ nop +/* 0A2634 7F06DB04 10000003 */ b .L7F06DB14 +/* 0A2638 7F06DB08 46000306 */ mov.s $f12, $f0 +/* 0A263C 7F06DB0C 44816000 */ mtc1 $at, $f12 +.L7F06DB10: +/* 0A2640 7F06DB10 00000000 */ nop +.L7F06DB14: +/* 0A2644 7F06DB14 0FC16293 */ jal matrix_column_3_scalar_multiply_2 +/* 0A2648 7F06DB18 8FA50028 */ lw $a1, 0x28($sp) +/* 0A264C 7F06DB1C 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0A2650 7F06DB20 0FC16266 */ jal matrix_4x4_set_position +/* 0A2654 7F06DB24 8FA50028 */ lw $a1, 0x28($sp) +/* 0A2658 7F06DB28 8FAB00AC */ lw $t3, 0xac($sp) +/* 0A265C 7F06DB2C 8FAC005C */ lw $t4, 0x5c($sp) +/* 0A2660 7F06DB30 8FAD0058 */ lw $t5, 0x58($sp) +/* 0A2664 7F06DB34 11600005 */ beqz $t3, .L7F06DB4C +/* 0A2668 7F06DB38 01602025 */ move $a0, $t3 +/* 0A266C 7F06DB3C 000C5180 */ sll $t2, $t4, 6 +/* 0A2670 7F06DB40 014D3021 */ addu $a2, $t2, $t5 +/* 0A2674 7F06DB44 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A2678 7F06DB48 8FA50028 */ lw $a1, 0x28($sp) +.L7F06DB4C: +/* 0A267C 7F06DB4C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06DB50: +/* 0A2680 7F06DB50 27BD00B8 */ addiu $sp, $sp, 0xb8 +/* 0A2684 7F06DB54 03E00008 */ jr $ra +/* 0A2688 7F06DB58 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06DB5C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054BDC +.word 0x40490fdb /*3.1415927*/ +glabel D_80054BE0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054BE4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054BE8 +.word 0x40490fdb /*3.1415927*/ +glabel D_80054BEC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054BF0 +.word 0x3f63dec6 /*0.890118*/ +.text +glabel sub_GAME_7F06DB5C +/* 0A268C 7F06DB5C 27BDFF58 */ addiu $sp, $sp, -0xa8 +/* 0A2690 7F06DB60 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A2694 7F06DB64 AFA500AC */ sw $a1, 0xac($sp) +/* 0A2698 7F06DB68 AFA700B4 */ sw $a3, 0xb4($sp) +/* 0A269C 7F06DB6C 94CE0000 */ lhu $t6, ($a2) +/* 0A26A0 7F06DB70 AFAE00A4 */ sw $t6, 0xa4($sp) +/* 0A26A4 7F06DB74 8CCF0004 */ lw $t7, 4($a2) +/* 0A26A8 7F06DB78 AFAF00A0 */ sw $t7, 0xa0($sp) +/* 0A26AC 7F06DB7C 85F9000E */ lh $t9, 0xe($t7) +/* 0A26B0 7F06DB80 AFB90054 */ sw $t9, 0x54($sp) +/* 0A26B4 7F06DB84 85E80010 */ lh $t0, 0x10($t7) +/* 0A26B8 7F06DB88 AFA80050 */ sw $t0, 0x50($sp) +/* 0A26BC 7F06DB8C 85E90012 */ lh $t1, 0x12($t7) +/* 0A26C0 7F06DB90 AFA9004C */ sw $t1, 0x4c($sp) +/* 0A26C4 7F06DB94 8CAB000C */ lw $t3, 0xc($a1) +/* 0A26C8 7F06DB98 AFAB0048 */ sw $t3, 0x48($sp) +/* 0A26CC 7F06DB9C 8CCC0008 */ lw $t4, 8($a2) +/* 0A26D0 7F06DBA0 00003025 */ move $a2, $zero +/* 0A26D4 7F06DBA4 11800006 */ beqz $t4, .L7F06DBC0 +/* 0A26D8 7F06DBA8 AFAC001C */ sw $t4, 0x1c($sp) +/* 0A26DC 7F06DBAC 00A02025 */ move $a0, $a1 +/* 0A26E0 7F06DBB0 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A26E4 7F06DBB4 01802825 */ move $a1, $t4 +/* 0A26E8 7F06DBB8 10000003 */ b .L7F06DBC8 +/* 0A26EC 7F06DBBC AFA2009C */ sw $v0, 0x9c($sp) +.L7F06DBC0: +/* 0A26F0 7F06DBC0 8C8E0000 */ lw $t6, ($a0) +/* 0A26F4 7F06DBC4 AFAE009C */ sw $t6, 0x9c($sp) +.L7F06DBC8: +/* 0A26F8 7F06DBC8 8FAF009C */ lw $t7, 0x9c($sp) +/* 0A26FC 7F06DBCC 8FA90054 */ lw $t1, 0x54($sp) +/* 0A2700 7F06DBD0 8FA400A0 */ lw $a0, 0xa0($sp) +/* 0A2704 7F06DBD4 11E00017 */ beqz $t7, .L7F06DC34 +/* 0A2708 7F06DBD8 00095980 */ sll $t3, $t1, 6 +/* 0A270C 7F06DBDC 8FA400A0 */ lw $a0, 0xa0($sp) +/* 0A2710 7F06DBE0 8FA500B4 */ lw $a1, 0xb4($sp) +/* 0A2714 7F06DBE4 0FC16E6D */ jal quaternion_to_transform_matrix +/* 0A2718 7F06DBE8 27A60058 */ addiu $a2, $sp, 0x58 +/* 0A271C 7F06DBEC 8FB90054 */ lw $t9, 0x54($sp) +/* 0A2720 7F06DBF0 8FB80048 */ lw $t8, 0x48($sp) +/* 0A2724 7F06DBF4 8FA4009C */ lw $a0, 0x9c($sp) +/* 0A2728 7F06DBF8 00194180 */ sll $t0, $t9, 6 +/* 0A272C 7F06DBFC 01183021 */ addu $a2, $t0, $t8 +/* 0A2730 7F06DC00 AFA6001C */ sw $a2, 0x1c($sp) +/* 0A2734 7F06DC04 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A2738 7F06DC08 27A50058 */ addiu $a1, $sp, 0x58 +/* 0A273C 7F06DC0C 3C028003 */ lui $v0, %hi(D_80036090) +/* 0A2740 7F06DC10 8C426090 */ lw $v0, %lo(D_80036090)($v0) +/* 0A2744 7F06DC14 8FA6001C */ lw $a2, 0x1c($sp) +/* 0A2748 7F06DC18 8FA40054 */ lw $a0, 0x54($sp) +/* 0A274C 7F06DC1C 5040000A */ beql $v0, $zero, .L7F06DC48 +/* 0A2750 7F06DC20 8FAA00A4 */ lw $t2, 0xa4($sp) +/* 0A2754 7F06DC24 0040F809 */ jalr $v0 +/* 0A2758 7F06DC28 00C02825 */ move $a1, $a2 +/* 0A275C 7F06DC2C 10000006 */ b .L7F06DC48 +/* 0A2760 7F06DC30 8FAA00A4 */ lw $t2, 0xa4($sp) +.L7F06DC34: +/* 0A2764 7F06DC34 8FAC0048 */ lw $t4, 0x48($sp) +/* 0A2768 7F06DC38 8FA500B4 */ lw $a1, 0xb4($sp) +/* 0A276C 7F06DC3C 0FC16E6D */ jal quaternion_to_transform_matrix +/* 0A2770 7F06DC40 016C3021 */ addu $a2, $t3, $t4 +/* 0A2774 7F06DC44 8FAA00A4 */ lw $t2, 0xa4($sp) +.L7F06DC48: +/* 0A2778 7F06DC48 8FA400B4 */ lw $a0, 0xb4($sp) +/* 0A277C 7F06DC4C 3C053F00 */ lui $a1, 0x3f00 +/* 0A2780 7F06DC50 314D0100 */ andi $t5, $t2, 0x100 +/* 0A2784 7F06DC54 51A00019 */ beql $t5, $zero, .L7F06DCBC +/* 0A2788 7F06DC58 8FAC00A4 */ lw $t4, 0xa4($sp) +/* 0A278C 7F06DC5C 0FC16F1A */ jal quaternion_7F05BC68 +/* 0A2790 7F06DC60 27A6002C */ addiu $a2, $sp, 0x2c +/* 0A2794 7F06DC64 8FAE009C */ lw $t6, 0x9c($sp) +/* 0A2798 7F06DC68 8FB80050 */ lw $t8, 0x50($sp) +/* 0A279C 7F06DC6C 27A5002C */ addiu $a1, $sp, 0x2c +/* 0A27A0 7F06DC70 11C0000D */ beqz $t6, .L7F06DCA8 +/* 0A27A4 7F06DC74 00184980 */ sll $t1, $t8, 6 +/* 0A27A8 7F06DC78 8FA400A0 */ lw $a0, 0xa0($sp) +/* 0A27AC 7F06DC7C 0FC16E6D */ jal quaternion_to_transform_matrix +/* 0A27B0 7F06DC80 27A60058 */ addiu $a2, $sp, 0x58 +/* 0A27B4 7F06DC84 8FAF0050 */ lw $t7, 0x50($sp) +/* 0A27B8 7F06DC88 8FA80048 */ lw $t0, 0x48($sp) +/* 0A27BC 7F06DC8C 8FA4009C */ lw $a0, 0x9c($sp) +/* 0A27C0 7F06DC90 000FC980 */ sll $t9, $t7, 6 +/* 0A27C4 7F06DC94 27A50058 */ addiu $a1, $sp, 0x58 +/* 0A27C8 7F06DC98 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A27CC 7F06DC9C 03283021 */ addu $a2, $t9, $t0 +/* 0A27D0 7F06DCA0 10000006 */ b .L7F06DCBC +/* 0A27D4 7F06DCA4 8FAC00A4 */ lw $t4, 0xa4($sp) +.L7F06DCA8: +/* 0A27D8 7F06DCA8 8FAB0048 */ lw $t3, 0x48($sp) +/* 0A27DC 7F06DCAC 8FA400A0 */ lw $a0, 0xa0($sp) +/* 0A27E0 7F06DCB0 0FC16E6D */ jal quaternion_to_transform_matrix +/* 0A27E4 7F06DCB4 012B3021 */ addu $a2, $t1, $t3 +/* 0A27E8 7F06DCB8 8FAC00A4 */ lw $t4, 0xa4($sp) +.L7F06DCBC: +/* 0A27EC 7F06DCBC 8FAD009C */ lw $t5, 0x9c($sp) +/* 0A27F0 7F06DCC0 318A0200 */ andi $t2, $t4, 0x200 +/* 0A27F4 7F06DCC4 5140004C */ beql $t2, $zero, .L7F06DDF8 +/* 0A27F8 7F06DCC8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A27FC 7F06DCCC 11A00004 */ beqz $t5, .L7F06DCE0 +/* 0A2800 7F06DCD0 8FAF004C */ lw $t7, 0x4c($sp) +/* 0A2804 7F06DCD4 27AE0058 */ addiu $t6, $sp, 0x58 +/* 0A2808 7F06DCD8 10000005 */ b .L7F06DCF0 +/* 0A280C 7F06DCDC AFAE0028 */ sw $t6, 0x28($sp) +.L7F06DCE0: +/* 0A2810 7F06DCE0 8FA80048 */ lw $t0, 0x48($sp) +/* 0A2814 7F06DCE4 000FC980 */ sll $t9, $t7, 6 +/* 0A2818 7F06DCE8 0328C021 */ addu $t8, $t9, $t0 +/* 0A281C 7F06DCEC AFB80028 */ sw $t8, 0x28($sp) +.L7F06DCF0: +/* 0A2820 7F06DCF0 8FA900B4 */ lw $t1, 0xb4($sp) +/* 0A2824 7F06DCF4 0FC16B2C */ jal acosf +/* 0A2828 7F06DCF8 C52C0000 */ lwc1 $f12, ($t1) +/* 0A282C 7F06DCFC 46000080 */ add.s $f2, $f0, $f0 +/* 0A2830 7F06DD00 3C018005 */ lui $at, %hi(D_80054BDC) +/* 0A2834 7F06DD04 C4244BDC */ lwc1 $f4, %lo(D_80054BDC)($at) +/* 0A2838 7F06DD08 3C018005 */ lui $at, %hi(D_80054BE0) +/* 0A283C 7F06DD0C 8FA50028 */ lw $a1, 0x28($sp) +/* 0A2840 7F06DD10 4604103C */ c.lt.s $f2, $f4 +/* 0A2844 7F06DD14 00000000 */ nop +/* 0A2848 7F06DD18 45000007 */ bc1f .L7F06DD38 +/* 0A284C 7F06DD1C 00000000 */ nop +/* 0A2850 7F06DD20 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0A2854 7F06DD24 44813000 */ mtc1 $at, $f6 +/* 0A2858 7F06DD28 00000000 */ nop +/* 0A285C 7F06DD2C 46061302 */ mul.s $f12, $f2, $f6 +/* 0A2860 7F06DD30 10000009 */ b .L7F06DD58 +/* 0A2864 7F06DD34 00000000 */ nop +.L7F06DD38: +/* 0A2868 7F06DD38 C4284BE0 */ lwc1 $f8, %lo(D_80054BE0)($at) +/* 0A286C 7F06DD3C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0A2870 7F06DD40 44818000 */ mtc1 $at, $f16 +/* 0A2874 7F06DD44 46024281 */ sub.s $f10, $f8, $f2 +/* 0A2878 7F06DD48 3C018005 */ lui $at, %hi(D_80054BE4) +/* 0A287C 7F06DD4C C4244BE4 */ lwc1 $f4, %lo(D_80054BE4)($at) +/* 0A2880 7F06DD50 46105482 */ mul.s $f18, $f10, $f16 +/* 0A2884 7F06DD54 46122301 */ sub.s $f12, $f4, $f18 +.L7F06DD58: +/* 0A2888 7F06DD58 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0A288C 7F06DD5C E7AC0024 */ swc1 $f12, 0x24($sp) +/* 0A2890 7F06DD60 3C018005 */ lui $at, %hi(D_80054BE8) +/* 0A2894 7F06DD64 C7AC0024 */ lwc1 $f12, 0x24($sp) +/* 0A2898 7F06DD68 C4264BE8 */ lwc1 $f6, %lo(D_80054BE8)($at) +/* 0A289C 7F06DD6C 3C018005 */ lui $at, %hi(D_80054BEC) +/* 0A28A0 7F06DD70 460C303E */ c.le.s $f6, $f12 +/* 0A28A4 7F06DD74 00000000 */ nop +/* 0A28A8 7F06DD78 45000003 */ bc1f .L7F06DD88 +/* 0A28AC 7F06DD7C 00000000 */ nop +/* 0A28B0 7F06DD80 C4284BEC */ lwc1 $f8, %lo(D_80054BEC)($at) +/* 0A28B4 7F06DD84 460C4301 */ sub.s $f12, $f8, $f12 +.L7F06DD88: +/* 0A28B8 7F06DD88 3C018005 */ lui $at, %hi(D_80054BF0) +/* 0A28BC 7F06DD8C C42A4BF0 */ lwc1 $f10, %lo(D_80054BF0)($at) +/* 0A28C0 7F06DD90 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0A28C4 7F06DD94 460A603C */ c.lt.s $f12, $f10 +/* 0A28C8 7F06DD98 00000000 */ nop +/* 0A28CC 7F06DD9C 45020006 */ bc1fl .L7F06DDB8 +/* 0A28D0 7F06DDA0 44816000 */ mtc1 $at, $f12 +/* 0A28D4 7F06DDA4 0FC16A78 */ jal sub_GAME_7F05A9E0 +/* 0A28D8 7F06DDA8 00000000 */ nop +/* 0A28DC 7F06DDAC 10000003 */ b .L7F06DDBC +/* 0A28E0 7F06DDB0 46000306 */ mov.s $f12, $f0 +/* 0A28E4 7F06DDB4 44816000 */ mtc1 $at, $f12 +.L7F06DDB8: +/* 0A28E8 7F06DDB8 00000000 */ nop +.L7F06DDBC: +/* 0A28EC 7F06DDBC 0FC16293 */ jal matrix_column_3_scalar_multiply_2 +/* 0A28F0 7F06DDC0 8FA50028 */ lw $a1, 0x28($sp) +/* 0A28F4 7F06DDC4 8FA400A0 */ lw $a0, 0xa0($sp) +/* 0A28F8 7F06DDC8 0FC16266 */ jal matrix_4x4_set_position +/* 0A28FC 7F06DDCC 8FA50028 */ lw $a1, 0x28($sp) +/* 0A2900 7F06DDD0 8FAB009C */ lw $t3, 0x9c($sp) +/* 0A2904 7F06DDD4 8FAC004C */ lw $t4, 0x4c($sp) +/* 0A2908 7F06DDD8 8FAD0048 */ lw $t5, 0x48($sp) +/* 0A290C 7F06DDDC 11600005 */ beqz $t3, .L7F06DDF4 +/* 0A2910 7F06DDE0 01602025 */ move $a0, $t3 +/* 0A2914 7F06DDE4 000C5180 */ sll $t2, $t4, 6 +/* 0A2918 7F06DDE8 014D3021 */ addu $a2, $t2, $t5 +/* 0A291C 7F06DDEC 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A2920 7F06DDF0 8FA50028 */ lw $a1, 0x28($sp) +.L7F06DDF4: +/* 0A2924 7F06DDF4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06DDF8: +/* 0A2928 7F06DDF8 27BD00A8 */ addiu $sp, $sp, 0xa8 +/* 0A292C 7F06DDFC 03E00008 */ jr $ra +/* 0A2930 7F06DE00 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06DE04(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06DE04 +/* 0A2934 7F06DE04 30CF0007 */ andi $t7, $a2, 7 +/* 0A2938 7F06DE08 24180008 */ li $t8, 8 +/* 0A293C 7F06DE0C 030F4823 */ subu $t1, $t8, $t7 +/* 0A2940 7F06DE10 30AA00FF */ andi $t2, $a1, 0xff +/* 0A2944 7F06DE14 313900FF */ andi $t9, $t1, 0xff +/* 0A2948 7F06DE18 000638C2 */ srl $a3, $a2, 3 +/* 0A294C 7F06DE1C 0159082A */ slt $at, $t2, $t9 +/* 0A2950 7F06DE20 AFA50004 */ sw $a1, 4($sp) +/* 0A2954 7F06DE24 00001825 */ move $v1, $zero +/* 0A2958 7F06DE28 314200FF */ andi $v0, $t2, 0xff +/* 0A295C 7F06DE2C 00872021 */ addu $a0, $a0, $a3 +/* 0A2960 7F06DE30 14200013 */ bnez $at, .L7F06DE80 +/* 0A2964 7F06DE34 312800FF */ andi $t0, $t1, 0xff +/* 0A2968 7F06DE38 00402825 */ move $a1, $v0 +.L7F06DE3C: +/* 0A296C 7F06DE3C 908C0000 */ lbu $t4, ($a0) +/* 0A2970 7F06DE40 240D0001 */ li $t5, 1 +/* 0A2974 7F06DE44 010D7004 */ sllv $t6, $t5, $t0 +/* 0A2978 7F06DE48 25CFFFFF */ addiu $t7, $t6, -1 +/* 0A297C 7F06DE4C 00A81023 */ subu $v0, $a1, $t0 +/* 0A2980 7F06DE50 018FC024 */ and $t8, $t4, $t7 +/* 0A2984 7F06DE54 304500FF */ andi $a1, $v0, 0xff +/* 0A2988 7F06DE58 3319FFFF */ andi $t9, $t8, 0xffff +/* 0A298C 7F06DE5C 00B95804 */ sllv $t3, $t9, $a1 +/* 0A2990 7F06DE60 006B1825 */ or $v1, $v1, $t3 +/* 0A2994 7F06DE64 306DFFFF */ andi $t5, $v1, 0xffff +/* 0A2998 7F06DE68 28A10008 */ slti $at, $a1, 8 +/* 0A299C 7F06DE6C 00A01025 */ move $v0, $a1 +/* 0A29A0 7F06DE70 01A01825 */ move $v1, $t5 +/* 0A29A4 7F06DE74 24840001 */ addiu $a0, $a0, 1 +/* 0A29A8 7F06DE78 1020FFF0 */ beqz $at, .L7F06DE3C +/* 0A29AC 7F06DE7C 24080008 */ li $t0, 8 +.L7F06DE80: +/* 0A29B0 7F06DE80 1840000A */ blez $v0, .L7F06DEAC +/* 0A29B4 7F06DE84 01026023 */ subu $t4, $t0, $v0 +/* 0A29B8 7F06DE88 908E0000 */ lbu $t6, ($a0) +/* 0A29BC 7F06DE8C 24180001 */ li $t8, 1 +/* 0A29C0 7F06DE90 0058C804 */ sllv $t9, $t8, $v0 +/* 0A29C4 7F06DE94 272BFFFF */ addiu $t3, $t9, -1 +/* 0A29C8 7F06DE98 018E7807 */ srav $t7, $t6, $t4 +/* 0A29CC 7F06DE9C 01EB6824 */ and $t5, $t7, $t3 +/* 0A29D0 7F06DEA0 006D1825 */ or $v1, $v1, $t5 +/* 0A29D4 7F06DEA4 306EFFFF */ andi $t6, $v1, 0xffff +/* 0A29D8 7F06DEA8 01C01825 */ move $v1, $t6 +.L7F06DEAC: +/* 0A29DC 7F06DEAC 240C0010 */ li $t4, 16 +/* 0A29E0 7F06DEB0 018AC023 */ subu $t8, $t4, $t2 +/* 0A29E4 7F06DEB4 03031804 */ sllv $v1, $v1, $t8 +/* 0A29E8 7F06DEB8 03E00008 */ jr $ra +/* 0A29EC 7F06DEBC 3062FFFF */ andi $v0, $v1, 0xffff +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06DEC0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054BF4 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F06DEC0 +/* 0A29F0 7F06DEC0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A29F4 7F06DEC4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A29F8 7F06DEC8 AFB00018 */ sw $s0, 0x18($sp) +/* 0A29FC 7F06DECC AFA50034 */ sw $a1, 0x34($sp) +/* 0A2A00 7F06DED0 AFA60038 */ sw $a2, 0x38($sp) +/* 0A2A04 7F06DED4 10A0000B */ beqz $a1, .L7F06DF04 +/* 0A2A08 7F06DED8 90F00006 */ lbu $s0, 6($a3) +/* 0A2A0C 7F06DEDC 8CD80004 */ lw $t8, 4($a2) +/* 0A2A10 7F06DEE0 0004C880 */ sll $t9, $a0, 2 +/* 0A2A14 7F06DEE4 0324C823 */ subu $t9, $t9, $a0 +/* 0A2A18 7F06DEE8 0019C840 */ sll $t9, $t9, 1 +/* 0A2A1C 7F06DEEC 03194021 */ addu $t0, $t8, $t9 +/* 0A2A20 7F06DEF0 95090004 */ lhu $t1, 4($t0) +/* 0A2A24 7F06DEF4 01300019 */ multu $t1, $s0 +/* 0A2A28 7F06DEF8 00003012 */ mflo $a2 +/* 0A2A2C 7F06DEFC 1000000D */ b .L7F06DF34 +/* 0A2A30 7F06DF00 8FA40040 */ lw $a0, 0x40($sp) +.L7F06DF04: +/* 0A2A34 7F06DF04 8FAA0038 */ lw $t2, 0x38($sp) +/* 0A2A38 7F06DF08 00046080 */ sll $t4, $a0, 2 +/* 0A2A3C 7F06DF0C 01846023 */ subu $t4, $t4, $a0 +/* 0A2A40 7F06DF10 8D4B0004 */ lw $t3, 4($t2) +/* 0A2A44 7F06DF14 000C6040 */ sll $t4, $t4, 1 +/* 0A2A48 7F06DF18 016C6821 */ addu $t5, $t3, $t4 +/* 0A2A4C 7F06DF1C 95AE0002 */ lhu $t6, 2($t5) +/* 0A2A50 7F06DF20 01D00019 */ multu $t6, $s0 +/* 0A2A54 7F06DF24 00003012 */ mflo $a2 +/* 0A2A58 7F06DF28 00000000 */ nop +/* 0A2A5C 7F06DF2C 00000000 */ nop +/* 0A2A60 7F06DF30 8FA40040 */ lw $a0, 0x40($sp) +.L7F06DF34: +/* 0A2A64 7F06DF34 320500FF */ andi $a1, $s0, 0xff +/* 0A2A68 7F06DF38 0FC1B781 */ jal sub_GAME_7F06DE04 +/* 0A2A6C 7F06DF3C AFA6002C */ sw $a2, 0x2c($sp) +/* 0A2A70 7F06DF40 8FA6002C */ lw $a2, 0x2c($sp) +/* 0A2A74 7F06DF44 A7A20024 */ sh $v0, 0x24($sp) +/* 0A2A78 7F06DF48 8FA40040 */ lw $a0, 0x40($sp) +/* 0A2A7C 7F06DF4C 00D03021 */ addu $a2, $a2, $s0 +/* 0A2A80 7F06DF50 AFA6002C */ sw $a2, 0x2c($sp) +/* 0A2A84 7F06DF54 0FC1B781 */ jal sub_GAME_7F06DE04 +/* 0A2A88 7F06DF58 320500FF */ andi $a1, $s0, 0xff +/* 0A2A8C 7F06DF5C 8FA6002C */ lw $a2, 0x2c($sp) +/* 0A2A90 7F06DF60 A7A20026 */ sh $v0, 0x26($sp) +/* 0A2A94 7F06DF64 8FA40040 */ lw $a0, 0x40($sp) +/* 0A2A98 7F06DF68 320500FF */ andi $a1, $s0, 0xff +/* 0A2A9C 7F06DF6C 0FC1B781 */ jal sub_GAME_7F06DE04 +/* 0A2AA0 7F06DF70 00D03021 */ addu $a2, $a2, $s0 +/* 0A2AA4 7F06DF74 97AF0024 */ lhu $t7, 0x24($sp) +/* 0A2AA8 7F06DF78 3C018005 */ lui $at, %hi(D_80054BF4) +/* 0A2AAC 7F06DF7C C4204BF4 */ lwc1 $f0, %lo(D_80054BF4)($at) +/* 0A2AB0 7F06DF80 448F2000 */ mtc1 $t7, $f4 +/* 0A2AB4 7F06DF84 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0A2AB8 7F06DF88 44811000 */ mtc1 $at, $f2 +/* 0A2ABC 7F06DF8C 8FA30044 */ lw $v1, 0x44($sp) +/* 0A2AC0 7F06DF90 A7A20028 */ sh $v0, 0x28($sp) +/* 0A2AC4 7F06DF94 05E10005 */ bgez $t7, .L7F06DFAC +/* 0A2AC8 7F06DF98 468021A0 */ cvt.s.w $f6, $f4 +/* 0A2ACC 7F06DF9C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0A2AD0 7F06DFA0 44814000 */ mtc1 $at, $f8 +/* 0A2AD4 7F06DFA4 00000000 */ nop +/* 0A2AD8 7F06DFA8 46083180 */ add.s $f6, $f6, $f8 +.L7F06DFAC: +/* 0A2ADC 7F06DFAC 46003282 */ mul.s $f10, $f6, $f0 +/* 0A2AE0 7F06DFB0 46025403 */ div.s $f16, $f10, $f2 +/* 0A2AE4 7F06DFB4 E4700000 */ swc1 $f16, ($v1) +/* 0A2AE8 7F06DFB8 8FB80034 */ lw $t8, 0x34($sp) +/* 0A2AEC 7F06DFBC 97A20026 */ lhu $v0, 0x26($sp) +/* 0A2AF0 7F06DFC0 97AB0026 */ lhu $t3, 0x26($sp) +/* 0A2AF4 7F06DFC4 5300001D */ beql $t8, $zero, .L7F06E03C +/* 0A2AF8 7F06DFC8 448B5000 */ mtc1 $t3, $f10 +/* 0A2AFC 7F06DFCC 10400009 */ beqz $v0, .L7F06DFF4 +/* 0A2B00 7F06DFD0 3C190001 */ lui $t9, 1 +/* 0A2B04 7F06DFD4 03224023 */ subu $t0, $t9, $v0 +/* 0A2B08 7F06DFD8 44889000 */ mtc1 $t0, $f18 +/* 0A2B0C 7F06DFDC 00000000 */ nop +/* 0A2B10 7F06DFE0 46809120 */ cvt.s.w $f4, $f18 +/* 0A2B14 7F06DFE4 46002202 */ mul.s $f8, $f4, $f0 +/* 0A2B18 7F06DFE8 46024183 */ div.s $f6, $f8, $f2 +/* 0A2B1C 7F06DFEC 10000004 */ b .L7F06E000 +/* 0A2B20 7F06DFF0 E4660004 */ swc1 $f6, 4($v1) +.L7F06DFF4: +/* 0A2B24 7F06DFF4 44805000 */ mtc1 $zero, $f10 +/* 0A2B28 7F06DFF8 00000000 */ nop +/* 0A2B2C 7F06DFFC E46A0004 */ swc1 $f10, 4($v1) +.L7F06E000: +/* 0A2B30 7F06E000 97A20028 */ lhu $v0, 0x28($sp) +/* 0A2B34 7F06E004 3C090001 */ lui $t1, 1 +/* 0A2B38 7F06E008 10400008 */ beqz $v0, .L7F06E02C +/* 0A2B3C 7F06E00C 01225023 */ subu $t2, $t1, $v0 +/* 0A2B40 7F06E010 448A8000 */ mtc1 $t2, $f16 +/* 0A2B44 7F06E014 00000000 */ nop +/* 0A2B48 7F06E018 468084A0 */ cvt.s.w $f18, $f16 +/* 0A2B4C 7F06E01C 46009102 */ mul.s $f4, $f18, $f0 +/* 0A2B50 7F06E020 46022203 */ div.s $f8, $f4, $f2 +/* 0A2B54 7F06E024 10000019 */ b .L7F06E08C +/* 0A2B58 7F06E028 E4680008 */ swc1 $f8, 8($v1) +.L7F06E02C: +/* 0A2B5C 7F06E02C 44803000 */ mtc1 $zero, $f6 +/* 0A2B60 7F06E030 10000016 */ b .L7F06E08C +/* 0A2B64 7F06E034 E4660008 */ swc1 $f6, 8($v1) +/* 0A2B68 7F06E038 448B5000 */ mtc1 $t3, $f10 +.L7F06E03C: +/* 0A2B6C 7F06E03C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0A2B70 7F06E040 05610004 */ bgez $t3, .L7F06E054 +/* 0A2B74 7F06E044 46805420 */ cvt.s.w $f16, $f10 +/* 0A2B78 7F06E048 44819000 */ mtc1 $at, $f18 +/* 0A2B7C 7F06E04C 00000000 */ nop +/* 0A2B80 7F06E050 46128400 */ add.s $f16, $f16, $f18 +.L7F06E054: +/* 0A2B84 7F06E054 46008102 */ mul.s $f4, $f16, $f0 +/* 0A2B88 7F06E058 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0A2B8C 7F06E05C 46022203 */ div.s $f8, $f4, $f2 +/* 0A2B90 7F06E060 E4680004 */ swc1 $f8, 4($v1) +/* 0A2B94 7F06E064 97AC0028 */ lhu $t4, 0x28($sp) +/* 0A2B98 7F06E068 448C3000 */ mtc1 $t4, $f6 +/* 0A2B9C 7F06E06C 05810004 */ bgez $t4, .L7F06E080 +/* 0A2BA0 7F06E070 468032A0 */ cvt.s.w $f10, $f6 +/* 0A2BA4 7F06E074 44819000 */ mtc1 $at, $f18 +/* 0A2BA8 7F06E078 00000000 */ nop +/* 0A2BAC 7F06E07C 46125280 */ add.s $f10, $f10, $f18 +.L7F06E080: +/* 0A2BB0 7F06E080 46005402 */ mul.s $f16, $f10, $f0 +/* 0A2BB4 7F06E084 46028103 */ div.s $f4, $f16, $f2 +/* 0A2BB8 7F06E088 E4640008 */ swc1 $f4, 8($v1) +.L7F06E08C: +/* 0A2BBC 7F06E08C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A2BC0 7F06E090 8FB00018 */ lw $s0, 0x18($sp) +/* 0A2BC4 7F06E094 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0A2BC8 7F06E098 03E00008 */ jr $ra +/* 0A2BCC 7F06E09C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void process_02_position(void) { + +} +#else +GLOBAL_ASM( +.text +glabel process_02_position +/* 0A2BD0 7F06E0A0 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 0A2BD4 7F06E0A4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0A2BD8 7F06E0A8 AFB00020 */ sw $s0, 0x20($sp) +/* 0A2BDC 7F06E0AC AFA40098 */ sw $a0, 0x98($sp) +/* 0A2BE0 7F06E0B0 AFA600A0 */ sw $a2, 0xa0($sp) +/* 0A2BE4 7F06E0B4 3C188003 */ lui $t8, %hi(D_80036094) +/* 0A2BE8 7F06E0B8 8CC20004 */ lw $v0, 4($a2) +/* 0A2BEC 7F06E0BC 8CAF0008 */ lw $t7, 8($a1) +/* 0A2BF0 7F06E0C0 27186094 */ addiu $t8, %lo(D_80036094) # addiu $t8, $t8, 0x6094 +/* 0A2BF4 7F06E0C4 8F010000 */ lw $at, ($t8) +/* 0A2BF8 7F06E0C8 9444000C */ lhu $a0, 0xc($v0) +/* 0A2BFC 7F06E0CC 8DE60004 */ lw $a2, 4($t7) +/* 0A2C00 7F06E0D0 27A30080 */ addiu $v1, $sp, 0x80 +/* 0A2C04 7F06E0D4 AC610000 */ sw $at, ($v1) +/* 0A2C08 7F06E0D8 8F090004 */ lw $t1, 4($t8) +/* 0A2C0C 7F06E0DC 00A08025 */ move $s0, $a1 +/* 0A2C10 7F06E0E0 AC690004 */ sw $t1, 4($v1) +/* 0A2C14 7F06E0E4 8F010008 */ lw $at, 8($t8) +/* 0A2C18 7F06E0E8 AC610008 */ sw $at, 8($v1) +/* 0A2C1C 7F06E0EC 8E0A0034 */ lw $t2, 0x34($s0) +/* 0A2C20 7F06E0F0 8E070020 */ lw $a3, 0x20($s0) +/* 0A2C24 7F06E0F4 80A50024 */ lb $a1, 0x24($a1) +/* 0A2C28 7F06E0F8 AFA30014 */ sw $v1, 0x14($sp) +/* 0A2C2C 7F06E0FC AFA40090 */ sw $a0, 0x90($sp) +/* 0A2C30 7F06E100 AFA6008C */ sw $a2, 0x8c($sp) +/* 0A2C34 7F06E104 0FC1B7B0 */ jal sub_GAME_7F06DEC0 +/* 0A2C38 7F06E108 AFAA0010 */ sw $t2, 0x10($sp) +/* 0A2C3C 7F06E10C 44802000 */ mtc1 $zero, $f4 +/* 0A2C40 7F06E110 C606002C */ lwc1 $f6, 0x2c($s0) +/* 0A2C44 7F06E114 3C0B8003 */ lui $t3, %hi(D_800360A0) +/* 0A2C48 7F06E118 256B60A0 */ addiu $t3, %lo(D_800360A0) # addiu $t3, $t3, 0x60a0 +/* 0A2C4C 7F06E11C 46062032 */ c.eq.s $f4, $f6 +/* 0A2C50 7F06E120 00000000 */ nop +/* 0A2C54 7F06E124 45030015 */ bc1tl .L7F06E17C +/* 0A2C58 7F06E128 44804000 */ mtc1 $zero, $f8 +/* 0A2C5C 7F06E12C 8D610000 */ lw $at, ($t3) +/* 0A2C60 7F06E130 27A20074 */ addiu $v0, $sp, 0x74 +/* 0A2C64 7F06E134 AC410000 */ sw $at, ($v0) +/* 0A2C68 7F06E138 8D6D0004 */ lw $t5, 4($t3) +/* 0A2C6C 7F06E13C AC4D0004 */ sw $t5, 4($v0) +/* 0A2C70 7F06E140 8D610008 */ lw $at, 8($t3) +/* 0A2C74 7F06E144 AC410008 */ sw $at, 8($v0) +/* 0A2C78 7F06E148 8E0E0038 */ lw $t6, 0x38($s0) +/* 0A2C7C 7F06E14C 8E070020 */ lw $a3, 0x20($s0) +/* 0A2C80 7F06E150 82050024 */ lb $a1, 0x24($s0) +/* 0A2C84 7F06E154 AFA20014 */ sw $v0, 0x14($sp) +/* 0A2C88 7F06E158 8FA6008C */ lw $a2, 0x8c($sp) +/* 0A2C8C 7F06E15C 8FA40090 */ lw $a0, 0x90($sp) +/* 0A2C90 7F06E160 0FC1B7B0 */ jal sub_GAME_7F06DEC0 +/* 0A2C94 7F06E164 AFAE0010 */ sw $t6, 0x10($sp) +/* 0A2C98 7F06E168 27A40080 */ addiu $a0, $sp, 0x80 +/* 0A2C9C 7F06E16C 27A50074 */ addiu $a1, $sp, 0x74 +/* 0A2CA0 7F06E170 0FC1B458 */ jal sub_GAME_7F06D160 +/* 0A2CA4 7F06E174 8E06002C */ lw $a2, 0x2c($s0) +/* 0A2CA8 7F06E178 44804000 */ mtc1 $zero, $f8 +.L7F06E17C: +/* 0A2CAC 7F06E17C C60A0084 */ lwc1 $f10, 0x84($s0) +/* 0A2CB0 7F06E180 3C0F8003 */ lui $t7, %hi(D_800360AC) +/* 0A2CB4 7F06E184 25EF60AC */ addiu $t7, %lo(D_800360AC) # addiu $t7, $t7, 0x60ac +/* 0A2CB8 7F06E188 460A4032 */ c.eq.s $f8, $f10 +/* 0A2CBC 7F06E18C 8FA40098 */ lw $a0, 0x98($sp) +/* 0A2CC0 7F06E190 02002825 */ move $a1, $s0 +/* 0A2CC4 7F06E194 8FA600A0 */ lw $a2, 0xa0($sp) +/* 0A2CC8 7F06E198 45010040 */ bc1t .L7F06E29C +/* 0A2CCC 7F06E19C 00000000 */ nop +/* 0A2CD0 7F06E1A0 8DE10000 */ lw $at, ($t7) +/* 0A2CD4 7F06E1A4 27A20068 */ addiu $v0, $sp, 0x68 +/* 0A2CD8 7F06E1A8 AC410000 */ sw $at, ($v0) +/* 0A2CDC 7F06E1AC 8DF90004 */ lw $t9, 4($t7) +/* 0A2CE0 7F06E1B0 AC590004 */ sw $t9, 4($v0) +/* 0A2CE4 7F06E1B4 8DE10008 */ lw $at, 8($t7) +/* 0A2CE8 7F06E1B8 AC410008 */ sw $at, 8($v0) +/* 0A2CEC 7F06E1BC 8E180064 */ lw $t8, 0x64($s0) +/* 0A2CF0 7F06E1C0 8E070054 */ lw $a3, 0x54($s0) +/* 0A2CF4 7F06E1C4 82050025 */ lb $a1, 0x25($s0) +/* 0A2CF8 7F06E1C8 AFA20014 */ sw $v0, 0x14($sp) +/* 0A2CFC 7F06E1CC 8FA6008C */ lw $a2, 0x8c($sp) +/* 0A2D00 7F06E1D0 8FA40090 */ lw $a0, 0x90($sp) +/* 0A2D04 7F06E1D4 0FC1B7B0 */ jal sub_GAME_7F06DEC0 +/* 0A2D08 7F06E1D8 AFB80010 */ sw $t8, 0x10($sp) +/* 0A2D0C 7F06E1DC 44808000 */ mtc1 $zero, $f16 +/* 0A2D10 7F06E1E0 C612005C */ lwc1 $f18, 0x5c($s0) +/* 0A2D14 7F06E1E4 3C098003 */ lui $t1, %hi(D_800360B8) +/* 0A2D18 7F06E1E8 252960B8 */ addiu $t1, %lo(D_800360B8) # addiu $t1, $t1, 0x60b8 +/* 0A2D1C 7F06E1EC 46128032 */ c.eq.s $f16, $f18 +/* 0A2D20 7F06E1F0 00000000 */ nop +/* 0A2D24 7F06E1F4 45030015 */ bc1tl .L7F06E24C +/* 0A2D28 7F06E1F8 27A40080 */ addiu $a0, $sp, 0x80 +/* 0A2D2C 7F06E1FC 8D210000 */ lw $at, ($t1) +/* 0A2D30 7F06E200 27A2002C */ addiu $v0, $sp, 0x2c +/* 0A2D34 7F06E204 AC410000 */ sw $at, ($v0) +/* 0A2D38 7F06E208 8D2C0004 */ lw $t4, 4($t1) +/* 0A2D3C 7F06E20C AC4C0004 */ sw $t4, 4($v0) +/* 0A2D40 7F06E210 8D210008 */ lw $at, 8($t1) +/* 0A2D44 7F06E214 AC410008 */ sw $at, 8($v0) +/* 0A2D48 7F06E218 8E0B0068 */ lw $t3, 0x68($s0) +/* 0A2D4C 7F06E21C 8E070054 */ lw $a3, 0x54($s0) +/* 0A2D50 7F06E220 82050025 */ lb $a1, 0x25($s0) +/* 0A2D54 7F06E224 AFA20014 */ sw $v0, 0x14($sp) +/* 0A2D58 7F06E228 8FA6008C */ lw $a2, 0x8c($sp) +/* 0A2D5C 7F06E22C 8FA40090 */ lw $a0, 0x90($sp) +/* 0A2D60 7F06E230 0FC1B7B0 */ jal sub_GAME_7F06DEC0 +/* 0A2D64 7F06E234 AFAB0010 */ sw $t3, 0x10($sp) +/* 0A2D68 7F06E238 27A40068 */ addiu $a0, $sp, 0x68 +/* 0A2D6C 7F06E23C 27A5002C */ addiu $a1, $sp, 0x2c +/* 0A2D70 7F06E240 0FC1B458 */ jal sub_GAME_7F06D160 +/* 0A2D74 7F06E244 8E06005C */ lw $a2, 0x5c($s0) +/* 0A2D78 7F06E248 27A40080 */ addiu $a0, $sp, 0x80 +.L7F06E24C: +/* 0A2D7C 7F06E24C 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 0A2D80 7F06E250 27A50058 */ addiu $a1, $sp, 0x58 +/* 0A2D84 7F06E254 27A40068 */ addiu $a0, $sp, 0x68 +/* 0A2D88 7F06E258 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 0A2D8C 7F06E25C 27A50048 */ addiu $a1, $sp, 0x48 +/* 0A2D90 7F06E260 27A40058 */ addiu $a0, $sp, 0x58 +/* 0A2D94 7F06E264 0FC16F84 */ jal quaternion_ensure_shortest_path +/* 0A2D98 7F06E268 27A50048 */ addiu $a1, $sp, 0x48 +/* 0A2D9C 7F06E26C 27A40058 */ addiu $a0, $sp, 0x58 +/* 0A2DA0 7F06E270 27A50048 */ addiu $a1, $sp, 0x48 +/* 0A2DA4 7F06E274 8E060084 */ lw $a2, 0x84($s0) +/* 0A2DA8 7F06E278 0FC16E82 */ jal quaternion_slerp +/* 0A2DAC 7F06E27C 27A70038 */ addiu $a3, $sp, 0x38 +/* 0A2DB0 7F06E280 8FA40098 */ lw $a0, 0x98($sp) +/* 0A2DB4 7F06E284 02002825 */ move $a1, $s0 +/* 0A2DB8 7F06E288 8FA600A0 */ lw $a2, 0xa0($sp) +/* 0A2DBC 7F06E28C 0FC1B6D7 */ jal sub_GAME_7F06DB5C +/* 0A2DC0 7F06E290 27A70038 */ addiu $a3, $sp, 0x38 +/* 0A2DC4 7F06E294 10000004 */ b .L7F06E2A8 +/* 0A2DC8 7F06E298 8FBF0024 */ lw $ra, 0x24($sp) +.L7F06E29C: +/* 0A2DCC 7F06E29C 0FC1B62C */ jal sub_GAME_7F06D8B0 +/* 0A2DD0 7F06E2A0 27A70080 */ addiu $a3, $sp, 0x80 +/* 0A2DD4 7F06E2A4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F06E2A8: +/* 0A2DD8 7F06E2A8 8FB00020 */ lw $s0, 0x20($sp) +/* 0A2DDC 7F06E2AC 27BD0098 */ addiu $sp, $sp, 0x98 +/* 0A2DE0 7F06E2B0 03E00008 */ jr $ra +/* 0A2DE4 7F06E2B4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06E2B8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054BF8 +.word 0x40490fdb /*3.1415927*/ +glabel D_80054BFC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054C00 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054C04 +.word 0x40490fdb /*3.1415927*/ +glabel D_80054C08 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054C0C +.word 0x3f63dec6 /*0.890118*/ +.text +glabel sub_GAME_7F06E2B8 +/* 0A2DE8 7F06E2B8 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 0A2DEC 7F06E2BC AFBF001C */ sw $ra, 0x1c($sp) +/* 0A2DF0 7F06E2C0 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0A2DF4 7F06E2C4 AFA500A4 */ sw $a1, 0xa4($sp) +/* 0A2DF8 7F06E2C8 94CE0000 */ lhu $t6, ($a2) +/* 0A2DFC 7F06E2CC 4487A000 */ mtc1 $a3, $f20 +/* 0A2E00 7F06E2D0 AFAE009C */ sw $t6, 0x9c($sp) +/* 0A2E04 7F06E2D4 8CCF0004 */ lw $t7, 4($a2) +/* 0A2E08 7F06E2D8 AFAF0098 */ sw $t7, 0x98($sp) +/* 0A2E0C 7F06E2DC 85F90010 */ lh $t9, 0x10($t7) +/* 0A2E10 7F06E2E0 85E3000E */ lh $v1, 0xe($t7) +/* 0A2E14 7F06E2E4 AFB90048 */ sw $t9, 0x48($sp) +/* 0A2E18 7F06E2E8 85E80012 */ lh $t0, 0x12($t7) +/* 0A2E1C 7F06E2EC AFA80044 */ sw $t0, 0x44($sp) +/* 0A2E20 7F06E2F0 8CAA000C */ lw $t2, 0xc($a1) +/* 0A2E24 7F06E2F4 AFAA0040 */ sw $t2, 0x40($sp) +/* 0A2E28 7F06E2F8 8CC70008 */ lw $a3, 8($a2) +/* 0A2E2C 7F06E2FC 00003025 */ move $a2, $zero +/* 0A2E30 7F06E300 50E00009 */ beql $a3, $zero, .L7F06E328 +/* 0A2E34 7F06E304 8C8B0000 */ lw $t3, ($a0) +/* 0A2E38 7F06E308 00A02025 */ move $a0, $a1 +/* 0A2E3C 7F06E30C 00E02825 */ move $a1, $a3 +/* 0A2E40 7F06E310 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A2E44 7F06E314 AFA3004C */ sw $v1, 0x4c($sp) +/* 0A2E48 7F06E318 8FA3004C */ lw $v1, 0x4c($sp) +/* 0A2E4C 7F06E31C 10000003 */ b .L7F06E32C +/* 0A2E50 7F06E320 AFA20094 */ sw $v0, 0x94($sp) +/* 0A2E54 7F06E324 8C8B0000 */ lw $t3, ($a0) +.L7F06E328: +/* 0A2E58 7F06E328 AFAB0094 */ sw $t3, 0x94($sp) +.L7F06E32C: +/* 0A2E5C 7F06E32C 8FAC0094 */ lw $t4, 0x94($sp) +/* 0A2E60 7F06E330 8FA40098 */ lw $a0, 0x98($sp) +/* 0A2E64 7F06E334 00037980 */ sll $t7, $v1, 6 +/* 0A2E68 7F06E338 1180000F */ beqz $t4, .L7F06E378 +/* 0A2E6C 7F06E33C 8FB90040 */ lw $t9, 0x40($sp) +/* 0A2E70 7F06E340 4405A000 */ mfc1 $a1, $f20 +/* 0A2E74 7F06E344 8FA40098 */ lw $a0, 0x98($sp) +/* 0A2E78 7F06E348 27A60050 */ addiu $a2, $sp, 0x50 +/* 0A2E7C 7F06E34C 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0A2E80 7F06E350 AFA3004C */ sw $v1, 0x4c($sp) +/* 0A2E84 7F06E354 8FA3004C */ lw $v1, 0x4c($sp) +/* 0A2E88 7F06E358 8FAE0040 */ lw $t6, 0x40($sp) +/* 0A2E8C 7F06E35C 8FA40094 */ lw $a0, 0x94($sp) +/* 0A2E90 7F06E360 00036980 */ sll $t5, $v1, 6 +/* 0A2E94 7F06E364 27A50050 */ addiu $a1, $sp, 0x50 +/* 0A2E98 7F06E368 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A2E9C 7F06E36C 01AE3021 */ addu $a2, $t5, $t6 +/* 0A2EA0 7F06E370 10000005 */ b .L7F06E388 +/* 0A2EA4 7F06E374 8FB8009C */ lw $t8, 0x9c($sp) +.L7F06E378: +/* 0A2EA8 7F06E378 4405A000 */ mfc1 $a1, $f20 +/* 0A2EAC 7F06E37C 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0A2EB0 7F06E380 01F93021 */ addu $a2, $t7, $t9 +/* 0A2EB4 7F06E384 8FB8009C */ lw $t8, 0x9c($sp) +.L7F06E388: +/* 0A2EB8 7F06E388 3C018005 */ lui $at, %hi(D_80054BF8) +/* 0A2EBC 7F06E38C 8FAA0094 */ lw $t2, 0x94($sp) +/* 0A2EC0 7F06E390 33020100 */ andi $v0, $t8, 0x100 +/* 0A2EC4 7F06E394 14400003 */ bnez $v0, .L7F06E3A4 +/* 0A2EC8 7F06E398 33030200 */ andi $v1, $t8, 0x200 +/* 0A2ECC 7F06E39C 10600017 */ beqz $v1, .L7F06E3FC +/* 0A2ED0 7F06E3A0 00000000 */ nop +.L7F06E3A4: +/* 0A2ED4 7F06E3A4 C4244BF8 */ lwc1 $f4, %lo(D_80054BF8)($at) +/* 0A2ED8 7F06E3A8 8FA3009C */ lw $v1, 0x9c($sp) +/* 0A2EDC 7F06E3AC 3C018005 */ lui $at, %hi(D_80054BFC) +/* 0A2EE0 7F06E3B0 4604A03C */ c.lt.s $f20, $f4 +/* 0A2EE4 7F06E3B4 30680200 */ andi $t0, $v1, 0x200 +/* 0A2EE8 7F06E3B8 01001825 */ move $v1, $t0 +/* 0A2EEC 7F06E3BC 45000007 */ bc1f .L7F06E3DC +/* 0A2EF0 7F06E3C0 00000000 */ nop +/* 0A2EF4 7F06E3C4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0A2EF8 7F06E3C8 44813000 */ mtc1 $at, $f6 +/* 0A2EFC 7F06E3CC 00000000 */ nop +/* 0A2F00 7F06E3D0 4606A502 */ mul.s $f20, $f20, $f6 +/* 0A2F04 7F06E3D4 10000009 */ b .L7F06E3FC +/* 0A2F08 7F06E3D8 00000000 */ nop +.L7F06E3DC: +/* 0A2F0C 7F06E3DC C4284BFC */ lwc1 $f8, %lo(D_80054BFC)($at) +/* 0A2F10 7F06E3E0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0A2F14 7F06E3E4 44818000 */ mtc1 $at, $f16 +/* 0A2F18 7F06E3E8 46144281 */ sub.s $f10, $f8, $f20 +/* 0A2F1C 7F06E3EC 3C018005 */ lui $at, %hi(D_80054C00) +/* 0A2F20 7F06E3F0 C4244C00 */ lwc1 $f4, %lo(D_80054C00)($at) +/* 0A2F24 7F06E3F4 46105482 */ mul.s $f18, $f10, $f16 +/* 0A2F28 7F06E3F8 46122501 */ sub.s $f20, $f4, $f18 +.L7F06E3FC: +/* 0A2F2C 7F06E3FC 10400019 */ beqz $v0, .L7F06E464 +/* 0A2F30 7F06E400 00000000 */ nop +/* 0A2F34 7F06E404 1140000F */ beqz $t2, .L7F06E444 +/* 0A2F38 7F06E408 8FA40098 */ lw $a0, 0x98($sp) +/* 0A2F3C 7F06E40C 4405A000 */ mfc1 $a1, $f20 +/* 0A2F40 7F06E410 8FA40098 */ lw $a0, 0x98($sp) +/* 0A2F44 7F06E414 27A60050 */ addiu $a2, $sp, 0x50 +/* 0A2F48 7F06E418 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0A2F4C 7F06E41C AFA30024 */ sw $v1, 0x24($sp) +/* 0A2F50 7F06E420 8FA90048 */ lw $t1, 0x48($sp) +/* 0A2F54 7F06E424 8FAC0040 */ lw $t4, 0x40($sp) +/* 0A2F58 7F06E428 8FA40094 */ lw $a0, 0x94($sp) +/* 0A2F5C 7F06E42C 00095980 */ sll $t3, $t1, 6 +/* 0A2F60 7F06E430 27A50050 */ addiu $a1, $sp, 0x50 +/* 0A2F64 7F06E434 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A2F68 7F06E438 016C3021 */ addu $a2, $t3, $t4 +/* 0A2F6C 7F06E43C 10000009 */ b .L7F06E464 +/* 0A2F70 7F06E440 8FA30024 */ lw $v1, 0x24($sp) +.L7F06E444: +/* 0A2F74 7F06E444 8FAD0048 */ lw $t5, 0x48($sp) +/* 0A2F78 7F06E448 8FAF0040 */ lw $t7, 0x40($sp) +/* 0A2F7C 7F06E44C 4405A000 */ mfc1 $a1, $f20 +/* 0A2F80 7F06E450 000D7180 */ sll $t6, $t5, 6 +/* 0A2F84 7F06E454 AFA30024 */ sw $v1, 0x24($sp) +/* 0A2F88 7F06E458 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0A2F8C 7F06E45C 01CF3021 */ addu $a2, $t6, $t7 +/* 0A2F90 7F06E460 8FA30024 */ lw $v1, 0x24($sp) +.L7F06E464: +/* 0A2F94 7F06E464 10600031 */ beqz $v1, .L7F06E52C +/* 0A2F98 7F06E468 8FB90094 */ lw $t9, 0x94($sp) +/* 0A2F9C 7F06E46C 13200004 */ beqz $t9, .L7F06E480 +/* 0A2FA0 7F06E470 4600A306 */ mov.s $f12, $f20 +/* 0A2FA4 7F06E474 27B80050 */ addiu $t8, $sp, 0x50 +/* 0A2FA8 7F06E478 10000006 */ b .L7F06E494 +/* 0A2FAC 7F06E47C AFB80030 */ sw $t8, 0x30($sp) +.L7F06E480: +/* 0A2FB0 7F06E480 8FA80044 */ lw $t0, 0x44($sp) +/* 0A2FB4 7F06E484 8FA90040 */ lw $t1, 0x40($sp) +/* 0A2FB8 7F06E488 00085180 */ sll $t2, $t0, 6 +/* 0A2FBC 7F06E48C 01495821 */ addu $t3, $t2, $t1 +/* 0A2FC0 7F06E490 AFAB0030 */ sw $t3, 0x30($sp) +.L7F06E494: +/* 0A2FC4 7F06E494 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0A2FC8 7F06E498 8FA50030 */ lw $a1, 0x30($sp) +/* 0A2FCC 7F06E49C 3C018005 */ lui $at, %hi(D_80054C04) +/* 0A2FD0 7F06E4A0 C4264C04 */ lwc1 $f6, %lo(D_80054C04)($at) +/* 0A2FD4 7F06E4A4 3C018005 */ lui $at, %hi(D_80054C08) +/* 0A2FD8 7F06E4A8 4614303E */ c.le.s $f6, $f20 +/* 0A2FDC 7F06E4AC 00000000 */ nop +/* 0A2FE0 7F06E4B0 45000003 */ bc1f .L7F06E4C0 +/* 0A2FE4 7F06E4B4 00000000 */ nop +/* 0A2FE8 7F06E4B8 C4284C08 */ lwc1 $f8, %lo(D_80054C08)($at) +/* 0A2FEC 7F06E4BC 46144501 */ sub.s $f20, $f8, $f20 +.L7F06E4C0: +/* 0A2FF0 7F06E4C0 3C018005 */ lui $at, %hi(D_80054C0C) +/* 0A2FF4 7F06E4C4 C42A4C0C */ lwc1 $f10, %lo(D_80054C0C)($at) +/* 0A2FF8 7F06E4C8 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0A2FFC 7F06E4CC 460AA03C */ c.lt.s $f20, $f10 +/* 0A3000 7F06E4D0 00000000 */ nop +/* 0A3004 7F06E4D4 45020006 */ bc1fl .L7F06E4F0 +/* 0A3008 7F06E4D8 44816000 */ mtc1 $at, $f12 +/* 0A300C 7F06E4DC 0FC16A78 */ jal sub_GAME_7F05A9E0 +/* 0A3010 7F06E4E0 4600A306 */ mov.s $f12, $f20 +/* 0A3014 7F06E4E4 10000003 */ b .L7F06E4F4 +/* 0A3018 7F06E4E8 46000306 */ mov.s $f12, $f0 +/* 0A301C 7F06E4EC 44816000 */ mtc1 $at, $f12 +.L7F06E4F0: +/* 0A3020 7F06E4F0 00000000 */ nop +.L7F06E4F4: +/* 0A3024 7F06E4F4 0FC16293 */ jal matrix_column_3_scalar_multiply_2 +/* 0A3028 7F06E4F8 8FA50030 */ lw $a1, 0x30($sp) +/* 0A302C 7F06E4FC 8FA40098 */ lw $a0, 0x98($sp) +/* 0A3030 7F06E500 0FC16266 */ jal matrix_4x4_set_position +/* 0A3034 7F06E504 8FA50030 */ lw $a1, 0x30($sp) +/* 0A3038 7F06E508 8FAC0094 */ lw $t4, 0x94($sp) +/* 0A303C 7F06E50C 8FAD0044 */ lw $t5, 0x44($sp) +/* 0A3040 7F06E510 8FAF0040 */ lw $t7, 0x40($sp) +/* 0A3044 7F06E514 11800005 */ beqz $t4, .L7F06E52C +/* 0A3048 7F06E518 01802025 */ move $a0, $t4 +/* 0A304C 7F06E51C 000D7180 */ sll $t6, $t5, 6 +/* 0A3050 7F06E520 01CF3021 */ addu $a2, $t6, $t7 +/* 0A3054 7F06E524 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A3058 7F06E528 8FA50030 */ lw $a1, 0x30($sp) +.L7F06E52C: +/* 0A305C 7F06E52C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A3060 7F06E530 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0A3064 7F06E534 27BD00A0 */ addiu $sp, $sp, 0xa0 +/* 0A3068 7F06E538 03E00008 */ jr $ra +/* 0A306C 7F06E53C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06E540(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054C10 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054C14 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F06E540 +/* 0A3070 7F06E540 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0A3074 7F06E544 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A3078 7F06E548 AFA5002C */ sw $a1, 0x2c($sp) +/* 0A307C 7F06E54C AFA60030 */ sw $a2, 0x30($sp) +/* 0A3080 7F06E550 90EE0006 */ lbu $t6, 6($a3) +/* 0A3084 7F06E554 44801000 */ mtc1 $zero, $f2 +/* 0A3088 7F06E558 10A0000C */ beqz $a1, .L7F06E58C +/* 0A308C 7F06E55C A3AE001F */ sb $t6, 0x1f($sp) +/* 0A3090 7F06E560 8CD90004 */ lw $t9, 4($a2) +/* 0A3094 7F06E564 00044080 */ sll $t0, $a0, 2 +/* 0A3098 7F06E568 01044023 */ subu $t0, $t0, $a0 +/* 0A309C 7F06E56C 00084040 */ sll $t0, $t0, 1 +/* 0A30A0 7F06E570 03284821 */ addu $t1, $t9, $t0 +/* 0A30A4 7F06E574 952A0004 */ lhu $t2, 4($t1) +/* 0A30A8 7F06E578 31CB00FF */ andi $t3, $t6, 0xff +/* 0A30AC 7F06E57C 014B0019 */ multu $t2, $t3 +/* 0A30B0 7F06E580 00003012 */ mflo $a2 +/* 0A30B4 7F06E584 1000000E */ b .L7F06E5C0 +/* 0A30B8 7F06E588 8FA40038 */ lw $a0, 0x38($sp) +.L7F06E58C: +/* 0A30BC 7F06E58C 8FAC0030 */ lw $t4, 0x30($sp) +/* 0A30C0 7F06E590 00047080 */ sll $t6, $a0, 2 +/* 0A30C4 7F06E594 01C47023 */ subu $t6, $t6, $a0 +/* 0A30C8 7F06E598 8D8D0004 */ lw $t5, 4($t4) +/* 0A30CC 7F06E59C 000E7040 */ sll $t6, $t6, 1 +/* 0A30D0 7F06E5A0 93B9001F */ lbu $t9, 0x1f($sp) +/* 0A30D4 7F06E5A4 01AE7821 */ addu $t7, $t5, $t6 +/* 0A30D8 7F06E5A8 95F80002 */ lhu $t8, 2($t7) +/* 0A30DC 7F06E5AC 03190019 */ multu $t8, $t9 +/* 0A30E0 7F06E5B0 00003012 */ mflo $a2 +/* 0A30E4 7F06E5B4 00000000 */ nop +/* 0A30E8 7F06E5B8 00000000 */ nop +/* 0A30EC 7F06E5BC 8FA40038 */ lw $a0, 0x38($sp) +.L7F06E5C0: +/* 0A30F0 7F06E5C0 93A5001F */ lbu $a1, 0x1f($sp) +/* 0A30F4 7F06E5C4 0FC1B781 */ jal sub_GAME_7F06DE04 +/* 0A30F8 7F06E5C8 E7A20018 */ swc1 $f2, 0x18($sp) +/* 0A30FC 7F06E5CC 8FA8002C */ lw $t0, 0x2c($sp) +/* 0A3100 7F06E5D0 C7A20018 */ lwc1 $f2, 0x18($sp) +/* 0A3104 7F06E5D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A3108 7F06E5D8 1100000D */ beqz $t0, .L7F06E610 +/* 0A310C 7F06E5DC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0A3110 7F06E5E0 10400018 */ beqz $v0, .L7F06E644 +/* 0A3114 7F06E5E4 3C090001 */ lui $t1, 1 +/* 0A3118 7F06E5E8 01225023 */ subu $t2, $t1, $v0 +/* 0A311C 7F06E5EC 448A2000 */ mtc1 $t2, $f4 +/* 0A3120 7F06E5F0 3C018005 */ lui $at, %hi(D_80054C10) +/* 0A3124 7F06E5F4 C4284C10 */ lwc1 $f8, %lo(D_80054C10)($at) +/* 0A3128 7F06E5F8 468021A0 */ cvt.s.w $f6, $f4 +/* 0A312C 7F06E5FC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0A3130 7F06E600 44818000 */ mtc1 $at, $f16 +/* 0A3134 7F06E604 46083282 */ mul.s $f10, $f6, $f8 +/* 0A3138 7F06E608 1000000E */ b .L7F06E644 +/* 0A313C 7F06E60C 46105083 */ div.s $f2, $f10, $f16 +.L7F06E610: +/* 0A3140 7F06E610 44829000 */ mtc1 $v0, $f18 +/* 0A3144 7F06E614 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0A3148 7F06E618 04410004 */ bgez $v0, .L7F06E62C +/* 0A314C 7F06E61C 46809120 */ cvt.s.w $f4, $f18 +/* 0A3150 7F06E620 44813000 */ mtc1 $at, $f6 +/* 0A3154 7F06E624 00000000 */ nop +/* 0A3158 7F06E628 46062100 */ add.s $f4, $f4, $f6 +.L7F06E62C: +/* 0A315C 7F06E62C 3C018005 */ lui $at, %hi(D_80054C14) +/* 0A3160 7F06E630 C4284C14 */ lwc1 $f8, %lo(D_80054C14)($at) +/* 0A3164 7F06E634 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0A3168 7F06E638 44818000 */ mtc1 $at, $f16 +/* 0A316C 7F06E63C 46082282 */ mul.s $f10, $f4, $f8 +/* 0A3170 7F06E640 46105083 */ div.s $f2, $f10, $f16 +.L7F06E644: +/* 0A3174 7F06E644 03E00008 */ jr $ra +/* 0A3178 7F06E648 46001006 */ mov.s $f0, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void process_03_unknown(void) { + +} +#else +GLOBAL_ASM( +.text +glabel process_03_unknown +/* 0A317C 7F06E64C 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0A3180 7F06E650 AFB00028 */ sw $s0, 0x28($sp) +/* 0A3184 7F06E654 AFBF0034 */ sw $ra, 0x34($sp) +/* 0A3188 7F06E658 AFB20030 */ sw $s2, 0x30($sp) +/* 0A318C 7F06E65C AFB1002C */ sw $s1, 0x2c($sp) +/* 0A3190 7F06E660 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 0A3194 7F06E664 AFA40050 */ sw $a0, 0x50($sp) +/* 0A3198 7F06E668 AFA60058 */ sw $a2, 0x58($sp) +/* 0A319C 7F06E66C 8CC20004 */ lw $v0, 4($a2) +/* 0A31A0 7F06E670 8CAF0008 */ lw $t7, 8($a1) +/* 0A31A4 7F06E674 00A08025 */ move $s0, $a1 +/* 0A31A8 7F06E678 8E180034 */ lw $t8, 0x34($s0) +/* 0A31AC 7F06E67C 9451000C */ lhu $s1, 0xc($v0) +/* 0A31B0 7F06E680 8DF20004 */ lw $s2, 4($t7) +/* 0A31B4 7F06E684 8E070020 */ lw $a3, 0x20($s0) +/* 0A31B8 7F06E688 80A50024 */ lb $a1, 0x24($a1) +/* 0A31BC 7F06E68C AFB80010 */ sw $t8, 0x10($sp) +/* 0A31C0 7F06E690 02202025 */ move $a0, $s1 +/* 0A31C4 7F06E694 0FC1B950 */ jal sub_GAME_7F06E540 +/* 0A31C8 7F06E698 02403025 */ move $a2, $s2 +/* 0A31CC 7F06E69C 44802000 */ mtc1 $zero, $f4 +/* 0A31D0 7F06E6A0 C606002C */ lwc1 $f6, 0x2c($s0) +/* 0A31D4 7F06E6A4 46000506 */ mov.s $f20, $f0 +/* 0A31D8 7F06E6A8 02202025 */ move $a0, $s1 +/* 0A31DC 7F06E6AC 46062032 */ c.eq.s $f4, $f6 +/* 0A31E0 7F06E6B0 02403025 */ move $a2, $s2 +/* 0A31E4 7F06E6B4 4503000C */ bc1tl .L7F06E6E8 +/* 0A31E8 7F06E6B8 44804000 */ mtc1 $zero, $f8 +/* 0A31EC 7F06E6BC 8E190038 */ lw $t9, 0x38($s0) +/* 0A31F0 7F06E6C0 82050024 */ lb $a1, 0x24($s0) +/* 0A31F4 7F06E6C4 8E070020 */ lw $a3, 0x20($s0) +/* 0A31F8 7F06E6C8 0FC1B950 */ jal sub_GAME_7F06E540 +/* 0A31FC 7F06E6CC AFB90010 */ sw $t9, 0x10($sp) +/* 0A3200 7F06E6D0 4600A306 */ mov.s $f12, $f20 +/* 0A3204 7F06E6D4 46000386 */ mov.s $f14, $f0 +/* 0A3208 7F06E6D8 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 0A320C 7F06E6DC 8E06002C */ lw $a2, 0x2c($s0) +/* 0A3210 7F06E6E0 46000506 */ mov.s $f20, $f0 +/* 0A3214 7F06E6E4 44804000 */ mtc1 $zero, $f8 +.L7F06E6E8: +/* 0A3218 7F06E6E8 C60A0084 */ lwc1 $f10, 0x84($s0) +/* 0A321C 7F06E6EC 02202025 */ move $a0, $s1 +/* 0A3220 7F06E6F0 02403025 */ move $a2, $s2 +/* 0A3224 7F06E6F4 460A4032 */ c.eq.s $f8, $f10 +/* 0A3228 7F06E6F8 00000000 */ nop +/* 0A322C 7F06E6FC 4503001F */ bc1tl .L7F06E77C +/* 0A3230 7F06E700 4407A000 */ mfc1 $a3, $f20 +/* 0A3234 7F06E704 8E080064 */ lw $t0, 0x64($s0) +/* 0A3238 7F06E708 82050025 */ lb $a1, 0x25($s0) +/* 0A323C 7F06E70C 8E070054 */ lw $a3, 0x54($s0) +/* 0A3240 7F06E710 0FC1B950 */ jal sub_GAME_7F06E540 +/* 0A3244 7F06E714 AFA80010 */ sw $t0, 0x10($sp) +/* 0A3248 7F06E718 E7A00038 */ swc1 $f0, 0x38($sp) +/* 0A324C 7F06E71C C612005C */ lwc1 $f18, 0x5c($s0) +/* 0A3250 7F06E720 44808000 */ mtc1 $zero, $f16 +/* 0A3254 7F06E724 02202025 */ move $a0, $s1 +/* 0A3258 7F06E728 02403025 */ move $a2, $s2 +/* 0A325C 7F06E72C 46128032 */ c.eq.s $f16, $f18 +/* 0A3260 7F06E730 00000000 */ nop +/* 0A3264 7F06E734 4503000C */ bc1tl .L7F06E768 +/* 0A3268 7F06E738 4600A306 */ mov.s $f12, $f20 +/* 0A326C 7F06E73C 8E090068 */ lw $t1, 0x68($s0) +/* 0A3270 7F06E740 82050025 */ lb $a1, 0x25($s0) +/* 0A3274 7F06E744 8E070054 */ lw $a3, 0x54($s0) +/* 0A3278 7F06E748 0FC1B950 */ jal sub_GAME_7F06E540 +/* 0A327C 7F06E74C AFA90010 */ sw $t1, 0x10($sp) +/* 0A3280 7F06E750 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 0A3284 7F06E754 46000386 */ mov.s $f14, $f0 +/* 0A3288 7F06E758 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 0A328C 7F06E75C 8E06005C */ lw $a2, 0x5c($s0) +/* 0A3290 7F06E760 E7A00038 */ swc1 $f0, 0x38($sp) +/* 0A3294 7F06E764 4600A306 */ mov.s $f12, $f20 +.L7F06E768: +/* 0A3298 7F06E768 C7AE0038 */ lwc1 $f14, 0x38($sp) +/* 0A329C 7F06E76C 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 0A32A0 7F06E770 8E060084 */ lw $a2, 0x84($s0) +/* 0A32A4 7F06E774 46000506 */ mov.s $f20, $f0 +/* 0A32A8 7F06E778 4407A000 */ mfc1 $a3, $f20 +.L7F06E77C: +/* 0A32AC 7F06E77C 8FA40050 */ lw $a0, 0x50($sp) +/* 0A32B0 7F06E780 02002825 */ move $a1, $s0 +/* 0A32B4 7F06E784 0FC1B8AE */ jal sub_GAME_7F06E2B8 +/* 0A32B8 7F06E788 8FA60058 */ lw $a2, 0x58($sp) +/* 0A32BC 7F06E78C 8FBF0034 */ lw $ra, 0x34($sp) +/* 0A32C0 7F06E790 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 0A32C4 7F06E794 8FB00028 */ lw $s0, 0x28($sp) +/* 0A32C8 7F06E798 8FB1002C */ lw $s1, 0x2c($sp) +/* 0A32CC 7F06E79C 8FB20030 */ lw $s2, 0x30($sp) +/* 0A32D0 7F06E7A0 03E00008 */ jr $ra +/* 0A32D4 7F06E7A4 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + +#ifdef NONMATCHING +void process_15_subposition(void) { + +} +#else +GLOBAL_ASM( +.text +glabel process_15_subposition +/* 0A32D8 7F06E7A8 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0A32DC 7F06E7AC AFBF0014 */ sw $ra, 0x14($sp) +/* 0A32E0 7F06E7B0 AFA50074 */ sw $a1, 0x74($sp) +/* 0A32E4 7F06E7B4 8CCE0004 */ lw $t6, 4($a2) +/* 0A32E8 7F06E7B8 AFAE006C */ sw $t6, 0x6c($sp) +/* 0A32EC 7F06E7BC 8CC70008 */ lw $a3, 8($a2) +/* 0A32F0 7F06E7C0 8CA8000C */ lw $t0, 0xc($a1) +/* 0A32F4 7F06E7C4 00003025 */ move $a2, $zero +/* 0A32F8 7F06E7C8 10E0000A */ beqz $a3, .L7F06E7F4 +/* 0A32FC 7F06E7CC 85C3000C */ lh $v1, 0xc($t6) +/* 0A3300 7F06E7D0 00A02025 */ move $a0, $a1 +/* 0A3304 7F06E7D4 00E02825 */ move $a1, $a3 +/* 0A3308 7F06E7D8 AFA30024 */ sw $v1, 0x24($sp) +/* 0A330C 7F06E7DC 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A3310 7F06E7E0 AFA80020 */ sw $t0, 0x20($sp) +/* 0A3314 7F06E7E4 8FA30024 */ lw $v1, 0x24($sp) +/* 0A3318 7F06E7E8 8FA80020 */ lw $t0, 0x20($sp) +/* 0A331C 7F06E7EC 10000002 */ b .L7F06E7F8 +/* 0A3320 7F06E7F0 00403825 */ move $a3, $v0 +.L7F06E7F4: +/* 0A3324 7F06E7F4 8C870000 */ lw $a3, ($a0) +.L7F06E7F8: +/* 0A3328 7F06E7F8 10E00010 */ beqz $a3, .L7F06E83C +/* 0A332C 7F06E7FC 8FA4006C */ lw $a0, 0x6c($sp) +/* 0A3330 7F06E800 8FA4006C */ lw $a0, 0x6c($sp) +/* 0A3334 7F06E804 27A50028 */ addiu $a1, $sp, 0x28 +/* 0A3338 7F06E808 AFA30024 */ sw $v1, 0x24($sp) +/* 0A333C 7F06E80C AFA70068 */ sw $a3, 0x68($sp) +/* 0A3340 7F06E810 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 0A3344 7F06E814 AFA80020 */ sw $t0, 0x20($sp) +/* 0A3348 7F06E818 8FA30024 */ lw $v1, 0x24($sp) +/* 0A334C 7F06E81C 8FA80020 */ lw $t0, 0x20($sp) +/* 0A3350 7F06E820 8FA40068 */ lw $a0, 0x68($sp) +/* 0A3354 7F06E824 0003C980 */ sll $t9, $v1, 6 +/* 0A3358 7F06E828 27A50028 */ addiu $a1, $sp, 0x28 +/* 0A335C 7F06E82C 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0A3360 7F06E830 03283021 */ addu $a2, $t9, $t0 +/* 0A3364 7F06E834 10000005 */ b .L7F06E84C +/* 0A3368 7F06E838 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06E83C: +/* 0A336C 7F06E83C 00034980 */ sll $t1, $v1, 6 +/* 0A3370 7F06E840 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 0A3374 7F06E844 01282821 */ addu $a1, $t1, $t0 +/* 0A3378 7F06E848 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06E84C: +/* 0A337C 7F06E84C 27BD0070 */ addiu $sp, $sp, 0x70 +/* 0A3380 7F06E850 03E00008 */ jr $ra +/* 0A3384 7F06E854 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void process_08_distance_triggers(void) { + +} +#else +GLOBAL_ASM( +.text +glabel process_08_distance_triggers +/* 0A3388 7F06E858 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A338C 7F06E85C AFBF001C */ sw $ra, 0x1c($sp) +/* 0A3390 7F06E860 AFB00018 */ sw $s0, 0x18($sp) +/* 0A3394 7F06E864 AFA40030 */ sw $a0, 0x30($sp) +/* 0A3398 7F06E868 8CAE0004 */ lw $t6, 4($a1) +/* 0A339C 7F06E86C 00A08025 */ move $s0, $a1 +/* 0A33A0 7F06E870 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A33A4 7F06E874 AFAE002C */ sw $t6, 0x2c($sp) +/* 0A33A8 7F06E878 AFA20028 */ sw $v0, 0x28($sp) +/* 0A33AC 7F06E87C 8FA40030 */ lw $a0, 0x30($sp) +/* 0A33B0 7F06E880 02002825 */ move $a1, $s0 +/* 0A33B4 7F06E884 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A33B8 7F06E888 00003025 */ move $a2, $zero +/* 0A33BC 7F06E88C 3C0F8003 */ lui $t7, %hi(D_80036084) +/* 0A33C0 7F06E890 8DEF6084 */ lw $t7, %lo(D_80036084)($t7) +/* 0A33C4 7F06E894 00401825 */ move $v1, $v0 +/* 0A33C8 7F06E898 11E00004 */ beqz $t7, .L7F06E8AC +/* 0A33CC 7F06E89C 00000000 */ nop +/* 0A33D0 7F06E8A0 44801000 */ mtc1 $zero, $f2 +/* 0A33D4 7F06E8A4 10000011 */ b .L7F06E8EC +/* 0A33D8 7F06E8A8 8FA2002C */ lw $v0, 0x2c($sp) +.L7F06E8AC: +/* 0A33DC 7F06E8AC 0FC1E121 */ jal getPlayer_c_lodscalez +/* 0A33E0 7F06E8B0 AFA30024 */ sw $v1, 0x24($sp) +/* 0A33E4 7F06E8B4 3C018003 */ lui $at, %hi(D_80036088) +/* 0A33E8 7F06E8B8 8FA30024 */ lw $v1, 0x24($sp) +/* 0A33EC 7F06E8BC C42C6088 */ lwc1 $f12, %lo(D_80036088)($at) +/* 0A33F0 7F06E8C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A33F4 7F06E8C4 44814000 */ mtc1 $at, $f8 +/* 0A33F8 7F06E8C8 C4640038 */ lwc1 $f4, 0x38($v1) +/* 0A33FC 7F06E8CC 460C4032 */ c.eq.s $f8, $f12 +/* 0A3400 7F06E8D0 46002187 */ neg.s $f6, $f4 +/* 0A3404 7F06E8D4 46060082 */ mul.s $f2, $f0, $f6 +/* 0A3408 7F06E8D8 45030004 */ bc1tl .L7F06E8EC +/* 0A340C 7F06E8DC 8FA2002C */ lw $v0, 0x2c($sp) +/* 0A3410 7F06E8E0 460C1082 */ mul.s $f2, $f2, $f12 +/* 0A3414 7F06E8E4 00000000 */ nop +/* 0A3418 7F06E8E8 8FA2002C */ lw $v0, 0x2c($sp) +.L7F06E8EC: +/* 0A341C 7F06E8EC 8FB80030 */ lw $t8, 0x30($sp) +/* 0A3420 7F06E8F0 C4400000 */ lwc1 $f0, ($v0) +/* 0A3424 7F06E8F4 C70C0014 */ lwc1 $f12, 0x14($t8) +/* 0A3428 7F06E8F8 460C0282 */ mul.s $f10, $f0, $f12 +/* 0A342C 7F06E8FC 4602503C */ c.lt.s $f10, $f2 +/* 0A3430 7F06E900 00000000 */ nop +/* 0A3434 7F06E904 45030008 */ bc1tl .L7F06E928 +/* 0A3438 7F06E908 C4520004 */ lwc1 $f18, 4($v0) +/* 0A343C 7F06E90C 44808000 */ mtc1 $zero, $f16 +/* 0A3440 7F06E910 00000000 */ nop +/* 0A3444 7F06E914 46008032 */ c.eq.s $f16, $f0 +/* 0A3448 7F06E918 00000000 */ nop +/* 0A344C 7F06E91C 4502000D */ bc1fl .L7F06E954 +/* 0A3450 7F06E920 8FAA0028 */ lw $t2, 0x28($sp) +/* 0A3454 7F06E924 C4520004 */ lwc1 $f18, 4($v0) +.L7F06E928: +/* 0A3458 7F06E928 8FA80028 */ lw $t0, 0x28($sp) +/* 0A345C 7F06E92C 460C9102 */ mul.s $f4, $f18, $f12 +/* 0A3460 7F06E930 4604103E */ c.le.s $f2, $f4 +/* 0A3464 7F06E934 00000000 */ nop +/* 0A3468 7F06E938 45000005 */ bc1f .L7F06E950 +/* 0A346C 7F06E93C 24190001 */ li $t9, 1 +/* 0A3470 7F06E940 AD190000 */ sw $t9, ($t0) +/* 0A3474 7F06E944 8C490008 */ lw $t1, 8($v0) +/* 0A3478 7F06E948 10000004 */ b .L7F06E95C +/* 0A347C 7F06E94C AE090014 */ sw $t1, 0x14($s0) +.L7F06E950: +/* 0A3480 7F06E950 8FAA0028 */ lw $t2, 0x28($sp) +.L7F06E954: +/* 0A3484 7F06E954 AD400000 */ sw $zero, ($t2) +/* 0A3488 7F06E958 AE000014 */ sw $zero, 0x14($s0) +.L7F06E95C: +/* 0A348C 7F06E95C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A3490 7F06E960 8FB00018 */ lw $s0, 0x18($sp) +/* 0A3494 7F06E964 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0A3498 7F06E968 03E00008 */ jr $ra +/* 0A349C 7F06E96C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06E970(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06E970 +/* 0A34A0 7F06E970 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A34A4 7F06E974 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A34A8 7F06E978 8CAE0004 */ lw $t6, 4($a1) +/* 0A34AC 7F06E97C AFA50024 */ sw $a1, 0x24($sp) +/* 0A34B0 7F06E980 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A34B4 7F06E984 AFAE001C */ sw $t6, 0x1c($sp) +/* 0A34B8 7F06E988 8C4F0000 */ lw $t7, ($v0) +/* 0A34BC 7F06E98C 8FA50024 */ lw $a1, 0x24($sp) +/* 0A34C0 7F06E990 8FB8001C */ lw $t8, 0x1c($sp) +/* 0A34C4 7F06E994 51E00005 */ beql $t7, $zero, .L7F06E9AC +/* 0A34C8 7F06E998 ACA00014 */ sw $zero, 0x14($a1) +/* 0A34CC 7F06E99C 8F190008 */ lw $t9, 8($t8) +/* 0A34D0 7F06E9A0 10000002 */ b .L7F06E9AC +/* 0A34D4 7F06E9A4 ACB90014 */ sw $t9, 0x14($a1) +/* 0A34D8 7F06E9A8 ACA00014 */ sw $zero, 0x14($a1) +.L7F06E9AC: +/* 0A34DC 7F06E9AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A34E0 7F06E9B0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0A34E4 7F06E9B4 03E00008 */ jr $ra +/* 0A34E8 7F06E9B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void process_12_handle_switch(void) { + +} +#else +GLOBAL_ASM( +.text +glabel process_12_handle_switch +/* 0A34EC 7F06E9BC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A34F0 7F06E9C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A34F4 7F06E9C4 8CAE0004 */ lw $t6, 4($a1) +/* 0A34F8 7F06E9C8 AFA50024 */ sw $a1, 0x24($sp) +/* 0A34FC 7F06E9CC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A3500 7F06E9D0 AFAE001C */ sw $t6, 0x1c($sp) +/* 0A3504 7F06E9D4 8C4F0000 */ lw $t7, ($v0) +/* 0A3508 7F06E9D8 8FA50024 */ lw $a1, 0x24($sp) +/* 0A350C 7F06E9DC 8FB8001C */ lw $t8, 0x1c($sp) +/* 0A3510 7F06E9E0 51E00005 */ beql $t7, $zero, .L7F06E9F8 +/* 0A3514 7F06E9E4 ACA00014 */ sw $zero, 0x14($a1) +/* 0A3518 7F06E9E8 8F190000 */ lw $t9, ($t8) +/* 0A351C 7F06E9EC 10000002 */ b .L7F06E9F8 +/* 0A3520 7F06E9F0 ACB90014 */ sw $t9, 0x14($a1) +/* 0A3524 7F06E9F4 ACA00014 */ sw $zero, 0x14($a1) +.L7F06E9F8: +/* 0A3528 7F06E9F8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A352C 7F06E9FC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0A3530 7F06EA00 03E00008 */ jr $ra +/* 0A3534 7F06EA04 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void process_17_pointer_to_head(void) { + +} +#else +GLOBAL_ASM( +.text +glabel process_17_pointer_to_head +/* 0A3538 7F06EA08 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A353C 7F06EA0C AFBF0014 */ sw $ra, 0x14($sp) +/* 0A3540 7F06EA10 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A3544 7F06EA14 AFA5001C */ sw $a1, 0x1c($sp) +/* 0A3548 7F06EA18 8C440000 */ lw $a0, ($v0) +/* 0A354C 7F06EA1C 8FA5001C */ lw $a1, 0x1c($sp) +/* 0A3550 7F06EA20 50800009 */ beql $a0, $zero, .L7F06EA48 +/* 0A3554 7F06EA24 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A3558 7F06EA28 8C830000 */ lw $v1, ($a0) +/* 0A355C 7F06EA2C 10600005 */ beqz $v1, .L7F06EA44 +/* 0A3560 7F06EA30 ACA30014 */ sw $v1, 0x14($a1) +/* 0A3564 7F06EA34 AC650008 */ sw $a1, 8($v1) +.L7F06EA38: +/* 0A3568 7F06EA38 8C63000C */ lw $v1, 0xc($v1) +/* 0A356C 7F06EA3C 5460FFFE */ bnezl $v1, .L7F06EA38 +/* 0A3570 7F06EA40 AC650008 */ sw $a1, 8($v1) +.L7F06EA44: +/* 0A3574 7F06EA44 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06EA48: +/* 0A3578 7F06EA48 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A357C 7F06EA4C 03E00008 */ jr $ra +/* 0A3580 7F06EA50 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06EA54(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06EA54 +/* 0A3584 7F06EA54 10A00004 */ beqz $a1, .L7F06EA68 +/* 0A3588 7F06EA58 8C820004 */ lw $v0, 4($a0) +/* 0A358C 7F06EA5C 8C430018 */ lw $v1, 0x18($v0) +/* 0A3590 7F06EA60 10000003 */ b .L7F06EA70 +/* 0A3594 7F06EA64 8C45001C */ lw $a1, 0x1c($v0) +.L7F06EA68: +/* 0A3598 7F06EA68 8C43001C */ lw $v1, 0x1c($v0) +/* 0A359C 7F06EA6C 8C450018 */ lw $a1, 0x18($v0) +.L7F06EA70: +/* 0A35A0 7F06EA70 10600022 */ beqz $v1, .L7F06EAFC +/* 0A35A4 7F06EA74 00000000 */ nop +/* 0A35A8 7F06EA78 AC830014 */ sw $v1, 0x14($a0) +/* 0A35AC 7F06EA7C 8C66000C */ lw $a2, 0xc($v1) +/* 0A35B0 7F06EA80 AC600010 */ sw $zero, 0x10($v1) +/* 0A35B4 7F06EA84 00601025 */ move $v0, $v1 +/* 0A35B8 7F06EA88 10C0000A */ beqz $a2, .L7F06EAB4 +/* 0A35BC 7F06EA8C 00000000 */ nop +/* 0A35C0 7F06EA90 10A60008 */ beq $a1, $a2, .L7F06EAB4 +/* 0A35C4 7F06EA94 00000000 */ nop +/* 0A35C8 7F06EA98 8C44000C */ lw $a0, 0xc($v0) +/* 0A35CC 7F06EA9C 00801025 */ move $v0, $a0 +.L7F06EAA0: +/* 0A35D0 7F06EAA0 8C84000C */ lw $a0, 0xc($a0) +/* 0A35D4 7F06EAA4 10800003 */ beqz $a0, .L7F06EAB4 +/* 0A35D8 7F06EAA8 00000000 */ nop +/* 0A35DC 7F06EAAC 54A4FFFC */ bnel $a1, $a0, .L7F06EAA0 +/* 0A35E0 7F06EAB0 00801025 */ move $v0, $a0 +.L7F06EAB4: +/* 0A35E4 7F06EAB4 10A00014 */ beqz $a1, .L7F06EB08 +/* 0A35E8 7F06EAB8 AC45000C */ sw $a1, 0xc($v0) +/* 0A35EC 7F06EABC 8CA4000C */ lw $a0, 0xc($a1) +/* 0A35F0 7F06EAC0 ACA20010 */ sw $v0, 0x10($a1) +/* 0A35F4 7F06EAC4 00A01025 */ move $v0, $a1 +/* 0A35F8 7F06EAC8 1080000A */ beqz $a0, .L7F06EAF4 +/* 0A35FC 7F06EACC 00000000 */ nop +/* 0A3600 7F06EAD0 10640008 */ beq $v1, $a0, .L7F06EAF4 +/* 0A3604 7F06EAD4 00000000 */ nop +/* 0A3608 7F06EAD8 8CA4000C */ lw $a0, 0xc($a1) +/* 0A360C 7F06EADC 00801025 */ move $v0, $a0 +.L7F06EAE0: +/* 0A3610 7F06EAE0 8C84000C */ lw $a0, 0xc($a0) +/* 0A3614 7F06EAE4 10800003 */ beqz $a0, .L7F06EAF4 +/* 0A3618 7F06EAE8 00000000 */ nop +/* 0A361C 7F06EAEC 5464FFFC */ bnel $v1, $a0, .L7F06EAE0 +/* 0A3620 7F06EAF0 00801025 */ move $v0, $a0 +.L7F06EAF4: +/* 0A3624 7F06EAF4 03E00008 */ jr $ra +/* 0A3628 7F06EAF8 AC40000C */ sw $zero, 0xc($v0) + +.L7F06EAFC: +/* 0A362C 7F06EAFC 10A00002 */ beqz $a1, .L7F06EB08 +/* 0A3630 7F06EB00 AC850014 */ sw $a1, 0x14($a0) +/* 0A3634 7F06EB04 ACA00010 */ sw $zero, 0x10($a1) +.L7F06EB08: +/* 0A3638 7F06EB08 03E00008 */ jr $ra +/* 0A363C 7F06EB0C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06EB10(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06EB10 +/* 0A3640 7F06EB10 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A3644 7F06EB14 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A3648 7F06EB18 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A364C 7F06EB1C AFA5001C */ sw $a1, 0x1c($sp) +/* 0A3650 7F06EB20 8FA4001C */ lw $a0, 0x1c($sp) +/* 0A3654 7F06EB24 0FC1BA95 */ jal sub_GAME_7F06EA54 +/* 0A3658 7F06EB28 8C450000 */ lw $a1, ($v0) +/* 0A365C 7F06EB2C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A3660 7F06EB30 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A3664 7F06EB34 03E00008 */ jr $ra +/* 0A3668 7F06EB38 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void process_09_head_hat_placement_interlink(void) { + +} +#else +GLOBAL_ASM( +.text +glabel process_09_head_hat_placement_interlink +/* 0A366C 7F06EB3C 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0A3670 7F06EB40 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A3674 7F06EB44 AFB00018 */ sw $s0, 0x18($sp) +/* 0A3678 7F06EB48 AFA40050 */ sw $a0, 0x50($sp) +/* 0A367C 7F06EB4C 8CB00004 */ lw $s0, 4($a1) +/* 0A3680 7F06EB50 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A3684 7F06EB54 AFA50054 */ sw $a1, 0x54($sp) +/* 0A3688 7F06EB58 AFA20048 */ sw $v0, 0x48($sp) +/* 0A368C 7F06EB5C 8FA40050 */ lw $a0, 0x50($sp) +/* 0A3690 7F06EB60 8FA50054 */ lw $a1, 0x54($sp) +/* 0A3694 7F06EB64 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A3698 7F06EB68 00003025 */ move $a2, $zero +/* 0A369C 7F06EB6C 86030020 */ lh $v1, 0x20($s0) +/* 0A36A0 7F06EB70 00402025 */ move $a0, $v0 +/* 0A36A4 7F06EB74 24010002 */ li $at, 2 +/* 0A36A8 7F06EB78 1460000C */ bnez $v1, .L7F06EBAC +/* 0A36AC 7F06EB7C 00000000 */ nop +/* 0A36B0 7F06EB80 C604000C */ lwc1 $f4, 0xc($s0) +/* 0A36B4 7F06EB84 27A50038 */ addiu $a1, $sp, 0x38 +/* 0A36B8 7F06EB88 E7A40038 */ swc1 $f4, 0x38($sp) +/* 0A36BC 7F06EB8C C6060010 */ lwc1 $f6, 0x10($s0) +/* 0A36C0 7F06EB90 E7A6003C */ swc1 $f6, 0x3c($sp) +/* 0A36C4 7F06EB94 C6080014 */ lwc1 $f8, 0x14($s0) +/* 0A36C8 7F06EB98 AFA40044 */ sw $a0, 0x44($sp) +/* 0A36CC 7F06EB9C 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0A36D0 7F06EBA0 E7A80040 */ swc1 $f8, 0x40($sp) +/* 0A36D4 7F06EBA4 1000002F */ b .L7F06EC64 +/* 0A36D8 7F06EBA8 8FA40044 */ lw $a0, 0x44($sp) +.L7F06EBAC: +/* 0A36DC 7F06EBAC 5461000F */ bnel $v1, $at, .L7F06EBEC +/* 0A36E0 7F06EBB0 24010003 */ li $at, 3 +/* 0A36E4 7F06EBB4 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 0A36E8 7F06EBB8 C4500010 */ lwc1 $f16, 0x10($v0) +/* 0A36EC 7F06EBBC 46105482 */ mul.s $f18, $f10, $f16 +/* 0A36F0 7F06EBC0 E7B20038 */ swc1 $f18, 0x38($sp) +/* 0A36F4 7F06EBC4 C6040010 */ lwc1 $f4, 0x10($s0) +/* 0A36F8 7F06EBC8 C4460014 */ lwc1 $f6, 0x14($v0) +/* 0A36FC 7F06EBCC 46062202 */ mul.s $f8, $f4, $f6 +/* 0A3700 7F06EBD0 E7A8003C */ swc1 $f8, 0x3c($sp) +/* 0A3704 7F06EBD4 C4500018 */ lwc1 $f16, 0x18($v0) +/* 0A3708 7F06EBD8 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 0A370C 7F06EBDC 46105482 */ mul.s $f18, $f10, $f16 +/* 0A3710 7F06EBE0 10000020 */ b .L7F06EC64 +/* 0A3714 7F06EBE4 E7B20040 */ swc1 $f18, 0x40($sp) +/* 0A3718 7F06EBE8 24010003 */ li $at, 3 +.L7F06EBEC: +/* 0A371C 7F06EBEC 5461000F */ bnel $v1, $at, .L7F06EC2C +/* 0A3720 7F06EBF0 24010001 */ li $at, 1 +/* 0A3724 7F06EBF4 C6040014 */ lwc1 $f4, 0x14($s0) +/* 0A3728 7F06EBF8 C4460020 */ lwc1 $f6, 0x20($v0) +/* 0A372C 7F06EBFC 46062202 */ mul.s $f8, $f4, $f6 +/* 0A3730 7F06EC00 E7A80038 */ swc1 $f8, 0x38($sp) +/* 0A3734 7F06EC04 C60A0014 */ lwc1 $f10, 0x14($s0) +/* 0A3738 7F06EC08 C4500024 */ lwc1 $f16, 0x24($v0) +/* 0A373C 7F06EC0C 46105482 */ mul.s $f18, $f10, $f16 +/* 0A3740 7F06EC10 E7B2003C */ swc1 $f18, 0x3c($sp) +/* 0A3744 7F06EC14 C4460028 */ lwc1 $f6, 0x28($v0) +/* 0A3748 7F06EC18 C6040014 */ lwc1 $f4, 0x14($s0) +/* 0A374C 7F06EC1C 46062202 */ mul.s $f8, $f4, $f6 +/* 0A3750 7F06EC20 10000010 */ b .L7F06EC64 +/* 0A3754 7F06EC24 E7A80040 */ swc1 $f8, 0x40($sp) +/* 0A3758 7F06EC28 24010001 */ li $at, 1 +.L7F06EC2C: +/* 0A375C 7F06EC2C 5461000E */ bnel $v1, $at, .L7F06EC68 +/* 0A3760 7F06EC30 C6040000 */ lwc1 $f4, ($s0) +/* 0A3764 7F06EC34 C60A000C */ lwc1 $f10, 0xc($s0) +/* 0A3768 7F06EC38 C4500000 */ lwc1 $f16, ($v0) +/* 0A376C 7F06EC3C 46105482 */ mul.s $f18, $f10, $f16 +/* 0A3770 7F06EC40 E7B20038 */ swc1 $f18, 0x38($sp) +/* 0A3774 7F06EC44 C604000C */ lwc1 $f4, 0xc($s0) +/* 0A3778 7F06EC48 C4460004 */ lwc1 $f6, 4($v0) +/* 0A377C 7F06EC4C 46062202 */ mul.s $f8, $f4, $f6 +/* 0A3780 7F06EC50 E7A8003C */ swc1 $f8, 0x3c($sp) +/* 0A3784 7F06EC54 C4500008 */ lwc1 $f16, 8($v0) +/* 0A3788 7F06EC58 C60A000C */ lwc1 $f10, 0xc($s0) +/* 0A378C 7F06EC5C 46105482 */ mul.s $f18, $f10, $f16 +/* 0A3790 7F06EC60 E7B20040 */ swc1 $f18, 0x40($sp) +.L7F06EC64: +/* 0A3794 7F06EC64 C6040000 */ lwc1 $f4, ($s0) +.L7F06EC68: +/* 0A3798 7F06EC68 27A5002C */ addiu $a1, $sp, 0x2c +/* 0A379C 7F06EC6C E7A4002C */ swc1 $f4, 0x2c($sp) +/* 0A37A0 7F06EC70 C6060004 */ lwc1 $f6, 4($s0) +/* 0A37A4 7F06EC74 E7A60030 */ swc1 $f6, 0x30($sp) +/* 0A37A8 7F06EC78 C6080008 */ lwc1 $f8, 8($s0) +/* 0A37AC 7F06EC7C 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 0A37B0 7F06EC80 E7A80034 */ swc1 $f8, 0x34($sp) +/* 0A37B4 7F06EC84 C7AA0038 */ lwc1 $f10, 0x38($sp) +/* 0A37B8 7F06EC88 C7B0002C */ lwc1 $f16, 0x2c($sp) +/* 0A37BC 7F06EC8C C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0A37C0 7F06EC90 C7A60030 */ lwc1 $f6, 0x30($sp) +/* 0A37C4 7F06EC94 46105482 */ mul.s $f18, $f10, $f16 +/* 0A37C8 7F06EC98 C7B00034 */ lwc1 $f16, 0x34($sp) +/* 0A37CC 7F06EC9C 8FAF0048 */ lw $t7, 0x48($sp) +/* 0A37D0 7F06ECA0 46062202 */ mul.s $f8, $f4, $f6 +/* 0A37D4 7F06ECA4 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0A37D8 7F06ECA8 8FB80048 */ lw $t8, 0x48($sp) +/* 0A37DC 7F06ECAC 46048182 */ mul.s $f6, $f16, $f4 +/* 0A37E0 7F06ECB0 46089280 */ add.s $f10, $f18, $f8 +/* 0A37E4 7F06ECB4 44809000 */ mtc1 $zero, $f18 +/* 0A37E8 7F06ECB8 460A3000 */ add.s $f0, $f6, $f10 +/* 0A37EC 7F06ECBC 4612003C */ c.lt.s $f0, $f18 +/* 0A37F0 7F06ECC0 00000000 */ nop +/* 0A37F4 7F06ECC4 45000003 */ bc1f .L7F06ECD4 +/* 0A37F8 7F06ECC8 240E0001 */ li $t6, 1 +/* 0A37FC 7F06ECCC 10000002 */ b .L7F06ECD8 +/* 0A3800 7F06ECD0 ADEE0000 */ sw $t6, ($t7) +.L7F06ECD4: +/* 0A3804 7F06ECD4 AF000000 */ sw $zero, ($t8) +.L7F06ECD8: +/* 0A3808 7F06ECD8 8FA40050 */ lw $a0, 0x50($sp) +/* 0A380C 7F06ECDC 0FC1BAC4 */ jal sub_GAME_7F06EB10 +/* 0A3810 7F06ECE0 8FA50054 */ lw $a1, 0x54($sp) +/* 0A3814 7F06ECE4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A3818 7F06ECE8 8FB00018 */ lw $s0, 0x18($sp) +/* 0A381C 7F06ECEC 27BD0050 */ addiu $sp, $sp, 0x50 +/* 0A3820 7F06ECF0 03E00008 */ jr $ra +/* 0A3824 7F06ECF4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void process_07_unknown(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054C18 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054C1C +.word 0x40c90fdb /*6.2831855*/ +.text +glabel process_07_unknown +/* 0A3828 7F06ECF8 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0A382C 7F06ECFC AFBF001C */ sw $ra, 0x1c($sp) +/* 0A3830 7F06ED00 AFB00018 */ sw $s0, 0x18($sp) +/* 0A3834 7F06ED04 AFA40058 */ sw $a0, 0x58($sp) +/* 0A3838 7F06ED08 8CAE0004 */ lw $t6, 4($a1) +/* 0A383C 7F06ED0C 00A08025 */ move $s0, $a1 +/* 0A3840 7F06ED10 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A3844 7F06ED14 AFAE0054 */ sw $t6, 0x54($sp) +/* 0A3848 7F06ED18 AFA20050 */ sw $v0, 0x50($sp) +/* 0A384C 7F06ED1C 8FA40058 */ lw $a0, 0x58($sp) +/* 0A3850 7F06ED20 02002825 */ move $a1, $s0 +/* 0A3854 7F06ED24 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A3858 7F06ED28 00003025 */ move $a2, $zero +/* 0A385C 7F06ED2C 00408025 */ move $s0, $v0 +/* 0A3860 7F06ED30 8FA40058 */ lw $a0, 0x58($sp) +/* 0A3864 7F06ED34 0FC1B154 */ jal sub_GAME_7F06C550 +/* 0A3868 7F06ED38 27A50038 */ addiu $a1, $sp, 0x38 +/* 0A386C 7F06ED3C C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0A3870 7F06ED40 C6060010 */ lwc1 $f6, 0x10($s0) +/* 0A3874 7F06ED44 C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 0A3878 7F06ED48 C6100014 */ lwc1 $f16, 0x14($s0) +/* 0A387C 7F06ED4C 46062202 */ mul.s $f8, $f4, $f6 +/* 0A3880 7F06ED50 C6060018 */ lwc1 $f6, 0x18($s0) +/* 0A3884 7F06ED54 46105482 */ mul.s $f18, $f10, $f16 +/* 0A3888 7F06ED58 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 0A388C 7F06ED5C 460A3402 */ mul.s $f16, $f6, $f10 +/* 0A3890 7F06ED60 46124100 */ add.s $f4, $f8, $f18 +/* 0A3894 7F06ED64 0FC16B2C */ jal acosf +/* 0A3898 7F06ED68 46048300 */ add.s $f12, $f16, $f4 +/* 0A389C 7F06ED6C E7A00030 */ swc1 $f0, 0x30($sp) +/* 0A38A0 7F06ED70 0FC15FAB */ jal sinf +/* 0A38A4 7F06ED74 46000306 */ mov.s $f12, $f0 +/* 0A38A8 7F06ED78 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0A38AC 7F06ED7C C6120020 */ lwc1 $f18, 0x20($s0) +/* 0A38B0 7F06ED80 C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 0A38B4 7F06ED84 C6100024 */ lwc1 $f16, 0x24($s0) +/* 0A38B8 7F06ED88 46124182 */ mul.s $f6, $f8, $f18 +/* 0A38BC 7F06ED8C C7B20040 */ lwc1 $f18, 0x40($sp) +/* 0A38C0 7F06ED90 46105102 */ mul.s $f4, $f10, $f16 +/* 0A38C4 7F06ED94 C60A0028 */ lwc1 $f10, 0x28($s0) +/* 0A38C8 7F06ED98 460A9402 */ mul.s $f16, $f18, $f10 +/* 0A38CC 7F06ED9C 46043200 */ add.s $f8, $f6, $f4 +/* 0A38D0 7F06EDA0 46104180 */ add.s $f6, $f8, $f16 +/* 0A38D4 7F06EDA4 0FC16B2C */ jal acosf +/* 0A38D8 7F06EDA8 46003303 */ div.s $f12, $f6, $f0 +/* 0A38DC 7F06EDAC C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0A38E0 7F06EDB0 C6120000 */ lwc1 $f18, ($s0) +/* 0A38E4 7F06EDB4 C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0A38E8 7F06EDB8 C6100004 */ lwc1 $f16, 4($s0) +/* 0A38EC 7F06EDBC 46122282 */ mul.s $f10, $f4, $f18 +/* 0A38F0 7F06EDC0 C6120008 */ lwc1 $f18, 8($s0) +/* 0A38F4 7F06EDC4 44807000 */ mtc1 $zero, $f14 +/* 0A38F8 7F06EDC8 46104182 */ mul.s $f6, $f8, $f16 +/* 0A38FC 7F06EDCC C7A80040 */ lwc1 $f8, 0x40($sp) +/* 0A3900 7F06EDD0 46000306 */ mov.s $f12, $f0 +/* 0A3904 7F06EDD4 46089402 */ mul.s $f16, $f18, $f8 +/* 0A3908 7F06EDD8 46065100 */ add.s $f4, $f10, $f6 +/* 0A390C 7F06EDDC C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 0A3910 7F06EDE0 46048080 */ add.s $f2, $f16, $f4 +/* 0A3914 7F06EDE4 460E103C */ c.lt.s $f2, $f14 +/* 0A3918 7F06EDE8 00000000 */ nop +/* 0A391C 7F06EDEC 45000007 */ bc1f .L7F06EE0C +/* 0A3920 7F06EDF0 00000000 */ nop +/* 0A3924 7F06EDF4 4600703C */ c.lt.s $f14, $f0 +/* 0A3928 7F06EDF8 3C018005 */ lui $at, %hi(D_80054C18) +/* 0A392C 7F06EDFC 45000003 */ bc1f .L7F06EE0C +/* 0A3930 7F06EE00 00000000 */ nop +/* 0A3934 7F06EE04 C4224C18 */ lwc1 $f2, %lo(D_80054C18)($at) +/* 0A3938 7F06EE08 46001301 */ sub.s $f12, $f2, $f0 +.L7F06EE0C: +/* 0A393C 7F06EE0C 3C018005 */ lui $at, %hi(D_80054C1C) +/* 0A3940 7F06EE10 C4224C1C */ lwc1 $f2, %lo(D_80054C1C)($at) +/* 0A3944 7F06EE14 3C014280 */ li $at, 0x42800000 # 64.000000 +/* 0A3948 7F06EE18 44813000 */ mtc1 $at, $f6 +/* 0A394C 7F06EE1C 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0A3950 7F06EE20 44812000 */ mtc1 $at, $f4 +/* 0A3954 7F06EE24 46065482 */ mul.s $f18, $f10, $f6 +/* 0A3958 7F06EE28 3C088003 */ lui $t0, %hi(D_800360C4) +/* 0A395C 7F06EE2C 250860C4 */ addiu $t0, %lo(D_800360C4) # addiu $t0, $t0, 0x60c4 +/* 0A3960 7F06EE30 46046282 */ mul.s $f10, $f12, $f4 +/* 0A3964 7F06EE34 8FAE0054 */ lw $t6, 0x54($sp) +/* 0A3968 7F06EE38 46029203 */ div.s $f8, $f18, $f2 +/* 0A396C 7F06EE3C 46025183 */ div.s $f6, $f10, $f2 +/* 0A3970 7F06EE40 4600440D */ trunc.w.s $f16, $f8 +/* 0A3974 7F06EE44 44188000 */ mfc1 $t8, $f16 +/* 0A3978 7F06EE48 00000000 */ nop +/* 0A397C 7F06EE4C 0018C880 */ sll $t9, $t8, 2 +/* 0A3980 7F06EE50 0338C823 */ subu $t9, $t9, $t8 +/* 0A3984 7F06EE54 0019C880 */ sll $t9, $t9, 2 +/* 0A3988 7F06EE58 03281821 */ addu $v1, $t9, $t0 +/* 0A398C 7F06EE5C 8C6B0004 */ lw $t3, 4($v1) +/* 0A3990 7F06EE60 8C6C0008 */ lw $t4, 8($v1) +/* 0A3994 7F06EE64 8C6D0000 */ lw $t5, ($v1) +/* 0A3998 7F06EE68 8FB90050 */ lw $t9, 0x50($sp) +/* 0A399C 7F06EE6C 4600348D */ trunc.w.s $f18, $f6 +/* 0A39A0 7F06EE70 440A9000 */ mfc1 $t2, $f18 +/* 0A39A4 7F06EE74 00000000 */ nop +/* 0A39A8 7F06EE78 014B1021 */ addu $v0, $t2, $t3 +/* 0A39AC 7F06EE7C 01821007 */ srav $v0, $v0, $t4 +/* 0A39B0 7F06EE80 01A22021 */ addu $a0, $t5, $v0 +/* 0A39B4 7F06EE84 01C47821 */ addu $t7, $t6, $a0 +/* 0A39B8 7F06EE88 91F80018 */ lbu $t8, 0x18($t7) +/* 0A39BC 7F06EE8C AF380000 */ sw $t8, ($t9) +/* 0A39C0 7F06EE90 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A39C4 7F06EE94 8FB00018 */ lw $s0, 0x18($sp) +/* 0A39C8 7F06EE98 27BD0058 */ addiu $sp, $sp, 0x58 +/* 0A39CC 7F06EE9C 03E00008 */ jr $ra +/* 0A39D0 7F06EEA0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06EEA4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80054C20*/ +glabel jpt_80054C20 +.word .L7F06EEFC +.word .L7F06EEFC +.word .L7F06EEFC +.word .L7F06EF4C +.word .L7F06EF4C +.word .L7F06EF4C +.word .L7F06EF2C +.word .L7F06EF04 +.word .L7F06EF18 +.word .L7F06EF4C +.word .L7F06EEFC +.word .L7F06EEFC +.word .L7F06EEFC +.word .L7F06EEFC +.word .L7F06EEFC +.word .L7F06EEFC +.word .L7F06EF4C +.word .L7F06EF4C +.word .L7F06EF4C +.word .L7F06EF4C +.word .L7F06EEFC +.word .L7F06EF4C +.word .L7F06EF40 +/*.word .L7F06EF4C*/ + +.text +glabel sub_GAME_7F06EEA4 +/* 0A39D4 7F06EEA4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0A39D8 7F06EEA8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0A39DC 7F06EEAC AFB20020 */ sw $s2, 0x20($sp) +/* 0A39E0 7F06EEB0 AFB1001C */ sw $s1, 0x1c($sp) +/* 0A39E4 7F06EEB4 AFB00018 */ sw $s0, 0x18($sp) +/* 0A39E8 7F06EEB8 AFA5002C */ sw $a1, 0x2c($sp) +/* 0A39EC 7F06EEBC 8CB00014 */ lw $s0, 0x14($a1) +/* 0A39F0 7F06EEC0 00809025 */ move $s2, $a0 +/* 0A39F4 7F06EEC4 5200003A */ beql $s0, $zero, .L7F06EFB0 +/* 0A39F8 7F06EEC8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A39FC 7F06EECC 96020000 */ lhu $v0, ($s0) +.L7F06EED0: +/* 0A3A00 7F06EED0 24110001 */ li $s1, 1 +/* 0A3A04 7F06EED4 304F00FF */ andi $t7, $v0, 0xff +/* 0A3A08 7F06EED8 25F8FFFF */ addiu $t8, $t7, -1 +/* 0A3A0C 7F06EEDC 2F010018 */ sltiu $at, $t8, 0x18 +/* 0A3A10 7F06EEE0 1020001A */ beqz $at, .L7F06EF4C +/* 0A3A14 7F06EEE4 0018C080 */ sll $t8, $t8, 2 +/* 0A3A18 7F06EEE8 3C018005 */ lui $at, %hi(jpt_80054C20) +/* 0A3A1C 7F06EEEC 00380821 */ addu $at, $at, $t8 +/* 0A3A20 7F06EEF0 8C384C20 */ lw $t8, %lo(jpt_80054C20)($at) +.L7F06EEF4: +/* 0A3A24 7F06EEF4 03000008 */ jr $t8 +/* 0A3A28 7F06EEF8 00000000 */ nop +.L7F06EEFC: +/* 0A3A2C 7F06EEFC 10000013 */ b .L7F06EF4C +/* 0A3A30 7F06EF00 00008825 */ move $s1, $zero +.L7F06EF04: +/* 0A3A34 7F06EF04 02402025 */ move $a0, $s2 +/* 0A3A38 7F06EF08 0FC1BA16 */ jal process_08_distance_triggers +/* 0A3A3C 7F06EF0C 02002825 */ move $a1, $s0 +/* 0A3A40 7F06EF10 1000000E */ b .L7F06EF4C +/* 0A3A44 7F06EF14 00000000 */ nop +.L7F06EF18: +/* 0A3A48 7F06EF18 02402025 */ move $a0, $s2 +/* 0A3A4C 7F06EF1C 0FC1BACF */ jal process_09_head_hat_placement_interlink +/* 0A3A50 7F06EF20 02002825 */ move $a1, $s0 +/* 0A3A54 7F06EF24 10000009 */ b .L7F06EF4C +/* 0A3A58 7F06EF28 00000000 */ nop +.L7F06EF2C: +/* 0A3A5C 7F06EF2C 02402025 */ move $a0, $s2 +/* 0A3A60 7F06EF30 0FC1BB3E */ jal process_07_unknown +/* 0A3A64 7F06EF34 02002825 */ move $a1, $s0 +/* 0A3A68 7F06EF38 10000004 */ b .L7F06EF4C +/* 0A3A6C 7F06EF3C 00000000 */ nop +.L7F06EF40: +/* 0A3A70 7F06EF40 02402025 */ move $a0, $s2 +/* 0A3A74 7F06EF44 0FC1BA82 */ jal process_17_pointer_to_head +/* 0A3A78 7F06EF48 02002825 */ move $a1, $s0 +def_7F06EEF4: +.L7F06EF4C: +/* 0A3A7C 7F06EF4C 12200006 */ beqz $s1, .L7F06EF68 +/* 0A3A80 7F06EF50 00000000 */ nop +/* 0A3A84 7F06EF54 8E020014 */ lw $v0, 0x14($s0) +/* 0A3A88 7F06EF58 10400003 */ beqz $v0, .L7F06EF68 +/* 0A3A8C 7F06EF5C 00000000 */ nop +/* 0A3A90 7F06EF60 10000010 */ b .L7F06EFA4 +/* 0A3A94 7F06EF64 00408025 */ move $s0, $v0 +.L7F06EF68: +/* 0A3A98 7F06EF68 1200000E */ beqz $s0, .L7F06EFA4 +/* 0A3A9C 7F06EF6C 8FB9002C */ lw $t9, 0x2c($sp) +/* 0A3AA0 7F06EF70 8F230008 */ lw $v1, 8($t9) +.L7F06EF74: +/* 0A3AA4 7F06EF74 56030004 */ bnel $s0, $v1, .L7F06EF88 +/* 0A3AA8 7F06EF78 8E02000C */ lw $v0, 0xc($s0) +/* 0A3AAC 7F06EF7C 10000009 */ b .L7F06EFA4 +/* 0A3AB0 7F06EF80 00008025 */ move $s0, $zero +/* 0A3AB4 7F06EF84 8E02000C */ lw $v0, 0xc($s0) +.L7F06EF88: +/* 0A3AB8 7F06EF88 50400004 */ beql $v0, $zero, .L7F06EF9C +/* 0A3ABC 7F06EF8C 8E100008 */ lw $s0, 8($s0) +/* 0A3AC0 7F06EF90 10000004 */ b .L7F06EFA4 +/* 0A3AC4 7F06EF94 00408025 */ move $s0, $v0 +/* 0A3AC8 7F06EF98 8E100008 */ lw $s0, 8($s0) +.L7F06EF9C: +/* 0A3ACC 7F06EF9C 1600FFF5 */ bnez $s0, .L7F06EF74 +/* 0A3AD0 7F06EFA0 00000000 */ nop +.L7F06EFA4: +/* 0A3AD4 7F06EFA4 5600FFCA */ bnezl $s0, .L7F06EED0 +/* 0A3AD8 7F06EFA8 96020000 */ lhu $v0, ($s0) +/* 0A3ADC 7F06EFAC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F06EFB0: +/* 0A3AE0 7F06EFB0 8FB00018 */ lw $s0, 0x18($sp) +/* 0A3AE4 7F06EFB4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0A3AE8 7F06EFB8 8FB20020 */ lw $s2, 0x20($sp) +/* 0A3AEC 7F06EFBC 03E00008 */ jr $ra +/* 0A3AF0 7F06EFC0 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06EFC4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*hack for above jtbl being too big*/ +.word .L7F06EF4C + +/*D:80054C80*/ +glabel jpt_80054C80 +.word .L7F06F078 +.word .L7F06F078 +.word .L7F06F078 +.word .L7F06F078 +.word .L7F06F078 +.word .L7F06F078 +.word .L7F06F03C +.word .L7F06F014 +.word .L7F06F028 +.word .L7F06F078 +.word .L7F06F078 +.word .L7F06F078 +.word .L7F06F078 +.word .L7F06F078 +.word .L7F06F078 +.word .L7F06F078 +.word .L7F06F078 +.word .L7F06F050 +.word .L7F06F078 +.word .L7F06F078 +.word .L7F06F078 +/*.word .L7F06F078*/ +/*.word .L7F06F064*/ +/*.word .L7F06F078*/ + +.text +glabel sub_GAME_7F06EFC4 +/* 0A3AF4 7F06EFC4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A3AF8 7F06EFC8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A3AFC 7F06EFCC AFB10018 */ sw $s1, 0x18($sp) +/* 0A3B00 7F06EFD0 AFB00014 */ sw $s0, 0x14($sp) +/* 0A3B04 7F06EFD4 8C8E0008 */ lw $t6, 8($a0) +/* 0A3B08 7F06EFD8 00808825 */ move $s1, $a0 +/* 0A3B0C 7F06EFDC 8DD00000 */ lw $s0, ($t6) +/* 0A3B10 7F06EFE0 52000037 */ beql $s0, $zero, .L7F06F0C0 +/* 0A3B14 7F06EFE4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A3B18 7F06EFE8 96020000 */ lhu $v0, ($s0) +.L7F06EFEC: +/* 0A3B1C 7F06EFEC 304F00FF */ andi $t7, $v0, 0xff +/* 0A3B20 7F06EFF0 25F8FFFF */ addiu $t8, $t7, -1 +/* 0A3B24 7F06EFF4 2F010018 */ sltiu $at, $t8, 0x18 +/* 0A3B28 7F06EFF8 1020001F */ beqz $at, .L7F06F078 +/* 0A3B2C 7F06EFFC 0018C080 */ sll $t8, $t8, 2 +/* 0A3B30 7F06F000 3C018005 */ lui $at, %hi(jpt_80054C80) +/* 0A3B34 7F06F004 00380821 */ addu $at, $at, $t8 +/* 0A3B38 7F06F008 8C384C80 */ lw $t8, %lo(jpt_80054C80)($at) +.L7F06F00C: +/* 0A3B3C 7F06F00C 03000008 */ jr $t8 +/* 0A3B40 7F06F010 00000000 */ nop +.L7F06F014: +/* 0A3B44 7F06F014 02202025 */ move $a0, $s1 +/* 0A3B48 7F06F018 0FC1BA16 */ jal process_08_distance_triggers +/* 0A3B4C 7F06F01C 02002825 */ move $a1, $s0 +/* 0A3B50 7F06F020 10000016 */ b .L7F06F07C +/* 0A3B54 7F06F024 8E020014 */ lw $v0, 0x14($s0) +.L7F06F028: +/* 0A3B58 7F06F028 02202025 */ move $a0, $s1 +/* 0A3B5C 7F06F02C 0FC1BACF */ jal process_09_head_hat_placement_interlink +/* 0A3B60 7F06F030 02002825 */ move $a1, $s0 +/* 0A3B64 7F06F034 10000011 */ b .L7F06F07C +/* 0A3B68 7F06F038 8E020014 */ lw $v0, 0x14($s0) +.L7F06F03C: +/* 0A3B6C 7F06F03C 02202025 */ move $a0, $s1 +/* 0A3B70 7F06F040 0FC1BB3E */ jal process_07_unknown +/* 0A3B74 7F06F044 02002825 */ move $a1, $s0 +/* 0A3B78 7F06F048 1000000C */ b .L7F06F07C +/* 0A3B7C 7F06F04C 8E020014 */ lw $v0, 0x14($s0) +.L7F06F050: +/* 0A3B80 7F06F050 02202025 */ move $a0, $s1 +/* 0A3B84 7F06F054 0FC1BA6F */ jal process_12_handle_switch +/* 0A3B88 7F06F058 02002825 */ move $a1, $s0 +/* 0A3B8C 7F06F05C 10000007 */ b .L7F06F07C +/* 0A3B90 7F06F060 8E020014 */ lw $v0, 0x14($s0) +.L7F06F064: +/* 0A3B94 7F06F064 02202025 */ move $a0, $s1 +/* 0A3B98 7F06F068 0FC1BA82 */ jal process_17_pointer_to_head +/* 0A3B9C 7F06F06C 02002825 */ move $a1, $s0 +/* 0A3BA0 7F06F070 10000002 */ b .L7F06F07C +/* 0A3BA4 7F06F074 8E020014 */ lw $v0, 0x14($s0) +def_7F06F00C: +.L7F06F078: +/* 0A3BA8 7F06F078 8E020014 */ lw $v0, 0x14($s0) +.L7F06F07C: +/* 0A3BAC 7F06F07C 10400003 */ beqz $v0, .L7F06F08C +/* 0A3BB0 7F06F080 00000000 */ nop +/* 0A3BB4 7F06F084 1000000B */ b .L7F06F0B4 +/* 0A3BB8 7F06F088 00408025 */ move $s0, $v0 +.L7F06F08C: +/* 0A3BBC 7F06F08C 12000009 */ beqz $s0, .L7F06F0B4 +/* 0A3BC0 7F06F090 00000000 */ nop +/* 0A3BC4 7F06F094 8E02000C */ lw $v0, 0xc($s0) +.L7F06F098: +/* 0A3BC8 7F06F098 50400004 */ beql $v0, $zero, .L7F06F0AC +/* 0A3BCC 7F06F09C 8E100008 */ lw $s0, 8($s0) +/* 0A3BD0 7F06F0A0 10000004 */ b .L7F06F0B4 +/* 0A3BD4 7F06F0A4 00408025 */ move $s0, $v0 +/* 0A3BD8 7F06F0A8 8E100008 */ lw $s0, 8($s0) +.L7F06F0AC: +/* 0A3BDC 7F06F0AC 5600FFFA */ bnezl $s0, .L7F06F098 +/* 0A3BE0 7F06F0B0 8E02000C */ lw $v0, 0xc($s0) +.L7F06F0B4: +/* 0A3BE4 7F06F0B4 5600FFCD */ bnezl $s0, .L7F06EFEC +/* 0A3BE8 7F06F0B8 96020000 */ lhu $v0, ($s0) +/* 0A3BEC 7F06F0BC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F06F0C0: +/* 0A3BF0 7F06F0C0 8FB00014 */ lw $s0, 0x14($sp) +/* 0A3BF4 7F06F0C4 8FB10018 */ lw $s1, 0x18($sp) +/* 0A3BF8 7F06F0C8 03E00008 */ jr $ra +/* 0A3BFC 7F06F0CC 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F0D0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*hack for above jtbl*/ +.word .L7F06F078 +.word .L7F06F064 +.word .L7F06F078 + +/*D:80054CE0*/ +glabel jpt_80054CE0 +.word .L7F06F128 +.word .L7F06F140 +.word .L7F06F158 +.word .L7F06F1EC +.word .L7F06F1EC +.word .L7F06F1EC +.word .L7F06F1B0 +.word .L7F06F188 +.word .L7F06F19C +.word .L7F06F1EC +.word .L7F06F1EC +.word .L7F06F1EC +.word .L7F06F1EC +.word .L7F06F1EC +.word .L7F06F1EC +.word .L7F06F1EC +.word .L7F06F1EC +.word .L7F06F1C4 +.word .L7F06F1EC +.word .L7F06F1EC +.word .L7F06F170 +.word .L7F06F1EC +.word .L7F06F1D8 +.word .L7F06F1EC + +.text +glabel sub_GAME_7F06F0D0 +/* 0A3C00 7F06F0D0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0A3C04 7F06F0D4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0A3C08 7F06F0D8 AFB20020 */ sw $s2, 0x20($sp) +/* 0A3C0C 7F06F0DC AFB1001C */ sw $s1, 0x1c($sp) +/* 0A3C10 7F06F0E0 AFB00018 */ sw $s0, 0x18($sp) +/* 0A3C14 7F06F0E4 8CAE0008 */ lw $t6, 8($a1) +/* 0A3C18 7F06F0E8 00A08825 */ move $s1, $a1 +/* 0A3C1C 7F06F0EC 00809025 */ move $s2, $a0 +/* 0A3C20 7F06F0F0 8DD00000 */ lw $s0, ($t6) +/* 0A3C24 7F06F0F4 5200004F */ beql $s0, $zero, .L7F06F234 +/* 0A3C28 7F06F0F8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A3C2C 7F06F0FC 96020000 */ lhu $v0, ($s0) +.L7F06F100: +/* 0A3C30 7F06F100 304F00FF */ andi $t7, $v0, 0xff +/* 0A3C34 7F06F104 25F8FFFF */ addiu $t8, $t7, -1 +/* 0A3C38 7F06F108 2F010018 */ sltiu $at, $t8, 0x18 +/* 0A3C3C 7F06F10C 10200037 */ beqz $at, .L7F06F1EC +/* 0A3C40 7F06F110 0018C080 */ sll $t8, $t8, 2 +/* 0A3C44 7F06F114 3C018005 */ lui $at, %hi(jpt_80054CE0) +/* 0A3C48 7F06F118 00380821 */ addu $at, $at, $t8 +/* 0A3C4C 7F06F11C 8C384CE0 */ lw $t8, %lo(jpt_80054CE0)($at) +.L7F06F120: +/* 0A3C50 7F06F120 03000008 */ jr $t8 +/* 0A3C54 7F06F124 00000000 */ nop +.L7F06F128: +/* 0A3C58 7F06F128 02402025 */ move $a0, $s2 +/* 0A3C5C 7F06F12C 02202825 */ move $a1, $s1 +/* 0A3C60 7F06F130 0FC1B5CE */ jal process_01_group_heading +/* 0A3C64 7F06F134 02003025 */ move $a2, $s0 +/* 0A3C68 7F06F138 1000002D */ b .L7F06F1F0 +/* 0A3C6C 7F06F13C 8E020014 */ lw $v0, 0x14($s0) +.L7F06F140: +/* 0A3C70 7F06F140 02402025 */ move $a0, $s2 +/* 0A3C74 7F06F144 02202825 */ move $a1, $s1 +/* 0A3C78 7F06F148 0FC1B828 */ jal process_02_position +/* 0A3C7C 7F06F14C 02003025 */ move $a2, $s0 +/* 0A3C80 7F06F150 10000027 */ b .L7F06F1F0 +/* 0A3C84 7F06F154 8E020014 */ lw $v0, 0x14($s0) +.L7F06F158: +/* 0A3C88 7F06F158 02402025 */ move $a0, $s2 +/* 0A3C8C 7F06F15C 02202825 */ move $a1, $s1 +/* 0A3C90 7F06F160 0FC1B993 */ jal process_03_unknown +/* 0A3C94 7F06F164 02003025 */ move $a2, $s0 +/* 0A3C98 7F06F168 10000021 */ b .L7F06F1F0 +/* 0A3C9C 7F06F16C 8E020014 */ lw $v0, 0x14($s0) +.L7F06F170: +/* 0A3CA0 7F06F170 02402025 */ move $a0, $s2 +/* 0A3CA4 7F06F174 02202825 */ move $a1, $s1 +/* 0A3CA8 7F06F178 0FC1B9EA */ jal process_15_subposition +/* 0A3CAC 7F06F17C 02003025 */ move $a2, $s0 +/* 0A3CB0 7F06F180 1000001B */ b .L7F06F1F0 +/* 0A3CB4 7F06F184 8E020014 */ lw $v0, 0x14($s0) +.L7F06F188: +/* 0A3CB8 7F06F188 02202025 */ move $a0, $s1 +/* 0A3CBC 7F06F18C 0FC1BA16 */ jal process_08_distance_triggers +/* 0A3CC0 7F06F190 02002825 */ move $a1, $s0 +/* 0A3CC4 7F06F194 10000016 */ b .L7F06F1F0 +/* 0A3CC8 7F06F198 8E020014 */ lw $v0, 0x14($s0) +.L7F06F19C: +/* 0A3CCC 7F06F19C 02202025 */ move $a0, $s1 +/* 0A3CD0 7F06F1A0 0FC1BACF */ jal process_09_head_hat_placement_interlink +/* 0A3CD4 7F06F1A4 02002825 */ move $a1, $s0 +/* 0A3CD8 7F06F1A8 10000011 */ b .L7F06F1F0 +/* 0A3CDC 7F06F1AC 8E020014 */ lw $v0, 0x14($s0) +.L7F06F1B0: +/* 0A3CE0 7F06F1B0 02202025 */ move $a0, $s1 +/* 0A3CE4 7F06F1B4 0FC1BB3E */ jal process_07_unknown +/* 0A3CE8 7F06F1B8 02002825 */ move $a1, $s0 +/* 0A3CEC 7F06F1BC 1000000C */ b .L7F06F1F0 +/* 0A3CF0 7F06F1C0 8E020014 */ lw $v0, 0x14($s0) +.L7F06F1C4: +/* 0A3CF4 7F06F1C4 02202025 */ move $a0, $s1 +/* 0A3CF8 7F06F1C8 0FC1BA6F */ jal process_12_handle_switch +/* 0A3CFC 7F06F1CC 02002825 */ move $a1, $s0 +/* 0A3D00 7F06F1D0 10000007 */ b .L7F06F1F0 +/* 0A3D04 7F06F1D4 8E020014 */ lw $v0, 0x14($s0) +.L7F06F1D8: +/* 0A3D08 7F06F1D8 02202025 */ move $a0, $s1 +/* 0A3D0C 7F06F1DC 0FC1BA82 */ jal process_17_pointer_to_head +/* 0A3D10 7F06F1E0 02002825 */ move $a1, $s0 +/* 0A3D14 7F06F1E4 10000002 */ b .L7F06F1F0 +/* 0A3D18 7F06F1E8 8E020014 */ lw $v0, 0x14($s0) +def_7F06F120: +.L7F06F1EC: +/* 0A3D1C 7F06F1EC 8E020014 */ lw $v0, 0x14($s0) +.L7F06F1F0: +/* 0A3D20 7F06F1F0 10400003 */ beqz $v0, .L7F06F200 +/* 0A3D24 7F06F1F4 00000000 */ nop +/* 0A3D28 7F06F1F8 1000000B */ b .L7F06F228 +/* 0A3D2C 7F06F1FC 00408025 */ move $s0, $v0 +.L7F06F200: +/* 0A3D30 7F06F200 12000009 */ beqz $s0, .L7F06F228 +/* 0A3D34 7F06F204 00000000 */ nop +/* 0A3D38 7F06F208 8E02000C */ lw $v0, 0xc($s0) +.L7F06F20C: +/* 0A3D3C 7F06F20C 50400004 */ beql $v0, $zero, .L7F06F220 +/* 0A3D40 7F06F210 8E100008 */ lw $s0, 8($s0) +/* 0A3D44 7F06F214 10000004 */ b .L7F06F228 +/* 0A3D48 7F06F218 00408025 */ move $s0, $v0 +/* 0A3D4C 7F06F21C 8E100008 */ lw $s0, 8($s0) +.L7F06F220: +/* 0A3D50 7F06F220 5600FFFA */ bnezl $s0, .L7F06F20C +/* 0A3D54 7F06F224 8E02000C */ lw $v0, 0xc($s0) +.L7F06F228: +/* 0A3D58 7F06F228 5600FFB5 */ bnezl $s0, .L7F06F100 +/* 0A3D5C 7F06F22C 96020000 */ lhu $v0, ($s0) +/* 0A3D60 7F06F230 8FBF0024 */ lw $ra, 0x24($sp) +.L7F06F234: +/* 0A3D64 7F06F234 8FB00018 */ lw $s0, 0x18($sp) +/* 0A3D68 7F06F238 8FB1001C */ lw $s1, 0x1c($sp) +/* 0A3D6C 7F06F23C 8FB20020 */ lw $s2, 0x20($sp) +/* 0A3D70 7F06F240 03E00008 */ jr $ra +/* 0A3D74 7F06F244 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void instcalcmatrices(void) { + +} +#else +GLOBAL_ASM( +.text +glabel instcalcmatrices +/* 0A3D78 7F06F248 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A3D7C 7F06F24C AFB00018 */ sw $s0, 0x18($sp) +/* 0A3D80 7F06F250 00808025 */ move $s0, $a0 +/* 0A3D84 7F06F254 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A3D88 7F06F258 14A00006 */ bnez $a1, .L7F06F274 +/* 0A3D8C 7F06F25C AFA50024 */ sw $a1, 0x24($sp) +/* 0A3D90 7F06F260 3C048005 */ lui $a0, %hi(aInstcalcmatricesNoObjinst) +/* 0A3D94 7F06F264 0C0033D1 */ jal osSyncPrintf +/* 0A3D98 7F06F268 24844890 */ addiu $a0, %lo(aInstcalcmatricesNoObjinst) # addiu $a0, $a0, 0x4890 +/* 0A3D9C 7F06F26C 0FC1B11B */ jal return_null +/* 0A3DA0 7F06F270 00000000 */ nop +.L7F06F274: +/* 0A3DA4 7F06F274 8E0F0000 */ lw $t7, ($s0) +/* 0A3DA8 7F06F278 3C048005 */ lui $a0, %hi(aInstcalcmatricesNoBasemtx) +/* 0A3DAC 7F06F27C 55E00006 */ bnezl $t7, .L7F06F298 +/* 0A3DB0 7F06F280 8E020010 */ lw $v0, 0x10($s0) +/* 0A3DB4 7F06F284 0C0033D1 */ jal osSyncPrintf +/* 0A3DB8 7F06F288 248448B0 */ addiu $a0, %lo(aInstcalcmatricesNoBasemtx) # addiu $a0, $a0, 0x48b0 +/* 0A3DBC 7F06F28C 0FC1B11B */ jal return_null +/* 0A3DC0 7F06F290 00000000 */ nop +/* 0A3DC4 7F06F294 8E020010 */ lw $v0, 0x10($s0) +.L7F06F298: +/* 0A3DC8 7F06F298 3C048005 */ lui $a0, %hi(aInstcalcmatricesNoMtxlist) +/* 0A3DCC 7F06F29C 54400007 */ bnezl $v0, .L7F06F2BC +/* 0A3DD0 7F06F2A0 8FB80024 */ lw $t8, 0x24($sp) +/* 0A3DD4 7F06F2A4 0C0033D1 */ jal osSyncPrintf +/* 0A3DD8 7F06F2A8 248448D0 */ addiu $a0, %lo(aInstcalcmatricesNoMtxlist) # addiu $a0, $a0, 0x48d0 +/* 0A3DDC 7F06F2AC 0FC1B11B */ jal return_null +/* 0A3DE0 7F06F2B0 00000000 */ nop +/* 0A3DE4 7F06F2B4 8E020010 */ lw $v0, 0x10($s0) +/* 0A3DE8 7F06F2B8 8FB80024 */ lw $t8, 0x24($sp) +.L7F06F2BC: +/* 0A3DEC 7F06F2BC 02002025 */ move $a0, $s0 +/* 0A3DF0 7F06F2C0 8F080008 */ lw $t0, 8($t8) +/* 0A3DF4 7F06F2C4 AF02000C */ sw $v0, 0xc($t8) +/* 0A3DF8 7F06F2C8 8E190010 */ lw $t9, 0x10($s0) +/* 0A3DFC 7F06F2CC 8509000E */ lh $t1, 0xe($t0) +/* 0A3E00 7F06F2D0 00095180 */ sll $t2, $t1, 6 +/* 0A3E04 7F06F2D4 032A5821 */ addu $t3, $t9, $t2 +/* 0A3E08 7F06F2D8 AE0B0010 */ sw $t3, 0x10($s0) +/* 0A3E0C 7F06F2DC 0FC1BC34 */ jal sub_GAME_7F06F0D0 +/* 0A3E10 7F06F2E0 8FA50024 */ lw $a1, 0x24($sp) +/* 0A3E14 7F06F2E4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A3E18 7F06F2E8 8FB00018 */ lw $s0, 0x18($sp) +/* 0A3E1C 7F06F2EC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0A3E20 7F06F2F0 03E00008 */ jr $ra +/* 0A3E24 7F06F2F4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void subcalcmatrices(void) { + +} +#else +GLOBAL_ASM( +.text +glabel subcalcmatrices +/* 0A3E28 7F06F2F8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A3E2C 7F06F2FC AFB00018 */ sw $s0, 0x18($sp) +/* 0A3E30 7F06F300 00A08025 */ move $s0, $a1 +/* 0A3E34 7F06F304 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A3E38 7F06F308 14A00006 */ bnez $a1, .L7F06F324 +/* 0A3E3C 7F06F30C AFA40020 */ sw $a0, 0x20($sp) +/* 0A3E40 7F06F310 3C048005 */ lui $a0, %hi(aSubcalcmatricesNoObjanim) +/* 0A3E44 7F06F314 0C0033D1 */ jal osSyncPrintf +/* 0A3E48 7F06F318 248448F0 */ addiu $a0, %lo(aSubcalcmatricesNoObjanim) # addiu $a0, $a0, 0x48f0 +/* 0A3E4C 7F06F31C 0FC1B11B */ jal return_null +/* 0A3E50 7F06F320 00000000 */ nop +.L7F06F324: +/* 0A3E54 7F06F324 8FAE0020 */ lw $t6, 0x20($sp) +/* 0A3E58 7F06F328 3C048005 */ lui $a0, %hi(aSubcalcmatricesNoBasemtx) +/* 0A3E5C 7F06F32C 8DCF0000 */ lw $t7, ($t6) +/* 0A3E60 7F06F330 55E00006 */ bnezl $t7, .L7F06F34C +/* 0A3E64 7F06F334 8FB80020 */ lw $t8, 0x20($sp) +/* 0A3E68 7F06F338 0C0033D1 */ jal osSyncPrintf +/* 0A3E6C 7F06F33C 24844910 */ addiu $a0, %lo(aSubcalcmatricesNoBasemtx) # addiu $a0, $a0, 0x4910 +/* 0A3E70 7F06F340 0FC1B11B */ jal return_null +/* 0A3E74 7F06F344 00000000 */ nop +/* 0A3E78 7F06F348 8FB80020 */ lw $t8, 0x20($sp) +.L7F06F34C: +/* 0A3E7C 7F06F34C 3C048005 */ lui $a0, %hi(aSubcalcmatricesNoMtxlist) +/* 0A3E80 7F06F350 8F190010 */ lw $t9, 0x10($t8) +/* 0A3E84 7F06F354 57200006 */ bnezl $t9, .L7F06F370 +/* 0A3E88 7F06F358 8E080020 */ lw $t0, 0x20($s0) +/* 0A3E8C 7F06F35C 0C0033D1 */ jal osSyncPrintf +/* 0A3E90 7F06F360 24844930 */ addiu $a0, %lo(aSubcalcmatricesNoMtxlist) # addiu $a0, $a0, 0x4930 +/* 0A3E94 7F06F364 0FC1B11B */ jal return_null +/* 0A3E98 7F06F368 00000000 */ nop +/* 0A3E9C 7F06F36C 8E080020 */ lw $t0, 0x20($s0) +.L7F06F370: +/* 0A3EA0 7F06F370 51000087 */ beql $t0, $zero, .L7F06F590 +/* 0A3EA4 7F06F374 8FA40020 */ lw $a0, 0x20($sp) +/* 0A3EA8 7F06F378 8E090018 */ lw $t1, 0x18($s0) +/* 0A3EAC 7F06F37C 5120000A */ beql $t1, $zero, .L7F06F3A8 +/* 0A3EB0 7F06F380 86050030 */ lh $a1, 0x30($s0) +/* 0A3EB4 7F06F384 8E0A001C */ lw $t2, 0x1c($s0) +/* 0A3EB8 7F06F388 3C048005 */ lui $a0, %hi(aSubcalcmatricesNoAttachForObjinst) +/* 0A3EBC 7F06F38C 55400006 */ bnezl $t2, .L7F06F3A8 +/* 0A3EC0 7F06F390 86050030 */ lh $a1, 0x30($s0) +/* 0A3EC4 7F06F394 0C0033D1 */ jal osSyncPrintf +/* 0A3EC8 7F06F398 24844950 */ addiu $a0, %lo(aSubcalcmatricesNoAttachForObjinst) # addiu $a0, $a0, 0x4950 +/* 0A3ECC 7F06F39C 0FC1B11B */ jal return_null +/* 0A3ED0 7F06F3A0 00000000 */ nop +/* 0A3ED4 7F06F3A4 86050030 */ lh $a1, 0x30($s0) +.L7F06F3A8: +/* 0A3ED8 7F06F3A8 3C048005 */ lui $a0, %hi(aSubcalcmatricesFrameaOutOfRange) +/* 0A3EDC 7F06F3AC 04A00006 */ bltz $a1, .L7F06F3C8 +/* 0A3EE0 7F06F3B0 00000000 */ nop +/* 0A3EE4 7F06F3B4 8E0B0020 */ lw $t3, 0x20($s0) +/* 0A3EE8 7F06F3B8 956C0004 */ lhu $t4, 4($t3) +/* 0A3EEC 7F06F3BC 00AC082A */ slt $at, $a1, $t4 +/* 0A3EF0 7F06F3C0 54200006 */ bnezl $at, .L7F06F3DC +/* 0A3EF4 7F06F3C4 86020032 */ lh $v0, 0x32($s0) +.L7F06F3C8: +/* 0A3EF8 7F06F3C8 0C0033D1 */ jal osSyncPrintf +/* 0A3EFC 7F06F3CC 2484497C */ addiu $a0, %lo(aSubcalcmatricesFrameaOutOfRange) # addiu $a0, $a0, 0x497c +/* 0A3F00 7F06F3D0 0FC1B11B */ jal return_null +/* 0A3F04 7F06F3D4 00000000 */ nop +/* 0A3F08 7F06F3D8 86020032 */ lh $v0, 0x32($s0) +.L7F06F3DC: +/* 0A3F0C 7F06F3DC 3C048005 */ lui $a0, %hi(aSubcalcmatricesFramebOutOfRange) +/* 0A3F10 7F06F3E0 04400006 */ bltz $v0, .L7F06F3FC +/* 0A3F14 7F06F3E4 00000000 */ nop +/* 0A3F18 7F06F3E8 8E0D0020 */ lw $t5, 0x20($s0) +/* 0A3F1C 7F06F3EC 95AE0004 */ lhu $t6, 4($t5) +/* 0A3F20 7F06F3F0 004E082A */ slt $at, $v0, $t6 +/* 0A3F24 7F06F3F4 54200006 */ bnezl $at, .L7F06F410 +/* 0A3F28 7F06F3F8 44801000 */ mtc1 $zero, $f2 +.L7F06F3FC: +/* 0A3F2C 7F06F3FC 0C0033D1 */ jal osSyncPrintf +/* 0A3F30 7F06F400 248449A4 */ addiu $a0, %lo(aSubcalcmatricesFramebOutOfRange) # addiu $a0, $a0, 0x49a4 +/* 0A3F34 7F06F404 0FC1B11B */ jal return_null +/* 0A3F38 7F06F408 00000000 */ nop +/* 0A3F3C 7F06F40C 44801000 */ mtc1 $zero, $f2 +.L7F06F410: +/* 0A3F40 7F06F410 C6000084 */ lwc1 $f0, 0x84($s0) +/* 0A3F44 7F06F414 46001032 */ c.eq.s $f2, $f0 +/* 0A3F48 7F06F418 00000000 */ nop +/* 0A3F4C 7F06F41C 45010008 */ bc1t .L7F06F440 +/* 0A3F50 7F06F420 00000000 */ nop +/* 0A3F54 7F06F424 46001032 */ c.eq.s $f2, $f0 +/* 0A3F58 7F06F428 3C048005 */ lui $a0, %hi(aSubcalcmatricesNoAnim2) +/* 0A3F5C 7F06F42C 45010006 */ bc1t .L7F06F448 +/* 0A3F60 7F06F430 00000000 */ nop +/* 0A3F64 7F06F434 8E0F0054 */ lw $t7, 0x54($s0) +/* 0A3F68 7F06F438 11E00003 */ beqz $t7, .L7F06F448 +/* 0A3F6C 7F06F43C 00000000 */ nop +.L7F06F440: +/* 0A3F70 7F06F440 10000006 */ b .L7F06F45C +/* 0A3F74 7F06F444 8E040054 */ lw $a0, 0x54($s0) +.L7F06F448: +/* 0A3F78 7F06F448 0C0033D1 */ jal osSyncPrintf +/* 0A3F7C 7F06F44C 248449CC */ addiu $a0, $a0, %lo(aSubcalcmatricesNoAnim2) +/* 0A3F80 7F06F450 0FC1B11B */ jal return_null +/* 0A3F84 7F06F454 00000000 */ nop +/* 0A3F88 7F06F458 8E040054 */ lw $a0, 0x54($s0) +.L7F06F45C: +/* 0A3F8C 7F06F45C 10800010 */ beqz $a0, .L7F06F4A0 +/* 0A3F90 7F06F460 00000000 */ nop +/* 0A3F94 7F06F464 10800008 */ beqz $a0, .L7F06F488 +/* 0A3F98 7F06F468 00000000 */ nop +/* 0A3F9C 7F06F46C 86020060 */ lh $v0, 0x60($s0) +/* 0A3FA0 7F06F470 04400005 */ bltz $v0, .L7F06F488 +/* 0A3FA4 7F06F474 00000000 */ nop +/* 0A3FA8 7F06F478 94980004 */ lhu $t8, 4($a0) +/* 0A3FAC 7F06F47C 0058082A */ slt $at, $v0, $t8 +/* 0A3FB0 7F06F480 14200007 */ bnez $at, .L7F06F4A0 +/* 0A3FB4 7F06F484 00000000 */ nop +.L7F06F488: +/* 0A3FB8 7F06F488 3C048005 */ lui $a0, %hi(aSubcalcmatricesFrame2aOutOfRange) +/* 0A3FBC 7F06F48C 0C0033D1 */ jal osSyncPrintf +/* 0A3FC0 7F06F490 248449E8 */ addiu $a0, %lo(aSubcalcmatricesFrame2aOutOfRange) # addiu $a0, $a0, 0x49e8 +/* 0A3FC4 7F06F494 0FC1B11B */ jal return_null +/* 0A3FC8 7F06F498 00000000 */ nop +/* 0A3FCC 7F06F49C 8E040054 */ lw $a0, 0x54($s0) +.L7F06F4A0: +/* 0A3FD0 7F06F4A0 5080000B */ beql $a0, $zero, .L7F06F4D0 +/* 0A3FD4 7F06F4A4 8E040020 */ lw $a0, 0x20($s0) +/* 0A3FD8 7F06F4A8 1080000B */ beqz $a0, .L7F06F4D8 +/* 0A3FDC 7F06F4AC 00000000 */ nop +/* 0A3FE0 7F06F4B0 86020062 */ lh $v0, 0x62($s0) +/* 0A3FE4 7F06F4B4 04400008 */ bltz $v0, .L7F06F4D8 +/* 0A3FE8 7F06F4B8 00000000 */ nop +/* 0A3FEC 7F06F4BC 94990004 */ lhu $t9, 4($a0) +/* 0A3FF0 7F06F4C0 0059082A */ slt $at, $v0, $t9 +/* 0A3FF4 7F06F4C4 10200004 */ beqz $at, .L7F06F4D8 +/* 0A3FF8 7F06F4C8 00000000 */ nop +/* 0A3FFC 7F06F4CC 8E040020 */ lw $a0, 0x20($s0) +.L7F06F4D0: +/* 0A4000 7F06F4D0 10000008 */ b .L7F06F4F4 +/* 0A4004 7F06F4D4 86050030 */ lh $a1, 0x30($s0) +.L7F06F4D8: +/* 0A4008 7F06F4D8 3C048005 */ lui $a0, %hi(aSubcalcmatricesFrame2bOutOfRange) +/* 0A400C 7F06F4DC 0C0033D1 */ jal osSyncPrintf +/* 0A4010 7F06F4E0 24844A10 */ addiu $a0, %lo(aSubcalcmatricesFrame2bOutOfRange) # addiu $a0, $a0, 0x4a10 +/* 0A4014 7F06F4E4 0FC1B11B */ jal return_null +/* 0A4018 7F06F4E8 00000000 */ nop +/* 0A401C 7F06F4EC 8E040020 */ lw $a0, 0x20($s0) +/* 0A4020 7F06F4F0 86050030 */ lh $a1, 0x30($s0) +.L7F06F4F4: +/* 0A4024 7F06F4F4 8E080008 */ lw $t0, 8($s0) +/* 0A4028 7F06F4F8 0FC1D52F */ jal sub_GAME_7F0754BC +/* 0A402C 7F06F4FC 8D060004 */ lw $a2, 4($t0) +/* 0A4030 7F06F500 44802000 */ mtc1 $zero, $f4 +/* 0A4034 7F06F504 C606002C */ lwc1 $f6, 0x2c($s0) +/* 0A4038 7F06F508 AE020034 */ sw $v0, 0x34($s0) +/* 0A403C 7F06F50C 46062032 */ c.eq.s $f4, $f6 +/* 0A4040 7F06F510 00000000 */ nop +/* 0A4044 7F06F514 45030008 */ bc1tl .L7F06F538 +/* 0A4048 7F06F518 8E040054 */ lw $a0, 0x54($s0) +/* 0A404C 7F06F51C 8E090008 */ lw $t1, 8($s0) +/* 0A4050 7F06F520 8E040020 */ lw $a0, 0x20($s0) +/* 0A4054 7F06F524 86050032 */ lh $a1, 0x32($s0) +/* 0A4058 7F06F528 0FC1D52F */ jal sub_GAME_7F0754BC +/* 0A405C 7F06F52C 8D260004 */ lw $a2, 4($t1) +/* 0A4060 7F06F530 AE020038 */ sw $v0, 0x38($s0) +/* 0A4064 7F06F534 8E040054 */ lw $a0, 0x54($s0) +.L7F06F538: +/* 0A4068 7F06F538 10800012 */ beqz $a0, .L7F06F584 +/* 0A406C 7F06F53C 00000000 */ nop +/* 0A4070 7F06F540 8E0A0008 */ lw $t2, 8($s0) +/* 0A4074 7F06F544 86050060 */ lh $a1, 0x60($s0) +/* 0A4078 7F06F548 0FC1D52F */ jal sub_GAME_7F0754BC +/* 0A407C 7F06F54C 8D460004 */ lw $a2, 4($t2) +/* 0A4080 7F06F550 44804000 */ mtc1 $zero, $f8 +/* 0A4084 7F06F554 C60A005C */ lwc1 $f10, 0x5c($s0) +/* 0A4088 7F06F558 AE020064 */ sw $v0, 0x64($s0) +/* 0A408C 7F06F55C 460A4032 */ c.eq.s $f8, $f10 +/* 0A4090 7F06F560 00000000 */ nop +/* 0A4094 7F06F564 45010007 */ bc1t .L7F06F584 +/* 0A4098 7F06F568 00000000 */ nop +/* 0A409C 7F06F56C 8E0B0008 */ lw $t3, 8($s0) +/* 0A40A0 7F06F570 8E040054 */ lw $a0, 0x54($s0) +/* 0A40A4 7F06F574 86050062 */ lh $a1, 0x62($s0) +/* 0A40A8 7F06F578 0FC1D52F */ jal sub_GAME_7F0754BC +/* 0A40AC 7F06F57C 8D660004 */ lw $a2, 4($t3) +/* 0A40B0 7F06F580 AE020068 */ sw $v0, 0x68($s0) +.L7F06F584: +/* 0A40B4 7F06F584 0FC1D56C */ jal sub_GAME_7F0755B0 +/* 0A40B8 7F06F588 00000000 */ nop +/* 0A40BC 7F06F58C 8FA40020 */ lw $a0, 0x20($sp) +.L7F06F590: +/* 0A40C0 7F06F590 0FC1BC92 */ jal instcalcmatrices +/* 0A40C4 7F06F594 02002825 */ move $a1, $s0 +/* 0A40C8 7F06F598 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A40CC 7F06F59C 8FB00018 */ lw $s0, 0x18($sp) +/* 0A40D0 7F06F5A0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0A40D4 7F06F5A4 03E00008 */ jr $ra +/* 0A40D8 7F06F5A8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F5AC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06F5AC +/* 0A40DC 7F06F5AC 03E00008 */ jr $ra +/* 0A40E0 7F06F5B0 8C820020 */ lw $v0, 0x20($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F5B4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06F5B4 +/* 0A40E4 7F06F5B4 03E00008 */ jr $ra +/* 0A40E8 7F06F5B8 80820024 */ lb $v0, 0x24($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F5BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06F5BC +/* 0A40EC 7F06F5BC 03E00008 */ jr $ra +/* 0A40F0 7F06F5C0 C4800028 */ lwc1 $f0, 0x28($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F5C4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06F5C4 +/* 0A40F4 7F06F5C4 44806000 */ mtc1 $zero, $f12 +/* 0A40F8 7F06F5C8 C482003C */ lwc1 $f2, 0x3c($a0) +/* 0A40FC 7F06F5CC 4602603E */ c.le.s $f12, $f2 +/* 0A4100 7F06F5D0 00000000 */ nop +/* 0A4104 7F06F5D4 45020004 */ bc1fl .L7F06F5E8 +/* 0A4108 7F06F5D8 8C820020 */ lw $v0, 0x20($a0) +/* 0A410C 7F06F5DC 03E00008 */ jr $ra +/* 0A4110 7F06F5E0 46001006 */ mov.s $f0, $f2 + +/* 0A4114 7F06F5E4 8C820020 */ lw $v0, 0x20($a0) +.L7F06F5E8: +/* 0A4118 7F06F5E8 50400007 */ beql $v0, $zero, .L7F06F608 +/* 0A411C 7F06F5EC 46006006 */ mov.s $f0, $f12 +/* 0A4120 7F06F5F0 944E0004 */ lhu $t6, 4($v0) +/* 0A4124 7F06F5F4 25CFFFFF */ addiu $t7, $t6, -1 +/* 0A4128 7F06F5F8 448F2000 */ mtc1 $t7, $f4 +/* 0A412C 7F06F5FC 03E00008 */ jr $ra +/* 0A4130 7F06F600 46802020 */ cvt.s.w $f0, $f4 + +/* 0A4134 7F06F604 46006006 */ mov.s $f0, $f12 +.L7F06F608: +/* 0A4138 7F06F608 03E00008 */ jr $ra +/* 0A413C 7F06F60C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F610(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06F610 +/* 0A4140 7F06F610 03E00008 */ jr $ra +/* 0A4144 7F06F614 C4800040 */ lwc1 $f0, 0x40($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F618(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06F618 +/* 0A4148 7F06F618 C4820040 */ lwc1 $f2, 0x40($a0) +/* 0A414C 7F06F61C 44802000 */ mtc1 $zero, $f4 +/* 0A4150 7F06F620 00000000 */ nop +/* 0A4154 7F06F624 4604103C */ c.lt.s $f2, $f4 +/* 0A4158 7F06F628 00000000 */ nop +/* 0A415C 7F06F62C 45000002 */ bc1f .L7F06F638 +/* 0A4160 7F06F630 00000000 */ nop +/* 0A4164 7F06F634 46001087 */ neg.s $f2, $f2 +.L7F06F638: +/* 0A4168 7F06F638 03E00008 */ jr $ra +/* 0A416C 7F06F63C 46001006 */ mov.s $f0, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F640(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06F640 +/* 0A4170 7F06F640 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A4174 7F06F644 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A4178 7F06F648 0FC1BD84 */ jal sub_GAME_7F06F610 +/* 0A417C 7F06F64C AFA40018 */ sw $a0, 0x18($sp) +/* 0A4180 7F06F650 8FAE0018 */ lw $t6, 0x18($sp) +/* 0A4184 7F06F654 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A4188 7F06F658 C5C400A4 */ lwc1 $f4, 0xa4($t6) +/* 0A418C 7F06F65C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A4190 7F06F660 46040002 */ mul.s $f0, $f0, $f4 +/* 0A4194 7F06F664 03E00008 */ jr $ra +/* 0A4198 7F06F668 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F66C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06F66C +/* 0A419C 7F06F66C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A41A0 7F06F670 44866000 */ mtc1 $a2, $f12 +/* 0A41A4 7F06F674 04810017 */ bgez $a0, .L7F06F6D4 +/* 0A41A8 7F06F678 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A41AC 7F06F67C 90AE0007 */ lbu $t6, 7($a1) +/* 0A41B0 7F06F680 31CF0001 */ andi $t7, $t6, 1 +/* 0A41B4 7F06F684 11E00011 */ beqz $t7, .L7F06F6CC +/* 0A41B8 7F06F688 00000000 */ nop +/* 0A41BC 7F06F68C 94A20004 */ lhu $v0, 4($a1) +/* 0A41C0 7F06F690 0004C023 */ negu $t8, $a0 +/* 0A41C4 7F06F694 0302001A */ div $zero, $t8, $v0 +/* 0A41C8 7F06F698 0000C810 */ mfhi $t9 +/* 0A41CC 7F06F69C 00592023 */ subu $a0, $v0, $t9 +/* 0A41D0 7F06F6A0 14400002 */ bnez $v0, .L7F06F6AC +/* 0A41D4 7F06F6A4 00000000 */ nop +/* 0A41D8 7F06F6A8 0007000D */ break 7 +.L7F06F6AC: +/* 0A41DC 7F06F6AC 2401FFFF */ li $at, -1 +/* 0A41E0 7F06F6B0 14410004 */ bne $v0, $at, .L7F06F6C4 +/* 0A41E4 7F06F6B4 3C018000 */ lui $at, 0x8000 +/* 0A41E8 7F06F6B8 17010002 */ bne $t8, $at, .L7F06F6C4 +/* 0A41EC 7F06F6BC 00000000 */ nop +/* 0A41F0 7F06F6C0 0006000D */ break 6 +.L7F06F6C4: +/* 0A41F4 7F06F6C4 1000002A */ b .L7F06F770 +/* 0A41F8 7F06F6C8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06F6CC: +/* 0A41FC 7F06F6CC 10000027 */ b .L7F06F76C +/* 0A4200 7F06F6D0 00002025 */ move $a0, $zero +.L7F06F6D4: +/* 0A4204 7F06F6D4 44802000 */ mtc1 $zero, $f4 +/* 0A4208 7F06F6D8 00000000 */ nop +/* 0A420C 7F06F6DC 460C203E */ c.le.s $f4, $f12 +/* 0A4210 7F06F6E0 00000000 */ nop +/* 0A4214 7F06F6E4 4502000C */ bc1fl .L7F06F718 +/* 0A4218 7F06F6E8 94A20004 */ lhu $v0, 4($a1) +/* 0A421C 7F06F6EC 4600618D */ trunc.w.s $f6, $f12 +/* 0A4220 7F06F6F0 44093000 */ mfc1 $t1, $f6 +/* 0A4224 7F06F6F4 00000000 */ nop +/* 0A4228 7F06F6F8 0124082A */ slt $at, $t1, $a0 +/* 0A422C 7F06F6FC 50200006 */ beql $at, $zero, .L7F06F718 +/* 0A4230 7F06F700 94A20004 */ lhu $v0, 4($a1) +/* 0A4234 7F06F704 0FC1712E */ jal sub_GAME_7F05C4B8 +/* 0A4238 7F06F708 00000000 */ nop +/* 0A423C 7F06F70C 10000017 */ b .L7F06F76C +/* 0A4240 7F06F710 00402025 */ move $a0, $v0 +/* 0A4244 7F06F714 94A20004 */ lhu $v0, 4($a1) +.L7F06F718: +/* 0A4248 7F06F718 0082082A */ slt $at, $a0, $v0 +/* 0A424C 7F06F71C 54200014 */ bnezl $at, .L7F06F770 +/* 0A4250 7F06F720 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A4254 7F06F724 90AA0007 */ lbu $t2, 7($a1) +/* 0A4258 7F06F728 314B0001 */ andi $t3, $t2, 1 +/* 0A425C 7F06F72C 5160000F */ beql $t3, $zero, .L7F06F76C +/* 0A4260 7F06F730 2444FFFF */ addiu $a0, $v0, -1 +/* 0A4264 7F06F734 0082001A */ div $zero, $a0, $v0 +/* 0A4268 7F06F738 14400002 */ bnez $v0, .L7F06F744 +/* 0A426C 7F06F73C 00000000 */ nop +/* 0A4270 7F06F740 0007000D */ break 7 +.L7F06F744: +/* 0A4274 7F06F744 2401FFFF */ li $at, -1 +/* 0A4278 7F06F748 14410004 */ bne $v0, $at, .L7F06F75C +/* 0A427C 7F06F74C 3C018000 */ lui $at, 0x8000 +/* 0A4280 7F06F750 14810002 */ bne $a0, $at, .L7F06F75C +/* 0A4284 7F06F754 00000000 */ nop +/* 0A4288 7F06F758 0006000D */ break 6 +.L7F06F75C: +/* 0A428C 7F06F75C 00002010 */ mfhi $a0 +/* 0A4290 7F06F760 10000003 */ b .L7F06F770 +/* 0A4294 7F06F764 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A4298 7F06F768 2444FFFF */ addiu $a0, $v0, -1 +.L7F06F76C: +/* 0A429C 7F06F76C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F06F770: +/* 0A42A0 7F06F770 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A42A4 7F06F774 00801025 */ move $v0, $a0 +/* 0A42A8 7F06F778 03E00008 */ jr $ra +/* 0A42AC 7F06F77C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F780(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06F780 +/* 0A42B0 7F06F780 44856000 */ mtc1 $a1, $f12 +/* 0A42B4 7F06F784 44802000 */ mtc1 $zero, $f4 +/* 0A42B8 7F06F788 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A42BC 7F06F78C AFBF0014 */ sw $ra, 0x14($sp) +/* 0A42C0 7F06F790 460C203C */ c.lt.s $f4, $f12 +/* 0A42C4 7F06F794 00000000 */ nop +/* 0A42C8 7F06F798 45020033 */ bc1fl .L7F06F868 +/* 0A42CC 7F06F79C AC800054 */ sw $zero, 0x54($a0) +/* 0A42D0 7F06F7A0 8C820020 */ lw $v0, 0x20($a0) +/* 0A42D4 7F06F7A4 24010001 */ li $at, 1 +/* 0A42D8 7F06F7A8 5040002F */ beql $v0, $zero, .L7F06F868 +/* 0A42DC 7F06F7AC AC800054 */ sw $zero, 0x54($a0) +/* 0A42E0 7F06F7B0 8C8E0008 */ lw $t6, 8($a0) +/* 0A42E4 7F06F7B4 C4860028 */ lwc1 $f6, 0x28($a0) +/* 0A42E8 7F06F7B8 C488002C */ lwc1 $f8, 0x2c($a0) +/* 0A42EC 7F06F7BC 8DC50000 */ lw $a1, ($t6) +/* 0A42F0 7F06F7C0 80980024 */ lb $t8, 0x24($a0) +/* 0A42F4 7F06F7C4 84990030 */ lh $t9, 0x30($a0) +/* 0A42F8 7F06F7C8 94A30000 */ lhu $v1, ($a1) +/* 0A42FC 7F06F7CC E4860058 */ swc1 $f6, 0x58($a0) +/* 0A4300 7F06F7D0 E488005C */ swc1 $f8, 0x5c($a0) +/* 0A4304 7F06F7D4 84880032 */ lh $t0, 0x32($a0) +/* 0A4308 7F06F7D8 C48A0040 */ lwc1 $f10, 0x40($a0) +/* 0A430C 7F06F7DC C4900044 */ lwc1 $f16, 0x44($a0) +/* 0A4310 7F06F7E0 C4920048 */ lwc1 $f18, 0x48($a0) +/* 0A4314 7F06F7E4 C484004C */ lwc1 $f4, 0x4c($a0) +/* 0A4318 7F06F7E8 C4860050 */ lwc1 $f6, 0x50($a0) +/* 0A431C 7F06F7EC C488003C */ lwc1 $f8, 0x3c($a0) +/* 0A4320 7F06F7F0 306F00FF */ andi $t7, $v1, 0xff +/* 0A4324 7F06F7F4 AC820054 */ sw $v0, 0x54($a0) +/* 0A4328 7F06F7F8 A0980025 */ sb $t8, 0x25($a0) +/* 0A432C 7F06F7FC A4990060 */ sh $t9, 0x60($a0) +/* 0A4330 7F06F800 A4880062 */ sh $t0, 0x62($a0) +/* 0A4334 7F06F804 E48A0070 */ swc1 $f10, 0x70($a0) +/* 0A4338 7F06F808 E4900074 */ swc1 $f16, 0x74($a0) +/* 0A433C 7F06F80C E4920078 */ swc1 $f18, 0x78($a0) +/* 0A4340 7F06F810 E484007C */ swc1 $f4, 0x7c($a0) +/* 0A4344 7F06F814 E4860080 */ swc1 $f6, 0x80($a0) +/* 0A4348 7F06F818 15E10013 */ bne $t7, $at, .L7F06F868 +/* 0A434C 7F06F81C E488006C */ swc1 $f8, 0x6c($a0) +/* 0A4350 7F06F820 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A4354 7F06F824 00000000 */ nop +/* 0A4358 7F06F828 C44A0034 */ lwc1 $f10, 0x34($v0) +/* 0A435C 7F06F82C C4500038 */ lwc1 $f16, 0x38($v0) +/* 0A4360 7F06F830 C452003C */ lwc1 $f18, 0x3c($v0) +/* 0A4364 7F06F834 C4440024 */ lwc1 $f4, 0x24($v0) +/* 0A4368 7F06F838 C4460028 */ lwc1 $f6, 0x28($v0) +/* 0A436C 7F06F83C C448002C */ lwc1 $f8, 0x2c($v0) +/* 0A4370 7F06F840 24090001 */ li $t1, 1 +/* 0A4374 7F06F844 A0490002 */ sb $t1, 2($v0) +/* 0A4378 7F06F848 E44A004C */ swc1 $f10, 0x4c($v0) +/* 0A437C 7F06F84C E4500050 */ swc1 $f16, 0x50($v0) +/* 0A4380 7F06F850 E4520054 */ swc1 $f18, 0x54($v0) +/* 0A4384 7F06F854 E4440040 */ swc1 $f4, 0x40($v0) +/* 0A4388 7F06F858 E4460044 */ swc1 $f6, 0x44($v0) +/* 0A438C 7F06F85C 10000002 */ b .L7F06F868 +/* 0A4390 7F06F860 E4480048 */ swc1 $f8, 0x48($v0) +/* 0A4394 7F06F864 AC800054 */ sw $zero, 0x54($a0) +.L7F06F868: +/* 0A4398 7F06F868 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A439C 7F06F86C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A43A0 7F06F870 03E00008 */ jr $ra +/* 0A43A4 7F06F874 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06F878(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054D40 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054D44 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054D48 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F06F878 +/* 0A43A8 7F06F878 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 0A43AC 7F06F87C AFBF0024 */ sw $ra, 0x24($sp) +/* 0A43B0 7F06F880 AFB10020 */ sw $s1, 0x20($sp) +/* 0A43B4 7F06F884 AFB0001C */ sw $s0, 0x1c($sp) +/* 0A43B8 7F06F888 AFA50094 */ sw $a1, 0x94($sp) +/* 0A43BC 7F06F88C 8C8E0020 */ lw $t6, 0x20($a0) +/* 0A43C0 7F06F890 44876000 */ mtc1 $a3, $f12 +/* 0A43C4 7F06F894 00A03825 */ move $a3, $a1 +/* 0A43C8 7F06F898 2DCF0001 */ sltiu $t7, $t6, 1 +/* 0A43CC 7F06F89C AFAF002C */ sw $t7, 0x2c($sp) +/* 0A43D0 7F06F8A0 8C980054 */ lw $t8, 0x54($a0) +/* 0A43D4 7F06F8A4 44056000 */ mfc1 $a1, $f12 +/* 0A43D8 7F06F8A8 00808825 */ move $s1, $a0 +/* 0A43DC 7F06F8AC 13000008 */ beqz $t8, .L7F06F8D0 +/* 0A43E0 7F06F8B0 C7A400A4 */ lwc1 $f4, 0xa4($sp) +/* 0A43E4 7F06F8B4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A43E8 7F06F8B8 44803000 */ mtc1 $zero, $f6 +/* 0A43EC 7F06F8BC 44814000 */ mtc1 $at, $f8 +/* 0A43F0 7F06F8C0 E4840088 */ swc1 $f4, 0x88($a0) +/* 0A43F4 7F06F8C4 E486008C */ swc1 $f6, 0x8c($a0) +/* 0A43F8 7F06F8C8 10000005 */ b .L7F06F8E0 +/* 0A43FC 7F06F8CC E4880084 */ swc1 $f8, 0x84($a0) +.L7F06F8D0: +/* 0A4400 7F06F8D0 44805000 */ mtc1 $zero, $f10 +/* 0A4404 7F06F8D4 44802000 */ mtc1 $zero, $f4 +/* 0A4408 7F06F8D8 E62A0088 */ swc1 $f10, 0x88($s1) +/* 0A440C 7F06F8DC E6240084 */ swc1 $f4, 0x84($s1) +.L7F06F8E0: +/* 0A4410 7F06F8E0 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0A4414 7F06F8E4 44813000 */ mtc1 $at, $f6 +/* 0A4418 7F06F8E8 AE270020 */ sw $a3, 0x20($s1) +/* 0A441C 7F06F8EC A2260024 */ sb $a2, 0x24($s1) +/* 0A4420 7F06F8F0 E626003C */ swc1 $f6, 0x3c($s1) +/* 0A4424 7F06F8F4 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 0A4428 7F06F8F8 44805000 */ mtc1 $zero, $f10 +/* 0A442C 7F06F8FC 02202025 */ move $a0, $s1 +/* 0A4430 7F06F900 E6280040 */ swc1 $f8, 0x40($s1) +/* 0A4434 7F06F904 0FC1BFD9 */ jal sub_GAME_7F06FF64 +/* 0A4438 7F06F908 E62A004C */ swc1 $f10, 0x4c($s1) +/* 0A443C 7F06F90C 8E390008 */ lw $t9, 8($s1) +/* 0A4440 7F06F910 A2200026 */ sb $zero, 0x26($s1) +/* 0A4444 7F06F914 24010001 */ li $at, 1 +/* 0A4448 7F06F918 8F250000 */ lw $a1, ($t9) +/* 0A444C 7F06F91C 94A20000 */ lhu $v0, ($a1) +/* 0A4450 7F06F920 304800FF */ andi $t0, $v0, 0xff +/* 0A4454 7F06F924 550100C5 */ bnel $t0, $at, .L7F06FC3C +/* 0A4458 7F06F928 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A445C 7F06F92C 8CA90004 */ lw $t1, 4($a1) +/* 0A4460 7F06F930 02202025 */ move $a0, $s1 +/* 0A4464 7F06F934 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A4468 7F06F938 AFA90080 */ sw $t1, 0x80($sp) +/* 0A446C 7F06F93C 3C0C8003 */ lui $t4, %hi(D_80036244) +/* 0A4470 7F06F940 8FAA0080 */ lw $t2, 0x80($sp) +/* 0A4474 7F06F944 8E2B0008 */ lw $t3, 8($s1) +/* 0A4478 7F06F948 258C6244 */ addiu $t4, %lo(D_80036244) # addiu $t4, $t4, 0x6244 +/* 0A447C 7F06F94C 8D810000 */ lw $at, ($t4) +/* 0A4480 7F06F950 C6240014 */ lwc1 $f4, 0x14($s1) +/* 0A4484 7F06F954 C62600B8 */ lwc1 $f6, 0xb8($s1) +/* 0A4488 7F06F958 27A3005C */ addiu $v1, $sp, 0x5c +/* 0A448C 7F06F95C 95440000 */ lhu $a0, ($t2) +/* 0A4490 7F06F960 8D660004 */ lw $a2, 4($t3) +/* 0A4494 7F06F964 AC610000 */ sw $at, ($v1) +/* 0A4498 7F06F968 8D8F0004 */ lw $t7, 4($t4) +/* 0A449C 7F06F96C 46062082 */ mul.s $f2, $f4, $f6 +/* 0A44A0 7F06F970 00408025 */ move $s0, $v0 +/* 0A44A4 7F06F974 AC6F0004 */ sw $t7, 4($v1) +/* 0A44A8 7F06F978 8D810008 */ lw $at, 8($t4) +/* 0A44AC 7F06F97C AC610008 */ sw $at, 8($v1) +/* 0A44B0 7F06F980 86380032 */ lh $t8, 0x32($s1) +/* 0A44B4 7F06F984 8E270020 */ lw $a3, 0x20($s1) +/* 0A44B8 7F06F988 82250024 */ lb $a1, 0x24($s1) +/* 0A44BC 7F06F98C E7A20070 */ swc1 $f2, 0x70($sp) +/* 0A44C0 7F06F990 AFA30014 */ sw $v1, 0x14($sp) +/* 0A44C4 7F06F994 0FC1B4FD */ jal sub_GAME_7F06D3F4 +/* 0A44C8 7F06F998 AFB80010 */ sw $t8, 0x10($sp) +/* 0A44CC 7F06F99C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A44D0 7F06F9A0 C7A20070 */ lwc1 $f2, 0x70($sp) +/* 0A44D4 7F06F9A4 44814000 */ mtc1 $at, $f8 +/* 0A44D8 7F06F9A8 E7A00058 */ swc1 $f0, 0x58($sp) +/* 0A44DC 7F06F9AC C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 0A44E0 7F06F9B0 46081032 */ c.eq.s $f2, $f8 +/* 0A44E4 7F06F9B4 00000000 */ nop +/* 0A44E8 7F06F9B8 45010009 */ bc1t .L7F06F9E0 +/* 0A44EC 7F06F9BC 00000000 */ nop +/* 0A44F0 7F06F9C0 46025102 */ mul.s $f4, $f10, $f2 +/* 0A44F4 7F06F9C4 C7A60060 */ lwc1 $f6, 0x60($sp) +/* 0A44F8 7F06F9C8 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 0A44FC 7F06F9CC 46023202 */ mul.s $f8, $f6, $f2 +/* 0A4500 7F06F9D0 E7A4005C */ swc1 $f4, 0x5c($sp) +/* 0A4504 7F06F9D4 46025102 */ mul.s $f4, $f10, $f2 +/* 0A4508 7F06F9D8 E7A80060 */ swc1 $f8, 0x60($sp) +/* 0A450C 7F06F9DC E7A40064 */ swc1 $f4, 0x64($sp) +.L7F06F9E0: +/* 0A4510 7F06F9E0 0FC15FA8 */ jal cosf +/* 0A4514 7F06F9E4 C60C0014 */ lwc1 $f12, 0x14($s0) +/* 0A4518 7F06F9E8 C60C0014 */ lwc1 $f12, 0x14($s0) +/* 0A451C 7F06F9EC 0FC15FAB */ jal sinf +/* 0A4520 7F06F9F0 E7A0006C */ swc1 $f0, 0x6c($sp) +/* 0A4524 7F06F9F4 C622002C */ lwc1 $f2, 0x2c($s1) +/* 0A4528 7F06F9F8 44803000 */ mtc1 $zero, $f6 +/* 0A452C 7F06F9FC C7B2006C */ lwc1 $f18, 0x6c($sp) +/* 0A4530 7F06FA00 24190001 */ li $t9, 1 +/* 0A4534 7F06FA04 46023032 */ c.eq.s $f6, $f2 +/* 0A4538 7F06FA08 C7A60064 */ lwc1 $f6, 0x64($sp) +/* 0A453C 7F06FA0C C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 0A4540 7F06FA10 45000032 */ bc1f .L7F06FADC +/* 0A4544 7F06FA14 00000000 */ nop +/* 0A4548 7F06FA18 C608000C */ lwc1 $f8, 0xc($s0) +/* 0A454C 7F06FA1C C60A0004 */ lwc1 $f10, 4($s0) +/* 0A4550 7F06FA20 C6020008 */ lwc1 $f2, 8($s0) +/* 0A4554 7F06FA24 C6060010 */ lwc1 $f6, 0x10($s0) +/* 0A4558 7F06FA28 460A4101 */ sub.s $f4, $f8, $f10 +/* 0A455C 7F06FA2C C6080014 */ lwc1 $f8, 0x14($s0) +/* 0A4560 7F06FA30 E6020034 */ swc1 $f2, 0x34($s0) +/* 0A4564 7F06FA34 E606003C */ swc1 $f6, 0x3c($s0) +/* 0A4568 7F06FA38 E6040038 */ swc1 $f4, 0x38($s0) +/* 0A456C 7F06FA3C E6080030 */ swc1 $f8, 0x30($s0) +/* 0A4570 7F06FA40 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 0A4574 7F06FA44 C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 0A4578 7F06FA48 46005102 */ mul.s $f4, $f10, $f0 +/* 0A457C 7F06FA4C 00000000 */ nop +/* 0A4580 7F06FA50 46123202 */ mul.s $f8, $f6, $f18 +/* 0A4584 7F06FA54 46081200 */ add.s $f8, $f2, $f8 +/* 0A4588 7F06FA58 46003182 */ mul.s $f6, $f6, $f0 +/* 0A458C 7F06FA5C 46082100 */ add.s $f4, $f4, $f8 +/* 0A4590 7F06FA60 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 0A4594 7F06FA64 E7A4004C */ swc1 $f4, 0x4c($sp) +/* 0A4598 7F06FA68 E7A80050 */ swc1 $f8, 0x50($sp) +/* 0A459C 7F06FA6C C608003C */ lwc1 $f8, 0x3c($s0) +/* 0A45A0 7F06FA70 46064201 */ sub.s $f8, $f8, $f6 +/* 0A45A4 7F06FA74 46125182 */ mul.s $f6, $f10, $f18 +/* 0A45A8 7F06FA78 46083280 */ add.s $f10, $f6, $f8 +/* 0A45AC 7F06FA7C E7AA0054 */ swc1 $f10, 0x54($sp) +/* 0A45B0 7F06FA80 E6040024 */ swc1 $f4, 0x24($s0) +/* 0A45B4 7F06FA84 C6040018 */ lwc1 $f4, 0x18($s0) +/* 0A45B8 7F06FA88 44805000 */ mtc1 $zero, $f10 +/* 0A45BC 7F06FA8C C7A60050 */ lwc1 $f6, 0x50($sp) +/* 0A45C0 7F06FA90 46045032 */ c.eq.s $f10, $f4 +/* 0A45C4 7F06FA94 E6060028 */ swc1 $f6, 0x28($s0) +/* 0A45C8 7F06FA98 C7A80054 */ lwc1 $f8, 0x54($sp) +/* 0A45CC 7F06FA9C 4500000D */ bc1f .L7F06FAD4 +/* 0A45D0 7F06FAA0 E608002C */ swc1 $f8, 0x2c($s0) +/* 0A45D4 7F06FAA4 C6060030 */ lwc1 $f6, 0x30($s0) +/* 0A45D8 7F06FAA8 C7A80058 */ lwc1 $f8, 0x58($sp) +/* 0A45DC 7F06FAAC 3C018005 */ lui $at, %hi(D_80054D40) +/* 0A45E0 7F06FAB0 C4224D40 */ lwc1 $f2, %lo(D_80054D40)($at) +/* 0A45E4 7F06FAB4 46083000 */ add.s $f0, $f6, $f8 +/* 0A45E8 7F06FAB8 4600103E */ c.le.s $f2, $f0 +/* 0A45EC 7F06FABC E6000020 */ swc1 $f0, 0x20($s0) +/* 0A45F0 7F06FAC0 45000004 */ bc1f .L7F06FAD4 +/* 0A45F4 7F06FAC4 00000000 */ nop +/* 0A45F8 7F06FAC8 C60A0020 */ lwc1 $f10, 0x20($s0) +/* 0A45FC 7F06FACC 46025101 */ sub.s $f4, $f10, $f2 +/* 0A4600 7F06FAD0 E6040020 */ swc1 $f4, 0x20($s0) +.L7F06FAD4: +/* 0A4604 7F06FAD4 10000053 */ b .L7F06FC24 +/* 0A4608 7F06FAD8 A2190001 */ sb $t9, 1($s0) +.L7F06FADC: +/* 0A460C 7F06FADC 46003202 */ mul.s $f8, $f6, $f0 +/* 0A4610 7F06FAE0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A4614 7F06FAE4 C7B00060 */ lwc1 $f16, 0x60($sp) +/* 0A4618 7F06FAE8 46125102 */ mul.s $f4, $f10, $f18 +/* 0A461C 7F06FAEC 46044380 */ add.s $f14, $f8, $f4 +/* 0A4620 7F06FAF0 46123202 */ mul.s $f8, $f6, $f18 +/* 0A4624 7F06FAF4 46005107 */ neg.s $f4, $f10 +/* 0A4628 7F06FAF8 46002182 */ mul.s $f6, $f4, $f0 +/* 0A462C 7F06FAFC 46064280 */ add.s $f10, $f8, $f6 +/* 0A4630 7F06FB00 44814000 */ mtc1 $at, $f8 +/* 0A4634 7F06FB04 00000000 */ nop +/* 0A4638 7F06FB08 46024181 */ sub.s $f6, $f8, $f2 +/* 0A463C 7F06FB0C E7AA0030 */ swc1 $f10, 0x30($sp) +/* 0A4640 7F06FB10 C6040008 */ lwc1 $f4, 8($s0) +/* 0A4644 7F06FB14 E7B00044 */ swc1 $f16, 0x44($sp) +/* 0A4648 7F06FB18 46067202 */ mul.s $f8, $f14, $f6 +/* 0A464C 7F06FB1C 46082180 */ add.s $f6, $f4, $f8 +/* 0A4650 7F06FB20 44812000 */ mtc1 $at, $f4 +/* 0A4654 7F06FB24 E7A60040 */ swc1 $f6, 0x40($sp) +/* 0A4658 7F06FB28 C628002C */ lwc1 $f8, 0x2c($s1) +/* 0A465C 7F06FB2C 46082181 */ sub.s $f6, $f4, $f8 +/* 0A4660 7F06FB30 C6080010 */ lwc1 $f8, 0x10($s0) +/* 0A4664 7F06FB34 46065102 */ mul.s $f4, $f10, $f6 +/* 0A4668 7F06FB38 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 0A466C 7F06FB3C 46044280 */ add.s $f10, $f8, $f4 +/* 0A4670 7F06FB40 E7AA0048 */ swc1 $f10, 0x48($sp) +/* 0A4674 7F06FB44 E6060024 */ swc1 $f6, 0x24($s0) +/* 0A4678 7F06FB48 C7A80044 */ lwc1 $f8, 0x44($sp) +/* 0A467C 7F06FB4C C60A0024 */ lwc1 $f10, 0x24($s0) +/* 0A4680 7F06FB50 E6080028 */ swc1 $f8, 0x28($s0) +/* 0A4684 7F06FB54 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 0A4688 7F06FB58 C608000C */ lwc1 $f8, 0xc($s0) +/* 0A468C 7F06FB5C 460E5181 */ sub.s $f6, $f10, $f14 +/* 0A4690 7F06FB60 E604002C */ swc1 $f4, 0x2c($s0) +/* 0A4694 7F06FB64 C6040004 */ lwc1 $f4, 4($s0) +/* 0A4698 7F06FB68 E6060034 */ swc1 $f6, 0x34($s0) +/* 0A469C 7F06FB6C 46044301 */ sub.s $f12, $f8, $f4 +/* 0A46A0 7F06FB70 C622002C */ lwc1 $f2, 0x2c($s1) +/* 0A46A4 7F06FB74 44814000 */ mtc1 $at, $f8 +/* 0A46A8 7F06FB78 3C018005 */ lui $at, %hi(D_80054D44) +/* 0A46AC 7F06FB7C 460C8281 */ sub.s $f10, $f16, $f12 +/* 0A46B0 7F06FB80 46024101 */ sub.s $f4, $f8, $f2 +/* 0A46B4 7F06FB84 46025182 */ mul.s $f6, $f10, $f2 +/* 0A46B8 7F06FB88 46043283 */ div.s $f10, $f6, $f4 +/* 0A46BC 7F06FB8C C606002C */ lwc1 $f6, 0x2c($s0) +/* 0A46C0 7F06FB90 460A6201 */ sub.s $f8, $f12, $f10 +/* 0A46C4 7F06FB94 C60C0014 */ lwc1 $f12, 0x14($s0) +/* 0A46C8 7F06FB98 E6080038 */ swc1 $f8, 0x38($s0) +/* 0A46CC 7F06FB9C C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0A46D0 7F06FBA0 46043281 */ sub.s $f10, $f6, $f4 +/* 0A46D4 7F06FBA4 44803000 */ mtc1 $zero, $f6 +/* 0A46D8 7F06FBA8 E60A003C */ swc1 $f10, 0x3c($s0) +/* 0A46DC 7F06FBAC C7A80058 */ lwc1 $f8, 0x58($sp) +/* 0A46E0 7F06FBB0 46086381 */ sub.s $f14, $f12, $f8 +/* 0A46E4 7F06FBB4 4606703C */ c.lt.s $f14, $f6 +/* 0A46E8 7F06FBB8 00000000 */ nop +/* 0A46EC 7F06FBBC 45000003 */ bc1f .L7F06FBCC +/* 0A46F0 7F06FBC0 00000000 */ nop +/* 0A46F4 7F06FBC4 C4244D44 */ lwc1 $f4, %lo(D_80054D44)($at) +/* 0A46F8 7F06FBC8 46047380 */ add.s $f14, $f14, $f4 +.L7F06FBCC: +/* 0A46FC 7F06FBCC 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 0A4700 7F06FBD0 8E26002C */ lw $a2, 0x2c($s1) +/* 0A4704 7F06FBD4 44805000 */ mtc1 $zero, $f10 +/* 0A4708 7F06FBD8 C6080018 */ lwc1 $f8, 0x18($s0) +/* 0A470C 7F06FBDC 3C018005 */ lui $at, %hi(D_80054D48) +/* 0A4710 7F06FBE0 C4224D48 */ lwc1 $f2, %lo(D_80054D48)($at) +/* 0A4714 7F06FBE4 46085032 */ c.eq.s $f10, $f8 +/* 0A4718 7F06FBE8 E6000030 */ swc1 $f0, 0x30($s0) +/* 0A471C 7F06FBEC C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0A4720 7F06FBF0 24080001 */ li $t0, 1 +/* 0A4724 7F06FBF4 4502000B */ bc1fl .L7F06FC24 +/* 0A4728 7F06FBF8 A2080001 */ sb $t0, 1($s0) +/* 0A472C 7F06FBFC C6060030 */ lwc1 $f6, 0x30($s0) +/* 0A4730 7F06FC00 46043000 */ add.s $f0, $f6, $f4 +/* 0A4734 7F06FC04 4600103E */ c.le.s $f2, $f0 +/* 0A4738 7F06FC08 E6000020 */ swc1 $f0, 0x20($s0) +/* 0A473C 7F06FC0C 45020005 */ bc1fl .L7F06FC24 +/* 0A4740 7F06FC10 A2080001 */ sb $t0, 1($s0) +/* 0A4744 7F06FC14 C60A0020 */ lwc1 $f10, 0x20($s0) +/* 0A4748 7F06FC18 46025201 */ sub.s $f8, $f10, $f2 +/* 0A474C 7F06FC1C E6080020 */ swc1 $f8, 0x20($s0) +/* 0A4750 7F06FC20 A2080001 */ sb $t0, 1($s0) +.L7F06FC24: +/* 0A4754 7F06FC24 8FA9002C */ lw $t1, 0x2c($sp) +/* 0A4758 7F06FC28 51200004 */ beql $t1, $zero, .L7F06FC3C +/* 0A475C 7F06FC2C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A4760 7F06FC30 C6060028 */ lwc1 $f6, 0x28($s0) +/* 0A4764 7F06FC34 E6060038 */ swc1 $f6, 0x38($s0) +/* 0A4768 7F06FC38 8FBF0024 */ lw $ra, 0x24($sp) +.L7F06FC3C: +/* 0A476C 7F06FC3C 8FB0001C */ lw $s0, 0x1c($sp) +/* 0A4770 7F06FC40 8FB10020 */ lw $s1, 0x20($sp) +/* 0A4774 7F06FC44 03E00008 */ jr $ra +/* 0A4778 7F06FC48 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FC4C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FC4C +/* 0A477C 7F06FC4C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A4780 7F06FC50 8FAE0038 */ lw $t6, 0x38($sp) +/* 0A4784 7F06FC54 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A4788 7F06FC58 AFA40020 */ sw $a0, 0x20($sp) +/* 0A478C 7F06FC5C AFA50024 */ sw $a1, 0x24($sp) +/* 0A4790 7F06FC60 AFA60028 */ sw $a2, 0x28($sp) +/* 0A4794 7F06FC64 11C00003 */ beqz $t6, .L7F06FC74 +/* 0A4798 7F06FC68 AFA7002C */ sw $a3, 0x2c($sp) +/* 0A479C 7F06FC6C 0FC1BDE0 */ jal sub_GAME_7F06F780 +/* 0A47A0 7F06FC70 8FA50034 */ lw $a1, 0x34($sp) +.L7F06FC74: +/* 0A47A4 7F06FC74 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0A47A8 7F06FC78 C7A60034 */ lwc1 $f6, 0x34($sp) +/* 0A47AC 7F06FC7C 8FA40020 */ lw $a0, 0x20($sp) +/* 0A47B0 7F06FC80 8FA50024 */ lw $a1, 0x24($sp) +/* 0A47B4 7F06FC84 8FA60028 */ lw $a2, 0x28($sp) +/* 0A47B8 7F06FC88 8FA7002C */ lw $a3, 0x2c($sp) +/* 0A47BC 7F06FC8C E7A40010 */ swc1 $f4, 0x10($sp) +/* 0A47C0 7F06FC90 0FC1BE1E */ jal sub_GAME_7F06F878 +/* 0A47C4 7F06FC94 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0A47C8 7F06FC98 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A47CC 7F06FC9C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0A47D0 7F06FCA0 03E00008 */ jr $ra +/* 0A47D4 7F06FCA4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FCA8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FCA8 +/* 0A47D8 7F06FCA8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A47DC 7F06FCAC AFBF001C */ sw $ra, 0x1c($sp) +/* 0A47E0 7F06FCB0 AFA50024 */ sw $a1, 0x24($sp) +/* 0A47E4 7F06FCB4 AFA40020 */ sw $a0, 0x20($sp) +/* 0A47E8 7F06FCB8 AFA60028 */ sw $a2, 0x28($sp) +/* 0A47EC 7F06FCBC AFA7002C */ sw $a3, 0x2c($sp) +/* 0A47F0 7F06FCC0 0FC1BDE0 */ jal sub_GAME_7F06F780 +/* 0A47F4 7F06FCC4 8FA50034 */ lw $a1, 0x34($sp) +/* 0A47F8 7F06FCC8 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0A47FC 7F06FCCC C7A60034 */ lwc1 $f6, 0x34($sp) +/* 0A4800 7F06FCD0 8FA40020 */ lw $a0, 0x20($sp) +/* 0A4804 7F06FCD4 8FA50024 */ lw $a1, 0x24($sp) +/* 0A4808 7F06FCD8 8FA60028 */ lw $a2, 0x28($sp) +/* 0A480C 7F06FCDC 8FA7002C */ lw $a3, 0x2c($sp) +/* 0A4810 7F06FCE0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0A4814 7F06FCE4 0FC1BE1E */ jal sub_GAME_7F06F878 +/* 0A4818 7F06FCE8 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0A481C 7F06FCEC 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A4820 7F06FCF0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0A4824 7F06FCF4 03E00008 */ jr $ra +/* 0A4828 7F06FCF8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FCFC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FCFC +/* 0A482C 7F06FCFC 8CA10000 */ lw $at, ($a1) +/* 0A4830 7F06FD00 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A4834 7F06FD04 27A20000 */ addiu $v0, $sp, 0 +/* 0A4838 7F06FD08 AC410000 */ sw $at, ($v0) +/* 0A483C 7F06FD0C 8CB80004 */ lw $t8, 4($a1) +/* 0A4840 7F06FD10 00805025 */ move $t2, $a0 +/* 0A4844 7F06FD14 00A05825 */ move $t3, $a1 +/* 0A4848 7F06FD18 AC580004 */ sw $t8, 4($v0) +/* 0A484C 7F06FD1C 8CA10008 */ lw $at, 8($a1) +/* 0A4850 7F06FD20 248900B4 */ addiu $t1, $a0, 0xb4 +/* 0A4854 7F06FD24 AC410008 */ sw $at, 8($v0) +/* 0A4858 7F06FD28 8CB8000C */ lw $t8, 0xc($a1) +/* 0A485C 7F06FD2C AC58000C */ sw $t8, 0xc($v0) +/* 0A4860 7F06FD30 8CA10010 */ lw $at, 0x10($a1) +/* 0A4864 7F06FD34 AC410010 */ sw $at, 0x10($v0) +/* 0A4868 7F06FD38 8CB80014 */ lw $t8, 0x14($a1) +/* 0A486C 7F06FD3C AC580014 */ sw $t8, 0x14($v0) +/* 0A4870 7F06FD40 8CA10018 */ lw $at, 0x18($a1) +/* 0A4874 7F06FD44 AC410018 */ sw $at, 0x18($v0) +/* 0A4878 7F06FD48 8CB8001C */ lw $t8, 0x1c($a1) +/* 0A487C 7F06FD4C AC58001C */ sw $t8, 0x1c($v0) +.L7F06FD50: +/* 0A4880 7F06FD50 8D410000 */ lw $at, ($t2) +/* 0A4884 7F06FD54 254A000C */ addiu $t2, $t2, 0xc +/* 0A4888 7F06FD58 256B000C */ addiu $t3, $t3, 0xc +/* 0A488C 7F06FD5C AD61FFF4 */ sw $at, -0xc($t3) +/* 0A4890 7F06FD60 8D41FFF8 */ lw $at, -8($t2) +/* 0A4894 7F06FD64 AD61FFF8 */ sw $at, -8($t3) +/* 0A4898 7F06FD68 8D41FFFC */ lw $at, -4($t2) +/* 0A489C 7F06FD6C 1549FFF8 */ bne $t2, $t1, .L7F06FD50 +/* 0A48A0 7F06FD70 AD61FFFC */ sw $at, -4($t3) +/* 0A48A4 7F06FD74 8D410000 */ lw $at, ($t2) +/* 0A48A8 7F06FD78 AD610000 */ sw $at, ($t3) +/* 0A48AC 7F06FD7C 8D490004 */ lw $t1, 4($t2) +/* 0A48B0 7F06FD80 AD690004 */ sw $t1, 4($t3) +/* 0A48B4 7F06FD84 8C410000 */ lw $at, ($v0) +/* 0A48B8 7F06FD88 ACA10000 */ sw $at, ($a1) +/* 0A48BC 7F06FD8C 8C4F0004 */ lw $t7, 4($v0) +/* 0A48C0 7F06FD90 ACAF0004 */ sw $t7, 4($a1) +/* 0A48C4 7F06FD94 8C410008 */ lw $at, 8($v0) +/* 0A48C8 7F06FD98 ACA10008 */ sw $at, 8($a1) +/* 0A48CC 7F06FD9C 8C4F000C */ lw $t7, 0xc($v0) +/* 0A48D0 7F06FDA0 ACAF000C */ sw $t7, 0xc($a1) +/* 0A48D4 7F06FDA4 8C410010 */ lw $at, 0x10($v0) +/* 0A48D8 7F06FDA8 ACA10010 */ sw $at, 0x10($a1) +/* 0A48DC 7F06FDAC 8C4F0014 */ lw $t7, 0x14($v0) +/* 0A48E0 7F06FDB0 ACAF0014 */ sw $t7, 0x14($a1) +/* 0A48E4 7F06FDB4 8C410018 */ lw $at, 0x18($v0) +/* 0A48E8 7F06FDB8 ACA10018 */ sw $at, 0x18($a1) +/* 0A48EC 7F06FDBC 8C4F001C */ lw $t7, 0x1c($v0) +/* 0A48F0 7F06FDC0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0A48F4 7F06FDC4 03E00008 */ jr $ra +/* 0A48F8 7F06FDC8 ACAF001C */ sw $t7, 0x1c($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FDCC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FDCC +/* 0A48FC 7F06FDCC 44856000 */ mtc1 $a1, $f12 +/* 0A4900 7F06FDD0 44867000 */ mtc1 $a2, $f14 +/* 0A4904 7F06FDD4 240E0001 */ li $t6, 1 +/* 0A4908 7F06FDD8 A08E0026 */ sb $t6, 0x26($a0) +/* 0A490C 7F06FDDC E48C0090 */ swc1 $f12, 0x90($a0) +/* 0A4910 7F06FDE0 03E00008 */ jr $ra +/* 0A4914 7F06FDE4 E48E0094 */ swc1 $f14, 0x94($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FDE8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FDE8 +/* 0A4918 7F06FDE8 8C820020 */ lw $v0, 0x20($a0) +/* 0A491C 7F06FDEC 44856000 */ mtc1 $a1, $f12 +/* 0A4920 7F06FDF0 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0A4924 7F06FDF4 5040000D */ beql $v0, $zero, .L7F06FE2C +/* 0A4928 7F06FDF8 44814000 */ mtc1 $at, $f8 +/* 0A492C 7F06FDFC 944E0004 */ lhu $t6, 4($v0) +/* 0A4930 7F06FE00 25CFFFFF */ addiu $t7, $t6, -1 +/* 0A4934 7F06FE04 448F2000 */ mtc1 $t7, $f4 +/* 0A4938 7F06FE08 00000000 */ nop +/* 0A493C 7F06FE0C 468021A0 */ cvt.s.w $f6, $f4 +/* 0A4940 7F06FE10 4606603C */ c.lt.s $f12, $f6 +/* 0A4944 7F06FE14 00000000 */ nop +/* 0A4948 7F06FE18 45020004 */ bc1fl .L7F06FE2C +/* 0A494C 7F06FE1C 44814000 */ mtc1 $at, $f8 +/* 0A4950 7F06FE20 03E00008 */ jr $ra +/* 0A4954 7F06FE24 E48C003C */ swc1 $f12, 0x3c($a0) + +/* 0A4958 7F06FE28 44814000 */ mtc1 $at, $f8 +.L7F06FE2C: +/* 0A495C 7F06FE2C 00000000 */ nop +/* 0A4960 7F06FE30 E488003C */ swc1 $f8, 0x3c($a0) +/* 0A4964 7F06FE34 03E00008 */ jr $ra +/* 0A4968 7F06FE38 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FE3C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FE3C +/* 0A496C 7F06FE3C 03E00008 */ jr $ra +/* 0A4970 7F06FE40 AC850098 */ sw $a1, 0x98($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FE44(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FE44 +/* 0A4974 7F06FE44 03E00008 */ jr $ra +/* 0A4978 7F06FE48 AC85009C */ sw $a1, 0x9c($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FE4C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FE4C +/* 0A497C 7F06FE4C 44866000 */ mtc1 $a2, $f12 +/* 0A4980 7F06FE50 44800000 */ mtc1 $zero, $f0 +/* 0A4984 7F06FE54 44857000 */ mtc1 $a1, $f14 +/* 0A4988 7F06FE58 460C003C */ c.lt.s $f0, $f12 +/* 0A498C 7F06FE5C 00000000 */ nop +/* 0A4990 7F06FE60 45020008 */ bc1fl .L7F06FE84 +/* 0A4994 7F06FE64 E48E0040 */ swc1 $f14, 0x40($a0) +/* 0A4998 7F06FE68 C4840040 */ lwc1 $f4, 0x40($a0) +/* 0A499C 7F06FE6C E48C004C */ swc1 $f12, 0x4c($a0) +/* 0A49A0 7F06FE70 E48E0044 */ swc1 $f14, 0x44($a0) +/* 0A49A4 7F06FE74 E4800050 */ swc1 $f0, 0x50($a0) +/* 0A49A8 7F06FE78 03E00008 */ jr $ra +/* 0A49AC 7F06FE7C E4840048 */ swc1 $f4, 0x48($a0) + +/* 0A49B0 7F06FE80 E48E0040 */ swc1 $f14, 0x40($a0) +.L7F06FE84: +/* 0A49B4 7F06FE84 E480004C */ swc1 $f0, 0x4c($a0) +/* 0A49B8 7F06FE88 03E00008 */ jr $ra +/* 0A49BC 7F06FE8C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FE90(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FE90 +/* 0A49C0 7F06FE90 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A49C4 7F06FE94 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A49C8 7F06FE98 44856000 */ mtc1 $a1, $f12 +/* 0A49CC 7F06FE9C C4800028 */ lwc1 $f0, 0x28($a0) +/* 0A49D0 7F06FEA0 44867000 */ mtc1 $a2, $f14 +/* 0A49D4 7F06FEA4 460C003E */ c.le.s $f0, $f12 +/* 0A49D8 7F06FEA8 00000000 */ nop +/* 0A49DC 7F06FEAC 45020004 */ bc1fl .L7F06FEC0 +/* 0A49E0 7F06FEB0 8C8E0020 */ lw $t6, 0x20($a0) +/* 0A49E4 7F06FEB4 1000000C */ b .L7F06FEE8 +/* 0A49E8 7F06FEB8 46006081 */ sub.s $f2, $f12, $f0 +/* 0A49EC 7F06FEBC 8C8E0020 */ lw $t6, 0x20($a0) +.L7F06FEC0: +/* 0A49F0 7F06FEC0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0A49F4 7F06FEC4 95CF0004 */ lhu $t7, 4($t6) +/* 0A49F8 7F06FEC8 448F2000 */ mtc1 $t7, $f4 +/* 0A49FC 7F06FECC 05E10004 */ bgez $t7, .L7F06FEE0 +/* 0A4A00 7F06FED0 468021A0 */ cvt.s.w $f6, $f4 +/* 0A4A04 7F06FED4 44814000 */ mtc1 $at, $f8 +/* 0A4A08 7F06FED8 00000000 */ nop +/* 0A4A0C 7F06FEDC 46083180 */ add.s $f6, $f6, $f8 +.L7F06FEE0: +/* 0A4A10 7F06FEE0 46003281 */ sub.s $f10, $f6, $f0 +/* 0A4A14 7F06FEE4 460C5080 */ add.s $f2, $f10, $f12 +.L7F06FEE8: +/* 0A4A18 7F06FEE8 46021480 */ add.s $f18, $f2, $f2 +/* 0A4A1C 7F06FEEC C4900040 */ lwc1 $f16, 0x40($a0) +/* 0A4A20 7F06FEF0 44067000 */ mfc1 $a2, $f14 +/* 0A4A24 7F06FEF4 460E9103 */ div.s $f4, $f18, $f14 +/* 0A4A28 7F06FEF8 46048000 */ add.s $f0, $f16, $f4 +/* 0A4A2C 7F06FEFC 44050000 */ mfc1 $a1, $f0 +/* 0A4A30 7F06FF00 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 0A4A34 7F06FF04 00000000 */ nop +/* 0A4A38 7F06FF08 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A4A3C 7F06FF0C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A4A40 7F06FF10 03E00008 */ jr $ra +/* 0A4A44 7F06FF14 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FF18(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FF18 +/* 0A4A48 7F06FF18 44866000 */ mtc1 $a2, $f12 +/* 0A4A4C 7F06FF1C 44800000 */ mtc1 $zero, $f0 +/* 0A4A50 7F06FF20 44857000 */ mtc1 $a1, $f14 +/* 0A4A54 7F06FF24 460C003C */ c.lt.s $f0, $f12 +/* 0A4A58 7F06FF28 00000000 */ nop +/* 0A4A5C 7F06FF2C 45020008 */ bc1fl .L7F06FF50 +/* 0A4A60 7F06FF30 E48E00A4 */ swc1 $f14, 0xa4($a0) +/* 0A4A64 7F06FF34 C48400A4 */ lwc1 $f4, 0xa4($a0) +/* 0A4A68 7F06FF38 E48C00B0 */ swc1 $f12, 0xb0($a0) +/* 0A4A6C 7F06FF3C E48E00A8 */ swc1 $f14, 0xa8($a0) +/* 0A4A70 7F06FF40 E48000B4 */ swc1 $f0, 0xb4($a0) +/* 0A4A74 7F06FF44 03E00008 */ jr $ra +/* 0A4A78 7F06FF48 E48400AC */ swc1 $f4, 0xac($a0) + +/* 0A4A7C 7F06FF4C E48E00A4 */ swc1 $f14, 0xa4($a0) +.L7F06FF50: +/* 0A4A80 7F06FF50 E48000B0 */ swc1 $f0, 0xb0($a0) +/* 0A4A84 7F06FF54 03E00008 */ jr $ra +/* 0A4A88 7F06FF58 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FF5C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FF5C +/* 0A4A8C 7F06FF5C 03E00008 */ jr $ra +/* 0A4A90 7F06FF60 AC8500A0 */ sw $a1, 0xa0($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F06FF64(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F06FF64 +/* 0A4A94 7F06FF64 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A4A98 7F06FF68 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A4A9C 7F06FF6C AFB00018 */ sw $s0, 0x18($sp) +/* 0A4AA0 7F06FF70 AFA50034 */ sw $a1, 0x34($sp) +/* 0A4AA4 7F06FF74 00808025 */ move $s0, $a0 +/* 0A4AA8 7F06FF78 0FC170F6 */ jal sub_GAME_7F05C3D8 +/* 0A4AAC 7F06FF7C C7AC0034 */ lwc1 $f12, 0x34($sp) +/* 0A4AB0 7F06FF80 C6040040 */ lwc1 $f4, 0x40($s0) +/* 0A4AB4 7F06FF84 44803000 */ mtc1 $zero, $f6 +/* 0A4AB8 7F06FF88 00402025 */ move $a0, $v0 +/* 0A4ABC 7F06FF8C 00004025 */ move $t0, $zero +/* 0A4AC0 7F06FF90 4604303E */ c.le.s $f6, $f4 +/* 0A4AC4 7F06FF94 2447FFFF */ addiu $a3, $v0, -1 +/* 0A4AC8 7F06FF98 45000002 */ bc1f .L7F06FFA4 +/* 0A4ACC 7F06FF9C 00000000 */ nop +/* 0A4AD0 7F06FFA0 24080001 */ li $t0, 1 +.L7F06FFA4: +/* 0A4AD4 7F06FFA4 11000003 */ beqz $t0, .L7F06FFB4 +/* 0A4AD8 7F06FFA8 00000000 */ nop +/* 0A4ADC 7F06FFAC 10000001 */ b .L7F06FFB4 +/* 0A4AE0 7F06FFB0 24470001 */ addiu $a3, $v0, 1 +.L7F06FFB4: +/* 0A4AE4 7F06FFB4 8E050020 */ lw $a1, 0x20($s0) +/* 0A4AE8 7F06FFB8 8E06003C */ lw $a2, 0x3c($s0) +/* 0A4AEC 7F06FFBC AFA80024 */ sw $t0, 0x24($sp) +/* 0A4AF0 7F06FFC0 AFA70028 */ sw $a3, 0x28($sp) +/* 0A4AF4 7F06FFC4 0FC1BD9B */ jal sub_GAME_7F06F66C +/* 0A4AF8 7F06FFC8 AFA4002C */ sw $a0, 0x2c($sp) +/* 0A4AFC 7F06FFCC 8FA40028 */ lw $a0, 0x28($sp) +/* 0A4B00 7F06FFD0 A6020030 */ sh $v0, 0x30($s0) +/* 0A4B04 7F06FFD4 8E050020 */ lw $a1, 0x20($s0) +/* 0A4B08 7F06FFD8 0FC1BD9B */ jal sub_GAME_7F06F66C +/* 0A4B0C 7F06FFDC 8E06003C */ lw $a2, 0x3c($s0) +/* 0A4B10 7F06FFE0 8FA70028 */ lw $a3, 0x28($sp) +/* 0A4B14 7F06FFE4 8FA80024 */ lw $t0, 0x24($sp) +/* 0A4B18 7F06FFE8 A6020032 */ sh $v0, 0x32($s0) +/* 0A4B1C 7F06FFEC 86040032 */ lh $a0, 0x32($s0) +/* 0A4B20 7F06FFF0 86030030 */ lh $v1, 0x30($s0) +/* 0A4B24 7F06FFF4 14830007 */ bne $a0, $v1, .L7F070014 +/* 0A4B28 7F06FFF8 00000000 */ nop +/* 0A4B2C 7F06FFFC 44835000 */ mtc1 $v1, $f10 +/* 0A4B30 7F070000 44804000 */ mtc1 $zero, $f8 +/* 0A4B34 7F070004 46805420 */ cvt.s.w $f16, $f10 +/* 0A4B38 7F070008 E608002C */ swc1 $f8, 0x2c($s0) +/* 0A4B3C 7F07000C 1000001B */ b .L7F07007C +/* 0A4B40 7F070010 E6100028 */ swc1 $f16, 0x28($s0) +.L7F070014: +/* 0A4B44 7F070014 1100000B */ beqz $t0, .L7F070044 +/* 0A4B48 7F070018 8FAE002C */ lw $t6, 0x2c($sp) +/* 0A4B4C 7F07001C 448E2000 */ mtc1 $t6, $f4 +/* 0A4B50 7F070020 44834000 */ mtc1 $v1, $f8 +/* 0A4B54 7F070024 C7B20034 */ lwc1 $f18, 0x34($sp) +/* 0A4B58 7F070028 468021A0 */ cvt.s.w $f6, $f4 +/* 0A4B5C 7F07002C 468042A0 */ cvt.s.w $f10, $f8 +/* 0A4B60 7F070030 46069001 */ sub.s $f0, $f18, $f6 +/* 0A4B64 7F070034 46005400 */ add.s $f16, $f10, $f0 +/* 0A4B68 7F070038 E600002C */ swc1 $f0, 0x2c($s0) +/* 0A4B6C 7F07003C 1000000F */ b .L7F07007C +/* 0A4B70 7F070040 E6100028 */ swc1 $f16, 0x28($s0) +.L7F070044: +/* 0A4B74 7F070044 44879000 */ mtc1 $a3, $f18 +/* 0A4B78 7F070048 C7A40034 */ lwc1 $f4, 0x34($sp) +/* 0A4B7C 7F07004C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A4B80 7F070050 468091A0 */ cvt.s.w $f6, $f18 +/* 0A4B84 7F070054 44811000 */ mtc1 $at, $f2 +/* 0A4B88 7F070058 44845000 */ mtc1 $a0, $f10 +/* 0A4B8C 7F07005C 00000000 */ nop +/* 0A4B90 7F070060 46805420 */ cvt.s.w $f16, $f10 +/* 0A4B94 7F070064 46062201 */ sub.s $f8, $f4, $f6 +/* 0A4B98 7F070068 46081001 */ sub.s $f0, $f2, $f8 +/* 0A4B9C 7F07006C 46001481 */ sub.s $f18, $f2, $f0 +/* 0A4BA0 7F070070 E600002C */ swc1 $f0, 0x2c($s0) +/* 0A4BA4 7F070074 46128100 */ add.s $f4, $f16, $f18 +/* 0A4BA8 7F070078 E6040028 */ swc1 $f4, 0x28($s0) +.L7F07007C: +/* 0A4BAC 7F07007C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A4BB0 7F070080 8FB00018 */ lw $s0, 0x18($sp) +/* 0A4BB4 7F070084 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0A4BB8 7F070088 03E00008 */ jr $ra +/* 0A4BBC 7F07008C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F070090(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F070090 +/* 0A4BC0 7F070090 44856000 */ mtc1 $a1, $f12 +/* 0A4BC4 7F070094 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A4BC8 7F070098 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A4BCC 7F07009C AFB00018 */ sw $s0, 0x18($sp) +/* 0A4BD0 7F0700A0 44056000 */ mfc1 $a1, $f12 +/* 0A4BD4 7F0700A4 00808025 */ move $s0, $a0 +/* 0A4BD8 7F0700A8 0FC1BFD9 */ jal sub_GAME_7F06FF64 +/* 0A4BDC 7F0700AC AFA60038 */ sw $a2, 0x38($sp) +/* 0A4BE0 7F0700B0 8E0E0054 */ lw $t6, 0x54($s0) +/* 0A4BE4 7F0700B4 51C00043 */ beql $t6, $zero, .L7F0701C4 +/* 0A4BE8 7F0700B8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A4BEC 7F0700BC 0FC170F6 */ jal sub_GAME_7F05C3D8 +/* 0A4BF0 7F0700C0 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 0A4BF4 7F0700C4 C6040070 */ lwc1 $f4, 0x70($s0) +/* 0A4BF8 7F0700C8 44803000 */ mtc1 $zero, $f6 +/* 0A4BFC 7F0700CC 00402025 */ move $a0, $v0 +/* 0A4C00 7F0700D0 00004025 */ move $t0, $zero +/* 0A4C04 7F0700D4 4604303E */ c.le.s $f6, $f4 +/* 0A4C08 7F0700D8 2447FFFF */ addiu $a3, $v0, -1 +/* 0A4C0C 7F0700DC 45000002 */ bc1f .L7F0700E8 +/* 0A4C10 7F0700E0 00000000 */ nop +/* 0A4C14 7F0700E4 24080001 */ li $t0, 1 +.L7F0700E8: +/* 0A4C18 7F0700E8 11000003 */ beqz $t0, .L7F0700F8 +/* 0A4C1C 7F0700EC 00000000 */ nop +/* 0A4C20 7F0700F0 10000001 */ b .L7F0700F8 +/* 0A4C24 7F0700F4 24470001 */ addiu $a3, $v0, 1 +.L7F0700F8: +/* 0A4C28 7F0700F8 8E050054 */ lw $a1, 0x54($s0) +/* 0A4C2C 7F0700FC 8E06006C */ lw $a2, 0x6c($s0) +/* 0A4C30 7F070100 AFA80024 */ sw $t0, 0x24($sp) +/* 0A4C34 7F070104 AFA70028 */ sw $a3, 0x28($sp) +/* 0A4C38 7F070108 0FC1BD9B */ jal sub_GAME_7F06F66C +/* 0A4C3C 7F07010C AFA4002C */ sw $a0, 0x2c($sp) +/* 0A4C40 7F070110 8FA40028 */ lw $a0, 0x28($sp) +/* 0A4C44 7F070114 A6020060 */ sh $v0, 0x60($s0) +/* 0A4C48 7F070118 8E050054 */ lw $a1, 0x54($s0) +/* 0A4C4C 7F07011C 0FC1BD9B */ jal sub_GAME_7F06F66C +/* 0A4C50 7F070120 8E06006C */ lw $a2, 0x6c($s0) +/* 0A4C54 7F070124 8FA70028 */ lw $a3, 0x28($sp) +/* 0A4C58 7F070128 8FA80024 */ lw $t0, 0x24($sp) +/* 0A4C5C 7F07012C A6020062 */ sh $v0, 0x62($s0) +/* 0A4C60 7F070130 86040062 */ lh $a0, 0x62($s0) +/* 0A4C64 7F070134 86030060 */ lh $v1, 0x60($s0) +/* 0A4C68 7F070138 14830007 */ bne $a0, $v1, .L7F070158 +/* 0A4C6C 7F07013C 00000000 */ nop +/* 0A4C70 7F070140 44835000 */ mtc1 $v1, $f10 +/* 0A4C74 7F070144 44804000 */ mtc1 $zero, $f8 +/* 0A4C78 7F070148 46805420 */ cvt.s.w $f16, $f10 +/* 0A4C7C 7F07014C E608005C */ swc1 $f8, 0x5c($s0) +/* 0A4C80 7F070150 1000001B */ b .L7F0701C0 +/* 0A4C84 7F070154 E6100058 */ swc1 $f16, 0x58($s0) +.L7F070158: +/* 0A4C88 7F070158 1100000B */ beqz $t0, .L7F070188 +/* 0A4C8C 7F07015C 8FAF002C */ lw $t7, 0x2c($sp) +/* 0A4C90 7F070160 448F2000 */ mtc1 $t7, $f4 +/* 0A4C94 7F070164 44834000 */ mtc1 $v1, $f8 +/* 0A4C98 7F070168 C7B20038 */ lwc1 $f18, 0x38($sp) +/* 0A4C9C 7F07016C 468021A0 */ cvt.s.w $f6, $f4 +/* 0A4CA0 7F070170 468042A0 */ cvt.s.w $f10, $f8 +/* 0A4CA4 7F070174 46069001 */ sub.s $f0, $f18, $f6 +/* 0A4CA8 7F070178 46005400 */ add.s $f16, $f10, $f0 +/* 0A4CAC 7F07017C E600005C */ swc1 $f0, 0x5c($s0) +/* 0A4CB0 7F070180 1000000F */ b .L7F0701C0 +/* 0A4CB4 7F070184 E6100058 */ swc1 $f16, 0x58($s0) +.L7F070188: +/* 0A4CB8 7F070188 44879000 */ mtc1 $a3, $f18 +/* 0A4CBC 7F07018C C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0A4CC0 7F070190 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A4CC4 7F070194 468091A0 */ cvt.s.w $f6, $f18 +/* 0A4CC8 7F070198 44811000 */ mtc1 $at, $f2 +/* 0A4CCC 7F07019C 44845000 */ mtc1 $a0, $f10 +/* 0A4CD0 7F0701A0 00000000 */ nop +/* 0A4CD4 7F0701A4 46805420 */ cvt.s.w $f16, $f10 +/* 0A4CD8 7F0701A8 46062201 */ sub.s $f8, $f4, $f6 +/* 0A4CDC 7F0701AC 46081001 */ sub.s $f0, $f2, $f8 +/* 0A4CE0 7F0701B0 46001481 */ sub.s $f18, $f2, $f0 +/* 0A4CE4 7F0701B4 E600005C */ swc1 $f0, 0x5c($s0) +/* 0A4CE8 7F0701B8 46128100 */ add.s $f4, $f16, $f18 +/* 0A4CEC 7F0701BC E6040058 */ swc1 $f4, 0x58($s0) +.L7F0701C0: +/* 0A4CF0 7F0701C0 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0701C4: +/* 0A4CF4 7F0701C4 8FB00018 */ lw $s0, 0x18($sp) +/* 0A4CF8 7F0701C8 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0A4CFC 7F0701CC 03E00008 */ jr $ra +/* 0A4D00 7F0701D0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0701D4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0701D4 +/* 0A4D04 7F0701D4 3C018003 */ lui $at, %hi(D_80036250) +/* 0A4D08 7F0701D8 03E00008 */ jr $ra +/* 0A4D0C 7F0701DC AC246250 */ sw $a0, %lo(D_80036250)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0701E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0701E0 +/* 0A4D10 7F0701E0 3C028003 */ lui $v0, %hi(D_80036250) +/* 0A4D14 7F0701E4 03E00008 */ jr $ra +/* 0A4D18 7F0701E8 8C426250 */ lw $v0, %lo(D_80036250)($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0701EC(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054D4C +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F0701EC +/* 0A4D1C 7F0701EC 27BDFF08 */ addiu $sp, $sp, -0xf8 +/* 0A4D20 7F0701F0 AFBF005C */ sw $ra, 0x5c($sp) +/* 0A4D24 7F0701F4 AFB30058 */ sw $s3, 0x58($sp) +/* 0A4D28 7F0701F8 AFB20054 */ sw $s2, 0x54($sp) +/* 0A4D2C 7F0701FC AFB10050 */ sw $s1, 0x50($sp) +/* 0A4D30 7F070200 AFB0004C */ sw $s0, 0x4c($sp) +/* 0A4D34 7F070204 F7BE0040 */ sdc1 $f30, 0x40($sp) +/* 0A4D38 7F070208 F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 0A4D3C 7F07020C F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0A4D40 7F070210 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0A4D44 7F070214 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0A4D48 7F070218 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0A4D4C 7F07021C AFA60100 */ sw $a2, 0x100($sp) +/* 0A4D50 7F070220 AFA70104 */ sw $a3, 0x104($sp) +/* 0A4D54 7F070224 8C8E0008 */ lw $t6, 8($a0) +/* 0A4D58 7F070228 4485A000 */ mtc1 $a1, $f20 +/* 0A4D5C 7F07022C 24010001 */ li $at, 1 +/* 0A4D60 7F070230 8DC50000 */ lw $a1, ($t6) +/* 0A4D64 7F070234 00808825 */ move $s1, $a0 +/* 0A4D68 7F070238 94A20000 */ lhu $v0, ($a1) +/* 0A4D6C 7F07023C 304F00FF */ andi $t7, $v0, 0xff +/* 0A4D70 7F070240 55E10218 */ bnel $t7, $at, .L7F070AA4 +/* 0A4D74 7F070244 C7B40108 */ lwc1 $f20, 0x108($sp) +/* 0A4D78 7F070248 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A4D7C 7F07024C 8CB20004 */ lw $s2, 4($a1) +/* 0A4D80 7F070250 80580000 */ lb $t8, ($v0) +/* 0A4D84 7F070254 00408025 */ move $s0, $v0 +/* 0A4D88 7F070258 5700020A */ bnezl $t8, .L7F070A84 +/* 0A4D8C 7F07025C C7B40108 */ lwc1 $f20, 0x108($sp) +/* 0A4D90 7F070260 96590000 */ lhu $t9, ($s2) +/* 0A4D94 7F070264 3C0B8003 */ lui $t3, %hi(D_80036254) +/* 0A4D98 7F070268 256B6254 */ addiu $t3, %lo(D_80036254) # addiu $t3, $t3, 0x6254 +/* 0A4D9C 7F07026C AFB900E4 */ sw $t9, 0xe4($sp) +/* 0A4DA0 7F070270 8E280008 */ lw $t0, 8($s1) +/* 0A4DA4 7F070274 27AA00C8 */ addiu $t2, $sp, 0xc8 +/* 0A4DA8 7F070278 4480C000 */ mtc1 $zero, $f24 +/* 0A4DAC 7F07027C 8D090004 */ lw $t1, 4($t0) +/* 0A4DB0 7F070280 AFA900E0 */ sw $t1, 0xe0($sp) +/* 0A4DB4 7F070284 C62600B8 */ lwc1 $f6, 0xb8($s1) +/* 0A4DB8 7F070288 C6240014 */ lwc1 $f4, 0x14($s1) +/* 0A4DBC 7F07028C 46062202 */ mul.s $f8, $f4, $f6 +/* 0A4DC0 7F070290 E7A800DC */ swc1 $f8, 0xdc($sp) +/* 0A4DC4 7F070294 8D610000 */ lw $at, ($t3) +/* 0A4DC8 7F070298 8D6E0004 */ lw $t6, 4($t3) +/* 0A4DCC 7F07029C AD410000 */ sw $at, ($t2) +/* 0A4DD0 7F0702A0 8D610008 */ lw $at, 8($t3) +/* 0A4DD4 7F0702A4 AD4E0004 */ sw $t6, 4($t2) +/* 0A4DD8 7F0702A8 AD410008 */ sw $at, 8($t2) +/* 0A4DDC 7F0702AC C44A0034 */ lwc1 $f10, 0x34($v0) +/* 0A4DE0 7F0702B0 E7AA00AC */ swc1 $f10, 0xac($sp) +/* 0A4DE4 7F0702B4 C4500038 */ lwc1 $f16, 0x38($v0) +/* 0A4DE8 7F0702B8 E7B000B0 */ swc1 $f16, 0xb0($sp) +/* 0A4DEC 7F0702BC C452003C */ lwc1 $f18, 0x3c($v0) +/* 0A4DF0 7F0702C0 C7B00100 */ lwc1 $f16, 0x100($sp) +/* 0A4DF4 7F0702C4 E7B200B4 */ swc1 $f18, 0xb4($sp) +/* 0A4DF8 7F0702C8 C4440024 */ lwc1 $f4, 0x24($v0) +/* 0A4DFC 7F0702CC C45C0030 */ lwc1 $f28, 0x30($v0) +/* 0A4E00 7F0702D0 E7A4009C */ swc1 $f4, 0x9c($sp) +/* 0A4E04 7F0702D4 C4460028 */ lwc1 $f6, 0x28($v0) +/* 0A4E08 7F0702D8 E7A600A0 */ swc1 $f6, 0xa0($sp) +/* 0A4E0C 7F0702DC C448002C */ lwc1 $f8, 0x2c($v0) +/* 0A4E10 7F0702E0 E7A800A4 */ swc1 $f8, 0xa4($sp) +/* 0A4E14 7F0702E4 C44A0020 */ lwc1 $f10, 0x20($v0) +/* 0A4E18 7F0702E8 E7AA0098 */ swc1 $f10, 0x98($sp) +/* 0A4E1C 7F0702EC 804F0001 */ lb $t7, 1($v0) +/* 0A4E20 7F0702F0 AFAF0094 */ sw $t7, 0x94($sp) +/* 0A4E24 7F0702F4 C63E0040 */ lwc1 $f30, 0x40($s1) +/* 0A4E28 7F0702F8 4618F03C */ c.lt.s $f30, $f24 +/* 0A4E2C 7F0702FC 00000000 */ nop +/* 0A4E30 7F070300 45020003 */ bc1fl .L7F070310 +/* 0A4E34 7F070304 C6200070 */ lwc1 $f0, 0x70($s1) +/* 0A4E38 7F070308 4600F787 */ neg.s $f30, $f30 +/* 0A4E3C 7F07030C C6200070 */ lwc1 $f0, 0x70($s1) +.L7F070310: +/* 0A4E40 7F070310 4618003C */ c.lt.s $f0, $f24 +/* 0A4E44 7F070314 00000000 */ nop +/* 0A4E48 7F070318 45020003 */ bc1fl .L7F070328 +/* 0A4E4C 7F07031C 4610A03E */ c.le.s $f20, $f16 +/* 0A4E50 7F070320 46000007 */ neg.s $f0, $f0 +/* 0A4E54 7F070324 4610A03E */ c.le.s $f20, $f16 +.L7F070328: +/* 0A4E58 7F070328 00009825 */ move $s3, $zero +/* 0A4E5C 7F07032C 45000002 */ bc1f .L7F070338 +/* 0A4E60 7F070330 00000000 */ nop +/* 0A4E64 7F070334 24130001 */ li $s3, 1 +.L7F070338: +/* 0A4E68 7F070338 5260000A */ beql $s3, $zero, .L7F070364 +/* 0A4E6C 7F07033C 4600A306 */ mov.s $f12, $f20 +/* 0A4E70 7F070340 4600A306 */ mov.s $f12, $f20 +/* 0A4E74 7F070344 0FC170F6 */ jal sub_GAME_7F05C3D8 +/* 0A4E78 7F070348 E7A00088 */ swc1 $f0, 0x88($sp) +/* 0A4E7C 7F07034C 24520001 */ addiu $s2, $v0, 1 +/* 0A4E80 7F070350 0FC170F6 */ jal sub_GAME_7F05C3D8 +/* 0A4E84 7F070354 C7AC0100 */ lwc1 $f12, 0x100($sp) +/* 0A4E88 7F070358 10000008 */ b .L7F07037C +/* 0A4E8C 7F07035C AFA200B8 */ sw $v0, 0xb8($sp) +/* 0A4E90 7F070360 4600A306 */ mov.s $f12, $f20 +.L7F070364: +/* 0A4E94 7F070364 0FC1712E */ jal sub_GAME_7F05C4B8 +/* 0A4E98 7F070368 E7A00088 */ swc1 $f0, 0x88($sp) +/* 0A4E9C 7F07036C 2452FFFF */ addiu $s2, $v0, -1 +/* 0A4EA0 7F070370 0FC1712E */ jal sub_GAME_7F05C4B8 +/* 0A4EA4 7F070374 C7AC0100 */ lwc1 $f12, 0x100($sp) +/* 0A4EA8 7F070378 AFA200B8 */ sw $v0, 0xb8($sp) +.L7F07037C: +/* 0A4EAC 7F07037C 3C018005 */ lui $at, %hi(D_80054D4C) +/* 0A4EB0 7F070380 8FA700B8 */ lw $a3, 0xb8($sp) +/* 0A4EB4 7F070384 C43A4D4C */ lwc1 $f26, %lo(D_80054D4C)($at) +.L7F070388: +/* 0A4EB8 7F070388 12600006 */ beqz $s3, .L7F0703A4 +/* 0A4EBC 7F07038C 0247082A */ slt $at, $s2, $a3 +/* 0A4EC0 7F070390 00F2082A */ slt $at, $a3, $s2 +/* 0A4EC4 7F070394 50200006 */ beql $at, $zero, .L7F0703B0 +/* 0A4EC8 7F070398 8E250020 */ lw $a1, 0x20($s1) +/* 0A4ECC 7F07039C 10000130 */ b .L7F070860 +/* 0A4ED0 7F0703A0 C7A600AC */ lwc1 $f6, 0xac($sp) +.L7F0703A4: +/* 0A4ED4 7F0703A4 5420012E */ bnezl $at, .L7F070860 +/* 0A4ED8 7F0703A8 C7A600AC */ lwc1 $f6, 0xac($sp) +/* 0A4EDC 7F0703AC 8E250020 */ lw $a1, 0x20($s1) +.L7F0703B0: +/* 0A4EE0 7F0703B0 8E26003C */ lw $a2, 0x3c($s1) +/* 0A4EE4 7F0703B4 AFA700B8 */ sw $a3, 0xb8($sp) +/* 0A4EE8 7F0703B8 0FC1BD9B */ jal sub_GAME_7F06F66C +/* 0A4EEC 7F0703BC 02402025 */ move $a0, $s2 +/* 0A4EF0 7F0703C0 A6220030 */ sh $v0, 0x30($s1) +/* 0A4EF4 7F0703C4 8FB80094 */ lw $t8, 0x94($sp) +/* 0A4EF8 7F0703C8 00401825 */ move $v1, $v0 +/* 0A4EFC 7F0703CC 8FA600E0 */ lw $a2, 0xe0($sp) +/* 0A4F00 7F0703D0 1300000E */ beqz $t8, .L7F07040C +/* 0A4F04 7F0703D4 8FA400E4 */ lw $a0, 0xe4($sp) +/* 0A4F08 7F0703D8 C7B2009C */ lwc1 $f18, 0x9c($sp) +/* 0A4F0C 7F0703DC C7A400A0 */ lwc1 $f4, 0xa0($sp) +/* 0A4F10 7F0703E0 C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 0A4F14 7F0703E4 E7B200AC */ swc1 $f18, 0xac($sp) +/* 0A4F18 7F0703E8 E7A400B0 */ swc1 $f4, 0xb0($sp) +/* 0A4F1C 7F0703EC E7A600B4 */ swc1 $f6, 0xb4($sp) +/* 0A4F20 7F0703F0 C6080018 */ lwc1 $f8, 0x18($s0) +/* 0A4F24 7F0703F4 4608C032 */ c.eq.s $f24, $f8 +/* 0A4F28 7F0703F8 00000000 */ nop +/* 0A4F2C 7F0703FC 45000046 */ bc1f .L7F070518 +/* 0A4F30 7F070400 00000000 */ nop +/* 0A4F34 7F070404 10000044 */ b .L7F070518 +/* 0A4F38 7F070408 C7BC0098 */ lwc1 $f28, 0x98($sp) +.L7F07040C: +/* 0A4F3C 7F07040C 82250024 */ lb $a1, 0x24($s1) +/* 0A4F40 7F070410 8E270020 */ lw $a3, 0x20($s1) +/* 0A4F44 7F070414 27B900C8 */ addiu $t9, $sp, 0xc8 +/* 0A4F48 7F070418 AFB90014 */ sw $t9, 0x14($sp) +/* 0A4F4C 7F07041C 0FC1B4FD */ jal sub_GAME_7F06D3F4 +/* 0A4F50 7F070420 AFA30010 */ sw $v1, 0x10($sp) +/* 0A4F54 7F070424 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A4F58 7F070428 44818000 */ mtc1 $at, $f16 +/* 0A4F5C 7F07042C C7AA00DC */ lwc1 $f10, 0xdc($sp) +/* 0A4F60 7F070430 46000586 */ mov.s $f22, $f0 +/* 0A4F64 7F070434 C7A200C8 */ lwc1 $f2, 0xc8($sp) +/* 0A4F68 7F070438 46105032 */ c.eq.s $f10, $f16 +/* 0A4F6C 7F07043C C7B200CC */ lwc1 $f18, 0xcc($sp) +/* 0A4F70 7F070440 4503000A */ bc1tl .L7F07046C +/* 0A4F74 7F070444 C7A200C8 */ lwc1 $f2, 0xc8($sp) +/* 0A4F78 7F070448 460A1082 */ mul.s $f2, $f2, $f10 +/* 0A4F7C 7F07044C C7AC00D0 */ lwc1 $f12, 0xd0($sp) +/* 0A4F80 7F070450 460A9102 */ mul.s $f4, $f18, $f10 +/* 0A4F84 7F070454 00000000 */ nop +/* 0A4F88 7F070458 460A6302 */ mul.s $f12, $f12, $f10 +/* 0A4F8C 7F07045C E7A200C8 */ swc1 $f2, 0xc8($sp) +/* 0A4F90 7F070460 E7A400CC */ swc1 $f4, 0xcc($sp) +/* 0A4F94 7F070464 E7AC00D0 */ swc1 $f12, 0xd0($sp) +/* 0A4F98 7F070468 C7A200C8 */ lwc1 $f2, 0xc8($sp) +.L7F07046C: +/* 0A4F9C 7F07046C 16600008 */ bnez $s3, .L7F070490 +/* 0A4FA0 7F070470 C7AC00D0 */ lwc1 $f12, 0xd0($sp) +/* 0A4FA4 7F070474 4600C03C */ c.lt.s $f24, $f0 +/* 0A4FA8 7F070478 46001087 */ neg.s $f2, $f2 +/* 0A4FAC 7F07047C 46006307 */ neg.s $f12, $f12 +/* 0A4FB0 7F070480 E7A200C8 */ swc1 $f2, 0xc8($sp) +/* 0A4FB4 7F070484 45000002 */ bc1f .L7F070490 +/* 0A4FB8 7F070488 E7AC00D0 */ swc1 $f12, 0xd0($sp) +/* 0A4FBC 7F07048C 4600D581 */ sub.s $f22, $f26, $f0 +.L7F070490: +/* 0A4FC0 7F070490 0FC15FA8 */ jal cosf +/* 0A4FC4 7F070494 C60C0014 */ lwc1 $f12, 0x14($s0) +/* 0A4FC8 7F070498 46000506 */ mov.s $f20, $f0 +/* 0A4FCC 7F07049C 0FC15FAB */ jal sinf +/* 0A4FD0 7F0704A0 C60C0014 */ lwc1 $f12, 0x14($s0) +/* 0A4FD4 7F0704A4 C7A600C8 */ lwc1 $f6, 0xc8($sp) +/* 0A4FD8 7F0704A8 C7B000D0 */ lwc1 $f16, 0xd0($sp) +/* 0A4FDC 7F0704AC C7AA00AC */ lwc1 $f10, 0xac($sp) +/* 0A4FE0 7F0704B0 46143202 */ mul.s $f8, $f6, $f20 +/* 0A4FE4 7F0704B4 00000000 */ nop +/* 0A4FE8 7F0704B8 46008482 */ mul.s $f18, $f16, $f0 +/* 0A4FEC 7F0704BC 46124100 */ add.s $f4, $f8, $f18 +/* 0A4FF0 7F0704C0 C7B200CC */ lwc1 $f18, 0xcc($sp) +/* 0A4FF4 7F0704C4 46045200 */ add.s $f8, $f10, $f4 +/* 0A4FF8 7F0704C8 E7B200B0 */ swc1 $f18, 0xb0($sp) +/* 0A4FFC 7F0704CC 46003287 */ neg.s $f10, $f6 +/* 0A5000 7F0704D0 E7A800AC */ swc1 $f8, 0xac($sp) +/* 0A5004 7F0704D4 46005102 */ mul.s $f4, $f10, $f0 +/* 0A5008 7F0704D8 C7A600B4 */ lwc1 $f6, 0xb4($sp) +/* 0A500C 7F0704DC 46148202 */ mul.s $f8, $f16, $f20 +/* 0A5010 7F0704E0 46082480 */ add.s $f18, $f4, $f8 +/* 0A5014 7F0704E4 46123280 */ add.s $f10, $f6, $f18 +/* 0A5018 7F0704E8 E7AA00B4 */ swc1 $f10, 0xb4($sp) +/* 0A501C 7F0704EC C6100018 */ lwc1 $f16, 0x18($s0) +/* 0A5020 7F0704F0 4610C032 */ c.eq.s $f24, $f16 +/* 0A5024 7F0704F4 00000000 */ nop +/* 0A5028 7F0704F8 45000007 */ bc1f .L7F070518 +/* 0A502C 7F0704FC 00000000 */ nop +/* 0A5030 7F070500 4616E700 */ add.s $f28, $f28, $f22 +/* 0A5034 7F070504 461CD03E */ c.le.s $f26, $f28 +/* 0A5038 7F070508 00000000 */ nop +/* 0A503C 7F07050C 45000002 */ bc1f .L7F070518 +/* 0A5040 7F070510 00000000 */ nop +/* 0A5044 7F070514 461AE701 */ sub.s $f28, $f28, $f26 +.L7F070518: +/* 0A5048 7F070518 52600004 */ beql $s3, $zero, .L7F07052C +/* 0A504C 7F07051C 2652FFFF */ addiu $s2, $s2, -1 +/* 0A5050 7F070520 10000002 */ b .L7F07052C +/* 0A5054 7F070524 26520001 */ addiu $s2, $s2, 1 +/* 0A5058 7F070528 2652FFFF */ addiu $s2, $s2, -1 +.L7F07052C: +/* 0A505C 7F07052C 02402025 */ move $a0, $s2 +/* 0A5060 7F070530 8E250020 */ lw $a1, 0x20($s1) +/* 0A5064 7F070534 0FC1BD9B */ jal sub_GAME_7F06F66C +/* 0A5068 7F070538 8E26003C */ lw $a2, 0x3c($s1) +/* 0A506C 7F07053C A6220032 */ sh $v0, 0x32($s1) +/* 0A5070 7F070540 86290032 */ lh $t1, 0x32($s1) +/* 0A5074 7F070544 86280030 */ lh $t0, 0x30($s1) +/* 0A5078 7F070548 8FA600E0 */ lw $a2, 0xe0($sp) +/* 0A507C 7F07054C 8FA400E4 */ lw $a0, 0xe4($sp) +/* 0A5080 7F070550 110900C0 */ beq $t0, $t1, .L7F070854 +/* 0A5084 7F070554 27AD00C8 */ addiu $t5, $sp, 0xc8 +/* 0A5088 7F070558 82250024 */ lb $a1, 0x24($s1) +/* 0A508C 7F07055C 8E270020 */ lw $a3, 0x20($s1) +/* 0A5090 7F070560 240C0001 */ li $t4, 1 +/* 0A5094 7F070564 AFAC0094 */ sw $t4, 0x94($sp) +/* 0A5098 7F070568 AFAD0014 */ sw $t5, 0x14($sp) +/* 0A509C 7F07056C 0FC1B4FD */ jal sub_GAME_7F06D3F4 +/* 0A50A0 7F070570 AFA20010 */ sw $v0, 0x10($sp) +/* 0A50A4 7F070574 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A50A8 7F070578 44814000 */ mtc1 $at, $f8 +/* 0A50AC 7F07057C C7A400DC */ lwc1 $f4, 0xdc($sp) +/* 0A50B0 7F070580 46000586 */ mov.s $f22, $f0 +/* 0A50B4 7F070584 C7A200C8 */ lwc1 $f2, 0xc8($sp) +/* 0A50B8 7F070588 46082032 */ c.eq.s $f4, $f8 +/* 0A50BC 7F07058C C7A600CC */ lwc1 $f6, 0xcc($sp) +/* 0A50C0 7F070590 4503000A */ bc1tl .L7F0705BC +/* 0A50C4 7F070594 C7A200C8 */ lwc1 $f2, 0xc8($sp) +/* 0A50C8 7F070598 46041082 */ mul.s $f2, $f2, $f4 +/* 0A50CC 7F07059C C7AC00D0 */ lwc1 $f12, 0xd0($sp) +/* 0A50D0 7F0705A0 46043482 */ mul.s $f18, $f6, $f4 +/* 0A50D4 7F0705A4 00000000 */ nop +/* 0A50D8 7F0705A8 46046302 */ mul.s $f12, $f12, $f4 +/* 0A50DC 7F0705AC E7A200C8 */ swc1 $f2, 0xc8($sp) +/* 0A50E0 7F0705B0 E7B200CC */ swc1 $f18, 0xcc($sp) +/* 0A50E4 7F0705B4 E7AC00D0 */ swc1 $f12, 0xd0($sp) +/* 0A50E8 7F0705B8 C7A200C8 */ lwc1 $f2, 0xc8($sp) +.L7F0705BC: +/* 0A50EC 7F0705BC 16600008 */ bnez $s3, .L7F0705E0 +/* 0A50F0 7F0705C0 C7AC00D0 */ lwc1 $f12, 0xd0($sp) +/* 0A50F4 7F0705C4 4600C03C */ c.lt.s $f24, $f0 +/* 0A50F8 7F0705C8 46001087 */ neg.s $f2, $f2 +/* 0A50FC 7F0705CC 46006307 */ neg.s $f12, $f12 +/* 0A5100 7F0705D0 E7A200C8 */ swc1 $f2, 0xc8($sp) +/* 0A5104 7F0705D4 45000002 */ bc1f .L7F0705E0 +/* 0A5108 7F0705D8 E7AC00D0 */ swc1 $f12, 0xd0($sp) +/* 0A510C 7F0705DC 4600D581 */ sub.s $f22, $f26, $f0 +.L7F0705E0: +/* 0A5110 7F0705E0 0FC15FA8 */ jal cosf +/* 0A5114 7F0705E4 C60C0030 */ lwc1 $f12, 0x30($s0) +/* 0A5118 7F0705E8 46000506 */ mov.s $f20, $f0 +/* 0A511C 7F0705EC 0FC15FAB */ jal sinf +/* 0A5120 7F0705F0 C60C0030 */ lwc1 $f12, 0x30($s0) +/* 0A5124 7F0705F4 3C0A8003 */ lui $t2, %hi(D_80036250) +/* 0A5128 7F0705F8 8D4A6250 */ lw $t2, %lo(D_80036250)($t2) +/* 0A512C 7F0705FC C7A200C8 */ lwc1 $f2, 0xc8($sp) +/* 0A5130 7F070600 C7AC00D0 */ lwc1 $f12, 0xd0($sp) +/* 0A5134 7F070604 11400056 */ beqz $t2, .L7F070760 +/* 0A5138 7F070608 00000000 */ nop +/* 0A513C 7F07060C 8E2B0054 */ lw $t3, 0x54($s1) +/* 0A5140 7F070610 11600053 */ beqz $t3, .L7F070760 +/* 0A5144 7F070614 00000000 */ nop +/* 0A5148 7F070618 C7AC00D0 */ lwc1 $f12, 0xd0($sp) +/* 0A514C 7F07061C C7A200C8 */ lwc1 $f2, 0xc8($sp) +/* 0A5150 7F070620 461EC03C */ c.lt.s $f24, $f30 +/* 0A5154 7F070624 46006282 */ mul.s $f10, $f12, $f0 +/* 0A5158 7F070628 46001187 */ neg.s $f6, $f2 +/* 0A515C 7F07062C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0A5160 7F070630 46141402 */ mul.s $f16, $f2, $f20 +/* 0A5164 7F070634 00000000 */ nop +/* 0A5168 7F070638 46146102 */ mul.s $f4, $f12, $f20 +/* 0A516C 7F07063C 00000000 */ nop +/* 0A5170 7F070640 46003482 */ mul.s $f18, $f6, $f0 +/* 0A5174 7F070644 46105200 */ add.s $f8, $f10, $f16 +/* 0A5178 7F070648 E7A8009C */ swc1 $f8, 0x9c($sp) +/* 0A517C 7F07064C 46122280 */ add.s $f10, $f4, $f18 +/* 0A5180 7F070650 45000028 */ bc1f .L7F0706F4 +/* 0A5184 7F070654 E7AA00A4 */ swc1 $f10, 0xa4($sp) +/* 0A5188 7F070658 C6280088 */ lwc1 $f8, 0x88($s1) +/* 0A518C 7F07065C C63000A4 */ lwc1 $f16, 0xa4($s1) +/* 0A5190 7F070660 C6220084 */ lwc1 $f2, 0x84($s1) +/* 0A5194 7F070664 4608F182 */ mul.s $f6, $f30, $f8 +/* 0A5198 7F070668 46068103 */ div.s $f4, $f16, $f6 +/* 0A519C 7F07066C 46041001 */ sub.s $f0, $f2, $f4 +/* 0A51A0 7F070670 4618003C */ c.lt.s $f0, $f24 +/* 0A51A4 7F070674 00000000 */ nop +/* 0A51A8 7F070678 45020003 */ bc1fl .L7F070688 +/* 0A51AC 7F07067C 46001480 */ add.s $f18, $f2, $f0 +/* 0A51B0 7F070680 4600C006 */ mov.s $f0, $f24 +/* 0A51B4 7F070684 46001480 */ add.s $f18, $f2, $f0 +.L7F070688: +/* 0A51B8 7F070688 C6080040 */ lwc1 $f8, 0x40($s0) +/* 0A51BC 7F07068C C610004C */ lwc1 $f16, 0x4c($s0) +/* 0A51C0 7F070690 44815000 */ mtc1 $at, $f10 +/* 0A51C4 7F070694 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0A51C8 7F070698 46104181 */ sub.s $f6, $f8, $f16 +/* 0A51CC 7F07069C 460A9002 */ mul.s $f0, $f18, $f10 +/* 0A51D0 7F0706A0 00000000 */ nop +/* 0A51D4 7F0706A4 46043482 */ mul.s $f18, $f6, $f4 +/* 0A51D8 7F0706A8 461E9283 */ div.s $f10, $f18, $f30 +/* 0A51DC 7F0706AC E7AA007C */ swc1 $f10, 0x7c($sp) +/* 0A51E0 7F0706B0 C6100054 */ lwc1 $f16, 0x54($s0) +/* 0A51E4 7F0706B4 C6080048 */ lwc1 $f8, 0x48($s0) +/* 0A51E8 7F0706B8 46104181 */ sub.s $f6, $f8, $f16 +/* 0A51EC 7F0706BC C7B0009C */ lwc1 $f16, 0x9c($sp) +/* 0A51F0 7F0706C0 46043482 */ mul.s $f18, $f6, $f4 +/* 0A51F4 7F0706C4 46105181 */ sub.s $f6, $f10, $f16 +/* 0A51F8 7F0706C8 C7AA00A4 */ lwc1 $f10, 0xa4($sp) +/* 0A51FC 7F0706CC 46003102 */ mul.s $f4, $f6, $f0 +/* 0A5200 7F0706D0 461E9203 */ div.s $f8, $f18, $f30 +/* 0A5204 7F0706D4 46048480 */ add.s $f18, $f16, $f4 +/* 0A5208 7F0706D8 E7B2009C */ swc1 $f18, 0x9c($sp) +/* 0A520C 7F0706DC 460A4181 */ sub.s $f6, $f8, $f10 +/* 0A5210 7F0706E0 E7A80084 */ swc1 $f8, 0x84($sp) +/* 0A5214 7F0706E4 46003402 */ mul.s $f16, $f6, $f0 +/* 0A5218 7F0706E8 46105100 */ add.s $f4, $f10, $f16 +/* 0A521C 7F0706EC 10000011 */ b .L7F070734 +/* 0A5220 7F0706F0 E7A400A4 */ swc1 $f4, 0xa4($sp) +.L7F0706F4: +/* 0A5224 7F0706F4 C6120040 */ lwc1 $f18, 0x40($s0) +/* 0A5228 7F0706F8 C608004C */ lwc1 $f8, 0x4c($s0) +/* 0A522C 7F0706FC C62A0084 */ lwc1 $f10, 0x84($s1) +/* 0A5230 7F070700 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0A5234 7F070704 46089181 */ sub.s $f6, $f18, $f8 +/* 0A5238 7F070708 460A3402 */ mul.s $f16, $f6, $f10 +/* 0A523C 7F07070C 46102480 */ add.s $f18, $f4, $f16 +/* 0A5240 7F070710 E7B2009C */ swc1 $f18, 0x9c($sp) +/* 0A5244 7F070714 C6060054 */ lwc1 $f6, 0x54($s0) +/* 0A5248 7F070718 C6080048 */ lwc1 $f8, 0x48($s0) +/* 0A524C 7F07071C C6240084 */ lwc1 $f4, 0x84($s1) +/* 0A5250 7F070720 C7B200A4 */ lwc1 $f18, 0xa4($sp) +/* 0A5254 7F070724 46064281 */ sub.s $f10, $f8, $f6 +/* 0A5258 7F070728 46045402 */ mul.s $f16, $f10, $f4 +/* 0A525C 7F07072C 46109200 */ add.s $f8, $f18, $f16 +/* 0A5260 7F070730 E7A800A4 */ swc1 $f8, 0xa4($sp) +.L7F070734: +/* 0A5264 7F070734 C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 0A5268 7F070738 C7AA00AC */ lwc1 $f10, 0xac($sp) +/* 0A526C 7F07073C C7B200A4 */ lwc1 $f18, 0xa4($sp) +/* 0A5270 7F070740 C7B000B4 */ lwc1 $f16, 0xb4($sp) +/* 0A5274 7F070744 460A3100 */ add.s $f4, $f6, $f10 +/* 0A5278 7F070748 C7A600CC */ lwc1 $f6, 0xcc($sp) +/* 0A527C 7F07074C 46109200 */ add.s $f8, $f18, $f16 +/* 0A5280 7F070750 E7A4009C */ swc1 $f4, 0x9c($sp) +/* 0A5284 7F070754 E7A600A0 */ swc1 $f6, 0xa0($sp) +/* 0A5288 7F070758 1000000F */ b .L7F070798 +/* 0A528C 7F07075C E7A800A4 */ swc1 $f8, 0xa4($sp) +.L7F070760: +/* 0A5290 7F070760 46141102 */ mul.s $f4, $f2, $f20 +/* 0A5294 7F070764 C7AA00AC */ lwc1 $f10, 0xac($sp) +/* 0A5298 7F070768 C7A600CC */ lwc1 $f6, 0xcc($sp) +/* 0A529C 7F07076C 46006402 */ mul.s $f16, $f12, $f0 +/* 0A52A0 7F070770 E7A600A0 */ swc1 $f6, 0xa0($sp) +/* 0A52A4 7F070774 46045480 */ add.s $f18, $f10, $f4 +/* 0A52A8 7F070778 46001102 */ mul.s $f4, $f2, $f0 +/* 0A52AC 7F07077C C7AA00B4 */ lwc1 $f10, 0xb4($sp) +/* 0A52B0 7F070780 46128200 */ add.s $f8, $f16, $f18 +/* 0A52B4 7F070784 46146482 */ mul.s $f18, $f12, $f20 +/* 0A52B8 7F070788 46045401 */ sub.s $f16, $f10, $f4 +/* 0A52BC 7F07078C E7A8009C */ swc1 $f8, 0x9c($sp) +/* 0A52C0 7F070790 46109200 */ add.s $f8, $f18, $f16 +/* 0A52C4 7F070794 E7A800A4 */ swc1 $f8, 0xa4($sp) +.L7F070798: +/* 0A52C8 7F070798 C600005C */ lwc1 $f0, 0x5c($s0) +/* 0A52CC 7F07079C 4600C03C */ c.lt.s $f24, $f0 +/* 0A52D0 7F0707A0 00000000 */ nop +/* 0A52D4 7F0707A4 45020020 */ bc1fl .L7F070828 +/* 0A52D8 7F0707A8 C6100018 */ lwc1 $f16, 0x18($s0) +/* 0A52DC 7F0707AC 461EC03C */ c.lt.s $f24, $f30 +/* 0A52E0 7F0707B0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A52E4 7F0707B4 4502001C */ bc1fl .L7F070828 +/* 0A52E8 7F0707B8 C6100018 */ lwc1 $f16, 0x18($s0) +/* 0A52EC 7F0707BC 44813000 */ mtc1 $at, $f6 +/* 0A52F0 7F0707C0 00000000 */ nop +/* 0A52F4 7F0707C4 461E3083 */ div.s $f2, $f6, $f30 +/* 0A52F8 7F0707C8 4602003C */ c.lt.s $f0, $f2 +/* 0A52FC 7F0707CC 46001306 */ mov.s $f12, $f2 +/* 0A5300 7F0707D0 45020005 */ bc1fl .L7F0707E8 +/* 0A5304 7F0707D4 46020281 */ sub.s $f10, $f0, $f2 +/* 0A5308 7F0707D8 46000306 */ mov.s $f12, $f0 +/* 0A530C 7F0707DC 10000003 */ b .L7F0707EC +/* 0A5310 7F0707E0 E618005C */ swc1 $f24, 0x5c($s0) +/* 0A5314 7F0707E4 46020281 */ sub.s $f10, $f0, $f2 +.L7F0707E8: +/* 0A5318 7F0707E8 E60A005C */ swc1 $f10, 0x5c($s0) +.L7F0707EC: +/* 0A531C 7F0707EC C6040058 */ lwc1 $f4, 0x58($s0) +/* 0A5320 7F0707F0 460C2482 */ mul.s $f18, $f4, $f12 +/* 0A5324 7F0707F4 4612B580 */ add.s $f22, $f22, $f18 +/* 0A5328 7F0707F8 4618B03C */ c.lt.s $f22, $f24 +/* 0A532C 7F0707FC 00000000 */ nop +/* 0A5330 7F070800 45020004 */ bc1fl .L7F070814 +/* 0A5334 7F070804 4616D03E */ c.le.s $f26, $f22 +/* 0A5338 7F070808 10000006 */ b .L7F070824 +/* 0A533C 7F07080C 461AB580 */ add.s $f22, $f22, $f26 +/* 0A5340 7F070810 4616D03E */ c.le.s $f26, $f22 +.L7F070814: +/* 0A5344 7F070814 00000000 */ nop +/* 0A5348 7F070818 45020003 */ bc1fl .L7F070828 +/* 0A534C 7F07081C C6100018 */ lwc1 $f16, 0x18($s0) +/* 0A5350 7F070820 461AB581 */ sub.s $f22, $f22, $f26 +.L7F070824: +/* 0A5354 7F070824 C6100018 */ lwc1 $f16, 0x18($s0) +.L7F070828: +/* 0A5358 7F070828 4610C032 */ c.eq.s $f24, $f16 +/* 0A535C 7F07082C 00000000 */ nop +/* 0A5360 7F070830 45000008 */ bc1f .L7F070854 +/* 0A5364 7F070834 00000000 */ nop +/* 0A5368 7F070838 4616E000 */ add.s $f0, $f28, $f22 +/* 0A536C 7F07083C 4600D03E */ c.le.s $f26, $f0 +/* 0A5370 7F070840 E7A00098 */ swc1 $f0, 0x98($sp) +/* 0A5374 7F070844 45000003 */ bc1f .L7F070854 +/* 0A5378 7F070848 00000000 */ nop +/* 0A537C 7F07084C 461A0201 */ sub.s $f8, $f0, $f26 +/* 0A5380 7F070850 E7A80098 */ swc1 $f8, 0x98($sp) +.L7F070854: +/* 0A5384 7F070854 1000FECC */ b .L7F070388 +/* 0A5388 7F070858 8FA700B8 */ lw $a3, 0xb8($sp) +/* 0A538C 7F07085C C7A600AC */ lwc1 $f6, 0xac($sp) +.L7F070860: +/* 0A5390 7F070860 E6060034 */ swc1 $f6, 0x34($s0) +/* 0A5394 7F070864 C7AA00B0 */ lwc1 $f10, 0xb0($sp) +/* 0A5398 7F070868 E60A0038 */ swc1 $f10, 0x38($s0) +/* 0A539C 7F07086C C7A400B4 */ lwc1 $f4, 0xb4($sp) +/* 0A53A0 7F070870 E61C0030 */ swc1 $f28, 0x30($s0) +/* 0A53A4 7F070874 E604003C */ swc1 $f4, 0x3c($s0) +/* 0A53A8 7F070878 C7B2009C */ lwc1 $f18, 0x9c($sp) +/* 0A53AC 7F07087C E6120024 */ swc1 $f18, 0x24($s0) +/* 0A53B0 7F070880 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 0A53B4 7F070884 E6100028 */ swc1 $f16, 0x28($s0) +/* 0A53B8 7F070888 C7A800A4 */ lwc1 $f8, 0xa4($sp) +/* 0A53BC 7F07088C E608002C */ swc1 $f8, 0x2c($s0) +/* 0A53C0 7F070890 C7A60098 */ lwc1 $f6, 0x98($sp) +/* 0A53C4 7F070894 E6060020 */ swc1 $f6, 0x20($s0) +/* 0A53C8 7F070898 86220030 */ lh $v0, 0x30($s1) +/* 0A53CC 7F07089C 86230032 */ lh $v1, 0x32($s1) +/* 0A53D0 7F0708A0 14620006 */ bne $v1, $v0, .L7F0708BC +/* 0A53D4 7F0708A4 00000000 */ nop +/* 0A53D8 7F0708A8 44825000 */ mtc1 $v0, $f10 +/* 0A53DC 7F0708AC E638002C */ swc1 $f24, 0x2c($s1) +/* 0A53E0 7F0708B0 46805120 */ cvt.s.w $f4, $f10 +/* 0A53E4 7F0708B4 10000019 */ b .L7F07091C +/* 0A53E8 7F0708B8 E6240028 */ swc1 $f4, 0x28($s1) +.L7F0708BC: +/* 0A53EC 7F0708BC 5260000C */ beql $s3, $zero, .L7F0708F0 +/* 0A53F0 7F0708C0 44878000 */ mtc1 $a3, $f16 +/* 0A53F4 7F0708C4 44878000 */ mtc1 $a3, $f16 +/* 0A53F8 7F0708C8 44823000 */ mtc1 $v0, $f6 +/* 0A53FC 7F0708CC C7B20100 */ lwc1 $f18, 0x100($sp) +/* 0A5400 7F0708D0 46808220 */ cvt.s.w $f8, $f16 +/* 0A5404 7F0708D4 468032A0 */ cvt.s.w $f10, $f6 +/* 0A5408 7F0708D8 46089001 */ sub.s $f0, $f18, $f8 +/* 0A540C 7F0708DC 46005100 */ add.s $f4, $f10, $f0 +/* 0A5410 7F0708E0 E620002C */ swc1 $f0, 0x2c($s1) +/* 0A5414 7F0708E4 1000000D */ b .L7F07091C +/* 0A5418 7F0708E8 E6240028 */ swc1 $f4, 0x28($s1) +/* 0A541C 7F0708EC 44878000 */ mtc1 $a3, $f16 +.L7F0708F0: +/* 0A5420 7F0708F0 C7A80100 */ lwc1 $f8, 0x100($sp) +/* 0A5424 7F0708F4 44833000 */ mtc1 $v1, $f6 +/* 0A5428 7F0708F8 468084A0 */ cvt.s.w $f18, $f16 +/* 0A542C 7F0708FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A5430 7F070900 44812000 */ mtc1 $at, $f4 +/* 0A5434 7F070904 468032A0 */ cvt.s.w $f10, $f6 +/* 0A5438 7F070908 46089001 */ sub.s $f0, $f18, $f8 +/* 0A543C 7F07090C 46002401 */ sub.s $f16, $f4, $f0 +/* 0A5440 7F070910 E620002C */ swc1 $f0, 0x2c($s1) +/* 0A5444 7F070914 46105480 */ add.s $f18, $f10, $f16 +/* 0A5448 7F070918 E6320028 */ swc1 $f18, 0x28($s1) +.L7F07091C: +/* 0A544C 7F07091C 8E2E0054 */ lw $t6, 0x54($s1) +/* 0A5450 7F070920 11C00055 */ beqz $t6, .L7F070A78 +/* 0A5454 7F070924 00000000 */ nop +/* 0A5458 7F070928 0FC170F6 */ jal sub_GAME_7F05C3D8 +/* 0A545C 7F07092C C7AC0104 */ lwc1 $f12, 0x104($sp) +/* 0A5460 7F070930 C7B40108 */ lwc1 $f20, 0x108($sp) +/* 0A5464 7F070934 00409025 */ move $s2, $v0 +/* 0A5468 7F070938 0FC170F6 */ jal sub_GAME_7F05C3D8 +/* 0A546C 7F07093C 4600A306 */ mov.s $f12, $f20 +/* 0A5470 7F070940 12600004 */ beqz $s3, .L7F070954 +/* 0A5474 7F070944 AFA2006C */ sw $v0, 0x6c($sp) +/* 0A5478 7F070948 0242082A */ slt $at, $s2, $v0 +/* 0A547C 7F07094C 54200006 */ bnezl $at, .L7F070968 +/* 0A5480 7F070950 820F0002 */ lb $t7, 2($s0) +.L7F070954: +/* 0A5484 7F070954 1660002C */ bnez $s3, .L7F070A08 +/* 0A5488 7F070958 0052082A */ slt $at, $v0, $s2 +/* 0A548C 7F07095C 5020002B */ beql $at, $zero, .L7F070A0C +/* 0A5490 7F070960 3C013F80 */ lui $at, 0x3f80 +/* 0A5494 7F070964 820F0002 */ lb $t7, 2($s0) +.L7F070968: +/* 0A5498 7F070968 51E00005 */ beql $t7, $zero, .L7F070980 +/* 0A549C 7F07096C C6060038 */ lwc1 $f6, 0x38($s0) +/* 0A54A0 7F070970 C6080044 */ lwc1 $f8, 0x44($s0) +/* 0A54A4 7F070974 10000003 */ b .L7F070984 +/* 0A54A8 7F070978 E6080050 */ swc1 $f8, 0x50($s0) +/* 0A54AC 7F07097C C6060038 */ lwc1 $f6, 0x38($s0) +.L7F070980: +/* 0A54B0 7F070980 E6060050 */ swc1 $f6, 0x50($s0) +.L7F070984: +/* 0A54B4 7F070984 8FA4006C */ lw $a0, 0x6c($sp) +/* 0A54B8 7F070988 8E250054 */ lw $a1, 0x54($s1) +/* 0A54BC 7F07098C 0FC1BD9B */ jal sub_GAME_7F06F66C +/* 0A54C0 7F070990 8E26006C */ lw $a2, 0x6c($s1) +/* 0A54C4 7F070994 A6220060 */ sh $v0, 0x60($s1) +/* 0A54C8 7F070998 8FA4006C */ lw $a0, 0x6c($sp) +/* 0A54CC 7F07099C 8E250054 */ lw $a1, 0x54($s1) +/* 0A54D0 7F0709A0 8E26006C */ lw $a2, 0x6c($s1) +/* 0A54D4 7F0709A4 0FC1BD9B */ jal sub_GAME_7F06F66C +/* 0A54D8 7F0709A8 24840001 */ addiu $a0, $a0, 1 +/* 0A54DC 7F0709AC A6220062 */ sh $v0, 0x62($s1) +/* 0A54E0 7F0709B0 82250025 */ lb $a1, 0x25($s1) +/* 0A54E4 7F0709B4 8E270054 */ lw $a3, 0x54($s1) +/* 0A54E8 7F0709B8 27B800C8 */ addiu $t8, $sp, 0xc8 +/* 0A54EC 7F0709BC AFB80014 */ sw $t8, 0x14($sp) +/* 0A54F0 7F0709C0 AFA20010 */ sw $v0, 0x10($sp) +/* 0A54F4 7F0709C4 8FA600E0 */ lw $a2, 0xe0($sp) +/* 0A54F8 7F0709C8 0FC1B4FD */ jal sub_GAME_7F06D3F4 +/* 0A54FC 7F0709CC 8FA400E4 */ lw $a0, 0xe4($sp) +/* 0A5500 7F0709D0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A5504 7F0709D4 44811000 */ mtc1 $at, $f2 +/* 0A5508 7F0709D8 C7AC00DC */ lwc1 $f12, 0xdc($sp) +/* 0A550C 7F0709DC C7A400CC */ lwc1 $f4, 0xcc($sp) +/* 0A5510 7F0709E0 46026032 */ c.eq.s $f12, $f2 +/* 0A5514 7F0709E4 00000000 */ nop +/* 0A5518 7F0709E8 45030004 */ bc1tl .L7F0709FC +/* 0A551C 7F0709EC C7B000CC */ lwc1 $f16, 0xcc($sp) +/* 0A5520 7F0709F0 460C2282 */ mul.s $f10, $f4, $f12 +/* 0A5524 7F0709F4 E7AA00CC */ swc1 $f10, 0xcc($sp) +/* 0A5528 7F0709F8 C7B000CC */ lwc1 $f16, 0xcc($sp) +.L7F0709FC: +/* 0A552C 7F0709FC 24190001 */ li $t9, 1 +/* 0A5530 7F070A00 A2190002 */ sb $t9, 2($s0) +/* 0A5534 7F070A04 E6100044 */ swc1 $f16, 0x44($s0) +.L7F070A08: +/* 0A5538 7F070A08 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F070A0C: +/* 0A553C 7F070A0C 44811000 */ mtc1 $at, $f2 +/* 0A5540 7F070A10 1260000C */ beqz $s3, .L7F070A44 +/* 0A5544 7F070A14 8FAD006C */ lw $t5, 0x6c($sp) +/* 0A5548 7F070A18 8FA8006C */ lw $t0, 0x6c($sp) +/* 0A554C 7F070A1C 86290060 */ lh $t1, 0x60($s1) +/* 0A5550 7F070A20 44889000 */ mtc1 $t0, $f18 +/* 0A5554 7F070A24 44893000 */ mtc1 $t1, $f6 +/* 0A5558 7F070A28 46809220 */ cvt.s.w $f8, $f18 +/* 0A555C 7F070A2C 46803120 */ cvt.s.w $f4, $f6 +/* 0A5560 7F070A30 4608A001 */ sub.s $f0, $f20, $f8 +/* 0A5564 7F070A34 46002280 */ add.s $f10, $f4, $f0 +/* 0A5568 7F070A38 E620005C */ swc1 $f0, 0x5c($s1) +/* 0A556C 7F070A3C 1000001E */ b .L7F070AB8 +/* 0A5570 7F070A40 E62A0058 */ swc1 $f10, 0x58($s1) +.L7F070A44: +/* 0A5574 7F070A44 448D8000 */ mtc1 $t5, $f16 +/* 0A5578 7F070A48 862C0062 */ lh $t4, 0x62($s1) +/* 0A557C 7F070A4C 468084A0 */ cvt.s.w $f18, $f16 +/* 0A5580 7F070A50 448C3000 */ mtc1 $t4, $f6 +/* 0A5584 7F070A54 00000000 */ nop +/* 0A5588 7F070A58 46803120 */ cvt.s.w $f4, $f6 +/* 0A558C 7F070A5C 4612A201 */ sub.s $f8, $f20, $f18 +/* 0A5590 7F070A60 46081001 */ sub.s $f0, $f2, $f8 +/* 0A5594 7F070A64 46001281 */ sub.s $f10, $f2, $f0 +/* 0A5598 7F070A68 E620005C */ swc1 $f0, 0x5c($s1) +/* 0A559C 7F070A6C 460A2400 */ add.s $f16, $f4, $f10 +/* 0A55A0 7F070A70 10000011 */ b .L7F070AB8 +/* 0A55A4 7F070A74 E6300058 */ swc1 $f16, 0x58($s1) +.L7F070A78: +/* 0A55A8 7F070A78 1000000F */ b .L7F070AB8 +/* 0A55AC 7F070A7C A2000002 */ sb $zero, 2($s0) +/* 0A55B0 7F070A80 C7B40108 */ lwc1 $f20, 0x108($sp) +.L7F070A84: +/* 0A55B4 7F070A84 02202025 */ move $a0, $s1 +/* 0A55B8 7F070A88 8FA50100 */ lw $a1, 0x100($sp) +/* 0A55BC 7F070A8C 4406A000 */ mfc1 $a2, $f20 +/* 0A55C0 7F070A90 0FC1C024 */ jal sub_GAME_7F070090 +/* 0A55C4 7F070A94 00000000 */ nop +/* 0A55C8 7F070A98 10000008 */ b .L7F070ABC +/* 0A55CC 7F070A9C 8FBF005C */ lw $ra, 0x5c($sp) +/* 0A55D0 7F070AA0 C7B40108 */ lwc1 $f20, 0x108($sp) +.L7F070AA4: +/* 0A55D4 7F070AA4 02202025 */ move $a0, $s1 +/* 0A55D8 7F070AA8 8FA50100 */ lw $a1, 0x100($sp) +/* 0A55DC 7F070AAC 4406A000 */ mfc1 $a2, $f20 +/* 0A55E0 7F070AB0 0FC1C024 */ jal sub_GAME_7F070090 +/* 0A55E4 7F070AB4 00000000 */ nop +.L7F070AB8: +/* 0A55E8 7F070AB8 8FBF005C */ lw $ra, 0x5c($sp) +.L7F070ABC: +/* 0A55EC 7F070ABC D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0A55F0 7F070AC0 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0A55F4 7F070AC4 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0A55F8 7F070AC8 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0A55FC 7F070ACC D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 0A5600 7F070AD0 D7BE0040 */ ldc1 $f30, 0x40($sp) +/* 0A5604 7F070AD4 8FB0004C */ lw $s0, 0x4c($sp) +/* 0A5608 7F070AD8 8FB10050 */ lw $s1, 0x50($sp) +/* 0A560C 7F070ADC 8FB20054 */ lw $s2, 0x54($sp) +/* 0A5610 7F070AE0 8FB30058 */ lw $s3, 0x58($sp) +/* 0A5614 7F070AE4 03E00008 */ jr $ra +/* 0A5618 7F070AE8 27BD00F8 */ addiu $sp, $sp, 0xf8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F070AEC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F070AEC +/* 0A561C 7F070AEC 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 0A5620 7F070AF0 AFBF0054 */ sw $ra, 0x54($sp) +/* 0A5624 7F070AF4 AFB10050 */ sw $s1, 0x50($sp) +/* 0A5628 7F070AF8 AFB0004C */ sw $s0, 0x4c($sp) +/* 0A562C 7F070AFC F7BE0040 */ sdc1 $f30, 0x40($sp) +/* 0A5630 7F070B00 F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 0A5634 7F070B04 F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0A5638 7F070B08 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0A563C 7F070B0C F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0A5640 7F070B10 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0A5644 7F070B14 AFA60090 */ sw $a2, 0x90($sp) +/* 0A5648 7F070B18 C4840058 */ lwc1 $f4, 0x58($a0) +/* 0A564C 7F070B1C C4920028 */ lwc1 $f18, 0x28($a0) +/* 0A5650 7F070B20 00808025 */ move $s0, $a0 +/* 0A5654 7F070B24 00A08825 */ move $s1, $a1 +/* 0A5658 7F070B28 18A0010A */ blez $a1, .L7F070F54 +/* 0A565C 7F070B2C E7A40080 */ swc1 $f4, 0x80($sp) +/* 0A5660 7F070B30 58A000E6 */ blezl $a1, .L7F070ECC +/* 0A5664 7F070B34 8FAB0090 */ lw $t3, 0x90($sp) +/* 0A5668 7F070B38 4480C000 */ mtc1 $zero, $f24 +/* 0A566C 7F070B3C 00000000 */ nop +/* 0A5670 7F070B40 C60200B0 */ lwc1 $f2, 0xb0($s0) +.L7F070B44: +/* 0A5674 7F070B44 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A5678 7F070B48 4602C03C */ c.lt.s $f24, $f2 +/* 0A567C 7F070B4C 00000000 */ nop +/* 0A5680 7F070B50 45020017 */ bc1fl .L7F070BB0 +/* 0A5684 7F070B54 C6080088 */ lwc1 $f8, 0x88($s0) +/* 0A5688 7F070B58 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 0A568C 7F070B5C 44814000 */ mtc1 $at, $f8 +/* 0A5690 7F070B60 00000000 */ nop +/* 0A5694 7F070B64 46083280 */ add.s $f10, $f6, $f8 +/* 0A5698 7F070B68 E60A00B4 */ swc1 $f10, 0xb4($s0) +/* 0A569C 7F070B6C C60C00B4 */ lwc1 $f12, 0xb4($s0) +/* 0A56A0 7F070B70 4602603C */ c.lt.s $f12, $f2 +/* 0A56A4 7F070B74 00000000 */ nop +/* 0A56A8 7F070B78 4502000A */ bc1fl .L7F070BA4 +/* 0A56AC 7F070B7C C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 0A56B0 7F070B80 C60000AC */ lwc1 $f0, 0xac($s0) +/* 0A56B4 7F070B84 C60400A8 */ lwc1 $f4, 0xa8($s0) +/* 0A56B8 7F070B88 46002181 */ sub.s $f6, $f4, $f0 +/* 0A56BC 7F070B8C 460C3202 */ mul.s $f8, $f6, $f12 +/* 0A56C0 7F070B90 46024283 */ div.s $f10, $f8, $f2 +/* 0A56C4 7F070B94 460A0100 */ add.s $f4, $f0, $f10 +/* 0A56C8 7F070B98 10000004 */ b .L7F070BAC +/* 0A56CC 7F070B9C E60400A4 */ swc1 $f4, 0xa4($s0) +/* 0A56D0 7F070BA0 C60600A8 */ lwc1 $f6, 0xa8($s0) +.L7F070BA4: +/* 0A56D4 7F070BA4 E61800B0 */ swc1 $f24, 0xb0($s0) +/* 0A56D8 7F070BA8 E60600A4 */ swc1 $f6, 0xa4($s0) +.L7F070BAC: +/* 0A56DC 7F070BAC C6080088 */ lwc1 $f8, 0x88($s0) +.L7F070BB0: +/* 0A56E0 7F070BB0 C60200A4 */ lwc1 $f2, 0xa4($s0) +/* 0A56E4 7F070BB4 4608C03C */ c.lt.s $f24, $f8 +/* 0A56E8 7F070BB8 00000000 */ nop +/* 0A56EC 7F070BBC 4502001D */ bc1fl .L7F070C34 +/* 0A56F0 7F070BC0 C60C004C */ lwc1 $f12, 0x4c($s0) +/* 0A56F4 7F070BC4 C60A008C */ lwc1 $f10, 0x8c($s0) +/* 0A56F8 7F070BC8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A56FC 7F070BCC 46025100 */ add.s $f4, $f10, $f2 +/* 0A5700 7F070BD0 E604008C */ swc1 $f4, 0x8c($s0) +/* 0A5704 7F070BD4 C60C008C */ lwc1 $f12, 0x8c($s0) +/* 0A5708 7F070BD8 460CC032 */ c.eq.s $f24, $f12 +/* 0A570C 7F070BDC 00000000 */ nop +/* 0A5710 7F070BE0 45020006 */ bc1fl .L7F070BFC +/* 0A5714 7F070BE4 C6000088 */ lwc1 $f0, 0x88($s0) +/* 0A5718 7F070BE8 44813000 */ mtc1 $at, $f6 +/* 0A571C 7F070BEC C60200A4 */ lwc1 $f2, 0xa4($s0) +/* 0A5720 7F070BF0 1000000F */ b .L7F070C30 +/* 0A5724 7F070BF4 E6060084 */ swc1 $f6, 0x84($s0) +/* 0A5728 7F070BF8 C6000088 */ lwc1 $f0, 0x88($s0) +.L7F070BFC: +/* 0A572C 7F070BFC 4600603C */ c.lt.s $f12, $f0 +/* 0A5730 7F070C00 00000000 */ nop +/* 0A5734 7F070C04 45020007 */ bc1fl .L7F070C24 +/* 0A5738 7F070C08 E6180088 */ swc1 $f24, 0x88($s0) +/* 0A573C 7F070C0C 460C0201 */ sub.s $f8, $f0, $f12 +/* 0A5740 7F070C10 C60200A4 */ lwc1 $f2, 0xa4($s0) +/* 0A5744 7F070C14 46004283 */ div.s $f10, $f8, $f0 +/* 0A5748 7F070C18 10000005 */ b .L7F070C30 +/* 0A574C 7F070C1C E60A0084 */ swc1 $f10, 0x84($s0) +/* 0A5750 7F070C20 E6180088 */ swc1 $f24, 0x88($s0) +.L7F070C24: +/* 0A5754 7F070C24 E6180084 */ swc1 $f24, 0x84($s0) +/* 0A5758 7F070C28 AE000054 */ sw $zero, 0x54($s0) +/* 0A575C 7F070C2C C60200A4 */ lwc1 $f2, 0xa4($s0) +.L7F070C30: +/* 0A5760 7F070C30 C60C004C */ lwc1 $f12, 0x4c($s0) +.L7F070C34: +/* 0A5764 7F070C34 460CC03C */ c.lt.s $f24, $f12 +/* 0A5768 7F070C38 00000000 */ nop +/* 0A576C 7F070C3C 45020017 */ bc1fl .L7F070C9C +/* 0A5770 7F070C40 C6100040 */ lwc1 $f16, 0x40($s0) +/* 0A5774 7F070C44 C6040050 */ lwc1 $f4, 0x50($s0) +/* 0A5778 7F070C48 46022180 */ add.s $f6, $f4, $f2 +/* 0A577C 7F070C4C E6060050 */ swc1 $f6, 0x50($s0) +/* 0A5780 7F070C50 C60E0050 */ lwc1 $f14, 0x50($s0) +/* 0A5784 7F070C54 460C703C */ c.lt.s $f14, $f12 +/* 0A5788 7F070C58 00000000 */ nop +/* 0A578C 7F070C5C 4502000B */ bc1fl .L7F070C8C +/* 0A5790 7F070C60 C60A0044 */ lwc1 $f10, 0x44($s0) +/* 0A5794 7F070C64 C6000048 */ lwc1 $f0, 0x48($s0) +/* 0A5798 7F070C68 C6080044 */ lwc1 $f8, 0x44($s0) +/* 0A579C 7F070C6C C60200A4 */ lwc1 $f2, 0xa4($s0) +/* 0A57A0 7F070C70 46004281 */ sub.s $f10, $f8, $f0 +/* 0A57A4 7F070C74 460E5102 */ mul.s $f4, $f10, $f14 +/* 0A57A8 7F070C78 460C2183 */ div.s $f6, $f4, $f12 +/* 0A57AC 7F070C7C 46060200 */ add.s $f8, $f0, $f6 +/* 0A57B0 7F070C80 10000005 */ b .L7F070C98 +/* 0A57B4 7F070C84 E6080040 */ swc1 $f8, 0x40($s0) +/* 0A57B8 7F070C88 C60A0044 */ lwc1 $f10, 0x44($s0) +.L7F070C8C: +/* 0A57BC 7F070C8C E618004C */ swc1 $f24, 0x4c($s0) +/* 0A57C0 7F070C90 C60200A4 */ lwc1 $f2, 0xa4($s0) +/* 0A57C4 7F070C94 E60A0040 */ swc1 $f10, 0x40($s0) +.L7F070C98: +/* 0A57C8 7F070C98 C6100040 */ lwc1 $f16, 0x40($s0) +.L7F070C9C: +/* 0A57CC 7F070C9C 8E0E0054 */ lw $t6, 0x54($s0) +/* 0A57D0 7F070CA0 46101102 */ mul.s $f4, $f2, $f16 +/* 0A57D4 7F070CA4 11C00020 */ beqz $t6, .L7F070D28 +/* 0A57D8 7F070CA8 46049480 */ add.s $f18, $f18, $f4 +/* 0A57DC 7F070CAC C60C007C */ lwc1 $f12, 0x7c($s0) +/* 0A57E0 7F070CB0 460CC03C */ c.lt.s $f24, $f12 +/* 0A57E4 7F070CB4 00000000 */ nop +/* 0A57E8 7F070CB8 45020017 */ bc1fl .L7F070D18 +/* 0A57EC 7F070CBC C6000070 */ lwc1 $f0, 0x70($s0) +/* 0A57F0 7F070CC0 C6060080 */ lwc1 $f6, 0x80($s0) +/* 0A57F4 7F070CC4 46023200 */ add.s $f8, $f6, $f2 +/* 0A57F8 7F070CC8 E6080080 */ swc1 $f8, 0x80($s0) +/* 0A57FC 7F070CCC C60E0080 */ lwc1 $f14, 0x80($s0) +/* 0A5800 7F070CD0 460C703C */ c.lt.s $f14, $f12 +/* 0A5804 7F070CD4 00000000 */ nop +/* 0A5808 7F070CD8 4502000B */ bc1fl .L7F070D08 +/* 0A580C 7F070CDC C6040074 */ lwc1 $f4, 0x74($s0) +/* 0A5810 7F070CE0 C6000078 */ lwc1 $f0, 0x78($s0) +/* 0A5814 7F070CE4 C60A0074 */ lwc1 $f10, 0x74($s0) +/* 0A5818 7F070CE8 C60200A4 */ lwc1 $f2, 0xa4($s0) +/* 0A581C 7F070CEC 46005101 */ sub.s $f4, $f10, $f0 +/* 0A5820 7F070CF0 460E2182 */ mul.s $f6, $f4, $f14 +/* 0A5824 7F070CF4 460C3203 */ div.s $f8, $f6, $f12 +/* 0A5828 7F070CF8 46080280 */ add.s $f10, $f0, $f8 +/* 0A582C 7F070CFC 10000005 */ b .L7F070D14 +/* 0A5830 7F070D00 E60A0070 */ swc1 $f10, 0x70($s0) +/* 0A5834 7F070D04 C6040074 */ lwc1 $f4, 0x74($s0) +.L7F070D08: +/* 0A5838 7F070D08 E618007C */ swc1 $f24, 0x7c($s0) +/* 0A583C 7F070D0C C60200A4 */ lwc1 $f2, 0xa4($s0) +/* 0A5840 7F070D10 E6040070 */ swc1 $f4, 0x70($s0) +.L7F070D14: +/* 0A5844 7F070D14 C6000070 */ lwc1 $f0, 0x70($s0) +.L7F070D18: +/* 0A5848 7F070D18 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 0A584C 7F070D1C 46001202 */ mul.s $f8, $f2, $f0 +/* 0A5850 7F070D20 46083280 */ add.s $f10, $f6, $f8 +/* 0A5854 7F070D24 E7AA0080 */ swc1 $f10, 0x80($sp) +.L7F070D28: +/* 0A5858 7F070D28 820F0026 */ lb $t7, 0x26($s0) +/* 0A585C 7F070D2C 51E00064 */ beql $t7, $zero, .L7F070EC0 +/* 0A5860 7F070D30 2631FFFF */ addiu $s1, $s1, -1 +/* 0A5864 7F070D34 8E180020 */ lw $t8, 0x20($s0) +/* 0A5868 7F070D38 4610C03E */ c.le.s $f24, $f16 +/* 0A586C 7F070D3C C616003C */ lwc1 $f22, 0x3c($s0) +/* 0A5870 7F070D40 97190004 */ lhu $t9, 4($t8) +/* 0A5874 7F070D44 C6020090 */ lwc1 $f2, 0x90($s0) +/* 0A5878 7F070D48 2728FFFF */ addiu $t0, $t9, -1 +/* 0A587C 7F070D4C 44882000 */ mtc1 $t0, $f4 +/* 0A5880 7F070D50 4500000C */ bc1f .L7F070D84 +/* 0A5884 7F070D54 46802020 */ cvt.s.w $f0, $f4 +/* 0A5888 7F070D58 4616C03E */ c.le.s $f24, $f22 +/* 0A588C 7F070D5C 46000506 */ mov.s $f20, $f0 +/* 0A5890 7F070D60 46001686 */ mov.s $f26, $f2 +/* 0A5894 7F070D64 45020012 */ bc1fl .L7F070DB0 +/* 0A5898 7F070D68 4610C03E */ c.le.s $f24, $f16 +/* 0A589C 7F070D6C 4600B03C */ c.lt.s $f22, $f0 +/* 0A58A0 7F070D70 00000000 */ nop +/* 0A58A4 7F070D74 4502000E */ bc1fl .L7F070DB0 +/* 0A58A8 7F070D78 4610C03E */ c.le.s $f24, $f16 +/* 0A58AC 7F070D7C 1000000B */ b .L7F070DAC +/* 0A58B0 7F070D80 4600B506 */ mov.s $f20, $f22 +.L7F070D84: +/* 0A58B4 7F070D84 4616C03E */ c.le.s $f24, $f22 +/* 0A58B8 7F070D88 46001506 */ mov.s $f20, $f2 +/* 0A58BC 7F070D8C 46000686 */ mov.s $f26, $f0 +/* 0A58C0 7F070D90 45020007 */ bc1fl .L7F070DB0 +/* 0A58C4 7F070D94 4610C03E */ c.le.s $f24, $f16 +/* 0A58C8 7F070D98 4600B03C */ c.lt.s $f22, $f0 +/* 0A58CC 7F070D9C 00000000 */ nop +/* 0A58D0 7F070DA0 45020003 */ bc1fl .L7F070DB0 +/* 0A58D4 7F070DA4 4610C03E */ c.le.s $f24, $f16 +/* 0A58D8 7F070DA8 4600B686 */ mov.s $f26, $f22 +.L7F070DAC: +/* 0A58DC 7F070DAC 4610C03E */ c.le.s $f24, $f16 +.L7F070DB0: +/* 0A58E0 7F070DB0 00000000 */ nop +/* 0A58E4 7F070DB4 45020006 */ bc1fl .L7F070DD0 +/* 0A58E8 7F070DB8 4618803C */ c.lt.s $f16, $f24 +/* 0A58EC 7F070DBC 4612A03E */ c.le.s $f20, $f18 +/* 0A58F0 7F070DC0 00000000 */ nop +/* 0A58F4 7F070DC4 4503000A */ bc1tl .L7F070DF0 +/* 0A58F8 7F070DC8 C606004C */ lwc1 $f6, 0x4c($s0) +/* 0A58FC 7F070DCC 4618803C */ c.lt.s $f16, $f24 +.L7F070DD0: +/* 0A5900 7F070DD0 00000000 */ nop +/* 0A5904 7F070DD4 4502003A */ bc1fl .L7F070EC0 +/* 0A5908 7F070DD8 2631FFFF */ addiu $s1, $s1, -1 +/* 0A590C 7F070DDC 4614903E */ c.le.s $f18, $f20 +/* 0A5910 7F070DE0 00000000 */ nop +/* 0A5914 7F070DE4 45020036 */ bc1fl .L7F070EC0 +/* 0A5918 7F070DE8 2631FFFF */ addiu $s1, $s1, -1 +/* 0A591C 7F070DEC C606004C */ lwc1 $f6, 0x4c($s0) +.L7F070DF0: +/* 0A5920 7F070DF0 C61C0044 */ lwc1 $f28, 0x44($s0) +/* 0A5924 7F070DF4 C61E0048 */ lwc1 $f30, 0x48($s0) +/* 0A5928 7F070DF8 8FA90090 */ lw $t1, 0x90($sp) +/* 0A592C 7F070DFC E7A60060 */ swc1 $f6, 0x60($sp) +/* 0A5930 7F070E00 C6080050 */ lwc1 $f8, 0x50($s0) +/* 0A5934 7F070E04 02002025 */ move $a0, $s0 +/* 0A5938 7F070E08 1120000A */ beqz $t1, .L7F070E34 +/* 0A593C 7F070E0C E7A8005C */ swc1 $f8, 0x5c($sp) +/* 0A5940 7F070E10 8E050028 */ lw $a1, 0x28($s0) +/* 0A5944 7F070E14 4406A000 */ mfc1 $a2, $f20 +/* 0A5948 7F070E18 4407C000 */ mfc1 $a3, $f24 +/* 0A594C 7F070E1C E7B20084 */ swc1 $f18, 0x84($sp) +/* 0A5950 7F070E20 E7B80010 */ swc1 $f24, 0x10($sp) +/* 0A5954 7F070E24 0FC1C07B */ jal sub_GAME_7F0701EC +/* 0A5958 7F070E28 02002025 */ move $a0, $s0 +/* 0A595C 7F070E2C 10000006 */ b .L7F070E48 +/* 0A5960 7F070E30 C7B20084 */ lwc1 $f18, 0x84($sp) +.L7F070E34: +/* 0A5964 7F070E34 4405A000 */ mfc1 $a1, $f20 +/* 0A5968 7F070E38 4406C000 */ mfc1 $a2, $f24 +/* 0A596C 7F070E3C 0FC1C024 */ jal sub_GAME_7F070090 +/* 0A5970 7F070E40 E7B20084 */ swc1 $f18, 0x84($sp) +/* 0A5974 7F070E44 C7B20084 */ lwc1 $f18, 0x84($sp) +.L7F070E48: +/* 0A5978 7F070E48 C60A0040 */ lwc1 $f10, 0x40($s0) +/* 0A597C 7F070E4C 8E050020 */ lw $a1, 0x20($s0) +/* 0A5980 7F070E50 82060024 */ lb $a2, 0x24($s0) +/* 0A5984 7F070E54 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0A5988 7F070E58 C6040094 */ lwc1 $f4, 0x94($s0) +/* 0A598C 7F070E5C 4407D000 */ mfc1 $a3, $f26 +/* 0A5990 7F070E60 E7B20084 */ swc1 $f18, 0x84($sp) +/* 0A5994 7F070E64 02002025 */ move $a0, $s0 +/* 0A5998 7F070E68 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0A599C 7F070E6C E7A40014 */ swc1 $f4, 0x14($sp) +/* 0A59A0 7F070E70 C7B20084 */ lwc1 $f18, 0x84($sp) +/* 0A59A4 7F070E74 240A0001 */ li $t2, 1 +/* 0A59A8 7F070E78 A20A0026 */ sb $t2, 0x26($s0) +/* 0A59AC 7F070E7C E616003C */ swc1 $f22, 0x3c($s0) +/* 0A59B0 7F070E80 E61C0044 */ swc1 $f28, 0x44($s0) +/* 0A59B4 7F070E84 E61E0048 */ swc1 $f30, 0x48($s0) +/* 0A59B8 7F070E88 C7A60060 */ lwc1 $f6, 0x60($sp) +/* 0A59BC 7F070E8C 4612D280 */ add.s $f10, $f26, $f18 +/* 0A59C0 7F070E90 E606004C */ swc1 $f6, 0x4c($s0) +/* 0A59C4 7F070E94 C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 0A59C8 7F070E98 E6080050 */ swc1 $f8, 0x50($s0) +/* 0A59CC 7F070E9C E7B20080 */ swc1 $f18, 0x80($sp) +/* 0A59D0 7F070EA0 8E020098 */ lw $v0, 0x98($s0) +/* 0A59D4 7F070EA4 46145481 */ sub.s $f18, $f10, $f20 +/* 0A59D8 7F070EA8 50400005 */ beql $v0, $zero, .L7F070EC0 +/* 0A59DC 7F070EAC 2631FFFF */ addiu $s1, $s1, -1 +/* 0A59E0 7F070EB0 0040F809 */ jalr $v0 +/* 0A59E4 7F070EB4 E7B20084 */ swc1 $f18, 0x84($sp) +/* 0A59E8 7F070EB8 C7B20084 */ lwc1 $f18, 0x84($sp) +/* 0A59EC 7F070EBC 2631FFFF */ addiu $s1, $s1, -1 +.L7F070EC0: +/* 0A59F0 7F070EC0 5E20FF20 */ bgtzl $s1, .L7F070B44 +/* 0A59F4 7F070EC4 C60200B0 */ lwc1 $f2, 0xb0($s0) +/* 0A59F8 7F070EC8 8FAB0090 */ lw $t3, 0x90($sp) +.L7F070ECC: +/* 0A59FC 7F070ECC 4480C000 */ mtc1 $zero, $f24 +/* 0A5A00 7F070ED0 8E020054 */ lw $v0, 0x54($s0) +/* 0A5A04 7F070ED4 11600014 */ beqz $t3, .L7F070F28 +/* 0A5A08 7F070ED8 00000000 */ nop +/* 0A5A0C 7F070EDC 1040000A */ beqz $v0, .L7F070F08 +/* 0A5A10 7F070EE0 C6000028 */ lwc1 $f0, 0x28($s0) +/* 0A5A14 7F070EE4 C7A40080 */ lwc1 $f4, 0x80($sp) +/* 0A5A18 7F070EE8 44050000 */ mfc1 $a1, $f0 +/* 0A5A1C 7F070EEC 44069000 */ mfc1 $a2, $f18 +/* 0A5A20 7F070EF0 8E070058 */ lw $a3, 0x58($s0) +/* 0A5A24 7F070EF4 02002025 */ move $a0, $s0 +/* 0A5A28 7F070EF8 0FC1C07B */ jal sub_GAME_7F0701EC +/* 0A5A2C 7F070EFC E7A40010 */ swc1 $f4, 0x10($sp) +/* 0A5A30 7F070F00 10000015 */ b .L7F070F58 +/* 0A5A34 7F070F04 8FBF0054 */ lw $ra, 0x54($sp) +.L7F070F08: +/* 0A5A38 7F070F08 44050000 */ mfc1 $a1, $f0 +/* 0A5A3C 7F070F0C 44069000 */ mfc1 $a2, $f18 +/* 0A5A40 7F070F10 4407C000 */ mfc1 $a3, $f24 +/* 0A5A44 7F070F14 02002025 */ move $a0, $s0 +/* 0A5A48 7F070F18 0FC1C07B */ jal sub_GAME_7F0701EC +/* 0A5A4C 7F070F1C E7B80010 */ swc1 $f24, 0x10($sp) +/* 0A5A50 7F070F20 1000000D */ b .L7F070F58 +/* 0A5A54 7F070F24 8FBF0054 */ lw $ra, 0x54($sp) +.L7F070F28: +/* 0A5A58 7F070F28 10400006 */ beqz $v0, .L7F070F44 +/* 0A5A5C 7F070F2C 02002025 */ move $a0, $s0 +/* 0A5A60 7F070F30 44059000 */ mfc1 $a1, $f18 +/* 0A5A64 7F070F34 0FC1C024 */ jal sub_GAME_7F070090 +/* 0A5A68 7F070F38 8FA60080 */ lw $a2, 0x80($sp) +/* 0A5A6C 7F070F3C 10000006 */ b .L7F070F58 +/* 0A5A70 7F070F40 8FBF0054 */ lw $ra, 0x54($sp) +.L7F070F44: +/* 0A5A74 7F070F44 44059000 */ mfc1 $a1, $f18 +/* 0A5A78 7F070F48 4406C000 */ mfc1 $a2, $f24 +/* 0A5A7C 7F070F4C 0FC1C024 */ jal sub_GAME_7F070090 +/* 0A5A80 7F070F50 02002025 */ move $a0, $s0 +.L7F070F54: +/* 0A5A84 7F070F54 8FBF0054 */ lw $ra, 0x54($sp) +.L7F070F58: +/* 0A5A88 7F070F58 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0A5A8C 7F070F5C D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0A5A90 7F070F60 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0A5A94 7F070F64 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0A5A98 7F070F68 D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 0A5A9C 7F070F6C D7BE0040 */ ldc1 $f30, 0x40($sp) +/* 0A5AA0 7F070F70 8FB0004C */ lw $s0, 0x4c($sp) +/* 0A5AA4 7F070F74 8FB10050 */ lw $s1, 0x50($sp) +/* 0A5AA8 7F070F78 03E00008 */ jr $ra +/* 0A5AAC 7F070F7C 27BD0088 */ addiu $sp, $sp, 0x88 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F070F80(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F070F80 +/* 0A5AB0 7F070F80 8C83000C */ lw $v1, 0xc($a0) +/* 0A5AB4 7F070F84 3C0FE700 */ lui $t7, 0xe700 +/* 0A5AB8 7F070F88 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 +/* 0A5ABC 7F070F8C 246E0008 */ addiu $t6, $v1, 8 +/* 0A5AC0 7F070F90 AC8E000C */ sw $t6, 0xc($a0) +/* 0A5AC4 7F070F94 AC600004 */ sw $zero, 4($v1) +/* 0A5AC8 7F070F98 AC6F0000 */ sw $t7, ($v1) +/* 0A5ACC 7F070F9C 8C83000C */ lw $v1, 0xc($a0) +/* 0A5AD0 7F070FA0 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 +/* 0A5AD4 7F070FA4 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 +/* 0A5AD8 7F070FA8 24780008 */ addiu $t8, $v1, 8 +/* 0A5ADC 7F070FAC AC98000C */ sw $t8, 0xc($a0) +/* 0A5AE0 7F070FB0 AC600004 */ sw $zero, 4($v1) +/* 0A5AE4 7F070FB4 AC790000 */ sw $t9, ($v1) +/* 0A5AE8 7F070FB8 8C880004 */ lw $t0, 4($a0) +/* 0A5AEC 7F070FBC 3C18FC12 */ lui $t8, (0xFC121824 >> 16) # lui $t8, 0xfc12 +/* 0A5AF0 7F070FC0 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d +/* 0A5AF4 7F070FC4 1100000B */ beqz $t0, .L7F070FF4 +/* 0A5AF8 7F070FC8 37181824 */ ori $t8, (0xFC121824 & 0xFFFF) # ori $t8, $t8, 0x1824 +/* 0A5AFC 7F070FCC 8C83000C */ lw $v1, 0xc($a0) +/* 0A5B00 7F070FD0 3C0AB900 */ lui $t2, (0xB900031D >> 16) # lui $t2, 0xb900 +/* 0A5B04 7F070FD4 3C0B0055 */ lui $t3, (0x00552078 >> 16) # lui $t3, 0x55 +/* 0A5B08 7F070FD8 24690008 */ addiu $t1, $v1, 8 +/* 0A5B0C 7F070FDC AC89000C */ sw $t1, 0xc($a0) +/* 0A5B10 7F070FE0 356B2078 */ ori $t3, (0x00552078 & 0xFFFF) # ori $t3, $t3, 0x2078 +/* 0A5B14 7F070FE4 354A031D */ ori $t2, (0xB900031D & 0xFFFF) # ori $t2, $t2, 0x31d +/* 0A5B18 7F070FE8 AC6A0000 */ sw $t2, ($v1) +/* 0A5B1C 7F070FEC 10000008 */ b .L7F071010 +/* 0A5B20 7F070FF0 AC6B0004 */ sw $t3, 4($v1) +.L7F070FF4: +/* 0A5B24 7F070FF4 8C83000C */ lw $v1, 0xc($a0) +/* 0A5B28 7F070FF8 3C0E0055 */ lui $t6, (0x00552048 >> 16) # lui $t6, 0x55 +/* 0A5B2C 7F070FFC 35CE2048 */ ori $t6, (0x00552048 & 0xFFFF) # ori $t6, $t6, 0x2048 +/* 0A5B30 7F071000 246C0008 */ addiu $t4, $v1, 8 +/* 0A5B34 7F071004 AC8C000C */ sw $t4, 0xc($a0) +/* 0A5B38 7F071008 AC6E0004 */ sw $t6, 4($v1) +/* 0A5B3C 7F07100C AC6D0000 */ sw $t5, ($v1) +.L7F071010: +/* 0A5B40 7F071010 8C83000C */ lw $v1, 0xc($a0) +/* 0A5B44 7F071014 3C19FF33 */ lui $t9, (0xFF33FFFF >> 16) # lui $t9, 0xff33 +/* 0A5B48 7F071018 3739FFFF */ ori $t9, (0xFF33FFFF & 0xFFFF) # ori $t9, $t9, 0xffff +/* 0A5B4C 7F07101C 246F0008 */ addiu $t7, $v1, 8 +/* 0A5B50 7F071020 AC8F000C */ sw $t7, 0xc($a0) +/* 0A5B54 7F071024 AC790004 */ sw $t9, 4($v1) +/* 0A5B58 7F071028 03E00008 */ jr $ra +/* 0A5B5C 7F07102C AC780000 */ sw $t8, ($v1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F071030(void) { +/* +--Copy/Paste from Doc +DisplayList Setups Depend on Object Type, Prop Guard or Gun. +These are applied to each part of an object at runtime and can be overridden. loading the next part will use these values once more. +GeometryMode is not in setup and is persistent accross parts. + + +7F072A0C Read Displaylist 18 Model Type +7F072A1C Read Displaylist 18 Model Type +7F072A24 Check model type 1 +7F072A2C Call to do model type 1 7F070F80 +7F072A40 Check model type 3 +7F072A48 Call to do model type 3 7F071030 +7F072A5C Check model type 4 +7F072A64 Call to do model type 4 7F071B44 +7F072A78 Check model type 2 +7F072A80 Call to do model type 2 7F072644 + +7F0727F8 Read Displaylist 04 Model Type + +A1 is primary = 1, secondary = 0 +Inside the T8 or whatever temporary register indicates gun or not gun (0 = gun, or UseZ = 1), for different render mode + +Bool UseZ //guns = false +Bool + + +Model Type 0: NoSetup. + type 0 Has No DL Setup and will use whaterver is currently set. + +Model Type 1: 1Cycle No Sec + E700000000000000 pipesync() + BA00140200000000 CycleType(1c) + if UseZ + B900031D00552078 SetRendermode(AA_ZB_OPA_1) //cin ain cmem amem + else + B900031D00552048 SetRendermode(AA_OPA_1) //cin ain cmem amem + end if + FC121824FF33FFFF SetCombine(MODULATERGBA) + No Secondary + +Model Type 2: 2Cycle No Sec + E700000000000000 pipesync() + BA00140200100000 CycleType(2c) + if UseZ + B900031D0C192078 SetRendermode(AA_ZB_OPA_2) // cin 0 cin 1 //colour only + else + B900031D0C192048 SetRendermode(AA_OPA_2) // cin 0 cin 1 //colour only + end if + FC26A0041F1093FF SetCombine(TRILERP, MODULATERGBA) + No Secondary +Model Type 3: GunLighting - Reduced Secondary Commands (guns) + This Type Uses Vertex Alpha for Secondary Surfaces and uses the FOG Alpha value for applying Fog/"Lighting". + Primary + E700000000000000 pipesync() + BA00140200100000 CycleType(2c) + F800000000000026 SetFogColor(0,0,0,38) + if dltype = full + if guard + FB0000005A0000FF SetEnvColor(90,0,0,255) + FC1598045FFEDBF8 SetCombine(((Texel0-Env)*ShadeA+Env) + ((Texel0-Env)*Shade+Env), + MODULATERGB_DECALA) + else if prop + FB000000FFFFFFFF SetEnvColor(255,255,255,255) + FA00000000000000 SetPrimColor(0,0,0,0) + FC26A0041F1093FB SetCombine(TRILERP, MODULATERGB_ADDPRIM_A) + endif + else + FC26A0041F1093FF SetCombine(TRILERP, MODULATERGBA) + endif + if UseZ + B900031DC4112078 SetRendermode(AA_ZB_OPA_StanFOG_2) + else + B900031DC4112048 SetRendermode(AA_OPA_StanFOG_2) //acvg + endif + + Secondary + if UseZ + B900031DC41049D8 SetRendermode(AA_Zcmp_XLU_StanFOG_2) + else + B900031DC41041C8 SetRendermode(AA_OPA_StanFOG_2)//FcBl ClrOnCvg + endif + +Model Type 4: Normal Fog/Lighting object + This Type Uses Vertex Alpha for Secondary Surfaces and uses the FOG Alpha value for applying Fog/"Lighting". + Primary + E700000000000000 pipesync() + BA00140200100000 CycleType(2c) + F800000000000026 SetFogColor(0,0,0,38) + if dltype = full + if guard + FB0000005A0000FF SetEnvColor(90,0,0,255) + FC1598045FFEDBF8 SetCombine(((Texel0-Env)*ShadeA+Env) + ((Texel0-Env)*Shade+Env), + MODULATERGB_DECALA) + else if prop + FB000000FFFFFFFF SetEnvColor(255,255,255,255) + FA00000000000000 SetPrimColor(0,0,0,0) + FC26A0041F1093FB SetCombine(TRILERP, MODULATERGB_ADDPRIM_A) + endif + else + FC26A0041F1093FF SetCombine(TRILERP, MODULATERGBA) + endif + if UseZ + B900031DC4112078 SetRendermode(AA_ZB_OPA_StanFOG_2) + else + B900031DC4112048 SetRendermode(AA_OPA_StanFOG_2) //acvg + endif + + Secondary + E700000000000000 pipesync() + BA00140200100000 CycleType(2c) + F800000000000026 SetFogColor(0,0,0,38) + if dltype = full + if guard + FB0000005A0000FF SetEnvColor(90,0,0,255) + FC1598045FFEDBF8 SetCombine(((Texel0-Env)*ShadeA+Env) + ((Texel0-Env)*Shade+Env), + MODULATERGB_DECALA) + else if prop + FB000000FFFFFFFF SetEnvColor(255,255,255,255) + FA00000000000000 SetPrimColor(0,0,0,0) + FC26A0041F1093FB SetCombine(TRILERP, MODULATERGB_ADDPRIM_A) + endif + else + FA00000000000000 SetPrimColor(0,0,0,0) + FC26A0041F1093FB SetCombine(TRILERP, MODULATERGB_ADDPRIM_A) + endif + if UseZ + B900031DC41049D8 SetRendermode(AA_Zcmp_XLU_StanFOG_2) + else + B900031DC41041C8 SetRendermode(AA_OPA_StanFOG_2)//FcBl ClrOnCvg + endif +*/ +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F071030 /*DisplayListSetup(obj)*/ +/* 0A5B60 7F071030 8C820030 */ lw $v0, 0x30($a0) /*a0=obj?*/ +/* 0A5B64 7F071034 24010007 */ li $at, 7 +/* 0A5B68 7F071038 5441006C */ bnel $v0, $at, .L7F0711EC /*obj.ModelType <= 7? */ +/* 0A5B6C 7F07103C 24010008 */ li $at, 8 +/* 0A5B70 7F071040 50A00054 */ beql $a1, $zero, .L7F071194 /*a1 = */ +/* 0A5B74 7F071044 8C990004 */ lw $t9, 4($a0) +/* 0A5B78 7F071048 8C82000C */ lw $v0, 0xc($a0) +/* 0A5B7C 7F07104C 3C0FE700 */ lui $t7, 0xe700 +/* 0A5B80 7F071050 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 +/* 0A5B84 7F071054 244E0008 */ addiu $t6, $v0, 8 +/* 0A5B88 7F071058 AC8E000C */ sw $t6, 0xc($a0) +/* 0A5B8C 7F07105C AC400004 */ sw $zero, 4($v0) +/* 0A5B90 7F071060 AC4F0000 */ sw $t7, ($v0) +/* 0A5B94 7F071064 8C82000C */ lw $v0, 0xc($a0) +/* 0A5B98 7F071068 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 /*2Cycle*/ +/* 0A5B9C 7F07106C 3C0C0010 */ lui $t4, 0x10 +/* 0A5BA0 7F071070 24580008 */ addiu $t8, $v0, 8 +/* 0A5BA4 7F071074 AC98000C */ sw $t8, 0xc($a0) +/* 0A5BA8 7F071078 AC4C0004 */ sw $t4, 4($v0) +/* 0A5BAC 7F07107C AC590000 */ sw $t9, ($v0) +/* 0A5BB0 7F071080 8C8A0038 */ lw $t2, 0x38($a0) +/* 0A5BB4 7F071084 8C82000C */ lw $v0, 0xc($a0) +/* 0A5BB8 7F071088 3C0FF800 */ lui $t7, 0xf800 +/* 0A5BBC 7F07108C 000A4402 */ srl $t0, $t2, 0x10 +/* 0A5BC0 7F071090 244E0008 */ addiu $t6, $v0, 8 +/* 0A5BC4 7F071094 AC8E000C */ sw $t6, 0xc($a0) +/* 0A5BC8 7F071098 310C00FF */ andi $t4, $t0, 0xff +/* 0A5BCC 7F07109C 000AC602 */ srl $t8, $t2, 0x18 +/* 0A5BD0 7F0710A0 0018CE00 */ sll $t9, $t8, 0x18 +/* 0A5BD4 7F0710A4 000C6C00 */ sll $t5, $t4, 0x10 +/* 0A5BD8 7F0710A8 000A4A02 */ srl $t1, $t2, 8 +/* 0A5BDC 7F0710AC AC4F0000 */ sw $t7, ($v0) +/* 0A5BE0 7F0710B0 312F00FF */ andi $t7, $t1, 0xff +/* 0A5BE4 7F0710B4 032D7025 */ or $t6, $t9, $t5 +/* 0A5BE8 7F0710B8 000FC200 */ sll $t8, $t7, 8 +/* 0A5BEC 7F0710BC 01D86025 */ or $t4, $t6, $t8 +/* 0A5BF0 7F0710C0 315900FF */ andi $t9, $t2, 0xff +/* 0A5BF4 7F0710C4 01996825 */ or $t5, $t4, $t9 +/* 0A5BF8 7F0710C8 AC4D0004 */ sw $t5, 4($v0) +/* 0A5BFC 7F0710CC 8C830034 */ lw $v1, 0x34($a0) +/* 0A5C00 7F0710D0 8C82000C */ lw $v0, 0xc($a0) +/* 0A5C04 7F0710D4 3C0EFB00 */ lui $t6, 0xfb00 +/* 0A5C08 7F0710D8 00034402 */ srl $t0, $v1, 0x10 +/* 0A5C0C 7F0710DC 244F0008 */ addiu $t7, $v0, 8 +/* 0A5C10 7F0710E0 AC8F000C */ sw $t7, 0xc($a0) +/* 0A5C14 7F0710E4 311900FF */ andi $t9, $t0, 0xff +/* 0A5C18 7F0710E8 00033E02 */ srl $a3, $v1, 0x18 +/* 0A5C1C 7F0710EC 00034A02 */ srl $t1, $v1, 8 +/* 0A5C20 7F0710F0 AC4E0000 */ sw $t6, ($v0) +/* 0A5C24 7F0710F4 312E00FF */ andi $t6, $t1, 0xff +/* 0A5C28 7F0710F8 00076600 */ sll $t4, $a3, 0x18 +/* 0A5C2C 7F0710FC 00196C00 */ sll $t5, $t9, 0x10 +/* 0A5C30 7F071100 018D7825 */ or $t7, $t4, $t5 +/* 0A5C34 7F071104 000EC200 */ sll $t8, $t6, 8 +/* 0A5C38 7F071108 01F8C825 */ or $t9, $t7, $t8 +/* 0A5C3C 7F07110C 372C00FF */ ori $t4, $t9, 0xff +/* 0A5C40 7F071110 AC4C0004 */ sw $t4, 4($v0) +/* 0A5C44 7F071114 8C82000C */ lw $v0, 0xc($a0) +/* 0A5C48 7F071118 3C0F5FFE */ lui $t7, (0x5FFEDBF8 >> 16) # lui $t7, 0x5ffe /*fulldl guard */ +/* 0A5C4C 7F07111C 3C0EFC15 */ lui $t6, (0xFC159804 >> 16) # lui $t6, 0xfc15 +/* 0A5C50 7F071120 244D0008 */ addiu $t5, $v0, 8 +/* 0A5C54 7F071124 AC8D000C */ sw $t5, 0xc($a0) +/* 0A5C58 7F071128 35CE9804 */ ori $t6, (0xFC159804 & 0xFFFF) # ori $t6, $t6, 0x9804 +/* 0A5C5C 7F07112C 35EFDBF8 */ ori $t7, (0x5FFEDBF8 & 0xFFFF) # ori $t7, $t7, 0xdbf8 +/* 0A5C60 7F071130 AC4F0004 */ sw $t7, 4($v0) +/* 0A5C64 7F071134 AC4E0000 */ sw $t6, ($v0) +/* 0A5C68 7F071138 8C980004 */ lw $t8, 4($a0) +/* 0A5C6C 7F07113C 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 0A5C70 7F071140 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 +/* 0A5C74 7F071144 1300000A */ beqz $t8, .L7F071170 +/* 0A5C78 7F071148 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 0A5C7C 7F07114C 8C82000C */ lw $v0, 0xc($a0) +/* 0A5C80 7F071150 3C0DC411 */ lui $t5, (0xC4112078 >> 16) # lui $t5, 0xc411 +/* 0A5C84 7F071154 35AD2078 */ ori $t5, (0xC4112078 & 0xFFFF) # ori $t5, $t5, 0x2078 +/* 0A5C88 7F071158 24590008 */ addiu $t9, $v0, 8 +/* 0A5C8C 7F07115C AC99000C */ sw $t9, 0xc($a0) +/* 0A5C90 7F071160 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d +/* 0A5C94 7F071164 AC4C0000 */ sw $t4, ($v0) +/* 0A5C98 7F071168 03E00008 */ jr $ra +/* 0A5C9C 7F07116C AC4D0004 */ sw $t5, 4($v0) + +.L7F071170: +/* 0A5CA0 7F071170 8C82000C */ lw $v0, 0xc($a0) +/* 0A5CA4 7F071174 3C18C411 */ lui $t8, (0xC4112048 >> 16) # lui $t8, 0xc411 +/* 0A5CA8 7F071178 37182048 */ ori $t8, (0xC4112048 & 0xFFFF) # ori $t8, $t8, 0x2048 +/* 0A5CAC 7F07117C 244E0008 */ addiu $t6, $v0, 8 +/* 0A5CB0 7F071180 AC8E000C */ sw $t6, 0xc($a0) +/* 0A5CB4 7F071184 AC580004 */ sw $t8, 4($v0) +/* 0A5CB8 7F071188 03E00008 */ jr $ra +/* 0A5CBC 7F07118C AC4F0000 */ sw $t7, ($v0) + +/* 0A5CC0 7F071190 8C990004 */ lw $t9, 4($a0) +.L7F071194: /*UseZ - Transparent Gun Rendermode*/ +/* 0A5CC4 7F071194 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 +/* 0A5CC8 7F071198 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 +/* 0A5CCC 7F07119C 1320000A */ beqz $t9, .L7F0711C8 +/* 0A5CD0 7F0711A0 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d +/* 0A5CD4 7F0711A4 8C82000C */ lw $v0, 0xc($a0) +/* 0A5CD8 7F0711A8 3C0EC410 */ lui $t6, (0xC41049D8 >> 16) # lui $t6, 0xc410 +/* 0A5CDC 7F0711AC 35CE49D8 */ ori $t6, (0xC41049D8 & 0xFFFF) # ori $t6, $t6, 0x49d8 +/* 0A5CE0 7F0711B0 244C0008 */ addiu $t4, $v0, 8 +/* 0A5CE4 7F0711B4 AC8C000C */ sw $t4, 0xc($a0) +/* 0A5CE8 7F0711B8 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d +/* 0A5CEC 7F0711BC AC4D0000 */ sw $t5, ($v0) +/* 0A5CF0 7F0711C0 03E00008 */ jr $ra +/* 0A5CF4 7F0711C4 AC4E0004 */ sw $t6, 4($v0) + +.L7F0711C8: /*not UseZ - Opaque Gun Rendermode*/ +/* 0A5CF8 7F0711C8 8C82000C */ lw $v0, 0xc($a0) +/* 0A5CFC 7F0711CC 3C19C410 */ lui $t9, (0xC41041C8 >> 16) # lui $t9, 0xc410 +/* 0A5D00 7F0711D0 373941C8 */ ori $t9, (0xC41041C8 & 0xFFFF) # ori $t9, $t9, 0x41c8 +/* 0A5D04 7F0711D4 244F0008 */ addiu $t7, $v0, 8 +/* 0A5D08 7F0711D8 AC8F000C */ sw $t7, 0xc($a0) +/* 0A5D0C 7F0711DC AC590004 */ sw $t9, 4($v0) +/* 0A5D10 7F0711E0 03E00008 */ jr $ra +/* 0A5D14 7F0711E4 AC580000 */ sw $t8, ($v0) + +/* 0A5D18 7F0711E8 24010008 */ li $at, 8 +.L7F0711EC: +/* 0A5D1C 7F0711EC 54410057 */ bnel $v0, $at, .L7F07134C +/* 0A5D20 7F0711F0 24010009 */ li $at, 9 +/* 0A5D24 7F0711F4 10A00251 */ beqz $a1, .L7F071B3C +/* 0A5D28 7F0711F8 00000000 */ nop +/* 0A5D2C 7F0711FC 8C82000C */ lw $v0, 0xc($a0) +/* 0A5D30 7F071200 3C0DE700 */ lui $t5, 0xe700 +/* 0A5D34 7F071204 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00 +/* 0A5D38 7F071208 244C0008 */ addiu $t4, $v0, 8 +/* 0A5D3C 7F07120C AC8C000C */ sw $t4, 0xc($a0) +/* 0A5D40 7F071210 AC400004 */ sw $zero, 4($v0) +/* 0A5D44 7F071214 AC4D0000 */ sw $t5, ($v0) +/* 0A5D48 7F071218 8C82000C */ lw $v0, 0xc($a0) +/* 0A5D4C 7F07121C 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402 +/* 0A5D50 7F071220 3C180010 */ lui $t8, 0x10 +/* 0A5D54 7F071224 244E0008 */ addiu $t6, $v0, 8 +/* 0A5D58 7F071228 AC8E000C */ sw $t6, 0xc($a0) +/* 0A5D5C 7F07122C AC580004 */ sw $t8, 4($v0) /*add to t7 = */ +/* 0A5D60 7F071230 AC4F0000 */ sw $t7, ($v0) /*0xBA00140200000010 2cycle*/ +/* 0A5D64 7F071234 8C8A0038 */ lw $t2, 0x38($a0) +/* 0A5D68 7F071238 8C82000C */ lw $v0, 0xc($a0) +/* 0A5D6C 7F07123C 3C0DF800 */ lui $t5, 0xf800 /*fogcolour*/ +/* 0A5D70 7F071240 000A4402 */ srl $t0, $t2, 0x10 +/* 0A5D74 7F071244 244C0008 */ addiu $t4, $v0, 8 +/* 0A5D78 7F071248 AC8C000C */ sw $t4, 0xc($a0) +/* 0A5D7C 7F07124C 311800FF */ andi $t8, $t0, 0xff +/* 0A5D80 7F071250 000A7602 */ srl $t6, $t2, 0x18 +/* 0A5D84 7F071254 000E7E00 */ sll $t7, $t6, 0x18 +/* 0A5D88 7F071258 0018CC00 */ sll $t9, $t8, 0x10 +/* 0A5D8C 7F07125C 000A4A02 */ srl $t1, $t2, 8 +/* 0A5D90 7F071260 AC4D0000 */ sw $t5, ($v0) /*black*/ +/* 0A5D94 7F071264 312D00FF */ andi $t5, $t1, 0xff +/* 0A5D98 7F071268 01F96025 */ or $t4, $t7, $t9 +/* 0A5D9C 7F07126C 000D7200 */ sll $t6, $t5, 8 +/* 0A5DA0 7F071270 018EC025 */ or $t8, $t4, $t6 +/* 0A5DA4 7F071274 314F00FF */ andi $t7, $t2, 0xff +/* 0A5DA8 7F071278 030FC825 */ or $t9, $t8, $t7 +/* 0A5DAC 7F07127C AC590004 */ sw $t9, 4($v0) +/* 0A5DB0 7F071280 8C8A0034 */ lw $t2, 0x34($a0) +/* 0A5DB4 7F071284 8C82000C */ lw $v0, 0xc($a0) +/* 0A5DB8 7F071288 3C0EFB00 */ lui $t6, 0xfb00 /*envcolour*/ +/* 0A5DBC 7F07128C 000A4402 */ srl $t0, $t2, 0x10 +/* 0A5DC0 7F071290 244C0008 */ addiu $t4, $v0, 8 +/* 0A5DC4 7F071294 AC8C000C */ sw $t4, 0xc($a0) +/* 0A5DC8 7F071298 311900FF */ andi $t9, $t0, 0xff +/* 0A5DCC 7F07129C 000AC602 */ srl $t8, $t2, 0x18 +/* 0A5DD0 7F0712A0 00187E00 */ sll $t7, $t8, 0x18 +/* 0A5DD4 7F0712A4 00196C00 */ sll $t5, $t9, 0x10 +/* 0A5DD8 7F0712A8 000A4A02 */ srl $t1, $t2, 8 +/* 0A5DDC 7F0712AC AC4E0000 */ sw $t6, ($v0) /*black*/ +/* 0A5DE0 7F0712B0 312E00FF */ andi $t6, $t1, 0xff +/* 0A5DE4 7F0712B4 01ED6025 */ or $t4, $t7, $t5 +/* 0A5DE8 7F0712B8 000EC200 */ sll $t8, $t6, 8 +/* 0A5DEC 7F0712BC 0198C825 */ or $t9, $t4, $t8 +/* 0A5DF0 7F0712C0 314F00FF */ andi $t7, $t2, 0xff +/* 0A5DF4 7F0712C4 032F6825 */ or $t5, $t9, $t7 +/* 0A5DF8 7F0712C8 AC4D0004 */ sw $t5, 4($v0) +/* 0A5DFC 7F0712CC 8C82000C */ lw $v0, 0xc($a0) +/* 0A5E00 7F0712D0 3C185FFE */ lui $t8, (0x5FFEFFF8 >> 16) # lui $t8, 0x5ffe +/* 0A5E04 7F0712D4 3C0CFC15 */ lui $t4, (0xFC159A04 >> 16) # lui $t4, 0xfc15 +/* 0A5E08 7F0712D8 244E0008 */ addiu $t6, $v0, 8 +/* 0A5E0C 7F0712DC AC8E000C */ sw $t6, 0xc($a0) +/* 0A5E10 7F0712E0 358C9A04 */ ori $t4, (0xFC159A04 & 0xFFFF) # ori $t4, $t4, 0x9a04 +/* 0A5E14 7F0712E4 3718FFF8 */ ori $t8, (0x5FFEFFF8 & 0xFFFF) # ori $t8, $t8, 0xfff8 +/* 0A5E18 7F0712E8 AC580004 */ sw $t8, 4($v0) +/* 0A5E1C 7F0712EC AC4C0000 */ sw $t4, ($v0) +/* 0A5E20 7F0712F0 8C990004 */ lw $t9, 4($a0) +/* 0A5E24 7F0712F4 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 +/* 0A5E28 7F0712F8 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 +/* 0A5E2C 7F0712FC 1320000A */ beqz $t9, .L7F071328 +/* 0A5E30 7F071300 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d +/* 0A5E34 7F071304 8C82000C */ lw $v0, 0xc($a0) +/* 0A5E38 7F071308 3C0EC410 */ lui $t6, (0xC41049D8 >> 16) # lui $t6, 0xc410 +/* 0A5E3C 7F07130C 35CE49D8 */ ori $t6, (0xC41049D8 & 0xFFFF) # ori $t6, $t6, 0x49d8 +/* 0A5E40 7F071310 244F0008 */ addiu $t7, $v0, 8 +/* 0A5E44 7F071314 AC8F000C */ sw $t7, 0xc($a0) +/* 0A5E48 7F071318 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d /*Transparent Gun Rendermode Z*/ +/* 0A5E4C 7F07131C AC4D0000 */ sw $t5, ($v0) +/* 0A5E50 7F071320 03E00008 */ jr $ra +/* 0A5E54 7F071324 AC4E0004 */ sw $t6, 4($v0) + +.L7F071328: +/* 0A5E58 7F071328 8C82000C */ lw $v0, 0xc($a0) +/* 0A5E5C 7F07132C 3C19C410 */ lui $t9, (0xC41041C8 >> 16) # lui $t9, 0xc410 +/* 0A5E60 7F071330 373941C8 */ ori $t9, (0xC41041C8 & 0xFFFF) # ori $t9, $t9, 0x41c8 /*transparent Gun rendermode NoZ*/ +/* 0A5E64 7F071334 244C0008 */ addiu $t4, $v0, 8 +/* 0A5E68 7F071338 AC8C000C */ sw $t4, 0xc($a0) +/* 0A5E6C 7F07133C AC590004 */ sw $t9, 4($v0) +/* 0A5E70 7F071340 03E00008 */ jr $ra +/* 0A5E74 7F071344 AC580000 */ sw $t8, ($v0) + +/* 0A5E78 7F071348 24010009 */ li $at, 9 +.L7F07134C: +/* 0A5E7C 7F07134C 544100DE */ bnel $v0, $at, .L7F0716C8 +/* 0A5E80 7F071350 24010004 */ li $at, 4 +/* 0A5E84 7F071354 8C8F0034 */ lw $t7, 0x34($a0) +/* 0A5E88 7F071358 31ED00FF */ andi $t5, $t7, 0xff +/* 0A5E8C 7F07135C 15A00068 */ bnez $t5, .L7F071500 +/* 0A5E90 7F071360 00000000 */ nop +/* 0A5E94 7F071364 10A00050 */ beqz $a1, .L7F0714A8 +/* 0A5E98 7F071368 3C18E700 */ lui $t8, 0xe700 +/* 0A5E9C 7F07136C 8C82000C */ lw $v0, 0xc($a0) +/* 0A5EA0 7F071370 8C880038 */ lw $t0, 0x38($a0) +/* 0A5EA4 7F071374 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00 +/* 0A5EA8 7F071378 244C0008 */ addiu $t4, $v0, 8 +/* 0A5EAC 7F07137C AC8C000C */ sw $t4, 0xc($a0) +/* 0A5EB0 7F071380 AC400004 */ sw $zero, 4($v0) +/* 0A5EB4 7F071384 AC580000 */ sw $t8, ($v0) +/* 0A5EB8 7F071388 8C82000C */ lw $v0, 0xc($a0) +/* 0A5EBC 7F07138C 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402 +/* 0A5EC0 7F071390 3C0D0010 */ lui $t5, 0x10 +/* 0A5EC4 7F071394 24590008 */ addiu $t9, $v0, 8 +/* 0A5EC8 7F071398 AC99000C */ sw $t9, 0xc($a0) +/* 0A5ECC 7F07139C AC4D0004 */ sw $t5, 4($v0) /*add to t4 =*/ +/* 0A5ED0 7F0713A0 AC4F0000 */ sw $t7, ($v0) /*2cycle*/ +/* 0A5ED4 7F0713A4 8C82000C */ lw $v0, 0xc($a0) +/* 0A5ED8 7F0713A8 00083402 */ srl $a2, $t0, 0x10 +/* 0A5EDC 7F0713AC 30CF00FF */ andi $t7, $a2, 0xff +/* 0A5EE0 7F0713B0 244E0008 */ addiu $t6, $v0, 8 +/* 0A5EE4 7F0713B4 AC8E000C */ sw $t6, 0xc($a0) +/* 0A5EE8 7F0713B8 3C0CF800 */ lui $t4, 0xf800 /*fogcolour*/ +/* 0A5EEC 7F0713BC 00082E02 */ srl $a1, $t0, 0x18 +/* 0A5EF0 7F0713C0 0005CE00 */ sll $t9, $a1, 0x18 +/* 0A5EF4 7F0713C4 000F6C00 */ sll $t5, $t7, 0x10 +/* 0A5EF8 7F0713C8 00083A02 */ srl $a3, $t0, 8 +/* 0A5EFC 7F0713CC AC4C0000 */ sw $t4, ($v0) /*black*/ +/* 0A5F00 7F0713D0 30EC00FF */ andi $t4, $a3, 0xff +/* 0A5F04 7F0713D4 032D7025 */ or $t6, $t9, $t5 +/* 0A5F08 7F0713D8 000CC200 */ sll $t8, $t4, 8 +/* 0A5F0C 7F0713DC 01D87825 */ or $t7, $t6, $t8 +/* 0A5F10 7F0713E0 311900FF */ andi $t9, $t0, 0xff +/* 0A5F14 7F0713E4 01F96825 */ or $t5, $t7, $t9 +/* 0A5F18 7F0713E8 AC4D0004 */ sw $t5, 4($v0) +/* 0A5F1C 7F0713EC 8C82000C */ lw $v0, 0xc($a0) +/* 0A5F20 7F0713F0 2418FFFF */ li $t8, -1 +/* 0A5F24 7F0713F4 3C0EFB00 */ lui $t6, 0xfb00 /*envcolour*/ +/* 0A5F28 7F0713F8 244C0008 */ addiu $t4, $v0, 8 +/* 0A5F2C 7F0713FC AC8C000C */ sw $t4, 0xc($a0) +/* 0A5F30 7F071400 AC580004 */ sw $t8, 4($v0) +/* 0A5F34 7F071404 AC4E0000 */ sw $t6, ($v0) /*black*/ +/* 0A5F38 7F071408 8C82000C */ lw $v0, 0xc($a0) +/* 0A5F3C 7F07140C 3C19FA00 */ lui $t9, 0xfa00 +/* 0A5F40 7F071410 244F0008 */ addiu $t7, $v0, 8 +/* 0A5F44 7F071414 AC8F000C */ sw $t7, 0xc($a0) +/* 0A5F48 7F071418 AC590000 */ sw $t9, ($v0) +/* 0A5F4C 7F07141C 8C8D0034 */ lw $t5, 0x34($a0) +/* 0A5F50 7F071420 3C19FC26 */ lui $t9, (0xFC26A004 >> 16) # lui $t9, 0xfc26 +/* 0A5F54 7F071424 3739A004 */ ori $t9, (0xFC26A004 & 0xFFFF) # ori $t9, $t9, 0xa004 /*prop combiner*/ +/* 0A5F58 7F071428 000D7202 */ srl $t6, $t5, 8 +/* 0A5F5C 7F07142C 31D800FF */ andi $t8, $t6, 0xff +/* 0A5F60 7F071430 AC580004 */ sw $t8, 4($v0) +/* 0A5F64 7F071434 8C82000C */ lw $v0, 0xc($a0) +/* 0A5F68 7F071438 3C0D1F10 */ lui $t5, (0x1F1093FB >> 16) # lui $t5, 0x1f10 +/* 0A5F6C 7F07143C 35AD93FB */ ori $t5, (0x1F1093FB & 0xFFFF) # ori $t5, $t5, 0x93fb +/* 0A5F70 7F071440 244F0008 */ addiu $t7, $v0, 8 +/* 0A5F74 7F071444 AC8F000C */ sw $t7, 0xc($a0) +/* 0A5F78 7F071448 AC4D0004 */ sw $t5, 4($v0) +/* 0A5F7C 7F07144C AC590000 */ sw $t9, ($v0) +/* 0A5F80 7F071450 8C8C0004 */ lw $t4, 4($a0) +/* 0A5F84 7F071454 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 +/* 0A5F88 7F071458 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 +/* 0A5F8C 7F07145C 1180000A */ beqz $t4, .L7F071488 +/* 0A5F90 7F071460 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d +/* 0A5F94 7F071464 8C82000C */ lw $v0, 0xc($a0) +/* 0A5F98 7F071468 3C0FC411 */ lui $t7, (0xC4112078 >> 16) # lui $t7, 0xc411 +/* 0A5F9C 7F07146C 35EF2078 */ ori $t7, (0xC4112078 & 0xFFFF) # ori $t7, $t7, 0x2078 /*primary prop useZ rendermode*/ +/* 0A5FA0 7F071470 244E0008 */ addiu $t6, $v0, 8 +/* 0A5FA4 7F071474 AC8E000C */ sw $t6, 0xc($a0) +/* 0A5FA8 7F071478 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d +/* 0A5FAC 7F07147C AC580000 */ sw $t8, ($v0) +/* 0A5FB0 7F071480 03E00008 */ jr $ra +/* 0A5FB4 7F071484 AC4F0004 */ sw $t7, 4($v0) + +.L7F071488: /*Not UseZ*/ +/* 0A5FB8 7F071488 8C82000C */ lw $v0, 0xc($a0) +/* 0A5FBC 7F07148C 3C0CC411 */ lui $t4, (0xC4112048 >> 16) # lui $t4, 0xc411 +/* 0A5FC0 7F071490 358C2048 */ ori $t4, (0xC4112048 & 0xFFFF) # ori $t4, $t4, 0x2048 /*primary prop noz rendermode*/ +/* 0A5FC4 7F071494 24590008 */ addiu $t9, $v0, 8 +/* 0A5FC8 7F071498 AC99000C */ sw $t9, 0xc($a0) +/* 0A5FCC 7F07149C AC4C0004 */ sw $t4, 4($v0) +/* 0A5FD0 7F0714A0 03E00008 */ jr $ra +/* 0A5FD4 7F0714A4 AC4D0000 */ sw $t5, ($v0) + +.L7F0714A8: /*sec UseZ*/ +/* 0A5FD8 7F0714A8 8C8E0004 */ lw $t6, 4($a0) +/* 0A5FDC 7F0714AC 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 +/* 0A5FE0 7F0714B0 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 0A5FE4 7F0714B4 11C0000A */ beqz $t6, .L7F0714E0 +/* 0A5FE8 7F0714B8 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d +/* 0A5FEC 7F0714BC 8C82000C */ lw $v0, 0xc($a0) +/* 0A5FF0 7F0714C0 3C19C410 */ lui $t9, (0xC41049D8 >> 16) # lui $t9, 0xc410 +/* 0A5FF4 7F0714C4 373949D8 */ ori $t9, (0xC41049D8 & 0xFFFF) # ori $t9, $t9, 0x49d8 +/* 0A5FF8 7F0714C8 24580008 */ addiu $t8, $v0, 8 +/* 0A5FFC 7F0714CC AC98000C */ sw $t8, 0xc($a0) +/* 0A6000 7F0714D0 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 0A6004 7F0714D4 AC4F0000 */ sw $t7, ($v0) +/* 0A6008 7F0714D8 03E00008 */ jr $ra +/* 0A600C 7F0714DC AC590004 */ sw $t9, 4($v0) + +.L7F0714E0: /*Sec Not UseZ*/ +/* 0A6010 7F0714E0 8C82000C */ lw $v0, 0xc($a0) +/* 0A6014 7F0714E4 3C0EC410 */ lui $t6, (0xC41041C8 >> 16) # lui $t6, 0xc410 +/* 0A6018 7F0714E8 35CE41C8 */ ori $t6, (0xC41041C8 & 0xFFFF) # ori $t6, $t6, 0x41c8 +/* 0A601C 7F0714EC 244D0008 */ addiu $t5, $v0, 8 +/* 0A6020 7F0714F0 AC8D000C */ sw $t5, 0xc($a0) +/* 0A6024 7F0714F4 AC4E0004 */ sw $t6, 4($v0) +/* 0A6028 7F0714F8 03E00008 */ jr $ra +/* 0A602C 7F0714FC AC4C0000 */ sw $t4, ($v0) + +.L7F071500: +/* 0A6030 7F071500 10A00048 */ beqz $a1, .L7F071624 +/* 0A6034 7F071504 3C19E700 */ lui $t9, 0xe700 +/* 0A6038 7F071508 8C82000C */ lw $v0, 0xc($a0) +/* 0A603C 7F07150C 8C880038 */ lw $t0, 0x38($a0) +/* 0A6040 7F071510 3C0CBA00 */ lui $t4, (0xBA001402 >> 16) # lui $t4, 0xba00 +/* 0A6044 7F071514 244F0008 */ addiu $t7, $v0, 8 +/* 0A6048 7F071518 AC8F000C */ sw $t7, 0xc($a0) +/* 0A604C 7F07151C AC400004 */ sw $zero, 4($v0) +/* 0A6050 7F071520 AC590000 */ sw $t9, ($v0) +/* 0A6054 7F071524 8C82000C */ lw $v0, 0xc($a0) +/* 0A6058 7F071528 358C1402 */ ori $t4, (0xBA001402 & 0xFFFF) # ori $t4, $t4, 0x1402 +/* 0A605C 7F07152C 3C0E0010 */ lui $t6, 0x10 /*add to t4 = */ +/* 0A6060 7F071530 244D0008 */ addiu $t5, $v0, 8 +/* 0A6064 7F071534 AC8D000C */ sw $t5, 0xc($a0) +/* 0A6068 7F071538 AC4E0004 */ sw $t6, 4($v0) +/* 0A606C 7F07153C AC4C0000 */ sw $t4, ($v0) /*2cycle*/ +/* 0A6070 7F071540 8C82000C */ lw $v0, 0xc($a0) +/* 0A6074 7F071544 00083402 */ srl $a2, $t0, 0x10 +/* 0A6078 7F071548 30CC00FF */ andi $t4, $a2, 0xff +/* 0A607C 7F07154C 24580008 */ addiu $t8, $v0, 8 +/* 0A6080 7F071550 AC98000C */ sw $t8, 0xc($a0) +/* 0A6084 7F071554 3C0FF800 */ lui $t7, 0xf800 +/* 0A6088 7F071558 00082E02 */ srl $a1, $t0, 0x18 +/* 0A608C 7F07155C 00056E00 */ sll $t5, $a1, 0x18 +/* 0A6090 7F071560 000C7400 */ sll $t6, $t4, 0x10 +/* 0A6094 7F071564 00083A02 */ srl $a3, $t0, 8 +/* 0A6098 7F071568 AC4F0000 */ sw $t7, ($v0) +/* 0A609C 7F07156C 30EF00FF */ andi $t7, $a3, 0xff +/* 0A60A0 7F071570 01AEC025 */ or $t8, $t5, $t6 +/* 0A60A4 7F071574 000FCA00 */ sll $t9, $t7, 8 +/* 0A60A8 7F071578 03196025 */ or $t4, $t8, $t9 +/* 0A60AC 7F07157C 310D00FF */ andi $t5, $t0, 0xff +/* 0A60B0 7F071580 018D7025 */ or $t6, $t4, $t5 +/* 0A60B4 7F071584 AC4E0004 */ sw $t6, 4($v0) +/* 0A60B8 7F071588 8C82000C */ lw $v0, 0xc($a0) +/* 0A60BC 7F07158C 3C18FB00 */ lui $t8, 0xfb00 +/* 0A60C0 7F071590 244F0008 */ addiu $t7, $v0, 8 +/* 0A60C4 7F071594 AC8F000C */ sw $t7, 0xc($a0) +/* 0A60C8 7F071598 AC580000 */ sw $t8, ($v0) +/* 0A60CC 7F07159C 8C8C0034 */ lw $t4, 0x34($a0) +/* 0A60D0 7F0715A0 3C181FFC */ lui $t8, (0x1FFCFBF8 >> 16) # lui $t8, 0x1ffc +/* 0A60D4 7F0715A4 3C0FFC26 */ lui $t7, (0xFC26E804 >> 16) # lui $t7, 0xfc26 +/* 0A60D8 7F0715A8 318D00FF */ andi $t5, $t4, 0xff +/* 0A60DC 7F0715AC AC4D0004 */ sw $t5, 4($v0) +/* 0A60E0 7F0715B0 8C82000C */ lw $v0, 0xc($a0) +/* 0A60E4 7F0715B4 35EFE804 */ ori $t7, (0xFC26E804 & 0xFFFF) # ori $t7, $t7, 0xe804 +/* 0A60E8 7F0715B8 3718FBF8 */ ori $t8, (0x1FFCFBF8 & 0xFFFF) # ori $t8, $t8, 0xfbf8 +/* 0A60EC 7F0715BC 244E0008 */ addiu $t6, $v0, 8 +/* 0A60F0 7F0715C0 AC8E000C */ sw $t6, 0xc($a0) +/* 0A60F4 7F0715C4 AC580004 */ sw $t8, 4($v0) +/* 0A60F8 7F0715C8 AC4F0000 */ sw $t7, ($v0) +/* 0A60FC 7F0715CC 8C990004 */ lw $t9, 4($a0) +/* 0A6100 7F0715D0 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 +/* 0A6104 7F0715D4 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 +/* 0A6108 7F0715D8 1320000A */ beqz $t9, .L7F071604 +/* 0A610C 7F0715DC 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d +/* 0A6110 7F0715E0 8C82000C */ lw $v0, 0xc($a0) +/* 0A6114 7F0715E4 3C0EC411 */ lui $t6, (0xC4113078 >> 16) # lui $t6, 0xc411 +/* 0A6118 7F0715E8 35CE3078 */ ori $t6, (0xC4113078 & 0xFFFF) # ori $t6, $t6, 0x3078 +/* 0A611C 7F0715EC 244C0008 */ addiu $t4, $v0, 8 +/* 0A6120 7F0715F0 AC8C000C */ sw $t4, 0xc($a0) +/* 0A6124 7F0715F4 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d +/* 0A6128 7F0715F8 AC4D0000 */ sw $t5, ($v0) +/* 0A612C 7F0715FC 03E00008 */ jr $ra +/* 0A6130 7F071600 AC4E0004 */ sw $t6, 4($v0) + +.L7F071604: +/* 0A6134 7F071604 8C82000C */ lw $v0, 0xc($a0) +/* 0A6138 7F071608 3C19C411 */ lui $t9, (0xC4113048 >> 16) # lui $t9, 0xc411 +/* 0A613C 7F07160C 37393048 */ ori $t9, (0xC4113048 & 0xFFFF) # ori $t9, $t9, 0x3048 +/* 0A6140 7F071610 244F0008 */ addiu $t7, $v0, 8 +/* 0A6144 7F071614 AC8F000C */ sw $t7, 0xc($a0) +/* 0A6148 7F071618 AC590004 */ sw $t9, 4($v0) +/* 0A614C 7F07161C 03E00008 */ jr $ra +/* 0A6150 7F071620 AC580000 */ sw $t8, ($v0) + +.L7F071624: +/* 0A6154 7F071624 8C82000C */ lw $v0, 0xc($a0) +/* 0A6158 7F071628 3C0DFA00 */ lui $t5, 0xfa00 +/* 0A615C 7F07162C 244C0008 */ addiu $t4, $v0, 8 +/* 0A6160 7F071630 AC8C000C */ sw $t4, 0xc($a0) +/* 0A6164 7F071634 AC4D0000 */ sw $t5, ($v0) +/* 0A6168 7F071638 8C8E0034 */ lw $t6, 0x34($a0) +/* 0A616C 7F07163C 3C0DFC26 */ lui $t5, (0xFC26C204 >> 16) # lui $t5, 0xfc26 +/* 0A6170 7F071640 35ADC204 */ ori $t5, (0xFC26C204 & 0xFFFF) # ori $t5, $t5, 0xc204 +/* 0A6174 7F071644 000EC202 */ srl $t8, $t6, 8 +/* 0A6178 7F071648 331900FF */ andi $t9, $t8, 0xff +/* 0A617C 7F07164C AC590004 */ sw $t9, 4($v0) +/* 0A6180 7F071650 8C82000C */ lw $v0, 0xc($a0) +/* 0A6184 7F071654 3C0E1FCC */ lui $t6, (0x1FCCDFF8 >> 16) # lui $t6, 0x1fcc +/* 0A6188 7F071658 35CEDFF8 */ ori $t6, (0x1FCCDFF8 & 0xFFFF) # ori $t6, $t6, 0xdff8 +/* 0A618C 7F07165C 244C0008 */ addiu $t4, $v0, 8 +/* 0A6190 7F071660 AC8C000C */ sw $t4, 0xc($a0) +/* 0A6194 7F071664 AC4E0004 */ sw $t6, 4($v0) +/* 0A6198 7F071668 AC4D0000 */ sw $t5, ($v0) +/* 0A619C 7F07166C 8C8F0004 */ lw $t7, 4($a0) +/* 0A61A0 7F071670 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0A61A4 7F071674 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 +/* 0A61A8 7F071678 11E0000A */ beqz $t7, .L7F0716A4 +/* 0A61AC 7F07167C 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0A61B0 7F071680 8C82000C */ lw $v0, 0xc($a0) +/* 0A61B4 7F071684 3C0CC411 */ lui $t4, (0xC4113078 >> 16) # lui $t4, 0xc411 +/* 0A61B8 7F071688 358C3078 */ ori $t4, (0xC4113078 & 0xFFFF) # ori $t4, $t4, 0x3078 +/* 0A61BC 7F07168C 24580008 */ addiu $t8, $v0, 8 +/* 0A61C0 7F071690 AC98000C */ sw $t8, 0xc($a0) +/* 0A61C4 7F071694 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d +/* 0A61C8 7F071698 AC590000 */ sw $t9, ($v0) +/* 0A61CC 7F07169C 03E00008 */ jr $ra +/* 0A61D0 7F0716A0 AC4C0004 */ sw $t4, 4($v0) + +.L7F0716A4: +/* 0A61D4 7F0716A4 8C82000C */ lw $v0, 0xc($a0) +/* 0A61D8 7F0716A8 3C0FC411 */ lui $t7, (0xC4113048 >> 16) # lui $t7, 0xc411 +/* 0A61DC 7F0716AC 35EF3048 */ ori $t7, (0xC4113048 & 0xFFFF) # ori $t7, $t7, 0x3048 +/* 0A61E0 7F0716B0 244D0008 */ addiu $t5, $v0, 8 +/* 0A61E4 7F0716B4 AC8D000C */ sw $t5, 0xc($a0) +/* 0A61E8 7F0716B8 AC4F0004 */ sw $t7, 4($v0) +/* 0A61EC 7F0716BC 03E00008 */ jr $ra +/* 0A61F0 7F0716C0 AC4E0000 */ sw $t6, ($v0) + +/* 0A61F4 7F0716C4 24010004 */ li $at, 4 +.L7F0716C8: +/* 0A61F8 7F0716C8 54410059 */ bnel $v0, $at, .L7F071830 +/* 0A61FC 7F0716CC 24010005 */ li $at, 5 +/* 0A6200 7F0716D0 10A00040 */ beqz $a1, .L7F0717D4 +/* 0A6204 7F0716D4 3C0CE700 */ lui $t4, 0xe700 +/* 0A6208 7F0716D8 8C82000C */ lw $v0, 0xc($a0) +/* 0A620C 7F0716DC 8C880034 */ lw $t0, 0x34($a0) +/* 0A6210 7F0716E0 3C0EBA00 */ lui $t6, (0xBA001402 >> 16) # lui $t6, 0xba00 +/* 0A6214 7F0716E4 24590008 */ addiu $t9, $v0, 8 +/* 0A6218 7F0716E8 AC99000C */ sw $t9, 0xc($a0) +/* 0A621C 7F0716EC AC400004 */ sw $zero, 4($v0) +/* 0A6220 7F0716F0 AC4C0000 */ sw $t4, ($v0) +/* 0A6224 7F0716F4 8C82000C */ lw $v0, 0xc($a0) +/* 0A6228 7F0716F8 35CE1402 */ ori $t6, (0xBA001402 & 0xFFFF) # ori $t6, $t6, 0x1402 +/* 0A622C 7F0716FC 3C0F0010 */ lui $t7, 0x10 +/* 0A6230 7F071700 244D0008 */ addiu $t5, $v0, 8 +/* 0A6234 7F071704 AC8D000C */ sw $t5, 0xc($a0) +/* 0A6238 7F071708 AC4F0004 */ sw $t7, 4($v0) +/* 0A623C 7F07170C AC4E0000 */ sw $t6, ($v0) +/* 0A6240 7F071710 8C82000C */ lw $v0, 0xc($a0) +/* 0A6244 7F071714 00083402 */ srl $a2, $t0, 0x10 +/* 0A6248 7F071718 30CE00FF */ andi $t6, $a2, 0xff +/* 0A624C 7F07171C 24580008 */ addiu $t8, $v0, 8 +/* 0A6250 7F071720 AC98000C */ sw $t8, 0xc($a0) +/* 0A6254 7F071724 3C19F800 */ lui $t9, 0xf800 +/* 0A6258 7F071728 00082E02 */ srl $a1, $t0, 0x18 +/* 0A625C 7F07172C 00056E00 */ sll $t5, $a1, 0x18 +/* 0A6260 7F071730 000E7C00 */ sll $t7, $t6, 0x10 +/* 0A6264 7F071734 00083A02 */ srl $a3, $t0, 8 +/* 0A6268 7F071738 AC590000 */ sw $t9, ($v0) +/* 0A626C 7F07173C 30F900FF */ andi $t9, $a3, 0xff +/* 0A6270 7F071740 01AFC025 */ or $t8, $t5, $t7 +/* 0A6274 7F071744 00196200 */ sll $t4, $t9, 8 +/* 0A6278 7F071748 030C7025 */ or $t6, $t8, $t4 +/* 0A627C 7F07174C 310D00FF */ andi $t5, $t0, 0xff +/* 0A6280 7F071750 01CD7825 */ or $t7, $t6, $t5 +/* 0A6284 7F071754 AC4F0004 */ sw $t7, 4($v0) +/* 0A6288 7F071758 8C82000C */ lw $v0, 0xc($a0) +/* 0A628C 7F07175C 3C0C1F10 */ lui $t4, (0x1F1093FF >> 16) # lui $t4, 0x1f10 +/* 0A6290 7F071760 3C18FC26 */ lui $t8, (0xFC26A004 >> 16) # lui $t8, 0xfc26 +/* 0A6294 7F071764 24590008 */ addiu $t9, $v0, 8 +/* 0A6298 7F071768 AC99000C */ sw $t9, 0xc($a0) +/* 0A629C 7F07176C 3718A004 */ ori $t8, (0xFC26A004 & 0xFFFF) # ori $t8, $t8, 0xa004 +/* 0A62A0 7F071770 358C93FF */ ori $t4, (0x1F1093FF & 0xFFFF) # ori $t4, $t4, 0x93ff +/* 0A62A4 7F071774 AC4C0004 */ sw $t4, 4($v0) +/* 0A62A8 7F071778 AC580000 */ sw $t8, ($v0) +/* 0A62AC 7F07177C 8C8E0004 */ lw $t6, 4($a0) +/* 0A62B0 7F071780 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 +/* 0A62B4 7F071784 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 0A62B8 7F071788 11C0000A */ beqz $t6, .L7F0717B4 +/* 0A62BC 7F07178C 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d +/* 0A62C0 7F071790 8C82000C */ lw $v0, 0xc($a0) +/* 0A62C4 7F071794 3C19C411 */ lui $t9, (0xC4112078 >> 16) # lui $t9, 0xc411 +/* 0A62C8 7F071798 37392078 */ ori $t9, (0xC4112078 & 0xFFFF) # ori $t9, $t9, 0x2078 +/* 0A62CC 7F07179C 244D0008 */ addiu $t5, $v0, 8 +/* 0A62D0 7F0717A0 AC8D000C */ sw $t5, 0xc($a0) +/* 0A62D4 7F0717A4 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 0A62D8 7F0717A8 AC4F0000 */ sw $t7, ($v0) +/* 0A62DC 7F0717AC 03E00008 */ jr $ra +/* 0A62E0 7F0717B0 AC590004 */ sw $t9, 4($v0) + +.L7F0717B4: +/* 0A62E4 7F0717B4 8C82000C */ lw $v0, 0xc($a0) +/* 0A62E8 7F0717B8 3C0EC411 */ lui $t6, (0xC4112048 >> 16) # lui $t6, 0xc411 +/* 0A62EC 7F0717BC 35CE2048 */ ori $t6, (0xC4112048 & 0xFFFF) # ori $t6, $t6, 0x2048 +/* 0A62F0 7F0717C0 24580008 */ addiu $t8, $v0, 8 +/* 0A62F4 7F0717C4 AC98000C */ sw $t8, 0xc($a0) +/* 0A62F8 7F0717C8 AC4E0004 */ sw $t6, 4($v0) +/* 0A62FC 7F0717CC 03E00008 */ jr $ra +/* 0A6300 7F0717D0 AC4C0000 */ sw $t4, ($v0) + +.L7F0717D4: +/* 0A6304 7F0717D4 8C8D0004 */ lw $t5, 4($a0) +/* 0A6308 7F0717D8 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0A630C 7F0717DC 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 +/* 0A6310 7F0717E0 11A0000A */ beqz $t5, .L7F07180C +/* 0A6314 7F0717E4 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0A6318 7F0717E8 8C82000C */ lw $v0, 0xc($a0) +/* 0A631C 7F0717EC 3C18C410 */ lui $t8, (0xC41049D8 >> 16) # lui $t8, 0xc410 +/* 0A6320 7F0717F0 371849D8 */ ori $t8, (0xC41049D8 & 0xFFFF) # ori $t8, $t8, 0x49d8 +/* 0A6324 7F0717F4 244F0008 */ addiu $t7, $v0, 8 +/* 0A6328 7F0717F8 AC8F000C */ sw $t7, 0xc($a0) +/* 0A632C 7F0717FC 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d +/* 0A6330 7F071800 AC590000 */ sw $t9, ($v0) +/* 0A6334 7F071804 03E00008 */ jr $ra +/* 0A6338 7F071808 AC580004 */ sw $t8, 4($v0) + +.L7F07180C: +/* 0A633C 7F07180C 8C82000C */ lw $v0, 0xc($a0) +/* 0A6340 7F071810 3C0DC410 */ lui $t5, (0xC41041C8 >> 16) # lui $t5, 0xc410 +/* 0A6344 7F071814 35AD41C8 */ ori $t5, (0xC41041C8 & 0xFFFF) # ori $t5, $t5, 0x41c8 +/* 0A6348 7F071818 244C0008 */ addiu $t4, $v0, 8 +/* 0A634C 7F07181C AC8C000C */ sw $t4, 0xc($a0) +/* 0A6350 7F071820 AC4D0004 */ sw $t5, 4($v0) +/* 0A6354 7F071824 03E00008 */ jr $ra +/* 0A6358 7F071828 AC4E0000 */ sw $t6, ($v0) + +/* 0A635C 7F07182C 24010005 */ li $at, 5 +.L7F071830: +/* 0A6360 7F071830 1441007F */ bne $v0, $at, .L7F071A30 +/* 0A6364 7F071834 00000000 */ nop +/* 0A6368 7F071838 50A00066 */ beql $a1, $zero, .L7F0719D4 +/* 0A636C 7F07183C 8C990034 */ lw $t9, 0x34($a0) +/* 0A6370 7F071840 8C82000C */ lw $v0, 0xc($a0) +/* 0A6374 7F071844 3C19E700 */ lui $t9, 0xe700 +/* 0A6378 7F071848 3C0CBA00 */ lui $t4, (0xBA001402 >> 16) # lui $t4, 0xba00 +/* 0A637C 7F07184C 244F0008 */ addiu $t7, $v0, 8 +/* 0A6380 7F071850 AC8F000C */ sw $t7, 0xc($a0) +/* 0A6384 7F071854 AC400004 */ sw $zero, 4($v0) +/* 0A6388 7F071858 AC590000 */ sw $t9, ($v0) +/* 0A638C 7F07185C 8C82000C */ lw $v0, 0xc($a0) +/* 0A6390 7F071860 358C1402 */ ori $t4, (0xBA001402 & 0xFFFF) # ori $t4, $t4, 0x1402 +/* 0A6394 7F071864 3C0E0010 */ lui $t6, 0x10 +/* 0A6398 7F071868 24580008 */ addiu $t8, $v0, 8 +/* 0A639C 7F07186C AC98000C */ sw $t8, 0xc($a0) +/* 0A63A0 7F071870 AC4E0004 */ sw $t6, 4($v0) +/* 0A63A4 7F071874 AC4C0000 */ sw $t4, ($v0) +/* 0A63A8 7F071878 8C8A0038 */ lw $t2, 0x38($a0) +/* 0A63AC 7F07187C 8C82000C */ lw $v0, 0xc($a0) +/* 0A63B0 7F071880 3C19F800 */ lui $t9, 0xf800 +/* 0A63B4 7F071884 000A4402 */ srl $t0, $t2, 0x10 +/* 0A63B8 7F071888 244F0008 */ addiu $t7, $v0, 8 +/* 0A63BC 7F07188C AC8F000C */ sw $t7, 0xc($a0) +/* 0A63C0 7F071890 310E00FF */ andi $t6, $t0, 0xff +/* 0A63C4 7F071894 000AC602 */ srl $t8, $t2, 0x18 +/* 0A63C8 7F071898 00186600 */ sll $t4, $t8, 0x18 +/* 0A63CC 7F07189C 000E6C00 */ sll $t5, $t6, 0x10 +/* 0A63D0 7F0718A0 000A4A02 */ srl $t1, $t2, 8 +/* 0A63D4 7F0718A4 AC590000 */ sw $t9, ($v0) +/* 0A63D8 7F0718A8 313900FF */ andi $t9, $t1, 0xff +/* 0A63DC 7F0718AC 018D7825 */ or $t7, $t4, $t5 +/* 0A63E0 7F0718B0 0019C200 */ sll $t8, $t9, 8 +/* 0A63E4 7F0718B4 01F87025 */ or $t6, $t7, $t8 +/* 0A63E8 7F0718B8 314C00FF */ andi $t4, $t2, 0xff +/* 0A63EC 7F0718BC 01CC6825 */ or $t5, $t6, $t4 +/* 0A63F0 7F0718C0 AC4D0004 */ sw $t5, 4($v0) +/* 0A63F4 7F0718C4 8C990034 */ lw $t9, 0x34($a0) +/* 0A63F8 7F0718C8 3C0EFC26 */ lui $t6, (0xFC26A004 >> 16) # lui $t6, 0xfc26 +/* 0A63FC 7F0718CC 35CEA004 */ ori $t6, (0xFC26A004 & 0xFFFF) # ori $t6, $t6, 0xa004 +/* 0A6400 7F0718D0 332F00FF */ andi $t7, $t9, 0xff +/* 0A6404 7F0718D4 29E100FF */ slti $at, $t7, 0xff +/* 0A6408 7F0718D8 10200020 */ beqz $at, .L7F07195C +/* 0A640C 7F0718DC 31EC00FF */ andi $t4, $t7, 0xff +/* 0A6410 7F0718E0 8C82000C */ lw $v0, 0xc($a0) +/* 0A6414 7F0718E4 2401FF00 */ li $at, -256 +/* 0A6418 7F0718E8 01816825 */ or $t5, $t4, $at +/* 0A641C 7F0718EC 24580008 */ addiu $t8, $v0, 8 +/* 0A6420 7F0718F0 AC98000C */ sw $t8, 0xc($a0) +/* 0A6424 7F0718F4 3C0EFB00 */ lui $t6, 0xfb00 +/* 0A6428 7F0718F8 AC4E0000 */ sw $t6, ($v0) +/* 0A642C 7F0718FC AC4D0004 */ sw $t5, 4($v0) +/* 0A6430 7F071900 8C990034 */ lw $t9, 0x34($a0) +/* 0A6434 7F071904 3C0EFC26 */ lui $t6, (0xFC26EA04 >> 16) # lui $t6, 0xfc26 +/* 0A6438 7F071908 35CEEA04 */ ori $t6, (0xFC26EA04 & 0xFFFF) # ori $t6, $t6, 0xea04 +/* 0A643C 7F07190C 332FFF00 */ andi $t7, $t9, 0xff00 +/* 0A6440 7F071910 11E00009 */ beqz $t7, .L7F071938 +/* 0A6444 7F071914 3C19FC26 */ lui $t9, (0xFC26EA04 >> 16) # lui $t9, 0xfc26 +/* 0A6448 7F071918 8C82000C */ lw $v0, 0xc($a0) +/* 0A644C 7F07191C 3C0C1F10 */ lui $t4, (0x1F10CFFF >> 16) # lui $t4, 0x1f10 +/* 0A6450 7F071920 358CCFFF */ ori $t4, (0x1F10CFFF & 0xFFFF) # ori $t4, $t4, 0xcfff +/* 0A6454 7F071924 24580008 */ addiu $t8, $v0, 8 +/* 0A6458 7F071928 AC98000C */ sw $t8, 0xc($a0) +/* 0A645C 7F07192C AC4C0004 */ sw $t4, 4($v0) +/* 0A6460 7F071930 10000011 */ b .L7F071978 +/* 0A6464 7F071934 AC4E0000 */ sw $t6, ($v0) +.L7F071938: +/* 0A6468 7F071938 8C82000C */ lw $v0, 0xc($a0) +/* 0A646C 7F07193C 3C0F1F10 */ lui $t7, (0x1F10FFFF >> 16) # lui $t7, 0x1f10 +/* 0A6470 7F071940 35EFFFFF */ ori $t7, (0x1F10FFFF & 0xFFFF) # ori $t7, $t7, 0xffff +/* 0A6474 7F071944 244D0008 */ addiu $t5, $v0, 8 +/* 0A6478 7F071948 AC8D000C */ sw $t5, 0xc($a0) +/* 0A647C 7F07194C 3739EA04 */ ori $t9, (0xFC26EA04 & 0xFFFF) # ori $t9, $t9, 0xea04 +/* 0A6480 7F071950 AC590000 */ sw $t9, ($v0) +/* 0A6484 7F071954 10000008 */ b .L7F071978 +/* 0A6488 7F071958 AC4F0004 */ sw $t7, 4($v0) +.L7F07195C: +/* 0A648C 7F07195C 8C82000C */ lw $v0, 0xc($a0) +/* 0A6490 7F071960 3C0C1F10 */ lui $t4, (0x1F1093FF >> 16) # lui $t4, 0x1f10 +/* 0A6494 7F071964 358C93FF */ ori $t4, (0x1F1093FF & 0xFFFF) # ori $t4, $t4, 0x93ff +/* 0A6498 7F071968 24580008 */ addiu $t8, $v0, 8 +/* 0A649C 7F07196C AC98000C */ sw $t8, 0xc($a0) +/* 0A64A0 7F071970 AC4C0004 */ sw $t4, 4($v0) +/* 0A64A4 7F071974 AC4E0000 */ sw $t6, ($v0) +.L7F071978: +/* 0A64A8 7F071978 8C8D0004 */ lw $t5, 4($a0) +/* 0A64AC 7F07197C 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 +/* 0A64B0 7F071980 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 0A64B4 7F071984 11A0000A */ beqz $t5, .L7F0719B0 +/* 0A64B8 7F071988 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d +/* 0A64BC 7F07198C 8C82000C */ lw $v0, 0xc($a0) +/* 0A64C0 7F071990 3C18C410 */ lui $t8, (0xC41049D8 >> 16) # lui $t8, 0xc410 +/* 0A64C4 7F071994 371849D8 */ ori $t8, (0xC41049D8 & 0xFFFF) # ori $t8, $t8, 0x49d8 +/* 0A64C8 7F071998 24590008 */ addiu $t9, $v0, 8 +/* 0A64CC 7F07199C AC99000C */ sw $t9, 0xc($a0) +/* 0A64D0 7F0719A0 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 0A64D4 7F0719A4 AC4F0000 */ sw $t7, ($v0) +/* 0A64D8 7F0719A8 03E00008 */ jr $ra +/* 0A64DC 7F0719AC AC580004 */ sw $t8, 4($v0) + +.L7F0719B0: +/* 0A64E0 7F0719B0 8C82000C */ lw $v0, 0xc($a0) +/* 0A64E4 7F0719B4 3C0DC410 */ lui $t5, (0xC41041C8 >> 16) # lui $t5, 0xc410 +/* 0A64E8 7F0719B8 35AD41C8 */ ori $t5, (0xC41041C8 & 0xFFFF) # ori $t5, $t5, 0x41c8 +/* 0A64EC 7F0719BC 244E0008 */ addiu $t6, $v0, 8 +/* 0A64F0 7F0719C0 AC8E000C */ sw $t6, 0xc($a0) +/* 0A64F4 7F0719C4 AC4D0004 */ sw $t5, 4($v0) +/* 0A64F8 7F0719C8 03E00008 */ jr $ra +/* 0A64FC 7F0719CC AC4C0000 */ sw $t4, ($v0) + +/* 0A6500 7F0719D0 8C990034 */ lw $t9, 0x34($a0) +.L7F0719D4: +/* 0A6504 7F0719D4 3C0EFC26 */ lui $t6, (0xFC269A04 >> 16) # lui $t6, 0xfc26 +/* 0A6508 7F0719D8 35CE9A04 */ ori $t6, (0xFC269A04 & 0xFFFF) # ori $t6, $t6, 0x9a04 +/* 0A650C 7F0719DC 332F00FF */ andi $t7, $t9, 0xff +/* 0A6510 7F0719E0 29E100FF */ slti $at, $t7, 0xff +/* 0A6514 7F0719E4 10200009 */ beqz $at, .L7F071A0C +/* 0A6518 7F0719E8 3C19FC26 */ lui $t9, 0xfc26 +/* 0A651C 7F0719EC 8C82000C */ lw $v0, 0xc($a0) +/* 0A6520 7F0719F0 3C0C1F10 */ lui $t4, (0x1F10FFFF >> 16) # lui $t4, 0x1f10 +/* 0A6524 7F0719F4 358CFFFF */ ori $t4, (0x1F10FFFF & 0xFFFF) # ori $t4, $t4, 0xffff +/* 0A6528 7F0719F8 24580008 */ addiu $t8, $v0, 8 +/* 0A652C 7F0719FC AC98000C */ sw $t8, 0xc($a0) +/* 0A6530 7F071A00 AC4C0004 */ sw $t4, 4($v0) +/* 0A6534 7F071A04 03E00008 */ jr $ra +/* 0A6538 7F071A08 AC4E0000 */ sw $t6, ($v0) + +.L7F071A0C: +/* 0A653C 7F071A0C 8C82000C */ lw $v0, 0xc($a0) +/* 0A6540 7F071A10 3C0F1F10 */ lui $t7, (0x1F1093FF >> 16) # lui $t7, 0x1f10 +/* 0A6544 7F071A14 35EF93FF */ ori $t7, (0x1F1093FF & 0xFFFF) # ori $t7, $t7, 0x93ff +/* 0A6548 7F071A18 244D0008 */ addiu $t5, $v0, 8 +/* 0A654C 7F071A1C AC8D000C */ sw $t5, 0xc($a0) +/* 0A6550 7F071A20 3739A004 */ ori $t9, $t9, 0xa004 +/* 0A6554 7F071A24 AC590000 */ sw $t9, ($v0) +/* 0A6558 7F071A28 03E00008 */ jr $ra +/* 0A655C 7F071A2C AC4F0004 */ sw $t7, 4($v0) + +.L7F071A30: +/* 0A6560 7F071A30 10A0002D */ beqz $a1, .L7F071AE8 +/* 0A6564 7F071A34 3C0EE700 */ lui $t6, 0xe700 +/* 0A6568 7F071A38 8C82000C */ lw $v0, 0xc($a0) +/* 0A656C 7F071A3C 3C0DBA00 */ lui $t5, (0xBA001402 >> 16) # lui $t5, 0xba00 +/* 0A6570 7F071A40 35AD1402 */ ori $t5, (0xBA001402 & 0xFFFF) # ori $t5, $t5, 0x1402 +/* 0A6574 7F071A44 24580008 */ addiu $t8, $v0, 8 +/* 0A6578 7F071A48 AC98000C */ sw $t8, 0xc($a0) +/* 0A657C 7F071A4C AC400004 */ sw $zero, 4($v0) +/* 0A6580 7F071A50 AC4E0000 */ sw $t6, ($v0) +/* 0A6584 7F071A54 8C82000C */ lw $v0, 0xc($a0) +/* 0A6588 7F071A58 3C190010 */ lui $t9, 0x10 +/* 0A658C 7F071A5C 3C0E1F10 */ lui $t6, (0x1F1093FF >> 16) # lui $t6, 0x1f10 +/* 0A6590 7F071A60 244C0008 */ addiu $t4, $v0, 8 +/* 0A6594 7F071A64 AC8C000C */ sw $t4, 0xc($a0) +/* 0A6598 7F071A68 AC590004 */ sw $t9, 4($v0) +/* 0A659C 7F071A6C AC4D0000 */ sw $t5, ($v0) +/* 0A65A0 7F071A70 8C82000C */ lw $v0, 0xc($a0) +/* 0A65A4 7F071A74 3C18FC26 */ lui $t8, (0xFC26A004 >> 16) # lui $t8, 0xfc26 +/* 0A65A8 7F071A78 3718A004 */ ori $t8, (0xFC26A004 & 0xFFFF) # ori $t8, $t8, 0xa004 +/* 0A65AC 7F071A7C 244F0008 */ addiu $t7, $v0, 8 +/* 0A65B0 7F071A80 AC8F000C */ sw $t7, 0xc($a0) +/* 0A65B4 7F071A84 35CE93FF */ ori $t6, (0x1F1093FF & 0xFFFF) # ori $t6, $t6, 0x93ff +/* 0A65B8 7F071A88 AC4E0004 */ sw $t6, 4($v0) +/* 0A65BC 7F071A8C AC580000 */ sw $t8, ($v0) +/* 0A65C0 7F071A90 8C8C0004 */ lw $t4, 4($a0) +/* 0A65C4 7F071A94 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0A65C8 7F071A98 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 +/* 0A65CC 7F071A9C 1180000A */ beqz $t4, .L7F071AC8 +/* 0A65D0 7F071AA0 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0A65D4 7F071AA4 8C82000C */ lw $v0, 0xc($a0) +/* 0A65D8 7F071AA8 3C0F0C19 */ lui $t7, (0x0C192078 >> 16) # lui $t7, 0xc19 +/* 0A65DC 7F071AAC 35EF2078 */ ori $t7, (0x0C192078 & 0xFFFF) # ori $t7, $t7, 0x2078 +/* 0A65E0 7F071AB0 244D0008 */ addiu $t5, $v0, 8 +/* 0A65E4 7F071AB4 AC8D000C */ sw $t5, 0xc($a0) +/* 0A65E8 7F071AB8 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d +/* 0A65EC 7F071ABC AC590000 */ sw $t9, ($v0) +/* 0A65F0 7F071AC0 03E00008 */ jr $ra +/* 0A65F4 7F071AC4 AC4F0004 */ sw $t7, 4($v0) + +.L7F071AC8: +/* 0A65F8 7F071AC8 8C82000C */ lw $v0, 0xc($a0) +/* 0A65FC 7F071ACC 3C0C0C19 */ lui $t4, (0x0C192048 >> 16) # lui $t4, 0xc19 +/* 0A6600 7F071AD0 358C2048 */ ori $t4, (0x0C192048 & 0xFFFF) # ori $t4, $t4, 0x2048 +/* 0A6604 7F071AD4 24580008 */ addiu $t8, $v0, 8 +/* 0A6608 7F071AD8 AC98000C */ sw $t8, 0xc($a0) +/* 0A660C 7F071ADC AC4C0004 */ sw $t4, 4($v0) +/* 0A6610 7F071AE0 03E00008 */ jr $ra +/* 0A6614 7F071AE4 AC4E0000 */ sw $t6, ($v0) + +.L7F071AE8: +/* 0A6618 7F071AE8 8C8D0004 */ lw $t5, 4($a0) +/* 0A661C 7F071AEC 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 +/* 0A6620 7F071AF0 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 0A6624 7F071AF4 11A0000A */ beqz $t5, .L7F071B20 +/* 0A6628 7F071AF8 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d +/* 0A662C 7F071AFC 8C82000C */ lw $v0, 0xc($a0) +/* 0A6630 7F071B00 3C180C18 */ lui $t8, (0x0C1849D8 >> 16) # lui $t8, 0xc18 +/* 0A6634 7F071B04 371849D8 */ ori $t8, (0x0C1849D8 & 0xFFFF) # ori $t8, $t8, 0x49d8 +/* 0A6638 7F071B08 24590008 */ addiu $t9, $v0, 8 +/* 0A663C 7F071B0C AC99000C */ sw $t9, 0xc($a0) +/* 0A6640 7F071B10 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 0A6644 7F071B14 AC4F0000 */ sw $t7, ($v0) +/* 0A6648 7F071B18 03E00008 */ jr $ra +/* 0A664C 7F071B1C AC580004 */ sw $t8, 4($v0) + +.L7F071B20: +/* 0A6650 7F071B20 8C82000C */ lw $v0, 0xc($a0) +/* 0A6654 7F071B24 3C0D0C18 */ lui $t5, (0x0C1841C8 >> 16) # lui $t5, 0xc18 +/* 0A6658 7F071B28 35AD41C8 */ ori $t5, (0x0C1841C8 & 0xFFFF) # ori $t5, $t5, 0x41c8 +/* 0A665C 7F071B2C 244E0008 */ addiu $t6, $v0, 8 +/* 0A6660 7F071B30 AC8E000C */ sw $t6, 0xc($a0) +/* 0A6664 7F071B34 AC4D0004 */ sw $t5, 4($v0) +/* 0A6668 7F071B38 AC4C0000 */ sw $t4, ($v0) +.L7F071B3C: +/* 0A666C 7F071B3C 03E00008 */ jr $ra +/* 0A6670 7F071B40 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F071B44(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F071B44 +/* 0A6674 7F071B44 8C820030 */ lw $v0, 0x30($a0) +/* 0A6678 7F071B48 24010007 */ li $at, 7 +/* 0A667C 7F071B4C 5441006B */ bnel $v0, $at, .L7F071CFC +/* 0A6680 7F071B50 24010008 */ li $at, 8 +/* 0A6684 7F071B54 8C82000C */ lw $v0, 0xc($a0) +/* 0A6688 7F071B58 3C0FE700 */ lui $t7, 0xe700 +/* 0A668C 7F071B5C 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 +/* 0A6690 7F071B60 244E0008 */ addiu $t6, $v0, 8 +/* 0A6694 7F071B64 AC8E000C */ sw $t6, 0xc($a0) +/* 0A6698 7F071B68 AC400004 */ sw $zero, 4($v0) +/* 0A669C 7F071B6C AC4F0000 */ sw $t7, ($v0) +/* 0A66A0 7F071B70 8C82000C */ lw $v0, 0xc($a0) +/* 0A66A4 7F071B74 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 +/* 0A66A8 7F071B78 3C0D0010 */ lui $t5, 0x10 +/* 0A66AC 7F071B7C 24580008 */ addiu $t8, $v0, 8 +/* 0A66B0 7F071B80 AC98000C */ sw $t8, 0xc($a0) +/* 0A66B4 7F071B84 AC4D0004 */ sw $t5, 4($v0) +/* 0A66B8 7F071B88 AC590000 */ sw $t9, ($v0) +/* 0A66BC 7F071B8C 8C82000C */ lw $v0, 0xc($a0) +/* 0A66C0 7F071B90 8C8B0038 */ lw $t3, 0x38($a0) +/* 0A66C4 7F071B94 3C19F800 */ lui $t9, 0xf800 +/* 0A66C8 7F071B98 24580008 */ addiu $t8, $v0, 8 +/* 0A66CC 7F071B9C AC98000C */ sw $t8, 0xc($a0) +/* 0A66D0 7F071BA0 000B4C02 */ srl $t1, $t3, 0x10 +/* 0A66D4 7F071BA4 312F00FF */ andi $t7, $t1, 0xff +/* 0A66D8 7F071BA8 000B4602 */ srl $t0, $t3, 0x18 +/* 0A66DC 7F071BAC 00087600 */ sll $t6, $t0, 0x18 +/* 0A66E0 7F071BB0 000FC400 */ sll $t8, $t7, 0x10 +/* 0A66E4 7F071BB4 AC590000 */ sw $t9, ($v0) +/* 0A66E8 7F071BB8 000B5202 */ srl $t2, $t3, 8 +/* 0A66EC 7F071BBC 314D00FF */ andi $t5, $t2, 0xff +/* 0A66F0 7F071BC0 01D8C825 */ or $t9, $t6, $t8 +/* 0A66F4 7F071BC4 000D7A00 */ sll $t7, $t5, 8 +/* 0A66F8 7F071BC8 032F7025 */ or $t6, $t9, $t7 +/* 0A66FC 7F071BCC 317800FF */ andi $t8, $t3, 0xff +/* 0A6700 7F071BD0 01D86825 */ or $t5, $t6, $t8 +/* 0A6704 7F071BD4 AC4D0004 */ sw $t5, 4($v0) +/* 0A6708 7F071BD8 8C830034 */ lw $v1, 0x34($a0) +/* 0A670C 7F071BDC 8C82000C */ lw $v0, 0xc($a0) +/* 0A6710 7F071BE0 3C0EFB00 */ lui $t6, 0xfb00 +/* 0A6714 7F071BE4 00034C02 */ srl $t1, $v1, 0x10 +/* 0A6718 7F071BE8 244F0008 */ addiu $t7, $v0, 8 +/* 0A671C 7F071BEC AC8F000C */ sw $t7, 0xc($a0) +/* 0A6720 7F071BF0 313900FF */ andi $t9, $t1, 0xff +/* 0A6724 7F071BF4 0003C602 */ srl $t8, $v1, 0x18 +/* 0A6728 7F071BF8 00186E00 */ sll $t5, $t8, 0x18 +/* 0A672C 7F071BFC 00197C00 */ sll $t7, $t9, 0x10 +/* 0A6730 7F071C00 00035202 */ srl $t2, $v1, 8 +/* 0A6734 7F071C04 315800FF */ andi $t8, $t2, 0xff +/* 0A6738 7F071C08 AC4E0000 */ sw $t6, ($v0) +/* 0A673C 7F071C0C 01AF7025 */ or $t6, $t5, $t7 +/* 0A6740 7F071C10 0018CA00 */ sll $t9, $t8, 8 +/* 0A6744 7F071C14 01D96825 */ or $t5, $t6, $t9 +/* 0A6748 7F071C18 35AF00FF */ ori $t7, $t5, 0xff +/* 0A674C 7F071C1C AC4F0004 */ sw $t7, 4($v0) +/* 0A6750 7F071C20 8C82000C */ lw $v0, 0xc($a0) +/* 0A6754 7F071C24 3C195FFE */ lui $t9, (0x5FFEDBF8 >> 16) # lui $t9, 0x5ffe +/* 0A6758 7F071C28 3C0EFC15 */ lui $t6, (0xFC159804 >> 16) # lui $t6, 0xfc15 +/* 0A675C 7F071C2C 24580008 */ addiu $t8, $v0, 8 +/* 0A6760 7F071C30 AC98000C */ sw $t8, 0xc($a0) +/* 0A6764 7F071C34 35CE9804 */ ori $t6, (0xFC159804 & 0xFFFF) # ori $t6, $t6, 0x9804 +/* 0A6768 7F071C38 3739DBF8 */ ori $t9, (0x5FFEDBF8 & 0xFFFF) # ori $t9, $t9, 0xdbf8 +/* 0A676C 7F071C3C AC590004 */ sw $t9, 4($v0) +/* 0A6770 7F071C40 10A00017 */ beqz $a1, .L7F071CA0 +/* 0A6774 7F071C44 AC4E0000 */ sw $t6, ($v0) +/* 0A6778 7F071C48 8C8D0004 */ lw $t5, 4($a0) +/* 0A677C 7F071C4C 3C0FC411 */ lui $t7, (0xC4112048 >> 16) # lui $t7, 0xc411 +/* 0A6780 7F071C50 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 +/* 0A6784 7F071C54 11A0000A */ beqz $t5, .L7F071C80 +/* 0A6788 7F071C58 35EF2048 */ ori $t7, (0xC4112048 & 0xFFFF) # ori $t7, $t7, 0x2048 +/* 0A678C 7F071C5C 8C82000C */ lw $v0, 0xc($a0) +/* 0A6790 7F071C60 3C0EC411 */ lui $t6, (0xC4112078 >> 16) # lui $t6, 0xc411 +/* 0A6794 7F071C64 35CE2078 */ ori $t6, (0xC4112078 & 0xFFFF) # ori $t6, $t6, 0x2078 +/* 0A6798 7F071C68 244F0008 */ addiu $t7, $v0, 8 +/* 0A679C 7F071C6C AC8F000C */ sw $t7, 0xc($a0) +/* 0A67A0 7F071C70 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d +/* 0A67A4 7F071C74 AC580000 */ sw $t8, ($v0) +/* 0A67A8 7F071C78 03E00008 */ jr $ra +/* 0A67AC 7F071C7C AC4E0004 */ sw $t6, 4($v0) + +.L7F071C80: +/* 0A67B0 7F071C80 8C82000C */ lw $v0, 0xc($a0) +/* 0A67B4 7F071C84 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 +/* 0A67B8 7F071C88 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d +/* 0A67BC 7F071C8C 24590008 */ addiu $t9, $v0, 8 +/* 0A67C0 7F071C90 AC99000C */ sw $t9, 0xc($a0) +/* 0A67C4 7F071C94 AC4F0004 */ sw $t7, 4($v0) +/* 0A67C8 7F071C98 03E00008 */ jr $ra +/* 0A67CC 7F071C9C AC4D0000 */ sw $t5, ($v0) + +.L7F071CA0: +/* 0A67D0 7F071CA0 8C980004 */ lw $t8, 4($a0) +/* 0A67D4 7F071CA4 3C0EC410 */ lui $t6, (0xC41041C8 >> 16) # lui $t6, 0xc410 +/* 0A67D8 7F071CA8 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 +/* 0A67DC 7F071CAC 1300000A */ beqz $t8, .L7F071CD8 +/* 0A67E0 7F071CB0 35CE41C8 */ ori $t6, (0xC41041C8 & 0xFFFF) # ori $t6, $t6, 0x41c8 +/* 0A67E4 7F071CB4 8C82000C */ lw $v0, 0xc($a0) +/* 0A67E8 7F071CB8 3C0DC410 */ lui $t5, (0xC41049D8 >> 16) # lui $t5, 0xc410 +/* 0A67EC 7F071CBC 35AD49D8 */ ori $t5, (0xC41049D8 & 0xFFFF) # ori $t5, $t5, 0x49d8 +/* 0A67F0 7F071CC0 244E0008 */ addiu $t6, $v0, 8 +/* 0A67F4 7F071CC4 AC8E000C */ sw $t6, 0xc($a0) +/* 0A67F8 7F071CC8 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d +/* 0A67FC 7F071CCC AC590000 */ sw $t9, ($v0) +/* 0A6800 7F071CD0 03E00008 */ jr $ra +/* 0A6804 7F071CD4 AC4D0004 */ sw $t5, 4($v0) + +.L7F071CD8: +/* 0A6808 7F071CD8 8C82000C */ lw $v0, 0xc($a0) +/* 0A680C 7F071CDC 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 +/* 0A6810 7F071CE0 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d +/* 0A6814 7F071CE4 244F0008 */ addiu $t7, $v0, 8 +/* 0A6818 7F071CE8 AC8F000C */ sw $t7, 0xc($a0) +/* 0A681C 7F071CEC AC4E0004 */ sw $t6, 4($v0) +/* 0A6820 7F071CF0 03E00008 */ jr $ra +/* 0A6824 7F071CF4 AC580000 */ sw $t8, ($v0) + +/* 0A6828 7F071CF8 24010008 */ li $at, 8 +.L7F071CFC: +/* 0A682C 7F071CFC 54410055 */ bnel $v0, $at, .L7F071E54 +/* 0A6830 7F071D00 24010009 */ li $at, 9 +/* 0A6834 7F071D04 8C82000C */ lw $v0, 0xc($a0) +/* 0A6838 7F071D08 3C0DE700 */ lui $t5, 0xe700 +/* 0A683C 7F071D0C 3C18BA00 */ lui $t8, (0xBA001402 >> 16) # lui $t8, 0xba00 +/* 0A6840 7F071D10 24590008 */ addiu $t9, $v0, 8 +/* 0A6844 7F071D14 AC99000C */ sw $t9, 0xc($a0) +/* 0A6848 7F071D18 AC400004 */ sw $zero, 4($v0) +/* 0A684C 7F071D1C AC4D0000 */ sw $t5, ($v0) +/* 0A6850 7F071D20 8C82000C */ lw $v0, 0xc($a0) +/* 0A6854 7F071D24 37181402 */ ori $t8, (0xBA001402 & 0xFFFF) # ori $t8, $t8, 0x1402 +/* 0A6858 7F071D28 3C0E0010 */ lui $t6, 0x10 +/* 0A685C 7F071D2C 244F0008 */ addiu $t7, $v0, 8 +/* 0A6860 7F071D30 AC8F000C */ sw $t7, 0xc($a0) +/* 0A6864 7F071D34 AC4E0004 */ sw $t6, 4($v0) +/* 0A6868 7F071D38 AC580000 */ sw $t8, ($v0) +/* 0A686C 7F071D3C 8C82000C */ lw $v0, 0xc($a0) +/* 0A6870 7F071D40 8C8A0038 */ lw $t2, 0x38($a0) +/* 0A6874 7F071D44 3C18F800 */ lui $t8, 0xf800 +/* 0A6878 7F071D48 244F0008 */ addiu $t7, $v0, 8 +/* 0A687C 7F071D4C AC8F000C */ sw $t7, 0xc($a0) +/* 0A6880 7F071D50 000A4402 */ srl $t0, $t2, 0x10 +/* 0A6884 7F071D54 310D00FF */ andi $t5, $t0, 0xff +/* 0A6888 7F071D58 000A3E02 */ srl $a3, $t2, 0x18 +/* 0A688C 7F071D5C 0007CE00 */ sll $t9, $a3, 0x18 +/* 0A6890 7F071D60 000D7C00 */ sll $t7, $t5, 0x10 +/* 0A6894 7F071D64 AC580000 */ sw $t8, ($v0) +/* 0A6898 7F071D68 000A4A02 */ srl $t1, $t2, 8 +/* 0A689C 7F071D6C 312E00FF */ andi $t6, $t1, 0xff +/* 0A68A0 7F071D70 032FC025 */ or $t8, $t9, $t7 +/* 0A68A4 7F071D74 000E6A00 */ sll $t5, $t6, 8 +/* 0A68A8 7F071D78 030DC825 */ or $t9, $t8, $t5 +/* 0A68AC 7F071D7C 314F00FF */ andi $t7, $t2, 0xff +/* 0A68B0 7F071D80 032F7025 */ or $t6, $t9, $t7 +/* 0A68B4 7F071D84 AC4E0004 */ sw $t6, 4($v0) +/* 0A68B8 7F071D88 8C82000C */ lw $v0, 0xc($a0) +/* 0A68BC 7F071D8C 8C8A0034 */ lw $t2, 0x34($a0) +/* 0A68C0 7F071D90 3C0FFB00 */ lui $t7, 0xfb00 +/* 0A68C4 7F071D94 24590008 */ addiu $t9, $v0, 8 +/* 0A68C8 7F071D98 AC99000C */ sw $t9, 0xc($a0) +/* 0A68CC 7F071D9C 000A4402 */ srl $t0, $t2, 0x10 +/* 0A68D0 7F071DA0 310D00FF */ andi $t5, $t0, 0xff +/* 0A68D4 7F071DA4 000A3E02 */ srl $a3, $t2, 0x18 +/* 0A68D8 7F071DA8 0007C600 */ sll $t8, $a3, 0x18 +/* 0A68DC 7F071DAC 000DCC00 */ sll $t9, $t5, 0x10 +/* 0A68E0 7F071DB0 AC4F0000 */ sw $t7, ($v0) +/* 0A68E4 7F071DB4 000A4A02 */ srl $t1, $t2, 8 +/* 0A68E8 7F071DB8 312E00FF */ andi $t6, $t1, 0xff +/* 0A68EC 7F071DBC 03197825 */ or $t7, $t8, $t9 +/* 0A68F0 7F071DC0 000E6A00 */ sll $t5, $t6, 8 +/* 0A68F4 7F071DC4 01EDC025 */ or $t8, $t7, $t5 +/* 0A68F8 7F071DC8 315900FF */ andi $t9, $t2, 0xff +/* 0A68FC 7F071DCC 03197025 */ or $t6, $t8, $t9 +/* 0A6900 7F071DD0 AC4E0004 */ sw $t6, 4($v0) +/* 0A6904 7F071DD4 8C82000C */ lw $v0, 0xc($a0) +/* 0A6908 7F071DD8 3C185FFE */ lui $t8, (0x5FFEFFF8 >> 16) # lui $t8, 0x5ffe +/* 0A690C 7F071DDC 3C0DFC15 */ lui $t5, (0xFC159A04 >> 16) # lui $t5, 0xfc15 +/* 0A6910 7F071DE0 244F0008 */ addiu $t7, $v0, 8 +/* 0A6914 7F071DE4 AC8F000C */ sw $t7, 0xc($a0) +/* 0A6918 7F071DE8 35AD9A04 */ ori $t5, (0xFC159A04 & 0xFFFF) # ori $t5, $t5, 0x9a04 +/* 0A691C 7F071DEC 3718FFF8 */ ori $t8, (0x5FFEFFF8 & 0xFFFF) # ori $t8, $t8, 0xfff8 +/* 0A6920 7F071DF0 AC580004 */ sw $t8, 4($v0) +/* 0A6924 7F071DF4 AC4D0000 */ sw $t5, ($v0) +/* 0A6928 7F071DF8 8C990004 */ lw $t9, 4($a0) +/* 0A692C 7F071DFC 3C0EC410 */ lui $t6, (0xC41041C8 >> 16) # lui $t6, 0xc410 +/* 0A6930 7F071E00 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 0A6934 7F071E04 1320000A */ beqz $t9, .L7F071E30 +/* 0A6938 7F071E08 35CE41C8 */ ori $t6, (0xC41041C8 & 0xFFFF) # ori $t6, $t6, 0x41c8 +/* 0A693C 7F071E0C 8C82000C */ lw $v0, 0xc($a0) +/* 0A6940 7F071E10 3C0DC410 */ lui $t5, (0xC41049D8 >> 16) # lui $t5, 0xc410 +/* 0A6944 7F071E14 35AD49D8 */ ori $t5, (0xC41049D8 & 0xFFFF) # ori $t5, $t5, 0x49d8 +/* 0A6948 7F071E18 244E0008 */ addiu $t6, $v0, 8 +/* 0A694C 7F071E1C AC8E000C */ sw $t6, 0xc($a0) +/* 0A6950 7F071E20 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 0A6954 7F071E24 AC4F0000 */ sw $t7, ($v0) +/* 0A6958 7F071E28 03E00008 */ jr $ra +/* 0A695C 7F071E2C AC4D0004 */ sw $t5, 4($v0) + +.L7F071E30: +/* 0A6960 7F071E30 8C82000C */ lw $v0, 0xc($a0) +/* 0A6964 7F071E34 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 +/* 0A6968 7F071E38 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d +/* 0A696C 7F071E3C 24580008 */ addiu $t8, $v0, 8 +/* 0A6970 7F071E40 AC98000C */ sw $t8, 0xc($a0) +/* 0A6974 7F071E44 AC4E0004 */ sw $t6, 4($v0) +/* 0A6978 7F071E48 03E00008 */ jr $ra +/* 0A697C 7F071E4C AC590000 */ sw $t9, ($v0) + +/* 0A6980 7F071E50 24010009 */ li $at, 9 +.L7F071E54: +/* 0A6984 7F071E54 544100E6 */ bnel $v0, $at, .L7F0721F0 +/* 0A6988 7F071E58 24010004 */ li $at, 4 +/* 0A698C 7F071E5C 8C8F0034 */ lw $t7, 0x34($a0) +/* 0A6990 7F071E60 3C190010 */ lui $t9, 0x10 +/* 0A6994 7F071E64 3C18E700 */ lui $t8, 0xe700 +/* 0A6998 7F071E68 31ED00FF */ andi $t5, $t7, 0xff +/* 0A699C 7F071E6C 15A00070 */ bnez $t5, .L7F072030 +/* 0A69A0 7F071E70 3C0F0010 */ lui $t7, 0x10 +/* 0A69A4 7F071E74 8C82000C */ lw $v0, 0xc($a0) +/* 0A69A8 7F071E78 8C890038 */ lw $t1, 0x38($a0) +/* 0A69AC 7F071E7C 3C0FE700 */ lui $t7, 0xe700 +/* 0A69B0 7F071E80 244E0008 */ addiu $t6, $v0, 8 +/* 0A69B4 7F071E84 AC8E000C */ sw $t6, 0xc($a0) +/* 0A69B8 7F071E88 AC400004 */ sw $zero, 4($v0) +/* 0A69BC 7F071E8C AC4F0000 */ sw $t7, ($v0) +/* 0A69C0 7F071E90 8C82000C */ lw $v0, 0xc($a0) +/* 0A69C4 7F071E94 3C18BA00 */ lui $t8, (0xBA001402 >> 16) # lui $t8, 0xba00 +/* 0A69C8 7F071E98 37181402 */ ori $t8, (0xBA001402 & 0xFFFF) # ori $t8, $t8, 0x1402 +/* 0A69CC 7F071E9C 244D0008 */ addiu $t5, $v0, 8 +/* 0A69D0 7F071EA0 AC8D000C */ sw $t5, 0xc($a0) +/* 0A69D4 7F071EA4 AC590004 */ sw $t9, 4($v0) +/* 0A69D8 7F071EA8 AC580000 */ sw $t8, ($v0) +/* 0A69DC 7F071EAC 8C82000C */ lw $v0, 0xc($a0) +/* 0A69E0 7F071EB0 00093C02 */ srl $a3, $t1, 0x10 +/* 0A69E4 7F071EB4 30F900FF */ andi $t9, $a3, 0xff +/* 0A69E8 7F071EB8 244E0008 */ addiu $t6, $v0, 8 +/* 0A69EC 7F071EBC AC8E000C */ sw $t6, 0xc($a0) +/* 0A69F0 7F071EC0 3C0FF800 */ lui $t7, 0xf800 +/* 0A69F4 7F071EC4 00093602 */ srl $a2, $t1, 0x18 +/* 0A69F8 7F071EC8 0006C600 */ sll $t8, $a2, 0x18 +/* 0A69FC 7F071ECC 00197400 */ sll $t6, $t9, 0x10 +/* 0A6A00 7F071ED0 00094202 */ srl $t0, $t1, 8 +/* 0A6A04 7F071ED4 AC4F0000 */ sw $t7, ($v0) +/* 0A6A08 7F071ED8 030E7825 */ or $t7, $t8, $t6 +/* 0A6A0C 7F071EDC 310D00FF */ andi $t5, $t0, 0xff +/* 0A6A10 7F071EE0 000DCA00 */ sll $t9, $t5, 8 +/* 0A6A14 7F071EE4 01F9C025 */ or $t8, $t7, $t9 +/* 0A6A18 7F071EE8 312E00FF */ andi $t6, $t1, 0xff +/* 0A6A1C 7F071EEC 030E6825 */ or $t5, $t8, $t6 +/* 0A6A20 7F071EF0 AC4D0004 */ sw $t5, 4($v0) +/* 0A6A24 7F071EF4 8C82000C */ lw $v0, 0xc($a0) +/* 0A6A28 7F071EF8 2418FFFF */ li $t8, -1 +/* 0A6A2C 7F071EFC 3C19FB00 */ lui $t9, 0xfb00 +/* 0A6A30 7F071F00 244F0008 */ addiu $t7, $v0, 8 +/* 0A6A34 7F071F04 AC8F000C */ sw $t7, 0xc($a0) +/* 0A6A38 7F071F08 AC580004 */ sw $t8, 4($v0) +/* 0A6A3C 7F071F0C AC590000 */ sw $t9, ($v0) +/* 0A6A40 7F071F10 8C82000C */ lw $v0, 0xc($a0) +/* 0A6A44 7F071F14 3C0DFA00 */ lui $t5, 0xfa00 +/* 0A6A48 7F071F18 3C191F10 */ lui $t9, (0x1F1093FB >> 16) # lui $t9, 0x1f10 +/* 0A6A4C 7F071F1C 244E0008 */ addiu $t6, $v0, 8 +/* 0A6A50 7F071F20 AC8E000C */ sw $t6, 0xc($a0) +/* 0A6A54 7F071F24 AC4D0000 */ sw $t5, ($v0) +/* 0A6A58 7F071F28 8C8F0034 */ lw $t7, 0x34($a0) +/* 0A6A5C 7F071F2C 373993FB */ ori $t9, (0x1F1093FB & 0xFFFF) # ori $t9, $t9, 0x93fb +/* 0A6A60 7F071F30 000FC202 */ srl $t8, $t7, 8 +/* 0A6A64 7F071F34 330E00FF */ andi $t6, $t8, 0xff +/* 0A6A68 7F071F38 10A00020 */ beqz $a1, .L7F071FBC +/* 0A6A6C 7F071F3C AC4E0004 */ sw $t6, 4($v0) +/* 0A6A70 7F071F40 8C82000C */ lw $v0, 0xc($a0) +/* 0A6A74 7F071F44 3C0FFC26 */ lui $t7, (0xFC26A004 >> 16) # lui $t7, 0xfc26 +/* 0A6A78 7F071F48 3C191F10 */ lui $t9, (0x1F1093FB >> 16) # lui $t9, 0x1f10 +/* 0A6A7C 7F071F4C 244D0008 */ addiu $t5, $v0, 8 +/* 0A6A80 7F071F50 AC8D000C */ sw $t5, 0xc($a0) +/* 0A6A84 7F071F54 373993FB */ ori $t9, (0x1F1093FB & 0xFFFF) # ori $t9, $t9, 0x93fb +/* 0A6A88 7F071F58 35EFA004 */ ori $t7, (0xFC26A004 & 0xFFFF) # ori $t7, $t7, 0xa004 +/* 0A6A8C 7F071F5C AC4F0000 */ sw $t7, ($v0) +/* 0A6A90 7F071F60 AC590004 */ sw $t9, 4($v0) +/* 0A6A94 7F071F64 8C980004 */ lw $t8, 4($a0) +/* 0A6A98 7F071F68 3C0EC411 */ lui $t6, (0xC4112048 >> 16) # lui $t6, 0xc411 +/* 0A6A9C 7F071F6C 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 +/* 0A6AA0 7F071F70 1300000A */ beqz $t8, .L7F071F9C +/* 0A6AA4 7F071F74 35CE2048 */ ori $t6, (0xC4112048 & 0xFFFF) # ori $t6, $t6, 0x2048 +/* 0A6AA8 7F071F78 8C82000C */ lw $v0, 0xc($a0) +/* 0A6AAC 7F071F7C 3C0FC411 */ lui $t7, (0xC4112078 >> 16) # lui $t7, 0xc411 +/* 0A6AB0 7F071F80 35EF2078 */ ori $t7, (0xC4112078 & 0xFFFF) # ori $t7, $t7, 0x2078 +/* 0A6AB4 7F071F84 244E0008 */ addiu $t6, $v0, 8 +/* 0A6AB8 7F071F88 AC8E000C */ sw $t6, 0xc($a0) +/* 0A6ABC 7F071F8C 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d +/* 0A6AC0 7F071F90 AC4D0000 */ sw $t5, ($v0) +/* 0A6AC4 7F071F94 03E00008 */ jr $ra +/* 0A6AC8 7F071F98 AC4F0004 */ sw $t7, 4($v0) + +.L7F071F9C: +/* 0A6ACC 7F071F9C 8C82000C */ lw $v0, 0xc($a0) +/* 0A6AD0 7F071FA0 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 +/* 0A6AD4 7F071FA4 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d +/* 0A6AD8 7F071FA8 24590008 */ addiu $t9, $v0, 8 +/* 0A6ADC 7F071FAC AC99000C */ sw $t9, 0xc($a0) +/* 0A6AE0 7F071FB0 AC4E0004 */ sw $t6, 4($v0) +/* 0A6AE4 7F071FB4 03E00008 */ jr $ra +/* 0A6AE8 7F071FB8 AC580000 */ sw $t8, ($v0) + +.L7F071FBC: +/* 0A6AEC 7F071FBC 8C82000C */ lw $v0, 0xc($a0) +/* 0A6AF0 7F071FC0 3C0FFC26 */ lui $t7, (0xFC26A004 >> 16) # lui $t7, 0xfc26 +/* 0A6AF4 7F071FC4 35EFA004 */ ori $t7, (0xFC26A004 & 0xFFFF) # ori $t7, $t7, 0xa004 +/* 0A6AF8 7F071FC8 244D0008 */ addiu $t5, $v0, 8 +/* 0A6AFC 7F071FCC AC8D000C */ sw $t5, 0xc($a0) +/* 0A6B00 7F071FD0 AC590004 */ sw $t9, 4($v0) +/* 0A6B04 7F071FD4 AC4F0000 */ sw $t7, ($v0) +/* 0A6B08 7F071FD8 8C980004 */ lw $t8, 4($a0) +/* 0A6B0C 7F071FDC 3C0EC410 */ lui $t6, (0xC41041C8 >> 16) # lui $t6, 0xc410 +/* 0A6B10 7F071FE0 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 +/* 0A6B14 7F071FE4 1300000A */ beqz $t8, .L7F072010 +/* 0A6B18 7F071FE8 35CE41C8 */ ori $t6, (0xC41041C8 & 0xFFFF) # ori $t6, $t6, 0x41c8 +/* 0A6B1C 7F071FEC 8C82000C */ lw $v0, 0xc($a0) +/* 0A6B20 7F071FF0 3C0FC410 */ lui $t7, (0xC41049D8 >> 16) # lui $t7, 0xc410 +/* 0A6B24 7F071FF4 35EF49D8 */ ori $t7, (0xC41049D8 & 0xFFFF) # ori $t7, $t7, 0x49d8 +/* 0A6B28 7F071FF8 244E0008 */ addiu $t6, $v0, 8 +/* 0A6B2C 7F071FFC AC8E000C */ sw $t6, 0xc($a0) +/* 0A6B30 7F072000 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d +/* 0A6B34 7F072004 AC4D0000 */ sw $t5, ($v0) +/* 0A6B38 7F072008 03E00008 */ jr $ra +/* 0A6B3C 7F07200C AC4F0004 */ sw $t7, 4($v0) + +.L7F072010: +/* 0A6B40 7F072010 8C82000C */ lw $v0, 0xc($a0) +/* 0A6B44 7F072014 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 +/* 0A6B48 7F072018 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d +/* 0A6B4C 7F07201C 24590008 */ addiu $t9, $v0, 8 +/* 0A6B50 7F072020 AC99000C */ sw $t9, 0xc($a0) +/* 0A6B54 7F072024 AC4E0004 */ sw $t6, 4($v0) +/* 0A6B58 7F072028 03E00008 */ jr $ra +/* 0A6B5C 7F07202C AC580000 */ sw $t8, ($v0) + +.L7F072030: +/* 0A6B60 7F072030 8C82000C */ lw $v0, 0xc($a0) +/* 0A6B64 7F072034 8C890038 */ lw $t1, 0x38($a0) +/* 0A6B68 7F072038 3C0DBA00 */ lui $t5, (0xBA001402 >> 16) # lui $t5, 0xba00 +/* 0A6B6C 7F07203C 24590008 */ addiu $t9, $v0, 8 +/* 0A6B70 7F072040 AC99000C */ sw $t9, 0xc($a0) +/* 0A6B74 7F072044 AC400004 */ sw $zero, 4($v0) +/* 0A6B78 7F072048 AC580000 */ sw $t8, ($v0) +/* 0A6B7C 7F07204C 8C82000C */ lw $v0, 0xc($a0) +/* 0A6B80 7F072050 35AD1402 */ ori $t5, (0xBA001402 & 0xFFFF) # ori $t5, $t5, 0x1402 +/* 0A6B84 7F072054 00093C02 */ srl $a3, $t1, 0x10 +/* 0A6B88 7F072058 244E0008 */ addiu $t6, $v0, 8 +/* 0A6B8C 7F07205C AC8E000C */ sw $t6, 0xc($a0) +/* 0A6B90 7F072060 AC4F0004 */ sw $t7, 4($v0) +/* 0A6B94 7F072064 AC4D0000 */ sw $t5, ($v0) +/* 0A6B98 7F072068 8C82000C */ lw $v0, 0xc($a0) +/* 0A6B9C 7F07206C 30EF00FF */ andi $t7, $a3, 0xff +/* 0A6BA0 7F072070 3C18F800 */ lui $t8, 0xf800 +/* 0A6BA4 7F072074 24590008 */ addiu $t9, $v0, 8 +/* 0A6BA8 7F072078 AC99000C */ sw $t9, 0xc($a0) +/* 0A6BAC 7F07207C 00093602 */ srl $a2, $t1, 0x18 +/* 0A6BB0 7F072080 00066E00 */ sll $t5, $a2, 0x18 +/* 0A6BB4 7F072084 000FCC00 */ sll $t9, $t7, 0x10 +/* 0A6BB8 7F072088 00094202 */ srl $t0, $t1, 8 +/* 0A6BBC 7F07208C AC580000 */ sw $t8, ($v0) +/* 0A6BC0 7F072090 01B9C025 */ or $t8, $t5, $t9 +/* 0A6BC4 7F072094 310E00FF */ andi $t6, $t0, 0xff +/* 0A6BC8 7F072098 000E7A00 */ sll $t7, $t6, 8 +/* 0A6BCC 7F07209C 030F6825 */ or $t5, $t8, $t7 +/* 0A6BD0 7F0720A0 313900FF */ andi $t9, $t1, 0xff +/* 0A6BD4 7F0720A4 01B97025 */ or $t6, $t5, $t9 +/* 0A6BD8 7F0720A8 AC4E0004 */ sw $t6, 4($v0) +/* 0A6BDC 7F0720AC 8C82000C */ lw $v0, 0xc($a0) +/* 0A6BE0 7F0720B0 3C0FFB00 */ lui $t7, 0xfb00 +/* 0A6BE4 7F0720B4 24580008 */ addiu $t8, $v0, 8 +/* 0A6BE8 7F0720B8 AC98000C */ sw $t8, 0xc($a0) +/* 0A6BEC 7F0720BC AC4F0000 */ sw $t7, ($v0) +/* 0A6BF0 7F0720C0 8C990034 */ lw $t9, 0x34($a0) +/* 0A6BF4 7F0720C4 3C0FFC26 */ lui $t7, (0xFC26E804 >> 16) # lui $t7, 0xfc26 +/* 0A6BF8 7F0720C8 35EFE804 */ ori $t7, (0xFC26E804 & 0xFFFF) # ori $t7, $t7, 0xe804 +/* 0A6BFC 7F0720CC 332E00FF */ andi $t6, $t9, 0xff +/* 0A6C00 7F0720D0 10A0001E */ beqz $a1, .L7F07214C +/* 0A6C04 7F0720D4 AC4E0004 */ sw $t6, 4($v0) +/* 0A6C08 7F0720D8 8C82000C */ lw $v0, 0xc($a0) +/* 0A6C0C 7F0720DC 3C0D1FFC */ lui $t5, (0x1FFCFBF8 >> 16) # lui $t5, 0x1ffc +/* 0A6C10 7F0720E0 35ADFBF8 */ ori $t5, (0x1FFCFBF8 & 0xFFFF) # ori $t5, $t5, 0xfbf8 +/* 0A6C14 7F0720E4 24580008 */ addiu $t8, $v0, 8 +/* 0A6C18 7F0720E8 AC98000C */ sw $t8, 0xc($a0) +/* 0A6C1C 7F0720EC AC4D0004 */ sw $t5, 4($v0) +/* 0A6C20 7F0720F0 AC4F0000 */ sw $t7, ($v0) +/* 0A6C24 7F0720F4 8C990004 */ lw $t9, 4($a0) +/* 0A6C28 7F0720F8 3C0EC411 */ lui $t6, (0xC4113048 >> 16) # lui $t6, 0xc411 +/* 0A6C2C 7F0720FC 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 +/* 0A6C30 7F072100 1320000A */ beqz $t9, .L7F07212C +/* 0A6C34 7F072104 35CE3048 */ ori $t6, (0xC4113048 & 0xFFFF) # ori $t6, $t6, 0x3048 +/* 0A6C38 7F072108 8C82000C */ lw $v0, 0xc($a0) +/* 0A6C3C 7F07210C 3C0FC411 */ lui $t7, (0xC4113078 >> 16) # lui $t7, 0xc411 +/* 0A6C40 7F072110 35EF3078 */ ori $t7, (0xC4113078 & 0xFFFF) # ori $t7, $t7, 0x3078 +/* 0A6C44 7F072114 244E0008 */ addiu $t6, $v0, 8 +/* 0A6C48 7F072118 AC8E000C */ sw $t6, 0xc($a0) +/* 0A6C4C 7F07211C 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d +/* 0A6C50 7F072120 AC580000 */ sw $t8, ($v0) +/* 0A6C54 7F072124 03E00008 */ jr $ra +/* 0A6C58 7F072128 AC4F0004 */ sw $t7, 4($v0) + +.L7F07212C: +/* 0A6C5C 7F07212C 8C82000C */ lw $v0, 0xc($a0) +/* 0A6C60 7F072130 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 +/* 0A6C64 7F072134 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d +/* 0A6C68 7F072138 244D0008 */ addiu $t5, $v0, 8 +/* 0A6C6C 7F07213C AC8D000C */ sw $t5, 0xc($a0) +/* 0A6C70 7F072140 AC4E0004 */ sw $t6, 4($v0) +/* 0A6C74 7F072144 03E00008 */ jr $ra +/* 0A6C78 7F072148 AC590000 */ sw $t9, ($v0) + +.L7F07214C: +/* 0A6C7C 7F07214C 8C82000C */ lw $v0, 0xc($a0) +/* 0A6C80 7F072150 3C0FFA00 */ lui $t7, 0xfa00 +/* 0A6C84 7F072154 3C191FCC */ lui $t9, (0x1FCCDFF8 >> 16) # lui $t9, 0x1fcc +/* 0A6C88 7F072158 24580008 */ addiu $t8, $v0, 8 +/* 0A6C8C 7F07215C AC98000C */ sw $t8, 0xc($a0) +/* 0A6C90 7F072160 AC4F0000 */ sw $t7, ($v0) +/* 0A6C94 7F072164 8C8D0034 */ lw $t5, 0x34($a0) +/* 0A6C98 7F072168 3739DFF8 */ ori $t9, (0x1FCCDFF8 & 0xFFFF) # ori $t9, $t9, 0xdff8 +/* 0A6C9C 7F07216C 000D7202 */ srl $t6, $t5, 8 +/* 0A6CA0 7F072170 31D800FF */ andi $t8, $t6, 0xff +/* 0A6CA4 7F072174 AC580004 */ sw $t8, 4($v0) +/* 0A6CA8 7F072178 8C82000C */ lw $v0, 0xc($a0) +/* 0A6CAC 7F07217C 3C0DFC26 */ lui $t5, (0xFC26C204 >> 16) # lui $t5, 0xfc26 +/* 0A6CB0 7F072180 35ADC204 */ ori $t5, (0xFC26C204 & 0xFFFF) # ori $t5, $t5, 0xc204 +/* 0A6CB4 7F072184 244F0008 */ addiu $t7, $v0, 8 +/* 0A6CB8 7F072188 AC8F000C */ sw $t7, 0xc($a0) +/* 0A6CBC 7F07218C AC590004 */ sw $t9, 4($v0) +/* 0A6CC0 7F072190 AC4D0000 */ sw $t5, ($v0) +/* 0A6CC4 7F072194 8C8E0004 */ lw $t6, 4($a0) +/* 0A6CC8 7F072198 3C18C411 */ lui $t8, (0xC4113048 >> 16) # lui $t8, 0xc411 +/* 0A6CCC 7F07219C 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 0A6CD0 7F0721A0 11C0000A */ beqz $t6, .L7F0721CC +/* 0A6CD4 7F0721A4 37183048 */ ori $t8, (0xC4113048 & 0xFFFF) # ori $t8, $t8, 0x3048 +/* 0A6CD8 7F0721A8 8C82000C */ lw $v0, 0xc($a0) +/* 0A6CDC 7F0721AC 3C0DC411 */ lui $t5, (0xC4113078 >> 16) # lui $t5, 0xc411 +/* 0A6CE0 7F0721B0 35AD3078 */ ori $t5, (0xC4113078 & 0xFFFF) # ori $t5, $t5, 0x3078 +/* 0A6CE4 7F0721B4 24580008 */ addiu $t8, $v0, 8 +/* 0A6CE8 7F0721B8 AC98000C */ sw $t8, 0xc($a0) +/* 0A6CEC 7F0721BC 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 0A6CF0 7F0721C0 AC4F0000 */ sw $t7, ($v0) +/* 0A6CF4 7F0721C4 03E00008 */ jr $ra +/* 0A6CF8 7F0721C8 AC4D0004 */ sw $t5, 4($v0) + +.L7F0721CC: +/* 0A6CFC 7F0721CC 8C82000C */ lw $v0, 0xc($a0) +/* 0A6D00 7F0721D0 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0A6D04 7F0721D4 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0A6D08 7F0721D8 24590008 */ addiu $t9, $v0, 8 +/* 0A6D0C 7F0721DC AC99000C */ sw $t9, 0xc($a0) +/* 0A6D10 7F0721E0 AC580004 */ sw $t8, 4($v0) +/* 0A6D14 7F0721E4 03E00008 */ jr $ra +/* 0A6D18 7F0721E8 AC4E0000 */ sw $t6, ($v0) + +/* 0A6D1C 7F0721EC 24010004 */ li $at, 4 +.L7F0721F0: +/* 0A6D20 7F0721F0 14410057 */ bne $v0, $at, .L7F072350 +/* 0A6D24 7F0721F4 3C0EE700 */ lui $t6, 0xe700 +/* 0A6D28 7F0721F8 8C82000C */ lw $v0, 0xc($a0) +/* 0A6D2C 7F0721FC 8C890034 */ lw $t1, 0x34($a0) +/* 0A6D30 7F072200 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00 +/* 0A6D34 7F072204 24590008 */ addiu $t9, $v0, 8 +/* 0A6D38 7F072208 AC99000C */ sw $t9, 0xc($a0) +/* 0A6D3C 7F07220C AC400004 */ sw $zero, 4($v0) +/* 0A6D40 7F072210 AC4E0000 */ sw $t6, ($v0) +/* 0A6D44 7F072214 8C82000C */ lw $v0, 0xc($a0) +/* 0A6D48 7F072218 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402 +/* 0A6D4C 7F07221C 3C0D0010 */ lui $t5, 0x10 +/* 0A6D50 7F072220 24580008 */ addiu $t8, $v0, 8 +/* 0A6D54 7F072224 AC98000C */ sw $t8, 0xc($a0) +/* 0A6D58 7F072228 AC4D0004 */ sw $t5, 4($v0) +/* 0A6D5C 7F07222C AC4F0000 */ sw $t7, ($v0) +/* 0A6D60 7F072230 8C82000C */ lw $v0, 0xc($a0) +/* 0A6D64 7F072234 00093C02 */ srl $a3, $t1, 0x10 +/* 0A6D68 7F072238 30ED00FF */ andi $t5, $a3, 0xff +/* 0A6D6C 7F07223C 24590008 */ addiu $t9, $v0, 8 +/* 0A6D70 7F072240 AC99000C */ sw $t9, 0xc($a0) +/* 0A6D74 7F072244 3C0EF800 */ lui $t6, 0xf800 +/* 0A6D78 7F072248 00093602 */ srl $a2, $t1, 0x18 +/* 0A6D7C 7F07224C 00067E00 */ sll $t7, $a2, 0x18 +/* 0A6D80 7F072250 000DCC00 */ sll $t9, $t5, 0x10 +/* 0A6D84 7F072254 00094202 */ srl $t0, $t1, 8 +/* 0A6D88 7F072258 AC4E0000 */ sw $t6, ($v0) +/* 0A6D8C 7F07225C 01F97025 */ or $t6, $t7, $t9 +/* 0A6D90 7F072260 311800FF */ andi $t8, $t0, 0xff +/* 0A6D94 7F072264 00186A00 */ sll $t5, $t8, 8 +/* 0A6D98 7F072268 01CD7825 */ or $t7, $t6, $t5 +/* 0A6D9C 7F07226C 313900FF */ andi $t9, $t1, 0xff +/* 0A6DA0 7F072270 01F9C025 */ or $t8, $t7, $t9 +/* 0A6DA4 7F072274 AC580004 */ sw $t8, 4($v0) +/* 0A6DA8 7F072278 8C82000C */ lw $v0, 0xc($a0) +/* 0A6DAC 7F07227C 3C0F1F10 */ lui $t7, (0x1F1093FF >> 16) # lui $t7, 0x1f10 +/* 0A6DB0 7F072280 3C0DFC26 */ lui $t5, (0xFC26A004 >> 16) # lui $t5, 0xfc26 +/* 0A6DB4 7F072284 244E0008 */ addiu $t6, $v0, 8 +/* 0A6DB8 7F072288 AC8E000C */ sw $t6, 0xc($a0) +/* 0A6DBC 7F07228C 35ADA004 */ ori $t5, (0xFC26A004 & 0xFFFF) # ori $t5, $t5, 0xa004 +/* 0A6DC0 7F072290 35EF93FF */ ori $t7, (0x1F1093FF & 0xFFFF) # ori $t7, $t7, 0x93ff +/* 0A6DC4 7F072294 AC4F0004 */ sw $t7, 4($v0) +/* 0A6DC8 7F072298 10A00017 */ beqz $a1, .L7F0722F8 +/* 0A6DCC 7F07229C AC4D0000 */ sw $t5, ($v0) +/* 0A6DD0 7F0722A0 8C990004 */ lw $t9, 4($a0) +/* 0A6DD4 7F0722A4 3C18C411 */ lui $t8, (0xC4112048 >> 16) # lui $t8, 0xc411 +/* 0A6DD8 7F0722A8 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0A6DDC 7F0722AC 1320000A */ beqz $t9, .L7F0722D8 +/* 0A6DE0 7F0722B0 37182048 */ ori $t8, (0xC4112048 & 0xFFFF) # ori $t8, $t8, 0x2048 +/* 0A6DE4 7F0722B4 8C82000C */ lw $v0, 0xc($a0) +/* 0A6DE8 7F0722B8 3C0DC411 */ lui $t5, (0xC4112078 >> 16) # lui $t5, 0xc411 +/* 0A6DEC 7F0722BC 35AD2078 */ ori $t5, (0xC4112078 & 0xFFFF) # ori $t5, $t5, 0x2078 +/* 0A6DF0 7F0722C0 24580008 */ addiu $t8, $v0, 8 +/* 0A6DF4 7F0722C4 AC98000C */ sw $t8, 0xc($a0) +/* 0A6DF8 7F0722C8 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0A6DFC 7F0722CC AC4E0000 */ sw $t6, ($v0) +/* 0A6E00 7F0722D0 03E00008 */ jr $ra +/* 0A6E04 7F0722D4 AC4D0004 */ sw $t5, 4($v0) + +.L7F0722D8: +/* 0A6E08 7F0722D8 8C82000C */ lw $v0, 0xc($a0) +/* 0A6E0C 7F0722DC 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 +/* 0A6E10 7F0722E0 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d +/* 0A6E14 7F0722E4 244F0008 */ addiu $t7, $v0, 8 +/* 0A6E18 7F0722E8 AC8F000C */ sw $t7, 0xc($a0) +/* 0A6E1C 7F0722EC AC580004 */ sw $t8, 4($v0) +/* 0A6E20 7F0722F0 03E00008 */ jr $ra +/* 0A6E24 7F0722F4 AC590000 */ sw $t9, ($v0) + +.L7F0722F8: +/* 0A6E28 7F0722F8 8C8E0004 */ lw $t6, 4($a0) +/* 0A6E2C 7F0722FC 3C0DC410 */ lui $t5, (0xC41041C8 >> 16) # lui $t5, 0xc410 +/* 0A6E30 7F072300 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 0A6E34 7F072304 11C0000A */ beqz $t6, .L7F072330 +/* 0A6E38 7F072308 35AD41C8 */ ori $t5, (0xC41041C8 & 0xFFFF) # ori $t5, $t5, 0x41c8 +/* 0A6E3C 7F07230C 8C82000C */ lw $v0, 0xc($a0) +/* 0A6E40 7F072310 3C19C410 */ lui $t9, (0xC41049D8 >> 16) # lui $t9, 0xc410 +/* 0A6E44 7F072314 373949D8 */ ori $t9, (0xC41049D8 & 0xFFFF) # ori $t9, $t9, 0x49d8 +/* 0A6E48 7F072318 244D0008 */ addiu $t5, $v0, 8 +/* 0A6E4C 7F07231C AC8D000C */ sw $t5, 0xc($a0) +/* 0A6E50 7F072320 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 0A6E54 7F072324 AC4F0000 */ sw $t7, ($v0) +/* 0A6E58 7F072328 03E00008 */ jr $ra +/* 0A6E5C 7F07232C AC590004 */ sw $t9, 4($v0) + +.L7F072330: +/* 0A6E60 7F072330 8C82000C */ lw $v0, 0xc($a0) +/* 0A6E64 7F072334 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0A6E68 7F072338 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0A6E6C 7F07233C 24580008 */ addiu $t8, $v0, 8 +/* 0A6E70 7F072340 AC98000C */ sw $t8, 0xc($a0) +/* 0A6E74 7F072344 AC4D0004 */ sw $t5, 4($v0) +/* 0A6E78 7F072348 03E00008 */ jr $ra +/* 0A6E7C 7F07234C AC4E0000 */ sw $t6, ($v0) + +.L7F072350: +/* 0A6E80 7F072350 24010005 */ li $at, 5 +/* 0A6E84 7F072354 14410070 */ bne $v0, $at, .L7F072518 +/* 0A6E88 7F072358 3C18E700 */ lui $t8, 0xe700 +/* 0A6E8C 7F07235C 8C82000C */ lw $v0, 0xc($a0) +/* 0A6E90 7F072360 3C19E700 */ lui $t9, 0xe700 +/* 0A6E94 7F072364 3C0EBA00 */ lui $t6, (0xBA001402 >> 16) # lui $t6, 0xba00 +/* 0A6E98 7F072368 244F0008 */ addiu $t7, $v0, 8 +/* 0A6E9C 7F07236C AC8F000C */ sw $t7, 0xc($a0) +/* 0A6EA0 7F072370 AC400004 */ sw $zero, 4($v0) +/* 0A6EA4 7F072374 AC590000 */ sw $t9, ($v0) +/* 0A6EA8 7F072378 8C82000C */ lw $v0, 0xc($a0) +/* 0A6EAC 7F07237C 35CE1402 */ ori $t6, (0xBA001402 & 0xFFFF) # ori $t6, $t6, 0x1402 +/* 0A6EB0 7F072380 3C0D0010 */ lui $t5, 0x10 +/* 0A6EB4 7F072384 24580008 */ addiu $t8, $v0, 8 +/* 0A6EB8 7F072388 AC98000C */ sw $t8, 0xc($a0) +/* 0A6EBC 7F07238C AC4D0004 */ sw $t5, 4($v0) +/* 0A6EC0 7F072390 AC4E0000 */ sw $t6, ($v0) +/* 0A6EC4 7F072394 8C82000C */ lw $v0, 0xc($a0) +/* 0A6EC8 7F072398 8C8B0038 */ lw $t3, 0x38($a0) +/* 0A6ECC 7F07239C 3C0EF800 */ lui $t6, 0xf800 +/* 0A6ED0 7F0723A0 24580008 */ addiu $t8, $v0, 8 +/* 0A6ED4 7F0723A4 AC98000C */ sw $t8, 0xc($a0) +/* 0A6ED8 7F0723A8 000B4C02 */ srl $t1, $t3, 0x10 +/* 0A6EDC 7F0723AC 313900FF */ andi $t9, $t1, 0xff +/* 0A6EE0 7F0723B0 000B4602 */ srl $t0, $t3, 0x18 +/* 0A6EE4 7F0723B4 00087E00 */ sll $t7, $t0, 0x18 +/* 0A6EE8 7F0723B8 0019C400 */ sll $t8, $t9, 0x10 +/* 0A6EEC 7F0723BC AC4E0000 */ sw $t6, ($v0) +/* 0A6EF0 7F0723C0 000B5202 */ srl $t2, $t3, 8 +/* 0A6EF4 7F0723C4 314D00FF */ andi $t5, $t2, 0xff +/* 0A6EF8 7F0723C8 01F87025 */ or $t6, $t7, $t8 +/* 0A6EFC 7F0723CC 000DCA00 */ sll $t9, $t5, 8 +/* 0A6F00 7F0723D0 01D97825 */ or $t7, $t6, $t9 +/* 0A6F04 7F0723D4 317800FF */ andi $t8, $t3, 0xff +/* 0A6F08 7F0723D8 01F86825 */ or $t5, $t7, $t8 +/* 0A6F0C 7F0723DC AC4D0004 */ sw $t5, 4($v0) +/* 0A6F10 7F0723E0 8C8E0034 */ lw $t6, 0x34($a0) +/* 0A6F14 7F0723E4 3C18FC26 */ lui $t8, (0xFC26A004 >> 16) # lui $t8, 0xfc26 +/* 0A6F18 7F0723E8 3718A004 */ ori $t8, (0xFC26A004 & 0xFFFF) # ori $t8, $t8, 0xa004 +/* 0A6F1C 7F0723EC 31D900FF */ andi $t9, $t6, 0xff +/* 0A6F20 7F0723F0 2B2100FF */ slti $at, $t9, 0xff +/* 0A6F24 7F0723F4 1020002B */ beqz $at, .L7F0724A4 +/* 0A6F28 7F0723F8 332D00FF */ andi $t5, $t9, 0xff +/* 0A6F2C 7F0723FC 8C82000C */ lw $v0, 0xc($a0) +/* 0A6F30 7F072400 2401FF00 */ li $at, -256 +/* 0A6F34 7F072404 01A17025 */ or $t6, $t5, $at +/* 0A6F38 7F072408 244F0008 */ addiu $t7, $v0, 8 +/* 0A6F3C 7F07240C AC8F000C */ sw $t7, 0xc($a0) +/* 0A6F40 7F072410 3C18FB00 */ lui $t8, 0xfb00 +/* 0A6F44 7F072414 AC580000 */ sw $t8, ($v0) +/* 0A6F48 7F072418 10A00018 */ beqz $a1, .L7F07247C +/* 0A6F4C 7F07241C AC4E0004 */ sw $t6, 4($v0) +/* 0A6F50 7F072420 8C990034 */ lw $t9, 0x34($a0) +/* 0A6F54 7F072424 3C181F10 */ lui $t8, (0x1F10FFFF >> 16) # lui $t8, 0x1f10 +/* 0A6F58 7F072428 3C0DFC26 */ lui $t5, (0xFC26EA04 >> 16) # lui $t5, 0xfc26 +/* 0A6F5C 7F07242C 332FFF00 */ andi $t7, $t9, 0xff00 +/* 0A6F60 7F072430 11E0000A */ beqz $t7, .L7F07245C +/* 0A6F64 7F072434 3718FFFF */ ori $t8, (0x1F10FFFF & 0xFFFF) # ori $t8, $t8, 0xffff +/* 0A6F68 7F072438 8C82000C */ lw $v0, 0xc($a0) +/* 0A6F6C 7F07243C 3C0E1F10 */ lui $t6, (0x1F10CFFF >> 16) # lui $t6, 0x1f10 +/* 0A6F70 7F072440 35CECFFF */ ori $t6, (0x1F10CFFF & 0xFFFF) # ori $t6, $t6, 0xcfff +/* 0A6F74 7F072444 24580008 */ addiu $t8, $v0, 8 +/* 0A6F78 7F072448 AC98000C */ sw $t8, 0xc($a0) +/* 0A6F7C 7F07244C 35ADEA04 */ ori $t5, (0xFC26EA04 & 0xFFFF) # ori $t5, $t5, 0xea04 +/* 0A6F80 7F072450 AC4D0000 */ sw $t5, ($v0) +/* 0A6F84 7F072454 1000001A */ b .L7F0724C0 +/* 0A6F88 7F072458 AC4E0004 */ sw $t6, 4($v0) +.L7F07245C: +/* 0A6F8C 7F07245C 8C82000C */ lw $v0, 0xc($a0) +/* 0A6F90 7F072460 3C0FFC26 */ lui $t7, (0xFC26EA04 >> 16) # lui $t7, 0xfc26 +/* 0A6F94 7F072464 35EFEA04 */ ori $t7, (0xFC26EA04 & 0xFFFF) # ori $t7, $t7, 0xea04 +/* 0A6F98 7F072468 24590008 */ addiu $t9, $v0, 8 +/* 0A6F9C 7F07246C AC99000C */ sw $t9, 0xc($a0) +/* 0A6FA0 7F072470 AC580004 */ sw $t8, 4($v0) +/* 0A6FA4 7F072474 10000012 */ b .L7F0724C0 +/* 0A6FA8 7F072478 AC4F0000 */ sw $t7, ($v0) +.L7F07247C: +/* 0A6FAC 7F07247C 8C82000C */ lw $v0, 0xc($a0) +/* 0A6FB0 7F072480 3C0EFC26 */ lui $t6, (0xFC269A04 >> 16) # lui $t6, 0xfc26 +/* 0A6FB4 7F072484 3C191F10 */ lui $t9, (0x1F10FFFF >> 16) # lui $t9, 0x1f10 +/* 0A6FB8 7F072488 244D0008 */ addiu $t5, $v0, 8 +/* 0A6FBC 7F07248C AC8D000C */ sw $t5, 0xc($a0) +/* 0A6FC0 7F072490 3739FFFF */ ori $t9, (0x1F10FFFF & 0xFFFF) # ori $t9, $t9, 0xffff +/* 0A6FC4 7F072494 35CE9A04 */ ori $t6, (0xFC269A04 & 0xFFFF) # ori $t6, $t6, 0x9a04 +/* 0A6FC8 7F072498 AC4E0000 */ sw $t6, ($v0) +/* 0A6FCC 7F07249C 10000008 */ b .L7F0724C0 +/* 0A6FD0 7F0724A0 AC590004 */ sw $t9, 4($v0) +.L7F0724A4: +/* 0A6FD4 7F0724A4 8C82000C */ lw $v0, 0xc($a0) +/* 0A6FD8 7F0724A8 3C0D1F10 */ lui $t5, (0x1F1093FF >> 16) # lui $t5, 0x1f10 +/* 0A6FDC 7F0724AC 35AD93FF */ ori $t5, (0x1F1093FF & 0xFFFF) # ori $t5, $t5, 0x93ff +/* 0A6FE0 7F0724B0 244F0008 */ addiu $t7, $v0, 8 +/* 0A6FE4 7F0724B4 AC8F000C */ sw $t7, 0xc($a0) +/* 0A6FE8 7F0724B8 AC4D0004 */ sw $t5, 4($v0) +/* 0A6FEC 7F0724BC AC580000 */ sw $t8, ($v0) +.L7F0724C0: +/* 0A6FF0 7F0724C0 8C8E0004 */ lw $t6, 4($a0) +/* 0A6FF4 7F0724C4 3C19C410 */ lui $t9, (0xC41041C8 >> 16) # lui $t9, 0xc410 +/* 0A6FF8 7F0724C8 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 0A6FFC 7F0724CC 11C0000A */ beqz $t6, .L7F0724F8 +/* 0A7000 7F0724D0 373941C8 */ ori $t9, (0xC41041C8 & 0xFFFF) # ori $t9, $t9, 0x41c8 +/* 0A7004 7F0724D4 8C82000C */ lw $v0, 0xc($a0) +/* 0A7008 7F0724D8 3C18C410 */ lui $t8, (0xC41049D8 >> 16) # lui $t8, 0xc410 +/* 0A700C 7F0724DC 371849D8 */ ori $t8, (0xC41049D8 & 0xFFFF) # ori $t8, $t8, 0x49d8 +/* 0A7010 7F0724E0 24590008 */ addiu $t9, $v0, 8 +/* 0A7014 7F0724E4 AC99000C */ sw $t9, 0xc($a0) +/* 0A7018 7F0724E8 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 0A701C 7F0724EC AC4F0000 */ sw $t7, ($v0) +/* 0A7020 7F0724F0 03E00008 */ jr $ra +/* 0A7024 7F0724F4 AC580004 */ sw $t8, 4($v0) + +.L7F0724F8: +/* 0A7028 7F0724F8 8C82000C */ lw $v0, 0xc($a0) +/* 0A702C 7F0724FC 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0A7030 7F072500 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0A7034 7F072504 244D0008 */ addiu $t5, $v0, 8 +/* 0A7038 7F072508 AC8D000C */ sw $t5, 0xc($a0) +/* 0A703C 7F07250C AC590004 */ sw $t9, 4($v0) +/* 0A7040 7F072510 03E00008 */ jr $ra +/* 0A7044 7F072514 AC4E0000 */ sw $t6, ($v0) + +.L7F072518: +/* 0A7048 7F072518 8C82000C */ lw $v0, 0xc($a0) +/* 0A704C 7F07251C 3C0EBA00 */ lui $t6, (0xBA001402 >> 16) # lui $t6, 0xba00 +/* 0A7050 7F072520 35CE1402 */ ori $t6, (0xBA001402 & 0xFFFF) # ori $t6, $t6, 0x1402 +/* 0A7054 7F072524 244F0008 */ addiu $t7, $v0, 8 +/* 0A7058 7F072528 AC8F000C */ sw $t7, 0xc($a0) +/* 0A705C 7F07252C AC400004 */ sw $zero, 4($v0) +/* 0A7060 7F072530 AC580000 */ sw $t8, ($v0) +/* 0A7064 7F072534 8C82000C */ lw $v0, 0xc($a0) +/* 0A7068 7F072538 3C190010 */ lui $t9, 0x10 +/* 0A706C 7F07253C 3C18F800 */ lui $t8, 0xf800 +/* 0A7070 7F072540 244D0008 */ addiu $t5, $v0, 8 +/* 0A7074 7F072544 AC8D000C */ sw $t5, 0xc($a0) +/* 0A7078 7F072548 AC590004 */ sw $t9, 4($v0) +/* 0A707C 7F07254C AC4E0000 */ sw $t6, ($v0) +/* 0A7080 7F072550 8C82000C */ lw $v0, 0xc($a0) +/* 0A7084 7F072554 240DFF00 */ li $t5, -256 +/* 0A7088 7F072558 3C19FC26 */ lui $t9, (0xFC26A004 >> 16) # lui $t9, 0xfc26 +/* 0A708C 7F07255C 244F0008 */ addiu $t7, $v0, 8 +/* 0A7090 7F072560 AC8F000C */ sw $t7, 0xc($a0) +/* 0A7094 7F072564 AC4D0004 */ sw $t5, 4($v0) +/* 0A7098 7F072568 AC580000 */ sw $t8, ($v0) +/* 0A709C 7F07256C 8C82000C */ lw $v0, 0xc($a0) +/* 0A70A0 7F072570 3C0F1F10 */ lui $t7, (0x1F1093FF >> 16) # lui $t7, 0x1f10 +/* 0A70A4 7F072574 35EF93FF */ ori $t7, (0x1F1093FF & 0xFFFF) # ori $t7, $t7, 0x93ff +/* 0A70A8 7F072578 244E0008 */ addiu $t6, $v0, 8 +/* 0A70AC 7F07257C AC8E000C */ sw $t6, 0xc($a0) +/* 0A70B0 7F072580 3739A004 */ ori $t9, (0xFC26A004 & 0xFFFF) # ori $t9, $t9, 0xa004 +/* 0A70B4 7F072584 AC590000 */ sw $t9, ($v0) +/* 0A70B8 7F072588 10A00017 */ beqz $a1, .L7F0725E8 +/* 0A70BC 7F07258C AC4F0004 */ sw $t7, 4($v0) +/* 0A70C0 7F072590 8C980004 */ lw $t8, 4($a0) +/* 0A70C4 7F072594 3C0DC411 */ lui $t5, (0xC4112048 >> 16) # lui $t5, 0xc411 +/* 0A70C8 7F072598 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0A70CC 7F07259C 1300000A */ beqz $t8, .L7F0725C8 +/* 0A70D0 7F0725A0 35AD2048 */ ori $t5, (0xC4112048 & 0xFFFF) # ori $t5, $t5, 0x2048 +/* 0A70D4 7F0725A4 8C82000C */ lw $v0, 0xc($a0) +/* 0A70D8 7F0725A8 3C19C411 */ lui $t9, (0xC4112078 >> 16) # lui $t9, 0xc411 +/* 0A70DC 7F0725AC 37392078 */ ori $t9, (0xC4112078 & 0xFFFF) # ori $t9, $t9, 0x2078 +/* 0A70E0 7F0725B0 244D0008 */ addiu $t5, $v0, 8 +/* 0A70E4 7F0725B4 AC8D000C */ sw $t5, 0xc($a0) +/* 0A70E8 7F0725B8 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0A70EC 7F0725BC AC4E0000 */ sw $t6, ($v0) +/* 0A70F0 7F0725C0 03E00008 */ jr $ra +/* 0A70F4 7F0725C4 AC590004 */ sw $t9, 4($v0) + +.L7F0725C8: +/* 0A70F8 7F0725C8 8C82000C */ lw $v0, 0xc($a0) +/* 0A70FC 7F0725CC 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 +/* 0A7100 7F0725D0 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d +/* 0A7104 7F0725D4 244F0008 */ addiu $t7, $v0, 8 +/* 0A7108 7F0725D8 AC8F000C */ sw $t7, 0xc($a0) +/* 0A710C 7F0725DC AC4D0004 */ sw $t5, 4($v0) +/* 0A7110 7F0725E0 03E00008 */ jr $ra +/* 0A7114 7F0725E4 AC580000 */ sw $t8, ($v0) + +.L7F0725E8: +/* 0A7118 7F0725E8 8C8E0004 */ lw $t6, 4($a0) +/* 0A711C 7F0725EC 3C19C410 */ lui $t9, (0xC41041C8 >> 16) # lui $t9, 0xc410 +/* 0A7120 7F0725F0 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 0A7124 7F0725F4 11C0000A */ beqz $t6, .L7F072620 +/* 0A7128 7F0725F8 373941C8 */ ori $t9, (0xC41041C8 & 0xFFFF) # ori $t9, $t9, 0x41c8 +/* 0A712C 7F0725FC 8C82000C */ lw $v0, 0xc($a0) +/* 0A7130 7F072600 3C18C410 */ lui $t8, (0xC41049D8 >> 16) # lui $t8, 0xc410 +/* 0A7134 7F072604 371849D8 */ ori $t8, (0xC41049D8 & 0xFFFF) # ori $t8, $t8, 0x49d8 +/* 0A7138 7F072608 24590008 */ addiu $t9, $v0, 8 +/* 0A713C 7F07260C AC99000C */ sw $t9, 0xc($a0) +/* 0A7140 7F072610 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 0A7144 7F072614 AC4F0000 */ sw $t7, ($v0) +/* 0A7148 7F072618 03E00008 */ jr $ra +/* 0A714C 7F07261C AC580004 */ sw $t8, 4($v0) + +.L7F072620: +/* 0A7150 7F072620 8C82000C */ lw $v0, 0xc($a0) +/* 0A7154 7F072624 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0A7158 7F072628 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0A715C 7F07262C 244D0008 */ addiu $t5, $v0, 8 +/* 0A7160 7F072630 AC8D000C */ sw $t5, 0xc($a0) +/* 0A7164 7F072634 AC590004 */ sw $t9, 4($v0) +/* 0A7168 7F072638 AC4E0000 */ sw $t6, ($v0) +/* 0A716C 7F07263C 03E00008 */ jr $ra +/* 0A7170 7F072640 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F072644(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F072644 +/* 0A7174 7F072644 8C83000C */ lw $v1, 0xc($a0) +/* 0A7178 7F072648 3C0FE700 */ lui $t7, 0xe700 +/* 0A717C 7F07264C 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 +/* 0A7180 7F072650 246E0008 */ addiu $t6, $v1, 8 +/* 0A7184 7F072654 AC8E000C */ sw $t6, 0xc($a0) +/* 0A7188 7F072658 AC600004 */ sw $zero, 4($v1) +/* 0A718C 7F07265C AC6F0000 */ sw $t7, ($v1) +/* 0A7190 7F072660 8C83000C */ lw $v1, 0xc($a0) +/* 0A7194 7F072664 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 +/* 0A7198 7F072668 3C080010 */ lui $t0, 0x10 +/* 0A719C 7F07266C 24780008 */ addiu $t8, $v1, 8 +/* 0A71A0 7F072670 AC98000C */ sw $t8, 0xc($a0) +/* 0A71A4 7F072674 AC680004 */ sw $t0, 4($v1) +/* 0A71A8 7F072678 AC790000 */ sw $t9, ($v1) +/* 0A71AC 7F07267C 8C890004 */ lw $t1, 4($a0) +/* 0A71B0 7F072680 3C19FC26 */ lui $t9, (0xFC26A004 >> 16) # lui $t9, 0xfc26 +/* 0A71B4 7F072684 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0A71B8 7F072688 1120000B */ beqz $t1, .L7F0726B8 +/* 0A71BC 7F07268C 3739A004 */ ori $t9, (0xFC26A004 & 0xFFFF) # ori $t9, $t9, 0xa004 +/* 0A71C0 7F072690 8C83000C */ lw $v1, 0xc($a0) +/* 0A71C4 7F072694 3C0BB900 */ lui $t3, (0xB900031D >> 16) # lui $t3, 0xb900 +/* 0A71C8 7F072698 3C0C0C19 */ lui $t4, (0x0C192078 >> 16) # lui $t4, 0xc19 +/* 0A71CC 7F07269C 246A0008 */ addiu $t2, $v1, 8 +/* 0A71D0 7F0726A0 AC8A000C */ sw $t2, 0xc($a0) +/* 0A71D4 7F0726A4 358C2078 */ ori $t4, (0x0C192078 & 0xFFFF) # ori $t4, $t4, 0x2078 +/* 0A71D8 7F0726A8 356B031D */ ori $t3, (0xB900031D & 0xFFFF) # ori $t3, $t3, 0x31d +/* 0A71DC 7F0726AC AC6B0000 */ sw $t3, ($v1) +/* 0A71E0 7F0726B0 10000009 */ b .L7F0726D8 +/* 0A71E4 7F0726B4 AC6C0004 */ sw $t4, 4($v1) +.L7F0726B8: +/* 0A71E8 7F0726B8 8C83000C */ lw $v1, 0xc($a0) +/* 0A71EC 7F0726BC 3C0F0C19 */ lui $t7, (0x0C192048 >> 16) # lui $t7, 0xc19 +/* 0A71F0 7F0726C0 35EF2048 */ ori $t7, (0x0C192048 & 0xFFFF) # ori $t7, $t7, 0x2048 +/* 0A71F4 7F0726C4 246D0008 */ addiu $t5, $v1, 8 +/* 0A71F8 7F0726C8 AC8D000C */ sw $t5, 0xc($a0) +/* 0A71FC 7F0726CC 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0A7200 7F0726D0 AC6E0000 */ sw $t6, ($v1) +/* 0A7204 7F0726D4 AC6F0004 */ sw $t7, 4($v1) +.L7F0726D8: +/* 0A7208 7F0726D8 8C83000C */ lw $v1, 0xc($a0) +/* 0A720C 7F0726DC 3C081F10 */ lui $t0, (0x1F1093FF >> 16) # lui $t0, 0x1f10 +/* 0A7210 7F0726E0 350893FF */ ori $t0, (0x1F1093FF & 0xFFFF) # ori $t0, $t0, 0x93ff +/* 0A7214 7F0726E4 24780008 */ addiu $t8, $v1, 8 +/* 0A7218 7F0726E8 AC98000C */ sw $t8, 0xc($a0) +/* 0A721C 7F0726EC AC680004 */ sw $t0, 4($v1) +/* 0A7220 7F0726F0 03E00008 */ jr $ra +/* 0A7224 7F0726F4 AC790000 */ sw $t9, ($v1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0726F8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0726F8 +/* 0A7228 7F0726F8 8C82003C */ lw $v0, 0x3c($a0) +/* 0A722C 7F0726FC 24010001 */ li $at, 1 +/* 0A7230 7F072700 5441000A */ bnel $v0, $at, .L7F07272C +/* 0A7234 7F072704 24010002 */ li $at, 2 +/* 0A7238 7F072708 8C83000C */ lw $v1, 0xc($a0) +/* 0A723C 7F07270C 3C0FB600 */ lui $t7, 0xb600 +/* 0A7240 7F072710 24183000 */ li $t8, 12288 +/* 0A7244 7F072714 246E0008 */ addiu $t6, $v1, 8 +/* 0A7248 7F072718 AC8E000C */ sw $t6, 0xc($a0) +/* 0A724C 7F07271C AC780004 */ sw $t8, 4($v1) +/* 0A7250 7F072720 03E00008 */ jr $ra +/* 0A7254 7F072724 AC6F0000 */ sw $t7, ($v1) + +/* 0A7258 7F072728 24010002 */ li $at, 2 +.L7F07272C: +/* 0A725C 7F07272C 5441000A */ bnel $v0, $at, .L7F072758 +/* 0A7260 7F072730 24010003 */ li $at, 3 +/* 0A7264 7F072734 8C83000C */ lw $v1, 0xc($a0) +/* 0A7268 7F072738 3C08B700 */ lui $t0, 0xb700 +/* 0A726C 7F07273C 24091000 */ li $t1, 4096 +/* 0A7270 7F072740 24790008 */ addiu $t9, $v1, 8 +/* 0A7274 7F072744 AC99000C */ sw $t9, 0xc($a0) +/* 0A7278 7F072748 AC690004 */ sw $t1, 4($v1) +/* 0A727C 7F07274C 03E00008 */ jr $ra +/* 0A7280 7F072750 AC680000 */ sw $t0, ($v1) + +/* 0A7284 7F072754 24010003 */ li $at, 3 +.L7F072758: +/* 0A7288 7F072758 14410008 */ bne $v0, $at, .L7F07277C +/* 0A728C 7F07275C 00000000 */ nop +/* 0A7290 7F072760 8C83000C */ lw $v1, 0xc($a0) +/* 0A7294 7F072764 3C0BB700 */ lui $t3, 0xb700 +/* 0A7298 7F072768 240C2000 */ li $t4, 8192 +/* 0A729C 7F07276C 246A0008 */ addiu $t2, $v1, 8 +/* 0A72A0 7F072770 AC8A000C */ sw $t2, 0xc($a0) +/* 0A72A4 7F072774 AC6C0004 */ sw $t4, 4($v1) +/* 0A72A8 7F072778 AC6B0000 */ sw $t3, ($v1) +.L7F07277C: +/* 0A72AC 7F07277C 03E00008 */ jr $ra +/* 0A72B0 7F072780 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F072784(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F072784 +/* 0A72B4 7F072784 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0A72B8 7F072788 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A72BC 7F07278C AFB10018 */ sw $s1, 0x18($sp) +/* 0A72C0 7F072790 AFB00014 */ sw $s0, 0x14($sp) +/* 0A72C4 7F072794 8C8E0018 */ lw $t6, 0x18($a0) +/* 0A72C8 7F072798 00808025 */ move $s0, $a0 +/* 0A72CC 7F07279C 8CB10004 */ lw $s1, 4($a1) +/* 0A72D0 7F0727A0 55C00074 */ bnezl $t6, .L7F072974 +/* 0A72D4 7F0727A4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A72D8 7F0727A8 8C8F0008 */ lw $t7, 8($a0) +/* 0A72DC 7F0727AC 31F80001 */ andi $t8, $t7, 1 +/* 0A72E0 7F0727B0 53000048 */ beql $t8, $zero, .L7F0728D4 +/* 0A72E4 7F0727B4 8E090008 */ lw $t1, 8($s0) +/* 0A72E8 7F0727B8 8E390000 */ lw $t9, ($s1) +/* 0A72EC 7F0727BC 53200045 */ beql $t9, $zero, .L7F0728D4 +/* 0A72F0 7F0727C0 8E090008 */ lw $t1, 8($s0) +/* 0A72F4 7F0727C4 8C82000C */ lw $v0, 0xc($a0) +/* 0A72F8 7F0727C8 3C09BC00 */ lui $t1, (0xBC001406 >> 16) # lui $t1, 0xbc00 +/* 0A72FC 7F0727CC 35291406 */ ori $t1, (0xBC001406 & 0xFFFF) # ori $t1, $t1, 0x1406 +/* 0A7300 7F0727D0 24480008 */ addiu $t0, $v0, 8 +/* 0A7304 7F0727D4 AC88000C */ sw $t0, 0xc($a0) +/* 0A7308 7F0727D8 AC490000 */ sw $t1, ($v0) +/* 0A730C 7F0727DC 8E240008 */ lw $a0, 8($s1) +/* 0A7310 7F0727E0 0C003A2C */ jal osVirtualToPhysical +/* 0A7314 7F0727E4 AFA20030 */ sw $v0, 0x30($sp) +/* 0A7318 7F0727E8 8FA30030 */ lw $v1, 0x30($sp) +/* 0A731C 7F0727EC AC620004 */ sw $v0, 4($v1) +/* 0A7320 7F0727F0 8E0A003C */ lw $t2, 0x3c($s0) +/* 0A7324 7F0727F4 51400004 */ beql $t2, $zero, .L7F072808 +/* 0A7328 7F0727F8 82220012 */ lb $v0, 0x12($s1) +/* 0A732C 7F0727FC 0FC1C9BE */ jal sub_GAME_7F0726F8 +/* 0A7330 7F072800 02002025 */ move $a0, $s0 +/* 0A7334 7F072804 82220012 */ lb $v0, 0x12($s1) +.L7F072808: +/* 0A7338 7F072808 24010001 */ li $at, 1 +/* 0A733C 7F07280C 54410006 */ bnel $v0, $at, .L7F072828 +/* 0A7340 7F072810 24010003 */ li $at, 3 +/* 0A7344 7F072814 0FC1C3E0 */ jal sub_GAME_7F070F80 +/* 0A7348 7F072818 02002025 */ move $a0, $s0 +/* 0A734C 7F07281C 10000015 */ b .L7F072874 +/* 0A7350 7F072820 8E02000C */ lw $v0, 0xc($s0) +/* 0A7354 7F072824 24010003 */ li $at, 3 +.L7F072828: +/* 0A7358 7F072828 14410005 */ bne $v0, $at, .L7F072840 +/* 0A735C 7F07282C 02002025 */ move $a0, $s0 +/* 0A7360 7F072830 0FC1C40C */ jal sub_GAME_7F071030 +/* 0A7364 7F072834 24050001 */ li $a1, 1 +/* 0A7368 7F072838 1000000E */ b .L7F072874 +/* 0A736C 7F07283C 8E02000C */ lw $v0, 0xc($s0) +.L7F072840: +/* 0A7370 7F072840 24010004 */ li $at, 4 +/* 0A7374 7F072844 14410005 */ bne $v0, $at, .L7F07285C +/* 0A7378 7F072848 02002025 */ move $a0, $s0 +/* 0A737C 7F07284C 0FC1C6D1 */ jal sub_GAME_7F071B44 +/* 0A7380 7F072850 24050001 */ li $a1, 1 +/* 0A7384 7F072854 10000007 */ b .L7F072874 +/* 0A7388 7F072858 8E02000C */ lw $v0, 0xc($s0) +.L7F07285C: +/* 0A738C 7F07285C 24010002 */ li $at, 2 +/* 0A7390 7F072860 54410004 */ bnel $v0, $at, .L7F072874 +/* 0A7394 7F072864 8E02000C */ lw $v0, 0xc($s0) +/* 0A7398 7F072868 0FC1C991 */ jal sub_GAME_7F072644 +/* 0A739C 7F07286C 02002025 */ move $a0, $s0 +/* 0A73A0 7F072870 8E02000C */ lw $v0, 0xc($s0) +.L7F072874: +/* 0A73A4 7F072874 3C0C0600 */ lui $t4, 0x600 +/* 0A73A8 7F072878 24010003 */ li $at, 3 +/* 0A73AC 7F07287C 244B0008 */ addiu $t3, $v0, 8 +/* 0A73B0 7F072880 AE0B000C */ sw $t3, 0xc($s0) +/* 0A73B4 7F072884 AC4C0000 */ sw $t4, ($v0) +/* 0A73B8 7F072888 8E2D0000 */ lw $t5, ($s1) +/* 0A73BC 7F07288C AC4D0004 */ sw $t5, 4($v0) +/* 0A73C0 7F072890 822E0012 */ lb $t6, 0x12($s1) +/* 0A73C4 7F072894 55C1000F */ bnel $t6, $at, .L7F0728D4 +/* 0A73C8 7F072898 8E090008 */ lw $t1, 8($s0) +/* 0A73CC 7F07289C 8E2F0004 */ lw $t7, 4($s1) +/* 0A73D0 7F0728A0 02002025 */ move $a0, $s0 +/* 0A73D4 7F0728A4 51E0000B */ beql $t7, $zero, .L7F0728D4 +/* 0A73D8 7F0728A8 8E090008 */ lw $t1, 8($s0) +/* 0A73DC 7F0728AC 0FC1C40C */ jal sub_GAME_7F071030 +/* 0A73E0 7F0728B0 00002825 */ move $a1, $zero +/* 0A73E4 7F0728B4 8E02000C */ lw $v0, 0xc($s0) +/* 0A73E8 7F0728B8 3C190600 */ lui $t9, 0x600 +/* 0A73EC 7F0728BC 24580008 */ addiu $t8, $v0, 8 +/* 0A73F0 7F0728C0 AE18000C */ sw $t8, 0xc($s0) +/* 0A73F4 7F0728C4 AC590000 */ sw $t9, ($v0) +/* 0A73F8 7F0728C8 8E280004 */ lw $t0, 4($s1) +/* 0A73FC 7F0728CC AC480004 */ sw $t0, 4($v0) +/* 0A7400 7F0728D0 8E090008 */ lw $t1, 8($s0) +.L7F0728D4: +/* 0A7404 7F0728D4 312A0002 */ andi $t2, $t1, 2 +/* 0A7408 7F0728D8 51400026 */ beql $t2, $zero, .L7F072974 +/* 0A740C 7F0728DC 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A7410 7F0728E0 8E2B0000 */ lw $t3, ($s1) +/* 0A7414 7F0728E4 51600023 */ beql $t3, $zero, .L7F072974 +/* 0A7418 7F0728E8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A741C 7F0728EC 822C0012 */ lb $t4, 0x12($s1) +/* 0A7420 7F0728F0 24010004 */ li $at, 4 +/* 0A7424 7F0728F4 5581001F */ bnel $t4, $at, .L7F072974 +/* 0A7428 7F0728F8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A742C 7F0728FC 8E2D0004 */ lw $t5, 4($s1) +/* 0A7430 7F072900 51A0001C */ beql $t5, $zero, .L7F072974 +/* 0A7434 7F072904 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A7438 7F072908 8E02000C */ lw $v0, 0xc($s0) +/* 0A743C 7F07290C 3C0FBC00 */ lui $t7, (0xBC001406 >> 16) # lui $t7, 0xbc00 +/* 0A7440 7F072910 35EF1406 */ ori $t7, (0xBC001406 & 0xFFFF) # ori $t7, $t7, 0x1406 +/* 0A7444 7F072914 244E0008 */ addiu $t6, $v0, 8 +/* 0A7448 7F072918 AE0E000C */ sw $t6, 0xc($s0) +/* 0A744C 7F07291C AC4F0000 */ sw $t7, ($v0) +/* 0A7450 7F072920 8E240008 */ lw $a0, 8($s1) +/* 0A7454 7F072924 0C003A2C */ jal osVirtualToPhysical +/* 0A7458 7F072928 AFA20024 */ sw $v0, 0x24($sp) +/* 0A745C 7F07292C 8FA30024 */ lw $v1, 0x24($sp) +/* 0A7460 7F072930 AC620004 */ sw $v0, 4($v1) +/* 0A7464 7F072934 8E18003C */ lw $t8, 0x3c($s0) +/* 0A7468 7F072938 53000004 */ beql $t8, $zero, .L7F07294C +/* 0A746C 7F07293C 02002025 */ move $a0, $s0 +/* 0A7470 7F072940 0FC1C9BE */ jal sub_GAME_7F0726F8 +/* 0A7474 7F072944 02002025 */ move $a0, $s0 +/* 0A7478 7F072948 02002025 */ move $a0, $s0 +.L7F07294C: +/* 0A747C 7F07294C 0FC1C6D1 */ jal sub_GAME_7F071B44 +/* 0A7480 7F072950 00002825 */ move $a1, $zero +/* 0A7484 7F072954 8E02000C */ lw $v0, 0xc($s0) +/* 0A7488 7F072958 3C080600 */ lui $t0, 0x600 +/* 0A748C 7F07295C 24590008 */ addiu $t9, $v0, 8 +/* 0A7490 7F072960 AE19000C */ sw $t9, 0xc($s0) +/* 0A7494 7F072964 AC480000 */ sw $t0, ($v0) +/* 0A7498 7F072968 8E290004 */ lw $t1, 4($s1) +/* 0A749C 7F07296C AC490004 */ sw $t1, 4($v0) +/* 0A74A0 7F072970 8FBF001C */ lw $ra, 0x1c($sp) +.L7F072974: +/* 0A74A4 7F072974 8FB00014 */ lw $s0, 0x14($sp) +/* 0A74A8 7F072978 8FB10018 */ lw $s1, 0x18($sp) +/* 0A74AC 7F07297C 03E00008 */ jr $ra +/* 0A74B0 7F072980 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F072984(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F072984 +/* 0A74B4 7F072984 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0A74B8 7F072988 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A74BC 7F07298C AFB10018 */ sw $s1, 0x18($sp) +/* 0A74C0 7F072990 AFB00014 */ sw $s0, 0x14($sp) +/* 0A74C4 7F072994 AFA5004C */ sw $a1, 0x4c($sp) +/* 0A74C8 7F072998 AFA60050 */ sw $a2, 0x50($sp) +/* 0A74CC 7F07299C 8C8F0018 */ lw $t7, 0x18($a0) +/* 0A74D0 7F0729A0 00808025 */ move $s0, $a0 +/* 0A74D4 7F0729A4 8CD10004 */ lw $s1, 4($a2) +/* 0A74D8 7F0729A8 55E00095 */ bnezl $t7, .L7F072C00 +/* 0A74DC 7F0729AC 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A74E0 7F0729B0 8C980008 */ lw $t8, 8($a0) +/* 0A74E4 7F0729B4 00A02025 */ move $a0, $a1 +/* 0A74E8 7F0729B8 33190001 */ andi $t9, $t8, 1 +/* 0A74EC 7F0729BC 53200058 */ beql $t9, $zero, .L7F072B20 +/* 0A74F0 7F0729C0 8E0F0008 */ lw $t7, 8($s0) +/* 0A74F4 7F0729C4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A74F8 7F0729C8 00C02825 */ move $a1, $a2 +/* 0A74FC 7F0729CC AFA20040 */ sw $v0, 0x40($sp) +/* 0A7500 7F0729D0 8C480004 */ lw $t0, 4($v0) +/* 0A7504 7F0729D4 51000052 */ beql $t0, $zero, .L7F072B20 +/* 0A7508 7F0729D8 8E0F0008 */ lw $t7, 8($s0) +/* 0A750C 7F0729DC 8E03000C */ lw $v1, 0xc($s0) +/* 0A7510 7F0729E0 3C0ABC00 */ lui $t2, (0xBC001406 >> 16) # lui $t2, 0xbc00 +/* 0A7514 7F0729E4 354A1406 */ ori $t2, (0xBC001406 & 0xFFFF) # ori $t2, $t2, 0x1406 +/* 0A7518 7F0729E8 24690008 */ addiu $t1, $v1, 8 +/* 0A751C 7F0729EC AE09000C */ sw $t1, 0xc($s0) +/* 0A7520 7F0729F0 AC6A0000 */ sw $t2, ($v1) +/* 0A7524 7F0729F4 8E24001C */ lw $a0, 0x1c($s1) +/* 0A7528 7F0729F8 0C003A2C */ jal osVirtualToPhysical +/* 0A752C 7F0729FC AFA3003C */ sw $v1, 0x3c($sp) +/* 0A7530 7F072A00 8FA5003C */ lw $a1, 0x3c($sp) +/* 0A7534 7F072A04 ACA20004 */ sw $v0, 4($a1) +/* 0A7538 7F072A08 8E0B003C */ lw $t3, 0x3c($s0) +/* 0A753C 7F072A0C 51600004 */ beql $t3, $zero, .L7F072A20 +/* 0A7540 7F072A10 86220018 */ lh $v0, 0x18($s1) +/* 0A7544 7F072A14 0FC1C9BE */ jal sub_GAME_7F0726F8 +/* 0A7548 7F072A18 02002025 */ move $a0, $s0 +/* 0A754C 7F072A1C 86220018 */ lh $v0, 0x18($s1) +.L7F072A20: +/* 0A7550 7F072A20 24010001 */ li $at, 1 +/* 0A7554 7F072A24 54410006 */ bnel $v0, $at, .L7F072A40 +/* 0A7558 7F072A28 24010003 */ li $at, 3 +/* 0A755C 7F072A2C 0FC1C3E0 */ jal sub_GAME_7F070F80 +/* 0A7560 7F072A30 02002025 */ move $a0, $s0 +/* 0A7564 7F072A34 10000015 */ b .L7F072A8C +/* 0A7568 7F072A38 8E03000C */ lw $v1, 0xc($s0) +/* 0A756C 7F072A3C 24010003 */ li $at, 3 +.L7F072A40: +/* 0A7570 7F072A40 14410005 */ bne $v0, $at, .L7F072A58 +/* 0A7574 7F072A44 02002025 */ move $a0, $s0 +/* 0A7578 7F072A48 0FC1C40C */ jal sub_GAME_7F071030 +/* 0A757C 7F072A4C 24050001 */ li $a1, 1 +/* 0A7580 7F072A50 1000000E */ b .L7F072A8C +/* 0A7584 7F072A54 8E03000C */ lw $v1, 0xc($s0) +.L7F072A58: +/* 0A7588 7F072A58 24010004 */ li $at, 4 +/* 0A758C 7F072A5C 14410005 */ bne $v0, $at, .L7F072A74 +/* 0A7590 7F072A60 02002025 */ move $a0, $s0 +/* 0A7594 7F072A64 0FC1C6D1 */ jal sub_GAME_7F071B44 +/* 0A7598 7F072A68 24050001 */ li $a1, 1 +/* 0A759C 7F072A6C 10000007 */ b .L7F072A8C +/* 0A75A0 7F072A70 8E03000C */ lw $v1, 0xc($s0) +.L7F072A74: +/* 0A75A4 7F072A74 24010002 */ li $at, 2 +/* 0A75A8 7F072A78 54410004 */ bnel $v0, $at, .L7F072A8C +/* 0A75AC 7F072A7C 8E03000C */ lw $v1, 0xc($s0) +/* 0A75B0 7F072A80 0FC1C991 */ jal sub_GAME_7F072644 +/* 0A75B4 7F072A84 02002025 */ move $a0, $s0 +/* 0A75B8 7F072A88 8E03000C */ lw $v1, 0xc($s0) +.L7F072A8C: +/* 0A75BC 7F072A8C 3C0DBC00 */ lui $t5, (0xBC001006 >> 16) # lui $t5, 0xbc00 +/* 0A75C0 7F072A90 35AD1006 */ ori $t5, (0xBC001006 & 0xFFFF) # ori $t5, $t5, 0x1006 +/* 0A75C4 7F072A94 246C0008 */ addiu $t4, $v1, 8 +/* 0A75C8 7F072A98 AE0C000C */ sw $t4, 0xc($s0) +/* 0A75CC 7F072A9C AC6D0000 */ sw $t5, ($v1) +/* 0A75D0 7F072AA0 8FAF0040 */ lw $t7, 0x40($sp) +/* 0A75D4 7F072AA4 8DE40000 */ lw $a0, ($t7) +/* 0A75D8 7F072AA8 0C003A2C */ jal osVirtualToPhysical +/* 0A75DC 7F072AAC AFA30038 */ sw $v1, 0x38($sp) +/* 0A75E0 7F072AB0 8FA50038 */ lw $a1, 0x38($sp) +/* 0A75E4 7F072AB4 3C190600 */ lui $t9, 0x600 +/* 0A75E8 7F072AB8 24010003 */ li $at, 3 +/* 0A75EC 7F072ABC ACA20004 */ sw $v0, 4($a1) +/* 0A75F0 7F072AC0 8E03000C */ lw $v1, 0xc($s0) +/* 0A75F4 7F072AC4 24780008 */ addiu $t8, $v1, 8 +/* 0A75F8 7F072AC8 AE18000C */ sw $t8, 0xc($s0) +/* 0A75FC 7F072ACC AC790000 */ sw $t9, ($v1) +/* 0A7600 7F072AD0 8FAE0040 */ lw $t6, 0x40($sp) +/* 0A7604 7F072AD4 8DC80004 */ lw $t0, 4($t6) +/* 0A7608 7F072AD8 AC680004 */ sw $t0, 4($v1) +/* 0A760C 7F072ADC 86290018 */ lh $t1, 0x18($s1) +/* 0A7610 7F072AE0 5521000F */ bnel $t1, $at, .L7F072B20 +/* 0A7614 7F072AE4 8E0F0008 */ lw $t7, 8($s0) +/* 0A7618 7F072AE8 8E2A0004 */ lw $t2, 4($s1) +/* 0A761C 7F072AEC 02002025 */ move $a0, $s0 +/* 0A7620 7F072AF0 5140000B */ beql $t2, $zero, .L7F072B20 +/* 0A7624 7F072AF4 8E0F0008 */ lw $t7, 8($s0) +/* 0A7628 7F072AF8 0FC1C40C */ jal sub_GAME_7F071030 +/* 0A762C 7F072AFC 00002825 */ move $a1, $zero +/* 0A7630 7F072B00 8E03000C */ lw $v1, 0xc($s0) +/* 0A7634 7F072B04 3C0C0600 */ lui $t4, 0x600 +/* 0A7638 7F072B08 246B0008 */ addiu $t3, $v1, 8 +/* 0A763C 7F072B0C AE0B000C */ sw $t3, 0xc($s0) +/* 0A7640 7F072B10 AC6C0000 */ sw $t4, ($v1) +/* 0A7644 7F072B14 8E2D0004 */ lw $t5, 4($s1) +/* 0A7648 7F072B18 AC6D0004 */ sw $t5, 4($v1) +/* 0A764C 7F072B1C 8E0F0008 */ lw $t7, 8($s0) +.L7F072B20: +/* 0A7650 7F072B20 8FA4004C */ lw $a0, 0x4c($sp) +/* 0A7654 7F072B24 31F80002 */ andi $t8, $t7, 2 +/* 0A7658 7F072B28 53000035 */ beql $t8, $zero, .L7F072C00 +/* 0A765C 7F072B2C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A7660 7F072B30 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A7664 7F072B34 8FA50050 */ lw $a1, 0x50($sp) +/* 0A7668 7F072B38 AFA2002C */ sw $v0, 0x2c($sp) +/* 0A766C 7F072B3C 8C590004 */ lw $t9, 4($v0) +/* 0A7670 7F072B40 5320002F */ beql $t9, $zero, .L7F072C00 +/* 0A7674 7F072B44 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A7678 7F072B48 862E0018 */ lh $t6, 0x18($s1) +/* 0A767C 7F072B4C 24010004 */ li $at, 4 +/* 0A7680 7F072B50 55C1002B */ bnel $t6, $at, .L7F072C00 +/* 0A7684 7F072B54 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A7688 7F072B58 8E280004 */ lw $t0, 4($s1) +/* 0A768C 7F072B5C 51000028 */ beql $t0, $zero, .L7F072C00 +/* 0A7690 7F072B60 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A7694 7F072B64 8E03000C */ lw $v1, 0xc($s0) +/* 0A7698 7F072B68 3C0ABC00 */ lui $t2, (0xBC001406 >> 16) # lui $t2, 0xbc00 +/* 0A769C 7F072B6C 354A1406 */ ori $t2, (0xBC001406 & 0xFFFF) # ori $t2, $t2, 0x1406 +/* 0A76A0 7F072B70 24690008 */ addiu $t1, $v1, 8 +/* 0A76A4 7F072B74 AE09000C */ sw $t1, 0xc($s0) +/* 0A76A8 7F072B78 AC6A0000 */ sw $t2, ($v1) +/* 0A76AC 7F072B7C 8E24001C */ lw $a0, 0x1c($s1) +/* 0A76B0 7F072B80 0C003A2C */ jal osVirtualToPhysical +/* 0A76B4 7F072B84 AFA30028 */ sw $v1, 0x28($sp) +/* 0A76B8 7F072B88 8FA50028 */ lw $a1, 0x28($sp) +/* 0A76BC 7F072B8C ACA20004 */ sw $v0, 4($a1) +/* 0A76C0 7F072B90 8E0B003C */ lw $t3, 0x3c($s0) +/* 0A76C4 7F072B94 51600004 */ beql $t3, $zero, .L7F072BA8 +/* 0A76C8 7F072B98 8E03000C */ lw $v1, 0xc($s0) +/* 0A76CC 7F072B9C 0FC1C9BE */ jal sub_GAME_7F0726F8 +/* 0A76D0 7F072BA0 02002025 */ move $a0, $s0 +/* 0A76D4 7F072BA4 8E03000C */ lw $v1, 0xc($s0) +.L7F072BA8: +/* 0A76D8 7F072BA8 3C0DBC00 */ lui $t5, (0xBC001006 >> 16) # lui $t5, 0xbc00 +/* 0A76DC 7F072BAC 35AD1006 */ ori $t5, (0xBC001006 & 0xFFFF) # ori $t5, $t5, 0x1006 +/* 0A76E0 7F072BB0 246C0008 */ addiu $t4, $v1, 8 +/* 0A76E4 7F072BB4 AE0C000C */ sw $t4, 0xc($s0) +/* 0A76E8 7F072BB8 AC6D0000 */ sw $t5, ($v1) +/* 0A76EC 7F072BBC 8FAF002C */ lw $t7, 0x2c($sp) +/* 0A76F0 7F072BC0 8DE40000 */ lw $a0, ($t7) +/* 0A76F4 7F072BC4 0C003A2C */ jal osVirtualToPhysical +/* 0A76F8 7F072BC8 AFA30024 */ sw $v1, 0x24($sp) +/* 0A76FC 7F072BCC 8FA60024 */ lw $a2, 0x24($sp) +/* 0A7700 7F072BD0 02002025 */ move $a0, $s0 +/* 0A7704 7F072BD4 00002825 */ move $a1, $zero +/* 0A7708 7F072BD8 0FC1C6D1 */ jal sub_GAME_7F071B44 +/* 0A770C 7F072BDC ACC20004 */ sw $v0, 4($a2) +/* 0A7710 7F072BE0 8E03000C */ lw $v1, 0xc($s0) +/* 0A7714 7F072BE4 3C190600 */ lui $t9, 0x600 +/* 0A7718 7F072BE8 24780008 */ addiu $t8, $v1, 8 +/* 0A771C 7F072BEC AE18000C */ sw $t8, 0xc($s0) +/* 0A7720 7F072BF0 AC790000 */ sw $t9, ($v1) +/* 0A7724 7F072BF4 8E2E0004 */ lw $t6, 4($s1) +/* 0A7728 7F072BF8 AC6E0004 */ sw $t6, 4($v1) +/* 0A772C 7F072BFC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F072C00: +/* 0A7730 7F072C00 8FB00014 */ lw $s0, 0x14($sp) +/* 0A7734 7F072C04 8FB10018 */ lw $s1, 0x18($sp) +/* 0A7738 7F072C08 03E00008 */ jr $ra +/* 0A773C 7F072C0C 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F072C10(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F072C10 +/* 0A7740 7F072C10 AFA40000 */ sw $a0, ($sp) +/* 0A7744 7F072C14 AFA50004 */ sw $a1, 4($sp) +/* 0A7748 7F072C18 03E00008 */ jr $ra +/* 0A774C 7F072C1C AFA60008 */ sw $a2, 8($sp) +) +#endif + + + + + +#ifdef NONMATCHING +void dorottex(void) { + +} +#else +GLOBAL_ASM( +.text +glabel dorottex +/* 0A7750 7F072C20 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0A7754 7F072C24 AFBF003C */ sw $ra, 0x3c($sp) +/* 0A7758 7F072C28 AFBE0038 */ sw $fp, 0x38($sp) +/* 0A775C 7F072C2C AFB70034 */ sw $s7, 0x34($sp) +/* 0A7760 7F072C30 AFB60030 */ sw $s6, 0x30($sp) +/* 0A7764 7F072C34 AFB5002C */ sw $s5, 0x2c($sp) +/* 0A7768 7F072C38 AFB40028 */ sw $s4, 0x28($sp) +/* 0A776C 7F072C3C AFB30024 */ sw $s3, 0x24($sp) +/* 0A7770 7F072C40 AFB20020 */ sw $s2, 0x20($sp) +/* 0A7774 7F072C44 AFB1001C */ sw $s1, 0x1c($sp) +/* 0A7778 7F072C48 AFB00018 */ sw $s0, 0x18($sp) +/* 0A777C 7F072C4C 8C8E0018 */ lw $t6, 0x18($a0) +/* 0A7780 7F072C50 00809825 */ move $s3, $a0 +/* 0A7784 7F072C54 55C000ED */ bnezl $t6, .L7F07300C +/* 0A7788 7F072C58 8FBF003C */ lw $ra, 0x3c($sp) +/* 0A778C 7F072C5C 8C8F0008 */ lw $t7, 8($a0) +/* 0A7790 7F072C60 31F80002 */ andi $t8, $t7, 2 +/* 0A7794 7F072C64 530000E9 */ beql $t8, $zero, .L7F07300C +/* 0A7798 7F072C68 8FBF003C */ lw $ra, 0x3c($sp) +/* 0A779C 7F072C6C 8CA30004 */ lw $v1, 4($a1) +/* 0A77A0 7F072C70 3C028003 */ lui $v0, %hi(D_8003608C) +/* 0A77A4 7F072C74 8C790008 */ lw $t9, 8($v1) +/* 0A77A8 7F072C78 532000E4 */ beql $t9, $zero, .L7F07300C +/* 0A77AC 7F072C7C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0A77B0 7F072C80 8C42608C */ lw $v0, %lo(D_8003608C)($v0) +/* 0A77B4 7F072C84 3C048005 */ lui $a0, %hi(aDorottexNoVtxAllocator) +/* 0A77B8 7F072C88 8C720004 */ lw $s2, 4($v1) +/* 0A77BC 7F072C8C 10400003 */ beqz $v0, .L7F072C9C +/* 0A77C0 7F072C90 24844A38 */ addiu $a0, %lo(aDorottexNoVtxAllocator) # addiu $a0, $a0, 0x4a38 +/* 0A77C4 7F072C94 10000007 */ b .L7F072CB4 +/* 0A77C8 7F072C98 AFA30044 */ sw $v1, 0x44($sp) +.L7F072C9C: +/* 0A77CC 7F072C9C 0C0033D1 */ jal osSyncPrintf +/* 0A77D0 7F072CA0 AFA30044 */ sw $v1, 0x44($sp) +/* 0A77D4 7F072CA4 0FC1B11B */ jal return_null +/* 0A77D8 7F072CA8 00000000 */ nop +/* 0A77DC 7F072CAC 3C028003 */ lui $v0, %hi(D_8003608C) +/* 0A77E0 7F072CB0 8C42608C */ lw $v0, %lo(D_8003608C)($v0) +.L7F072CB4: +/* 0A77E4 7F072CB4 8FA30044 */ lw $v1, 0x44($sp) +/* 0A77E8 7F072CB8 8C640000 */ lw $a0, ($v1) +/* 0A77EC 7F072CBC 00044880 */ sll $t1, $a0, 2 +/* 0A77F0 7F072CC0 0040F809 */ jalr $v0 +/* 0A77F4 7F072CC4 01202025 */ move $a0, $t1 +/* 0A77F8 7F072CC8 8E74000C */ lw $s4, 0xc($s3) +/* 0A77FC 7F072CCC 3C0BBC00 */ lui $t3, (0xBC001006 >> 16) # lui $t3, 0xbc00 +/* 0A7800 7F072CD0 356B1006 */ ori $t3, (0xBC001006 & 0xFFFF) # ori $t3, $t3, 0x1006 +/* 0A7804 7F072CD4 268A0008 */ addiu $t2, $s4, 8 +/* 0A7808 7F072CD8 AE6A000C */ sw $t2, 0xc($s3) +/* 0A780C 7F072CDC 00408025 */ move $s0, $v0 +/* 0A7810 7F072CE0 00402025 */ move $a0, $v0 +/* 0A7814 7F072CE4 0C003A2C */ jal osVirtualToPhysical +/* 0A7818 7F072CE8 AE8B0000 */ sw $t3, ($s4) +/* 0A781C 7F072CEC AE820004 */ sw $v0, 4($s4) +/* 0A7820 7F072CF0 8E76000C */ lw $s6, 0xc($s3) +/* 0A7824 7F072CF4 3C0DBC00 */ lui $t5, (0xBC001406 >> 16) # lui $t5, 0xbc00 +/* 0A7828 7F072CF8 35AD1406 */ ori $t5, (0xBC001406 & 0xFFFF) # ori $t5, $t5, 0x1406 +/* 0A782C 7F072CFC 26CC0008 */ addiu $t4, $s6, 8 +/* 0A7830 7F072D00 AE6C000C */ sw $t4, 0xc($s3) +/* 0A7834 7F072D04 AECD0000 */ sw $t5, ($s6) +/* 0A7838 7F072D08 8FAE0044 */ lw $t6, 0x44($sp) +/* 0A783C 7F072D0C 0C003A2C */ jal osVirtualToPhysical +/* 0A7840 7F072D10 8DC4000C */ lw $a0, 0xc($t6) +/* 0A7844 7F072D14 8FA50044 */ lw $a1, 0x44($sp) +/* 0A7848 7F072D18 AEC20004 */ sw $v0, 4($s6) +/* 0A784C 7F072D1C 8E71000C */ lw $s1, 0xc($s3) +/* 0A7850 7F072D20 3C18F800 */ lui $t8, 0xf800 +/* 0A7854 7F072D24 3C090600 */ lui $t1, 0x600 +/* 0A7858 7F072D28 262F0008 */ addiu $t7, $s1, 8 +/* 0A785C 7F072D2C AE6F000C */ sw $t7, 0xc($s3) +/* 0A7860 7F072D30 AE200004 */ sw $zero, 4($s1) +/* 0A7864 7F072D34 AE380000 */ sw $t8, ($s1) +/* 0A7868 7F072D38 8E71000C */ lw $s1, 0xc($s3) +/* 0A786C 7F072D3C 241600B5 */ li $s6, 181 +/* 0A7870 7F072D40 0000A825 */ move $s5, $zero +/* 0A7874 7F072D44 26390008 */ addiu $t9, $s1, 8 +/* 0A7878 7F072D48 AE79000C */ sw $t9, 0xc($s3) +/* 0A787C 7F072D4C AE290000 */ sw $t1, ($s1) +/* 0A7880 7F072D50 8CAA0008 */ lw $t2, 8($a1) +/* 0A7884 7F072D54 3C1E0001 */ lui $fp, 1 +/* 0A7888 7F072D58 24170200 */ li $s7, 512 +/* 0A788C 7F072D5C AE2A0004 */ sw $t2, 4($s1) +/* 0A7890 7F072D60 8CAB0000 */ lw $t3, ($a1) +/* 0A7894 7F072D64 596000A9 */ blezl $t3, .L7F07300C +/* 0A7898 7F072D68 8FBF003C */ lw $ra, 0x3c($sp) +.L7F072D6C: +/* 0A789C 7F072D6C 0C002914 */ jal get_random_value +/* 0A78A0 7F072D70 00000000 */ nop +/* 0A78A4 7F072D74 00026280 */ sll $t4, $v0, 0xa +/* 0A78A8 7F072D78 3191FFFF */ andi $s1, $t4, 0xffff +/* 0A78AC 7F072D7C 0C005B0C */ jal coss +/* 0A78B0 7F072D80 3184FFFF */ andi $a0, $t4, 0xffff +/* 0A78B4 7F072D84 00026940 */ sll $t5, $v0, 5 +/* 0A78B8 7F072D88 01B60019 */ multu $t5, $s6 +/* 0A78BC 7F072D8C 3224FFFF */ andi $a0, $s1, 0xffff +/* 0A78C0 7F072D90 0000A012 */ mflo $s4 +/* 0A78C4 7F072D94 00147483 */ sra $t6, $s4, 0x12 +/* 0A78C8 7F072D98 0C005B18 */ jal sins +/* 0A78CC 7F072D9C 01C0A025 */ move $s4, $t6 +/* 0A78D0 7F072DA0 00027940 */ sll $t7, $v0, 5 +/* 0A78D4 7F072DA4 01F60019 */ multu $t7, $s6 +/* 0A78D8 7F072DA8 00009812 */ mflo $s3 +/* 0A78DC 7F072DAC 0013C483 */ sra $t8, $s3, 0x12 +/* 0A78E0 7F072DB0 0C002914 */ jal get_random_value +/* 0A78E4 7F072DB4 03009825 */ move $s3, $t8 +/* 0A78E8 7F072DB8 0C002914 */ jal get_random_value +/* 0A78EC 7F072DBC 00028FC2 */ srl $s1, $v0, 0x1f +/* 0A78F0 7F072DC0 8E410000 */ lw $at, ($s2) +/* 0A78F4 7F072DC4 30593FFF */ andi $t9, $v0, 0x3fff +/* 0A78F8 7F072DC8 03D92023 */ subu $a0, $fp, $t9 +/* 0A78FC 7F072DCC AE010000 */ sw $at, ($s0) +/* 0A7900 7F072DD0 8E4A0004 */ lw $t2, 4($s2) +/* 0A7904 7F072DD4 02F44023 */ subu $t0, $s7, $s4 +/* 0A7908 7F072DD8 02F33823 */ subu $a3, $s7, $s3 +/* 0A790C 7F072DDC AE0A0004 */ sw $t2, 4($s0) +/* 0A7910 7F072DE0 8E410008 */ lw $at, 8($s2) +/* 0A7914 7F072DE4 00801825 */ move $v1, $a0 +/* 0A7918 7F072DE8 26660200 */ addiu $a2, $s3, 0x200 +/* 0A791C 7F072DEC AE010008 */ sw $at, 8($s0) +/* 0A7920 7F072DF0 8E4A000C */ lw $t2, 0xc($s2) +/* 0A7924 7F072DF4 26B50001 */ addiu $s5, $s5, 1 +/* 0A7928 7F072DF8 26100040 */ addiu $s0, $s0, 0x40 +/* 0A792C 7F072DFC AE0AFFCC */ sw $t2, -0x34($s0) +/* 0A7930 7F072E00 8E410010 */ lw $at, 0x10($s2) +/* 0A7934 7F072E04 AE01FFD0 */ sw $at, -0x30($s0) +/* 0A7938 7F072E08 8E4C0014 */ lw $t4, 0x14($s2) +/* 0A793C 7F072E0C AE0CFFD4 */ sw $t4, -0x2c($s0) +/* 0A7940 7F072E10 8E410018 */ lw $at, 0x18($s2) +/* 0A7944 7F072E14 AE01FFD8 */ sw $at, -0x28($s0) +/* 0A7948 7F072E18 8E4C001C */ lw $t4, 0x1c($s2) +/* 0A794C 7F072E1C AE0CFFDC */ sw $t4, -0x24($s0) +/* 0A7950 7F072E20 8E410020 */ lw $at, 0x20($s2) +/* 0A7954 7F072E24 AE01FFE0 */ sw $at, -0x20($s0) +/* 0A7958 7F072E28 8E4E0024 */ lw $t6, 0x24($s2) +/* 0A795C 7F072E2C AE0EFFE4 */ sw $t6, -0x1c($s0) +/* 0A7960 7F072E30 8E410028 */ lw $at, 0x28($s2) +/* 0A7964 7F072E34 AE01FFE8 */ sw $at, -0x18($s0) +/* 0A7968 7F072E38 8E4E002C */ lw $t6, 0x2c($s2) +/* 0A796C 7F072E3C AE0EFFEC */ sw $t6, -0x14($s0) +/* 0A7970 7F072E40 8E410030 */ lw $at, 0x30($s2) +/* 0A7974 7F072E44 AE01FFF0 */ sw $at, -0x10($s0) +/* 0A7978 7F072E48 8E580034 */ lw $t8, 0x34($s2) +/* 0A797C 7F072E4C AE18FFF4 */ sw $t8, -0xc($s0) +/* 0A7980 7F072E50 8E410038 */ lw $at, 0x38($s2) +/* 0A7984 7F072E54 AE01FFF8 */ sw $at, -8($s0) +/* 0A7988 7F072E58 8E58003C */ lw $t8, 0x3c($s2) +/* 0A798C 7F072E5C A608FFC8 */ sh $t0, -0x38($s0) +/* 0A7990 7F072E60 A607FFCA */ sh $a3, -0x36($s0) +/* 0A7994 7F072E64 AE18FFFC */ sw $t8, -4($s0) +/* 0A7998 7F072E68 06210004 */ bgez $s1, .L7F072E7C +/* 0A799C 7F072E6C 32390003 */ andi $t9, $s1, 3 +/* 0A79A0 7F072E70 13200002 */ beqz $t9, .L7F072E7C +/* 0A79A4 7F072E74 00000000 */ nop +/* 0A79A8 7F072E78 2739FFFC */ addiu $t9, $t9, -4 +.L7F072E7C: +/* 0A79AC 7F072E7C 00194900 */ sll $t1, $t9, 4 +/* 0A79B0 7F072E80 02492821 */ addu $a1, $s2, $t1 +/* 0A79B4 7F072E84 84AA0000 */ lh $t2, ($a1) +/* 0A79B8 7F072E88 01440019 */ multu $t2, $a0 +/* 0A79BC 7F072E8C 262A0001 */ addiu $t2, $s1, 1 +/* 0A79C0 7F072E90 00005812 */ mflo $t3 +/* 0A79C4 7F072E94 000B6403 */ sra $t4, $t3, 0x10 +/* 0A79C8 7F072E98 A60CFFC0 */ sh $t4, -0x40($s0) +/* 0A79CC 7F072E9C 84AD0002 */ lh $t5, 2($a1) +/* 0A79D0 7F072EA0 01A40019 */ multu $t5, $a0 +/* 0A79D4 7F072EA4 26840200 */ addiu $a0, $s4, 0x200 +/* 0A79D8 7F072EA8 00007012 */ mflo $t6 +/* 0A79DC 7F072EAC 000E7C03 */ sra $t7, $t6, 0x10 +/* 0A79E0 7F072EB0 A60FFFC2 */ sh $t7, -0x3e($s0) +/* 0A79E4 7F072EB4 84B80004 */ lh $t8, 4($a1) +/* 0A79E8 7F072EB8 A606FFD8 */ sh $a2, -0x28($s0) +/* 0A79EC 7F072EBC A608FFDA */ sh $t0, -0x26($s0) +/* 0A79F0 7F072EC0 03030019 */ multu $t8, $v1 +/* 0A79F4 7F072EC4 0000C812 */ mflo $t9 +/* 0A79F8 7F072EC8 00194C03 */ sra $t1, $t9, 0x10 +/* 0A79FC 7F072ECC A609FFC4 */ sh $t1, -0x3c($s0) +/* 0A7A00 7F072ED0 05410004 */ bgez $t2, .L7F072EE4 +/* 0A7A04 7F072ED4 314B0003 */ andi $t3, $t2, 3 +/* 0A7A08 7F072ED8 11600002 */ beqz $t3, .L7F072EE4 +/* 0A7A0C 7F072EDC 00000000 */ nop +/* 0A7A10 7F072EE0 256BFFFC */ addiu $t3, $t3, -4 +.L7F072EE4: +/* 0A7A14 7F072EE4 000B6100 */ sll $t4, $t3, 4 +/* 0A7A18 7F072EE8 024C1021 */ addu $v0, $s2, $t4 +/* 0A7A1C 7F072EEC 844D0000 */ lh $t5, ($v0) +/* 0A7A20 7F072EF0 01A30019 */ multu $t5, $v1 +/* 0A7A24 7F072EF4 262D0002 */ addiu $t5, $s1, 2 +/* 0A7A28 7F072EF8 00007012 */ mflo $t6 +/* 0A7A2C 7F072EFC 000E7C03 */ sra $t7, $t6, 0x10 +/* 0A7A30 7F072F00 A60FFFD0 */ sh $t7, -0x30($s0) +/* 0A7A34 7F072F04 84580002 */ lh $t8, 2($v0) +/* 0A7A38 7F072F08 03030019 */ multu $t8, $v1 +/* 0A7A3C 7F072F0C 0000C812 */ mflo $t9 +/* 0A7A40 7F072F10 00194C03 */ sra $t1, $t9, 0x10 +/* 0A7A44 7F072F14 A609FFD2 */ sh $t1, -0x2e($s0) +/* 0A7A48 7F072F18 844A0004 */ lh $t2, 4($v0) +/* 0A7A4C 7F072F1C A604FFE8 */ sh $a0, -0x18($s0) +/* 0A7A50 7F072F20 A606FFEA */ sh $a2, -0x16($s0) +/* 0A7A54 7F072F24 01430019 */ multu $t2, $v1 +/* 0A7A58 7F072F28 00005812 */ mflo $t3 +/* 0A7A5C 7F072F2C 000B6403 */ sra $t4, $t3, 0x10 +/* 0A7A60 7F072F30 A60CFFD4 */ sh $t4, -0x2c($s0) +/* 0A7A64 7F072F34 05A10004 */ bgez $t5, .L7F072F48 +/* 0A7A68 7F072F38 31AE0003 */ andi $t6, $t5, 3 +/* 0A7A6C 7F072F3C 11C00002 */ beqz $t6, .L7F072F48 +/* 0A7A70 7F072F40 00000000 */ nop +/* 0A7A74 7F072F44 25CEFFFC */ addiu $t6, $t6, -4 +.L7F072F48: +/* 0A7A78 7F072F48 000E7900 */ sll $t7, $t6, 4 +/* 0A7A7C 7F072F4C 024F1021 */ addu $v0, $s2, $t7 +/* 0A7A80 7F072F50 84580000 */ lh $t8, ($v0) +/* 0A7A84 7F072F54 03030019 */ multu $t8, $v1 +/* 0A7A88 7F072F58 26380003 */ addiu $t8, $s1, 3 +/* 0A7A8C 7F072F5C 0000C812 */ mflo $t9 +/* 0A7A90 7F072F60 00194C03 */ sra $t1, $t9, 0x10 +/* 0A7A94 7F072F64 A609FFE0 */ sh $t1, -0x20($s0) +/* 0A7A98 7F072F68 844A0002 */ lh $t2, 2($v0) +/* 0A7A9C 7F072F6C 01430019 */ multu $t2, $v1 +/* 0A7AA0 7F072F70 00005812 */ mflo $t3 +/* 0A7AA4 7F072F74 000B6403 */ sra $t4, $t3, 0x10 +/* 0A7AA8 7F072F78 A60CFFE2 */ sh $t4, -0x1e($s0) +/* 0A7AAC 7F072F7C 844D0004 */ lh $t5, 4($v0) +/* 0A7AB0 7F072F80 A607FFF8 */ sh $a3, -8($s0) +/* 0A7AB4 7F072F84 A604FFFA */ sh $a0, -6($s0) +/* 0A7AB8 7F072F88 01A30019 */ multu $t5, $v1 +/* 0A7ABC 7F072F8C 00007012 */ mflo $t6 +/* 0A7AC0 7F072F90 000E7C03 */ sra $t7, $t6, 0x10 +/* 0A7AC4 7F072F94 A60FFFE4 */ sh $t7, -0x1c($s0) +/* 0A7AC8 7F072F98 07010004 */ bgez $t8, .L7F072FAC +/* 0A7ACC 7F072F9C 33190003 */ andi $t9, $t8, 3 +/* 0A7AD0 7F072FA0 13200002 */ beqz $t9, .L7F072FAC +/* 0A7AD4 7F072FA4 00000000 */ nop +/* 0A7AD8 7F072FA8 2739FFFC */ addiu $t9, $t9, -4 +.L7F072FAC: +/* 0A7ADC 7F072FAC 00194900 */ sll $t1, $t9, 4 +/* 0A7AE0 7F072FB0 02491021 */ addu $v0, $s2, $t1 +/* 0A7AE4 7F072FB4 844A0000 */ lh $t2, ($v0) +/* 0A7AE8 7F072FB8 26520040 */ addiu $s2, $s2, 0x40 +/* 0A7AEC 7F072FBC 01430019 */ multu $t2, $v1 +/* 0A7AF0 7F072FC0 00005812 */ mflo $t3 +/* 0A7AF4 7F072FC4 000B6403 */ sra $t4, $t3, 0x10 +/* 0A7AF8 7F072FC8 A60CFFF0 */ sh $t4, -0x10($s0) +/* 0A7AFC 7F072FCC 844D0002 */ lh $t5, 2($v0) +/* 0A7B00 7F072FD0 01A30019 */ multu $t5, $v1 +/* 0A7B04 7F072FD4 00007012 */ mflo $t6 +/* 0A7B08 7F072FD8 000E7C03 */ sra $t7, $t6, 0x10 +/* 0A7B0C 7F072FDC A60FFFF2 */ sh $t7, -0xe($s0) +/* 0A7B10 7F072FE0 84580004 */ lh $t8, 4($v0) +/* 0A7B14 7F072FE4 03030019 */ multu $t8, $v1 +/* 0A7B18 7F072FE8 0000C812 */ mflo $t9 +/* 0A7B1C 7F072FEC 00194C03 */ sra $t1, $t9, 0x10 +/* 0A7B20 7F072FF0 A609FFF4 */ sh $t1, -0xc($s0) +/* 0A7B24 7F072FF4 8FAA0044 */ lw $t2, 0x44($sp) +/* 0A7B28 7F072FF8 8D4B0000 */ lw $t3, ($t2) +/* 0A7B2C 7F072FFC 02AB082A */ slt $at, $s5, $t3 +/* 0A7B30 7F073000 1420FF5A */ bnez $at, .L7F072D6C +/* 0A7B34 7F073004 00000000 */ nop +/* 0A7B38 7F073008 8FBF003C */ lw $ra, 0x3c($sp) +.L7F07300C: +/* 0A7B3C 7F07300C 8FB00018 */ lw $s0, 0x18($sp) +/* 0A7B40 7F073010 8FB1001C */ lw $s1, 0x1c($sp) +/* 0A7B44 7F073014 8FB20020 */ lw $s2, 0x20($sp) +/* 0A7B48 7F073018 8FB30024 */ lw $s3, 0x24($sp) +/* 0A7B4C 7F07301C 8FB40028 */ lw $s4, 0x28($sp) +/* 0A7B50 7F073020 8FB5002C */ lw $s5, 0x2c($sp) +/* 0A7B54 7F073024 8FB60030 */ lw $s6, 0x30($sp) +/* 0A7B58 7F073028 8FB70034 */ lw $s7, 0x34($sp) +/* 0A7B5C 7F07302C 8FBE0038 */ lw $fp, 0x38($sp) +/* 0A7B60 7F073030 03E00008 */ jr $ra +/* 0A7B64 7F073034 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F073038(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F073038 +/* 0A7B68 7F073038 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A7B6C 7F07303C AFBF001C */ sw $ra, 0x1c($sp) +/* 0A7B70 7F073040 AFA40020 */ sw $a0, 0x20($sp) +/* 0A7B74 7F073044 00807025 */ move $t6, $a0 +/* 0A7B78 7F073048 8DC70004 */ lw $a3, 4($t6) +/* 0A7B7C 7F07304C 240F0002 */ li $t7, 2 +/* 0A7B80 7F073050 AFAF0010 */ sw $t7, 0x10($sp) +/* 0A7B84 7F073054 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 0A7B88 7F073058 2484000C */ addiu $a0, $a0, 0xc +/* 0A7B8C 7F07305C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A7B90 7F073060 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0A7B94 7F073064 03E00008 */ jr $ra +/* 0A7B98 7F073068 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07306C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07306C +/* 0A7B9C 7F07306C AFA40000 */ sw $a0, ($sp) +/* 0A7BA0 7F073070 AFA50004 */ sw $a1, 4($sp) +/* 0A7BA4 7F073074 03E00008 */ jr $ra +/* 0A7BA8 7F073078 AFA60008 */ sw $a2, 8($sp) +) +#endif + + + + + +#ifdef NONMATCHING +void dotube(void) { + +} +#else +GLOBAL_ASM( +.text +glabel dotube +/* 0A7BAC 7F07307C 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 0A7BB0 7F073080 AFB5002C */ sw $s5, 0x2c($sp) +/* 0A7BB4 7F073084 0080A825 */ move $s5, $a0 +/* 0A7BB8 7F073088 AFB30024 */ sw $s3, 0x24($sp) +/* 0A7BBC 7F07308C 00A09825 */ move $s3, $a1 +/* 0A7BC0 7F073090 AFBF003C */ sw $ra, 0x3c($sp) +/* 0A7BC4 7F073094 AFBE0038 */ sw $fp, 0x38($sp) +/* 0A7BC8 7F073098 AFB70034 */ sw $s7, 0x34($sp) +/* 0A7BCC 7F07309C AFB60030 */ sw $s6, 0x30($sp) +/* 0A7BD0 7F0730A0 AFB40028 */ sw $s4, 0x28($sp) +/* 0A7BD4 7F0730A4 AFB20020 */ sw $s2, 0x20($sp) +/* 0A7BD8 7F0730A8 AFB1001C */ sw $s1, 0x1c($sp) +/* 0A7BDC 7F0730AC AFB00018 */ sw $s0, 0x18($sp) +/* 0A7BE0 7F0730B0 00A02025 */ move $a0, $a1 +/* 0A7BE4 7F0730B4 00C08825 */ move $s1, $a2 +/* 0A7BE8 7F0730B8 8CD60004 */ lw $s6, 4($a2) +/* 0A7BEC 7F0730BC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A7BF0 7F0730C0 00C02825 */ move $a1, $a2 +/* 0A7BF4 7F0730C4 8EC30000 */ lw $v1, ($s6) +/* 0A7BF8 7F0730C8 00409025 */ move $s2, $v0 +/* 0A7BFC 7F0730CC 50600004 */ beql $v1, $zero, .L7F0730E0 +/* 0A7C00 7F0730D0 8EC50004 */ lw $a1, 4($s6) +/* 0A7C04 7F0730D4 10000002 */ b .L7F0730E0 +/* 0A7C08 7F0730D8 00602825 */ move $a1, $v1 +/* 0A7C0C 7F0730DC 8EC50004 */ lw $a1, 4($s6) +.L7F0730E0: +/* 0A7C10 7F0730E0 8CAE0004 */ lw $t6, 4($a1) +/* 0A7C14 7F0730E4 02602025 */ move $a0, $s3 +/* 0A7C18 7F0730E8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A7C1C 7F0730EC AFAE00C0 */ sw $t6, 0xc0($sp) +/* 0A7C20 7F0730F0 240F0001 */ li $t7, 1 +/* 0A7C24 7F0730F4 AFAF009C */ sw $t7, 0x9c($sp) +/* 0A7C28 7F0730F8 8EB80008 */ lw $t8, 8($s5) +/* 0A7C2C 7F0730FC 00408025 */ move $s0, $v0 +/* 0A7C30 7F073100 02202025 */ move $a0, $s1 +/* 0A7C34 7F073104 33190001 */ andi $t9, $t8, 1 +/* 0A7C38 7F073108 532001AD */ beql $t9, $zero, .L7F0737C0 +/* 0A7C3C 7F07310C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0A7C40 7F073110 0FC1B15C */ jal sub_GAME_7F06C570 +/* 0A7C44 7F073114 00002825 */ move $a1, $zero +/* 0A7C48 7F073118 8E68000C */ lw $t0, 0xc($s3) +/* 0A7C4C 7F07311C 00024980 */ sll $t1, $v0, 6 +/* 0A7C50 7F073120 24050200 */ li $a1, 512 +/* 0A7C54 7F073124 01095021 */ addu $t2, $t0, $t1 +/* 0A7C58 7F073128 AFAA0084 */ sw $t2, 0x84($sp) +/* 0A7C5C 7F07312C 8E430000 */ lw $v1, ($s2) +/* 0A7C60 7F073130 8ECD0000 */ lw $t5, ($s6) +/* 0A7C64 7F073134 8ECB000C */ lw $t3, 0xc($s6) +/* 0A7C68 7F073138 000360C0 */ sll $t4, $v1, 3 +/* 0A7C6C 7F07313C 8E060000 */ lw $a2, ($s0) +/* 0A7C70 7F073140 11A00008 */ beqz $t5, .L7F073164 +/* 0A7C74 7F073144 016CF021 */ addu $fp, $t3, $t4 +/* 0A7C78 7F073148 00C09025 */ move $s2, $a2 +/* 0A7C7C 7F07314C 00608025 */ move $s0, $v1 +/* 0A7C80 7F073150 02202025 */ move $a0, $s1 +/* 0A7C84 7F073154 0FC1B15C */ jal sub_GAME_7F06C570 +/* 0A7C88 7F073158 24050200 */ li $a1, 512 +/* 0A7C8C 7F07315C 10000006 */ b .L7F073178 +/* 0A7C90 7F073160 8E6E000C */ lw $t6, 0xc($s3) +.L7F073164: +/* 0A7C94 7F073164 00609025 */ move $s2, $v1 +/* 0A7C98 7F073168 00C08025 */ move $s0, $a2 +/* 0A7C9C 7F07316C 0FC1B15C */ jal sub_GAME_7F06C570 +/* 0A7CA0 7F073170 8EC40004 */ lw $a0, 4($s6) +/* 0A7CA4 7F073174 8E6E000C */ lw $t6, 0xc($s3) +.L7F073178: +/* 0A7CA8 7F073178 00027980 */ sll $t7, $v0, 6 +/* 0A7CAC 7F07317C 0212C823 */ subu $t9, $s0, $s2 +/* 0A7CB0 7F073180 01CFC021 */ addu $t8, $t6, $t7 +/* 0A7CB4 7F073184 AFB80080 */ sw $t8, 0x80($sp) +/* 0A7CB8 7F073188 8EC30008 */ lw $v1, 8($s6) +/* 0A7CBC 7F07318C 03234021 */ addu $t0, $t9, $v1 +/* 0A7CC0 7F073190 0103001A */ div $zero, $t0, $v1 +/* 0A7CC4 7F073194 14600002 */ bnez $v1, .L7F0731A0 +/* 0A7CC8 7F073198 00000000 */ nop +/* 0A7CCC 7F07319C 0007000D */ break 7 +.L7F0731A0: +/* 0A7CD0 7F0731A0 2401FFFF */ li $at, -1 +/* 0A7CD4 7F0731A4 14610004 */ bne $v1, $at, .L7F0731B8 +/* 0A7CD8 7F0731A8 3C018000 */ lui $at, 0x8000 +/* 0A7CDC 7F0731AC 15010002 */ bne $t0, $at, .L7F0731B8 +/* 0A7CE0 7F0731B0 00000000 */ nop +/* 0A7CE4 7F0731B4 0006000D */ break 6 +.L7F0731B8: +/* 0A7CE8 7F0731B8 00002810 */ mfhi $a1 +/* 0A7CEC 7F0731BC 28A10002 */ slti $at, $a1, 2 +/* 0A7CF0 7F0731C0 1420002E */ bnez $at, .L7F07327C +/* 0A7CF4 7F0731C4 28A10007 */ slti $at, $a1, 7 +/* 0A7CF8 7F0731C8 1020002C */ beqz $at, .L7F07327C +/* 0A7CFC 7F0731CC 28A10004 */ slti $at, $a1, 4 +/* 0A7D00 7F0731D0 50200015 */ beql $at, $zero, .L7F073228 +/* 0A7D04 7F0731D4 240C0008 */ li $t4, 8 +/* 0A7D08 7F0731D8 04A10003 */ bgez $a1, .L7F0731E8 +/* 0A7D0C 7F0731DC 00054843 */ sra $t1, $a1, 1 +/* 0A7D10 7F0731E0 24A10001 */ addiu $at, $a1, 1 +/* 0A7D14 7F0731E4 00014843 */ sra $t1, $at, 1 +.L7F0731E8: +/* 0A7D18 7F0731E8 01325021 */ addu $t2, $t1, $s2 +/* 0A7D1C 7F0731EC 01435821 */ addu $t3, $t2, $v1 +/* 0A7D20 7F0731F0 0163001A */ div $zero, $t3, $v1 +/* 0A7D24 7F0731F4 00002810 */ mfhi $a1 +/* 0A7D28 7F0731F8 14600002 */ bnez $v1, .L7F073204 +/* 0A7D2C 7F0731FC 00000000 */ nop +/* 0A7D30 7F073200 0007000D */ break 7 +.L7F073204: +/* 0A7D34 7F073204 2401FFFF */ li $at, -1 +/* 0A7D38 7F073208 14610004 */ bne $v1, $at, .L7F07321C +/* 0A7D3C 7F07320C 3C018000 */ lui $at, 0x8000 +/* 0A7D40 7F073210 15610002 */ bne $t3, $at, .L7F07321C +/* 0A7D44 7F073214 00000000 */ nop +/* 0A7D48 7F073218 0006000D */ break 6 +.L7F07321C: +/* 0A7D4C 7F07321C 10000050 */ b .L7F073360 +/* 0A7D50 7F073220 8EB1000C */ lw $s1, 0xc($s5) +/* 0A7D54 7F073224 240C0008 */ li $t4, 8 +.L7F073228: +/* 0A7D58 7F073228 01856823 */ subu $t5, $t4, $a1 +/* 0A7D5C 7F07322C 05A10003 */ bgez $t5, .L7F07323C +/* 0A7D60 7F073230 000D7043 */ sra $t6, $t5, 1 +/* 0A7D64 7F073234 25A10001 */ addiu $at, $t5, 1 +/* 0A7D68 7F073238 00017043 */ sra $t6, $at, 1 +.L7F07323C: +/* 0A7D6C 7F07323C 024E7823 */ subu $t7, $s2, $t6 +/* 0A7D70 7F073240 01E3C021 */ addu $t8, $t7, $v1 +/* 0A7D74 7F073244 0303001A */ div $zero, $t8, $v1 +/* 0A7D78 7F073248 00002810 */ mfhi $a1 +/* 0A7D7C 7F07324C AFA0009C */ sw $zero, 0x9c($sp) +/* 0A7D80 7F073250 14600002 */ bnez $v1, .L7F07325C +/* 0A7D84 7F073254 00000000 */ nop +/* 0A7D88 7F073258 0007000D */ break 7 +.L7F07325C: +/* 0A7D8C 7F07325C 2401FFFF */ li $at, -1 +/* 0A7D90 7F073260 14610004 */ bne $v1, $at, .L7F073274 +/* 0A7D94 7F073264 3C018000 */ lui $at, 0x8000 +/* 0A7D98 7F073268 17010002 */ bne $t8, $at, .L7F073274 +/* 0A7D9C 7F07326C 00000000 */ nop +/* 0A7DA0 7F073270 0006000D */ break 6 +.L7F073274: +/* 0A7DA4 7F073274 1000003A */ b .L7F073360 +/* 0A7DA8 7F073278 8EB1000C */ lw $s1, 0xc($s5) +.L7F07327C: +/* 0A7DAC 7F07327C 28A1000A */ slti $at, $a1, 0xa +/* 0A7DB0 7F073280 1420002F */ bnez $at, .L7F073340 +/* 0A7DB4 7F073284 28A1000F */ slti $at, $a1, 0xf +/* 0A7DB8 7F073288 1020002D */ beqz $at, .L7F073340 +/* 0A7DBC 7F07328C 28A1000D */ slti $at, $a1, 0xd +/* 0A7DC0 7F073290 54200017 */ bnezl $at, .L7F0732F0 +/* 0A7DC4 7F073294 24ACFFF8 */ addiu $t4, $a1, -8 +/* 0A7DC8 7F073298 24190010 */ li $t9, 16 +/* 0A7DCC 7F07329C 03254023 */ subu $t0, $t9, $a1 +/* 0A7DD0 7F0732A0 05010003 */ bgez $t0, .L7F0732B0 +/* 0A7DD4 7F0732A4 00084843 */ sra $t1, $t0, 1 +/* 0A7DD8 7F0732A8 25010001 */ addiu $at, $t0, 1 +/* 0A7DDC 7F0732AC 00014843 */ sra $t1, $at, 1 +.L7F0732B0: +/* 0A7DE0 7F0732B0 02495023 */ subu $t2, $s2, $t1 +/* 0A7DE4 7F0732B4 01435821 */ addu $t3, $t2, $v1 +/* 0A7DE8 7F0732B8 0163001A */ div $zero, $t3, $v1 +/* 0A7DEC 7F0732BC 00002810 */ mfhi $a1 +/* 0A7DF0 7F0732C0 14600002 */ bnez $v1, .L7F0732CC +/* 0A7DF4 7F0732C4 00000000 */ nop +/* 0A7DF8 7F0732C8 0007000D */ break 7 +.L7F0732CC: +/* 0A7DFC 7F0732CC 2401FFFF */ li $at, -1 +/* 0A7E00 7F0732D0 14610004 */ bne $v1, $at, .L7F0732E4 +/* 0A7E04 7F0732D4 3C018000 */ lui $at, 0x8000 +/* 0A7E08 7F0732D8 15610002 */ bne $t3, $at, .L7F0732E4 +/* 0A7E0C 7F0732DC 00000000 */ nop +/* 0A7E10 7F0732E0 0006000D */ break 6 +.L7F0732E4: +/* 0A7E14 7F0732E4 1000001E */ b .L7F073360 +/* 0A7E18 7F0732E8 8EB1000C */ lw $s1, 0xc($s5) +/* 0A7E1C 7F0732EC 24ACFFF8 */ addiu $t4, $a1, -8 +.L7F0732F0: +/* 0A7E20 7F0732F0 05810003 */ bgez $t4, .L7F073300 +/* 0A7E24 7F0732F4 000C6843 */ sra $t5, $t4, 1 +/* 0A7E28 7F0732F8 25810001 */ addiu $at, $t4, 1 +/* 0A7E2C 7F0732FC 00016843 */ sra $t5, $at, 1 +.L7F073300: +/* 0A7E30 7F073300 01B27021 */ addu $t6, $t5, $s2 +/* 0A7E34 7F073304 01C37821 */ addu $t7, $t6, $v1 +/* 0A7E38 7F073308 01E3001A */ div $zero, $t7, $v1 +/* 0A7E3C 7F07330C 00002810 */ mfhi $a1 +/* 0A7E40 7F073310 AFA0009C */ sw $zero, 0x9c($sp) +/* 0A7E44 7F073314 14600002 */ bnez $v1, .L7F073320 +/* 0A7E48 7F073318 00000000 */ nop +/* 0A7E4C 7F07331C 0007000D */ break 7 +.L7F073320: +/* 0A7E50 7F073320 2401FFFF */ li $at, -1 +/* 0A7E54 7F073324 14610004 */ bne $v1, $at, .L7F073338 +/* 0A7E58 7F073328 3C018000 */ lui $at, 0x8000 +/* 0A7E5C 7F07332C 15E10002 */ bne $t7, $at, .L7F073338 +/* 0A7E60 7F073330 00000000 */ nop +/* 0A7E64 7F073334 0006000D */ break 6 +.L7F073338: +/* 0A7E68 7F073338 10000009 */ b .L7F073360 +/* 0A7E6C 7F07333C 8EB1000C */ lw $s1, 0xc($s5) +.L7F073340: +/* 0A7E70 7F073340 28A10007 */ slti $at, $a1, 7 +/* 0A7E74 7F073344 14200004 */ bnez $at, .L7F073358 +/* 0A7E78 7F073348 28A1000A */ slti $at, $a1, 0xa +/* 0A7E7C 7F07334C 50200003 */ beql $at, $zero, .L7F07335C +/* 0A7E80 7F073350 02402825 */ move $a1, $s2 +/* 0A7E84 7F073354 AFA0009C */ sw $zero, 0x9c($sp) +.L7F073358: +/* 0A7E88 7F073358 02402825 */ move $a1, $s2 +.L7F07335C: +/* 0A7E8C 7F07335C 8EB1000C */ lw $s1, 0xc($s5) +.L7F073360: +/* 0A7E90 7F073360 8FD40004 */ lw $s4, 4($fp) +/* 0A7E94 7F073364 3C19BC00 */ lui $t9, (0xBC001406 >> 16) # lui $t9, 0xbc00 +/* 0A7E98 7F073368 26380008 */ addiu $t8, $s1, 8 +/* 0A7E9C 7F07336C AEB8000C */ sw $t8, 0xc($s5) +/* 0A7EA0 7F073370 37391406 */ ori $t9, (0xBC001406 & 0xFFFF) # ori $t9, $t9, 0x1406 +/* 0A7EA4 7F073374 AE390000 */ sw $t9, ($s1) +/* 0A7EA8 7F073378 8EC401AC */ lw $a0, 0x1ac($s6) +/* 0A7EAC 7F07337C 0C003A2C */ jal osVirtualToPhysical +/* 0A7EB0 7F073380 AFA500B8 */ sw $a1, 0xb8($sp) +/* 0A7EB4 7F073384 AE220004 */ sw $v0, 4($s1) +/* 0A7EB8 7F073388 93D70000 */ lbu $s7, ($fp) +/* 0A7EBC 7F07338C 241E000A */ li $fp, 10 +/* 0A7EC0 7F073390 24130003 */ li $s3, 3 +/* 0A7EC4 7F073394 1AE00109 */ blez $s7, .L7F0737BC +/* 0A7EC8 7F073398 24120002 */ li $s2, 2 +/* 0A7ECC 7F07339C 24110001 */ li $s1, 1 +/* 0A7ED0 7F0733A0 92840000 */ lbu $a0, ($s4) +.L7F0733A4: +/* 0A7ED4 7F0733A4 3C028003 */ lui $v0, %hi(D_8003608C) +/* 0A7ED8 7F0733A8 8FB000B8 */ lw $s0, 0xb8($sp) +/* 0A7EDC 7F0733AC 10910007 */ beq $a0, $s1, .L7F0733CC +/* 0A7EE0 7F0733B0 00000000 */ nop +/* 0A7EE4 7F0733B4 509200D5 */ beql $a0, $s2, .L7F07370C +/* 0A7EE8 7F0733B8 92820001 */ lbu $v0, 1($s4) +/* 0A7EEC 7F0733BC 509300E6 */ beql $a0, $s3, .L7F073758 +/* 0A7EF0 7F0733C0 8EB0000C */ lw $s0, 0xc($s5) +/* 0A7EF4 7F0733C4 100000FB */ b .L7F0737B4 +/* 0A7EF8 7F0733C8 26F7FFFF */ addiu $s7, $s7, -1 +.L7F0733CC: +/* 0A7EFC 7F0733CC 8C42608C */ lw $v0, %lo(D_8003608C)($v0) +/* 0A7F00 7F0733D0 001040C0 */ sll $t0, $s0, 3 +/* 0A7F04 7F0733D4 01008025 */ move $s0, $t0 +/* 0A7F08 7F0733D8 14400007 */ bnez $v0, .L7F0733F8 +/* 0A7F0C 7F0733DC 3C048005 */ lui $a0, %hi(aDotubeNoVtxAllocator) +/* 0A7F10 7F0733E0 0C0033D1 */ jal osSyncPrintf +/* 0A7F14 7F0733E4 24844A58 */ addiu $a0, %lo(aDotubeNoVtxAllocator) # addiu $a0, $a0, 0x4a58 +/* 0A7F18 7F0733E8 0FC1B11B */ jal return_null +/* 0A7F1C 7F0733EC 00000000 */ nop +/* 0A7F20 7F0733F0 3C028003 */ lui $v0, %hi(D_8003608C) +/* 0A7F24 7F0733F4 8C42608C */ lw $v0, %lo(D_8003608C)($v0) +.L7F0733F8: +/* 0A7F28 7F0733F8 0040F809 */ jalr $v0 +/* 0A7F2C 7F0733FC 02402025 */ move $a0, $s2 +/* 0A7F30 7F073400 AFA20074 */ sw $v0, 0x74($sp) +/* 0A7F34 7F073404 968A0002 */ lhu $t2, 2($s4) +/* 0A7F38 7F073408 8EC90010 */ lw $t1, 0x10($s6) +/* 0A7F3C 7F07340C 24470010 */ addiu $a3, $v0, 0x10 +/* 0A7F40 7F073410 000A5900 */ sll $t3, $t2, 4 +/* 0A7F44 7F073414 012B6021 */ addu $t4, $t1, $t3 +/* 0A7F48 7F073418 8D810000 */ lw $at, ($t4) +/* 0A7F4C 7F07341C AC410000 */ sw $at, ($v0) +/* 0A7F50 7F073420 8D8F0004 */ lw $t7, 4($t4) +/* 0A7F54 7F073424 AC4F0004 */ sw $t7, 4($v0) +/* 0A7F58 7F073428 8D810008 */ lw $at, 8($t4) +/* 0A7F5C 7F07342C AC410008 */ sw $at, 8($v0) +/* 0A7F60 7F073430 8D8F000C */ lw $t7, 0xc($t4) +/* 0A7F64 7F073434 AC4F000C */ sw $t7, 0xc($v0) +/* 0A7F68 7F073438 96990002 */ lhu $t9, 2($s4) +/* 0A7F6C 7F07343C 8ED80010 */ lw $t8, 0x10($s6) +/* 0A7F70 7F073440 00194100 */ sll $t0, $t9, 4 +/* 0A7F74 7F073444 03085021 */ addu $t2, $t8, $t0 +/* 0A7F78 7F073448 8D410010 */ lw $at, 0x10($t2) +/* 0A7F7C 7F07344C ACE10000 */ sw $at, ($a3) +/* 0A7F80 7F073450 8D4E0014 */ lw $t6, 0x14($t2) +/* 0A7F84 7F073454 ACEE0004 */ sw $t6, 4($a3) +/* 0A7F88 7F073458 8D410018 */ lw $at, 0x18($t2) +/* 0A7F8C 7F07345C ACE10008 */ sw $at, 8($a3) +/* 0A7F90 7F073460 8D4E001C */ lw $t6, 0x1c($t2) +/* 0A7F94 7F073464 ACEE000C */ sw $t6, 0xc($a3) +/* 0A7F98 7F073468 8ECD0004 */ lw $t5, 4($s6) +/* 0A7F9C 7F07346C 8FAC00C0 */ lw $t4, 0xc0($sp) +/* 0A7FA0 7F073470 8FAF00C0 */ lw $t7, 0xc0($sp) +/* 0A7FA4 7F073474 51A0002E */ beql $t5, $zero, .L7F073530 +/* 0A7FA8 7F073478 8D99000C */ lw $t9, 0xc($t4) +/* 0A7FAC 7F07347C 8ECC000C */ lw $t4, 0xc($s6) +/* 0A7FB0 7F073480 01901821 */ addu $v1, $t4, $s0 +/* 0A7FB4 7F073484 90660000 */ lbu $a2, ($v1) +/* 0A7FB8 7F073488 8C650004 */ lw $a1, 4($v1) +/* 0A7FBC 7F07348C 58C00063 */ blezl $a2, .L7F07361C +/* 0A7FC0 7F073490 8EB0000C */ lw $s0, 0xc($s5) +/* 0A7FC4 7F073494 90A30000 */ lbu $v1, ($a1) +.L7F073498: +/* 0A7FC8 7F073498 24C6FFFF */ addiu $a2, $a2, -1 +/* 0A7FCC 7F07349C 16230012 */ bne $s1, $v1, .L7F0734E8 +/* 0A7FD0 7F0734A0 00000000 */ nop +/* 0A7FD4 7F0734A4 94B90002 */ lhu $t9, 2($a1) +/* 0A7FD8 7F0734A8 8ECF0010 */ lw $t7, 0x10($s6) +/* 0A7FDC 7F0734AC 0019C100 */ sll $t8, $t9, 4 +/* 0A7FE0 7F0734B0 01F81821 */ addu $v1, $t7, $t8 +/* 0A7FE4 7F0734B4 84680000 */ lh $t0, ($v1) +/* 0A7FE8 7F0734B8 A4480000 */ sh $t0, ($v0) +/* 0A7FEC 7F0734BC 846B0002 */ lh $t3, 2($v1) +/* 0A7FF0 7F0734C0 A44B0002 */ sh $t3, 2($v0) +/* 0A7FF4 7F0734C4 84690004 */ lh $t1, 4($v1) +/* 0A7FF8 7F0734C8 A4490004 */ sh $t1, 4($v0) +/* 0A7FFC 7F0734CC 846A0010 */ lh $t2, 0x10($v1) +/* 0A8000 7F0734D0 A4EA0000 */ sh $t2, ($a3) +/* 0A8004 7F0734D4 846E0012 */ lh $t6, 0x12($v1) +/* 0A8008 7F0734D8 A4EE0002 */ sh $t6, 2($a3) +/* 0A800C 7F0734DC 846D0014 */ lh $t5, 0x14($v1) +/* 0A8010 7F0734E0 1000004D */ b .L7F073618 +/* 0A8014 7F0734E4 A4ED0004 */ sh $t5, 4($a3) +.L7F0734E8: +/* 0A8018 7F0734E8 10710007 */ beq $v1, $s1, .L7F073508 +/* 0A801C 7F0734EC 00000000 */ nop +/* 0A8020 7F0734F0 10720007 */ beq $v1, $s2, .L7F073510 +/* 0A8024 7F0734F4 00000000 */ nop +/* 0A8028 7F0734F8 50730008 */ beql $v1, $s3, .L7F07351C +/* 0A802C 7F0734FC 24A50004 */ addiu $a1, $a1, 4 +/* 0A8030 7F073500 10000006 */ b .L7F07351C +/* 0A8034 7F073504 00000000 */ nop +.L7F073508: +/* 0A8038 7F073508 10000004 */ b .L7F07351C +/* 0A803C 7F07350C 24A50004 */ addiu $a1, $a1, 4 +.L7F073510: +/* 0A8040 7F073510 10000002 */ b .L7F07351C +/* 0A8044 7F073514 24A50002 */ addiu $a1, $a1, 2 +/* 0A8048 7F073518 24A50004 */ addiu $a1, $a1, 4 +.L7F07351C: +/* 0A804C 7F07351C 5CC0FFDE */ bgtzl $a2, .L7F073498 +/* 0A8050 7F073520 90A30000 */ lbu $v1, ($a1) +/* 0A8054 7F073524 1000003D */ b .L7F07361C +/* 0A8058 7F073528 8EB0000C */ lw $s0, 0xc($s5) +/* 0A805C 7F07352C 8D99000C */ lw $t9, 0xc($t4) +.L7F073530: +/* 0A8060 7F073530 03301821 */ addu $v1, $t9, $s0 +/* 0A8064 7F073534 90660000 */ lbu $a2, ($v1) +/* 0A8068 7F073538 8C650004 */ lw $a1, 4($v1) +/* 0A806C 7F07353C 58C00037 */ blezl $a2, .L7F07361C +/* 0A8070 7F073540 8EB0000C */ lw $s0, 0xc($s5) +/* 0A8074 7F073544 90A30000 */ lbu $v1, ($a1) +.L7F073548: +/* 0A8078 7F073548 24C6FFFF */ addiu $a2, $a2, -1 +/* 0A807C 7F07354C 16230023 */ bne $s1, $v1, .L7F0735DC +/* 0A8080 7F073550 00000000 */ nop +/* 0A8084 7F073554 94A80002 */ lhu $t0, 2($a1) +/* 0A8088 7F073558 8FA9009C */ lw $t1, 0x9c($sp) +/* 0A808C 7F07355C 8DF80010 */ lw $t8, 0x10($t7) +/* 0A8090 7F073560 00085900 */ sll $t3, $t0, 4 +/* 0A8094 7F073564 1120000F */ beqz $t1, .L7F0735A4 +/* 0A8098 7F073568 030B1821 */ addu $v1, $t8, $t3 +/* 0A809C 7F07356C 24640010 */ addiu $a0, $v1, 0x10 +/* 0A80A0 7F073570 848A0000 */ lh $t2, ($a0) +/* 0A80A4 7F073574 A44A0000 */ sh $t2, ($v0) +/* 0A80A8 7F073578 848E0002 */ lh $t6, 2($a0) +/* 0A80AC 7F07357C A44E0002 */ sh $t6, 2($v0) +/* 0A80B0 7F073580 848D0004 */ lh $t5, 4($a0) +/* 0A80B4 7F073584 A44D0004 */ sh $t5, 4($v0) +/* 0A80B8 7F073588 846C0000 */ lh $t4, ($v1) +/* 0A80BC 7F07358C A4EC0000 */ sh $t4, ($a3) +/* 0A80C0 7F073590 84790002 */ lh $t9, 2($v1) +/* 0A80C4 7F073594 A4F90002 */ sh $t9, 2($a3) +/* 0A80C8 7F073598 846F0004 */ lh $t7, 4($v1) +/* 0A80CC 7F07359C 1000001E */ b .L7F073618 +/* 0A80D0 7F0735A0 A4EF0004 */ sh $t7, 4($a3) +.L7F0735A4: +/* 0A80D4 7F0735A4 84680000 */ lh $t0, ($v1) +/* 0A80D8 7F0735A8 24640010 */ addiu $a0, $v1, 0x10 +/* 0A80DC 7F0735AC A4480000 */ sh $t0, ($v0) +/* 0A80E0 7F0735B0 84780002 */ lh $t8, 2($v1) +/* 0A80E4 7F0735B4 A4580002 */ sh $t8, 2($v0) +/* 0A80E8 7F0735B8 846B0004 */ lh $t3, 4($v1) +/* 0A80EC 7F0735BC A44B0004 */ sh $t3, 4($v0) +/* 0A80F0 7F0735C0 84890000 */ lh $t1, ($a0) +/* 0A80F4 7F0735C4 A4E90000 */ sh $t1, ($a3) +/* 0A80F8 7F0735C8 848A0002 */ lh $t2, 2($a0) +/* 0A80FC 7F0735CC A4EA0002 */ sh $t2, 2($a3) +/* 0A8100 7F0735D0 848E0004 */ lh $t6, 4($a0) +/* 0A8104 7F0735D4 10000010 */ b .L7F073618 +/* 0A8108 7F0735D8 A4EE0004 */ sh $t6, 4($a3) +.L7F0735DC: +/* 0A810C 7F0735DC 10710007 */ beq $v1, $s1, .L7F0735FC +/* 0A8110 7F0735E0 00000000 */ nop +/* 0A8114 7F0735E4 10720007 */ beq $v1, $s2, .L7F073604 +/* 0A8118 7F0735E8 00000000 */ nop +/* 0A811C 7F0735EC 50730008 */ beql $v1, $s3, .L7F073610 +/* 0A8120 7F0735F0 24A50004 */ addiu $a1, $a1, 4 +/* 0A8124 7F0735F4 10000006 */ b .L7F073610 +/* 0A8128 7F0735F8 00000000 */ nop +.L7F0735FC: +/* 0A812C 7F0735FC 10000004 */ b .L7F073610 +/* 0A8130 7F073600 24A50004 */ addiu $a1, $a1, 4 +.L7F073604: +/* 0A8134 7F073604 10000002 */ b .L7F073610 +/* 0A8138 7F073608 24A50002 */ addiu $a1, $a1, 2 +/* 0A813C 7F07360C 24A50004 */ addiu $a1, $a1, 4 +.L7F073610: +/* 0A8140 7F073610 5CC0FFCD */ bgtzl $a2, .L7F073548 +/* 0A8144 7F073614 90A30000 */ lbu $v1, ($a1) +.L7F073618: +/* 0A8148 7F073618 8EB0000C */ lw $s0, 0xc($s5) +.L7F07361C: +/* 0A814C 7F07361C 3C0C0102 */ lui $t4, (0x01020040 >> 16) # lui $t4, 0x102 +/* 0A8150 7F073620 358C0040 */ ori $t4, (0x01020040 & 0xFFFF) # ori $t4, $t4, 0x40 +/* 0A8154 7F073624 260D0008 */ addiu $t5, $s0, 8 +/* 0A8158 7F073628 AEAD000C */ sw $t5, 0xc($s5) +/* 0A815C 7F07362C AE0C0000 */ sw $t4, ($s0) +/* 0A8160 7F073630 8FA40080 */ lw $a0, 0x80($sp) +/* 0A8164 7F073634 0C003A2C */ jal osVirtualToPhysical +/* 0A8168 7F073638 AFB0004C */ sw $s0, 0x4c($sp) +/* 0A816C 7F07363C 8FA3004C */ lw $v1, 0x4c($sp) +/* 0A8170 7F073640 3C0F0410 */ lui $t7, (0x04100020 >> 16) # lui $t7, 0x410 +/* 0A8174 7F073644 35EF0020 */ ori $t7, (0x04100020 & 0xFFFF) # ori $t7, $t7, 0x20 +/* 0A8178 7F073648 AC620004 */ sw $v0, 4($v1) +/* 0A817C 7F07364C 8EB0000C */ lw $s0, 0xc($s5) +/* 0A8180 7F073650 26190008 */ addiu $t9, $s0, 8 +/* 0A8184 7F073654 AEB9000C */ sw $t9, 0xc($s5) +/* 0A8188 7F073658 AE0F0000 */ sw $t7, ($s0) +/* 0A818C 7F07365C 8FA40074 */ lw $a0, 0x74($sp) +/* 0A8190 7F073660 0C003A2C */ jal osVirtualToPhysical +/* 0A8194 7F073664 AFB00048 */ sw $s0, 0x48($sp) +/* 0A8198 7F073668 8FA50048 */ lw $a1, 0x48($sp) +/* 0A819C 7F07366C 3C180102 */ lui $t8, (0x01020040 >> 16) # lui $t8, 0x102 +/* 0A81A0 7F073670 37180040 */ ori $t8, (0x01020040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 0A81A4 7F073674 ACA20004 */ sw $v0, 4($a1) +/* 0A81A8 7F073678 8EB0000C */ lw $s0, 0xc($s5) +/* 0A81AC 7F07367C 26080008 */ addiu $t0, $s0, 8 +/* 0A81B0 7F073680 AEA8000C */ sw $t0, 0xc($s5) +/* 0A81B4 7F073684 AE180000 */ sw $t8, ($s0) +/* 0A81B8 7F073688 8FA40084 */ lw $a0, 0x84($sp) +/* 0A81BC 7F07368C 0C003A2C */ jal osVirtualToPhysical +/* 0A81C0 7F073690 AFB00044 */ sw $s0, 0x44($sp) +/* 0A81C4 7F073694 8FA60044 */ lw $a2, 0x44($sp) +/* 0A81C8 7F073698 3C010400 */ lui $at, 0x400 +/* 0A81CC 7F07369C ACC20004 */ sw $v0, 4($a2) +/* 0A81D0 7F0736A0 8EB0000C */ lw $s0, 0xc($s5) +/* 0A81D4 7F0736A4 260B0008 */ addiu $t3, $s0, 8 +/* 0A81D8 7F0736A8 AEAB000C */ sw $t3, 0xc($s5) +/* 0A81DC 7F0736AC 92830001 */ lbu $v1, 1($s4) +/* 0A81E0 7F0736B0 2463FFFE */ addiu $v1, $v1, -2 +/* 0A81E4 7F0736B4 2469FFFF */ addiu $t1, $v1, -1 +/* 0A81E8 7F0736B8 00095100 */ sll $t2, $t1, 4 +/* 0A81EC 7F0736BC 354E0002 */ ori $t6, $t2, 2 +/* 0A81F0 7F0736C0 31CD00FF */ andi $t5, $t6, 0xff +/* 0A81F4 7F0736C4 000D6400 */ sll $t4, $t5, 0x10 +/* 0A81F8 7F0736C8 00037900 */ sll $t7, $v1, 4 +/* 0A81FC 7F0736CC 31E8FFFF */ andi $t0, $t7, 0xffff +/* 0A8200 7F0736D0 0181C825 */ or $t9, $t4, $at +/* 0A8204 7F0736D4 0328C025 */ or $t8, $t9, $t0 +/* 0A8208 7F0736D8 AE180000 */ sw $t8, ($s0) +/* 0A820C 7F0736DC 96890002 */ lhu $t1, 2($s4) +/* 0A8210 7F0736E0 8ECB0010 */ lw $t3, 0x10($s6) +/* 0A8214 7F0736E4 AFB00040 */ sw $s0, 0x40($sp) +/* 0A8218 7F0736E8 00095100 */ sll $t2, $t1, 4 +/* 0A821C 7F0736EC 016A2021 */ addu $a0, $t3, $t2 +/* 0A8220 7F0736F0 0C003A2C */ jal osVirtualToPhysical +/* 0A8224 7F0736F4 24840020 */ addiu $a0, $a0, 0x20 +/* 0A8228 7F0736F8 8FA50040 */ lw $a1, 0x40($sp) +/* 0A822C 7F0736FC 26940004 */ addiu $s4, $s4, 4 +/* 0A8230 7F073700 1000002B */ b .L7F0737B0 +/* 0A8234 7F073704 ACA20004 */ sw $v0, 4($a1) +/* 0A8238 7F073708 92820001 */ lbu $v0, 1($s4) +.L7F07370C: +/* 0A823C 7F07370C 240100FF */ li $at, 255 +/* 0A8240 7F073710 02A02025 */ move $a0, $s5 +/* 0A8244 7F073714 1041000B */ beq $v0, $at, .L7F073744 +/* 0A8248 7F073718 00002825 */ move $a1, $zero +/* 0A824C 7F07371C 00026880 */ sll $t5, $v0, 2 +/* 0A8250 7F073720 8ECE0014 */ lw $t6, 0x14($s6) +/* 0A8254 7F073724 01A26823 */ subu $t5, $t5, $v0 +/* 0A8258 7F073728 000D6880 */ sll $t5, $t5, 2 +/* 0A825C 7F07372C 02A02025 */ move $a0, $s5 +/* 0A8260 7F073730 02203025 */ move $a2, $s1 +/* 0A8264 7F073734 0FC1CC0E */ jal sub_GAME_7F073038 +/* 0A8268 7F073738 01CD2821 */ addu $a1, $t6, $t5 +/* 0A826C 7F07373C 1000001C */ b .L7F0737B0 +/* 0A8270 7F073740 26940002 */ addiu $s4, $s4, 2 +.L7F073744: +/* 0A8274 7F073744 0FC1CC0E */ jal sub_GAME_7F073038 +/* 0A8278 7F073748 02203025 */ move $a2, $s1 +/* 0A827C 7F07374C 10000018 */ b .L7F0737B0 +/* 0A8280 7F073750 26940002 */ addiu $s4, $s4, 2 +/* 0A8284 7F073754 8EB0000C */ lw $s0, 0xc($s5) +.L7F073758: +/* 0A8288 7F073758 3C0FBF00 */ lui $t7, 0xbf00 +/* 0A828C 7F07375C 26940004 */ addiu $s4, $s4, 4 +/* 0A8290 7F073760 260C0008 */ addiu $t4, $s0, 8 +/* 0A8294 7F073764 AEAC000C */ sw $t4, 0xc($s5) +/* 0A8298 7F073768 AE0F0000 */ sw $t7, ($s0) +/* 0A829C 7F07376C 9299FFFD */ lbu $t9, -3($s4) +/* 0A82A0 7F073770 928BFFFE */ lbu $t3, -2($s4) +/* 0A82A4 7F073774 928FFFFF */ lbu $t7, -1($s4) +/* 0A82A8 7F073778 033E0019 */ multu $t9, $fp +/* 0A82AC 7F07377C 00004012 */ mflo $t0 +/* 0A82B0 7F073780 311800FF */ andi $t8, $t0, 0xff +/* 0A82B4 7F073784 00184C00 */ sll $t1, $t8, 0x10 +/* 0A82B8 7F073788 017E0019 */ multu $t3, $fp +/* 0A82BC 7F07378C 00005012 */ mflo $t2 +/* 0A82C0 7F073790 314E00FF */ andi $t6, $t2, 0xff +/* 0A82C4 7F073794 000E6A00 */ sll $t5, $t6, 8 +/* 0A82C8 7F073798 01FE0019 */ multu $t7, $fp +/* 0A82CC 7F07379C 012D6025 */ or $t4, $t1, $t5 +/* 0A82D0 7F0737A0 0000C812 */ mflo $t9 +/* 0A82D4 7F0737A4 332800FF */ andi $t0, $t9, 0xff +/* 0A82D8 7F0737A8 0188C025 */ or $t8, $t4, $t0 +/* 0A82DC 7F0737AC AE180004 */ sw $t8, 4($s0) +.L7F0737B0: +/* 0A82E0 7F0737B0 26F7FFFF */ addiu $s7, $s7, -1 +.L7F0737B4: +/* 0A82E4 7F0737B4 5EE0FEFB */ bgtzl $s7, .L7F0733A4 +/* 0A82E8 7F0737B8 92840000 */ lbu $a0, ($s4) +.L7F0737BC: +/* 0A82EC 7F0737BC 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0737C0: +/* 0A82F0 7F0737C0 8FB00018 */ lw $s0, 0x18($sp) +/* 0A82F4 7F0737C4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0A82F8 7F0737C8 8FB20020 */ lw $s2, 0x20($sp) +/* 0A82FC 7F0737CC 8FB30024 */ lw $s3, 0x24($sp) +/* 0A8300 7F0737D0 8FB40028 */ lw $s4, 0x28($sp) +/* 0A8304 7F0737D4 8FB5002C */ lw $s5, 0x2c($sp) +/* 0A8308 7F0737D8 8FB60030 */ lw $s6, 0x30($sp) +/* 0A830C 7F0737DC 8FB70034 */ lw $s7, 0x34($sp) +/* 0A8310 7F0737E0 8FBE0038 */ lw $fp, 0x38($sp) +/* 0A8314 7F0737E4 03E00008 */ jr $ra +/* 0A8318 7F0737E8 27BD00D0 */ addiu $sp, $sp, 0xd0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0737EC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0737EC +/* 0A831C 7F0737EC AFA40000 */ sw $a0, ($sp) +/* 0A8320 7F0737F0 AFA50004 */ sw $a1, 4($sp) +/* 0A8324 7F0737F4 03E00008 */ jr $ra +/* 0A8328 7F0737F8 AFA60008 */ sw $a2, 8($sp) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0737FC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0737FC +/* 0A832C 7F0737FC AFA40000 */ sw $a0, ($sp) +/* 0A8330 7F073800 AFA50004 */ sw $a1, 4($sp) +/* 0A8334 7F073804 03E00008 */ jr $ra +/* 0A8338 7F073808 AFA60008 */ sw $a2, 8($sp) +) +#endif + + + + + +#ifdef NONMATCHING +void dogfnegx(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054D50 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel dogfnegx +/* 0A833C 7F07380C 27BDFF00 */ addiu $sp, $sp, -0x100 +/* 0A8340 7F073810 AFB20020 */ sw $s2, 0x20($sp) +/* 0A8344 7F073814 00809025 */ move $s2, $a0 +/* 0A8348 7F073818 AFBF0024 */ sw $ra, 0x24($sp) +/* 0A834C 7F07381C AFB1001C */ sw $s1, 0x1c($sp) +/* 0A8350 7F073820 AFB00018 */ sw $s0, 0x18($sp) +/* 0A8354 7F073824 AFA50104 */ sw $a1, 0x104($sp) +/* 0A8358 7F073828 00A02025 */ move $a0, $a1 +/* 0A835C 7F07382C 00C08025 */ move $s0, $a2 +/* 0A8360 7F073830 8CD10004 */ lw $s1, 4($a2) +/* 0A8364 7F073834 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A8368 7F073838 00C02825 */ move $a1, $a2 +/* 0A836C 7F07383C 3C0F8003 */ lui $t7, %hi(D_800363E0) +/* 0A8370 7F073840 25EF63E0 */ addiu $t7, %lo(D_800363E0) # addiu $t7, $t7, 0x63e0 +/* 0A8374 7F073844 8DE10000 */ lw $at, ($t7) +/* 0A8378 7F073848 8DF90004 */ lw $t9, 4($t7) +/* 0A837C 7F07384C 27AE0070 */ addiu $t6, $sp, 0x70 +/* 0A8380 7F073850 ADC10000 */ sw $at, ($t6) +/* 0A8384 7F073854 ADD90004 */ sw $t9, 4($t6) +/* 0A8388 7F073858 8DF9000C */ lw $t9, 0xc($t7) +/* 0A838C 7F07385C 8DE10008 */ lw $at, 8($t7) +/* 0A8390 7F073860 ADD9000C */ sw $t9, 0xc($t6) +/* 0A8394 7F073864 ADC10008 */ sw $at, 8($t6) +/* 0A8398 7F073868 8E580008 */ lw $t8, 8($s2) +/* 0A839C 7F07386C 330D0002 */ andi $t5, $t8, 2 +/* 0A83A0 7F073870 51A001D0 */ beql $t5, $zero, .L7F073FB4 +/* 0A83A4 7F073874 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A83A8 7F073878 844C0000 */ lh $t4, ($v0) +/* 0A83AC 7F07387C 02002025 */ move $a0, $s0 +/* 0A83B0 7F073880 518001CC */ beql $t4, $zero, .L7F073FB4 +/* 0A83B4 7F073884 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A83B8 7F073888 0FC1B15C */ jal sub_GAME_7F06C570 +/* 0A83BC 7F07388C 00002825 */ move $a1, $zero +/* 0A83C0 7F073890 8FAE0104 */ lw $t6, 0x104($sp) +/* 0A83C4 7F073894 0002C980 */ sll $t9, $v0, 6 +/* 0A83C8 7F073898 C6280000 */ lwc1 $f8, ($s1) +/* 0A83CC 7F07389C 8DCF000C */ lw $t7, 0xc($t6) +/* 0A83D0 7F0738A0 C6240004 */ lwc1 $f4, 4($s1) +/* 0A83D4 7F0738A4 01F98021 */ addu $s0, $t7, $t9 +/* 0A83D8 7F0738A8 C60A0000 */ lwc1 $f10, ($s0) +/* 0A83DC 7F0738AC 460A4182 */ mul.s $f6, $f8, $f10 +/* 0A83E0 7F0738B0 C6080010 */ lwc1 $f8, 0x10($s0) +/* 0A83E4 7F0738B4 46082282 */ mul.s $f10, $f4, $f8 +/* 0A83E8 7F0738B8 C6280008 */ lwc1 $f8, 8($s1) +/* 0A83EC 7F0738BC 460A3100 */ add.s $f4, $f6, $f10 +/* 0A83F0 7F0738C0 C6060020 */ lwc1 $f6, 0x20($s0) +/* 0A83F4 7F0738C4 46064282 */ mul.s $f10, $f8, $f6 +/* 0A83F8 7F0738C8 C6060030 */ lwc1 $f6, 0x30($s0) +/* 0A83FC 7F0738CC 460A2200 */ add.s $f8, $f4, $f10 +/* 0A8400 7F0738D0 46083100 */ add.s $f4, $f6, $f8 +/* 0A8404 7F0738D4 46002287 */ neg.s $f10, $f4 +/* 0A8408 7F0738D8 E7AA00D0 */ swc1 $f10, 0xd0($sp) +/* 0A840C 7F0738DC C6260000 */ lwc1 $f6, ($s1) +/* 0A8410 7F0738E0 C6080004 */ lwc1 $f8, 4($s0) +/* 0A8414 7F0738E4 46083102 */ mul.s $f4, $f6, $f8 +/* 0A8418 7F0738E8 C6080014 */ lwc1 $f8, 0x14($s0) +/* 0A841C 7F0738EC C6260004 */ lwc1 $f6, 4($s1) +/* 0A8420 7F0738F0 46083182 */ mul.s $f6, $f6, $f8 +/* 0A8424 7F0738F4 46062200 */ add.s $f8, $f4, $f6 +/* 0A8428 7F0738F8 C6060024 */ lwc1 $f6, 0x24($s0) +/* 0A842C 7F0738FC C6240008 */ lwc1 $f4, 8($s1) +/* 0A8430 7F073900 46062102 */ mul.s $f4, $f4, $f6 +/* 0A8434 7F073904 46044180 */ add.s $f6, $f8, $f4 +/* 0A8438 7F073908 C6080034 */ lwc1 $f8, 0x34($s0) +/* 0A843C 7F07390C 46064100 */ add.s $f4, $f8, $f6 +/* 0A8440 7F073910 46002207 */ neg.s $f8, $f4 +/* 0A8444 7F073914 E7A800D4 */ swc1 $f8, 0xd4($sp) +/* 0A8448 7F073918 C6040008 */ lwc1 $f4, 8($s0) +/* 0A844C 7F07391C C6260000 */ lwc1 $f6, ($s1) +/* 0A8450 7F073920 46043182 */ mul.s $f6, $f6, $f4 +/* 0A8454 7F073924 C6240004 */ lwc1 $f4, 4($s1) +/* 0A8458 7F073928 E7AA0028 */ swc1 $f10, 0x28($sp) +/* 0A845C 7F07392C C60A0018 */ lwc1 $f10, 0x18($s0) +/* 0A8460 7F073930 460A2102 */ mul.s $f4, $f4, $f10 +/* 0A8464 7F073934 46043280 */ add.s $f10, $f6, $f4 +/* 0A8468 7F073938 C6040028 */ lwc1 $f4, 0x28($s0) +/* 0A846C 7F07393C C6260008 */ lwc1 $f6, 8($s1) +/* 0A8470 7F073940 46043182 */ mul.s $f6, $f6, $f4 +/* 0A8474 7F073944 46065100 */ add.s $f4, $f10, $f6 +/* 0A8478 7F073948 C60A0038 */ lwc1 $f10, 0x38($s0) +/* 0A847C 7F07394C 46045180 */ add.s $f6, $f10, $f4 +/* 0A8480 7F073950 C7A40028 */ lwc1 $f4, 0x28($sp) +/* 0A8484 7F073954 46003287 */ neg.s $f10, $f6 +/* 0A8488 7F073958 46042182 */ mul.s $f6, $f4, $f4 +/* 0A848C 7F07395C E7AA00D8 */ swc1 $f10, 0xd8($sp) +/* 0A8490 7F073960 46084102 */ mul.s $f4, $f8, $f8 +/* 0A8494 7F073964 46043200 */ add.s $f8, $f6, $f4 +/* 0A8498 7F073968 460A5282 */ mul.s $f10, $f10, $f10 +/* 0A849C 7F07396C 0C007DF8 */ jal sqrtf +/* 0A84A0 7F073970 46085300 */ add.s $f12, $f10, $f8 +/* 0A84A4 7F073974 44807000 */ mtc1 $zero, $f14 +/* 0A84A8 7F073978 00000000 */ nop +/* 0A84AC 7F07397C 4600703C */ c.lt.s $f14, $f0 +/* 0A84B0 7F073980 00000000 */ nop +/* 0A84B4 7F073984 45020012 */ bc1fl .L7F0739D0 +/* 0A84B8 7F073988 8FAD0104 */ lw $t5, 0x104($sp) +/* 0A84BC 7F07398C 8FB80104 */ lw $t8, 0x104($sp) +/* 0A84C0 7F073990 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A84C4 7F073994 44813000 */ mtc1 $at, $f6 +/* 0A84C8 7F073998 C7040014 */ lwc1 $f4, 0x14($t8) +/* 0A84CC 7F07399C C7A800D0 */ lwc1 $f8, 0xd0($sp) +/* 0A84D0 7F0739A0 46002282 */ mul.s $f10, $f4, $f0 +/* 0A84D4 7F0739A4 460A3083 */ div.s $f2, $f6, $f10 +/* 0A84D8 7F0739A8 C7A600D4 */ lwc1 $f6, 0xd4($sp) +/* 0A84DC 7F0739AC 46024102 */ mul.s $f4, $f8, $f2 +/* 0A84E0 7F0739B0 C7A800D8 */ lwc1 $f8, 0xd8($sp) +/* 0A84E4 7F0739B4 46023282 */ mul.s $f10, $f6, $f2 +/* 0A84E8 7F0739B8 E7A400D0 */ swc1 $f4, 0xd0($sp) +/* 0A84EC 7F0739BC 46024102 */ mul.s $f4, $f8, $f2 +/* 0A84F0 7F0739C0 E7AA00D4 */ swc1 $f10, 0xd4($sp) +/* 0A84F4 7F0739C4 10000009 */ b .L7F0739EC +/* 0A84F8 7F0739C8 E7A400D8 */ swc1 $f4, 0xd8($sp) +/* 0A84FC 7F0739CC 8FAD0104 */ lw $t5, 0x104($sp) +.L7F0739D0: +/* 0A8500 7F0739D0 E7AE00D0 */ swc1 $f14, 0xd0($sp) +/* 0A8504 7F0739D4 E7AE00D4 */ swc1 $f14, 0xd4($sp) +/* 0A8508 7F0739D8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0A850C 7F0739DC 44813000 */ mtc1 $at, $f6 +/* 0A8510 7F0739E0 C5AA0014 */ lwc1 $f10, 0x14($t5) +/* 0A8514 7F0739E4 460A3203 */ div.s $f8, $f6, $f10 +/* 0A8518 7F0739E8 E7A800D8 */ swc1 $f8, 0xd8($sp) +.L7F0739EC: +/* 0A851C 7F0739EC C7A400D0 */ lwc1 $f4, 0xd0($sp) +/* 0A8520 7F0739F0 C6060010 */ lwc1 $f6, 0x10($s0) +/* 0A8524 7F0739F4 C7A800D4 */ lwc1 $f8, 0xd4($sp) +/* 0A8528 7F0739F8 46062282 */ mul.s $f10, $f4, $f6 +/* 0A852C 7F0739FC C6040014 */ lwc1 $f4, 0x14($s0) +/* 0A8530 7F073A00 46044182 */ mul.s $f6, $f8, $f4 +/* 0A8534 7F073A04 C6040018 */ lwc1 $f4, 0x18($s0) +/* 0A8538 7F073A08 46065200 */ add.s $f8, $f10, $f6 +/* 0A853C 7F073A0C C7AA00D8 */ lwc1 $f10, 0xd8($sp) +/* 0A8540 7F073A10 460A2182 */ mul.s $f6, $f4, $f10 +/* 0A8544 7F073A14 0FC16B2C */ jal acosf +/* 0A8548 7F073A18 46083300 */ add.s $f12, $f6, $f8 +/* 0A854C 7F073A1C E7A000DC */ swc1 $f0, 0xdc($sp) +/* 0A8550 7F073A20 0FC15FAB */ jal sinf +/* 0A8554 7F073A24 46000306 */ mov.s $f12, $f0 +/* 0A8558 7F073A28 C7A400D0 */ lwc1 $f4, 0xd0($sp) +/* 0A855C 7F073A2C C60A0020 */ lwc1 $f10, 0x20($s0) +/* 0A8560 7F073A30 C7A800D4 */ lwc1 $f8, 0xd4($sp) +/* 0A8564 7F073A34 460A2182 */ mul.s $f6, $f4, $f10 +/* 0A8568 7F073A38 C6040024 */ lwc1 $f4, 0x24($s0) +/* 0A856C 7F073A3C 46044282 */ mul.s $f10, $f8, $f4 +/* 0A8570 7F073A40 C7A400D8 */ lwc1 $f4, 0xd8($sp) +/* 0A8574 7F073A44 460A3200 */ add.s $f8, $f6, $f10 +/* 0A8578 7F073A48 C6060028 */ lwc1 $f6, 0x28($s0) +/* 0A857C 7F073A4C 46062282 */ mul.s $f10, $f4, $f6 +/* 0A8580 7F073A50 460A4100 */ add.s $f4, $f8, $f10 +/* 0A8584 7F073A54 46002187 */ neg.s $f6, $f4 +/* 0A8588 7F073A58 0FC16B2C */ jal acosf +/* 0A858C 7F073A5C 46003303 */ div.s $f12, $f6, $f0 +/* 0A8590 7F073A60 C7A800D0 */ lwc1 $f8, 0xd0($sp) +/* 0A8594 7F073A64 C60A0000 */ lwc1 $f10, ($s0) +/* 0A8598 7F073A68 C7A600D4 */ lwc1 $f6, 0xd4($sp) +/* 0A859C 7F073A6C 46000306 */ mov.s $f12, $f0 +/* 0A85A0 7F073A70 460A4102 */ mul.s $f4, $f8, $f10 +/* 0A85A4 7F073A74 C6080004 */ lwc1 $f8, 4($s0) +/* 0A85A8 7F073A78 46083282 */ mul.s $f10, $f6, $f8 +/* 0A85AC 7F073A7C C6080008 */ lwc1 $f8, 8($s0) +/* 0A85B0 7F073A80 460A2180 */ add.s $f6, $f4, $f10 +/* 0A85B4 7F073A84 C7A400D8 */ lwc1 $f4, 0xd8($sp) +/* 0A85B8 7F073A88 46044282 */ mul.s $f10, $f8, $f4 +/* 0A85BC 7F073A8C 44804000 */ mtc1 $zero, $f8 +/* 0A85C0 7F073A90 46065080 */ add.s $f2, $f10, $f6 +/* 0A85C4 7F073A94 46001087 */ neg.s $f2, $f2 +/* 0A85C8 7F073A98 4608103C */ c.lt.s $f2, $f8 +/* 0A85CC 7F073A9C 00000000 */ nop +/* 0A85D0 7F073AA0 45000003 */ bc1f .L7F073AB0 +/* 0A85D4 7F073AA4 3C018005 */ lui $at, %hi(D_80054D50) +/* 0A85D8 7F073AA8 C4244D50 */ lwc1 $f4, %lo(D_80054D50)($at) +/* 0A85DC 7F073AAC 46002301 */ sub.s $f12, $f4, $f0 +.L7F073AB0: +/* 0A85E0 7F073AB0 0FC15FA8 */ jal cosf +/* 0A85E4 7F073AB4 E7AC00E0 */ swc1 $f12, 0xe0($sp) +/* 0A85E8 7F073AB8 C7AC00E0 */ lwc1 $f12, 0xe0($sp) +/* 0A85EC 7F073ABC 0FC15FAB */ jal sinf +/* 0A85F0 7F073AC0 E7A000CC */ swc1 $f0, 0xcc($sp) +/* 0A85F4 7F073AC4 E7A000C8 */ swc1 $f0, 0xc8($sp) +/* 0A85F8 7F073AC8 0FC15FA8 */ jal cosf +/* 0A85FC 7F073ACC C7AC00DC */ lwc1 $f12, 0xdc($sp) +/* 0A8600 7F073AD0 E7A000C4 */ swc1 $f0, 0xc4($sp) +/* 0A8604 7F073AD4 0FC15FAB */ jal sinf +/* 0A8608 7F073AD8 C7AC00DC */ lwc1 $f12, 0xdc($sp) +/* 0A860C 7F073ADC 0C002914 */ jal get_random_value +/* 0A8610 7F073AE0 E7A000C0 */ swc1 $f0, 0xc0($sp) +/* 0A8614 7F073AE4 304C007F */ andi $t4, $v0, 0x7f +/* 0A8618 7F073AE8 448C5000 */ mtc1 $t4, $f10 +/* 0A861C 7F073AEC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0A8620 7F073AF0 44810000 */ mtc1 $at, $f0 +/* 0A8624 7F073AF4 C7AC00CC */ lwc1 $f12, 0xcc($sp) +/* 0A8628 7F073AF8 C7AE00C8 */ lwc1 $f14, 0xc8($sp) +/* 0A862C 7F073AFC C7B200C4 */ lwc1 $f18, 0xc4($sp) +/* 0A8630 7F073B00 05810005 */ bgez $t4, .L7F073B18 +/* 0A8634 7F073B04 468051A0 */ cvt.s.w $f6, $f10 +/* 0A8638 7F073B08 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0A863C 7F073B0C 44814000 */ mtc1 $at, $f8 +/* 0A8640 7F073B10 00000000 */ nop +/* 0A8644 7F073B14 46083180 */ add.s $f6, $f6, $f8 +.L7F073B18: +/* 0A8648 7F073B18 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 0A864C 7F073B1C 44812000 */ mtc1 $at, $f4 +/* 0A8650 7F073B20 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0A8654 7F073B24 44814000 */ mtc1 $at, $f8 +/* 0A8658 7F073B28 46043282 */ mul.s $f10, $f6, $f4 +/* 0A865C 7F073B2C C626000C */ lwc1 $f6, 0xc($s1) +/* 0A8660 7F073B30 3C038003 */ lui $v1, %hi(D_8003608C) +/* 0A8664 7F073B34 8C63608C */ lw $v1, %lo(D_8003608C)($v1) +/* 0A8668 7F073B38 3C048005 */ lui $a0, %hi(aDogfnegxNoVtxAllocator) +/* 0A866C 7F073B3C 24844A74 */ addiu $a0, %lo(aDogfnegxNoVtxAllocator) # addiu $a0, $a0, 0x4a74 +/* 0A8670 7F073B40 46085080 */ add.s $f2, $f10, $f8 +/* 0A8674 7F073B44 46023102 */ mul.s $f4, $f6, $f2 +/* 0A8678 7F073B48 E7A4008C */ swc1 $f4, 0x8c($sp) +/* 0A867C 7F073B4C C62A0010 */ lwc1 $f10, 0x10($s1) +/* 0A8680 7F073B50 46025202 */ mul.s $f8, $f10, $f2 +/* 0A8684 7F073B54 C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0A8688 7F073B58 E7A80090 */ swc1 $f8, 0x90($sp) +/* 0A868C 7F073B5C C6260014 */ lwc1 $f6, 0x14($s1) +/* 0A8690 7F073B60 46023102 */ mul.s $f4, $f6, $f2 +/* 0A8694 7F073B64 00000000 */ nop +/* 0A8698 7F073B68 460C5202 */ mul.s $f8, $f10, $f12 +/* 0A869C 7F073B6C E7A40094 */ swc1 $f4, 0x94($sp) +/* 0A86A0 7F073B70 C7A40094 */ lwc1 $f4, 0x94($sp) +/* 0A86A4 7F073B74 46004182 */ mul.s $f6, $f8, $f0 +/* 0A86A8 7F073B78 00000000 */ nop +/* 0A86AC 7F073B7C 460E2202 */ mul.s $f8, $f4, $f14 +/* 0A86B0 7F073B80 E7A600BC */ swc1 $f6, 0xbc($sp) +/* 0A86B4 7F073B84 46004182 */ mul.s $f6, $f8, $f0 +/* 0A86B8 7F073B88 C7A80090 */ lwc1 $f8, 0x90($sp) +/* 0A86BC 7F073B8C E7A600B8 */ swc1 $f6, 0xb8($sp) +/* 0A86C0 7F073B90 C7A600C0 */ lwc1 $f6, 0xc0($sp) +/* 0A86C4 7F073B94 46064202 */ mul.s $f8, $f8, $f6 +/* 0A86C8 7F073B98 00000000 */ nop +/* 0A86CC 7F073B9C 46004402 */ mul.s $f16, $f8, $f0 +/* 0A86D0 7F073BA0 00000000 */ nop +/* 0A86D4 7F073BA4 46125182 */ mul.s $f6, $f10, $f18 +/* 0A86D8 7F073BA8 00000000 */ nop +/* 0A86DC 7F073BAC 460E3202 */ mul.s $f8, $f6, $f14 +/* 0A86E0 7F073BB0 00000000 */ nop +/* 0A86E4 7F073BB4 46004182 */ mul.s $f6, $f8, $f0 +/* 0A86E8 7F073BB8 00000000 */ nop +/* 0A86EC 7F073BBC 46122202 */ mul.s $f8, $f4, $f18 +/* 0A86F0 7F073BC0 E7A600B0 */ swc1 $f6, 0xb0($sp) +/* 0A86F4 7F073BC4 460C4182 */ mul.s $f6, $f8, $f12 +/* 0A86F8 7F073BC8 00000000 */ nop +/* 0A86FC 7F073BCC 46003102 */ mul.s $f4, $f6, $f0 +/* 0A8700 7F073BD0 E7A400AC */ swc1 $f4, 0xac($sp) +/* 0A8704 7F073BD4 46005182 */ mul.s $f6, $f10, $f0 +/* 0A8708 7F073BD8 C6280000 */ lwc1 $f8, ($s1) +/* 0A870C 7F073BDC 46064101 */ sub.s $f4, $f8, $f6 +/* 0A8710 7F073BE0 E7A40080 */ swc1 $f4, 0x80($sp) +/* 0A8714 7F073BE4 C62A0004 */ lwc1 $f10, 4($s1) +/* 0A8718 7F073BE8 E7AA0084 */ swc1 $f10, 0x84($sp) +/* 0A871C 7F073BEC C6280008 */ lwc1 $f8, 8($s1) +/* 0A8720 7F073BF0 14600008 */ bnez $v1, .L7F073C14 +/* 0A8724 7F073BF4 E7A80088 */ swc1 $f8, 0x88($sp) +/* 0A8728 7F073BF8 0C0033D1 */ jal osSyncPrintf +/* 0A872C 7F073BFC E7B000B4 */ swc1 $f16, 0xb4($sp) +/* 0A8730 7F073C00 0FC1B11B */ jal return_null +/* 0A8734 7F073C04 00000000 */ nop +/* 0A8738 7F073C08 3C038003 */ lui $v1, %hi(D_8003608C) +/* 0A873C 7F073C0C 8C63608C */ lw $v1, %lo(D_8003608C)($v1) +/* 0A8740 7F073C10 C7B000B4 */ lwc1 $f16, 0xb4($sp) +.L7F073C14: +/* 0A8744 7F073C14 24040004 */ li $a0, 4 +/* 0A8748 7F073C18 0060F809 */ jalr $v1 +/* 0A874C 7F073C1C E7B000B4 */ swc1 $f16, 0xb4($sp) +/* 0A8750 7F073C20 27A30070 */ addiu $v1, $sp, 0x70 +/* 0A8754 7F073C24 AFA2006C */ sw $v0, 0x6c($sp) +/* 0A8758 7F073C28 8C610000 */ lw $at, ($v1) +/* 0A875C 7F073C2C C7B000B4 */ lwc1 $f16, 0xb4($sp) +/* 0A8760 7F073C30 AC410000 */ sw $at, ($v0) +/* 0A8764 7F073C34 8C790004 */ lw $t9, 4($v1) +/* 0A8768 7F073C38 AC590004 */ sw $t9, 4($v0) +/* 0A876C 7F073C3C 8C610008 */ lw $at, 8($v1) +/* 0A8770 7F073C40 AC410008 */ sw $at, 8($v0) +/* 0A8774 7F073C44 8C79000C */ lw $t9, 0xc($v1) +/* 0A8778 7F073C48 AC59000C */ sw $t9, 0xc($v0) +/* 0A877C 7F073C4C 8C610000 */ lw $at, ($v1) +/* 0A8780 7F073C50 AC410010 */ sw $at, 0x10($v0) +/* 0A8784 7F073C54 8C6C0004 */ lw $t4, 4($v1) +/* 0A8788 7F073C58 AC4C0014 */ sw $t4, 0x14($v0) +/* 0A878C 7F073C5C 8C610008 */ lw $at, 8($v1) +/* 0A8790 7F073C60 AC410018 */ sw $at, 0x18($v0) +/* 0A8794 7F073C64 8C6C000C */ lw $t4, 0xc($v1) +/* 0A8798 7F073C68 AC4C001C */ sw $t4, 0x1c($v0) +/* 0A879C 7F073C6C 8C610000 */ lw $at, ($v1) +/* 0A87A0 7F073C70 AC410020 */ sw $at, 0x20($v0) +/* 0A87A4 7F073C74 8C790004 */ lw $t9, 4($v1) +/* 0A87A8 7F073C78 AC590024 */ sw $t9, 0x24($v0) +/* 0A87AC 7F073C7C 8C610008 */ lw $at, 8($v1) +/* 0A87B0 7F073C80 AC410028 */ sw $at, 0x28($v0) +/* 0A87B4 7F073C84 8C79000C */ lw $t9, 0xc($v1) +/* 0A87B8 7F073C88 AC59002C */ sw $t9, 0x2c($v0) +/* 0A87BC 7F073C8C 8C610000 */ lw $at, ($v1) +/* 0A87C0 7F073C90 AC410030 */ sw $at, 0x30($v0) +/* 0A87C4 7F073C94 8C6C0004 */ lw $t4, 4($v1) +/* 0A87C8 7F073C98 AC4C0034 */ sw $t4, 0x34($v0) +/* 0A87CC 7F073C9C 8C610008 */ lw $at, 8($v1) +/* 0A87D0 7F073CA0 AC410038 */ sw $at, 0x38($v0) +/* 0A87D4 7F073CA4 8C6C000C */ lw $t4, 0xc($v1) +/* 0A87D8 7F073CA8 AC4C003C */ sw $t4, 0x3c($v0) +/* 0A87DC 7F073CAC C7A000BC */ lwc1 $f0, 0xbc($sp) +/* 0A87E0 7F073CB0 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 0A87E4 7F073CB4 C7AC00B0 */ lwc1 $f12, 0xb0($sp) +/* 0A87E8 7F073CB8 46000007 */ neg.s $f0, $f0 +/* 0A87EC 7F073CBC 46003100 */ add.s $f4, $f6, $f0 +/* 0A87F0 7F073CC0 46006307 */ neg.s $f12, $f12 +/* 0A87F4 7F073CC4 460C2280 */ add.s $f10, $f4, $f12 +/* 0A87F8 7F073CC8 4600520D */ trunc.w.s $f8, $f10 +/* 0A87FC 7F073CCC 440F4000 */ mfc1 $t7, $f8 +/* 0A8800 7F073CD0 00000000 */ nop +/* 0A8804 7F073CD4 A44F0000 */ sh $t7, ($v0) +/* 0A8808 7F073CD8 C7A60084 */ lwc1 $f6, 0x84($sp) +/* 0A880C 7F073CDC 46103101 */ sub.s $f4, $f6, $f16 +/* 0A8810 7F073CE0 4600228D */ trunc.w.s $f10, $f4 +/* 0A8814 7F073CE4 44185000 */ mfc1 $t8, $f10 +/* 0A8818 7F073CE8 00000000 */ nop +/* 0A881C 7F073CEC A4580002 */ sh $t8, 2($v0) +/* 0A8820 7F073CF0 C7A200B8 */ lwc1 $f2, 0xb8($sp) +/* 0A8824 7F073CF4 C7A80088 */ lwc1 $f8, 0x88($sp) +/* 0A8828 7F073CF8 C7AE00AC */ lwc1 $f14, 0xac($sp) +/* 0A882C 7F073CFC 46001087 */ neg.s $f2, $f2 +/* 0A8830 7F073D00 46024181 */ sub.s $f6, $f8, $f2 +/* 0A8834 7F073D04 46007387 */ neg.s $f14, $f14 +/* 0A8838 7F073D08 460E3100 */ add.s $f4, $f6, $f14 +/* 0A883C 7F073D0C 4600228D */ trunc.w.s $f10, $f4 +/* 0A8840 7F073D10 440C5000 */ mfc1 $t4, $f10 +/* 0A8844 7F073D14 00000000 */ nop +/* 0A8848 7F073D18 A44C0004 */ sh $t4, 4($v0) +/* 0A884C 7F073D1C C7A80080 */ lwc1 $f8, 0x80($sp) +/* 0A8850 7F073D20 46004180 */ add.s $f6, $f8, $f0 +/* 0A8854 7F073D24 460C3101 */ sub.s $f4, $f6, $f12 +/* 0A8858 7F073D28 4600228D */ trunc.w.s $f10, $f4 +/* 0A885C 7F073D2C 440F5000 */ mfc1 $t7, $f10 +/* 0A8860 7F073D30 00000000 */ nop +/* 0A8864 7F073D34 A44F0010 */ sh $t7, 0x10($v0) +/* 0A8868 7F073D38 C7A80084 */ lwc1 $f8, 0x84($sp) +/* 0A886C 7F073D3C 46104180 */ add.s $f6, $f8, $f16 +/* 0A8870 7F073D40 4600310D */ trunc.w.s $f4, $f6 +/* 0A8874 7F073D44 44182000 */ mfc1 $t8, $f4 +/* 0A8878 7F073D48 00000000 */ nop +/* 0A887C 7F073D4C A4580012 */ sh $t8, 0x12($v0) +/* 0A8880 7F073D50 C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 0A8884 7F073D54 46025201 */ sub.s $f8, $f10, $f2 +/* 0A8888 7F073D58 460E4181 */ sub.s $f6, $f8, $f14 +/* 0A888C 7F073D5C 4600310D */ trunc.w.s $f4, $f6 +/* 0A8890 7F073D60 440C2000 */ mfc1 $t4, $f4 +/* 0A8894 7F073D64 00000000 */ nop +/* 0A8898 7F073D68 A44C0014 */ sh $t4, 0x14($v0) +/* 0A889C 7F073D6C C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 0A88A0 7F073D70 46005201 */ sub.s $f8, $f10, $f0 +/* 0A88A4 7F073D74 460C4181 */ sub.s $f6, $f8, $f12 +/* 0A88A8 7F073D78 4600310D */ trunc.w.s $f4, $f6 +/* 0A88AC 7F073D7C 440F2000 */ mfc1 $t7, $f4 +/* 0A88B0 7F073D80 00000000 */ nop +/* 0A88B4 7F073D84 A44F0020 */ sh $t7, 0x20($v0) +/* 0A88B8 7F073D88 C7AA0084 */ lwc1 $f10, 0x84($sp) +/* 0A88BC 7F073D8C 46105200 */ add.s $f8, $f10, $f16 +/* 0A88C0 7F073D90 4600418D */ trunc.w.s $f6, $f8 +/* 0A88C4 7F073D94 44183000 */ mfc1 $t8, $f6 +/* 0A88C8 7F073D98 00000000 */ nop +/* 0A88CC 7F073D9C A4580022 */ sh $t8, 0x22($v0) +/* 0A88D0 7F073DA0 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0A88D4 7F073DA4 46022280 */ add.s $f10, $f4, $f2 +/* 0A88D8 7F073DA8 460E5201 */ sub.s $f8, $f10, $f14 +/* 0A88DC 7F073DAC 4600418D */ trunc.w.s $f6, $f8 +/* 0A88E0 7F073DB0 440C3000 */ mfc1 $t4, $f6 +/* 0A88E4 7F073DB4 00000000 */ nop +/* 0A88E8 7F073DB8 A44C0024 */ sh $t4, 0x24($v0) +/* 0A88EC 7F073DBC C7A40080 */ lwc1 $f4, 0x80($sp) +/* 0A88F0 7F073DC0 46002281 */ sub.s $f10, $f4, $f0 +/* 0A88F4 7F073DC4 460C5200 */ add.s $f8, $f10, $f12 +/* 0A88F8 7F073DC8 4600418D */ trunc.w.s $f6, $f8 +/* 0A88FC 7F073DCC 440F3000 */ mfc1 $t7, $f6 +/* 0A8900 7F073DD0 00000000 */ nop +/* 0A8904 7F073DD4 A44F0030 */ sh $t7, 0x30($v0) +/* 0A8908 7F073DD8 C7A40084 */ lwc1 $f4, 0x84($sp) +/* 0A890C 7F073DDC 3C0FBC00 */ lui $t7, (0xBC001406 >> 16) # lui $t7, 0xbc00 +/* 0A8910 7F073DE0 35EF1406 */ ori $t7, (0xBC001406 & 0xFFFF) # ori $t7, $t7, 0x1406 +/* 0A8914 7F073DE4 46102281 */ sub.s $f10, $f4, $f16 +/* 0A8918 7F073DE8 4600520D */ trunc.w.s $f8, $f10 +/* 0A891C 7F073DEC 44184000 */ mfc1 $t8, $f8 +/* 0A8920 7F073DF0 00000000 */ nop +/* 0A8924 7F073DF4 A4580032 */ sh $t8, 0x32($v0) +/* 0A8928 7F073DF8 C7A60088 */ lwc1 $f6, 0x88($sp) +/* 0A892C 7F073DFC 46023100 */ add.s $f4, $f6, $f2 +/* 0A8930 7F073E00 460E2280 */ add.s $f10, $f4, $f14 +/* 0A8934 7F073E04 4600520D */ trunc.w.s $f8, $f10 +/* 0A8938 7F073E08 440C4000 */ mfc1 $t4, $f8 +/* 0A893C 7F073E0C 00000000 */ nop +/* 0A8940 7F073E10 A44C0034 */ sh $t4, 0x34($v0) +/* 0A8944 7F073E14 8E43000C */ lw $v1, 0xc($s2) +/* 0A8948 7F073E18 246E0008 */ addiu $t6, $v1, 8 +/* 0A894C 7F073E1C AE4E000C */ sw $t6, 0xc($s2) +/* 0A8950 7F073E20 AC6F0000 */ sw $t7, ($v1) +/* 0A8954 7F073E24 8E240024 */ lw $a0, 0x24($s1) +/* 0A8958 7F073E28 0C003A2C */ jal osVirtualToPhysical +/* 0A895C 7F073E2C AFA3005C */ sw $v1, 0x5c($sp) +/* 0A8960 7F073E30 8FA5005C */ lw $a1, 0x5c($sp) +/* 0A8964 7F073E34 02402025 */ move $a0, $s2 +/* 0A8968 7F073E38 ACA20004 */ sw $v0, 4($a1) +/* 0A896C 7F073E3C 8E230018 */ lw $v1, 0x18($s1) +/* 0A8970 7F073E40 00002825 */ move $a1, $zero +/* 0A8974 7F073E44 10600037 */ beqz $v1, .L7F073F24 +/* 0A8978 7F073E48 00000000 */ nop +/* 0A897C 7F073E4C 0C002914 */ jal get_random_value +/* 0A8980 7F073E50 00608825 */ move $s1, $v1 +/* 0A8984 7F073E54 0002CA80 */ sll $t9, $v0, 0xa +/* 0A8988 7F073E58 A7B90056 */ sh $t9, 0x56($sp) +/* 0A898C 7F073E5C 0C005B0C */ jal coss +/* 0A8990 7F073E60 3324FFFF */ andi $a0, $t9, 0xffff +/* 0A8994 7F073E64 92380004 */ lbu $t8, 4($s1) +/* 0A8998 7F073E68 97A40056 */ lhu $a0, 0x56($sp) +/* 0A899C 7F073E6C 00580019 */ multu $v0, $t8 +/* 0A89A0 7F073E70 00004812 */ mflo $t1 +/* 0A89A4 7F073E74 00096880 */ sll $t5, $t1, 2 +/* 0A89A8 7F073E78 01A96823 */ subu $t5, $t5, $t1 +/* 0A89AC 7F073E7C 000D6880 */ sll $t5, $t5, 2 +/* 0A89B0 7F073E80 01A96823 */ subu $t5, $t5, $t1 +/* 0A89B4 7F073E84 000D6880 */ sll $t5, $t5, 2 +/* 0A89B8 7F073E88 01A96821 */ addu $t5, $t5, $t1 +/* 0A89BC 7F073E8C 000D6880 */ sll $t5, $t5, 2 +/* 0A89C0 7F073E90 01A96821 */ addu $t5, $t5, $t1 +/* 0A89C4 7F073E94 000D6483 */ sra $t4, $t5, 0x12 +/* 0A89C8 7F073E98 0C005B18 */ jal sins +/* 0A89CC 7F073E9C AFAC0050 */ sw $t4, 0x50($sp) +/* 0A89D0 7F073EA0 92240004 */ lbu $a0, 4($s1) +/* 0A89D4 7F073EA4 8FA8006C */ lw $t0, 0x6c($sp) +/* 0A89D8 7F073EA8 8FA90050 */ lw $t1, 0x50($sp) +/* 0A89DC 7F073EAC 00440019 */ multu $v0, $a0 +/* 0A89E0 7F073EB0 00041900 */ sll $v1, $a0, 4 +/* 0A89E4 7F073EB4 00693023 */ subu $a2, $v1, $t1 +/* 0A89E8 7F073EB8 A5060008 */ sh $a2, 8($t0) +/* 0A89EC 7F073EBC A506001A */ sh $a2, 0x1a($t0) +/* 0A89F0 7F073EC0 00695821 */ addu $t3, $v1, $t1 +/* 0A89F4 7F073EC4 24060004 */ li $a2, 4 +/* 0A89F8 7F073EC8 02402025 */ move $a0, $s2 +/* 0A89FC 7F073ECC A50B0028 */ sh $t3, 0x28($t0) +/* 0A8A00 7F073ED0 A50B003A */ sh $t3, 0x3a($t0) +/* 0A8A04 7F073ED4 00002812 */ mflo $a1 +/* 0A8A08 7F073ED8 00057080 */ sll $t6, $a1, 2 +/* 0A8A0C 7F073EDC 01C57023 */ subu $t6, $t6, $a1 +/* 0A8A10 7F073EE0 000E7080 */ sll $t6, $t6, 2 +/* 0A8A14 7F073EE4 01C57023 */ subu $t6, $t6, $a1 +/* 0A8A18 7F073EE8 000E7080 */ sll $t6, $t6, 2 +/* 0A8A1C 7F073EEC 01C57021 */ addu $t6, $t6, $a1 +/* 0A8A20 7F073EF0 000E7080 */ sll $t6, $t6, 2 +/* 0A8A24 7F073EF4 01C57021 */ addu $t6, $t6, $a1 +/* 0A8A28 7F073EF8 000E7C83 */ sra $t7, $t6, 0x12 +/* 0A8A2C 7F073EFC 006F5023 */ subu $t2, $v1, $t7 +/* 0A8A30 7F073F00 006F3821 */ addu $a3, $v1, $t7 +/* 0A8A34 7F073F04 02202825 */ move $a1, $s1 +/* 0A8A38 7F073F08 A50A000A */ sh $t2, 0xa($t0) +/* 0A8A3C 7F073F0C A5070018 */ sh $a3, 0x18($t0) +/* 0A8A40 7F073F10 A507002A */ sh $a3, 0x2a($t0) +/* 0A8A44 7F073F14 0FC1CC0E */ jal sub_GAME_7F073038 +/* 0A8A48 7F073F18 A50A0038 */ sh $t2, 0x38($t0) +/* 0A8A4C 7F073F1C 10000004 */ b .L7F073F30 +/* 0A8A50 7F073F20 8E43000C */ lw $v1, 0xc($s2) +.L7F073F24: +/* 0A8A54 7F073F24 0FC1CC0E */ jal sub_GAME_7F073038 +/* 0A8A58 7F073F28 24060001 */ li $a2, 1 +/* 0A8A5C 7F073F2C 8E43000C */ lw $v1, 0xc($s2) +.L7F073F30: +/* 0A8A60 7F073F30 3C18B700 */ lui $t8, 0xb700 +/* 0A8A64 7F073F34 240D2000 */ li $t5, 8192 +/* 0A8A68 7F073F38 24790008 */ addiu $t9, $v1, 8 +/* 0A8A6C 7F073F3C AE59000C */ sw $t9, 0xc($s2) +/* 0A8A70 7F073F40 AC6D0004 */ sw $t5, 4($v1) +/* 0A8A74 7F073F44 AC780000 */ sw $t8, ($v1) +/* 0A8A78 7F073F48 8E51000C */ lw $s1, 0xc($s2) +/* 0A8A7C 7F073F4C 3C0E0102 */ lui $t6, (0x01020040 >> 16) # lui $t6, 0x102 +/* 0A8A80 7F073F50 35CE0040 */ ori $t6, (0x01020040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 0A8A84 7F073F54 262C0008 */ addiu $t4, $s1, 8 +/* 0A8A88 7F073F58 AE4C000C */ sw $t4, 0xc($s2) +/* 0A8A8C 7F073F5C 02002025 */ move $a0, $s0 +/* 0A8A90 7F073F60 0C003A2C */ jal osVirtualToPhysical +/* 0A8A94 7F073F64 AE2E0000 */ sw $t6, ($s1) +/* 0A8A98 7F073F68 AE220004 */ sw $v0, 4($s1) +/* 0A8A9C 7F073F6C 8E50000C */ lw $s0, 0xc($s2) +/* 0A8AA0 7F073F70 3C190430 */ lui $t9, (0x04300040 >> 16) # lui $t9, 0x430 +/* 0A8AA4 7F073F74 37390040 */ ori $t9, (0x04300040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 0A8AA8 7F073F78 260F0008 */ addiu $t7, $s0, 8 +/* 0A8AAC 7F073F7C AE4F000C */ sw $t7, 0xc($s2) +/* 0A8AB0 7F073F80 AE190000 */ sw $t9, ($s0) +/* 0A8AB4 7F073F84 0C003A2C */ jal osVirtualToPhysical +/* 0A8AB8 7F073F88 8FA4006C */ lw $a0, 0x6c($sp) +/* 0A8ABC 7F073F8C AE020004 */ sw $v0, 4($s0) +/* 0A8AC0 7F073F90 8E43000C */ lw $v1, 0xc($s2) +/* 0A8AC4 7F073F94 3C0DB100 */ lui $t5, (0xB1000002 >> 16) # lui $t5, 0xb100 # gSP4Triangles(6,1,2,8,2,0,1,0,0,0,0,0 +/* 0A8AC8 7F073F98 35AD0002 */ ori $t5, (0xB1000002 & 0xFFFF) # ori $t5, $t5, 2 +/* 0A8ACC 7F073F9C 24780008 */ addiu $t8, $v1, 8 +/* 0A8AD0 7F073FA0 AE58000C */ sw $t8, 0xc($s2) +/* 0A8AD4 7F073FA4 240C3210 */ li $t4, 12816 +/* 0A8AD8 7F073FA8 AC6C0004 */ sw $t4, 4($v1) +/* 0A8ADC 7F073FAC AC6D0000 */ sw $t5, ($v1) # ), +/* 0A8AE0 7F073FB0 8FBF0024 */ lw $ra, 0x24($sp) +.L7F073FB4: +/* 0A8AE4 7F073FB4 8FB00018 */ lw $s0, 0x18($sp) +/* 0A8AE8 7F073FB8 8FB1001C */ lw $s1, 0x1c($sp) +/* 0A8AEC 7F073FBC 8FB20020 */ lw $s2, 0x20($sp) +/* 0A8AF0 7F073FC0 03E00008 */ jr $ra +/* 0A8AF4 7F073FC4 27BD0100 */ addiu $sp, $sp, 0x100 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F073FC8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F073FC8 +/* 0A8AF8 7F073FC8 3C018003 */ lui $at, %hi(D_800363F0) +/* 0A8AFC 7F073FCC 03E00008 */ jr $ra +/* 0A8B00 7F073FD0 AC2463F0 */ sw $a0, %lo(D_800363F0)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void doshadow(void) { + +} +#else +GLOBAL_ASM( +.text +glabel doshadow +/* 0A8B04 7F073FD4 3C038003 */ lui $v1, %hi(D_800363F0) +/* 0A8B08 7F073FD8 246363F0 */ addiu $v1, %lo(D_800363F0) # addiu $v1, $v1, 0x63f0 +/* 0A8B0C 7F073FDC 8C6E0000 */ lw $t6, ($v1) +/* 0A8B10 7F073FE0 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 0A8B14 7F073FE4 AFB00018 */ sw $s0, 0x18($sp) +/* 0A8B18 7F073FE8 00808025 */ move $s0, $a0 +/* 0A8B1C 7F073FEC AFBF001C */ sw $ra, 0x1c($sp) +/* 0A8B20 7F073FF0 AFA60080 */ sw $a2, 0x80($sp) +/* 0A8B24 7F073FF4 19C00142 */ blez $t6, .L7F074500 +/* 0A8B28 7F073FF8 00A03825 */ move $a3, $a1 +/* 0A8B2C 7F073FFC 3C198003 */ lui $t9, %hi(D_800363F8) +/* 0A8B30 7F074000 273963F8 */ addiu $t9, %lo(D_800363F8) # addiu $t9, $t9, 0x63f8 +/* 0A8B34 7F074004 8F210000 */ lw $at, ($t9) +/* 0A8B38 7F074008 8F290004 */ lw $t1, 4($t9) +/* 0A8B3C 7F07400C 8CC60004 */ lw $a2, 4($a2) +/* 0A8B40 7F074010 27B80058 */ addiu $t8, $sp, 0x58 +/* 0A8B44 7F074014 AF010000 */ sw $at, ($t8) +/* 0A8B48 7F074018 AF090004 */ sw $t1, 4($t8) +/* 0A8B4C 7F07401C 8F29000C */ lw $t1, 0xc($t9) +/* 0A8B50 7F074020 8F210008 */ lw $at, 8($t9) +/* 0A8B54 7F074024 00A02025 */ move $a0, $a1 +/* 0A8B58 7F074028 AF09000C */ sw $t1, 0xc($t8) +/* 0A8B5C 7F07402C AF010008 */ sw $at, 8($t8) +/* 0A8B60 7F074030 8CC50014 */ lw $a1, 0x14($a2) +/* 0A8B64 7F074034 AFA7007C */ sw $a3, 0x7c($sp) +/* 0A8B68 7F074038 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A8B6C 7F07403C AFA6006C */ sw $a2, 0x6c($sp) +/* 0A8B70 7F074040 8E0A0008 */ lw $t2, 8($s0) +/* 0A8B74 7F074044 8FA6006C */ lw $a2, 0x6c($sp) +/* 0A8B78 7F074048 C444000C */ lwc1 $f4, 0xc($v0) +/* 0A8B7C 7F07404C C4460004 */ lwc1 $f6, 4($v0) +/* 0A8B80 7F074050 3C038003 */ lui $v1, %hi(D_800363F0) +/* 0A8B84 7F074054 314B0002 */ andi $t3, $t2, 2 +/* 0A8B88 7F074058 246363F0 */ addiu $v1, %lo(D_800363F0) # addiu $v1, $v1, 0x63f0 +/* 0A8B8C 7F07405C 8FA7007C */ lw $a3, 0x7c($sp) +/* 0A8B90 7F074060 C4CC0008 */ lwc1 $f12, 8($a2) +/* 0A8B94 7F074064 C4CE000C */ lwc1 $f14, 0xc($a2) +/* 0A8B98 7F074068 11600125 */ beqz $t3, .L7F074500 +/* 0A8B9C 7F07406C 46062081 */ sub.s $f2, $f4, $f6 +/* 0A8BA0 7F074070 8E020030 */ lw $v0, 0x30($s0) +/* 0A8BA4 7F074074 24010003 */ li $at, 3 +/* 0A8BA8 7F074078 00002825 */ move $a1, $zero +/* 0A8BAC 7F07407C 10410003 */ beq $v0, $at, .L7F07408C +/* 0A8BB0 7F074080 24010008 */ li $at, 8 +/* 0A8BB4 7F074084 5441000F */ bnel $v0, $at, .L7F0740C4 +/* 0A8BB8 7F074088 8C780000 */ lw $t8, ($v1) +.L7F07408C: +/* 0A8BBC 7F07408C 8E0C0034 */ lw $t4, 0x34($s0) +/* 0A8BC0 7F074090 8C6E0000 */ lw $t6, ($v1) +/* 0A8BC4 7F074094 240100FF */ li $at, 255 +/* 0A8BC8 7F074098 318D00FF */ andi $t5, $t4, 0xff +/* 0A8BCC 7F07409C 01AE0019 */ multu $t5, $t6 +/* 0A8BD0 7F0740A0 00001012 */ mflo $v0 +/* 0A8BD4 7F0740A4 00000000 */ nop +/* 0A8BD8 7F0740A8 00000000 */ nop +/* 0A8BDC 7F0740AC 0041001B */ divu $zero, $v0, $at +/* 0A8BE0 7F0740B0 00004012 */ mflo $t0 +/* 0A8BE4 7F0740B4 A3A80067 */ sb $t0, 0x67($sp) +/* 0A8BE8 7F0740B8 10000004 */ b .L7F0740CC +/* 0A8BEC 7F0740BC 8FA40080 */ lw $a0, 0x80($sp) +/* 0A8BF0 7F0740C0 8C780000 */ lw $t8, ($v1) +.L7F0740C4: +/* 0A8BF4 7F0740C4 A3B80067 */ sb $t8, 0x67($sp) +/* 0A8BF8 7F0740C8 8FA40080 */ lw $a0, 0x80($sp) +.L7F0740CC: +/* 0A8BFC 7F0740CC AFA6006C */ sw $a2, 0x6c($sp) +/* 0A8C00 7F0740D0 AFA7007C */ sw $a3, 0x7c($sp) +/* 0A8C04 7F0740D4 E7A20040 */ swc1 $f2, 0x40($sp) +/* 0A8C08 7F0740D8 E7AC0048 */ swc1 $f12, 0x48($sp) +/* 0A8C0C 7F0740DC 0FC1B15C */ jal sub_GAME_7F06C570 +/* 0A8C10 7F0740E0 E7AE0044 */ swc1 $f14, 0x44($sp) +/* 0A8C14 7F0740E4 8FA7007C */ lw $a3, 0x7c($sp) +/* 0A8C18 7F0740E8 00024980 */ sll $t1, $v0, 6 +/* 0A8C1C 7F0740EC 8FA6006C */ lw $a2, 0x6c($sp) +/* 0A8C20 7F0740F0 8CF9000C */ lw $t9, 0xc($a3) +/* 0A8C24 7F0740F4 C7A20040 */ lwc1 $f2, 0x40($sp) +/* 0A8C28 7F0740F8 C7AC0048 */ lwc1 $f12, 0x48($sp) +/* 0A8C2C 7F0740FC 03295021 */ addu $t2, $t9, $t1 +/* 0A8C30 7F074100 AFAA0070 */ sw $t2, 0x70($sp) +/* 0A8C34 7F074104 8E0B0004 */ lw $t3, 4($s0) +/* 0A8C38 7F074108 C7AE0044 */ lwc1 $f14, 0x44($sp) +/* 0A8C3C 7F07410C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0A8C40 7F074110 1160000B */ beqz $t3, .L7F074140 +/* 0A8C44 7F074114 3C028003 */ lui $v0, %hi(D_8003608C) +/* 0A8C48 7F074118 44814000 */ mtc1 $at, $f8 +/* 0A8C4C 7F07411C C4F20014 */ lwc1 $f18, 0x14($a3) +/* 0A8C50 7F074120 46024281 */ sub.s $f10, $f8, $f2 +/* 0A8C54 7F074124 46125103 */ div.s $f4, $f10, $f18 +/* 0A8C58 7F074128 4600218D */ trunc.w.s $f6, $f4 +/* 0A8C5C 7F07412C 44033000 */ mfc1 $v1, $f6 +/* 0A8C60 7F074130 00000000 */ nop +/* 0A8C64 7F074134 00036C00 */ sll $t5, $v1, 0x10 +/* 0A8C68 7F074138 10000009 */ b .L7F074160 +/* 0A8C6C 7F07413C 000D1C03 */ sra $v1, $t5, 0x10 +.L7F074140: +/* 0A8C70 7F074140 C4EA0014 */ lwc1 $f10, 0x14($a3) +/* 0A8C74 7F074144 46001207 */ neg.s $f8, $f2 +/* 0A8C78 7F074148 460A4483 */ div.s $f18, $f8, $f10 +/* 0A8C7C 7F07414C 4600910D */ trunc.w.s $f4, $f18 +/* 0A8C80 7F074150 44032000 */ mfc1 $v1, $f4 +/* 0A8C84 7F074154 00000000 */ nop +/* 0A8C88 7F074158 00034400 */ sll $t0, $v1, 0x10 +/* 0A8C8C 7F07415C 00081C03 */ sra $v1, $t0, 0x10 +.L7F074160: +/* 0A8C90 7F074160 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 0A8C94 7F074164 44813000 */ mtc1 $at, $f6 +/* 0A8C98 7F074168 3C048005 */ lui $a0, %hi(aDoshadowNoVtxAllocator) +/* 0A8C9C 7F07416C 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0A8CA0 7F074170 4606103C */ c.lt.s $f2, $f6 +/* 0A8CA4 7F074174 24844A94 */ addiu $a0, %lo(aDoshadowNoVtxAllocator) # addiu $a0, $a0, 0x4a94 +/* 0A8CA8 7F074178 4502000A */ bc1fl .L7F0741A4 +/* 0A8CAC 7F07417C 44818000 */ mtc1 $at, $f16 +/* 0A8CB0 7F074180 3C013FA0 */ li $at, 0x3FA00000 # 1.250000 +/* 0A8CB4 7F074184 44810000 */ mtc1 $at, $f0 +/* 0A8CB8 7F074188 00000000 */ nop +/* 0A8CBC 7F07418C 46006302 */ mul.s $f12, $f12, $f0 +/* 0A8CC0 7F074190 00000000 */ nop +/* 0A8CC4 7F074194 46007382 */ mul.s $f14, $f14, $f0 +/* 0A8CC8 7F074198 10000012 */ b .L7F0741E4 +/* 0A8CCC 7F07419C 00000000 */ nop +/* 0A8CD0 7F0741A0 44818000 */ mtc1 $at, $f16 +.L7F0741A4: +/* 0A8CD4 7F0741A4 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 0A8CD8 7F0741A8 4602803C */ c.lt.s $f16, $f2 +/* 0A8CDC 7F0741AC 00000000 */ nop +/* 0A8CE0 7F0741B0 45020005 */ bc1fl .L7F0741C8 +/* 0A8CE4 7F0741B4 46028201 */ sub.s $f8, $f16, $f2 +/* 0A8CE8 7F0741B8 44807000 */ mtc1 $zero, $f14 +/* 0A8CEC 7F0741BC 10000009 */ b .L7F0741E4 +/* 0A8CF0 7F0741C0 46007306 */ mov.s $f12, $f14 +/* 0A8CF4 7F0741C4 46028201 */ sub.s $f8, $f16, $f2 +.L7F0741C8: +/* 0A8CF8 7F0741C8 44815000 */ mtc1 $at, $f10 +/* 0A8CFC 7F0741CC 00000000 */ nop +/* 0A8D00 7F0741D0 460A4003 */ div.s $f0, $f8, $f10 +/* 0A8D04 7F0741D4 46006302 */ mul.s $f12, $f12, $f0 +/* 0A8D08 7F0741D8 00000000 */ nop +/* 0A8D0C 7F0741DC 46007382 */ mul.s $f14, $f14, $f0 +/* 0A8D10 7F0741E0 00000000 */ nop +.L7F0741E4: +/* 0A8D14 7F0741E4 8C42608C */ lw $v0, %lo(D_8003608C)($v0) +/* 0A8D18 7F0741E8 5440000F */ bnezl $v0, .L7F074228 +/* 0A8D1C 7F0741EC 24040004 */ li $a0, 4 +/* 0A8D20 7F0741F0 A7A30052 */ sh $v1, 0x52($sp) +/* 0A8D24 7F0741F4 AFA6006C */ sw $a2, 0x6c($sp) +/* 0A8D28 7F0741F8 E7AC0048 */ swc1 $f12, 0x48($sp) +/* 0A8D2C 7F0741FC 0C0033D1 */ jal osSyncPrintf +/* 0A8D30 7F074200 E7AE0044 */ swc1 $f14, 0x44($sp) +/* 0A8D34 7F074204 0FC1B11B */ jal return_null +/* 0A8D38 7F074208 00000000 */ nop +/* 0A8D3C 7F07420C 3C028003 */ lui $v0, %hi(D_8003608C) +/* 0A8D40 7F074210 8C42608C */ lw $v0, %lo(D_8003608C)($v0) +/* 0A8D44 7F074214 87A30052 */ lh $v1, 0x52($sp) +/* 0A8D48 7F074218 8FA6006C */ lw $a2, 0x6c($sp) +/* 0A8D4C 7F07421C C7AC0048 */ lwc1 $f12, 0x48($sp) +/* 0A8D50 7F074220 C7AE0044 */ lwc1 $f14, 0x44($sp) +/* 0A8D54 7F074224 24040004 */ li $a0, 4 +.L7F074228: +/* 0A8D58 7F074228 A7A30052 */ sh $v1, 0x52($sp) +/* 0A8D5C 7F07422C AFA6006C */ sw $a2, 0x6c($sp) +/* 0A8D60 7F074230 E7AC0048 */ swc1 $f12, 0x48($sp) +/* 0A8D64 7F074234 0040F809 */ jalr $v0 +/* 0A8D68 7F074238 E7AE0044 */ swc1 $f14, 0x44($sp) +/* 0A8D6C 7F07423C 27A40058 */ addiu $a0, $sp, 0x58 +/* 0A8D70 7F074240 8C810000 */ lw $at, ($a0) +/* 0A8D74 7F074244 87A30052 */ lh $v1, 0x52($sp) +/* 0A8D78 7F074248 8FA6006C */ lw $a2, 0x6c($sp) +/* 0A8D7C 7F07424C C7AC0048 */ lwc1 $f12, 0x48($sp) +/* 0A8D80 7F074250 C7AE0044 */ lwc1 $f14, 0x44($sp) +/* 0A8D84 7F074254 AC410000 */ sw $at, ($v0) +/* 0A8D88 7F074258 8C8A0004 */ lw $t2, 4($a0) +/* 0A8D8C 7F07425C AC4A0004 */ sw $t2, 4($v0) +/* 0A8D90 7F074260 8C810008 */ lw $at, 8($a0) +/* 0A8D94 7F074264 AC410008 */ sw $at, 8($v0) +/* 0A8D98 7F074268 8C8A000C */ lw $t2, 0xc($a0) +/* 0A8D9C 7F07426C AC4A000C */ sw $t2, 0xc($v0) +/* 0A8DA0 7F074270 8C810000 */ lw $at, ($a0) +/* 0A8DA4 7F074274 AC410010 */ sw $at, 0x10($v0) +/* 0A8DA8 7F074278 8C8D0004 */ lw $t5, 4($a0) +/* 0A8DAC 7F07427C AC4D0014 */ sw $t5, 0x14($v0) +/* 0A8DB0 7F074280 8C810008 */ lw $at, 8($a0) +/* 0A8DB4 7F074284 AC410018 */ sw $at, 0x18($v0) +/* 0A8DB8 7F074288 8C8D000C */ lw $t5, 0xc($a0) +/* 0A8DBC 7F07428C AC4D001C */ sw $t5, 0x1c($v0) +/* 0A8DC0 7F074290 8C810000 */ lw $at, ($a0) +/* 0A8DC4 7F074294 AC410020 */ sw $at, 0x20($v0) +/* 0A8DC8 7F074298 8C880004 */ lw $t0, 4($a0) +/* 0A8DCC 7F07429C AC480024 */ sw $t0, 0x24($v0) +/* 0A8DD0 7F0742A0 8C810008 */ lw $at, 8($a0) +/* 0A8DD4 7F0742A4 AC410028 */ sw $at, 0x28($v0) +/* 0A8DD8 7F0742A8 8C88000C */ lw $t0, 0xc($a0) +/* 0A8DDC 7F0742AC AC48002C */ sw $t0, 0x2c($v0) +/* 0A8DE0 7F0742B0 8C810000 */ lw $at, ($a0) +/* 0A8DE4 7F0742B4 AC410030 */ sw $at, 0x30($v0) +/* 0A8DE8 7F0742B8 8C990004 */ lw $t9, 4($a0) +/* 0A8DEC 7F0742BC AC590034 */ sw $t9, 0x34($v0) +/* 0A8DF0 7F0742C0 8C810008 */ lw $at, 8($a0) +/* 0A8DF4 7F0742C4 AC410038 */ sw $at, 0x38($v0) +/* 0A8DF8 7F0742C8 8C99000C */ lw $t9, 0xc($a0) +/* 0A8DFC 7F0742CC AC59003C */ sw $t9, 0x3c($v0) +/* 0A8E00 7F0742D0 C4D20000 */ lwc1 $f18, ($a2) +/* 0A8E04 7F0742D4 A4430002 */ sh $v1, 2($v0) +/* 0A8E08 7F0742D8 460C9101 */ sub.s $f4, $f18, $f12 +/* 0A8E0C 7F0742DC 4600218D */ trunc.w.s $f6, $f4 +/* 0A8E10 7F0742E0 440C3000 */ mfc1 $t4, $f6 +/* 0A8E14 7F0742E4 00000000 */ nop +/* 0A8E18 7F0742E8 A44C0000 */ sh $t4, ($v0) +/* 0A8E1C 7F0742EC C4C80004 */ lwc1 $f8, 4($a2) +/* 0A8E20 7F0742F0 460E4281 */ sub.s $f10, $f8, $f14 +/* 0A8E24 7F0742F4 4600548D */ trunc.w.s $f18, $f10 +/* 0A8E28 7F0742F8 440D9000 */ mfc1 $t5, $f18 +/* 0A8E2C 7F0742FC 00000000 */ nop +/* 0A8E30 7F074300 A44D0004 */ sh $t5, 4($v0) +/* 0A8E34 7F074304 C4C40000 */ lwc1 $f4, ($a2) +/* 0A8E38 7F074308 A4430012 */ sh $v1, 0x12($v0) +/* 0A8E3C 7F07430C 460C2181 */ sub.s $f6, $f4, $f12 +/* 0A8E40 7F074310 4600320D */ trunc.w.s $f8, $f6 +/* 0A8E44 7F074314 440E4000 */ mfc1 $t6, $f8 +/* 0A8E48 7F074318 00000000 */ nop +/* 0A8E4C 7F07431C A44E0010 */ sh $t6, 0x10($v0) +/* 0A8E50 7F074320 C4CA0004 */ lwc1 $f10, 4($a2) +/* 0A8E54 7F074324 460E5480 */ add.s $f18, $f10, $f14 +/* 0A8E58 7F074328 4600910D */ trunc.w.s $f4, $f18 +/* 0A8E5C 7F07432C 44092000 */ mfc1 $t1, $f4 +/* 0A8E60 7F074330 00000000 */ nop +/* 0A8E64 7F074334 A4490014 */ sh $t1, 0x14($v0) +/* 0A8E68 7F074338 C4C60000 */ lwc1 $f6, ($a2) +/* 0A8E6C 7F07433C A4430022 */ sh $v1, 0x22($v0) +/* 0A8E70 7F074340 3C09BC00 */ lui $t1, (0xBC001406 >> 16) # lui $t1, 0xbc00 +/* 0A8E74 7F074344 460C3200 */ add.s $f8, $f6, $f12 +/* 0A8E78 7F074348 35291406 */ ori $t1, (0xBC001406 & 0xFFFF) # ori $t1, $t1, 0x1406 +/* 0A8E7C 7F07434C 4600428D */ trunc.w.s $f10, $f8 +/* 0A8E80 7F074350 44195000 */ mfc1 $t9, $f10 +/* 0A8E84 7F074354 00000000 */ nop +/* 0A8E88 7F074358 A4590020 */ sh $t9, 0x20($v0) +/* 0A8E8C 7F07435C C4D20004 */ lwc1 $f18, 4($a2) +/* 0A8E90 7F074360 460E9100 */ add.s $f4, $f18, $f14 +/* 0A8E94 7F074364 4600218D */ trunc.w.s $f6, $f4 +/* 0A8E98 7F074368 440C3000 */ mfc1 $t4, $f6 +/* 0A8E9C 7F07436C 00000000 */ nop +/* 0A8EA0 7F074370 A44C0024 */ sh $t4, 0x24($v0) +/* 0A8EA4 7F074374 C4C80000 */ lwc1 $f8, ($a2) +/* 0A8EA8 7F074378 A4430032 */ sh $v1, 0x32($v0) +/* 0A8EAC 7F07437C 460C4280 */ add.s $f10, $f8, $f12 +/* 0A8EB0 7F074380 4600548D */ trunc.w.s $f18, $f10 +/* 0A8EB4 7F074384 440D9000 */ mfc1 $t5, $f18 +/* 0A8EB8 7F074388 00000000 */ nop +/* 0A8EBC 7F07438C A44D0030 */ sh $t5, 0x30($v0) +/* 0A8EC0 7F074390 C4C40004 */ lwc1 $f4, 4($a2) +/* 0A8EC4 7F074394 460E2181 */ sub.s $f6, $f4, $f14 +/* 0A8EC8 7F074398 4600320D */ trunc.w.s $f8, $f6 +/* 0A8ECC 7F07439C 440E4000 */ mfc1 $t6, $f8 +/* 0A8ED0 7F0743A0 00000000 */ nop +/* 0A8ED4 7F0743A4 A44E0034 */ sh $t6, 0x34($v0) +/* 0A8ED8 7F0743A8 8E03000C */ lw $v1, 0xc($s0) +/* 0A8EDC 7F0743AC 24680008 */ addiu $t0, $v1, 8 +/* 0A8EE0 7F0743B0 AE08000C */ sw $t0, 0xc($s0) +/* 0A8EE4 7F0743B4 AC690000 */ sw $t1, ($v1) +/* 0A8EE8 7F0743B8 8CC4001C */ lw $a0, 0x1c($a2) +/* 0A8EEC 7F0743BC AFA20054 */ sw $v0, 0x54($sp) +/* 0A8EF0 7F0743C0 AFA6006C */ sw $a2, 0x6c($sp) +/* 0A8EF4 7F0743C4 0C003A2C */ jal osVirtualToPhysical +/* 0A8EF8 7F0743C8 AFA30038 */ sw $v1, 0x38($sp) +/* 0A8EFC 7F0743CC 8FA50038 */ lw $a1, 0x38($sp) +/* 0A8F00 7F0743D0 8FA6006C */ lw $a2, 0x6c($sp) +/* 0A8F04 7F0743D4 8FA70054 */ lw $a3, 0x54($sp) +/* 0A8F08 7F0743D8 ACA20004 */ sw $v0, 4($a1) +/* 0A8F0C 7F0743DC 8CC30010 */ lw $v1, 0x10($a2) +/* 0A8F10 7F0743E0 24060001 */ li $a2, 1 +/* 0A8F14 7F0743E4 00002825 */ move $a1, $zero +/* 0A8F18 7F0743E8 1060001C */ beqz $v1, .L7F07445C +/* 0A8F1C 7F0743EC 02002025 */ move $a0, $s0 +/* 0A8F20 7F0743F0 A4E00008 */ sh $zero, 8($a3) +/* 0A8F24 7F0743F4 A4E0000A */ sh $zero, 0xa($a3) +/* 0A8F28 7F0743F8 90780004 */ lbu $t8, 4($v1) +/* 0A8F2C 7F0743FC A4E0001A */ sh $zero, 0x1a($a3) +/* 0A8F30 7F074400 00602825 */ move $a1, $v1 +/* 0A8F34 7F074404 0018C940 */ sll $t9, $t8, 5 +/* 0A8F38 7F074408 272AFFFF */ addiu $t2, $t9, -1 +/* 0A8F3C 7F07440C A4EA0018 */ sh $t2, 0x18($a3) +/* 0A8F40 7F074410 906C0004 */ lbu $t4, 4($v1) +/* 0A8F44 7F074414 02002025 */ move $a0, $s0 +/* 0A8F48 7F074418 24060004 */ li $a2, 4 +/* 0A8F4C 7F07441C 000C5940 */ sll $t3, $t4, 5 +/* 0A8F50 7F074420 256DFFFF */ addiu $t5, $t3, -1 +/* 0A8F54 7F074424 A4ED0028 */ sh $t5, 0x28($a3) +/* 0A8F58 7F074428 906F0005 */ lbu $t7, 5($v1) +/* 0A8F5C 7F07442C A4E00038 */ sh $zero, 0x38($a3) +/* 0A8F60 7F074430 000F7140 */ sll $t6, $t7, 5 +/* 0A8F64 7F074434 25C8FFFF */ addiu $t0, $t6, -1 +/* 0A8F68 7F074438 A4E8002A */ sh $t0, 0x2a($a3) +/* 0A8F6C 7F07443C 90690005 */ lbu $t1, 5($v1) +/* 0A8F70 7F074440 0009C140 */ sll $t8, $t1, 5 +/* 0A8F74 7F074444 2719FFFF */ addiu $t9, $t8, -1 +/* 0A8F78 7F074448 A4F9003A */ sh $t9, 0x3a($a3) +/* 0A8F7C 7F07444C 0FC1CC0E */ jal sub_GAME_7F073038 +/* 0A8F80 7F074450 AFA70054 */ sw $a3, 0x54($sp) +/* 0A8F84 7F074454 10000004 */ b .L7F074468 +/* 0A8F88 7F074458 8FA70054 */ lw $a3, 0x54($sp) +.L7F07445C: +/* 0A8F8C 7F07445C 0FC1CC0E */ jal sub_GAME_7F073038 +/* 0A8F90 7F074460 AFA70054 */ sw $a3, 0x54($sp) +/* 0A8F94 7F074464 8FA70054 */ lw $a3, 0x54($sp) +.L7F074468: +/* 0A8F98 7F074468 8E03000C */ lw $v1, 0xc($s0) +/* 0A8F9C 7F07446C 3C0CB700 */ lui $t4, 0xb700 +/* 0A8FA0 7F074470 240B2000 */ li $t3, 8192 +/* 0A8FA4 7F074474 246A0008 */ addiu $t2, $v1, 8 +/* 0A8FA8 7F074478 AE0A000C */ sw $t2, 0xc($s0) +/* 0A8FAC 7F07447C AC6C0000 */ sw $t4, ($v1) +/* 0A8FB0 7F074480 AC6B0004 */ sw $t3, 4($v1) +/* 0A8FB4 7F074484 8E03000C */ lw $v1, 0xc($s0) +/* 0A8FB8 7F074488 3C0F0102 */ lui $t7, (0x01020040 >> 16) # lui $t7, 0x102 +/* 0A8FBC 7F07448C 35EF0040 */ ori $t7, (0x01020040 & 0xFFFF) # ori $t7, $t7, 0x40 +/* 0A8FC0 7F074490 246D0008 */ addiu $t5, $v1, 8 +/* 0A8FC4 7F074494 AE0D000C */ sw $t5, 0xc($s0) +/* 0A8FC8 7F074498 AC6F0000 */ sw $t7, ($v1) +/* 0A8FCC 7F07449C AFA70054 */ sw $a3, 0x54($sp) +/* 0A8FD0 7F0744A0 8FA40070 */ lw $a0, 0x70($sp) +/* 0A8FD4 7F0744A4 0C003A2C */ jal osVirtualToPhysical +/* 0A8FD8 7F0744A8 AFA3002C */ sw $v1, 0x2c($sp) +/* 0A8FDC 7F0744AC 8FA5002C */ lw $a1, 0x2c($sp) +/* 0A8FE0 7F0744B0 8FA40054 */ lw $a0, 0x54($sp) +/* 0A8FE4 7F0744B4 3C080430 */ lui $t0, (0x04300040 >> 16) # lui $t0, 0x430 +/* 0A8FE8 7F0744B8 ACA20004 */ sw $v0, 4($a1) +/* 0A8FEC 7F0744BC 8E03000C */ lw $v1, 0xc($s0) +/* 0A8FF0 7F0744C0 35080040 */ ori $t0, (0x04300040 & 0xFFFF) # ori $t0, $t0, 0x40 +/* 0A8FF4 7F0744C4 246E0008 */ addiu $t6, $v1, 8 +/* 0A8FF8 7F0744C8 AE0E000C */ sw $t6, 0xc($s0) +/* 0A8FFC 7F0744CC AC680000 */ sw $t0, ($v1) +/* 0A9000 7F0744D0 0C003A2C */ jal osVirtualToPhysical +/* 0A9004 7F0744D4 AFA30028 */ sw $v1, 0x28($sp) +/* 0A9008 7F0744D8 8FA60028 */ lw $a2, 0x28($sp) +/* 0A900C 7F0744DC 3C18B100 */ lui $t8, (0xB1000002 >> 16) # lui $t8, 0xb100 +/* 0A9010 7F0744E0 37180002 */ ori $t8, (0xB1000002 & 0xFFFF) # ori $t8, $t8, 2 +/* 0A9014 7F0744E4 ACC20004 */ sw $v0, 4($a2) +/* 0A9018 7F0744E8 8E03000C */ lw $v1, 0xc($s0) +/* 0A901C 7F0744EC 24193210 */ li $t9, 12816 +/* 0A9020 7F0744F0 24690008 */ addiu $t1, $v1, 8 +/* 0A9024 7F0744F4 AE09000C */ sw $t1, 0xc($s0) +/* 0A9028 7F0744F8 AC790004 */ sw $t9, 4($v1) +/* 0A902C 7F0744FC AC780000 */ sw $t8, ($v1) +.L7F074500: +/* 0A9030 7F074500 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A9034 7F074504 8FB00018 */ lw $s0, 0x18($sp) +/* 0A9038 7F074508 27BD0078 */ addiu $sp, $sp, 0x78 +/* 0A903C 7F07450C 03E00008 */ jr $ra +/* 0A9040 7F074510 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F074514(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F074514 +/* 0A9044 7F074514 AFA40000 */ sw $a0, ($sp) +/* 0A9048 7F074518 AFA50004 */ sw $a1, 4($sp) +/* 0A904C 7F07451C 03E00008 */ jr $ra +/* 0A9050 7F074520 AFA60008 */ sw $a2, 8($sp) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F074524(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F074524 +/* 0A9054 7F074524 AFA40000 */ sw $a0, ($sp) +/* 0A9058 7F074528 AFA50004 */ sw $a1, 4($sp) +/* 0A905C 7F07452C 03E00008 */ jr $ra +/* 0A9060 7F074530 AFA60008 */ sw $a2, 8($sp) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F074534(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*80054D54*/ +glabel jpt_80054D54 +.word .L7F074674 +.word .L7F074674 +.word .L7F074674 +.word .L7F07460C +.word .L7F07464C +.word .L7F07466C +.word .L7F07465C +.word .L7F07456C +.word .L7F0745A8 +.word .L7F0745EC +.word .L7F0745BC +.word .L7F0745CC +.word .L7F0745DC +.word .L7F074674 +.word .L7F074674 +.word .L7F074674 +.word .L7F0745FC +.word .L7F074580 +.word .L7F074674 +.word .L7F07462C +.word .L7F074674 +.word .L7F07463C +.word .L7F074594 +.word .L7F07461C +.text +glabel sub_GAME_7F074534 +/* 0A9064 7F074534 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A9068 7F074538 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A906C 7F07453C 94C20000 */ lhu $v0, ($a2) +/* 0A9070 7F074540 00A03825 */ move $a3, $a1 +/* 0A9074 7F074544 304E00FF */ andi $t6, $v0, 0xff +/* 0A9078 7F074548 25CFFFFF */ addiu $t7, $t6, -1 +/* 0A907C 7F07454C 2DE10018 */ sltiu $at, $t7, 0x18 +/* 0A9080 7F074550 10200048 */ beqz $at, .L7F074674 +/* 0A9084 7F074554 000F7880 */ sll $t7, $t7, 2 +/* 0A9088 7F074558 3C018005 */ lui $at, %hi(jpt_80054D54) +/* 0A908C 7F07455C 002F0821 */ addu $at, $at, $t7 +/* 0A9090 7F074560 8C2F4D54 */ lw $t7, %lo(jpt_80054D54)($at) +.L7F074564: +/* 0A9094 7F074564 01E00008 */ jr $t7 +/* 0A9098 7F074568 00000000 */ nop +.L7F07456C: +/* 0A909C 7F07456C 00E02025 */ move $a0, $a3 +/* 0A90A0 7F074570 0FC1BA5C */ jal sub_GAME_7F06E970 +/* 0A90A4 7F074574 00C02825 */ move $a1, $a2 +/* 0A90A8 7F074578 1000003F */ b .L7F074678 +/* 0A90AC 7F07457C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F074580: +/* 0A90B0 7F074580 00E02025 */ move $a0, $a3 +/* 0A90B4 7F074584 0FC1BA6F */ jal process_12_handle_switch +/* 0A90B8 7F074588 00C02825 */ move $a1, $a2 +/* 0A90BC 7F07458C 1000003A */ b .L7F074678 +/* 0A90C0 7F074590 8FBF0014 */ lw $ra, 0x14($sp) +.L7F074594: +/* 0A90C4 7F074594 00E02025 */ move $a0, $a3 +/* 0A90C8 7F074598 0FC1BA82 */ jal process_17_pointer_to_head +/* 0A90CC 7F07459C 00C02825 */ move $a1, $a2 +/* 0A90D0 7F0745A0 10000035 */ b .L7F074678 +/* 0A90D4 7F0745A4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0745A8: +/* 0A90D8 7F0745A8 00E02025 */ move $a0, $a3 +/* 0A90DC 7F0745AC 0FC1BAC4 */ jal sub_GAME_7F06EB10 +/* 0A90E0 7F0745B0 00C02825 */ move $a1, $a2 +/* 0A90E4 7F0745B4 10000030 */ b .L7F074678 +/* 0A90E8 7F0745B8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0745BC: +/* 0A90EC 7F0745BC 0FC1CDFF */ jal sub_GAME_7F0737FC +/* 0A90F0 7F0745C0 00E02825 */ move $a1, $a3 +/* 0A90F4 7F0745C4 1000002C */ b .L7F074678 +/* 0A90F8 7F0745C8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0745CC: +/* 0A90FC 7F0745CC 0FC1CE03 */ jal dogfnegx +/* 0A9100 7F0745D0 00E02825 */ move $a1, $a3 +/* 0A9104 7F0745D4 10000028 */ b .L7F074678 +/* 0A9108 7F0745D8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0745DC: +/* 0A910C 7F0745DC 0FC1CFF5 */ jal doshadow +/* 0A9110 7F0745E0 00E02825 */ move $a1, $a3 +/* 0A9114 7F0745E4 10000024 */ b .L7F074678 +/* 0A9118 7F0745E8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0745EC: +/* 0A911C 7F0745EC 0FC1D145 */ jal sub_GAME_7F074514 +/* 0A9120 7F0745F0 00E02825 */ move $a1, $a3 +/* 0A9124 7F0745F4 10000020 */ b .L7F074678 +/* 0A9128 7F0745F8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0745FC: +/* 0A912C 7F0745FC 0FC1D149 */ jal sub_GAME_7F074524 +/* 0A9130 7F074600 00E02825 */ move $a1, $a3 +/* 0A9134 7F074604 1000001C */ b .L7F074678 +/* 0A9138 7F074608 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07460C: +/* 0A913C 7F07460C 0FC1C9E1 */ jal sub_GAME_7F072784 +/* 0A9140 7F074610 00C02825 */ move $a1, $a2 +/* 0A9144 7F074614 10000018 */ b .L7F074678 +/* 0A9148 7F074618 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07461C: +/* 0A914C 7F07461C 0FC1CA61 */ jal sub_GAME_7F072984 +/* 0A9150 7F074620 00E02825 */ move $a1, $a3 +/* 0A9154 7F074624 10000014 */ b .L7F074678 +/* 0A9158 7F074628 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07462C: +/* 0A915C 7F07462C 0FC1CB04 */ jal sub_GAME_7F072C10 +/* 0A9160 7F074630 00E02825 */ move $a1, $a3 +/* 0A9164 7F074634 10000010 */ b .L7F074678 +/* 0A9168 7F074638 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07463C: +/* 0A916C 7F07463C 0FC1CB08 */ jal dorottex +/* 0A9170 7F074640 00C02825 */ move $a1, $a2 +/* 0A9174 7F074644 1000000C */ b .L7F074678 +/* 0A9178 7F074648 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07464C: +/* 0A917C 7F07464C 0FC1CC1B */ jal sub_GAME_7F07306C +/* 0A9180 7F074650 00E02825 */ move $a1, $a3 +/* 0A9184 7F074654 10000008 */ b .L7F074678 +/* 0A9188 7F074658 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07465C: +/* 0A918C 7F07465C 0FC1CC1F */ jal dotube +/* 0A9190 7F074660 00E02825 */ move $a1, $a3 +/* 0A9194 7F074664 10000004 */ b .L7F074678 +/* 0A9198 7F074668 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07466C: +/* 0A919C 7F07466C 0FC1CDFB */ jal sub_GAME_7F0737EC +/* 0A91A0 7F074670 00E02825 */ move $a1, $a3 +def_7F074564: +.L7F074674: +/* 0A91A4 7F074674 8FBF0014 */ lw $ra, 0x14($sp) +.L7F074678: +/* 0A91A8 7F074678 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A91AC 7F07467C 03E00008 */ jr $ra +/* 0A91B0 7F074680 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void subdraw(void) { + +} +#else +GLOBAL_ASM( +.text +glabel subdraw +/* 0A91B4 7F074684 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A91B8 7F074688 AFBF0024 */ sw $ra, 0x24($sp) +/* 0A91BC 7F07468C AFB20020 */ sw $s2, 0x20($sp) +/* 0A91C0 7F074690 AFB1001C */ sw $s1, 0x1c($sp) +/* 0A91C4 7F074694 AFB00018 */ sw $s0, 0x18($sp) +/* 0A91C8 7F074698 8C8E000C */ lw $t6, 0xc($a0) +/* 0A91CC 7F07469C 8CA20008 */ lw $v0, 8($a1) +/* 0A91D0 7F0746A0 00808825 */ move $s1, $a0 +/* 0A91D4 7F0746A4 00A09025 */ move $s2, $a1 +/* 0A91D8 7F0746A8 15C00007 */ bnez $t6, .L7F0746C8 +/* 0A91DC 7F0746AC 8C500000 */ lw $s0, ($v0) +/* 0A91E0 7F0746B0 3C048005 */ lui $a0, %hi(aSubdrawNoGfxlist) +/* 0A91E4 7F0746B4 0C0033D1 */ jal osSyncPrintf +/* 0A91E8 7F0746B8 24844AB4 */ addiu $a0, %lo(aSubdrawNoGfxlist) # addiu $a0, $a0, 0x4ab4 +/* 0A91EC 7F0746BC 0FC1B11B */ jal return_null +/* 0A91F0 7F0746C0 00000000 */ nop +/* 0A91F4 7F0746C4 8E420008 */ lw $v0, 8($s2) +.L7F0746C8: +/* 0A91F8 7F0746C8 8C4F001C */ lw $t7, 0x1c($v0) +/* 0A91FC 7F0746CC 3C048005 */ lui $a0, %hi(aSubdrawObjectNotInitialised0xX) +/* 0A9200 7F0746D0 24844ACC */ addiu $a0, %lo(aSubdrawObjectNotInitialised0xX) # addiu $a0, $a0, 0x4acc +/* 0A9204 7F0746D4 11E00003 */ beqz $t7, .L7F0746E4 +/* 0A9208 7F0746D8 00000000 */ nop +/* 0A920C 7F0746DC 10000006 */ b .L7F0746F8 +/* 0A9210 7F0746E0 8E22000C */ lw $v0, 0xc($s1) +.L7F0746E4: +/* 0A9214 7F0746E4 0C0033D1 */ jal osSyncPrintf +/* 0A9218 7F0746E8 00402825 */ move $a1, $v0 +/* 0A921C 7F0746EC 0FC1B11B */ jal return_null +/* 0A9220 7F0746F0 00000000 */ nop +/* 0A9224 7F0746F4 8E22000C */ lw $v0, 0xc($s1) +.L7F0746F8: +/* 0A9228 7F0746F8 24580008 */ addiu $t8, $v0, 8 +/* 0A922C 7F0746FC 3C19BC00 */ lui $t9, (0xBC000C06 >> 16) # lui $t9, 0xbc00 +/* 0A9230 7F074700 37390C06 */ ori $t9, (0xBC000C06 & 0xFFFF) # ori $t9, $t9, 0xc06 +/* 0A9234 7F074704 AE38000C */ sw $t8, 0xc($s1) +/* 0A9238 7F074708 AC590000 */ sw $t9, ($v0) +/* 0A923C 7F07470C 8E44000C */ lw $a0, 0xc($s2) +/* 0A9240 7F074710 0C003A2C */ jal osVirtualToPhysical +/* 0A9244 7F074714 AFA20028 */ sw $v0, 0x28($sp) +/* 0A9248 7F074718 8FA30028 */ lw $v1, 0x28($sp) +/* 0A924C 7F07471C 12000016 */ beqz $s0, .L7F074778 +/* 0A9250 7F074720 AC620004 */ sw $v0, 4($v1) +/* 0A9254 7F074724 02202025 */ move $a0, $s1 +.L7F074728: +/* 0A9258 7F074728 02402825 */ move $a1, $s2 +/* 0A925C 7F07472C 0FC1D14D */ jal sub_GAME_7F074534 +/* 0A9260 7F074730 02003025 */ move $a2, $s0 +/* 0A9264 7F074734 8E020014 */ lw $v0, 0x14($s0) +/* 0A9268 7F074738 10400003 */ beqz $v0, .L7F074748 +/* 0A926C 7F07473C 00000000 */ nop +/* 0A9270 7F074740 1000000B */ b .L7F074770 +/* 0A9274 7F074744 00408025 */ move $s0, $v0 +.L7F074748: +/* 0A9278 7F074748 12000009 */ beqz $s0, .L7F074770 +/* 0A927C 7F07474C 00000000 */ nop +/* 0A9280 7F074750 8E02000C */ lw $v0, 0xc($s0) +.L7F074754: +/* 0A9284 7F074754 50400004 */ beql $v0, $zero, .L7F074768 +/* 0A9288 7F074758 8E100008 */ lw $s0, 8($s0) +/* 0A928C 7F07475C 10000004 */ b .L7F074770 +/* 0A9290 7F074760 00408025 */ move $s0, $v0 +/* 0A9294 7F074764 8E100008 */ lw $s0, 8($s0) +.L7F074768: +/* 0A9298 7F074768 5600FFFA */ bnezl $s0, .L7F074754 +/* 0A929C 7F07476C 8E02000C */ lw $v0, 0xc($s0) +.L7F074770: +/* 0A92A0 7F074770 5600FFED */ bnezl $s0, .L7F074728 +/* 0A92A4 7F074774 02202025 */ move $a0, $s1 +.L7F074778: +/* 0A92A8 7F074778 8FBF0024 */ lw $ra, 0x24($sp) +/* 0A92AC 7F07477C 8FB00018 */ lw $s0, 0x18($sp) +/* 0A92B0 7F074780 8FB1001C */ lw $s1, 0x1c($sp) +/* 0A92B4 7F074784 8FB20020 */ lw $s2, 0x20($sp) +/* 0A92B8 7F074788 03E00008 */ jr $ra +/* 0A92BC 7F07478C 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F074790(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F074790 +/* 0A92C0 7F074790 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A92C4 7F074794 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A92C8 7F074798 AFA40018 */ sw $a0, 0x18($sp) +/* 0A92CC 7F07479C AFA5001C */ sw $a1, 0x1c($sp) +/* 0A92D0 7F0747A0 0FC1B5AC */ jal subcalcpos +/* 0A92D4 7F0747A4 00A02025 */ move $a0, $a1 +/* 0A92D8 7F0747A8 8FA40018 */ lw $a0, 0x18($sp) +/* 0A92DC 7F0747AC 0FC1BCBE */ jal subcalcmatrices +/* 0A92E0 7F0747B0 8FA5001C */ lw $a1, 0x1c($sp) +/* 0A92E4 7F0747B4 8FA40018 */ lw $a0, 0x18($sp) +/* 0A92E8 7F0747B8 0FC1D1A1 */ jal subdraw +/* 0A92EC 7F0747BC 8FA5001C */ lw $a1, 0x1c($sp) +/* 0A92F0 7F0747C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A92F4 7F0747C4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A92F8 7F0747C8 03E00008 */ jr $ra +/* 0A92FC 7F0747CC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0747D0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0747D0 +/* 0A9300 7F0747D0 C4A00000 */ lwc1 $f0, ($a1) +/* 0A9304 7F0747D4 C4A20004 */ lwc1 $f2, 4($a1) +/* 0A9308 7F0747D8 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0A930C 7F0747DC 46000402 */ mul.s $f16, $f0, $f0 +/* 0A9310 7F0747E0 00000000 */ nop +/* 0A9314 7F0747E4 46021102 */ mul.s $f4, $f2, $f2 +/* 0A9318 7F0747E8 E7A400B0 */ swc1 $f4, 0xb0($sp) +/* 0A931C 7F0747EC C4AC0008 */ lwc1 $f12, 8($a1) +/* 0A9320 7F0747F0 C7A800B0 */ lwc1 $f8, 0xb0($sp) +/* 0A9324 7F0747F4 460C6182 */ mul.s $f6, $f12, $f12 +/* 0A9328 7F0747F8 46088280 */ add.s $f10, $f16, $f8 +/* 0A932C 7F0747FC E7A600AC */ swc1 $f6, 0xac($sp) +/* 0A9330 7F074800 C7A400AC */ lwc1 $f4, 0xac($sp) +/* 0A9334 7F074804 C4860004 */ lwc1 $f6, 4($a0) +/* 0A9338 7F074808 46045380 */ add.s $f14, $f10, $f4 +/* 0A933C 7F07480C 46007387 */ neg.s $f14, $f14 +/* 0A9340 7F074810 46067202 */ mul.s $f8, $f14, $f6 +/* 0A9344 7F074814 E7A800A4 */ swc1 $f8, 0xa4($sp) +/* 0A9348 7F074818 C48A0008 */ lwc1 $f10, 8($a0) +/* 0A934C 7F07481C 460A7102 */ mul.s $f4, $f14, $f10 +/* 0A9350 7F074820 E7A400A0 */ swc1 $f4, 0xa0($sp) +/* 0A9354 7F074824 C4E60008 */ lwc1 $f6, 8($a3) +/* 0A9358 7F074828 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0A935C 7F07482C C4E80000 */ lwc1 $f8, ($a3) +/* 0A9360 7F074830 E7A80010 */ swc1 $f8, 0x10($sp) +/* 0A9364 7F074834 C4EA0004 */ lwc1 $f10, 4($a3) +/* 0A9368 7F074838 C7A40010 */ lwc1 $f4, 0x10($sp) +/* 0A936C 7F07483C E7AA000C */ swc1 $f10, 0xc($sp) +/* 0A9370 7F074840 46040182 */ mul.s $f6, $f0, $f4 +/* 0A9374 7F074844 C7A8000C */ lwc1 $f8, 0xc($sp) +/* 0A9378 7F074848 46081282 */ mul.s $f10, $f2, $f8 +/* 0A937C 7F07484C C7A80014 */ lwc1 $f8, 0x14($sp) +/* 0A9380 7F074850 460A3100 */ add.s $f4, $f6, $f10 +/* 0A9384 7F074854 460C4182 */ mul.s $f6, $f8, $f12 +/* 0A9388 7F074858 46043280 */ add.s $f10, $f6, $f4 +/* 0A938C 7F07485C E7AA009C */ swc1 $f10, 0x9c($sp) +/* 0A9390 7F074860 C4A60038 */ lwc1 $f6, 0x38($a1) +/* 0A9394 7F074864 C4C80008 */ lwc1 $f8, 8($a2) +/* 0A9398 7F074868 46064101 */ sub.s $f4, $f8, $f6 +/* 0A939C 7F07486C E7A40008 */ swc1 $f4, 8($sp) +/* 0A93A0 7F074870 C4A60030 */ lwc1 $f6, 0x30($a1) +/* 0A93A4 7F074874 C4C80000 */ lwc1 $f8, ($a2) +/* 0A93A8 7F074878 46064101 */ sub.s $f4, $f8, $f6 +/* 0A93AC 7F07487C E7A40004 */ swc1 $f4, 4($sp) +/* 0A93B0 7F074880 C4A60034 */ lwc1 $f6, 0x34($a1) +/* 0A93B4 7F074884 C4C80004 */ lwc1 $f8, 4($a2) +/* 0A93B8 7F074888 46064101 */ sub.s $f4, $f8, $f6 +/* 0A93BC 7F07488C C7A80004 */ lwc1 $f8, 4($sp) +/* 0A93C0 7F074890 E7A40000 */ swc1 $f4, ($sp) +/* 0A93C4 7F074894 46080182 */ mul.s $f6, $f0, $f8 +/* 0A93C8 7F074898 C7A40000 */ lwc1 $f4, ($sp) +/* 0A93CC 7F07489C 46041202 */ mul.s $f8, $f2, $f4 +/* 0A93D0 7F0748A0 46083100 */ add.s $f4, $f6, $f8 +/* 0A93D4 7F0748A4 C7A60008 */ lwc1 $f6, 8($sp) +/* 0A93D8 7F0748A8 460C3202 */ mul.s $f8, $f6, $f12 +/* 0A93DC 7F0748AC 44806000 */ mtc1 $zero, $f12 +/* 0A93E0 7F0748B0 C7A600A0 */ lwc1 $f6, 0xa0($sp) +/* 0A93E4 7F0748B4 460C503C */ c.lt.s $f10, $f12 +/* 0A93E8 7F0748B8 46044480 */ add.s $f18, $f8, $f4 +/* 0A93EC 7F0748BC C7A800A4 */ lwc1 $f8, 0xa4($sp) +/* 0A93F0 7F0748C0 46069000 */ add.s $f0, $f18, $f6 +/* 0A93F4 7F0748C4 46089480 */ add.s $f18, $f18, $f8 +/* 0A93F8 7F0748C8 46000007 */ neg.s $f0, $f0 +/* 0A93FC 7F0748CC 45000005 */ bc1f .L7F0748E4 +/* 0A9400 7F0748D0 46009487 */ neg.s $f18, $f18 +/* 0A9404 7F0748D4 46005107 */ neg.s $f4, $f10 +/* 0A9408 7F0748D8 46009487 */ neg.s $f18, $f18 +/* 0A940C 7F0748DC E7A4009C */ swc1 $f4, 0x9c($sp) +/* 0A9410 7F0748E0 46000007 */ neg.s $f0, $f0 +.L7F0748E4: +/* 0A9414 7F0748E4 460C903C */ c.lt.s $f18, $f12 +/* 0A9418 7F0748E8 00000000 */ nop +/* 0A941C 7F0748EC 45020008 */ bc1fl .L7F074910 +/* 0A9420 7F0748F0 4612003C */ c.lt.s $f0, $f18 +/* 0A9424 7F0748F4 460C003C */ c.lt.s $f0, $f12 +/* 0A9428 7F0748F8 00000000 */ nop +/* 0A942C 7F0748FC 45020004 */ bc1fl .L7F074910 +/* 0A9430 7F074900 4612003C */ c.lt.s $f0, $f18 +/* 0A9434 7F074904 100000D6 */ b .L7F074C60 +/* 0A9438 7F074908 00001025 */ move $v0, $zero +/* 0A943C 7F07490C 4612003C */ c.lt.s $f0, $f18 +.L7F074910: +/* 0A9440 7F074910 E7A00094 */ swc1 $f0, 0x94($sp) +/* 0A9444 7F074914 45020005 */ bc1fl .L7F07492C +/* 0A9448 7F074918 C4A00010 */ lwc1 $f0, 0x10($a1) +/* 0A944C 7F07491C 46009086 */ mov.s $f2, $f18 +/* 0A9450 7F074920 46000486 */ mov.s $f18, $f0 +/* 0A9454 7F074924 E7A20094 */ swc1 $f2, 0x94($sp) +/* 0A9458 7F074928 C4A00010 */ lwc1 $f0, 0x10($a1) +.L7F07492C: +/* 0A945C 7F07492C 46000182 */ mul.s $f6, $f0, $f0 +/* 0A9460 7F074930 E7A60088 */ swc1 $f6, 0x88($sp) +/* 0A9464 7F074934 C4A20014 */ lwc1 $f2, 0x14($a1) +/* 0A9468 7F074938 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0A946C 7F07493C 46021202 */ mul.s $f8, $f2, $f2 +/* 0A9470 7F074940 E7A80084 */ swc1 $f8, 0x84($sp) +/* 0A9474 7F074944 C4AC0018 */ lwc1 $f12, 0x18($a1) +/* 0A9478 7F074948 C7A60084 */ lwc1 $f6, 0x84($sp) +/* 0A947C 7F07494C 460C6282 */ mul.s $f10, $f12, $f12 +/* 0A9480 7F074950 46062200 */ add.s $f8, $f4, $f6 +/* 0A9484 7F074954 E7AA0080 */ swc1 $f10, 0x80($sp) +/* 0A9488 7F074958 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 0A948C 7F07495C C484000C */ lwc1 $f4, 0xc($a0) +/* 0A9490 7F074960 460A4380 */ add.s $f14, $f8, $f10 +/* 0A9494 7F074964 46007387 */ neg.s $f14, $f14 +/* 0A9498 7F074968 46047182 */ mul.s $f6, $f14, $f4 +/* 0A949C 7F07496C C7A40010 */ lwc1 $f4, 0x10($sp) +/* 0A94A0 7F074970 E7A60078 */ swc1 $f6, 0x78($sp) +/* 0A94A4 7F074974 C4880010 */ lwc1 $f8, 0x10($a0) +/* 0A94A8 7F074978 46087282 */ mul.s $f10, $f14, $f8 +/* 0A94AC 7F07497C C7A8000C */ lwc1 $f8, 0xc($sp) +/* 0A94B0 7F074980 46040182 */ mul.s $f6, $f0, $f4 +/* 0A94B4 7F074984 E7AA0074 */ swc1 $f10, 0x74($sp) +/* 0A94B8 7F074988 46081282 */ mul.s $f10, $f2, $f8 +/* 0A94BC 7F07498C C7A80014 */ lwc1 $f8, 0x14($sp) +/* 0A94C0 7F074990 460A3100 */ add.s $f4, $f6, $f10 +/* 0A94C4 7F074994 460C4182 */ mul.s $f6, $f8, $f12 +/* 0A94C8 7F074998 C7A80004 */ lwc1 $f8, 4($sp) +/* 0A94CC 7F07499C 46043280 */ add.s $f10, $f6, $f4 +/* 0A94D0 7F0749A0 46080182 */ mul.s $f6, $f0, $f8 +/* 0A94D4 7F0749A4 C7A40000 */ lwc1 $f4, ($sp) +/* 0A94D8 7F0749A8 E7AA0070 */ swc1 $f10, 0x70($sp) +/* 0A94DC 7F0749AC 46041202 */ mul.s $f8, $f2, $f4 +/* 0A94E0 7F0749B0 46005386 */ mov.s $f14, $f10 +/* 0A94E4 7F0749B4 46083100 */ add.s $f4, $f6, $f8 +/* 0A94E8 7F0749B8 C7A60008 */ lwc1 $f6, 8($sp) +/* 0A94EC 7F0749BC 460C3202 */ mul.s $f8, $f6, $f12 +/* 0A94F0 7F0749C0 44806000 */ mtc1 $zero, $f12 +/* 0A94F4 7F0749C4 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 0A94F8 7F0749C8 460C503C */ c.lt.s $f10, $f12 +/* 0A94FC 7F0749CC 46044400 */ add.s $f16, $f8, $f4 +/* 0A9500 7F0749D0 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 0A9504 7F0749D4 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0A9508 7F0749D8 46068000 */ add.s $f0, $f16, $f6 +/* 0A950C 7F0749DC 46088400 */ add.s $f16, $f16, $f8 +/* 0A9510 7F0749E0 46000007 */ neg.s $f0, $f0 +/* 0A9514 7F0749E4 45000004 */ bc1f .L7F0749F8 +/* 0A9518 7F0749E8 46008407 */ neg.s $f16, $f16 +/* 0A951C 7F0749EC 46005387 */ neg.s $f14, $f10 +/* 0A9520 7F0749F0 46008407 */ neg.s $f16, $f16 +/* 0A9524 7F0749F4 46000007 */ neg.s $f0, $f0 +.L7F0749F8: +/* 0A9528 7F0749F8 460C803C */ c.lt.s $f16, $f12 +/* 0A952C 7F0749FC 00000000 */ nop +/* 0A9530 7F074A00 45020008 */ bc1fl .L7F074A24 +/* 0A9534 7F074A04 4610003C */ c.lt.s $f0, $f16 +/* 0A9538 7F074A08 460C003C */ c.lt.s $f0, $f12 +/* 0A953C 7F074A0C 00000000 */ nop +/* 0A9540 7F074A10 45020004 */ bc1fl .L7F074A24 +/* 0A9544 7F074A14 4610003C */ c.lt.s $f0, $f16 +/* 0A9548 7F074A18 10000091 */ b .L7F074C60 +/* 0A954C 7F074A1C 00001025 */ move $v0, $zero +/* 0A9550 7F074A20 4610003C */ c.lt.s $f0, $f16 +.L7F074A24: +/* 0A9554 7F074A24 C7A80094 */ lwc1 $f8, 0x94($sp) +/* 0A9558 7F074A28 45000004 */ bc1f .L7F074A3C +/* 0A955C 7F074A2C 00000000 */ nop +/* 0A9560 7F074A30 46008086 */ mov.s $f2, $f16 +/* 0A9564 7F074A34 46000406 */ mov.s $f16, $f0 +/* 0A9568 7F074A38 46001006 */ mov.s $f0, $f2 +.L7F074A3C: +/* 0A956C 7F074A3C 46048302 */ mul.s $f12, $f16, $f4 +/* 0A9570 7F074A40 00000000 */ nop +/* 0A9574 7F074A44 460E9082 */ mul.s $f2, $f18, $f14 +/* 0A9578 7F074A48 4602603C */ c.lt.s $f12, $f2 +/* 0A957C 7F074A4C 00000000 */ nop +/* 0A9580 7F074A50 4500000E */ bc1f .L7F074A8C +/* 0A9584 7F074A54 00000000 */ nop +/* 0A9588 7F074A58 46040302 */ mul.s $f12, $f0, $f4 +/* 0A958C 7F074A5C 4602603C */ c.lt.s $f12, $f2 +/* 0A9590 7F074A60 00000000 */ nop +/* 0A9594 7F074A64 45020004 */ bc1fl .L7F074A78 +/* 0A9598 7F074A68 C7A60094 */ lwc1 $f6, 0x94($sp) +/* 0A959C 7F074A6C 1000007C */ b .L7F074C60 +/* 0A95A0 7F074A70 00001025 */ move $v0, $zero +/* 0A95A4 7F074A74 C7A60094 */ lwc1 $f6, 0x94($sp) +.L7F074A78: +/* 0A95A8 7F074A78 C7AA009C */ lwc1 $f10, 0x9c($sp) +/* 0A95AC 7F074A7C E7B2005C */ swc1 $f18, 0x5c($sp) +/* 0A95B0 7F074A80 460E3082 */ mul.s $f2, $f6, $f14 +/* 0A95B4 7F074A84 1000000D */ b .L7F074ABC +/* 0A95B8 7F074A88 E7AA0058 */ swc1 $f10, 0x58($sp) +.L7F074A8C: +/* 0A95BC 7F074A8C 460E4082 */ mul.s $f2, $f8, $f14 +/* 0A95C0 7F074A90 460C103C */ c.lt.s $f2, $f12 +/* 0A95C4 7F074A94 00000000 */ nop +/* 0A95C8 7F074A98 45020004 */ bc1fl .L7F074AAC +/* 0A95CC 7F074A9C C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0A95D0 7F074AA0 1000006F */ b .L7F074C60 +/* 0A95D4 7F074AA4 00001025 */ move $v0, $zero +/* 0A95D8 7F074AA8 C7A4009C */ lwc1 $f4, 0x9c($sp) +.L7F074AAC: +/* 0A95DC 7F074AAC E7B0005C */ swc1 $f16, 0x5c($sp) +/* 0A95E0 7F074AB0 E7AE0058 */ swc1 $f14, 0x58($sp) +/* 0A95E4 7F074AB4 46040302 */ mul.s $f12, $f0, $f4 +/* 0A95E8 7F074AB8 00000000 */ nop +.L7F074ABC: +/* 0A95EC 7F074ABC 460C103C */ c.lt.s $f2, $f12 +/* 0A95F0 7F074AC0 C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 0A95F4 7F074AC4 45020006 */ bc1fl .L7F074AE0 +/* 0A95F8 7F074AC8 E7A00054 */ swc1 $f0, 0x54($sp) +/* 0A95FC 7F074ACC C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 0A9600 7F074AD0 E7AA0054 */ swc1 $f10, 0x54($sp) +/* 0A9604 7F074AD4 10000003 */ b .L7F074AE4 +/* 0A9608 7F074AD8 E7A60050 */ swc1 $f6, 0x50($sp) +/* 0A960C 7F074ADC E7A00054 */ swc1 $f0, 0x54($sp) +.L7F074AE0: +/* 0A9610 7F074AE0 E7AE0050 */ swc1 $f14, 0x50($sp) +.L7F074AE4: +/* 0A9614 7F074AE4 C4A00020 */ lwc1 $f0, 0x20($a1) +/* 0A9618 7F074AE8 C4A20024 */ lwc1 $f2, 0x24($a1) +/* 0A961C 7F074AEC 46000482 */ mul.s $f18, $f0, $f0 +/* 0A9620 7F074AF0 00000000 */ nop +/* 0A9624 7F074AF4 46021202 */ mul.s $f8, $f2, $f2 +/* 0A9628 7F074AF8 E7A80040 */ swc1 $f8, 0x40($sp) +/* 0A962C 7F074AFC C4AC0028 */ lwc1 $f12, 0x28($a1) +/* 0A9630 7F074B00 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 0A9634 7F074B04 460C6102 */ mul.s $f4, $f12, $f12 +/* 0A9638 7F074B08 460A9180 */ add.s $f6, $f18, $f10 +/* 0A963C 7F074B0C E7A4003C */ swc1 $f4, 0x3c($sp) +/* 0A9640 7F074B10 C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0A9644 7F074B14 C4840014 */ lwc1 $f4, 0x14($a0) +/* 0A9648 7F074B18 46083400 */ add.s $f16, $f6, $f8 +/* 0A964C 7F074B1C 46008407 */ neg.s $f16, $f16 +/* 0A9650 7F074B20 46048282 */ mul.s $f10, $f16, $f4 +/* 0A9654 7F074B24 C7A40010 */ lwc1 $f4, 0x10($sp) +/* 0A9658 7F074B28 E7AA0034 */ swc1 $f10, 0x34($sp) +/* 0A965C 7F074B2C C4860018 */ lwc1 $f6, 0x18($a0) +/* 0A9660 7F074B30 46068202 */ mul.s $f8, $f16, $f6 +/* 0A9664 7F074B34 C7A6000C */ lwc1 $f6, 0xc($sp) +/* 0A9668 7F074B38 46040282 */ mul.s $f10, $f0, $f4 +/* 0A966C 7F074B3C E7A80030 */ swc1 $f8, 0x30($sp) +/* 0A9670 7F074B40 46061202 */ mul.s $f8, $f2, $f6 +/* 0A9674 7F074B44 C7A60014 */ lwc1 $f6, 0x14($sp) +/* 0A9678 7F074B48 46085100 */ add.s $f4, $f10, $f8 +/* 0A967C 7F074B4C 460C3282 */ mul.s $f10, $f6, $f12 +/* 0A9680 7F074B50 C7A60004 */ lwc1 $f6, 4($sp) +/* 0A9684 7F074B54 46045200 */ add.s $f8, $f10, $f4 +/* 0A9688 7F074B58 46060282 */ mul.s $f10, $f0, $f6 +/* 0A968C 7F074B5C C7A40000 */ lwc1 $f4, ($sp) +/* 0A9690 7F074B60 E7A8002C */ swc1 $f8, 0x2c($sp) +/* 0A9694 7F074B64 46041182 */ mul.s $f6, $f2, $f4 +/* 0A9698 7F074B68 44801000 */ mtc1 $zero, $f2 +/* 0A969C 7F074B6C 00000000 */ nop +/* 0A96A0 7F074B70 4602403C */ c.lt.s $f8, $f2 +/* 0A96A4 7F074B74 46065100 */ add.s $f4, $f10, $f6 +/* 0A96A8 7F074B78 C7AA0008 */ lwc1 $f10, 8($sp) +/* 0A96AC 7F074B7C 460C5182 */ mul.s $f6, $f10, $f12 +/* 0A96B0 7F074B80 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 0A96B4 7F074B84 46004306 */ mov.s $f12, $f8 +/* 0A96B8 7F074B88 46043380 */ add.s $f14, $f6, $f4 +/* 0A96BC 7F074B8C C7A60034 */ lwc1 $f6, 0x34($sp) +/* 0A96C0 7F074B90 C7A4005C */ lwc1 $f4, 0x5c($sp) +/* 0A96C4 7F074B94 460A7000 */ add.s $f0, $f14, $f10 +/* 0A96C8 7F074B98 46067380 */ add.s $f14, $f14, $f6 +/* 0A96CC 7F074B9C 46000007 */ neg.s $f0, $f0 +/* 0A96D0 7F074BA0 45000004 */ bc1f .L7F074BB4 +/* 0A96D4 7F074BA4 46007387 */ neg.s $f14, $f14 +/* 0A96D8 7F074BA8 46004307 */ neg.s $f12, $f8 +/* 0A96DC 7F074BAC 46007387 */ neg.s $f14, $f14 +/* 0A96E0 7F074BB0 46000007 */ neg.s $f0, $f0 +.L7F074BB4: +/* 0A96E4 7F074BB4 4602703C */ c.lt.s $f14, $f2 +/* 0A96E8 7F074BB8 C7A80058 */ lwc1 $f8, 0x58($sp) +/* 0A96EC 7F074BBC 45020008 */ bc1fl .L7F074BE0 +/* 0A96F0 7F074BC0 460E003C */ c.lt.s $f0, $f14 +/* 0A96F4 7F074BC4 4602003C */ c.lt.s $f0, $f2 +/* 0A96F8 7F074BC8 00000000 */ nop +/* 0A96FC 7F074BCC 45020004 */ bc1fl .L7F074BE0 +/* 0A9700 7F074BD0 460E003C */ c.lt.s $f0, $f14 +/* 0A9704 7F074BD4 10000022 */ b .L7F074C60 +/* 0A9708 7F074BD8 00001025 */ move $v0, $zero +/* 0A970C 7F074BDC 460E003C */ c.lt.s $f0, $f14 +.L7F074BE0: +/* 0A9710 7F074BE0 C7A60058 */ lwc1 $f6, 0x58($sp) +/* 0A9714 7F074BE4 45000004 */ bc1f .L7F074BF8 +/* 0A9718 7F074BE8 00000000 */ nop +/* 0A971C 7F074BEC 46007086 */ mov.s $f2, $f14 +/* 0A9720 7F074BF0 46000386 */ mov.s $f14, $f0 +/* 0A9724 7F074BF4 46001006 */ mov.s $f0, $f2 +.L7F074BF8: +/* 0A9728 7F074BF8 460C2082 */ mul.s $f2, $f4, $f12 +/* 0A972C 7F074BFC 00000000 */ nop +/* 0A9730 7F074C00 46087282 */ mul.s $f10, $f14, $f8 +/* 0A9734 7F074C04 460A103C */ c.lt.s $f2, $f10 +/* 0A9738 7F074C08 00000000 */ nop +/* 0A973C 7F074C0C 4500000C */ bc1f .L7F074C40 +/* 0A9740 7F074C10 00000000 */ nop +/* 0A9744 7F074C14 C7A60054 */ lwc1 $f6, 0x54($sp) +/* 0A9748 7F074C18 C7A80050 */ lwc1 $f8, 0x50($sp) +/* 0A974C 7F074C1C 460C3102 */ mul.s $f4, $f6, $f12 +/* 0A9750 7F074C20 00000000 */ nop +/* 0A9754 7F074C24 46087282 */ mul.s $f10, $f14, $f8 +/* 0A9758 7F074C28 460A203C */ c.lt.s $f4, $f10 +/* 0A975C 7F074C2C 00000000 */ nop +/* 0A9760 7F074C30 4500000A */ bc1f .L7F074C5C +/* 0A9764 7F074C34 00000000 */ nop +/* 0A9768 7F074C38 10000009 */ b .L7F074C60 +/* 0A976C 7F074C3C 00001025 */ move $v0, $zero +.L7F074C40: +/* 0A9770 7F074C40 46060202 */ mul.s $f8, $f0, $f6 +/* 0A9774 7F074C44 4602403C */ c.lt.s $f8, $f2 +/* 0A9778 7F074C48 00000000 */ nop +/* 0A977C 7F074C4C 45020004 */ bc1fl .L7F074C60 +/* 0A9780 7F074C50 24020001 */ li $v0, 1 +/* 0A9784 7F074C54 10000002 */ b .L7F074C60 +/* 0A9788 7F074C58 00001025 */ move $v0, $zero +.L7F074C5C: +/* 0A978C 7F074C5C 24020001 */ li $v0, 1 +.L7F074C60: +/* 0A9790 7F074C60 03E00008 */ jr $ra +/* 0A9794 7F074C64 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F074C68(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F074C68 +/* 0A9798 7F074C68 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0A979C 7F074C6C AFBF0014 */ sw $ra, 0x14($sp) +/* 0A97A0 7F074C70 AFA60028 */ sw $a2, 0x28($sp) +/* 0A97A4 7F074C74 AFA7002C */ sw $a3, 0x2c($sp) +/* 0A97A8 7F074C78 8CAE0004 */ lw $t6, 4($a1) +/* 0A97AC 7F074C7C 00003025 */ move $a2, $zero +/* 0A97B0 7F074C80 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A97B4 7F074C84 AFAE001C */ sw $t6, 0x1c($sp) +/* 0A97B8 7F074C88 8FA4001C */ lw $a0, 0x1c($sp) +/* 0A97BC 7F074C8C 00402825 */ move $a1, $v0 +/* 0A97C0 7F074C90 8FA60028 */ lw $a2, 0x28($sp) +/* 0A97C4 7F074C94 0FC1D1F4 */ jal sub_GAME_7F0747D0 +/* 0A97C8 7F074C98 8FA7002C */ lw $a3, 0x2c($sp) +/* 0A97CC 7F074C9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A97D0 7F074CA0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0A97D4 7F074CA4 03E00008 */ jr $ra +/* 0A97D8 7F074CA8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F074CAC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F074CAC +/* 0A97DC 7F074CAC 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 0A97E0 7F074CB0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0A97E4 7F074CB4 AFB00018 */ sw $s0, 0x18($sp) +/* 0A97E8 7F074CB8 AFA400B0 */ sw $a0, 0xb0($sp) +/* 0A97EC 7F074CBC 8CA80004 */ lw $t0, 4($a1) +/* 0A97F0 7F074CC0 00C08025 */ move $s0, $a2 +/* 0A97F4 7F074CC4 00003025 */ move $a2, $zero +/* 0A97F8 7F074CC8 AFA700BC */ sw $a3, 0xbc($sp) +/* 0A97FC 7F074CCC AFA500B4 */ sw $a1, 0xb4($sp) +/* 0A9800 7F074CD0 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A9804 7F074CD4 AFA800AC */ sw $t0, 0xac($sp) +/* 0A9808 7F074CD8 3C0B8003 */ lui $t3, %hi(D_80036408) +/* 0A980C 7F074CDC 256B6408 */ addiu $t3, %lo(D_80036408) # addiu $t3, $t3, 0x6408 +/* 0A9810 7F074CE0 8D610000 */ lw $at, ($t3) +/* 0A9814 7F074CE4 8FA700BC */ lw $a3, 0xbc($sp) +/* 0A9818 7F074CE8 8FA800AC */ lw $t0, 0xac($sp) +/* 0A981C 7F074CEC 27AA0090 */ addiu $t2, $sp, 0x90 +/* 0A9820 7F074CF0 AD410000 */ sw $at, ($t2) +/* 0A9824 7F074CF4 8D610008 */ lw $at, 8($t3) +/* 0A9828 7F074CF8 8D790004 */ lw $t9, 4($t3) +/* 0A982C 7F074CFC 00401825 */ move $v1, $v0 +/* 0A9830 7F074D00 AD410008 */ sw $at, 8($t2) +/* 0A9834 7F074D04 AD590004 */ sw $t9, 4($t2) +/* 0A9838 7F074D08 C5080004 */ lwc1 $f8, 4($t0) +/* 0A983C 7F074D0C 8FB800B4 */ lw $t8, 0xb4($sp) +/* 0A9840 7F074D10 E7A8008C */ swc1 $f8, 0x8c($sp) +/* 0A9844 7F074D14 C4E60000 */ lwc1 $f6, ($a3) +/* 0A9848 7F074D18 E7A6009C */ swc1 $f6, 0x9c($sp) +/* 0A984C 7F074D1C C4EA0004 */ lwc1 $f10, 4($a3) +/* 0A9850 7F074D20 E7AA00A0 */ swc1 $f10, 0xa0($sp) +/* 0A9854 7F074D24 C4E40008 */ lwc1 $f4, 8($a3) +/* 0A9858 7F074D28 E7A400A4 */ swc1 $f4, 0xa4($sp) +/* 0A985C 7F074D2C 97040000 */ lhu $a0, ($t8) +/* 0A9860 7F074D30 308E0100 */ andi $t6, $a0, 0x100 +/* 0A9864 7F074D34 11C0003C */ beqz $t6, .L7F074E28 +/* 0A9868 7F074D38 308F0200 */ andi $t7, $a0, 0x200 +/* 0A986C 7F074D3C C5080008 */ lwc1 $f8, 8($t0) +/* 0A9870 7F074D40 E7A80080 */ swc1 $f8, 0x80($sp) +/* 0A9874 7F074D44 C506000C */ lwc1 $f6, 0xc($t0) +/* 0A9878 7F074D48 C7A40080 */ lwc1 $f4, 0x80($sp) +/* 0A987C 7F074D4C E7A60084 */ swc1 $f6, 0x84($sp) +/* 0A9880 7F074D50 C50A0010 */ lwc1 $f10, 0x10($t0) +/* 0A9884 7F074D54 E7AA0088 */ swc1 $f10, 0x88($sp) +/* 0A9888 7F074D58 C4480000 */ lwc1 $f8, ($v0) +/* 0A988C 7F074D5C C7AA0084 */ lwc1 $f10, 0x84($sp) +/* 0A9890 7F074D60 46082182 */ mul.s $f6, $f4, $f8 +/* 0A9894 7F074D64 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0A9898 7F074D68 E7A40020 */ swc1 $f4, 0x20($sp) +/* 0A989C 7F074D6C C4440020 */ lwc1 $f4, 0x20($v0) +/* 0A98A0 7F074D70 46085202 */ mul.s $f8, $f10, $f8 +/* 0A98A4 7F074D74 46083180 */ add.s $f6, $f6, $f8 +/* 0A98A8 7F074D78 C7A80088 */ lwc1 $f8, 0x88($sp) +/* 0A98AC 7F074D7C 46044102 */ mul.s $f4, $f8, $f4 +/* 0A98B0 7F074D80 46043180 */ add.s $f6, $f6, $f4 +/* 0A98B4 7F074D84 C4440030 */ lwc1 $f4, 0x30($v0) +/* 0A98B8 7F074D88 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 0A98BC 7F074D8C C60A0000 */ lwc1 $f10, ($s0) +/* 0A98C0 7F074D90 460A2101 */ sub.s $f4, $f4, $f10 +/* 0A98C4 7F074D94 46062280 */ add.s $f10, $f4, $f6 +/* 0A98C8 7F074D98 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0A98CC 7F074D9C E7AA0090 */ swc1 $f10, 0x90($sp) +/* 0A98D0 7F074DA0 C4460004 */ lwc1 $f6, 4($v0) +/* 0A98D4 7F074DA4 46062282 */ mul.s $f10, $f4, $f6 +/* 0A98D8 7F074DA8 C7A60024 */ lwc1 $f6, 0x24($sp) +/* 0A98DC 7F074DAC E7A80024 */ swc1 $f8, 0x24($sp) +/* 0A98E0 7F074DB0 C4480014 */ lwc1 $f8, 0x14($v0) +/* 0A98E4 7F074DB4 46083202 */ mul.s $f8, $f6, $f8 +/* 0A98E8 7F074DB8 46085280 */ add.s $f10, $f10, $f8 +/* 0A98EC 7F074DBC C7A80024 */ lwc1 $f8, 0x24($sp) +/* 0A98F0 7F074DC0 E7A40024 */ swc1 $f4, 0x24($sp) +/* 0A98F4 7F074DC4 C4440024 */ lwc1 $f4, 0x24($v0) +/* 0A98F8 7F074DC8 46044102 */ mul.s $f4, $f8, $f4 +/* 0A98FC 7F074DCC 46045280 */ add.s $f10, $f10, $f4 +/* 0A9900 7F074DD0 C4440034 */ lwc1 $f4, 0x34($v0) +/* 0A9904 7F074DD4 E7A60020 */ swc1 $f6, 0x20($sp) +/* 0A9908 7F074DD8 C6060004 */ lwc1 $f6, 4($s0) +/* 0A990C 7F074DDC 46062101 */ sub.s $f4, $f4, $f6 +/* 0A9910 7F074DE0 460A2180 */ add.s $f6, $f4, $f10 +/* 0A9914 7F074DE4 C7A40024 */ lwc1 $f4, 0x24($sp) +/* 0A9918 7F074DE8 E7A60094 */ swc1 $f6, 0x94($sp) +/* 0A991C 7F074DEC C44A0008 */ lwc1 $f10, 8($v0) +/* 0A9920 7F074DF0 460A2182 */ mul.s $f6, $f4, $f10 +/* 0A9924 7F074DF4 C44A0018 */ lwc1 $f10, 0x18($v0) +/* 0A9928 7F074DF8 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0A992C 7F074DFC 460A2102 */ mul.s $f4, $f4, $f10 +/* 0A9930 7F074E00 46043280 */ add.s $f10, $f6, $f4 +/* 0A9934 7F074E04 C4460028 */ lwc1 $f6, 0x28($v0) +/* 0A9938 7F074E08 46064102 */ mul.s $f4, $f8, $f6 +/* 0A993C 7F074E0C C4460038 */ lwc1 $f6, 0x38($v0) +/* 0A9940 7F074E10 46045200 */ add.s $f8, $f10, $f4 +/* 0A9944 7F074E14 C60A0008 */ lwc1 $f10, 8($s0) +/* 0A9948 7F074E18 460A3101 */ sub.s $f4, $f6, $f10 +/* 0A994C 7F074E1C 46082180 */ add.s $f6, $f4, $f8 +/* 0A9950 7F074E20 1000003E */ b .L7F074F1C +/* 0A9954 7F074E24 E7A60098 */ swc1 $f6, 0x98($sp) +.L7F074E28: +/* 0A9958 7F074E28 51E00031 */ beql $t7, $zero, .L7F074EF0 +/* 0A995C 7F074E2C C4460030 */ lwc1 $f6, 0x30($v0) +/* 0A9960 7F074E30 8D050014 */ lw $a1, 0x14($t0) +/* 0A9964 7F074E34 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0A9968 7F074E38 00003025 */ move $a2, $zero +/* 0A996C 7F074E3C 50A0001F */ beql $a1, $zero, .L7F074EBC +/* 0A9970 7F074E40 C4480030 */ lwc1 $f8, 0x30($v0) +/* 0A9974 7F074E44 AFA300A8 */ sw $v1, 0xa8($sp) +/* 0A9978 7F074E48 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0A997C 7F074E4C AFA800AC */ sw $t0, 0xac($sp) +/* 0A9980 7F074E50 8FA300A8 */ lw $v1, 0xa8($sp) +/* 0A9984 7F074E54 C4440030 */ lwc1 $f4, 0x30($v0) +/* 0A9988 7F074E58 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0A998C 7F074E5C C46A0030 */ lwc1 $f10, 0x30($v1) +/* 0A9990 7F074E60 44810000 */ mtc1 $at, $f0 +/* 0A9994 7F074E64 8FA800AC */ lw $t0, 0xac($sp) +/* 0A9998 7F074E68 46045200 */ add.s $f8, $f10, $f4 +/* 0A999C 7F074E6C C60A0000 */ lwc1 $f10, ($s0) +/* 0A99A0 7F074E70 46004182 */ mul.s $f6, $f8, $f0 +/* 0A99A4 7F074E74 460A3101 */ sub.s $f4, $f6, $f10 +/* 0A99A8 7F074E78 E7A40090 */ swc1 $f4, 0x90($sp) +/* 0A99AC 7F074E7C C4460034 */ lwc1 $f6, 0x34($v0) +/* 0A99B0 7F074E80 C4680034 */ lwc1 $f8, 0x34($v1) +/* 0A99B4 7F074E84 46064280 */ add.s $f10, $f8, $f6 +/* 0A99B8 7F074E88 C6080004 */ lwc1 $f8, 4($s0) +/* 0A99BC 7F074E8C 46005102 */ mul.s $f4, $f10, $f0 +/* 0A99C0 7F074E90 46082181 */ sub.s $f6, $f4, $f8 +/* 0A99C4 7F074E94 E7A60094 */ swc1 $f6, 0x94($sp) +/* 0A99C8 7F074E98 C4440038 */ lwc1 $f4, 0x38($v0) +/* 0A99CC 7F074E9C C46A0038 */ lwc1 $f10, 0x38($v1) +/* 0A99D0 7F074EA0 46045200 */ add.s $f8, $f10, $f4 +/* 0A99D4 7F074EA4 C60A0008 */ lwc1 $f10, 8($s0) +/* 0A99D8 7F074EA8 46004182 */ mul.s $f6, $f8, $f0 +/* 0A99DC 7F074EAC 460A3101 */ sub.s $f4, $f6, $f10 +/* 0A99E0 7F074EB0 1000001A */ b .L7F074F1C +/* 0A99E4 7F074EB4 E7A40098 */ swc1 $f4, 0x98($sp) +/* 0A99E8 7F074EB8 C4480030 */ lwc1 $f8, 0x30($v0) +.L7F074EBC: +/* 0A99EC 7F074EBC C6060000 */ lwc1 $f6, ($s0) +/* 0A99F0 7F074EC0 46064281 */ sub.s $f10, $f8, $f6 +/* 0A99F4 7F074EC4 E7AA0090 */ swc1 $f10, 0x90($sp) +/* 0A99F8 7F074EC8 C6080004 */ lwc1 $f8, 4($s0) +/* 0A99FC 7F074ECC C4440034 */ lwc1 $f4, 0x34($v0) +/* 0A9A00 7F074ED0 46082181 */ sub.s $f6, $f4, $f8 +/* 0A9A04 7F074ED4 E7A60094 */ swc1 $f6, 0x94($sp) +/* 0A9A08 7F074ED8 C6040008 */ lwc1 $f4, 8($s0) +/* 0A9A0C 7F074EDC C44A0038 */ lwc1 $f10, 0x38($v0) +/* 0A9A10 7F074EE0 46045201 */ sub.s $f8, $f10, $f4 +/* 0A9A14 7F074EE4 1000000D */ b .L7F074F1C +/* 0A9A18 7F074EE8 E7A80098 */ swc1 $f8, 0x98($sp) +/* 0A9A1C 7F074EEC C4460030 */ lwc1 $f6, 0x30($v0) +.L7F074EF0: +/* 0A9A20 7F074EF0 C60A0000 */ lwc1 $f10, ($s0) +/* 0A9A24 7F074EF4 460A3101 */ sub.s $f4, $f6, $f10 +/* 0A9A28 7F074EF8 E7A40090 */ swc1 $f4, 0x90($sp) +/* 0A9A2C 7F074EFC C6060004 */ lwc1 $f6, 4($s0) +/* 0A9A30 7F074F00 C4480034 */ lwc1 $f8, 0x34($v0) +/* 0A9A34 7F074F04 46064281 */ sub.s $f10, $f8, $f6 +/* 0A9A38 7F074F08 E7AA0094 */ swc1 $f10, 0x94($sp) +/* 0A9A3C 7F074F0C C6080008 */ lwc1 $f8, 8($s0) +/* 0A9A40 7F074F10 C4440038 */ lwc1 $f4, 0x38($v0) +/* 0A9A44 7F074F14 46082181 */ sub.s $f6, $f4, $f8 +/* 0A9A48 7F074F18 E7A60098 */ swc1 $f6, 0x98($sp) +.L7F074F1C: +/* 0A9A4C 7F074F1C 8FA900B4 */ lw $t1, 0xb4($sp) +/* 0A9A50 7F074F20 C7A400A4 */ lwc1 $f4, 0xa4($sp) +/* 0A9A54 7F074F24 C7A600A0 */ lwc1 $f6, 0xa0($sp) +/* 0A9A58 7F074F28 95240000 */ lhu $a0, ($t1) +/* 0A9A5C 7F074F2C 308D0400 */ andi $t5, $a0, 0x400 +/* 0A9A60 7F074F30 11A00074 */ beqz $t5, .L7F075104 +/* 0A9A64 7F074F34 30820800 */ andi $v0, $a0, 0x800 +/* 0A9A68 7F074F38 C46A0008 */ lwc1 $f10, 8($v1) +/* 0A9A6C 7F074F3C C50C0018 */ lwc1 $f12, 0x18($t0) +/* 0A9A70 7F074F40 C510001C */ lwc1 $f16, 0x1c($t0) +/* 0A9A74 7F074F44 46045202 */ mul.s $f8, $f10, $f4 +/* 0A9A78 7F074F48 C46A0004 */ lwc1 $f10, 4($v1) +/* 0A9A7C 7F074F4C C4600000 */ lwc1 $f0, ($v1) +/* 0A9A80 7F074F50 E7A40024 */ swc1 $f4, 0x24($sp) +/* 0A9A84 7F074F54 460A3282 */ mul.s $f10, $f6, $f10 +/* 0A9A88 7F074F58 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0A9A8C 7F074F5C E7A80020 */ swc1 $f8, 0x20($sp) +/* 0A9A90 7F074F60 46002202 */ mul.s $f8, $f4, $f0 +/* 0A9A94 7F074F64 460A4200 */ add.s $f8, $f8, $f10 +/* 0A9A98 7F074F68 C7AA0020 */ lwc1 $f10, 0x20($sp) +/* 0A9A9C 7F074F6C 46085280 */ add.s $f10, $f10, $f8 +/* 0A9AA0 7F074F70 460C5082 */ mul.s $f2, $f10, $f12 +/* 0A9AA4 7F074F74 00000000 */ nop +/* 0A9AA8 7F074F78 46020202 */ mul.s $f8, $f0, $f2 +/* 0A9AAC 7F074F7C 46044280 */ add.s $f10, $f8, $f4 +/* 0A9AB0 7F074F80 E7AA009C */ swc1 $f10, 0x9c($sp) +/* 0A9AB4 7F074F84 C4680004 */ lwc1 $f8, 4($v1) +/* 0A9AB8 7F074F88 46024102 */ mul.s $f4, $f8, $f2 +/* 0A9ABC 7F074F8C 46062200 */ add.s $f8, $f4, $f6 +/* 0A9AC0 7F074F90 E7A800A0 */ swc1 $f8, 0xa0($sp) +/* 0A9AC4 7F074F94 C4640008 */ lwc1 $f4, 8($v1) +/* 0A9AC8 7F074F98 46022182 */ mul.s $f6, $f4, $f2 +/* 0A9ACC 7F074F9C C7A40024 */ lwc1 $f4, 0x24($sp) +/* 0A9AD0 7F074FA0 46043180 */ add.s $f6, $f6, $f4 +/* 0A9AD4 7F074FA4 E7A600A4 */ swc1 $f6, 0xa4($sp) +/* 0A9AD8 7F074FA8 C4640008 */ lwc1 $f4, 8($v1) +/* 0A9ADC 7F074FAC C4600000 */ lwc1 $f0, ($v1) +/* 0A9AE0 7F074FB0 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 0A9AE4 7F074FB4 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0A9AE8 7F074FB8 E7A80020 */ swc1 $f8, 0x20($sp) +/* 0A9AEC 7F074FBC E7A60028 */ swc1 $f6, 0x28($sp) +/* 0A9AF0 7F074FC0 460A2102 */ mul.s $f4, $f4, $f10 +/* 0A9AF4 7F074FC4 C4660004 */ lwc1 $f6, 4($v1) +/* 0A9AF8 7F074FC8 C7A80094 */ lwc1 $f8, 0x94($sp) +/* 0A9AFC 7F074FCC E7AA002C */ swc1 $f10, 0x2c($sp) +/* 0A9B00 7F074FD0 C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 0A9B04 7F074FD4 46064182 */ mul.s $f6, $f8, $f6 +/* 0A9B08 7F074FD8 E7A40030 */ swc1 $f4, 0x30($sp) +/* 0A9B0C 7F074FDC 46005102 */ mul.s $f4, $f10, $f0 +/* 0A9B10 7F074FE0 46062100 */ add.s $f4, $f4, $f6 +/* 0A9B14 7F074FE4 C7A60030 */ lwc1 $f6, 0x30($sp) +/* 0A9B18 7F074FE8 46043180 */ add.s $f6, $f6, $f4 +/* 0A9B1C 7F074FEC 460C3382 */ mul.s $f14, $f6, $f12 +/* 0A9B20 7F074FF0 00000000 */ nop +/* 0A9B24 7F074FF4 460E0102 */ mul.s $f4, $f0, $f14 +/* 0A9B28 7F074FF8 460A2180 */ add.s $f6, $f4, $f10 +/* 0A9B2C 7F074FFC E7A60090 */ swc1 $f6, 0x90($sp) +/* 0A9B30 7F075000 C4640004 */ lwc1 $f4, 4($v1) +/* 0A9B34 7F075004 460E2282 */ mul.s $f10, $f4, $f14 +/* 0A9B38 7F075008 46085100 */ add.s $f4, $f10, $f8 +/* 0A9B3C 7F07500C E7A40094 */ swc1 $f4, 0x94($sp) +/* 0A9B40 7F075010 C46A0008 */ lwc1 $f10, 8($v1) +/* 0A9B44 7F075014 460E5202 */ mul.s $f8, $f10, $f14 +/* 0A9B48 7F075018 C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 0A9B4C 7F07501C 460A4200 */ add.s $f8, $f8, $f10 +/* 0A9B50 7F075020 C7AA0024 */ lwc1 $f10, 0x24($sp) +/* 0A9B54 7F075024 E7A80098 */ swc1 $f8, 0x98($sp) +/* 0A9B58 7F075028 C4600010 */ lwc1 $f0, 0x10($v1) +/* 0A9B5C 7F07502C E7A60030 */ swc1 $f6, 0x30($sp) +/* 0A9B60 7F075030 E7A4002C */ swc1 $f4, 0x2c($sp) +/* 0A9B64 7F075034 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0A9B68 7F075038 46005182 */ mul.s $f6, $f10, $f0 +/* 0A9B6C 7F07503C C4680014 */ lwc1 $f8, 0x14($v1) +/* 0A9B70 7F075040 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0A9B74 7F075044 46082202 */ mul.s $f8, $f4, $f8 +/* 0A9B78 7F075048 46083180 */ add.s $f6, $f6, $f8 +/* 0A9B7C 7F07504C C7A80028 */ lwc1 $f8, 0x28($sp) +/* 0A9B80 7F075050 E7AA0028 */ swc1 $f10, 0x28($sp) +/* 0A9B84 7F075054 C46A0018 */ lwc1 $f10, 0x18($v1) +/* 0A9B88 7F075058 46085282 */ mul.s $f10, $f10, $f8 +/* 0A9B8C 7F07505C 46065280 */ add.s $f10, $f10, $f6 +/* 0A9B90 7F075060 C7A60028 */ lwc1 $f6, 0x28($sp) +/* 0A9B94 7F075064 46105082 */ mul.s $f2, $f10, $f16 +/* 0A9B98 7F075068 00000000 */ nop +/* 0A9B9C 7F07506C 46020282 */ mul.s $f10, $f0, $f2 +/* 0A9BA0 7F075070 46065280 */ add.s $f10, $f10, $f6 +/* 0A9BA4 7F075074 E7AA009C */ swc1 $f10, 0x9c($sp) +/* 0A9BA8 7F075078 C4660014 */ lwc1 $f6, 0x14($v1) +/* 0A9BAC 7F07507C 46023282 */ mul.s $f10, $f6, $f2 +/* 0A9BB0 7F075080 46045180 */ add.s $f6, $f10, $f4 +/* 0A9BB4 7F075084 E7A600A0 */ swc1 $f6, 0xa0($sp) +/* 0A9BB8 7F075088 C46A0018 */ lwc1 $f10, 0x18($v1) +/* 0A9BBC 7F07508C 46025102 */ mul.s $f4, $f10, $f2 +/* 0A9BC0 7F075090 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 0A9BC4 7F075094 46082180 */ add.s $f6, $f4, $f8 +/* 0A9BC8 7F075098 C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 0A9BCC 7F07509C E7A600A4 */ swc1 $f6, 0xa4($sp) +/* 0A9BD0 7F0750A0 C4600010 */ lwc1 $f0, 0x10($v1) +/* 0A9BD4 7F0750A4 C4660014 */ lwc1 $f6, 0x14($v1) +/* 0A9BD8 7F0750A8 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 0A9BDC 7F0750AC 46005102 */ mul.s $f4, $f10, $f0 +/* 0A9BE0 7F0750B0 C46A0018 */ lwc1 $f10, 0x18($v1) +/* 0A9BE4 7F0750B4 46064182 */ mul.s $f6, $f8, $f6 +/* 0A9BE8 7F0750B8 46062100 */ add.s $f4, $f4, $f6 +/* 0A9BEC 7F0750BC C7A60024 */ lwc1 $f6, 0x24($sp) +/* 0A9BF0 7F0750C0 46065282 */ mul.s $f10, $f10, $f6 +/* 0A9BF4 7F0750C4 46045280 */ add.s $f10, $f10, $f4 +/* 0A9BF8 7F0750C8 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0A9BFC 7F0750CC 46105302 */ mul.s $f12, $f10, $f16 +/* 0A9C00 7F0750D0 00000000 */ nop +/* 0A9C04 7F0750D4 460C0282 */ mul.s $f10, $f0, $f12 +/* 0A9C08 7F0750D8 46045280 */ add.s $f10, $f10, $f4 +/* 0A9C0C 7F0750DC E7AA0090 */ swc1 $f10, 0x90($sp) +/* 0A9C10 7F0750E0 C4640014 */ lwc1 $f4, 0x14($v1) +/* 0A9C14 7F0750E4 460C2282 */ mul.s $f10, $f4, $f12 +/* 0A9C18 7F0750E8 46085100 */ add.s $f4, $f10, $f8 +/* 0A9C1C 7F0750EC E7A40094 */ swc1 $f4, 0x94($sp) +/* 0A9C20 7F0750F0 C46A0018 */ lwc1 $f10, 0x18($v1) +/* 0A9C24 7F0750F4 460C5202 */ mul.s $f8, $f10, $f12 +/* 0A9C28 7F0750F8 46064100 */ add.s $f4, $f8, $f6 +/* 0A9C2C 7F0750FC 1000004F */ b .L7F07523C +/* 0A9C30 7F075100 E7A40098 */ swc1 $f4, 0x98($sp) +.L7F075104: +/* 0A9C34 7F075104 14400005 */ bnez $v0, .L7F07511C +/* 0A9C38 7F075108 308C1000 */ andi $t4, $a0, 0x1000 +/* 0A9C3C 7F07510C 15800003 */ bnez $t4, .L7F07511C +/* 0A9C40 7F075110 308A2000 */ andi $t2, $a0, 0x2000 +/* 0A9C44 7F075114 5140004A */ beql $t2, $zero, .L7F075240 +/* 0A9C48 7F075118 C7B2009C */ lwc1 $f18, 0x9c($sp) +.L7F07511C: +/* 0A9C4C 7F07511C C50A0018 */ lwc1 $f10, 0x18($t0) +/* 0A9C50 7F075120 308B1000 */ andi $t3, $a0, 0x1000 +/* 0A9C54 7F075124 10400008 */ beqz $v0, .L7F075148 +/* 0A9C58 7F075128 E7AA0060 */ swc1 $f10, 0x60($sp) +/* 0A9C5C 7F07512C C4680000 */ lwc1 $f8, ($v1) +/* 0A9C60 7F075130 E7A80054 */ swc1 $f8, 0x54($sp) +/* 0A9C64 7F075134 C4660004 */ lwc1 $f6, 4($v1) +/* 0A9C68 7F075138 E7A60058 */ swc1 $f6, 0x58($sp) +/* 0A9C6C 7F07513C C4640008 */ lwc1 $f4, 8($v1) +/* 0A9C70 7F075140 10000012 */ b .L7F07518C +/* 0A9C74 7F075144 E7A4005C */ swc1 $f4, 0x5c($sp) +.L7F075148: +/* 0A9C78 7F075148 11600008 */ beqz $t3, .L7F07516C +/* 0A9C7C 7F07514C 30992000 */ andi $t9, $a0, 0x2000 +/* 0A9C80 7F075150 C46A0010 */ lwc1 $f10, 0x10($v1) +/* 0A9C84 7F075154 E7AA0054 */ swc1 $f10, 0x54($sp) +/* 0A9C88 7F075158 C4680014 */ lwc1 $f8, 0x14($v1) +/* 0A9C8C 7F07515C E7A80058 */ swc1 $f8, 0x58($sp) +/* 0A9C90 7F075160 C4660018 */ lwc1 $f6, 0x18($v1) +/* 0A9C94 7F075164 10000009 */ b .L7F07518C +/* 0A9C98 7F075168 E7A6005C */ swc1 $f6, 0x5c($sp) +.L7F07516C: +/* 0A9C9C 7F07516C 53200008 */ beql $t9, $zero, .L7F075190 +/* 0A9CA0 7F075170 C7AC0054 */ lwc1 $f12, 0x54($sp) +/* 0A9CA4 7F075174 C4640020 */ lwc1 $f4, 0x20($v1) +/* 0A9CA8 7F075178 E7A40054 */ swc1 $f4, 0x54($sp) +/* 0A9CAC 7F07517C C46A0024 */ lwc1 $f10, 0x24($v1) +/* 0A9CB0 7F075180 E7AA0058 */ swc1 $f10, 0x58($sp) +/* 0A9CB4 7F075184 C4680028 */ lwc1 $f8, 0x28($v1) +/* 0A9CB8 7F075188 E7A8005C */ swc1 $f8, 0x5c($sp) +.L7F07518C: +/* 0A9CBC 7F07518C C7AC0054 */ lwc1 $f12, 0x54($sp) +.L7F075190: +/* 0A9CC0 7F075190 C7B2009C */ lwc1 $f18, 0x9c($sp) +/* 0A9CC4 7F075194 C7AE0058 */ lwc1 $f14, 0x58($sp) +/* 0A9CC8 7F075198 C7A400A0 */ lwc1 $f4, 0xa0($sp) +/* 0A9CCC 7F07519C 460C9182 */ mul.s $f6, $f18, $f12 +/* 0A9CD0 7F0751A0 C7B0005C */ lwc1 $f16, 0x5c($sp) +/* 0A9CD4 7F0751A4 460E2282 */ mul.s $f10, $f4, $f14 +/* 0A9CD8 7F0751A8 460A3200 */ add.s $f8, $f6, $f10 +/* 0A9CDC 7F0751AC C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 0A9CE0 7F0751B0 46068282 */ mul.s $f10, $f16, $f6 +/* 0A9CE4 7F0751B4 46085280 */ add.s $f10, $f10, $f8 +/* 0A9CE8 7F0751B8 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 0A9CEC 7F0751BC 46085002 */ mul.s $f0, $f10, $f8 +/* 0A9CF0 7F0751C0 E7A80030 */ swc1 $f8, 0x30($sp) +/* 0A9CF4 7F0751C4 46006282 */ mul.s $f10, $f12, $f0 +/* 0A9CF8 7F0751C8 46125480 */ add.s $f18, $f10, $f18 +/* 0A9CFC 7F0751CC 46007282 */ mul.s $f10, $f14, $f0 +/* 0A9D00 7F0751D0 E7B2009C */ swc1 $f18, 0x9c($sp) +/* 0A9D04 7F0751D4 46045280 */ add.s $f10, $f10, $f4 +/* 0A9D08 7F0751D8 46008102 */ mul.s $f4, $f16, $f0 +/* 0A9D0C 7F0751DC E7AA00A0 */ swc1 $f10, 0xa0($sp) +/* 0A9D10 7F0751E0 46062280 */ add.s $f10, $f4, $f6 +/* 0A9D14 7F0751E4 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 0A9D18 7F0751E8 E7AA00A4 */ swc1 $f10, 0xa4($sp) +/* 0A9D1C 7F0751EC 460C2182 */ mul.s $f6, $f4, $f12 +/* 0A9D20 7F0751F0 C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 0A9D24 7F0751F4 E7A4002C */ swc1 $f4, 0x2c($sp) +/* 0A9D28 7F0751F8 460E5202 */ mul.s $f8, $f10, $f14 +/* 0A9D2C 7F0751FC 46083180 */ add.s $f6, $f6, $f8 +/* 0A9D30 7F075200 C7A80098 */ lwc1 $f8, 0x98($sp) +/* 0A9D34 7F075204 46088102 */ mul.s $f4, $f16, $f8 +/* 0A9D38 7F075208 46062100 */ add.s $f4, $f4, $f6 +/* 0A9D3C 7F07520C C7A60030 */ lwc1 $f6, 0x30($sp) +/* 0A9D40 7F075210 46062082 */ mul.s $f2, $f4, $f6 +/* 0A9D44 7F075214 C7A6002C */ lwc1 $f6, 0x2c($sp) +/* 0A9D48 7F075218 46026102 */ mul.s $f4, $f12, $f2 +/* 0A9D4C 7F07521C 46062100 */ add.s $f4, $f4, $f6 +/* 0A9D50 7F075220 46027182 */ mul.s $f6, $f14, $f2 +/* 0A9D54 7F075224 E7A40090 */ swc1 $f4, 0x90($sp) +/* 0A9D58 7F075228 460A3100 */ add.s $f4, $f6, $f10 +/* 0A9D5C 7F07522C 46028182 */ mul.s $f6, $f16, $f2 +/* 0A9D60 7F075230 E7A40094 */ swc1 $f4, 0x94($sp) +/* 0A9D64 7F075234 46083280 */ add.s $f10, $f6, $f8 +/* 0A9D68 7F075238 E7AA0098 */ swc1 $f10, 0x98($sp) +.L7F07523C: +/* 0A9D6C 7F07523C C7B2009C */ lwc1 $f18, 0x9c($sp) +.L7F075240: +/* 0A9D70 7F075240 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 0A9D74 7F075244 C7AE00A0 */ lwc1 $f14, 0xa0($sp) +/* 0A9D78 7F075248 C7A80094 */ lwc1 $f8, 0x94($sp) +/* 0A9D7C 7F07524C 46049182 */ mul.s $f6, $f18, $f4 +/* 0A9D80 7F075250 C7B000A4 */ lwc1 $f16, 0xa4($sp) +/* 0A9D84 7F075254 E7A40030 */ swc1 $f4, 0x30($sp) +/* 0A9D88 7F075258 46087282 */ mul.s $f10, $f14, $f8 +/* 0A9D8C 7F07525C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0A9D90 7F075260 00001025 */ move $v0, $zero +/* 0A9D94 7F075264 460A3180 */ add.s $f6, $f6, $f10 +/* 0A9D98 7F075268 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0A9D9C 7F07526C 46105102 */ mul.s $f4, $f10, $f16 +/* 0A9DA0 7F075270 46062080 */ add.s $f2, $f4, $f6 +/* 0A9DA4 7F075274 44802000 */ mtc1 $zero, $f4 +/* 0A9DA8 7F075278 00000000 */ nop +/* 0A9DAC 7F07527C 4602203C */ c.lt.s $f4, $f2 +/* 0A9DB0 7F075280 00000000 */ nop +/* 0A9DB4 7F075284 4500001A */ bc1f .L7F0752F0 +/* 0A9DB8 7F075288 00000000 */ nop +/* 0A9DBC 7F07528C 46129182 */ mul.s $f6, $f18, $f18 +/* 0A9DC0 7F075290 00000000 */ nop +/* 0A9DC4 7F075294 460E7102 */ mul.s $f4, $f14, $f14 +/* 0A9DC8 7F075298 46043180 */ add.s $f6, $f6, $f4 +/* 0A9DCC 7F07529C 46108102 */ mul.s $f4, $f16, $f16 +/* 0A9DD0 7F0752A0 46062000 */ add.s $f0, $f4, $f6 +/* 0A9DD4 7F0752A4 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0A9DD8 7F0752A8 46042182 */ mul.s $f6, $f4, $f4 +/* 0A9DDC 7F0752AC 00000000 */ nop +/* 0A9DE0 7F0752B0 46084102 */ mul.s $f4, $f8, $f8 +/* 0A9DE4 7F0752B4 46043200 */ add.s $f8, $f6, $f4 +/* 0A9DE8 7F0752B8 460A5182 */ mul.s $f6, $f10, $f10 +/* 0A9DEC 7F0752BC C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0A9DF0 7F0752C0 46021102 */ mul.s $f4, $f2, $f2 +/* 0A9DF4 7F0752C4 46083300 */ add.s $f12, $f6, $f8 +/* 0A9DF8 7F0752C8 460A6181 */ sub.s $f6, $f12, $f10 +/* 0A9DFC 7F0752CC 46003202 */ mul.s $f8, $f6, $f0 +/* 0A9E00 7F0752D0 4604403E */ c.le.s $f8, $f4 +/* 0A9E04 7F0752D4 00000000 */ nop +/* 0A9E08 7F0752D8 45000003 */ bc1f .L7F0752E8 +/* 0A9E0C 7F0752DC 00000000 */ nop +/* 0A9E10 7F0752E0 10000003 */ b .L7F0752F0 +/* 0A9E14 7F0752E4 24020001 */ li $v0, 1 +.L7F0752E8: +/* 0A9E18 7F0752E8 10000001 */ b .L7F0752F0 +/* 0A9E1C 7F0752EC 00001025 */ move $v0, $zero +.L7F0752F0: +/* 0A9E20 7F0752F0 8FB00018 */ lw $s0, 0x18($sp) +/* 0A9E24 7F0752F4 03E00008 */ jr $ra +/* 0A9E28 7F0752F8 27BD00B0 */ addiu $sp, $sp, 0xb0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0752FC(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80054DB4*/ +glabel jpt_80054DB4 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F07543C +.word .L7F075470 +.word .L7F0753CC +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075404 +.word .L7F075450 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075470 +.word .L7F075464 +.word .L7F075470 + +.text +glabel sub_GAME_7F0752FC +/* 0A9E2C 7F0752FC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A9E30 7F075300 AFBF002C */ sw $ra, 0x2c($sp) +/* 0A9E34 7F075304 AFB40028 */ sw $s4, 0x28($sp) +/* 0A9E38 7F075308 AFB30024 */ sw $s3, 0x24($sp) +/* 0A9E3C 7F07530C AFB20020 */ sw $s2, 0x20($sp) +/* 0A9E40 7F075310 AFB1001C */ sw $s1, 0x1c($sp) +/* 0A9E44 7F075314 AFB00018 */ sw $s0, 0x18($sp) +/* 0A9E48 7F075318 AFA7003C */ sw $a3, 0x3c($sp) +/* 0A9E4C 7F07531C 8CE20000 */ lw $v0, ($a3) +/* 0A9E50 7F075320 00809025 */ move $s2, $a0 +/* 0A9E54 7F075324 00A09825 */ move $s3, $a1 +/* 0A9E58 7F075328 00C0A025 */ move $s4, $a2 +/* 0A9E5C 7F07532C 10400004 */ beqz $v0, .L7F075340 +/* 0A9E60 7F075330 24110001 */ li $s1, 1 +/* 0A9E64 7F075334 00408025 */ move $s0, $v0 +/* 0A9E68 7F075338 10000003 */ b .L7F075348 +/* 0A9E6C 7F07533C ACE00000 */ sw $zero, ($a3) +.L7F075340: +/* 0A9E70 7F075340 8E4F0008 */ lw $t7, 8($s2) +/* 0A9E74 7F075344 8DF00000 */ lw $s0, ($t7) +.L7F075348: +/* 0A9E78 7F075348 5200004C */ beql $s0, $zero, .L7F07547C +/* 0A9E7C 7F07534C 00001025 */ move $v0, $zero +.L7F075350: +/* 0A9E80 7F075350 12200006 */ beqz $s1, .L7F07536C +/* 0A9E84 7F075354 00000000 */ nop +/* 0A9E88 7F075358 8E020014 */ lw $v0, 0x14($s0) +/* 0A9E8C 7F07535C 10400003 */ beqz $v0, .L7F07536C +/* 0A9E90 7F075360 00000000 */ nop +/* 0A9E94 7F075364 1000000D */ b .L7F07539C +/* 0A9E98 7F075368 00408025 */ move $s0, $v0 +.L7F07536C: +/* 0A9E9C 7F07536C 12000009 */ beqz $s0, .L7F075394 +/* 0A9EA0 7F075370 00000000 */ nop +/* 0A9EA4 7F075374 8E02000C */ lw $v0, 0xc($s0) +.L7F075378: +/* 0A9EA8 7F075378 50400004 */ beql $v0, $zero, .L7F07538C +/* 0A9EAC 7F07537C 8E100008 */ lw $s0, 8($s0) +/* 0A9EB0 7F075380 10000004 */ b .L7F075394 +/* 0A9EB4 7F075384 00408025 */ move $s0, $v0 +/* 0A9EB8 7F075388 8E100008 */ lw $s0, 8($s0) +.L7F07538C: +/* 0A9EBC 7F07538C 5600FFFA */ bnezl $s0, .L7F075378 +/* 0A9EC0 7F075390 8E02000C */ lw $v0, 0xc($s0) +.L7F075394: +/* 0A9EC4 7F075394 52000039 */ beql $s0, $zero, .L7F07547C +/* 0A9EC8 7F075398 00001025 */ move $v0, $zero +.L7F07539C: +/* 0A9ECC 7F07539C 96020000 */ lhu $v0, ($s0) +/* 0A9ED0 7F0753A0 24110001 */ li $s1, 1 +/* 0A9ED4 7F0753A4 305800FF */ andi $t8, $v0, 0xff +/* 0A9ED8 7F0753A8 2719FFFF */ addiu $t9, $t8, -1 +/* 0A9EDC 7F0753AC 2F210018 */ sltiu $at, $t9, 0x18 +/* 0A9EE0 7F0753B0 1020002F */ beqz $at, .L7F075470 +/* 0A9EE4 7F0753B4 0019C880 */ sll $t9, $t9, 2 +/* 0A9EE8 7F0753B8 3C018005 */ lui $at, %hi(jpt_80054DB4) +/* 0A9EEC 7F0753BC 00390821 */ addu $at, $at, $t9 +/* 0A9EF0 7F0753C0 8C394DB4 */ lw $t9, %lo(jpt_80054DB4)($at) +.L7F0753C4: +/* 0A9EF4 7F0753C4 03200008 */ jr $t9 +/* 0A9EF8 7F0753C8 00000000 */ nop +.L7F0753CC: +/* 0A9EFC 7F0753CC 02402025 */ move $a0, $s2 +/* 0A9F00 7F0753D0 02002825 */ move $a1, $s0 +/* 0A9F04 7F0753D4 02603025 */ move $a2, $s3 +/* 0A9F08 7F0753D8 0FC1D31A */ jal sub_GAME_7F074C68 +/* 0A9F0C 7F0753DC 02803825 */ move $a3, $s4 +/* 0A9F10 7F0753E0 10400006 */ beqz $v0, .L7F0753FC +/* 0A9F14 7F0753E4 00000000 */ nop +/* 0A9F18 7F0753E8 8FA8003C */ lw $t0, 0x3c($sp) +/* 0A9F1C 7F0753EC AD100000 */ sw $s0, ($t0) +/* 0A9F20 7F0753F0 8E090004 */ lw $t1, 4($s0) +/* 0A9F24 7F0753F4 10000021 */ b .L7F07547C +/* 0A9F28 7F0753F8 8D220000 */ lw $v0, ($t1) +.L7F0753FC: +/* 0A9F2C 7F0753FC 1000001C */ b .L7F075470 +/* 0A9F30 7F075400 00008825 */ move $s1, $zero +.L7F075404: +/* 0A9F34 7F075404 02402025 */ move $a0, $s2 +/* 0A9F38 7F075408 02002825 */ move $a1, $s0 +/* 0A9F3C 7F07540C 02603025 */ move $a2, $s3 +/* 0A9F40 7F075410 0FC1D32B */ jal sub_GAME_7F074CAC +/* 0A9F44 7F075414 02803825 */ move $a3, $s4 +/* 0A9F48 7F075418 10400006 */ beqz $v0, .L7F075434 +/* 0A9F4C 7F07541C 00000000 */ nop +/* 0A9F50 7F075420 8FAA003C */ lw $t2, 0x3c($sp) +/* 0A9F54 7F075424 AD500000 */ sw $s0, ($t2) +/* 0A9F58 7F075428 8E0B0004 */ lw $t3, 4($s0) +/* 0A9F5C 7F07542C 10000013 */ b .L7F07547C +/* 0A9F60 7F075430 8D620000 */ lw $v0, ($t3) +.L7F075434: +/* 0A9F64 7F075434 1000000E */ b .L7F075470 +/* 0A9F68 7F075438 00008825 */ move $s1, $zero +.L7F07543C: +/* 0A9F6C 7F07543C 02402025 */ move $a0, $s2 +/* 0A9F70 7F075440 0FC1BA5C */ jal sub_GAME_7F06E970 +/* 0A9F74 7F075444 02002825 */ move $a1, $s0 +/* 0A9F78 7F075448 10000009 */ b .L7F075470 +/* 0A9F7C 7F07544C 00000000 */ nop +.L7F075450: +/* 0A9F80 7F075450 02402025 */ move $a0, $s2 +/* 0A9F84 7F075454 0FC1BA6F */ jal process_12_handle_switch +/* 0A9F88 7F075458 02002825 */ move $a1, $s0 +/* 0A9F8C 7F07545C 10000004 */ b .L7F075470 +/* 0A9F90 7F075460 00000000 */ nop +.L7F075464: +/* 0A9F94 7F075464 02402025 */ move $a0, $s2 +/* 0A9F98 7F075468 0FC1BA82 */ jal process_17_pointer_to_head +/* 0A9F9C 7F07546C 02002825 */ move $a1, $s0 +def_7F0753C4: +.L7F075470: +/* 0A9FA0 7F075470 1600FFB7 */ bnez $s0, .L7F075350 +/* 0A9FA4 7F075474 00000000 */ nop +/* 0A9FA8 7F075478 00001025 */ move $v0, $zero +.L7F07547C: +/* 0A9FAC 7F07547C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0A9FB0 7F075480 8FB00018 */ lw $s0, 0x18($sp) +/* 0A9FB4 7F075484 8FB1001C */ lw $s1, 0x1c($sp) +/* 0A9FB8 7F075488 8FB20020 */ lw $s2, 0x20($sp) +/* 0A9FBC 7F07548C 8FB30024 */ lw $s3, 0x24($sp) +/* 0A9FC0 7F075490 8FB40028 */ lw $s4, 0x28($sp) +/* 0A9FC4 7F075494 03E00008 */ jr $ra +/* 0A9FC8 7F075498 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07549C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07549C +/* 0A9FCC 7F07549C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0A9FD0 7F0754A0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A9FD4 7F0754A4 0FC1D4BF */ jal sub_GAME_7F0752FC +/* 0A9FD8 7F0754A8 ACE00000 */ sw $zero, ($a3) +/* 0A9FDC 7F0754AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A9FE0 7F0754B0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0A9FE4 7F0754B4 03E00008 */ jr $ra +/* 0A9FE8 7F0754B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0754BC(void *arg0, s32 arg1, ? arg2) { + s32 temp_t6; + s32 temp_t2; + s32 temp_a1; + s32 phi_a1; + s32 phi_v1; + s32 phi_a3; + s32 phi_a3_2; + + // Node 0 + temp_t6 = ((s32) arg0->unkE >> 3); + if ((*arg0 << 0) < 0) + { + // Node 1 + phi_a3_2 = (*arg0 + (arg1 * temp_t6)); + } + else + { + // Node 2 + phi_a3_2 = 0; + if (D_80036414 != 0) + { + // Node 3 + temp_t2 = (((u32) (D_80036414->unk8 + 0xf) >> 4) * 0x10); + temp_a1 = (*arg0 + (arg1 * temp_t6)); + phi_a1 = temp_a1; + phi_v1 = temp_t6; + phi_a3 = temp_t2; + if ((temp_a1 & 1) != 0) + { + // Node 4 + phi_a1 = (temp_a1 + -1); + phi_v1 = (temp_t6 + 1); + phi_a3 = (temp_t2 + 1); + } + // Node 5 + romCopy(temp_t2, phi_a1, (((u32) (phi_v1 + 0xf) >> 4) * 0x10), phi_a3); + *D_80036414 = (s32) (*D_80036414 + 1); + D_80036414->unk8 = (s32) (sp20 + sp18); + phi_a3_2 = sp2C; + } + // Node 6 + } + // Node 7 + return phi_a3_2; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0754BC +/* 0A9FEC 7F0754BC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0A9FF0 7F0754C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A9FF4 7F0754C4 AFA50034 */ sw $a1, 0x34($sp) +/* 0A9FF8 7F0754C8 AFA60038 */ sw $a2, 0x38($sp) +/* 0A9FFC 7F0754CC 9483000E */ lhu $v1, 0xe($a0) +/* 0AA000 7F0754D0 8C860000 */ lw $a2, ($a0) +/* 0AA004 7F0754D4 00003825 */ move $a3, $zero +/* 0AA008 7F0754D8 000370C3 */ sra $t6, $v1, 3 +/* 0AA00C 7F0754DC 00067800 */ sll $t7, $a2, 0 +/* 0AA010 7F0754E0 05E10006 */ bgez $t7, .L7F0754FC +/* 0AA014 7F0754E4 01C01825 */ move $v1, $t6 +/* 0AA018 7F0754E8 00AE0019 */ multu $a1, $t6 +/* 0AA01C 7F0754EC 0000C812 */ mflo $t9 +/* 0AA020 7F0754F0 00D93821 */ addu $a3, $a2, $t9 +/* 0AA024 7F0754F4 1000002A */ b .L7F0755A0 +/* 0AA028 7F0754F8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0754FC: +/* 0AA02C 7F0754FC 3C088003 */ lui $t0, %hi(D_80036414) +/* 0AA030 7F075500 25086414 */ addiu $t0, %lo(D_80036414) # addiu $t0, $t0, 0x6414 +/* 0AA034 7F075504 8D020000 */ lw $v0, ($t0) +/* 0AA038 7F075508 8FAB0034 */ lw $t3, 0x34($sp) +/* 0AA03C 7F07550C 50400024 */ beql $v0, $zero, .L7F0755A0 +/* 0AA040 7F075510 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AA044 7F075514 01630019 */ multu $t3, $v1 +/* 0AA048 7F075518 8C440008 */ lw $a0, 8($v0) +/* 0AA04C 7F07551C 2484000F */ addiu $a0, $a0, 0xf +/* 0AA050 7F075520 00044902 */ srl $t1, $a0, 4 +/* 0AA054 7F075524 00095100 */ sll $t2, $t1, 4 +/* 0AA058 7F075528 01402025 */ move $a0, $t2 +/* 0AA05C 7F07552C 01403825 */ move $a3, $t2 +/* 0AA060 7F075530 00006012 */ mflo $t4 +/* 0AA064 7F075534 00CC2821 */ addu $a1, $a2, $t4 +/* 0AA068 7F075538 30AD0001 */ andi $t5, $a1, 1 +/* 0AA06C 7F07553C 51A00005 */ beql $t5, $zero, .L7F075554 +/* 0AA070 7F075540 2466000F */ addiu $a2, $v1, 0xf +/* 0AA074 7F075544 24A5FFFF */ addiu $a1, $a1, -1 +/* 0AA078 7F075548 24630001 */ addiu $v1, $v1, 1 +/* 0AA07C 7F07554C 25470001 */ addiu $a3, $t2, 1 +/* 0AA080 7F075550 2466000F */ addiu $a2, $v1, 0xf +.L7F075554: +/* 0AA084 7F075554 00067102 */ srl $t6, $a2, 4 +/* 0AA088 7F075558 000E3100 */ sll $a2, $t6, 4 +/* 0AA08C 7F07555C AFA60018 */ sw $a2, 0x18($sp) +/* 0AA090 7F075560 AFA40020 */ sw $a0, 0x20($sp) +/* 0AA094 7F075564 0C001707 */ jal romCopy +/* 0AA098 7F075568 AFA7002C */ sw $a3, 0x2c($sp) +/* 0AA09C 7F07556C 3C088003 */ lui $t0, %hi(D_80036414) +/* 0AA0A0 7F075570 25086414 */ addiu $t0, %lo(D_80036414) # addiu $t0, $t0, 0x6414 +/* 0AA0A4 7F075574 8D020000 */ lw $v0, ($t0) +/* 0AA0A8 7F075578 8FA40020 */ lw $a0, 0x20($sp) +/* 0AA0AC 7F07557C 8FA60018 */ lw $a2, 0x18($sp) +/* 0AA0B0 7F075580 8C580000 */ lw $t8, ($v0) +/* 0AA0B4 7F075584 8FA7002C */ lw $a3, 0x2c($sp) +/* 0AA0B8 7F075588 00864821 */ addu $t1, $a0, $a2 +/* 0AA0BC 7F07558C 27190001 */ addiu $t9, $t8, 1 +/* 0AA0C0 7F075590 AC590000 */ sw $t9, ($v0) +/* 0AA0C4 7F075594 8D0A0000 */ lw $t2, ($t0) +/* 0AA0C8 7F075598 AD490008 */ sw $t1, 8($t2) +/* 0AA0CC 7F07559C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0755A0: +/* 0AA0D0 7F0755A0 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0AA0D4 7F0755A4 00E01025 */ move $v0, $a3 +/* 0AA0D8 7F0755A8 03E00008 */ jr $ra +/* 0AA0DC 7F0755AC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0755B0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0755B0 +/* 0AA0E0 7F0755B0 3C038003 */ lui $v1, %hi(D_80036414) +/* 0AA0E4 7F0755B4 24636414 */ addiu $v1, %lo(D_80036414) # addiu $v1, $v1, 0x6414 +/* 0AA0E8 7F0755B8 8C620000 */ lw $v0, ($v1) +/* 0AA0EC 7F0755BC 10400005 */ beqz $v0, .L7F0755D4 +/* 0AA0F0 7F0755C0 00000000 */ nop +/* 0AA0F4 7F0755C4 8C4E0004 */ lw $t6, 4($v0) +/* 0AA0F8 7F0755C8 AC4E0008 */ sw $t6, 8($v0) +/* 0AA0FC 7F0755CC 8C6F0000 */ lw $t7, ($v1) +/* 0AA100 7F0755D0 ADE00000 */ sw $zero, ($t7) +.L7F0755D4: +/* 0AA104 7F0755D4 03E00008 */ jr $ra +/* 0AA108 7F0755D8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void convert_obj_microcode_offset_to_rdram_addr(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80054E14*/ +glabel jpt_80054E14 +.word .L7F075678 +.word .L7F075698 +.word .L7F0756B8 +.word .L7F0756D8 +.word .L7F0757AC +.word .L7F0758F4 +.word .L7F07583C +.word .L7F075904 +.word .L7F07594C +.word .L7F075A44 +.word .L7F0759A0 +.word .L7F0759C4 +.word .L7F0759E8 +.word .L7F075A44 +.word .L7F075A44 +.word .L7F075A44 +.word .L7F075980 +.word .L7F07592C +.word .L7F075A44 +.word .L7F07578C +.word .L7F075A44 +.word .L7F075A20 +.word .L7F075A44 +.word .L7F0756FC + +.text +glabel convert_obj_microcode_offset_to_rdram_addr +/* 0AA10C 7F0755DC 1080012A */ beqz $a0, .L7F075A88 +/* 0AA110 7F0755E0 00000000 */ nop +/* 0AA114 7F0755E4 94820000 */ lhu $v0, ($a0) +.L7F0755E8: +/* 0AA118 7F0755E8 8C830004 */ lw $v1, 4($a0) +/* 0AA11C 7F0755EC 00C57823 */ subu $t7, $a2, $a1 +/* 0AA120 7F0755F0 304E00FF */ andi $t6, $v0, 0xff +/* 0AA124 7F0755F4 10600003 */ beqz $v1, .L7F075604 +/* 0AA128 7F0755F8 01C01025 */ move $v0, $t6 +/* 0AA12C 7F0755FC 006FC021 */ addu $t8, $v1, $t7 +/* 0AA130 7F075600 AC980004 */ sw $t8, 4($a0) +.L7F075604: +/* 0AA134 7F075604 8C830008 */ lw $v1, 8($a0) +/* 0AA138 7F075608 00C5C823 */ subu $t9, $a2, $a1 +/* 0AA13C 7F07560C 00C56023 */ subu $t4, $a2, $a1 +/* 0AA140 7F075610 10600002 */ beqz $v1, .L7F07561C +/* 0AA144 7F075614 00795821 */ addu $t3, $v1, $t9 +/* 0AA148 7F075618 AC8B0008 */ sw $t3, 8($a0) +.L7F07561C: +/* 0AA14C 7F07561C 8C83000C */ lw $v1, 0xc($a0) +/* 0AA150 7F075620 244BFFFF */ addiu $t3, $v0, -1 +/* 0AA154 7F075624 2D610018 */ sltiu $at, $t3, 0x18 +/* 0AA158 7F075628 10600002 */ beqz $v1, .L7F075634 +/* 0AA15C 7F07562C 006C6821 */ addu $t5, $v1, $t4 +/* 0AA160 7F075630 AC8D000C */ sw $t5, 0xc($a0) +.L7F075634: +/* 0AA164 7F075634 8C830010 */ lw $v1, 0x10($a0) +/* 0AA168 7F075638 00C57023 */ subu $t6, $a2, $a1 +/* 0AA16C 7F07563C 00C5C023 */ subu $t8, $a2, $a1 +/* 0AA170 7F075640 10600002 */ beqz $v1, .L7F07564C +/* 0AA174 7F075644 006E7821 */ addu $t7, $v1, $t6 +/* 0AA178 7F075648 AC8F0010 */ sw $t7, 0x10($a0) +.L7F07564C: +/* 0AA17C 7F07564C 8C830014 */ lw $v1, 0x14($a0) +/* 0AA180 7F075650 000B5880 */ sll $t3, $t3, 2 +/* 0AA184 7F075654 10600002 */ beqz $v1, .L7F075660 +/* 0AA188 7F075658 0078C821 */ addu $t9, $v1, $t8 +/* 0AA18C 7F07565C AC990014 */ sw $t9, 0x14($a0) +.L7F075660: +/* 0AA190 7F075660 102000F8 */ beqz $at, .L7F075A44 +/* 0AA194 7F075664 3C018005 */ lui $at, %hi(jpt_80054E14) +/* 0AA198 7F075668 002B0821 */ addu $at, $at, $t3 +/* 0AA19C 7F07566C 8C2B4E14 */ lw $t3, %lo(jpt_80054E14)($at) +.L7F075670: +/* 0AA1A0 7F075670 01600008 */ jr $t3 +/* 0AA1A4 7F075674 00000000 */ nop +.L7F075678: +/* 0AA1A8 7F075678 8C820004 */ lw $v0, 4($a0) +/* 0AA1AC 7F07567C 00C56023 */ subu $t4, $a2, $a1 +/* 0AA1B0 7F075680 8C430004 */ lw $v1, 4($v0) +/* 0AA1B4 7F075684 10600002 */ beqz $v1, .L7F075690 +/* 0AA1B8 7F075688 006C6821 */ addu $t5, $v1, $t4 +/* 0AA1BC 7F07568C AC4D0004 */ sw $t5, 4($v0) +.L7F075690: +/* 0AA1C0 7F075690 100000ED */ b .L7F075A48 +/* 0AA1C4 7F075694 8C830014 */ lw $v1, 0x14($a0) +.L7F075698: +/* 0AA1C8 7F075698 8C820004 */ lw $v0, 4($a0) +/* 0AA1CC 7F07569C 00C57023 */ subu $t6, $a2, $a1 +/* 0AA1D0 7F0756A0 8C430014 */ lw $v1, 0x14($v0) +/* 0AA1D4 7F0756A4 10600002 */ beqz $v1, .L7F0756B0 +/* 0AA1D8 7F0756A8 006E7821 */ addu $t7, $v1, $t6 +/* 0AA1DC 7F0756AC AC4F0014 */ sw $t7, 0x14($v0) +.L7F0756B0: +/* 0AA1E0 7F0756B0 100000E5 */ b .L7F075A48 +/* 0AA1E4 7F0756B4 8C830014 */ lw $v1, 0x14($a0) +.L7F0756B8: +/* 0AA1E8 7F0756B8 8C820004 */ lw $v0, 4($a0) +/* 0AA1EC 7F0756BC 00C5C023 */ subu $t8, $a2, $a1 +/* 0AA1F0 7F0756C0 8C430014 */ lw $v1, 0x14($v0) +/* 0AA1F4 7F0756C4 10600002 */ beqz $v1, .L7F0756D0 +/* 0AA1F8 7F0756C8 0078C821 */ addu $t9, $v1, $t8 +/* 0AA1FC 7F0756CC AC590014 */ sw $t9, 0x14($v0) +.L7F0756D0: +/* 0AA200 7F0756D0 100000DD */ b .L7F075A48 +/* 0AA204 7F0756D4 8C830014 */ lw $v1, 0x14($a0) +.L7F0756D8: +/* 0AA208 7F0756D8 8C820004 */ lw $v0, 4($a0) +/* 0AA20C 7F0756DC 00C55823 */ subu $t3, $a2, $a1 +/* 0AA210 7F0756E0 8C43000C */ lw $v1, 0xc($v0) +/* 0AA214 7F0756E4 10600002 */ beqz $v1, .L7F0756F0 +/* 0AA218 7F0756E8 006B6021 */ addu $t4, $v1, $t3 +/* 0AA21C 7F0756EC AC4C000C */ sw $t4, 0xc($v0) +.L7F0756F0: +/* 0AA220 7F0756F0 AC460008 */ sw $a2, 8($v0) +/* 0AA224 7F0756F4 100000D4 */ b .L7F075A48 +/* 0AA228 7F0756F8 8C830014 */ lw $v1, 0x14($a0) +.L7F0756FC: +/* 0AA22C 7F0756FC 8C870004 */ lw $a3, 4($a0) +/* 0AA230 7F075700 00C56823 */ subu $t5, $a2, $a1 +/* 0AA234 7F075704 00001025 */ move $v0, $zero +/* 0AA238 7F075708 8CE30008 */ lw $v1, 8($a3) +/* 0AA23C 7F07570C 00C57823 */ subu $t7, $a2, $a1 +/* 0AA240 7F075710 00C5C823 */ subu $t9, $a2, $a1 +/* 0AA244 7F075714 10600002 */ beqz $v1, .L7F075720 +/* 0AA248 7F075718 006D7021 */ addu $t6, $v1, $t5 +/* 0AA24C 7F07571C ACEE0008 */ sw $t6, 8($a3) +.L7F075720: +/* 0AA250 7F075720 8CE30010 */ lw $v1, 0x10($a3) +/* 0AA254 7F075724 00004025 */ move $t0, $zero +/* 0AA258 7F075728 10600002 */ beqz $v1, .L7F075734 +/* 0AA25C 7F07572C 006FC021 */ addu $t8, $v1, $t7 +/* 0AA260 7F075730 ACF80010 */ sw $t8, 0x10($a3) +.L7F075734: +/* 0AA264 7F075734 8CE30014 */ lw $v1, 0x14($a3) +/* 0AA268 7F075738 10600002 */ beqz $v1, .L7F075744 +/* 0AA26C 7F07573C 00795821 */ addu $t3, $v1, $t9 +/* 0AA270 7F075740 ACEB0014 */ sw $t3, 0x14($a3) +.L7F075744: +/* 0AA274 7F075744 84E3000E */ lh $v1, 0xe($a3) +/* 0AA278 7F075748 5860000E */ blezl $v1, .L7F075784 +/* 0AA27C 7F07574C ACE6001C */ sw $a2, 0x1c($a3) +.L7F075750: +/* 0AA280 7F075750 8CEC0010 */ lw $t4, 0x10($a3) +/* 0AA284 7F075754 00C56823 */ subu $t5, $a2, $a1 +/* 0AA288 7F075758 24420001 */ addiu $v0, $v0, 1 +/* 0AA28C 7F07575C 01884821 */ addu $t1, $t4, $t0 +/* 0AA290 7F075760 8D2A0008 */ lw $t2, 8($t1) +/* 0AA294 7F075764 11400003 */ beqz $t2, .L7F075774 +/* 0AA298 7F075768 014D7021 */ addu $t6, $t2, $t5 +/* 0AA29C 7F07576C AD2E0008 */ sw $t6, 8($t1) +/* 0AA2A0 7F075770 84E3000E */ lh $v1, 0xe($a3) +.L7F075774: +/* 0AA2A4 7F075774 0043082A */ slt $at, $v0, $v1 +/* 0AA2A8 7F075778 1420FFF5 */ bnez $at, .L7F075750 +/* 0AA2AC 7F07577C 25080010 */ addiu $t0, $t0, 0x10 +/* 0AA2B0 7F075780 ACE6001C */ sw $a2, 0x1c($a3) +.L7F075784: +/* 0AA2B4 7F075784 100000B0 */ b .L7F075A48 +/* 0AA2B8 7F075788 8C830014 */ lw $v1, 0x14($a0) +.L7F07578C: +/* 0AA2BC 7F07578C 8C820004 */ lw $v0, 4($a0) +/* 0AA2C0 7F075790 00C57823 */ subu $t7, $a2, $a1 +/* 0AA2C4 7F075794 8C430004 */ lw $v1, 4($v0) +/* 0AA2C8 7F075798 10600002 */ beqz $v1, .L7F0757A4 +/* 0AA2CC 7F07579C 006FC021 */ addu $t8, $v1, $t7 +/* 0AA2D0 7F0757A0 AC580004 */ sw $t8, 4($v0) +.L7F0757A4: +/* 0AA2D4 7F0757A4 100000A8 */ b .L7F075A48 +/* 0AA2D8 7F0757A8 8C830014 */ lw $v1, 0x14($a0) +.L7F0757AC: +/* 0AA2DC 7F0757AC 8C870004 */ lw $a3, 4($a0) +/* 0AA2E0 7F0757B0 00C5C823 */ subu $t9, $a2, $a1 +/* 0AA2E4 7F0757B4 00001025 */ move $v0, $zero +/* 0AA2E8 7F0757B8 8CE30004 */ lw $v1, 4($a3) +/* 0AA2EC 7F0757BC 00C56023 */ subu $t4, $a2, $a1 +/* 0AA2F0 7F0757C0 00C57023 */ subu $t6, $a2, $a1 +/* 0AA2F4 7F0757C4 10600002 */ beqz $v1, .L7F0757D0 +/* 0AA2F8 7F0757C8 00795821 */ addu $t3, $v1, $t9 +/* 0AA2FC 7F0757CC ACEB0004 */ sw $t3, 4($a3) +.L7F0757D0: +/* 0AA300 7F0757D0 8CE30008 */ lw $v1, 8($a3) +/* 0AA304 7F0757D4 00004025 */ move $t0, $zero +/* 0AA308 7F0757D8 10600002 */ beqz $v1, .L7F0757E4 +/* 0AA30C 7F0757DC 006C6821 */ addu $t5, $v1, $t4 +/* 0AA310 7F0757E0 ACED0008 */ sw $t5, 8($a3) +.L7F0757E4: +/* 0AA314 7F0757E4 8CE3000C */ lw $v1, 0xc($a3) +/* 0AA318 7F0757E8 10600002 */ beqz $v1, .L7F0757F4 +/* 0AA31C 7F0757EC 006E7821 */ addu $t7, $v1, $t6 +/* 0AA320 7F0757F0 ACEF000C */ sw $t7, 0xc($a3) +.L7F0757F4: +/* 0AA324 7F0757F4 8CE30000 */ lw $v1, ($a3) +/* 0AA328 7F0757F8 5860000E */ blezl $v1, .L7F075834 +/* 0AA32C 7F0757FC ACE601A4 */ sw $a2, 0x1a4($a3) +.L7F075800: +/* 0AA330 7F075800 8CF80004 */ lw $t8, 4($a3) +/* 0AA334 7F075804 00C5C823 */ subu $t9, $a2, $a1 +/* 0AA338 7F075808 24420001 */ addiu $v0, $v0, 1 +/* 0AA33C 7F07580C 03084821 */ addu $t1, $t8, $t0 +/* 0AA340 7F075810 8D2A0004 */ lw $t2, 4($t1) +/* 0AA344 7F075814 11400003 */ beqz $t2, .L7F075824 +/* 0AA348 7F075818 01595821 */ addu $t3, $t2, $t9 +/* 0AA34C 7F07581C AD2B0004 */ sw $t3, 4($t1) +/* 0AA350 7F075820 8CE30000 */ lw $v1, ($a3) +.L7F075824: +/* 0AA354 7F075824 0043082A */ slt $at, $v0, $v1 +/* 0AA358 7F075828 1420FFF5 */ bnez $at, .L7F075800 +/* 0AA35C 7F07582C 25080008 */ addiu $t0, $t0, 8 +/* 0AA360 7F075830 ACE601A4 */ sw $a2, 0x1a4($a3) +.L7F075834: +/* 0AA364 7F075834 10000084 */ b .L7F075A48 +/* 0AA368 7F075838 8C830014 */ lw $v1, 0x14($a0) +.L7F07583C: +/* 0AA36C 7F07583C 8C870004 */ lw $a3, 4($a0) +/* 0AA370 7F075840 00C56023 */ subu $t4, $a2, $a1 +/* 0AA374 7F075844 00001025 */ move $v0, $zero +/* 0AA378 7F075848 8CE30000 */ lw $v1, ($a3) +/* 0AA37C 7F07584C 00C57023 */ subu $t6, $a2, $a1 +/* 0AA380 7F075850 00C5C023 */ subu $t8, $a2, $a1 +/* 0AA384 7F075854 10600002 */ beqz $v1, .L7F075860 +/* 0AA388 7F075858 006C6821 */ addu $t5, $v1, $t4 +/* 0AA38C 7F07585C ACED0000 */ sw $t5, ($a3) +.L7F075860: +/* 0AA390 7F075860 8CE30004 */ lw $v1, 4($a3) +/* 0AA394 7F075864 00C55823 */ subu $t3, $a2, $a1 +/* 0AA398 7F075868 00C56823 */ subu $t5, $a2, $a1 +/* 0AA39C 7F07586C 10600002 */ beqz $v1, .L7F075878 +/* 0AA3A0 7F075870 006E7821 */ addu $t7, $v1, $t6 +/* 0AA3A4 7F075874 ACEF0004 */ sw $t7, 4($a3) +.L7F075878: +/* 0AA3A8 7F075878 8CE3000C */ lw $v1, 0xc($a3) +/* 0AA3AC 7F07587C 00004025 */ move $t0, $zero +/* 0AA3B0 7F075880 10600002 */ beqz $v1, .L7F07588C +/* 0AA3B4 7F075884 0078C821 */ addu $t9, $v1, $t8 +/* 0AA3B8 7F075888 ACF9000C */ sw $t9, 0xc($a3) +.L7F07588C: +/* 0AA3BC 7F07588C 8CE30010 */ lw $v1, 0x10($a3) +/* 0AA3C0 7F075890 10600002 */ beqz $v1, .L7F07589C +/* 0AA3C4 7F075894 006B6021 */ addu $t4, $v1, $t3 +/* 0AA3C8 7F075898 ACEC0010 */ sw $t4, 0x10($a3) +.L7F07589C: +/* 0AA3CC 7F07589C 8CE30014 */ lw $v1, 0x14($a3) +/* 0AA3D0 7F0758A0 10600002 */ beqz $v1, .L7F0758AC +/* 0AA3D4 7F0758A4 006D7021 */ addu $t6, $v1, $t5 +/* 0AA3D8 7F0758A8 ACEE0014 */ sw $t6, 0x14($a3) +.L7F0758AC: +/* 0AA3DC 7F0758AC 8CE30008 */ lw $v1, 8($a3) +/* 0AA3E0 7F0758B0 5860000E */ blezl $v1, .L7F0758EC +/* 0AA3E4 7F0758B4 ACE601AC */ sw $a2, 0x1ac($a3) +.L7F0758B8: +/* 0AA3E8 7F0758B8 8CEF000C */ lw $t7, 0xc($a3) +/* 0AA3EC 7F0758BC 00C5C023 */ subu $t8, $a2, $a1 +/* 0AA3F0 7F0758C0 24420001 */ addiu $v0, $v0, 1 +/* 0AA3F4 7F0758C4 01E84821 */ addu $t1, $t7, $t0 +/* 0AA3F8 7F0758C8 8D2A0004 */ lw $t2, 4($t1) +/* 0AA3FC 7F0758CC 11400003 */ beqz $t2, .L7F0758DC +/* 0AA400 7F0758D0 0158C821 */ addu $t9, $t2, $t8 +/* 0AA404 7F0758D4 AD390004 */ sw $t9, 4($t1) +/* 0AA408 7F0758D8 8CE30008 */ lw $v1, 8($a3) +.L7F0758DC: +/* 0AA40C 7F0758DC 0043082A */ slt $at, $v0, $v1 +/* 0AA410 7F0758E0 1420FFF5 */ bnez $at, .L7F0758B8 +/* 0AA414 7F0758E4 25080008 */ addiu $t0, $t0, 8 +/* 0AA418 7F0758E8 ACE601AC */ sw $a2, 0x1ac($a3) +.L7F0758EC: +/* 0AA41C 7F0758EC 10000056 */ b .L7F075A48 +/* 0AA420 7F0758F0 8C830014 */ lw $v1, 0x14($a0) +.L7F0758F4: +/* 0AA424 7F0758F4 8C820004 */ lw $v0, 4($a0) +/* 0AA428 7F0758F8 AC460014 */ sw $a2, 0x14($v0) +/* 0AA42C 7F0758FC 10000052 */ b .L7F075A48 +/* 0AA430 7F075900 8C830014 */ lw $v1, 0x14($a0) +.L7F075904: +/* 0AA434 7F075904 8C820004 */ lw $v0, 4($a0) +/* 0AA438 7F075908 00C55823 */ subu $t3, $a2, $a1 +/* 0AA43C 7F07590C 8C470008 */ lw $a3, 8($v0) +/* 0AA440 7F075910 10E00003 */ beqz $a3, .L7F075920 +/* 0AA444 7F075914 00EB6021 */ addu $t4, $a3, $t3 +/* 0AA448 7F075918 AC4C0008 */ sw $t4, 8($v0) +/* 0AA44C 7F07591C 01803825 */ move $a3, $t4 +.L7F075920: +/* 0AA450 7F075920 AC870014 */ sw $a3, 0x14($a0) +/* 0AA454 7F075924 10000048 */ b .L7F075A48 +/* 0AA458 7F075928 00E01825 */ move $v1, $a3 +.L7F07592C: +/* 0AA45C 7F07592C 8C820004 */ lw $v0, 4($a0) +/* 0AA460 7F075930 00C56823 */ subu $t5, $a2, $a1 +/* 0AA464 7F075934 8C430000 */ lw $v1, ($v0) +/* 0AA468 7F075938 10600002 */ beqz $v1, .L7F075944 +/* 0AA46C 7F07593C 006D7021 */ addu $t6, $v1, $t5 +/* 0AA470 7F075940 AC4E0000 */ sw $t6, ($v0) +.L7F075944: +/* 0AA474 7F075944 10000040 */ b .L7F075A48 +/* 0AA478 7F075948 8C830014 */ lw $v1, 0x14($a0) +.L7F07594C: +/* 0AA47C 7F07594C 8C820004 */ lw $v0, 4($a0) +/* 0AA480 7F075950 00C57823 */ subu $t7, $a2, $a1 +/* 0AA484 7F075954 00C5C823 */ subu $t9, $a2, $a1 +/* 0AA488 7F075958 8C430018 */ lw $v1, 0x18($v0) +/* 0AA48C 7F07595C 10600002 */ beqz $v1, .L7F075968 +/* 0AA490 7F075960 006FC021 */ addu $t8, $v1, $t7 +/* 0AA494 7F075964 AC580018 */ sw $t8, 0x18($v0) +.L7F075968: +/* 0AA498 7F075968 8C43001C */ lw $v1, 0x1c($v0) +/* 0AA49C 7F07596C 10600002 */ beqz $v1, .L7F075978 +/* 0AA4A0 7F075970 00795821 */ addu $t3, $v1, $t9 +/* 0AA4A4 7F075974 AC4B001C */ sw $t3, 0x1c($v0) +.L7F075978: +/* 0AA4A8 7F075978 10000033 */ b .L7F075A48 +/* 0AA4AC 7F07597C 8C830014 */ lw $v1, 0x14($a0) +.L7F075980: +/* 0AA4B0 7F075980 8C820004 */ lw $v0, 4($a0) +/* 0AA4B4 7F075984 00C56023 */ subu $t4, $a2, $a1 +/* 0AA4B8 7F075988 8C430014 */ lw $v1, 0x14($v0) +/* 0AA4BC 7F07598C 10600002 */ beqz $v1, .L7F075998 +/* 0AA4C0 7F075990 006C6821 */ addu $t5, $v1, $t4 +/* 0AA4C4 7F075994 AC4D0014 */ sw $t5, 0x14($v0) +.L7F075998: +/* 0AA4C8 7F075998 1000002B */ b .L7F075A48 +/* 0AA4CC 7F07599C 8C830014 */ lw $v1, 0x14($a0) +.L7F0759A0: +/* 0AA4D0 7F0759A0 8C820004 */ lw $v0, 4($a0) +/* 0AA4D4 7F0759A4 00C57023 */ subu $t6, $a2, $a1 +/* 0AA4D8 7F0759A8 8C43003C */ lw $v1, 0x3c($v0) +/* 0AA4DC 7F0759AC 10600002 */ beqz $v1, .L7F0759B8 +/* 0AA4E0 7F0759B0 006E7821 */ addu $t7, $v1, $t6 +/* 0AA4E4 7F0759B4 AC4F003C */ sw $t7, 0x3c($v0) +.L7F0759B8: +/* 0AA4E8 7F0759B8 AC460048 */ sw $a2, 0x48($v0) +/* 0AA4EC 7F0759BC 10000022 */ b .L7F075A48 +/* 0AA4F0 7F0759C0 8C830014 */ lw $v1, 0x14($a0) +.L7F0759C4: +/* 0AA4F4 7F0759C4 8C820004 */ lw $v0, 4($a0) +/* 0AA4F8 7F0759C8 00C5C023 */ subu $t8, $a2, $a1 +/* 0AA4FC 7F0759CC 8C430018 */ lw $v1, 0x18($v0) +/* 0AA500 7F0759D0 10600002 */ beqz $v1, .L7F0759DC +/* 0AA504 7F0759D4 0078C821 */ addu $t9, $v1, $t8 +/* 0AA508 7F0759D8 AC590018 */ sw $t9, 0x18($v0) +.L7F0759DC: +/* 0AA50C 7F0759DC AC460024 */ sw $a2, 0x24($v0) +/* 0AA510 7F0759E0 10000019 */ b .L7F075A48 +/* 0AA514 7F0759E4 8C830014 */ lw $v1, 0x14($a0) +.L7F0759E8: +/* 0AA518 7F0759E8 8C820004 */ lw $v0, 4($a0) +/* 0AA51C 7F0759EC 00C55823 */ subu $t3, $a2, $a1 +/* 0AA520 7F0759F0 00C56823 */ subu $t5, $a2, $a1 +/* 0AA524 7F0759F4 8C430010 */ lw $v1, 0x10($v0) +/* 0AA528 7F0759F8 10600002 */ beqz $v1, .L7F075A04 +/* 0AA52C 7F0759FC 006B6021 */ addu $t4, $v1, $t3 +/* 0AA530 7F075A00 AC4C0010 */ sw $t4, 0x10($v0) +.L7F075A04: +/* 0AA534 7F075A04 8C430014 */ lw $v1, 0x14($v0) +/* 0AA538 7F075A08 10600002 */ beqz $v1, .L7F075A14 +/* 0AA53C 7F075A0C 006D7021 */ addu $t6, $v1, $t5 +/* 0AA540 7F075A10 AC4E0014 */ sw $t6, 0x14($v0) +.L7F075A14: +/* 0AA544 7F075A14 AC46001C */ sw $a2, 0x1c($v0) +/* 0AA548 7F075A18 1000000B */ b .L7F075A48 +/* 0AA54C 7F075A1C 8C830014 */ lw $v1, 0x14($a0) +.L7F075A20: +/* 0AA550 7F075A20 8C820004 */ lw $v0, 4($a0) +/* 0AA554 7F075A24 00C57823 */ subu $t7, $a2, $a1 +/* 0AA558 7F075A28 8C430004 */ lw $v1, 4($v0) +/* 0AA55C 7F075A2C 10600002 */ beqz $v1, .L7F075A38 +/* 0AA560 7F075A30 006FC021 */ addu $t8, $v1, $t7 +/* 0AA564 7F075A34 AC580004 */ sw $t8, 4($v0) +.L7F075A38: +/* 0AA568 7F075A38 AC46000C */ sw $a2, 0xc($v0) +/* 0AA56C 7F075A3C 10000002 */ b .L7F075A48 +/* 0AA570 7F075A40 8C830014 */ lw $v1, 0x14($a0) +def_7F075670: +.L7F075A44: +/* 0AA574 7F075A44 8C830014 */ lw $v1, 0x14($a0) +.L7F075A48: +/* 0AA578 7F075A48 10600003 */ beqz $v1, .L7F075A58 +/* 0AA57C 7F075A4C 00000000 */ nop +/* 0AA580 7F075A50 1000000B */ b .L7F075A80 +/* 0AA584 7F075A54 00602025 */ move $a0, $v1 +.L7F075A58: +/* 0AA588 7F075A58 10800009 */ beqz $a0, .L7F075A80 +/* 0AA58C 7F075A5C 00000000 */ nop +/* 0AA590 7F075A60 8C83000C */ lw $v1, 0xc($a0) +.L7F075A64: +/* 0AA594 7F075A64 50600004 */ beql $v1, $zero, .L7F075A78 +/* 0AA598 7F075A68 8C840008 */ lw $a0, 8($a0) +/* 0AA59C 7F075A6C 10000004 */ b .L7F075A80 +/* 0AA5A0 7F075A70 00602025 */ move $a0, $v1 +/* 0AA5A4 7F075A74 8C840008 */ lw $a0, 8($a0) +.L7F075A78: +/* 0AA5A8 7F075A78 5480FFFA */ bnezl $a0, .L7F075A64 +/* 0AA5AC 7F075A7C 8C83000C */ lw $v1, 0xc($a0) +.L7F075A80: +/* 0AA5B0 7F075A80 5480FED9 */ bnezl $a0, .L7F0755E8 +/* 0AA5B4 7F075A84 94820000 */ lhu $v0, ($a0) +.L7F075A88: +/* 0AA5B8 7F075A88 03E00008 */ jr $ra +/* 0AA5BC 7F075A8C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F075A90(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F075A90 +/* 0AA5C0 7F075A90 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0AA5C4 7F075A94 AFBF001C */ sw $ra, 0x1c($sp) +/* 0AA5C8 7F075A98 AFB10018 */ sw $s1, 0x18($sp) +/* 0AA5CC 7F075A9C AFB00014 */ sw $s0, 0x14($sp) +/* 0AA5D0 7F075AA0 8487000C */ lh $a3, 0xc($a0) +/* 0AA5D4 7F075AA4 00808025 */ move $s0, $a0 +/* 0AA5D8 7F075AA8 00A08825 */ move $s1, $a1 +/* 0AA5DC 7F075AAC 18E0000E */ blez $a3, .L7F075AE8 +/* 0AA5E0 7F075AB0 00001025 */ move $v0, $zero +/* 0AA5E4 7F075AB4 00001825 */ move $v1, $zero +.L7F075AB8: +/* 0AA5E8 7F075AB8 8E0E0008 */ lw $t6, 8($s0) +/* 0AA5EC 7F075ABC 00D17823 */ subu $t7, $a2, $s1 +/* 0AA5F0 7F075AC0 24420001 */ addiu $v0, $v0, 1 +/* 0AA5F4 7F075AC4 01C32021 */ addu $a0, $t6, $v1 +/* 0AA5F8 7F075AC8 8C850000 */ lw $a1, ($a0) +/* 0AA5FC 7F075ACC 10A00003 */ beqz $a1, .L7F075ADC +/* 0AA600 7F075AD0 00AFC021 */ addu $t8, $a1, $t7 +/* 0AA604 7F075AD4 AC980000 */ sw $t8, ($a0) +/* 0AA608 7F075AD8 8607000C */ lh $a3, 0xc($s0) +.L7F075ADC: +/* 0AA60C 7F075ADC 0047082A */ slt $at, $v0, $a3 +/* 0AA610 7F075AE0 1420FFF5 */ bnez $at, .L7F075AB8 +/* 0AA614 7F075AE4 24630004 */ addiu $v1, $v1, 4 +.L7F075AE8: +/* 0AA618 7F075AE8 8E040000 */ lw $a0, ($s0) +/* 0AA61C 7F075AEC 0FC1D577 */ jal convert_obj_microcode_offset_to_rdram_addr +/* 0AA620 7F075AF0 02202825 */ move $a1, $s1 +/* 0AA624 7F075AF4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AA628 7F075AF8 8FB00014 */ lw $s0, 0x14($sp) +/* 0AA62C 7F075AFC 8FB10018 */ lw $s1, 0x18($sp) +/* 0AA630 7F075B00 03E00008 */ jr $ra +/* 0AA634 7F075B04 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F075B08(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F075B08 +/* 0AA638 7F075B08 AFA40000 */ sw $a0, ($sp) +/* 0AA63C 7F075B0C AFA50004 */ sw $a1, 4($sp) +/* 0AA640 7F075B10 AFA60008 */ sw $a2, 8($sp) +/* 0AA644 7F075B14 03E00008 */ jr $ra +/* 0AA648 7F075B18 AFA7000C */ sw $a3, 0xc($sp) +) +#endif + + + + + +#ifdef NONMATCHING +void set_microcode_entry_numbers(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80054E74*/ +glabel jpt_80054E74 +.word .L7F075B68 +.word .L7F075C84 +.word .L7F075C84 +.word .L7F075C84 +.word .L7F075C84 +.word .L7F075C84 +.word .L7F075B84 +.word .L7F075BA0 +.word .L7F075C00 +.word .L7F075C84 +.word .L7F075C30 +.word .L7F075C4C +.word .L7F075C84 +.word .L7F075C84 +.word .L7F075C84 +.word .L7F075C84 +.word .L7F075C84 +.word .L7F075BC0 +.word .L7F075C84 +.word .L7F075C84 +.word .L7F075C84 +.word .L7F075C84 +.word .L7F075BE0 +.word .L7F075C68 + +.text +glabel set_microcode_entry_numbers +/* 0AA64C 7F075B1C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0AA650 7F075B20 AFB10018 */ sw $s1, 0x18($sp) +/* 0AA654 7F075B24 AFB00014 */ sw $s0, 0x14($sp) +/* 0AA658 7F075B28 AFBF001C */ sw $ra, 0x1c($sp) +/* 0AA65C 7F075B2C 00803025 */ move $a2, $a0 +/* 0AA660 7F075B30 00008825 */ move $s1, $zero +/* 0AA664 7F075B34 10800069 */ beqz $a0, .L7F075CDC +/* 0AA668 7F075B38 00808025 */ move $s0, $a0 +/* 0AA66C 7F075B3C 96020000 */ lhu $v0, ($s0) +.L7F075B40: +/* 0AA670 7F075B40 304E00FF */ andi $t6, $v0, 0xff +/* 0AA674 7F075B44 25CFFFFF */ addiu $t7, $t6, -1 +/* 0AA678 7F075B48 2DE10018 */ sltiu $at, $t7, 0x18 +/* 0AA67C 7F075B4C 1020004D */ beqz $at, .L7F075C84 +/* 0AA680 7F075B50 000F7880 */ sll $t7, $t7, 2 +/* 0AA684 7F075B54 3C018005 */ lui $at, %hi(jpt_80054E74) +/* 0AA688 7F075B58 002F0821 */ addu $at, $at, $t7 +/* 0AA68C 7F075B5C 8C2F4E74 */ lw $t7, %lo(jpt_80054E74)($at) +.L7F075B60: +/* 0AA690 7F075B60 01E00008 */ jr $t7 +/* 0AA694 7F075B64 00000000 */ nop +.L7F075B68: +/* 0AA698 7F075B68 8E020004 */ lw $v0, 4($s0) +/* 0AA69C 7F075B6C A451000C */ sh $s1, 0xc($v0) +/* 0AA6A0 7F075B70 26310018 */ addiu $s1, $s1, 0x18 +/* 0AA6A4 7F075B74 3238FFFF */ andi $t8, $s1, 0xffff +/* 0AA6A8 7F075B78 03008825 */ move $s1, $t8 +/* 0AA6AC 7F075B7C 10000042 */ b .L7F075C88 +/* 0AA6B0 7F075B80 8E030014 */ lw $v1, 0x14($s0) +.L7F075B84: +/* 0AA6B4 7F075B84 8E020004 */ lw $v0, 4($s0) +/* 0AA6B8 7F075B88 A45101AA */ sh $s1, 0x1aa($v0) +/* 0AA6BC 7F075B8C 26310001 */ addiu $s1, $s1, 1 +/* 0AA6C0 7F075B90 3239FFFF */ andi $t9, $s1, 0xffff +/* 0AA6C4 7F075B94 03208825 */ move $s1, $t9 +/* 0AA6C8 7F075B98 1000003B */ b .L7F075C88 +/* 0AA6CC 7F075B9C 8E030014 */ lw $v1, 0x14($s0) +.L7F075BA0: +/* 0AA6D0 7F075BA0 8E020004 */ lw $v0, 4($s0) +/* 0AA6D4 7F075BA4 A451000C */ sh $s1, 0xc($v0) +/* 0AA6D8 7F075BA8 8C430008 */ lw $v1, 8($v0) +/* 0AA6DC 7F075BAC 26310001 */ addiu $s1, $s1, 1 +/* 0AA6E0 7F075BB0 3228FFFF */ andi $t0, $s1, 0xffff +/* 0AA6E4 7F075BB4 01008825 */ move $s1, $t0 +/* 0AA6E8 7F075BB8 10000033 */ b .L7F075C88 +/* 0AA6EC 7F075BBC AE030014 */ sw $v1, 0x14($s0) +.L7F075BC0: +/* 0AA6F0 7F075BC0 8E020004 */ lw $v0, 4($s0) +/* 0AA6F4 7F075BC4 A4510004 */ sh $s1, 4($v0) +/* 0AA6F8 7F075BC8 8C430000 */ lw $v1, ($v0) +/* 0AA6FC 7F075BCC 26310001 */ addiu $s1, $s1, 1 +/* 0AA700 7F075BD0 322AFFFF */ andi $t2, $s1, 0xffff +/* 0AA704 7F075BD4 01408825 */ move $s1, $t2 +/* 0AA708 7F075BD8 1000002B */ b .L7F075C88 +/* 0AA70C 7F075BDC AE030014 */ sw $v1, 0x14($s0) +.L7F075BE0: +/* 0AA710 7F075BE0 8E020004 */ lw $v0, 4($s0) +/* 0AA714 7F075BE4 00001825 */ move $v1, $zero +/* 0AA718 7F075BE8 A4510000 */ sh $s1, ($v0) +/* 0AA71C 7F075BEC 26310002 */ addiu $s1, $s1, 2 +/* 0AA720 7F075BF0 322CFFFF */ andi $t4, $s1, 0xffff +/* 0AA724 7F075BF4 01808825 */ move $s1, $t4 +/* 0AA728 7F075BF8 10000023 */ b .L7F075C88 +/* 0AA72C 7F075BFC AE000014 */ sw $zero, 0x14($s0) +.L7F075C00: +/* 0AA730 7F075C00 8E020004 */ lw $v0, 4($s0) +/* 0AA734 7F075C04 02002025 */ move $a0, $s0 +/* 0AA738 7F075C08 00002825 */ move $a1, $zero +/* 0AA73C 7F075C0C A4510022 */ sh $s1, 0x22($v0) +/* 0AA740 7F075C10 26310001 */ addiu $s1, $s1, 1 +/* 0AA744 7F075C14 322DFFFF */ andi $t5, $s1, 0xffff +/* 0AA748 7F075C18 01A08825 */ move $s1, $t5 +/* 0AA74C 7F075C1C 0FC1BA95 */ jal sub_GAME_7F06EA54 +/* 0AA750 7F075C20 AFA60020 */ sw $a2, 0x20($sp) +/* 0AA754 7F075C24 8FA60020 */ lw $a2, 0x20($sp) +/* 0AA758 7F075C28 10000017 */ b .L7F075C88 +/* 0AA75C 7F075C2C 8E030014 */ lw $v1, 0x14($s0) +.L7F075C30: +/* 0AA760 7F075C30 8E020004 */ lw $v0, 4($s0) +/* 0AA764 7F075C34 A4510044 */ sh $s1, 0x44($v0) +/* 0AA768 7F075C38 26310001 */ addiu $s1, $s1, 1 +/* 0AA76C 7F075C3C 322EFFFF */ andi $t6, $s1, 0xffff +/* 0AA770 7F075C40 01C08825 */ move $s1, $t6 +/* 0AA774 7F075C44 10000010 */ b .L7F075C88 +/* 0AA778 7F075C48 8E030014 */ lw $v1, 0x14($s0) +.L7F075C4C: +/* 0AA77C 7F075C4C 8E020004 */ lw $v0, 4($s0) +/* 0AA780 7F075C50 A4510020 */ sh $s1, 0x20($v0) +/* 0AA784 7F075C54 26310001 */ addiu $s1, $s1, 1 +/* 0AA788 7F075C58 322FFFFF */ andi $t7, $s1, 0xffff +/* 0AA78C 7F075C5C 01E08825 */ move $s1, $t7 +/* 0AA790 7F075C60 10000009 */ b .L7F075C88 +/* 0AA794 7F075C64 8E030014 */ lw $v1, 0x14($s0) +.L7F075C68: +/* 0AA798 7F075C68 8E020004 */ lw $v0, 4($s0) +/* 0AA79C 7F075C6C A451001A */ sh $s1, 0x1a($v0) +/* 0AA7A0 7F075C70 26310002 */ addiu $s1, $s1, 2 +/* 0AA7A4 7F075C74 3238FFFF */ andi $t8, $s1, 0xffff +/* 0AA7A8 7F075C78 03008825 */ move $s1, $t8 +/* 0AA7AC 7F075C7C 10000002 */ b .L7F075C88 +/* 0AA7B0 7F075C80 8E030014 */ lw $v1, 0x14($s0) +def_7F075B60: +.L7F075C84: +/* 0AA7B4 7F075C84 8E030014 */ lw $v1, 0x14($s0) +.L7F075C88: +/* 0AA7B8 7F075C88 10600003 */ beqz $v1, .L7F075C98 +/* 0AA7BC 7F075C8C 00000000 */ nop +/* 0AA7C0 7F075C90 10000010 */ b .L7F075CD4 +/* 0AA7C4 7F075C94 00608025 */ move $s0, $v1 +.L7F075C98: +/* 0AA7C8 7F075C98 1200000E */ beqz $s0, .L7F075CD4 +/* 0AA7CC 7F075C9C 00000000 */ nop +/* 0AA7D0 7F075CA0 8CC30008 */ lw $v1, 8($a2) +.L7F075CA4: +/* 0AA7D4 7F075CA4 56030004 */ bnel $s0, $v1, .L7F075CB8 +/* 0AA7D8 7F075CA8 8E02000C */ lw $v0, 0xc($s0) +/* 0AA7DC 7F075CAC 10000009 */ b .L7F075CD4 +/* 0AA7E0 7F075CB0 00008025 */ move $s0, $zero +/* 0AA7E4 7F075CB4 8E02000C */ lw $v0, 0xc($s0) +.L7F075CB8: +/* 0AA7E8 7F075CB8 50400004 */ beql $v0, $zero, .L7F075CCC +/* 0AA7EC 7F075CBC 8E100008 */ lw $s0, 8($s0) +/* 0AA7F0 7F075CC0 10000004 */ b .L7F075CD4 +/* 0AA7F4 7F075CC4 00408025 */ move $s0, $v0 +/* 0AA7F8 7F075CC8 8E100008 */ lw $s0, 8($s0) +.L7F075CCC: +/* 0AA7FC 7F075CCC 1600FFF5 */ bnez $s0, .L7F075CA4 +/* 0AA800 7F075CD0 00000000 */ nop +.L7F075CD4: +/* 0AA804 7F075CD4 5600FF9A */ bnezl $s0, .L7F075B40 +/* 0AA808 7F075CD8 96020000 */ lhu $v0, ($s0) +.L7F075CDC: +/* 0AA80C 7F075CDC 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AA810 7F075CE0 02201025 */ move $v0, $s1 +/* 0AA814 7F075CE4 8FB10018 */ lw $s1, 0x18($sp) +/* 0AA818 7F075CE8 8FB00014 */ lw $s0, 0x14($sp) +/* 0AA81C 7F075CEC 03E00008 */ jr $ra +/* 0AA820 7F075CF0 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void set_objuse_flag_compute_grp_nums_set_obj_loaded(void *arg0, void *arg6) { + // Node 0 + arg0->unk1C = 1; + arg6->unk14 = set_microcode_entry_numbers(*arg0, arg0); + return; + // (possible return value: set_microcode_entry_numbers(*arg0, arg0)) +} + +#else +GLOBAL_ASM( +.text +glabel set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0AA824 7F075CF4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0AA828 7F075CF8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0AA82C 7F075CFC 240E0001 */ li $t6, 1 +/* 0AA830 7F075D00 00802825 */ move $a1, $a0 +/* 0AA834 7F075D04 AC8E001C */ sw $t6, 0x1c($a0) +/* 0AA838 7F075D08 8C840000 */ lw $a0, ($a0) +/* 0AA83C 7F075D0C 0FC1D6C7 */ jal set_microcode_entry_numbers +/* 0AA840 7F075D10 AFA50018 */ sw $a1, 0x18($sp) +/* 0AA844 7F075D14 8FA50018 */ lw $a1, 0x18($sp) +/* 0AA848 7F075D18 A4A20014 */ sh $v0, 0x14($a1) +/* 0AA84C 7F075D1C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AA850 7F075D20 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0AA854 7F075D24 03E00008 */ jr $ra +/* 0AA858 7F075D28 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void unknown_object_microcode_handler(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80054ED4*/ +glabel jpt_80054ED4 +.word .L7F075D88 +.word .L7F075EF4 +.word .L7F075EF4 +.word .L7F075EF4 +.word .L7F075EF4 +.word .L7F075EF4 +.word .L7F075E00 +.word .L7F075E18 +.word .L7F075E78 +.word .L7F075EF4 +.word .L7F075E9C +.word .L7F075EB4 +.word .L7F075EF4 +.word .L7F075EF4 +.word .L7F075EF4 +.word .L7F075EF4 +.word .L7F075EF4 +.word .L7F075E38 +.word .L7F075EF4 +.word .L7F075EF4 +.word .L7F075EF4 +.word .L7F075EF4 +.word .L7F075E5C +.word .L7F075ECC + +.text +glabel unknown_object_microcode_handler +/* 0AA85C 7F075D2C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0AA860 7F075D30 AFB20028 */ sw $s2, 0x28($sp) +/* 0AA864 7F075D34 AFB00020 */ sw $s0, 0x20($sp) +/* 0AA868 7F075D38 00809025 */ move $s2, $a0 +/* 0AA86C 7F075D3C AFBF002C */ sw $ra, 0x2c($sp) +/* 0AA870 7F075D40 AFB10024 */ sw $s1, 0x24($sp) +/* 0AA874 7F075D44 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0AA878 7F075D48 AFA50034 */ sw $a1, 0x34($sp) +/* 0AA87C 7F075D4C 10A0007F */ beqz $a1, .L7F075F4C +/* 0AA880 7F075D50 00A08025 */ move $s0, $a1 +/* 0AA884 7F075D54 4480A000 */ mtc1 $zero, $f20 +/* 0AA888 7F075D58 00000000 */ nop +/* 0AA88C 7F075D5C 96020000 */ lhu $v0, ($s0) +.L7F075D60: +/* 0AA890 7F075D60 304F00FF */ andi $t7, $v0, 0xff +/* 0AA894 7F075D64 25F8FFFF */ addiu $t8, $t7, -1 +/* 0AA898 7F075D68 2F010018 */ sltiu $at, $t8, 0x18 +/* 0AA89C 7F075D6C 10200061 */ beqz $at, .L7F075EF4 +/* 0AA8A0 7F075D70 0018C080 */ sll $t8, $t8, 2 +/* 0AA8A4 7F075D74 3C018005 */ lui $at, %hi(jpt_80054ED4) +/* 0AA8A8 7F075D78 00380821 */ addu $at, $at, $t8 +/* 0AA8AC 7F075D7C 8C384ED4 */ lw $t8, %lo(jpt_80054ED4)($at) +.L7F075D80: +/* 0AA8B0 7F075D80 03000008 */ jr $t8 +/* 0AA8B4 7F075D84 00000000 */ nop +.L7F075D88: +/* 0AA8B8 7F075D88 02402025 */ move $a0, $s2 +/* 0AA8BC 7F075D8C 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0AA8C0 7F075D90 02002825 */ move $a1, $s0 +/* 0AA8C4 7F075D94 A0400000 */ sb $zero, ($v0) +/* 0AA8C8 7F075D98 E4540004 */ swc1 $f20, 4($v0) +/* 0AA8CC 7F075D9C E4540008 */ swc1 $f20, 8($v0) +/* 0AA8D0 7F075DA0 E454000C */ swc1 $f20, 0xc($v0) +/* 0AA8D4 7F075DA4 E4540010 */ swc1 $f20, 0x10($v0) +/* 0AA8D8 7F075DA8 E4540014 */ swc1 $f20, 0x14($v0) +/* 0AA8DC 7F075DAC E4540018 */ swc1 $f20, 0x18($v0) +/* 0AA8E0 7F075DB0 E454001C */ swc1 $f20, 0x1c($v0) +/* 0AA8E4 7F075DB4 A0400001 */ sb $zero, 1($v0) +/* 0AA8E8 7F075DB8 E4540034 */ swc1 $f20, 0x34($v0) +/* 0AA8EC 7F075DBC E4540038 */ swc1 $f20, 0x38($v0) +/* 0AA8F0 7F075DC0 E454003C */ swc1 $f20, 0x3c($v0) +/* 0AA8F4 7F075DC4 E4540030 */ swc1 $f20, 0x30($v0) +/* 0AA8F8 7F075DC8 E4540024 */ swc1 $f20, 0x24($v0) +/* 0AA8FC 7F075DCC E4540028 */ swc1 $f20, 0x28($v0) +/* 0AA900 7F075DD0 E454002C */ swc1 $f20, 0x2c($v0) +/* 0AA904 7F075DD4 E4540020 */ swc1 $f20, 0x20($v0) +/* 0AA908 7F075DD8 A0400002 */ sb $zero, 2($v0) +/* 0AA90C 7F075DDC E454004C */ swc1 $f20, 0x4c($v0) +/* 0AA910 7F075DE0 E4540050 */ swc1 $f20, 0x50($v0) +/* 0AA914 7F075DE4 E4540054 */ swc1 $f20, 0x54($v0) +/* 0AA918 7F075DE8 E4540040 */ swc1 $f20, 0x40($v0) +/* 0AA91C 7F075DEC E4540044 */ swc1 $f20, 0x44($v0) +/* 0AA920 7F075DF0 E4540048 */ swc1 $f20, 0x48($v0) +/* 0AA924 7F075DF4 E454005C */ swc1 $f20, 0x5c($v0) +/* 0AA928 7F075DF8 1000003F */ b .L7F075EF8 +/* 0AA92C 7F075DFC 8E030014 */ lw $v1, 0x14($s0) +.L7F075E00: +/* 0AA930 7F075E00 02402025 */ move $a0, $s2 +/* 0AA934 7F075E04 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0AA938 7F075E08 02002825 */ move $a1, $s0 +/* 0AA93C 7F075E0C AC400000 */ sw $zero, ($v0) +/* 0AA940 7F075E10 10000039 */ b .L7F075EF8 +/* 0AA944 7F075E14 8E030014 */ lw $v1, 0x14($s0) +.L7F075E18: +/* 0AA948 7F075E18 8E110004 */ lw $s1, 4($s0) +/* 0AA94C 7F075E1C 02402025 */ move $a0, $s2 +/* 0AA950 7F075E20 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0AA954 7F075E24 02002825 */ move $a1, $s0 +/* 0AA958 7F075E28 AC400000 */ sw $zero, ($v0) +/* 0AA95C 7F075E2C 8E230008 */ lw $v1, 8($s1) +/* 0AA960 7F075E30 10000031 */ b .L7F075EF8 +/* 0AA964 7F075E34 AE030014 */ sw $v1, 0x14($s0) +.L7F075E38: +/* 0AA968 7F075E38 8E110004 */ lw $s1, 4($s0) +/* 0AA96C 7F075E3C 02402025 */ move $a0, $s2 +/* 0AA970 7F075E40 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0AA974 7F075E44 02002825 */ move $a1, $s0 +/* 0AA978 7F075E48 24080001 */ li $t0, 1 +/* 0AA97C 7F075E4C AC480000 */ sw $t0, ($v0) +/* 0AA980 7F075E50 8E230000 */ lw $v1, ($s1) +/* 0AA984 7F075E54 10000028 */ b .L7F075EF8 +/* 0AA988 7F075E58 AE030014 */ sw $v1, 0x14($s0) +.L7F075E5C: +/* 0AA98C 7F075E5C 02402025 */ move $a0, $s2 +/* 0AA990 7F075E60 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0AA994 7F075E64 02002825 */ move $a1, $s0 +/* 0AA998 7F075E68 AC400000 */ sw $zero, ($v0) +/* 0AA99C 7F075E6C AC400004 */ sw $zero, 4($v0) +/* 0AA9A0 7F075E70 10000021 */ b .L7F075EF8 +/* 0AA9A4 7F075E74 8E030014 */ lw $v1, 0x14($s0) +.L7F075E78: +/* 0AA9A8 7F075E78 02402025 */ move $a0, $s2 +/* 0AA9AC 7F075E7C 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0AA9B0 7F075E80 02002825 */ move $a1, $s0 +/* 0AA9B4 7F075E84 AC400000 */ sw $zero, ($v0) +/* 0AA9B8 7F075E88 02402025 */ move $a0, $s2 +/* 0AA9BC 7F075E8C 0FC1BAC4 */ jal sub_GAME_7F06EB10 +/* 0AA9C0 7F075E90 02002825 */ move $a1, $s0 +/* 0AA9C4 7F075E94 10000018 */ b .L7F075EF8 +/* 0AA9C8 7F075E98 8E030014 */ lw $v1, 0x14($s0) +.L7F075E9C: +/* 0AA9CC 7F075E9C 02402025 */ move $a0, $s2 +/* 0AA9D0 7F075EA0 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0AA9D4 7F075EA4 02002825 */ move $a1, $s0 +/* 0AA9D8 7F075EA8 A4400000 */ sh $zero, ($v0) +/* 0AA9DC 7F075EAC 10000012 */ b .L7F075EF8 +/* 0AA9E0 7F075EB0 8E030014 */ lw $v1, 0x14($s0) +.L7F075EB4: +/* 0AA9E4 7F075EB4 02402025 */ move $a0, $s2 +/* 0AA9E8 7F075EB8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0AA9EC 7F075EBC 02002825 */ move $a1, $s0 +/* 0AA9F0 7F075EC0 A4400000 */ sh $zero, ($v0) +/* 0AA9F4 7F075EC4 1000000C */ b .L7F075EF8 +/* 0AA9F8 7F075EC8 8E030014 */ lw $v1, 0x14($s0) +.L7F075ECC: +/* 0AA9FC 7F075ECC 8E110004 */ lw $s1, 4($s0) +/* 0AAA00 7F075ED0 02402025 */ move $a0, $s2 +/* 0AAA04 7F075ED4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0AAA08 7F075ED8 02002825 */ move $a1, $s0 +/* 0AAA0C 7F075EDC 8E2A0008 */ lw $t2, 8($s1) +/* 0AAA10 7F075EE0 AC4A0000 */ sw $t2, ($v0) +/* 0AAA14 7F075EE4 8E2B0000 */ lw $t3, ($s1) +/* 0AAA18 7F075EE8 AC4B0004 */ sw $t3, 4($v0) +/* 0AAA1C 7F075EEC 10000002 */ b .L7F075EF8 +/* 0AAA20 7F075EF0 8E030014 */ lw $v1, 0x14($s0) +def_7F075D80: +.L7F075EF4: +/* 0AAA24 7F075EF4 8E030014 */ lw $v1, 0x14($s0) +.L7F075EF8: +/* 0AAA28 7F075EF8 10600003 */ beqz $v1, .L7F075F08 +/* 0AAA2C 7F075EFC 00000000 */ nop +/* 0AAA30 7F075F00 10000010 */ b .L7F075F44 +/* 0AAA34 7F075F04 00608025 */ move $s0, $v1 +.L7F075F08: +/* 0AAA38 7F075F08 1200000E */ beqz $s0, .L7F075F44 +/* 0AAA3C 7F075F0C 8FAC0034 */ lw $t4, 0x34($sp) +/* 0AAA40 7F075F10 8D830008 */ lw $v1, 8($t4) +.L7F075F14: +/* 0AAA44 7F075F14 56030004 */ bnel $s0, $v1, .L7F075F28 +/* 0AAA48 7F075F18 8E02000C */ lw $v0, 0xc($s0) +/* 0AAA4C 7F075F1C 10000009 */ b .L7F075F44 +/* 0AAA50 7F075F20 00008025 */ move $s0, $zero +/* 0AAA54 7F075F24 8E02000C */ lw $v0, 0xc($s0) +.L7F075F28: +/* 0AAA58 7F075F28 50400004 */ beql $v0, $zero, .L7F075F3C +/* 0AAA5C 7F075F2C 8E100008 */ lw $s0, 8($s0) +/* 0AAA60 7F075F30 10000004 */ b .L7F075F44 +/* 0AAA64 7F075F34 00408025 */ move $s0, $v0 +/* 0AAA68 7F075F38 8E100008 */ lw $s0, 8($s0) +.L7F075F3C: +/* 0AAA6C 7F075F3C 1600FFF5 */ bnez $s0, .L7F075F14 +/* 0AAA70 7F075F40 00000000 */ nop +.L7F075F44: +/* 0AAA74 7F075F44 5600FF86 */ bnezl $s0, .L7F075D60 +/* 0AAA78 7F075F48 96020000 */ lhu $v0, ($s0) +.L7F075F4C: +/* 0AAA7C 7F075F4C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0AAA80 7F075F50 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0AAA84 7F075F54 8FB00020 */ lw $s0, 0x20($sp) +/* 0AAA88 7F075F58 8FB10024 */ lw $s1, 0x24($sp) +/* 0AAA8C 7F075F5C 8FB20028 */ lw $s2, 0x28($sp) +/* 0AAA90 7F075F60 03E00008 */ jr $ra +/* 0AAA94 7F075F64 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F075F68(void *arg0, void *arg1, ?32 arg2) { + // Node 0 + arg0->unk8 = arg1; + arg0->unk10 = arg2; + arg0->unk2 = (u16)-1; + arg0->unk18 = 0; + arg0->unk1C = 0; + arg0->unk14 = 1.0f; + unknown_object_microcode_handler(*arg1); + return; + // (possible return value: unknown_object_microcode_handler(*arg1)) +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F075F68 +/* 0AAA98 7F075F68 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0AAA9C 7F075F6C AFBF0014 */ sw $ra, 0x14($sp) +/* 0AAAA0 7F075F70 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AAAA4 7F075F74 44812000 */ mtc1 $at, $f4 +/* 0AAAA8 7F075F78 240EFFFF */ li $t6, -1 +/* 0AAAAC 7F075F7C AC850008 */ sw $a1, 8($a0) +/* 0AAAB0 7F075F80 AC860010 */ sw $a2, 0x10($a0) +/* 0AAAB4 7F075F84 A48E0002 */ sh $t6, 2($a0) +/* 0AAAB8 7F075F88 AC800018 */ sw $zero, 0x18($a0) +/* 0AAABC 7F075F8C AC80001C */ sw $zero, 0x1c($a0) +/* 0AAAC0 7F075F90 E4840014 */ swc1 $f4, 0x14($a0) +/* 0AAAC4 7F075F94 0FC1D74B */ jal unknown_object_microcode_handler +/* 0AAAC8 7F075F98 8CA50000 */ lw $a1, ($a1) +/* 0AAACC 7F075F9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AAAD0 7F075FA0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0AAAD4 7F075FA4 03E00008 */ jr $ra +/* 0AAAD8 7F075FA8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F075FAC(s32 arg0, void *arg6) { + // Node 0 + sub_GAME_7F075F68(); + arg6->unk20 = 0; + arg6->unk54 = 0; + arg6->unk26 = (u8)0; + arg6->unk98 = 0; + arg6->unk9C = 0; + arg6->unkA0 = 0; + arg6->unk2C = 0.0f; + arg6->unk4C = 0.0f; + arg6->unk5C = 0.0f; + arg6->unk7C = 0.0f; + arg6->unk84 = 0.0f; + arg6->unk88 = 0.0f; + arg6->unkB0 = 0.0f; + arg6->unk40 = 1.0f; + arg6->unk70 = 1.0f; + arg6->unkA4 = 1.0f; + arg6->unkB8 = 1.0f; + arg6->unk3C = -1.0f; + arg6->unk6C = -1.0f; + return; + // (possible return value: 0.0f) +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F075FAC +/* 0AAADC 7F075FAC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0AAAE0 7F075FB0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0AAAE4 7F075FB4 0FC1D7DA */ jal sub_GAME_7F075F68 +/* 0AAAE8 7F075FB8 AFA40018 */ sw $a0, 0x18($sp) +/* 0AAAEC 7F075FBC 8FA40018 */ lw $a0, 0x18($sp) +/* 0AAAF0 7F075FC0 44800000 */ mtc1 $zero, $f0 +/* 0AAAF4 7F075FC4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0AAAF8 7F075FC8 44811000 */ mtc1 $at, $f2 +/* 0AAAFC 7F075FCC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0AAB00 7F075FD0 44816000 */ mtc1 $at, $f12 +/* 0AAB04 7F075FD4 AC800020 */ sw $zero, 0x20($a0) +/* 0AAB08 7F075FD8 AC800054 */ sw $zero, 0x54($a0) +/* 0AAB0C 7F075FDC A0800026 */ sb $zero, 0x26($a0) +/* 0AAB10 7F075FE0 AC800098 */ sw $zero, 0x98($a0) +/* 0AAB14 7F075FE4 AC80009C */ sw $zero, 0x9c($a0) +/* 0AAB18 7F075FE8 AC8000A0 */ sw $zero, 0xa0($a0) +/* 0AAB1C 7F075FEC E480002C */ swc1 $f0, 0x2c($a0) +/* 0AAB20 7F075FF0 E480004C */ swc1 $f0, 0x4c($a0) +/* 0AAB24 7F075FF4 E480005C */ swc1 $f0, 0x5c($a0) +/* 0AAB28 7F075FF8 E480007C */ swc1 $f0, 0x7c($a0) +/* 0AAB2C 7F075FFC E4800084 */ swc1 $f0, 0x84($a0) +/* 0AAB30 7F076000 E4800088 */ swc1 $f0, 0x88($a0) +/* 0AAB34 7F076004 E48000B0 */ swc1 $f0, 0xb0($a0) +/* 0AAB38 7F076008 E4820040 */ swc1 $f2, 0x40($a0) +/* 0AAB3C 7F07600C E4820070 */ swc1 $f2, 0x70($a0) +/* 0AAB40 7F076010 E48200A4 */ swc1 $f2, 0xa4($a0) +/* 0AAB44 7F076014 E48200B8 */ swc1 $f2, 0xb8($a0) +/* 0AAB48 7F076018 E48C003C */ swc1 $f12, 0x3c($a0) +/* 0AAB4C 7F07601C E48C006C */ swc1 $f12, 0x6c($a0) +/* 0AAB50 7F076020 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AAB54 7F076024 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0AAB58 7F076028 03E00008 */ jr $ra +/* 0AAB5C 7F07602C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F076030(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F076030 +/* 0AAB60 7F076030 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0AAB64 7F076034 AFBF0014 */ sw $ra, 0x14($sp) +/* 0AAB68 7F076038 AFA5001C */ sw $a1, 0x1c($sp) +/* 0AAB6C 7F07603C AFA40018 */ sw $a0, 0x18($sp) +/* 0AAB70 7F076040 AFA70024 */ sw $a3, 0x24($sp) +/* 0AAB74 7F076044 00C02825 */ move $a1, $a2 +/* 0AAB78 7F076048 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0AAB7C 7F07604C AFA60020 */ sw $a2, 0x20($sp) +/* 0AAB80 7F076050 8FA50024 */ lw $a1, 0x24($sp) +/* 0AAB84 7F076054 8FA60020 */ lw $a2, 0x20($sp) +/* 0AAB88 7F076058 8FA7001C */ lw $a3, 0x1c($sp) +/* 0AAB8C 7F07605C AC450000 */ sw $a1, ($v0) +/* 0AAB90 7F076060 8FAE0018 */ lw $t6, 0x18($sp) +/* 0AAB94 7F076064 84F80014 */ lh $t8, 0x14($a3) +/* 0AAB98 7F076068 8DCF0010 */ lw $t7, 0x10($t6) +/* 0AAB9C 7F07606C 0018C880 */ sll $t9, $t8, 2 +/* 0AABA0 7F076070 01F94021 */ addu $t0, $t7, $t9 +/* 0AABA4 7F076074 AC480004 */ sw $t0, 4($v0) +/* 0AABA8 7F076078 8CA30000 */ lw $v1, ($a1) +/* 0AABAC 7F07607C ACC30014 */ sw $v1, 0x14($a2) +/* 0AABB0 7F076080 10600006 */ beqz $v1, .L7F07609C +/* 0AABB4 7F076084 00602025 */ move $a0, $v1 +/* 0AABB8 7F076088 AC660008 */ sw $a2, 8($v1) +.L7F07608C: +/* 0AABBC 7F07608C 8C63000C */ lw $v1, 0xc($v1) +/* 0AABC0 7F076090 5460FFFE */ bnezl $v1, .L7F07608C +/* 0AABC4 7F076094 AC660008 */ sw $a2, 8($v1) +/* 0AABC8 7F076098 8CC40014 */ lw $a0, 0x14($a2) +.L7F07609C: +/* 0AABCC 7F07609C 0FC1D6C7 */ jal set_microcode_entry_numbers +/* 0AABD0 7F0760A0 00000000 */ nop +/* 0AABD4 7F0760A4 8FA7001C */ lw $a3, 0x1c($sp) +/* 0AABD8 7F0760A8 84EA0014 */ lh $t2, 0x14($a3) +/* 0AABDC 7F0760AC 01425821 */ addu $t3, $t2, $v0 +/* 0AABE0 7F0760B0 A4EB0014 */ sh $t3, 0x14($a3) +/* 0AABE4 7F0760B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0AABE8 7F0760B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0AABEC 7F0760BC 03E00008 */ jr $ra +/* 0AABF0 7F0760C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0760C4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80054F34*/ +glabel jpt_80054F34 +.word .L7F076128 +.word .L7F0761CC +.word .L7F0761CC +.word .L7F0761CC +.word .L7F0761A0 +.word .L7F0761C0 +.word .L7F0761CC +.word .L7F0761CC +.word .L7F0761CC +.word .L7F0761CC +.word .L7F0761CC +.word .L7F0761CC +.word .L7F0761CC +.word .L7F0761CC +.word .L7F0761B0 +.word .L7F0761CC +.word .L7F0761CC +.word .L7F0761CC +.word .L7F076188 +.word .L7F0761CC +.word .L7F076158 + +.text +glabel sub_GAME_7F0760C4 +/* 0AABF4 7F0760C4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0AABF8 7F0760C8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0AABFC 7F0760CC AFB30020 */ sw $s3, 0x20($sp) +/* 0AAC00 7F0760D0 AFB2001C */ sw $s2, 0x1c($sp) +/* 0AAC04 7F0760D4 AFB10018 */ sw $s1, 0x18($sp) +/* 0AAC08 7F0760D8 AFB00014 */ sw $s0, 0x14($sp) +/* 0AAC0C 7F0760DC 8CB00000 */ lw $s0, ($a1) +/* 0AAC10 7F0760E0 00A09025 */ move $s2, $a1 +/* 0AAC14 7F0760E4 00C09825 */ move $s3, $a2 +/* 0AAC18 7F0760E8 16000002 */ bnez $s0, .L7F0760F4 +/* 0AAC1C 7F0760EC 00008825 */ move $s1, $zero +/* 0AAC20 7F0760F0 8C900000 */ lw $s0, ($a0) +.L7F0760F4: +/* 0AAC24 7F0760F4 52000049 */ beql $s0, $zero, .L7F07621C +/* 0AAC28 7F0760F8 AE710000 */ sw $s1, ($s3) +/* 0AAC2C 7F0760FC 96020000 */ lhu $v0, ($s0) +.L7F076100: +/* 0AAC30 7F076100 304E00FF */ andi $t6, $v0, 0xff +/* 0AAC34 7F076104 25CFFFFC */ addiu $t7, $t6, -4 +/* 0AAC38 7F076108 2DE10015 */ sltiu $at, $t7, 0x15 +/* 0AAC3C 7F07610C 1020002F */ beqz $at, .L7F0761CC +/* 0AAC40 7F076110 000F7880 */ sll $t7, $t7, 2 +/* 0AAC44 7F076114 3C018005 */ lui $at, %hi(jpt_80054F34) +/* 0AAC48 7F076118 002F0821 */ addu $at, $at, $t7 +/* 0AAC4C 7F07611C 8C2F4F34 */ lw $t7, %lo(jpt_80054F34)($at) +.L7F076120: +/* 0AAC50 7F076120 01E00008 */ jr $t7 +/* 0AAC54 7F076124 00000000 */ nop +.L7F076128: +/* 0AAC58 7F076128 8E580000 */ lw $t8, ($s2) +/* 0AAC5C 7F07612C 8E020004 */ lw $v0, 4($s0) +/* 0AAC60 7F076130 52180004 */ beql $s0, $t8, .L7F076144 +/* 0AAC64 7F076134 8C430004 */ lw $v1, 4($v0) +/* 0AAC68 7F076138 10000024 */ b .L7F0761CC +/* 0AAC6C 7F07613C 8C510000 */ lw $s1, ($v0) +/* 0AAC70 7F076140 8C430004 */ lw $v1, 4($v0) +.L7F076144: +/* 0AAC74 7F076144 8E790000 */ lw $t9, ($s3) +/* 0AAC78 7F076148 10790020 */ beq $v1, $t9, .L7F0761CC +/* 0AAC7C 7F07614C 00000000 */ nop +/* 0AAC80 7F076150 1000001E */ b .L7F0761CC +/* 0AAC84 7F076154 00608825 */ move $s1, $v1 +.L7F076158: +/* 0AAC88 7F076158 8E480000 */ lw $t0, ($s2) +/* 0AAC8C 7F07615C 8E020004 */ lw $v0, 4($s0) +/* 0AAC90 7F076160 52080004 */ beql $s0, $t0, .L7F076174 +/* 0AAC94 7F076164 8C430004 */ lw $v1, 4($v0) +/* 0AAC98 7F076168 10000018 */ b .L7F0761CC +/* 0AAC9C 7F07616C 8C510000 */ lw $s1, ($v0) +/* 0AACA0 7F076170 8C430004 */ lw $v1, 4($v0) +.L7F076174: +/* 0AACA4 7F076174 8E690000 */ lw $t1, ($s3) +/* 0AACA8 7F076178 10690014 */ beq $v1, $t1, .L7F0761CC +/* 0AACAC 7F07617C 00000000 */ nop +/* 0AACB0 7F076180 10000012 */ b .L7F0761CC +/* 0AACB4 7F076184 00608825 */ move $s1, $v1 +.L7F076188: +/* 0AACB8 7F076188 8E4A0000 */ lw $t2, ($s2) +/* 0AACBC 7F07618C 8E020004 */ lw $v0, 4($s0) +/* 0AACC0 7F076190 120A000E */ beq $s0, $t2, .L7F0761CC +/* 0AACC4 7F076194 00000000 */ nop +/* 0AACC8 7F076198 1000000C */ b .L7F0761CC +/* 0AACCC 7F07619C 8C510008 */ lw $s1, 8($v0) +.L7F0761A0: +/* 0AACD0 7F0761A0 8E020004 */ lw $v0, 4($s0) +/* 0AACD4 7F0761A4 8C4B0008 */ lw $t3, 8($v0) +/* 0AACD8 7F0761A8 10000008 */ b .L7F0761CC +/* 0AACDC 7F0761AC AE0B0014 */ sw $t3, 0x14($s0) +.L7F0761B0: +/* 0AACE0 7F0761B0 8E020004 */ lw $v0, 4($s0) +/* 0AACE4 7F0761B4 8C4C0000 */ lw $t4, ($v0) +/* 0AACE8 7F0761B8 10000004 */ b .L7F0761CC +/* 0AACEC 7F0761BC AE0C0014 */ sw $t4, 0x14($s0) +.L7F0761C0: +/* 0AACF0 7F0761C0 02002025 */ move $a0, $s0 +/* 0AACF4 7F0761C4 0FC1BA95 */ jal sub_GAME_7F06EA54 +/* 0AACF8 7F0761C8 24050001 */ li $a1, 1 +def_7F076120: +.L7F0761CC: +/* 0AACFC 7F0761CC 56200013 */ bnezl $s1, .L7F07621C +/* 0AAD00 7F0761D0 AE710000 */ sw $s1, ($s3) +/* 0AAD04 7F0761D4 8E020014 */ lw $v0, 0x14($s0) +/* 0AAD08 7F0761D8 10400003 */ beqz $v0, .L7F0761E8 +/* 0AAD0C 7F0761DC 00000000 */ nop +/* 0AAD10 7F0761E0 1000000B */ b .L7F076210 +/* 0AAD14 7F0761E4 00408025 */ move $s0, $v0 +.L7F0761E8: +/* 0AAD18 7F0761E8 12000009 */ beqz $s0, .L7F076210 +/* 0AAD1C 7F0761EC 00000000 */ nop +/* 0AAD20 7F0761F0 8E02000C */ lw $v0, 0xc($s0) +.L7F0761F4: +/* 0AAD24 7F0761F4 50400004 */ beql $v0, $zero, .L7F076208 +/* 0AAD28 7F0761F8 8E100008 */ lw $s0, 8($s0) +/* 0AAD2C 7F0761FC 10000004 */ b .L7F076210 +/* 0AAD30 7F076200 00408025 */ move $s0, $v0 +/* 0AAD34 7F076204 8E100008 */ lw $s0, 8($s0) +.L7F076208: +/* 0AAD38 7F076208 5600FFFA */ bnezl $s0, .L7F0761F4 +/* 0AAD3C 7F07620C 8E02000C */ lw $v0, 0xc($s0) +.L7F076210: +/* 0AAD40 7F076210 5600FFBB */ bnezl $s0, .L7F076100 +/* 0AAD44 7F076214 96020000 */ lhu $v0, ($s0) +/* 0AAD48 7F076218 AE710000 */ sw $s1, ($s3) +.L7F07621C: +/* 0AAD4C 7F07621C AE500000 */ sw $s0, ($s2) +/* 0AAD50 7F076220 8FBF0024 */ lw $ra, 0x24($sp) +/* 0AAD54 7F076224 8FB30020 */ lw $s3, 0x20($sp) +/* 0AAD58 7F076228 8FB2001C */ lw $s2, 0x1c($sp) +/* 0AAD5C 7F07622C 8FB10018 */ lw $s1, 0x18($sp) +/* 0AAD60 7F076230 8FB00014 */ lw $s0, 0x14($sp) +/* 0AAD64 7F076234 03E00008 */ jr $ra +/* 0AAD68 7F076238 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F07623C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F07623C +/* 0AAD6C 7F07623C AFA40000 */ sw $a0, ($sp) +/* 0AAD70 7F076240 94A20000 */ lhu $v0, ($a1) +/* 0AAD74 7F076244 24010004 */ li $at, 4 +/* 0AAD78 7F076248 304E00FF */ andi $t6, $v0, 0xff +/* 0AAD7C 7F07624C 11C10007 */ beq $t6, $at, .L7F07626C +/* 0AAD80 7F076250 24010016 */ li $at, 22 +/* 0AAD84 7F076254 11C1001B */ beq $t6, $at, .L7F0762C4 +/* 0AAD88 7F076258 24010018 */ li $at, 24 +/* 0AAD8C 7F07625C 51C1000F */ beql $t6, $at, .L7F07629C +/* 0AAD90 7F076260 8CA20004 */ lw $v0, 4($a1) +/* 0AAD94 7F076264 03E00008 */ jr $ra +/* 0AAD98 7F076268 00000000 */ nop + +.L7F07626C: +/* 0AAD9C 7F07626C 8CA20004 */ lw $v0, 4($a1) +/* 0AADA0 7F076270 8C4F0000 */ lw $t7, ($v0) +/* 0AADA4 7F076274 54CF0004 */ bnel $a2, $t7, .L7F076288 +/* 0AADA8 7F076278 8C580004 */ lw $t8, 4($v0) +/* 0AADAC 7F07627C 03E00008 */ jr $ra +/* 0AADB0 7F076280 AC470000 */ sw $a3, ($v0) + +/* 0AADB4 7F076284 8C580004 */ lw $t8, 4($v0) +.L7F076288: +/* 0AADB8 7F076288 14D80013 */ bne $a2, $t8, .L7F0762D8 +/* 0AADBC 7F07628C 00000000 */ nop +/* 0AADC0 7F076290 03E00008 */ jr $ra +/* 0AADC4 7F076294 AC470004 */ sw $a3, 4($v0) + +/* 0AADC8 7F076298 8CA20004 */ lw $v0, 4($a1) +.L7F07629C: +/* 0AADCC 7F07629C 8C590000 */ lw $t9, ($v0) +/* 0AADD0 7F0762A0 54D90004 */ bnel $a2, $t9, .L7F0762B4 +/* 0AADD4 7F0762A4 8C480004 */ lw $t0, 4($v0) +/* 0AADD8 7F0762A8 03E00008 */ jr $ra +/* 0AADDC 7F0762AC AC470000 */ sw $a3, ($v0) + +/* 0AADE0 7F0762B0 8C480004 */ lw $t0, 4($v0) +.L7F0762B4: +/* 0AADE4 7F0762B4 14C80008 */ bne $a2, $t0, .L7F0762D8 +/* 0AADE8 7F0762B8 00000000 */ nop +/* 0AADEC 7F0762BC 03E00008 */ jr $ra +/* 0AADF0 7F0762C0 AC470004 */ sw $a3, 4($v0) + +.L7F0762C4: +/* 0AADF4 7F0762C4 8CA20004 */ lw $v0, 4($a1) +/* 0AADF8 7F0762C8 8C490008 */ lw $t1, 8($v0) +/* 0AADFC 7F0762CC 14C90002 */ bne $a2, $t1, .L7F0762D8 +/* 0AAE00 7F0762D0 00000000 */ nop +/* 0AAE04 7F0762D4 AC470008 */ sw $a3, 8($v0) +.L7F0762D8: +/* 0AAE08 7F0762D8 03E00008 */ jr $ra +/* 0AAE0C 7F0762DC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0762E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0762E0 +/* 0AAE10 7F0762E0 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 0AAE14 7F0762E4 AFBF003C */ sw $ra, 0x3c($sp) +/* 0AAE18 7F0762E8 AFBE0038 */ sw $fp, 0x38($sp) +/* 0AAE1C 7F0762EC AFB70034 */ sw $s7, 0x34($sp) +/* 0AAE20 7F0762F0 AFB60030 */ sw $s6, 0x30($sp) +/* 0AAE24 7F0762F4 AFB5002C */ sw $s5, 0x2c($sp) +/* 0AAE28 7F0762F8 AFB40028 */ sw $s4, 0x28($sp) +/* 0AAE2C 7F0762FC AFB30024 */ sw $s3, 0x24($sp) +/* 0AAE30 7F076300 AFB20020 */ sw $s2, 0x20($sp) +/* 0AAE34 7F076304 AFB1001C */ sw $s1, 0x1c($sp) +/* 0AAE38 7F076308 AFB00018 */ sw $s0, 0x18($sp) +/* 0AAE3C 7F07630C AFA60080 */ sw $a2, 0x80($sp) +/* 0AAE40 7F076310 AFA70084 */ sw $a3, 0x84($sp) +/* 0AAE44 7F076314 8C8E0008 */ lw $t6, 8($a0) +/* 0AAE48 7F076318 0080A825 */ move $s5, $a0 +/* 0AAE4C 7F07631C 00A02025 */ move $a0, $a1 +/* 0AAE50 7F076320 0FC2F495 */ jal get_index_num_of_named_resource +/* 0AAE54 7F076324 AFAE0054 */ sw $t6, 0x54($sp) +/* 0AAE58 7F076328 AFA20050 */ sw $v0, 0x50($sp) +/* 0AAE5C 7F07632C 0FC2F447 */ jal get_rom_remaining_buffer_for_index +/* 0AAE60 7F076330 00402025 */ move $a0, $v0 +/* 0AAE64 7F076334 00408025 */ move $s0, $v0 +/* 0AAE68 7F076338 0FC2F440 */ jal get_pc_remaining_buffer_for_index +/* 0AAE6C 7F07633C 8FA40050 */ lw $a0, 0x50($sp) +/* 0AAE70 7F076340 0040F025 */ move $fp, $v0 +/* 0AAE74 7F076344 AFA00074 */ sw $zero, 0x74($sp) +/* 0AAE78 7F076348 02A02025 */ move $a0, $s5 +/* 0AAE7C 7F07634C 27A50074 */ addiu $a1, $sp, 0x74 +/* 0AAE80 7F076350 0FC1D831 */ jal sub_GAME_7F0760C4 +/* 0AAE84 7F076354 27A6006C */ addiu $a2, $sp, 0x6c +/* 0AAE88 7F076358 8FB7006C */ lw $s7, 0x6c($sp) +/* 0AAE8C 7F07635C 3C1600FF */ lui $s6, (0x00FFFFFF >> 16) # lui $s6, 0xff +/* 0AAE90 7F076360 36D6FFFF */ ori $s6, (0x00FFFFFF & 0xFFFF) # ori $s6, $s6, 0xffff +/* 0AAE94 7F076364 12E00043 */ beqz $s7, .L7F076474 +/* 0AAE98 7F076368 8FA70054 */ lw $a3, 0x54($sp) +/* 0AAE9C 7F07636C 8EAF0008 */ lw $t7, 8($s5) +/* 0AAEA0 7F076370 02F6C824 */ and $t9, $s7, $s6 +/* 0AAEA4 7F076374 02074821 */ addu $t1, $s0, $a3 +/* 0AAEA8 7F076378 01F92021 */ addu $a0, $t7, $t9 +/* 0AAEAC 7F07637C 03C44023 */ subu $t0, $fp, $a0 +/* 0AAEB0 7F076380 01073021 */ addu $a2, $t0, $a3 +/* 0AAEB4 7F076384 01262823 */ subu $a1, $t1, $a2 +/* 0AAEB8 7F076388 00A45023 */ subu $t2, $a1, $a0 +/* 0AAEBC 7F07638C 02E09825 */ move $s3, $s7 +/* 0AAEC0 7F076390 0FC339E5 */ jal sub_GAME_7F0CE794 +/* 0AAEC4 7F076394 AFAA0058 */ sw $t2, 0x58($sp) +/* 0AAEC8 7F076398 02A02025 */ move $a0, $s5 +/* 0AAECC 7F07639C 0FC32F94 */ jal sub_GAME_7F0CBE50 +/* 0AAED0 7F0763A0 8FA50084 */ lw $a1, 0x84($sp) +/* 0AAED4 7F0763A4 8FAB0074 */ lw $t3, 0x74($sp) +/* 0AAED8 7F0763A8 51600025 */ beql $t3, $zero, .L7F076440 +/* 0AAEDC 7F0763AC 8EAA0008 */ lw $t2, 8($s5) +/* 0AAEE0 7F0763B0 8FB0006C */ lw $s0, 0x6c($sp) +.L7F0763B4: +/* 0AAEE4 7F0763B4 8FB40074 */ lw $s4, 0x74($sp) +/* 0AAEE8 7F0763B8 02A02025 */ move $a0, $s5 +/* 0AAEEC 7F0763BC 27A50074 */ addiu $a1, $sp, 0x74 +/* 0AAEF0 7F0763C0 0FC1D831 */ jal sub_GAME_7F0760C4 +/* 0AAEF4 7F0763C4 27A6006C */ addiu $a2, $sp, 0x6c +/* 0AAEF8 7F0763C8 8FB7006C */ lw $s7, 0x6c($sp) +/* 0AAEFC 7F0763CC 02A02025 */ move $a0, $s5 +/* 0AAF00 7F0763D0 02802825 */ move $a1, $s4 +/* 0AAF04 7F0763D4 12E00004 */ beqz $s7, .L7F0763E8 +/* 0AAF08 7F0763D8 02003025 */ move $a2, $s0 +/* 0AAF0C 7F0763DC 02F09023 */ subu $s2, $s7, $s0 +/* 0AAF10 7F0763E0 10000007 */ b .L7F076400 +/* 0AAF14 7F0763E4 02168824 */ and $s1, $s0, $s6 +.L7F0763E8: +/* 0AAF18 7F0763E8 8FAC0054 */ lw $t4, 0x54($sp) +/* 0AAF1C 7F0763EC 8EAE0008 */ lw $t6, 8($s5) +/* 0AAF20 7F0763F0 02168824 */ and $s1, $s0, $s6 +/* 0AAF24 7F0763F4 019E6821 */ addu $t5, $t4, $fp +/* 0AAF28 7F0763F8 01AEC023 */ subu $t8, $t5, $t6 +/* 0AAF2C 7F0763FC 03119023 */ subu $s2, $t8, $s1 +.L7F076400: +/* 0AAF30 7F076400 0FC1D88F */ jal sub_GAME_7F07623C +/* 0AAF34 7F076404 02603825 */ move $a3, $s3 +/* 0AAF38 7F076408 8EA20008 */ lw $v0, 8($s5) +/* 0AAF3C 7F07640C 8FB90058 */ lw $t9, 0x58($sp) +/* 0AAF40 7F076410 02764024 */ and $t0, $s3, $s6 +/* 0AAF44 7F076414 00517821 */ addu $t7, $v0, $s1 +/* 0AAF48 7F076418 02402825 */ move $a1, $s2 +/* 0AAF4C 7F07641C 8FA70084 */ lw $a3, 0x84($sp) +/* 0AAF50 7F076420 00483021 */ addu $a2, $v0, $t0 +/* 0AAF54 7F076424 0FC33846 */ jal process_microcode_sort_display_modes_expand_image_calls +/* 0AAF58 7F076428 01F92021 */ addu $a0, $t7, $t9 +/* 0AAF5C 7F07642C 8FA90074 */ lw $t1, 0x74($sp) +/* 0AAF60 7F076430 02629821 */ addu $s3, $s3, $v0 +/* 0AAF64 7F076434 5520FFDF */ bnezl $t1, .L7F0763B4 +/* 0AAF68 7F076438 8FB0006C */ lw $s0, 0x6c($sp) +/* 0AAF6C 7F07643C 8EAA0008 */ lw $t2, 8($s5) +.L7F076440: +/* 0AAF70 7F076440 8FA50054 */ lw $a1, 0x54($sp) +/* 0AAF74 7F076444 02765824 */ and $t3, $s3, $s6 +/* 0AAF78 7F076448 8FA70080 */ lw $a3, 0x80($sp) +/* 0AAF7C 7F07644C 014B6021 */ addu $t4, $t2, $t3 +/* 0AAF80 7F076450 01859023 */ subu $s2, $t4, $a1 +/* 0AAF84 7F076454 2646000F */ addiu $a2, $s2, 0xf +/* 0AAF88 7F076458 2401FFF0 */ li $at, -16 +/* 0AAF8C 7F07645C 00C16824 */ and $t5, $a2, $at +/* 0AAF90 7F076460 2CEE0001 */ sltiu $t6, $a3, 1 +/* 0AAF94 7F076464 01C03825 */ move $a3, $t6 +/* 0AAF98 7F076468 01A03025 */ move $a2, $t5 +/* 0AAF9C 7F07646C 0FC2F44E */ jal sub_GAME_7F0BD138 +/* 0AAFA0 7F076470 8FA40050 */ lw $a0, 0x50($sp) +.L7F076474: +/* 0AAFA4 7F076474 8FBF003C */ lw $ra, 0x3c($sp) +/* 0AAFA8 7F076478 8FB00018 */ lw $s0, 0x18($sp) +/* 0AAFAC 7F07647C 8FB1001C */ lw $s1, 0x1c($sp) +/* 0AAFB0 7F076480 8FB20020 */ lw $s2, 0x20($sp) +/* 0AAFB4 7F076484 8FB30024 */ lw $s3, 0x24($sp) +/* 0AAFB8 7F076488 8FB40028 */ lw $s4, 0x28($sp) +/* 0AAFBC 7F07648C 8FB5002C */ lw $s5, 0x2c($sp) +/* 0AAFC0 7F076490 8FB60030 */ lw $s6, 0x30($sp) +/* 0AAFC4 7F076494 8FB70034 */ lw $s7, 0x34($sp) +/* 0AAFC8 7F076498 8FBE0038 */ lw $fp, 0x38($sp) +/* 0AAFCC 7F07649C 03E00008 */ jr $ra +/* 0AAFD0 7F0764A0 27BD0078 */ addiu $sp, $sp, 0x78 +) +#endif + + + + + +#ifdef NONMATCHING +void load_object_fill_header(void) { + +} +#else +GLOBAL_ASM( +.text +glabel load_object_fill_header +/* 0AAFD4 7F0764A4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0AAFD8 7F0764A8 AFB00018 */ sw $s0, 0x18($sp) +/* 0AAFDC 7F0764AC 00808025 */ move $s0, $a0 +/* 0AAFE0 7F0764B0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0AAFE4 7F0764B4 AFA50024 */ sw $a1, 0x24($sp) +/* 0AAFE8 7F0764B8 10C00006 */ beqz $a2, .L7F0764D4 +/* 0AAFEC 7F0764BC AFA60028 */ sw $a2, 0x28($sp) +/* 0AAFF0 7F0764C0 00A02025 */ move $a0, $a1 +/* 0AAFF4 7F0764C4 0FC2F350 */ jal _load_resource_named_to_buffer +/* 0AAFF8 7F0764C8 00002825 */ move $a1, $zero +/* 0AAFFC 7F0764CC 10000007 */ b .L7F0764EC +/* 0AB000 7F0764D0 00403025 */ move $a2, $v0 +.L7F0764D4: +/* 0AB004 7F0764D4 8FA40024 */ lw $a0, 0x24($sp) +/* 0AB008 7F0764D8 00002825 */ move $a1, $zero +/* 0AB00C 7F0764DC 24060100 */ li $a2, 256 +/* 0AB010 7F0764E0 0FC2F341 */ jal _load_resource_named_to_membank +/* 0AB014 7F0764E4 24070004 */ li $a3, 4 +/* 0AB018 7F0764E8 00403025 */ move $a2, $v0 +.L7F0764EC: +/* 0AB01C 7F0764EC 86190016 */ lh $t9, 0x16($s0) +/* 0AB020 7F0764F0 860F000C */ lh $t7, 0xc($s0) +/* 0AB024 7F0764F4 AE060008 */ sw $a2, 8($s0) +/* 0AB028 7F0764F8 00194080 */ sll $t0, $t9, 2 +/* 0AB02C 7F0764FC 01194023 */ subu $t0, $t0, $t9 +/* 0AB030 7F076500 000FC080 */ sll $t8, $t7, 2 +/* 0AB034 7F076504 00D81021 */ addu $v0, $a2, $t8 +/* 0AB038 7F076508 00084080 */ sll $t0, $t0, 2 +/* 0AB03C 7F07650C 00484821 */ addu $t1, $v0, $t0 +/* 0AB040 7F076510 AE020018 */ sw $v0, 0x18($s0) +/* 0AB044 7F076514 AE090000 */ sw $t1, ($s0) +/* 0AB048 7F076518 02002025 */ move $a0, $s0 +/* 0AB04C 7F07651C 0FC1D6A4 */ jal sub_GAME_7F075A90 +/* 0AB050 7F076520 3C050500 */ lui $a1, 0x500 +/* 0AB054 7F076524 02002025 */ move $a0, $s0 +/* 0AB058 7F076528 8FA50024 */ lw $a1, 0x24($sp) +/* 0AB05C 7F07652C 8FA60028 */ lw $a2, 0x28($sp) +/* 0AB060 7F076530 0FC1D8B8 */ jal sub_GAME_7F0762E0 +/* 0AB064 7F076534 8FA70030 */ lw $a3, 0x30($sp) +/* 0AB068 7F076538 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AB06C 7F07653C 8FB00018 */ lw $s0, 0x18($sp) +/* 0AB070 7F076540 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0AB074 7F076544 03E00008 */ jr $ra +/* 0AB078 7F076548 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void load_object_into_memory(void) { + // Node 0 + load_object_fill_header(0, 0, 0); + return; + // (possible return value: load_object_fill_header(0, 0, 0)) +} + +#else +GLOBAL_ASM( +.text +glabel load_object_into_memory +/* 0AB07C 7F07654C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0AB080 7F076550 AFBF001C */ sw $ra, 0x1c($sp) +/* 0AB084 7F076554 AFA00010 */ sw $zero, 0x10($sp) +/* 0AB088 7F076558 00003025 */ move $a2, $zero +/* 0AB08C 7F07655C 0FC1D929 */ jal load_object_fill_header +/* 0AB090 7F076560 00003825 */ move $a3, $zero +/* 0AB094 7F076564 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AB098 7F076568 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0AB09C 7F07656C 03E00008 */ jr $ra +/* 0AB0A0 7F076570 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void load_object_into_memory_unused_maybe(void) { + // Node 0 + load_object_fill_header(0); + return; + // (possible return value: load_object_fill_header(0)) +} + +#else +GLOBAL_ASM( +.text +glabel load_object_into_memory_unused_maybe +/* 0AB0A4 7F076574 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0AB0A8 7F076578 AFBF001C */ sw $ra, 0x1c($sp) +/* 0AB0AC 7F07657C 0FC1D929 */ jal load_object_fill_header +/* 0AB0B0 7F076580 AFA00010 */ sw $zero, 0x10($sp) +/* 0AB0B4 7F076584 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AB0B8 7F076588 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0AB0BC 7F07658C 03E00008 */ jr $ra +/* 0AB0C0 7F076590 00000000 */ nop +) +#endif + + + + diff --git a/src/game/objective.c b/src/game/objective.c new file mode 100644 index 0000000..be7947f --- /dev/null +++ b/src/game/objective.c @@ -0,0 +1,287 @@ +#include "ultra64.h" + + +#ifdef NONMATCHING +void something_with_stage_objectives(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel something_with_stage_objectives +/* 0399F0 7F004EC0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0399F4 7F004EC4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0399F8 7F004EC8 0C001A57 */ jal get_stage_num +/* 0399FC 7F004ECC 00000000 */ nop +/* 039A00 7F004ED0 2401005A */ li $at, 90 +/* 039A04 7F004ED4 10410011 */ beq $v0, $at, .L7F004F1C +/* 039A08 7F004ED8 240EFFFF */ li $t6, -1 +/* 039A0C 7F004EDC 3C018003 */ lui $at, %hi(num_objective_ptrs) +/* 039A10 7F004EE0 AC2E22F0 */ sw $t6, %lo(num_objective_ptrs)($at) +/* 039A14 7F004EE4 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D58) +/* 039A18 7F004EE8 AC205D58 */ sw $zero, %lo(dword_CODE_bss_80075D58)($at) +/* 039A1C 7F004EEC 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D5C) +/* 039A20 7F004EF0 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075D60) +/* 039A24 7F004EF4 3C038007 */ lui $v1, %hi(ptr_last_tag_entry_type16) +/* 039A28 7F004EF8 24635D80 */ addiu $v1, %lo(ptr_last_tag_entry_type16) # addiu $v1, $v1, 0x5d80 +/* 039A2C 7F004EFC 24425D60 */ addiu $v0, %lo(dword_CODE_bss_80075D60) # addiu $v0, $v0, 0x5d60 +/* 039A30 7F004F00 AC205D5C */ sw $zero, %lo(dword_CODE_bss_80075D5C)($at) +.L7F004F04: +/* 039A34 7F004F04 24420010 */ addiu $v0, $v0, 0x10 +/* 039A38 7F004F08 AC40FFF4 */ sw $zero, -0xc($v0) +/* 039A3C 7F004F0C AC40FFF8 */ sw $zero, -8($v0) +/* 039A40 7F004F10 AC40FFFC */ sw $zero, -4($v0) +/* 039A44 7F004F14 1443FFFB */ bne $v0, $v1, .L7F004F04 +/* 039A48 7F004F18 AC40FFF0 */ sw $zero, -0x10($v0) +.L7F004F1C: +/* 039A4C 7F004F1C 3C018007 */ lui $at, %hi(objective_ptrs) +/* 039A50 7F004F20 AC205D30 */ sw $zero, %lo(objective_ptrs)($at) +/* 039A54 7F004F24 3C018007 */ lui $at, %hi(objective_ptrs+4) +/* 039A58 7F004F28 3C028007 */ lui $v0, %hi(objective_ptrs+8) +/* 039A5C 7F004F2C 3C038007 */ lui $v1, %hi(dword_CODE_bss_80075D58) +/* 039A60 7F004F30 24635D58 */ addiu $v1, %lo(dword_CODE_bss_80075D58) # addiu $v1, $v1, 0x5d58 +/* 039A64 7F004F34 24425D38 */ addiu $v0, %lo(objective_ptrs+8) # addiu $v0, $v0, 0x5d38 +/* 039A68 7F004F38 AC205D34 */ sw $zero, %lo(objective_ptrs+4)($at) +.L7F004F3C: +/* 039A6C 7F004F3C 24420010 */ addiu $v0, $v0, 0x10 +/* 039A70 7F004F40 AC40FFF4 */ sw $zero, -0xc($v0) +/* 039A74 7F004F44 AC40FFF8 */ sw $zero, -8($v0) +/* 039A78 7F004F48 AC40FFFC */ sw $zero, -4($v0) +/* 039A7C 7F004F4C 1443FFFB */ bne $v0, $v1, .L7F004F3C +/* 039A80 7F004F50 AC40FFF0 */ sw $zero, -0x10($v0) +/* 039A84 7F004F54 3C018007 */ lui $at, %hi(ptr_last_tag_entry_type16) +/* 039A88 7F004F58 AC205D80 */ sw $zero, %lo(ptr_last_tag_entry_type16)($at) +/* 039A8C 7F004F5C 3C018007 */ lui $at, %hi(ptr_last_briefing_setup_entry_type23) +/* 039A90 7F004F60 AC205D84 */ sw $zero, %lo(ptr_last_briefing_setup_entry_type23)($at) +/* 039A94 7F004F64 3C018007 */ lui $at, %hi(ptr_last_enter_room_subobject_entry_type20) +/* 039A98 7F004F68 AC205D88 */ sw $zero, %lo(ptr_last_enter_room_subobject_entry_type20)($at) +/* 039A9C 7F004F6C 8FBF0014 */ lw $ra, 0x14($sp) +/* 039AA0 7F004F70 3C018007 */ lui $at, %hi(ptr_last_deposit_in_room_subobject_entry_type21) +/* 039AA4 7F004F74 AC205D8C */ sw $zero, %lo(ptr_last_deposit_in_room_subobject_entry_type21)($at) +/* 039AA8 7F004F78 3C018007 */ lui $at, %hi(ptr_last_photo_obj_in_room_subobject_entry_type1E) +/* 039AAC 7F004F7C AC205D90 */ sw $zero, %lo(ptr_last_photo_obj_in_room_subobject_entry_type1E)($at) +/* 039AB0 7F004F80 03E00008 */ jr $ra +/* 039AB4 7F004F84 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel something_with_stage_objectives +/* 039A40 7F004ED0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 039A44 7F004ED4 AFBF0014 */ sw $ra, 0x14($sp) +/* 039A48 7F004ED8 0C001A57 */ jal get_stage_num +/* 039A4C 7F004EDC 00000000 */ nop +/* 039A50 7F004EE0 2401005A */ li $at, 90 +/* 039A54 7F004EE4 10410011 */ beq $v0, $at, .L7F004F2C +/* 039A58 7F004EE8 240EFFFF */ li $t6, -1 +/* 039A5C 7F004EEC 3C018003 */ lui $at, %hi(num_objective_ptrs) # $at, 0x8003 +/* 039A60 7F004EF0 AC2E2330 */ sw $t6, %lo(num_objective_ptrs)($at) +/* 039A64 7F004EF4 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D58) # $at, 0x8007 +/* 039A68 7F004EF8 AC205D98 */ sw $zero, %lo(dword_CODE_bss_80075D58)($at) +/* 039A6C 7F004EFC 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D5C) # $at, 0x8007 +/* 039A70 7F004F00 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075D60) # $v0, 0x8007 +/* 039A74 7F004F04 3C038007 */ lui $v1, %hi(ptr_last_tag_entry_type16) # $v1, 0x8007 +/* 039A78 7F004F08 24635DC0 */ addiu $v1, %lo(ptr_last_tag_entry_type16) # addiu $v1, $v1, 0x5dc0 +/* 039A7C 7F004F0C 24425DA0 */ addiu $v0, %lo(dword_CODE_bss_80075D60) # addiu $v0, $v0, 0x5da0 +/* 039A80 7F004F10 AC205D9C */ sw $zero, %lo(dword_CODE_bss_80075D5C)($at) +.L7F004F14: +/* 039A84 7F004F14 24420010 */ addiu $v0, $v0, 0x10 +/* 039A88 7F004F18 AC40FFF4 */ sw $zero, -0xc($v0) +/* 039A8C 7F004F1C AC40FFF8 */ sw $zero, -8($v0) +/* 039A90 7F004F20 AC40FFFC */ sw $zero, -4($v0) +/* 039A94 7F004F24 1443FFFB */ bne $v0, $v1, .L7F004F14 +/* 039A98 7F004F28 AC40FFF0 */ sw $zero, -0x10($v0) +.L7F004F2C: +/* 039A9C 7F004F2C 3C018003 */ lui $at, %hi(num_objective_ptrs+4) # $at, 0x8003 +/* 039AA0 7F004F30 AC202334 */ sw $zero, %lo(num_objective_ptrs+4)($at) +/* 039AA4 7F004F34 3C018007 */ lui $at, %hi(objective_ptrs) # $at, 0x8007 +/* 039AA8 7F004F38 AC205D70 */ sw $zero, %lo(objective_ptrs)($at) +/* 039AAC 7F004F3C 3C018007 */ lui $at, %hi(objective_ptrs+4) # $at, 0x8007 +/* 039AB0 7F004F40 3C028007 */ lui $v0, %hi(objective_ptrs+8) # $v0, 0x8007 +/* 039AB4 7F004F44 3C038007 */ lui $v1, %hi(dword_CODE_bss_80075D58) # $v1, 0x8007 +/* 039AB8 7F004F48 24635D98 */ addiu $v1, %lo(dword_CODE_bss_80075D58) # addiu $v1, $v1, 0x5d98 +/* 039ABC 7F004F4C 24425D78 */ addiu $v0, %lo(objective_ptrs+8) # addiu $v0, $v0, 0x5d78 +/* 039AC0 7F004F50 AC205D74 */ sw $zero, %lo(objective_ptrs+4)($at) +.L7F004F54: +/* 039AC4 7F004F54 24420010 */ addiu $v0, $v0, 0x10 +/* 039AC8 7F004F58 AC40FFF4 */ sw $zero, -0xc($v0) +/* 039ACC 7F004F5C AC40FFF8 */ sw $zero, -8($v0) +/* 039AD0 7F004F60 AC40FFFC */ sw $zero, -4($v0) +/* 039AD4 7F004F64 1443FFFB */ bne $v0, $v1, .L7F004F54 +/* 039AD8 7F004F68 AC40FFF0 */ sw $zero, -0x10($v0) +/* 039ADC 7F004F6C 3C018007 */ lui $at, %hi(ptr_last_tag_entry_type16) # $at, 0x8007 +/* 039AE0 7F004F70 AC205DC0 */ sw $zero, %lo(ptr_last_tag_entry_type16)($at) +/* 039AE4 7F004F74 3C018007 */ lui $at, %hi(ptr_last_briefing_setup_entry_type23) # $at, 0x8007 +/* 039AE8 7F004F78 AC205DC4 */ sw $zero, %lo(ptr_last_briefing_setup_entry_type23)($at) +/* 039AEC 7F004F7C 3C018007 */ lui $at, %hi(ptr_last_enter_room_subobject_entry_type20) # $at, 0x8007 +/* 039AF0 7F004F80 AC205DC8 */ sw $zero, %lo(ptr_last_enter_room_subobject_entry_type20)($at) +/* 039AF4 7F004F84 8FBF0014 */ lw $ra, 0x14($sp) +/* 039AF8 7F004F88 3C018007 */ lui $at, %hi(ptr_last_deposit_in_room_subobject_entry_type21) # $at, 0x8007 +/* 039AFC 7F004F8C AC205DCC */ sw $zero, %lo(ptr_last_deposit_in_room_subobject_entry_type21)($at) +/* 039B00 7F004F90 3C018007 */ lui $at, %hi(ptr_last_photo_obj_in_room_subobject_entry_type1E) # $at, 0x8007 +/* 039B04 7F004F94 AC205DD0 */ sw $zero, %lo(ptr_last_photo_obj_in_room_subobject_entry_type1E)($at) +/* 039B08 7F004F98 03E00008 */ jr $ra +/* 039B0C 7F004F9C 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + +#endif + + +#ifdef NONMATCHING +void *set_parent_cur_tag_entry(void *arg0) { + // Node 0 + arg0->unk8 = (void *) ptr_last_tag_entry_type16; + ptr_last_tag_entry_type16 = arg0; + return; + // (possible return value: &ptr_last_tag_entry_type16) +} + +#else +GLOBAL_ASM( +.text +glabel set_parent_cur_tag_entry +/* 039AB8 7F004F88 3C028007 */ lui $v0, %hi(ptr_last_tag_entry_type16) +/* 039ABC 7F004F8C 24425D80 */ addiu $v0, %lo(ptr_last_tag_entry_type16) # addiu $v0, $v0, 0x5d80 +/* 039AC0 7F004F90 8C4E0000 */ lw $t6, ($v0) +/* 039AC4 7F004F94 AC8E0008 */ sw $t6, 8($a0) +/* 039AC8 7F004F98 03E00008 */ jr $ra +/* 039ACC 7F004F9C AC440000 */ sw $a0, ($v0) +) +#endif + + +#ifdef NONMATCHING +void *setup_briefing_text_entry_parent(void *arg0) { + // Node 0 + arg0->unkC = (void *) ptr_last_briefing_setup_entry_type23; + ptr_last_briefing_setup_entry_type23 = arg0; + return; + // (possible return value: &ptr_last_briefing_setup_entry_type23) +} + +#else +GLOBAL_ASM( +.text +glabel setup_briefing_text_entry_parent +/* 039AD0 7F004FA0 3C028007 */ lui $v0, %hi(ptr_last_briefing_setup_entry_type23) +/* 039AD4 7F004FA4 24425D84 */ addiu $v0, %lo(ptr_last_briefing_setup_entry_type23) # addiu $v0, $v0, 0x5d84 +/* 039AD8 7F004FA8 8C4E0000 */ lw $t6, ($v0) +/* 039ADC 7F004FAC AC8E000C */ sw $t6, 0xc($a0) +/* 039AE0 7F004FB0 03E00008 */ jr $ra +/* 039AE4 7F004FB4 AC440000 */ sw $a0, ($v0) +) +#endif + + +#ifdef NONMATCHING +s32 add_ptr_to_objective(void *arg0) { + // Node 0 + (0x80070000 + (arg0->unk4 * 4))->unk5D30 = arg0; + if (num_objective_ptrs < arg0->unk4) + { + // Node 1 + num_objective_ptrs = (s32) arg0->unk4; + return; + // (possible return value: arg0->unk4) + } + // (possible return value: arg0->unk4) +} + +#else +GLOBAL_ASM( +.text +glabel add_ptr_to_objective +/* 039AE8 7F004FB8 8C8E0004 */ lw $t6, 4($a0) +/* 039AEC 7F004FBC 3C018007 */ lui $at, %hi(objective_ptrs) +/* 039AF0 7F004FC0 3C038003 */ lui $v1, %hi(num_objective_ptrs) +/* 039AF4 7F004FC4 000E7880 */ sll $t7, $t6, 2 +/* 039AF8 7F004FC8 002F0821 */ addu $at, $at, $t7 +/* 039AFC 7F004FCC AC245D30 */ sw $a0, %lo(objective_ptrs)($at) +/* 039B00 7F004FD0 246322F0 */ addiu $v1, %lo(num_objective_ptrs) # addiu $v1, $v1, 0x22f0 +/* 039B04 7F004FD4 8C780000 */ lw $t8, ($v1) +/* 039B08 7F004FD8 8C820004 */ lw $v0, 4($a0) +/* 039B0C 7F004FDC 0302082A */ slt $at, $t8, $v0 +/* 039B10 7F004FE0 10200002 */ beqz $at, .L7F004FEC +/* 039B14 7F004FE4 00000000 */ nop +/* 039B18 7F004FE8 AC620000 */ sw $v0, ($v1) +.L7F004FEC: +/* 039B1C 7F004FEC 03E00008 */ jr $ra +/* 039B20 7F004FF0 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void *set_parent_cur_obj_enter_room(void *arg0) { + // Node 0 + arg0->unkC = (void *) ptr_last_enter_room_subobject_entry_type20; + ptr_last_enter_room_subobject_entry_type20 = arg0; + return; + // (possible return value: &ptr_last_enter_room_subobject_entry_type20) +} + +#else +GLOBAL_ASM( +.text +glabel set_parent_cur_obj_enter_room +/* 039B24 7F004FF4 3C028007 */ lui $v0, %hi(ptr_last_enter_room_subobject_entry_type20) +/* 039B28 7F004FF8 24425D88 */ addiu $v0, %lo(ptr_last_enter_room_subobject_entry_type20) # addiu $v0, $v0, 0x5d88 +/* 039B2C 7F004FFC 8C4E0000 */ lw $t6, ($v0) +/* 039B30 7F005000 AC8E000C */ sw $t6, 0xc($a0) +/* 039B34 7F005004 03E00008 */ jr $ra +/* 039B38 7F005008 AC440000 */ sw $a0, ($v0) +) +#endif + + +#ifdef NONMATCHING +void *set_parent_cur_obj_deposited_in_room(void *arg0) { + // Node 0 + arg0->unk10 = (void *) ptr_last_deposit_in_room_subobject_entry_type21; + ptr_last_deposit_in_room_subobject_entry_type21 = arg0; + return; + // (possible return value: &ptr_last_deposit_in_room_subobject_entry_type21) +} + +#else +GLOBAL_ASM( +.text +glabel set_parent_cur_obj_deposited_in_room +/* 039B3C 7F00500C 3C028007 */ lui $v0, %hi(ptr_last_deposit_in_room_subobject_entry_type21) +/* 039B40 7F005010 24425D8C */ addiu $v0, %lo(ptr_last_deposit_in_room_subobject_entry_type21) # addiu $v0, $v0, 0x5d8c +/* 039B44 7F005014 8C4E0000 */ lw $t6, ($v0) +/* 039B48 7F005018 AC8E0010 */ sw $t6, 0x10($a0) +/* 039B4C 7F00501C 03E00008 */ jr $ra +/* 039B50 7F005020 AC440000 */ sw $a0, ($v0) +) +#endif + + +#ifdef NONMATCHING +void *set_parent_cur_obj_photograph(void *arg0) { + // Node 0 + arg0->unkC = (void *) ptr_last_photo_obj_in_room_subobject_entry_type1E; + ptr_last_photo_obj_in_room_subobject_entry_type1E = arg0; + return; + // (possible return value: &ptr_last_photo_obj_in_room_subobject_entry_type1E) +} + +#else +GLOBAL_ASM( +.text +glabel set_parent_cur_obj_photograph +/* 039B54 7F005024 3C028007 */ lui $v0, %hi(ptr_last_photo_obj_in_room_subobject_entry_type1E) +/* 039B58 7F005028 24425D90 */ addiu $v0, %lo(ptr_last_photo_obj_in_room_subobject_entry_type1E) # addiu $v0, $v0, 0x5d90 +/* 039B5C 7F00502C 8C4E0000 */ lw $t6, ($v0) +/* 039B60 7F005030 AC8E000C */ sw $t6, 0xc($a0) +/* 039B64 7F005034 03E00008 */ jr $ra +/* 039B68 7F005038 AC440000 */ sw $a0, ($v0) +) +#endif + + diff --git a/src/game/objective_status.c b/src/game/objective_status.c new file mode 100644 index 0000000..7cd0604 --- /dev/null +++ b/src/game/objective_status.c @@ -0,0 +1,1081 @@ +#include "ultra64.h" +#include "bondconstants.h" +#include "bondtypes.h" + +// bss +//CODE.bss:80075D30 +struct objective_entry * objective_ptrs[10]; +u32 dword_CODE_bss_80075D58; +u32 dword_CODE_bss_80075D5C; +char dword_CODE_bss_80075D60[0x20]; +//CODE.bss:80075D80 +u32 *ptr_last_tag_entry_type16; +//CODE.bss:80075D84 +u32 *ptr_last_briefing_setup_entry_type23; +//CODE.bss:80075D88 +u32 *ptr_last_enter_room_subobject_entry_type20; +//CODE.bss:80075D8C +u32 *ptr_last_deposit_in_room_subobject_entry_type21; +//CODE.bss:80075D90 +u32 *ptr_last_photo_obj_in_room_subobject_entry_type1E; + +// data +s32 num_objective_ptrs[] = {0xFFFFFFFF, 0}; + + + +// rodata +const u32 D_80053610[] = {0,0,0,0,0,0,0,0,0,0,0,0,0}; +//D:80053644 +const u32 aSAC[] = {0x25732080, 0x25632000}; +//D:8005364C +const char aSC[] = "%s %c: "; + + + +#ifdef NONMATCHING +void sub_GAME_7F057080(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F057080 +/* 08BBB0 7F057080 3C038007 */ lui $v1, %hi(ptr_last_tag_entry_type16) +/* 08BBB4 7F057084 8C635D80 */ lw $v1, %lo(ptr_last_tag_entry_type16)($v1) +/* 08BBB8 7F057088 3082FFFF */ andi $v0, $a0, 0xffff +/* 08BBBC 7F05708C 5060000A */ beql $v1, $zero, .L7F0570B8 +/* 08BBC0 7F057090 00001025 */ move $v0, $zero +/* 08BBC4 7F057094 946E0004 */ lhu $t6, 4($v1) +.L7F057098: +/* 08BBC8 7F057098 544E0004 */ bnel $v0, $t6, .L7F0570AC +/* 08BBCC 7F05709C 8C630008 */ lw $v1, 8($v1) +/* 08BBD0 7F0570A0 03E00008 */ jr $ra +/* 08BBD4 7F0570A4 00601025 */ move $v0, $v1 + +/* 08BBD8 7F0570A8 8C630008 */ lw $v1, 8($v1) +.L7F0570AC: +/* 08BBDC 7F0570AC 5460FFFA */ bnezl $v1, .L7F057098 +/* 08BBE0 7F0570B0 946E0004 */ lhu $t6, 4($v1) +/* 08BBE4 7F0570B4 00001025 */ move $v0, $zero +.L7F0570B8: +/* 08BBE8 7F0570B8 03E00008 */ jr $ra +/* 08BBEC 7F0570BC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_handle_to_tagged_object(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_handle_to_tagged_object +/* 08BBF0 7F0570C0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08BBF4 7F0570C4 AFBF0014 */ sw $ra, 0x14($sp) +/* 08BBF8 7F0570C8 0FC15C20 */ jal sub_GAME_7F057080 +/* 08BBFC 7F0570CC 00000000 */ nop +/* 08BC00 7F0570D0 10400002 */ beqz $v0, .L7F0570DC +/* 08BC04 7F0570D4 00001825 */ move $v1, $zero +/* 08BC08 7F0570D8 8C43000C */ lw $v1, 0xc($v0) +.L7F0570DC: +/* 08BC0C 7F0570DC 10600006 */ beqz $v1, .L7F0570F8 +/* 08BC10 7F0570E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 08BC14 7F0570E4 8C6E0064 */ lw $t6, 0x64($v1) +/* 08BC18 7F0570E8 31CF0010 */ andi $t7, $t6, 0x10 +/* 08BC1C 7F0570EC 55E00003 */ bnezl $t7, .L7F0570FC +/* 08BC20 7F0570F0 00601025 */ move $v0, $v1 +/* 08BC24 7F0570F4 00001825 */ move $v1, $zero +.L7F0570F8: +/* 08BC28 7F0570F8 00601025 */ move $v0, $v1 +.L7F0570FC: +/* 08BC2C 7F0570FC 03E00008 */ jr $ra +/* 08BC30 7F057100 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + + +#ifdef NONMATCHING +u8 * get_ptr_text_for_watch_breifing_page(WATCH_BRIEFING_PAGE page) +{ + struct watchMenuObjectiveText * curentry; + u8 * textptr; + + textptr = 0; + for (curentry = ptr_last_briefing_setup_entry_type23; curentry != 0; curentry = curentry->nextentry) + { + if (page == curentry->menu) + { + textptr = get_textptr_for_textID(curentry->text); + } + textptr = 0; + } + if (textptr == 0) + { + if (page == 0) + { + textptr = get_textptr_for_textID(0xb029); //"E R R O R\n" + } + else + { + if (page == 1) + { + textptr = get_textptr_for_textID(0xb02a); //"no briefing for this mission\n" + } + else + { + textptr = get_textptr_for_textID(0xb02b); //"\n" + } + } + } + return textptr; +} +#else +GLOBAL_ASM( +.text +glabel get_ptr_text_for_watch_breifing_page +/* 08BC34 7F057104 3C028007 */ lui $v0, %hi(ptr_last_briefing_setup_entry_type23) +/* 08BC38 7F057108 8C425D84 */ lw $v0, %lo(ptr_last_briefing_setup_entry_type23)($v0) +/* 08BC3C 7F05710C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08BC40 7F057110 AFBF0014 */ sw $ra, 0x14($sp) +/* 08BC44 7F057114 00802825 */ move $a1, $a0 +/* 08BC48 7F057118 1040000D */ beqz $v0, .L7F057150 +/* 08BC4C 7F05711C 00001825 */ move $v1, $zero +/* 08BC50 7F057120 8C4E0004 */ lw $t6, 4($v0) +.L7F057124: +/* 08BC54 7F057124 54AE0008 */ bnel $a1, $t6, .L7F057148 +/* 08BC58 7F057128 8C42000C */ lw $v0, 0xc($v0) +/* 08BC5C 7F05712C 9444000A */ lhu $a0, 0xa($v0) +/* 08BC60 7F057130 0FC30776 */ jal get_textptr_for_textID +/* 08BC64 7F057134 AFA50018 */ sw $a1, 0x18($sp) +/* 08BC68 7F057138 8FA50018 */ lw $a1, 0x18($sp) +/* 08BC6C 7F05713C 10000004 */ b .L7F057150 +/* 08BC70 7F057140 00401825 */ move $v1, $v0 +/* 08BC74 7F057144 8C42000C */ lw $v0, 0xc($v0) +.L7F057148: +/* 08BC78 7F057148 5440FFF6 */ bnezl $v0, .L7F057124 +/* 08BC7C 7F05714C 8C4E0004 */ lw $t6, 4($v0) +.L7F057150: +/* 08BC80 7F057150 54600011 */ bnezl $v1, .L7F057198 +/* 08BC84 7F057154 8FBF0014 */ lw $ra, 0x14($sp) +/* 08BC88 7F057158 14A00005 */ bnez $a1, .L7F057170 +/* 08BC8C 7F05715C 24010001 */ li $at, 1 +/* 08BC90 7F057160 0FC30776 */ jal get_textptr_for_textID +/* 08BC94 7F057164 3404B029 */ li $a0, 45097 +/* 08BC98 7F057168 1000000A */ b .L7F057194 +/* 08BC9C 7F05716C 00401825 */ move $v1, $v0 +.L7F057170: +/* 08BCA0 7F057170 14A10005 */ bne $a1, $at, .L7F057188 +/* 08BCA4 7F057174 00000000 */ nop +/* 08BCA8 7F057178 0FC30776 */ jal get_textptr_for_textID +/* 08BCAC 7F05717C 3404B02A */ li $a0, 45098 +/* 08BCB0 7F057180 10000004 */ b .L7F057194 +/* 08BCB4 7F057184 00401825 */ move $v1, $v0 +.L7F057188: +/* 08BCB8 7F057188 0FC30776 */ jal get_textptr_for_textID +/* 08BCBC 7F05718C 3404B02B */ li $a0, 45099 +/* 08BCC0 7F057190 00401825 */ move $v1, $v0 +.L7F057194: +/* 08BCC4 7F057194 8FBF0014 */ lw $ra, 0x14($sp) +.L7F057198: +/* 08BCC8 7F057198 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08BCCC 7F05719C 00601025 */ move $v0, $v1 +/* 08BCD0 7F0571A0 03E00008 */ jr $ra +/* 08BCD4 7F0571A4 00000000 */ nop +) +#endif + + + + + + +s32 add_objective(void) +{ + return num_objective_ptrs[0]+1; +} + + + +u8 * get_text_for_objective(int objective) +{ + u8 *textptr; + + if ((objective < 10) && (objective_ptrs[objective] != 0)) { + return get_textptr_for_textID(objective_ptrs[objective]->text); + } + return 0; +} + + + + + +#ifdef NONMATCHING +void get_difficulty_for_objective(void) { + +} +#else +GLOBAL_ASM( +.text +glabel get_difficulty_for_objective +/* 08BD34 7F057204 2881000A */ slti $at, $a0, 0xa +/* 08BD38 7F057208 10200008 */ beqz $at, .L7F05722C +/* 08BD3C 7F05720C 00047080 */ sll $t6, $a0, 2 +/* 08BD40 7F057210 3C038007 */ lui $v1, %hi(objective_ptrs) +/* 08BD44 7F057214 006E1821 */ addu $v1, $v1, $t6 +/* 08BD48 7F057218 8C635D30 */ lw $v1, %lo(objective_ptrs)($v1) +/* 08BD4C 7F05721C 50600004 */ beql $v1, $zero, .L7F057230 +/* 08BD50 7F057220 00001025 */ move $v0, $zero +/* 08BD54 7F057224 03E00008 */ jr $ra +/* 08BD58 7F057228 8062000F */ lb $v0, 0xf($v1) + +.L7F05722C: +/* 08BD5C 7F05722C 00001025 */ move $v0, $zero +.L7F057230: +/* 08BD60 7F057230 03E00008 */ jr $ra +/* 08BD64 7F057234 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_status_of_objective(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80053654*/ +glabel jpt_objectives_microcode_handler +.word objective_microcode_type_17_18_1F_default +.word objective_microcode_type_17_18_1F_default +.word objective_microcode_type_19_destroy_object +.word objective_microcode_type_1A_complete_if_true +.word objective_microcode_type_1B_fail_if_true +.word objective_microcode_type_1C_collect_object +.word objective_microcode_type_1D_deposit_object +.word objective_microcode_type_1E_photograph_object +.word objective_microcode_type_17_18_1F_default +.word objective_microcode_type_20_enter_room +.word objective_microcode_type_21_deposit_object_in_room +.word objective_microcode_type_22_use_key_analyzer_on_object +.word 0,0,0 + +.text +glabel get_status_of_objective +/* 08BD68 7F057238 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 08BD6C 7F05723C AFB30024 */ sw $s3, 0x24($sp) +/* 08BD70 7F057240 2881000A */ slti $at, $a0, 0xa +/* 08BD74 7F057244 AFBF002C */ sw $ra, 0x2c($sp) +/* 08BD78 7F057248 AFB40028 */ sw $s4, 0x28($sp) +/* 08BD7C 7F05724C AFB20020 */ sw $s2, 0x20($sp) +/* 08BD80 7F057250 AFB1001C */ sw $s1, 0x1c($sp) +/* 08BD84 7F057254 AFB00018 */ sw $s0, 0x18($sp) +/* 08BD88 7F057258 1020008A */ beqz $at, .L7F057484 +/* 08BD8C 7F05725C 24130001 */ li $s3, 1 +/* 08BD90 7F057260 00041080 */ sll $v0, $a0, 2 +/* 08BD94 7F057264 3C048007 */ lui $a0, %hi(objective_ptrs) +/* 08BD98 7F057268 00822021 */ addu $a0, $a0, $v0 +/* 08BD9C 7F05726C 8C845D30 */ lw $a0, %lo(objective_ptrs)($a0) +/* 08BDA0 7F057270 54800006 */ bnezl $a0, .L7F05728C +/* 08BDA4 7F057274 90830003 */ lbu $v1, 3($a0) +/* 08BDA8 7F057278 3C138007 */ lui $s3, %hi(dword_CODE_bss_80075D58) +/* 08BDAC 7F05727C 02629821 */ addu $s3, $s3, $v0 +/* 08BDB0 7F057280 10000080 */ b .L7F057484 +/* 08BDB4 7F057284 8E735D58 */ lw $s3, %lo(dword_CODE_bss_80075D58)($s3) +/* 08BDB8 7F057288 90830003 */ lbu $v1, 3($a0) +.L7F05728C: +/* 08BDBC 7F05728C 24010018 */ li $at, 24 +/* 08BDC0 7F057290 00809025 */ move $s2, $a0 +/* 08BDC4 7F057294 1061007B */ beq $v1, $at, .L7F057484 +/* 08BDC8 7F057298 24140001 */ li $s4, 1 +/* 08BDCC 7F05729C 246EFFE9 */ addiu $t6, $v1, -0x17 +.L7F0572A0: +/* 08BDD0 7F0572A0 2DC1000C */ sltiu $at, $t6, 0xc +/* 08BDD4 7F0572A4 10200064 */ beqz $at, .L7F057438 +/* 08BDD8 7F0572A8 02808825 */ move $s1, $s4 +/* 08BDDC 7F0572AC 000E7080 */ sll $t6, $t6, 2 +/* 08BDE0 7F0572B0 3C018005 */ lui $at, %hi(jpt_objectives_microcode_handler) +/* 08BDE4 7F0572B4 002E0821 */ addu $at, $at, $t6 +/* 08BDE8 7F0572B8 8C2E3654 */ lw $t6, %lo(jpt_objectives_microcode_handler)($at) +/* 08BDEC 7F0572BC 01C00008 */ jr $t6 +/* 08BDF0 7F0572C0 00000000 */ nop +objective_microcode_type_19_destroy_object: +/* 08BDF4 7F0572C4 0FC15C30 */ jal get_handle_to_tagged_object +/* 08BDF8 7F0572C8 8E440004 */ lw $a0, 4($s2) +/* 08BDFC 7F0572CC 1040005A */ beqz $v0, .L7F057438 +/* 08BE00 7F0572D0 00402025 */ move $a0, $v0 +/* 08BE04 7F0572D4 8C4F0010 */ lw $t7, 0x10($v0) +/* 08BE08 7F0572D8 11E00057 */ beqz $t7, .L7F057438 +/* 08BE0C 7F0572DC 00000000 */ nop +/* 08BE10 7F0572E0 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 08BE14 7F0572E4 00000000 */ nop +/* 08BE18 7F0572E8 10400053 */ beqz $v0, .L7F057438 +/* 08BE1C 7F0572EC 00000000 */ nop +/* 08BE20 7F0572F0 10000051 */ b .L7F057438 +/* 08BE24 7F0572F4 00008825 */ move $s1, $zero +objective_microcode_type_1A_complete_if_true: +/* 08BE28 7F0572F8 00002025 */ move $a0, $zero +/* 08BE2C 7F0572FC 0FC0CCCE */ jal check_if_objective_bitflags_set +/* 08BE30 7F057300 8E450004 */ lw $a1, 4($s2) +/* 08BE34 7F057304 1440004C */ bnez $v0, .L7F057438 +/* 08BE38 7F057308 00000000 */ nop +/* 08BE3C 7F05730C 1000004A */ b .L7F057438 +/* 08BE40 7F057310 00008825 */ move $s1, $zero +objective_microcode_type_1B_fail_if_true: +/* 08BE44 7F057314 00002025 */ move $a0, $zero +/* 08BE48 7F057318 0FC0CCCE */ jal check_if_objective_bitflags_set +/* 08BE4C 7F05731C 8E450004 */ lw $a1, 4($s2) +/* 08BE50 7F057320 10400045 */ beqz $v0, .L7F057438 +/* 08BE54 7F057324 00000000 */ nop +/* 08BE58 7F057328 10000043 */ b .L7F057438 +/* 08BE5C 7F05732C 24110002 */ li $s1, 2 +objective_microcode_type_1C_collect_object: +/* 08BE60 7F057330 0FC15C30 */ jal get_handle_to_tagged_object +/* 08BE64 7F057334 8E440004 */ lw $a0, 4($s2) +/* 08BE68 7F057338 10400008 */ beqz $v0, .L7F05735C +/* 08BE6C 7F05733C 00408025 */ move $s0, $v0 +/* 08BE70 7F057340 8C580010 */ lw $t8, 0x10($v0) +/* 08BE74 7F057344 13000005 */ beqz $t8, .L7F05735C +/* 08BE78 7F057348 00000000 */ nop +/* 08BE7C 7F05734C 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 08BE80 7F057350 00402025 */ move $a0, $v0 +/* 08BE84 7F057354 14400003 */ bnez $v0, .L7F057364 +/* 08BE88 7F057358 00000000 */ nop +.L7F05735C: +/* 08BE8C 7F05735C 10000036 */ b .L7F057438 +/* 08BE90 7F057360 24110002 */ li $s1, 2 +.L7F057364: +/* 08BE94 7F057364 0FC233F8 */ jal sub_GAME_7F08CFE0 +/* 08BE98 7F057368 8E040010 */ lw $a0, 0x10($s0) +/* 08BE9C 7F05736C 14400032 */ bnez $v0, .L7F057438 +/* 08BEA0 7F057370 00000000 */ nop +/* 08BEA4 7F057374 10000030 */ b .L7F057438 +/* 08BEA8 7F057378 00008825 */ move $s1, $zero +objective_microcode_type_1D_deposit_object: +/* 08BEAC 7F05737C 0FC15C30 */ jal get_handle_to_tagged_object +/* 08BEB0 7F057380 8E440004 */ lw $a0, 4($s2) +/* 08BEB4 7F057384 1040002C */ beqz $v0, .L7F057438 +/* 08BEB8 7F057388 00000000 */ nop +/* 08BEBC 7F05738C 8C590010 */ lw $t9, 0x10($v0) +/* 08BEC0 7F057390 13200029 */ beqz $t9, .L7F057438 +/* 08BEC4 7F057394 00000000 */ nop +/* 08BEC8 7F057398 0FC233F8 */ jal sub_GAME_7F08CFE0 +/* 08BECC 7F05739C 03202025 */ move $a0, $t9 +/* 08BED0 7F0573A0 10400025 */ beqz $v0, .L7F057438 +/* 08BED4 7F0573A4 00000000 */ nop +/* 08BED8 7F0573A8 10000023 */ b .L7F057438 +/* 08BEDC 7F0573AC 00008825 */ move $s1, $zero +objective_microcode_type_1E_photograph_object: +/* 08BEE0 7F0573B0 0FC15C30 */ jal get_handle_to_tagged_object +/* 08BEE4 7F0573B4 8E440004 */ lw $a0, 4($s2) +/* 08BEE8 7F0573B8 8E480008 */ lw $t0, 8($s2) +/* 08BEEC 7F0573BC 00402025 */ move $a0, $v0 +/* 08BEF0 7F0573C0 1500001D */ bnez $t0, .L7F057438 +/* 08BEF4 7F0573C4 00000000 */ nop +/* 08BEF8 7F0573C8 10400008 */ beqz $v0, .L7F0573EC +/* 08BEFC 7F0573CC 00000000 */ nop +/* 08BF00 7F0573D0 8C490010 */ lw $t1, 0x10($v0) +/* 08BF04 7F0573D4 11200005 */ beqz $t1, .L7F0573EC +/* 08BF08 7F0573D8 00000000 */ nop +/* 08BF0C 7F0573DC 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 08BF10 7F0573E0 00000000 */ nop +/* 08BF14 7F0573E4 14400003 */ bnez $v0, .L7F0573F4 +/* 08BF18 7F0573E8 00000000 */ nop +.L7F0573EC: +/* 08BF1C 7F0573EC 10000012 */ b .L7F057438 +/* 08BF20 7F0573F0 24110002 */ li $s1, 2 +.L7F0573F4: +/* 08BF24 7F0573F4 10000010 */ b .L7F057438 +/* 08BF28 7F0573F8 00008825 */ move $s1, $zero +objective_microcode_type_20_enter_room: +/* 08BF2C 7F0573FC 8E4A0008 */ lw $t2, 8($s2) +/* 08BF30 7F057400 1540000D */ bnez $t2, .L7F057438 +/* 08BF34 7F057404 00000000 */ nop +/* 08BF38 7F057408 1000000B */ b .L7F057438 +/* 08BF3C 7F05740C 00008825 */ move $s1, $zero +objective_microcode_type_21_deposit_object_in_room: +/* 08BF40 7F057410 8E4B000C */ lw $t3, 0xc($s2) +/* 08BF44 7F057414 15600008 */ bnez $t3, .L7F057438 +/* 08BF48 7F057418 00000000 */ nop +/* 08BF4C 7F05741C 10000006 */ b .L7F057438 +/* 08BF50 7F057420 00008825 */ move $s1, $zero +objective_microcode_type_22_use_key_analyzer_on_object: +/* 08BF54 7F057424 0FC19BBE */ jal get_keyanalyzer_flag +/* 08BF58 7F057428 00000000 */ nop +/* 08BF5C 7F05742C 14400002 */ bnez $v0, .L7F057438 +/* 08BF60 7F057430 00000000 */ nop +/* 08BF64 7F057434 00008825 */ move $s1, $zero +objective_microcode_type_17_18_1F_default: +.L7F057438: +/* 08BF68 7F057438 16740005 */ bne $s3, $s4, .L7F057450 +/* 08BF6C 7F05743C 00000000 */ nop +/* 08BF70 7F057440 12340008 */ beq $s1, $s4, .L7F057464 +/* 08BF74 7F057444 00000000 */ nop +/* 08BF78 7F057448 10000006 */ b .L7F057464 +/* 08BF7C 7F05744C 02209825 */ move $s3, $s1 +.L7F057450: +/* 08BF80 7F057450 16600004 */ bnez $s3, .L7F057464 +/* 08BF84 7F057454 24010002 */ li $at, 2 +/* 08BF88 7F057458 16210002 */ bne $s1, $at, .L7F057464 +/* 08BF8C 7F05745C 00000000 */ nop +/* 08BF90 7F057460 02209825 */ move $s3, $s1 +.L7F057464: +/* 08BF94 7F057464 0FC15A3D */ jal get_size_of_setup_object_type +/* 08BF98 7F057468 02402025 */ move $a0, $s2 +/* 08BF9C 7F05746C 00026080 */ sll $t4, $v0, 2 +/* 08BFA0 7F057470 01929021 */ addu $s2, $t4, $s2 +/* 08BFA4 7F057474 92430003 */ lbu $v1, 3($s2) +/* 08BFA8 7F057478 24010018 */ li $at, 24 +/* 08BFAC 7F05747C 5461FF88 */ bnel $v1, $at, .L7F0572A0 +/* 08BFB0 7F057480 246EFFE9 */ addiu $t6, $v1, -0x17 +.L7F057484: +/* 08BFB4 7F057484 0FC2440C */ jal get_debug_all_obj_complete_flag +/* 08BFB8 7F057488 00000000 */ nop +/* 08BFBC 7F05748C 10400002 */ beqz $v0, .L7F057498 +/* 08BFC0 7F057490 8FB00018 */ lw $s0, 0x18($sp) +/* 08BFC4 7F057494 24130001 */ li $s3, 1 +.L7F057498: +/* 08BFC8 7F057498 8FBF002C */ lw $ra, 0x2c($sp) +/* 08BFCC 7F05749C 02601025 */ move $v0, $s3 +/* 08BFD0 7F0574A0 8FB30024 */ lw $s3, 0x24($sp) +/* 08BFD4 7F0574A4 8FB1001C */ lw $s1, 0x1c($sp) +/* 08BFD8 7F0574A8 8FB20020 */ lw $s2, 0x20($sp) +/* 08BFDC 7F0574AC 8FB40028 */ lw $s4, 0x28($sp) +/* 08BFE0 7F0574B0 03E00008 */ jr $ra +/* 08BFE4 7F0574B4 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +u32 check_objectives_complete(void) +{ + DIFFICULTY objdiff; + DIFFICULTY curdiff; + int objective; + + for (objective = 0; objective < add_objective(); objective++) + { + objdiff = get_difficulty_for_objective(objective); + curdiff = get_current_difficulty(); + if ((objdiff <= curdiff) && (get_status_of_objective(objective) != 1)) { + return 0; + } + } + return 1; +} + + +#ifdef VERSION_JP +void FUN_7f057a40(void) +{ + num_objective_ptrs[1] = 1; + return; +} +#endif + +#ifdef NONMATCHING +void display_objective_status_text_on_status_change(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.rdata +/*glabel D_80053610*/ +/*.word 0,0,0,0,0,0,0,0,0,0*/ +/*glabel D_80053640*/ +/*.word 0*/ +.text +glabel display_objective_status_text_on_status_change +/* 08C070 7F057540 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 08C074 7F057544 AFB60030 */ sw $s6, 0x30($sp) +/* 08C078 7F057548 AFB30024 */ sw $s3, 0x24($sp) +/* 08C07C 7F05754C 3C0E8005 */ lui $t6, %hi(D_80053610) +/* 08C080 7F057550 27B30054 */ addiu $s3, $sp, 0x54 +/* 08C084 7F057554 3C168003 */ lui $s6, %hi(num_objective_ptrs) +/* 08C088 7F057558 AFB40028 */ sw $s4, 0x28($sp) +/* 08C08C 7F05755C 25CE3610 */ addiu $t6, %lo(D_80053610) # addiu $t6, $t6, 0x3610 +/* 08C090 7F057560 26D622F0 */ addiu $s6, %lo(num_objective_ptrs) # addiu $s6, $s6, 0x22f0 +/* 08C094 7F057564 AFBF003C */ sw $ra, 0x3c($sp) +/* 08C098 7F057568 AFBE0038 */ sw $fp, 0x38($sp) +/* 08C09C 7F05756C AFB70034 */ sw $s7, 0x34($sp) +/* 08C0A0 7F057570 AFB5002C */ sw $s5, 0x2c($sp) +/* 08C0A4 7F057574 AFB20020 */ sw $s2, 0x20($sp) +/* 08C0A8 7F057578 AFB1001C */ sw $s1, 0x1c($sp) +/* 08C0AC 7F05757C AFB00018 */ sw $s0, 0x18($sp) +/* 08C0B0 7F057580 0000A025 */ move $s4, $zero +/* 08C0B4 7F057584 25D90030 */ addiu $t9, $t6, 0x30 +/* 08C0B8 7F057588 02604025 */ move $t0, $s3 +.L7F05758C: +/* 08C0BC 7F05758C 8DC10000 */ lw $at, ($t6) +/* 08C0C0 7F057590 25CE000C */ addiu $t6, $t6, 0xc +/* 08C0C4 7F057594 2508000C */ addiu $t0, $t0, 0xc +/* 08C0C8 7F057598 AD01FFF4 */ sw $at, -0xc($t0) +/* 08C0CC 7F05759C 8DC1FFF8 */ lw $at, -8($t6) +/* 08C0D0 7F0575A0 AD01FFF8 */ sw $at, -8($t0) +/* 08C0D4 7F0575A4 8DC1FFFC */ lw $at, -4($t6) +/* 08C0D8 7F0575A8 15D9FFF8 */ bne $t6, $t9, .L7F05758C +/* 08C0DC 7F0575AC AD01FFFC */ sw $at, -4($t0) +/* 08C0E0 7F0575B0 95C10000 */ lhu $at, ($t6) +/* 08C0E4 7F0575B4 3C158007 */ lui $s5, %hi(dword_CODE_bss_80075D58) +/* 08C0E8 7F0575B8 3C1E8005 */ lui $fp, %hi(aSAC) +/* 08C0EC 7F0575BC A5010000 */ sh $at, ($t0) +/* 08C0F0 7F0575C0 8EC90000 */ lw $t1, ($s6) +/* 08C0F4 7F0575C4 27DE3644 */ addiu $fp, %lo(aSAC) # addiu $fp, $fp, 0x3644 +/* 08C0F8 7F0575C8 26B55D58 */ addiu $s5, %lo(dword_CODE_bss_80075D58) # addiu $s5, $s5, 0x5d58 +/* 08C0FC 7F0575CC 05200051 */ bltz $t1, .L7F057714 +/* 08C100 7F0575D0 00009025 */ move $s2, $zero +/* 08C104 7F0575D4 3C178005 */ lui $s7, %hi(j_text_trigger) +/* 08C108 7F0575D8 26F784D0 */ addiu $s7, %lo(j_text_trigger) # addiu $s7, $s7, -0x7b30 +.L7F0575DC: +/* 08C10C 7F0575DC 0FC15C8E */ jal get_status_of_objective +/* 08C110 7F0575E0 02402025 */ move $a0, $s2 +/* 08C114 7F0575E4 8EAA0000 */ lw $t2, ($s5) +/* 08C118 7F0575E8 00408825 */ move $s1, $v0 +/* 08C11C 7F0575EC 02402025 */ move $a0, $s2 +/* 08C120 7F0575F0 104A003A */ beq $v0, $t2, .L7F0576DC +/* 08C124 7F0575F4 00000000 */ nop +/* 08C128 7F0575F8 0FC15C81 */ jal get_difficulty_for_objective +/* 08C12C 7F0575FC AEA20000 */ sw $v0, ($s5) +/* 08C130 7F057600 0FC2FF04 */ jal get_current_difficulty +/* 08C134 7F057604 00408025 */ move $s0, $v0 +/* 08C138 7F057608 0050082A */ slt $at, $v0, $s0 +/* 08C13C 7F05760C 14200033 */ bnez $at, .L7F0576DC +/* 08C140 7F057610 00000000 */ nop +/* 08C144 7F057614 8EEB0000 */ lw $t3, ($s7) +/* 08C148 7F057618 2690001A */ addiu $s0, $s4, 0x1a +/* 08C14C 7F05761C 3404B02C */ li $a0, 45100 +/* 08C150 7F057620 1160000A */ beqz $t3, .L7F05764C +/* 08C154 7F057624 00000000 */ nop +/* 08C158 7F057628 0FC30776 */ jal get_textptr_for_textID +/* 08C15C 7F05762C 3404B02C */ li $a0, 45100 +/* 08C160 7F057630 02602025 */ move $a0, $s3 +/* 08C164 7F057634 03C02825 */ move $a1, $fp +/* 08C168 7F057638 00403025 */ move $a2, $v0 +/* 08C16C 7F05763C 0C002B25 */ jal sprintf +/* 08C170 7F057640 02003825 */ move $a3, $s0 +/* 08C174 7F057644 1000000A */ b .L7F057670 +/* 08C178 7F057648 24010001 */ li $at, 1 +.L7F05764C: +/* 08C17C 7F05764C 0FC30776 */ jal get_textptr_for_textID +/* 08C180 7F057650 26900061 */ addiu $s0, $s4, 0x61 +/* 08C184 7F057654 3C058005 */ lui $a1, %hi(aSC) +/* 08C188 7F057658 24A5364C */ addiu $a1, %lo(aSC) # addiu $a1, $a1, 0x364c +/* 08C18C 7F05765C 02602025 */ move $a0, $s3 +/* 08C190 7F057660 00403025 */ move $a2, $v0 +/* 08C194 7F057664 0C002B25 */ jal sprintf +/* 08C198 7F057668 02003825 */ move $a3, $s0 +/* 08C19C 7F05766C 24010001 */ li $at, 1 +.L7F057670: +/* 08C1A0 7F057670 16210008 */ bne $s1, $at, .L7F057694 +/* 08C1A4 7F057674 00000000 */ nop +/* 08C1A8 7F057678 0FC30776 */ jal get_textptr_for_textID +/* 08C1AC 7F05767C 3404B02D */ li $a0, 45101 +/* 08C1B0 7F057680 02602025 */ move $a0, $s3 +/* 08C1B4 7F057684 0C0029FF */ jal string_append_from_obseg_textbank +/* 08C1B8 7F057688 00402825 */ move $a1, $v0 +/* 08C1BC 7F05768C 10000011 */ b .L7F0576D4 +/* 08C1C0 7F057690 00000000 */ nop +.L7F057694: +/* 08C1C4 7F057694 16200008 */ bnez $s1, .L7F0576B8 +/* 08C1C8 7F057698 24010002 */ li $at, 2 +/* 08C1CC 7F05769C 0FC30776 */ jal get_textptr_for_textID +/* 08C1D0 7F0576A0 3404B02E */ li $a0, 45102 +/* 08C1D4 7F0576A4 02602025 */ move $a0, $s3 +/* 08C1D8 7F0576A8 0C0029FF */ jal string_append_from_obseg_textbank +/* 08C1DC 7F0576AC 00402825 */ move $a1, $v0 +/* 08C1E0 7F0576B0 10000008 */ b .L7F0576D4 +/* 08C1E4 7F0576B4 00000000 */ nop +.L7F0576B8: +/* 08C1E8 7F0576B8 16210006 */ bne $s1, $at, .L7F0576D4 +/* 08C1EC 7F0576BC 00000000 */ nop +/* 08C1F0 7F0576C0 0FC30776 */ jal get_textptr_for_textID +/* 08C1F4 7F0576C4 3404B02F */ li $a0, 45103 +/* 08C1F8 7F0576C8 02602025 */ move $a0, $s3 +/* 08C1FC 7F0576CC 0C0029FF */ jal string_append_from_obseg_textbank +/* 08C200 7F0576D0 00402825 */ move $a1, $v0 +.L7F0576D4: +/* 08C204 7F0576D4 0FC228F2 */ jal display_string_in_lower_left_corner +/* 08C208 7F0576D8 02602025 */ move $a0, $s3 +.L7F0576DC: +/* 08C20C 7F0576DC 0FC15C81 */ jal get_difficulty_for_objective +/* 08C210 7F0576E0 02402025 */ move $a0, $s2 +/* 08C214 7F0576E4 0FC2FF04 */ jal get_current_difficulty +/* 08C218 7F0576E8 00408025 */ move $s0, $v0 +/* 08C21C 7F0576EC 0050082A */ slt $at, $v0, $s0 +/* 08C220 7F0576F0 54200003 */ bnezl $at, .L7F057700 +/* 08C224 7F0576F4 8ECC0000 */ lw $t4, ($s6) +/* 08C228 7F0576F8 26940001 */ addiu $s4, $s4, 1 +/* 08C22C 7F0576FC 8ECC0000 */ lw $t4, ($s6) +.L7F057700: +/* 08C230 7F057700 26520001 */ addiu $s2, $s2, 1 +/* 08C234 7F057704 26B50004 */ addiu $s5, $s5, 4 +/* 08C238 7F057708 0192082A */ slt $at, $t4, $s2 +/* 08C23C 7F05770C 1020FFB3 */ beqz $at, .L7F0575DC +/* 08C240 7F057710 00000000 */ nop +.L7F057714: +/* 08C244 7F057714 8FBF003C */ lw $ra, 0x3c($sp) +/* 08C248 7F057718 8FB00018 */ lw $s0, 0x18($sp) +/* 08C24C 7F05771C 8FB1001C */ lw $s1, 0x1c($sp) +/* 08C250 7F057720 8FB20020 */ lw $s2, 0x20($sp) +/* 08C254 7F057724 8FB30024 */ lw $s3, 0x24($sp) +/* 08C258 7F057728 8FB40028 */ lw $s4, 0x28($sp) +/* 08C25C 7F05772C 8FB5002C */ lw $s5, 0x2c($sp) +/* 08C260 7F057730 8FB60030 */ lw $s6, 0x30($sp) +/* 08C264 7F057734 8FB70034 */ lw $s7, 0x34($sp) +/* 08C268 7F057738 8FBE0038 */ lw $fp, 0x38($sp) +/* 08C26C 7F05773C 03E00008 */ jr $ra +/* 08C270 7F057740 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel display_objective_status_text_on_status_change +/* 08C5C0 7F057A50 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 08C5C4 7F057A54 AFB30024 */ sw $s3, 0x24($sp) +/* 08C5C8 7F057A58 3C0E8005 */ lui $t6, %hi(D_80053610) # $t6, 0x8005 +/* 08C5CC 7F057A5C 27B30054 */ addiu $s3, $sp, 0x54 +/* 08C5D0 7F057A60 AFB5002C */ sw $s5, 0x2c($sp) +/* 08C5D4 7F057A64 25CE3640 */ addiu $t6, %lo(D_80053610) # addiu $t6, $t6, 0x3640 +/* 08C5D8 7F057A68 AFBF003C */ sw $ra, 0x3c($sp) +/* 08C5DC 7F057A6C AFBE0038 */ sw $fp, 0x38($sp) +/* 08C5E0 7F057A70 AFB70034 */ sw $s7, 0x34($sp) +/* 08C5E4 7F057A74 AFB60030 */ sw $s6, 0x30($sp) +/* 08C5E8 7F057A78 AFB40028 */ sw $s4, 0x28($sp) +/* 08C5EC 7F057A7C AFB20020 */ sw $s2, 0x20($sp) +/* 08C5F0 7F057A80 AFB1001C */ sw $s1, 0x1c($sp) +/* 08C5F4 7F057A84 AFB00018 */ sw $s0, 0x18($sp) +/* 08C5F8 7F057A88 0000A825 */ move $s5, $zero +/* 08C5FC 7F057A8C 25D90030 */ addiu $t9, $t6, 0x30 +/* 08C600 7F057A90 02604025 */ move $t0, $s3 +.L7F057A94: +/* 08C604 7F057A94 8DC10000 */ lw $at, ($t6) +/* 08C608 7F057A98 25CE000C */ addiu $t6, $t6, 0xc +/* 08C60C 7F057A9C 2508000C */ addiu $t0, $t0, 0xc +/* 08C610 7F057AA0 AD01FFF4 */ sw $at, -0xc($t0) +/* 08C614 7F057AA4 8DC1FFF8 */ lw $at, -8($t6) +/* 08C618 7F057AA8 AD01FFF8 */ sw $at, -8($t0) +/* 08C61C 7F057AAC 8DC1FFFC */ lw $at, -4($t6) +/* 08C620 7F057AB0 15D9FFF8 */ bne $t6, $t9, .L7F057A94 +/* 08C624 7F057AB4 AD01FFFC */ sw $at, -4($t0) +/* 08C628 7F057AB8 95C10000 */ lhu $at, ($t6) +/* 08C62C 7F057ABC 3C098003 */ lui $t1, %hi(num_objective_ptrs+4) # $t1, 0x8003 +/* 08C630 7F057AC0 3C168003 */ lui $s6, %hi(num_objective_ptrs) # $s6, 0x8003 +/* 08C634 7F057AC4 A5010000 */ sh $at, ($t0) +/* 08C638 7F057AC8 8D292334 */ lw $t1, %lo(num_objective_ptrs+4)($t1) +/* 08C63C 7F057ACC 26D62330 */ addiu $s6, %lo(num_objective_ptrs) # addiu $s6, $s6, 0x2330 +/* 08C640 7F057AD0 55200058 */ bnezl $t1, .L7F057C34 +/* 08C644 7F057AD4 8FBF003C */ lw $ra, 0x3c($sp) +/* 08C648 7F057AD8 8ECA0000 */ lw $t2, ($s6) +/* 08C64C 7F057ADC 3C148007 */ lui $s4, %hi(dword_CODE_bss_80075D58) # $s4, 0x8007 +/* 08C650 7F057AE0 26945D98 */ addiu $s4, %lo(dword_CODE_bss_80075D58) # addiu $s4, $s4, 0x5d98 +/* 08C654 7F057AE4 05400052 */ bltz $t2, .L7F057C30 +/* 08C658 7F057AE8 00009025 */ move $s2, $zero +/* 08C65C 7F057AEC 3C178005 */ lui $s7, %hi(j_text_trigger) # $s7, 0x8005 +/* 08C660 7F057AF0 26F78500 */ addiu $s7, %lo(j_text_trigger) # addiu $s7, $s7, -0x7b00 +/* 08C664 7F057AF4 241E0001 */ li $fp, 1 +.L7F057AF8: +/* 08C668 7F057AF8 0FC15DCE */ jal get_status_of_objective +/* 08C66C 7F057AFC 02402025 */ move $a0, $s2 +/* 08C670 7F057B00 8E8B0000 */ lw $t3, ($s4) +/* 08C674 7F057B04 00408825 */ move $s1, $v0 +/* 08C678 7F057B08 02402025 */ move $a0, $s2 +/* 08C67C 7F057B0C 104B003A */ beq $v0, $t3, .L7F057BF8 +/* 08C680 7F057B10 00000000 */ nop +/* 08C684 7F057B14 0FC15DC1 */ jal get_difficulty_for_objective +/* 08C688 7F057B18 AE820000 */ sw $v0, ($s4) +/* 08C68C 7F057B1C 0FC3021E */ jal get_current_difficulty +/* 08C690 7F057B20 00408025 */ move $s0, $v0 +/* 08C694 7F057B24 0050082A */ slt $at, $v0, $s0 +/* 08C698 7F057B28 14200033 */ bnez $at, .L7F057BF8 +/* 08C69C 7F057B2C 00000000 */ nop +/* 08C6A0 7F057B30 8EEC0000 */ lw $t4, ($s7) +/* 08C6A4 7F057B34 26B0001A */ addiu $s0, $s5, 0x1a +/* 08C6A8 7F057B38 3404B02C */ li $a0, 45100 +/* 08C6AC 7F057B3C 1180000B */ beqz $t4, .L7F057B6C +/* 08C6B0 7F057B40 00000000 */ nop +/* 08C6B4 7F057B44 0FC30AA2 */ jal get_textptr_for_textID +/* 08C6B8 7F057B48 3404B02C */ li $a0, 45100 +/* 08C6BC 7F057B4C 3C058005 */ lui $a1, %hi(aSAC) # $a1, 0x8005 +/* 08C6C0 7F057B50 24A53674 */ addiu $a1, %lo(aSAC) # addiu $a1, $a1, 0x3674 +/* 08C6C4 7F057B54 02602025 */ move $a0, $s3 +/* 08C6C8 7F057B58 00403025 */ move $a2, $v0 +/* 08C6CC 7F057B5C 0C002B29 */ jal sprintf +/* 08C6D0 7F057B60 02003825 */ move $a3, $s0 +/* 08C6D4 7F057B64 10000009 */ b .L7F057B8C +/* 08C6D8 7F057B68 00000000 */ nop +.L7F057B6C: +/* 08C6DC 7F057B6C 0FC30AA2 */ jal get_textptr_for_textID +/* 08C6E0 7F057B70 26B00061 */ addiu $s0, $s5, 0x61 +/* 08C6E4 7F057B74 3C058005 */ lui $a1, %hi(aSC) # $a1, 0x8005 +/* 08C6E8 7F057B78 24A5367C */ addiu $a1, %lo(aSC) # addiu $a1, $a1, 0x367c +/* 08C6EC 7F057B7C 02602025 */ move $a0, $s3 +/* 08C6F0 7F057B80 00403025 */ move $a2, $v0 +/* 08C6F4 7F057B84 0C002B29 */ jal sprintf +/* 08C6F8 7F057B88 02003825 */ move $a3, $s0 +.L7F057B8C: +/* 08C6FC 7F057B8C 163E0008 */ bne $s1, $fp, .L7F057BB0 +/* 08C700 7F057B90 00000000 */ nop +/* 08C704 7F057B94 0FC30AA2 */ jal get_textptr_for_textID +/* 08C708 7F057B98 3404B02D */ li $a0, 45101 +/* 08C70C 7F057B9C 02602025 */ move $a0, $s3 +/* 08C710 7F057BA0 0C002A03 */ jal string_append_from_obseg_textbank +/* 08C714 7F057BA4 00402825 */ move $a1, $v0 +/* 08C718 7F057BA8 10000011 */ b .L7F057BF0 +/* 08C71C 7F057BAC 00000000 */ nop +.L7F057BB0: +/* 08C720 7F057BB0 16200008 */ bnez $s1, .L7F057BD4 +/* 08C724 7F057BB4 24010002 */ li $at, 2 +/* 08C728 7F057BB8 0FC30AA2 */ jal get_textptr_for_textID +/* 08C72C 7F057BBC 3404B02E */ li $a0, 45102 +/* 08C730 7F057BC0 02602025 */ move $a0, $s3 +/* 08C734 7F057BC4 0C002A03 */ jal string_append_from_obseg_textbank +/* 08C738 7F057BC8 00402825 */ move $a1, $v0 +/* 08C73C 7F057BCC 10000008 */ b .L7F057BF0 +/* 08C740 7F057BD0 00000000 */ nop +.L7F057BD4: +/* 08C744 7F057BD4 16210006 */ bne $s1, $at, .L7F057BF0 +/* 08C748 7F057BD8 00000000 */ nop +/* 08C74C 7F057BDC 0FC30AA2 */ jal get_textptr_for_textID +/* 08C750 7F057BE0 3404B02F */ li $a0, 45103 +/* 08C754 7F057BE4 02602025 */ move $a0, $s3 +/* 08C758 7F057BE8 0C002A03 */ jal string_append_from_obseg_textbank +/* 08C75C 7F057BEC 00402825 */ move $a1, $v0 +.L7F057BF0: +/* 08C760 7F057BF0 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 08C764 7F057BF4 02602025 */ move $a0, $s3 +.L7F057BF8: +/* 08C768 7F057BF8 0FC15DC1 */ jal get_difficulty_for_objective +/* 08C76C 7F057BFC 02402025 */ move $a0, $s2 +/* 08C770 7F057C00 0FC3021E */ jal get_current_difficulty +/* 08C774 7F057C04 00408025 */ move $s0, $v0 +/* 08C778 7F057C08 0050082A */ slt $at, $v0, $s0 +/* 08C77C 7F057C0C 54200003 */ bnezl $at, .L7F057C1C +/* 08C780 7F057C10 8ECD0000 */ lw $t5, ($s6) +/* 08C784 7F057C14 26B50001 */ addiu $s5, $s5, 1 +/* 08C788 7F057C18 8ECD0000 */ lw $t5, ($s6) +.L7F057C1C: +/* 08C78C 7F057C1C 26520001 */ addiu $s2, $s2, 1 +/* 08C790 7F057C20 26940004 */ addiu $s4, $s4, 4 +/* 08C794 7F057C24 01B2082A */ slt $at, $t5, $s2 +/* 08C798 7F057C28 1020FFB3 */ beqz $at, .L7F057AF8 +/* 08C79C 7F057C2C 00000000 */ nop +.L7F057C30: +/* 08C7A0 7F057C30 8FBF003C */ lw $ra, 0x3c($sp) +.L7F057C34: +/* 08C7A4 7F057C34 8FB00018 */ lw $s0, 0x18($sp) +/* 08C7A8 7F057C38 8FB1001C */ lw $s1, 0x1c($sp) +/* 08C7AC 7F057C3C 8FB20020 */ lw $s2, 0x20($sp) +/* 08C7B0 7F057C40 8FB30024 */ lw $s3, 0x24($sp) +/* 08C7B4 7F057C44 8FB40028 */ lw $s4, 0x28($sp) +/* 08C7B8 7F057C48 8FB5002C */ lw $s5, 0x2c($sp) +/* 08C7BC 7F057C4C 8FB60030 */ lw $s6, 0x30($sp) +/* 08C7C0 7F057C50 8FB70034 */ lw $s7, 0x34($sp) +/* 08C7C4 7F057C54 8FBE0038 */ lw $fp, 0x38($sp) +/* 08C7C8 7F057C58 03E00008 */ jr $ra +/* 08C7CC 7F057C5C 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F057744(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F057744 +/* 08C274 7F057744 3C028007 */ lui $v0, %hi(ptr_last_enter_room_subobject_entry_type20) +/* 08C278 7F057748 8C425D88 */ lw $v0, %lo(ptr_last_enter_room_subobject_entry_type20)($v0) +/* 08C27C 7F05774C 3C0AFFF5 */ lui $t2, (0xFFF59FC0 >> 16) # lui $t2, 0xfff5 +/* 08C280 7F057750 00802825 */ move $a1, $a0 +/* 08C284 7F057754 10400022 */ beqz $v0, .L7F0577E0 +/* 08C288 7F057758 354A9FC0 */ ori $t2, (0xFFF59FC0 & 0xFFFF) # ori $t2, $t2, 0x9fc0 +/* 08C28C 7F05775C 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) +/* 08C290 7F057760 24E75D00 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d00 +/* 08C294 7F057764 24090044 */ li $t1, 68 +/* 08C298 7F057768 24080001 */ li $t0, 1 +/* 08C29C 7F05776C 2406002C */ li $a2, 44 +/* 08C2A0 7F057770 8C4E0008 */ lw $t6, 8($v0) +.L7F057774: +/* 08C2A4 7F057774 55C00018 */ bnezl $t6, .L7F0577D8 +/* 08C2A8 7F057778 8C42000C */ lw $v0, 0xc($v0) +/* 08C2AC 7F05777C 8C430004 */ lw $v1, 4($v0) +/* 08C2B0 7F057780 2C612710 */ sltiu $at, $v1, 0x2710 +/* 08C2B4 7F057784 10200007 */ beqz $at, .L7F0577A4 +/* 08C2B8 7F057788 00000000 */ nop +/* 08C2BC 7F05778C 00660019 */ multu $v1, $a2 +/* 08C2C0 7F057790 8CF80018 */ lw $t8, 0x18($a3) +/* 08C2C4 7F057794 00007812 */ mflo $t7 +/* 08C2C8 7F057798 01F82021 */ addu $a0, $t7, $t8 +/* 08C2CC 7F05779C 10000007 */ b .L7F0577BC +/* 08C2D0 7F0577A0 8C830028 */ lw $v1, 0x28($a0) +.L7F0577A4: +/* 08C2D4 7F0577A4 00690019 */ multu $v1, $t1 +/* 08C2D8 7F0577A8 8CEB001C */ lw $t3, 0x1c($a3) +/* 08C2DC 7F0577AC 0000C812 */ mflo $t9 +/* 08C2E0 7F0577B0 032B6021 */ addu $t4, $t9, $t3 +/* 08C2E4 7F0577B4 018A2021 */ addu $a0, $t4, $t2 +/* 08C2E8 7F0577B8 8C830028 */ lw $v1, 0x28($a0) +.L7F0577BC: +/* 08C2EC 7F0577BC 50600006 */ beql $v1, $zero, .L7F0577D8 +/* 08C2F0 7F0577C0 8C42000C */ lw $v0, 0xc($v0) +/* 08C2F4 7F0577C4 906D0003 */ lbu $t5, 3($v1) +/* 08C2F8 7F0577C8 54AD0003 */ bnel $a1, $t5, .L7F0577D8 +/* 08C2FC 7F0577CC 8C42000C */ lw $v0, 0xc($v0) +/* 08C300 7F0577D0 AC480008 */ sw $t0, 8($v0) +/* 08C304 7F0577D4 8C42000C */ lw $v0, 0xc($v0) +.L7F0577D8: +/* 08C308 7F0577D8 5440FFE6 */ bnezl $v0, .L7F057774 +/* 08C30C 7F0577DC 8C4E0008 */ lw $t6, 8($v0) +.L7F0577E0: +/* 08C310 7F0577E0 03E00008 */ jr $ra +/* 08C314 7F0577E4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0577E8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0577E8 +/* 08C318 7F0577E8 3C028007 */ lui $v0, %hi(ptr_last_deposit_in_room_subobject_entry_type21) +/* 08C31C 7F0577EC 8C425D8C */ lw $v0, %lo(ptr_last_deposit_in_room_subobject_entry_type21)($v0) +/* 08C320 7F0577F0 3C0BFFF5 */ lui $t3, (0xFFF59FC0 >> 16) # lui $t3, 0xfff5 +/* 08C324 7F0577F4 00A03025 */ move $a2, $a1 +/* 08C328 7F0577F8 10400025 */ beqz $v0, .L7F057890 +/* 08C32C 7F0577FC 356B9FC0 */ ori $t3, (0xFFF59FC0 & 0xFFFF) # ori $t3, $t3, 0x9fc0 +/* 08C330 7F057800 3C088007 */ lui $t0, %hi(ptr_setup_path_tbl) +/* 08C334 7F057804 25085D00 */ addiu $t0, %lo(ptr_setup_path_tbl) # addiu $t0, $t0, 0x5d00 +/* 08C338 7F057808 240A0044 */ li $t2, 68 +/* 08C33C 7F05780C 24090001 */ li $t1, 1 +/* 08C340 7F057810 2407002C */ li $a3, 44 +/* 08C344 7F057814 8C4E000C */ lw $t6, 0xc($v0) +.L7F057818: +/* 08C348 7F057818 55C0001B */ bnezl $t6, .L7F057888 +/* 08C34C 7F05781C 8C420010 */ lw $v0, 0x10($v0) +/* 08C350 7F057820 8C4F0004 */ lw $t7, 4($v0) +/* 08C354 7F057824 548F0018 */ bnel $a0, $t7, .L7F057888 +/* 08C358 7F057828 8C420010 */ lw $v0, 0x10($v0) +/* 08C35C 7F05782C 8C430008 */ lw $v1, 8($v0) +/* 08C360 7F057830 2C612710 */ sltiu $at, $v1, 0x2710 +/* 08C364 7F057834 10200007 */ beqz $at, .L7F057854 +/* 08C368 7F057838 00000000 */ nop +/* 08C36C 7F05783C 00670019 */ multu $v1, $a3 +/* 08C370 7F057840 8D190018 */ lw $t9, 0x18($t0) +/* 08C374 7F057844 0000C012 */ mflo $t8 +/* 08C378 7F057848 03192821 */ addu $a1, $t8, $t9 +/* 08C37C 7F05784C 10000007 */ b .L7F05786C +/* 08C380 7F057850 8CA30028 */ lw $v1, 0x28($a1) +.L7F057854: +/* 08C384 7F057854 006A0019 */ multu $v1, $t2 +/* 08C388 7F057858 8D0D001C */ lw $t5, 0x1c($t0) +/* 08C38C 7F05785C 00006012 */ mflo $t4 +/* 08C390 7F057860 018D7021 */ addu $t6, $t4, $t5 +/* 08C394 7F057864 01CB2821 */ addu $a1, $t6, $t3 +/* 08C398 7F057868 8CA30028 */ lw $v1, 0x28($a1) +.L7F05786C: +/* 08C39C 7F05786C 50600006 */ beql $v1, $zero, .L7F057888 +/* 08C3A0 7F057870 8C420010 */ lw $v0, 0x10($v0) +/* 08C3A4 7F057874 906F0003 */ lbu $t7, 3($v1) +/* 08C3A8 7F057878 54CF0003 */ bnel $a2, $t7, .L7F057888 +/* 08C3AC 7F05787C 8C420010 */ lw $v0, 0x10($v0) +/* 08C3B0 7F057880 AC49000C */ sw $t1, 0xc($v0) +/* 08C3B4 7F057884 8C420010 */ lw $v0, 0x10($v0) +.L7F057888: +/* 08C3B8 7F057888 5440FFE3 */ bnezl $v0, .L7F057818 +/* 08C3BC 7F05788C 8C4E000C */ lw $t6, 0xc($v0) +.L7F057890: +/* 08C3C0 7F057890 03E00008 */ jr $ra +/* 08C3C4 7F057894 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F057898(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F057898 +/* 08C3C8 7F057898 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 08C3CC 7F05789C AFB10034 */ sw $s1, 0x34($sp) +/* 08C3D0 7F0578A0 3C118007 */ lui $s1, %hi(ptr_last_photo_obj_in_room_subobject_entry_type1E) +/* 08C3D4 7F0578A4 8E315D90 */ lw $s1, %lo(ptr_last_photo_obj_in_room_subobject_entry_type1E)($s1) +/* 08C3D8 7F0578A8 AFBF004C */ sw $ra, 0x4c($sp) +/* 08C3DC 7F0578AC AFB60048 */ sw $s6, 0x48($sp) +/* 08C3E0 7F0578B0 AFB50044 */ sw $s5, 0x44($sp) +/* 08C3E4 7F0578B4 AFB40040 */ sw $s4, 0x40($sp) +/* 08C3E8 7F0578B8 AFB3003C */ sw $s3, 0x3c($sp) +/* 08C3EC 7F0578BC AFB20038 */ sw $s2, 0x38($sp) +/* 08C3F0 7F0578C0 AFB00030 */ sw $s0, 0x30($sp) +/* 08C3F4 7F0578C4 F7B60028 */ sdc1 $f22, 0x28($sp) +/* 08C3F8 7F0578C8 12200071 */ beqz $s1, .L7F057A90 +/* 08C3FC 7F0578CC F7B40020 */ sdc1 $f20, 0x20($sp) +/* 08C400 7F0578D0 4480B000 */ mtc1 $zero, $f22 +/* 08C404 7F0578D4 24160001 */ li $s6, 1 +/* 08C408 7F0578D8 27B50064 */ addiu $s5, $sp, 0x64 +/* 08C40C 7F0578DC 27B40074 */ addiu $s4, $sp, 0x74 +/* 08C410 7F0578E0 27B3007C */ addiu $s3, $sp, 0x7c +/* 08C414 7F0578E4 27B20084 */ addiu $s2, $sp, 0x84 +/* 08C418 7F0578E8 8E2E0008 */ lw $t6, 8($s1) +.L7F0578EC: +/* 08C41C 7F0578EC 55C00066 */ bnezl $t6, .L7F057A88 +/* 08C420 7F0578F0 8E31000C */ lw $s1, 0xc($s1) +/* 08C424 7F0578F4 0FC15C30 */ jal get_handle_to_tagged_object +/* 08C428 7F0578F8 8E240004 */ lw $a0, 4($s1) +/* 08C42C 7F0578FC 10400061 */ beqz $v0, .L7F057A84 +/* 08C430 7F057900 00408025 */ move $s0, $v0 +/* 08C434 7F057904 8C430010 */ lw $v1, 0x10($v0) +/* 08C438 7F057908 5060005F */ beql $v1, $zero, .L7F057A88 +/* 08C43C 7F05790C 8E31000C */ lw $s1, 0xc($s1) +/* 08C440 7F057910 906F0001 */ lbu $t7, 1($v1) +/* 08C444 7F057914 31F80002 */ andi $t8, $t7, 2 +/* 08C448 7F057918 5300005B */ beql $t8, $zero, .L7F057A88 +/* 08C44C 7F05791C 8E31000C */ lw $s1, 0xc($s1) +/* 08C450 7F057920 C4640018 */ lwc1 $f4, 0x18($v1) +/* 08C454 7F057924 4604B03E */ c.le.s $f22, $f4 +/* 08C458 7F057928 00000000 */ nop +/* 08C45C 7F05792C 45020056 */ bc1fl .L7F057A88 +/* 08C460 7F057930 8E31000C */ lw $s1, 0xc($s1) +/* 08C464 7F057934 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 08C468 7F057938 00402025 */ move $a0, $v0 +/* 08C46C 7F05793C 10400051 */ beqz $v0, .L7F057A84 +/* 08C470 7F057940 02402825 */ move $a1, $s2 +/* 08C474 7F057944 8E040010 */ lw $a0, 0x10($s0) +/* 08C478 7F057948 02603025 */ move $a2, $s3 +/* 08C47C 7F05794C 0FC1434C */ jal sub_GAME_7F050D30 +/* 08C480 7F057950 02803825 */ move $a3, $s4 +/* 08C484 7F057954 1040004B */ beqz $v0, .L7F057A84 +/* 08C488 7F057958 02402025 */ move $a0, $s2 +/* 08C48C 7F05795C 02602825 */ move $a1, $s3 +/* 08C490 7F057960 02803025 */ move $a2, $s4 +/* 08C494 7F057964 27A7006C */ addiu $a3, $sp, 0x6c +/* 08C498 7F057968 0FC0FE52 */ jal sub_GAME_7F03F948 +/* 08C49C 7F05796C AFB50010 */ sw $s5, 0x10($sp) +/* 08C4A0 7F057970 0FC1E131 */ jal getPlayer_c_screenleft +/* 08C4A4 7F057974 00000000 */ nop +/* 08C4A8 7F057978 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 08C4AC 7F05797C 4606003C */ c.lt.s $f0, $f6 +/* 08C4B0 7F057980 00000000 */ nop +/* 08C4B4 7F057984 45020040 */ bc1fl .L7F057A88 +/* 08C4B8 7F057988 8E31000C */ lw $s1, 0xc($s1) +/* 08C4BC 7F05798C 0FC1E131 */ jal getPlayer_c_screenleft +/* 08C4C0 7F057990 00000000 */ nop +/* 08C4C4 7F057994 0FC1E129 */ jal getPlayer_c_screenwidth +/* 08C4C8 7F057998 46000506 */ mov.s $f20, $f0 +/* 08C4CC 7F05799C 46140280 */ add.s $f10, $f0, $f20 +/* 08C4D0 7F0579A0 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 08C4D4 7F0579A4 460A403C */ c.lt.s $f8, $f10 +/* 08C4D8 7F0579A8 00000000 */ nop +/* 08C4DC 7F0579AC 45020036 */ bc1fl .L7F057A88 +/* 08C4E0 7F0579B0 8E31000C */ lw $s1, 0xc($s1) +/* 08C4E4 7F0579B4 0FC1E131 */ jal getPlayer_c_screenleft +/* 08C4E8 7F0579B8 00000000 */ nop +/* 08C4EC 7F0579BC C7B00064 */ lwc1 $f16, 0x64($sp) +/* 08C4F0 7F0579C0 4610003C */ c.lt.s $f0, $f16 +/* 08C4F4 7F0579C4 00000000 */ nop +/* 08C4F8 7F0579C8 4502002F */ bc1fl .L7F057A88 +/* 08C4FC 7F0579CC 8E31000C */ lw $s1, 0xc($s1) +/* 08C500 7F0579D0 0FC1E131 */ jal getPlayer_c_screenleft +/* 08C504 7F0579D4 00000000 */ nop +/* 08C508 7F0579D8 0FC1E129 */ jal getPlayer_c_screenwidth +/* 08C50C 7F0579DC 46000506 */ mov.s $f20, $f0 +/* 08C510 7F0579E0 46140100 */ add.s $f4, $f0, $f20 +/* 08C514 7F0579E4 C7B20064 */ lwc1 $f18, 0x64($sp) +/* 08C518 7F0579E8 4604903C */ c.lt.s $f18, $f4 +/* 08C51C 7F0579EC 00000000 */ nop +/* 08C520 7F0579F0 45020025 */ bc1fl .L7F057A88 +/* 08C524 7F0579F4 8E31000C */ lw $s1, 0xc($s1) +/* 08C528 7F0579F8 0FC1E135 */ jal getPlayer_c_screentop +/* 08C52C 7F0579FC 00000000 */ nop +/* 08C530 7F057A00 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 08C534 7F057A04 4606003C */ c.lt.s $f0, $f6 +/* 08C538 7F057A08 00000000 */ nop +/* 08C53C 7F057A0C 4502001E */ bc1fl .L7F057A88 +/* 08C540 7F057A10 8E31000C */ lw $s1, 0xc($s1) +/* 08C544 7F057A14 0FC1E135 */ jal getPlayer_c_screentop +/* 08C548 7F057A18 00000000 */ nop +/* 08C54C 7F057A1C 0FC1E12D */ jal getPlayer_c_screenheight +/* 08C550 7F057A20 46000506 */ mov.s $f20, $f0 +/* 08C554 7F057A24 46140280 */ add.s $f10, $f0, $f20 +/* 08C558 7F057A28 C7A80070 */ lwc1 $f8, 0x70($sp) +/* 08C55C 7F057A2C 460A403C */ c.lt.s $f8, $f10 +/* 08C560 7F057A30 00000000 */ nop +/* 08C564 7F057A34 45020014 */ bc1fl .L7F057A88 +/* 08C568 7F057A38 8E31000C */ lw $s1, 0xc($s1) +/* 08C56C 7F057A3C 0FC1E135 */ jal getPlayer_c_screentop +/* 08C570 7F057A40 00000000 */ nop +/* 08C574 7F057A44 C7B00068 */ lwc1 $f16, 0x68($sp) +/* 08C578 7F057A48 4610003C */ c.lt.s $f0, $f16 +/* 08C57C 7F057A4C 00000000 */ nop +/* 08C580 7F057A50 4502000D */ bc1fl .L7F057A88 +/* 08C584 7F057A54 8E31000C */ lw $s1, 0xc($s1) +/* 08C588 7F057A58 0FC1E135 */ jal getPlayer_c_screentop +/* 08C58C 7F057A5C 00000000 */ nop +/* 08C590 7F057A60 0FC1E12D */ jal getPlayer_c_screenheight +/* 08C594 7F057A64 46000506 */ mov.s $f20, $f0 +/* 08C598 7F057A68 46140100 */ add.s $f4, $f0, $f20 +/* 08C59C 7F057A6C C7B20068 */ lwc1 $f18, 0x68($sp) +/* 08C5A0 7F057A70 4604903C */ c.lt.s $f18, $f4 +/* 08C5A4 7F057A74 00000000 */ nop +/* 08C5A8 7F057A78 45020003 */ bc1fl .L7F057A88 +/* 08C5AC 7F057A7C 8E31000C */ lw $s1, 0xc($s1) +/* 08C5B0 7F057A80 AE360008 */ sw $s6, 8($s1) +.L7F057A84: +/* 08C5B4 7F057A84 8E31000C */ lw $s1, 0xc($s1) +.L7F057A88: +/* 08C5B8 7F057A88 5620FF98 */ bnezl $s1, .L7F0578EC +/* 08C5BC 7F057A8C 8E2E0008 */ lw $t6, 8($s1) +.L7F057A90: +/* 08C5C0 7F057A90 8FBF004C */ lw $ra, 0x4c($sp) +/* 08C5C4 7F057A94 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 08C5C8 7F057A98 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 08C5CC 7F057A9C 8FB00030 */ lw $s0, 0x30($sp) +/* 08C5D0 7F057AA0 8FB10034 */ lw $s1, 0x34($sp) +/* 08C5D4 7F057AA4 8FB20038 */ lw $s2, 0x38($sp) +/* 08C5D8 7F057AA8 8FB3003C */ lw $s3, 0x3c($sp) +/* 08C5DC 7F057AAC 8FB40040 */ lw $s4, 0x40($sp) +/* 08C5E0 7F057AB0 8FB50044 */ lw $s5, 0x44($sp) +/* 08C5E4 7F057AB4 8FB60048 */ lw $s6, 0x48($sp) +/* 08C5E8 7F057AB8 03E00008 */ jr $ra +/* 08C5EC 7F057ABC 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + +//filebreak diff --git a/src/game/objective_status2.c b/src/game/objective_status2.c new file mode 100644 index 0000000..5e1d29e --- /dev/null +++ b/src/game/objective_status2.c @@ -0,0 +1,397 @@ +#include "ultra64.h" + +//D:80032300 +u32 D_80032300 = 0; +//D:80032304 +u32 D_80032304 = 0; +//D:80032308 +u32 D_80032308 = 0; + +#ifdef NONMATCHING +void sub_GAME_7F057AC0(float *param_1) +{ + float firstrandfinal; + float secondrandfinal; + float thirdrandfinal; + + firstrandfinal = D_80032300; + secondrandfinal = D_80032304; + thirdrandfinal = D_80032308; + firstrandfinal = get_random_value() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477; + secondrandfinal = get_random_value() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477; + thirdrandfinal = get_random_value() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477; + matrix_4x4_set_rotation_around_xyz(&firstrandfinal,param_1); + return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80053690 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053694 +.word 0x3dc90fdb /*0.098174773*/ +glabel D_80053698 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005369C +.word 0x3dc90fdb /*0.098174773*/ +glabel D_800536A0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800536A4 +.word 0x3dc90fdb /*0.098174773*/ +.text +glabel sub_GAME_7F057AC0 +/* 08C5F0 7F057AC0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 08C5F4 7F057AC4 3C0F8003 */ lui $t7, %hi(D_80032300) +/* 08C5F8 7F057AC8 AFBF0014 */ sw $ra, 0x14($sp) +/* 08C5FC 7F057ACC AFA40028 */ sw $a0, 0x28($sp) +/* 08C600 7F057AD0 25EF2300 */ addiu $t7, %lo(D_80032300) # addiu $t7, $t7, 0x2300 +/* 08C604 7F057AD4 8DE10000 */ lw $at, ($t7) +/* 08C608 7F057AD8 27AE001C */ addiu $t6, $sp, 0x1c +/* 08C60C 7F057ADC 8DE80004 */ lw $t0, 4($t7) +/* 08C610 7F057AE0 ADC10000 */ sw $at, ($t6) +/* 08C614 7F057AE4 8DE10008 */ lw $at, 8($t7) +/* 08C618 7F057AE8 ADC80004 */ sw $t0, 4($t6) +/* 08C61C 7F057AEC 0C002914 */ jal get_random_value +/* 08C620 7F057AF0 ADC10008 */ sw $at, 8($t6) +/* 08C624 7F057AF4 44822000 */ mtc1 $v0, $f4 +/* 08C628 7F057AF8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 08C62C 7F057AFC 04410004 */ bgez $v0, .L7F057B10 +/* 08C630 7F057B00 468021A0 */ cvt.s.w $f6, $f4 +/* 08C634 7F057B04 44814000 */ mtc1 $at, $f8 +/* 08C638 7F057B08 00000000 */ nop +/* 08C63C 7F057B0C 46083180 */ add.s $f6, $f6, $f8 +.L7F057B10: +/* 08C640 7F057B10 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 08C644 7F057B14 44815000 */ mtc1 $at, $f10 +/* 08C648 7F057B18 3C018005 */ lui $at, %hi(D_80053690) +/* 08C64C 7F057B1C C4323690 */ lwc1 $f18, %lo(D_80053690)($at) +/* 08C650 7F057B20 460A3402 */ mul.s $f16, $f6, $f10 +/* 08C654 7F057B24 3C013D00 */ li $at, 0x3D000000 # 0.031250 +/* 08C658 7F057B28 44814000 */ mtc1 $at, $f8 +/* 08C65C 7F057B2C 3C018005 */ lui $at, %hi(D_80053694) +/* 08C660 7F057B30 C42A3694 */ lwc1 $f10, %lo(D_80053694)($at) +/* 08C664 7F057B34 46128102 */ mul.s $f4, $f16, $f18 +/* 08C668 7F057B38 00000000 */ nop +/* 08C66C 7F057B3C 46082182 */ mul.s $f6, $f4, $f8 +/* 08C670 7F057B40 460A3401 */ sub.s $f16, $f6, $f10 +/* 08C674 7F057B44 0C002914 */ jal get_random_value +/* 08C678 7F057B48 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 08C67C 7F057B4C 44829000 */ mtc1 $v0, $f18 +/* 08C680 7F057B50 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 08C684 7F057B54 04410004 */ bgez $v0, .L7F057B68 +/* 08C688 7F057B58 46809120 */ cvt.s.w $f4, $f18 +/* 08C68C 7F057B5C 44814000 */ mtc1 $at, $f8 +/* 08C690 7F057B60 00000000 */ nop +/* 08C694 7F057B64 46082100 */ add.s $f4, $f4, $f8 +.L7F057B68: +/* 08C698 7F057B68 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 08C69C 7F057B6C 44813000 */ mtc1 $at, $f6 +/* 08C6A0 7F057B70 3C018005 */ lui $at, %hi(D_80053698) +/* 08C6A4 7F057B74 C4303698 */ lwc1 $f16, %lo(D_80053698)($at) +/* 08C6A8 7F057B78 46062282 */ mul.s $f10, $f4, $f6 +/* 08C6AC 7F057B7C 3C013D00 */ li $at, 0x3D000000 # 0.031250 +/* 08C6B0 7F057B80 44814000 */ mtc1 $at, $f8 +/* 08C6B4 7F057B84 3C018005 */ lui $at, %hi(D_8005369C) +/* 08C6B8 7F057B88 C426369C */ lwc1 $f6, %lo(D_8005369C)($at) +/* 08C6BC 7F057B8C 46105482 */ mul.s $f18, $f10, $f16 +/* 08C6C0 7F057B90 00000000 */ nop +/* 08C6C4 7F057B94 46089102 */ mul.s $f4, $f18, $f8 +/* 08C6C8 7F057B98 46062281 */ sub.s $f10, $f4, $f6 +/* 08C6CC 7F057B9C 0C002914 */ jal get_random_value +/* 08C6D0 7F057BA0 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 08C6D4 7F057BA4 44828000 */ mtc1 $v0, $f16 +/* 08C6D8 7F057BA8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 08C6DC 7F057BAC 04410004 */ bgez $v0, .L7F057BC0 +/* 08C6E0 7F057BB0 468084A0 */ cvt.s.w $f18, $f16 +/* 08C6E4 7F057BB4 44814000 */ mtc1 $at, $f8 +/* 08C6E8 7F057BB8 00000000 */ nop +/* 08C6EC 7F057BBC 46089480 */ add.s $f18, $f18, $f8 +.L7F057BC0: +/* 08C6F0 7F057BC0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 08C6F4 7F057BC4 44812000 */ mtc1 $at, $f4 +/* 08C6F8 7F057BC8 3C018005 */ lui $at, %hi(D_800536A0) +/* 08C6FC 7F057BCC C42A36A0 */ lwc1 $f10, %lo(D_800536A0)($at) +/* 08C700 7F057BD0 46049182 */ mul.s $f6, $f18, $f4 +/* 08C704 7F057BD4 3C013D00 */ li $at, 0x3D000000 # 0.031250 +/* 08C708 7F057BD8 44814000 */ mtc1 $at, $f8 +/* 08C70C 7F057BDC 3C018005 */ lui $at, %hi(D_800536A4) +/* 08C710 7F057BE0 C42436A4 */ lwc1 $f4, %lo(D_800536A4)($at) +/* 08C714 7F057BE4 27A4001C */ addiu $a0, $sp, 0x1c +/* 08C718 7F057BE8 8FA50028 */ lw $a1, 0x28($sp) +/* 08C71C 7F057BEC 460A3402 */ mul.s $f16, $f6, $f10 +/* 08C720 7F057BF0 00000000 */ nop +/* 08C724 7F057BF4 46088482 */ mul.s $f18, $f16, $f8 +/* 08C728 7F057BF8 46049181 */ sub.s $f6, $f18, $f4 +/* 08C72C 7F057BFC 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 08C730 7F057C00 E7A60024 */ swc1 $f6, 0x24($sp) +/* 08C734 7F057C04 8FBF0014 */ lw $ra, 0x14($sp) +/* 08C738 7F057C08 27BD0028 */ addiu $sp, $sp, 0x28 +/* 08C73C 7F057C0C 03E00008 */ jr $ra +/* 08C740 7F057C10 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F057C14(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800536A8 +.word 0x3fd55555 /*1.6666666*/ +glabel D_800536AC +.word 0x40555555 /*3.3333333*/ +glabel D_800536B0 +.word 0x3fd55555 /*1.6666666*/ +glabel D_800536B4 +.word 0x3fd55555 /*1.6666666*/ +glabel D_800536B8 +.word 0x40555555 /*3.3333333*/ +.text +glabel sub_GAME_7F057C14 +/* 08C744 7F057C14 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08C748 7F057C18 AFBF0014 */ sw $ra, 0x14($sp) +/* 08C74C 7F057C1C AFA40018 */ sw $a0, 0x18($sp) +/* 08C750 7F057C20 0C002914 */ jal get_random_value +/* 08C754 7F057C24 AFA5001C */ sw $a1, 0x1c($sp) +/* 08C758 7F057C28 44822000 */ mtc1 $v0, $f4 +/* 08C75C 7F057C2C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 08C760 7F057C30 04410004 */ bgez $v0, .L7F057C44 +/* 08C764 7F057C34 468021A0 */ cvt.s.w $f6, $f4 +/* 08C768 7F057C38 44814000 */ mtc1 $at, $f8 +/* 08C76C 7F057C3C 00000000 */ nop +/* 08C770 7F057C40 46083180 */ add.s $f6, $f6, $f8 +.L7F057C44: +/* 08C774 7F057C44 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 08C778 7F057C48 44815000 */ mtc1 $at, $f10 +/* 08C77C 7F057C4C 3C018005 */ lui $at, %hi(D_800536A8) +/* 08C780 7F057C50 C43236A8 */ lwc1 $f18, %lo(D_800536A8)($at) +/* 08C784 7F057C54 460A3402 */ mul.s $f16, $f6, $f10 +/* 08C788 7F057C58 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 08C78C 7F057C5C 44814000 */ mtc1 $at, $f8 +/* 08C790 7F057C60 3C018005 */ lui $at, %hi(D_800536AC) +/* 08C794 7F057C64 C42A36AC */ lwc1 $f10, %lo(D_800536AC)($at) +/* 08C798 7F057C68 8FAE0018 */ lw $t6, 0x18($sp) +/* 08C79C 7F057C6C 46128102 */ mul.s $f4, $f16, $f18 +/* 08C7A0 7F057C70 00000000 */ nop +/* 08C7A4 7F057C74 46082182 */ mul.s $f6, $f4, $f8 +/* 08C7A8 7F057C78 460A3401 */ sub.s $f16, $f6, $f10 +/* 08C7AC 7F057C7C 0C002914 */ jal get_random_value +/* 08C7B0 7F057C80 E5D00000 */ swc1 $f16, ($t6) +/* 08C7B4 7F057C84 44829000 */ mtc1 $v0, $f18 +/* 08C7B8 7F057C88 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 08C7BC 7F057C8C 04410004 */ bgez $v0, .L7F057CA0 +/* 08C7C0 7F057C90 46809120 */ cvt.s.w $f4, $f18 +/* 08C7C4 7F057C94 44814000 */ mtc1 $at, $f8 +/* 08C7C8 7F057C98 00000000 */ nop +/* 08C7CC 7F057C9C 46082100 */ add.s $f4, $f4, $f8 +.L7F057CA0: +/* 08C7D0 7F057CA0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 08C7D4 7F057CA4 44813000 */ mtc1 $at, $f6 +/* 08C7D8 7F057CA8 3C018005 */ lui $at, %hi(D_800536B0) +/* 08C7DC 7F057CAC C43036B0 */ lwc1 $f16, %lo(D_800536B0)($at) +/* 08C7E0 7F057CB0 46062282 */ mul.s $f10, $f4, $f6 +/* 08C7E4 7F057CB4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 08C7E8 7F057CB8 44814000 */ mtc1 $at, $f8 +/* 08C7EC 7F057CBC 8FAF0018 */ lw $t7, 0x18($sp) +/* 08C7F0 7F057CC0 46105482 */ mul.s $f18, $f10, $f16 +/* 08C7F4 7F057CC4 00000000 */ nop +/* 08C7F8 7F057CC8 46089102 */ mul.s $f4, $f18, $f8 +/* 08C7FC 7F057CCC 0C002914 */ jal get_random_value +/* 08C800 7F057CD0 E5E40004 */ swc1 $f4, 4($t7) +/* 08C804 7F057CD4 44823000 */ mtc1 $v0, $f6 +/* 08C808 7F057CD8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 08C80C 7F057CDC 04410004 */ bgez $v0, .L7F057CF0 +/* 08C810 7F057CE0 468032A0 */ cvt.s.w $f10, $f6 +/* 08C814 7F057CE4 44818000 */ mtc1 $at, $f16 +/* 08C818 7F057CE8 00000000 */ nop +/* 08C81C 7F057CEC 46105280 */ add.s $f10, $f10, $f16 +.L7F057CF0: +/* 08C820 7F057CF0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 08C824 7F057CF4 44819000 */ mtc1 $at, $f18 +/* 08C828 7F057CF8 3C018005 */ lui $at, %hi(D_800536B4) +/* 08C82C 7F057CFC C42436B4 */ lwc1 $f4, %lo(D_800536B4)($at) +/* 08C830 7F057D00 46125202 */ mul.s $f8, $f10, $f18 +/* 08C834 7F057D04 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 08C838 7F057D08 44818000 */ mtc1 $at, $f16 +/* 08C83C 7F057D0C 3C018005 */ lui $at, %hi(D_800536B8) +/* 08C840 7F057D10 C43236B8 */ lwc1 $f18, %lo(D_800536B8)($at) +/* 08C844 7F057D14 8FB80018 */ lw $t8, 0x18($sp) +/* 08C848 7F057D18 46044182 */ mul.s $f6, $f8, $f4 +/* 08C84C 7F057D1C 00000000 */ nop +/* 08C850 7F057D20 46103282 */ mul.s $f10, $f6, $f16 +/* 08C854 7F057D24 46125201 */ sub.s $f8, $f10, $f18 +/* 08C858 7F057D28 E7080008 */ swc1 $f8, 8($t8) +/* 08C85C 7F057D2C 0FC15EB0 */ jal sub_GAME_7F057AC0 +/* 08C860 7F057D30 8FA4001C */ lw $a0, 0x1c($sp) +/* 08C864 7F057D34 8FBF0014 */ lw $ra, 0x14($sp) +/* 08C868 7F057D38 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08C86C 7F057D3C 03E00008 */ jr $ra +/* 08C870 7F057D40 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F057D44(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel npc_gravity_modifier +.word 0x3e8e38e4 /*0.27777779*/ +.text +glabel sub_GAME_7F057D44 +/* 08C874 7F057D44 3C018005 */ lui $at, %hi(npc_gravity_modifier) +/* 08C878 7F057D48 44866000 */ mtc1 $a2, $f12 +/* 08C87C 7F057D4C C42436BC */ lwc1 $f4, %lo(npc_gravity_modifier)($at) +/* 08C880 7F057D50 C4A20000 */ lwc1 $f2, ($a1) +/* 08C884 7F057D54 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 08C888 7F057D58 46046182 */ mul.s $f6, $f12, $f4 +/* 08C88C 7F057D5C 44818000 */ mtc1 $at, $f16 +/* 08C890 7F057D60 C4840000 */ lwc1 $f4, ($a0) +/* 08C894 7F057D64 46061001 */ sub.s $f0, $f2, $f6 +/* 08C898 7F057D68 46001200 */ add.s $f8, $f2, $f0 +/* 08C89C 7F057D6C 46086282 */ mul.s $f10, $f12, $f8 +/* 08C8A0 7F057D70 00000000 */ nop +/* 08C8A4 7F057D74 46105482 */ mul.s $f18, $f10, $f16 +/* 08C8A8 7F057D78 46122180 */ add.s $f6, $f4, $f18 +/* 08C8AC 7F057D7C E4860000 */ swc1 $f6, ($a0) +/* 08C8B0 7F057D80 03E00008 */ jr $ra +/* 08C8B4 7F057D84 E4A00000 */ swc1 $f0, ($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F057D88(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F057D88 +/* 08C8B8 7F057D88 44866000 */ mtc1 $a2, $f12 +/* 08C8BC 7F057D8C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08C8C0 7F057D90 AFBF0014 */ sw $ra, 0x14($sp) +/* 08C8C4 7F057D94 AFA5001C */ sw $a1, 0x1c($sp) +/* 08C8C8 7F057D98 00803825 */ move $a3, $a0 +/* 08C8CC 7F057D9C 44066000 */ mfc1 $a2, $f12 +/* 08C8D0 7F057DA0 AFA70018 */ sw $a3, 0x18($sp) +/* 08C8D4 7F057DA4 24840004 */ addiu $a0, $a0, 4 +/* 08C8D8 7F057DA8 24A50004 */ addiu $a1, $a1, 4 +/* 08C8DC 7F057DAC 0FC15F51 */ jal sub_GAME_7F057D44 +/* 08C8E0 7F057DB0 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 08C8E4 7F057DB4 8FA2001C */ lw $v0, 0x1c($sp) +/* 08C8E8 7F057DB8 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 08C8EC 7F057DBC 8FA70018 */ lw $a3, 0x18($sp) +/* 08C8F0 7F057DC0 C4460000 */ lwc1 $f6, ($v0) +/* 08C8F4 7F057DC4 C4E40000 */ lwc1 $f4, ($a3) +/* 08C8F8 7F057DC8 46066202 */ mul.s $f8, $f12, $f6 +/* 08C8FC 7F057DCC C4F00008 */ lwc1 $f16, 8($a3) +/* 08C900 7F057DD0 46082280 */ add.s $f10, $f4, $f8 +/* 08C904 7F057DD4 E4EA0000 */ swc1 $f10, ($a3) +/* 08C908 7F057DD8 C4520008 */ lwc1 $f18, 8($v0) +/* 08C90C 7F057DDC 46126182 */ mul.s $f6, $f12, $f18 +/* 08C910 7F057DE0 46068100 */ add.s $f4, $f16, $f6 +/* 08C914 7F057DE4 E4E40008 */ swc1 $f4, 8($a3) +/* 08C918 7F057DE8 8FBF0014 */ lw $ra, 0x14($sp) +/* 08C91C 7F057DEC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08C920 7F057DF0 03E00008 */ jr $ra +/* 08C924 7F057DF4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F057DF8(float *param_1,float *param_2,int param_3) +{ + int i; + + for (i = 0; 0 < param_3; i++) + { + matrix_4x4_multiply_homogeneous_in_place(param_2,param_1); + } +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F057DF8 +/* 08C928 7F057DF8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 08C92C 7F057DFC AFB30020 */ sw $s3, 0x20($sp) +/* 08C930 7F057E00 AFB2001C */ sw $s2, 0x1c($sp) +/* 08C934 7F057E04 AFB10018 */ sw $s1, 0x18($sp) +/* 08C938 7F057E08 AFB00014 */ sw $s0, 0x14($sp) +/* 08C93C 7F057E0C 00C08825 */ move $s1, $a2 +/* 08C940 7F057E10 00A09025 */ move $s2, $a1 +/* 08C944 7F057E14 00809825 */ move $s3, $a0 +/* 08C948 7F057E18 AFBF0024 */ sw $ra, 0x24($sp) +/* 08C94C 7F057E1C 18C00007 */ blez $a2, .L7F057E3C +/* 08C950 7F057E20 00008025 */ move $s0, $zero +/* 08C954 7F057E24 02402025 */ move $a0, $s2 +.L7F057E28: +/* 08C958 7F057E28 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 08C95C 7F057E2C 02602825 */ move $a1, $s3 +/* 08C960 7F057E30 26100001 */ addiu $s0, $s0, 1 +/* 08C964 7F057E34 5611FFFC */ bnel $s0, $s1, .L7F057E28 +/* 08C968 7F057E38 02402025 */ move $a0, $s2 +.L7F057E3C: +/* 08C96C 7F057E3C 8FBF0024 */ lw $ra, 0x24($sp) +/* 08C970 7F057E40 8FB00014 */ lw $s0, 0x14($sp) +/* 08C974 7F057E44 8FB10018 */ lw $s1, 0x18($sp) +/* 08C978 7F057E48 8FB2001C */ lw $s2, 0x1c($sp) +/* 08C97C 7F057E4C 8FB30020 */ lw $s3, 0x20($sp) +/* 08C980 7F057E50 03E00008 */ jr $ra +/* 08C984 7F057E54 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F057E58(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F057E58 +/* 08C988 7F057E58 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08C98C 7F057E5C 8FAE0028 */ lw $t6, 0x28($sp) +/* 08C990 7F057E60 AFA60020 */ sw $a2, 0x20($sp) +/* 08C994 7F057E64 AFBF0014 */ sw $ra, 0x14($sp) +/* 08C998 7F057E68 448E2000 */ mtc1 $t6, $f4 +/* 08C99C 7F057E6C AFA70024 */ sw $a3, 0x24($sp) +/* 08C9A0 7F057E70 46802120 */ cvt.s.w $f4, $f4 +/* 08C9A4 7F057E74 44062000 */ mfc1 $a2, $f4 +/* 08C9A8 7F057E78 0FC15F62 */ jal sub_GAME_7F057D88 +/* 08C9AC 7F057E7C 00000000 */ nop +/* 08C9B0 7F057E80 8FA40020 */ lw $a0, 0x20($sp) +/* 08C9B4 7F057E84 8FA50024 */ lw $a1, 0x24($sp) +/* 08C9B8 7F057E88 0FC15F7E */ jal sub_GAME_7F057DF8 +/* 08C9BC 7F057E8C 8FA60028 */ lw $a2, 0x28($sp) +/* 08C9C0 7F057E90 8FBF0014 */ lw $ra, 0x14($sp) +/* 08C9C4 7F057E94 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08C9C8 7F057E98 03E00008 */ jr $ra +/* 08C9CC 7F057E9C 00000000 */ nop +) +#endif + + diff --git a/src/game/othermodemicrocode.c b/src/game/othermodemicrocode.c new file mode 100644 index 0000000..1995a9e --- /dev/null +++ b/src/game/othermodemicrocode.c @@ -0,0 +1,1726 @@ +#include "ultra64.h" + + + + +s32 is_less_than_certain_power_of_2(int number) + +{ + if (number < 2) { + return 0; + } + if (number < 3) { + return 1; + } + if (number < 5) { + return 2; + } + if (number < 9) { + return 3; + } + if (number < 0x11) { + return 4; + } + if (number < 0x21) { + return 5; + } + if (number < 0x41) { + return 6; + } + if (number < 0x81) { + return 7; + } + return 8; +} + + + + + + +#ifdef NONMATCHING +s32 ceil8000(s32 arg0) { + // Node 0 + if ((arg0 + 0xf) < 0) + { + // Node 1 + return; + // (possible return value: ((s32) (32768.0f / (f32) (((s32) (arg0 + 0xf) >> 4) * 0x10)) + (s32) (((32768.0f / (f32) (((s32) (arg0 + 0xf) >> 4) * 0x10)) - (f32) (s32) (32768.0f / (f32) (((s32) (arg0 + 0xf) >> 4) * 0x10))) + D_80054F90))) + } + // (possible return value: ((s32) (32768.0f / (f32) (((s32) (arg0 + 0xf) >> 4) * 0x10)) + (s32) (((32768.0f / (f32) (((s32) (arg0 + 0xf) >> 4) * 0x10)) - (f32) (s32) (32768.0f / (f32) (((s32) (arg0 + 0xf) >> 4) * 0x10))) + D_80054F90))) +} + +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054F90 +.word 0x3f7fffef /*0.99999899*/ +.text +glabel ceil8000 +/* 0AB178 7F076648 3C014700 */ li $at, 0x47000000 # 32768.000000 +/* 0AB17C 7F07664C 44812000 */ mtc1 $at, $f4 +/* 0AB180 7F076650 248E000F */ addiu $t6, $a0, 0xf +/* 0AB184 7F076654 05C10003 */ bgez $t6, .L7F076664 +/* 0AB188 7F076658 000E7903 */ sra $t7, $t6, 4 +/* 0AB18C 7F07665C 25C1000F */ addiu $at, $t6, 0xf +/* 0AB190 7F076660 00017903 */ sra $t7, $at, 4 +.L7F076664: +/* 0AB194 7F076664 000FC100 */ sll $t8, $t7, 4 +/* 0AB198 7F076668 44983000 */ mtc1 $t8, $f6 +/* 0AB19C 7F07666C 3C018005 */ lui $at, %hi(D_80054F90) +/* 0AB1A0 7F076670 46803220 */ cvt.s.w $f8, $f6 +/* 0AB1A4 7F076674 46082003 */ div.s $f0, $f4, $f8 +/* 0AB1A8 7F076678 C4244F90 */ lwc1 $f4, %lo(D_80054F90)($at) +/* 0AB1AC 7F07667C 4600028D */ trunc.w.s $f10, $f0 +/* 0AB1B0 7F076680 44035000 */ mfc1 $v1, $f10 +/* 0AB1B4 7F076684 00000000 */ nop +/* 0AB1B8 7F076688 44838000 */ mtc1 $v1, $f16 +/* 0AB1BC 7F07668C 00000000 */ nop +/* 0AB1C0 7F076690 468084A0 */ cvt.s.w $f18, $f16 +/* 0AB1C4 7F076694 46120181 */ sub.s $f6, $f0, $f18 +/* 0AB1C8 7F076698 46043200 */ add.s $f8, $f6, $f4 +/* 0AB1CC 7F07669C 4600428D */ trunc.w.s $f10, $f8 +/* 0AB1D0 7F0766A0 44095000 */ mfc1 $t1, $f10 +/* 0AB1D4 7F0766A4 03E00008 */ jr $ra +/* 0AB1D8 7F0766A8 00691021 */ addu $v0, $v1, $t1 +) +#endif + + + + + +#ifdef NONMATCHING +s32 ceil4000(s32 arg0) { + // Node 0 + if ((arg0 + 7) < 0) + { + // Node 1 + return; + // (possible return value: ((s32) (16384.0f / (f32) (((s32) (arg0 + 7) >> 3) * 8)) + (s32) (((16384.0f / (f32) (((s32) (arg0 + 7) >> 3) * 8)) - (f32) (s32) (16384.0f / (f32) (((s32) (arg0 + 7) >> 3) * 8))) + D_80054F94))) + } + // (possible return value: ((s32) (16384.0f / (f32) (((s32) (arg0 + 7) >> 3) * 8)) + (s32) (((16384.0f / (f32) (((s32) (arg0 + 7) >> 3) * 8)) - (f32) (s32) (16384.0f / (f32) (((s32) (arg0 + 7) >> 3) * 8))) + D_80054F94))) +} + +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054F94 +.word 0x3f7fffef /*0.99999899*/ +.text +glabel ceil4000 +/* 0AB1DC 7F0766AC 3C014680 */ li $at, 0x46800000 # 16384.000000 +/* 0AB1E0 7F0766B0 44812000 */ mtc1 $at, $f4 +/* 0AB1E4 7F0766B4 248E0007 */ addiu $t6, $a0, 7 +/* 0AB1E8 7F0766B8 05C10003 */ bgez $t6, .L7F0766C8 +/* 0AB1EC 7F0766BC 000E78C3 */ sra $t7, $t6, 3 +/* 0AB1F0 7F0766C0 25C10007 */ addiu $at, $t6, 7 +/* 0AB1F4 7F0766C4 000178C3 */ sra $t7, $at, 3 +.L7F0766C8: +/* 0AB1F8 7F0766C8 000FC0C0 */ sll $t8, $t7, 3 +/* 0AB1FC 7F0766CC 44983000 */ mtc1 $t8, $f6 +/* 0AB200 7F0766D0 3C018005 */ lui $at, %hi(D_80054F94) +/* 0AB204 7F0766D4 46803220 */ cvt.s.w $f8, $f6 +/* 0AB208 7F0766D8 46082003 */ div.s $f0, $f4, $f8 +/* 0AB20C 7F0766DC C4244F94 */ lwc1 $f4, %lo(D_80054F94)($at) +/* 0AB210 7F0766E0 4600028D */ trunc.w.s $f10, $f0 +/* 0AB214 7F0766E4 44035000 */ mfc1 $v1, $f10 +/* 0AB218 7F0766E8 00000000 */ nop +/* 0AB21C 7F0766EC 44838000 */ mtc1 $v1, $f16 +/* 0AB220 7F0766F0 00000000 */ nop +/* 0AB224 7F0766F4 468084A0 */ cvt.s.w $f18, $f16 +/* 0AB228 7F0766F8 46120181 */ sub.s $f6, $f0, $f18 +/* 0AB22C 7F0766FC 46043200 */ add.s $f8, $f6, $f4 +/* 0AB230 7F076700 4600428D */ trunc.w.s $f10, $f8 +/* 0AB234 7F076704 44095000 */ mfc1 $t1, $f10 +/* 0AB238 7F076708 03E00008 */ jr $ra +/* 0AB23C 7F07670C 00691021 */ addu $v0, $v1, $t1 +) +#endif + + + + + +#ifdef NONMATCHING +s32 ceil2000(s32 arg0) { + // Node 0 + if ((arg0 + 3) < 0) + { + // Node 1 + return; + // (possible return value: ((s32) (8192.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4)) + (s32) (((8192.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4)) - (f32) (s32) (8192.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4))) + D_80054F98))) + } + // (possible return value: ((s32) (8192.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4)) + (s32) (((8192.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4)) - (f32) (s32) (8192.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4))) + D_80054F98))) +} + +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054F98 +.word 0x3f7fffef /*0.99999899*/ +.text +glabel ceil2000 +/* 0AB240 7F076710 3C014600 */ li $at, 0x46000000 # 8192.000000 +/* 0AB244 7F076714 44812000 */ mtc1 $at, $f4 +/* 0AB248 7F076718 248E0003 */ addiu $t6, $a0, 3 +/* 0AB24C 7F07671C 05C10003 */ bgez $t6, .L7F07672C +/* 0AB250 7F076720 000E7883 */ sra $t7, $t6, 2 +/* 0AB254 7F076724 25C10003 */ addiu $at, $t6, 3 +/* 0AB258 7F076728 00017883 */ sra $t7, $at, 2 +.L7F07672C: +/* 0AB25C 7F07672C 000FC080 */ sll $t8, $t7, 2 +/* 0AB260 7F076730 44983000 */ mtc1 $t8, $f6 +/* 0AB264 7F076734 3C018005 */ lui $at, %hi(D_80054F98) +/* 0AB268 7F076738 46803220 */ cvt.s.w $f8, $f6 +/* 0AB26C 7F07673C 46082003 */ div.s $f0, $f4, $f8 +/* 0AB270 7F076740 C4244F98 */ lwc1 $f4, %lo(D_80054F98)($at) +/* 0AB274 7F076744 4600028D */ trunc.w.s $f10, $f0 +/* 0AB278 7F076748 44035000 */ mfc1 $v1, $f10 +/* 0AB27C 7F07674C 00000000 */ nop +/* 0AB280 7F076750 44838000 */ mtc1 $v1, $f16 +/* 0AB284 7F076754 00000000 */ nop +/* 0AB288 7F076758 468084A0 */ cvt.s.w $f18, $f16 +/* 0AB28C 7F07675C 46120181 */ sub.s $f6, $f0, $f18 +/* 0AB290 7F076760 46043200 */ add.s $f8, $f6, $f4 +/* 0AB294 7F076764 4600428D */ trunc.w.s $f10, $f8 +/* 0AB298 7F076768 44095000 */ mfc1 $t1, $f10 +/* 0AB29C 7F07676C 03E00008 */ jr $ra +/* 0AB2A0 7F076770 00691021 */ addu $v0, $v1, $t1 +) +#endif + + + + + +#ifdef NONMATCHING +s32 ceil1000(s32 arg0) { + // Node 0 + if ((arg0 + 3) < 0) + { + // Node 1 + return; + // (possible return value: ((s32) (4096.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4)) + (s32) (((4096.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4)) - (f32) (s32) (4096.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4))) + D_80054F9C))) + } + // (possible return value: ((s32) (4096.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4)) + (s32) (((4096.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4)) - (f32) (s32) (4096.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4))) + D_80054F9C))) +} + +#else +GLOBAL_ASM( +.late_rodata +glabel D_80054F9C +.word 0x3f7fffef /*0.99999899*/ +.text +glabel ceil1000 +/* 0AB2A4 7F076774 3C014580 */ li $at, 0x45800000 # 4096.000000 +/* 0AB2A8 7F076778 44812000 */ mtc1 $at, $f4 +/* 0AB2AC 7F07677C 248E0003 */ addiu $t6, $a0, 3 +/* 0AB2B0 7F076780 05C10003 */ bgez $t6, .L7F076790 +/* 0AB2B4 7F076784 000E7883 */ sra $t7, $t6, 2 +/* 0AB2B8 7F076788 25C10003 */ addiu $at, $t6, 3 +/* 0AB2BC 7F07678C 00017883 */ sra $t7, $at, 2 +.L7F076790: +/* 0AB2C0 7F076790 000FC080 */ sll $t8, $t7, 2 +/* 0AB2C4 7F076794 44983000 */ mtc1 $t8, $f6 +/* 0AB2C8 7F076798 3C018005 */ lui $at, %hi(D_80054F9C) +/* 0AB2CC 7F07679C 46803220 */ cvt.s.w $f8, $f6 +/* 0AB2D0 7F0767A0 46082003 */ div.s $f0, $f4, $f8 +/* 0AB2D4 7F0767A4 C4244F9C */ lwc1 $f4, %lo(D_80054F9C)($at) +/* 0AB2D8 7F0767A8 4600028D */ trunc.w.s $f10, $f0 +/* 0AB2DC 7F0767AC 44035000 */ mfc1 $v1, $f10 +/* 0AB2E0 7F0767B0 00000000 */ nop +/* 0AB2E4 7F0767B4 44838000 */ mtc1 $v1, $f16 +/* 0AB2E8 7F0767B8 00000000 */ nop +/* 0AB2EC 7F0767BC 468084A0 */ cvt.s.w $f18, $f16 +/* 0AB2F0 7F0767C0 46120181 */ sub.s $f6, $f0, $f18 +/* 0AB2F4 7F0767C4 46043200 */ add.s $f8, $f6, $f4 +/* 0AB2F8 7F0767C8 4600428D */ trunc.w.s $f10, $f8 +/* 0AB2FC 7F0767CC 44095000 */ mfc1 $t1, $f10 +/* 0AB300 7F0767D0 03E00008 */ jr $ra +/* 0AB304 7F0767D4 00691021 */ addu $v0, $v1, $t1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0767D8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0767D8 +/* 0AB308 7F0767D8 1CC00002 */ bgtz $a2, .L7F0767E4 +/* 0AB30C 7F0767DC 00001825 */ move $v1, $zero +/* 0AB310 7F0767E0 24060001 */ li $a2, 1 +.L7F0767E4: +/* 0AB314 7F0767E4 18C00016 */ blez $a2, .L7F076840 +/* 0AB318 7F0767E8 248E000F */ addiu $t6, $a0, 0xf +.L7F0767EC: +/* 0AB31C 7F0767EC 05C10003 */ bgez $t6, .L7F0767FC +/* 0AB320 7F0767F0 000E7903 */ sra $t7, $t6, 4 +/* 0AB324 7F0767F4 25C1000F */ addiu $at, $t6, 0xf +/* 0AB328 7F0767F8 00017903 */ sra $t7, $at, 4 +.L7F0767FC: +/* 0AB32C 7F0767FC 000FC080 */ sll $t8, $t7, 2 +/* 0AB330 7F076800 03050019 */ multu $t8, $a1 +/* 0AB334 7F076804 28810002 */ slti $at, $a0, 2 +/* 0AB338 7F076808 24C6FFFF */ addiu $a2, $a2, -1 +/* 0AB33C 7F07680C 00044043 */ sra $t0, $a0, 1 +/* 0AB340 7F076810 00054843 */ sra $t1, $a1, 1 +/* 0AB344 7F076814 0000C812 */ mflo $t9 +/* 0AB348 7F076818 00791821 */ addu $v1, $v1, $t9 +/* 0AB34C 7F07681C 54200003 */ bnezl $at, .L7F07682C +/* 0AB350 7F076820 28A10002 */ slti $at, $a1, 2 +/* 0AB354 7F076824 01002025 */ move $a0, $t0 +/* 0AB358 7F076828 28A10002 */ slti $at, $a1, 2 +.L7F07682C: +/* 0AB35C 7F07682C 14200002 */ bnez $at, .L7F076838 +/* 0AB360 7F076830 00000000 */ nop +/* 0AB364 7F076834 01202825 */ move $a1, $t1 +.L7F076838: +/* 0AB368 7F076838 5CC0FFEC */ bgtzl $a2, .L7F0767EC +/* 0AB36C 7F07683C 248E000F */ addiu $t6, $a0, 0xf +.L7F076840: +/* 0AB370 7F076840 03E00008 */ jr $ra +/* 0AB374 7F076844 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F076848(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F076848 +/* 0AB378 7F076848 1CC00002 */ bgtz $a2, .L7F076854 +/* 0AB37C 7F07684C 00001825 */ move $v1, $zero +/* 0AB380 7F076850 24060001 */ li $a2, 1 +.L7F076854: +/* 0AB384 7F076854 18C00016 */ blez $a2, .L7F0768B0 +/* 0AB388 7F076858 248E0007 */ addiu $t6, $a0, 7 +.L7F07685C: +/* 0AB38C 7F07685C 05C10003 */ bgez $t6, .L7F07686C +/* 0AB390 7F076860 000E78C3 */ sra $t7, $t6, 3 +/* 0AB394 7F076864 25C10007 */ addiu $at, $t6, 7 +/* 0AB398 7F076868 000178C3 */ sra $t7, $at, 3 +.L7F07686C: +/* 0AB39C 7F07686C 000FC080 */ sll $t8, $t7, 2 +/* 0AB3A0 7F076870 03050019 */ multu $t8, $a1 +/* 0AB3A4 7F076874 28810002 */ slti $at, $a0, 2 +/* 0AB3A8 7F076878 24C6FFFF */ addiu $a2, $a2, -1 +/* 0AB3AC 7F07687C 00044043 */ sra $t0, $a0, 1 +/* 0AB3B0 7F076880 00054843 */ sra $t1, $a1, 1 +/* 0AB3B4 7F076884 0000C812 */ mflo $t9 +/* 0AB3B8 7F076888 00791821 */ addu $v1, $v1, $t9 +/* 0AB3BC 7F07688C 54200003 */ bnezl $at, .L7F07689C +/* 0AB3C0 7F076890 28A10002 */ slti $at, $a1, 2 +/* 0AB3C4 7F076894 01002025 */ move $a0, $t0 +/* 0AB3C8 7F076898 28A10002 */ slti $at, $a1, 2 +.L7F07689C: +/* 0AB3CC 7F07689C 14200002 */ bnez $at, .L7F0768A8 +/* 0AB3D0 7F0768A0 00000000 */ nop +/* 0AB3D4 7F0768A4 01202825 */ move $a1, $t1 +.L7F0768A8: +/* 0AB3D8 7F0768A8 5CC0FFEC */ bgtzl $a2, .L7F07685C +/* 0AB3DC 7F0768AC 248E0007 */ addiu $t6, $a0, 7 +.L7F0768B0: +/* 0AB3E0 7F0768B0 03E00008 */ jr $ra +/* 0AB3E4 7F0768B4 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0768B8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0768B8 +/* 0AB3E8 7F0768B8 1CC00002 */ bgtz $a2, .L7F0768C4 +/* 0AB3EC 7F0768BC 00001825 */ move $v1, $zero +/* 0AB3F0 7F0768C0 24060001 */ li $a2, 1 +.L7F0768C4: +/* 0AB3F4 7F0768C4 18C00016 */ blez $a2, .L7F076920 +/* 0AB3F8 7F0768C8 248E0003 */ addiu $t6, $a0, 3 +.L7F0768CC: +/* 0AB3FC 7F0768CC 05C10003 */ bgez $t6, .L7F0768DC +/* 0AB400 7F0768D0 000E7883 */ sra $t7, $t6, 2 +/* 0AB404 7F0768D4 25C10003 */ addiu $at, $t6, 3 +/* 0AB408 7F0768D8 00017883 */ sra $t7, $at, 2 +.L7F0768DC: +/* 0AB40C 7F0768DC 000FC080 */ sll $t8, $t7, 2 +/* 0AB410 7F0768E0 03050019 */ multu $t8, $a1 +/* 0AB414 7F0768E4 28810002 */ slti $at, $a0, 2 +/* 0AB418 7F0768E8 24C6FFFF */ addiu $a2, $a2, -1 +/* 0AB41C 7F0768EC 00044043 */ sra $t0, $a0, 1 +/* 0AB420 7F0768F0 00054843 */ sra $t1, $a1, 1 +/* 0AB424 7F0768F4 0000C812 */ mflo $t9 +/* 0AB428 7F0768F8 00791821 */ addu $v1, $v1, $t9 +/* 0AB42C 7F0768FC 54200003 */ bnezl $at, .L7F07690C +/* 0AB430 7F076900 28A10002 */ slti $at, $a1, 2 +/* 0AB434 7F076904 01002025 */ move $a0, $t0 +/* 0AB438 7F076908 28A10002 */ slti $at, $a1, 2 +.L7F07690C: +/* 0AB43C 7F07690C 14200002 */ bnez $at, .L7F076918 +/* 0AB440 7F076910 00000000 */ nop +/* 0AB444 7F076914 01202825 */ move $a1, $t1 +.L7F076918: +/* 0AB448 7F076918 5CC0FFEC */ bgtzl $a2, .L7F0768CC +/* 0AB44C 7F07691C 248E0003 */ addiu $t6, $a0, 3 +.L7F076920: +/* 0AB450 7F076920 03E00008 */ jr $ra +/* 0AB454 7F076924 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F076928(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F076928 +/* 0AB458 7F076928 1CC00002 */ bgtz $a2, .L7F076934 +/* 0AB45C 7F07692C 00001825 */ move $v1, $zero +/* 0AB460 7F076930 24060001 */ li $a2, 1 +.L7F076934: +/* 0AB464 7F076934 18C00016 */ blez $a2, .L7F076990 +/* 0AB468 7F076938 248E0003 */ addiu $t6, $a0, 3 +.L7F07693C: +/* 0AB46C 7F07693C 05C10003 */ bgez $t6, .L7F07694C +/* 0AB470 7F076940 000E7883 */ sra $t7, $t6, 2 +/* 0AB474 7F076944 25C10003 */ addiu $at, $t6, 3 +/* 0AB478 7F076948 00017883 */ sra $t7, $at, 2 +.L7F07694C: +/* 0AB47C 7F07694C 000FC080 */ sll $t8, $t7, 2 +/* 0AB480 7F076950 03050019 */ multu $t8, $a1 +/* 0AB484 7F076954 28810002 */ slti $at, $a0, 2 +/* 0AB488 7F076958 24C6FFFF */ addiu $a2, $a2, -1 +/* 0AB48C 7F07695C 00044043 */ sra $t0, $a0, 1 +/* 0AB490 7F076960 00054843 */ sra $t1, $a1, 1 +/* 0AB494 7F076964 0000C812 */ mflo $t9 +/* 0AB498 7F076968 00791821 */ addu $v1, $v1, $t9 +/* 0AB49C 7F07696C 54200003 */ bnezl $at, .L7F07697C +/* 0AB4A0 7F076970 28A10002 */ slti $at, $a1, 2 +/* 0AB4A4 7F076974 01002025 */ move $a0, $t0 +/* 0AB4A8 7F076978 28A10002 */ slti $at, $a1, 2 +.L7F07697C: +/* 0AB4AC 7F07697C 14200002 */ bnez $at, .L7F076988 +/* 0AB4B0 7F076980 00000000 */ nop +/* 0AB4B4 7F076984 01202825 */ move $a1, $t1 +.L7F076988: +/* 0AB4B8 7F076988 5CC0FFEC */ bgtzl $a2, .L7F07693C +/* 0AB4BC 7F07698C 248E0003 */ addiu $t6, $a0, 3 +.L7F076990: +/* 0AB4C0 7F076990 03E00008 */ jr $ra +/* 0AB4C4 7F076994 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void generate_microcode_for_othermode_setting(void) { + +} +#else +GLOBAL_ASM( +.text +glabel generate_microcode_for_othermode_setting +/* 0AB4C8 7F076998 AFA50004 */ sw $a1, 4($sp) +/* 0AB4CC 7F07699C 24080001 */ li $t0, 1 +/* 0AB4D0 7F0769A0 14C80078 */ bne $a2, $t0, .L7F076B84 +/* 0AB4D4 7F0769A4 8C820000 */ lw $v0, ($a0) +/* 0AB4D8 7F0769A8 00401825 */ move $v1, $v0 +/* 0AB4DC 7F0769AC 24420008 */ addiu $v0, $v0, 8 +/* 0AB4E0 7F0769B0 3C0EE700 */ lui $t6, 0xe700 +/* 0AB4E4 7F0769B4 AC6E0000 */ sw $t6, ($v1) +/* 0AB4E8 7F0769B8 AC600004 */ sw $zero, 4($v1) +/* 0AB4EC 7F0769BC 00402825 */ move $a1, $v0 +/* 0AB4F0 7F0769C0 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00 #BA00140200000000 +/* 0AB4F4 7F0769C4 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402 # +/* 0AB4F8 7F0769C8 ACAF0000 */ sw $t7, ($a1) # +/* 0AB4FC 7F0769CC ACA00004 */ sw $zero, 4($a1) #gDPSetCycleType(G_CYC_1CYCLE) +/* 0AB500 7F0769D0 8FB80004 */ lw $t8, 4($sp) +/* 0AB504 7F0769D4 24420008 */ addiu $v0, $v0, 8 +/* 0AB508 7F0769D8 24010002 */ li $at, 2 +/* 0AB50C 7F0769DC 13080007 */ beq $t8, $t0, .L7F0769FC +/* 0AB510 7F0769E0 00000000 */ nop +/* 0AB514 7F0769E4 13010023 */ beq $t8, $at, .L7F076A74 +/* 0AB518 7F0769E8 24010003 */ li $at, 3 +/* 0AB51C 7F0769EC 1301003F */ beq $t8, $at, .L7F076AEC +/* 0AB520 7F0769F0 24010004 */ li $at, 4 +/* 0AB524 7F0769F4 13010050 */ beq $t8, $at, .L7F076B38 +/* 0AB528 7F0769F8 00000000 */ nop +.L7F0769FC: +/* 0AB52C 7F0769FC 10E00015 */ beqz $a3, .L7F076A54 +/* 0AB530 7F076A00 00401825 */ move $v1, $v0 +/* 0AB534 7F076A04 28E10002 */ slti $at, $a3, 2 +/* 0AB538 7F076A08 1420000A */ bnez $at, .L7F076A34 +/* 0AB53C 7F076A0C 00401825 */ move $v1, $v0 +/* 0AB540 7F076A10 00401825 */ move $v1, $v0 +/* 0AB544 7F076A14 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 #B900031D00552D58 +/* 0AB548 7F076A18 3C090055 */ lui $t1, (0x00552D58 >> 16) # lui $t1, 0x55 # +/* 0AB54C 7F076A1C 35292D58 */ ori $t1, (0x00552D58 & 0xFFFF) # ori $t1, $t1, 0x2d58 # +/* 0AB550 7F076A20 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d # +/* 0AB554 7F076A24 AC790000 */ sw $t9, ($v1) # +/* 0AB558 7F076A28 AC690004 */ sw $t1, 4($v1) #gDPSetRenderMode(,) +/* 0AB55C 7F076A2C 100000CC */ b .L7F076D60 +/* 0AB560 7F076A30 24420008 */ addiu $v0, $v0, 8 +.L7F076A34: +/* 0AB564 7F076A34 3C0AB900 */ lui $t2, (0xB900031D >> 16) # lui $t2, 0xb900 #B900031D00552078 +/* 0AB568 7F076A38 3C0B0055 */ lui $t3, (0x00552078 >> 16) # lui $t3, 0x55 # +/* 0AB56C 7F076A3C 356B2078 */ ori $t3, (0x00552078 & 0xFFFF) # ori $t3, $t3, 0x2078 # +/* 0AB570 7F076A40 354A031D */ ori $t2, (0xB900031D & 0xFFFF) # ori $t2, $t2, 0x31d # +/* 0AB574 7F076A44 AC6A0000 */ sw $t2, ($v1) # +/* 0AB578 7F076A48 AC6B0004 */ sw $t3, 4($v1) #gDPSetRenderMode(,) +/* 0AB57C 7F076A4C 100000C4 */ b .L7F076D60 +/* 0AB580 7F076A50 24420008 */ addiu $v0, $v0, 8 +.L7F076A54: +/* 0AB584 7F076A54 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 #B900031D 00552048 +/* 0AB588 7F076A58 3C0D0055 */ lui $t5, (0x00552048 >> 16) # lui $t5, 0x55 # +/* 0AB58C 7F076A5C 35AD2048 */ ori $t5, (0x00552048 & 0xFFFF) # ori $t5, $t5, 0x2048 # +/* 0AB590 7F076A60 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d # +/* 0AB594 7F076A64 AC6C0000 */ sw $t4, ($v1) # +/* 0AB598 7F076A68 AC6D0004 */ sw $t5, 4($v1) #gDPSetRenderMode(,) +/* 0AB59C 7F076A6C 100000BC */ b .L7F076D60 +/* 0AB5A0 7F076A70 24420008 */ addiu $v0, $v0, 8 +.L7F076A74: +/* 0AB5A4 7F076A74 10E00015 */ beqz $a3, .L7F076ACC +/* 0AB5A8 7F076A78 00401825 */ move $v1, $v0 +/* 0AB5AC 7F076A7C 28E10002 */ slti $at, $a3, 2 +/* 0AB5B0 7F076A80 1420000A */ bnez $at, .L7F076AAC +/* 0AB5B4 7F076A84 00401825 */ move $v1, $v0 +/* 0AB5B8 7F076A88 00401825 */ move $v1, $v0 +/* 0AB5BC 7F076A8C 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 #B900031D00504DD8 +/* 0AB5C0 7F076A90 3C0F0050 */ lui $t7, (0x00504DD8 >> 16) # lui $t7, 0x50 # +/* 0AB5C4 7F076A94 35EF4DD8 */ ori $t7, (0x00504DD8 & 0xFFFF) # ori $t7, $t7, 0x4dd8 # +/* 0AB5C8 7F076A98 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d # +/* 0AB5CC 7F076A9C AC6E0000 */ sw $t6, ($v1) # +/* 0AB5D0 7F076AA0 AC6F0004 */ sw $t7, 4($v1) #gDPSetRenderMode(,) +/* 0AB5D4 7F076AA4 100000AE */ b .L7F076D60 +/* 0AB5D8 7F076AA8 24420008 */ addiu $v0, $v0, 8 +.L7F076AAC: +/* 0AB5DC 7F076AAC 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 #B900031D005049D8 +/* 0AB5E0 7F076AB0 3C190050 */ lui $t9, (0x005049D8 >> 16) # lui $t9, 0x50 # +/* 0AB5E4 7F076AB4 373949D8 */ ori $t9, (0x005049D8 & 0xFFFF) # ori $t9, $t9, 0x49d8 # +/* 0AB5E8 7F076AB8 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d # +/* 0AB5EC 7F076ABC AC780000 */ sw $t8, ($v1) # +/* 0AB5F0 7F076AC0 AC790004 */ sw $t9, 4($v1) #gDPSetRenderMode(,) +/* 0AB5F4 7F076AC4 100000A6 */ b .L7F076D60 +/* 0AB5F8 7F076AC8 24420008 */ addiu $v0, $v0, 8 +.L7F076ACC: +/* 0AB5FC 7F076ACC 3C09B900 */ lui $t1, (0xB900031D >> 16) # lui $t1, 0xb900 # +/* 0AB600 7F076AD0 3C0A0050 */ lui $t2, (0x005041C8 >> 16) # lui $t2, 0x50 # +/* 0AB604 7F076AD4 354A41C8 */ ori $t2, (0x005041C8 & 0xFFFF) # ori $t2, $t2, 0x41c8 # +/* 0AB608 7F076AD8 3529031D */ ori $t1, (0xB900031D & 0xFFFF) # ori $t1, $t1, 0x31d # +/* 0AB60C 7F076ADC AC690000 */ sw $t1, ($v1) # +/* 0AB610 7F076AE0 AC6A0004 */ sw $t2, 4($v1) #gDPSetRenderMode(,) +/* 0AB614 7F076AE4 1000009E */ b .L7F076D60 +/* 0AB618 7F076AE8 24420008 */ addiu $v0, $v0, 8 +.L7F076AEC: +/* 0AB61C 7F076AEC 10E0000A */ beqz $a3, .L7F076B18 +/* 0AB620 7F076AF0 00401825 */ move $v1, $v0 +/* 0AB624 7F076AF4 00401825 */ move $v1, $v0 +/* 0AB628 7F076AF8 3C0BB900 */ lui $t3, (0xB900031D >> 16) # lui $t3, 0xb900 # +/* 0AB62C 7F076AFC 3C0C0055 */ lui $t4, (0x00553078 >> 16) # lui $t4, 0x55 # +/* 0AB630 7F076B00 358C3078 */ ori $t4, (0x00553078 & 0xFFFF) # ori $t4, $t4, 0x3078 # +/* 0AB634 7F076B04 356B031D */ ori $t3, (0xB900031D & 0xFFFF) # ori $t3, $t3, 0x31d # +/* 0AB638 7F076B08 AC6B0000 */ sw $t3, ($v1) # +/* 0AB63C 7F076B0C AC6C0004 */ sw $t4, 4($v1) #gDPSetRenderMode(,) +/* 0AB640 7F076B10 10000093 */ b .L7F076D60 +/* 0AB644 7F076B14 24420008 */ addiu $v0, $v0, 8 +.L7F076B18: +/* 0AB648 7F076B18 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 # +/* 0AB64C 7F076B1C 3C0E0055 */ lui $t6, (0x00553048 >> 16) # lui $t6, 0x55 # +/* 0AB650 7F076B20 35CE3048 */ ori $t6, (0x00553048 & 0xFFFF) # ori $t6, $t6, 0x3048 # +/* 0AB654 7F076B24 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d # +/* 0AB658 7F076B28 AC6D0000 */ sw $t5, ($v1) # +/* 0AB65C 7F076B2C AC6E0004 */ sw $t6, 4($v1) #gDPSetRenderMode(,) +/* 0AB660 7F076B30 1000008B */ b .L7F076D60 +/* 0AB664 7F076B34 24420008 */ addiu $v0, $v0, 8 +.L7F076B38: +/* 0AB668 7F076B38 10E0000A */ beqz $a3, .L7F076B64 +/* 0AB66C 7F076B3C 00401825 */ move $v1, $v0 +/* 0AB670 7F076B40 00401825 */ move $v1, $v0 +/* 0AB674 7F076B44 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 # +/* 0AB678 7F076B48 3C180050 */ lui $t8, (0x00504B50 >> 16) # lui $t8, 0x50 # +/* 0AB67C 7F076B4C 37184B50 */ ori $t8, (0x00504B50 & 0xFFFF) # ori $t8, $t8, 0x4b50 # +/* 0AB680 7F076B50 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d # +/* 0AB684 7F076B54 AC6F0000 */ sw $t7, ($v1) # +/* 0AB688 7F076B58 AC780004 */ sw $t8, 4($v1) #gDPSetRenderMode(,) +/* 0AB68C 7F076B5C 10000080 */ b .L7F076D60 +/* 0AB690 7F076B60 24420008 */ addiu $v0, $v0, 8 +.L7F076B64: +/* 0AB694 7F076B64 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 # +/* 0AB698 7F076B68 3C090050 */ lui $t1, (0x00504340 >> 16) # lui $t1, 0x50 # +/* 0AB69C 7F076B6C 35294340 */ ori $t1, (0x00504340 & 0xFFFF) # ori $t1, $t1, 0x4340 # +/* 0AB6A0 7F076B70 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d # +/* 0AB6A4 7F076B74 AC790000 */ sw $t9, ($v1) # +/* 0AB6A8 7F076B78 AC690004 */ sw $t1, 4($v1) #gDPSetRenderMode(,) +/* 0AB6AC 7F076B7C 10000078 */ b .L7F076D60 +/* 0AB6B0 7F076B80 24420008 */ addiu $v0, $v0, 8 +.L7F076B84: +/* 0AB6B4 7F076B84 00401825 */ move $v1, $v0 +/* 0AB6B8 7F076B88 24420008 */ addiu $v0, $v0, 8 +/* 0AB6BC 7F076B8C 3C0AE700 */ lui $t2, 0xe700 #e7000000000000 +/* 0AB6C0 7F076B90 AC6A0000 */ sw $t2, ($v1) #gDPPipeSync() +/* 0AB6C4 7F076B94 AC600004 */ sw $zero, 4($v1) +/* 0AB6C8 7F076B98 00402825 */ move $a1, $v0 +/* 0AB6CC 7F076B9C 3C0BBA00 */ lui $t3, (0xBA001402 >> 16) # lui $t3, 0xba00 # +/* 0AB6D0 7F076BA0 356B1402 */ ori $t3, (0xBA001402 & 0xFFFF) # ori $t3, $t3, 0x1402 # +/* 0AB6D4 7F076BA4 3C0C0010 */ lui $t4, 0x10 #2c +/* 0AB6D8 7F076BA8 ACAC0004 */ sw $t4, 4($a1) #gDPSetCycleType(G_CYC_2CYCLE) +/* 0AB6DC 7F076BAC ACAB0000 */ sw $t3, ($a1) +/* 0AB6E0 7F076BB0 8FAD0004 */ lw $t5, 4($sp) +/* 0AB6E4 7F076BB4 24420008 */ addiu $v0, $v0, 8 +/* 0AB6E8 7F076BB8 24010002 */ li $at, 2 +/* 0AB6EC 7F076BBC 11A80007 */ beq $t5, $t0, .L7F076BDC +/* 0AB6F0 7F076BC0 00000000 */ nop +/* 0AB6F4 7F076BC4 11A10023 */ beq $t5, $at, .L7F076C54 +/* 0AB6F8 7F076BC8 24010003 */ li $at, 3 +/* 0AB6FC 7F076BCC 11A1003F */ beq $t5, $at, .L7F076CCC +/* 0AB700 7F076BD0 24010004 */ li $at, 4 +/* 0AB704 7F076BD4 11A10050 */ beq $t5, $at, .L7F076D18 +/* 0AB708 7F076BD8 00000000 */ nop +.L7F076BDC: +/* 0AB70C 7F076BDC 10E00015 */ beqz $a3, .L7F076C34 +/* 0AB710 7F076BE0 00401825 */ move $v1, $v0 +/* 0AB714 7F076BE4 28E10002 */ slti $at, $a3, 2 +/* 0AB718 7F076BE8 1420000A */ bnez $at, .L7F076C14 +/* 0AB71C 7F076BEC 00401825 */ move $v1, $v0 +/* 0AB720 7F076BF0 00401825 */ move $v1, $v0 +/* 0AB724 7F076BF4 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 # +/* 0AB728 7F076BF8 3C0F0C19 */ lui $t7, (0x0C192D58 >> 16) # lui $t7, 0xc19 # +/* 0AB72C 7F076BFC 35EF2D58 */ ori $t7, (0x0C192D58 & 0xFFFF) # ori $t7, $t7, 0x2d58 # +/* 0AB730 7F076C00 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d # +/* 0AB734 7F076C04 AC6E0000 */ sw $t6, ($v1) # +/* 0AB738 7F076C08 AC6F0004 */ sw $t7, 4($v1) #gDPSetRenderMode(,) +/* 0AB73C 7F076C0C 10000054 */ b .L7F076D60 +/* 0AB740 7F076C10 24420008 */ addiu $v0, $v0, 8 +.L7F076C14: +/* 0AB744 7F076C14 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 # +/* 0AB748 7F076C18 3C190C19 */ lui $t9, (0x0C192078 >> 16) # lui $t9, 0xc19 # +/* 0AB74C 7F076C1C 37392078 */ ori $t9, (0x0C192078 & 0xFFFF) # ori $t9, $t9, 0x2078 # +/* 0AB750 7F076C20 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d # +/* 0AB754 7F076C24 AC780000 */ sw $t8, ($v1) # +/* 0AB758 7F076C28 AC790004 */ sw $t9, 4($v1) #gDPSetRenderMode(,) +/* 0AB75C 7F076C2C 1000004C */ b .L7F076D60 +/* 0AB760 7F076C30 24420008 */ addiu $v0, $v0, 8 +.L7F076C34: +/* 0AB764 7F076C34 3C09B900 */ lui $t1, (0xB900031D >> 16) # lui $t1, 0xb900 # +/* 0AB768 7F076C38 3C0A0C19 */ lui $t2, (0x0C192048 >> 16) # lui $t2, 0xc19 # +/* 0AB76C 7F076C3C 354A2048 */ ori $t2, (0x0C192048 & 0xFFFF) # ori $t2, $t2, 0x2048 # +/* 0AB770 7F076C40 3529031D */ ori $t1, (0xB900031D & 0xFFFF) # ori $t1, $t1, 0x31d # +/* 0AB774 7F076C44 AC690000 */ sw $t1, ($v1) # +/* 0AB778 7F076C48 AC6A0004 */ sw $t2, 4($v1) #gDPSetRenderMode(,) +/* 0AB77C 7F076C4C 10000044 */ b .L7F076D60 +/* 0AB780 7F076C50 24420008 */ addiu $v0, $v0, 8 +.L7F076C54: +/* 0AB784 7F076C54 10E00015 */ beqz $a3, .L7F076CAC +/* 0AB788 7F076C58 00401825 */ move $v1, $v0 +/* 0AB78C 7F076C5C 28E10002 */ slti $at, $a3, 2 +/* 0AB790 7F076C60 1420000A */ bnez $at, .L7F076C8C +/* 0AB794 7F076C64 00401825 */ move $v1, $v0 +/* 0AB798 7F076C68 00401825 */ move $v1, $v0 +/* 0AB79C 7F076C6C 3C0BB900 */ lui $t3, (0xB900031D >> 16) # lui $t3, 0xb900 # +/* 0AB7A0 7F076C70 3C0C0C18 */ lui $t4, (0x0C184DD8 >> 16) # lui $t4, 0xc18 # +/* 0AB7A4 7F076C74 358C4DD8 */ ori $t4, (0x0C184DD8 & 0xFFFF) # ori $t4, $t4, 0x4dd8 # +/* 0AB7A8 7F076C78 356B031D */ ori $t3, (0xB900031D & 0xFFFF) # ori $t3, $t3, 0x31d # +/* 0AB7AC 7F076C7C AC6B0000 */ sw $t3, ($v1) # +/* 0AB7B0 7F076C80 AC6C0004 */ sw $t4, 4($v1) #gDPSetRenderMode(,) +/* 0AB7B4 7F076C84 10000036 */ b .L7F076D60 +/* 0AB7B8 7F076C88 24420008 */ addiu $v0, $v0, 8 +.L7F076C8C: +/* 0AB7BC 7F076C8C 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 # +/* 0AB7C0 7F076C90 3C0E0C18 */ lui $t6, (0x0C1849D8 >> 16) # lui $t6, 0xc18 # +/* 0AB7C4 7F076C94 35CE49D8 */ ori $t6, (0x0C1849D8 & 0xFFFF) # ori $t6, $t6, 0x49d8 # +/* 0AB7C8 7F076C98 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d # +/* 0AB7CC 7F076C9C AC6D0000 */ sw $t5, ($v1) # +/* 0AB7D0 7F076CA0 AC6E0004 */ sw $t6, 4($v1) #gDPSetRenderMode(,) +/* 0AB7D4 7F076CA4 1000002E */ b .L7F076D60 +/* 0AB7D8 7F076CA8 24420008 */ addiu $v0, $v0, 8 +.L7F076CAC: +/* 0AB7DC 7F076CAC 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 # +/* 0AB7E0 7F076CB0 3C180C18 */ lui $t8, (0x0C1841C8 >> 16) # lui $t8, 0xc18 # +/* 0AB7E4 7F076CB4 371841C8 */ ori $t8, (0x0C1841C8 & 0xFFFF) # ori $t8, $t8, 0x41c8 # +/* 0AB7E8 7F076CB8 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d # +/* 0AB7EC 7F076CBC AC6F0000 */ sw $t7, ($v1) # +/* 0AB7F0 7F076CC0 AC780004 */ sw $t8, 4($v1) #gDPSetRenderMode(,) +/* 0AB7F4 7F076CC4 10000026 */ b .L7F076D60 +/* 0AB7F8 7F076CC8 24420008 */ addiu $v0, $v0, 8 +.L7F076CCC: +/* 0AB7FC 7F076CCC 10E0000A */ beqz $a3, .L7F076CF8 +/* 0AB800 7F076CD0 00401825 */ move $v1, $v0 +/* 0AB804 7F076CD4 00401825 */ move $v1, $v0 +/* 0AB808 7F076CD8 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 # +/* 0AB80C 7F076CDC 3C090C19 */ lui $t1, (0x0C193078 >> 16) # lui $t1, 0xc19 # +/* 0AB810 7F076CE0 35293078 */ ori $t1, (0x0C193078 & 0xFFFF) # ori $t1, $t1, 0x3078 # +/* 0AB814 7F076CE4 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d # +/* 0AB818 7F076CE8 AC790000 */ sw $t9, ($v1) # +/* 0AB81C 7F076CEC AC690004 */ sw $t1, 4($v1) #gDPSetRenderMode(,) +/* 0AB820 7F076CF0 1000001B */ b .L7F076D60 +/* 0AB824 7F076CF4 24420008 */ addiu $v0, $v0, 8 +.L7F076CF8: +/* 0AB828 7F076CF8 3C0AB900 */ lui $t2, (0xB900031D >> 16) # lui $t2, 0xb900 # +/* 0AB82C 7F076CFC 3C0B0C19 */ lui $t3, (0x0C193048 >> 16) # lui $t3, 0xc19 # +/* 0AB830 7F076D00 356B3048 */ ori $t3, (0x0C193048 & 0xFFFF) # ori $t3, $t3, 0x3048 # +/* 0AB834 7F076D04 354A031D */ ori $t2, (0xB900031D & 0xFFFF) # ori $t2, $t2, 0x31d # +/* 0AB838 7F076D08 AC6A0000 */ sw $t2, ($v1) # +/* 0AB83C 7F076D0C AC6B0004 */ sw $t3, 4($v1) #gDPSetRenderMode(,) +/* 0AB840 7F076D10 10000013 */ b .L7F076D60 +/* 0AB844 7F076D14 24420008 */ addiu $v0, $v0, 8 +.L7F076D18: +/* 0AB848 7F076D18 10E0000A */ beqz $a3, .L7F076D44 +/* 0AB84C 7F076D1C 00401825 */ move $v1, $v0 +/* 0AB850 7F076D20 00401825 */ move $v1, $v0 +/* 0AB854 7F076D24 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 # +/* 0AB858 7F076D28 3C0D0C18 */ lui $t5, (0x0C184B50 >> 16) # lui $t5, 0xc18 # +/* 0AB85C 7F076D2C 35AD4B50 */ ori $t5, (0x0C184B50 & 0xFFFF) # ori $t5, $t5, 0x4b50 # +/* 0AB860 7F076D30 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d # +/* 0AB864 7F076D34 AC6C0000 */ sw $t4, ($v1) # +/* 0AB868 7F076D38 AC6D0004 */ sw $t5, 4($v1) #gDPSetRenderMode(,) +/* 0AB86C 7F076D3C 10000008 */ b .L7F076D60 +/* 0AB870 7F076D40 24420008 */ addiu $v0, $v0, 8 +.L7F076D44: +/* 0AB874 7F076D44 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 # +/* 0AB878 7F076D48 3C0F0C18 */ lui $t7, (0x0C184340 >> 16) # lui $t7, 0xc18 # +/* 0AB87C 7F076D4C 35EF4340 */ ori $t7, (0x0C184340 & 0xFFFF) # ori $t7, $t7, 0x4340 # +/* 0AB880 7F076D50 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d # +/* 0AB884 7F076D54 AC6E0000 */ sw $t6, ($v1) # +/* 0AB888 7F076D58 AC6F0004 */ sw $t7, 4($v1) #gDPSetRenderMode(,) +/* 0AB88C 7F076D5C 24420008 */ addiu $v0, $v0, 8 +.L7F076D60: +/* 0AB890 7F076D60 03E00008 */ jr $ra +/* 0AB894 7F076D64 AC820000 */ sw $v0, ($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void likely_generate_DL_for_image_declaration(void) { + +} +#else +GLOBAL_ASM( +.text +glabel likely_generate_DL_for_image_declaration +/* 0AB898 7F076D68 27BDFE90 */ addiu $sp, $sp, -0x170 +/* 0AB89C 7F076D6C AFBF0034 */ sw $ra, 0x34($sp) +/* 0AB8A0 7F076D70 AFB70030 */ sw $s7, 0x30($sp) +/* 0AB8A4 7F076D74 AFB6002C */ sw $s6, 0x2c($sp) +/* 0AB8A8 7F076D78 AFB50028 */ sw $s5, 0x28($sp) +/* 0AB8AC 7F076D7C AFB40024 */ sw $s4, 0x24($sp) +/* 0AB8B0 7F076D80 AFB30020 */ sw $s3, 0x20($sp) +/* 0AB8B4 7F076D84 AFB2001C */ sw $s2, 0x1c($sp) +/* 0AB8B8 7F076D88 AFB10018 */ sw $s1, 0x18($sp) +/* 0AB8BC 7F076D8C AFB00014 */ sw $s0, 0x14($sp) +/* 0AB8C0 7F076D90 AFA40170 */ sw $a0, 0x170($sp) +/* 0AB8C4 7F076D94 AFA60178 */ sw $a2, 0x178($sp) +/* 0AB8C8 7F076D98 8C8F0000 */ lw $t7, ($a0) +/* 0AB8CC 7F076D9C 00E08025 */ move $s0, $a3 +/* 0AB8D0 7F076DA0 00A0B825 */ move $s7, $a1 +/* 0AB8D4 7F076DA4 14A00025 */ bnez $a1, .L7F076E3C +/* 0AB8D8 7F076DA8 AFAF016C */ sw $t7, 0x16c($sp) +/* 0AB8DC 7F076DAC 00C02825 */ move $a1, $a2 +/* 0AB8E0 7F076DB0 24060001 */ li $a2, 1 +/* 0AB8E4 7F076DB4 0FC1DA66 */ jal generate_microcode_for_othermode_setting +/* 0AB8E8 7F076DB8 27A4016C */ addiu $a0, $sp, 0x16c +/* 0AB8EC 7F076DBC 2A010002 */ slti $at, $s0, 2 +/* 0AB8F0 7F076DC0 1420000D */ bnez $at, .L7F076DF8 +/* 0AB8F4 7F076DC4 8FAF016C */ lw $t7, 0x16c($sp) +/* 0AB8F8 7F076DC8 8FA2016C */ lw $v0, 0x16c($sp) +/* 0AB8FC 7F076DCC 320E00FF */ andi $t6, $s0, 0xff +/* 0AB900 7F076DD0 000E7C00 */ sll $t7, $t6, 0x10 +/* 0AB904 7F076DD4 3C01BB00 */ lui $at, 0xbb00 +/* 0AB908 7F076DD8 24590008 */ addiu $t9, $v0, 8 +/* 0AB90C 7F076DDC AFB9016C */ sw $t9, 0x16c($sp) +/* 0AB910 7F076DE0 01E1C025 */ or $t8, $t7, $at +/* 0AB914 7F076DE4 37190001 */ ori $t9, $t8, 1 +/* 0AB918 7F076DE8 240EFFFF */ li $t6, -1 +/* 0AB91C 7F076DEC AC4E0004 */ sw $t6, 4($v0) +/* 0AB920 7F076DF0 10000008 */ b .L7F076E14 +/* 0AB924 7F076DF4 AC590000 */ sw $t9, ($v0) +.L7F076DF8: +/* 0AB928 7F076DF8 25F80008 */ addiu $t8, $t7, 8 +/* 0AB92C 7F076DFC AFB8016C */ sw $t8, 0x16c($sp) +/* 0AB930 7F076E00 3C19BB00 */ lui $t9, (0xBB000001 >> 16) # lui $t9, 0xbb00 # +/* 0AB934 7F076E04 37390001 */ ori $t9, (0xBB000001 & 0xFFFF) # ori $t9, $t9, 1 # +/* 0AB938 7F076E08 240EFFFF */ li $t6, -1 +/* 0AB93C 7F076E0C ADEE0004 */ sw $t6, 4($t7) # As with above gbi, I forgot to include *dl since I dont know where it is saving the Gfx array (*dl) +/* 0AB940 7F076E10 ADF90000 */ sw $t9, ($t7) #gSPTexture(*dl, 0xFFFF, 0xFFFF, 1, 0, G_ON) #use FFFF since 1.0 cannot be represented directly +.L7F076E14: +/* 0AB944 7F076E14 8FAF016C */ lw $t7, 0x16c($sp) +/* 0AB948 7F076E18 3C19FCFF */ lui $t9, (0xFCFFFFFF >> 16) # lui $t9, 0xfcff # +/* 0AB94C 7F076E1C 3C0EFFFE */ lui $t6, (0xFFFE793C >> 16) # lui $t6, 0xfffe #FCFFFFFFFFFE793C +/* 0AB950 7F076E20 25F80008 */ addiu $t8, $t7, 8 +/* 0AB954 7F076E24 AFB8016C */ sw $t8, 0x16c($sp) +/* 0AB958 7F076E28 35CE793C */ ori $t6, (0xFFFE793C & 0xFFFF) # ori $t6, $t6, 0x793c # +/* 0AB95C 7F076E2C 3739FFFF */ ori $t9, (0xFCFFFFFF & 0xFFFF) # ori $t9, $t9, 0xffff # +/* 0AB960 7F076E30 ADF90000 */ sw $t9, ($t7) # +/* 0AB964 7F076E34 10000352 */ b .L7F077B80 +/* 0AB968 7F076E38 ADEE0004 */ sw $t6, 4($t7) #gDPSetCombineMode() +.L7F076E3C: +/* 0AB96C 7F076E3C 8EE20000 */ lw $v0, ($s7) +/* 0AB970 7F076E40 92F50004 */ lbu $s5, 4($s7) +/* 0AB974 7F076E44 92F40005 */ lbu $s4, 5($s7) +/* 0AB978 7F076E48 2C410BB9 */ sltiu $at, $v0, 0xbb9 +/* 0AB97C 7F076E4C 10200004 */ beqz $at, .L7F076E60 +/* 0AB980 7F076E50 02E02025 */ move $a0, $s7 +/* 0AB984 7F076E54 0FC32F06 */ jal load_image_to_buffer +/* 0AB988 7F076E58 00002825 */ move $a1, $zero +/* 0AB98C 7F076E5C 8EE20000 */ lw $v0, ($s7) +.L7F076E60: +/* 0AB990 7F076E60 3C018000 */ lui $at, 0x8000 +/* 0AB994 7F076E64 00411825 */ or $v1, $v0, $at +/* 0AB998 7F076E68 9464FFF8 */ lhu $a0, -8($v1) +/* 0AB99C 7F076E6C 0FC32EC3 */ jal sub_GAME_7F0CBB0C +/* 0AB9A0 7F076E70 00002825 */ move $a1, $zero +/* 0AB9A4 7F076E74 92E30006 */ lbu $v1, 6($s7) +/* 0AB9A8 7F076E78 0040B025 */ move $s6, $v0 +/* 0AB9AC 7F076E7C 54600167 */ bnezl $v1, .L7F07741C +/* 0AB9B0 7F076E80 AFA000D0 */ sw $zero, 0xd0($sp) +/* 0AB9B4 7F076E84 5040000D */ beql $v0, $zero, .L7F076EBC +/* 0AB9B8 7F076E88 92F10007 */ lbu $s1, 7($s7) +/* 0AB9BC 7F076E8C 8C520008 */ lw $s2, 8($v0) +/* 0AB9C0 7F076E90 8C4E000C */ lw $t6, 0xc($v0) +/* 0AB9C4 7F076E94 00128EC0 */ sll $s1, $s2, 0x1b +/* 0AB9C8 7F076E98 00117F42 */ srl $t7, $s1, 0x1d +/* 0AB9CC 7F076E9C 31F100FF */ andi $s1, $t7, 0xff +/* 0AB9D0 7F076EA0 000E7F82 */ srl $t7, $t6, 0x1e +/* 0AB9D4 7F076EA4 000FC380 */ sll $t8, $t7, 0xe +/* 0AB9D8 7F076EA8 32590003 */ andi $t9, $s2, 3 +/* 0AB9DC 7F076EAC 03209025 */ move $s2, $t9 +/* 0AB9E0 7F076EB0 10000003 */ b .L7F076EC0 +/* 0AB9E4 7F076EB4 AFB80144 */ sw $t8, 0x144($sp) +/* 0AB9E8 7F076EB8 92F10007 */ lbu $s1, 7($s7) +.L7F076EBC: +/* 0AB9EC 7F076EBC 92F20008 */ lbu $s2, 8($s7) +.L7F076EC0: +/* 0AB9F0 7F076EC0 12400033 */ beqz $s2, .L7F076F90 +/* 0AB9F4 7F076EC4 02401025 */ move $v0, $s2 +/* 0AB9F8 7F076EC8 24010001 */ li $at, 1 +/* 0AB9FC 7F076ECC 10410023 */ beq $v0, $at, .L7F076F5C +/* 0ABA00 7F076ED0 240F0002 */ li $t7, 2 +/* 0ABA04 7F076ED4 24010002 */ li $at, 2 +/* 0ABA08 7F076ED8 10410013 */ beq $v0, $at, .L7F076F28 +/* 0ABA0C 7F076EDC 24180002 */ li $t8, 2 +/* 0ABA10 7F076EE0 24010003 */ li $at, 3 +/* 0ABA14 7F076EE4 10410003 */ beq $v0, $at, .L7F076EF4 +/* 0ABA18 7F076EE8 24190003 */ li $t9, 3 +/* 0ABA1C 7F076EEC 10000035 */ b .L7F076FC4 +/* 0ABA20 7F076EF0 8FB3013C */ lw $s3, 0x13c($sp) +.L7F076EF4: +/* 0ABA24 7F076EF4 AFB90140 */ sw $t9, 0x140($sp) +/* 0ABA28 7F076EF8 02A02025 */ move $a0, $s5 +/* 0ABA2C 7F076EFC 02802825 */ move $a1, $s4 +/* 0ABA30 7F076F00 0FC1DA4A */ jal sub_GAME_7F076928 +/* 0ABA34 7F076F04 24060001 */ li $a2, 1 +/* 0ABA38 7F076F08 2453FFFF */ addiu $s3, $v0, -1 +/* 0ABA3C 7F076F0C 0FC1D9DD */ jal ceil1000 +/* 0ABA40 7F076F10 02A02025 */ move $a0, $s5 +/* 0ABA44 7F076F14 26AE0003 */ addiu $t6, $s5, 3 +/* 0ABA48 7F076F18 000E7883 */ sra $t7, $t6, 2 +/* 0ABA4C 7F076F1C AFA20138 */ sw $v0, 0x138($sp) +/* 0ABA50 7F076F20 10000028 */ b .L7F076FC4 +/* 0ABA54 7F076F24 AFAF0134 */ sw $t7, 0x134($sp) +.L7F076F28: +/* 0ABA58 7F076F28 AFB80140 */ sw $t8, 0x140($sp) +/* 0ABA5C 7F076F2C 02A02025 */ move $a0, $s5 +/* 0ABA60 7F076F30 02802825 */ move $a1, $s4 +/* 0ABA64 7F076F34 0FC1DA2E */ jal sub_GAME_7F0768B8 +/* 0ABA68 7F076F38 24060001 */ li $a2, 1 +/* 0ABA6C 7F076F3C 2453FFFF */ addiu $s3, $v0, -1 +/* 0ABA70 7F076F40 0FC1D9C4 */ jal ceil2000 +/* 0ABA74 7F076F44 02A02025 */ move $a0, $s5 +/* 0ABA78 7F076F48 26B90003 */ addiu $t9, $s5, 3 +/* 0ABA7C 7F076F4C 00197083 */ sra $t6, $t9, 2 +/* 0ABA80 7F076F50 AFA20138 */ sw $v0, 0x138($sp) +/* 0ABA84 7F076F54 1000001B */ b .L7F076FC4 +/* 0ABA88 7F076F58 AFAE0134 */ sw $t6, 0x134($sp) +.L7F076F5C: +/* 0ABA8C 7F076F5C AFAF0140 */ sw $t7, 0x140($sp) +/* 0ABA90 7F076F60 02A02025 */ move $a0, $s5 +/* 0ABA94 7F076F64 02802825 */ move $a1, $s4 +/* 0ABA98 7F076F68 0FC1DA12 */ jal sub_GAME_7F076848 +/* 0ABA9C 7F076F6C 24060001 */ li $a2, 1 +/* 0ABAA0 7F076F70 2453FFFF */ addiu $s3, $v0, -1 +/* 0ABAA4 7F076F74 0FC1D9AB */ jal ceil4000 +/* 0ABAA8 7F076F78 02A02025 */ move $a0, $s5 +/* 0ABAAC 7F076F7C 26B80007 */ addiu $t8, $s5, 7 +/* 0ABAB0 7F076F80 0018C8C3 */ sra $t9, $t8, 3 +/* 0ABAB4 7F076F84 AFA20138 */ sw $v0, 0x138($sp) +/* 0ABAB8 7F076F88 1000000E */ b .L7F076FC4 +/* 0ABABC 7F076F8C AFB90134 */ sw $t9, 0x134($sp) +.L7F076F90: +/* 0ABAC0 7F076F90 240E0002 */ li $t6, 2 +/* 0ABAC4 7F076F94 AFAE0140 */ sw $t6, 0x140($sp) +/* 0ABAC8 7F076F98 02A02025 */ move $a0, $s5 +/* 0ABACC 7F076F9C 02802825 */ move $a1, $s4 +/* 0ABAD0 7F076FA0 0FC1D9F6 */ jal sub_GAME_7F0767D8 +/* 0ABAD4 7F076FA4 24060001 */ li $a2, 1 +/* 0ABAD8 7F076FA8 2453FFFF */ addiu $s3, $v0, -1 +/* 0ABADC 7F076FAC 0FC1D992 */ jal ceil8000 +/* 0ABAE0 7F076FB0 02A02025 */ move $a0, $s5 +/* 0ABAE4 7F076FB4 26AF000F */ addiu $t7, $s5, 0xf +/* 0ABAE8 7F076FB8 000FC103 */ sra $t8, $t7, 4 +/* 0ABAEC 7F076FBC AFA20138 */ sw $v0, 0x138($sp) +/* 0ABAF0 7F076FC0 AFB80134 */ sw $t8, 0x134($sp) +.L7F076FC4: +/* 0ABAF4 7F076FC4 27A4016C */ addiu $a0, $sp, 0x16c +/* 0ABAF8 7F076FC8 8FA50178 */ lw $a1, 0x178($sp) +/* 0ABAFC 7F076FCC 24060001 */ li $a2, 1 +/* 0ABB00 7F076FD0 0FC1DA66 */ jal generate_microcode_for_othermode_setting +/* 0ABB04 7F076FD4 02003825 */ move $a3, $s0 +/* 0ABB08 7F076FD8 2A010002 */ slti $at, $s0, 2 +/* 0ABB0C 7F076FDC 1420000D */ bnez $at, .L7F077014 +/* 0ABB10 7F076FE0 02204825 */ move $t1, $s1 +/* 0ABB14 7F076FE4 8FA2016C */ lw $v0, 0x16c($sp) +/* 0ABB18 7F076FE8 320F00FF */ andi $t7, $s0, 0xff +/* 0ABB1C 7F076FEC 000FC400 */ sll $t8, $t7, 0x10 +/* 0ABB20 7F076FF0 3C01BB00 */ lui $at, 0xbb00 +/* 0ABB24 7F076FF4 244E0008 */ addiu $t6, $v0, 8 +/* 0ABB28 7F076FF8 AFAE016C */ sw $t6, 0x16c($sp) +/* 0ABB2C 7F076FFC 0301C825 */ or $t9, $t8, $at +/* 0ABB30 7F077000 372E0001 */ ori $t6, $t9, 1 +/* 0ABB34 7F077004 240FFFFF */ li $t7, -1 +/* 0ABB38 7F077008 AC4F0004 */ sw $t7, 4($v0) +/* 0ABB3C 7F07700C 10000009 */ b .L7F077034 +/* 0ABB40 7F077010 AC4E0000 */ sw $t6, ($v0) +.L7F077014: +/* 0ABB44 7F077014 8FB8016C */ lw $t8, 0x16c($sp) +/* 0ABB48 7F077018 3C0EBB00 */ lui $t6, (0xBB000001 >> 16) # lui $t6, 0xbb00 # +/* 0ABB4C 7F07701C 35CE0001 */ ori $t6, (0xBB000001 & 0xFFFF) # ori $t6, $t6, 1 # +/* 0ABB50 7F077020 27190008 */ addiu $t9, $t8, 8 +/* 0ABB54 7F077024 AFB9016C */ sw $t9, 0x16c($sp) +/* 0ABB58 7F077028 240FFFFF */ li $t7, -1 # +/* 0ABB5C 7F07702C AF0F0004 */ sw $t7, 4($t8) # +/* 0ABB60 7F077030 AF0E0000 */ sw $t6, ($t8) #gSPTexture(*dl, 0xFFFF, 0xFFFF, 1, 0, G_ON) #use FFFF since 1.0 cannot be represented directly +.L7F077034: +/* 0ABB64 7F077034 8FB8016C */ lw $t8, 0x16c($sp) +/* 0ABB68 7F077038 3C0EBA00 */ lui $t6, (0xBA001001 >> 16) # lui $t6, 0xba00 # +/* 0ABB6C 7F07703C 35CE1001 */ ori $t6, (0xBA001001 & 0xFFFF) # ori $t6, $t6, 0x1001 # +/* 0ABB70 7F077040 27190008 */ addiu $t9, $t8, 8 +/* 0ABB74 7F077044 AFB9016C */ sw $t9, 0x16c($sp) +/* 0ABB78 7F077048 AF000004 */ sw $zero, 4($t8) +/* 0ABB7C 7F07704C 1220000C */ beqz $s1, .L7F077080 +/* 0ABB80 7F077050 AF0E0000 */ sw $t6, ($t8) #gDPSetTextureLOD(G_TL_TILE) +/* 0ABB84 7F077054 24010002 */ li $at, 2 +/* 0ABB88 7F077058 11210024 */ beq $t1, $at, .L7F0770EC +/* 0ABB8C 7F07705C 8FAF0144 */ lw $t7, 0x144($sp) +/* 0ABB90 7F077060 24010003 */ li $at, 3 +/* 0ABB94 7F077064 11210010 */ beq $t1, $at, .L7F0770A8 +/* 0ABB98 7F077068 8FAF016C */ lw $t7, 0x16c($sp) +/* 0ABB9C 7F07706C 24010004 */ li $at, 4 +/* 0ABBA0 7F077070 11210016 */ beq $t1, $at, .L7F0770CC +/* 0ABBA4 7F077074 8FAF016C */ lw $t7, 0x16c($sp) +/* 0ABBA8 7F077078 10000036 */ b .L7F077154 +/* 0ABBAC 7F07707C 8FA2016C */ lw $v0, 0x16c($sp) +.L7F077080: +/* 0ABBB0 7F077080 8FAF016C */ lw $t7, 0x16c($sp) +/* 0ABBB4 7F077084 3C19FC12 */ lui $t9, (0xFC121824 >> 16) # lui $t9, 0xfc12 # +/* 0ABBB8 7F077088 3C0EFF33 */ lui $t6, (0xFF33FFFF >> 16) # lui $t6, 0xff33 # +/* 0ABBBC 7F07708C 25F80008 */ addiu $t8, $t7, 8 +/* 0ABBC0 7F077090 AFB8016C */ sw $t8, 0x16c($sp) +/* 0ABBC4 7F077094 35CEFFFF */ ori $t6, (0xFF33FFFF & 0xFFFF) # ori $t6, $t6, 0xffff # +/* 0ABBC8 7F077098 37391824 */ ori $t9, (0xFC121824 & 0xFFFF) # ori $t9, $t9, 0x1824 # +/* 0ABBCC 7F07709C ADF90000 */ sw $t9, ($t7) +/* 0ABBD0 7F0770A0 1000002B */ b .L7F077150 +/* 0ABBD4 7F0770A4 ADEE0004 */ sw $t6, 4($t7) #gDPSetCombineMode() +.L7F0770A8: +/* 0ABBD8 7F0770A8 25F80008 */ addiu $t8, $t7, 8 +/* 0ABBDC 7F0770AC 3C19FC12 */ lui $t9, (0xFC121824 >> 16) # lui $t9, 0xfc12 # +/* 0ABBE0 7F0770B0 3C0EFF33 */ lui $t6, (0xFF33FFFF >> 16) # lui $t6, 0xff33 # +/* 0ABBE4 7F0770B4 35CEFFFF */ ori $t6, (0xFF33FFFF & 0xFFFF) # ori $t6, $t6, 0xffff # +/* 0ABBE8 7F0770B8 37391824 */ ori $t9, (0xFC121824 & 0xFFFF) # ori $t9, $t9, 0x1824 # +/* 0ABBEC 7F0770BC AFB8016C */ sw $t8, 0x16c($sp) +/* 0ABBF0 7F0770C0 ADEE0004 */ sw $t6, 4($t7) +/* 0ABBF4 7F0770C4 10000022 */ b .L7F077150 +/* 0ABBF8 7F0770C8 ADF90000 */ sw $t9, ($t7) #gDPSetCombineMode() +.L7F0770CC: +/* 0ABBFC 7F0770CC 25F80008 */ addiu $t8, $t7, 8 +/* 0ABC00 7F0770D0 3C19FC12 */ lui $t9, (0xFC127E24 >> 16) # lui $t9, 0xfc12 # +/* 0ABC04 7F0770D4 37397E24 */ ori $t9, (0xFC127E24 & 0xFFFF) # ori $t9, $t9, 0x7e24 # +/* 0ABC08 7F0770D8 AFB8016C */ sw $t8, 0x16c($sp) +/* 0ABC0C 7F0770DC 240EF9FC */ li $t6, -1540 +/* 0ABC10 7F0770E0 ADEE0004 */ sw $t6, 4($t7) +/* 0ABC14 7F0770E4 1000001A */ b .L7F077150 +/* 0ABC18 7F0770E8 ADF90000 */ sw $t9, ($t7) #gDPSetCombineMode() +.L7F0770EC: +/* 0ABC1C 7F0770EC 34018000 */ li $at, 32768 +/* 0ABC20 7F0770F0 11E10006 */ beq $t7, $at, .L7F07710C +/* 0ABC24 7F0770F4 8FB8016C */ lw $t8, 0x16c($sp) +/* 0ABC28 7F0770F8 3401C000 */ li $at, 49152 +/* 0ABC2C 7F0770FC 11E1000C */ beq $t7, $at, .L7F077130 +/* 0ABC30 7F077100 8FB8016C */ lw $t8, 0x16c($sp) +/* 0ABC34 7F077104 10000013 */ b .L7F077154 +/* 0ABC38 7F077108 8FA2016C */ lw $v0, 0x16c($sp) +.L7F07710C: +/* 0ABC3C 7F07710C 27190008 */ addiu $t9, $t8, 8 +/* 0ABC40 7F077110 3C0EFC12 */ lui $t6, (0xFC121824 >> 16) # lui $t6, 0xfc12 # +/* 0ABC44 7F077114 3C0FFF33 */ lui $t7, (0xFF33FFFF >> 16) # lui $t7, 0xff33 # +/* 0ABC48 7F077118 35EFFFFF */ ori $t7, (0xFF33FFFF & 0xFFFF) # ori $t7, $t7, 0xffff # +/* 0ABC4C 7F07711C 35CE1824 */ ori $t6, (0xFC121824 & 0xFFFF) # ori $t6, $t6, 0x1824 # +/* 0ABC50 7F077120 AFB9016C */ sw $t9, 0x16c($sp) +/* 0ABC54 7F077124 AF0F0004 */ sw $t7, 4($t8) +/* 0ABC58 7F077128 10000009 */ b .L7F077150 +/* 0ABC5C 7F07712C AF0E0000 */ sw $t6, ($t8) #gDPSetCombineMode() +.L7F077130: +/* 0ABC60 7F077130 27190008 */ addiu $t9, $t8, 8 +/* 0ABC64 7F077134 AFB9016C */ sw $t9, 0x16c($sp) +/* 0ABC68 7F077138 3C0EFC12 */ lui $t6, (0xFC121824 >> 16) # lui $t6, 0xfc12 # +/* 0ABC6C 7F07713C 3C0FFF33 */ lui $t7, (0xFF33FFFF >> 16) # lui $t7, 0xff33 # +/* 0ABC70 7F077140 35EFFFFF */ ori $t7, (0xFF33FFFF & 0xFFFF) # ori $t7, $t7, 0xffff # +/* 0ABC74 7F077144 35CE1824 */ ori $t6, (0xFC121824 & 0xFFFF) # ori $t6, $t6, 0x1824 # +/* 0ABC78 7F077148 AF0E0000 */ sw $t6, ($t8) +/* 0ABC7C 7F07714C AF0F0004 */ sw $t7, 4($t8) #gDPSetCombineMode() +.L7F077150: +/* 0ABC80 7F077150 8FA2016C */ lw $v0, 0x16c($sp) +.L7F077154: +/* 0ABC84 7F077154 8FA40140 */ lw $a0, 0x140($sp) +/* 0ABC88 7F077158 32230007 */ andi $v1, $s1, 7 +/* 0ABC8C 7F07715C 00037540 */ sll $t6, $v1, 0x15 +/* 0ABC90 7F077160 24590008 */ addiu $t9, $v0, 8 +/* 0ABC94 7F077164 AFB9016C */ sw $t9, 0x16c($sp) +/* 0ABC98 7F077168 3C01FD00 */ lui $at, 0xfd00 +/* 0ABC9C 7F07716C 308F0003 */ andi $t7, $a0, 3 +/* 0ABCA0 7F077170 000F24C0 */ sll $a0, $t7, 0x13 +/* 0ABCA4 7F077174 01C1C825 */ or $t9, $t6, $at +/* 0ABCA8 7F077178 01C01825 */ move $v1, $t6 +/* 0ABCAC 7F07717C 03247025 */ or $t6, $t9, $a0 +/* 0ABCB0 7F077180 AC4E0000 */ sw $t6, ($v0) +/* 0ABCB4 7F077184 8EEF0000 */ lw $t7, ($s7) +/* 0ABCB8 7F077188 3C01F500 */ lui $at, 0xf500 +/* 0ABCBC 7F07718C 00615825 */ or $t3, $v1, $at +/* 0ABCC0 7F077190 AC4F0004 */ sw $t7, 4($v0) +/* 0ABCC4 7F077194 8FA5016C */ lw $a1, 0x16c($sp) +/* 0ABCC8 7F077198 01647025 */ or $t6, $t3, $a0 +/* 0ABCCC 7F07719C 3C0A0700 */ lui $t2, 0x700 +/* 0ABCD0 7F0771A0 24B90008 */ addiu $t9, $a1, 8 +/* 0ABCD4 7F0771A4 AFB9016C */ sw $t9, 0x16c($sp) +/* 0ABCD8 7F0771A8 ACAE0000 */ sw $t6, ($a1) +/* 0ABCDC 7F0771AC 92EF000A */ lbu $t7, 0xa($s7) +/* 0ABCE0 7F0771B0 3C0DE600 */ lui $t5, 0xe600 +/* 0ABCE4 7F0771B4 2A6107FF */ slti $at, $s3, 0x7ff +/* 0ABCE8 7F0771B8 31F80003 */ andi $t8, $t7, 3 +/* 0ABCEC 7F0771BC 92EF0009 */ lbu $t7, 9($s7) +/* 0ABCF0 7F0771C0 0018CC80 */ sll $t9, $t8, 0x12 +/* 0ABCF4 7F0771C4 032A7025 */ or $t6, $t9, $t2 +/* 0ABCF8 7F0771C8 31F80003 */ andi $t8, $t7, 3 +/* 0ABCFC 7F0771CC 0018CA00 */ sll $t9, $t8, 8 +/* 0ABD00 7F0771D0 01D97825 */ or $t7, $t6, $t9 +/* 0ABD04 7F0771D4 ACAF0004 */ sw $t7, 4($a1) +/* 0ABD08 7F0771D8 8FB8016C */ lw $t8, 0x16c($sp) +/* 0ABD0C 7F0771DC 240707FF */ li $a3, 2047 +/* 0ABD10 7F0771E0 270E0008 */ addiu $t6, $t8, 8 +/* 0ABD14 7F0771E4 AFAE016C */ sw $t6, 0x16c($sp) +/* 0ABD18 7F0771E8 AF000004 */ sw $zero, 4($t8) +/* 0ABD1C 7F0771EC AF0D0000 */ sw $t5, ($t8) +/* 0ABD20 7F0771F0 8FA8016C */ lw $t0, 0x16c($sp) +/* 0ABD24 7F0771F4 3C18F300 */ lui $t8, 0xf300 +/* 0ABD28 7F0771F8 250F0008 */ addiu $t7, $t0, 8 +/* 0ABD2C 7F0771FC AFAF016C */ sw $t7, 0x16c($sp) +/* 0ABD30 7F077200 10200003 */ beqz $at, .L7F077210 +/* 0ABD34 7F077204 AD180000 */ sw $t8, ($t0) +/* 0ABD38 7F077208 10000001 */ b .L7F077210 +/* 0ABD3C 7F07720C 02603825 */ move $a3, $s3 +.L7F077210: +/* 0ABD40 7F077210 8FB80138 */ lw $t8, 0x138($sp) +/* 0ABD44 7F077214 30EE0FFF */ andi $t6, $a3, 0xfff +/* 0ABD48 7F077218 000ECB00 */ sll $t9, $t6, 0xc +/* 0ABD4C 7F07721C 032A7825 */ or $t7, $t9, $t2 +/* 0ABD50 7F077220 330E0FFF */ andi $t6, $t8, 0xfff +/* 0ABD54 7F077224 01EEC825 */ or $t9, $t7, $t6 +/* 0ABD58 7F077228 AD190004 */ sw $t9, 4($t0) +/* 0ABD5C 7F07722C 8FB8016C */ lw $t8, 0x16c($sp) +/* 0ABD60 7F077230 3C0CE700 */ lui $t4, 0xe700 +/* 0ABD64 7F077234 24010002 */ li $at, 2 +/* 0ABD68 7F077238 270F0008 */ addiu $t7, $t8, 8 +/* 0ABD6C 7F07723C AFAF016C */ sw $t7, 0x16c($sp) +/* 0ABD70 7F077240 AF000004 */ sw $zero, 4($t8) +/* 0ABD74 7F077244 15210038 */ bne $t1, $at, .L7F077328 +/* 0ABD78 7F077248 AF0C0000 */ sw $t4, ($t8) +/* 0ABD7C 7F07724C 92CE000A */ lbu $t6, 0xa($s6) +/* 0ABD80 7F077250 241903FF */ li $t9, 1023 +/* 0ABD84 7F077254 26670001 */ addiu $a3, $s3, 1 +/* 0ABD88 7F077258 032E1023 */ subu $v0, $t9, $t6 +/* 0ABD8C 7F07725C 0047082B */ sltu $at, $v0, $a3 +/* 0ABD90 7F077260 10200003 */ beqz $at, .L7F077270 +/* 0ABD94 7F077264 8FB8016C */ lw $t8, 0x16c($sp) +/* 0ABD98 7F077268 10000002 */ b .L7F077274 +/* 0ABD9C 7F07726C 00404025 */ move $t0, $v0 +.L7F077270: +/* 0ABDA0 7F077270 00004025 */ move $t0, $zero +.L7F077274: +/* 0ABDA4 7F077274 270F0008 */ addiu $t7, $t8, 8 +/* 0ABDA8 7F077278 AFAF016C */ sw $t7, 0x16c($sp) +/* 0ABDAC 7F07727C 3C19F500 */ lui $t9, (0xF5000100 >> 16) # lui $t9, 0xf500 # +/* 0ABDB0 7F077280 37390100 */ ori $t9, (0xF5000100 & 0xFFFF) # ori $t9, $t9, 0x100 #gDPSetTile() +/* 0ABDB4 7F077284 AF190000 */ sw $t9, ($t8) +/* 0ABDB8 7F077288 AF0A0004 */ sw $t2, 4($t8) +/* 0ABDBC 7F07728C 8FAE016C */ lw $t6, 0x16c($sp) +/* 0ABDC0 7F077290 00E83023 */ subu $a2, $a3, $t0 +/* 0ABDC4 7F077294 310503FF */ andi $a1, $t0, 0x3ff +/* 0ABDC8 7F077298 25D80008 */ addiu $t8, $t6, 8 +/* 0ABDCC 7F07729C AFB8016C */ sw $t8, 0x16c($sp) +/* 0ABDD0 7F0772A0 ADC00004 */ sw $zero, 4($t6) +/* 0ABDD4 7F0772A4 ADCD0000 */ sw $t5, ($t6) +/* 0ABDD8 7F0772A8 8FA4016C */ lw $a0, 0x16c($sp) +/* 0ABDDC 7F0772AC 30D803FF */ andi $t8, $a2, 0x3ff +/* 0ABDE0 7F0772B0 00187B80 */ sll $t7, $t8, 0xe +/* 0ABDE4 7F0772B4 24990008 */ addiu $t9, $a0, 8 +/* 0ABDE8 7F0772B8 AFB9016C */ sw $t9, 0x16c($sp) +/* 0ABDEC 7F0772BC 00057080 */ sll $t6, $a1, 2 +/* 0ABDF0 7F0772C0 3C01F000 */ lui $at, 0xf000 +/* 0ABDF4 7F0772C4 01E1C825 */ or $t9, $t7, $at +/* 0ABDF8 7F0772C8 01C02825 */ move $a1, $t6 +/* 0ABDFC 7F0772CC 032E7025 */ or $t6, $t9, $t6 +/* 0ABE00 7F0772D0 AC8E0000 */ sw $t6, ($a0) +/* 0ABE04 7F0772D4 92D8000A */ lbu $t8, 0xa($s6) +/* 0ABE08 7F0772D8 03067821 */ addu $t7, $t8, $a2 +/* 0ABE0C 7F0772DC 31F903FF */ andi $t9, $t7, 0x3ff +/* 0ABE10 7F0772E0 00197380 */ sll $t6, $t9, 0xe +/* 0ABE14 7F0772E4 01CAC025 */ or $t8, $t6, $t2 +/* 0ABE18 7F0772E8 03057825 */ or $t7, $t8, $a1 +/* 0ABE1C 7F0772EC AC8F0004 */ sw $t7, 4($a0) +/* 0ABE20 7F0772F0 8FB9016C */ lw $t9, 0x16c($sp) +/* 0ABE24 7F0772F4 272E0008 */ addiu $t6, $t9, 8 +/* 0ABE28 7F0772F8 AFAE016C */ sw $t6, 0x16c($sp) +/* 0ABE2C 7F0772FC AF200004 */ sw $zero, 4($t9) +/* 0ABE30 7F077300 AF2C0000 */ sw $t4, ($t9) +/* 0ABE34 7F077304 8FB8016C */ lw $t8, 0x16c($sp) +/* 0ABE38 7F077308 3C19BA00 */ lui $t9, (0xBA000E02 >> 16) # lui $t9, 0xba00 # +/* 0ABE3C 7F07730C 37390E02 */ ori $t9, (0xBA000E02 & 0xFFFF) # ori $t9, $t9, 0xe02 #gDPSetTextureLUT() +/* 0ABE40 7F077310 270F0008 */ addiu $t7, $t8, 8 +/* 0ABE44 7F077314 AFAF016C */ sw $t7, 0x16c($sp) +/* 0ABE48 7F077318 AF190000 */ sw $t9, ($t8) +/* 0ABE4C 7F07731C 8FAE0144 */ lw $t6, 0x144($sp) +/* 0ABE50 7F077320 10000008 */ b .L7F077344 +/* 0ABE54 7F077324 AF0E0004 */ sw $t6, 4($t8) +.L7F077328: +/* 0ABE58 7F077328 8FB8016C */ lw $t8, 0x16c($sp) +/* 0ABE5C 7F07732C 3C19BA00 */ lui $t9, (0xBA000E02 >> 16) # lui $t9, 0xba00 # +/* 0ABE60 7F077330 37390E02 */ ori $t9, (0xBA000E02 & 0xFFFF) # ori $t9, $t9, 0xe02 #gDPSetTextureLUT() +/* 0ABE64 7F077334 270F0008 */ addiu $t7, $t8, 8 +/* 0ABE68 7F077338 AFAF016C */ sw $t7, 0x16c($sp) +/* 0ABE6C 7F07733C AF000004 */ sw $zero, 4($t8) +/* 0ABE70 7F077340 AF190000 */ sw $t9, ($t8) +.L7F077344: +/* 0ABE74 7F077344 8FB0016C */ lw $s0, 0x16c($sp) +/* 0ABE78 7F077348 324F0003 */ andi $t7, $s2, 3 +/* 0ABE7C 7F07734C 000FCCC0 */ sll $t9, $t7, 0x13 +/* 0ABE80 7F077350 26180008 */ addiu $t8, $s0, 8 +/* 0ABE84 7F077354 AFB8016C */ sw $t8, 0x16c($sp) +/* 0ABE88 7F077358 8FB80134 */ lw $t8, 0x134($sp) +/* 0ABE8C 7F07735C 01797025 */ or $t6, $t3, $t9 +/* 0ABE90 7F077360 02802025 */ move $a0, $s4 +/* 0ABE94 7F077364 330F01FF */ andi $t7, $t8, 0x1ff +/* 0ABE98 7F077368 000FCA40 */ sll $t9, $t7, 9 +/* 0ABE9C 7F07736C 01D9C025 */ or $t8, $t6, $t9 +/* 0ABEA0 7F077370 0FC1D968 */ jal is_less_than_certain_power_of_2 +/* 0ABEA4 7F077374 AE180000 */ sw $t8, ($s0) +/* 0ABEA8 7F077378 02A02025 */ move $a0, $s5 +/* 0ABEAC 7F07737C 0FC1D968 */ jal is_less_than_certain_power_of_2 +/* 0ABEB0 7F077380 AFA20058 */ sw $v0, 0x58($sp) +/* 0ABEB4 7F077384 92F9000A */ lbu $t9, 0xa($s7) +/* 0ABEB8 7F077388 304F000F */ andi $t7, $v0, 0xf +/* 0ABEBC 7F07738C 8FA70058 */ lw $a3, 0x58($sp) +/* 0ABEC0 7F077390 000F7100 */ sll $t6, $t7, 4 +/* 0ABEC4 7F077394 33380003 */ andi $t8, $t9, 3 +/* 0ABEC8 7F077398 00187C80 */ sll $t7, $t8, 0x12 +/* 0ABECC 7F07739C 01CFC825 */ or $t9, $t6, $t7 +/* 0ABED0 7F0773A0 30F8000F */ andi $t8, $a3, 0xf +/* 0ABED4 7F0773A4 00187380 */ sll $t6, $t8, 0xe +/* 0ABED8 7F0773A8 92F80009 */ lbu $t8, 9($s7) +/* 0ABEDC 7F0773AC 032E7825 */ or $t7, $t9, $t6 +/* 0ABEE0 7F0773B0 8FA50180 */ lw $a1, 0x180($sp) +/* 0ABEE4 7F0773B4 33190003 */ andi $t9, $t8, 3 +/* 0ABEE8 7F0773B8 00197200 */ sll $t6, $t9, 8 +/* 0ABEEC 7F0773BC 01EEC025 */ or $t8, $t7, $t6 +/* 0ABEF0 7F0773C0 AE180004 */ sw $t8, 4($s0) +/* 0ABEF4 7F0773C4 8FA3016C */ lw $v1, 0x16c($sp) +/* 0ABEF8 7F0773C8 30A40FFF */ andi $a0, $a1, 0xfff +/* 0ABEFC 7F0773CC 00047300 */ sll $t6, $a0, 0xc +/* 0ABF00 7F0773D0 3C01F200 */ lui $at, 0xf200 +/* 0ABF04 7F0773D4 246F0008 */ addiu $t7, $v1, 8 +/* 0ABF08 7F0773D8 AFAF016C */ sw $t7, 0x16c($sp) +/* 0ABF0C 7F0773DC 01C1C025 */ or $t8, $t6, $at +/* 0ABF10 7F0773E0 0304C825 */ or $t9, $t8, $a0 +/* 0ABF14 7F0773E4 26AFFFFF */ addiu $t7, $s5, -1 +/* 0ABF18 7F0773E8 000F7080 */ sll $t6, $t7, 2 +/* 0ABF1C 7F0773EC 01C5C021 */ addu $t8, $t6, $a1 +/* 0ABF20 7F0773F0 AC790000 */ sw $t9, ($v1) +/* 0ABF24 7F0773F4 33190FFF */ andi $t9, $t8, 0xfff +/* 0ABF28 7F0773F8 268EFFFF */ addiu $t6, $s4, -1 +/* 0ABF2C 7F0773FC 000EC080 */ sll $t8, $t6, 2 +/* 0ABF30 7F077400 00197B00 */ sll $t7, $t9, 0xc +/* 0ABF34 7F077404 0305C821 */ addu $t9, $t8, $a1 +/* 0ABF38 7F077408 332E0FFF */ andi $t6, $t9, 0xfff +/* 0ABF3C 7F07740C 01EEC025 */ or $t8, $t7, $t6 +/* 0ABF40 7F077410 100001DB */ b .L7F077B80 +/* 0ABF44 7F077414 AC780004 */ sw $t8, 4($v1) +/* 0ABF48 7F077418 AFA000D0 */ sw $zero, 0xd0($sp) +.L7F07741C: +/* 0ABF4C 7F07741C 1040000B */ beqz $v0, .L7F07744C +/* 0ABF50 7F077420 AFA300CC */ sw $v1, 0xcc($sp) +/* 0ABF54 7F077424 8C430008 */ lw $v1, 8($v0) +/* 0ABF58 7F077428 306E0003 */ andi $t6, $v1, 3 +/* 0ABF5C 7F07742C A3AE00CA */ sb $t6, 0xca($sp) +/* 0ABF60 7F077430 8C52000C */ lw $s2, 0xc($v0) +/* 0ABF64 7F077434 00038EC0 */ sll $s1, $v1, 0x1b +/* 0ABF68 7F077438 0011CF42 */ srl $t9, $s1, 0x1d +/* 0ABF6C 7F07743C 0012C782 */ srl $t8, $s2, 0x1e +/* 0ABF70 7F077440 333100FF */ andi $s1, $t9, 0xff +/* 0ABF74 7F077444 10000005 */ b .L7F07745C +/* 0ABF78 7F077448 00189380 */ sll $s2, $t8, 0xe +.L7F07744C: +/* 0ABF7C 7F07744C 92EF0008 */ lbu $t7, 8($s7) +/* 0ABF80 7F077450 92F10007 */ lbu $s1, 7($s7) +/* 0ABF84 7F077454 8FB200C4 */ lw $s2, 0xc4($sp) +/* 0ABF88 7F077458 A3AF00CA */ sb $t7, 0xca($sp) +.L7F07745C: +/* 0ABF8C 7F07745C 1040000B */ beqz $v0, .L7F07748C +/* 0ABF90 7F077460 93B300CA */ lbu $s3, 0xca($sp) +/* 0ABF94 7F077464 8C4E000C */ lw $t6, 0xc($v0) +/* 0ABF98 7F077468 02C02025 */ move $a0, $s6 +/* 0ABF9C 7F07746C 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0ABFA0 7F077470 000EC880 */ sll $t9, $t6, 2 +/* 0ABFA4 7F077474 07210005 */ bgez $t9, .L7F07748C +/* 0ABFA8 7F077478 00000000 */ nop +/* 0ABFAC 7F07747C 0FC33275 */ jal sub_GAME_7F0CC9D4 +/* 0ABFB0 7F077480 27A600BC */ addiu $a2, $sp, 0xbc +/* 0ABFB4 7F077484 1000002C */ b .L7F077538 +/* 0ABFB8 7F077488 27A4016C */ addiu $a0, $sp, 0x16c +.L7F07748C: +/* 0ABFBC 7F07748C 12600022 */ beqz $s3, .L7F077518 +/* 0ABFC0 7F077490 24180002 */ li $t8, 2 +/* 0ABFC4 7F077494 24010001 */ li $at, 1 +/* 0ABFC8 7F077498 12610017 */ beq $s3, $at, .L7F0774F8 +/* 0ABFCC 7F07749C 240F0002 */ li $t7, 2 +/* 0ABFD0 7F0774A0 24010002 */ li $at, 2 +/* 0ABFD4 7F0774A4 1261000C */ beq $s3, $at, .L7F0774D8 +/* 0ABFD8 7F0774A8 24180002 */ li $t8, 2 +/* 0ABFDC 7F0774AC 24010003 */ li $at, 3 +/* 0ABFE0 7F0774B0 16610020 */ bne $s3, $at, .L7F077534 +/* 0ABFE4 7F0774B4 240F0003 */ li $t7, 3 +/* 0ABFE8 7F0774B8 AFAF00C0 */ sw $t7, 0xc0($sp) +/* 0ABFEC 7F0774BC 02A02025 */ move $a0, $s5 +/* 0ABFF0 7F0774C0 02802825 */ move $a1, $s4 +/* 0ABFF4 7F0774C4 0FC1DA4A */ jal sub_GAME_7F076928 +/* 0ABFF8 7F0774C8 8FA600CC */ lw $a2, 0xcc($sp) +/* 0ABFFC 7F0774CC 244EFFFF */ addiu $t6, $v0, -1 +/* 0AC000 7F0774D0 10000018 */ b .L7F077534 +/* 0AC004 7F0774D4 AFAE00BC */ sw $t6, 0xbc($sp) +.L7F0774D8: +/* 0AC008 7F0774D8 AFB800C0 */ sw $t8, 0xc0($sp) +/* 0AC00C 7F0774DC 02A02025 */ move $a0, $s5 +/* 0AC010 7F0774E0 02802825 */ move $a1, $s4 +/* 0AC014 7F0774E4 0FC1DA2E */ jal sub_GAME_7F0768B8 +/* 0AC018 7F0774E8 8FA600CC */ lw $a2, 0xcc($sp) +/* 0AC01C 7F0774EC 2459FFFF */ addiu $t9, $v0, -1 +/* 0AC020 7F0774F0 10000010 */ b .L7F077534 +/* 0AC024 7F0774F4 AFB900BC */ sw $t9, 0xbc($sp) +.L7F0774F8: +/* 0AC028 7F0774F8 AFAF00C0 */ sw $t7, 0xc0($sp) +/* 0AC02C 7F0774FC 02A02025 */ move $a0, $s5 +/* 0AC030 7F077500 02802825 */ move $a1, $s4 +/* 0AC034 7F077504 0FC1DA12 */ jal sub_GAME_7F076848 +/* 0AC038 7F077508 8FA600CC */ lw $a2, 0xcc($sp) +/* 0AC03C 7F07750C 244EFFFF */ addiu $t6, $v0, -1 +/* 0AC040 7F077510 10000008 */ b .L7F077534 +/* 0AC044 7F077514 AFAE00BC */ sw $t6, 0xbc($sp) +.L7F077518: +/* 0AC048 7F077518 AFB800C0 */ sw $t8, 0xc0($sp) +/* 0AC04C 7F07751C 02A02025 */ move $a0, $s5 +/* 0AC050 7F077520 02802825 */ move $a1, $s4 +/* 0AC054 7F077524 0FC1D9F6 */ jal sub_GAME_7F0767D8 +/* 0AC058 7F077528 8FA600CC */ lw $a2, 0xcc($sp) +/* 0AC05C 7F07752C 2459FFFF */ addiu $t9, $v0, -1 +/* 0AC060 7F077530 AFB900BC */ sw $t9, 0xbc($sp) +.L7F077534: +/* 0AC064 7F077534 27A4016C */ addiu $a0, $sp, 0x16c +.L7F077538: +/* 0AC068 7F077538 8FA50178 */ lw $a1, 0x178($sp) +/* 0AC06C 7F07753C 24060002 */ li $a2, 2 +/* 0AC070 7F077540 0FC1DA66 */ jal generate_microcode_for_othermode_setting +/* 0AC074 7F077544 02003825 */ move $a3, $s0 +/* 0AC078 7F077548 2A010002 */ slti $at, $s0, 2 +/* 0AC07C 7F07754C 14200012 */ bnez $at, .L7F077598 +/* 0AC080 7F077550 02204025 */ move $t0, $s1 +/* 0AC084 7F077554 8FA2016C */ lw $v0, 0x16c($sp) +/* 0AC088 7F077558 321800FF */ andi $t8, $s0, 0xff +/* 0AC08C 7F07755C 0018CC00 */ sll $t9, $t8, 0x10 +/* 0AC090 7F077560 244E0008 */ addiu $t6, $v0, 8 +/* 0AC094 7F077564 AFAE016C */ sw $t6, 0x16c($sp) +/* 0AC098 7F077568 8FAE00CC */ lw $t6, 0xcc($sp) +/* 0AC09C 7F07756C 3C01BB00 */ lui $at, 0xbb00 +/* 0AC0A0 7F077570 03217825 */ or $t7, $t9, $at +/* 0AC0A4 7F077574 25D8FFFF */ addiu $t8, $t6, -1 +/* 0AC0A8 7F077578 33190007 */ andi $t9, $t8, 7 +/* 0AC0AC 7F07757C 001972C0 */ sll $t6, $t9, 0xb +/* 0AC0B0 7F077580 01EEC025 */ or $t8, $t7, $t6 +/* 0AC0B4 7F077584 37190001 */ ori $t9, $t8, 1 +/* 0AC0B8 7F077588 240FFFFF */ li $t7, -1 +/* 0AC0BC 7F07758C AC4F0004 */ sw $t7, 4($v0) +/* 0AC0C0 7F077590 1000000E */ b .L7F0775CC +/* 0AC0C4 7F077594 AC590000 */ sw $t9, ($v0) +.L7F077598: +/* 0AC0C8 7F077598 8FA2016C */ lw $v0, 0x16c($sp) +/* 0AC0CC 7F07759C 8FB900CC */ lw $t9, 0xcc($sp) +/* 0AC0D0 7F0775A0 3C01BB00 */ lui $at, 0xbb00 +/* 0AC0D4 7F0775A4 24580008 */ addiu $t8, $v0, 8 +/* 0AC0D8 7F0775A8 272FFFFF */ addiu $t7, $t9, -1 +/* 0AC0DC 7F0775AC 31EE0007 */ andi $t6, $t7, 7 +/* 0AC0E0 7F0775B0 AFB8016C */ sw $t8, 0x16c($sp) +/* 0AC0E4 7F0775B4 000EC2C0 */ sll $t8, $t6, 0xb +/* 0AC0E8 7F0775B8 0301C825 */ or $t9, $t8, $at +/* 0AC0EC 7F0775BC 372F0001 */ ori $t7, $t9, 1 +/* 0AC0F0 7F0775C0 240EFFFF */ li $t6, -1 +/* 0AC0F4 7F0775C4 AC4E0004 */ sw $t6, 4($v0) +/* 0AC0F8 7F0775C8 AC4F0000 */ sw $t7, ($v0) +.L7F0775CC: +/* 0AC0FC 7F0775CC 8FB8016C */ lw $t8, 0x16c($sp) +/* 0AC100 7F0775D0 3C0FBA00 */ lui $t7, (0xBA001001 >> 16) # lui $t7, 0xba00 # +/* 0AC104 7F0775D4 35EF1001 */ ori $t7, (0xBA001001 & 0xFFFF) # ori $t7, $t7, 0x1001 # +/* 0AC108 7F0775D8 27190008 */ addiu $t9, $t8, 8 +/* 0AC10C 7F0775DC AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC110 7F0775E0 3C0E0001 */ lui $t6, 1 +/* 0AC114 7F0775E4 AF0E0004 */ sw $t6, 4($t8) +/* 0AC118 7F0775E8 1220000B */ beqz $s1, .L7F077618 +/* 0AC11C 7F0775EC AF0F0000 */ sw $t7, ($t8) #gDPSetTextureLOD(G_TL_LOD) +/* 0AC120 7F0775F0 24010002 */ li $at, 2 +/* 0AC124 7F0775F4 11010024 */ beq $t0, $at, .L7F077688 +/* 0AC128 7F0775F8 24010003 */ li $at, 3 +/* 0AC12C 7F0775FC 11010010 */ beq $t0, $at, .L7F077640 +/* 0AC130 7F077600 8FB8016C */ lw $t8, 0x16c($sp) +/* 0AC134 7F077604 24010004 */ li $at, 4 +/* 0AC138 7F077608 11010016 */ beq $t0, $at, .L7F077664 +/* 0AC13C 7F07760C 8FB8016C */ lw $t8, 0x16c($sp) +/* 0AC140 7F077610 10000037 */ b .L7F0776F0 +/* 0AC144 7F077614 8FA2016C */ lw $v0, 0x16c($sp) +.L7F077618: +/* 0AC148 7F077618 8FB8016C */ lw $t8, 0x16c($sp) +/* 0AC14C 7F07761C 3C0FFC26 */ lui $t7, (0xFC26A004 >> 16) # lui $t7, 0xfc26 # +/* 0AC150 7F077620 3C0E1F10 */ lui $t6, (0x1F1093FF >> 16) # lui $t6, 0x1f10 # +/* 0AC154 7F077624 27190008 */ addiu $t9, $t8, 8 +/* 0AC158 7F077628 AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC15C 7F07762C 35CE93FF */ ori $t6, (0x1F1093FF & 0xFFFF) # ori $t6, $t6, 0x93ff # +/* 0AC160 7F077630 35EFA004 */ ori $t7, (0xFC26A004 & 0xFFFF) # ori $t7, $t7, 0xa004 # +/* 0AC164 7F077634 AF0F0000 */ sw $t7, ($t8) +/* 0AC168 7F077638 1000002C */ b .L7F0776EC +/* 0AC16C 7F07763C AF0E0004 */ sw $t6, 4($t8) #gDPSetCombineMode() +.L7F077640: +/* 0AC170 7F077640 27190008 */ addiu $t9, $t8, 8 +/* 0AC174 7F077644 3C0FFC26 */ lui $t7, (0xFC26A004 >> 16) # lui $t7, 0xfc26 +/* 0AC178 7F077648 3C0E1F10 */ lui $t6, (0x1F1093FF >> 16) # lui $t6, 0x1f10 +/* 0AC17C 7F07764C 35CE93FF */ ori $t6, (0x1F1093FF & 0xFFFF) # ori $t6, $t6, 0x93ff +/* 0AC180 7F077650 35EFA004 */ ori $t7, (0xFC26A004 & 0xFFFF) # ori $t7, $t7, 0xa004 +/* 0AC184 7F077654 AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC188 7F077658 AF0E0004 */ sw $t6, 4($t8) +/* 0AC18C 7F07765C 10000023 */ b .L7F0776EC +/* 0AC190 7F077660 AF0F0000 */ sw $t7, ($t8) #gDPSetCombineMode() +.L7F077664: +/* 0AC194 7F077664 27190008 */ addiu $t9, $t8, 8 +/* 0AC198 7F077668 3C0FFC26 */ lui $t7, (0xFC26A004 >> 16) # lui $t7, 0xfc26 +/* 0AC19C 7F07766C 3C0E1FFC */ lui $t6, (0x1FFC93FC >> 16) # lui $t6, 0x1ffc +/* 0AC1A0 7F077670 35CE93FC */ ori $t6, (0x1FFC93FC & 0xFFFF) # ori $t6, $t6, 0x93fc +/* 0AC1A4 7F077674 35EFA004 */ ori $t7, (0xFC26A004 & 0xFFFF) # ori $t7, $t7, 0xa004 +/* 0AC1A8 7F077678 AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC1AC 7F07767C AF0E0004 */ sw $t6, 4($t8) +/* 0AC1B0 7F077680 1000001A */ b .L7F0776EC +/* 0AC1B4 7F077684 AF0F0000 */ sw $t7, ($t8) #gDPSetCombineMode() +.L7F077688: +/* 0AC1B8 7F077688 34018000 */ li $at, 32768 +/* 0AC1BC 7F07768C 12410006 */ beq $s2, $at, .L7F0776A8 +/* 0AC1C0 7F077690 8FB8016C */ lw $t8, 0x16c($sp) +/* 0AC1C4 7F077694 3401C000 */ li $at, 49152 +/* 0AC1C8 7F077698 1241000C */ beq $s2, $at, .L7F0776CC +/* 0AC1CC 7F07769C 8FB8016C */ lw $t8, 0x16c($sp) +/* 0AC1D0 7F0776A0 10000013 */ b .L7F0776F0 +/* 0AC1D4 7F0776A4 8FA2016C */ lw $v0, 0x16c($sp) +.L7F0776A8: +/* 0AC1D8 7F0776A8 27190008 */ addiu $t9, $t8, 8 +/* 0AC1DC 7F0776AC 3C0FFC12 */ lui $t7, (0xFC121824 >> 16) # lui $t7, 0xfc12 +/* 0AC1E0 7F0776B0 3C0EFF33 */ lui $t6, (0xFF33FFFF >> 16) # lui $t6, 0xff33 +/* 0AC1E4 7F0776B4 35CEFFFF */ ori $t6, (0xFF33FFFF & 0xFFFF) # ori $t6, $t6, 0xffff +/* 0AC1E8 7F0776B8 35EF1824 */ ori $t7, (0xFC121824 & 0xFFFF) # ori $t7, $t7, 0x1824 +/* 0AC1EC 7F0776BC AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC1F0 7F0776C0 AF0E0004 */ sw $t6, 4($t8) +/* 0AC1F4 7F0776C4 10000009 */ b .L7F0776EC +/* 0AC1F8 7F0776C8 AF0F0000 */ sw $t7, ($t8) #gDPSetCombineMode() +.L7F0776CC: +/* 0AC1FC 7F0776CC 27190008 */ addiu $t9, $t8, 8 +/* 0AC200 7F0776D0 AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC204 7F0776D4 3C0FFC12 */ lui $t7, (0xFC121824 >> 16) # lui $t7, 0xfc12 +/* 0AC208 7F0776D8 3C0EFF33 */ lui $t6, (0xFF33FFFF >> 16) # lui $t6, 0xff33 +/* 0AC20C 7F0776DC 35CEFFFF */ ori $t6, (0xFF33FFFF & 0xFFFF) # ori $t6, $t6, 0xffff +/* 0AC210 7F0776E0 35EF1824 */ ori $t7, (0xFC121824 & 0xFFFF) # ori $t7, $t7, 0x1824 +/* 0AC214 7F0776E4 AF0F0000 */ sw $t7, ($t8) +/* 0AC218 7F0776E8 AF0E0004 */ sw $t6, 4($t8) #gDPSetCombineMode() +.L7F0776EC: +/* 0AC21C 7F0776EC 8FA2016C */ lw $v0, 0x16c($sp) +.L7F0776F0: +/* 0AC220 7F0776F0 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0AC224 7F0776F4 32230007 */ andi $v1, $s1, 7 +/* 0AC228 7F0776F8 00037D40 */ sll $t7, $v1, 0x15 +/* 0AC22C 7F0776FC 24590008 */ addiu $t9, $v0, 8 +/* 0AC230 7F077700 AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC234 7F077704 3C01FD00 */ lui $at, 0xfd00 +/* 0AC238 7F077708 01E17025 */ or $t6, $t7, $at +/* 0AC23C 7F07770C 01E01825 */ move $v1, $t7 +/* 0AC240 7F077710 33190003 */ andi $t9, $t8, 3 +/* 0AC244 7F077714 00197CC0 */ sll $t7, $t9, 0x13 +/* 0AC248 7F077718 01CFC025 */ or $t8, $t6, $t7 +/* 0AC24C 7F07771C AC580000 */ sw $t8, ($v0) +/* 0AC250 7F077720 8EF90000 */ lw $t9, ($s7) +/* 0AC254 7F077724 3C01F500 */ lui $at, 0xf500 +/* 0AC258 7F077728 00614825 */ or $t1, $v1, $at +/* 0AC25C 7F07772C AC590004 */ sw $t9, 4($v0) +/* 0AC260 7F077730 8FA4016C */ lw $a0, 0x16c($sp) +/* 0AC264 7F077734 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0AC268 7F077738 3C0A0700 */ lui $t2, 0x700 +/* 0AC26C 7F07773C 248F0008 */ addiu $t7, $a0, 8 +/* 0AC270 7F077740 AFAF016C */ sw $t7, 0x16c($sp) +/* 0AC274 7F077744 33190003 */ andi $t9, $t8, 3 +/* 0AC278 7F077748 001974C0 */ sll $t6, $t9, 0x13 +/* 0AC27C 7F07774C 012E7825 */ or $t7, $t1, $t6 +/* 0AC280 7F077750 AC8F0000 */ sw $t7, ($a0) +/* 0AC284 7F077754 AC8A0004 */ sw $t2, 4($a0) +/* 0AC288 7F077758 8FB8016C */ lw $t8, 0x16c($sp) +/* 0AC28C 7F07775C 3C0DE600 */ lui $t5, 0xe600 +/* 0AC290 7F077760 240707FF */ li $a3, 2047 +/* 0AC294 7F077764 27190008 */ addiu $t9, $t8, 8 +/* 0AC298 7F077768 AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC29C 7F07776C AF000004 */ sw $zero, 4($t8) +/* 0AC2A0 7F077770 AF0D0000 */ sw $t5, ($t8) +/* 0AC2A4 7F077774 8FA6016C */ lw $a2, 0x16c($sp) +/* 0AC2A8 7F077778 3C18F300 */ lui $t8, 0xf300 +/* 0AC2AC 7F07777C 24CF0008 */ addiu $t7, $a2, 8 +/* 0AC2B0 7F077780 AFAF016C */ sw $t7, 0x16c($sp) +/* 0AC2B4 7F077784 ACD80000 */ sw $t8, ($a2) +/* 0AC2B8 7F077788 8FB900BC */ lw $t9, 0xbc($sp) +/* 0AC2BC 7F07778C 2B2107FF */ slti $at, $t9, 0x7ff +/* 0AC2C0 7F077790 10200003 */ beqz $at, .L7F0777A0 +/* 0AC2C4 7F077794 00000000 */ nop +/* 0AC2C8 7F077798 10000001 */ b .L7F0777A0 +/* 0AC2CC 7F07779C 03203825 */ move $a3, $t9 +.L7F0777A0: +/* 0AC2D0 7F0777A0 30EE0FFF */ andi $t6, $a3, 0xfff +/* 0AC2D4 7F0777A4 000E7B00 */ sll $t7, $t6, 0xc +/* 0AC2D8 7F0777A8 01EAC025 */ or $t8, $t7, $t2 +/* 0AC2DC 7F0777AC ACD80004 */ sw $t8, 4($a2) +/* 0AC2E0 7F0777B0 8FB9016C */ lw $t9, 0x16c($sp) +/* 0AC2E4 7F0777B4 3C0CE700 */ lui $t4, 0xe700 +/* 0AC2E8 7F0777B8 24010002 */ li $at, 2 +/* 0AC2EC 7F0777BC 272E0008 */ addiu $t6, $t9, 8 +/* 0AC2F0 7F0777C0 AFAE016C */ sw $t6, 0x16c($sp) +/* 0AC2F4 7F0777C4 AF200004 */ sw $zero, 4($t9) +/* 0AC2F8 7F0777C8 15010038 */ bne $t0, $at, .L7F0778AC +/* 0AC2FC 7F0777CC AF2C0000 */ sw $t4, ($t9) +/* 0AC300 7F0777D0 8FA300BC */ lw $v1, 0xbc($sp) +/* 0AC304 7F0777D4 92CF000A */ lbu $t7, 0xa($s6) +/* 0AC308 7F0777D8 241803FF */ li $t8, 1023 +/* 0AC30C 7F0777DC 24660001 */ addiu $a2, $v1, 1 +/* 0AC310 7F0777E0 030F1023 */ subu $v0, $t8, $t7 +/* 0AC314 7F0777E4 0046082B */ sltu $at, $v0, $a2 +/* 0AC318 7F0777E8 10200003 */ beqz $at, .L7F0777F8 +/* 0AC31C 7F0777EC 8FB9016C */ lw $t9, 0x16c($sp) +/* 0AC320 7F0777F0 10000002 */ b .L7F0777FC +/* 0AC324 7F0777F4 00403825 */ move $a3, $v0 +.L7F0777F8: +/* 0AC328 7F0777F8 00003825 */ move $a3, $zero +.L7F0777FC: +/* 0AC32C 7F0777FC 272E0008 */ addiu $t6, $t9, 8 +/* 0AC330 7F077800 AFAE016C */ sw $t6, 0x16c($sp) +/* 0AC334 7F077804 3C18F500 */ lui $t8, (0xF5000100 >> 16) # lui $t8, 0xf500 # +/* 0AC338 7F077808 37180100 */ ori $t8, (0xF5000100 & 0xFFFF) # ori $t8, $t8, 0x100 #gDPSetTile() +/* 0AC33C 7F07780C AF380000 */ sw $t8, ($t9) +/* 0AC340 7F077810 AF2A0004 */ sw $t2, 4($t9) +/* 0AC344 7F077814 8FAF016C */ lw $t7, 0x16c($sp) +/* 0AC348 7F077818 00C73023 */ subu $a2, $a2, $a3 +/* 0AC34C 7F07781C 30E503FF */ andi $a1, $a3, 0x3ff +/* 0AC350 7F077820 25F90008 */ addiu $t9, $t7, 8 +/* 0AC354 7F077824 AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC358 7F077828 ADE00004 */ sw $zero, 4($t7) +/* 0AC35C 7F07782C ADED0000 */ sw $t5, ($t7) +/* 0AC360 7F077830 8FA4016C */ lw $a0, 0x16c($sp) +/* 0AC364 7F077834 30D903FF */ andi $t9, $a2, 0x3ff +/* 0AC368 7F077838 00197380 */ sll $t6, $t9, 0xe +/* 0AC36C 7F07783C 24980008 */ addiu $t8, $a0, 8 +/* 0AC370 7F077840 AFB8016C */ sw $t8, 0x16c($sp) +/* 0AC374 7F077844 00057880 */ sll $t7, $a1, 2 +/* 0AC378 7F077848 3C01F000 */ lui $at, 0xf000 +/* 0AC37C 7F07784C 01C1C025 */ or $t8, $t6, $at +/* 0AC380 7F077850 01E02825 */ move $a1, $t7 +/* 0AC384 7F077854 030F7825 */ or $t7, $t8, $t7 +/* 0AC388 7F077858 AC8F0000 */ sw $t7, ($a0) +/* 0AC38C 7F07785C 92D9000A */ lbu $t9, 0xa($s6) +/* 0AC390 7F077860 03267021 */ addu $t6, $t9, $a2 +/* 0AC394 7F077864 31D803FF */ andi $t8, $t6, 0x3ff +/* 0AC398 7F077868 00187B80 */ sll $t7, $t8, 0xe +/* 0AC39C 7F07786C 01EAC825 */ or $t9, $t7, $t2 +/* 0AC3A0 7F077870 03257025 */ or $t6, $t9, $a1 +/* 0AC3A4 7F077874 AC8E0004 */ sw $t6, 4($a0) +/* 0AC3A8 7F077878 8FB8016C */ lw $t8, 0x16c($sp) +/* 0AC3AC 7F07787C 270F0008 */ addiu $t7, $t8, 8 +/* 0AC3B0 7F077880 AFAF016C */ sw $t7, 0x16c($sp) +/* 0AC3B4 7F077884 AF000004 */ sw $zero, 4($t8) +/* 0AC3B8 7F077888 AF0C0000 */ sw $t4, ($t8) +/* 0AC3BC 7F07788C 8FB9016C */ lw $t9, 0x16c($sp) +/* 0AC3C0 7F077890 3C18BA00 */ lui $t8, (0xBA000E02 >> 16) # lui $t8, 0xba00 # +/* 0AC3C4 7F077894 37180E02 */ ori $t8, (0xBA000E02 & 0xFFFF) # ori $t8, $t8, 0xe02 #gDPSetTextureLUT() +/* 0AC3C8 7F077898 272E0008 */ addiu $t6, $t9, 8 +/* 0AC3CC 7F07789C AFAE016C */ sw $t6, 0x16c($sp) +/* 0AC3D0 7F0778A0 AF320004 */ sw $s2, 4($t9) +/* 0AC3D4 7F0778A4 10000008 */ b .L7F0778C8 +/* 0AC3D8 7F0778A8 AF380000 */ sw $t8, ($t9) +.L7F0778AC: +/* 0AC3DC 7F0778AC 8FAF016C */ lw $t7, 0x16c($sp) +/* 0AC3E0 7F0778B0 3C0EBA00 */ lui $t6, (0xBA000E02 >> 16) # lui $t6, 0xba00 # +/* 0AC3E4 7F0778B4 35CE0E02 */ ori $t6, (0xBA000E02 & 0xFFFF) # ori $t6, $t6, 0xe02 #gDPSetTextureLUT() +/* 0AC3E8 7F0778B8 25F90008 */ addiu $t9, $t7, 8 +/* 0AC3EC 7F0778BC AFB9016C */ sw $t9, 0x16c($sp) +/* 0AC3F0 7F0778C0 ADE00004 */ sw $zero, 4($t7) +/* 0AC3F4 7F0778C4 ADEE0000 */ sw $t6, ($t7) +.L7F0778C8: +/* 0AC3F8 7F0778C8 8FB800CC */ lw $t8, 0xcc($sp) +/* 0AC3FC 7F0778CC 8FA70180 */ lw $a3, 0x180($sp) +/* 0AC400 7F0778D0 00008825 */ move $s1, $zero +/* 0AC404 7F0778D4 1B0000AA */ blez $t8, .L7F077B80 +/* 0AC408 7F0778D8 30E40FFF */ andi $a0, $a3, 0xfff +/* 0AC40C 7F0778DC 93B300CA */ lbu $s3, 0xca($sp) +/* 0AC410 7F0778E0 00047B00 */ sll $t7, $a0, 0xc +/* 0AC414 7F0778E4 3C01F200 */ lui $at, 0xf200 +/* 0AC418 7F0778E8 01E1C825 */ or $t9, $t7, $at +/* 0AC41C 7F0778EC 03247025 */ or $t6, $t9, $a0 +/* 0AC420 7F0778F0 326F0003 */ andi $t7, $s3, 3 +/* 0AC424 7F0778F4 000FCCC0 */ sll $t9, $t7, 0x13 +/* 0AC428 7F0778F8 01399025 */ or $s2, $t1, $t9 +/* 0AC42C 7F0778FC AFAE0050 */ sw $t6, 0x50($sp) +/* 0AC430 7F077900 8FB00064 */ lw $s0, 0x64($sp) +.L7F077904: +/* 0AC434 7F077904 1A200018 */ blez $s1, .L7F077968 +/* 0AC438 7F077908 8FA70180 */ lw $a3, 0x180($sp) +/* 0AC43C 7F07790C 12C0000F */ beqz $s6, .L7F07794C +/* 0AC440 7F077910 2AA10002 */ slti $at, $s5, 2 +/* 0AC444 7F077914 8ECE000C */ lw $t6, 0xc($s6) +/* 0AC448 7F077918 02C02025 */ move $a0, $s6 +/* 0AC44C 7F07791C 000E7880 */ sll $t7, $t6, 2 +/* 0AC450 7F077920 05E1000A */ bgez $t7, .L7F07794C +/* 0AC454 7F077924 00000000 */ nop +/* 0AC458 7F077928 0FC331C5 */ jal sub_GAME_7F0CC714 +/* 0AC45C 7F07792C 02202825 */ move $a1, $s1 +/* 0AC460 7F077930 0040A825 */ move $s5, $v0 +/* 0AC464 7F077934 02C02025 */ move $a0, $s6 +/* 0AC468 7F077938 0FC331FF */ jal sub_GAME_7F0CC7FC +/* 0AC46C 7F07793C 02202825 */ move $a1, $s1 +/* 0AC470 7F077940 0040A025 */ move $s4, $v0 +/* 0AC474 7F077944 10000008 */ b .L7F077968 +/* 0AC478 7F077948 8FA70180 */ lw $a3, 0x180($sp) +.L7F07794C: +/* 0AC47C 7F07794C 14200002 */ bnez $at, .L7F077958 +/* 0AC480 7F077950 0015C843 */ sra $t9, $s5, 1 +/* 0AC484 7F077954 0320A825 */ move $s5, $t9 +.L7F077958: +/* 0AC488 7F077958 2A810002 */ slti $at, $s4, 2 +/* 0AC48C 7F07795C 14200002 */ bnez $at, .L7F077968 +/* 0AC490 7F077960 00147043 */ sra $t6, $s4, 1 +/* 0AC494 7F077964 01C0A025 */ move $s4, $t6 +.L7F077968: +/* 0AC498 7F077968 26B8FFFF */ addiu $t8, $s5, -1 +/* 0AC49C 7F07796C 00187880 */ sll $t7, $t8, 2 +/* 0AC4A0 7F077970 01E7C821 */ addu $t9, $t7, $a3 +/* 0AC4A4 7F077974 332E0FFF */ andi $t6, $t9, 0xfff +/* 0AC4A8 7F077978 000EC300 */ sll $t8, $t6, 0xc +/* 0AC4AC 7F07797C 268FFFFF */ addiu $t7, $s4, -1 +/* 0AC4B0 7F077980 000FC880 */ sll $t9, $t7, 2 +/* 0AC4B4 7F077984 03277021 */ addu $t6, $t9, $a3 +/* 0AC4B8 7F077988 AFB80054 */ sw $t8, 0x54($sp) +/* 0AC4BC 7F07798C 31D80FFF */ andi $t8, $t6, 0xfff +/* 0AC4C0 7F077990 12600036 */ beqz $s3, .L7F077A6C +/* 0AC4C4 7F077994 AFB8004C */ sw $t8, 0x4c($sp) +/* 0AC4C8 7F077998 24010001 */ li $at, 1 +/* 0AC4CC 7F07799C 12610026 */ beq $s3, $at, .L7F077A38 +/* 0AC4D0 7F0779A0 24010002 */ li $at, 2 +/* 0AC4D4 7F0779A4 12610017 */ beq $s3, $at, .L7F077A04 +/* 0AC4D8 7F0779A8 24010003 */ li $at, 3 +/* 0AC4DC 7F0779AC 52610009 */ beql $s3, $at, .L7F0779D4 +/* 0AC4E0 7F0779B0 26B00003 */ addiu $s0, $s5, 3 +/* 0AC4E4 7F0779B4 02140019 */ multu $s0, $s4 +/* 0AC4E8 7F0779B8 320F01FF */ andi $t7, $s0, 0x1ff +/* 0AC4EC 7F0779BC 000FCA40 */ sll $t9, $t7, 9 +/* 0AC4F0 7F0779C0 02591025 */ or $v0, $s2, $t9 +/* 0AC4F4 7F0779C4 00003012 */ mflo $a2 +/* 0AC4F8 7F0779C8 10000036 */ b .L7F077AA4 +/* 0AC4FC 7F0779CC 8FA3016C */ lw $v1, 0x16c($sp) +/* 0AC500 7F0779D0 26B00003 */ addiu $s0, $s5, 3 +.L7F0779D4: +/* 0AC504 7F0779D4 06010003 */ bgez $s0, .L7F0779E4 +/* 0AC508 7F0779D8 00107083 */ sra $t6, $s0, 2 +/* 0AC50C 7F0779DC 26010003 */ addiu $at, $s0, 3 +/* 0AC510 7F0779E0 00017083 */ sra $t6, $at, 2 +.L7F0779E4: +/* 0AC514 7F0779E4 01D40019 */ multu $t6, $s4 +/* 0AC518 7F0779E8 31D801FF */ andi $t8, $t6, 0x1ff +/* 0AC51C 7F0779EC 00187A40 */ sll $t7, $t8, 9 +/* 0AC520 7F0779F0 01C08025 */ move $s0, $t6 +/* 0AC524 7F0779F4 024F1025 */ or $v0, $s2, $t7 +/* 0AC528 7F0779F8 00003012 */ mflo $a2 +/* 0AC52C 7F0779FC 10000029 */ b .L7F077AA4 +/* 0AC530 7F077A00 8FA3016C */ lw $v1, 0x16c($sp) +.L7F077A04: +/* 0AC534 7F077A04 26B00003 */ addiu $s0, $s5, 3 +/* 0AC538 7F077A08 06010003 */ bgez $s0, .L7F077A18 +/* 0AC53C 7F077A0C 0010C883 */ sra $t9, $s0, 2 +/* 0AC540 7F077A10 26010003 */ addiu $at, $s0, 3 +/* 0AC544 7F077A14 0001C883 */ sra $t9, $at, 2 +.L7F077A18: +/* 0AC548 7F077A18 03340019 */ multu $t9, $s4 +/* 0AC54C 7F077A1C 332E01FF */ andi $t6, $t9, 0x1ff +/* 0AC550 7F077A20 000EC240 */ sll $t8, $t6, 9 +/* 0AC554 7F077A24 03208025 */ move $s0, $t9 +/* 0AC558 7F077A28 02581025 */ or $v0, $s2, $t8 +/* 0AC55C 7F077A2C 00003012 */ mflo $a2 +/* 0AC560 7F077A30 1000001C */ b .L7F077AA4 +/* 0AC564 7F077A34 8FA3016C */ lw $v1, 0x16c($sp) +.L7F077A38: +/* 0AC568 7F077A38 26B00007 */ addiu $s0, $s5, 7 +/* 0AC56C 7F077A3C 06010003 */ bgez $s0, .L7F077A4C +/* 0AC570 7F077A40 001078C3 */ sra $t7, $s0, 3 +/* 0AC574 7F077A44 26010007 */ addiu $at, $s0, 7 +/* 0AC578 7F077A48 000178C3 */ sra $t7, $at, 3 +.L7F077A4C: +/* 0AC57C 7F077A4C 01F40019 */ multu $t7, $s4 +/* 0AC580 7F077A50 31F901FF */ andi $t9, $t7, 0x1ff +/* 0AC584 7F077A54 00197240 */ sll $t6, $t9, 9 +/* 0AC588 7F077A58 01E08025 */ move $s0, $t7 +/* 0AC58C 7F077A5C 024E1025 */ or $v0, $s2, $t6 +/* 0AC590 7F077A60 00003012 */ mflo $a2 +/* 0AC594 7F077A64 1000000F */ b .L7F077AA4 +/* 0AC598 7F077A68 8FA3016C */ lw $v1, 0x16c($sp) +.L7F077A6C: +/* 0AC59C 7F077A6C 26B0000F */ addiu $s0, $s5, 0xf +/* 0AC5A0 7F077A70 06010003 */ bgez $s0, .L7F077A80 +/* 0AC5A4 7F077A74 0010C103 */ sra $t8, $s0, 4 +/* 0AC5A8 7F077A78 2601000F */ addiu $at, $s0, 0xf +/* 0AC5AC 7F077A7C 0001C103 */ sra $t8, $at, 4 +.L7F077A80: +/* 0AC5B0 7F077A80 03140019 */ multu $t8, $s4 +/* 0AC5B4 7F077A84 330F01FF */ andi $t7, $t8, 0x1ff +/* 0AC5B8 7F077A88 000FCA40 */ sll $t9, $t7, 9 +/* 0AC5BC 7F077A8C 03008025 */ move $s0, $t8 +/* 0AC5C0 7F077A90 02591025 */ or $v0, $s2, $t9 +/* 0AC5C4 7F077A94 00003012 */ mflo $a2 +/* 0AC5C8 7F077A98 00000000 */ nop +/* 0AC5CC 7F077A9C 00000000 */ nop +/* 0AC5D0 7F077AA0 8FA3016C */ lw $v1, 0x16c($sp) +.L7F077AA4: +/* 0AC5D4 7F077AA4 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0AC5D8 7F077AA8 02802025 */ move $a0, $s4 +/* 0AC5DC 7F077AAC 24780008 */ addiu $t8, $v1, 8 +/* 0AC5E0 7F077AB0 31F901FF */ andi $t9, $t7, 0x1ff +/* 0AC5E4 7F077AB4 00597025 */ or $t6, $v0, $t9 +/* 0AC5E8 7F077AB8 AFB8016C */ sw $t8, 0x16c($sp) +/* 0AC5EC 7F077ABC AC6E0000 */ sw $t6, ($v1) +/* 0AC5F0 7F077AC0 AFA6003C */ sw $a2, 0x3c($sp) +/* 0AC5F4 7F077AC4 0FC1D968 */ jal is_less_than_certain_power_of_2 +/* 0AC5F8 7F077AC8 AFA30060 */ sw $v1, 0x60($sp) +/* 0AC5FC 7F077ACC 02A02025 */ move $a0, $s5 +/* 0AC600 7F077AD0 0FC1D968 */ jal is_less_than_certain_power_of_2 +/* 0AC604 7F077AD4 AFA20058 */ sw $v0, 0x58($sp) +/* 0AC608 7F077AD8 32230007 */ andi $v1, $s1, 7 +/* 0AC60C 7F077ADC 0003C600 */ sll $t8, $v1, 0x18 +/* 0AC610 7F077AE0 304F000F */ andi $t7, $v0, 0xf +/* 0AC614 7F077AE4 000FC900 */ sll $t9, $t7, 4 +/* 0AC618 7F077AE8 03387025 */ or $t6, $t9, $t8 +/* 0AC61C 7F077AEC 03001825 */ move $v1, $t8 +/* 0AC620 7F077AF0 92F8000A */ lbu $t8, 0xa($s7) +/* 0AC624 7F077AF4 8FA70058 */ lw $a3, 0x58($sp) +/* 0AC628 7F077AF8 3224000F */ andi $a0, $s1, 0xf +/* 0AC62C 7F077AFC 330F0003 */ andi $t7, $t8, 3 +/* 0AC630 7F077B00 000FCC80 */ sll $t9, $t7, 0x12 +/* 0AC634 7F077B04 01D9C025 */ or $t8, $t6, $t9 +/* 0AC638 7F077B08 30EF000F */ andi $t7, $a3, 0xf +/* 0AC63C 7F077B0C 000F7380 */ sll $t6, $t7, 0xe +/* 0AC640 7F077B10 030EC825 */ or $t9, $t8, $t6 +/* 0AC644 7F077B14 92EE0009 */ lbu $t6, 9($s7) +/* 0AC648 7F077B18 00047A80 */ sll $t7, $a0, 0xa +/* 0AC64C 7F077B1C 032FC025 */ or $t8, $t9, $t7 +/* 0AC650 7F077B20 31D90003 */ andi $t9, $t6, 3 +/* 0AC654 7F077B24 00197A00 */ sll $t7, $t9, 8 +/* 0AC658 7F077B28 030F7025 */ or $t6, $t8, $t7 +/* 0AC65C 7F077B2C 8FB80060 */ lw $t8, 0x60($sp) +/* 0AC660 7F077B30 8FA6003C */ lw $a2, 0x3c($sp) +/* 0AC664 7F077B34 01C4C825 */ or $t9, $t6, $a0 +/* 0AC668 7F077B38 AF190004 */ sw $t9, 4($t8) +/* 0AC66C 7F077B3C 8FA5016C */ lw $a1, 0x16c($sp) +/* 0AC670 7F077B40 8FB90050 */ lw $t9, 0x50($sp) +/* 0AC674 7F077B44 26310001 */ addiu $s1, $s1, 1 +/* 0AC678 7F077B48 24AE0008 */ addiu $t6, $a1, 8 +/* 0AC67C 7F077B4C AFAE016C */ sw $t6, 0x16c($sp) +/* 0AC680 7F077B50 ACB90000 */ sw $t9, ($a1) +/* 0AC684 7F077B54 8FB80054 */ lw $t8, 0x54($sp) +/* 0AC688 7F077B58 8FAE004C */ lw $t6, 0x4c($sp) +/* 0AC68C 7F077B5C 00787825 */ or $t7, $v1, $t8 +/* 0AC690 7F077B60 01EEC825 */ or $t9, $t7, $t6 +/* 0AC694 7F077B64 ACB90004 */ sw $t9, 4($a1) +/* 0AC698 7F077B68 8FB800D0 */ lw $t8, 0xd0($sp) +/* 0AC69C 7F077B6C 8FAE00CC */ lw $t6, 0xcc($sp) +/* 0AC6A0 7F077B70 03067821 */ addu $t7, $t8, $a2 +/* 0AC6A4 7F077B74 162EFF63 */ bne $s1, $t6, .L7F077904 +/* 0AC6A8 7F077B78 AFAF00D0 */ sw $t7, 0xd0($sp) +/* 0AC6AC 7F077B7C AFB00064 */ sw $s0, 0x64($sp) +.L7F077B80: +/* 0AC6B0 7F077B80 8FB9016C */ lw $t9, 0x16c($sp) +/* 0AC6B4 7F077B84 8FB80170 */ lw $t8, 0x170($sp) +/* 0AC6B8 7F077B88 AF190000 */ sw $t9, ($t8) +/* 0AC6BC 7F077B8C 8FBF0034 */ lw $ra, 0x34($sp) +/* 0AC6C0 7F077B90 8FB70030 */ lw $s7, 0x30($sp) +/* 0AC6C4 7F077B94 8FB6002C */ lw $s6, 0x2c($sp) +/* 0AC6C8 7F077B98 8FB50028 */ lw $s5, 0x28($sp) +/* 0AC6CC 7F077B9C 8FB40024 */ lw $s4, 0x24($sp) +/* 0AC6D0 7F077BA0 8FB30020 */ lw $s3, 0x20($sp) +/* 0AC6D4 7F077BA4 8FB2001C */ lw $s2, 0x1c($sp) +/* 0AC6D8 7F077BA8 8FB10018 */ lw $s1, 0x18($sp) +/* 0AC6DC 7F077BAC 8FB00014 */ lw $s0, 0x14($sp) +/* 0AC6E0 7F077BB0 03E00008 */ jr $ra +/* 0AC6E4 7F077BB4 27BD0170 */ addiu $sp, $sp, 0x170 +) +#endif + + + + + +void sub_GAME_7F077BB8(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + return; +} + + + diff --git a/src/game/playerstats_007770.c b/src/game/playerstats_007770.c new file mode 100644 index 0000000..60b9ecb --- /dev/null +++ b/src/game/playerstats_007770.c @@ -0,0 +1,51 @@ +#include "ultra64.h" + + + +#ifdef NONMATCHING +void sub_GAME_7F007770(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F007770 +/* 03C2A0 7F007770 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 03C2A4 7F007774 AFBF0024 */ sw $ra, 0x24($sp) +/* 03C2A8 7F007778 AFB30020 */ sw $s3, 0x20($sp) +/* 03C2AC 7F00777C AFB2001C */ sw $s2, 0x1c($sp) +/* 03C2B0 7F007780 AFB10018 */ sw $s1, 0x18($sp) +/* 03C2B4 7F007784 0FC26919 */ jal get_num_players +/* 03C2B8 7F007788 AFB00014 */ sw $s0, 0x14($sp) +/* 03C2BC 7F00778C 0FC26C54 */ jal get_cur_playernum +/* 03C2C0 7F007790 00409825 */ move $s3, $v0 +/* 03C2C4 7F007794 AFA20030 */ sw $v0, 0x30($sp) +/* 03C2C8 7F007798 1A60000E */ blez $s3, .L7F0077D4 +/* 03C2CC 7F00779C 00008025 */ move $s0, $zero +/* 03C2D0 7F0077A0 27B20038 */ addiu $s2, $sp, 0x38 +/* 03C2D4 7F0077A4 27B1003C */ addiu $s1, $sp, 0x3c +.L7F0077A8: +/* 03C2D8 7F0077A8 0FC26C43 */ jal set_cur_player +/* 03C2DC 7F0077AC 02002025 */ move $a0, $s0 +/* 03C2E0 7F0077B0 02202025 */ move $a0, $s1 +/* 03C2E4 7F0077B4 0FC236C2 */ jal sub_GAME_7F08DB08 +/* 03C2E8 7F0077B8 02402825 */ move $a1, $s2 +/* 03C2EC 7F0077BC 8FA4003C */ lw $a0, 0x3c($sp) +/* 03C2F0 7F0077C0 0FC075A0 */ jal store_favorite_weapon_current_player +/* 03C2F4 7F0077C4 8FA50038 */ lw $a1, 0x38($sp) +/* 03C2F8 7F0077C8 26100001 */ addiu $s0, $s0, 1 +/* 03C2FC 7F0077CC 1613FFF6 */ bne $s0, $s3, .L7F0077A8 +/* 03C300 7F0077D0 00000000 */ nop +.L7F0077D4: +/* 03C304 7F0077D4 0FC26C43 */ jal set_cur_player +/* 03C308 7F0077D8 8FA40030 */ lw $a0, 0x30($sp) +/* 03C30C 7F0077DC 8FBF0024 */ lw $ra, 0x24($sp) +/* 03C310 7F0077E0 8FB00014 */ lw $s0, 0x14($sp) +/* 03C314 7F0077E4 8FB10018 */ lw $s1, 0x18($sp) +/* 03C318 7F0077E8 8FB2001C */ lw $s2, 0x1c($sp) +/* 03C31C 7F0077EC 8FB30020 */ lw $s3, 0x20($sp) +/* 03C320 7F0077F0 03E00008 */ jr $ra +/* 03C324 7F0077F4 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + diff --git a/src/game/prop.c b/src/game/prop.c new file mode 100644 index 0000000..69f80e6 --- /dev/null +++ b/src/game/prop.c @@ -0,0 +1,5295 @@ +#include "ultra64.h" + +s32 lastmpweaponnum; + +//.section .rodata + +const char aNochr[] = "-nochr"; +const char aNoprop[] = "-noprop"; +const char aNoobj[] = "-noobj"; +const char aNoprop_0[] = "-noprop"; + +const u32 only_read_by_stageload[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +const char aMp_[] = "mp_"; + + + + + + +#ifdef NONMATCHING +void load_proptype(void) { + +} +#else +GLOBAL_ASM( +.text +glabel load_proptype +/* 036680 7F001B50 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 036684 7F001B54 AFB00014 */ sw $s0, 0x14($sp) +/* 036688 7F001B58 3C108007 */ lui $s0, %hi(ptr_setup_objects) +/* 03668C 7F001B5C 8E105D0C */ lw $s0, %lo(ptr_setup_objects)($s0) +/* 036690 7F001B60 AFB10018 */ sw $s1, 0x18($sp) +/* 036694 7F001B64 AFBF0024 */ sw $ra, 0x24($sp) +/* 036698 7F001B68 AFB30020 */ sw $s3, 0x20($sp) +/* 03669C 7F001B6C AFB2001C */ sw $s2, 0x1c($sp) +/* 0366A0 7F001B70 12000010 */ beqz $s0, .L7F001BB4 +/* 0366A4 7F001B74 00008825 */ move $s1, $zero +/* 0366A8 7F001B78 92030003 */ lbu $v1, 3($s0) +/* 0366AC 7F001B7C 24130030 */ li $s3, 48 +/* 0366B0 7F001B80 309200FF */ andi $s2, $a0, 0xff +/* 0366B4 7F001B84 5263000C */ beql $s3, $v1, .L7F001BB8 +/* 0366B8 7F001B88 8FBF0024 */ lw $ra, 0x24($sp) +.L7F001B8C: +/* 0366BC 7F001B8C 16430002 */ bne $s2, $v1, .L7F001B98 +/* 0366C0 7F001B90 00000000 */ nop +/* 0366C4 7F001B94 26310001 */ addiu $s1, $s1, 1 +.L7F001B98: +/* 0366C8 7F001B98 0FC15A3D */ jal get_size_of_setup_object_type +/* 0366CC 7F001B9C 02002025 */ move $a0, $s0 +/* 0366D0 7F001BA0 00027080 */ sll $t6, $v0, 2 +/* 0366D4 7F001BA4 01D08021 */ addu $s0, $t6, $s0 +/* 0366D8 7F001BA8 92030003 */ lbu $v1, 3($s0) +/* 0366DC 7F001BAC 1663FFF7 */ bne $s3, $v1, .L7F001B8C +/* 0366E0 7F001BB0 00000000 */ nop +.L7F001BB4: +/* 0366E4 7F001BB4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F001BB8: +/* 0366E8 7F001BB8 02201025 */ move $v0, $s1 +/* 0366EC 7F001BBC 8FB10018 */ lw $s1, 0x18($sp) +/* 0366F0 7F001BC0 8FB00014 */ lw $s0, 0x14($sp) +/* 0366F4 7F001BC4 8FB2001C */ lw $s2, 0x1c($sp) +/* 0366F8 7F001BC8 8FB30020 */ lw $s3, 0x20($sp) +/* 0366FC 7F001BCC 03E00008 */ jr $ra +/* 036700 7F001BD0 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F001BD4(void *arg0, s32 arg1, void *arg12, void *arg13) { + f32 sp18; + f32 sp20; + f32 sp24; + f32 sp28; + f32 sp2C; + f32 sp30; + f32 sp34; + f32 sp3C; + f32 sp40; + f32 sp44; + f32 temp_f6; + f32 temp_f4; + f32 temp_f6_2; + f32 temp_f2; + f32 temp_f10; + f32 temp_f12; + f32 temp_f14; + f32 temp_f16; + + // Node 0 + sp34 = (f32) arg0->unk2C; + sp30 = (f32) arg0->unk30; + sp2C = (f32) arg0->unk34; + sp28 = (f32) arg0->unk38; + sp24 = (f32) arg0->unk3C; + sp20 = (f32) arg0->unk40; + temp_f6 = ((arg0->unk10 * arg0->unk20) - (arg0->unk1C * arg0->unk14)); + sp3C = temp_f6; + temp_f4 = ((arg0->unk14 * arg0->unk18) - (arg0->unk20 * arg0->unkC)); + sp40 = temp_f4; + sp18 = temp_f6; + temp_f6_2 = ((arg0->unkC * arg0->unk1C) - (arg0->unk18 * arg0->unk10)); + sp44 = temp_f6_2; + temp_f2 = (1.0f / sqrtf(((temp_f6_2 * temp_f6_2) + ((sp18 * sp18) + (temp_f4 * temp_f4))))); + temp_f10 = (sp3C * temp_f2); + sp3C = temp_f10; + sp40 = (f32) (sp40 * temp_f2); + temp_f12 = (sp24 + sp20); + sp44 = (f32) (sp44 * temp_f2); + temp_f14 = (sp34 + sp30); + temp_f16 = (sp2C + sp28); + *arg13 = (f32) ((((arg12->unk18 * temp_f12) + ((temp_f14 * temp_f10) + (temp_f16 * arg12->unkC))) * 0.5f) + *arg12); + arg13->unk4 = (f32) ((((arg12->unk1C * temp_f12) + ((temp_f14 * sp40) + (temp_f16 * arg12->unk10))) * 0.5f) + arg12->unk4); + arg13->unk8 = (f32) ((((arg12->unk20 * temp_f12) + ((temp_f14 * sp44) + (temp_f16 * arg12->unk14))) * 0.5f) + arg12->unk8); + return; + // (possible return value: sqrtf(((temp_f6_2 * temp_f6_2) + ((sp18 * sp18) + (temp_f4 * temp_f4))))) +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F001BD4 +/* 036704 7F001BD4 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 036708 7F001BD8 AFBF0014 */ sw $ra, 0x14($sp) +/* 03670C 7F001BDC C484002C */ lwc1 $f4, 0x2c($a0) +/* 036710 7F001BE0 E7A40034 */ swc1 $f4, 0x34($sp) +/* 036714 7F001BE4 C4860030 */ lwc1 $f6, 0x30($a0) +/* 036718 7F001BE8 E7A60030 */ swc1 $f6, 0x30($sp) +/* 03671C 7F001BEC C48A0034 */ lwc1 $f10, 0x34($a0) +/* 036720 7F001BF0 E7AA002C */ swc1 $f10, 0x2c($sp) +/* 036724 7F001BF4 C4880038 */ lwc1 $f8, 0x38($a0) +/* 036728 7F001BF8 E7A80028 */ swc1 $f8, 0x28($sp) +/* 03672C 7F001BFC C484003C */ lwc1 $f4, 0x3c($a0) +/* 036730 7F001C00 E7A40024 */ swc1 $f4, 0x24($sp) +/* 036734 7F001C04 C4860040 */ lwc1 $f6, 0x40($a0) +/* 036738 7F001C08 E7A60020 */ swc1 $f6, 0x20($sp) +/* 03673C 7F001C0C C48A0010 */ lwc1 $f10, 0x10($a0) +/* 036740 7F001C10 C4880020 */ lwc1 $f8, 0x20($a0) +/* 036744 7F001C14 C486001C */ lwc1 $f6, 0x1c($a0) +/* 036748 7F001C18 46085102 */ mul.s $f4, $f10, $f8 +/* 03674C 7F001C1C C48A0014 */ lwc1 $f10, 0x14($a0) +/* 036750 7F001C20 460A3202 */ mul.s $f8, $f6, $f10 +/* 036754 7F001C24 46082181 */ sub.s $f6, $f4, $f8 +/* 036758 7F001C28 E7A6003C */ swc1 $f6, 0x3c($sp) +/* 03675C 7F001C2C C4840018 */ lwc1 $f4, 0x18($a0) +/* 036760 7F001C30 C48A0014 */ lwc1 $f10, 0x14($a0) +/* 036764 7F001C34 46045202 */ mul.s $f8, $f10, $f4 +/* 036768 7F001C38 C484000C */ lwc1 $f4, 0xc($a0) +/* 03676C 7F001C3C C48A0020 */ lwc1 $f10, 0x20($a0) +/* 036770 7F001C40 46045282 */ mul.s $f10, $f10, $f4 +/* 036774 7F001C44 460A4101 */ sub.s $f4, $f8, $f10 +/* 036778 7F001C48 E7A40040 */ swc1 $f4, 0x40($sp) +/* 03677C 7F001C4C C48A001C */ lwc1 $f10, 0x1c($a0) +/* 036780 7F001C50 C488000C */ lwc1 $f8, 0xc($a0) +/* 036784 7F001C54 460A4202 */ mul.s $f8, $f8, $f10 +/* 036788 7F001C58 C48A0018 */ lwc1 $f10, 0x18($a0) +/* 03678C 7F001C5C E7A60018 */ swc1 $f6, 0x18($sp) +/* 036790 7F001C60 C4860010 */ lwc1 $f6, 0x10($a0) +/* 036794 7F001C64 AFA5004C */ sw $a1, 0x4c($sp) +/* 036798 7F001C68 AFA40048 */ sw $a0, 0x48($sp) +/* 03679C 7F001C6C 46065282 */ mul.s $f10, $f10, $f6 +/* 0367A0 7F001C70 460A4181 */ sub.s $f6, $f8, $f10 +/* 0367A4 7F001C74 C7A80018 */ lwc1 $f8, 0x18($sp) +/* 0367A8 7F001C78 46084282 */ mul.s $f10, $f8, $f8 +/* 0367AC 7F001C7C E7A60044 */ swc1 $f6, 0x44($sp) +/* 0367B0 7F001C80 46042202 */ mul.s $f8, $f4, $f4 +/* 0367B4 7F001C84 46085100 */ add.s $f4, $f10, $f8 +/* 0367B8 7F001C88 46063282 */ mul.s $f10, $f6, $f6 +/* 0367BC 7F001C8C 0C007DF8 */ jal sqrtf +/* 0367C0 7F001C90 46045300 */ add.s $f12, $f10, $f4 +/* 0367C4 7F001C94 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0367C8 7F001C98 44819000 */ mtc1 $at, $f18 +/* 0367CC 7F001C9C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0367D0 7F001CA0 44814000 */ mtc1 $at, $f8 +/* 0367D4 7F001CA4 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0367D8 7F001CA8 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0367DC 7F001CAC 46004083 */ div.s $f2, $f8, $f0 +/* 0367E0 7F001CB0 8FA40048 */ lw $a0, 0x48($sp) +/* 0367E4 7F001CB4 8FA5004C */ lw $a1, 0x4c($sp) +/* 0367E8 7F001CB8 46023282 */ mul.s $f10, $f6, $f2 +/* 0367EC 7F001CBC C7A60044 */ lwc1 $f6, 0x44($sp) +/* 0367F0 7F001CC0 46022202 */ mul.s $f8, $f4, $f2 +/* 0367F4 7F001CC4 E7AA003C */ swc1 $f10, 0x3c($sp) +/* 0367F8 7F001CC8 46023102 */ mul.s $f4, $f6, $f2 +/* 0367FC 7F001CCC C7A60020 */ lwc1 $f6, 0x20($sp) +/* 036800 7F001CD0 E7A80040 */ swc1 $f8, 0x40($sp) +/* 036804 7F001CD4 C7A80024 */ lwc1 $f8, 0x24($sp) +/* 036808 7F001CD8 46064300 */ add.s $f12, $f8, $f6 +/* 03680C 7F001CDC E7A40044 */ swc1 $f4, 0x44($sp) +/* 036810 7F001CE0 C7A40034 */ lwc1 $f4, 0x34($sp) +/* 036814 7F001CE4 C7A80030 */ lwc1 $f8, 0x30($sp) +/* 036818 7F001CE8 C7A6002C */ lwc1 $f6, 0x2c($sp) +/* 03681C 7F001CEC 46082380 */ add.s $f14, $f4, $f8 +/* 036820 7F001CF0 C7A40028 */ lwc1 $f4, 0x28($sp) +/* 036824 7F001CF4 46043400 */ add.s $f16, $f6, $f4 +/* 036828 7F001CF8 460A7202 */ mul.s $f8, $f14, $f10 +/* 03682C 7F001CFC C486000C */ lwc1 $f6, 0xc($a0) +/* 036830 7F001D00 46068102 */ mul.s $f4, $f16, $f6 +/* 036834 7F001D04 C4860018 */ lwc1 $f6, 0x18($a0) +/* 036838 7F001D08 46044280 */ add.s $f10, $f8, $f4 +/* 03683C 7F001D0C 460C3202 */ mul.s $f8, $f6, $f12 +/* 036840 7F001D10 460A4100 */ add.s $f4, $f8, $f10 +/* 036844 7F001D14 C4880000 */ lwc1 $f8, ($a0) +/* 036848 7F001D18 46122182 */ mul.s $f6, $f4, $f18 +/* 03684C 7F001D1C 46083280 */ add.s $f10, $f6, $f8 +/* 036850 7F001D20 E4AA0000 */ swc1 $f10, ($a1) +/* 036854 7F001D24 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 036858 7F001D28 C4880010 */ lwc1 $f8, 0x10($a0) +/* 03685C 7F001D2C 46047182 */ mul.s $f6, $f14, $f4 +/* 036860 7F001D30 00000000 */ nop +/* 036864 7F001D34 46088282 */ mul.s $f10, $f16, $f8 +/* 036868 7F001D38 C488001C */ lwc1 $f8, 0x1c($a0) +/* 03686C 7F001D3C 460A3100 */ add.s $f4, $f6, $f10 +/* 036870 7F001D40 460C4182 */ mul.s $f6, $f8, $f12 +/* 036874 7F001D44 46043280 */ add.s $f10, $f6, $f4 +/* 036878 7F001D48 C4860004 */ lwc1 $f6, 4($a0) +/* 03687C 7F001D4C 46125202 */ mul.s $f8, $f10, $f18 +/* 036880 7F001D50 46064100 */ add.s $f4, $f8, $f6 +/* 036884 7F001D54 E4A40004 */ swc1 $f4, 4($a1) +/* 036888 7F001D58 C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 03688C 7F001D5C C4860014 */ lwc1 $f6, 0x14($a0) +/* 036890 7F001D60 460A7202 */ mul.s $f8, $f14, $f10 +/* 036894 7F001D64 00000000 */ nop +/* 036898 7F001D68 46068102 */ mul.s $f4, $f16, $f6 +/* 03689C 7F001D6C C4860020 */ lwc1 $f6, 0x20($a0) +/* 0368A0 7F001D70 46044280 */ add.s $f10, $f8, $f4 +/* 0368A4 7F001D74 460C3202 */ mul.s $f8, $f6, $f12 +/* 0368A8 7F001D78 460A4100 */ add.s $f4, $f8, $f10 +/* 0368AC 7F001D7C C4880008 */ lwc1 $f8, 8($a0) +/* 0368B0 7F001D80 46122182 */ mul.s $f6, $f4, $f18 +/* 0368B4 7F001D84 46083280 */ add.s $f10, $f6, $f8 +/* 0368B8 7F001D88 E4AA0008 */ swc1 $f10, 8($a1) +/* 0368BC 7F001D8C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0368C0 7F001D90 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0368C4 7F001D94 03E00008 */ jr $ra +/* 0368C8 7F001D98 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void prepare_load_objects(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8004EEB4 +.word 0x358637bd +.text +glabel prepare_load_objects +/* 0368CC 7F001D9C 27BDFF08 */ addiu $sp, $sp, -0xf8 +/* 0368D0 7F001DA0 AFBF0034 */ sw $ra, 0x34($sp) +/* 0368D4 7F001DA4 AFB10030 */ sw $s1, 0x30($sp) +/* 0368D8 7F001DA8 AFB0002C */ sw $s0, 0x2c($sp) +/* 0368DC 7F001DAC AFA400F8 */ sw $a0, 0xf8($sp) +/* 0368E0 7F001DB0 AFA60100 */ sw $a2, 0x100($sp) +/* 0368E4 7F001DB4 84A40004 */ lh $a0, 4($a1) +/* 0368E8 7F001DB8 00A08825 */ move $s1, $a1 +/* 0368EC 7F001DBC 00008025 */ move $s0, $zero +/* 0368F0 7F001DC0 0FC15B0E */ jal load_model +/* 0368F4 7F001DC4 AFA400F0 */ sw $a0, 0xf0($sp) +/* 0368F8 7F001DC8 962E0000 */ lhu $t6, ($s1) +/* 0368FC 7F001DCC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 036900 7F001DD0 448E2000 */ mtc1 $t6, $f4 +/* 036904 7F001DD4 05C10004 */ bgez $t6, .L7F001DE8 +/* 036908 7F001DD8 468021A0 */ cvt.s.w $f6, $f4 +/* 03690C 7F001DDC 44814000 */ mtc1 $at, $f8 +/* 036910 7F001DE0 00000000 */ nop +/* 036914 7F001DE4 46083180 */ add.s $f6, $f6, $f8 +.L7F001DE8: +/* 036918 7F001DE8 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 03691C 7F001DEC 44815000 */ mtc1 $at, $f10 +/* 036920 7F001DF0 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 036924 7F001DF4 460A3102 */ mul.s $f4, $f6, $f10 +/* 036928 7F001DF8 44815000 */ mtc1 $at, $f10 +/* 03692C 7F001DFC E7A40078 */ swc1 $f4, 0x78($sp) +/* 036930 7F001E00 8E2F0074 */ lw $t7, 0x74($s1) +/* 036934 7F001E04 448F4000 */ mtc1 $t7, $f8 +/* 036938 7F001E08 00000000 */ nop +/* 03693C 7F001E0C 468041A0 */ cvt.s.w $f6, $f8 +/* 036940 7F001E10 460A3103 */ div.s $f4, $f6, $f10 +/* 036944 7F001E14 0FC26919 */ jal get_num_players +/* 036948 7F001E18 E6240074 */ swc1 $f4, 0x74($s1) +/* 03694C 7F001E1C 28410002 */ slti $at, $v0, 2 +/* 036950 7F001E20 1420001B */ bnez $at, .L7F001E90 +/* 036954 7F001E24 24030001 */ li $v1, 1 +/* 036958 7F001E28 0FC051D6 */ jal get_scenario +/* 03695C 7F001E2C AFA30074 */ sw $v1, 0x74($sp) +/* 036960 7F001E30 24010002 */ li $at, 2 +/* 036964 7F001E34 14410007 */ bne $v0, $at, .L7F001E54 +/* 036968 7F001E38 8FA30074 */ lw $v1, 0x74($sp) +/* 03696C 7F001E3C 86380004 */ lh $t8, 4($s1) +/* 036970 7F001E40 2401014D */ li $at, 333 +/* 036974 7F001E44 17010003 */ bne $t8, $at, .L7F001E54 +/* 036978 7F001E48 00000000 */ nop +/* 03697C 7F001E4C 1000000B */ b .L7F001E7C +/* 036980 7F001E50 00001825 */ move $v1, $zero +.L7F001E54: +/* 036984 7F001E54 0FC051D6 */ jal get_scenario +/* 036988 7F001E58 AFA30074 */ sw $v1, 0x74($sp) +/* 03698C 7F001E5C 24010003 */ li $at, 3 +/* 036990 7F001E60 14410006 */ bne $v0, $at, .L7F001E7C +/* 036994 7F001E64 8FA30074 */ lw $v1, 0x74($sp) +/* 036998 7F001E68 86390004 */ lh $t9, 4($s1) +/* 03699C 7F001E6C 240100D0 */ li $at, 208 +/* 0369A0 7F001E70 17210002 */ bne $t9, $at, .L7F001E7C +/* 0369A4 7F001E74 00000000 */ nop +/* 0369A8 7F001E78 00001825 */ move $v1, $zero +.L7F001E7C: +/* 0369AC 7F001E7C 50600005 */ beql $v1, $zero, .L7F001E94 +/* 0369B0 7F001E80 8E230008 */ lw $v1, 8($s1) +/* 0369B4 7F001E84 92280002 */ lbu $t0, 2($s1) +/* 0369B8 7F001E88 35090004 */ ori $t1, $t0, 4 +/* 0369BC 7F001E8C A2290002 */ sb $t1, 2($s1) +.L7F001E90: +/* 0369C0 7F001E90 8E230008 */ lw $v1, 8($s1) +.L7F001E94: +/* 0369C4 7F001E94 306A8000 */ andi $t2, $v1, 0x8000 +/* 0369C8 7F001E98 11400021 */ beqz $t2, .L7F001F20 +/* 0369CC 7F001E9C 30784000 */ andi $t8, $v1, 0x4000 +/* 0369D0 7F001EA0 922B0003 */ lbu $t3, 3($s1) +/* 0369D4 7F001EA4 8FAE00F0 */ lw $t6, 0xf0($sp) +/* 0369D8 7F001EA8 24010008 */ li $at, 8 +/* 0369DC 7F001EAC 1561000C */ bne $t3, $at, .L7F001EE0 +/* 0369E0 7F001EB0 000E7880 */ sll $t7, $t6, 2 +/* 0369E4 7F001EB4 8FAC00F0 */ lw $t4, 0xf0($sp) +/* 0369E8 7F001EB8 3C058004 */ lui $a1, %hi(PitemZ_entries) +/* 0369EC 7F001EBC 02202025 */ move $a0, $s1 +/* 0369F0 7F001EC0 000C6880 */ sll $t5, $t4, 2 +/* 0369F4 7F001EC4 01AC6823 */ subu $t5, $t5, $t4 +/* 0369F8 7F001EC8 000D6880 */ sll $t5, $t5, 2 +/* 0369FC 7F001ECC 00AD2821 */ addu $a1, $a1, $t5 +/* 036A00 7F001ED0 0FC14776 */ jal sub_GAME_7F051DD8 +/* 036A04 7F001ED4 8CA5A228 */ lw $a1, %lo(PitemZ_entries)($a1) +/* 036A08 7F001ED8 10000009 */ b .L7F001F00 +/* 036A0C 7F001EDC 8E240014 */ lw $a0, 0x14($s1) +.L7F001EE0: +/* 036A10 7F001EE0 01EE7823 */ subu $t7, $t7, $t6 +/* 036A14 7F001EE4 000F7880 */ sll $t7, $t7, 2 +/* 036A18 7F001EE8 3C058004 */ lui $a1, %hi(PitemZ_entries) +/* 036A1C 7F001EEC 00AF2821 */ addu $a1, $a1, $t7 +/* 036A20 7F001EF0 8CA5A228 */ lw $a1, %lo(PitemZ_entries)($a1) +/* 036A24 7F001EF4 0FC101BE */ jal sub_GAME_7F0406F8 +/* 036A28 7F001EF8 02202025 */ move $a0, $s1 +/* 036A2C 7F001EFC 8E240014 */ lw $a0, 0x14($s1) +.L7F001F00: +/* 036A30 7F001F00 C7A60078 */ lwc1 $f6, 0x78($sp) +/* 036A34 7F001F04 C4880014 */ lwc1 $f8, 0x14($a0) +/* 036A38 7F001F08 46064282 */ mul.s $f10, $f8, $f6 +/* 036A3C 7F001F0C 44055000 */ mfc1 $a1, $f10 +/* 036A40 7F001F10 0FC1B39E */ jal set_obj_instance_controller_scale +/* 036A44 7F001F14 00000000 */ nop +/* 036A48 7F001F18 10000203 */ b .L7F002728 +/* 036A4C 7F001F1C 8FBF0034 */ lw $ra, 0x34($sp) +.L7F001F20: +/* 036A50 7F001F20 53000031 */ beql $t8, $zero, .L7F001FE8 +/* 036A54 7F001F24 86230006 */ lh $v1, 6($s1) +/* 036A58 7F001F28 0FC08BF2 */ jal check_if_guardnum_loaded_get_ptr_GUARDdata +/* 036A5C 7F001F2C 86240006 */ lh $a0, 6($s1) +/* 036A60 7F001F30 104001FC */ beqz $v0, .L7F002724 +/* 036A64 7F001F34 AFA2006C */ sw $v0, 0x6c($sp) +/* 036A68 7F001F38 8C590018 */ lw $t9, 0x18($v0) +/* 036A6C 7F001F3C 532001FA */ beql $t9, $zero, .L7F002728 +/* 036A70 7F001F40 8FBF0034 */ lw $ra, 0x34($sp) +/* 036A74 7F001F44 8C48001C */ lw $t0, 0x1c($v0) +/* 036A78 7F001F48 510001F7 */ beql $t0, $zero, .L7F002728 +/* 036A7C 7F001F4C 8FBF0034 */ lw $ra, 0x34($sp) +/* 036A80 7F001F50 92290003 */ lbu $t1, 3($s1) +/* 036A84 7F001F54 8FAC00F0 */ lw $t4, 0xf0($sp) +/* 036A88 7F001F58 24010008 */ li $at, 8 +/* 036A8C 7F001F5C 1521000C */ bne $t1, $at, .L7F001F90 +/* 036A90 7F001F60 000C6880 */ sll $t5, $t4, 2 +/* 036A94 7F001F64 8FAA00F0 */ lw $t2, 0xf0($sp) +/* 036A98 7F001F68 3C058004 */ lui $a1, %hi(PitemZ_entries) +/* 036A9C 7F001F6C 02202025 */ move $a0, $s1 +/* 036AA0 7F001F70 000A5880 */ sll $t3, $t2, 2 +/* 036AA4 7F001F74 016A5823 */ subu $t3, $t3, $t2 +/* 036AA8 7F001F78 000B5880 */ sll $t3, $t3, 2 +/* 036AAC 7F001F7C 00AB2821 */ addu $a1, $a1, $t3 +/* 036AB0 7F001F80 0FC14776 */ jal sub_GAME_7F051DD8 +/* 036AB4 7F001F84 8CA5A228 */ lw $a1, %lo(PitemZ_entries)($a1) +/* 036AB8 7F001F88 10000009 */ b .L7F001FB0 +/* 036ABC 7F001F8C 00408025 */ move $s0, $v0 +.L7F001F90: +/* 036AC0 7F001F90 01AC6823 */ subu $t5, $t5, $t4 +/* 036AC4 7F001F94 000D6880 */ sll $t5, $t5, 2 +/* 036AC8 7F001F98 3C058004 */ lui $a1, %hi(PitemZ_entries) +/* 036ACC 7F001F9C 00AD2821 */ addu $a1, $a1, $t5 +/* 036AD0 7F001FA0 8CA5A228 */ lw $a1, %lo(PitemZ_entries)($a1) +/* 036AD4 7F001FA4 0FC101BE */ jal sub_GAME_7F0406F8 +/* 036AD8 7F001FA8 02202025 */ move $a0, $s1 +/* 036ADC 7F001FAC 00408025 */ move $s0, $v0 +.L7F001FB0: +/* 036AE0 7F001FB0 8E240014 */ lw $a0, 0x14($s1) +/* 036AE4 7F001FB4 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 036AE8 7F001FB8 C4840014 */ lwc1 $f4, 0x14($a0) +/* 036AEC 7F001FBC 46082182 */ mul.s $f6, $f4, $f8 +/* 036AF0 7F001FC0 44053000 */ mfc1 $a1, $f6 +/* 036AF4 7F001FC4 0FC1B39E */ jal set_obj_instance_controller_scale +/* 036AF8 7F001FC8 00000000 */ nop +/* 036AFC 7F001FCC 8FAE006C */ lw $t6, 0x6c($sp) +/* 036B00 7F001FD0 02002025 */ move $a0, $s0 +/* 036B04 7F001FD4 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 036B08 7F001FD8 8DC50018 */ lw $a1, 0x18($t6) +/* 036B0C 7F001FDC 100001D2 */ b .L7F002728 +/* 036B10 7F001FE0 8FBF0034 */ lw $ra, 0x34($sp) +/* 036B14 7F001FE4 86230006 */ lh $v1, 6($s1) +.L7F001FE8: +/* 036B18 7F001FE8 3C188007 */ lui $t8, %hi(ptr_0xxxpresets) +/* 036B1C 7F001FEC 3C0B8007 */ lui $t3, %hi(ptr_2xxxpresets) +/* 036B20 7F001FF0 28612710 */ slti $at, $v1, 0x2710 +/* 036B24 7F001FF4 10200039 */ beqz $at, .L7F0020DC +/* 036B28 7F001FF8 00035100 */ sll $t2, $v1, 4 +/* 036B2C 7F001FFC 00037880 */ sll $t7, $v1, 2 +/* 036B30 7F002000 01E37823 */ subu $t7, $t7, $v1 +/* 036B34 7F002004 8F185D18 */ lw $t8, %lo(ptr_0xxxpresets)($t8) +/* 036B38 7F002008 000F7880 */ sll $t7, $t7, 2 +/* 036B3C 7F00200C 01E37823 */ subu $t7, $t7, $v1 +/* 036B40 7F002010 000F7880 */ sll $t7, $t7, 2 +/* 036B44 7F002014 01F81021 */ addu $v0, $t7, $t8 +/* 036B48 7F002018 C44A0018 */ lwc1 $f10, 0x18($v0) +/* 036B4C 7F00201C 44800000 */ mtc1 $zero, $f0 +/* 036B50 7F002020 27A4008C */ addiu $a0, $sp, 0x8c +/* 036B54 7F002024 46005107 */ neg.s $f4, $f10 +/* 036B58 7F002028 44050000 */ mfc1 $a1, $f0 +/* 036B5C 7F00202C E7A40010 */ swc1 $f4, 0x10($sp) +/* 036B60 7F002030 C448001C */ lwc1 $f8, 0x1c($v0) +/* 036B64 7F002034 44060000 */ mfc1 $a2, $f0 +/* 036B68 7F002038 44070000 */ mfc1 $a3, $f0 +/* 036B6C 7F00203C 46004187 */ neg.s $f6, $f8 +/* 036B70 7F002040 E7A60014 */ swc1 $f6, 0x14($sp) +/* 036B74 7F002044 C44A0020 */ lwc1 $f10, 0x20($v0) +/* 036B78 7F002048 46005107 */ neg.s $f4, $f10 +/* 036B7C 7F00204C E7A40018 */ swc1 $f4, 0x18($sp) +/* 036B80 7F002050 C448000C */ lwc1 $f8, 0xc($v0) +/* 036B84 7F002054 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 036B88 7F002058 C4460010 */ lwc1 $f6, 0x10($v0) +/* 036B8C 7F00205C E7A60020 */ swc1 $f6, 0x20($sp) +/* 036B90 7F002060 C44A0014 */ lwc1 $f10, 0x14($v0) +/* 036B94 7F002064 AFA20064 */ sw $v0, 0x64($sp) +/* 036B98 7F002068 0FC16642 */ jal sub_GAME_7F059908 +/* 036B9C 7F00206C E7AA0024 */ swc1 $f10, 0x24($sp) +/* 036BA0 7F002070 8FA20064 */ lw $v0, 0x64($sp) +/* 036BA4 7F002074 C4440000 */ lwc1 $f4, ($v0) +/* 036BA8 7F002078 E7A400D0 */ swc1 $f4, 0xd0($sp) +/* 036BAC 7F00207C C4480004 */ lwc1 $f8, 4($v0) +/* 036BB0 7F002080 E7A800D4 */ swc1 $f8, 0xd4($sp) +/* 036BB4 7F002084 C4460008 */ lwc1 $f6, 8($v0) +/* 036BB8 7F002088 E7A600D8 */ swc1 $f6, 0xd8($sp) +/* 036BBC 7F00208C 8E390008 */ lw $t9, 8($s1) +/* 036BC0 7F002090 33280002 */ andi $t0, $t9, 2 +/* 036BC4 7F002094 51000009 */ beql $t0, $zero, .L7F0020BC +/* 036BC8 7F002098 C4460000 */ lwc1 $f6, ($v0) +/* 036BCC 7F00209C C44A0000 */ lwc1 $f10, ($v0) +/* 036BD0 7F0020A0 E7AA0080 */ swc1 $f10, 0x80($sp) +/* 036BD4 7F0020A4 C4440004 */ lwc1 $f4, 4($v0) +/* 036BD8 7F0020A8 E7A40084 */ swc1 $f4, 0x84($sp) +/* 036BDC 7F0020AC C4480008 */ lwc1 $f8, 8($v0) +/* 036BE0 7F0020B0 10000007 */ b .L7F0020D0 +/* 036BE4 7F0020B4 E7A80088 */ swc1 $f8, 0x88($sp) +/* 036BE8 7F0020B8 C4460000 */ lwc1 $f6, ($v0) +.L7F0020BC: +/* 036BEC 7F0020BC E7A60080 */ swc1 $f6, 0x80($sp) +/* 036BF0 7F0020C0 C44A0004 */ lwc1 $f10, 4($v0) +/* 036BF4 7F0020C4 E7AA0084 */ swc1 $f10, 0x84($sp) +/* 036BF8 7F0020C8 C4440008 */ lwc1 $f4, 8($v0) +/* 036BFC 7F0020CC E7A40088 */ swc1 $f4, 0x88($sp) +.L7F0020D0: +/* 036C00 7F0020D0 8C490028 */ lw $t1, 0x28($v0) +/* 036C04 7F0020D4 10000085 */ b .L7F0022EC +/* 036C08 7F0020D8 AFA900CC */ sw $t1, 0xcc($sp) +.L7F0020DC: +/* 036C0C 7F0020DC 8D6B5D1C */ lw $t3, %lo(ptr_2xxxpresets)($t3) +/* 036C10 7F0020E0 01435021 */ addu $t2, $t2, $v1 +/* 036C14 7F0020E4 000A5080 */ sll $t2, $t2, 2 +/* 036C18 7F0020E8 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 036C1C 7F0020EC 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 036C20 7F0020F0 014B8021 */ addu $s0, $t2, $t3 +/* 036C24 7F0020F4 02018021 */ addu $s0, $s0, $at +/* 036C28 7F0020F8 C6080018 */ lwc1 $f8, 0x18($s0) +/* 036C2C 7F0020FC 44800000 */ mtc1 $zero, $f0 +/* 036C30 7F002100 27A4008C */ addiu $a0, $sp, 0x8c +/* 036C34 7F002104 46004187 */ neg.s $f6, $f8 +/* 036C38 7F002108 44050000 */ mfc1 $a1, $f0 +/* 036C3C 7F00210C E7A60010 */ swc1 $f6, 0x10($sp) +/* 036C40 7F002110 C60A001C */ lwc1 $f10, 0x1c($s0) +/* 036C44 7F002114 44060000 */ mfc1 $a2, $f0 +/* 036C48 7F002118 44070000 */ mfc1 $a3, $f0 +/* 036C4C 7F00211C 46005107 */ neg.s $f4, $f10 +/* 036C50 7F002120 E7A40014 */ swc1 $f4, 0x14($sp) +/* 036C54 7F002124 C6080020 */ lwc1 $f8, 0x20($s0) +/* 036C58 7F002128 46004187 */ neg.s $f6, $f8 +/* 036C5C 7F00212C E7A60018 */ swc1 $f6, 0x18($sp) +/* 036C60 7F002130 C60A000C */ lwc1 $f10, 0xc($s0) +/* 036C64 7F002134 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 036C68 7F002138 C6040010 */ lwc1 $f4, 0x10($s0) +/* 036C6C 7F00213C E7A40020 */ swc1 $f4, 0x20($sp) +/* 036C70 7F002140 C6080014 */ lwc1 $f8, 0x14($s0) +/* 036C74 7F002144 0FC16642 */ jal sub_GAME_7F059908 +/* 036C78 7F002148 E7A80024 */ swc1 $f8, 0x24($sp) +/* 036C7C 7F00214C 8E2C000C */ lw $t4, 0xc($s1) +/* 036C80 7F002150 02002025 */ move $a0, $s0 +/* 036C84 7F002154 318D0001 */ andi $t5, $t4, 1 +/* 036C88 7F002158 55A0003D */ bnezl $t5, .L7F002250 +/* 036C8C 7F00215C C60A0000 */ lwc1 $f10, ($s0) +/* 036C90 7F002160 0FC006F5 */ jal sub_GAME_7F001BD4 +/* 036C94 7F002164 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 036C98 7F002168 C6060034 */ lwc1 $f6, 0x34($s0) +/* 036C9C 7F00216C C60A0038 */ lwc1 $f10, 0x38($s0) +/* 036CA0 7F002170 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 036CA4 7F002174 44810000 */ mtc1 $at, $f0 +/* 036CA8 7F002178 460A3101 */ sub.s $f4, $f6, $f10 +/* 036CAC 7F00217C C606000C */ lwc1 $f6, 0xc($s0) +/* 036CB0 7F002180 27A400CC */ addiu $a0, $sp, 0xcc +/* 036CB4 7F002184 46002202 */ mul.s $f8, $f4, $f0 +/* 036CB8 7F002188 C7A400D0 */ lwc1 $f4, 0xd0($sp) +/* 036CBC 7F00218C 44072000 */ mfc1 $a3, $f4 +/* 036CC0 7F002190 46083282 */ mul.s $f10, $f6, $f8 +/* 036CC4 7F002194 46045180 */ add.s $f6, $f10, $f4 +/* 036CC8 7F002198 E7A60080 */ swc1 $f6, 0x80($sp) +/* 036CCC 7F00219C C60A0038 */ lwc1 $f10, 0x38($s0) +/* 036CD0 7F0021A0 C6080034 */ lwc1 $f8, 0x34($s0) +/* 036CD4 7F0021A4 460A4181 */ sub.s $f6, $f8, $f10 +/* 036CD8 7F0021A8 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 036CDC 7F0021AC 46003202 */ mul.s $f8, $f6, $f0 +/* 036CE0 7F0021B0 00000000 */ nop +/* 036CE4 7F0021B4 46085182 */ mul.s $f6, $f10, $f8 +/* 036CE8 7F0021B8 C7AA00D4 */ lwc1 $f10, 0xd4($sp) +/* 036CEC 7F0021BC 460A3200 */ add.s $f8, $f6, $f10 +/* 036CF0 7F0021C0 E7A80084 */ swc1 $f8, 0x84($sp) +/* 036CF4 7F0021C4 C60A0038 */ lwc1 $f10, 0x38($s0) +/* 036CF8 7F0021C8 C6060034 */ lwc1 $f6, 0x34($s0) +/* 036CFC 7F0021CC 460A3201 */ sub.s $f8, $f6, $f10 +/* 036D00 7F0021D0 C60A0014 */ lwc1 $f10, 0x14($s0) +/* 036D04 7F0021D4 46004182 */ mul.s $f6, $f8, $f0 +/* 036D08 7F0021D8 00000000 */ nop +/* 036D0C 7F0021DC 46065202 */ mul.s $f8, $f10, $f6 +/* 036D10 7F0021E0 C7AA00D8 */ lwc1 $f10, 0xd8($sp) +/* 036D14 7F0021E4 460A4180 */ add.s $f6, $f8, $f10 +/* 036D18 7F0021E8 E7A60088 */ swc1 $f6, 0x88($sp) +/* 036D1C 7F0021EC 8E0E0028 */ lw $t6, 0x28($s0) +/* 036D20 7F0021F0 AFAE00CC */ sw $t6, 0xcc($sp) +/* 036D24 7F0021F4 8E060008 */ lw $a2, 8($s0) +/* 036D28 7F0021F8 8E050000 */ lw $a1, ($s0) +/* 036D2C 7F0021FC 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 036D30 7F002200 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 036D34 7F002204 5440003A */ bnezl $v0, .L7F0022F0 +/* 036D38 7F002208 27A900DC */ addiu $t1, $sp, 0xdc +/* 036D3C 7F00220C C6080000 */ lwc1 $f8, ($s0) +/* 036D40 7F002210 E7A800D0 */ swc1 $f8, 0xd0($sp) +/* 036D44 7F002214 C6060004 */ lwc1 $f6, 4($s0) +/* 036D48 7F002218 E7A600D4 */ swc1 $f6, 0xd4($sp) +/* 036D4C 7F00221C C6040008 */ lwc1 $f4, 8($s0) +/* 036D50 7F002220 E7A400D8 */ swc1 $f4, 0xd8($sp) +/* 036D54 7F002224 8E0F0028 */ lw $t7, 0x28($s0) +/* 036D58 7F002228 AFAF00CC */ sw $t7, 0xcc($sp) +/* 036D5C 7F00222C 8E230008 */ lw $v1, 8($s1) +/* 036D60 7F002230 30780002 */ andi $t8, $v1, 2 +/* 036D64 7F002234 1700002D */ bnez $t8, .L7F0022EC +/* 036D68 7F002238 30791000 */ andi $t9, $v1, 0x1000 +/* 036D6C 7F00223C 5720002C */ bnezl $t9, .L7F0022F0 +/* 036D70 7F002240 27A900DC */ addiu $t1, $sp, 0xdc +/* 036D74 7F002244 1000002A */ b .L7F0022F0 +/* 036D78 7F002248 27A900DC */ addiu $t1, $sp, 0xdc +/* 036D7C 7F00224C C60A0000 */ lwc1 $f10, ($s0) +.L7F002250: +/* 036D80 7F002250 02002025 */ move $a0, $s0 +/* 036D84 7F002254 27A50080 */ addiu $a1, $sp, 0x80 +/* 036D88 7F002258 E7AA00D0 */ swc1 $f10, 0xd0($sp) +/* 036D8C 7F00225C C6080004 */ lwc1 $f8, 4($s0) +/* 036D90 7F002260 E7A800D4 */ swc1 $f8, 0xd4($sp) +/* 036D94 7F002264 C6060008 */ lwc1 $f6, 8($s0) +/* 036D98 7F002268 E7A600D8 */ swc1 $f6, 0xd8($sp) +/* 036D9C 7F00226C 8E080028 */ lw $t0, 0x28($s0) +/* 036DA0 7F002270 0FC006F5 */ jal sub_GAME_7F001BD4 +/* 036DA4 7F002274 AFA800CC */ sw $t0, 0xcc($sp) +/* 036DA8 7F002278 C6040034 */ lwc1 $f4, 0x34($s0) +/* 036DAC 7F00227C C60A0038 */ lwc1 $f10, 0x38($s0) +/* 036DB0 7F002280 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 036DB4 7F002284 44810000 */ mtc1 $at, $f0 +/* 036DB8 7F002288 460A2201 */ sub.s $f8, $f4, $f10 +/* 036DBC 7F00228C C604000C */ lwc1 $f4, 0xc($s0) +/* 036DC0 7F002290 46004182 */ mul.s $f6, $f8, $f0 +/* 036DC4 7F002294 C7A80080 */ lwc1 $f8, 0x80($sp) +/* 036DC8 7F002298 46043282 */ mul.s $f10, $f6, $f4 +/* 036DCC 7F00229C 460A4180 */ add.s $f6, $f8, $f10 +/* 036DD0 7F0022A0 E7A60080 */ swc1 $f6, 0x80($sp) +/* 036DD4 7F0022A4 C6080038 */ lwc1 $f8, 0x38($s0) +/* 036DD8 7F0022A8 C6040034 */ lwc1 $f4, 0x34($s0) +/* 036DDC 7F0022AC 46082281 */ sub.s $f10, $f4, $f8 +/* 036DE0 7F0022B0 C6040010 */ lwc1 $f4, 0x10($s0) +/* 036DE4 7F0022B4 46005182 */ mul.s $f6, $f10, $f0 +/* 036DE8 7F0022B8 C7AA0084 */ lwc1 $f10, 0x84($sp) +/* 036DEC 7F0022BC 46043202 */ mul.s $f8, $f6, $f4 +/* 036DF0 7F0022C0 46085180 */ add.s $f6, $f10, $f8 +/* 036DF4 7F0022C4 E7A60084 */ swc1 $f6, 0x84($sp) +/* 036DF8 7F0022C8 C60A0038 */ lwc1 $f10, 0x38($s0) +/* 036DFC 7F0022CC C6040034 */ lwc1 $f4, 0x34($s0) +/* 036E00 7F0022D0 460A2201 */ sub.s $f8, $f4, $f10 +/* 036E04 7F0022D4 C6040014 */ lwc1 $f4, 0x14($s0) +/* 036E08 7F0022D8 46004182 */ mul.s $f6, $f8, $f0 +/* 036E0C 7F0022DC C7A80088 */ lwc1 $f8, 0x88($sp) +/* 036E10 7F0022E0 46043282 */ mul.s $f10, $f6, $f4 +/* 036E14 7F0022E4 460A4180 */ add.s $f6, $f8, $f10 +/* 036E18 7F0022E8 E7A60088 */ swc1 $f6, 0x88($sp) +.L7F0022EC: +/* 036E1C 7F0022EC 27A900DC */ addiu $t1, $sp, 0xdc +.L7F0022F0: +/* 036E20 7F0022F0 AFA90010 */ sw $t1, 0x10($sp) +/* 036E24 7F0022F4 27A400D0 */ addiu $a0, $sp, 0xd0 +/* 036E28 7F0022F8 8FA500CC */ lw $a1, 0xcc($sp) +/* 036E2C 7F0022FC 24060000 */ li $a2, 0 +/* 036E30 7F002300 0FC15A14 */ jal sub_GAME_7F056850 +/* 036E34 7F002304 27A700E0 */ addiu $a3, $sp, 0xe0 +/* 036E38 7F002308 50400107 */ beql $v0, $zero, .L7F002728 +/* 036E3C 7F00230C 8FBF0034 */ lw $ra, 0x34($sp) +/* 036E40 7F002310 922A0003 */ lbu $t2, 3($s1) +/* 036E44 7F002314 8FAB00F0 */ lw $t3, 0xf0($sp) +/* 036E48 7F002318 24010008 */ li $at, 8 +/* 036E4C 7F00231C 1541000A */ bne $t2, $at, .L7F002348 +/* 036E50 7F002320 000B6080 */ sll $t4, $t3, 2 +/* 036E54 7F002324 018B6023 */ subu $t4, $t4, $t3 +/* 036E58 7F002328 000C6080 */ sll $t4, $t4, 2 +/* 036E5C 7F00232C 3C058004 */ lui $a1, %hi(PitemZ_entries) +/* 036E60 7F002330 00AC2821 */ addu $a1, $a1, $t4 +/* 036E64 7F002334 8CA5A228 */ lw $a1, %lo(PitemZ_entries)($a1) +/* 036E68 7F002338 0FC14776 */ jal sub_GAME_7F051DD8 +/* 036E6C 7F00233C 02202025 */ move $a0, $s1 +/* 036E70 7F002340 10000004 */ b .L7F002354 +/* 036E74 7F002344 AFA20060 */ sw $v0, 0x60($sp) +.L7F002348: +/* 036E78 7F002348 0FC101C7 */ jal sub_GAME_7F04071C +/* 036E7C 7F00234C 02202025 */ move $a0, $s1 +/* 036E80 7F002350 AFA20060 */ sw $v0, 0x60($sp) +.L7F002354: +/* 036E84 7F002354 520000D0 */ beql $s0, $zero, .L7F002698 +/* 036E88 7F002358 8E240014 */ lw $a0, 0x14($s1) +/* 036E8C 7F00235C 0FC1001E */ jal sub_GAME_7F040078 +/* 036E90 7F002360 02202025 */ move $a0, $s1 +/* 036E94 7F002364 104000CB */ beqz $v0, .L7F002694 +/* 036E98 7F002368 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 036E9C 7F00236C 44819000 */ mtc1 $at, $f18 +/* 036EA0 7F002370 27A5008C */ addiu $a1, $sp, 0x8c +/* 036EA4 7F002374 E7B20058 */ swc1 $f18, 0x58($sp) +/* 036EA8 7F002378 8E230008 */ lw $v1, 8($s1) +/* 036EAC 7F00237C 46009406 */ mov.s $f16, $f18 +/* 036EB0 7F002380 306D0030 */ andi $t5, $v1, 0x30 +/* 036EB4 7F002384 11A0001D */ beqz $t5, .L7F0023FC +/* 036EB8 7F002388 30790050 */ andi $t9, $v1, 0x50 +/* 036EBC 7F00238C C4420004 */ lwc1 $f2, 4($v0) +/* 036EC0 7F002390 C4400008 */ lwc1 $f0, 8($v0) +/* 036EC4 7F002394 306E0002 */ andi $t6, $v1, 2 +/* 036EC8 7F002398 4600103C */ c.lt.s $f2, $f0 +/* 036ECC 7F00239C 00000000 */ nop +/* 036ED0 7F0023A0 45000016 */ bc1f .L7F0023FC +/* 036ED4 7F0023A4 00000000 */ nop +/* 036ED8 7F0023A8 51C0000C */ beql $t6, $zero, .L7F0023DC +/* 036EDC 7F0023AC C6040030 */ lwc1 $f4, 0x30($s0) +/* 036EE0 7F0023B0 C6040030 */ lwc1 $f4, 0x30($s0) +/* 036EE4 7F0023B4 C608002C */ lwc1 $f8, 0x2c($s0) +/* 036EE8 7F0023B8 8E2F0014 */ lw $t7, 0x14($s1) +/* 036EEC 7F0023BC 46020181 */ sub.s $f6, $f0, $f2 +/* 036EF0 7F0023C0 46082281 */ sub.s $f10, $f4, $f8 +/* 036EF4 7F0023C4 C5E40014 */ lwc1 $f4, 0x14($t7) +/* 036EF8 7F0023C8 46043202 */ mul.s $f8, $f6, $f4 +/* 036EFC 7F0023CC 46085183 */ div.s $f6, $f10, $f8 +/* 036F00 7F0023D0 1000000A */ b .L7F0023FC +/* 036F04 7F0023D4 E7A60058 */ swc1 $f6, 0x58($sp) +/* 036F08 7F0023D8 C6040030 */ lwc1 $f4, 0x30($s0) +.L7F0023DC: +/* 036F0C 7F0023DC C60A002C */ lwc1 $f10, 0x2c($s0) +/* 036F10 7F0023E0 8E380014 */ lw $t8, 0x14($s1) +/* 036F14 7F0023E4 46020181 */ sub.s $f6, $f0, $f2 +/* 036F18 7F0023E8 460A2201 */ sub.s $f8, $f4, $f10 +/* 036F1C 7F0023EC C7040014 */ lwc1 $f4, 0x14($t8) +/* 036F20 7F0023F0 46043282 */ mul.s $f10, $f6, $f4 +/* 036F24 7F0023F4 460A4183 */ div.s $f6, $f8, $f10 +/* 036F28 7F0023F8 E7A60058 */ swc1 $f6, 0x58($sp) +.L7F0023FC: +/* 036F2C 7F0023FC 13200018 */ beqz $t9, .L7F002460 +/* 036F30 7F002400 306A0090 */ andi $t2, $v1, 0x90 +/* 036F34 7F002404 C442000C */ lwc1 $f2, 0xc($v0) +/* 036F38 7F002408 C4400010 */ lwc1 $f0, 0x10($v0) +/* 036F3C 7F00240C 4600103C */ c.lt.s $f2, $f0 +/* 036F40 7F002410 00000000 */ nop +/* 036F44 7F002414 45000012 */ bc1f .L7F002460 +/* 036F48 7F002418 00000000 */ nop +/* 036F4C 7F00241C 8E280014 */ lw $t0, 0x14($s1) +/* 036F50 7F002420 30690002 */ andi $t1, $v1, 2 +/* 036F54 7F002424 11200008 */ beqz $t1, .L7F002448 +/* 036F58 7F002428 C50C0014 */ lwc1 $f12, 0x14($t0) +/* 036F5C 7F00242C 46020181 */ sub.s $f6, $f0, $f2 +/* 036F60 7F002430 C6040040 */ lwc1 $f4, 0x40($s0) +/* 036F64 7F002434 C608003C */ lwc1 $f8, 0x3c($s0) +/* 036F68 7F002438 46082281 */ sub.s $f10, $f4, $f8 +/* 036F6C 7F00243C 460C3102 */ mul.s $f4, $f6, $f12 +/* 036F70 7F002440 10000007 */ b .L7F002460 +/* 036F74 7F002444 46045483 */ div.s $f18, $f10, $f4 +.L7F002448: +/* 036F78 7F002448 46020101 */ sub.s $f4, $f0, $f2 +/* 036F7C 7F00244C C6080038 */ lwc1 $f8, 0x38($s0) +/* 036F80 7F002450 C6060034 */ lwc1 $f6, 0x34($s0) +/* 036F84 7F002454 46064281 */ sub.s $f10, $f8, $f6 +/* 036F88 7F002458 460C2202 */ mul.s $f8, $f4, $f12 +/* 036F8C 7F00245C 46085403 */ div.s $f16, $f10, $f8 +.L7F002460: +/* 036F90 7F002460 11400018 */ beqz $t2, .L7F0024C4 +/* 036F94 7F002464 306D0010 */ andi $t5, $v1, 0x10 +/* 036F98 7F002468 C4420014 */ lwc1 $f2, 0x14($v0) +/* 036F9C 7F00246C C4400018 */ lwc1 $f0, 0x18($v0) +/* 036FA0 7F002470 4600103C */ c.lt.s $f2, $f0 +/* 036FA4 7F002474 00000000 */ nop +/* 036FA8 7F002478 45020013 */ bc1fl .L7F0024C8 +/* 036FAC 7F00247C C7A00058 */ lwc1 $f0, 0x58($sp) +/* 036FB0 7F002480 8E2B0014 */ lw $t3, 0x14($s1) +/* 036FB4 7F002484 306C0002 */ andi $t4, $v1, 2 +/* 036FB8 7F002488 11800008 */ beqz $t4, .L7F0024AC +/* 036FBC 7F00248C C56C0014 */ lwc1 $f12, 0x14($t3) +/* 036FC0 7F002490 46020201 */ sub.s $f8, $f0, $f2 +/* 036FC4 7F002494 C6060038 */ lwc1 $f6, 0x38($s0) +/* 036FC8 7F002498 C6040034 */ lwc1 $f4, 0x34($s0) +/* 036FCC 7F00249C 46043281 */ sub.s $f10, $f6, $f4 +/* 036FD0 7F0024A0 460C4182 */ mul.s $f6, $f8, $f12 +/* 036FD4 7F0024A4 10000007 */ b .L7F0024C4 +/* 036FD8 7F0024A8 46065403 */ div.s $f16, $f10, $f6 +.L7F0024AC: +/* 036FDC 7F0024AC 46020181 */ sub.s $f6, $f0, $f2 +/* 036FE0 7F0024B0 C6040040 */ lwc1 $f4, 0x40($s0) +/* 036FE4 7F0024B4 C608003C */ lwc1 $f8, 0x3c($s0) +/* 036FE8 7F0024B8 46082281 */ sub.s $f10, $f4, $f8 +/* 036FEC 7F0024BC 460C3102 */ mul.s $f4, $f6, $f12 +/* 036FF0 7F0024C0 46045483 */ div.s $f18, $f10, $f4 +.L7F0024C4: +/* 036FF4 7F0024C4 C7A00058 */ lwc1 $f0, 0x58($sp) +.L7F0024C8: +/* 036FF8 7F0024C8 C7AC0058 */ lwc1 $f12, 0x58($sp) +/* 036FFC 7F0024CC 4600803C */ c.lt.s $f16, $f0 +/* 037000 7F0024D0 00000000 */ nop +/* 037004 7F0024D4 45020003 */ bc1fl .L7F0024E4 +/* 037008 7F0024D8 4600903C */ c.lt.s $f18, $f0 +/* 03700C 7F0024DC 46008006 */ mov.s $f0, $f16 +/* 037010 7F0024E0 4600903C */ c.lt.s $f18, $f0 +.L7F0024E4: +/* 037014 7F0024E4 00000000 */ nop +/* 037018 7F0024E8 45020003 */ bc1fl .L7F0024F8 +/* 03701C 7F0024EC 4610603C */ c.lt.s $f12, $f16 +/* 037020 7F0024F0 46009006 */ mov.s $f0, $f18 +/* 037024 7F0024F4 4610603C */ c.lt.s $f12, $f16 +.L7F0024F8: +/* 037028 7F0024F8 46006386 */ mov.s $f14, $f12 +/* 03702C 7F0024FC 306E0020 */ andi $t6, $v1, 0x20 +/* 037030 7F002500 30780040 */ andi $t8, $v1, 0x40 +/* 037034 7F002504 45020003 */ bc1fl .L7F002514 +/* 037038 7F002508 4612703C */ c.lt.s $f14, $f18 +/* 03703C 7F00250C 46008386 */ mov.s $f14, $f16 +/* 037040 7F002510 4612703C */ c.lt.s $f14, $f18 +.L7F002514: +/* 037044 7F002514 30680080 */ andi $t0, $v1, 0x80 +/* 037048 7F002518 45000002 */ bc1f .L7F002524 +/* 03704C 7F00251C 00000000 */ nop +/* 037050 7F002520 46009386 */ mov.s $f14, $f18 +.L7F002524: +/* 037054 7F002524 11A00005 */ beqz $t5, .L7F00253C +/* 037058 7F002528 00000000 */ nop +/* 03705C 7F00252C 46000486 */ mov.s $f18, $f0 +/* 037060 7F002530 46000406 */ mov.s $f16, $f0 +/* 037064 7F002534 10000031 */ b .L7F0025FC +/* 037068 7F002538 46000306 */ mov.s $f12, $f0 +.L7F00253C: +/* 03706C 7F00253C 15C0000F */ bnez $t6, .L7F00257C +/* 037070 7F002540 306F0002 */ andi $t7, $v1, 2 +/* 037074 7F002544 C4400008 */ lwc1 $f0, 8($v0) +/* 037078 7F002548 11E00007 */ beqz $t7, .L7F002568 +/* 03707C 7F00254C C4420004 */ lwc1 $f2, 4($v0) +/* 037080 7F002550 46001032 */ c.eq.s $f2, $f0 +/* 037084 7F002554 00000000 */ nop +/* 037088 7F002558 45000008 */ bc1f .L7F00257C +/* 03708C 7F00255C 00000000 */ nop +/* 037090 7F002560 10000006 */ b .L7F00257C +/* 037094 7F002564 46007306 */ mov.s $f12, $f14 +.L7F002568: +/* 037098 7F002568 46001032 */ c.eq.s $f2, $f0 +/* 03709C 7F00256C 00000000 */ nop +/* 0370A0 7F002570 45000002 */ bc1f .L7F00257C +/* 0370A4 7F002574 00000000 */ nop +/* 0370A8 7F002578 46007306 */ mov.s $f12, $f14 +.L7F00257C: +/* 0370AC 7F00257C 1700000F */ bnez $t8, .L7F0025BC +/* 0370B0 7F002580 30790002 */ andi $t9, $v1, 2 +/* 0370B4 7F002584 C4400010 */ lwc1 $f0, 0x10($v0) +/* 0370B8 7F002588 13200007 */ beqz $t9, .L7F0025A8 +/* 0370BC 7F00258C C442000C */ lwc1 $f2, 0xc($v0) +/* 0370C0 7F002590 46001032 */ c.eq.s $f2, $f0 +/* 0370C4 7F002594 00000000 */ nop +/* 0370C8 7F002598 45000008 */ bc1f .L7F0025BC +/* 0370CC 7F00259C 00000000 */ nop +/* 0370D0 7F0025A0 10000006 */ b .L7F0025BC +/* 0370D4 7F0025A4 46007486 */ mov.s $f18, $f14 +.L7F0025A8: +/* 0370D8 7F0025A8 46001032 */ c.eq.s $f2, $f0 +/* 0370DC 7F0025AC 00000000 */ nop +/* 0370E0 7F0025B0 45000002 */ bc1f .L7F0025BC +/* 0370E4 7F0025B4 00000000 */ nop +/* 0370E8 7F0025B8 46007406 */ mov.s $f16, $f14 +.L7F0025BC: +/* 0370EC 7F0025BC 1500000F */ bnez $t0, .L7F0025FC +/* 0370F0 7F0025C0 30690002 */ andi $t1, $v1, 2 +/* 0370F4 7F0025C4 C4400018 */ lwc1 $f0, 0x18($v0) +/* 0370F8 7F0025C8 11200007 */ beqz $t1, .L7F0025E8 +/* 0370FC 7F0025CC C4420014 */ lwc1 $f2, 0x14($v0) +/* 037100 7F0025D0 46001032 */ c.eq.s $f2, $f0 +/* 037104 7F0025D4 00000000 */ nop +/* 037108 7F0025D8 45020009 */ bc1fl .L7F002600 +/* 03710C 7F0025DC 460E6303 */ div.s $f12, $f12, $f14 +/* 037110 7F0025E0 10000006 */ b .L7F0025FC +/* 037114 7F0025E4 46007406 */ mov.s $f16, $f14 +.L7F0025E8: +/* 037118 7F0025E8 46001032 */ c.eq.s $f2, $f0 +/* 03711C 7F0025EC 00000000 */ nop +/* 037120 7F0025F0 45020003 */ bc1fl .L7F002600 +/* 037124 7F0025F4 460E6303 */ div.s $f12, $f12, $f14 +/* 037128 7F0025F8 46007486 */ mov.s $f18, $f14 +.L7F0025FC: +/* 03712C 7F0025FC 460E6303 */ div.s $f12, $f12, $f14 +.L7F002600: +/* 037130 7F002600 3C018005 */ lui $at, %hi(D_8004EEB4) +/* 037134 7F002604 C420EEB4 */ lwc1 $f0, %lo(D_8004EEB4)($at) +/* 037138 7F002608 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03713C 7F00260C 460E8403 */ div.s $f16, $f16, $f14 +/* 037140 7F002610 4600603E */ c.le.s $f12, $f0 +/* 037144 7F002614 00000000 */ nop +/* 037148 7F002618 45010009 */ bc1t .L7F002640 +/* 03714C 7F00261C 460E9483 */ div.s $f18, $f18, $f14 +/* 037150 7F002620 4600803E */ c.le.s $f16, $f0 +/* 037154 7F002624 00000000 */ nop +/* 037158 7F002628 45030006 */ bc1tl .L7F002644 +/* 03715C 7F00262C 44816000 */ mtc1 $at, $f12 +/* 037160 7F002630 4600903E */ c.le.s $f18, $f0 +/* 037164 7F002634 00000000 */ nop +/* 037168 7F002638 45020006 */ bc1fl .L7F002654 +/* 03716C 7F00263C E7AE0048 */ swc1 $f14, 0x48($sp) +.L7F002640: +/* 037170 7F002640 44816000 */ mtc1 $at, $f12 +.L7F002644: +/* 037174 7F002644 00000000 */ nop +/* 037178 7F002648 46006486 */ mov.s $f18, $f12 +/* 03717C 7F00264C 46006406 */ mov.s $f16, $f12 +/* 037180 7F002650 E7AE0048 */ swc1 $f14, 0x48($sp) +.L7F002654: +/* 037184 7F002654 E7B00054 */ swc1 $f16, 0x54($sp) +/* 037188 7F002658 0FC1626D */ jal matrix_column_1_scalar_multiply +/* 03718C 7F00265C E7B20050 */ swc1 $f18, 0x50($sp) +/* 037190 7F002660 C7AC0054 */ lwc1 $f12, 0x54($sp) +/* 037194 7F002664 0FC16279 */ jal matrix_column_2_scalar_multiply +/* 037198 7F002668 27A5008C */ addiu $a1, $sp, 0x8c +/* 03719C 7F00266C C7AC0050 */ lwc1 $f12, 0x50($sp) +/* 0371A0 7F002670 0FC16293 */ jal matrix_column_3_scalar_multiply_2 +/* 0371A4 7F002674 27A5008C */ addiu $a1, $sp, 0x8c +/* 0371A8 7F002678 8E240014 */ lw $a0, 0x14($s1) +/* 0371AC 7F00267C C7AE0048 */ lwc1 $f14, 0x48($sp) +/* 0371B0 7F002680 C4860014 */ lwc1 $f6, 0x14($a0) +/* 0371B4 7F002684 460E3282 */ mul.s $f10, $f6, $f14 +/* 0371B8 7F002688 44055000 */ mfc1 $a1, $f10 +/* 0371BC 7F00268C 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0371C0 7F002690 00000000 */ nop +.L7F002694: +/* 0371C4 7F002694 8E240014 */ lw $a0, 0x14($s1) +.L7F002698: +/* 0371C8 7F002698 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 0371CC 7F00269C C4840014 */ lwc1 $f4, 0x14($a0) +/* 0371D0 7F0026A0 46082182 */ mul.s $f6, $f4, $f8 +/* 0371D4 7F0026A4 44053000 */ mfc1 $a1, $f6 +/* 0371D8 7F0026A8 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0371DC 7F0026AC 00000000 */ nop +/* 0371E0 7F0026B0 8E2A0014 */ lw $t2, 0x14($s1) +/* 0371E4 7F0026B4 27A5008C */ addiu $a1, $sp, 0x8c +/* 0371E8 7F0026B8 0FC1629F */ jal matrix_scalar_multiply +/* 0371EC 7F0026BC C54C0014 */ lwc1 $f12, 0x14($t2) +/* 0371F0 7F0026C0 8E2B0008 */ lw $t3, 8($s1) +/* 0371F4 7F0026C4 02202025 */ move $a0, $s1 +/* 0371F8 7F0026C8 27A500E0 */ addiu $a1, $sp, 0xe0 +/* 0371FC 7F0026CC 316C0002 */ andi $t4, $t3, 2 +/* 037200 7F0026D0 1180000A */ beqz $t4, .L7F0026FC +/* 037204 7F0026D4 27A6008C */ addiu $a2, $sp, 0x8c +/* 037208 7F0026D8 27AD0080 */ addiu $t5, $sp, 0x80 +/* 03720C 7F0026DC AFAD0010 */ sw $t5, 0x10($sp) +/* 037210 7F0026E0 02202025 */ move $a0, $s1 +/* 037214 7F0026E4 27A500E0 */ addiu $a1, $sp, 0xe0 +/* 037218 7F0026E8 27A6008C */ addiu $a2, $sp, 0x8c +/* 03721C 7F0026EC 0FC102E8 */ jal sub_GAME_7F040BA0 +/* 037220 7F0026F0 8FA700DC */ lw $a3, 0xdc($sp) +/* 037224 7F0026F4 10000005 */ b .L7F00270C +/* 037228 7F0026F8 00000000 */ nop +.L7F0026FC: +/* 03722C 7F0026FC 27AE0080 */ addiu $t6, $sp, 0x80 +/* 037230 7F002700 AFAE0010 */ sw $t6, 0x10($sp) +/* 037234 7F002704 0FC10223 */ jal sub_GAME_7F04088C +/* 037238 7F002708 8FA700DC */ lw $a3, 0xdc($sp) +.L7F00270C: +/* 03723C 7F00270C 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 037240 7F002710 02202025 */ move $a0, $s1 +/* 037244 7F002714 0FC0E929 */ jal set_current_objposdata_plus_0x28 +/* 037248 7F002718 8FA40060 */ lw $a0, 0x60($sp) +/* 03724C 7F00271C 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 037250 7F002720 8FA40060 */ lw $a0, 0x60($sp) +.L7F002724: +/* 037254 7F002724 8FBF0034 */ lw $ra, 0x34($sp) +.L7F002728: +/* 037258 7F002728 8FB0002C */ lw $s0, 0x2c($sp) +/* 03725C 7F00272C 8FB10030 */ lw $s1, 0x30($sp) +/* 037260 7F002730 03E00008 */ jr $ra +/* 037264 7F002734 27BD00F8 */ addiu $sp, $sp, 0xf8 +) +#endif + + +#ifdef NONMATCHING +void expand_08_obj_set_guard_MP_weapons(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel jpt_8004EEB8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027E0 +.word .L7F0027E0 +.word .L7F0027E0 +.word .L7F0027E0 +.word .L7F0027E0 +.word .L7F0027C8 +.word .L7F0027C8 +.word .L7F0027C8 +glabel jpt_mp_ammo_crate_expansion +.word .L7F002870 +.word .L7F002870 +.word .L7F002870 +.word .L7F002870 +.word .L7F002870 +.word .L7F002870 +.word .L7F002870 +.word .L7F002870 +.text +glabel expand_08_obj_set_guard_MP_weapons +/* 037268 7F002738 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 03726C 7F00273C AFBF0014 */ sw $ra, 0x14($sp) +/* 037270 7F002740 AFA40028 */ sw $a0, 0x28($sp) +/* 037274 7F002744 AFA60030 */ sw $a2, 0x30($sp) +/* 037278 7F002748 8CAE0008 */ lw $t6, 8($a1) +/* 03727C 7F00274C 00A03825 */ move $a3, $a1 +/* 037280 7F002750 31CF4000 */ andi $t7, $t6, 0x4000 +/* 037284 7F002754 51E0002B */ beql $t7, $zero, .L7F002804 +/* 037288 7F002758 24050001 */ li $a1, 1 +/* 03728C 7F00275C 84A40006 */ lh $a0, 6($a1) +/* 037290 7F002760 0FC08BF2 */ jal check_if_guardnum_loaded_get_ptr_GUARDdata +/* 037294 7F002764 AFA5002C */ sw $a1, 0x2c($sp) +/* 037298 7F002768 8FA7002C */ lw $a3, 0x2c($sp) +/* 03729C 7F00276C 1040008A */ beqz $v0, .L7F002998 +/* 0372A0 7F002770 AFA2001C */ sw $v0, 0x1c($sp) +/* 0372A4 7F002774 8C580018 */ lw $t8, 0x18($v0) +/* 0372A8 7F002778 53000088 */ beql $t8, $zero, .L7F00299C +/* 0372AC 7F00277C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0372B0 7F002780 8C59001C */ lw $t9, 0x1c($v0) +/* 0372B4 7F002784 2404001C */ li $a0, 28 +/* 0372B8 7F002788 53200084 */ beql $t9, $zero, .L7F00299C +/* 0372BC 7F00278C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0372C0 7F002790 0FC249EF */ jal cheatCheckIfOn +/* 0372C4 7F002794 AFA7002C */ sw $a3, 0x2c($sp) +/* 0372C8 7F002798 10400011 */ beqz $v0, .L7F0027E0 +/* 0372CC 7F00279C 8FA7002C */ lw $a3, 0x2c($sp) +/* 0372D0 7F0027A0 80E80080 */ lb $t0, 0x80($a3) +/* 0372D4 7F0027A4 2509FFFE */ addiu $t1, $t0, -2 +/* 0372D8 7F0027A8 2D21001E */ sltiu $at, $t1, 0x1e +/* 0372DC 7F0027AC 1020000C */ beqz $at, .L7F0027E0 +/* 0372E0 7F0027B0 00094880 */ sll $t1, $t1, 2 +/* 0372E4 7F0027B4 3C018005 */ lui $at, %hi(jpt_8004EEB8) +/* 0372E8 7F0027B8 00290821 */ addu $at, $at, $t1 +/* 0372EC 7F0027BC 8C29EEB8 */ lw $t1, %lo(jpt_8004EEB8)($at) +/* 0372F0 7F0027C0 01200008 */ jr $t1 +/* 0372F4 7F0027C4 00000000 */ nop +.L7F0027C8: +/* 0372F8 7F0027C8 240A0019 */ li $t2, 25 +/* 0372FC 7F0027CC 240B00D3 */ li $t3, 211 +/* 037300 7F0027D0 240C0100 */ li $t4, 256 +/* 037304 7F0027D4 A0EA0080 */ sb $t2, 0x80($a3) +/* 037308 7F0027D8 A4EB0004 */ sh $t3, 4($a3) +/* 03730C 7F0027DC A4EC0000 */ sh $t4, ($a3) +.L7F0027E0: +/* 037310 7F0027E0 80E40080 */ lb $a0, 0x80($a3) +/* 037314 7F0027E4 0FC015C4 */ jal set_weapon_model_generated_thrown_object +/* 037318 7F0027E8 AFA7002C */ sw $a3, 0x2c($sp) +/* 03731C 7F0027EC 8FA4002C */ lw $a0, 0x2c($sp) +/* 037320 7F0027F0 0FC1480C */ jal sub_GAME_7F052030 +/* 037324 7F0027F4 8FA5001C */ lw $a1, 0x1c($sp) +/* 037328 7F0027F8 10000068 */ b .L7F00299C +/* 03732C 7F0027FC 8FBF0014 */ lw $ra, 0x14($sp) +/* 037330 7F002800 24050001 */ li $a1, 1 +.L7F002804: +/* 037334 7F002804 AFA50018 */ sw $a1, 0x18($sp) +/* 037338 7F002808 0FC26919 */ jal get_num_players +/* 03733C 7F00280C AFA7002C */ sw $a3, 0x2c($sp) +/* 037340 7F002810 28410002 */ slti $at, $v0, 2 +/* 037344 7F002814 8FA50018 */ lw $a1, 0x18($sp) +/* 037348 7F002818 14200054 */ bnez $at, .L7F00296C +/* 03734C 7F00281C 8FA7002C */ lw $a3, 0x2c($sp) +/* 037350 7F002820 240DFFFF */ li $t5, -1 +/* 037354 7F002824 3C018007 */ lui $at, %hi(lastmpweaponnum) +/* 037358 7F002828 AC2D9540 */ sw $t5, %lo(lastmpweaponnum)($at) +/* 03735C 7F00282C 90E20080 */ lbu $v0, 0x80($a3) +/* 037360 7F002830 28410059 */ slti $at, $v0, 0x59 +/* 037364 7F002834 14200009 */ bnez $at, .L7F00285C +/* 037368 7F002838 244EFF10 */ addiu $t6, $v0, -0xf0 +/* 03736C 7F00283C 2DC10008 */ sltiu $at, $t6, 8 +/* 037370 7F002840 1020004A */ beqz $at, .L7F00296C +/* 037374 7F002844 000E7080 */ sll $t6, $t6, 2 +/* 037378 7F002848 3C018005 */ lui $at, %hi(jpt_mp_ammo_crate_expansion) +/* 03737C 7F00284C 002E0821 */ addu $at, $at, $t6 +/* 037380 7F002850 8C2EEF30 */ lw $t6, %lo(jpt_mp_ammo_crate_expansion)($at) +/* 037384 7F002854 01C00008 */ jr $t6 +/* 037388 7F002858 00000000 */ nop +.L7F00285C: +/* 03738C 7F00285C 24010058 */ li $at, 88 +/* 037390 7F002860 5041003B */ beql $v0, $at, .L7F002950 +/* 037394 7F002864 AFA50018 */ sw $a1, 0x18($sp) +/* 037398 7F002868 10000041 */ b .L7F002970 +/* 03739C 7F00286C 80E40080 */ lb $a0, 0x80($a3) +.L7F002870: +/* 0373A0 7F002870 0FC31985 */ jal getPtrMPWeaponSetData +/* 0373A4 7F002874 AFA7002C */ sw $a3, 0x2c($sp) +/* 0373A8 7F002878 8FA7002C */ lw $a3, 0x2c($sp) +/* 0373AC 7F00287C 3C018007 */ lui $at, %hi(lastmpweaponnum) +/* 0373B0 7F002880 24090001 */ li $t1, 1 +/* 0373B4 7F002884 90E40080 */ lbu $a0, 0x80($a3) +/* 0373B8 7F002888 2484FF10 */ addiu $a0, $a0, -0xf0 +/* 0373BC 7F00288C 00047880 */ sll $t7, $a0, 2 +/* 0373C0 7F002890 01E47823 */ subu $t7, $t7, $a0 +/* 0373C4 7F002894 000F78C0 */ sll $t7, $t7, 3 +/* 0373C8 7F002898 AC249540 */ sw $a0, %lo(lastmpweaponnum)($at) +/* 0373CC 7F00289C 004F1821 */ addu $v1, $v0, $t7 +/* 0373D0 7F0028A0 8C780000 */ lw $t8, ($v1) +/* 0373D4 7F0028A4 3C014380 */ li $at, 0x43800000 # 256.000000 +/* 0373D8 7F0028A8 44813000 */ mtc1 $at, $f6 +/* 0373DC 7F0028AC A0F80080 */ sb $t8, 0x80($a3) +/* 0373E0 7F0028B0 8C790004 */ lw $t9, 4($v1) +/* 0373E4 7F0028B4 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0373E8 7F0028B8 A4F90004 */ sh $t9, 4($a3) +/* 0373EC 7F0028BC C4640008 */ lwc1 $f4, 8($v1) +/* 0373F0 7F0028C0 46062202 */ mul.s $f8, $f4, $f6 +/* 0373F4 7F0028C4 4448F800 */ cfc1 $t0, $31 +/* 0373F8 7F0028C8 44C9F800 */ ctc1 $t1, $31 +/* 0373FC 7F0028CC 00000000 */ nop +/* 037400 7F0028D0 460042A4 */ cvt.w.s $f10, $f8 +/* 037404 7F0028D4 4449F800 */ cfc1 $t1, $31 +/* 037408 7F0028D8 00000000 */ nop +/* 03740C 7F0028DC 31290078 */ andi $t1, $t1, 0x78 +/* 037410 7F0028E0 51200013 */ beql $t1, $zero, .L7F002930 +/* 037414 7F0028E4 44095000 */ mfc1 $t1, $f10 +/* 037418 7F0028E8 44815000 */ mtc1 $at, $f10 +/* 03741C 7F0028EC 24090001 */ li $t1, 1 +/* 037420 7F0028F0 460A4281 */ sub.s $f10, $f8, $f10 +/* 037424 7F0028F4 44C9F800 */ ctc1 $t1, $31 +/* 037428 7F0028F8 00000000 */ nop +/* 03742C 7F0028FC 460052A4 */ cvt.w.s $f10, $f10 +/* 037430 7F002900 4449F800 */ cfc1 $t1, $31 +/* 037434 7F002904 00000000 */ nop +/* 037438 7F002908 31290078 */ andi $t1, $t1, 0x78 +/* 03743C 7F00290C 15200005 */ bnez $t1, .L7F002924 +/* 037440 7F002910 00000000 */ nop +/* 037444 7F002914 44095000 */ mfc1 $t1, $f10 +/* 037448 7F002918 3C018000 */ lui $at, 0x8000 +/* 03744C 7F00291C 10000007 */ b .L7F00293C +/* 037450 7F002920 01214825 */ or $t1, $t1, $at +.L7F002924: +/* 037454 7F002924 10000005 */ b .L7F00293C +/* 037458 7F002928 2409FFFF */ li $t1, -1 +/* 03745C 7F00292C 44095000 */ mfc1 $t1, $f10 +.L7F002930: +/* 037460 7F002930 00000000 */ nop +/* 037464 7F002934 0520FFFB */ bltz $t1, .L7F002924 +/* 037468 7F002938 00000000 */ nop +.L7F00293C: +/* 03746C 7F00293C 44C8F800 */ ctc1 $t0, $31 +/* 037470 7F002940 A4E90000 */ sh $t1, ($a3) +/* 037474 7F002944 10000009 */ b .L7F00296C +/* 037478 7F002948 8C650014 */ lw $a1, 0x14($v1) +/* 03747C 7F00294C AFA50018 */ sw $a1, 0x18($sp) +.L7F002950: +/* 037480 7F002950 0FC051D6 */ jal get_scenario +/* 037484 7F002954 AFA7002C */ sw $a3, 0x2c($sp) +/* 037488 7F002958 24010002 */ li $at, 2 +/* 03748C 7F00295C 8FA50018 */ lw $a1, 0x18($sp) +/* 037490 7F002960 10410002 */ beq $v0, $at, .L7F00296C +/* 037494 7F002964 8FA7002C */ lw $a3, 0x2c($sp) +/* 037498 7F002968 00002825 */ move $a1, $zero +def_7F002854: +.L7F00296C: +/* 03749C 7F00296C 80E40080 */ lb $a0, 0x80($a3) +.L7F002970: +/* 0374A0 7F002970 5080000A */ beql $a0, $zero, .L7F00299C +/* 0374A4 7F002974 8FBF0014 */ lw $ra, 0x14($sp) +/* 0374A8 7F002978 50A00008 */ beql $a1, $zero, .L7F00299C +/* 0374AC 7F00297C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0374B0 7F002980 0FC015C4 */ jal set_weapon_model_generated_thrown_object +/* 0374B4 7F002984 AFA7002C */ sw $a3, 0x2c($sp) +/* 0374B8 7F002988 8FA5002C */ lw $a1, 0x2c($sp) +/* 0374BC 7F00298C 8FA40028 */ lw $a0, 0x28($sp) +/* 0374C0 7F002990 0FC00767 */ jal prepare_load_objects +/* 0374C4 7F002994 8FA60030 */ lw $a2, 0x30($sp) +.L7F002998: +/* 0374C8 7F002998 8FBF0014 */ lw $ra, 0x14($sp) +.L7F00299C: +/* 0374CC 7F00299C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0374D0 7F0029A0 03E00008 */ jr $ra +/* 0374D4 7F0029A4 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void MP_weapon_expansion_routine(void *arg1, ? arg7) { + ? temp_ret; + + // Node 0 + if ((arg1->unk8 & 0x4000) != 0) + { + // Node 1 + temp_ret = check_if_guardnum_loaded_get_ptr_GUARDdata(arg1->unk6, arg1); + if (temp_ret != 0) + { + // Node 2 + if (temp_ret->unk18 != 0) + { + // Node 3 + if (temp_ret->unk1C != 0) + { + // Node 4 + sub_GAME_7F051084(arg7, temp_ret, arg7); + return; + // (possible return value: sub_GAME_7F051084(arg7, temp_ret, arg7)) + } + } + } + } + else + { + // Node 5 + prepare_load_objects(arg1, arg1); + } + // Node 6 + return; + // (possible return value: prepare_load_objects(arg1, arg1)) +} + +#else +GLOBAL_ASM( +.text +glabel MP_weapon_expansion_routine +/* 0374D8 7F0029A8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0374DC 7F0029AC AFBF0014 */ sw $ra, 0x14($sp) +/* 0374E0 7F0029B0 8CAE0008 */ lw $t6, 8($a1) +/* 0374E4 7F0029B4 00A03825 */ move $a3, $a1 +/* 0374E8 7F0029B8 31CF4000 */ andi $t7, $t6, 0x4000 +/* 0374EC 7F0029BC 11E00011 */ beqz $t7, .L7F002A04 +/* 0374F0 7F0029C0 00000000 */ nop +/* 0374F4 7F0029C4 84A40006 */ lh $a0, 6($a1) +/* 0374F8 7F0029C8 0FC08BF2 */ jal check_if_guardnum_loaded_get_ptr_GUARDdata +/* 0374FC 7F0029CC AFA5001C */ sw $a1, 0x1c($sp) +/* 037500 7F0029D0 8FA7001C */ lw $a3, 0x1c($sp) +/* 037504 7F0029D4 1040000D */ beqz $v0, .L7F002A0C +/* 037508 7F0029D8 00402825 */ move $a1, $v0 +/* 03750C 7F0029DC 8C580018 */ lw $t8, 0x18($v0) +/* 037510 7F0029E0 5300000B */ beql $t8, $zero, .L7F002A10 +/* 037514 7F0029E4 8FBF0014 */ lw $ra, 0x14($sp) +/* 037518 7F0029E8 8C59001C */ lw $t9, 0x1c($v0) +/* 03751C 7F0029EC 53200008 */ beql $t9, $zero, .L7F002A10 +/* 037520 7F0029F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 037524 7F0029F4 0FC14421 */ jal sub_GAME_7F051084 +/* 037528 7F0029F8 00E02025 */ move $a0, $a3 +/* 03752C 7F0029FC 10000004 */ b .L7F002A10 +/* 037530 7F002A00 8FBF0014 */ lw $ra, 0x14($sp) +.L7F002A04: +/* 037534 7F002A04 0FC00767 */ jal prepare_load_objects +/* 037538 7F002A08 00E02825 */ move $a1, $a3 +.L7F002A0C: +/* 03753C 7F002A0C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F002A10: +/* 037540 7F002A10 27BD0018 */ addiu $sp, $sp, 0x18 +/* 037544 7F002A14 03E00008 */ jr $ra +/* 037548 7F002A18 00000000 */ nop +) +#endif + + +void jmp_prepare_load_objects(void) { + prepare_load_objects(); +} + + + +#ifdef NONMATCHING +void sub_GAME_7F002A3C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8004EF50 +.word 0x40c90fdb +glabel D_8004EF54 +.word 0x40c90fdb +glabel D_8004EF58 +.word 0x3ebba866 +glabel D_8004EF5C +.word 0x3fc90fdb +glabel D_8004EF60 +.word 0x3fc90fdb +glabel D_8004EF64 +.word 0x358637bd + +.text +glabel sub_GAME_7F002A3C +/* 03756C 7F002A3C 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 037570 7F002A40 AFBF0034 */ sw $ra, 0x34($sp) +/* 037574 7F002A44 AFB00030 */ sw $s0, 0x30($sp) +/* 037578 7F002A48 0FC00767 */ jal prepare_load_objects +/* 03757C 7F002A4C 00A08025 */ move $s0, $a1 +/* 037580 7F002A50 8E020080 */ lw $v0, 0x80($s0) +/* 037584 7F002A54 0442007C */ bltzl $v0, .L7F002C48 +/* 037588 7F002A58 8FBF0034 */ lw $ra, 0x34($sp) +/* 03758C 7F002A5C 8E0E0014 */ lw $t6, 0x14($s0) +/* 037590 7F002A60 00025100 */ sll $t2, $v0, 4 +/* 037594 7F002A64 28412710 */ slti $at, $v0, 0x2710 +/* 037598 7F002A68 8DCF0008 */ lw $t7, 8($t6) +/* 03759C 7F002A6C 00024080 */ sll $t0, $v0, 2 +/* 0375A0 7F002A70 01425021 */ addu $t2, $t2, $v0 +/* 0375A4 7F002A74 8DF80008 */ lw $t8, 8($t7) +/* 0375A8 7F002A78 01024023 */ subu $t0, $t0, $v0 +/* 0375AC 7F002A7C 000A5080 */ sll $t2, $t2, 2 +/* 0375B0 7F002A80 8F190000 */ lw $t9, ($t8) +/* 0375B4 7F002A84 3C0B8007 */ lui $t3, %hi(ptr_2xxxpresets) +/* 0375B8 7F002A88 10200008 */ beqz $at, .L7F002AAC +/* 0375BC 7F002A8C 8F260004 */ lw $a2, 4($t9) +/* 0375C0 7F002A90 00084080 */ sll $t0, $t0, 2 +/* 0375C4 7F002A94 3C098007 */ lui $t1, %hi(ptr_0xxxpresets) +/* 0375C8 7F002A98 8D295D18 */ lw $t1, %lo(ptr_0xxxpresets)($t1) +/* 0375CC 7F002A9C 01024023 */ subu $t0, $t0, $v0 +/* 0375D0 7F002AA0 00084080 */ sll $t0, $t0, 2 +/* 0375D4 7F002AA4 10000006 */ b .L7F002AC0 +/* 0375D8 7F002AA8 01091821 */ addu $v1, $t0, $t1 +.L7F002AAC: +/* 0375DC 7F002AAC 8D6B5D1C */ lw $t3, %lo(ptr_2xxxpresets)($t3) +/* 0375E0 7F002AB0 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 0375E4 7F002AB4 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 0375E8 7F002AB8 014B1821 */ addu $v1, $t2, $t3 +/* 0375EC 7F002ABC 00611821 */ addu $v1, $v1, $at +.L7F002AC0: +/* 0375F0 7F002AC0 C4C40000 */ lwc1 $f4, ($a2) +/* 0375F4 7F002AC4 26040018 */ addiu $a0, $s0, 0x18 +/* 0375F8 7F002AC8 27A50044 */ addiu $a1, $sp, 0x44 +/* 0375FC 7F002ACC E7A40044 */ swc1 $f4, 0x44($sp) +/* 037600 7F002AD0 C4C60004 */ lwc1 $f6, 4($a2) +/* 037604 7F002AD4 E7A60048 */ swc1 $f6, 0x48($sp) +/* 037608 7F002AD8 C4C80008 */ lwc1 $f8, 8($a2) +/* 03760C 7F002ADC AFA30050 */ sw $v1, 0x50($sp) +/* 037610 7F002AE0 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 037614 7F002AE4 E7A8004C */ swc1 $f8, 0x4c($sp) +/* 037618 7F002AE8 8E0C0010 */ lw $t4, 0x10($s0) +/* 03761C 7F002AEC C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 037620 7F002AF0 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 037624 7F002AF4 C5900008 */ lwc1 $f16, 8($t4) +/* 037628 7F002AF8 8FA30050 */ lw $v1, 0x50($sp) +/* 03762C 7F002AFC 44800000 */ mtc1 $zero, $f0 +/* 037630 7F002B00 46105480 */ add.s $f18, $f10, $f16 +/* 037634 7F002B04 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 037638 7F002B08 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03763C 7F002B0C 26040084 */ addiu $a0, $s0, 0x84 +/* 037640 7F002B10 E7B20044 */ swc1 $f18, 0x44($sp) +/* 037644 7F002B14 8E0D0010 */ lw $t5, 0x10($s0) +/* 037648 7F002B18 44050000 */ mfc1 $a1, $f0 +/* 03764C 7F002B1C 44060000 */ mfc1 $a2, $f0 +/* 037650 7F002B20 C5A6000C */ lwc1 $f6, 0xc($t5) +/* 037654 7F002B24 44070000 */ mfc1 $a3, $f0 +/* 037658 7F002B28 46062200 */ add.s $f8, $f4, $f6 +/* 03765C 7F002B2C E7A80048 */ swc1 $f8, 0x48($sp) +/* 037660 7F002B30 8E0E0010 */ lw $t6, 0x10($s0) +/* 037664 7F002B34 C5D00010 */ lwc1 $f16, 0x10($t6) +/* 037668 7F002B38 46105100 */ add.s $f4, $f10, $f16 +/* 03766C 7F002B3C E7A4004C */ swc1 $f4, 0x4c($sp) +/* 037670 7F002B40 C4660000 */ lwc1 $f6, ($v1) +/* 037674 7F002B44 46069281 */ sub.s $f10, $f18, $f6 +/* 037678 7F002B48 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 03767C 7F002B4C C4700004 */ lwc1 $f16, 4($v1) +/* 037680 7F002B50 46104481 */ sub.s $f18, $f8, $f16 +/* 037684 7F002B54 44814000 */ mtc1 $at, $f8 +/* 037688 7F002B58 E7B20014 */ swc1 $f18, 0x14($sp) +/* 03768C 7F002B5C C4660008 */ lwc1 $f6, 8($v1) +/* 037690 7F002B60 AFA4003C */ sw $a0, 0x3c($sp) +/* 037694 7F002B64 E7A00024 */ swc1 $f0, 0x24($sp) +/* 037698 7F002B68 46062281 */ sub.s $f10, $f4, $f6 +/* 03769C 7F002B6C E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0376A0 7F002B70 E7A80020 */ swc1 $f8, 0x20($sp) +/* 0376A4 7F002B74 0FC16642 */ jal sub_GAME_7F059908 +/* 0376A8 7F002B78 E7AA0018 */ swc1 $f10, 0x18($sp) +/* 0376AC 7F002B7C 8E0F0014 */ lw $t7, 0x14($s0) +/* 0376B0 7F002B80 8FA5003C */ lw $a1, 0x3c($sp) +/* 0376B4 7F002B84 0FC1629F */ jal matrix_scalar_multiply +/* 0376B8 7F002B88 C5EC0014 */ lwc1 $f12, 0x14($t7) +/* 0376BC 7F002B8C 8E1800E4 */ lw $t8, 0xe4($s0) +/* 0376C0 7F002B90 44800000 */ mtc1 $zero, $f0 +/* 0376C4 7F002B94 8FA30050 */ lw $v1, 0x50($sp) +/* 0376C8 7F002B98 5700001E */ bnezl $t8, .L7F002C14 +/* 0376CC 7F002B9C C60400CC */ lwc1 $f4, 0xcc($s0) +/* 0376D0 7F002BA0 8E0800CC */ lw $t0, 0xcc($s0) +/* 0376D4 7F002BA4 3C018005 */ lui $at, %hi(D_8004EF50) +/* 0376D8 7F002BA8 C422EF50 */ lwc1 $f2, %lo(D_8004EF50)($at) +/* 0376DC 7F002BAC 44888000 */ mtc1 $t0, $f16 +/* 0376E0 7F002BB0 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0376E4 7F002BB4 44816000 */ mtc1 $at, $f12 +/* 0376E8 7F002BB8 468084A0 */ cvt.s.w $f18, $f16 +/* 0376EC 7F002BBC 8E0900D0 */ lw $t1, 0xd0($s0) +/* 0376F0 7F002BC0 8E0A00DC */ lw $t2, 0xdc($s0) +/* 0376F4 7F002BC4 8E0B00E8 */ lw $t3, 0xe8($s0) +/* 0376F8 7F002BC8 44895000 */ mtc1 $t1, $f10 +/* 0376FC 7F002BCC 24190001 */ li $t9, 1 +/* 037700 7F002BD0 46029102 */ mul.s $f4, $f18, $f2 +/* 037704 7F002BD4 AE1900E4 */ sw $t9, 0xe4($s0) +/* 037708 7F002BD8 46805220 */ cvt.s.w $f8, $f10 +/* 03770C 7F002BDC 460C2183 */ div.s $f6, $f4, $f12 +/* 037710 7F002BE0 448A2000 */ mtc1 $t2, $f4 +/* 037714 7F002BE4 46024402 */ mul.s $f16, $f8, $f2 +/* 037718 7F002BE8 460C8483 */ div.s $f18, $f16, $f12 +/* 03771C 7F002BEC E60600CC */ swc1 $f6, 0xcc($s0) +/* 037720 7F002BF0 448B8000 */ mtc1 $t3, $f16 +/* 037724 7F002BF4 468021A0 */ cvt.s.w $f6, $f4 +/* 037728 7F002BF8 46023282 */ mul.s $f10, $f6, $f2 +/* 03772C 7F002BFC E61200D0 */ swc1 $f18, 0xd0($s0) +/* 037730 7F002C00 468084A0 */ cvt.s.w $f18, $f16 +/* 037734 7F002C04 460C5203 */ div.s $f8, $f10, $f12 +/* 037738 7F002C08 E61200E8 */ swc1 $f18, 0xe8($s0) +/* 03773C 7F002C0C E60800DC */ swc1 $f8, 0xdc($s0) +/* 037740 7F002C10 C60400CC */ lwc1 $f4, 0xcc($s0) +.L7F002C14: +/* 037744 7F002C14 AE0000D4 */ sw $zero, 0xd4($s0) +/* 037748 7F002C18 E60000D8 */ swc1 $f0, 0xd8($s0) +/* 03774C 7F002C1C E60400C8 */ swc1 $f4, 0xc8($s0) +/* 037750 7F002C20 C4700008 */ lwc1 $f16, 8($v1) +/* 037754 7F002C24 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 037758 7F002C28 C46A0000 */ lwc1 $f10, ($v1) +/* 03775C 7F002C2C C7A60044 */ lwc1 $f6, 0x44($sp) +/* 037760 7F002C30 46104381 */ sub.s $f14, $f8, $f16 +/* 037764 7F002C34 0FC16A8C */ jal atan2f +/* 037768 7F002C38 460A3301 */ sub.s $f12, $f6, $f10 +/* 03776C 7F002C3C E60000C4 */ swc1 $f0, 0xc4($s0) +/* 037770 7F002C40 AE0000E0 */ sw $zero, 0xe0($s0) +/* 037774 7F002C44 8FBF0034 */ lw $ra, 0x34($sp) +.L7F002C48: +/* 037778 7F002C48 8FB00030 */ lw $s0, 0x30($sp) +/* 03777C 7F002C4C 27BD0058 */ addiu $sp, $sp, 0x58 +/* 037780 7F002C50 03E00008 */ jr $ra +/* 037784 7F002C54 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void expand_type_0D_object_autoturret(void) { + +} +#else +GLOBAL_ASM( +.text +glabel expand_type_0D_object_autoturret +/* 037788 7F002C58 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 03778C 7F002C5C AFBF001C */ sw $ra, 0x1c($sp) +/* 037790 7F002C60 AFB00018 */ sw $s0, 0x18($sp) +/* 037794 7F002C64 0FC00767 */ jal prepare_load_objects +/* 037798 7F002C68 00A08025 */ move $s0, $a1 +/* 03779C 7F002C6C 8E0E00A4 */ lw $t6, 0xa4($s0) +/* 0377A0 7F002C70 8E0F00A8 */ lw $t7, 0xa8($s0) +/* 0377A4 7F002C74 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0377A8 7F002C78 448E2000 */ mtc1 $t6, $f4 +/* 0377AC 7F002C7C 44811000 */ mtc1 $at, $f2 +/* 0377B0 7F002C80 3C018005 */ lui $at, %hi(D_8004EF54) +/* 0377B4 7F002C84 468021A0 */ cvt.s.w $f6, $f4 +/* 0377B8 7F002C88 C42CEF54 */ lwc1 $f12, %lo(D_8004EF54)($at) +/* 0377BC 7F002C8C 448F8000 */ mtc1 $t7, $f16 +/* 0377C0 7F002C90 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0377C4 7F002C94 44812000 */ mtc1 $at, $f4 +/* 0377C8 7F002C98 468084A0 */ cvt.s.w $f18, $f16 +/* 0377CC 7F002C9C 460C3202 */ mul.s $f8, $f6, $f12 +/* 0377D0 7F002CA0 8E180088 */ lw $t8, 0x88($s0) +/* 0377D4 7F002CA4 8E19008C */ lw $t9, 0x8c($s0) +/* 0377D8 7F002CA8 44800000 */ mtc1 $zero, $f0 +/* 0377DC 7F002CAC 2403FFFF */ li $v1, -1 +/* 0377E0 7F002CB0 46049182 */ mul.s $f6, $f18, $f4 +/* 0377E4 7F002CB4 AE0000AC */ sw $zero, 0xac($s0) +/* 0377E8 7F002CB8 AE0300B8 */ sw $v1, 0xb8($s0) +/* 0377EC 7F002CBC AE0300BC */ sw $v1, 0xbc($s0) +/* 0377F0 7F002CC0 AE0300C0 */ sw $v1, 0xc0($s0) +/* 0377F4 7F002CC4 AE0000C4 */ sw $zero, 0xc4($s0) +/* 0377F8 7F002CC8 46024283 */ div.s $f10, $f8, $f2 +/* 0377FC 7F002CCC AE0000C8 */ sw $zero, 0xc8($s0) +/* 037800 7F002CD0 24040030 */ li $a0, 48 +/* 037804 7F002CD4 24050004 */ li $a1, 4 +/* 037808 7F002CD8 E6000090 */ swc1 $f0, 0x90($s0) +/* 03780C 7F002CDC E6000094 */ swc1 $f0, 0x94($s0) +/* 037810 7F002CE0 E6000084 */ swc1 $f0, 0x84($s0) +/* 037814 7F002CE4 E600009C */ swc1 $f0, 0x9c($s0) +/* 037818 7F002CE8 E60000A0 */ swc1 $f0, 0xa0($s0) +/* 03781C 7F002CEC E6000098 */ swc1 $f0, 0x98($s0) +/* 037820 7F002CF0 E60000B0 */ swc1 $f0, 0xb0($s0) +/* 037824 7F002CF4 E60000B4 */ swc1 $f0, 0xb4($s0) +/* 037828 7F002CF8 46023203 */ div.s $f8, $f6, $f2 +/* 03782C 7F002CFC E60A00A4 */ swc1 $f10, 0xa4($s0) +/* 037830 7F002D00 44985000 */ mtc1 $t8, $f10 +/* 037834 7F002D04 44993000 */ mtc1 $t9, $f6 +/* 037838 7F002D08 46805420 */ cvt.s.w $f16, $f10 +/* 03783C 7F002D0C 460C8482 */ mul.s $f18, $f16, $f12 +/* 037840 7F002D10 E60800A8 */ swc1 $f8, 0xa8($s0) +/* 037844 7F002D14 46803220 */ cvt.s.w $f8, $f6 +/* 037848 7F002D18 46029103 */ div.s $f4, $f18, $f2 +/* 03784C 7F002D1C 460C4282 */ mul.s $f10, $f8, $f12 +/* 037850 7F002D20 46025403 */ div.s $f16, $f10, $f2 +/* 037854 7F002D24 E6040088 */ swc1 $f4, 0x88($s0) +/* 037858 7F002D28 0C0025C8 */ jal mempAllocBytesInBank +/* 03785C 7F002D2C E610008C */ swc1 $f16, 0x8c($s0) +/* 037860 7F002D30 2403FFFF */ li $v1, -1 +/* 037864 7F002D34 AE0200CC */ sw $v0, 0xcc($s0) +/* 037868 7F002D38 A0430000 */ sb $v1, ($v0) +/* 03786C 7F002D3C 8E040080 */ lw $a0, 0x80($s0) +/* 037870 7F002D40 44800000 */ mtc1 $zero, $f0 +/* 037874 7F002D44 AE0000D0 */ sw $zero, 0xd0($s0) +/* 037878 7F002D48 0480002F */ bltz $a0, .L7F002E08 +/* 03787C 7F002D4C E60000D4 */ swc1 $f0, 0xd4($s0) +/* 037880 7F002D50 28812710 */ slti $at, $a0, 0x2710 +/* 037884 7F002D54 1020000A */ beqz $at, .L7F002D80 +/* 037888 7F002D58 00045100 */ sll $t2, $a0, 4 +/* 03788C 7F002D5C 00044080 */ sll $t0, $a0, 2 +/* 037890 7F002D60 01044023 */ subu $t0, $t0, $a0 +/* 037894 7F002D64 00084080 */ sll $t0, $t0, 2 +/* 037898 7F002D68 3C098007 */ lui $t1, %hi(ptr_0xxxpresets) +/* 03789C 7F002D6C 8D295D18 */ lw $t1, %lo(ptr_0xxxpresets)($t1) +/* 0378A0 7F002D70 01044023 */ subu $t0, $t0, $a0 +/* 0378A4 7F002D74 00084080 */ sll $t0, $t0, 2 +/* 0378A8 7F002D78 10000009 */ b .L7F002DA0 +/* 0378AC 7F002D7C 01091821 */ addu $v1, $t0, $t1 +.L7F002D80: +/* 0378B0 7F002D80 3C0B8007 */ lui $t3, %hi(ptr_2xxxpresets) +/* 0378B4 7F002D84 8D6B5D1C */ lw $t3, %lo(ptr_2xxxpresets)($t3) +/* 0378B8 7F002D88 01445021 */ addu $t2, $t2, $a0 +/* 0378BC 7F002D8C 000A5080 */ sll $t2, $t2, 2 +/* 0378C0 7F002D90 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 0378C4 7F002D94 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 0378C8 7F002D98 014B1821 */ addu $v1, $t2, $t3 +/* 0378CC 7F002D9C 00611821 */ addu $v1, $v1, $at +.L7F002DA0: +/* 0378D0 7F002DA0 8E020010 */ lw $v0, 0x10($s0) +/* 0378D4 7F002DA4 C4660004 */ lwc1 $f6, 4($v1) +/* 0378D8 7F002DA8 C4720000 */ lwc1 $f18, ($v1) +/* 0378DC 7F002DAC C448000C */ lwc1 $f8, 0xc($v0) +/* 0378E0 7F002DB0 C4440008 */ lwc1 $f4, 8($v0) +/* 0378E4 7F002DB4 46083281 */ sub.s $f10, $f6, $f8 +/* 0378E8 7F002DB8 46049301 */ sub.s $f12, $f18, $f4 +/* 0378EC 7F002DBC E7AA0028 */ swc1 $f10, 0x28($sp) +/* 0378F0 7F002DC0 C4700008 */ lwc1 $f16, 8($v1) +/* 0378F4 7F002DC4 C4520010 */ lwc1 $f18, 0x10($v0) +/* 0378F8 7F002DC8 E7AC002C */ swc1 $f12, 0x2c($sp) +/* 0378FC 7F002DCC 46128381 */ sub.s $f14, $f16, $f18 +/* 037900 7F002DD0 0FC16A8C */ jal atan2f +/* 037904 7F002DD4 E7AE0024 */ swc1 $f14, 0x24($sp) +/* 037908 7F002DD8 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 03790C 7F002DDC C7AE0024 */ lwc1 $f14, 0x24($sp) +/* 037910 7F002DE0 E6000084 */ swc1 $f0, 0x84($s0) +/* 037914 7F002DE4 46021102 */ mul.s $f4, $f2, $f2 +/* 037918 7F002DE8 00000000 */ nop +/* 03791C 7F002DEC 460E7182 */ mul.s $f6, $f14, $f14 +/* 037920 7F002DF0 0C007DF8 */ jal sqrtf +/* 037924 7F002DF4 46062300 */ add.s $f12, $f4, $f6 +/* 037928 7F002DF8 C7AC0028 */ lwc1 $f12, 0x28($sp) +/* 03792C 7F002DFC 0FC16A8C */ jal atan2f +/* 037930 7F002E00 46000386 */ mov.s $f14, $f0 +/* 037934 7F002E04 E6000098 */ swc1 $f0, 0x98($s0) +.L7F002E08: +/* 037938 7F002E08 8FBF001C */ lw $ra, 0x1c($sp) +/* 03793C 7F002E0C 8FB00018 */ lw $s0, 0x18($sp) +/* 037940 7F002E10 27BD0038 */ addiu $sp, $sp, 0x38 +/* 037944 7F002E14 03E00008 */ jr $ra +/* 037948 7F002E18 00000000 */ nop +) +#endif + + +void jmp_prepare_load_objects_0(void) { + prepare_load_objects(); +} + + + +#ifdef NONMATCHING +void sub_GAME_7F002E3C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F002E3C +/* 03796C 7F002E3C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 037970 7F002E40 AFA40038 */ sw $a0, 0x38($sp) +/* 037974 7F002E44 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80075B98) +/* 037978 7F002E48 AFB10018 */ sw $s1, 0x18($sp) +/* 03797C 7F002E4C AFB00014 */ sw $s0, 0x14($sp) +/* 037980 7F002E50 25CE5B98 */ addiu $t6, %lo(dword_CODE_bss_80075B98) # addiu $t6, $t6, 0x5b98 +/* 037984 7F002E54 24A40080 */ addiu $a0, $a1, 0x80 +/* 037988 7F002E58 00A08025 */ move $s0, $a1 +/* 03798C 7F002E5C 00C08825 */ move $s1, $a2 +/* 037990 7F002E60 AFBF001C */ sw $ra, 0x1c($sp) +/* 037994 7F002E64 00804025 */ move $t0, $a0 +/* 037998 7F002E68 25D9006C */ addiu $t9, $t6, 0x6c +.L7F002E6C: +/* 03799C 7F002E6C 8DC10000 */ lw $at, ($t6) +/* 0379A0 7F002E70 25CE000C */ addiu $t6, $t6, 0xc +/* 0379A4 7F002E74 2508000C */ addiu $t0, $t0, 0xc +/* 0379A8 7F002E78 AD01FFF4 */ sw $at, -0xc($t0) +/* 0379AC 7F002E7C 8DC1FFF8 */ lw $at, -8($t6) +/* 0379B0 7F002E80 AD01FFF8 */ sw $at, -8($t0) +/* 0379B4 7F002E84 8DC1FFFC */ lw $at, -4($t6) +/* 0379B8 7F002E88 15D9FFF8 */ bne $t6, $t9, .L7F002E6C +/* 0379BC 7F002E8C AD01FFFC */ sw $at, -4($t0) +/* 0379C0 7F002E90 8DC10000 */ lw $at, ($t6) +/* 0379C4 7F002E94 AD010000 */ sw $at, ($t0) +/* 0379C8 7F002E98 8DD90004 */ lw $t9, 4($t6) +/* 0379CC 7F002E9C AD190004 */ sw $t9, 4($t0) +/* 0379D0 7F002EA0 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 0379D4 7F002EA4 8E0500FC */ lw $a1, 0xfc($s0) +/* 0379D8 7F002EA8 86090006 */ lh $t1, 6($s0) +/* 0379DC 7F002EAC 8FA40038 */ lw $a0, 0x38($sp) +/* 0379E0 7F002EB0 02002825 */ move $a1, $s0 +/* 0379E4 7F002EB4 05210075 */ bgez $t1, .L7F00308C +/* 0379E8 7F002EB8 00000000 */ nop +/* 0379EC 7F002EBC 8E0A0008 */ lw $t2, 8($s0) +/* 0379F0 7F002EC0 314B8000 */ andi $t3, $t2, 0x8000 +/* 0379F4 7F002EC4 15600071 */ bnez $t3, .L7F00308C +/* 0379F8 7F002EC8 00000000 */ nop +/* 0379FC 7F002ECC 860C0004 */ lh $t4, 4($s0) +/* 037A00 7F002ED0 AFAC002C */ sw $t4, 0x2c($sp) +/* 037A04 7F002ED4 8E0D00F4 */ lw $t5, 0xf4($s0) +/* 037A08 7F002ED8 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 037A0C 7F002EDC 01B12021 */ addu $a0, $t5, $s1 +/* 037A10 7F002EE0 00408825 */ move $s1, $v0 +/* 037A14 7F002EE4 0FC15B0E */ jal load_model +/* 037A18 7F002EE8 8FA4002C */ lw $a0, 0x2c($sp) +/* 037A1C 7F002EEC 96180000 */ lhu $t8, ($s0) +/* 037A20 7F002EF0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 037A24 7F002EF4 44982000 */ mtc1 $t8, $f4 +/* 037A28 7F002EF8 07010004 */ bgez $t8, .L7F002F0C +/* 037A2C 7F002EFC 468021A0 */ cvt.s.w $f6, $f4 +/* 037A30 7F002F00 44814000 */ mtc1 $at, $f8 +/* 037A34 7F002F04 00000000 */ nop +/* 037A38 7F002F08 46083180 */ add.s $f6, $f6, $f8 +.L7F002F0C: +/* 037A3C 7F002F0C 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 037A40 7F002F10 44815000 */ mtc1 $at, $f10 +/* 037A44 7F002F14 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 037A48 7F002F18 44814000 */ mtc1 $at, $f8 +/* 037A4C 7F002F1C 460A3402 */ mul.s $f16, $f6, $f10 +/* 037A50 7F002F20 E7B00020 */ swc1 $f16, 0x20($sp) +/* 037A54 7F002F24 8E0F0074 */ lw $t7, 0x74($s0) +/* 037A58 7F002F28 448F9000 */ mtc1 $t7, $f18 +/* 037A5C 7F002F2C 00000000 */ nop +/* 037A60 7F002F30 46809120 */ cvt.s.w $f4, $f18 +/* 037A64 7F002F34 46082183 */ div.s $f6, $f4, $f8 +/* 037A68 7F002F38 0FC26919 */ jal get_num_players +/* 037A6C 7F002F3C E6060074 */ swc1 $f6, 0x74($s0) +/* 037A70 7F002F40 28410002 */ slti $at, $v0, 2 +/* 037A74 7F002F44 14200004 */ bnez $at, .L7F002F58 +/* 037A78 7F002F48 00000000 */ nop +/* 037A7C 7F002F4C 92190002 */ lbu $t9, 2($s0) +/* 037A80 7F002F50 372E0004 */ ori $t6, $t9, 4 +/* 037A84 7F002F54 A20E0002 */ sb $t6, 2($s0) +.L7F002F58: +/* 037A88 7F002F58 0FC101C7 */ jal sub_GAME_7F04071C +/* 037A8C 7F002F5C 02002025 */ move $a0, $s0 +/* 037A90 7F002F60 0FC0FFA6 */ jal sub_GAME_7F03FE98 +/* 037A94 7F002F64 AFA20024 */ sw $v0, 0x24($sp) +/* 037A98 7F002F68 AE02006C */ sw $v0, 0x6c($s0) +/* 037A9C 7F002F6C 8FA80024 */ lw $t0, 0x24($sp) +/* 037AA0 7F002F70 51000049 */ beql $t0, $zero, .L7F003098 +/* 037AA4 7F002F74 8E190008 */ lw $t9, 8($s0) +/* 037AA8 7F002F78 50400047 */ beql $v0, $zero, .L7F003098 +/* 037AAC 7F002F7C 8E190008 */ lw $t9, 8($s0) +/* 037AB0 7F002F80 8E0A0064 */ lw $t2, 0x64($s0) +/* 037AB4 7F002F84 8E040014 */ lw $a0, 0x14($s0) +/* 037AB8 7F002F88 354B0040 */ ori $t3, $t2, 0x40 +/* 037ABC 7F002F8C AE0B0064 */ sw $t3, 0x64($s0) +/* 037AC0 7F002F90 C7B00020 */ lwc1 $f16, 0x20($sp) +/* 037AC4 7F002F94 C48A0014 */ lwc1 $f10, 0x14($a0) +/* 037AC8 7F002F98 46105482 */ mul.s $f18, $f10, $f16 +/* 037ACC 7F002F9C 44059000 */ mfc1 $a1, $f18 +/* 037AD0 7F002FA0 0FC1B39E */ jal set_obj_instance_controller_scale +/* 037AD4 7F002FA4 00000000 */ nop +/* 037AD8 7F002FA8 8E2C0014 */ lw $t4, 0x14($s1) +/* 037ADC 7F002FAC 8E0D0014 */ lw $t5, 0x14($s0) +/* 037AE0 7F002FB0 24010001 */ li $at, 1 +/* 037AE4 7F002FB4 ADAC0018 */ sw $t4, 0x18($t5) +/* 037AE8 7F002FB8 8E0200F8 */ lw $v0, 0xf8($s0) +/* 037AEC 7F002FBC 14400008 */ bnez $v0, .L7F002FE0 +/* 037AF0 7F002FC0 00000000 */ nop +/* 037AF4 7F002FC4 8E380014 */ lw $t8, 0x14($s1) +/* 037AF8 7F002FC8 8E080014 */ lw $t0, 0x14($s0) +/* 037AFC 7F002FCC 8F0F0008 */ lw $t7, 8($t8) +/* 037B00 7F002FD0 8DF90008 */ lw $t9, 8($t7) +/* 037B04 7F002FD4 8F2E0000 */ lw $t6, ($t9) +/* 037B08 7F002FD8 1000001A */ b .L7F003044 +/* 037B0C 7F002FDC AD0E001C */ sw $t6, 0x1c($t0) +.L7F002FE0: +/* 037B10 7F002FE0 54410009 */ bnel $v0, $at, .L7F003008 +/* 037B14 7F002FE4 24010002 */ li $at, 2 +/* 037B18 7F002FE8 8E290014 */ lw $t1, 0x14($s1) +/* 037B1C 7F002FEC 8E0D0014 */ lw $t5, 0x14($s0) +/* 037B20 7F002FF0 8D2A0008 */ lw $t2, 8($t1) +/* 037B24 7F002FF4 8D4B0008 */ lw $t3, 8($t2) +/* 037B28 7F002FF8 8D6C0004 */ lw $t4, 4($t3) +/* 037B2C 7F002FFC 10000011 */ b .L7F003044 +/* 037B30 7F003000 ADAC001C */ sw $t4, 0x1c($t5) +/* 037B34 7F003004 24010002 */ li $at, 2 +.L7F003008: +/* 037B38 7F003008 54410009 */ bnel $v0, $at, .L7F003030 +/* 037B3C 7F00300C 8E290014 */ lw $t1, 0x14($s1) +/* 037B40 7F003010 8E380014 */ lw $t8, 0x14($s1) +/* 037B44 7F003014 8E080014 */ lw $t0, 0x14($s0) +/* 037B48 7F003018 8F0F0008 */ lw $t7, 8($t8) +/* 037B4C 7F00301C 8DF90008 */ lw $t9, 8($t7) +/* 037B50 7F003020 8F2E0008 */ lw $t6, 8($t9) +/* 037B54 7F003024 10000007 */ b .L7F003044 +/* 037B58 7F003028 AD0E001C */ sw $t6, 0x1c($t0) +/* 037B5C 7F00302C 8E290014 */ lw $t1, 0x14($s1) +.L7F003030: +/* 037B60 7F003030 8E0D0014 */ lw $t5, 0x14($s0) +/* 037B64 7F003034 8D2A0008 */ lw $t2, 8($t1) +/* 037B68 7F003038 8D4B0008 */ lw $t3, 8($t2) +/* 037B6C 7F00303C 8D6C000C */ lw $t4, 0xc($t3) +/* 037B70 7F003040 ADAC001C */ sw $t4, 0x1c($t5) +.L7F003044: +/* 037B74 7F003044 8FA40024 */ lw $a0, 0x24($sp) +/* 037B78 7F003048 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 037B7C 7F00304C 8E250010 */ lw $a1, 0x10($s1) +/* 037B80 7F003050 8E05006C */ lw $a1, 0x6c($s0) +/* 037B84 7F003054 3C018005 */ lui $at, %hi(D_8004EF58) +/* 037B88 7F003058 C42CEF58 */ lwc1 $f12, %lo(D_8004EF58)($at) +/* 037B8C 7F00305C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 037B90 7F003060 24A50004 */ addiu $a1, $a1, 4 +/* 037B94 7F003064 8E180014 */ lw $t8, 0x14($s0) +/* 037B98 7F003068 8E2F0014 */ lw $t7, 0x14($s1) +/* 037B9C 7F00306C 8E05006C */ lw $a1, 0x6c($s0) +/* 037BA0 7F003070 C7040014 */ lwc1 $f4, 0x14($t8) +/* 037BA4 7F003074 C5E80014 */ lwc1 $f8, 0x14($t7) +/* 037BA8 7F003078 24A50004 */ addiu $a1, $a1, 4 +/* 037BAC 7F00307C 0FC1629F */ jal matrix_scalar_multiply +/* 037BB0 7F003080 46082303 */ div.s $f12, $f4, $f8 +/* 037BB4 7F003084 10000004 */ b .L7F003098 +/* 037BB8 7F003088 8E190008 */ lw $t9, 8($s0) +.L7F00308C: +/* 037BBC 7F00308C 0FC00767 */ jal prepare_load_objects +/* 037BC0 7F003090 02203025 */ move $a2, $s1 +/* 037BC4 7F003094 8E190008 */ lw $t9, 8($s0) +.L7F003098: +/* 037BC8 7F003098 00197040 */ sll $t6, $t9, 1 +/* 037BCC 7F00309C 05C30008 */ bgezl $t6, .L7F0030C0 +/* 037BD0 7F0030A0 8FBF001C */ lw $ra, 0x1c($sp) +/* 037BD4 7F0030A4 8E020010 */ lw $v0, 0x10($s0) +/* 037BD8 7F0030A8 50400005 */ beql $v0, $zero, .L7F0030C0 +/* 037BDC 7F0030AC 8FBF001C */ lw $ra, 0x1c($sp) +/* 037BE0 7F0030B0 90480001 */ lbu $t0, 1($v0) +/* 037BE4 7F0030B4 35090001 */ ori $t1, $t0, 1 +/* 037BE8 7F0030B8 A0490001 */ sb $t1, 1($v0) +/* 037BEC 7F0030BC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0030C0: +/* 037BF0 7F0030C0 8FB00014 */ lw $s0, 0x14($sp) +/* 037BF4 7F0030C4 8FB10018 */ lw $s1, 0x18($sp) +/* 037BF8 7F0030C8 03E00008 */ jr $ra +/* 037BFC 7F0030CC 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F0030D0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0030D0 +/* 037C00 7F0030D0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 037C04 7F0030D4 AFA40020 */ sw $a0, 0x20($sp) +/* 037C08 7F0030D8 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80075B98) +/* 037C0C 7F0030DC AFB00018 */ sw $s0, 0x18($sp) +/* 037C10 7F0030E0 25CE5B98 */ addiu $t6, %lo(dword_CODE_bss_80075B98) # addiu $t6, $t6, 0x5b98 +/* 037C14 7F0030E4 24A40080 */ addiu $a0, $a1, 0x80 +/* 037C18 7F0030E8 00A08025 */ move $s0, $a1 +/* 037C1C 7F0030EC AFBF001C */ sw $ra, 0x1c($sp) +/* 037C20 7F0030F0 AFA60028 */ sw $a2, 0x28($sp) +/* 037C24 7F0030F4 00804025 */ move $t0, $a0 +/* 037C28 7F0030F8 25D9006C */ addiu $t9, $t6, 0x6c +.L7F0030FC: +/* 037C2C 7F0030FC 8DC10000 */ lw $at, ($t6) +/* 037C30 7F003100 25CE000C */ addiu $t6, $t6, 0xc +/* 037C34 7F003104 2508000C */ addiu $t0, $t0, 0xc +/* 037C38 7F003108 AD01FFF4 */ sw $at, -0xc($t0) +/* 037C3C 7F00310C 8DC1FFF8 */ lw $at, -8($t6) +/* 037C40 7F003110 AD01FFF8 */ sw $at, -8($t0) +/* 037C44 7F003114 8DC1FFFC */ lw $at, -4($t6) +/* 037C48 7F003118 15D9FFF8 */ bne $t6, $t9, .L7F0030FC +/* 037C4C 7F00311C AD01FFFC */ sw $at, -4($t0) +/* 037C50 7F003120 8DC10000 */ lw $at, ($t6) +/* 037C54 7F003124 AD010000 */ sw $at, ($t0) +/* 037C58 7F003128 8DD90004 */ lw $t9, 4($t6) +/* 037C5C 7F00312C AD190004 */ sw $t9, 4($t0) +/* 037C60 7F003130 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 037C64 7F003134 92050250 */ lbu $a1, 0x250($s0) +/* 037C68 7F003138 3C098007 */ lui $t1, %hi(dword_CODE_bss_80075B98) +/* 037C6C 7F00313C 25295B98 */ addiu $t1, %lo(dword_CODE_bss_80075B98) # addiu $t1, $t1, 0x5b98 +/* 037C70 7F003140 260400F4 */ addiu $a0, $s0, 0xf4 +/* 037C74 7F003144 00806825 */ move $t5, $a0 +/* 037C78 7F003148 252C006C */ addiu $t4, $t1, 0x6c +.L7F00314C: +/* 037C7C 7F00314C 8D210000 */ lw $at, ($t1) +/* 037C80 7F003150 2529000C */ addiu $t1, $t1, 0xc +/* 037C84 7F003154 25AD000C */ addiu $t5, $t5, 0xc +/* 037C88 7F003158 ADA1FFF4 */ sw $at, -0xc($t5) +/* 037C8C 7F00315C 8D21FFF8 */ lw $at, -8($t1) +/* 037C90 7F003160 ADA1FFF8 */ sw $at, -8($t5) +/* 037C94 7F003164 8D21FFFC */ lw $at, -4($t1) +/* 037C98 7F003168 152CFFF8 */ bne $t1, $t4, .L7F00314C +/* 037C9C 7F00316C ADA1FFFC */ sw $at, -4($t5) +/* 037CA0 7F003170 8D210000 */ lw $at, ($t1) +/* 037CA4 7F003174 ADA10000 */ sw $at, ($t5) +/* 037CA8 7F003178 8D2C0004 */ lw $t4, 4($t1) +/* 037CAC 7F00317C ADAC0004 */ sw $t4, 4($t5) +/* 037CB0 7F003180 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 037CB4 7F003184 92050251 */ lbu $a1, 0x251($s0) +/* 037CB8 7F003188 3C188007 */ lui $t8, %hi(dword_CODE_bss_80075B98) +/* 037CBC 7F00318C 27185B98 */ addiu $t8, %lo(dword_CODE_bss_80075B98) # addiu $t8, $t8, 0x5b98 +/* 037CC0 7F003190 26040168 */ addiu $a0, $s0, 0x168 +/* 037CC4 7F003194 00804025 */ move $t0, $a0 +/* 037CC8 7F003198 270E006C */ addiu $t6, $t8, 0x6c +.L7F00319C: +/* 037CCC 7F00319C 8F010000 */ lw $at, ($t8) +/* 037CD0 7F0031A0 2718000C */ addiu $t8, $t8, 0xc +/* 037CD4 7F0031A4 2508000C */ addiu $t0, $t0, 0xc +/* 037CD8 7F0031A8 AD01FFF4 */ sw $at, -0xc($t0) +/* 037CDC 7F0031AC 8F01FFF8 */ lw $at, -8($t8) +/* 037CE0 7F0031B0 AD01FFF8 */ sw $at, -8($t0) +/* 037CE4 7F0031B4 8F01FFFC */ lw $at, -4($t8) +/* 037CE8 7F0031B8 170EFFF8 */ bne $t8, $t6, .L7F00319C +/* 037CEC 7F0031BC AD01FFFC */ sw $at, -4($t0) +/* 037CF0 7F0031C0 8F010000 */ lw $at, ($t8) +/* 037CF4 7F0031C4 AD010000 */ sw $at, ($t0) +/* 037CF8 7F0031C8 8F0E0004 */ lw $t6, 4($t8) +/* 037CFC 7F0031CC AD0E0004 */ sw $t6, 4($t0) +/* 037D00 7F0031D0 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 037D04 7F0031D4 92050252 */ lbu $a1, 0x252($s0) +/* 037D08 7F0031D8 3C0B8007 */ lui $t3, %hi(dword_CODE_bss_80075B98) +/* 037D0C 7F0031DC 256B5B98 */ addiu $t3, %lo(dword_CODE_bss_80075B98) # addiu $t3, $t3, 0x5b98 +/* 037D10 7F0031E0 260401DC */ addiu $a0, $s0, 0x1dc +/* 037D14 7F0031E4 00806825 */ move $t5, $a0 +/* 037D18 7F0031E8 2569006C */ addiu $t1, $t3, 0x6c +.L7F0031EC: +/* 037D1C 7F0031EC 8D610000 */ lw $at, ($t3) +/* 037D20 7F0031F0 256B000C */ addiu $t3, $t3, 0xc +/* 037D24 7F0031F4 25AD000C */ addiu $t5, $t5, 0xc +/* 037D28 7F0031F8 ADA1FFF4 */ sw $at, -0xc($t5) +/* 037D2C 7F0031FC 8D61FFF8 */ lw $at, -8($t3) +/* 037D30 7F003200 ADA1FFF8 */ sw $at, -8($t5) +/* 037D34 7F003204 8D61FFFC */ lw $at, -4($t3) +/* 037D38 7F003208 1569FFF8 */ bne $t3, $t1, .L7F0031EC +/* 037D3C 7F00320C ADA1FFFC */ sw $at, -4($t5) +/* 037D40 7F003210 8D610000 */ lw $at, ($t3) +/* 037D44 7F003214 ADA10000 */ sw $at, ($t5) +/* 037D48 7F003218 8D690004 */ lw $t1, 4($t3) +/* 037D4C 7F00321C ADA90004 */ sw $t1, 4($t5) +/* 037D50 7F003220 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 037D54 7F003224 92050253 */ lbu $a1, 0x253($s0) +/* 037D58 7F003228 8FA40020 */ lw $a0, 0x20($sp) +/* 037D5C 7F00322C 02002825 */ move $a1, $s0 +/* 037D60 7F003230 0FC00767 */ jal prepare_load_objects +/* 037D64 7F003234 8FA60028 */ lw $a2, 0x28($sp) +/* 037D68 7F003238 8FBF001C */ lw $ra, 0x1c($sp) +/* 037D6C 7F00323C 8FB00018 */ lw $s0, 0x18($sp) +/* 037D70 7F003240 27BD0020 */ addiu $sp, $sp, 0x20 +/* 037D74 7F003244 03E00008 */ jr $ra +/* 037D78 7F003248 00000000 */ nop +) +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F00324C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F00324C +/* 037D7C 7F00324C 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 037D80 7F003250 AFBF0024 */ sw $ra, 0x24($sp) +/* 037D84 7F003254 AFB10020 */ sw $s1, 0x20($sp) +/* 037D88 7F003258 AFB0001C */ sw $s0, 0x1c($sp) +/* 037D8C 7F00325C AFA50054 */ sw $a1, 0x54($sp) +/* 037D90 7F003260 00808025 */ move $s0, $a0 +/* 037D94 7F003264 00E08825 */ move $s1, $a3 +/* 037D98 7F003268 AFA60058 */ sw $a2, 0x58($sp) +/* 037D9C 7F00326C 0FC006F5 */ jal sub_GAME_7F001BD4 +/* 037DA0 7F003270 27A50030 */ addiu $a1, $sp, 0x30 +/* 037DA4 7F003274 8E0E0028 */ lw $t6, 0x28($s0) +/* 037DA8 7F003278 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 037DAC 7F00327C 27A4002C */ addiu $a0, $sp, 0x2c +/* 037DB0 7F003280 AFAE002C */ sw $t6, 0x2c($sp) +/* 037DB4 7F003284 8E060008 */ lw $a2, 8($s0) +/* 037DB8 7F003288 8E050000 */ lw $a1, ($s0) +/* 037DBC 7F00328C 8FA70030 */ lw $a3, 0x30($sp) +/* 037DC0 7F003290 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 037DC4 7F003294 E7A40010 */ swc1 $f4, 0x10($sp) +/* 037DC8 7F003298 5440000A */ bnezl $v0, .L7F0032C4 +/* 037DCC 7F00329C C6100010 */ lwc1 $f16, 0x10($s0) +/* 037DD0 7F0032A0 8E0F0028 */ lw $t7, 0x28($s0) +/* 037DD4 7F0032A4 AFAF002C */ sw $t7, 0x2c($sp) +/* 037DD8 7F0032A8 C6060000 */ lwc1 $f6, ($s0) +/* 037DDC 7F0032AC E7A60030 */ swc1 $f6, 0x30($sp) +/* 037DE0 7F0032B0 C6080004 */ lwc1 $f8, 4($s0) +/* 037DE4 7F0032B4 E7A80034 */ swc1 $f8, 0x34($sp) +/* 037DE8 7F0032B8 C60A0008 */ lwc1 $f10, 8($s0) +/* 037DEC 7F0032BC E7AA0038 */ swc1 $f10, 0x38($sp) +/* 037DF0 7F0032C0 C6100010 */ lwc1 $f16, 0x10($s0) +.L7F0032C4: +/* 037DF4 7F0032C4 C6120020 */ lwc1 $f18, 0x20($s0) +/* 037DF8 7F0032C8 C606001C */ lwc1 $f6, 0x1c($s0) +/* 037DFC 7F0032CC C6080014 */ lwc1 $f8, 0x14($s0) +/* 037E00 7F0032D0 46128102 */ mul.s $f4, $f16, $f18 +/* 037E04 7F0032D4 00000000 */ nop +/* 037E08 7F0032D8 46083282 */ mul.s $f10, $f6, $f8 +/* 037E0C 7F0032DC 460A2401 */ sub.s $f16, $f4, $f10 +/* 037E10 7F0032E0 E7B00040 */ swc1 $f16, 0x40($sp) +/* 037E14 7F0032E4 C6060018 */ lwc1 $f6, 0x18($s0) +/* 037E18 7F0032E8 C6120014 */ lwc1 $f18, 0x14($s0) +/* 037E1C 7F0032EC C60A000C */ lwc1 $f10, 0xc($s0) +/* 037E20 7F0032F0 C6040020 */ lwc1 $f4, 0x20($s0) +/* 037E24 7F0032F4 46069202 */ mul.s $f8, $f18, $f6 +/* 037E28 7F0032F8 00000000 */ nop +/* 037E2C 7F0032FC 460A2482 */ mul.s $f18, $f4, $f10 +/* 037E30 7F003300 46124181 */ sub.s $f6, $f8, $f18 +/* 037E34 7F003304 E7A60044 */ swc1 $f6, 0x44($sp) +/* 037E38 7F003308 C60A001C */ lwc1 $f10, 0x1c($s0) +/* 037E3C 7F00330C C604000C */ lwc1 $f4, 0xc($s0) +/* 037E40 7F003310 C6120018 */ lwc1 $f18, 0x18($s0) +/* 037E44 7F003314 460A2202 */ mul.s $f8, $f4, $f10 +/* 037E48 7F003318 C6040010 */ lwc1 $f4, 0x10($s0) +/* 037E4C 7F00331C 46049282 */ mul.s $f10, $f18, $f4 +/* 037E50 7F003320 460A4481 */ sub.s $f18, $f8, $f10 +/* 037E54 7F003324 46108102 */ mul.s $f4, $f16, $f16 +/* 037E58 7F003328 00000000 */ nop +/* 037E5C 7F00332C 46063202 */ mul.s $f8, $f6, $f6 +/* 037E60 7F003330 E7B20048 */ swc1 $f18, 0x48($sp) +/* 037E64 7F003334 46129402 */ mul.s $f16, $f18, $f18 +/* 037E68 7F003338 46082280 */ add.s $f10, $f4, $f8 +/* 037E6C 7F00333C 0C007DF8 */ jal sqrtf +/* 037E70 7F003340 460A8300 */ add.s $f12, $f16, $f10 +/* 037E74 7F003344 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 037E78 7F003348 44816000 */ mtc1 $at, $f12 +/* 037E7C 7F00334C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 037E80 7F003350 44813000 */ mtc1 $at, $f6 +/* 037E84 7F003354 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 037E88 7F003358 C7B20044 */ lwc1 $f18, 0x44($sp) +/* 037E8C 7F00335C 46003083 */ div.s $f2, $f6, $f0 +/* 037E90 7F003360 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 037E94 7F003364 8FB8002C */ lw $t8, 0x2c($sp) +/* 037E98 7F003368 27B0004C */ addiu $s0, $sp, 0x4c +/* 037E9C 7F00336C 02002025 */ move $a0, $s0 +/* 037EA0 7F003370 AFB8004C */ sw $t8, 0x4c($sp) +/* 037EA4 7F003374 46022202 */ mul.s $f8, $f4, $f2 +/* 037EA8 7F003378 00000000 */ nop +/* 037EAC 7F00337C 46029402 */ mul.s $f16, $f18, $f2 +/* 037EB0 7F003380 C7B20030 */ lwc1 $f18, 0x30($sp) +/* 037EB4 7F003384 46025182 */ mul.s $f6, $f10, $f2 +/* 037EB8 7F003388 E7A80040 */ swc1 $f8, 0x40($sp) +/* 037EBC 7F00338C 460C4102 */ mul.s $f4, $f8, $f12 +/* 037EC0 7F003390 E7B00044 */ swc1 $f16, 0x44($sp) +/* 037EC4 7F003394 E7A60048 */ swc1 $f6, 0x48($sp) +/* 037EC8 7F003398 46122400 */ add.s $f16, $f4, $f18 +/* 037ECC 7F00339C E6300000 */ swc1 $f16, ($s1) +/* 037ED0 7F0033A0 C7AA0034 */ lwc1 $f10, 0x34($sp) +/* 037ED4 7F0033A4 8E270000 */ lw $a3, ($s1) +/* 037ED8 7F0033A8 E62A0004 */ swc1 $f10, 4($s1) +/* 037EDC 7F0033AC C7A60048 */ lwc1 $f6, 0x48($sp) +/* 037EE0 7F0033B0 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 037EE4 7F0033B4 460C3202 */ mul.s $f8, $f6, $f12 +/* 037EE8 7F0033B8 46044480 */ add.s $f18, $f8, $f4 +/* 037EEC 7F0033BC E6320008 */ swc1 $f18, 8($s1) +/* 037EF0 7F0033C0 C6300008 */ lwc1 $f16, 8($s1) +/* 037EF4 7F0033C4 8FA60038 */ lw $a2, 0x38($sp) +/* 037EF8 7F0033C8 8FA50030 */ lw $a1, 0x30($sp) +/* 037EFC 7F0033CC 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 037F00 7F0033D0 E7B00010 */ swc1 $f16, 0x10($sp) +/* 037F04 7F0033D4 8FB9004C */ lw $t9, 0x4c($sp) +/* 037F08 7F0033D8 8FA90054 */ lw $t1, 0x54($sp) +/* 037F0C 7F0033DC 8FA20060 */ lw $v0, 0x60($sp) +/* 037F10 7F0033E0 93280003 */ lbu $t0, 3($t9) +/* 037F14 7F0033E4 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 037F18 7F0033E8 44816000 */ mtc1 $at, $f12 +/* 037F1C 7F0033EC AD280000 */ sw $t0, ($t1) +/* 037F20 7F0033F0 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 037F24 7F0033F4 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 037F28 7F0033F8 8FAA002C */ lw $t2, 0x2c($sp) +/* 037F2C 7F0033FC 460C3202 */ mul.s $f8, $f6, $f12 +/* 037F30 7F003400 02002025 */ move $a0, $s0 +/* 037F34 7F003404 AFAA004C */ sw $t2, 0x4c($sp) +/* 037F38 7F003408 46085101 */ sub.s $f4, $f10, $f8 +/* 037F3C 7F00340C E4440000 */ swc1 $f4, ($v0) +/* 037F40 7F003410 C7B20034 */ lwc1 $f18, 0x34($sp) +/* 037F44 7F003414 8C470000 */ lw $a3, ($v0) +/* 037F48 7F003418 E4520004 */ swc1 $f18, 4($v0) +/* 037F4C 7F00341C C7A60048 */ lwc1 $f6, 0x48($sp) +/* 037F50 7F003420 C7B00038 */ lwc1 $f16, 0x38($sp) +/* 037F54 7F003424 460C3282 */ mul.s $f10, $f6, $f12 +/* 037F58 7F003428 460A8201 */ sub.s $f8, $f16, $f10 +/* 037F5C 7F00342C E4480008 */ swc1 $f8, 8($v0) +/* 037F60 7F003430 C4440008 */ lwc1 $f4, 8($v0) +/* 037F64 7F003434 8FA60038 */ lw $a2, 0x38($sp) +/* 037F68 7F003438 8FA50030 */ lw $a1, 0x30($sp) +/* 037F6C 7F00343C 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 037F70 7F003440 E7A40010 */ swc1 $f4, 0x10($sp) +/* 037F74 7F003444 8FAB004C */ lw $t3, 0x4c($sp) +/* 037F78 7F003448 8FA20058 */ lw $v0, 0x58($sp) +/* 037F7C 7F00344C 2418FFFF */ li $t8, -1 +/* 037F80 7F003450 916C0003 */ lbu $t4, 3($t3) +/* 037F84 7F003454 AC4C0000 */ sw $t4, ($v0) +/* 037F88 7F003458 8FAE0054 */ lw $t6, 0x54($sp) +/* 037F8C 7F00345C 8DCF0000 */ lw $t7, ($t6) +/* 037F90 7F003460 558F0003 */ bnel $t4, $t7, .L7F003470 +/* 037F94 7F003464 8FBF0024 */ lw $ra, 0x24($sp) +/* 037F98 7F003468 AC580000 */ sw $t8, ($v0) +/* 037F9C 7F00346C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F003470: +/* 037FA0 7F003470 8FB0001C */ lw $s0, 0x1c($sp) +/* 037FA4 7F003474 8FB10020 */ lw $s1, 0x20($sp) +/* 037FA8 7F003478 03E00008 */ jr $ra +/* 037FAC 7F00347C 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + +#ifdef NONMATCHING +void sub_GAME_7F003480(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F003480 +/* 037FB0 7F003480 27BDFE28 */ addiu $sp, $sp, -0x1d8 +/* 037FB4 7F003484 AFBF0034 */ sw $ra, 0x34($sp) +/* 037FB8 7F003488 AFB10030 */ sw $s1, 0x30($sp) +/* 037FBC 7F00348C AFB0002C */ sw $s0, 0x2c($sp) +/* 037FC0 7F003490 AFA401D8 */ sw $a0, 0x1d8($sp) +/* 037FC4 7F003494 AFA601E0 */ sw $a2, 0x1e0($sp) +/* 037FC8 7F003498 84A40004 */ lh $a0, 4($a1) +/* 037FCC 7F00349C 240DFFFF */ li $t5, -1 +/* 037FD0 7F0034A0 240EFFFF */ li $t6, -1 +/* 037FD4 7F0034A4 2418FFFF */ li $t8, -1 +/* 037FD8 7F0034A8 00A08825 */ move $s1, $a1 +/* 037FDC 7F0034AC AFAD01B4 */ sw $t5, 0x1b4($sp) +/* 037FE0 7F0034B0 AFAE01B0 */ sw $t6, 0x1b0($sp) +/* 037FE4 7F0034B4 AFB801AC */ sw $t8, 0x1ac($sp) +/* 037FE8 7F0034B8 0FC15B0E */ jal load_model +/* 037FEC 7F0034BC AFA401D0 */ sw $a0, 0x1d0($sp) +/* 037FF0 7F0034C0 86390006 */ lh $t9, 6($s1) +/* 037FF4 7F0034C4 8E230008 */ lw $v1, 8($s1) +/* 037FF8 7F0034C8 3C088007 */ lui $t0, %hi(ptr_2xxxpresets) +/* 037FFC 7F0034CC 00197900 */ sll $t7, $t9, 4 +/* 038000 7F0034D0 8D085D1C */ lw $t0, %lo(ptr_2xxxpresets)($t0) +/* 038004 7F0034D4 01F97821 */ addu $t7, $t7, $t9 +/* 038008 7F0034D8 000F7880 */ sll $t7, $t7, 2 +/* 03800C 7F0034DC 000348C0 */ sll $t1, $v1, 3 +/* 038010 7F0034E0 05200003 */ bltz $t1, .L7F0034F0 +/* 038014 7F0034E4 01E88021 */ addu $s0, $t7, $t0 +/* 038018 7F0034E8 00035040 */ sll $t2, $v1, 1 +/* 03801C 7F0034EC 05410013 */ bgez $t2, .L7F00353C +.L7F0034F0: +/* 038020 7F0034F0 27AB0194 */ addiu $t3, $sp, 0x194 +/* 038024 7F0034F4 AFAB0010 */ sw $t3, 0x10($sp) +/* 038028 7F0034F8 02002025 */ move $a0, $s0 +/* 03802C 7F0034FC 27A501B0 */ addiu $a1, $sp, 0x1b0 +/* 038030 7F003500 27A601AC */ addiu $a2, $sp, 0x1ac +/* 038034 7F003504 0FC00C93 */ jal sub_GAME_7F00324C +/* 038038 7F003508 27A701A0 */ addiu $a3, $sp, 0x1a0 +/* 03803C 7F00350C 8E2C0008 */ lw $t4, 8($s1) +/* 038040 7F003510 8FA401B0 */ lw $a0, 0x1b0($sp) +/* 038044 7F003514 000C68C0 */ sll $t5, $t4, 3 +/* 038048 7F003518 05A10008 */ bgez $t5, .L7F00353C +/* 03804C 7F00351C 00000000 */ nop +/* 038050 7F003520 04800006 */ bltz $a0, .L7F00353C +/* 038054 7F003524 8FA501AC */ lw $a1, 0x1ac($sp) +/* 038058 7F003528 04A00004 */ bltz $a1, .L7F00353C +/* 03805C 7F00352C 27A601A0 */ addiu $a2, $sp, 0x1a0 +/* 038060 7F003530 0FC2E732 */ jal sub_GAME_7F0B9CC8 +/* 038064 7F003534 27A70194 */ addiu $a3, $sp, 0x194 +/* 038068 7F003538 AFA201B4 */ sw $v0, 0x1b4($sp) +.L7F00353C: +/* 03806C 7F00353C 3C038003 */ lui $v1, %hi(scale_1_0_item_related) +/* 038070 7F003540 2463A3C0 */ addiu $v1, %lo(scale_1_0_item_related) # addiu $v1, $v1, -0x5c40 +/* 038074 7F003544 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 038078 7F003548 44814000 */ mtc1 $at, $f8 +/* 03807C 7F00354C C46C0000 */ lwc1 $f12, ($v1) +/* 038080 7F003550 8FAE01B4 */ lw $t6, 0x1b4($sp) +/* 038084 7F003554 460C4032 */ c.eq.s $f8, $f12 +/* 038088 7F003558 00000000 */ nop +/* 03808C 7F00355C 45030067 */ bc1tl .L7F0036FC +/* 038090 7F003560 8E050028 */ lw $a1, 0x28($s0) +/* 038094 7F003564 05C0005D */ bltz $t6, .L7F0036DC +/* 038098 7F003568 01C02025 */ move $a0, $t6 +/* 03809C 7F00356C 0FC2E5B3 */ jal sub_GAME_7F0B96CC +/* 0380A0 7F003570 27A50180 */ addiu $a1, $sp, 0x180 +/* 0380A4 7F003574 0FC2D20C */ jal get_room_data_float2 +/* 0380A8 7F003578 00000000 */ nop +/* 0380AC 7F00357C C7AA018C */ lwc1 $f10, 0x18c($sp) +/* 0380B0 7F003580 C7B20188 */ lwc1 $f18, 0x188($sp) +/* 0380B4 7F003584 3C038003 */ lui $v1, %hi(scale_1_0_item_related) +/* 0380B8 7F003588 46005182 */ mul.s $f6, $f10, $f0 +/* 0380BC 7F00358C 2463A3C0 */ addiu $v1, %lo(scale_1_0_item_related) # addiu $v1, $v1, -0x5c40 +/* 0380C0 7F003590 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0380C4 7F003594 44818000 */ mtc1 $at, $f16 +/* 0380C8 7F003598 C46C0000 */ lwc1 $f12, ($v1) +/* 0380CC 7F00359C 27A4016C */ addiu $a0, $sp, 0x16c +/* 0380D0 7F0035A0 E7A6018C */ swc1 $f6, 0x18c($sp) +/* 0380D4 7F0035A4 C6040008 */ lwc1 $f4, 8($s0) +/* 0380D8 7F0035A8 C60A0004 */ lwc1 $f10, 4($s0) +/* 0380DC 7F0035AC C60E0000 */ lwc1 $f14, ($s0) +/* 0380E0 7F0035B0 46049202 */ mul.s $f8, $f18, $f4 +/* 0380E4 7F0035B4 C7A40184 */ lwc1 $f4, 0x184($sp) +/* 0380E8 7F0035B8 E7A60038 */ swc1 $f6, 0x38($sp) +/* 0380EC 7F0035BC C7A60180 */ lwc1 $f6, 0x180($sp) +/* 0380F0 7F0035C0 46045282 */ mul.s $f10, $f10, $f4 +/* 0380F4 7F0035C4 E7B2003C */ swc1 $f18, 0x3c($sp) +/* 0380F8 7F0035C8 4610603C */ c.lt.s $f12, $f16 +/* 0380FC 7F0035CC 46067482 */ mul.s $f18, $f14, $f6 +/* 038100 7F0035D0 460A9480 */ add.s $f18, $f18, $f10 +/* 038104 7F0035D4 C7AA018C */ lwc1 $f10, 0x18c($sp) +/* 038108 7F0035D8 45000013 */ bc1f .L7F003628 +/* 03810C 7F0035DC 46124080 */ add.s $f2, $f8, $f18 +/* 038110 7F0035E0 C7AA0038 */ lwc1 $f10, 0x38($sp) +/* 038114 7F0035E4 460C8481 */ sub.s $f18, $f16, $f12 +/* 038118 7F0035E8 460A1201 */ sub.s $f8, $f2, $f10 +/* 03811C 7F0035EC 46124082 */ mul.s $f2, $f8, $f18 +/* 038120 7F0035F0 00000000 */ nop +/* 038124 7F0035F4 46023282 */ mul.s $f10, $f6, $f2 +/* 038128 7F0035F8 460A7201 */ sub.s $f8, $f14, $f10 +/* 03812C 7F0035FC 46022182 */ mul.s $f6, $f4, $f2 +/* 038130 7F003600 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 038134 7F003604 E7A80170 */ swc1 $f8, 0x170($sp) +/* 038138 7F003608 C6120004 */ lwc1 $f18, 4($s0) +/* 03813C 7F00360C 46069281 */ sub.s $f10, $f18, $f6 +/* 038140 7F003610 46022482 */ mul.s $f18, $f4, $f2 +/* 038144 7F003614 E7AA0174 */ swc1 $f10, 0x174($sp) +/* 038148 7F003618 C6080008 */ lwc1 $f8, 8($s0) +/* 03814C 7F00361C 46124181 */ sub.s $f6, $f8, $f18 +/* 038150 7F003620 10000012 */ b .L7F00366C +/* 038154 7F003624 E7A60178 */ swc1 $f6, 0x178($sp) +.L7F003628: +/* 038158 7F003628 460A1101 */ sub.s $f4, $f2, $f10 +/* 03815C 7F00362C C7B20180 */ lwc1 $f18, 0x180($sp) +/* 038160 7F003630 46106201 */ sub.s $f8, $f12, $f16 +/* 038164 7F003634 46082082 */ mul.s $f2, $f4, $f8 +/* 038168 7F003638 C7A40184 */ lwc1 $f4, 0x184($sp) +/* 03816C 7F00363C 46029182 */ mul.s $f6, $f18, $f2 +/* 038170 7F003640 460E3280 */ add.s $f10, $f6, $f14 +/* 038174 7F003644 46022202 */ mul.s $f8, $f4, $f2 +/* 038178 7F003648 E7AA0170 */ swc1 $f10, 0x170($sp) +/* 03817C 7F00364C C6120004 */ lwc1 $f18, 4($s0) +/* 038180 7F003650 C7AA0188 */ lwc1 $f10, 0x188($sp) +/* 038184 7F003654 46124180 */ add.s $f6, $f8, $f18 +/* 038188 7F003658 46025102 */ mul.s $f4, $f10, $f2 +/* 03818C 7F00365C E7A60174 */ swc1 $f6, 0x174($sp) +/* 038190 7F003660 C6080008 */ lwc1 $f8, 8($s0) +/* 038194 7F003664 46082480 */ add.s $f18, $f4, $f8 +/* 038198 7F003668 E7B20178 */ swc1 $f18, 0x178($sp) +.L7F00366C: +/* 03819C 7F00366C 8E180028 */ lw $t8, 0x28($s0) +/* 0381A0 7F003670 C7A60178 */ lwc1 $f6, 0x178($sp) +/* 0381A4 7F003674 8FA70170 */ lw $a3, 0x170($sp) +/* 0381A8 7F003678 AFB8016C */ sw $t8, 0x16c($sp) +/* 0381AC 7F00367C 8E060008 */ lw $a2, 8($s0) +/* 0381B0 7F003680 8E050000 */ lw $a1, ($s0) +/* 0381B4 7F003684 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0381B8 7F003688 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0381BC 7F00368C 3C038003 */ lui $v1, %hi(scale_1_0_item_related) +/* 0381C0 7F003690 10400019 */ beqz $v0, .L7F0036F8 +/* 0381C4 7F003694 2463A3C0 */ addiu $v1, %lo(scale_1_0_item_related) # addiu $v1, $v1, -0x5c40 +/* 0381C8 7F003698 8FB9016C */ lw $t9, 0x16c($sp) +/* 0381CC 7F00369C C612002C */ lwc1 $f18, 0x2c($s0) +/* 0381D0 7F0036A0 AE190028 */ sw $t9, 0x28($s0) +/* 0381D4 7F0036A4 C7AA0170 */ lwc1 $f10, 0x170($sp) +/* 0381D8 7F0036A8 E60A0000 */ swc1 $f10, ($s0) +/* 0381DC 7F0036AC C7A40174 */ lwc1 $f4, 0x174($sp) +/* 0381E0 7F0036B0 E6040004 */ swc1 $f4, 4($s0) +/* 0381E4 7F0036B4 C7A80178 */ lwc1 $f8, 0x178($sp) +/* 0381E8 7F0036B8 C6040030 */ lwc1 $f4, 0x30($s0) +/* 0381EC 7F0036BC E6080008 */ swc1 $f8, 8($s0) +/* 0381F0 7F0036C0 C4660000 */ lwc1 $f6, ($v1) +/* 0381F4 7F0036C4 46069282 */ mul.s $f10, $f18, $f6 +/* 0381F8 7F0036C8 E60A002C */ swc1 $f10, 0x2c($s0) +/* 0381FC 7F0036CC C4680000 */ lwc1 $f8, ($v1) +/* 038200 7F0036D0 46082482 */ mul.s $f18, $f4, $f8 +/* 038204 7F0036D4 10000008 */ b .L7F0036F8 +/* 038208 7F0036D8 E6120030 */ swc1 $f18, 0x30($s0) +.L7F0036DC: +/* 03820C 7F0036DC C606002C */ lwc1 $f6, 0x2c($s0) +/* 038210 7F0036E0 C6040030 */ lwc1 $f4, 0x30($s0) +/* 038214 7F0036E4 460C3282 */ mul.s $f10, $f6, $f12 +/* 038218 7F0036E8 E60A002C */ swc1 $f10, 0x2c($s0) +/* 03821C 7F0036EC C4680000 */ lwc1 $f8, ($v1) +/* 038220 7F0036F0 46082482 */ mul.s $f18, $f4, $f8 +/* 038224 7F0036F4 E6120030 */ swc1 $f18, 0x30($s0) +.L7F0036F8: +/* 038228 7F0036F8 8E050028 */ lw $a1, 0x28($s0) +.L7F0036FC: +/* 03822C 7F0036FC 27AF01C8 */ addiu $t7, $sp, 0x1c8 +/* 038230 7F003700 AFAF0010 */ sw $t7, 0x10($sp) +/* 038234 7F003704 02002025 */ move $a0, $s0 +/* 038238 7F003708 24060000 */ li $a2, 0 +/* 03823C 7F00370C 0FC15A14 */ jal sub_GAME_7F056850 +/* 038240 7F003710 27A701B8 */ addiu $a3, $sp, 0x1b8 +/* 038244 7F003714 50400131 */ beql $v0, $zero, .L7F003BDC +/* 038248 7F003718 AE200010 */ sw $zero, 0x10($s1) +/* 03824C 7F00371C C6060018 */ lwc1 $f6, 0x18($s0) +/* 038250 7F003720 44800000 */ mtc1 $zero, $f0 +/* 038254 7F003724 27A4012C */ addiu $a0, $sp, 0x12c +/* 038258 7F003728 46003287 */ neg.s $f10, $f6 +/* 03825C 7F00372C 44050000 */ mfc1 $a1, $f0 +/* 038260 7F003730 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 038264 7F003734 C604001C */ lwc1 $f4, 0x1c($s0) +/* 038268 7F003738 44060000 */ mfc1 $a2, $f0 +/* 03826C 7F00373C 44070000 */ mfc1 $a3, $f0 +/* 038270 7F003740 46002207 */ neg.s $f8, $f4 +/* 038274 7F003744 E7A80014 */ swc1 $f8, 0x14($sp) +/* 038278 7F003748 C6120020 */ lwc1 $f18, 0x20($s0) +/* 03827C 7F00374C 46009187 */ neg.s $f6, $f18 +/* 038280 7F003750 E7A60018 */ swc1 $f6, 0x18($sp) +/* 038284 7F003754 C60A000C */ lwc1 $f10, 0xc($s0) +/* 038288 7F003758 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 03828C 7F00375C C6040010 */ lwc1 $f4, 0x10($s0) +/* 038290 7F003760 E7A40020 */ swc1 $f4, 0x20($sp) +/* 038294 7F003764 C6080014 */ lwc1 $f8, 0x14($s0) +/* 038298 7F003768 0FC16642 */ jal sub_GAME_7F059908 +/* 03829C 7F00376C E7A80024 */ swc1 $f8, 0x24($sp) +/* 0382A0 7F003770 8FA801D0 */ lw $t0, 0x1d0($sp) +/* 0382A4 7F003774 3C0A8004 */ lui $t2, %hi(PitemZ_entries) +/* 0382A8 7F003778 8FAB01C8 */ lw $t3, 0x1c8($sp) +/* 0382AC 7F00377C 00084880 */ sll $t1, $t0, 2 +/* 0382B0 7F003780 01284823 */ subu $t1, $t1, $t0 +/* 0382B4 7F003784 00094880 */ sll $t1, $t1, 2 +/* 0382B8 7F003788 01495021 */ addu $t2, $t2, $t1 +/* 0382BC 7F00378C 8D4AA228 */ lw $t2, %lo(PitemZ_entries)($t2) +/* 0382C0 7F003790 AFAB0114 */ sw $t3, 0x114($sp) +/* 0382C4 7F003794 3C018005 */ lui $at, %hi(D_8004EF5C) +/* 0382C8 7F003798 AFAA0124 */ sw $t2, 0x124($sp) +/* 0382CC 7F00379C C612002C */ lwc1 $f18, 0x2c($s0) +/* 0382D0 7F0037A0 C42CEF5C */ lwc1 $f12, %lo(D_8004EF5C)($at) +/* 0382D4 7F0037A4 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 0382D8 7F0037A8 E7B20078 */ swc1 $f18, 0x78($sp) +/* 0382DC 7F0037AC C6060030 */ lwc1 $f6, 0x30($s0) +/* 0382E0 7F0037B0 E7A60074 */ swc1 $f6, 0x74($sp) +/* 0382E4 7F0037B4 C60A0034 */ lwc1 $f10, 0x34($s0) +/* 0382E8 7F0037B8 E7AA0070 */ swc1 $f10, 0x70($sp) +/* 0382EC 7F0037BC C6040038 */ lwc1 $f4, 0x38($s0) +/* 0382F0 7F0037C0 E7A4006C */ swc1 $f4, 0x6c($sp) +/* 0382F4 7F0037C4 C608003C */ lwc1 $f8, 0x3c($s0) +/* 0382F8 7F0037C8 E7A80068 */ swc1 $f8, 0x68($sp) +/* 0382FC 7F0037CC C6120040 */ lwc1 $f18, 0x40($s0) +/* 038300 7F0037D0 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 038304 7F0037D4 E7B20064 */ swc1 $f18, 0x64($sp) +/* 038308 7F0037D8 3C018005 */ lui $at, %hi(D_8004EF60) +/* 03830C 7F0037DC C42CEF60 */ lwc1 $f12, %lo(D_8004EF60)($at) +/* 038310 7F0037E0 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 038314 7F0037E4 27A50088 */ addiu $a1, $sp, 0x88 +/* 038318 7F0037E8 27A40088 */ addiu $a0, $sp, 0x88 +/* 03831C 7F0037EC 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 038320 7F0037F0 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 038324 7F0037F4 27A4012C */ addiu $a0, $sp, 0x12c +/* 038328 7F0037F8 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 03832C 7F0037FC 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 038330 7F003800 02002025 */ move $a0, $s0 +/* 038334 7F003804 0FC006F5 */ jal sub_GAME_7F001BD4 +/* 038338 7F003808 27A50118 */ addiu $a1, $sp, 0x118 +/* 03833C 7F00380C 8FAC0124 */ lw $t4, 0x124($sp) +/* 038340 7F003810 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 038344 7F003814 C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 038348 7F003818 8D8D0000 */ lw $t5, ($t4) +/* 03834C 7F00381C 3C018005 */ lui $at, %hi(D_8004EF64) +/* 038350 7F003820 460A3101 */ sub.s $f4, $f6, $f10 +/* 038354 7F003824 8DAE0014 */ lw $t6, 0x14($t5) +/* 038358 7F003828 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 03835C 7F00382C C420EF64 */ lwc1 $f0, %lo(D_8004EF64)($at) +/* 038360 7F003830 8DC20004 */ lw $v0, 4($t6) +/* 038364 7F003834 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 038368 7F003838 C4480008 */ lwc1 $f8, 8($v0) +/* 03836C 7F00383C C4520004 */ lwc1 $f18, 4($v0) +/* 038370 7F003840 46124181 */ sub.s $f6, $f8, $f18 +/* 038374 7F003844 C7A80068 */ lwc1 $f8, 0x68($sp) +/* 038378 7F003848 C4520010 */ lwc1 $f18, 0x10($v0) +/* 03837C 7F00384C 46062303 */ div.s $f12, $f4, $f6 +/* 038380 7F003850 C444000C */ lwc1 $f4, 0xc($v0) +/* 038384 7F003854 46085081 */ sub.s $f2, $f10, $f8 +/* 038388 7F003858 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 03838C 7F00385C C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 038390 7F003860 46049181 */ sub.s $f6, $f18, $f4 +/* 038394 7F003864 C4440018 */ lwc1 $f4, 0x18($v0) +/* 038398 7F003868 46061383 */ div.s $f14, $f2, $f6 +/* 03839C 7F00386C C4460014 */ lwc1 $f6, 0x14($v0) +/* 0383A0 7F003870 4600603E */ c.le.s $f12, $f0 +/* 0383A4 7F003874 46085481 */ sub.s $f18, $f10, $f8 +/* 0383A8 7F003878 46062281 */ sub.s $f10, $f4, $f6 +/* 0383AC 7F00387C 45010008 */ bc1t .L7F0038A0 +/* 0383B0 7F003880 460A9403 */ div.s $f16, $f18, $f10 +/* 0383B4 7F003884 4600703E */ c.le.s $f14, $f0 +/* 0383B8 7F003888 00000000 */ nop +/* 0383BC 7F00388C 45030005 */ bc1tl .L7F0038A4 +/* 0383C0 7F003890 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0383C4 7F003894 4600803E */ c.le.s $f16, $f0 +/* 0383C8 7F003898 00000000 */ nop +/* 0383CC 7F00389C 45000005 */ bc1f .L7F0038B4 +.L7F0038A0: +/* 0383D0 7F0038A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F0038A4: +/* 0383D4 7F0038A4 44818000 */ mtc1 $at, $f16 +/* 0383D8 7F0038A8 44817000 */ mtc1 $at, $f14 +/* 0383DC 7F0038AC 44816000 */ mtc1 $at, $f12 +/* 0383E0 7F0038B0 00000000 */ nop +.L7F0038B4: +/* 0383E4 7F0038B4 E7A20048 */ swc1 $f2, 0x48($sp) +/* 0383E8 7F0038B8 E7AC0060 */ swc1 $f12, 0x60($sp) +/* 0383EC 7F0038BC E7AE005C */ swc1 $f14, 0x5c($sp) +/* 0383F0 7F0038C0 0FC1626D */ jal matrix_column_1_scalar_multiply +/* 0383F4 7F0038C4 E7B00058 */ swc1 $f16, 0x58($sp) +/* 0383F8 7F0038C8 C7AC005C */ lwc1 $f12, 0x5c($sp) +/* 0383FC 7F0038CC 0FC16279 */ jal matrix_column_2_scalar_multiply +/* 038400 7F0038D0 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 038404 7F0038D4 C7AC0058 */ lwc1 $f12, 0x58($sp) +/* 038408 7F0038D8 0FC16293 */ jal matrix_column_3_scalar_multiply_2 +/* 03840C 7F0038DC 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 038410 7F0038E0 C7A80118 */ lwc1 $f8, 0x118($sp) +/* 038414 7F0038E4 C7A4011C */ lwc1 $f4, 0x11c($sp) +/* 038418 7F0038E8 C7A60120 */ lwc1 $f6, 0x120($sp) +/* 03841C 7F0038EC E7A800C8 */ swc1 $f8, 0xc8($sp) +/* 038420 7F0038F0 E7A400CC */ swc1 $f4, 0xcc($sp) +/* 038424 7F0038F4 E7A600D0 */ swc1 $f6, 0xd0($sp) +/* 038428 7F0038F8 8E38000C */ lw $t8, 0xc($s1) +/* 03842C 7F0038FC C7A20048 */ lwc1 $f2, 0x48($sp) +/* 038430 7F003900 27A40114 */ addiu $a0, $sp, 0x114 +/* 038434 7F003904 33190001 */ andi $t9, $t8, 1 +/* 038438 7F003908 17200016 */ bnez $t9, .L7F003964 +/* 03843C 7F00390C C7A401B8 */ lwc1 $f4, 0x1b8($sp) +/* 038440 7F003910 44074000 */ mfc1 $a3, $f8 +/* 038444 7F003914 8FA501B8 */ lw $a1, 0x1b8($sp) +/* 038448 7F003918 8FA601C0 */ lw $a2, 0x1c0($sp) +/* 03844C 7F00391C E7A60010 */ swc1 $f6, 0x10($sp) +/* 038450 7F003920 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 038454 7F003924 E7A20048 */ swc1 $f2, 0x48($sp) +/* 038458 7F003928 10400004 */ beqz $v0, .L7F00393C +/* 03845C 7F00392C C7A20048 */ lwc1 $f2, 0x48($sp) +/* 038460 7F003930 8FAF0114 */ lw $t7, 0x114($sp) +/* 038464 7F003934 10000010 */ b .L7F003978 +/* 038468 7F003938 AFAF01C8 */ sw $t7, 0x1c8($sp) +.L7F00393C: +/* 03846C 7F00393C C7B201B8 */ lwc1 $f18, 0x1b8($sp) +/* 038470 7F003940 C7AA01C0 */ lwc1 $f10, 0x1c0($sp) +/* 038474 7F003944 E7B20118 */ swc1 $f18, 0x118($sp) +/* 038478 7F003948 E7AA0120 */ swc1 $f10, 0x120($sp) +/* 03847C 7F00394C 8E280008 */ lw $t0, 8($s1) +/* 038480 7F003950 31091000 */ andi $t1, $t0, 0x1000 +/* 038484 7F003954 55200009 */ bnezl $t1, .L7F00397C +/* 038488 7F003958 9622009A */ lhu $v0, 0x9a($s1) +/* 03848C 7F00395C 10000007 */ b .L7F00397C +/* 038490 7F003960 9622009A */ lhu $v0, 0x9a($s1) +.L7F003964: +/* 038494 7F003964 C7A801BC */ lwc1 $f8, 0x1bc($sp) +/* 038498 7F003968 C7A601C0 */ lwc1 $f6, 0x1c0($sp) +/* 03849C 7F00396C E7A40118 */ swc1 $f4, 0x118($sp) +/* 0384A0 7F003970 E7A8011C */ swc1 $f8, 0x11c($sp) +/* 0384A4 7F003974 E7A60120 */ swc1 $f6, 0x120($sp) +.L7F003978: +/* 0384A8 7F003978 9622009A */ lhu $v0, 0x9a($s1) +.L7F00397C: +/* 0384AC 7F00397C 24010004 */ li $at, 4 +/* 0384B0 7F003980 10410003 */ beq $v0, $at, .L7F003990 +/* 0384B4 7F003984 24010008 */ li $at, 8 +/* 0384B8 7F003988 1441000B */ bne $v0, $at, .L7F0039B8 +/* 0384BC 7F00398C C7AA0070 */ lwc1 $f10, 0x70($sp) +.L7F003990: +/* 0384C0 7F003990 C6120018 */ lwc1 $f18, 0x18($s0) +/* 0384C4 7F003994 46029282 */ mul.s $f10, $f18, $f2 +/* 0384C8 7F003998 E7AA007C */ swc1 $f10, 0x7c($sp) +/* 0384CC 7F00399C C604001C */ lwc1 $f4, 0x1c($s0) +/* 0384D0 7F0039A0 46022202 */ mul.s $f8, $f4, $f2 +/* 0384D4 7F0039A4 E7A80080 */ swc1 $f8, 0x80($sp) +/* 0384D8 7F0039A8 C6060020 */ lwc1 $f6, 0x20($s0) +/* 0384DC 7F0039AC 46023482 */ mul.s $f18, $f6, $f2 +/* 0384E0 7F0039B0 1000000C */ b .L7F0039E4 +/* 0384E4 7F0039B4 E7B20084 */ swc1 $f18, 0x84($sp) +.L7F0039B8: +/* 0384E8 7F0039B8 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 0384EC 7F0039BC C608000C */ lwc1 $f8, 0xc($s0) +/* 0384F0 7F0039C0 46045001 */ sub.s $f0, $f10, $f4 +/* 0384F4 7F0039C4 46004182 */ mul.s $f6, $f8, $f0 +/* 0384F8 7F0039C8 E7A6007C */ swc1 $f6, 0x7c($sp) +/* 0384FC 7F0039CC C6120010 */ lwc1 $f18, 0x10($s0) +/* 038500 7F0039D0 46009282 */ mul.s $f10, $f18, $f0 +/* 038504 7F0039D4 E7AA0080 */ swc1 $f10, 0x80($sp) +/* 038508 7F0039D8 C6040014 */ lwc1 $f4, 0x14($s0) +/* 03850C 7F0039DC 46002202 */ mul.s $f8, $f4, $f0 +/* 038510 7F0039E0 E7A80084 */ swc1 $f8, 0x84($sp) +.L7F0039E4: +/* 038514 7F0039E4 8E2A0084 */ lw $t2, 0x84($s1) +/* 038518 7F0039E8 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 03851C 7F0039EC 44810000 */ mtc1 $at, $f0 +/* 038520 7F0039F0 448A3000 */ mtc1 $t2, $f6 +/* 038524 7F0039F4 8E2B0088 */ lw $t3, 0x88($s1) +/* 038528 7F0039F8 8E2C008C */ lw $t4, 0x8c($s1) +/* 03852C 7F0039FC 468034A0 */ cvt.s.w $f18, $f6 +/* 038530 7F003A00 448B2000 */ mtc1 $t3, $f4 +/* 038534 7F003A04 8E2D0090 */ lw $t5, 0x90($s1) +/* 038538 7F003A08 8E2E0094 */ lw $t6, 0x94($s1) +/* 03853C 7F003A0C 27B8007C */ addiu $t8, $sp, 0x7c +/* 038540 7F003A10 46802220 */ cvt.s.w $f8, $f4 +/* 038544 7F003A14 27B900C8 */ addiu $t9, $sp, 0xc8 +/* 038548 7F003A18 02202025 */ move $a0, $s1 +/* 03854C 7F003A1C 27A50118 */ addiu $a1, $sp, 0x118 +/* 038550 7F003A20 27A600D4 */ addiu $a2, $sp, 0xd4 +/* 038554 7F003A24 46009283 */ div.s $f10, $f18, $f0 +/* 038558 7F003A28 448C9000 */ mtc1 $t4, $f18 +/* 03855C 7F003A2C 46004183 */ div.s $f6, $f8, $f0 +/* 038560 7F003A30 E62A0084 */ swc1 $f10, 0x84($s1) +/* 038564 7F003A34 448D4000 */ mtc1 $t5, $f8 +/* 038568 7F003A38 468092A0 */ cvt.s.w $f10, $f18 +/* 03856C 7F003A3C 46005103 */ div.s $f4, $f10, $f0 +/* 038570 7F003A40 448E5000 */ mtc1 $t6, $f10 +/* 038574 7F003A44 E6260088 */ swc1 $f6, 0x88($s1) +/* 038578 7F003A48 468041A0 */ cvt.s.w $f6, $f8 +/* 03857C 7F003A4C 46003483 */ div.s $f18, $f6, $f0 +/* 038580 7F003A50 E624008C */ swc1 $f4, 0x8c($s1) +/* 038584 7F003A54 46805120 */ cvt.s.w $f4, $f10 +/* 038588 7F003A58 46002203 */ div.s $f8, $f4, $f0 +/* 03858C 7F003A5C E6320090 */ swc1 $f18, 0x90($s1) +/* 038590 7F003A60 E6280094 */ swc1 $f8, 0x94($s1) +/* 038594 7F003A64 AFB90014 */ sw $t9, 0x14($sp) +/* 038598 7F003A68 AFB80010 */ sw $t8, 0x10($sp) +/* 03859C 7F003A6C 0FC14D7C */ jal initialize_door +/* 0385A0 7F003A70 8FA701C8 */ lw $a3, 0x1c8($sp) +/* 0385A4 7F003A74 8E2F0008 */ lw $t7, 8($s1) +/* 0385A8 7F003A78 00408025 */ move $s0, $v0 +/* 0385AC 7F003A7C 8FA901B4 */ lw $t1, 0x1b4($sp) +/* 0385B0 7F003A80 000F40C0 */ sll $t0, $t7, 3 +/* 0385B4 7F003A84 0503000E */ bgezl $t0, .L7F003AC0 +/* 0385B8 7F003A88 8E020014 */ lw $v0, 0x14($s0) +/* 0385BC 7F003A8C AE2900F0 */ sw $t1, 0xf0($s1) +/* 0385C0 7F003A90 8FAA01B4 */ lw $t2, 0x1b4($sp) +/* 0385C4 7F003A94 0542000A */ bltzl $t2, .L7F003AC0 +/* 0385C8 7F003A98 8E020014 */ lw $v0, 0x14($s0) +/* 0385CC 7F003A9C 44803000 */ mtc1 $zero, $f6 +/* 0385D0 7F003AA0 C63200B4 */ lwc1 $f18, 0xb4($s1) +/* 0385D4 7F003AA4 46123032 */ c.eq.s $f6, $f18 +/* 0385D8 7F003AA8 00000000 */ nop +/* 0385DC 7F003AAC 45020004 */ bc1fl .L7F003AC0 +/* 0385E0 7F003AB0 8E020014 */ lw $v0, 0x14($s0) +/* 0385E4 7F003AB4 0FC14D71 */ jal sub_GAME_7F0535C4 +/* 0385E8 7F003AB8 02202025 */ move $a0, $s1 +/* 0385EC 7F003ABC 8E020014 */ lw $v0, 0x14($s0) +.L7F003AC0: +/* 0385F0 7F003AC0 02002025 */ move $a0, $s0 +/* 0385F4 7F003AC4 904B0003 */ lbu $t3, 3($v0) +/* 0385F8 7F003AC8 A20B002C */ sb $t3, 0x2c($s0) +/* 0385FC 7F003ACC 0FC0F767 */ jal sub_GAME_7F03DD9C +/* 038600 7F003AD0 90450003 */ lbu $a1, 3($v0) +/* 038604 7F003AD4 240200FF */ li $v0, 255 +/* 038608 7F003AD8 A202002D */ sb $v0, 0x2d($s0) +/* 03860C 7F003ADC A202002E */ sb $v0, 0x2e($s0) +/* 038610 7F003AE0 8E230008 */ lw $v1, 8($s1) +/* 038614 7F003AE4 000360C0 */ sll $t4, $v1, 3 +/* 038618 7F003AE8 05800003 */ bltz $t4, .L7F003AF8 +/* 03861C 7F003AEC 00036840 */ sll $t5, $v1, 1 +/* 038620 7F003AF0 05A3001A */ bgezl $t5, .L7F003B5C +/* 038624 7F003AF4 8E240014 */ lw $a0, 0x14($s1) +.L7F003AF8: +/* 038628 7F003AF8 8E180014 */ lw $t8, 0x14($s0) +/* 03862C 7F003AFC 8FAE01B0 */ lw $t6, 0x1b0($sp) +/* 038630 7F003B00 8FA501AC */ lw $a1, 0x1ac($sp) +/* 038634 7F003B04 93190003 */ lbu $t9, 3($t8) +/* 038638 7F003B08 11D90009 */ beq $t6, $t9, .L7F003B30 +/* 03863C 7F003B0C 00000000 */ nop +/* 038640 7F003B10 05C0000D */ bltz $t6, .L7F003B48 +/* 038644 7F003B14 8FAF01B0 */ lw $t7, 0x1b0($sp) +/* 038648 7F003B18 A20F002D */ sb $t7, 0x2d($s0) +/* 03864C 7F003B1C 87A501B2 */ lh $a1, 0x1b2($sp) +/* 038650 7F003B20 0FC0F767 */ jal sub_GAME_7F03DD9C +/* 038654 7F003B24 02002025 */ move $a0, $s0 +/* 038658 7F003B28 10000008 */ b .L7F003B4C +/* 03865C 7F003B2C 9209002D */ lbu $t1, 0x2d($s0) +.L7F003B30: +/* 038660 7F003B30 04A00005 */ bltz $a1, .L7F003B48 +/* 038664 7F003B34 8FA801AC */ lw $t0, 0x1ac($sp) +/* 038668 7F003B38 A208002D */ sb $t0, 0x2d($s0) +/* 03866C 7F003B3C 87A501AE */ lh $a1, 0x1ae($sp) +/* 038670 7F003B40 0FC0F767 */ jal sub_GAME_7F03DD9C +/* 038674 7F003B44 02002025 */ move $a0, $s0 +.L7F003B48: +/* 038678 7F003B48 9209002D */ lbu $t1, 0x2d($s0) +.L7F003B4C: +/* 03867C 7F003B4C 240100FF */ li $at, 255 +/* 038680 7F003B50 51210002 */ beql $t1, $at, .L7F003B5C +/* 038684 7F003B54 8E240014 */ lw $a0, 0x14($s1) +/* 038688 7F003B58 8E240014 */ lw $a0, 0x14($s1) +.L7F003B5C: +/* 03868C 7F003B5C C7A00060 */ lwc1 $f0, 0x60($sp) +/* 038690 7F003B60 C7AC005C */ lwc1 $f12, 0x5c($sp) +/* 038694 7F003B64 10800010 */ beqz $a0, .L7F003BA8 +/* 038698 7F003B68 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 03869C 7F003B6C 460C003C */ c.lt.s $f0, $f12 +/* 0386A0 7F003B70 00000000 */ nop +/* 0386A4 7F003B74 45020003 */ bc1fl .L7F003B84 +/* 0386A8 7F003B78 460A003C */ c.lt.s $f0, $f10 +/* 0386AC 7F003B7C 46006006 */ mov.s $f0, $f12 +/* 0386B0 7F003B80 460A003C */ c.lt.s $f0, $f10 +.L7F003B84: +/* 0386B4 7F003B84 00000000 */ nop +/* 0386B8 7F003B88 45020003 */ bc1fl .L7F003B98 +/* 0386BC 7F003B8C C4840014 */ lwc1 $f4, 0x14($a0) +/* 0386C0 7F003B90 46005006 */ mov.s $f0, $f10 +/* 0386C4 7F003B94 C4840014 */ lwc1 $f4, 0x14($a0) +.L7F003B98: +/* 0386C8 7F003B98 46002202 */ mul.s $f8, $f4, $f0 +/* 0386CC 7F003B9C 44054000 */ mfc1 $a1, $f8 +/* 0386D0 7F003BA0 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0386D4 7F003BA4 00000000 */ nop +.L7F003BA8: +/* 0386D8 7F003BA8 0FC0E929 */ jal set_current_objposdata_plus_0x28 +/* 0386DC 7F003BAC 02002025 */ move $a0, $s0 +/* 0386E0 7F003BB0 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 0386E4 7F003BB4 02002025 */ move $a0, $s0 +/* 0386E8 7F003BB8 8E220080 */ lw $v0, 0x80($s1) +/* 0386EC 7F003BBC 8FAB01E0 */ lw $t3, 0x1e0($sp) +/* 0386F0 7F003BC0 50400007 */ beql $v0, $zero, .L7F003BE0 +/* 0386F4 7F003BC4 8FBF0034 */ lw $ra, 0x34($sp) +/* 0386F8 7F003BC8 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 0386FC 7F003BCC 004B2021 */ addu $a0, $v0, $t3 +/* 038700 7F003BD0 10000002 */ b .L7F003BDC +/* 038704 7F003BD4 AE2200C8 */ sw $v0, 0xc8($s1) +/* 038708 7F003BD8 AE200010 */ sw $zero, 0x10($s1) +.L7F003BDC: +/* 03870C 7F003BDC 8FBF0034 */ lw $ra, 0x34($sp) +.L7F003BE0: +/* 038710 7F003BE0 8FB0002C */ lw $s0, 0x2c($sp) +/* 038714 7F003BE4 8FB10030 */ lw $s1, 0x30($sp) +/* 038718 7F003BE8 03E00008 */ jr $ra +/* 03871C 7F003BEC 27BD01D8 */ addiu $sp, $sp, 0x1d8 +) +#endif + + +#ifdef NONMATCHING +void proplvreset2(void) { + +} +#else + +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel jpt_object_type_expansion +.word door_expand +.word door_scale_expand +.word obj_03_expand +.word key_expand +.word obj_03_expand +.word surv_camera_expand +.word obj_03_expand +.word item_expand +.word actor_expand +.word single_screen_display_expand +.word multi_screen_display_expand +.word rack_expand +.word autogun_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word hat_expand +.word actor_attr_expand +.word other_obj_expand +.word ammo_box_expand +.word body_armor_expand +.word tag_expand +.word type17_objective_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word type1E_subobjective_expand +.word other_obj_expand +.word type20_subobjective_expand +.word type21_subobjective_expand +.word other_obj_expand +.word type23_solo_brief_text +.word obj_03_expand +.word type25_rename +.word other_obj_expand +.word type27_wheeled_vehicle +.word type28_aircraft +.word obj_03_expand +.word obj_03_expand +.word obj_03_expand +.word other_obj_expand +.word type2D_tank +.word type2E_viewport_pos +.word type2F_tinted_glass + +glabel D_8004F024 +.word 0x40c90fdb +glabel D_8004F028 +.word 0x3e2e147c + +glabel jpt_8004F02C +.word .L7F004B6C +.word .L7F004B6C +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004B6C +.word .L7F004B6C +.word .L7F004DE4 +.word .L7F004B6C +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004BD8 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004C2C +.word .L7F004B6C +.word .L7F004B6C +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004B6C +.word .L7F004DE4 +.word .L7F004D70 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004B6C +.word .L7F004B6C +.word .L7F004B6C +.word .L7F004CA4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004B6C + +.text +glabel proplvreset2 +/* 038720 7F003BF0 27BDFD80 */ addiu $sp, $sp, -0x280 +/* 038724 7F003BF4 AFB50034 */ sw $s5, 0x34($sp) +/* 038728 7F003BF8 0080A825 */ move $s5, $a0 +/* 03872C 7F003BFC AFBF0044 */ sw $ra, 0x44($sp) +/* 038730 7F003C00 3C058005 */ lui $a1, %hi(aNochr) +/* 038734 7F003C04 AFBE0040 */ sw $fp, 0x40($sp) +/* 038738 7F003C08 AFB7003C */ sw $s7, 0x3c($sp) +/* 03873C 7F003C0C AFB60038 */ sw $s6, 0x38($sp) +/* 038740 7F003C10 AFB40030 */ sw $s4, 0x30($sp) +/* 038744 7F003C14 AFB3002C */ sw $s3, 0x2c($sp) +/* 038748 7F003C18 AFB20028 */ sw $s2, 0x28($sp) +/* 03874C 7F003C1C AFB10024 */ sw $s1, 0x24($sp) +/* 038750 7F003C20 AFB00020 */ sw $s0, 0x20($sp) +/* 038754 7F003C24 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 038758 7F003C28 24A5ED90 */ addiu $a1, %lo(aNochr) # addiu $a1, $a1, -0x1270 +/* 03875C 7F003C2C 0C0029A8 */ jal check_token +/* 038760 7F003C30 24040001 */ li $a0, 1 +/* 038764 7F003C34 2C460001 */ sltiu $a2, $v0, 1 +/* 038768 7F003C38 10C00005 */ beqz $a2, .L7F003C50 +/* 03876C 7F003C3C 24040001 */ li $a0, 1 +/* 038770 7F003C40 3C058005 */ lui $a1, %hi(aNoprop) +/* 038774 7F003C44 0C0029A8 */ jal check_token +/* 038778 7F003C48 24A5ED98 */ addiu $a1, %lo(aNoprop) # addiu $a1, $a1, -0x1268 +/* 03877C 7F003C4C 2C460001 */ sltiu $a2, $v0, 1 +.L7F003C50: +/* 038780 7F003C50 3C058005 */ lui $a1, %hi(aNoobj) +/* 038784 7F003C54 AFA60278 */ sw $a2, 0x278($sp) +/* 038788 7F003C58 24A5EDA0 */ addiu $a1, %lo(aNoobj) # addiu $a1, $a1, -0x1260 +/* 03878C 7F003C5C 0C0029A8 */ jal check_token +/* 038790 7F003C60 24040001 */ li $a0, 1 +/* 038794 7F003C64 2C430001 */ sltiu $v1, $v0, 1 +/* 038798 7F003C68 10600005 */ beqz $v1, .L7F003C80 +/* 03879C 7F003C6C 24040001 */ li $a0, 1 +/* 0387A0 7F003C70 3C058005 */ lui $a1, %hi(aNoprop_0) +/* 0387A4 7F003C74 0C0029A8 */ jal check_token +/* 0387A8 7F003C78 24A5EDA8 */ addiu $a1, %lo(aNoprop_0) # addiu $a1, $a1, -0x1258 +/* 0387AC 7F003C7C 2C430001 */ sltiu $v1, $v0, 1 +.L7F003C80: +/* 0387B0 7F003C80 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0387B4 7F003C84 44812000 */ mtc1 $at, $f4 +/* 0387B8 7F003C88 0060F025 */ move $fp, $v1 +/* 0387BC 7F003C8C 3C018003 */ lui $at, %hi(scale_1_0_item_related) +/* 0387C0 7F003C90 3C038004 */ lui $v1, %hi(PitemZ_entries+0xFF0) +/* 0387C4 7F003C94 3C028004 */ lui $v0, %hi(PitemZ_entries) +/* 0387C8 7F003C98 2442A228 */ addiu $v0, %lo(PitemZ_entries) # addiu $v0, $v0, -0x5dd8 +/* 0387CC 7F003C9C 2463B218 */ addiu $v1, $v1, %lo(PitemZ_entries+0xFF0) +/* 0387D0 7F003CA0 E424A3C0 */ swc1 $f4, %lo(scale_1_0_item_related)($at) +.L7F003CA4: +/* 0387D4 7F003CA4 8C4E0000 */ lw $t6, ($v0) +/* 0387D8 7F003CA8 2442000C */ addiu $v0, $v0, 0xc +/* 0387DC 7F003CAC 0043082B */ sltu $at, $v0, $v1 +/* 0387E0 7F003CB0 1420FFFC */ bnez $at, .L7F003CA4 +/* 0387E4 7F003CB4 ADC00000 */ sw $zero, ($t6) +/* 0387E8 7F003CB8 2AA1003B */ slti $at, $s5, 0x3b +/* 0387EC 7F003CBC 10200454 */ beqz $at, .L7F004E10 +/* 0387F0 7F003CC0 00157880 */ sll $t7, $s5, 2 +/* 0387F4 7F003CC4 3C188003 */ lui $t8, %hi(setup_text_pointers) +/* 0387F8 7F003CC8 271874E4 */ addiu $t8, %lo(setup_text_pointers) # addiu $t8, $t8, 0x74e4 +/* 0387FC 7F003CCC 01F88021 */ addu $s0, $t7, $t8 +/* 038800 7F003CD0 8E020000 */ lw $v0, ($s0) +/* 038804 7F003CD4 3C198005 */ lui $t9, %hi(only_read_by_stageload) +/* 038808 7F003CD8 27B10174 */ addiu $s1, $sp, 0x174 +/* 03880C 7F003CDC 1040044C */ beqz $v0, .L7F004E10 +/* 038810 7F003CE0 2739EDB0 */ addiu $t9, %lo(only_read_by_stageload) # addiu $t9, $t9, -0x1250 +/* 038814 7F003CE4 02205025 */ move $t2, $s1 +/* 038818 7F003CE8 272900FC */ addiu $t1, $t9, 0xfc +.L7F003CEC: +/* 03881C 7F003CEC 8F210000 */ lw $at, ($t9) +/* 038820 7F003CF0 2739000C */ addiu $t9, $t9, 0xc +/* 038824 7F003CF4 254A000C */ addiu $t2, $t2, 0xc +/* 038828 7F003CF8 AD41FFF4 */ sw $at, -0xc($t2) +/* 03882C 7F003CFC 8F21FFF8 */ lw $at, -8($t9) +/* 038830 7F003D00 AD41FFF8 */ sw $at, -8($t2) +/* 038834 7F003D04 8F21FFFC */ lw $at, -4($t9) +/* 038838 7F003D08 1729FFF8 */ bne $t9, $t1, .L7F003CEC +/* 03883C 7F003D0C AD41FFFC */ sw $at, -4($t2) +/* 038840 7F003D10 8F210000 */ lw $at, ($t9) +/* 038844 7F003D14 0000A025 */ move $s4, $zero +/* 038848 7F003D18 00009825 */ move $s3, $zero +/* 03884C 7F003D1C AD410000 */ sw $at, ($t2) +/* 038850 7F003D20 904B0000 */ lbu $t3, ($v0) +/* 038854 7F003D24 A3A00175 */ sb $zero, 0x175($sp) +/* 038858 7F003D28 0FC26919 */ jal get_num_players +/* 03885C 7F003D2C A3AB0174 */ sb $t3, 0x174($sp) +/* 038860 7F003D30 28410002 */ slti $at, $v0, 2 +/* 038864 7F003D34 14200004 */ bnez $at, .L7F003D48 +/* 038868 7F003D38 3C058005 */ lui $a1, %hi(aMp_) +/* 03886C 7F003D3C 24A5EEB0 */ addiu $a1, %lo(aMp_) # addiu $a1, $a1, -0x1150 +/* 038870 7F003D40 0C0029FF */ jal string_append_from_obseg_textbank +/* 038874 7F003D44 02202025 */ move $a0, $s1 +.L7F003D48: +/* 038878 7F003D48 8E050000 */ lw $a1, ($s0) +/* 03887C 7F003D4C 02202025 */ move $a0, $s1 +/* 038880 7F003D50 0C0029FF */ jal string_append_from_obseg_textbank +/* 038884 7F003D54 24A50001 */ addiu $a1, $a1, 1 +/* 038888 7F003D58 02202025 */ move $a0, $s1 +/* 03888C 7F003D5C 24050001 */ li $a1, 1 +/* 038890 7F003D60 24060100 */ li $a2, 256 +/* 038894 7F003D64 0FC2F341 */ jal _load_resource_named_to_membank +/* 038898 7F003D68 24070004 */ li $a3, 4 +/* 03889C 7F003D6C 3C038007 */ lui $v1, %hi(dword_CODE_bss_80075D28) +/* 0388A0 7F003D70 24635D28 */ addiu $v1, %lo(dword_CODE_bss_80075D28) # addiu $v1, $v1, 0x5d28 +/* 0388A4 7F003D74 AC620000 */ sw $v0, ($v1) +/* 0388A8 7F003D78 00408825 */ move $s1, $v0 +/* 0388AC 7F003D7C 0FC30578 */ jal get_textbank_number_for_stagenum +/* 0388B0 7F003D80 02A02025 */ move $a0, $s5 +/* 0388B4 7F003D84 0FC30742 */ jal load_mission_text_bank +/* 0388B8 7F003D88 00402025 */ move $a0, $v0 +/* 0388BC 7F003D8C 8E2C0000 */ lw $t4, ($s1) +/* 0388C0 7F003D90 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) +/* 0388C4 7F003D94 24E75D00 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d00 +/* 0388C8 7F003D98 022C6821 */ addu $t5, $s1, $t4 +/* 0388CC 7F003D9C ACED0000 */ sw $t5, ($a3) +/* 0388D0 7F003DA0 8E2E0004 */ lw $t6, 4($s1) +/* 0388D4 7F003DA4 022E7821 */ addu $t7, $s1, $t6 +/* 0388D8 7F003DA8 ACEF0004 */ sw $t7, 4($a3) +/* 0388DC 7F003DAC 8E380008 */ lw $t8, 8($s1) +/* 0388E0 7F003DB0 02384021 */ addu $t0, $s1, $t8 +/* 0388E4 7F003DB4 ACE80008 */ sw $t0, 8($a3) +/* 0388E8 7F003DB8 8E29000C */ lw $t1, 0xc($s1) +/* 0388EC 7F003DBC 0229C821 */ addu $t9, $s1, $t1 +/* 0388F0 7F003DC0 ACF9000C */ sw $t9, 0xc($a3) +/* 0388F4 7F003DC4 8E2A0010 */ lw $t2, 0x10($s1) +/* 0388F8 7F003DC8 022A5821 */ addu $t3, $s1, $t2 +/* 0388FC 7F003DCC ACEB0010 */ sw $t3, 0x10($a3) +/* 038900 7F003DD0 8E2C0014 */ lw $t4, 0x14($s1) +/* 038904 7F003DD4 022C6821 */ addu $t5, $s1, $t4 +/* 038908 7F003DD8 ACED0014 */ sw $t5, 0x14($a3) +/* 03890C 7F003DDC 8E2E0018 */ lw $t6, 0x18($s1) +/* 038910 7F003DE0 022E7821 */ addu $t7, $s1, $t6 +/* 038914 7F003DE4 ACEF0018 */ sw $t7, 0x18($a3) +/* 038918 7F003DE8 8E38001C */ lw $t8, 0x1c($s1) +/* 03891C 7F003DEC 02384021 */ addu $t0, $s1, $t8 +/* 038920 7F003DF0 ACE8001C */ sw $t0, 0x1c($a3) +/* 038924 7F003DF4 8E220020 */ lw $v0, 0x20($s1) +/* 038928 7F003DF8 10400003 */ beqz $v0, .L7F003E08 +/* 03892C 7F003DFC 02224821 */ addu $t1, $s1, $v0 +/* 038930 7F003E00 10000002 */ b .L7F003E0C +/* 038934 7F003E04 ACE90020 */ sw $t1, 0x20($a3) +.L7F003E08: +/* 038938 7F003E08 ACE00020 */ sw $zero, 0x20($a3) +.L7F003E0C: +/* 03893C 7F003E0C 8E220024 */ lw $v0, 0x24($s1) +/* 038940 7F003E10 10400003 */ beqz $v0, .L7F003E20 +/* 038944 7F003E14 0222C821 */ addu $t9, $s1, $v0 +/* 038948 7F003E18 10000002 */ b .L7F003E24 +/* 03894C 7F003E1C ACF90024 */ sw $t9, 0x24($a3) +.L7F003E20: +/* 038950 7F003E20 ACE00024 */ sw $zero, 0x24($a3) +.L7F003E24: +/* 038954 7F003E24 8CE50000 */ lw $a1, ($a3) +/* 038958 7F003E28 50A00010 */ beql $a1, $zero, .L7F003E6C +/* 03895C 7F003E2C 8CE50004 */ lw $a1, 4($a3) +/* 038960 7F003E30 8CAA0000 */ lw $t2, ($a1) +/* 038964 7F003E34 00001825 */ move $v1, $zero +/* 038968 7F003E38 00A01025 */ move $v0, $a1 +/* 03896C 7F003E3C 0542000B */ bltzl $t2, .L7F003E6C +/* 038970 7F003E40 8CE50004 */ lw $a1, 4($a3) +/* 038974 7F003E44 8C4B0004 */ lw $t3, 4($v0) +.L7F003E48: +/* 038978 7F003E48 24630010 */ addiu $v1, $v1, 0x10 +/* 03897C 7F003E4C 01716021 */ addu $t4, $t3, $s1 +/* 038980 7F003E50 AC4C0004 */ sw $t4, 4($v0) +/* 038984 7F003E54 8CED0000 */ lw $t5, ($a3) +/* 038988 7F003E58 01A31021 */ addu $v0, $t5, $v1 +/* 03898C 7F003E5C 8C4E0000 */ lw $t6, ($v0) +/* 038990 7F003E60 05C3FFF9 */ bgezl $t6, .L7F003E48 +/* 038994 7F003E64 8C4B0004 */ lw $t3, 4($v0) +/* 038998 7F003E68 8CE50004 */ lw $a1, 4($a3) +.L7F003E6C: +/* 03899C 7F003E6C 50A00015 */ beql $a1, $zero, .L7F003EC4 +/* 0389A0 7F003E70 8CE60014 */ lw $a2, 0x14($a3) +/* 0389A4 7F003E74 8CAF0000 */ lw $t7, ($a1) +/* 0389A8 7F003E78 00001825 */ move $v1, $zero +/* 0389AC 7F003E7C 00A01025 */ move $v0, $a1 +/* 0389B0 7F003E80 51E00010 */ beql $t7, $zero, .L7F003EC4 +/* 0389B4 7F003E84 8CE60014 */ lw $a2, 0x14($a3) +/* 0389B8 7F003E88 8CA40000 */ lw $a0, ($a1) +/* 0389BC 7F003E8C 0091C021 */ addu $t8, $a0, $s1 +.L7F003E90: +/* 0389C0 7F003E90 AC580000 */ sw $t8, ($v0) +/* 0389C4 7F003E94 8CE80004 */ lw $t0, 4($a3) +/* 0389C8 7F003E98 01031021 */ addu $v0, $t0, $v1 +/* 0389CC 7F003E9C 8C490004 */ lw $t1, 4($v0) +/* 0389D0 7F003EA0 2463000C */ addiu $v1, $v1, 0xc +/* 0389D4 7F003EA4 0131C821 */ addu $t9, $t1, $s1 +/* 0389D8 7F003EA8 AC590004 */ sw $t9, 4($v0) +/* 0389DC 7F003EAC 8CEA0004 */ lw $t2, 4($a3) +/* 0389E0 7F003EB0 01431021 */ addu $v0, $t2, $v1 +/* 0389E4 7F003EB4 8C440000 */ lw $a0, ($v0) +/* 0389E8 7F003EB8 5480FFF5 */ bnezl $a0, .L7F003E90 +/* 0389EC 7F003EBC 0091C021 */ addu $t8, $a0, $s1 +/* 0389F0 7F003EC0 8CE60014 */ lw $a2, 0x14($a3) +.L7F003EC4: +/* 0389F4 7F003EC4 50C00010 */ beql $a2, $zero, .L7F003F08 +/* 0389F8 7F003EC8 8CE20010 */ lw $v0, 0x10($a3) +/* 0389FC 7F003ECC 8CCB0000 */ lw $t3, ($a2) +/* 038A00 7F003ED0 00002825 */ move $a1, $zero +/* 038A04 7F003ED4 00C01025 */ move $v0, $a2 +/* 038A08 7F003ED8 5160000B */ beql $t3, $zero, .L7F003F08 +/* 038A0C 7F003EDC 8CE20010 */ lw $v0, 0x10($a3) +/* 038A10 7F003EE0 8CC30000 */ lw $v1, ($a2) +/* 038A14 7F003EE4 00716021 */ addu $t4, $v1, $s1 +.L7F003EE8: +/* 038A18 7F003EE8 AC4C0000 */ sw $t4, ($v0) +/* 038A1C 7F003EEC 8CED0014 */ lw $t5, 0x14($a3) +/* 038A20 7F003EF0 24A50008 */ addiu $a1, $a1, 8 +/* 038A24 7F003EF4 01A51021 */ addu $v0, $t5, $a1 +/* 038A28 7F003EF8 8C430000 */ lw $v1, ($v0) +/* 038A2C 7F003EFC 5460FFFA */ bnezl $v1, .L7F003EE8 +/* 038A30 7F003F00 00716021 */ addu $t4, $v1, $s1 +/* 038A34 7F003F04 8CE20010 */ lw $v0, 0x10($a3) +.L7F003F08: +/* 038A38 7F003F08 50400020 */ beql $v0, $zero, .L7F003F8C +/* 038A3C 7F003F0C 8CEA0018 */ lw $t2, 0x18($a3) +/* 038A40 7F003F10 8C4E0000 */ lw $t6, ($v0) +/* 038A44 7F003F14 00002825 */ move $a1, $zero +/* 038A48 7F003F18 00403025 */ move $a2, $v0 +/* 038A4C 7F003F1C 51C0001B */ beql $t6, $zero, .L7F003F8C +/* 038A50 7F003F20 8CEA0018 */ lw $t2, 0x18($a3) +/* 038A54 7F003F24 8C440000 */ lw $a0, ($v0) +/* 038A58 7F003F28 00917821 */ addu $t7, $a0, $s1 +.L7F003F2C: +/* 038A5C 7F003F2C ACCF0000 */ sw $t7, ($a2) +/* 038A60 7F003F30 8CF80010 */ lw $t8, 0x10($a3) +/* 038A64 7F003F34 00001825 */ move $v1, $zero +/* 038A68 7F003F38 03053021 */ addu $a2, $t8, $a1 +/* 038A6C 7F003F3C 8CC40000 */ lw $a0, ($a2) +/* 038A70 7F003F40 8C880000 */ lw $t0, ($a0) +/* 038A74 7F003F44 00801025 */ move $v0, $a0 +/* 038A78 7F003F48 05020009 */ bltzl $t0, .L7F003F70 +/* 038A7C 7F003F4C A4C30006 */ sh $v1, 6($a2) +/* 038A80 7F003F50 8C490004 */ lw $t1, 4($v0) +.L7F003F54: +/* 038A84 7F003F54 24630001 */ addiu $v1, $v1, 1 +/* 038A88 7F003F58 24420004 */ addiu $v0, $v0, 4 +/* 038A8C 7F003F5C 0523FFFD */ bgezl $t1, .L7F003F54 +/* 038A90 7F003F60 8C490004 */ lw $t1, 4($v0) +/* 038A94 7F003F64 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) +/* 038A98 7F003F68 24E75D00 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d00 +/* 038A9C 7F003F6C A4C30006 */ sh $v1, 6($a2) +.L7F003F70: +/* 038AA0 7F003F70 8CF90010 */ lw $t9, 0x10($a3) +/* 038AA4 7F003F74 24A50008 */ addiu $a1, $a1, 8 +/* 038AA8 7F003F78 03253021 */ addu $a2, $t9, $a1 +/* 038AAC 7F003F7C 8CC40000 */ lw $a0, ($a2) +/* 038AB0 7F003F80 5480FFEA */ bnezl $a0, .L7F003F2C +/* 038AB4 7F003F84 00917821 */ addu $t7, $a0, $s1 +/* 038AB8 7F003F88 8CEA0018 */ lw $t2, 0x18($a3) +.L7F003F8C: +/* 038ABC 7F003F8C 1140001D */ beqz $t2, .L7F004004 +/* 038AC0 7F003F90 00000000 */ nop +/* 038AC4 7F003F94 0FC2D20C */ jal get_room_data_float2 +/* 038AC8 7F003F98 00000000 */ nop +/* 038ACC 7F003F9C 3C108007 */ lui $s0, %hi(ptr_0xxxpresets) +/* 038AD0 7F003FA0 8E105D18 */ lw $s0, %lo(ptr_0xxxpresets)($s0) +/* 038AD4 7F003FA4 46000086 */ mov.s $f2, $f0 +/* 038AD8 7F003FA8 8E020024 */ lw $v0, 0x24($s0) +/* 038ADC 7F003FAC 10400015 */ beqz $v0, .L7F004004 +/* 038AE0 7F003FB0 00000000 */ nop +/* 038AE4 7F003FB4 C6060000 */ lwc1 $f6, ($s0) +.L7F003FB8: +/* 038AE8 7F003FB8 C60A0004 */ lwc1 $f10, 4($s0) +/* 038AEC 7F003FBC C6120008 */ lwc1 $f18, 8($s0) +/* 038AF0 7F003FC0 46023202 */ mul.s $f8, $f6, $f2 +/* 038AF4 7F003FC4 02222821 */ addu $a1, $s1, $v0 +/* 038AF8 7F003FC8 AE050024 */ sw $a1, 0x24($s0) +/* 038AFC 7F003FCC 46025402 */ mul.s $f16, $f10, $f2 +/* 038B00 7F003FD0 02002025 */ move $a0, $s0 +/* 038B04 7F003FD4 26060028 */ addiu $a2, $s0, 0x28 +/* 038B08 7F003FD8 46029102 */ mul.s $f4, $f18, $f2 +/* 038B0C 7F003FDC E6080000 */ swc1 $f8, ($s0) +/* 038B10 7F003FE0 E6100004 */ swc1 $f16, 4($s0) +/* 038B14 7F003FE4 E6040008 */ swc1 $f4, 8($s0) +/* 038B18 7F003FE8 0FC019F0 */ jal init_pathtable_something +/* 038B1C 7F003FEC E7A2015C */ swc1 $f2, 0x15c($sp) +/* 038B20 7F003FF0 8E020050 */ lw $v0, 0x50($s0) +/* 038B24 7F003FF4 2610002C */ addiu $s0, $s0, 0x2c +/* 038B28 7F003FF8 C7A2015C */ lwc1 $f2, 0x15c($sp) +/* 038B2C 7F003FFC 5440FFEE */ bnezl $v0, .L7F003FB8 +/* 038B30 7F004000 C6060000 */ lwc1 $f6, ($s0) +.L7F004004: +/* 038B34 7F004004 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) +/* 038B38 7F004008 24E75D00 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d00 +/* 038B3C 7F00400C 8CEC001C */ lw $t4, 0x1c($a3) +/* 038B40 7F004010 51800033 */ beql $t4, $zero, .L7F0040E0 +/* 038B44 7F004014 8CE50020 */ lw $a1, 0x20($a3) +/* 038B48 7F004018 0FC2D20C */ jal get_room_data_float2 +/* 038B4C 7F00401C 00000000 */ nop +/* 038B50 7F004020 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) +/* 038B54 7F004024 24E75D00 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d00 +/* 038B58 7F004028 8CF0001C */ lw $s0, 0x1c($a3) +/* 038B5C 7F00402C 46000086 */ mov.s $f2, $f0 +/* 038B60 7F004030 8E020024 */ lw $v0, 0x24($s0) +/* 038B64 7F004034 5040002A */ beql $v0, $zero, .L7F0040E0 +/* 038B68 7F004038 8CE50020 */ lw $a1, 0x20($a3) +/* 038B6C 7F00403C C6060000 */ lwc1 $f6, ($s0) +.L7F004040: +/* 038B70 7F004040 C60A0004 */ lwc1 $f10, 4($s0) +/* 038B74 7F004044 C6120008 */ lwc1 $f18, 8($s0) +/* 038B78 7F004048 46023202 */ mul.s $f8, $f6, $f2 +/* 038B7C 7F00404C C606002C */ lwc1 $f6, 0x2c($s0) +/* 038B80 7F004050 02222821 */ addu $a1, $s1, $v0 +/* 038B84 7F004054 46025402 */ mul.s $f16, $f10, $f2 +/* 038B88 7F004058 C60A0030 */ lwc1 $f10, 0x30($s0) +/* 038B8C 7F00405C AE050024 */ sw $a1, 0x24($s0) +/* 038B90 7F004060 46029102 */ mul.s $f4, $f18, $f2 +/* 038B94 7F004064 E6080000 */ swc1 $f8, ($s0) +/* 038B98 7F004068 C6120034 */ lwc1 $f18, 0x34($s0) +/* 038B9C 7F00406C 46023202 */ mul.s $f8, $f6, $f2 +/* 038BA0 7F004070 E6100004 */ swc1 $f16, 4($s0) +/* 038BA4 7F004074 C6060038 */ lwc1 $f6, 0x38($s0) +/* 038BA8 7F004078 46025402 */ mul.s $f16, $f10, $f2 +/* 038BAC 7F00407C E6040008 */ swc1 $f4, 8($s0) +/* 038BB0 7F004080 C60A003C */ lwc1 $f10, 0x3c($s0) +/* 038BB4 7F004084 46029102 */ mul.s $f4, $f18, $f2 +/* 038BB8 7F004088 E608002C */ swc1 $f8, 0x2c($s0) +/* 038BBC 7F00408C C6120040 */ lwc1 $f18, 0x40($s0) +/* 038BC0 7F004090 46023202 */ mul.s $f8, $f6, $f2 +/* 038BC4 7F004094 E6100030 */ swc1 $f16, 0x30($s0) +/* 038BC8 7F004098 02002025 */ move $a0, $s0 +/* 038BCC 7F00409C 46025402 */ mul.s $f16, $f10, $f2 +/* 038BD0 7F0040A0 E6040034 */ swc1 $f4, 0x34($s0) +/* 038BD4 7F0040A4 26060028 */ addiu $a2, $s0, 0x28 +/* 038BD8 7F0040A8 46029102 */ mul.s $f4, $f18, $f2 +/* 038BDC 7F0040AC E6080038 */ swc1 $f8, 0x38($s0) +/* 038BE0 7F0040B0 E610003C */ swc1 $f16, 0x3c($s0) +/* 038BE4 7F0040B4 E6040040 */ swc1 $f4, 0x40($s0) +/* 038BE8 7F0040B8 0FC019F0 */ jal init_pathtable_something +/* 038BEC 7F0040BC E7A20150 */ swc1 $f2, 0x150($sp) +/* 038BF0 7F0040C0 8E020068 */ lw $v0, 0x68($s0) +/* 038BF4 7F0040C4 26100044 */ addiu $s0, $s0, 0x44 +/* 038BF8 7F0040C8 C7A20150 */ lwc1 $f2, 0x150($sp) +/* 038BFC 7F0040CC 5440FFDC */ bnezl $v0, .L7F004040 +/* 038C00 7F0040D0 C6060000 */ lwc1 $f6, ($s0) +/* 038C04 7F0040D4 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) +/* 038C08 7F0040D8 24E75D00 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d00 +/* 038C0C 7F0040DC 8CE50020 */ lw $a1, 0x20($a3) +.L7F0040E0: +/* 038C10 7F0040E0 50A00010 */ beql $a1, $zero, .L7F004124 +/* 038C14 7F0040E4 8CE50024 */ lw $a1, 0x24($a3) +/* 038C18 7F0040E8 8CAE0000 */ lw $t6, ($a1) +/* 038C1C 7F0040EC 00001025 */ move $v0, $zero +/* 038C20 7F0040F0 00A01825 */ move $v1, $a1 +/* 038C24 7F0040F4 51C0000B */ beql $t6, $zero, .L7F004124 +/* 038C28 7F0040F8 8CE50024 */ lw $a1, 0x24($a3) +/* 038C2C 7F0040FC 8CA40000 */ lw $a0, ($a1) +/* 038C30 7F004100 00917821 */ addu $t7, $a0, $s1 +.L7F004104: +/* 038C34 7F004104 AC6F0000 */ sw $t7, ($v1) +/* 038C38 7F004108 8CF80020 */ lw $t8, 0x20($a3) +/* 038C3C 7F00410C 24420004 */ addiu $v0, $v0, 4 +/* 038C40 7F004110 03021821 */ addu $v1, $t8, $v0 +/* 038C44 7F004114 8C640000 */ lw $a0, ($v1) +/* 038C48 7F004118 5480FFFA */ bnezl $a0, .L7F004104 +/* 038C4C 7F00411C 00917821 */ addu $t7, $a0, $s1 +/* 038C50 7F004120 8CE50024 */ lw $a1, 0x24($a3) +.L7F004124: +/* 038C54 7F004124 50A0000F */ beql $a1, $zero, .L7F004164 +/* 038C58 7F004128 8FAA0278 */ lw $t2, 0x278($sp) +/* 038C5C 7F00412C 8CA80000 */ lw $t0, ($a1) +/* 038C60 7F004130 00001025 */ move $v0, $zero +/* 038C64 7F004134 00A01825 */ move $v1, $a1 +/* 038C68 7F004138 11000009 */ beqz $t0, .L7F004160 +/* 038C6C 7F00413C 01002025 */ move $a0, $t0 +/* 038C70 7F004140 00914821 */ addu $t1, $a0, $s1 +.L7F004144: +/* 038C74 7F004144 AC690000 */ sw $t1, ($v1) +/* 038C78 7F004148 8CF90024 */ lw $t9, 0x24($a3) +/* 038C7C 7F00414C 24420004 */ addiu $v0, $v0, 4 +/* 038C80 7F004150 03221821 */ addu $v1, $t9, $v0 +/* 038C84 7F004154 8C640000 */ lw $a0, ($v1) +/* 038C88 7F004158 5480FFFA */ bnezl $a0, .L7F004144 +/* 038C8C 7F00415C 00914821 */ addu $t1, $a0, $s1 +.L7F004160: +/* 038C90 7F004160 8FAA0278 */ lw $t2, 0x278($sp) +.L7F004164: +/* 038C94 7F004164 11400012 */ beqz $t2, .L7F0041B0 +/* 038C98 7F004168 00000000 */ nop +/* 038C9C 7F00416C 0FC006D4 */ jal load_proptype +/* 038CA0 7F004170 24040009 */ li $a0, 9 +/* 038CA4 7F004174 0FC003AE */ jal alloc_init_GUARDdata_entries +/* 038CA8 7F004178 00402025 */ move $a0, $v0 +/* 038CAC 7F00417C 0FC006D4 */ jal load_proptype +/* 038CB0 7F004180 24040009 */ li $a0, 9 +/* 038CB4 7F004184 0040A025 */ move $s4, $v0 +/* 038CB8 7F004188 0FC006D4 */ jal load_proptype +/* 038CBC 7F00418C 24040008 */ li $a0, 8 +/* 038CC0 7F004190 00409825 */ move $s3, $v0 +/* 038CC4 7F004194 0FC006D4 */ jal load_proptype +/* 038CC8 7F004198 24040004 */ li $a0, 4 +/* 038CCC 7F00419C 02629821 */ addu $s3, $s3, $v0 +/* 038CD0 7F0041A0 0FC006D4 */ jal load_proptype +/* 038CD4 7F0041A4 24040011 */ li $a0, 17 +/* 038CD8 7F0041A8 10000003 */ b .L7F0041B8 +/* 038CDC 7F0041AC 02629821 */ addu $s3, $s3, $v0 +.L7F0041B0: +/* 038CE0 7F0041B0 0FC003AE */ jal alloc_init_GUARDdata_entries +/* 038CE4 7F0041B4 00002025 */ move $a0, $zero +.L7F0041B8: +/* 038CE8 7F0041B8 13C0003A */ beqz $fp, .L7F0042A4 +/* 038CEC 7F0041BC 00000000 */ nop +/* 038CF0 7F0041C0 0FC006D4 */ jal load_proptype +/* 038CF4 7F0041C4 24040001 */ li $a0, 1 +/* 038CF8 7F0041C8 02629821 */ addu $s3, $s3, $v0 +/* 038CFC 7F0041CC 0FC006D4 */ jal load_proptype +/* 038D00 7F0041D0 24040006 */ li $a0, 6 +/* 038D04 7F0041D4 02629821 */ addu $s3, $s3, $v0 +/* 038D08 7F0041D8 0FC006D4 */ jal load_proptype +/* 038D0C 7F0041DC 2404000D */ li $a0, 13 +/* 038D10 7F0041E0 02629821 */ addu $s3, $s3, $v0 +/* 038D14 7F0041E4 0FC006D4 */ jal load_proptype +/* 038D18 7F0041E8 2404000C */ li $a0, 12 +/* 038D1C 7F0041EC 02629821 */ addu $s3, $s3, $v0 +/* 038D20 7F0041F0 0FC006D4 */ jal load_proptype +/* 038D24 7F0041F4 2404000A */ li $a0, 10 +/* 038D28 7F0041F8 02629821 */ addu $s3, $s3, $v0 +/* 038D2C 7F0041FC 0FC006D4 */ jal load_proptype +/* 038D30 7F004200 2404000B */ li $a0, 11 +/* 038D34 7F004204 02629821 */ addu $s3, $s3, $v0 +/* 038D38 7F004208 0FC006D4 */ jal load_proptype +/* 038D3C 7F00420C 24040015 */ li $a0, 21 +/* 038D40 7F004210 02629821 */ addu $s3, $s3, $v0 +/* 038D44 7F004214 0FC006D4 */ jal load_proptype +/* 038D48 7F004218 24040003 */ li $a0, 3 +/* 038D4C 7F00421C 02629821 */ addu $s3, $s3, $v0 +/* 038D50 7F004220 0FC006D4 */ jal load_proptype +/* 038D54 7F004224 2404002A */ li $a0, 42 +/* 038D58 7F004228 02629821 */ addu $s3, $s3, $v0 +/* 038D5C 7F00422C 0FC006D4 */ jal load_proptype +/* 038D60 7F004230 2404002F */ li $a0, 47 +/* 038D64 7F004234 02629821 */ addu $s3, $s3, $v0 +/* 038D68 7F004238 0FC006D4 */ jal load_proptype +/* 038D6C 7F00423C 2404002B */ li $a0, 43 +/* 038D70 7F004240 02629821 */ addu $s3, $s3, $v0 +/* 038D74 7F004244 0FC006D4 */ jal load_proptype +/* 038D78 7F004248 24040029 */ li $a0, 41 +/* 038D7C 7F00424C 02629821 */ addu $s3, $s3, $v0 +/* 038D80 7F004250 0FC006D4 */ jal load_proptype +/* 038D84 7F004254 24040024 */ li $a0, 36 +/* 038D88 7F004258 02629821 */ addu $s3, $s3, $v0 +/* 038D8C 7F00425C 0FC006D4 */ jal load_proptype +/* 038D90 7F004260 24040005 */ li $a0, 5 +/* 038D94 7F004264 02629821 */ addu $s3, $s3, $v0 +/* 038D98 7F004268 0FC006D4 */ jal load_proptype +/* 038D9C 7F00426C 24040007 */ li $a0, 7 +/* 038DA0 7F004270 02629821 */ addu $s3, $s3, $v0 +/* 038DA4 7F004274 0FC006D4 */ jal load_proptype +/* 038DA8 7F004278 24040014 */ li $a0, 20 +/* 038DAC 7F00427C 02629821 */ addu $s3, $s3, $v0 +/* 038DB0 7F004280 0FC006D4 */ jal load_proptype +/* 038DB4 7F004284 24040027 */ li $a0, 39 +/* 038DB8 7F004288 02629821 */ addu $s3, $s3, $v0 +/* 038DBC 7F00428C 0FC006D4 */ jal load_proptype +/* 038DC0 7F004290 2404002D */ li $a0, 45 +/* 038DC4 7F004294 02629821 */ addu $s3, $s3, $v0 +/* 038DC8 7F004298 0FC006D4 */ jal load_proptype +/* 038DCC 7F00429C 24040028 */ li $a0, 40 +/* 038DD0 7F0042A0 0282A021 */ addu $s4, $s4, $v0 +.L7F0042A4: +/* 038DD4 7F0042A4 0FC01550 */ jal sub_GAME_7F005540 +/* 038DD8 7F0042A8 02602025 */ move $a0, $s3 +/* 038DDC 7F0042AC 0FC01589 */ jal sub_GAME_7F005624 +/* 038DE0 7F0042B0 02802025 */ move $a0, $s4 +/* 038DE4 7F0042B4 0FC26919 */ jal get_num_players +/* 038DE8 7F0042B8 00008025 */ move $s0, $zero +/* 038DEC 7F0042BC 1840000C */ blez $v0, .L7F0042F0 +/* 038DF0 7F0042C0 00000000 */ nop +.L7F0042C4: +/* 038DF4 7F0042C4 0FC26C43 */ jal set_cur_player +/* 038DF8 7F0042C8 02002025 */ move $a0, $s0 +/* 038DFC 7F0042CC 0FC006D4 */ jal load_proptype +/* 038E00 7F0042D0 2404000E */ li $a0, 14 +/* 038E04 7F0042D4 0FC01897 */ jal alloc_additional_item_slots +/* 038E08 7F0042D8 00402025 */ move $a0, $v0 +/* 038E0C 7F0042DC 0FC26919 */ jal get_num_players +/* 038E10 7F0042E0 26100001 */ addiu $s0, $s0, 1 +/* 038E14 7F0042E4 0202082A */ slt $at, $s0, $v0 +/* 038E18 7F0042E8 1420FFF6 */ bnez $at, .L7F0042C4 +/* 038E1C 7F0042EC 00000000 */ nop +.L7F0042F0: +/* 038E20 7F0042F0 3C0B8007 */ lui $t3, %hi(ptr_setup_objects) +/* 038E24 7F0042F4 8D6B5D0C */ lw $t3, %lo(ptr_setup_objects)($t3) +/* 038E28 7F0042F8 116002DF */ beqz $t3, .L7F004E78 +/* 038E2C 7F0042FC 00000000 */ nop +/* 038E30 7F004300 0FC2FF04 */ jal get_current_difficulty +/* 038E34 7F004304 00000000 */ nop +/* 038E38 7F004308 244C0004 */ addiu $t4, $v0, 4 +/* 038E3C 7F00430C 240D0001 */ li $t5, 1 +/* 038E40 7F004310 0FC26919 */ jal get_num_players +/* 038E44 7F004314 018DA004 */ sllv $s4, $t5, $t4 +/* 038E48 7F004318 28410002 */ slti $at, $v0, 2 +/* 038E4C 7F00431C 14200007 */ bnez $at, .L7F00433C +/* 038E50 7F004320 00000000 */ nop +/* 038E54 7F004324 0FC26919 */ jal get_num_players +/* 038E58 7F004328 00000000 */ nop +/* 038E5C 7F00432C 244E0014 */ addiu $t6, $v0, 0x14 +/* 038E60 7F004330 240F0001 */ li $t7, 1 +/* 038E64 7F004334 01CFC004 */ sllv $t8, $t7, $t6 +/* 038E68 7F004338 0298A025 */ or $s4, $s4, $t8 +.L7F00433C: +/* 038E6C 7F00433C 3C128007 */ lui $s2, %hi(ptr_setup_objects) +/* 038E70 7F004340 8E525D0C */ lw $s2, %lo(ptr_setup_objects)($s2) +/* 038E74 7F004344 24010030 */ li $at, 48 +/* 038E78 7F004348 00009825 */ move $s3, $zero +/* 038E7C 7F00434C 92430003 */ lbu $v1, 3($s2) +/* 038E80 7F004350 24170034 */ li $s7, 52 +/* 038E84 7F004354 506101F6 */ beql $v1, $at, .L7F004B30 +/* 038E88 7F004358 92430003 */ lbu $v1, 3($s2) +/* 038E8C 7F00435C 4480A000 */ mtc1 $zero, $f20 +/* 038E90 7F004360 3416FFFF */ li $s6, 65535 +/* 038E94 7F004364 2468FFFF */ addiu $t0, $v1, -1 +.L7F004368: +/* 038E98 7F004368 2D01002F */ sltiu $at, $t0, 0x2f +/* 038E9C 7F00436C 102001E3 */ beqz $at, other_obj_expand +/* 038EA0 7F004370 00084080 */ sll $t0, $t0, 2 +/* 038EA4 7F004374 3C018005 */ lui $at, %hi(jpt_object_type_expansion) +/* 038EA8 7F004378 00280821 */ addu $at, $at, $t0 +/* 038EAC 7F00437C 8C28EF68 */ lw $t0, %lo(jpt_object_type_expansion)($at) +/* 038EB0 7F004380 01000008 */ jr $t0 +/* 038EB4 7F004384 00000000 */ nop +actor_attr_expand: +/* 038EB8 7F004388 9250000B */ lbu $s0, 0xb($s2) +/* 038EBC 7F00438C 0FC08BF2 */ jal check_if_guardnum_loaded_get_ptr_GUARDdata +/* 038EC0 7F004390 8E440004 */ lw $a0, 4($s2) +/* 038EC4 7F004394 104001D9 */ beqz $v0, other_obj_expand +/* 038EC8 7F004398 00000000 */ nop +/* 038ECC 7F00439C 8C490018 */ lw $t1, 0x18($v0) +/* 038ED0 7F0043A0 112001D6 */ beqz $t1, other_obj_expand +/* 038ED4 7F0043A4 00000000 */ nop +/* 038ED8 7F0043A8 8C59001C */ lw $t9, 0x1c($v0) +/* 038EDC 7F0043AC 132001D3 */ beqz $t9, other_obj_expand +/* 038EE0 7F0043B0 00000000 */ nop +/* 038EE4 7F0043B4 100001D1 */ b other_obj_expand +/* 038EE8 7F0043B8 A0500010 */ sb $s0, 0x10($v0) +actor_expand: +/* 038EEC 7F0043BC 8FAA0278 */ lw $t2, 0x278($sp) +/* 038EF0 7F0043C0 02A02025 */ move $a0, $s5 +/* 038EF4 7F0043C4 02402825 */ move $a1, $s2 +/* 038EF8 7F0043C8 114001CC */ beqz $t2, other_obj_expand +/* 038EFC 7F0043CC 00000000 */ nop +/* 038F00 7F0043D0 0FC08DC3 */ jal expand_09_characters +/* 038F04 7F0043D4 02603025 */ move $a2, $s3 +/* 038F08 7F0043D8 100001C8 */ b other_obj_expand +/* 038F0C 7F0043DC 00000000 */ nop +door_expand: +/* 038F10 7F0043E0 13C001C6 */ beqz $fp, other_obj_expand +/* 038F14 7F0043E4 00000000 */ nop +/* 038F18 7F0043E8 8E4B000C */ lw $t3, 0xc($s2) +/* 038F1C 7F0043EC 02A02025 */ move $a0, $s5 +/* 038F20 7F0043F0 02402825 */ move $a1, $s2 +/* 038F24 7F0043F4 01746824 */ and $t5, $t3, $s4 +/* 038F28 7F0043F8 15A001C0 */ bnez $t5, other_obj_expand +/* 038F2C 7F0043FC 00000000 */ nop +/* 038F30 7F004400 0FC00D20 */ jal sub_GAME_7F003480 +/* 038F34 7F004404 02603025 */ move $a2, $s3 +/* 038F38 7F004408 100001BC */ b other_obj_expand +/* 038F3C 7F00440C 00000000 */ nop +door_scale_expand: +/* 038F40 7F004410 8E4C0004 */ lw $t4, 4($s2) +/* 038F44 7F004414 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 038F48 7F004418 44815000 */ mtc1 $at, $f10 +/* 038F4C 7F00441C 448C3000 */ mtc1 $t4, $f6 +/* 038F50 7F004420 3C018003 */ lui $at, %hi(scale_1_0_item_related) +/* 038F54 7F004424 46803220 */ cvt.s.w $f8, $f6 +/* 038F58 7F004428 460A4403 */ div.s $f16, $f8, $f10 +/* 038F5C 7F00442C 100001B3 */ b other_obj_expand +/* 038F60 7F004430 E430A3C0 */ swc1 $f16, %lo(scale_1_0_item_related)($at) +item_expand: +/* 038F64 7F004434 8FAF0278 */ lw $t7, 0x278($sp) +/* 038F68 7F004438 11E001B0 */ beqz $t7, other_obj_expand +/* 038F6C 7F00443C 00000000 */ nop +/* 038F70 7F004440 8E4E000C */ lw $t6, 0xc($s2) +/* 038F74 7F004444 02A02025 */ move $a0, $s5 +/* 038F78 7F004448 02402825 */ move $a1, $s2 +/* 038F7C 7F00444C 01D4C024 */ and $t8, $t6, $s4 +/* 038F80 7F004450 170001AA */ bnez $t8, other_obj_expand +/* 038F84 7F004454 00000000 */ nop +/* 038F88 7F004458 0FC009CE */ jal expand_08_obj_set_guard_MP_weapons +/* 038F8C 7F00445C 02603025 */ move $a2, $s3 +/* 038F90 7F004460 100001A6 */ b other_obj_expand +/* 038F94 7F004464 00000000 */ nop +key_expand: +/* 038F98 7F004468 8FA80278 */ lw $t0, 0x278($sp) +/* 038F9C 7F00446C 110001A3 */ beqz $t0, other_obj_expand +/* 038FA0 7F004470 00000000 */ nop +/* 038FA4 7F004474 8E49000C */ lw $t1, 0xc($s2) +/* 038FA8 7F004478 02A02025 */ move $a0, $s5 +/* 038FAC 7F00447C 02402825 */ move $a1, $s2 +/* 038FB0 7F004480 0134C824 */ and $t9, $t1, $s4 +/* 038FB4 7F004484 1720019D */ bnez $t9, other_obj_expand +/* 038FB8 7F004488 00000000 */ nop +/* 038FBC 7F00448C 0FC00A87 */ jal jmp_prepare_load_objects +/* 038FC0 7F004490 02603025 */ move $a2, $s3 +/* 038FC4 7F004494 10000199 */ b other_obj_expand +/* 038FC8 7F004498 00000000 */ nop +hat_expand: +/* 038FCC 7F00449C 8FAA0278 */ lw $t2, 0x278($sp) +/* 038FD0 7F0044A0 11400196 */ beqz $t2, other_obj_expand +/* 038FD4 7F0044A4 00000000 */ nop +/* 038FD8 7F0044A8 8E4B000C */ lw $t3, 0xc($s2) +/* 038FDC 7F0044AC 02A02025 */ move $a0, $s5 +/* 038FE0 7F0044B0 02402825 */ move $a1, $s2 +/* 038FE4 7F0044B4 01746824 */ and $t5, $t3, $s4 +/* 038FE8 7F0044B8 15A00190 */ bnez $t5, other_obj_expand +/* 038FEC 7F0044BC 00000000 */ nop +/* 038FF0 7F0044C0 0FC00A6A */ jal MP_weapon_expansion_routine +/* 038FF4 7F0044C4 02603025 */ move $a2, $s3 +/* 038FF8 7F0044C8 1000018C */ b other_obj_expand +/* 038FFC 7F0044CC 00000000 */ nop +surv_camera_expand: +/* 039000 7F0044D0 13C0018A */ beqz $fp, other_obj_expand +/* 039004 7F0044D4 00000000 */ nop +/* 039008 7F0044D8 8E4C000C */ lw $t4, 0xc($s2) +/* 03900C 7F0044DC 02A02025 */ move $a0, $s5 +/* 039010 7F0044E0 02402825 */ move $a1, $s2 +/* 039014 7F0044E4 01947824 */ and $t7, $t4, $s4 +/* 039018 7F0044E8 15E00184 */ bnez $t7, other_obj_expand +/* 03901C 7F0044EC 00000000 */ nop +/* 039020 7F0044F0 0FC00A8F */ jal sub_GAME_7F002A3C +/* 039024 7F0044F4 02603025 */ move $a2, $s3 +/* 039028 7F0044F8 10000180 */ b other_obj_expand +/* 03902C 7F0044FC 00000000 */ nop +autogun_expand: +/* 039030 7F004500 13C0017E */ beqz $fp, other_obj_expand +/* 039034 7F004504 00000000 */ nop +/* 039038 7F004508 8E4E000C */ lw $t6, 0xc($s2) +/* 03903C 7F00450C 02A02025 */ move $a0, $s5 +/* 039040 7F004510 02402825 */ move $a1, $s2 +/* 039044 7F004514 01D4C024 */ and $t8, $t6, $s4 +/* 039048 7F004518 17000178 */ bnez $t8, other_obj_expand +/* 03904C 7F00451C 00000000 */ nop +/* 039050 7F004520 0FC00B16 */ jal expand_type_0D_object_autoturret +/* 039054 7F004524 02603025 */ move $a2, $s3 +/* 039058 7F004528 10000174 */ b other_obj_expand +/* 03905C 7F00452C 00000000 */ nop +rack_expand: +/* 039060 7F004530 13C00172 */ beqz $fp, other_obj_expand +/* 039064 7F004534 00000000 */ nop +/* 039068 7F004538 8E48000C */ lw $t0, 0xc($s2) +/* 03906C 7F00453C 02A02025 */ move $a0, $s5 +/* 039070 7F004540 02402825 */ move $a1, $s2 +/* 039074 7F004544 01144824 */ and $t1, $t0, $s4 +/* 039078 7F004548 1520016C */ bnez $t1, other_obj_expand +/* 03907C 7F00454C 00000000 */ nop +/* 039080 7F004550 0FC00B87 */ jal jmp_prepare_load_objects_0 +/* 039084 7F004554 02603025 */ move $a2, $s3 +/* 039088 7F004558 10000168 */ b other_obj_expand +/* 03908C 7F00455C 00000000 */ nop +single_screen_display_expand: +/* 039090 7F004560 13C00166 */ beqz $fp, other_obj_expand +/* 039094 7F004564 00000000 */ nop +/* 039098 7F004568 8E59000C */ lw $t9, 0xc($s2) +/* 03909C 7F00456C 02A02025 */ move $a0, $s5 +/* 0390A0 7F004570 02402825 */ move $a1, $s2 +/* 0390A4 7F004574 03345024 */ and $t2, $t9, $s4 +/* 0390A8 7F004578 15400160 */ bnez $t2, other_obj_expand +/* 0390AC 7F00457C 00000000 */ nop +/* 0390B0 7F004580 0FC00B8F */ jal sub_GAME_7F002E3C +/* 0390B4 7F004584 02603025 */ move $a2, $s3 +/* 0390B8 7F004588 1000015C */ b other_obj_expand +/* 0390BC 7F00458C 00000000 */ nop +multi_screen_display_expand: +/* 0390C0 7F004590 13C0015A */ beqz $fp, other_obj_expand +/* 0390C4 7F004594 00000000 */ nop +/* 0390C8 7F004598 8E4B000C */ lw $t3, 0xc($s2) +/* 0390CC 7F00459C 02A02025 */ move $a0, $s5 +/* 0390D0 7F0045A0 02402825 */ move $a1, $s2 +/* 0390D4 7F0045A4 01746824 */ and $t5, $t3, $s4 +/* 0390D8 7F0045A8 15A00154 */ bnez $t5, other_obj_expand +/* 0390DC 7F0045AC 00000000 */ nop +/* 0390E0 7F0045B0 0FC00C34 */ jal sub_GAME_7F0030D0 +/* 0390E4 7F0045B4 02603025 */ move $a2, $s3 +/* 0390E8 7F0045B8 10000150 */ b other_obj_expand +/* 0390EC 7F0045BC 00000000 */ nop +body_armor_expand: +/* 0390F0 7F0045C0 13C0014E */ beqz $fp, other_obj_expand +/* 0390F4 7F0045C4 00000000 */ nop +/* 0390F8 7F0045C8 8E4C000C */ lw $t4, 0xc($s2) +/* 0390FC 7F0045CC 01947824 */ and $t7, $t4, $s4 +/* 039100 7F0045D0 15E0014A */ bnez $t7, other_obj_expand +/* 039104 7F0045D4 00000000 */ nop +/* 039108 7F0045D8 8E4E0080 */ lw $t6, 0x80($s2) +/* 03910C 7F0045DC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 039110 7F0045E0 44813000 */ mtc1 $at, $f6 +/* 039114 7F0045E4 448E9000 */ mtc1 $t6, $f18 +/* 039118 7F0045E8 02A02025 */ move $a0, $s5 +/* 03911C 7F0045EC 02402825 */ move $a1, $s2 +/* 039120 7F0045F0 46809120 */ cvt.s.w $f4, $f18 +/* 039124 7F0045F4 02603025 */ move $a2, $s3 +/* 039128 7F0045F8 46062203 */ div.s $f8, $f4, $f6 +/* 03912C 7F0045FC E6480080 */ swc1 $f8, 0x80($s2) +/* 039130 7F004600 C64A0080 */ lwc1 $f10, 0x80($s2) +/* 039134 7F004604 0FC00767 */ jal prepare_load_objects +/* 039138 7F004608 E64A0084 */ swc1 $f10, 0x84($s2) +/* 03913C 7F00460C 1000013B */ b other_obj_expand +/* 039140 7F004610 00000000 */ nop +type2F_tinted_glass: +/* 039144 7F004614 13C00139 */ beqz $fp, other_obj_expand +/* 039148 7F004618 00000000 */ nop +/* 03914C 7F00461C 8E58000C */ lw $t8, 0xc($s2) +/* 039150 7F004620 03144024 */ and $t0, $t8, $s4 +/* 039154 7F004624 15000135 */ bnez $t0, other_obj_expand +/* 039158 7F004628 00000000 */ nop +/* 03915C 7F00462C 8E490008 */ lw $t1, 8($s2) +/* 039160 7F004630 0009C8C0 */ sll $t9, $t1, 3 +/* 039164 7F004634 07230039 */ bgezl $t9, .L7F00471C +/* 039168 7F004638 02A02025 */ move $a0, $s5 +/* 03916C 7F00463C 86420006 */ lh $v0, 6($s2) +/* 039170 7F004640 3C0B8007 */ lui $t3, %hi(ptr_2xxxpresets) +/* 039174 7F004644 27A50118 */ addiu $a1, $sp, 0x118 +/* 039178 7F004648 28412710 */ slti $at, $v0, 0x2710 +/* 03917C 7F00464C 14200032 */ bnez $at, .L7F004718 +/* 039180 7F004650 00025100 */ sll $t2, $v0, 4 +/* 039184 7F004654 8D6B5D1C */ lw $t3, %lo(ptr_2xxxpresets)($t3) +/* 039188 7F004658 01425021 */ addu $t2, $t2, $v0 +/* 03918C 7F00465C 000A5080 */ sll $t2, $t2, 2 +/* 039190 7F004660 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 039194 7F004664 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 039198 7F004668 014B8021 */ addu $s0, $t2, $t3 +/* 03919C 7F00466C 02018021 */ addu $s0, $s0, $at +/* 0391A0 7F004670 0FC006F5 */ jal sub_GAME_7F001BD4 +/* 0391A4 7F004674 02002025 */ move $a0, $s0 +/* 0391A8 7F004678 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0391AC 7F00467C 44810000 */ mtc1 $at, $f0 +/* 0391B0 7F004680 C610000C */ lwc1 $f16, 0xc($s0) +/* 0391B4 7F004684 C7A40118 */ lwc1 $f4, 0x118($sp) +/* 0391B8 7F004688 27A40118 */ addiu $a0, $sp, 0x118 +/* 0391BC 7F00468C 46008482 */ mul.s $f18, $f16, $f0 +/* 0391C0 7F004690 C7B0011C */ lwc1 $f16, 0x11c($sp) +/* 0391C4 7F004694 27A5010C */ addiu $a1, $sp, 0x10c +/* 0391C8 7F004698 46049180 */ add.s $f6, $f18, $f4 +/* 0391CC 7F00469C E7A6010C */ swc1 $f6, 0x10c($sp) +/* 0391D0 7F0046A0 C6080010 */ lwc1 $f8, 0x10($s0) +/* 0391D4 7F0046A4 46004282 */ mul.s $f10, $f8, $f0 +/* 0391D8 7F0046A8 46105480 */ add.s $f18, $f10, $f16 +/* 0391DC 7F0046AC C7AA0120 */ lwc1 $f10, 0x120($sp) +/* 0391E0 7F0046B0 E7B20110 */ swc1 $f18, 0x110($sp) +/* 0391E4 7F0046B4 C6060014 */ lwc1 $f6, 0x14($s0) +/* 0391E8 7F0046B8 46003202 */ mul.s $f8, $f6, $f0 +/* 0391EC 7F0046BC 460A4480 */ add.s $f18, $f8, $f10 +/* 0391F0 7F0046C0 E7B20114 */ swc1 $f18, 0x114($sp) +/* 0391F4 7F0046C4 C606000C */ lwc1 $f6, 0xc($s0) +/* 0391F8 7F0046C8 46060202 */ mul.s $f8, $f0, $f6 +/* 0391FC 7F0046CC 46082481 */ sub.s $f18, $f4, $f8 +/* 039200 7F0046D0 E7B20118 */ swc1 $f18, 0x118($sp) +/* 039204 7F0046D4 C6060010 */ lwc1 $f6, 0x10($s0) +/* 039208 7F0046D8 46060102 */ mul.s $f4, $f0, $f6 +/* 03920C 7F0046DC 46048201 */ sub.s $f8, $f16, $f4 +/* 039210 7F0046E0 E7A8011C */ swc1 $f8, 0x11c($sp) +/* 039214 7F0046E4 C6120014 */ lwc1 $f18, 0x14($s0) +/* 039218 7F0046E8 46120182 */ mul.s $f6, $f0, $f18 +/* 03921C 7F0046EC 46065401 */ sub.s $f16, $f10, $f6 +/* 039220 7F0046F0 0FC2E781 */ jal sub_GAME_7F0B9E04 +/* 039224 7F0046F4 E7B00120 */ swc1 $f16, 0x120($sp) +/* 039228 7F0046F8 8E4D0090 */ lw $t5, 0x90($s2) +/* 03922C 7F0046FC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 039230 7F004700 44819000 */ mtc1 $at, $f18 +/* 039234 7F004704 448D2000 */ mtc1 $t5, $f4 +/* 039238 7F004708 AE42008C */ sw $v0, 0x8c($s2) +/* 03923C 7F00470C 46802220 */ cvt.s.w $f8, $f4 +/* 039240 7F004710 46124283 */ div.s $f10, $f8, $f18 +/* 039244 7F004714 E64A0090 */ swc1 $f10, 0x90($s2) +.L7F004718: +/* 039248 7F004718 02A02025 */ move $a0, $s5 +.L7F00471C: +/* 03924C 7F00471C 02402825 */ move $a1, $s2 +/* 039250 7F004720 0FC00767 */ jal prepare_load_objects +/* 039254 7F004724 02603025 */ move $a2, $s3 +/* 039258 7F004728 100000F4 */ b other_obj_expand +/* 03925C 7F00472C 00000000 */ nop +obj_03_expand: +/* 039260 7F004730 13C000F2 */ beqz $fp, other_obj_expand +/* 039264 7F004734 00000000 */ nop +/* 039268 7F004738 8E4C000C */ lw $t4, 0xc($s2) +/* 03926C 7F00473C 02A02025 */ move $a0, $s5 +/* 039270 7F004740 02402825 */ move $a1, $s2 +/* 039274 7F004744 01947824 */ and $t7, $t4, $s4 +/* 039278 7F004748 15E000EC */ bnez $t7, other_obj_expand +/* 03927C 7F00474C 00000000 */ nop +/* 039280 7F004750 0FC00767 */ jal prepare_load_objects +/* 039284 7F004754 02603025 */ move $a2, $s3 +/* 039288 7F004758 100000E8 */ b other_obj_expand +/* 03928C 7F00475C 00000000 */ nop +ammo_box_expand: +/* 039290 7F004760 0FC26919 */ jal get_num_players +/* 039294 7F004764 24100001 */ li $s0, 1 +/* 039298 7F004768 28410002 */ slti $at, $v0, 2 +/* 03929C 7F00476C 1420000E */ bnez $at, .L7F0047A8 +/* 0392A0 7F004770 00000000 */ nop +/* 0392A4 7F004774 0FC31985 */ jal getPtrMPWeaponSetData +/* 0392A8 7F004778 00000000 */ nop +/* 0392AC 7F00477C 3C0E8007 */ lui $t6, %hi(lastmpweaponnum) +/* 0392B0 7F004780 8DCE9540 */ lw $t6, %lo(lastmpweaponnum)($t6) +/* 0392B4 7F004784 000EC080 */ sll $t8, $t6, 2 +/* 0392B8 7F004788 030EC023 */ subu $t8, $t8, $t6 +/* 0392BC 7F00478C 0018C0C0 */ sll $t8, $t8, 3 +/* 0392C0 7F004790 00581821 */ addu $v1, $v0, $t8 +/* 0392C4 7F004794 8C64000C */ lw $a0, 0xc($v1) +/* 0392C8 7F004798 8C700010 */ lw $s0, 0x10($v1) +/* 0392CC 7F00479C 00044080 */ sll $t0, $a0, 2 +/* 0392D0 7F0047A0 02484821 */ addu $t1, $s2, $t0 +/* 0392D4 7F0047A4 A530007E */ sh $s0, 0x7e($t1) +.L7F0047A8: +/* 0392D8 7F0047A8 1A0000D4 */ blez $s0, other_obj_expand +/* 0392DC 7F0047AC 00000000 */ nop +/* 0392E0 7F0047B0 13C000D2 */ beqz $fp, other_obj_expand +/* 0392E4 7F0047B4 00000000 */ nop +/* 0392E8 7F0047B8 8E59000C */ lw $t9, 0xc($s2) +/* 0392EC 7F0047BC 00008825 */ move $s1, $zero +/* 0392F0 7F0047C0 02408025 */ move $s0, $s2 +/* 0392F4 7F0047C4 03345024 */ and $t2, $t9, $s4 +/* 0392F8 7F0047C8 154000CC */ bnez $t2, other_obj_expand +/* 0392FC 7F0047CC 00000000 */ nop +.L7F0047D0: +/* 039300 7F0047D0 960B0082 */ lhu $t3, 0x82($s0) +/* 039304 7F0047D4 59600007 */ blezl $t3, .L7F0047F4 +/* 039308 7F0047D8 26310004 */ addiu $s1, $s1, 4 +/* 03930C 7F0047DC 96040080 */ lhu $a0, 0x80($s0) +/* 039310 7F0047E0 52C40004 */ beql $s6, $a0, .L7F0047F4 +/* 039314 7F0047E4 26310004 */ addiu $s1, $s1, 4 +/* 039318 7F0047E8 0FC15B0E */ jal load_model +/* 03931C 7F0047EC 00000000 */ nop +/* 039320 7F0047F0 26310004 */ addiu $s1, $s1, 4 +.L7F0047F4: +/* 039324 7F0047F4 1637FFF6 */ bne $s1, $s7, .L7F0047D0 +/* 039328 7F0047F8 26100004 */ addiu $s0, $s0, 4 +/* 03932C 7F0047FC 02A02025 */ move $a0, $s5 +/* 039330 7F004800 02402825 */ move $a1, $s2 +/* 039334 7F004804 0FC00767 */ jal prepare_load_objects +/* 039338 7F004808 02603025 */ move $a2, $s3 +/* 03933C 7F00480C 100000BB */ b other_obj_expand +/* 039340 7F004810 00000000 */ nop +type2D_tank: +/* 039344 7F004814 13C000B9 */ beqz $fp, other_obj_expand +/* 039348 7F004818 00000000 */ nop +/* 03934C 7F00481C 8E4D000C */ lw $t5, 0xc($s2) +/* 039350 7F004820 24040020 */ li $a0, 32 +/* 039354 7F004824 01B46024 */ and $t4, $t5, $s4 +/* 039358 7F004828 158000B4 */ bnez $t4, other_obj_expand +/* 03935C 7F00482C 00000000 */ nop +/* 039360 7F004830 0FC015C4 */ jal set_weapon_model_generated_thrown_object +/* 039364 7F004834 E7B400E8 */ swc1 $f20, 0xe8($sp) +/* 039368 7F004838 02A02025 */ move $a0, $s5 +/* 03936C 7F00483C 02402825 */ move $a1, $s2 +/* 039370 7F004840 0FC00767 */ jal prepare_load_objects +/* 039374 7F004844 02603025 */ move $a2, $s3 +/* 039378 7F004848 E65400C8 */ swc1 $f20, 0xc8($s2) +/* 03937C 7F00484C E65400CC */ swc1 $f20, 0xcc($s2) +/* 039380 7F004850 C64C0038 */ lwc1 $f12, 0x38($s2) +/* 039384 7F004854 0FC16A8C */ jal atan2f +/* 039388 7F004858 C64E0040 */ lwc1 $f14, 0x40($s2) +/* 03938C 7F00485C 3C018005 */ lui $at, %hi(D_8004F024) +/* 039390 7F004860 C426F024 */ lwc1 $f6, %lo(D_8004F024)($at) +/* 039394 7F004864 8E420010 */ lw $v0, 0x10($s2) +/* 039398 7F004868 46003401 */ sub.s $f16, $f6, $f0 +/* 03939C 7F00486C 10400006 */ beqz $v0, .L7F004888 +/* 0393A0 7F004870 E65000DC */ swc1 $f16, 0xdc($s2) +/* 0393A4 7F004874 8C440014 */ lw $a0, 0x14($v0) +/* 0393A8 7F004878 8C450008 */ lw $a1, 8($v0) +/* 0393AC 7F00487C 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0393B0 7F004880 8C460010 */ lw $a2, 0x10($v0) +/* 0393B4 7F004884 E7A000E8 */ swc1 $f0, 0xe8($sp) +.L7F004888: +/* 0393B8 7F004888 C7A200E8 */ lwc1 $f2, 0xe8($sp) +/* 0393BC 7F00488C 3C018005 */ lui $at, %hi(D_8004F028) +/* 0393C0 7F004890 E64200D4 */ swc1 $f2, 0xd4($s2) +/* 0393C4 7F004894 C424F028 */ lwc1 $f4, %lo(D_8004F028)($at) +/* 0393C8 7F004898 46041203 */ div.s $f8, $f2, $f4 +/* 0393CC 7F00489C 10000097 */ b other_obj_expand +/* 0393D0 7F0048A0 E64800D0 */ swc1 $f8, 0xd0($s2) +type27_wheeled_vehicle: +/* 0393D4 7F0048A4 13C00095 */ beqz $fp, other_obj_expand +/* 0393D8 7F0048A8 00000000 */ nop +/* 0393DC 7F0048AC 8E4F000C */ lw $t7, 0xc($s2) +/* 0393E0 7F0048B0 02A02025 */ move $a0, $s5 +/* 0393E4 7F0048B4 02402825 */ move $a1, $s2 +/* 0393E8 7F0048B8 01F47024 */ and $t6, $t7, $s4 +/* 0393EC 7F0048BC 15C0008F */ bnez $t6, other_obj_expand +/* 0393F0 7F0048C0 00000000 */ nop +/* 0393F4 7F0048C4 0FC00767 */ jal prepare_load_objects +/* 0393F8 7F0048C8 02603025 */ move $a2, $s3 +/* 0393FC 7F0048CC 8E440014 */ lw $a0, 0x14($s2) +/* 039400 7F0048D0 5080000E */ beql $a0, $zero, .L7F00490C +/* 039404 7F0048D4 3C01BF80 */ lui $at, 0xbf80 +/* 039408 7F0048D8 8C980008 */ lw $t8, 8($a0) +/* 03940C 7F0048DC 8F080008 */ lw $t0, 8($t8) +/* 039410 7F0048E0 8D050014 */ lw $a1, 0x14($t0) +/* 039414 7F0048E4 50A00009 */ beql $a1, $zero, .L7F00490C +/* 039418 7F0048E8 3C01BF80 */ lui $at, 0xbf80 +/* 03941C 7F0048EC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 039420 7F0048F0 00000000 */ nop +/* 039424 7F0048F4 8E490008 */ lw $t1, 8($s2) +/* 039428 7F0048F8 3C011000 */ li $at, 0x10000000 # 0.000000 +/* 03942C 7F0048FC 0121C824 */ and $t9, $t1, $at +/* 039430 7F004900 2F2A0001 */ sltiu $t2, $t9, 1 +/* 039434 7F004904 AC4A0000 */ sw $t2, ($v0) +/* 039438 7F004908 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.L7F00490C: +/* 03943C 7F00490C 44819000 */ mtc1 $at, $f18 +/* 039440 7F004910 E6540088 */ swc1 $f20, 0x88($s2) +/* 039444 7F004914 E654008C */ swc1 $f20, 0x8c($s2) +/* 039448 7F004918 E6540090 */ swc1 $f20, 0x90($s2) +/* 03944C 7F00491C E6540094 */ swc1 $f20, 0x94($s2) +/* 039450 7F004920 E654009C */ swc1 $f20, 0x9c($s2) +/* 039454 7F004924 E65400A0 */ swc1 $f20, 0xa0($s2) +/* 039458 7F004928 8E440080 */ lw $a0, 0x80($s2) +/* 03945C 7F00492C 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 039460 7F004930 E6520098 */ swc1 $f18, 0x98($s2) +/* 039464 7F004934 240BFFFF */ li $t3, -1 +/* 039468 7F004938 AE420080 */ sw $v0, 0x80($s2) +/* 03946C 7F00493C A6400084 */ sh $zero, 0x84($s2) +/* 039470 7F004940 A64B0086 */ sh $t3, 0x86($s2) +/* 039474 7F004944 AE4000A4 */ sw $zero, 0xa4($s2) +/* 039478 7F004948 AE4000A8 */ sw $zero, 0xa8($s2) +/* 03947C 7F00494C 1000006B */ b other_obj_expand +/* 039480 7F004950 AE4000AC */ sw $zero, 0xac($s2) +type28_aircraft: +/* 039484 7F004954 13C00069 */ beqz $fp, other_obj_expand +/* 039488 7F004958 00000000 */ nop +/* 03948C 7F00495C 8E4D000C */ lw $t5, 0xc($s2) +/* 039490 7F004960 02A02025 */ move $a0, $s5 +/* 039494 7F004964 02402825 */ move $a1, $s2 +/* 039498 7F004968 01B46024 */ and $t4, $t5, $s4 +/* 03949C 7F00496C 15800063 */ bnez $t4, other_obj_expand +/* 0394A0 7F004970 00000000 */ nop +/* 0394A4 7F004974 0FC00767 */ jal prepare_load_objects +/* 0394A8 7F004978 02603025 */ move $a2, $s3 +/* 0394AC 7F00497C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0394B0 7F004980 44810000 */ mtc1 $at, $f0 +/* 0394B4 7F004984 E6540098 */ swc1 $f20, 0x98($s2) +/* 0394B8 7F004988 E654009C */ swc1 $f20, 0x9c($s2) +/* 0394BC 7F00498C E6540088 */ swc1 $f20, 0x88($s2) +/* 0394C0 7F004990 E654008C */ swc1 $f20, 0x8c($s2) +/* 0394C4 7F004994 E6540090 */ swc1 $f20, 0x90($s2) +/* 0394C8 7F004998 E65400A4 */ swc1 $f20, 0xa4($s2) +/* 0394CC 7F00499C 8E440080 */ lw $a0, 0x80($s2) +/* 0394D0 7F0049A0 E64000A0 */ swc1 $f0, 0xa0($s2) +/* 0394D4 7F0049A4 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 0394D8 7F0049A8 E6400094 */ swc1 $f0, 0x94($s2) +/* 0394DC 7F0049AC 240FFFFF */ li $t7, -1 +/* 0394E0 7F0049B0 AE420080 */ sw $v0, 0x80($s2) +/* 0394E4 7F0049B4 A6400084 */ sh $zero, 0x84($s2) +/* 0394E8 7F0049B8 A64F0086 */ sh $t7, 0x86($s2) +/* 0394EC 7F0049BC AE4000A8 */ sw $zero, 0xa8($s2) +/* 0394F0 7F0049C0 AE4000AC */ sw $zero, 0xac($s2) +/* 0394F4 7F0049C4 1000004D */ b other_obj_expand +/* 0394F8 7F0049C8 AE4000B0 */ sw $zero, 0xb0($s2) +tag_expand: +/* 0394FC 7F0049CC 864E0006 */ lh $t6, 6($s2) +/* 039500 7F0049D0 02A02025 */ move $a0, $s5 +/* 039504 7F0049D4 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 039508 7F0049D8 01D32821 */ addu $a1, $t6, $s3 +/* 03950C 7F0049DC 10400004 */ beqz $v0, .L7F0049F0 +/* 039510 7F0049E0 AE42000C */ sw $v0, 0xc($s2) +/* 039514 7F0049E4 8C580064 */ lw $t8, 0x64($v0) +/* 039518 7F0049E8 37080010 */ ori $t0, $t8, 0x10 +/* 03951C 7F0049EC AC480064 */ sw $t0, 0x64($v0) +.L7F0049F0: +/* 039520 7F0049F0 0FC013E2 */ jal set_parent_cur_tag_entry +/* 039524 7F0049F4 02402025 */ move $a0, $s2 +/* 039528 7F0049F8 10000040 */ b other_obj_expand +/* 03952C 7F0049FC 00000000 */ nop +type25_rename: +/* 039530 7F004A00 8E490004 */ lw $t1, 4($s2) +/* 039534 7F004A04 02A02025 */ move $a0, $s5 +/* 039538 7F004A08 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 03953C 7F004A0C 01332821 */ addu $a1, $t1, $s3 +/* 039540 7F004A10 10400004 */ beqz $v0, .L7F004A24 +/* 039544 7F004A14 AE420024 */ sw $v0, 0x24($s2) +/* 039548 7F004A18 8C590064 */ lw $t9, 0x64($v0) +/* 03954C 7F004A1C 372A0400 */ ori $t2, $t9, 0x400 +/* 039550 7F004A20 AC4A0064 */ sw $t2, 0x64($v0) +.L7F004A24: +/* 039554 7F004A24 0FC23628 */ jal sub_GAME_7F08D8A0 +/* 039558 7F004A28 02402025 */ move $a0, $s2 +/* 03955C 7F004A2C 10000033 */ b other_obj_expand +/* 039560 7F004A30 00000000 */ nop +type23_solo_brief_text: +/* 039564 7F004A34 0FC013E8 */ jal setup_briefing_text_entry_parent +/* 039568 7F004A38 02402025 */ move $a0, $s2 +/* 03956C 7F004A3C 1000002F */ b other_obj_expand +/* 039570 7F004A40 00000000 */ nop +type2E_viewport_pos: +/* 039574 7F004A44 8E4B0004 */ lw $t3, 4($s2) +/* 039578 7F004A48 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 03957C 7F004A4C 44810000 */ mtc1 $at, $f0 +/* 039580 7F004A50 448B5000 */ mtc1 $t3, $f10 +/* 039584 7F004A54 8E4C000C */ lw $t4, 0xc($s2) +/* 039588 7F004A58 8E4D0008 */ lw $t5, 8($s2) +/* 03958C 7F004A5C 468051A0 */ cvt.s.w $f6, $f10 +/* 039590 7F004A60 448C5000 */ mtc1 $t4, $f10 +/* 039594 7F004A64 448D2000 */ mtc1 $t5, $f4 +/* 039598 7F004A68 8E4F0010 */ lw $t7, 0x10($s2) +/* 03959C 7F004A6C 8E4E0014 */ lw $t6, 0x14($s2) +/* 0395A0 7F004A70 46802220 */ cvt.s.w $f8, $f4 +/* 0395A4 7F004A74 448F2000 */ mtc1 $t7, $f4 +/* 0395A8 7F004A78 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0395AC 7F004A7C 46003403 */ div.s $f16, $f6, $f0 +/* 0395B0 7F004A80 468051A0 */ cvt.s.w $f6, $f10 +/* 0395B4 7F004A84 46004483 */ div.s $f18, $f8, $f0 +/* 0395B8 7F004A88 E6500004 */ swc1 $f16, 4($s2) +/* 0395BC 7F004A8C 46802220 */ cvt.s.w $f8, $f4 +/* 0395C0 7F004A90 44812000 */ mtc1 $at, $f4 +/* 0395C4 7F004A94 46003403 */ div.s $f16, $f6, $f0 +/* 0395C8 7F004A98 448E3000 */ mtc1 $t6, $f6 +/* 0395CC 7F004A9C E6520008 */ swc1 $f18, 8($s2) +/* 0395D0 7F004AA0 44819000 */ mtc1 $at, $f18 +/* 0395D4 7F004AA4 00000000 */ nop +/* 0395D8 7F004AA8 46124283 */ div.s $f10, $f8, $f18 +/* 0395DC 7F004AAC E650000C */ swc1 $f16, 0xc($s2) +/* 0395E0 7F004AB0 46803420 */ cvt.s.w $f16, $f6 +/* 0395E4 7F004AB4 46048203 */ div.s $f8, $f16, $f4 +/* 0395E8 7F004AB8 E64A0010 */ swc1 $f10, 0x10($s2) +/* 0395EC 7F004ABC 1000000F */ b other_obj_expand +/* 0395F0 7F004AC0 E6480014 */ swc1 $f8, 0x14($s2) +type17_objective_expand: +/* 0395F4 7F004AC4 0FC013EE */ jal add_ptr_to_objective +/* 0395F8 7F004AC8 02402025 */ move $a0, $s2 +/* 0395FC 7F004ACC 1000000B */ b other_obj_expand +/* 039600 7F004AD0 00000000 */ nop +type20_subobjective_expand: +/* 039604 7F004AD4 0FC013FD */ jal set_parent_cur_obj_enter_room +/* 039608 7F004AD8 02402025 */ move $a0, $s2 +/* 03960C 7F004ADC 10000007 */ b other_obj_expand +/* 039610 7F004AE0 00000000 */ nop +type21_subobjective_expand: +/* 039614 7F004AE4 0FC01403 */ jal set_parent_cur_obj_deposited_in_room +/* 039618 7F004AE8 02402025 */ move $a0, $s2 +/* 03961C 7F004AEC 10000003 */ b other_obj_expand +/* 039620 7F004AF0 00000000 */ nop +type1E_subobjective_expand: +/* 039624 7F004AF4 0FC01409 */ jal set_parent_cur_obj_photograph +/* 039628 7F004AF8 02402025 */ move $a0, $s2 +other_obj_expand: +/* 03962C 7F004AFC 0FC15A3D */ jal get_size_of_setup_object_type +/* 039630 7F004B00 02402025 */ move $a0, $s2 +/* 039634 7F004B04 0002C080 */ sll $t8, $v0, 2 +/* 039638 7F004B08 03129021 */ addu $s2, $t8, $s2 +/* 03963C 7F004B0C 92430003 */ lbu $v1, 3($s2) +/* 039640 7F004B10 24010030 */ li $at, 48 +/* 039644 7F004B14 26730001 */ addiu $s3, $s3, 1 +/* 039648 7F004B18 5461FE13 */ bnel $v1, $at, .L7F004368 +/* 03964C 7F004B1C 2468FFFF */ addiu $t0, $v1, -1 +/* 039650 7F004B20 3C128007 */ lui $s2, %hi(ptr_setup_objects) +/* 039654 7F004B24 8E525D0C */ lw $s2, %lo(ptr_setup_objects)($s2) +/* 039658 7F004B28 00009825 */ move $s3, $zero +/* 03965C 7F004B2C 92430003 */ lbu $v1, 3($s2) +.L7F004B30: +/* 039660 7F004B30 24010030 */ li $at, 48 +/* 039664 7F004B34 3C170008 */ lui $s7, 8 +/* 039668 7F004B38 106100CF */ beq $v1, $at, .L7F004E78 +/* 03966C 7F004B3C 24160008 */ li $s6, 8 +/* 039670 7F004B40 241E002B */ li $fp, 43 +/* 039674 7F004B44 24140001 */ li $s4, 1 +/* 039678 7F004B48 2468FFFD */ addiu $t0, $v1, -3 +.L7F004B4C: +/* 03967C 7F004B4C 2D01002D */ sltiu $at, $t0, 0x2d +/* 039680 7F004B50 102000A4 */ beqz $at, .L7F004DE4 +/* 039684 7F004B54 00084080 */ sll $t0, $t0, 2 +/* 039688 7F004B58 3C018005 */ lui $at, %hi(jpt_8004F02C) +/* 03968C 7F004B5C 00280821 */ addu $at, $at, $t0 +/* 039690 7F004B60 8C28F02C */ lw $t0, %lo(jpt_8004F02C)($at) +/* 039694 7F004B64 01000008 */ jr $t0 +/* 039698 7F004B68 00000000 */ nop +.L7F004B6C: +/* 03969C 7F004B6C 8E490010 */ lw $t1, 0x10($s2) +/* 0396A0 7F004B70 1120009C */ beqz $t1, .L7F004DE4 +/* 0396A4 7F004B74 00000000 */ nop +/* 0396A8 7F004B78 8E590008 */ lw $t9, 8($s2) +/* 0396AC 7F004B7C 332A8000 */ andi $t2, $t9, 0x8000 +/* 0396B0 7F004B80 11400098 */ beqz $t2, .L7F004DE4 +/* 0396B4 7F004B84 00000000 */ nop +/* 0396B8 7F004B88 86420006 */ lh $v0, 6($s2) +/* 0396BC 7F004B8C 02A02025 */ move $a0, $s5 +/* 0396C0 7F004B90 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 0396C4 7F004B94 02622821 */ addu $a1, $s3, $v0 +/* 0396C8 7F004B98 10400092 */ beqz $v0, .L7F004DE4 +/* 0396CC 7F004B9C 00408025 */ move $s0, $v0 +/* 0396D0 7F004BA0 8C4B0010 */ lw $t3, 0x10($v0) +/* 0396D4 7F004BA4 1160008F */ beqz $t3, .L7F004DE4 +/* 0396D8 7F004BA8 00000000 */ nop +/* 0396DC 7F004BAC 8E4D0064 */ lw $t5, 0x64($s2) +/* 0396E0 7F004BB0 8E440014 */ lw $a0, 0x14($s2) +/* 0396E4 7F004BB4 01B76025 */ or $t4, $t5, $s7 +/* 0396E8 7F004BB8 AE4C0064 */ sw $t4, 0x64($s2) +/* 0396EC 7F004BBC 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0396F0 7F004BC0 8C850014 */ lw $a1, 0x14($a0) +/* 0396F4 7F004BC4 8E440010 */ lw $a0, 0x10($s2) +/* 0396F8 7F004BC8 0FC0E969 */ jal sub_GAME_7F03A5A4 +/* 0396FC 7F004BCC 8E050010 */ lw $a1, 0x10($s0) +/* 039700 7F004BD0 10000084 */ b .L7F004DE4 +/* 039704 7F004BD4 00000000 */ nop +.L7F004BD8: +/* 039708 7F004BD8 8E4F0004 */ lw $t7, 4($s2) +/* 03970C 7F004BDC 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 039710 7F004BE0 01F32021 */ addu $a0, $t7, $s3 +/* 039714 7F004BE4 8E4E0008 */ lw $t6, 8($s2) +/* 039718 7F004BE8 00408025 */ move $s0, $v0 +/* 03971C 7F004BEC 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 039720 7F004BF0 01D32021 */ addu $a0, $t6, $s3 +/* 039724 7F004BF4 1200007B */ beqz $s0, .L7F004DE4 +/* 039728 7F004BF8 00402825 */ move $a1, $v0 +/* 03972C 7F004BFC 10400079 */ beqz $v0, .L7F004DE4 +/* 039730 7F004C00 00000000 */ nop +/* 039734 7F004C04 92180003 */ lbu $t8, 3($s0) +/* 039738 7F004C08 16D80076 */ bne $s6, $t8, .L7F004DE4 +/* 03973C 7F004C0C 00000000 */ nop +/* 039740 7F004C10 90480003 */ lbu $t0, 3($v0) +/* 039744 7F004C14 16C80073 */ bne $s6, $t0, .L7F004DE4 +/* 039748 7F004C18 00000000 */ nop +/* 03974C 7F004C1C 0FC1475D */ jal link_objects +/* 039750 7F004C20 02002025 */ move $a0, $s0 +/* 039754 7F004C24 1000006F */ b .L7F004DE4 +/* 039758 7F004C28 00000000 */ nop +.L7F004C2C: +/* 03975C 7F004C2C 8E420004 */ lw $v0, 4($s2) +/* 039760 7F004C30 8E510008 */ lw $s1, 8($s2) +/* 039764 7F004C34 02A02025 */ move $a0, $s5 +/* 039768 7F004C38 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 03976C 7F004C3C 02622821 */ addu $a1, $s3, $v0 +/* 039770 7F004C40 00408025 */ move $s0, $v0 +/* 039774 7F004C44 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 039778 7F004C48 02712021 */ addu $a0, $s3, $s1 +/* 03977C 7F004C4C 12000065 */ beqz $s0, .L7F004DE4 +/* 039780 7F004C50 00000000 */ nop +/* 039784 7F004C54 8E030010 */ lw $v1, 0x10($s0) +/* 039788 7F004C58 10600062 */ beqz $v1, .L7F004DE4 +/* 03978C 7F004C5C 00000000 */ nop +/* 039790 7F004C60 10400060 */ beqz $v0, .L7F004DE4 +/* 039794 7F004C64 00000000 */ nop +/* 039798 7F004C68 90490003 */ lbu $t1, 3($v0) +/* 03979C 7F004C6C 1689005D */ bne $s4, $t1, .L7F004DE4 +/* 0397A0 7F004C70 00000000 */ nop +/* 0397A4 7F004C74 8C590010 */ lw $t9, 0x10($v0) +/* 0397A8 7F004C78 1320005A */ beqz $t9, .L7F004DE4 +/* 0397AC 7F004C7C 00000000 */ nop +/* 0397B0 7F004C80 AE430004 */ sw $v1, 4($s2) +/* 0397B4 7F004C84 8C4A0010 */ lw $t2, 0x10($v0) +/* 0397B8 7F004C88 02402025 */ move $a0, $s2 +/* 0397BC 7F004C8C 0FC00644 */ jal sub_GAME_7F001910 +/* 0397C0 7F004C90 AE4A0008 */ sw $t2, 8($s2) +/* 0397C4 7F004C94 8E0B0064 */ lw $t3, 0x64($s0) +/* 0397C8 7F004C98 356D0001 */ ori $t5, $t3, 1 +/* 0397CC 7F004C9C 10000051 */ b .L7F004DE4 +/* 0397D0 7F004CA0 AE0D0064 */ sw $t5, 0x64($s0) +.L7F004CA4: +/* 0397D4 7F004CA4 8E420004 */ lw $v0, 4($s2) +/* 0397D8 7F004CA8 8E4C000C */ lw $t4, 0xc($s2) +/* 0397DC 7F004CAC 8E510008 */ lw $s1, 8($s2) +/* 0397E0 7F004CB0 02A02025 */ move $a0, $s5 +/* 0397E4 7F004CB4 02622821 */ addu $a1, $s3, $v0 +/* 0397E8 7F004CB8 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 0397EC 7F004CBC AFAC0080 */ sw $t4, 0x80($sp) +/* 0397F0 7F004CC0 00408025 */ move $s0, $v0 +/* 0397F4 7F004CC4 02A02025 */ move $a0, $s5 +/* 0397F8 7F004CC8 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 0397FC 7F004CCC 02712821 */ addu $a1, $s3, $s1 +/* 039800 7F004CD0 8FAF0080 */ lw $t7, 0x80($sp) +/* 039804 7F004CD4 00408825 */ move $s1, $v0 +/* 039808 7F004CD8 02A02025 */ move $a0, $s5 +/* 03980C 7F004CDC 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 039810 7F004CE0 026F2821 */ addu $a1, $s3, $t7 +/* 039814 7F004CE4 1200003F */ beqz $s0, .L7F004DE4 +/* 039818 7F004CE8 00000000 */ nop +/* 03981C 7F004CEC 8E0E0010 */ lw $t6, 0x10($s0) +/* 039820 7F004CF0 11C0003C */ beqz $t6, .L7F004DE4 +/* 039824 7F004CF4 00000000 */ nop +/* 039828 7F004CF8 1220003A */ beqz $s1, .L7F004DE4 +/* 03982C 7F004CFC 00000000 */ nop +/* 039830 7F004D00 8E380010 */ lw $t8, 0x10($s1) +/* 039834 7F004D04 13000037 */ beqz $t8, .L7F004DE4 +/* 039838 7F004D08 00000000 */ nop +/* 03983C 7F004D0C 92280003 */ lbu $t0, 3($s1) +/* 039840 7F004D10 17C80034 */ bne $fp, $t0, .L7F004DE4 +/* 039844 7F004D14 00000000 */ nop +/* 039848 7F004D18 10400032 */ beqz $v0, .L7F004DE4 +/* 03984C 7F004D1C 00000000 */ nop +/* 039850 7F004D20 8C490010 */ lw $t1, 0x10($v0) +/* 039854 7F004D24 1120002F */ beqz $t1, .L7F004DE4 +/* 039858 7F004D28 00000000 */ nop +/* 03985C 7F004D2C 90590003 */ lbu $t9, 3($v0) +/* 039860 7F004D30 02402025 */ move $a0, $s2 +/* 039864 7F004D34 1699002B */ bne $s4, $t9, .L7F004DE4 +/* 039868 7F004D38 00000000 */ nop +/* 03986C 7F004D3C AE500004 */ sw $s0, 4($s2) +/* 039870 7F004D40 AE510008 */ sw $s1, 8($s2) +/* 039874 7F004D44 AE42000C */ sw $v0, 0xc($s2) +/* 039878 7F004D48 0FC00650 */ jal sub_GAME_7F001940 +/* 03987C 7F004D4C AFA20074 */ sw $v0, 0x74($sp) +/* 039880 7F004D50 8E0A000C */ lw $t2, 0xc($s0) +/* 039884 7F004D54 8FA30074 */ lw $v1, 0x74($sp) +/* 039888 7F004D58 354B0400 */ ori $t3, $t2, 0x400 +/* 03988C 7F004D5C AE0B000C */ sw $t3, 0xc($s0) +/* 039890 7F004D60 8C6D000C */ lw $t5, 0xc($v1) +/* 039894 7F004D64 35AC0400 */ ori $t4, $t5, 0x400 +/* 039898 7F004D68 1000001E */ b .L7F004DE4 +/* 03989C 7F004D6C AC6C000C */ sw $t4, 0xc($v1) +.L7F004D70: +/* 0398A0 7F004D70 8E420004 */ lw $v0, 4($s2) +/* 0398A4 7F004D74 8E510008 */ lw $s1, 8($s2) +/* 0398A8 7F004D78 02A02025 */ move $a0, $s5 +/* 0398AC 7F004D7C 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 0398B0 7F004D80 02622821 */ addu $a1, $s3, $v0 +/* 0398B4 7F004D84 00408025 */ move $s0, $v0 +/* 0398B8 7F004D88 02A02025 */ move $a0, $s5 +/* 0398BC 7F004D8C 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 0398C0 7F004D90 02712821 */ addu $a1, $s3, $s1 +/* 0398C4 7F004D94 12000013 */ beqz $s0, .L7F004DE4 +/* 0398C8 7F004D98 00000000 */ nop +/* 0398CC 7F004D9C 8E0F0010 */ lw $t7, 0x10($s0) +/* 0398D0 7F004DA0 11E00010 */ beqz $t7, .L7F004DE4 +/* 0398D4 7F004DA4 00000000 */ nop +/* 0398D8 7F004DA8 1040000E */ beqz $v0, .L7F004DE4 +/* 0398DC 7F004DAC 00000000 */ nop +/* 0398E0 7F004DB0 8C4E0010 */ lw $t6, 0x10($v0) +/* 0398E4 7F004DB4 11C0000B */ beqz $t6, .L7F004DE4 +/* 0398E8 7F004DB8 00000000 */ nop +/* 0398EC 7F004DBC 92180003 */ lbu $t8, 3($s0) +/* 0398F0 7F004DC0 02402025 */ move $a0, $s2 +/* 0398F4 7F004DC4 16980007 */ bne $s4, $t8, .L7F004DE4 +/* 0398F8 7F004DC8 00000000 */ nop +/* 0398FC 7F004DCC AE500004 */ sw $s0, 4($s2) +/* 039900 7F004DD0 0FC0064A */ jal sub_GAME_7F001928 +/* 039904 7F004DD4 AE420008 */ sw $v0, 8($s2) +/* 039908 7F004DD8 8E080064 */ lw $t0, 0x64($s0) +/* 03990C 7F004DDC 35092000 */ ori $t1, $t0, 0x2000 +/* 039910 7F004DE0 AE090064 */ sw $t1, 0x64($s0) +.L7F004DE4: +/* 039914 7F004DE4 0FC15A3D */ jal get_size_of_setup_object_type +/* 039918 7F004DE8 02402025 */ move $a0, $s2 +/* 03991C 7F004DEC 0002C880 */ sll $t9, $v0, 2 +/* 039920 7F004DF0 03329021 */ addu $s2, $t9, $s2 +/* 039924 7F004DF4 92430003 */ lbu $v1, 3($s2) +/* 039928 7F004DF8 24010030 */ li $at, 48 +/* 03992C 7F004DFC 26730001 */ addiu $s3, $s3, 1 +/* 039930 7F004E00 5461FF52 */ bnel $v1, $at, .L7F004B4C +/* 039934 7F004E04 2468FFFD */ addiu $t0, $v1, -3 +/* 039938 7F004E08 1000001B */ b .L7F004E78 +/* 03993C 7F004E0C 00000000 */ nop +.L7F004E10: +/* 039940 7F004E10 3C018007 */ lui $at, %hi(ptr_setup_path_tbl) +/* 039944 7F004E14 AC205D00 */ sw $zero, %lo(ptr_setup_path_tbl)($at) +/* 039948 7F004E18 3C018007 */ lui $at, %hi(ptr_setup_path_link) +/* 03994C 7F004E1C AC205D04 */ sw $zero, %lo(ptr_setup_path_link)($at) +/* 039950 7F004E20 3C018007 */ lui $at, %hi(ptr_setup_intro) +/* 039954 7F004E24 AC205D08 */ sw $zero, %lo(ptr_setup_intro)($at) +/* 039958 7F004E28 3C018007 */ lui $at, %hi(ptr_setup_objects) +/* 03995C 7F004E2C AC205D0C */ sw $zero, %lo(ptr_setup_objects)($at) +/* 039960 7F004E30 3C018007 */ lui $at, %hi(ptr_setup_path_sets) +/* 039964 7F004E34 AC205D10 */ sw $zero, %lo(ptr_setup_path_sets)($at) +/* 039968 7F004E38 3C018007 */ lui $at, %hi(ptr_setup_actions) +/* 03996C 7F004E3C AC205D14 */ sw $zero, %lo(ptr_setup_actions)($at) +/* 039970 7F004E40 3C018007 */ lui $at, %hi(ptr_0xxxpresets) +/* 039974 7F004E44 AC205D18 */ sw $zero, %lo(ptr_0xxxpresets)($at) +/* 039978 7F004E48 3C018007 */ lui $at, %hi(ptr_2xxxpresets) +/* 03997C 7F004E4C AC205D1C */ sw $zero, %lo(ptr_2xxxpresets)($at) +/* 039980 7F004E50 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D20) +/* 039984 7F004E54 AC205D20 */ sw $zero, %lo(dword_CODE_bss_80075D20)($at) +/* 039988 7F004E58 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D24) +/* 03998C 7F004E5C AC205D24 */ sw $zero, %lo(dword_CODE_bss_80075D24)($at) +/* 039990 7F004E60 0FC003AE */ jal alloc_init_GUARDdata_entries +/* 039994 7F004E64 00002025 */ move $a0, $zero +/* 039998 7F004E68 0FC01550 */ jal sub_GAME_7F005540 +/* 03999C 7F004E6C 00002025 */ move $a0, $zero +/* 0399A0 7F004E70 0FC01589 */ jal sub_GAME_7F005624 +/* 0399A4 7F004E74 00002025 */ move $a0, $zero +.L7F004E78: +/* 0399A8 7F004E78 0FC00417 */ jal alloc_false_GUARDdata_to_exec_global_action +/* 0399AC 7F004E7C 00000000 */ nop +/* 0399B0 7F004E80 8FBF0044 */ lw $ra, 0x44($sp) +/* 0399B4 7F004E84 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0399B8 7F004E88 8FB00020 */ lw $s0, 0x20($sp) +/* 0399BC 7F004E8C 8FB10024 */ lw $s1, 0x24($sp) +/* 0399C0 7F004E90 8FB20028 */ lw $s2, 0x28($sp) +/* 0399C4 7F004E94 8FB3002C */ lw $s3, 0x2c($sp) +/* 0399C8 7F004E98 8FB40030 */ lw $s4, 0x30($sp) +/* 0399CC 7F004E9C 8FB50034 */ lw $s5, 0x34($sp) +/* 0399D0 7F004EA0 8FB60038 */ lw $s6, 0x38($sp) +/* 0399D4 7F004EA4 8FB7003C */ lw $s7, 0x3c($sp) +/* 0399D8 7F004EA8 8FBE0040 */ lw $fp, 0x40($sp) +/* 0399DC 7F004EAC 03E00008 */ jr $ra +/* 0399E0 7F004EB0 27BD0280 */ addiu $sp, $sp, 0x280 +) +#endif + +#ifdef VERSION_JP + GLOBAL_ASM( +.late_rodata +glabel jpt_object_type_expansion +.word door_expand +.word door_scale_expand +.word obj_03_expand +.word key_expand +.word obj_03_expand +.word surv_camera_expand +.word obj_03_expand +.word item_expand +.word actor_expand +.word single_screen_display_expand +.word multi_screen_display_expand +.word rack_expand +.word autogun_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word hat_expand +.word actor_attr_expand +.word other_obj_expand +.word ammo_box_expand +.word body_armor_expand +.word tag_expand +.word type17_objective_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word type1E_subobjective_expand +.word other_obj_expand +.word type20_subobjective_expand +.word type21_subobjective_expand +.word other_obj_expand +.word type23_solo_brief_text +.word obj_03_expand +.word type25_rename +.word other_obj_expand +.word type27_wheeled_vehicle +.word type28_aircraft +.word obj_03_expand +.word obj_03_expand +.word obj_03_expand +.word other_obj_expand +.word type2D_tank +.word type2E_viewport_pos +.word type2F_tinted_glass + +glabel D_8004F024 +.word 0x40c90fdb +glabel D_8004F028 +.word 0x3e2e147c + +glabel jpt_8004F02C +.word .L7F004B7C +.word .L7F004B7C +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004B7C +.word .L7F004B7C +.word .L7F004DF4 +.word .L7F004B7C +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004BE8 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004C3C +.word .L7F004B7C +.word .L7F004B7C +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004B7C +.word .L7F004DF4 +.word .L7F004D80 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004B7C +.word .L7F004B7C +.word .L7F004B7C +.word .L7F004CB4 +.word .L7F004DF4 +.word .L7F004DF4 +.word .L7F004B7C + + + .text + glabel proplvreset2 +/* 038760 7F003BF0 27BDFD80 */ addiu $sp, $sp, -0x280 +/* 038764 7F003BF4 AFB50034 */ sw $s5, 0x34($sp) +/* 038768 7F003BF8 0080A825 */ move $s5, $a0 +/* 03876C 7F003BFC AFBF0044 */ sw $ra, 0x44($sp) +/* 038770 7F003C00 3C058005 */ lui $a1, %hi(aNochr) # $a1, 0x8005 +/* 038774 7F003C04 AFBE0040 */ sw $fp, 0x40($sp) +/* 038778 7F003C08 AFB7003C */ sw $s7, 0x3c($sp) +/* 03877C 7F003C0C AFB60038 */ sw $s6, 0x38($sp) +/* 038780 7F003C10 AFB40030 */ sw $s4, 0x30($sp) +/* 038784 7F003C14 AFB3002C */ sw $s3, 0x2c($sp) +/* 038788 7F003C18 AFB20028 */ sw $s2, 0x28($sp) +/* 03878C 7F003C1C AFB10024 */ sw $s1, 0x24($sp) +/* 038790 7F003C20 AFB00020 */ sw $s0, 0x20($sp) +/* 038794 7F003C24 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 038798 7F003C28 24A5EDC0 */ addiu $a1, %lo(aNochr) # addiu $a1, $a1, -0x1240 +/* 03879C 7F003C2C 0C0029AC */ jal check_token +/* 0387A0 7F003C30 24040001 */ li $a0, 1 +/* 0387A4 7F003C34 2C460001 */ sltiu $a2, $v0, 1 +/* 0387A8 7F003C38 10C00005 */ beqz $a2, .L7F003C50 +/* 0387AC 7F003C3C 24040001 */ li $a0, 1 +/* 0387B0 7F003C40 3C058005 */ lui $a1, %hi(aNoprop) # $a1, 0x8005 +/* 0387B4 7F003C44 0C0029AC */ jal check_token +/* 0387B8 7F003C48 24A5EDC8 */ addiu $a1, %lo(aNoprop) # addiu $a1, $a1, -0x1238 +/* 0387BC 7F003C4C 2C460001 */ sltiu $a2, $v0, 1 +.L7F003C50: +/* 0387C0 7F003C50 3C058005 */ lui $a1, %hi(aNoobj) # $a1, 0x8005 +/* 0387C4 7F003C54 AFA60278 */ sw $a2, 0x278($sp) +/* 0387C8 7F003C58 24A5EDD0 */ addiu $a1, %lo(aNoobj) # addiu $a1, $a1, -0x1230 +/* 0387CC 7F003C5C 0C0029AC */ jal check_token +/* 0387D0 7F003C60 24040001 */ li $a0, 1 +/* 0387D4 7F003C64 2C430001 */ sltiu $v1, $v0, 1 +/* 0387D8 7F003C68 10600005 */ beqz $v1, .L7F003C80 +/* 0387DC 7F003C6C 24040001 */ li $a0, 1 +/* 0387E0 7F003C70 3C058005 */ lui $a1, %hi(aNoprop_0) # $a1, 0x8005 +/* 0387E4 7F003C74 0C0029AC */ jal check_token +/* 0387E8 7F003C78 24A5EDD8 */ addiu $a1, %lo(aNoprop_0) # addiu $a1, $a1, -0x1228 +/* 0387EC 7F003C7C 2C430001 */ sltiu $v1, $v0, 1 +.L7F003C80: +/* 0387F0 7F003C80 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0387F4 7F003C84 44812000 */ mtc1 $at, $f4 +/* 0387F8 7F003C88 0060F025 */ move $fp, $v1 +/* 0387FC 7F003C8C 3C018003 */ lui $at, %hi(scale_1_0_item_related) # $at, 0x8003 +/* 038800 7F003C90 3C038004 */ lui $v1, %hi(PitemZ_entries+0xFF0) # $v1, 0x8004 +/* 038804 7F003C94 3C028004 */ lui $v0, %hi(PitemZ_entries) # $v0, 0x8004 +/* 038808 7F003C98 2442A258 */ addiu $v0, %lo(PitemZ_entries) # addiu $v0, $v0, -0x5da8 +/* 03880C 7F003C9C 2463B248 */ addiu $v1, %lo(PitemZ_entries+0xFF0) # addiu $v1, $v1, -0x4db8 +/* 038810 7F003CA0 E424A400 */ swc1 $f4, %lo(scale_1_0_item_related)($at) +.L7F003CA4: +/* 038814 7F003CA4 8C4E0000 */ lw $t6, ($v0) +/* 038818 7F003CA8 2442000C */ addiu $v0, $v0, 0xc +/* 03881C 7F003CAC 0043082B */ sltu $at, $v0, $v1 +/* 038820 7F003CB0 1420FFFC */ bnez $at, .L7F003CA4 +/* 038824 7F003CB4 ADC00000 */ sw $zero, ($t6) +/* 038828 7F003CB8 2AA1003B */ slti $at, $s5, 0x3b +/* 03882C 7F003CBC 10200458 */ beqz $at, .L7F004E20 +/* 038830 7F003CC0 00157880 */ sll $t7, $s5, 2 +/* 038834 7F003CC4 3C188003 */ lui $t8, %hi(setup_text_pointers) # $t8, 0x8003 +/* 038838 7F003CC8 27187514 */ addiu $t8, %lo(setup_text_pointers) # addiu $t8, $t8, 0x7514 +/* 03883C 7F003CCC 01F88021 */ addu $s0, $t7, $t8 +/* 038840 7F003CD0 8E020000 */ lw $v0, ($s0) +/* 038844 7F003CD4 3C198005 */ lui $t9, %hi(only_read_by_stageload) # $t9, 0x8005 +/* 038848 7F003CD8 27B10174 */ addiu $s1, $sp, 0x174 +/* 03884C 7F003CDC 10400450 */ beqz $v0, .L7F004E20 +/* 038850 7F003CE0 2739EDE0 */ addiu $t9, %lo(only_read_by_stageload) # addiu $t9, $t9, -0x1220 +/* 038854 7F003CE4 02205025 */ move $t2, $s1 +/* 038858 7F003CE8 272900FC */ addiu $t1, $t9, 0xfc +.L7F003CEC: +/* 03885C 7F003CEC 8F210000 */ lw $at, ($t9) +/* 038860 7F003CF0 2739000C */ addiu $t9, $t9, 0xc +/* 038864 7F003CF4 254A000C */ addiu $t2, $t2, 0xc +/* 038868 7F003CF8 AD41FFF4 */ sw $at, -0xc($t2) +/* 03886C 7F003CFC 8F21FFF8 */ lw $at, -8($t9) +/* 038870 7F003D00 AD41FFF8 */ sw $at, -8($t2) +/* 038874 7F003D04 8F21FFFC */ lw $at, -4($t9) +/* 038878 7F003D08 1729FFF8 */ bne $t9, $t1, .L7F003CEC +/* 03887C 7F003D0C AD41FFFC */ sw $at, -4($t2) +/* 038880 7F003D10 8F210000 */ lw $at, ($t9) +/* 038884 7F003D14 0000A025 */ move $s4, $zero +/* 038888 7F003D18 00009825 */ move $s3, $zero +/* 03888C 7F003D1C AD410000 */ sw $at, ($t2) +/* 038890 7F003D20 904B0000 */ lbu $t3, ($v0) +/* 038894 7F003D24 A3A00175 */ sb $zero, 0x175($sp) +/* 038898 7F003D28 0FC26C01 */ jal get_num_players +/* 03889C 7F003D2C A3AB0174 */ sb $t3, 0x174($sp) +/* 0388A0 7F003D30 28410002 */ slti $at, $v0, 2 +/* 0388A4 7F003D34 14200004 */ bnez $at, .L7F003D48 +/* 0388A8 7F003D38 3C058005 */ lui $a1, %hi(aMp_) # $a1, 0x8005 +/* 0388AC 7F003D3C 24A5EEE0 */ addiu $a1, %lo(aMp_) # addiu $a1, $a1, -0x1120 +/* 0388B0 7F003D40 0C002A03 */ jal string_append_from_obseg_textbank +/* 0388B4 7F003D44 02202025 */ move $a0, $s1 +.L7F003D48: +/* 0388B8 7F003D48 8E050000 */ lw $a1, ($s0) +/* 0388BC 7F003D4C 02202025 */ move $a0, $s1 +/* 0388C0 7F003D50 0C002A03 */ jal string_append_from_obseg_textbank +/* 0388C4 7F003D54 24A50001 */ addiu $a1, $a1, 1 +/* 0388C8 7F003D58 02202025 */ move $a0, $s1 +/* 0388CC 7F003D5C 24050001 */ li $a1, 1 +/* 0388D0 7F003D60 24060100 */ li $a2, 256 +/* 0388D4 7F003D64 0FC2F62D */ jal _load_resource_named_to_membank +/* 0388D8 7F003D68 24070004 */ li $a3, 4 +/* 0388DC 7F003D6C 3C038007 */ lui $v1, %hi(dword_CODE_bss_80075D28) # $v1, 0x8007 +/* 0388E0 7F003D70 24635D68 */ addiu $v1, %lo(dword_CODE_bss_80075D28) # addiu $v1, $v1, 0x5d68 +/* 0388E4 7F003D74 AC620000 */ sw $v0, ($v1) +/* 0388E8 7F003D78 00408825 */ move $s1, $v0 +/* 0388EC 7F003D7C 0FC308A4 */ jal get_textbank_number_for_stagenum +/* 0388F0 7F003D80 02A02025 */ move $a0, $s5 +/* 0388F4 7F003D84 0FC30A6E */ jal load_mission_text_bank +/* 0388F8 7F003D88 00402025 */ move $a0, $v0 +/* 0388FC 7F003D8C 8E2C0000 */ lw $t4, ($s1) +/* 038900 7F003D90 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) # $a3, 0x8007 +/* 038904 7F003D94 24E75D40 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d40 +/* 038908 7F003D98 022C6821 */ addu $t5, $s1, $t4 +/* 03890C 7F003D9C ACED0000 */ sw $t5, ($a3) +/* 038910 7F003DA0 8E2E0004 */ lw $t6, 4($s1) +/* 038914 7F003DA4 022E7821 */ addu $t7, $s1, $t6 +/* 038918 7F003DA8 ACEF0004 */ sw $t7, 4($a3) +/* 03891C 7F003DAC 8E380008 */ lw $t8, 8($s1) +/* 038920 7F003DB0 02384021 */ addu $t0, $s1, $t8 +/* 038924 7F003DB4 ACE80008 */ sw $t0, 8($a3) +/* 038928 7F003DB8 8E29000C */ lw $t1, 0xc($s1) +/* 03892C 7F003DBC 0229C821 */ addu $t9, $s1, $t1 +/* 038930 7F003DC0 ACF9000C */ sw $t9, 0xc($a3) +/* 038934 7F003DC4 8E2A0010 */ lw $t2, 0x10($s1) +/* 038938 7F003DC8 022A5821 */ addu $t3, $s1, $t2 +/* 03893C 7F003DCC ACEB0010 */ sw $t3, 0x10($a3) +/* 038940 7F003DD0 8E2C0014 */ lw $t4, 0x14($s1) +/* 038944 7F003DD4 022C6821 */ addu $t5, $s1, $t4 +/* 038948 7F003DD8 ACED0014 */ sw $t5, 0x14($a3) +/* 03894C 7F003DDC 8E2E0018 */ lw $t6, 0x18($s1) +/* 038950 7F003DE0 022E7821 */ addu $t7, $s1, $t6 +/* 038954 7F003DE4 ACEF0018 */ sw $t7, 0x18($a3) +/* 038958 7F003DE8 8E38001C */ lw $t8, 0x1c($s1) +/* 03895C 7F003DEC 02384021 */ addu $t0, $s1, $t8 +/* 038960 7F003DF0 ACE8001C */ sw $t0, 0x1c($a3) +/* 038964 7F003DF4 8E220020 */ lw $v0, 0x20($s1) +/* 038968 7F003DF8 10400003 */ beqz $v0, .L7F003E08 +/* 03896C 7F003DFC 02224821 */ addu $t1, $s1, $v0 +/* 038970 7F003E00 10000002 */ b .L7F003E0C +/* 038974 7F003E04 ACE90020 */ sw $t1, 0x20($a3) +.L7F003E08: +/* 038978 7F003E08 ACE00020 */ sw $zero, 0x20($a3) +.L7F003E0C: +/* 03897C 7F003E0C 8E220024 */ lw $v0, 0x24($s1) +/* 038980 7F003E10 10400003 */ beqz $v0, .L7F003E20 +/* 038984 7F003E14 0222C821 */ addu $t9, $s1, $v0 +/* 038988 7F003E18 10000002 */ b .L7F003E24 +/* 03898C 7F003E1C ACF90024 */ sw $t9, 0x24($a3) +.L7F003E20: +/* 038990 7F003E20 ACE00024 */ sw $zero, 0x24($a3) +.L7F003E24: +/* 038994 7F003E24 8CE50000 */ lw $a1, ($a3) +/* 038998 7F003E28 50A00010 */ beql $a1, $zero, .L7F003E6C +/* 03899C 7F003E2C 8CE50004 */ lw $a1, 4($a3) +/* 0389A0 7F003E30 8CAA0000 */ lw $t2, ($a1) +/* 0389A4 7F003E34 00001825 */ move $v1, $zero +/* 0389A8 7F003E38 00A01025 */ move $v0, $a1 +/* 0389AC 7F003E3C 0542000B */ bltzl $t2, .L7F003E6C +/* 0389B0 7F003E40 8CE50004 */ lw $a1, 4($a3) +/* 0389B4 7F003E44 8C4B0004 */ lw $t3, 4($v0) +.L7F003E48: +/* 0389B8 7F003E48 24630010 */ addiu $v1, $v1, 0x10 +/* 0389BC 7F003E4C 01716021 */ addu $t4, $t3, $s1 +/* 0389C0 7F003E50 AC4C0004 */ sw $t4, 4($v0) +/* 0389C4 7F003E54 8CED0000 */ lw $t5, ($a3) +/* 0389C8 7F003E58 01A31021 */ addu $v0, $t5, $v1 +/* 0389CC 7F003E5C 8C4E0000 */ lw $t6, ($v0) +/* 0389D0 7F003E60 05C3FFF9 */ bgezl $t6, .L7F003E48 +/* 0389D4 7F003E64 8C4B0004 */ lw $t3, 4($v0) +/* 0389D8 7F003E68 8CE50004 */ lw $a1, 4($a3) +.L7F003E6C: +/* 0389DC 7F003E6C 50A00015 */ beql $a1, $zero, .L7F003EC4 +/* 0389E0 7F003E70 8CE60014 */ lw $a2, 0x14($a3) +/* 0389E4 7F003E74 8CAF0000 */ lw $t7, ($a1) +/* 0389E8 7F003E78 00001825 */ move $v1, $zero +/* 0389EC 7F003E7C 00A01025 */ move $v0, $a1 +/* 0389F0 7F003E80 51E00010 */ beql $t7, $zero, .L7F003EC4 +/* 0389F4 7F003E84 8CE60014 */ lw $a2, 0x14($a3) +/* 0389F8 7F003E88 8CA40000 */ lw $a0, ($a1) +/* 0389FC 7F003E8C 0091C021 */ addu $t8, $a0, $s1 +.L7F003E90: +/* 038A00 7F003E90 AC580000 */ sw $t8, ($v0) +/* 038A04 7F003E94 8CE80004 */ lw $t0, 4($a3) +/* 038A08 7F003E98 01031021 */ addu $v0, $t0, $v1 +/* 038A0C 7F003E9C 8C490004 */ lw $t1, 4($v0) +/* 038A10 7F003EA0 2463000C */ addiu $v1, $v1, 0xc +/* 038A14 7F003EA4 0131C821 */ addu $t9, $t1, $s1 +/* 038A18 7F003EA8 AC590004 */ sw $t9, 4($v0) +/* 038A1C 7F003EAC 8CEA0004 */ lw $t2, 4($a3) +/* 038A20 7F003EB0 01431021 */ addu $v0, $t2, $v1 +/* 038A24 7F003EB4 8C440000 */ lw $a0, ($v0) +/* 038A28 7F003EB8 5480FFF5 */ bnezl $a0, .L7F003E90 +/* 038A2C 7F003EBC 0091C021 */ addu $t8, $a0, $s1 +/* 038A30 7F003EC0 8CE60014 */ lw $a2, 0x14($a3) +.L7F003EC4: +/* 038A34 7F003EC4 50C00010 */ beql $a2, $zero, .L7F003F08 +/* 038A38 7F003EC8 8CE20010 */ lw $v0, 0x10($a3) +/* 038A3C 7F003ECC 8CCB0000 */ lw $t3, ($a2) +/* 038A40 7F003ED0 00002825 */ move $a1, $zero +/* 038A44 7F003ED4 00C01025 */ move $v0, $a2 +/* 038A48 7F003ED8 5160000B */ beql $t3, $zero, .L7F003F08 +/* 038A4C 7F003EDC 8CE20010 */ lw $v0, 0x10($a3) +/* 038A50 7F003EE0 8CC30000 */ lw $v1, ($a2) +/* 038A54 7F003EE4 00716021 */ addu $t4, $v1, $s1 +.L7F003EE8: +/* 038A58 7F003EE8 AC4C0000 */ sw $t4, ($v0) +/* 038A5C 7F003EEC 8CED0014 */ lw $t5, 0x14($a3) +/* 038A60 7F003EF0 24A50008 */ addiu $a1, $a1, 8 +/* 038A64 7F003EF4 01A51021 */ addu $v0, $t5, $a1 +/* 038A68 7F003EF8 8C430000 */ lw $v1, ($v0) +/* 038A6C 7F003EFC 5460FFFA */ bnezl $v1, .L7F003EE8 +/* 038A70 7F003F00 00716021 */ addu $t4, $v1, $s1 +/* 038A74 7F003F04 8CE20010 */ lw $v0, 0x10($a3) +.L7F003F08: +/* 038A78 7F003F08 50400020 */ beql $v0, $zero, .L7F003F8C +/* 038A7C 7F003F0C 8CEA0018 */ lw $t2, 0x18($a3) +/* 038A80 7F003F10 8C4E0000 */ lw $t6, ($v0) +/* 038A84 7F003F14 00002825 */ move $a1, $zero +/* 038A88 7F003F18 00403025 */ move $a2, $v0 +/* 038A8C 7F003F1C 51C0001B */ beql $t6, $zero, .L7F003F8C +/* 038A90 7F003F20 8CEA0018 */ lw $t2, 0x18($a3) +/* 038A94 7F003F24 8C440000 */ lw $a0, ($v0) +/* 038A98 7F003F28 00917821 */ addu $t7, $a0, $s1 +.L7F003F2C: +/* 038A9C 7F003F2C ACCF0000 */ sw $t7, ($a2) +/* 038AA0 7F003F30 8CF80010 */ lw $t8, 0x10($a3) +/* 038AA4 7F003F34 00001825 */ move $v1, $zero +/* 038AA8 7F003F38 03053021 */ addu $a2, $t8, $a1 +/* 038AAC 7F003F3C 8CC40000 */ lw $a0, ($a2) +/* 038AB0 7F003F40 8C880000 */ lw $t0, ($a0) +/* 038AB4 7F003F44 00801025 */ move $v0, $a0 +/* 038AB8 7F003F48 05020009 */ bltzl $t0, .L7F003F70 +/* 038ABC 7F003F4C A4C30006 */ sh $v1, 6($a2) +/* 038AC0 7F003F50 8C490004 */ lw $t1, 4($v0) +.L7F003F54: +/* 038AC4 7F003F54 24630001 */ addiu $v1, $v1, 1 +/* 038AC8 7F003F58 24420004 */ addiu $v0, $v0, 4 +/* 038ACC 7F003F5C 0523FFFD */ bgezl $t1, .L7F003F54 +/* 038AD0 7F003F60 8C490004 */ lw $t1, 4($v0) +/* 038AD4 7F003F64 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) # $a3, 0x8007 +/* 038AD8 7F003F68 24E75D40 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d40 +/* 038ADC 7F003F6C A4C30006 */ sh $v1, 6($a2) +.L7F003F70: +/* 038AE0 7F003F70 8CF90010 */ lw $t9, 0x10($a3) +/* 038AE4 7F003F74 24A50008 */ addiu $a1, $a1, 8 +/* 038AE8 7F003F78 03253021 */ addu $a2, $t9, $a1 +/* 038AEC 7F003F7C 8CC40000 */ lw $a0, ($a2) +/* 038AF0 7F003F80 5480FFEA */ bnezl $a0, .L7F003F2C +/* 038AF4 7F003F84 00917821 */ addu $t7, $a0, $s1 +/* 038AF8 7F003F88 8CEA0018 */ lw $t2, 0x18($a3) +.L7F003F8C: +/* 038AFC 7F003F8C 1140001D */ beqz $t2, .L7F004004 +/* 038B00 7F003F90 00000000 */ nop +/* 038B04 7F003F94 0FC2D4F8 */ jal get_room_data_float2 +/* 038B08 7F003F98 00000000 */ nop +/* 038B0C 7F003F9C 3C108007 */ lui $s0, %hi(ptr_0xxxpresets) # $s0, 0x8007 +/* 038B10 7F003FA0 8E105D58 */ lw $s0, %lo(ptr_0xxxpresets)($s0) +/* 038B14 7F003FA4 46000086 */ mov.s $f2, $f0 +/* 038B18 7F003FA8 8E020024 */ lw $v0, 0x24($s0) +/* 038B1C 7F003FAC 10400015 */ beqz $v0, .L7F004004 +/* 038B20 7F003FB0 00000000 */ nop +/* 038B24 7F003FB4 C6060000 */ lwc1 $f6, ($s0) +.L7F003FB8: +/* 038B28 7F003FB8 C60A0004 */ lwc1 $f10, 4($s0) +/* 038B2C 7F003FBC C6120008 */ lwc1 $f18, 8($s0) +/* 038B30 7F003FC0 46023202 */ mul.s $f8, $f6, $f2 +/* 038B34 7F003FC4 02222821 */ addu $a1, $s1, $v0 +/* 038B38 7F003FC8 AE050024 */ sw $a1, 0x24($s0) +/* 038B3C 7F003FCC 46025402 */ mul.s $f16, $f10, $f2 +/* 038B40 7F003FD0 02002025 */ move $a0, $s0 +/* 038B44 7F003FD4 26060028 */ addiu $a2, $s0, 0x28 +/* 038B48 7F003FD8 46029102 */ mul.s $f4, $f18, $f2 +/* 038B4C 7F003FDC E6080000 */ swc1 $f8, ($s0) +/* 038B50 7F003FE0 E6100004 */ swc1 $f16, 4($s0) +/* 038B54 7F003FE4 E6040008 */ swc1 $f4, 8($s0) +/* 038B58 7F003FE8 0FC019F8 */ jal init_pathtable_something +/* 038B5C 7F003FEC E7A2015C */ swc1 $f2, 0x15c($sp) +/* 038B60 7F003FF0 8E020050 */ lw $v0, 0x50($s0) +/* 038B64 7F003FF4 2610002C */ addiu $s0, $s0, 0x2c +/* 038B68 7F003FF8 C7A2015C */ lwc1 $f2, 0x15c($sp) +/* 038B6C 7F003FFC 5440FFEE */ bnezl $v0, .L7F003FB8 +/* 038B70 7F004000 C6060000 */ lwc1 $f6, ($s0) +.L7F004004: +/* 038B74 7F004004 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) # $a3, 0x8007 +/* 038B78 7F004008 24E75D40 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d40 +/* 038B7C 7F00400C 8CEC001C */ lw $t4, 0x1c($a3) +/* 038B80 7F004010 51800033 */ beql $t4, $zero, .L7F0040E0 +/* 038B84 7F004014 8CE50020 */ lw $a1, 0x20($a3) +/* 038B88 7F004018 0FC2D4F8 */ jal get_room_data_float2 +/* 038B8C 7F00401C 00000000 */ nop +/* 038B90 7F004020 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) # $a3, 0x8007 +/* 038B94 7F004024 24E75D40 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d40 +/* 038B98 7F004028 8CF0001C */ lw $s0, 0x1c($a3) +/* 038B9C 7F00402C 46000086 */ mov.s $f2, $f0 +/* 038BA0 7F004030 8E020024 */ lw $v0, 0x24($s0) +/* 038BA4 7F004034 5040002A */ beql $v0, $zero, .L7F0040E0 +/* 038BA8 7F004038 8CE50020 */ lw $a1, 0x20($a3) +/* 038BAC 7F00403C C6060000 */ lwc1 $f6, ($s0) +.L7F004040: +/* 038BB0 7F004040 C60A0004 */ lwc1 $f10, 4($s0) +/* 038BB4 7F004044 C6120008 */ lwc1 $f18, 8($s0) +/* 038BB8 7F004048 46023202 */ mul.s $f8, $f6, $f2 +/* 038BBC 7F00404C C606002C */ lwc1 $f6, 0x2c($s0) +/* 038BC0 7F004050 02222821 */ addu $a1, $s1, $v0 +/* 038BC4 7F004054 46025402 */ mul.s $f16, $f10, $f2 +/* 038BC8 7F004058 C60A0030 */ lwc1 $f10, 0x30($s0) +/* 038BCC 7F00405C AE050024 */ sw $a1, 0x24($s0) +/* 038BD0 7F004060 46029102 */ mul.s $f4, $f18, $f2 +/* 038BD4 7F004064 E6080000 */ swc1 $f8, ($s0) +/* 038BD8 7F004068 C6120034 */ lwc1 $f18, 0x34($s0) +/* 038BDC 7F00406C 46023202 */ mul.s $f8, $f6, $f2 +/* 038BE0 7F004070 E6100004 */ swc1 $f16, 4($s0) +/* 038BE4 7F004074 C6060038 */ lwc1 $f6, 0x38($s0) +/* 038BE8 7F004078 46025402 */ mul.s $f16, $f10, $f2 +/* 038BEC 7F00407C E6040008 */ swc1 $f4, 8($s0) +/* 038BF0 7F004080 C60A003C */ lwc1 $f10, 0x3c($s0) +/* 038BF4 7F004084 46029102 */ mul.s $f4, $f18, $f2 +/* 038BF8 7F004088 E608002C */ swc1 $f8, 0x2c($s0) +/* 038BFC 7F00408C C6120040 */ lwc1 $f18, 0x40($s0) +/* 038C00 7F004090 46023202 */ mul.s $f8, $f6, $f2 +/* 038C04 7F004094 E6100030 */ swc1 $f16, 0x30($s0) +/* 038C08 7F004098 02002025 */ move $a0, $s0 +/* 038C0C 7F00409C 46025402 */ mul.s $f16, $f10, $f2 +/* 038C10 7F0040A0 E6040034 */ swc1 $f4, 0x34($s0) +/* 038C14 7F0040A4 26060028 */ addiu $a2, $s0, 0x28 +/* 038C18 7F0040A8 46029102 */ mul.s $f4, $f18, $f2 +/* 038C1C 7F0040AC E6080038 */ swc1 $f8, 0x38($s0) +/* 038C20 7F0040B0 E610003C */ swc1 $f16, 0x3c($s0) +/* 038C24 7F0040B4 E6040040 */ swc1 $f4, 0x40($s0) +/* 038C28 7F0040B8 0FC019F8 */ jal init_pathtable_something +/* 038C2C 7F0040BC E7A20150 */ swc1 $f2, 0x150($sp) +/* 038C30 7F0040C0 8E020068 */ lw $v0, 0x68($s0) +/* 038C34 7F0040C4 26100044 */ addiu $s0, $s0, 0x44 +/* 038C38 7F0040C8 C7A20150 */ lwc1 $f2, 0x150($sp) +/* 038C3C 7F0040CC 5440FFDC */ bnezl $v0, .L7F004040 +/* 038C40 7F0040D0 C6060000 */ lwc1 $f6, ($s0) +/* 038C44 7F0040D4 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) # $a3, 0x8007 +/* 038C48 7F0040D8 24E75D40 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d40 +/* 038C4C 7F0040DC 8CE50020 */ lw $a1, 0x20($a3) +.L7F0040E0: +/* 038C50 7F0040E0 50A00010 */ beql $a1, $zero, .L7F004124 +/* 038C54 7F0040E4 8CE50024 */ lw $a1, 0x24($a3) +/* 038C58 7F0040E8 8CAE0000 */ lw $t6, ($a1) +/* 038C5C 7F0040EC 00001025 */ move $v0, $zero +/* 038C60 7F0040F0 00A01825 */ move $v1, $a1 +/* 038C64 7F0040F4 51C0000B */ beql $t6, $zero, .L7F004124 +/* 038C68 7F0040F8 8CE50024 */ lw $a1, 0x24($a3) +/* 038C6C 7F0040FC 8CA40000 */ lw $a0, ($a1) +/* 038C70 7F004100 00917821 */ addu $t7, $a0, $s1 +.L7F004104: +/* 038C74 7F004104 AC6F0000 */ sw $t7, ($v1) +/* 038C78 7F004108 8CF80020 */ lw $t8, 0x20($a3) +/* 038C7C 7F00410C 24420004 */ addiu $v0, $v0, 4 +/* 038C80 7F004110 03021821 */ addu $v1, $t8, $v0 +/* 038C84 7F004114 8C640000 */ lw $a0, ($v1) +/* 038C88 7F004118 5480FFFA */ bnezl $a0, .L7F004104 +/* 038C8C 7F00411C 00917821 */ addu $t7, $a0, $s1 +/* 038C90 7F004120 8CE50024 */ lw $a1, 0x24($a3) +.L7F004124: +/* 038C94 7F004124 50A0000F */ beql $a1, $zero, .L7F004164 +/* 038C98 7F004128 8FAA0278 */ lw $t2, 0x278($sp) +/* 038C9C 7F00412C 8CA80000 */ lw $t0, ($a1) +/* 038CA0 7F004130 00001025 */ move $v0, $zero +/* 038CA4 7F004134 00A01825 */ move $v1, $a1 +/* 038CA8 7F004138 11000009 */ beqz $t0, .L7F004160 +/* 038CAC 7F00413C 01002025 */ move $a0, $t0 +/* 038CB0 7F004140 00914821 */ addu $t1, $a0, $s1 +.L7F004144: +/* 038CB4 7F004144 AC690000 */ sw $t1, ($v1) +/* 038CB8 7F004148 8CF90024 */ lw $t9, 0x24($a3) +/* 038CBC 7F00414C 24420004 */ addiu $v0, $v0, 4 +/* 038CC0 7F004150 03221821 */ addu $v1, $t9, $v0 +/* 038CC4 7F004154 8C640000 */ lw $a0, ($v1) +/* 038CC8 7F004158 5480FFFA */ bnezl $a0, .L7F004144 +/* 038CCC 7F00415C 00914821 */ addu $t1, $a0, $s1 +.L7F004160: +/* 038CD0 7F004160 8FAA0278 */ lw $t2, 0x278($sp) +.L7F004164: +/* 038CD4 7F004164 11400012 */ beqz $t2, .L7F0041B0 +/* 038CD8 7F004168 00000000 */ nop +/* 038CDC 7F00416C 0FC006D4 */ jal load_proptype +/* 038CE0 7F004170 24040009 */ li $a0, 9 +/* 038CE4 7F004174 0FC003AE */ jal alloc_init_GUARDdata_entries +/* 038CE8 7F004178 00402025 */ move $a0, $v0 +/* 038CEC 7F00417C 0FC006D4 */ jal load_proptype +/* 038CF0 7F004180 24040009 */ li $a0, 9 +/* 038CF4 7F004184 0040A025 */ move $s4, $v0 +/* 038CF8 7F004188 0FC006D4 */ jal load_proptype +/* 038CFC 7F00418C 24040008 */ li $a0, 8 +/* 038D00 7F004190 00409825 */ move $s3, $v0 +/* 038D04 7F004194 0FC006D4 */ jal load_proptype +/* 038D08 7F004198 24040004 */ li $a0, 4 +/* 038D0C 7F00419C 02629821 */ addu $s3, $s3, $v0 +/* 038D10 7F0041A0 0FC006D4 */ jal load_proptype +/* 038D14 7F0041A4 24040011 */ li $a0, 17 +/* 038D18 7F0041A8 10000003 */ b .L7F0041B8 +/* 038D1C 7F0041AC 02629821 */ addu $s3, $s3, $v0 +.L7F0041B0: +/* 038D20 7F0041B0 0FC003AE */ jal alloc_init_GUARDdata_entries +/* 038D24 7F0041B4 00002025 */ move $a0, $zero +.L7F0041B8: +/* 038D28 7F0041B8 13C0003A */ beqz $fp, .L7F0042A4 +/* 038D2C 7F0041BC 00000000 */ nop +/* 038D30 7F0041C0 0FC006D4 */ jal load_proptype +/* 038D34 7F0041C4 24040001 */ li $a0, 1 +/* 038D38 7F0041C8 02629821 */ addu $s3, $s3, $v0 +/* 038D3C 7F0041CC 0FC006D4 */ jal load_proptype +/* 038D40 7F0041D0 24040006 */ li $a0, 6 +/* 038D44 7F0041D4 02629821 */ addu $s3, $s3, $v0 +/* 038D48 7F0041D8 0FC006D4 */ jal load_proptype +/* 038D4C 7F0041DC 2404000D */ li $a0, 13 +/* 038D50 7F0041E0 02629821 */ addu $s3, $s3, $v0 +/* 038D54 7F0041E4 0FC006D4 */ jal load_proptype +/* 038D58 7F0041E8 2404000C */ li $a0, 12 +/* 038D5C 7F0041EC 02629821 */ addu $s3, $s3, $v0 +/* 038D60 7F0041F0 0FC006D4 */ jal load_proptype +/* 038D64 7F0041F4 2404000A */ li $a0, 10 +/* 038D68 7F0041F8 02629821 */ addu $s3, $s3, $v0 +/* 038D6C 7F0041FC 0FC006D4 */ jal load_proptype +/* 038D70 7F004200 2404000B */ li $a0, 11 +/* 038D74 7F004204 02629821 */ addu $s3, $s3, $v0 +/* 038D78 7F004208 0FC006D4 */ jal load_proptype +/* 038D7C 7F00420C 24040015 */ li $a0, 21 +/* 038D80 7F004210 02629821 */ addu $s3, $s3, $v0 +/* 038D84 7F004214 0FC006D4 */ jal load_proptype +/* 038D88 7F004218 24040003 */ li $a0, 3 +/* 038D8C 7F00421C 02629821 */ addu $s3, $s3, $v0 +/* 038D90 7F004220 0FC006D4 */ jal load_proptype +/* 038D94 7F004224 2404002A */ li $a0, 42 +/* 038D98 7F004228 02629821 */ addu $s3, $s3, $v0 +/* 038D9C 7F00422C 0FC006D4 */ jal load_proptype +/* 038DA0 7F004230 2404002F */ li $a0, 47 +/* 038DA4 7F004234 02629821 */ addu $s3, $s3, $v0 +/* 038DA8 7F004238 0FC006D4 */ jal load_proptype +/* 038DAC 7F00423C 2404002B */ li $a0, 43 +/* 038DB0 7F004240 02629821 */ addu $s3, $s3, $v0 +/* 038DB4 7F004244 0FC006D4 */ jal load_proptype +/* 038DB8 7F004248 24040029 */ li $a0, 41 +/* 038DBC 7F00424C 02629821 */ addu $s3, $s3, $v0 +/* 038DC0 7F004250 0FC006D4 */ jal load_proptype +/* 038DC4 7F004254 24040024 */ li $a0, 36 +/* 038DC8 7F004258 02629821 */ addu $s3, $s3, $v0 +/* 038DCC 7F00425C 0FC006D4 */ jal load_proptype +/* 038DD0 7F004260 24040005 */ li $a0, 5 +/* 038DD4 7F004264 02629821 */ addu $s3, $s3, $v0 +/* 038DD8 7F004268 0FC006D4 */ jal load_proptype +/* 038DDC 7F00426C 24040007 */ li $a0, 7 +/* 038DE0 7F004270 02629821 */ addu $s3, $s3, $v0 +/* 038DE4 7F004274 0FC006D4 */ jal load_proptype +/* 038DE8 7F004278 24040014 */ li $a0, 20 +/* 038DEC 7F00427C 02629821 */ addu $s3, $s3, $v0 +/* 038DF0 7F004280 0FC006D4 */ jal load_proptype +/* 038DF4 7F004284 24040027 */ li $a0, 39 +/* 038DF8 7F004288 02629821 */ addu $s3, $s3, $v0 +/* 038DFC 7F00428C 0FC006D4 */ jal load_proptype +/* 038E00 7F004290 2404002D */ li $a0, 45 +/* 038E04 7F004294 02629821 */ addu $s3, $s3, $v0 +/* 038E08 7F004298 0FC006D4 */ jal load_proptype +/* 038E0C 7F00429C 24040028 */ li $a0, 40 +/* 038E10 7F0042A0 0282A021 */ addu $s4, $s4, $v0 +.L7F0042A4: +/* 038E14 7F0042A4 0FC01558 */ jal sub_GAME_7F005540 +/* 038E18 7F0042A8 02602025 */ move $a0, $s3 +/* 038E1C 7F0042AC 0FC01591 */ jal sub_GAME_7F005624 +/* 038E20 7F0042B0 02802025 */ move $a0, $s4 +/* 038E24 7F0042B4 0FC26C01 */ jal get_num_players +/* 038E28 7F0042B8 00008025 */ move $s0, $zero +/* 038E2C 7F0042BC 1840000C */ blez $v0, .L7F0042F0 +/* 038E30 7F0042C0 00000000 */ nop +.L7F0042C4: +/* 038E34 7F0042C4 0FC26F2B */ jal set_cur_player +/* 038E38 7F0042C8 02002025 */ move $a0, $s0 +/* 038E3C 7F0042CC 0FC006D4 */ jal load_proptype +/* 038E40 7F0042D0 2404000E */ li $a0, 14 +/* 038E44 7F0042D4 0FC01897 */ jal alloc_additional_item_slots +/* 038E48 7F0042D8 00402025 */ move $a0, $v0 +/* 038E4C 7F0042DC 0FC26C01 */ jal get_num_players +/* 038E50 7F0042E0 26100001 */ addiu $s0, $s0, 1 +/* 038E54 7F0042E4 0202082A */ slt $at, $s0, $v0 +/* 038E58 7F0042E8 1420FFF6 */ bnez $at, .L7F0042C4 +/* 038E5C 7F0042EC 00000000 */ nop +.L7F0042F0: +/* 038E60 7F0042F0 3C0B8007 */ lui $t3, %hi(ptr_setup_objects) # $t3, 0x8007 +/* 038E64 7F0042F4 8D6B5D4C */ lw $t3, %lo(ptr_setup_objects)($t3) +/* 038E68 7F0042F8 116002E3 */ beqz $t3, .L7F004E88 +/* 038E6C 7F0042FC 00000000 */ nop +/* 038E70 7F004300 0FC3021E */ jal get_current_difficulty +/* 038E74 7F004304 00000000 */ nop +/* 038E78 7F004308 244C0004 */ addiu $t4, $v0, 4 +/* 038E7C 7F00430C 240D0001 */ li $t5, 1 +/* 038E80 7F004310 0FC26C01 */ jal get_num_players +/* 038E84 7F004314 018DA004 */ sllv $s4, $t5, $t4 +/* 038E88 7F004318 28410002 */ slti $at, $v0, 2 +/* 038E8C 7F00431C 14200007 */ bnez $at, .L7F00433C +/* 038E90 7F004320 00000000 */ nop +/* 038E94 7F004324 0FC26C01 */ jal get_num_players +/* 038E98 7F004328 00000000 */ nop +/* 038E9C 7F00432C 244E0014 */ addiu $t6, $v0, 0x14 +/* 038EA0 7F004330 240F0001 */ li $t7, 1 +/* 038EA4 7F004334 01CFC004 */ sllv $t8, $t7, $t6 +/* 038EA8 7F004338 0298A025 */ or $s4, $s4, $t8 +.L7F00433C: +/* 038EAC 7F00433C 3C128007 */ lui $s2, %hi(ptr_setup_objects) # $s2, 0x8007 +/* 038EB0 7F004340 8E525D4C */ lw $s2, %lo(ptr_setup_objects)($s2) +/* 038EB4 7F004344 24010030 */ li $at, 48 +/* 038EB8 7F004348 00009825 */ move $s3, $zero +/* 038EBC 7F00434C 92430003 */ lbu $v1, 3($s2) +/* 038EC0 7F004350 24170034 */ li $s7, 52 +/* 038EC4 7F004354 506101FA */ beql $v1, $at, .L7F004B40 +/* 038EC8 7F004358 92430003 */ lbu $v1, 3($s2) +/* 038ECC 7F00435C 4480A000 */ mtc1 $zero, $f20 +/* 038ED0 7F004360 3416FFFF */ li $s6, 65535 +/* 038ED4 7F004364 2468FFFF */ addiu $t0, $v1, -1 +.L7F004368: +/* 038ED8 7F004368 2D01002F */ sltiu $at, $t0, 0x2f +/* 038EDC 7F00436C 102001E7 */ beqz $at, other_obj_expand +/* 038EE0 7F004370 00084080 */ sll $t0, $t0, 2 +/* 038EE4 7F004374 3C018005 */ lui $at, %hi(jpt_object_type_expansion) +/* 038EE8 7F004378 00280821 */ addu $at, $at, $t0 +/* 038EEC 7F00437C 8C28EF98 */ lw $t0, %lo(jpt_object_type_expansion)($at) +/* 038EF0 7F004380 01000008 */ jr $t0 +/* 038EF4 7F004384 00000000 */ nop +actor_attr_expand: +/* 038EF8 7F004388 9250000B */ lbu $s0, 0xb($s2) +/* 038EFC 7F00438C 0FC08CAC */ jal check_if_guardnum_loaded_get_ptr_GUARDdata +/* 038F00 7F004390 8E440004 */ lw $a0, 4($s2) +/* 038F04 7F004394 104001DD */ beqz $v0, other_obj_expand +/* 038F08 7F004398 00000000 */ nop +/* 038F0C 7F00439C 8C490018 */ lw $t1, 0x18($v0) +/* 038F10 7F0043A0 112001DA */ beqz $t1, other_obj_expand +/* 038F14 7F0043A4 00000000 */ nop +/* 038F18 7F0043A8 8C59001C */ lw $t9, 0x1c($v0) +/* 038F1C 7F0043AC 132001D7 */ beqz $t9, other_obj_expand +/* 038F20 7F0043B0 00000000 */ nop +/* 038F24 7F0043B4 100001D5 */ b other_obj_expand +/* 038F28 7F0043B8 A0500010 */ sb $s0, 0x10($v0) +actor_expand: +/* 038F2C 7F0043BC 8FAA0278 */ lw $t2, 0x278($sp) +/* 038F30 7F0043C0 02A02025 */ move $a0, $s5 +/* 038F34 7F0043C4 02402825 */ move $a1, $s2 +/* 038F38 7F0043C8 114001D0 */ beqz $t2, other_obj_expand +/* 038F3C 7F0043CC 00000000 */ nop +/* 038F40 7F0043D0 0FC08E83 */ jal expand_09_characters +/* 038F44 7F0043D4 02603025 */ move $a2, $s3 +/* 038F48 7F0043D8 100001CC */ b other_obj_expand +/* 038F4C 7F0043DC 00000000 */ nop +door_expand: +/* 038F50 7F0043E0 13C001CA */ beqz $fp, other_obj_expand +/* 038F54 7F0043E4 00000000 */ nop +/* 038F58 7F0043E8 8E4B000C */ lw $t3, 0xc($s2) +/* 038F5C 7F0043EC 02A02025 */ move $a0, $s5 +/* 038F60 7F0043F0 02402825 */ move $a1, $s2 +/* 038F64 7F0043F4 01746824 */ and $t5, $t3, $s4 +/* 038F68 7F0043F8 15A001C4 */ bnez $t5, other_obj_expand +/* 038F6C 7F0043FC 00000000 */ nop +/* 038F70 7F004400 0FC00D20 */ jal sub_GAME_7F003480 +/* 038F74 7F004404 02603025 */ move $a2, $s3 +/* 038F78 7F004408 100001C0 */ b other_obj_expand +/* 038F7C 7F00440C 00000000 */ nop +door_scale_expand: +/* 038F80 7F004410 8E4C0004 */ lw $t4, 4($s2) +/* 038F84 7F004414 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 038F88 7F004418 44815000 */ mtc1 $at, $f10 +/* 038F8C 7F00441C 448C3000 */ mtc1 $t4, $f6 +/* 038F90 7F004420 3C018003 */ lui $at, %hi(scale_1_0_item_related) # $at, 0x8003 +/* 038F94 7F004424 46803220 */ cvt.s.w $f8, $f6 +/* 038F98 7F004428 460A4403 */ div.s $f16, $f8, $f10 +/* 038F9C 7F00442C 100001B7 */ b other_obj_expand +/* 038FA0 7F004430 E430A400 */ swc1 $f16, %lo(scale_1_0_item_related)($at) +item_expand: +/* 038FA4 7F004434 8FAF0278 */ lw $t7, 0x278($sp) +/* 038FA8 7F004438 11E001B4 */ beqz $t7, other_obj_expand +/* 038FAC 7F00443C 00000000 */ nop +/* 038FB0 7F004440 8E4E000C */ lw $t6, 0xc($s2) +/* 038FB4 7F004444 02A02025 */ move $a0, $s5 +/* 038FB8 7F004448 02402825 */ move $a1, $s2 +/* 038FBC 7F00444C 01D4C024 */ and $t8, $t6, $s4 +/* 038FC0 7F004450 170001AE */ bnez $t8, other_obj_expand +/* 038FC4 7F004454 00000000 */ nop +/* 038FC8 7F004458 0FC009CE */ jal expand_08_obj_set_guard_MP_weapons +/* 038FCC 7F00445C 02603025 */ move $a2, $s3 +/* 038FD0 7F004460 100001AA */ b other_obj_expand +/* 038FD4 7F004464 00000000 */ nop +key_expand: +/* 038FD8 7F004468 8FA80278 */ lw $t0, 0x278($sp) +/* 038FDC 7F00446C 110001A7 */ beqz $t0, other_obj_expand +/* 038FE0 7F004470 00000000 */ nop +/* 038FE4 7F004474 8E49000C */ lw $t1, 0xc($s2) +/* 038FE8 7F004478 02A02025 */ move $a0, $s5 +/* 038FEC 7F00447C 02402825 */ move $a1, $s2 +/* 038FF0 7F004480 0134C824 */ and $t9, $t1, $s4 +/* 038FF4 7F004484 172001A1 */ bnez $t9, other_obj_expand +/* 038FF8 7F004488 00000000 */ nop +/* 038FFC 7F00448C 0FC00A87 */ jal jmp_prepare_load_objects +/* 039000 7F004490 02603025 */ move $a2, $s3 +/* 039004 7F004494 1000019D */ b other_obj_expand +/* 039008 7F004498 00000000 */ nop +hat_expand: +/* 03900C 7F00449C 8FAA0278 */ lw $t2, 0x278($sp) +/* 039010 7F0044A0 1140019A */ beqz $t2, other_obj_expand +/* 039014 7F0044A4 00000000 */ nop +/* 039018 7F0044A8 8E4B000C */ lw $t3, 0xc($s2) +/* 03901C 7F0044AC 02A02025 */ move $a0, $s5 +/* 039020 7F0044B0 02402825 */ move $a1, $s2 +/* 039024 7F0044B4 01746824 */ and $t5, $t3, $s4 +/* 039028 7F0044B8 15A00194 */ bnez $t5, other_obj_expand +/* 03902C 7F0044BC 00000000 */ nop +/* 039030 7F0044C0 0FC00A6A */ jal MP_weapon_expansion_routine +/* 039034 7F0044C4 02603025 */ move $a2, $s3 +/* 039038 7F0044C8 10000190 */ b other_obj_expand +/* 03903C 7F0044CC 00000000 */ nop +surv_camera_expand: +/* 039040 7F0044D0 13C0018E */ beqz $fp, other_obj_expand +/* 039044 7F0044D4 00000000 */ nop +/* 039048 7F0044D8 8E4C000C */ lw $t4, 0xc($s2) +/* 03904C 7F0044DC 02A02025 */ move $a0, $s5 +/* 039050 7F0044E0 02402825 */ move $a1, $s2 +/* 039054 7F0044E4 01947824 */ and $t7, $t4, $s4 +/* 039058 7F0044E8 15E00188 */ bnez $t7, other_obj_expand +/* 03905C 7F0044EC 00000000 */ nop +/* 039060 7F0044F0 0FC00A8F */ jal sub_GAME_7F002A3C +/* 039064 7F0044F4 02603025 */ move $a2, $s3 +/* 039068 7F0044F8 10000184 */ b other_obj_expand +/* 03906C 7F0044FC 00000000 */ nop +autogun_expand: +/* 039070 7F004500 13C00182 */ beqz $fp, other_obj_expand +/* 039074 7F004504 00000000 */ nop +/* 039078 7F004508 8E4E000C */ lw $t6, 0xc($s2) +/* 03907C 7F00450C 02A02025 */ move $a0, $s5 +/* 039080 7F004510 02402825 */ move $a1, $s2 +/* 039084 7F004514 01D4C024 */ and $t8, $t6, $s4 +/* 039088 7F004518 1700017C */ bnez $t8, other_obj_expand +/* 03908C 7F00451C 00000000 */ nop +/* 039090 7F004520 0FC00B16 */ jal expand_type_0D_object_autoturret +/* 039094 7F004524 02603025 */ move $a2, $s3 +/* 039098 7F004528 10000178 */ b other_obj_expand +/* 03909C 7F00452C 00000000 */ nop +rack_expand: +/* 0390A0 7F004530 13C00176 */ beqz $fp, other_obj_expand +/* 0390A4 7F004534 00000000 */ nop +/* 0390A8 7F004538 8E48000C */ lw $t0, 0xc($s2) +/* 0390AC 7F00453C 02A02025 */ move $a0, $s5 +/* 0390B0 7F004540 02402825 */ move $a1, $s2 +/* 0390B4 7F004544 01144824 */ and $t1, $t0, $s4 +/* 0390B8 7F004548 15200170 */ bnez $t1, other_obj_expand +/* 0390BC 7F00454C 00000000 */ nop +/* 0390C0 7F004550 0FC00B87 */ jal jmp_prepare_load_objects_0 +/* 0390C4 7F004554 02603025 */ move $a2, $s3 +/* 0390C8 7F004558 1000016C */ b other_obj_expand +/* 0390CC 7F00455C 00000000 */ nop +single_screen_display_expand: +/* 0390D0 7F004560 13C0016A */ beqz $fp, other_obj_expand +/* 0390D4 7F004564 00000000 */ nop +/* 0390D8 7F004568 8E59000C */ lw $t9, 0xc($s2) +/* 0390DC 7F00456C 02A02025 */ move $a0, $s5 +/* 0390E0 7F004570 02402825 */ move $a1, $s2 +/* 0390E4 7F004574 03345024 */ and $t2, $t9, $s4 +/* 0390E8 7F004578 15400164 */ bnez $t2, other_obj_expand +/* 0390EC 7F00457C 00000000 */ nop +/* 0390F0 7F004580 0FC00B8F */ jal sub_GAME_7F002E3C +/* 0390F4 7F004584 02603025 */ move $a2, $s3 +/* 0390F8 7F004588 10000160 */ b other_obj_expand +/* 0390FC 7F00458C 00000000 */ nop +multi_screen_display_expand: +/* 039100 7F004590 13C0015E */ beqz $fp, other_obj_expand +/* 039104 7F004594 00000000 */ nop +/* 039108 7F004598 8E4B000C */ lw $t3, 0xc($s2) +/* 03910C 7F00459C 02A02025 */ move $a0, $s5 +/* 039110 7F0045A0 02402825 */ move $a1, $s2 +/* 039114 7F0045A4 01746824 */ and $t5, $t3, $s4 +/* 039118 7F0045A8 15A00158 */ bnez $t5, other_obj_expand +/* 03911C 7F0045AC 00000000 */ nop +/* 039120 7F0045B0 0FC00C34 */ jal sub_GAME_7F0030D0 +/* 039124 7F0045B4 02603025 */ move $a2, $s3 +/* 039128 7F0045B8 10000154 */ b other_obj_expand +/* 03912C 7F0045BC 00000000 */ nop +body_armor_expand: +/* 039130 7F0045C0 13C00152 */ beqz $fp, other_obj_expand +/* 039134 7F0045C4 00000000 */ nop +/* 039138 7F0045C8 8E4C000C */ lw $t4, 0xc($s2) +/* 03913C 7F0045CC 3C0E8005 */ lui $t6, %hi(j_text_trigger) # $t6, 0x8005 +/* 039140 7F0045D0 01947824 */ and $t7, $t4, $s4 +/* 039144 7F0045D4 51E00005 */ beql $t7, $zero, .L7F0045EC +/* 039148 7F0045D8 8E580080 */ lw $t8, 0x80($s2) +/* 03914C 7F0045DC 8DCE8500 */ lw $t6, %lo(j_text_trigger)($t6) +/* 039150 7F0045E0 11C0014A */ beqz $t6, other_obj_expand +/* 039154 7F0045E4 00000000 */ nop +/* 039158 7F0045E8 8E580080 */ lw $t8, 0x80($s2) +.L7F0045EC: +/* 03915C 7F0045EC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 039160 7F0045F0 44813000 */ mtc1 $at, $f6 +/* 039164 7F0045F4 44989000 */ mtc1 $t8, $f18 +/* 039168 7F0045F8 02A02025 */ move $a0, $s5 +/* 03916C 7F0045FC 02402825 */ move $a1, $s2 +/* 039170 7F004600 46809120 */ cvt.s.w $f4, $f18 +/* 039174 7F004604 02603025 */ move $a2, $s3 +/* 039178 7F004608 46062203 */ div.s $f8, $f4, $f6 +/* 03917C 7F00460C E6480080 */ swc1 $f8, 0x80($s2) +/* 039180 7F004610 C64A0080 */ lwc1 $f10, 0x80($s2) +/* 039184 7F004614 0FC00767 */ jal prepare_load_objects +/* 039188 7F004618 E64A0084 */ swc1 $f10, 0x84($s2) +/* 03918C 7F00461C 1000013B */ b other_obj_expand +/* 039190 7F004620 00000000 */ nop +type2F_tinted_glass: +/* 039194 7F004624 13C00139 */ beqz $fp, other_obj_expand +/* 039198 7F004628 00000000 */ nop +/* 03919C 7F00462C 8E48000C */ lw $t0, 0xc($s2) +/* 0391A0 7F004630 01144824 */ and $t1, $t0, $s4 +/* 0391A4 7F004634 15200135 */ bnez $t1, other_obj_expand +/* 0391A8 7F004638 00000000 */ nop +/* 0391AC 7F00463C 8E590008 */ lw $t9, 8($s2) +/* 0391B0 7F004640 001950C0 */ sll $t2, $t9, 3 +/* 0391B4 7F004644 05430039 */ bgezl $t2, .L7F00472C +/* 0391B8 7F004648 02A02025 */ move $a0, $s5 +/* 0391BC 7F00464C 86420006 */ lh $v0, 6($s2) +/* 0391C0 7F004650 3C0D8007 */ lui $t5, %hi(ptr_2xxxpresets) # $t5, 0x8007 +/* 0391C4 7F004654 27A50118 */ addiu $a1, $sp, 0x118 +/* 0391C8 7F004658 28412710 */ slti $at, $v0, 0x2710 +/* 0391CC 7F00465C 14200032 */ bnez $at, .L7F004728 +/* 0391D0 7F004660 00025900 */ sll $t3, $v0, 4 +/* 0391D4 7F004664 8DAD5D5C */ lw $t5, %lo(ptr_2xxxpresets)($t5) +/* 0391D8 7F004668 01625821 */ addu $t3, $t3, $v0 +/* 0391DC 7F00466C 000B5880 */ sll $t3, $t3, 2 +/* 0391E0 7F004670 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 0391E4 7F004674 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 0391E8 7F004678 016D8021 */ addu $s0, $t3, $t5 +/* 0391EC 7F00467C 02018021 */ addu $s0, $s0, $at +/* 0391F0 7F004680 0FC006F5 */ jal sub_GAME_7F001BD4 +/* 0391F4 7F004684 02002025 */ move $a0, $s0 +/* 0391F8 7F004688 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0391FC 7F00468C 44810000 */ mtc1 $at, $f0 +/* 039200 7F004690 C610000C */ lwc1 $f16, 0xc($s0) +/* 039204 7F004694 C7A40118 */ lwc1 $f4, 0x118($sp) +/* 039208 7F004698 27A40118 */ addiu $a0, $sp, 0x118 +/* 03920C 7F00469C 46008482 */ mul.s $f18, $f16, $f0 +/* 039210 7F0046A0 C7B0011C */ lwc1 $f16, 0x11c($sp) +/* 039214 7F0046A4 27A5010C */ addiu $a1, $sp, 0x10c +/* 039218 7F0046A8 46049180 */ add.s $f6, $f18, $f4 +/* 03921C 7F0046AC E7A6010C */ swc1 $f6, 0x10c($sp) +/* 039220 7F0046B0 C6080010 */ lwc1 $f8, 0x10($s0) +/* 039224 7F0046B4 46004282 */ mul.s $f10, $f8, $f0 +/* 039228 7F0046B8 46105480 */ add.s $f18, $f10, $f16 +/* 03922C 7F0046BC C7AA0120 */ lwc1 $f10, 0x120($sp) +/* 039230 7F0046C0 E7B20110 */ swc1 $f18, 0x110($sp) +/* 039234 7F0046C4 C6060014 */ lwc1 $f6, 0x14($s0) +/* 039238 7F0046C8 46003202 */ mul.s $f8, $f6, $f0 +/* 03923C 7F0046CC 460A4480 */ add.s $f18, $f8, $f10 +/* 039240 7F0046D0 E7B20114 */ swc1 $f18, 0x114($sp) +/* 039244 7F0046D4 C606000C */ lwc1 $f6, 0xc($s0) +/* 039248 7F0046D8 46060202 */ mul.s $f8, $f0, $f6 +/* 03924C 7F0046DC 46082481 */ sub.s $f18, $f4, $f8 +/* 039250 7F0046E0 E7B20118 */ swc1 $f18, 0x118($sp) +/* 039254 7F0046E4 C6060010 */ lwc1 $f6, 0x10($s0) +/* 039258 7F0046E8 46060102 */ mul.s $f4, $f0, $f6 +/* 03925C 7F0046EC 46048201 */ sub.s $f8, $f16, $f4 +/* 039260 7F0046F0 E7A8011C */ swc1 $f8, 0x11c($sp) +/* 039264 7F0046F4 C6120014 */ lwc1 $f18, 0x14($s0) +/* 039268 7F0046F8 46120182 */ mul.s $f6, $f0, $f18 +/* 03926C 7F0046FC 46065401 */ sub.s $f16, $f10, $f6 +/* 039270 7F004700 0FC2EA6D */ jal sub_GAME_7F0B9E04 +/* 039274 7F004704 E7B00120 */ swc1 $f16, 0x120($sp) +/* 039278 7F004708 8E4C0090 */ lw $t4, 0x90($s2) +/* 03927C 7F00470C 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 039280 7F004710 44819000 */ mtc1 $at, $f18 +/* 039284 7F004714 448C2000 */ mtc1 $t4, $f4 +/* 039288 7F004718 AE42008C */ sw $v0, 0x8c($s2) +/* 03928C 7F00471C 46802220 */ cvt.s.w $f8, $f4 +/* 039290 7F004720 46124283 */ div.s $f10, $f8, $f18 +/* 039294 7F004724 E64A0090 */ swc1 $f10, 0x90($s2) +.L7F004728: +/* 039298 7F004728 02A02025 */ move $a0, $s5 +.L7F00472C: +/* 03929C 7F00472C 02402825 */ move $a1, $s2 +/* 0392A0 7F004730 0FC00767 */ jal prepare_load_objects +/* 0392A4 7F004734 02603025 */ move $a2, $s3 +/* 0392A8 7F004738 100000F4 */ b other_obj_expand +/* 0392AC 7F00473C 00000000 */ nop +obj_03_expand: +/* 0392B0 7F004740 13C000F2 */ beqz $fp, other_obj_expand +/* 0392B4 7F004744 00000000 */ nop +/* 0392B8 7F004748 8E4F000C */ lw $t7, 0xc($s2) +/* 0392BC 7F00474C 02A02025 */ move $a0, $s5 +/* 0392C0 7F004750 02402825 */ move $a1, $s2 +/* 0392C4 7F004754 01F47024 */ and $t6, $t7, $s4 +/* 0392C8 7F004758 15C000EC */ bnez $t6, other_obj_expand +/* 0392CC 7F00475C 00000000 */ nop +/* 0392D0 7F004760 0FC00767 */ jal prepare_load_objects +/* 0392D4 7F004764 02603025 */ move $a2, $s3 +/* 0392D8 7F004768 100000E8 */ b other_obj_expand +/* 0392DC 7F00476C 00000000 */ nop +ammo_box_expand: +/* 0392E0 7F004770 0FC26C01 */ jal get_num_players +/* 0392E4 7F004774 24100001 */ li $s0, 1 +/* 0392E8 7F004778 28410002 */ slti $at, $v0, 2 +/* 0392EC 7F00477C 1420000E */ bnez $at, .L7F0047B8 +/* 0392F0 7F004780 00000000 */ nop +/* 0392F4 7F004784 0FC31CBD */ jal getPtrMPWeaponSetData +/* 0392F8 7F004788 00000000 */ nop +/* 0392FC 7F00478C 3C188007 */ lui $t8, %hi(lastmpweaponnum) # $t8, 0x8007 +/* 039300 7F004790 8F189580 */ lw $t8, %lo(lastmpweaponnum)($t8) +/* 039304 7F004794 00184080 */ sll $t0, $t8, 2 +/* 039308 7F004798 01184023 */ subu $t0, $t0, $t8 +/* 03930C 7F00479C 000840C0 */ sll $t0, $t0, 3 +/* 039310 7F0047A0 00481821 */ addu $v1, $v0, $t0 +/* 039314 7F0047A4 8C64000C */ lw $a0, 0xc($v1) +/* 039318 7F0047A8 8C700010 */ lw $s0, 0x10($v1) +/* 03931C 7F0047AC 00044880 */ sll $t1, $a0, 2 +/* 039320 7F0047B0 0249C821 */ addu $t9, $s2, $t1 +/* 039324 7F0047B4 A730007E */ sh $s0, 0x7e($t9) +.L7F0047B8: +/* 039328 7F0047B8 1A0000D4 */ blez $s0, other_obj_expand +/* 03932C 7F0047BC 00000000 */ nop +/* 039330 7F0047C0 13C000D2 */ beqz $fp, other_obj_expand +/* 039334 7F0047C4 00000000 */ nop +/* 039338 7F0047C8 8E4A000C */ lw $t2, 0xc($s2) +/* 03933C 7F0047CC 00008825 */ move $s1, $zero +/* 039340 7F0047D0 02408025 */ move $s0, $s2 +/* 039344 7F0047D4 01545824 */ and $t3, $t2, $s4 +/* 039348 7F0047D8 156000CC */ bnez $t3, other_obj_expand +/* 03934C 7F0047DC 00000000 */ nop +.L7F0047E0: +/* 039350 7F0047E0 960D0082 */ lhu $t5, 0x82($s0) +/* 039354 7F0047E4 59A00007 */ blezl $t5, .L7F004804 +/* 039358 7F0047E8 26310004 */ addiu $s1, $s1, 4 +/* 03935C 7F0047EC 96040080 */ lhu $a0, 0x80($s0) +/* 039360 7F0047F0 52C40004 */ beql $s6, $a0, .L7F004804 +/* 039364 7F0047F4 26310004 */ addiu $s1, $s1, 4 +/* 039368 7F0047F8 0FC15C4E */ jal load_model +/* 03936C 7F0047FC 00000000 */ nop +/* 039370 7F004800 26310004 */ addiu $s1, $s1, 4 +.L7F004804: +/* 039374 7F004804 1637FFF6 */ bne $s1, $s7, .L7F0047E0 +/* 039378 7F004808 26100004 */ addiu $s0, $s0, 4 +/* 03937C 7F00480C 02A02025 */ move $a0, $s5 +/* 039380 7F004810 02402825 */ move $a1, $s2 +/* 039384 7F004814 0FC00767 */ jal prepare_load_objects +/* 039388 7F004818 02603025 */ move $a2, $s3 +/* 03938C 7F00481C 100000BB */ b other_obj_expand +/* 039390 7F004820 00000000 */ nop +type2D_tank: +/* 039394 7F004824 13C000B9 */ beqz $fp, other_obj_expand +/* 039398 7F004828 00000000 */ nop +/* 03939C 7F00482C 8E4C000C */ lw $t4, 0xc($s2) +/* 0393A0 7F004830 24040020 */ li $a0, 32 +/* 0393A4 7F004834 01947824 */ and $t7, $t4, $s4 +/* 0393A8 7F004838 15E000B4 */ bnez $t7, other_obj_expand +/* 0393AC 7F00483C 00000000 */ nop +/* 0393B0 7F004840 0FC015CC */ jal set_weapon_model_generated_thrown_object +/* 0393B4 7F004844 E7B400E8 */ swc1 $f20, 0xe8($sp) +/* 0393B8 7F004848 02A02025 */ move $a0, $s5 +/* 0393BC 7F00484C 02402825 */ move $a1, $s2 +/* 0393C0 7F004850 0FC00767 */ jal prepare_load_objects +/* 0393C4 7F004854 02603025 */ move $a2, $s3 +/* 0393C8 7F004858 E65400C8 */ swc1 $f20, 0xc8($s2) +/* 0393CC 7F00485C E65400CC */ swc1 $f20, 0xcc($s2) +/* 0393D0 7F004860 C64C0038 */ lwc1 $f12, 0x38($s2) +/* 0393D4 7F004864 0FC16BD4 */ jal atan2f +/* 0393D8 7F004868 C64E0040 */ lwc1 $f14, 0x40($s2) +/* 0393DC 7F00486C 3C018005 */ lui $at, %hi(D_8004F024) # $at, 0x8005 +/* 0393E0 7F004870 C426F054 */ lwc1 $f6, %lo(D_8004F024)($at) +/* 0393E4 7F004874 8E420010 */ lw $v0, 0x10($s2) +/* 0393E8 7F004878 46003401 */ sub.s $f16, $f6, $f0 +/* 0393EC 7F00487C 10400006 */ beqz $v0, .L7F004898 +/* 0393F0 7F004880 E65000DC */ swc1 $f16, 0xdc($s2) +/* 0393F4 7F004884 8C440014 */ lw $a0, 0x14($v0) +/* 0393F8 7F004888 8C450008 */ lw $a1, 8($v0) +/* 0393FC 7F00488C 0FC2CD48 */ jal sub_GAME_7F0B2970 +/* 039400 7F004890 8C460010 */ lw $a2, 0x10($v0) +/* 039404 7F004894 E7A000E8 */ swc1 $f0, 0xe8($sp) +.L7F004898: +/* 039408 7F004898 C7A200E8 */ lwc1 $f2, 0xe8($sp) +/* 03940C 7F00489C 3C018005 */ lui $at, %hi(D_8004F028) # $at, 0x8005 +/* 039410 7F0048A0 E64200D4 */ swc1 $f2, 0xd4($s2) +/* 039414 7F0048A4 C424F058 */ lwc1 $f4, %lo(D_8004F028)($at) +/* 039418 7F0048A8 46041203 */ div.s $f8, $f2, $f4 +/* 03941C 7F0048AC 10000097 */ b other_obj_expand +/* 039420 7F0048B0 E64800D0 */ swc1 $f8, 0xd0($s2) +type27_wheeled_vehicle: +/* 039424 7F0048B4 13C00095 */ beqz $fp, other_obj_expand +/* 039428 7F0048B8 00000000 */ nop +/* 03942C 7F0048BC 8E4E000C */ lw $t6, 0xc($s2) +/* 039430 7F0048C0 02A02025 */ move $a0, $s5 +/* 039434 7F0048C4 02402825 */ move $a1, $s2 +/* 039438 7F0048C8 01D4C024 */ and $t8, $t6, $s4 +/* 03943C 7F0048CC 1700008F */ bnez $t8, other_obj_expand +/* 039440 7F0048D0 00000000 */ nop +/* 039444 7F0048D4 0FC00767 */ jal prepare_load_objects +/* 039448 7F0048D8 02603025 */ move $a2, $s3 +/* 03944C 7F0048DC 8E440014 */ lw $a0, 0x14($s2) +/* 039450 7F0048E0 5080000E */ beql $a0, $zero, .L7F00491C +/* 039454 7F0048E4 3C01BF80 */ lui $at, 0xbf80 +/* 039458 7F0048E8 8C880008 */ lw $t0, 8($a0) +/* 03945C 7F0048EC 8D090008 */ lw $t1, 8($t0) +/* 039460 7F0048F0 8D250014 */ lw $a1, 0x14($t1) +/* 039464 7F0048F4 50A00009 */ beql $a1, $zero, .L7F00491C +/* 039468 7F0048F8 3C01BF80 */ lui $at, 0xbf80 +/* 03946C 7F0048FC 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 039470 7F004900 00000000 */ nop +/* 039474 7F004904 8E590008 */ lw $t9, 8($s2) +/* 039478 7F004908 3C011000 */ li $at, 0x10000000 # 0.000000 +/* 03947C 7F00490C 03215024 */ and $t2, $t9, $at +/* 039480 7F004910 2D4B0001 */ sltiu $t3, $t2, 1 +/* 039484 7F004914 AC4B0000 */ sw $t3, ($v0) +/* 039488 7F004918 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.L7F00491C: +/* 03948C 7F00491C 44819000 */ mtc1 $at, $f18 +/* 039490 7F004920 E6540088 */ swc1 $f20, 0x88($s2) +/* 039494 7F004924 E654008C */ swc1 $f20, 0x8c($s2) +/* 039498 7F004928 E6540090 */ swc1 $f20, 0x90($s2) +/* 03949C 7F00492C E6540094 */ swc1 $f20, 0x94($s2) +/* 0394A0 7F004930 E654009C */ swc1 $f20, 0x9c($s2) +/* 0394A4 7F004934 E65400A0 */ swc1 $f20, 0xa0($s2) +/* 0394A8 7F004938 8E440080 */ lw $a0, 0x80($s2) +/* 0394AC 7F00493C 0FC0D5A6 */ jal LoadNext_PrevActionBlock +/* 0394B0 7F004940 E6520098 */ swc1 $f18, 0x98($s2) +/* 0394B4 7F004944 240DFFFF */ li $t5, -1 +/* 0394B8 7F004948 AE420080 */ sw $v0, 0x80($s2) +/* 0394BC 7F00494C A6400084 */ sh $zero, 0x84($s2) +/* 0394C0 7F004950 A64D0086 */ sh $t5, 0x86($s2) +/* 0394C4 7F004954 AE4000A4 */ sw $zero, 0xa4($s2) +/* 0394C8 7F004958 AE4000A8 */ sw $zero, 0xa8($s2) +/* 0394CC 7F00495C 1000006B */ b other_obj_expand +/* 0394D0 7F004960 AE4000AC */ sw $zero, 0xac($s2) +type28_aircraft: +/* 0394D4 7F004964 13C00069 */ beqz $fp, other_obj_expand +/* 0394D8 7F004968 00000000 */ nop +/* 0394DC 7F00496C 8E4C000C */ lw $t4, 0xc($s2) +/* 0394E0 7F004970 02A02025 */ move $a0, $s5 +/* 0394E4 7F004974 02402825 */ move $a1, $s2 +/* 0394E8 7F004978 01947824 */ and $t7, $t4, $s4 +/* 0394EC 7F00497C 15E00063 */ bnez $t7, other_obj_expand +/* 0394F0 7F004980 00000000 */ nop +/* 0394F4 7F004984 0FC00767 */ jal prepare_load_objects +/* 0394F8 7F004988 02603025 */ move $a2, $s3 +/* 0394FC 7F00498C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 039500 7F004990 44810000 */ mtc1 $at, $f0 +/* 039504 7F004994 E6540098 */ swc1 $f20, 0x98($s2) +/* 039508 7F004998 E654009C */ swc1 $f20, 0x9c($s2) +/* 03950C 7F00499C E6540088 */ swc1 $f20, 0x88($s2) +/* 039510 7F0049A0 E654008C */ swc1 $f20, 0x8c($s2) +/* 039514 7F0049A4 E6540090 */ swc1 $f20, 0x90($s2) +/* 039518 7F0049A8 E65400A4 */ swc1 $f20, 0xa4($s2) +/* 03951C 7F0049AC 8E440080 */ lw $a0, 0x80($s2) +/* 039520 7F0049B0 E64000A0 */ swc1 $f0, 0xa0($s2) +/* 039524 7F0049B4 0FC0D5A6 */ jal LoadNext_PrevActionBlock +/* 039528 7F0049B8 E6400094 */ swc1 $f0, 0x94($s2) +/* 03952C 7F0049BC 240EFFFF */ li $t6, -1 +/* 039530 7F0049C0 AE420080 */ sw $v0, 0x80($s2) +/* 039534 7F0049C4 A6400084 */ sh $zero, 0x84($s2) +/* 039538 7F0049C8 A64E0086 */ sh $t6, 0x86($s2) +/* 03953C 7F0049CC AE4000A8 */ sw $zero, 0xa8($s2) +/* 039540 7F0049D0 AE4000AC */ sw $zero, 0xac($s2) +/* 039544 7F0049D4 1000004D */ b other_obj_expand +/* 039548 7F0049D8 AE4000B0 */ sw $zero, 0xb0($s2) +tag_expand: +/* 03954C 7F0049DC 86580006 */ lh $t8, 6($s2) +/* 039550 7F0049E0 02A02025 */ move $a0, $s5 +/* 039554 7F0049E4 0FC15CE8 */ jal sub_GAME_7F056EA0 +/* 039558 7F0049E8 03132821 */ addu $a1, $t8, $s3 +/* 03955C 7F0049EC 10400004 */ beqz $v0, .L7F004A00 +/* 039560 7F0049F0 AE42000C */ sw $v0, 0xc($s2) +/* 039564 7F0049F4 8C480064 */ lw $t0, 0x64($v0) +/* 039568 7F0049F8 35090010 */ ori $t1, $t0, 0x10 +/* 03956C 7F0049FC AC490064 */ sw $t1, 0x64($v0) +.L7F004A00: +/* 039570 7F004A00 0FC013E8 */ jal set_parent_cur_tag_entry +/* 039574 7F004A04 02402025 */ move $a0, $s2 +/* 039578 7F004A08 10000040 */ b other_obj_expand +/* 03957C 7F004A0C 00000000 */ nop +type25_rename: +/* 039580 7F004A10 8E590004 */ lw $t9, 4($s2) +/* 039584 7F004A14 02A02025 */ move $a0, $s5 +/* 039588 7F004A18 0FC15CE8 */ jal sub_GAME_7F056EA0 +/* 03958C 7F004A1C 03332821 */ addu $a1, $t9, $s3 +/* 039590 7F004A20 10400004 */ beqz $v0, .L7F004A34 +/* 039594 7F004A24 AE420024 */ sw $v0, 0x24($s2) +/* 039598 7F004A28 8C4A0064 */ lw $t2, 0x64($v0) +/* 03959C 7F004A2C 354B0400 */ ori $t3, $t2, 0x400 +/* 0395A0 7F004A30 AC4B0064 */ sw $t3, 0x64($v0) +.L7F004A34: +/* 0395A4 7F004A34 0FC238E2 */ jal sub_GAME_7F08D8A0 +/* 0395A8 7F004A38 02402025 */ move $a0, $s2 +/* 0395AC 7F004A3C 10000033 */ b other_obj_expand +/* 0395B0 7F004A40 00000000 */ nop +type23_solo_brief_text: +/* 0395B4 7F004A44 0FC013EE */ jal setup_briefing_text_entry_parent +/* 0395B8 7F004A48 02402025 */ move $a0, $s2 +/* 0395BC 7F004A4C 1000002F */ b other_obj_expand +/* 0395C0 7F004A50 00000000 */ nop +type2E_viewport_pos: +/* 0395C4 7F004A54 8E4D0004 */ lw $t5, 4($s2) +/* 0395C8 7F004A58 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0395CC 7F004A5C 44810000 */ mtc1 $at, $f0 +/* 0395D0 7F004A60 448D5000 */ mtc1 $t5, $f10 +/* 0395D4 7F004A64 8E4F000C */ lw $t7, 0xc($s2) +/* 0395D8 7F004A68 8E4C0008 */ lw $t4, 8($s2) +/* 0395DC 7F004A6C 468051A0 */ cvt.s.w $f6, $f10 +/* 0395E0 7F004A70 448F5000 */ mtc1 $t7, $f10 +/* 0395E4 7F004A74 448C2000 */ mtc1 $t4, $f4 +/* 0395E8 7F004A78 8E4E0010 */ lw $t6, 0x10($s2) +/* 0395EC 7F004A7C 8E580014 */ lw $t8, 0x14($s2) +/* 0395F0 7F004A80 46802220 */ cvt.s.w $f8, $f4 +/* 0395F4 7F004A84 448E2000 */ mtc1 $t6, $f4 +/* 0395F8 7F004A88 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0395FC 7F004A8C 46003403 */ div.s $f16, $f6, $f0 +/* 039600 7F004A90 468051A0 */ cvt.s.w $f6, $f10 +/* 039604 7F004A94 46004483 */ div.s $f18, $f8, $f0 +/* 039608 7F004A98 E6500004 */ swc1 $f16, 4($s2) +/* 03960C 7F004A9C 46802220 */ cvt.s.w $f8, $f4 +/* 039610 7F004AA0 44812000 */ mtc1 $at, $f4 +/* 039614 7F004AA4 46003403 */ div.s $f16, $f6, $f0 +/* 039618 7F004AA8 44983000 */ mtc1 $t8, $f6 +/* 03961C 7F004AAC E6520008 */ swc1 $f18, 8($s2) +/* 039620 7F004AB0 44819000 */ mtc1 $at, $f18 +/* 039624 7F004AB4 00000000 */ nop +/* 039628 7F004AB8 46124283 */ div.s $f10, $f8, $f18 +/* 03962C 7F004ABC E650000C */ swc1 $f16, 0xc($s2) +/* 039630 7F004AC0 46803420 */ cvt.s.w $f16, $f6 +/* 039634 7F004AC4 46048203 */ div.s $f8, $f16, $f4 +/* 039638 7F004AC8 E64A0010 */ swc1 $f10, 0x10($s2) +/* 03963C 7F004ACC 1000000F */ b other_obj_expand +/* 039640 7F004AD0 E6480014 */ swc1 $f8, 0x14($s2) +type17_objective_expand: +/* 039644 7F004AD4 0FC013F4 */ jal add_ptr_to_objective +/* 039648 7F004AD8 02402025 */ move $a0, $s2 +/* 03964C 7F004ADC 1000000B */ b other_obj_expand +/* 039650 7F004AE0 00000000 */ nop +type20_subobjective_expand: +/* 039654 7F004AE4 0FC01403 */ jal set_parent_cur_obj_enter_room +/* 039658 7F004AE8 02402025 */ move $a0, $s2 +/* 03965C 7F004AEC 10000007 */ b other_obj_expand +/* 039660 7F004AF0 00000000 */ nop +type21_subobjective_expand: +/* 039664 7F004AF4 0FC01409 */ jal set_parent_cur_obj_deposited_in_room +/* 039668 7F004AF8 02402025 */ move $a0, $s2 +/* 03966C 7F004AFC 10000003 */ b other_obj_expand +/* 039670 7F004B00 00000000 */ nop +type1E_subobjective_expand: +/* 039674 7F004B04 0FC0140F */ jal set_parent_cur_obj_photograph +/* 039678 7F004B08 02402025 */ move $a0, $s2 +other_obj_expand: +/* 03967C 7F004B0C 0FC15B7D */ jal get_size_of_setup_object_type +/* 039680 7F004B10 02402025 */ move $a0, $s2 +/* 039684 7F004B14 00024080 */ sll $t0, $v0, 2 +/* 039688 7F004B18 01129021 */ addu $s2, $t0, $s2 +/* 03968C 7F004B1C 92430003 */ lbu $v1, 3($s2) +/* 039690 7F004B20 24010030 */ li $at, 48 +/* 039694 7F004B24 26730001 */ addiu $s3, $s3, 1 +/* 039698 7F004B28 5461FE0F */ bnel $v1, $at, .L7F004368 +/* 03969C 7F004B2C 2468FFFF */ addiu $t0, $v1, -1 +/* 0396A0 7F004B30 3C128007 */ lui $s2, %hi(ptr_setup_objects) # $s2, 0x8007 +/* 0396A4 7F004B34 8E525D4C */ lw $s2, %lo(ptr_setup_objects)($s2) +/* 0396A8 7F004B38 00009825 */ move $s3, $zero +/* 0396AC 7F004B3C 92430003 */ lbu $v1, 3($s2) +.L7F004B40: +/* 0396B0 7F004B40 24010030 */ li $at, 48 +/* 0396B4 7F004B44 3C170008 */ lui $s7, 8 +/* 0396B8 7F004B48 106100CF */ beq $v1, $at, .L7F004E88 +/* 0396BC 7F004B4C 24160008 */ li $s6, 8 +/* 0396C0 7F004B50 241E002B */ li $fp, 43 +/* 0396C4 7F004B54 24140001 */ li $s4, 1 +/* 0396C8 7F004B58 2469FFFD */ addiu $t1, $v1, -3 +.L7F004B5C: +/* 0396CC 7F004B5C 2D21002D */ sltiu $at, $t1, 0x2d +/* 0396D0 7F004B60 102000A4 */ beqz $at, .L7F004DF4 +/* 0396D4 7F004B64 00094880 */ sll $t1, $t1, 2 +/* 0396D8 7F004B68 3C018005 */ lui $at, %hi(jpt_8004F02C) +/* 0396DC 7F004B6C 00290821 */ addu $at, $at, $t1 +/* 0396E0 7F004B70 8C29F05C */ lw $t1, %lo(jpt_8004F02C)($at) +/* 0396E4 7F004B74 01200008 */ jr $t1 +/* 0396E8 7F004B78 00000000 */ nop +.L7F004B7C: +/* 0396EC 7F004B7C 8E590010 */ lw $t9, 0x10($s2) +/* 0396F0 7F004B80 1320009C */ beqz $t9, .L7F004DF4 +/* 0396F4 7F004B84 00000000 */ nop +/* 0396F8 7F004B88 8E4A0008 */ lw $t2, 8($s2) +/* 0396FC 7F004B8C 314B8000 */ andi $t3, $t2, 0x8000 +/* 039700 7F004B90 11600098 */ beqz $t3, .L7F004DF4 +/* 039704 7F004B94 00000000 */ nop +/* 039708 7F004B98 86420006 */ lh $v0, 6($s2) +/* 03970C 7F004B9C 02A02025 */ move $a0, $s5 +/* 039710 7F004BA0 0FC15CE8 */ jal sub_GAME_7F056EA0 +/* 039714 7F004BA4 02622821 */ addu $a1, $s3, $v0 +/* 039718 7F004BA8 10400092 */ beqz $v0, .L7F004DF4 +/* 03971C 7F004BAC 00408025 */ move $s0, $v0 +/* 039720 7F004BB0 8C4D0010 */ lw $t5, 0x10($v0) +/* 039724 7F004BB4 11A0008F */ beqz $t5, .L7F004DF4 +/* 039728 7F004BB8 00000000 */ nop +/* 03972C 7F004BBC 8E4C0064 */ lw $t4, 0x64($s2) +/* 039730 7F004BC0 8E440014 */ lw $a0, 0x14($s2) +/* 039734 7F004BC4 01977825 */ or $t7, $t4, $s7 +/* 039738 7F004BC8 AE4F0064 */ sw $t7, 0x64($s2) +/* 03973C 7F004BCC 0FC1B51A */ jal set_obj_instance_controller_scale +/* 039740 7F004BD0 8C850014 */ lw $a1, 0x14($a0) +/* 039744 7F004BD4 8E440010 */ lw $a0, 0x10($s2) +/* 039748 7F004BD8 0FC0EA29 */ jal sub_GAME_7F03A5A4 +/* 03974C 7F004BDC 8E050010 */ lw $a1, 0x10($s0) +/* 039750 7F004BE0 10000084 */ b .L7F004DF4 +/* 039754 7F004BE4 00000000 */ nop +.L7F004BE8: +/* 039758 7F004BE8 8E4E0004 */ lw $t6, 4($s2) +/* 03975C 7F004BEC 0FC15BE2 */ jal sub_GAME_7F056A88 +/* 039760 7F004BF0 01D32021 */ addu $a0, $t6, $s3 +/* 039764 7F004BF4 8E580008 */ lw $t8, 8($s2) +/* 039768 7F004BF8 00408025 */ move $s0, $v0 +/* 03976C 7F004BFC 0FC15BE2 */ jal sub_GAME_7F056A88 +/* 039770 7F004C00 03132021 */ addu $a0, $t8, $s3 +/* 039774 7F004C04 1200007B */ beqz $s0, .L7F004DF4 +/* 039778 7F004C08 00402825 */ move $a1, $v0 +/* 03977C 7F004C0C 10400079 */ beqz $v0, .L7F004DF4 +/* 039780 7F004C10 00000000 */ nop +/* 039784 7F004C14 92080003 */ lbu $t0, 3($s0) +/* 039788 7F004C18 16C80076 */ bne $s6, $t0, .L7F004DF4 +/* 03978C 7F004C1C 00000000 */ nop +/* 039790 7F004C20 90490003 */ lbu $t1, 3($v0) +/* 039794 7F004C24 16C90073 */ bne $s6, $t1, .L7F004DF4 +/* 039798 7F004C28 00000000 */ nop +/* 03979C 7F004C2C 0FC1489C */ jal link_objects +/* 0397A0 7F004C30 02002025 */ move $a0, $s0 +/* 0397A4 7F004C34 1000006F */ b .L7F004DF4 +/* 0397A8 7F004C38 00000000 */ nop +.L7F004C3C: +/* 0397AC 7F004C3C 8E420004 */ lw $v0, 4($s2) +/* 0397B0 7F004C40 8E510008 */ lw $s1, 8($s2) +/* 0397B4 7F004C44 02A02025 */ move $a0, $s5 +/* 0397B8 7F004C48 0FC15CE8 */ jal sub_GAME_7F056EA0 +/* 0397BC 7F004C4C 02622821 */ addu $a1, $s3, $v0 +/* 0397C0 7F004C50 00408025 */ move $s0, $v0 +/* 0397C4 7F004C54 0FC15BE2 */ jal sub_GAME_7F056A88 +/* 0397C8 7F004C58 02712021 */ addu $a0, $s3, $s1 +/* 0397CC 7F004C5C 12000065 */ beqz $s0, .L7F004DF4 +/* 0397D0 7F004C60 00000000 */ nop +/* 0397D4 7F004C64 8E030010 */ lw $v1, 0x10($s0) +/* 0397D8 7F004C68 10600062 */ beqz $v1, .L7F004DF4 +/* 0397DC 7F004C6C 00000000 */ nop +/* 0397E0 7F004C70 10400060 */ beqz $v0, .L7F004DF4 +/* 0397E4 7F004C74 00000000 */ nop +/* 0397E8 7F004C78 90590003 */ lbu $t9, 3($v0) +/* 0397EC 7F004C7C 1699005D */ bne $s4, $t9, .L7F004DF4 +/* 0397F0 7F004C80 00000000 */ nop +/* 0397F4 7F004C84 8C4A0010 */ lw $t2, 0x10($v0) +/* 0397F8 7F004C88 1140005A */ beqz $t2, .L7F004DF4 +/* 0397FC 7F004C8C 00000000 */ nop +/* 039800 7F004C90 AE430004 */ sw $v1, 4($s2) +/* 039804 7F004C94 8C4B0010 */ lw $t3, 0x10($v0) +/* 039808 7F004C98 02402025 */ move $a0, $s2 +/* 03980C 7F004C9C 0FC00644 */ jal sub_GAME_7F001910 +/* 039810 7F004CA0 AE4B0008 */ sw $t3, 8($s2) +/* 039814 7F004CA4 8E0D0064 */ lw $t5, 0x64($s0) +/* 039818 7F004CA8 35AC0001 */ ori $t4, $t5, 1 +/* 03981C 7F004CAC 10000051 */ b .L7F004DF4 +/* 039820 7F004CB0 AE0C0064 */ sw $t4, 0x64($s0) +.L7F004CB4: +/* 039824 7F004CB4 8E420004 */ lw $v0, 4($s2) +/* 039828 7F004CB8 8E4F000C */ lw $t7, 0xc($s2) +/* 03982C 7F004CBC 8E510008 */ lw $s1, 8($s2) +/* 039830 7F004CC0 02A02025 */ move $a0, $s5 +/* 039834 7F004CC4 02622821 */ addu $a1, $s3, $v0 +/* 039838 7F004CC8 0FC15CE8 */ jal sub_GAME_7F056EA0 +/* 03983C 7F004CCC AFAF0080 */ sw $t7, 0x80($sp) +/* 039840 7F004CD0 00408025 */ move $s0, $v0 +/* 039844 7F004CD4 02A02025 */ move $a0, $s5 +/* 039848 7F004CD8 0FC15CE8 */ jal sub_GAME_7F056EA0 +/* 03984C 7F004CDC 02712821 */ addu $a1, $s3, $s1 +/* 039850 7F004CE0 8FAE0080 */ lw $t6, 0x80($sp) +/* 039854 7F004CE4 00408825 */ move $s1, $v0 +/* 039858 7F004CE8 02A02025 */ move $a0, $s5 +/* 03985C 7F004CEC 0FC15CE8 */ jal sub_GAME_7F056EA0 +/* 039860 7F004CF0 026E2821 */ addu $a1, $s3, $t6 +/* 039864 7F004CF4 1200003F */ beqz $s0, .L7F004DF4 +/* 039868 7F004CF8 00000000 */ nop +/* 03986C 7F004CFC 8E180010 */ lw $t8, 0x10($s0) +/* 039870 7F004D00 1300003C */ beqz $t8, .L7F004DF4 +/* 039874 7F004D04 00000000 */ nop +/* 039878 7F004D08 1220003A */ beqz $s1, .L7F004DF4 +/* 03987C 7F004D0C 00000000 */ nop +/* 039880 7F004D10 8E280010 */ lw $t0, 0x10($s1) +/* 039884 7F004D14 11000037 */ beqz $t0, .L7F004DF4 +/* 039888 7F004D18 00000000 */ nop +/* 03988C 7F004D1C 92290003 */ lbu $t1, 3($s1) +/* 039890 7F004D20 17C90034 */ bne $fp, $t1, .L7F004DF4 +/* 039894 7F004D24 00000000 */ nop +/* 039898 7F004D28 10400032 */ beqz $v0, .L7F004DF4 +/* 03989C 7F004D2C 00000000 */ nop +/* 0398A0 7F004D30 8C590010 */ lw $t9, 0x10($v0) +/* 0398A4 7F004D34 1320002F */ beqz $t9, .L7F004DF4 +/* 0398A8 7F004D38 00000000 */ nop +/* 0398AC 7F004D3C 904A0003 */ lbu $t2, 3($v0) +/* 0398B0 7F004D40 02402025 */ move $a0, $s2 +/* 0398B4 7F004D44 168A002B */ bne $s4, $t2, .L7F004DF4 +/* 0398B8 7F004D48 00000000 */ nop +/* 0398BC 7F004D4C AE500004 */ sw $s0, 4($s2) +/* 0398C0 7F004D50 AE510008 */ sw $s1, 8($s2) +/* 0398C4 7F004D54 AE42000C */ sw $v0, 0xc($s2) +/* 0398C8 7F004D58 0FC00650 */ jal sub_GAME_7F001940 +/* 0398CC 7F004D5C AFA20074 */ sw $v0, 0x74($sp) +/* 0398D0 7F004D60 8E0B000C */ lw $t3, 0xc($s0) +/* 0398D4 7F004D64 8FA30074 */ lw $v1, 0x74($sp) +/* 0398D8 7F004D68 356D0400 */ ori $t5, $t3, 0x400 +/* 0398DC 7F004D6C AE0D000C */ sw $t5, 0xc($s0) +/* 0398E0 7F004D70 8C6C000C */ lw $t4, 0xc($v1) +/* 0398E4 7F004D74 358F0400 */ ori $t7, $t4, 0x400 +/* 0398E8 7F004D78 1000001E */ b .L7F004DF4 +/* 0398EC 7F004D7C AC6F000C */ sw $t7, 0xc($v1) +.L7F004D80: +/* 0398F0 7F004D80 8E420004 */ lw $v0, 4($s2) +/* 0398F4 7F004D84 8E510008 */ lw $s1, 8($s2) +/* 0398F8 7F004D88 02A02025 */ move $a0, $s5 +/* 0398FC 7F004D8C 0FC15CE8 */ jal sub_GAME_7F056EA0 +/* 039900 7F004D90 02622821 */ addu $a1, $s3, $v0 +/* 039904 7F004D94 00408025 */ move $s0, $v0 +/* 039908 7F004D98 02A02025 */ move $a0, $s5 +/* 03990C 7F004D9C 0FC15CE8 */ jal sub_GAME_7F056EA0 +/* 039910 7F004DA0 02712821 */ addu $a1, $s3, $s1 +/* 039914 7F004DA4 12000013 */ beqz $s0, .L7F004DF4 +/* 039918 7F004DA8 00000000 */ nop +/* 03991C 7F004DAC 8E0E0010 */ lw $t6, 0x10($s0) +/* 039920 7F004DB0 11C00010 */ beqz $t6, .L7F004DF4 +/* 039924 7F004DB4 00000000 */ nop +/* 039928 7F004DB8 1040000E */ beqz $v0, .L7F004DF4 +/* 03992C 7F004DBC 00000000 */ nop +/* 039930 7F004DC0 8C580010 */ lw $t8, 0x10($v0) +/* 039934 7F004DC4 1300000B */ beqz $t8, .L7F004DF4 +/* 039938 7F004DC8 00000000 */ nop +/* 03993C 7F004DCC 92080003 */ lbu $t0, 3($s0) +/* 039940 7F004DD0 02402025 */ move $a0, $s2 +/* 039944 7F004DD4 16880007 */ bne $s4, $t0, .L7F004DF4 +/* 039948 7F004DD8 00000000 */ nop +/* 03994C 7F004DDC AE500004 */ sw $s0, 4($s2) +/* 039950 7F004DE0 0FC0064A */ jal sub_GAME_7F001928 +/* 039954 7F004DE4 AE420008 */ sw $v0, 8($s2) +/* 039958 7F004DE8 8E090064 */ lw $t1, 0x64($s0) +/* 03995C 7F004DEC 35392000 */ ori $t9, $t1, 0x2000 +/* 039960 7F004DF0 AE190064 */ sw $t9, 0x64($s0) +.L7F004DF4: +/* 039964 7F004DF4 0FC15B7D */ jal get_size_of_setup_object_type +/* 039968 7F004DF8 02402025 */ move $a0, $s2 +/* 03996C 7F004DFC 00025080 */ sll $t2, $v0, 2 +/* 039970 7F004E00 01529021 */ addu $s2, $t2, $s2 +/* 039974 7F004E04 92430003 */ lbu $v1, 3($s2) +/* 039978 7F004E08 24010030 */ li $at, 48 +/* 03997C 7F004E0C 26730001 */ addiu $s3, $s3, 1 +/* 039980 7F004E10 5461FF52 */ bnel $v1, $at, .L7F004B5C +/* 039984 7F004E14 2469FFFD */ addiu $t1, $v1, -3 +/* 039988 7F004E18 1000001B */ b .L7F004E88 +/* 03998C 7F004E1C 00000000 */ nop +.L7F004E20: +/* 039990 7F004E20 3C018007 */ lui $at, %hi(ptr_setup_path_tbl) # $at, 0x8007 +/* 039994 7F004E24 AC205D40 */ sw $zero, %lo(ptr_setup_path_tbl)($at) +/* 039998 7F004E28 3C018007 */ lui $at, %hi(ptr_setup_path_link) # $at, 0x8007 +/* 03999C 7F004E2C AC205D44 */ sw $zero, %lo(ptr_setup_path_link)($at) +/* 0399A0 7F004E30 3C018007 */ lui $at, %hi(ptr_setup_intro) # $at, 0x8007 +/* 0399A4 7F004E34 AC205D48 */ sw $zero, %lo(ptr_setup_intro)($at) +/* 0399A8 7F004E38 3C018007 */ lui $at, %hi(ptr_setup_objects) # $at, 0x8007 +/* 0399AC 7F004E3C AC205D4C */ sw $zero, %lo(ptr_setup_objects)($at) +/* 0399B0 7F004E40 3C018007 */ lui $at, %hi(ptr_setup_path_sets) # $at, 0x8007 +/* 0399B4 7F004E44 AC205D50 */ sw $zero, %lo(ptr_setup_path_sets)($at) +/* 0399B8 7F004E48 3C018007 */ lui $at, %hi(ptr_setup_actions) # $at, 0x8007 +/* 0399BC 7F004E4C AC205D54 */ sw $zero, %lo(ptr_setup_actions)($at) +/* 0399C0 7F004E50 3C018007 */ lui $at, %hi(ptr_0xxxpresets) # $at, 0x8007 +/* 0399C4 7F004E54 AC205D58 */ sw $zero, %lo(ptr_0xxxpresets)($at) +/* 0399C8 7F004E58 3C018007 */ lui $at, %hi(ptr_2xxxpresets) # $at, 0x8007 +/* 0399CC 7F004E5C AC205D5C */ sw $zero, %lo(ptr_2xxxpresets)($at) +/* 0399D0 7F004E60 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D20) # $at, 0x8007 +/* 0399D4 7F004E64 AC205D60 */ sw $zero, %lo(dword_CODE_bss_80075D20)($at) +/* 0399D8 7F004E68 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D24) # $at, 0x8007 +/* 0399DC 7F004E6C AC205D64 */ sw $zero, %lo(dword_CODE_bss_80075D24)($at) +/* 0399E0 7F004E70 0FC003AE */ jal alloc_init_GUARDdata_entries +/* 0399E4 7F004E74 00002025 */ move $a0, $zero +/* 0399E8 7F004E78 0FC01558 */ jal sub_GAME_7F005540 +/* 0399EC 7F004E7C 00002025 */ move $a0, $zero +/* 0399F0 7F004E80 0FC01591 */ jal sub_GAME_7F005624 +/* 0399F4 7F004E84 00002025 */ move $a0, $zero +.L7F004E88: +/* 0399F8 7F004E88 0FC00417 */ jal alloc_false_GUARDdata_to_exec_global_action +/* 0399FC 7F004E8C 00000000 */ nop +/* 039A00 7F004E90 8FBF0044 */ lw $ra, 0x44($sp) +/* 039A04 7F004E94 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 039A08 7F004E98 8FB00020 */ lw $s0, 0x20($sp) +/* 039A0C 7F004E9C 8FB10024 */ lw $s1, 0x24($sp) +/* 039A10 7F004EA0 8FB20028 */ lw $s2, 0x28($sp) +/* 039A14 7F004EA4 8FB3002C */ lw $s3, 0x2c($sp) +/* 039A18 7F004EA8 8FB40030 */ lw $s4, 0x30($sp) +/* 039A1C 7F004EAC 8FB50034 */ lw $s5, 0x34($sp) +/* 039A20 7F004EB0 8FB60038 */ lw $s6, 0x38($sp) +/* 039A24 7F004EB4 8FB7003C */ lw $s7, 0x3c($sp) +/* 039A28 7F004EB8 8FBE0040 */ lw $fp, 0x40($sp) +/* 039A2C 7F004EBC 03E00008 */ jr $ra +/* 039A30 7F004EC0 27BD0280 */ addiu $sp, $sp, 0x280 + ) +#endif + + +#endif + + diff --git a/src/game/prop.h b/src/game/prop.h new file mode 100644 index 0000000..9e396fd --- /dev/null +++ b/src/game/prop.h @@ -0,0 +1,7 @@ +#ifndef _PROP_H_ +#define _PROP_H_ +#include "ultra64.h" + +extern u32 only_read_by_stageload[] + +#endif diff --git a/src/game/radar.c b/src/game/radar.c new file mode 100644 index 0000000..6f7b6e9 --- /dev/null +++ b/src/game/radar.c @@ -0,0 +1,380 @@ +#include "ultra64.h" + + +// rodata + + +#ifdef NONMATCHING +void display_red_blue_on_radar(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005BD20 +.word 0x40490fdb /*3.1415927*/ +glabel D_8005BD24 +.word 0x3c8efa35 /*0.017453292*/ +.text +glabel display_red_blue_on_radar +/* 0FABC0 7F0C6090 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 0FABC4 7F0C6094 AFBF006C */ sw $ra, 0x6c($sp) +/* 0FABC8 7F0C6098 AFB70068 */ sw $s7, 0x68($sp) +/* 0FABCC 7F0C609C AFB60064 */ sw $s6, 0x64($sp) +/* 0FABD0 7F0C60A0 AFB50060 */ sw $s5, 0x60($sp) +/* 0FABD4 7F0C60A4 AFB4005C */ sw $s4, 0x5c($sp) +/* 0FABD8 7F0C60A8 AFB30058 */ sw $s3, 0x58($sp) +/* 0FABDC 7F0C60AC AFB20054 */ sw $s2, 0x54($sp) +/* 0FABE0 7F0C60B0 AFB10050 */ sw $s1, 0x50($sp) +/* 0FABE4 7F0C60B4 AFB0004C */ sw $s0, 0x4c($sp) +/* 0FABE8 7F0C60B8 F7BE0040 */ sdc1 $f30, 0x40($sp) +/* 0FABEC 7F0C60BC F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 0FABF0 7F0C60C0 F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0FABF4 7F0C60C4 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0FABF8 7F0C60C8 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0FABFC 7F0C60CC F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0FAC00 7F0C60D0 0FC051D6 */ jal get_scenario +/* 0FAC04 7F0C60D4 AFA40088 */ sw $a0, 0x88($sp) +/* 0FAC08 7F0C60D8 0FC26C54 */ jal get_cur_playernum +/* 0FAC0C 7F0C60DC 0040A025 */ move $s4, $v0 +/* 0FAC10 7F0C60E0 0FC26919 */ jal get_num_players +/* 0FAC14 7F0C60E4 AFA20070 */ sw $v0, 0x70($sp) +/* 0FAC18 7F0C60E8 24010001 */ li $at, 1 +/* 0FAC1C 7F0C60EC 14410003 */ bne $v0, $at, .L7F0C60FC +/* 0FAC20 7F0C60F0 AFA20074 */ sw $v0, 0x74($sp) +/* 0FAC24 7F0C60F4 10000124 */ b .L7F0C6588 +/* 0FAC28 7F0C60F8 8FA20088 */ lw $v0, 0x88($sp) +.L7F0C60FC: +/* 0FAC2C 7F0C60FC 3C178008 */ lui $s7, %hi(pPlayer) +/* 0FAC30 7F0C6100 26F7A0B0 */ addiu $s7, %lo(pPlayer) # addiu $s7, $s7, -0x5f50 +/* 0FAC34 7F0C6104 8EE20000 */ lw $v0, ($s7) +/* 0FAC38 7F0C6108 8C4E29C4 */ lw $t6, 0x29c4($v0) +/* 0FAC3C 7F0C610C 15C00004 */ bnez $t6, .L7F0C6120 +/* 0FAC40 7F0C6110 00000000 */ nop +/* 0FAC44 7F0C6114 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0FAC48 7F0C6118 11E00003 */ beqz $t7, .L7F0C6128 +/* 0FAC4C 7F0C611C 00000000 */ nop +.L7F0C6120: +/* 0FAC50 7F0C6120 10000119 */ b .L7F0C6588 +/* 0FAC54 7F0C6124 8FA20088 */ lw $v0, 0x88($sp) +.L7F0C6128: +/* 0FAC58 7F0C6128 0FC249EF */ jal cheatCheckIfOn +/* 0FAC5C 7F0C612C 24040017 */ li $a0, 23 +/* 0FAC60 7F0C6130 10400003 */ beqz $v0, .L7F0C6140 +/* 0FAC64 7F0C6134 00000000 */ nop +/* 0FAC68 7F0C6138 10000113 */ b .L7F0C6588 +/* 0FAC6C 7F0C613C 8FA20088 */ lw $v0, 0x88($sp) +.L7F0C6140: +/* 0FAC70 7F0C6140 0C001145 */ jal get_video2_settings_ulx +/* 0FAC74 7F0C6144 00000000 */ nop +/* 0FAC78 7F0C6148 00028400 */ sll $s0, $v0, 0x10 +/* 0FAC7C 7F0C614C 0010C403 */ sra $t8, $s0, 0x10 +/* 0FAC80 7F0C6150 0C001127 */ jal get_video2_settings_width +/* 0FAC84 7F0C6154 03008025 */ move $s0, $t8 +/* 0FAC88 7F0C6158 0050A821 */ addu $s5, $v0, $s0 +/* 0FAC8C 7F0C615C 0C001149 */ jal get_video2_settings_uly +/* 0FAC90 7F0C6160 26B5FFD7 */ addiu $s5, $s5, -0x29 +/* 0FAC94 7F0C6164 8FB90074 */ lw $t9, 0x74($sp) +/* 0FAC98 7F0C6168 2456001A */ addiu $s6, $v0, 0x1a +/* 0FAC9C 7F0C616C 27A40088 */ addiu $a0, $sp, 0x88 +/* 0FACA0 7F0C6170 2B210003 */ slti $at, $t9, 3 +/* 0FACA4 7F0C6174 14200006 */ bnez $at, .L7F0C6190 +/* 0FACA8 7F0C6178 3C058009 */ lui $a1, %hi(mpradarimages) +/* 0FACAC 7F0C617C 8FA90070 */ lw $t1, 0x70($sp) +/* 0FACB0 7F0C6180 312A0001 */ andi $t2, $t1, 1 +/* 0FACB4 7F0C6184 55400003 */ bnezl $t2, .L7F0C6194 +/* 0FACB8 7F0C6188 240B0002 */ li $t3, 2 +/* 0FACBC 7F0C618C 26B5000F */ addiu $s5, $s5, 0xf +.L7F0C6190: +/* 0FACC0 7F0C6190 240B0002 */ li $t3, 2 +.L7F0C6194: +/* 0FACC4 7F0C6194 AFAB0010 */ sw $t3, 0x10($sp) +/* 0FACC8 7F0C6198 8CA5D12C */ lw $a1, %lo(mpradarimages)($a1) +/* 0FACCC 7F0C619C 24060002 */ li $a2, 2 +/* 0FACD0 7F0C61A0 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 0FACD4 7F0C61A4 00003825 */ move $a3, $zero +/* 0FACD8 7F0C61A8 0FC2B366 */ jal microcode_constructor +/* 0FACDC 7F0C61AC 8FA40088 */ lw $a0, 0x88($sp) +/* 0FACE0 7F0C61B0 244C0008 */ addiu $t4, $v0, 8 +/* 0FACE4 7F0C61B4 AFAC0088 */ sw $t4, 0x88($sp) +/* 0FACE8 7F0C61B8 3C0DFCFF */ lui $t5, (0xFCFFB3FF >> 16) # lui $t5, 0xfcff +/* 0FACEC 7F0C61BC 3C0EFF65 */ lui $t6, (0xFF65FEFF >> 16) # lui $t6, 0xff65 +/* 0FACF0 7F0C61C0 35CEFEFF */ ori $t6, (0xFF65FEFF & 0xFFFF) # ori $t6, $t6, 0xfeff +/* 0FACF4 7F0C61C4 35ADB3FF */ ori $t5, (0xFCFFB3FF & 0xFFFF) # ori $t5, $t5, 0xb3ff +/* 0FACF8 7F0C61C8 AC4D0000 */ sw $t5, ($v0) +/* 0FACFC 7F0C61CC AC4E0004 */ sw $t6, 4($v0) +/* 0FAD00 7F0C61D0 8FAF0088 */ lw $t7, 0x88($sp) +/* 0FAD04 7F0C61D4 3C19FA00 */ lui $t9, 0xfa00 +/* 0FAD08 7F0C61D8 240900A0 */ li $t1, 160 +/* 0FAD0C 7F0C61DC 25F80008 */ addiu $t8, $t7, 8 +/* 0FAD10 7F0C61E0 AFB80088 */ sw $t8, 0x88($sp) +/* 0FAD14 7F0C61E4 26AC0010 */ addiu $t4, $s5, 0x10 +/* 0FAD18 7F0C61E8 ADE90004 */ sw $t1, 4($t7) +/* 0FAD1C 7F0C61EC ADF90000 */ sw $t9, ($t7) +/* 0FAD20 7F0C61F0 8FA40088 */ lw $a0, 0x88($sp) +/* 0FAD24 7F0C61F4 000C6880 */ sll $t5, $t4, 2 +/* 0FAD28 7F0C61F8 31AE0FFF */ andi $t6, $t5, 0xfff +/* 0FAD2C 7F0C61FC 26D90010 */ addiu $t9, $s6, 0x10 +/* 0FAD30 7F0C6200 00194880 */ sll $t1, $t9, 2 +/* 0FAD34 7F0C6204 000E7B00 */ sll $t7, $t6, 0xc +/* 0FAD38 7F0C6208 3C01E400 */ lui $at, 0xe400 +/* 0FAD3C 7F0C620C 01E1C025 */ or $t8, $t7, $at +/* 0FAD40 7F0C6210 312A0FFF */ andi $t2, $t1, 0xfff +/* 0FAD44 7F0C6214 26ACFFF0 */ addiu $t4, $s5, -0x10 +/* 0FAD48 7F0C6218 248B0008 */ addiu $t3, $a0, 8 +/* 0FAD4C 7F0C621C AFAB0088 */ sw $t3, 0x88($sp) +/* 0FAD50 7F0C6220 000C6880 */ sll $t5, $t4, 2 +/* 0FAD54 7F0C6224 26D9FFF0 */ addiu $t9, $s6, -0x10 +/* 0FAD58 7F0C6228 00194880 */ sll $t1, $t9, 2 +/* 0FAD5C 7F0C622C 31AE0FFF */ andi $t6, $t5, 0xfff +/* 0FAD60 7F0C6230 030A5825 */ or $t3, $t8, $t2 +/* 0FAD64 7F0C6234 31380FFF */ andi $t8, $t1, 0xfff +/* 0FAD68 7F0C6238 000E7B00 */ sll $t7, $t6, 0xc +/* 0FAD6C 7F0C623C 01F85025 */ or $t2, $t7, $t8 +/* 0FAD70 7F0C6240 AC8A0004 */ sw $t2, 4($a0) +/* 0FAD74 7F0C6244 AC8B0000 */ sw $t3, ($a0) +/* 0FAD78 7F0C6248 8FAB0088 */ lw $t3, 0x88($sp) +/* 0FAD7C 7F0C624C 3C0E0010 */ lui $t6, (0x00100010 >> 16) # lui $t6, 0x10 +/* 0FAD80 7F0C6250 35CE0010 */ ori $t6, (0x00100010 & 0xFFFF) # ori $t6, $t6, 0x10 +/* 0FAD84 7F0C6254 256C0008 */ addiu $t4, $t3, 8 +/* 0FAD88 7F0C6258 AFAC0088 */ sw $t4, 0x88($sp) +/* 0FAD8C 7F0C625C 3C0DB400 */ lui $t5, 0xb400 +/* 0FAD90 7F0C6260 AD6D0000 */ sw $t5, ($t3) +/* 0FAD94 7F0C6264 AD6E0004 */ sw $t6, 4($t3) +/* 0FAD98 7F0C6268 8FB90088 */ lw $t9, 0x88($sp) +/* 0FAD9C 7F0C626C 3C180400 */ lui $t8, (0x04000400 >> 16) # lui $t8, 0x400 +/* 0FADA0 7F0C6270 37180400 */ ori $t8, (0x04000400 & 0xFFFF) # ori $t8, $t8, 0x400 +/* 0FADA4 7F0C6274 27290008 */ addiu $t1, $t9, 8 +/* 0FADA8 7F0C6278 AFA90088 */ sw $t1, 0x88($sp) +/* 0FADAC 7F0C627C 3C0FB300 */ lui $t7, 0xb300 +/* 0FADB0 7F0C6280 AF2F0000 */ sw $t7, ($t9) +/* 0FADB4 7F0C6284 AF380004 */ sw $t8, 4($t9) +/* 0FADB8 7F0C6288 240B0040 */ li $t3, 64 +/* 0FADBC 7F0C628C 26CA0002 */ addiu $t2, $s6, 2 +/* 0FADC0 7F0C6290 AFAA0010 */ sw $t2, 0x10($sp) +/* 0FADC4 7F0C6294 AFAB0014 */ sw $t3, 0x14($sp) +/* 0FADC8 7F0C6298 8FA40088 */ lw $a0, 0x88($sp) +/* 0FADCC 7F0C629C 26A5FFFE */ addiu $a1, $s5, -2 +/* 0FADD0 7F0C62A0 26C6FFFE */ addiu $a2, $s6, -2 +/* 0FADD4 7F0C62A4 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0FADD8 7F0C62A8 26A70002 */ addiu $a3, $s5, 2 +/* 0FADDC 7F0C62AC 24010005 */ li $at, 5 +/* 0FADE0 7F0C62B0 1281000A */ beq $s4, $at, .L7F0C62DC +/* 0FADE4 7F0C62B4 AFA20088 */ sw $v0, 0x88($sp) +/* 0FADE8 7F0C62B8 24010006 */ li $at, 6 +/* 0FADEC 7F0C62BC 12810007 */ beq $s4, $at, .L7F0C62DC +/* 0FADF0 7F0C62C0 24010007 */ li $at, 7 +/* 0FADF4 7F0C62C4 12810005 */ beq $s4, $at, .L7F0C62DC +/* 0FADF8 7F0C62C8 24010002 */ li $at, 2 +/* 0FADFC 7F0C62CC 12810003 */ beq $s4, $at, .L7F0C62DC +/* 0FAE00 7F0C62D0 24010003 */ li $at, 3 +/* 0FAE04 7F0C62D4 16810018 */ bne $s4, $at, .L7F0C6338 +/* 0FAE08 7F0C62D8 8FA40088 */ lw $a0, 0x88($sp) +.L7F0C62DC: +/* 0FAE0C 7F0C62DC 8FAC0070 */ lw $t4, 0x70($sp) +/* 0FAE10 7F0C62E0 3C0E8008 */ lui $t6, %hi(player1_player_data+0x69) +/* 0FAE14 7F0C62E4 8FA40088 */ lw $a0, 0x88($sp) +/* 0FAE18 7F0C62E8 000C68C0 */ sll $t5, $t4, 3 +/* 0FAE1C 7F0C62EC 01AC6823 */ subu $t5, $t5, $t4 +/* 0FAE20 7F0C62F0 000D6900 */ sll $t5, $t5, 4 +/* 0FAE24 7F0C62F4 01CD7021 */ addu $t6, $t6, $t5 +/* 0FAE28 7F0C62F8 91CE9F59 */ lbu $t6, %lo(player1_player_data+0x69)($t6) +/* 0FAE2C 7F0C62FC 26A5FFFF */ addiu $a1, $s5, -1 +/* 0FAE30 7F0C6300 26C6FFFF */ addiu $a2, $s6, -1 +/* 0FAE34 7F0C6304 15C00004 */ bnez $t6, .L7F0C6318 +/* 0FAE38 7F0C6308 26A70001 */ addiu $a3, $s5, 1 +/* 0FAE3C 7F0C630C 3C02FF77 */ lui $v0, (0xFF7777FF >> 16) # lui $v0, 0xff77 +/* 0FAE40 7F0C6310 10000003 */ b .L7F0C6320 +/* 0FAE44 7F0C6314 344277FF */ ori $v0, (0xFF7777FF & 0xFFFF) # ori $v0, $v0, 0x77ff +.L7F0C6318: +/* 0FAE48 7F0C6318 3C028888 */ lui $v0, (0x8888FFFF >> 16) # lui $v0, 0x8888 +/* 0FAE4C 7F0C631C 3442FFFF */ ori $v0, (0x8888FFFF & 0xFFFF) # ori $v0, $v0, 0xffff +.L7F0C6320: +/* 0FAE50 7F0C6320 26D90001 */ addiu $t9, $s6, 1 +/* 0FAE54 7F0C6324 AFB90010 */ sw $t9, 0x10($sp) +/* 0FAE58 7F0C6328 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0FAE5C 7F0C632C AFA20014 */ sw $v0, 0x14($sp) +/* 0FAE60 7F0C6330 1000000A */ b .L7F0C635C +/* 0FAE64 7F0C6334 AFA20088 */ sw $v0, 0x88($sp) +.L7F0C6338: +/* 0FAE68 7F0C6338 26C90001 */ addiu $t1, $s6, 1 +/* 0FAE6C 7F0C633C 240FFFA0 */ li $t7, -96 +/* 0FAE70 7F0C6340 AFAF0014 */ sw $t7, 0x14($sp) +/* 0FAE74 7F0C6344 AFA90010 */ sw $t1, 0x10($sp) +/* 0FAE78 7F0C6348 26A5FFFF */ addiu $a1, $s5, -1 +/* 0FAE7C 7F0C634C 26C6FFFF */ addiu $a2, $s6, -1 +/* 0FAE80 7F0C6350 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0FAE84 7F0C6354 26A70001 */ addiu $a3, $s5, 1 +/* 0FAE88 7F0C6358 AFA20088 */ sw $v0, 0x88($sp) +.L7F0C635C: +/* 0FAE8C 7F0C635C 8FB80074 */ lw $t8, 0x74($sp) +/* 0FAE90 7F0C6360 00009825 */ move $s3, $zero +/* 0FAE94 7F0C6364 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0FAE98 7F0C6368 1B000085 */ blez $t8, .L7F0C6580 +/* 0FAE9C 7F0C636C 00000000 */ nop +/* 0FAEA0 7F0C6370 4481F000 */ mtc1 $at, $f30 +/* 0FAEA4 7F0C6374 00000000 */ nop +/* 0FAEA8 7F0C6378 8FAA0070 */ lw $t2, 0x70($sp) +.L7F0C637C: +/* 0FAEAC 7F0C637C 00135880 */ sll $t3, $s3, 2 +/* 0FAEB0 7F0C6380 3C048008 */ lui $a0, %hi(ptr_BONDdata_p1) +/* 0FAEB4 7F0C6384 126A007A */ beq $s3, $t2, .L7F0C6570 +/* 0FAEB8 7F0C6388 008B2021 */ addu $a0, $a0, $t3 +/* 0FAEBC 7F0C638C 8C849EE0 */ lw $a0, %lo(ptr_BONDdata_p1)($a0) +/* 0FAEC0 7F0C6390 8C8C00D8 */ lw $t4, 0xd8($a0) +/* 0FAEC4 7F0C6394 55800077 */ bnezl $t4, .L7F0C6574 +/* 0FAEC8 7F0C6398 8FB80074 */ lw $t8, 0x74($sp) +/* 0FAECC 7F0C639C 8EED0000 */ lw $t5, ($s7) +/* 0FAED0 7F0C63A0 8C8200A8 */ lw $v0, 0xa8($a0) +/* 0FAED4 7F0C63A4 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0FAED8 7F0C63A8 8DA300A8 */ lw $v1, 0xa8($t5) +/* 0FAEDC 7F0C63AC C45C0008 */ lwc1 $f28, 8($v0) +/* 0FAEE0 7F0C63B0 C4520010 */ lwc1 $f18, 0x10($v0) +/* 0FAEE4 7F0C63B4 C4700008 */ lwc1 $f16, 8($v1) +/* 0FAEE8 7F0C63B8 C46A0010 */ lwc1 $f10, 0x10($v1) +/* 0FAEEC 7F0C63BC 44814000 */ mtc1 $at, $f8 +/* 0FAEF0 7F0C63C0 4610E501 */ sub.s $f20, $f28, $f16 +/* 0FAEF4 7F0C63C4 3C01457A */ li $at, 0x457A0000 # 4000.000000 +/* 0FAEF8 7F0C63C8 44818000 */ mtc1 $at, $f16 +/* 0FAEFC 7F0C63CC 460A9581 */ sub.s $f22, $f18, $f10 +/* 0FAF00 7F0C63D0 240E0010 */ li $t6, 16 +/* 0FAF04 7F0C63D4 448E5000 */ mtc1 $t6, $f10 +/* 0FAF08 7F0C63D8 46104683 */ div.s $f26, $f8, $f16 +/* 0FAF0C 7F0C63DC 4600A306 */ mov.s $f12, $f20 +/* 0FAF10 7F0C63E0 4600B386 */ mov.s $f14, $f22 +/* 0FAF14 7F0C63E4 0FC16A8C */ jal atan2f +/* 0FAF18 7F0C63E8 46805620 */ cvt.s.w $f24, $f10 +/* 0FAF1C 7F0C63EC 461E0182 */ mul.s $f6, $f0, $f30 +/* 0FAF20 7F0C63F0 3C018006 */ lui $at, %hi(D_8005BD20) +/* 0FAF24 7F0C63F4 C428BD20 */ lwc1 $f8, %lo(D_8005BD20)($at) +/* 0FAF28 7F0C63F8 4614A102 */ mul.s $f4, $f20, $f20 +/* 0FAF2C 7F0C63FC 8EF90000 */ lw $t9, ($s7) +/* 0FAF30 7F0C6400 C7300148 */ lwc1 $f16, 0x148($t9) +/* 0FAF34 7F0C6404 46083283 */ div.s $f10, $f6, $f8 +/* 0FAF38 7F0C6408 4616B182 */ mul.s $f6, $f22, $f22 +/* 0FAF3C 7F0C640C 46062300 */ add.s $f12, $f4, $f6 +/* 0FAF40 7F0C6410 46105480 */ add.s $f18, $f10, $f16 +/* 0FAF44 7F0C6414 0C007DF8 */ jal sqrtf +/* 0FAF48 7F0C6418 461E9700 */ add.s $f28, $f18, $f30 +/* 0FAF4C 7F0C641C 461A0082 */ mul.s $f2, $f0, $f26 +/* 0FAF50 7F0C6420 24010005 */ li $at, 5 +/* 0FAF54 7F0C6424 001348C0 */ sll $t1, $s3, 3 +/* 0FAF58 7F0C6428 01334823 */ subu $t1, $t1, $s3 +/* 0FAF5C 7F0C642C 1281000A */ beq $s4, $at, .L7F0C6458 +/* 0FAF60 7F0C6430 46001586 */ mov.s $f22, $f2 +/* 0FAF64 7F0C6434 24010006 */ li $at, 6 +/* 0FAF68 7F0C6438 12810007 */ beq $s4, $at, .L7F0C6458 +/* 0FAF6C 7F0C643C 24010007 */ li $at, 7 +/* 0FAF70 7F0C6440 12810005 */ beq $s4, $at, .L7F0C6458 +/* 0FAF74 7F0C6444 24010002 */ li $at, 2 +/* 0FAF78 7F0C6448 12810003 */ beq $s4, $at, .L7F0C6458 +/* 0FAF7C 7F0C644C 24010003 */ li $at, 3 +/* 0FAF80 7F0C6450 5681001B */ bnel $s4, $at, .L7F0C64C0 +/* 0FAF84 7F0C6454 4618103C */ c.lt.s $f2, $f24 +.L7F0C6458: +/* 0FAF88 7F0C6458 4618103C */ c.lt.s $f2, $f24 +/* 0FAF8C 7F0C645C 3C0F8008 */ lui $t7, %hi(player1_player_data) +/* 0FAF90 7F0C6460 25EF9EF0 */ addiu $t7, %lo(player1_player_data) # addiu $t7, $t7, -0x6110 +/* 0FAF94 7F0C6464 00094900 */ sll $t1, $t1, 4 +/* 0FAF98 7F0C6468 4500000A */ bc1f .L7F0C6494 +/* 0FAF9C 7F0C646C 012F1021 */ addu $v0, $t1, $t7 +/* 0FAFA0 7F0C6470 90580069 */ lbu $t8, 0x69($v0) +/* 0FAFA4 7F0C6474 3C112828 */ lui $s1, 0x2828 +/* 0FAFA8 7F0C6478 17000004 */ bnez $t8, .L7F0C648C +/* 0FAFAC 7F0C647C 00000000 */ nop +/* 0FAFB0 7F0C6480 3C11FF00 */ lui $s1, (0xFF00FFFF >> 16) # lui $s1, 0xff00 +/* 0FAFB4 7F0C6484 10000016 */ b .L7F0C64E0 +/* 0FAFB8 7F0C6488 363100A0 */ ori $s1, (0xFF0000A0 & 0xFFFF) # ori $s1, $s1, 0xa0 +.L7F0C648C: +/* 0FAFBC 7F0C648C 10000014 */ b .L7F0C64E0 +/* 0FAFC0 7F0C6490 3631FFFF */ ori $s1, (0xFF00FFFF & 0xFFFF) # ori $s1, $s1, 0xffff +.L7F0C6494: +/* 0FAFC4 7F0C6494 904A0069 */ lbu $t2, 0x69($v0) +/* 0FAFC8 7F0C6498 4600C586 */ mov.s $f22, $f24 +/* 0FAFCC 7F0C649C 3C112828 */ lui $s1, 0x2828 +/* 0FAFD0 7F0C64A0 15400004 */ bnez $t2, .L7F0C64B4 +/* 0FAFD4 7F0C64A4 00000000 */ nop +/* 0FAFD8 7F0C64A8 3C11FF00 */ lui $s1, (0xFF00FFB0 >> 16) # lui $s1, 0xff00 +/* 0FAFDC 7F0C64AC 1000000C */ b .L7F0C64E0 +/* 0FAFE0 7F0C64B0 36310060 */ ori $s1, (0xFF000060 & 0xFFFF) # ori $s1, $s1, 0x60 +.L7F0C64B4: +/* 0FAFE4 7F0C64B4 1000000A */ b .L7F0C64E0 +/* 0FAFE8 7F0C64B8 3631FFB0 */ ori $s1, (0xFF00FFB0 & 0xFFFF) # ori $s1, $s1, 0xffb0 +/* 0FAFEC 7F0C64BC 4618103C */ c.lt.s $f2, $f24 +.L7F0C64C0: +/* 0FAFF0 7F0C64C0 3C11FFFF */ lui $s1, (0xFFFF0060 >> 16) # lui $s1, 0xffff +/* 0FAFF4 7F0C64C4 36310060 */ ori $s1, (0xFFFF0060 & 0xFFFF) # ori $s1, $s1, 0x60 +/* 0FAFF8 7F0C64C8 45020005 */ bc1fl .L7F0C64E0 +/* 0FAFFC 7F0C64CC 4600C586 */ mov.s $f22, $f24 +/* 0FB000 7F0C64D0 3C11FFFF */ lui $s1, (0xFFFF00A0 >> 16) # lui $s1, 0xffff +/* 0FB004 7F0C64D4 10000002 */ b .L7F0C64E0 +/* 0FB008 7F0C64D8 363100A0 */ ori $s1, (0xFFFF00A0 & 0xFFFF) # ori $s1, $s1, 0xa0 +/* 0FB00C 7F0C64DC 4600C586 */ mov.s $f22, $f24 +.L7F0C64E0: +/* 0FB010 7F0C64E0 3C018006 */ lui $at, %hi(D_8005BD24) +/* 0FB014 7F0C64E4 C428BD24 */ lwc1 $f8, %lo(D_8005BD24)($at) +/* 0FB018 7F0C64E8 4608E502 */ mul.s $f20, $f28, $f8 +/* 0FB01C 7F0C64EC 0FC15FAB */ jal sinf +/* 0FB020 7F0C64F0 4600A306 */ mov.s $f12, $f20 +/* 0FB024 7F0C64F4 46160282 */ mul.s $f10, $f0, $f22 +/* 0FB028 7F0C64F8 4600A306 */ mov.s $f12, $f20 +/* 0FB02C 7F0C64FC 4600540D */ trunc.w.s $f16, $f10 +/* 0FB030 7F0C6500 440C8000 */ mfc1 $t4, $f16 +/* 0FB034 7F0C6504 0FC15FA8 */ jal cosf +/* 0FB038 7F0C6508 01958021 */ addu $s0, $t4, $s5 +/* 0FB03C 7F0C650C 46160482 */ mul.s $f18, $f0, $f22 +/* 0FB040 7F0C6510 24090040 */ li $t1, 64 +/* 0FB044 7F0C6514 AFA90014 */ sw $t1, 0x14($sp) +/* 0FB048 7F0C6518 8FA40088 */ lw $a0, 0x88($sp) +/* 0FB04C 7F0C651C 2605FFFE */ addiu $a1, $s0, -2 +/* 0FB050 7F0C6520 26070002 */ addiu $a3, $s0, 2 +/* 0FB054 7F0C6524 4600910D */ trunc.w.s $f4, $f18 +/* 0FB058 7F0C6528 440E2000 */ mfc1 $t6, $f4 +/* 0FB05C 7F0C652C 00000000 */ nop +/* 0FB060 7F0C6530 01D61021 */ addu $v0, $t6, $s6 +/* 0FB064 7F0C6534 24590002 */ addiu $t9, $v0, 2 +/* 0FB068 7F0C6538 00409025 */ move $s2, $v0 +/* 0FB06C 7F0C653C AFB90010 */ sw $t9, 0x10($sp) +/* 0FB070 7F0C6540 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0FB074 7F0C6544 2446FFFE */ addiu $a2, $v0, -2 +/* 0FB078 7F0C6548 264F0001 */ addiu $t7, $s2, 1 +/* 0FB07C 7F0C654C AFA20088 */ sw $v0, 0x88($sp) +/* 0FB080 7F0C6550 AFAF0010 */ sw $t7, 0x10($sp) +/* 0FB084 7F0C6554 00402025 */ move $a0, $v0 +/* 0FB088 7F0C6558 2605FFFF */ addiu $a1, $s0, -1 +/* 0FB08C 7F0C655C 2646FFFF */ addiu $a2, $s2, -1 +/* 0FB090 7F0C6560 26070001 */ addiu $a3, $s0, 1 +/* 0FB094 7F0C6564 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0FB098 7F0C6568 AFB10014 */ sw $s1, 0x14($sp) +/* 0FB09C 7F0C656C AFA20088 */ sw $v0, 0x88($sp) +.L7F0C6570: +/* 0FB0A0 7F0C6570 8FB80074 */ lw $t8, 0x74($sp) +.L7F0C6574: +/* 0FB0A4 7F0C6574 26730001 */ addiu $s3, $s3, 1 +/* 0FB0A8 7F0C6578 5678FF80 */ bnel $s3, $t8, .L7F0C637C +/* 0FB0AC 7F0C657C 8FAA0070 */ lw $t2, 0x70($sp) +.L7F0C6580: +/* 0FB0B0 7F0C6580 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0FB0B4 7F0C6584 8FA40088 */ lw $a0, 0x88($sp) +.L7F0C6588: +/* 0FB0B8 7F0C6588 8FBF006C */ lw $ra, 0x6c($sp) +/* 0FB0BC 7F0C658C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0FB0C0 7F0C6590 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0FB0C4 7F0C6594 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0FB0C8 7F0C6598 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0FB0CC 7F0C659C D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 0FB0D0 7F0C65A0 D7BE0040 */ ldc1 $f30, 0x40($sp) +/* 0FB0D4 7F0C65A4 8FB0004C */ lw $s0, 0x4c($sp) +/* 0FB0D8 7F0C65A8 8FB10050 */ lw $s1, 0x50($sp) +/* 0FB0DC 7F0C65AC 8FB20054 */ lw $s2, 0x54($sp) +/* 0FB0E0 7F0C65B0 8FB30058 */ lw $s3, 0x58($sp) +/* 0FB0E4 7F0C65B4 8FB4005C */ lw $s4, 0x5c($sp) +/* 0FB0E8 7F0C65B8 8FB50060 */ lw $s5, 0x60($sp) +/* 0FB0EC 7F0C65BC 8FB60064 */ lw $s6, 0x64($sp) +/* 0FB0F0 7F0C65C0 8FB70068 */ lw $s7, 0x68($sp) +/* 0FB0F4 7F0C65C4 03E00008 */ jr $ra +/* 0FB0F8 7F0C65C8 27BD0088 */ addiu $sp, $sp, 0x88 +) +#endif + + diff --git a/src/game/ramromreplay.c b/src/game/ramromreplay.c new file mode 100644 index 0000000..485ae76 --- /dev/null +++ b/src/game/ramromreplay.c @@ -0,0 +1,1356 @@ + +#include "ultra64.h" +#include "game/debugmenu_090490.h" +#include "game/lvl.h" +#include "game/initunk_0072B0.h" +#include "game/mainmenu.h" + + +//D:800483F0 + +//move me to better home +extern u32* ramrom_Dam_1; +extern u32* ramrom_Dam_2; +extern u32* ramrom_Facility_1; +extern u32* ramrom_Facility_2; +extern u32* ramrom_Facility_3; +extern u32* ramrom_Runway_1; +extern u32* ramrom_Runway_2; +extern u32* ramrom_BunkerI_1; +extern u32* ramrom_BunkerI_2; +extern u32* ramrom_Silo_1; +extern u32* ramrom_Silo_2; +extern u32* ramrom_Frigate_1; +extern u32* ramrom_Frigate_2; +extern u32* ramrom_Train; + +struct ramrom_struct ramrom_table[] = { + {&ramrom_Dam_1, 0}, {&ramrom_Dam_2, 0}, {&ramrom_Facility_1, 0}, {&ramrom_Facility_2, 0}, {&ramrom_Facility_3, 0}, + {&ramrom_Runway_1, 0}, {&ramrom_Runway_2, 0}, {&ramrom_BunkerI_1, 0}, {&ramrom_BunkerI_2, 0}, {&ramrom_Silo_1, 0}, + {&ramrom_Silo_2, 0}, {&ramrom_Frigate_1, 0}, {&ramrom_Frigate_2, 0}, {&ramrom_Train, 0}, {0,0} +}; + +//D:80048468 +s32 ptr_active_demofile = 0; +//D:8004846C +s32 ramrom_blkbuf_2 = 0; +//D:80048470 +s32 ramrom_blkbuf_3 = 0; +//D:80048474 +s32 is_ramrom_flag = 0; +//D:80048478 +s32 ramrom_demo_related_3 = 0; +//D:8004847C +s32 ramrom_demo_related_4 = 0; +//D:80048480 +s32 recording_ramrom_flag = 0; +//D:80048484 +s32 ramrom_demo_related_6 = 0; +//D:80048488 +s32 flag_to_record_ramrom = 0; +//D:8004848C +// .align 4 + + + + + + + + + + +void clear_ramrom_block_buffer_heading_ptrs(void) { + ptr_active_demofile = 0; + ramrom_blkbuf_2 = 0; + ramrom_blkbuf_3 = 0; +} + + +s32 get_is_ramrom_flag(void) { + return is_ramrom_flag; +} + + +s32 get_recording_ramrom_flag(void) { + return recording_ramrom_flag; +} + + +s32 interface_menu0B_runstage(void) { + return ramrom_demo_related_4; +} + +#ifdef NONMATCHING +void finalize_ramrom_on_hw(void) { + s32 temp_a0; + ? temp_ret; + + // Node 0 + temp_a0 = (((sp + 0x2f) | 0xf) ^ 0xf); + *temp_a0 = (u8)0; + temp_a0->unk1 = (u8)0; + romWrite(temp_a0, address_demo_loaded, 0x10); + address_demo_loaded = (s32) (address_demo_loaded + 4); + temp_ret = romCopyAligned(&ramrom_data_target, 0xf00000, 0xf0); + ptr_active_demofile = temp_ret; + temp_ret->unk7C = (s32) (global_timer - clock_timer); + ptr_active_demofile->unk80 = (s32) (address_demo_loaded - 0xf00000); + return romWrite(ptr_active_demofile, 0xf00000, 0xf0); +} +#else +GLOBAL_ASM( +.text +glabel finalize_ramrom_on_hw +/* 0F47E0 7F0BFCB0 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0F47E4 7F0BFCB4 03A02025 */ move $a0, $sp +/* 0F47E8 7F0BFCB8 2484002F */ addiu $a0, $a0, 0x2f +/* 0F47EC 7F0BFCBC 348E000F */ ori $t6, $a0, 0xf +/* 0F47F0 7F0BFCC0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F47F4 7F0BFCC4 39C4000F */ xori $a0, $t6, 0xf +/* 0F47F8 7F0BFCC8 A0800000 */ sb $zero, ($a0) +/* 0F47FC 7F0BFCCC A0800001 */ sb $zero, 1($a0) +/* 0F4800 7F0BFCD0 3C058009 */ lui $a1, %hi(address_demo_loaded) +/* 0F4804 7F0BFCD4 8CA5C5F4 */ lw $a1, %lo(address_demo_loaded)($a1) +/* 0F4808 7F0BFCD8 0C001742 */ jal romWrite +/* 0F480C 7F0BFCDC 24060010 */ li $a2, 16 +/* 0F4810 7F0BFCE0 3C028009 */ lui $v0, %hi(address_demo_loaded) +/* 0F4814 7F0BFCE4 2442C5F4 */ addiu $v0, %lo(address_demo_loaded) # addiu $v0, $v0, -0x3a0c +/* 0F4818 7F0BFCE8 8C580000 */ lw $t8, ($v0) +/* 0F481C 7F0BFCEC 3C048009 */ lui $a0, %hi(ramrom_data_target) +/* 0F4820 7F0BFCF0 2484C270 */ addiu $a0, %lo(ramrom_data_target) # addiu $a0, $a0, -0x3d90 +/* 0F4824 7F0BFCF4 27190004 */ addiu $t9, $t8, 4 +/* 0F4828 7F0BFCF8 AC590000 */ sw $t9, ($v0) +/* 0F482C 7F0BFCFC 3C0500F0 */ lui $a1, 0xf0 +/* 0F4830 7F0BFD00 0C001711 */ jal romCopyAligned +/* 0F4834 7F0BFD04 240600F0 */ li $a2, 240 +/* 0F4838 7F0BFD08 3C038005 */ lui $v1, %hi(ptr_active_demofile) +/* 0F483C 7F0BFD0C 24638468 */ addiu $v1, %lo(ptr_active_demofile) # addiu $v1, $v1, -0x7b98 +/* 0F4840 7F0BFD10 AC620000 */ sw $v0, ($v1) +/* 0F4844 7F0BFD14 3C088005 */ lui $t0, %hi(global_timer) +/* 0F4848 7F0BFD18 3C098005 */ lui $t1, %hi(clock_timer) +/* 0F484C 7F0BFD1C 8D298374 */ lw $t1, %lo(clock_timer)($t1) +/* 0F4850 7F0BFD20 8D08837C */ lw $t0, %lo(global_timer)($t0) +/* 0F4854 7F0BFD24 3C0C8009 */ lui $t4, %hi(address_demo_loaded) +/* 0F4858 7F0BFD28 3C0500F0 */ lui $a1, 0xf0 +/* 0F485C 7F0BFD2C 01095023 */ subu $t2, $t0, $t1 +/* 0F4860 7F0BFD30 AC4A007C */ sw $t2, 0x7c($v0) +/* 0F4864 7F0BFD34 8D8CC5F4 */ lw $t4, %lo(address_demo_loaded)($t4) +/* 0F4868 7F0BFD38 8C6E0000 */ lw $t6, ($v1) +/* 0F486C 7F0BFD3C 240600F0 */ li $a2, 240 +/* 0F4870 7F0BFD40 01856823 */ subu $t5, $t4, $a1 +/* 0F4874 7F0BFD44 ADCD0080 */ sw $t5, 0x80($t6) +/* 0F4878 7F0BFD48 0C001742 */ jal romWrite +/* 0F487C 7F0BFD4C 8C640000 */ lw $a0, ($v1) +/* 0F4880 7F0BFD50 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4884 7F0BFD54 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0F4888 7F0BFD58 03E00008 */ jr $ra +/* 0F488C 7F0BFD5C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void save_ramrom_to_devtool(void) +{ + int iVar2; + undefined auStack264 [4]; + char indyFileName [260]; + + for (iVar2 = 1; check_file_found_on_indy(indyFileName,(u32)auStack264) != 0; iVar2++) + { + sprintf(indyFileName,"replay/demo.%d",iVar2); + } + sprintf(indyFileName,"replay/demo.%d",iVar2); + check_file_exported(indyFileName,0xf00000,(ptr_active_demofile + 0x80)); +} +#else +//D:8005B750 +const char aReplayDemo_D[] = "replay/demo.%d"; +//D:8005B760 +const char aReplayDemo_D_1[] = "replay/demo.%d"; +GLOBAL_ASM( +.text +glabel save_ramrom_to_devtool +/* 0F4890 7F0BFD60 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 0F4894 7F0BFD64 AFB2001C */ sw $s2, 0x1c($sp) +/* 0F4898 7F0BFD68 AFB30020 */ sw $s3, 0x20($sp) +/* 0F489C 7F0BFD6C AFB10018 */ sw $s1, 0x18($sp) +/* 0F48A0 7F0BFD70 AFB00014 */ sw $s0, 0x14($sp) +/* 0F48A4 7F0BFD74 3C128006 */ lui $s2, %hi(aReplayDemo_D) +/* 0F48A8 7F0BFD78 AFBF0024 */ sw $ra, 0x24($sp) +/* 0F48AC 7F0BFD7C 2652B750 */ addiu $s2, %lo(aReplayDemo_D) # addiu $s2, $s2, -0x48b0 +/* 0F48B0 7F0BFD80 24100001 */ li $s0, 1 +/* 0F48B4 7F0BFD84 27B1002C */ addiu $s1, $sp, 0x2c +/* 0F48B8 7F0BFD88 27B30028 */ addiu $s3, $sp, 0x28 +.L7F0BFD8C: +/* 0F48BC 7F0BFD8C 02202025 */ move $a0, $s1 +/* 0F48C0 7F0BFD90 02402825 */ move $a1, $s2 +/* 0F48C4 7F0BFD94 0C002B25 */ jal sprintf +/* 0F48C8 7F0BFD98 02003025 */ move $a2, $s0 +/* 0F48CC 7F0BFD9C 02202025 */ move $a0, $s1 +/* 0F48D0 7F0BFDA0 0FC34026 */ jal check_file_found_on_indy +/* 0F48D4 7F0BFDA4 02602825 */ move $a1, $s3 +/* 0F48D8 7F0BFDA8 10400003 */ beqz $v0, .L7F0BFDB8 +/* 0F48DC 7F0BFDAC 00000000 */ nop +/* 0F48E0 7F0BFDB0 1000FFF6 */ b .L7F0BFD8C +/* 0F48E4 7F0BFDB4 26100001 */ addiu $s0, $s0, 1 +.L7F0BFDB8: +/* 0F48E8 7F0BFDB8 3C058006 */ lui $a1, %hi(aReplayDemo_D_1) +/* 0F48EC 7F0BFDBC 24A5B760 */ addiu $a1, %lo(aReplayDemo_D_1) # addiu $a1, $a1, -0x48a0 +/* 0F48F0 7F0BFDC0 02202025 */ move $a0, $s1 +/* 0F48F4 7F0BFDC4 0C002B25 */ jal sprintf +/* 0F48F8 7F0BFDC8 02003025 */ move $a2, $s0 +/* 0F48FC 7F0BFDCC 3C0E8005 */ lui $t6, %hi(ptr_active_demofile) +/* 0F4900 7F0BFDD0 8DCE8468 */ lw $t6, %lo(ptr_active_demofile)($t6) +/* 0F4904 7F0BFDD4 02202025 */ move $a0, $s1 +/* 0F4908 7F0BFDD8 3C0500F0 */ lui $a1, 0xf0 +/* 0F490C 7F0BFDDC 0FC34017 */ jal check_file_exported +/* 0F4910 7F0BFDE0 8DC60080 */ lw $a2, 0x80($t6) +/* 0F4914 7F0BFDE4 8FBF0024 */ lw $ra, 0x24($sp) +/* 0F4918 7F0BFDE8 8FB00014 */ lw $s0, 0x14($sp) +/* 0F491C 7F0BFDEC 8FB10018 */ lw $s1, 0x18($sp) +/* 0F4920 7F0BFDF0 8FB2001C */ lw $s2, 0x1c($sp) +/* 0F4924 7F0BFDF4 8FB30020 */ lw $s3, 0x20($sp) +/* 0F4928 7F0BFDF8 03E00008 */ jr $ra +/* 0F492C 7F0BFDFC 27BD0130 */ addiu $sp, $sp, 0x130 +) +#endif + + + + + +#ifdef NONMATCHING +void load_ramrom_from_devtool(void) +{ + s32 size; + + if (check_file_found_on_indy("replay/demo.load", &size) != 0) + { + indy_load_ramrom_file("replay/demo.load",(u8 *)0xf00000,size); + ptr_active_demofile = romCopyAligned(&ramrom_data_target,(u8 *)0xf00000,0xe8); + } +} +#else +//D:8005B770 +const char aReplayDemo_load[] = "replay/demo.load"; +GLOBAL_ASM( +.text +glabel load_ramrom_from_devtool +/* 0F4930 7F0BFE00 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F4934 7F0BFE04 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F4938 7F0BFE08 3C048006 */ lui $a0, %hi(aReplayDemo_load) +/* 0F493C 7F0BFE0C 2484B770 */ addiu $a0, %lo(aReplayDemo_load) # addiu $a0, $a0, -0x4890 +/* 0F4940 7F0BFE10 0FC34026 */ jal check_file_found_on_indy +/* 0F4944 7F0BFE14 27A5001C */ addiu $a1, $sp, 0x1c +/* 0F4948 7F0BFE18 1040000C */ beqz $v0, .L7F0BFE4C +/* 0F494C 7F0BFE1C 3C048006 */ lui $a0, %hi(aReplayDemo_load) +/* 0F4950 7F0BFE20 2484B770 */ addiu $a0, %lo(aReplayDemo_load) # addiu $a0, $a0, -0x4890 +/* 0F4954 7F0BFE24 3C0500F0 */ lui $a1, 0xf0 +/* 0F4958 7F0BFE28 0FC34007 */ jal indy_loadfile +/* 0F495C 7F0BFE2C 8FA6001C */ lw $a2, 0x1c($sp) +/* 0F4960 7F0BFE30 3C048009 */ lui $a0, %hi(ramrom_data_target) +/* 0F4964 7F0BFE34 2484C270 */ addiu $a0, %lo(ramrom_data_target) # addiu $a0, $a0, -0x3d90 +/* 0F4968 7F0BFE38 3C0500F0 */ lui $a1, 0xf0 +/* 0F496C 7F0BFE3C 0C001711 */ jal romCopyAligned +/* 0F4970 7F0BFE40 240600E8 */ li $a2, 232 +/* 0F4974 7F0BFE44 3C018005 */ lui $at, %hi(ptr_active_demofile) +/* 0F4978 7F0BFE48 AC228468 */ sw $v0, %lo(ptr_active_demofile)($at) +.L7F0BFE4C: +/* 0F497C 7F0BFE4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4980 7F0BFE50 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F4984 7F0BFE54 03E00008 */ jr $ra +/* 0F4988 7F0BFE58 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void record_player_input_as_packet(void) { + +} +#else +GLOBAL_ASM( +.text +glabel record_player_input_as_packet +/* 0F498C 7F0BFE5C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F4990 7F0BFE60 3C0E8005 */ lui $t6, %hi(ptr_active_demofile) +/* 0F4994 7F0BFE64 3C0F8009 */ lui $t7, %hi(ramrom_data_target + 0x1F8) +/* 0F4998 7F0BFE68 8DCE8468 */ lw $t6, %lo(ptr_active_demofile)($t6) +/* 0F499C 7F0BFE6C 25EFC468 */ addiu $t7, %lo(ramrom_data_target + 0x1F8) # addiu $t7, $t7, -0x3b98 +/* 0F49A0 7F0BFE70 25F8000F */ addiu $t8, $t7, 0xf +/* 0F49A4 7F0BFE74 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F49A8 7F0BFE78 AFB10018 */ sw $s1, 0x18($sp) +/* 0F49AC 7F0BFE7C AFB00014 */ sw $s0, 0x14($sp) +/* 0F49B0 7F0BFE80 3719000F */ ori $t9, $t8, 0xf +/* 0F49B4 7F0BFE84 3C088005 */ lui $t0, %hi(ramrom_blkbuf_3) +/* 0F49B8 7F0BFE88 3C0C8005 */ lui $t4, %hi(ramrom_blkbuf_2) +/* 0F49BC 7F0BFE8C 3B2D000F */ xori $t5, $t9, 0xf +/* 0F49C0 7F0BFE90 8DC90018 */ lw $t1, 0x18($t6) +/* 0F49C4 7F0BFE94 258C846C */ addiu $t4, %lo(ramrom_blkbuf_2) # addiu $t4, $t4, -0x7b94 +/* 0F49C8 7F0BFE98 25088470 */ addiu $t0, %lo(ramrom_blkbuf_3) # addiu $t0, $t0, -0x7b90 +/* 0F49CC 7F0BFE9C 25AE0004 */ addiu $t6, $t5, 4 +/* 0F49D0 7F0BFEA0 00C08025 */ move $s0, $a2 +/* 0F49D4 7F0BFEA4 00808825 */ move $s1, $a0 +/* 0F49D8 7F0BFEA8 00005025 */ move $t2, $zero +/* 0F49DC 7F0BFEAC 00003825 */ move $a3, $zero +/* 0F49E0 7F0BFEB0 AD8D0000 */ sw $t5, ($t4) +/* 0F49E4 7F0BFEB4 AD0E0000 */ sw $t6, ($t0) +/* 0F49E8 7F0BFEB8 10A60048 */ beq $a1, $a2, .L7F0BFFDC +/* 0F49EC 7F0BFEBC 01A01025 */ move $v0, $t5 +/* 0F49F0 7F0BFEC0 240B0014 */ li $t3, 20 +/* 0F49F4 7F0BFEC4 24AF0001 */ addiu $t7, $a1, 1 +/* 0F49F8 7F0BFEC8 01EB001A */ div $zero, $t7, $t3 +/* 0F49FC 7F0BFECC 00003010 */ mfhi $a2 +/* 0F4A00 7F0BFED0 00002025 */ move $a0, $zero +/* 0F4A04 7F0BFED4 15600002 */ bnez $t3, .L7F0BFEE0 +/* 0F4A08 7F0BFED8 00000000 */ nop +/* 0F4A0C 7F0BFEDC 0007000D */ break 7 +.L7F0BFEE0: +/* 0F4A10 7F0BFEE0 2401FFFF */ li $at, -1 +/* 0F4A14 7F0BFEE4 15610004 */ bne $t3, $at, .L7F0BFEF8 +/* 0F4A18 7F0BFEE8 3C018000 */ lui $at, 0x8000 +/* 0F4A1C 7F0BFEEC 15E10002 */ bne $t7, $at, .L7F0BFEF8 +/* 0F4A20 7F0BFEF0 00000000 */ nop +/* 0F4A24 7F0BFEF4 0006000D */ break 6 +.L7F0BFEF8: +/* 0F4A28 7F0BFEF8 19200025 */ blez $t1, .L7F0BFF90 +/* 0F4A2C 7F0BFEFC 00000000 */ nop +/* 0F4A30 7F0BFF00 01490019 */ multu $t2, $t1 +/* 0F4A34 7F0BFF04 0006C880 */ sll $t9, $a2, 2 +/* 0F4A38 7F0BFF08 00196880 */ sll $t5, $t9, 2 +/* 0F4A3C 7F0BFF0C 01B96823 */ subu $t5, $t5, $t9 +/* 0F4A40 7F0BFF10 000D6840 */ sll $t5, $t5, 1 +/* 0F4A44 7F0BFF14 022D1821 */ addu $v1, $s1, $t5 +/* 0F4A48 7F0BFF18 00002812 */ mflo $a1 +/* 0F4A4C 7F0BFF1C 0005C080 */ sll $t8, $a1, 2 +/* 0F4A50 7F0BFF20 03002825 */ move $a1, $t8 +.L7F0BFF24: +/* 0F4A54 7F0BFF24 8D0E0000 */ lw $t6, ($t0) +/* 0F4A58 7F0BFF28 80790002 */ lb $t9, 2($v1) +/* 0F4A5C 7F0BFF2C 0004C080 */ sll $t8, $a0, 2 +/* 0F4A60 7F0BFF30 00AE7821 */ addu $t7, $a1, $t6 +/* 0F4A64 7F0BFF34 01F81021 */ addu $v0, $t7, $t8 +/* 0F4A68 7F0BFF38 A0590000 */ sb $t9, ($v0) +/* 0F4A6C 7F0BFF3C 806D0003 */ lb $t5, 3($v1) +/* 0F4A70 7F0BFF40 24840001 */ addiu $a0, $a0, 1 +/* 0F4A74 7F0BFF44 24630006 */ addiu $v1, $v1, 6 +/* 0F4A78 7F0BFF48 A04D0001 */ sb $t5, 1($v0) +/* 0F4A7C 7F0BFF4C 946FFFFA */ lhu $t7, -6($v1) +/* 0F4A80 7F0BFF50 904E0001 */ lbu $t6, 1($v0) +/* 0F4A84 7F0BFF54 904D0000 */ lbu $t5, ($v0) +/* 0F4A88 7F0BFF58 A04F0002 */ sb $t7, 2($v0) +/* 0F4A8C 7F0BFF5C 9478FFFA */ lhu $t8, -6($v1) +/* 0F4A90 7F0BFF60 01AE7821 */ addu $t7, $t5, $t6 +/* 0F4A94 7F0BFF64 0018CA03 */ sra $t9, $t8, 8 +/* 0F4A98 7F0BFF68 90580002 */ lbu $t8, 2($v0) +/* 0F4A9C 7F0BFF6C A0590003 */ sb $t9, 3($v0) +/* 0F4AA0 7F0BFF70 904D0003 */ lbu $t5, 3($v0) +/* 0F4AA4 7F0BFF74 01F8C821 */ addu $t9, $t7, $t8 +/* 0F4AA8 7F0BFF78 032D7021 */ addu $t6, $t9, $t5 +/* 0F4AAC 7F0BFF7C 31CF00FF */ andi $t7, $t6, 0xff +/* 0F4AB0 7F0BFF80 00EF3821 */ addu $a3, $a3, $t7 +/* 0F4AB4 7F0BFF84 30F800FF */ andi $t8, $a3, 0xff +/* 0F4AB8 7F0BFF88 1489FFE6 */ bne $a0, $t1, .L7F0BFF24 +/* 0F4ABC 7F0BFF8C 03003825 */ move $a3, $t8 +.L7F0BFF90: +/* 0F4AC0 7F0BFF90 14D00003 */ bne $a2, $s0, .L7F0BFFA0 +/* 0F4AC4 7F0BFF94 254A0001 */ addiu $t2, $t2, 1 +/* 0F4AC8 7F0BFF98 10000010 */ b .L7F0BFFDC +/* 0F4ACC 7F0BFF9C 8D820000 */ lw $v0, ($t4) +.L7F0BFFA0: +/* 0F4AD0 7F0BFFA0 24D90001 */ addiu $t9, $a2, 1 +/* 0F4AD4 7F0BFFA4 032B001A */ div $zero, $t9, $t3 +/* 0F4AD8 7F0BFFA8 00003010 */ mfhi $a2 +/* 0F4ADC 7F0BFFAC 00002025 */ move $a0, $zero +/* 0F4AE0 7F0BFFB0 15600002 */ bnez $t3, .L7F0BFFBC +/* 0F4AE4 7F0BFFB4 00000000 */ nop +/* 0F4AE8 7F0BFFB8 0007000D */ break 7 +.L7F0BFFBC: +/* 0F4AEC 7F0BFFBC 2401FFFF */ li $at, -1 +/* 0F4AF0 7F0BFFC0 15610004 */ bne $t3, $at, .L7F0BFFD4 +/* 0F4AF4 7F0BFFC4 3C018000 */ lui $at, 0x8000 +/* 0F4AF8 7F0BFFC8 17210002 */ bne $t9, $at, .L7F0BFFD4 +/* 0F4AFC 7F0BFFCC 00000000 */ nop +/* 0F4B00 7F0BFFD0 0006000D */ break 6 +.L7F0BFFD4: +/* 0F4B04 7F0BFFD4 1000FFC8 */ b .L7F0BFEF8 +/* 0F4B08 7F0BFFD8 00000000 */ nop +.L7F0BFFDC: +/* 0F4B0C 7F0BFFDC A04A0001 */ sb $t2, 1($v0) +/* 0F4B10 7F0BFFE0 3C0D8005 */ lui $t5, %hi(D_80048498) +/* 0F4B14 7F0BFFE4 8DAD8498 */ lw $t5, %lo(D_80048498)($t5) +/* 0F4B18 7F0BFFE8 8D8E0000 */ lw $t6, ($t4) +/* 0F4B1C 7F0BFFEC 3C198002 */ lui $t9, %hi(randseed + 0x4) +/* 0F4B20 7F0BFFF0 3C118009 */ lui $s1, %hi(address_demo_loaded) +/* 0F4B24 7F0BFFF4 A1CD0000 */ sb $t5, ($t6) +/* 0F4B28 7F0BFFF8 8D8D0000 */ lw $t5, ($t4) +/* 0F4B2C 7F0BFFFC 8F394464 */ lw $t9, %lo(randseed + 0x4)($t9) +/* 0F4B30 7F0C0000 2631C5F4 */ addiu $s1, %lo(address_demo_loaded) # addiu $s1, $s1, -0x3a0c +/* 0F4B34 7F0C0004 A1B90002 */ sb $t9, 2($t5) +/* 0F4B38 7F0C0008 8D820000 */ lw $v0, ($t4) +/* 0F4B3C 7F0C000C 904E0000 */ lbu $t6, ($v0) +/* 0F4B40 7F0C0010 90580001 */ lbu $t8, 1($v0) +/* 0F4B44 7F0C0014 904F0002 */ lbu $t7, 2($v0) +/* 0F4B48 7F0C0018 01D8C821 */ addu $t9, $t6, $t8 +/* 0F4B4C 7F0C001C 032F7021 */ addu $t6, $t9, $t7 +/* 0F4B50 7F0C0020 0009C880 */ sll $t9, $t1, 2 +/* 0F4B54 7F0C0024 032A0019 */ multu $t9, $t2 +/* 0F4B58 7F0C0028 00EEC021 */ addu $t8, $a3, $t6 +/* 0F4B5C 7F0C002C A0580003 */ sb $t8, 3($v0) +/* 0F4B60 7F0C0030 8E250000 */ lw $a1, ($s1) +/* 0F4B64 7F0C0034 8D840000 */ lw $a0, ($t4) +/* 0F4B68 7F0C0038 00008012 */ mflo $s0 +/* 0F4B6C 7F0C003C 26100004 */ addiu $s0, $s0, 4 +/* 0F4B70 7F0C0040 2606000F */ addiu $a2, $s0, 0xf +/* 0F4B74 7F0C0044 34CF000F */ ori $t7, $a2, 0xf +/* 0F4B78 7F0C0048 0C001742 */ jal romWrite +/* 0F4B7C 7F0C004C 39E6000F */ xori $a2, $t7, 0xf +/* 0F4B80 7F0C0050 8E2E0000 */ lw $t6, ($s1) +/* 0F4B84 7F0C0054 26180001 */ addiu $t8, $s0, 1 +/* 0F4B88 7F0C0058 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F4B8C 7F0C005C 37190001 */ ori $t9, $t8, 1 +/* 0F4B90 7F0C0060 3B2F0001 */ xori $t7, $t9, 1 +/* 0F4B94 7F0C0064 3C018009 */ lui $at, %hi(address_demo_loaded) +/* 0F4B98 7F0C0068 8FB00014 */ lw $s0, 0x14($sp) +/* 0F4B9C 7F0C006C 8FB10018 */ lw $s1, 0x18($sp) +/* 0F4BA0 7F0C0070 01CF6821 */ addu $t5, $t6, $t7 +/* 0F4BA4 7F0C0074 AC2DC5F4 */ sw $t5, %lo(address_demo_loaded)($at) +/* 0F4BA8 7F0C0078 03E00008 */ jr $ra +/* 0F4BAC 7F0C007C 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void ramrom_replay_handler(void) { + +} +#else +GLOBAL_ASM( +.text +glabel ramrom_replay_handler +/* 0F4BB0 7F0C0080 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0F4BB4 7F0C0084 3C028005 */ lui $v0, %hi(ramrom_blkbuf_2) +/* 0F4BB8 7F0C0088 8C42846C */ lw $v0, %lo(ramrom_blkbuf_2)($v0) +/* 0F4BBC 7F0C008C AFBF001C */ sw $ra, 0x1c($sp) +/* 0F4BC0 7F0C0090 AFB10018 */ sw $s1, 0x18($sp) +/* 0F4BC4 7F0C0094 AFB00014 */ sw $s0, 0x14($sp) +/* 0F4BC8 7F0C0098 904A0001 */ lbu $t2, 1($v0) +/* 0F4BCC 7F0C009C 3C0E8005 */ lui $t6, %hi(ptr_active_demofile) +/* 0F4BD0 7F0C00A0 8DCE8468 */ lw $t6, %lo(ptr_active_demofile)($t6) +/* 0F4BD4 7F0C00A4 00A08025 */ move $s0, $a1 +/* 0F4BD8 7F0C00A8 00808825 */ move $s1, $a0 +/* 0F4BDC 7F0C00AC 00004025 */ move $t0, $zero +/* 0F4BE0 7F0C00B0 00003825 */ move $a3, $zero +/* 0F4BE4 7F0C00B4 19400041 */ blez $t2, .L7F0C01BC +/* 0F4BE8 7F0C00B8 8DC60018 */ lw $a2, 0x18($t6) +/* 0F4BEC 7F0C00BC 3C058005 */ lui $a1, %hi(ramrom_blkbuf_3) +/* 0F4BF0 7F0C00C0 24A58470 */ addiu $a1, %lo(ramrom_blkbuf_3) # addiu $a1, $a1, -0x7b90 +/* 0F4BF4 7F0C00C4 240B0014 */ li $t3, 20 +/* 0F4BF8 7F0C00C8 24090004 */ li $t1, 4 +/* 0F4BFC 7F0C00CC 260F0001 */ addiu $t7, $s0, 1 +.L7F0C00D0: +/* 0F4C00 7F0C00D0 01EB001A */ div $zero, $t7, $t3 +/* 0F4C04 7F0C00D4 00008010 */ mfhi $s0 +/* 0F4C08 7F0C00D8 0010C080 */ sll $t8, $s0, 2 +/* 0F4C0C 7F0C00DC 0018C880 */ sll $t9, $t8, 2 +/* 0F4C10 7F0C00E0 0338C823 */ subu $t9, $t9, $t8 +/* 0F4C14 7F0C00E4 0019C840 */ sll $t9, $t9, 1 +/* 0F4C18 7F0C00E8 15600002 */ bnez $t3, .L7F0C00F4 +/* 0F4C1C 7F0C00EC 00000000 */ nop +/* 0F4C20 7F0C00F0 0007000D */ break 7 +.L7F0C00F4: +/* 0F4C24 7F0C00F4 2401FFFF */ li $at, -1 +/* 0F4C28 7F0C00F8 15610004 */ bne $t3, $at, .L7F0C010C +/* 0F4C2C 7F0C00FC 3C018000 */ lui $at, 0x8000 +/* 0F4C30 7F0C0100 15E10002 */ bne $t7, $at, .L7F0C010C +/* 0F4C34 7F0C0104 00000000 */ nop +/* 0F4C38 7F0C0108 0006000D */ break 6 +.L7F0C010C: +/* 0F4C3C 7F0C010C 02391821 */ addu $v1, $s1, $t9 +/* 0F4C40 7F0C0110 00002025 */ move $a0, $zero +.L7F0C0114: +/* 0F4C44 7F0C0114 0086082A */ slt $at, $a0, $a2 +/* 0F4C48 7F0C0118 5020001E */ beql $at, $zero, .L7F0C0194 +/* 0F4C4C 7F0C011C A0600002 */ sb $zero, 2($v1) +/* 0F4C50 7F0C0120 00E60019 */ multu $a3, $a2 +/* 0F4C54 7F0C0124 8CAE0000 */ lw $t6, ($a1) +/* 0F4C58 7F0C0128 0004C080 */ sll $t8, $a0, 2 +/* 0F4C5C 7F0C012C 00006012 */ mflo $t4 +/* 0F4C60 7F0C0130 000C6880 */ sll $t5, $t4, 2 +/* 0F4C64 7F0C0134 01AE7821 */ addu $t7, $t5, $t6 +/* 0F4C68 7F0C0138 01F81021 */ addu $v0, $t7, $t8 +/* 0F4C6C 7F0C013C 80590000 */ lb $t9, ($v0) +/* 0F4C70 7F0C0140 A0790002 */ sb $t9, 2($v1) +/* 0F4C74 7F0C0144 804C0001 */ lb $t4, 1($v0) +/* 0F4C78 7F0C0148 A06C0003 */ sb $t4, 3($v1) +/* 0F4C7C 7F0C014C 904D0003 */ lbu $t5, 3($v0) +/* 0F4C80 7F0C0150 904F0002 */ lbu $t7, 2($v0) +/* 0F4C84 7F0C0154 000D7200 */ sll $t6, $t5, 8 +/* 0F4C88 7F0C0158 01CFC025 */ or $t8, $t6, $t7 +/* 0F4C8C 7F0C015C A4780000 */ sh $t8, ($v1) +/* 0F4C90 7F0C0160 904C0001 */ lbu $t4, 1($v0) +/* 0F4C94 7F0C0164 90590000 */ lbu $t9, ($v0) +/* 0F4C98 7F0C0168 904E0002 */ lbu $t6, 2($v0) +/* 0F4C9C 7F0C016C 90580003 */ lbu $t8, 3($v0) +/* 0F4CA0 7F0C0170 032C6821 */ addu $t5, $t9, $t4 +/* 0F4CA4 7F0C0174 01AE7821 */ addu $t7, $t5, $t6 +/* 0F4CA8 7F0C0178 01F8C821 */ addu $t9, $t7, $t8 +/* 0F4CAC 7F0C017C 332C00FF */ andi $t4, $t9, 0xff +/* 0F4CB0 7F0C0180 010C4021 */ addu $t0, $t0, $t4 +/* 0F4CB4 7F0C0184 310D00FF */ andi $t5, $t0, 0xff +/* 0F4CB8 7F0C0188 10000004 */ b .L7F0C019C +/* 0F4CBC 7F0C018C 01A04025 */ move $t0, $t5 +/* 0F4CC0 7F0C0190 A0600002 */ sb $zero, 2($v1) +.L7F0C0194: +/* 0F4CC4 7F0C0194 A0600003 */ sb $zero, 3($v1) +/* 0F4CC8 7F0C0198 A4600000 */ sh $zero, ($v1) +.L7F0C019C: +/* 0F4CCC 7F0C019C 24840001 */ addiu $a0, $a0, 1 +/* 0F4CD0 7F0C01A0 1489FFDC */ bne $a0, $t1, .L7F0C0114 +/* 0F4CD4 7F0C01A4 24630006 */ addiu $v1, $v1, 6 +/* 0F4CD8 7F0C01A8 24E70001 */ addiu $a3, $a3, 1 +/* 0F4CDC 7F0C01AC 54EAFFC8 */ bnel $a3, $t2, .L7F0C00D0 +/* 0F4CE0 7F0C01B0 260F0001 */ addiu $t7, $s0, 1 +/* 0F4CE4 7F0C01B4 3C028005 */ lui $v0, %hi(ramrom_blkbuf_2) +/* 0F4CE8 7F0C01B8 8C42846C */ lw $v0, %lo(ramrom_blkbuf_2)($v0) +.L7F0C01BC: +/* 0F4CEC 7F0C01BC 3C0F8002 */ lui $t7, %hi(randseed + 0x4) +/* 0F4CF0 7F0C01C0 8DEF4464 */ lw $t7, %lo(randseed + 0x4)($t7) +/* 0F4CF4 7F0C01C4 90430002 */ lbu $v1, 2($v0) +/* 0F4CF8 7F0C01C8 31F900FF */ andi $t9, $t7, 0xff +/* 0F4CFC 7F0C01CC 53230008 */ beql $t9, $v1, .L7F0C01F0 +/* 0F4D00 7F0C01D0 904C0000 */ lbu $t4, ($v0) +/* 0F4D04 7F0C01D4 0FC30232 */ jal ensureCameraModeA +/* 0F4D08 7F0C01D8 A3A80023 */ sb $t0, 0x23($sp) +/* 0F4D0C 7F0C01DC 3C028005 */ lui $v0, %hi(ramrom_blkbuf_2) +/* 0F4D10 7F0C01E0 8C42846C */ lw $v0, %lo(ramrom_blkbuf_2)($v0) +/* 0F4D14 7F0C01E4 93A80023 */ lbu $t0, 0x23($sp) +/* 0F4D18 7F0C01E8 90430002 */ lbu $v1, 2($v0) +/* 0F4D1C 7F0C01EC 904C0000 */ lbu $t4, ($v0) +.L7F0C01F0: +/* 0F4D20 7F0C01F0 904D0001 */ lbu $t5, 1($v0) +/* 0F4D24 7F0C01F4 018D7021 */ addu $t6, $t4, $t5 +/* 0F4D28 7F0C01F8 904C0003 */ lbu $t4, 3($v0) +/* 0F4D2C 7F0C01FC 01C3C021 */ addu $t8, $t6, $v1 +/* 0F4D30 7F0C0200 01184021 */ addu $t0, $t0, $t8 +/* 0F4D34 7F0C0204 311900FF */ andi $t9, $t0, 0xff +/* 0F4D38 7F0C0208 132C0003 */ beq $t9, $t4, .L7F0C0218 +/* 0F4D3C 7F0C020C 00000000 */ nop +/* 0F4D40 7F0C0210 0FC30232 */ jal ensureCameraModeA +/* 0F4D44 7F0C0214 00000000 */ nop +.L7F0C0218: +/* 0F4D48 7F0C0218 0C00324C */ jal controller_7000C930 +/* 0F4D4C 7F0C021C 00002025 */ move $a0, $zero +/* 0F4D50 7F0C0220 00002025 */ move $a0, $zero +/* 0F4D54 7F0C0224 0C0030EB */ jal get_controller_buttons_pressed +/* 0F4D58 7F0C0228 3405FFFF */ li $a1, 65535 +/* 0F4D5C 7F0C022C 10400006 */ beqz $v0, .L7F0C0248 +/* 0F4D60 7F0C0230 00000000 */ nop +/* 0F4D64 7F0C0234 0FC30232 */ jal ensureCameraModeA +/* 0F4D68 7F0C0238 00000000 */ nop +/* 0F4D6C 7F0C023C 240D0001 */ li $t5, 1 +/* 0F4D70 7F0C0240 3C018003 */ lui $at, %hi(prev_keypresses) +/* 0F4D74 7F0C0244 AC2DA934 */ sw $t5, %lo(prev_keypresses)($at) +.L7F0C0248: +/* 0F4D78 7F0C0248 0C00324C */ jal controller_7000C930 +/* 0F4D7C 7F0C024C 24040001 */ li $a0, 1 +/* 0F4D80 7F0C0250 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F4D84 7F0C0254 02001025 */ move $v0, $s0 +/* 0F4D88 7F0C0258 8FB00014 */ lw $s0, 0x14($sp) +/* 0F4D8C 7F0C025C 8FB10018 */ lw $s1, 0x18($sp) +/* 0F4D90 7F0C0260 03E00008 */ jr $ra +/* 0F4D94 7F0C0264 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +s32 iterate_ramrom_entries_handle_camera_out(void) { + ? temp_ret; + s32 temp_a3; + s32 temp_v1; + s32 phi_a0; + void *phi_v1; + s32 phi_a3; + void *phi_v1_2; + s32 phi_return; + + // Node 0 + temp_ret = romCopyAligned(&ramrom_data_target + 0x1F8, address_demo_loaded, 4); + ramrom_blkbuf_2 = temp_ret; + temp_a3 = temp_ret->unk1; + phi_a0 = temp_a3; + phi_v1 = temp_ret; + phi_a3 = temp_a3; + if (temp_a3 > 0) + { + // Node 1 + ramrom_blkbuf_3 = romCopyAligned(&ramrom_data_target + 0x21E, (address_demo_loaded + 4), ((ptr_active_demofile->unk18 * 4) * temp_a3), temp_a3); + phi_a0 = ramrom_blkbuf_2->unk1; + phi_v1 = (void *) ramrom_blkbuf_2; + phi_a3 = ramrom_blkbuf_2->unk1; + } + // Node 2 + if ((phi_a0 == 0) && (*phi_v1 == 0)) + { + // Node 4 + ensureCameraModeA(phi_a0, phi_a3); + phi_v1_2 = (void *) ramrom_blkbuf_2; + } + else + { + // Node 5 + address_demo_loaded = (s32) (address_demo_loaded + (((((ptr_active_demofile->unk18 * 4) * phi_a3) + 5) | 1) ^ 1)); + phi_v1_2 = phi_v1; + } + // Node 6 + sub_GAME_7F0C0AA0(*phi_v1_2); + temp_v1 = (ptr_active_demofile->unk7C + -0x3c); + phi_return = global_timer; + if (global_timer >= temp_v1) + { + // Node 7 + phi_return = global_timer; + if ((global_timer - clock_timer) < temp_v1) + { + // Node 8 + phi_return = ensureCameraModeA(); + } + } + // Node 9 + return phi_return; +} + +#else +GLOBAL_ASM( +.text +glabel iterate_ramrom_entries_handle_camera_out +/* 0F4D98 7F0C0268 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F4D9C 7F0C026C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F4DA0 7F0C0270 3C048009 */ lui $a0, %hi(ramrom_data_target + 0x1F8) +/* 0F4DA4 7F0C0274 3C058009 */ lui $a1, %hi(address_demo_loaded) +/* 0F4DA8 7F0C0278 8CA5C5F4 */ lw $a1, %lo(address_demo_loaded)($a1) +/* 0F4DAC 7F0C027C 2484C468 */ addiu $a0, %lo(ramrom_data_target + 0x1F8) # addiu $a0, $a0, -0x3b98 +/* 0F4DB0 7F0C0280 0C001711 */ jal romCopyAligned +/* 0F4DB4 7F0C0284 24060004 */ li $a2, 4 +/* 0F4DB8 7F0C0288 3C058005 */ lui $a1, %hi(ramrom_blkbuf_2) +/* 0F4DBC 7F0C028C 24A5846C */ addiu $a1, %lo(ramrom_blkbuf_2) # addiu $a1, $a1, -0x7b94 +/* 0F4DC0 7F0C0290 ACA20000 */ sw $v0, ($a1) +/* 0F4DC4 7F0C0294 90470001 */ lbu $a3, 1($v0) +/* 0F4DC8 7F0C0298 00401825 */ move $v1, $v0 +/* 0F4DCC 7F0C029C 3C0E8005 */ lui $t6, %hi(ptr_active_demofile) +/* 0F4DD0 7F0C02A0 18E00013 */ blez $a3, .L7F0C02F0 +/* 0F4DD4 7F0C02A4 00E02025 */ move $a0, $a3 +/* 0F4DD8 7F0C02A8 8DCE8468 */ lw $t6, %lo(ptr_active_demofile)($t6) +/* 0F4DDC 7F0C02AC 3C058009 */ lui $a1, %hi(address_demo_loaded) +/* 0F4DE0 7F0C02B0 8CA5C5F4 */ lw $a1, %lo(address_demo_loaded)($a1) +/* 0F4DE4 7F0C02B4 8DCF0018 */ lw $t7, 0x18($t6) +/* 0F4DE8 7F0C02B8 3C048009 */ lui $a0, %hi(ramrom_data_target + 0x21E) +/* 0F4DEC 7F0C02BC 2484C48E */ addiu $a0, %lo(ramrom_data_target + 0x21E) # addiu $a0, $a0, -0x3b72 +/* 0F4DF0 7F0C02C0 000FC080 */ sll $t8, $t7, 2 +/* 0F4DF4 7F0C02C4 03070019 */ multu $t8, $a3 +/* 0F4DF8 7F0C02C8 24A50004 */ addiu $a1, $a1, 4 +/* 0F4DFC 7F0C02CC 00003012 */ mflo $a2 +/* 0F4E00 7F0C02D0 0C001711 */ jal romCopyAligned +/* 0F4E04 7F0C02D4 00000000 */ nop +/* 0F4E08 7F0C02D8 3C038005 */ lui $v1, %hi(ramrom_blkbuf_2) +/* 0F4E0C 7F0C02DC 8C63846C */ lw $v1, %lo(ramrom_blkbuf_2)($v1) +/* 0F4E10 7F0C02E0 3C018005 */ lui $at, %hi(ramrom_blkbuf_3) +/* 0F4E14 7F0C02E4 AC228470 */ sw $v0, %lo(ramrom_blkbuf_3)($at) +/* 0F4E18 7F0C02E8 90670001 */ lbu $a3, 1($v1) +/* 0F4E1C 7F0C02EC 00E02025 */ move $a0, $a3 +.L7F0C02F0: +/* 0F4E20 7F0C02F0 14800009 */ bnez $a0, .L7F0C0318 +/* 0F4E24 7F0C02F4 3C098005 */ lui $t1, %hi(ptr_active_demofile) +/* 0F4E28 7F0C02F8 90790000 */ lbu $t9, ($v1) +/* 0F4E2C 7F0C02FC 17200006 */ bnez $t9, .L7F0C0318 +/* 0F4E30 7F0C0300 00000000 */ nop +/* 0F4E34 7F0C0304 0FC30232 */ jal ensureCameraModeA +/* 0F4E38 7F0C0308 00000000 */ nop +/* 0F4E3C 7F0C030C 3C038005 */ lui $v1, %hi(ramrom_blkbuf_2) +/* 0F4E40 7F0C0310 1000000E */ b .L7F0C034C +/* 0F4E44 7F0C0314 8C63846C */ lw $v1, %lo(ramrom_blkbuf_2)($v1) +.L7F0C0318: +/* 0F4E48 7F0C0318 8D298468 */ lw $t1, %lo(ptr_active_demofile)($t1) +/* 0F4E4C 7F0C031C 3C088009 */ lui $t0, %hi(address_demo_loaded) +/* 0F4E50 7F0C0320 8D08C5F4 */ lw $t0, %lo(address_demo_loaded)($t0) +/* 0F4E54 7F0C0324 8D2A0018 */ lw $t2, 0x18($t1) +/* 0F4E58 7F0C0328 3C018009 */ lui $at, %hi(address_demo_loaded) +/* 0F4E5C 7F0C032C 000A5880 */ sll $t3, $t2, 2 +/* 0F4E60 7F0C0330 01670019 */ multu $t3, $a3 +/* 0F4E64 7F0C0334 00006012 */ mflo $t4 +/* 0F4E68 7F0C0338 258D0005 */ addiu $t5, $t4, 5 +/* 0F4E6C 7F0C033C 35AE0001 */ ori $t6, $t5, 1 +/* 0F4E70 7F0C0340 39CF0001 */ xori $t7, $t6, 1 +/* 0F4E74 7F0C0344 010FC021 */ addu $t8, $t0, $t7 +/* 0F4E78 7F0C0348 AC38C5F4 */ sw $t8, %lo(address_demo_loaded)($at) +.L7F0C034C: +/* 0F4E7C 7F0C034C 0FC302A8 */ jal sub_GAME_7F0C0AA0 +/* 0F4E80 7F0C0350 90640000 */ lbu $a0, ($v1) +/* 0F4E84 7F0C0354 3C198005 */ lui $t9, %hi(ptr_active_demofile) +/* 0F4E88 7F0C0358 8F398468 */ lw $t9, %lo(ptr_active_demofile)($t9) +/* 0F4E8C 7F0C035C 3C028005 */ lui $v0, %hi(global_timer) +/* 0F4E90 7F0C0360 8C42837C */ lw $v0, %lo(global_timer)($v0) +/* 0F4E94 7F0C0364 8F23007C */ lw $v1, 0x7c($t9) +/* 0F4E98 7F0C0368 3C098005 */ lui $t1, %hi(clock_timer) +/* 0F4E9C 7F0C036C 2463FFC4 */ addiu $v1, $v1, -0x3c +/* 0F4EA0 7F0C0370 0043082A */ slt $at, $v0, $v1 +/* 0F4EA4 7F0C0374 54200009 */ bnezl $at, .L7F0C039C +/* 0F4EA8 7F0C0378 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4EAC 7F0C037C 8D298374 */ lw $t1, %lo(clock_timer)($t1) +/* 0F4EB0 7F0C0380 00495023 */ subu $t2, $v0, $t1 +/* 0F4EB4 7F0C0384 0143082A */ slt $at, $t2, $v1 +/* 0F4EB8 7F0C0388 50200004 */ beql $at, $zero, .L7F0C039C +/* 0F4EBC 7F0C038C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4EC0 7F0C0390 0FC30232 */ jal ensureCameraModeA +/* 0F4EC4 7F0C0394 00000000 */ nop +/* 0F4EC8 7F0C0398 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C039C: +/* 0F4ECC 7F0C039C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F4ED0 7F0C03A0 03E00008 */ jr $ra +/* 0F4ED4 7F0C03A4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void copy_current_ingame_registers_before_ramrom_playback(void *arg0) { + ? temp_ret; + + // Node 0 + arg0->unk4 = (?32) randseed + 0x4; + *arg0 = (?32) randseed; + arg0->unkC = (?32) random_val + 0x4; + arg0->unk8 = (?32) random_val; + arg0->unk84 = (?32) gamemode; + arg0->unk8C = (?32) selected_num_players; + arg0->unk90 = (?32) scenario; + arg0->unk94 = (?32) MP_stage_selected; + arg0->unk98 = (?32) game_length; + arg0->unk9C = getMPWeaponSet(); + arg0->unkA0 = (?32) player_1_char; + arg0->unkA4 = (?32) player_1_char.unk4; + arg0->unkA8 = (?32) player_1_char.unk8; + arg0->unkAC = (?32) player_1_char.unkC; + arg0->unkB0 = (?32) handicap_player1; + arg0->unkB4 = (?32) handicap_player1.unk4; + arg0->unkB8 = (?32) handicap_player1.unk8; + arg0->unkBC = (?32) handicap_player1.unkC; + arg0->unkC0 = (?32) controlstyle_player; + arg0->unkC4 = (?32) controlstyle_player.unk4; + arg0->unkC8 = (?32) controlstyle_player.unk8; + arg0->unkCC = (?32) controlstyle_player.unkC; + arg0->unkD0 = (?32) aim_sight_adjustment; + arg0->unkD4 = get_players_team_or_scenario_item_flag(0); + arg0->unkD8 = get_players_team_or_scenario_item_flag(1); + arg0->unkDC = get_players_team_or_scenario_item_flag(2); + arg0->unkE0 = get_players_team_or_scenario_item_flag(3); +} + +#else +GLOBAL_ASM( +.text +glabel copy_current_ingame_registers_before_ramrom_playback +/* 0F4ED8 7F0C03A8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F4EDC 7F0C03AC 3C0E8002 */ lui $t6, %hi(randseed) +/* 0F4EE0 7F0C03B0 3C0F8002 */ lui $t7, %hi(randseed + 0x4) +/* 0F4EE4 7F0C03B4 8DEF4464 */ lw $t7, %lo(randseed + 0x4)($t7) +/* 0F4EE8 7F0C03B8 8DCE4460 */ lw $t6, %lo(randseed)($t6) +/* 0F4EEC 7F0C03BC AFBF001C */ sw $ra, 0x1c($sp) +/* 0F4EF0 7F0C03C0 AFB00018 */ sw $s0, 0x18($sp) +/* 0F4EF4 7F0C03C4 AC8F0004 */ sw $t7, 4($a0) +/* 0F4EF8 7F0C03C8 AC8E0000 */ sw $t6, ($a0) +/* 0F4EFC 7F0C03CC 3C188004 */ lui $t8, %hi(random_val) +/* 0F4F00 7F0C03D0 3C198004 */ lui $t9, %hi(random_val + 0x4) +/* 0F4F04 7F0C03D4 8F390164 */ lw $t9, %lo(random_val + 0x4)($t9) +/* 0F4F08 7F0C03D8 8F180160 */ lw $t8, %lo(random_val)($t8) +/* 0F4F0C 7F0C03DC 3C088003 */ lui $t0, %hi(gamemode) +/* 0F4F10 7F0C03E0 AC99000C */ sw $t9, 0xc($a0) +/* 0F4F14 7F0C03E4 AC980008 */ sw $t8, 8($a0) +/* 0F4F18 7F0C03E8 8D08A8F0 */ lw $t0, %lo(gamemode)($t0) +/* 0F4F1C 7F0C03EC 3C098003 */ lui $t1, %hi(selected_num_players) +/* 0F4F20 7F0C03F0 3C0A8003 */ lui $t2, %hi(scenario) +/* 0F4F24 7F0C03F4 AC880084 */ sw $t0, 0x84($a0) +/* 0F4F28 7F0C03F8 8D29B520 */ lw $t1, %lo(selected_num_players)($t1) +/* 0F4F2C 7F0C03FC 3C0B8003 */ lui $t3, %hi(MP_stage_selected) +/* 0F4F30 7F0C0400 3C0C8003 */ lui $t4, %hi(game_length) +/* 0F4F34 7F0C0404 AC89008C */ sw $t1, 0x8c($a0) +/* 0F4F38 7F0C0408 8D4AB540 */ lw $t2, %lo(scenario)($t2) +/* 0F4F3C 7F0C040C 00808025 */ move $s0, $a0 +/* 0F4F40 7F0C0410 AC8A0090 */ sw $t2, 0x90($a0) +/* 0F4F44 7F0C0414 8D6BB534 */ lw $t3, %lo(MP_stage_selected)($t3) +/* 0F4F48 7F0C0418 AC8B0094 */ sw $t3, 0x94($a0) +/* 0F4F4C 7F0C041C 8D8CB538 */ lw $t4, %lo(game_length)($t4) +/* 0F4F50 7F0C0420 0FC3198F */ jal getMPWeaponSet +/* 0F4F54 7F0C0424 AC8C0098 */ sw $t4, 0x98($a0) +/* 0F4F58 7F0C0428 3C038003 */ lui $v1, %hi(player_1_char) +/* 0F4F5C 7F0C042C 2463B524 */ addiu $v1, %lo(player_1_char) # addiu $v1, $v1, -0x4adc +/* 0F4F60 7F0C0430 AE02009C */ sw $v0, 0x9c($s0) +/* 0F4F64 7F0C0434 8C6D0000 */ lw $t5, ($v1) +/* 0F4F68 7F0C0438 3C058007 */ lui $a1, %hi(handicap_player1) +/* 0F4F6C 7F0C043C 24A597A8 */ addiu $a1, %lo(handicap_player1) # addiu $a1, $a1, -0x6858 +/* 0F4F70 7F0C0440 AE0D00A0 */ sw $t5, 0xa0($s0) +/* 0F4F74 7F0C0444 8C6E0004 */ lw $t6, 4($v1) +/* 0F4F78 7F0C0448 3C068007 */ lui $a2, %hi(controlstyle_player) +/* 0F4F7C 7F0C044C 24C697B8 */ addiu $a2, %lo(controlstyle_player) # addiu $a2, $a2, -0x6848 +/* 0F4F80 7F0C0450 AE0E00A4 */ sw $t6, 0xa4($s0) +/* 0F4F84 7F0C0454 8C6F0008 */ lw $t7, 8($v1) +/* 0F4F88 7F0C0458 00002025 */ move $a0, $zero +/* 0F4F8C 7F0C045C AE0F00A8 */ sw $t7, 0xa8($s0) +/* 0F4F90 7F0C0460 8C78000C */ lw $t8, 0xc($v1) +/* 0F4F94 7F0C0464 3C0F8003 */ lui $t7, %hi(aim_sight_adjustment) +/* 0F4F98 7F0C0468 AE1800AC */ sw $t8, 0xac($s0) +/* 0F4F9C 7F0C046C 8CB90000 */ lw $t9, ($a1) +/* 0F4FA0 7F0C0470 AE1900B0 */ sw $t9, 0xb0($s0) +/* 0F4FA4 7F0C0474 8CA80004 */ lw $t0, 4($a1) +/* 0F4FA8 7F0C0478 AE0800B4 */ sw $t0, 0xb4($s0) +/* 0F4FAC 7F0C047C 8CA90008 */ lw $t1, 8($a1) +/* 0F4FB0 7F0C0480 AE0900B8 */ sw $t1, 0xb8($s0) +/* 0F4FB4 7F0C0484 8CAA000C */ lw $t2, 0xc($a1) +/* 0F4FB8 7F0C0488 AE0A00BC */ sw $t2, 0xbc($s0) +/* 0F4FBC 7F0C048C 8CCB0000 */ lw $t3, ($a2) +/* 0F4FC0 7F0C0490 AE0B00C0 */ sw $t3, 0xc0($s0) +/* 0F4FC4 7F0C0494 8CCC0004 */ lw $t4, 4($a2) +/* 0F4FC8 7F0C0498 AE0C00C4 */ sw $t4, 0xc4($s0) +/* 0F4FCC 7F0C049C 8CCD0008 */ lw $t5, 8($a2) +/* 0F4FD0 7F0C04A0 AE0D00C8 */ sw $t5, 0xc8($s0) +/* 0F4FD4 7F0C04A4 8CCE000C */ lw $t6, 0xc($a2) +/* 0F4FD8 7F0C04A8 AE0E00CC */ sw $t6, 0xcc($s0) +/* 0F4FDC 7F0C04AC 8DEFB53C */ lw $t7, %lo(aim_sight_adjustment)($t7) +/* 0F4FE0 7F0C04B0 0FC05322 */ jal get_players_team_or_scenario_item_flag +/* 0F4FE4 7F0C04B4 AE0F00D0 */ sw $t7, 0xd0($s0) +/* 0F4FE8 7F0C04B8 AE0200D4 */ sw $v0, 0xd4($s0) +/* 0F4FEC 7F0C04BC 0FC05322 */ jal get_players_team_or_scenario_item_flag +/* 0F4FF0 7F0C04C0 24040001 */ li $a0, 1 +/* 0F4FF4 7F0C04C4 AE0200D8 */ sw $v0, 0xd8($s0) +/* 0F4FF8 7F0C04C8 0FC05322 */ jal get_players_team_or_scenario_item_flag +/* 0F4FFC 7F0C04CC 24040002 */ li $a0, 2 +/* 0F5000 7F0C04D0 AE0200DC */ sw $v0, 0xdc($s0) +/* 0F5004 7F0C04D4 0FC05322 */ jal get_players_team_or_scenario_item_flag +/* 0F5008 7F0C04D8 24040003 */ li $a0, 3 +/* 0F500C 7F0C04DC AE0200E0 */ sw $v0, 0xe0($s0) +/* 0F5010 7F0C04E0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F5014 7F0C04E4 8FB00018 */ lw $s0, 0x18($sp) +/* 0F5018 7F0C04E8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F501C 7F0C04EC 03E00008 */ jr $ra +/* 0F5020 7F0C04F0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void copy_recorded_ramrom_registers_to_proper_place_ingame(void *arg0) { + // Node 0 + randseed = (?32) *arg0; + randseed + 0x4 = (?32) arg0->unk4; + random_val = (?32) arg0->unk8; + random_val + 0x4 = (?32) arg0->unkC; + gamemode = (?32) arg0->unk84; + selected_num_players = (?32) arg0->unk8C; + scenario = (?32) arg0->unk90; + MP_stage_selected = (?32) arg0->unk94; + game_length = (?32) arg0->unk98; + setMPWeaponSet(arg0->unk9C); + player_1_char = (?32) arg0->unkA0; + player_1_char.unk4 = (?32) arg0->unkA4; + player_1_char.unk8 = (?32) arg0->unkA8; + player_1_char.unkC = (?32) arg0->unkAC; + handicap_player1 = (?32) arg0->unkB0; + handicap_player1.unk4 = (?32) arg0->unkB4; + handicap_player1.unk8 = (?32) arg0->unkB8; + handicap_player1.unkC = (?32) arg0->unkBC; + controlstyle_player = (?32) arg0->unkC0; + controlstyle_player.unk4 = (?32) arg0->unkC4; + controlstyle_player.unk8 = (?32) arg0->unkC8; + controlstyle_player.unkC = (?32) arg0->unkCC; + aim_sight_adjustment = (?32) arg0->unkD0; + set_players_team_or_scenario_item_flag(0, arg0->unkD4, &controlstyle_player); + set_players_team_or_scenario_item_flag(1, arg0->unkD8); + set_players_team_or_scenario_item_flag(2, arg0->unkDC); + return set_players_team_or_scenario_item_flag(3, arg0->unkE0); +} +#else +GLOBAL_ASM( +.text +glabel copy_recorded_ramrom_registers_to_proper_place_ingame +/* 0F5024 7F0C04F4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F5028 7F0C04F8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F502C 7F0C04FC AFB00018 */ sw $s0, 0x18($sp) +/* 0F5030 7F0C0500 8C8E0000 */ lw $t6, ($a0) +/* 0F5034 7F0C0504 8C8F0004 */ lw $t7, 4($a0) +/* 0F5038 7F0C0508 3C018002 */ lui $at, %hi(randseed) +/* 0F503C 7F0C050C AC2E4460 */ sw $t6, %lo(randseed)($at) +/* 0F5040 7F0C0510 3C018002 */ lui $at, %hi(randseed + 0x4) +/* 0F5044 7F0C0514 AC2F4464 */ sw $t7, %lo(randseed + 0x4)($at) +/* 0F5048 7F0C0518 8C980008 */ lw $t8, 8($a0) +/* 0F504C 7F0C051C 8C99000C */ lw $t9, 0xc($a0) +/* 0F5050 7F0C0520 3C018004 */ lui $at, %hi(random_val) +/* 0F5054 7F0C0524 AC380160 */ sw $t8, %lo(random_val)($at) +/* 0F5058 7F0C0528 3C018004 */ lui $at, %hi(random_val + 0x4) +/* 0F505C 7F0C052C AC390164 */ sw $t9, %lo(random_val + 0x4)($at) +/* 0F5060 7F0C0530 8C880084 */ lw $t0, 0x84($a0) +/* 0F5064 7F0C0534 3C018003 */ lui $at, %hi(gamemode) +/* 0F5068 7F0C0538 00808025 */ move $s0, $a0 +/* 0F506C 7F0C053C AC28A8F0 */ sw $t0, %lo(gamemode)($at) +/* 0F5070 7F0C0540 8C89008C */ lw $t1, 0x8c($a0) +/* 0F5074 7F0C0544 3C018003 */ lui $at, %hi(selected_num_players) +/* 0F5078 7F0C0548 AC29B520 */ sw $t1, %lo(selected_num_players)($at) +/* 0F507C 7F0C054C 8C8A0090 */ lw $t2, 0x90($a0) +/* 0F5080 7F0C0550 3C018003 */ lui $at, %hi(scenario) +/* 0F5084 7F0C0554 AC2AB540 */ sw $t2, %lo(scenario)($at) +/* 0F5088 7F0C0558 8C8B0094 */ lw $t3, 0x94($a0) +/* 0F508C 7F0C055C 3C018003 */ lui $at, %hi(MP_stage_selected) +/* 0F5090 7F0C0560 AC2BB534 */ sw $t3, %lo(MP_stage_selected)($at) +/* 0F5094 7F0C0564 8C8C0098 */ lw $t4, 0x98($a0) +/* 0F5098 7F0C0568 3C018003 */ lui $at, %hi(game_length) +/* 0F509C 7F0C056C AC2CB538 */ sw $t4, %lo(game_length)($at) +/* 0F50A0 7F0C0570 0FC3198C */ jal setMPWeaponSet +/* 0F50A4 7F0C0574 8C84009C */ lw $a0, 0x9c($a0) +/* 0F50A8 7F0C0578 8E0D00A0 */ lw $t5, 0xa0($s0) +/* 0F50AC 7F0C057C 3C028003 */ lui $v0, %hi(player_1_char) +/* 0F50B0 7F0C0580 2442B524 */ addiu $v0, %lo(player_1_char) # addiu $v0, $v0, -0x4adc +/* 0F50B4 7F0C0584 AC4D0000 */ sw $t5, ($v0) +/* 0F50B8 7F0C0588 8E0E00A4 */ lw $t6, 0xa4($s0) +/* 0F50BC 7F0C058C 3C038007 */ lui $v1, %hi(handicap_player1) +/* 0F50C0 7F0C0590 246397A8 */ addiu $v1, %lo(handicap_player1) # addiu $v1, $v1, -0x6858 +/* 0F50C4 7F0C0594 AC4E0004 */ sw $t6, 4($v0) +/* 0F50C8 7F0C0598 8E0F00A8 */ lw $t7, 0xa8($s0) +/* 0F50CC 7F0C059C 3C068007 */ lui $a2, %hi(controlstyle_player) +/* 0F50D0 7F0C05A0 24C697B8 */ addiu $a2, %lo(controlstyle_player) # addiu $a2, $a2, -0x6848 +/* 0F50D4 7F0C05A4 AC4F0008 */ sw $t7, 8($v0) +/* 0F50D8 7F0C05A8 8E1800AC */ lw $t8, 0xac($s0) +/* 0F50DC 7F0C05AC 3C018003 */ lui $at, %hi(aim_sight_adjustment) +/* 0F50E0 7F0C05B0 00002025 */ move $a0, $zero +/* 0F50E4 7F0C05B4 AC58000C */ sw $t8, 0xc($v0) +/* 0F50E8 7F0C05B8 8E1900B0 */ lw $t9, 0xb0($s0) +/* 0F50EC 7F0C05BC AC790000 */ sw $t9, ($v1) +/* 0F50F0 7F0C05C0 8E0800B4 */ lw $t0, 0xb4($s0) +/* 0F50F4 7F0C05C4 AC680004 */ sw $t0, 4($v1) +/* 0F50F8 7F0C05C8 8E0900B8 */ lw $t1, 0xb8($s0) +/* 0F50FC 7F0C05CC AC690008 */ sw $t1, 8($v1) +/* 0F5100 7F0C05D0 8E0A00BC */ lw $t2, 0xbc($s0) +/* 0F5104 7F0C05D4 AC6A000C */ sw $t2, 0xc($v1) +/* 0F5108 7F0C05D8 8E0B00C0 */ lw $t3, 0xc0($s0) +/* 0F510C 7F0C05DC ACCB0000 */ sw $t3, ($a2) +/* 0F5110 7F0C05E0 8E0C00C4 */ lw $t4, 0xc4($s0) +/* 0F5114 7F0C05E4 ACCC0004 */ sw $t4, 4($a2) +/* 0F5118 7F0C05E8 8E0D00C8 */ lw $t5, 0xc8($s0) +/* 0F511C 7F0C05EC ACCD0008 */ sw $t5, 8($a2) +/* 0F5120 7F0C05F0 8E0E00CC */ lw $t6, 0xcc($s0) +/* 0F5124 7F0C05F4 ACCE000C */ sw $t6, 0xc($a2) +/* 0F5128 7F0C05F8 8E0F00D0 */ lw $t7, 0xd0($s0) +/* 0F512C 7F0C05FC AC2FB53C */ sw $t7, %lo(aim_sight_adjustment)($at) +/* 0F5130 7F0C0600 0FC05329 */ jal set_players_team_or_scenario_item_flag +/* 0F5134 7F0C0604 8E0500D4 */ lw $a1, 0xd4($s0) +/* 0F5138 7F0C0608 24040001 */ li $a0, 1 +/* 0F513C 7F0C060C 0FC05329 */ jal set_players_team_or_scenario_item_flag +/* 0F5140 7F0C0610 8E0500D8 */ lw $a1, 0xd8($s0) +/* 0F5144 7F0C0614 24040002 */ li $a0, 2 +/* 0F5148 7F0C0618 0FC05329 */ jal set_players_team_or_scenario_item_flag +/* 0F514C 7F0C061C 8E0500DC */ lw $a1, 0xdc($s0) +/* 0F5150 7F0C0620 24040003 */ li $a0, 3 +/* 0F5154 7F0C0624 0FC05329 */ jal set_players_team_or_scenario_item_flag +/* 0F5158 7F0C0628 8E0500E0 */ lw $a1, 0xe0($s0) +/* 0F515C 7F0C062C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F5160 7F0C0630 8FB00018 */ lw $s0, 0x18($sp) +/* 0F5164 7F0C0634 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F5168 7F0C0638 03E00008 */ jr $ra +/* 0F516C 7F0C063C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void test_if_recording_demos_this_stage_load(void) { + +} +#else +GLOBAL_ASM( +.text +glabel test_if_recording_demos_this_stage_load +/* 0F5170 7F0C0640 3C0E8005 */ lui $t6, %hi(flag_to_record_ramrom) +/* 0F5174 7F0C0644 8DCE8488 */ lw $t6, %lo(flag_to_record_ramrom)($t6) +/* 0F5178 7F0C0648 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F517C 7F0C064C AFBF001C */ sw $ra, 0x1c($sp) +/* 0F5180 7F0C0650 11C00032 */ beqz $t6, .L7F0C071C +/* 0F5184 7F0C0654 AFB00018 */ sw $s0, 0x18($sp) +/* 0F5188 7F0C0658 3C0F8009 */ lui $t7, %hi(ramrom_data_target) +/* 0F518C 7F0C065C 25EFC270 */ addiu $t7, %lo(ramrom_data_target) # addiu $t7, $t7, -0x3d90 +/* 0F5190 7F0C0660 25F8000F */ addiu $t8, $t7, 0xf +/* 0F5194 7F0C0664 3C108005 */ lui $s0, %hi(ptr_active_demofile) +/* 0F5198 7F0C0668 3719000F */ ori $t9, $t8, 0xf +/* 0F519C 7F0C066C 26108468 */ addiu $s0, %lo(ptr_active_demofile) # addiu $s0, $s0, -0x7b98 +/* 0F51A0 7F0C0670 3B28000F */ xori $t0, $t9, 0xf +/* 0F51A4 7F0C0674 AE080000 */ sw $t0, ($s0) +/* 0F51A8 7F0C0678 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C5F8) +/* 0F51AC 7F0C067C AC20C5F8 */ sw $zero, %lo(dword_CODE_bss_8008C5F8)($at) +/* 0F51B0 7F0C0680 8E090000 */ lw $t1, ($s0) +/* 0F51B4 7F0C0684 AD240010 */ sw $a0, 0x10($t1) +/* 0F51B8 7F0C0688 8E0A0000 */ lw $t2, ($s0) +/* 0F51BC 7F0C068C 0C002E7E */ jal get_attached_controller_count +/* 0F51C0 7F0C0690 AD450014 */ sw $a1, 0x14($t2) +/* 0F51C4 7F0C0694 8E0B0000 */ lw $t3, ($s0) +/* 0F51C8 7F0C0698 3C0C8009 */ lui $t4, %hi(record_slot_num) +/* 0F51CC 7F0C069C AD620018 */ sw $v0, 0x18($t3) +/* 0F51D0 7F0C06A0 8E0D0000 */ lw $t5, ($s0) +/* 0F51D4 7F0C06A4 8D8CC5F0 */ lw $t4, %lo(record_slot_num)($t4) +/* 0F51D8 7F0C06A8 ADAC0088 */ sw $t4, 0x88($t5) +/* 0F51DC 7F0C06AC 8E040000 */ lw $a0, ($s0) +/* 0F51E0 7F0C06B0 0FC07587 */ jal sub_GAME_7F01D61C +/* 0F51E4 7F0C06B4 2484001C */ addiu $a0, $a0, 0x1c +/* 0F51E8 7F0C06B8 0FC300EA */ jal copy_current_ingame_registers_before_ramrom_playback +/* 0F51EC 7F0C06BC 8E040000 */ lw $a0, ($s0) +/* 0F51F0 7F0C06C0 24020001 */ li $v0, 1 +/* 0F51F4 7F0C06C4 3C018005 */ lui $at, %hi(recording_ramrom_flag) +/* 0F51F8 7F0C06C8 AC228480 */ sw $v0, %lo(recording_ramrom_flag)($at) +/* 0F51FC 7F0C06CC 3C018005 */ lui $at, %hi(ramrom_demo_related_6) +/* 0F5200 7F0C06D0 3C047F0C */ lui $a0, %hi(record_player_input_as_packet) # $a0, 0x7f0c +/* 0F5204 7F0C06D4 AC228484 */ sw $v0, %lo(ramrom_demo_related_6)($at) +/* 0F5208 7F0C06D8 0C002EEF */ jal set_ptr_tlb_ramrom_record +/* 0F520C 7F0C06DC 2484FE5C */ addiu $a0, %lo(record_player_input_as_packet) # addiu $a0, $a0, -0x1a4 +/* 0F5210 7F0C06E0 3C028009 */ lui $v0, %hi(address_demo_loaded) +/* 0F5214 7F0C06E4 2442C5F4 */ addiu $v0, %lo(address_demo_loaded) # addiu $v0, $v0, -0x3a0c +/* 0F5218 7F0C06E8 3C0500F0 */ lui $a1, 0xf0 +/* 0F521C 7F0C06EC AC450000 */ sw $a1, ($v0) +/* 0F5220 7F0C06F0 8E040000 */ lw $a0, ($s0) +/* 0F5224 7F0C06F4 0C001742 */ jal romWrite +/* 0F5228 7F0C06F8 240600F0 */ li $a2, 240 +/* 0F522C 7F0C06FC 3C028009 */ lui $v0, %hi(address_demo_loaded) +/* 0F5230 7F0C0700 2442C5F4 */ addiu $v0, %lo(address_demo_loaded) # addiu $v0, $v0, -0x3a0c +/* 0F5234 7F0C0704 8C4F0000 */ lw $t7, ($v0) +/* 0F5238 7F0C0708 3C018005 */ lui $at, %hi(flag_to_record_ramrom) +/* 0F523C 7F0C070C 25F800E8 */ addiu $t8, $t7, 0xe8 +/* 0F5240 7F0C0710 AC580000 */ sw $t8, ($v0) +/* 0F5244 7F0C0714 10000024 */ b .L7F0C07A8 +/* 0F5248 7F0C0718 AC208488 */ sw $zero, %lo(flag_to_record_ramrom)($at) +.L7F0C071C: +/* 0F524C 7F0C071C 3C198005 */ lui $t9, %hi(ramrom_demo_related_4) +/* 0F5250 7F0C0720 8F39847C */ lw $t9, %lo(ramrom_demo_related_4)($t9) +/* 0F5254 7F0C0724 13200020 */ beqz $t9, .L7F0C07A8 +/* 0F5258 7F0C0728 3C108005 */ lui $s0, %hi(ptr_active_demofile) +/* 0F525C 7F0C072C 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C5F8) +/* 0F5260 7F0C0730 26108468 */ addiu $s0, %lo(ptr_active_demofile) # addiu $s0, $s0, -0x7b98 +/* 0F5264 7F0C0734 AC20C5F8 */ sw $zero, %lo(dword_CODE_bss_8008C5F8)($at) +/* 0F5268 7F0C0738 8E080000 */ lw $t0, ($s0) +/* 0F526C 7F0C073C 0FC07567 */ jal set_selected_difficulty +/* 0F5270 7F0C0740 8D040014 */ lw $a0, 0x14($t0) +/* 0F5274 7F0C0744 8E090000 */ lw $t1, ($s0) +/* 0F5278 7F0C0748 0FC0757B */ jal set_solo_and_ptr_briefing +/* 0F527C 7F0C074C 8D240010 */ lw $a0, 0x10($t1) +/* 0F5280 7F0C0750 8E040000 */ lw $a0, ($s0) +/* 0F5284 7F0C0754 0FC07591 */ jal sub_GAME_7F01D644 +/* 0F5288 7F0C0758 2484001C */ addiu $a0, $a0, 0x1c +/* 0F528C 7F0C075C 3C048009 */ lui $a0, %hi(ramrom_data_target + 0x110) +/* 0F5290 7F0C0760 0FC300EA */ jal copy_current_ingame_registers_before_ramrom_playback +/* 0F5294 7F0C0764 2484C380 */ addiu $a0, %lo(ramrom_data_target + 0x110) # addiu $a0, $a0, -0x3c80 +/* 0F5298 7F0C0768 0FC3013D */ jal copy_recorded_ramrom_registers_to_proper_place_ingame +/* 0F529C 7F0C076C 8E040000 */ lw $a0, ($s0) +/* 0F52A0 7F0C0770 24020001 */ li $v0, 1 +/* 0F52A4 7F0C0774 3C018005 */ lui $at, %hi(is_ramrom_flag) +/* 0F52A8 7F0C0778 AC228474 */ sw $v0, %lo(is_ramrom_flag)($at) +/* 0F52AC 7F0C077C 3C018005 */ lui $at, %hi(ramrom_demo_related_3) +/* 0F52B0 7F0C0780 AC228478 */ sw $v0, %lo(ramrom_demo_related_3)($at) +/* 0F52B4 7F0C0784 8E0A0000 */ lw $t2, ($s0) +/* 0F52B8 7F0C0788 3C047F0C */ lui $a0, %hi(ramrom_replay_handler) # $a0, 0x7f0c +/* 0F52BC 7F0C078C 24840080 */ addiu $a0, %lo(ramrom_replay_handler) # addiu $a0, $a0, 0x80 +/* 0F52C0 7F0C0790 0C002EEA */ jal set_disable_all_rumble_and_something +/* 0F52C4 7F0C0794 8D450018 */ lw $a1, 0x18($t2) +/* 0F52C8 7F0C0798 0C00324C */ jal controller_7000C930 +/* 0F52CC 7F0C079C 24040001 */ li $a0, 1 +/* 0F52D0 7F0C07A0 3C018005 */ lui $at, %hi(ramrom_demo_related_4) +/* 0F52D4 7F0C07A4 AC20847C */ sw $zero, %lo(ramrom_demo_related_4)($at) +.L7F0C07A8: +/* 0F52D8 7F0C07A8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F52DC 7F0C07AC 8FB00018 */ lw $s0, 0x18($sp) +/* 0F52E0 7F0C07B0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F52E4 7F0C07B4 03E00008 */ jr $ra +/* 0F52E8 7F0C07B8 00000000 */ nop +) +#endif + + + + + + +void setRamRomRecordSlot(s32 arg0) { + flag_to_record_ramrom = 1; + record_slot_num = arg0; +} + +void stop_recording_ramrom(void) { + if (ramrom_demo_related_6 != 0) + { + finalize_ramrom_on_hw(); + set_ptr_tlb_ramrom_record(0); + ramrom_demo_related_6 = 0; + recording_ramrom_flag = 0; + } +} + + + + + + +#ifdef NONMATCHING +void replay_recorded_ramrom_at_address(s32 arg0) +{ + address_demo_loaded = arg0; + ptr_active_demofile = romCopyAligned(&ramrom_data_target, address_demo_loaded, 0xe8); + address_demo_loaded += 0xe8; + ramrom_demo_related_4 = 1; + set_solo_and_ptr_briefing(ptr_active_demofile->unk10); + set_selected_difficulty(ptr_active_demofile->unk14); + return set_menu_to_mode(MENU_RUN_STAGE, 1); +} +#else +GLOBAL_ASM( +.text +glabel replay_recorded_ramrom_at_address +/* 0F534C 7F0C081C 3C038009 */ lui $v1, %hi(address_demo_loaded) +/* 0F5350 7F0C0820 2463C5F4 */ addiu $v1, %lo(address_demo_loaded) # addiu $v1, $v1, -0x3a0c +/* 0F5354 7F0C0824 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F5358 7F0C0828 AC640000 */ sw $a0, ($v1) +/* 0F535C 7F0C082C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F5360 7F0C0830 3C048009 */ lui $a0, %hi(ramrom_data_target) +/* 0F5364 7F0C0834 2484C270 */ addiu $a0, %lo(ramrom_data_target) # addiu $a0, $a0, -0x3d90 +/* 0F5368 7F0C0838 8C650000 */ lw $a1, ($v1) +/* 0F536C 7F0C083C 0C001711 */ jal romCopyAligned +/* 0F5370 7F0C0840 240600E8 */ li $a2, 232 +/* 0F5374 7F0C0844 3C038009 */ lui $v1, %hi(address_demo_loaded) +/* 0F5378 7F0C0848 2463C5F4 */ addiu $v1, %lo(address_demo_loaded) # addiu $v1, $v1, -0x3a0c +/* 0F537C 7F0C084C 8C6E0000 */ lw $t6, ($v1) +/* 0F5380 7F0C0850 3C058005 */ lui $a1, %hi(ptr_active_demofile) +/* 0F5384 7F0C0854 24A58468 */ addiu $a1, %lo(ptr_active_demofile) # addiu $a1, $a1, -0x7b98 +/* 0F5388 7F0C0858 25CF00E8 */ addiu $t7, $t6, 0xe8 +/* 0F538C 7F0C085C ACA20000 */ sw $v0, ($a1) +/* 0F5390 7F0C0860 AC6F0000 */ sw $t7, ($v1) +/* 0F5394 7F0C0864 24180001 */ li $t8, 1 +/* 0F5398 7F0C0868 3C018005 */ lui $at, %hi(ramrom_demo_related_4) +/* 0F539C 7F0C086C AC38847C */ sw $t8, %lo(ramrom_demo_related_4)($at) +/* 0F53A0 7F0C0870 8CB90000 */ lw $t9, ($a1) +/* 0F53A4 7F0C0874 0FC0757B */ jal set_solo_and_ptr_briefing +/* 0F53A8 7F0C0878 8F240010 */ lw $a0, 0x10($t9) +/* 0F53AC 7F0C087C 3C088005 */ lui $t0, %hi(ptr_active_demofile) +/* 0F53B0 7F0C0880 8D088468 */ lw $t0, %lo(ptr_active_demofile)($t0) +/* 0F53B4 7F0C0884 0FC07567 */ jal set_selected_difficulty +/* 0F53B8 7F0C0888 8D040014 */ lw $a0, 0x14($t0) +/* 0F53BC 7F0C088C 2404000B */ li $a0, 11 +/* 0F53C0 7F0C0890 0FC06975 */ jal set_menu_to_mode +/* 0F53C4 7F0C0894 24050001 */ li $a1, 1 +/* 0F53C8 7F0C0898 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F53CC 7F0C089C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F53D0 7F0C08A0 03E00008 */ jr $ra +/* 0F53D4 7F0C08A4 00000000 */ nop +) +#endif + + + + + +void replay_recorded_ramrom_from_indy(void) +{ + replay_recorded_ramrom_at_address(0xf00000); +} + +void ensureCameraModeA(void) +{ + if (get_camera_mode() != UNK10_CAM) + { + set_camera_mode(UNK10_CAM); + } +} + + + + + + +#ifdef NONMATCHING +void stop_demo_playback(void) +{ + if (ramrom_demo_related_6 == 0) { + if (ramrom_demo_related_3 != 0) { + copy_recorded_ramrom_registers_to_proper_place_ingame(&ramromsettingsbackup); + set_disable_all_rumble_and_something(0,0xffffffff); + controller_7000C930(0); + ramrom_demo_related_3 = 0; + is_ramrom_flag = 0; + } + } + else { + stop_recording_ramrom(); + } +} +#else +GLOBAL_ASM( +.text +glabel stop_demo_playback +/* 0F542C 7F0C08FC 3C0E8005 */ lui $t6, %hi(ramrom_demo_related_6) +/* 0F5430 7F0C0900 8DCE8484 */ lw $t6, %lo(ramrom_demo_related_6)($t6) +/* 0F5434 7F0C0904 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F5438 7F0C0908 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F543C 7F0C090C 11C00005 */ beqz $t6, .L7F0C0924 +/* 0F5440 7F0C0910 3C0F8005 */ lui $t7, %hi(ramrom_demo_related_3) +/* 0F5444 7F0C0914 0FC301F5 */ jal stop_recording_ramrom +/* 0F5448 7F0C0918 00000000 */ nop +/* 0F544C 7F0C091C 10000011 */ b .L7F0C0964 +/* 0F5450 7F0C0920 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0924: +/* 0F5454 7F0C0924 8DEF8478 */ lw $t7, %lo(ramrom_demo_related_3)($t7) +/* 0F5458 7F0C0928 3C048009 */ lui $a0, %hi(ramrom_data_target + 0x110) +/* 0F545C 7F0C092C 51E0000D */ beql $t7, $zero, .L7F0C0964 +/* 0F5460 7F0C0930 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F5464 7F0C0934 0FC3013D */ jal copy_recorded_ramrom_registers_to_proper_place_ingame +/* 0F5468 7F0C0938 2484C380 */ addiu $a0, %lo(ramrom_data_target + 0x110) # addiu $a0, $a0, -0x3c80 +/* 0F546C 7F0C093C 00002025 */ move $a0, $zero +/* 0F5470 7F0C0940 0C002EEA */ jal set_disable_all_rumble_and_something +/* 0F5474 7F0C0944 2405FFFF */ li $a1, -1 +/* 0F5478 7F0C0948 0C00324C */ jal controller_7000C930 +/* 0F547C 7F0C094C 00002025 */ move $a0, $zero +/* 0F5480 7F0C0950 3C018005 */ lui $at, %hi(ramrom_demo_related_3) +/* 0F5484 7F0C0954 AC208478 */ sw $zero, %lo(ramrom_demo_related_3)($at) +/* 0F5488 7F0C0958 3C018005 */ lui $at, %hi(is_ramrom_flag) +/* 0F548C 7F0C095C AC208474 */ sw $zero, %lo(is_ramrom_flag)($at) +/* 0F5490 7F0C0960 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0964: +/* 0F5494 7F0C0964 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F5498 7F0C0968 03E00008 */ jr $ra +/* 0F549C 7F0C096C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void select_ramrom_to_play(void) { + +} +#else +GLOBAL_ASM( +.text +glabel select_ramrom_to_play +/* 0F54A0 7F0C0970 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F54A4 7F0C0974 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F54A8 7F0C0978 0FC07A66 */ jal check_egypt_completed_any_folder +/* 0F54AC 7F0C097C 00000000 */ nop +/* 0F54B0 7F0C0980 3C0E8005 */ lui $t6, %hi(ramrom_table) +/* 0F54B4 7F0C0984 8DCE83F0 */ lw $t6, %lo(ramrom_table)($t6) +/* 0F54B8 7F0C0988 00402025 */ move $a0, $v0 +/* 0F54BC 7F0C098C 00001825 */ move $v1, $zero +/* 0F54C0 7F0C0990 11C00011 */ beqz $t6, .L7F0C09D8 +/* 0F54C4 7F0C0994 3C0F8005 */ lui $t7, %hi(ramrom_table + 0x4) +/* 0F54C8 7F0C0998 8DEF83F4 */ lw $t7, %lo(ramrom_table + 0x4)($t7) +/* 0F54CC 7F0C099C 3C198005 */ lui $t9, %hi(ramrom_table) +/* 0F54D0 7F0C09A0 273983F0 */ addiu $t9, %lo(ramrom_table) # addiu $t9, $t9, -0x7c10 +/* 0F54D4 7F0C09A4 004F082A */ slt $at, $v0, $t7 +/* 0F54D8 7F0C09A8 1420000B */ bnez $at, .L7F0C09D8 +/* 0F54DC 7F0C09AC 0003C0C0 */ sll $t8, $v1, 3 +/* 0F54E0 7F0C09B0 03191021 */ addu $v0, $t8, $t9 +/* 0F54E4 7F0C09B4 8C480008 */ lw $t0, 8($v0) +.L7F0C09B8: +/* 0F54E8 7F0C09B8 24630001 */ addiu $v1, $v1, 1 +/* 0F54EC 7F0C09BC 24420008 */ addiu $v0, $v0, 8 +/* 0F54F0 7F0C09C0 11000005 */ beqz $t0, .L7F0C09D8 +/* 0F54F4 7F0C09C4 00000000 */ nop +/* 0F54F8 7F0C09C8 8C490004 */ lw $t1, 4($v0) +/* 0F54FC 7F0C09CC 0089082A */ slt $at, $a0, $t1 +/* 0F5500 7F0C09D0 5020FFF9 */ beql $at, $zero, .L7F0C09B8 +/* 0F5504 7F0C09D4 8C480008 */ lw $t0, 8($v0) +.L7F0C09D8: +/* 0F5508 7F0C09D8 0C002914 */ jal get_random_value +/* 0F550C 7F0C09DC AFA3001C */ sw $v1, 0x1c($sp) +/* 0F5510 7F0C09E0 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F5514 7F0C09E4 3C048005 */ lui $a0, %hi(ramrom_table) +/* 0F5518 7F0C09E8 0043001B */ divu $zero, $v0, $v1 +/* 0F551C 7F0C09EC 00005010 */ mfhi $t2 +/* 0F5520 7F0C09F0 000A58C0 */ sll $t3, $t2, 3 +/* 0F5524 7F0C09F4 008B2021 */ addu $a0, $a0, $t3 +/* 0F5528 7F0C09F8 14600002 */ bnez $v1, .L7F0C0A04 +/* 0F552C 7F0C09FC 00000000 */ nop +/* 0F5530 7F0C0A00 0007000D */ break 7 +.L7F0C0A04: +/* 0F5534 7F0C0A04 8C8483F0 */ lw $a0, %lo(ramrom_table)($a0) +/* 0F5538 7F0C0A08 0FC30207 */ jal replay_recorded_ramrom_at_address +/* 0F553C 7F0C0A0C 00000000 */ nop +/* 0F5540 7F0C0A10 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F5544 7F0C0A14 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0F5548 7F0C0A18 03E00008 */ jr $ra +/* 0F554C 7F0C0A1C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 check_ramrom_flags(void) +{ + if ((get_is_ramrom_flag() == 0) && (get_recording_ramrom_flag() == 0)) + { + return 0; + } + else + { + return *(undefined4 *)(ptr_active_demofile + 0x88); + } +} +#else +GLOBAL_ASM( +.text +glabel check_ramrom_flags +/* 0F5550 7F0C0A20 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F5554 7F0C0A24 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F5558 7F0C0A28 0FC2FF23 */ jal get_is_ramrom_flag +/* 0F555C 7F0C0A2C 00000000 */ nop +/* 0F5560 7F0C0A30 14400004 */ bnez $v0, .L7F0C0A44 +/* 0F5564 7F0C0A34 00000000 */ nop +/* 0F5568 7F0C0A38 0FC2FF26 */ jal get_recording_ramrom_flag +/* 0F556C 7F0C0A3C 00000000 */ nop +/* 0F5570 7F0C0A40 10400004 */ beqz $v0, .L7F0C0A54 +.L7F0C0A44: +/* 0F5574 7F0C0A44 3C0E8005 */ lui $t6, %hi(ptr_active_demofile) +/* 0F5578 7F0C0A48 8DCE8468 */ lw $t6, %lo(ptr_active_demofile)($t6) +/* 0F557C 7F0C0A4C 10000002 */ b .L7F0C0A58 +/* 0F5580 7F0C0A50 8DC20088 */ lw $v0, 0x88($t6) +.L7F0C0A54: +/* 0F5584 7F0C0A54 00001025 */ move $v0, $zero +.L7F0C0A58: +/* 0F5588 7F0C0A58 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F558C 7F0C0A5C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F5590 7F0C0A60 03E00008 */ jr $ra +/* 0F5594 7F0C0A64 00000000 */ nop +) +#endif + + + diff --git a/src/game/room_model_buffer.c b/src/game/room_model_buffer.c new file mode 100644 index 0000000..868d21e --- /dev/null +++ b/src/game/room_model_buffer.c @@ -0,0 +1,8 @@ +#include "ultra64.h" + +//TODO this is not correct size afaik, but it fills a gap this way +//shrinking slightly from 0x271CA0 to allow some room for shifting, +// eventually we will know real sizes and other buffers + +//due to where tlb allocated block buffer starts, i have reduced value again +u8 room_model_buffer[0x267CA0]; diff --git a/src/game/room_model_buffer.h b/src/game/room_model_buffer.h new file mode 100644 index 0000000..a1d558a --- /dev/null +++ b/src/game/room_model_buffer.h @@ -0,0 +1,7 @@ +#ifndef _ROOM_MODEL_BUFFER_H_ +#define _ROOM_MODEL_BUFFER_H_ +#include "ultra64.h" + +extern u8 room_model_buffer[]; + +#endif diff --git a/src/game/rsp.c b/src/game/rsp.c new file mode 100644 index 0000000..3375952 --- /dev/null +++ b/src/game/rsp.c @@ -0,0 +1,179 @@ +#include "ultra64.h" + +// bss +char dword_CODE_bss_8008D370[0x400]; +char dword_CODE_bss_8008D770[0xBA0]; + + + +s32 D_8004E9E0 = 0; +s32 D_8004E9E4 = 0; +s32 D_8004E9E8 = 0; +s32 D_8004E9EC = 0; +//make me a struct +//D:8004E9F0 +u32 fast3d_related_0[] = { + 0, 0, 0, 0, 1, 2, 0, 0, 0, 0x1000, 0, 0x800, dword_CODE_bss_8008D370,0x400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +//im another instance of above struct +//D:8004EA50 +u32 fast3d_related_1[] = { + 0, 0, 0, 0, 1, 2, 0, 0, 0, 0x1000, 0, 0x800, dword_CODE_bss_8008D370,0x400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +//D:8004EAB0 +u32 *fast3d_related_array = &fast3d_related_0; + + + + +void rspInitDebugNoticeList(void) { + debCheckAddDebugNoticeListEntry(&D_8004E9E0, "rsp_c_debug"); +} + + + + + + +#ifdef NONMATCHING +void allocate_init_rsp_buffers(void) + +{ + ptr_rsp_buffer_start = mempAllocBytesInBank(0xa000,'\x06'); + ptr_rspbuffer_end = ptr_rsp_buffer_start + 0xa000; + return; +} + +#else +GLOBAL_ASM( +.text +glabel allocate_init_rsp_buffers +/* 10490C 7F0CFDDC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 104910 7F0CFDE0 AFBF0014 */ sw $ra, 0x14($sp) +/* 104914 7F0CFDE4 3404A000 */ li $a0, 40960 +/* 104918 7F0CFDE8 0C0025C8 */ jal mempAllocBytesInBank +/* 10491C 7F0CFDEC 24050006 */ li $a1, 6 +/* 104920 7F0CFDF0 8FBF0014 */ lw $ra, 0x14($sp) +/* 104924 7F0CFDF4 3C038005 */ lui $v1, %hi(D_8004E9E8) +/* 104928 7F0CFDF8 3401A000 */ li $at, 40960 +/* 10492C 7F0CFDFC 2463E9E8 */ addiu $v1, %lo(D_8004E9E8) # addiu $v1, $v1, -0x1618 +/* 104930 7F0CFE00 00417821 */ addu $t7, $v0, $at +/* 104934 7F0CFE04 AC620000 */ sw $v0, ($v1) +/* 104938 7F0CFE08 3C018005 */ lui $at, %hi(D_8004E9E4) +/* 10493C 7F0CFE0C AC2FE9E4 */ sw $t7, %lo(D_8004E9E4)($at) +/* 104940 7F0CFE10 03E00008 */ jr $ra +/* 104944 7F0CFE14 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void *load_rsp_microcode(s32 arg0, s32 arg1, ? arg2, ?32 arg3) { + void *temp_v0; + + // Node 0 + fast3d_related_array->unk18 = &rspbootTextStart; + fast3d_related_array->unk1C = (s32) (&gsp3DTextStart - &rspbootTextStart); + temp_v0 = (fast3d_related_array + 0x10); + temp_v0->unk10 = &gsp3DTextStart; + temp_v0->unk18 = &gsp3DDataStart; + temp_v0->unk28 = (?32) D_8004E9E8; + temp_v0->unk30 = arg0; + temp_v0->unk34 = (s32) (((s32) (arg1 - arg0) >> 3) * 8); + temp_v0->unk38 = &dword_CODE_bss_8008D770; + temp_v0->unk3C = 0xba0; + temp_v0->unk2C = (?32) D_8004E9E4; + *fast3d_related_array = 0; + fast3d_related_array->unk8 = 0x63; + fast3d_related_array->unk50 = &gfxFrameMsgQ; + fast3d_related_array->unk54 = arg3; + fast3d_related_array->unkC = (?32) fast3d_related_array->unk58; + osWritebackDCacheAll(); + osSendMesg(mq, fast3d_related_array, 1); + fast3d_related_array = (void *) (((s32) fast3d_related_array ^ &fast3d_related_0) ^ &fast3d_related_1); + return; + // (possible return value: &fast3d_related_array) +} + +#else +GLOBAL_ASM( +.text +glabel load_rsp_microcode +/* 104948 7F0CFE18 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 10494C 7F0CFE1C 3C038005 */ lui $v1, %hi(fast3d_related_array) +/* 104950 7F0CFE20 2463EAB0 */ addiu $v1, %lo(fast3d_related_array) # addiu $v1, $v1, -0x1550 +/* 104954 7F0CFE24 AFB00018 */ sw $s0, 0x18($sp) +/* 104958 7F0CFE28 8C700000 */ lw $s0, ($v1) +/* 10495C 7F0CFE2C 3C028002 */ lui $v0, %hi(rspbootTextStart) +/* 104960 7F0CFE30 3C0E8002 */ lui $t6, %hi(gsp3DTextStart) +/* 104964 7F0CFE34 24420D90 */ addiu $v0, %lo(rspbootTextStart) # addiu $v0, $v0, 0xd90 +/* 104968 7F0CFE38 25CE0E60 */ addiu $t6, %lo(gsp3DTextStart) # addiu $t6, $t6, 0xe60 +/* 10496C 7F0CFE3C AFBF001C */ sw $ra, 0x1c($sp) +/* 104970 7F0CFE40 AFA60028 */ sw $a2, 0x28($sp) +/* 104974 7F0CFE44 01C27823 */ subu $t7, $t6, $v0 +/* 104978 7F0CFE48 AE020018 */ sw $v0, 0x18($s0) +/* 10497C 7F0CFE4C 3C188002 */ lui $t8, %hi(gsp3DTextStart) +/* 104980 7F0CFE50 3C198006 */ lui $t9, %hi(gsp3DDataStart) +/* 104984 7F0CFE54 AE0F001C */ sw $t7, 0x1c($s0) +/* 104988 7F0CFE58 26020010 */ addiu $v0, $s0, 0x10 +/* 10498C 7F0CFE5C 27180E60 */ addiu $t8, %lo(gsp3DTextStart) # addiu $t8, $t8, 0xe60 +/* 104990 7F0CFE60 2739C820 */ addiu $t9, %lo(gsp3DDataStart) # addiu $t9, $t9, -0x37e0 +/* 104994 7F0CFE64 AC580010 */ sw $t8, 0x10($v0) +/* 104998 7F0CFE68 AC590018 */ sw $t9, 0x18($v0) +/* 10499C 7F0CFE6C 3C088005 */ lui $t0, %hi(D_8004E9E8) +/* 1049A0 7F0CFE70 8D08E9E8 */ lw $t0, %lo(D_8004E9E8)($t0) +/* 1049A4 7F0CFE74 3C098005 */ lui $t1, %hi(D_8004E9E4) +/* 1049A8 7F0CFE78 00A45023 */ subu $t2, $a1, $a0 +/* 1049AC 7F0CFE7C AC480028 */ sw $t0, 0x28($v0) +/* 1049B0 7F0CFE80 8D29E9E4 */ lw $t1, %lo(D_8004E9E4)($t1) +/* 1049B4 7F0CFE84 000A58C3 */ sra $t3, $t2, 3 +/* 1049B8 7F0CFE88 3C0D8009 */ lui $t5, %hi(dword_CODE_bss_8008D770) +/* 1049BC 7F0CFE8C 000B60C0 */ sll $t4, $t3, 3 +/* 1049C0 7F0CFE90 25ADD770 */ addiu $t5, %lo(dword_CODE_bss_8008D770) # addiu $t5, $t5, -0x2890 +/* 1049C4 7F0CFE94 240E0BA0 */ li $t6, 2976 +/* 1049C8 7F0CFE98 AC440030 */ sw $a0, 0x30($v0) +/* 1049CC 7F0CFE9C AC4C0034 */ sw $t4, 0x34($v0) +/* 1049D0 7F0CFEA0 AC4D0038 */ sw $t5, 0x38($v0) +/* 1049D4 7F0CFEA4 AC4E003C */ sw $t6, 0x3c($v0) +/* 1049D8 7F0CFEA8 AC49002C */ sw $t1, 0x2c($v0) +/* 1049DC 7F0CFEAC 3C188006 */ lui $t8, %hi(gfxFrameMsgQ) +/* 1049E0 7F0CFEB0 240F0063 */ li $t7, 99 +/* 1049E4 7F0CFEB4 2718D9A0 */ addiu $t8, %lo(gfxFrameMsgQ) # addiu $t8, $t8, -0x2660 +/* 1049E8 7F0CFEB8 AE000000 */ sw $zero, ($s0) +/* 1049EC 7F0CFEBC AE0F0008 */ sw $t7, 8($s0) +/* 1049F0 7F0CFEC0 AE180050 */ sw $t8, 0x50($s0) +/* 1049F4 7F0CFEC4 AE070054 */ sw $a3, 0x54($s0) +/* 1049F8 7F0CFEC8 8C790000 */ lw $t9, ($v1) +/* 1049FC 7F0CFECC 8F280058 */ lw $t0, 0x58($t9) +/* 104A00 7F0CFED0 0C0034C8 */ jal osWritebackDCacheAll +/* 104A04 7F0CFED4 AE08000C */ sw $t0, 0xc($s0) +/* 104A08 7F0CFED8 3C048006 */ lui $a0, %hi(sched_cmdQ) +/* 104A0C 7F0CFEDC 8C84DA38 */ lw $a0, %lo(sched_cmdQ)($a0) +/* 104A10 7F0CFEE0 02002825 */ move $a1, $s0 +/* 104A14 7F0CFEE4 0C0037C4 */ jal osSendMesg +/* 104A18 7F0CFEE8 24060001 */ li $a2, 1 +/* 104A1C 7F0CFEEC 3C028005 */ lui $v0, %hi(fast3d_related_array) +/* 104A20 7F0CFEF0 2442EAB0 */ addiu $v0, %lo(fast3d_related_array) # addiu $v0, $v0, -0x1550 +/* 104A24 7F0CFEF4 8C490000 */ lw $t1, ($v0) +/* 104A28 7F0CFEF8 3C0A8005 */ lui $t2, %hi(fast3d_related_0) +/* 104A2C 7F0CFEFC 8FBF001C */ lw $ra, 0x1c($sp) +/* 104A30 7F0CFF00 254AE9F0 */ addiu $t2, %lo(fast3d_related_0) # addiu $t2, $t2, -0x1610 +/* 104A34 7F0CFF04 3C0C8005 */ lui $t4, %hi(fast3d_related_1) +/* 104A38 7F0CFF08 258CEA50 */ addiu $t4, %lo(fast3d_related_1) # addiu $t4, $t4, -0x15b0 +/* 104A3C 7F0CFF0C 012A5826 */ xor $t3, $t1, $t2 +/* 104A40 7F0CFF10 016C6826 */ xor $t5, $t3, $t4 +/* 104A44 7F0CFF14 8FB00018 */ lw $s0, 0x18($sp) +/* 104A48 7F0CFF18 AC4D0000 */ sw $t5, ($v0) +/* 104A4C 7F0CFF1C 03E00008 */ jr $ra +/* 104A50 7F0CFF20 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + diff --git a/src/game/rsp.h b/src/game/rsp.h new file mode 100644 index 0000000..17b432c --- /dev/null +++ b/src/game/rsp.h @@ -0,0 +1,7 @@ +#ifndef _RSP_H_ +#define _RSP_H_ +#include "ultra64.h" + +void rspInitDebugNoticeList(void); + +#endif diff --git a/src/game/setguscale.c b/src/game/setguscale.c new file mode 100644 index 0000000..5a3baf0 --- /dev/null +++ b/src/game/setguscale.c @@ -0,0 +1,7 @@ +#include "ultra64.h" +#include "game/unk_09C250.h" + +void set_gu_scale(void) { + guScale((Mtx *)&dword_CODE_bss_8007A100, 0.1f, 0.1f, 0.1f); +} + diff --git a/src/game/sin.c b/src/game/sin.c new file mode 100644 index 0000000..97dea34 --- /dev/null +++ b/src/game/sin.c @@ -0,0 +1,139 @@ +#include "ultra64.h" + + +//these are actaully clever shared asm +//!FIXME move to asm file + + + + +#ifdef NONMATCHING +void cosf(void) { + +} +#else +GLOBAL_ASM( +.late_rodata + +.text +glabel cosf +/* 08C9D0 7F057EA0 3C018005 */ lui $at, %hi(D_800536C0) +/* 08C9D4 7F057EA4 C42A36C0 */ lwc1 $f10, %lo(D_800536C0)($at) +/* 08C9D8 7F057EA8 460A6300 */ add.s $f12, $f12, $f10 +) +#endif + + + + + +#ifdef NONMATCHING +void sinf(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800536C0 +.word 0x3fc90fda /*1.5707963*/ +glabel D_800536C4 +.word 0x362edef8 /*0.0000026057805*/ +glabel D_800536C8 +.word 0xb94fb7ff /*-0.00019809602*/ +glabel D_800536CC +.word 0x3c08876a /*0.0083330665*/ +glabel D_800536D0 +.word 0xbe2aaaa6 /*-0.1666666*/ +glabel D_800536D4 +.word 0x3ea2f983 /*0.31830987*/ +glabel D_800536D8 +.word 0x40490fdb /*3.1415927*/ +glabel D_800536DC +.word 0x330885a3 /*3.178650856*/ +glabel D_800536E0 +.word 0x362edef8 /*0.0000026057805*/ +glabel D_800536E4 +.word 0xb94fb7ff /*-0.00019809602*/ +glabel D_800536E8 +.word 0x3c08876a /*0.0083330665*/ +glabel D_800536EC +.word 0xbe2aaaa6 /*-0.1666666*/ +.text +glabel sinf +/* 08C9DC 7F057EAC 44086000 */ mfc1 $t0, $f12 +/* 08C9E0 7F057EB0 00000000 */ nop +/* 08C9E4 7F057EB4 00084583 */ sra $t0, $t0, 0x16 +/* 08C9E8 7F057EB8 310801FF */ andi $t0, $t0, 0x1ff +/* 08C9EC 7F057EBC 290100FF */ slti $at, $t0, 0xff +/* 08C9F0 7F057EC0 10200019 */ beqz $at, .L7F057F28 +/* 08C9F4 7F057EC4 00000000 */ nop +/* 08C9F8 7F057EC8 290100E6 */ slti $at, $t0, 0xe6 +/* 08C9FC 7F057ECC 1420003D */ bnez $at, .L7F057FC4 +/* 08CA00 7F057ED0 46006006 */ mov.s $f0, $f12 +/* 08CA04 7F057ED4 460C6402 */ mul.s $f16, $f12, $f12 +/* 08CA08 7F057ED8 3C018005 */ lui $at, %hi(D_800536C4) +/* 08CA0C 7F057EDC C43236C4 */ lwc1 $f18, %lo(D_800536C4)($at) +/* 08CA10 7F057EE0 46109482 */ mul.s $f18, $f18, $f16 +/* 08CA14 7F057EE4 3C018005 */ lui $at, %hi(D_800536C8) +/* 08CA18 7F057EE8 C42A36C8 */ lwc1 $f10, %lo(D_800536C8)($at) +/* 08CA1C 7F057EEC 46125480 */ add.s $f18, $f10, $f18 +/* 08CA20 7F057EF0 46109482 */ mul.s $f18, $f18, $f16 +/* 08CA24 7F057EF4 3C018005 */ lui $at, %hi(D_800536CC) +/* 08CA28 7F057EF8 C42A36CC */ lwc1 $f10, %lo(D_800536CC)($at) +/* 08CA2C 7F057EFC 46125480 */ add.s $f18, $f10, $f18 +/* 08CA30 7F057F00 46109482 */ mul.s $f18, $f18, $f16 +/* 08CA34 7F057F04 3C018005 */ lui $at, %hi(D_800536D0) +/* 08CA38 7F057F08 C42A36D0 */ lwc1 $f10, %lo(D_800536D0)($at) +/* 08CA3C 7F057F0C 46125480 */ add.s $f18, $f10, $f18 +/* 08CA40 7F057F10 46109482 */ mul.s $f18, $f18, $f16 +/* 08CA44 7F057F14 00000000 */ nop +/* 08CA48 7F057F18 460C9482 */ mul.s $f18, $f18, $f12 +/* 08CA4C 7F057F1C 460C9000 */ add.s $f0, $f18, $f12 +/* 08CA50 7F057F20 0BC15FF1 */ j .L7F057FC4 +/* 08CA54 7F057F24 00000000 */ nop + +.L7F057F28: +/* 08CA58 7F057F28 29010136 */ slti $at, $t0, 0x136 +/* 08CA5C 7F057F2C 50200025 */ beql $at, $zero, .L7F057FC4 +/* 08CA60 7F057F30 44800000 */ mtc1 $zero, $f0 +/* 08CA64 7F057F34 3C018005 */ lui $at, %hi(D_800536D4) +/* 08CA68 7F057F38 C43036D4 */ lwc1 $f16, %lo(D_800536D4)($at) +/* 08CA6C 7F057F3C 460C8402 */ mul.s $f16, $f16, $f12 +/* 08CA70 7F057F40 4600840C */ round.w.s $f16, $f16 +/* 08CA74 7F057F44 44098000 */ mfc1 $t1, $f16 +/* 08CA78 7F057F48 46808420 */ cvt.s.w $f16, $f16 +/* 08CA7C 7F057F4C 3C018005 */ lui $at, %hi(D_800536D8) +/* 08CA80 7F057F50 C43236D8 */ lwc1 $f18, %lo(D_800536D8)($at) +/* 08CA84 7F057F54 46109482 */ mul.s $f18, $f18, $f16 +/* 08CA88 7F057F58 46126301 */ sub.s $f12, $f12, $f18 +/* 08CA8C 7F057F5C 3C018005 */ lui $at, %hi(D_800536DC) +/* 08CA90 7F057F60 C43236DC */ lwc1 $f18, %lo(D_800536DC)($at) +/* 08CA94 7F057F64 46109482 */ mul.s $f18, $f18, $f16 +/* 08CA98 7F057F68 46126301 */ sub.s $f12, $f12, $f18 +/* 08CA9C 7F057F6C 460C6402 */ mul.s $f16, $f12, $f12 +/* 08CAA0 7F057F70 3C018005 */ lui $at, %hi(D_800536E0) +/* 08CAA4 7F057F74 C43236E0 */ lwc1 $f18, %lo(D_800536E0)($at) +/* 08CAA8 7F057F78 46109482 */ mul.s $f18, $f18, $f16 +/* 08CAAC 7F057F7C 3C018005 */ lui $at, %hi(D_800536E4) +/* 08CAB0 7F057F80 C42A36E4 */ lwc1 $f10, %lo(D_800536E4)($at) +/* 08CAB4 7F057F84 46125480 */ add.s $f18, $f10, $f18 +/* 08CAB8 7F057F88 46109482 */ mul.s $f18, $f18, $f16 +/* 08CABC 7F057F8C 3C018005 */ lui $at, %hi(D_800536E8) +/* 08CAC0 7F057F90 C42A36E8 */ lwc1 $f10, %lo(D_800536E8)($at) +/* 08CAC4 7F057F94 46125480 */ add.s $f18, $f10, $f18 +/* 08CAC8 7F057F98 46109482 */ mul.s $f18, $f18, $f16 +/* 08CACC 7F057F9C 3C018005 */ lui $at, %hi(D_800536EC) +/* 08CAD0 7F057FA0 C42A36EC */ lwc1 $f10, %lo(D_800536EC)($at) +/* 08CAD4 7F057FA4 46125480 */ add.s $f18, $f10, $f18 +/* 08CAD8 7F057FA8 46109482 */ mul.s $f18, $f18, $f16 +/* 08CADC 7F057FAC 00000000 */ nop +/* 08CAE0 7F057FB0 460C9482 */ mul.s $f18, $f18, $f12 +/* 08CAE4 7F057FB4 460C9000 */ add.s $f0, $f18, $f12 +/* 08CAE8 7F057FB8 31290001 */ andi $t1, $t1, 1 +/* 08CAEC 7F057FBC 55200001 */ bnezl $t1, .L7F057FC4 +/* 08CAF0 7F057FC0 46000007 */ neg.s $f0, $f0 +.L7F057FC4: +/* 08CAF4 7F057FC4 03E00008 */ jr $ra +/* 08CAF8 7F057FC8 00000000 */ nop +) +#endif diff --git a/src/game/spectrum.c b/src/game/spectrum.c new file mode 100644 index 0000000..0983077 --- /dev/null +++ b/src/game/spectrum.c @@ -0,0 +1,18561 @@ +#include "ultra64.h" + +// bss +s32 ptr_sectrum_monitor_data_temp_buf; +s32 ptr_sectrum_game_data_temp_buf; +s32 ptr_spectrum_roms; +s32 ptr_300alloc; +s32 ptr_6000alloc; +s32 ptr_pc_keyboard_table_alloc; +s8 spectrum_header16_15; +s8 byte_CODE_bss_8008E339; +s8 byte_CODE_bss_8008E33A; +s8 byte_CODE_bss_8008E33B; +s8 off_CODE_bss_8008E33C; +s8 byte_CODE_bss_8008E33D; +s8 byte_CODE_bss_8008E33E; +s8 byte_CODE_bss_8008E33F; +s8 off_CODE_bss_8008E340; +s8 byte_CODE_bss_8008E341; +s8 byte_CODE_bss_8008E342; +s8 byte_CODE_bss_8008E343; +s8 off_CODE_bss_8008E344; +s8 byte_CODE_bss_8008E345; +s8 byte_CODE_bss_8008E346; +s8 byte_CODE_bss_8008E347; +s8 spec_I; +s8 byte_CODE_bss_8008E349; +s8 spec_IFF2_lower; +s8 spec_IFF2_upper; +s8 spec_IM; +s8 byte_CODE_bss_8008E34D; +s16 spec_IX; +s16 spec_IY; +s16 spec_SP; +s16 spec_PC; + + +// data +s8 D_8004EC30 = 0x0; +s8 D_8004EC34[] = {0xFF, 0xFF, 0xFF, 0xFF}; + +s8 D_8004EC38[] = {0xFF, 0xFF, 0xFF, 0xFF}; + +s8 D_8004EC3C[] = {0xFF, 0x0, 0x0, 0x0}; + +s16 D_8004EC40[] = { + 0, 0, 0x7FE, 0x3FE, 0x3FD, 0x3FB, 0x3F7, 0x3EF, 0x4F7, 0x3FD, + 0x4FD, 0x4FE, 0x4FB, 0x6FB, 0x7F7, 0x6F7, 0x8FB, 0xEF, 0x4FE, 0x3FE, + 0x3FD, 0x3FB, 0x3F7, 0x3EF, 0x4EF, 0x4F7, 0x4FB, 0x4FD, 0xFD, 0x5FD, + 0x7F7, 0x6FB, 0x8FB, 0xEF, 0x3FD, 0x1FE, 0x7EF, 0xF7, 0x1FB, 0x2FB, + 0x1F7, 0x1EF, 0x6EF, 0x5FB, 0x6F7, 0x6FB, 0x6FD, 0x7FB, 0x7F7, 0x5FD, + 0x5FE, 0x2FE, 0x2F7, 0x1FD, 0x2EF, 0x5F7, 0xEF, 0x2FD, 0xFB, 0x5EF, + 0xFD, 0x8FF, 0x8FF, 0x8FF, 0x4EF, 0x6F7, 0x8FF, 0x1FE, 0x7EF, 0xF7, + 0x1FB, 0x2FB, 0x1F7, 0x1EF, 0x6EF, 0x5FB, 0x6F7, 0x6FB, 0x6FD, 0x7FB, + 0x7F7, 0x5FD, 0x5FE, 0x2FE, 0x2F7, 0x1FD, 0x2EF, 0x5F7, 0xEF, 0x2FD, + 0xFB, 0x5EF, 0xFD, 0x8FF, 0x8FF, 0x8FF, 0x8FF, 0x8FF, 0, 0 +}; + +s32 D_8004ED08 = 0; + +s16 D_8004ED0C[] = { + 1, 0x21,0x8001,0x8021, 0x401, 0x421,0x8401,0x8421, + 1, 0x3F,0xF801,0xF83F, 0x7C1, 0x7FF,0xFFC1,0xFFFF +}; +// +char* romnames[] = { + "em/data/sabre.seg.rz", + "em/data/atic.seg.rz", + "em/data/jetpac.seg.rz", + "em/data/jetman.seg.rz", + "em/data/alien8.seg.rz", + "em/data/gunfright.seg.rz", + "em/data/under.seg.rz", + "em/data/knightlore.seg.rz", + "em/data/pssst.seg.rz", + "em/data/cookie.seg.rz" +}; + +u32 D_8004ED54[] = {0x7000000, 0x0,0xFF000000,0xFF000000}; + +// rodata +//8005C114 +const char aEmDataSpec_rom_seg_rz[] = "em/data/spec_rom.seg.rz"; + + + +#ifdef NONMATCHING +void sub_GAME_7F0D28E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D28E0 +/* 107410 7F0D28E0 0006C200 */ sll $t8, $a2, 8 +/* 107414 7F0D28E4 33190700 */ andi $t9, $t8, 0x700 +/* 107418 7F0D28E8 00067140 */ sll $t6, $a2, 5 +/* 10741C 7F0D28EC 31CF1800 */ andi $t7, $t6, 0x1800 +/* 107420 7F0D28F0 00061880 */ sll $v1, $a2, 2 +/* 107424 7F0D28F4 01F95825 */ or $t3, $t7, $t9 +/* 107428 7F0D28F8 000540C3 */ sra $t0, $a1, 3 +/* 10742C 7F0D28FC 307803E0 */ andi $t8, $v1, 0x3e0 +/* 107430 7F0D2900 27BDFFF8 */ addiu $sp, $sp, -8 +/* 107434 7F0D2904 03087821 */ addu $t7, $t8, $t0 +/* 107438 7F0D2908 AFB00004 */ sw $s0, 4($sp) +/* 10743C 7F0D290C 01E4C821 */ addu $t9, $t7, $a0 +/* 107440 7F0D2910 93291800 */ lbu $t1, 0x1800($t9) +/* 107444 7F0D2914 306C00E0 */ andi $t4, $v1, 0xe0 +/* 107448 7F0D2918 016C6825 */ or $t5, $t3, $t4 +/* 10744C 7F0D291C 01A87025 */ or $t6, $t5, $t0 +/* 107450 7F0D2920 312B0080 */ andi $t3, $t1, 0x80 +/* 107454 7F0D2924 00E08025 */ move $s0, $a3 +/* 107458 7F0D2928 01C41021 */ addu $v0, $t6, $a0 +/* 10745C 7F0D292C 1160000A */ beqz $t3, .L7F0D2958 +/* 107460 7F0D2930 01205025 */ move $t2, $t1 +/* 107464 7F0D2934 3C0C8005 */ lui $t4, %hi(D_8004EC40+0xC4) +/* 107468 7F0D2938 918CED04 */ lbu $t4, %lo(D_8004EC40+0xC4)($t4) +/* 10746C 7F0D293C 01201825 */ move $v1, $t1 +/* 107470 7F0D2940 306D0007 */ andi $t5, $v1, 7 +/* 107474 7F0D2944 11800004 */ beqz $t4, .L7F0D2958 +/* 107478 7F0D2948 01A01825 */ move $v1, $t5 +/* 10747C 7F0D294C 000970C3 */ sra $t6, $t1, 3 +/* 107480 7F0D2950 10000006 */ b .L7F0D296C +/* 107484 7F0D2954 31C40007 */ andi $a0, $t6, 7 +.L7F0D2958: +/* 107488 7F0D2958 01402025 */ move $a0, $t2 +/* 10748C 7F0D295C 308F0007 */ andi $t7, $a0, 7 +/* 107490 7F0D2960 000AC8C3 */ sra $t9, $t2, 3 +/* 107494 7F0D2964 01E02025 */ move $a0, $t7 +/* 107498 7F0D2968 33230007 */ andi $v1, $t9, 7 +.L7F0D296C: +/* 10749C 7F0D296C 314C0040 */ andi $t4, $t2, 0x40 +/* 1074A0 7F0D2970 15800007 */ bnez $t4, .L7F0D2990 +/* 1074A4 7F0D2974 00002825 */ move $a1, $zero +/* 1074A8 7F0D2978 24840008 */ addiu $a0, $a0, 8 +/* 1074AC 7F0D297C 24630008 */ addiu $v1, $v1, 8 +/* 1074B0 7F0D2980 308D00FF */ andi $t5, $a0, 0xff +/* 1074B4 7F0D2984 306E00FF */ andi $t6, $v1, 0xff +/* 1074B8 7F0D2988 01A02025 */ move $a0, $t5 +/* 1074BC 7F0D298C 01C01825 */ move $v1, $t6 +.L7F0D2990: +/* 1074C0 7F0D2990 24090008 */ li $t1, 8 +.L7F0D2994: +/* 1074C4 7F0D2994 90470000 */ lbu $a3, ($v0) +/* 1074C8 7F0D2998 24A50001 */ addiu $a1, $a1, 1 +/* 1074CC 7F0D299C 24420100 */ addiu $v0, $v0, 0x100 +/* 1074D0 7F0D29A0 30F80080 */ andi $t8, $a3, 0x80 +/* 1074D4 7F0D29A4 13000003 */ beqz $t8, .L7F0D29B4 +/* 1074D8 7F0D29A8 30EF0040 */ andi $t7, $a3, 0x40 +/* 1074DC 7F0D29AC 10000002 */ b .L7F0D29B8 +/* 1074E0 7F0D29B0 00803025 */ move $a2, $a0 +.L7F0D29B4: +/* 1074E4 7F0D29B4 00603025 */ move $a2, $v1 +.L7F0D29B8: +/* 1074E8 7F0D29B8 11E00003 */ beqz $t7, .L7F0D29C8 +/* 1074EC 7F0D29BC 0006C900 */ sll $t9, $a2, 4 +/* 1074F0 7F0D29C0 10000002 */ b .L7F0D29CC +/* 1074F4 7F0D29C4 00804025 */ move $t0, $a0 +.L7F0D29C8: +/* 1074F8 7F0D29C8 00604025 */ move $t0, $v1 +.L7F0D29CC: +/* 1074FC 7F0D29CC 01195825 */ or $t3, $t0, $t9 +/* 107500 7F0D29D0 30EC0020 */ andi $t4, $a3, 0x20 +/* 107504 7F0D29D4 11800003 */ beqz $t4, .L7F0D29E4 +/* 107508 7F0D29D8 A20B0000 */ sb $t3, ($s0) +/* 10750C 7F0D29DC 10000002 */ b .L7F0D29E8 +/* 107510 7F0D29E0 00803025 */ move $a2, $a0 +.L7F0D29E4: +/* 107514 7F0D29E4 00603025 */ move $a2, $v1 +.L7F0D29E8: +/* 107518 7F0D29E8 30ED0010 */ andi $t5, $a3, 0x10 +/* 10751C 7F0D29EC 11A00003 */ beqz $t5, .L7F0D29FC +/* 107520 7F0D29F0 00067100 */ sll $t6, $a2, 4 +/* 107524 7F0D29F4 10000002 */ b .L7F0D2A00 +/* 107528 7F0D29F8 00804025 */ move $t0, $a0 +.L7F0D29FC: +/* 10752C 7F0D29FC 00604025 */ move $t0, $v1 +.L7F0D2A00: +/* 107530 7F0D2A00 010EC025 */ or $t8, $t0, $t6 +/* 107534 7F0D2A04 30EF0008 */ andi $t7, $a3, 8 +/* 107538 7F0D2A08 11E00003 */ beqz $t7, .L7F0D2A18 +/* 10753C 7F0D2A0C A2180001 */ sb $t8, 1($s0) +/* 107540 7F0D2A10 10000002 */ b .L7F0D2A1C +/* 107544 7F0D2A14 00803025 */ move $a2, $a0 +.L7F0D2A18: +/* 107548 7F0D2A18 00603025 */ move $a2, $v1 +.L7F0D2A1C: +/* 10754C 7F0D2A1C 30F90004 */ andi $t9, $a3, 4 +/* 107550 7F0D2A20 13200003 */ beqz $t9, .L7F0D2A30 +/* 107554 7F0D2A24 00065900 */ sll $t3, $a2, 4 +/* 107558 7F0D2A28 10000002 */ b .L7F0D2A34 +/* 10755C 7F0D2A2C 00804025 */ move $t0, $a0 +.L7F0D2A30: +/* 107560 7F0D2A30 00604025 */ move $t0, $v1 +.L7F0D2A34: +/* 107564 7F0D2A34 010B6025 */ or $t4, $t0, $t3 +/* 107568 7F0D2A38 30ED0002 */ andi $t5, $a3, 2 +/* 10756C 7F0D2A3C 11A00003 */ beqz $t5, .L7F0D2A4C +/* 107570 7F0D2A40 A20C0002 */ sb $t4, 2($s0) +/* 107574 7F0D2A44 10000002 */ b .L7F0D2A50 +/* 107578 7F0D2A48 00803025 */ move $a2, $a0 +.L7F0D2A4C: +/* 10757C 7F0D2A4C 00603025 */ move $a2, $v1 +.L7F0D2A50: +/* 107580 7F0D2A50 30EE0001 */ andi $t6, $a3, 1 +/* 107584 7F0D2A54 11C00003 */ beqz $t6, .L7F0D2A64 +/* 107588 7F0D2A58 0006C100 */ sll $t8, $a2, 4 +/* 10758C 7F0D2A5C 10000002 */ b .L7F0D2A68 +/* 107590 7F0D2A60 00804025 */ move $t0, $a0 +.L7F0D2A64: +/* 107594 7F0D2A64 00604025 */ move $t0, $v1 +.L7F0D2A68: +/* 107598 7F0D2A68 01187825 */ or $t7, $t0, $t8 +/* 10759C 7F0D2A6C A20F0003 */ sb $t7, 3($s0) +/* 1075A0 7F0D2A70 14A9FFC8 */ bne $a1, $t1, .L7F0D2994 +/* 1075A4 7F0D2A74 26100020 */ addiu $s0, $s0, 0x20 +/* 1075A8 7F0D2A78 8FB00004 */ lw $s0, 4($sp) +/* 1075AC 7F0D2A7C 03E00008 */ jr $ra +/* 1075B0 7F0D2A80 27BD0008 */ addiu $sp, $sp, 8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D2A84(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D2A84 +/* 1075B4 7F0D2A84 3C028005 */ lui $v0, %hi(D_8004ED08) +/* 1075B8 7F0D2A88 2442ED08 */ addiu $v0, %lo(D_8004ED08) # addiu $v0, $v0, -0x12f8 +/* 1075BC 7F0D2A8C 904E0000 */ lbu $t6, ($v0) +/* 1075C0 7F0D2A90 24010019 */ li $at, 25 +/* 1075C4 7F0D2A94 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 1075C8 7F0D2A98 25CF0001 */ addiu $t7, $t6, 1 +/* 1075CC 7F0D2A9C 31F800FF */ andi $t8, $t7, 0xff +/* 1075D0 7F0D2AA0 0301001A */ div $zero, $t8, $at +/* 1075D4 7F0D2AA4 AFB5002C */ sw $s5, 0x2c($sp) +/* 1075D8 7F0D2AA8 0000C810 */ mfhi $t9 +/* 1075DC 7F0D2AAC 0080A825 */ move $s5, $a0 +/* 1075E0 7F0D2AB0 AFBF003C */ sw $ra, 0x3c($sp) +/* 1075E4 7F0D2AB4 AFBE0038 */ sw $fp, 0x38($sp) +/* 1075E8 7F0D2AB8 AFB70034 */ sw $s7, 0x34($sp) +/* 1075EC 7F0D2ABC AFB60030 */ sw $s6, 0x30($sp) +/* 1075F0 7F0D2AC0 AFB40028 */ sw $s4, 0x28($sp) +/* 1075F4 7F0D2AC4 AFB30024 */ sw $s3, 0x24($sp) +/* 1075F8 7F0D2AC8 AFB20020 */ sw $s2, 0x20($sp) +/* 1075FC 7F0D2ACC AFB1001C */ sw $s1, 0x1c($sp) +/* 107600 7F0D2AD0 AFB00018 */ sw $s0, 0x18($sp) +/* 107604 7F0D2AD4 AFA50064 */ sw $a1, 0x64($sp) +/* 107608 7F0D2AD8 1720001B */ bnez $t9, .L7F0D2B48 +/* 10760C 7F0D2ADC A04F0000 */ sb $t7, ($v0) +/* 107610 7F0D2AE0 A0400000 */ sb $zero, ($v0) +/* 107614 7F0D2AE4 3C168009 */ lui $s6, %hi(ptr_300alloc) +/* 107618 7F0D2AE8 26D6E32C */ addiu $s6, %lo(ptr_300alloc) # addiu $s6, $s6, -0x1cd4 +/* 10761C 7F0D2AEC 24020001 */ li $v0, 1 +/* 107620 7F0D2AF0 00001825 */ move $v1, $zero +.L7F0D2AF4: +/* 107624 7F0D2AF4 8EC80000 */ lw $t0, ($s6) +/* 107628 7F0D2AF8 24010300 */ li $at, 768 +/* 10762C 7F0D2AFC 01034821 */ addu $t1, $t0, $v1 +/* 107630 7F0D2B00 A1220000 */ sb $v0, ($t1) +/* 107634 7F0D2B04 8ECA0000 */ lw $t2, ($s6) +/* 107638 7F0D2B08 01435821 */ addu $t3, $t2, $v1 +/* 10763C 7F0D2B0C A1620001 */ sb $v0, 1($t3) +/* 107640 7F0D2B10 8ECC0000 */ lw $t4, ($s6) +/* 107644 7F0D2B14 01836821 */ addu $t5, $t4, $v1 +/* 107648 7F0D2B18 A1A20002 */ sb $v0, 2($t5) +/* 10764C 7F0D2B1C 8ECE0000 */ lw $t6, ($s6) +/* 107650 7F0D2B20 01C37821 */ addu $t7, $t6, $v1 +/* 107654 7F0D2B24 24630004 */ addiu $v1, $v1, 4 +/* 107658 7F0D2B28 1461FFF2 */ bne $v1, $at, .L7F0D2AF4 +/* 10765C 7F0D2B2C A1E20003 */ sb $v0, 3($t7) +/* 107660 7F0D2B30 3C028005 */ lui $v0, %hi(D_8004EC40+0xC4) +/* 107664 7F0D2B34 2442ED04 */ addiu $v0, %lo(D_8004EC40+0xC4) # addiu $v0, $v0, -0x12fc +/* 107668 7F0D2B38 90580000 */ lbu $t8, ($v0) +/* 10766C 7F0D2B3C 24190001 */ li $t9, 1 +/* 107670 7F0D2B40 03384023 */ subu $t0, $t9, $t8 +/* 107674 7F0D2B44 A0480000 */ sb $t0, ($v0) +.L7F0D2B48: +/* 107678 7F0D2B48 3C168009 */ lui $s6, %hi(ptr_300alloc) +/* 10767C 7F0D2B4C 26D6E32C */ addiu $s6, %lo(ptr_300alloc) # addiu $s6, $s6, -0x1cd4 +/* 107680 7F0D2B50 AFA00058 */ sw $zero, 0x58($sp) +.L7F0D2B54: +/* 107684 7F0D2B54 8FA90058 */ lw $t1, 0x58($sp) +/* 107688 7F0D2B58 0000B825 */ move $s7, $zero +/* 10768C 7F0D2B5C 00095183 */ sra $t2, $t1, 6 +/* 107690 7F0D2B60 000A5880 */ sll $t3, $t2, 2 +/* 107694 7F0D2B64 AFAB0040 */ sw $t3, 0x40($sp) +/* 107698 7F0D2B68 253E0040 */ addiu $fp, $t1, 0x40 +/* 10769C 7F0D2B6C 8FAC0040 */ lw $t4, 0x40($sp) +.L7F0D2B70: +/* 1076A0 7F0D2B70 8FB40058 */ lw $s4, 0x58($sp) +/* 1076A4 7F0D2B74 00176983 */ sra $t5, $s7, 6 +/* 1076A8 7F0D2B78 8FB90064 */ lw $t9, 0x64($sp) +/* 1076AC 7F0D2B7C 018D7021 */ addu $t6, $t4, $t5 +/* 1076B0 7F0D2B80 000E7AC0 */ sll $t7, $t6, 0xb +/* 1076B4 7F0D2B84 029E082A */ slt $at, $s4, $fp +/* 1076B8 7F0D2B88 1020001B */ beqz $at, .L7F0D2BF8 +/* 1076BC 7F0D2B8C 01F98821 */ addu $s1, $t7, $t9 +/* 1076C0 7F0D2B90 26F30040 */ addiu $s3, $s7, 0x40 +.L7F0D2B94: +/* 1076C4 7F0D2B94 02F3082A */ slt $at, $s7, $s3 +/* 1076C8 7F0D2B98 10200013 */ beqz $at, .L7F0D2BE8 +/* 1076CC 7F0D2B9C 02E08025 */ move $s0, $s7 +/* 1076D0 7F0D2BA0 001490C3 */ sra $s2, $s4, 3 +/* 1076D4 7F0D2BA4 00124140 */ sll $t0, $s2, 5 +/* 1076D8 7F0D2BA8 01009025 */ move $s2, $t0 +.L7F0D2BAC: +/* 1076DC 7F0D2BAC 8EC90000 */ lw $t1, ($s6) +/* 1076E0 7F0D2BB0 001050C3 */ sra $t2, $s0, 3 +/* 1076E4 7F0D2BB4 024A5825 */ or $t3, $s2, $t2 +/* 1076E8 7F0D2BB8 01696021 */ addu $t4, $t3, $t1 +/* 1076EC 7F0D2BBC 918D0000 */ lbu $t5, ($t4) +/* 1076F0 7F0D2BC0 02A02025 */ move $a0, $s5 +/* 1076F4 7F0D2BC4 02002825 */ move $a1, $s0 +/* 1076F8 7F0D2BC8 11A00003 */ beqz $t5, .L7F0D2BD8 +/* 1076FC 7F0D2BCC 02803025 */ move $a2, $s4 +/* 107700 7F0D2BD0 0FC34A38 */ jal sub_GAME_7F0D28E0 +/* 107704 7F0D2BD4 02203825 */ move $a3, $s1 +.L7F0D2BD8: +/* 107708 7F0D2BD8 26100008 */ addiu $s0, $s0, 8 +/* 10770C 7F0D2BDC 0213082A */ slt $at, $s0, $s3 +/* 107710 7F0D2BE0 1420FFF2 */ bnez $at, .L7F0D2BAC +/* 107714 7F0D2BE4 26310004 */ addiu $s1, $s1, 4 +.L7F0D2BE8: +/* 107718 7F0D2BE8 26940008 */ addiu $s4, $s4, 8 +/* 10771C 7F0D2BEC 029E082A */ slt $at, $s4, $fp +/* 107720 7F0D2BF0 1420FFE8 */ bnez $at, .L7F0D2B94 +/* 107724 7F0D2BF4 263100E0 */ addiu $s1, $s1, 0xe0 +.L7F0D2BF8: +/* 107728 7F0D2BF8 26F70040 */ addiu $s7, $s7, 0x40 +/* 10772C 7F0D2BFC 2AE10100 */ slti $at, $s7, 0x100 +/* 107730 7F0D2C00 5420FFDB */ bnezl $at, .L7F0D2B70 +/* 107734 7F0D2C04 8FAC0040 */ lw $t4, 0x40($sp) +/* 107738 7F0D2C08 2BC100C0 */ slti $at, $fp, 0xc0 +/* 10773C 7F0D2C0C 1420FFD1 */ bnez $at, .L7F0D2B54 +/* 107740 7F0D2C10 AFBE0058 */ sw $fp, 0x58($sp) +/* 107744 7F0D2C14 00001025 */ move $v0, $zero +.L7F0D2C18: +/* 107748 7F0D2C18 8ECF0000 */ lw $t7, ($s6) +/* 10774C 7F0D2C1C 24010300 */ li $at, 768 +/* 107750 7F0D2C20 01E2C821 */ addu $t9, $t7, $v0 +/* 107754 7F0D2C24 A3200000 */ sb $zero, ($t9) +/* 107758 7F0D2C28 8ED80000 */ lw $t8, ($s6) +/* 10775C 7F0D2C2C 03024021 */ addu $t0, $t8, $v0 +/* 107760 7F0D2C30 A1000001 */ sb $zero, 1($t0) +/* 107764 7F0D2C34 8ECA0000 */ lw $t2, ($s6) +/* 107768 7F0D2C38 01425821 */ addu $t3, $t2, $v0 +/* 10776C 7F0D2C3C A1600002 */ sb $zero, 2($t3) +/* 107770 7F0D2C40 8EC90000 */ lw $t1, ($s6) +/* 107774 7F0D2C44 01226021 */ addu $t4, $t1, $v0 +/* 107778 7F0D2C48 24420004 */ addiu $v0, $v0, 4 +/* 10777C 7F0D2C4C 1441FFF2 */ bne $v0, $at, .L7F0D2C18 +/* 107780 7F0D2C50 A1800003 */ sb $zero, 3($t4) +/* 107784 7F0D2C54 8FBF003C */ lw $ra, 0x3c($sp) +/* 107788 7F0D2C58 8FB00018 */ lw $s0, 0x18($sp) +/* 10778C 7F0D2C5C 8FB1001C */ lw $s1, 0x1c($sp) +/* 107790 7F0D2C60 8FB20020 */ lw $s2, 0x20($sp) +/* 107794 7F0D2C64 8FB30024 */ lw $s3, 0x24($sp) +/* 107798 7F0D2C68 8FB40028 */ lw $s4, 0x28($sp) +/* 10779C 7F0D2C6C 8FB5002C */ lw $s5, 0x2c($sp) +/* 1077A0 7F0D2C70 8FB60030 */ lw $s6, 0x30($sp) +/* 1077A4 7F0D2C74 8FB70034 */ lw $s7, 0x34($sp) +/* 1077A8 7F0D2C78 8FBE0038 */ lw $fp, 0x38($sp) +/* 1077AC 7F0D2C7C 03E00008 */ jr $ra +/* 1077B0 7F0D2C80 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + +#ifdef NONMATCHING +void spectrum_p1controller_to_kempston(void) { + +} +#else +GLOBAL_ASM( +.text +glabel spectrum_p1controller_to_kempston +/* 1077B4 7F0D2C84 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 1077B8 7F0D2C88 AFBF0014 */ sw $ra, 0x14($sp) +/* 1077BC 7F0D2C8C AFA00034 */ sw $zero, 0x34($sp) +/* 1077C0 7F0D2C90 AFA00030 */ sw $zero, 0x30($sp) +/* 1077C4 7F0D2C94 AFA0002C */ sw $zero, 0x2c($sp) +/* 1077C8 7F0D2C98 AFA00028 */ sw $zero, 0x28($sp) +/* 1077CC 7F0D2C9C 0C002F43 */ jal redirect_to_ramrom_replay_and_record_handlers_if_set +/* 1077D0 7F0D2CA0 AFA00024 */ sw $zero, 0x24($sp) +/* 1077D4 7F0D2CA4 00002025 */ move $a0, $zero +/* 1077D8 7F0D2CA8 0C0030C3 */ jal get_controller_buttons_held +/* 1077DC 7F0D2CAC 3405FFFF */ li $a1, 65535 +/* 1077E0 7F0D2CB0 00002025 */ move $a0, $zero +/* 1077E4 7F0D2CB4 2405FFFD */ li $a1, -3 +/* 1077E8 7F0D2CB8 24060003 */ li $a2, 3 +/* 1077EC 7F0D2CBC 0C00312D */ jal get_controller_3dstick_L_R +/* 1077F0 7F0D2CC0 AFA20020 */ sw $v0, 0x20($sp) +/* 1077F4 7F0D2CC4 00002025 */ move $a0, $zero +/* 1077F8 7F0D2CC8 2405FFFD */ li $a1, -3 +/* 1077FC 7F0D2CCC 24060003 */ li $a2, 3 +/* 107800 7F0D2CD0 0C00314A */ jal get_controller_3dstick_U_D +/* 107804 7F0D2CD4 AFA2001C */ sw $v0, 0x1c($sp) +/* 107808 7F0D2CD8 240E00FF */ li $t6, 255 +/* 10780C 7F0D2CDC 3C018005 */ lui $at, %hi(D_8004EC34) +/* 107810 7F0D2CE0 3C048005 */ lui $a0, %hi(D_8004EC34+1) +/* 107814 7F0D2CE4 3C058005 */ lui $a1, %hi(D_8004EC3C+1) +/* 107818 7F0D2CE8 8FA70020 */ lw $a3, 0x20($sp) +/* 10781C 7F0D2CEC 8FA8001C */ lw $t0, 0x1c($sp) +/* 107820 7F0D2CF0 24A5EC3D */ addiu $a1, %lo(D_8004EC3C+1) # addiu $a1, $a1, -0x13c3 +/* 107824 7F0D2CF4 2484EC35 */ addiu $a0, %lo(D_8004EC34+1) # addiu $a0, $a0, -0x13cb +/* 107828 7F0D2CF8 A02EEC34 */ sb $t6, %lo(D_8004EC34)($at) +/* 10782C 7F0D2CFC 240300FF */ li $v1, 255 +.L7F0D2D00: +/* 107830 7F0D2D00 24840004 */ addiu $a0, $a0, 4 +/* 107834 7F0D2D04 A083FFFD */ sb $v1, -3($a0) +/* 107838 7F0D2D08 A083FFFE */ sb $v1, -2($a0) +/* 10783C 7F0D2D0C A083FFFF */ sb $v1, -1($a0) +/* 107840 7F0D2D10 1485FFFB */ bne $a0, $a1, .L7F0D2D00 +/* 107844 7F0D2D14 A083FFFC */ sb $v1, -4($a0) +/* 107848 7F0D2D18 30EF2000 */ andi $t7, $a3, 0x2000 +/* 10784C 7F0D2D1C 11E00003 */ beqz $t7, .L7F0D2D2C +/* 107850 7F0D2D20 30F90202 */ andi $t9, $a3, 0x202 +/* 107854 7F0D2D24 24180001 */ li $t8, 1 +/* 107858 7F0D2D28 AFB80024 */ sw $t8, 0x24($sp) +.L7F0D2D2C: +/* 10785C 7F0D2D2C 17200003 */ bnez $t9, .L7F0D2D3C +/* 107860 7F0D2D30 30EA0101 */ andi $t2, $a3, 0x101 +/* 107864 7F0D2D34 2901FFFF */ slti $at, $t0, -1 +/* 107868 7F0D2D38 10200002 */ beqz $at, .L7F0D2D44 +.L7F0D2D3C: +/* 10786C 7F0D2D3C 24090001 */ li $t1, 1 +/* 107870 7F0D2D40 AFA9002C */ sw $t1, 0x2c($sp) +.L7F0D2D44: +/* 107874 7F0D2D44 15400003 */ bnez $t2, .L7F0D2D54 +/* 107878 7F0D2D48 30EC0808 */ andi $t4, $a3, 0x808 +/* 10787C 7F0D2D4C 29010002 */ slti $at, $t0, 2 +/* 107880 7F0D2D50 14200002 */ bnez $at, .L7F0D2D5C +.L7F0D2D54: +/* 107884 7F0D2D54 240B0001 */ li $t3, 1 +/* 107888 7F0D2D58 AFAB0028 */ sw $t3, 0x28($sp) +.L7F0D2D5C: +/* 10788C 7F0D2D5C 15800003 */ bnez $t4, .L7F0D2D6C +/* 107890 7F0D2D60 30ED0404 */ andi $t5, $a3, 0x404 +/* 107894 7F0D2D64 28410002 */ slti $at, $v0, 2 +/* 107898 7F0D2D68 14200002 */ bnez $at, .L7F0D2D74 +.L7F0D2D6C: +/* 10789C 7F0D2D6C 24050001 */ li $a1, 1 +/* 1078A0 7F0D2D70 AFA50034 */ sw $a1, 0x34($sp) +.L7F0D2D74: +/* 1078A4 7F0D2D74 15A00003 */ bnez $t5, .L7F0D2D84 +/* 1078A8 7F0D2D78 8FA50034 */ lw $a1, 0x34($sp) +/* 1078AC 7F0D2D7C 2841FFFF */ slti $at, $v0, -1 +/* 1078B0 7F0D2D80 10200002 */ beqz $at, .L7F0D2D8C +.L7F0D2D84: +/* 1078B4 7F0D2D84 24060001 */ li $a2, 1 +/* 1078B8 7F0D2D88 AFA60030 */ sw $a2, 0x30($sp) +.L7F0D2D8C: +/* 1078BC 7F0D2D8C 3C038009 */ lui $v1, %hi(byte_CODE_bss_8008E34D) +/* 1078C0 7F0D2D90 9063E34D */ lbu $v1, %lo(byte_CODE_bss_8008E34D)($v1) +/* 1078C4 7F0D2D94 24040002 */ li $a0, 2 +/* 1078C8 7F0D2D98 8FA60030 */ lw $a2, 0x30($sp) +/* 1078CC 7F0D2D9C 14830005 */ bne $a0, $v1, .L7F0D2DB4 +/* 1078D0 7F0D2DA0 24020004 */ li $v0, 4 +/* 1078D4 7F0D2DA4 30EEC000 */ andi $t6, $a3, 0xc000 +/* 1078D8 7F0D2DA8 11C00002 */ beqz $t6, .L7F0D2DB4 +/* 1078DC 7F0D2DAC 00000000 */ nop +/* 1078E0 7F0D2DB0 24050001 */ li $a1, 1 +.L7F0D2DB4: +/* 1078E4 7F0D2DB4 10430002 */ beq $v0, $v1, .L7F0D2DC0 +/* 1078E8 7F0D2DB8 24010007 */ li $at, 7 +/* 1078EC 7F0D2DBC 14610004 */ bne $v1, $at, .L7F0D2DD0 +.L7F0D2DC0: +/* 1078F0 7F0D2DC0 30EFC000 */ andi $t7, $a3, 0xc000 +/* 1078F4 7F0D2DC4 11E00002 */ beqz $t7, .L7F0D2DD0 +/* 1078F8 7F0D2DC8 00000000 */ nop +/* 1078FC 7F0D2DCC 24060001 */ li $a2, 1 +.L7F0D2DD0: +/* 107900 7F0D2DD0 1060000A */ beqz $v1, .L7F0D2DFC +/* 107904 7F0D2DD4 24010001 */ li $at, 1 +/* 107908 7F0D2DD8 10610008 */ beq $v1, $at, .L7F0D2DFC +/* 10790C 7F0D2DDC 24010006 */ li $at, 6 +/* 107910 7F0D2DE0 10610006 */ beq $v1, $at, .L7F0D2DFC +/* 107914 7F0D2DE4 24010009 */ li $at, 9 +/* 107918 7F0D2DE8 50610005 */ beql $v1, $at, .L7F0D2E00 +/* 10791C 7F0D2DEC 30F8C000 */ andi $t8, $a3, 0xc000 +/* 107920 7F0D2DF0 10430002 */ beq $v0, $v1, .L7F0D2DFC +/* 107924 7F0D2DF4 24010007 */ li $at, 7 +/* 107928 7F0D2DF8 14610007 */ bne $v1, $at, .L7F0D2E18 +.L7F0D2DFC: +/* 10792C 7F0D2DFC 30F8C000 */ andi $t8, $a3, 0xc000 +.L7F0D2E00: +/* 107930 7F0D2E00 13000005 */ beqz $t8, .L7F0D2E18 +/* 107934 7F0D2E04 3C028005 */ lui $v0, %hi(D_8004EC34) +/* 107938 7F0D2E08 2442EC34 */ addiu $v0, %lo(D_8004EC34) # addiu $v0, $v0, -0x13cc +/* 10793C 7F0D2E0C 90590004 */ lbu $t9, 4($v0) +/* 107940 7F0D2E10 332900FE */ andi $t1, $t9, 0xfe +/* 107944 7F0D2E14 A0490004 */ sb $t1, 4($v0) +.L7F0D2E18: +/* 107948 7F0D2E18 3C028005 */ lui $v0, %hi(D_8004EC34) +/* 10794C 7F0D2E1C 10830003 */ beq $a0, $v1, .L7F0D2E2C +/* 107950 7F0D2E20 2442EC34 */ addiu $v0, %lo(D_8004EC34) # addiu $v0, $v0, -0x13cc +/* 107954 7F0D2E24 24010008 */ li $at, 8 +/* 107958 7F0D2E28 14610006 */ bne $v1, $at, .L7F0D2E44 +.L7F0D2E2C: +/* 10795C 7F0D2E2C 30EAC000 */ andi $t2, $a3, 0xc000 +/* 107960 7F0D2E30 51400005 */ beql $t2, $zero, .L7F0D2E48 +/* 107964 7F0D2E34 24010005 */ li $at, 5 +/* 107968 7F0D2E38 904B0003 */ lbu $t3, 3($v0) +/* 10796C 7F0D2E3C 316C00EF */ andi $t4, $t3, 0xef +/* 107970 7F0D2E40 A04C0003 */ sb $t4, 3($v0) +.L7F0D2E44: +/* 107974 7F0D2E44 24010005 */ li $at, 5 +.L7F0D2E48: +/* 107978 7F0D2E48 14610006 */ bne $v1, $at, .L7F0D2E64 +/* 10797C 7F0D2E4C 30EDC000 */ andi $t5, $a3, 0xc000 +/* 107980 7F0D2E50 51A00005 */ beql $t5, $zero, .L7F0D2E68 +/* 107984 7F0D2E54 24010003 */ li $at, 3 +/* 107988 7F0D2E58 904E0003 */ lbu $t6, 3($v0) +/* 10798C 7F0D2E5C 31CF00FB */ andi $t7, $t6, 0xfb +/* 107990 7F0D2E60 A04F0003 */ sb $t7, 3($v0) +.L7F0D2E64: +/* 107994 7F0D2E64 24010003 */ li $at, 3 +.L7F0D2E68: +/* 107998 7F0D2E68 14610010 */ bne $v1, $at, .L7F0D2EAC +/* 10799C 7F0D2E6C 30F8C000 */ andi $t8, $a3, 0xc000 +/* 1079A0 7F0D2E70 13000004 */ beqz $t8, .L7F0D2E84 +/* 1079A4 7F0D2E74 30EA8000 */ andi $t2, $a3, 0x8000 +/* 1079A8 7F0D2E78 90590004 */ lbu $t9, 4($v0) +/* 1079AC 7F0D2E7C 332900EF */ andi $t1, $t9, 0xef +/* 1079B0 7F0D2E80 A0490004 */ sb $t1, 4($v0) +.L7F0D2E84: +/* 1079B4 7F0D2E84 11400004 */ beqz $t2, .L7F0D2E98 +/* 1079B8 7F0D2E88 30ED4000 */ andi $t5, $a3, 0x4000 +/* 1079BC 7F0D2E8C 904B0000 */ lbu $t3, ($v0) +/* 1079C0 7F0D2E90 316C00FD */ andi $t4, $t3, 0xfd +/* 1079C4 7F0D2E94 A04C0000 */ sb $t4, ($v0) +.L7F0D2E98: +/* 1079C8 7F0D2E98 51A00005 */ beql $t5, $zero, .L7F0D2EB0 +/* 1079CC 7F0D2E9C 24010006 */ li $at, 6 +/* 1079D0 7F0D2EA0 904E0007 */ lbu $t6, 7($v0) +/* 1079D4 7F0D2EA4 31CF00FE */ andi $t7, $t6, 0xfe +/* 1079D8 7F0D2EA8 A04F0007 */ sb $t7, 7($v0) +.L7F0D2EAC: +/* 1079DC 7F0D2EAC 24010006 */ li $at, 6 +.L7F0D2EB0: +/* 1079E0 7F0D2EB0 14610009 */ bne $v1, $at, .L7F0D2ED8 +/* 1079E4 7F0D2EB4 30F88000 */ andi $t8, $a3, 0x8000 +/* 1079E8 7F0D2EB8 13000002 */ beqz $t8, .L7F0D2EC4 +/* 1079EC 7F0D2EBC 30E44000 */ andi $a0, $a3, 0x4000 +/* 1079F0 7F0D2EC0 24050001 */ li $a1, 1 +.L7F0D2EC4: +/* 1079F4 7F0D2EC4 50800005 */ beql $a0, $zero, .L7F0D2EDC +/* 1079F8 7F0D2EC8 24010001 */ li $at, 1 +/* 1079FC 7F0D2ECC 90590007 */ lbu $t9, 7($v0) +/* 107A00 7F0D2ED0 332900FE */ andi $t1, $t9, 0xfe +/* 107A04 7F0D2ED4 A0490007 */ sb $t1, 7($v0) +.L7F0D2ED8: +/* 107A08 7F0D2ED8 24010001 */ li $at, 1 +.L7F0D2EDC: +/* 107A0C 7F0D2EDC 14610015 */ bne $v1, $at, .L7F0D2F34 +/* 107A10 7F0D2EE0 30EAC000 */ andi $t2, $a3, 0xc000 +/* 107A14 7F0D2EE4 11400004 */ beqz $t2, .L7F0D2EF8 +/* 107A18 7F0D2EE8 30ED0200 */ andi $t5, $a3, 0x200 +/* 107A1C 7F0D2EEC 904B0000 */ lbu $t3, ($v0) +/* 107A20 7F0D2EF0 316C00FD */ andi $t4, $t3, 0xfd +/* 107A24 7F0D2EF4 A04C0000 */ sb $t4, ($v0) +.L7F0D2EF8: +/* 107A28 7F0D2EF8 11A00004 */ beqz $t5, .L7F0D2F0C +/* 107A2C 7F0D2EFC 30F80400 */ andi $t8, $a3, 0x400 +/* 107A30 7F0D2F00 904E0003 */ lbu $t6, 3($v0) +/* 107A34 7F0D2F04 31CF00F7 */ andi $t7, $t6, 0xf7 +/* 107A38 7F0D2F08 A04F0003 */ sb $t7, 3($v0) +.L7F0D2F0C: +/* 107A3C 7F0D2F0C 13000004 */ beqz $t8, .L7F0D2F20 +/* 107A40 7F0D2F10 30EA0100 */ andi $t2, $a3, 0x100 +/* 107A44 7F0D2F14 90590003 */ lbu $t9, 3($v0) +/* 107A48 7F0D2F18 332900EF */ andi $t1, $t9, 0xef +/* 107A4C 7F0D2F1C A0490003 */ sb $t1, 3($v0) +.L7F0D2F20: +/* 107A50 7F0D2F20 51400005 */ beql $t2, $zero, .L7F0D2F38 +/* 107A54 7F0D2F24 30ED0020 */ andi $t5, $a3, 0x20 +/* 107A58 7F0D2F28 904B0004 */ lbu $t3, 4($v0) +/* 107A5C 7F0D2F2C 316C00EF */ andi $t4, $t3, 0xef +/* 107A60 7F0D2F30 A04C0004 */ sb $t4, 4($v0) +.L7F0D2F34: +/* 107A64 7F0D2F34 30ED0020 */ andi $t5, $a3, 0x20 +.L7F0D2F38: +/* 107A68 7F0D2F38 11A00013 */ beqz $t5, .L7F0D2F88 +/* 107A6C 7F0D2F3C 3C018005 */ lui $at, %hi(D_8004EC40) +/* 107A70 7F0D2F40 3C028009 */ lui $v0, %hi(ptr_spectrum_roms) +/* 107A74 7F0D2F44 2442E328 */ addiu $v0, %lo(ptr_spectrum_roms) # addiu $v0, $v0, -0x1cd8 +/* 107A78 7F0D2F48 00001825 */ move $v1, $zero +/* 107A7C 7F0D2F4C 24044000 */ li $a0, 16384 +.L7F0D2F50: +/* 107A80 7F0D2F50 8C4E0000 */ lw $t6, ($v0) +/* 107A84 7F0D2F54 01C37821 */ addu $t7, $t6, $v1 +/* 107A88 7F0D2F58 A1E00000 */ sb $zero, ($t7) +/* 107A8C 7F0D2F5C 8C580000 */ lw $t8, ($v0) +/* 107A90 7F0D2F60 0303C821 */ addu $t9, $t8, $v1 +/* 107A94 7F0D2F64 A3200001 */ sb $zero, 1($t9) +/* 107A98 7F0D2F68 8C490000 */ lw $t1, ($v0) +/* 107A9C 7F0D2F6C 01235021 */ addu $t2, $t1, $v1 +/* 107AA0 7F0D2F70 A1400002 */ sb $zero, 2($t2) +/* 107AA4 7F0D2F74 8C4B0000 */ lw $t3, ($v0) +/* 107AA8 7F0D2F78 01636021 */ addu $t4, $t3, $v1 +/* 107AAC 7F0D2F7C 24630004 */ addiu $v1, 4 # addiu $v1, $v1, 4 +/* 107AB0 7F0D2F80 1464FFF3 */ bne $v1, $a0, .L7F0D2F50 +/* 107AB4 7F0D2F84 A1800003 */ sb $zero, 3($t4) +.L7F0D2F88: +/* 107AB8 7F0D2F88 8FAD0024 */ lw $t5, 0x24($sp) +/* 107ABC 7F0D2F8C 8FAA002C */ lw $t2, 0x2c($sp) +/* 107AC0 7F0D2F90 000578C0 */ sll $t7, $a1, 3 +/* 107AC4 7F0D2F94 000D7100 */ sll $t6, $t5, 4 +/* 107AC8 7F0D2F98 8FAD0028 */ lw $t5, 0x28($sp) +/* 107ACC 7F0D2F9C 01CFC025 */ or $t8, $t6, $t7 +/* 107AD0 7F0D2FA0 0006C880 */ sll $t9, $a2, 2 +/* 107AD4 7F0D2FA4 8FBF0014 */ lw $ra, 0x14($sp) +/* 107AD8 7F0D2FA8 03194825 */ or $t1, $t8, $t9 +/* 107ADC 7F0D2FAC 000A5840 */ sll $t3, $t2, 1 +/* 107AE0 7F0D2FB0 012B6025 */ or $t4, $t1, $t3 +/* 107AE4 7F0D2FB4 018D7025 */ or $t6, $t4, $t5 +/* 107AE8 7F0D2FB8 A02EEC40 */ sb $t6, %lo(D_8004EC40)($at) +/* 107AEC 7F0D2FBC 03E00008 */ jr $ra +/* 107AF0 7F0D2FC0 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void init_spectrum_game(void) { + +} +#else +GLOBAL_ASM( +.text +glabel init_spectrum_game +/* 107AF4 7F0D2FC4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 107AF8 7F0D2FC8 AFBF0014 */ sw $ra, 0x14($sp) +/* 107AFC 7F0D2FCC AFA40018 */ sw $a0, 0x18($sp) +/* 107B00 7F0D2FD0 24040100 */ li $a0, 256 +/* 107B04 7F0D2FD4 0C0025C8 */ jal mempAllocBytesInBank +/* 107B08 7F0D2FD8 24050004 */ li $a1, 4 +/* 107B0C 7F0D2FDC 3C068009 */ lui $a2, %hi(ptr_pc_keyboard_table_alloc) +/* 107B10 7F0D2FE0 24C6E334 */ addiu $a2, %lo(ptr_pc_keyboard_table_alloc) # addiu $a2, $a2, -0x1ccc +/* 107B14 7F0D2FE4 ACC20000 */ sw $v0, ($a2) +/* 107B18 7F0D2FE8 00002025 */ move $a0, $zero +/* 107B1C 7F0D2FEC 24070004 */ li $a3, 4 +/* 107B20 7F0D2FF0 24050008 */ li $a1, 8 +/* 107B24 7F0D2FF4 00001825 */ move $v1, $zero +.L7F0D2FF8: +/* 107B28 7F0D2FF8 00001025 */ move $v0, $zero +/* 107B2C 7F0D2FFC 00447007 */ srav $t6, $a0, $v0 +.L7F0D3000: +/* 107B30 7F0D3000 31CF0001 */ andi $t7, $t6, 1 +/* 107B34 7F0D3004 11E00002 */ beqz $t7, .L7F0D3010 +/* 107B38 7F0D3008 24420001 */ addiu $v0, $v0, 1 +/* 107B3C 7F0D300C 24630001 */ addiu $v1, $v1, 1 +.L7F0D3010: +/* 107B40 7F0D3010 5445FFFB */ bnel $v0, $a1, .L7F0D3000 +/* 107B44 7F0D3014 00447007 */ srav $t6, $a0, $v0 +/* 107B48 7F0D3018 30780001 */ andi $t8, $v1, 1 +/* 107B4C 7F0D301C 53000006 */ beql $t8, $zero, .L7F0D3038 +/* 107B50 7F0D3020 8CCA0000 */ lw $t2, ($a2) +/* 107B54 7F0D3024 8CD90000 */ lw $t9, ($a2) +/* 107B58 7F0D3028 03244821 */ addu $t1, $t9, $a0 +/* 107B5C 7F0D302C 10000004 */ b .L7F0D3040 +/* 107B60 7F0D3030 A1200000 */ sb $zero, ($t1) +/* 107B64 7F0D3034 8CCA0000 */ lw $t2, ($a2) +.L7F0D3038: +/* 107B68 7F0D3038 01445821 */ addu $t3, $t2, $a0 +/* 107B6C 7F0D303C A1670000 */ sb $a3, ($t3) +.L7F0D3040: +/* 107B70 7F0D3040 24840001 */ addiu $a0, $a0, 1 +/* 107B74 7F0D3044 28810100 */ slti $at, $a0, 0x100 +/* 107B78 7F0D3048 5420FFEB */ bnezl $at, .L7F0D2FF8 +/* 107B7C 7F0D304C 00001825 */ move $v1, $zero +/* 107B80 7F0D3050 24046000 */ li $a0, 24576 +/* 107B84 7F0D3054 0C0025C8 */ jal mempAllocBytesInBank +/* 107B88 7F0D3058 24050004 */ li $a1, 4 +/* 107B8C 7F0D305C 3C018009 */ lui $at, %hi(ptr_6000alloc) +/* 107B90 7F0D3060 AC22E330 */ sw $v0, %lo(ptr_6000alloc)($at) +/* 107B94 7F0D3064 24040300 */ li $a0, 768 +/* 107B98 7F0D3068 0C0025C8 */ jal mempAllocBytesInBank +/* 107B9C 7F0D306C 24050004 */ li $a1, 4 +/* 107BA0 7F0D3070 3C038009 */ lui $v1, %hi(ptr_300alloc) +/* 107BA4 7F0D3074 2463E32C */ addiu $v1, %lo(ptr_300alloc) # addiu $v1, $v1, -0x1cd4 +/* 107BA8 7F0D3078 AC620000 */ sw $v0, ($v1) +/* 107BAC 7F0D307C 24020001 */ li $v0, 1 +/* 107BB0 7F0D3080 00002025 */ move $a0, $zero +.L7F0D3084: +/* 107BB4 7F0D3084 8C6C0000 */ lw $t4, ($v1) +/* 107BB8 7F0D3088 01846821 */ addu $t5, $t4, $a0 +/* 107BBC 7F0D308C 24840001 */ addiu $a0, $a0, 1 +/* 107BC0 7F0D3090 28810300 */ slti $at, $a0, 0x300 +/* 107BC4 7F0D3094 1420FFFB */ bnez $at, .L7F0D3084 +/* 107BC8 7F0D3098 A1A20000 */ sb $v0, ($t5) +/* 107BCC 7F0D309C 3C040001 */ lui $a0, 1 +/* 107BD0 7F0D30A0 0C0025C8 */ jal mempAllocBytesInBank +/* 107BD4 7F0D30A4 24050004 */ li $a1, 4 +/* 107BD8 7F0D30A8 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 107BDC 7F0D30AC 2508E328 */ addiu $t0, %lo(ptr_spectrum_roms) # addiu $t0, $t0, -0x1cd8 +/* 107BE0 7F0D30B0 3C048006 */ lui $a0, %hi(aEmDataSpec_rom_seg_rz) +/* 107BE4 7F0D30B4 AD020000 */ sw $v0, ($t0) +/* 107BE8 7F0D30B8 2484C114 */ addiu $a0, %lo(aEmDataSpec_rom_seg_rz) # addiu $a0, $a0, -0x3eec +/* 107BEC 7F0D30BC 24050001 */ li $a1, 1 +/* 107BF0 7F0D30C0 24060100 */ li $a2, 256 +/* 107BF4 7F0D30C4 0FC2F341 */ jal _load_resource_named_to_membank +/* 107BF8 7F0D30C8 24070004 */ li $a3, 4 +/* 107BFC 7F0D30CC 3C038009 */ lui $v1, %hi(ptr_sectrum_monitor_data_temp_buf) +/* 107C00 7F0D30D0 2463E320 */ addiu $v1, %lo(ptr_sectrum_monitor_data_temp_buf) # addiu $v1, $v1, -0x1ce0 +/* 107C04 7F0D30D4 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 107C08 7F0D30D8 2508E328 */ addiu $t0, %lo(ptr_spectrum_roms) # addiu $t0, $t0, -0x1cd8 +/* 107C0C 7F0D30DC AC620000 */ sw $v0, ($v1) +/* 107C10 7F0D30E0 00002025 */ move $a0, $zero +.L7F0D30E4: +/* 107C14 7F0D30E4 8C6E0000 */ lw $t6, ($v1) +/* 107C18 7F0D30E8 8D190000 */ lw $t9, ($t0) +/* 107C1C 7F0D30EC 01C47821 */ addu $t7, $t6, $a0 +/* 107C20 7F0D30F0 03244821 */ addu $t1, $t9, $a0 +/* 107C24 7F0D30F4 91F80000 */ lbu $t8, ($t7) +/* 107C28 7F0D30F8 24840001 */ addiu $a0, $a0, 1 +/* 107C2C 7F0D30FC 28814000 */ slti $at, $a0, 0x4000 +/* 107C30 7F0D3100 1420FFF8 */ bnez $at, .L7F0D30E4 +/* 107C34 7F0D3104 A1380000 */ sb $t8, ($t1) +/* 107C38 7F0D3108 8FAA0018 */ lw $t2, 0x18($sp) +/* 107C3C 7F0D310C 3C038009 */ lui $v1, %hi(byte_CODE_bss_8008E34D) +/* 107C40 7F0D3110 2463E34D */ addiu $v1, %lo(byte_CODE_bss_8008E34D) # addiu $v1, $v1, -0x1cb3 +/* 107C44 7F0D3114 314200FF */ andi $v0, $t2, 0xff +/* 107C48 7F0D3118 28410005 */ slti $at, $v0, 5 +/* 107C4C 7F0D311C 14200003 */ bnez $at, .L7F0D312C +/* 107C50 7F0D3120 A06A0000 */ sb $t2, ($v1) +/* 107C54 7F0D3124 A0600000 */ sb $zero, ($v1) +/* 107C58 7F0D3128 300200FF */ andi $v0, $zero, 0xff +.L7F0D312C: +/* 107C5C 7F0D312C 00025880 */ sll $t3, $v0, 2 +/* 107C60 7F0D3130 3C048005 */ lui $a0, %hi(romnames) +/* 107C64 7F0D3134 008B2021 */ addu $a0, $a0, $t3 +/* 107C68 7F0D3138 8C84ED2C */ lw $a0, %lo(romnames)($a0) +/* 107C6C 7F0D313C 24050001 */ li $a1, 1 +/* 107C70 7F0D3140 24060100 */ li $a2, 256 +/* 107C74 7F0D3144 0FC2F341 */ jal _load_resource_named_to_membank +/* 107C78 7F0D3148 24070004 */ li $a3, 4 +/* 107C7C 7F0D314C 3C038009 */ lui $v1, %hi(ptr_sectrum_game_data_temp_buf) +/* 107C80 7F0D3150 2463E324 */ addiu $v1, %lo(ptr_sectrum_game_data_temp_buf) # addiu $v1, $v1, -0x1cdc +/* 107C84 7F0D3154 AC620000 */ sw $v0, ($v1) +/* 107C88 7F0D3158 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 107C8C 7F0D315C 2508E328 */ addiu $t0, %lo(ptr_spectrum_roms) # addiu $t0, $t0, -0x1cd8 +/* 107C90 7F0D3160 3402C000 */ li $v0, 49152 +/* 107C94 7F0D3164 00002025 */ move $a0, $zero +.L7F0D3168: +/* 107C98 7F0D3168 8C6C0000 */ lw $t4, ($v1) +/* 107C9C 7F0D316C 8D0F0000 */ lw $t7, ($t0) +/* 107CA0 7F0D3170 008C6821 */ addu $t5, $a0, $t4 +/* 107CA4 7F0D3174 91AE001B */ lbu $t6, 0x1b($t5) +/* 107CA8 7F0D3178 01E4C821 */ addu $t9, $t7, $a0 +/* 107CAC 7F0D317C A32E4000 */ sb $t6, 0x4000($t9) +/* 107CB0 7F0D3180 8C780000 */ lw $t8, ($v1) +/* 107CB4 7F0D3184 8D0B0000 */ lw $t3, ($t0) +/* 107CB8 7F0D3188 00984821 */ addu $t1, $a0, $t8 +/* 107CBC 7F0D318C 912A001C */ lbu $t2, 0x1c($t1) +/* 107CC0 7F0D3190 01646021 */ addu $t4, $t3, $a0 +/* 107CC4 7F0D3194 A18A4001 */ sb $t2, 0x4001($t4) +/* 107CC8 7F0D3198 8C6D0000 */ lw $t5, ($v1) +/* 107CCC 7F0D319C 8D190000 */ lw $t9, ($t0) +/* 107CD0 7F0D31A0 008D7821 */ addu $t7, $a0, $t5 +/* 107CD4 7F0D31A4 91EE001D */ lbu $t6, 0x1d($t7) +/* 107CD8 7F0D31A8 0324C021 */ addu $t8, $t9, $a0 +/* 107CDC 7F0D31AC A30E4002 */ sb $t6, 0x4002($t8) +/* 107CE0 7F0D31B0 8C690000 */ lw $t1, ($v1) +/* 107CE4 7F0D31B4 8D0C0000 */ lw $t4, ($t0) +/* 107CE8 7F0D31B8 00895821 */ addu $t3, $a0, $t1 +/* 107CEC 7F0D31BC 916A001E */ lbu $t2, 0x1e($t3) +/* 107CF0 7F0D31C0 01846821 */ addu $t5, $t4, $a0 +/* 107CF4 7F0D31C4 24840004 */ addiu $a0, $a0, 4 +/* 107CF8 7F0D31C8 1482FFE7 */ bne $a0, $v0, .L7F0D3168 +/* 107CFC 7F0D31CC A1AA4003 */ sb $t2, 0x4003($t5) +/* 107D00 7F0D31D0 8C620000 */ lw $v0, ($v1) +/* 107D04 7F0D31D4 3C018009 */ lui $at, %hi(spec_I) +/* 107D08 7F0D31D8 3C058009 */ lui $a1, %hi(spec_IFF2_upper) +/* 107D0C 7F0D31DC 904F0000 */ lbu $t7, ($v0) +/* 107D10 7F0D31E0 24A5E34B */ addiu $a1, %lo(spec_IFF2_upper) # addiu $a1, $a1, -0x1cb5 +/* 107D14 7F0D31E4 3C068009 */ lui $a2, %hi(spec_SP) +/* 107D18 7F0D31E8 A02FE348 */ sb $t7, %lo(spec_I)($at) +/* 107D1C 7F0D31EC 90590001 */ lbu $t9, 1($v0) +/* 107D20 7F0D31F0 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E347) +/* 107D24 7F0D31F4 24C6E352 */ addiu $a2, %lo(spec_SP) # addiu $a2, $a2, -0x1cae +/* 107D28 7F0D31F8 A039E347 */ sb $t9, %lo(byte_CODE_bss_8008E347)($at) +/* 107D2C 7F0D31FC 904E0002 */ lbu $t6, 2($v0) +/* 107D30 7F0D3200 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E346) +/* 107D34 7F0D3204 3C078009 */ lui $a3, %hi(spec_IM) +/* 107D38 7F0D3208 A02EE346 */ sb $t6, %lo(byte_CODE_bss_8008E346)($at) +/* 107D3C 7F0D320C 90580003 */ lbu $t8, 3($v0) +/* 107D40 7F0D3210 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E345) +/* 107D44 7F0D3214 24E7E34C */ addiu $a3, %lo(spec_IM) # addiu $a3, $a3, -0x1cb4 +/* 107D48 7F0D3218 A038E345 */ sb $t8, %lo(byte_CODE_bss_8008E345)($at) +/* 107D4C 7F0D321C 90490004 */ lbu $t1, 4($v0) +/* 107D50 7F0D3220 3C018009 */ lui $at, %hi(off_CODE_bss_8008E344) +/* 107D54 7F0D3224 A029E344 */ sb $t1, %lo(off_CODE_bss_8008E344)($at) +/* 107D58 7F0D3228 904B0005 */ lbu $t3, 5($v0) +/* 107D5C 7F0D322C 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E343) +/* 107D60 7F0D3230 A02BE343 */ sb $t3, %lo(byte_CODE_bss_8008E343)($at) +/* 107D64 7F0D3234 904C0006 */ lbu $t4, 6($v0) +/* 107D68 7F0D3238 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E342) +/* 107D6C 7F0D323C A02CE342 */ sb $t4, %lo(byte_CODE_bss_8008E342)($at) +/* 107D70 7F0D3240 904A0007 */ lbu $t2, 7($v0) +/* 107D74 7F0D3244 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E341) +/* 107D78 7F0D3248 A02AE341 */ sb $t2, %lo(byte_CODE_bss_8008E341)($at) +/* 107D7C 7F0D324C 904D0008 */ lbu $t5, 8($v0) +/* 107D80 7F0D3250 3C018009 */ lui $at, %hi(off_CODE_bss_8008E340) +/* 107D84 7F0D3254 A02DE340 */ sb $t5, %lo(off_CODE_bss_8008E340)($at) +/* 107D88 7F0D3258 904F0009 */ lbu $t7, 9($v0) +/* 107D8C 7F0D325C 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33F) +/* 107D90 7F0D3260 A02FE33F */ sb $t7, %lo(byte_CODE_bss_8008E33F)($at) +/* 107D94 7F0D3264 9059000A */ lbu $t9, 0xa($v0) +/* 107D98 7F0D3268 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33E) +/* 107D9C 7F0D326C A039E33E */ sb $t9, %lo(byte_CODE_bss_8008E33E)($at) +/* 107DA0 7F0D3270 904E000B */ lbu $t6, 0xb($v0) +/* 107DA4 7F0D3274 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33D) +/* 107DA8 7F0D3278 A02EE33D */ sb $t6, %lo(byte_CODE_bss_8008E33D)($at) +/* 107DAC 7F0D327C 9058000C */ lbu $t8, 0xc($v0) +/* 107DB0 7F0D3280 3C018009 */ lui $at, %hi(off_CODE_bss_8008E33C) +/* 107DB4 7F0D3284 A038E33C */ sb $t8, %lo(off_CODE_bss_8008E33C)($at) +/* 107DB8 7F0D3288 9049000D */ lbu $t1, 0xd($v0) +/* 107DBC 7F0D328C 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33B) +/* 107DC0 7F0D3290 A029E33B */ sb $t1, %lo(byte_CODE_bss_8008E33B)($at) +/* 107DC4 7F0D3294 904B000E */ lbu $t3, 0xe($v0) +/* 107DC8 7F0D3298 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33A) +/* 107DCC 7F0D329C A02BE33A */ sb $t3, %lo(byte_CODE_bss_8008E33A)($at) +/* 107DD0 7F0D32A0 904C0010 */ lbu $t4, 0x10($v0) +/* 107DD4 7F0D32A4 904D000F */ lbu $t5, 0xf($v0) +/* 107DD8 7F0D32A8 3C018009 */ lui $at, %hi(spec_IY) +/* 107DDC 7F0D32AC 000C5200 */ sll $t2, $t4, 8 +/* 107DE0 7F0D32B0 014D7821 */ addu $t7, $t2, $t5 +/* 107DE4 7F0D32B4 A42FE350 */ sh $t7, %lo(spec_IY)($at) +/* 107DE8 7F0D32B8 90590012 */ lbu $t9, 0x12($v0) +/* 107DEC 7F0D32BC 90580011 */ lbu $t8, 0x11($v0) +/* 107DF0 7F0D32C0 3C018009 */ lui $at, %hi(spec_IX) +/* 107DF4 7F0D32C4 00197200 */ sll $t6, $t9, 8 +/* 107DF8 7F0D32C8 01D84821 */ addu $t1, $t6, $t8 +/* 107DFC 7F0D32CC A429E34E */ sh $t1, %lo(spec_IX)($at) +/* 107E00 7F0D32D0 904B0013 */ lbu $t3, 0x13($v0) +/* 107E04 7F0D32D4 3C018009 */ lui $at, %hi(spec_IFF2_lower) +/* 107E08 7F0D32D8 000B6083 */ sra $t4, $t3, 2 +/* 107E0C 7F0D32DC 318D0001 */ andi $t5, $t4, 1 +/* 107E10 7F0D32E0 A0AD0000 */ sb $t5, ($a1) +/* 107E14 7F0D32E4 A02DE34A */ sb $t5, %lo(spec_IFF2_lower)($at) +/* 107E18 7F0D32E8 904F0014 */ lbu $t7, 0x14($v0) +/* 107E1C 7F0D32EC 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E349) +/* 107E20 7F0D32F0 A02FE349 */ sb $t7, %lo(byte_CODE_bss_8008E349)($at) +/* 107E24 7F0D32F4 90590015 */ lbu $t9, 0x15($v0) +/* 107E28 7F0D32F8 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E339) +/* 107E2C 7F0D32FC A039E339 */ sb $t9, %lo(byte_CODE_bss_8008E339)($at) +/* 107E30 7F0D3300 904E0016 */ lbu $t6, 0x16($v0) +/* 107E34 7F0D3304 3C018009 */ lui $at, %hi(spectrum_header16_15) +/* 107E38 7F0D3308 A02EE338 */ sb $t6, %lo(spectrum_header16_15)($at) +/* 107E3C 7F0D330C 90580018 */ lbu $t8, 0x18($v0) +/* 107E40 7F0D3310 904B0017 */ lbu $t3, 0x17($v0) +/* 107E44 7F0D3314 3C018009 */ lui $at, %hi(spec_PC) +/* 107E48 7F0D3318 00184A00 */ sll $t1, $t8, 8 +/* 107E4C 7F0D331C 012B6021 */ addu $t4, $t1, $t3 +/* 107E50 7F0D3320 A4CC0000 */ sh $t4, ($a2) +/* 107E54 7F0D3324 904A0019 */ lbu $t2, 0x19($v0) +/* 107E58 7F0D3328 314400FF */ andi $a0, $t2, 0xff +/* 107E5C 7F0D332C 18800003 */ blez $a0, .L7F0D333C +/* 107E60 7F0D3330 A0EA0000 */ sb $t2, ($a3) +/* 107E64 7F0D3334 248D0001 */ addiu $t5, $a0, 1 +/* 107E68 7F0D3338 A0ED0000 */ sb $t5, ($a3) +.L7F0D333C: +/* 107E6C 7F0D333C 94C30000 */ lhu $v1, ($a2) +/* 107E70 7F0D3340 8D020000 */ lw $v0, ($t0) +/* 107E74 7F0D3344 8FBF0014 */ lw $ra, 0x14($sp) +/* 107E78 7F0D3348 246C0002 */ addiu $t4, $v1, 2 +/* 107E7C 7F0D334C 00437021 */ addu $t6, $v0, $v1 +/* 107E80 7F0D3350 91D80001 */ lbu $t8, 1($t6) +/* 107E84 7F0D3354 00627821 */ addu $t7, $v1, $v0 +/* 107E88 7F0D3358 91F90000 */ lbu $t9, ($t7) +/* 107E8C 7F0D335C 00184A00 */ sll $t1, $t8, 8 +/* 107E90 7F0D3360 27BD0018 */ addiu $sp, $sp, 0x18 +/* 107E94 7F0D3364 03295825 */ or $t3, $t9, $t1 +/* 107E98 7F0D3368 A42BE354 */ sh $t3, %lo(spec_PC)($at) +/* 107E9C 7F0D336C 03E00008 */ jr $ra +/* 107EA0 7F0D3370 A4CC0000 */ sh $t4, ($a2) +) +#endif + + + + + +#ifdef NONMATCHING +void run_spectrum_game(void) { + +} +#else +GLOBAL_ASM( +.text +glabel run_spectrum_game +/* 107EA4 7F0D3374 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 107EA8 7F0D3378 AFBF0014 */ sw $ra, 0x14($sp) +/* 107EAC 7F0D337C 0FC34B21 */ jal spectrum_p1controller_to_kempston +/* 107EB0 7F0D3380 00000000 */ nop +/* 107EB4 7F0D3384 0FC34E0B */ jal spectrum_hw_emulation +/* 107EB8 7F0D3388 00000000 */ nop +/* 107EBC 7F0D338C 3C048009 */ lui $a0, %hi(ptr_spectrum_roms) +/* 107EC0 7F0D3390 8C84E328 */ lw $a0, %lo(ptr_spectrum_roms)($a0) +/* 107EC4 7F0D3394 3C058009 */ lui $a1, %hi(ptr_6000alloc) +/* 107EC8 7F0D3398 8CA5E330 */ lw $a1, %lo(ptr_6000alloc)($a1) +/* 107ECC 7F0D339C 0FC34AA1 */ jal sub_GAME_7F0D2A84 +/* 107ED0 7F0D33A0 24844000 */ addiu $a0, $a0, 0x4000 +/* 107ED4 7F0D33A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 107ED8 7F0D33A8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 107EDC 7F0D33AC 03E00008 */ jr $ra +/* 107EE0 7F0D33B0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void spectrum_draw_screen(void) { + +} +#else +GLOBAL_ASM( +.text +glabel spectrum_draw_screen +/* 107EE4 7F0D33B4 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 107EE8 7F0D33B8 00801025 */ move $v0, $a0 +/* 107EEC 7F0D33BC AFBF002C */ sw $ra, 0x2c($sp) +/* 107EF0 7F0D33C0 AFBE0028 */ sw $fp, 0x28($sp) +/* 107EF4 7F0D33C4 AFB70024 */ sw $s7, 0x24($sp) +/* 107EF8 7F0D33C8 AFB60020 */ sw $s6, 0x20($sp) +/* 107EFC 7F0D33CC AFB5001C */ sw $s5, 0x1c($sp) +/* 107F00 7F0D33D0 AFB40018 */ sw $s4, 0x18($sp) +/* 107F04 7F0D33D4 AFB30014 */ sw $s3, 0x14($sp) +/* 107F08 7F0D33D8 AFB20010 */ sw $s2, 0x10($sp) +/* 107F0C 7F0D33DC AFB1000C */ sw $s1, 0xc($sp) +/* 107F10 7F0D33E0 AFB00008 */ sw $s0, 8($sp) +/* 107F14 7F0D33E4 3C0BE700 */ lui $t3, 0xe700 +/* 107F18 7F0D33E8 24840008 */ addiu $a0, $a0, 8 +/* 107F1C 7F0D33EC AC4B0000 */ sw $t3, ($v0) +/* 107F20 7F0D33F0 AC400004 */ sw $zero, 4($v0) +/* 107F24 7F0D33F4 00801825 */ move $v1, $a0 +/* 107F28 7F0D33F8 3C0E8005 */ lui $t6, %hi(D_8004ED0C) +/* 107F2C 7F0D33FC 25CEED0C */ addiu $t6, %lo(D_8004ED0C) # addiu $t6, $t6, -0x12f4 +/* 107F30 7F0D3400 24840008 */ addiu $a0, $a0, 8 +/* 107F34 7F0D3404 3C10FD10 */ lui $s0, 0xfd10 +/* 107F38 7F0D3408 AC6E0004 */ sw $t6, 4($v1) +/* 107F3C 7F0D340C 00802825 */ move $a1, $a0 +/* 107F40 7F0D3410 3C0FF500 */ lui $t7, (0xF5000300 >> 16) # lui $t7, 0xf500 +/* 107F44 7F0D3414 AC700000 */ sw $s0, ($v1) +/* 107F48 7F0D3418 35EF0300 */ ori $t7, (0xF5000300 & 0xFFFF) # ori $t7, $t7, 0x300 +/* 107F4C 7F0D341C 24840008 */ addiu $a0, $a0, 8 +/* 107F50 7F0D3420 3C110700 */ lui $s1, 0x700 +/* 107F54 7F0D3424 ACAF0000 */ sw $t7, ($a1) +/* 107F58 7F0D3428 00803025 */ move $a2, $a0 +/* 107F5C 7F0D342C ACB10004 */ sw $s1, 4($a1) +/* 107F60 7F0D3430 24840008 */ addiu $a0, $a0, 8 +/* 107F64 7F0D3434 3C12E600 */ lui $s2, 0xe600 +/* 107F68 7F0D3438 00803825 */ move $a3, $a0 +/* 107F6C 7F0D343C ACD20000 */ sw $s2, ($a2) +/* 107F70 7F0D3440 ACC00004 */ sw $zero, 4($a2) +/* 107F74 7F0D3444 3C190703 */ lui $t9, (0x0703C000 >> 16) # lui $t9, 0x703 +/* 107F78 7F0D3448 3739C000 */ ori $t9, (0x0703C000 & 0xFFFF) # ori $t9, $t9, 0xc000 +/* 107F7C 7F0D344C 24840008 */ addiu $a0, $a0, 8 +/* 107F80 7F0D3450 3C18F000 */ lui $t8, 0xf000 +/* 107F84 7F0D3454 ACF80000 */ sw $t8, ($a3) +/* 107F88 7F0D3458 ACF90004 */ sw $t9, 4($a3) +/* 107F8C 7F0D345C 00801025 */ move $v0, $a0 +/* 107F90 7F0D3460 3C0EBA00 */ lui $t6, (0xBA001301 >> 16) # lui $t6, 0xba00 +/* 107F94 7F0D3464 35CE1301 */ ori $t6, (0xBA001301 & 0xFFFF) # ori $t6, $t6, 0x1301 +/* 107F98 7F0D3468 24840008 */ addiu $a0, $a0, 8 +/* 107F9C 7F0D346C AC4E0000 */ sw $t6, ($v0) +/* 107FA0 7F0D3470 00801825 */ move $v1, $a0 +/* 107FA4 7F0D3474 AC400004 */ sw $zero, 4($v0) +/* 107FA8 7F0D3478 3C180F0A */ lui $t8, (0x0F0A4000 >> 16) # lui $t8, 0xf0a +/* 107FAC 7F0D347C 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 107FB0 7F0D3480 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 107FB4 7F0D3484 37184000 */ ori $t8, (0x0F0A4000 & 0xFFFF) # ori $t8, $t8, 0x4000 +/* 107FB8 7F0D3488 24840008 */ addiu $a0, $a0, 8 +/* 107FBC 7F0D348C AC780004 */ sw $t8, 4($v1) +/* 107FC0 7F0D3490 AC6F0000 */ sw $t7, ($v1) +/* 107FC4 7F0D3494 00802825 */ move $a1, $a0 +/* 107FC8 7F0D3498 3C19FCFF */ lui $t9, (0xFCFFFFFF >> 16) # lui $t9, 0xfcff +/* 107FCC 7F0D349C 3739FFFF */ ori $t9, (0xFCFFFFFF & 0xFFFF) # ori $t9, $t9, 0xffff +/* 107FD0 7F0D34A0 24840008 */ addiu $a0, $a0, 8 +/* 107FD4 7F0D34A4 3C0EFFFC */ lui $t6, (0xFFFCF87C >> 16) # lui $t6, 0xfffc +/* 107FD8 7F0D34A8 35CEF87C */ ori $t6, (0xFFFCF87C & 0xFFFF) # ori $t6, $t6, 0xf87c +/* 107FDC 7F0D34AC ACB90000 */ sw $t9, ($a1) +/* 107FE0 7F0D34B0 00803025 */ move $a2, $a0 +/* 107FE4 7F0D34B4 ACAE0004 */ sw $t6, 4($a1) +/* 107FE8 7F0D34B8 3C0FBA00 */ lui $t7, (0xBA000C02 >> 16) # lui $t7, 0xba00 +/* 107FEC 7F0D34BC 35EF0C02 */ ori $t7, (0xBA000C02 & 0xFFFF) # ori $t7, $t7, 0xc02 +/* 107FF0 7F0D34C0 24840008 */ addiu $a0, $a0, 8 +/* 107FF4 7F0D34C4 ACCF0000 */ sw $t7, ($a2) +/* 107FF8 7F0D34C8 ACC00004 */ sw $zero, 4($a2) +/* 107FFC 7F0D34CC 00803825 */ move $a3, $a0 +/* 108000 7F0D34D0 3C18BB00 */ lui $t8, (0xBB000001 >> 16) # lui $t8, 0xbb00 +/* 108004 7F0D34D4 37180001 */ ori $t8, (0xBB000001 & 0xFFFF) # ori $t8, $t8, 1 +/* 108008 7F0D34D8 2419FFFF */ li $t9, -1 +/* 10800C 7F0D34DC ACF90004 */ sw $t9, 4($a3) +/* 108010 7F0D34E0 ACF80000 */ sw $t8, ($a3) +/* 108014 7F0D34E4 3C138009 */ lui $s3, %hi(ptr_6000alloc) +/* 108018 7F0D34E8 3C16073F */ lui $s6, (0x073FF200 >> 16) # lui $s6, 0x73f +/* 10801C 7F0D34EC 3C17BA00 */ lui $s7, (0xBA000E02 >> 16) # lui $s7, 0xba00 +/* 108020 7F0D34F0 3C1FF540 */ lui $ra, (0xF5400800 >> 16) # lui $ra, 0xf540 +/* 108024 7F0D34F4 24840008 */ addiu $a0, $a0, 8 +/* 108028 7F0D34F8 37FF0800 */ ori $ra, (0xF5400800 & 0xFFFF) # ori $ra, $ra, 0x800 +/* 10802C 7F0D34FC 36F70E02 */ ori $s7, (0xBA000E02 & 0xFFFF) # ori $s7, $s7, 0xe02 +/* 108030 7F0D3500 36D6F200 */ ori $s6, (0x073FF200 & 0xFFFF) # ori $s6, $s6, 0xf200 +/* 108034 7F0D3504 2673E330 */ addiu $s3, %lo(ptr_6000alloc) # addiu $s3, $s3, -0x1cd0 +/* 108038 7F0D3508 AFA0003C */ sw $zero, 0x3c($sp) +/* 10803C 7F0D350C 00001025 */ move $v0, $zero +/* 108040 7F0D3510 3C14F510 */ lui $s4, 0xf510 +/* 108044 7F0D3514 3C15F300 */ lui $s5, 0xf300 +/* 108048 7F0D3518 341E8000 */ li $fp, 32768 +.L7F0D351C: +/* 10804C 7F0D351C 8FA8003C */ lw $t0, 0x3c($sp) +/* 108050 7F0D3520 24430001 */ addiu $v1, $v0, 1 +/* 108054 7F0D3524 00036180 */ sll $t4, $v1, 6 +/* 108058 7F0D3528 00026980 */ sll $t5, $v0, 6 +/* 10805C 7F0D352C 25AD0018 */ addiu $t5, $t5, 0x18 +/* 108060 7F0D3530 258C0018 */ addiu $t4, $t4, 0x18 +/* 108064 7F0D3534 000C7880 */ sll $t7, $t4, 2 +/* 108068 7F0D3538 000DC880 */ sll $t9, $t5, 2 +/* 10806C 7F0D353C 000872C0 */ sll $t6, $t0, 0xb +/* 108070 7F0D3540 01C04025 */ move $t0, $t6 +/* 108074 7F0D3544 332D0FFF */ andi $t5, $t9, 0xfff +/* 108078 7F0D3548 31EC0FFF */ andi $t4, $t7, 0xfff +/* 10807C 7F0D354C AFA30034 */ sw $v1, 0x34($sp) +/* 108080 7F0D3550 00003825 */ move $a3, $zero +.L7F0D3554: +/* 108084 7F0D3554 00801025 */ move $v0, $a0 +/* 108088 7F0D3558 24840008 */ addiu $a0, $a0, 8 +/* 10808C 7F0D355C AC4B0000 */ sw $t3, ($v0) +/* 108090 7F0D3560 AC400004 */ sw $zero, 4($v0) +/* 108094 7F0D3564 00801825 */ move $v1, $a0 +/* 108098 7F0D3568 AC700000 */ sw $s0, ($v1) +/* 10809C 7F0D356C 8E6F0000 */ lw $t7, ($s3) +/* 1080A0 7F0D3570 24840008 */ addiu $a0, $a0, 8 +/* 1080A4 7F0D3574 00802825 */ move $a1, $a0 +/* 1080A8 7F0D3578 010FC021 */ addu $t8, $t0, $t7 +/* 1080AC 7F0D357C AC780004 */ sw $t8, 4($v1) +/* 1080B0 7F0D3580 24840008 */ addiu $a0, $a0, 8 +/* 1080B4 7F0D3584 00803025 */ move $a2, $a0 +/* 1080B8 7F0D3588 ACB10004 */ sw $s1, 4($a1) +/* 1080BC 7F0D358C ACB40000 */ sw $s4, ($a1) +/* 1080C0 7F0D3590 24840008 */ addiu $a0, $a0, 8 +/* 1080C4 7F0D3594 00804825 */ move $t1, $a0 +/* 1080C8 7F0D3598 ACC00004 */ sw $zero, 4($a2) +/* 1080CC 7F0D359C ACD20000 */ sw $s2, ($a2) +/* 1080D0 7F0D35A0 24840008 */ addiu $a0, $a0, 8 +/* 1080D4 7F0D35A4 00801025 */ move $v0, $a0 +/* 1080D8 7F0D35A8 AD360004 */ sw $s6, 4($t1) +/* 1080DC 7F0D35AC AD350000 */ sw $s5, ($t1) +/* 1080E0 7F0D35B0 24840008 */ addiu $a0, $a0, 8 +/* 1080E4 7F0D35B4 AC400004 */ sw $zero, 4($v0) +/* 1080E8 7F0D35B8 AC4B0000 */ sw $t3, ($v0) +/* 1080EC 7F0D35BC 00801825 */ move $v1, $a0 +/* 1080F0 7F0D35C0 24840008 */ addiu $a0, $a0, 8 +/* 1080F4 7F0D35C4 00802825 */ move $a1, $a0 +/* 1080F8 7F0D35C8 3C190001 */ lui $t9, (0x00018060 >> 16) # lui $t9, 1 +/* 1080FC 7F0D35CC AC770000 */ sw $s7, ($v1) +/* 108100 7F0D35D0 AC7E0004 */ sw $fp, 4($v1) +/* 108104 7F0D35D4 37398060 */ ori $t9, (0x00018060 & 0xFFFF) # ori $t9, $t9, 0x8060 +/* 108108 7F0D35D8 ACB90004 */ sw $t9, 4($a1) +/* 10810C 7F0D35DC 24840008 */ addiu $a0, $a0, 8 +/* 108110 7F0D35E0 24E20001 */ addiu $v0, $a3, 1 +/* 108114 7F0D35E4 ACBF0000 */ sw $ra, ($a1) +/* 108118 7F0D35E8 00803025 */ move $a2, $a0 +/* 10811C 7F0D35EC 3C0F007E */ lui $t7, (0x007E07E0 >> 16) # lui $t7, 0x7e +/* 108120 7F0D35F0 3C0EF200 */ lui $t6, 0xf200 +/* 108124 7F0D35F4 0002C180 */ sll $t8, $v0, 6 +/* 108128 7F0D35F8 ACCE0000 */ sw $t6, ($a2) +/* 10812C 7F0D35FC 35EF07E0 */ ori $t7, (0x007E07E0 & 0xFFFF) # ori $t7, $t7, 0x7e0 +/* 108130 7F0D3600 27190020 */ addiu $t9, $t8, 0x20 +/* 108134 7F0D3604 ACCF0004 */ sw $t7, 4($a2) +/* 108138 7F0D3608 00197080 */ sll $t6, $t9, 2 +/* 10813C 7F0D360C 31CF0FFF */ andi $t7, $t6, 0xfff +/* 108140 7F0D3610 000FC300 */ sll $t8, $t7, 0xc +/* 108144 7F0D3614 3C01E400 */ lui $at, 0xe400 +/* 108148 7F0D3618 0301C825 */ or $t9, $t8, $at +/* 10814C 7F0D361C 24840008 */ addiu $a0, $a0, 8 +/* 108150 7F0D3620 032C7025 */ or $t6, $t9, $t4 +/* 108154 7F0D3624 00077980 */ sll $t7, $a3, 6 +/* 108158 7F0D3628 25F80020 */ addiu $t8, $t7, 0x20 +/* 10815C 7F0D362C 00805025 */ move $t2, $a0 +/* 108160 7F0D3630 AD4E0000 */ sw $t6, ($t2) +/* 108164 7F0D3634 0018C880 */ sll $t9, $t8, 2 +/* 108168 7F0D3638 332E0FFF */ andi $t6, $t9, 0xfff +/* 10816C 7F0D363C 000E7B00 */ sll $t7, $t6, 0xc +/* 108170 7F0D3640 24840008 */ addiu $a0, $a0, 8 +/* 108174 7F0D3644 00801825 */ move $v1, $a0 +/* 108178 7F0D3648 01EDC025 */ or $t8, $t7, $t5 +/* 10817C 7F0D364C AD580004 */ sw $t8, 4($t2) +/* 108180 7F0D3650 24840008 */ addiu $a0, $a0, 8 +/* 108184 7F0D3654 00802825 */ move $a1, $a0 +/* 108188 7F0D3658 3C0F0400 */ lui $t7, (0x04000400 >> 16) # lui $t7, 0x400 +/* 10818C 7F0D365C 3C19B400 */ lui $t9, 0xb400 +/* 108190 7F0D3660 24010004 */ li $at, 4 +/* 108194 7F0D3664 AC790000 */ sw $t9, ($v1) +/* 108198 7F0D3668 35EF0400 */ ori $t7, (0x04000400 & 0xFFFF) # ori $t7, $t7, 0x400 +/* 10819C 7F0D366C AC600004 */ sw $zero, 4($v1) +/* 1081A0 7F0D3670 3C0EB300 */ lui $t6, 0xb300 +/* 1081A4 7F0D3674 00403825 */ move $a3, $v0 +/* 1081A8 7F0D3678 25080800 */ addiu $t0, $t0, 0x800 +/* 1081AC 7F0D367C ACAE0000 */ sw $t6, ($a1) +/* 1081B0 7F0D3680 ACAF0004 */ sw $t7, 4($a1) +/* 1081B4 7F0D3684 1441FFB3 */ bne $v0, $at, .L7F0D3554 +/* 1081B8 7F0D3688 24840008 */ addiu $a0, $a0, 8 +/* 1081BC 7F0D368C 8FB8003C */ lw $t8, 0x3c($sp) +/* 1081C0 7F0D3690 8FA20034 */ lw $v0, 0x34($sp) +/* 1081C4 7F0D3694 24010003 */ li $at, 3 +/* 1081C8 7F0D3698 27190004 */ addiu $t9, $t8, 4 +/* 1081CC 7F0D369C 1441FF9F */ bne $v0, $at, .L7F0D351C +/* 1081D0 7F0D36A0 AFB9003C */ sw $t9, 0x3c($sp) +/* 1081D4 7F0D36A4 8FBF002C */ lw $ra, 0x2c($sp) +/* 1081D8 7F0D36A8 8FB00008 */ lw $s0, 8($sp) +/* 1081DC 7F0D36AC 8FB1000C */ lw $s1, 0xc($sp) +/* 1081E0 7F0D36B0 8FB20010 */ lw $s2, 0x10($sp) +/* 1081E4 7F0D36B4 8FB30014 */ lw $s3, 0x14($sp) +/* 1081E8 7F0D36B8 8FB40018 */ lw $s4, 0x18($sp) +/* 1081EC 7F0D36BC 8FB5001C */ lw $s5, 0x1c($sp) +/* 1081F0 7F0D36C0 8FB60020 */ lw $s6, 0x20($sp) +/* 1081F4 7F0D36C4 8FB70024 */ lw $s7, 0x24($sp) +/* 1081F8 7F0D36C8 8FBE0028 */ lw $fp, 0x28($sp) +/* 1081FC 7F0D36CC 27BD00A0 */ addiu $sp, $sp, 0xa0 +/* 108200 7F0D36D0 03E00008 */ jr $ra +/* 108204 7F0D36D4 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +void spectrum_input_handling(void) { + +} +#else +GLOBAL_ASM( +.text +glabel spectrum_input_handling +/* 108208 7F0D36D8 AFA50004 */ sw $a1, 4($sp) +/* 10820C 7F0D36DC 30AE00FF */ andi $t6, $a1, 0xff +/* 108210 7F0D36E0 30C200FF */ andi $v0, $a2, 0xff +/* 108214 7F0D36E4 240100FE */ li $at, 254 +/* 108218 7F0D36E8 01C02825 */ move $a1, $t6 +/* 10821C 7F0D36EC AFA40000 */ sw $a0, ($sp) +/* 108220 7F0D36F0 14410030 */ bne $v0, $at, .L7F0D37B4 +/* 108224 7F0D36F4 AFA60008 */ sw $a2, 8($sp) +/* 108228 7F0D36F8 3C068005 */ lui $a2, %hi(D_8004EC34) +/* 10822C 7F0D36FC 240300FF */ li $v1, 255 +/* 108230 7F0D3700 24C6EC34 */ addiu $a2, %lo(D_8004EC34) # addiu $a2, $a2, -0x13cc +/* 108234 7F0D3704 00001025 */ move $v0, $zero +/* 108238 7F0D3708 24070008 */ li $a3, 8 +.L7F0D370C: +/* 10823C 7F0D370C 30B80001 */ andi $t8, $a1, 1 +/* 108240 7F0D3710 17000006 */ bnez $t8, .L7F0D372C +/* 108244 7F0D3714 00A02025 */ move $a0, $a1 +/* 108248 7F0D3718 00C2C821 */ addu $t9, $a2, $v0 +/* 10824C 7F0D371C 93280000 */ lbu $t0, ($t9) +/* 108250 7F0D3720 00681824 */ and $v1, $v1, $t0 +/* 108254 7F0D3724 306900FF */ andi $t1, $v1, 0xff +/* 108258 7F0D3728 01201825 */ move $v1, $t1 +.L7F0D372C: +/* 10825C 7F0D372C 00042842 */ srl $a1, $a0, 1 +/* 108260 7F0D3730 30A400FF */ andi $a0, $a1, 0xff +/* 108264 7F0D3734 308B0001 */ andi $t3, $a0, 1 +/* 108268 7F0D3738 15600006 */ bnez $t3, .L7F0D3754 +/* 10826C 7F0D373C 00042842 */ srl $a1, $a0, 1 +/* 108270 7F0D3740 00C26021 */ addu $t4, $a2, $v0 +/* 108274 7F0D3744 918D0001 */ lbu $t5, 1($t4) +/* 108278 7F0D3748 006D1824 */ and $v1, $v1, $t5 +/* 10827C 7F0D374C 306E00FF */ andi $t6, $v1, 0xff +/* 108280 7F0D3750 01C01825 */ move $v1, $t6 +.L7F0D3754: +/* 108284 7F0D3754 30A400FF */ andi $a0, $a1, 0xff +/* 108288 7F0D3758 30980001 */ andi $t8, $a0, 1 +/* 10828C 7F0D375C 17000006 */ bnez $t8, .L7F0D3778 +/* 108290 7F0D3760 00042842 */ srl $a1, $a0, 1 +/* 108294 7F0D3764 00C2C821 */ addu $t9, $a2, $v0 +/* 108298 7F0D3768 93280002 */ lbu $t0, 2($t9) +/* 10829C 7F0D376C 00681824 */ and $v1, $v1, $t0 +/* 1082A0 7F0D3770 306900FF */ andi $t1, $v1, 0xff +/* 1082A4 7F0D3774 01201825 */ move $v1, $t1 +.L7F0D3778: +/* 1082A8 7F0D3778 30A400FF */ andi $a0, $a1, 0xff +/* 1082AC 7F0D377C 308B0001 */ andi $t3, $a0, 1 +/* 1082B0 7F0D3780 15600006 */ bnez $t3, .L7F0D379C +/* 1082B4 7F0D3784 00042842 */ srl $a1, $a0, 1 +/* 1082B8 7F0D3788 00C26021 */ addu $t4, $a2, $v0 +/* 1082BC 7F0D378C 918D0003 */ lbu $t5, 3($t4) +/* 1082C0 7F0D3790 006D1824 */ and $v1, $v1, $t5 +/* 1082C4 7F0D3794 306E00FF */ andi $t6, $v1, 0xff +/* 1082C8 7F0D3798 01C01825 */ move $v1, $t6 +.L7F0D379C: +/* 1082CC 7F0D379C 30AF00FF */ andi $t7, $a1, 0xff +/* 1082D0 7F0D37A0 24420004 */ addiu $v0, $v0, 4 +/* 1082D4 7F0D37A4 1447FFD9 */ bne $v0, $a3, .L7F0D370C +/* 1082D8 7F0D37A8 01E02825 */ move $a1, $t7 +/* 1082DC 7F0D37AC 03E00008 */ jr $ra +/* 1082E0 7F0D37B0 00601025 */ move $v0, $v1 + +.L7F0D37B4: +/* 1082E4 7F0D37B4 2401001F */ li $at, 31 +/* 1082E8 7F0D37B8 14410003 */ bne $v0, $at, .L7F0D37C8 +/* 1082EC 7F0D37BC 3C028005 */ lui $v0, %hi(D_8004EC40) +/* 1082F0 7F0D37C0 03E00008 */ jr $ra +/* 1082F4 7F0D37C4 9042EC40 */ lbu $v0, %lo(D_8004EC40)($v0) + +.L7F0D37C8: +/* 1082F8 7F0D37C8 240200FF */ li $v0, 255 +/* 1082FC 7F0D37CC 03E00008 */ jr $ra +/* 108300 7F0D37D0 00000000 */ nop +) +#endif + + + + +void nullsub_50(void) { + return; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D37DC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D37DC +/* 10830C 7F0D37DC 30CE00FF */ andi $t6, $a2, 0xff +/* 108310 7F0D37E0 240100FE */ li $at, 254 +/* 108314 7F0D37E4 AFA40000 */ sw $a0, ($sp) +/* 108318 7F0D37E8 AFA50004 */ sw $a1, 4($sp) +/* 10831C 7F0D37EC AFA60008 */ sw $a2, 8($sp) +/* 108320 7F0D37F0 AFA7000C */ sw $a3, 0xc($sp) +/* 108324 7F0D37F4 15C1000A */ bne $t6, $at, .L7F0D3820 +/* 108328 7F0D37F8 30EF00FF */ andi $t7, $a3, 0xff +/* 10832C 7F0D37FC 3C188005 */ lui $t8, %hi(D_8004ED54) +/* 108330 7F0D3800 9318ED54 */ lbu $t8, %lo(D_8004ED54)($t8) +/* 108334 7F0D3804 31E20007 */ andi $v0, $t7, 7 +/* 108338 7F0D3808 3C018005 */ lui $at, %hi(D_8004ED54) +/* 10833C 7F0D380C 10580002 */ beq $v0, $t8, .L7F0D3818 +/* 108340 7F0D3810 00000000 */ nop +/* 108344 7F0D3814 A022ED54 */ sb $v0, %lo(D_8004ED54)($at) +.L7F0D3818: +/* 108348 7F0D3818 03E00008 */ jr $ra +/* 10834C 7F0D381C 00001025 */ move $v0, $zero + +.L7F0D3820: +/* 108350 7F0D3820 00001025 */ move $v0, $zero +/* 108354 7F0D3824 03E00008 */ jr $ra +/* 108358 7F0D3828 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void spectrum_hw_emulation(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005C12C*/ +glabel spectrum_op_table +.word spectrum_op_00 +.word spectrum_op_01 +.word spectrum_op_02 +.word spectrum_op_03 +.word spectrum_op_04 +.word spectrum_op_05 +.word spectrum_op_06 +.word spectrum_op_07 +.word spectrum_op_08 +.word spectrum_op_09 +.word spectrum_op_0A +.word spectrum_op_0B +.word spectrum_op_0C +.word spectrum_op_0D +.word spectrum_op_0E +.word spectrum_op_0F +.word spectrum_op_10 +.word spectrum_op_11 +.word spectrum_op_12 +.word spectrum_op_13 +.word spectrum_op_14 +.word spectrum_op_15 +.word spectrum_op_16 +.word spectrum_op_17 +.word spectrum_op_18 +.word spectrum_op_19 +.word spectrum_op_1A +.word spectrum_op_1B +.word spectrum_op_1C +.word spectrum_op_1D +.word spectrum_op_1E +.word spectrum_op_1F +.word spectrum_op_20 +.word spectrum_op_21 +.word spectrum_op_22 +.word spectrum_op_23 +.word spectrum_op_24 +.word spectrum_op_25 +.word spectrum_op_26 +.word spectrum_op_27 +.word spectrum_op_28 +.word spectrum_op_29 +.word spectrum_op_2A +.word spectrum_op_2B +.word spectrum_op_2C +.word spectrum_op_2D +.word spectrum_op_2E +.word spectrum_op_2F +.word spectrum_op_30 +.word spectrum_op_31 +.word spectrum_op_32 +.word spectrum_op_33 +.word spectrum_op_34 +.word spectrum_op_35 +.word spectrum_op_36 +.word spectrum_op_37 +.word spectrum_op_38 +.word spectrum_op_39 +.word spectrum_op_3A +.word spectrum_op_3B +.word spectrum_op_3C +.word spectrum_op_3D +.word spectrum_op_3E +.word spectrum_op_3F +.word spectrum_op_40 +.word spectrum_op_41 +.word spectrum_op_42 +.word spectrum_op_43 +.word spectrum_op_44 +.word spectrum_op_45 +.word spectrum_op_46 +.word spectrum_op_47 +.word spectrum_op_48 +.word spectrum_op_49 +.word spectrum_op_4A +.word spectrum_op_4B +.word spectrum_op_4C +.word spectrum_op_4D +.word spectrum_op_4E +.word spectrum_op_4F +.word spectrum_op_50 +.word spectrum_op_51 +.word spectrum_op_52 +.word spectrum_op_53 +.word spectrum_op_54 +.word spectrum_op_55 +.word spectrum_op_56 +.word spectrum_op_57 +.word spectrum_op_58 +.word spectrum_op_59 +.word spectrum_op_5A +.word spectrum_op_5B +.word spectrum_op_5C +.word spectrum_op_5D +.word spectrum_op_5E +.word spectrum_op_5F +.word spectrum_op_60 +.word spectrum_op_61 +.word spectrum_op_62 +.word spectrum_op_63 +.word spectrum_op_64 +.word spectrum_op_65 +.word spectrum_op_66 +.word spectrum_op_67 +.word spectrum_op_68 +.word spectrum_op_69 +.word spectrum_op_6A +.word spectrum_op_6B +.word spectrum_op_6C +.word spectrum_op_6D +.word spectrum_op_6E +.word spectrum_op_6F +.word spectrum_op_70 +.word spectrum_op_71 +.word spectrum_op_72 +.word spectrum_op_73 +.word spectrum_op_74 +.word spectrum_op_75 +.word spectrum_op_76 +.word spectrum_op_77 +.word spectrum_op_78 +.word spectrum_op_79 +.word spectrum_op_7A +.word spectrum_op_7B +.word spectrum_op_7C +.word spectrum_op_7D +.word spectrum_op_7E +.word spectrum_op_7F +.word spectrum_op_80 +.word spectrum_op_81 +.word spectrum_op_82 +.word spectrum_op_83 +.word spectrum_op_84 +.word spectrum_op_85 +.word spectrum_op_86 +.word spectrum_op_87 +.word spectrum_op_88 +.word spectrum_op_89 +.word spectrum_op_8A +.word spectrum_op_8B +.word spectrum_op_8C +.word spectrum_op_8D +.word spectrum_op_8E +.word spectrum_op_8F +.word spectrum_op_90 +.word spectrum_op_91 +.word spectrum_op_92 +.word spectrum_op_93 +.word spectrum_op_94 +.word spectrum_op_95 +.word spectrum_op_96 +.word spectrum_op_97 +.word spectrum_op_98 +.word spectrum_op_99 +.word spectrum_op_9A +.word spectrum_op_9B +.word spectrum_op_9C +.word spectrum_op_9D +.word spectrum_op_9E +.word spectrum_op_9F +.word spectrum_op_A0 +.word spectrum_op_A1 +.word spectrum_op_A2 +.word spectrum_op_A3 +.word spectrum_op_A4 +.word spectrum_op_A5 +.word spectrum_op_A6 +.word spectrum_op_A7 +.word spectrum_op_A8 +.word spectrum_op_A9 +.word spectrum_op_AA +.word spectrum_op_AB +.word spectrum_op_AC +.word spectrum_op_AD +.word spectrum_op_AE +.word spectrum_op_AF +.word spectrum_op_B0 +.word spectrum_op_B1 +.word spectrum_op_B2 +.word spectrum_op_B3 +.word spectrum_op_B4 +.word spectrum_op_B5 +.word spectrum_op_B6 +.word spectrum_op_B7 +.word spectrum_op_B8 +.word spectrum_op_B9 +.word spectrum_op_BA +.word spectrum_op_BB +.word spectrum_op_BC +.word spectrum_op_BD +.word spectrum_op_BE +.word spectrum_op_BF +.word spectrum_op_C0 +.word spectrum_op_C1 +.word spectrum_op_C2 +.word spectrum_op_C3 +.word spectrum_op_C4 +.word spectrum_op_C5 +.word spectrum_op_C6 +.word spectrum_op_C7 +.word spectrum_op_C8 +.word spectrum_op_C9 +.word spectrum_op_CA +.word spectrum_op_CB +.word spectrum_op_CC +.word spectrum_op_CD +.word spectrum_op_CE +.word spectrum_op_CF +.word spectrum_op_D0 +.word spectrum_op_D1 +.word spectrum_op_D2 +.word spectrum_op_D3 +.word spectrum_op_D4 +.word spectrum_op_D5 +.word spectrum_op_D6 +.word spectrum_op_D7 +.word spectrum_op_D8 +.word spectrum_op_D9 +.word spectrum_op_DA +.word spectrum_op_DB +.word spectrum_op_DC +.word spectrum_op_DD +.word spectrum_op_DE +.word spectrum_op_DF +.word spectrum_op_E0 +.word spectrum_op_E1 +.word spectrum_op_E2 +.word spectrum_op_E3 +.word spectrum_op_E4 +.word spectrum_op_E5 +.word spectrum_op_E6 +.word spectrum_op_E7 +.word spectrum_op_E8 +.word spectrum_op_E9 +.word spectrum_op_EA +.word spectrum_op_EB +.word spectrum_op_EC +.word spectrum_op_ED +.word spectrum_op_EE +.word spectrum_op_EF +.word spectrum_op_F0 +.word spectrum_op_F1 +.word spectrum_op_F2 +.word spectrum_op_F3 +.word spectrum_op_F4 +.word spectrum_op_F5 +.word spectrum_op_F6 +.word spectrum_op_F7 +.word spectrum_op_F8 +.word spectrum_op_F9 +.word spectrum_op_FA +.word spectrum_op_FB +.word spectrum_op_FC +.word spectrum_op_FD +.word spectrum_op_FE +.word spectrum_op_FF + +/*D:8005C52C*/ +glabel jpt_8005C52C +.word spectrum_op_CB_00 +.word spectrum_op_CB_01 +.word spectrum_op_CB_02 +.word spectrum_op_CB_03 +.word spectrum_op_CB_04 +.word spectrum_op_CB_05 +.word spectrum_op_CB_06 +.word spectrum_op_CB_07 +.word spectrum_op_CB_08 +.word spectrum_op_CB_09 +.word spectrum_op_CB_0A +.word spectrum_op_CB_0B +.word spectrum_op_CB_0C +.word spectrum_op_CB_0D +.word spectrum_op_CB_0E +.word spectrum_op_CB_0F +.word spectrum_op_CB_10 +.word spectrum_op_CB_11 +.word spectrum_op_CB_12 +.word spectrum_op_CB_13 +.word spectrum_op_CB_14 +.word spectrum_op_CB_15 +.word spectrum_op_CB_16 +.word spectrum_op_CB_17 +.word spectrum_op_CB_18 +.word spectrum_op_CB_19 +.word spectrum_op_CB_1A +.word spectrum_op_CB_1B +.word spectrum_op_CB_1C +.word spectrum_op_CB_1D +.word spectrum_op_CB_1E +.word spectrum_op_CB_1F +.word spectrum_op_CB_20 +.word spectrum_op_CB_21 +.word spectrum_op_CB_22 +.word spectrum_op_CB_23 +.word spectrum_op_CB_24 +.word spectrum_op_CB_25 +.word spectrum_op_CB_26 +.word spectrum_op_CB_27 +.word spectrum_op_CB_28 +.word spectrum_op_CB_29 +.word spectrum_op_CB_2A +.word spectrum_op_CB_2B +.word spectrum_op_CB_2C +.word spectrum_op_CB_2D +.word spectrum_op_CB_2E +.word spectrum_op_CB_2F +.word spectrum_op_CB_30 +.word spectrum_op_CB_31 +.word spectrum_op_CB_32 +.word spectrum_op_CB_33 +.word spectrum_op_CB_34 +.word spectrum_op_CB_35 +.word spectrum_op_CB_36 +.word spectrum_op_CB_37 +.word spectrum_op_CB_38 +.word spectrum_op_CB_39 +.word spectrum_op_CB_3A +.word spectrum_op_CB_3B +.word spectrum_op_CB_3C +.word spectrum_op_CB_3D +.word spectrum_op_CB_3E +.word spectrum_op_CB_3F + +/*D:8005C62C*/ +glabel jpt_8005C62C +.word spectrum_op_SET_x_B +.word spectrum_op_SET_x_C +.word spectrum_op_SET_x_D +.word spectrum_op_SET_x_E +.word spectrum_op_SET_x_H +.word spectrum_op_SET_x_L +.word spectrum_op_SET_x_HL +.word spectrum_op_SET_x_A + +/*D:8005C64C*/ +glabel jpt_8005C64C +.word spectrum_op_RES_x_B +.word spectrum_op_RES_x_C +.word spectrum_op_RES_x_D +.word spectrum_op_RES_x_E +.word spectrum_op_RES_x_H +.word spectrum_op_RES_x_L +.word spectrum_op_RES_x_HL +.word spectrum_op_RES_x_A + +/*D:8005C66C*/ +glabel jpt_8005C66C +.word spectrum_op_BIT_x_B +.word spectrum_op_BIT_x_C +.word spectrum_op_BIT_x_D +.word spectrum_op_BIT_x_E +.word spectrum_op_BIT_x_H +.word spectrum_op_BIT_x_L +.word spectrum_op_BIT_x_HL +.word spectrum_op_BIT_x_A + +/*D:8005C68C*/ +glabel jpt_8005C68C +.word .L7F0DC5C4 +.word .L7F0DC5CC +.word .L7F0DC5D4 +.word .L7F0DC5DC +.word .L7F0DC5E4 +.word .L7F0DC5EC +.word .L7F0E27FC +.word .L7F0DC5F4 + +/*D:8005C6AC*/ +glabel jpt_8005C6AC +.word spectrum_op_ED_A0 +.word spectrum_op_ED_A1 +.word spectrum_op_ED_A2 +.word spectrum_op_ED_A3 +.word .L7F0E1A6C +.word .L7F0E1A6C +.word .L7F0E1A6C +.word .L7F0E1A6C +.word spectrum_op_ED_A8 +.word spectrum_op_ED_A9 +.word spectrum_op_ED_AA +.word spectrum_op_ED_AB +.word .L7F0E1A6C +.word .L7F0E1A6C +.word .L7F0E1A6C +.word .L7F0E1A6C +.word spectrum_op_ED_B0 +.word spectrum_op_ED_B1 +.word spectrum_op_ED_B2 +.word spectrum_op_ED_B3 +.word .L7F0E1A6C +.word .L7F0E1A6C +.word .L7F0E1A6C +.word .L7F0E1A6C +.word spectrum_op_ED_B8 +.word spectrum_op_ED_B9 +.word spectrum_op_ED_BA +.word spectrum_op_ED_BB + +/*D:8005C71C*/ +glabel jpt_8005C71C +.word spectrum_op_ED_40 +.word spectrum_op_ED_41 +.word spectrum_op_ED_42 +.word spectrum_op_ED_43 +.word spectrum_op_ED_44 +.word spectrum_op_ED_45 +.word spectrum_op_ED_46 +.word spectrum_op_ED_47 +.word spectrum_op_ED_48 +.word spectrum_op_ED_49 +.word spectrum_op_ED_4A +.word spectrum_op_ED_4B +.word spectrum_op_ED_4C +.word spectrum_op_ED_4D +.word spectrum_op_ED_4E +.word spectrum_op_ED_4F +.word spectrum_op_ED_50 +.word spectrum_op_ED_51 +.word spectrum_op_ED_52 +.word spectrum_op_ED_53 +.word spectrum_op_ED_54 +.word spectrum_op_ED_55 +.word spectrum_op_ED_56 +.word spectrum_op_ED_57 +.word spectrum_op_ED_58 +.word spectrum_op_ED_59 +.word spectrum_op_ED_5A +.word spectrum_op_ED_5B +.word spectrum_op_ED_5C +.word spectrum_op_ED_5D +.word spectrum_op_ED_5E +.word spectrum_op_ED_5F +.word spectrum_op_ED_60 +.word spectrum_op_ED_61 +.word spectrum_op_ED_62 +.word spectrum_op_ED_63 +.word spectrum_op_ED_64 +.word spectrum_op_ED_65 +.word spectrum_op_ED_66 +.word spectrum_op_ED_67 +.word spectrum_op_ED_68 +.word spectrum_op_ED_69 +.word spectrum_op_ED_6A +.word spectrum_op_ED_6B +.word spectrum_op_ED_6C +.word spectrum_op_ED_6D +.word spectrum_op_ED_6E +.word spectrum_op_ED_6F +.word spectrum_op_ED_70 +.word spectrum_op_ED_71 +.word spectrum_op_ED_72 +.word spectrum_op_ED_73 +.word spectrum_op_ED_74 +.word spectrum_op_ED_75 +.word spectrum_op_ED_76 +.word .L7F0E1A6C +.word spectrum_op_ED_78 +.word spectrum_op_ED_79 +.word spectrum_op_ED_7A +.word spectrum_op_ED_7B +.word spectrum_op_ED_7C +.word spectrum_op_ED_7D +.word spectrum_op_ED_7E + +.text +glabel spectrum_hw_emulation +/* 10835C 7F0D382C 27BDFD50 */ addiu $sp, $sp, -0x2b0 +/* 108360 7F0D3830 3C0E0001 */ lui $t6, (0x00011100 >> 16) # lui $t6, 1 +/* 108364 7F0D3834 35CE1100 */ ori $t6, (0x00011100 & 0xFFFF) # ori $t6, $t6, 0x1100 +/* 108368 7F0D3838 AFAE0280 */ sw $t6, 0x280($sp) +/* 10836C 7F0D383C 3C0E8009 */ lui $t6, %hi(byte_CODE_bss_8008E341) +/* 108370 7F0D3840 91CEE341 */ lbu $t6, %lo(byte_CODE_bss_8008E341)($t6) +/* 108374 7F0D3844 3C0D8009 */ lui $t5, %hi(off_CODE_bss_8008E340) +/* 108378 7F0D3848 3C0F8009 */ lui $t7, %hi(byte_CODE_bss_8008E342) +/* 10837C 7F0D384C 3C188009 */ lui $t8, %hi(byte_CODE_bss_8008E343) +/* 108380 7F0D3850 3C198009 */ lui $t9, %hi(off_CODE_bss_8008E344) +/* 108384 7F0D3854 3C088009 */ lui $t0, %hi(byte_CODE_bss_8008E345) +/* 108388 7F0D3858 3C098009 */ lui $t1, %hi(byte_CODE_bss_8008E346) +/* 10838C 7F0D385C 91ADE340 */ lbu $t5, %lo(off_CODE_bss_8008E340)($t5) +/* 108390 7F0D3860 91EFE342 */ lbu $t7, %lo(byte_CODE_bss_8008E342)($t7) +/* 108394 7F0D3864 9318E343 */ lbu $t8, %lo(byte_CODE_bss_8008E343)($t8) +/* 108398 7F0D3868 9339E344 */ lbu $t9, %lo(off_CODE_bss_8008E344)($t9) +/* 10839C 7F0D386C 9108E345 */ lbu $t0, %lo(byte_CODE_bss_8008E345)($t0) +/* 1083A0 7F0D3870 9129E346 */ lbu $t1, %lo(byte_CODE_bss_8008E346)($t1) +/* 1083A4 7F0D3874 A3A002A5 */ sb $zero, 0x2a5($sp) +/* 1083A8 7F0D3878 A3A002A0 */ sb $zero, 0x2a0($sp) +/* 1083AC 7F0D387C A3A002A1 */ sb $zero, 0x2a1($sp) +/* 1083B0 7F0D3880 A3A002A2 */ sb $zero, 0x2a2($sp) +/* 1083B4 7F0D3884 A3A002A3 */ sb $zero, 0x2a3($sp) +/* 1083B8 7F0D3888 A3A002A4 */ sb $zero, 0x2a4($sp) +/* 1083BC 7F0D388C A3A002A6 */ sb $zero, 0x2a6($sp) +/* 1083C0 7F0D3890 A3AE02A5 */ sb $t6, 0x2a5($sp) +/* 1083C4 7F0D3894 3C0E8009 */ lui $t6, %hi(byte_CODE_bss_8008E349) +/* 1083C8 7F0D3898 A3AD02A6 */ sb $t5, 0x2a6($sp) +/* 1083CC 7F0D389C A3AF02A4 */ sb $t7, 0x2a4($sp) +/* 1083D0 7F0D38A0 A3B802A3 */ sb $t8, 0x2a3($sp) +/* 1083D4 7F0D38A4 A3B902A2 */ sb $t9, 0x2a2($sp) +/* 1083D8 7F0D38A8 A3A802A1 */ sb $t0, 0x2a1($sp) +/* 1083DC 7F0D38AC A3A902A0 */ sb $t1, 0x2a0($sp) +/* 1083E0 7F0D38B0 91CEE349 */ lbu $t6, %lo(byte_CODE_bss_8008E349)($t6) +/* 1083E4 7F0D38B4 3C0A8009 */ lui $t2, %hi(byte_CODE_bss_8008E347) +/* 1083E8 7F0D38B8 3C0B8009 */ lui $t3, %hi(spec_IFF2_lower) +/* 1083EC 7F0D38BC 3C0C8009 */ lui $t4, %hi(spec_IFF2_upper) +/* 1083F0 7F0D38C0 3C0D8009 */ lui $t5, %hi(spec_I) +/* 1083F4 7F0D38C4 3C0F8009 */ lui $t7, %hi(spec_IM) +/* 1083F8 7F0D38C8 3C188009 */ lui $t8, %hi(spec_IX) +/* 1083FC 7F0D38CC 3C198009 */ lui $t9, %hi(spec_IY) +/* 108400 7F0D38D0 3C088009 */ lui $t0, %hi(spec_SP) +/* 108404 7F0D38D4 3C098009 */ lui $t1, %hi(spec_PC) +/* 108408 7F0D38D8 914AE347 */ lbu $t2, %lo(byte_CODE_bss_8008E347)($t2) +/* 10840C 7F0D38DC 916BE34A */ lbu $t3, %lo(spec_IFF2_lower)($t3) +/* 108410 7F0D38E0 918CE34B */ lbu $t4, %lo(spec_IFF2_upper)($t4) +/* 108414 7F0D38E4 91ADE348 */ lbu $t5, %lo(spec_I)($t5) +/* 108418 7F0D38E8 91EFE34C */ lbu $t7, %lo(spec_IM)($t7) +/* 10841C 7F0D38EC 9718E34E */ lhu $t8, %lo(spec_IX)($t8) +/* 108420 7F0D38F0 9739E350 */ lhu $t9, %lo(spec_IY)($t9) +/* 108424 7F0D38F4 9508E352 */ lhu $t0, %lo(spec_SP)($t0) +/* 108428 7F0D38F8 9529E354 */ lhu $t1, %lo(spec_PC)($t1) +/* 10842C 7F0D38FC AFB70030 */ sw $s7, 0x30($sp) +/* 108430 7F0D3900 AFB6002C */ sw $s6, 0x2c($sp) +/* 108434 7F0D3904 AFB50028 */ sw $s5, 0x28($sp) +/* 108438 7F0D3908 AFB40024 */ sw $s4, 0x24($sp) +/* 10843C 7F0D390C AFB30020 */ sw $s3, 0x20($sp) +/* 108440 7F0D3910 AFB2001C */ sw $s2, 0x1c($sp) +/* 108444 7F0D3914 AFB10018 */ sw $s1, 0x18($sp) +/* 108448 7F0D3918 AFB00014 */ sw $s0, 0x14($sp) +/* 10844C 7F0D391C 3C010001 */ lui $at, (0x00011100 >> 16) # lui $at, 1 +/* 108450 7F0D3920 A3A0029B */ sb $zero, 0x29b($sp) +/* 108454 7F0D3924 A3A0029C */ sb $zero, 0x29c($sp) +/* 108458 7F0D3928 A3A0029D */ sb $zero, 0x29d($sp) +/* 10845C 7F0D392C A3A002A7 */ sb $zero, 0x2a7($sp) +/* 108460 7F0D3930 A3A0029E */ sb $zero, 0x29e($sp) +/* 108464 7F0D3934 A3A0029F */ sb $zero, 0x29f($sp) +/* 108468 7F0D3938 A7A00298 */ sh $zero, 0x298($sp) +/* 10846C 7F0D393C A7A00292 */ sh $zero, 0x292($sp) +/* 108470 7F0D3940 A7A00294 */ sh $zero, 0x294($sp) +/* 108474 7F0D3944 A7A00296 */ sh $zero, 0x296($sp) +/* 108478 7F0D3948 AFA00288 */ sw $zero, 0x288($sp) +/* 10847C 7F0D394C 3C108009 */ lui $s0, %hi(spectrum_header16_15) +/* 108480 7F0D3950 3C118009 */ lui $s1, %hi(byte_CODE_bss_8008E339) +/* 108484 7F0D3954 3C128009 */ lui $s2, %hi(byte_CODE_bss_8008E33A) +/* 108488 7F0D3958 3C138009 */ lui $s3, %hi(byte_CODE_bss_8008E33B) +/* 10848C 7F0D395C 3C148009 */ lui $s4, %hi(off_CODE_bss_8008E33C) +/* 108490 7F0D3960 3C158009 */ lui $s5, %hi(byte_CODE_bss_8008E33D) +/* 108494 7F0D3964 3C168009 */ lui $s6, %hi(byte_CODE_bss_8008E33E) +/* 108498 7F0D3968 3C178009 */ lui $s7, %hi(byte_CODE_bss_8008E33F) +/* 10849C 7F0D396C 34211100 */ ori $at, (0x00011100 & 0xFFFF) # ori $at, $at, 0x1100 +/* 1084A0 7F0D3970 AFBF0034 */ sw $ra, 0x34($sp) +/* 1084A4 7F0D3974 A3A00286 */ sb $zero, 0x286($sp) +/* 1084A8 7F0D3978 A3A00287 */ sb $zero, 0x287($sp) +/* 1084AC 7F0D397C AFA0028C */ sw $zero, 0x28c($sp) +/* 1084B0 7F0D3980 9210E338 */ lbu $s0, %lo(spectrum_header16_15)($s0) +/* 1084B4 7F0D3984 9231E339 */ lbu $s1, %lo(byte_CODE_bss_8008E339)($s1) +/* 1084B8 7F0D3988 9252E33A */ lbu $s2, %lo(byte_CODE_bss_8008E33A)($s2) +/* 1084BC 7F0D398C 9273E33B */ lbu $s3, %lo(byte_CODE_bss_8008E33B)($s3) +/* 1084C0 7F0D3990 9294E33C */ lbu $s4, %lo(off_CODE_bss_8008E33C)($s4) +/* 1084C4 7F0D3994 92B5E33D */ lbu $s5, %lo(byte_CODE_bss_8008E33D)($s5) +/* 1084C8 7F0D3998 92D6E33E */ lbu $s6, %lo(byte_CODE_bss_8008E33E)($s6) +/* 1084CC 7F0D399C 92F7E33F */ lbu $s7, %lo(byte_CODE_bss_8008E33F)($s7) +/* 1084D0 7F0D39A0 A3AE02A7 */ sb $t6, 0x2a7($sp) +/* 1084D4 7F0D39A4 AFAE0288 */ sw $t6, 0x288($sp) +/* 1084D8 7F0D39A8 A3AA029F */ sb $t2, 0x29f($sp) +/* 1084DC 7F0D39AC A3AB029D */ sb $t3, 0x29d($sp) +/* 1084E0 7F0D39B0 A3AC029C */ sb $t4, 0x29c($sp) +/* 1084E4 7F0D39B4 A3AD029E */ sb $t5, 0x29e($sp) +/* 1084E8 7F0D39B8 A3AF029B */ sb $t7, 0x29b($sp) +/* 1084EC 7F0D39BC A7B80296 */ sh $t8, 0x296($sp) +/* 1084F0 7F0D39C0 A7B90294 */ sh $t9, 0x294($sp) +/* 1084F4 7F0D39C4 A7A80292 */ sh $t0, 0x292($sp) +/* 1084F8 7F0D39C8 14200003 */ bnez $at, .L7F0D39D8 +/* 1084FC 7F0D39CC A7A90298 */ sh $t1, 0x298($sp) +/* 108500 7F0D39D0 93AB0285 */ lbu $t3, 0x285($sp) +/* 108504 7F0D39D4 15603B91 */ bnez $t3, .L7F0E281C +.L7F0D39D8: +/* 108508 7F0D39D8 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10850C 7F0D39DC 93AC0286 */ lbu $t4, 0x286($sp) +/* 108510 7F0D39E0 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 108514 7F0D39E4 97AE0298 */ lhu $t6, 0x298($sp) +/* 108518 7F0D39E8 240D0001 */ li $t5, 1 +/* 10851C 7F0D39EC A3A00286 */ sb $zero, 0x286($sp) +/* 108520 7F0D39F0 A3AD0285 */ sb $t5, 0x285($sp) +/* 108524 7F0D39F4 A3AC0287 */ sb $t4, 0x287($sp) +/* 108528 7F0D39F8 01CFC021 */ addu $t8, $t6, $t7 +/* 10852C 7F0D39FC 93190000 */ lbu $t9, ($t8) +/* 108530 7F0D3A00 8FA90288 */ lw $t1, 0x288($sp) +/* 108534 7F0D3A04 25C80001 */ addiu $t0, $t6, 1 +/* 108538 7F0D3A08 332B00FF */ andi $t3, $t9, 0xff +/* 10853C 7F0D3A0C 2D610100 */ sltiu $at, $t3, 0x100 +/* 108540 7F0D3A10 252A0001 */ addiu $t2, $t1, 1 +/* 108544 7F0D3A14 A7A80298 */ sh $t0, 0x298($sp) +/* 108548 7F0D3A18 AFAA0288 */ sw $t2, 0x288($sp) +/* 10854C 7F0D3A1C 10203B77 */ beqz $at, .L7F0E27FC +/* 108550 7F0D3A20 A3B90284 */ sb $t9, 0x284($sp) +/* 108554 7F0D3A24 000B5880 */ sll $t3, $t3, 2 +/* 108558 7F0D3A28 3C018006 */ lui $at, %hi(spectrum_op_table) +/* 10855C 7F0D3A2C 002B0821 */ addu $at, $at, $t3 +/* 108560 7F0D3A30 8C2BC12C */ lw $t3, %lo(spectrum_op_table)($at) +/* 108564 7F0D3A34 01600008 */ jr $t3 +/* 108568 7F0D3A38 00000000 */ nop +spectrum_op_00: +/* 10856C 7F0D3A3C 8FAC028C */ lw $t4, 0x28c($sp) +/* 108570 7F0D3A40 258D0004 */ addiu $t5, $t4, 4 +/* 108574 7F0D3A44 10003B6D */ b .L7F0E27FC +/* 108578 7F0D3A48 AFAD028C */ sw $t5, 0x28c($sp) +spectrum_op_01: +/* 10857C 7F0D3A4C 8FAF028C */ lw $t7, 0x28c($sp) +/* 108580 7F0D3A50 97B90298 */ lhu $t9, 0x298($sp) +/* 108584 7F0D3A54 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 108588 7F0D3A58 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10858C 7F0D3A5C 25F8000A */ addiu $t8, $t7, 0xa +/* 108590 7F0D3A60 AFB8028C */ sw $t8, 0x28c($sp) +/* 108594 7F0D3A64 272C0001 */ addiu $t4, $t9, 1 +/* 108598 7F0D3A68 032E4021 */ addu $t0, $t9, $t6 +/* 10859C 7F0D3A6C 91130000 */ lbu $s3, ($t0) +/* 1085A0 7F0D3A70 318AFFFF */ andi $t2, $t4, 0xffff +/* 1085A4 7F0D3A74 A7AC0298 */ sh $t4, 0x298($sp) +/* 1085A8 7F0D3A78 014E5821 */ addu $t3, $t2, $t6 +/* 1085AC 7F0D3A7C 91720000 */ lbu $s2, ($t3) +/* 1085B0 7F0D3A80 258D0001 */ addiu $t5, $t4, 1 +/* 1085B4 7F0D3A84 10003B5D */ b .L7F0E27FC +/* 1085B8 7F0D3A88 A7AD0298 */ sh $t5, 0x298($sp) +spectrum_op_02: +/* 1085BC 7F0D3A8C 8FAF028C */ lw $t7, 0x28c($sp) +/* 1085C0 7F0D3A90 00124200 */ sll $t0, $s2, 8 +/* 1085C4 7F0D3A94 0113C825 */ or $t9, $t0, $s3 +/* 1085C8 7F0D3A98 2B215B00 */ slti $at, $t9, 0x5b00 +/* 1085CC 7F0D3A9C 25F80007 */ addiu $t8, $t7, 7 +/* 1085D0 7F0D3AA0 14200008 */ bnez $at, .L7F0D3AC4 +/* 1085D4 7F0D3AA4 AFB8028C */ sw $t8, 0x28c($sp) +/* 1085D8 7F0D3AA8 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 1085DC 7F0D3AAC 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 1085E0 7F0D3AB0 00127200 */ sll $t6, $s2, 8 +/* 1085E4 7F0D3AB4 01D35825 */ or $t3, $t6, $s3 +/* 1085E8 7F0D3AB8 014B4821 */ addu $t1, $t2, $t3 +/* 1085EC 7F0D3ABC 10003B4F */ b .L7F0E27FC +/* 1085F0 7F0D3AC0 A1300000 */ sb $s0, ($t1) +.L7F0D3AC4: +/* 1085F4 7F0D3AC4 00126200 */ sll $t4, $s2, 8 +/* 1085F8 7F0D3AC8 01936825 */ or $t5, $t4, $s3 +/* 1085FC 7F0D3ACC 29A15800 */ slti $at, $t5, 0x5800 +/* 108600 7F0D3AD0 1420000F */ bnez $at, .L7F0D3B10 +/* 108604 7F0D3AD4 00126A00 */ sll $t5, $s2, 8 +/* 108608 7F0D3AD8 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10860C 7F0D3ADC 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 108610 7F0D3AE0 0012C200 */ sll $t8, $s2, 8 +/* 108614 7F0D3AE4 03134025 */ or $t0, $t8, $s3 +/* 108618 7F0D3AE8 01E8C821 */ addu $t9, $t7, $t0 +/* 10861C 7F0D3AEC A3300000 */ sb $s0, ($t9) +/* 108620 7F0D3AF0 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 108624 7F0D3AF4 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 108628 7F0D3AF8 00125A00 */ sll $t3, $s2, 8 +/* 10862C 7F0D3AFC 01734825 */ or $t1, $t3, $s3 +/* 108630 7F0D3B00 240E0001 */ li $t6, 1 +/* 108634 7F0D3B04 01496021 */ addu $t4, $t2, $t1 +/* 108638 7F0D3B08 10003B3C */ b .L7F0E27FC +/* 10863C 7F0D3B0C A18EA800 */ sb $t6, -0x5800($t4) +.L7F0D3B10: +/* 108640 7F0D3B10 01B3C025 */ or $t8, $t5, $s3 +/* 108644 7F0D3B14 2B014000 */ slti $at, $t8, 0x4000 +/* 108648 7F0D3B18 14203B38 */ bnez $at, .L7F0E27FC +/* 10864C 7F0D3B1C 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 108650 7F0D3B20 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 108654 7F0D3B24 00124200 */ sll $t0, $s2, 8 +/* 108658 7F0D3B28 0113C825 */ or $t9, $t0, $s3 +/* 10865C 7F0D3B2C 01F95821 */ addu $t3, $t7, $t9 +/* 108660 7F0D3B30 A1700000 */ sb $s0, ($t3) +/* 108664 7F0D3B34 00124A00 */ sll $t1, $s2, 8 +/* 108668 7F0D3B38 01337025 */ or $t6, $t1, $s3 +/* 10866C 7F0D3B3C 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 108670 7F0D3B40 0012C200 */ sll $t8, $s2, 8 +/* 108674 7F0D3B44 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 108678 7F0D3B48 03134025 */ or $t0, $t8, $s3 +/* 10867C 7F0D3B4C 31CC1800 */ andi $t4, $t6, 0x1800 +/* 108680 7F0D3B50 000C68C3 */ sra $t5, $t4, 3 +/* 108684 7F0D3B54 310F00FF */ andi $t7, $t0, 0xff +/* 108688 7F0D3B58 01AFC825 */ or $t9, $t5, $t7 +/* 10868C 7F0D3B5C 240A0001 */ li $t2, 1 +/* 108690 7F0D3B60 01794821 */ addu $t1, $t3, $t9 +/* 108694 7F0D3B64 10003B25 */ b .L7F0E27FC +/* 108698 7F0D3B68 A12A0000 */ sb $t2, ($t1) +spectrum_op_03: +/* 10869C 7F0D3B6C 8FAE028C */ lw $t6, 0x28c($sp) +/* 1086A0 7F0D3B70 26730001 */ addiu $s3, $s3, 1 +/* 1086A4 7F0D3B74 327800FF */ andi $t8, $s3, 0xff +/* 1086A8 7F0D3B78 25CC0006 */ addiu $t4, $t6, 6 +/* 1086AC 7F0D3B7C AFAC028C */ sw $t4, 0x28c($sp) +/* 1086B0 7F0D3B80 17003B1E */ bnez $t8, .L7F0E27FC +/* 1086B4 7F0D3B84 03009825 */ move $s3, $t8 +/* 1086B8 7F0D3B88 26520001 */ addiu $s2, $s2, 1 +/* 1086BC 7F0D3B8C 324800FF */ andi $t0, $s2, 0xff +/* 1086C0 7F0D3B90 10003B1A */ b .L7F0E27FC +/* 1086C4 7F0D3B94 01009025 */ move $s2, $t0 +spectrum_op_04: +/* 1086C8 7F0D3B98 26520001 */ addiu $s2, $s2, 1 +/* 1086CC 7F0D3B9C 324B00FF */ andi $t3, $s2, 0xff +/* 1086D0 7F0D3BA0 8FAD028C */ lw $t5, 0x28c($sp) +/* 1086D4 7F0D3BA4 316A000F */ andi $t2, $t3, 0xf +/* 1086D8 7F0D3BA8 2D490001 */ sltiu $t1, $t2, 1 +/* 1086DC 7F0D3BAC 01609025 */ move $s2, $t3 +/* 1086E0 7F0D3BB0 2D790001 */ sltiu $t9, $t3, 1 +/* 1086E4 7F0D3BB4 316C00A8 */ andi $t4, $t3, 0xa8 +/* 1086E8 7F0D3BB8 322E0001 */ andi $t6, $s1, 1 +/* 1086EC 7F0D3BBC 01CCC025 */ or $t8, $t6, $t4 +/* 1086F0 7F0D3BC0 3A4A0080 */ xori $t2, $s2, 0x80 +/* 1086F4 7F0D3BC4 00094100 */ sll $t0, $t1, 4 +/* 1086F8 7F0D3BC8 25AF0004 */ addiu $t7, $t5, 4 +/* 1086FC 7F0D3BCC 03086825 */ or $t5, $t8, $t0 +/* 108700 7F0D3BD0 2D4A0001 */ sltiu $t2, $t2, 1 +/* 108704 7F0D3BD4 00195980 */ sll $t3, $t9, 6 +/* 108708 7F0D3BD8 AFB90044 */ sw $t9, 0x44($sp) +/* 10870C 7F0D3BDC 01ABC825 */ or $t9, $t5, $t3 +/* 108710 7F0D3BE0 000A7080 */ sll $t6, $t2, 2 +/* 108714 7F0D3BE4 032E8825 */ or $s1, $t9, $t6 +/* 108718 7F0D3BE8 322C00FF */ andi $t4, $s1, 0xff +/* 10871C 7F0D3BEC AFAF028C */ sw $t7, 0x28c($sp) +/* 108720 7F0D3BF0 01808825 */ move $s1, $t4 +/* 108724 7F0D3BF4 10003B01 */ b .L7F0E27FC +/* 108728 7F0D3BF8 AFA90048 */ sw $t1, 0x48($sp) +spectrum_op_05: +/* 10872C 7F0D3BFC 8FA9028C */ lw $t1, 0x28c($sp) +/* 108730 7F0D3C00 3248000F */ andi $t0, $s2, 0xf +/* 108734 7F0D3C04 2652FFFF */ addiu $s2, $s2, -1 +/* 108738 7F0D3C08 25380004 */ addiu $t8, $t1, 4 +/* 10873C 7F0D3C0C AFB8028C */ sw $t8, 0x28c($sp) +/* 108740 7F0D3C10 324E00FF */ andi $t6, $s2, 0xff +/* 108744 7F0D3C14 2D0F0001 */ sltiu $t7, $t0, 1 +/* 108748 7F0D3C18 000F5900 */ sll $t3, $t7, 4 +/* 10874C 7F0D3C1C 39D8007F */ xori $t8, $t6, 0x7f +/* 108750 7F0D3C20 2F180001 */ sltiu $t8, $t8, 1 +/* 108754 7F0D3C24 322D0001 */ andi $t5, $s1, 1 +/* 108758 7F0D3C28 01AB8825 */ or $s1, $t5, $t3 +/* 10875C 7F0D3C2C 00184080 */ sll $t0, $t8, 2 +/* 108760 7F0D3C30 AFAF0048 */ sw $t7, 0x48($sp) +/* 108764 7F0D3C34 2DCC0001 */ sltiu $t4, $t6, 1 +/* 108768 7F0D3C38 31C900A8 */ andi $t1, $t6, 0xa8 +/* 10876C 7F0D3C3C 01287825 */ or $t7, $t1, $t0 +/* 108770 7F0D3C40 000C5980 */ sll $t3, $t4, 6 +/* 108774 7F0D3C44 01EB5025 */ or $t2, $t7, $t3 +/* 108778 7F0D3C48 36390002 */ ori $t9, $s1, 2 +/* 10877C 7F0D3C4C 032A8825 */ or $s1, $t9, $t2 +/* 108780 7F0D3C50 323900FF */ andi $t9, $s1, 0xff +/* 108784 7F0D3C54 03208825 */ move $s1, $t9 +/* 108788 7F0D3C58 AFAC0044 */ sw $t4, 0x44($sp) +/* 10878C 7F0D3C5C 10003AE7 */ b .L7F0E27FC +/* 108790 7F0D3C60 01C09025 */ move $s2, $t6 +spectrum_op_06: +/* 108794 7F0D3C64 8FAE028C */ lw $t6, 0x28c($sp) +/* 108798 7F0D3C68 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10879C 7F0D3C6C 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 1087A0 7F0D3C70 97B80298 */ lhu $t8, 0x298($sp) +/* 1087A4 7F0D3C74 25CC0007 */ addiu $t4, $t6, 7 +/* 1087A8 7F0D3C78 AFAC028C */ sw $t4, 0x28c($sp) +/* 1087AC 7F0D3C7C 03094021 */ addu $t0, $t8, $t1 +/* 1087B0 7F0D3C80 91120000 */ lbu $s2, ($t0) +/* 1087B4 7F0D3C84 270D0001 */ addiu $t5, $t8, 1 +/* 1087B8 7F0D3C88 10003ADC */ b .L7F0E27FC +/* 1087BC 7F0D3C8C A7AD0298 */ sh $t5, 0x298($sp) +spectrum_op_07: +/* 1087C0 7F0D3C90 00105040 */ sll $t2, $s0, 1 +/* 1087C4 7F0D3C94 0010C9C3 */ sra $t9, $s0, 7 +/* 1087C8 7F0D3C98 01598025 */ or $s0, $t2, $t9 +/* 1087CC 7F0D3C9C 8FAF028C */ lw $t7, 0x28c($sp) +/* 1087D0 7F0D3CA0 320E00FF */ andi $t6, $s0, 0xff +/* 1087D4 7F0D3CA4 31C90029 */ andi $t1, $t6, 0x29 +/* 1087D8 7F0D3CA8 322C00C4 */ andi $t4, $s1, 0xc4 +/* 1087DC 7F0D3CAC 01898825 */ or $s1, $t4, $t1 +/* 1087E0 7F0D3CB0 322800FF */ andi $t0, $s1, 0xff +/* 1087E4 7F0D3CB4 25EB0004 */ addiu $t3, $t7, 4 +/* 1087E8 7F0D3CB8 AFAB028C */ sw $t3, 0x28c($sp) +/* 1087EC 7F0D3CBC 01C08025 */ move $s0, $t6 +/* 1087F0 7F0D3CC0 10003ACE */ b .L7F0E27FC +/* 1087F4 7F0D3CC4 01008825 */ move $s1, $t0 +spectrum_op_08: +/* 1087F8 7F0D3CC8 8FB8028C */ lw $t8, 0x28c($sp) +/* 1087FC 7F0D3CCC A3B0027F */ sb $s0, 0x27f($sp) +/* 108800 7F0D3CD0 A3B1027E */ sb $s1, 0x27e($sp) +/* 108804 7F0D3CD4 93AF027F */ lbu $t7, 0x27f($sp) +/* 108808 7F0D3CD8 93AB027E */ lbu $t3, 0x27e($sp) +/* 10880C 7F0D3CDC 93B002A6 */ lbu $s0, 0x2a6($sp) +/* 108810 7F0D3CE0 93B102A5 */ lbu $s1, 0x2a5($sp) +/* 108814 7F0D3CE4 270D0004 */ addiu $t5, $t8, 4 +/* 108818 7F0D3CE8 AFAD028C */ sw $t5, 0x28c($sp) +/* 10881C 7F0D3CEC A3AF02A6 */ sb $t7, 0x2a6($sp) +/* 108820 7F0D3CF0 10003AC2 */ b .L7F0E27FC +/* 108824 7F0D3CF4 A3AB02A5 */ sb $t3, 0x2a5($sp) +spectrum_op_09: +/* 108828 7F0D3CF8 8FAA028C */ lw $t2, 0x28c($sp) +/* 10882C 7F0D3CFC 93AE0287 */ lbu $t6, 0x287($sp) +/* 108830 7F0D3D00 93A90287 */ lbu $t1, 0x287($sp) +/* 108834 7F0D3D04 2559000B */ addiu $t9, $t2, 0xb +/* 108838 7F0D3D08 15C0001C */ bnez $t6, .L7F0D3D7C +/* 10883C 7F0D3D0C AFB9028C */ sw $t9, 0x28c($sp) +/* 108840 7F0D3D10 02F36021 */ addu $t4, $s7, $s3 +/* 108844 7F0D3D14 3189FFFF */ andi $t1, $t4, 0xffff +/* 108848 7F0D3D18 00094202 */ srl $t0, $t1, 8 +/* 10884C 7F0D3D1C 310DFFFF */ andi $t5, $t0, 0xffff +/* 108850 7F0D3D20 32D8000F */ andi $t8, $s6, 0xf +/* 108854 7F0D3D24 01B87821 */ addu $t7, $t5, $t8 +/* 108858 7F0D3D28 324B000F */ andi $t3, $s2, 0xf +/* 10885C 7F0D3D2C 01EB5021 */ addu $t2, $t7, $t3 +/* 108860 7F0D3D30 A7AC027C */ sh $t4, 0x27c($sp) +/* 108864 7F0D3D34 2401000F */ li $at, 15 +/* 108868 7F0D3D38 002AC82A */ slt $t9, $at, $t2 +/* 10886C 7F0D3D3C 93B7027D */ lbu $s7, 0x27d($sp) +/* 108870 7F0D3D40 02D26821 */ addu $t5, $s6, $s2 +/* 108874 7F0D3D44 010D5021 */ addu $t2, $t0, $t5 +/* 108878 7F0D3D48 A7A8027C */ sh $t0, 0x27c($sp) +/* 10887C 7F0D3D4C A7AA027C */ sh $t2, 0x27c($sp) +/* 108880 7F0D3D50 93B6027D */ lbu $s6, 0x27d($sp) +/* 108884 7F0D3D54 00197100 */ sll $t6, $t9, 4 +/* 108888 7F0D3D58 322C00C4 */ andi $t4, $s1, 0xc4 +/* 10888C 7F0D3D5C 01CC4825 */ or $t1, $t6, $t4 +/* 108890 7F0D3D60 000ACA03 */ sra $t9, $t2, 8 +/* 108894 7F0D3D64 32CB0028 */ andi $t3, $s6, 0x28 +/* 108898 7F0D3D68 01797025 */ or $t6, $t3, $t9 +/* 10889C 7F0D3D6C 012E8825 */ or $s1, $t1, $t6 +/* 1088A0 7F0D3D70 322C00FF */ andi $t4, $s1, 0xff +/* 1088A4 7F0D3D74 10003AA1 */ b .L7F0E27FC +/* 1088A8 7F0D3D78 01808825 */ move $s1, $t4 +.L7F0D3D7C: +/* 1088AC 7F0D3D7C 24010001 */ li $at, 1 +/* 1088B0 7F0D3D80 15210004 */ bne $t1, $at, .L7F0D3D94 +/* 1088B4 7F0D3D84 00125200 */ sll $t2, $s2, 8 +/* 1088B8 7F0D3D88 97A80296 */ lhu $t0, 0x296($sp) +/* 1088BC 7F0D3D8C 10000003 */ b .L7F0D3D9C +/* 1088C0 7F0D3D90 AFA80278 */ sw $t0, 0x278($sp) +.L7F0D3D94: +/* 1088C4 7F0D3D94 97B80294 */ lhu $t8, 0x294($sp) +/* 1088C8 7F0D3D98 AFB80278 */ sw $t8, 0x278($sp) +.L7F0D3D9C: +/* 1088CC 7F0D3D9C 8FAD0278 */ lw $t5, 0x278($sp) +/* 1088D0 7F0D3DA0 01535825 */ or $t3, $t2, $s3 +/* 1088D4 7F0D3DA4 24010FFF */ li $at, 4095 +/* 1088D8 7F0D3DA8 31AF0FFF */ andi $t7, $t5, 0xfff +/* 1088DC 7F0D3DAC 01EBC821 */ addu $t9, $t7, $t3 +/* 1088E0 7F0D3DB0 0039702B */ sltu $t6, $at, $t9 +/* 1088E4 7F0D3DB4 93AB0287 */ lbu $t3, 0x287($sp) +/* 1088E8 7F0D3DB8 000E6100 */ sll $t4, $t6, 4 +/* 1088EC 7F0D3DBC 322900C4 */ andi $t1, $s1, 0xc4 +/* 1088F0 7F0D3DC0 0012C200 */ sll $t8, $s2, 8 +/* 1088F4 7F0D3DC4 03135025 */ or $t2, $t8, $s3 +/* 1088F8 7F0D3DC8 012C8825 */ or $s1, $t1, $t4 +/* 1088FC 7F0D3DCC 322800FF */ andi $t0, $s1, 0xff +/* 108900 7F0D3DD0 24010001 */ li $at, 1 +/* 108904 7F0D3DD4 01AA7821 */ addu $t7, $t5, $t2 +/* 108908 7F0D3DD8 AFAF0278 */ sw $t7, 0x278($sp) +/* 10890C 7F0D3DDC 15610003 */ bne $t3, $at, .L7F0D3DEC +/* 108910 7F0D3DE0 01008825 */ move $s1, $t0 +/* 108914 7F0D3DE4 10000003 */ b .L7F0D3DF4 +/* 108918 7F0D3DE8 A7AF0296 */ sh $t7, 0x296($sp) +.L7F0D3DEC: +/* 10891C 7F0D3DEC 8FB90278 */ lw $t9, 0x278($sp) +/* 108920 7F0D3DF0 A7B90294 */ sh $t9, 0x294($sp) +.L7F0D3DF4: +/* 108924 7F0D3DF4 8FAE0278 */ lw $t6, 0x278($sp) +/* 108928 7F0D3DF8 000E4A02 */ srl $t1, $t6, 8 +/* 10892C 7F0D3DFC 312C0028 */ andi $t4, $t1, 0x28 +/* 108930 7F0D3E00 000E4402 */ srl $t0, $t6, 0x10 +/* 108934 7F0D3E04 0188C025 */ or $t8, $t4, $t0 +/* 108938 7F0D3E08 02388825 */ or $s1, $s1, $t8 +/* 10893C 7F0D3E0C 322D00FF */ andi $t5, $s1, 0xff +/* 108940 7F0D3E10 10003A7A */ b .L7F0E27FC +/* 108944 7F0D3E14 01A08825 */ move $s1, $t5 +spectrum_op_0A: +/* 108948 7F0D3E18 8FAA028C */ lw $t2, 0x28c($sp) +/* 10894C 7F0D3E1C 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 108950 7F0D3E20 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 108954 7F0D3E24 00127A00 */ sll $t7, $s2, 8 +/* 108958 7F0D3E28 01F3C825 */ or $t9, $t7, $s3 +/* 10895C 7F0D3E2C 254B0007 */ addiu $t3, $t2, 7 +/* 108960 7F0D3E30 AFAB028C */ sw $t3, 0x28c($sp) +/* 108964 7F0D3E34 03297021 */ addu $t6, $t9, $t1 +/* 108968 7F0D3E38 10003A70 */ b .L7F0E27FC +/* 10896C 7F0D3E3C 91D00000 */ lbu $s0, ($t6) +spectrum_op_0B: +/* 108970 7F0D3E40 8FAC028C */ lw $t4, 0x28c($sp) +/* 108974 7F0D3E44 2E780001 */ sltiu $t8, $s3, 1 +/* 108978 7F0D3E48 2673FFFF */ addiu $s3, $s3, -1 +/* 10897C 7F0D3E4C 326D00FF */ andi $t5, $s3, 0xff +/* 108980 7F0D3E50 25880006 */ addiu $t0, $t4, 6 +/* 108984 7F0D3E54 AFA8028C */ sw $t0, 0x28c($sp) +/* 108988 7F0D3E58 01A09825 */ move $s3, $t5 +/* 10898C 7F0D3E5C 13003A67 */ beqz $t8, .L7F0E27FC +/* 108990 7F0D3E60 AFB80048 */ sw $t8, 0x48($sp) +/* 108994 7F0D3E64 2652FFFF */ addiu $s2, $s2, -1 +/* 108998 7F0D3E68 324B00FF */ andi $t3, $s2, 0xff +/* 10899C 7F0D3E6C 10003A63 */ b .L7F0E27FC +/* 1089A0 7F0D3E70 01609025 */ move $s2, $t3 +spectrum_op_0C: +/* 1089A4 7F0D3E74 26730001 */ addiu $s3, $s3, 1 +/* 1089A8 7F0D3E78 326900FF */ andi $t1, $s3, 0xff +/* 1089AC 7F0D3E7C 8FAF028C */ lw $t7, 0x28c($sp) +/* 1089B0 7F0D3E80 312C000F */ andi $t4, $t1, 0xf +/* 1089B4 7F0D3E84 2D880001 */ sltiu $t0, $t4, 1 +/* 1089B8 7F0D3E88 01209825 */ move $s3, $t1 +/* 1089BC 7F0D3E8C 2D2E0001 */ sltiu $t6, $t1, 1 +/* 1089C0 7F0D3E90 312D00A8 */ andi $t5, $t1, 0xa8 +/* 1089C4 7F0D3E94 32380001 */ andi $t8, $s1, 1 +/* 1089C8 7F0D3E98 030D5025 */ or $t2, $t8, $t5 +/* 1089CC 7F0D3E9C 3A6C0080 */ xori $t4, $s3, 0x80 +/* 1089D0 7F0D3EA0 00085900 */ sll $t3, $t0, 4 +/* 1089D4 7F0D3EA4 25F90004 */ addiu $t9, $t7, 4 +/* 1089D8 7F0D3EA8 014B7825 */ or $t7, $t2, $t3 +/* 1089DC 7F0D3EAC 2D8C0001 */ sltiu $t4, $t4, 1 +/* 1089E0 7F0D3EB0 000E4980 */ sll $t1, $t6, 6 +/* 1089E4 7F0D3EB4 AFAE0044 */ sw $t6, 0x44($sp) +/* 1089E8 7F0D3EB8 01E97025 */ or $t6, $t7, $t1 +/* 1089EC 7F0D3EBC 000CC080 */ sll $t8, $t4, 2 +/* 1089F0 7F0D3EC0 01D88825 */ or $s1, $t6, $t8 +/* 1089F4 7F0D3EC4 322D00FF */ andi $t5, $s1, 0xff +/* 1089F8 7F0D3EC8 AFB9028C */ sw $t9, 0x28c($sp) +/* 1089FC 7F0D3ECC 01A08825 */ move $s1, $t5 +/* 108A00 7F0D3ED0 10003A4A */ b .L7F0E27FC +/* 108A04 7F0D3ED4 AFA80048 */ sw $t0, 0x48($sp) +spectrum_op_0D: +/* 108A08 7F0D3ED8 8FA8028C */ lw $t0, 0x28c($sp) +/* 108A0C 7F0D3EDC 326B000F */ andi $t3, $s3, 0xf +/* 108A10 7F0D3EE0 2673FFFF */ addiu $s3, $s3, -1 +/* 108A14 7F0D3EE4 250A0004 */ addiu $t2, $t0, 4 +/* 108A18 7F0D3EE8 AFAA028C */ sw $t2, 0x28c($sp) +/* 108A1C 7F0D3EEC 327800FF */ andi $t8, $s3, 0xff +/* 108A20 7F0D3EF0 2D790001 */ sltiu $t9, $t3, 1 +/* 108A24 7F0D3EF4 00194900 */ sll $t1, $t9, 4 +/* 108A28 7F0D3EF8 3B0A007F */ xori $t2, $t8, 0x7f +/* 108A2C 7F0D3EFC 2D4A0001 */ sltiu $t2, $t2, 1 +/* 108A30 7F0D3F00 322F0001 */ andi $t7, $s1, 1 +/* 108A34 7F0D3F04 01E98825 */ or $s1, $t7, $t1 +/* 108A38 7F0D3F08 000A5880 */ sll $t3, $t2, 2 +/* 108A3C 7F0D3F0C AFB90048 */ sw $t9, 0x48($sp) +/* 108A40 7F0D3F10 2F0D0001 */ sltiu $t5, $t8, 1 +/* 108A44 7F0D3F14 330800A8 */ andi $t0, $t8, 0xa8 +/* 108A48 7F0D3F18 010BC825 */ or $t9, $t0, $t3 +/* 108A4C 7F0D3F1C 000D4980 */ sll $t1, $t5, 6 +/* 108A50 7F0D3F20 03296025 */ or $t4, $t9, $t1 +/* 108A54 7F0D3F24 362E0002 */ ori $t6, $s1, 2 +/* 108A58 7F0D3F28 01CC8825 */ or $s1, $t6, $t4 +/* 108A5C 7F0D3F2C 322E00FF */ andi $t6, $s1, 0xff +/* 108A60 7F0D3F30 01C08825 */ move $s1, $t6 +/* 108A64 7F0D3F34 AFAD0044 */ sw $t5, 0x44($sp) +/* 108A68 7F0D3F38 10003A30 */ b .L7F0E27FC +/* 108A6C 7F0D3F3C 03009825 */ move $s3, $t8 +spectrum_op_0E: +/* 108A70 7F0D3F40 8FB8028C */ lw $t8, 0x28c($sp) +/* 108A74 7F0D3F44 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 108A78 7F0D3F48 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 108A7C 7F0D3F4C 97AA0298 */ lhu $t2, 0x298($sp) +/* 108A80 7F0D3F50 270D0007 */ addiu $t5, $t8, 7 +/* 108A84 7F0D3F54 AFAD028C */ sw $t5, 0x28c($sp) +/* 108A88 7F0D3F58 01485821 */ addu $t3, $t2, $t0 +/* 108A8C 7F0D3F5C 91730000 */ lbu $s3, ($t3) +/* 108A90 7F0D3F60 254F0001 */ addiu $t7, $t2, 1 +/* 108A94 7F0D3F64 10003A25 */ b .L7F0E27FC +/* 108A98 7F0D3F68 A7AF0298 */ sh $t7, 0x298($sp) +spectrum_op_0F: +/* 108A9C 7F0D3F6C 320E0001 */ andi $t6, $s0, 1 +/* 108AA0 7F0D3F70 00106843 */ sra $t5, $s0, 1 +/* 108AA4 7F0D3F74 001041C0 */ sll $t0, $s0, 7 +/* 108AA8 7F0D3F78 01A88025 */ or $s0, $t5, $t0 +/* 108AAC 7F0D3F7C 8FB9028C */ lw $t9, 0x28c($sp) +/* 108AB0 7F0D3F80 322C00C4 */ andi $t4, $s1, 0xc4 +/* 108AB4 7F0D3F84 320B00FF */ andi $t3, $s0, 0xff +/* 108AB8 7F0D3F88 018EC025 */ or $t8, $t4, $t6 +/* 108ABC 7F0D3F8C 316A0028 */ andi $t2, $t3, 0x28 +/* 108AC0 7F0D3F90 030A8825 */ or $s1, $t8, $t2 +/* 108AC4 7F0D3F94 322F00FF */ andi $t7, $s1, 0xff +/* 108AC8 7F0D3F98 27290004 */ addiu $t1, $t9, 4 +/* 108ACC 7F0D3F9C AFA9028C */ sw $t1, 0x28c($sp) +/* 108AD0 7F0D3FA0 01608025 */ move $s0, $t3 +/* 108AD4 7F0D3FA4 10003A15 */ b .L7F0E27FC +/* 108AD8 7F0D3FA8 01E08825 */ move $s1, $t7 +spectrum_op_10: +/* 108ADC 7F0D3FAC 8FB9028C */ lw $t9, 0x28c($sp) +/* 108AE0 7F0D3FB0 2652FFFF */ addiu $s2, $s2, -1 +/* 108AE4 7F0D3FB4 324C00FF */ andi $t4, $s2, 0xff +/* 108AE8 7F0D3FB8 27290008 */ addiu $t1, $t9, 8 +/* 108AEC 7F0D3FBC AFA9028C */ sw $t1, 0x28c($sp) +/* 108AF0 7F0D3FC0 15800005 */ bnez $t4, .L7F0D3FD8 +/* 108AF4 7F0D3FC4 01809025 */ move $s2, $t4 +/* 108AF8 7F0D3FC8 97AE0298 */ lhu $t6, 0x298($sp) +/* 108AFC 7F0D3FCC 25D80001 */ addiu $t8, $t6, 1 +/* 108B00 7F0D3FD0 10003A0A */ b .L7F0E27FC +/* 108B04 7F0D3FD4 A7B80298 */ sh $t8, 0x298($sp) +.L7F0D3FD8: +/* 108B08 7F0D3FD8 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 108B0C 7F0D3FDC 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 108B10 7F0D3FE0 97AD0298 */ lhu $t5, 0x298($sp) +/* 108B14 7F0D3FE4 8FA9028C */ lw $t1, 0x28c($sp) +/* 108B18 7F0D3FE8 01A85821 */ addu $t3, $t5, $t0 +/* 108B1C 7F0D3FEC 816A0000 */ lb $t2, ($t3) +/* 108B20 7F0D3FF0 252C0005 */ addiu $t4, $t1, 5 +/* 108B24 7F0D3FF4 AFAC028C */ sw $t4, 0x28c($sp) +/* 108B28 7F0D3FF8 01AA7821 */ addu $t7, $t5, $t2 +/* 108B2C 7F0D3FFC 25F90001 */ addiu $t9, $t7, 1 +/* 108B30 7F0D4000 A7B90298 */ sh $t9, 0x298($sp) +/* 108B34 7F0D4004 100039FD */ b .L7F0E27FC +/* 108B38 7F0D4008 AFAA0274 */ sw $t2, 0x274($sp) +spectrum_op_11: +/* 108B3C 7F0D400C 8FAE028C */ lw $t6, 0x28c($sp) +/* 108B40 7F0D4010 97A80298 */ lhu $t0, 0x298($sp) +/* 108B44 7F0D4014 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 108B48 7F0D4018 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 108B4C 7F0D401C 25D8000A */ addiu $t8, $t6, 0xa +/* 108B50 7F0D4020 AFB8028C */ sw $t8, 0x28c($sp) +/* 108B54 7F0D4024 25090001 */ addiu $t1, $t0, 1 +/* 108B58 7F0D4028 010B6821 */ addu $t5, $t0, $t3 +/* 108B5C 7F0D402C 91B50000 */ lbu $s5, ($t5) +/* 108B60 7F0D4030 312FFFFF */ andi $t7, $t1, 0xffff +/* 108B64 7F0D4034 A7A90298 */ sh $t1, 0x298($sp) +/* 108B68 7F0D4038 01EBC821 */ addu $t9, $t7, $t3 +/* 108B6C 7F0D403C 93340000 */ lbu $s4, ($t9) +/* 108B70 7F0D4040 252C0001 */ addiu $t4, $t1, 1 +/* 108B74 7F0D4044 100039ED */ b .L7F0E27FC +/* 108B78 7F0D4048 A7AC0298 */ sh $t4, 0x298($sp) +spectrum_op_12: +/* 108B7C 7F0D404C 8FAE028C */ lw $t6, 0x28c($sp) +/* 108B80 7F0D4050 00146A00 */ sll $t5, $s4, 8 +/* 108B84 7F0D4054 01B54025 */ or $t0, $t5, $s5 +/* 108B88 7F0D4058 29015B00 */ slti $at, $t0, 0x5b00 +/* 108B8C 7F0D405C 25D80007 */ addiu $t8, $t6, 7 +/* 108B90 7F0D4060 14200008 */ bnez $at, .L7F0D4084 +/* 108B94 7F0D4064 AFB8028C */ sw $t8, 0x28c($sp) +/* 108B98 7F0D4068 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 108B9C 7F0D406C 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 108BA0 7F0D4070 00145A00 */ sll $t3, $s4, 8 +/* 108BA4 7F0D4074 0175C825 */ or $t9, $t3, $s5 +/* 108BA8 7F0D4078 01F95021 */ addu $t2, $t7, $t9 +/* 108BAC 7F0D407C 100039DF */ b .L7F0E27FC +/* 108BB0 7F0D4080 A1500000 */ sb $s0, ($t2) +.L7F0D4084: +/* 108BB4 7F0D4084 00144A00 */ sll $t1, $s4, 8 +/* 108BB8 7F0D4088 01356025 */ or $t4, $t1, $s5 +/* 108BBC 7F0D408C 29815800 */ slti $at, $t4, 0x5800 +/* 108BC0 7F0D4090 1420000F */ bnez $at, .L7F0D40D0 +/* 108BC4 7F0D4094 00146200 */ sll $t4, $s4, 8 +/* 108BC8 7F0D4098 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 108BCC 7F0D409C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 108BD0 7F0D40A0 0014C200 */ sll $t8, $s4, 8 +/* 108BD4 7F0D40A4 03156825 */ or $t5, $t8, $s5 +/* 108BD8 7F0D40A8 01CD4021 */ addu $t0, $t6, $t5 +/* 108BDC 7F0D40AC A1100000 */ sb $s0, ($t0) +/* 108BE0 7F0D40B0 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 108BE4 7F0D40B4 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 108BE8 7F0D40B8 0014CA00 */ sll $t9, $s4, 8 +/* 108BEC 7F0D40BC 03355025 */ or $t2, $t9, $s5 +/* 108BF0 7F0D40C0 240B0001 */ li $t3, 1 +/* 108BF4 7F0D40C4 01EA4821 */ addu $t1, $t7, $t2 +/* 108BF8 7F0D40C8 100039CC */ b .L7F0E27FC +/* 108BFC 7F0D40CC A12BA800 */ sb $t3, -0x5800($t1) +.L7F0D40D0: +/* 108C00 7F0D40D0 0195C025 */ or $t8, $t4, $s5 +/* 108C04 7F0D40D4 2B014000 */ slti $at, $t8, 0x4000 +/* 108C08 7F0D40D8 142039C8 */ bnez $at, .L7F0E27FC +/* 108C0C 7F0D40DC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 108C10 7F0D40E0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 108C14 7F0D40E4 00146A00 */ sll $t5, $s4, 8 +/* 108C18 7F0D40E8 01B54025 */ or $t0, $t5, $s5 +/* 108C1C 7F0D40EC 01C8C821 */ addu $t9, $t6, $t0 +/* 108C20 7F0D40F0 A3300000 */ sb $s0, ($t9) +/* 108C24 7F0D40F4 00145200 */ sll $t2, $s4, 8 +/* 108C28 7F0D40F8 01555825 */ or $t3, $t2, $s5 +/* 108C2C 7F0D40FC 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 108C30 7F0D4100 0014C200 */ sll $t8, $s4, 8 +/* 108C34 7F0D4104 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 108C38 7F0D4108 03156825 */ or $t5, $t8, $s5 +/* 108C3C 7F0D410C 31691800 */ andi $t1, $t3, 0x1800 +/* 108C40 7F0D4110 000960C3 */ sra $t4, $t1, 3 +/* 108C44 7F0D4114 31AE00FF */ andi $t6, $t5, 0xff +/* 108C48 7F0D4118 018E4025 */ or $t0, $t4, $t6 +/* 108C4C 7F0D411C 240F0001 */ li $t7, 1 +/* 108C50 7F0D4120 03285021 */ addu $t2, $t9, $t0 +/* 108C54 7F0D4124 100039B5 */ b .L7F0E27FC +/* 108C58 7F0D4128 A14F0000 */ sb $t7, ($t2) +spectrum_op_13: +/* 108C5C 7F0D412C 8FAB028C */ lw $t3, 0x28c($sp) +/* 108C60 7F0D4130 26B50001 */ addiu $s5, $s5, 1 +/* 108C64 7F0D4134 32B800FF */ andi $t8, $s5, 0xff +/* 108C68 7F0D4138 25690006 */ addiu $t1, $t3, 6 +/* 108C6C 7F0D413C AFA9028C */ sw $t1, 0x28c($sp) +/* 108C70 7F0D4140 170039AE */ bnez $t8, .L7F0E27FC +/* 108C74 7F0D4144 0300A825 */ move $s5, $t8 +/* 108C78 7F0D4148 26940001 */ addiu $s4, $s4, 1 +/* 108C7C 7F0D414C 328D00FF */ andi $t5, $s4, 0xff +/* 108C80 7F0D4150 100039AA */ b .L7F0E27FC +/* 108C84 7F0D4154 01A0A025 */ move $s4, $t5 +spectrum_op_14: +/* 108C88 7F0D4158 26940001 */ addiu $s4, $s4, 1 +/* 108C8C 7F0D415C 329900FF */ andi $t9, $s4, 0xff +/* 108C90 7F0D4160 8FAC028C */ lw $t4, 0x28c($sp) +/* 108C94 7F0D4164 332F000F */ andi $t7, $t9, 0xf +/* 108C98 7F0D4168 2DEA0001 */ sltiu $t2, $t7, 1 +/* 108C9C 7F0D416C 0320A025 */ move $s4, $t9 +/* 108CA0 7F0D4170 2F280001 */ sltiu $t0, $t9, 1 +/* 108CA4 7F0D4174 332900A8 */ andi $t1, $t9, 0xa8 +/* 108CA8 7F0D4178 322B0001 */ andi $t3, $s1, 1 +/* 108CAC 7F0D417C 0169C025 */ or $t8, $t3, $t1 +/* 108CB0 7F0D4180 3A8F0080 */ xori $t7, $s4, 0x80 +/* 108CB4 7F0D4184 000A6900 */ sll $t5, $t2, 4 +/* 108CB8 7F0D4188 258E0004 */ addiu $t6, $t4, 4 +/* 108CBC 7F0D418C 030D6025 */ or $t4, $t8, $t5 +/* 108CC0 7F0D4190 2DEF0001 */ sltiu $t7, $t7, 1 +/* 108CC4 7F0D4194 0008C980 */ sll $t9, $t0, 6 +/* 108CC8 7F0D4198 AFA80044 */ sw $t0, 0x44($sp) +/* 108CCC 7F0D419C 01994025 */ or $t0, $t4, $t9 +/* 108CD0 7F0D41A0 000F5880 */ sll $t3, $t7, 2 +/* 108CD4 7F0D41A4 010B8825 */ or $s1, $t0, $t3 +/* 108CD8 7F0D41A8 322900FF */ andi $t1, $s1, 0xff +/* 108CDC 7F0D41AC AFAE028C */ sw $t6, 0x28c($sp) +/* 108CE0 7F0D41B0 01208825 */ move $s1, $t1 +/* 108CE4 7F0D41B4 10003991 */ b .L7F0E27FC +/* 108CE8 7F0D41B8 AFAA0048 */ sw $t2, 0x48($sp) +spectrum_op_15: +/* 108CEC 7F0D41BC 8FAA028C */ lw $t2, 0x28c($sp) +/* 108CF0 7F0D41C0 328D000F */ andi $t5, $s4, 0xf +/* 108CF4 7F0D41C4 2694FFFF */ addiu $s4, $s4, -1 +/* 108CF8 7F0D41C8 25580004 */ addiu $t8, $t2, 4 +/* 108CFC 7F0D41CC AFB8028C */ sw $t8, 0x28c($sp) +/* 108D00 7F0D41D0 328B00FF */ andi $t3, $s4, 0xff +/* 108D04 7F0D41D4 2DAE0001 */ sltiu $t6, $t5, 1 +/* 108D08 7F0D41D8 000EC900 */ sll $t9, $t6, 4 +/* 108D0C 7F0D41DC 3978007F */ xori $t8, $t3, 0x7f +/* 108D10 7F0D41E0 2F180001 */ sltiu $t8, $t8, 1 +/* 108D14 7F0D41E4 322C0001 */ andi $t4, $s1, 1 +/* 108D18 7F0D41E8 01998825 */ or $s1, $t4, $t9 +/* 108D1C 7F0D41EC 00186880 */ sll $t5, $t8, 2 +/* 108D20 7F0D41F0 AFAE0048 */ sw $t6, 0x48($sp) +/* 108D24 7F0D41F4 2D690001 */ sltiu $t1, $t3, 1 +/* 108D28 7F0D41F8 316A00A8 */ andi $t2, $t3, 0xa8 +/* 108D2C 7F0D41FC 014D7025 */ or $t6, $t2, $t5 +/* 108D30 7F0D4200 0009C980 */ sll $t9, $t1, 6 +/* 108D34 7F0D4204 01D97825 */ or $t7, $t6, $t9 +/* 108D38 7F0D4208 36280002 */ ori $t0, $s1, 2 +/* 108D3C 7F0D420C 010F8825 */ or $s1, $t0, $t7 +/* 108D40 7F0D4210 322800FF */ andi $t0, $s1, 0xff +/* 108D44 7F0D4214 01008825 */ move $s1, $t0 +/* 108D48 7F0D4218 AFA90044 */ sw $t1, 0x44($sp) +/* 108D4C 7F0D421C 10003977 */ b .L7F0E27FC +/* 108D50 7F0D4220 0160A025 */ move $s4, $t3 +spectrum_op_16: +/* 108D54 7F0D4224 8FAB028C */ lw $t3, 0x28c($sp) +/* 108D58 7F0D4228 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 108D5C 7F0D422C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 108D60 7F0D4230 97B80298 */ lhu $t8, 0x298($sp) +/* 108D64 7F0D4234 25690007 */ addiu $t1, $t3, 7 +/* 108D68 7F0D4238 AFA9028C */ sw $t1, 0x28c($sp) +/* 108D6C 7F0D423C 030A6821 */ addu $t5, $t8, $t2 +/* 108D70 7F0D4240 91B40000 */ lbu $s4, ($t5) +/* 108D74 7F0D4244 270C0001 */ addiu $t4, $t8, 1 +/* 108D78 7F0D4248 1000396C */ b .L7F0E27FC +/* 108D7C 7F0D424C A7AC0298 */ sh $t4, 0x298($sp) +spectrum_op_17: +/* 108D80 7F0D4250 001079C3 */ sra $t7, $s0, 7 +/* 108D84 7F0D4254 00104040 */ sll $t0, $s0, 1 +/* 108D88 7F0D4258 322B0001 */ andi $t3, $s1, 1 +/* 108D8C 7F0D425C 010B8025 */ or $s0, $t0, $t3 +/* 108D90 7F0D4260 8FAE028C */ lw $t6, 0x28c($sp) +/* 108D94 7F0D4264 320900FF */ andi $t1, $s0, 0xff +/* 108D98 7F0D4268 312D0028 */ andi $t5, $t1, 0x28 +/* 108D9C 7F0D426C 322A00C4 */ andi $t2, $s1, 0xc4 +/* 108DA0 7F0D4270 014DC025 */ or $t8, $t2, $t5 +/* 108DA4 7F0D4274 030F8825 */ or $s1, $t8, $t7 +/* 108DA8 7F0D4278 25D90004 */ addiu $t9, $t6, 4 +/* 108DAC 7F0D427C 322E00FF */ andi $t6, $s1, 0xff +/* 108DB0 7F0D4280 AFB9028C */ sw $t9, 0x28c($sp) +/* 108DB4 7F0D4284 AFAF0270 */ sw $t7, 0x270($sp) +/* 108DB8 7F0D4288 01208025 */ move $s0, $t1 +/* 108DBC 7F0D428C 1000395B */ b .L7F0E27FC +/* 108DC0 7F0D4290 01C08825 */ move $s1, $t6 +spectrum_op_18: +/* 108DC4 7F0D4294 8FB9028C */ lw $t9, 0x28c($sp) +/* 108DC8 7F0D4298 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 108DCC 7F0D429C 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 108DD0 7F0D42A0 97A80298 */ lhu $t0, 0x298($sp) +/* 108DD4 7F0D42A4 272F0007 */ addiu $t7, $t9, 7 +/* 108DD8 7F0D42A8 AFAF028C */ sw $t7, 0x28c($sp) +/* 108DDC 7F0D42AC 010B4821 */ addu $t1, $t0, $t3 +/* 108DE0 7F0D42B0 812A0000 */ lb $t2, ($t1) +/* 108DE4 7F0D42B4 25EE0005 */ addiu $t6, $t7, 5 +/* 108DE8 7F0D42B8 AFAE028C */ sw $t6, 0x28c($sp) +/* 108DEC 7F0D42BC 010A6821 */ addu $t5, $t0, $t2 +/* 108DF0 7F0D42C0 25B80001 */ addiu $t8, $t5, 1 +/* 108DF4 7F0D42C4 A7B80298 */ sh $t8, 0x298($sp) +/* 108DF8 7F0D42C8 1000394C */ b .L7F0E27FC +/* 108DFC 7F0D42CC AFAA026C */ sw $t2, 0x26c($sp) +spectrum_op_19: +/* 108E00 7F0D42D0 8FB9028C */ lw $t9, 0x28c($sp) +/* 108E04 7F0D42D4 93AB0287 */ lbu $t3, 0x287($sp) +/* 108E08 7F0D42D8 93A80287 */ lbu $t0, 0x287($sp) +/* 108E0C 7F0D42DC 272F000B */ addiu $t7, $t9, 0xb +/* 108E10 7F0D42E0 1560001C */ bnez $t3, .L7F0D4354 +/* 108E14 7F0D42E4 AFAF028C */ sw $t7, 0x28c($sp) +/* 108E18 7F0D42E8 02F54821 */ addu $t1, $s7, $s5 +/* 108E1C 7F0D42EC 3128FFFF */ andi $t0, $t1, 0xffff +/* 108E20 7F0D42F0 00085202 */ srl $t2, $t0, 8 +/* 108E24 7F0D42F4 3158FFFF */ andi $t8, $t2, 0xffff +/* 108E28 7F0D42F8 32CD000F */ andi $t5, $s6, 0xf +/* 108E2C 7F0D42FC 030D6021 */ addu $t4, $t8, $t5 +/* 108E30 7F0D4300 328E000F */ andi $t6, $s4, 0xf +/* 108E34 7F0D4304 018EC821 */ addu $t9, $t4, $t6 +/* 108E38 7F0D4308 A7A9026A */ sh $t1, 0x26a($sp) +/* 108E3C 7F0D430C 2401000F */ li $at, 15 +/* 108E40 7F0D4310 0039782A */ slt $t7, $at, $t9 +/* 108E44 7F0D4314 93B7026B */ lbu $s7, 0x26b($sp) +/* 108E48 7F0D4318 02D4C021 */ addu $t8, $s6, $s4 +/* 108E4C 7F0D431C 0158C821 */ addu $t9, $t2, $t8 +/* 108E50 7F0D4320 A7AA026A */ sh $t2, 0x26a($sp) +/* 108E54 7F0D4324 A7B9026A */ sh $t9, 0x26a($sp) +/* 108E58 7F0D4328 93B6026B */ lbu $s6, 0x26b($sp) +/* 108E5C 7F0D432C 000F5900 */ sll $t3, $t7, 4 +/* 108E60 7F0D4330 322900C4 */ andi $t1, $s1, 0xc4 +/* 108E64 7F0D4334 01694025 */ or $t0, $t3, $t1 +/* 108E68 7F0D4338 00197A03 */ sra $t7, $t9, 8 +/* 108E6C 7F0D433C 32CE0028 */ andi $t6, $s6, 0x28 +/* 108E70 7F0D4340 01CF5825 */ or $t3, $t6, $t7 +/* 108E74 7F0D4344 010B8825 */ or $s1, $t0, $t3 +/* 108E78 7F0D4348 322900FF */ andi $t1, $s1, 0xff +/* 108E7C 7F0D434C 1000392B */ b .L7F0E27FC +/* 108E80 7F0D4350 01208825 */ move $s1, $t1 +.L7F0D4354: +/* 108E84 7F0D4354 24010001 */ li $at, 1 +/* 108E88 7F0D4358 15010004 */ bne $t0, $at, .L7F0D436C +/* 108E8C 7F0D435C 0014CA00 */ sll $t9, $s4, 8 +/* 108E90 7F0D4360 97AA0296 */ lhu $t2, 0x296($sp) +/* 108E94 7F0D4364 10000003 */ b .L7F0D4374 +/* 108E98 7F0D4368 AFAA0264 */ sw $t2, 0x264($sp) +.L7F0D436C: +/* 108E9C 7F0D436C 97AD0294 */ lhu $t5, 0x294($sp) +/* 108EA0 7F0D4370 AFAD0264 */ sw $t5, 0x264($sp) +.L7F0D4374: +/* 108EA4 7F0D4374 8FB80264 */ lw $t8, 0x264($sp) +/* 108EA8 7F0D4378 03357025 */ or $t6, $t9, $s5 +/* 108EAC 7F0D437C 24010FFF */ li $at, 4095 +/* 108EB0 7F0D4380 330C0FFF */ andi $t4, $t8, 0xfff +/* 108EB4 7F0D4384 018E7821 */ addu $t7, $t4, $t6 +/* 108EB8 7F0D4388 002F582B */ sltu $t3, $at, $t7 +/* 108EBC 7F0D438C 93AE0287 */ lbu $t6, 0x287($sp) +/* 108EC0 7F0D4390 000B4900 */ sll $t1, $t3, 4 +/* 108EC4 7F0D4394 322800C4 */ andi $t0, $s1, 0xc4 +/* 108EC8 7F0D4398 00146A00 */ sll $t5, $s4, 8 +/* 108ECC 7F0D439C 01B5C825 */ or $t9, $t5, $s5 +/* 108ED0 7F0D43A0 01098825 */ or $s1, $t0, $t1 +/* 108ED4 7F0D43A4 322A00FF */ andi $t2, $s1, 0xff +/* 108ED8 7F0D43A8 24010001 */ li $at, 1 +/* 108EDC 7F0D43AC 03196021 */ addu $t4, $t8, $t9 +/* 108EE0 7F0D43B0 AFAC0264 */ sw $t4, 0x264($sp) +/* 108EE4 7F0D43B4 15C10003 */ bne $t6, $at, .L7F0D43C4 +/* 108EE8 7F0D43B8 01408825 */ move $s1, $t2 +/* 108EEC 7F0D43BC 10000003 */ b .L7F0D43CC +/* 108EF0 7F0D43C0 A7AC0296 */ sh $t4, 0x296($sp) +.L7F0D43C4: +/* 108EF4 7F0D43C4 8FAF0264 */ lw $t7, 0x264($sp) +/* 108EF8 7F0D43C8 A7AF0294 */ sh $t7, 0x294($sp) +.L7F0D43CC: +/* 108EFC 7F0D43CC 8FAB0264 */ lw $t3, 0x264($sp) +/* 108F00 7F0D43D0 000B4202 */ srl $t0, $t3, 8 +/* 108F04 7F0D43D4 31090028 */ andi $t1, $t0, 0x28 +/* 108F08 7F0D43D8 000B5402 */ srl $t2, $t3, 0x10 +/* 108F0C 7F0D43DC 012A6825 */ or $t5, $t1, $t2 +/* 108F10 7F0D43E0 022D8825 */ or $s1, $s1, $t5 +/* 108F14 7F0D43E4 323800FF */ andi $t8, $s1, 0xff +/* 108F18 7F0D43E8 10003904 */ b .L7F0E27FC +/* 108F1C 7F0D43EC 03008825 */ move $s1, $t8 +spectrum_op_1A: +/* 108F20 7F0D43F0 8FB9028C */ lw $t9, 0x28c($sp) +/* 108F24 7F0D43F4 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 108F28 7F0D43F8 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 108F2C 7F0D43FC 00146200 */ sll $t4, $s4, 8 +/* 108F30 7F0D4400 01957825 */ or $t7, $t4, $s5 +/* 108F34 7F0D4404 272E0007 */ addiu $t6, $t9, 7 +/* 108F38 7F0D4408 AFAE028C */ sw $t6, 0x28c($sp) +/* 108F3C 7F0D440C 01E85821 */ addu $t3, $t7, $t0 +/* 108F40 7F0D4410 100038FA */ b .L7F0E27FC +/* 108F44 7F0D4414 91700000 */ lbu $s0, ($t3) +spectrum_op_1B: +/* 108F48 7F0D4418 8FA9028C */ lw $t1, 0x28c($sp) +/* 108F4C 7F0D441C 2EAD0001 */ sltiu $t5, $s5, 1 +/* 108F50 7F0D4420 26B5FFFF */ addiu $s5, $s5, -1 +/* 108F54 7F0D4424 32B800FF */ andi $t8, $s5, 0xff +/* 108F58 7F0D4428 252A0006 */ addiu $t2, $t1, 6 +/* 108F5C 7F0D442C AFAA028C */ sw $t2, 0x28c($sp) +/* 108F60 7F0D4430 0300A825 */ move $s5, $t8 +/* 108F64 7F0D4434 11A038F1 */ beqz $t5, .L7F0E27FC +/* 108F68 7F0D4438 AFAD0048 */ sw $t5, 0x48($sp) +/* 108F6C 7F0D443C 2694FFFF */ addiu $s4, $s4, -1 +/* 108F70 7F0D4440 328E00FF */ andi $t6, $s4, 0xff +/* 108F74 7F0D4444 100038ED */ b .L7F0E27FC +/* 108F78 7F0D4448 01C0A025 */ move $s4, $t6 +spectrum_op_1C: +/* 108F7C 7F0D444C 26B50001 */ addiu $s5, $s5, 1 +/* 108F80 7F0D4450 32A800FF */ andi $t0, $s5, 0xff +/* 108F84 7F0D4454 8FAC028C */ lw $t4, 0x28c($sp) +/* 108F88 7F0D4458 3109000F */ andi $t1, $t0, 0xf +/* 108F8C 7F0D445C 2D2A0001 */ sltiu $t2, $t1, 1 +/* 108F90 7F0D4460 0100A825 */ move $s5, $t0 +/* 108F94 7F0D4464 2D0B0001 */ sltiu $t3, $t0, 1 +/* 108F98 7F0D4468 311800A8 */ andi $t8, $t0, 0xa8 +/* 108F9C 7F0D446C 322D0001 */ andi $t5, $s1, 1 +/* 108FA0 7F0D4470 01B8C825 */ or $t9, $t5, $t8 +/* 108FA4 7F0D4474 3AA90080 */ xori $t1, $s5, 0x80 +/* 108FA8 7F0D4478 000A7100 */ sll $t6, $t2, 4 +/* 108FAC 7F0D447C 258F0004 */ addiu $t7, $t4, 4 +/* 108FB0 7F0D4480 032E6025 */ or $t4, $t9, $t6 +/* 108FB4 7F0D4484 2D290001 */ sltiu $t1, $t1, 1 +/* 108FB8 7F0D4488 000B4180 */ sll $t0, $t3, 6 +/* 108FBC 7F0D448C AFAB0044 */ sw $t3, 0x44($sp) +/* 108FC0 7F0D4490 01885825 */ or $t3, $t4, $t0 +/* 108FC4 7F0D4494 00096880 */ sll $t5, $t1, 2 +/* 108FC8 7F0D4498 016D8825 */ or $s1, $t3, $t5 +/* 108FCC 7F0D449C 323800FF */ andi $t8, $s1, 0xff +/* 108FD0 7F0D44A0 AFAF028C */ sw $t7, 0x28c($sp) +/* 108FD4 7F0D44A4 03008825 */ move $s1, $t8 +/* 108FD8 7F0D44A8 100038D4 */ b .L7F0E27FC +/* 108FDC 7F0D44AC AFAA0048 */ sw $t2, 0x48($sp) +spectrum_op_1D: +/* 108FE0 7F0D44B0 8FAA028C */ lw $t2, 0x28c($sp) +/* 108FE4 7F0D44B4 32AE000F */ andi $t6, $s5, 0xf +/* 108FE8 7F0D44B8 26B5FFFF */ addiu $s5, $s5, -1 +/* 108FEC 7F0D44BC 25590004 */ addiu $t9, $t2, 4 +/* 108FF0 7F0D44C0 AFB9028C */ sw $t9, 0x28c($sp) +/* 108FF4 7F0D44C4 32AD00FF */ andi $t5, $s5, 0xff +/* 108FF8 7F0D44C8 2DCF0001 */ sltiu $t7, $t6, 1 +/* 108FFC 7F0D44CC 000F4100 */ sll $t0, $t7, 4 +/* 109000 7F0D44D0 39B9007F */ xori $t9, $t5, 0x7f +/* 109004 7F0D44D4 2F390001 */ sltiu $t9, $t9, 1 +/* 109008 7F0D44D8 322C0001 */ andi $t4, $s1, 1 +/* 10900C 7F0D44DC 01888825 */ or $s1, $t4, $t0 +/* 109010 7F0D44E0 00197080 */ sll $t6, $t9, 2 +/* 109014 7F0D44E4 AFAF0048 */ sw $t7, 0x48($sp) +/* 109018 7F0D44E8 2DB80001 */ sltiu $t8, $t5, 1 +/* 10901C 7F0D44EC 31AA00A8 */ andi $t2, $t5, 0xa8 +/* 109020 7F0D44F0 014E7825 */ or $t7, $t2, $t6 +/* 109024 7F0D44F4 00184180 */ sll $t0, $t8, 6 +/* 109028 7F0D44F8 01E84825 */ or $t1, $t7, $t0 +/* 10902C 7F0D44FC 362B0002 */ ori $t3, $s1, 2 +/* 109030 7F0D4500 01698825 */ or $s1, $t3, $t1 +/* 109034 7F0D4504 322B00FF */ andi $t3, $s1, 0xff +/* 109038 7F0D4508 01608825 */ move $s1, $t3 +/* 10903C 7F0D450C AFB80044 */ sw $t8, 0x44($sp) +/* 109040 7F0D4510 100038BA */ b .L7F0E27FC +/* 109044 7F0D4514 01A0A825 */ move $s5, $t5 +spectrum_op_1E: +/* 109048 7F0D4518 8FAD028C */ lw $t5, 0x28c($sp) +/* 10904C 7F0D451C 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 109050 7F0D4520 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 109054 7F0D4524 97B90298 */ lhu $t9, 0x298($sp) +/* 109058 7F0D4528 25B80007 */ addiu $t8, $t5, 7 +/* 10905C 7F0D452C AFB8028C */ sw $t8, 0x28c($sp) +/* 109060 7F0D4530 032A7021 */ addu $t6, $t9, $t2 +/* 109064 7F0D4534 91D50000 */ lbu $s5, ($t6) +/* 109068 7F0D4538 272C0001 */ addiu $t4, $t9, 1 +/* 10906C 7F0D453C 100038AF */ b .L7F0E27FC +/* 109070 7F0D4540 A7AC0298 */ sh $t4, 0x298($sp) +spectrum_op_1F: +/* 109074 7F0D4544 32090001 */ andi $t1, $s0, 1 +/* 109078 7F0D4548 00105843 */ sra $t3, $s0, 1 +/* 10907C 7F0D454C 001169C0 */ sll $t5, $s1, 7 +/* 109080 7F0D4550 016D8025 */ or $s0, $t3, $t5 +/* 109084 7F0D4554 8FAF028C */ lw $t7, 0x28c($sp) +/* 109088 7F0D4558 321800FF */ andi $t8, $s0, 0xff +/* 10908C 7F0D455C 330E0028 */ andi $t6, $t8, 0x28 +/* 109090 7F0D4560 322A00C4 */ andi $t2, $s1, 0xc4 +/* 109094 7F0D4564 014EC825 */ or $t9, $t2, $t6 +/* 109098 7F0D4568 03298825 */ or $s1, $t9, $t1 +/* 10909C 7F0D456C 25E80004 */ addiu $t0, $t7, 4 +/* 1090A0 7F0D4570 322F00FF */ andi $t7, $s1, 0xff +/* 1090A4 7F0D4574 AFA8028C */ sw $t0, 0x28c($sp) +/* 1090A8 7F0D4578 AFA90260 */ sw $t1, 0x260($sp) +/* 1090AC 7F0D457C 03008025 */ move $s0, $t8 +/* 1090B0 7F0D4580 1000389E */ b .L7F0E27FC +/* 1090B4 7F0D4584 01E08825 */ move $s1, $t7 +spectrum_op_20: +/* 1090B8 7F0D4588 8FA8028C */ lw $t0, 0x28c($sp) +/* 1090BC 7F0D458C 322B0040 */ andi $t3, $s1, 0x40 +/* 1090C0 7F0D4590 97AA0298 */ lhu $t2, 0x298($sp) +/* 1090C4 7F0D4594 25090007 */ addiu $t1, $t0, 7 +/* 1090C8 7F0D4598 11600005 */ beqz $t3, .L7F0D45B0 +/* 1090CC 7F0D459C AFA9028C */ sw $t1, 0x28c($sp) +/* 1090D0 7F0D45A0 97AD0298 */ lhu $t5, 0x298($sp) +/* 1090D4 7F0D45A4 25B80001 */ addiu $t8, $t5, 1 +/* 1090D8 7F0D45A8 10003894 */ b .L7F0E27FC +/* 1090DC 7F0D45AC A7B80298 */ sh $t8, 0x298($sp) +.L7F0D45B0: +/* 1090E0 7F0D45B0 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1090E4 7F0D45B4 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1090E8 7F0D45B8 8FA9028C */ lw $t1, 0x28c($sp) +/* 1090EC 7F0D45BC 014EC821 */ addu $t9, $t2, $t6 +/* 1090F0 7F0D45C0 832C0000 */ lb $t4, ($t9) +/* 1090F4 7F0D45C4 252B0005 */ addiu $t3, $t1, 5 +/* 1090F8 7F0D45C8 AFAB028C */ sw $t3, 0x28c($sp) +/* 1090FC 7F0D45CC 014C7821 */ addu $t7, $t2, $t4 +/* 109100 7F0D45D0 25E80001 */ addiu $t0, $t7, 1 +/* 109104 7F0D45D4 A7A80298 */ sh $t0, 0x298($sp) +/* 109108 7F0D45D8 10003888 */ b .L7F0E27FC +/* 10910C 7F0D45DC AFAC025C */ sw $t4, 0x25c($sp) +spectrum_op_21: +/* 109110 7F0D45E0 8FAD028C */ lw $t5, 0x28c($sp) +/* 109114 7F0D45E4 93AE0287 */ lbu $t6, 0x287($sp) +/* 109118 7F0D45E8 97B90298 */ lhu $t9, 0x298($sp) +/* 10911C 7F0D45EC 25B8000A */ addiu $t8, $t5, 0xa +/* 109120 7F0D45F0 15C0000D */ bnez $t6, .L7F0D4628 +/* 109124 7F0D45F4 AFB8028C */ sw $t8, 0x28c($sp) +/* 109128 7F0D45F8 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10912C 7F0D45FC 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 109130 7F0D4600 272B0001 */ addiu $t3, $t9, 1 +/* 109134 7F0D4604 3168FFFF */ andi $t0, $t3, 0xffff +/* 109138 7F0D4608 032A6021 */ addu $t4, $t9, $t2 +/* 10913C 7F0D460C 91970000 */ lbu $s7, ($t4) +/* 109140 7F0D4610 A7AB0298 */ sh $t3, 0x298($sp) +/* 109144 7F0D4614 010A4821 */ addu $t1, $t0, $t2 +/* 109148 7F0D4618 91360000 */ lbu $s6, ($t1) +/* 10914C 7F0D461C 256D0001 */ addiu $t5, $t3, 1 +/* 109150 7F0D4620 10003876 */ b .L7F0E27FC +/* 109154 7F0D4624 A7AD0298 */ sh $t5, 0x298($sp) +.L7F0D4628: +/* 109158 7F0D4628 93B80287 */ lbu $t8, 0x287($sp) +/* 10915C 7F0D462C 24010001 */ li $at, 1 +/* 109160 7F0D4630 97AE0298 */ lhu $t6, 0x298($sp) +/* 109164 7F0D4634 1701000B */ bne $t8, $at, .L7F0D4664 +/* 109168 7F0D4638 97AD0298 */ lhu $t5, 0x298($sp) +/* 10916C 7F0D463C 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 109170 7F0D4640 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 109174 7F0D4644 018E5021 */ addu $t2, $t4, $t6 +/* 109178 7F0D4648 91490001 */ lbu $t1, 1($t2) +/* 10917C 7F0D464C 01CCC821 */ addu $t9, $t6, $t4 +/* 109180 7F0D4650 93280000 */ lbu $t0, ($t9) +/* 109184 7F0D4654 00097A00 */ sll $t7, $t1, 8 +/* 109188 7F0D4658 010F5825 */ or $t3, $t0, $t7 +/* 10918C 7F0D465C 1000000A */ b .L7F0D4688 +/* 109190 7F0D4660 A7AB0296 */ sh $t3, 0x296($sp) +.L7F0D4664: +/* 109194 7F0D4664 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 109198 7F0D4668 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10919C 7F0D466C 030D7021 */ addu $t6, $t8, $t5 +/* 1091A0 7F0D4670 91CA0001 */ lbu $t2, 1($t6) +/* 1091A4 7F0D4674 01B8C821 */ addu $t9, $t5, $t8 +/* 1091A8 7F0D4678 932C0000 */ lbu $t4, ($t9) +/* 1091AC 7F0D467C 000A4A00 */ sll $t1, $t2, 8 +/* 1091B0 7F0D4680 01894025 */ or $t0, $t4, $t1 +/* 1091B4 7F0D4684 A7A80294 */ sh $t0, 0x294($sp) +.L7F0D4688: +/* 1091B8 7F0D4688 97AF0298 */ lhu $t7, 0x298($sp) +/* 1091BC 7F0D468C 25EB0002 */ addiu $t3, $t7, 2 +/* 1091C0 7F0D4690 1000385A */ b .L7F0E27FC +/* 1091C4 7F0D4694 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_22: +/* 1091C8 7F0D4698 8FB9028C */ lw $t9, 0x28c($sp) +/* 1091CC 7F0D469C 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1091D0 7F0D46A0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1091D4 7F0D46A4 97AD0298 */ lhu $t5, 0x298($sp) +/* 1091D8 7F0D46A8 27380010 */ addiu $t8, $t9, 0x10 +/* 1091DC 7F0D46AC AFB8028C */ sw $t8, 0x28c($sp) +/* 1091E0 7F0D46B0 01CD4821 */ addu $t1, $t6, $t5 +/* 1091E4 7F0D46B4 91280001 */ lbu $t0, 1($t1) +/* 1091E8 7F0D46B8 01AE5021 */ addu $t2, $t5, $t6 +/* 1091EC 7F0D46BC 914C0000 */ lbu $t4, ($t2) +/* 1091F0 7F0D46C0 93B80287 */ lbu $t8, 0x287($sp) +/* 1091F4 7F0D46C4 00087A00 */ sll $t7, $t0, 8 +/* 1091F8 7F0D46C8 25B90002 */ addiu $t9, $t5, 2 +/* 1091FC 7F0D46CC 018F5825 */ or $t3, $t4, $t7 +/* 109200 7F0D46D0 A7AB025A */ sh $t3, 0x25a($sp) +/* 109204 7F0D46D4 17000054 */ bnez $t8, .L7F0D4828 +/* 109208 7F0D46D8 A7B90298 */ sh $t9, 0x298($sp) +/* 10920C 7F0D46DC 316AFFFF */ andi $t2, $t3, 0xffff +/* 109210 7F0D46E0 29415B00 */ slti $at, $t2, 0x5b00 +/* 109214 7F0D46E4 14200006 */ bnez $at, .L7F0D4700 +/* 109218 7F0D46E8 97A8025A */ lhu $t0, 0x25a($sp) +/* 10921C 7F0D46EC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 109220 7F0D46F0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 109224 7F0D46F4 01CA4821 */ addu $t1, $t6, $t2 +/* 109228 7F0D46F8 1000001F */ b .L7F0D4778 +/* 10922C 7F0D46FC A1370000 */ sb $s7, ($t1) +.L7F0D4700: +/* 109230 7F0D4700 29015800 */ slti $at, $t0, 0x5800 +/* 109234 7F0D4704 1420000C */ bnez $at, .L7F0D4738 +/* 109238 7F0D4708 97AE025A */ lhu $t6, 0x25a($sp) +/* 10923C 7F0D470C 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 109240 7F0D4710 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 109244 7F0D4714 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 109248 7F0D4718 240B0001 */ li $t3, 1 +/* 10924C 7F0D471C 01887821 */ addu $t7, $t4, $t0 +/* 109250 7F0D4720 A1F70000 */ sb $s7, ($t7) +/* 109254 7F0D4724 97B9025A */ lhu $t9, 0x25a($sp) +/* 109258 7F0D4728 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 10925C 7F0D472C 01B9C021 */ addu $t8, $t5, $t9 +/* 109260 7F0D4730 10000011 */ b .L7F0D4778 +/* 109264 7F0D4734 A30BA800 */ sb $t3, -0x5800($t8) +.L7F0D4738: +/* 109268 7F0D4738 29C14000 */ slti $at, $t6, 0x4000 +/* 10926C 7F0D473C 1420000E */ bnez $at, .L7F0D4778 +/* 109270 7F0D4740 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 109274 7F0D4744 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 109278 7F0D4748 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 10927C 7F0D474C 240C0001 */ li $t4, 1 +/* 109280 7F0D4750 014E4821 */ addu $t1, $t2, $t6 +/* 109284 7F0D4754 A1370000 */ sb $s7, ($t1) +/* 109288 7F0D4758 97A8025A */ lhu $t0, 0x25a($sp) +/* 10928C 7F0D475C 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 109290 7F0D4760 310F1800 */ andi $t7, $t0, 0x1800 +/* 109294 7F0D4764 000F68C3 */ sra $t5, $t7, 3 +/* 109298 7F0D4768 311900FF */ andi $t9, $t0, 0xff +/* 10929C 7F0D476C 01B95825 */ or $t3, $t5, $t9 +/* 1092A0 7F0D4770 030B5021 */ addu $t2, $t8, $t3 +/* 1092A4 7F0D4774 A14C0000 */ sb $t4, ($t2) +.L7F0D4778: +/* 1092A8 7F0D4778 97AE025A */ lhu $t6, 0x25a($sp) +/* 1092AC 7F0D477C 97AD025A */ lhu $t5, 0x25a($sp) +/* 1092B0 7F0D4780 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 1092B4 7F0D4784 25C90001 */ addiu $t1, $t6, 1 +/* 1092B8 7F0D4788 29215B00 */ slti $at, $t1, 0x5b00 +/* 1092BC 7F0D478C 14200005 */ bnez $at, .L7F0D47A4 +/* 1092C0 7F0D4790 25B90001 */ addiu $t9, $t5, 1 +/* 1092C4 7F0D4794 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 1092C8 7F0D4798 01EE4021 */ addu $t0, $t7, $t6 +/* 1092CC 7F0D479C 10003817 */ b .L7F0E27FC +/* 1092D0 7F0D47A0 A1160001 */ sb $s6, 1($t0) +.L7F0D47A4: +/* 1092D4 7F0D47A4 2B215800 */ slti $at, $t9, 0x5800 +/* 1092D8 7F0D47A8 1420000C */ bnez $at, .L7F0D47DC +/* 1092DC 7F0D47AC 97AE025A */ lhu $t6, 0x25a($sp) +/* 1092E0 7F0D47B0 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 1092E4 7F0D47B4 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 1092E8 7F0D47B8 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 1092EC 7F0D47BC 240C0001 */ li $t4, 1 +/* 1092F0 7F0D47C0 030D5821 */ addu $t3, $t8, $t5 +/* 1092F4 7F0D47C4 A1760001 */ sb $s6, 1($t3) +/* 1092F8 7F0D47C8 97A9025A */ lhu $t1, 0x25a($sp) +/* 1092FC 7F0D47CC 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 109300 7F0D47D0 01497821 */ addu $t7, $t2, $t1 +/* 109304 7F0D47D4 10003809 */ b .L7F0E27FC +/* 109308 7F0D47D8 A1ECA801 */ sb $t4, -0x57ff($t7) +.L7F0D47DC: +/* 10930C 7F0D47DC 25C80001 */ addiu $t0, $t6, 1 +/* 109310 7F0D47E0 29014000 */ slti $at, $t0, 0x4000 +/* 109314 7F0D47E4 14203805 */ bnez $at, .L7F0E27FC +/* 109318 7F0D47E8 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10931C 7F0D47EC 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 109320 7F0D47F0 240D0001 */ li $t5, 1 +/* 109324 7F0D47F4 032EC021 */ addu $t8, $t9, $t6 +/* 109328 7F0D47F8 A3160001 */ sb $s6, 1($t8) +/* 10932C 7F0D47FC 97AB025A */ lhu $t3, 0x25a($sp) +/* 109330 7F0D4800 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 109334 7F0D4804 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 109338 7F0D4808 256A0001 */ addiu $t2, $t3, 1 +/* 10933C 7F0D480C 31491800 */ andi $t1, $t2, 0x1800 +/* 109340 7F0D4810 000960C3 */ sra $t4, $t1, 3 +/* 109344 7F0D4814 314F00FF */ andi $t7, $t2, 0xff +/* 109348 7F0D4818 018F4025 */ or $t0, $t4, $t7 +/* 10934C 7F0D481C 03287021 */ addu $t6, $t9, $t0 +/* 109350 7F0D4820 100037F6 */ b .L7F0E27FC +/* 109354 7F0D4824 A1CD0000 */ sb $t5, ($t6) +.L7F0D4828: +/* 109358 7F0D4828 93B80287 */ lbu $t8, 0x287($sp) +/* 10935C 7F0D482C 24010001 */ li $at, 1 +/* 109360 7F0D4830 97AB025A */ lhu $t3, 0x25a($sp) +/* 109364 7F0D4834 1701005B */ bne $t8, $at, .L7F0D49A4 +/* 109368 7F0D4838 29615B00 */ slti $at, $t3, 0x5b00 +/* 10936C 7F0D483C 14200007 */ bnez $at, .L7F0D485C +/* 109370 7F0D4840 97AF025A */ lhu $t7, 0x25a($sp) +/* 109374 7F0D4844 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 109378 7F0D4848 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10937C 7F0D484C 97A90296 */ lhu $t1, 0x296($sp) +/* 109380 7F0D4850 014B6021 */ addu $t4, $t2, $t3 +/* 109384 7F0D4854 10000021 */ b .L7F0D48DC +/* 109388 7F0D4858 A1890000 */ sb $t1, ($t4) +.L7F0D485C: +/* 10938C 7F0D485C 29E15800 */ slti $at, $t7, 0x5800 +/* 109390 7F0D4860 1420000D */ bnez $at, .L7F0D4898 +/* 109394 7F0D4864 97A9025A */ lhu $t1, 0x25a($sp) +/* 109398 7F0D4868 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10939C 7F0D486C 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1093A0 7F0D4870 97B90296 */ lhu $t9, 0x296($sp) +/* 1093A4 7F0D4874 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 1093A8 7F0D4878 010F6821 */ addu $t5, $t0, $t7 +/* 1093AC 7F0D487C A1B90000 */ sb $t9, ($t5) +/* 1093B0 7F0D4880 97AA025A */ lhu $t2, 0x25a($sp) +/* 1093B4 7F0D4884 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 1093B8 7F0D4888 240E0001 */ li $t6, 1 +/* 1093BC 7F0D488C 030A5821 */ addu $t3, $t8, $t2 +/* 1093C0 7F0D4890 10000012 */ b .L7F0D48DC +/* 1093C4 7F0D4894 A16EA800 */ sb $t6, -0x5800($t3) +.L7F0D4898: +/* 1093C8 7F0D4898 29214000 */ slti $at, $t1, 0x4000 +/* 1093CC 7F0D489C 1420000F */ bnez $at, .L7F0D48DC +/* 1093D0 7F0D48A0 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1093D4 7F0D48A4 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1093D8 7F0D48A8 97AC0296 */ lhu $t4, 0x296($sp) +/* 1093DC 7F0D48AC 24190001 */ li $t9, 1 +/* 1093E0 7F0D48B0 01097821 */ addu $t7, $t0, $t1 +/* 1093E4 7F0D48B4 A1EC0000 */ sb $t4, ($t7) +/* 1093E8 7F0D48B8 97AD025A */ lhu $t5, 0x25a($sp) +/* 1093EC 7F0D48BC 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 1093F0 7F0D48C0 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 1093F4 7F0D48C4 31B81800 */ andi $t8, $t5, 0x1800 +/* 1093F8 7F0D48C8 001850C3 */ sra $t2, $t8, 3 +/* 1093FC 7F0D48CC 31AE00FF */ andi $t6, $t5, 0xff +/* 109400 7F0D48D0 014E5825 */ or $t3, $t2, $t6 +/* 109404 7F0D48D4 010B4821 */ addu $t1, $t0, $t3 +/* 109408 7F0D48D8 A1390000 */ sb $t9, ($t1) +.L7F0D48DC: +/* 10940C 7F0D48DC 97AC025A */ lhu $t4, 0x25a($sp) +/* 109410 7F0D48E0 97A8025A */ lhu $t0, 0x25a($sp) +/* 109414 7F0D48E4 97B80296 */ lhu $t8, 0x296($sp) +/* 109418 7F0D48E8 258F0001 */ addiu $t7, $t4, 1 +/* 10941C 7F0D48EC 29E15B00 */ slti $at, $t7, 0x5b00 +/* 109420 7F0D48F0 14200007 */ bnez $at, .L7F0D4910 +/* 109424 7F0D48F4 250B0001 */ addiu $t3, $t0, 1 +/* 109428 7F0D48F8 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10942C 7F0D48FC 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 109430 7F0D4900 00186A03 */ sra $t5, $t8, 8 +/* 109434 7F0D4904 014C7021 */ addu $t6, $t2, $t4 +/* 109438 7F0D4908 100037BC */ b .L7F0E27FC +/* 10943C 7F0D490C A1CD0001 */ sb $t5, 1($t6) +.L7F0D4910: +/* 109440 7F0D4910 29615800 */ slti $at, $t3, 0x5800 +/* 109444 7F0D4914 1420000E */ bnez $at, .L7F0D4950 +/* 109448 7F0D4918 97AB025A */ lhu $t3, 0x25a($sp) +/* 10944C 7F0D491C 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 109450 7F0D4920 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 109454 7F0D4924 97B90296 */ lhu $t9, 0x296($sp) +/* 109458 7F0D4928 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 10945C 7F0D492C 01E8C021 */ addu $t8, $t7, $t0 +/* 109460 7F0D4930 00194A03 */ sra $t1, $t9, 8 +/* 109464 7F0D4934 A3090001 */ sb $t1, 1($t8) +/* 109468 7F0D4938 97AD025A */ lhu $t5, 0x25a($sp) +/* 10946C 7F0D493C 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 109470 7F0D4940 240A0001 */ li $t2, 1 +/* 109474 7F0D4944 018D7021 */ addu $t6, $t4, $t5 +/* 109478 7F0D4948 100037AC */ b .L7F0E27FC +/* 10947C 7F0D494C A1CAA801 */ sb $t2, -0x57ff($t6) +.L7F0D4950: +/* 109480 7F0D4950 25790001 */ addiu $t9, $t3, 1 +/* 109484 7F0D4954 2B214000 */ slti $at, $t9, 0x4000 +/* 109488 7F0D4958 142037A8 */ bnez $at, .L7F0E27FC +/* 10948C 7F0D495C 97AF0296 */ lhu $t7, 0x296($sp) +/* 109490 7F0D4960 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 109494 7F0D4964 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 109498 7F0D4968 000F4203 */ sra $t0, $t7, 8 +/* 10949C 7F0D496C 240C0001 */ li $t4, 1 +/* 1094A0 7F0D4970 012BC021 */ addu $t8, $t1, $t3 +/* 1094A4 7F0D4974 A3080001 */ sb $t0, 1($t8) +/* 1094A8 7F0D4978 97AD025A */ lhu $t5, 0x25a($sp) +/* 1094AC 7F0D497C 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 1094B0 7F0D4980 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 1094B4 7F0D4984 25AA0001 */ addiu $t2, $t5, 1 +/* 1094B8 7F0D4988 314E1800 */ andi $t6, $t2, 0x1800 +/* 1094BC 7F0D498C 000EC8C3 */ sra $t9, $t6, 3 +/* 1094C0 7F0D4990 314F00FF */ andi $t7, $t2, 0xff +/* 1094C4 7F0D4994 032F4825 */ or $t1, $t9, $t7 +/* 1094C8 7F0D4998 01694021 */ addu $t0, $t3, $t1 +/* 1094CC 7F0D499C 10003797 */ b .L7F0E27FC +/* 1094D0 7F0D49A0 A10C0000 */ sb $t4, ($t0) +.L7F0D49A4: +/* 1094D4 7F0D49A4 97B8025A */ lhu $t8, 0x25a($sp) +/* 1094D8 7F0D49A8 97B9025A */ lhu $t9, 0x25a($sp) +/* 1094DC 7F0D49AC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1094E0 7F0D49B0 2B015B00 */ slti $at, $t8, 0x5b00 +/* 1094E4 7F0D49B4 54200007 */ bnezl $at, .L7F0D49D4 +/* 1094E8 7F0D49B8 2B215800 */ slti $at, $t9, 0x5800 +/* 1094EC 7F0D49BC 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1094F0 7F0D49C0 97AD0294 */ lhu $t5, 0x294($sp) +/* 1094F4 7F0D49C4 01D85021 */ addu $t2, $t6, $t8 +/* 1094F8 7F0D49C8 10000021 */ b .L7F0D4A50 +/* 1094FC 7F0D49CC A14D0000 */ sb $t5, ($t2) +/* 109500 7F0D49D0 2B215800 */ slti $at, $t9, 0x5800 +.L7F0D49D4: +/* 109504 7F0D49D4 1420000D */ bnez $at, .L7F0D4A0C +/* 109508 7F0D49D8 97AD025A */ lhu $t5, 0x25a($sp) +/* 10950C 7F0D49DC 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 109510 7F0D49E0 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 109514 7F0D49E4 97AF0294 */ lhu $t7, 0x294($sp) +/* 109518 7F0D49E8 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 10951C 7F0D49EC 01794821 */ addu $t1, $t3, $t9 +/* 109520 7F0D49F0 A12F0000 */ sb $t7, ($t1) +/* 109524 7F0D49F4 97AE025A */ lhu $t6, 0x25a($sp) +/* 109528 7F0D49F8 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 10952C 7F0D49FC 240C0001 */ li $t4, 1 +/* 109530 7F0D4A00 010EC021 */ addu $t8, $t0, $t6 +/* 109534 7F0D4A04 10000012 */ b .L7F0D4A50 +/* 109538 7F0D4A08 A30CA800 */ sb $t4, -0x5800($t8) +.L7F0D4A0C: +/* 10953C 7F0D4A0C 29A14000 */ slti $at, $t5, 0x4000 +/* 109540 7F0D4A10 1420000F */ bnez $at, .L7F0D4A50 +/* 109544 7F0D4A14 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 109548 7F0D4A18 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10954C 7F0D4A1C 97AA0294 */ lhu $t2, 0x294($sp) +/* 109550 7F0D4A20 240F0001 */ li $t7, 1 +/* 109554 7F0D4A24 016DC821 */ addu $t9, $t3, $t5 +/* 109558 7F0D4A28 A32A0000 */ sb $t2, ($t9) +/* 10955C 7F0D4A2C 97A9025A */ lhu $t1, 0x25a($sp) +/* 109560 7F0D4A30 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 109564 7F0D4A34 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 109568 7F0D4A38 31281800 */ andi $t0, $t1, 0x1800 +/* 10956C 7F0D4A3C 000870C3 */ sra $t6, $t0, 3 +/* 109570 7F0D4A40 312C00FF */ andi $t4, $t1, 0xff +/* 109574 7F0D4A44 01CCC025 */ or $t8, $t6, $t4 +/* 109578 7F0D4A48 01786821 */ addu $t5, $t3, $t8 +/* 10957C 7F0D4A4C A1AF0000 */ sb $t7, ($t5) +.L7F0D4A50: +/* 109580 7F0D4A50 97AA025A */ lhu $t2, 0x25a($sp) +/* 109584 7F0D4A54 97AB025A */ lhu $t3, 0x25a($sp) +/* 109588 7F0D4A58 97A80294 */ lhu $t0, 0x294($sp) +/* 10958C 7F0D4A5C 25590001 */ addiu $t9, $t2, 1 +/* 109590 7F0D4A60 2B215B00 */ slti $at, $t9, 0x5b00 +/* 109594 7F0D4A64 14200007 */ bnez $at, .L7F0D4A84 +/* 109598 7F0D4A68 25780001 */ addiu $t8, $t3, 1 +/* 10959C 7F0D4A6C 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1095A0 7F0D4A70 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1095A4 7F0D4A74 00084A03 */ sra $t1, $t0, 8 +/* 1095A8 7F0D4A78 01CA6021 */ addu $t4, $t6, $t2 +/* 1095AC 7F0D4A7C 1000375F */ b .L7F0E27FC +/* 1095B0 7F0D4A80 A1890001 */ sb $t1, 1($t4) +.L7F0D4A84: +/* 1095B4 7F0D4A84 2B015800 */ slti $at, $t8, 0x5800 +/* 1095B8 7F0D4A88 1420000E */ bnez $at, .L7F0D4AC4 +/* 1095BC 7F0D4A8C 97B8025A */ lhu $t8, 0x25a($sp) +/* 1095C0 7F0D4A90 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 1095C4 7F0D4A94 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 1095C8 7F0D4A98 97AF0294 */ lhu $t7, 0x294($sp) +/* 1095CC 7F0D4A9C 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 1095D0 7F0D4AA0 032B4021 */ addu $t0, $t9, $t3 +/* 1095D4 7F0D4AA4 000F6A03 */ sra $t5, $t7, 8 +/* 1095D8 7F0D4AA8 A10D0001 */ sb $t5, 1($t0) +/* 1095DC 7F0D4AAC 97A9025A */ lhu $t1, 0x25a($sp) +/* 1095E0 7F0D4AB0 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 1095E4 7F0D4AB4 240E0001 */ li $t6, 1 +/* 1095E8 7F0D4AB8 01496021 */ addu $t4, $t2, $t1 +/* 1095EC 7F0D4ABC 1000374F */ b .L7F0E27FC +/* 1095F0 7F0D4AC0 A18EA801 */ sb $t6, -0x57ff($t4) +.L7F0D4AC4: +/* 1095F4 7F0D4AC4 270F0001 */ addiu $t7, $t8, 1 +/* 1095F8 7F0D4AC8 29E14000 */ slti $at, $t7, 0x4000 +/* 1095FC 7F0D4ACC 1420374B */ bnez $at, .L7F0E27FC +/* 109600 7F0D4AD0 97B90294 */ lhu $t9, 0x294($sp) +/* 109604 7F0D4AD4 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 109608 7F0D4AD8 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10960C 7F0D4ADC 00195A03 */ sra $t3, $t9, 8 +/* 109610 7F0D4AE0 240A0001 */ li $t2, 1 +/* 109614 7F0D4AE4 01B84021 */ addu $t0, $t5, $t8 +/* 109618 7F0D4AE8 A10B0001 */ sb $t3, 1($t0) +/* 10961C 7F0D4AEC 97A9025A */ lhu $t1, 0x25a($sp) +/* 109620 7F0D4AF0 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 109624 7F0D4AF4 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 109628 7F0D4AF8 252E0001 */ addiu $t6, $t1, 1 +/* 10962C 7F0D4AFC 31CC1800 */ andi $t4, $t6, 0x1800 +/* 109630 7F0D4B00 000C78C3 */ sra $t7, $t4, 3 +/* 109634 7F0D4B04 31D900FF */ andi $t9, $t6, 0xff +/* 109638 7F0D4B08 01F96825 */ or $t5, $t7, $t9 +/* 10963C 7F0D4B0C 030D5821 */ addu $t3, $t8, $t5 +/* 109640 7F0D4B10 1000373A */ b .L7F0E27FC +/* 109644 7F0D4B14 A16A0000 */ sb $t2, ($t3) +spectrum_op_23: +/* 109648 7F0D4B18 8FA8028C */ lw $t0, 0x28c($sp) +/* 10964C 7F0D4B1C 93AC0287 */ lbu $t4, 0x287($sp) +/* 109650 7F0D4B20 93B90287 */ lbu $t9, 0x287($sp) +/* 109654 7F0D4B24 25090006 */ addiu $t1, $t0, 6 +/* 109658 7F0D4B28 15800009 */ bnez $t4, .L7F0D4B50 +/* 10965C 7F0D4B2C AFA9028C */ sw $t1, 0x28c($sp) +/* 109660 7F0D4B30 26F70001 */ addiu $s7, $s7, 1 +/* 109664 7F0D4B34 32EE00FF */ andi $t6, $s7, 0xff +/* 109668 7F0D4B38 15C03730 */ bnez $t6, .L7F0E27FC +/* 10966C 7F0D4B3C 01C0B825 */ move $s7, $t6 +/* 109670 7F0D4B40 26D60001 */ addiu $s6, $s6, 1 +/* 109674 7F0D4B44 32CF00FF */ andi $t7, $s6, 0xff +/* 109678 7F0D4B48 1000372C */ b .L7F0E27FC +/* 10967C 7F0D4B4C 01E0B025 */ move $s6, $t7 +.L7F0D4B50: +/* 109680 7F0D4B50 24010001 */ li $at, 1 +/* 109684 7F0D4B54 17210005 */ bne $t9, $at, .L7F0D4B6C +/* 109688 7F0D4B58 97AA0294 */ lhu $t2, 0x294($sp) +/* 10968C 7F0D4B5C 97B80296 */ lhu $t8, 0x296($sp) +/* 109690 7F0D4B60 270D0001 */ addiu $t5, $t8, 1 +/* 109694 7F0D4B64 10003725 */ b .L7F0E27FC +/* 109698 7F0D4B68 A7AD0296 */ sh $t5, 0x296($sp) +.L7F0D4B6C: +/* 10969C 7F0D4B6C 254B0001 */ addiu $t3, $t2, 1 +/* 1096A0 7F0D4B70 10003722 */ b .L7F0E27FC +/* 1096A4 7F0D4B74 A7AB0294 */ sh $t3, 0x294($sp) +spectrum_op_24: +/* 1096A8 7F0D4B78 8FA8028C */ lw $t0, 0x28c($sp) +/* 1096AC 7F0D4B7C 93AC0287 */ lbu $t4, 0x287($sp) +/* 1096B0 7F0D4B80 93B80287 */ lbu $t8, 0x287($sp) +/* 1096B4 7F0D4B84 25090004 */ addiu $t1, $t0, 4 +/* 1096B8 7F0D4B88 15800017 */ bnez $t4, .L7F0D4BE8 +/* 1096BC 7F0D4B8C AFA9028C */ sw $t1, 0x28c($sp) +/* 1096C0 7F0D4B90 26D60001 */ addiu $s6, $s6, 1 +/* 1096C4 7F0D4B94 32CE00FF */ andi $t6, $s6, 0xff +/* 1096C8 7F0D4B98 31D9000F */ andi $t9, $t6, 0xf +/* 1096CC 7F0D4B9C 2F380001 */ sltiu $t8, $t9, 1 +/* 1096D0 7F0D4BA0 01C0B025 */ move $s6, $t6 +/* 1096D4 7F0D4BA4 2DCF0001 */ sltiu $t7, $t6, 1 +/* 1096D8 7F0D4BA8 31CA00A8 */ andi $t2, $t6, 0xa8 +/* 1096DC 7F0D4BAC 322D0001 */ andi $t5, $s1, 1 +/* 1096E0 7F0D4BB0 01AA5825 */ or $t3, $t5, $t2 +/* 1096E4 7F0D4BB4 3AD90080 */ xori $t9, $s6, 0x80 +/* 1096E8 7F0D4BB8 00184100 */ sll $t0, $t8, 4 +/* 1096EC 7F0D4BBC 01684825 */ or $t1, $t3, $t0 +/* 1096F0 7F0D4BC0 2F390001 */ sltiu $t9, $t9, 1 +/* 1096F4 7F0D4BC4 000F7180 */ sll $t6, $t7, 6 +/* 1096F8 7F0D4BC8 AFAF0044 */ sw $t7, 0x44($sp) +/* 1096FC 7F0D4BCC 012E7825 */ or $t7, $t1, $t6 +/* 109700 7F0D4BD0 00196880 */ sll $t5, $t9, 2 +/* 109704 7F0D4BD4 01ED8825 */ or $s1, $t7, $t5 +/* 109708 7F0D4BD8 322A00FF */ andi $t2, $s1, 0xff +/* 10970C 7F0D4BDC 01408825 */ move $s1, $t2 +/* 109710 7F0D4BE0 10003706 */ b .L7F0E27FC +/* 109714 7F0D4BE4 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D4BE8: +/* 109718 7F0D4BE8 24010001 */ li $at, 1 +/* 10971C 7F0D4BEC 17010004 */ bne $t8, $at, .L7F0D4C00 +/* 109720 7F0D4BF0 97A80294 */ lhu $t0, 0x294($sp) +/* 109724 7F0D4BF4 97AB0296 */ lhu $t3, 0x296($sp) +/* 109728 7F0D4BF8 10000002 */ b .L7F0D4C04 +/* 10972C 7F0D4BFC AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D4C00: +/* 109730 7F0D4C00 AFA80048 */ sw $t0, 0x48($sp) +.L7F0D4C04: +/* 109734 7F0D4C04 8FAC0048 */ lw $t4, 0x48($sp) +/* 109738 7F0D4C08 32280001 */ andi $t0, $s1, 1 +/* 10973C 7F0D4C0C 24010001 */ li $at, 1 +/* 109740 7F0D4C10 000C7203 */ sra $t6, $t4, 8 +/* 109744 7F0D4C14 25CA0001 */ addiu $t2, $t6, 1 +/* 109748 7F0D4C18 314F00FF */ andi $t7, $t2, 0xff +/* 10974C 7F0D4C1C 2DED0001 */ sltiu $t5, $t7, 1 +/* 109750 7F0D4C20 314C00FF */ andi $t4, $t2, 0xff +/* 109754 7F0D4C24 A3AE0259 */ sb $t6, 0x259($sp) +/* 109758 7F0D4C28 318900A8 */ andi $t1, $t4, 0xa8 +/* 10975C 7F0D4C2C AFAD0044 */ sw $t5, 0x44($sp) +/* 109760 7F0D4C30 3158000F */ andi $t8, $t2, 0xf +/* 109764 7F0D4C34 8FB90044 */ lw $t9, 0x44($sp) +/* 109768 7F0D4C38 2F0B0001 */ sltiu $t3, $t8, 1 +/* 10976C 7F0D4C3C 01097025 */ or $t6, $t0, $t1 +/* 109770 7F0D4C40 000B7900 */ sll $t7, $t3, 4 +/* 109774 7F0D4C44 01CF6825 */ or $t5, $t6, $t7 +/* 109778 7F0D4C48 39880080 */ xori $t0, $t4, 0x80 +/* 10977C 7F0D4C4C A3AA0259 */ sb $t2, 0x259($sp) +/* 109780 7F0D4C50 2D080001 */ sltiu $t0, $t0, 1 +/* 109784 7F0D4C54 00195180 */ sll $t2, $t9, 6 +/* 109788 7F0D4C58 93AE0287 */ lbu $t6, 0x287($sp) +/* 10978C 7F0D4C5C 01AAC025 */ or $t8, $t5, $t2 +/* 109790 7F0D4C60 00084880 */ sll $t1, $t0, 2 +/* 109794 7F0D4C64 03098825 */ or $s1, $t8, $t1 +/* 109798 7F0D4C68 AFAB0048 */ sw $t3, 0x48($sp) +/* 10979C 7F0D4C6C 322B00FF */ andi $t3, $s1, 0xff +/* 1097A0 7F0D4C70 15C10007 */ bne $t6, $at, .L7F0D4C90 +/* 1097A4 7F0D4C74 01608825 */ move $s1, $t3 +/* 1097A8 7F0D4C78 97AF0296 */ lhu $t7, 0x296($sp) +/* 1097AC 7F0D4C7C 000C6A00 */ sll $t5, $t4, 8 +/* 1097B0 7F0D4C80 31F900FF */ andi $t9, $t7, 0xff +/* 1097B4 7F0D4C84 032D5025 */ or $t2, $t9, $t5 +/* 1097B8 7F0D4C88 100036DC */ b .L7F0E27FC +/* 1097BC 7F0D4C8C A7AA0296 */ sh $t2, 0x296($sp) +.L7F0D4C90: +/* 1097C0 7F0D4C90 97A80294 */ lhu $t0, 0x294($sp) +/* 1097C4 7F0D4C94 93A90259 */ lbu $t1, 0x259($sp) +/* 1097C8 7F0D4C98 311800FF */ andi $t8, $t0, 0xff +/* 1097CC 7F0D4C9C 00095A00 */ sll $t3, $t1, 8 +/* 1097D0 7F0D4CA0 030B7025 */ or $t6, $t8, $t3 +/* 1097D4 7F0D4CA4 100036D5 */ b .L7F0E27FC +/* 1097D8 7F0D4CA8 A7AE0294 */ sh $t6, 0x294($sp) +spectrum_op_25: +/* 1097DC 7F0D4CAC 8FAF028C */ lw $t7, 0x28c($sp) +/* 1097E0 7F0D4CB0 93B90287 */ lbu $t9, 0x287($sp) +/* 1097E4 7F0D4CB4 93AE0287 */ lbu $t6, 0x287($sp) +/* 1097E8 7F0D4CB8 25EC0004 */ addiu $t4, $t7, 4 +/* 1097EC 7F0D4CBC 17200018 */ bnez $t9, .L7F0D4D20 +/* 1097F0 7F0D4CC0 AFAC028C */ sw $t4, 0x28c($sp) +/* 1097F4 7F0D4CC4 32CD000F */ andi $t5, $s6, 0xf +/* 1097F8 7F0D4CC8 26D6FFFF */ addiu $s6, $s6, -1 +/* 1097FC 7F0D4CCC 32CE00FF */ andi $t6, $s6, 0xff +/* 109800 7F0D4CD0 2DAA0001 */ sltiu $t2, $t5, 1 +/* 109804 7F0D4CD4 000A4900 */ sll $t1, $t2, 4 +/* 109808 7F0D4CD8 39D9007F */ xori $t9, $t6, 0x7f +/* 10980C 7F0D4CDC 2F390001 */ sltiu $t9, $t9, 1 +/* 109810 7F0D4CE0 32280001 */ andi $t0, $s1, 1 +/* 109814 7F0D4CE4 01098825 */ or $s1, $t0, $t1 +/* 109818 7F0D4CE8 00196880 */ sll $t5, $t9, 2 +/* 10981C 7F0D4CEC AFAA0048 */ sw $t2, 0x48($sp) +/* 109820 7F0D4CF0 2DCF0001 */ sltiu $t7, $t6, 1 +/* 109824 7F0D4CF4 31CC00A8 */ andi $t4, $t6, 0xa8 +/* 109828 7F0D4CF8 018D5025 */ or $t2, $t4, $t5 +/* 10982C 7F0D4CFC 000F4980 */ sll $t1, $t7, 6 +/* 109830 7F0D4D00 0149C025 */ or $t8, $t2, $t1 +/* 109834 7F0D4D04 362B0002 */ ori $t3, $s1, 2 +/* 109838 7F0D4D08 01788825 */ or $s1, $t3, $t8 +/* 10983C 7F0D4D0C 322B00FF */ andi $t3, $s1, 0xff +/* 109840 7F0D4D10 01608825 */ move $s1, $t3 +/* 109844 7F0D4D14 AFAF0044 */ sw $t7, 0x44($sp) +/* 109848 7F0D4D18 100036B8 */ b .L7F0E27FC +/* 10984C 7F0D4D1C 01C0B025 */ move $s6, $t6 +.L7F0D4D20: +/* 109850 7F0D4D20 24010001 */ li $at, 1 +/* 109854 7F0D4D24 15C10004 */ bne $t6, $at, .L7F0D4D38 +/* 109858 7F0D4D28 97B90294 */ lhu $t9, 0x294($sp) +/* 10985C 7F0D4D2C 97AF0296 */ lhu $t7, 0x296($sp) +/* 109860 7F0D4D30 10000002 */ b .L7F0D4D3C +/* 109864 7F0D4D34 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D4D38: +/* 109868 7F0D4D38 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D4D3C: +/* 10986C 7F0D4D3C 8FAC0048 */ lw $t4, 0x48($sp) +/* 109870 7F0D4D40 32380001 */ andi $t8, $s1, 1 +/* 109874 7F0D4D44 24010001 */ li $at, 1 +/* 109878 7F0D4D48 000C4203 */ sra $t0, $t4, 8 +/* 10987C 7F0D4D4C 310A000F */ andi $t2, $t0, 0xf +/* 109880 7F0D4D50 2D490001 */ sltiu $t1, $t2, 1 +/* 109884 7F0D4D54 00095900 */ sll $t3, $t1, 4 +/* 109888 7F0D4D58 030B8825 */ or $s1, $t8, $t3 +/* 10988C 7F0D4D5C 311900FF */ andi $t9, $t0, 0xff +/* 109890 7F0D4D60 272CFFFF */ addiu $t4, $t9, -1 +/* 109894 7F0D4D64 319800FF */ andi $t8, $t4, 0xff +/* 109898 7F0D4D68 3B0B007F */ xori $t3, $t8, 0x7f +/* 10989C 7F0D4D6C 362E0002 */ ori $t6, $s1, 2 +/* 1098A0 7F0D4D70 A3A80258 */ sb $t0, 0x258($sp) +/* 1098A4 7F0D4D74 01C08825 */ move $s1, $t6 +/* 1098A8 7F0D4D78 2D6B0001 */ sltiu $t3, $t3, 1 +/* 1098AC 7F0D4D7C 318D00FF */ andi $t5, $t4, 0xff +/* 1098B0 7F0D4D80 AFA90048 */ sw $t1, 0x48($sp) +/* 1098B4 7F0D4D84 318900A8 */ andi $t1, $t4, 0xa8 +/* 1098B8 7F0D4D88 2DA80001 */ sltiu $t0, $t5, 1 +/* 1098BC 7F0D4D8C 000B7080 */ sll $t6, $t3, 2 +/* 1098C0 7F0D4D90 012E7825 */ or $t7, $t1, $t6 +/* 1098C4 7F0D4D94 0008C980 */ sll $t9, $t0, 6 +/* 1098C8 7F0D4D98 93B80287 */ lbu $t8, 0x287($sp) +/* 1098CC 7F0D4D9C 01F96825 */ or $t5, $t7, $t9 +/* 1098D0 7F0D4DA0 022D8825 */ or $s1, $s1, $t5 +/* 1098D4 7F0D4DA4 322A00FF */ andi $t2, $s1, 0xff +/* 1098D8 7F0D4DA8 01408825 */ move $s1, $t2 +/* 1098DC 7F0D4DAC AFA80044 */ sw $t0, 0x44($sp) +/* 1098E0 7F0D4DB0 17010007 */ bne $t8, $at, .L7F0D4DD0 +/* 1098E4 7F0D4DB4 A3AC0258 */ sb $t4, 0x258($sp) +/* 1098E8 7F0D4DB8 97AB0296 */ lhu $t3, 0x296($sp) +/* 1098EC 7F0D4DBC 000C4200 */ sll $t0, $t4, 8 +/* 1098F0 7F0D4DC0 316900FF */ andi $t1, $t3, 0xff +/* 1098F4 7F0D4DC4 01287825 */ or $t7, $t1, $t0 +/* 1098F8 7F0D4DC8 1000368C */ b .L7F0E27FC +/* 1098FC 7F0D4DCC A7AF0296 */ sh $t7, 0x296($sp) +.L7F0D4DD0: +/* 109900 7F0D4DD0 97B90294 */ lhu $t9, 0x294($sp) +/* 109904 7F0D4DD4 93AA0258 */ lbu $t2, 0x258($sp) +/* 109908 7F0D4DD8 332D00FF */ andi $t5, $t9, 0xff +/* 10990C 7F0D4DDC 000AC200 */ sll $t8, $t2, 8 +/* 109910 7F0D4DE0 01B85825 */ or $t3, $t5, $t8 +/* 109914 7F0D4DE4 10003685 */ b .L7F0E27FC +/* 109918 7F0D4DE8 A7AB0294 */ sh $t3, 0x294($sp) +spectrum_op_26: +/* 10991C 7F0D4DEC 8FAC028C */ lw $t4, 0x28c($sp) +/* 109920 7F0D4DF0 93A90287 */ lbu $t1, 0x287($sp) +/* 109924 7F0D4DF4 93AA0287 */ lbu $t2, 0x287($sp) +/* 109928 7F0D4DF8 258E0007 */ addiu $t6, $t4, 7 +/* 10992C 7F0D4DFC 15200007 */ bnez $t1, .L7F0D4E1C +/* 109930 7F0D4E00 AFAE028C */ sw $t6, 0x28c($sp) +/* 109934 7F0D4E04 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 109938 7F0D4E08 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10993C 7F0D4E0C 97A80298 */ lhu $t0, 0x298($sp) +/* 109940 7F0D4E10 010FC821 */ addu $t9, $t0, $t7 +/* 109944 7F0D4E14 10000018 */ b .L7F0D4E78 +/* 109948 7F0D4E18 93360000 */ lbu $s6, ($t9) +.L7F0D4E1C: +/* 10994C 7F0D4E1C 24010001 */ li $at, 1 +/* 109950 7F0D4E20 1541000C */ bne $t2, $at, .L7F0D4E54 +/* 109954 7F0D4E24 97B90298 */ lhu $t9, 0x298($sp) +/* 109958 7F0D4E28 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10995C 7F0D4E2C 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 109960 7F0D4E30 97AD0298 */ lhu $t5, 0x298($sp) +/* 109964 7F0D4E34 97A90296 */ lhu $t1, 0x296($sp) +/* 109968 7F0D4E38 01B85821 */ addu $t3, $t5, $t8 +/* 10996C 7F0D4E3C 916C0000 */ lbu $t4, ($t3) +/* 109970 7F0D4E40 312800FF */ andi $t0, $t1, 0xff +/* 109974 7F0D4E44 000C7200 */ sll $t6, $t4, 8 +/* 109978 7F0D4E48 01C87825 */ or $t7, $t6, $t0 +/* 10997C 7F0D4E4C 1000000A */ b .L7F0D4E78 +/* 109980 7F0D4E50 A7AF0296 */ sh $t7, 0x296($sp) +.L7F0D4E54: +/* 109984 7F0D4E54 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 109988 7F0D4E58 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10998C 7F0D4E5C 97AC0294 */ lhu $t4, 0x294($sp) +/* 109990 7F0D4E60 032A6821 */ addu $t5, $t9, $t2 +/* 109994 7F0D4E64 91B80000 */ lbu $t8, ($t5) +/* 109998 7F0D4E68 318900FF */ andi $t1, $t4, 0xff +/* 10999C 7F0D4E6C 00185A00 */ sll $t3, $t8, 8 +/* 1099A0 7F0D4E70 01697025 */ or $t6, $t3, $t1 +/* 1099A4 7F0D4E74 A7AE0294 */ sh $t6, 0x294($sp) +.L7F0D4E78: +/* 1099A8 7F0D4E78 97A80298 */ lhu $t0, 0x298($sp) +/* 1099AC 7F0D4E7C 250F0001 */ addiu $t7, $t0, 1 +/* 1099B0 7F0D4E80 1000365E */ b .L7F0E27FC +/* 1099B4 7F0D4E84 A7AF0298 */ sh $t7, 0x298($sp) +spectrum_op_27: +/* 1099B8 7F0D4E88 8FB9028C */ lw $t9, 0x28c($sp) +/* 1099BC 7F0D4E8C 322D0001 */ andi $t5, $s1, 1 +/* 1099C0 7F0D4E90 32380010 */ andi $t8, $s1, 0x10 +/* 1099C4 7F0D4E94 272A0004 */ addiu $t2, $t9, 4 +/* 1099C8 7F0D4E98 AFAA028C */ sw $t2, 0x28c($sp) +/* 1099CC 7F0D4E9C A3AD0256 */ sb $t5, 0x256($sp) +/* 1099D0 7F0D4EA0 17000004 */ bnez $t8, .L7F0D4EB4 +/* 1099D4 7F0D4EA4 A3A00257 */ sb $zero, 0x257($sp) +/* 1099D8 7F0D4EA8 320C000F */ andi $t4, $s0, 0xf +/* 1099DC 7F0D4EAC 2981000A */ slti $at, $t4, 0xa +/* 1099E0 7F0D4EB0 14200002 */ bnez $at, .L7F0D4EBC +.L7F0D4EB4: +/* 1099E4 7F0D4EB4 240B0006 */ li $t3, 6 +/* 1099E8 7F0D4EB8 A3AB0257 */ sb $t3, 0x257($sp) +.L7F0D4EBC: +/* 1099EC 7F0D4EBC 32290001 */ andi $t1, $s1, 1 +/* 1099F0 7F0D4EC0 15200005 */ bnez $t1, .L7F0D4ED8 +/* 1099F4 7F0D4EC4 32390002 */ andi $t9, $s1, 2 +/* 1099F8 7F0D4EC8 00107103 */ sra $t6, $s0, 4 +/* 1099FC 7F0D4ECC 29C1000A */ slti $at, $t6, 0xa +/* 109A00 7F0D4ED0 14200004 */ bnez $at, .L7F0D4EE4 +/* 109A04 7F0D4ED4 00000000 */ nop +.L7F0D4ED8: +/* 109A08 7F0D4ED8 93A80257 */ lbu $t0, 0x257($sp) +/* 109A0C 7F0D4EDC 350F0060 */ ori $t7, $t0, 0x60 +/* 109A10 7F0D4EE0 A3AF0257 */ sb $t7, 0x257($sp) +.L7F0D4EE4: +/* 109A14 7F0D4EE4 1320001D */ beqz $t9, .L7F0D4F5C +/* 109A18 7F0D4EE8 2A010091 */ slti $at, $s0, 0x91 +/* 109A1C 7F0D4EEC 93AA0257 */ lbu $t2, 0x257($sp) +/* 109A20 7F0D4EF0 320F000F */ andi $t7, $s0, 0xf +/* 109A24 7F0D4EF4 020A6823 */ subu $t5, $s0, $t2 +/* 109A28 7F0D4EF8 31B801FF */ andi $t8, $t5, 0x1ff +/* 109A2C 7F0D4EFC 330B00A8 */ andi $t3, $t8, 0xa8 +/* 109A30 7F0D4F00 00187203 */ sra $t6, $t8, 8 +/* 109A34 7F0D4F04 3159000F */ andi $t9, $t2, 0xf +/* 109A38 7F0D4F08 01F9682A */ slt $t5, $t7, $t9 +/* 109A3C 7F0D4F0C 016E4025 */ or $t0, $t3, $t6 +/* 109A40 7F0D4F10 020A5826 */ xor $t3, $s0, $t2 +/* 109A44 7F0D4F14 000D6100 */ sll $t4, $t5, 4 +/* 109A48 7F0D4F18 0310C826 */ xor $t9, $t8, $s0 +/* 109A4C 7F0D4F1C A7B80254 */ sh $t8, 0x254($sp) +/* 109A50 7F0D4F20 93B00255 */ lbu $s0, 0x255($sp) +/* 109A54 7F0D4F24 316E0080 */ andi $t6, $t3, 0x80 +/* 109A58 7F0D4F28 01D96824 */ and $t5, $t6, $t9 +/* 109A5C 7F0D4F2C 010C4825 */ or $t1, $t0, $t4 +/* 109A60 7F0D4F30 000D4143 */ sra $t0, $t5, 5 +/* 109A64 7F0D4F34 01288825 */ or $s1, $t1, $t0 +/* 109A68 7F0D4F38 A3AA0253 */ sb $t2, 0x253($sp) +/* 109A6C 7F0D4F3C 2E0B0001 */ sltiu $t3, $s0, 1 +/* 109A70 7F0D4F40 000B7980 */ sll $t7, $t3, 6 +/* 109A74 7F0D4F44 362A0002 */ ori $t2, $s1, 2 +/* 109A78 7F0D4F48 014F8825 */ or $s1, $t2, $t7 +/* 109A7C 7F0D4F4C 322E00FF */ andi $t6, $s1, 0xff +/* 109A80 7F0D4F50 01C08825 */ move $s1, $t6 +/* 109A84 7F0D4F54 10000024 */ b .L7F0D4FE8 +/* 109A88 7F0D4F58 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D4F5C: +/* 109A8C 7F0D4F5C 14200006 */ bnez $at, .L7F0D4F78 +/* 109A90 7F0D4F60 3219000F */ andi $t9, $s0, 0xf +/* 109A94 7F0D4F64 2B21000A */ slti $at, $t9, 0xa +/* 109A98 7F0D4F68 14200003 */ bnez $at, .L7F0D4F78 +/* 109A9C 7F0D4F6C 93AD0257 */ lbu $t5, 0x257($sp) +/* 109AA0 7F0D4F70 35A90060 */ ori $t1, $t5, 0x60 +/* 109AA4 7F0D4F74 A3A90257 */ sb $t1, 0x257($sp) +.L7F0D4F78: +/* 109AA8 7F0D4F78 93A80257 */ lbu $t0, 0x257($sp) +/* 109AAC 7F0D4F7C 320E000F */ andi $t6, $s0, 0xf +/* 109AB0 7F0D4F80 2401000F */ li $at, 15 +/* 109AB4 7F0D4F84 02085021 */ addu $t2, $s0, $t0 +/* 109AB8 7F0D4F88 314B00A8 */ andi $t3, $t2, 0xa8 +/* 109ABC 7F0D4F8C 000AC203 */ sra $t8, $t2, 8 +/* 109AC0 7F0D4F90 3119000F */ andi $t9, $t0, 0xf +/* 109AC4 7F0D4F94 01D96821 */ addu $t5, $t6, $t9 +/* 109AC8 7F0D4F98 01787825 */ or $t7, $t3, $t8 +/* 109ACC 7F0D4F9C 0200C027 */ not $t8, $s0 +/* 109AD0 7F0D4FA0 002D482A */ slt $t1, $at, $t5 +/* 109AD4 7F0D4FA4 01506826 */ xor $t5, $t2, $s0 +/* 109AD8 7F0D4FA8 A7AA0250 */ sh $t2, 0x250($sp) +/* 109ADC 7F0D4FAC 93B00251 */ lbu $s0, 0x251($sp) +/* 109AE0 7F0D4FB0 00096100 */ sll $t4, $t1, 4 +/* 109AE4 7F0D4FB4 03087026 */ xor $t6, $t8, $t0 +/* 109AE8 7F0D4FB8 31D90080 */ andi $t9, $t6, 0x80 +/* 109AEC 7F0D4FBC 032D4824 */ and $t1, $t9, $t5 +/* 109AF0 7F0D4FC0 01EC5825 */ or $t3, $t7, $t4 +/* 109AF4 7F0D4FC4 00097943 */ sra $t7, $t1, 5 +/* 109AF8 7F0D4FC8 2E180001 */ sltiu $t8, $s0, 1 +/* 109AFC 7F0D4FCC 00187180 */ sll $t6, $t8, 6 +/* 109B00 7F0D4FD0 016F6025 */ or $t4, $t3, $t7 +/* 109B04 7F0D4FD4 018E8825 */ or $s1, $t4, $t6 +/* 109B08 7F0D4FD8 322A00FF */ andi $t2, $s1, 0xff +/* 109B0C 7F0D4FDC 01408825 */ move $s1, $t2 +/* 109B10 7F0D4FE0 AFB80048 */ sw $t8, 0x48($sp) +/* 109B14 7F0D4FE4 A3A8024F */ sb $t0, 0x24f($sp) +.L7F0D4FE8: +/* 109B18 7F0D4FE8 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 109B1C 7F0D4FEC 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 109B20 7F0D4FF0 93AB0256 */ lbu $t3, 0x256($sp) +/* 109B24 7F0D4FF4 02196821 */ addu $t5, $s0, $t9 +/* 109B28 7F0D4FF8 91A90000 */ lbu $t1, ($t5) +/* 109B2C 7F0D4FFC 022B7825 */ or $t7, $s1, $t3 +/* 109B30 7F0D5000 31EC00FB */ andi $t4, $t7, 0xfb +/* 109B34 7F0D5004 012C8825 */ or $s1, $t1, $t4 +/* 109B38 7F0D5008 323800FF */ andi $t8, $s1, 0xff +/* 109B3C 7F0D500C 100035FB */ b .L7F0E27FC +/* 109B40 7F0D5010 03008825 */ move $s1, $t8 +spectrum_op_28: +/* 109B44 7F0D5014 8FA8028C */ lw $t0, 0x28c($sp) +/* 109B48 7F0D5018 322A0040 */ andi $t2, $s1, 0x40 +/* 109B4C 7F0D501C 97B90298 */ lhu $t9, 0x298($sp) +/* 109B50 7F0D5020 250E0007 */ addiu $t6, $t0, 7 +/* 109B54 7F0D5024 1140000C */ beqz $t2, .L7F0D5058 +/* 109B58 7F0D5028 AFAE028C */ sw $t6, 0x28c($sp) +/* 109B5C 7F0D502C 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 109B60 7F0D5030 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 109B64 7F0D5034 25C80005 */ addiu $t0, $t6, 5 +/* 109B68 7F0D5038 032D5821 */ addu $t3, $t9, $t5 +/* 109B6C 7F0D503C 816F0000 */ lb $t7, ($t3) +/* 109B70 7F0D5040 AFA8028C */ sw $t0, 0x28c($sp) +/* 109B74 7F0D5044 032F4821 */ addu $t1, $t9, $t7 +/* 109B78 7F0D5048 252C0001 */ addiu $t4, $t1, 1 +/* 109B7C 7F0D504C A7AC0298 */ sh $t4, 0x298($sp) +/* 109B80 7F0D5050 100035EA */ b .L7F0E27FC +/* 109B84 7F0D5054 AFAF0248 */ sw $t7, 0x248($sp) +.L7F0D5058: +/* 109B88 7F0D5058 97AE0298 */ lhu $t6, 0x298($sp) +/* 109B8C 7F0D505C 25CA0001 */ addiu $t2, $t6, 1 +/* 109B90 7F0D5060 100035E6 */ b .L7F0E27FC +/* 109B94 7F0D5064 A7AA0298 */ sh $t2, 0x298($sp) +spectrum_op_29: +/* 109B98 7F0D5068 8FAD028C */ lw $t5, 0x28c($sp) +/* 109B9C 7F0D506C 93B90287 */ lbu $t9, 0x287($sp) +/* 109BA0 7F0D5070 25AB000B */ addiu $t3, $t5, 0xb +/* 109BA4 7F0D5074 17200045 */ bnez $t9, .L7F0D518C +/* 109BA8 7F0D5078 AFAB028C */ sw $t3, 0x28c($sp) +/* 109BAC 7F0D507C 1720001C */ bnez $t9, .L7F0D50F0 +/* 109BB0 7F0D5080 93A90287 */ lbu $t1, 0x287($sp) +/* 109BB4 7F0D5084 02F77821 */ addu $t7, $s7, $s7 +/* 109BB8 7F0D5088 31E9FFFF */ andi $t1, $t7, 0xffff +/* 109BBC 7F0D508C 00096202 */ srl $t4, $t1, 8 +/* 109BC0 7F0D5090 3188FFFF */ andi $t0, $t4, 0xffff +/* 109BC4 7F0D5094 32D8000F */ andi $t8, $s6, 0xf +/* 109BC8 7F0D5098 01187021 */ addu $t6, $t0, $t8 +/* 109BCC 7F0D509C 32CA000F */ andi $t2, $s6, 0xf +/* 109BD0 7F0D50A0 01CA6821 */ addu $t5, $t6, $t2 +/* 109BD4 7F0D50A4 A7AF0246 */ sh $t7, 0x246($sp) +/* 109BD8 7F0D50A8 2401000F */ li $at, 15 +/* 109BDC 7F0D50AC 002D582A */ slt $t3, $at, $t5 +/* 109BE0 7F0D50B0 93B70247 */ lbu $s7, 0x247($sp) +/* 109BE4 7F0D50B4 02D64021 */ addu $t0, $s6, $s6 +/* 109BE8 7F0D50B8 01886821 */ addu $t5, $t4, $t0 +/* 109BEC 7F0D50BC A7AC0246 */ sh $t4, 0x246($sp) +/* 109BF0 7F0D50C0 A7AD0246 */ sh $t5, 0x246($sp) +/* 109BF4 7F0D50C4 93B60247 */ lbu $s6, 0x247($sp) +/* 109BF8 7F0D50C8 000BC900 */ sll $t9, $t3, 4 +/* 109BFC 7F0D50CC 322F00C4 */ andi $t7, $s1, 0xc4 +/* 109C00 7F0D50D0 032F4825 */ or $t1, $t9, $t7 +/* 109C04 7F0D50D4 000D5A03 */ sra $t3, $t5, 8 +/* 109C08 7F0D50D8 32CA0028 */ andi $t2, $s6, 0x28 +/* 109C0C 7F0D50DC 014BC825 */ or $t9, $t2, $t3 +/* 109C10 7F0D50E0 01398825 */ or $s1, $t1, $t9 +/* 109C14 7F0D50E4 322F00FF */ andi $t7, $s1, 0xff +/* 109C18 7F0D50E8 100035C4 */ b .L7F0E27FC +/* 109C1C 7F0D50EC 01E08825 */ move $s1, $t7 +.L7F0D50F0: +/* 109C20 7F0D50F0 24010001 */ li $at, 1 +/* 109C24 7F0D50F4 15210004 */ bne $t1, $at, .L7F0D5108 +/* 109C28 7F0D50F8 00166A00 */ sll $t5, $s6, 8 +/* 109C2C 7F0D50FC 97AC0296 */ lhu $t4, 0x296($sp) +/* 109C30 7F0D5100 10000003 */ b .L7F0D5110 +/* 109C34 7F0D5104 AFAC0240 */ sw $t4, 0x240($sp) +.L7F0D5108: +/* 109C38 7F0D5108 97B80294 */ lhu $t8, 0x294($sp) +/* 109C3C 7F0D510C AFB80240 */ sw $t8, 0x240($sp) +.L7F0D5110: +/* 109C40 7F0D5110 8FA80240 */ lw $t0, 0x240($sp) +/* 109C44 7F0D5114 01B75025 */ or $t2, $t5, $s7 +/* 109C48 7F0D5118 24010FFF */ li $at, 4095 +/* 109C4C 7F0D511C 310E0FFF */ andi $t6, $t0, 0xfff +/* 109C50 7F0D5120 01CA5821 */ addu $t3, $t6, $t2 +/* 109C54 7F0D5124 002BC82B */ sltu $t9, $at, $t3 +/* 109C58 7F0D5128 93AA0287 */ lbu $t2, 0x287($sp) +/* 109C5C 7F0D512C 00197900 */ sll $t7, $t9, 4 +/* 109C60 7F0D5130 322900C4 */ andi $t1, $s1, 0xc4 +/* 109C64 7F0D5134 0016C200 */ sll $t8, $s6, 8 +/* 109C68 7F0D5138 03176825 */ or $t5, $t8, $s7 +/* 109C6C 7F0D513C 012F8825 */ or $s1, $t1, $t7 +/* 109C70 7F0D5140 322C00FF */ andi $t4, $s1, 0xff +/* 109C74 7F0D5144 24010001 */ li $at, 1 +/* 109C78 7F0D5148 010D7021 */ addu $t6, $t0, $t5 +/* 109C7C 7F0D514C AFAE0240 */ sw $t6, 0x240($sp) +/* 109C80 7F0D5150 15410003 */ bne $t2, $at, .L7F0D5160 +/* 109C84 7F0D5154 01808825 */ move $s1, $t4 +/* 109C88 7F0D5158 10000003 */ b .L7F0D5168 +/* 109C8C 7F0D515C A7AE0296 */ sh $t6, 0x296($sp) +.L7F0D5160: +/* 109C90 7F0D5160 8FAB0240 */ lw $t3, 0x240($sp) +/* 109C94 7F0D5164 A7AB0294 */ sh $t3, 0x294($sp) +.L7F0D5168: +/* 109C98 7F0D5168 8FB90240 */ lw $t9, 0x240($sp) +/* 109C9C 7F0D516C 00194A02 */ srl $t1, $t9, 8 +/* 109CA0 7F0D5170 312F0028 */ andi $t7, $t1, 0x28 +/* 109CA4 7F0D5174 00196402 */ srl $t4, $t9, 0x10 +/* 109CA8 7F0D5178 01ECC025 */ or $t8, $t7, $t4 +/* 109CAC 7F0D517C 02388825 */ or $s1, $s1, $t8 +/* 109CB0 7F0D5180 322800FF */ andi $t0, $s1, 0xff +/* 109CB4 7F0D5184 1000359D */ b .L7F0E27FC +/* 109CB8 7F0D5188 01008825 */ move $s1, $t0 +.L7F0D518C: +/* 109CBC 7F0D518C 93AD0287 */ lbu $t5, 0x287($sp) +/* 109CC0 7F0D5190 24010001 */ li $at, 1 +/* 109CC4 7F0D5194 93A90287 */ lbu $t1, 0x287($sp) +/* 109CC8 7F0D5198 15A10049 */ bne $t5, $at, .L7F0D52C0 +/* 109CCC 7F0D519C 00000000 */ nop +/* 109CD0 7F0D51A0 15A0001F */ bnez $t5, .L7F0D5220 +/* 109CD4 7F0D51A4 93A80287 */ lbu $t0, 0x287($sp) +/* 109CD8 7F0D51A8 97AA0296 */ lhu $t2, 0x296($sp) +/* 109CDC 7F0D51AC 32CF000F */ andi $t7, $s6, 0xf +/* 109CE0 7F0D51B0 2401000F */ li $at, 15 +/* 109CE4 7F0D51B4 314E00FF */ andi $t6, $t2, 0xff +/* 109CE8 7F0D51B8 02EE5821 */ addu $t3, $s7, $t6 +/* 109CEC 7F0D51BC 3169FFFF */ andi $t1, $t3, 0xffff +/* 109CF0 7F0D51C0 0009CA02 */ srl $t9, $t1, 8 +/* 109CF4 7F0D51C4 332CFFFF */ andi $t4, $t9, 0xffff +/* 109CF8 7F0D51C8 000A4203 */ sra $t0, $t2, 8 +/* 109CFC 7F0D51CC 310D000F */ andi $t5, $t0, 0xf +/* 109D00 7F0D51D0 018FC021 */ addu $t8, $t4, $t7 +/* 109D04 7F0D51D4 030D7021 */ addu $t6, $t8, $t5 +/* 109D08 7F0D51D8 A7AB023E */ sh $t3, 0x23e($sp) +/* 109D0C 7F0D51DC 002E582A */ slt $t3, $at, $t6 +/* 109D10 7F0D51E0 000B4900 */ sll $t1, $t3, 4 +/* 109D14 7F0D51E4 93B7023F */ lbu $s7, 0x23f($sp) +/* 109D18 7F0D51E8 02C85021 */ addu $t2, $s6, $t0 +/* 109D1C 7F0D51EC 032A5821 */ addu $t3, $t9, $t2 +/* 109D20 7F0D51F0 A7B9023E */ sh $t9, 0x23e($sp) +/* 109D24 7F0D51F4 A7AB023E */ sh $t3, 0x23e($sp) +/* 109D28 7F0D51F8 93B6023F */ lbu $s6, 0x23f($sp) +/* 109D2C 7F0D51FC 322C00C4 */ andi $t4, $s1, 0xc4 +/* 109D30 7F0D5200 012C7825 */ or $t7, $t1, $t4 +/* 109D34 7F0D5204 000B4A03 */ sra $t1, $t3, 8 +/* 109D38 7F0D5208 32CE0028 */ andi $t6, $s6, 0x28 +/* 109D3C 7F0D520C 01C96025 */ or $t4, $t6, $t1 +/* 109D40 7F0D5210 01EC8825 */ or $s1, $t7, $t4 +/* 109D44 7F0D5214 322F00FF */ andi $t7, $s1, 0xff +/* 109D48 7F0D5218 10003578 */ b .L7F0E27FC +/* 109D4C 7F0D521C 01E08825 */ move $s1, $t7 +.L7F0D5220: +/* 109D50 7F0D5220 24010001 */ li $at, 1 +/* 109D54 7F0D5224 15010004 */ bne $t0, $at, .L7F0D5238 +/* 109D58 7F0D5228 97B80294 */ lhu $t8, 0x294($sp) +/* 109D5C 7F0D522C 97B90296 */ lhu $t9, 0x296($sp) +/* 109D60 7F0D5230 10000002 */ b .L7F0D523C +/* 109D64 7F0D5234 AFB90238 */ sw $t9, 0x238($sp) +.L7F0D5238: +/* 109D68 7F0D5238 AFB80238 */ sw $t8, 0x238($sp) +.L7F0D523C: +/* 109D6C 7F0D523C 97AA0296 */ lhu $t2, 0x296($sp) +/* 109D70 7F0D5240 8FAC0238 */ lw $t4, 0x238($sp) +/* 109D74 7F0D5244 24010FFF */ li $at, 4095 +/* 109D78 7F0D5248 000A6A03 */ sra $t5, $t2, 8 +/* 109D7C 7F0D524C 000D5A00 */ sll $t3, $t5, 8 +/* 109D80 7F0D5250 314E00FF */ andi $t6, $t2, 0xff +/* 109D84 7F0D5254 016E4825 */ or $t1, $t3, $t6 +/* 109D88 7F0D5258 318F0FFF */ andi $t7, $t4, 0xfff +/* 109D8C 7F0D525C 01E94021 */ addu $t0, $t7, $t1 +/* 109D90 7F0D5260 0028C82B */ sltu $t9, $at, $t0 +/* 109D94 7F0D5264 93AE0287 */ lbu $t6, 0x287($sp) +/* 109D98 7F0D5268 0019C100 */ sll $t8, $t9, 4 +/* 109D9C 7F0D526C 322D00C4 */ andi $t5, $s1, 0xc4 +/* 109DA0 7F0D5270 01B88825 */ or $s1, $t5, $t8 +/* 109DA4 7F0D5274 322A00FF */ andi $t2, $s1, 0xff +/* 109DA8 7F0D5278 24010001 */ li $at, 1 +/* 109DAC 7F0D527C 01895821 */ addu $t3, $t4, $t1 +/* 109DB0 7F0D5280 AFAB0238 */ sw $t3, 0x238($sp) +/* 109DB4 7F0D5284 15C10003 */ bne $t6, $at, .L7F0D5294 +/* 109DB8 7F0D5288 01408825 */ move $s1, $t2 +/* 109DBC 7F0D528C 10000003 */ b .L7F0D529C +/* 109DC0 7F0D5290 A7AB0296 */ sh $t3, 0x296($sp) +.L7F0D5294: +/* 109DC4 7F0D5294 8FAF0238 */ lw $t7, 0x238($sp) +/* 109DC8 7F0D5298 A7AF0294 */ sh $t7, 0x294($sp) +.L7F0D529C: +/* 109DCC 7F0D529C 8FA80238 */ lw $t0, 0x238($sp) +/* 109DD0 7F0D52A0 0008CA02 */ srl $t9, $t0, 8 +/* 109DD4 7F0D52A4 332D0028 */ andi $t5, $t9, 0x28 +/* 109DD8 7F0D52A8 0008C402 */ srl $t8, $t0, 0x10 +/* 109DDC 7F0D52AC 01B85025 */ or $t2, $t5, $t8 +/* 109DE0 7F0D52B0 022A8825 */ or $s1, $s1, $t2 +/* 109DE4 7F0D52B4 322C00FF */ andi $t4, $s1, 0xff +/* 109DE8 7F0D52B8 10003550 */ b .L7F0E27FC +/* 109DEC 7F0D52BC 01808825 */ move $s1, $t4 +.L7F0D52C0: +/* 109DF0 7F0D52C0 1520001F */ bnez $t1, .L7F0D5340 +/* 109DF4 7F0D52C4 93AC0287 */ lbu $t4, 0x287($sp) +/* 109DF8 7F0D52C8 97AE0294 */ lhu $t6, 0x294($sp) +/* 109DFC 7F0D52CC 32CD000F */ andi $t5, $s6, 0xf +/* 109E00 7F0D52D0 2401000F */ li $at, 15 +/* 109E04 7F0D52D4 31CB00FF */ andi $t3, $t6, 0xff +/* 109E08 7F0D52D8 02EB7821 */ addu $t7, $s7, $t3 +/* 109E0C 7F0D52DC 31F9FFFF */ andi $t9, $t7, 0xffff +/* 109E10 7F0D52E0 00194202 */ srl $t0, $t9, 8 +/* 109E14 7F0D52E4 3118FFFF */ andi $t8, $t0, 0xffff +/* 109E18 7F0D52E8 000E6203 */ sra $t4, $t6, 8 +/* 109E1C 7F0D52EC 3189000F */ andi $t1, $t4, 0xf +/* 109E20 7F0D52F0 030D5021 */ addu $t2, $t8, $t5 +/* 109E24 7F0D52F4 01495821 */ addu $t3, $t2, $t1 +/* 109E28 7F0D52F8 A7AF0236 */ sh $t7, 0x236($sp) +/* 109E2C 7F0D52FC 002B782A */ slt $t7, $at, $t3 +/* 109E30 7F0D5300 000FC900 */ sll $t9, $t7, 4 +/* 109E34 7F0D5304 93B70237 */ lbu $s7, 0x237($sp) +/* 109E38 7F0D5308 02CC7021 */ addu $t6, $s6, $t4 +/* 109E3C 7F0D530C 010E7821 */ addu $t7, $t0, $t6 +/* 109E40 7F0D5310 A7A80236 */ sh $t0, 0x236($sp) +/* 109E44 7F0D5314 A7AF0236 */ sh $t7, 0x236($sp) +/* 109E48 7F0D5318 93B60237 */ lbu $s6, 0x237($sp) +/* 109E4C 7F0D531C 323800C4 */ andi $t8, $s1, 0xc4 +/* 109E50 7F0D5320 03386825 */ or $t5, $t9, $t8 +/* 109E54 7F0D5324 000FCA03 */ sra $t9, $t7, 8 +/* 109E58 7F0D5328 32CB0028 */ andi $t3, $s6, 0x28 +/* 109E5C 7F0D532C 0179C025 */ or $t8, $t3, $t9 +/* 109E60 7F0D5330 01B88825 */ or $s1, $t5, $t8 +/* 109E64 7F0D5334 322D00FF */ andi $t5, $s1, 0xff +/* 109E68 7F0D5338 10003530 */ b .L7F0E27FC +/* 109E6C 7F0D533C 01A08825 */ move $s1, $t5 +.L7F0D5340: +/* 109E70 7F0D5340 24010001 */ li $at, 1 +/* 109E74 7F0D5344 15810004 */ bne $t4, $at, .L7F0D5358 +/* 109E78 7F0D5348 97AA0294 */ lhu $t2, 0x294($sp) +/* 109E7C 7F0D534C 97A80296 */ lhu $t0, 0x296($sp) +/* 109E80 7F0D5350 10000002 */ b .L7F0D535C +/* 109E84 7F0D5354 AFA80230 */ sw $t0, 0x230($sp) +.L7F0D5358: +/* 109E88 7F0D5358 AFAA0230 */ sw $t2, 0x230($sp) +.L7F0D535C: +/* 109E8C 7F0D535C 97AE0294 */ lhu $t6, 0x294($sp) +/* 109E90 7F0D5360 8FB80230 */ lw $t8, 0x230($sp) +/* 109E94 7F0D5364 24010FFF */ li $at, 4095 +/* 109E98 7F0D5368 000E4A03 */ sra $t1, $t6, 8 +/* 109E9C 7F0D536C 00097A00 */ sll $t7, $t1, 8 +/* 109EA0 7F0D5370 31CB00FF */ andi $t3, $t6, 0xff +/* 109EA4 7F0D5374 01EBC825 */ or $t9, $t7, $t3 +/* 109EA8 7F0D5378 330D0FFF */ andi $t5, $t8, 0xfff +/* 109EAC 7F0D537C 01B96021 */ addu $t4, $t5, $t9 +/* 109EB0 7F0D5380 002C402B */ sltu $t0, $at, $t4 +/* 109EB4 7F0D5384 93AB0287 */ lbu $t3, 0x287($sp) +/* 109EB8 7F0D5388 00085100 */ sll $t2, $t0, 4 +/* 109EBC 7F0D538C 322900C4 */ andi $t1, $s1, 0xc4 +/* 109EC0 7F0D5390 012A8825 */ or $s1, $t1, $t2 +/* 109EC4 7F0D5394 322E00FF */ andi $t6, $s1, 0xff +/* 109EC8 7F0D5398 24010001 */ li $at, 1 +/* 109ECC 7F0D539C 03197821 */ addu $t7, $t8, $t9 +/* 109ED0 7F0D53A0 AFAF0230 */ sw $t7, 0x230($sp) +/* 109ED4 7F0D53A4 15610003 */ bne $t3, $at, .L7F0D53B4 +/* 109ED8 7F0D53A8 01C08825 */ move $s1, $t6 +/* 109EDC 7F0D53AC 10000003 */ b .L7F0D53BC +/* 109EE0 7F0D53B0 A7AF0296 */ sh $t7, 0x296($sp) +.L7F0D53B4: +/* 109EE4 7F0D53B4 8FAD0230 */ lw $t5, 0x230($sp) +/* 109EE8 7F0D53B8 A7AD0294 */ sh $t5, 0x294($sp) +.L7F0D53BC: +/* 109EEC 7F0D53BC 8FAC0230 */ lw $t4, 0x230($sp) +/* 109EF0 7F0D53C0 000C4202 */ srl $t0, $t4, 8 +/* 109EF4 7F0D53C4 31090028 */ andi $t1, $t0, 0x28 +/* 109EF8 7F0D53C8 000C5402 */ srl $t2, $t4, 0x10 +/* 109EFC 7F0D53CC 012A7025 */ or $t6, $t1, $t2 +/* 109F00 7F0D53D0 022E8825 */ or $s1, $s1, $t6 +/* 109F04 7F0D53D4 323800FF */ andi $t8, $s1, 0xff +/* 109F08 7F0D53D8 10003508 */ b .L7F0E27FC +/* 109F0C 7F0D53DC 03008825 */ move $s1, $t8 +spectrum_op_2A: +/* 109F10 7F0D53E0 8FB9028C */ lw $t9, 0x28c($sp) +/* 109F14 7F0D53E4 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 109F18 7F0D53E8 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 109F1C 7F0D53EC 97AF0298 */ lhu $t7, 0x298($sp) +/* 109F20 7F0D53F0 272B0010 */ addiu $t3, $t9, 0x10 +/* 109F24 7F0D53F4 AFAB028C */ sw $t3, 0x28c($sp) +/* 109F28 7F0D53F8 01AF4821 */ addu $t1, $t5, $t7 +/* 109F2C 7F0D53FC 912A0001 */ lbu $t2, 1($t1) +/* 109F30 7F0D5400 01ED4021 */ addu $t0, $t7, $t5 +/* 109F34 7F0D5404 910C0000 */ lbu $t4, ($t0) +/* 109F38 7F0D5408 93AB0287 */ lbu $t3, 0x287($sp) +/* 109F3C 7F0D540C 000A7200 */ sll $t6, $t2, 8 +/* 109F40 7F0D5410 25F90002 */ addiu $t9, $t7, 2 +/* 109F44 7F0D5414 018EC025 */ or $t8, $t4, $t6 +/* 109F48 7F0D5418 A7B8022E */ sh $t8, 0x22e($sp) +/* 109F4C 7F0D541C 15600006 */ bnez $t3, .L7F0D5438 +/* 109F50 7F0D5420 A7B90298 */ sh $t9, 0x298($sp) +/* 109F54 7F0D5424 3308FFFF */ andi $t0, $t8, 0xffff +/* 109F58 7F0D5428 010D4821 */ addu $t1, $t0, $t5 +/* 109F5C 7F0D542C 91370000 */ lbu $s7, ($t1) +/* 109F60 7F0D5430 100034F2 */ b .L7F0E27FC +/* 109F64 7F0D5434 91360001 */ lbu $s6, 1($t1) +.L7F0D5438: +/* 109F68 7F0D5438 93AA0287 */ lbu $t2, 0x287($sp) +/* 109F6C 7F0D543C 24010001 */ li $at, 1 +/* 109F70 7F0D5440 97AC022E */ lhu $t4, 0x22e($sp) +/* 109F74 7F0D5444 1541000B */ bne $t2, $at, .L7F0D5474 +/* 109F78 7F0D5448 97A9022E */ lhu $t1, 0x22e($sp) +/* 109F7C 7F0D544C 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 109F80 7F0D5450 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 109F84 7F0D5454 01CCC821 */ addu $t9, $t6, $t4 +/* 109F88 7F0D5458 932B0001 */ lbu $t3, 1($t9) +/* 109F8C 7F0D545C 018EC021 */ addu $t8, $t4, $t6 +/* 109F90 7F0D5460 930F0000 */ lbu $t7, ($t8) +/* 109F94 7F0D5464 000B4200 */ sll $t0, $t3, 8 +/* 109F98 7F0D5468 01E86825 */ or $t5, $t7, $t0 +/* 109F9C 7F0D546C 100034E3 */ b .L7F0E27FC +/* 109FA0 7F0D5470 A7AD0296 */ sh $t5, 0x296($sp) +.L7F0D5474: +/* 109FA4 7F0D5474 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 109FA8 7F0D5478 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 109FAC 7F0D547C 01496021 */ addu $t4, $t2, $t1 +/* 109FB0 7F0D5480 91990001 */ lbu $t9, 1($t4) +/* 109FB4 7F0D5484 012AC021 */ addu $t8, $t1, $t2 +/* 109FB8 7F0D5488 930E0000 */ lbu $t6, ($t8) +/* 109FBC 7F0D548C 00195A00 */ sll $t3, $t9, 8 +/* 109FC0 7F0D5490 01CB7825 */ or $t7, $t6, $t3 +/* 109FC4 7F0D5494 100034D9 */ b .L7F0E27FC +/* 109FC8 7F0D5498 A7AF0294 */ sh $t7, 0x294($sp) +spectrum_op_2B: +/* 109FCC 7F0D549C 8FA8028C */ lw $t0, 0x28c($sp) +/* 109FD0 7F0D54A0 93B80287 */ lbu $t8, 0x287($sp) +/* 109FD4 7F0D54A4 93AE0287 */ lbu $t6, 0x287($sp) +/* 109FD8 7F0D54A8 250D0006 */ addiu $t5, $t0, 6 +/* 109FDC 7F0D54AC 1700000B */ bnez $t8, .L7F0D54DC +/* 109FE0 7F0D54B0 AFAD028C */ sw $t5, 0x28c($sp) +/* 109FE4 7F0D54B4 2EEA0001 */ sltiu $t2, $s7, 1 +/* 109FE8 7F0D54B8 26F7FFFF */ addiu $s7, $s7, -1 +/* 109FEC 7F0D54BC 32E900FF */ andi $t1, $s7, 0xff +/* 109FF0 7F0D54C0 0120B825 */ move $s7, $t1 +/* 109FF4 7F0D54C4 114034CD */ beqz $t2, .L7F0E27FC +/* 109FF8 7F0D54C8 AFAA0048 */ sw $t2, 0x48($sp) +/* 109FFC 7F0D54CC 26D6FFFF */ addiu $s6, $s6, -1 +/* 10A000 7F0D54D0 32D900FF */ andi $t9, $s6, 0xff +/* 10A004 7F0D54D4 100034C9 */ b .L7F0E27FC +/* 10A008 7F0D54D8 0320B025 */ move $s6, $t9 +.L7F0D54DC: +/* 10A00C 7F0D54DC 24010001 */ li $at, 1 +/* 10A010 7F0D54E0 15C10005 */ bne $t6, $at, .L7F0D54F8 +/* 10A014 7F0D54E4 97A80294 */ lhu $t0, 0x294($sp) +/* 10A018 7F0D54E8 97AB0296 */ lhu $t3, 0x296($sp) +/* 10A01C 7F0D54EC 256FFFFF */ addiu $t7, $t3, -1 +/* 10A020 7F0D54F0 100034C2 */ b .L7F0E27FC +/* 10A024 7F0D54F4 A7AF0296 */ sh $t7, 0x296($sp) +.L7F0D54F8: +/* 10A028 7F0D54F8 250DFFFF */ addiu $t5, $t0, -1 +/* 10A02C 7F0D54FC 100034BF */ b .L7F0E27FC +/* 10A030 7F0D5500 A7AD0294 */ sh $t5, 0x294($sp) +spectrum_op_2C: +/* 10A034 7F0D5504 8FB8028C */ lw $t8, 0x28c($sp) +/* 10A038 7F0D5508 93A90287 */ lbu $t1, 0x287($sp) +/* 10A03C 7F0D550C 93AB0287 */ lbu $t3, 0x287($sp) +/* 10A040 7F0D5510 270A0004 */ addiu $t2, $t8, 4 +/* 10A044 7F0D5514 15200017 */ bnez $t1, .L7F0D5574 +/* 10A048 7F0D5518 AFAA028C */ sw $t2, 0x28c($sp) +/* 10A04C 7F0D551C 26F70001 */ addiu $s7, $s7, 1 +/* 10A050 7F0D5520 32EC00FF */ andi $t4, $s7, 0xff +/* 10A054 7F0D5524 318E000F */ andi $t6, $t4, 0xf +/* 10A058 7F0D5528 2DCB0001 */ sltiu $t3, $t6, 1 +/* 10A05C 7F0D552C 0180B825 */ move $s7, $t4 +/* 10A060 7F0D5530 2D990001 */ sltiu $t9, $t4, 1 +/* 10A064 7F0D5534 318800A8 */ andi $t0, $t4, 0xa8 +/* 10A068 7F0D5538 322F0001 */ andi $t7, $s1, 1 +/* 10A06C 7F0D553C 01E86825 */ or $t5, $t7, $t0 +/* 10A070 7F0D5540 3AEE0080 */ xori $t6, $s7, 0x80 +/* 10A074 7F0D5544 000BC100 */ sll $t8, $t3, 4 +/* 10A078 7F0D5548 01B85025 */ or $t2, $t5, $t8 +/* 10A07C 7F0D554C 2DCE0001 */ sltiu $t6, $t6, 1 +/* 10A080 7F0D5550 00196180 */ sll $t4, $t9, 6 +/* 10A084 7F0D5554 AFB90044 */ sw $t9, 0x44($sp) +/* 10A088 7F0D5558 014CC825 */ or $t9, $t2, $t4 +/* 10A08C 7F0D555C 000E7880 */ sll $t7, $t6, 2 +/* 10A090 7F0D5560 032F8825 */ or $s1, $t9, $t7 +/* 10A094 7F0D5564 322800FF */ andi $t0, $s1, 0xff +/* 10A098 7F0D5568 01008825 */ move $s1, $t0 +/* 10A09C 7F0D556C 100034A3 */ b .L7F0E27FC +/* 10A0A0 7F0D5570 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D5574: +/* 10A0A4 7F0D5574 24010001 */ li $at, 1 +/* 10A0A8 7F0D5578 15610004 */ bne $t3, $at, .L7F0D558C +/* 10A0AC 7F0D557C 97B80294 */ lhu $t8, 0x294($sp) +/* 10A0B0 7F0D5580 97AD0296 */ lhu $t5, 0x296($sp) +/* 10A0B4 7F0D5584 10000002 */ b .L7F0D5590 +/* 10A0B8 7F0D5588 A3AD022D */ sb $t5, 0x22d($sp) +.L7F0D558C: +/* 10A0BC 7F0D558C A3B8022D */ sb $t8, 0x22d($sp) +.L7F0D5590: +/* 10A0C0 7F0D5590 93A9022D */ lbu $t1, 0x22d($sp) +/* 10A0C4 7F0D5594 322B0001 */ andi $t3, $s1, 1 +/* 10A0C8 7F0D5598 24010001 */ li $at, 1 +/* 10A0CC 7F0D559C 252A0001 */ addiu $t2, $t1, 1 +/* 10A0D0 7F0D55A0 315800A8 */ andi $t8, $t2, 0xa8 +/* 10A0D4 7F0D55A4 01784825 */ or $t1, $t3, $t8 +/* 10A0D8 7F0D55A8 314C00FF */ andi $t4, $t2, 0xff +/* 10A0DC 7F0D55AC 314F000F */ andi $t7, $t2, 0xf +/* 10A0E0 7F0D55B0 2DE80001 */ sltiu $t0, $t7, 1 +/* 10A0E4 7F0D55B4 2D8E0001 */ sltiu $t6, $t4, 1 +/* 10A0E8 7F0D55B8 00086100 */ sll $t4, $t0, 4 +/* 10A0EC 7F0D55BC 314B00FF */ andi $t3, $t2, 0xff +/* 10A0F0 7F0D55C0 39780080 */ xori $t8, $t3, 0x80 +/* 10A0F4 7F0D55C4 012CC825 */ or $t9, $t1, $t4 +/* 10A0F8 7F0D55C8 2F180001 */ sltiu $t8, $t8, 1 +/* 10A0FC 7F0D55CC 000E7980 */ sll $t7, $t6, 6 +/* 10A100 7F0D55D0 AFA80048 */ sw $t0, 0x48($sp) +/* 10A104 7F0D55D4 93AC0287 */ lbu $t4, 0x287($sp) +/* 10A108 7F0D55D8 00184080 */ sll $t0, $t8, 2 +/* 10A10C 7F0D55DC 032F6825 */ or $t5, $t9, $t7 +/* 10A110 7F0D55E0 01A88825 */ or $s1, $t5, $t0 +/* 10A114 7F0D55E4 322900FF */ andi $t1, $s1, 0xff +/* 10A118 7F0D55E8 01208825 */ move $s1, $t1 +/* 10A11C 7F0D55EC AFAE0044 */ sw $t6, 0x44($sp) +/* 10A120 7F0D55F0 15810007 */ bne $t4, $at, .L7F0D5610 +/* 10A124 7F0D55F4 A3AA022D */ sb $t2, 0x22d($sp) +/* 10A128 7F0D55F8 97AE0296 */ lhu $t6, 0x296($sp) +/* 10A12C 7F0D55FC 314F00FF */ andi $t7, $t2, 0xff +/* 10A130 7F0D5600 31D9FF00 */ andi $t9, $t6, 0xff00 +/* 10A134 7F0D5604 032F5825 */ or $t3, $t9, $t7 +/* 10A138 7F0D5608 1000347C */ b .L7F0E27FC +/* 10A13C 7F0D560C A7AB0296 */ sh $t3, 0x296($sp) +.L7F0D5610: +/* 10A140 7F0D5610 97B80294 */ lhu $t8, 0x294($sp) +/* 10A144 7F0D5614 93A8022D */ lbu $t0, 0x22d($sp) +/* 10A148 7F0D5618 330DFF00 */ andi $t5, $t8, 0xff00 +/* 10A14C 7F0D561C 01A84825 */ or $t1, $t5, $t0 +/* 10A150 7F0D5620 10003476 */ b .L7F0E27FC +/* 10A154 7F0D5624 A7A90294 */ sh $t1, 0x294($sp) +spectrum_op_2D: +/* 10A158 7F0D5628 8FAC028C */ lw $t4, 0x28c($sp) +/* 10A15C 7F0D562C 93AA0287 */ lbu $t2, 0x287($sp) +/* 10A160 7F0D5630 93A90287 */ lbu $t1, 0x287($sp) +/* 10A164 7F0D5634 258E0004 */ addiu $t6, $t4, 4 +/* 10A168 7F0D5638 15400018 */ bnez $t2, .L7F0D569C +/* 10A16C 7F0D563C AFAE028C */ sw $t6, 0x28c($sp) +/* 10A170 7F0D5640 32F9000F */ andi $t9, $s7, 0xf +/* 10A174 7F0D5644 26F7FFFF */ addiu $s7, $s7, -1 +/* 10A178 7F0D5648 32E900FF */ andi $t1, $s7, 0xff +/* 10A17C 7F0D564C 2F2F0001 */ sltiu $t7, $t9, 1 +/* 10A180 7F0D5650 000FC100 */ sll $t8, $t7, 4 +/* 10A184 7F0D5654 392A007F */ xori $t2, $t1, 0x7f +/* 10A188 7F0D5658 2D4A0001 */ sltiu $t2, $t2, 1 +/* 10A18C 7F0D565C 322B0001 */ andi $t3, $s1, 1 +/* 10A190 7F0D5660 01788825 */ or $s1, $t3, $t8 +/* 10A194 7F0D5664 000AC880 */ sll $t9, $t2, 2 +/* 10A198 7F0D5668 AFAF0048 */ sw $t7, 0x48($sp) +/* 10A19C 7F0D566C 2D2C0001 */ sltiu $t4, $t1, 1 +/* 10A1A0 7F0D5670 312E00A8 */ andi $t6, $t1, 0xa8 +/* 10A1A4 7F0D5674 01D97825 */ or $t7, $t6, $t9 +/* 10A1A8 7F0D5678 000CC180 */ sll $t8, $t4, 6 +/* 10A1AC 7F0D567C 01F86825 */ or $t5, $t7, $t8 +/* 10A1B0 7F0D5680 36280002 */ ori $t0, $s1, 2 +/* 10A1B4 7F0D5684 010D8825 */ or $s1, $t0, $t5 +/* 10A1B8 7F0D5688 322800FF */ andi $t0, $s1, 0xff +/* 10A1BC 7F0D568C 01008825 */ move $s1, $t0 +/* 10A1C0 7F0D5690 AFAC0044 */ sw $t4, 0x44($sp) +/* 10A1C4 7F0D5694 10003459 */ b .L7F0E27FC +/* 10A1C8 7F0D5698 0120B825 */ move $s7, $t1 +.L7F0D569C: +/* 10A1CC 7F0D569C 24010001 */ li $at, 1 +/* 10A1D0 7F0D56A0 15210004 */ bne $t1, $at, .L7F0D56B4 +/* 10A1D4 7F0D56A4 97AA0294 */ lhu $t2, 0x294($sp) +/* 10A1D8 7F0D56A8 97AC0296 */ lhu $t4, 0x296($sp) +/* 10A1DC 7F0D56AC 10000002 */ b .L7F0D56B8 +/* 10A1E0 7F0D56B0 A3AC022C */ sb $t4, 0x22c($sp) +.L7F0D56B4: +/* 10A1E4 7F0D56B4 A3AA022C */ sb $t2, 0x22c($sp) +.L7F0D56B8: +/* 10A1E8 7F0D56B8 93AE022C */ lbu $t6, 0x22c($sp) +/* 10A1EC 7F0D56BC 322F0001 */ andi $t7, $s1, 1 +/* 10A1F0 7F0D56C0 24010001 */ li $at, 1 +/* 10A1F4 7F0D56C4 31D9000F */ andi $t9, $t6, 0xf +/* 10A1F8 7F0D56C8 2F2B0001 */ sltiu $t3, $t9, 1 +/* 10A1FC 7F0D56CC 000BC100 */ sll $t8, $t3, 4 +/* 10A200 7F0D56D0 01F88825 */ or $s1, $t7, $t8 +/* 10A204 7F0D56D4 25C9FFFF */ addiu $t1, $t6, -1 +/* 10A208 7F0D56D8 312F00FF */ andi $t7, $t1, 0xff +/* 10A20C 7F0D56DC 39F8007F */ xori $t8, $t7, 0x7f +/* 10A210 7F0D56E0 362D0002 */ ori $t5, $s1, 2 +/* 10A214 7F0D56E4 01A08825 */ move $s1, $t5 +/* 10A218 7F0D56E8 2F180001 */ sltiu $t8, $t8, 1 +/* 10A21C 7F0D56EC 312C00FF */ andi $t4, $t1, 0xff +/* 10A220 7F0D56F0 AFAB0048 */ sw $t3, 0x48($sp) +/* 10A224 7F0D56F4 312B00A8 */ andi $t3, $t1, 0xa8 +/* 10A228 7F0D56F8 2D8A0001 */ sltiu $t2, $t4, 1 +/* 10A22C 7F0D56FC 00186880 */ sll $t5, $t8, 2 +/* 10A230 7F0D5700 016D4025 */ or $t0, $t3, $t5 +/* 10A234 7F0D5704 000A7180 */ sll $t6, $t2, 6 +/* 10A238 7F0D5708 93AF0287 */ lbu $t7, 0x287($sp) +/* 10A23C 7F0D570C 010E6025 */ or $t4, $t0, $t6 +/* 10A240 7F0D5710 022C8825 */ or $s1, $s1, $t4 +/* 10A244 7F0D5714 323900FF */ andi $t9, $s1, 0xff +/* 10A248 7F0D5718 03208825 */ move $s1, $t9 +/* 10A24C 7F0D571C AFAA0044 */ sw $t2, 0x44($sp) +/* 10A250 7F0D5720 15E10007 */ bne $t7, $at, .L7F0D5740 +/* 10A254 7F0D5724 A3A9022C */ sb $t1, 0x22c($sp) +/* 10A258 7F0D5728 97B80296 */ lhu $t8, 0x296($sp) +/* 10A25C 7F0D572C 312D00FF */ andi $t5, $t1, 0xff +/* 10A260 7F0D5730 330BFF00 */ andi $t3, $t8, 0xff00 +/* 10A264 7F0D5734 016D5025 */ or $t2, $t3, $t5 +/* 10A268 7F0D5738 10003430 */ b .L7F0E27FC +/* 10A26C 7F0D573C A7AA0296 */ sh $t2, 0x296($sp) +.L7F0D5740: +/* 10A270 7F0D5740 97A80294 */ lhu $t0, 0x294($sp) +/* 10A274 7F0D5744 93AC022C */ lbu $t4, 0x22c($sp) +/* 10A278 7F0D5748 310EFF00 */ andi $t6, $t0, 0xff00 +/* 10A27C 7F0D574C 01CCC825 */ or $t9, $t6, $t4 +/* 10A280 7F0D5750 1000342A */ b .L7F0E27FC +/* 10A284 7F0D5754 A7B90294 */ sh $t9, 0x294($sp) +spectrum_op_2E: +/* 10A288 7F0D5758 8FAF028C */ lw $t7, 0x28c($sp) +/* 10A28C 7F0D575C 93A90287 */ lbu $t1, 0x287($sp) +/* 10A290 7F0D5760 93A80287 */ lbu $t0, 0x287($sp) +/* 10A294 7F0D5764 25F80007 */ addiu $t8, $t7, 7 +/* 10A298 7F0D5768 15200007 */ bnez $t1, .L7F0D5788 +/* 10A29C 7F0D576C AFB8028C */ sw $t8, 0x28c($sp) +/* 10A2A0 7F0D5770 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10A2A4 7F0D5774 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10A2A8 7F0D5778 97AB0298 */ lhu $t3, 0x298($sp) +/* 10A2AC 7F0D577C 016D5021 */ addu $t2, $t3, $t5 +/* 10A2B0 7F0D5780 10000016 */ b .L7F0D57DC +/* 10A2B4 7F0D5784 91570000 */ lbu $s7, ($t2) +.L7F0D5788: +/* 10A2B8 7F0D5788 24010001 */ li $at, 1 +/* 10A2BC 7F0D578C 1501000B */ bne $t0, $at, .L7F0D57BC +/* 10A2C0 7F0D5790 97AD0298 */ lhu $t5, 0x298($sp) +/* 10A2C4 7F0D5794 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 10A2C8 7F0D5798 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 10A2CC 7F0D579C 97AE0298 */ lhu $t6, 0x298($sp) +/* 10A2D0 7F0D57A0 97B80296 */ lhu $t8, 0x296($sp) +/* 10A2D4 7F0D57A4 01CCC821 */ addu $t9, $t6, $t4 +/* 10A2D8 7F0D57A8 932F0000 */ lbu $t7, ($t9) +/* 10A2DC 7F0D57AC 3309FF00 */ andi $t1, $t8, 0xff00 +/* 10A2E0 7F0D57B0 01E95825 */ or $t3, $t7, $t1 +/* 10A2E4 7F0D57B4 10000009 */ b .L7F0D57DC +/* 10A2E8 7F0D57B8 A7AB0296 */ sh $t3, 0x296($sp) +.L7F0D57BC: +/* 10A2EC 7F0D57BC 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10A2F0 7F0D57C0 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10A2F4 7F0D57C4 97AC0294 */ lhu $t4, 0x294($sp) +/* 10A2F8 7F0D57C8 01AA4021 */ addu $t0, $t5, $t2 +/* 10A2FC 7F0D57CC 910E0000 */ lbu $t6, ($t0) +/* 10A300 7F0D57D0 3199FF00 */ andi $t9, $t4, 0xff00 +/* 10A304 7F0D57D4 01D9C025 */ or $t8, $t6, $t9 +/* 10A308 7F0D57D8 A7B80294 */ sh $t8, 0x294($sp) +.L7F0D57DC: +/* 10A30C 7F0D57DC 97AF0298 */ lhu $t7, 0x298($sp) +/* 10A310 7F0D57E0 25E90001 */ addiu $t1, $t7, 1 +/* 10A314 7F0D57E4 10003405 */ b .L7F0E27FC +/* 10A318 7F0D57E8 A7A90298 */ sh $t1, 0x298($sp) +spectrum_op_2F: +/* 10A31C 7F0D57EC 02008027 */ not $s0, $s0 +/* 10A320 7F0D57F0 8FAB028C */ lw $t3, 0x28c($sp) +/* 10A324 7F0D57F4 320A00FF */ andi $t2, $s0, 0xff +/* 10A328 7F0D57F8 314C0028 */ andi $t4, $t2, 0x28 +/* 10A32C 7F0D57FC 322800C5 */ andi $t0, $s1, 0xc5 +/* 10A330 7F0D5800 010C8825 */ or $s1, $t0, $t4 +/* 10A334 7F0D5804 362E0012 */ ori $t6, $s1, 0x12 +/* 10A338 7F0D5808 256D0004 */ addiu $t5, $t3, 4 +/* 10A33C 7F0D580C AFAD028C */ sw $t5, 0x28c($sp) +/* 10A340 7F0D5810 01408025 */ move $s0, $t2 +/* 10A344 7F0D5814 100033F9 */ b .L7F0E27FC +/* 10A348 7F0D5818 31D100FF */ andi $s1, $t6, 0xff +spectrum_op_30: +/* 10A34C 7F0D581C 8FB8028C */ lw $t8, 0x28c($sp) +/* 10A350 7F0D5820 32290001 */ andi $t1, $s1, 1 +/* 10A354 7F0D5824 97AA0298 */ lhu $t2, 0x298($sp) +/* 10A358 7F0D5828 270F0007 */ addiu $t7, $t8, 7 +/* 10A35C 7F0D582C 11200005 */ beqz $t1, .L7F0D5844 +/* 10A360 7F0D5830 AFAF028C */ sw $t7, 0x28c($sp) +/* 10A364 7F0D5834 97AB0298 */ lhu $t3, 0x298($sp) +/* 10A368 7F0D5838 256D0001 */ addiu $t5, $t3, 1 +/* 10A36C 7F0D583C 100033EF */ b .L7F0E27FC +/* 10A370 7F0D5840 A7AD0298 */ sh $t5, 0x298($sp) +.L7F0D5844: +/* 10A374 7F0D5844 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10A378 7F0D5848 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10A37C 7F0D584C 8FAF028C */ lw $t7, 0x28c($sp) +/* 10A380 7F0D5850 01486021 */ addu $t4, $t2, $t0 +/* 10A384 7F0D5854 818E0000 */ lb $t6, ($t4) +/* 10A388 7F0D5858 25E90005 */ addiu $t1, $t7, 5 +/* 10A38C 7F0D585C AFA9028C */ sw $t1, 0x28c($sp) +/* 10A390 7F0D5860 014EC821 */ addu $t9, $t2, $t6 +/* 10A394 7F0D5864 27380001 */ addiu $t8, $t9, 1 +/* 10A398 7F0D5868 A7B80298 */ sh $t8, 0x298($sp) +/* 10A39C 7F0D586C 100033E3 */ b .L7F0E27FC +/* 10A3A0 7F0D5870 AFAE0228 */ sw $t6, 0x228($sp) +spectrum_op_31: +/* 10A3A4 7F0D5874 8FAB028C */ lw $t3, 0x28c($sp) +/* 10A3A8 7F0D5878 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 10A3AC 7F0D587C 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 10A3B0 7F0D5880 97A80298 */ lhu $t0, 0x298($sp) +/* 10A3B4 7F0D5884 256D000A */ addiu $t5, $t3, 0xa +/* 10A3B8 7F0D5888 AFAD028C */ sw $t5, 0x28c($sp) +/* 10A3BC 7F0D588C 0188C821 */ addu $t9, $t4, $t0 +/* 10A3C0 7F0D5890 93380001 */ lbu $t8, 1($t9) +/* 10A3C4 7F0D5894 010C5021 */ addu $t2, $t0, $t4 +/* 10A3C8 7F0D5898 914E0000 */ lbu $t6, ($t2) +/* 10A3CC 7F0D589C 00187A00 */ sll $t7, $t8, 8 +/* 10A3D0 7F0D58A0 250B0002 */ addiu $t3, $t0, 2 +/* 10A3D4 7F0D58A4 01CF4825 */ or $t1, $t6, $t7 +/* 10A3D8 7F0D58A8 A7A90292 */ sh $t1, 0x292($sp) +/* 10A3DC 7F0D58AC 100033D3 */ b .L7F0E27FC +/* 10A3E0 7F0D58B0 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_32: +/* 10A3E4 7F0D58B4 8FAD028C */ lw $t5, 0x28c($sp) +/* 10A3E8 7F0D58B8 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10A3EC 7F0D58BC 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10A3F0 7F0D58C0 97AC0298 */ lhu $t4, 0x298($sp) +/* 10A3F4 7F0D58C4 25AA000D */ addiu $t2, $t5, 0xd +/* 10A3F8 7F0D58C8 AFAA028C */ sw $t2, 0x28c($sp) +/* 10A3FC 7F0D58CC 032C7821 */ addu $t7, $t9, $t4 +/* 10A400 7F0D58D0 91E90001 */ lbu $t1, 1($t7) +/* 10A404 7F0D58D4 0199C021 */ addu $t8, $t4, $t9 +/* 10A408 7F0D58D8 930E0000 */ lbu $t6, ($t8) +/* 10A40C 7F0D58DC 00094200 */ sll $t0, $t1, 8 +/* 10A410 7F0D58E0 258D0002 */ addiu $t5, $t4, 2 +/* 10A414 7F0D58E4 01C85825 */ or $t3, $t6, $t0 +/* 10A418 7F0D58E8 316AFFFF */ andi $t2, $t3, 0xffff +/* 10A41C 7F0D58EC 29415B00 */ slti $at, $t2, 0x5b00 +/* 10A420 7F0D58F0 A7AB0226 */ sh $t3, 0x226($sp) +/* 10A424 7F0D58F4 14200006 */ bnez $at, .L7F0D5910 +/* 10A428 7F0D58F8 A7AD0298 */ sh $t5, 0x298($sp) +/* 10A42C 7F0D58FC 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10A430 7F0D5900 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10A434 7F0D5904 030AC821 */ addu $t9, $t8, $t2 +/* 10A438 7F0D5908 100033BC */ b .L7F0E27FC +/* 10A43C 7F0D590C A3300000 */ sb $s0, ($t9) +.L7F0D5910: +/* 10A440 7F0D5910 97AF0226 */ lhu $t7, 0x226($sp) +/* 10A444 7F0D5914 97B80226 */ lhu $t8, 0x226($sp) +/* 10A448 7F0D5918 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10A44C 7F0D591C 29E15800 */ slti $at, $t7, 0x5800 +/* 10A450 7F0D5920 5420000C */ bnezl $at, .L7F0D5954 +/* 10A454 7F0D5924 2B014000 */ slti $at, $t8, 0x4000 +/* 10A458 7F0D5928 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10A45C 7F0D592C 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 10A460 7F0D5930 24080001 */ li $t0, 1 +/* 10A464 7F0D5934 012F7021 */ addu $t6, $t1, $t7 +/* 10A468 7F0D5938 A1D00000 */ sb $s0, ($t6) +/* 10A46C 7F0D593C 97AC0226 */ lhu $t4, 0x226($sp) +/* 10A470 7F0D5940 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 10A474 7F0D5944 016C6821 */ addu $t5, $t3, $t4 +/* 10A478 7F0D5948 100033AC */ b .L7F0E27FC +/* 10A47C 7F0D594C A1A8A800 */ sb $t0, -0x5800($t5) +/* 10A480 7F0D5950 2B014000 */ slti $at, $t8, 0x4000 +.L7F0D5954: +/* 10A484 7F0D5954 142033A9 */ bnez $at, .L7F0E27FC +/* 10A488 7F0D5958 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10A48C 7F0D595C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10A490 7F0D5960 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 10A494 7F0D5964 24090001 */ li $t1, 1 +/* 10A498 7F0D5968 0158C821 */ addu $t9, $t2, $t8 +/* 10A49C 7F0D596C A3300000 */ sb $s0, ($t9) +/* 10A4A0 7F0D5970 97AF0226 */ lhu $t7, 0x226($sp) +/* 10A4A4 7F0D5974 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 10A4A8 7F0D5978 31EE1800 */ andi $t6, $t7, 0x1800 +/* 10A4AC 7F0D597C 000E58C3 */ sra $t3, $t6, 3 +/* 10A4B0 7F0D5980 31EC00FF */ andi $t4, $t7, 0xff +/* 10A4B4 7F0D5984 016C4025 */ or $t0, $t3, $t4 +/* 10A4B8 7F0D5988 01A85021 */ addu $t2, $t5, $t0 +/* 10A4BC 7F0D598C 1000339B */ b .L7F0E27FC +/* 10A4C0 7F0D5990 A1490000 */ sb $t1, ($t2) +spectrum_op_33: +/* 10A4C4 7F0D5994 8FB8028C */ lw $t8, 0x28c($sp) +/* 10A4C8 7F0D5998 97AE0292 */ lhu $t6, 0x292($sp) +/* 10A4CC 7F0D599C 27190006 */ addiu $t9, $t8, 6 +/* 10A4D0 7F0D59A0 25CF0001 */ addiu $t7, $t6, 1 +/* 10A4D4 7F0D59A4 AFB9028C */ sw $t9, 0x28c($sp) +/* 10A4D8 7F0D59A8 10003394 */ b .L7F0E27FC +/* 10A4DC 7F0D59AC A7AF0292 */ sh $t7, 0x292($sp) +spectrum_op_34: +/* 10A4E0 7F0D59B0 8FAB028C */ lw $t3, 0x28c($sp) +/* 10A4E4 7F0D59B4 93AD0287 */ lbu $t5, 0x287($sp) +/* 10A4E8 7F0D59B8 00164200 */ sll $t0, $s6, 8 +/* 10A4EC 7F0D59BC 256C000B */ addiu $t4, $t3, 0xb +/* 10A4F0 7F0D59C0 15A00004 */ bnez $t5, .L7F0D59D4 +/* 10A4F4 7F0D59C4 AFAC028C */ sw $t4, 0x28c($sp) +/* 10A4F8 7F0D59C8 01174825 */ or $t1, $t0, $s7 +/* 10A4FC 7F0D59CC 10000016 */ b .L7F0D5A28 +/* 10A500 7F0D59D0 A7A90224 */ sh $t1, 0x224($sp) +.L7F0D59D4: +/* 10A504 7F0D59D4 8FAA028C */ lw $t2, 0x28c($sp) +/* 10A508 7F0D59D8 93B90287 */ lbu $t9, 0x287($sp) +/* 10A50C 7F0D59DC 24010001 */ li $at, 1 +/* 10A510 7F0D59E0 25580008 */ addiu $t8, $t2, 8 +/* 10A514 7F0D59E4 17210004 */ bne $t9, $at, .L7F0D59F8 +/* 10A518 7F0D59E8 AFB8028C */ sw $t8, 0x28c($sp) +/* 10A51C 7F0D59EC 97AE0296 */ lhu $t6, 0x296($sp) +/* 10A520 7F0D59F0 10000003 */ b .L7F0D5A00 +/* 10A524 7F0D59F4 AFAE0048 */ sw $t6, 0x48($sp) +.L7F0D59F8: +/* 10A528 7F0D59F8 97AF0294 */ lhu $t7, 0x294($sp) +/* 10A52C 7F0D59FC AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D5A00: +/* 10A530 7F0D5A00 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 10A534 7F0D5A04 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 10A538 7F0D5A08 97AB0298 */ lhu $t3, 0x298($sp) +/* 10A53C 7F0D5A0C 8FA90048 */ lw $t1, 0x48($sp) +/* 10A540 7F0D5A10 016C6821 */ addu $t5, $t3, $t4 +/* 10A544 7F0D5A14 81A80000 */ lb $t0, ($t5) +/* 10A548 7F0D5A18 25780001 */ addiu $t8, $t3, 1 +/* 10A54C 7F0D5A1C A7B80298 */ sh $t8, 0x298($sp) +/* 10A550 7F0D5A20 01095021 */ addu $t2, $t0, $t1 +/* 10A554 7F0D5A24 A7AA0224 */ sh $t2, 0x224($sp) +.L7F0D5A28: +/* 10A558 7F0D5A28 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10A55C 7F0D5A2C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10A560 7F0D5A30 97B90224 */ lhu $t9, 0x224($sp) +/* 10A564 7F0D5A34 032E7821 */ addu $t7, $t9, $t6 +/* 10A568 7F0D5A38 91EC0000 */ lbu $t4, ($t7) +/* 10A56C 7F0D5A3C 32390001 */ andi $t9, $s1, 1 +/* 10A570 7F0D5A40 258D0001 */ addiu $t5, $t4, 1 +/* 10A574 7F0D5A44 31AF00A8 */ andi $t7, $t5, 0xa8 +/* 10A578 7F0D5A48 A3AC0223 */ sb $t4, 0x223($sp) +/* 10A57C 7F0D5A4C 032F6025 */ or $t4, $t9, $t7 +/* 10A580 7F0D5A50 31A800FF */ andi $t0, $t5, 0xff +/* 10A584 7F0D5A54 31AB000F */ andi $t3, $t5, 0xf +/* 10A588 7F0D5A58 2D780001 */ sltiu $t8, $t3, 1 +/* 10A58C 7F0D5A5C 2D090001 */ sltiu $t1, $t0, 1 +/* 10A590 7F0D5A60 00184100 */ sll $t0, $t8, 4 +/* 10A594 7F0D5A64 31B900FF */ andi $t9, $t5, 0xff +/* 10A598 7F0D5A68 3B2F0080 */ xori $t7, $t9, 0x80 +/* 10A59C 7F0D5A6C 01885025 */ or $t2, $t4, $t0 +/* 10A5A0 7F0D5A70 97A80224 */ lhu $t0, 0x224($sp) +/* 10A5A4 7F0D5A74 2DEF0001 */ sltiu $t7, $t7, 1 +/* 10A5A8 7F0D5A78 00095980 */ sll $t3, $t1, 6 +/* 10A5AC 7F0D5A7C AFB80048 */ sw $t8, 0x48($sp) +/* 10A5B0 7F0D5A80 000FC080 */ sll $t8, $t7, 2 +/* 10A5B4 7F0D5A84 014B7025 */ or $t6, $t2, $t3 +/* 10A5B8 7F0D5A88 01D88825 */ or $s1, $t6, $t8 +/* 10A5BC 7F0D5A8C 322C00FF */ andi $t4, $s1, 0xff +/* 10A5C0 7F0D5A90 29015B00 */ slti $at, $t0, 0x5b00 +/* 10A5C4 7F0D5A94 01808825 */ move $s1, $t4 +/* 10A5C8 7F0D5A98 AFA90044 */ sw $t1, 0x44($sp) +/* 10A5CC 7F0D5A9C 14200006 */ bnez $at, .L7F0D5AB8 +/* 10A5D0 7F0D5AA0 A3AD0223 */ sb $t5, 0x223($sp) +/* 10A5D4 7F0D5AA4 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10A5D8 7F0D5AA8 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10A5DC 7F0D5AAC 01485821 */ addu $t3, $t2, $t0 +/* 10A5E0 7F0D5AB0 10003352 */ b .L7F0E27FC +/* 10A5E4 7F0D5AB4 A16D0000 */ sb $t5, ($t3) +.L7F0D5AB8: +/* 10A5E8 7F0D5AB8 97AD0224 */ lhu $t5, 0x224($sp) +/* 10A5EC 7F0D5ABC 97A90224 */ lhu $t1, 0x224($sp) +/* 10A5F0 7F0D5AC0 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10A5F4 7F0D5AC4 29A15800 */ slti $at, $t5, 0x5800 +/* 10A5F8 7F0D5AC8 5420000D */ bnezl $at, .L7F0D5B00 +/* 10A5FC 7F0D5ACC 29214000 */ slti $at, $t1, 0x4000 +/* 10A600 7F0D5AD0 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10A604 7F0D5AD4 93B90223 */ lbu $t9, 0x223($sp) +/* 10A608 7F0D5AD8 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 10A60C 7F0D5ADC 01ED7021 */ addu $t6, $t7, $t5 +/* 10A610 7F0D5AE0 A1D90000 */ sb $t9, ($t6) +/* 10A614 7F0D5AE4 97AA0224 */ lhu $t2, 0x224($sp) +/* 10A618 7F0D5AE8 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 10A61C 7F0D5AEC 24180001 */ li $t8, 1 +/* 10A620 7F0D5AF0 018A4021 */ addu $t0, $t4, $t2 +/* 10A624 7F0D5AF4 10003341 */ b .L7F0E27FC +/* 10A628 7F0D5AF8 A118A800 */ sb $t8, -0x5800($t0) +/* 10A62C 7F0D5AFC 29214000 */ slti $at, $t1, 0x4000 +.L7F0D5B00: +/* 10A630 7F0D5B00 1420333E */ bnez $at, .L7F0E27FC +/* 10A634 7F0D5B04 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10A638 7F0D5B08 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10A63C 7F0D5B0C 93AB0223 */ lbu $t3, 0x223($sp) +/* 10A640 7F0D5B10 24190001 */ li $t9, 1 +/* 10A644 7F0D5B14 01E96821 */ addu $t5, $t7, $t1 +/* 10A648 7F0D5B18 A1AB0000 */ sb $t3, ($t5) +/* 10A64C 7F0D5B1C 97AE0224 */ lhu $t6, 0x224($sp) +/* 10A650 7F0D5B20 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 10A654 7F0D5B24 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 10A658 7F0D5B28 31CC1800 */ andi $t4, $t6, 0x1800 +/* 10A65C 7F0D5B2C 000C50C3 */ sra $t2, $t4, 3 +/* 10A660 7F0D5B30 31D800FF */ andi $t8, $t6, 0xff +/* 10A664 7F0D5B34 01584025 */ or $t0, $t2, $t8 +/* 10A668 7F0D5B38 01E84821 */ addu $t1, $t7, $t0 +/* 10A66C 7F0D5B3C 1000332F */ b .L7F0E27FC +/* 10A670 7F0D5B40 A1390000 */ sb $t9, ($t1) +spectrum_op_35: +/* 10A674 7F0D5B44 8FAB028C */ lw $t3, 0x28c($sp) +/* 10A678 7F0D5B48 93AC0287 */ lbu $t4, 0x287($sp) +/* 10A67C 7F0D5B4C 00167200 */ sll $t6, $s6, 8 +/* 10A680 7F0D5B50 256D000B */ addiu $t5, $t3, 0xb +/* 10A684 7F0D5B54 15800004 */ bnez $t4, .L7F0D5B68 +/* 10A688 7F0D5B58 AFAD028C */ sw $t5, 0x28c($sp) +/* 10A68C 7F0D5B5C 01D75025 */ or $t2, $t6, $s7 +/* 10A690 7F0D5B60 10000016 */ b .L7F0D5BBC +/* 10A694 7F0D5B64 A7AA0220 */ sh $t2, 0x220($sp) +.L7F0D5B68: +/* 10A698 7F0D5B68 8FB8028C */ lw $t8, 0x28c($sp) +/* 10A69C 7F0D5B6C 93A80287 */ lbu $t0, 0x287($sp) +/* 10A6A0 7F0D5B70 24010001 */ li $at, 1 +/* 10A6A4 7F0D5B74 270F0008 */ addiu $t7, $t8, 8 +/* 10A6A8 7F0D5B78 15010004 */ bne $t0, $at, .L7F0D5B8C +/* 10A6AC 7F0D5B7C AFAF028C */ sw $t7, 0x28c($sp) +/* 10A6B0 7F0D5B80 97B90296 */ lhu $t9, 0x296($sp) +/* 10A6B4 7F0D5B84 10000003 */ b .L7F0D5B94 +/* 10A6B8 7F0D5B88 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D5B8C: +/* 10A6BC 7F0D5B8C 97A90294 */ lhu $t1, 0x294($sp) +/* 10A6C0 7F0D5B90 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D5B94: +/* 10A6C4 7F0D5B94 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10A6C8 7F0D5B98 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10A6CC 7F0D5B9C 97AB0298 */ lhu $t3, 0x298($sp) +/* 10A6D0 7F0D5BA0 8FAA0048 */ lw $t2, 0x48($sp) +/* 10A6D4 7F0D5BA4 016D6021 */ addu $t4, $t3, $t5 +/* 10A6D8 7F0D5BA8 818E0000 */ lb $t6, ($t4) +/* 10A6DC 7F0D5BAC 256F0001 */ addiu $t7, $t3, 1 +/* 10A6E0 7F0D5BB0 A7AF0298 */ sh $t7, 0x298($sp) +/* 10A6E4 7F0D5BB4 01CAC021 */ addu $t8, $t6, $t2 +/* 10A6E8 7F0D5BB8 A7B80220 */ sh $t8, 0x220($sp) +.L7F0D5BBC: +/* 10A6EC 7F0D5BBC 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10A6F0 7F0D5BC0 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10A6F4 7F0D5BC4 97A80220 */ lhu $t0, 0x220($sp) +/* 10A6F8 7F0D5BC8 32380001 */ andi $t8, $s1, 1 +/* 10A6FC 7F0D5BCC 01194821 */ addu $t1, $t0, $t9 +/* 10A700 7F0D5BD0 912D0000 */ lbu $t5, ($t1) +/* 10A704 7F0D5BD4 31AC000F */ andi $t4, $t5, 0xf +/* 10A708 7F0D5BD8 2D8E0001 */ sltiu $t6, $t4, 1 +/* 10A70C 7F0D5BDC 000E5100 */ sll $t2, $t6, 4 +/* 10A710 7F0D5BE0 030A8825 */ or $s1, $t8, $t2 +/* 10A714 7F0D5BE4 25A8FFFF */ addiu $t0, $t5, -1 +/* 10A718 7F0D5BE8 311800FF */ andi $t8, $t0, 0xff +/* 10A71C 7F0D5BEC 3B0A007F */ xori $t2, $t8, 0x7f +/* 10A720 7F0D5BF0 362B0002 */ ori $t3, $s1, 2 +/* 10A724 7F0D5BF4 AFAE0048 */ sw $t6, 0x48($sp) +/* 10A728 7F0D5BF8 310E00A8 */ andi $t6, $t0, 0xa8 +/* 10A72C 7F0D5BFC 01608825 */ move $s1, $t3 +/* 10A730 7F0D5C00 2D4A0001 */ sltiu $t2, $t2, 1 +/* 10A734 7F0D5C04 311900FF */ andi $t9, $t0, 0xff +/* 10A738 7F0D5C08 A3AD021F */ sb $t5, 0x21f($sp) +/* 10A73C 7F0D5C0C A3A8021F */ sb $t0, 0x21f($sp) +/* 10A740 7F0D5C10 2F290001 */ sltiu $t1, $t9, 1 +/* 10A744 7F0D5C14 000A5880 */ sll $t3, $t2, 2 +/* 10A748 7F0D5C18 97A80220 */ lhu $t0, 0x220($sp) +/* 10A74C 7F0D5C1C 01CB7825 */ or $t7, $t6, $t3 +/* 10A750 7F0D5C20 00096980 */ sll $t5, $t1, 6 +/* 10A754 7F0D5C24 01EDC825 */ or $t9, $t7, $t5 +/* 10A758 7F0D5C28 02398825 */ or $s1, $s1, $t9 +/* 10A75C 7F0D5C2C 322C00FF */ andi $t4, $s1, 0xff +/* 10A760 7F0D5C30 29015B00 */ slti $at, $t0, 0x5b00 +/* 10A764 7F0D5C34 01808825 */ move $s1, $t4 +/* 10A768 7F0D5C38 14200007 */ bnez $at, .L7F0D5C58 +/* 10A76C 7F0D5C3C AFA90044 */ sw $t1, 0x44($sp) +/* 10A770 7F0D5C40 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10A774 7F0D5C44 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10A778 7F0D5C48 93B8021F */ lbu $t8, 0x21f($sp) +/* 10A77C 7F0D5C4C 01487021 */ addu $t6, $t2, $t0 +/* 10A780 7F0D5C50 100032EA */ b .L7F0E27FC +/* 10A784 7F0D5C54 A1D80000 */ sb $t8, ($t6) +.L7F0D5C58: +/* 10A788 7F0D5C58 97AB0220 */ lhu $t3, 0x220($sp) +/* 10A78C 7F0D5C5C 97B80220 */ lhu $t8, 0x220($sp) +/* 10A790 7F0D5C60 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10A794 7F0D5C64 29615800 */ slti $at, $t3, 0x5800 +/* 10A798 7F0D5C68 5420000D */ bnezl $at, .L7F0D5CA0 +/* 10A79C 7F0D5C6C 2B014000 */ slti $at, $t8, 0x4000 +/* 10A7A0 7F0D5C70 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10A7A4 7F0D5C74 93A9021F */ lbu $t1, 0x21f($sp) +/* 10A7A8 7F0D5C78 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 10A7AC 7F0D5C7C 01EB6821 */ addu $t5, $t7, $t3 +/* 10A7B0 7F0D5C80 A1A90000 */ sb $t1, ($t5) +/* 10A7B4 7F0D5C84 97AA0220 */ lhu $t2, 0x220($sp) +/* 10A7B8 7F0D5C88 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 10A7BC 7F0D5C8C 24190001 */ li $t9, 1 +/* 10A7C0 7F0D5C90 018A4021 */ addu $t0, $t4, $t2 +/* 10A7C4 7F0D5C94 100032D9 */ b .L7F0E27FC +/* 10A7C8 7F0D5C98 A119A800 */ sb $t9, -0x5800($t0) +/* 10A7CC 7F0D5C9C 2B014000 */ slti $at, $t8, 0x4000 +.L7F0D5CA0: +/* 10A7D0 7F0D5CA0 142032D6 */ bnez $at, .L7F0E27FC +/* 10A7D4 7F0D5CA4 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10A7D8 7F0D5CA8 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10A7DC 7F0D5CAC 93AE021F */ lbu $t6, 0x21f($sp) +/* 10A7E0 7F0D5CB0 24090001 */ li $t1, 1 +/* 10A7E4 7F0D5CB4 01F85821 */ addu $t3, $t7, $t8 +/* 10A7E8 7F0D5CB8 A16E0000 */ sb $t6, ($t3) +/* 10A7EC 7F0D5CBC 97AD0220 */ lhu $t5, 0x220($sp) +/* 10A7F0 7F0D5CC0 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 10A7F4 7F0D5CC4 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 10A7F8 7F0D5CC8 31AC1800 */ andi $t4, $t5, 0x1800 +/* 10A7FC 7F0D5CCC 000C50C3 */ sra $t2, $t4, 3 +/* 10A800 7F0D5CD0 31B900FF */ andi $t9, $t5, 0xff +/* 10A804 7F0D5CD4 01594025 */ or $t0, $t2, $t9 +/* 10A808 7F0D5CD8 01E8C021 */ addu $t8, $t7, $t0 +/* 10A80C 7F0D5CDC 100032C7 */ b .L7F0E27FC +/* 10A810 7F0D5CE0 A3090000 */ sb $t1, ($t8) +spectrum_op_36: +/* 10A814 7F0D5CE4 8FAE028C */ lw $t6, 0x28c($sp) +/* 10A818 7F0D5CE8 93AC0287 */ lbu $t4, 0x287($sp) +/* 10A81C 7F0D5CEC 00166A00 */ sll $t5, $s6, 8 +/* 10A820 7F0D5CF0 25CB000A */ addiu $t3, $t6, 0xa +/* 10A824 7F0D5CF4 15800004 */ bnez $t4, .L7F0D5D08 +/* 10A828 7F0D5CF8 AFAB028C */ sw $t3, 0x28c($sp) +/* 10A82C 7F0D5CFC 01B75025 */ or $t2, $t5, $s7 +/* 10A830 7F0D5D00 10000016 */ b .L7F0D5D5C +/* 10A834 7F0D5D04 A7AA021C */ sh $t2, 0x21c($sp) +.L7F0D5D08: +/* 10A838 7F0D5D08 8FB9028C */ lw $t9, 0x28c($sp) +/* 10A83C 7F0D5D0C 93A80287 */ lbu $t0, 0x287($sp) +/* 10A840 7F0D5D10 24010001 */ li $at, 1 +/* 10A844 7F0D5D14 272F0005 */ addiu $t7, $t9, 5 +/* 10A848 7F0D5D18 15010004 */ bne $t0, $at, .L7F0D5D2C +/* 10A84C 7F0D5D1C AFAF028C */ sw $t7, 0x28c($sp) +/* 10A850 7F0D5D20 97A90296 */ lhu $t1, 0x296($sp) +/* 10A854 7F0D5D24 10000003 */ b .L7F0D5D34 +/* 10A858 7F0D5D28 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D5D2C: +/* 10A85C 7F0D5D2C 97B80294 */ lhu $t8, 0x294($sp) +/* 10A860 7F0D5D30 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D5D34: +/* 10A864 7F0D5D34 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10A868 7F0D5D38 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10A86C 7F0D5D3C 97AE0298 */ lhu $t6, 0x298($sp) +/* 10A870 7F0D5D40 8FAA0048 */ lw $t2, 0x48($sp) +/* 10A874 7F0D5D44 01CB6021 */ addu $t4, $t6, $t3 +/* 10A878 7F0D5D48 818D0000 */ lb $t5, ($t4) +/* 10A87C 7F0D5D4C 25CF0001 */ addiu $t7, $t6, 1 +/* 10A880 7F0D5D50 A7AF0298 */ sh $t7, 0x298($sp) +/* 10A884 7F0D5D54 01AAC821 */ addu $t9, $t5, $t2 +/* 10A888 7F0D5D58 A7B9021C */ sh $t9, 0x21c($sp) +.L7F0D5D5C: +/* 10A88C 7F0D5D5C 97A8021C */ lhu $t0, 0x21c($sp) +/* 10A890 7F0D5D60 97AA021C */ lhu $t2, 0x21c($sp) +/* 10A894 7F0D5D64 97A90298 */ lhu $t1, 0x298($sp) +/* 10A898 7F0D5D68 29015B00 */ slti $at, $t0, 0x5b00 +/* 10A89C 7F0D5D6C 14200007 */ bnez $at, .L7F0D5D8C +/* 10A8A0 7F0D5D70 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10A8A4 7F0D5D74 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10A8A8 7F0D5D78 01385821 */ addu $t3, $t1, $t8 +/* 10A8AC 7F0D5D7C 916C0000 */ lbu $t4, ($t3) +/* 10A8B0 7F0D5D80 03086821 */ addu $t5, $t8, $t0 +/* 10A8B4 7F0D5D84 10000025 */ b .L7F0D5E1C +/* 10A8B8 7F0D5D88 A1AC0000 */ sb $t4, ($t5) +.L7F0D5D8C: +/* 10A8BC 7F0D5D8C 29415800 */ slti $at, $t2, 0x5800 +/* 10A8C0 7F0D5D90 1420000F */ bnez $at, .L7F0D5DD0 +/* 10A8C4 7F0D5D94 97B9021C */ lhu $t9, 0x21c($sp) +/* 10A8C8 7F0D5D98 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10A8CC 7F0D5D9C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10A8D0 7F0D5DA0 97B90298 */ lhu $t9, 0x298($sp) +/* 10A8D4 7F0D5DA4 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 10A8D8 7F0D5DA8 01CA5821 */ addu $t3, $t6, $t2 +/* 10A8DC 7F0D5DAC 032E7821 */ addu $t7, $t9, $t6 +/* 10A8E0 7F0D5DB0 91E90000 */ lbu $t1, ($t7) +/* 10A8E4 7F0D5DB4 24180001 */ li $t8, 1 +/* 10A8E8 7F0D5DB8 A1690000 */ sb $t1, ($t3) +/* 10A8EC 7F0D5DBC 97AC021C */ lhu $t4, 0x21c($sp) +/* 10A8F0 7F0D5DC0 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 10A8F4 7F0D5DC4 010C6821 */ addu $t5, $t0, $t4 +/* 10A8F8 7F0D5DC8 10000014 */ b .L7F0D5E1C +/* 10A8FC 7F0D5DCC A1B8A800 */ sb $t8, -0x5800($t5) +.L7F0D5DD0: +/* 10A900 7F0D5DD0 2B214000 */ slti $at, $t9, 0x4000 +/* 10A904 7F0D5DD4 14200011 */ bnez $at, .L7F0D5E1C +/* 10A908 7F0D5DD8 97AF0298 */ lhu $t7, 0x298($sp) +/* 10A90C 7F0D5DDC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10A910 7F0D5DE0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10A914 7F0D5DE4 24080001 */ li $t0, 1 +/* 10A918 7F0D5DE8 01EE5021 */ addu $t2, $t7, $t6 +/* 10A91C 7F0D5DEC 91490000 */ lbu $t1, ($t2) +/* 10A920 7F0D5DF0 01D95821 */ addu $t3, $t6, $t9 +/* 10A924 7F0D5DF4 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 10A928 7F0D5DF8 A1690000 */ sb $t1, ($t3) +/* 10A92C 7F0D5DFC 97AC021C */ lhu $t4, 0x21c($sp) +/* 10A930 7F0D5E00 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 10A934 7F0D5E04 31981800 */ andi $t8, $t4, 0x1800 +/* 10A938 7F0D5E08 001868C3 */ sra $t5, $t8, 3 +/* 10A93C 7F0D5E0C 318F00FF */ andi $t7, $t4, 0xff +/* 10A940 7F0D5E10 01AF5025 */ or $t2, $t5, $t7 +/* 10A944 7F0D5E14 01CAC821 */ addu $t9, $t6, $t2 +/* 10A948 7F0D5E18 A3280000 */ sb $t0, ($t9) +.L7F0D5E1C: +/* 10A94C 7F0D5E1C 97A90298 */ lhu $t1, 0x298($sp) +/* 10A950 7F0D5E20 252B0001 */ addiu $t3, $t1, 1 +/* 10A954 7F0D5E24 10003275 */ b .L7F0E27FC +/* 10A958 7F0D5E28 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_37: +/* 10A95C 7F0D5E2C 8FB8028C */ lw $t8, 0x28c($sp) +/* 10A960 7F0D5E30 322D00C4 */ andi $t5, $s1, 0xc4 +/* 10A964 7F0D5E34 35AF0001 */ ori $t7, $t5, 1 +/* 10A968 7F0D5E38 320E0028 */ andi $t6, $s0, 0x28 +/* 10A96C 7F0D5E3C 01EE8825 */ or $s1, $t7, $t6 +/* 10A970 7F0D5E40 322A00FF */ andi $t2, $s1, 0xff +/* 10A974 7F0D5E44 270C0004 */ addiu $t4, $t8, 4 +/* 10A978 7F0D5E48 AFAC028C */ sw $t4, 0x28c($sp) +/* 10A97C 7F0D5E4C 1000326B */ b .L7F0E27FC +/* 10A980 7F0D5E50 01408825 */ move $s1, $t2 +spectrum_op_38: +/* 10A984 7F0D5E54 8FA8028C */ lw $t0, 0x28c($sp) +/* 10A988 7F0D5E58 32290001 */ andi $t1, $s1, 1 +/* 10A98C 7F0D5E5C 97AB0298 */ lhu $t3, 0x298($sp) +/* 10A990 7F0D5E60 25190007 */ addiu $t9, $t0, 7 +/* 10A994 7F0D5E64 1120000C */ beqz $t1, .L7F0D5E98 +/* 10A998 7F0D5E68 AFB9028C */ sw $t9, 0x28c($sp) +/* 10A99C 7F0D5E6C 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10A9A0 7F0D5E70 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10A9A4 7F0D5E74 27280005 */ addiu $t0, $t9, 5 +/* 10A9A8 7F0D5E78 01786021 */ addu $t4, $t3, $t8 +/* 10A9AC 7F0D5E7C 818D0000 */ lb $t5, ($t4) +/* 10A9B0 7F0D5E80 AFA8028C */ sw $t0, 0x28c($sp) +/* 10A9B4 7F0D5E84 016D7821 */ addu $t7, $t3, $t5 +/* 10A9B8 7F0D5E88 25EE0001 */ addiu $t6, $t7, 1 +/* 10A9BC 7F0D5E8C A7AE0298 */ sh $t6, 0x298($sp) +/* 10A9C0 7F0D5E90 1000325A */ b .L7F0E27FC +/* 10A9C4 7F0D5E94 AFAD0218 */ sw $t5, 0x218($sp) +.L7F0D5E98: +/* 10A9C8 7F0D5E98 97B90298 */ lhu $t9, 0x298($sp) +/* 10A9CC 7F0D5E9C 27290001 */ addiu $t1, $t9, 1 +/* 10A9D0 7F0D5EA0 10003256 */ b .L7F0E27FC +/* 10A9D4 7F0D5EA4 A7A90298 */ sh $t1, 0x298($sp) +spectrum_op_39: +/* 10A9D8 7F0D5EA8 8FB8028C */ lw $t8, 0x28c($sp) +/* 10A9DC 7F0D5EAC 93AB0287 */ lbu $t3, 0x287($sp) +/* 10A9E0 7F0D5EB0 97AD0292 */ lhu $t5, 0x292($sp) +/* 10A9E4 7F0D5EB4 270C000B */ addiu $t4, $t8, 0xb +/* 10A9E8 7F0D5EB8 1560001E */ bnez $t3, .L7F0D5F34 +/* 10A9EC 7F0D5EBC AFAC028C */ sw $t4, 0x28c($sp) +/* 10A9F0 7F0D5EC0 31AF00FF */ andi $t7, $t5, 0xff +/* 10A9F4 7F0D5EC4 02EF7021 */ addu $t6, $s7, $t7 +/* 10A9F8 7F0D5EC8 31CAFFFF */ andi $t2, $t6, 0xffff +/* 10A9FC 7F0D5ECC 000A4202 */ srl $t0, $t2, 8 +/* 10AA00 7F0D5ED0 3109FFFF */ andi $t1, $t0, 0xffff +/* 10AA04 7F0D5ED4 32D9000F */ andi $t9, $s6, 0xf +/* 10AA08 7F0D5ED8 000D6203 */ sra $t4, $t5, 8 +/* 10AA0C 7F0D5EDC 318B000F */ andi $t3, $t4, 0xf +/* 10AA10 7F0D5EE0 0139C021 */ addu $t8, $t1, $t9 +/* 10AA14 7F0D5EE4 030B7821 */ addu $t7, $t8, $t3 +/* 10AA18 7F0D5EE8 A7AE0216 */ sh $t6, 0x216($sp) +/* 10AA1C 7F0D5EEC 2401000F */ li $at, 15 +/* 10AA20 7F0D5EF0 002F702A */ slt $t6, $at, $t7 +/* 10AA24 7F0D5EF4 000E5100 */ sll $t2, $t6, 4 +/* 10AA28 7F0D5EF8 93B70217 */ lbu $s7, 0x217($sp) +/* 10AA2C 7F0D5EFC 02CC6821 */ addu $t5, $s6, $t4 +/* 10AA30 7F0D5F00 010D7021 */ addu $t6, $t0, $t5 +/* 10AA34 7F0D5F04 A7A80216 */ sh $t0, 0x216($sp) +/* 10AA38 7F0D5F08 A7AE0216 */ sh $t6, 0x216($sp) +/* 10AA3C 7F0D5F0C 93B60217 */ lbu $s6, 0x217($sp) +/* 10AA40 7F0D5F10 322900C4 */ andi $t1, $s1, 0xc4 +/* 10AA44 7F0D5F14 0149C825 */ or $t9, $t2, $t1 +/* 10AA48 7F0D5F18 000E5203 */ sra $t2, $t6, 8 +/* 10AA4C 7F0D5F1C 32CF0028 */ andi $t7, $s6, 0x28 +/* 10AA50 7F0D5F20 01EA4825 */ or $t1, $t7, $t2 +/* 10AA54 7F0D5F24 03298825 */ or $s1, $t9, $t1 +/* 10AA58 7F0D5F28 323900FF */ andi $t9, $s1, 0xff +/* 10AA5C 7F0D5F2C 10003233 */ b .L7F0E27FC +/* 10AA60 7F0D5F30 03208825 */ move $s1, $t9 +.L7F0D5F34: +/* 10AA64 7F0D5F34 93AC0287 */ lbu $t4, 0x287($sp) +/* 10AA68 7F0D5F38 24010001 */ li $at, 1 +/* 10AA6C 7F0D5F3C 97B80294 */ lhu $t8, 0x294($sp) +/* 10AA70 7F0D5F40 15810003 */ bne $t4, $at, .L7F0D5F50 +/* 10AA74 7F0D5F44 97A80296 */ lhu $t0, 0x296($sp) +/* 10AA78 7F0D5F48 10000002 */ b .L7F0D5F54 +/* 10AA7C 7F0D5F4C AFA80210 */ sw $t0, 0x210($sp) +.L7F0D5F50: +/* 10AA80 7F0D5F50 AFB80210 */ sw $t8, 0x210($sp) +.L7F0D5F54: +/* 10AA84 7F0D5F54 97AD0292 */ lhu $t5, 0x292($sp) +/* 10AA88 7F0D5F58 8FA90210 */ lw $t1, 0x210($sp) +/* 10AA8C 7F0D5F5C 24010FFF */ li $at, 4095 +/* 10AA90 7F0D5F60 000D5A03 */ sra $t3, $t5, 8 +/* 10AA94 7F0D5F64 000B7200 */ sll $t6, $t3, 8 +/* 10AA98 7F0D5F68 31AF00FF */ andi $t7, $t5, 0xff +/* 10AA9C 7F0D5F6C 01CF5025 */ or $t2, $t6, $t7 +/* 10AAA0 7F0D5F70 31390FFF */ andi $t9, $t1, 0xfff +/* 10AAA4 7F0D5F74 032A6021 */ addu $t4, $t9, $t2 +/* 10AAA8 7F0D5F78 002C402B */ sltu $t0, $at, $t4 +/* 10AAAC 7F0D5F7C 93AF0287 */ lbu $t7, 0x287($sp) +/* 10AAB0 7F0D5F80 0008C100 */ sll $t8, $t0, 4 +/* 10AAB4 7F0D5F84 322B00C4 */ andi $t3, $s1, 0xc4 +/* 10AAB8 7F0D5F88 01788825 */ or $s1, $t3, $t8 +/* 10AABC 7F0D5F8C 322D00FF */ andi $t5, $s1, 0xff +/* 10AAC0 7F0D5F90 24010001 */ li $at, 1 +/* 10AAC4 7F0D5F94 012A7021 */ addu $t6, $t1, $t2 +/* 10AAC8 7F0D5F98 AFAE0210 */ sw $t6, 0x210($sp) +/* 10AACC 7F0D5F9C 15E10003 */ bne $t7, $at, .L7F0D5FAC +/* 10AAD0 7F0D5FA0 01A08825 */ move $s1, $t5 +/* 10AAD4 7F0D5FA4 10000003 */ b .L7F0D5FB4 +/* 10AAD8 7F0D5FA8 A7AE0296 */ sh $t6, 0x296($sp) +.L7F0D5FAC: +/* 10AADC 7F0D5FAC 8FB90210 */ lw $t9, 0x210($sp) +/* 10AAE0 7F0D5FB0 A7B90294 */ sh $t9, 0x294($sp) +.L7F0D5FB4: +/* 10AAE4 7F0D5FB4 8FAC0210 */ lw $t4, 0x210($sp) +/* 10AAE8 7F0D5FB8 000C4202 */ srl $t0, $t4, 8 +/* 10AAEC 7F0D5FBC 310B0028 */ andi $t3, $t0, 0x28 +/* 10AAF0 7F0D5FC0 000CC402 */ srl $t8, $t4, 0x10 +/* 10AAF4 7F0D5FC4 01786825 */ or $t5, $t3, $t8 +/* 10AAF8 7F0D5FC8 022D8825 */ or $s1, $s1, $t5 +/* 10AAFC 7F0D5FCC 322900FF */ andi $t1, $s1, 0xff +/* 10AB00 7F0D5FD0 1000320A */ b .L7F0E27FC +/* 10AB04 7F0D5FD4 01208825 */ move $s1, $t1 +spectrum_op_3A: +/* 10AB08 7F0D5FD8 8FAA028C */ lw $t2, 0x28c($sp) +/* 10AB0C 7F0D5FDC 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10AB10 7F0D5FE0 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10AB14 7F0D5FE4 97AE0298 */ lhu $t6, 0x298($sp) +/* 10AB18 7F0D5FE8 254F000D */ addiu $t7, $t2, 0xd +/* 10AB1C 7F0D5FEC AFAF028C */ sw $t7, 0x28c($sp) +/* 10AB20 7F0D5FF0 032E5821 */ addu $t3, $t9, $t6 +/* 10AB24 7F0D5FF4 91780001 */ lbu $t8, 1($t3) +/* 10AB28 7F0D5FF8 01D94021 */ addu $t0, $t6, $t9 +/* 10AB2C 7F0D5FFC 910C0000 */ lbu $t4, ($t0) +/* 10AB30 7F0D6000 00186A00 */ sll $t5, $t8, 8 +/* 10AB34 7F0D6004 25CA0002 */ addiu $t2, $t6, 2 +/* 10AB38 7F0D6008 018D4825 */ or $t1, $t4, $t5 +/* 10AB3C 7F0D600C 312FFFFF */ andi $t7, $t1, 0xffff +/* 10AB40 7F0D6010 A7A9020E */ sh $t1, 0x20e($sp) +/* 10AB44 7F0D6014 A7AA0298 */ sh $t2, 0x298($sp) +/* 10AB48 7F0D6018 01F94021 */ addu $t0, $t7, $t9 +/* 10AB4C 7F0D601C 100031F7 */ b .L7F0E27FC +/* 10AB50 7F0D6020 91100000 */ lbu $s0, ($t0) +spectrum_op_3B: +/* 10AB54 7F0D6024 8FAB028C */ lw $t3, 0x28c($sp) +/* 10AB58 7F0D6028 97AC0292 */ lhu $t4, 0x292($sp) +/* 10AB5C 7F0D602C 25780006 */ addiu $t8, $t3, 6 +/* 10AB60 7F0D6030 258DFFFF */ addiu $t5, $t4, -1 +/* 10AB64 7F0D6034 AFB8028C */ sw $t8, 0x28c($sp) +/* 10AB68 7F0D6038 100031F0 */ b .L7F0E27FC +/* 10AB6C 7F0D603C A7AD0292 */ sh $t5, 0x292($sp) +spectrum_op_3C: +/* 10AB70 7F0D6040 26100001 */ addiu $s0, $s0, 1 +/* 10AB74 7F0D6044 320A00FF */ andi $t2, $s0, 0xff +/* 10AB78 7F0D6048 8FA9028C */ lw $t1, 0x28c($sp) +/* 10AB7C 7F0D604C 3159000F */ andi $t9, $t2, 0xf +/* 10AB80 7F0D6050 2F280001 */ sltiu $t0, $t9, 1 +/* 10AB84 7F0D6054 01408025 */ move $s0, $t2 +/* 10AB88 7F0D6058 2D4F0001 */ sltiu $t7, $t2, 1 +/* 10AB8C 7F0D605C 315800A8 */ andi $t8, $t2, 0xa8 +/* 10AB90 7F0D6060 322B0001 */ andi $t3, $s1, 1 +/* 10AB94 7F0D6064 01786025 */ or $t4, $t3, $t8 +/* 10AB98 7F0D6068 3A190080 */ xori $t9, $s0, 0x80 +/* 10AB9C 7F0D606C 00086900 */ sll $t5, $t0, 4 +/* 10ABA0 7F0D6070 252E0004 */ addiu $t6, $t1, 4 +/* 10ABA4 7F0D6074 018D4825 */ or $t1, $t4, $t5 +/* 10ABA8 7F0D6078 2F390001 */ sltiu $t9, $t9, 1 +/* 10ABAC 7F0D607C 000F5180 */ sll $t2, $t7, 6 +/* 10ABB0 7F0D6080 AFAF0044 */ sw $t7, 0x44($sp) +/* 10ABB4 7F0D6084 012A7825 */ or $t7, $t1, $t2 +/* 10ABB8 7F0D6088 00195880 */ sll $t3, $t9, 2 +/* 10ABBC 7F0D608C 01EB8825 */ or $s1, $t7, $t3 +/* 10ABC0 7F0D6090 323800FF */ andi $t8, $s1, 0xff +/* 10ABC4 7F0D6094 AFAE028C */ sw $t6, 0x28c($sp) +/* 10ABC8 7F0D6098 03008825 */ move $s1, $t8 +/* 10ABCC 7F0D609C 100031D7 */ b .L7F0E27FC +/* 10ABD0 7F0D60A0 AFA80048 */ sw $t0, 0x48($sp) +spectrum_op_3D: +/* 10ABD4 7F0D60A4 8FA8028C */ lw $t0, 0x28c($sp) +/* 10ABD8 7F0D60A8 320D000F */ andi $t5, $s0, 0xf +/* 10ABDC 7F0D60AC 2610FFFF */ addiu $s0, $s0, -1 +/* 10ABE0 7F0D60B0 250C0004 */ addiu $t4, $t0, 4 +/* 10ABE4 7F0D60B4 AFAC028C */ sw $t4, 0x28c($sp) +/* 10ABE8 7F0D60B8 320B00FF */ andi $t3, $s0, 0xff +/* 10ABEC 7F0D60BC 2DAE0001 */ sltiu $t6, $t5, 1 +/* 10ABF0 7F0D60C0 000E5100 */ sll $t2, $t6, 4 +/* 10ABF4 7F0D60C4 396C007F */ xori $t4, $t3, 0x7f +/* 10ABF8 7F0D60C8 2D8C0001 */ sltiu $t4, $t4, 1 +/* 10ABFC 7F0D60CC 32290001 */ andi $t1, $s1, 1 +/* 10AC00 7F0D60D0 012A8825 */ or $s1, $t1, $t2 +/* 10AC04 7F0D60D4 000C6880 */ sll $t5, $t4, 2 +/* 10AC08 7F0D60D8 AFAE0048 */ sw $t6, 0x48($sp) +/* 10AC0C 7F0D60DC 2D780001 */ sltiu $t8, $t3, 1 +/* 10AC10 7F0D60E0 316800A8 */ andi $t0, $t3, 0xa8 +/* 10AC14 7F0D60E4 010D7025 */ or $t6, $t0, $t5 +/* 10AC18 7F0D60E8 00185180 */ sll $t2, $t8, 6 +/* 10AC1C 7F0D60EC 01CAC825 */ or $t9, $t6, $t2 +/* 10AC20 7F0D60F0 362F0002 */ ori $t7, $s1, 2 +/* 10AC24 7F0D60F4 01F98825 */ or $s1, $t7, $t9 +/* 10AC28 7F0D60F8 322F00FF */ andi $t7, $s1, 0xff +/* 10AC2C 7F0D60FC 01E08825 */ move $s1, $t7 +/* 10AC30 7F0D6100 AFB80044 */ sw $t8, 0x44($sp) +/* 10AC34 7F0D6104 100031BD */ b .L7F0E27FC +/* 10AC38 7F0D6108 01608025 */ move $s0, $t3 +spectrum_op_3E: +/* 10AC3C 7F0D610C 8FAB028C */ lw $t3, 0x28c($sp) +/* 10AC40 7F0D6110 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10AC44 7F0D6114 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10AC48 7F0D6118 97AC0298 */ lhu $t4, 0x298($sp) +/* 10AC4C 7F0D611C 25780007 */ addiu $t8, $t3, 7 +/* 10AC50 7F0D6120 AFB8028C */ sw $t8, 0x28c($sp) +/* 10AC54 7F0D6124 01886821 */ addu $t5, $t4, $t0 +/* 10AC58 7F0D6128 91B00000 */ lbu $s0, ($t5) +/* 10AC5C 7F0D612C 25890001 */ addiu $t1, $t4, 1 +/* 10AC60 7F0D6130 100031B2 */ b .L7F0E27FC +/* 10AC64 7F0D6134 A7A90298 */ sh $t1, 0x298($sp) +spectrum_op_3F: +/* 10AC68 7F0D6138 322F0001 */ andi $t7, $s1, 1 +/* 10AC6C 7F0D613C 8FAE028C */ lw $t6, 0x28c($sp) +/* 10AC70 7F0D6140 39EB0001 */ xori $t3, $t7, 1 +/* 10AC74 7F0D6144 323900C4 */ andi $t9, $s1, 0xc4 +/* 10AC78 7F0D6148 32280001 */ andi $t0, $s1, 1 +/* 10AC7C 7F0D614C 00086900 */ sll $t5, $t0, 4 +/* 10AC80 7F0D6150 032BC025 */ or $t8, $t9, $t3 +/* 10AC84 7F0D6154 030D6025 */ or $t4, $t8, $t5 +/* 10AC88 7F0D6158 32090028 */ andi $t1, $s0, 0x28 +/* 10AC8C 7F0D615C 01898825 */ or $s1, $t4, $t1 +/* 10AC90 7F0D6160 25CA0004 */ addiu $t2, $t6, 4 +/* 10AC94 7F0D6164 322E00FF */ andi $t6, $s1, 0xff +/* 10AC98 7F0D6168 AFAA028C */ sw $t2, 0x28c($sp) +/* 10AC9C 7F0D616C 100031A3 */ b .L7F0E27FC +/* 10ACA0 7F0D6170 01C08825 */ move $s1, $t6 +spectrum_op_40: +/* 10ACA4 7F0D6174 8FAA028C */ lw $t2, 0x28c($sp) +/* 10ACA8 7F0D6178 254F0004 */ addiu $t7, $t2, 4 +/* 10ACAC 7F0D617C 1000319F */ b .L7F0E27FC +/* 10ACB0 7F0D6180 AFAF028C */ sw $t7, 0x28c($sp) +spectrum_op_41: +/* 10ACB4 7F0D6184 8FB9028C */ lw $t9, 0x28c($sp) +/* 10ACB8 7F0D6188 327200FF */ andi $s2, $s3, 0xff +/* 10ACBC 7F0D618C 272B0004 */ addiu $t3, $t9, 4 +/* 10ACC0 7F0D6190 1000319A */ b .L7F0E27FC +/* 10ACC4 7F0D6194 AFAB028C */ sw $t3, 0x28c($sp) +spectrum_op_42: +/* 10ACC8 7F0D6198 8FA8028C */ lw $t0, 0x28c($sp) +/* 10ACCC 7F0D619C 329200FF */ andi $s2, $s4, 0xff +/* 10ACD0 7F0D61A0 25180004 */ addiu $t8, $t0, 4 +/* 10ACD4 7F0D61A4 10003195 */ b .L7F0E27FC +/* 10ACD8 7F0D61A8 AFB8028C */ sw $t8, 0x28c($sp) +spectrum_op_43: +/* 10ACDC 7F0D61AC 8FAD028C */ lw $t5, 0x28c($sp) +/* 10ACE0 7F0D61B0 32B200FF */ andi $s2, $s5, 0xff +/* 10ACE4 7F0D61B4 25AC0004 */ addiu $t4, $t5, 4 +/* 10ACE8 7F0D61B8 10003190 */ b .L7F0E27FC +/* 10ACEC 7F0D61BC AFAC028C */ sw $t4, 0x28c($sp) +spectrum_op_44: +/* 10ACF0 7F0D61C0 8FA9028C */ lw $t1, 0x28c($sp) +/* 10ACF4 7F0D61C4 93AA0287 */ lbu $t2, 0x287($sp) +/* 10ACF8 7F0D61C8 93AF0287 */ lbu $t7, 0x287($sp) +/* 10ACFC 7F0D61CC 252E0004 */ addiu $t6, $t1, 4 +/* 10AD00 7F0D61D0 15400003 */ bnez $t2, .L7F0D61E0 +/* 10AD04 7F0D61D4 AFAE028C */ sw $t6, 0x28c($sp) +/* 10AD08 7F0D61D8 10003188 */ b .L7F0E27FC +/* 10AD0C 7F0D61DC 32D200FF */ andi $s2, $s6, 0xff +.L7F0D61E0: +/* 10AD10 7F0D61E0 24010001 */ li $at, 1 +/* 10AD14 7F0D61E4 15E10005 */ bne $t7, $at, .L7F0D61FC +/* 10AD18 7F0D61E8 97A80294 */ lhu $t0, 0x294($sp) +/* 10AD1C 7F0D61EC 97B90296 */ lhu $t9, 0x296($sp) +/* 10AD20 7F0D61F0 00195A03 */ sra $t3, $t9, 8 +/* 10AD24 7F0D61F4 10000003 */ b .L7F0D6204 +/* 10AD28 7F0D61F8 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D61FC: +/* 10AD2C 7F0D61FC 0008C203 */ sra $t8, $t0, 8 +/* 10AD30 7F0D6200 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D6204: +/* 10AD34 7F0D6204 1000317D */ b .L7F0E27FC +/* 10AD38 7F0D6208 93B2004B */ lbu $s2, 0x4b($sp) +spectrum_op_45: +/* 10AD3C 7F0D620C 8FAD028C */ lw $t5, 0x28c($sp) +/* 10AD40 7F0D6210 93A90287 */ lbu $t1, 0x287($sp) +/* 10AD44 7F0D6214 93AE0287 */ lbu $t6, 0x287($sp) +/* 10AD48 7F0D6218 25AC0004 */ addiu $t4, $t5, 4 +/* 10AD4C 7F0D621C 15200003 */ bnez $t1, .L7F0D622C +/* 10AD50 7F0D6220 AFAC028C */ sw $t4, 0x28c($sp) +/* 10AD54 7F0D6224 10003175 */ b .L7F0E27FC +/* 10AD58 7F0D6228 32F200FF */ andi $s2, $s7, 0xff +.L7F0D622C: +/* 10AD5C 7F0D622C 24010001 */ li $at, 1 +/* 10AD60 7F0D6230 15C10005 */ bne $t6, $at, .L7F0D6248 +/* 10AD64 7F0D6234 97B90294 */ lhu $t9, 0x294($sp) +/* 10AD68 7F0D6238 97AA0296 */ lhu $t2, 0x296($sp) +/* 10AD6C 7F0D623C 314F00FF */ andi $t7, $t2, 0xff +/* 10AD70 7F0D6240 10000003 */ b .L7F0D6250 +/* 10AD74 7F0D6244 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D6248: +/* 10AD78 7F0D6248 332B00FF */ andi $t3, $t9, 0xff +/* 10AD7C 7F0D624C AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D6250: +/* 10AD80 7F0D6250 1000316A */ b .L7F0E27FC +/* 10AD84 7F0D6254 93B2004B */ lbu $s2, 0x4b($sp) +spectrum_op_46: +/* 10AD88 7F0D6258 8FA8028C */ lw $t0, 0x28c($sp) +/* 10AD8C 7F0D625C 93AD0287 */ lbu $t5, 0x287($sp) +/* 10AD90 7F0D6260 00166200 */ sll $t4, $s6, 8 +/* 10AD94 7F0D6264 25180007 */ addiu $t8, $t0, 7 +/* 10AD98 7F0D6268 15A00004 */ bnez $t5, .L7F0D627C +/* 10AD9C 7F0D626C AFB8028C */ sw $t8, 0x28c($sp) +/* 10ADA0 7F0D6270 01974825 */ or $t1, $t4, $s7 +/* 10ADA4 7F0D6274 10000016 */ b .L7F0D62D0 +/* 10ADA8 7F0D6278 A7A9020C */ sh $t1, 0x20c($sp) +.L7F0D627C: +/* 10ADAC 7F0D627C 8FAE028C */ lw $t6, 0x28c($sp) +/* 10ADB0 7F0D6280 93AF0287 */ lbu $t7, 0x287($sp) +/* 10ADB4 7F0D6284 24010001 */ li $at, 1 +/* 10ADB8 7F0D6288 25CA0008 */ addiu $t2, $t6, 8 +/* 10ADBC 7F0D628C 15E10004 */ bne $t7, $at, .L7F0D62A0 +/* 10ADC0 7F0D6290 AFAA028C */ sw $t2, 0x28c($sp) +/* 10ADC4 7F0D6294 97B90296 */ lhu $t9, 0x296($sp) +/* 10ADC8 7F0D6298 10000003 */ b .L7F0D62A8 +/* 10ADCC 7F0D629C AFB90048 */ sw $t9, 0x48($sp) +.L7F0D62A0: +/* 10ADD0 7F0D62A0 97AB0294 */ lhu $t3, 0x294($sp) +/* 10ADD4 7F0D62A4 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D62A8: +/* 10ADD8 7F0D62A8 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10ADDC 7F0D62AC 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10ADE0 7F0D62B0 97A80298 */ lhu $t0, 0x298($sp) +/* 10ADE4 7F0D62B4 8FA90048 */ lw $t1, 0x48($sp) +/* 10ADE8 7F0D62B8 01186821 */ addu $t5, $t0, $t8 +/* 10ADEC 7F0D62BC 81AC0000 */ lb $t4, ($t5) +/* 10ADF0 7F0D62C0 250A0001 */ addiu $t2, $t0, 1 +/* 10ADF4 7F0D62C4 A7AA0298 */ sh $t2, 0x298($sp) +/* 10ADF8 7F0D62C8 01897021 */ addu $t6, $t4, $t1 +/* 10ADFC 7F0D62CC A7AE020C */ sh $t6, 0x20c($sp) +.L7F0D62D0: +/* 10AE00 7F0D62D0 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10AE04 7F0D62D4 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10AE08 7F0D62D8 97AF020C */ lhu $t7, 0x20c($sp) +/* 10AE0C 7F0D62DC 01F95821 */ addu $t3, $t7, $t9 +/* 10AE10 7F0D62E0 10003146 */ b .L7F0E27FC +/* 10AE14 7F0D62E4 91720000 */ lbu $s2, ($t3) +spectrum_op_47: +/* 10AE18 7F0D62E8 8FB8028C */ lw $t8, 0x28c($sp) +/* 10AE1C 7F0D62EC 321200FF */ andi $s2, $s0, 0xff +/* 10AE20 7F0D62F0 270D0004 */ addiu $t5, $t8, 4 +/* 10AE24 7F0D62F4 10003141 */ b .L7F0E27FC +/* 10AE28 7F0D62F8 AFAD028C */ sw $t5, 0x28c($sp) +spectrum_op_48: +/* 10AE2C 7F0D62FC 8FAC028C */ lw $t4, 0x28c($sp) +/* 10AE30 7F0D6300 325300FF */ andi $s3, $s2, 0xff +/* 10AE34 7F0D6304 25890004 */ addiu $t1, $t4, 4 +/* 10AE38 7F0D6308 1000313C */ b .L7F0E27FC +/* 10AE3C 7F0D630C AFA9028C */ sw $t1, 0x28c($sp) +spectrum_op_49: +/* 10AE40 7F0D6310 8FAE028C */ lw $t6, 0x28c($sp) +/* 10AE44 7F0D6314 25C80004 */ addiu $t0, $t6, 4 +/* 10AE48 7F0D6318 10003138 */ b .L7F0E27FC +/* 10AE4C 7F0D631C AFA8028C */ sw $t0, 0x28c($sp) +spectrum_op_4A: +/* 10AE50 7F0D6320 8FAA028C */ lw $t2, 0x28c($sp) +/* 10AE54 7F0D6324 329300FF */ andi $s3, $s4, 0xff +/* 10AE58 7F0D6328 254F0004 */ addiu $t7, $t2, 4 +/* 10AE5C 7F0D632C 10003133 */ b .L7F0E27FC +/* 10AE60 7F0D6330 AFAF028C */ sw $t7, 0x28c($sp) +spectrum_op_4B: +/* 10AE64 7F0D6334 8FB9028C */ lw $t9, 0x28c($sp) +/* 10AE68 7F0D6338 32B300FF */ andi $s3, $s5, 0xff +/* 10AE6C 7F0D633C 272B0004 */ addiu $t3, $t9, 4 +/* 10AE70 7F0D6340 1000312E */ b .L7F0E27FC +/* 10AE74 7F0D6344 AFAB028C */ sw $t3, 0x28c($sp) +spectrum_op_4C: +/* 10AE78 7F0D6348 8FB8028C */ lw $t8, 0x28c($sp) +/* 10AE7C 7F0D634C 93AC0287 */ lbu $t4, 0x287($sp) +/* 10AE80 7F0D6350 93A90287 */ lbu $t1, 0x287($sp) +/* 10AE84 7F0D6354 270D0004 */ addiu $t5, $t8, 4 +/* 10AE88 7F0D6358 15800003 */ bnez $t4, .L7F0D6368 +/* 10AE8C 7F0D635C AFAD028C */ sw $t5, 0x28c($sp) +/* 10AE90 7F0D6360 10003126 */ b .L7F0E27FC +/* 10AE94 7F0D6364 32D300FF */ andi $s3, $s6, 0xff +.L7F0D6368: +/* 10AE98 7F0D6368 24010001 */ li $at, 1 +/* 10AE9C 7F0D636C 15210005 */ bne $t1, $at, .L7F0D6384 +/* 10AEA0 7F0D6370 97AA0294 */ lhu $t2, 0x294($sp) +/* 10AEA4 7F0D6374 97AE0296 */ lhu $t6, 0x296($sp) +/* 10AEA8 7F0D6378 000E4203 */ sra $t0, $t6, 8 +/* 10AEAC 7F0D637C 10000003 */ b .L7F0D638C +/* 10AEB0 7F0D6380 AFA80048 */ sw $t0, 0x48($sp) +.L7F0D6384: +/* 10AEB4 7F0D6384 000A7A03 */ sra $t7, $t2, 8 +/* 10AEB8 7F0D6388 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D638C: +/* 10AEBC 7F0D638C 1000311B */ b .L7F0E27FC +/* 10AEC0 7F0D6390 93B3004B */ lbu $s3, 0x4b($sp) +spectrum_op_4D: +/* 10AEC4 7F0D6394 8FB9028C */ lw $t9, 0x28c($sp) +/* 10AEC8 7F0D6398 93B80287 */ lbu $t8, 0x287($sp) +/* 10AECC 7F0D639C 93AD0287 */ lbu $t5, 0x287($sp) +/* 10AED0 7F0D63A0 272B0004 */ addiu $t3, $t9, 4 +/* 10AED4 7F0D63A4 17000003 */ bnez $t8, .L7F0D63B4 +/* 10AED8 7F0D63A8 AFAB028C */ sw $t3, 0x28c($sp) +/* 10AEDC 7F0D63AC 10003113 */ b .L7F0E27FC +/* 10AEE0 7F0D63B0 32F300FF */ andi $s3, $s7, 0xff +.L7F0D63B4: +/* 10AEE4 7F0D63B4 24010001 */ li $at, 1 +/* 10AEE8 7F0D63B8 15A10005 */ bne $t5, $at, .L7F0D63D0 +/* 10AEEC 7F0D63BC 97AE0294 */ lhu $t6, 0x294($sp) +/* 10AEF0 7F0D63C0 97AC0296 */ lhu $t4, 0x296($sp) +/* 10AEF4 7F0D63C4 318900FF */ andi $t1, $t4, 0xff +/* 10AEF8 7F0D63C8 10000003 */ b .L7F0D63D8 +/* 10AEFC 7F0D63CC AFA90048 */ sw $t1, 0x48($sp) +.L7F0D63D0: +/* 10AF00 7F0D63D0 31C800FF */ andi $t0, $t6, 0xff +/* 10AF04 7F0D63D4 AFA80048 */ sw $t0, 0x48($sp) +.L7F0D63D8: +/* 10AF08 7F0D63D8 10003108 */ b .L7F0E27FC +/* 10AF0C 7F0D63DC 93B3004B */ lbu $s3, 0x4b($sp) +spectrum_op_4E: +/* 10AF10 7F0D63E0 8FAA028C */ lw $t2, 0x28c($sp) +/* 10AF14 7F0D63E4 93B90287 */ lbu $t9, 0x287($sp) +/* 10AF18 7F0D63E8 00165A00 */ sll $t3, $s6, 8 +/* 10AF1C 7F0D63EC 254F0007 */ addiu $t7, $t2, 7 +/* 10AF20 7F0D63F0 17200004 */ bnez $t9, .L7F0D6404 +/* 10AF24 7F0D63F4 AFAF028C */ sw $t7, 0x28c($sp) +/* 10AF28 7F0D63F8 0177C025 */ or $t8, $t3, $s7 +/* 10AF2C 7F0D63FC 10000016 */ b .L7F0D6458 +/* 10AF30 7F0D6400 A7B8020A */ sh $t8, 0x20a($sp) +.L7F0D6404: +/* 10AF34 7F0D6404 8FAD028C */ lw $t5, 0x28c($sp) +/* 10AF38 7F0D6408 93A90287 */ lbu $t1, 0x287($sp) +/* 10AF3C 7F0D640C 24010001 */ li $at, 1 +/* 10AF40 7F0D6410 25AC0008 */ addiu $t4, $t5, 8 +/* 10AF44 7F0D6414 15210004 */ bne $t1, $at, .L7F0D6428 +/* 10AF48 7F0D6418 AFAC028C */ sw $t4, 0x28c($sp) +/* 10AF4C 7F0D641C 97AE0296 */ lhu $t6, 0x296($sp) +/* 10AF50 7F0D6420 10000003 */ b .L7F0D6430 +/* 10AF54 7F0D6424 AFAE0048 */ sw $t6, 0x48($sp) +.L7F0D6428: +/* 10AF58 7F0D6428 97A80294 */ lhu $t0, 0x294($sp) +/* 10AF5C 7F0D642C AFA80048 */ sw $t0, 0x48($sp) +.L7F0D6430: +/* 10AF60 7F0D6430 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10AF64 7F0D6434 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10AF68 7F0D6438 97AA0298 */ lhu $t2, 0x298($sp) +/* 10AF6C 7F0D643C 8FB80048 */ lw $t8, 0x48($sp) +/* 10AF70 7F0D6440 014FC821 */ addu $t9, $t2, $t7 +/* 10AF74 7F0D6444 832B0000 */ lb $t3, ($t9) +/* 10AF78 7F0D6448 254C0001 */ addiu $t4, $t2, 1 +/* 10AF7C 7F0D644C A7AC0298 */ sh $t4, 0x298($sp) +/* 10AF80 7F0D6450 01786821 */ addu $t5, $t3, $t8 +/* 10AF84 7F0D6454 A7AD020A */ sh $t5, 0x20a($sp) +.L7F0D6458: +/* 10AF88 7F0D6458 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10AF8C 7F0D645C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10AF90 7F0D6460 97A9020A */ lhu $t1, 0x20a($sp) +/* 10AF94 7F0D6464 012E4021 */ addu $t0, $t1, $t6 +/* 10AF98 7F0D6468 100030E4 */ b .L7F0E27FC +/* 10AF9C 7F0D646C 91130000 */ lbu $s3, ($t0) +spectrum_op_4F: +/* 10AFA0 7F0D6470 8FAF028C */ lw $t7, 0x28c($sp) +/* 10AFA4 7F0D6474 321300FF */ andi $s3, $s0, 0xff +/* 10AFA8 7F0D6478 25F90004 */ addiu $t9, $t7, 4 +/* 10AFAC 7F0D647C 100030DF */ b .L7F0E27FC +/* 10AFB0 7F0D6480 AFB9028C */ sw $t9, 0x28c($sp) +spectrum_op_50: +/* 10AFB4 7F0D6484 8FAB028C */ lw $t3, 0x28c($sp) +/* 10AFB8 7F0D6488 325400FF */ andi $s4, $s2, 0xff +/* 10AFBC 7F0D648C 25780004 */ addiu $t8, $t3, 4 +/* 10AFC0 7F0D6490 100030DA */ b .L7F0E27FC +/* 10AFC4 7F0D6494 AFB8028C */ sw $t8, 0x28c($sp) +spectrum_op_51: +/* 10AFC8 7F0D6498 8FAD028C */ lw $t5, 0x28c($sp) +/* 10AFCC 7F0D649C 327400FF */ andi $s4, $s3, 0xff +/* 10AFD0 7F0D64A0 25AA0004 */ addiu $t2, $t5, 4 +/* 10AFD4 7F0D64A4 100030D5 */ b .L7F0E27FC +/* 10AFD8 7F0D64A8 AFAA028C */ sw $t2, 0x28c($sp) +spectrum_op_52: +/* 10AFDC 7F0D64AC 8FAC028C */ lw $t4, 0x28c($sp) +/* 10AFE0 7F0D64B0 25890004 */ addiu $t1, $t4, 4 +/* 10AFE4 7F0D64B4 100030D1 */ b .L7F0E27FC +/* 10AFE8 7F0D64B8 AFA9028C */ sw $t1, 0x28c($sp) +spectrum_op_53: +/* 10AFEC 7F0D64BC 8FAE028C */ lw $t6, 0x28c($sp) +/* 10AFF0 7F0D64C0 32B400FF */ andi $s4, $s5, 0xff +/* 10AFF4 7F0D64C4 25C80004 */ addiu $t0, $t6, 4 +/* 10AFF8 7F0D64C8 100030CC */ b .L7F0E27FC +/* 10AFFC 7F0D64CC AFA8028C */ sw $t0, 0x28c($sp) +spectrum_op_54: +/* 10B000 7F0D64D0 8FAF028C */ lw $t7, 0x28c($sp) +/* 10B004 7F0D64D4 93AB0287 */ lbu $t3, 0x287($sp) +/* 10B008 7F0D64D8 93B80287 */ lbu $t8, 0x287($sp) +/* 10B00C 7F0D64DC 25F90004 */ addiu $t9, $t7, 4 +/* 10B010 7F0D64E0 15600003 */ bnez $t3, .L7F0D64F0 +/* 10B014 7F0D64E4 AFB9028C */ sw $t9, 0x28c($sp) +/* 10B018 7F0D64E8 100030C4 */ b .L7F0E27FC +/* 10B01C 7F0D64EC 32D400FF */ andi $s4, $s6, 0xff +.L7F0D64F0: +/* 10B020 7F0D64F0 24010001 */ li $at, 1 +/* 10B024 7F0D64F4 17010005 */ bne $t8, $at, .L7F0D650C +/* 10B028 7F0D64F8 97AC0294 */ lhu $t4, 0x294($sp) +/* 10B02C 7F0D64FC 97AD0296 */ lhu $t5, 0x296($sp) +/* 10B030 7F0D6500 000D5203 */ sra $t2, $t5, 8 +/* 10B034 7F0D6504 10000003 */ b .L7F0D6514 +/* 10B038 7F0D6508 AFAA0048 */ sw $t2, 0x48($sp) +.L7F0D650C: +/* 10B03C 7F0D650C 000C4A03 */ sra $t1, $t4, 8 +/* 10B040 7F0D6510 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D6514: +/* 10B044 7F0D6514 100030B9 */ b .L7F0E27FC +/* 10B048 7F0D6518 93B4004B */ lbu $s4, 0x4b($sp) +spectrum_op_55: +/* 10B04C 7F0D651C 8FAE028C */ lw $t6, 0x28c($sp) +/* 10B050 7F0D6520 93AF0287 */ lbu $t7, 0x287($sp) +/* 10B054 7F0D6524 93B90287 */ lbu $t9, 0x287($sp) +/* 10B058 7F0D6528 25C80004 */ addiu $t0, $t6, 4 +/* 10B05C 7F0D652C 15E00003 */ bnez $t7, .L7F0D653C +/* 10B060 7F0D6530 AFA8028C */ sw $t0, 0x28c($sp) +/* 10B064 7F0D6534 100030B1 */ b .L7F0E27FC +/* 10B068 7F0D6538 32F400FF */ andi $s4, $s7, 0xff +.L7F0D653C: +/* 10B06C 7F0D653C 24010001 */ li $at, 1 +/* 10B070 7F0D6540 17210005 */ bne $t9, $at, .L7F0D6558 +/* 10B074 7F0D6544 97AD0294 */ lhu $t5, 0x294($sp) +/* 10B078 7F0D6548 97AB0296 */ lhu $t3, 0x296($sp) +/* 10B07C 7F0D654C 317800FF */ andi $t8, $t3, 0xff +/* 10B080 7F0D6550 10000003 */ b .L7F0D6560 +/* 10B084 7F0D6554 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D6558: +/* 10B088 7F0D6558 31AA00FF */ andi $t2, $t5, 0xff +/* 10B08C 7F0D655C AFAA0048 */ sw $t2, 0x48($sp) +.L7F0D6560: +/* 10B090 7F0D6560 100030A6 */ b .L7F0E27FC +/* 10B094 7F0D6564 93B4004B */ lbu $s4, 0x4b($sp) +spectrum_op_56: +/* 10B098 7F0D6568 8FAC028C */ lw $t4, 0x28c($sp) +/* 10B09C 7F0D656C 93AE0287 */ lbu $t6, 0x287($sp) +/* 10B0A0 7F0D6570 00164200 */ sll $t0, $s6, 8 +/* 10B0A4 7F0D6574 25890007 */ addiu $t1, $t4, 7 +/* 10B0A8 7F0D6578 15C00004 */ bnez $t6, .L7F0D658C +/* 10B0AC 7F0D657C AFA9028C */ sw $t1, 0x28c($sp) +/* 10B0B0 7F0D6580 01177825 */ or $t7, $t0, $s7 +/* 10B0B4 7F0D6584 10000016 */ b .L7F0D65E0 +/* 10B0B8 7F0D6588 A7AF0208 */ sh $t7, 0x208($sp) +.L7F0D658C: +/* 10B0BC 7F0D658C 8FB9028C */ lw $t9, 0x28c($sp) +/* 10B0C0 7F0D6590 93B80287 */ lbu $t8, 0x287($sp) +/* 10B0C4 7F0D6594 24010001 */ li $at, 1 +/* 10B0C8 7F0D6598 272B0008 */ addiu $t3, $t9, 8 +/* 10B0CC 7F0D659C 17010004 */ bne $t8, $at, .L7F0D65B0 +/* 10B0D0 7F0D65A0 AFAB028C */ sw $t3, 0x28c($sp) +/* 10B0D4 7F0D65A4 97AD0296 */ lhu $t5, 0x296($sp) +/* 10B0D8 7F0D65A8 10000003 */ b .L7F0D65B8 +/* 10B0DC 7F0D65AC AFAD0048 */ sw $t5, 0x48($sp) +.L7F0D65B0: +/* 10B0E0 7F0D65B0 97AA0294 */ lhu $t2, 0x294($sp) +/* 10B0E4 7F0D65B4 AFAA0048 */ sw $t2, 0x48($sp) +.L7F0D65B8: +/* 10B0E8 7F0D65B8 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10B0EC 7F0D65BC 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10B0F0 7F0D65C0 97AC0298 */ lhu $t4, 0x298($sp) +/* 10B0F4 7F0D65C4 8FAF0048 */ lw $t7, 0x48($sp) +/* 10B0F8 7F0D65C8 01897021 */ addu $t6, $t4, $t1 +/* 10B0FC 7F0D65CC 81C80000 */ lb $t0, ($t6) +/* 10B100 7F0D65D0 258B0001 */ addiu $t3, $t4, 1 +/* 10B104 7F0D65D4 A7AB0298 */ sh $t3, 0x298($sp) +/* 10B108 7F0D65D8 010FC821 */ addu $t9, $t0, $t7 +/* 10B10C 7F0D65DC A7B90208 */ sh $t9, 0x208($sp) +.L7F0D65E0: +/* 10B110 7F0D65E0 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10B114 7F0D65E4 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10B118 7F0D65E8 97B80208 */ lhu $t8, 0x208($sp) +/* 10B11C 7F0D65EC 030D5021 */ addu $t2, $t8, $t5 +/* 10B120 7F0D65F0 10003082 */ b .L7F0E27FC +/* 10B124 7F0D65F4 91540000 */ lbu $s4, ($t2) +spectrum_op_57: +/* 10B128 7F0D65F8 8FA9028C */ lw $t1, 0x28c($sp) +/* 10B12C 7F0D65FC 321400FF */ andi $s4, $s0, 0xff +/* 10B130 7F0D6600 252E0004 */ addiu $t6, $t1, 4 +/* 10B134 7F0D6604 1000307D */ b .L7F0E27FC +/* 10B138 7F0D6608 AFAE028C */ sw $t6, 0x28c($sp) +spectrum_op_58: +/* 10B13C 7F0D660C 8FA8028C */ lw $t0, 0x28c($sp) +/* 10B140 7F0D6610 325500FF */ andi $s5, $s2, 0xff +/* 10B144 7F0D6614 250F0004 */ addiu $t7, $t0, 4 +/* 10B148 7F0D6618 10003078 */ b .L7F0E27FC +/* 10B14C 7F0D661C AFAF028C */ sw $t7, 0x28c($sp) +spectrum_op_59: +/* 10B150 7F0D6620 8FB9028C */ lw $t9, 0x28c($sp) +/* 10B154 7F0D6624 327500FF */ andi $s5, $s3, 0xff +/* 10B158 7F0D6628 272C0004 */ addiu $t4, $t9, 4 +/* 10B15C 7F0D662C 10003073 */ b .L7F0E27FC +/* 10B160 7F0D6630 AFAC028C */ sw $t4, 0x28c($sp) +spectrum_op_5A: +/* 10B164 7F0D6634 8FAB028C */ lw $t3, 0x28c($sp) +/* 10B168 7F0D6638 329500FF */ andi $s5, $s4, 0xff +/* 10B16C 7F0D663C 25780004 */ addiu $t8, $t3, 4 +/* 10B170 7F0D6640 1000306E */ b .L7F0E27FC +/* 10B174 7F0D6644 AFB8028C */ sw $t8, 0x28c($sp) +spectrum_op_5B: +/* 10B178 7F0D6648 8FAD028C */ lw $t5, 0x28c($sp) +/* 10B17C 7F0D664C 25AA0004 */ addiu $t2, $t5, 4 +/* 10B180 7F0D6650 1000306A */ b .L7F0E27FC +/* 10B184 7F0D6654 AFAA028C */ sw $t2, 0x28c($sp) +spectrum_op_5C: +/* 10B188 7F0D6658 8FA9028C */ lw $t1, 0x28c($sp) +/* 10B18C 7F0D665C 93A80287 */ lbu $t0, 0x287($sp) +/* 10B190 7F0D6660 93AF0287 */ lbu $t7, 0x287($sp) +/* 10B194 7F0D6664 252E0004 */ addiu $t6, $t1, 4 +/* 10B198 7F0D6668 15000003 */ bnez $t0, .L7F0D6678 +/* 10B19C 7F0D666C AFAE028C */ sw $t6, 0x28c($sp) +/* 10B1A0 7F0D6670 10003062 */ b .L7F0E27FC +/* 10B1A4 7F0D6674 32D500FF */ andi $s5, $s6, 0xff +.L7F0D6678: +/* 10B1A8 7F0D6678 24010001 */ li $at, 1 +/* 10B1AC 7F0D667C 15E10005 */ bne $t7, $at, .L7F0D6694 +/* 10B1B0 7F0D6680 97AB0294 */ lhu $t3, 0x294($sp) +/* 10B1B4 7F0D6684 97B90296 */ lhu $t9, 0x296($sp) +/* 10B1B8 7F0D6688 00196203 */ sra $t4, $t9, 8 +/* 10B1BC 7F0D668C 10000003 */ b .L7F0D669C +/* 10B1C0 7F0D6690 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D6694: +/* 10B1C4 7F0D6694 000BC203 */ sra $t8, $t3, 8 +/* 10B1C8 7F0D6698 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D669C: +/* 10B1CC 7F0D669C 10003057 */ b .L7F0E27FC +/* 10B1D0 7F0D66A0 93B5004B */ lbu $s5, 0x4b($sp) +spectrum_op_5D: +/* 10B1D4 7F0D66A4 8FAD028C */ lw $t5, 0x28c($sp) +/* 10B1D8 7F0D66A8 93A90287 */ lbu $t1, 0x287($sp) +/* 10B1DC 7F0D66AC 93AE0287 */ lbu $t6, 0x287($sp) +/* 10B1E0 7F0D66B0 25AA0004 */ addiu $t2, $t5, 4 +/* 10B1E4 7F0D66B4 15200003 */ bnez $t1, .L7F0D66C4 +/* 10B1E8 7F0D66B8 AFAA028C */ sw $t2, 0x28c($sp) +/* 10B1EC 7F0D66BC 1000304F */ b .L7F0E27FC +/* 10B1F0 7F0D66C0 32F500FF */ andi $s5, $s7, 0xff +.L7F0D66C4: +/* 10B1F4 7F0D66C4 24010001 */ li $at, 1 +/* 10B1F8 7F0D66C8 15C10005 */ bne $t6, $at, .L7F0D66E0 +/* 10B1FC 7F0D66CC 97B90294 */ lhu $t9, 0x294($sp) +/* 10B200 7F0D66D0 97A80296 */ lhu $t0, 0x296($sp) +/* 10B204 7F0D66D4 310F00FF */ andi $t7, $t0, 0xff +/* 10B208 7F0D66D8 10000003 */ b .L7F0D66E8 +/* 10B20C 7F0D66DC AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D66E0: +/* 10B210 7F0D66E0 332C00FF */ andi $t4, $t9, 0xff +/* 10B214 7F0D66E4 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D66E8: +/* 10B218 7F0D66E8 10003044 */ b .L7F0E27FC +/* 10B21C 7F0D66EC 93B5004B */ lbu $s5, 0x4b($sp) +spectrum_op_5E: +/* 10B220 7F0D66F0 8FAB028C */ lw $t3, 0x28c($sp) +/* 10B224 7F0D66F4 93AD0287 */ lbu $t5, 0x287($sp) +/* 10B228 7F0D66F8 00165200 */ sll $t2, $s6, 8 +/* 10B22C 7F0D66FC 25780007 */ addiu $t8, $t3, 7 +/* 10B230 7F0D6700 15A00004 */ bnez $t5, .L7F0D6714 +/* 10B234 7F0D6704 AFB8028C */ sw $t8, 0x28c($sp) +/* 10B238 7F0D6708 01574825 */ or $t1, $t2, $s7 +/* 10B23C 7F0D670C 10000016 */ b .L7F0D6768 +/* 10B240 7F0D6710 A7A90206 */ sh $t1, 0x206($sp) +.L7F0D6714: +/* 10B244 7F0D6714 8FAE028C */ lw $t6, 0x28c($sp) +/* 10B248 7F0D6718 93AF0287 */ lbu $t7, 0x287($sp) +/* 10B24C 7F0D671C 24010001 */ li $at, 1 +/* 10B250 7F0D6720 25C80008 */ addiu $t0, $t6, 8 +/* 10B254 7F0D6724 15E10004 */ bne $t7, $at, .L7F0D6738 +/* 10B258 7F0D6728 AFA8028C */ sw $t0, 0x28c($sp) +/* 10B25C 7F0D672C 97B90296 */ lhu $t9, 0x296($sp) +/* 10B260 7F0D6730 10000003 */ b .L7F0D6740 +/* 10B264 7F0D6734 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D6738: +/* 10B268 7F0D6738 97AC0294 */ lhu $t4, 0x294($sp) +/* 10B26C 7F0D673C AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D6740: +/* 10B270 7F0D6740 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10B274 7F0D6744 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10B278 7F0D6748 97AB0298 */ lhu $t3, 0x298($sp) +/* 10B27C 7F0D674C 8FA90048 */ lw $t1, 0x48($sp) +/* 10B280 7F0D6750 01786821 */ addu $t5, $t3, $t8 +/* 10B284 7F0D6754 81AA0000 */ lb $t2, ($t5) +/* 10B288 7F0D6758 25680001 */ addiu $t0, $t3, 1 +/* 10B28C 7F0D675C A7A80298 */ sh $t0, 0x298($sp) +/* 10B290 7F0D6760 01497021 */ addu $t6, $t2, $t1 +/* 10B294 7F0D6764 A7AE0206 */ sh $t6, 0x206($sp) +.L7F0D6768: +/* 10B298 7F0D6768 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10B29C 7F0D676C 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10B2A0 7F0D6770 97AF0206 */ lhu $t7, 0x206($sp) +/* 10B2A4 7F0D6774 01F96021 */ addu $t4, $t7, $t9 +/* 10B2A8 7F0D6778 10003020 */ b .L7F0E27FC +/* 10B2AC 7F0D677C 91950000 */ lbu $s5, ($t4) +spectrum_op_5F: +/* 10B2B0 7F0D6780 8FB8028C */ lw $t8, 0x28c($sp) +/* 10B2B4 7F0D6784 321500FF */ andi $s5, $s0, 0xff +/* 10B2B8 7F0D6788 270D0004 */ addiu $t5, $t8, 4 +/* 10B2BC 7F0D678C 1000301B */ b .L7F0E27FC +/* 10B2C0 7F0D6790 AFAD028C */ sw $t5, 0x28c($sp) +spectrum_op_60: +/* 10B2C4 7F0D6794 8FAA028C */ lw $t2, 0x28c($sp) +/* 10B2C8 7F0D6798 93AE0287 */ lbu $t6, 0x287($sp) +/* 10B2CC 7F0D679C 93AB0287 */ lbu $t3, 0x287($sp) +/* 10B2D0 7F0D67A0 25490004 */ addiu $t1, $t2, 4 +/* 10B2D4 7F0D67A4 15C00003 */ bnez $t6, .L7F0D67B4 +/* 10B2D8 7F0D67A8 AFA9028C */ sw $t1, 0x28c($sp) +/* 10B2DC 7F0D67AC 10003013 */ b .L7F0E27FC +/* 10B2E0 7F0D67B0 325600FF */ andi $s6, $s2, 0xff +.L7F0D67B4: +/* 10B2E4 7F0D67B4 24010001 */ li $at, 1 +/* 10B2E8 7F0D67B8 15610007 */ bne $t3, $at, .L7F0D67D8 +/* 10B2EC 7F0D67BC 97B80294 */ lhu $t8, 0x294($sp) +/* 10B2F0 7F0D67C0 97A80296 */ lhu $t0, 0x296($sp) +/* 10B2F4 7F0D67C4 0012CA00 */ sll $t9, $s2, 8 +/* 10B2F8 7F0D67C8 310F00FF */ andi $t7, $t0, 0xff +/* 10B2FC 7F0D67CC 01F96025 */ or $t4, $t7, $t9 +/* 10B300 7F0D67D0 1000300A */ b .L7F0E27FC +/* 10B304 7F0D67D4 A7AC0296 */ sh $t4, 0x296($sp) +.L7F0D67D8: +/* 10B308 7F0D67D8 330D00FF */ andi $t5, $t8, 0xff +/* 10B30C 7F0D67DC 00125200 */ sll $t2, $s2, 8 +/* 10B310 7F0D67E0 01AA4825 */ or $t1, $t5, $t2 +/* 10B314 7F0D67E4 10003005 */ b .L7F0E27FC +/* 10B318 7F0D67E8 A7A90294 */ sh $t1, 0x294($sp) +spectrum_op_61: +/* 10B31C 7F0D67EC 8FAE028C */ lw $t6, 0x28c($sp) +/* 10B320 7F0D67F0 93A80287 */ lbu $t0, 0x287($sp) +/* 10B324 7F0D67F4 93AF0287 */ lbu $t7, 0x287($sp) +/* 10B328 7F0D67F8 25CB0004 */ addiu $t3, $t6, 4 +/* 10B32C 7F0D67FC 15000003 */ bnez $t0, .L7F0D680C +/* 10B330 7F0D6800 AFAB028C */ sw $t3, 0x28c($sp) +/* 10B334 7F0D6804 10002FFD */ b .L7F0E27FC +/* 10B338 7F0D6808 327600FF */ andi $s6, $s3, 0xff +.L7F0D680C: +/* 10B33C 7F0D680C 24010001 */ li $at, 1 +/* 10B340 7F0D6810 15E10007 */ bne $t7, $at, .L7F0D6830 +/* 10B344 7F0D6814 97AA0294 */ lhu $t2, 0x294($sp) +/* 10B348 7F0D6818 97B90296 */ lhu $t9, 0x296($sp) +/* 10B34C 7F0D681C 0013C200 */ sll $t8, $s3, 8 +/* 10B350 7F0D6820 332C00FF */ andi $t4, $t9, 0xff +/* 10B354 7F0D6824 01986825 */ or $t5, $t4, $t8 +/* 10B358 7F0D6828 10002FF4 */ b .L7F0E27FC +/* 10B35C 7F0D682C A7AD0296 */ sh $t5, 0x296($sp) +.L7F0D6830: +/* 10B360 7F0D6830 314900FF */ andi $t1, $t2, 0xff +/* 10B364 7F0D6834 00137200 */ sll $t6, $s3, 8 +/* 10B368 7F0D6838 012E5825 */ or $t3, $t1, $t6 +/* 10B36C 7F0D683C 10002FEF */ b .L7F0E27FC +/* 10B370 7F0D6840 A7AB0294 */ sh $t3, 0x294($sp) +spectrum_op_62: +/* 10B374 7F0D6844 8FA8028C */ lw $t0, 0x28c($sp) +/* 10B378 7F0D6848 93B90287 */ lbu $t9, 0x287($sp) +/* 10B37C 7F0D684C 93AC0287 */ lbu $t4, 0x287($sp) +/* 10B380 7F0D6850 250F0004 */ addiu $t7, $t0, 4 +/* 10B384 7F0D6854 17200003 */ bnez $t9, .L7F0D6864 +/* 10B388 7F0D6858 AFAF028C */ sw $t7, 0x28c($sp) +/* 10B38C 7F0D685C 10002FE7 */ b .L7F0E27FC +/* 10B390 7F0D6860 329600FF */ andi $s6, $s4, 0xff +.L7F0D6864: +/* 10B394 7F0D6864 24010001 */ li $at, 1 +/* 10B398 7F0D6868 15810007 */ bne $t4, $at, .L7F0D6888 +/* 10B39C 7F0D686C 97AE0294 */ lhu $t6, 0x294($sp) +/* 10B3A0 7F0D6870 97B80296 */ lhu $t8, 0x296($sp) +/* 10B3A4 7F0D6874 00145200 */ sll $t2, $s4, 8 +/* 10B3A8 7F0D6878 330D00FF */ andi $t5, $t8, 0xff +/* 10B3AC 7F0D687C 01AA4825 */ or $t1, $t5, $t2 +/* 10B3B0 7F0D6880 10002FDE */ b .L7F0E27FC +/* 10B3B4 7F0D6884 A7A90296 */ sh $t1, 0x296($sp) +.L7F0D6888: +/* 10B3B8 7F0D6888 31CB00FF */ andi $t3, $t6, 0xff +/* 10B3BC 7F0D688C 00144200 */ sll $t0, $s4, 8 +/* 10B3C0 7F0D6890 01687825 */ or $t7, $t3, $t0 +/* 10B3C4 7F0D6894 10002FD9 */ b .L7F0E27FC +/* 10B3C8 7F0D6898 A7AF0294 */ sh $t7, 0x294($sp) +spectrum_op_63: +/* 10B3CC 7F0D689C 8FB9028C */ lw $t9, 0x28c($sp) +/* 10B3D0 7F0D68A0 93B80287 */ lbu $t8, 0x287($sp) +/* 10B3D4 7F0D68A4 93AD0287 */ lbu $t5, 0x287($sp) +/* 10B3D8 7F0D68A8 272C0004 */ addiu $t4, $t9, 4 +/* 10B3DC 7F0D68AC 17000003 */ bnez $t8, .L7F0D68BC +/* 10B3E0 7F0D68B0 AFAC028C */ sw $t4, 0x28c($sp) +/* 10B3E4 7F0D68B4 10002FD1 */ b .L7F0E27FC +/* 10B3E8 7F0D68B8 32B600FF */ andi $s6, $s5, 0xff +.L7F0D68BC: +/* 10B3EC 7F0D68BC 24010001 */ li $at, 1 +/* 10B3F0 7F0D68C0 15A10007 */ bne $t5, $at, .L7F0D68E0 +/* 10B3F4 7F0D68C4 97A80294 */ lhu $t0, 0x294($sp) +/* 10B3F8 7F0D68C8 97AA0296 */ lhu $t2, 0x296($sp) +/* 10B3FC 7F0D68CC 00157200 */ sll $t6, $s5, 8 +/* 10B400 7F0D68D0 314900FF */ andi $t1, $t2, 0xff +/* 10B404 7F0D68D4 012E5825 */ or $t3, $t1, $t6 +/* 10B408 7F0D68D8 10002FC8 */ b .L7F0E27FC +/* 10B40C 7F0D68DC A7AB0296 */ sh $t3, 0x296($sp) +.L7F0D68E0: +/* 10B410 7F0D68E0 310F00FF */ andi $t7, $t0, 0xff +/* 10B414 7F0D68E4 0015CA00 */ sll $t9, $s5, 8 +/* 10B418 7F0D68E8 01F96025 */ or $t4, $t7, $t9 +/* 10B41C 7F0D68EC 10002FC3 */ b .L7F0E27FC +/* 10B420 7F0D68F0 A7AC0294 */ sh $t4, 0x294($sp) +spectrum_op_64: +/* 10B424 7F0D68F4 8FB8028C */ lw $t8, 0x28c($sp) +/* 10B428 7F0D68F8 270D0004 */ addiu $t5, $t8, 4 +/* 10B42C 7F0D68FC 10002FBF */ b .L7F0E27FC +/* 10B430 7F0D6900 AFAD028C */ sw $t5, 0x28c($sp) +spectrum_op_65: +/* 10B434 7F0D6904 8FAA028C */ lw $t2, 0x28c($sp) +/* 10B438 7F0D6908 93AE0287 */ lbu $t6, 0x287($sp) +/* 10B43C 7F0D690C 93AD0287 */ lbu $t5, 0x287($sp) +/* 10B440 7F0D6910 25490004 */ addiu $t1, $t2, 4 +/* 10B444 7F0D6914 2DCB0001 */ sltiu $t3, $t6, 1 +/* 10B448 7F0D6918 11600010 */ beqz $t3, .L7F0D695C +/* 10B44C 7F0D691C AFA9028C */ sw $t1, 0x28c($sp) +/* 10B450 7F0D6920 11600003 */ beqz $t3, .L7F0D6930 +/* 10B454 7F0D6924 93A80287 */ lbu $t0, 0x287($sp) +/* 10B458 7F0D6928 10002FB4 */ b .L7F0E27FC +/* 10B45C 7F0D692C 32F600FF */ andi $s6, $s7, 0xff +.L7F0D6930: +/* 10B460 7F0D6930 24010001 */ li $at, 1 +/* 10B464 7F0D6934 15010005 */ bne $t0, $at, .L7F0D694C +/* 10B468 7F0D6938 97AC0294 */ lhu $t4, 0x294($sp) +/* 10B46C 7F0D693C 97AF0296 */ lhu $t7, 0x296($sp) +/* 10B470 7F0D6940 31F900FF */ andi $t9, $t7, 0xff +/* 10B474 7F0D6944 10000003 */ b .L7F0D6954 +/* 10B478 7F0D6948 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D694C: +/* 10B47C 7F0D694C 319800FF */ andi $t8, $t4, 0xff +/* 10B480 7F0D6950 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D6954: +/* 10B484 7F0D6954 10002FA9 */ b .L7F0E27FC +/* 10B488 7F0D6958 93B6004B */ lbu $s6, 0x4b($sp) +.L7F0D695C: +/* 10B48C 7F0D695C 24010001 */ li $at, 1 +/* 10B490 7F0D6960 15A10017 */ bne $t5, $at, .L7F0D69C0 +/* 10B494 7F0D6964 93A90287 */ lbu $t1, 0x287($sp) +/* 10B498 7F0D6968 15A00003 */ bnez $t5, .L7F0D6978 +/* 10B49C 7F0D696C 93AA0287 */ lbu $t2, 0x287($sp) +/* 10B4A0 7F0D6970 1000000C */ b .L7F0D69A4 +/* 10B4A4 7F0D6974 AFB70044 */ sw $s7, 0x44($sp) +.L7F0D6978: +/* 10B4A8 7F0D6978 24010001 */ li $at, 1 +/* 10B4AC 7F0D697C 15410005 */ bne $t2, $at, .L7F0D6994 +/* 10B4B0 7F0D6980 97AB0294 */ lhu $t3, 0x294($sp) +/* 10B4B4 7F0D6984 97A90296 */ lhu $t1, 0x296($sp) +/* 10B4B8 7F0D6988 312E00FF */ andi $t6, $t1, 0xff +/* 10B4BC 7F0D698C 10000003 */ b .L7F0D699C +/* 10B4C0 7F0D6990 AFAE0040 */ sw $t6, 0x40($sp) +.L7F0D6994: +/* 10B4C4 7F0D6994 316800FF */ andi $t0, $t3, 0xff +/* 10B4C8 7F0D6998 AFA80040 */ sw $t0, 0x40($sp) +.L7F0D699C: +/* 10B4CC 7F0D699C 8FAF0040 */ lw $t7, 0x40($sp) +/* 10B4D0 7F0D69A0 AFAF0044 */ sw $t7, 0x44($sp) +.L7F0D69A4: +/* 10B4D4 7F0D69A4 8FB90044 */ lw $t9, 0x44($sp) +/* 10B4D8 7F0D69A8 97B80296 */ lhu $t8, 0x296($sp) +/* 10B4DC 7F0D69AC 00196200 */ sll $t4, $t9, 8 +/* 10B4E0 7F0D69B0 330D00FF */ andi $t5, $t8, 0xff +/* 10B4E4 7F0D69B4 018D5025 */ or $t2, $t4, $t5 +/* 10B4E8 7F0D69B8 10002F90 */ b .L7F0E27FC +/* 10B4EC 7F0D69BC A7AA0296 */ sh $t2, 0x296($sp) +.L7F0D69C0: +/* 10B4F0 7F0D69C0 15200003 */ bnez $t1, .L7F0D69D0 +/* 10B4F4 7F0D69C4 93AE0287 */ lbu $t6, 0x287($sp) +/* 10B4F8 7F0D69C8 1000000C */ b .L7F0D69FC +/* 10B4FC 7F0D69CC AFB7003C */ sw $s7, 0x3c($sp) +.L7F0D69D0: +/* 10B500 7F0D69D0 24010001 */ li $at, 1 +/* 10B504 7F0D69D4 15C10005 */ bne $t6, $at, .L7F0D69EC +/* 10B508 7F0D69D8 97AF0294 */ lhu $t7, 0x294($sp) +/* 10B50C 7F0D69DC 97AB0296 */ lhu $t3, 0x296($sp) +/* 10B510 7F0D69E0 316800FF */ andi $t0, $t3, 0xff +/* 10B514 7F0D69E4 10000003 */ b .L7F0D69F4 +/* 10B518 7F0D69E8 AFA80038 */ sw $t0, 0x38($sp) +.L7F0D69EC: +/* 10B51C 7F0D69EC 31F900FF */ andi $t9, $t7, 0xff +/* 10B520 7F0D69F0 AFB90038 */ sw $t9, 0x38($sp) +.L7F0D69F4: +/* 10B524 7F0D69F4 8FB80038 */ lw $t8, 0x38($sp) +/* 10B528 7F0D69F8 AFB8003C */ sw $t8, 0x3c($sp) +.L7F0D69FC: +/* 10B52C 7F0D69FC 8FAC003C */ lw $t4, 0x3c($sp) +/* 10B530 7F0D6A00 97AA0294 */ lhu $t2, 0x294($sp) +/* 10B534 7F0D6A04 000C6A00 */ sll $t5, $t4, 8 +/* 10B538 7F0D6A08 314900FF */ andi $t1, $t2, 0xff +/* 10B53C 7F0D6A0C 01A97025 */ or $t6, $t5, $t1 +/* 10B540 7F0D6A10 10002F7A */ b .L7F0E27FC +/* 10B544 7F0D6A14 A7AE0294 */ sh $t6, 0x294($sp) +spectrum_op_66: +/* 10B548 7F0D6A18 8FAB028C */ lw $t3, 0x28c($sp) +/* 10B54C 7F0D6A1C 93AF0287 */ lbu $t7, 0x287($sp) +/* 10B550 7F0D6A20 0016CA00 */ sll $t9, $s6, 8 +/* 10B554 7F0D6A24 25680007 */ addiu $t0, $t3, 7 +/* 10B558 7F0D6A28 15E00004 */ bnez $t7, .L7F0D6A3C +/* 10B55C 7F0D6A2C AFA8028C */ sw $t0, 0x28c($sp) +/* 10B560 7F0D6A30 0337C025 */ or $t8, $t9, $s7 +/* 10B564 7F0D6A34 10000016 */ b .L7F0D6A90 +/* 10B568 7F0D6A38 A7B80204 */ sh $t8, 0x204($sp) +.L7F0D6A3C: +/* 10B56C 7F0D6A3C 8FAC028C */ lw $t4, 0x28c($sp) +/* 10B570 7F0D6A40 93AD0287 */ lbu $t5, 0x287($sp) +/* 10B574 7F0D6A44 24010001 */ li $at, 1 +/* 10B578 7F0D6A48 258A0008 */ addiu $t2, $t4, 8 +/* 10B57C 7F0D6A4C 15A10004 */ bne $t5, $at, .L7F0D6A60 +/* 10B580 7F0D6A50 AFAA028C */ sw $t2, 0x28c($sp) +/* 10B584 7F0D6A54 97A90296 */ lhu $t1, 0x296($sp) +/* 10B588 7F0D6A58 10000003 */ b .L7F0D6A68 +/* 10B58C 7F0D6A5C AFA90048 */ sw $t1, 0x48($sp) +.L7F0D6A60: +/* 10B590 7F0D6A60 97AE0294 */ lhu $t6, 0x294($sp) +/* 10B594 7F0D6A64 AFAE0048 */ sw $t6, 0x48($sp) +.L7F0D6A68: +/* 10B598 7F0D6A68 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10B59C 7F0D6A6C 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10B5A0 7F0D6A70 97AB0298 */ lhu $t3, 0x298($sp) +/* 10B5A4 7F0D6A74 8FB80048 */ lw $t8, 0x48($sp) +/* 10B5A8 7F0D6A78 01687821 */ addu $t7, $t3, $t0 +/* 10B5AC 7F0D6A7C 81F90000 */ lb $t9, ($t7) +/* 10B5B0 7F0D6A80 256A0001 */ addiu $t2, $t3, 1 +/* 10B5B4 7F0D6A84 A7AA0298 */ sh $t2, 0x298($sp) +/* 10B5B8 7F0D6A88 03386021 */ addu $t4, $t9, $t8 +/* 10B5BC 7F0D6A8C A7AC0204 */ sh $t4, 0x204($sp) +.L7F0D6A90: +/* 10B5C0 7F0D6A90 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10B5C4 7F0D6A94 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10B5C8 7F0D6A98 97AD0204 */ lhu $t5, 0x204($sp) +/* 10B5CC 7F0D6A9C 01A97021 */ addu $t6, $t5, $t1 +/* 10B5D0 7F0D6AA0 10002F56 */ b .L7F0E27FC +/* 10B5D4 7F0D6AA4 91D60000 */ lbu $s6, ($t6) +spectrum_op_67: +/* 10B5D8 7F0D6AA8 8FA8028C */ lw $t0, 0x28c($sp) +/* 10B5DC 7F0D6AAC 93B90287 */ lbu $t9, 0x287($sp) +/* 10B5E0 7F0D6AB0 93B80287 */ lbu $t8, 0x287($sp) +/* 10B5E4 7F0D6AB4 250F0004 */ addiu $t7, $t0, 4 +/* 10B5E8 7F0D6AB8 17200003 */ bnez $t9, .L7F0D6AC8 +/* 10B5EC 7F0D6ABC AFAF028C */ sw $t7, 0x28c($sp) +/* 10B5F0 7F0D6AC0 10002F4E */ b .L7F0E27FC +/* 10B5F4 7F0D6AC4 321600FF */ andi $s6, $s0, 0xff +.L7F0D6AC8: +/* 10B5F8 7F0D6AC8 24010001 */ li $at, 1 +/* 10B5FC 7F0D6ACC 17010007 */ bne $t8, $at, .L7F0D6AEC +/* 10B600 7F0D6AD0 97A90294 */ lhu $t1, 0x294($sp) +/* 10B604 7F0D6AD4 97AC0296 */ lhu $t4, 0x296($sp) +/* 10B608 7F0D6AD8 00105200 */ sll $t2, $s0, 8 +/* 10B60C 7F0D6ADC 318B00FF */ andi $t3, $t4, 0xff +/* 10B610 7F0D6AE0 016A6825 */ or $t5, $t3, $t2 +/* 10B614 7F0D6AE4 10002F45 */ b .L7F0E27FC +/* 10B618 7F0D6AE8 A7AD0296 */ sh $t5, 0x296($sp) +.L7F0D6AEC: +/* 10B61C 7F0D6AEC 312E00FF */ andi $t6, $t1, 0xff +/* 10B620 7F0D6AF0 00104200 */ sll $t0, $s0, 8 +/* 10B624 7F0D6AF4 01C87825 */ or $t7, $t6, $t0 +/* 10B628 7F0D6AF8 10002F40 */ b .L7F0E27FC +/* 10B62C 7F0D6AFC A7AF0294 */ sh $t7, 0x294($sp) +spectrum_op_68: +/* 10B630 7F0D6B00 8FB9028C */ lw $t9, 0x28c($sp) +/* 10B634 7F0D6B04 93AC0287 */ lbu $t4, 0x287($sp) +/* 10B638 7F0D6B08 93AB0287 */ lbu $t3, 0x287($sp) +/* 10B63C 7F0D6B0C 27380004 */ addiu $t8, $t9, 4 +/* 10B640 7F0D6B10 15800003 */ bnez $t4, .L7F0D6B20 +/* 10B644 7F0D6B14 AFB8028C */ sw $t8, 0x28c($sp) +/* 10B648 7F0D6B18 10002F38 */ b .L7F0E27FC +/* 10B64C 7F0D6B1C 325700FF */ andi $s7, $s2, 0xff +.L7F0D6B20: +/* 10B650 7F0D6B20 24010001 */ li $at, 1 +/* 10B654 7F0D6B24 15610006 */ bne $t3, $at, .L7F0D6B40 +/* 10B658 7F0D6B28 97AE0294 */ lhu $t6, 0x294($sp) +/* 10B65C 7F0D6B2C 97AA0296 */ lhu $t2, 0x296($sp) +/* 10B660 7F0D6B30 314DFF00 */ andi $t5, $t2, 0xff00 +/* 10B664 7F0D6B34 01B24825 */ or $t1, $t5, $s2 +/* 10B668 7F0D6B38 10002F30 */ b .L7F0E27FC +/* 10B66C 7F0D6B3C A7A90296 */ sh $t1, 0x296($sp) +.L7F0D6B40: +/* 10B670 7F0D6B40 31C8FF00 */ andi $t0, $t6, 0xff00 +/* 10B674 7F0D6B44 01127825 */ or $t7, $t0, $s2 +/* 10B678 7F0D6B48 10002F2C */ b .L7F0E27FC +/* 10B67C 7F0D6B4C A7AF0294 */ sh $t7, 0x294($sp) +spectrum_op_69: +/* 10B680 7F0D6B50 8FB9028C */ lw $t9, 0x28c($sp) +/* 10B684 7F0D6B54 93AC0287 */ lbu $t4, 0x287($sp) +/* 10B688 7F0D6B58 93AB0287 */ lbu $t3, 0x287($sp) +/* 10B68C 7F0D6B5C 27380004 */ addiu $t8, $t9, 4 +/* 10B690 7F0D6B60 15800003 */ bnez $t4, .L7F0D6B70 +/* 10B694 7F0D6B64 AFB8028C */ sw $t8, 0x28c($sp) +/* 10B698 7F0D6B68 10002F24 */ b .L7F0E27FC +/* 10B69C 7F0D6B6C 327700FF */ andi $s7, $s3, 0xff +.L7F0D6B70: +/* 10B6A0 7F0D6B70 24010001 */ li $at, 1 +/* 10B6A4 7F0D6B74 15610006 */ bne $t3, $at, .L7F0D6B90 +/* 10B6A8 7F0D6B78 97AE0294 */ lhu $t6, 0x294($sp) +/* 10B6AC 7F0D6B7C 97AA0296 */ lhu $t2, 0x296($sp) +/* 10B6B0 7F0D6B80 314DFF00 */ andi $t5, $t2, 0xff00 +/* 10B6B4 7F0D6B84 01B34825 */ or $t1, $t5, $s3 +/* 10B6B8 7F0D6B88 10002F1C */ b .L7F0E27FC +/* 10B6BC 7F0D6B8C A7A90296 */ sh $t1, 0x296($sp) +.L7F0D6B90: +/* 10B6C0 7F0D6B90 31C8FF00 */ andi $t0, $t6, 0xff00 +/* 10B6C4 7F0D6B94 01137825 */ or $t7, $t0, $s3 +/* 10B6C8 7F0D6B98 10002F18 */ b .L7F0E27FC +/* 10B6CC 7F0D6B9C A7AF0294 */ sh $t7, 0x294($sp) +spectrum_op_6A: +/* 10B6D0 7F0D6BA0 8FB9028C */ lw $t9, 0x28c($sp) +/* 10B6D4 7F0D6BA4 93AC0287 */ lbu $t4, 0x287($sp) +/* 10B6D8 7F0D6BA8 93AB0287 */ lbu $t3, 0x287($sp) +/* 10B6DC 7F0D6BAC 27380004 */ addiu $t8, $t9, 4 +/* 10B6E0 7F0D6BB0 15800003 */ bnez $t4, .L7F0D6BC0 +/* 10B6E4 7F0D6BB4 AFB8028C */ sw $t8, 0x28c($sp) +/* 10B6E8 7F0D6BB8 10002F10 */ b .L7F0E27FC +/* 10B6EC 7F0D6BBC 329700FF */ andi $s7, $s4, 0xff +.L7F0D6BC0: +/* 10B6F0 7F0D6BC0 24010001 */ li $at, 1 +/* 10B6F4 7F0D6BC4 15610006 */ bne $t3, $at, .L7F0D6BE0 +/* 10B6F8 7F0D6BC8 97AE0294 */ lhu $t6, 0x294($sp) +/* 10B6FC 7F0D6BCC 97AA0296 */ lhu $t2, 0x296($sp) +/* 10B700 7F0D6BD0 314DFF00 */ andi $t5, $t2, 0xff00 +/* 10B704 7F0D6BD4 01B44825 */ or $t1, $t5, $s4 +/* 10B708 7F0D6BD8 10002F08 */ b .L7F0E27FC +/* 10B70C 7F0D6BDC A7A90296 */ sh $t1, 0x296($sp) +.L7F0D6BE0: +/* 10B710 7F0D6BE0 31C8FF00 */ andi $t0, $t6, 0xff00 +/* 10B714 7F0D6BE4 01147825 */ or $t7, $t0, $s4 +/* 10B718 7F0D6BE8 10002F04 */ b .L7F0E27FC +/* 10B71C 7F0D6BEC A7AF0294 */ sh $t7, 0x294($sp) +spectrum_op_6B: +/* 10B720 7F0D6BF0 8FB9028C */ lw $t9, 0x28c($sp) +/* 10B724 7F0D6BF4 93AC0287 */ lbu $t4, 0x287($sp) +/* 10B728 7F0D6BF8 93AB0287 */ lbu $t3, 0x287($sp) +/* 10B72C 7F0D6BFC 27380004 */ addiu $t8, $t9, 4 +/* 10B730 7F0D6C00 15800003 */ bnez $t4, .L7F0D6C10 +/* 10B734 7F0D6C04 AFB8028C */ sw $t8, 0x28c($sp) +/* 10B738 7F0D6C08 10002EFC */ b .L7F0E27FC +/* 10B73C 7F0D6C0C 32B700FF */ andi $s7, $s5, 0xff +.L7F0D6C10: +/* 10B740 7F0D6C10 24010001 */ li $at, 1 +/* 10B744 7F0D6C14 15610006 */ bne $t3, $at, .L7F0D6C30 +/* 10B748 7F0D6C18 97AE0294 */ lhu $t6, 0x294($sp) +/* 10B74C 7F0D6C1C 97AA0296 */ lhu $t2, 0x296($sp) +/* 10B750 7F0D6C20 314DFF00 */ andi $t5, $t2, 0xff00 +/* 10B754 7F0D6C24 01B54825 */ or $t1, $t5, $s5 +/* 10B758 7F0D6C28 10002EF4 */ b .L7F0E27FC +/* 10B75C 7F0D6C2C A7A90296 */ sh $t1, 0x296($sp) +.L7F0D6C30: +/* 10B760 7F0D6C30 31C8FF00 */ andi $t0, $t6, 0xff00 +/* 10B764 7F0D6C34 01157825 */ or $t7, $t0, $s5 +/* 10B768 7F0D6C38 10002EF0 */ b .L7F0E27FC +/* 10B76C 7F0D6C3C A7AF0294 */ sh $t7, 0x294($sp) +spectrum_op_6C: +/* 10B770 7F0D6C40 8FB9028C */ lw $t9, 0x28c($sp) +/* 10B774 7F0D6C44 93AC0287 */ lbu $t4, 0x287($sp) +/* 10B778 7F0D6C48 93AF0287 */ lbu $t7, 0x287($sp) +/* 10B77C 7F0D6C4C 27380004 */ addiu $t8, $t9, 4 +/* 10B780 7F0D6C50 2D8B0001 */ sltiu $t3, $t4, 1 +/* 10B784 7F0D6C54 11600010 */ beqz $t3, .L7F0D6C98 +/* 10B788 7F0D6C58 AFB8028C */ sw $t8, 0x28c($sp) +/* 10B78C 7F0D6C5C 11600003 */ beqz $t3, .L7F0D6C6C +/* 10B790 7F0D6C60 93AA0287 */ lbu $t2, 0x287($sp) +/* 10B794 7F0D6C64 10002EE5 */ b .L7F0E27FC +/* 10B798 7F0D6C68 32D700FF */ andi $s7, $s6, 0xff +.L7F0D6C6C: +/* 10B79C 7F0D6C6C 24010001 */ li $at, 1 +/* 10B7A0 7F0D6C70 15410005 */ bne $t2, $at, .L7F0D6C88 +/* 10B7A4 7F0D6C74 97AE0294 */ lhu $t6, 0x294($sp) +/* 10B7A8 7F0D6C78 97AD0296 */ lhu $t5, 0x296($sp) +/* 10B7AC 7F0D6C7C 000D4A03 */ sra $t1, $t5, 8 +/* 10B7B0 7F0D6C80 10000003 */ b .L7F0D6C90 +/* 10B7B4 7F0D6C84 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D6C88: +/* 10B7B8 7F0D6C88 000E4203 */ sra $t0, $t6, 8 +/* 10B7BC 7F0D6C8C AFA80048 */ sw $t0, 0x48($sp) +.L7F0D6C90: +/* 10B7C0 7F0D6C90 10002EDA */ b .L7F0E27FC +/* 10B7C4 7F0D6C94 93B7004B */ lbu $s7, 0x4b($sp) +.L7F0D6C98: +/* 10B7C8 7F0D6C98 24010001 */ li $at, 1 +/* 10B7CC 7F0D6C9C 15E10016 */ bne $t7, $at, .L7F0D6CF8 +/* 10B7D0 7F0D6CA0 93B90287 */ lbu $t9, 0x287($sp) +/* 10B7D4 7F0D6CA4 15E00003 */ bnez $t7, .L7F0D6CB4 +/* 10B7D8 7F0D6CA8 93B90287 */ lbu $t9, 0x287($sp) +/* 10B7DC 7F0D6CAC 1000000C */ b .L7F0D6CE0 +/* 10B7E0 7F0D6CB0 AFB60044 */ sw $s6, 0x44($sp) +.L7F0D6CB4: +/* 10B7E4 7F0D6CB4 24010001 */ li $at, 1 +/* 10B7E8 7F0D6CB8 17210005 */ bne $t9, $at, .L7F0D6CD0 +/* 10B7EC 7F0D6CBC 97AB0294 */ lhu $t3, 0x294($sp) +/* 10B7F0 7F0D6CC0 97B80296 */ lhu $t8, 0x296($sp) +/* 10B7F4 7F0D6CC4 00186203 */ sra $t4, $t8, 8 +/* 10B7F8 7F0D6CC8 10000003 */ b .L7F0D6CD8 +/* 10B7FC 7F0D6CCC AFAC0040 */ sw $t4, 0x40($sp) +.L7F0D6CD0: +/* 10B800 7F0D6CD0 000B5203 */ sra $t2, $t3, 8 +/* 10B804 7F0D6CD4 AFAA0040 */ sw $t2, 0x40($sp) +.L7F0D6CD8: +/* 10B808 7F0D6CD8 8FAD0040 */ lw $t5, 0x40($sp) +/* 10B80C 7F0D6CDC AFAD0044 */ sw $t5, 0x44($sp) +.L7F0D6CE0: +/* 10B810 7F0D6CE0 97AE0296 */ lhu $t6, 0x296($sp) +/* 10B814 7F0D6CE4 8FA90044 */ lw $t1, 0x44($sp) +/* 10B818 7F0D6CE8 31C8FF00 */ andi $t0, $t6, 0xff00 +/* 10B81C 7F0D6CEC 01287825 */ or $t7, $t1, $t0 +/* 10B820 7F0D6CF0 10002EC2 */ b .L7F0E27FC +/* 10B824 7F0D6CF4 A7AF0296 */ sh $t7, 0x296($sp) +.L7F0D6CF8: +/* 10B828 7F0D6CF8 17200003 */ bnez $t9, .L7F0D6D08 +/* 10B82C 7F0D6CFC 93B80287 */ lbu $t8, 0x287($sp) +/* 10B830 7F0D6D00 1000000C */ b .L7F0D6D34 +/* 10B834 7F0D6D04 AFB6003C */ sw $s6, 0x3c($sp) +.L7F0D6D08: +/* 10B838 7F0D6D08 24010001 */ li $at, 1 +/* 10B83C 7F0D6D0C 17010005 */ bne $t8, $at, .L7F0D6D24 +/* 10B840 7F0D6D10 97AA0294 */ lhu $t2, 0x294($sp) +/* 10B844 7F0D6D14 97AC0296 */ lhu $t4, 0x296($sp) +/* 10B848 7F0D6D18 000C5A03 */ sra $t3, $t4, 8 +/* 10B84C 7F0D6D1C 10000003 */ b .L7F0D6D2C +/* 10B850 7F0D6D20 AFAB0038 */ sw $t3, 0x38($sp) +.L7F0D6D24: +/* 10B854 7F0D6D24 000A6A03 */ sra $t5, $t2, 8 +/* 10B858 7F0D6D28 AFAD0038 */ sw $t5, 0x38($sp) +.L7F0D6D2C: +/* 10B85C 7F0D6D2C 8FAE0038 */ lw $t6, 0x38($sp) +/* 10B860 7F0D6D30 AFAE003C */ sw $t6, 0x3c($sp) +.L7F0D6D34: +/* 10B864 7F0D6D34 97A80294 */ lhu $t0, 0x294($sp) +/* 10B868 7F0D6D38 8FA9003C */ lw $t1, 0x3c($sp) +/* 10B86C 7F0D6D3C 310FFF00 */ andi $t7, $t0, 0xff00 +/* 10B870 7F0D6D40 012FC825 */ or $t9, $t1, $t7 +/* 10B874 7F0D6D44 10002EAD */ b .L7F0E27FC +/* 10B878 7F0D6D48 A7B90294 */ sh $t9, 0x294($sp) +spectrum_op_6D: +/* 10B87C 7F0D6D4C 8FB8028C */ lw $t8, 0x28c($sp) +/* 10B880 7F0D6D50 270C0004 */ addiu $t4, $t8, 4 +/* 10B884 7F0D6D54 10002EA9 */ b .L7F0E27FC +/* 10B888 7F0D6D58 AFAC028C */ sw $t4, 0x28c($sp) +spectrum_op_6E: +/* 10B88C 7F0D6D5C 8FAB028C */ lw $t3, 0x28c($sp) +/* 10B890 7F0D6D60 93AD0287 */ lbu $t5, 0x287($sp) +/* 10B894 7F0D6D64 00167200 */ sll $t6, $s6, 8 +/* 10B898 7F0D6D68 256A0007 */ addiu $t2, $t3, 7 +/* 10B89C 7F0D6D6C 15A00004 */ bnez $t5, .L7F0D6D80 +/* 10B8A0 7F0D6D70 AFAA028C */ sw $t2, 0x28c($sp) +/* 10B8A4 7F0D6D74 01D74025 */ or $t0, $t6, $s7 +/* 10B8A8 7F0D6D78 10000016 */ b .L7F0D6DD4 +/* 10B8AC 7F0D6D7C A7A80202 */ sh $t0, 0x202($sp) +.L7F0D6D80: +/* 10B8B0 7F0D6D80 8FA9028C */ lw $t1, 0x28c($sp) +/* 10B8B4 7F0D6D84 93B90287 */ lbu $t9, 0x287($sp) +/* 10B8B8 7F0D6D88 24010001 */ li $at, 1 +/* 10B8BC 7F0D6D8C 252F0008 */ addiu $t7, $t1, 8 +/* 10B8C0 7F0D6D90 17210004 */ bne $t9, $at, .L7F0D6DA4 +/* 10B8C4 7F0D6D94 AFAF028C */ sw $t7, 0x28c($sp) +/* 10B8C8 7F0D6D98 97B80296 */ lhu $t8, 0x296($sp) +/* 10B8CC 7F0D6D9C 10000003 */ b .L7F0D6DAC +/* 10B8D0 7F0D6DA0 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D6DA4: +/* 10B8D4 7F0D6DA4 97AC0294 */ lhu $t4, 0x294($sp) +/* 10B8D8 7F0D6DA8 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D6DAC: +/* 10B8DC 7F0D6DAC 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10B8E0 7F0D6DB0 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10B8E4 7F0D6DB4 97AB0298 */ lhu $t3, 0x298($sp) +/* 10B8E8 7F0D6DB8 8FA80048 */ lw $t0, 0x48($sp) +/* 10B8EC 7F0D6DBC 016A6821 */ addu $t5, $t3, $t2 +/* 10B8F0 7F0D6DC0 81AE0000 */ lb $t6, ($t5) +/* 10B8F4 7F0D6DC4 256F0001 */ addiu $t7, $t3, 1 +/* 10B8F8 7F0D6DC8 A7AF0298 */ sh $t7, 0x298($sp) +/* 10B8FC 7F0D6DCC 01C84821 */ addu $t1, $t6, $t0 +/* 10B900 7F0D6DD0 A7A90202 */ sh $t1, 0x202($sp) +.L7F0D6DD4: +/* 10B904 7F0D6DD4 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10B908 7F0D6DD8 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10B90C 7F0D6DDC 97B90202 */ lhu $t9, 0x202($sp) +/* 10B910 7F0D6DE0 03386021 */ addu $t4, $t9, $t8 +/* 10B914 7F0D6DE4 10002E85 */ b .L7F0E27FC +/* 10B918 7F0D6DE8 91970000 */ lbu $s7, ($t4) +spectrum_op_6F: +/* 10B91C 7F0D6DEC 8FAA028C */ lw $t2, 0x28c($sp) +/* 10B920 7F0D6DF0 93AE0287 */ lbu $t6, 0x287($sp) +/* 10B924 7F0D6DF4 93A80287 */ lbu $t0, 0x287($sp) +/* 10B928 7F0D6DF8 254D0004 */ addiu $t5, $t2, 4 +/* 10B92C 7F0D6DFC 15C00003 */ bnez $t6, .L7F0D6E0C +/* 10B930 7F0D6E00 AFAD028C */ sw $t5, 0x28c($sp) +/* 10B934 7F0D6E04 10002E7D */ b .L7F0E27FC +/* 10B938 7F0D6E08 321700FF */ andi $s7, $s0, 0xff +.L7F0D6E0C: +/* 10B93C 7F0D6E0C 24010001 */ li $at, 1 +/* 10B940 7F0D6E10 15010006 */ bne $t0, $at, .L7F0D6E2C +/* 10B944 7F0D6E14 97B90294 */ lhu $t9, 0x294($sp) +/* 10B948 7F0D6E18 97A90296 */ lhu $t1, 0x296($sp) +/* 10B94C 7F0D6E1C 312BFF00 */ andi $t3, $t1, 0xff00 +/* 10B950 7F0D6E20 01707825 */ or $t7, $t3, $s0 +/* 10B954 7F0D6E24 10002E75 */ b .L7F0E27FC +/* 10B958 7F0D6E28 A7AF0296 */ sh $t7, 0x296($sp) +.L7F0D6E2C: +/* 10B95C 7F0D6E2C 3338FF00 */ andi $t8, $t9, 0xff00 +/* 10B960 7F0D6E30 03106025 */ or $t4, $t8, $s0 +/* 10B964 7F0D6E34 10002E71 */ b .L7F0E27FC +/* 10B968 7F0D6E38 A7AC0294 */ sh $t4, 0x294($sp) +spectrum_op_70: +/* 10B96C 7F0D6E3C 8FAA028C */ lw $t2, 0x28c($sp) +/* 10B970 7F0D6E40 93AE0287 */ lbu $t6, 0x287($sp) +/* 10B974 7F0D6E44 00164200 */ sll $t0, $s6, 8 +/* 10B978 7F0D6E48 254D0007 */ addiu $t5, $t2, 7 +/* 10B97C 7F0D6E4C 15C00004 */ bnez $t6, .L7F0D6E60 +/* 10B980 7F0D6E50 AFAD028C */ sw $t5, 0x28c($sp) +/* 10B984 7F0D6E54 01174825 */ or $t1, $t0, $s7 +/* 10B988 7F0D6E58 10000016 */ b .L7F0D6EB4 +/* 10B98C 7F0D6E5C A7A90200 */ sh $t1, 0x200($sp) +.L7F0D6E60: +/* 10B990 7F0D6E60 8FAB028C */ lw $t3, 0x28c($sp) +/* 10B994 7F0D6E64 93B90287 */ lbu $t9, 0x287($sp) +/* 10B998 7F0D6E68 24010001 */ li $at, 1 +/* 10B99C 7F0D6E6C 256F0008 */ addiu $t7, $t3, 8 +/* 10B9A0 7F0D6E70 17210004 */ bne $t9, $at, .L7F0D6E84 +/* 10B9A4 7F0D6E74 AFAF028C */ sw $t7, 0x28c($sp) +/* 10B9A8 7F0D6E78 97B80296 */ lhu $t8, 0x296($sp) +/* 10B9AC 7F0D6E7C 10000003 */ b .L7F0D6E8C +/* 10B9B0 7F0D6E80 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D6E84: +/* 10B9B4 7F0D6E84 97AC0294 */ lhu $t4, 0x294($sp) +/* 10B9B8 7F0D6E88 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D6E8C: +/* 10B9BC 7F0D6E8C 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10B9C0 7F0D6E90 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10B9C4 7F0D6E94 97AA0298 */ lhu $t2, 0x298($sp) +/* 10B9C8 7F0D6E98 8FA90048 */ lw $t1, 0x48($sp) +/* 10B9CC 7F0D6E9C 014D7021 */ addu $t6, $t2, $t5 +/* 10B9D0 7F0D6EA0 81C80000 */ lb $t0, ($t6) +/* 10B9D4 7F0D6EA4 254F0001 */ addiu $t7, $t2, 1 +/* 10B9D8 7F0D6EA8 A7AF0298 */ sh $t7, 0x298($sp) +/* 10B9DC 7F0D6EAC 01095821 */ addu $t3, $t0, $t1 +/* 10B9E0 7F0D6EB0 A7AB0200 */ sh $t3, 0x200($sp) +.L7F0D6EB4: +/* 10B9E4 7F0D6EB4 97B90200 */ lhu $t9, 0x200($sp) +/* 10B9E8 7F0D6EB8 97AD0200 */ lhu $t5, 0x200($sp) +/* 10B9EC 7F0D6EBC 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10B9F0 7F0D6EC0 2B215B00 */ slti $at, $t9, 0x5b00 +/* 10B9F4 7F0D6EC4 54200006 */ bnezl $at, .L7F0D6EE0 +/* 10B9F8 7F0D6EC8 29A15800 */ slti $at, $t5, 0x5800 +/* 10B9FC 7F0D6ECC 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10BA00 7F0D6ED0 03196021 */ addu $t4, $t8, $t9 +/* 10BA04 7F0D6ED4 10002E49 */ b .L7F0E27FC +/* 10BA08 7F0D6ED8 A1920000 */ sb $s2, ($t4) +/* 10BA0C 7F0D6EDC 29A15800 */ slti $at, $t5, 0x5800 +.L7F0D6EE0: +/* 10BA10 7F0D6EE0 1420000C */ bnez $at, .L7F0D6F14 +/* 10BA14 7F0D6EE4 97B80200 */ lhu $t8, 0x200($sp) +/* 10BA18 7F0D6EE8 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10BA1C 7F0D6EEC 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10BA20 7F0D6EF0 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 10BA24 7F0D6EF4 24090001 */ li $t1, 1 +/* 10BA28 7F0D6EF8 01CD4021 */ addu $t0, $t6, $t5 +/* 10BA2C 7F0D6EFC A1120000 */ sb $s2, ($t0) +/* 10BA30 7F0D6F00 97AA0200 */ lhu $t2, 0x200($sp) +/* 10BA34 7F0D6F04 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 10BA38 7F0D6F08 016A7821 */ addu $t7, $t3, $t2 +/* 10BA3C 7F0D6F0C 10002E3B */ b .L7F0E27FC +/* 10BA40 7F0D6F10 A1E9A800 */ sb $t1, -0x5800($t7) +.L7F0D6F14: +/* 10BA44 7F0D6F14 2B014000 */ slti $at, $t8, 0x4000 +/* 10BA48 7F0D6F18 14202E38 */ bnez $at, .L7F0E27FC +/* 10BA4C 7F0D6F1C 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10BA50 7F0D6F20 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10BA54 7F0D6F24 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 10BA58 7F0D6F28 240E0001 */ li $t6, 1 +/* 10BA5C 7F0D6F2C 03386021 */ addu $t4, $t9, $t8 +/* 10BA60 7F0D6F30 A1920000 */ sb $s2, ($t4) +/* 10BA64 7F0D6F34 97AD0200 */ lhu $t5, 0x200($sp) +/* 10BA68 7F0D6F38 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 10BA6C 7F0D6F3C 31A81800 */ andi $t0, $t5, 0x1800 +/* 10BA70 7F0D6F40 000858C3 */ sra $t3, $t0, 3 +/* 10BA74 7F0D6F44 31AA00FF */ andi $t2, $t5, 0xff +/* 10BA78 7F0D6F48 016A4825 */ or $t1, $t3, $t2 +/* 10BA7C 7F0D6F4C 01E9C821 */ addu $t9, $t7, $t1 +/* 10BA80 7F0D6F50 10002E2A */ b .L7F0E27FC +/* 10BA84 7F0D6F54 A32E0000 */ sb $t6, ($t9) +spectrum_op_71: +/* 10BA88 7F0D6F58 8FB8028C */ lw $t8, 0x28c($sp) +/* 10BA8C 7F0D6F5C 93A80287 */ lbu $t0, 0x287($sp) +/* 10BA90 7F0D6F60 00166A00 */ sll $t5, $s6, 8 +/* 10BA94 7F0D6F64 270C0007 */ addiu $t4, $t8, 7 +/* 10BA98 7F0D6F68 15000004 */ bnez $t0, .L7F0D6F7C +/* 10BA9C 7F0D6F6C AFAC028C */ sw $t4, 0x28c($sp) +/* 10BAA0 7F0D6F70 01B75825 */ or $t3, $t5, $s7 +/* 10BAA4 7F0D6F74 10000016 */ b .L7F0D6FD0 +/* 10BAA8 7F0D6F78 A7AB01FE */ sh $t3, 0x1fe($sp) +.L7F0D6F7C: +/* 10BAAC 7F0D6F7C 8FAA028C */ lw $t2, 0x28c($sp) +/* 10BAB0 7F0D6F80 93A90287 */ lbu $t1, 0x287($sp) +/* 10BAB4 7F0D6F84 24010001 */ li $at, 1 +/* 10BAB8 7F0D6F88 254F0008 */ addiu $t7, $t2, 8 +/* 10BABC 7F0D6F8C 15210004 */ bne $t1, $at, .L7F0D6FA0 +/* 10BAC0 7F0D6F90 AFAF028C */ sw $t7, 0x28c($sp) +/* 10BAC4 7F0D6F94 97AE0296 */ lhu $t6, 0x296($sp) +/* 10BAC8 7F0D6F98 10000003 */ b .L7F0D6FA8 +/* 10BACC 7F0D6F9C AFAE0048 */ sw $t6, 0x48($sp) +.L7F0D6FA0: +/* 10BAD0 7F0D6FA0 97B90294 */ lhu $t9, 0x294($sp) +/* 10BAD4 7F0D6FA4 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D6FA8: +/* 10BAD8 7F0D6FA8 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 10BADC 7F0D6FAC 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 10BAE0 7F0D6FB0 97B80298 */ lhu $t8, 0x298($sp) +/* 10BAE4 7F0D6FB4 8FAB0048 */ lw $t3, 0x48($sp) +/* 10BAE8 7F0D6FB8 030C4021 */ addu $t0, $t8, $t4 +/* 10BAEC 7F0D6FBC 810D0000 */ lb $t5, ($t0) +/* 10BAF0 7F0D6FC0 270F0001 */ addiu $t7, $t8, 1 +/* 10BAF4 7F0D6FC4 A7AF0298 */ sh $t7, 0x298($sp) +/* 10BAF8 7F0D6FC8 01AB5021 */ addu $t2, $t5, $t3 +/* 10BAFC 7F0D6FCC A7AA01FE */ sh $t2, 0x1fe($sp) +.L7F0D6FD0: +/* 10BB00 7F0D6FD0 97A901FE */ lhu $t1, 0x1fe($sp) +/* 10BB04 7F0D6FD4 97AC01FE */ lhu $t4, 0x1fe($sp) +/* 10BB08 7F0D6FD8 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10BB0C 7F0D6FDC 29215B00 */ slti $at, $t1, 0x5b00 +/* 10BB10 7F0D6FE0 54200006 */ bnezl $at, .L7F0D6FFC +/* 10BB14 7F0D6FE4 29815800 */ slti $at, $t4, 0x5800 +/* 10BB18 7F0D6FE8 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10BB1C 7F0D6FEC 01C9C821 */ addu $t9, $t6, $t1 +/* 10BB20 7F0D6FF0 10002E02 */ b .L7F0E27FC +/* 10BB24 7F0D6FF4 A3330000 */ sb $s3, ($t9) +/* 10BB28 7F0D6FF8 29815800 */ slti $at, $t4, 0x5800 +.L7F0D6FFC: +/* 10BB2C 7F0D6FFC 1420000C */ bnez $at, .L7F0D7030 +/* 10BB30 7F0D7000 97AE01FE */ lhu $t6, 0x1fe($sp) +/* 10BB34 7F0D7004 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10BB38 7F0D7008 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10BB3C 7F0D700C 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 10BB40 7F0D7010 240B0001 */ li $t3, 1 +/* 10BB44 7F0D7014 010C6821 */ addu $t5, $t0, $t4 +/* 10BB48 7F0D7018 A1B30000 */ sb $s3, ($t5) +/* 10BB4C 7F0D701C 97B801FE */ lhu $t8, 0x1fe($sp) +/* 10BB50 7F0D7020 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 10BB54 7F0D7024 01587821 */ addu $t7, $t2, $t8 +/* 10BB58 7F0D7028 10002DF4 */ b .L7F0E27FC +/* 10BB5C 7F0D702C A1EBA800 */ sb $t3, -0x5800($t7) +.L7F0D7030: +/* 10BB60 7F0D7030 29C14000 */ slti $at, $t6, 0x4000 +/* 10BB64 7F0D7034 14202DF1 */ bnez $at, .L7F0E27FC +/* 10BB68 7F0D7038 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10BB6C 7F0D703C 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10BB70 7F0D7040 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 10BB74 7F0D7044 24080001 */ li $t0, 1 +/* 10BB78 7F0D7048 012EC821 */ addu $t9, $t1, $t6 +/* 10BB7C 7F0D704C A3330000 */ sb $s3, ($t9) +/* 10BB80 7F0D7050 97AC01FE */ lhu $t4, 0x1fe($sp) +/* 10BB84 7F0D7054 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 10BB88 7F0D7058 318D1800 */ andi $t5, $t4, 0x1800 +/* 10BB8C 7F0D705C 000D50C3 */ sra $t2, $t5, 3 +/* 10BB90 7F0D7060 319800FF */ andi $t8, $t4, 0xff +/* 10BB94 7F0D7064 01585825 */ or $t3, $t2, $t8 +/* 10BB98 7F0D7068 01EB4821 */ addu $t1, $t7, $t3 +/* 10BB9C 7F0D706C 10002DE3 */ b .L7F0E27FC +/* 10BBA0 7F0D7070 A1280000 */ sb $t0, ($t1) +spectrum_op_72: +/* 10BBA4 7F0D7074 8FAE028C */ lw $t6, 0x28c($sp) +/* 10BBA8 7F0D7078 93AD0287 */ lbu $t5, 0x287($sp) +/* 10BBAC 7F0D707C 00166200 */ sll $t4, $s6, 8 +/* 10BBB0 7F0D7080 25D90007 */ addiu $t9, $t6, 7 +/* 10BBB4 7F0D7084 15A00004 */ bnez $t5, .L7F0D7098 +/* 10BBB8 7F0D7088 AFB9028C */ sw $t9, 0x28c($sp) +/* 10BBBC 7F0D708C 01975025 */ or $t2, $t4, $s7 +/* 10BBC0 7F0D7090 10000016 */ b .L7F0D70EC +/* 10BBC4 7F0D7094 A7AA01FC */ sh $t2, 0x1fc($sp) +.L7F0D7098: +/* 10BBC8 7F0D7098 8FB8028C */ lw $t8, 0x28c($sp) +/* 10BBCC 7F0D709C 93AB0287 */ lbu $t3, 0x287($sp) +/* 10BBD0 7F0D70A0 24010001 */ li $at, 1 +/* 10BBD4 7F0D70A4 270F0008 */ addiu $t7, $t8, 8 +/* 10BBD8 7F0D70A8 15610004 */ bne $t3, $at, .L7F0D70BC +/* 10BBDC 7F0D70AC AFAF028C */ sw $t7, 0x28c($sp) +/* 10BBE0 7F0D70B0 97A80296 */ lhu $t0, 0x296($sp) +/* 10BBE4 7F0D70B4 10000003 */ b .L7F0D70C4 +/* 10BBE8 7F0D70B8 AFA80048 */ sw $t0, 0x48($sp) +.L7F0D70BC: +/* 10BBEC 7F0D70BC 97A90294 */ lhu $t1, 0x294($sp) +/* 10BBF0 7F0D70C0 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D70C4: +/* 10BBF4 7F0D70C4 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10BBF8 7F0D70C8 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10BBFC 7F0D70CC 97AE0298 */ lhu $t6, 0x298($sp) +/* 10BC00 7F0D70D0 8FAA0048 */ lw $t2, 0x48($sp) +/* 10BC04 7F0D70D4 01D96821 */ addu $t5, $t6, $t9 +/* 10BC08 7F0D70D8 81AC0000 */ lb $t4, ($t5) +/* 10BC0C 7F0D70DC 25CF0001 */ addiu $t7, $t6, 1 +/* 10BC10 7F0D70E0 A7AF0298 */ sh $t7, 0x298($sp) +/* 10BC14 7F0D70E4 018AC021 */ addu $t8, $t4, $t2 +/* 10BC18 7F0D70E8 A7B801FC */ sh $t8, 0x1fc($sp) +.L7F0D70EC: +/* 10BC1C 7F0D70EC 97AB01FC */ lhu $t3, 0x1fc($sp) +/* 10BC20 7F0D70F0 97B901FC */ lhu $t9, 0x1fc($sp) +/* 10BC24 7F0D70F4 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10BC28 7F0D70F8 29615B00 */ slti $at, $t3, 0x5b00 +/* 10BC2C 7F0D70FC 54200006 */ bnezl $at, .L7F0D7118 +/* 10BC30 7F0D7100 2B215800 */ slti $at, $t9, 0x5800 +/* 10BC34 7F0D7104 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10BC38 7F0D7108 010B4821 */ addu $t1, $t0, $t3 +/* 10BC3C 7F0D710C 10002DBB */ b .L7F0E27FC +/* 10BC40 7F0D7110 A1340000 */ sb $s4, ($t1) +/* 10BC44 7F0D7114 2B215800 */ slti $at, $t9, 0x5800 +.L7F0D7118: +/* 10BC48 7F0D7118 1420000C */ bnez $at, .L7F0D714C +/* 10BC4C 7F0D711C 97A801FC */ lhu $t0, 0x1fc($sp) +/* 10BC50 7F0D7120 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10BC54 7F0D7124 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10BC58 7F0D7128 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 10BC5C 7F0D712C 240A0001 */ li $t2, 1 +/* 10BC60 7F0D7130 01B96021 */ addu $t4, $t5, $t9 +/* 10BC64 7F0D7134 A1940000 */ sb $s4, ($t4) +/* 10BC68 7F0D7138 97AE01FC */ lhu $t6, 0x1fc($sp) +/* 10BC6C 7F0D713C 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 10BC70 7F0D7140 030E7821 */ addu $t7, $t8, $t6 +/* 10BC74 7F0D7144 10002DAD */ b .L7F0E27FC +/* 10BC78 7F0D7148 A1EAA800 */ sb $t2, -0x5800($t7) +.L7F0D714C: +/* 10BC7C 7F0D714C 29014000 */ slti $at, $t0, 0x4000 +/* 10BC80 7F0D7150 14202DAA */ bnez $at, .L7F0E27FC +/* 10BC84 7F0D7154 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10BC88 7F0D7158 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10BC8C 7F0D715C 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 10BC90 7F0D7160 240D0001 */ li $t5, 1 +/* 10BC94 7F0D7164 01684821 */ addu $t1, $t3, $t0 +/* 10BC98 7F0D7168 A1340000 */ sb $s4, ($t1) +/* 10BC9C 7F0D716C 97B901FC */ lhu $t9, 0x1fc($sp) +/* 10BCA0 7F0D7170 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 10BCA4 7F0D7174 332C1800 */ andi $t4, $t9, 0x1800 +/* 10BCA8 7F0D7178 000CC0C3 */ sra $t8, $t4, 3 +/* 10BCAC 7F0D717C 332E00FF */ andi $t6, $t9, 0xff +/* 10BCB0 7F0D7180 030E5025 */ or $t2, $t8, $t6 +/* 10BCB4 7F0D7184 01EA5821 */ addu $t3, $t7, $t2 +/* 10BCB8 7F0D7188 10002D9C */ b .L7F0E27FC +/* 10BCBC 7F0D718C A16D0000 */ sb $t5, ($t3) +spectrum_op_73: +/* 10BCC0 7F0D7190 8FA8028C */ lw $t0, 0x28c($sp) +/* 10BCC4 7F0D7194 93AC0287 */ lbu $t4, 0x287($sp) +/* 10BCC8 7F0D7198 0016CA00 */ sll $t9, $s6, 8 +/* 10BCCC 7F0D719C 25090007 */ addiu $t1, $t0, 7 +/* 10BCD0 7F0D71A0 15800004 */ bnez $t4, .L7F0D71B4 +/* 10BCD4 7F0D71A4 AFA9028C */ sw $t1, 0x28c($sp) +/* 10BCD8 7F0D71A8 0337C025 */ or $t8, $t9, $s7 +/* 10BCDC 7F0D71AC 10000016 */ b .L7F0D7208 +/* 10BCE0 7F0D71B0 A7B801FA */ sh $t8, 0x1fa($sp) +.L7F0D71B4: +/* 10BCE4 7F0D71B4 8FAE028C */ lw $t6, 0x28c($sp) +/* 10BCE8 7F0D71B8 93AA0287 */ lbu $t2, 0x287($sp) +/* 10BCEC 7F0D71BC 24010001 */ li $at, 1 +/* 10BCF0 7F0D71C0 25CF0008 */ addiu $t7, $t6, 8 +/* 10BCF4 7F0D71C4 15410004 */ bne $t2, $at, .L7F0D71D8 +/* 10BCF8 7F0D71C8 AFAF028C */ sw $t7, 0x28c($sp) +/* 10BCFC 7F0D71CC 97AD0296 */ lhu $t5, 0x296($sp) +/* 10BD00 7F0D71D0 10000003 */ b .L7F0D71E0 +/* 10BD04 7F0D71D4 AFAD0048 */ sw $t5, 0x48($sp) +.L7F0D71D8: +/* 10BD08 7F0D71D8 97AB0294 */ lhu $t3, 0x294($sp) +/* 10BD0C 7F0D71DC AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D71E0: +/* 10BD10 7F0D71E0 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10BD14 7F0D71E4 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10BD18 7F0D71E8 97A80298 */ lhu $t0, 0x298($sp) +/* 10BD1C 7F0D71EC 8FB80048 */ lw $t8, 0x48($sp) +/* 10BD20 7F0D71F0 01096021 */ addu $t4, $t0, $t1 +/* 10BD24 7F0D71F4 81990000 */ lb $t9, ($t4) +/* 10BD28 7F0D71F8 250F0001 */ addiu $t7, $t0, 1 +/* 10BD2C 7F0D71FC A7AF0298 */ sh $t7, 0x298($sp) +/* 10BD30 7F0D7200 03387021 */ addu $t6, $t9, $t8 +/* 10BD34 7F0D7204 A7AE01FA */ sh $t6, 0x1fa($sp) +.L7F0D7208: +/* 10BD38 7F0D7208 97AA01FA */ lhu $t2, 0x1fa($sp) +/* 10BD3C 7F0D720C 97A901FA */ lhu $t1, 0x1fa($sp) +/* 10BD40 7F0D7210 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10BD44 7F0D7214 29415B00 */ slti $at, $t2, 0x5b00 +/* 10BD48 7F0D7218 54200006 */ bnezl $at, .L7F0D7234 +/* 10BD4C 7F0D721C 29215800 */ slti $at, $t1, 0x5800 +/* 10BD50 7F0D7220 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10BD54 7F0D7224 01AA5821 */ addu $t3, $t5, $t2 +/* 10BD58 7F0D7228 10002D74 */ b .L7F0E27FC +/* 10BD5C 7F0D722C A1750000 */ sb $s5, ($t3) +/* 10BD60 7F0D7230 29215800 */ slti $at, $t1, 0x5800 +.L7F0D7234: +/* 10BD64 7F0D7234 1420000C */ bnez $at, .L7F0D7268 +/* 10BD68 7F0D7238 97AD01FA */ lhu $t5, 0x1fa($sp) +/* 10BD6C 7F0D723C 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 10BD70 7F0D7240 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 10BD74 7F0D7244 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 10BD78 7F0D7248 24180001 */ li $t8, 1 +/* 10BD7C 7F0D724C 0189C821 */ addu $t9, $t4, $t1 +/* 10BD80 7F0D7250 A3350000 */ sb $s5, ($t9) +/* 10BD84 7F0D7254 97A801FA */ lhu $t0, 0x1fa($sp) +/* 10BD88 7F0D7258 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 10BD8C 7F0D725C 01C87821 */ addu $t7, $t6, $t0 +/* 10BD90 7F0D7260 10002D66 */ b .L7F0E27FC +/* 10BD94 7F0D7264 A1F8A800 */ sb $t8, -0x5800($t7) +.L7F0D7268: +/* 10BD98 7F0D7268 29A14000 */ slti $at, $t5, 0x4000 +/* 10BD9C 7F0D726C 14202D63 */ bnez $at, .L7F0E27FC +/* 10BDA0 7F0D7270 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10BDA4 7F0D7274 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10BDA8 7F0D7278 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 10BDAC 7F0D727C 240C0001 */ li $t4, 1 +/* 10BDB0 7F0D7280 014D5821 */ addu $t3, $t2, $t5 +/* 10BDB4 7F0D7284 A1750000 */ sb $s5, ($t3) +/* 10BDB8 7F0D7288 97A901FA */ lhu $t1, 0x1fa($sp) +/* 10BDBC 7F0D728C 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 10BDC0 7F0D7290 31391800 */ andi $t9, $t1, 0x1800 +/* 10BDC4 7F0D7294 001970C3 */ sra $t6, $t9, 3 +/* 10BDC8 7F0D7298 312800FF */ andi $t0, $t1, 0xff +/* 10BDCC 7F0D729C 01C8C025 */ or $t8, $t6, $t0 +/* 10BDD0 7F0D72A0 01F85021 */ addu $t2, $t7, $t8 +/* 10BDD4 7F0D72A4 10002D55 */ b .L7F0E27FC +/* 10BDD8 7F0D72A8 A14C0000 */ sb $t4, ($t2) +spectrum_op_74: +/* 10BDDC 7F0D72AC 8FAD028C */ lw $t5, 0x28c($sp) +/* 10BDE0 7F0D72B0 93B90287 */ lbu $t9, 0x287($sp) +/* 10BDE4 7F0D72B4 00164A00 */ sll $t1, $s6, 8 +/* 10BDE8 7F0D72B8 25AB0007 */ addiu $t3, $t5, 7 +/* 10BDEC 7F0D72BC 17200004 */ bnez $t9, .L7F0D72D0 +/* 10BDF0 7F0D72C0 AFAB028C */ sw $t3, 0x28c($sp) +/* 10BDF4 7F0D72C4 01377025 */ or $t6, $t1, $s7 +/* 10BDF8 7F0D72C8 10000016 */ b .L7F0D7324 +/* 10BDFC 7F0D72CC A7AE01F8 */ sh $t6, 0x1f8($sp) +.L7F0D72D0: +/* 10BE00 7F0D72D0 8FA8028C */ lw $t0, 0x28c($sp) +/* 10BE04 7F0D72D4 93B80287 */ lbu $t8, 0x287($sp) +/* 10BE08 7F0D72D8 24010001 */ li $at, 1 +/* 10BE0C 7F0D72DC 250F0008 */ addiu $t7, $t0, 8 +/* 10BE10 7F0D72E0 17010004 */ bne $t8, $at, .L7F0D72F4 +/* 10BE14 7F0D72E4 AFAF028C */ sw $t7, 0x28c($sp) +/* 10BE18 7F0D72E8 97AC0296 */ lhu $t4, 0x296($sp) +/* 10BE1C 7F0D72EC 10000003 */ b .L7F0D72FC +/* 10BE20 7F0D72F0 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D72F4: +/* 10BE24 7F0D72F4 97AA0294 */ lhu $t2, 0x294($sp) +/* 10BE28 7F0D72F8 AFAA0048 */ sw $t2, 0x48($sp) +.L7F0D72FC: +/* 10BE2C 7F0D72FC 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10BE30 7F0D7300 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10BE34 7F0D7304 97AD0298 */ lhu $t5, 0x298($sp) +/* 10BE38 7F0D7308 8FAE0048 */ lw $t6, 0x48($sp) +/* 10BE3C 7F0D730C 01ABC821 */ addu $t9, $t5, $t3 +/* 10BE40 7F0D7310 83290000 */ lb $t1, ($t9) +/* 10BE44 7F0D7314 25AF0001 */ addiu $t7, $t5, 1 +/* 10BE48 7F0D7318 A7AF0298 */ sh $t7, 0x298($sp) +/* 10BE4C 7F0D731C 012E4021 */ addu $t0, $t1, $t6 +/* 10BE50 7F0D7320 A7A801F8 */ sh $t0, 0x1f8($sp) +.L7F0D7324: +/* 10BE54 7F0D7324 97B801F8 */ lhu $t8, 0x1f8($sp) +/* 10BE58 7F0D7328 97AB01F8 */ lhu $t3, 0x1f8($sp) +/* 10BE5C 7F0D732C 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 10BE60 7F0D7330 2B015B00 */ slti $at, $t8, 0x5b00 +/* 10BE64 7F0D7334 54200006 */ bnezl $at, .L7F0D7350 +/* 10BE68 7F0D7338 29615800 */ slti $at, $t3, 0x5800 +/* 10BE6C 7F0D733C 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 10BE70 7F0D7340 01985021 */ addu $t2, $t4, $t8 +/* 10BE74 7F0D7344 10002D2D */ b .L7F0E27FC +/* 10BE78 7F0D7348 A1560000 */ sb $s6, ($t2) +/* 10BE7C 7F0D734C 29615800 */ slti $at, $t3, 0x5800 +.L7F0D7350: +/* 10BE80 7F0D7350 1420000C */ bnez $at, .L7F0D7384 +/* 10BE84 7F0D7354 97AC01F8 */ lhu $t4, 0x1f8($sp) +/* 10BE88 7F0D7358 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10BE8C 7F0D735C 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10BE90 7F0D7360 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 10BE94 7F0D7364 240E0001 */ li $t6, 1 +/* 10BE98 7F0D7368 032B4821 */ addu $t1, $t9, $t3 +/* 10BE9C 7F0D736C A1360000 */ sb $s6, ($t1) +/* 10BEA0 7F0D7370 97AD01F8 */ lhu $t5, 0x1f8($sp) +/* 10BEA4 7F0D7374 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 10BEA8 7F0D7378 010D7821 */ addu $t7, $t0, $t5 +/* 10BEAC 7F0D737C 10002D1F */ b .L7F0E27FC +/* 10BEB0 7F0D7380 A1EEA800 */ sb $t6, -0x5800($t7) +.L7F0D7384: +/* 10BEB4 7F0D7384 29814000 */ slti $at, $t4, 0x4000 +/* 10BEB8 7F0D7388 14202D1C */ bnez $at, .L7F0E27FC +/* 10BEBC 7F0D738C 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10BEC0 7F0D7390 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10BEC4 7F0D7394 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 10BEC8 7F0D7398 24190001 */ li $t9, 1 +/* 10BECC 7F0D739C 030C5021 */ addu $t2, $t8, $t4 +/* 10BED0 7F0D73A0 A1560000 */ sb $s6, ($t2) +/* 10BED4 7F0D73A4 97AB01F8 */ lhu $t3, 0x1f8($sp) +/* 10BED8 7F0D73A8 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 10BEDC 7F0D73AC 31691800 */ andi $t1, $t3, 0x1800 +/* 10BEE0 7F0D73B0 000940C3 */ sra $t0, $t1, 3 +/* 10BEE4 7F0D73B4 316D00FF */ andi $t5, $t3, 0xff +/* 10BEE8 7F0D73B8 010D7025 */ or $t6, $t0, $t5 +/* 10BEEC 7F0D73BC 01EEC021 */ addu $t8, $t7, $t6 +/* 10BEF0 7F0D73C0 10002D0E */ b .L7F0E27FC +/* 10BEF4 7F0D73C4 A3190000 */ sb $t9, ($t8) +spectrum_op_75: +/* 10BEF8 7F0D73C8 8FAC028C */ lw $t4, 0x28c($sp) +/* 10BEFC 7F0D73CC 93A90287 */ lbu $t1, 0x287($sp) +/* 10BF00 7F0D73D0 00165A00 */ sll $t3, $s6, 8 +/* 10BF04 7F0D73D4 258A0007 */ addiu $t2, $t4, 7 +/* 10BF08 7F0D73D8 15200004 */ bnez $t1, .L7F0D73EC +/* 10BF0C 7F0D73DC AFAA028C */ sw $t2, 0x28c($sp) +/* 10BF10 7F0D73E0 01774025 */ or $t0, $t3, $s7 +/* 10BF14 7F0D73E4 10000016 */ b .L7F0D7440 +/* 10BF18 7F0D73E8 A7A801F6 */ sh $t0, 0x1f6($sp) +.L7F0D73EC: +/* 10BF1C 7F0D73EC 8FAD028C */ lw $t5, 0x28c($sp) +/* 10BF20 7F0D73F0 93AE0287 */ lbu $t6, 0x287($sp) +/* 10BF24 7F0D73F4 24010001 */ li $at, 1 +/* 10BF28 7F0D73F8 25AF0008 */ addiu $t7, $t5, 8 +/* 10BF2C 7F0D73FC 15C10004 */ bne $t6, $at, .L7F0D7410 +/* 10BF30 7F0D7400 AFAF028C */ sw $t7, 0x28c($sp) +/* 10BF34 7F0D7404 97B90296 */ lhu $t9, 0x296($sp) +/* 10BF38 7F0D7408 10000003 */ b .L7F0D7418 +/* 10BF3C 7F0D740C AFB90048 */ sw $t9, 0x48($sp) +.L7F0D7410: +/* 10BF40 7F0D7410 97B80294 */ lhu $t8, 0x294($sp) +/* 10BF44 7F0D7414 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D7418: +/* 10BF48 7F0D7418 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10BF4C 7F0D741C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10BF50 7F0D7420 97AC0298 */ lhu $t4, 0x298($sp) +/* 10BF54 7F0D7424 8FA80048 */ lw $t0, 0x48($sp) +/* 10BF58 7F0D7428 018A4821 */ addu $t1, $t4, $t2 +/* 10BF5C 7F0D742C 812B0000 */ lb $t3, ($t1) +/* 10BF60 7F0D7430 258F0001 */ addiu $t7, $t4, 1 +/* 10BF64 7F0D7434 A7AF0298 */ sh $t7, 0x298($sp) +/* 10BF68 7F0D7438 01686821 */ addu $t5, $t3, $t0 +/* 10BF6C 7F0D743C A7AD01F6 */ sh $t5, 0x1f6($sp) +.L7F0D7440: +/* 10BF70 7F0D7440 97AE01F6 */ lhu $t6, 0x1f6($sp) +/* 10BF74 7F0D7444 97AA01F6 */ lhu $t2, 0x1f6($sp) +/* 10BF78 7F0D7448 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10BF7C 7F0D744C 29C15B00 */ slti $at, $t6, 0x5b00 +/* 10BF80 7F0D7450 54200006 */ bnezl $at, .L7F0D746C +/* 10BF84 7F0D7454 29415800 */ slti $at, $t2, 0x5800 +/* 10BF88 7F0D7458 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10BF8C 7F0D745C 032EC021 */ addu $t8, $t9, $t6 +/* 10BF90 7F0D7460 10002CE6 */ b .L7F0E27FC +/* 10BF94 7F0D7464 A3170000 */ sb $s7, ($t8) +/* 10BF98 7F0D7468 29415800 */ slti $at, $t2, 0x5800 +.L7F0D746C: +/* 10BF9C 7F0D746C 1420000C */ bnez $at, .L7F0D74A0 +/* 10BFA0 7F0D7470 97B901F6 */ lhu $t9, 0x1f6($sp) +/* 10BFA4 7F0D7474 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10BFA8 7F0D7478 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10BFAC 7F0D747C 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 10BFB0 7F0D7480 24080001 */ li $t0, 1 +/* 10BFB4 7F0D7484 012A5821 */ addu $t3, $t1, $t2 +/* 10BFB8 7F0D7488 A1770000 */ sb $s7, ($t3) +/* 10BFBC 7F0D748C 97AC01F6 */ lhu $t4, 0x1f6($sp) +/* 10BFC0 7F0D7490 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 10BFC4 7F0D7494 01AC7821 */ addu $t7, $t5, $t4 +/* 10BFC8 7F0D7498 10002CD8 */ b .L7F0E27FC +/* 10BFCC 7F0D749C A1E8A800 */ sb $t0, -0x5800($t7) +.L7F0D74A0: +/* 10BFD0 7F0D74A0 2B214000 */ slti $at, $t9, 0x4000 +/* 10BFD4 7F0D74A4 14202CD5 */ bnez $at, .L7F0E27FC +/* 10BFD8 7F0D74A8 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10BFDC 7F0D74AC 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10BFE0 7F0D74B0 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 10BFE4 7F0D74B4 24090001 */ li $t1, 1 +/* 10BFE8 7F0D74B8 01D9C021 */ addu $t8, $t6, $t9 +/* 10BFEC 7F0D74BC A3170000 */ sb $s7, ($t8) +/* 10BFF0 7F0D74C0 97AA01F6 */ lhu $t2, 0x1f6($sp) +/* 10BFF4 7F0D74C4 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 10BFF8 7F0D74C8 314B1800 */ andi $t3, $t2, 0x1800 +/* 10BFFC 7F0D74CC 000B68C3 */ sra $t5, $t3, 3 +/* 10C000 7F0D74D0 314C00FF */ andi $t4, $t2, 0xff +/* 10C004 7F0D74D4 01AC4025 */ or $t0, $t5, $t4 +/* 10C008 7F0D74D8 01E87021 */ addu $t6, $t7, $t0 +/* 10C00C 7F0D74DC 10002CC7 */ b .L7F0E27FC +/* 10C010 7F0D74E0 A1C90000 */ sb $t1, ($t6) +spectrum_op_76: +/* 10C014 7F0D74E4 8FB9028C */ lw $t9, 0x28c($sp) +/* 10C018 7F0D74E8 8FAB0280 */ lw $t3, 0x280($sp) +/* 10C01C 7F0D74EC 27380004 */ addiu $t8, $t9, 4 +/* 10C020 7F0D74F0 030B082B */ sltu $at, $t8, $t3 +/* 10C024 7F0D74F4 10200007 */ beqz $at, .L7F0D7514 +/* 10C028 7F0D74F8 AFB8028C */ sw $t8, 0x28c($sp) +/* 10C02C 7F0D74FC 01785023 */ subu $t2, $t3, $t8 +/* 10C030 7F0D7500 254D0003 */ addiu $t5, $t2, 3 +/* 10C034 7F0D7504 2401FFFC */ li $at, -4 +/* 10C038 7F0D7508 01A16024 */ and $t4, $t5, $at +/* 10C03C 7F0D750C 030C7821 */ addu $t7, $t8, $t4 +/* 10C040 7F0D7510 AFAF028C */ sw $t7, 0x28c($sp) +.L7F0D7514: +/* 10C044 7F0D7514 97A80298 */ lhu $t0, 0x298($sp) +/* 10C048 7F0D7518 2509FFFF */ addiu $t1, $t0, -1 +/* 10C04C 7F0D751C 10002CB7 */ b .L7F0E27FC +/* 10C050 7F0D7520 A7A90298 */ sh $t1, 0x298($sp) +spectrum_op_77: +/* 10C054 7F0D7524 8FAE028C */ lw $t6, 0x28c($sp) +/* 10C058 7F0D7528 93AB0287 */ lbu $t3, 0x287($sp) +/* 10C05C 7F0D752C 00165200 */ sll $t2, $s6, 8 +/* 10C060 7F0D7530 25D90007 */ addiu $t9, $t6, 7 +/* 10C064 7F0D7534 15600004 */ bnez $t3, .L7F0D7548 +/* 10C068 7F0D7538 AFB9028C */ sw $t9, 0x28c($sp) +/* 10C06C 7F0D753C 01576825 */ or $t5, $t2, $s7 +/* 10C070 7F0D7540 10000016 */ b .L7F0D759C +/* 10C074 7F0D7544 A7AD01F4 */ sh $t5, 0x1f4($sp) +.L7F0D7548: +/* 10C078 7F0D7548 8FB8028C */ lw $t8, 0x28c($sp) +/* 10C07C 7F0D754C 93AF0287 */ lbu $t7, 0x287($sp) +/* 10C080 7F0D7550 24010001 */ li $at, 1 +/* 10C084 7F0D7554 270C0008 */ addiu $t4, $t8, 8 +/* 10C088 7F0D7558 15E10004 */ bne $t7, $at, .L7F0D756C +/* 10C08C 7F0D755C AFAC028C */ sw $t4, 0x28c($sp) +/* 10C090 7F0D7560 97A80296 */ lhu $t0, 0x296($sp) +/* 10C094 7F0D7564 10000003 */ b .L7F0D7574 +/* 10C098 7F0D7568 AFA80048 */ sw $t0, 0x48($sp) +.L7F0D756C: +/* 10C09C 7F0D756C 97A90294 */ lhu $t1, 0x294($sp) +/* 10C0A0 7F0D7570 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D7574: +/* 10C0A4 7F0D7574 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10C0A8 7F0D7578 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10C0AC 7F0D757C 97AE0298 */ lhu $t6, 0x298($sp) +/* 10C0B0 7F0D7580 8FAD0048 */ lw $t5, 0x48($sp) +/* 10C0B4 7F0D7584 01D95821 */ addu $t3, $t6, $t9 +/* 10C0B8 7F0D7588 816A0000 */ lb $t2, ($t3) +/* 10C0BC 7F0D758C 25CC0001 */ addiu $t4, $t6, 1 +/* 10C0C0 7F0D7590 A7AC0298 */ sh $t4, 0x298($sp) +/* 10C0C4 7F0D7594 014DC021 */ addu $t8, $t2, $t5 +/* 10C0C8 7F0D7598 A7B801F4 */ sh $t8, 0x1f4($sp) +.L7F0D759C: +/* 10C0CC 7F0D759C 97AF01F4 */ lhu $t7, 0x1f4($sp) +/* 10C0D0 7F0D75A0 97B901F4 */ lhu $t9, 0x1f4($sp) +/* 10C0D4 7F0D75A4 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10C0D8 7F0D75A8 29E15B00 */ slti $at, $t7, 0x5b00 +/* 10C0DC 7F0D75AC 54200006 */ bnezl $at, .L7F0D75C8 +/* 10C0E0 7F0D75B0 2B215800 */ slti $at, $t9, 0x5800 +/* 10C0E4 7F0D75B4 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10C0E8 7F0D75B8 010F4821 */ addu $t1, $t0, $t7 +/* 10C0EC 7F0D75BC 10002C8F */ b .L7F0E27FC +/* 10C0F0 7F0D75C0 A1300000 */ sb $s0, ($t1) +/* 10C0F4 7F0D75C4 2B215800 */ slti $at, $t9, 0x5800 +.L7F0D75C8: +/* 10C0F8 7F0D75C8 1420000C */ bnez $at, .L7F0D75FC +/* 10C0FC 7F0D75CC 97A801F4 */ lhu $t0, 0x1f4($sp) +/* 10C100 7F0D75D0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10C104 7F0D75D4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10C108 7F0D75D8 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 10C10C 7F0D75DC 240D0001 */ li $t5, 1 +/* 10C110 7F0D75E0 01795021 */ addu $t2, $t3, $t9 +/* 10C114 7F0D75E4 A1500000 */ sb $s0, ($t2) +/* 10C118 7F0D75E8 97AE01F4 */ lhu $t6, 0x1f4($sp) +/* 10C11C 7F0D75EC 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 10C120 7F0D75F0 030E6021 */ addu $t4, $t8, $t6 +/* 10C124 7F0D75F4 10002C81 */ b .L7F0E27FC +/* 10C128 7F0D75F8 A18DA800 */ sb $t5, -0x5800($t4) +.L7F0D75FC: +/* 10C12C 7F0D75FC 29014000 */ slti $at, $t0, 0x4000 +/* 10C130 7F0D7600 14202C7E */ bnez $at, .L7F0E27FC +/* 10C134 7F0D7604 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10C138 7F0D7608 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10C13C 7F0D760C 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 10C140 7F0D7610 240B0001 */ li $t3, 1 +/* 10C144 7F0D7614 01E84821 */ addu $t1, $t7, $t0 +/* 10C148 7F0D7618 A1300000 */ sb $s0, ($t1) +/* 10C14C 7F0D761C 97B901F4 */ lhu $t9, 0x1f4($sp) +/* 10C150 7F0D7620 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 10C154 7F0D7624 332A1800 */ andi $t2, $t9, 0x1800 +/* 10C158 7F0D7628 000AC0C3 */ sra $t8, $t2, 3 +/* 10C15C 7F0D762C 332E00FF */ andi $t6, $t9, 0xff +/* 10C160 7F0D7630 030E6825 */ or $t5, $t8, $t6 +/* 10C164 7F0D7634 018D7821 */ addu $t7, $t4, $t5 +/* 10C168 7F0D7638 10002C70 */ b .L7F0E27FC +/* 10C16C 7F0D763C A1EB0000 */ sb $t3, ($t7) +spectrum_op_78: +/* 10C170 7F0D7640 8FA8028C */ lw $t0, 0x28c($sp) +/* 10C174 7F0D7644 325000FF */ andi $s0, $s2, 0xff +/* 10C178 7F0D7648 25090004 */ addiu $t1, $t0, 4 +/* 10C17C 7F0D764C 10002C6B */ b .L7F0E27FC +/* 10C180 7F0D7650 AFA9028C */ sw $t1, 0x28c($sp) +spectrum_op_79: +/* 10C184 7F0D7654 8FAA028C */ lw $t2, 0x28c($sp) +/* 10C188 7F0D7658 327000FF */ andi $s0, $s3, 0xff +/* 10C18C 7F0D765C 25590004 */ addiu $t9, $t2, 4 +/* 10C190 7F0D7660 10002C66 */ b .L7F0E27FC +/* 10C194 7F0D7664 AFB9028C */ sw $t9, 0x28c($sp) +spectrum_op_7A: +/* 10C198 7F0D7668 8FB8028C */ lw $t8, 0x28c($sp) +/* 10C19C 7F0D766C 329000FF */ andi $s0, $s4, 0xff +/* 10C1A0 7F0D7670 270E0004 */ addiu $t6, $t8, 4 +/* 10C1A4 7F0D7674 10002C61 */ b .L7F0E27FC +/* 10C1A8 7F0D7678 AFAE028C */ sw $t6, 0x28c($sp) +spectrum_op_7B: +/* 10C1AC 7F0D767C 8FAC028C */ lw $t4, 0x28c($sp) +/* 10C1B0 7F0D7680 32B000FF */ andi $s0, $s5, 0xff +/* 10C1B4 7F0D7684 258D0004 */ addiu $t5, $t4, 4 +/* 10C1B8 7F0D7688 10002C5C */ b .L7F0E27FC +/* 10C1BC 7F0D768C AFAD028C */ sw $t5, 0x28c($sp) +spectrum_op_7C: +/* 10C1C0 7F0D7690 8FAB028C */ lw $t3, 0x28c($sp) +/* 10C1C4 7F0D7694 93A80287 */ lbu $t0, 0x287($sp) +/* 10C1C8 7F0D7698 93A90287 */ lbu $t1, 0x287($sp) +/* 10C1CC 7F0D769C 256F0004 */ addiu $t7, $t3, 4 +/* 10C1D0 7F0D76A0 15000003 */ bnez $t0, .L7F0D76B0 +/* 10C1D4 7F0D76A4 AFAF028C */ sw $t7, 0x28c($sp) +/* 10C1D8 7F0D76A8 10002C54 */ b .L7F0E27FC +/* 10C1DC 7F0D76AC 32D000FF */ andi $s0, $s6, 0xff +.L7F0D76B0: +/* 10C1E0 7F0D76B0 24010001 */ li $at, 1 +/* 10C1E4 7F0D76B4 15210005 */ bne $t1, $at, .L7F0D76CC +/* 10C1E8 7F0D76B8 97B80294 */ lhu $t8, 0x294($sp) +/* 10C1EC 7F0D76BC 97AA0296 */ lhu $t2, 0x296($sp) +/* 10C1F0 7F0D76C0 000ACA03 */ sra $t9, $t2, 8 +/* 10C1F4 7F0D76C4 10000003 */ b .L7F0D76D4 +/* 10C1F8 7F0D76C8 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D76CC: +/* 10C1FC 7F0D76CC 00187203 */ sra $t6, $t8, 8 +/* 10C200 7F0D76D0 AFAE0048 */ sw $t6, 0x48($sp) +.L7F0D76D4: +/* 10C204 7F0D76D4 10002C49 */ b .L7F0E27FC +/* 10C208 7F0D76D8 93B0004B */ lbu $s0, 0x4b($sp) +spectrum_op_7D: +/* 10C20C 7F0D76DC 8FAC028C */ lw $t4, 0x28c($sp) +/* 10C210 7F0D76E0 93AB0287 */ lbu $t3, 0x287($sp) +/* 10C214 7F0D76E4 93AF0287 */ lbu $t7, 0x287($sp) +/* 10C218 7F0D76E8 258D0004 */ addiu $t5, $t4, 4 +/* 10C21C 7F0D76EC 15600003 */ bnez $t3, .L7F0D76FC +/* 10C220 7F0D76F0 AFAD028C */ sw $t5, 0x28c($sp) +/* 10C224 7F0D76F4 10002C41 */ b .L7F0E27FC +/* 10C228 7F0D76F8 32F000FF */ andi $s0, $s7, 0xff +.L7F0D76FC: +/* 10C22C 7F0D76FC 24010001 */ li $at, 1 +/* 10C230 7F0D7700 15E10005 */ bne $t7, $at, .L7F0D7718 +/* 10C234 7F0D7704 97AA0294 */ lhu $t2, 0x294($sp) +/* 10C238 7F0D7708 97A80296 */ lhu $t0, 0x296($sp) +/* 10C23C 7F0D770C 310900FF */ andi $t1, $t0, 0xff +/* 10C240 7F0D7710 10000003 */ b .L7F0D7720 +/* 10C244 7F0D7714 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D7718: +/* 10C248 7F0D7718 315900FF */ andi $t9, $t2, 0xff +/* 10C24C 7F0D771C AFB90048 */ sw $t9, 0x48($sp) +.L7F0D7720: +/* 10C250 7F0D7720 10002C36 */ b .L7F0E27FC +/* 10C254 7F0D7724 93B0004B */ lbu $s0, 0x4b($sp) +spectrum_op_7E: +/* 10C258 7F0D7728 8FB8028C */ lw $t8, 0x28c($sp) +/* 10C25C 7F0D772C 93AC0287 */ lbu $t4, 0x287($sp) +/* 10C260 7F0D7730 00166A00 */ sll $t5, $s6, 8 +/* 10C264 7F0D7734 270E0007 */ addiu $t6, $t8, 7 +/* 10C268 7F0D7738 15800004 */ bnez $t4, .L7F0D774C +/* 10C26C 7F0D773C AFAE028C */ sw $t6, 0x28c($sp) +/* 10C270 7F0D7740 01B75825 */ or $t3, $t5, $s7 +/* 10C274 7F0D7744 10000016 */ b .L7F0D77A0 +/* 10C278 7F0D7748 A7AB01F2 */ sh $t3, 0x1f2($sp) +.L7F0D774C: +/* 10C27C 7F0D774C 8FAF028C */ lw $t7, 0x28c($sp) +/* 10C280 7F0D7750 93A90287 */ lbu $t1, 0x287($sp) +/* 10C284 7F0D7754 24010001 */ li $at, 1 +/* 10C288 7F0D7758 25E80008 */ addiu $t0, $t7, 8 +/* 10C28C 7F0D775C 15210004 */ bne $t1, $at, .L7F0D7770 +/* 10C290 7F0D7760 AFA8028C */ sw $t0, 0x28c($sp) +/* 10C294 7F0D7764 97AA0296 */ lhu $t2, 0x296($sp) +/* 10C298 7F0D7768 10000003 */ b .L7F0D7778 +/* 10C29C 7F0D776C AFAA0048 */ sw $t2, 0x48($sp) +.L7F0D7770: +/* 10C2A0 7F0D7770 97B90294 */ lhu $t9, 0x294($sp) +/* 10C2A4 7F0D7774 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D7778: +/* 10C2A8 7F0D7778 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10C2AC 7F0D777C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10C2B0 7F0D7780 97B80298 */ lhu $t8, 0x298($sp) +/* 10C2B4 7F0D7784 8FAB0048 */ lw $t3, 0x48($sp) +/* 10C2B8 7F0D7788 030E6021 */ addu $t4, $t8, $t6 +/* 10C2BC 7F0D778C 818D0000 */ lb $t5, ($t4) +/* 10C2C0 7F0D7790 27080001 */ addiu $t0, $t8, 1 +/* 10C2C4 7F0D7794 A7A80298 */ sh $t0, 0x298($sp) +/* 10C2C8 7F0D7798 01AB7821 */ addu $t7, $t5, $t3 +/* 10C2CC 7F0D779C A7AF01F2 */ sh $t7, 0x1f2($sp) +.L7F0D77A0: +/* 10C2D0 7F0D77A0 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10C2D4 7F0D77A4 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10C2D8 7F0D77A8 97A901F2 */ lhu $t1, 0x1f2($sp) +/* 10C2DC 7F0D77AC 012AC821 */ addu $t9, $t1, $t2 +/* 10C2E0 7F0D77B0 10002C12 */ b .L7F0E27FC +/* 10C2E4 7F0D77B4 93300000 */ lbu $s0, ($t9) +spectrum_op_7F: +/* 10C2E8 7F0D77B8 8FAE028C */ lw $t6, 0x28c($sp) +/* 10C2EC 7F0D77BC 25CC0004 */ addiu $t4, $t6, 4 +/* 10C2F0 7F0D77C0 10002C0E */ b .L7F0E27FC +/* 10C2F4 7F0D77C4 AFAC028C */ sw $t4, 0x28c($sp) +spectrum_op_80: +/* 10C2F8 7F0D77C8 8FAD028C */ lw $t5, 0x28c($sp) +/* 10C2FC 7F0D77CC 324F00FF */ andi $t7, $s2, 0xff +/* 10C300 7F0D77D0 020F4021 */ addu $t0, $s0, $t7 +/* 10C304 7F0D77D4 25AB0004 */ addiu $t3, $t5, 4 +/* 10C308 7F0D77D8 310900A8 */ andi $t1, $t0, 0xa8 +/* 10C30C 7F0D77DC 00085203 */ sra $t2, $t0, 8 +/* 10C310 7F0D77E0 31EC000F */ andi $t4, $t7, 0xf +/* 10C314 7F0D77E4 320E000F */ andi $t6, $s0, 0xf +/* 10C318 7F0D77E8 AFAB028C */ sw $t3, 0x28c($sp) +/* 10C31C 7F0D77EC 01CC6821 */ addu $t5, $t6, $t4 +/* 10C320 7F0D77F0 012AC825 */ or $t9, $t1, $t2 +/* 10C324 7F0D77F4 2401000F */ li $at, 15 +/* 10C328 7F0D77F8 002D582A */ slt $t3, $at, $t5 +/* 10C32C 7F0D77FC 02005027 */ not $t2, $s0 +/* 10C330 7F0D7800 01106826 */ xor $t5, $t0, $s0 +/* 10C334 7F0D7804 A7A801F0 */ sh $t0, 0x1f0($sp) +/* 10C338 7F0D7808 93B001F1 */ lbu $s0, 0x1f1($sp) +/* 10C33C 7F0D780C 014F7026 */ xor $t6, $t2, $t7 +/* 10C340 7F0D7810 000BC100 */ sll $t8, $t3, 4 +/* 10C344 7F0D7814 31CC0080 */ andi $t4, $t6, 0x80 +/* 10C348 7F0D7818 018D5824 */ and $t3, $t4, $t5 +/* 10C34C 7F0D781C 03384825 */ or $t1, $t9, $t8 +/* 10C350 7F0D7820 000BC943 */ sra $t9, $t3, 5 +/* 10C354 7F0D7824 2E0A0001 */ sltiu $t2, $s0, 1 +/* 10C358 7F0D7828 000A7180 */ sll $t6, $t2, 6 +/* 10C35C 7F0D782C 0139C025 */ or $t8, $t1, $t9 +/* 10C360 7F0D7830 030E8825 */ or $s1, $t8, $t6 +/* 10C364 7F0D7834 322800FF */ andi $t0, $s1, 0xff +/* 10C368 7F0D7838 01008825 */ move $s1, $t0 +/* 10C36C 7F0D783C AFAA0048 */ sw $t2, 0x48($sp) +/* 10C370 7F0D7840 10002BEE */ b .L7F0E27FC +/* 10C374 7F0D7844 A3B201EF */ sb $s2, 0x1ef($sp) +spectrum_op_81: +/* 10C378 7F0D7848 8FAC028C */ lw $t4, 0x28c($sp) +/* 10C37C 7F0D784C 326B00FF */ andi $t3, $s3, 0xff +/* 10C380 7F0D7850 020BC821 */ addu $t9, $s0, $t3 +/* 10C384 7F0D7854 258D0004 */ addiu $t5, $t4, 4 +/* 10C388 7F0D7858 333800A8 */ andi $t8, $t9, 0xa8 +/* 10C38C 7F0D785C 00195203 */ sra $t2, $t9, 8 +/* 10C390 7F0D7860 3168000F */ andi $t0, $t3, 0xf +/* 10C394 7F0D7864 320E000F */ andi $t6, $s0, 0xf +/* 10C398 7F0D7868 AFAD028C */ sw $t5, 0x28c($sp) +/* 10C39C 7F0D786C 01C86021 */ addu $t4, $t6, $t0 +/* 10C3A0 7F0D7870 030A7825 */ or $t7, $t8, $t2 +/* 10C3A4 7F0D7874 2401000F */ li $at, 15 +/* 10C3A8 7F0D7878 002C682A */ slt $t5, $at, $t4 +/* 10C3AC 7F0D787C 02005027 */ not $t2, $s0 +/* 10C3B0 7F0D7880 03306026 */ xor $t4, $t9, $s0 +/* 10C3B4 7F0D7884 A7B901EC */ sh $t9, 0x1ec($sp) +/* 10C3B8 7F0D7888 93B001ED */ lbu $s0, 0x1ed($sp) +/* 10C3BC 7F0D788C 014B7026 */ xor $t6, $t2, $t3 +/* 10C3C0 7F0D7890 000D4900 */ sll $t1, $t5, 4 +/* 10C3C4 7F0D7894 31C80080 */ andi $t0, $t6, 0x80 +/* 10C3C8 7F0D7898 010C6824 */ and $t5, $t0, $t4 +/* 10C3CC 7F0D789C 01E9C025 */ or $t8, $t7, $t1 +/* 10C3D0 7F0D78A0 000D7943 */ sra $t7, $t5, 5 +/* 10C3D4 7F0D78A4 2E0A0001 */ sltiu $t2, $s0, 1 +/* 10C3D8 7F0D78A8 000A7180 */ sll $t6, $t2, 6 +/* 10C3DC 7F0D78AC 030F4825 */ or $t1, $t8, $t7 +/* 10C3E0 7F0D78B0 012E8825 */ or $s1, $t1, $t6 +/* 10C3E4 7F0D78B4 323900FF */ andi $t9, $s1, 0xff +/* 10C3E8 7F0D78B8 03208825 */ move $s1, $t9 +/* 10C3EC 7F0D78BC AFAA0048 */ sw $t2, 0x48($sp) +/* 10C3F0 7F0D78C0 10002BCE */ b .L7F0E27FC +/* 10C3F4 7F0D78C4 A3B301EB */ sb $s3, 0x1eb($sp) +spectrum_op_82: +/* 10C3F8 7F0D78C8 8FA8028C */ lw $t0, 0x28c($sp) +/* 10C3FC 7F0D78CC 328D00FF */ andi $t5, $s4, 0xff +/* 10C400 7F0D78D0 020D7821 */ addu $t7, $s0, $t5 +/* 10C404 7F0D78D4 250C0004 */ addiu $t4, $t0, 4 +/* 10C408 7F0D78D8 31E900A8 */ andi $t1, $t7, 0xa8 +/* 10C40C 7F0D78DC 000F5203 */ sra $t2, $t7, 8 +/* 10C410 7F0D78E0 31B9000F */ andi $t9, $t5, 0xf +/* 10C414 7F0D78E4 320E000F */ andi $t6, $s0, 0xf +/* 10C418 7F0D78E8 AFAC028C */ sw $t4, 0x28c($sp) +/* 10C41C 7F0D78EC 01D94021 */ addu $t0, $t6, $t9 +/* 10C420 7F0D78F0 012A5825 */ or $t3, $t1, $t2 +/* 10C424 7F0D78F4 2401000F */ li $at, 15 +/* 10C428 7F0D78F8 0028602A */ slt $t4, $at, $t0 +/* 10C42C 7F0D78FC 02005027 */ not $t2, $s0 +/* 10C430 7F0D7900 01F04026 */ xor $t0, $t7, $s0 +/* 10C434 7F0D7904 A7AF01E8 */ sh $t7, 0x1e8($sp) +/* 10C438 7F0D7908 93B001E9 */ lbu $s0, 0x1e9($sp) +/* 10C43C 7F0D790C 014D7026 */ xor $t6, $t2, $t5 +/* 10C440 7F0D7910 000CC100 */ sll $t8, $t4, 4 +/* 10C444 7F0D7914 31D90080 */ andi $t9, $t6, 0x80 +/* 10C448 7F0D7918 03286024 */ and $t4, $t9, $t0 +/* 10C44C 7F0D791C 01784825 */ or $t1, $t3, $t8 +/* 10C450 7F0D7920 000C5943 */ sra $t3, $t4, 5 +/* 10C454 7F0D7924 2E0A0001 */ sltiu $t2, $s0, 1 +/* 10C458 7F0D7928 000A7180 */ sll $t6, $t2, 6 +/* 10C45C 7F0D792C 012BC025 */ or $t8, $t1, $t3 +/* 10C460 7F0D7930 030E8825 */ or $s1, $t8, $t6 +/* 10C464 7F0D7934 322F00FF */ andi $t7, $s1, 0xff +/* 10C468 7F0D7938 01E08825 */ move $s1, $t7 +/* 10C46C 7F0D793C AFAA0048 */ sw $t2, 0x48($sp) +/* 10C470 7F0D7940 10002BAE */ b .L7F0E27FC +/* 10C474 7F0D7944 A3B401E7 */ sb $s4, 0x1e7($sp) +spectrum_op_83: +/* 10C478 7F0D7948 8FB9028C */ lw $t9, 0x28c($sp) +/* 10C47C 7F0D794C 32AC00FF */ andi $t4, $s5, 0xff +/* 10C480 7F0D7950 020C5821 */ addu $t3, $s0, $t4 +/* 10C484 7F0D7954 27280004 */ addiu $t0, $t9, 4 +/* 10C488 7F0D7958 317800A8 */ andi $t8, $t3, 0xa8 +/* 10C48C 7F0D795C 000B5203 */ sra $t2, $t3, 8 +/* 10C490 7F0D7960 318F000F */ andi $t7, $t4, 0xf +/* 10C494 7F0D7964 320E000F */ andi $t6, $s0, 0xf +/* 10C498 7F0D7968 AFA8028C */ sw $t0, 0x28c($sp) +/* 10C49C 7F0D796C 01CFC821 */ addu $t9, $t6, $t7 +/* 10C4A0 7F0D7970 030A6825 */ or $t5, $t8, $t2 +/* 10C4A4 7F0D7974 2401000F */ li $at, 15 +/* 10C4A8 7F0D7978 0039402A */ slt $t0, $at, $t9 +/* 10C4AC 7F0D797C 02005027 */ not $t2, $s0 +/* 10C4B0 7F0D7980 0170C826 */ xor $t9, $t3, $s0 +/* 10C4B4 7F0D7984 A7AB01E4 */ sh $t3, 0x1e4($sp) +/* 10C4B8 7F0D7988 93B001E5 */ lbu $s0, 0x1e5($sp) +/* 10C4BC 7F0D798C 014C7026 */ xor $t6, $t2, $t4 +/* 10C4C0 7F0D7990 00084900 */ sll $t1, $t0, 4 +/* 10C4C4 7F0D7994 31CF0080 */ andi $t7, $t6, 0x80 +/* 10C4C8 7F0D7998 01F94024 */ and $t0, $t7, $t9 +/* 10C4CC 7F0D799C 01A9C025 */ or $t8, $t5, $t1 +/* 10C4D0 7F0D79A0 00086943 */ sra $t5, $t0, 5 +/* 10C4D4 7F0D79A4 2E0A0001 */ sltiu $t2, $s0, 1 +/* 10C4D8 7F0D79A8 000A7180 */ sll $t6, $t2, 6 +/* 10C4DC 7F0D79AC 030D4825 */ or $t1, $t8, $t5 +/* 10C4E0 7F0D79B0 012E8825 */ or $s1, $t1, $t6 +/* 10C4E4 7F0D79B4 322B00FF */ andi $t3, $s1, 0xff +/* 10C4E8 7F0D79B8 01608825 */ move $s1, $t3 +/* 10C4EC 7F0D79BC AFAA0048 */ sw $t2, 0x48($sp) +/* 10C4F0 7F0D79C0 10002B8E */ b .L7F0E27FC +/* 10C4F4 7F0D79C4 A3B501E3 */ sb $s5, 0x1e3($sp) +spectrum_op_84: +/* 10C4F8 7F0D79C8 8FAF028C */ lw $t7, 0x28c($sp) +/* 10C4FC 7F0D79CC 93A80287 */ lbu $t0, 0x287($sp) +/* 10C500 7F0D79D0 93B80287 */ lbu $t8, 0x287($sp) +/* 10C504 7F0D79D4 25F90004 */ addiu $t9, $t7, 4 +/* 10C508 7F0D79D8 15000003 */ bnez $t0, .L7F0D79E8 +/* 10C50C 7F0D79DC AFB9028C */ sw $t9, 0x28c($sp) +/* 10C510 7F0D79E0 1000000C */ b .L7F0D7A14 +/* 10C514 7F0D79E4 A3B601DF */ sb $s6, 0x1df($sp) +.L7F0D79E8: +/* 10C518 7F0D79E8 24010001 */ li $at, 1 +/* 10C51C 7F0D79EC 17010005 */ bne $t8, $at, .L7F0D7A04 +/* 10C520 7F0D79F0 97AA0294 */ lhu $t2, 0x294($sp) +/* 10C524 7F0D79F4 97AD0296 */ lhu $t5, 0x296($sp) +/* 10C528 7F0D79F8 000D4A03 */ sra $t1, $t5, 8 +/* 10C52C 7F0D79FC 10000003 */ b .L7F0D7A0C +/* 10C530 7F0D7A00 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D7A04: +/* 10C534 7F0D7A04 000A6203 */ sra $t4, $t2, 8 +/* 10C538 7F0D7A08 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D7A0C: +/* 10C53C 7F0D7A0C 8FAE0048 */ lw $t6, 0x48($sp) +/* 10C540 7F0D7A10 A3AE01DF */ sb $t6, 0x1df($sp) +.L7F0D7A14: +/* 10C544 7F0D7A14 93AB01DF */ lbu $t3, 0x1df($sp) +/* 10C548 7F0D7A18 3209000F */ andi $t1, $s0, 0xf +/* 10C54C 7F0D7A1C 2401000F */ li $at, 15 +/* 10C550 7F0D7A20 020BC821 */ addu $t9, $s0, $t3 +/* 10C554 7F0D7A24 332800A8 */ andi $t0, $t9, 0xa8 +/* 10C558 7F0D7A28 0019C203 */ sra $t8, $t9, 8 +/* 10C55C 7F0D7A2C 316A000F */ andi $t2, $t3, 0xf +/* 10C560 7F0D7A30 012A6021 */ addu $t4, $t1, $t2 +/* 10C564 7F0D7A34 01186825 */ or $t5, $t0, $t8 +/* 10C568 7F0D7A38 0200C027 */ not $t8, $s0 +/* 10C56C 7F0D7A3C 002C702A */ slt $t6, $at, $t4 +/* 10C570 7F0D7A40 03306026 */ xor $t4, $t9, $s0 +/* 10C574 7F0D7A44 A7B901E0 */ sh $t9, 0x1e0($sp) +/* 10C578 7F0D7A48 93B001E1 */ lbu $s0, 0x1e1($sp) +/* 10C57C 7F0D7A4C 000E7900 */ sll $t7, $t6, 4 +/* 10C580 7F0D7A50 030B4826 */ xor $t1, $t8, $t3 +/* 10C584 7F0D7A54 312A0080 */ andi $t2, $t1, 0x80 +/* 10C588 7F0D7A58 014C7024 */ and $t6, $t2, $t4 +/* 10C58C 7F0D7A5C 01AF4025 */ or $t0, $t5, $t7 +/* 10C590 7F0D7A60 000E6943 */ sra $t5, $t6, 5 +/* 10C594 7F0D7A64 2E180001 */ sltiu $t8, $s0, 1 +/* 10C598 7F0D7A68 00184980 */ sll $t1, $t8, 6 +/* 10C59C 7F0D7A6C 010D7825 */ or $t7, $t0, $t5 +/* 10C5A0 7F0D7A70 01E98825 */ or $s1, $t7, $t1 +/* 10C5A4 7F0D7A74 323900FF */ andi $t9, $s1, 0xff +/* 10C5A8 7F0D7A78 03208825 */ move $s1, $t9 +/* 10C5AC 7F0D7A7C 10002B5F */ b .L7F0E27FC +/* 10C5B0 7F0D7A80 AFB80048 */ sw $t8, 0x48($sp) +spectrum_op_85: +/* 10C5B4 7F0D7A84 8FAA028C */ lw $t2, 0x28c($sp) +/* 10C5B8 7F0D7A88 93AE0287 */ lbu $t6, 0x287($sp) +/* 10C5BC 7F0D7A8C 93A80287 */ lbu $t0, 0x287($sp) +/* 10C5C0 7F0D7A90 254C0004 */ addiu $t4, $t2, 4 +/* 10C5C4 7F0D7A94 15C00003 */ bnez $t6, .L7F0D7AA4 +/* 10C5C8 7F0D7A98 AFAC028C */ sw $t4, 0x28c($sp) +/* 10C5CC 7F0D7A9C 1000000C */ b .L7F0D7AD0 +/* 10C5D0 7F0D7AA0 A3B701DB */ sb $s7, 0x1db($sp) +.L7F0D7AA4: +/* 10C5D4 7F0D7AA4 24010001 */ li $at, 1 +/* 10C5D8 7F0D7AA8 15010005 */ bne $t0, $at, .L7F0D7AC0 +/* 10C5DC 7F0D7AAC 97B80294 */ lhu $t8, 0x294($sp) +/* 10C5E0 7F0D7AB0 97AD0296 */ lhu $t5, 0x296($sp) +/* 10C5E4 7F0D7AB4 31AF00FF */ andi $t7, $t5, 0xff +/* 10C5E8 7F0D7AB8 10000003 */ b .L7F0D7AC8 +/* 10C5EC 7F0D7ABC AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D7AC0: +/* 10C5F0 7F0D7AC0 330B00FF */ andi $t3, $t8, 0xff +/* 10C5F4 7F0D7AC4 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D7AC8: +/* 10C5F8 7F0D7AC8 8FA90048 */ lw $t1, 0x48($sp) +/* 10C5FC 7F0D7ACC A3A901DB */ sb $t1, 0x1db($sp) +.L7F0D7AD0: +/* 10C600 7F0D7AD0 93B901DB */ lbu $t9, 0x1db($sp) +/* 10C604 7F0D7AD4 320F000F */ andi $t7, $s0, 0xf +/* 10C608 7F0D7AD8 2401000F */ li $at, 15 +/* 10C60C 7F0D7ADC 02196021 */ addu $t4, $s0, $t9 +/* 10C610 7F0D7AE0 318E00A8 */ andi $t6, $t4, 0xa8 +/* 10C614 7F0D7AE4 000C4203 */ sra $t0, $t4, 8 +/* 10C618 7F0D7AE8 3338000F */ andi $t8, $t9, 0xf +/* 10C61C 7F0D7AEC 01F85821 */ addu $t3, $t7, $t8 +/* 10C620 7F0D7AF0 01C86825 */ or $t5, $t6, $t0 +/* 10C624 7F0D7AF4 02004027 */ not $t0, $s0 +/* 10C628 7F0D7AF8 002B482A */ slt $t1, $at, $t3 +/* 10C62C 7F0D7AFC 01905826 */ xor $t3, $t4, $s0 +/* 10C630 7F0D7B00 A7AC01DC */ sh $t4, 0x1dc($sp) +/* 10C634 7F0D7B04 93B001DD */ lbu $s0, 0x1dd($sp) +/* 10C638 7F0D7B08 00095100 */ sll $t2, $t1, 4 +/* 10C63C 7F0D7B0C 01197826 */ xor $t7, $t0, $t9 +/* 10C640 7F0D7B10 31F80080 */ andi $t8, $t7, 0x80 +/* 10C644 7F0D7B14 030B4824 */ and $t1, $t8, $t3 +/* 10C648 7F0D7B18 01AA7025 */ or $t6, $t5, $t2 +/* 10C64C 7F0D7B1C 00096943 */ sra $t5, $t1, 5 +/* 10C650 7F0D7B20 2E080001 */ sltiu $t0, $s0, 1 +/* 10C654 7F0D7B24 00087980 */ sll $t7, $t0, 6 +/* 10C658 7F0D7B28 01CD5025 */ or $t2, $t6, $t5 +/* 10C65C 7F0D7B2C 014F8825 */ or $s1, $t2, $t7 +/* 10C660 7F0D7B30 322C00FF */ andi $t4, $s1, 0xff +/* 10C664 7F0D7B34 01808825 */ move $s1, $t4 +/* 10C668 7F0D7B38 10002B30 */ b .L7F0E27FC +/* 10C66C 7F0D7B3C AFA80048 */ sw $t0, 0x48($sp) +spectrum_op_86: +/* 10C670 7F0D7B40 8FB8028C */ lw $t8, 0x28c($sp) +/* 10C674 7F0D7B44 93A90287 */ lbu $t1, 0x287($sp) +/* 10C678 7F0D7B48 00167200 */ sll $t6, $s6, 8 +/* 10C67C 7F0D7B4C 270B0007 */ addiu $t3, $t8, 7 +/* 10C680 7F0D7B50 15200004 */ bnez $t1, .L7F0D7B64 +/* 10C684 7F0D7B54 AFAB028C */ sw $t3, 0x28c($sp) +/* 10C688 7F0D7B58 01D76825 */ or $t5, $t6, $s7 +/* 10C68C 7F0D7B5C 10000016 */ b .L7F0D7BB8 +/* 10C690 7F0D7B60 A7AD01D8 */ sh $t5, 0x1d8($sp) +.L7F0D7B64: +/* 10C694 7F0D7B64 8FAA028C */ lw $t2, 0x28c($sp) +/* 10C698 7F0D7B68 93B90287 */ lbu $t9, 0x287($sp) +/* 10C69C 7F0D7B6C 24010001 */ li $at, 1 +/* 10C6A0 7F0D7B70 25480008 */ addiu $t0, $t2, 8 +/* 10C6A4 7F0D7B74 17210004 */ bne $t9, $at, .L7F0D7B88 +/* 10C6A8 7F0D7B78 AFA8028C */ sw $t0, 0x28c($sp) +/* 10C6AC 7F0D7B7C 97AF0296 */ lhu $t7, 0x296($sp) +/* 10C6B0 7F0D7B80 10000003 */ b .L7F0D7B90 +/* 10C6B4 7F0D7B84 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D7B88: +/* 10C6B8 7F0D7B88 97AC0294 */ lhu $t4, 0x294($sp) +/* 10C6BC 7F0D7B8C AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D7B90: +/* 10C6C0 7F0D7B90 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10C6C4 7F0D7B94 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10C6C8 7F0D7B98 97B80298 */ lhu $t8, 0x298($sp) +/* 10C6CC 7F0D7B9C 8FAD0048 */ lw $t5, 0x48($sp) +/* 10C6D0 7F0D7BA0 030B4821 */ addu $t1, $t8, $t3 +/* 10C6D4 7F0D7BA4 812E0000 */ lb $t6, ($t1) +/* 10C6D8 7F0D7BA8 27080001 */ addiu $t0, $t8, 1 +/* 10C6DC 7F0D7BAC A7A80298 */ sh $t0, 0x298($sp) +/* 10C6E0 7F0D7BB0 01CD5021 */ addu $t2, $t6, $t5 +/* 10C6E4 7F0D7BB4 A7AA01D8 */ sh $t2, 0x1d8($sp) +.L7F0D7BB8: +/* 10C6E8 7F0D7BB8 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10C6EC 7F0D7BBC 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10C6F0 7F0D7BC0 97B901D8 */ lhu $t9, 0x1d8($sp) +/* 10C6F4 7F0D7BC4 2401000F */ li $at, 15 +/* 10C6F8 7F0D7BC8 032F6021 */ addu $t4, $t9, $t7 +/* 10C6FC 7F0D7BCC 918B0000 */ lbu $t3, ($t4) +/* 10C700 7F0D7BD0 3219000F */ andi $t9, $s0, 0xf +/* 10C704 7F0D7BD4 020B7021 */ addu $t6, $s0, $t3 +/* 10C708 7F0D7BD8 31CD00A8 */ andi $t5, $t6, 0xa8 +/* 10C70C 7F0D7BDC 000E5203 */ sra $t2, $t6, 8 +/* 10C710 7F0D7BE0 3168000F */ andi $t0, $t3, 0xf +/* 10C714 7F0D7BE4 03287821 */ addu $t7, $t9, $t0 +/* 10C718 7F0D7BE8 01AAC025 */ or $t8, $t5, $t2 +/* 10C71C 7F0D7BEC 02005027 */ not $t2, $s0 +/* 10C720 7F0D7BF0 002F602A */ slt $t4, $at, $t7 +/* 10C724 7F0D7BF4 01D07826 */ xor $t7, $t6, $s0 +/* 10C728 7F0D7BF8 A7AE01D6 */ sh $t6, 0x1d6($sp) +/* 10C72C 7F0D7BFC 93B001D7 */ lbu $s0, 0x1d7($sp) +/* 10C730 7F0D7C00 000C4900 */ sll $t1, $t4, 4 +/* 10C734 7F0D7C04 014BC826 */ xor $t9, $t2, $t3 +/* 10C738 7F0D7C08 33280080 */ andi $t0, $t9, 0x80 +/* 10C73C 7F0D7C0C 010F6024 */ and $t4, $t0, $t7 +/* 10C740 7F0D7C10 03096825 */ or $t5, $t8, $t1 +/* 10C744 7F0D7C14 000CC143 */ sra $t8, $t4, 5 +/* 10C748 7F0D7C18 2E0A0001 */ sltiu $t2, $s0, 1 +/* 10C74C 7F0D7C1C 000AC980 */ sll $t9, $t2, 6 +/* 10C750 7F0D7C20 01B84825 */ or $t1, $t5, $t8 +/* 10C754 7F0D7C24 01398825 */ or $s1, $t1, $t9 +/* 10C758 7F0D7C28 322E00FF */ andi $t6, $s1, 0xff +/* 10C75C 7F0D7C2C 01C08825 */ move $s1, $t6 +/* 10C760 7F0D7C30 AFAA0048 */ sw $t2, 0x48($sp) +/* 10C764 7F0D7C34 10002AF1 */ b .L7F0E27FC +/* 10C768 7F0D7C38 A3AB01D5 */ sb $t3, 0x1d5($sp) +spectrum_op_87: +/* 10C76C 7F0D7C3C 8FA8028C */ lw $t0, 0x28c($sp) +/* 10C770 7F0D7C40 320C00FF */ andi $t4, $s0, 0xff +/* 10C774 7F0D7C44 020CC021 */ addu $t8, $s0, $t4 +/* 10C778 7F0D7C48 250F0004 */ addiu $t7, $t0, 4 +/* 10C77C 7F0D7C4C 330900A8 */ andi $t1, $t8, 0xa8 +/* 10C780 7F0D7C50 00185203 */ sra $t2, $t8, 8 +/* 10C784 7F0D7C54 318E000F */ andi $t6, $t4, 0xf +/* 10C788 7F0D7C58 3219000F */ andi $t9, $s0, 0xf +/* 10C78C 7F0D7C5C AFAF028C */ sw $t7, 0x28c($sp) +/* 10C790 7F0D7C60 032E4021 */ addu $t0, $t9, $t6 +/* 10C794 7F0D7C64 012A5825 */ or $t3, $t1, $t2 +/* 10C798 7F0D7C68 2401000F */ li $at, 15 +/* 10C79C 7F0D7C6C 0028782A */ slt $t7, $at, $t0 +/* 10C7A0 7F0D7C70 02005027 */ not $t2, $s0 +/* 10C7A4 7F0D7C74 03104026 */ xor $t0, $t8, $s0 +/* 10C7A8 7F0D7C78 A7B801D2 */ sh $t8, 0x1d2($sp) +/* 10C7AC 7F0D7C7C A3B001D1 */ sb $s0, 0x1d1($sp) +/* 10C7B0 7F0D7C80 93B001D3 */ lbu $s0, 0x1d3($sp) +/* 10C7B4 7F0D7C84 014CC826 */ xor $t9, $t2, $t4 +/* 10C7B8 7F0D7C88 000F6900 */ sll $t5, $t7, 4 +/* 10C7BC 7F0D7C8C 332E0080 */ andi $t6, $t9, 0x80 +/* 10C7C0 7F0D7C90 01C87824 */ and $t7, $t6, $t0 +/* 10C7C4 7F0D7C94 016D4825 */ or $t1, $t3, $t5 +/* 10C7C8 7F0D7C98 000F5943 */ sra $t3, $t7, 5 +/* 10C7CC 7F0D7C9C 2E0A0001 */ sltiu $t2, $s0, 1 +/* 10C7D0 7F0D7CA0 000AC980 */ sll $t9, $t2, 6 +/* 10C7D4 7F0D7CA4 012B6825 */ or $t5, $t1, $t3 +/* 10C7D8 7F0D7CA8 01B98825 */ or $s1, $t5, $t9 +/* 10C7DC 7F0D7CAC 323800FF */ andi $t8, $s1, 0xff +/* 10C7E0 7F0D7CB0 03008825 */ move $s1, $t8 +/* 10C7E4 7F0D7CB4 10002AD1 */ b .L7F0E27FC +/* 10C7E8 7F0D7CB8 AFAA0048 */ sw $t2, 0x48($sp) +spectrum_op_88: +/* 10C7EC 7F0D7CBC 8FAE028C */ lw $t6, 0x28c($sp) +/* 10C7F0 7F0D7CC0 324F00FF */ andi $t7, $s2, 0xff +/* 10C7F4 7F0D7CC4 020F4821 */ addu $t1, $s0, $t7 +/* 10C7F8 7F0D7CC8 322B0001 */ andi $t3, $s1, 1 +/* 10C7FC 7F0D7CCC 012B6821 */ addu $t5, $t1, $t3 +/* 10C800 7F0D7CD0 25C80004 */ addiu $t0, $t6, 4 +/* 10C804 7F0D7CD4 AFA8028C */ sw $t0, 0x28c($sp) +/* 10C808 7F0D7CD8 3208000F */ andi $t0, $s0, 0xf +/* 10C80C 7F0D7CDC 31E9000F */ andi $t1, $t7, 0xf +/* 10C810 7F0D7CE0 01095821 */ addu $t3, $t0, $t1 +/* 10C814 7F0D7CE4 31AC00A8 */ andi $t4, $t5, 0xa8 +/* 10C818 7F0D7CE8 000DC203 */ sra $t8, $t5, 8 +/* 10C81C 7F0D7CEC 322A0001 */ andi $t2, $s1, 1 +/* 10C820 7F0D7CF0 016AC821 */ addu $t9, $t3, $t2 +/* 10C824 7F0D7CF4 01987025 */ or $t6, $t4, $t8 +/* 10C828 7F0D7CF8 2401000F */ li $at, 15 +/* 10C82C 7F0D7CFC 0039602A */ slt $t4, $at, $t9 +/* 10C830 7F0D7D00 000CC100 */ sll $t8, $t4, 4 +/* 10C834 7F0D7D04 01A0C825 */ move $t9, $t5 +/* 10C838 7F0D7D08 02004827 */ not $t1, $s0 +/* 10C83C 7F0D7D0C 03306026 */ xor $t4, $t9, $s0 +/* 10C840 7F0D7D10 A7AD01CE */ sh $t5, 0x1ce($sp) +/* 10C844 7F0D7D14 93B001CF */ lbu $s0, 0x1cf($sp) +/* 10C848 7F0D7D18 012F5826 */ xor $t3, $t1, $t7 +/* 10C84C 7F0D7D1C 316A0080 */ andi $t2, $t3, 0x80 +/* 10C850 7F0D7D20 01D84025 */ or $t0, $t6, $t8 +/* 10C854 7F0D7D24 014C7024 */ and $t6, $t2, $t4 +/* 10C858 7F0D7D28 000EC143 */ sra $t8, $t6, 5 +/* 10C85C 7F0D7D2C 2E0F0001 */ sltiu $t7, $s0, 1 +/* 10C860 7F0D7D30 000F6980 */ sll $t5, $t7, 6 +/* 10C864 7F0D7D34 01184825 */ or $t1, $t0, $t8 +/* 10C868 7F0D7D38 012D8825 */ or $s1, $t1, $t5 +/* 10C86C 7F0D7D3C 323900FF */ andi $t9, $s1, 0xff +/* 10C870 7F0D7D40 03208825 */ move $s1, $t9 +/* 10C874 7F0D7D44 AFAF0048 */ sw $t7, 0x48($sp) +/* 10C878 7F0D7D48 10002AAC */ b .L7F0E27FC +/* 10C87C 7F0D7D4C A3B201CD */ sb $s2, 0x1cd($sp) +spectrum_op_89: +/* 10C880 7F0D7D50 8FAA028C */ lw $t2, 0x28c($sp) +/* 10C884 7F0D7D54 326E00FF */ andi $t6, $s3, 0xff +/* 10C888 7F0D7D58 020E4021 */ addu $t0, $s0, $t6 +/* 10C88C 7F0D7D5C 32380001 */ andi $t8, $s1, 1 +/* 10C890 7F0D7D60 01184821 */ addu $t1, $t0, $t8 +/* 10C894 7F0D7D64 254C0004 */ addiu $t4, $t2, 4 +/* 10C898 7F0D7D68 AFAC028C */ sw $t4, 0x28c($sp) +/* 10C89C 7F0D7D6C 320C000F */ andi $t4, $s0, 0xf +/* 10C8A0 7F0D7D70 31C8000F */ andi $t0, $t6, 0xf +/* 10C8A4 7F0D7D74 0188C021 */ addu $t8, $t4, $t0 +/* 10C8A8 7F0D7D78 312B00A8 */ andi $t3, $t1, 0xa8 +/* 10C8AC 7F0D7D7C 0009CA03 */ sra $t9, $t1, 8 +/* 10C8B0 7F0D7D80 322F0001 */ andi $t7, $s1, 1 +/* 10C8B4 7F0D7D84 030F6821 */ addu $t5, $t8, $t7 +/* 10C8B8 7F0D7D88 01795025 */ or $t2, $t3, $t9 +/* 10C8BC 7F0D7D8C 2401000F */ li $at, 15 +/* 10C8C0 7F0D7D90 002D582A */ slt $t3, $at, $t5 +/* 10C8C4 7F0D7D94 000BC900 */ sll $t9, $t3, 4 +/* 10C8C8 7F0D7D98 01206825 */ move $t5, $t1 +/* 10C8CC 7F0D7D9C 02004027 */ not $t0, $s0 +/* 10C8D0 7F0D7DA0 01B05826 */ xor $t3, $t5, $s0 +/* 10C8D4 7F0D7DA4 A7A901CA */ sh $t1, 0x1ca($sp) +/* 10C8D8 7F0D7DA8 93B001CB */ lbu $s0, 0x1cb($sp) +/* 10C8DC 7F0D7DAC 010EC026 */ xor $t8, $t0, $t6 +/* 10C8E0 7F0D7DB0 330F0080 */ andi $t7, $t8, 0x80 +/* 10C8E4 7F0D7DB4 01596025 */ or $t4, $t2, $t9 +/* 10C8E8 7F0D7DB8 01EB5024 */ and $t2, $t7, $t3 +/* 10C8EC 7F0D7DBC 000AC943 */ sra $t9, $t2, 5 +/* 10C8F0 7F0D7DC0 2E0E0001 */ sltiu $t6, $s0, 1 +/* 10C8F4 7F0D7DC4 000E4980 */ sll $t1, $t6, 6 +/* 10C8F8 7F0D7DC8 01994025 */ or $t0, $t4, $t9 +/* 10C8FC 7F0D7DCC 01098825 */ or $s1, $t0, $t1 +/* 10C900 7F0D7DD0 322D00FF */ andi $t5, $s1, 0xff +/* 10C904 7F0D7DD4 01A08825 */ move $s1, $t5 +/* 10C908 7F0D7DD8 AFAE0048 */ sw $t6, 0x48($sp) +/* 10C90C 7F0D7DDC 10002A87 */ b .L7F0E27FC +/* 10C910 7F0D7DE0 A3B301C9 */ sb $s3, 0x1c9($sp) +spectrum_op_8A: +/* 10C914 7F0D7DE4 8FAF028C */ lw $t7, 0x28c($sp) +/* 10C918 7F0D7DE8 328A00FF */ andi $t2, $s4, 0xff +/* 10C91C 7F0D7DEC 020A6021 */ addu $t4, $s0, $t2 +/* 10C920 7F0D7DF0 32390001 */ andi $t9, $s1, 1 +/* 10C924 7F0D7DF4 01994021 */ addu $t0, $t4, $t9 +/* 10C928 7F0D7DF8 25EB0004 */ addiu $t3, $t7, 4 +/* 10C92C 7F0D7DFC AFAB028C */ sw $t3, 0x28c($sp) +/* 10C930 7F0D7E00 320B000F */ andi $t3, $s0, 0xf +/* 10C934 7F0D7E04 314C000F */ andi $t4, $t2, 0xf +/* 10C938 7F0D7E08 016CC821 */ addu $t9, $t3, $t4 +/* 10C93C 7F0D7E0C 311800A8 */ andi $t8, $t0, 0xa8 +/* 10C940 7F0D7E10 00086A03 */ sra $t5, $t0, 8 +/* 10C944 7F0D7E14 322E0001 */ andi $t6, $s1, 1 +/* 10C948 7F0D7E18 032E4821 */ addu $t1, $t9, $t6 +/* 10C94C 7F0D7E1C 030D7825 */ or $t7, $t8, $t5 +/* 10C950 7F0D7E20 2401000F */ li $at, 15 +/* 10C954 7F0D7E24 0029C02A */ slt $t8, $at, $t1 +/* 10C958 7F0D7E28 00186900 */ sll $t5, $t8, 4 +/* 10C95C 7F0D7E2C 01004825 */ move $t1, $t0 +/* 10C960 7F0D7E30 02006027 */ not $t4, $s0 +/* 10C964 7F0D7E34 0130C026 */ xor $t8, $t1, $s0 +/* 10C968 7F0D7E38 A7A801C6 */ sh $t0, 0x1c6($sp) +/* 10C96C 7F0D7E3C 93B001C7 */ lbu $s0, 0x1c7($sp) +/* 10C970 7F0D7E40 018AC826 */ xor $t9, $t4, $t2 +/* 10C974 7F0D7E44 332E0080 */ andi $t6, $t9, 0x80 +/* 10C978 7F0D7E48 01ED5825 */ or $t3, $t7, $t5 +/* 10C97C 7F0D7E4C 01D87824 */ and $t7, $t6, $t8 +/* 10C980 7F0D7E50 000F6943 */ sra $t5, $t7, 5 +/* 10C984 7F0D7E54 2E0A0001 */ sltiu $t2, $s0, 1 +/* 10C988 7F0D7E58 000A4180 */ sll $t0, $t2, 6 +/* 10C98C 7F0D7E5C 016D6025 */ or $t4, $t3, $t5 +/* 10C990 7F0D7E60 01888825 */ or $s1, $t4, $t0 +/* 10C994 7F0D7E64 322900FF */ andi $t1, $s1, 0xff +/* 10C998 7F0D7E68 01208825 */ move $s1, $t1 +/* 10C99C 7F0D7E6C AFAA0048 */ sw $t2, 0x48($sp) +/* 10C9A0 7F0D7E70 10002A62 */ b .L7F0E27FC +/* 10C9A4 7F0D7E74 A3B401C5 */ sb $s4, 0x1c5($sp) +spectrum_op_8B: +/* 10C9A8 7F0D7E78 8FAE028C */ lw $t6, 0x28c($sp) +/* 10C9AC 7F0D7E7C 32AF00FF */ andi $t7, $s5, 0xff +/* 10C9B0 7F0D7E80 020F5821 */ addu $t3, $s0, $t7 +/* 10C9B4 7F0D7E84 322D0001 */ andi $t5, $s1, 1 +/* 10C9B8 7F0D7E88 016D6021 */ addu $t4, $t3, $t5 +/* 10C9BC 7F0D7E8C 25D80004 */ addiu $t8, $t6, 4 +/* 10C9C0 7F0D7E90 AFB8028C */ sw $t8, 0x28c($sp) +/* 10C9C4 7F0D7E94 3218000F */ andi $t8, $s0, 0xf +/* 10C9C8 7F0D7E98 31EB000F */ andi $t3, $t7, 0xf +/* 10C9CC 7F0D7E9C 030B6821 */ addu $t5, $t8, $t3 +/* 10C9D0 7F0D7EA0 319900A8 */ andi $t9, $t4, 0xa8 +/* 10C9D4 7F0D7EA4 000C4A03 */ sra $t1, $t4, 8 +/* 10C9D8 7F0D7EA8 322A0001 */ andi $t2, $s1, 1 +/* 10C9DC 7F0D7EAC 01AA4021 */ addu $t0, $t5, $t2 +/* 10C9E0 7F0D7EB0 03297025 */ or $t6, $t9, $t1 +/* 10C9E4 7F0D7EB4 2401000F */ li $at, 15 +/* 10C9E8 7F0D7EB8 0028C82A */ slt $t9, $at, $t0 +/* 10C9EC 7F0D7EBC 00194900 */ sll $t1, $t9, 4 +/* 10C9F0 7F0D7EC0 01804025 */ move $t0, $t4 +/* 10C9F4 7F0D7EC4 02005827 */ not $t3, $s0 +/* 10C9F8 7F0D7EC8 0110C826 */ xor $t9, $t0, $s0 +/* 10C9FC 7F0D7ECC A7AC01C2 */ sh $t4, 0x1c2($sp) +/* 10CA00 7F0D7ED0 93B001C3 */ lbu $s0, 0x1c3($sp) +/* 10CA04 7F0D7ED4 016F6826 */ xor $t5, $t3, $t7 +/* 10CA08 7F0D7ED8 31AA0080 */ andi $t2, $t5, 0x80 +/* 10CA0C 7F0D7EDC 01C9C025 */ or $t8, $t6, $t1 +/* 10CA10 7F0D7EE0 01597024 */ and $t6, $t2, $t9 +/* 10CA14 7F0D7EE4 000E4943 */ sra $t1, $t6, 5 +/* 10CA18 7F0D7EE8 2E0F0001 */ sltiu $t7, $s0, 1 +/* 10CA1C 7F0D7EEC 000F6180 */ sll $t4, $t7, 6 +/* 10CA20 7F0D7EF0 03095825 */ or $t3, $t8, $t1 +/* 10CA24 7F0D7EF4 016C8825 */ or $s1, $t3, $t4 +/* 10CA28 7F0D7EF8 322800FF */ andi $t0, $s1, 0xff +/* 10CA2C 7F0D7EFC 01008825 */ move $s1, $t0 +/* 10CA30 7F0D7F00 AFAF0048 */ sw $t7, 0x48($sp) +/* 10CA34 7F0D7F04 10002A3D */ b .L7F0E27FC +/* 10CA38 7F0D7F08 A3B501C1 */ sb $s5, 0x1c1($sp) +spectrum_op_8C: +/* 10CA3C 7F0D7F0C 8FAA028C */ lw $t2, 0x28c($sp) +/* 10CA40 7F0D7F10 93AE0287 */ lbu $t6, 0x287($sp) +/* 10CA44 7F0D7F14 93B80287 */ lbu $t8, 0x287($sp) +/* 10CA48 7F0D7F18 25590004 */ addiu $t9, $t2, 4 +/* 10CA4C 7F0D7F1C 15C00003 */ bnez $t6, .L7F0D7F2C +/* 10CA50 7F0D7F20 AFB9028C */ sw $t9, 0x28c($sp) +/* 10CA54 7F0D7F24 1000000C */ b .L7F0D7F58 +/* 10CA58 7F0D7F28 A3B601BD */ sb $s6, 0x1bd($sp) +.L7F0D7F2C: +/* 10CA5C 7F0D7F2C 24010001 */ li $at, 1 +/* 10CA60 7F0D7F30 17010005 */ bne $t8, $at, .L7F0D7F48 +/* 10CA64 7F0D7F34 97AF0294 */ lhu $t7, 0x294($sp) +/* 10CA68 7F0D7F38 97A90296 */ lhu $t1, 0x296($sp) +/* 10CA6C 7F0D7F3C 00095A03 */ sra $t3, $t1, 8 +/* 10CA70 7F0D7F40 10000003 */ b .L7F0D7F50 +/* 10CA74 7F0D7F44 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D7F48: +/* 10CA78 7F0D7F48 000F6A03 */ sra $t5, $t7, 8 +/* 10CA7C 7F0D7F4C AFAD0048 */ sw $t5, 0x48($sp) +.L7F0D7F50: +/* 10CA80 7F0D7F50 8FAC0048 */ lw $t4, 0x48($sp) +/* 10CA84 7F0D7F54 A3AC01BD */ sb $t4, 0x1bd($sp) +.L7F0D7F58: +/* 10CA88 7F0D7F58 93A801BD */ lbu $t0, 0x1bd($sp) +/* 10CA8C 7F0D7F5C 32390001 */ andi $t9, $s1, 1 +/* 10CA90 7F0D7F60 320C000F */ andi $t4, $s0, 0xf +/* 10CA94 7F0D7F64 02085021 */ addu $t2, $s0, $t0 +/* 10CA98 7F0D7F68 01597021 */ addu $t6, $t2, $t9 +/* 10CA9C 7F0D7F6C 310A000F */ andi $t2, $t0, 0xf +/* 10CAA0 7F0D7F70 018AC821 */ addu $t9, $t4, $t2 +/* 10CAA4 7F0D7F74 31C900A8 */ andi $t1, $t6, 0xa8 +/* 10CAA8 7F0D7F78 000E7A03 */ sra $t7, $t6, 8 +/* 10CAAC 7F0D7F7C 32380001 */ andi $t8, $s1, 1 +/* 10CAB0 7F0D7F80 03385821 */ addu $t3, $t9, $t8 +/* 10CAB4 7F0D7F84 012F6825 */ or $t5, $t1, $t7 +/* 10CAB8 7F0D7F88 2401000F */ li $at, 15 +/* 10CABC 7F0D7F8C 002B482A */ slt $t1, $at, $t3 +/* 10CAC0 7F0D7F90 00097900 */ sll $t7, $t1, 4 +/* 10CAC4 7F0D7F94 01C05825 */ move $t3, $t6 +/* 10CAC8 7F0D7F98 02005027 */ not $t2, $s0 +/* 10CACC 7F0D7F9C 01704826 */ xor $t1, $t3, $s0 +/* 10CAD0 7F0D7FA0 A7AE01BE */ sh $t6, 0x1be($sp) +/* 10CAD4 7F0D7FA4 93B001BF */ lbu $s0, 0x1bf($sp) +/* 10CAD8 7F0D7FA8 0148C826 */ xor $t9, $t2, $t0 +/* 10CADC 7F0D7FAC 33380080 */ andi $t8, $t9, 0x80 +/* 10CAE0 7F0D7FB0 01AF6025 */ or $t4, $t5, $t7 +/* 10CAE4 7F0D7FB4 03096824 */ and $t5, $t8, $t1 +/* 10CAE8 7F0D7FB8 000D7943 */ sra $t7, $t5, 5 +/* 10CAEC 7F0D7FBC 2E080001 */ sltiu $t0, $s0, 1 +/* 10CAF0 7F0D7FC0 00087180 */ sll $t6, $t0, 6 +/* 10CAF4 7F0D7FC4 018F5025 */ or $t2, $t4, $t7 +/* 10CAF8 7F0D7FC8 014E8825 */ or $s1, $t2, $t6 +/* 10CAFC 7F0D7FCC 322B00FF */ andi $t3, $s1, 0xff +/* 10CB00 7F0D7FD0 01608825 */ move $s1, $t3 +/* 10CB04 7F0D7FD4 10002A09 */ b .L7F0E27FC +/* 10CB08 7F0D7FD8 AFA80048 */ sw $t0, 0x48($sp) +spectrum_op_8D: +/* 10CB0C 7F0D7FDC 8FB8028C */ lw $t8, 0x28c($sp) +/* 10CB10 7F0D7FE0 93AD0287 */ lbu $t5, 0x287($sp) +/* 10CB14 7F0D7FE4 93AC0287 */ lbu $t4, 0x287($sp) +/* 10CB18 7F0D7FE8 27090004 */ addiu $t1, $t8, 4 +/* 10CB1C 7F0D7FEC 15A00003 */ bnez $t5, .L7F0D7FFC +/* 10CB20 7F0D7FF0 AFA9028C */ sw $t1, 0x28c($sp) +/* 10CB24 7F0D7FF4 1000000C */ b .L7F0D8028 +/* 10CB28 7F0D7FF8 A3B701B9 */ sb $s7, 0x1b9($sp) +.L7F0D7FFC: +/* 10CB2C 7F0D7FFC 24010001 */ li $at, 1 +/* 10CB30 7F0D8000 15810005 */ bne $t4, $at, .L7F0D8018 +/* 10CB34 7F0D8004 97A80294 */ lhu $t0, 0x294($sp) +/* 10CB38 7F0D8008 97AF0296 */ lhu $t7, 0x296($sp) +/* 10CB3C 7F0D800C 31EA00FF */ andi $t2, $t7, 0xff +/* 10CB40 7F0D8010 10000003 */ b .L7F0D8020 +/* 10CB44 7F0D8014 AFAA0048 */ sw $t2, 0x48($sp) +.L7F0D8018: +/* 10CB48 7F0D8018 311900FF */ andi $t9, $t0, 0xff +/* 10CB4C 7F0D801C AFB90048 */ sw $t9, 0x48($sp) +.L7F0D8020: +/* 10CB50 7F0D8020 8FAE0048 */ lw $t6, 0x48($sp) +/* 10CB54 7F0D8024 A3AE01B9 */ sb $t6, 0x1b9($sp) +.L7F0D8028: +/* 10CB58 7F0D8028 93AB01B9 */ lbu $t3, 0x1b9($sp) +/* 10CB5C 7F0D802C 32290001 */ andi $t1, $s1, 1 +/* 10CB60 7F0D8030 320E000F */ andi $t6, $s0, 0xf +/* 10CB64 7F0D8034 020BC021 */ addu $t8, $s0, $t3 +/* 10CB68 7F0D8038 03096821 */ addu $t5, $t8, $t1 +/* 10CB6C 7F0D803C 3178000F */ andi $t8, $t3, 0xf +/* 10CB70 7F0D8040 01D84821 */ addu $t1, $t6, $t8 +/* 10CB74 7F0D8044 31AF00A8 */ andi $t7, $t5, 0xa8 +/* 10CB78 7F0D8048 000D4203 */ sra $t0, $t5, 8 +/* 10CB7C 7F0D804C 322C0001 */ andi $t4, $s1, 1 +/* 10CB80 7F0D8050 012C5021 */ addu $t2, $t1, $t4 +/* 10CB84 7F0D8054 01E8C825 */ or $t9, $t7, $t0 +/* 10CB88 7F0D8058 2401000F */ li $at, 15 +/* 10CB8C 7F0D805C 002A782A */ slt $t7, $at, $t2 +/* 10CB90 7F0D8060 000F4100 */ sll $t0, $t7, 4 +/* 10CB94 7F0D8064 01A05025 */ move $t2, $t5 +/* 10CB98 7F0D8068 0200C027 */ not $t8, $s0 +/* 10CB9C 7F0D806C 01507826 */ xor $t7, $t2, $s0 +/* 10CBA0 7F0D8070 A7AD01BA */ sh $t5, 0x1ba($sp) +/* 10CBA4 7F0D8074 93B001BB */ lbu $s0, 0x1bb($sp) +/* 10CBA8 7F0D8078 030B4826 */ xor $t1, $t8, $t3 +/* 10CBAC 7F0D807C 312C0080 */ andi $t4, $t1, 0x80 +/* 10CBB0 7F0D8080 03287025 */ or $t6, $t9, $t0 +/* 10CBB4 7F0D8084 018FC824 */ and $t9, $t4, $t7 +/* 10CBB8 7F0D8088 00194143 */ sra $t0, $t9, 5 +/* 10CBBC 7F0D808C 2E0B0001 */ sltiu $t3, $s0, 1 +/* 10CBC0 7F0D8090 000B6980 */ sll $t5, $t3, 6 +/* 10CBC4 7F0D8094 01C8C025 */ or $t8, $t6, $t0 +/* 10CBC8 7F0D8098 030D8825 */ or $s1, $t8, $t5 +/* 10CBCC 7F0D809C 322A00FF */ andi $t2, $s1, 0xff +/* 10CBD0 7F0D80A0 01408825 */ move $s1, $t2 +/* 10CBD4 7F0D80A4 100029D5 */ b .L7F0E27FC +/* 10CBD8 7F0D80A8 AFAB0048 */ sw $t3, 0x48($sp) +spectrum_op_8E: +/* 10CBDC 7F0D80AC 8FAC028C */ lw $t4, 0x28c($sp) +/* 10CBE0 7F0D80B0 93B90287 */ lbu $t9, 0x287($sp) +/* 10CBE4 7F0D80B4 00167200 */ sll $t6, $s6, 8 +/* 10CBE8 7F0D80B8 258F0007 */ addiu $t7, $t4, 7 +/* 10CBEC 7F0D80BC 17200004 */ bnez $t9, .L7F0D80D0 +/* 10CBF0 7F0D80C0 AFAF028C */ sw $t7, 0x28c($sp) +/* 10CBF4 7F0D80C4 01D74025 */ or $t0, $t6, $s7 +/* 10CBF8 7F0D80C8 10000016 */ b .L7F0D8124 +/* 10CBFC 7F0D80CC A7A801B6 */ sh $t0, 0x1b6($sp) +.L7F0D80D0: +/* 10CC00 7F0D80D0 8FB8028C */ lw $t8, 0x28c($sp) +/* 10CC04 7F0D80D4 93A90287 */ lbu $t1, 0x287($sp) +/* 10CC08 7F0D80D8 24010001 */ li $at, 1 +/* 10CC0C 7F0D80DC 270B0008 */ addiu $t3, $t8, 8 +/* 10CC10 7F0D80E0 15210004 */ bne $t1, $at, .L7F0D80F4 +/* 10CC14 7F0D80E4 AFAB028C */ sw $t3, 0x28c($sp) +/* 10CC18 7F0D80E8 97AD0296 */ lhu $t5, 0x296($sp) +/* 10CC1C 7F0D80EC 10000003 */ b .L7F0D80FC +/* 10CC20 7F0D80F0 AFAD0048 */ sw $t5, 0x48($sp) +.L7F0D80F4: +/* 10CC24 7F0D80F4 97AA0294 */ lhu $t2, 0x294($sp) +/* 10CC28 7F0D80F8 AFAA0048 */ sw $t2, 0x48($sp) +.L7F0D80FC: +/* 10CC2C 7F0D80FC 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10CC30 7F0D8100 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10CC34 7F0D8104 97AC0298 */ lhu $t4, 0x298($sp) +/* 10CC38 7F0D8108 8FA80048 */ lw $t0, 0x48($sp) +/* 10CC3C 7F0D810C 018FC821 */ addu $t9, $t4, $t7 +/* 10CC40 7F0D8110 832E0000 */ lb $t6, ($t9) +/* 10CC44 7F0D8114 258B0001 */ addiu $t3, $t4, 1 +/* 10CC48 7F0D8118 A7AB0298 */ sh $t3, 0x298($sp) +/* 10CC4C 7F0D811C 01C8C021 */ addu $t8, $t6, $t0 +/* 10CC50 7F0D8120 A7B801B6 */ sh $t8, 0x1b6($sp) +.L7F0D8124: +/* 10CC54 7F0D8124 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10CC58 7F0D8128 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10CC5C 7F0D812C 97A901B6 */ lhu $t1, 0x1b6($sp) +/* 10CC60 7F0D8130 322E0001 */ andi $t6, $s1, 1 +/* 10CC64 7F0D8134 32380001 */ andi $t8, $s1, 1 +/* 10CC68 7F0D8138 012D5021 */ addu $t2, $t1, $t5 +/* 10CC6C 7F0D813C 914F0000 */ lbu $t7, ($t2) +/* 10CC70 7F0D8140 2401000F */ li $at, 15 +/* 10CC74 7F0D8144 020FC821 */ addu $t9, $s0, $t7 +/* 10CC78 7F0D8148 032E4021 */ addu $t0, $t9, $t6 +/* 10CC7C 7F0D814C 3219000F */ andi $t9, $s0, 0xf +/* 10CC80 7F0D8150 31EA000F */ andi $t2, $t7, 0xf +/* 10CC84 7F0D8154 032A7021 */ addu $t6, $t9, $t2 +/* 10CC88 7F0D8158 310C00A8 */ andi $t4, $t0, 0xa8 +/* 10CC8C 7F0D815C 00084A03 */ sra $t1, $t0, 8 +/* 10CC90 7F0D8160 01896825 */ or $t5, $t4, $t1 +/* 10CC94 7F0D8164 01D85821 */ addu $t3, $t6, $t8 +/* 10CC98 7F0D8168 002B602A */ slt $t4, $at, $t3 +/* 10CC9C 7F0D816C 000C4900 */ sll $t1, $t4, 4 +/* 10CCA0 7F0D8170 01005825 */ move $t3, $t0 +/* 10CCA4 7F0D8174 02005027 */ not $t2, $s0 +/* 10CCA8 7F0D8178 01706026 */ xor $t4, $t3, $s0 +/* 10CCAC 7F0D817C A7A801B4 */ sh $t0, 0x1b4($sp) +/* 10CCB0 7F0D8180 93B001B5 */ lbu $s0, 0x1b5($sp) +/* 10CCB4 7F0D8184 014F7026 */ xor $t6, $t2, $t7 +/* 10CCB8 7F0D8188 31D80080 */ andi $t8, $t6, 0x80 +/* 10CCBC 7F0D818C 01A9C825 */ or $t9, $t5, $t1 +/* 10CCC0 7F0D8190 030C6824 */ and $t5, $t8, $t4 +/* 10CCC4 7F0D8194 A3AF01B3 */ sb $t7, 0x1b3($sp) +/* 10CCC8 7F0D8198 000D4943 */ sra $t1, $t5, 5 +/* 10CCCC 7F0D819C 2E0F0001 */ sltiu $t7, $s0, 1 +/* 10CCD0 7F0D81A0 000F4180 */ sll $t0, $t7, 6 +/* 10CCD4 7F0D81A4 03295025 */ or $t2, $t9, $t1 +/* 10CCD8 7F0D81A8 01488825 */ or $s1, $t2, $t0 +/* 10CCDC 7F0D81AC 322B00FF */ andi $t3, $s1, 0xff +/* 10CCE0 7F0D81B0 01608825 */ move $s1, $t3 +/* 10CCE4 7F0D81B4 10002991 */ b .L7F0E27FC +/* 10CCE8 7F0D81B8 AFAF0048 */ sw $t7, 0x48($sp) +spectrum_op_8F: +/* 10CCEC 7F0D81BC 8FB8028C */ lw $t8, 0x28c($sp) +/* 10CCF0 7F0D81C0 320D00FF */ andi $t5, $s0, 0xff +/* 10CCF4 7F0D81C4 020DC821 */ addu $t9, $s0, $t5 +/* 10CCF8 7F0D81C8 32290001 */ andi $t1, $s1, 1 +/* 10CCFC 7F0D81CC 03295021 */ addu $t2, $t9, $t1 +/* 10CD00 7F0D81D0 270C0004 */ addiu $t4, $t8, 4 +/* 10CD04 7F0D81D4 AFAC028C */ sw $t4, 0x28c($sp) +/* 10CD08 7F0D81D8 320C000F */ andi $t4, $s0, 0xf +/* 10CD0C 7F0D81DC 31B9000F */ andi $t9, $t5, 0xf +/* 10CD10 7F0D81E0 01994821 */ addu $t1, $t4, $t9 +/* 10CD14 7F0D81E4 314E00A8 */ andi $t6, $t2, 0xa8 +/* 10CD18 7F0D81E8 000A5A03 */ sra $t3, $t2, 8 +/* 10CD1C 7F0D81EC 322F0001 */ andi $t7, $s1, 1 +/* 10CD20 7F0D81F0 012F4021 */ addu $t0, $t1, $t7 +/* 10CD24 7F0D81F4 01CBC025 */ or $t8, $t6, $t3 +/* 10CD28 7F0D81F8 2401000F */ li $at, 15 +/* 10CD2C 7F0D81FC 0028702A */ slt $t6, $at, $t0 +/* 10CD30 7F0D8200 000E5900 */ sll $t3, $t6, 4 +/* 10CD34 7F0D8204 01404025 */ move $t0, $t2 +/* 10CD38 7F0D8208 0200C827 */ not $t9, $s0 +/* 10CD3C 7F0D820C 01107026 */ xor $t6, $t0, $s0 +/* 10CD40 7F0D8210 A7AA01B0 */ sh $t2, 0x1b0($sp) +/* 10CD44 7F0D8214 A3B001AF */ sb $s0, 0x1af($sp) +/* 10CD48 7F0D8218 93B001B1 */ lbu $s0, 0x1b1($sp) +/* 10CD4C 7F0D821C 032D4826 */ xor $t1, $t9, $t5 +/* 10CD50 7F0D8220 312F0080 */ andi $t7, $t1, 0x80 +/* 10CD54 7F0D8224 030B6025 */ or $t4, $t8, $t3 +/* 10CD58 7F0D8228 01EEC024 */ and $t8, $t7, $t6 +/* 10CD5C 7F0D822C 00185943 */ sra $t3, $t8, 5 +/* 10CD60 7F0D8230 2E0D0001 */ sltiu $t5, $s0, 1 +/* 10CD64 7F0D8234 000D5180 */ sll $t2, $t5, 6 +/* 10CD68 7F0D8238 018BC825 */ or $t9, $t4, $t3 +/* 10CD6C 7F0D823C 032A8825 */ or $s1, $t9, $t2 +/* 10CD70 7F0D8240 322800FF */ andi $t0, $s1, 0xff +/* 10CD74 7F0D8244 01008825 */ move $s1, $t0 +/* 10CD78 7F0D8248 1000296C */ b .L7F0E27FC +/* 10CD7C 7F0D824C AFAD0048 */ sw $t5, 0x48($sp) +spectrum_op_90: +/* 10CD80 7F0D8250 8FAF028C */ lw $t7, 0x28c($sp) +/* 10CD84 7F0D8254 325800FF */ andi $t8, $s2, 0xff +/* 10CD88 7F0D8258 02186023 */ subu $t4, $s0, $t8 +/* 10CD8C 7F0D825C 25EE0004 */ addiu $t6, $t7, 4 +/* 10CD90 7F0D8260 318B01FF */ andi $t3, $t4, 0x1ff +/* 10CD94 7F0D8264 AFAE028C */ sw $t6, 0x28c($sp) +/* 10CD98 7F0D8268 330E000F */ andi $t6, $t8, 0xf +/* 10CD9C 7F0D826C 316D00A8 */ andi $t5, $t3, 0xa8 +/* 10CDA0 7F0D8270 000B5203 */ sra $t2, $t3, 8 +/* 10CDA4 7F0D8274 320F000F */ andi $t7, $s0, 0xf +/* 10CDA8 7F0D8278 01EE602A */ slt $t4, $t7, $t6 +/* 10CDAC 7F0D827C 01AA4025 */ or $t0, $t5, $t2 +/* 10CDB0 7F0D8280 02186826 */ xor $t5, $s0, $t8 +/* 10CDB4 7F0D8284 000CC900 */ sll $t9, $t4, 4 +/* 10CDB8 7F0D8288 01707026 */ xor $t6, $t3, $s0 +/* 10CDBC 7F0D828C A7AB01AC */ sh $t3, 0x1ac($sp) +/* 10CDC0 7F0D8290 93B001AD */ lbu $s0, 0x1ad($sp) +/* 10CDC4 7F0D8294 31AA0080 */ andi $t2, $t5, 0x80 +/* 10CDC8 7F0D8298 014E6024 */ and $t4, $t2, $t6 +/* 10CDCC 7F0D829C 01194825 */ or $t1, $t0, $t9 +/* 10CDD0 7F0D82A0 000C4143 */ sra $t0, $t4, 5 +/* 10CDD4 7F0D82A4 01288825 */ or $s1, $t1, $t0 +/* 10CDD8 7F0D82A8 2E0D0001 */ sltiu $t5, $s0, 1 +/* 10CDDC 7F0D82AC 000D7980 */ sll $t7, $t5, 6 +/* 10CDE0 7F0D82B0 36380002 */ ori $t8, $s1, 2 +/* 10CDE4 7F0D82B4 030F8825 */ or $s1, $t8, $t7 +/* 10CDE8 7F0D82B8 322A00FF */ andi $t2, $s1, 0xff +/* 10CDEC 7F0D82BC 01408825 */ move $s1, $t2 +/* 10CDF0 7F0D82C0 AFAD0048 */ sw $t5, 0x48($sp) +/* 10CDF4 7F0D82C4 1000294D */ b .L7F0E27FC +/* 10CDF8 7F0D82C8 A3B201AB */ sb $s2, 0x1ab($sp) +spectrum_op_91: +/* 10CDFC 7F0D82CC 8FAE028C */ lw $t6, 0x28c($sp) +/* 10CE00 7F0D82D0 326900FF */ andi $t1, $s3, 0xff +/* 10CE04 7F0D82D4 02094023 */ subu $t0, $s0, $t1 +/* 10CE08 7F0D82D8 25CC0004 */ addiu $t4, $t6, 4 +/* 10CE0C 7F0D82DC 311901FF */ andi $t9, $t0, 0x1ff +/* 10CE10 7F0D82E0 AFAC028C */ sw $t4, 0x28c($sp) +/* 10CE14 7F0D82E4 312C000F */ andi $t4, $t1, 0xf +/* 10CE18 7F0D82E8 332D00A8 */ andi $t5, $t9, 0xa8 +/* 10CE1C 7F0D82EC 00197A03 */ sra $t7, $t9, 8 +/* 10CE20 7F0D82F0 320E000F */ andi $t6, $s0, 0xf +/* 10CE24 7F0D82F4 01CC402A */ slt $t0, $t6, $t4 +/* 10CE28 7F0D82F8 01AF5025 */ or $t2, $t5, $t7 +/* 10CE2C 7F0D82FC 02096826 */ xor $t5, $s0, $t1 +/* 10CE30 7F0D8300 0008C100 */ sll $t8, $t0, 4 +/* 10CE34 7F0D8304 03306026 */ xor $t4, $t9, $s0 +/* 10CE38 7F0D8308 A7B901A8 */ sh $t9, 0x1a8($sp) +/* 10CE3C 7F0D830C 93B001A9 */ lbu $s0, 0x1a9($sp) +/* 10CE40 7F0D8310 31AF0080 */ andi $t7, $t5, 0x80 +/* 10CE44 7F0D8314 01EC4024 */ and $t0, $t7, $t4 +/* 10CE48 7F0D8318 01585825 */ or $t3, $t2, $t8 +/* 10CE4C 7F0D831C 00085143 */ sra $t2, $t0, 5 +/* 10CE50 7F0D8320 016A8825 */ or $s1, $t3, $t2 +/* 10CE54 7F0D8324 2E0D0001 */ sltiu $t5, $s0, 1 +/* 10CE58 7F0D8328 000D7180 */ sll $t6, $t5, 6 +/* 10CE5C 7F0D832C 36290002 */ ori $t1, $s1, 2 +/* 10CE60 7F0D8330 012E8825 */ or $s1, $t1, $t6 +/* 10CE64 7F0D8334 322F00FF */ andi $t7, $s1, 0xff +/* 10CE68 7F0D8338 01E08825 */ move $s1, $t7 +/* 10CE6C 7F0D833C AFAD0048 */ sw $t5, 0x48($sp) +/* 10CE70 7F0D8340 1000292E */ b .L7F0E27FC +/* 10CE74 7F0D8344 A3B301A7 */ sb $s3, 0x1a7($sp) +spectrum_op_92: +/* 10CE78 7F0D8348 8FAC028C */ lw $t4, 0x28c($sp) +/* 10CE7C 7F0D834C 328B00FF */ andi $t3, $s4, 0xff +/* 10CE80 7F0D8350 020B5023 */ subu $t2, $s0, $t3 +/* 10CE84 7F0D8354 25880004 */ addiu $t0, $t4, 4 +/* 10CE88 7F0D8358 315801FF */ andi $t8, $t2, 0x1ff +/* 10CE8C 7F0D835C AFA8028C */ sw $t0, 0x28c($sp) +/* 10CE90 7F0D8360 3168000F */ andi $t0, $t3, 0xf +/* 10CE94 7F0D8364 330D00A8 */ andi $t5, $t8, 0xa8 +/* 10CE98 7F0D8368 00187203 */ sra $t6, $t8, 8 +/* 10CE9C 7F0D836C 320C000F */ andi $t4, $s0, 0xf +/* 10CEA0 7F0D8370 0188502A */ slt $t2, $t4, $t0 +/* 10CEA4 7F0D8374 01AE7825 */ or $t7, $t5, $t6 +/* 10CEA8 7F0D8378 020B6826 */ xor $t5, $s0, $t3 +/* 10CEAC 7F0D837C 000A4900 */ sll $t1, $t2, 4 +/* 10CEB0 7F0D8380 03104026 */ xor $t0, $t8, $s0 +/* 10CEB4 7F0D8384 A7B801A4 */ sh $t8, 0x1a4($sp) +/* 10CEB8 7F0D8388 93B001A5 */ lbu $s0, 0x1a5($sp) +/* 10CEBC 7F0D838C 31AE0080 */ andi $t6, $t5, 0x80 +/* 10CEC0 7F0D8390 01C85024 */ and $t2, $t6, $t0 +/* 10CEC4 7F0D8394 01E9C825 */ or $t9, $t7, $t1 +/* 10CEC8 7F0D8398 000A7943 */ sra $t7, $t2, 5 +/* 10CECC 7F0D839C 032F8825 */ or $s1, $t9, $t7 +/* 10CED0 7F0D83A0 2E0D0001 */ sltiu $t5, $s0, 1 +/* 10CED4 7F0D83A4 000D6180 */ sll $t4, $t5, 6 +/* 10CED8 7F0D83A8 362B0002 */ ori $t3, $s1, 2 +/* 10CEDC 7F0D83AC 016C8825 */ or $s1, $t3, $t4 +/* 10CEE0 7F0D83B0 322E00FF */ andi $t6, $s1, 0xff +/* 10CEE4 7F0D83B4 01C08825 */ move $s1, $t6 +/* 10CEE8 7F0D83B8 AFAD0048 */ sw $t5, 0x48($sp) +/* 10CEEC 7F0D83BC 1000290F */ b .L7F0E27FC +/* 10CEF0 7F0D83C0 A3B401A3 */ sb $s4, 0x1a3($sp) +spectrum_op_93: +/* 10CEF4 7F0D83C4 8FA8028C */ lw $t0, 0x28c($sp) +/* 10CEF8 7F0D83C8 32B900FF */ andi $t9, $s5, 0xff +/* 10CEFC 7F0D83CC 02197823 */ subu $t7, $s0, $t9 +/* 10CF00 7F0D83D0 250A0004 */ addiu $t2, $t0, 4 +/* 10CF04 7F0D83D4 31E901FF */ andi $t1, $t7, 0x1ff +/* 10CF08 7F0D83D8 AFAA028C */ sw $t2, 0x28c($sp) +/* 10CF0C 7F0D83DC 332A000F */ andi $t2, $t9, 0xf +/* 10CF10 7F0D83E0 312D00A8 */ andi $t5, $t1, 0xa8 +/* 10CF14 7F0D83E4 00096203 */ sra $t4, $t1, 8 +/* 10CF18 7F0D83E8 3208000F */ andi $t0, $s0, 0xf +/* 10CF1C 7F0D83EC 010A782A */ slt $t7, $t0, $t2 +/* 10CF20 7F0D83F0 01AC7025 */ or $t6, $t5, $t4 +/* 10CF24 7F0D83F4 02196826 */ xor $t5, $s0, $t9 +/* 10CF28 7F0D83F8 000F5900 */ sll $t3, $t7, 4 +/* 10CF2C 7F0D83FC 01305026 */ xor $t2, $t1, $s0 +/* 10CF30 7F0D8400 A7A901A0 */ sh $t1, 0x1a0($sp) +/* 10CF34 7F0D8404 93B001A1 */ lbu $s0, 0x1a1($sp) +/* 10CF38 7F0D8408 31AC0080 */ andi $t4, $t5, 0x80 +/* 10CF3C 7F0D840C 018A7824 */ and $t7, $t4, $t2 +/* 10CF40 7F0D8410 01CBC025 */ or $t8, $t6, $t3 +/* 10CF44 7F0D8414 000F7143 */ sra $t6, $t7, 5 +/* 10CF48 7F0D8418 030E8825 */ or $s1, $t8, $t6 +/* 10CF4C 7F0D841C 2E0D0001 */ sltiu $t5, $s0, 1 +/* 10CF50 7F0D8420 000D4180 */ sll $t0, $t5, 6 +/* 10CF54 7F0D8424 36390002 */ ori $t9, $s1, 2 +/* 10CF58 7F0D8428 03288825 */ or $s1, $t9, $t0 +/* 10CF5C 7F0D842C 322C00FF */ andi $t4, $s1, 0xff +/* 10CF60 7F0D8430 01808825 */ move $s1, $t4 +/* 10CF64 7F0D8434 AFAD0048 */ sw $t5, 0x48($sp) +/* 10CF68 7F0D8438 100028F0 */ b .L7F0E27FC +/* 10CF6C 7F0D843C A3B5019F */ sb $s5, 0x19f($sp) +spectrum_op_94: +/* 10CF70 7F0D8440 8FAA028C */ lw $t2, 0x28c($sp) +/* 10CF74 7F0D8444 93B80287 */ lbu $t8, 0x287($sp) +/* 10CF78 7F0D8448 93AE0287 */ lbu $t6, 0x287($sp) +/* 10CF7C 7F0D844C 254F0004 */ addiu $t7, $t2, 4 +/* 10CF80 7F0D8450 17000003 */ bnez $t8, .L7F0D8460 +/* 10CF84 7F0D8454 AFAF028C */ sw $t7, 0x28c($sp) +/* 10CF88 7F0D8458 1000000C */ b .L7F0D848C +/* 10CF8C 7F0D845C A3B6019B */ sb $s6, 0x19b($sp) +.L7F0D8460: +/* 10CF90 7F0D8460 24010001 */ li $at, 1 +/* 10CF94 7F0D8464 15C10005 */ bne $t6, $at, .L7F0D847C +/* 10CF98 7F0D8468 97AD0294 */ lhu $t5, 0x294($sp) +/* 10CF9C 7F0D846C 97AB0296 */ lhu $t3, 0x296($sp) +/* 10CFA0 7F0D8470 000BCA03 */ sra $t9, $t3, 8 +/* 10CFA4 7F0D8474 10000003 */ b .L7F0D8484 +/* 10CFA8 7F0D8478 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D847C: +/* 10CFAC 7F0D847C 000D4A03 */ sra $t1, $t5, 8 +/* 10CFB0 7F0D8480 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D8484: +/* 10CFB4 7F0D8484 8FA80048 */ lw $t0, 0x48($sp) +/* 10CFB8 7F0D8488 A3A8019B */ sb $t0, 0x19b($sp) +.L7F0D848C: +/* 10CFBC 7F0D848C 93AC019B */ lbu $t4, 0x19b($sp) +/* 10CFC0 7F0D8490 3209000F */ andi $t1, $s0, 0xf +/* 10CFC4 7F0D8494 020C5023 */ subu $t2, $s0, $t4 +/* 10CFC8 7F0D8498 314F01FF */ andi $t7, $t2, 0x1ff +/* 10CFCC 7F0D849C 31EE00A8 */ andi $t6, $t7, 0xa8 +/* 10CFD0 7F0D84A0 000FCA03 */ sra $t9, $t7, 8 +/* 10CFD4 7F0D84A4 3188000F */ andi $t0, $t4, 0xf +/* 10CFD8 7F0D84A8 0128502A */ slt $t2, $t1, $t0 +/* 10CFDC 7F0D84AC 01D96825 */ or $t5, $t6, $t9 +/* 10CFE0 7F0D84B0 020C7026 */ xor $t6, $s0, $t4 +/* 10CFE4 7F0D84B4 000AC100 */ sll $t8, $t2, 4 +/* 10CFE8 7F0D84B8 01F04026 */ xor $t0, $t7, $s0 +/* 10CFEC 7F0D84BC A7AF019C */ sh $t7, 0x19c($sp) +/* 10CFF0 7F0D84C0 93B0019D */ lbu $s0, 0x19d($sp) +/* 10CFF4 7F0D84C4 31D90080 */ andi $t9, $t6, 0x80 +/* 10CFF8 7F0D84C8 03285024 */ and $t2, $t9, $t0 +/* 10CFFC 7F0D84CC 01B85825 */ or $t3, $t5, $t8 +/* 10D000 7F0D84D0 000A6943 */ sra $t5, $t2, 5 +/* 10D004 7F0D84D4 016D8825 */ or $s1, $t3, $t5 +/* 10D008 7F0D84D8 2E0E0001 */ sltiu $t6, $s0, 1 +/* 10D00C 7F0D84DC 000E4980 */ sll $t1, $t6, 6 +/* 10D010 7F0D84E0 362C0002 */ ori $t4, $s1, 2 +/* 10D014 7F0D84E4 01898825 */ or $s1, $t4, $t1 +/* 10D018 7F0D84E8 323900FF */ andi $t9, $s1, 0xff +/* 10D01C 7F0D84EC 03208825 */ move $s1, $t9 +/* 10D020 7F0D84F0 100028C2 */ b .L7F0E27FC +/* 10D024 7F0D84F4 AFAE0048 */ sw $t6, 0x48($sp) +spectrum_op_95: +/* 10D028 7F0D84F8 8FA8028C */ lw $t0, 0x28c($sp) +/* 10D02C 7F0D84FC 93AB0287 */ lbu $t3, 0x287($sp) +/* 10D030 7F0D8500 93AD0287 */ lbu $t5, 0x287($sp) +/* 10D034 7F0D8504 250A0004 */ addiu $t2, $t0, 4 +/* 10D038 7F0D8508 15600003 */ bnez $t3, .L7F0D8518 +/* 10D03C 7F0D850C AFAA028C */ sw $t2, 0x28c($sp) +/* 10D040 7F0D8510 1000000C */ b .L7F0D8544 +/* 10D044 7F0D8514 A3B70197 */ sb $s7, 0x197($sp) +.L7F0D8518: +/* 10D048 7F0D8518 24010001 */ li $at, 1 +/* 10D04C 7F0D851C 15A10005 */ bne $t5, $at, .L7F0D8534 +/* 10D050 7F0D8520 97AE0294 */ lhu $t6, 0x294($sp) +/* 10D054 7F0D8524 97B80296 */ lhu $t8, 0x296($sp) +/* 10D058 7F0D8528 330C00FF */ andi $t4, $t8, 0xff +/* 10D05C 7F0D852C 10000003 */ b .L7F0D853C +/* 10D060 7F0D8530 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D8534: +/* 10D064 7F0D8534 31CF00FF */ andi $t7, $t6, 0xff +/* 10D068 7F0D8538 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D853C: +/* 10D06C 7F0D853C 8FA90048 */ lw $t1, 0x48($sp) +/* 10D070 7F0D8540 A3A90197 */ sb $t1, 0x197($sp) +.L7F0D8544: +/* 10D074 7F0D8544 93B90197 */ lbu $t9, 0x197($sp) +/* 10D078 7F0D8548 320F000F */ andi $t7, $s0, 0xf +/* 10D07C 7F0D854C 02194023 */ subu $t0, $s0, $t9 +/* 10D080 7F0D8550 310A01FF */ andi $t2, $t0, 0x1ff +/* 10D084 7F0D8554 314D00A8 */ andi $t5, $t2, 0xa8 +/* 10D088 7F0D8558 000A6203 */ sra $t4, $t2, 8 +/* 10D08C 7F0D855C 3329000F */ andi $t1, $t9, 0xf +/* 10D090 7F0D8560 01E9402A */ slt $t0, $t7, $t1 +/* 10D094 7F0D8564 01AC7025 */ or $t6, $t5, $t4 +/* 10D098 7F0D8568 02196826 */ xor $t5, $s0, $t9 +/* 10D09C 7F0D856C 00085900 */ sll $t3, $t0, 4 +/* 10D0A0 7F0D8570 01504826 */ xor $t1, $t2, $s0 +/* 10D0A4 7F0D8574 A7AA0198 */ sh $t2, 0x198($sp) +/* 10D0A8 7F0D8578 93B00199 */ lbu $s0, 0x199($sp) +/* 10D0AC 7F0D857C 31AC0080 */ andi $t4, $t5, 0x80 +/* 10D0B0 7F0D8580 01894024 */ and $t0, $t4, $t1 +/* 10D0B4 7F0D8584 01CBC025 */ or $t8, $t6, $t3 +/* 10D0B8 7F0D8588 00087143 */ sra $t6, $t0, 5 +/* 10D0BC 7F0D858C 030E8825 */ or $s1, $t8, $t6 +/* 10D0C0 7F0D8590 2E0D0001 */ sltiu $t5, $s0, 1 +/* 10D0C4 7F0D8594 000D7980 */ sll $t7, $t5, 6 +/* 10D0C8 7F0D8598 36390002 */ ori $t9, $s1, 2 +/* 10D0CC 7F0D859C 032F8825 */ or $s1, $t9, $t7 +/* 10D0D0 7F0D85A0 322C00FF */ andi $t4, $s1, 0xff +/* 10D0D4 7F0D85A4 01808825 */ move $s1, $t4 +/* 10D0D8 7F0D85A8 10002894 */ b .L7F0E27FC +/* 10D0DC 7F0D85AC AFAD0048 */ sw $t5, 0x48($sp) +spectrum_op_96: +/* 10D0E0 7F0D85B0 8FA9028C */ lw $t1, 0x28c($sp) +/* 10D0E4 7F0D85B4 93B80287 */ lbu $t8, 0x287($sp) +/* 10D0E8 7F0D85B8 00167200 */ sll $t6, $s6, 8 +/* 10D0EC 7F0D85BC 25280007 */ addiu $t0, $t1, 7 +/* 10D0F0 7F0D85C0 17000004 */ bnez $t8, .L7F0D85D4 +/* 10D0F4 7F0D85C4 AFA8028C */ sw $t0, 0x28c($sp) +/* 10D0F8 7F0D85C8 01D75825 */ or $t3, $t6, $s7 +/* 10D0FC 7F0D85CC 10000016 */ b .L7F0D8628 +/* 10D100 7F0D85D0 A7AB0194 */ sh $t3, 0x194($sp) +.L7F0D85D4: +/* 10D104 7F0D85D4 8FB9028C */ lw $t9, 0x28c($sp) +/* 10D108 7F0D85D8 93AA0287 */ lbu $t2, 0x287($sp) +/* 10D10C 7F0D85DC 24010001 */ li $at, 1 +/* 10D110 7F0D85E0 272D0008 */ addiu $t5, $t9, 8 +/* 10D114 7F0D85E4 15410004 */ bne $t2, $at, .L7F0D85F8 +/* 10D118 7F0D85E8 AFAD028C */ sw $t5, 0x28c($sp) +/* 10D11C 7F0D85EC 97AF0296 */ lhu $t7, 0x296($sp) +/* 10D120 7F0D85F0 10000003 */ b .L7F0D8600 +/* 10D124 7F0D85F4 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D85F8: +/* 10D128 7F0D85F8 97AC0294 */ lhu $t4, 0x294($sp) +/* 10D12C 7F0D85FC AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D8600: +/* 10D130 7F0D8600 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10D134 7F0D8604 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10D138 7F0D8608 97A90298 */ lhu $t1, 0x298($sp) +/* 10D13C 7F0D860C 8FAB0048 */ lw $t3, 0x48($sp) +/* 10D140 7F0D8610 0128C021 */ addu $t8, $t1, $t0 +/* 10D144 7F0D8614 830E0000 */ lb $t6, ($t8) +/* 10D148 7F0D8618 252D0001 */ addiu $t5, $t1, 1 +/* 10D14C 7F0D861C A7AD0298 */ sh $t5, 0x298($sp) +/* 10D150 7F0D8620 01CBC821 */ addu $t9, $t6, $t3 +/* 10D154 7F0D8624 A7B90194 */ sh $t9, 0x194($sp) +.L7F0D8628: +/* 10D158 7F0D8628 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10D15C 7F0D862C 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10D160 7F0D8630 97AA0194 */ lhu $t2, 0x194($sp) +/* 10D164 7F0D8634 014F6021 */ addu $t4, $t2, $t7 +/* 10D168 7F0D8638 91880000 */ lbu $t0, ($t4) +/* 10D16C 7F0D863C 320C000F */ andi $t4, $s0, 0xf +/* 10D170 7F0D8640 0208C023 */ subu $t8, $s0, $t0 +/* 10D174 7F0D8644 330E01FF */ andi $t6, $t8, 0x1ff +/* 10D178 7F0D8648 31D900A8 */ andi $t9, $t6, 0xa8 +/* 10D17C 7F0D864C 000E6A03 */ sra $t5, $t6, 8 +/* 10D180 7F0D8650 310F000F */ andi $t7, $t0, 0xf +/* 10D184 7F0D8654 018FC02A */ slt $t8, $t4, $t7 +/* 10D188 7F0D8658 032D5025 */ or $t2, $t9, $t5 +/* 10D18C 7F0D865C 0208C826 */ xor $t9, $s0, $t0 +/* 10D190 7F0D8660 00185900 */ sll $t3, $t8, 4 +/* 10D194 7F0D8664 01D07826 */ xor $t7, $t6, $s0 +/* 10D198 7F0D8668 A7AE0192 */ sh $t6, 0x192($sp) +/* 10D19C 7F0D866C 93B00193 */ lbu $s0, 0x193($sp) +/* 10D1A0 7F0D8670 332D0080 */ andi $t5, $t9, 0x80 +/* 10D1A4 7F0D8674 01AFC024 */ and $t8, $t5, $t7 +/* 10D1A8 7F0D8678 014B4825 */ or $t1, $t2, $t3 +/* 10D1AC 7F0D867C 00185143 */ sra $t2, $t8, 5 +/* 10D1B0 7F0D8680 012A8825 */ or $s1, $t1, $t2 +/* 10D1B4 7F0D8684 A3A80191 */ sb $t0, 0x191($sp) +/* 10D1B8 7F0D8688 2E190001 */ sltiu $t9, $s0, 1 +/* 10D1BC 7F0D868C 00196180 */ sll $t4, $t9, 6 +/* 10D1C0 7F0D8690 36280002 */ ori $t0, $s1, 2 +/* 10D1C4 7F0D8694 010C8825 */ or $s1, $t0, $t4 +/* 10D1C8 7F0D8698 322D00FF */ andi $t5, $s1, 0xff +/* 10D1CC 7F0D869C 01A08825 */ move $s1, $t5 +/* 10D1D0 7F0D86A0 10002856 */ b .L7F0E27FC +/* 10D1D4 7F0D86A4 AFB90048 */ sw $t9, 0x48($sp) +spectrum_op_97: +/* 10D1D8 7F0D86A8 8FAF028C */ lw $t7, 0x28c($sp) +/* 10D1DC 7F0D86AC 320900FF */ andi $t1, $s0, 0xff +/* 10D1E0 7F0D86B0 02095023 */ subu $t2, $s0, $t1 +/* 10D1E4 7F0D86B4 25F80004 */ addiu $t8, $t7, 4 +/* 10D1E8 7F0D86B8 314B01FF */ andi $t3, $t2, 0x1ff +/* 10D1EC 7F0D86BC AFB8028C */ sw $t8, 0x28c($sp) +/* 10D1F0 7F0D86C0 3138000F */ andi $t8, $t1, 0xf +/* 10D1F4 7F0D86C4 317900A8 */ andi $t9, $t3, 0xa8 +/* 10D1F8 7F0D86C8 000B6203 */ sra $t4, $t3, 8 +/* 10D1FC 7F0D86CC 320F000F */ andi $t7, $s0, 0xf +/* 10D200 7F0D86D0 01F8502A */ slt $t2, $t7, $t8 +/* 10D204 7F0D86D4 032C6825 */ or $t5, $t9, $t4 +/* 10D208 7F0D86D8 0209C826 */ xor $t9, $s0, $t1 +/* 10D20C 7F0D86DC 000A4100 */ sll $t0, $t2, 4 +/* 10D210 7F0D86E0 0170C026 */ xor $t8, $t3, $s0 +/* 10D214 7F0D86E4 A7AB018E */ sh $t3, 0x18e($sp) +/* 10D218 7F0D86E8 A3B0018D */ sb $s0, 0x18d($sp) +/* 10D21C 7F0D86EC 93B0018F */ lbu $s0, 0x18f($sp) +/* 10D220 7F0D86F0 332C0080 */ andi $t4, $t9, 0x80 +/* 10D224 7F0D86F4 01985024 */ and $t2, $t4, $t8 +/* 10D228 7F0D86F8 01A87025 */ or $t6, $t5, $t0 +/* 10D22C 7F0D86FC 000A6943 */ sra $t5, $t2, 5 +/* 10D230 7F0D8700 01CD8825 */ or $s1, $t6, $t5 +/* 10D234 7F0D8704 2E190001 */ sltiu $t9, $s0, 1 +/* 10D238 7F0D8708 00197980 */ sll $t7, $t9, 6 +/* 10D23C 7F0D870C 36290002 */ ori $t1, $s1, 2 +/* 10D240 7F0D8710 012F8825 */ or $s1, $t1, $t7 +/* 10D244 7F0D8714 322C00FF */ andi $t4, $s1, 0xff +/* 10D248 7F0D8718 01808825 */ move $s1, $t4 +/* 10D24C 7F0D871C 10002837 */ b .L7F0E27FC +/* 10D250 7F0D8720 AFB90048 */ sw $t9, 0x48($sp) +spectrum_op_98: +/* 10D254 7F0D8724 324E00FF */ andi $t6, $s2, 0xff +/* 10D258 7F0D8728 8FB8028C */ lw $t8, 0x28c($sp) +/* 10D25C 7F0D872C 020E6823 */ subu $t5, $s0, $t6 +/* 10D260 7F0D8730 32280001 */ andi $t0, $s1, 1 +/* 10D264 7F0D8734 01A84823 */ subu $t1, $t5, $t0 +/* 10D268 7F0D8738 313901FF */ andi $t9, $t1, 0x1ff +/* 10D26C 7F0D873C 31CD000F */ andi $t5, $t6, 0xf +/* 10D270 7F0D8740 270A0004 */ addiu $t2, $t8, 4 +/* 10D274 7F0D8744 01A84821 */ addu $t1, $t5, $t0 +/* 10D278 7F0D8748 320B000F */ andi $t3, $s0, 0xf +/* 10D27C 7F0D874C AFAA028C */ sw $t2, 0x28c($sp) +/* 10D280 7F0D8750 0169602A */ slt $t4, $t3, $t1 +/* 10D284 7F0D8754 0019C203 */ sra $t8, $t9, 8 +/* 10D288 7F0D8758 332F00A8 */ andi $t7, $t9, 0xa8 +/* 10D28C 7F0D875C 01F85025 */ or $t2, $t7, $t8 +/* 10D290 7F0D8760 020E6826 */ xor $t5, $s0, $t6 +/* 10D294 7F0D8764 000C7900 */ sll $t7, $t4, 4 +/* 10D298 7F0D8768 03304826 */ xor $t1, $t9, $s0 +/* 10D29C 7F0D876C A7B9018A */ sh $t9, 0x18a($sp) +/* 10D2A0 7F0D8770 93B0018B */ lbu $s0, 0x18b($sp) +/* 10D2A4 7F0D8774 31A80080 */ andi $t0, $t5, 0x80 +/* 10D2A8 7F0D8778 01096024 */ and $t4, $t0, $t1 +/* 10D2AC 7F0D877C 014FC025 */ or $t8, $t2, $t7 +/* 10D2B0 7F0D8780 000C5143 */ sra $t2, $t4, 5 +/* 10D2B4 7F0D8784 030A8825 */ or $s1, $t8, $t2 +/* 10D2B8 7F0D8788 2E0D0001 */ sltiu $t5, $s0, 1 +/* 10D2BC 7F0D878C 000D5980 */ sll $t3, $t5, 6 +/* 10D2C0 7F0D8790 362E0002 */ ori $t6, $s1, 2 +/* 10D2C4 7F0D8794 01CB8825 */ or $s1, $t6, $t3 +/* 10D2C8 7F0D8798 322800FF */ andi $t0, $s1, 0xff +/* 10D2CC 7F0D879C 01008825 */ move $s1, $t0 +/* 10D2D0 7F0D87A0 AFAD0048 */ sw $t5, 0x48($sp) +/* 10D2D4 7F0D87A4 10002815 */ b .L7F0E27FC +/* 10D2D8 7F0D87A8 A3B20189 */ sb $s2, 0x189($sp) +spectrum_op_99: +/* 10D2DC 7F0D87AC 327800FF */ andi $t8, $s3, 0xff +/* 10D2E0 7F0D87B0 8FA9028C */ lw $t1, 0x28c($sp) +/* 10D2E4 7F0D87B4 02185023 */ subu $t2, $s0, $t8 +/* 10D2E8 7F0D87B8 322F0001 */ andi $t7, $s1, 1 +/* 10D2EC 7F0D87BC 014F7023 */ subu $t6, $t2, $t7 +/* 10D2F0 7F0D87C0 31CD01FF */ andi $t5, $t6, 0x1ff +/* 10D2F4 7F0D87C4 330A000F */ andi $t2, $t8, 0xf +/* 10D2F8 7F0D87C8 252C0004 */ addiu $t4, $t1, 4 +/* 10D2FC 7F0D87CC 014F7021 */ addu $t6, $t2, $t7 +/* 10D300 7F0D87D0 3219000F */ andi $t9, $s0, 0xf +/* 10D304 7F0D87D4 AFAC028C */ sw $t4, 0x28c($sp) +/* 10D308 7F0D87D8 032E402A */ slt $t0, $t9, $t6 +/* 10D30C 7F0D87DC 000D4A03 */ sra $t1, $t5, 8 +/* 10D310 7F0D87E0 31AB00A8 */ andi $t3, $t5, 0xa8 +/* 10D314 7F0D87E4 01696025 */ or $t4, $t3, $t1 +/* 10D318 7F0D87E8 02185026 */ xor $t2, $s0, $t8 +/* 10D31C 7F0D87EC 00085900 */ sll $t3, $t0, 4 +/* 10D320 7F0D87F0 01B07026 */ xor $t6, $t5, $s0 +/* 10D324 7F0D87F4 A7AD0186 */ sh $t5, 0x186($sp) +/* 10D328 7F0D87F8 93B00187 */ lbu $s0, 0x187($sp) +/* 10D32C 7F0D87FC 314F0080 */ andi $t7, $t2, 0x80 +/* 10D330 7F0D8800 01EE4024 */ and $t0, $t7, $t6 +/* 10D334 7F0D8804 018B4825 */ or $t1, $t4, $t3 +/* 10D338 7F0D8808 00086143 */ sra $t4, $t0, 5 +/* 10D33C 7F0D880C 012C8825 */ or $s1, $t1, $t4 +/* 10D340 7F0D8810 2E0A0001 */ sltiu $t2, $s0, 1 +/* 10D344 7F0D8814 000AC980 */ sll $t9, $t2, 6 +/* 10D348 7F0D8818 36380002 */ ori $t8, $s1, 2 +/* 10D34C 7F0D881C 03198825 */ or $s1, $t8, $t9 +/* 10D350 7F0D8820 322F00FF */ andi $t7, $s1, 0xff +/* 10D354 7F0D8824 01E08825 */ move $s1, $t7 +/* 10D358 7F0D8828 AFAA0048 */ sw $t2, 0x48($sp) +/* 10D35C 7F0D882C 100027F3 */ b .L7F0E27FC +/* 10D360 7F0D8830 A3B30185 */ sb $s3, 0x185($sp) +spectrum_op_9A: +/* 10D364 7F0D8834 328900FF */ andi $t1, $s4, 0xff +/* 10D368 7F0D8838 8FAE028C */ lw $t6, 0x28c($sp) +/* 10D36C 7F0D883C 02096023 */ subu $t4, $s0, $t1 +/* 10D370 7F0D8840 322B0001 */ andi $t3, $s1, 1 +/* 10D374 7F0D8844 018BC023 */ subu $t8, $t4, $t3 +/* 10D378 7F0D8848 330A01FF */ andi $t2, $t8, 0x1ff +/* 10D37C 7F0D884C 312C000F */ andi $t4, $t1, 0xf +/* 10D380 7F0D8850 25C80004 */ addiu $t0, $t6, 4 +/* 10D384 7F0D8854 018BC021 */ addu $t8, $t4, $t3 +/* 10D388 7F0D8858 320D000F */ andi $t5, $s0, 0xf +/* 10D38C 7F0D885C AFA8028C */ sw $t0, 0x28c($sp) +/* 10D390 7F0D8860 01B8782A */ slt $t7, $t5, $t8 +/* 10D394 7F0D8864 000A7203 */ sra $t6, $t2, 8 +/* 10D398 7F0D8868 315900A8 */ andi $t9, $t2, 0xa8 +/* 10D39C 7F0D886C 032E4025 */ or $t0, $t9, $t6 +/* 10D3A0 7F0D8870 02096026 */ xor $t4, $s0, $t1 +/* 10D3A4 7F0D8874 000FC900 */ sll $t9, $t7, 4 +/* 10D3A8 7F0D8878 0150C026 */ xor $t8, $t2, $s0 +/* 10D3AC 7F0D887C A7AA0182 */ sh $t2, 0x182($sp) +/* 10D3B0 7F0D8880 93B00183 */ lbu $s0, 0x183($sp) +/* 10D3B4 7F0D8884 318B0080 */ andi $t3, $t4, 0x80 +/* 10D3B8 7F0D8888 01787824 */ and $t7, $t3, $t8 +/* 10D3BC 7F0D888C 01197025 */ or $t6, $t0, $t9 +/* 10D3C0 7F0D8890 000F4143 */ sra $t0, $t7, 5 +/* 10D3C4 7F0D8894 01C88825 */ or $s1, $t6, $t0 +/* 10D3C8 7F0D8898 2E0C0001 */ sltiu $t4, $s0, 1 +/* 10D3CC 7F0D889C 000C6980 */ sll $t5, $t4, 6 +/* 10D3D0 7F0D88A0 36290002 */ ori $t1, $s1, 2 +/* 10D3D4 7F0D88A4 012D8825 */ or $s1, $t1, $t5 +/* 10D3D8 7F0D88A8 322B00FF */ andi $t3, $s1, 0xff +/* 10D3DC 7F0D88AC 01608825 */ move $s1, $t3 +/* 10D3E0 7F0D88B0 AFAC0048 */ sw $t4, 0x48($sp) +/* 10D3E4 7F0D88B4 100027D1 */ b .L7F0E27FC +/* 10D3E8 7F0D88B8 A3B40181 */ sb $s4, 0x181($sp) +spectrum_op_9B: +/* 10D3EC 7F0D88BC 32AE00FF */ andi $t6, $s5, 0xff +/* 10D3F0 7F0D88C0 8FB8028C */ lw $t8, 0x28c($sp) +/* 10D3F4 7F0D88C4 020E4023 */ subu $t0, $s0, $t6 +/* 10D3F8 7F0D88C8 32390001 */ andi $t9, $s1, 1 +/* 10D3FC 7F0D88CC 01194823 */ subu $t1, $t0, $t9 +/* 10D400 7F0D88D0 312C01FF */ andi $t4, $t1, 0x1ff +/* 10D404 7F0D88D4 31C8000F */ andi $t0, $t6, 0xf +/* 10D408 7F0D88D8 270F0004 */ addiu $t7, $t8, 4 +/* 10D40C 7F0D88DC 01194821 */ addu $t1, $t0, $t9 +/* 10D410 7F0D88E0 320A000F */ andi $t2, $s0, 0xf +/* 10D414 7F0D88E4 AFAF028C */ sw $t7, 0x28c($sp) +/* 10D418 7F0D88E8 0149582A */ slt $t3, $t2, $t1 +/* 10D41C 7F0D88EC 000CC203 */ sra $t8, $t4, 8 +/* 10D420 7F0D88F0 318D00A8 */ andi $t5, $t4, 0xa8 +/* 10D424 7F0D88F4 01B87825 */ or $t7, $t5, $t8 +/* 10D428 7F0D88F8 020E4026 */ xor $t0, $s0, $t6 +/* 10D42C 7F0D88FC 000B6900 */ sll $t5, $t3, 4 +/* 10D430 7F0D8900 01904826 */ xor $t1, $t4, $s0 +/* 10D434 7F0D8904 A7AC017E */ sh $t4, 0x17e($sp) +/* 10D438 7F0D8908 93B0017F */ lbu $s0, 0x17f($sp) +/* 10D43C 7F0D890C 31190080 */ andi $t9, $t0, 0x80 +/* 10D440 7F0D8910 03295824 */ and $t3, $t9, $t1 +/* 10D444 7F0D8914 01EDC025 */ or $t8, $t7, $t5 +/* 10D448 7F0D8918 000B7943 */ sra $t7, $t3, 5 +/* 10D44C 7F0D891C 030F8825 */ or $s1, $t8, $t7 +/* 10D450 7F0D8920 2E080001 */ sltiu $t0, $s0, 1 +/* 10D454 7F0D8924 00085180 */ sll $t2, $t0, 6 +/* 10D458 7F0D8928 362E0002 */ ori $t6, $s1, 2 +/* 10D45C 7F0D892C 01CA8825 */ or $s1, $t6, $t2 +/* 10D460 7F0D8930 323900FF */ andi $t9, $s1, 0xff +/* 10D464 7F0D8934 03208825 */ move $s1, $t9 +/* 10D468 7F0D8938 AFA80048 */ sw $t0, 0x48($sp) +/* 10D46C 7F0D893C 100027AF */ b .L7F0E27FC +/* 10D470 7F0D8940 A3B5017D */ sb $s5, 0x17d($sp) +spectrum_op_9C: +/* 10D474 7F0D8944 8FA9028C */ lw $t1, 0x28c($sp) +/* 10D478 7F0D8948 93B80287 */ lbu $t8, 0x287($sp) +/* 10D47C 7F0D894C 93AF0287 */ lbu $t7, 0x287($sp) +/* 10D480 7F0D8950 252B0004 */ addiu $t3, $t1, 4 +/* 10D484 7F0D8954 17000003 */ bnez $t8, .L7F0D8964 +/* 10D488 7F0D8958 AFAB028C */ sw $t3, 0x28c($sp) +/* 10D48C 7F0D895C 1000000C */ b .L7F0D8990 +/* 10D490 7F0D8960 A3B60179 */ sb $s6, 0x179($sp) +.L7F0D8964: +/* 10D494 7F0D8964 24010001 */ li $at, 1 +/* 10D498 7F0D8968 15E10005 */ bne $t7, $at, .L7F0D8980 +/* 10D49C 7F0D896C 97A80294 */ lhu $t0, 0x294($sp) +/* 10D4A0 7F0D8970 97AD0296 */ lhu $t5, 0x296($sp) +/* 10D4A4 7F0D8974 000D7203 */ sra $t6, $t5, 8 +/* 10D4A8 7F0D8978 10000003 */ b .L7F0D8988 +/* 10D4AC 7F0D897C AFAE0048 */ sw $t6, 0x48($sp) +.L7F0D8980: +/* 10D4B0 7F0D8980 00086203 */ sra $t4, $t0, 8 +/* 10D4B4 7F0D8984 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D8988: +/* 10D4B8 7F0D8988 8FAA0048 */ lw $t2, 0x48($sp) +/* 10D4BC 7F0D898C A3AA0179 */ sb $t2, 0x179($sp) +.L7F0D8990: +/* 10D4C0 7F0D8990 93B90179 */ lbu $t9, 0x179($sp) +/* 10D4C4 7F0D8994 322B0001 */ andi $t3, $s1, 1 +/* 10D4C8 7F0D8998 320D000F */ andi $t5, $s0, 0xf +/* 10D4CC 7F0D899C 02194823 */ subu $t1, $s0, $t9 +/* 10D4D0 7F0D89A0 012BC023 */ subu $t8, $t1, $t3 +/* 10D4D4 7F0D89A4 330F01FF */ andi $t7, $t8, 0x1ff +/* 10D4D8 7F0D89A8 3329000F */ andi $t1, $t9, 0xf +/* 10D4DC 7F0D89AC 012BC021 */ addu $t8, $t1, $t3 +/* 10D4E0 7F0D89B0 01B8402A */ slt $t0, $t5, $t8 +/* 10D4E4 7F0D89B4 31EE00A8 */ andi $t6, $t7, 0xa8 +/* 10D4E8 7F0D89B8 000F6203 */ sra $t4, $t7, 8 +/* 10D4EC 7F0D89BC 01CC5025 */ or $t2, $t6, $t4 +/* 10D4F0 7F0D89C0 02194826 */ xor $t1, $s0, $t9 +/* 10D4F4 7F0D89C4 00087100 */ sll $t6, $t0, 4 +/* 10D4F8 7F0D89C8 01F0C026 */ xor $t8, $t7, $s0 +/* 10D4FC 7F0D89CC A7AF017A */ sh $t7, 0x17a($sp) +/* 10D500 7F0D89D0 93B0017B */ lbu $s0, 0x17b($sp) +/* 10D504 7F0D89D4 312B0080 */ andi $t3, $t1, 0x80 +/* 10D508 7F0D89D8 01784024 */ and $t0, $t3, $t8 +/* 10D50C 7F0D89DC 014E6025 */ or $t4, $t2, $t6 +/* 10D510 7F0D89E0 00085143 */ sra $t2, $t0, 5 +/* 10D514 7F0D89E4 018A8825 */ or $s1, $t4, $t2 +/* 10D518 7F0D89E8 2E090001 */ sltiu $t1, $s0, 1 +/* 10D51C 7F0D89EC 00096980 */ sll $t5, $t1, 6 +/* 10D520 7F0D89F0 36390002 */ ori $t9, $s1, 2 +/* 10D524 7F0D89F4 032D8825 */ or $s1, $t9, $t5 +/* 10D528 7F0D89F8 322B00FF */ andi $t3, $s1, 0xff +/* 10D52C 7F0D89FC 01608825 */ move $s1, $t3 +/* 10D530 7F0D8A00 1000277E */ b .L7F0E27FC +/* 10D534 7F0D8A04 AFA90048 */ sw $t1, 0x48($sp) +spectrum_op_9D: +/* 10D538 7F0D8A08 8FB8028C */ lw $t8, 0x28c($sp) +/* 10D53C 7F0D8A0C 93AC0287 */ lbu $t4, 0x287($sp) +/* 10D540 7F0D8A10 93AA0287 */ lbu $t2, 0x287($sp) +/* 10D544 7F0D8A14 27080004 */ addiu $t0, $t8, 4 +/* 10D548 7F0D8A18 15800003 */ bnez $t4, .L7F0D8A28 +/* 10D54C 7F0D8A1C AFA8028C */ sw $t0, 0x28c($sp) +/* 10D550 7F0D8A20 1000000C */ b .L7F0D8A54 +/* 10D554 7F0D8A24 A3B70175 */ sb $s7, 0x175($sp) +.L7F0D8A28: +/* 10D558 7F0D8A28 24010001 */ li $at, 1 +/* 10D55C 7F0D8A2C 15410005 */ bne $t2, $at, .L7F0D8A44 +/* 10D560 7F0D8A30 97A90294 */ lhu $t1, 0x294($sp) +/* 10D564 7F0D8A34 97AE0296 */ lhu $t6, 0x296($sp) +/* 10D568 7F0D8A38 31D900FF */ andi $t9, $t6, 0xff +/* 10D56C 7F0D8A3C 10000003 */ b .L7F0D8A4C +/* 10D570 7F0D8A40 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D8A44: +/* 10D574 7F0D8A44 312F00FF */ andi $t7, $t1, 0xff +/* 10D578 7F0D8A48 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D8A4C: +/* 10D57C 7F0D8A4C 8FAD0048 */ lw $t5, 0x48($sp) +/* 10D580 7F0D8A50 A3AD0175 */ sb $t5, 0x175($sp) +.L7F0D8A54: +/* 10D584 7F0D8A54 93AB0175 */ lbu $t3, 0x175($sp) +/* 10D588 7F0D8A58 32280001 */ andi $t0, $s1, 1 +/* 10D58C 7F0D8A5C 320E000F */ andi $t6, $s0, 0xf +/* 10D590 7F0D8A60 020BC023 */ subu $t8, $s0, $t3 +/* 10D594 7F0D8A64 03086023 */ subu $t4, $t8, $t0 +/* 10D598 7F0D8A68 318A01FF */ andi $t2, $t4, 0x1ff +/* 10D59C 7F0D8A6C 3178000F */ andi $t8, $t3, 0xf +/* 10D5A0 7F0D8A70 03086021 */ addu $t4, $t8, $t0 +/* 10D5A4 7F0D8A74 01CC482A */ slt $t1, $t6, $t4 +/* 10D5A8 7F0D8A78 315900A8 */ andi $t9, $t2, 0xa8 +/* 10D5AC 7F0D8A7C 000A7A03 */ sra $t7, $t2, 8 +/* 10D5B0 7F0D8A80 032F6825 */ or $t5, $t9, $t7 +/* 10D5B4 7F0D8A84 020BC026 */ xor $t8, $s0, $t3 +/* 10D5B8 7F0D8A88 0009C900 */ sll $t9, $t1, 4 +/* 10D5BC 7F0D8A8C 01506026 */ xor $t4, $t2, $s0 +/* 10D5C0 7F0D8A90 A7AA0176 */ sh $t2, 0x176($sp) +/* 10D5C4 7F0D8A94 93B00177 */ lbu $s0, 0x177($sp) +/* 10D5C8 7F0D8A98 33080080 */ andi $t0, $t8, 0x80 +/* 10D5CC 7F0D8A9C 010C4824 */ and $t1, $t0, $t4 +/* 10D5D0 7F0D8AA0 01B97825 */ or $t7, $t5, $t9 +/* 10D5D4 7F0D8AA4 00096943 */ sra $t5, $t1, 5 +/* 10D5D8 7F0D8AA8 01ED8825 */ or $s1, $t7, $t5 +/* 10D5DC 7F0D8AAC 2E180001 */ sltiu $t8, $s0, 1 +/* 10D5E0 7F0D8AB0 00187180 */ sll $t6, $t8, 6 +/* 10D5E4 7F0D8AB4 362B0002 */ ori $t3, $s1, 2 +/* 10D5E8 7F0D8AB8 016E8825 */ or $s1, $t3, $t6 +/* 10D5EC 7F0D8ABC 322800FF */ andi $t0, $s1, 0xff +/* 10D5F0 7F0D8AC0 01008825 */ move $s1, $t0 +/* 10D5F4 7F0D8AC4 1000274D */ b .L7F0E27FC +/* 10D5F8 7F0D8AC8 AFB80048 */ sw $t8, 0x48($sp) +spectrum_op_9E: +/* 10D5FC 7F0D8ACC 8FAC028C */ lw $t4, 0x28c($sp) +/* 10D600 7F0D8AD0 93AF0287 */ lbu $t7, 0x287($sp) +/* 10D604 7F0D8AD4 00166A00 */ sll $t5, $s6, 8 +/* 10D608 7F0D8AD8 25890007 */ addiu $t1, $t4, 7 +/* 10D60C 7F0D8ADC 15E00004 */ bnez $t7, .L7F0D8AF0 +/* 10D610 7F0D8AE0 AFA9028C */ sw $t1, 0x28c($sp) +/* 10D614 7F0D8AE4 01B7C825 */ or $t9, $t5, $s7 +/* 10D618 7F0D8AE8 10000016 */ b .L7F0D8B44 +/* 10D61C 7F0D8AEC A7B90172 */ sh $t9, 0x172($sp) +.L7F0D8AF0: +/* 10D620 7F0D8AF0 8FAB028C */ lw $t3, 0x28c($sp) +/* 10D624 7F0D8AF4 93AA0287 */ lbu $t2, 0x287($sp) +/* 10D628 7F0D8AF8 24010001 */ li $at, 1 +/* 10D62C 7F0D8AFC 25780008 */ addiu $t8, $t3, 8 +/* 10D630 7F0D8B00 15410004 */ bne $t2, $at, .L7F0D8B14 +/* 10D634 7F0D8B04 AFB8028C */ sw $t8, 0x28c($sp) +/* 10D638 7F0D8B08 97AE0296 */ lhu $t6, 0x296($sp) +/* 10D63C 7F0D8B0C 10000003 */ b .L7F0D8B1C +/* 10D640 7F0D8B10 AFAE0048 */ sw $t6, 0x48($sp) +.L7F0D8B14: +/* 10D644 7F0D8B14 97A80294 */ lhu $t0, 0x294($sp) +/* 10D648 7F0D8B18 AFA80048 */ sw $t0, 0x48($sp) +.L7F0D8B1C: +/* 10D64C 7F0D8B1C 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10D650 7F0D8B20 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10D654 7F0D8B24 97AC0298 */ lhu $t4, 0x298($sp) +/* 10D658 7F0D8B28 8FB90048 */ lw $t9, 0x48($sp) +/* 10D65C 7F0D8B2C 01897821 */ addu $t7, $t4, $t1 +/* 10D660 7F0D8B30 81ED0000 */ lb $t5, ($t7) +/* 10D664 7F0D8B34 25980001 */ addiu $t8, $t4, 1 +/* 10D668 7F0D8B38 A7B80298 */ sh $t8, 0x298($sp) +/* 10D66C 7F0D8B3C 01B95821 */ addu $t3, $t5, $t9 +/* 10D670 7F0D8B40 A7AB0172 */ sh $t3, 0x172($sp) +.L7F0D8B44: +/* 10D674 7F0D8B44 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10D678 7F0D8B48 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10D67C 7F0D8B4C 97AA0172 */ lhu $t2, 0x172($sp) +/* 10D680 7F0D8B50 322D0001 */ andi $t5, $s1, 1 +/* 10D684 7F0D8B54 320C000F */ andi $t4, $s0, 0xf +/* 10D688 7F0D8B58 014E4021 */ addu $t0, $t2, $t6 +/* 10D68C 7F0D8B5C 91090000 */ lbu $t1, ($t0) +/* 10D690 7F0D8B60 02097823 */ subu $t7, $s0, $t1 +/* 10D694 7F0D8B64 01EDC823 */ subu $t9, $t7, $t5 +/* 10D698 7F0D8B68 332B01FF */ andi $t3, $t9, 0x1ff +/* 10D69C 7F0D8B6C 312F000F */ andi $t7, $t1, 0xf +/* 10D6A0 7F0D8B70 01EDC821 */ addu $t9, $t7, $t5 +/* 10D6A4 7F0D8B74 0199502A */ slt $t2, $t4, $t9 +/* 10D6A8 7F0D8B78 317800A8 */ andi $t8, $t3, 0xa8 +/* 10D6AC 7F0D8B7C 000B7203 */ sra $t6, $t3, 8 +/* 10D6B0 7F0D8B80 030E4025 */ or $t0, $t8, $t6 +/* 10D6B4 7F0D8B84 02097826 */ xor $t7, $s0, $t1 +/* 10D6B8 7F0D8B88 000AC100 */ sll $t8, $t2, 4 +/* 10D6BC 7F0D8B8C 0170C826 */ xor $t9, $t3, $s0 +/* 10D6C0 7F0D8B90 A7AB0170 */ sh $t3, 0x170($sp) +/* 10D6C4 7F0D8B94 93B00171 */ lbu $s0, 0x171($sp) +/* 10D6C8 7F0D8B98 31ED0080 */ andi $t5, $t7, 0x80 +/* 10D6CC 7F0D8B9C 01B95024 */ and $t2, $t5, $t9 +/* 10D6D0 7F0D8BA0 01187025 */ or $t6, $t0, $t8 +/* 10D6D4 7F0D8BA4 000A4143 */ sra $t0, $t2, 5 +/* 10D6D8 7F0D8BA8 01C88825 */ or $s1, $t6, $t0 +/* 10D6DC 7F0D8BAC A3A9016F */ sb $t1, 0x16f($sp) +/* 10D6E0 7F0D8BB0 2E0F0001 */ sltiu $t7, $s0, 1 +/* 10D6E4 7F0D8BB4 000F6180 */ sll $t4, $t7, 6 +/* 10D6E8 7F0D8BB8 36290002 */ ori $t1, $s1, 2 +/* 10D6EC 7F0D8BBC 012C8825 */ or $s1, $t1, $t4 +/* 10D6F0 7F0D8BC0 322D00FF */ andi $t5, $s1, 0xff +/* 10D6F4 7F0D8BC4 01A08825 */ move $s1, $t5 +/* 10D6F8 7F0D8BC8 1000270C */ b .L7F0E27FC +/* 10D6FC 7F0D8BCC AFAF0048 */ sw $t7, 0x48($sp) +spectrum_op_9F: +/* 10D700 7F0D8BD0 320E00FF */ andi $t6, $s0, 0xff +/* 10D704 7F0D8BD4 8FB9028C */ lw $t9, 0x28c($sp) +/* 10D708 7F0D8BD8 020E4023 */ subu $t0, $s0, $t6 +/* 10D70C 7F0D8BDC 32380001 */ andi $t8, $s1, 1 +/* 10D710 7F0D8BE0 01184823 */ subu $t1, $t0, $t8 +/* 10D714 7F0D8BE4 312F01FF */ andi $t7, $t1, 0x1ff +/* 10D718 7F0D8BE8 31C8000F */ andi $t0, $t6, 0xf +/* 10D71C 7F0D8BEC 272A0004 */ addiu $t2, $t9, 4 +/* 10D720 7F0D8BF0 01184821 */ addu $t1, $t0, $t8 +/* 10D724 7F0D8BF4 320B000F */ andi $t3, $s0, 0xf +/* 10D728 7F0D8BF8 AFAA028C */ sw $t2, 0x28c($sp) +/* 10D72C 7F0D8BFC 0169682A */ slt $t5, $t3, $t1 +/* 10D730 7F0D8C00 000FCA03 */ sra $t9, $t7, 8 +/* 10D734 7F0D8C04 31EC00A8 */ andi $t4, $t7, 0xa8 +/* 10D738 7F0D8C08 01995025 */ or $t2, $t4, $t9 +/* 10D73C 7F0D8C0C 020E4026 */ xor $t0, $s0, $t6 +/* 10D740 7F0D8C10 000D6100 */ sll $t4, $t5, 4 +/* 10D744 7F0D8C14 01F04826 */ xor $t1, $t7, $s0 +/* 10D748 7F0D8C18 A7AF016C */ sh $t7, 0x16c($sp) +/* 10D74C 7F0D8C1C A3B0016B */ sb $s0, 0x16b($sp) +/* 10D750 7F0D8C20 93B0016D */ lbu $s0, 0x16d($sp) +/* 10D754 7F0D8C24 31180080 */ andi $t8, $t0, 0x80 +/* 10D758 7F0D8C28 03096824 */ and $t5, $t8, $t1 +/* 10D75C 7F0D8C2C 014CC825 */ or $t9, $t2, $t4 +/* 10D760 7F0D8C30 000D5143 */ sra $t2, $t5, 5 +/* 10D764 7F0D8C34 032A8825 */ or $s1, $t9, $t2 +/* 10D768 7F0D8C38 2E080001 */ sltiu $t0, $s0, 1 +/* 10D76C 7F0D8C3C 00085980 */ sll $t3, $t0, 6 +/* 10D770 7F0D8C40 362E0002 */ ori $t6, $s1, 2 +/* 10D774 7F0D8C44 01CB8825 */ or $s1, $t6, $t3 +/* 10D778 7F0D8C48 323800FF */ andi $t8, $s1, 0xff +/* 10D77C 7F0D8C4C 03008825 */ move $s1, $t8 +/* 10D780 7F0D8C50 100026EA */ b .L7F0E27FC +/* 10D784 7F0D8C54 AFA80048 */ sw $t0, 0x48($sp) +spectrum_op_A0: +/* 10D788 7F0D8C58 8FA9028C */ lw $t1, 0x28c($sp) +/* 10D78C 7F0D8C5C 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 10D790 7F0D8C60 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 10D794 7F0D8C64 02128024 */ and $s0, $s0, $s2 +/* 10D798 7F0D8C68 321900FF */ andi $t9, $s0, 0xff +/* 10D79C 7F0D8C6C 252D0004 */ addiu $t5, $t1, 4 +/* 10D7A0 7F0D8C70 2F2A0001 */ sltiu $t2, $t9, 1 +/* 10D7A4 7F0D8C74 AFAD028C */ sw $t5, 0x28c($sp) +/* 10D7A8 7F0D8C78 AFAA0048 */ sw $t2, 0x48($sp) +/* 10D7AC 7F0D8C7C 03384821 */ addu $t1, $t9, $t8 +/* 10D7B0 7F0D8C80 912D0000 */ lbu $t5, ($t1) +/* 10D7B4 7F0D8C84 000A4180 */ sll $t0, $t2, 6 +/* 10D7B8 7F0D8C88 332C00A8 */ andi $t4, $t9, 0xa8 +/* 10D7BC 7F0D8C8C 01887825 */ or $t7, $t4, $t0 +/* 10D7C0 7F0D8C90 35EB0010 */ ori $t3, $t7, 0x10 +/* 10D7C4 7F0D8C94 03208025 */ move $s0, $t9 +/* 10D7C8 7F0D8C98 01AB8825 */ or $s1, $t5, $t3 +/* 10D7CC 7F0D8C9C 323900FF */ andi $t9, $s1, 0xff +/* 10D7D0 7F0D8CA0 100026D6 */ b .L7F0E27FC +/* 10D7D4 7F0D8CA4 03208825 */ move $s1, $t9 +spectrum_op_A1: +/* 10D7D8 7F0D8CA8 8FAA028C */ lw $t2, 0x28c($sp) +/* 10D7DC 7F0D8CAC 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 10D7E0 7F0D8CB0 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 10D7E4 7F0D8CB4 02138024 */ and $s0, $s0, $s3 +/* 10D7E8 7F0D8CB8 320C00FF */ andi $t4, $s0, 0xff +/* 10D7EC 7F0D8CBC 254E0004 */ addiu $t6, $t2, 4 +/* 10D7F0 7F0D8CC0 2D880001 */ sltiu $t0, $t4, 1 +/* 10D7F4 7F0D8CC4 AFAE028C */ sw $t6, 0x28c($sp) +/* 10D7F8 7F0D8CC8 AFA80048 */ sw $t0, 0x48($sp) +/* 10D7FC 7F0D8CCC 01995021 */ addu $t2, $t4, $t9 +/* 10D800 7F0D8CD0 914E0000 */ lbu $t6, ($t2) +/* 10D804 7F0D8CD4 00084980 */ sll $t1, $t0, 6 +/* 10D808 7F0D8CD8 318F00A8 */ andi $t7, $t4, 0xa8 +/* 10D80C 7F0D8CDC 01E96825 */ or $t5, $t7, $t1 +/* 10D810 7F0D8CE0 35AB0010 */ ori $t3, $t5, 0x10 +/* 10D814 7F0D8CE4 01808025 */ move $s0, $t4 +/* 10D818 7F0D8CE8 01CB8825 */ or $s1, $t6, $t3 +/* 10D81C 7F0D8CEC 322C00FF */ andi $t4, $s1, 0xff +/* 10D820 7F0D8CF0 100026C2 */ b .L7F0E27FC +/* 10D824 7F0D8CF4 01808825 */ move $s1, $t4 +spectrum_op_A2: +/* 10D828 7F0D8CF8 8FA8028C */ lw $t0, 0x28c($sp) +/* 10D82C 7F0D8CFC 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 10D830 7F0D8D00 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 10D834 7F0D8D04 02148024 */ and $s0, $s0, $s4 +/* 10D838 7F0D8D08 320F00FF */ andi $t7, $s0, 0xff +/* 10D83C 7F0D8D0C 25180004 */ addiu $t8, $t0, 4 +/* 10D840 7F0D8D10 2DE90001 */ sltiu $t1, $t7, 1 +/* 10D844 7F0D8D14 AFB8028C */ sw $t8, 0x28c($sp) +/* 10D848 7F0D8D18 AFA90048 */ sw $t1, 0x48($sp) +/* 10D84C 7F0D8D1C 01EC4021 */ addu $t0, $t7, $t4 +/* 10D850 7F0D8D20 91180000 */ lbu $t8, ($t0) +/* 10D854 7F0D8D24 00095180 */ sll $t2, $t1, 6 +/* 10D858 7F0D8D28 31ED00A8 */ andi $t5, $t7, 0xa8 +/* 10D85C 7F0D8D2C 01AA7025 */ or $t6, $t5, $t2 +/* 10D860 7F0D8D30 35CB0010 */ ori $t3, $t6, 0x10 +/* 10D864 7F0D8D34 01E08025 */ move $s0, $t7 +/* 10D868 7F0D8D38 030B8825 */ or $s1, $t8, $t3 +/* 10D86C 7F0D8D3C 322F00FF */ andi $t7, $s1, 0xff +/* 10D870 7F0D8D40 100026AE */ b .L7F0E27FC +/* 10D874 7F0D8D44 01E08825 */ move $s1, $t7 +spectrum_op_A3: +/* 10D878 7F0D8D48 8FA9028C */ lw $t1, 0x28c($sp) +/* 10D87C 7F0D8D4C 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 10D880 7F0D8D50 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 10D884 7F0D8D54 02158024 */ and $s0, $s0, $s5 +/* 10D888 7F0D8D58 320D00FF */ andi $t5, $s0, 0xff +/* 10D88C 7F0D8D5C 25390004 */ addiu $t9, $t1, 4 +/* 10D890 7F0D8D60 2DAA0001 */ sltiu $t2, $t5, 1 +/* 10D894 7F0D8D64 AFB9028C */ sw $t9, 0x28c($sp) +/* 10D898 7F0D8D68 AFAA0048 */ sw $t2, 0x48($sp) +/* 10D89C 7F0D8D6C 01AF4821 */ addu $t1, $t5, $t7 +/* 10D8A0 7F0D8D70 91390000 */ lbu $t9, ($t1) +/* 10D8A4 7F0D8D74 000A4180 */ sll $t0, $t2, 6 +/* 10D8A8 7F0D8D78 31AE00A8 */ andi $t6, $t5, 0xa8 +/* 10D8AC 7F0D8D7C 01C8C025 */ or $t8, $t6, $t0 +/* 10D8B0 7F0D8D80 370B0010 */ ori $t3, $t8, 0x10 +/* 10D8B4 7F0D8D84 01A08025 */ move $s0, $t5 +/* 10D8B8 7F0D8D88 032B8825 */ or $s1, $t9, $t3 +/* 10D8BC 7F0D8D8C 322D00FF */ andi $t5, $s1, 0xff +/* 10D8C0 7F0D8D90 1000269A */ b .L7F0E27FC +/* 10D8C4 7F0D8D94 01A08825 */ move $s1, $t5 +spectrum_op_A4: +/* 10D8C8 7F0D8D98 8FAA028C */ lw $t2, 0x28c($sp) +/* 10D8CC 7F0D8D9C 93AE0287 */ lbu $t6, 0x287($sp) +/* 10D8D0 7F0D8DA0 93A80287 */ lbu $t0, 0x287($sp) +/* 10D8D4 7F0D8DA4 254C0004 */ addiu $t4, $t2, 4 +/* 10D8D8 7F0D8DA8 15C00003 */ bnez $t6, .L7F0D8DB8 +/* 10D8DC 7F0D8DAC AFAC028C */ sw $t4, 0x28c($sp) +/* 10D8E0 7F0D8DB0 1000000C */ b .L7F0D8DE4 +/* 10D8E4 7F0D8DB4 AFB60048 */ sw $s6, 0x48($sp) +.L7F0D8DB8: +/* 10D8E8 7F0D8DB8 24010001 */ li $at, 1 +/* 10D8EC 7F0D8DBC 15010005 */ bne $t0, $at, .L7F0D8DD4 +/* 10D8F0 7F0D8DC0 97A90294 */ lhu $t1, 0x294($sp) +/* 10D8F4 7F0D8DC4 97B80296 */ lhu $t8, 0x296($sp) +/* 10D8F8 7F0D8DC8 00187A03 */ sra $t7, $t8, 8 +/* 10D8FC 7F0D8DCC 10000003 */ b .L7F0D8DDC +/* 10D900 7F0D8DD0 AFAF0044 */ sw $t7, 0x44($sp) +.L7F0D8DD4: +/* 10D904 7F0D8DD4 0009CA03 */ sra $t9, $t1, 8 +/* 10D908 7F0D8DD8 AFB90044 */ sw $t9, 0x44($sp) +.L7F0D8DDC: +/* 10D90C 7F0D8DDC 8FAB0044 */ lw $t3, 0x44($sp) +/* 10D910 7F0D8DE0 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D8DE4: +/* 10D914 7F0D8DE4 8FAD0048 */ lw $t5, 0x48($sp) +/* 10D918 7F0D8DE8 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 10D91C 7F0D8DEC 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 10D920 7F0D8DF0 020D8024 */ and $s0, $s0, $t5 +/* 10D924 7F0D8DF4 320A00FF */ andi $t2, $s0, 0xff +/* 10D928 7F0D8DF8 2D4C0001 */ sltiu $t4, $t2, 1 +/* 10D92C 7F0D8DFC AFAC0048 */ sw $t4, 0x48($sp) +/* 10D930 7F0D8E00 01595821 */ addu $t3, $t2, $t9 +/* 10D934 7F0D8E04 916D0000 */ lbu $t5, ($t3) +/* 10D938 7F0D8E08 000CC180 */ sll $t8, $t4, 6 +/* 10D93C 7F0D8E0C 314E00A8 */ andi $t6, $t2, 0xa8 +/* 10D940 7F0D8E10 01D87825 */ or $t7, $t6, $t8 +/* 10D944 7F0D8E14 35E90010 */ ori $t1, $t7, 0x10 +/* 10D948 7F0D8E18 01408025 */ move $s0, $t2 +/* 10D94C 7F0D8E1C 01A98825 */ or $s1, $t5, $t1 +/* 10D950 7F0D8E20 322A00FF */ andi $t2, $s1, 0xff +/* 10D954 7F0D8E24 10002675 */ b .L7F0E27FC +/* 10D958 7F0D8E28 01408825 */ move $s1, $t2 +spectrum_op_A5: +/* 10D95C 7F0D8E2C 8FAC028C */ lw $t4, 0x28c($sp) +/* 10D960 7F0D8E30 93AE0287 */ lbu $t6, 0x287($sp) +/* 10D964 7F0D8E34 93B80287 */ lbu $t8, 0x287($sp) +/* 10D968 7F0D8E38 25880004 */ addiu $t0, $t4, 4 +/* 10D96C 7F0D8E3C 15C00003 */ bnez $t6, .L7F0D8E4C +/* 10D970 7F0D8E40 AFA8028C */ sw $t0, 0x28c($sp) +/* 10D974 7F0D8E44 1000000C */ b .L7F0D8E78 +/* 10D978 7F0D8E48 AFB70048 */ sw $s7, 0x48($sp) +.L7F0D8E4C: +/* 10D97C 7F0D8E4C 24010001 */ li $at, 1 +/* 10D980 7F0D8E50 17010005 */ bne $t8, $at, .L7F0D8E68 +/* 10D984 7F0D8E54 97AB0294 */ lhu $t3, 0x294($sp) +/* 10D988 7F0D8E58 97AF0296 */ lhu $t7, 0x296($sp) +/* 10D98C 7F0D8E5C 31F900FF */ andi $t9, $t7, 0xff +/* 10D990 7F0D8E60 10000003 */ b .L7F0D8E70 +/* 10D994 7F0D8E64 AFB90044 */ sw $t9, 0x44($sp) +.L7F0D8E68: +/* 10D998 7F0D8E68 316D00FF */ andi $t5, $t3, 0xff +/* 10D99C 7F0D8E6C AFAD0044 */ sw $t5, 0x44($sp) +.L7F0D8E70: +/* 10D9A0 7F0D8E70 8FA90044 */ lw $t1, 0x44($sp) +/* 10D9A4 7F0D8E74 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D8E78: +/* 10D9A8 7F0D8E78 8FAA0048 */ lw $t2, 0x48($sp) +/* 10D9AC 7F0D8E7C 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 10D9B0 7F0D8E80 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 10D9B4 7F0D8E84 020A8024 */ and $s0, $s0, $t2 +/* 10D9B8 7F0D8E88 320C00FF */ andi $t4, $s0, 0xff +/* 10D9BC 7F0D8E8C 2D880001 */ sltiu $t0, $t4, 1 +/* 10D9C0 7F0D8E90 AFA80048 */ sw $t0, 0x48($sp) +/* 10D9C4 7F0D8E94 018D4821 */ addu $t1, $t4, $t5 +/* 10D9C8 7F0D8E98 912A0000 */ lbu $t2, ($t1) +/* 10D9CC 7F0D8E9C 00087980 */ sll $t7, $t0, 6 +/* 10D9D0 7F0D8EA0 318E00A8 */ andi $t6, $t4, 0xa8 +/* 10D9D4 7F0D8EA4 01CFC825 */ or $t9, $t6, $t7 +/* 10D9D8 7F0D8EA8 372B0010 */ ori $t3, $t9, 0x10 +/* 10D9DC 7F0D8EAC 01808025 */ move $s0, $t4 +/* 10D9E0 7F0D8EB0 014B8825 */ or $s1, $t2, $t3 +/* 10D9E4 7F0D8EB4 322C00FF */ andi $t4, $s1, 0xff +/* 10D9E8 7F0D8EB8 10002650 */ b .L7F0E27FC +/* 10D9EC 7F0D8EBC 01808825 */ move $s1, $t4 +spectrum_op_A6: +/* 10D9F0 7F0D8EC0 8FA8028C */ lw $t0, 0x28c($sp) +/* 10D9F4 7F0D8EC4 93AE0287 */ lbu $t6, 0x287($sp) +/* 10D9F8 7F0D8EC8 00167A00 */ sll $t7, $s6, 8 +/* 10D9FC 7F0D8ECC 25180007 */ addiu $t8, $t0, 7 +/* 10DA00 7F0D8ED0 15C00004 */ bnez $t6, .L7F0D8EE4 +/* 10DA04 7F0D8ED4 AFB8028C */ sw $t8, 0x28c($sp) +/* 10DA08 7F0D8ED8 01F7C825 */ or $t9, $t7, $s7 +/* 10DA0C 7F0D8EDC 10000016 */ b .L7F0D8F38 +/* 10DA10 7F0D8EE0 A7B90168 */ sh $t9, 0x168($sp) +.L7F0D8EE4: +/* 10DA14 7F0D8EE4 8FAD028C */ lw $t5, 0x28c($sp) +/* 10DA18 7F0D8EE8 93AA0287 */ lbu $t2, 0x287($sp) +/* 10DA1C 7F0D8EEC 24010001 */ li $at, 1 +/* 10DA20 7F0D8EF0 25A90008 */ addiu $t1, $t5, 8 +/* 10DA24 7F0D8EF4 15410004 */ bne $t2, $at, .L7F0D8F08 +/* 10DA28 7F0D8EF8 AFA9028C */ sw $t1, 0x28c($sp) +/* 10DA2C 7F0D8EFC 97AB0296 */ lhu $t3, 0x296($sp) +/* 10DA30 7F0D8F00 10000003 */ b .L7F0D8F10 +/* 10DA34 7F0D8F04 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0D8F08: +/* 10DA38 7F0D8F08 97AC0294 */ lhu $t4, 0x294($sp) +/* 10DA3C 7F0D8F0C AFAC0048 */ sw $t4, 0x48($sp) +.L7F0D8F10: +/* 10DA40 7F0D8F10 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10DA44 7F0D8F14 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10DA48 7F0D8F18 97A80298 */ lhu $t0, 0x298($sp) +/* 10DA4C 7F0D8F1C 8FB90048 */ lw $t9, 0x48($sp) +/* 10DA50 7F0D8F20 01187021 */ addu $t6, $t0, $t8 +/* 10DA54 7F0D8F24 81CF0000 */ lb $t7, ($t6) +/* 10DA58 7F0D8F28 25090001 */ addiu $t1, $t0, 1 +/* 10DA5C 7F0D8F2C A7A90298 */ sh $t1, 0x298($sp) +/* 10DA60 7F0D8F30 01F96821 */ addu $t5, $t7, $t9 +/* 10DA64 7F0D8F34 A7AD0168 */ sh $t5, 0x168($sp) +.L7F0D8F38: +/* 10DA68 7F0D8F38 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10DA6C 7F0D8F3C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10DA70 7F0D8F40 97AB0168 */ lhu $t3, 0x168($sp) +/* 10DA74 7F0D8F44 014B6021 */ addu $t4, $t2, $t3 +/* 10DA78 7F0D8F48 91980000 */ lbu $t8, ($t4) +/* 10DA7C 7F0D8F4C 3C0B8009 */ lui $t3, %hi(ptr_pc_keyboard_table_alloc) +/* 10DA80 7F0D8F50 8D6BE334 */ lw $t3, %lo(ptr_pc_keyboard_table_alloc)($t3) +/* 10DA84 7F0D8F54 02188024 */ and $s0, $s0, $t8 +/* 10DA88 7F0D8F58 320E00FF */ andi $t6, $s0, 0xff +/* 10DA8C 7F0D8F5C 2DCF0001 */ sltiu $t7, $t6, 1 +/* 10DA90 7F0D8F60 AFAF0048 */ sw $t7, 0x48($sp) +/* 10DA94 7F0D8F64 01CB6021 */ addu $t4, $t6, $t3 +/* 10DA98 7F0D8F68 91980000 */ lbu $t8, ($t4) +/* 10DA9C 7F0D8F6C 000F4180 */ sll $t0, $t7, 6 +/* 10DAA0 7F0D8F70 31D900A8 */ andi $t9, $t6, 0xa8 +/* 10DAA4 7F0D8F74 03284825 */ or $t1, $t9, $t0 +/* 10DAA8 7F0D8F78 352A0010 */ ori $t2, $t1, 0x10 +/* 10DAAC 7F0D8F7C 01C08025 */ move $s0, $t6 +/* 10DAB0 7F0D8F80 030A8825 */ or $s1, $t8, $t2 +/* 10DAB4 7F0D8F84 322E00FF */ andi $t6, $s1, 0xff +/* 10DAB8 7F0D8F88 1000261C */ b .L7F0E27FC +/* 10DABC 7F0D8F8C 01C08825 */ move $s1, $t6 +spectrum_op_A7: +/* 10DAC0 7F0D8F90 8FAF028C */ lw $t7, 0x28c($sp) +/* 10DAC4 7F0D8F94 3C0E8009 */ lui $t6, %hi(ptr_pc_keyboard_table_alloc) +/* 10DAC8 7F0D8F98 8DCEE334 */ lw $t6, %lo(ptr_pc_keyboard_table_alloc)($t6) +/* 10DACC 7F0D8F9C 02108024 */ and $s0, $s0, $s0 +/* 10DAD0 7F0D8FA0 321900FF */ andi $t9, $s0, 0xff +/* 10DAD4 7F0D8FA4 25ED0004 */ addiu $t5, $t7, 4 +/* 10DAD8 7F0D8FA8 2F280001 */ sltiu $t0, $t9, 1 +/* 10DADC 7F0D8FAC AFAD028C */ sw $t5, 0x28c($sp) +/* 10DAE0 7F0D8FB0 AFA80048 */ sw $t0, 0x48($sp) +/* 10DAE4 7F0D8FB4 032E7821 */ addu $t7, $t9, $t6 +/* 10DAE8 7F0D8FB8 91ED0000 */ lbu $t5, ($t7) +/* 10DAEC 7F0D8FBC 00086180 */ sll $t4, $t0, 6 +/* 10DAF0 7F0D8FC0 332900A8 */ andi $t1, $t9, 0xa8 +/* 10DAF4 7F0D8FC4 012CC025 */ or $t8, $t1, $t4 +/* 10DAF8 7F0D8FC8 370A0010 */ ori $t2, $t8, 0x10 +/* 10DAFC 7F0D8FCC 03208025 */ move $s0, $t9 +/* 10DB00 7F0D8FD0 01AA8825 */ or $s1, $t5, $t2 +/* 10DB04 7F0D8FD4 323900FF */ andi $t9, $s1, 0xff +/* 10DB08 7F0D8FD8 10002608 */ b .L7F0E27FC +/* 10DB0C 7F0D8FDC 03208825 */ move $s1, $t9 +spectrum_op_A8: +/* 10DB10 7F0D8FE0 8FA8028C */ lw $t0, 0x28c($sp) +/* 10DB14 7F0D8FE4 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 10DB18 7F0D8FE8 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 10DB1C 7F0D8FEC 02128026 */ xor $s0, $s0, $s2 +/* 10DB20 7F0D8FF0 320900FF */ andi $t1, $s0, 0xff +/* 10DB24 7F0D8FF4 2D2C0001 */ sltiu $t4, $t1, 1 +/* 10DB28 7F0D8FF8 250B0004 */ addiu $t3, $t0, 4 +/* 10DB2C 7F0D8FFC AFAB028C */ sw $t3, 0x28c($sp) +/* 10DB30 7F0D9000 AFAC0048 */ sw $t4, 0x48($sp) +/* 10DB34 7F0D9004 012AC821 */ addu $t9, $t1, $t2 +/* 10DB38 7F0D9008 93280000 */ lbu $t0, ($t9) +/* 10DB3C 7F0D900C 000C7980 */ sll $t7, $t4, 6 +/* 10DB40 7F0D9010 313800A8 */ andi $t8, $t1, 0xa8 +/* 10DB44 7F0D9014 030F6825 */ or $t5, $t8, $t7 +/* 10DB48 7F0D9018 010D8825 */ or $s1, $t0, $t5 +/* 10DB4C 7F0D901C 322B00FF */ andi $t3, $s1, 0xff +/* 10DB50 7F0D9020 01608825 */ move $s1, $t3 +/* 10DB54 7F0D9024 100025F5 */ b .L7F0E27FC +/* 10DB58 7F0D9028 01208025 */ move $s0, $t1 +spectrum_op_A9: +/* 10DB5C 7F0D902C 8FA9028C */ lw $t1, 0x28c($sp) +/* 10DB60 7F0D9030 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 10DB64 7F0D9034 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 10DB68 7F0D9038 02138026 */ xor $s0, $s0, $s3 +/* 10DB6C 7F0D903C 320E00FF */ andi $t6, $s0, 0xff +/* 10DB70 7F0D9040 2DD80001 */ sltiu $t8, $t6, 1 +/* 10DB74 7F0D9044 252C0004 */ addiu $t4, $t1, 4 +/* 10DB78 7F0D9048 AFAC028C */ sw $t4, 0x28c($sp) +/* 10DB7C 7F0D904C AFB80048 */ sw $t8, 0x48($sp) +/* 10DB80 7F0D9050 01CD5821 */ addu $t3, $t6, $t5 +/* 10DB84 7F0D9054 91690000 */ lbu $t1, ($t3) +/* 10DB88 7F0D9058 0018C980 */ sll $t9, $t8, 6 +/* 10DB8C 7F0D905C 31CF00A8 */ andi $t7, $t6, 0xa8 +/* 10DB90 7F0D9060 01F94025 */ or $t0, $t7, $t9 +/* 10DB94 7F0D9064 01288825 */ or $s1, $t1, $t0 +/* 10DB98 7F0D9068 322C00FF */ andi $t4, $s1, 0xff +/* 10DB9C 7F0D906C 01808825 */ move $s1, $t4 +/* 10DBA0 7F0D9070 100025E2 */ b .L7F0E27FC +/* 10DBA4 7F0D9074 01C08025 */ move $s0, $t6 +spectrum_op_AA: +/* 10DBA8 7F0D9078 8FAE028C */ lw $t6, 0x28c($sp) +/* 10DBAC 7F0D907C 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 10DBB0 7F0D9080 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 10DBB4 7F0D9084 02148026 */ xor $s0, $s0, $s4 +/* 10DBB8 7F0D9088 320A00FF */ andi $t2, $s0, 0xff +/* 10DBBC 7F0D908C 2D4F0001 */ sltiu $t7, $t2, 1 +/* 10DBC0 7F0D9090 25D80004 */ addiu $t8, $t6, 4 +/* 10DBC4 7F0D9094 AFB8028C */ sw $t8, 0x28c($sp) +/* 10DBC8 7F0D9098 AFAF0048 */ sw $t7, 0x48($sp) +/* 10DBCC 7F0D909C 01486021 */ addu $t4, $t2, $t0 +/* 10DBD0 7F0D90A0 918E0000 */ lbu $t6, ($t4) +/* 10DBD4 7F0D90A4 000F5980 */ sll $t3, $t7, 6 +/* 10DBD8 7F0D90A8 315900A8 */ andi $t9, $t2, 0xa8 +/* 10DBDC 7F0D90AC 032B4825 */ or $t1, $t9, $t3 +/* 10DBE0 7F0D90B0 01C98825 */ or $s1, $t6, $t1 +/* 10DBE4 7F0D90B4 323800FF */ andi $t8, $s1, 0xff +/* 10DBE8 7F0D90B8 03008825 */ move $s1, $t8 +/* 10DBEC 7F0D90BC 100025CF */ b .L7F0E27FC +/* 10DBF0 7F0D90C0 01408025 */ move $s0, $t2 +spectrum_op_AB: +/* 10DBF4 7F0D90C4 8FAA028C */ lw $t2, 0x28c($sp) +/* 10DBF8 7F0D90C8 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 10DBFC 7F0D90CC 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 10DC00 7F0D90D0 02158026 */ xor $s0, $s0, $s5 +/* 10DC04 7F0D90D4 320D00FF */ andi $t5, $s0, 0xff +/* 10DC08 7F0D90D8 2DB90001 */ sltiu $t9, $t5, 1 +/* 10DC0C 7F0D90DC 254F0004 */ addiu $t7, $t2, 4 +/* 10DC10 7F0D90E0 AFAF028C */ sw $t7, 0x28c($sp) +/* 10DC14 7F0D90E4 AFB90048 */ sw $t9, 0x48($sp) +/* 10DC18 7F0D90E8 01A9C021 */ addu $t8, $t5, $t1 +/* 10DC1C 7F0D90EC 930A0000 */ lbu $t2, ($t8) +/* 10DC20 7F0D90F0 00196180 */ sll $t4, $t9, 6 +/* 10DC24 7F0D90F4 31AB00A8 */ andi $t3, $t5, 0xa8 +/* 10DC28 7F0D90F8 016C7025 */ or $t6, $t3, $t4 +/* 10DC2C 7F0D90FC 014E8825 */ or $s1, $t2, $t6 +/* 10DC30 7F0D9100 322F00FF */ andi $t7, $s1, 0xff +/* 10DC34 7F0D9104 01E08825 */ move $s1, $t7 +/* 10DC38 7F0D9108 100025BC */ b .L7F0E27FC +/* 10DC3C 7F0D910C 01A08025 */ move $s0, $t5 +spectrum_op_AC: +/* 10DC40 7F0D9110 8FAD028C */ lw $t5, 0x28c($sp) +/* 10DC44 7F0D9114 93A80287 */ lbu $t0, 0x287($sp) +/* 10DC48 7F0D9118 93AB0287 */ lbu $t3, 0x287($sp) +/* 10DC4C 7F0D911C 25B90004 */ addiu $t9, $t5, 4 +/* 10DC50 7F0D9120 15000003 */ bnez $t0, .L7F0D9130 +/* 10DC54 7F0D9124 AFB9028C */ sw $t9, 0x28c($sp) +/* 10DC58 7F0D9128 1000000C */ b .L7F0D915C +/* 10DC5C 7F0D912C AFB60048 */ sw $s6, 0x48($sp) +.L7F0D9130: +/* 10DC60 7F0D9130 24010001 */ li $at, 1 +/* 10DC64 7F0D9134 15610005 */ bne $t3, $at, .L7F0D914C +/* 10DC68 7F0D9138 97B80294 */ lhu $t8, 0x294($sp) +/* 10DC6C 7F0D913C 97AC0296 */ lhu $t4, 0x296($sp) +/* 10DC70 7F0D9140 000C4A03 */ sra $t1, $t4, 8 +/* 10DC74 7F0D9144 10000003 */ b .L7F0D9154 +/* 10DC78 7F0D9148 AFA90044 */ sw $t1, 0x44($sp) +.L7F0D914C: +/* 10DC7C 7F0D914C 00185203 */ sra $t2, $t8, 8 +/* 10DC80 7F0D9150 AFAA0044 */ sw $t2, 0x44($sp) +.L7F0D9154: +/* 10DC84 7F0D9154 8FAE0044 */ lw $t6, 0x44($sp) +/* 10DC88 7F0D9158 AFAE0048 */ sw $t6, 0x48($sp) +.L7F0D915C: +/* 10DC8C 7F0D915C 8FAF0048 */ lw $t7, 0x48($sp) +/* 10DC90 7F0D9160 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 10DC94 7F0D9164 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 10DC98 7F0D9168 020F8026 */ xor $s0, $s0, $t7 +/* 10DC9C 7F0D916C 320D00FF */ andi $t5, $s0, 0xff +/* 10DCA0 7F0D9170 2DB90001 */ sltiu $t9, $t5, 1 +/* 10DCA4 7F0D9174 AFB90048 */ sw $t9, 0x48($sp) +/* 10DCA8 7F0D9178 01B85021 */ addu $t2, $t5, $t8 +/* 10DCAC 7F0D917C 914E0000 */ lbu $t6, ($t2) +/* 10DCB0 7F0D9180 00196180 */ sll $t4, $t9, 6 +/* 10DCB4 7F0D9184 31A800A8 */ andi $t0, $t5, 0xa8 +/* 10DCB8 7F0D9188 010C4825 */ or $t1, $t0, $t4 +/* 10DCBC 7F0D918C 01C98825 */ or $s1, $t6, $t1 +/* 10DCC0 7F0D9190 322F00FF */ andi $t7, $s1, 0xff +/* 10DCC4 7F0D9194 01E08825 */ move $s1, $t7 +/* 10DCC8 7F0D9198 10002598 */ b .L7F0E27FC +/* 10DCCC 7F0D919C 01A08025 */ move $s0, $t5 +spectrum_op_AD: +/* 10DCD0 7F0D91A0 8FAD028C */ lw $t5, 0x28c($sp) +/* 10DCD4 7F0D91A4 93AB0287 */ lbu $t3, 0x287($sp) +/* 10DCD8 7F0D91A8 93A80287 */ lbu $t0, 0x287($sp) +/* 10DCDC 7F0D91AC 25B90004 */ addiu $t9, $t5, 4 +/* 10DCE0 7F0D91B0 15600003 */ bnez $t3, .L7F0D91C0 +/* 10DCE4 7F0D91B4 AFB9028C */ sw $t9, 0x28c($sp) +/* 10DCE8 7F0D91B8 1000000C */ b .L7F0D91EC +/* 10DCEC 7F0D91BC AFB70048 */ sw $s7, 0x48($sp) +.L7F0D91C0: +/* 10DCF0 7F0D91C0 24010001 */ li $at, 1 +/* 10DCF4 7F0D91C4 15010005 */ bne $t0, $at, .L7F0D91DC +/* 10DCF8 7F0D91C8 97AA0294 */ lhu $t2, 0x294($sp) +/* 10DCFC 7F0D91CC 97AC0296 */ lhu $t4, 0x296($sp) +/* 10DD00 7F0D91D0 319800FF */ andi $t8, $t4, 0xff +/* 10DD04 7F0D91D4 10000003 */ b .L7F0D91E4 +/* 10DD08 7F0D91D8 AFB80044 */ sw $t8, 0x44($sp) +.L7F0D91DC: +/* 10DD0C 7F0D91DC 314E00FF */ andi $t6, $t2, 0xff +/* 10DD10 7F0D91E0 AFAE0044 */ sw $t6, 0x44($sp) +.L7F0D91E4: +/* 10DD14 7F0D91E4 8FA90044 */ lw $t1, 0x44($sp) +/* 10DD18 7F0D91E8 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D91EC: +/* 10DD1C 7F0D91EC 8FAF0048 */ lw $t7, 0x48($sp) +/* 10DD20 7F0D91F0 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 10DD24 7F0D91F4 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 10DD28 7F0D91F8 020F8026 */ xor $s0, $s0, $t7 +/* 10DD2C 7F0D91FC 320D00FF */ andi $t5, $s0, 0xff +/* 10DD30 7F0D9200 2DB90001 */ sltiu $t9, $t5, 1 +/* 10DD34 7F0D9204 AFB90048 */ sw $t9, 0x48($sp) +/* 10DD38 7F0D9208 01AA7021 */ addu $t6, $t5, $t2 +/* 10DD3C 7F0D920C 91C90000 */ lbu $t1, ($t6) +/* 10DD40 7F0D9210 00196180 */ sll $t4, $t9, 6 +/* 10DD44 7F0D9214 31AB00A8 */ andi $t3, $t5, 0xa8 +/* 10DD48 7F0D9218 016CC025 */ or $t8, $t3, $t4 +/* 10DD4C 7F0D921C 01388825 */ or $s1, $t1, $t8 +/* 10DD50 7F0D9220 322F00FF */ andi $t7, $s1, 0xff +/* 10DD54 7F0D9224 01E08825 */ move $s1, $t7 +/* 10DD58 7F0D9228 10002574 */ b .L7F0E27FC +/* 10DD5C 7F0D922C 01A08025 */ move $s0, $t5 +spectrum_op_AE: +/* 10DD60 7F0D9230 8FAD028C */ lw $t5, 0x28c($sp) +/* 10DD64 7F0D9234 93A80287 */ lbu $t0, 0x287($sp) +/* 10DD68 7F0D9238 00165A00 */ sll $t3, $s6, 8 +/* 10DD6C 7F0D923C 25B90007 */ addiu $t9, $t5, 7 +/* 10DD70 7F0D9240 15000004 */ bnez $t0, .L7F0D9254 +/* 10DD74 7F0D9244 AFB9028C */ sw $t9, 0x28c($sp) +/* 10DD78 7F0D9248 01776025 */ or $t4, $t3, $s7 +/* 10DD7C 7F0D924C 10000016 */ b .L7F0D92A8 +/* 10DD80 7F0D9250 A7AC0166 */ sh $t4, 0x166($sp) +.L7F0D9254: +/* 10DD84 7F0D9254 8FAA028C */ lw $t2, 0x28c($sp) +/* 10DD88 7F0D9258 93A90287 */ lbu $t1, 0x287($sp) +/* 10DD8C 7F0D925C 24010001 */ li $at, 1 +/* 10DD90 7F0D9260 254E0008 */ addiu $t6, $t2, 8 +/* 10DD94 7F0D9264 15210004 */ bne $t1, $at, .L7F0D9278 +/* 10DD98 7F0D9268 AFAE028C */ sw $t6, 0x28c($sp) +/* 10DD9C 7F0D926C 97B80296 */ lhu $t8, 0x296($sp) +/* 10DDA0 7F0D9270 10000003 */ b .L7F0D9280 +/* 10DDA4 7F0D9274 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D9278: +/* 10DDA8 7F0D9278 97AF0294 */ lhu $t7, 0x294($sp) +/* 10DDAC 7F0D927C AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D9280: +/* 10DDB0 7F0D9280 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10DDB4 7F0D9284 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10DDB8 7F0D9288 97AD0298 */ lhu $t5, 0x298($sp) +/* 10DDBC 7F0D928C 8FAC0048 */ lw $t4, 0x48($sp) +/* 10DDC0 7F0D9290 01B94021 */ addu $t0, $t5, $t9 +/* 10DDC4 7F0D9294 810B0000 */ lb $t3, ($t0) +/* 10DDC8 7F0D9298 25AE0001 */ addiu $t6, $t5, 1 +/* 10DDCC 7F0D929C A7AE0298 */ sh $t6, 0x298($sp) +/* 10DDD0 7F0D92A0 016C5021 */ addu $t2, $t3, $t4 +/* 10DDD4 7F0D92A4 A7AA0166 */ sh $t2, 0x166($sp) +.L7F0D92A8: +/* 10DDD8 7F0D92A8 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10DDDC 7F0D92AC 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10DDE0 7F0D92B0 97B80166 */ lhu $t8, 0x166($sp) +/* 10DDE4 7F0D92B4 01387821 */ addu $t7, $t1, $t8 +/* 10DDE8 7F0D92B8 91F90000 */ lbu $t9, ($t7) +/* 10DDEC 7F0D92BC 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 10DDF0 7F0D92C0 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 10DDF4 7F0D92C4 02198026 */ xor $s0, $s0, $t9 +/* 10DDF8 7F0D92C8 320800FF */ andi $t0, $s0, 0xff +/* 10DDFC 7F0D92CC 2D0B0001 */ sltiu $t3, $t0, 1 +/* 10DE00 7F0D92D0 AFAB0048 */ sw $t3, 0x48($sp) +/* 10DE04 7F0D92D4 0109C021 */ addu $t8, $t0, $t1 +/* 10DE08 7F0D92D8 930F0000 */ lbu $t7, ($t8) +/* 10DE0C 7F0D92DC 000B6980 */ sll $t5, $t3, 6 +/* 10DE10 7F0D92E0 310C00A8 */ andi $t4, $t0, 0xa8 +/* 10DE14 7F0D92E4 018D7025 */ or $t6, $t4, $t5 +/* 10DE18 7F0D92E8 01EE8825 */ or $s1, $t7, $t6 +/* 10DE1C 7F0D92EC 323900FF */ andi $t9, $s1, 0xff +/* 10DE20 7F0D92F0 03208825 */ move $s1, $t9 +/* 10DE24 7F0D92F4 10002541 */ b .L7F0E27FC +/* 10DE28 7F0D92F8 01008025 */ move $s0, $t0 +spectrum_op_AF: +/* 10DE2C 7F0D92FC 8FA8028C */ lw $t0, 0x28c($sp) +/* 10DE30 7F0D9300 3C0E8009 */ lui $t6, %hi(ptr_pc_keyboard_table_alloc) +/* 10DE34 7F0D9304 8DCEE334 */ lw $t6, %lo(ptr_pc_keyboard_table_alloc)($t6) +/* 10DE38 7F0D9308 02108026 */ xor $s0, $s0, $s0 +/* 10DE3C 7F0D930C 320A00FF */ andi $t2, $s0, 0xff +/* 10DE40 7F0D9310 2D4C0001 */ sltiu $t4, $t2, 1 +/* 10DE44 7F0D9314 250B0004 */ addiu $t3, $t0, 4 +/* 10DE48 7F0D9318 AFAB028C */ sw $t3, 0x28c($sp) +/* 10DE4C 7F0D931C AFAC0048 */ sw $t4, 0x48($sp) +/* 10DE50 7F0D9320 014EC821 */ addu $t9, $t2, $t6 +/* 10DE54 7F0D9324 93280000 */ lbu $t0, ($t9) +/* 10DE58 7F0D9328 000CC180 */ sll $t8, $t4, 6 +/* 10DE5C 7F0D932C 314D00A8 */ andi $t5, $t2, 0xa8 +/* 10DE60 7F0D9330 01B87825 */ or $t7, $t5, $t8 +/* 10DE64 7F0D9334 010F8825 */ or $s1, $t0, $t7 +/* 10DE68 7F0D9338 322B00FF */ andi $t3, $s1, 0xff +/* 10DE6C 7F0D933C 01608825 */ move $s1, $t3 +/* 10DE70 7F0D9340 1000252E */ b .L7F0E27FC +/* 10DE74 7F0D9344 01408025 */ move $s0, $t2 +spectrum_op_B0: +/* 10DE78 7F0D9348 8FAA028C */ lw $t2, 0x28c($sp) +/* 10DE7C 7F0D934C 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 10DE80 7F0D9350 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 10DE84 7F0D9354 02128025 */ or $s0, $s0, $s2 +/* 10DE88 7F0D9358 320900FF */ andi $t1, $s0, 0xff +/* 10DE8C 7F0D935C 2D2D0001 */ sltiu $t5, $t1, 1 +/* 10DE90 7F0D9360 254C0004 */ addiu $t4, $t2, 4 +/* 10DE94 7F0D9364 AFAC028C */ sw $t4, 0x28c($sp) +/* 10DE98 7F0D9368 AFAD0048 */ sw $t5, 0x48($sp) +/* 10DE9C 7F0D936C 012F5821 */ addu $t3, $t1, $t7 +/* 10DEA0 7F0D9370 916A0000 */ lbu $t2, ($t3) +/* 10DEA4 7F0D9374 000DC980 */ sll $t9, $t5, 6 +/* 10DEA8 7F0D9378 313800A8 */ andi $t8, $t1, 0xa8 +/* 10DEAC 7F0D937C 03194025 */ or $t0, $t8, $t9 +/* 10DEB0 7F0D9380 01488825 */ or $s1, $t2, $t0 +/* 10DEB4 7F0D9384 322C00FF */ andi $t4, $s1, 0xff +/* 10DEB8 7F0D9388 01808825 */ move $s1, $t4 +/* 10DEBC 7F0D938C 1000251B */ b .L7F0E27FC +/* 10DEC0 7F0D9390 01208025 */ move $s0, $t1 +spectrum_op_B1: +/* 10DEC4 7F0D9394 8FA9028C */ lw $t1, 0x28c($sp) +/* 10DEC8 7F0D9398 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 10DECC 7F0D939C 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 10DED0 7F0D93A0 02138025 */ or $s0, $s0, $s3 +/* 10DED4 7F0D93A4 320E00FF */ andi $t6, $s0, 0xff +/* 10DED8 7F0D93A8 2DD80001 */ sltiu $t8, $t6, 1 +/* 10DEDC 7F0D93AC 252D0004 */ addiu $t5, $t1, 4 +/* 10DEE0 7F0D93B0 AFAD028C */ sw $t5, 0x28c($sp) +/* 10DEE4 7F0D93B4 AFB80048 */ sw $t8, 0x48($sp) +/* 10DEE8 7F0D93B8 01C86021 */ addu $t4, $t6, $t0 +/* 10DEEC 7F0D93BC 91890000 */ lbu $t1, ($t4) +/* 10DEF0 7F0D93C0 00185980 */ sll $t3, $t8, 6 +/* 10DEF4 7F0D93C4 31D900A8 */ andi $t9, $t6, 0xa8 +/* 10DEF8 7F0D93C8 032B5025 */ or $t2, $t9, $t3 +/* 10DEFC 7F0D93CC 012A8825 */ or $s1, $t1, $t2 +/* 10DF00 7F0D93D0 322D00FF */ andi $t5, $s1, 0xff +/* 10DF04 7F0D93D4 01A08825 */ move $s1, $t5 +/* 10DF08 7F0D93D8 10002508 */ b .L7F0E27FC +/* 10DF0C 7F0D93DC 01C08025 */ move $s0, $t6 +spectrum_op_B2: +/* 10DF10 7F0D93E0 8FAE028C */ lw $t6, 0x28c($sp) +/* 10DF14 7F0D93E4 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 10DF18 7F0D93E8 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 10DF1C 7F0D93EC 02148025 */ or $s0, $s0, $s4 +/* 10DF20 7F0D93F0 320F00FF */ andi $t7, $s0, 0xff +/* 10DF24 7F0D93F4 2DF90001 */ sltiu $t9, $t7, 1 +/* 10DF28 7F0D93F8 25D80004 */ addiu $t8, $t6, 4 +/* 10DF2C 7F0D93FC AFB8028C */ sw $t8, 0x28c($sp) +/* 10DF30 7F0D9400 AFB90048 */ sw $t9, 0x48($sp) +/* 10DF34 7F0D9404 01EA6821 */ addu $t5, $t7, $t2 +/* 10DF38 7F0D9408 91AE0000 */ lbu $t6, ($t5) +/* 10DF3C 7F0D940C 00196180 */ sll $t4, $t9, 6 +/* 10DF40 7F0D9410 31EB00A8 */ andi $t3, $t7, 0xa8 +/* 10DF44 7F0D9414 016C4825 */ or $t1, $t3, $t4 +/* 10DF48 7F0D9418 01C98825 */ or $s1, $t6, $t1 +/* 10DF4C 7F0D941C 323800FF */ andi $t8, $s1, 0xff +/* 10DF50 7F0D9420 03008825 */ move $s1, $t8 +/* 10DF54 7F0D9424 100024F5 */ b .L7F0E27FC +/* 10DF58 7F0D9428 01E08025 */ move $s0, $t7 +spectrum_op_B3: +/* 10DF5C 7F0D942C 8FAF028C */ lw $t7, 0x28c($sp) +/* 10DF60 7F0D9430 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 10DF64 7F0D9434 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 10DF68 7F0D9438 02158025 */ or $s0, $s0, $s5 +/* 10DF6C 7F0D943C 320800FF */ andi $t0, $s0, 0xff +/* 10DF70 7F0D9440 2D0B0001 */ sltiu $t3, $t0, 1 +/* 10DF74 7F0D9444 25F90004 */ addiu $t9, $t7, 4 +/* 10DF78 7F0D9448 AFB9028C */ sw $t9, 0x28c($sp) +/* 10DF7C 7F0D944C AFAB0048 */ sw $t3, 0x48($sp) +/* 10DF80 7F0D9450 0109C021 */ addu $t8, $t0, $t1 +/* 10DF84 7F0D9454 930F0000 */ lbu $t7, ($t8) +/* 10DF88 7F0D9458 000B6980 */ sll $t5, $t3, 6 +/* 10DF8C 7F0D945C 310C00A8 */ andi $t4, $t0, 0xa8 +/* 10DF90 7F0D9460 018D7025 */ or $t6, $t4, $t5 +/* 10DF94 7F0D9464 01EE8825 */ or $s1, $t7, $t6 +/* 10DF98 7F0D9468 323900FF */ andi $t9, $s1, 0xff +/* 10DF9C 7F0D946C 03208825 */ move $s1, $t9 +/* 10DFA0 7F0D9470 100024E2 */ b .L7F0E27FC +/* 10DFA4 7F0D9474 01008025 */ move $s0, $t0 +spectrum_op_B4: +/* 10DFA8 7F0D9478 8FA8028C */ lw $t0, 0x28c($sp) +/* 10DFAC 7F0D947C 93AA0287 */ lbu $t2, 0x287($sp) +/* 10DFB0 7F0D9480 93AC0287 */ lbu $t4, 0x287($sp) +/* 10DFB4 7F0D9484 250B0004 */ addiu $t3, $t0, 4 +/* 10DFB8 7F0D9488 15400003 */ bnez $t2, .L7F0D9498 +/* 10DFBC 7F0D948C AFAB028C */ sw $t3, 0x28c($sp) +/* 10DFC0 7F0D9490 1000000C */ b .L7F0D94C4 +/* 10DFC4 7F0D9494 AFB60048 */ sw $s6, 0x48($sp) +.L7F0D9498: +/* 10DFC8 7F0D9498 24010001 */ li $at, 1 +/* 10DFCC 7F0D949C 15810005 */ bne $t4, $at, .L7F0D94B4 +/* 10DFD0 7F0D94A0 97B80294 */ lhu $t8, 0x294($sp) +/* 10DFD4 7F0D94A4 97AD0296 */ lhu $t5, 0x296($sp) +/* 10DFD8 7F0D94A8 000D4A03 */ sra $t1, $t5, 8 +/* 10DFDC 7F0D94AC 10000003 */ b .L7F0D94BC +/* 10DFE0 7F0D94B0 AFA90044 */ sw $t1, 0x44($sp) +.L7F0D94B4: +/* 10DFE4 7F0D94B4 00187A03 */ sra $t7, $t8, 8 +/* 10DFE8 7F0D94B8 AFAF0044 */ sw $t7, 0x44($sp) +.L7F0D94BC: +/* 10DFEC 7F0D94BC 8FAE0044 */ lw $t6, 0x44($sp) +/* 10DFF0 7F0D94C0 AFAE0048 */ sw $t6, 0x48($sp) +.L7F0D94C4: +/* 10DFF4 7F0D94C4 8FB90048 */ lw $t9, 0x48($sp) +/* 10DFF8 7F0D94C8 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 10DFFC 7F0D94CC 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 10E000 7F0D94D0 02198025 */ or $s0, $s0, $t9 +/* 10E004 7F0D94D4 320800FF */ andi $t0, $s0, 0xff +/* 10E008 7F0D94D8 2D0B0001 */ sltiu $t3, $t0, 1 +/* 10E00C 7F0D94DC AFAB0048 */ sw $t3, 0x48($sp) +/* 10E010 7F0D94E0 01187821 */ addu $t7, $t0, $t8 +/* 10E014 7F0D94E4 91EE0000 */ lbu $t6, ($t7) +/* 10E018 7F0D94E8 000B6980 */ sll $t5, $t3, 6 +/* 10E01C 7F0D94EC 310A00A8 */ andi $t2, $t0, 0xa8 +/* 10E020 7F0D94F0 014D4825 */ or $t1, $t2, $t5 +/* 10E024 7F0D94F4 01C98825 */ or $s1, $t6, $t1 +/* 10E028 7F0D94F8 323900FF */ andi $t9, $s1, 0xff +/* 10E02C 7F0D94FC 03208825 */ move $s1, $t9 +/* 10E030 7F0D9500 100024BE */ b .L7F0E27FC +/* 10E034 7F0D9504 01008025 */ move $s0, $t0 +spectrum_op_B5: +/* 10E038 7F0D9508 8FA8028C */ lw $t0, 0x28c($sp) +/* 10E03C 7F0D950C 93AC0287 */ lbu $t4, 0x287($sp) +/* 10E040 7F0D9510 93AA0287 */ lbu $t2, 0x287($sp) +/* 10E044 7F0D9514 250B0004 */ addiu $t3, $t0, 4 +/* 10E048 7F0D9518 15800003 */ bnez $t4, .L7F0D9528 +/* 10E04C 7F0D951C AFAB028C */ sw $t3, 0x28c($sp) +/* 10E050 7F0D9520 1000000C */ b .L7F0D9554 +/* 10E054 7F0D9524 AFB70048 */ sw $s7, 0x48($sp) +.L7F0D9528: +/* 10E058 7F0D9528 24010001 */ li $at, 1 +/* 10E05C 7F0D952C 15410005 */ bne $t2, $at, .L7F0D9544 +/* 10E060 7F0D9530 97AF0294 */ lhu $t7, 0x294($sp) +/* 10E064 7F0D9534 97AD0296 */ lhu $t5, 0x296($sp) +/* 10E068 7F0D9538 31B800FF */ andi $t8, $t5, 0xff +/* 10E06C 7F0D953C 10000003 */ b .L7F0D954C +/* 10E070 7F0D9540 AFB80044 */ sw $t8, 0x44($sp) +.L7F0D9544: +/* 10E074 7F0D9544 31EE00FF */ andi $t6, $t7, 0xff +/* 10E078 7F0D9548 AFAE0044 */ sw $t6, 0x44($sp) +.L7F0D954C: +/* 10E07C 7F0D954C 8FA90044 */ lw $t1, 0x44($sp) +/* 10E080 7F0D9550 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D9554: +/* 10E084 7F0D9554 8FB90048 */ lw $t9, 0x48($sp) +/* 10E088 7F0D9558 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 10E08C 7F0D955C 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 10E090 7F0D9560 02198025 */ or $s0, $s0, $t9 +/* 10E094 7F0D9564 320800FF */ andi $t0, $s0, 0xff +/* 10E098 7F0D9568 2D0B0001 */ sltiu $t3, $t0, 1 +/* 10E09C 7F0D956C AFAB0048 */ sw $t3, 0x48($sp) +/* 10E0A0 7F0D9570 010F7021 */ addu $t6, $t0, $t7 +/* 10E0A4 7F0D9574 91C90000 */ lbu $t1, ($t6) +/* 10E0A8 7F0D9578 000B6980 */ sll $t5, $t3, 6 +/* 10E0AC 7F0D957C 310C00A8 */ andi $t4, $t0, 0xa8 +/* 10E0B0 7F0D9580 018DC025 */ or $t8, $t4, $t5 +/* 10E0B4 7F0D9584 01388825 */ or $s1, $t1, $t8 +/* 10E0B8 7F0D9588 323900FF */ andi $t9, $s1, 0xff +/* 10E0BC 7F0D958C 03208825 */ move $s1, $t9 +/* 10E0C0 7F0D9590 1000249A */ b .L7F0E27FC +/* 10E0C4 7F0D9594 01008025 */ move $s0, $t0 +spectrum_op_B6: +/* 10E0C8 7F0D9598 8FA8028C */ lw $t0, 0x28c($sp) +/* 10E0CC 7F0D959C 93AA0287 */ lbu $t2, 0x287($sp) +/* 10E0D0 7F0D95A0 00166200 */ sll $t4, $s6, 8 +/* 10E0D4 7F0D95A4 250B0007 */ addiu $t3, $t0, 7 +/* 10E0D8 7F0D95A8 15400004 */ bnez $t2, .L7F0D95BC +/* 10E0DC 7F0D95AC AFAB028C */ sw $t3, 0x28c($sp) +/* 10E0E0 7F0D95B0 01976825 */ or $t5, $t4, $s7 +/* 10E0E4 7F0D95B4 10000016 */ b .L7F0D9610 +/* 10E0E8 7F0D95B8 A7AD0164 */ sh $t5, 0x164($sp) +.L7F0D95BC: +/* 10E0EC 7F0D95BC 8FAF028C */ lw $t7, 0x28c($sp) +/* 10E0F0 7F0D95C0 93A90287 */ lbu $t1, 0x287($sp) +/* 10E0F4 7F0D95C4 24010001 */ li $at, 1 +/* 10E0F8 7F0D95C8 25EE0008 */ addiu $t6, $t7, 8 +/* 10E0FC 7F0D95CC 15210004 */ bne $t1, $at, .L7F0D95E0 +/* 10E100 7F0D95D0 AFAE028C */ sw $t6, 0x28c($sp) +/* 10E104 7F0D95D4 97B80296 */ lhu $t8, 0x296($sp) +/* 10E108 7F0D95D8 10000003 */ b .L7F0D95E8 +/* 10E10C 7F0D95DC AFB80048 */ sw $t8, 0x48($sp) +.L7F0D95E0: +/* 10E110 7F0D95E0 97B90294 */ lhu $t9, 0x294($sp) +/* 10E114 7F0D95E4 AFB90048 */ sw $t9, 0x48($sp) +.L7F0D95E8: +/* 10E118 7F0D95E8 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10E11C 7F0D95EC 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10E120 7F0D95F0 97A80298 */ lhu $t0, 0x298($sp) +/* 10E124 7F0D95F4 8FAD0048 */ lw $t5, 0x48($sp) +/* 10E128 7F0D95F8 010B5021 */ addu $t2, $t0, $t3 +/* 10E12C 7F0D95FC 814C0000 */ lb $t4, ($t2) +/* 10E130 7F0D9600 250E0001 */ addiu $t6, $t0, 1 +/* 10E134 7F0D9604 A7AE0298 */ sh $t6, 0x298($sp) +/* 10E138 7F0D9608 018D7821 */ addu $t7, $t4, $t5 +/* 10E13C 7F0D960C A7AF0164 */ sh $t7, 0x164($sp) +.L7F0D9610: +/* 10E140 7F0D9610 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10E144 7F0D9614 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10E148 7F0D9618 97B80164 */ lhu $t8, 0x164($sp) +/* 10E14C 7F0D961C 0138C821 */ addu $t9, $t1, $t8 +/* 10E150 7F0D9620 932B0000 */ lbu $t3, ($t9) +/* 10E154 7F0D9624 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 10E158 7F0D9628 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 10E15C 7F0D962C 020B8025 */ or $s0, $s0, $t3 +/* 10E160 7F0D9630 320A00FF */ andi $t2, $s0, 0xff +/* 10E164 7F0D9634 2D4C0001 */ sltiu $t4, $t2, 1 +/* 10E168 7F0D9638 AFAC0048 */ sw $t4, 0x48($sp) +/* 10E16C 7F0D963C 0149C021 */ addu $t8, $t2, $t1 +/* 10E170 7F0D9640 93190000 */ lbu $t9, ($t8) +/* 10E174 7F0D9644 000C4180 */ sll $t0, $t4, 6 +/* 10E178 7F0D9648 314D00A8 */ andi $t5, $t2, 0xa8 +/* 10E17C 7F0D964C 01A87025 */ or $t6, $t5, $t0 +/* 10E180 7F0D9650 032E8825 */ or $s1, $t9, $t6 +/* 10E184 7F0D9654 322B00FF */ andi $t3, $s1, 0xff +/* 10E188 7F0D9658 01608825 */ move $s1, $t3 +/* 10E18C 7F0D965C 10002467 */ b .L7F0E27FC +/* 10E190 7F0D9660 01408025 */ move $s0, $t2 +spectrum_op_B7: +/* 10E194 7F0D9664 8FAA028C */ lw $t2, 0x28c($sp) +/* 10E198 7F0D9668 3C0E8009 */ lui $t6, %hi(ptr_pc_keyboard_table_alloc) +/* 10E19C 7F0D966C 8DCEE334 */ lw $t6, %lo(ptr_pc_keyboard_table_alloc)($t6) +/* 10E1A0 7F0D9670 02108025 */ or $s0, $s0, $s0 +/* 10E1A4 7F0D9674 320F00FF */ andi $t7, $s0, 0xff +/* 10E1A8 7F0D9678 2DED0001 */ sltiu $t5, $t7, 1 +/* 10E1AC 7F0D967C 254C0004 */ addiu $t4, $t2, 4 +/* 10E1B0 7F0D9680 AFAC028C */ sw $t4, 0x28c($sp) +/* 10E1B4 7F0D9684 AFAD0048 */ sw $t5, 0x48($sp) +/* 10E1B8 7F0D9688 01EE5821 */ addu $t3, $t7, $t6 +/* 10E1BC 7F0D968C 916A0000 */ lbu $t2, ($t3) +/* 10E1C0 7F0D9690 000DC180 */ sll $t8, $t5, 6 +/* 10E1C4 7F0D9694 31E800A8 */ andi $t0, $t7, 0xa8 +/* 10E1C8 7F0D9698 0118C825 */ or $t9, $t0, $t8 +/* 10E1CC 7F0D969C 01598825 */ or $s1, $t2, $t9 +/* 10E1D0 7F0D96A0 322C00FF */ andi $t4, $s1, 0xff +/* 10E1D4 7F0D96A4 01808825 */ move $s1, $t4 +/* 10E1D8 7F0D96A8 10002454 */ b .L7F0E27FC +/* 10E1DC 7F0D96AC 01E08025 */ move $s0, $t7 +spectrum_op_B8: +/* 10E1E0 7F0D96B0 324900FF */ andi $t1, $s2, 0xff +/* 10E1E4 7F0D96B4 02094023 */ subu $t0, $s0, $t1 +/* 10E1E8 7F0D96B8 8FAF028C */ lw $t7, 0x28c($sp) +/* 10E1EC 7F0D96BC 311801FF */ andi $t8, $t0, 0x1ff +/* 10E1F0 7F0D96C0 330EFFFF */ andi $t6, $t8, 0xffff +/* 10E1F4 7F0D96C4 2DCB0001 */ sltiu $t3, $t6, 1 +/* 10E1F8 7F0D96C8 312E000F */ andi $t6, $t1, 0xf +/* 10E1FC 7F0D96CC 3208000F */ andi $t0, $s0, 0xf +/* 10E200 7F0D96D0 25ED0004 */ addiu $t5, $t7, 4 +/* 10E204 7F0D96D4 010E502A */ slt $t2, $t0, $t6 +/* 10E208 7F0D96D8 AFAD028C */ sw $t5, 0x28c($sp) +/* 10E20C 7F0D96DC 00187A03 */ sra $t7, $t8, 8 +/* 10E210 7F0D96E0 331900A8 */ andi $t9, $t8, 0xa8 +/* 10E214 7F0D96E4 032F6825 */ or $t5, $t9, $t7 +/* 10E218 7F0D96E8 000A6100 */ sll $t4, $t2, 4 +/* 10E21C 7F0D96EC 02097826 */ xor $t7, $s0, $t1 +/* 10E220 7F0D96F0 03007025 */ move $t6, $t8 +/* 10E224 7F0D96F4 01D05026 */ xor $t2, $t6, $s0 +/* 10E228 7F0D96F8 31E80080 */ andi $t0, $t7, 0x80 +/* 10E22C 7F0D96FC 01ACC825 */ or $t9, $t5, $t4 +/* 10E230 7F0D9700 010A6824 */ and $t5, $t0, $t2 +/* 10E234 7F0D9704 000D6143 */ sra $t4, $t5, 5 +/* 10E238 7F0D9708 032C4825 */ or $t1, $t9, $t4 +/* 10E23C 7F0D970C A7B80162 */ sh $t8, 0x162($sp) +/* 10E240 7F0D9710 000BC180 */ sll $t8, $t3, 6 +/* 10E244 7F0D9714 352F0002 */ ori $t7, $t1, 2 +/* 10E248 7F0D9718 01F88825 */ or $s1, $t7, $t8 +/* 10E24C 7F0D971C 322E00FF */ andi $t6, $s1, 0xff +/* 10E250 7F0D9720 01C08825 */ move $s1, $t6 +/* 10E254 7F0D9724 AFAB0048 */ sw $t3, 0x48($sp) +/* 10E258 7F0D9728 10002434 */ b .L7F0E27FC +/* 10E25C 7F0D972C A3B20161 */ sb $s2, 0x161($sp) +spectrum_op_B9: +/* 10E260 7F0D9730 326D00FF */ andi $t5, $s3, 0xff +/* 10E264 7F0D9734 020DC823 */ subu $t9, $s0, $t5 +/* 10E268 7F0D9738 8FA8028C */ lw $t0, 0x28c($sp) +/* 10E26C 7F0D973C 332C01FF */ andi $t4, $t9, 0x1ff +/* 10E270 7F0D9740 3189FFFF */ andi $t1, $t4, 0xffff +/* 10E274 7F0D9744 2D2B0001 */ sltiu $t3, $t1, 1 +/* 10E278 7F0D9748 31A9000F */ andi $t1, $t5, 0xf +/* 10E27C 7F0D974C 3219000F */ andi $t9, $s0, 0xf +/* 10E280 7F0D9750 250A0004 */ addiu $t2, $t0, 4 +/* 10E284 7F0D9754 0329782A */ slt $t7, $t9, $t1 +/* 10E288 7F0D9758 AFAA028C */ sw $t2, 0x28c($sp) +/* 10E28C 7F0D975C 000C4203 */ sra $t0, $t4, 8 +/* 10E290 7F0D9760 319800A8 */ andi $t8, $t4, 0xa8 +/* 10E294 7F0D9764 03085025 */ or $t2, $t8, $t0 +/* 10E298 7F0D9768 000F7100 */ sll $t6, $t7, 4 +/* 10E29C 7F0D976C 020D4026 */ xor $t0, $s0, $t5 +/* 10E2A0 7F0D9770 01804825 */ move $t1, $t4 +/* 10E2A4 7F0D9774 01307826 */ xor $t7, $t1, $s0 +/* 10E2A8 7F0D9778 31190080 */ andi $t9, $t0, 0x80 +/* 10E2AC 7F0D977C 014EC025 */ or $t8, $t2, $t6 +/* 10E2B0 7F0D9780 032F5024 */ and $t2, $t9, $t7 +/* 10E2B4 7F0D9784 000A7143 */ sra $t6, $t2, 5 +/* 10E2B8 7F0D9788 030E6825 */ or $t5, $t8, $t6 +/* 10E2BC 7F0D978C A7AC015E */ sh $t4, 0x15e($sp) +/* 10E2C0 7F0D9790 000B6180 */ sll $t4, $t3, 6 +/* 10E2C4 7F0D9794 35A80002 */ ori $t0, $t5, 2 +/* 10E2C8 7F0D9798 010C8825 */ or $s1, $t0, $t4 +/* 10E2CC 7F0D979C 322900FF */ andi $t1, $s1, 0xff +/* 10E2D0 7F0D97A0 01208825 */ move $s1, $t1 +/* 10E2D4 7F0D97A4 AFAB0048 */ sw $t3, 0x48($sp) +/* 10E2D8 7F0D97A8 10002414 */ b .L7F0E27FC +/* 10E2DC 7F0D97AC A3B3015D */ sb $s3, 0x15d($sp) +spectrum_op_BA: +/* 10E2E0 7F0D97B0 328A00FF */ andi $t2, $s4, 0xff +/* 10E2E4 7F0D97B4 020AC023 */ subu $t8, $s0, $t2 +/* 10E2E8 7F0D97B8 8FB9028C */ lw $t9, 0x28c($sp) +/* 10E2EC 7F0D97BC 330E01FF */ andi $t6, $t8, 0x1ff +/* 10E2F0 7F0D97C0 31CDFFFF */ andi $t5, $t6, 0xffff +/* 10E2F4 7F0D97C4 2DAB0001 */ sltiu $t3, $t5, 1 +/* 10E2F8 7F0D97C8 314D000F */ andi $t5, $t2, 0xf +/* 10E2FC 7F0D97CC 3218000F */ andi $t8, $s0, 0xf +/* 10E300 7F0D97D0 272F0004 */ addiu $t7, $t9, 4 +/* 10E304 7F0D97D4 030D402A */ slt $t0, $t8, $t5 +/* 10E308 7F0D97D8 AFAF028C */ sw $t7, 0x28c($sp) +/* 10E30C 7F0D97DC 000ECA03 */ sra $t9, $t6, 8 +/* 10E310 7F0D97E0 31CC00A8 */ andi $t4, $t6, 0xa8 +/* 10E314 7F0D97E4 01997825 */ or $t7, $t4, $t9 +/* 10E318 7F0D97E8 00084900 */ sll $t1, $t0, 4 +/* 10E31C 7F0D97EC 020AC826 */ xor $t9, $s0, $t2 +/* 10E320 7F0D97F0 01C06825 */ move $t5, $t6 +/* 10E324 7F0D97F4 01B04026 */ xor $t0, $t5, $s0 +/* 10E328 7F0D97F8 33380080 */ andi $t8, $t9, 0x80 +/* 10E32C 7F0D97FC 01E96025 */ or $t4, $t7, $t1 +/* 10E330 7F0D9800 03087824 */ and $t7, $t8, $t0 +/* 10E334 7F0D9804 000F4943 */ sra $t1, $t7, 5 +/* 10E338 7F0D9808 01895025 */ or $t2, $t4, $t1 +/* 10E33C 7F0D980C A7AE015A */ sh $t6, 0x15a($sp) +/* 10E340 7F0D9810 000B7180 */ sll $t6, $t3, 6 +/* 10E344 7F0D9814 35590002 */ ori $t9, $t2, 2 +/* 10E348 7F0D9818 032E8825 */ or $s1, $t9, $t6 +/* 10E34C 7F0D981C 322D00FF */ andi $t5, $s1, 0xff +/* 10E350 7F0D9820 01A08825 */ move $s1, $t5 +/* 10E354 7F0D9824 AFAB0048 */ sw $t3, 0x48($sp) +/* 10E358 7F0D9828 100023F4 */ b .L7F0E27FC +/* 10E35C 7F0D982C A3B40159 */ sb $s4, 0x159($sp) +spectrum_op_BB: +/* 10E360 7F0D9830 32AF00FF */ andi $t7, $s5, 0xff +/* 10E364 7F0D9834 020F6023 */ subu $t4, $s0, $t7 +/* 10E368 7F0D9838 8FB8028C */ lw $t8, 0x28c($sp) +/* 10E36C 7F0D983C 318901FF */ andi $t1, $t4, 0x1ff +/* 10E370 7F0D9840 312AFFFF */ andi $t2, $t1, 0xffff +/* 10E374 7F0D9844 2D4B0001 */ sltiu $t3, $t2, 1 +/* 10E378 7F0D9848 31EA000F */ andi $t2, $t7, 0xf +/* 10E37C 7F0D984C 320C000F */ andi $t4, $s0, 0xf +/* 10E380 7F0D9850 27080004 */ addiu $t0, $t8, 4 +/* 10E384 7F0D9854 018AC82A */ slt $t9, $t4, $t2 +/* 10E388 7F0D9858 AFA8028C */ sw $t0, 0x28c($sp) +/* 10E38C 7F0D985C 0009C203 */ sra $t8, $t1, 8 +/* 10E390 7F0D9860 312E00A8 */ andi $t6, $t1, 0xa8 +/* 10E394 7F0D9864 01D84025 */ or $t0, $t6, $t8 +/* 10E398 7F0D9868 00196900 */ sll $t5, $t9, 4 +/* 10E39C 7F0D986C 020FC026 */ xor $t8, $s0, $t7 +/* 10E3A0 7F0D9870 01205025 */ move $t2, $t1 +/* 10E3A4 7F0D9874 0150C826 */ xor $t9, $t2, $s0 +/* 10E3A8 7F0D9878 330C0080 */ andi $t4, $t8, 0x80 +/* 10E3AC 7F0D987C 010D7025 */ or $t6, $t0, $t5 +/* 10E3B0 7F0D9880 01994024 */ and $t0, $t4, $t9 +/* 10E3B4 7F0D9884 00086943 */ sra $t5, $t0, 5 +/* 10E3B8 7F0D9888 01CD7825 */ or $t7, $t6, $t5 +/* 10E3BC 7F0D988C A7A90156 */ sh $t1, 0x156($sp) +/* 10E3C0 7F0D9890 000B4980 */ sll $t1, $t3, 6 +/* 10E3C4 7F0D9894 35F80002 */ ori $t8, $t7, 2 +/* 10E3C8 7F0D9898 03098825 */ or $s1, $t8, $t1 +/* 10E3CC 7F0D989C 322A00FF */ andi $t2, $s1, 0xff +/* 10E3D0 7F0D98A0 01408825 */ move $s1, $t2 +/* 10E3D4 7F0D98A4 AFAB0048 */ sw $t3, 0x48($sp) +/* 10E3D8 7F0D98A8 100023D4 */ b .L7F0E27FC +/* 10E3DC 7F0D98AC A3B50155 */ sb $s5, 0x155($sp) +spectrum_op_BC: +/* 10E3E0 7F0D98B0 8FAC028C */ lw $t4, 0x28c($sp) +/* 10E3E4 7F0D98B4 93A80287 */ lbu $t0, 0x287($sp) +/* 10E3E8 7F0D98B8 93AE0287 */ lbu $t6, 0x287($sp) +/* 10E3EC 7F0D98BC 25990004 */ addiu $t9, $t4, 4 +/* 10E3F0 7F0D98C0 15000003 */ bnez $t0, .L7F0D98D0 +/* 10E3F4 7F0D98C4 AFB9028C */ sw $t9, 0x28c($sp) +/* 10E3F8 7F0D98C8 1000000C */ b .L7F0D98FC +/* 10E3FC 7F0D98CC A3B60151 */ sb $s6, 0x151($sp) +.L7F0D98D0: +/* 10E400 7F0D98D0 24010001 */ li $at, 1 +/* 10E404 7F0D98D4 15C10005 */ bne $t6, $at, .L7F0D98EC +/* 10E408 7F0D98D8 97AB0294 */ lhu $t3, 0x294($sp) +/* 10E40C 7F0D98DC 97AD0296 */ lhu $t5, 0x296($sp) +/* 10E410 7F0D98E0 000D7A03 */ sra $t7, $t5, 8 +/* 10E414 7F0D98E4 10000003 */ b .L7F0D98F4 +/* 10E418 7F0D98E8 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0D98EC: +/* 10E41C 7F0D98EC 000BC203 */ sra $t8, $t3, 8 +/* 10E420 7F0D98F0 AFB80048 */ sw $t8, 0x48($sp) +.L7F0D98F4: +/* 10E424 7F0D98F4 8FA90048 */ lw $t1, 0x48($sp) +/* 10E428 7F0D98F8 A3A90151 */ sb $t1, 0x151($sp) +.L7F0D98FC: +/* 10E42C 7F0D98FC 93AA0151 */ lbu $t2, 0x151($sp) +/* 10E430 7F0D9900 020A6023 */ subu $t4, $s0, $t2 +/* 10E434 7F0D9904 319901FF */ andi $t9, $t4, 0x1ff +/* 10E438 7F0D9908 3328FFFF */ andi $t0, $t9, 0xffff +/* 10E43C 7F0D990C 2D0E0001 */ sltiu $t6, $t0, 1 +/* 10E440 7F0D9910 320C000F */ andi $t4, $s0, 0xf +/* 10E444 7F0D9914 3148000F */ andi $t0, $t2, 0xf +/* 10E448 7F0D9918 0188682A */ slt $t5, $t4, $t0 +/* 10E44C 7F0D991C 332F00A8 */ andi $t7, $t9, 0xa8 +/* 10E450 7F0D9920 0019C203 */ sra $t8, $t9, 8 +/* 10E454 7F0D9924 01F84825 */ or $t1, $t7, $t8 +/* 10E458 7F0D9928 000D5900 */ sll $t3, $t5, 4 +/* 10E45C 7F0D992C 03204025 */ move $t0, $t9 +/* 10E460 7F0D9930 020AC026 */ xor $t8, $s0, $t2 +/* 10E464 7F0D9934 330C0080 */ andi $t4, $t8, 0x80 +/* 10E468 7F0D9938 01106826 */ xor $t5, $t0, $s0 +/* 10E46C 7F0D993C 012B7825 */ or $t7, $t1, $t3 +/* 10E470 7F0D9940 018D4824 */ and $t1, $t4, $t5 +/* 10E474 7F0D9944 00095943 */ sra $t3, $t1, 5 +/* 10E478 7F0D9948 01EB5025 */ or $t2, $t7, $t3 +/* 10E47C 7F0D994C A7B90152 */ sh $t9, 0x152($sp) +/* 10E480 7F0D9950 000EC980 */ sll $t9, $t6, 6 +/* 10E484 7F0D9954 35580002 */ ori $t8, $t2, 2 +/* 10E488 7F0D9958 03198825 */ or $s1, $t8, $t9 +/* 10E48C 7F0D995C 322800FF */ andi $t0, $s1, 0xff +/* 10E490 7F0D9960 01008825 */ move $s1, $t0 +/* 10E494 7F0D9964 100023A5 */ b .L7F0E27FC +/* 10E498 7F0D9968 AFAE0048 */ sw $t6, 0x48($sp) +spectrum_op_BD: +/* 10E49C 7F0D996C 8FAC028C */ lw $t4, 0x28c($sp) +/* 10E4A0 7F0D9970 93A90287 */ lbu $t1, 0x287($sp) +/* 10E4A4 7F0D9974 93AF0287 */ lbu $t7, 0x287($sp) +/* 10E4A8 7F0D9978 258D0004 */ addiu $t5, $t4, 4 +/* 10E4AC 7F0D997C 15200003 */ bnez $t1, .L7F0D998C +/* 10E4B0 7F0D9980 AFAD028C */ sw $t5, 0x28c($sp) +/* 10E4B4 7F0D9984 1000000C */ b .L7F0D99B8 +/* 10E4B8 7F0D9988 A3B7014D */ sb $s7, 0x14d($sp) +.L7F0D998C: +/* 10E4BC 7F0D998C 24010001 */ li $at, 1 +/* 10E4C0 7F0D9990 15E10005 */ bne $t7, $at, .L7F0D99A8 +/* 10E4C4 7F0D9994 97AE0294 */ lhu $t6, 0x294($sp) +/* 10E4C8 7F0D9998 97AB0296 */ lhu $t3, 0x296($sp) +/* 10E4CC 7F0D999C 316A00FF */ andi $t2, $t3, 0xff +/* 10E4D0 7F0D99A0 10000003 */ b .L7F0D99B0 +/* 10E4D4 7F0D99A4 AFAA0048 */ sw $t2, 0x48($sp) +.L7F0D99A8: +/* 10E4D8 7F0D99A8 31D800FF */ andi $t8, $t6, 0xff +/* 10E4DC 7F0D99AC AFB80048 */ sw $t8, 0x48($sp) +.L7F0D99B0: +/* 10E4E0 7F0D99B0 8FB90048 */ lw $t9, 0x48($sp) +/* 10E4E4 7F0D99B4 A3B9014D */ sb $t9, 0x14d($sp) +.L7F0D99B8: +/* 10E4E8 7F0D99B8 93A8014D */ lbu $t0, 0x14d($sp) +/* 10E4EC 7F0D99BC 02086023 */ subu $t4, $s0, $t0 +/* 10E4F0 7F0D99C0 318D01FF */ andi $t5, $t4, 0x1ff +/* 10E4F4 7F0D99C4 31A9FFFF */ andi $t1, $t5, 0xffff +/* 10E4F8 7F0D99C8 2D2F0001 */ sltiu $t7, $t1, 1 +/* 10E4FC 7F0D99CC 320C000F */ andi $t4, $s0, 0xf +/* 10E500 7F0D99D0 3109000F */ andi $t1, $t0, 0xf +/* 10E504 7F0D99D4 0189582A */ slt $t3, $t4, $t1 +/* 10E508 7F0D99D8 31AA00A8 */ andi $t2, $t5, 0xa8 +/* 10E50C 7F0D99DC 000DC203 */ sra $t8, $t5, 8 +/* 10E510 7F0D99E0 0158C825 */ or $t9, $t2, $t8 +/* 10E514 7F0D99E4 000B7100 */ sll $t6, $t3, 4 +/* 10E518 7F0D99E8 01A04825 */ move $t1, $t5 +/* 10E51C 7F0D99EC 0208C026 */ xor $t8, $s0, $t0 +/* 10E520 7F0D99F0 330C0080 */ andi $t4, $t8, 0x80 +/* 10E524 7F0D99F4 01305826 */ xor $t3, $t1, $s0 +/* 10E528 7F0D99F8 032E5025 */ or $t2, $t9, $t6 +/* 10E52C 7F0D99FC 018BC824 */ and $t9, $t4, $t3 +/* 10E530 7F0D9A00 00197143 */ sra $t6, $t9, 5 +/* 10E534 7F0D9A04 014E4025 */ or $t0, $t2, $t6 +/* 10E538 7F0D9A08 A7AD014E */ sh $t5, 0x14e($sp) +/* 10E53C 7F0D9A0C 000F6980 */ sll $t5, $t7, 6 +/* 10E540 7F0D9A10 35180002 */ ori $t8, $t0, 2 +/* 10E544 7F0D9A14 030D8825 */ or $s1, $t8, $t5 +/* 10E548 7F0D9A18 322900FF */ andi $t1, $s1, 0xff +/* 10E54C 7F0D9A1C 01208825 */ move $s1, $t1 +/* 10E550 7F0D9A20 10002376 */ b .L7F0E27FC +/* 10E554 7F0D9A24 AFAF0048 */ sw $t7, 0x48($sp) +spectrum_op_BE: +/* 10E558 7F0D9A28 8FAC028C */ lw $t4, 0x28c($sp) +/* 10E55C 7F0D9A2C 93B90287 */ lbu $t9, 0x287($sp) +/* 10E560 7F0D9A30 00165200 */ sll $t2, $s6, 8 +/* 10E564 7F0D9A34 258B0007 */ addiu $t3, $t4, 7 +/* 10E568 7F0D9A38 17200004 */ bnez $t9, .L7F0D9A4C +/* 10E56C 7F0D9A3C AFAB028C */ sw $t3, 0x28c($sp) +/* 10E570 7F0D9A40 01577025 */ or $t6, $t2, $s7 +/* 10E574 7F0D9A44 10000016 */ b .L7F0D9AA0 +/* 10E578 7F0D9A48 A7AE014A */ sh $t6, 0x14a($sp) +.L7F0D9A4C: +/* 10E57C 7F0D9A4C 8FA8028C */ lw $t0, 0x28c($sp) +/* 10E580 7F0D9A50 93B80287 */ lbu $t8, 0x287($sp) +/* 10E584 7F0D9A54 24010001 */ li $at, 1 +/* 10E588 7F0D9A58 250F0008 */ addiu $t7, $t0, 8 +/* 10E58C 7F0D9A5C 17010004 */ bne $t8, $at, .L7F0D9A70 +/* 10E590 7F0D9A60 AFAF028C */ sw $t7, 0x28c($sp) +/* 10E594 7F0D9A64 97AD0296 */ lhu $t5, 0x296($sp) +/* 10E598 7F0D9A68 10000003 */ b .L7F0D9A78 +/* 10E59C 7F0D9A6C AFAD0048 */ sw $t5, 0x48($sp) +.L7F0D9A70: +/* 10E5A0 7F0D9A70 97A90294 */ lhu $t1, 0x294($sp) +/* 10E5A4 7F0D9A74 AFA90048 */ sw $t1, 0x48($sp) +.L7F0D9A78: +/* 10E5A8 7F0D9A78 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10E5AC 7F0D9A7C 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10E5B0 7F0D9A80 97AC0298 */ lhu $t4, 0x298($sp) +/* 10E5B4 7F0D9A84 8FAE0048 */ lw $t6, 0x48($sp) +/* 10E5B8 7F0D9A88 018BC821 */ addu $t9, $t4, $t3 +/* 10E5BC 7F0D9A8C 832A0000 */ lb $t2, ($t9) +/* 10E5C0 7F0D9A90 258F0001 */ addiu $t7, $t4, 1 +/* 10E5C4 7F0D9A94 A7AF0298 */ sh $t7, 0x298($sp) +/* 10E5C8 7F0D9A98 014E4021 */ addu $t0, $t2, $t6 +/* 10E5CC 7F0D9A9C A7A8014A */ sh $t0, 0x14a($sp) +.L7F0D9AA0: +/* 10E5D0 7F0D9AA0 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10E5D4 7F0D9AA4 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10E5D8 7F0D9AA8 97B8014A */ lhu $t8, 0x14a($sp) +/* 10E5DC 7F0D9AAC 030D4821 */ addu $t1, $t8, $t5 +/* 10E5E0 7F0D9AB0 912B0000 */ lbu $t3, ($t1) +/* 10E5E4 7F0D9AB4 020BC823 */ subu $t9, $s0, $t3 +/* 10E5E8 7F0D9AB8 332A01FF */ andi $t2, $t9, 0x1ff +/* 10E5EC 7F0D9ABC 314EFFFF */ andi $t6, $t2, 0xffff +/* 10E5F0 7F0D9AC0 2DC80001 */ sltiu $t0, $t6, 1 +/* 10E5F4 7F0D9AC4 320E000F */ andi $t6, $s0, 0xf +/* 10E5F8 7F0D9AC8 3179000F */ andi $t9, $t3, 0xf +/* 10E5FC 7F0D9ACC 01D9602A */ slt $t4, $t6, $t9 +/* 10E600 7F0D9AD0 314F00A8 */ andi $t7, $t2, 0xa8 +/* 10E604 7F0D9AD4 000A6A03 */ sra $t5, $t2, 8 +/* 10E608 7F0D9AD8 01ED4825 */ or $t1, $t7, $t5 +/* 10E60C 7F0D9ADC 000CC100 */ sll $t8, $t4, 4 +/* 10E610 7F0D9AE0 0140C825 */ move $t9, $t2 +/* 10E614 7F0D9AE4 020B6826 */ xor $t5, $s0, $t3 +/* 10E618 7F0D9AE8 31AE0080 */ andi $t6, $t5, 0x80 +/* 10E61C 7F0D9AEC 03306026 */ xor $t4, $t9, $s0 +/* 10E620 7F0D9AF0 01387825 */ or $t7, $t1, $t8 +/* 10E624 7F0D9AF4 01CC4824 */ and $t1, $t6, $t4 +/* 10E628 7F0D9AF8 0009C143 */ sra $t8, $t1, 5 +/* 10E62C 7F0D9AFC A3AB0147 */ sb $t3, 0x147($sp) +/* 10E630 7F0D9B00 01F85825 */ or $t3, $t7, $t8 +/* 10E634 7F0D9B04 A7AA0148 */ sh $t2, 0x148($sp) +/* 10E638 7F0D9B08 00085180 */ sll $t2, $t0, 6 +/* 10E63C 7F0D9B0C 356D0002 */ ori $t5, $t3, 2 +/* 10E640 7F0D9B10 01AA8825 */ or $s1, $t5, $t2 +/* 10E644 7F0D9B14 323900FF */ andi $t9, $s1, 0xff +/* 10E648 7F0D9B18 03208825 */ move $s1, $t9 +/* 10E64C 7F0D9B1C 10002337 */ b .L7F0E27FC +/* 10E650 7F0D9B20 AFA80048 */ sw $t0, 0x48($sp) +spectrum_op_BF: +/* 10E654 7F0D9B24 320900FF */ andi $t1, $s0, 0xff +/* 10E658 7F0D9B28 02097823 */ subu $t7, $s0, $t1 +/* 10E65C 7F0D9B2C 8FAE028C */ lw $t6, 0x28c($sp) +/* 10E660 7F0D9B30 31F801FF */ andi $t8, $t7, 0x1ff +/* 10E664 7F0D9B34 330BFFFF */ andi $t3, $t8, 0xffff +/* 10E668 7F0D9B38 2D680001 */ sltiu $t0, $t3, 1 +/* 10E66C 7F0D9B3C 312B000F */ andi $t3, $t1, 0xf +/* 10E670 7F0D9B40 320F000F */ andi $t7, $s0, 0xf +/* 10E674 7F0D9B44 25CC0004 */ addiu $t4, $t6, 4 +/* 10E678 7F0D9B48 01EB682A */ slt $t5, $t7, $t3 +/* 10E67C 7F0D9B4C AFAC028C */ sw $t4, 0x28c($sp) +/* 10E680 7F0D9B50 00187203 */ sra $t6, $t8, 8 +/* 10E684 7F0D9B54 330A00A8 */ andi $t2, $t8, 0xa8 +/* 10E688 7F0D9B58 014E6025 */ or $t4, $t2, $t6 +/* 10E68C 7F0D9B5C 000DC900 */ sll $t9, $t5, 4 +/* 10E690 7F0D9B60 02097026 */ xor $t6, $s0, $t1 +/* 10E694 7F0D9B64 03005825 */ move $t3, $t8 +/* 10E698 7F0D9B68 01706826 */ xor $t5, $t3, $s0 +/* 10E69C 7F0D9B6C 31CF0080 */ andi $t7, $t6, 0x80 +/* 10E6A0 7F0D9B70 01995025 */ or $t2, $t4, $t9 +/* 10E6A4 7F0D9B74 01ED6024 */ and $t4, $t7, $t5 +/* 10E6A8 7F0D9B78 000CC943 */ sra $t9, $t4, 5 +/* 10E6AC 7F0D9B7C 01594825 */ or $t1, $t2, $t9 +/* 10E6B0 7F0D9B80 A7B80144 */ sh $t8, 0x144($sp) +/* 10E6B4 7F0D9B84 0008C180 */ sll $t8, $t0, 6 +/* 10E6B8 7F0D9B88 352E0002 */ ori $t6, $t1, 2 +/* 10E6BC 7F0D9B8C 01D88825 */ or $s1, $t6, $t8 +/* 10E6C0 7F0D9B90 322B00FF */ andi $t3, $s1, 0xff +/* 10E6C4 7F0D9B94 01608825 */ move $s1, $t3 +/* 10E6C8 7F0D9B98 AFA80048 */ sw $t0, 0x48($sp) +/* 10E6CC 7F0D9B9C 10002317 */ b .L7F0E27FC +/* 10E6D0 7F0D9BA0 A3B00143 */ sb $s0, 0x143($sp) +spectrum_op_C0: +/* 10E6D4 7F0D9BA4 8FAF028C */ lw $t7, 0x28c($sp) +/* 10E6D8 7F0D9BA8 322C0040 */ andi $t4, $s1, 0x40 +/* 10E6DC 7F0D9BAC 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10E6E0 7F0D9BB0 25ED0005 */ addiu $t5, $t7, 5 +/* 10E6E4 7F0D9BB4 15802311 */ bnez $t4, .L7F0E27FC +/* 10E6E8 7F0D9BB8 AFAD028C */ sw $t5, 0x28c($sp) +/* 10E6EC 7F0D9BBC 97A90292 */ lhu $t1, 0x292($sp) +/* 10E6F0 7F0D9BC0 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10E6F4 7F0D9BC4 25B90006 */ addiu $t9, $t5, 6 +/* 10E6F8 7F0D9BC8 AFB9028C */ sw $t9, 0x28c($sp) +/* 10E6FC 7F0D9BCC 01095821 */ addu $t3, $t0, $t1 +/* 10E700 7F0D9BD0 916F0001 */ lbu $t7, 1($t3) +/* 10E704 7F0D9BD4 01287021 */ addu $t6, $t1, $t0 +/* 10E708 7F0D9BD8 91D80000 */ lbu $t8, ($t6) +/* 10E70C 7F0D9BDC 000F6A00 */ sll $t5, $t7, 8 +/* 10E710 7F0D9BE0 252A0002 */ addiu $t2, $t1, 2 +/* 10E714 7F0D9BE4 030D6025 */ or $t4, $t8, $t5 +/* 10E718 7F0D9BE8 A7AC0298 */ sh $t4, 0x298($sp) +/* 10E71C 7F0D9BEC 10002303 */ b .L7F0E27FC +/* 10E720 7F0D9BF0 A7AA0292 */ sh $t2, 0x292($sp) +spectrum_op_C1: +/* 10E724 7F0D9BF4 8FB9028C */ lw $t9, 0x28c($sp) +/* 10E728 7F0D9BF8 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10E72C 7F0D9BFC 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10E730 7F0D9C00 97A80292 */ lhu $t0, 0x292($sp) +/* 10E734 7F0D9C04 272E000A */ addiu $t6, $t9, 0xa +/* 10E738 7F0D9C08 AFAE028C */ sw $t6, 0x28c($sp) +/* 10E73C 7F0D9C0C 010B7821 */ addu $t7, $t0, $t3 +/* 10E740 7F0D9C10 91F30000 */ lbu $s3, ($t7) +/* 10E744 7F0D9C14 91F20001 */ lbu $s2, 1($t7) +/* 10E748 7F0D9C18 25180002 */ addiu $t8, $t0, 2 +/* 10E74C 7F0D9C1C 100022F7 */ b .L7F0E27FC +/* 10E750 7F0D9C20 A7B80292 */ sh $t8, 0x292($sp) +spectrum_op_C2: +/* 10E754 7F0D9C24 8FAD028C */ lw $t5, 0x28c($sp) +/* 10E758 7F0D9C28 32290040 */ andi $t1, $s1, 0x40 +/* 10E75C 7F0D9C2C 97AA0298 */ lhu $t2, 0x298($sp) +/* 10E760 7F0D9C30 25AC000A */ addiu $t4, $t5, 0xa +/* 10E764 7F0D9C34 1520000B */ bnez $t1, .L7F0D9C64 +/* 10E768 7F0D9C38 AFAC028C */ sw $t4, 0x28c($sp) +/* 10E76C 7F0D9C3C 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10E770 7F0D9C40 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10E774 7F0D9C44 032A7821 */ addu $t7, $t9, $t2 +/* 10E778 7F0D9C48 91E80001 */ lbu $t0, 1($t7) +/* 10E77C 7F0D9C4C 01597021 */ addu $t6, $t2, $t9 +/* 10E780 7F0D9C50 91CB0000 */ lbu $t3, ($t6) +/* 10E784 7F0D9C54 0008C200 */ sll $t8, $t0, 8 +/* 10E788 7F0D9C58 01786825 */ or $t5, $t3, $t8 +/* 10E78C 7F0D9C5C 100022E7 */ b .L7F0E27FC +/* 10E790 7F0D9C60 A7AD0298 */ sh $t5, 0x298($sp) +.L7F0D9C64: +/* 10E794 7F0D9C64 97AC0298 */ lhu $t4, 0x298($sp) +/* 10E798 7F0D9C68 25890002 */ addiu $t1, $t4, 2 +/* 10E79C 7F0D9C6C 100022E3 */ b .L7F0E27FC +/* 10E7A0 7F0D9C70 A7A90298 */ sh $t1, 0x298($sp) +spectrum_op_C3: +/* 10E7A4 7F0D9C74 8FAE028C */ lw $t6, 0x28c($sp) +/* 10E7A8 7F0D9C78 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10E7AC 7F0D9C7C 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10E7B0 7F0D9C80 97AA0298 */ lhu $t2, 0x298($sp) +/* 10E7B4 7F0D9C84 25D9000A */ addiu $t9, $t6, 0xa +/* 10E7B8 7F0D9C88 AFB9028C */ sw $t9, 0x28c($sp) +/* 10E7BC 7F0D9C8C 01EAC021 */ addu $t8, $t7, $t2 +/* 10E7C0 7F0D9C90 930D0001 */ lbu $t5, 1($t8) +/* 10E7C4 7F0D9C94 014F4021 */ addu $t0, $t2, $t7 +/* 10E7C8 7F0D9C98 910B0000 */ lbu $t3, ($t0) +/* 10E7CC 7F0D9C9C 000D6200 */ sll $t4, $t5, 8 +/* 10E7D0 7F0D9CA0 016C4825 */ or $t1, $t3, $t4 +/* 10E7D4 7F0D9CA4 100022D5 */ b .L7F0E27FC +/* 10E7D8 7F0D9CA8 A7A90298 */ sh $t1, 0x298($sp) +spectrum_op_C4: +/* 10E7DC 7F0D9CAC 8FAE028C */ lw $t6, 0x28c($sp) +/* 10E7E0 7F0D9CB0 32280040 */ andi $t0, $s1, 0x40 +/* 10E7E4 7F0D9CB4 25D9000A */ addiu $t9, $t6, 0xa +/* 10E7E8 7F0D9CB8 15000072 */ bnez $t0, .L7F0D9E84 +/* 10E7EC 7F0D9CBC AFB9028C */ sw $t9, 0x28c($sp) +/* 10E7F0 7F0D9CC0 97B80292 */ lhu $t8, 0x292($sp) +/* 10E7F4 7F0D9CC4 272A0007 */ addiu $t2, $t9, 7 +/* 10E7F8 7F0D9CC8 AFAA028C */ sw $t2, 0x28c($sp) +/* 10E7FC 7F0D9CCC 270DFFFE */ addiu $t5, $t8, -2 +/* 10E800 7F0D9CD0 31ABFFFF */ andi $t3, $t5, 0xffff +/* 10E804 7F0D9CD4 29615B00 */ slti $at, $t3, 0x5b00 +/* 10E808 7F0D9CD8 14200008 */ bnez $at, .L7F0D9CFC +/* 10E80C 7F0D9CDC A7AD0292 */ sh $t5, 0x292($sp) +/* 10E810 7F0D9CE0 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10E814 7F0D9CE4 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10E818 7F0D9CE8 97AC0298 */ lhu $t4, 0x298($sp) +/* 10E81C 7F0D9CEC 01CBC821 */ addu $t9, $t6, $t3 +/* 10E820 7F0D9CF0 25890002 */ addiu $t1, $t4, 2 +/* 10E824 7F0D9CF4 10000024 */ b .L7F0D9D88 +/* 10E828 7F0D9CF8 A3290000 */ sb $t1, ($t9) +.L7F0D9CFC: +/* 10E82C 7F0D9CFC 97A80292 */ lhu $t0, 0x292($sp) +/* 10E830 7F0D9D00 97B90292 */ lhu $t9, 0x292($sp) +/* 10E834 7F0D9D04 97AF0298 */ lhu $t7, 0x298($sp) +/* 10E838 7F0D9D08 29015800 */ slti $at, $t0, 0x5800 +/* 10E83C 7F0D9D0C 1420000C */ bnez $at, .L7F0D9D40 +/* 10E840 7F0D9D10 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10E844 7F0D9D14 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10E848 7F0D9D18 25EA0002 */ addiu $t2, $t7, 2 +/* 10E84C 7F0D9D1C 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 10E850 7F0D9D20 03086821 */ addu $t5, $t8, $t0 +/* 10E854 7F0D9D24 A1AA0000 */ sb $t2, ($t5) +/* 10E858 7F0D9D28 97AB0292 */ lhu $t3, 0x292($sp) +/* 10E85C 7F0D9D2C 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 10E860 7F0D9D30 240C0001 */ li $t4, 1 +/* 10E864 7F0D9D34 01CB4821 */ addu $t1, $t6, $t3 +/* 10E868 7F0D9D38 10000013 */ b .L7F0D9D88 +/* 10E86C 7F0D9D3C A12CA800 */ sb $t4, -0x5800($t1) +.L7F0D9D40: +/* 10E870 7F0D9D40 2B214000 */ slti $at, $t9, 0x4000 +/* 10E874 7F0D9D44 14200010 */ bnez $at, .L7F0D9D88 +/* 10E878 7F0D9D48 97AF0298 */ lhu $t7, 0x298($sp) +/* 10E87C 7F0D9D4C 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10E880 7F0D9D50 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10E884 7F0D9D54 25F80002 */ addiu $t8, $t7, 2 +/* 10E888 7F0D9D58 240D0001 */ li $t5, 1 +/* 10E88C 7F0D9D5C 01195021 */ addu $t2, $t0, $t9 +/* 10E890 7F0D9D60 A1580000 */ sb $t8, ($t2) +/* 10E894 7F0D9D64 97AE0292 */ lhu $t6, 0x292($sp) +/* 10E898 7F0D9D68 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 10E89C 7F0D9D6C 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 10E8A0 7F0D9D70 31CB1800 */ andi $t3, $t6, 0x1800 +/* 10E8A4 7F0D9D74 000B60C3 */ sra $t4, $t3, 3 +/* 10E8A8 7F0D9D78 31C900FF */ andi $t1, $t6, 0xff +/* 10E8AC 7F0D9D7C 01897825 */ or $t7, $t4, $t1 +/* 10E8B0 7F0D9D80 010FC821 */ addu $t9, $t0, $t7 +/* 10E8B4 7F0D9D84 A32D0000 */ sb $t5, ($t9) +.L7F0D9D88: +/* 10E8B8 7F0D9D88 97B80292 */ lhu $t8, 0x292($sp) +/* 10E8BC 7F0D9D8C 97AF0292 */ lhu $t7, 0x292($sp) +/* 10E8C0 7F0D9D90 97AB0298 */ lhu $t3, 0x298($sp) +/* 10E8C4 7F0D9D94 270A0001 */ addiu $t2, $t8, 1 +/* 10E8C8 7F0D9D98 29415B00 */ slti $at, $t2, 0x5b00 +/* 10E8CC 7F0D9D9C 14200008 */ bnez $at, .L7F0D9DC0 +/* 10E8D0 7F0D9DA0 25ED0001 */ addiu $t5, $t7, 1 +/* 10E8D4 7F0D9DA4 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10E8D8 7F0D9DA8 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10E8DC 7F0D9DAC 256E0002 */ addiu $t6, $t3, 2 +/* 10E8E0 7F0D9DB0 000E6203 */ sra $t4, $t6, 8 +/* 10E8E4 7F0D9DB4 01384021 */ addu $t0, $t1, $t8 +/* 10E8E8 7F0D9DB8 10000027 */ b .L7F0D9E58 +/* 10E8EC 7F0D9DBC A10C0001 */ sb $t4, 1($t0) +.L7F0D9DC0: +/* 10E8F0 7F0D9DC0 29A15800 */ slti $at, $t5, 0x5800 +/* 10E8F4 7F0D9DC4 1420000F */ bnez $at, .L7F0D9E04 +/* 10E8F8 7F0D9DC8 97B90292 */ lhu $t9, 0x292($sp) +/* 10E8FC 7F0D9DCC 97B90298 */ lhu $t9, 0x298($sp) +/* 10E900 7F0D9DD0 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10E904 7F0D9DD4 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10E908 7F0D9DD8 272A0002 */ addiu $t2, $t9, 2 +/* 10E90C 7F0D9DDC 000A5A03 */ sra $t3, $t2, 8 +/* 10E910 7F0D9DE0 01CF4821 */ addu $t1, $t6, $t7 +/* 10E914 7F0D9DE4 A12B0001 */ sb $t3, 1($t1) +/* 10E918 7F0D9DE8 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 10E91C 7F0D9DEC 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 10E920 7F0D9DF0 97A80292 */ lhu $t0, 0x292($sp) +/* 10E924 7F0D9DF4 24180001 */ li $t8, 1 +/* 10E928 7F0D9DF8 01886821 */ addu $t5, $t4, $t0 +/* 10E92C 7F0D9DFC 10000016 */ b .L7F0D9E58 +/* 10E930 7F0D9E00 A1B8A801 */ sb $t8, -0x57ff($t5) +.L7F0D9E04: +/* 10E934 7F0D9E04 272A0001 */ addiu $t2, $t9, 1 +/* 10E938 7F0D9E08 29414000 */ slti $at, $t2, 0x4000 +/* 10E93C 7F0D9E0C 14200012 */ bnez $at, .L7F0D9E58 +/* 10E940 7F0D9E10 97AE0298 */ lhu $t6, 0x298($sp) +/* 10E944 7F0D9E14 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10E948 7F0D9E18 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10E94C 7F0D9E1C 25CF0002 */ addiu $t7, $t6, 2 +/* 10E950 7F0D9E20 000F5A03 */ sra $t3, $t7, 8 +/* 10E954 7F0D9E24 01396021 */ addu $t4, $t1, $t9 +/* 10E958 7F0D9E28 A18B0001 */ sb $t3, 1($t4) +/* 10E95C 7F0D9E2C 97B80292 */ lhu $t8, 0x292($sp) +/* 10E960 7F0D9E30 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 10E964 7F0D9E34 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 10E968 7F0D9E38 270D0001 */ addiu $t5, $t8, 1 +/* 10E96C 7F0D9E3C 31AA1800 */ andi $t2, $t5, 0x1800 +/* 10E970 7F0D9E40 000A70C3 */ sra $t6, $t2, 3 +/* 10E974 7F0D9E44 31AF00FF */ andi $t7, $t5, 0xff +/* 10E978 7F0D9E48 01CF4825 */ or $t1, $t6, $t7 +/* 10E97C 7F0D9E4C 24080001 */ li $t0, 1 +/* 10E980 7F0D9E50 03295821 */ addu $t3, $t9, $t1 +/* 10E984 7F0D9E54 A1680000 */ sb $t0, ($t3) +.L7F0D9E58: +/* 10E988 7F0D9E58 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10E98C 7F0D9E5C 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10E990 7F0D9E60 97AC0298 */ lhu $t4, 0x298($sp) +/* 10E994 7F0D9E64 030C7021 */ addu $t6, $t8, $t4 +/* 10E998 7F0D9E68 91CF0001 */ lbu $t7, 1($t6) +/* 10E99C 7F0D9E6C 01985021 */ addu $t2, $t4, $t8 +/* 10E9A0 7F0D9E70 914D0000 */ lbu $t5, ($t2) +/* 10E9A4 7F0D9E74 000FCA00 */ sll $t9, $t7, 8 +/* 10E9A8 7F0D9E78 01B94825 */ or $t1, $t5, $t9 +/* 10E9AC 7F0D9E7C 1000225F */ b .L7F0E27FC +/* 10E9B0 7F0D9E80 A7A90298 */ sh $t1, 0x298($sp) +.L7F0D9E84: +/* 10E9B4 7F0D9E84 97A80298 */ lhu $t0, 0x298($sp) +/* 10E9B8 7F0D9E88 250B0002 */ addiu $t3, $t0, 2 +/* 10E9BC 7F0D9E8C 1000225B */ b .L7F0E27FC +/* 10E9C0 7F0D9E90 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_C5: +/* 10E9C4 7F0D9E94 97AC0292 */ lhu $t4, 0x292($sp) +/* 10E9C8 7F0D9E98 8FAA028C */ lw $t2, 0x28c($sp) +/* 10E9CC 7F0D9E9C 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10E9D0 7F0D9EA0 258EFFFE */ addiu $t6, $t4, -2 +/* 10E9D4 7F0D9EA4 31CFFFFF */ andi $t7, $t6, 0xffff +/* 10E9D8 7F0D9EA8 29E15B00 */ slti $at, $t7, 0x5b00 +/* 10E9DC 7F0D9EAC 2558000B */ addiu $t8, $t2, 0xb +/* 10E9E0 7F0D9EB0 AFB8028C */ sw $t8, 0x28c($sp) +/* 10E9E4 7F0D9EB4 14200005 */ bnez $at, .L7F0D9ECC +/* 10E9E8 7F0D9EB8 A7AE0292 */ sh $t6, 0x292($sp) +/* 10E9EC 7F0D9EBC 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10E9F0 7F0D9EC0 01AFC821 */ addu $t9, $t5, $t7 +/* 10E9F4 7F0D9EC4 10000021 */ b .L7F0D9F4C +/* 10E9F8 7F0D9EC8 A3330000 */ sb $s3, ($t9) +.L7F0D9ECC: +/* 10E9FC 7F0D9ECC 97A90292 */ lhu $t1, 0x292($sp) +/* 10EA00 7F0D9ED0 97AD0292 */ lhu $t5, 0x292($sp) +/* 10EA04 7F0D9ED4 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10EA08 7F0D9ED8 29215800 */ slti $at, $t1, 0x5800 +/* 10EA0C 7F0D9EDC 5420000C */ bnezl $at, .L7F0D9F10 +/* 10EA10 7F0D9EE0 29A14000 */ slti $at, $t5, 0x4000 +/* 10EA14 7F0D9EE4 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10EA18 7F0D9EE8 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 10EA1C 7F0D9EEC 240A0001 */ li $t2, 1 +/* 10EA20 7F0D9EF0 01095821 */ addu $t3, $t0, $t1 +/* 10EA24 7F0D9EF4 A1730000 */ sb $s3, ($t3) +/* 10EA28 7F0D9EF8 97AC0292 */ lhu $t4, 0x292($sp) +/* 10EA2C 7F0D9EFC 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 10EA30 7F0D9F00 030C7021 */ addu $t6, $t8, $t4 +/* 10EA34 7F0D9F04 10000011 */ b .L7F0D9F4C +/* 10EA38 7F0D9F08 A1CAA800 */ sb $t2, -0x5800($t6) +/* 10EA3C 7F0D9F0C 29A14000 */ slti $at, $t5, 0x4000 +.L7F0D9F10: +/* 10EA40 7F0D9F10 1420000E */ bnez $at, .L7F0D9F4C +/* 10EA44 7F0D9F14 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10EA48 7F0D9F18 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10EA4C 7F0D9F1C 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 10EA50 7F0D9F20 24080001 */ li $t0, 1 +/* 10EA54 7F0D9F24 01EDC821 */ addu $t9, $t7, $t5 +/* 10EA58 7F0D9F28 A3330000 */ sb $s3, ($t9) +/* 10EA5C 7F0D9F2C 97A90292 */ lhu $t1, 0x292($sp) +/* 10EA60 7F0D9F30 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 10EA64 7F0D9F34 312B1800 */ andi $t3, $t1, 0x1800 +/* 10EA68 7F0D9F38 000BC0C3 */ sra $t8, $t3, 3 +/* 10EA6C 7F0D9F3C 312C00FF */ andi $t4, $t1, 0xff +/* 10EA70 7F0D9F40 030C5025 */ or $t2, $t8, $t4 +/* 10EA74 7F0D9F44 01CA7821 */ addu $t7, $t6, $t2 +/* 10EA78 7F0D9F48 A1E80000 */ sb $t0, ($t7) +.L7F0D9F4C: +/* 10EA7C 7F0D9F4C 97AD0292 */ lhu $t5, 0x292($sp) +/* 10EA80 7F0D9F50 97B80292 */ lhu $t8, 0x292($sp) +/* 10EA84 7F0D9F54 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10EA88 7F0D9F58 25B90001 */ addiu $t9, $t5, 1 +/* 10EA8C 7F0D9F5C 2B215B00 */ slti $at, $t9, 0x5b00 +/* 10EA90 7F0D9F60 14200005 */ bnez $at, .L7F0D9F78 +/* 10EA94 7F0D9F64 270C0001 */ addiu $t4, $t8, 1 +/* 10EA98 7F0D9F68 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10EA9C 7F0D9F6C 016D4821 */ addu $t1, $t3, $t5 +/* 10EAA0 7F0D9F70 10002222 */ b .L7F0E27FC +/* 10EAA4 7F0D9F74 A1320001 */ sb $s2, 1($t1) +.L7F0D9F78: +/* 10EAA8 7F0D9F78 29815800 */ slti $at, $t4, 0x5800 +/* 10EAAC 7F0D9F7C 1420000C */ bnez $at, .L7F0D9FB0 +/* 10EAB0 7F0D9F80 97AD0292 */ lhu $t5, 0x292($sp) +/* 10EAB4 7F0D9F84 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10EAB8 7F0D9F88 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10EABC 7F0D9F8C 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 10EAC0 7F0D9F90 24080001 */ li $t0, 1 +/* 10EAC4 7F0D9F94 01D85021 */ addu $t2, $t6, $t8 +/* 10EAC8 7F0D9F98 A1520001 */ sb $s2, 1($t2) +/* 10EACC 7F0D9F9C 97B90292 */ lhu $t9, 0x292($sp) +/* 10EAD0 7F0D9FA0 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 10EAD4 7F0D9FA4 01F95821 */ addu $t3, $t7, $t9 +/* 10EAD8 7F0D9FA8 10002214 */ b .L7F0E27FC +/* 10EADC 7F0D9FAC A168A801 */ sb $t0, -0x57ff($t3) +.L7F0D9FB0: +/* 10EAE0 7F0D9FB0 25A90001 */ addiu $t1, $t5, 1 +/* 10EAE4 7F0D9FB4 29214000 */ slti $at, $t1, 0x4000 +/* 10EAE8 7F0D9FB8 14202210 */ bnez $at, .L7F0E27FC +/* 10EAEC 7F0D9FBC 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 10EAF0 7F0D9FC0 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 10EAF4 7F0D9FC4 24180001 */ li $t8, 1 +/* 10EAF8 7F0D9FC8 018D7021 */ addu $t6, $t4, $t5 +/* 10EAFC 7F0D9FCC A1D20001 */ sb $s2, 1($t6) +/* 10EB00 7F0D9FD0 97AA0292 */ lhu $t2, 0x292($sp) +/* 10EB04 7F0D9FD4 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 10EB08 7F0D9FD8 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 10EB0C 7F0D9FDC 254F0001 */ addiu $t7, $t2, 1 +/* 10EB10 7F0D9FE0 31F91800 */ andi $t9, $t7, 0x1800 +/* 10EB14 7F0D9FE4 001940C3 */ sra $t0, $t9, 3 +/* 10EB18 7F0D9FE8 31EB00FF */ andi $t3, $t7, 0xff +/* 10EB1C 7F0D9FEC 010B4825 */ or $t1, $t0, $t3 +/* 10EB20 7F0D9FF0 01896821 */ addu $t5, $t4, $t1 +/* 10EB24 7F0D9FF4 10002201 */ b .L7F0E27FC +/* 10EB28 7F0D9FF8 A1B80000 */ sb $t8, ($t5) +spectrum_op_C6: +/* 10EB2C 7F0D9FFC 8FAE028C */ lw $t6, 0x28c($sp) +/* 10EB30 7F0DA000 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 10EB34 7F0DA004 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 10EB38 7F0DA008 97B90298 */ lhu $t9, 0x298($sp) +/* 10EB3C 7F0DA00C 25CA0007 */ addiu $t2, $t6, 7 +/* 10EB40 7F0DA010 AFAA028C */ sw $t2, 0x28c($sp) +/* 10EB44 7F0DA014 032F4021 */ addu $t0, $t9, $t7 +/* 10EB48 7F0DA018 910B0000 */ lbu $t3, ($t0) +/* 10EB4C 7F0DA01C 3219000F */ andi $t9, $s0, 0xf +/* 10EB50 7F0DA020 2401000F */ li $at, 15 +/* 10EB54 7F0DA024 020B4821 */ addu $t1, $s0, $t3 +/* 10EB58 7F0DA028 316A000F */ andi $t2, $t3, 0xf +/* 10EB5C 7F0DA02C 032A7821 */ addu $t7, $t9, $t2 +/* 10EB60 7F0DA030 313800A8 */ andi $t8, $t1, 0xa8 +/* 10EB64 7F0DA034 00096A03 */ sra $t5, $t1, 8 +/* 10EB68 7F0DA038 030D7025 */ or $t6, $t8, $t5 +/* 10EB6C 7F0DA03C 02006827 */ not $t5, $s0 +/* 10EB70 7F0DA040 002F402A */ slt $t0, $at, $t7 +/* 10EB74 7F0DA044 01307826 */ xor $t7, $t1, $s0 +/* 10EB78 7F0DA048 A7A90140 */ sh $t1, 0x140($sp) +/* 10EB7C 7F0DA04C 01ABC826 */ xor $t9, $t5, $t3 +/* 10EB80 7F0DA050 93B00141 */ lbu $s0, 0x141($sp) +/* 10EB84 7F0DA054 332A0080 */ andi $t2, $t9, 0x80 +/* 10EB88 7F0DA058 00086100 */ sll $t4, $t0, 4 +/* 10EB8C 7F0DA05C 014F4024 */ and $t0, $t2, $t7 +/* 10EB90 7F0DA060 01CCC025 */ or $t8, $t6, $t4 +/* 10EB94 7F0DA064 97AA0298 */ lhu $t2, 0x298($sp) +/* 10EB98 7F0DA068 00087143 */ sra $t6, $t0, 5 +/* 10EB9C 7F0DA06C 2E0D0001 */ sltiu $t5, $s0, 1 +/* 10EBA0 7F0DA070 000DC980 */ sll $t9, $t5, 6 +/* 10EBA4 7F0DA074 030E6025 */ or $t4, $t8, $t6 +/* 10EBA8 7F0DA078 01998825 */ or $s1, $t4, $t9 +/* 10EBAC 7F0DA07C 322900FF */ andi $t1, $s1, 0xff +/* 10EBB0 7F0DA080 254F0001 */ addiu $t7, $t2, 1 +/* 10EBB4 7F0DA084 01208825 */ move $s1, $t1 +/* 10EBB8 7F0DA088 AFAD0048 */ sw $t5, 0x48($sp) +/* 10EBBC 7F0DA08C A7AF0298 */ sh $t7, 0x298($sp) +/* 10EBC0 7F0DA090 100021DA */ b .L7F0E27FC +/* 10EBC4 7F0DA094 A3AB013F */ sb $t3, 0x13f($sp) +spectrum_op_C7: +/* 10EBC8 7F0DA098 97AE0292 */ lhu $t6, 0x292($sp) +/* 10EBCC 7F0DA09C 8FA8028C */ lw $t0, 0x28c($sp) +/* 10EBD0 7F0DA0A0 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10EBD4 7F0DA0A4 25CCFFFE */ addiu $t4, $t6, -2 +/* 10EBD8 7F0DA0A8 318DFFFF */ andi $t5, $t4, 0xffff +/* 10EBDC 7F0DA0AC 29A15B00 */ slti $at, $t5, 0x5b00 +/* 10EBE0 7F0DA0B0 2518000B */ addiu $t8, $t0, 0xb +/* 10EBE4 7F0DA0B4 AFB8028C */ sw $t8, 0x28c($sp) +/* 10EBE8 7F0DA0B8 14200006 */ bnez $at, .L7F0DA0D4 +/* 10EBEC 7F0DA0BC A7AC0292 */ sh $t4, 0x292($sp) +/* 10EBF0 7F0DA0C0 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10EBF4 7F0DA0C4 97AB0298 */ lhu $t3, 0x298($sp) +/* 10EBF8 7F0DA0C8 032D4821 */ addu $t1, $t9, $t5 +/* 10EBFC 7F0DA0CC 10000023 */ b .L7F0DA15C +/* 10EC00 7F0DA0D0 A12B0000 */ sb $t3, ($t1) +.L7F0DA0D4: +/* 10EC04 7F0DA0D4 97AA0292 */ lhu $t2, 0x292($sp) +/* 10EC08 7F0DA0D8 97AB0292 */ lhu $t3, 0x292($sp) +/* 10EC0C 7F0DA0DC 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10EC10 7F0DA0E0 29415800 */ slti $at, $t2, 0x5800 +/* 10EC14 7F0DA0E4 5420000D */ bnezl $at, .L7F0DA11C +/* 10EC18 7F0DA0E8 29614000 */ slti $at, $t3, 0x4000 +/* 10EC1C 7F0DA0EC 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10EC20 7F0DA0F0 97AF0298 */ lhu $t7, 0x298($sp) +/* 10EC24 7F0DA0F4 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 10EC28 7F0DA0F8 010AC021 */ addu $t8, $t0, $t2 +/* 10EC2C 7F0DA0FC A30F0000 */ sb $t7, ($t8) +/* 10EC30 7F0DA100 97B90292 */ lhu $t9, 0x292($sp) +/* 10EC34 7F0DA104 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 10EC38 7F0DA108 240E0001 */ li $t6, 1 +/* 10EC3C 7F0DA10C 01996821 */ addu $t5, $t4, $t9 +/* 10EC40 7F0DA110 10000012 */ b .L7F0DA15C +/* 10EC44 7F0DA114 A1AEA800 */ sb $t6, -0x5800($t5) +/* 10EC48 7F0DA118 29614000 */ slti $at, $t3, 0x4000 +.L7F0DA11C: +/* 10EC4C 7F0DA11C 1420000F */ bnez $at, .L7F0DA15C +/* 10EC50 7F0DA120 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10EC54 7F0DA124 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10EC58 7F0DA128 97A90298 */ lhu $t1, 0x298($sp) +/* 10EC5C 7F0DA12C 240F0001 */ li $t7, 1 +/* 10EC60 7F0DA130 010B5021 */ addu $t2, $t0, $t3 +/* 10EC64 7F0DA134 A1490000 */ sb $t1, ($t2) +/* 10EC68 7F0DA138 97B80292 */ lhu $t8, 0x292($sp) +/* 10EC6C 7F0DA13C 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 10EC70 7F0DA140 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 10EC74 7F0DA144 330C1800 */ andi $t4, $t8, 0x1800 +/* 10EC78 7F0DA148 000CC8C3 */ sra $t9, $t4, 3 +/* 10EC7C 7F0DA14C 330E00FF */ andi $t6, $t8, 0xff +/* 10EC80 7F0DA150 032E6825 */ or $t5, $t9, $t6 +/* 10EC84 7F0DA154 010D5821 */ addu $t3, $t0, $t5 +/* 10EC88 7F0DA158 A16F0000 */ sb $t7, ($t3) +.L7F0DA15C: +/* 10EC8C 7F0DA15C 97A90292 */ lhu $t1, 0x292($sp) +/* 10EC90 7F0DA160 97A80292 */ lhu $t0, 0x292($sp) +/* 10EC94 7F0DA164 97AC0298 */ lhu $t4, 0x298($sp) +/* 10EC98 7F0DA168 252A0001 */ addiu $t2, $t1, 1 +/* 10EC9C 7F0DA16C 29415B00 */ slti $at, $t2, 0x5b00 +/* 10ECA0 7F0DA170 14200007 */ bnez $at, .L7F0DA190 +/* 10ECA4 7F0DA174 250D0001 */ addiu $t5, $t0, 1 +/* 10ECA8 7F0DA178 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10ECAC 7F0DA17C 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10ECB0 7F0DA180 000CC203 */ sra $t8, $t4, 8 +/* 10ECB4 7F0DA184 03297021 */ addu $t6, $t9, $t1 +/* 10ECB8 7F0DA188 10000025 */ b .L7F0DA220 +/* 10ECBC 7F0DA18C A1D80001 */ sb $t8, 1($t6) +.L7F0DA190: +/* 10ECC0 7F0DA190 29A15800 */ slti $at, $t5, 0x5800 +/* 10ECC4 7F0DA194 1420000E */ bnez $at, .L7F0DA1D0 +/* 10ECC8 7F0DA198 97AD0292 */ lhu $t5, 0x292($sp) +/* 10ECCC 7F0DA19C 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 10ECD0 7F0DA1A0 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 10ECD4 7F0DA1A4 97AF0298 */ lhu $t7, 0x298($sp) +/* 10ECD8 7F0DA1A8 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 10ECDC 7F0DA1AC 01486021 */ addu $t4, $t2, $t0 +/* 10ECE0 7F0DA1B0 000F5A03 */ sra $t3, $t7, 8 +/* 10ECE4 7F0DA1B4 A18B0001 */ sb $t3, 1($t4) +/* 10ECE8 7F0DA1B8 97B80292 */ lhu $t8, 0x292($sp) +/* 10ECEC 7F0DA1BC 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 10ECF0 7F0DA1C0 24190001 */ li $t9, 1 +/* 10ECF4 7F0DA1C4 01387021 */ addu $t6, $t1, $t8 +/* 10ECF8 7F0DA1C8 10000015 */ b .L7F0DA220 +/* 10ECFC 7F0DA1CC A1D9A801 */ sb $t9, -0x57ff($t6) +.L7F0DA1D0: +/* 10ED00 7F0DA1D0 25AF0001 */ addiu $t7, $t5, 1 +/* 10ED04 7F0DA1D4 29E14000 */ slti $at, $t7, 0x4000 +/* 10ED08 7F0DA1D8 14200011 */ bnez $at, .L7F0DA220 +/* 10ED0C 7F0DA1DC 97AA0298 */ lhu $t2, 0x298($sp) +/* 10ED10 7F0DA1E0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10ED14 7F0DA1E4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10ED18 7F0DA1E8 000A4203 */ sra $t0, $t2, 8 +/* 10ED1C 7F0DA1EC 24090001 */ li $t1, 1 +/* 10ED20 7F0DA1F0 016D6021 */ addu $t4, $t3, $t5 +/* 10ED24 7F0DA1F4 A1880001 */ sb $t0, 1($t4) +/* 10ED28 7F0DA1F8 97B80292 */ lhu $t8, 0x292($sp) +/* 10ED2C 7F0DA1FC 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 10ED30 7F0DA200 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 10ED34 7F0DA204 27190001 */ addiu $t9, $t8, 1 +/* 10ED38 7F0DA208 332E1800 */ andi $t6, $t9, 0x1800 +/* 10ED3C 7F0DA20C 000E78C3 */ sra $t7, $t6, 3 +/* 10ED40 7F0DA210 332A00FF */ andi $t2, $t9, 0xff +/* 10ED44 7F0DA214 01EA5825 */ or $t3, $t7, $t2 +/* 10ED48 7F0DA218 01AB4021 */ addu $t0, $t5, $t3 +/* 10ED4C 7F0DA21C A1090000 */ sb $t1, ($t0) +.L7F0DA220: +/* 10ED50 7F0DA220 10002176 */ b .L7F0E27FC +/* 10ED54 7F0DA224 A7A00298 */ sh $zero, 0x298($sp) +spectrum_op_C8: +/* 10ED58 7F0DA228 8FAC028C */ lw $t4, 0x28c($sp) +/* 10ED5C 7F0DA22C 322E0040 */ andi $t6, $s1, 0x40 +/* 10ED60 7F0DA230 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10ED64 7F0DA234 25980005 */ addiu $t8, $t4, 5 +/* 10ED68 7F0DA238 11C02170 */ beqz $t6, .L7F0E27FC +/* 10ED6C 7F0DA23C AFB8028C */ sw $t8, 0x28c($sp) +/* 10ED70 7F0DA240 97AA0292 */ lhu $t2, 0x292($sp) +/* 10ED74 7F0DA244 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10ED78 7F0DA248 270F0006 */ addiu $t7, $t8, 6 +/* 10ED7C 7F0DA24C AFAF028C */ sw $t7, 0x28c($sp) +/* 10ED80 7F0DA250 01AA4021 */ addu $t0, $t5, $t2 +/* 10ED84 7F0DA254 910C0001 */ lbu $t4, 1($t0) +/* 10ED88 7F0DA258 014D5821 */ addu $t3, $t2, $t5 +/* 10ED8C 7F0DA25C 91690000 */ lbu $t1, ($t3) +/* 10ED90 7F0DA260 000CC200 */ sll $t8, $t4, 8 +/* 10ED94 7F0DA264 25590002 */ addiu $t9, $t2, 2 +/* 10ED98 7F0DA268 01387025 */ or $t6, $t1, $t8 +/* 10ED9C 7F0DA26C A7AE0298 */ sh $t6, 0x298($sp) +/* 10EDA0 7F0DA270 10002162 */ b .L7F0E27FC +/* 10EDA4 7F0DA274 A7B90292 */ sh $t9, 0x292($sp) +spectrum_op_C9: +/* 10EDA8 7F0DA278 8FAF028C */ lw $t7, 0x28c($sp) +/* 10EDAC 7F0DA27C 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10EDB0 7F0DA280 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10EDB4 7F0DA284 97AC0292 */ lhu $t4, 0x292($sp) +/* 10EDB8 7F0DA288 25EB0004 */ addiu $t3, $t7, 4 +/* 10EDBC 7F0DA28C AFAB028C */ sw $t3, 0x28c($sp) +/* 10EDC0 7F0DA290 25680006 */ addiu $t0, $t3, 6 +/* 10EDC4 7F0DA294 AFA8028C */ sw $t0, 0x28c($sp) +/* 10EDC8 7F0DA298 012C5021 */ addu $t2, $t1, $t4 +/* 10EDCC 7F0DA29C 91590001 */ lbu $t9, 1($t2) +/* 10EDD0 7F0DA2A0 0189C021 */ addu $t8, $t4, $t1 +/* 10EDD4 7F0DA2A4 930E0000 */ lbu $t6, ($t8) +/* 10EDD8 7F0DA2A8 00197A00 */ sll $t7, $t9, 8 +/* 10EDDC 7F0DA2AC 258D0002 */ addiu $t5, $t4, 2 +/* 10EDE0 7F0DA2B0 01CF5825 */ or $t3, $t6, $t7 +/* 10EDE4 7F0DA2B4 A7AB0298 */ sh $t3, 0x298($sp) +/* 10EDE8 7F0DA2B8 10002150 */ b .L7F0E27FC +/* 10EDEC 7F0DA2BC A7AD0292 */ sh $t5, 0x292($sp) +spectrum_op_CA: +/* 10EDF0 7F0DA2C0 8FA8028C */ lw $t0, 0x28c($sp) +/* 10EDF4 7F0DA2C4 32290040 */ andi $t1, $s1, 0x40 +/* 10EDF8 7F0DA2C8 97AA0298 */ lhu $t2, 0x298($sp) +/* 10EDFC 7F0DA2CC 2518000A */ addiu $t8, $t0, 0xa +/* 10EE00 7F0DA2D0 1120000B */ beqz $t1, .L7F0DA300 +/* 10EE04 7F0DA2D4 AFB8028C */ sw $t8, 0x28c($sp) +/* 10EE08 7F0DA2D8 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10EE0C 7F0DA2DC 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10EE10 7F0DA2E0 032A5821 */ addu $t3, $t9, $t2 +/* 10EE14 7F0DA2E4 916C0001 */ lbu $t4, 1($t3) +/* 10EE18 7F0DA2E8 01597021 */ addu $t6, $t2, $t9 +/* 10EE1C 7F0DA2EC 91CF0000 */ lbu $t7, ($t6) +/* 10EE20 7F0DA2F0 000C6A00 */ sll $t5, $t4, 8 +/* 10EE24 7F0DA2F4 01ED4025 */ or $t0, $t7, $t5 +/* 10EE28 7F0DA2F8 10002140 */ b .L7F0E27FC +/* 10EE2C 7F0DA2FC A7A80298 */ sh $t0, 0x298($sp) +.L7F0DA300: +/* 10EE30 7F0DA300 97B80298 */ lhu $t8, 0x298($sp) +/* 10EE34 7F0DA304 27090002 */ addiu $t1, $t8, 2 +/* 10EE38 7F0DA308 1000213C */ b .L7F0E27FC +/* 10EE3C 7F0DA30C A7A90298 */ sh $t1, 0x298($sp) +spectrum_op_CB: +/* 10EE40 7F0DA310 8FAE028C */ lw $t6, 0x28c($sp) +/* 10EE44 7F0DA314 93AA0287 */ lbu $t2, 0x287($sp) +/* 10EE48 7F0DA318 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10EE4C 7F0DA31C 25D90004 */ addiu $t9, $t6, 4 +/* 10EE50 7F0DA320 1140001F */ beqz $t2, .L7F0DA3A0 +/* 10EE54 7F0DA324 AFB9028C */ sw $t9, 0x28c($sp) +/* 10EE58 7F0DA328 24010001 */ li $at, 1 +/* 10EE5C 7F0DA32C 15410004 */ bne $t2, $at, .L7F0DA340 +/* 10EE60 7F0DA330 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10EE64 7F0DA334 97AB0296 */ lhu $t3, 0x296($sp) +/* 10EE68 7F0DA338 10000003 */ b .L7F0DA348 +/* 10EE6C 7F0DA33C AFAB0048 */ sw $t3, 0x48($sp) +.L7F0DA340: +/* 10EE70 7F0DA340 97AC0294 */ lhu $t4, 0x294($sp) +/* 10EE74 7F0DA344 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0DA348: +/* 10EE78 7F0DA348 97AF0298 */ lhu $t7, 0x298($sp) +/* 10EE7C 7F0DA34C 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10EE80 7F0DA350 8FA90048 */ lw $t1, 0x48($sp) +/* 10EE84 7F0DA354 8FAA028C */ lw $t2, 0x28c($sp) +/* 10EE88 7F0DA358 01ED4021 */ addu $t0, $t7, $t5 +/* 10EE8C 7F0DA35C 81180000 */ lb $t8, ($t0) +/* 10EE90 7F0DA360 25F90001 */ addiu $t9, $t7, 1 +/* 10EE94 7F0DA364 332CFFFF */ andi $t4, $t9, 0xffff +/* 10EE98 7F0DA368 254B0008 */ addiu $t3, $t2, 8 +/* 10EE9C 7F0DA36C 03097021 */ addu $t6, $t8, $t1 +/* 10EEA0 7F0DA370 A7AE013C */ sh $t6, 0x13c($sp) +/* 10EEA4 7F0DA374 A7B90298 */ sh $t9, 0x298($sp) +/* 10EEA8 7F0DA378 AFAB028C */ sw $t3, 0x28c($sp) +/* 10EEAC 7F0DA37C 018D4021 */ addu $t0, $t4, $t5 +/* 10EEB0 7F0DA380 91180000 */ lbu $t8, ($t0) +/* 10EEB4 7F0DA384 330E00F8 */ andi $t6, $t8, 0xf8 +/* 10EEB8 7F0DA388 35CF0006 */ ori $t7, $t6, 6 +/* 10EEBC 7F0DA38C A3B8013B */ sb $t8, 0x13b($sp) +/* 10EEC0 7F0DA390 33090007 */ andi $t1, $t8, 7 +/* 10EEC4 7F0DA394 A3A9013A */ sb $t1, 0x13a($sp) +/* 10EEC8 7F0DA398 1000000F */ b .L7F0DA3D8 +/* 10EECC 7F0DA39C A3AF013B */ sb $t7, 0x13b($sp) +.L7F0DA3A0: +/* 10EED0 7F0DA3A0 97AA0298 */ lhu $t2, 0x298($sp) +/* 10EED4 7F0DA3A4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10EED8 7F0DA3A8 8FAD028C */ lw $t5, 0x28c($sp) +/* 10EEDC 7F0DA3AC 8FA90288 */ lw $t1, 0x288($sp) +/* 10EEE0 7F0DA3B0 014BC821 */ addu $t9, $t2, $t3 +/* 10EEE4 7F0DA3B4 932C0000 */ lbu $t4, ($t9) +/* 10EEE8 7F0DA3B8 00167200 */ sll $t6, $s6, 8 +/* 10EEEC 7F0DA3BC 01D77825 */ or $t7, $t6, $s7 +/* 10EEF0 7F0DA3C0 25A80004 */ addiu $t0, $t5, 4 +/* 10EEF4 7F0DA3C4 25380001 */ addiu $t8, $t1, 1 +/* 10EEF8 7F0DA3C8 AFA8028C */ sw $t0, 0x28c($sp) +/* 10EEFC 7F0DA3CC AFB80288 */ sw $t8, 0x288($sp) +/* 10EF00 7F0DA3D0 A7AF013C */ sh $t7, 0x13c($sp) +/* 10EF04 7F0DA3D4 A3AC013B */ sb $t4, 0x13b($sp) +.L7F0DA3D8: +/* 10EF08 7F0DA3D8 97AA0298 */ lhu $t2, 0x298($sp) +/* 10EF0C 7F0DA3DC 93B9013B */ lbu $t9, 0x13b($sp) +/* 10EF10 7F0DA3E0 93AF013B */ lbu $t7, 0x13b($sp) +/* 10EF14 7F0DA3E4 254B0001 */ addiu $t3, $t2, 1 +/* 10EF18 7F0DA3E8 2B210040 */ slti $at, $t9, 0x40 +spectrum_op_CB_40_FF: +/* 10EF1C 7F0DA3EC 102006A4 */ beqz $at, .L7F0DBE80 +/* 10EF20 7F0DA3F0 A7AB0298 */ sh $t3, 0x298($sp) +/* 10EF24 7F0DA3F4 2F210040 */ sltiu $at, $t9, 0x40 +def_7F0DBF10: +/* 10EF28 7F0DA3F8 10200867 */ beqz $at, .L7F0DC598 +/* 10EF2C 7F0DA3FC 0019C880 */ sll $t9, $t9, 2 +/* 10EF30 7F0DA400 3C018006 */ lui $at, %hi(jpt_8005C52C) +/* 10EF34 7F0DA404 00390821 */ addu $at, $at, $t9 +/* 10EF38 7F0DA408 8C39C52C */ lw $t9, %lo(jpt_8005C52C)($at) +/* 10EF3C 7F0DA40C 03200008 */ jr $t9 +/* 10EF40 7F0DA410 00000000 */ nop +spectrum_op_CB_00: +/* 10EF44 7F0DA414 00126040 */ sll $t4, $s2, 1 +/* 10EF48 7F0DA418 001269C3 */ sra $t5, $s2, 7 +/* 10EF4C 7F0DA41C 018D9025 */ or $s2, $t4, $t5 +/* 10EF50 7F0DA420 324800FF */ andi $t0, $s2, 0xff +/* 10EF54 7F0DA424 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 10EF58 7F0DA428 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 10EF5C 7F0DA42C 2D090001 */ sltiu $t1, $t0, 1 +/* 10EF60 7F0DA430 AFA90048 */ sw $t1, 0x48($sp) +/* 10EF64 7F0DA434 01009025 */ move $s2, $t0 +/* 10EF68 7F0DA438 31180001 */ andi $t8, $t0, 1 +/* 10EF6C 7F0DA43C 310E00A8 */ andi $t6, $t0, 0xa8 +/* 10EF70 7F0DA440 010C6821 */ addu $t5, $t0, $t4 +/* 10EF74 7F0DA444 91A80000 */ lbu $t0, ($t5) +/* 10EF78 7F0DA448 030E7825 */ or $t7, $t8, $t6 +/* 10EF7C 7F0DA44C 00095980 */ sll $t3, $t1, 6 +/* 10EF80 7F0DA450 01EBC825 */ or $t9, $t7, $t3 +/* 10EF84 7F0DA454 01198825 */ or $s1, $t0, $t9 +/* 10EF88 7F0DA458 322900FF */ andi $t1, $s1, 0xff +/* 10EF8C 7F0DA45C 1000084E */ b .L7F0DC598 +/* 10EF90 7F0DA460 01208825 */ move $s1, $t1 +spectrum_op_CB_01: +/* 10EF94 7F0DA464 0013C040 */ sll $t8, $s3, 1 +/* 10EF98 7F0DA468 001371C3 */ sra $t6, $s3, 7 +/* 10EF9C 7F0DA46C 030E9825 */ or $s3, $t8, $t6 +/* 10EFA0 7F0DA470 326A00FF */ andi $t2, $s3, 0xff +/* 10EFA4 7F0DA474 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 10EFA8 7F0DA478 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 10EFAC 7F0DA47C 2D4F0001 */ sltiu $t7, $t2, 1 +/* 10EFB0 7F0DA480 AFAF0048 */ sw $t7, 0x48($sp) +/* 10EFB4 7F0DA484 01409825 */ move $s3, $t2 +/* 10EFB8 7F0DA488 314B0001 */ andi $t3, $t2, 1 +/* 10EFBC 7F0DA48C 314C00A8 */ andi $t4, $t2, 0xa8 +/* 10EFC0 7F0DA490 01587021 */ addu $t6, $t2, $t8 +/* 10EFC4 7F0DA494 91CA0000 */ lbu $t2, ($t6) +/* 10EFC8 7F0DA498 016C6825 */ or $t5, $t3, $t4 +/* 10EFCC 7F0DA49C 000FC980 */ sll $t9, $t7, 6 +/* 10EFD0 7F0DA4A0 01B94825 */ or $t1, $t5, $t9 +/* 10EFD4 7F0DA4A4 01498825 */ or $s1, $t2, $t1 +/* 10EFD8 7F0DA4A8 322F00FF */ andi $t7, $s1, 0xff +/* 10EFDC 7F0DA4AC 1000083A */ b .L7F0DC598 +/* 10EFE0 7F0DA4B0 01E08825 */ move $s1, $t7 +spectrum_op_CB_02: +/* 10EFE4 7F0DA4B4 00145840 */ sll $t3, $s4, 1 +/* 10EFE8 7F0DA4B8 001461C3 */ sra $t4, $s4, 7 +/* 10EFEC 7F0DA4BC 016CA025 */ or $s4, $t3, $t4 +/* 10EFF0 7F0DA4C0 328800FF */ andi $t0, $s4, 0xff +/* 10EFF4 7F0DA4C4 3C0B8009 */ lui $t3, %hi(ptr_pc_keyboard_table_alloc) +/* 10EFF8 7F0DA4C8 8D6BE334 */ lw $t3, %lo(ptr_pc_keyboard_table_alloc)($t3) +/* 10EFFC 7F0DA4CC 2D0D0001 */ sltiu $t5, $t0, 1 +/* 10F000 7F0DA4D0 AFAD0048 */ sw $t5, 0x48($sp) +/* 10F004 7F0DA4D4 0100A025 */ move $s4, $t0 +/* 10F008 7F0DA4D8 31190001 */ andi $t9, $t0, 1 +/* 10F00C 7F0DA4DC 311800A8 */ andi $t8, $t0, 0xa8 +/* 10F010 7F0DA4E0 010B6021 */ addu $t4, $t0, $t3 +/* 10F014 7F0DA4E4 91880000 */ lbu $t0, ($t4) +/* 10F018 7F0DA4E8 03387025 */ or $t6, $t9, $t8 +/* 10F01C 7F0DA4EC 000D4980 */ sll $t1, $t5, 6 +/* 10F020 7F0DA4F0 01C97825 */ or $t7, $t6, $t1 +/* 10F024 7F0DA4F4 010F8825 */ or $s1, $t0, $t7 +/* 10F028 7F0DA4F8 322D00FF */ andi $t5, $s1, 0xff +/* 10F02C 7F0DA4FC 10000826 */ b .L7F0DC598 +/* 10F030 7F0DA500 01A08825 */ move $s1, $t5 +spectrum_op_CB_03: +/* 10F034 7F0DA504 0015C840 */ sll $t9, $s5, 1 +/* 10F038 7F0DA508 0015C1C3 */ sra $t8, $s5, 7 +/* 10F03C 7F0DA50C 0338A825 */ or $s5, $t9, $t8 +/* 10F040 7F0DA510 32AA00FF */ andi $t2, $s5, 0xff +/* 10F044 7F0DA514 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 10F048 7F0DA518 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 10F04C 7F0DA51C 2D4E0001 */ sltiu $t6, $t2, 1 +/* 10F050 7F0DA520 AFAE0048 */ sw $t6, 0x48($sp) +/* 10F054 7F0DA524 0140A825 */ move $s5, $t2 +/* 10F058 7F0DA528 31490001 */ andi $t1, $t2, 1 +/* 10F05C 7F0DA52C 314B00A8 */ andi $t3, $t2, 0xa8 +/* 10F060 7F0DA530 0159C021 */ addu $t8, $t2, $t9 +/* 10F064 7F0DA534 930A0000 */ lbu $t2, ($t8) +/* 10F068 7F0DA538 012B6025 */ or $t4, $t1, $t3 +/* 10F06C 7F0DA53C 000E7980 */ sll $t7, $t6, 6 +/* 10F070 7F0DA540 018F6825 */ or $t5, $t4, $t7 +/* 10F074 7F0DA544 014D8825 */ or $s1, $t2, $t5 +/* 10F078 7F0DA548 322E00FF */ andi $t6, $s1, 0xff +/* 10F07C 7F0DA54C 10000812 */ b .L7F0DC598 +/* 10F080 7F0DA550 01C08825 */ move $s1, $t6 +spectrum_op_CB_04: +/* 10F084 7F0DA554 00164840 */ sll $t1, $s6, 1 +/* 10F088 7F0DA558 001659C3 */ sra $t3, $s6, 7 +/* 10F08C 7F0DA55C 012BB025 */ or $s6, $t1, $t3 +/* 10F090 7F0DA560 32C800FF */ andi $t0, $s6, 0xff +/* 10F094 7F0DA564 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 10F098 7F0DA568 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 10F09C 7F0DA56C 2D0C0001 */ sltiu $t4, $t0, 1 +/* 10F0A0 7F0DA570 AFAC0048 */ sw $t4, 0x48($sp) +/* 10F0A4 7F0DA574 0100B025 */ move $s6, $t0 +/* 10F0A8 7F0DA578 310F0001 */ andi $t7, $t0, 1 +/* 10F0AC 7F0DA57C 311900A8 */ andi $t9, $t0, 0xa8 +/* 10F0B0 7F0DA580 01095821 */ addu $t3, $t0, $t1 +/* 10F0B4 7F0DA584 91680000 */ lbu $t0, ($t3) +/* 10F0B8 7F0DA588 01F9C025 */ or $t8, $t7, $t9 +/* 10F0BC 7F0DA58C 000C6980 */ sll $t5, $t4, 6 +/* 10F0C0 7F0DA590 030D7025 */ or $t6, $t8, $t5 +/* 10F0C4 7F0DA594 010E8825 */ or $s1, $t0, $t6 +/* 10F0C8 7F0DA598 322C00FF */ andi $t4, $s1, 0xff +/* 10F0CC 7F0DA59C 100007FE */ b .L7F0DC598 +/* 10F0D0 7F0DA5A0 01808825 */ move $s1, $t4 +spectrum_op_CB_05: +/* 10F0D4 7F0DA5A4 00177840 */ sll $t7, $s7, 1 +/* 10F0D8 7F0DA5A8 0017C9C3 */ sra $t9, $s7, 7 +/* 10F0DC 7F0DA5AC 01F9B825 */ or $s7, $t7, $t9 +/* 10F0E0 7F0DA5B0 32EA00FF */ andi $t2, $s7, 0xff +/* 10F0E4 7F0DA5B4 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 10F0E8 7F0DA5B8 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 10F0EC 7F0DA5BC 2D580001 */ sltiu $t8, $t2, 1 +/* 10F0F0 7F0DA5C0 AFB80048 */ sw $t8, 0x48($sp) +/* 10F0F4 7F0DA5C4 0140B825 */ move $s7, $t2 +/* 10F0F8 7F0DA5C8 314D0001 */ andi $t5, $t2, 1 +/* 10F0FC 7F0DA5CC 314900A8 */ andi $t1, $t2, 0xa8 +/* 10F100 7F0DA5D0 014FC821 */ addu $t9, $t2, $t7 +/* 10F104 7F0DA5D4 932A0000 */ lbu $t2, ($t9) +/* 10F108 7F0DA5D8 01A95825 */ or $t3, $t5, $t1 +/* 10F10C 7F0DA5DC 00187180 */ sll $t6, $t8, 6 +/* 10F110 7F0DA5E0 016E6025 */ or $t4, $t3, $t6 +/* 10F114 7F0DA5E4 014C8825 */ or $s1, $t2, $t4 +/* 10F118 7F0DA5E8 323800FF */ andi $t8, $s1, 0xff +/* 10F11C 7F0DA5EC 100007EA */ b .L7F0DC598 +/* 10F120 7F0DA5F0 03008825 */ move $s1, $t8 +spectrum_op_CB_06: +/* 10F124 7F0DA5F4 8FAD028C */ lw $t5, 0x28c($sp) +/* 10F128 7F0DA5F8 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10F12C 7F0DA5FC 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10F130 7F0DA600 97A8013C */ lhu $t0, 0x13c($sp) +/* 10F134 7F0DA604 25A90007 */ addiu $t1, $t5, 7 +/* 10F138 7F0DA608 AFA9028C */ sw $t1, 0x28c($sp) +/* 10F13C 7F0DA60C 010B7021 */ addu $t6, $t0, $t3 +/* 10F140 7F0DA610 91CF0000 */ lbu $t7, ($t6) +/* 10F144 7F0DA614 000FC840 */ sll $t9, $t7, 1 +/* 10F148 7F0DA618 000F51C3 */ sra $t2, $t7, 7 +/* 10F14C 7F0DA61C 032A6025 */ or $t4, $t9, $t2 +/* 10F150 7F0DA620 319800FF */ andi $t8, $t4, 0xff +/* 10F154 7F0DA624 2F0D0001 */ sltiu $t5, $t8, 1 +/* 10F158 7F0DA628 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 10F15C 7F0DA62C 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 10F160 7F0DA630 318900FF */ andi $t1, $t4, 0xff +/* 10F164 7F0DA634 A3AF0139 */ sb $t7, 0x139($sp) +/* 10F168 7F0DA638 31280001 */ andi $t0, $t1, 1 +/* 10F16C 7F0DA63C 318E00A8 */ andi $t6, $t4, 0xa8 +/* 10F170 7F0DA640 010E7825 */ or $t7, $t0, $t6 +/* 10F174 7F0DA644 A3AC0139 */ sb $t4, 0x139($sp) +/* 10F178 7F0DA648 AFAD0048 */ sw $t5, 0x48($sp) +/* 10F17C 7F0DA64C 01385821 */ addu $t3, $t1, $t8 +/* 10F180 7F0DA650 91680000 */ lbu $t0, ($t3) +/* 10F184 7F0DA654 000DC980 */ sll $t9, $t5, 6 +/* 10F188 7F0DA658 97AD013C */ lhu $t5, 0x13c($sp) +/* 10F18C 7F0DA65C 01F95025 */ or $t2, $t7, $t9 +/* 10F190 7F0DA660 010A8825 */ or $s1, $t0, $t2 +/* 10F194 7F0DA664 322E00FF */ andi $t6, $s1, 0xff +/* 10F198 7F0DA668 29A15B00 */ slti $at, $t5, 0x5b00 +/* 10F19C 7F0DA66C 14200007 */ bnez $at, .L7F0DA68C +/* 10F1A0 7F0DA670 01C08825 */ move $s1, $t6 +/* 10F1A4 7F0DA674 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10F1A8 7F0DA678 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10F1AC 7F0DA67C 01807825 */ move $t7, $t4 +/* 10F1B0 7F0DA680 032D6021 */ addu $t4, $t9, $t5 +/* 10F1B4 7F0DA684 100007C4 */ b .L7F0DC598 +/* 10F1B8 7F0DA688 A18F0000 */ sb $t7, ($t4) +.L7F0DA68C: +/* 10F1BC 7F0DA68C 97A9013C */ lhu $t1, 0x13c($sp) +/* 10F1C0 7F0DA690 97AF013C */ lhu $t7, 0x13c($sp) +/* 10F1C4 7F0DA694 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10F1C8 7F0DA698 29215800 */ slti $at, $t1, 0x5800 +/* 10F1CC 7F0DA69C 5420000D */ bnezl $at, .L7F0DA6D4 +/* 10F1D0 7F0DA6A0 29E14000 */ slti $at, $t7, 0x4000 +/* 10F1D4 7F0DA6A4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10F1D8 7F0DA6A8 93B80139 */ lbu $t8, 0x139($sp) +/* 10F1DC 7F0DA6AC 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 10F1E0 7F0DA6B0 01694021 */ addu $t0, $t3, $t1 +/* 10F1E4 7F0DA6B4 A1180000 */ sb $t8, ($t0) +/* 10F1E8 7F0DA6B8 97B9013C */ lhu $t9, 0x13c($sp) +/* 10F1EC 7F0DA6BC 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 10F1F0 7F0DA6C0 240A0001 */ li $t2, 1 +/* 10F1F4 7F0DA6C4 01D96821 */ addu $t5, $t6, $t9 +/* 10F1F8 7F0DA6C8 100007B3 */ b .L7F0DC598 +/* 10F1FC 7F0DA6CC A1AAA800 */ sb $t2, -0x5800($t5) +/* 10F200 7F0DA6D0 29E14000 */ slti $at, $t7, 0x4000 +.L7F0DA6D4: +/* 10F204 7F0DA6D4 142007B0 */ bnez $at, .L7F0DC598 +/* 10F208 7F0DA6D8 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10F20C 7F0DA6DC 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10F210 7F0DA6E0 93AC0139 */ lbu $t4, 0x139($sp) +/* 10F214 7F0DA6E4 24180001 */ li $t8, 1 +/* 10F218 7F0DA6E8 016F4821 */ addu $t1, $t3, $t7 +/* 10F21C 7F0DA6EC A12C0000 */ sb $t4, ($t1) +/* 10F220 7F0DA6F0 97A8013C */ lhu $t0, 0x13c($sp) +/* 10F224 7F0DA6F4 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 10F228 7F0DA6F8 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 10F22C 7F0DA6FC 310E1800 */ andi $t6, $t0, 0x1800 +/* 10F230 7F0DA700 000EC8C3 */ sra $t9, $t6, 3 +/* 10F234 7F0DA704 310A00FF */ andi $t2, $t0, 0xff +/* 10F238 7F0DA708 032A6825 */ or $t5, $t9, $t2 +/* 10F23C 7F0DA70C 016D7821 */ addu $t7, $t3, $t5 +/* 10F240 7F0DA710 100007A1 */ b .L7F0DC598 +/* 10F244 7F0DA714 A1F80000 */ sb $t8, ($t7) +spectrum_op_CB_07: +/* 10F248 7F0DA718 00106040 */ sll $t4, $s0, 1 +/* 10F24C 7F0DA71C 001049C3 */ sra $t1, $s0, 7 +/* 10F250 7F0DA720 01898025 */ or $s0, $t4, $t1 +/* 10F254 7F0DA724 320E00FF */ andi $t6, $s0, 0xff +/* 10F258 7F0DA728 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 10F25C 7F0DA72C 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 10F260 7F0DA730 2DC80001 */ sltiu $t0, $t6, 1 +/* 10F264 7F0DA734 AFA80048 */ sw $t0, 0x48($sp) +/* 10F268 7F0DA738 01C08025 */ move $s0, $t6 +/* 10F26C 7F0DA73C 31D90001 */ andi $t9, $t6, 1 +/* 10F270 7F0DA740 31CA00A8 */ andi $t2, $t6, 0xa8 +/* 10F274 7F0DA744 01CC4821 */ addu $t1, $t6, $t4 +/* 10F278 7F0DA748 912E0000 */ lbu $t6, ($t1) +/* 10F27C 7F0DA74C 032A5825 */ or $t3, $t9, $t2 +/* 10F280 7F0DA750 0008C180 */ sll $t8, $t0, 6 +/* 10F284 7F0DA754 01787825 */ or $t7, $t3, $t8 +/* 10F288 7F0DA758 01CF8825 */ or $s1, $t6, $t7 +/* 10F28C 7F0DA75C 322800FF */ andi $t0, $s1, 0xff +/* 10F290 7F0DA760 1000078D */ b .L7F0DC598 +/* 10F294 7F0DA764 01008825 */ move $s1, $t0 +spectrum_op_CB_08: +/* 10F298 7F0DA768 324D0001 */ andi $t5, $s2, 1 +/* 10F29C 7F0DA76C 000D59C0 */ sll $t3, $t5, 7 +/* 10F2A0 7F0DA770 00125043 */ sra $t2, $s2, 1 +/* 10F2A4 7F0DA774 014B9025 */ or $s2, $t2, $t3 +/* 10F2A8 7F0DA778 325800FF */ andi $t8, $s2, 0xff +/* 10F2AC 7F0DA77C 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 10F2B0 7F0DA780 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 10F2B4 7F0DA784 2F0C0001 */ sltiu $t4, $t8, 1 +/* 10F2B8 7F0DA788 AFAC0048 */ sw $t4, 0x48($sp) +/* 10F2BC 7F0DA78C 03009025 */ move $s2, $t8 +/* 10F2C0 7F0DA790 330900A8 */ andi $t1, $t8, 0xa8 +/* 10F2C4 7F0DA794 A3AD0138 */ sb $t5, 0x138($sp) +/* 10F2C8 7F0DA798 030A5821 */ addu $t3, $t8, $t2 +/* 10F2CC 7F0DA79C 91780000 */ lbu $t8, ($t3) +/* 10F2D0 7F0DA7A0 01A97025 */ or $t6, $t5, $t1 +/* 10F2D4 7F0DA7A4 000C4180 */ sll $t0, $t4, 6 +/* 10F2D8 7F0DA7A8 01C8C825 */ or $t9, $t6, $t0 +/* 10F2DC 7F0DA7AC 03198825 */ or $s1, $t8, $t9 +/* 10F2E0 7F0DA7B0 322C00FF */ andi $t4, $s1, 0xff +/* 10F2E4 7F0DA7B4 10000778 */ b .L7F0DC598 +/* 10F2E8 7F0DA7B8 01808825 */ move $s1, $t4 +spectrum_op_CB_09: +/* 10F2EC 7F0DA7BC 326F0001 */ andi $t7, $s3, 1 +/* 10F2F0 7F0DA7C0 000F71C0 */ sll $t6, $t7, 7 +/* 10F2F4 7F0DA7C4 00134843 */ sra $t1, $s3, 1 +/* 10F2F8 7F0DA7C8 012E9825 */ or $s3, $t1, $t6 +/* 10F2FC 7F0DA7CC 326800FF */ andi $t0, $s3, 0xff +/* 10F300 7F0DA7D0 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 10F304 7F0DA7D4 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 10F308 7F0DA7D8 2D0A0001 */ sltiu $t2, $t0, 1 +/* 10F30C 7F0DA7DC AFAA0048 */ sw $t2, 0x48($sp) +/* 10F310 7F0DA7E0 01009825 */ move $s3, $t0 +/* 10F314 7F0DA7E4 310B00A8 */ andi $t3, $t0, 0xa8 +/* 10F318 7F0DA7E8 A3AF0137 */ sb $t7, 0x137($sp) +/* 10F31C 7F0DA7EC 01097021 */ addu $t6, $t0, $t1 +/* 10F320 7F0DA7F0 91C80000 */ lbu $t0, ($t6) +/* 10F324 7F0DA7F4 01EBC025 */ or $t8, $t7, $t3 +/* 10F328 7F0DA7F8 000A6180 */ sll $t4, $t2, 6 +/* 10F32C 7F0DA7FC 030C6825 */ or $t5, $t8, $t4 +/* 10F330 7F0DA800 010D8825 */ or $s1, $t0, $t5 +/* 10F334 7F0DA804 322A00FF */ andi $t2, $s1, 0xff +/* 10F338 7F0DA808 10000763 */ b .L7F0DC598 +/* 10F33C 7F0DA80C 01408825 */ move $s1, $t2 +spectrum_op_CB_0A: +/* 10F340 7F0DA810 32990001 */ andi $t9, $s4, 1 +/* 10F344 7F0DA814 0019C1C0 */ sll $t8, $t9, 7 +/* 10F348 7F0DA818 00145843 */ sra $t3, $s4, 1 +/* 10F34C 7F0DA81C 0178A025 */ or $s4, $t3, $t8 +/* 10F350 7F0DA820 328C00FF */ andi $t4, $s4, 0xff +/* 10F354 7F0DA824 3C0B8009 */ lui $t3, %hi(ptr_pc_keyboard_table_alloc) +/* 10F358 7F0DA828 8D6BE334 */ lw $t3, %lo(ptr_pc_keyboard_table_alloc)($t3) +/* 10F35C 7F0DA82C 2D890001 */ sltiu $t1, $t4, 1 +/* 10F360 7F0DA830 AFA90048 */ sw $t1, 0x48($sp) +/* 10F364 7F0DA834 0180A025 */ move $s4, $t4 +/* 10F368 7F0DA838 318E00A8 */ andi $t6, $t4, 0xa8 +/* 10F36C 7F0DA83C A3B90136 */ sb $t9, 0x136($sp) +/* 10F370 7F0DA840 018BC021 */ addu $t8, $t4, $t3 +/* 10F374 7F0DA844 930C0000 */ lbu $t4, ($t8) +/* 10F378 7F0DA848 032E4025 */ or $t0, $t9, $t6 +/* 10F37C 7F0DA84C 00095180 */ sll $t2, $t1, 6 +/* 10F380 7F0DA850 010A7825 */ or $t7, $t0, $t2 +/* 10F384 7F0DA854 018F8825 */ or $s1, $t4, $t7 +/* 10F388 7F0DA858 322900FF */ andi $t1, $s1, 0xff +/* 10F38C 7F0DA85C 1000074E */ b .L7F0DC598 +/* 10F390 7F0DA860 01208825 */ move $s1, $t1 +spectrum_op_CB_0B: +/* 10F394 7F0DA864 32AD0001 */ andi $t5, $s5, 1 +/* 10F398 7F0DA868 000D41C0 */ sll $t0, $t5, 7 +/* 10F39C 7F0DA86C 00157043 */ sra $t6, $s5, 1 +/* 10F3A0 7F0DA870 01C8A825 */ or $s5, $t6, $t0 +/* 10F3A4 7F0DA874 32AA00FF */ andi $t2, $s5, 0xff +/* 10F3A8 7F0DA878 3C0E8009 */ lui $t6, %hi(ptr_pc_keyboard_table_alloc) +/* 10F3AC 7F0DA87C 8DCEE334 */ lw $t6, %lo(ptr_pc_keyboard_table_alloc)($t6) +/* 10F3B0 7F0DA880 2D4B0001 */ sltiu $t3, $t2, 1 +/* 10F3B4 7F0DA884 AFAB0048 */ sw $t3, 0x48($sp) +/* 10F3B8 7F0DA888 0140A825 */ move $s5, $t2 +/* 10F3BC 7F0DA88C 315800A8 */ andi $t8, $t2, 0xa8 +/* 10F3C0 7F0DA890 A3AD0135 */ sb $t5, 0x135($sp) +/* 10F3C4 7F0DA894 014E4021 */ addu $t0, $t2, $t6 +/* 10F3C8 7F0DA898 910A0000 */ lbu $t2, ($t0) +/* 10F3CC 7F0DA89C 01B86025 */ or $t4, $t5, $t8 +/* 10F3D0 7F0DA8A0 000B4980 */ sll $t1, $t3, 6 +/* 10F3D4 7F0DA8A4 0189C825 */ or $t9, $t4, $t1 +/* 10F3D8 7F0DA8A8 01598825 */ or $s1, $t2, $t9 +/* 10F3DC 7F0DA8AC 322B00FF */ andi $t3, $s1, 0xff +/* 10F3E0 7F0DA8B0 10000739 */ b .L7F0DC598 +/* 10F3E4 7F0DA8B4 01608825 */ move $s1, $t3 +spectrum_op_CB_0C: +/* 10F3E8 7F0DA8B8 32CF0001 */ andi $t7, $s6, 1 +/* 10F3EC 7F0DA8BC 000F61C0 */ sll $t4, $t7, 7 +/* 10F3F0 7F0DA8C0 0016C043 */ sra $t8, $s6, 1 +/* 10F3F4 7F0DA8C4 030CB025 */ or $s6, $t8, $t4 +/* 10F3F8 7F0DA8C8 32C900FF */ andi $t1, $s6, 0xff +/* 10F3FC 7F0DA8CC 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 10F400 7F0DA8D0 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 10F404 7F0DA8D4 2D2E0001 */ sltiu $t6, $t1, 1 +/* 10F408 7F0DA8D8 AFAE0048 */ sw $t6, 0x48($sp) +/* 10F40C 7F0DA8DC 0120B025 */ move $s6, $t1 +/* 10F410 7F0DA8E0 312800A8 */ andi $t0, $t1, 0xa8 +/* 10F414 7F0DA8E4 A3AF0134 */ sb $t7, 0x134($sp) +/* 10F418 7F0DA8E8 01386021 */ addu $t4, $t1, $t8 +/* 10F41C 7F0DA8EC 91890000 */ lbu $t1, ($t4) +/* 10F420 7F0DA8F0 01E85025 */ or $t2, $t7, $t0 +/* 10F424 7F0DA8F4 000E5980 */ sll $t3, $t6, 6 +/* 10F428 7F0DA8F8 014B6825 */ or $t5, $t2, $t3 +/* 10F42C 7F0DA8FC 012D8825 */ or $s1, $t1, $t5 +/* 10F430 7F0DA900 322E00FF */ andi $t6, $s1, 0xff +/* 10F434 7F0DA904 10000724 */ b .L7F0DC598 +/* 10F438 7F0DA908 01C08825 */ move $s1, $t6 +spectrum_op_CB_0D: +/* 10F43C 7F0DA90C 32F90001 */ andi $t9, $s7, 1 +/* 10F440 7F0DA910 001951C0 */ sll $t2, $t9, 7 +/* 10F444 7F0DA914 00174043 */ sra $t0, $s7, 1 +/* 10F448 7F0DA918 010AB825 */ or $s7, $t0, $t2 +/* 10F44C 7F0DA91C 32EB00FF */ andi $t3, $s7, 0xff +/* 10F450 7F0DA920 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 10F454 7F0DA924 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 10F458 7F0DA928 2D780001 */ sltiu $t8, $t3, 1 +/* 10F45C 7F0DA92C AFB80048 */ sw $t8, 0x48($sp) +/* 10F460 7F0DA930 0160B825 */ move $s7, $t3 +/* 10F464 7F0DA934 316C00A8 */ andi $t4, $t3, 0xa8 +/* 10F468 7F0DA938 A3B90133 */ sb $t9, 0x133($sp) +/* 10F46C 7F0DA93C 01685021 */ addu $t2, $t3, $t0 +/* 10F470 7F0DA940 914B0000 */ lbu $t3, ($t2) +/* 10F474 7F0DA944 032C4825 */ or $t1, $t9, $t4 +/* 10F478 7F0DA948 00187180 */ sll $t6, $t8, 6 +/* 10F47C 7F0DA94C 012E7825 */ or $t7, $t1, $t6 +/* 10F480 7F0DA950 016F8825 */ or $s1, $t3, $t7 +/* 10F484 7F0DA954 323800FF */ andi $t8, $s1, 0xff +/* 10F488 7F0DA958 1000070F */ b .L7F0DC598 +/* 10F48C 7F0DA95C 03008825 */ move $s1, $t8 +spectrum_op_CB_0E: +/* 10F490 7F0DA960 8FB9028C */ lw $t9, 0x28c($sp) +/* 10F494 7F0DA964 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10F498 7F0DA968 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10F49C 7F0DA96C 97AD013C */ lhu $t5, 0x13c($sp) +/* 10F4A0 7F0DA970 272C0007 */ addiu $t4, $t9, 7 +/* 10F4A4 7F0DA974 AFAC028C */ sw $t4, 0x28c($sp) +/* 10F4A8 7F0DA978 01A97021 */ addu $t6, $t5, $t1 +/* 10F4AC 7F0DA97C 91C80000 */ lbu $t0, ($t6) +/* 10F4B0 7F0DA980 310A00FF */ andi $t2, $t0, 0xff +/* 10F4B4 7F0DA984 314E0001 */ andi $t6, $t2, 1 +/* 10F4B8 7F0DA988 31D800FF */ andi $t8, $t6, 0xff +/* 10F4BC 7F0DA98C 0018C9C0 */ sll $t9, $t8, 7 +/* 10F4C0 7F0DA990 000A7843 */ sra $t7, $t2, 1 +/* 10F4C4 7F0DA994 01F96025 */ or $t4, $t7, $t9 +/* 10F4C8 7F0DA998 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 10F4CC 7F0DA99C 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 10F4D0 7F0DA9A0 318D00FF */ andi $t5, $t4, 0xff +/* 10F4D4 7F0DA9A4 A3A80139 */ sb $t0, 0x139($sp) +/* 10F4D8 7F0DA9A8 2DA90001 */ sltiu $t1, $t5, 1 +/* 10F4DC 7F0DA9AC 318A00A8 */ andi $t2, $t4, 0xa8 +/* 10F4E0 7F0DA9B0 01CA5825 */ or $t3, $t6, $t2 +/* 10F4E4 7F0DA9B4 AFA90048 */ sw $t1, 0x48($sp) +/* 10F4E8 7F0DA9B8 A3AC0139 */ sb $t4, 0x139($sp) +/* 10F4EC 7F0DA9BC A3AE0132 */ sb $t6, 0x132($sp) +/* 10F4F0 7F0DA9C0 01B94021 */ addu $t0, $t5, $t9 +/* 10F4F4 7F0DA9C4 910E0000 */ lbu $t6, ($t0) +/* 10F4F8 7F0DA9C8 0009C180 */ sll $t8, $t1, 6 +/* 10F4FC 7F0DA9CC 97A9013C */ lhu $t1, 0x13c($sp) +/* 10F500 7F0DA9D0 01787825 */ or $t7, $t3, $t8 +/* 10F504 7F0DA9D4 01CF8825 */ or $s1, $t6, $t7 +/* 10F508 7F0DA9D8 322A00FF */ andi $t2, $s1, 0xff +/* 10F50C 7F0DA9DC 29215B00 */ slti $at, $t1, 0x5b00 +/* 10F510 7F0DA9E0 14200007 */ bnez $at, .L7F0DAA00 +/* 10F514 7F0DA9E4 01408825 */ move $s1, $t2 +/* 10F518 7F0DA9E8 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10F51C 7F0DA9EC 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10F520 7F0DA9F0 01805825 */ move $t3, $t4 +/* 10F524 7F0DA9F4 03096021 */ addu $t4, $t8, $t1 +/* 10F528 7F0DA9F8 100006E7 */ b .L7F0DC598 +/* 10F52C 7F0DA9FC A18B0000 */ sb $t3, ($t4) +.L7F0DAA00: +/* 10F530 7F0DAA00 97AD013C */ lhu $t5, 0x13c($sp) +/* 10F534 7F0DAA04 97AB013C */ lhu $t3, 0x13c($sp) +/* 10F538 7F0DAA08 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10F53C 7F0DAA0C 29A15800 */ slti $at, $t5, 0x5800 +/* 10F540 7F0DAA10 5420000D */ bnezl $at, .L7F0DAA48 +/* 10F544 7F0DAA14 29614000 */ slti $at, $t3, 0x4000 +/* 10F548 7F0DAA18 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10F54C 7F0DAA1C 93B90139 */ lbu $t9, 0x139($sp) +/* 10F550 7F0DAA20 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 10F554 7F0DAA24 010D7021 */ addu $t6, $t0, $t5 +/* 10F558 7F0DAA28 A1D90000 */ sb $t9, ($t6) +/* 10F55C 7F0DAA2C 97B8013C */ lhu $t8, 0x13c($sp) +/* 10F560 7F0DAA30 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 10F564 7F0DAA34 240F0001 */ li $t7, 1 +/* 10F568 7F0DAA38 01584821 */ addu $t1, $t2, $t8 +/* 10F56C 7F0DAA3C 100006D6 */ b .L7F0DC598 +/* 10F570 7F0DAA40 A12FA800 */ sb $t7, -0x5800($t1) +/* 10F574 7F0DAA44 29614000 */ slti $at, $t3, 0x4000 +.L7F0DAA48: +/* 10F578 7F0DAA48 142006D3 */ bnez $at, .L7F0DC598 +/* 10F57C 7F0DAA4C 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10F580 7F0DAA50 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10F584 7F0DAA54 93AC0139 */ lbu $t4, 0x139($sp) +/* 10F588 7F0DAA58 24190001 */ li $t9, 1 +/* 10F58C 7F0DAA5C 010B6821 */ addu $t5, $t0, $t3 +/* 10F590 7F0DAA60 A1AC0000 */ sb $t4, ($t5) +/* 10F594 7F0DAA64 97AE013C */ lhu $t6, 0x13c($sp) +/* 10F598 7F0DAA68 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 10F59C 7F0DAA6C 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 10F5A0 7F0DAA70 31CA1800 */ andi $t2, $t6, 0x1800 +/* 10F5A4 7F0DAA74 000AC0C3 */ sra $t8, $t2, 3 +/* 10F5A8 7F0DAA78 31CF00FF */ andi $t7, $t6, 0xff +/* 10F5AC 7F0DAA7C 030F4825 */ or $t1, $t8, $t7 +/* 10F5B0 7F0DAA80 01095821 */ addu $t3, $t0, $t1 +/* 10F5B4 7F0DAA84 100006C4 */ b .L7F0DC598 +/* 10F5B8 7F0DAA88 A1790000 */ sb $t9, ($t3) +spectrum_op_CB_0F: +/* 10F5BC 7F0DAA8C 320A0001 */ andi $t2, $s0, 1 +/* 10F5C0 7F0DAA90 000A71C0 */ sll $t6, $t2, 7 +/* 10F5C4 7F0DAA94 00106843 */ sra $t5, $s0, 1 +/* 10F5C8 7F0DAA98 01AE8025 */ or $s0, $t5, $t6 +/* 10F5CC 7F0DAA9C 321800FF */ andi $t8, $s0, 0xff +/* 10F5D0 7F0DAAA0 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 10F5D4 7F0DAAA4 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 10F5D8 7F0DAAA8 2F0F0001 */ sltiu $t7, $t8, 1 +/* 10F5DC 7F0DAAAC AFAF0048 */ sw $t7, 0x48($sp) +/* 10F5E0 7F0DAAB0 03008025 */ move $s0, $t8 +/* 10F5E4 7F0DAAB4 330800A8 */ andi $t0, $t8, 0xa8 +/* 10F5E8 7F0DAAB8 A3AA0131 */ sb $t2, 0x131($sp) +/* 10F5EC 7F0DAABC 030D7021 */ addu $t6, $t8, $t5 +/* 10F5F0 7F0DAAC0 91D80000 */ lbu $t8, ($t6) +/* 10F5F4 7F0DAAC4 01484825 */ or $t1, $t2, $t0 +/* 10F5F8 7F0DAAC8 000F5980 */ sll $t3, $t7, 6 +/* 10F5FC 7F0DAACC 012B6025 */ or $t4, $t1, $t3 +/* 10F600 7F0DAAD0 030C8825 */ or $s1, $t8, $t4 +/* 10F604 7F0DAAD4 322F00FF */ andi $t7, $s1, 0xff +/* 10F608 7F0DAAD8 100006AF */ b .L7F0DC598 +/* 10F60C 7F0DAADC 01E08825 */ move $s1, $t7 +spectrum_op_CB_10: +/* 10F610 7F0DAAE0 001269C3 */ sra $t5, $s2, 7 +/* 10F614 7F0DAAE4 00124040 */ sll $t0, $s2, 1 +/* 10F618 7F0DAAE8 32390001 */ andi $t9, $s1, 1 +/* 10F61C 7F0DAAEC 01199025 */ or $s2, $t0, $t9 +/* 10F620 7F0DAAF0 324900FF */ andi $t1, $s2, 0xff +/* 10F624 7F0DAAF4 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 10F628 7F0DAAF8 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 10F62C 7F0DAAFC 2D2B0001 */ sltiu $t3, $t1, 1 +/* 10F630 7F0DAB00 AFAB0048 */ sw $t3, 0x48($sp) +/* 10F634 7F0DAB04 01209025 */ move $s2, $t1 +/* 10F638 7F0DAB08 312E00A8 */ andi $t6, $t1, 0xa8 +/* 10F63C 7F0DAB0C A3AD0130 */ sb $t5, 0x130($sp) +/* 10F640 7F0DAB10 0128C821 */ addu $t9, $t1, $t0 +/* 10F644 7F0DAB14 93290000 */ lbu $t1, ($t9) +/* 10F648 7F0DAB18 01AEC025 */ or $t8, $t5, $t6 +/* 10F64C 7F0DAB1C 000B7980 */ sll $t7, $t3, 6 +/* 10F650 7F0DAB20 030F5025 */ or $t2, $t8, $t7 +/* 10F654 7F0DAB24 012A8825 */ or $s1, $t1, $t2 +/* 10F658 7F0DAB28 322B00FF */ andi $t3, $s1, 0xff +/* 10F65C 7F0DAB2C 1000069A */ b .L7F0DC598 +/* 10F660 7F0DAB30 01608825 */ move $s1, $t3 +spectrum_op_CB_11: +/* 10F664 7F0DAB34 001341C3 */ sra $t0, $s3, 7 +/* 10F668 7F0DAB38 00137040 */ sll $t6, $s3, 1 +/* 10F66C 7F0DAB3C 322C0001 */ andi $t4, $s1, 1 +/* 10F670 7F0DAB40 01CC9825 */ or $s3, $t6, $t4 +/* 10F674 7F0DAB44 327800FF */ andi $t8, $s3, 0xff +/* 10F678 7F0DAB48 3C0E8009 */ lui $t6, %hi(ptr_pc_keyboard_table_alloc) +/* 10F67C 7F0DAB4C 8DCEE334 */ lw $t6, %lo(ptr_pc_keyboard_table_alloc)($t6) +/* 10F680 7F0DAB50 2F0F0001 */ sltiu $t7, $t8, 1 +/* 10F684 7F0DAB54 AFAF0048 */ sw $t7, 0x48($sp) +/* 10F688 7F0DAB58 03009825 */ move $s3, $t8 +/* 10F68C 7F0DAB5C 331900A8 */ andi $t9, $t8, 0xa8 +/* 10F690 7F0DAB60 A3A8012F */ sb $t0, 0x12f($sp) +/* 10F694 7F0DAB64 030E6021 */ addu $t4, $t8, $t6 +/* 10F698 7F0DAB68 91980000 */ lbu $t8, ($t4) +/* 10F69C 7F0DAB6C 01194825 */ or $t1, $t0, $t9 +/* 10F6A0 7F0DAB70 000F5980 */ sll $t3, $t7, 6 +/* 10F6A4 7F0DAB74 012B6825 */ or $t5, $t1, $t3 +/* 10F6A8 7F0DAB78 030D8825 */ or $s1, $t8, $t5 +/* 10F6AC 7F0DAB7C 322F00FF */ andi $t7, $s1, 0xff +/* 10F6B0 7F0DAB80 10000685 */ b .L7F0DC598 +/* 10F6B4 7F0DAB84 01E08825 */ move $s1, $t7 +spectrum_op_CB_12: +/* 10F6B8 7F0DAB88 001471C3 */ sra $t6, $s4, 7 +/* 10F6BC 7F0DAB8C 0014C840 */ sll $t9, $s4, 1 +/* 10F6C0 7F0DAB90 322A0001 */ andi $t2, $s1, 1 +/* 10F6C4 7F0DAB94 032AA025 */ or $s4, $t9, $t2 +/* 10F6C8 7F0DAB98 328900FF */ andi $t1, $s4, 0xff +/* 10F6CC 7F0DAB9C 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 10F6D0 7F0DABA0 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 10F6D4 7F0DABA4 2D2B0001 */ sltiu $t3, $t1, 1 +/* 10F6D8 7F0DABA8 AFAB0048 */ sw $t3, 0x48($sp) +/* 10F6DC 7F0DABAC 0120A025 */ move $s4, $t1 +/* 10F6E0 7F0DABB0 312C00A8 */ andi $t4, $t1, 0xa8 +/* 10F6E4 7F0DABB4 A3AE012E */ sb $t6, 0x12e($sp) +/* 10F6E8 7F0DABB8 01395021 */ addu $t2, $t1, $t9 +/* 10F6EC 7F0DABBC 91490000 */ lbu $t1, ($t2) +/* 10F6F0 7F0DABC0 01CCC025 */ or $t8, $t6, $t4 +/* 10F6F4 7F0DABC4 000B7980 */ sll $t7, $t3, 6 +/* 10F6F8 7F0DABC8 030F4025 */ or $t0, $t8, $t7 +/* 10F6FC 7F0DABCC 01288825 */ or $s1, $t1, $t0 +/* 10F700 7F0DABD0 322B00FF */ andi $t3, $s1, 0xff +/* 10F704 7F0DABD4 10000670 */ b .L7F0DC598 +/* 10F708 7F0DABD8 01608825 */ move $s1, $t3 +spectrum_op_CB_13: +/* 10F70C 7F0DABDC 0015C9C3 */ sra $t9, $s5, 7 +/* 10F710 7F0DABE0 00156040 */ sll $t4, $s5, 1 +/* 10F714 7F0DABE4 322D0001 */ andi $t5, $s1, 1 +/* 10F718 7F0DABE8 018DA825 */ or $s5, $t4, $t5 +/* 10F71C 7F0DABEC 32B800FF */ andi $t8, $s5, 0xff +/* 10F720 7F0DABF0 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 10F724 7F0DABF4 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 10F728 7F0DABF8 2F0F0001 */ sltiu $t7, $t8, 1 +/* 10F72C 7F0DABFC AFAF0048 */ sw $t7, 0x48($sp) +/* 10F730 7F0DAC00 0300A825 */ move $s5, $t8 +/* 10F734 7F0DAC04 330A00A8 */ andi $t2, $t8, 0xa8 +/* 10F738 7F0DAC08 A3B9012D */ sb $t9, 0x12d($sp) +/* 10F73C 7F0DAC0C 030C6821 */ addu $t5, $t8, $t4 +/* 10F740 7F0DAC10 91B80000 */ lbu $t8, ($t5) +/* 10F744 7F0DAC14 032A4825 */ or $t1, $t9, $t2 +/* 10F748 7F0DAC18 000F5980 */ sll $t3, $t7, 6 +/* 10F74C 7F0DAC1C 012B7025 */ or $t6, $t1, $t3 +/* 10F750 7F0DAC20 030E8825 */ or $s1, $t8, $t6 +/* 10F754 7F0DAC24 322F00FF */ andi $t7, $s1, 0xff +/* 10F758 7F0DAC28 1000065B */ b .L7F0DC598 +/* 10F75C 7F0DAC2C 01E08825 */ move $s1, $t7 +spectrum_op_CB_14: +/* 10F760 7F0DAC30 001661C3 */ sra $t4, $s6, 7 +/* 10F764 7F0DAC34 00165040 */ sll $t2, $s6, 1 +/* 10F768 7F0DAC38 32280001 */ andi $t0, $s1, 1 +/* 10F76C 7F0DAC3C 0148B025 */ or $s6, $t2, $t0 +/* 10F770 7F0DAC40 32C900FF */ andi $t1, $s6, 0xff +/* 10F774 7F0DAC44 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 10F778 7F0DAC48 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 10F77C 7F0DAC4C 2D2B0001 */ sltiu $t3, $t1, 1 +/* 10F780 7F0DAC50 AFAB0048 */ sw $t3, 0x48($sp) +/* 10F784 7F0DAC54 0120B025 */ move $s6, $t1 +/* 10F788 7F0DAC58 312D00A8 */ andi $t5, $t1, 0xa8 +/* 10F78C 7F0DAC5C A3AC012C */ sb $t4, 0x12c($sp) +/* 10F790 7F0DAC60 012A4021 */ addu $t0, $t1, $t2 +/* 10F794 7F0DAC64 91090000 */ lbu $t1, ($t0) +/* 10F798 7F0DAC68 018DC025 */ or $t8, $t4, $t5 +/* 10F79C 7F0DAC6C 000B7980 */ sll $t7, $t3, 6 +/* 10F7A0 7F0DAC70 030FC825 */ or $t9, $t8, $t7 +/* 10F7A4 7F0DAC74 01398825 */ or $s1, $t1, $t9 +/* 10F7A8 7F0DAC78 322B00FF */ andi $t3, $s1, 0xff +/* 10F7AC 7F0DAC7C 10000646 */ b .L7F0DC598 +/* 10F7B0 7F0DAC80 01608825 */ move $s1, $t3 +spectrum_op_CB_15: +/* 10F7B4 7F0DAC84 001751C3 */ sra $t2, $s7, 7 +/* 10F7B8 7F0DAC88 00176840 */ sll $t5, $s7, 1 +/* 10F7BC 7F0DAC8C 322E0001 */ andi $t6, $s1, 1 +/* 10F7C0 7F0DAC90 01AEB825 */ or $s7, $t5, $t6 +/* 10F7C4 7F0DAC94 32F800FF */ andi $t8, $s7, 0xff +/* 10F7C8 7F0DAC98 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 10F7CC 7F0DAC9C 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 10F7D0 7F0DACA0 2F0F0001 */ sltiu $t7, $t8, 1 +/* 10F7D4 7F0DACA4 AFAF0048 */ sw $t7, 0x48($sp) +/* 10F7D8 7F0DACA8 0300B825 */ move $s7, $t8 +/* 10F7DC 7F0DACAC 330800A8 */ andi $t0, $t8, 0xa8 +/* 10F7E0 7F0DACB0 A3AA012B */ sb $t2, 0x12b($sp) +/* 10F7E4 7F0DACB4 030D7021 */ addu $t6, $t8, $t5 +/* 10F7E8 7F0DACB8 91D80000 */ lbu $t8, ($t6) +/* 10F7EC 7F0DACBC 01484825 */ or $t1, $t2, $t0 +/* 10F7F0 7F0DACC0 000F5980 */ sll $t3, $t7, 6 +/* 10F7F4 7F0DACC4 012B6025 */ or $t4, $t1, $t3 +/* 10F7F8 7F0DACC8 030C8825 */ or $s1, $t8, $t4 +/* 10F7FC 7F0DACCC 322F00FF */ andi $t7, $s1, 0xff +/* 10F800 7F0DACD0 10000631 */ b .L7F0DC598 +/* 10F804 7F0DACD4 01E08825 */ move $s1, $t7 +spectrum_op_CB_16: +/* 10F808 7F0DACD8 8FAA028C */ lw $t2, 0x28c($sp) +/* 10F80C 7F0DACDC 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 10F810 7F0DACE0 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 10F814 7F0DACE4 97B9013C */ lhu $t9, 0x13c($sp) +/* 10F818 7F0DACE8 25480007 */ addiu $t0, $t2, 7 +/* 10F81C 7F0DACEC AFA8028C */ sw $t0, 0x28c($sp) +/* 10F820 7F0DACF0 03295821 */ addu $t3, $t9, $t1 +/* 10F824 7F0DACF4 916D0000 */ lbu $t5, ($t3) +/* 10F828 7F0DACF8 322F0001 */ andi $t7, $s1, 1 +/* 10F82C 7F0DACFC 31AE00FF */ andi $t6, $t5, 0xff +/* 10F830 7F0DAD00 000E6040 */ sll $t4, $t6, 1 +/* 10F834 7F0DAD04 018F5025 */ or $t2, $t4, $t7 +/* 10F838 7F0DAD08 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 10F83C 7F0DAD0C 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 10F840 7F0DAD10 000E49C3 */ sra $t1, $t6, 7 +/* 10F844 7F0DAD14 314800FF */ andi $t0, $t2, 0xff +/* 10F848 7F0DAD18 A3AD0139 */ sb $t5, 0x139($sp) +/* 10F84C 7F0DAD1C 314D00A8 */ andi $t5, $t2, 0xa8 +/* 10F850 7F0DAD20 2D190001 */ sltiu $t9, $t0, 1 +/* 10F854 7F0DAD24 AFB90048 */ sw $t9, 0x48($sp) +/* 10F858 7F0DAD28 012DC025 */ or $t8, $t1, $t5 +/* 10F85C 7F0DAD2C A3AA0139 */ sb $t2, 0x139($sp) +/* 10F860 7F0DAD30 A3A9012A */ sb $t1, 0x12a($sp) +/* 10F864 7F0DAD34 010F5821 */ addu $t3, $t0, $t7 +/* 10F868 7F0DAD38 91690000 */ lbu $t1, ($t3) +/* 10F86C 7F0DAD3C 00197180 */ sll $t6, $t9, 6 +/* 10F870 7F0DAD40 97B9013C */ lhu $t9, 0x13c($sp) +/* 10F874 7F0DAD44 030E6025 */ or $t4, $t8, $t6 +/* 10F878 7F0DAD48 012C8825 */ or $s1, $t1, $t4 +/* 10F87C 7F0DAD4C 322D00FF */ andi $t5, $s1, 0xff +/* 10F880 7F0DAD50 2B215B00 */ slti $at, $t9, 0x5b00 +/* 10F884 7F0DAD54 14200007 */ bnez $at, .L7F0DAD74 +/* 10F888 7F0DAD58 01A08825 */ move $s1, $t5 +/* 10F88C 7F0DAD5C 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10F890 7F0DAD60 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10F894 7F0DAD64 0140C025 */ move $t8, $t2 +/* 10F898 7F0DAD68 01D95021 */ addu $t2, $t6, $t9 +/* 10F89C 7F0DAD6C 1000060A */ b .L7F0DC598 +/* 10F8A0 7F0DAD70 A1580000 */ sb $t8, ($t2) +.L7F0DAD74: +/* 10F8A4 7F0DAD74 97A8013C */ lhu $t0, 0x13c($sp) +/* 10F8A8 7F0DAD78 97B8013C */ lhu $t8, 0x13c($sp) +/* 10F8AC 7F0DAD7C 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10F8B0 7F0DAD80 29015800 */ slti $at, $t0, 0x5800 +/* 10F8B4 7F0DAD84 5420000D */ bnezl $at, .L7F0DADBC +/* 10F8B8 7F0DAD88 2B014000 */ slti $at, $t8, 0x4000 +/* 10F8BC 7F0DAD8C 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10F8C0 7F0DAD90 93AF0139 */ lbu $t7, 0x139($sp) +/* 10F8C4 7F0DAD94 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 10F8C8 7F0DAD98 01684821 */ addu $t1, $t3, $t0 +/* 10F8CC 7F0DAD9C A12F0000 */ sb $t7, ($t1) +/* 10F8D0 7F0DADA0 97AE013C */ lhu $t6, 0x13c($sp) +/* 10F8D4 7F0DADA4 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 10F8D8 7F0DADA8 240C0001 */ li $t4, 1 +/* 10F8DC 7F0DADAC 01AEC821 */ addu $t9, $t5, $t6 +/* 10F8E0 7F0DADB0 100005F9 */ b .L7F0DC598 +/* 10F8E4 7F0DADB4 A32CA800 */ sb $t4, -0x5800($t9) +/* 10F8E8 7F0DADB8 2B014000 */ slti $at, $t8, 0x4000 +.L7F0DADBC: +/* 10F8EC 7F0DADBC 142005F6 */ bnez $at, .L7F0DC598 +/* 10F8F0 7F0DADC0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 10F8F4 7F0DADC4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 10F8F8 7F0DADC8 93AA0139 */ lbu $t2, 0x139($sp) +/* 10F8FC 7F0DADCC 240F0001 */ li $t7, 1 +/* 10F900 7F0DADD0 01784021 */ addu $t0, $t3, $t8 +/* 10F904 7F0DADD4 A10A0000 */ sb $t2, ($t0) +/* 10F908 7F0DADD8 97A9013C */ lhu $t1, 0x13c($sp) +/* 10F90C 7F0DADDC 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 10F910 7F0DADE0 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 10F914 7F0DADE4 312D1800 */ andi $t5, $t1, 0x1800 +/* 10F918 7F0DADE8 000D70C3 */ sra $t6, $t5, 3 +/* 10F91C 7F0DADEC 312C00FF */ andi $t4, $t1, 0xff +/* 10F920 7F0DADF0 01CCC825 */ or $t9, $t6, $t4 +/* 10F924 7F0DADF4 0179C021 */ addu $t8, $t3, $t9 +/* 10F928 7F0DADF8 100005E7 */ b .L7F0DC598 +/* 10F92C 7F0DADFC A30F0000 */ sb $t7, ($t8) +spectrum_op_CB_17: +/* 10F930 7F0DAE00 001061C3 */ sra $t4, $s0, 7 +/* 10F934 7F0DAE04 00104040 */ sll $t0, $s0, 1 +/* 10F938 7F0DAE08 322D0001 */ andi $t5, $s1, 1 +/* 10F93C 7F0DAE0C 010D8025 */ or $s0, $t0, $t5 +/* 10F940 7F0DAE10 320900FF */ andi $t1, $s0, 0xff +/* 10F944 7F0DAE14 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 10F948 7F0DAE18 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 10F94C 7F0DAE1C 2D2E0001 */ sltiu $t6, $t1, 1 +/* 10F950 7F0DAE20 AFAE0048 */ sw $t6, 0x48($sp) +/* 10F954 7F0DAE24 01208025 */ move $s0, $t1 +/* 10F958 7F0DAE28 312B00A8 */ andi $t3, $t1, 0xa8 +/* 10F95C 7F0DAE2C A3AC0129 */ sb $t4, 0x129($sp) +/* 10F960 7F0DAE30 01286821 */ addu $t5, $t1, $t0 +/* 10F964 7F0DAE34 91A90000 */ lbu $t1, ($t5) +/* 10F968 7F0DAE38 018BC825 */ or $t9, $t4, $t3 +/* 10F96C 7F0DAE3C 000EC180 */ sll $t8, $t6, 6 +/* 10F970 7F0DAE40 03385025 */ or $t2, $t9, $t8 +/* 10F974 7F0DAE44 012A8825 */ or $s1, $t1, $t2 +/* 10F978 7F0DAE48 322E00FF */ andi $t6, $s1, 0xff +/* 10F97C 7F0DAE4C 100005D2 */ b .L7F0DC598 +/* 10F980 7F0DAE50 01C08825 */ move $s1, $t6 +spectrum_op_CB_18: +/* 10F984 7F0DAE54 32480001 */ andi $t0, $s2, 1 +/* 10F988 7F0DAE58 00125843 */ sra $t3, $s2, 1 +/* 10F98C 7F0DAE5C 001179C0 */ sll $t7, $s1, 7 +/* 10F990 7F0DAE60 016F9025 */ or $s2, $t3, $t7 +/* 10F994 7F0DAE64 325900FF */ andi $t9, $s2, 0xff +/* 10F998 7F0DAE68 3C0B8009 */ lui $t3, %hi(ptr_pc_keyboard_table_alloc) +/* 10F99C 7F0DAE6C 8D6BE334 */ lw $t3, %lo(ptr_pc_keyboard_table_alloc)($t3) +/* 10F9A0 7F0DAE70 2F380001 */ sltiu $t8, $t9, 1 +/* 10F9A4 7F0DAE74 AFB80048 */ sw $t8, 0x48($sp) +/* 10F9A8 7F0DAE78 03209025 */ move $s2, $t9 +/* 10F9AC 7F0DAE7C 332D00A8 */ andi $t5, $t9, 0xa8 +/* 10F9B0 7F0DAE80 A3A80128 */ sb $t0, 0x128($sp) +/* 10F9B4 7F0DAE84 032B7821 */ addu $t7, $t9, $t3 +/* 10F9B8 7F0DAE88 91F90000 */ lbu $t9, ($t7) +/* 10F9BC 7F0DAE8C 010D4825 */ or $t1, $t0, $t5 +/* 10F9C0 7F0DAE90 00187180 */ sll $t6, $t8, 6 +/* 10F9C4 7F0DAE94 012E6025 */ or $t4, $t1, $t6 +/* 10F9C8 7F0DAE98 032C8825 */ or $s1, $t9, $t4 +/* 10F9CC 7F0DAE9C 323800FF */ andi $t8, $s1, 0xff +/* 10F9D0 7F0DAEA0 100005BD */ b .L7F0DC598 +/* 10F9D4 7F0DAEA4 03008825 */ move $s1, $t8 +spectrum_op_CB_19: +/* 10F9D8 7F0DAEA8 326B0001 */ andi $t3, $s3, 1 +/* 10F9DC 7F0DAEAC 00136843 */ sra $t5, $s3, 1 +/* 10F9E0 7F0DAEB0 001151C0 */ sll $t2, $s1, 7 +/* 10F9E4 7F0DAEB4 01AA9825 */ or $s3, $t5, $t2 +/* 10F9E8 7F0DAEB8 326900FF */ andi $t1, $s3, 0xff +/* 10F9EC 7F0DAEBC 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 10F9F0 7F0DAEC0 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 10F9F4 7F0DAEC4 2D2E0001 */ sltiu $t6, $t1, 1 +/* 10F9F8 7F0DAEC8 AFAE0048 */ sw $t6, 0x48($sp) +/* 10F9FC 7F0DAECC 01209825 */ move $s3, $t1 +/* 10FA00 7F0DAED0 312F00A8 */ andi $t7, $t1, 0xa8 +/* 10FA04 7F0DAED4 A3AB0127 */ sb $t3, 0x127($sp) +/* 10FA08 7F0DAED8 012D5021 */ addu $t2, $t1, $t5 +/* 10FA0C 7F0DAEDC 91490000 */ lbu $t1, ($t2) +/* 10FA10 7F0DAEE0 016FC825 */ or $t9, $t3, $t7 +/* 10FA14 7F0DAEE4 000EC180 */ sll $t8, $t6, 6 +/* 10FA18 7F0DAEE8 03384025 */ or $t0, $t9, $t8 +/* 10FA1C 7F0DAEEC 01288825 */ or $s1, $t1, $t0 +/* 10FA20 7F0DAEF0 322E00FF */ andi $t6, $s1, 0xff +/* 10FA24 7F0DAEF4 100005A8 */ b .L7F0DC598 +/* 10FA28 7F0DAEF8 01C08825 */ move $s1, $t6 +spectrum_op_CB_1A: +/* 10FA2C 7F0DAEFC 328D0001 */ andi $t5, $s4, 1 +/* 10FA30 7F0DAF00 00147843 */ sra $t7, $s4, 1 +/* 10FA34 7F0DAF04 001161C0 */ sll $t4, $s1, 7 +/* 10FA38 7F0DAF08 01ECA025 */ or $s4, $t7, $t4 +/* 10FA3C 7F0DAF0C 329900FF */ andi $t9, $s4, 0xff +/* 10FA40 7F0DAF10 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 10FA44 7F0DAF14 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 10FA48 7F0DAF18 2F380001 */ sltiu $t8, $t9, 1 +/* 10FA4C 7F0DAF1C AFB80048 */ sw $t8, 0x48($sp) +/* 10FA50 7F0DAF20 0320A025 */ move $s4, $t9 +/* 10FA54 7F0DAF24 332A00A8 */ andi $t2, $t9, 0xa8 +/* 10FA58 7F0DAF28 A3AD0126 */ sb $t5, 0x126($sp) +/* 10FA5C 7F0DAF2C 032F6021 */ addu $t4, $t9, $t7 +/* 10FA60 7F0DAF30 91990000 */ lbu $t9, ($t4) +/* 10FA64 7F0DAF34 01AA4825 */ or $t1, $t5, $t2 +/* 10FA68 7F0DAF38 00187180 */ sll $t6, $t8, 6 +/* 10FA6C 7F0DAF3C 012E5825 */ or $t3, $t1, $t6 +/* 10FA70 7F0DAF40 032B8825 */ or $s1, $t9, $t3 +/* 10FA74 7F0DAF44 323800FF */ andi $t8, $s1, 0xff +/* 10FA78 7F0DAF48 10000593 */ b .L7F0DC598 +/* 10FA7C 7F0DAF4C 03008825 */ move $s1, $t8 +spectrum_op_CB_1B: +/* 10FA80 7F0DAF50 32AF0001 */ andi $t7, $s5, 1 +/* 10FA84 7F0DAF54 00155043 */ sra $t2, $s5, 1 +/* 10FA88 7F0DAF58 001141C0 */ sll $t0, $s1, 7 +/* 10FA8C 7F0DAF5C 0148A825 */ or $s5, $t2, $t0 +/* 10FA90 7F0DAF60 32A900FF */ andi $t1, $s5, 0xff +/* 10FA94 7F0DAF64 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 10FA98 7F0DAF68 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 10FA9C 7F0DAF6C 2D2E0001 */ sltiu $t6, $t1, 1 +/* 10FAA0 7F0DAF70 AFAE0048 */ sw $t6, 0x48($sp) +/* 10FAA4 7F0DAF74 0120A825 */ move $s5, $t1 +/* 10FAA8 7F0DAF78 312C00A8 */ andi $t4, $t1, 0xa8 +/* 10FAAC 7F0DAF7C A3AF0125 */ sb $t7, 0x125($sp) +/* 10FAB0 7F0DAF80 012A4021 */ addu $t0, $t1, $t2 +/* 10FAB4 7F0DAF84 91090000 */ lbu $t1, ($t0) +/* 10FAB8 7F0DAF88 01ECC825 */ or $t9, $t7, $t4 +/* 10FABC 7F0DAF8C 000EC180 */ sll $t8, $t6, 6 +/* 10FAC0 7F0DAF90 03386825 */ or $t5, $t9, $t8 +/* 10FAC4 7F0DAF94 012D8825 */ or $s1, $t1, $t5 +/* 10FAC8 7F0DAF98 322E00FF */ andi $t6, $s1, 0xff +/* 10FACC 7F0DAF9C 1000057E */ b .L7F0DC598 +/* 10FAD0 7F0DAFA0 01C08825 */ move $s1, $t6 +spectrum_op_CB_1C: +/* 10FAD4 7F0DAFA4 32CA0001 */ andi $t2, $s6, 1 +/* 10FAD8 7F0DAFA8 00166043 */ sra $t4, $s6, 1 +/* 10FADC 7F0DAFAC 001159C0 */ sll $t3, $s1, 7 +/* 10FAE0 7F0DAFB0 018BB025 */ or $s6, $t4, $t3 +/* 10FAE4 7F0DAFB4 32D900FF */ andi $t9, $s6, 0xff +/* 10FAE8 7F0DAFB8 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 10FAEC 7F0DAFBC 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 10FAF0 7F0DAFC0 2F380001 */ sltiu $t8, $t9, 1 +/* 10FAF4 7F0DAFC4 AFB80048 */ sw $t8, 0x48($sp) +/* 10FAF8 7F0DAFC8 0320B025 */ move $s6, $t9 +/* 10FAFC 7F0DAFCC 332800A8 */ andi $t0, $t9, 0xa8 +/* 10FB00 7F0DAFD0 A3AA0124 */ sb $t2, 0x124($sp) +/* 10FB04 7F0DAFD4 032C5821 */ addu $t3, $t9, $t4 +/* 10FB08 7F0DAFD8 91790000 */ lbu $t9, ($t3) +/* 10FB0C 7F0DAFDC 01484825 */ or $t1, $t2, $t0 +/* 10FB10 7F0DAFE0 00187180 */ sll $t6, $t8, 6 +/* 10FB14 7F0DAFE4 012E7825 */ or $t7, $t1, $t6 +/* 10FB18 7F0DAFE8 032F8825 */ or $s1, $t9, $t7 +/* 10FB1C 7F0DAFEC 323800FF */ andi $t8, $s1, 0xff +/* 10FB20 7F0DAFF0 10000569 */ b .L7F0DC598 +/* 10FB24 7F0DAFF4 03008825 */ move $s1, $t8 +spectrum_op_CB_1D: +/* 10FB28 7F0DAFF8 32EC0001 */ andi $t4, $s7, 1 +/* 10FB2C 7F0DAFFC 00174043 */ sra $t0, $s7, 1 +/* 10FB30 7F0DB000 001169C0 */ sll $t5, $s1, 7 +/* 10FB34 7F0DB004 010DB825 */ or $s7, $t0, $t5 +/* 10FB38 7F0DB008 32E900FF */ andi $t1, $s7, 0xff +/* 10FB3C 7F0DB00C 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 10FB40 7F0DB010 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 10FB44 7F0DB014 2D2E0001 */ sltiu $t6, $t1, 1 +/* 10FB48 7F0DB018 AFAE0048 */ sw $t6, 0x48($sp) +/* 10FB4C 7F0DB01C 0120B825 */ move $s7, $t1 +/* 10FB50 7F0DB020 312B00A8 */ andi $t3, $t1, 0xa8 +/* 10FB54 7F0DB024 A3AC0123 */ sb $t4, 0x123($sp) +/* 10FB58 7F0DB028 01286821 */ addu $t5, $t1, $t0 +/* 10FB5C 7F0DB02C 91A90000 */ lbu $t1, ($t5) +/* 10FB60 7F0DB030 018BC825 */ or $t9, $t4, $t3 +/* 10FB64 7F0DB034 000EC180 */ sll $t8, $t6, 6 +/* 10FB68 7F0DB038 03385025 */ or $t2, $t9, $t8 +/* 10FB6C 7F0DB03C 012A8825 */ or $s1, $t1, $t2 +/* 10FB70 7F0DB040 322E00FF */ andi $t6, $s1, 0xff +/* 10FB74 7F0DB044 10000554 */ b .L7F0DC598 +/* 10FB78 7F0DB048 01C08825 */ move $s1, $t6 +spectrum_op_CB_1E: +/* 10FB7C 7F0DB04C 8FAC028C */ lw $t4, 0x28c($sp) +/* 10FB80 7F0DB050 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 10FB84 7F0DB054 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 10FB88 7F0DB058 97AF013C */ lhu $t7, 0x13c($sp) +/* 10FB8C 7F0DB05C 258B0007 */ addiu $t3, $t4, 7 +/* 10FB90 7F0DB060 AFAB028C */ sw $t3, 0x28c($sp) +/* 10FB94 7F0DB064 01F9C021 */ addu $t8, $t7, $t9 +/* 10FB98 7F0DB068 93080000 */ lbu $t0, ($t8) +/* 10FB9C 7F0DB06C 001171C0 */ sll $t6, $s1, 7 +/* 10FBA0 7F0DB070 310D00FF */ andi $t5, $t0, 0xff +/* 10FBA4 7F0DB074 000D5043 */ sra $t2, $t5, 1 +/* 10FBA8 7F0DB078 014E6025 */ or $t4, $t2, $t6 +/* 10FBAC 7F0DB07C 3C0E8009 */ lui $t6, %hi(ptr_pc_keyboard_table_alloc) +/* 10FBB0 7F0DB080 8DCEE334 */ lw $t6, %lo(ptr_pc_keyboard_table_alloc)($t6) +/* 10FBB4 7F0DB084 31B90001 */ andi $t9, $t5, 1 +/* 10FBB8 7F0DB088 318B00FF */ andi $t3, $t4, 0xff +/* 10FBBC 7F0DB08C A3A80139 */ sb $t0, 0x139($sp) +/* 10FBC0 7F0DB090 318800A8 */ andi $t0, $t4, 0xa8 +/* 10FBC4 7F0DB094 2D6F0001 */ sltiu $t7, $t3, 1 +/* 10FBC8 7F0DB098 AFAF0048 */ sw $t7, 0x48($sp) +/* 10FBCC 7F0DB09C 03284825 */ or $t1, $t9, $t0 +/* 10FBD0 7F0DB0A0 A3AC0139 */ sb $t4, 0x139($sp) +/* 10FBD4 7F0DB0A4 A3B90122 */ sb $t9, 0x122($sp) +/* 10FBD8 7F0DB0A8 016EC021 */ addu $t8, $t3, $t6 +/* 10FBDC 7F0DB0AC 93190000 */ lbu $t9, ($t8) +/* 10FBE0 7F0DB0B0 000F6980 */ sll $t5, $t7, 6 +/* 10FBE4 7F0DB0B4 97AF013C */ lhu $t7, 0x13c($sp) +/* 10FBE8 7F0DB0B8 012D5025 */ or $t2, $t1, $t5 +/* 10FBEC 7F0DB0BC 032A8825 */ or $s1, $t9, $t2 +/* 10FBF0 7F0DB0C0 322800FF */ andi $t0, $s1, 0xff +/* 10FBF4 7F0DB0C4 29E15B00 */ slti $at, $t7, 0x5b00 +/* 10FBF8 7F0DB0C8 14200007 */ bnez $at, .L7F0DB0E8 +/* 10FBFC 7F0DB0CC 01008825 */ move $s1, $t0 +/* 10FC00 7F0DB0D0 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 10FC04 7F0DB0D4 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 10FC08 7F0DB0D8 01804825 */ move $t1, $t4 +/* 10FC0C 7F0DB0DC 01AF6021 */ addu $t4, $t5, $t7 +/* 10FC10 7F0DB0E0 1000052D */ b .L7F0DC598 +/* 10FC14 7F0DB0E4 A1890000 */ sb $t1, ($t4) +.L7F0DB0E8: +/* 10FC18 7F0DB0E8 97AB013C */ lhu $t3, 0x13c($sp) +/* 10FC1C 7F0DB0EC 97A9013C */ lhu $t1, 0x13c($sp) +/* 10FC20 7F0DB0F0 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10FC24 7F0DB0F4 29615800 */ slti $at, $t3, 0x5800 +/* 10FC28 7F0DB0F8 5420000D */ bnezl $at, .L7F0DB130 +/* 10FC2C 7F0DB0FC 29214000 */ slti $at, $t1, 0x4000 +/* 10FC30 7F0DB100 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10FC34 7F0DB104 93AE0139 */ lbu $t6, 0x139($sp) +/* 10FC38 7F0DB108 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 10FC3C 7F0DB10C 030BC821 */ addu $t9, $t8, $t3 +/* 10FC40 7F0DB110 A32E0000 */ sb $t6, ($t9) +/* 10FC44 7F0DB114 97AD013C */ lhu $t5, 0x13c($sp) +/* 10FC48 7F0DB118 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 10FC4C 7F0DB11C 240A0001 */ li $t2, 1 +/* 10FC50 7F0DB120 010D7821 */ addu $t7, $t0, $t5 +/* 10FC54 7F0DB124 1000051C */ b .L7F0DC598 +/* 10FC58 7F0DB128 A1EAA800 */ sb $t2, -0x5800($t7) +/* 10FC5C 7F0DB12C 29214000 */ slti $at, $t1, 0x4000 +.L7F0DB130: +/* 10FC60 7F0DB130 14200519 */ bnez $at, .L7F0DC598 +/* 10FC64 7F0DB134 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 10FC68 7F0DB138 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 10FC6C 7F0DB13C 93AC0139 */ lbu $t4, 0x139($sp) +/* 10FC70 7F0DB140 240E0001 */ li $t6, 1 +/* 10FC74 7F0DB144 03095821 */ addu $t3, $t8, $t1 +/* 10FC78 7F0DB148 A16C0000 */ sb $t4, ($t3) +/* 10FC7C 7F0DB14C 97B9013C */ lhu $t9, 0x13c($sp) +/* 10FC80 7F0DB150 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 10FC84 7F0DB154 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 10FC88 7F0DB158 33281800 */ andi $t0, $t9, 0x1800 +/* 10FC8C 7F0DB15C 000868C3 */ sra $t5, $t0, 3 +/* 10FC90 7F0DB160 332A00FF */ andi $t2, $t9, 0xff +/* 10FC94 7F0DB164 01AA7825 */ or $t7, $t5, $t2 +/* 10FC98 7F0DB168 030F4821 */ addu $t1, $t8, $t7 +/* 10FC9C 7F0DB16C 1000050A */ b .L7F0DC598 +/* 10FCA0 7F0DB170 A12E0000 */ sb $t6, ($t1) +spectrum_op_CB_1F: +/* 10FCA4 7F0DB174 320A0001 */ andi $t2, $s0, 1 +/* 10FCA8 7F0DB178 00105843 */ sra $t3, $s0, 1 +/* 10FCAC 7F0DB17C 001141C0 */ sll $t0, $s1, 7 +/* 10FCB0 7F0DB180 01688025 */ or $s0, $t3, $t0 +/* 10FCB4 7F0DB184 321900FF */ andi $t9, $s0, 0xff +/* 10FCB8 7F0DB188 3C0B8009 */ lui $t3, %hi(ptr_pc_keyboard_table_alloc) +/* 10FCBC 7F0DB18C 8D6BE334 */ lw $t3, %lo(ptr_pc_keyboard_table_alloc)($t3) +/* 10FCC0 7F0DB190 2F2D0001 */ sltiu $t5, $t9, 1 +/* 10FCC4 7F0DB194 AFAD0048 */ sw $t5, 0x48($sp) +/* 10FCC8 7F0DB198 03208025 */ move $s0, $t9 +/* 10FCCC 7F0DB19C 333800A8 */ andi $t8, $t9, 0xa8 +/* 10FCD0 7F0DB1A0 A3AA0121 */ sb $t2, 0x121($sp) +/* 10FCD4 7F0DB1A4 032B4021 */ addu $t0, $t9, $t3 +/* 10FCD8 7F0DB1A8 91190000 */ lbu $t9, ($t0) +/* 10FCDC 7F0DB1AC 01587825 */ or $t7, $t2, $t8 +/* 10FCE0 7F0DB1B0 000D4980 */ sll $t1, $t5, 6 +/* 10FCE4 7F0DB1B4 01E96025 */ or $t4, $t7, $t1 +/* 10FCE8 7F0DB1B8 032C8825 */ or $s1, $t9, $t4 +/* 10FCEC 7F0DB1BC 322D00FF */ andi $t5, $s1, 0xff +/* 10FCF0 7F0DB1C0 100004F5 */ b .L7F0DC598 +/* 10FCF4 7F0DB1C4 01A08825 */ move $s1, $t5 +spectrum_op_CB_20: +/* 10FCF8 7F0DB1C8 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 10FCFC 7F0DB1CC 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 10FD00 7F0DB1D0 001249C3 */ sra $t1, $s2, 7 +/* 10FD04 7F0DB1D4 0012C040 */ sll $t8, $s2, 1 +/* 10FD08 7F0DB1D8 331200FF */ andi $s2, $t8, 0xff +/* 10FD0C 7F0DB1DC 2E4F0001 */ sltiu $t7, $s2, 1 +/* 10FD10 7F0DB1E0 AFAF0048 */ sw $t7, 0x48($sp) +/* 10FD14 7F0DB1E4 A3A90120 */ sb $t1, 0x120($sp) +/* 10FD18 7F0DB1E8 024AC021 */ addu $t8, $s2, $t2 +/* 10FD1C 7F0DB1EC 930E0000 */ lbu $t6, ($t8) +/* 10FD20 7F0DB1F0 324B00A8 */ andi $t3, $s2, 0xa8 +/* 10FD24 7F0DB1F4 012B4025 */ or $t0, $t1, $t3 +/* 10FD28 7F0DB1F8 000F6180 */ sll $t4, $t7, 6 +/* 10FD2C 7F0DB1FC 010C6825 */ or $t5, $t0, $t4 +/* 10FD30 7F0DB200 01CD8825 */ or $s1, $t6, $t5 +/* 10FD34 7F0DB204 322F00FF */ andi $t7, $s1, 0xff +/* 10FD38 7F0DB208 100004E3 */ b .L7F0DC598 +/* 10FD3C 7F0DB20C 01E08825 */ move $s1, $t7 +spectrum_op_CB_21: +/* 10FD40 7F0DB210 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 10FD44 7F0DB214 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 10FD48 7F0DB218 001361C3 */ sra $t4, $s3, 7 +/* 10FD4C 7F0DB21C 00135840 */ sll $t3, $s3, 1 +/* 10FD50 7F0DB220 317300FF */ andi $s3, $t3, 0xff +/* 10FD54 7F0DB224 2E680001 */ sltiu $t0, $s3, 1 +/* 10FD58 7F0DB228 AFA80048 */ sw $t0, 0x48($sp) +/* 10FD5C 7F0DB22C A3AC011F */ sb $t4, 0x11f($sp) +/* 10FD60 7F0DB230 02695821 */ addu $t3, $s3, $t1 +/* 10FD64 7F0DB234 91790000 */ lbu $t9, ($t3) +/* 10FD68 7F0DB238 326A00A8 */ andi $t2, $s3, 0xa8 +/* 10FD6C 7F0DB23C 018AC025 */ or $t8, $t4, $t2 +/* 10FD70 7F0DB240 00086980 */ sll $t5, $t0, 6 +/* 10FD74 7F0DB244 030D7825 */ or $t7, $t8, $t5 +/* 10FD78 7F0DB248 032F8825 */ or $s1, $t9, $t7 +/* 10FD7C 7F0DB24C 322800FF */ andi $t0, $s1, 0xff +/* 10FD80 7F0DB250 100004D1 */ b .L7F0DC598 +/* 10FD84 7F0DB254 01008825 */ move $s1, $t0 +spectrum_op_CB_22: +/* 10FD88 7F0DB258 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 10FD8C 7F0DB25C 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 10FD90 7F0DB260 001469C3 */ sra $t5, $s4, 7 +/* 10FD94 7F0DB264 00145040 */ sll $t2, $s4, 1 +/* 10FD98 7F0DB268 315400FF */ andi $s4, $t2, 0xff +/* 10FD9C 7F0DB26C 2E980001 */ sltiu $t8, $s4, 1 +/* 10FDA0 7F0DB270 AFB80048 */ sw $t8, 0x48($sp) +/* 10FDA4 7F0DB274 A3AD011E */ sb $t5, 0x11e($sp) +/* 10FDA8 7F0DB278 028C5021 */ addu $t2, $s4, $t4 +/* 10FDAC 7F0DB27C 914E0000 */ lbu $t6, ($t2) +/* 10FDB0 7F0DB280 328900A8 */ andi $t1, $s4, 0xa8 +/* 10FDB4 7F0DB284 01A95825 */ or $t3, $t5, $t1 +/* 10FDB8 7F0DB288 00187980 */ sll $t7, $t8, 6 +/* 10FDBC 7F0DB28C 016F4025 */ or $t0, $t3, $t7 +/* 10FDC0 7F0DB290 01C88825 */ or $s1, $t6, $t0 +/* 10FDC4 7F0DB294 323800FF */ andi $t8, $s1, 0xff +/* 10FDC8 7F0DB298 100004BF */ b .L7F0DC598 +/* 10FDCC 7F0DB29C 03008825 */ move $s1, $t8 +spectrum_op_CB_23: +/* 10FDD0 7F0DB2A0 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 10FDD4 7F0DB2A4 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 10FDD8 7F0DB2A8 001579C3 */ sra $t7, $s5, 7 +/* 10FDDC 7F0DB2AC 00154840 */ sll $t1, $s5, 1 +/* 10FDE0 7F0DB2B0 313500FF */ andi $s5, $t1, 0xff +/* 10FDE4 7F0DB2B4 2EAB0001 */ sltiu $t3, $s5, 1 +/* 10FDE8 7F0DB2B8 AFAB0048 */ sw $t3, 0x48($sp) +/* 10FDEC 7F0DB2BC A3AF011D */ sb $t7, 0x11d($sp) +/* 10FDF0 7F0DB2C0 02AD4821 */ addu $t1, $s5, $t5 +/* 10FDF4 7F0DB2C4 91390000 */ lbu $t9, ($t1) +/* 10FDF8 7F0DB2C8 32AC00A8 */ andi $t4, $s5, 0xa8 +/* 10FDFC 7F0DB2CC 01EC5025 */ or $t2, $t7, $t4 +/* 10FE00 7F0DB2D0 000B4180 */ sll $t0, $t3, 6 +/* 10FE04 7F0DB2D4 0148C025 */ or $t8, $t2, $t0 +/* 10FE08 7F0DB2D8 03388825 */ or $s1, $t9, $t8 +/* 10FE0C 7F0DB2DC 322B00FF */ andi $t3, $s1, 0xff +/* 10FE10 7F0DB2E0 100004AD */ b .L7F0DC598 +/* 10FE14 7F0DB2E4 01608825 */ move $s1, $t3 +spectrum_op_CB_24: +/* 10FE18 7F0DB2E8 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 10FE1C 7F0DB2EC 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 10FE20 7F0DB2F0 001641C3 */ sra $t0, $s6, 7 +/* 10FE24 7F0DB2F4 00166040 */ sll $t4, $s6, 1 +/* 10FE28 7F0DB2F8 319600FF */ andi $s6, $t4, 0xff +/* 10FE2C 7F0DB2FC 2ECA0001 */ sltiu $t2, $s6, 1 +/* 10FE30 7F0DB300 AFAA0048 */ sw $t2, 0x48($sp) +/* 10FE34 7F0DB304 A3A8011C */ sb $t0, 0x11c($sp) +/* 10FE38 7F0DB308 02CF6021 */ addu $t4, $s6, $t7 +/* 10FE3C 7F0DB30C 918E0000 */ lbu $t6, ($t4) +/* 10FE40 7F0DB310 32CD00A8 */ andi $t5, $s6, 0xa8 +/* 10FE44 7F0DB314 010D4825 */ or $t1, $t0, $t5 +/* 10FE48 7F0DB318 000AC180 */ sll $t8, $t2, 6 +/* 10FE4C 7F0DB31C 01385825 */ or $t3, $t1, $t8 +/* 10FE50 7F0DB320 01CB8825 */ or $s1, $t6, $t3 +/* 10FE54 7F0DB324 322A00FF */ andi $t2, $s1, 0xff +/* 10FE58 7F0DB328 1000049B */ b .L7F0DC598 +/* 10FE5C 7F0DB32C 01408825 */ move $s1, $t2 +spectrum_op_CB_25: +/* 10FE60 7F0DB330 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 10FE64 7F0DB334 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 10FE68 7F0DB338 0017C1C3 */ sra $t8, $s7, 7 +/* 10FE6C 7F0DB33C 00176840 */ sll $t5, $s7, 1 +/* 10FE70 7F0DB340 31B700FF */ andi $s7, $t5, 0xff +/* 10FE74 7F0DB344 2EE90001 */ sltiu $t1, $s7, 1 +/* 10FE78 7F0DB348 AFA90048 */ sw $t1, 0x48($sp) +/* 10FE7C 7F0DB34C A3B8011B */ sb $t8, 0x11b($sp) +/* 10FE80 7F0DB350 02E86821 */ addu $t5, $s7, $t0 +/* 10FE84 7F0DB354 91B90000 */ lbu $t9, ($t5) +/* 10FE88 7F0DB358 32EF00A8 */ andi $t7, $s7, 0xa8 +/* 10FE8C 7F0DB35C 030F6025 */ or $t4, $t8, $t7 +/* 10FE90 7F0DB360 00095980 */ sll $t3, $t1, 6 +/* 10FE94 7F0DB364 018B5025 */ or $t2, $t4, $t3 +/* 10FE98 7F0DB368 032A8825 */ or $s1, $t9, $t2 +/* 10FE9C 7F0DB36C 322900FF */ andi $t1, $s1, 0xff +/* 10FEA0 7F0DB370 10000489 */ b .L7F0DC598 +/* 10FEA4 7F0DB374 01208825 */ move $s1, $t1 +spectrum_op_CB_26: +/* 10FEA8 7F0DB378 8FB8028C */ lw $t8, 0x28c($sp) +/* 10FEAC 7F0DB37C 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 10FEB0 7F0DB380 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 10FEB4 7F0DB384 97AE013C */ lhu $t6, 0x13c($sp) +/* 10FEB8 7F0DB388 270F0007 */ addiu $t7, $t8, 7 +/* 10FEBC 7F0DB38C AFAF028C */ sw $t7, 0x28c($sp) +/* 10FEC0 7F0DB390 01CC5821 */ addu $t3, $t6, $t4 +/* 10FEC4 7F0DB394 91680000 */ lbu $t0, ($t3) +/* 10FEC8 7F0DB398 310D00FF */ andi $t5, $t0, 0xff +/* 10FECC 7F0DB39C 000D79C3 */ sra $t7, $t5, 7 +/* 10FED0 7F0DB3A0 000D5040 */ sll $t2, $t5, 1 +/* 10FED4 7F0DB3A4 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 10FED8 7F0DB3A8 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 10FEDC 7F0DB3AC 314900FF */ andi $t1, $t2, 0xff +/* 10FEE0 7F0DB3B0 A3A80139 */ sb $t0, 0x139($sp) +/* 10FEE4 7F0DB3B4 2D380001 */ sltiu $t8, $t1, 1 +/* 10FEE8 7F0DB3B8 314C00A8 */ andi $t4, $t2, 0xa8 +/* 10FEEC 7F0DB3BC 01EC5825 */ or $t3, $t7, $t4 +/* 10FEF0 7F0DB3C0 AFB80048 */ sw $t8, 0x48($sp) +/* 10FEF4 7F0DB3C4 A3AA0139 */ sb $t2, 0x139($sp) +/* 10FEF8 7F0DB3C8 A3AF011A */ sb $t7, 0x11a($sp) +/* 10FEFC 7F0DB3CC 012D7021 */ addu $t6, $t1, $t5 +/* 10FF00 7F0DB3D0 91CF0000 */ lbu $t7, ($t6) +/* 10FF04 7F0DB3D4 00184180 */ sll $t0, $t8, 6 +/* 10FF08 7F0DB3D8 97B8013C */ lhu $t8, 0x13c($sp) +/* 10FF0C 7F0DB3DC 0168C825 */ or $t9, $t3, $t0 +/* 10FF10 7F0DB3E0 01F98825 */ or $s1, $t7, $t9 +/* 10FF14 7F0DB3E4 322C00FF */ andi $t4, $s1, 0xff +/* 10FF18 7F0DB3E8 2B015B00 */ slti $at, $t8, 0x5b00 +/* 10FF1C 7F0DB3EC 14200007 */ bnez $at, .L7F0DB40C +/* 10FF20 7F0DB3F0 01808825 */ move $s1, $t4 +/* 10FF24 7F0DB3F4 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 10FF28 7F0DB3F8 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 10FF2C 7F0DB3FC 01405825 */ move $t3, $t2 +/* 10FF30 7F0DB400 01185021 */ addu $t2, $t0, $t8 +/* 10FF34 7F0DB404 10000464 */ b .L7F0DC598 +/* 10FF38 7F0DB408 A14B0000 */ sb $t3, ($t2) +.L7F0DB40C: +/* 10FF3C 7F0DB40C 97A9013C */ lhu $t1, 0x13c($sp) +/* 10FF40 7F0DB410 97AB013C */ lhu $t3, 0x13c($sp) +/* 10FF44 7F0DB414 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10FF48 7F0DB418 29215800 */ slti $at, $t1, 0x5800 +/* 10FF4C 7F0DB41C 5420000D */ bnezl $at, .L7F0DB454 +/* 10FF50 7F0DB420 29614000 */ slti $at, $t3, 0x4000 +/* 10FF54 7F0DB424 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10FF58 7F0DB428 93AD0139 */ lbu $t5, 0x139($sp) +/* 10FF5C 7F0DB42C 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 10FF60 7F0DB430 01C97821 */ addu $t7, $t6, $t1 +/* 10FF64 7F0DB434 A1ED0000 */ sb $t5, ($t7) +/* 10FF68 7F0DB438 97A8013C */ lhu $t0, 0x13c($sp) +/* 10FF6C 7F0DB43C 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 10FF70 7F0DB440 24190001 */ li $t9, 1 +/* 10FF74 7F0DB444 0188C021 */ addu $t8, $t4, $t0 +/* 10FF78 7F0DB448 10000453 */ b .L7F0DC598 +/* 10FF7C 7F0DB44C A319A800 */ sb $t9, -0x5800($t8) +/* 10FF80 7F0DB450 29614000 */ slti $at, $t3, 0x4000 +.L7F0DB454: +/* 10FF84 7F0DB454 14200450 */ bnez $at, .L7F0DC598 +/* 10FF88 7F0DB458 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 10FF8C 7F0DB45C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 10FF90 7F0DB460 93AA0139 */ lbu $t2, 0x139($sp) +/* 10FF94 7F0DB464 240D0001 */ li $t5, 1 +/* 10FF98 7F0DB468 01CB4821 */ addu $t1, $t6, $t3 +/* 10FF9C 7F0DB46C A12A0000 */ sb $t2, ($t1) +/* 10FFA0 7F0DB470 97AF013C */ lhu $t7, 0x13c($sp) +/* 10FFA4 7F0DB474 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 10FFA8 7F0DB478 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 10FFAC 7F0DB47C 31EC1800 */ andi $t4, $t7, 0x1800 +/* 10FFB0 7F0DB480 000C40C3 */ sra $t0, $t4, 3 +/* 10FFB4 7F0DB484 31F900FF */ andi $t9, $t7, 0xff +/* 10FFB8 7F0DB488 0119C025 */ or $t8, $t0, $t9 +/* 10FFBC 7F0DB48C 01D85821 */ addu $t3, $t6, $t8 +/* 10FFC0 7F0DB490 10000441 */ b .L7F0DC598 +/* 10FFC4 7F0DB494 A16D0000 */ sb $t5, ($t3) +spectrum_op_CB_27: +/* 10FFC8 7F0DB498 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 10FFCC 7F0DB49C 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 10FFD0 7F0DB4A0 001041C3 */ sra $t0, $s0, 7 +/* 10FFD4 7F0DB4A4 00104840 */ sll $t1, $s0, 1 +/* 10FFD8 7F0DB4A8 313000FF */ andi $s0, $t1, 0xff +/* 10FFDC 7F0DB4AC 2E0F0001 */ sltiu $t7, $s0, 1 +/* 10FFE0 7F0DB4B0 AFAF0048 */ sw $t7, 0x48($sp) +/* 10FFE4 7F0DB4B4 A3A80119 */ sb $t0, 0x119($sp) +/* 10FFE8 7F0DB4B8 020A4821 */ addu $t1, $s0, $t2 +/* 10FFEC 7F0DB4BC 912C0000 */ lbu $t4, ($t1) +/* 10FFF0 7F0DB4C0 321900A8 */ andi $t9, $s0, 0xa8 +/* 10FFF4 7F0DB4C4 01197025 */ or $t6, $t0, $t9 +/* 10FFF8 7F0DB4C8 000F6980 */ sll $t5, $t7, 6 +/* 10FFFC 7F0DB4CC 01CD5825 */ or $t3, $t6, $t5 +/* 110000 7F0DB4D0 018B8825 */ or $s1, $t4, $t3 +/* 110004 7F0DB4D4 322F00FF */ andi $t7, $s1, 0xff +/* 110008 7F0DB4D8 1000042F */ b .L7F0DC598 +/* 11000C 7F0DB4DC 01E08825 */ move $s1, $t7 +spectrum_op_CB_28: +/* 110010 7F0DB4E0 0012CE00 */ sll $t9, $s2, 0x18 +/* 110014 7F0DB4E4 0019C603 */ sra $t8, $t9, 0x18 +/* 110018 7F0DB4E8 00187043 */ sra $t6, $t8, 1 +/* 11001C 7F0DB4EC 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 110020 7F0DB4F0 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 110024 7F0DB4F4 32490001 */ andi $t1, $s2, 1 +/* 110028 7F0DB4F8 31D200FF */ andi $s2, $t6, 0xff +/* 11002C 7F0DB4FC 2E4A0001 */ sltiu $t2, $s2, 1 +/* 110030 7F0DB500 AFAA0048 */ sw $t2, 0x48($sp) +/* 110034 7F0DB504 A3A90118 */ sb $t1, 0x118($sp) +/* 110038 7F0DB508 02587021 */ addu $t6, $s2, $t8 +/* 11003C 7F0DB50C 91CD0000 */ lbu $t5, ($t6) +/* 110040 7F0DB510 324C00A8 */ andi $t4, $s2, 0xa8 +/* 110044 7F0DB514 012C5825 */ or $t3, $t1, $t4 +/* 110048 7F0DB518 000A4180 */ sll $t0, $t2, 6 +/* 11004C 7F0DB51C 0168C825 */ or $t9, $t3, $t0 +/* 110050 7F0DB520 01B98825 */ or $s1, $t5, $t9 +/* 110054 7F0DB524 322A00FF */ andi $t2, $s1, 0xff +/* 110058 7F0DB528 1000041B */ b .L7F0DC598 +/* 11005C 7F0DB52C 01408825 */ move $s1, $t2 +spectrum_op_CB_29: +/* 110060 7F0DB530 00136600 */ sll $t4, $s3, 0x18 +/* 110064 7F0DB534 000C7E03 */ sra $t7, $t4, 0x18 +/* 110068 7F0DB538 000F5843 */ sra $t3, $t7, 1 +/* 11006C 7F0DB53C 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 110070 7F0DB540 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 110074 7F0DB544 326E0001 */ andi $t6, $s3, 1 +/* 110078 7F0DB548 317300FF */ andi $s3, $t3, 0xff +/* 11007C 7F0DB54C 2E780001 */ sltiu $t8, $s3, 1 +/* 110080 7F0DB550 AFB80048 */ sw $t8, 0x48($sp) +/* 110084 7F0DB554 A3AE0117 */ sb $t6, 0x117($sp) +/* 110088 7F0DB558 026F5821 */ addu $t3, $s3, $t7 +/* 11008C 7F0DB55C 91680000 */ lbu $t0, ($t3) +/* 110090 7F0DB560 326D00A8 */ andi $t5, $s3, 0xa8 +/* 110094 7F0DB564 01CDC825 */ or $t9, $t6, $t5 +/* 110098 7F0DB568 00184980 */ sll $t1, $t8, 6 +/* 11009C 7F0DB56C 03296025 */ or $t4, $t9, $t1 +/* 1100A0 7F0DB570 010C8825 */ or $s1, $t0, $t4 +/* 1100A4 7F0DB574 323800FF */ andi $t8, $s1, 0xff +/* 1100A8 7F0DB578 10000407 */ b .L7F0DC598 +/* 1100AC 7F0DB57C 03008825 */ move $s1, $t8 +spectrum_op_CB_2A: +/* 1100B0 7F0DB580 00146E00 */ sll $t5, $s4, 0x18 +/* 1100B4 7F0DB584 000D5603 */ sra $t2, $t5, 0x18 +/* 1100B8 7F0DB588 000AC843 */ sra $t9, $t2, 1 +/* 1100BC 7F0DB58C 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 1100C0 7F0DB590 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 1100C4 7F0DB594 328B0001 */ andi $t3, $s4, 1 +/* 1100C8 7F0DB598 333400FF */ andi $s4, $t9, 0xff +/* 1100CC 7F0DB59C 2E8F0001 */ sltiu $t7, $s4, 1 +/* 1100D0 7F0DB5A0 AFAF0048 */ sw $t7, 0x48($sp) +/* 1100D4 7F0DB5A4 A3AB0116 */ sb $t3, 0x116($sp) +/* 1100D8 7F0DB5A8 028AC821 */ addu $t9, $s4, $t2 +/* 1100DC 7F0DB5AC 93290000 */ lbu $t1, ($t9) +/* 1100E0 7F0DB5B0 328800A8 */ andi $t0, $s4, 0xa8 +/* 1100E4 7F0DB5B4 01686025 */ or $t4, $t3, $t0 +/* 1100E8 7F0DB5B8 000F7180 */ sll $t6, $t7, 6 +/* 1100EC 7F0DB5BC 018E6825 */ or $t5, $t4, $t6 +/* 1100F0 7F0DB5C0 012D8825 */ or $s1, $t1, $t5 +/* 1100F4 7F0DB5C4 322F00FF */ andi $t7, $s1, 0xff +/* 1100F8 7F0DB5C8 100003F3 */ b .L7F0DC598 +/* 1100FC 7F0DB5CC 01E08825 */ move $s1, $t7 +spectrum_op_CB_2B: +/* 110100 7F0DB5D0 00154600 */ sll $t0, $s5, 0x18 +/* 110104 7F0DB5D4 0008C603 */ sra $t8, $t0, 0x18 +/* 110108 7F0DB5D8 00186043 */ sra $t4, $t8, 1 +/* 11010C 7F0DB5DC 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 110110 7F0DB5E0 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 110114 7F0DB5E4 32B90001 */ andi $t9, $s5, 1 +/* 110118 7F0DB5E8 319500FF */ andi $s5, $t4, 0xff +/* 11011C 7F0DB5EC 2EAA0001 */ sltiu $t2, $s5, 1 +/* 110120 7F0DB5F0 AFAA0048 */ sw $t2, 0x48($sp) +/* 110124 7F0DB5F4 A3B90115 */ sb $t9, 0x115($sp) +/* 110128 7F0DB5F8 02B86021 */ addu $t4, $s5, $t8 +/* 11012C 7F0DB5FC 918E0000 */ lbu $t6, ($t4) +/* 110130 7F0DB600 32A900A8 */ andi $t1, $s5, 0xa8 +/* 110134 7F0DB604 03296825 */ or $t5, $t9, $t1 +/* 110138 7F0DB608 000A5980 */ sll $t3, $t2, 6 +/* 11013C 7F0DB60C 01AB4025 */ or $t0, $t5, $t3 +/* 110140 7F0DB610 01C88825 */ or $s1, $t6, $t0 +/* 110144 7F0DB614 322A00FF */ andi $t2, $s1, 0xff +/* 110148 7F0DB618 100003DF */ b .L7F0DC598 +/* 11014C 7F0DB61C 01408825 */ move $s1, $t2 +spectrum_op_CB_2C: +/* 110150 7F0DB620 00164E00 */ sll $t1, $s6, 0x18 +/* 110154 7F0DB624 00097E03 */ sra $t7, $t1, 0x18 +/* 110158 7F0DB628 000F6843 */ sra $t5, $t7, 1 +/* 11015C 7F0DB62C 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 110160 7F0DB630 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 110164 7F0DB634 32CC0001 */ andi $t4, $s6, 1 +/* 110168 7F0DB638 31B600FF */ andi $s6, $t5, 0xff +/* 11016C 7F0DB63C 2ED80001 */ sltiu $t8, $s6, 1 +/* 110170 7F0DB640 AFB80048 */ sw $t8, 0x48($sp) +/* 110174 7F0DB644 A3AC0114 */ sb $t4, 0x114($sp) +/* 110178 7F0DB648 02CF6821 */ addu $t5, $s6, $t7 +/* 11017C 7F0DB64C 91AB0000 */ lbu $t3, ($t5) +/* 110180 7F0DB650 32CE00A8 */ andi $t6, $s6, 0xa8 +/* 110184 7F0DB654 018E4025 */ or $t0, $t4, $t6 +/* 110188 7F0DB658 0018C980 */ sll $t9, $t8, 6 +/* 11018C 7F0DB65C 01194825 */ or $t1, $t0, $t9 +/* 110190 7F0DB660 01698825 */ or $s1, $t3, $t1 +/* 110194 7F0DB664 323800FF */ andi $t8, $s1, 0xff +/* 110198 7F0DB668 100003CB */ b .L7F0DC598 +/* 11019C 7F0DB66C 03008825 */ move $s1, $t8 +spectrum_op_CB_2D: +/* 1101A0 7F0DB670 00177600 */ sll $t6, $s7, 0x18 +/* 1101A4 7F0DB674 000E5603 */ sra $t2, $t6, 0x18 +/* 1101A8 7F0DB678 000A4043 */ sra $t0, $t2, 1 +/* 1101AC 7F0DB67C 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 1101B0 7F0DB680 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 1101B4 7F0DB684 32ED0001 */ andi $t5, $s7, 1 +/* 1101B8 7F0DB688 311700FF */ andi $s7, $t0, 0xff +/* 1101BC 7F0DB68C 2EEF0001 */ sltiu $t7, $s7, 1 +/* 1101C0 7F0DB690 AFAF0048 */ sw $t7, 0x48($sp) +/* 1101C4 7F0DB694 A3AD0113 */ sb $t5, 0x113($sp) +/* 1101C8 7F0DB698 02EA4021 */ addu $t0, $s7, $t2 +/* 1101CC 7F0DB69C 91190000 */ lbu $t9, ($t0) +/* 1101D0 7F0DB6A0 32EB00A8 */ andi $t3, $s7, 0xa8 +/* 1101D4 7F0DB6A4 01AB4825 */ or $t1, $t5, $t3 +/* 1101D8 7F0DB6A8 000F6180 */ sll $t4, $t7, 6 +/* 1101DC 7F0DB6AC 012C7025 */ or $t6, $t1, $t4 +/* 1101E0 7F0DB6B0 032E8825 */ or $s1, $t9, $t6 +/* 1101E4 7F0DB6B4 322F00FF */ andi $t7, $s1, 0xff +/* 1101E8 7F0DB6B8 100003B7 */ b .L7F0DC598 +/* 1101EC 7F0DB6BC 01E08825 */ move $s1, $t7 +spectrum_op_CB_2E: +/* 1101F0 7F0DB6C0 8FAD028C */ lw $t5, 0x28c($sp) +/* 1101F4 7F0DB6C4 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 1101F8 7F0DB6C8 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 1101FC 7F0DB6CC 97B8013C */ lhu $t8, 0x13c($sp) +/* 110200 7F0DB6D0 25AB0007 */ addiu $t3, $t5, 7 +/* 110204 7F0DB6D4 AFAB028C */ sw $t3, 0x28c($sp) +/* 110208 7F0DB6D8 03096021 */ addu $t4, $t8, $t1 +/* 11020C 7F0DB6DC 91880000 */ lbu $t0, ($t4) +/* 110210 7F0DB6E0 A3A80139 */ sb $t0, 0x139($sp) +/* 110214 7F0DB6E4 83AE0139 */ lb $t6, 0x139($sp) +/* 110218 7F0DB6E8 31180001 */ andi $t8, $t0, 1 +/* 11021C 7F0DB6EC A3B80112 */ sb $t8, 0x112($sp) +/* 110220 7F0DB6F0 000E7843 */ sra $t7, $t6, 1 +/* 110224 7F0DB6F4 3C0E8009 */ lui $t6, %hi(ptr_pc_keyboard_table_alloc) +/* 110228 7F0DB6F8 8DCEE334 */ lw $t6, %lo(ptr_pc_keyboard_table_alloc)($t6) +/* 11022C 7F0DB6FC 31ED00FF */ andi $t5, $t7, 0xff +/* 110230 7F0DB700 2DAB0001 */ sltiu $t3, $t5, 1 +/* 110234 7F0DB704 31EC00A8 */ andi $t4, $t7, 0xa8 +/* 110238 7F0DB708 030C5025 */ or $t2, $t8, $t4 +/* 11023C 7F0DB70C AFAB0048 */ sw $t3, 0x48($sp) +/* 110240 7F0DB710 A3AF0139 */ sb $t7, 0x139($sp) +/* 110244 7F0DB714 01AE4821 */ addu $t1, $t5, $t6 +/* 110248 7F0DB718 91380000 */ lbu $t8, ($t1) +/* 11024C 7F0DB71C 000B4180 */ sll $t0, $t3, 6 +/* 110250 7F0DB720 97AB013C */ lhu $t3, 0x13c($sp) +/* 110254 7F0DB724 0148C825 */ or $t9, $t2, $t0 +/* 110258 7F0DB728 03198825 */ or $s1, $t8, $t9 +/* 11025C 7F0DB72C 322C00FF */ andi $t4, $s1, 0xff +/* 110260 7F0DB730 29615B00 */ slti $at, $t3, 0x5b00 +/* 110264 7F0DB734 14200007 */ bnez $at, .L7F0DB754 +/* 110268 7F0DB738 01808825 */ move $s1, $t4 +/* 11026C 7F0DB73C 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 110270 7F0DB740 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 110274 7F0DB744 01E05025 */ move $t2, $t7 +/* 110278 7F0DB748 010B7821 */ addu $t7, $t0, $t3 +/* 11027C 7F0DB74C 10000392 */ b .L7F0DC598 +/* 110280 7F0DB750 A1EA0000 */ sb $t2, ($t7) +.L7F0DB754: +/* 110284 7F0DB754 97AD013C */ lhu $t5, 0x13c($sp) +/* 110288 7F0DB758 97AA013C */ lhu $t2, 0x13c($sp) +/* 11028C 7F0DB75C 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 110290 7F0DB760 29A15800 */ slti $at, $t5, 0x5800 +/* 110294 7F0DB764 5420000D */ bnezl $at, .L7F0DB79C +/* 110298 7F0DB768 29414000 */ slti $at, $t2, 0x4000 +/* 11029C 7F0DB76C 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 1102A0 7F0DB770 93AE0139 */ lbu $t6, 0x139($sp) +/* 1102A4 7F0DB774 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 1102A8 7F0DB778 012DC021 */ addu $t8, $t1, $t5 +/* 1102AC 7F0DB77C A30E0000 */ sb $t6, ($t8) +/* 1102B0 7F0DB780 97A8013C */ lhu $t0, 0x13c($sp) +/* 1102B4 7F0DB784 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 1102B8 7F0DB788 24190001 */ li $t9, 1 +/* 1102BC 7F0DB78C 01885821 */ addu $t3, $t4, $t0 +/* 1102C0 7F0DB790 10000381 */ b .L7F0DC598 +/* 1102C4 7F0DB794 A179A800 */ sb $t9, -0x5800($t3) +/* 1102C8 7F0DB798 29414000 */ slti $at, $t2, 0x4000 +.L7F0DB79C: +/* 1102CC 7F0DB79C 1420037E */ bnez $at, .L7F0DC598 +/* 1102D0 7F0DB7A0 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 1102D4 7F0DB7A4 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 1102D8 7F0DB7A8 93AF0139 */ lbu $t7, 0x139($sp) +/* 1102DC 7F0DB7AC 240E0001 */ li $t6, 1 +/* 1102E0 7F0DB7B0 012A6821 */ addu $t5, $t1, $t2 +/* 1102E4 7F0DB7B4 A1AF0000 */ sb $t7, ($t5) +/* 1102E8 7F0DB7B8 97B8013C */ lhu $t8, 0x13c($sp) +/* 1102EC 7F0DB7BC 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 1102F0 7F0DB7C0 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 1102F4 7F0DB7C4 330C1800 */ andi $t4, $t8, 0x1800 +/* 1102F8 7F0DB7C8 000C40C3 */ sra $t0, $t4, 3 +/* 1102FC 7F0DB7CC 331900FF */ andi $t9, $t8, 0xff +/* 110300 7F0DB7D0 01195825 */ or $t3, $t0, $t9 +/* 110304 7F0DB7D4 012B5021 */ addu $t2, $t1, $t3 +/* 110308 7F0DB7D8 1000036F */ b .L7F0DC598 +/* 11030C 7F0DB7DC A14E0000 */ sb $t6, ($t2) +spectrum_op_CB_2F: +/* 110310 7F0DB7E0 00106E00 */ sll $t5, $s0, 0x18 +/* 110314 7F0DB7E4 000D6603 */ sra $t4, $t5, 0x18 +/* 110318 7F0DB7E8 000CC043 */ sra $t8, $t4, 1 +/* 11031C 7F0DB7EC 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 110320 7F0DB7F0 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 110324 7F0DB7F4 32090001 */ andi $t1, $s0, 1 +/* 110328 7F0DB7F8 331000FF */ andi $s0, $t8, 0xff +/* 11032C 7F0DB7FC 2E190001 */ sltiu $t9, $s0, 1 +/* 110330 7F0DB800 AFB90048 */ sw $t9, 0x48($sp) +/* 110334 7F0DB804 A3A90111 */ sb $t1, 0x111($sp) +/* 110338 7F0DB808 020CC021 */ addu $t8, $s0, $t4 +/* 11033C 7F0DB80C 93080000 */ lbu $t0, ($t8) +/* 110340 7F0DB810 320B00A8 */ andi $t3, $s0, 0xa8 +/* 110344 7F0DB814 012B7025 */ or $t6, $t1, $t3 +/* 110348 7F0DB818 00197980 */ sll $t7, $t9, 6 +/* 11034C 7F0DB81C 01CF6825 */ or $t5, $t6, $t7 +/* 110350 7F0DB820 010D8825 */ or $s1, $t0, $t5 +/* 110354 7F0DB824 323900FF */ andi $t9, $s1, 0xff +/* 110358 7F0DB828 1000035B */ b .L7F0DC598 +/* 11035C 7F0DB82C 03208825 */ move $s1, $t9 +spectrum_op_CB_30: +/* 110360 7F0DB830 00125840 */ sll $t3, $s2, 1 +/* 110364 7F0DB834 356A0001 */ ori $t2, $t3, 1 +/* 110368 7F0DB838 3C0B8009 */ lui $t3, %hi(ptr_pc_keyboard_table_alloc) +/* 11036C 7F0DB83C 8D6BE334 */ lw $t3, %lo(ptr_pc_keyboard_table_alloc)($t3) +/* 110370 7F0DB840 001261C3 */ sra $t4, $s2, 7 +/* 110374 7F0DB844 315200FF */ andi $s2, $t2, 0xff +/* 110378 7F0DB848 2E4F0001 */ sltiu $t7, $s2, 1 +/* 11037C 7F0DB84C AFAF0048 */ sw $t7, 0x48($sp) +/* 110380 7F0DB850 A3AC0110 */ sb $t4, 0x110($sp) +/* 110384 7F0DB854 024B5021 */ addu $t2, $s2, $t3 +/* 110388 7F0DB858 914E0000 */ lbu $t6, ($t2) +/* 11038C 7F0DB85C 325800A8 */ andi $t8, $s2, 0xa8 +/* 110390 7F0DB860 01984025 */ or $t0, $t4, $t8 +/* 110394 7F0DB864 000FC980 */ sll $t9, $t7, 6 +/* 110398 7F0DB868 01194825 */ or $t1, $t0, $t9 +/* 11039C 7F0DB86C 01C98825 */ or $s1, $t6, $t1 +/* 1103A0 7F0DB870 322F00FF */ andi $t7, $s1, 0xff +/* 1103A4 7F0DB874 10000348 */ b .L7F0DC598 +/* 1103A8 7F0DB878 01E08825 */ move $s1, $t7 +spectrum_op_CB_31: +/* 1103AC 7F0DB87C 0013C040 */ sll $t8, $s3, 1 +/* 1103B0 7F0DB880 370D0001 */ ori $t5, $t8, 1 +/* 1103B4 7F0DB884 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 1103B8 7F0DB888 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 1103BC 7F0DB88C 001359C3 */ sra $t3, $s3, 7 +/* 1103C0 7F0DB890 31B300FF */ andi $s3, $t5, 0xff +/* 1103C4 7F0DB894 2E790001 */ sltiu $t9, $s3, 1 +/* 1103C8 7F0DB898 AFB90048 */ sw $t9, 0x48($sp) +/* 1103CC 7F0DB89C A3AB010F */ sb $t3, 0x10f($sp) +/* 1103D0 7F0DB8A0 02786821 */ addu $t5, $s3, $t8 +/* 1103D4 7F0DB8A4 91A80000 */ lbu $t0, ($t5) +/* 1103D8 7F0DB8A8 326A00A8 */ andi $t2, $s3, 0xa8 +/* 1103DC 7F0DB8AC 016A7025 */ or $t6, $t3, $t2 +/* 1103E0 7F0DB8B0 00197980 */ sll $t7, $t9, 6 +/* 1103E4 7F0DB8B4 01CF6025 */ or $t4, $t6, $t7 +/* 1103E8 7F0DB8B8 010C8825 */ or $s1, $t0, $t4 +/* 1103EC 7F0DB8BC 323900FF */ andi $t9, $s1, 0xff +/* 1103F0 7F0DB8C0 10000335 */ b .L7F0DC598 +/* 1103F4 7F0DB8C4 03208825 */ move $s1, $t9 +spectrum_op_CB_32: +/* 1103F8 7F0DB8C8 00145040 */ sll $t2, $s4, 1 +/* 1103FC 7F0DB8CC 35490001 */ ori $t1, $t2, 1 +/* 110400 7F0DB8D0 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 110404 7F0DB8D4 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 110408 7F0DB8D8 0014C1C3 */ sra $t8, $s4, 7 +/* 11040C 7F0DB8DC 313400FF */ andi $s4, $t1, 0xff +/* 110410 7F0DB8E0 2E8F0001 */ sltiu $t7, $s4, 1 +/* 110414 7F0DB8E4 AFAF0048 */ sw $t7, 0x48($sp) +/* 110418 7F0DB8E8 A3B8010E */ sb $t8, 0x10e($sp) +/* 11041C 7F0DB8EC 028A4821 */ addu $t1, $s4, $t2 +/* 110420 7F0DB8F0 912E0000 */ lbu $t6, ($t1) +/* 110424 7F0DB8F4 328D00A8 */ andi $t5, $s4, 0xa8 +/* 110428 7F0DB8F8 030D4025 */ or $t0, $t8, $t5 +/* 11042C 7F0DB8FC 000FC980 */ sll $t9, $t7, 6 +/* 110430 7F0DB900 01195825 */ or $t3, $t0, $t9 +/* 110434 7F0DB904 01CB8825 */ or $s1, $t6, $t3 +/* 110438 7F0DB908 322F00FF */ andi $t7, $s1, 0xff +/* 11043C 7F0DB90C 10000322 */ b .L7F0DC598 +/* 110440 7F0DB910 01E08825 */ move $s1, $t7 +spectrum_op_CB_33: +/* 110444 7F0DB914 00156840 */ sll $t5, $s5, 1 +/* 110448 7F0DB918 35AC0001 */ ori $t4, $t5, 1 +/* 11044C 7F0DB91C 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 110450 7F0DB920 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 110454 7F0DB924 001551C3 */ sra $t2, $s5, 7 +/* 110458 7F0DB928 319500FF */ andi $s5, $t4, 0xff +/* 11045C 7F0DB92C 2EB90001 */ sltiu $t9, $s5, 1 +/* 110460 7F0DB930 AFB90048 */ sw $t9, 0x48($sp) +/* 110464 7F0DB934 A3AA010D */ sb $t2, 0x10d($sp) +/* 110468 7F0DB938 02AD6021 */ addu $t4, $s5, $t5 +/* 11046C 7F0DB93C 91880000 */ lbu $t0, ($t4) +/* 110470 7F0DB940 32A900A8 */ andi $t1, $s5, 0xa8 +/* 110474 7F0DB944 01497025 */ or $t6, $t2, $t1 +/* 110478 7F0DB948 00197980 */ sll $t7, $t9, 6 +/* 11047C 7F0DB94C 01CFC025 */ or $t8, $t6, $t7 +/* 110480 7F0DB950 01188825 */ or $s1, $t0, $t8 +/* 110484 7F0DB954 323900FF */ andi $t9, $s1, 0xff +/* 110488 7F0DB958 1000030F */ b .L7F0DC598 +/* 11048C 7F0DB95C 03208825 */ move $s1, $t9 +spectrum_op_CB_34: +/* 110490 7F0DB960 00164840 */ sll $t1, $s6, 1 +/* 110494 7F0DB964 352B0001 */ ori $t3, $t1, 1 +/* 110498 7F0DB968 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 11049C 7F0DB96C 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 1104A0 7F0DB970 001669C3 */ sra $t5, $s6, 7 +/* 1104A4 7F0DB974 317600FF */ andi $s6, $t3, 0xff +/* 1104A8 7F0DB978 2ECF0001 */ sltiu $t7, $s6, 1 +/* 1104AC 7F0DB97C AFAF0048 */ sw $t7, 0x48($sp) +/* 1104B0 7F0DB980 A3AD010C */ sb $t5, 0x10c($sp) +/* 1104B4 7F0DB984 02C95821 */ addu $t3, $s6, $t1 +/* 1104B8 7F0DB988 916E0000 */ lbu $t6, ($t3) +/* 1104BC 7F0DB98C 32CC00A8 */ andi $t4, $s6, 0xa8 +/* 1104C0 7F0DB990 01AC4025 */ or $t0, $t5, $t4 +/* 1104C4 7F0DB994 000FC980 */ sll $t9, $t7, 6 +/* 1104C8 7F0DB998 01195025 */ or $t2, $t0, $t9 +/* 1104CC 7F0DB99C 01CA8825 */ or $s1, $t6, $t2 +/* 1104D0 7F0DB9A0 322F00FF */ andi $t7, $s1, 0xff +/* 1104D4 7F0DB9A4 100002FC */ b .L7F0DC598 +/* 1104D8 7F0DB9A8 01E08825 */ move $s1, $t7 +spectrum_op_CB_35: +/* 1104DC 7F0DB9AC 00176040 */ sll $t4, $s7, 1 +/* 1104E0 7F0DB9B0 35980001 */ ori $t8, $t4, 1 +/* 1104E4 7F0DB9B4 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 1104E8 7F0DB9B8 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 1104EC 7F0DB9BC 001749C3 */ sra $t1, $s7, 7 +/* 1104F0 7F0DB9C0 331700FF */ andi $s7, $t8, 0xff +/* 1104F4 7F0DB9C4 2EF90001 */ sltiu $t9, $s7, 1 +/* 1104F8 7F0DB9C8 AFB90048 */ sw $t9, 0x48($sp) +/* 1104FC 7F0DB9CC A3A9010B */ sb $t1, 0x10b($sp) +/* 110500 7F0DB9D0 02ECC021 */ addu $t8, $s7, $t4 +/* 110504 7F0DB9D4 93080000 */ lbu $t0, ($t8) +/* 110508 7F0DB9D8 32EB00A8 */ andi $t3, $s7, 0xa8 +/* 11050C 7F0DB9DC 012B7025 */ or $t6, $t1, $t3 +/* 110510 7F0DB9E0 00197980 */ sll $t7, $t9, 6 +/* 110514 7F0DB9E4 01CF6825 */ or $t5, $t6, $t7 +/* 110518 7F0DB9E8 010D8825 */ or $s1, $t0, $t5 +/* 11051C 7F0DB9EC 323900FF */ andi $t9, $s1, 0xff +/* 110520 7F0DB9F0 100002E9 */ b .L7F0DC598 +/* 110524 7F0DB9F4 03208825 */ move $s1, $t9 +spectrum_op_CB_36: +/* 110528 7F0DB9F8 8FA9028C */ lw $t1, 0x28c($sp) +/* 11052C 7F0DB9FC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 110530 7F0DBA00 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 110534 7F0DBA04 97AA013C */ lhu $t2, 0x13c($sp) +/* 110538 7F0DBA08 252B0007 */ addiu $t3, $t1, 7 +/* 11053C 7F0DBA0C AFAB028C */ sw $t3, 0x28c($sp) +/* 110540 7F0DBA10 014E7821 */ addu $t7, $t2, $t6 +/* 110544 7F0DBA14 91EC0000 */ lbu $t4, ($t7) +/* 110548 7F0DBA18 319800FF */ andi $t8, $t4, 0xff +/* 11054C 7F0DBA1C 00186840 */ sll $t5, $t8, 1 +/* 110550 7F0DBA20 35B90001 */ ori $t9, $t5, 1 +/* 110554 7F0DBA24 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 110558 7F0DBA28 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 11055C 7F0DBA2C 332900FF */ andi $t1, $t9, 0xff +/* 110560 7F0DBA30 001851C3 */ sra $t2, $t8, 7 +/* 110564 7F0DBA34 A3AC0139 */ sb $t4, 0x139($sp) +/* 110568 7F0DBA38 2D2B0001 */ sltiu $t3, $t1, 1 +/* 11056C 7F0DBA3C 332F00A8 */ andi $t7, $t9, 0xa8 +/* 110570 7F0DBA40 014F6025 */ or $t4, $t2, $t7 +/* 110574 7F0DBA44 AFAB0048 */ sw $t3, 0x48($sp) +/* 110578 7F0DBA48 A3B90139 */ sb $t9, 0x139($sp) +/* 11057C 7F0DBA4C A3AA010A */ sb $t2, 0x10a($sp) +/* 110580 7F0DBA50 012D7021 */ addu $t6, $t1, $t5 +/* 110584 7F0DBA54 91CA0000 */ lbu $t2, ($t6) +/* 110588 7F0DBA58 000B4180 */ sll $t0, $t3, 6 +/* 11058C 7F0DBA5C 97AB013C */ lhu $t3, 0x13c($sp) +/* 110590 7F0DBA60 0188C025 */ or $t8, $t4, $t0 +/* 110594 7F0DBA64 01588825 */ or $s1, $t2, $t8 +/* 110598 7F0DBA68 322F00FF */ andi $t7, $s1, 0xff +/* 11059C 7F0DBA6C 29615B00 */ slti $at, $t3, 0x5b00 +/* 1105A0 7F0DBA70 14200007 */ bnez $at, .L7F0DBA90 +/* 1105A4 7F0DBA74 01E08825 */ move $s1, $t7 +/* 1105A8 7F0DBA78 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1105AC 7F0DBA7C 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1105B0 7F0DBA80 03206025 */ move $t4, $t9 +/* 1105B4 7F0DBA84 010BC821 */ addu $t9, $t0, $t3 +/* 1105B8 7F0DBA88 100002C3 */ b .L7F0DC598 +/* 1105BC 7F0DBA8C A32C0000 */ sb $t4, ($t9) +.L7F0DBA90: +/* 1105C0 7F0DBA90 97A9013C */ lhu $t1, 0x13c($sp) +/* 1105C4 7F0DBA94 97AC013C */ lhu $t4, 0x13c($sp) +/* 1105C8 7F0DBA98 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1105CC 7F0DBA9C 29215800 */ slti $at, $t1, 0x5800 +/* 1105D0 7F0DBAA0 5420000D */ bnezl $at, .L7F0DBAD8 +/* 1105D4 7F0DBAA4 29814000 */ slti $at, $t4, 0x4000 +/* 1105D8 7F0DBAA8 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1105DC 7F0DBAAC 93AD0139 */ lbu $t5, 0x139($sp) +/* 1105E0 7F0DBAB0 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 1105E4 7F0DBAB4 01C95021 */ addu $t2, $t6, $t1 +/* 1105E8 7F0DBAB8 A14D0000 */ sb $t5, ($t2) +/* 1105EC 7F0DBABC 97A8013C */ lhu $t0, 0x13c($sp) +/* 1105F0 7F0DBAC0 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 1105F4 7F0DBAC4 24180001 */ li $t8, 1 +/* 1105F8 7F0DBAC8 01E85821 */ addu $t3, $t7, $t0 +/* 1105FC 7F0DBACC 100002B2 */ b .L7F0DC598 +/* 110600 7F0DBAD0 A178A800 */ sb $t8, -0x5800($t3) +/* 110604 7F0DBAD4 29814000 */ slti $at, $t4, 0x4000 +.L7F0DBAD8: +/* 110608 7F0DBAD8 142002AF */ bnez $at, .L7F0DC598 +/* 11060C 7F0DBADC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 110610 7F0DBAE0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 110614 7F0DBAE4 93B90139 */ lbu $t9, 0x139($sp) +/* 110618 7F0DBAE8 240D0001 */ li $t5, 1 +/* 11061C 7F0DBAEC 01CC4821 */ addu $t1, $t6, $t4 +/* 110620 7F0DBAF0 A1390000 */ sb $t9, ($t1) +/* 110624 7F0DBAF4 97AA013C */ lhu $t2, 0x13c($sp) +/* 110628 7F0DBAF8 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 11062C 7F0DBAFC 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 110630 7F0DBB00 314F1800 */ andi $t7, $t2, 0x1800 +/* 110634 7F0DBB04 000F40C3 */ sra $t0, $t7, 3 +/* 110638 7F0DBB08 315800FF */ andi $t8, $t2, 0xff +/* 11063C 7F0DBB0C 01185825 */ or $t3, $t0, $t8 +/* 110640 7F0DBB10 01CB6021 */ addu $t4, $t6, $t3 +/* 110644 7F0DBB14 100002A0 */ b .L7F0DC598 +/* 110648 7F0DBB18 A18D0000 */ sb $t5, ($t4) +spectrum_op_CB_37: +/* 11064C 7F0DBB1C 00104840 */ sll $t1, $s0, 1 +/* 110650 7F0DBB20 352F0001 */ ori $t7, $t1, 1 +/* 110654 7F0DBB24 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 110658 7F0DBB28 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 11065C 7F0DBB2C 0010C1C3 */ sra $t8, $s0, 7 +/* 110660 7F0DBB30 31F000FF */ andi $s0, $t7, 0xff +/* 110664 7F0DBB34 2E080001 */ sltiu $t0, $s0, 1 +/* 110668 7F0DBB38 AFA80048 */ sw $t0, 0x48($sp) +/* 11066C 7F0DBB3C A3B80109 */ sb $t8, 0x109($sp) +/* 110670 7F0DBB40 02097821 */ addu $t7, $s0, $t1 +/* 110674 7F0DBB44 91EA0000 */ lbu $t2, ($t7) +/* 110678 7F0DBB48 320E00A8 */ andi $t6, $s0, 0xa8 +/* 11067C 7F0DBB4C 030E5825 */ or $t3, $t8, $t6 +/* 110680 7F0DBB50 00086180 */ sll $t4, $t0, 6 +/* 110684 7F0DBB54 016CC825 */ or $t9, $t3, $t4 +/* 110688 7F0DBB58 01598825 */ or $s1, $t2, $t9 +/* 11068C 7F0DBB5C 322800FF */ andi $t0, $s1, 0xff +/* 110690 7F0DBB60 1000028D */ b .L7F0DC598 +/* 110694 7F0DBB64 01008825 */ move $s1, $t0 +spectrum_op_CB_38: +/* 110698 7F0DBB68 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 11069C 7F0DBB6C 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 1106A0 7F0DBB70 324C0001 */ andi $t4, $s2, 1 +/* 1106A4 7F0DBB74 00127042 */ srl $t6, $s2, 1 +/* 1106A8 7F0DBB78 31D200FF */ andi $s2, $t6, 0xff +/* 1106AC 7F0DBB7C 2E4B0001 */ sltiu $t3, $s2, 1 +/* 1106B0 7F0DBB80 AFAB0048 */ sw $t3, 0x48($sp) +/* 1106B4 7F0DBB84 A3AC0108 */ sb $t4, 0x108($sp) +/* 1106B8 7F0DBB88 02587021 */ addu $t6, $s2, $t8 +/* 1106BC 7F0DBB8C 91CD0000 */ lbu $t5, ($t6) +/* 1106C0 7F0DBB90 324900A8 */ andi $t1, $s2, 0xa8 +/* 1106C4 7F0DBB94 01897825 */ or $t7, $t4, $t1 +/* 1106C8 7F0DBB98 000BC980 */ sll $t9, $t3, 6 +/* 1106CC 7F0DBB9C 01F94025 */ or $t0, $t7, $t9 +/* 1106D0 7F0DBBA0 01A88825 */ or $s1, $t5, $t0 +/* 1106D4 7F0DBBA4 322B00FF */ andi $t3, $s1, 0xff +/* 1106D8 7F0DBBA8 1000027B */ b .L7F0DC598 +/* 1106DC 7F0DBBAC 01608825 */ move $s1, $t3 +spectrum_op_CB_39: +/* 1106E0 7F0DBBB0 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 1106E4 7F0DBBB4 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 1106E8 7F0DBBB8 32790001 */ andi $t9, $s3, 1 +/* 1106EC 7F0DBBBC 00134842 */ srl $t1, $s3, 1 +/* 1106F0 7F0DBBC0 313300FF */ andi $s3, $t1, 0xff +/* 1106F4 7F0DBBC4 2E6F0001 */ sltiu $t7, $s3, 1 +/* 1106F8 7F0DBBC8 AFAF0048 */ sw $t7, 0x48($sp) +/* 1106FC 7F0DBBCC A3B90107 */ sb $t9, 0x107($sp) +/* 110700 7F0DBBD0 026C4821 */ addu $t1, $s3, $t4 +/* 110704 7F0DBBD4 912A0000 */ lbu $t2, ($t1) +/* 110708 7F0DBBD8 327800A8 */ andi $t8, $s3, 0xa8 +/* 11070C 7F0DBBDC 03387025 */ or $t6, $t9, $t8 +/* 110710 7F0DBBE0 000F4180 */ sll $t0, $t7, 6 +/* 110714 7F0DBBE4 01C85825 */ or $t3, $t6, $t0 +/* 110718 7F0DBBE8 014B8825 */ or $s1, $t2, $t3 +/* 11071C 7F0DBBEC 322F00FF */ andi $t7, $s1, 0xff +/* 110720 7F0DBBF0 10000269 */ b .L7F0DC598 +/* 110724 7F0DBBF4 01E08825 */ move $s1, $t7 +spectrum_op_CB_3A: +/* 110728 7F0DBBF8 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 11072C 7F0DBBFC 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 110730 7F0DBC00 32880001 */ andi $t0, $s4, 1 +/* 110734 7F0DBC04 0014C042 */ srl $t8, $s4, 1 +/* 110738 7F0DBC08 331400FF */ andi $s4, $t8, 0xff +/* 11073C 7F0DBC0C 2E8E0001 */ sltiu $t6, $s4, 1 +/* 110740 7F0DBC10 AFAE0048 */ sw $t6, 0x48($sp) +/* 110744 7F0DBC14 A3A80106 */ sb $t0, 0x106($sp) +/* 110748 7F0DBC18 0299C021 */ addu $t8, $s4, $t9 +/* 11074C 7F0DBC1C 930D0000 */ lbu $t5, ($t8) +/* 110750 7F0DBC20 328C00A8 */ andi $t4, $s4, 0xa8 +/* 110754 7F0DBC24 010C4825 */ or $t1, $t0, $t4 +/* 110758 7F0DBC28 000E5980 */ sll $t3, $t6, 6 +/* 11075C 7F0DBC2C 012B7825 */ or $t7, $t1, $t3 +/* 110760 7F0DBC30 01AF8825 */ or $s1, $t5, $t7 +/* 110764 7F0DBC34 322E00FF */ andi $t6, $s1, 0xff +/* 110768 7F0DBC38 10000257 */ b .L7F0DC598 +/* 11076C 7F0DBC3C 01C08825 */ move $s1, $t6 +spectrum_op_CB_3B: +/* 110770 7F0DBC40 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 110774 7F0DBC44 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 110778 7F0DBC48 32AB0001 */ andi $t3, $s5, 1 +/* 11077C 7F0DBC4C 00156042 */ srl $t4, $s5, 1 +/* 110780 7F0DBC50 319500FF */ andi $s5, $t4, 0xff +/* 110784 7F0DBC54 2EA90001 */ sltiu $t1, $s5, 1 +/* 110788 7F0DBC58 AFA90048 */ sw $t1, 0x48($sp) +/* 11078C 7F0DBC5C A3AB0105 */ sb $t3, 0x105($sp) +/* 110790 7F0DBC60 02A86021 */ addu $t4, $s5, $t0 +/* 110794 7F0DBC64 918A0000 */ lbu $t2, ($t4) +/* 110798 7F0DBC68 32B900A8 */ andi $t9, $s5, 0xa8 +/* 11079C 7F0DBC6C 0179C025 */ or $t8, $t3, $t9 +/* 1107A0 7F0DBC70 00097980 */ sll $t7, $t1, 6 +/* 1107A4 7F0DBC74 030F7025 */ or $t6, $t8, $t7 +/* 1107A8 7F0DBC78 014E8825 */ or $s1, $t2, $t6 +/* 1107AC 7F0DBC7C 322900FF */ andi $t1, $s1, 0xff +/* 1107B0 7F0DBC80 10000245 */ b .L7F0DC598 +/* 1107B4 7F0DBC84 01208825 */ move $s1, $t1 +spectrum_op_CB_3C: +/* 1107B8 7F0DBC88 3C0B8009 */ lui $t3, %hi(ptr_pc_keyboard_table_alloc) +/* 1107BC 7F0DBC8C 8D6BE334 */ lw $t3, %lo(ptr_pc_keyboard_table_alloc)($t3) +/* 1107C0 7F0DBC90 32CF0001 */ andi $t7, $s6, 1 +/* 1107C4 7F0DBC94 0016C842 */ srl $t9, $s6, 1 +/* 1107C8 7F0DBC98 333600FF */ andi $s6, $t9, 0xff +/* 1107CC 7F0DBC9C 2ED80001 */ sltiu $t8, $s6, 1 +/* 1107D0 7F0DBCA0 AFB80048 */ sw $t8, 0x48($sp) +/* 1107D4 7F0DBCA4 A3AF0104 */ sb $t7, 0x104($sp) +/* 1107D8 7F0DBCA8 02CBC821 */ addu $t9, $s6, $t3 +/* 1107DC 7F0DBCAC 932D0000 */ lbu $t5, ($t9) +/* 1107E0 7F0DBCB0 32C800A8 */ andi $t0, $s6, 0xa8 +/* 1107E4 7F0DBCB4 01E86025 */ or $t4, $t7, $t0 +/* 1107E8 7F0DBCB8 00187180 */ sll $t6, $t8, 6 +/* 1107EC 7F0DBCBC 018E4825 */ or $t1, $t4, $t6 +/* 1107F0 7F0DBCC0 01A98825 */ or $s1, $t5, $t1 +/* 1107F4 7F0DBCC4 323800FF */ andi $t8, $s1, 0xff +/* 1107F8 7F0DBCC8 10000233 */ b .L7F0DC598 +/* 1107FC 7F0DBCCC 03008825 */ move $s1, $t8 +spectrum_op_CB_3D: +/* 110800 7F0DBCD0 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 110804 7F0DBCD4 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 110808 7F0DBCD8 32EE0001 */ andi $t6, $s7, 1 +/* 11080C 7F0DBCDC 00174042 */ srl $t0, $s7, 1 +/* 110810 7F0DBCE0 311700FF */ andi $s7, $t0, 0xff +/* 110814 7F0DBCE4 2EEC0001 */ sltiu $t4, $s7, 1 +/* 110818 7F0DBCE8 AFAC0048 */ sw $t4, 0x48($sp) +/* 11081C 7F0DBCEC A3AE0103 */ sb $t6, 0x103($sp) +/* 110820 7F0DBCF0 02EF4021 */ addu $t0, $s7, $t7 +/* 110824 7F0DBCF4 910A0000 */ lbu $t2, ($t0) +/* 110828 7F0DBCF8 32EB00A8 */ andi $t3, $s7, 0xa8 +/* 11082C 7F0DBCFC 01CBC825 */ or $t9, $t6, $t3 +/* 110830 7F0DBD00 000C4980 */ sll $t1, $t4, 6 +/* 110834 7F0DBD04 0329C025 */ or $t8, $t9, $t1 +/* 110838 7F0DBD08 01588825 */ or $s1, $t2, $t8 +/* 11083C 7F0DBD0C 322C00FF */ andi $t4, $s1, 0xff +/* 110840 7F0DBD10 10000221 */ b .L7F0DC598 +/* 110844 7F0DBD14 01808825 */ move $s1, $t4 +spectrum_op_CB_3E: +/* 110848 7F0DBD18 8FAE028C */ lw $t6, 0x28c($sp) +/* 11084C 7F0DBD1C 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 110850 7F0DBD20 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 110854 7F0DBD24 97AD013C */ lhu $t5, 0x13c($sp) +/* 110858 7F0DBD28 25CB0007 */ addiu $t3, $t6, 7 +/* 11085C 7F0DBD2C AFAB028C */ sw $t3, 0x28c($sp) +/* 110860 7F0DBD30 01B94821 */ addu $t1, $t5, $t9 +/* 110864 7F0DBD34 912F0000 */ lbu $t7, ($t1) +/* 110868 7F0DBD38 31E800FF */ andi $t0, $t7, 0xff +/* 11086C 7F0DBD3C 310B0001 */ andi $t3, $t0, 1 +/* 110870 7F0DBD40 0008C042 */ srl $t8, $t0, 1 +/* 110874 7F0DBD44 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 110878 7F0DBD48 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 11087C 7F0DBD4C 330C00FF */ andi $t4, $t8, 0xff +/* 110880 7F0DBD50 A3AF0139 */ sb $t7, 0x139($sp) +/* 110884 7F0DBD54 2D8E0001 */ sltiu $t6, $t4, 1 +/* 110888 7F0DBD58 331900A8 */ andi $t9, $t8, 0xa8 +/* 11088C 7F0DBD5C 01794825 */ or $t1, $t3, $t9 +/* 110890 7F0DBD60 AFAE0048 */ sw $t6, 0x48($sp) +/* 110894 7F0DBD64 A3B80139 */ sb $t8, 0x139($sp) +/* 110898 7F0DBD68 A3AB0102 */ sb $t3, 0x102($sp) +/* 11089C 7F0DBD6C 01886821 */ addu $t5, $t4, $t0 +/* 1108A0 7F0DBD70 91AB0000 */ lbu $t3, ($t5) +/* 1108A4 7F0DBD74 000E7980 */ sll $t7, $t6, 6 +/* 1108A8 7F0DBD78 97AE013C */ lhu $t6, 0x13c($sp) +/* 1108AC 7F0DBD7C 012F5025 */ or $t2, $t1, $t7 +/* 1108B0 7F0DBD80 016A8825 */ or $s1, $t3, $t2 +/* 1108B4 7F0DBD84 323900FF */ andi $t9, $s1, 0xff +/* 1108B8 7F0DBD88 29C15B00 */ slti $at, $t6, 0x5b00 +/* 1108BC 7F0DBD8C 14200007 */ bnez $at, .L7F0DBDAC +/* 1108C0 7F0DBD90 03208825 */ move $s1, $t9 +/* 1108C4 7F0DBD94 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 1108C8 7F0DBD98 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 1108CC 7F0DBD9C 03004825 */ move $t1, $t8 +/* 1108D0 7F0DBDA0 01EEC021 */ addu $t8, $t7, $t6 +/* 1108D4 7F0DBDA4 100001FC */ b .L7F0DC598 +/* 1108D8 7F0DBDA8 A3090000 */ sb $t1, ($t8) +.L7F0DBDAC: +/* 1108DC 7F0DBDAC 97AC013C */ lhu $t4, 0x13c($sp) +/* 1108E0 7F0DBDB0 97A9013C */ lhu $t1, 0x13c($sp) +/* 1108E4 7F0DBDB4 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1108E8 7F0DBDB8 29815800 */ slti $at, $t4, 0x5800 +/* 1108EC 7F0DBDBC 5420000D */ bnezl $at, .L7F0DBDF4 +/* 1108F0 7F0DBDC0 29214000 */ slti $at, $t1, 0x4000 +/* 1108F4 7F0DBDC4 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1108F8 7F0DBDC8 93A80139 */ lbu $t0, 0x139($sp) +/* 1108FC 7F0DBDCC 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 110900 7F0DBDD0 01AC5821 */ addu $t3, $t5, $t4 +/* 110904 7F0DBDD4 A1680000 */ sb $t0, ($t3) +/* 110908 7F0DBDD8 97AF013C */ lhu $t7, 0x13c($sp) +/* 11090C 7F0DBDDC 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 110910 7F0DBDE0 240A0001 */ li $t2, 1 +/* 110914 7F0DBDE4 032F7021 */ addu $t6, $t9, $t7 +/* 110918 7F0DBDE8 100001EB */ b .L7F0DC598 +/* 11091C 7F0DBDEC A1CAA800 */ sb $t2, -0x5800($t6) +/* 110920 7F0DBDF0 29214000 */ slti $at, $t1, 0x4000 +.L7F0DBDF4: +/* 110924 7F0DBDF4 142001E8 */ bnez $at, .L7F0DC598 +/* 110928 7F0DBDF8 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 11092C 7F0DBDFC 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 110930 7F0DBE00 93B80139 */ lbu $t8, 0x139($sp) +/* 110934 7F0DBE04 24080001 */ li $t0, 1 +/* 110938 7F0DBE08 01A96021 */ addu $t4, $t5, $t1 +/* 11093C 7F0DBE0C A1980000 */ sb $t8, ($t4) +/* 110940 7F0DBE10 97AB013C */ lhu $t3, 0x13c($sp) +/* 110944 7F0DBE14 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 110948 7F0DBE18 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 11094C 7F0DBE1C 31791800 */ andi $t9, $t3, 0x1800 +/* 110950 7F0DBE20 001978C3 */ sra $t7, $t9, 3 +/* 110954 7F0DBE24 316A00FF */ andi $t2, $t3, 0xff +/* 110958 7F0DBE28 01EA7025 */ or $t6, $t7, $t2 +/* 11095C 7F0DBE2C 01AE4821 */ addu $t1, $t5, $t6 +/* 110960 7F0DBE30 100001D9 */ b .L7F0DC598 +/* 110964 7F0DBE34 A1280000 */ sb $t0, ($t1) +spectrum_op_CB_3F: +/* 110968 7F0DBE38 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 11096C 7F0DBE3C 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 110970 7F0DBE40 320F0001 */ andi $t7, $s0, 1 +/* 110974 7F0DBE44 00106042 */ srl $t4, $s0, 1 +/* 110978 7F0DBE48 319000FF */ andi $s0, $t4, 0xff +/* 11097C 7F0DBE4C 2E0B0001 */ sltiu $t3, $s0, 1 +/* 110980 7F0DBE50 AFAB0048 */ sw $t3, 0x48($sp) +/* 110984 7F0DBE54 A3AF0101 */ sb $t7, 0x101($sp) +/* 110988 7F0DBE58 02186021 */ addu $t4, $s0, $t8 +/* 11098C 7F0DBE5C 91990000 */ lbu $t9, ($t4) +/* 110990 7F0DBE60 320A00A8 */ andi $t2, $s0, 0xa8 +/* 110994 7F0DBE64 01EA6825 */ or $t5, $t7, $t2 +/* 110998 7F0DBE68 000B4180 */ sll $t0, $t3, 6 +/* 11099C 7F0DBE6C 01A84825 */ or $t1, $t5, $t0 +/* 1109A0 7F0DBE70 03298825 */ or $s1, $t9, $t1 +/* 1109A4 7F0DBE74 322B00FF */ andi $t3, $s1, 0xff +/* 1109A8 7F0DBE78 100001C7 */ b .L7F0DC598 +/* 1109AC 7F0DBE7C 01608825 */ move $s1, $t3 +.L7F0DBE80: +/* 1109B0 7F0DBE80 000F50C3 */ sra $t2, $t7, 3 +/* 1109B4 7F0DBE84 31ED00C7 */ andi $t5, $t7, 0xc7 +/* 1109B8 7F0DBE88 314E0007 */ andi $t6, $t2, 7 +/* 1109BC 7F0DBE8C 29A10088 */ slti $at, $t5, 0x88 +/* 1109C0 7F0DBE90 A3AE0100 */ sb $t6, 0x100($sp) +/* 1109C4 7F0DBE94 1420000A */ bnez $at, .L7F0DBEC0 +/* 1109C8 7F0DBE98 AFAD0048 */ sw $t5, 0x48($sp) +/* 1109CC 7F0DBE9C 25A8FF40 */ addiu $t0, $t5, -0xc0 +/* 1109D0 7F0DBEA0 2D010008 */ sltiu $at, $t0, 8 +/* 1109D4 7F0DBEA4 102001BC */ beqz $at, .L7F0DC598 +/* 1109D8 7F0DBEA8 00084080 */ sll $t0, $t0, 2 +/* 1109DC 7F0DBEAC 3C018006 */ lui $at, %hi(jpt_8005C62C) +/* 1109E0 7F0DBEB0 00280821 */ addu $at, $at, $t0 +/* 1109E4 7F0DBEB4 8C28C62C */ lw $t0, %lo(jpt_8005C62C)($at) +/* 1109E8 7F0DBEB8 01000008 */ jr $t0 +/* 1109EC 7F0DBEBC 00000000 */ nop +.L7F0DBEC0: +/* 1109F0 7F0DBEC0 8FB80048 */ lw $t8, 0x48($sp) +/* 1109F4 7F0DBEC4 8FB90048 */ lw $t9, 0x48($sp) +/* 1109F8 7F0DBEC8 2B010048 */ slti $at, $t8, 0x48 +/* 1109FC 7F0DBECC 1420000A */ bnez $at, .L7F0DBEF8 +/* 110A00 7F0DBED0 2729FFC0 */ addiu $t1, $t9, -0x40 +/* 110A04 7F0DBED4 270CFF80 */ addiu $t4, $t8, -0x80 +/* 110A08 7F0DBED8 2D810008 */ sltiu $at, $t4, 8 +/* 110A0C 7F0DBEDC 102001AE */ beqz $at, .L7F0DC598 +/* 110A10 7F0DBEE0 000C6080 */ sll $t4, $t4, 2 +/* 110A14 7F0DBEE4 3C018006 */ lui $at, %hi(jpt_8005C64C) +/* 110A18 7F0DBEE8 002C0821 */ addu $at, $at, $t4 +/* 110A1C 7F0DBEEC 8C2CC64C */ lw $t4, %lo(jpt_8005C64C)($at) +/* 110A20 7F0DBEF0 01800008 */ jr $t4 +/* 110A24 7F0DBEF4 00000000 */ nop +.L7F0DBEF8: +/* 110A28 7F0DBEF8 2D210008 */ sltiu $at, $t1, 8 +/* 110A2C 7F0DBEFC 102001A6 */ beqz $at, .L7F0DC598 +/* 110A30 7F0DBF00 00094880 */ sll $t1, $t1, 2 +/* 110A34 7F0DBF04 3C018006 */ lui $at, %hi(jpt_8005C66C) +/* 110A38 7F0DBF08 00290821 */ addu $at, $at, $t1 +/* 110A3C 7F0DBF0C 8C29C66C */ lw $t1, %lo(jpt_8005C66C)($at) +/* 110A40 7F0DBF10 01200008 */ jr $t1 +/* 110A44 7F0DBF14 00000000 */ nop +spectrum_op_BIT_x_B: +/* 110A48 7F0DBF18 93AB0100 */ lbu $t3, 0x100($sp) +/* 110A4C 7F0DBF1C 240A0001 */ li $t2, 1 +/* 110A50 7F0DBF20 24080054 */ li $t0, 84 +/* 110A54 7F0DBF24 016A7004 */ sllv $t6, $t2, $t3 +/* 110A58 7F0DBF28 024E7824 */ and $t7, $s2, $t6 +/* 110A5C 7F0DBF2C 11E00003 */ beqz $t7, .L7F0DBF3C +/* 110A60 7F0DBF30 240D0010 */ li $t5, 16 +/* 110A64 7F0DBF34 10000002 */ b .L7F0DBF40 +/* 110A68 7F0DBF38 AFAD0044 */ sw $t5, 0x44($sp) +.L7F0DBF3C: +/* 110A6C 7F0DBF3C AFA80044 */ sw $t0, 0x44($sp) +.L7F0DBF40: +/* 110A70 7F0DBF40 8FB80044 */ lw $t8, 0x44($sp) +/* 110A74 7F0DBF44 322C0001 */ andi $t4, $s1, 1 +/* 110A78 7F0DBF48 32490028 */ andi $t1, $s2, 0x28 +/* 110A7C 7F0DBF4C 030CC825 */ or $t9, $t8, $t4 +/* 110A80 7F0DBF50 03298825 */ or $s1, $t9, $t1 +/* 110A84 7F0DBF54 322A00FF */ andi $t2, $s1, 0xff +/* 110A88 7F0DBF58 1000018F */ b .L7F0DC598 +/* 110A8C 7F0DBF5C 01408825 */ move $s1, $t2 +spectrum_op_BIT_x_C: +/* 110A90 7F0DBF60 93AB0100 */ lbu $t3, 0x100($sp) +/* 110A94 7F0DBF64 240E0001 */ li $t6, 1 +/* 110A98 7F0DBF68 24180054 */ li $t8, 84 +/* 110A9C 7F0DBF6C 016E7804 */ sllv $t7, $t6, $t3 +/* 110AA0 7F0DBF70 026F6824 */ and $t5, $s3, $t7 +/* 110AA4 7F0DBF74 11A00003 */ beqz $t5, .L7F0DBF84 +/* 110AA8 7F0DBF78 24080010 */ li $t0, 16 +/* 110AAC 7F0DBF7C 10000002 */ b .L7F0DBF88 +/* 110AB0 7F0DBF80 AFA80048 */ sw $t0, 0x48($sp) +.L7F0DBF84: +/* 110AB4 7F0DBF84 AFB80048 */ sw $t8, 0x48($sp) +.L7F0DBF88: +/* 110AB8 7F0DBF88 8FAC0048 */ lw $t4, 0x48($sp) +/* 110ABC 7F0DBF8C 32390001 */ andi $t9, $s1, 1 +/* 110AC0 7F0DBF90 326A0028 */ andi $t2, $s3, 0x28 +/* 110AC4 7F0DBF94 01994825 */ or $t1, $t4, $t9 +/* 110AC8 7F0DBF98 012A8825 */ or $s1, $t1, $t2 +/* 110ACC 7F0DBF9C 322E00FF */ andi $t6, $s1, 0xff +/* 110AD0 7F0DBFA0 1000017D */ b .L7F0DC598 +/* 110AD4 7F0DBFA4 01C08825 */ move $s1, $t6 +spectrum_op_BIT_x_D: +/* 110AD8 7F0DBFA8 93AB0100 */ lbu $t3, 0x100($sp) +/* 110ADC 7F0DBFAC 240F0001 */ li $t7, 1 +/* 110AE0 7F0DBFB0 240C0054 */ li $t4, 84 +/* 110AE4 7F0DBFB4 016F6804 */ sllv $t5, $t7, $t3 +/* 110AE8 7F0DBFB8 028D4024 */ and $t0, $s4, $t5 +/* 110AEC 7F0DBFBC 11000003 */ beqz $t0, .L7F0DBFCC +/* 110AF0 7F0DBFC0 24180010 */ li $t8, 16 +/* 110AF4 7F0DBFC4 10000002 */ b .L7F0DBFD0 +/* 110AF8 7F0DBFC8 AFB80048 */ sw $t8, 0x48($sp) +.L7F0DBFCC: +/* 110AFC 7F0DBFCC AFAC0048 */ sw $t4, 0x48($sp) +.L7F0DBFD0: +/* 110B00 7F0DBFD0 8FB90048 */ lw $t9, 0x48($sp) +/* 110B04 7F0DBFD4 32290001 */ andi $t1, $s1, 1 +/* 110B08 7F0DBFD8 328E0028 */ andi $t6, $s4, 0x28 +/* 110B0C 7F0DBFDC 03295025 */ or $t2, $t9, $t1 +/* 110B10 7F0DBFE0 014E8825 */ or $s1, $t2, $t6 +/* 110B14 7F0DBFE4 322F00FF */ andi $t7, $s1, 0xff +/* 110B18 7F0DBFE8 1000016B */ b .L7F0DC598 +/* 110B1C 7F0DBFEC 01E08825 */ move $s1, $t7 +spectrum_op_BIT_x_E: +/* 110B20 7F0DBFF0 93AB0100 */ lbu $t3, 0x100($sp) +/* 110B24 7F0DBFF4 240D0001 */ li $t5, 1 +/* 110B28 7F0DBFF8 24190054 */ li $t9, 84 +/* 110B2C 7F0DBFFC 016D4004 */ sllv $t0, $t5, $t3 +/* 110B30 7F0DC000 02A8C024 */ and $t8, $s5, $t0 +/* 110B34 7F0DC004 13000003 */ beqz $t8, .L7F0DC014 +/* 110B38 7F0DC008 240C0010 */ li $t4, 16 +/* 110B3C 7F0DC00C 10000002 */ b .L7F0DC018 +/* 110B40 7F0DC010 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0DC014: +/* 110B44 7F0DC014 AFB90048 */ sw $t9, 0x48($sp) +.L7F0DC018: +/* 110B48 7F0DC018 8FA90048 */ lw $t1, 0x48($sp) +/* 110B4C 7F0DC01C 322A0001 */ andi $t2, $s1, 1 +/* 110B50 7F0DC020 32AF0028 */ andi $t7, $s5, 0x28 +/* 110B54 7F0DC024 012A7025 */ or $t6, $t1, $t2 +/* 110B58 7F0DC028 01CF8825 */ or $s1, $t6, $t7 +/* 110B5C 7F0DC02C 322D00FF */ andi $t5, $s1, 0xff +/* 110B60 7F0DC030 10000159 */ b .L7F0DC598 +/* 110B64 7F0DC034 01A08825 */ move $s1, $t5 +spectrum_op_BIT_x_H: +/* 110B68 7F0DC038 93AB0100 */ lbu $t3, 0x100($sp) +/* 110B6C 7F0DC03C 24080001 */ li $t0, 1 +/* 110B70 7F0DC040 24090054 */ li $t1, 84 +/* 110B74 7F0DC044 0168C004 */ sllv $t8, $t0, $t3 +/* 110B78 7F0DC048 02D86024 */ and $t4, $s6, $t8 +/* 110B7C 7F0DC04C 11800003 */ beqz $t4, .L7F0DC05C +/* 110B80 7F0DC050 24190010 */ li $t9, 16 +/* 110B84 7F0DC054 10000002 */ b .L7F0DC060 +/* 110B88 7F0DC058 AFB90048 */ sw $t9, 0x48($sp) +.L7F0DC05C: +/* 110B8C 7F0DC05C AFA90048 */ sw $t1, 0x48($sp) +.L7F0DC060: +/* 110B90 7F0DC060 8FAA0048 */ lw $t2, 0x48($sp) +/* 110B94 7F0DC064 322E0001 */ andi $t6, $s1, 1 +/* 110B98 7F0DC068 32CD0028 */ andi $t5, $s6, 0x28 +/* 110B9C 7F0DC06C 014E7825 */ or $t7, $t2, $t6 +/* 110BA0 7F0DC070 01ED8825 */ or $s1, $t7, $t5 +/* 110BA4 7F0DC074 322800FF */ andi $t0, $s1, 0xff +/* 110BA8 7F0DC078 10000147 */ b .L7F0DC598 +/* 110BAC 7F0DC07C 01008825 */ move $s1, $t0 +spectrum_op_BIT_x_L: +/* 110BB0 7F0DC080 93AB0100 */ lbu $t3, 0x100($sp) +/* 110BB4 7F0DC084 24180001 */ li $t8, 1 +/* 110BB8 7F0DC088 240A0054 */ li $t2, 84 +/* 110BBC 7F0DC08C 01786004 */ sllv $t4, $t8, $t3 +/* 110BC0 7F0DC090 02ECC824 */ and $t9, $s7, $t4 +/* 110BC4 7F0DC094 13200003 */ beqz $t9, .L7F0DC0A4 +/* 110BC8 7F0DC098 24090010 */ li $t1, 16 +/* 110BCC 7F0DC09C 10000002 */ b .L7F0DC0A8 +/* 110BD0 7F0DC0A0 AFA90048 */ sw $t1, 0x48($sp) +.L7F0DC0A4: +/* 110BD4 7F0DC0A4 AFAA0048 */ sw $t2, 0x48($sp) +.L7F0DC0A8: +/* 110BD8 7F0DC0A8 8FAE0048 */ lw $t6, 0x48($sp) +/* 110BDC 7F0DC0AC 322F0001 */ andi $t7, $s1, 1 +/* 110BE0 7F0DC0B0 32E80028 */ andi $t0, $s7, 0x28 +/* 110BE4 7F0DC0B4 01CF6825 */ or $t5, $t6, $t7 +/* 110BE8 7F0DC0B8 01A88825 */ or $s1, $t5, $t0 +/* 110BEC 7F0DC0BC 323800FF */ andi $t8, $s1, 0xff +/* 110BF0 7F0DC0C0 10000135 */ b .L7F0DC598 +/* 110BF4 7F0DC0C4 03008825 */ move $s1, $t8 +spectrum_op_BIT_x_HL: +/* 110BF8 7F0DC0C8 8FAB028C */ lw $t3, 0x28c($sp) +/* 110BFC 7F0DC0CC 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 110C00 7F0DC0D0 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 110C04 7F0DC0D4 97B9013C */ lhu $t9, 0x13c($sp) +/* 110C08 7F0DC0D8 256C0004 */ addiu $t4, $t3, 4 +/* 110C0C 7F0DC0DC 93AF0100 */ lbu $t7, 0x100($sp) +/* 110C10 7F0DC0E0 AFAC028C */ sw $t4, 0x28c($sp) +/* 110C14 7F0DC0E4 03295021 */ addu $t2, $t9, $t1 +/* 110C18 7F0DC0E8 914E0000 */ lbu $t6, ($t2) +/* 110C1C 7F0DC0EC 240D0001 */ li $t5, 1 +/* 110C20 7F0DC0F0 01ED4004 */ sllv $t0, $t5, $t7 +/* 110C24 7F0DC0F4 01C8C024 */ and $t8, $t6, $t0 +/* 110C28 7F0DC0F8 13000004 */ beqz $t8, .L7F0DC10C +/* 110C2C 7F0DC0FC A3AE0139 */ sb $t6, 0x139($sp) +/* 110C30 7F0DC100 240B0010 */ li $t3, 16 +/* 110C34 7F0DC104 10000003 */ b .L7F0DC114 +/* 110C38 7F0DC108 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0DC10C: +/* 110C3C 7F0DC10C 240C0054 */ li $t4, 84 +/* 110C40 7F0DC110 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0DC114: +/* 110C44 7F0DC114 8FB90048 */ lw $t9, 0x48($sp) +/* 110C48 7F0DC118 93AD0139 */ lbu $t5, 0x139($sp) +/* 110C4C 7F0DC11C 97A8013C */ lhu $t0, 0x13c($sp) +/* 110C50 7F0DC120 32290001 */ andi $t1, $s1, 1 +/* 110C54 7F0DC124 03295025 */ or $t2, $t9, $t1 +/* 110C58 7F0DC128 31AF0028 */ andi $t7, $t5, 0x28 +/* 110C5C 7F0DC12C 014F8825 */ or $s1, $t2, $t7 +/* 110C60 7F0DC130 322E00FF */ andi $t6, $s1, 0xff +/* 110C64 7F0DC134 29015B00 */ slti $at, $t0, 0x5b00 +/* 110C68 7F0DC138 14200007 */ bnez $at, .L7F0DC158 +/* 110C6C 7F0DC13C 01C08825 */ move $s1, $t6 +/* 110C70 7F0DC140 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 110C74 7F0DC144 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 110C78 7F0DC148 93B80139 */ lbu $t8, 0x139($sp) +/* 110C7C 7F0DC14C 01686021 */ addu $t4, $t3, $t0 +/* 110C80 7F0DC150 10000111 */ b .L7F0DC598 +/* 110C84 7F0DC154 A1980000 */ sb $t8, ($t4) +.L7F0DC158: +/* 110C88 7F0DC158 97B9013C */ lhu $t9, 0x13c($sp) +/* 110C8C 7F0DC15C 97B8013C */ lhu $t8, 0x13c($sp) +/* 110C90 7F0DC160 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 110C94 7F0DC164 2B215800 */ slti $at, $t9, 0x5800 +/* 110C98 7F0DC168 5420000D */ bnezl $at, .L7F0DC1A0 +/* 110C9C 7F0DC16C 2B014000 */ slti $at, $t8, 0x4000 +/* 110CA0 7F0DC170 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 110CA4 7F0DC174 93A90139 */ lbu $t1, 0x139($sp) +/* 110CA8 7F0DC178 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 110CAC 7F0DC17C 01B95021 */ addu $t2, $t5, $t9 +/* 110CB0 7F0DC180 A1490000 */ sb $t1, ($t2) +/* 110CB4 7F0DC184 97AB013C */ lhu $t3, 0x13c($sp) +/* 110CB8 7F0DC188 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 110CBC 7F0DC18C 240F0001 */ li $t7, 1 +/* 110CC0 7F0DC190 01CB4021 */ addu $t0, $t6, $t3 +/* 110CC4 7F0DC194 10000100 */ b .L7F0DC598 +/* 110CC8 7F0DC198 A10FA800 */ sb $t7, -0x5800($t0) +/* 110CCC 7F0DC19C 2B014000 */ slti $at, $t8, 0x4000 +.L7F0DC1A0: +/* 110CD0 7F0DC1A0 142000FD */ bnez $at, .L7F0DC598 +/* 110CD4 7F0DC1A4 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 110CD8 7F0DC1A8 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 110CDC 7F0DC1AC 93AC0139 */ lbu $t4, 0x139($sp) +/* 110CE0 7F0DC1B0 24090001 */ li $t1, 1 +/* 110CE4 7F0DC1B4 01B8C821 */ addu $t9, $t5, $t8 +/* 110CE8 7F0DC1B8 A32C0000 */ sb $t4, ($t9) +/* 110CEC 7F0DC1BC 97AA013C */ lhu $t2, 0x13c($sp) +/* 110CF0 7F0DC1C0 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 110CF4 7F0DC1C4 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 110CF8 7F0DC1C8 314E1800 */ andi $t6, $t2, 0x1800 +/* 110CFC 7F0DC1CC 000E58C3 */ sra $t3, $t6, 3 +/* 110D00 7F0DC1D0 314F00FF */ andi $t7, $t2, 0xff +/* 110D04 7F0DC1D4 016F4025 */ or $t0, $t3, $t7 +/* 110D08 7F0DC1D8 01A8C021 */ addu $t8, $t5, $t0 +/* 110D0C 7F0DC1DC 100000EE */ b .L7F0DC598 +/* 110D10 7F0DC1E0 A3090000 */ sb $t1, ($t8) +spectrum_op_BIT_x_A: +/* 110D14 7F0DC1E4 93AC0100 */ lbu $t4, 0x100($sp) +/* 110D18 7F0DC1E8 24190001 */ li $t9, 1 +/* 110D1C 7F0DC1EC 240F0054 */ li $t7, 84 +/* 110D20 7F0DC1F0 01997004 */ sllv $t6, $t9, $t4 +/* 110D24 7F0DC1F4 020E5024 */ and $t2, $s0, $t6 +/* 110D28 7F0DC1F8 11400003 */ beqz $t2, .L7F0DC208 +/* 110D2C 7F0DC1FC 240B0010 */ li $t3, 16 +/* 110D30 7F0DC200 10000002 */ b .L7F0DC20C +/* 110D34 7F0DC204 AFAB0048 */ sw $t3, 0x48($sp) +.L7F0DC208: +/* 110D38 7F0DC208 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0DC20C: +/* 110D3C 7F0DC20C 8FAD0048 */ lw $t5, 0x48($sp) +/* 110D40 7F0DC210 32280001 */ andi $t0, $s1, 1 +/* 110D44 7F0DC214 32180028 */ andi $t8, $s0, 0x28 +/* 110D48 7F0DC218 01A84825 */ or $t1, $t5, $t0 +/* 110D4C 7F0DC21C 01388825 */ or $s1, $t1, $t8 +/* 110D50 7F0DC220 323900FF */ andi $t9, $s1, 0xff +/* 110D54 7F0DC224 100000DC */ b .L7F0DC598 +/* 110D58 7F0DC228 03208825 */ move $s1, $t9 +spectrum_op_RES_x_B: +/* 110D5C 7F0DC22C 93AC0100 */ lbu $t4, 0x100($sp) +/* 110D60 7F0DC230 240E0001 */ li $t6, 1 +/* 110D64 7F0DC234 018E5004 */ sllv $t2, $t6, $t4 +/* 110D68 7F0DC238 01405827 */ not $t3, $t2 +/* 110D6C 7F0DC23C 024B9024 */ and $s2, $s2, $t3 +/* 110D70 7F0DC240 324F00FF */ andi $t7, $s2, 0xff +/* 110D74 7F0DC244 100000D4 */ b .L7F0DC598 +/* 110D78 7F0DC248 01E09025 */ move $s2, $t7 +spectrum_op_RES_x_C: +/* 110D7C 7F0DC24C 93AD0100 */ lbu $t5, 0x100($sp) +/* 110D80 7F0DC250 24080001 */ li $t0, 1 +/* 110D84 7F0DC254 01A84804 */ sllv $t1, $t0, $t5 +/* 110D88 7F0DC258 0120C027 */ not $t8, $t1 +/* 110D8C 7F0DC25C 02789824 */ and $s3, $s3, $t8 +/* 110D90 7F0DC260 327900FF */ andi $t9, $s3, 0xff +/* 110D94 7F0DC264 100000CC */ b .L7F0DC598 +/* 110D98 7F0DC268 03209825 */ move $s3, $t9 +spectrum_op_RES_x_D: +/* 110D9C 7F0DC26C 93AE0100 */ lbu $t6, 0x100($sp) +/* 110DA0 7F0DC270 240C0001 */ li $t4, 1 +/* 110DA4 7F0DC274 01CC5004 */ sllv $t2, $t4, $t6 +/* 110DA8 7F0DC278 01405827 */ not $t3, $t2 +/* 110DAC 7F0DC27C 028BA024 */ and $s4, $s4, $t3 +/* 110DB0 7F0DC280 328F00FF */ andi $t7, $s4, 0xff +/* 110DB4 7F0DC284 100000C4 */ b .L7F0DC598 +/* 110DB8 7F0DC288 01E0A025 */ move $s4, $t7 +spectrum_op_RES_x_E: +/* 110DBC 7F0DC28C 93A80100 */ lbu $t0, 0x100($sp) +/* 110DC0 7F0DC290 240D0001 */ li $t5, 1 +/* 110DC4 7F0DC294 010D4804 */ sllv $t1, $t5, $t0 +/* 110DC8 7F0DC298 0120C027 */ not $t8, $t1 +/* 110DCC 7F0DC29C 02B8A824 */ and $s5, $s5, $t8 +/* 110DD0 7F0DC2A0 32B900FF */ andi $t9, $s5, 0xff +/* 110DD4 7F0DC2A4 100000BC */ b .L7F0DC598 +/* 110DD8 7F0DC2A8 0320A825 */ move $s5, $t9 +spectrum_op_RES_x_H: +/* 110DDC 7F0DC2AC 93AC0100 */ lbu $t4, 0x100($sp) +/* 110DE0 7F0DC2B0 240E0001 */ li $t6, 1 +/* 110DE4 7F0DC2B4 018E5004 */ sllv $t2, $t6, $t4 +/* 110DE8 7F0DC2B8 01405827 */ not $t3, $t2 +/* 110DEC 7F0DC2BC 02CBB024 */ and $s6, $s6, $t3 +/* 110DF0 7F0DC2C0 32CF00FF */ andi $t7, $s6, 0xff +/* 110DF4 7F0DC2C4 100000B4 */ b .L7F0DC598 +/* 110DF8 7F0DC2C8 01E0B025 */ move $s6, $t7 +spectrum_op_RES_x_L: +/* 110DFC 7F0DC2CC 93AD0100 */ lbu $t5, 0x100($sp) +/* 110E00 7F0DC2D0 24080001 */ li $t0, 1 +/* 110E04 7F0DC2D4 01A84804 */ sllv $t1, $t0, $t5 +/* 110E08 7F0DC2D8 0120C027 */ not $t8, $t1 +/* 110E0C 7F0DC2DC 02F8B824 */ and $s7, $s7, $t8 +/* 110E10 7F0DC2E0 32F900FF */ andi $t9, $s7, 0xff +/* 110E14 7F0DC2E4 100000AC */ b .L7F0DC598 +/* 110E18 7F0DC2E8 0320B825 */ move $s7, $t9 +spectrum_op_RES_x_HL: +/* 110E1C 7F0DC2EC 8FAE028C */ lw $t6, 0x28c($sp) +/* 110E20 7F0DC2F0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 110E24 7F0DC2F4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 110E28 7F0DC2F8 97AA013C */ lhu $t2, 0x13c($sp) +/* 110E2C 7F0DC2FC 25CC0004 */ addiu $t4, $t6, 4 +/* 110E30 7F0DC300 93AD0100 */ lbu $t5, 0x100($sp) +/* 110E34 7F0DC304 AFAC028C */ sw $t4, 0x28c($sp) +/* 110E38 7F0DC308 014B7821 */ addu $t7, $t2, $t3 +/* 110E3C 7F0DC30C 91E80000 */ lbu $t0, ($t7) +/* 110E40 7F0DC310 97AC013C */ lhu $t4, 0x13c($sp) +/* 110E44 7F0DC314 24090001 */ li $t1, 1 +/* 110E48 7F0DC318 01A9C004 */ sllv $t8, $t1, $t5 +/* 110E4C 7F0DC31C 0300C827 */ not $t9, $t8 +/* 110E50 7F0DC320 01197024 */ and $t6, $t0, $t9 +/* 110E54 7F0DC324 A3A80139 */ sb $t0, 0x139($sp) +/* 110E58 7F0DC328 29815B00 */ slti $at, $t4, 0x5b00 +/* 110E5C 7F0DC32C 14200006 */ bnez $at, .L7F0DC348 +/* 110E60 7F0DC330 A3AE0139 */ sb $t6, 0x139($sp) +/* 110E64 7F0DC334 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 110E68 7F0DC338 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 110E6C 7F0DC33C 016C7821 */ addu $t7, $t3, $t4 +/* 110E70 7F0DC340 10000095 */ b .L7F0DC598 +/* 110E74 7F0DC344 A1EE0000 */ sb $t6, ($t7) +.L7F0DC348: +/* 110E78 7F0DC348 97A9013C */ lhu $t1, 0x13c($sp) +/* 110E7C 7F0DC34C 97AA013C */ lhu $t2, 0x13c($sp) +/* 110E80 7F0DC350 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 110E84 7F0DC354 29215800 */ slti $at, $t1, 0x5800 +/* 110E88 7F0DC358 5420000D */ bnezl $at, .L7F0DC390 +/* 110E8C 7F0DC35C 29414000 */ slti $at, $t2, 0x4000 +/* 110E90 7F0DC360 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 110E94 7F0DC364 93AD0139 */ lbu $t5, 0x139($sp) +/* 110E98 7F0DC368 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 110E9C 7F0DC36C 03094021 */ addu $t0, $t8, $t1 +/* 110EA0 7F0DC370 A10D0000 */ sb $t5, ($t0) +/* 110EA4 7F0DC374 97AB013C */ lhu $t3, 0x13c($sp) +/* 110EA8 7F0DC378 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 110EAC 7F0DC37C 24190001 */ li $t9, 1 +/* 110EB0 7F0DC380 01CB6021 */ addu $t4, $t6, $t3 +/* 110EB4 7F0DC384 10000084 */ b .L7F0DC598 +/* 110EB8 7F0DC388 A199A800 */ sb $t9, -0x5800($t4) +/* 110EBC 7F0DC38C 29414000 */ slti $at, $t2, 0x4000 +.L7F0DC390: +/* 110EC0 7F0DC390 14200081 */ bnez $at, .L7F0DC598 +/* 110EC4 7F0DC394 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 110EC8 7F0DC398 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 110ECC 7F0DC39C 93AF0139 */ lbu $t7, 0x139($sp) +/* 110ED0 7F0DC3A0 240D0001 */ li $t5, 1 +/* 110ED4 7F0DC3A4 030A4821 */ addu $t1, $t8, $t2 +/* 110ED8 7F0DC3A8 A12F0000 */ sb $t7, ($t1) +/* 110EDC 7F0DC3AC 97A8013C */ lhu $t0, 0x13c($sp) +/* 110EE0 7F0DC3B0 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 110EE4 7F0DC3B4 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 110EE8 7F0DC3B8 310E1800 */ andi $t6, $t0, 0x1800 +/* 110EEC 7F0DC3BC 000E58C3 */ sra $t3, $t6, 3 +/* 110EF0 7F0DC3C0 311900FF */ andi $t9, $t0, 0xff +/* 110EF4 7F0DC3C4 01796025 */ or $t4, $t3, $t9 +/* 110EF8 7F0DC3C8 030C5021 */ addu $t2, $t8, $t4 +/* 110EFC 7F0DC3CC 10000072 */ b .L7F0DC598 +/* 110F00 7F0DC3D0 A14D0000 */ sb $t5, ($t2) +spectrum_op_RES_x_A: +/* 110F04 7F0DC3D4 93AF0100 */ lbu $t7, 0x100($sp) +/* 110F08 7F0DC3D8 24090001 */ li $t1, 1 +/* 110F0C 7F0DC3DC 01E97004 */ sllv $t6, $t1, $t7 +/* 110F10 7F0DC3E0 01C04027 */ not $t0, $t6 +/* 110F14 7F0DC3E4 02088024 */ and $s0, $s0, $t0 +/* 110F18 7F0DC3E8 320B00FF */ andi $t3, $s0, 0xff +/* 110F1C 7F0DC3EC 1000006A */ b .L7F0DC598 +/* 110F20 7F0DC3F0 01608025 */ move $s0, $t3 +spectrum_op_SET_x_B: +/* 110F24 7F0DC3F4 93B90100 */ lbu $t9, 0x100($sp) +/* 110F28 7F0DC3F8 24180001 */ li $t8, 1 +/* 110F2C 7F0DC3FC 03386004 */ sllv $t4, $t8, $t9 +/* 110F30 7F0DC400 024C9025 */ or $s2, $s2, $t4 +/* 110F34 7F0DC404 324D00FF */ andi $t5, $s2, 0xff +/* 110F38 7F0DC408 10000063 */ b .L7F0DC598 +/* 110F3C 7F0DC40C 01A09025 */ move $s2, $t5 +spectrum_op_SET_x_C: +/* 110F40 7F0DC410 93AA0100 */ lbu $t2, 0x100($sp) +/* 110F44 7F0DC414 24090001 */ li $t1, 1 +/* 110F48 7F0DC418 01497804 */ sllv $t7, $t1, $t2 +/* 110F4C 7F0DC41C 026F9825 */ or $s3, $s3, $t7 +/* 110F50 7F0DC420 326E00FF */ andi $t6, $s3, 0xff +/* 110F54 7F0DC424 1000005C */ b .L7F0DC598 +/* 110F58 7F0DC428 01C09825 */ move $s3, $t6 +spectrum_op_SET_x_D: +/* 110F5C 7F0DC42C 93A80100 */ lbu $t0, 0x100($sp) +/* 110F60 7F0DC430 240B0001 */ li $t3, 1 +/* 110F64 7F0DC434 010BC004 */ sllv $t8, $t3, $t0 +/* 110F68 7F0DC438 0298A025 */ or $s4, $s4, $t8 +/* 110F6C 7F0DC43C 329900FF */ andi $t9, $s4, 0xff +/* 110F70 7F0DC440 10000055 */ b .L7F0DC598 +/* 110F74 7F0DC444 0320A025 */ move $s4, $t9 +spectrum_op_SET_x_E: +/* 110F78 7F0DC448 93AC0100 */ lbu $t4, 0x100($sp) +/* 110F7C 7F0DC44C 240D0001 */ li $t5, 1 +/* 110F80 7F0DC450 018D4804 */ sllv $t1, $t5, $t4 +/* 110F84 7F0DC454 02A9A825 */ or $s5, $s5, $t1 +/* 110F88 7F0DC458 32AA00FF */ andi $t2, $s5, 0xff +/* 110F8C 7F0DC45C 1000004E */ b .L7F0DC598 +/* 110F90 7F0DC460 0140A825 */ move $s5, $t2 +spectrum_op_SET_x_H: +/* 110F94 7F0DC464 93AF0100 */ lbu $t7, 0x100($sp) +/* 110F98 7F0DC468 240E0001 */ li $t6, 1 +/* 110F9C 7F0DC46C 01EE5804 */ sllv $t3, $t6, $t7 +/* 110FA0 7F0DC470 02CBB025 */ or $s6, $s6, $t3 +/* 110FA4 7F0DC474 32C800FF */ andi $t0, $s6, 0xff +/* 110FA8 7F0DC478 10000047 */ b .L7F0DC598 +/* 110FAC 7F0DC47C 0100B025 */ move $s6, $t0 +spectrum_op_SET_x_L: +/* 110FB0 7F0DC480 93B80100 */ lbu $t8, 0x100($sp) +/* 110FB4 7F0DC484 24190001 */ li $t9, 1 +/* 110FB8 7F0DC488 03196804 */ sllv $t5, $t9, $t8 +/* 110FBC 7F0DC48C 02EDB825 */ or $s7, $s7, $t5 +/* 110FC0 7F0DC490 32EC00FF */ andi $t4, $s7, 0xff +/* 110FC4 7F0DC494 10000040 */ b .L7F0DC598 +/* 110FC8 7F0DC498 0180B825 */ move $s7, $t4 +spectrum_op_SET_x_HL: +/* 110FCC 7F0DC49C 8FA9028C */ lw $t1, 0x28c($sp) +/* 110FD0 7F0DC4A0 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 110FD4 7F0DC4A4 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 110FD8 7F0DC4A8 97AE013C */ lhu $t6, 0x13c($sp) +/* 110FDC 7F0DC4AC 252A0004 */ addiu $t2, $t1, 4 +/* 110FE0 7F0DC4B0 AFAA028C */ sw $t2, 0x28c($sp) +/* 110FE4 7F0DC4B4 01CF5821 */ addu $t3, $t6, $t7 +/* 110FE8 7F0DC4B8 91680000 */ lbu $t0, ($t3) +/* 110FEC 7F0DC4BC 93B90100 */ lbu $t9, 0x100($sp) +/* 110FF0 7F0DC4C0 97A9013C */ lhu $t1, 0x13c($sp) +/* 110FF4 7F0DC4C4 24180001 */ li $t8, 1 +/* 110FF8 7F0DC4C8 03386804 */ sllv $t5, $t8, $t9 +/* 110FFC 7F0DC4CC 010D6025 */ or $t4, $t0, $t5 +/* 111000 7F0DC4D0 A3A80139 */ sb $t0, 0x139($sp) +/* 111004 7F0DC4D4 29215B00 */ slti $at, $t1, 0x5b00 +/* 111008 7F0DC4D8 14200006 */ bnez $at, .L7F0DC4F4 +/* 11100C 7F0DC4DC A3AC0139 */ sb $t4, 0x139($sp) +/* 111010 7F0DC4E0 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 111014 7F0DC4E4 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 111018 7F0DC4E8 01C97821 */ addu $t7, $t6, $t1 +/* 11101C 7F0DC4EC 1000002A */ b .L7F0DC598 +/* 111020 7F0DC4F0 A1EC0000 */ sb $t4, ($t7) +.L7F0DC4F4: +/* 111024 7F0DC4F4 97AB013C */ lhu $t3, 0x13c($sp) +/* 111028 7F0DC4F8 97AA013C */ lhu $t2, 0x13c($sp) +/* 11102C 7F0DC4FC 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 111030 7F0DC500 29615800 */ slti $at, $t3, 0x5800 +/* 111034 7F0DC504 5420000D */ bnezl $at, .L7F0DC53C +/* 111038 7F0DC508 29414000 */ slti $at, $t2, 0x4000 +/* 11103C 7F0DC50C 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 111040 7F0DC510 93B80139 */ lbu $t8, 0x139($sp) +/* 111044 7F0DC514 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 111048 7F0DC518 032B4021 */ addu $t0, $t9, $t3 +/* 11104C 7F0DC51C A1180000 */ sb $t8, ($t0) +/* 111050 7F0DC520 97AE013C */ lhu $t6, 0x13c($sp) +/* 111054 7F0DC524 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 111058 7F0DC528 240D0001 */ li $t5, 1 +/* 11105C 7F0DC52C 018E4821 */ addu $t1, $t4, $t6 +/* 111060 7F0DC530 10000019 */ b .L7F0DC598 +/* 111064 7F0DC534 A12DA800 */ sb $t5, -0x5800($t1) +/* 111068 7F0DC538 29414000 */ slti $at, $t2, 0x4000 +.L7F0DC53C: +/* 11106C 7F0DC53C 14200016 */ bnez $at, .L7F0DC598 +/* 111070 7F0DC540 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 111074 7F0DC544 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 111078 7F0DC548 93AF0139 */ lbu $t7, 0x139($sp) +/* 11107C 7F0DC54C 24180001 */ li $t8, 1 +/* 111080 7F0DC550 032A5821 */ addu $t3, $t9, $t2 +/* 111084 7F0DC554 A16F0000 */ sb $t7, ($t3) +/* 111088 7F0DC558 97A8013C */ lhu $t0, 0x13c($sp) +/* 11108C 7F0DC55C 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 111090 7F0DC560 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 111094 7F0DC564 310C1800 */ andi $t4, $t0, 0x1800 +/* 111098 7F0DC568 000C70C3 */ sra $t6, $t4, 3 +/* 11109C 7F0DC56C 310D00FF */ andi $t5, $t0, 0xff +/* 1110A0 7F0DC570 01CD4825 */ or $t1, $t6, $t5 +/* 1110A4 7F0DC574 03295021 */ addu $t2, $t9, $t1 +/* 1110A8 7F0DC578 10000007 */ b .L7F0DC598 +/* 1110AC 7F0DC57C A1580000 */ sb $t8, ($t2) +spectrum_op_SET_x_A: +/* 1110B0 7F0DC580 93AF0100 */ lbu $t7, 0x100($sp) +/* 1110B4 7F0DC584 240B0001 */ li $t3, 1 +/* 1110B8 7F0DC588 01EB6004 */ sllv $t4, $t3, $t7 +/* 1110BC 7F0DC58C 020C8025 */ or $s0, $s0, $t4 +/* 1110C0 7F0DC590 320800FF */ andi $t0, $s0, 0xff +/* 1110C4 7F0DC594 01008025 */ move $s0, $t0 +.L7F0DC598: +/* 1110C8 7F0DC598 93AE0287 */ lbu $t6, 0x287($sp) +/* 1110CC 7F0DC59C 93AD013A */ lbu $t5, 0x13a($sp) +/* 1110D0 7F0DC5A0 11C01896 */ beqz $t6, .L7F0E27FC +/* 1110D4 7F0DC5A4 2DA10008 */ sltiu $at, $t5, 8 +/* 1110D8 7F0DC5A8 10201894 */ beqz $at, .L7F0E27FC +/* 1110DC 7F0DC5AC 000D6880 */ sll $t5, $t5, 2 +/* 1110E0 7F0DC5B0 3C018006 */ lui $at, %hi(jpt_8005C68C) +/* 1110E4 7F0DC5B4 002D0821 */ addu $at, $at, $t5 +/* 1110E8 7F0DC5B8 8C2DC68C */ lw $t5, %lo(jpt_8005C68C)($at) +.L7F0DC5BC: +/* 1110EC 7F0DC5BC 01A00008 */ jr $t5 +/* 1110F0 7F0DC5C0 00000000 */ nop +.L7F0DC5C4: +/* 1110F4 7F0DC5C4 1000188D */ b .L7F0E27FC +/* 1110F8 7F0DC5C8 93B20139 */ lbu $s2, 0x139($sp) +.L7F0DC5CC: +/* 1110FC 7F0DC5CC 1000188B */ b .L7F0E27FC +/* 111100 7F0DC5D0 93B30139 */ lbu $s3, 0x139($sp) +.L7F0DC5D4: +/* 111104 7F0DC5D4 10001889 */ b .L7F0E27FC +/* 111108 7F0DC5D8 93B40139 */ lbu $s4, 0x139($sp) +.L7F0DC5DC: +/* 11110C 7F0DC5DC 10001887 */ b .L7F0E27FC +/* 111110 7F0DC5E0 93B50139 */ lbu $s5, 0x139($sp) +.L7F0DC5E4: +/* 111114 7F0DC5E4 10001885 */ b .L7F0E27FC +/* 111118 7F0DC5E8 93B60139 */ lbu $s6, 0x139($sp) +.L7F0DC5EC: +/* 11111C 7F0DC5EC 10001883 */ b .L7F0E27FC +/* 111120 7F0DC5F0 93B70139 */ lbu $s7, 0x139($sp) +.L7F0DC5F4: +/* 111124 7F0DC5F4 10001881 */ b .L7F0E27FC +/* 111128 7F0DC5F8 93B00139 */ lbu $s0, 0x139($sp) +spectrum_op_CC: +/* 11112C 7F0DC5FC 8FB9028C */ lw $t9, 0x28c($sp) +/* 111130 7F0DC600 32380040 */ andi $t8, $s1, 0x40 +/* 111134 7F0DC604 2729000A */ addiu $t1, $t9, 0xa +/* 111138 7F0DC608 13000072 */ beqz $t8, .L7F0DC7D4 +/* 11113C 7F0DC60C AFA9028C */ sw $t1, 0x28c($sp) +/* 111140 7F0DC610 97AF0292 */ lhu $t7, 0x292($sp) +/* 111144 7F0DC614 252B0007 */ addiu $t3, $t1, 7 +/* 111148 7F0DC618 AFAB028C */ sw $t3, 0x28c($sp) +/* 11114C 7F0DC61C 25ECFFFE */ addiu $t4, $t7, -2 +/* 111150 7F0DC620 3188FFFF */ andi $t0, $t4, 0xffff +/* 111154 7F0DC624 29015B00 */ slti $at, $t0, 0x5b00 +/* 111158 7F0DC628 14200008 */ bnez $at, .L7F0DC64C +/* 11115C 7F0DC62C A7AC0292 */ sh $t4, 0x292($sp) +/* 111160 7F0DC630 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 111164 7F0DC634 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 111168 7F0DC638 97AE0298 */ lhu $t6, 0x298($sp) +/* 11116C 7F0DC63C 03284821 */ addu $t1, $t9, $t0 +/* 111170 7F0DC640 25CD0002 */ addiu $t5, $t6, 2 +/* 111174 7F0DC644 10000024 */ b .L7F0DC6D8 +/* 111178 7F0DC648 A12D0000 */ sb $t5, ($t1) +.L7F0DC64C: +/* 11117C 7F0DC64C 97B80292 */ lhu $t8, 0x292($sp) +/* 111180 7F0DC650 97A90292 */ lhu $t1, 0x292($sp) +/* 111184 7F0DC654 97AA0298 */ lhu $t2, 0x298($sp) +/* 111188 7F0DC658 2B015800 */ slti $at, $t8, 0x5800 +/* 11118C 7F0DC65C 1420000C */ bnez $at, .L7F0DC690 +/* 111190 7F0DC660 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 111194 7F0DC664 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 111198 7F0DC668 254B0002 */ addiu $t3, $t2, 2 +/* 11119C 7F0DC66C 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 1111A0 7F0DC670 01F86021 */ addu $t4, $t7, $t8 +/* 1111A4 7F0DC674 A18B0000 */ sb $t3, ($t4) +/* 1111A8 7F0DC678 97A80292 */ lhu $t0, 0x292($sp) +/* 1111AC 7F0DC67C 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 1111B0 7F0DC680 240E0001 */ li $t6, 1 +/* 1111B4 7F0DC684 03286821 */ addu $t5, $t9, $t0 +/* 1111B8 7F0DC688 10000013 */ b .L7F0DC6D8 +/* 1111BC 7F0DC68C A1AEA800 */ sb $t6, -0x5800($t5) +.L7F0DC690: +/* 1111C0 7F0DC690 29214000 */ slti $at, $t1, 0x4000 +/* 1111C4 7F0DC694 14200010 */ bnez $at, .L7F0DC6D8 +/* 1111C8 7F0DC698 97AA0298 */ lhu $t2, 0x298($sp) +/* 1111CC 7F0DC69C 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 1111D0 7F0DC6A0 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 1111D4 7F0DC6A4 254F0002 */ addiu $t7, $t2, 2 +/* 1111D8 7F0DC6A8 240C0001 */ li $t4, 1 +/* 1111DC 7F0DC6AC 03095821 */ addu $t3, $t8, $t1 +/* 1111E0 7F0DC6B0 A16F0000 */ sb $t7, ($t3) +/* 1111E4 7F0DC6B4 97B90292 */ lhu $t9, 0x292($sp) +/* 1111E8 7F0DC6B8 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 1111EC 7F0DC6BC 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 1111F0 7F0DC6C0 33281800 */ andi $t0, $t9, 0x1800 +/* 1111F4 7F0DC6C4 000870C3 */ sra $t6, $t0, 3 +/* 1111F8 7F0DC6C8 332D00FF */ andi $t5, $t9, 0xff +/* 1111FC 7F0DC6CC 01CD5025 */ or $t2, $t6, $t5 +/* 111200 7F0DC6D0 030A4821 */ addu $t1, $t8, $t2 +/* 111204 7F0DC6D4 A12C0000 */ sb $t4, ($t1) +.L7F0DC6D8: +/* 111208 7F0DC6D8 97AF0292 */ lhu $t7, 0x292($sp) +/* 11120C 7F0DC6DC 97AA0292 */ lhu $t2, 0x292($sp) +/* 111210 7F0DC6E0 97A80298 */ lhu $t0, 0x298($sp) +/* 111214 7F0DC6E4 25EB0001 */ addiu $t3, $t7, 1 +/* 111218 7F0DC6E8 29615B00 */ slti $at, $t3, 0x5b00 +/* 11121C 7F0DC6EC 14200008 */ bnez $at, .L7F0DC710 +/* 111220 7F0DC6F0 254C0001 */ addiu $t4, $t2, 1 +/* 111224 7F0DC6F4 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 111228 7F0DC6F8 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 11122C 7F0DC6FC 25190002 */ addiu $t9, $t0, 2 +/* 111230 7F0DC700 00197203 */ sra $t6, $t9, 8 +/* 111234 7F0DC704 01AFC021 */ addu $t8, $t5, $t7 +/* 111238 7F0DC708 10000027 */ b .L7F0DC7A8 +/* 11123C 7F0DC70C A30E0001 */ sb $t6, 1($t8) +.L7F0DC710: +/* 111240 7F0DC710 29815800 */ slti $at, $t4, 0x5800 +/* 111244 7F0DC714 1420000F */ bnez $at, .L7F0DC754 +/* 111248 7F0DC718 97A90292 */ lhu $t1, 0x292($sp) +/* 11124C 7F0DC71C 97A90298 */ lhu $t1, 0x298($sp) +/* 111250 7F0DC720 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 111254 7F0DC724 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 111258 7F0DC728 252B0002 */ addiu $t3, $t1, 2 +/* 11125C 7F0DC72C 000B4203 */ sra $t0, $t3, 8 +/* 111260 7F0DC730 032A6821 */ addu $t5, $t9, $t2 +/* 111264 7F0DC734 A1A80001 */ sb $t0, 1($t5) +/* 111268 7F0DC738 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 11126C 7F0DC73C 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 111270 7F0DC740 97B80292 */ lhu $t8, 0x292($sp) +/* 111274 7F0DC744 240F0001 */ li $t7, 1 +/* 111278 7F0DC748 01D86021 */ addu $t4, $t6, $t8 +/* 11127C 7F0DC74C 10000016 */ b .L7F0DC7A8 +/* 111280 7F0DC750 A18FA801 */ sb $t7, -0x57ff($t4) +.L7F0DC754: +/* 111284 7F0DC754 252B0001 */ addiu $t3, $t1, 1 +/* 111288 7F0DC758 29614000 */ slti $at, $t3, 0x4000 +/* 11128C 7F0DC75C 14200012 */ bnez $at, .L7F0DC7A8 +/* 111290 7F0DC760 97B90298 */ lhu $t9, 0x298($sp) +/* 111294 7F0DC764 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 111298 7F0DC768 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 11129C 7F0DC76C 272A0002 */ addiu $t2, $t9, 2 +/* 1112A0 7F0DC770 000A4203 */ sra $t0, $t2, 8 +/* 1112A4 7F0DC774 01A97021 */ addu $t6, $t5, $t1 +/* 1112A8 7F0DC778 A1C80001 */ sb $t0, 1($t6) +/* 1112AC 7F0DC77C 97AF0292 */ lhu $t7, 0x292($sp) +/* 1112B0 7F0DC780 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 1112B4 7F0DC784 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 1112B8 7F0DC788 25EC0001 */ addiu $t4, $t7, 1 +/* 1112BC 7F0DC78C 318B1800 */ andi $t3, $t4, 0x1800 +/* 1112C0 7F0DC790 000BC8C3 */ sra $t9, $t3, 3 +/* 1112C4 7F0DC794 318A00FF */ andi $t2, $t4, 0xff +/* 1112C8 7F0DC798 032A6825 */ or $t5, $t9, $t2 +/* 1112CC 7F0DC79C 24180001 */ li $t8, 1 +/* 1112D0 7F0DC7A0 012D4021 */ addu $t0, $t1, $t5 +/* 1112D4 7F0DC7A4 A1180000 */ sb $t8, ($t0) +.L7F0DC7A8: +/* 1112D8 7F0DC7A8 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 1112DC 7F0DC7AC 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 1112E0 7F0DC7B0 97AE0298 */ lhu $t6, 0x298($sp) +/* 1112E4 7F0DC7B4 01EEC821 */ addu $t9, $t7, $t6 +/* 1112E8 7F0DC7B8 932A0001 */ lbu $t2, 1($t9) +/* 1112EC 7F0DC7BC 01CF5821 */ addu $t3, $t6, $t7 +/* 1112F0 7F0DC7C0 916C0000 */ lbu $t4, ($t3) +/* 1112F4 7F0DC7C4 000A4A00 */ sll $t1, $t2, 8 +/* 1112F8 7F0DC7C8 01896825 */ or $t5, $t4, $t1 +/* 1112FC 7F0DC7CC 1000180B */ b .L7F0E27FC +/* 111300 7F0DC7D0 A7AD0298 */ sh $t5, 0x298($sp) +.L7F0DC7D4: +/* 111304 7F0DC7D4 97B80298 */ lhu $t8, 0x298($sp) +/* 111308 7F0DC7D8 27080002 */ addiu $t0, $t8, 2 +/* 11130C 7F0DC7DC 10001807 */ b .L7F0E27FC +/* 111310 7F0DC7E0 A7A80298 */ sh $t0, 0x298($sp) +spectrum_op_CD: +/* 111314 7F0DC7E4 8FAB028C */ lw $t3, 0x28c($sp) +/* 111318 7F0DC7E8 97AA0292 */ lhu $t2, 0x292($sp) +/* 11131C 7F0DC7EC 97AD0298 */ lhu $t5, 0x298($sp) +/* 111320 7F0DC7F0 256F000A */ addiu $t7, $t3, 0xa +/* 111324 7F0DC7F4 254CFFFE */ addiu $t4, $t2, -2 +/* 111328 7F0DC7F8 3189FFFF */ andi $t1, $t4, 0xffff +/* 11132C 7F0DC7FC AFAF028C */ sw $t7, 0x28c($sp) +/* 111330 7F0DC800 29215B00 */ slti $at, $t1, 0x5b00 +/* 111334 7F0DC804 25F90007 */ addiu $t9, $t7, 7 +/* 111338 7F0DC808 AFB9028C */ sw $t9, 0x28c($sp) +/* 11133C 7F0DC80C 14200007 */ bnez $at, .L7F0DC82C +/* 111340 7F0DC810 A7AC0292 */ sh $t4, 0x292($sp) +/* 111344 7F0DC814 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 111348 7F0DC818 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 11134C 7F0DC81C 25B80002 */ addiu $t8, $t5, 2 +/* 111350 7F0DC820 01095821 */ addu $t3, $t0, $t1 +/* 111354 7F0DC824 10000024 */ b .L7F0DC8B8 +/* 111358 7F0DC828 A1780000 */ sb $t8, ($t3) +.L7F0DC82C: +/* 11135C 7F0DC82C 97AF0292 */ lhu $t7, 0x292($sp) +/* 111360 7F0DC830 97AB0292 */ lhu $t3, 0x292($sp) +/* 111364 7F0DC834 97AE0298 */ lhu $t6, 0x298($sp) +/* 111368 7F0DC838 29E15800 */ slti $at, $t7, 0x5800 +/* 11136C 7F0DC83C 1420000C */ bnez $at, .L7F0DC870 +/* 111370 7F0DC840 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 111374 7F0DC844 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 111378 7F0DC848 25D90002 */ addiu $t9, $t6, 2 +/* 11137C 7F0DC84C 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 111380 7F0DC850 014F6021 */ addu $t4, $t2, $t7 +/* 111384 7F0DC854 A1990000 */ sb $t9, ($t4) +/* 111388 7F0DC858 97A90292 */ lhu $t1, 0x292($sp) +/* 11138C 7F0DC85C 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 111390 7F0DC860 240D0001 */ li $t5, 1 +/* 111394 7F0DC864 0109C021 */ addu $t8, $t0, $t1 +/* 111398 7F0DC868 10000013 */ b .L7F0DC8B8 +/* 11139C 7F0DC86C A30DA800 */ sb $t5, -0x5800($t8) +.L7F0DC870: +/* 1113A0 7F0DC870 29614000 */ slti $at, $t3, 0x4000 +/* 1113A4 7F0DC874 14200010 */ bnez $at, .L7F0DC8B8 +/* 1113A8 7F0DC878 97AE0298 */ lhu $t6, 0x298($sp) +/* 1113AC 7F0DC87C 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 1113B0 7F0DC880 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 1113B4 7F0DC884 25CA0002 */ addiu $t2, $t6, 2 +/* 1113B8 7F0DC888 240C0001 */ li $t4, 1 +/* 1113BC 7F0DC88C 01EBC821 */ addu $t9, $t7, $t3 +/* 1113C0 7F0DC890 A32A0000 */ sb $t2, ($t9) +/* 1113C4 7F0DC894 97A80292 */ lhu $t0, 0x292($sp) +/* 1113C8 7F0DC898 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 1113CC 7F0DC89C 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 1113D0 7F0DC8A0 31091800 */ andi $t1, $t0, 0x1800 +/* 1113D4 7F0DC8A4 000968C3 */ sra $t5, $t1, 3 +/* 1113D8 7F0DC8A8 311800FF */ andi $t8, $t0, 0xff +/* 1113DC 7F0DC8AC 01B87025 */ or $t6, $t5, $t8 +/* 1113E0 7F0DC8B0 01EE5821 */ addu $t3, $t7, $t6 +/* 1113E4 7F0DC8B4 A16C0000 */ sb $t4, ($t3) +.L7F0DC8B8: +/* 1113E8 7F0DC8B8 97AA0292 */ lhu $t2, 0x292($sp) +/* 1113EC 7F0DC8BC 97AE0292 */ lhu $t6, 0x292($sp) +/* 1113F0 7F0DC8C0 97A90298 */ lhu $t1, 0x298($sp) +/* 1113F4 7F0DC8C4 25590001 */ addiu $t9, $t2, 1 +/* 1113F8 7F0DC8C8 2B215B00 */ slti $at, $t9, 0x5b00 +/* 1113FC 7F0DC8CC 14200008 */ bnez $at, .L7F0DC8F0 +/* 111400 7F0DC8D0 25CC0001 */ addiu $t4, $t6, 1 +/* 111404 7F0DC8D4 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 111408 7F0DC8D8 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 11140C 7F0DC8DC 25280002 */ addiu $t0, $t1, 2 +/* 111410 7F0DC8E0 00086A03 */ sra $t5, $t0, 8 +/* 111414 7F0DC8E4 030A7821 */ addu $t7, $t8, $t2 +/* 111418 7F0DC8E8 10000027 */ b .L7F0DC988 +/* 11141C 7F0DC8EC A1ED0001 */ sb $t5, 1($t7) +.L7F0DC8F0: +/* 111420 7F0DC8F0 29815800 */ slti $at, $t4, 0x5800 +/* 111424 7F0DC8F4 1420000F */ bnez $at, .L7F0DC934 +/* 111428 7F0DC8F8 97AB0292 */ lhu $t3, 0x292($sp) +/* 11142C 7F0DC8FC 97AB0298 */ lhu $t3, 0x298($sp) +/* 111430 7F0DC900 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 111434 7F0DC904 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 111438 7F0DC908 25790002 */ addiu $t9, $t3, 2 +/* 11143C 7F0DC90C 00194A03 */ sra $t1, $t9, 8 +/* 111440 7F0DC910 010EC021 */ addu $t8, $t0, $t6 +/* 111444 7F0DC914 A3090001 */ sb $t1, 1($t8) +/* 111448 7F0DC918 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 11144C 7F0DC91C 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 111450 7F0DC920 97AF0292 */ lhu $t7, 0x292($sp) +/* 111454 7F0DC924 240A0001 */ li $t2, 1 +/* 111458 7F0DC928 01AF6021 */ addu $t4, $t5, $t7 +/* 11145C 7F0DC92C 10000016 */ b .L7F0DC988 +/* 111460 7F0DC930 A18AA801 */ sb $t2, -0x57ff($t4) +.L7F0DC934: +/* 111464 7F0DC934 25790001 */ addiu $t9, $t3, 1 +/* 111468 7F0DC938 2B214000 */ slti $at, $t9, 0x4000 +/* 11146C 7F0DC93C 14200012 */ bnez $at, .L7F0DC988 +/* 111470 7F0DC940 97A80298 */ lhu $t0, 0x298($sp) +/* 111474 7F0DC944 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 111478 7F0DC948 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 11147C 7F0DC94C 250E0002 */ addiu $t6, $t0, 2 +/* 111480 7F0DC950 000E4A03 */ sra $t1, $t6, 8 +/* 111484 7F0DC954 030B6821 */ addu $t5, $t8, $t3 +/* 111488 7F0DC958 A1A90001 */ sb $t1, 1($t5) +/* 11148C 7F0DC95C 97AA0292 */ lhu $t2, 0x292($sp) +/* 111490 7F0DC960 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 111494 7F0DC964 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 111498 7F0DC968 254C0001 */ addiu $t4, $t2, 1 +/* 11149C 7F0DC96C 31991800 */ andi $t9, $t4, 0x1800 +/* 1114A0 7F0DC970 001940C3 */ sra $t0, $t9, 3 +/* 1114A4 7F0DC974 318E00FF */ andi $t6, $t4, 0xff +/* 1114A8 7F0DC978 010EC025 */ or $t8, $t0, $t6 +/* 1114AC 7F0DC97C 240F0001 */ li $t7, 1 +/* 1114B0 7F0DC980 01784821 */ addu $t1, $t3, $t8 +/* 1114B4 7F0DC984 A12F0000 */ sb $t7, ($t1) +.L7F0DC988: +/* 1114B8 7F0DC988 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 1114BC 7F0DC98C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 1114C0 7F0DC990 97AD0298 */ lhu $t5, 0x298($sp) +/* 1114C4 7F0DC994 014D4021 */ addu $t0, $t2, $t5 +/* 1114C8 7F0DC998 910E0001 */ lbu $t6, 1($t0) +/* 1114CC 7F0DC99C 01AAC821 */ addu $t9, $t5, $t2 +/* 1114D0 7F0DC9A0 932C0000 */ lbu $t4, ($t9) +/* 1114D4 7F0DC9A4 000E5A00 */ sll $t3, $t6, 8 +/* 1114D8 7F0DC9A8 018BC025 */ or $t8, $t4, $t3 +/* 1114DC 7F0DC9AC 10001793 */ b .L7F0E27FC +/* 1114E0 7F0DC9B0 A7B80298 */ sh $t8, 0x298($sp) +spectrum_op_CE: +/* 1114E4 7F0DC9B4 8FAF028C */ lw $t7, 0x28c($sp) +/* 1114E8 7F0DC9B8 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 1114EC 7F0DC9BC 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 1114F0 7F0DC9C0 97B90298 */ lhu $t9, 0x298($sp) +/* 1114F4 7F0DC9C4 25E90007 */ addiu $t1, $t7, 7 +/* 1114F8 7F0DC9C8 AFA9028C */ sw $t1, 0x28c($sp) +/* 1114FC 7F0DC9CC 032A6821 */ addu $t5, $t9, $t2 +/* 111500 7F0DC9D0 91A80000 */ lbu $t0, ($t5) +/* 111504 7F0DC9D4 322C0001 */ andi $t4, $s1, 1 +/* 111508 7F0DC9D8 32380001 */ andi $t8, $s1, 1 +/* 11150C 7F0DC9DC 02087021 */ addu $t6, $s0, $t0 +/* 111510 7F0DC9E0 01CC5821 */ addu $t3, $t6, $t4 +/* 111514 7F0DC9E4 320E000F */ andi $t6, $s0, 0xf +/* 111518 7F0DC9E8 310D000F */ andi $t5, $t0, 0xf +/* 11151C 7F0DC9EC 01CD6021 */ addu $t4, $t6, $t5 +/* 111520 7F0DC9F0 316F00A8 */ andi $t7, $t3, 0xa8 +/* 111524 7F0DC9F4 000BCA03 */ sra $t9, $t3, 8 +/* 111528 7F0DC9F8 01F95025 */ or $t2, $t7, $t9 +/* 11152C 7F0DC9FC 01984821 */ addu $t1, $t4, $t8 +/* 111530 7F0DCA00 2401000F */ li $at, 15 +/* 111534 7F0DCA04 0029782A */ slt $t7, $at, $t1 +/* 111538 7F0DCA08 000FC900 */ sll $t9, $t7, 4 +/* 11153C 7F0DCA0C 01604825 */ move $t1, $t3 +/* 111540 7F0DCA10 02006827 */ not $t5, $s0 +/* 111544 7F0DCA14 01307826 */ xor $t7, $t1, $s0 +/* 111548 7F0DCA18 A7AB00FE */ sh $t3, 0xfe($sp) +/* 11154C 7F0DCA1C 01A86026 */ xor $t4, $t5, $t0 +/* 111550 7F0DCA20 93B000FF */ lbu $s0, 0xff($sp) +/* 111554 7F0DCA24 31980080 */ andi $t8, $t4, 0x80 +/* 111558 7F0DCA28 01597025 */ or $t6, $t2, $t9 +/* 11155C 7F0DCA2C 030F5024 */ and $t2, $t8, $t7 +/* 111560 7F0DCA30 A3A800FD */ sb $t0, 0xfd($sp) +/* 111564 7F0DCA34 97B80298 */ lhu $t8, 0x298($sp) +/* 111568 7F0DCA38 000AC943 */ sra $t9, $t2, 5 +/* 11156C 7F0DCA3C 2E080001 */ sltiu $t0, $s0, 1 +/* 111570 7F0DCA40 00085980 */ sll $t3, $t0, 6 +/* 111574 7F0DCA44 01D96825 */ or $t5, $t6, $t9 +/* 111578 7F0DCA48 01AB8825 */ or $s1, $t5, $t3 +/* 11157C 7F0DCA4C 322900FF */ andi $t1, $s1, 0xff +/* 111580 7F0DCA50 270F0001 */ addiu $t7, $t8, 1 +/* 111584 7F0DCA54 01208825 */ move $s1, $t1 +/* 111588 7F0DCA58 AFA80048 */ sw $t0, 0x48($sp) +/* 11158C 7F0DCA5C 10001767 */ b .L7F0E27FC +/* 111590 7F0DCA60 A7AF0298 */ sh $t7, 0x298($sp) +spectrum_op_CF: +/* 111594 7F0DCA64 97B90292 */ lhu $t9, 0x292($sp) +/* 111598 7F0DCA68 8FAA028C */ lw $t2, 0x28c($sp) +/* 11159C 7F0DCA6C 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1115A0 7F0DCA70 272DFFFE */ addiu $t5, $t9, -2 +/* 1115A4 7F0DCA74 31A8FFFF */ andi $t0, $t5, 0xffff +/* 1115A8 7F0DCA78 29015B00 */ slti $at, $t0, 0x5b00 +/* 1115AC 7F0DCA7C 254E000B */ addiu $t6, $t2, 0xb +/* 1115B0 7F0DCA80 AFAE028C */ sw $t6, 0x28c($sp) +/* 1115B4 7F0DCA84 14200006 */ bnez $at, .L7F0DCAA0 +/* 1115B8 7F0DCA88 A7AD0292 */ sh $t5, 0x292($sp) +/* 1115BC 7F0DCA8C 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 1115C0 7F0DCA90 97AC0298 */ lhu $t4, 0x298($sp) +/* 1115C4 7F0DCA94 01684821 */ addu $t1, $t3, $t0 +/* 1115C8 7F0DCA98 10000023 */ b .L7F0DCB28 +/* 1115CC 7F0DCA9C A12C0000 */ sb $t4, ($t1) +.L7F0DCAA0: +/* 1115D0 7F0DCAA0 97B80292 */ lhu $t8, 0x292($sp) +/* 1115D4 7F0DCAA4 97AC0292 */ lhu $t4, 0x292($sp) +/* 1115D8 7F0DCAA8 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 1115DC 7F0DCAAC 2B015800 */ slti $at, $t8, 0x5800 +/* 1115E0 7F0DCAB0 5420000D */ bnezl $at, .L7F0DCAE8 +/* 1115E4 7F0DCAB4 29814000 */ slti $at, $t4, 0x4000 +/* 1115E8 7F0DCAB8 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 1115EC 7F0DCABC 97AF0298 */ lhu $t7, 0x298($sp) +/* 1115F0 7F0DCAC0 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 1115F4 7F0DCAC4 01587021 */ addu $t6, $t2, $t8 +/* 1115F8 7F0DCAC8 A1CF0000 */ sb $t7, ($t6) +/* 1115FC 7F0DCACC 97AB0292 */ lhu $t3, 0x292($sp) +/* 111600 7F0DCAD0 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 111604 7F0DCAD4 24190001 */ li $t9, 1 +/* 111608 7F0DCAD8 01AB4021 */ addu $t0, $t5, $t3 +/* 11160C 7F0DCADC 10000012 */ b .L7F0DCB28 +/* 111610 7F0DCAE0 A119A800 */ sb $t9, -0x5800($t0) +/* 111614 7F0DCAE4 29814000 */ slti $at, $t4, 0x4000 +.L7F0DCAE8: +/* 111618 7F0DCAE8 1420000F */ bnez $at, .L7F0DCB28 +/* 11161C 7F0DCAEC 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 111620 7F0DCAF0 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 111624 7F0DCAF4 97A90298 */ lhu $t1, 0x298($sp) +/* 111628 7F0DCAF8 240F0001 */ li $t7, 1 +/* 11162C 7F0DCAFC 014CC021 */ addu $t8, $t2, $t4 +/* 111630 7F0DCB00 A3090000 */ sb $t1, ($t8) +/* 111634 7F0DCB04 97AE0292 */ lhu $t6, 0x292($sp) +/* 111638 7F0DCB08 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 11163C 7F0DCB0C 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 111640 7F0DCB10 31CD1800 */ andi $t5, $t6, 0x1800 +/* 111644 7F0DCB14 000D58C3 */ sra $t3, $t5, 3 +/* 111648 7F0DCB18 31D900FF */ andi $t9, $t6, 0xff +/* 11164C 7F0DCB1C 01794025 */ or $t0, $t3, $t9 +/* 111650 7F0DCB20 01486021 */ addu $t4, $t2, $t0 +/* 111654 7F0DCB24 A18F0000 */ sb $t7, ($t4) +.L7F0DCB28: +/* 111658 7F0DCB28 97A90292 */ lhu $t1, 0x292($sp) +/* 11165C 7F0DCB2C 97AA0292 */ lhu $t2, 0x292($sp) +/* 111660 7F0DCB30 97AD0298 */ lhu $t5, 0x298($sp) +/* 111664 7F0DCB34 25380001 */ addiu $t8, $t1, 1 +/* 111668 7F0DCB38 2B015B00 */ slti $at, $t8, 0x5b00 +/* 11166C 7F0DCB3C 14200007 */ bnez $at, .L7F0DCB5C +/* 111670 7F0DCB40 25480001 */ addiu $t0, $t2, 1 +/* 111674 7F0DCB44 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 111678 7F0DCB48 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 11167C 7F0DCB4C 000D7203 */ sra $t6, $t5, 8 +/* 111680 7F0DCB50 0169C821 */ addu $t9, $t3, $t1 +/* 111684 7F0DCB54 10000025 */ b .L7F0DCBEC +/* 111688 7F0DCB58 A32E0001 */ sb $t6, 1($t9) +.L7F0DCB5C: +/* 11168C 7F0DCB5C 29015800 */ slti $at, $t0, 0x5800 +/* 111690 7F0DCB60 1420000E */ bnez $at, .L7F0DCB9C +/* 111694 7F0DCB64 97A80292 */ lhu $t0, 0x292($sp) +/* 111698 7F0DCB68 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 11169C 7F0DCB6C 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 1116A0 7F0DCB70 97AF0298 */ lhu $t7, 0x298($sp) +/* 1116A4 7F0DCB74 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 1116A8 7F0DCB78 030A6821 */ addu $t5, $t8, $t2 +/* 1116AC 7F0DCB7C 000F6203 */ sra $t4, $t7, 8 +/* 1116B0 7F0DCB80 A1AC0001 */ sb $t4, 1($t5) +/* 1116B4 7F0DCB84 97AE0292 */ lhu $t6, 0x292($sp) +/* 1116B8 7F0DCB88 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 1116BC 7F0DCB8C 240B0001 */ li $t3, 1 +/* 1116C0 7F0DCB90 012EC821 */ addu $t9, $t1, $t6 +/* 1116C4 7F0DCB94 10000015 */ b .L7F0DCBEC +/* 1116C8 7F0DCB98 A32BA801 */ sb $t3, -0x57ff($t9) +.L7F0DCB9C: +/* 1116CC 7F0DCB9C 250F0001 */ addiu $t7, $t0, 1 +/* 1116D0 7F0DCBA0 29E14000 */ slti $at, $t7, 0x4000 +/* 1116D4 7F0DCBA4 14200011 */ bnez $at, .L7F0DCBEC +/* 1116D8 7F0DCBA8 97B80298 */ lhu $t8, 0x298($sp) +/* 1116DC 7F0DCBAC 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 1116E0 7F0DCBB0 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 1116E4 7F0DCBB4 00185203 */ sra $t2, $t8, 8 +/* 1116E8 7F0DCBB8 24090001 */ li $t1, 1 +/* 1116EC 7F0DCBBC 01886821 */ addu $t5, $t4, $t0 +/* 1116F0 7F0DCBC0 A1AA0001 */ sb $t2, 1($t5) +/* 1116F4 7F0DCBC4 97AE0292 */ lhu $t6, 0x292($sp) +/* 1116F8 7F0DCBC8 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 1116FC 7F0DCBCC 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 111700 7F0DCBD0 25CB0001 */ addiu $t3, $t6, 1 +/* 111704 7F0DCBD4 31791800 */ andi $t9, $t3, 0x1800 +/* 111708 7F0DCBD8 001978C3 */ sra $t7, $t9, 3 +/* 11170C 7F0DCBDC 317800FF */ andi $t8, $t3, 0xff +/* 111710 7F0DCBE0 01F86025 */ or $t4, $t7, $t8 +/* 111714 7F0DCBE4 010C5021 */ addu $t2, $t0, $t4 +/* 111718 7F0DCBE8 A1490000 */ sb $t1, ($t2) +.L7F0DCBEC: +/* 11171C 7F0DCBEC 240D0008 */ li $t5, 8 +/* 111720 7F0DCBF0 10001702 */ b .L7F0E27FC +/* 111724 7F0DCBF4 A7AD0298 */ sh $t5, 0x298($sp) +spectrum_op_D0: +/* 111728 7F0DCBF8 8FAE028C */ lw $t6, 0x28c($sp) +/* 11172C 7F0DCBFC 322B0001 */ andi $t3, $s1, 1 +/* 111730 7F0DCC00 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 111734 7F0DCC04 25D90005 */ addiu $t9, $t6, 5 +/* 111738 7F0DCC08 156016FC */ bnez $t3, .L7F0E27FC +/* 11173C 7F0DCC0C AFB9028C */ sw $t9, 0x28c($sp) +/* 111740 7F0DCC10 97A80292 */ lhu $t0, 0x292($sp) +/* 111744 7F0DCC14 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 111748 7F0DCC18 27380006 */ addiu $t8, $t9, 6 +/* 11174C 7F0DCC1C AFB8028C */ sw $t8, 0x28c($sp) +/* 111750 7F0DCC20 01886821 */ addu $t5, $t4, $t0 +/* 111754 7F0DCC24 91AE0001 */ lbu $t6, 1($t5) +/* 111758 7F0DCC28 010C4821 */ addu $t1, $t0, $t4 +/* 11175C 7F0DCC2C 912A0000 */ lbu $t2, ($t1) +/* 111760 7F0DCC30 000ECA00 */ sll $t9, $t6, 8 +/* 111764 7F0DCC34 250F0002 */ addiu $t7, $t0, 2 +/* 111768 7F0DCC38 01595825 */ or $t3, $t2, $t9 +/* 11176C 7F0DCC3C A7AB0298 */ sh $t3, 0x298($sp) +/* 111770 7F0DCC40 100016EE */ b .L7F0E27FC +/* 111774 7F0DCC44 A7AF0292 */ sh $t7, 0x292($sp) +spectrum_op_D1: +/* 111778 7F0DCC48 8FB8028C */ lw $t8, 0x28c($sp) +/* 11177C 7F0DCC4C 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 111780 7F0DCC50 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 111784 7F0DCC54 97AC0292 */ lhu $t4, 0x292($sp) +/* 111788 7F0DCC58 2709000A */ addiu $t1, $t8, 0xa +/* 11178C 7F0DCC5C AFA9028C */ sw $t1, 0x28c($sp) +/* 111790 7F0DCC60 018D7021 */ addu $t6, $t4, $t5 +/* 111794 7F0DCC64 91D50000 */ lbu $s5, ($t6) +/* 111798 7F0DCC68 91D40001 */ lbu $s4, 1($t6) +/* 11179C 7F0DCC6C 258A0002 */ addiu $t2, $t4, 2 +/* 1117A0 7F0DCC70 100016E2 */ b .L7F0E27FC +/* 1117A4 7F0DCC74 A7AA0292 */ sh $t2, 0x292($sp) +spectrum_op_D2: +/* 1117A8 7F0DCC78 8FB9028C */ lw $t9, 0x28c($sp) +/* 1117AC 7F0DCC7C 32280001 */ andi $t0, $s1, 1 +/* 1117B0 7F0DCC80 97AF0298 */ lhu $t7, 0x298($sp) +/* 1117B4 7F0DCC84 272B000A */ addiu $t3, $t9, 0xa +/* 1117B8 7F0DCC88 1500000B */ bnez $t0, .L7F0DCCB8 +/* 1117BC 7F0DCC8C AFAB028C */ sw $t3, 0x28c($sp) +/* 1117C0 7F0DCC90 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 1117C4 7F0DCC94 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 1117C8 7F0DCC98 030F7021 */ addu $t6, $t8, $t7 +/* 1117CC 7F0DCC9C 91CC0001 */ lbu $t4, 1($t6) +/* 1117D0 7F0DCCA0 01F84821 */ addu $t1, $t7, $t8 +/* 1117D4 7F0DCCA4 912D0000 */ lbu $t5, ($t1) +/* 1117D8 7F0DCCA8 000C5200 */ sll $t2, $t4, 8 +/* 1117DC 7F0DCCAC 01AAC825 */ or $t9, $t5, $t2 +/* 1117E0 7F0DCCB0 100016D2 */ b .L7F0E27FC +/* 1117E4 7F0DCCB4 A7B90298 */ sh $t9, 0x298($sp) +.L7F0DCCB8: +/* 1117E8 7F0DCCB8 97AB0298 */ lhu $t3, 0x298($sp) +/* 1117EC 7F0DCCBC 25680002 */ addiu $t0, $t3, 2 +/* 1117F0 7F0DCCC0 100016CE */ b .L7F0E27FC +/* 1117F4 7F0DCCC4 A7A80298 */ sh $t0, 0x298($sp) +spectrum_op_D3: +/* 1117F8 7F0DCCC8 8FA9028C */ lw $t1, 0x28c($sp) +/* 1117FC 7F0DCCCC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 111800 7F0DCCD0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 111804 7F0DCCD4 97AF0298 */ lhu $t7, 0x298($sp) +/* 111808 7F0DCCD8 2524000B */ addiu $a0, $t1, 0xb +/* 11180C 7F0DCCDC AFA4028C */ sw $a0, 0x28c($sp) +/* 111810 7F0DCCE0 01EE6021 */ addu $t4, $t7, $t6 +/* 111814 7F0DCCE4 91860000 */ lbu $a2, ($t4) +/* 111818 7F0DCCE8 02002825 */ move $a1, $s0 +/* 11181C 7F0DCCEC 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 111820 7F0DCCF0 02003825 */ move $a3, $s0 +/* 111824 7F0DCCF4 8FAD028C */ lw $t5, 0x28c($sp) +/* 111828 7F0DCCF8 97AB0298 */ lhu $t3, 0x298($sp) +/* 11182C 7F0DCCFC AFA20048 */ sw $v0, 0x48($sp) +/* 111830 7F0DCD00 01A2C821 */ addu $t9, $t5, $v0 +/* 111834 7F0DCD04 25680001 */ addiu $t0, $t3, 1 +/* 111838 7F0DCD08 AFB9028C */ sw $t9, 0x28c($sp) +/* 11183C 7F0DCD0C 100016BB */ b .L7F0E27FC +/* 111840 7F0DCD10 A7A80298 */ sh $t0, 0x298($sp) +spectrum_op_D4: +/* 111844 7F0DCD14 8FA9028C */ lw $t1, 0x28c($sp) +/* 111848 7F0DCD18 322F0001 */ andi $t7, $s1, 1 +/* 11184C 7F0DCD1C 2538000A */ addiu $t8, $t1, 0xa +/* 111850 7F0DCD20 15E00072 */ bnez $t7, .L7F0DCEEC +/* 111854 7F0DCD24 AFB8028C */ sw $t8, 0x28c($sp) +/* 111858 7F0DCD28 97AD0292 */ lhu $t5, 0x292($sp) +/* 11185C 7F0DCD2C 270C0007 */ addiu $t4, $t8, 7 +/* 111860 7F0DCD30 AFAC028C */ sw $t4, 0x28c($sp) +/* 111864 7F0DCD34 25AAFFFE */ addiu $t2, $t5, -2 +/* 111868 7F0DCD38 3159FFFF */ andi $t9, $t2, 0xffff +/* 11186C 7F0DCD3C 2B215B00 */ slti $at, $t9, 0x5b00 +/* 111870 7F0DCD40 14200008 */ bnez $at, .L7F0DCD64 +/* 111874 7F0DCD44 A7AA0292 */ sh $t2, 0x292($sp) +/* 111878 7F0DCD48 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 11187C 7F0DCD4C 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 111880 7F0DCD50 97AB0298 */ lhu $t3, 0x298($sp) +/* 111884 7F0DCD54 0139C021 */ addu $t8, $t1, $t9 +/* 111888 7F0DCD58 25680002 */ addiu $t0, $t3, 2 +/* 11188C 7F0DCD5C 10000024 */ b .L7F0DCDF0 +/* 111890 7F0DCD60 A3080000 */ sb $t0, ($t8) +.L7F0DCD64: +/* 111894 7F0DCD64 97AF0292 */ lhu $t7, 0x292($sp) +/* 111898 7F0DCD68 97B80292 */ lhu $t8, 0x292($sp) +/* 11189C 7F0DCD6C 97AE0298 */ lhu $t6, 0x298($sp) +/* 1118A0 7F0DCD70 29E15800 */ slti $at, $t7, 0x5800 +/* 1118A4 7F0DCD74 1420000C */ bnez $at, .L7F0DCDA8 +/* 1118A8 7F0DCD78 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1118AC 7F0DCD7C 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1118B0 7F0DCD80 25CC0002 */ addiu $t4, $t6, 2 +/* 1118B4 7F0DCD84 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 1118B8 7F0DCD88 01AF5021 */ addu $t2, $t5, $t7 +/* 1118BC 7F0DCD8C A14C0000 */ sb $t4, ($t2) +/* 1118C0 7F0DCD90 97B90292 */ lhu $t9, 0x292($sp) +/* 1118C4 7F0DCD94 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 1118C8 7F0DCD98 240B0001 */ li $t3, 1 +/* 1118CC 7F0DCD9C 01394021 */ addu $t0, $t1, $t9 +/* 1118D0 7F0DCDA0 10000013 */ b .L7F0DCDF0 +/* 1118D4 7F0DCDA4 A10BA800 */ sb $t3, -0x5800($t0) +.L7F0DCDA8: +/* 1118D8 7F0DCDA8 2B014000 */ slti $at, $t8, 0x4000 +/* 1118DC 7F0DCDAC 14200010 */ bnez $at, .L7F0DCDF0 +/* 1118E0 7F0DCDB0 97AE0298 */ lhu $t6, 0x298($sp) +/* 1118E4 7F0DCDB4 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 1118E8 7F0DCDB8 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 1118EC 7F0DCDBC 25CD0002 */ addiu $t5, $t6, 2 +/* 1118F0 7F0DCDC0 240A0001 */ li $t2, 1 +/* 1118F4 7F0DCDC4 01F86021 */ addu $t4, $t7, $t8 +/* 1118F8 7F0DCDC8 A18D0000 */ sb $t5, ($t4) +/* 1118FC 7F0DCDCC 97A90292 */ lhu $t1, 0x292($sp) +/* 111900 7F0DCDD0 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 111904 7F0DCDD4 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 111908 7F0DCDD8 31391800 */ andi $t9, $t1, 0x1800 +/* 11190C 7F0DCDDC 001958C3 */ sra $t3, $t9, 3 +/* 111910 7F0DCDE0 312800FF */ andi $t0, $t1, 0xff +/* 111914 7F0DCDE4 01687025 */ or $t6, $t3, $t0 +/* 111918 7F0DCDE8 01EEC021 */ addu $t8, $t7, $t6 +/* 11191C 7F0DCDEC A30A0000 */ sb $t2, ($t8) +.L7F0DCDF0: +/* 111920 7F0DCDF0 97AD0292 */ lhu $t5, 0x292($sp) +/* 111924 7F0DCDF4 97AE0292 */ lhu $t6, 0x292($sp) +/* 111928 7F0DCDF8 97B90298 */ lhu $t9, 0x298($sp) +/* 11192C 7F0DCDFC 25AC0001 */ addiu $t4, $t5, 1 +/* 111930 7F0DCE00 29815B00 */ slti $at, $t4, 0x5b00 +/* 111934 7F0DCE04 14200008 */ bnez $at, .L7F0DCE28 +/* 111938 7F0DCE08 25CA0001 */ addiu $t2, $t6, 1 +/* 11193C 7F0DCE0C 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 111940 7F0DCE10 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 111944 7F0DCE14 27290002 */ addiu $t1, $t9, 2 +/* 111948 7F0DCE18 00095A03 */ sra $t3, $t1, 8 +/* 11194C 7F0DCE1C 010D7821 */ addu $t7, $t0, $t5 +/* 111950 7F0DCE20 10000027 */ b .L7F0DCEC0 +/* 111954 7F0DCE24 A1EB0001 */ sb $t3, 1($t7) +.L7F0DCE28: +/* 111958 7F0DCE28 29415800 */ slti $at, $t2, 0x5800 +/* 11195C 7F0DCE2C 1420000F */ bnez $at, .L7F0DCE6C +/* 111960 7F0DCE30 97B80292 */ lhu $t8, 0x292($sp) +/* 111964 7F0DCE34 97B80298 */ lhu $t8, 0x298($sp) +/* 111968 7F0DCE38 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 11196C 7F0DCE3C 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 111970 7F0DCE40 270C0002 */ addiu $t4, $t8, 2 +/* 111974 7F0DCE44 000CCA03 */ sra $t9, $t4, 8 +/* 111978 7F0DCE48 012E4021 */ addu $t0, $t1, $t6 +/* 11197C 7F0DCE4C A1190001 */ sb $t9, 1($t0) +/* 111980 7F0DCE50 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 111984 7F0DCE54 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 111988 7F0DCE58 97AF0292 */ lhu $t7, 0x292($sp) +/* 11198C 7F0DCE5C 240D0001 */ li $t5, 1 +/* 111990 7F0DCE60 016F5021 */ addu $t2, $t3, $t7 +/* 111994 7F0DCE64 10000016 */ b .L7F0DCEC0 +/* 111998 7F0DCE68 A14DA801 */ sb $t5, -0x57ff($t2) +.L7F0DCE6C: +/* 11199C 7F0DCE6C 270C0001 */ addiu $t4, $t8, 1 +/* 1119A0 7F0DCE70 29814000 */ slti $at, $t4, 0x4000 +/* 1119A4 7F0DCE74 14200012 */ bnez $at, .L7F0DCEC0 +/* 1119A8 7F0DCE78 97A90298 */ lhu $t1, 0x298($sp) +/* 1119AC 7F0DCE7C 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1119B0 7F0DCE80 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1119B4 7F0DCE84 252E0002 */ addiu $t6, $t1, 2 +/* 1119B8 7F0DCE88 000ECA03 */ sra $t9, $t6, 8 +/* 1119BC 7F0DCE8C 01185821 */ addu $t3, $t0, $t8 +/* 1119C0 7F0DCE90 A1790001 */ sb $t9, 1($t3) +/* 1119C4 7F0DCE94 97AD0292 */ lhu $t5, 0x292($sp) +/* 1119C8 7F0DCE98 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 1119CC 7F0DCE9C 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 1119D0 7F0DCEA0 25AA0001 */ addiu $t2, $t5, 1 +/* 1119D4 7F0DCEA4 314C1800 */ andi $t4, $t2, 0x1800 +/* 1119D8 7F0DCEA8 000C48C3 */ sra $t1, $t4, 3 +/* 1119DC 7F0DCEAC 314E00FF */ andi $t6, $t2, 0xff +/* 1119E0 7F0DCEB0 012E4025 */ or $t0, $t1, $t6 +/* 1119E4 7F0DCEB4 240F0001 */ li $t7, 1 +/* 1119E8 7F0DCEB8 0308C821 */ addu $t9, $t8, $t0 +/* 1119EC 7F0DCEBC A32F0000 */ sb $t7, ($t9) +.L7F0DCEC0: +/* 1119F0 7F0DCEC0 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1119F4 7F0DCEC4 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1119F8 7F0DCEC8 97AB0298 */ lhu $t3, 0x298($sp) +/* 1119FC 7F0DCECC 01AB4821 */ addu $t1, $t5, $t3 +/* 111A00 7F0DCED0 912E0001 */ lbu $t6, 1($t1) +/* 111A04 7F0DCED4 016D6021 */ addu $t4, $t3, $t5 +/* 111A08 7F0DCED8 918A0000 */ lbu $t2, ($t4) +/* 111A0C 7F0DCEDC 000EC200 */ sll $t8, $t6, 8 +/* 111A10 7F0DCEE0 01584025 */ or $t0, $t2, $t8 +/* 111A14 7F0DCEE4 10001645 */ b .L7F0E27FC +/* 111A18 7F0DCEE8 A7A80298 */ sh $t0, 0x298($sp) +.L7F0DCEEC: +/* 111A1C 7F0DCEEC 97AF0298 */ lhu $t7, 0x298($sp) +/* 111A20 7F0DCEF0 25F90002 */ addiu $t9, $t7, 2 +/* 111A24 7F0DCEF4 10001641 */ b .L7F0E27FC +/* 111A28 7F0DCEF8 A7B90298 */ sh $t9, 0x298($sp) +spectrum_op_D5: +/* 111A2C 7F0DCEFC 97AB0292 */ lhu $t3, 0x292($sp) +/* 111A30 7F0DCF00 8FAC028C */ lw $t4, 0x28c($sp) +/* 111A34 7F0DCF04 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 111A38 7F0DCF08 2569FFFE */ addiu $t1, $t3, -2 +/* 111A3C 7F0DCF0C 312EFFFF */ andi $t6, $t1, 0xffff +/* 111A40 7F0DCF10 29C15B00 */ slti $at, $t6, 0x5b00 +/* 111A44 7F0DCF14 258D000B */ addiu $t5, $t4, 0xb +/* 111A48 7F0DCF18 AFAD028C */ sw $t5, 0x28c($sp) +/* 111A4C 7F0DCF1C 14200005 */ bnez $at, .L7F0DCF34 +/* 111A50 7F0DCF20 A7A90292 */ sh $t1, 0x292($sp) +/* 111A54 7F0DCF24 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 111A58 7F0DCF28 014EC021 */ addu $t8, $t2, $t6 +/* 111A5C 7F0DCF2C 10000021 */ b .L7F0DCFB4 +/* 111A60 7F0DCF30 A3150000 */ sb $s5, ($t8) +.L7F0DCF34: +/* 111A64 7F0DCF34 97A80292 */ lhu $t0, 0x292($sp) +/* 111A68 7F0DCF38 97AA0292 */ lhu $t2, 0x292($sp) +/* 111A6C 7F0DCF3C 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 111A70 7F0DCF40 29015800 */ slti $at, $t0, 0x5800 +/* 111A74 7F0DCF44 5420000C */ bnezl $at, .L7F0DCF78 +/* 111A78 7F0DCF48 29414000 */ slti $at, $t2, 0x4000 +/* 111A7C 7F0DCF4C 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 111A80 7F0DCF50 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 111A84 7F0DCF54 240C0001 */ li $t4, 1 +/* 111A88 7F0DCF58 01E8C821 */ addu $t9, $t7, $t0 +/* 111A8C 7F0DCF5C A3350000 */ sb $s5, ($t9) +/* 111A90 7F0DCF60 97AB0292 */ lhu $t3, 0x292($sp) +/* 111A94 7F0DCF64 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 111A98 7F0DCF68 01AB4821 */ addu $t1, $t5, $t3 +/* 111A9C 7F0DCF6C 10000011 */ b .L7F0DCFB4 +/* 111AA0 7F0DCF70 A12CA800 */ sb $t4, -0x5800($t1) +/* 111AA4 7F0DCF74 29414000 */ slti $at, $t2, 0x4000 +.L7F0DCF78: +/* 111AA8 7F0DCF78 1420000E */ bnez $at, .L7F0DCFB4 +/* 111AAC 7F0DCF7C 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 111AB0 7F0DCF80 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 111AB4 7F0DCF84 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 111AB8 7F0DCF88 240F0001 */ li $t7, 1 +/* 111ABC 7F0DCF8C 01CAC021 */ addu $t8, $t6, $t2 +/* 111AC0 7F0DCF90 A3150000 */ sb $s5, ($t8) +/* 111AC4 7F0DCF94 97A80292 */ lhu $t0, 0x292($sp) +/* 111AC8 7F0DCF98 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 111ACC 7F0DCF9C 31191800 */ andi $t9, $t0, 0x1800 +/* 111AD0 7F0DCFA0 001968C3 */ sra $t5, $t9, 3 +/* 111AD4 7F0DCFA4 310B00FF */ andi $t3, $t0, 0xff +/* 111AD8 7F0DCFA8 01AB6025 */ or $t4, $t5, $t3 +/* 111ADC 7F0DCFAC 012C7021 */ addu $t6, $t1, $t4 +/* 111AE0 7F0DCFB0 A1CF0000 */ sb $t7, ($t6) +.L7F0DCFB4: +/* 111AE4 7F0DCFB4 97AA0292 */ lhu $t2, 0x292($sp) +/* 111AE8 7F0DCFB8 97AD0292 */ lhu $t5, 0x292($sp) +/* 111AEC 7F0DCFBC 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 111AF0 7F0DCFC0 25580001 */ addiu $t8, $t2, 1 +/* 111AF4 7F0DCFC4 2B015B00 */ slti $at, $t8, 0x5b00 +/* 111AF8 7F0DCFC8 14200005 */ bnez $at, .L7F0DCFE0 +/* 111AFC 7F0DCFCC 25AB0001 */ addiu $t3, $t5, 1 +/* 111B00 7F0DCFD0 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 111B04 7F0DCFD4 032A4021 */ addu $t0, $t9, $t2 +/* 111B08 7F0DCFD8 10001608 */ b .L7F0E27FC +/* 111B0C 7F0DCFDC A1140001 */ sb $s4, 1($t0) +.L7F0DCFE0: +/* 111B10 7F0DCFE0 29615800 */ slti $at, $t3, 0x5800 +/* 111B14 7F0DCFE4 1420000C */ bnez $at, .L7F0DD018 +/* 111B18 7F0DCFE8 97AA0292 */ lhu $t2, 0x292($sp) +/* 111B1C 7F0DCFEC 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 111B20 7F0DCFF0 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 111B24 7F0DCFF4 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 111B28 7F0DCFF8 240F0001 */ li $t7, 1 +/* 111B2C 7F0DCFFC 012D6021 */ addu $t4, $t1, $t5 +/* 111B30 7F0DD000 A1940001 */ sb $s4, 1($t4) +/* 111B34 7F0DD004 97B80292 */ lhu $t8, 0x292($sp) +/* 111B38 7F0DD008 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 111B3C 7F0DD00C 01D8C821 */ addu $t9, $t6, $t8 +/* 111B40 7F0DD010 100015FA */ b .L7F0E27FC +/* 111B44 7F0DD014 A32FA801 */ sb $t7, -0x57ff($t9) +.L7F0DD018: +/* 111B48 7F0DD018 25480001 */ addiu $t0, $t2, 1 +/* 111B4C 7F0DD01C 29014000 */ slti $at, $t0, 0x4000 +/* 111B50 7F0DD020 142015F6 */ bnez $at, .L7F0E27FC +/* 111B54 7F0DD024 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 111B58 7F0DD028 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 111B5C 7F0DD02C 240D0001 */ li $t5, 1 +/* 111B60 7F0DD030 016A4821 */ addu $t1, $t3, $t2 +/* 111B64 7F0DD034 A1340001 */ sb $s4, 1($t1) +/* 111B68 7F0DD038 97AC0292 */ lhu $t4, 0x292($sp) +/* 111B6C 7F0DD03C 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 111B70 7F0DD040 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 111B74 7F0DD044 258E0001 */ addiu $t6, $t4, 1 +/* 111B78 7F0DD048 31D81800 */ andi $t8, $t6, 0x1800 +/* 111B7C 7F0DD04C 001878C3 */ sra $t7, $t8, 3 +/* 111B80 7F0DD050 31D900FF */ andi $t9, $t6, 0xff +/* 111B84 7F0DD054 01F94025 */ or $t0, $t7, $t9 +/* 111B88 7F0DD058 01685021 */ addu $t2, $t3, $t0 +/* 111B8C 7F0DD05C 100015E7 */ b .L7F0E27FC +/* 111B90 7F0DD060 A14D0000 */ sb $t5, ($t2) +spectrum_op_D6: +/* 111B94 7F0DD064 8FA9028C */ lw $t1, 0x28c($sp) +/* 111B98 7F0DD068 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 111B9C 7F0DD06C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 111BA0 7F0DD070 97B80298 */ lhu $t8, 0x298($sp) +/* 111BA4 7F0DD074 252C0007 */ addiu $t4, $t1, 7 +/* 111BA8 7F0DD078 AFAC028C */ sw $t4, 0x28c($sp) +/* 111BAC 7F0DD07C 030E7821 */ addu $t7, $t8, $t6 +/* 111BB0 7F0DD080 91F90000 */ lbu $t9, ($t7) +/* 111BB4 7F0DD084 320F000F */ andi $t7, $s0, 0xf +/* 111BB8 7F0DD088 02195823 */ subu $t3, $s0, $t9 +/* 111BBC 7F0DD08C 316801FF */ andi $t0, $t3, 0x1ff +/* 111BC0 7F0DD090 310A00A8 */ andi $t2, $t0, 0xa8 +/* 111BC4 7F0DD094 00086203 */ sra $t4, $t0, 8 +/* 111BC8 7F0DD098 332E000F */ andi $t6, $t9, 0xf +/* 111BCC 7F0DD09C 01EE582A */ slt $t3, $t7, $t6 +/* 111BD0 7F0DD0A0 014CC025 */ or $t8, $t2, $t4 +/* 111BD4 7F0DD0A4 02195026 */ xor $t2, $s0, $t9 +/* 111BD8 7F0DD0A8 000B6900 */ sll $t5, $t3, 4 +/* 111BDC 7F0DD0AC 01107026 */ xor $t6, $t0, $s0 +/* 111BE0 7F0DD0B0 A7A800FA */ sh $t0, 0xfa($sp) +/* 111BE4 7F0DD0B4 93B000FB */ lbu $s0, 0xfb($sp) +/* 111BE8 7F0DD0B8 314C0080 */ andi $t4, $t2, 0x80 +/* 111BEC 7F0DD0BC 018E5824 */ and $t3, $t4, $t6 +/* 111BF0 7F0DD0C0 030D4825 */ or $t1, $t8, $t5 +/* 111BF4 7F0DD0C4 000BC143 */ sra $t8, $t3, 5 +/* 111BF8 7F0DD0C8 97AE0298 */ lhu $t6, 0x298($sp) +/* 111BFC 7F0DD0CC 01388825 */ or $s1, $t1, $t8 +/* 111C00 7F0DD0D0 A3B900F9 */ sb $t9, 0xf9($sp) +/* 111C04 7F0DD0D4 2E0A0001 */ sltiu $t2, $s0, 1 +/* 111C08 7F0DD0D8 000A7980 */ sll $t7, $t2, 6 +/* 111C0C 7F0DD0DC 36390002 */ ori $t9, $s1, 2 +/* 111C10 7F0DD0E0 032F8825 */ or $s1, $t9, $t7 +/* 111C14 7F0DD0E4 322C00FF */ andi $t4, $s1, 0xff +/* 111C18 7F0DD0E8 25CB0001 */ addiu $t3, $t6, 1 +/* 111C1C 7F0DD0EC 01808825 */ move $s1, $t4 +/* 111C20 7F0DD0F0 AFAA0048 */ sw $t2, 0x48($sp) +/* 111C24 7F0DD0F4 100015C1 */ b .L7F0E27FC +/* 111C28 7F0DD0F8 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_D7: +/* 111C2C 7F0DD0FC 97AD0292 */ lhu $t5, 0x292($sp) +/* 111C30 7F0DD100 8FA9028C */ lw $t1, 0x28c($sp) +/* 111C34 7F0DD104 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 111C38 7F0DD108 25B9FFFE */ addiu $t9, $t5, -2 +/* 111C3C 7F0DD10C 332AFFFF */ andi $t2, $t9, 0xffff +/* 111C40 7F0DD110 29415B00 */ slti $at, $t2, 0x5b00 +/* 111C44 7F0DD114 2538000B */ addiu $t8, $t1, 0xb +/* 111C48 7F0DD118 AFB8028C */ sw $t8, 0x28c($sp) +/* 111C4C 7F0DD11C 14200006 */ bnez $at, .L7F0DD138 +/* 111C50 7F0DD120 A7B90292 */ sh $t9, 0x292($sp) +/* 111C54 7F0DD124 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 111C58 7F0DD128 97A80298 */ lhu $t0, 0x298($sp) +/* 111C5C 7F0DD12C 01EA6021 */ addu $t4, $t7, $t2 +/* 111C60 7F0DD130 10000023 */ b .L7F0DD1C0 +/* 111C64 7F0DD134 A1880000 */ sb $t0, ($t4) +.L7F0DD138: +/* 111C68 7F0DD138 97AE0292 */ lhu $t6, 0x292($sp) +/* 111C6C 7F0DD13C 97A80292 */ lhu $t0, 0x292($sp) +/* 111C70 7F0DD140 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 111C74 7F0DD144 29C15800 */ slti $at, $t6, 0x5800 +/* 111C78 7F0DD148 5420000D */ bnezl $at, .L7F0DD180 +/* 111C7C 7F0DD14C 29014000 */ slti $at, $t0, 0x4000 +/* 111C80 7F0DD150 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 111C84 7F0DD154 97AB0298 */ lhu $t3, 0x298($sp) +/* 111C88 7F0DD158 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 111C8C 7F0DD15C 012EC021 */ addu $t8, $t1, $t6 +/* 111C90 7F0DD160 A30B0000 */ sb $t3, ($t8) +/* 111C94 7F0DD164 97AF0292 */ lhu $t7, 0x292($sp) +/* 111C98 7F0DD168 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 111C9C 7F0DD16C 240D0001 */ li $t5, 1 +/* 111CA0 7F0DD170 032F5021 */ addu $t2, $t9, $t7 +/* 111CA4 7F0DD174 10000012 */ b .L7F0DD1C0 +/* 111CA8 7F0DD178 A14DA800 */ sb $t5, -0x5800($t2) +/* 111CAC 7F0DD17C 29014000 */ slti $at, $t0, 0x4000 +.L7F0DD180: +/* 111CB0 7F0DD180 1420000F */ bnez $at, .L7F0DD1C0 +/* 111CB4 7F0DD184 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 111CB8 7F0DD188 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 111CBC 7F0DD18C 97AC0298 */ lhu $t4, 0x298($sp) +/* 111CC0 7F0DD190 240B0001 */ li $t3, 1 +/* 111CC4 7F0DD194 01287021 */ addu $t6, $t1, $t0 +/* 111CC8 7F0DD198 A1CC0000 */ sb $t4, ($t6) +/* 111CCC 7F0DD19C 97B80292 */ lhu $t8, 0x292($sp) +/* 111CD0 7F0DD1A0 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 111CD4 7F0DD1A4 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 111CD8 7F0DD1A8 33191800 */ andi $t9, $t8, 0x1800 +/* 111CDC 7F0DD1AC 001978C3 */ sra $t7, $t9, 3 +/* 111CE0 7F0DD1B0 330D00FF */ andi $t5, $t8, 0xff +/* 111CE4 7F0DD1B4 01ED5025 */ or $t2, $t7, $t5 +/* 111CE8 7F0DD1B8 012A4021 */ addu $t0, $t1, $t2 +/* 111CEC 7F0DD1BC A10B0000 */ sb $t3, ($t0) +.L7F0DD1C0: +/* 111CF0 7F0DD1C0 97AC0292 */ lhu $t4, 0x292($sp) +/* 111CF4 7F0DD1C4 97A90292 */ lhu $t1, 0x292($sp) +/* 111CF8 7F0DD1C8 97B90298 */ lhu $t9, 0x298($sp) +/* 111CFC 7F0DD1CC 258E0001 */ addiu $t6, $t4, 1 +/* 111D00 7F0DD1D0 29C15B00 */ slti $at, $t6, 0x5b00 +/* 111D04 7F0DD1D4 14200007 */ bnez $at, .L7F0DD1F4 +/* 111D08 7F0DD1D8 252A0001 */ addiu $t2, $t1, 1 +/* 111D0C 7F0DD1DC 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 111D10 7F0DD1E0 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 111D14 7F0DD1E4 0019C203 */ sra $t8, $t9, 8 +/* 111D18 7F0DD1E8 01EC6821 */ addu $t5, $t7, $t4 +/* 111D1C 7F0DD1EC 10000025 */ b .L7F0DD284 +/* 111D20 7F0DD1F0 A1B80001 */ sb $t8, 1($t5) +.L7F0DD1F4: +/* 111D24 7F0DD1F4 29415800 */ slti $at, $t2, 0x5800 +/* 111D28 7F0DD1F8 1420000E */ bnez $at, .L7F0DD234 +/* 111D2C 7F0DD1FC 97AA0292 */ lhu $t2, 0x292($sp) +/* 111D30 7F0DD200 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 111D34 7F0DD204 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 111D38 7F0DD208 97AB0298 */ lhu $t3, 0x298($sp) +/* 111D3C 7F0DD20C 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 111D40 7F0DD210 01C9C821 */ addu $t9, $t6, $t1 +/* 111D44 7F0DD214 000B4203 */ sra $t0, $t3, 8 +/* 111D48 7F0DD218 A3280001 */ sb $t0, 1($t9) +/* 111D4C 7F0DD21C 97B80292 */ lhu $t8, 0x292($sp) +/* 111D50 7F0DD220 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 111D54 7F0DD224 240F0001 */ li $t7, 1 +/* 111D58 7F0DD228 01986821 */ addu $t5, $t4, $t8 +/* 111D5C 7F0DD22C 10000015 */ b .L7F0DD284 +/* 111D60 7F0DD230 A1AFA801 */ sb $t7, -0x57ff($t5) +.L7F0DD234: +/* 111D64 7F0DD234 254B0001 */ addiu $t3, $t2, 1 +/* 111D68 7F0DD238 29614000 */ slti $at, $t3, 0x4000 +/* 111D6C 7F0DD23C 14200011 */ bnez $at, .L7F0DD284 +/* 111D70 7F0DD240 97AE0298 */ lhu $t6, 0x298($sp) +/* 111D74 7F0DD244 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 111D78 7F0DD248 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 111D7C 7F0DD24C 000E4A03 */ sra $t1, $t6, 8 +/* 111D80 7F0DD250 240C0001 */ li $t4, 1 +/* 111D84 7F0DD254 010AC821 */ addu $t9, $t0, $t2 +/* 111D88 7F0DD258 A3290001 */ sb $t1, 1($t9) +/* 111D8C 7F0DD25C 97B80292 */ lhu $t8, 0x292($sp) +/* 111D90 7F0DD260 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 111D94 7F0DD264 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 111D98 7F0DD268 270F0001 */ addiu $t7, $t8, 1 +/* 111D9C 7F0DD26C 31ED1800 */ andi $t5, $t7, 0x1800 +/* 111DA0 7F0DD270 000D58C3 */ sra $t3, $t5, 3 +/* 111DA4 7F0DD274 31EE00FF */ andi $t6, $t7, 0xff +/* 111DA8 7F0DD278 016E4025 */ or $t0, $t3, $t6 +/* 111DAC 7F0DD27C 01484821 */ addu $t1, $t2, $t0 +/* 111DB0 7F0DD280 A12C0000 */ sb $t4, ($t1) +.L7F0DD284: +/* 111DB4 7F0DD284 24190010 */ li $t9, 16 +/* 111DB8 7F0DD288 1000155C */ b .L7F0E27FC +/* 111DBC 7F0DD28C A7B90298 */ sh $t9, 0x298($sp) +spectrum_op_D8: +/* 111DC0 7F0DD290 8FB8028C */ lw $t8, 0x28c($sp) +/* 111DC4 7F0DD294 322F0001 */ andi $t7, $s1, 1 +/* 111DC8 7F0DD298 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 111DCC 7F0DD29C 270D0005 */ addiu $t5, $t8, 5 +/* 111DD0 7F0DD2A0 11E01556 */ beqz $t7, .L7F0E27FC +/* 111DD4 7F0DD2A4 AFAD028C */ sw $t5, 0x28c($sp) +/* 111DD8 7F0DD2A8 97AA0292 */ lhu $t2, 0x292($sp) +/* 111DDC 7F0DD2AC 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 111DE0 7F0DD2B0 25AE0006 */ addiu $t6, $t5, 6 +/* 111DE4 7F0DD2B4 AFAE028C */ sw $t6, 0x28c($sp) +/* 111DE8 7F0DD2B8 010AC821 */ addu $t9, $t0, $t2 +/* 111DEC 7F0DD2BC 93380001 */ lbu $t8, 1($t9) +/* 111DF0 7F0DD2C0 01486021 */ addu $t4, $t2, $t0 +/* 111DF4 7F0DD2C4 91890000 */ lbu $t1, ($t4) +/* 111DF8 7F0DD2C8 00186A00 */ sll $t5, $t8, 8 +/* 111DFC 7F0DD2CC 254B0002 */ addiu $t3, $t2, 2 +/* 111E00 7F0DD2D0 012D7825 */ or $t7, $t1, $t5 +/* 111E04 7F0DD2D4 A7AF0298 */ sh $t7, 0x298($sp) +/* 111E08 7F0DD2D8 10001548 */ b .L7F0E27FC +/* 111E0C 7F0DD2DC A7AB0292 */ sh $t3, 0x292($sp) +spectrum_op_D9: +/* 111E10 7F0DD2E0 8FAE028C */ lw $t6, 0x28c($sp) +/* 111E14 7F0DD2E4 A3B200F8 */ sb $s2, 0xf8($sp) +/* 111E18 7F0DD2E8 A3B300F7 */ sb $s3, 0xf7($sp) +/* 111E1C 7F0DD2EC A3B400F6 */ sb $s4, 0xf6($sp) +/* 111E20 7F0DD2F0 A3B500F5 */ sb $s5, 0xf5($sp) +/* 111E24 7F0DD2F4 A3B600F4 */ sb $s6, 0xf4($sp) +/* 111E28 7F0DD2F8 A3B700F3 */ sb $s7, 0xf3($sp) +/* 111E2C 7F0DD2FC 93A800F8 */ lbu $t0, 0xf8($sp) +/* 111E30 7F0DD300 93B900F7 */ lbu $t9, 0xf7($sp) +/* 111E34 7F0DD304 93B800F6 */ lbu $t8, 0xf6($sp) +/* 111E38 7F0DD308 93A900F5 */ lbu $t1, 0xf5($sp) +/* 111E3C 7F0DD30C 93AD00F4 */ lbu $t5, 0xf4($sp) +/* 111E40 7F0DD310 93AF00F3 */ lbu $t7, 0xf3($sp) +/* 111E44 7F0DD314 93B202A4 */ lbu $s2, 0x2a4($sp) +/* 111E48 7F0DD318 93B302A3 */ lbu $s3, 0x2a3($sp) +/* 111E4C 7F0DD31C 93B402A2 */ lbu $s4, 0x2a2($sp) +/* 111E50 7F0DD320 93B502A1 */ lbu $s5, 0x2a1($sp) +/* 111E54 7F0DD324 93B602A0 */ lbu $s6, 0x2a0($sp) +/* 111E58 7F0DD328 93B7029F */ lbu $s7, 0x29f($sp) +/* 111E5C 7F0DD32C 25CC0004 */ addiu $t4, $t6, 4 +/* 111E60 7F0DD330 AFAC028C */ sw $t4, 0x28c($sp) +/* 111E64 7F0DD334 A3A802A4 */ sb $t0, 0x2a4($sp) +/* 111E68 7F0DD338 A3B902A3 */ sb $t9, 0x2a3($sp) +/* 111E6C 7F0DD33C A3B802A2 */ sb $t8, 0x2a2($sp) +/* 111E70 7F0DD340 A3A902A1 */ sb $t1, 0x2a1($sp) +/* 111E74 7F0DD344 A3AD02A0 */ sb $t5, 0x2a0($sp) +/* 111E78 7F0DD348 1000152C */ b .L7F0E27FC +/* 111E7C 7F0DD34C A3AF029F */ sb $t7, 0x29f($sp) +spectrum_op_DA: +/* 111E80 7F0DD350 8FAA028C */ lw $t2, 0x28c($sp) +/* 111E84 7F0DD354 322E0001 */ andi $t6, $s1, 1 +/* 111E88 7F0DD358 97AC0298 */ lhu $t4, 0x298($sp) +/* 111E8C 7F0DD35C 254B000A */ addiu $t3, $t2, 0xa +/* 111E90 7F0DD360 11C0000B */ beqz $t6, .L7F0DD390 +/* 111E94 7F0DD364 AFAB028C */ sw $t3, 0x28c($sp) +/* 111E98 7F0DD368 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 111E9C 7F0DD36C 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 111EA0 7F0DD370 010C4821 */ addu $t1, $t0, $t4 +/* 111EA4 7F0DD374 912D0001 */ lbu $t5, 1($t1) +/* 111EA8 7F0DD378 0188C821 */ addu $t9, $t4, $t0 +/* 111EAC 7F0DD37C 93380000 */ lbu $t8, ($t9) +/* 111EB0 7F0DD380 000D7A00 */ sll $t7, $t5, 8 +/* 111EB4 7F0DD384 030F5025 */ or $t2, $t8, $t7 +/* 111EB8 7F0DD388 1000151C */ b .L7F0E27FC +/* 111EBC 7F0DD38C A7AA0298 */ sh $t2, 0x298($sp) +.L7F0DD390: +/* 111EC0 7F0DD390 97AB0298 */ lhu $t3, 0x298($sp) +/* 111EC4 7F0DD394 256E0002 */ addiu $t6, $t3, 2 +/* 111EC8 7F0DD398 10001518 */ b .L7F0E27FC +/* 111ECC 7F0DD39C A7AE0298 */ sh $t6, 0x298($sp) +spectrum_op_DB: +/* 111ED0 7F0DD3A0 8FB9028C */ lw $t9, 0x28c($sp) +/* 111ED4 7F0DD3A4 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 111ED8 7F0DD3A8 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 111EDC 7F0DD3AC 97AC0298 */ lhu $t4, 0x298($sp) +/* 111EE0 7F0DD3B0 2724000B */ addiu $a0, $t9, 0xb +/* 111EE4 7F0DD3B4 AFA4028C */ sw $a0, 0x28c($sp) +/* 111EE8 7F0DD3B8 01896821 */ addu $t5, $t4, $t1 +/* 111EEC 7F0DD3BC 91A60000 */ lbu $a2, ($t5) +/* 111EF0 7F0DD3C0 0FC34DB6 */ jal spectrum_input_handling +/* 111EF4 7F0DD3C4 02002825 */ move $a1, $s0 +/* 111EF8 7F0DD3C8 8FB8028C */ lw $t8, 0x28c($sp) +/* 111EFC 7F0DD3CC 97AE0298 */ lhu $t6, 0x298($sp) +/* 111F00 7F0DD3D0 304FFFFF */ andi $t7, $v0, 0xffff +/* 111F04 7F0DD3D4 000F5203 */ sra $t2, $t7, 8 +/* 111F08 7F0DD3D8 A7A200F0 */ sh $v0, 0xf0($sp) +/* 111F0C 7F0DD3DC 030A5821 */ addu $t3, $t8, $t2 +/* 111F10 7F0DD3E0 25D90001 */ addiu $t9, $t6, 1 +/* 111F14 7F0DD3E4 93B000F1 */ lbu $s0, 0xf1($sp) +/* 111F18 7F0DD3E8 AFAB028C */ sw $t3, 0x28c($sp) +/* 111F1C 7F0DD3EC 10001503 */ b .L7F0E27FC +/* 111F20 7F0DD3F0 A7B90298 */ sh $t9, 0x298($sp) +spectrum_op_DC: +/* 111F24 7F0DD3F4 8FA8028C */ lw $t0, 0x28c($sp) +/* 111F28 7F0DD3F8 32290001 */ andi $t1, $s1, 1 +/* 111F2C 7F0DD3FC 250C000A */ addiu $t4, $t0, 0xa +/* 111F30 7F0DD400 11200072 */ beqz $t1, .L7F0DD5CC +/* 111F34 7F0DD404 AFAC028C */ sw $t4, 0x28c($sp) +/* 111F38 7F0DD408 97B80292 */ lhu $t8, 0x292($sp) +/* 111F3C 7F0DD40C 258F0007 */ addiu $t7, $t4, 7 +/* 111F40 7F0DD410 AFAF028C */ sw $t7, 0x28c($sp) +/* 111F44 7F0DD414 270AFFFE */ addiu $t2, $t8, -2 +/* 111F48 7F0DD418 314BFFFF */ andi $t3, $t2, 0xffff +/* 111F4C 7F0DD41C 29615B00 */ slti $at, $t3, 0x5b00 +/* 111F50 7F0DD420 14200008 */ bnez $at, .L7F0DD444 +/* 111F54 7F0DD424 A7AA0292 */ sh $t2, 0x292($sp) +/* 111F58 7F0DD428 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 111F5C 7F0DD42C 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 111F60 7F0DD430 97AE0298 */ lhu $t6, 0x298($sp) +/* 111F64 7F0DD434 010B6021 */ addu $t4, $t0, $t3 +/* 111F68 7F0DD438 25D90002 */ addiu $t9, $t6, 2 +/* 111F6C 7F0DD43C 10000024 */ b .L7F0DD4D0 +/* 111F70 7F0DD440 A1990000 */ sb $t9, ($t4) +.L7F0DD444: +/* 111F74 7F0DD444 97A90292 */ lhu $t1, 0x292($sp) +/* 111F78 7F0DD448 97AC0292 */ lhu $t4, 0x292($sp) +/* 111F7C 7F0DD44C 97AD0298 */ lhu $t5, 0x298($sp) +/* 111F80 7F0DD450 29215800 */ slti $at, $t1, 0x5800 +/* 111F84 7F0DD454 1420000C */ bnez $at, .L7F0DD488 +/* 111F88 7F0DD458 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 111F8C 7F0DD45C 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 111F90 7F0DD460 25AF0002 */ addiu $t7, $t5, 2 +/* 111F94 7F0DD464 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 111F98 7F0DD468 03095021 */ addu $t2, $t8, $t1 +/* 111F9C 7F0DD46C A14F0000 */ sb $t7, ($t2) +/* 111FA0 7F0DD470 97AB0292 */ lhu $t3, 0x292($sp) +/* 111FA4 7F0DD474 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 111FA8 7F0DD478 240E0001 */ li $t6, 1 +/* 111FAC 7F0DD47C 010BC821 */ addu $t9, $t0, $t3 +/* 111FB0 7F0DD480 10000013 */ b .L7F0DD4D0 +/* 111FB4 7F0DD484 A32EA800 */ sb $t6, -0x5800($t9) +.L7F0DD488: +/* 111FB8 7F0DD488 29814000 */ slti $at, $t4, 0x4000 +/* 111FBC 7F0DD48C 14200010 */ bnez $at, .L7F0DD4D0 +/* 111FC0 7F0DD490 97AD0298 */ lhu $t5, 0x298($sp) +/* 111FC4 7F0DD494 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 111FC8 7F0DD498 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 111FCC 7F0DD49C 25B80002 */ addiu $t8, $t5, 2 +/* 111FD0 7F0DD4A0 240A0001 */ li $t2, 1 +/* 111FD4 7F0DD4A4 012C7821 */ addu $t7, $t1, $t4 +/* 111FD8 7F0DD4A8 A1F80000 */ sb $t8, ($t7) +/* 111FDC 7F0DD4AC 97A80292 */ lhu $t0, 0x292($sp) +/* 111FE0 7F0DD4B0 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 111FE4 7F0DD4B4 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 111FE8 7F0DD4B8 310B1800 */ andi $t3, $t0, 0x1800 +/* 111FEC 7F0DD4BC 000B70C3 */ sra $t6, $t3, 3 +/* 111FF0 7F0DD4C0 311900FF */ andi $t9, $t0, 0xff +/* 111FF4 7F0DD4C4 01D96825 */ or $t5, $t6, $t9 +/* 111FF8 7F0DD4C8 012D6021 */ addu $t4, $t1, $t5 +/* 111FFC 7F0DD4CC A18A0000 */ sb $t2, ($t4) +.L7F0DD4D0: +/* 112000 7F0DD4D0 97B80292 */ lhu $t8, 0x292($sp) +/* 112004 7F0DD4D4 97AD0292 */ lhu $t5, 0x292($sp) +/* 112008 7F0DD4D8 97AB0298 */ lhu $t3, 0x298($sp) +/* 11200C 7F0DD4DC 270F0001 */ addiu $t7, $t8, 1 +/* 112010 7F0DD4E0 29E15B00 */ slti $at, $t7, 0x5b00 +/* 112014 7F0DD4E4 14200008 */ bnez $at, .L7F0DD508 +/* 112018 7F0DD4E8 25AA0001 */ addiu $t2, $t5, 1 +/* 11201C 7F0DD4EC 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 112020 7F0DD4F0 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 112024 7F0DD4F4 25680002 */ addiu $t0, $t3, 2 +/* 112028 7F0DD4F8 00087203 */ sra $t6, $t0, 8 +/* 11202C 7F0DD4FC 03384821 */ addu $t1, $t9, $t8 +/* 112030 7F0DD500 10000027 */ b .L7F0DD5A0 +/* 112034 7F0DD504 A12E0001 */ sb $t6, 1($t1) +.L7F0DD508: +/* 112038 7F0DD508 29415800 */ slti $at, $t2, 0x5800 +/* 11203C 7F0DD50C 1420000F */ bnez $at, .L7F0DD54C +/* 112040 7F0DD510 97AC0292 */ lhu $t4, 0x292($sp) +/* 112044 7F0DD514 97AC0298 */ lhu $t4, 0x298($sp) +/* 112048 7F0DD518 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 11204C 7F0DD51C 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 112050 7F0DD520 258F0002 */ addiu $t7, $t4, 2 +/* 112054 7F0DD524 000F5A03 */ sra $t3, $t7, 8 +/* 112058 7F0DD528 010DC821 */ addu $t9, $t0, $t5 +/* 11205C 7F0DD52C A32B0001 */ sb $t3, 1($t9) +/* 112060 7F0DD530 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 112064 7F0DD534 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 112068 7F0DD538 97A90292 */ lhu $t1, 0x292($sp) +/* 11206C 7F0DD53C 24180001 */ li $t8, 1 +/* 112070 7F0DD540 01C95021 */ addu $t2, $t6, $t1 +/* 112074 7F0DD544 10000016 */ b .L7F0DD5A0 +/* 112078 7F0DD548 A158A801 */ sb $t8, -0x57ff($t2) +.L7F0DD54C: +/* 11207C 7F0DD54C 258F0001 */ addiu $t7, $t4, 1 +/* 112080 7F0DD550 29E14000 */ slti $at, $t7, 0x4000 +/* 112084 7F0DD554 14200012 */ bnez $at, .L7F0DD5A0 +/* 112088 7F0DD558 97A80298 */ lhu $t0, 0x298($sp) +/* 11208C 7F0DD55C 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 112090 7F0DD560 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 112094 7F0DD564 250D0002 */ addiu $t5, $t0, 2 +/* 112098 7F0DD568 000D5A03 */ sra $t3, $t5, 8 +/* 11209C 7F0DD56C 032C7021 */ addu $t6, $t9, $t4 +/* 1120A0 7F0DD570 A1CB0001 */ sb $t3, 1($t6) +/* 1120A4 7F0DD574 97B80292 */ lhu $t8, 0x292($sp) +/* 1120A8 7F0DD578 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 1120AC 7F0DD57C 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 1120B0 7F0DD580 270A0001 */ addiu $t2, $t8, 1 +/* 1120B4 7F0DD584 314F1800 */ andi $t7, $t2, 0x1800 +/* 1120B8 7F0DD588 000F40C3 */ sra $t0, $t7, 3 +/* 1120BC 7F0DD58C 314D00FF */ andi $t5, $t2, 0xff +/* 1120C0 7F0DD590 010DC825 */ or $t9, $t0, $t5 +/* 1120C4 7F0DD594 24090001 */ li $t1, 1 +/* 1120C8 7F0DD598 01995821 */ addu $t3, $t4, $t9 +/* 1120CC 7F0DD59C A1690000 */ sb $t1, ($t3) +.L7F0DD5A0: +/* 1120D0 7F0DD5A0 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 1120D4 7F0DD5A4 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 1120D8 7F0DD5A8 97AE0298 */ lhu $t6, 0x298($sp) +/* 1120DC 7F0DD5AC 030E4021 */ addu $t0, $t8, $t6 +/* 1120E0 7F0DD5B0 910D0001 */ lbu $t5, 1($t0) +/* 1120E4 7F0DD5B4 01D87821 */ addu $t7, $t6, $t8 +/* 1120E8 7F0DD5B8 91EA0000 */ lbu $t2, ($t7) +/* 1120EC 7F0DD5BC 000D6200 */ sll $t4, $t5, 8 +/* 1120F0 7F0DD5C0 014CC825 */ or $t9, $t2, $t4 +/* 1120F4 7F0DD5C4 1000148D */ b .L7F0E27FC +/* 1120F8 7F0DD5C8 A7B90298 */ sh $t9, 0x298($sp) +.L7F0DD5CC: +/* 1120FC 7F0DD5CC 97A90298 */ lhu $t1, 0x298($sp) +/* 112100 7F0DD5D0 252B0002 */ addiu $t3, $t1, 2 +/* 112104 7F0DD5D4 10001489 */ b .L7F0E27FC +/* 112108 7F0DD5D8 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_DD: +/* 11210C 7F0DD5DC 8FAF028C */ lw $t7, 0x28c($sp) +/* 112110 7F0DD5E0 240E0001 */ li $t6, 1 +/* 112114 7F0DD5E4 A3AE0286 */ sb $t6, 0x286($sp) +/* 112118 7F0DD5E8 25F80004 */ addiu $t8, $t7, 4 +/* 11211C 7F0DD5EC AFB8028C */ sw $t8, 0x28c($sp) +/* 112120 7F0DD5F0 10001482 */ b .L7F0E27FC +/* 112124 7F0DD5F4 A3A00285 */ sb $zero, 0x285($sp) +spectrum_op_DE: +/* 112128 7F0DD5F8 8FA8028C */ lw $t0, 0x28c($sp) +/* 11212C 7F0DD5FC 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 112130 7F0DD600 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 112134 7F0DD604 97AA0298 */ lhu $t2, 0x298($sp) +/* 112138 7F0DD608 250D0007 */ addiu $t5, $t0, 7 +/* 11213C 7F0DD60C AFAD028C */ sw $t5, 0x28c($sp) +/* 112140 7F0DD610 014CC821 */ addu $t9, $t2, $t4 +/* 112144 7F0DD614 93290000 */ lbu $t1, ($t9) +/* 112148 7F0DD618 322F0001 */ andi $t7, $s1, 1 +/* 11214C 7F0DD61C 3208000F */ andi $t0, $s0, 0xf +/* 112150 7F0DD620 02095823 */ subu $t3, $s0, $t1 +/* 112154 7F0DD624 016FC023 */ subu $t8, $t3, $t7 +/* 112158 7F0DD628 330E01FF */ andi $t6, $t8, 0x1ff +/* 11215C 7F0DD62C 312B000F */ andi $t3, $t1, 0xf +/* 112160 7F0DD630 016FC021 */ addu $t8, $t3, $t7 +/* 112164 7F0DD634 0118502A */ slt $t2, $t0, $t8 +/* 112168 7F0DD638 31CD00A8 */ andi $t5, $t6, 0xa8 +/* 11216C 7F0DD63C 000E6203 */ sra $t4, $t6, 8 +/* 112170 7F0DD640 01ACC825 */ or $t9, $t5, $t4 +/* 112174 7F0DD644 02095826 */ xor $t3, $s0, $t1 +/* 112178 7F0DD648 000A6900 */ sll $t5, $t2, 4 +/* 11217C 7F0DD64C 01D0C026 */ xor $t8, $t6, $s0 +/* 112180 7F0DD650 A7AE00EE */ sh $t6, 0xee($sp) +/* 112184 7F0DD654 93B000EF */ lbu $s0, 0xef($sp) +/* 112188 7F0DD658 316F0080 */ andi $t7, $t3, 0x80 +/* 11218C 7F0DD65C 01F85024 */ and $t2, $t7, $t8 +/* 112190 7F0DD660 032D6025 */ or $t4, $t9, $t5 +/* 112194 7F0DD664 000AC943 */ sra $t9, $t2, 5 +/* 112198 7F0DD668 97B80298 */ lhu $t8, 0x298($sp) +/* 11219C 7F0DD66C 01998825 */ or $s1, $t4, $t9 +/* 1121A0 7F0DD670 A3A900ED */ sb $t1, 0xed($sp) +/* 1121A4 7F0DD674 2E0B0001 */ sltiu $t3, $s0, 1 +/* 1121A8 7F0DD678 000B4180 */ sll $t0, $t3, 6 +/* 1121AC 7F0DD67C 36290002 */ ori $t1, $s1, 2 +/* 1121B0 7F0DD680 01288825 */ or $s1, $t1, $t0 +/* 1121B4 7F0DD684 322F00FF */ andi $t7, $s1, 0xff +/* 1121B8 7F0DD688 270A0001 */ addiu $t2, $t8, 1 +/* 1121BC 7F0DD68C 01E08825 */ move $s1, $t7 +/* 1121C0 7F0DD690 AFAB0048 */ sw $t3, 0x48($sp) +/* 1121C4 7F0DD694 10001459 */ b .L7F0E27FC +/* 1121C8 7F0DD698 A7AA0298 */ sh $t2, 0x298($sp) +spectrum_op_DF: +/* 1121CC 7F0DD69C 97AD0292 */ lhu $t5, 0x292($sp) +/* 1121D0 7F0DD6A0 8FAC028C */ lw $t4, 0x28c($sp) +/* 1121D4 7F0DD6A4 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1121D8 7F0DD6A8 25A9FFFE */ addiu $t1, $t5, -2 +/* 1121DC 7F0DD6AC 312BFFFF */ andi $t3, $t1, 0xffff +/* 1121E0 7F0DD6B0 29615B00 */ slti $at, $t3, 0x5b00 +/* 1121E4 7F0DD6B4 2599000B */ addiu $t9, $t4, 0xb +/* 1121E8 7F0DD6B8 AFB9028C */ sw $t9, 0x28c($sp) +/* 1121EC 7F0DD6BC 14200006 */ bnez $at, .L7F0DD6D8 +/* 1121F0 7F0DD6C0 A7A90292 */ sh $t1, 0x292($sp) +/* 1121F4 7F0DD6C4 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1121F8 7F0DD6C8 97AE0298 */ lhu $t6, 0x298($sp) +/* 1121FC 7F0DD6CC 010B7821 */ addu $t7, $t0, $t3 +/* 112200 7F0DD6D0 10000023 */ b .L7F0DD760 +/* 112204 7F0DD6D4 A1EE0000 */ sb $t6, ($t7) +.L7F0DD6D8: +/* 112208 7F0DD6D8 97B80292 */ lhu $t8, 0x292($sp) +/* 11220C 7F0DD6DC 97AE0292 */ lhu $t6, 0x292($sp) +/* 112210 7F0DD6E0 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 112214 7F0DD6E4 2B015800 */ slti $at, $t8, 0x5800 +/* 112218 7F0DD6E8 5420000D */ bnezl $at, .L7F0DD720 +/* 11221C 7F0DD6EC 29C14000 */ slti $at, $t6, 0x4000 +/* 112220 7F0DD6F0 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 112224 7F0DD6F4 97AA0298 */ lhu $t2, 0x298($sp) +/* 112228 7F0DD6F8 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 11222C 7F0DD6FC 0198C821 */ addu $t9, $t4, $t8 +/* 112230 7F0DD700 A32A0000 */ sb $t2, ($t9) +/* 112234 7F0DD704 97A80292 */ lhu $t0, 0x292($sp) +/* 112238 7F0DD708 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 11223C 7F0DD70C 240D0001 */ li $t5, 1 +/* 112240 7F0DD710 01285821 */ addu $t3, $t1, $t0 +/* 112244 7F0DD714 10000012 */ b .L7F0DD760 +/* 112248 7F0DD718 A16DA800 */ sb $t5, -0x5800($t3) +/* 11224C 7F0DD71C 29C14000 */ slti $at, $t6, 0x4000 +.L7F0DD720: +/* 112250 7F0DD720 1420000F */ bnez $at, .L7F0DD760 +/* 112254 7F0DD724 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 112258 7F0DD728 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 11225C 7F0DD72C 97AF0298 */ lhu $t7, 0x298($sp) +/* 112260 7F0DD730 240A0001 */ li $t2, 1 +/* 112264 7F0DD734 018EC021 */ addu $t8, $t4, $t6 +/* 112268 7F0DD738 A30F0000 */ sb $t7, ($t8) +/* 11226C 7F0DD73C 97B90292 */ lhu $t9, 0x292($sp) +/* 112270 7F0DD740 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 112274 7F0DD744 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 112278 7F0DD748 33291800 */ andi $t1, $t9, 0x1800 +/* 11227C 7F0DD74C 000940C3 */ sra $t0, $t1, 3 +/* 112280 7F0DD750 332D00FF */ andi $t5, $t9, 0xff +/* 112284 7F0DD754 010D5825 */ or $t3, $t0, $t5 +/* 112288 7F0DD758 018B7021 */ addu $t6, $t4, $t3 +/* 11228C 7F0DD75C A1CA0000 */ sb $t2, ($t6) +.L7F0DD760: +/* 112290 7F0DD760 97AF0292 */ lhu $t7, 0x292($sp) +/* 112294 7F0DD764 97AC0292 */ lhu $t4, 0x292($sp) +/* 112298 7F0DD768 97A90298 */ lhu $t1, 0x298($sp) +/* 11229C 7F0DD76C 25F80001 */ addiu $t8, $t7, 1 +/* 1122A0 7F0DD770 2B015B00 */ slti $at, $t8, 0x5b00 +/* 1122A4 7F0DD774 14200007 */ bnez $at, .L7F0DD794 +/* 1122A8 7F0DD778 258B0001 */ addiu $t3, $t4, 1 +/* 1122AC 7F0DD77C 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1122B0 7F0DD780 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1122B4 7F0DD784 0009CA03 */ sra $t9, $t1, 8 +/* 1122B8 7F0DD788 010F6821 */ addu $t5, $t0, $t7 +/* 1122BC 7F0DD78C 10000025 */ b .L7F0DD824 +/* 1122C0 7F0DD790 A1B90001 */ sb $t9, 1($t5) +.L7F0DD794: +/* 1122C4 7F0DD794 29615800 */ slti $at, $t3, 0x5800 +/* 1122C8 7F0DD798 1420000E */ bnez $at, .L7F0DD7D4 +/* 1122CC 7F0DD79C 97AB0292 */ lhu $t3, 0x292($sp) +/* 1122D0 7F0DD7A0 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 1122D4 7F0DD7A4 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 1122D8 7F0DD7A8 97AA0298 */ lhu $t2, 0x298($sp) +/* 1122DC 7F0DD7AC 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 1122E0 7F0DD7B0 030C4821 */ addu $t1, $t8, $t4 +/* 1122E4 7F0DD7B4 000A7203 */ sra $t6, $t2, 8 +/* 1122E8 7F0DD7B8 A12E0001 */ sb $t6, 1($t1) +/* 1122EC 7F0DD7BC 97B90292 */ lhu $t9, 0x292($sp) +/* 1122F0 7F0DD7C0 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 1122F4 7F0DD7C4 24080001 */ li $t0, 1 +/* 1122F8 7F0DD7C8 01F96821 */ addu $t5, $t7, $t9 +/* 1122FC 7F0DD7CC 10000015 */ b .L7F0DD824 +/* 112300 7F0DD7D0 A1A8A801 */ sb $t0, -0x57ff($t5) +.L7F0DD7D4: +/* 112304 7F0DD7D4 256A0001 */ addiu $t2, $t3, 1 +/* 112308 7F0DD7D8 29414000 */ slti $at, $t2, 0x4000 +/* 11230C 7F0DD7DC 14200011 */ bnez $at, .L7F0DD824 +/* 112310 7F0DD7E0 97B80298 */ lhu $t8, 0x298($sp) +/* 112314 7F0DD7E4 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 112318 7F0DD7E8 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 11231C 7F0DD7EC 00186203 */ sra $t4, $t8, 8 +/* 112320 7F0DD7F0 240F0001 */ li $t7, 1 +/* 112324 7F0DD7F4 01CB4821 */ addu $t1, $t6, $t3 +/* 112328 7F0DD7F8 A12C0001 */ sb $t4, 1($t1) +/* 11232C 7F0DD7FC 97B90292 */ lhu $t9, 0x292($sp) +/* 112330 7F0DD800 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 112334 7F0DD804 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 112338 7F0DD808 27280001 */ addiu $t0, $t9, 1 +/* 11233C 7F0DD80C 310D1800 */ andi $t5, $t0, 0x1800 +/* 112340 7F0DD810 000D50C3 */ sra $t2, $t5, 3 +/* 112344 7F0DD814 311800FF */ andi $t8, $t0, 0xff +/* 112348 7F0DD818 01587025 */ or $t6, $t2, $t8 +/* 11234C 7F0DD81C 016E6021 */ addu $t4, $t3, $t6 +/* 112350 7F0DD820 A18F0000 */ sb $t7, ($t4) +.L7F0DD824: +/* 112354 7F0DD824 24090018 */ li $t1, 24 +/* 112358 7F0DD828 100013F4 */ b .L7F0E27FC +/* 11235C 7F0DD82C A7A90298 */ sh $t1, 0x298($sp) +spectrum_op_E0: +/* 112360 7F0DD830 8FB9028C */ lw $t9, 0x28c($sp) +/* 112364 7F0DD834 32280004 */ andi $t0, $s1, 4 +/* 112368 7F0DD838 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 11236C 7F0DD83C 272D0005 */ addiu $t5, $t9, 5 +/* 112370 7F0DD840 150013EE */ bnez $t0, .L7F0E27FC +/* 112374 7F0DD844 AFAD028C */ sw $t5, 0x28c($sp) +/* 112378 7F0DD848 97AB0292 */ lhu $t3, 0x292($sp) +/* 11237C 7F0DD84C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 112380 7F0DD850 25B80006 */ addiu $t8, $t5, 6 +/* 112384 7F0DD854 AFB8028C */ sw $t8, 0x28c($sp) +/* 112388 7F0DD858 01CB4821 */ addu $t1, $t6, $t3 +/* 11238C 7F0DD85C 91390001 */ lbu $t9, 1($t1) +/* 112390 7F0DD860 016E7821 */ addu $t7, $t3, $t6 +/* 112394 7F0DD864 91EC0000 */ lbu $t4, ($t7) +/* 112398 7F0DD868 00196A00 */ sll $t5, $t9, 8 +/* 11239C 7F0DD86C 256A0002 */ addiu $t2, $t3, 2 +/* 1123A0 7F0DD870 018D4025 */ or $t0, $t4, $t5 +/* 1123A4 7F0DD874 A7A80298 */ sh $t0, 0x298($sp) +/* 1123A8 7F0DD878 100013E0 */ b .L7F0E27FC +/* 1123AC 7F0DD87C A7AA0292 */ sh $t2, 0x292($sp) +spectrum_op_E1: +/* 1123B0 7F0DD880 8FB8028C */ lw $t8, 0x28c($sp) +/* 1123B4 7F0DD884 93AE0287 */ lbu $t6, 0x287($sp) +/* 1123B8 7F0DD888 93A80287 */ lbu $t0, 0x287($sp) +/* 1123BC 7F0DD88C 270F000A */ addiu $t7, $t8, 0xa +/* 1123C0 7F0DD890 15C0000A */ bnez $t6, .L7F0DD8BC +/* 1123C4 7F0DD894 AFAF028C */ sw $t7, 0x28c($sp) +/* 1123C8 7F0DD898 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 1123CC 7F0DD89C 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 1123D0 7F0DD8A0 97A90292 */ lhu $t1, 0x292($sp) +/* 1123D4 7F0DD8A4 01396021 */ addu $t4, $t1, $t9 +/* 1123D8 7F0DD8A8 91970000 */ lbu $s7, ($t4) +/* 1123DC 7F0DD8AC 91960001 */ lbu $s6, 1($t4) +/* 1123E0 7F0DD8B0 252D0002 */ addiu $t5, $t1, 2 +/* 1123E4 7F0DD8B4 100013D1 */ b .L7F0E27FC +/* 1123E8 7F0DD8B8 A7AD0292 */ sh $t5, 0x292($sp) +.L7F0DD8BC: +/* 1123EC 7F0DD8BC 24010001 */ li $at, 1 +/* 1123F0 7F0DD8C0 1501000E */ bne $t0, $at, .L7F0DD8FC +/* 1123F4 7F0DD8C4 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 1123F8 7F0DD8C8 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 1123FC 7F0DD8CC 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 112400 7F0DD8D0 97AB0292 */ lhu $t3, 0x292($sp) +/* 112404 7F0DD8D4 014B7021 */ addu $t6, $t2, $t3 +/* 112408 7F0DD8D8 91D90001 */ lbu $t9, 1($t6) +/* 11240C 7F0DD8DC 016AC021 */ addu $t8, $t3, $t2 +/* 112410 7F0DD8E0 930F0000 */ lbu $t7, ($t8) +/* 112414 7F0DD8E4 00196200 */ sll $t4, $t9, 8 +/* 112418 7F0DD8E8 256D0002 */ addiu $t5, $t3, 2 +/* 11241C 7F0DD8EC 01EC4825 */ or $t1, $t7, $t4 +/* 112420 7F0DD8F0 A7A90296 */ sh $t1, 0x296($sp) +/* 112424 7F0DD8F4 100013C1 */ b .L7F0E27FC +/* 112428 7F0DD8F8 A7AD0292 */ sh $t5, 0x292($sp) +.L7F0DD8FC: +/* 11242C 7F0DD8FC 97A80292 */ lhu $t0, 0x292($sp) +/* 112430 7F0DD900 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 112434 7F0DD904 250B0002 */ addiu $t3, $t0, 2 +/* 112438 7F0DD908 0308C821 */ addu $t9, $t8, $t0 +/* 11243C 7F0DD90C 932F0001 */ lbu $t7, 1($t9) +/* 112440 7F0DD910 01185021 */ addu $t2, $t0, $t8 +/* 112444 7F0DD914 914E0000 */ lbu $t6, ($t2) +/* 112448 7F0DD918 000F6200 */ sll $t4, $t7, 8 +/* 11244C 7F0DD91C A7AB0292 */ sh $t3, 0x292($sp) +/* 112450 7F0DD920 01CC4825 */ or $t1, $t6, $t4 +/* 112454 7F0DD924 100013B5 */ b .L7F0E27FC +/* 112458 7F0DD928 A7A90294 */ sh $t1, 0x294($sp) +spectrum_op_E2: +/* 11245C 7F0DD92C 8FAD028C */ lw $t5, 0x28c($sp) +/* 112460 7F0DD930 32380004 */ andi $t8, $s1, 4 +/* 112464 7F0DD934 97B90298 */ lhu $t9, 0x298($sp) +/* 112468 7F0DD938 25AA000A */ addiu $t2, $t5, 0xa +/* 11246C 7F0DD93C 1700000B */ bnez $t8, .L7F0DD96C +/* 112470 7F0DD940 AFAA028C */ sw $t2, 0x28c($sp) +/* 112474 7F0DD944 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 112478 7F0DD948 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 11247C 7F0DD94C 01F94821 */ addu $t1, $t7, $t9 +/* 112480 7F0DD950 91280001 */ lbu $t0, 1($t1) +/* 112484 7F0DD954 032F7021 */ addu $t6, $t9, $t7 +/* 112488 7F0DD958 91CC0000 */ lbu $t4, ($t6) +/* 11248C 7F0DD95C 00085A00 */ sll $t3, $t0, 8 +/* 112490 7F0DD960 018B6825 */ or $t5, $t4, $t3 +/* 112494 7F0DD964 100013A5 */ b .L7F0E27FC +/* 112498 7F0DD968 A7AD0298 */ sh $t5, 0x298($sp) +.L7F0DD96C: +/* 11249C 7F0DD96C 97AA0298 */ lhu $t2, 0x298($sp) +/* 1124A0 7F0DD970 25580002 */ addiu $t8, $t2, 2 +/* 1124A4 7F0DD974 100013A1 */ b .L7F0E27FC +/* 1124A8 7F0DD978 A7B80298 */ sh $t8, 0x298($sp) +spectrum_op_E3: +/* 1124AC 7F0DD97C 8FAE028C */ lw $t6, 0x28c($sp) +/* 1124B0 7F0DD980 93B90287 */ lbu $t9, 0x287($sp) +/* 1124B4 7F0DD984 93AC0287 */ lbu $t4, 0x287($sp) +/* 1124B8 7F0DD988 25CF0013 */ addiu $t7, $t6, 0x13 +/* 1124BC 7F0DD98C 17200063 */ bnez $t9, .L7F0DDB1C +/* 1124C0 7F0DD990 AFAF028C */ sw $t7, 0x28c($sp) +/* 1124C4 7F0DD994 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1124C8 7F0DD998 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1124CC 7F0DD99C 97A90292 */ lhu $t1, 0x292($sp) +/* 1124D0 7F0DD9A0 97AF0292 */ lhu $t7, 0x292($sp) +/* 1124D4 7F0DD9A4 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 1124D8 7F0DD9A8 01096821 */ addu $t5, $t0, $t1 +/* 1124DC 7F0DD9AC 91AA0001 */ lbu $t2, 1($t5) +/* 1124E0 7F0DD9B0 01286021 */ addu $t4, $t1, $t0 +/* 1124E4 7F0DD9B4 918B0000 */ lbu $t3, ($t4) +/* 1124E8 7F0DD9B8 000AC200 */ sll $t8, $t2, 8 +/* 1124EC 7F0DD9BC 29E15B00 */ slti $at, $t7, 0x5b00 +/* 1124F0 7F0DD9C0 01787025 */ or $t6, $t3, $t8 +/* 1124F4 7F0DD9C4 14200005 */ bnez $at, .L7F0DD9DC +/* 1124F8 7F0DD9C8 A7AE00EA */ sh $t6, 0xea($sp) +/* 1124FC 7F0DD9CC 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 112500 7F0DD9D0 032F6021 */ addu $t4, $t9, $t7 +/* 112504 7F0DD9D4 10000021 */ b .L7F0DDA5C +/* 112508 7F0DD9D8 A1970000 */ sb $s7, ($t4) +.L7F0DD9DC: +/* 11250C 7F0DD9DC 97A80292 */ lhu $t0, 0x292($sp) +/* 112510 7F0DD9E0 97B90292 */ lhu $t9, 0x292($sp) +/* 112514 7F0DD9E4 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 112518 7F0DD9E8 29015800 */ slti $at, $t0, 0x5800 +/* 11251C 7F0DD9EC 5420000C */ bnezl $at, .L7F0DDA20 +/* 112520 7F0DD9F0 2B214000 */ slti $at, $t9, 0x4000 +/* 112524 7F0DD9F4 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 112528 7F0DD9F8 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 11252C 7F0DD9FC 240A0001 */ li $t2, 1 +/* 112530 7F0DDA00 01286821 */ addu $t5, $t1, $t0 +/* 112534 7F0DDA04 A1B70000 */ sb $s7, ($t5) +/* 112538 7F0DDA08 97B80292 */ lhu $t8, 0x292($sp) +/* 11253C 7F0DDA0C 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 112540 7F0DDA10 01787021 */ addu $t6, $t3, $t8 +/* 112544 7F0DDA14 10000011 */ b .L7F0DDA5C +/* 112548 7F0DDA18 A1CAA800 */ sb $t2, -0x5800($t6) +/* 11254C 7F0DDA1C 2B214000 */ slti $at, $t9, 0x4000 +.L7F0DDA20: +/* 112550 7F0DDA20 1420000E */ bnez $at, .L7F0DDA5C +/* 112554 7F0DDA24 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 112558 7F0DDA28 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 11255C 7F0DDA2C 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 112560 7F0DDA30 24090001 */ li $t1, 1 +/* 112564 7F0DDA34 01F96021 */ addu $t4, $t7, $t9 +/* 112568 7F0DDA38 A1970000 */ sb $s7, ($t4) +/* 11256C 7F0DDA3C 97A80292 */ lhu $t0, 0x292($sp) +/* 112570 7F0DDA40 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 112574 7F0DDA44 310D1800 */ andi $t5, $t0, 0x1800 +/* 112578 7F0DDA48 000D58C3 */ sra $t3, $t5, 3 +/* 11257C 7F0DDA4C 311800FF */ andi $t8, $t0, 0xff +/* 112580 7F0DDA50 01785025 */ or $t2, $t3, $t8 +/* 112584 7F0DDA54 01CA7821 */ addu $t7, $t6, $t2 +/* 112588 7F0DDA58 A1E90000 */ sb $t1, ($t7) +.L7F0DDA5C: +/* 11258C 7F0DDA5C 97B90292 */ lhu $t9, 0x292($sp) +/* 112590 7F0DDA60 97AB0292 */ lhu $t3, 0x292($sp) +/* 112594 7F0DDA64 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 112598 7F0DDA68 272C0001 */ addiu $t4, $t9, 1 +/* 11259C 7F0DDA6C 29815B00 */ slti $at, $t4, 0x5b00 +/* 1125A0 7F0DDA70 14200005 */ bnez $at, .L7F0DDA88 +/* 1125A4 7F0DDA74 25780001 */ addiu $t8, $t3, 1 +/* 1125A8 7F0DDA78 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1125AC 7F0DDA7C 01B94021 */ addu $t0, $t5, $t9 +/* 1125B0 7F0DDA80 10000021 */ b .L7F0DDB08 +/* 1125B4 7F0DDA84 A1160001 */ sb $s6, 1($t0) +.L7F0DDA88: +/* 1125B8 7F0DDA88 2B015800 */ slti $at, $t8, 0x5800 +/* 1125BC 7F0DDA8C 1420000C */ bnez $at, .L7F0DDAC0 +/* 1125C0 7F0DDA90 97B90292 */ lhu $t9, 0x292($sp) +/* 1125C4 7F0DDA94 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1125C8 7F0DDA98 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1125CC 7F0DDA9C 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 1125D0 7F0DDAA0 24090001 */ li $t1, 1 +/* 1125D4 7F0DDAA4 01CB5021 */ addu $t2, $t6, $t3 +/* 1125D8 7F0DDAA8 A1560001 */ sb $s6, 1($t2) +/* 1125DC 7F0DDAAC 97AC0292 */ lhu $t4, 0x292($sp) +/* 1125E0 7F0DDAB0 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 1125E4 7F0DDAB4 01EC6821 */ addu $t5, $t7, $t4 +/* 1125E8 7F0DDAB8 10000013 */ b .L7F0DDB08 +/* 1125EC 7F0DDABC A1A9A801 */ sb $t1, -0x57ff($t5) +.L7F0DDAC0: +/* 1125F0 7F0DDAC0 27280001 */ addiu $t0, $t9, 1 +/* 1125F4 7F0DDAC4 29014000 */ slti $at, $t0, 0x4000 +/* 1125F8 7F0DDAC8 1420000F */ bnez $at, .L7F0DDB08 +/* 1125FC 7F0DDACC 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 112600 7F0DDAD0 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 112604 7F0DDAD4 240B0001 */ li $t3, 1 +/* 112608 7F0DDAD8 03197021 */ addu $t6, $t8, $t9 +/* 11260C 7F0DDADC A1D60001 */ sb $s6, 1($t6) +/* 112610 7F0DDAE0 97AA0292 */ lhu $t2, 0x292($sp) +/* 112614 7F0DDAE4 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 112618 7F0DDAE8 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 11261C 7F0DDAEC 254F0001 */ addiu $t7, $t2, 1 +/* 112620 7F0DDAF0 31EC1800 */ andi $t4, $t7, 0x1800 +/* 112624 7F0DDAF4 000C48C3 */ sra $t1, $t4, 3 +/* 112628 7F0DDAF8 31ED00FF */ andi $t5, $t7, 0xff +/* 11262C 7F0DDAFC 012D4025 */ or $t0, $t1, $t5 +/* 112630 7F0DDB00 0308C821 */ addu $t9, $t8, $t0 +/* 112634 7F0DDB04 A32B0000 */ sb $t3, ($t9) +.L7F0DDB08: +/* 112638 7F0DDB08 97B600EA */ lhu $s6, 0xea($sp) +/* 11263C 7F0DDB0C 93B700EB */ lbu $s7, 0xeb($sp) +/* 112640 7F0DDB10 00167203 */ sra $t6, $s6, 8 +/* 112644 7F0DDB14 10001339 */ b .L7F0E27FC +/* 112648 7F0DDB18 31D600FF */ andi $s6, $t6, 0xff +.L7F0DDB1C: +/* 11264C 7F0DDB1C 24010001 */ li $at, 1 +/* 112650 7F0DDB20 1581006A */ bne $t4, $at, .L7F0DDCCC +/* 112654 7F0DDB24 97B80292 */ lhu $t8, 0x292($sp) +/* 112658 7F0DDB28 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 11265C 7F0DDB2C 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 112660 7F0DDB30 97AF0292 */ lhu $t7, 0x292($sp) +/* 112664 7F0DDB34 97AA0292 */ lhu $t2, 0x292($sp) +/* 112668 7F0DDB38 012F4021 */ addu $t0, $t1, $t7 +/* 11266C 7F0DDB3C 910B0001 */ lbu $t3, 1($t0) +/* 112670 7F0DDB40 01E96821 */ addu $t5, $t7, $t1 +/* 112674 7F0DDB44 91B80000 */ lbu $t8, ($t5) +/* 112678 7F0DDB48 000BCA00 */ sll $t9, $t3, 8 +/* 11267C 7F0DDB4C 29415B00 */ slti $at, $t2, 0x5b00 +/* 112680 7F0DDB50 03197025 */ or $t6, $t8, $t9 +/* 112684 7F0DDB54 14200007 */ bnez $at, .L7F0DDB74 +/* 112688 7F0DDB58 A7AE00E8 */ sh $t6, 0xe8($sp) +/* 11268C 7F0DDB5C 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 112690 7F0DDB60 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 112694 7F0DDB64 97AC0296 */ lhu $t4, 0x296($sp) +/* 112698 7F0DDB68 01AA4821 */ addu $t1, $t5, $t2 +/* 11269C 7F0DDB6C 10000023 */ b .L7F0DDBFC +/* 1126A0 7F0DDB70 A12C0000 */ sb $t4, ($t1) +.L7F0DDB74: +/* 1126A4 7F0DDB74 97AF0292 */ lhu $t7, 0x292($sp) +/* 1126A8 7F0DDB78 97AC0292 */ lhu $t4, 0x292($sp) +/* 1126AC 7F0DDB7C 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1126B0 7F0DDB80 29E15800 */ slti $at, $t7, 0x5800 +/* 1126B4 7F0DDB84 5420000D */ bnezl $at, .L7F0DDBBC +/* 1126B8 7F0DDB88 29814000 */ slti $at, $t4, 0x4000 +/* 1126BC 7F0DDB8C 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 1126C0 7F0DDB90 97A80296 */ lhu $t0, 0x296($sp) +/* 1126C4 7F0DDB94 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 1126C8 7F0DDB98 016FC021 */ addu $t8, $t3, $t7 +/* 1126CC 7F0DDB9C A3080000 */ sb $t0, ($t8) +/* 1126D0 7F0DDBA0 97AD0292 */ lhu $t5, 0x292($sp) +/* 1126D4 7F0DDBA4 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 1126D8 7F0DDBA8 24190001 */ li $t9, 1 +/* 1126DC 7F0DDBAC 01CD5021 */ addu $t2, $t6, $t5 +/* 1126E0 7F0DDBB0 10000012 */ b .L7F0DDBFC +/* 1126E4 7F0DDBB4 A159A800 */ sb $t9, -0x5800($t2) +/* 1126E8 7F0DDBB8 29814000 */ slti $at, $t4, 0x4000 +.L7F0DDBBC: +/* 1126EC 7F0DDBBC 1420000F */ bnez $at, .L7F0DDBFC +/* 1126F0 7F0DDBC0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1126F4 7F0DDBC4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 1126F8 7F0DDBC8 97A90296 */ lhu $t1, 0x296($sp) +/* 1126FC 7F0DDBCC 24080001 */ li $t0, 1 +/* 112700 7F0DDBD0 016C7821 */ addu $t7, $t3, $t4 +/* 112704 7F0DDBD4 A1E90000 */ sb $t1, ($t7) +/* 112708 7F0DDBD8 97B80292 */ lhu $t8, 0x292($sp) +/* 11270C 7F0DDBDC 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 112710 7F0DDBE0 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 112714 7F0DDBE4 330E1800 */ andi $t6, $t8, 0x1800 +/* 112718 7F0DDBE8 000E68C3 */ sra $t5, $t6, 3 +/* 11271C 7F0DDBEC 331900FF */ andi $t9, $t8, 0xff +/* 112720 7F0DDBF0 01B95025 */ or $t2, $t5, $t9 +/* 112724 7F0DDBF4 016A6021 */ addu $t4, $t3, $t2 +/* 112728 7F0DDBF8 A1880000 */ sb $t0, ($t4) +.L7F0DDBFC: +/* 11272C 7F0DDBFC 97A90292 */ lhu $t1, 0x292($sp) +/* 112730 7F0DDC00 97AB0292 */ lhu $t3, 0x292($sp) +/* 112734 7F0DDC04 97AE0296 */ lhu $t6, 0x296($sp) +/* 112738 7F0DDC08 252F0001 */ addiu $t7, $t1, 1 +/* 11273C 7F0DDC0C 29E15B00 */ slti $at, $t7, 0x5b00 +/* 112740 7F0DDC10 14200007 */ bnez $at, .L7F0DDC30 +/* 112744 7F0DDC14 256A0001 */ addiu $t2, $t3, 1 +/* 112748 7F0DDC18 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 11274C 7F0DDC1C 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 112750 7F0DDC20 000EC203 */ sra $t8, $t6, 8 +/* 112754 7F0DDC24 01A9C821 */ addu $t9, $t5, $t1 +/* 112758 7F0DDC28 10000025 */ b .L7F0DDCC0 +/* 11275C 7F0DDC2C A3380001 */ sb $t8, 1($t9) +.L7F0DDC30: +/* 112760 7F0DDC30 29415800 */ slti $at, $t2, 0x5800 +/* 112764 7F0DDC34 1420000E */ bnez $at, .L7F0DDC70 +/* 112768 7F0DDC38 97AA0292 */ lhu $t2, 0x292($sp) +/* 11276C 7F0DDC3C 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 112770 7F0DDC40 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 112774 7F0DDC44 97A80296 */ lhu $t0, 0x296($sp) +/* 112778 7F0DDC48 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 11277C 7F0DDC4C 01EB7021 */ addu $t6, $t7, $t3 +/* 112780 7F0DDC50 00086203 */ sra $t4, $t0, 8 +/* 112784 7F0DDC54 A1CC0001 */ sb $t4, 1($t6) +/* 112788 7F0DDC58 97B80292 */ lhu $t8, 0x292($sp) +/* 11278C 7F0DDC5C 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 112790 7F0DDC60 240D0001 */ li $t5, 1 +/* 112794 7F0DDC64 0138C821 */ addu $t9, $t1, $t8 +/* 112798 7F0DDC68 10000015 */ b .L7F0DDCC0 +/* 11279C 7F0DDC6C A32DA801 */ sb $t5, -0x57ff($t9) +.L7F0DDC70: +/* 1127A0 7F0DDC70 25480001 */ addiu $t0, $t2, 1 +/* 1127A4 7F0DDC74 29014000 */ slti $at, $t0, 0x4000 +/* 1127A8 7F0DDC78 14200011 */ bnez $at, .L7F0DDCC0 +/* 1127AC 7F0DDC7C 97AF0296 */ lhu $t7, 0x296($sp) +/* 1127B0 7F0DDC80 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 1127B4 7F0DDC84 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 1127B8 7F0DDC88 000F5A03 */ sra $t3, $t7, 8 +/* 1127BC 7F0DDC8C 24090001 */ li $t1, 1 +/* 1127C0 7F0DDC90 018A7021 */ addu $t6, $t4, $t2 +/* 1127C4 7F0DDC94 A1CB0001 */ sb $t3, 1($t6) +/* 1127C8 7F0DDC98 97B80292 */ lhu $t8, 0x292($sp) +/* 1127CC 7F0DDC9C 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 1127D0 7F0DDCA0 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 1127D4 7F0DDCA4 270D0001 */ addiu $t5, $t8, 1 +/* 1127D8 7F0DDCA8 31B91800 */ andi $t9, $t5, 0x1800 +/* 1127DC 7F0DDCAC 001940C3 */ sra $t0, $t9, 3 +/* 1127E0 7F0DDCB0 31AF00FF */ andi $t7, $t5, 0xff +/* 1127E4 7F0DDCB4 010F6025 */ or $t4, $t0, $t7 +/* 1127E8 7F0DDCB8 014C5821 */ addu $t3, $t2, $t4 +/* 1127EC 7F0DDCBC A1690000 */ sb $t1, ($t3) +.L7F0DDCC0: +/* 1127F0 7F0DDCC0 97AE00E8 */ lhu $t6, 0xe8($sp) +/* 1127F4 7F0DDCC4 100012CD */ b .L7F0E27FC +/* 1127F8 7F0DDCC8 A7AE0296 */ sh $t6, 0x296($sp) +.L7F0DDCCC: +/* 1127FC 7F0DDCCC 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 112800 7F0DDCD0 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 112804 7F0DDCD4 97AB0292 */ lhu $t3, 0x292($sp) +/* 112808 7F0DDCD8 03387821 */ addu $t7, $t9, $t8 +/* 11280C 7F0DDCDC 91EA0001 */ lbu $t2, 1($t7) +/* 112810 7F0DDCE0 03196821 */ addu $t5, $t8, $t9 +/* 112814 7F0DDCE4 91A80000 */ lbu $t0, ($t5) +/* 112818 7F0DDCE8 000A6200 */ sll $t4, $t2, 8 +/* 11281C 7F0DDCEC 29615B00 */ slti $at, $t3, 0x5b00 +/* 112820 7F0DDCF0 010C4825 */ or $t1, $t0, $t4 +/* 112824 7F0DDCF4 14200007 */ bnez $at, .L7F0DDD14 +/* 112828 7F0DDCF8 A7A900E6 */ sh $t1, 0xe6($sp) +/* 11282C 7F0DDCFC 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 112830 7F0DDD00 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 112834 7F0DDD04 97AE0294 */ lhu $t6, 0x294($sp) +/* 112838 7F0DDD08 01ABC821 */ addu $t9, $t5, $t3 +/* 11283C 7F0DDD0C 10000023 */ b .L7F0DDD9C +/* 112840 7F0DDD10 A32E0000 */ sb $t6, ($t9) +.L7F0DDD14: +/* 112844 7F0DDD14 97B80292 */ lhu $t8, 0x292($sp) +/* 112848 7F0DDD18 97AE0292 */ lhu $t6, 0x292($sp) +/* 11284C 7F0DDD1C 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 112850 7F0DDD20 2B015800 */ slti $at, $t8, 0x5800 +/* 112854 7F0DDD24 5420000D */ bnezl $at, .L7F0DDD5C +/* 112858 7F0DDD28 29C14000 */ slti $at, $t6, 0x4000 +/* 11285C 7F0DDD2C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 112860 7F0DDD30 97AF0294 */ lhu $t7, 0x294($sp) +/* 112864 7F0DDD34 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 112868 7F0DDD38 01584021 */ addu $t0, $t2, $t8 +/* 11286C 7F0DDD3C A10F0000 */ sb $t7, ($t0) +/* 112870 7F0DDD40 97AD0292 */ lhu $t5, 0x292($sp) +/* 112874 7F0DDD44 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 112878 7F0DDD48 240C0001 */ li $t4, 1 +/* 11287C 7F0DDD4C 012D5821 */ addu $t3, $t1, $t5 +/* 112880 7F0DDD50 10000012 */ b .L7F0DDD9C +/* 112884 7F0DDD54 A16CA800 */ sb $t4, -0x5800($t3) +/* 112888 7F0DDD58 29C14000 */ slti $at, $t6, 0x4000 +.L7F0DDD5C: +/* 11288C 7F0DDD5C 1420000F */ bnez $at, .L7F0DDD9C +/* 112890 7F0DDD60 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 112894 7F0DDD64 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 112898 7F0DDD68 97B90294 */ lhu $t9, 0x294($sp) +/* 11289C 7F0DDD6C 240F0001 */ li $t7, 1 +/* 1128A0 7F0DDD70 014EC021 */ addu $t8, $t2, $t6 +/* 1128A4 7F0DDD74 A3190000 */ sb $t9, ($t8) +/* 1128A8 7F0DDD78 97A80292 */ lhu $t0, 0x292($sp) +/* 1128AC 7F0DDD7C 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 1128B0 7F0DDD80 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 1128B4 7F0DDD84 31091800 */ andi $t1, $t0, 0x1800 +/* 1128B8 7F0DDD88 000968C3 */ sra $t5, $t1, 3 +/* 1128BC 7F0DDD8C 310C00FF */ andi $t4, $t0, 0xff +/* 1128C0 7F0DDD90 01AC5825 */ or $t3, $t5, $t4 +/* 1128C4 7F0DDD94 014B7021 */ addu $t6, $t2, $t3 +/* 1128C8 7F0DDD98 A1CF0000 */ sb $t7, ($t6) +.L7F0DDD9C: +/* 1128CC 7F0DDD9C 97B90292 */ lhu $t9, 0x292($sp) +/* 1128D0 7F0DDDA0 97AA0292 */ lhu $t2, 0x292($sp) +/* 1128D4 7F0DDDA4 97A90294 */ lhu $t1, 0x294($sp) +/* 1128D8 7F0DDDA8 27380001 */ addiu $t8, $t9, 1 +/* 1128DC 7F0DDDAC 2B015B00 */ slti $at, $t8, 0x5b00 +/* 1128E0 7F0DDDB0 14200007 */ bnez $at, .L7F0DDDD0 +/* 1128E4 7F0DDDB4 254B0001 */ addiu $t3, $t2, 1 +/* 1128E8 7F0DDDB8 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1128EC 7F0DDDBC 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1128F0 7F0DDDC0 00094203 */ sra $t0, $t1, 8 +/* 1128F4 7F0DDDC4 01B96021 */ addu $t4, $t5, $t9 +/* 1128F8 7F0DDDC8 10000025 */ b .L7F0DDE60 +/* 1128FC 7F0DDDCC A1880001 */ sb $t0, 1($t4) +.L7F0DDDD0: +/* 112900 7F0DDDD0 29615800 */ slti $at, $t3, 0x5800 +/* 112904 7F0DDDD4 1420000E */ bnez $at, .L7F0DDE10 +/* 112908 7F0DDDD8 97AB0292 */ lhu $t3, 0x292($sp) +/* 11290C 7F0DDDDC 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 112910 7F0DDDE0 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 112914 7F0DDDE4 97AF0294 */ lhu $t7, 0x294($sp) +/* 112918 7F0DDDE8 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 11291C 7F0DDDEC 030A4821 */ addu $t1, $t8, $t2 +/* 112920 7F0DDDF0 000F7203 */ sra $t6, $t7, 8 +/* 112924 7F0DDDF4 A12E0001 */ sb $t6, 1($t1) +/* 112928 7F0DDDF8 97A80292 */ lhu $t0, 0x292($sp) +/* 11292C 7F0DDDFC 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 112930 7F0DDE00 240D0001 */ li $t5, 1 +/* 112934 7F0DDE04 03286021 */ addu $t4, $t9, $t0 +/* 112938 7F0DDE08 10000015 */ b .L7F0DDE60 +/* 11293C 7F0DDE0C A18DA801 */ sb $t5, -0x57ff($t4) +.L7F0DDE10: +/* 112940 7F0DDE10 256F0001 */ addiu $t7, $t3, 1 +/* 112944 7F0DDE14 29E14000 */ slti $at, $t7, 0x4000 +/* 112948 7F0DDE18 14200011 */ bnez $at, .L7F0DDE60 +/* 11294C 7F0DDE1C 97B80294 */ lhu $t8, 0x294($sp) +/* 112950 7F0DDE20 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 112954 7F0DDE24 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 112958 7F0DDE28 00185203 */ sra $t2, $t8, 8 +/* 11295C 7F0DDE2C 24190001 */ li $t9, 1 +/* 112960 7F0DDE30 01CB4821 */ addu $t1, $t6, $t3 +/* 112964 7F0DDE34 A12A0001 */ sb $t2, 1($t1) +/* 112968 7F0DDE38 97A80292 */ lhu $t0, 0x292($sp) +/* 11296C 7F0DDE3C 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 112970 7F0DDE40 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 112974 7F0DDE44 250D0001 */ addiu $t5, $t0, 1 +/* 112978 7F0DDE48 31AC1800 */ andi $t4, $t5, 0x1800 +/* 11297C 7F0DDE4C 000C78C3 */ sra $t7, $t4, 3 +/* 112980 7F0DDE50 31B800FF */ andi $t8, $t5, 0xff +/* 112984 7F0DDE54 01F87025 */ or $t6, $t7, $t8 +/* 112988 7F0DDE58 016E5021 */ addu $t2, $t3, $t6 +/* 11298C 7F0DDE5C A1590000 */ sb $t9, ($t2) +.L7F0DDE60: +/* 112990 7F0DDE60 97A900E6 */ lhu $t1, 0xe6($sp) +/* 112994 7F0DDE64 10001265 */ b .L7F0E27FC +/* 112998 7F0DDE68 A7A90294 */ sh $t1, 0x294($sp) +spectrum_op_E4: +/* 11299C 7F0DDE6C 8FA8028C */ lw $t0, 0x28c($sp) +/* 1129A0 7F0DDE70 322D0004 */ andi $t5, $s1, 4 +/* 1129A4 7F0DDE74 250C000A */ addiu $t4, $t0, 0xa +/* 1129A8 7F0DDE78 15A00072 */ bnez $t5, .L7F0DE044 +/* 1129AC 7F0DDE7C AFAC028C */ sw $t4, 0x28c($sp) +/* 1129B0 7F0DDE80 97AB0292 */ lhu $t3, 0x292($sp) +/* 1129B4 7F0DDE84 25980007 */ addiu $t8, $t4, 7 +/* 1129B8 7F0DDE88 AFB8028C */ sw $t8, 0x28c($sp) +/* 1129BC 7F0DDE8C 256EFFFE */ addiu $t6, $t3, -2 +/* 1129C0 7F0DDE90 31D9FFFF */ andi $t9, $t6, 0xffff +/* 1129C4 7F0DDE94 2B215B00 */ slti $at, $t9, 0x5b00 +/* 1129C8 7F0DDE98 14200008 */ bnez $at, .L7F0DDEBC +/* 1129CC 7F0DDE9C A7AE0292 */ sh $t6, 0x292($sp) +/* 1129D0 7F0DDEA0 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1129D4 7F0DDEA4 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1129D8 7F0DDEA8 97AA0298 */ lhu $t2, 0x298($sp) +/* 1129DC 7F0DDEAC 01196021 */ addu $t4, $t0, $t9 +/* 1129E0 7F0DDEB0 25490002 */ addiu $t1, $t2, 2 +/* 1129E4 7F0DDEB4 10000024 */ b .L7F0DDF48 +/* 1129E8 7F0DDEB8 A1890000 */ sb $t1, ($t4) +.L7F0DDEBC: +/* 1129EC 7F0DDEBC 97AD0292 */ lhu $t5, 0x292($sp) +/* 1129F0 7F0DDEC0 97AC0292 */ lhu $t4, 0x292($sp) +/* 1129F4 7F0DDEC4 97AF0298 */ lhu $t7, 0x298($sp) +/* 1129F8 7F0DDEC8 29A15800 */ slti $at, $t5, 0x5800 +/* 1129FC 7F0DDECC 1420000C */ bnez $at, .L7F0DDF00 +/* 112A00 7F0DDED0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 112A04 7F0DDED4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 112A08 7F0DDED8 25F80002 */ addiu $t8, $t7, 2 +/* 112A0C 7F0DDEDC 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 112A10 7F0DDEE0 016D7021 */ addu $t6, $t3, $t5 +/* 112A14 7F0DDEE4 A1D80000 */ sb $t8, ($t6) +/* 112A18 7F0DDEE8 97B90292 */ lhu $t9, 0x292($sp) +/* 112A1C 7F0DDEEC 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 112A20 7F0DDEF0 240A0001 */ li $t2, 1 +/* 112A24 7F0DDEF4 01194821 */ addu $t1, $t0, $t9 +/* 112A28 7F0DDEF8 10000013 */ b .L7F0DDF48 +/* 112A2C 7F0DDEFC A12AA800 */ sb $t2, -0x5800($t1) +.L7F0DDF00: +/* 112A30 7F0DDF00 29814000 */ slti $at, $t4, 0x4000 +/* 112A34 7F0DDF04 14200010 */ bnez $at, .L7F0DDF48 +/* 112A38 7F0DDF08 97AF0298 */ lhu $t7, 0x298($sp) +/* 112A3C 7F0DDF0C 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 112A40 7F0DDF10 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 112A44 7F0DDF14 25EB0002 */ addiu $t3, $t7, 2 +/* 112A48 7F0DDF18 240E0001 */ li $t6, 1 +/* 112A4C 7F0DDF1C 01ACC021 */ addu $t8, $t5, $t4 +/* 112A50 7F0DDF20 A30B0000 */ sb $t3, ($t8) +/* 112A54 7F0DDF24 97A80292 */ lhu $t0, 0x292($sp) +/* 112A58 7F0DDF28 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 112A5C 7F0DDF2C 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 112A60 7F0DDF30 31191800 */ andi $t9, $t0, 0x1800 +/* 112A64 7F0DDF34 001950C3 */ sra $t2, $t9, 3 +/* 112A68 7F0DDF38 310900FF */ andi $t1, $t0, 0xff +/* 112A6C 7F0DDF3C 01497825 */ or $t7, $t2, $t1 +/* 112A70 7F0DDF40 01AF6021 */ addu $t4, $t5, $t7 +/* 112A74 7F0DDF44 A18E0000 */ sb $t6, ($t4) +.L7F0DDF48: +/* 112A78 7F0DDF48 97AB0292 */ lhu $t3, 0x292($sp) +/* 112A7C 7F0DDF4C 97AF0292 */ lhu $t7, 0x292($sp) +/* 112A80 7F0DDF50 97B90298 */ lhu $t9, 0x298($sp) +/* 112A84 7F0DDF54 25780001 */ addiu $t8, $t3, 1 +/* 112A88 7F0DDF58 2B015B00 */ slti $at, $t8, 0x5b00 +/* 112A8C 7F0DDF5C 14200008 */ bnez $at, .L7F0DDF80 +/* 112A90 7F0DDF60 25EE0001 */ addiu $t6, $t7, 1 +/* 112A94 7F0DDF64 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 112A98 7F0DDF68 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 112A9C 7F0DDF6C 27280002 */ addiu $t0, $t9, 2 +/* 112AA0 7F0DDF70 00085203 */ sra $t2, $t0, 8 +/* 112AA4 7F0DDF74 012B6821 */ addu $t5, $t1, $t3 +/* 112AA8 7F0DDF78 10000027 */ b .L7F0DE018 +/* 112AAC 7F0DDF7C A1AA0001 */ sb $t2, 1($t5) +.L7F0DDF80: +/* 112AB0 7F0DDF80 29C15800 */ slti $at, $t6, 0x5800 +/* 112AB4 7F0DDF84 1420000F */ bnez $at, .L7F0DDFC4 +/* 112AB8 7F0DDF88 97AC0292 */ lhu $t4, 0x292($sp) +/* 112ABC 7F0DDF8C 97AC0298 */ lhu $t4, 0x298($sp) +/* 112AC0 7F0DDF90 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 112AC4 7F0DDF94 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 112AC8 7F0DDF98 25980002 */ addiu $t8, $t4, 2 +/* 112ACC 7F0DDF9C 0018CA03 */ sra $t9, $t8, 8 +/* 112AD0 7F0DDFA0 010F4821 */ addu $t1, $t0, $t7 +/* 112AD4 7F0DDFA4 A1390001 */ sb $t9, 1($t1) +/* 112AD8 7F0DDFA8 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 112ADC 7F0DDFAC 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 112AE0 7F0DDFB0 97AD0292 */ lhu $t5, 0x292($sp) +/* 112AE4 7F0DDFB4 240B0001 */ li $t3, 1 +/* 112AE8 7F0DDFB8 014D7021 */ addu $t6, $t2, $t5 +/* 112AEC 7F0DDFBC 10000016 */ b .L7F0DE018 +/* 112AF0 7F0DDFC0 A1CBA801 */ sb $t3, -0x57ff($t6) +.L7F0DDFC4: +/* 112AF4 7F0DDFC4 25980001 */ addiu $t8, $t4, 1 +/* 112AF8 7F0DDFC8 2B014000 */ slti $at, $t8, 0x4000 +/* 112AFC 7F0DDFCC 14200012 */ bnez $at, .L7F0DE018 +/* 112B00 7F0DDFD0 97A80298 */ lhu $t0, 0x298($sp) +/* 112B04 7F0DDFD4 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 112B08 7F0DDFD8 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 112B0C 7F0DDFDC 250F0002 */ addiu $t7, $t0, 2 +/* 112B10 7F0DDFE0 000FCA03 */ sra $t9, $t7, 8 +/* 112B14 7F0DDFE4 012C5021 */ addu $t2, $t1, $t4 +/* 112B18 7F0DDFE8 A1590001 */ sb $t9, 1($t2) +/* 112B1C 7F0DDFEC 97AB0292 */ lhu $t3, 0x292($sp) +/* 112B20 7F0DDFF0 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 112B24 7F0DDFF4 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 112B28 7F0DDFF8 256E0001 */ addiu $t6, $t3, 1 +/* 112B2C 7F0DDFFC 31D81800 */ andi $t8, $t6, 0x1800 +/* 112B30 7F0DE000 001840C3 */ sra $t0, $t8, 3 +/* 112B34 7F0DE004 31CF00FF */ andi $t7, $t6, 0xff +/* 112B38 7F0DE008 010F4825 */ or $t1, $t0, $t7 +/* 112B3C 7F0DE00C 240D0001 */ li $t5, 1 +/* 112B40 7F0DE010 0189C821 */ addu $t9, $t4, $t1 +/* 112B44 7F0DE014 A32D0000 */ sb $t5, ($t9) +.L7F0DE018: +/* 112B48 7F0DE018 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 112B4C 7F0DE01C 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 112B50 7F0DE020 97AA0298 */ lhu $t2, 0x298($sp) +/* 112B54 7F0DE024 016A4021 */ addu $t0, $t3, $t2 +/* 112B58 7F0DE028 910F0001 */ lbu $t7, 1($t0) +/* 112B5C 7F0DE02C 014BC021 */ addu $t8, $t2, $t3 +/* 112B60 7F0DE030 930E0000 */ lbu $t6, ($t8) +/* 112B64 7F0DE034 000F6200 */ sll $t4, $t7, 8 +/* 112B68 7F0DE038 01CC4825 */ or $t1, $t6, $t4 +/* 112B6C 7F0DE03C 100011EF */ b .L7F0E27FC +/* 112B70 7F0DE040 A7A90298 */ sh $t1, 0x298($sp) +.L7F0DE044: +/* 112B74 7F0DE044 97AD0298 */ lhu $t5, 0x298($sp) +/* 112B78 7F0DE048 25B90002 */ addiu $t9, $t5, 2 +/* 112B7C 7F0DE04C 100011EB */ b .L7F0E27FC +/* 112B80 7F0DE050 A7B90298 */ sh $t9, 0x298($sp) +spectrum_op_E5: +/* 112B84 7F0DE054 8FB8028C */ lw $t8, 0x28c($sp) +/* 112B88 7F0DE058 93AA0287 */ lbu $t2, 0x287($sp) +/* 112B8C 7F0DE05C 93AF0287 */ lbu $t7, 0x287($sp) +/* 112B90 7F0DE060 270B000B */ addiu $t3, $t8, 0xb +/* 112B94 7F0DE064 15400058 */ bnez $t2, .L7F0DE1C8 +/* 112B98 7F0DE068 AFAB028C */ sw $t3, 0x28c($sp) +/* 112B9C 7F0DE06C 97A80292 */ lhu $t0, 0x292($sp) +/* 112BA0 7F0DE070 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 112BA4 7F0DE074 250FFFFE */ addiu $t7, $t0, -2 +/* 112BA8 7F0DE078 31EEFFFF */ andi $t6, $t7, 0xffff +/* 112BAC 7F0DE07C 29C15B00 */ slti $at, $t6, 0x5b00 +/* 112BB0 7F0DE080 14200005 */ bnez $at, .L7F0DE098 +/* 112BB4 7F0DE084 A7AF0292 */ sh $t7, 0x292($sp) +/* 112BB8 7F0DE088 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 112BBC 7F0DE08C 018E4821 */ addu $t1, $t4, $t6 +/* 112BC0 7F0DE090 10000021 */ b .L7F0DE118 +/* 112BC4 7F0DE094 A1370000 */ sb $s7, ($t1) +.L7F0DE098: +/* 112BC8 7F0DE098 97AD0292 */ lhu $t5, 0x292($sp) +/* 112BCC 7F0DE09C 97AC0292 */ lhu $t4, 0x292($sp) +/* 112BD0 7F0DE0A0 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 112BD4 7F0DE0A4 29A15800 */ slti $at, $t5, 0x5800 +/* 112BD8 7F0DE0A8 5420000C */ bnezl $at, .L7F0DE0DC +/* 112BDC 7F0DE0AC 29814000 */ slti $at, $t4, 0x4000 +/* 112BE0 7F0DE0B0 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 112BE4 7F0DE0B4 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 112BE8 7F0DE0B8 240B0001 */ li $t3, 1 +/* 112BEC 7F0DE0BC 032DC021 */ addu $t8, $t9, $t5 +/* 112BF0 7F0DE0C0 A3170000 */ sb $s7, ($t8) +/* 112BF4 7F0DE0C4 97A80292 */ lhu $t0, 0x292($sp) +/* 112BF8 7F0DE0C8 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 112BFC 7F0DE0CC 01487821 */ addu $t7, $t2, $t0 +/* 112C00 7F0DE0D0 10000011 */ b .L7F0DE118 +/* 112C04 7F0DE0D4 A1EBA800 */ sb $t3, -0x5800($t7) +/* 112C08 7F0DE0D8 29814000 */ slti $at, $t4, 0x4000 +.L7F0DE0DC: +/* 112C0C 7F0DE0DC 1420000E */ bnez $at, .L7F0DE118 +/* 112C10 7F0DE0E0 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 112C14 7F0DE0E4 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 112C18 7F0DE0E8 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 112C1C 7F0DE0EC 24190001 */ li $t9, 1 +/* 112C20 7F0DE0F0 01CC4821 */ addu $t1, $t6, $t4 +/* 112C24 7F0DE0F4 A1370000 */ sb $s7, ($t1) +/* 112C28 7F0DE0F8 97AD0292 */ lhu $t5, 0x292($sp) +/* 112C2C 7F0DE0FC 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 112C30 7F0DE100 31B81800 */ andi $t8, $t5, 0x1800 +/* 112C34 7F0DE104 001850C3 */ sra $t2, $t8, 3 +/* 112C38 7F0DE108 31A800FF */ andi $t0, $t5, 0xff +/* 112C3C 7F0DE10C 01485825 */ or $t3, $t2, $t0 +/* 112C40 7F0DE110 01EB7021 */ addu $t6, $t7, $t3 +/* 112C44 7F0DE114 A1D90000 */ sb $t9, ($t6) +.L7F0DE118: +/* 112C48 7F0DE118 97AC0292 */ lhu $t4, 0x292($sp) +/* 112C4C 7F0DE11C 97AA0292 */ lhu $t2, 0x292($sp) +/* 112C50 7F0DE120 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 112C54 7F0DE124 25890001 */ addiu $t1, $t4, 1 +/* 112C58 7F0DE128 29215B00 */ slti $at, $t1, 0x5b00 +/* 112C5C 7F0DE12C 14200005 */ bnez $at, .L7F0DE144 +/* 112C60 7F0DE130 25480001 */ addiu $t0, $t2, 1 +/* 112C64 7F0DE134 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 112C68 7F0DE138 030C6821 */ addu $t5, $t8, $t4 +/* 112C6C 7F0DE13C 100011AF */ b .L7F0E27FC +/* 112C70 7F0DE140 A1B60001 */ sb $s6, 1($t5) +.L7F0DE144: +/* 112C74 7F0DE144 29015800 */ slti $at, $t0, 0x5800 +/* 112C78 7F0DE148 1420000C */ bnez $at, .L7F0DE17C +/* 112C7C 7F0DE14C 97AC0292 */ lhu $t4, 0x292($sp) +/* 112C80 7F0DE150 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 112C84 7F0DE154 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 112C88 7F0DE158 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 112C8C 7F0DE15C 24190001 */ li $t9, 1 +/* 112C90 7F0DE160 01EA5821 */ addu $t3, $t7, $t2 +/* 112C94 7F0DE164 A1760001 */ sb $s6, 1($t3) +/* 112C98 7F0DE168 97A90292 */ lhu $t1, 0x292($sp) +/* 112C9C 7F0DE16C 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 112CA0 7F0DE170 01C9C021 */ addu $t8, $t6, $t1 +/* 112CA4 7F0DE174 100011A1 */ b .L7F0E27FC +/* 112CA8 7F0DE178 A319A801 */ sb $t9, -0x57ff($t8) +.L7F0DE17C: +/* 112CAC 7F0DE17C 258D0001 */ addiu $t5, $t4, 1 +/* 112CB0 7F0DE180 29A14000 */ slti $at, $t5, 0x4000 +/* 112CB4 7F0DE184 1420119D */ bnez $at, .L7F0E27FC +/* 112CB8 7F0DE188 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 112CBC 7F0DE18C 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 112CC0 7F0DE190 240A0001 */ li $t2, 1 +/* 112CC4 7F0DE194 010C7821 */ addu $t7, $t0, $t4 +/* 112CC8 7F0DE198 A1F60001 */ sb $s6, 1($t7) +/* 112CCC 7F0DE19C 97AB0292 */ lhu $t3, 0x292($sp) +/* 112CD0 7F0DE1A0 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 112CD4 7F0DE1A4 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 112CD8 7F0DE1A8 256E0001 */ addiu $t6, $t3, 1 +/* 112CDC 7F0DE1AC 31C91800 */ andi $t1, $t6, 0x1800 +/* 112CE0 7F0DE1B0 0009C8C3 */ sra $t9, $t1, 3 +/* 112CE4 7F0DE1B4 31D800FF */ andi $t8, $t6, 0xff +/* 112CE8 7F0DE1B8 03386825 */ or $t5, $t9, $t8 +/* 112CEC 7F0DE1BC 010D6021 */ addu $t4, $t0, $t5 +/* 112CF0 7F0DE1C0 1000118E */ b .L7F0E27FC +/* 112CF4 7F0DE1C4 A18A0000 */ sb $t2, ($t4) +.L7F0DE1C8: +/* 112CF8 7F0DE1C8 24010001 */ li $at, 1 +/* 112CFC 7F0DE1CC 15E10061 */ bne $t7, $at, .L7F0DE354 +/* 112D00 7F0DE1D0 97A90292 */ lhu $t1, 0x292($sp) +/* 112D04 7F0DE1D4 97AB0292 */ lhu $t3, 0x292($sp) +/* 112D08 7F0DE1D8 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 112D0C 7F0DE1DC 2569FFFE */ addiu $t1, $t3, -2 +/* 112D10 7F0DE1E0 312EFFFF */ andi $t6, $t1, 0xffff +/* 112D14 7F0DE1E4 29C15B00 */ slti $at, $t6, 0x5b00 +/* 112D18 7F0DE1E8 14200006 */ bnez $at, .L7F0DE204 +/* 112D1C 7F0DE1EC A7A90292 */ sh $t1, 0x292($sp) +/* 112D20 7F0DE1F0 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 112D24 7F0DE1F4 97B90296 */ lhu $t9, 0x296($sp) +/* 112D28 7F0DE1F8 030E4021 */ addu $t0, $t8, $t6 +/* 112D2C 7F0DE1FC 10000023 */ b .L7F0DE28C +/* 112D30 7F0DE200 A1190000 */ sb $t9, ($t0) +.L7F0DE204: +/* 112D34 7F0DE204 97AD0292 */ lhu $t5, 0x292($sp) +/* 112D38 7F0DE208 97B90292 */ lhu $t9, 0x292($sp) +/* 112D3C 7F0DE20C 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 112D40 7F0DE210 29A15800 */ slti $at, $t5, 0x5800 +/* 112D44 7F0DE214 5420000D */ bnezl $at, .L7F0DE24C +/* 112D48 7F0DE218 2B214000 */ slti $at, $t9, 0x4000 +/* 112D4C 7F0DE21C 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 112D50 7F0DE220 97AA0296 */ lhu $t2, 0x296($sp) +/* 112D54 7F0DE224 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 112D58 7F0DE228 018D7821 */ addu $t7, $t4, $t5 +/* 112D5C 7F0DE22C A1EA0000 */ sb $t2, ($t7) +/* 112D60 7F0DE230 97B80292 */ lhu $t8, 0x292($sp) +/* 112D64 7F0DE234 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 112D68 7F0DE238 240B0001 */ li $t3, 1 +/* 112D6C 7F0DE23C 01387021 */ addu $t6, $t1, $t8 +/* 112D70 7F0DE240 10000012 */ b .L7F0DE28C +/* 112D74 7F0DE244 A1CBA800 */ sb $t3, -0x5800($t6) +/* 112D78 7F0DE248 2B214000 */ slti $at, $t9, 0x4000 +.L7F0DE24C: +/* 112D7C 7F0DE24C 1420000F */ bnez $at, .L7F0DE28C +/* 112D80 7F0DE250 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 112D84 7F0DE254 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 112D88 7F0DE258 97A80296 */ lhu $t0, 0x296($sp) +/* 112D8C 7F0DE25C 240A0001 */ li $t2, 1 +/* 112D90 7F0DE260 01996821 */ addu $t5, $t4, $t9 +/* 112D94 7F0DE264 A1A80000 */ sb $t0, ($t5) +/* 112D98 7F0DE268 97AF0292 */ lhu $t7, 0x292($sp) +/* 112D9C 7F0DE26C 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 112DA0 7F0DE270 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 112DA4 7F0DE274 31E91800 */ andi $t1, $t7, 0x1800 +/* 112DA8 7F0DE278 0009C0C3 */ sra $t8, $t1, 3 +/* 112DAC 7F0DE27C 31EB00FF */ andi $t3, $t7, 0xff +/* 112DB0 7F0DE280 030B7025 */ or $t6, $t8, $t3 +/* 112DB4 7F0DE284 018EC821 */ addu $t9, $t4, $t6 +/* 112DB8 7F0DE288 A32A0000 */ sb $t2, ($t9) +.L7F0DE28C: +/* 112DBC 7F0DE28C 97A80292 */ lhu $t0, 0x292($sp) +/* 112DC0 7F0DE290 97AC0292 */ lhu $t4, 0x292($sp) +/* 112DC4 7F0DE294 97A90296 */ lhu $t1, 0x296($sp) +/* 112DC8 7F0DE298 250D0001 */ addiu $t5, $t0, 1 +/* 112DCC 7F0DE29C 29A15B00 */ slti $at, $t5, 0x5b00 +/* 112DD0 7F0DE2A0 14200007 */ bnez $at, .L7F0DE2C0 +/* 112DD4 7F0DE2A4 258E0001 */ addiu $t6, $t4, 1 +/* 112DD8 7F0DE2A8 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 112DDC 7F0DE2AC 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 112DE0 7F0DE2B0 00097A03 */ sra $t7, $t1, 8 +/* 112DE4 7F0DE2B4 03085821 */ addu $t3, $t8, $t0 +/* 112DE8 7F0DE2B8 10001150 */ b .L7F0E27FC +/* 112DEC 7F0DE2BC A16F0001 */ sb $t7, 1($t3) +.L7F0DE2C0: +/* 112DF0 7F0DE2C0 29C15800 */ slti $at, $t6, 0x5800 +/* 112DF4 7F0DE2C4 1420000E */ bnez $at, .L7F0DE300 +/* 112DF8 7F0DE2C8 97AE0292 */ lhu $t6, 0x292($sp) +/* 112DFC 7F0DE2CC 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 112E00 7F0DE2D0 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 112E04 7F0DE2D4 97AA0296 */ lhu $t2, 0x296($sp) +/* 112E08 7F0DE2D8 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 112E0C 7F0DE2DC 01AC4821 */ addu $t1, $t5, $t4 +/* 112E10 7F0DE2E0 000ACA03 */ sra $t9, $t2, 8 +/* 112E14 7F0DE2E4 A1390001 */ sb $t9, 1($t1) +/* 112E18 7F0DE2E8 97AF0292 */ lhu $t7, 0x292($sp) +/* 112E1C 7F0DE2EC 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 112E20 7F0DE2F0 24180001 */ li $t8, 1 +/* 112E24 7F0DE2F4 010F5821 */ addu $t3, $t0, $t7 +/* 112E28 7F0DE2F8 10001140 */ b .L7F0E27FC +/* 112E2C 7F0DE2FC A178A801 */ sb $t8, -0x57ff($t3) +.L7F0DE300: +/* 112E30 7F0DE300 25CA0001 */ addiu $t2, $t6, 1 +/* 112E34 7F0DE304 29414000 */ slti $at, $t2, 0x4000 +/* 112E38 7F0DE308 1420113C */ bnez $at, .L7F0E27FC +/* 112E3C 7F0DE30C 97AD0296 */ lhu $t5, 0x296($sp) +/* 112E40 7F0DE310 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 112E44 7F0DE314 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 112E48 7F0DE318 000D6203 */ sra $t4, $t5, 8 +/* 112E4C 7F0DE31C 24080001 */ li $t0, 1 +/* 112E50 7F0DE320 032E4821 */ addu $t1, $t9, $t6 +/* 112E54 7F0DE324 A12C0001 */ sb $t4, 1($t1) +/* 112E58 7F0DE328 97AF0292 */ lhu $t7, 0x292($sp) +/* 112E5C 7F0DE32C 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 112E60 7F0DE330 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 112E64 7F0DE334 25F80001 */ addiu $t8, $t7, 1 +/* 112E68 7F0DE338 330B1800 */ andi $t3, $t8, 0x1800 +/* 112E6C 7F0DE33C 000B50C3 */ sra $t2, $t3, 3 +/* 112E70 7F0DE340 330D00FF */ andi $t5, $t8, 0xff +/* 112E74 7F0DE344 014DC825 */ or $t9, $t2, $t5 +/* 112E78 7F0DE348 01D96021 */ addu $t4, $t6, $t9 +/* 112E7C 7F0DE34C 1000112B */ b .L7F0E27FC +/* 112E80 7F0DE350 A1880000 */ sb $t0, ($t4) +.L7F0DE354: +/* 112E84 7F0DE354 252FFFFE */ addiu $t7, $t1, -2 +/* 112E88 7F0DE358 31EBFFFF */ andi $t3, $t7, 0xffff +/* 112E8C 7F0DE35C 29615B00 */ slti $at, $t3, 0x5b00 +/* 112E90 7F0DE360 14200007 */ bnez $at, .L7F0DE380 +/* 112E94 7F0DE364 A7AF0292 */ sh $t7, 0x292($sp) +/* 112E98 7F0DE368 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 112E9C 7F0DE36C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 112EA0 7F0DE370 97B80294 */ lhu $t8, 0x294($sp) +/* 112EA4 7F0DE374 014B6821 */ addu $t5, $t2, $t3 +/* 112EA8 7F0DE378 10000023 */ b .L7F0DE408 +/* 112EAC 7F0DE37C A1B80000 */ sb $t8, ($t5) +.L7F0DE380: +/* 112EB0 7F0DE380 97AE0292 */ lhu $t6, 0x292($sp) +/* 112EB4 7F0DE384 97B80292 */ lhu $t8, 0x292($sp) +/* 112EB8 7F0DE388 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 112EBC 7F0DE38C 29C15800 */ slti $at, $t6, 0x5800 +/* 112EC0 7F0DE390 5420000D */ bnezl $at, .L7F0DE3C8 +/* 112EC4 7F0DE394 2B014000 */ slti $at, $t8, 0x4000 +/* 112EC8 7F0DE398 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 112ECC 7F0DE39C 97B90294 */ lhu $t9, 0x294($sp) +/* 112ED0 7F0DE3A0 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 112ED4 7F0DE3A4 010E6021 */ addu $t4, $t0, $t6 +/* 112ED8 7F0DE3A8 A1990000 */ sb $t9, ($t4) +/* 112EDC 7F0DE3AC 97AA0292 */ lhu $t2, 0x292($sp) +/* 112EE0 7F0DE3B0 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 112EE4 7F0DE3B4 24090001 */ li $t1, 1 +/* 112EE8 7F0DE3B8 01EA5821 */ addu $t3, $t7, $t2 +/* 112EEC 7F0DE3BC 10000012 */ b .L7F0DE408 +/* 112EF0 7F0DE3C0 A169A800 */ sb $t1, -0x5800($t3) +/* 112EF4 7F0DE3C4 2B014000 */ slti $at, $t8, 0x4000 +.L7F0DE3C8: +/* 112EF8 7F0DE3C8 1420000F */ bnez $at, .L7F0DE408 +/* 112EFC 7F0DE3CC 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 112F00 7F0DE3D0 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 112F04 7F0DE3D4 97AD0294 */ lhu $t5, 0x294($sp) +/* 112F08 7F0DE3D8 24190001 */ li $t9, 1 +/* 112F0C 7F0DE3DC 01187021 */ addu $t6, $t0, $t8 +/* 112F10 7F0DE3E0 A1CD0000 */ sb $t5, ($t6) +/* 112F14 7F0DE3E4 97AC0292 */ lhu $t4, 0x292($sp) +/* 112F18 7F0DE3E8 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 112F1C 7F0DE3EC 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 112F20 7F0DE3F0 318F1800 */ andi $t7, $t4, 0x1800 +/* 112F24 7F0DE3F4 000F50C3 */ sra $t2, $t7, 3 +/* 112F28 7F0DE3F8 318900FF */ andi $t1, $t4, 0xff +/* 112F2C 7F0DE3FC 01495825 */ or $t3, $t2, $t1 +/* 112F30 7F0DE400 010BC021 */ addu $t8, $t0, $t3 +/* 112F34 7F0DE404 A3190000 */ sb $t9, ($t8) +.L7F0DE408: +/* 112F38 7F0DE408 97AD0292 */ lhu $t5, 0x292($sp) +/* 112F3C 7F0DE40C 97A80292 */ lhu $t0, 0x292($sp) +/* 112F40 7F0DE410 97AF0294 */ lhu $t7, 0x294($sp) +/* 112F44 7F0DE414 25AE0001 */ addiu $t6, $t5, 1 +/* 112F48 7F0DE418 29C15B00 */ slti $at, $t6, 0x5b00 +/* 112F4C 7F0DE41C 14200007 */ bnez $at, .L7F0DE43C +/* 112F50 7F0DE420 250B0001 */ addiu $t3, $t0, 1 +/* 112F54 7F0DE424 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 112F58 7F0DE428 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 112F5C 7F0DE42C 000F6203 */ sra $t4, $t7, 8 +/* 112F60 7F0DE430 014D4821 */ addu $t1, $t2, $t5 +/* 112F64 7F0DE434 100010F1 */ b .L7F0E27FC +/* 112F68 7F0DE438 A12C0001 */ sb $t4, 1($t1) +.L7F0DE43C: +/* 112F6C 7F0DE43C 29615800 */ slti $at, $t3, 0x5800 +/* 112F70 7F0DE440 1420000E */ bnez $at, .L7F0DE47C +/* 112F74 7F0DE444 97AB0292 */ lhu $t3, 0x292($sp) +/* 112F78 7F0DE448 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 112F7C 7F0DE44C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 112F80 7F0DE450 97B90294 */ lhu $t9, 0x294($sp) +/* 112F84 7F0DE454 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 112F88 7F0DE458 01C87821 */ addu $t7, $t6, $t0 +/* 112F8C 7F0DE45C 0019C203 */ sra $t8, $t9, 8 +/* 112F90 7F0DE460 A1F80001 */ sb $t8, 1($t7) +/* 112F94 7F0DE464 97AC0292 */ lhu $t4, 0x292($sp) +/* 112F98 7F0DE468 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 112F9C 7F0DE46C 240A0001 */ li $t2, 1 +/* 112FA0 7F0DE470 01AC4821 */ addu $t1, $t5, $t4 +/* 112FA4 7F0DE474 100010E1 */ b .L7F0E27FC +/* 112FA8 7F0DE478 A12AA801 */ sb $t2, -0x57ff($t1) +.L7F0DE47C: +/* 112FAC 7F0DE47C 25790001 */ addiu $t9, $t3, 1 +/* 112FB0 7F0DE480 2B214000 */ slti $at, $t9, 0x4000 +/* 112FB4 7F0DE484 142010DD */ bnez $at, .L7F0E27FC +/* 112FB8 7F0DE488 97AE0294 */ lhu $t6, 0x294($sp) +/* 112FBC 7F0DE48C 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 112FC0 7F0DE490 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 112FC4 7F0DE494 000E4203 */ sra $t0, $t6, 8 +/* 112FC8 7F0DE498 240D0001 */ li $t5, 1 +/* 112FCC 7F0DE49C 030B7821 */ addu $t7, $t8, $t3 +/* 112FD0 7F0DE4A0 A1E80001 */ sb $t0, 1($t7) +/* 112FD4 7F0DE4A4 97AC0292 */ lhu $t4, 0x292($sp) +/* 112FD8 7F0DE4A8 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 112FDC 7F0DE4AC 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 112FE0 7F0DE4B0 258A0001 */ addiu $t2, $t4, 1 +/* 112FE4 7F0DE4B4 31491800 */ andi $t1, $t2, 0x1800 +/* 112FE8 7F0DE4B8 0009C8C3 */ sra $t9, $t1, 3 +/* 112FEC 7F0DE4BC 314E00FF */ andi $t6, $t2, 0xff +/* 112FF0 7F0DE4C0 032EC025 */ or $t8, $t9, $t6 +/* 112FF4 7F0DE4C4 01784021 */ addu $t0, $t3, $t8 +/* 112FF8 7F0DE4C8 100010CC */ b .L7F0E27FC +/* 112FFC 7F0DE4CC A10D0000 */ sb $t5, ($t0) +spectrum_op_E6: +/* 113000 7F0DE4D0 8FAF028C */ lw $t7, 0x28c($sp) +/* 113004 7F0DE4D4 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 113008 7F0DE4D8 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 11300C 7F0DE4DC 97AA0298 */ lhu $t2, 0x298($sp) +/* 113010 7F0DE4E0 25EC0007 */ addiu $t4, $t7, 7 +/* 113014 7F0DE4E4 AFAC028C */ sw $t4, 0x28c($sp) +/* 113018 7F0DE4E8 012AC821 */ addu $t9, $t1, $t2 +/* 11301C 7F0DE4EC 932E0000 */ lbu $t6, ($t9) +/* 113020 7F0DE4F0 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 113024 7F0DE4F4 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 113028 7F0DE4F8 020E8024 */ and $s0, $s0, $t6 +/* 11302C 7F0DE4FC 320B00FF */ andi $t3, $s0, 0xff +/* 113030 7F0DE500 2D780001 */ sltiu $t8, $t3, 1 +/* 113034 7F0DE504 AFB80048 */ sw $t8, 0x48($sp) +/* 113038 7F0DE508 00187980 */ sll $t7, $t8, 6 +/* 11303C 7F0DE50C 016AC821 */ addu $t9, $t3, $t2 +/* 113040 7F0DE510 932E0000 */ lbu $t6, ($t9) +/* 113044 7F0DE514 316D00A8 */ andi $t5, $t3, 0xa8 +/* 113048 7F0DE518 97B80298 */ lhu $t8, 0x298($sp) +/* 11304C 7F0DE51C 01AF6025 */ or $t4, $t5, $t7 +/* 113050 7F0DE520 35890010 */ ori $t1, $t4, 0x10 +/* 113054 7F0DE524 01608025 */ move $s0, $t3 +/* 113058 7F0DE528 01C98825 */ or $s1, $t6, $t1 +/* 11305C 7F0DE52C 322B00FF */ andi $t3, $s1, 0xff +/* 113060 7F0DE530 27080001 */ addiu $t0, $t8, 1 +/* 113064 7F0DE534 01608825 */ move $s1, $t3 +/* 113068 7F0DE538 100010B0 */ b .L7F0E27FC +/* 11306C 7F0DE53C A7A80298 */ sh $t0, 0x298($sp) +spectrum_op_E7: +/* 113070 7F0DE540 97AC0292 */ lhu $t4, 0x292($sp) +/* 113074 7F0DE544 8FAD028C */ lw $t5, 0x28c($sp) +/* 113078 7F0DE548 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 11307C 7F0DE54C 258AFFFE */ addiu $t2, $t4, -2 +/* 113080 7F0DE550 3159FFFF */ andi $t9, $t2, 0xffff +/* 113084 7F0DE554 2B215B00 */ slti $at, $t9, 0x5b00 +/* 113088 7F0DE558 25AF000B */ addiu $t7, $t5, 0xb +/* 11308C 7F0DE55C AFAF028C */ sw $t7, 0x28c($sp) +/* 113090 7F0DE560 14200006 */ bnez $at, .L7F0DE57C +/* 113094 7F0DE564 A7AA0292 */ sh $t2, 0x292($sp) +/* 113098 7F0DE568 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 11309C 7F0DE56C 97AE0298 */ lhu $t6, 0x298($sp) +/* 1130A0 7F0DE570 01395821 */ addu $t3, $t1, $t9 +/* 1130A4 7F0DE574 10000023 */ b .L7F0DE604 +/* 1130A8 7F0DE578 A16E0000 */ sb $t6, ($t3) +.L7F0DE57C: +/* 1130AC 7F0DE57C 97B80292 */ lhu $t8, 0x292($sp) +/* 1130B0 7F0DE580 97AE0292 */ lhu $t6, 0x292($sp) +/* 1130B4 7F0DE584 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1130B8 7F0DE588 2B015800 */ slti $at, $t8, 0x5800 +/* 1130BC 7F0DE58C 5420000D */ bnezl $at, .L7F0DE5C4 +/* 1130C0 7F0DE590 29C14000 */ slti $at, $t6, 0x4000 +/* 1130C4 7F0DE594 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1130C8 7F0DE598 97A80298 */ lhu $t0, 0x298($sp) +/* 1130CC 7F0DE59C 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 1130D0 7F0DE5A0 01B87821 */ addu $t7, $t5, $t8 +/* 1130D4 7F0DE5A4 A1E80000 */ sb $t0, ($t7) +/* 1130D8 7F0DE5A8 97A90292 */ lhu $t1, 0x292($sp) +/* 1130DC 7F0DE5AC 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 1130E0 7F0DE5B0 240C0001 */ li $t4, 1 +/* 1130E4 7F0DE5B4 0149C821 */ addu $t9, $t2, $t1 +/* 1130E8 7F0DE5B8 10000012 */ b .L7F0DE604 +/* 1130EC 7F0DE5BC A32CA800 */ sb $t4, -0x5800($t9) +/* 1130F0 7F0DE5C0 29C14000 */ slti $at, $t6, 0x4000 +.L7F0DE5C4: +/* 1130F4 7F0DE5C4 1420000F */ bnez $at, .L7F0DE604 +/* 1130F8 7F0DE5C8 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1130FC 7F0DE5CC 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 113100 7F0DE5D0 97AB0298 */ lhu $t3, 0x298($sp) +/* 113104 7F0DE5D4 24080001 */ li $t0, 1 +/* 113108 7F0DE5D8 01AEC021 */ addu $t8, $t5, $t6 +/* 11310C 7F0DE5DC A30B0000 */ sb $t3, ($t8) +/* 113110 7F0DE5E0 97AF0292 */ lhu $t7, 0x292($sp) +/* 113114 7F0DE5E4 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 113118 7F0DE5E8 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 11311C 7F0DE5EC 31EA1800 */ andi $t2, $t7, 0x1800 +/* 113120 7F0DE5F0 000A48C3 */ sra $t1, $t2, 3 +/* 113124 7F0DE5F4 31EC00FF */ andi $t4, $t7, 0xff +/* 113128 7F0DE5F8 012CC825 */ or $t9, $t1, $t4 +/* 11312C 7F0DE5FC 01B97021 */ addu $t6, $t5, $t9 +/* 113130 7F0DE600 A1C80000 */ sb $t0, ($t6) +.L7F0DE604: +/* 113134 7F0DE604 97AB0292 */ lhu $t3, 0x292($sp) +/* 113138 7F0DE608 97AD0292 */ lhu $t5, 0x292($sp) +/* 11313C 7F0DE60C 97AA0298 */ lhu $t2, 0x298($sp) +/* 113140 7F0DE610 25780001 */ addiu $t8, $t3, 1 +/* 113144 7F0DE614 2B015B00 */ slti $at, $t8, 0x5b00 +/* 113148 7F0DE618 14200007 */ bnez $at, .L7F0DE638 +/* 11314C 7F0DE61C 25B90001 */ addiu $t9, $t5, 1 +/* 113150 7F0DE620 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 113154 7F0DE624 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 113158 7F0DE628 000A7A03 */ sra $t7, $t2, 8 +/* 11315C 7F0DE62C 012B6021 */ addu $t4, $t1, $t3 +/* 113160 7F0DE630 10000025 */ b .L7F0DE6C8 +/* 113164 7F0DE634 A18F0001 */ sb $t7, 1($t4) +.L7F0DE638: +/* 113168 7F0DE638 2B215800 */ slti $at, $t9, 0x5800 +/* 11316C 7F0DE63C 1420000E */ bnez $at, .L7F0DE678 +/* 113170 7F0DE640 97B90292 */ lhu $t9, 0x292($sp) +/* 113174 7F0DE644 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 113178 7F0DE648 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 11317C 7F0DE64C 97A80298 */ lhu $t0, 0x298($sp) +/* 113180 7F0DE650 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 113184 7F0DE654 030D5021 */ addu $t2, $t8, $t5 +/* 113188 7F0DE658 00087203 */ sra $t6, $t0, 8 +/* 11318C 7F0DE65C A14E0001 */ sb $t6, 1($t2) +/* 113190 7F0DE660 97AF0292 */ lhu $t7, 0x292($sp) +/* 113194 7F0DE664 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 113198 7F0DE668 24090001 */ li $t1, 1 +/* 11319C 7F0DE66C 016F6021 */ addu $t4, $t3, $t7 +/* 1131A0 7F0DE670 10000015 */ b .L7F0DE6C8 +/* 1131A4 7F0DE674 A189A801 */ sb $t1, -0x57ff($t4) +.L7F0DE678: +/* 1131A8 7F0DE678 27280001 */ addiu $t0, $t9, 1 +/* 1131AC 7F0DE67C 29014000 */ slti $at, $t0, 0x4000 +/* 1131B0 7F0DE680 14200011 */ bnez $at, .L7F0DE6C8 +/* 1131B4 7F0DE684 97B80298 */ lhu $t8, 0x298($sp) +/* 1131B8 7F0DE688 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1131BC 7F0DE68C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1131C0 7F0DE690 00186A03 */ sra $t5, $t8, 8 +/* 1131C4 7F0DE694 240B0001 */ li $t3, 1 +/* 1131C8 7F0DE698 01D95021 */ addu $t2, $t6, $t9 +/* 1131CC 7F0DE69C A14D0001 */ sb $t5, 1($t2) +/* 1131D0 7F0DE6A0 97AF0292 */ lhu $t7, 0x292($sp) +/* 1131D4 7F0DE6A4 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 1131D8 7F0DE6A8 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 1131DC 7F0DE6AC 25E90001 */ addiu $t1, $t7, 1 +/* 1131E0 7F0DE6B0 312C1800 */ andi $t4, $t1, 0x1800 +/* 1131E4 7F0DE6B4 000C40C3 */ sra $t0, $t4, 3 +/* 1131E8 7F0DE6B8 313800FF */ andi $t8, $t1, 0xff +/* 1131EC 7F0DE6BC 01187025 */ or $t6, $t0, $t8 +/* 1131F0 7F0DE6C0 032E6821 */ addu $t5, $t9, $t6 +/* 1131F4 7F0DE6C4 A1AB0000 */ sb $t3, ($t5) +.L7F0DE6C8: +/* 1131F8 7F0DE6C8 240A0020 */ li $t2, 32 +/* 1131FC 7F0DE6CC 1000104B */ b .L7F0E27FC +/* 113200 7F0DE6D0 A7AA0298 */ sh $t2, 0x298($sp) +spectrum_op_E8: +/* 113204 7F0DE6D4 8FAF028C */ lw $t7, 0x28c($sp) +/* 113208 7F0DE6D8 32290004 */ andi $t1, $s1, 4 +/* 11320C 7F0DE6DC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 113210 7F0DE6E0 25EC0005 */ addiu $t4, $t7, 5 +/* 113214 7F0DE6E4 11201045 */ beqz $t1, .L7F0E27FC +/* 113218 7F0DE6E8 AFAC028C */ sw $t4, 0x28c($sp) +/* 11321C 7F0DE6EC 97B90292 */ lhu $t9, 0x292($sp) +/* 113220 7F0DE6F0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 113224 7F0DE6F4 25980006 */ addiu $t8, $t4, 6 +/* 113228 7F0DE6F8 AFB8028C */ sw $t8, 0x28c($sp) +/* 11322C 7F0DE6FC 01D95021 */ addu $t2, $t6, $t9 +/* 113230 7F0DE700 914F0001 */ lbu $t7, 1($t2) +/* 113234 7F0DE704 032E5821 */ addu $t3, $t9, $t6 +/* 113238 7F0DE708 916D0000 */ lbu $t5, ($t3) +/* 11323C 7F0DE70C 000F6200 */ sll $t4, $t7, 8 +/* 113240 7F0DE710 27280002 */ addiu $t0, $t9, 2 +/* 113244 7F0DE714 01AC4825 */ or $t1, $t5, $t4 +/* 113248 7F0DE718 A7A90298 */ sh $t1, 0x298($sp) +/* 11324C 7F0DE71C 10001037 */ b .L7F0E27FC +/* 113250 7F0DE720 A7A80292 */ sh $t0, 0x292($sp) +spectrum_op_E9: +/* 113254 7F0DE724 8FB8028C */ lw $t8, 0x28c($sp) +/* 113258 7F0DE728 93AE0287 */ lbu $t6, 0x287($sp) +/* 11325C 7F0DE72C 93AD0287 */ lbu $t5, 0x287($sp) +/* 113260 7F0DE730 270B0004 */ addiu $t3, $t8, 4 +/* 113264 7F0DE734 15C00005 */ bnez $t6, .L7F0DE74C +/* 113268 7F0DE738 AFAB028C */ sw $t3, 0x28c($sp) +/* 11326C 7F0DE73C 00165200 */ sll $t2, $s6, 8 +/* 113270 7F0DE740 01577825 */ or $t7, $t2, $s7 +/* 113274 7F0DE744 1000102D */ b .L7F0E27FC +/* 113278 7F0DE748 A7AF0298 */ sh $t7, 0x298($sp) +.L7F0DE74C: +/* 11327C 7F0DE74C 24010001 */ li $at, 1 +/* 113280 7F0DE750 15A10004 */ bne $t5, $at, .L7F0DE764 +/* 113284 7F0DE754 97A90294 */ lhu $t1, 0x294($sp) +/* 113288 7F0DE758 97AC0296 */ lhu $t4, 0x296($sp) +/* 11328C 7F0DE75C 10000002 */ b .L7F0DE768 +/* 113290 7F0DE760 AFAC0048 */ sw $t4, 0x48($sp) +.L7F0DE764: +/* 113294 7F0DE764 AFA90048 */ sw $t1, 0x48($sp) +.L7F0DE768: +/* 113298 7F0DE768 8FB90048 */ lw $t9, 0x48($sp) +/* 11329C 7F0DE76C 10001023 */ b .L7F0E27FC +/* 1132A0 7F0DE770 A7B90298 */ sh $t9, 0x298($sp) +spectrum_op_EA: +/* 1132A4 7F0DE774 8FA8028C */ lw $t0, 0x28c($sp) +/* 1132A8 7F0DE778 322B0004 */ andi $t3, $s1, 4 +/* 1132AC 7F0DE77C 97AE0298 */ lhu $t6, 0x298($sp) +/* 1132B0 7F0DE780 2518000A */ addiu $t8, $t0, 0xa +/* 1132B4 7F0DE784 1160000B */ beqz $t3, .L7F0DE7B4 +/* 1132B8 7F0DE788 AFB8028C */ sw $t8, 0x28c($sp) +/* 1132BC 7F0DE78C 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 1132C0 7F0DE790 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 1132C4 7F0DE794 014E6021 */ addu $t4, $t2, $t6 +/* 1132C8 7F0DE798 91890001 */ lbu $t1, 1($t4) +/* 1132CC 7F0DE79C 01CA7821 */ addu $t7, $t6, $t2 +/* 1132D0 7F0DE7A0 91ED0000 */ lbu $t5, ($t7) +/* 1132D4 7F0DE7A4 0009CA00 */ sll $t9, $t1, 8 +/* 1132D8 7F0DE7A8 01B94025 */ or $t0, $t5, $t9 +/* 1132DC 7F0DE7AC 10001013 */ b .L7F0E27FC +/* 1132E0 7F0DE7B0 A7A80298 */ sh $t0, 0x298($sp) +.L7F0DE7B4: +/* 1132E4 7F0DE7B4 97B80298 */ lhu $t8, 0x298($sp) +/* 1132E8 7F0DE7B8 270B0002 */ addiu $t3, $t8, 2 +/* 1132EC 7F0DE7BC 1000100F */ b .L7F0E27FC +/* 1132F0 7F0DE7C0 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_EB: +/* 1132F4 7F0DE7C4 8FAF028C */ lw $t7, 0x28c($sp) +/* 1132F8 7F0DE7C8 A3B600E5 */ sb $s6, 0xe5($sp) +/* 1132FC 7F0DE7CC A3B500E4 */ sb $s5, 0xe4($sp) +/* 113300 7F0DE7D0 329600FF */ andi $s6, $s4, 0xff +/* 113304 7F0DE7D4 32F500FF */ andi $s5, $s7, 0xff +/* 113308 7F0DE7D8 25EA0004 */ addiu $t2, $t7, 4 +/* 11330C 7F0DE7DC AFAA028C */ sw $t2, 0x28c($sp) +/* 113310 7F0DE7E0 93B400E5 */ lbu $s4, 0xe5($sp) +/* 113314 7F0DE7E4 10001005 */ b .L7F0E27FC +/* 113318 7F0DE7E8 93B700E4 */ lbu $s7, 0xe4($sp) +spectrum_op_EC: +/* 11331C 7F0DE7EC 8FAE028C */ lw $t6, 0x28c($sp) +/* 113320 7F0DE7F0 32290004 */ andi $t1, $s1, 4 +/* 113324 7F0DE7F4 25CC000A */ addiu $t4, $t6, 0xa +/* 113328 7F0DE7F8 11200072 */ beqz $t1, .L7F0DE9C4 +/* 11332C 7F0DE7FC AFAC028C */ sw $t4, 0x28c($sp) +/* 113330 7F0DE800 97A80292 */ lhu $t0, 0x292($sp) +/* 113334 7F0DE804 25990007 */ addiu $t9, $t4, 7 +/* 113338 7F0DE808 AFB9028C */ sw $t9, 0x28c($sp) +/* 11333C 7F0DE80C 2518FFFE */ addiu $t8, $t0, -2 +/* 113340 7F0DE810 330BFFFF */ andi $t3, $t8, 0xffff +/* 113344 7F0DE814 29615B00 */ slti $at, $t3, 0x5b00 +/* 113348 7F0DE818 14200008 */ bnez $at, .L7F0DE83C +/* 11334C 7F0DE81C A7B80292 */ sh $t8, 0x292($sp) +/* 113350 7F0DE820 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 113354 7F0DE824 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 113358 7F0DE828 97AF0298 */ lhu $t7, 0x298($sp) +/* 11335C 7F0DE82C 01CB6021 */ addu $t4, $t6, $t3 +/* 113360 7F0DE830 25EA0002 */ addiu $t2, $t7, 2 +/* 113364 7F0DE834 10000024 */ b .L7F0DE8C8 +/* 113368 7F0DE838 A18A0000 */ sb $t2, ($t4) +.L7F0DE83C: +/* 11336C 7F0DE83C 97A90292 */ lhu $t1, 0x292($sp) +/* 113370 7F0DE840 97AC0292 */ lhu $t4, 0x292($sp) +/* 113374 7F0DE844 97AD0298 */ lhu $t5, 0x298($sp) +/* 113378 7F0DE848 29215800 */ slti $at, $t1, 0x5800 +/* 11337C 7F0DE84C 1420000C */ bnez $at, .L7F0DE880 +/* 113380 7F0DE850 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 113384 7F0DE854 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 113388 7F0DE858 25B90002 */ addiu $t9, $t5, 2 +/* 11338C 7F0DE85C 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 113390 7F0DE860 0109C021 */ addu $t8, $t0, $t1 +/* 113394 7F0DE864 A3190000 */ sb $t9, ($t8) +/* 113398 7F0DE868 97AB0292 */ lhu $t3, 0x292($sp) +/* 11339C 7F0DE86C 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 1133A0 7F0DE870 240F0001 */ li $t7, 1 +/* 1133A4 7F0DE874 01CB5021 */ addu $t2, $t6, $t3 +/* 1133A8 7F0DE878 10000013 */ b .L7F0DE8C8 +/* 1133AC 7F0DE87C A14FA800 */ sb $t7, -0x5800($t2) +.L7F0DE880: +/* 1133B0 7F0DE880 29814000 */ slti $at, $t4, 0x4000 +/* 1133B4 7F0DE884 14200010 */ bnez $at, .L7F0DE8C8 +/* 1133B8 7F0DE888 97AD0298 */ lhu $t5, 0x298($sp) +/* 1133BC 7F0DE88C 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 1133C0 7F0DE890 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 1133C4 7F0DE894 25A80002 */ addiu $t0, $t5, 2 +/* 1133C8 7F0DE898 24180001 */ li $t8, 1 +/* 1133CC 7F0DE89C 012CC821 */ addu $t9, $t1, $t4 +/* 1133D0 7F0DE8A0 A3280000 */ sb $t0, ($t9) +/* 1133D4 7F0DE8A4 97AE0292 */ lhu $t6, 0x292($sp) +/* 1133D8 7F0DE8A8 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 1133DC 7F0DE8AC 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 1133E0 7F0DE8B0 31CB1800 */ andi $t3, $t6, 0x1800 +/* 1133E4 7F0DE8B4 000B78C3 */ sra $t7, $t3, 3 +/* 1133E8 7F0DE8B8 31CA00FF */ andi $t2, $t6, 0xff +/* 1133EC 7F0DE8BC 01EA6825 */ or $t5, $t7, $t2 +/* 1133F0 7F0DE8C0 012D6021 */ addu $t4, $t1, $t5 +/* 1133F4 7F0DE8C4 A1980000 */ sb $t8, ($t4) +.L7F0DE8C8: +/* 1133F8 7F0DE8C8 97A80292 */ lhu $t0, 0x292($sp) +/* 1133FC 7F0DE8CC 97AD0292 */ lhu $t5, 0x292($sp) +/* 113400 7F0DE8D0 97AB0298 */ lhu $t3, 0x298($sp) +/* 113404 7F0DE8D4 25190001 */ addiu $t9, $t0, 1 +/* 113408 7F0DE8D8 2B215B00 */ slti $at, $t9, 0x5b00 +/* 11340C 7F0DE8DC 14200008 */ bnez $at, .L7F0DE900 +/* 113410 7F0DE8E0 25B80001 */ addiu $t8, $t5, 1 +/* 113414 7F0DE8E4 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 113418 7F0DE8E8 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 11341C 7F0DE8EC 256E0002 */ addiu $t6, $t3, 2 +/* 113420 7F0DE8F0 000E7A03 */ sra $t7, $t6, 8 +/* 113424 7F0DE8F4 01484821 */ addu $t1, $t2, $t0 +/* 113428 7F0DE8F8 10000027 */ b .L7F0DE998 +/* 11342C 7F0DE8FC A12F0001 */ sb $t7, 1($t1) +.L7F0DE900: +/* 113430 7F0DE900 2B015800 */ slti $at, $t8, 0x5800 +/* 113434 7F0DE904 1420000F */ bnez $at, .L7F0DE944 +/* 113438 7F0DE908 97AC0292 */ lhu $t4, 0x292($sp) +/* 11343C 7F0DE90C 97AC0298 */ lhu $t4, 0x298($sp) +/* 113440 7F0DE910 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 113444 7F0DE914 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 113448 7F0DE918 25990002 */ addiu $t9, $t4, 2 +/* 11344C 7F0DE91C 00195A03 */ sra $t3, $t9, 8 +/* 113450 7F0DE920 01CD5021 */ addu $t2, $t6, $t5 +/* 113454 7F0DE924 A14B0001 */ sb $t3, 1($t2) +/* 113458 7F0DE928 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 11345C 7F0DE92C 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 113460 7F0DE930 97A90292 */ lhu $t1, 0x292($sp) +/* 113464 7F0DE934 24080001 */ li $t0, 1 +/* 113468 7F0DE938 01E9C021 */ addu $t8, $t7, $t1 +/* 11346C 7F0DE93C 10000016 */ b .L7F0DE998 +/* 113470 7F0DE940 A308A801 */ sb $t0, -0x57ff($t8) +.L7F0DE944: +/* 113474 7F0DE944 25990001 */ addiu $t9, $t4, 1 +/* 113478 7F0DE948 2B214000 */ slti $at, $t9, 0x4000 +/* 11347C 7F0DE94C 14200012 */ bnez $at, .L7F0DE998 +/* 113480 7F0DE950 97AE0298 */ lhu $t6, 0x298($sp) +/* 113484 7F0DE954 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 113488 7F0DE958 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 11348C 7F0DE95C 25CD0002 */ addiu $t5, $t6, 2 +/* 113490 7F0DE960 000D5A03 */ sra $t3, $t5, 8 +/* 113494 7F0DE964 014C7821 */ addu $t7, $t2, $t4 +/* 113498 7F0DE968 A1EB0001 */ sb $t3, 1($t7) +/* 11349C 7F0DE96C 97A80292 */ lhu $t0, 0x292($sp) +/* 1134A0 7F0DE970 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 1134A4 7F0DE974 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 1134A8 7F0DE978 25180001 */ addiu $t8, $t0, 1 +/* 1134AC 7F0DE97C 33191800 */ andi $t9, $t8, 0x1800 +/* 1134B0 7F0DE980 001970C3 */ sra $t6, $t9, 3 +/* 1134B4 7F0DE984 330D00FF */ andi $t5, $t8, 0xff +/* 1134B8 7F0DE988 01CD5025 */ or $t2, $t6, $t5 +/* 1134BC 7F0DE98C 24090001 */ li $t1, 1 +/* 1134C0 7F0DE990 018A5821 */ addu $t3, $t4, $t2 +/* 1134C4 7F0DE994 A1690000 */ sb $t1, ($t3) +.L7F0DE998: +/* 1134C8 7F0DE998 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1134CC 7F0DE99C 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1134D0 7F0DE9A0 97AF0298 */ lhu $t7, 0x298($sp) +/* 1134D4 7F0DE9A4 010F7021 */ addu $t6, $t0, $t7 +/* 1134D8 7F0DE9A8 91CD0001 */ lbu $t5, 1($t6) +/* 1134DC 7F0DE9AC 01E8C821 */ addu $t9, $t7, $t0 +/* 1134E0 7F0DE9B0 93380000 */ lbu $t8, ($t9) +/* 1134E4 7F0DE9B4 000D6200 */ sll $t4, $t5, 8 +/* 1134E8 7F0DE9B8 030C5025 */ or $t2, $t8, $t4 +/* 1134EC 7F0DE9BC 10000F8F */ b .L7F0E27FC +/* 1134F0 7F0DE9C0 A7AA0298 */ sh $t2, 0x298($sp) +.L7F0DE9C4: +/* 1134F4 7F0DE9C4 97A90298 */ lhu $t1, 0x298($sp) +/* 1134F8 7F0DE9C8 252B0002 */ addiu $t3, $t1, 2 +/* 1134FC 7F0DE9CC 10000F8B */ b .L7F0E27FC +/* 113500 7F0DE9D0 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_ED: +/* 113504 7F0DE9D4 8FB9028C */ lw $t9, 0x28c($sp) +/* 113508 7F0DE9D8 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 11350C 7F0DE9DC 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 113510 7F0DE9E0 97AF0298 */ lhu $t7, 0x298($sp) +/* 113514 7F0DE9E4 27280004 */ addiu $t0, $t9, 4 +/* 113518 7F0DE9E8 AFA8028C */ sw $t0, 0x28c($sp) +/* 11351C 7F0DE9EC 01EE6821 */ addu $t5, $t7, $t6 +/* 113520 7F0DE9F0 91B80000 */ lbu $t8, ($t5) +/* 113524 7F0DE9F4 8FAA0288 */ lw $t2, 0x288($sp) +/* 113528 7F0DE9F8 25EC0001 */ addiu $t4, $t7, 1 +/* 11352C 7F0DE9FC 330B00FF */ andi $t3, $t8, 0xff +/* 113530 7F0DEA00 2961007F */ slti $at, $t3, 0x7f +/* 113534 7F0DEA04 25490001 */ addiu $t1, $t2, 1 +/* 113538 7F0DEA08 A7AC0298 */ sh $t4, 0x298($sp) +/* 11353C 7F0DEA0C AFA90288 */ sw $t1, 0x288($sp) +/* 113540 7F0DEA10 AFAB0048 */ sw $t3, 0x48($sp) +/* 113544 7F0DEA14 1420000A */ bnez $at, .L7F0DEA40 +/* 113548 7F0DEA18 A3B800E3 */ sb $t8, 0xe3($sp) +/* 11354C 7F0DEA1C 2579FF60 */ addiu $t9, $t3, -0xa0 +/* 113550 7F0DEA20 2F21001C */ sltiu $at, $t9, 0x1c +/* 113554 7F0DEA24 10200C11 */ beqz $at, .L7F0E1A6C +/* 113558 7F0DEA28 0019C880 */ sll $t9, $t9, 2 +/* 11355C 7F0DEA2C 3C018006 */ lui $at, %hi(jpt_8005C6AC) +/* 113560 7F0DEA30 00390821 */ addu $at, $at, $t9 +/* 113564 7F0DEA34 8C39C6AC */ lw $t9, %lo(jpt_8005C6AC)($at) +/* 113568 7F0DEA38 03200008 */ jr $t9 +/* 11356C 7F0DEA3C 00000000 */ nop +.L7F0DEA40: +/* 113570 7F0DEA40 8FA80048 */ lw $t0, 0x48($sp) +/* 113574 7F0DEA44 250EFFC0 */ addiu $t6, $t0, -0x40 +/* 113578 7F0DEA48 2DC1003F */ sltiu $at, $t6, 0x3f +/* 11357C 7F0DEA4C 10200C07 */ beqz $at, .L7F0E1A6C +/* 113580 7F0DEA50 000E7080 */ sll $t6, $t6, 2 +/* 113584 7F0DEA54 3C018006 */ lui $at, %hi(jpt_8005C71C) +/* 113588 7F0DEA58 002E0821 */ addu $at, $at, $t6 +/* 11358C 7F0DEA5C 8C2EC71C */ lw $t6, %lo(jpt_8005C71C)($at) +/* 113590 7F0DEA60 01C00008 */ jr $t6 +/* 113594 7F0DEA64 00000000 */ nop +spectrum_op_ED_40: +/* 113598 7F0DEA68 8FAD028C */ lw $t5, 0x28c($sp) +/* 11359C 7F0DEA6C 02402825 */ move $a1, $s2 +/* 1135A0 7F0DEA70 02603025 */ move $a2, $s3 +/* 1135A4 7F0DEA74 25A40008 */ addiu $a0, $t5, 8 +/* 1135A8 7F0DEA78 0FC34DB6 */ jal spectrum_input_handling +/* 1135AC 7F0DEA7C AFA4028C */ sw $a0, 0x28c($sp) +/* 1135B0 7F0DEA80 8FAF028C */ lw $t7, 0x28c($sp) +/* 1135B4 7F0DEA84 304CFFFF */ andi $t4, $v0, 0xffff +/* 1135B8 7F0DEA88 000C5203 */ sra $t2, $t4, 8 +/* 1135BC 7F0DEA8C A7A200E0 */ sh $v0, 0xe0($sp) +/* 1135C0 7F0DEA90 01EA4821 */ addu $t1, $t7, $t2 +/* 1135C4 7F0DEA94 93B200E1 */ lbu $s2, 0xe1($sp) +/* 1135C8 7F0DEA98 3C0F8009 */ lui $t7, %hi(ptr_pc_keyboard_table_alloc) +/* 1135CC 7F0DEA9C 8DEFE334 */ lw $t7, %lo(ptr_pc_keyboard_table_alloc)($t7) +/* 1135D0 7F0DEAA0 2E4B0001 */ sltiu $t3, $s2, 1 +/* 1135D4 7F0DEAA4 AFAB0048 */ sw $t3, 0x48($sp) +/* 1135D8 7F0DEAA8 AFA9028C */ sw $t1, 0x28c($sp) +/* 1135DC 7F0DEAAC 024F5021 */ addu $t2, $s2, $t7 +/* 1135E0 7F0DEAB0 91490000 */ lbu $t1, ($t2) +/* 1135E4 7F0DEAB4 32390001 */ andi $t9, $s1, 1 +/* 1135E8 7F0DEAB8 324800A8 */ andi $t0, $s2, 0xa8 +/* 1135EC 7F0DEABC 03287025 */ or $t6, $t9, $t0 +/* 1135F0 7F0DEAC0 000BC180 */ sll $t8, $t3, 6 +/* 1135F4 7F0DEAC4 01D86025 */ or $t4, $t6, $t8 +/* 1135F8 7F0DEAC8 012C8825 */ or $s1, $t1, $t4 +/* 1135FC 7F0DEACC 322B00FF */ andi $t3, $s1, 0xff +/* 113600 7F0DEAD0 10000F4A */ b .L7F0E27FC +/* 113604 7F0DEAD4 01608825 */ move $s1, $t3 +spectrum_op_ED_41: +/* 113608 7F0DEAD8 8FB9028C */ lw $t9, 0x28c($sp) +/* 11360C 7F0DEADC 02402825 */ move $a1, $s2 +/* 113610 7F0DEAE0 02603025 */ move $a2, $s3 +/* 113614 7F0DEAE4 27240008 */ addiu $a0, $t9, 8 +/* 113618 7F0DEAE8 AFA4028C */ sw $a0, 0x28c($sp) +/* 11361C 7F0DEAEC 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 113620 7F0DEAF0 02403825 */ move $a3, $s2 +/* 113624 7F0DEAF4 8FAD028C */ lw $t5, 0x28c($sp) +/* 113628 7F0DEAF8 AFA20048 */ sw $v0, 0x48($sp) +/* 11362C 7F0DEAFC 01A2C021 */ addu $t8, $t5, $v0 +/* 113630 7F0DEB00 10000F3E */ b .L7F0E27FC +/* 113634 7F0DEB04 AFB8028C */ sw $t8, 0x28c($sp) +spectrum_op_ED_42: +/* 113638 7F0DEB08 00124A00 */ sll $t1, $s2, 8 +/* 11363C 7F0DEB0C 8FAF028C */ lw $t7, 0x28c($sp) +/* 113640 7F0DEB10 01336025 */ or $t4, $t1, $s3 +/* 113644 7F0DEB14 00165A00 */ sll $t3, $s6, 8 +/* 113648 7F0DEB18 0177C825 */ or $t9, $t3, $s7 +/* 11364C 7F0DEB1C 3188FFFF */ andi $t0, $t4, 0xffff +/* 113650 7F0DEB20 03286823 */ subu $t5, $t9, $t0 +/* 113654 7F0DEB24 322E0001 */ andi $t6, $s1, 1 +/* 113658 7F0DEB28 3C010001 */ lui $at, (0x0001FFFF >> 16) # lui $at, 1 +/* 11365C 7F0DEB2C 3421FFFF */ ori $at, (0x0001FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 113660 7F0DEB30 01AEC023 */ subu $t8, $t5, $t6 +/* 113664 7F0DEB34 25EA000B */ addiu $t2, $t7, 0xb +/* 113668 7F0DEB38 03017824 */ and $t7, $t8, $at +/* 11366C 7F0DEB3C 000F5A02 */ srl $t3, $t7, 8 +/* 113670 7F0DEB40 317900A8 */ andi $t9, $t3, 0xa8 +/* 113674 7F0DEB44 000F4402 */ srl $t0, $t7, 0x10 +/* 113678 7F0DEB48 AFAA028C */ sw $t2, 0x28c($sp) +/* 11367C 7F0DEB4C 03286825 */ or $t5, $t9, $t0 +/* 113680 7F0DEB50 31EAFFFF */ andi $t2, $t7, 0xffff +/* 113684 7F0DEB54 2D490001 */ sltiu $t1, $t2, 1 +/* 113688 7F0DEB58 35AE0002 */ ori $t6, $t5, 2 +/* 11368C 7F0DEB5C 00164200 */ sll $t0, $s6, 8 +/* 113690 7F0DEB60 01176825 */ or $t5, $t0, $s7 +/* 113694 7F0DEB64 318A0FFF */ andi $t2, $t4, 0xfff +/* 113698 7F0DEB68 322B0001 */ andi $t3, $s1, 1 +/* 11369C 7F0DEB6C 014BC821 */ addu $t9, $t2, $t3 +/* 1136A0 7F0DEB70 31B80FFF */ andi $t8, $t5, 0xfff +/* 1136A4 7F0DEB74 0319502A */ slt $t2, $t8, $t9 +/* 1136A8 7F0DEB78 000A5900 */ sll $t3, $t2, 4 +/* 1136AC 7F0DEB7C 01CB4025 */ or $t0, $t6, $t3 +/* 1136B0 7F0DEB80 00166A00 */ sll $t5, $s6, 8 +/* 1136B4 7F0DEB84 01B7C025 */ or $t8, $t5, $s7 +/* 1136B8 7F0DEB88 00165200 */ sll $t2, $s6, 8 +/* 1136BC 7F0DEB8C 01577025 */ or $t6, $t2, $s7 +/* 1136C0 7F0DEB90 01805825 */ move $t3, $t4 +/* 1136C4 7F0DEB94 01CB6826 */ xor $t5, $t6, $t3 +/* 1136C8 7F0DEB98 030FC826 */ xor $t9, $t8, $t7 +/* 1136CC 7F0DEB9C 01B9C024 */ and $t8, $t5, $t9 +/* 1136D0 7F0DEBA0 330A8000 */ andi $t2, $t8, 0x8000 +/* 1136D4 7F0DEBA4 A7AC00DE */ sh $t4, 0xde($sp) +/* 1136D8 7F0DEBA8 000A6342 */ srl $t4, $t2, 0xd +/* 1136DC 7F0DEBAC 010C7025 */ or $t6, $t0, $t4 +/* 1136E0 7F0DEBB0 00095980 */ sll $t3, $t1, 6 +/* 1136E4 7F0DEBB4 01CB8825 */ or $s1, $t6, $t3 +/* 1136E8 7F0DEBB8 000FB202 */ srl $s6, $t7, 8 +/* 1136EC 7F0DEBBC 32D800FF */ andi $t8, $s6, 0xff +/* 1136F0 7F0DEBC0 362D0002 */ ori $t5, $s1, 2 +/* 1136F4 7F0DEBC4 AFAF00D8 */ sw $t7, 0xd8($sp) +/* 1136F8 7F0DEBC8 93B700DB */ lbu $s7, 0xdb($sp) +/* 1136FC 7F0DEBCC 31B100FF */ andi $s1, $t5, 0xff +/* 113700 7F0DEBD0 0300B025 */ move $s6, $t8 +/* 113704 7F0DEBD4 10000F09 */ b .L7F0E27FC +/* 113708 7F0DEBD8 AFA90048 */ sw $t1, 0x48($sp) +spectrum_op_ED_43: +/* 11370C 7F0DEBDC 8FAA028C */ lw $t2, 0x28c($sp) +/* 113710 7F0DEBE0 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 113714 7F0DEBE4 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 113718 7F0DEBE8 97AC0298 */ lhu $t4, 0x298($sp) +/* 11371C 7F0DEBEC 25480010 */ addiu $t0, $t2, 0x10 +/* 113720 7F0DEBF0 AFA8028C */ sw $t0, 0x28c($sp) +/* 113724 7F0DEBF4 012C6821 */ addu $t5, $t1, $t4 +/* 113728 7F0DEBF8 91B90001 */ lbu $t9, 1($t5) +/* 11372C 7F0DEBFC 01897021 */ addu $t6, $t4, $t1 +/* 113730 7F0DEC00 91CB0000 */ lbu $t3, ($t6) +/* 113734 7F0DEC04 00197A00 */ sll $t7, $t9, 8 +/* 113738 7F0DEC08 258A0002 */ addiu $t2, $t4, 2 +/* 11373C 7F0DEC0C 016FC025 */ or $t8, $t3, $t7 +/* 113740 7F0DEC10 3308FFFF */ andi $t0, $t8, 0xffff +/* 113744 7F0DEC14 29015B00 */ slti $at, $t0, 0x5b00 +/* 113748 7F0DEC18 A7B800D6 */ sh $t8, 0xd6($sp) +/* 11374C 7F0DEC1C 14200006 */ bnez $at, .L7F0DEC38 +/* 113750 7F0DEC20 A7AA0298 */ sh $t2, 0x298($sp) +/* 113754 7F0DEC24 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 113758 7F0DEC28 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 11375C 7F0DEC2C 01C84821 */ addu $t1, $t6, $t0 +/* 113760 7F0DEC30 10000021 */ b .L7F0DECB8 +/* 113764 7F0DEC34 A1330000 */ sb $s3, ($t1) +.L7F0DEC38: +/* 113768 7F0DEC38 97AD00D6 */ lhu $t5, 0xd6($sp) +/* 11376C 7F0DEC3C 97AE00D6 */ lhu $t6, 0xd6($sp) +/* 113770 7F0DEC40 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 113774 7F0DEC44 29A15800 */ slti $at, $t5, 0x5800 +/* 113778 7F0DEC48 5420000C */ bnezl $at, .L7F0DEC7C +/* 11377C 7F0DEC4C 29C14000 */ slti $at, $t6, 0x4000 +/* 113780 7F0DEC50 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 113784 7F0DEC54 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 113788 7F0DEC58 240F0001 */ li $t7, 1 +/* 11378C 7F0DEC5C 032D5821 */ addu $t3, $t9, $t5 +/* 113790 7F0DEC60 A1730000 */ sb $s3, ($t3) +/* 113794 7F0DEC64 97AC00D6 */ lhu $t4, 0xd6($sp) +/* 113798 7F0DEC68 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 11379C 7F0DEC6C 030C5021 */ addu $t2, $t8, $t4 +/* 1137A0 7F0DEC70 10000011 */ b .L7F0DECB8 +/* 1137A4 7F0DEC74 A14FA800 */ sb $t7, -0x5800($t2) +/* 1137A8 7F0DEC78 29C14000 */ slti $at, $t6, 0x4000 +.L7F0DEC7C: +/* 1137AC 7F0DEC7C 1420000E */ bnez $at, .L7F0DECB8 +/* 1137B0 7F0DEC80 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1137B4 7F0DEC84 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1137B8 7F0DEC88 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 1137BC 7F0DEC8C 24190001 */ li $t9, 1 +/* 1137C0 7F0DEC90 010E4821 */ addu $t1, $t0, $t6 +/* 1137C4 7F0DEC94 A1330000 */ sb $s3, ($t1) +/* 1137C8 7F0DEC98 97AD00D6 */ lhu $t5, 0xd6($sp) +/* 1137CC 7F0DEC9C 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 1137D0 7F0DECA0 31AB1800 */ andi $t3, $t5, 0x1800 +/* 1137D4 7F0DECA4 000BC0C3 */ sra $t8, $t3, 3 +/* 1137D8 7F0DECA8 31AC00FF */ andi $t4, $t5, 0xff +/* 1137DC 7F0DECAC 030C7825 */ or $t7, $t8, $t4 +/* 1137E0 7F0DECB0 014F4021 */ addu $t0, $t2, $t7 +/* 1137E4 7F0DECB4 A1190000 */ sb $t9, ($t0) +.L7F0DECB8: +/* 1137E8 7F0DECB8 97AE00D6 */ lhu $t6, 0xd6($sp) +/* 1137EC 7F0DECBC 97B800D6 */ lhu $t8, 0xd6($sp) +/* 1137F0 7F0DECC0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1137F4 7F0DECC4 25C90001 */ addiu $t1, $t6, 1 +/* 1137F8 7F0DECC8 29215B00 */ slti $at, $t1, 0x5b00 +/* 1137FC 7F0DECCC 14200005 */ bnez $at, .L7F0DECE4 +/* 113800 7F0DECD0 270C0001 */ addiu $t4, $t8, 1 +/* 113804 7F0DECD4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 113808 7F0DECD8 016E6821 */ addu $t5, $t3, $t6 +/* 11380C 7F0DECDC 10000EC7 */ b .L7F0E27FC +/* 113810 7F0DECE0 A1B20001 */ sb $s2, 1($t5) +.L7F0DECE4: +/* 113814 7F0DECE4 29815800 */ slti $at, $t4, 0x5800 +/* 113818 7F0DECE8 1420000C */ bnez $at, .L7F0DED1C +/* 11381C 7F0DECEC 97AE00D6 */ lhu $t6, 0xd6($sp) +/* 113820 7F0DECF0 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 113824 7F0DECF4 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 113828 7F0DECF8 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 11382C 7F0DECFC 24190001 */ li $t9, 1 +/* 113830 7F0DED00 01587821 */ addu $t7, $t2, $t8 +/* 113834 7F0DED04 A1F20001 */ sb $s2, 1($t7) +/* 113838 7F0DED08 97A900D6 */ lhu $t1, 0xd6($sp) +/* 11383C 7F0DED0C 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 113840 7F0DED10 01095821 */ addu $t3, $t0, $t1 +/* 113844 7F0DED14 10000EB9 */ b .L7F0E27FC +/* 113848 7F0DED18 A179A801 */ sb $t9, -0x57ff($t3) +.L7F0DED1C: +/* 11384C 7F0DED1C 25CD0001 */ addiu $t5, $t6, 1 +/* 113850 7F0DED20 29A14000 */ slti $at, $t5, 0x4000 +/* 113854 7F0DED24 14200EB5 */ bnez $at, .L7F0E27FC +/* 113858 7F0DED28 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 11385C 7F0DED2C 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 113860 7F0DED30 24180001 */ li $t8, 1 +/* 113864 7F0DED34 018E5021 */ addu $t2, $t4, $t6 +/* 113868 7F0DED38 A1520001 */ sb $s2, 1($t2) +/* 11386C 7F0DED3C 97AF00D6 */ lhu $t7, 0xd6($sp) +/* 113870 7F0DED40 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 113874 7F0DED44 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 113878 7F0DED48 25E80001 */ addiu $t0, $t7, 1 +/* 11387C 7F0DED4C 31091800 */ andi $t1, $t0, 0x1800 +/* 113880 7F0DED50 0009C8C3 */ sra $t9, $t1, 3 +/* 113884 7F0DED54 310B00FF */ andi $t3, $t0, 0xff +/* 113888 7F0DED58 032B6825 */ or $t5, $t9, $t3 +/* 11388C 7F0DED5C 018D7021 */ addu $t6, $t4, $t5 +/* 113890 7F0DED60 10000EA6 */ b .L7F0E27FC +/* 113894 7F0DED64 A1D80000 */ sb $t8, ($t6) +spectrum_op_ED_44: +/* 113898 7F0DED68 00108023 */ negu $s0, $s0 +/* 11389C 7F0DED6C 320900FF */ andi $t1, $s0, 0xff +/* 1138A0 7F0DED70 8FAA028C */ lw $t2, 0x28c($sp) +/* 1138A4 7F0DED74 2D280001 */ sltiu $t0, $t1, 1 +/* 1138A8 7F0DED78 3138000F */ andi $t8, $t1, 0xf +/* 1138AC 7F0DED7C 01208025 */ move $s0, $t1 +/* 1138B0 7F0DED80 313900A8 */ andi $t9, $t1, 0xa8 +/* 1138B4 7F0DED84 254F0004 */ addiu $t7, $t2, 4 +/* 1138B8 7F0DED88 39290080 */ xori $t1, $t1, 0x80 +/* 1138BC 7F0DED8C 0018702A */ slt $t6, $zero, $t8 +/* 1138C0 7F0DED90 00086180 */ sll $t4, $t0, 6 +/* 1138C4 7F0DED94 AFAF028C */ sw $t7, 0x28c($sp) +/* 1138C8 7F0DED98 032C6825 */ or $t5, $t9, $t4 +/* 1138CC 7F0DED9C 000E5100 */ sll $t2, $t6, 4 +/* 1138D0 7F0DEDA0 2D290001 */ sltiu $t1, $t1, 1 +/* 1138D4 7F0DEDA4 AFA80048 */ sw $t0, 0x48($sp) +/* 1138D8 7F0DEDA8 00094080 */ sll $t0, $t1, 2 +/* 1138DC 7F0DEDAC 01AA7825 */ or $t7, $t5, $t2 +/* 1138E0 7F0DEDB0 01E85825 */ or $t3, $t7, $t0 +/* 1138E4 7F0DEDB4 35790002 */ ori $t9, $t3, 2 +/* 1138E8 7F0DEDB8 0010602A */ slt $t4, $zero, $s0 +/* 1138EC 7F0DEDBC 032C8825 */ or $s1, $t9, $t4 +/* 1138F0 7F0DEDC0 323800FF */ andi $t8, $s1, 0xff +/* 1138F4 7F0DEDC4 10000E8D */ b .L7F0E27FC +/* 1138F8 7F0DEDC8 03008825 */ move $s1, $t8 +spectrum_op_ED_45: +/* 1138FC 7F0DEDCC 8FAE028C */ lw $t6, 0x28c($sp) +/* 113900 7F0DEDD0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 113904 7F0DEDD4 93AA029C */ lbu $t2, 0x29c($sp) +/* 113908 7F0DEDD8 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 11390C 7F0DEDDC 97A80292 */ lhu $t0, 0x292($sp) +/* 113910 7F0DEDE0 25CD0004 */ addiu $t5, $t6, 4 +/* 113914 7F0DEDE4 AFAD028C */ sw $t5, 0x28c($sp) +/* 113918 7F0DEDE8 25AF0006 */ addiu $t7, $t5, 6 +/* 11391C 7F0DEDEC AFAF028C */ sw $t7, 0x28c($sp) +/* 113920 7F0DEDF0 A3AA029D */ sb $t2, 0x29d($sp) +/* 113924 7F0DEDF4 0168C021 */ addu $t8, $t3, $t0 +/* 113928 7F0DEDF8 930E0001 */ lbu $t6, 1($t8) +/* 11392C 7F0DEDFC 010BC821 */ addu $t9, $t0, $t3 +/* 113930 7F0DEE00 932C0000 */ lbu $t4, ($t9) +/* 113934 7F0DEE04 000E6A00 */ sll $t5, $t6, 8 +/* 113938 7F0DEE08 25090002 */ addiu $t1, $t0, 2 +/* 11393C 7F0DEE0C 018D5025 */ or $t2, $t4, $t5 +/* 113940 7F0DEE10 A7AA0298 */ sh $t2, 0x298($sp) +/* 113944 7F0DEE14 10000E79 */ b .L7F0E27FC +/* 113948 7F0DEE18 A7A90292 */ sh $t1, 0x292($sp) +spectrum_op_ED_46: +/* 11394C 7F0DEE1C 8FAF028C */ lw $t7, 0x28c($sp) +/* 113950 7F0DEE20 A3A0029B */ sb $zero, 0x29b($sp) +/* 113954 7F0DEE24 25F90004 */ addiu $t9, $t7, 4 +/* 113958 7F0DEE28 10000E74 */ b .L7F0E27FC +/* 11395C 7F0DEE2C AFB9028C */ sw $t9, 0x28c($sp) +spectrum_op_ED_47: +/* 113960 7F0DEE30 8FAB028C */ lw $t3, 0x28c($sp) +/* 113964 7F0DEE34 A3B0029E */ sb $s0, 0x29e($sp) +/* 113968 7F0DEE38 25780005 */ addiu $t8, $t3, 5 +/* 11396C 7F0DEE3C 10000E6F */ b .L7F0E27FC +/* 113970 7F0DEE40 AFB8028C */ sw $t8, 0x28c($sp) +spectrum_op_ED_48: +/* 113974 7F0DEE44 8FAE028C */ lw $t6, 0x28c($sp) +/* 113978 7F0DEE48 02402825 */ move $a1, $s2 +/* 11397C 7F0DEE4C 02603025 */ move $a2, $s3 +/* 113980 7F0DEE50 25C40008 */ addiu $a0, $t6, 8 +/* 113984 7F0DEE54 0FC34DB6 */ jal spectrum_input_handling +/* 113988 7F0DEE58 AFA4028C */ sw $a0, 0x28c($sp) +/* 11398C 7F0DEE5C 8FAD028C */ lw $t5, 0x28c($sp) +/* 113990 7F0DEE60 304AFFFF */ andi $t2, $v0, 0xffff +/* 113994 7F0DEE64 000A4203 */ sra $t0, $t2, 8 +/* 113998 7F0DEE68 A7A200D4 */ sh $v0, 0xd4($sp) +/* 11399C 7F0DEE6C 01A84821 */ addu $t1, $t5, $t0 +/* 1139A0 7F0DEE70 93B300D5 */ lbu $s3, 0xd5($sp) +/* 1139A4 7F0DEE74 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 1139A8 7F0DEE78 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 1139AC 7F0DEE7C 2E6F0001 */ sltiu $t7, $s3, 1 +/* 1139B0 7F0DEE80 AFAF0048 */ sw $t7, 0x48($sp) +/* 1139B4 7F0DEE84 AFA9028C */ sw $t1, 0x28c($sp) +/* 1139B8 7F0DEE88 026D4021 */ addu $t0, $s3, $t5 +/* 1139BC 7F0DEE8C 91090000 */ lbu $t1, ($t0) +/* 1139C0 7F0DEE90 32390001 */ andi $t9, $s1, 1 +/* 1139C4 7F0DEE94 326B00A8 */ andi $t3, $s3, 0xa8 +/* 1139C8 7F0DEE98 032BC025 */ or $t8, $t9, $t3 +/* 1139CC 7F0DEE9C 000F6180 */ sll $t4, $t7, 6 +/* 1139D0 7F0DEEA0 030C5025 */ or $t2, $t8, $t4 +/* 1139D4 7F0DEEA4 012A8825 */ or $s1, $t1, $t2 +/* 1139D8 7F0DEEA8 322F00FF */ andi $t7, $s1, 0xff +/* 1139DC 7F0DEEAC 10000E53 */ b .L7F0E27FC +/* 1139E0 7F0DEEB0 01E08825 */ move $s1, $t7 +spectrum_op_ED_49: +/* 1139E4 7F0DEEB4 8FB9028C */ lw $t9, 0x28c($sp) +/* 1139E8 7F0DEEB8 02402825 */ move $a1, $s2 +/* 1139EC 7F0DEEBC 02603025 */ move $a2, $s3 +/* 1139F0 7F0DEEC0 27240008 */ addiu $a0, $t9, 8 +/* 1139F4 7F0DEEC4 AFA4028C */ sw $a0, 0x28c($sp) +/* 1139F8 7F0DEEC8 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 1139FC 7F0DEECC 02603825 */ move $a3, $s3 +/* 113A00 7F0DEED0 8FAE028C */ lw $t6, 0x28c($sp) +/* 113A04 7F0DEED4 AFA20048 */ sw $v0, 0x48($sp) +/* 113A08 7F0DEED8 01C26021 */ addu $t4, $t6, $v0 +/* 113A0C 7F0DEEDC 10000E47 */ b .L7F0E27FC +/* 113A10 7F0DEEE0 AFAC028C */ sw $t4, 0x28c($sp) +spectrum_op_ED_4A: +/* 113A14 7F0DEEE4 00124A00 */ sll $t1, $s2, 8 +/* 113A18 7F0DEEE8 01335025 */ or $t2, $t1, $s3 +/* 113A1C 7F0DEEEC 00167A00 */ sll $t7, $s6, 8 +/* 113A20 7F0DEEF0 01F7C825 */ or $t9, $t7, $s7 +/* 113A24 7F0DEEF4 314BFFFF */ andi $t3, $t2, 0xffff +/* 113A28 7F0DEEF8 8FAD028C */ lw $t5, 0x28c($sp) +/* 113A2C 7F0DEEFC 032B7021 */ addu $t6, $t9, $t3 +/* 113A30 7F0DEF00 32380001 */ andi $t8, $s1, 1 +/* 113A34 7F0DEF04 01D86021 */ addu $t4, $t6, $t8 +/* 113A38 7F0DEF08 25A8000B */ addiu $t0, $t5, 0xb +/* 113A3C 7F0DEF0C 000C4A02 */ srl $t1, $t4, 8 +/* 113A40 7F0DEF10 AFA8028C */ sw $t0, 0x28c($sp) +/* 113A44 7F0DEF14 312F00A8 */ andi $t7, $t1, 0xa8 +/* 113A48 7F0DEF18 318DFFFF */ andi $t5, $t4, 0xffff +/* 113A4C 7F0DEF1C 000CCC02 */ srl $t9, $t4, 0x10 +/* 113A50 7F0DEF20 00167200 */ sll $t6, $s6, 8 +/* 113A54 7F0DEF24 01D7C025 */ or $t8, $t6, $s7 +/* 113A58 7F0DEF28 01F95825 */ or $t3, $t7, $t9 +/* 113A5C 7F0DEF2C 2DA80001 */ sltiu $t0, $t5, 1 +/* 113A60 7F0DEF30 330D0FFF */ andi $t5, $t8, 0xfff +/* 113A64 7F0DEF34 314F0FFF */ andi $t7, $t2, 0xfff +/* 113A68 7F0DEF38 01AFC821 */ addu $t9, $t5, $t7 +/* 113A6C 7F0DEF3C 322E0001 */ andi $t6, $s1, 1 +/* 113A70 7F0DEF40 032EC021 */ addu $t8, $t9, $t6 +/* 113A74 7F0DEF44 24010FFF */ li $at, 4095 +/* 113A78 7F0DEF48 0038482A */ slt $t1, $at, $t8 +/* 113A7C 7F0DEF4C 00096900 */ sll $t5, $t1, 4 +/* 113A80 7F0DEF50 016D7825 */ or $t7, $t3, $t5 +/* 113A84 7F0DEF54 0016CA00 */ sll $t9, $s6, 8 +/* 113A88 7F0DEF58 03377025 */ or $t6, $t9, $s7 +/* 113A8C 7F0DEF5C 00164A00 */ sll $t1, $s6, 8 +/* 113A90 7F0DEF60 01375827 */ nor $t3, $t1, $s7 +/* 113A94 7F0DEF64 01406825 */ move $t5, $t2 +/* 113A98 7F0DEF68 016DC826 */ xor $t9, $t3, $t5 +/* 113A9C 7F0DEF6C 01CCC026 */ xor $t8, $t6, $t4 +/* 113AA0 7F0DEF70 03387024 */ and $t6, $t9, $t8 +/* 113AA4 7F0DEF74 31C98000 */ andi $t1, $t6, 0x8000 +/* 113AA8 7F0DEF78 A7AA00D2 */ sh $t2, 0xd2($sp) +/* 113AAC 7F0DEF7C 00095342 */ srl $t2, $t1, 0xd +/* 113AB0 7F0DEF80 01EA5825 */ or $t3, $t7, $t2 +/* 113AB4 7F0DEF84 00086980 */ sll $t5, $t0, 6 +/* 113AB8 7F0DEF88 016D8825 */ or $s1, $t3, $t5 +/* 113ABC 7F0DEF8C 000CB202 */ srl $s6, $t4, 8 +/* 113AC0 7F0DEF90 32CE00FF */ andi $t6, $s6, 0xff +/* 113AC4 7F0DEF94 36390002 */ ori $t9, $s1, 2 +/* 113AC8 7F0DEF98 AFAC00CC */ sw $t4, 0xcc($sp) +/* 113ACC 7F0DEF9C 93B700CF */ lbu $s7, 0xcf($sp) +/* 113AD0 7F0DEFA0 333100FF */ andi $s1, $t9, 0xff +/* 113AD4 7F0DEFA4 01C0B025 */ move $s6, $t6 +/* 113AD8 7F0DEFA8 10000E14 */ b .L7F0E27FC +/* 113ADC 7F0DEFAC AFA80048 */ sw $t0, 0x48($sp) +spectrum_op_ED_4B: +/* 113AE0 7F0DEFB0 8FA9028C */ lw $t1, 0x28c($sp) +/* 113AE4 7F0DEFB4 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 113AE8 7F0DEFB8 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 113AEC 7F0DEFBC 97AA0298 */ lhu $t2, 0x298($sp) +/* 113AF0 7F0DEFC0 252F0010 */ addiu $t7, $t1, 0x10 +/* 113AF4 7F0DEFC4 AFAF028C */ sw $t7, 0x28c($sp) +/* 113AF8 7F0DEFC8 010AC821 */ addu $t9, $t0, $t2 +/* 113AFC 7F0DEFCC 93380001 */ lbu $t8, 1($t9) +/* 113B00 7F0DEFD0 01485821 */ addu $t3, $t2, $t0 +/* 113B04 7F0DEFD4 916D0000 */ lbu $t5, ($t3) +/* 113B08 7F0DEFD8 00186200 */ sll $t4, $t8, 8 +/* 113B0C 7F0DEFDC 25490002 */ addiu $t1, $t2, 2 +/* 113B10 7F0DEFE0 01AC7025 */ or $t6, $t5, $t4 +/* 113B14 7F0DEFE4 31CFFFFF */ andi $t7, $t6, 0xffff +/* 113B18 7F0DEFE8 A7AE00CA */ sh $t6, 0xca($sp) +/* 113B1C 7F0DEFEC A7A90298 */ sh $t1, 0x298($sp) +/* 113B20 7F0DEFF0 01E85821 */ addu $t3, $t7, $t0 +/* 113B24 7F0DEFF4 91730000 */ lbu $s3, ($t3) +/* 113B28 7F0DEFF8 10000E00 */ b .L7F0E27FC +/* 113B2C 7F0DEFFC 91720001 */ lbu $s2, 1($t3) +spectrum_op_ED_4C: +/* 113B30 7F0DF000 00108023 */ negu $s0, $s0 +/* 113B34 7F0DF004 320D00FF */ andi $t5, $s0, 0xff +/* 113B38 7F0DF008 8FB9028C */ lw $t9, 0x28c($sp) +/* 113B3C 7F0DF00C 2DAC0001 */ sltiu $t4, $t5, 1 +/* 113B40 7F0DF010 31A8000F */ andi $t0, $t5, 0xf +/* 113B44 7F0DF014 01A08025 */ move $s0, $t5 +/* 113B48 7F0DF018 31AE00A8 */ andi $t6, $t5, 0xa8 +/* 113B4C 7F0DF01C 27380004 */ addiu $t8, $t9, 4 +/* 113B50 7F0DF020 39AD0080 */ xori $t5, $t5, 0x80 +/* 113B54 7F0DF024 0008582A */ slt $t3, $zero, $t0 +/* 113B58 7F0DF028 000C4980 */ sll $t1, $t4, 6 +/* 113B5C 7F0DF02C AFB8028C */ sw $t8, 0x28c($sp) +/* 113B60 7F0DF030 01C97825 */ or $t7, $t6, $t1 +/* 113B64 7F0DF034 000BC900 */ sll $t9, $t3, 4 +/* 113B68 7F0DF038 2DAD0001 */ sltiu $t5, $t5, 1 +/* 113B6C 7F0DF03C AFAC0048 */ sw $t4, 0x48($sp) +/* 113B70 7F0DF040 000D6080 */ sll $t4, $t5, 2 +/* 113B74 7F0DF044 01F9C025 */ or $t8, $t7, $t9 +/* 113B78 7F0DF048 030C5025 */ or $t2, $t8, $t4 +/* 113B7C 7F0DF04C 354E0002 */ ori $t6, $t2, 2 +/* 113B80 7F0DF050 0010482A */ slt $t1, $zero, $s0 +/* 113B84 7F0DF054 01C98825 */ or $s1, $t6, $t1 +/* 113B88 7F0DF058 322800FF */ andi $t0, $s1, 0xff +/* 113B8C 7F0DF05C 10000DE7 */ b .L7F0E27FC +/* 113B90 7F0DF060 01008825 */ move $s1, $t0 +spectrum_op_ED_4D: +/* 113B94 7F0DF064 8FAB028C */ lw $t3, 0x28c($sp) +/* 113B98 7F0DF068 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 113B9C 7F0DF06C 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 113BA0 7F0DF070 97B80292 */ lhu $t8, 0x292($sp) +/* 113BA4 7F0DF074 256F0004 */ addiu $t7, $t3, 4 +/* 113BA8 7F0DF078 AFAF028C */ sw $t7, 0x28c($sp) +/* 113BAC 7F0DF07C 25ED0006 */ addiu $t5, $t7, 6 +/* 113BB0 7F0DF080 AFAD028C */ sw $t5, 0x28c($sp) +/* 113BB4 7F0DF084 01984821 */ addu $t1, $t4, $t8 +/* 113BB8 7F0DF088 91280001 */ lbu $t0, 1($t1) +/* 113BBC 7F0DF08C 030C5021 */ addu $t2, $t8, $t4 +/* 113BC0 7F0DF090 914E0000 */ lbu $t6, ($t2) +/* 113BC4 7F0DF094 00085A00 */ sll $t3, $t0, 8 +/* 113BC8 7F0DF098 27190002 */ addiu $t9, $t8, 2 +/* 113BCC 7F0DF09C 01CB7825 */ or $t7, $t6, $t3 +/* 113BD0 7F0DF0A0 A7AF0298 */ sh $t7, 0x298($sp) +/* 113BD4 7F0DF0A4 10000DD5 */ b .L7F0E27FC +/* 113BD8 7F0DF0A8 A7B90292 */ sh $t9, 0x292($sp) +spectrum_op_ED_4E: +/* 113BDC 7F0DF0AC 8FAD028C */ lw $t5, 0x28c($sp) +/* 113BE0 7F0DF0B0 240C0001 */ li $t4, 1 +/* 113BE4 7F0DF0B4 A3AC029B */ sb $t4, 0x29b($sp) +/* 113BE8 7F0DF0B8 25AA0004 */ addiu $t2, $t5, 4 +/* 113BEC 7F0DF0BC 10000DCF */ b .L7F0E27FC +/* 113BF0 7F0DF0C0 AFAA028C */ sw $t2, 0x28c($sp) +spectrum_op_ED_4F: +/* 113BF4 7F0DF0C4 8FA9028C */ lw $t1, 0x28c($sp) +/* 113BF8 7F0DF0C8 320E00FF */ andi $t6, $s0, 0xff +/* 113BFC 7F0DF0CC A3B002A7 */ sb $s0, 0x2a7($sp) +/* 113C00 7F0DF0D0 25280005 */ addiu $t0, $t1, 5 +/* 113C04 7F0DF0D4 AFA8028C */ sw $t0, 0x28c($sp) +/* 113C08 7F0DF0D8 10000DC8 */ b .L7F0E27FC +/* 113C0C 7F0DF0DC AFAE0288 */ sw $t6, 0x288($sp) +spectrum_op_ED_50: +/* 113C10 7F0DF0E0 8FAB028C */ lw $t3, 0x28c($sp) +/* 113C14 7F0DF0E4 02402825 */ move $a1, $s2 +/* 113C18 7F0DF0E8 02603025 */ move $a2, $s3 +/* 113C1C 7F0DF0EC 25640008 */ addiu $a0, $t3, 8 +/* 113C20 7F0DF0F0 0FC34DB6 */ jal spectrum_input_handling +/* 113C24 7F0DF0F4 AFA4028C */ sw $a0, 0x28c($sp) +/* 113C28 7F0DF0F8 8FB8028C */ lw $t8, 0x28c($sp) +/* 113C2C 7F0DF0FC 3059FFFF */ andi $t9, $v0, 0xffff +/* 113C30 7F0DF100 00196A03 */ sra $t5, $t9, 8 +/* 113C34 7F0DF104 A7A200C8 */ sh $v0, 0xc8($sp) +/* 113C38 7F0DF108 030D5021 */ addu $t2, $t8, $t5 +/* 113C3C 7F0DF10C 93B400C9 */ lbu $s4, 0xc9($sp) +/* 113C40 7F0DF110 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 113C44 7F0DF114 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 113C48 7F0DF118 2E8C0001 */ sltiu $t4, $s4, 1 +/* 113C4C 7F0DF11C AFAC0048 */ sw $t4, 0x48($sp) +/* 113C50 7F0DF120 AFAA028C */ sw $t2, 0x28c($sp) +/* 113C54 7F0DF124 02986821 */ addu $t5, $s4, $t8 +/* 113C58 7F0DF128 91AA0000 */ lbu $t2, ($t5) +/* 113C5C 7F0DF12C 32290001 */ andi $t1, $s1, 1 +/* 113C60 7F0DF130 328800A8 */ andi $t0, $s4, 0xa8 +/* 113C64 7F0DF134 01287025 */ or $t6, $t1, $t0 +/* 113C68 7F0DF138 000C7980 */ sll $t7, $t4, 6 +/* 113C6C 7F0DF13C 01CFC825 */ or $t9, $t6, $t7 +/* 113C70 7F0DF140 01598825 */ or $s1, $t2, $t9 +/* 113C74 7F0DF144 322C00FF */ andi $t4, $s1, 0xff +/* 113C78 7F0DF148 10000DAC */ b .L7F0E27FC +/* 113C7C 7F0DF14C 01808825 */ move $s1, $t4 +spectrum_op_ED_51: +/* 113C80 7F0DF150 8FA9028C */ lw $t1, 0x28c($sp) +/* 113C84 7F0DF154 02402825 */ move $a1, $s2 +/* 113C88 7F0DF158 02603025 */ move $a2, $s3 +/* 113C8C 7F0DF15C 25240008 */ addiu $a0, $t1, 8 +/* 113C90 7F0DF160 AFA4028C */ sw $a0, 0x28c($sp) +/* 113C94 7F0DF164 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 113C98 7F0DF168 02803825 */ move $a3, $s4 +/* 113C9C 7F0DF16C 8FAB028C */ lw $t3, 0x28c($sp) +/* 113CA0 7F0DF170 AFA20048 */ sw $v0, 0x48($sp) +/* 113CA4 7F0DF174 01627821 */ addu $t7, $t3, $v0 +/* 113CA8 7F0DF178 10000DA0 */ b .L7F0E27FC +/* 113CAC 7F0DF17C AFAF028C */ sw $t7, 0x28c($sp) +spectrum_op_ED_52: +/* 113CB0 7F0DF180 00145200 */ sll $t2, $s4, 8 +/* 113CB4 7F0DF184 8FB8028C */ lw $t8, 0x28c($sp) +/* 113CB8 7F0DF188 0155C825 */ or $t9, $t2, $s5 +/* 113CBC 7F0DF18C 00166200 */ sll $t4, $s6, 8 +/* 113CC0 7F0DF190 01974825 */ or $t1, $t4, $s7 +/* 113CC4 7F0DF194 3328FFFF */ andi $t0, $t9, 0xffff +/* 113CC8 7F0DF198 01285823 */ subu $t3, $t1, $t0 +/* 113CCC 7F0DF19C 322E0001 */ andi $t6, $s1, 1 +/* 113CD0 7F0DF1A0 3C010001 */ lui $at, (0x0001FFFF >> 16) # lui $at, 1 +/* 113CD4 7F0DF1A4 3421FFFF */ ori $at, (0x0001FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 113CD8 7F0DF1A8 016E7823 */ subu $t7, $t3, $t6 +/* 113CDC 7F0DF1AC 270D000B */ addiu $t5, $t8, 0xb +/* 113CE0 7F0DF1B0 01E1C024 */ and $t8, $t7, $at +/* 113CE4 7F0DF1B4 00186202 */ srl $t4, $t8, 8 +/* 113CE8 7F0DF1B8 318900A8 */ andi $t1, $t4, 0xa8 +/* 113CEC 7F0DF1BC 00184402 */ srl $t0, $t8, 0x10 +/* 113CF0 7F0DF1C0 AFAD028C */ sw $t5, 0x28c($sp) +/* 113CF4 7F0DF1C4 01285825 */ or $t3, $t1, $t0 +/* 113CF8 7F0DF1C8 330DFFFF */ andi $t5, $t8, 0xffff +/* 113CFC 7F0DF1CC 2DAA0001 */ sltiu $t2, $t5, 1 +/* 113D00 7F0DF1D0 356E0002 */ ori $t6, $t3, 2 +/* 113D04 7F0DF1D4 00164200 */ sll $t0, $s6, 8 +/* 113D08 7F0DF1D8 01175825 */ or $t3, $t0, $s7 +/* 113D0C 7F0DF1DC 332D0FFF */ andi $t5, $t9, 0xfff +/* 113D10 7F0DF1E0 322C0001 */ andi $t4, $s1, 1 +/* 113D14 7F0DF1E4 01AC4821 */ addu $t1, $t5, $t4 +/* 113D18 7F0DF1E8 316F0FFF */ andi $t7, $t3, 0xfff +/* 113D1C 7F0DF1EC 01E9682A */ slt $t5, $t7, $t1 +/* 113D20 7F0DF1F0 000D6100 */ sll $t4, $t5, 4 +/* 113D24 7F0DF1F4 01CC4025 */ or $t0, $t6, $t4 +/* 113D28 7F0DF1F8 00165A00 */ sll $t3, $s6, 8 +/* 113D2C 7F0DF1FC 01777825 */ or $t7, $t3, $s7 +/* 113D30 7F0DF200 00166A00 */ sll $t5, $s6, 8 +/* 113D34 7F0DF204 01B77025 */ or $t6, $t5, $s7 +/* 113D38 7F0DF208 03206025 */ move $t4, $t9 +/* 113D3C 7F0DF20C 01CC5826 */ xor $t3, $t6, $t4 +/* 113D40 7F0DF210 01F84826 */ xor $t1, $t7, $t8 +/* 113D44 7F0DF214 01697824 */ and $t7, $t3, $t1 +/* 113D48 7F0DF218 31ED8000 */ andi $t5, $t7, 0x8000 +/* 113D4C 7F0DF21C A7B900C6 */ sh $t9, 0xc6($sp) +/* 113D50 7F0DF220 000DCB42 */ srl $t9, $t5, 0xd +/* 113D54 7F0DF224 01197025 */ or $t6, $t0, $t9 +/* 113D58 7F0DF228 000A6180 */ sll $t4, $t2, 6 +/* 113D5C 7F0DF22C 01CC8825 */ or $s1, $t6, $t4 +/* 113D60 7F0DF230 0018B202 */ srl $s6, $t8, 8 +/* 113D64 7F0DF234 32CF00FF */ andi $t7, $s6, 0xff +/* 113D68 7F0DF238 362B0002 */ ori $t3, $s1, 2 +/* 113D6C 7F0DF23C AFB800C0 */ sw $t8, 0xc0($sp) +/* 113D70 7F0DF240 93B700C3 */ lbu $s7, 0xc3($sp) +/* 113D74 7F0DF244 317100FF */ andi $s1, $t3, 0xff +/* 113D78 7F0DF248 01E0B025 */ move $s6, $t7 +/* 113D7C 7F0DF24C 10000D6B */ b .L7F0E27FC +/* 113D80 7F0DF250 AFAA0048 */ sw $t2, 0x48($sp) +spectrum_op_ED_53: +/* 113D84 7F0DF254 8FAD028C */ lw $t5, 0x28c($sp) +/* 113D88 7F0DF258 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 113D8C 7F0DF25C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 113D90 7F0DF260 97B90298 */ lhu $t9, 0x298($sp) +/* 113D94 7F0DF264 25A80010 */ addiu $t0, $t5, 0x10 +/* 113D98 7F0DF268 AFA8028C */ sw $t0, 0x28c($sp) +/* 113D9C 7F0DF26C 01595821 */ addu $t3, $t2, $t9 +/* 113DA0 7F0DF270 91690001 */ lbu $t1, 1($t3) +/* 113DA4 7F0DF274 032A7021 */ addu $t6, $t9, $t2 +/* 113DA8 7F0DF278 91CC0000 */ lbu $t4, ($t6) +/* 113DAC 7F0DF27C 0009C200 */ sll $t8, $t1, 8 +/* 113DB0 7F0DF280 272D0002 */ addiu $t5, $t9, 2 +/* 113DB4 7F0DF284 01987825 */ or $t7, $t4, $t8 +/* 113DB8 7F0DF288 31E8FFFF */ andi $t0, $t7, 0xffff +/* 113DBC 7F0DF28C 29015B00 */ slti $at, $t0, 0x5b00 +/* 113DC0 7F0DF290 A7AF00BE */ sh $t7, 0xbe($sp) +/* 113DC4 7F0DF294 14200006 */ bnez $at, .L7F0DF2B0 +/* 113DC8 7F0DF298 A7AD0298 */ sh $t5, 0x298($sp) +/* 113DCC 7F0DF29C 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 113DD0 7F0DF2A0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 113DD4 7F0DF2A4 01C85021 */ addu $t2, $t6, $t0 +/* 113DD8 7F0DF2A8 10000021 */ b .L7F0DF330 +/* 113DDC 7F0DF2AC A1550000 */ sb $s5, ($t2) +.L7F0DF2B0: +/* 113DE0 7F0DF2B0 97AB00BE */ lhu $t3, 0xbe($sp) +/* 113DE4 7F0DF2B4 97AE00BE */ lhu $t6, 0xbe($sp) +/* 113DE8 7F0DF2B8 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 113DEC 7F0DF2BC 29615800 */ slti $at, $t3, 0x5800 +/* 113DF0 7F0DF2C0 5420000C */ bnezl $at, .L7F0DF2F4 +/* 113DF4 7F0DF2C4 29C14000 */ slti $at, $t6, 0x4000 +/* 113DF8 7F0DF2C8 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 113DFC 7F0DF2CC 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 113E00 7F0DF2D0 24180001 */ li $t8, 1 +/* 113E04 7F0DF2D4 012B6021 */ addu $t4, $t1, $t3 +/* 113E08 7F0DF2D8 A1950000 */ sb $s5, ($t4) +/* 113E0C 7F0DF2DC 97B900BE */ lhu $t9, 0xbe($sp) +/* 113E10 7F0DF2E0 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 113E14 7F0DF2E4 01F96821 */ addu $t5, $t7, $t9 +/* 113E18 7F0DF2E8 10000011 */ b .L7F0DF330 +/* 113E1C 7F0DF2EC A1B8A800 */ sb $t8, -0x5800($t5) +/* 113E20 7F0DF2F0 29C14000 */ slti $at, $t6, 0x4000 +.L7F0DF2F4: +/* 113E24 7F0DF2F4 1420000E */ bnez $at, .L7F0DF330 +/* 113E28 7F0DF2F8 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 113E2C 7F0DF2FC 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 113E30 7F0DF300 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 113E34 7F0DF304 24090001 */ li $t1, 1 +/* 113E38 7F0DF308 010E5021 */ addu $t2, $t0, $t6 +/* 113E3C 7F0DF30C A1550000 */ sb $s5, ($t2) +/* 113E40 7F0DF310 97AB00BE */ lhu $t3, 0xbe($sp) +/* 113E44 7F0DF314 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 113E48 7F0DF318 316C1800 */ andi $t4, $t3, 0x1800 +/* 113E4C 7F0DF31C 000C78C3 */ sra $t7, $t4, 3 +/* 113E50 7F0DF320 317900FF */ andi $t9, $t3, 0xff +/* 113E54 7F0DF324 01F9C025 */ or $t8, $t7, $t9 +/* 113E58 7F0DF328 01B84021 */ addu $t0, $t5, $t8 +/* 113E5C 7F0DF32C A1090000 */ sb $t1, ($t0) +.L7F0DF330: +/* 113E60 7F0DF330 97AE00BE */ lhu $t6, 0xbe($sp) +/* 113E64 7F0DF334 97AF00BE */ lhu $t7, 0xbe($sp) +/* 113E68 7F0DF338 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 113E6C 7F0DF33C 25CA0001 */ addiu $t2, $t6, 1 +/* 113E70 7F0DF340 29415B00 */ slti $at, $t2, 0x5b00 +/* 113E74 7F0DF344 14200005 */ bnez $at, .L7F0DF35C +/* 113E78 7F0DF348 25F90001 */ addiu $t9, $t7, 1 +/* 113E7C 7F0DF34C 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 113E80 7F0DF350 018E5821 */ addu $t3, $t4, $t6 +/* 113E84 7F0DF354 10000D29 */ b .L7F0E27FC +/* 113E88 7F0DF358 A1740001 */ sb $s4, 1($t3) +.L7F0DF35C: +/* 113E8C 7F0DF35C 2B215800 */ slti $at, $t9, 0x5800 +/* 113E90 7F0DF360 1420000C */ bnez $at, .L7F0DF394 +/* 113E94 7F0DF364 97AE00BE */ lhu $t6, 0xbe($sp) +/* 113E98 7F0DF368 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 113E9C 7F0DF36C 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 113EA0 7F0DF370 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 113EA4 7F0DF374 24090001 */ li $t1, 1 +/* 113EA8 7F0DF378 01AFC021 */ addu $t8, $t5, $t7 +/* 113EAC 7F0DF37C A3140001 */ sb $s4, 1($t8) +/* 113EB0 7F0DF380 97AA00BE */ lhu $t2, 0xbe($sp) +/* 113EB4 7F0DF384 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 113EB8 7F0DF388 010A6021 */ addu $t4, $t0, $t2 +/* 113EBC 7F0DF38C 10000D1B */ b .L7F0E27FC +/* 113EC0 7F0DF390 A189A801 */ sb $t1, -0x57ff($t4) +.L7F0DF394: +/* 113EC4 7F0DF394 25CB0001 */ addiu $t3, $t6, 1 +/* 113EC8 7F0DF398 29614000 */ slti $at, $t3, 0x4000 +/* 113ECC 7F0DF39C 14200D17 */ bnez $at, .L7F0E27FC +/* 113ED0 7F0DF3A0 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 113ED4 7F0DF3A4 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 113ED8 7F0DF3A8 240F0001 */ li $t7, 1 +/* 113EDC 7F0DF3AC 032E6821 */ addu $t5, $t9, $t6 +/* 113EE0 7F0DF3B0 A1B40001 */ sb $s4, 1($t5) +/* 113EE4 7F0DF3B4 97B800BE */ lhu $t8, 0xbe($sp) +/* 113EE8 7F0DF3B8 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 113EEC 7F0DF3BC 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 113EF0 7F0DF3C0 27080001 */ addiu $t0, $t8, 1 +/* 113EF4 7F0DF3C4 310A1800 */ andi $t2, $t0, 0x1800 +/* 113EF8 7F0DF3C8 000A48C3 */ sra $t1, $t2, 3 +/* 113EFC 7F0DF3CC 310C00FF */ andi $t4, $t0, 0xff +/* 113F00 7F0DF3D0 012C5825 */ or $t3, $t1, $t4 +/* 113F04 7F0DF3D4 032B7021 */ addu $t6, $t9, $t3 +/* 113F08 7F0DF3D8 10000D08 */ b .L7F0E27FC +/* 113F0C 7F0DF3DC A1CF0000 */ sb $t7, ($t6) +spectrum_op_ED_54: +/* 113F10 7F0DF3E0 00108023 */ negu $s0, $s0 +/* 113F14 7F0DF3E4 320A00FF */ andi $t2, $s0, 0xff +/* 113F18 7F0DF3E8 8FAD028C */ lw $t5, 0x28c($sp) +/* 113F1C 7F0DF3EC 2D480001 */ sltiu $t0, $t2, 1 +/* 113F20 7F0DF3F0 314F000F */ andi $t7, $t2, 0xf +/* 113F24 7F0DF3F4 01408025 */ move $s0, $t2 +/* 113F28 7F0DF3F8 314900A8 */ andi $t1, $t2, 0xa8 +/* 113F2C 7F0DF3FC 25B80004 */ addiu $t8, $t5, 4 +/* 113F30 7F0DF400 394A0080 */ xori $t2, $t2, 0x80 +/* 113F34 7F0DF404 000F702A */ slt $t6, $zero, $t7 +/* 113F38 7F0DF408 0008C980 */ sll $t9, $t0, 6 +/* 113F3C 7F0DF40C AFB8028C */ sw $t8, 0x28c($sp) +/* 113F40 7F0DF410 01395825 */ or $t3, $t1, $t9 +/* 113F44 7F0DF414 000E6900 */ sll $t5, $t6, 4 +/* 113F48 7F0DF418 2D4A0001 */ sltiu $t2, $t2, 1 +/* 113F4C 7F0DF41C AFA80048 */ sw $t0, 0x48($sp) +/* 113F50 7F0DF420 000A4080 */ sll $t0, $t2, 2 +/* 113F54 7F0DF424 016DC025 */ or $t8, $t3, $t5 +/* 113F58 7F0DF428 03086025 */ or $t4, $t8, $t0 +/* 113F5C 7F0DF42C 35890002 */ ori $t1, $t4, 2 +/* 113F60 7F0DF430 0010C82A */ slt $t9, $zero, $s0 +/* 113F64 7F0DF434 01398825 */ or $s1, $t1, $t9 +/* 113F68 7F0DF438 322F00FF */ andi $t7, $s1, 0xff +/* 113F6C 7F0DF43C 10000CEF */ b .L7F0E27FC +/* 113F70 7F0DF440 01E08825 */ move $s1, $t7 +spectrum_op_ED_55: +/* 113F74 7F0DF444 8FAE028C */ lw $t6, 0x28c($sp) +/* 113F78 7F0DF448 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 113F7C 7F0DF44C 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 113F80 7F0DF450 97B80292 */ lhu $t8, 0x292($sp) +/* 113F84 7F0DF454 25CB0004 */ addiu $t3, $t6, 4 +/* 113F88 7F0DF458 AFAB028C */ sw $t3, 0x28c($sp) +/* 113F8C 7F0DF45C 256A0006 */ addiu $t2, $t3, 6 +/* 113F90 7F0DF460 AFAA028C */ sw $t2, 0x28c($sp) +/* 113F94 7F0DF464 0118C821 */ addu $t9, $t0, $t8 +/* 113F98 7F0DF468 932F0001 */ lbu $t7, 1($t9) +/* 113F9C 7F0DF46C 03086021 */ addu $t4, $t8, $t0 +/* 113FA0 7F0DF470 91890000 */ lbu $t1, ($t4) +/* 113FA4 7F0DF474 000F7200 */ sll $t6, $t7, 8 +/* 113FA8 7F0DF478 270D0002 */ addiu $t5, $t8, 2 +/* 113FAC 7F0DF47C 012E5825 */ or $t3, $t1, $t6 +/* 113FB0 7F0DF480 A7AB0298 */ sh $t3, 0x298($sp) +/* 113FB4 7F0DF484 10000CDD */ b .L7F0E27FC +/* 113FB8 7F0DF488 A7AD0292 */ sh $t5, 0x292($sp) +spectrum_op_ED_56: +/* 113FBC 7F0DF48C 8FAA028C */ lw $t2, 0x28c($sp) +/* 113FC0 7F0DF490 24080002 */ li $t0, 2 +/* 113FC4 7F0DF494 A3A8029B */ sb $t0, 0x29b($sp) +/* 113FC8 7F0DF498 254C0004 */ addiu $t4, $t2, 4 +/* 113FCC 7F0DF49C 10000CD7 */ b .L7F0E27FC +/* 113FD0 7F0DF4A0 AFAC028C */ sw $t4, 0x28c($sp) +spectrum_op_ED_57: +/* 113FD4 7F0DF4A4 93B0029E */ lbu $s0, 0x29e($sp) +/* 113FD8 7F0DF4A8 8FB9028C */ lw $t9, 0x28c($sp) +/* 113FDC 7F0DF4AC 93A8029C */ lbu $t0, 0x29c($sp) +/* 113FE0 7F0DF4B0 322E0001 */ andi $t6, $s1, 1 +/* 113FE4 7F0DF4B4 2E090001 */ sltiu $t1, $s0, 1 +/* 113FE8 7F0DF4B8 320B00A8 */ andi $t3, $s0, 0xa8 +/* 113FEC 7F0DF4BC 01CBC025 */ or $t8, $t6, $t3 +/* 113FF0 7F0DF4C0 00095180 */ sll $t2, $t1, 6 +/* 113FF4 7F0DF4C4 272F0005 */ addiu $t7, $t9, 5 +/* 113FF8 7F0DF4C8 030A6025 */ or $t4, $t8, $t2 +/* 113FFC 7F0DF4CC 0008C880 */ sll $t9, $t0, 2 +/* 114000 7F0DF4D0 AFAF028C */ sw $t7, 0x28c($sp) +/* 114004 7F0DF4D4 01998825 */ or $s1, $t4, $t9 +/* 114008 7F0DF4D8 322F00FF */ andi $t7, $s1, 0xff +/* 11400C 7F0DF4DC 01E08825 */ move $s1, $t7 +/* 114010 7F0DF4E0 10000CC6 */ b .L7F0E27FC +/* 114014 7F0DF4E4 AFA90048 */ sw $t1, 0x48($sp) +spectrum_op_ED_58: +/* 114018 7F0DF4E8 8FA9028C */ lw $t1, 0x28c($sp) +/* 11401C 7F0DF4EC 02402825 */ move $a1, $s2 +/* 114020 7F0DF4F0 02603025 */ move $a2, $s3 +/* 114024 7F0DF4F4 25240008 */ addiu $a0, $t1, 8 +/* 114028 7F0DF4F8 0FC34DB6 */ jal spectrum_input_handling +/* 11402C 7F0DF4FC AFA4028C */ sw $a0, 0x28c($sp) +/* 114030 7F0DF500 8FAB028C */ lw $t3, 0x28c($sp) +/* 114034 7F0DF504 304DFFFF */ andi $t5, $v0, 0xffff +/* 114038 7F0DF508 000DC203 */ sra $t8, $t5, 8 +/* 11403C 7F0DF50C A7A200BC */ sh $v0, 0xbc($sp) +/* 114040 7F0DF510 01785021 */ addu $t2, $t3, $t8 +/* 114044 7F0DF514 93B500BD */ lbu $s5, 0xbd($sp) +/* 114048 7F0DF518 3C0B8009 */ lui $t3, %hi(ptr_pc_keyboard_table_alloc) +/* 11404C 7F0DF51C 8D6BE334 */ lw $t3, %lo(ptr_pc_keyboard_table_alloc)($t3) +/* 114050 7F0DF520 2EA80001 */ sltiu $t0, $s5, 1 +/* 114054 7F0DF524 AFA80048 */ sw $t0, 0x48($sp) +/* 114058 7F0DF528 AFAA028C */ sw $t2, 0x28c($sp) +/* 11405C 7F0DF52C 02ABC021 */ addu $t8, $s5, $t3 +/* 114060 7F0DF530 930A0000 */ lbu $t2, ($t8) +/* 114064 7F0DF534 322C0001 */ andi $t4, $s1, 1 +/* 114068 7F0DF538 32B900A8 */ andi $t9, $s5, 0xa8 +/* 11406C 7F0DF53C 01997825 */ or $t7, $t4, $t9 +/* 114070 7F0DF540 00087180 */ sll $t6, $t0, 6 +/* 114074 7F0DF544 01EE6825 */ or $t5, $t7, $t6 +/* 114078 7F0DF548 014D8825 */ or $s1, $t2, $t5 +/* 11407C 7F0DF54C 322800FF */ andi $t0, $s1, 0xff +/* 114080 7F0DF550 10000CAA */ b .L7F0E27FC +/* 114084 7F0DF554 01008825 */ move $s1, $t0 +spectrum_op_ED_59: +/* 114088 7F0DF558 8FAC028C */ lw $t4, 0x28c($sp) +/* 11408C 7F0DF55C 02402825 */ move $a1, $s2 +/* 114090 7F0DF560 02603025 */ move $a2, $s3 +/* 114094 7F0DF564 25840008 */ addiu $a0, $t4, 8 +/* 114098 7F0DF568 AFA4028C */ sw $a0, 0x28c($sp) +/* 11409C 7F0DF56C 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 1140A0 7F0DF570 02A03825 */ move $a3, $s5 +/* 1140A4 7F0DF574 8FA9028C */ lw $t1, 0x28c($sp) +/* 1140A8 7F0DF578 AFA20048 */ sw $v0, 0x48($sp) +/* 1140AC 7F0DF57C 01227021 */ addu $t6, $t1, $v0 +/* 1140B0 7F0DF580 10000C9E */ b .L7F0E27FC +/* 1140B4 7F0DF584 AFAE028C */ sw $t6, 0x28c($sp) +spectrum_op_ED_5A: +/* 1140B8 7F0DF588 00145200 */ sll $t2, $s4, 8 +/* 1140BC 7F0DF58C 01556825 */ or $t5, $t2, $s5 +/* 1140C0 7F0DF590 00164200 */ sll $t0, $s6, 8 +/* 1140C4 7F0DF594 01176025 */ or $t4, $t0, $s7 +/* 1140C8 7F0DF598 31B9FFFF */ andi $t9, $t5, 0xffff +/* 1140CC 7F0DF59C 8FAB028C */ lw $t3, 0x28c($sp) +/* 1140D0 7F0DF5A0 01994821 */ addu $t1, $t4, $t9 +/* 1140D4 7F0DF5A4 322F0001 */ andi $t7, $s1, 1 +/* 1140D8 7F0DF5A8 012F7021 */ addu $t6, $t1, $t7 +/* 1140DC 7F0DF5AC 2578000B */ addiu $t8, $t3, 0xb +/* 1140E0 7F0DF5B0 000E5202 */ srl $t2, $t6, 8 +/* 1140E4 7F0DF5B4 AFB8028C */ sw $t8, 0x28c($sp) +/* 1140E8 7F0DF5B8 314800A8 */ andi $t0, $t2, 0xa8 +/* 1140EC 7F0DF5BC 31CBFFFF */ andi $t3, $t6, 0xffff +/* 1140F0 7F0DF5C0 000E6402 */ srl $t4, $t6, 0x10 +/* 1140F4 7F0DF5C4 00164A00 */ sll $t1, $s6, 8 +/* 1140F8 7F0DF5C8 01377825 */ or $t7, $t1, $s7 +/* 1140FC 7F0DF5CC 010CC825 */ or $t9, $t0, $t4 +/* 114100 7F0DF5D0 2D780001 */ sltiu $t8, $t3, 1 +/* 114104 7F0DF5D4 31EB0FFF */ andi $t3, $t7, 0xfff +/* 114108 7F0DF5D8 31A80FFF */ andi $t0, $t5, 0xfff +/* 11410C 7F0DF5DC 01686021 */ addu $t4, $t3, $t0 +/* 114110 7F0DF5E0 32290001 */ andi $t1, $s1, 1 +/* 114114 7F0DF5E4 01897821 */ addu $t7, $t4, $t1 +/* 114118 7F0DF5E8 24010FFF */ li $at, 4095 +/* 11411C 7F0DF5EC 002F502A */ slt $t2, $at, $t7 +/* 114120 7F0DF5F0 000A5900 */ sll $t3, $t2, 4 +/* 114124 7F0DF5F4 032B4025 */ or $t0, $t9, $t3 +/* 114128 7F0DF5F8 00166200 */ sll $t4, $s6, 8 +/* 11412C 7F0DF5FC 01974825 */ or $t1, $t4, $s7 +/* 114130 7F0DF600 00165200 */ sll $t2, $s6, 8 +/* 114134 7F0DF604 0157C827 */ nor $t9, $t2, $s7 +/* 114138 7F0DF608 01A05825 */ move $t3, $t5 +/* 11413C 7F0DF60C 032B6026 */ xor $t4, $t9, $t3 +/* 114140 7F0DF610 012E7826 */ xor $t7, $t1, $t6 +/* 114144 7F0DF614 018F4824 */ and $t1, $t4, $t7 +/* 114148 7F0DF618 312A8000 */ andi $t2, $t1, 0x8000 +/* 11414C 7F0DF61C A7AD00BA */ sh $t5, 0xba($sp) +/* 114150 7F0DF620 000A6B42 */ srl $t5, $t2, 0xd +/* 114154 7F0DF624 010DC825 */ or $t9, $t0, $t5 +/* 114158 7F0DF628 00185980 */ sll $t3, $t8, 6 +/* 11415C 7F0DF62C 032B8825 */ or $s1, $t9, $t3 +/* 114160 7F0DF630 000EB202 */ srl $s6, $t6, 8 +/* 114164 7F0DF634 32C900FF */ andi $t1, $s6, 0xff +/* 114168 7F0DF638 362C0002 */ ori $t4, $s1, 2 +/* 11416C 7F0DF63C AFAE00B4 */ sw $t6, 0xb4($sp) +/* 114170 7F0DF640 93B700B7 */ lbu $s7, 0xb7($sp) +/* 114174 7F0DF644 319100FF */ andi $s1, $t4, 0xff +/* 114178 7F0DF648 0120B025 */ move $s6, $t1 +/* 11417C 7F0DF64C 10000C6B */ b .L7F0E27FC +/* 114180 7F0DF650 AFB80048 */ sw $t8, 0x48($sp) +spectrum_op_ED_5B: +/* 114184 7F0DF654 8FAA028C */ lw $t2, 0x28c($sp) +/* 114188 7F0DF658 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 11418C 7F0DF65C 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 114190 7F0DF660 97AD0298 */ lhu $t5, 0x298($sp) +/* 114194 7F0DF664 25480010 */ addiu $t0, $t2, 0x10 +/* 114198 7F0DF668 AFA8028C */ sw $t0, 0x28c($sp) +/* 11419C 7F0DF66C 030D6021 */ addu $t4, $t8, $t5 +/* 1141A0 7F0DF670 918F0001 */ lbu $t7, 1($t4) +/* 1141A4 7F0DF674 01B8C821 */ addu $t9, $t5, $t8 +/* 1141A8 7F0DF678 932B0000 */ lbu $t3, ($t9) +/* 1141AC 7F0DF67C 000F7200 */ sll $t6, $t7, 8 +/* 1141B0 7F0DF680 25AA0002 */ addiu $t2, $t5, 2 +/* 1141B4 7F0DF684 016E4825 */ or $t1, $t3, $t6 +/* 1141B8 7F0DF688 3128FFFF */ andi $t0, $t1, 0xffff +/* 1141BC 7F0DF68C A7A900B2 */ sh $t1, 0xb2($sp) +/* 1141C0 7F0DF690 A7AA0298 */ sh $t2, 0x298($sp) +/* 1141C4 7F0DF694 0118C821 */ addu $t9, $t0, $t8 +/* 1141C8 7F0DF698 93350000 */ lbu $s5, ($t9) +/* 1141CC 7F0DF69C 10000C57 */ b .L7F0E27FC +/* 1141D0 7F0DF6A0 93340001 */ lbu $s4, 1($t9) +spectrum_op_ED_5C: +/* 1141D4 7F0DF6A4 00108023 */ negu $s0, $s0 +/* 1141D8 7F0DF6A8 320B00FF */ andi $t3, $s0, 0xff +/* 1141DC 7F0DF6AC 8FAC028C */ lw $t4, 0x28c($sp) +/* 1141E0 7F0DF6B0 2D6E0001 */ sltiu $t6, $t3, 1 +/* 1141E4 7F0DF6B4 3178000F */ andi $t8, $t3, 0xf +/* 1141E8 7F0DF6B8 01608025 */ move $s0, $t3 +/* 1141EC 7F0DF6BC 316900A8 */ andi $t1, $t3, 0xa8 +/* 1141F0 7F0DF6C0 258F0004 */ addiu $t7, $t4, 4 +/* 1141F4 7F0DF6C4 396B0080 */ xori $t3, $t3, 0x80 +/* 1141F8 7F0DF6C8 0018C82A */ slt $t9, $zero, $t8 +/* 1141FC 7F0DF6CC 000E5180 */ sll $t2, $t6, 6 +/* 114200 7F0DF6D0 AFAF028C */ sw $t7, 0x28c($sp) +/* 114204 7F0DF6D4 012A4025 */ or $t0, $t1, $t2 +/* 114208 7F0DF6D8 00196100 */ sll $t4, $t9, 4 +/* 11420C 7F0DF6DC 2D6B0001 */ sltiu $t3, $t3, 1 +/* 114210 7F0DF6E0 AFAE0048 */ sw $t6, 0x48($sp) +/* 114214 7F0DF6E4 000B7080 */ sll $t6, $t3, 2 +/* 114218 7F0DF6E8 010C7825 */ or $t7, $t0, $t4 +/* 11421C 7F0DF6EC 01EE6825 */ or $t5, $t7, $t6 +/* 114220 7F0DF6F0 35A90002 */ ori $t1, $t5, 2 +/* 114224 7F0DF6F4 0010502A */ slt $t2, $zero, $s0 +/* 114228 7F0DF6F8 012A8825 */ or $s1, $t1, $t2 +/* 11422C 7F0DF6FC 323800FF */ andi $t8, $s1, 0xff +/* 114230 7F0DF700 10000C3E */ b .L7F0E27FC +/* 114234 7F0DF704 03008825 */ move $s1, $t8 +spectrum_op_ED_5D: +/* 114238 7F0DF708 8FB9028C */ lw $t9, 0x28c($sp) +/* 11423C 7F0DF70C 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 114240 7F0DF710 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 114244 7F0DF714 97AF0292 */ lhu $t7, 0x292($sp) +/* 114248 7F0DF718 27280004 */ addiu $t0, $t9, 4 +/* 11424C 7F0DF71C AFA8028C */ sw $t0, 0x28c($sp) +/* 114250 7F0DF720 250B0006 */ addiu $t3, $t0, 6 +/* 114254 7F0DF724 AFAB028C */ sw $t3, 0x28c($sp) +/* 114258 7F0DF728 01CF5021 */ addu $t2, $t6, $t7 +/* 11425C 7F0DF72C 91580001 */ lbu $t8, 1($t2) +/* 114260 7F0DF730 01EE6821 */ addu $t5, $t7, $t6 +/* 114264 7F0DF734 91A90000 */ lbu $t1, ($t5) +/* 114268 7F0DF738 0018CA00 */ sll $t9, $t8, 8 +/* 11426C 7F0DF73C 25EC0002 */ addiu $t4, $t7, 2 +/* 114270 7F0DF740 01394025 */ or $t0, $t1, $t9 +/* 114274 7F0DF744 A7A80298 */ sh $t0, 0x298($sp) +/* 114278 7F0DF748 10000C2C */ b .L7F0E27FC +/* 11427C 7F0DF74C A7AC0292 */ sh $t4, 0x292($sp) +spectrum_op_ED_5E: +/* 114280 7F0DF750 8FAB028C */ lw $t3, 0x28c($sp) +/* 114284 7F0DF754 240E0003 */ li $t6, 3 +/* 114288 7F0DF758 A3AE029B */ sb $t6, 0x29b($sp) +/* 11428C 7F0DF75C 256D0004 */ addiu $t5, $t3, 4 +/* 114290 7F0DF760 10000C26 */ b .L7F0E27FC +/* 114294 7F0DF764 AFAD028C */ sw $t5, 0x28c($sp) +spectrum_op_ED_5F: +/* 114298 7F0DF768 93A902A7 */ lbu $t1, 0x2a7($sp) +/* 11429C 7F0DF76C 8FA80288 */ lw $t0, 0x288($sp) +/* 1142A0 7F0DF770 8FAA028C */ lw $t2, 0x28c($sp) +/* 1142A4 7F0DF774 31390080 */ andi $t9, $t1, 0x80 +/* 1142A8 7F0DF778 310F007F */ andi $t7, $t0, 0x7f +/* 1142AC 7F0DF77C 032F8025 */ or $s0, $t9, $t7 +/* 1142B0 7F0DF780 320B00FF */ andi $t3, $s0, 0xff +/* 1142B4 7F0DF784 25580005 */ addiu $t8, $t2, 5 +/* 1142B8 7F0DF788 93AF029C */ lbu $t7, 0x29c($sp) +/* 1142BC 7F0DF78C AFB8028C */ sw $t8, 0x28c($sp) +/* 1142C0 7F0DF790 316A00A8 */ andi $t2, $t3, 0xa8 +/* 1142C4 7F0DF794 2D6D0001 */ sltiu $t5, $t3, 1 +/* 1142C8 7F0DF798 322E0001 */ andi $t6, $s1, 1 +/* 1142CC 7F0DF79C 01CAC025 */ or $t8, $t6, $t2 +/* 1142D0 7F0DF7A0 000D4180 */ sll $t0, $t5, 6 +/* 1142D4 7F0DF7A4 A3B002A7 */ sb $s0, 0x2a7($sp) +/* 1142D8 7F0DF7A8 0308C825 */ or $t9, $t8, $t0 +/* 1142DC 7F0DF7AC 000F6080 */ sll $t4, $t7, 2 +/* 1142E0 7F0DF7B0 01608025 */ move $s0, $t3 +/* 1142E4 7F0DF7B4 032C8825 */ or $s1, $t9, $t4 +/* 1142E8 7F0DF7B8 322B00FF */ andi $t3, $s1, 0xff +/* 1142EC 7F0DF7BC 01608825 */ move $s1, $t3 +/* 1142F0 7F0DF7C0 10000C0E */ b .L7F0E27FC +/* 1142F4 7F0DF7C4 AFAD0048 */ sw $t5, 0x48($sp) +spectrum_op_ED_60: +/* 1142F8 7F0DF7C8 8FAD028C */ lw $t5, 0x28c($sp) +/* 1142FC 7F0DF7CC 02402825 */ move $a1, $s2 +/* 114300 7F0DF7D0 02603025 */ move $a2, $s3 +/* 114304 7F0DF7D4 25A40008 */ addiu $a0, $t5, 8 +/* 114308 7F0DF7D8 0FC34DB6 */ jal spectrum_input_handling +/* 11430C 7F0DF7DC AFA4028C */ sw $a0, 0x28c($sp) +/* 114310 7F0DF7E0 8FAA028C */ lw $t2, 0x28c($sp) +/* 114314 7F0DF7E4 3049FFFF */ andi $t1, $v0, 0xffff +/* 114318 7F0DF7E8 0009C203 */ sra $t8, $t1, 8 +/* 11431C 7F0DF7EC A7A200B0 */ sh $v0, 0xb0($sp) +/* 114320 7F0DF7F0 01584021 */ addu $t0, $t2, $t8 +/* 114324 7F0DF7F4 93B600B1 */ lbu $s6, 0xb1($sp) +/* 114328 7F0DF7F8 3C0A8009 */ lui $t2, %hi(ptr_pc_keyboard_table_alloc) +/* 11432C 7F0DF7FC 8D4AE334 */ lw $t2, %lo(ptr_pc_keyboard_table_alloc)($t2) +/* 114330 7F0DF800 2ECF0001 */ sltiu $t7, $s6, 1 +/* 114334 7F0DF804 AFAF0048 */ sw $t7, 0x48($sp) +/* 114338 7F0DF808 AFA8028C */ sw $t0, 0x28c($sp) +/* 11433C 7F0DF80C 02CAC021 */ addu $t8, $s6, $t2 +/* 114340 7F0DF810 93080000 */ lbu $t0, ($t8) +/* 114344 7F0DF814 32390001 */ andi $t9, $s1, 1 +/* 114348 7F0DF818 32CC00A8 */ andi $t4, $s6, 0xa8 +/* 11434C 7F0DF81C 032C5825 */ or $t3, $t9, $t4 +/* 114350 7F0DF820 000F7180 */ sll $t6, $t7, 6 +/* 114354 7F0DF824 016E4825 */ or $t1, $t3, $t6 +/* 114358 7F0DF828 01098825 */ or $s1, $t0, $t1 +/* 11435C 7F0DF82C 322F00FF */ andi $t7, $s1, 0xff +/* 114360 7F0DF830 10000BF2 */ b .L7F0E27FC +/* 114364 7F0DF834 01E08825 */ move $s1, $t7 +spectrum_op_ED_61: +/* 114368 7F0DF838 8FB9028C */ lw $t9, 0x28c($sp) +/* 11436C 7F0DF83C 02402825 */ move $a1, $s2 +/* 114370 7F0DF840 02603025 */ move $a2, $s3 +/* 114374 7F0DF844 27240008 */ addiu $a0, $t9, 8 +/* 114378 7F0DF848 AFA4028C */ sw $a0, 0x28c($sp) +/* 11437C 7F0DF84C 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 114380 7F0DF850 02C03825 */ move $a3, $s6 +/* 114384 7F0DF854 8FAD028C */ lw $t5, 0x28c($sp) +/* 114388 7F0DF858 AFA20048 */ sw $v0, 0x48($sp) +/* 11438C 7F0DF85C 01A27021 */ addu $t6, $t5, $v0 +/* 114390 7F0DF860 10000BE6 */ b .L7F0E27FC +/* 114394 7F0DF864 AFAE028C */ sw $t6, 0x28c($sp) +spectrum_op_ED_62: +/* 114398 7F0DF868 00164200 */ sll $t0, $s6, 8 +/* 11439C 7F0DF86C 8FAA028C */ lw $t2, 0x28c($sp) +/* 1143A0 7F0DF870 01174825 */ or $t1, $t0, $s7 +/* 1143A4 7F0DF874 00167A00 */ sll $t7, $s6, 8 +/* 1143A8 7F0DF878 01F7C825 */ or $t9, $t7, $s7 +/* 1143AC 7F0DF87C 312CFFFF */ andi $t4, $t1, 0xffff +/* 1143B0 7F0DF880 032C6823 */ subu $t5, $t9, $t4 +/* 1143B4 7F0DF884 322B0001 */ andi $t3, $s1, 1 +/* 1143B8 7F0DF888 3C010001 */ lui $at, (0x0001FFFF >> 16) # lui $at, 1 +/* 1143BC 7F0DF88C 3421FFFF */ ori $at, (0x0001FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 1143C0 7F0DF890 01AB7023 */ subu $t6, $t5, $t3 +/* 1143C4 7F0DF894 2558000B */ addiu $t8, $t2, 0xb +/* 1143C8 7F0DF898 01C15024 */ and $t2, $t6, $at +/* 1143CC 7F0DF89C 000A7A02 */ srl $t7, $t2, 8 +/* 1143D0 7F0DF8A0 31F900A8 */ andi $t9, $t7, 0xa8 +/* 1143D4 7F0DF8A4 000A6402 */ srl $t4, $t2, 0x10 +/* 1143D8 7F0DF8A8 AFB8028C */ sw $t8, 0x28c($sp) +/* 1143DC 7F0DF8AC 032C6825 */ or $t5, $t9, $t4 +/* 1143E0 7F0DF8B0 3158FFFF */ andi $t8, $t2, 0xffff +/* 1143E4 7F0DF8B4 2F080001 */ sltiu $t0, $t8, 1 +/* 1143E8 7F0DF8B8 35AB0002 */ ori $t3, $t5, 2 +/* 1143EC 7F0DF8BC 00166200 */ sll $t4, $s6, 8 +/* 1143F0 7F0DF8C0 01976825 */ or $t5, $t4, $s7 +/* 1143F4 7F0DF8C4 31380FFF */ andi $t8, $t1, 0xfff +/* 1143F8 7F0DF8C8 322F0001 */ andi $t7, $s1, 1 +/* 1143FC 7F0DF8CC 030FC821 */ addu $t9, $t8, $t7 +/* 114400 7F0DF8D0 31AE0FFF */ andi $t6, $t5, 0xfff +/* 114404 7F0DF8D4 01D9C02A */ slt $t8, $t6, $t9 +/* 114408 7F0DF8D8 00187900 */ sll $t7, $t8, 4 +/* 11440C 7F0DF8DC 016F6025 */ or $t4, $t3, $t7 +/* 114410 7F0DF8E0 00166A00 */ sll $t5, $s6, 8 +/* 114414 7F0DF8E4 01B77025 */ or $t6, $t5, $s7 +/* 114418 7F0DF8E8 0016C200 */ sll $t8, $s6, 8 +/* 11441C 7F0DF8EC 03175825 */ or $t3, $t8, $s7 +/* 114420 7F0DF8F0 01207825 */ move $t7, $t1 +/* 114424 7F0DF8F4 016F6826 */ xor $t5, $t3, $t7 +/* 114428 7F0DF8F8 01CAC826 */ xor $t9, $t6, $t2 +/* 11442C 7F0DF8FC 01B97024 */ and $t6, $t5, $t9 +/* 114430 7F0DF900 31D88000 */ andi $t8, $t6, 0x8000 +/* 114434 7F0DF904 A7A900AE */ sh $t1, 0xae($sp) +/* 114438 7F0DF908 00184B42 */ srl $t1, $t8, 0xd +/* 11443C 7F0DF90C 01895825 */ or $t3, $t4, $t1 +/* 114440 7F0DF910 00087980 */ sll $t7, $t0, 6 +/* 114444 7F0DF914 016F8825 */ or $s1, $t3, $t7 +/* 114448 7F0DF918 000AB202 */ srl $s6, $t2, 8 +/* 11444C 7F0DF91C 32CE00FF */ andi $t6, $s6, 0xff +/* 114450 7F0DF920 362D0002 */ ori $t5, $s1, 2 +/* 114454 7F0DF924 AFAA00A8 */ sw $t2, 0xa8($sp) +/* 114458 7F0DF928 93B700AB */ lbu $s7, 0xab($sp) +/* 11445C 7F0DF92C 31B100FF */ andi $s1, $t5, 0xff +/* 114460 7F0DF930 01C0B025 */ move $s6, $t6 +/* 114464 7F0DF934 10000BB1 */ b .L7F0E27FC +/* 114468 7F0DF938 AFA80048 */ sw $t0, 0x48($sp) +spectrum_op_ED_63: +/* 11446C 7F0DF93C 8FB8028C */ lw $t8, 0x28c($sp) +/* 114470 7F0DF940 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 114474 7F0DF944 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 114478 7F0DF948 97A90298 */ lhu $t1, 0x298($sp) +/* 11447C 7F0DF94C 270C0010 */ addiu $t4, $t8, 0x10 +/* 114480 7F0DF950 AFAC028C */ sw $t4, 0x28c($sp) +/* 114484 7F0DF954 01096821 */ addu $t5, $t0, $t1 +/* 114488 7F0DF958 91B90001 */ lbu $t9, 1($t5) +/* 11448C 7F0DF95C 01285821 */ addu $t3, $t1, $t0 +/* 114490 7F0DF960 916F0000 */ lbu $t7, ($t3) +/* 114494 7F0DF964 00195200 */ sll $t2, $t9, 8 +/* 114498 7F0DF968 25380002 */ addiu $t8, $t1, 2 +/* 11449C 7F0DF96C 01EA7025 */ or $t6, $t7, $t2 +/* 1144A0 7F0DF970 31CCFFFF */ andi $t4, $t6, 0xffff +/* 1144A4 7F0DF974 29815B00 */ slti $at, $t4, 0x5b00 +/* 1144A8 7F0DF978 A7AE00A6 */ sh $t6, 0xa6($sp) +/* 1144AC 7F0DF97C 14200006 */ bnez $at, .L7F0DF998 +/* 1144B0 7F0DF980 A7B80298 */ sh $t8, 0x298($sp) +/* 1144B4 7F0DF984 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1144B8 7F0DF988 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 1144BC 7F0DF98C 016C4021 */ addu $t0, $t3, $t4 +/* 1144C0 7F0DF990 10000021 */ b .L7F0DFA18 +/* 1144C4 7F0DF994 A1170000 */ sb $s7, ($t0) +.L7F0DF998: +/* 1144C8 7F0DF998 97AD00A6 */ lhu $t5, 0xa6($sp) +/* 1144CC 7F0DF99C 97AB00A6 */ lhu $t3, 0xa6($sp) +/* 1144D0 7F0DF9A0 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 1144D4 7F0DF9A4 29A15800 */ slti $at, $t5, 0x5800 +/* 1144D8 7F0DF9A8 5420000C */ bnezl $at, .L7F0DF9DC +/* 1144DC 7F0DF9AC 29614000 */ slti $at, $t3, 0x4000 +/* 1144E0 7F0DF9B0 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 1144E4 7F0DF9B4 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 1144E8 7F0DF9B8 240A0001 */ li $t2, 1 +/* 1144EC 7F0DF9BC 032D7821 */ addu $t7, $t9, $t5 +/* 1144F0 7F0DF9C0 A1F70000 */ sb $s7, ($t7) +/* 1144F4 7F0DF9C4 97A900A6 */ lhu $t1, 0xa6($sp) +/* 1144F8 7F0DF9C8 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 1144FC 7F0DF9CC 01C9C021 */ addu $t8, $t6, $t1 +/* 114500 7F0DF9D0 10000011 */ b .L7F0DFA18 +/* 114504 7F0DF9D4 A30AA800 */ sb $t2, -0x5800($t8) +/* 114508 7F0DF9D8 29614000 */ slti $at, $t3, 0x4000 +.L7F0DF9DC: +/* 11450C 7F0DF9DC 1420000E */ bnez $at, .L7F0DFA18 +/* 114510 7F0DF9E0 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 114514 7F0DF9E4 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 114518 7F0DF9E8 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 11451C 7F0DF9EC 24190001 */ li $t9, 1 +/* 114520 7F0DF9F0 018B4021 */ addu $t0, $t4, $t3 +/* 114524 7F0DF9F4 A1170000 */ sb $s7, ($t0) +/* 114528 7F0DF9F8 97AD00A6 */ lhu $t5, 0xa6($sp) +/* 11452C 7F0DF9FC 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 114530 7F0DFA00 31AF1800 */ andi $t7, $t5, 0x1800 +/* 114534 7F0DFA04 000F70C3 */ sra $t6, $t7, 3 +/* 114538 7F0DFA08 31A900FF */ andi $t1, $t5, 0xff +/* 11453C 7F0DFA0C 01C95025 */ or $t2, $t6, $t1 +/* 114540 7F0DFA10 030A6021 */ addu $t4, $t8, $t2 +/* 114544 7F0DFA14 A1990000 */ sb $t9, ($t4) +.L7F0DFA18: +/* 114548 7F0DFA18 97AB00A6 */ lhu $t3, 0xa6($sp) +/* 11454C 7F0DFA1C 97AE00A6 */ lhu $t6, 0xa6($sp) +/* 114550 7F0DFA20 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 114554 7F0DFA24 25680001 */ addiu $t0, $t3, 1 +/* 114558 7F0DFA28 29015B00 */ slti $at, $t0, 0x5b00 +/* 11455C 7F0DFA2C 14200005 */ bnez $at, .L7F0DFA44 +/* 114560 7F0DFA30 25C90001 */ addiu $t1, $t6, 1 +/* 114564 7F0DFA34 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 114568 7F0DFA38 01EB6821 */ addu $t5, $t7, $t3 +/* 11456C 7F0DFA3C 10000B6F */ b .L7F0E27FC +/* 114570 7F0DFA40 A1B60001 */ sb $s6, 1($t5) +.L7F0DFA44: +/* 114574 7F0DFA44 29215800 */ slti $at, $t1, 0x5800 +/* 114578 7F0DFA48 1420000C */ bnez $at, .L7F0DFA7C +/* 11457C 7F0DFA4C 97AB00A6 */ lhu $t3, 0xa6($sp) +/* 114580 7F0DFA50 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 114584 7F0DFA54 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 114588 7F0DFA58 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 11458C 7F0DFA5C 24190001 */ li $t9, 1 +/* 114590 7F0DFA60 030E5021 */ addu $t2, $t8, $t6 +/* 114594 7F0DFA64 A1560001 */ sb $s6, 1($t2) +/* 114598 7F0DFA68 97A800A6 */ lhu $t0, 0xa6($sp) +/* 11459C 7F0DFA6C 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 1145A0 7F0DFA70 01887821 */ addu $t7, $t4, $t0 +/* 1145A4 7F0DFA74 10000B61 */ b .L7F0E27FC +/* 1145A8 7F0DFA78 A1F9A801 */ sb $t9, -0x57ff($t7) +.L7F0DFA7C: +/* 1145AC 7F0DFA7C 256D0001 */ addiu $t5, $t3, 1 +/* 1145B0 7F0DFA80 29A14000 */ slti $at, $t5, 0x4000 +/* 1145B4 7F0DFA84 14200B5D */ bnez $at, .L7F0E27FC +/* 1145B8 7F0DFA88 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 1145BC 7F0DFA8C 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 1145C0 7F0DFA90 240E0001 */ li $t6, 1 +/* 1145C4 7F0DFA94 012BC021 */ addu $t8, $t1, $t3 +/* 1145C8 7F0DFA98 A3160001 */ sb $s6, 1($t8) +/* 1145CC 7F0DFA9C 97AA00A6 */ lhu $t2, 0xa6($sp) +/* 1145D0 7F0DFAA0 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 1145D4 7F0DFAA4 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 1145D8 7F0DFAA8 254C0001 */ addiu $t4, $t2, 1 +/* 1145DC 7F0DFAAC 31881800 */ andi $t0, $t4, 0x1800 +/* 1145E0 7F0DFAB0 0008C8C3 */ sra $t9, $t0, 3 +/* 1145E4 7F0DFAB4 318F00FF */ andi $t7, $t4, 0xff +/* 1145E8 7F0DFAB8 032F6825 */ or $t5, $t9, $t7 +/* 1145EC 7F0DFABC 012D5821 */ addu $t3, $t1, $t5 +/* 1145F0 7F0DFAC0 10000B4E */ b .L7F0E27FC +/* 1145F4 7F0DFAC4 A16E0000 */ sb $t6, ($t3) +spectrum_op_ED_64: +/* 1145F8 7F0DFAC8 00108023 */ negu $s0, $s0 +/* 1145FC 7F0DFACC 320800FF */ andi $t0, $s0, 0xff +/* 114600 7F0DFAD0 8FB8028C */ lw $t8, 0x28c($sp) +/* 114604 7F0DFAD4 2D0C0001 */ sltiu $t4, $t0, 1 +/* 114608 7F0DFAD8 310E000F */ andi $t6, $t0, 0xf +/* 11460C 7F0DFADC 01008025 */ move $s0, $t0 +/* 114610 7F0DFAE0 311900A8 */ andi $t9, $t0, 0xa8 +/* 114614 7F0DFAE4 270A0004 */ addiu $t2, $t8, 4 +/* 114618 7F0DFAE8 39080080 */ xori $t0, $t0, 0x80 +/* 11461C 7F0DFAEC 000E582A */ slt $t3, $zero, $t6 +/* 114620 7F0DFAF0 000C4980 */ sll $t1, $t4, 6 +/* 114624 7F0DFAF4 AFAA028C */ sw $t2, 0x28c($sp) +/* 114628 7F0DFAF8 03296825 */ or $t5, $t9, $t1 +/* 11462C 7F0DFAFC 000BC100 */ sll $t8, $t3, 4 +/* 114630 7F0DFB00 2D080001 */ sltiu $t0, $t0, 1 +/* 114634 7F0DFB04 AFAC0048 */ sw $t4, 0x48($sp) +/* 114638 7F0DFB08 00086080 */ sll $t4, $t0, 2 +/* 11463C 7F0DFB0C 01B85025 */ or $t2, $t5, $t8 +/* 114640 7F0DFB10 014C7825 */ or $t7, $t2, $t4 +/* 114644 7F0DFB14 35F90002 */ ori $t9, $t7, 2 +/* 114648 7F0DFB18 0010482A */ slt $t1, $zero, $s0 +/* 11464C 7F0DFB1C 03298825 */ or $s1, $t9, $t1 +/* 114650 7F0DFB20 322E00FF */ andi $t6, $s1, 0xff +/* 114654 7F0DFB24 10000B35 */ b .L7F0E27FC +/* 114658 7F0DFB28 01C08825 */ move $s1, $t6 +spectrum_op_ED_65: +/* 11465C 7F0DFB2C 8FAB028C */ lw $t3, 0x28c($sp) +/* 114660 7F0DFB30 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 114664 7F0DFB34 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 114668 7F0DFB38 97AA0292 */ lhu $t2, 0x292($sp) +/* 11466C 7F0DFB3C 256D0004 */ addiu $t5, $t3, 4 +/* 114670 7F0DFB40 AFAD028C */ sw $t5, 0x28c($sp) +/* 114674 7F0DFB44 25A80006 */ addiu $t0, $t5, 6 +/* 114678 7F0DFB48 AFA8028C */ sw $t0, 0x28c($sp) +/* 11467C 7F0DFB4C 018A4821 */ addu $t1, $t4, $t2 +/* 114680 7F0DFB50 912E0001 */ lbu $t6, 1($t1) +/* 114684 7F0DFB54 014C7821 */ addu $t7, $t2, $t4 +/* 114688 7F0DFB58 91F90000 */ lbu $t9, ($t7) +/* 11468C 7F0DFB5C 000E5A00 */ sll $t3, $t6, 8 +/* 114690 7F0DFB60 25580002 */ addiu $t8, $t2, 2 +/* 114694 7F0DFB64 032B6825 */ or $t5, $t9, $t3 +/* 114698 7F0DFB68 A7AD0298 */ sh $t5, 0x298($sp) +/* 11469C 7F0DFB6C 10000B23 */ b .L7F0E27FC +/* 1146A0 7F0DFB70 A7B80292 */ sh $t8, 0x292($sp) +spectrum_op_ED_66: +/* 1146A4 7F0DFB74 8FA8028C */ lw $t0, 0x28c($sp) +/* 1146A8 7F0DFB78 A3A0029B */ sb $zero, 0x29b($sp) +/* 1146AC 7F0DFB7C 250F0004 */ addiu $t7, $t0, 4 +/* 1146B0 7F0DFB80 10000B1E */ b .L7F0E27FC +/* 1146B4 7F0DFB84 AFAF028C */ sw $t7, 0x28c($sp) +spectrum_op_ED_67: +/* 1146B8 7F0DFB88 8FAC028C */ lw $t4, 0x28c($sp) +/* 1146BC 7F0DFB8C 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1146C0 7F0DFB90 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 1146C4 7F0DFB94 00167200 */ sll $t6, $s6, 8 +/* 1146C8 7F0DFB98 01D7C825 */ or $t9, $t6, $s7 +/* 1146CC 7F0DFB9C 2589000E */ addiu $t1, $t4, 0xe +/* 1146D0 7F0DFBA0 AFA9028C */ sw $t1, 0x28c($sp) +/* 1146D4 7F0DFBA4 032B6821 */ addu $t5, $t9, $t3 +/* 1146D8 7F0DFBA8 91AA0000 */ lbu $t2, ($t5) +/* 1146DC 7F0DFBAC 00104100 */ sll $t0, $s0, 4 +/* 1146E0 7F0DFBB0 320900F0 */ andi $t1, $s0, 0xf0 +/* 1146E4 7F0DFBB4 0016CA00 */ sll $t9, $s6, 8 +/* 1146E8 7F0DFBB8 314C000F */ andi $t4, $t2, 0xf +/* 1146EC 7F0DFBBC 012C8025 */ or $s0, $t1, $t4 +/* 1146F0 7F0DFBC0 03375825 */ or $t3, $t9, $s7 +/* 1146F4 7F0DFBC4 000AC103 */ sra $t8, $t2, 4 +/* 1146F8 7F0DFBC8 01187825 */ or $t7, $t0, $t8 +/* 1146FC 7F0DFBCC 320E00FF */ andi $t6, $s0, 0xff +/* 114700 7F0DFBD0 29615B00 */ slti $at, $t3, 0x5b00 +/* 114704 7F0DFBD4 A3AF00A4 */ sb $t7, 0xa4($sp) +/* 114708 7F0DFBD8 01C08025 */ move $s0, $t6 +/* 11470C 7F0DFBDC 14200009 */ bnez $at, .L7F0DFC04 +/* 114710 7F0DFBE0 A3AA00A5 */ sb $t2, 0xa5($sp) +/* 114714 7F0DFBE4 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 114718 7F0DFBE8 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 11471C 7F0DFBEC 01E06825 */ move $t5, $t7 +/* 114720 7F0DFBF0 0016C200 */ sll $t8, $s6, 8 +/* 114724 7F0DFBF4 03177825 */ or $t7, $t8, $s7 +/* 114728 7F0DFBF8 010F5021 */ addu $t2, $t0, $t7 +/* 11472C 7F0DFBFC 1000002B */ b .L7F0DFCAC +/* 114730 7F0DFC00 A14D0000 */ sb $t5, ($t2) +.L7F0DFC04: +/* 114734 7F0DFC04 00164A00 */ sll $t1, $s6, 8 +/* 114738 7F0DFC08 01376025 */ or $t4, $t1, $s7 +/* 11473C 7F0DFC0C 29815800 */ slti $at, $t4, 0x5800 +/* 114740 7F0DFC10 14200010 */ bnez $at, .L7F0DFC54 +/* 114744 7F0DFC14 00165A00 */ sll $t3, $s6, 8 +/* 114748 7F0DFC18 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 11474C 7F0DFC1C 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 114750 7F0DFC20 93AE00A4 */ lbu $t6, 0xa4($sp) +/* 114754 7F0DFC24 00165A00 */ sll $t3, $s6, 8 +/* 114758 7F0DFC28 0177C025 */ or $t8, $t3, $s7 +/* 11475C 7F0DFC2C 03384021 */ addu $t0, $t9, $t8 +/* 114760 7F0DFC30 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 114764 7F0DFC34 A10E0000 */ sb $t6, ($t0) +/* 114768 7F0DFC38 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 11476C 7F0DFC3C 00165200 */ sll $t2, $s6, 8 +/* 114770 7F0DFC40 01574825 */ or $t1, $t2, $s7 +/* 114774 7F0DFC44 240F0001 */ li $t7, 1 +/* 114778 7F0DFC48 01A96021 */ addu $t4, $t5, $t1 +/* 11477C 7F0DFC4C 10000017 */ b .L7F0DFCAC +/* 114780 7F0DFC50 A18FA800 */ sb $t7, -0x5800($t4) +.L7F0DFC54: +/* 114784 7F0DFC54 0177C825 */ or $t9, $t3, $s7 +/* 114788 7F0DFC58 2B214000 */ slti $at, $t9, 0x4000 +/* 11478C 7F0DFC5C 14200013 */ bnez $at, .L7F0DFCAC +/* 114790 7F0DFC60 93B800A4 */ lbu $t8, 0xa4($sp) +/* 114794 7F0DFC64 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 114798 7F0DFC68 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 11479C 7F0DFC6C 00164200 */ sll $t0, $s6, 8 +/* 1147A0 7F0DFC70 01175025 */ or $t2, $t0, $s7 +/* 1147A4 7F0DFC74 01CA6821 */ addu $t5, $t6, $t2 +/* 1147A8 7F0DFC78 A1B80000 */ sb $t8, ($t5) +/* 1147AC 7F0DFC7C 00167A00 */ sll $t7, $s6, 8 +/* 1147B0 7F0DFC80 01F76025 */ or $t4, $t7, $s7 +/* 1147B4 7F0DFC84 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 1147B8 7F0DFC88 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 1147BC 7F0DFC8C 318B1800 */ andi $t3, $t4, 0x1800 +/* 1147C0 7F0DFC90 01177025 */ or $t6, $t0, $s7 +/* 1147C4 7F0DFC94 31CA00FF */ andi $t2, $t6, 0xff +/* 1147C8 7F0DFC98 000BC8C3 */ sra $t9, $t3, 3 +/* 1147CC 7F0DFC9C 032AC025 */ or $t8, $t9, $t2 +/* 1147D0 7F0DFCA0 24090001 */ li $t1, 1 +/* 1147D4 7F0DFCA4 01B87821 */ addu $t7, $t5, $t8 +/* 1147D8 7F0DFCA8 A1E90000 */ sb $t1, ($t7) +.L7F0DFCAC: +/* 1147DC 7F0DFCAC 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 1147E0 7F0DFCB0 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 1147E4 7F0DFCB4 2E0C0001 */ sltiu $t4, $s0, 1 +/* 1147E8 7F0DFCB8 AFAC0048 */ sw $t4, 0x48($sp) +/* 1147EC 7F0DFCBC 02184821 */ addu $t1, $s0, $t8 +/* 1147F0 7F0DFCC0 912F0000 */ lbu $t7, ($t1) +/* 1147F4 7F0DFCC4 322B0001 */ andi $t3, $s1, 1 +/* 1147F8 7F0DFCC8 320800A8 */ andi $t0, $s0, 0xa8 +/* 1147FC 7F0DFCCC 01687025 */ or $t6, $t3, $t0 +/* 114800 7F0DFCD0 000C5180 */ sll $t2, $t4, 6 +/* 114804 7F0DFCD4 01CA6825 */ or $t5, $t6, $t2 +/* 114808 7F0DFCD8 01ED8825 */ or $s1, $t7, $t5 +/* 11480C 7F0DFCDC 322C00FF */ andi $t4, $s1, 0xff +/* 114810 7F0DFCE0 10000AC6 */ b .L7F0E27FC +/* 114814 7F0DFCE4 01808825 */ move $s1, $t4 +spectrum_op_ED_68: +/* 114818 7F0DFCE8 8FAB028C */ lw $t3, 0x28c($sp) +/* 11481C 7F0DFCEC 02402825 */ move $a1, $s2 +/* 114820 7F0DFCF0 02603025 */ move $a2, $s3 +/* 114824 7F0DFCF4 25640008 */ addiu $a0, $t3, 8 +/* 114828 7F0DFCF8 0FC34DB6 */ jal spectrum_input_handling +/* 11482C 7F0DFCFC AFA4028C */ sw $a0, 0x28c($sp) +/* 114830 7F0DFD00 8FB9028C */ lw $t9, 0x28c($sp) +/* 114834 7F0DFD04 304EFFFF */ andi $t6, $v0, 0xffff +/* 114838 7F0DFD08 000E5203 */ sra $t2, $t6, 8 +/* 11483C 7F0DFD0C A7A200A2 */ sh $v0, 0xa2($sp) +/* 114840 7F0DFD10 032AC021 */ addu $t8, $t9, $t2 +/* 114844 7F0DFD14 93B700A3 */ lbu $s7, 0xa3($sp) +/* 114848 7F0DFD18 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 11484C 7F0DFD1C 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 114850 7F0DFD20 2EE90001 */ sltiu $t1, $s7, 1 +/* 114854 7F0DFD24 AFA90048 */ sw $t1, 0x48($sp) +/* 114858 7F0DFD28 AFB8028C */ sw $t8, 0x28c($sp) +/* 11485C 7F0DFD2C 02F95021 */ addu $t2, $s7, $t9 +/* 114860 7F0DFD30 91580000 */ lbu $t8, ($t2) +/* 114864 7F0DFD34 322F0001 */ andi $t7, $s1, 1 +/* 114868 7F0DFD38 32ED00A8 */ andi $t5, $s7, 0xa8 +/* 11486C 7F0DFD3C 01ED6025 */ or $t4, $t7, $t5 +/* 114870 7F0DFD40 00094180 */ sll $t0, $t1, 6 +/* 114874 7F0DFD44 01887025 */ or $t6, $t4, $t0 +/* 114878 7F0DFD48 030E8825 */ or $s1, $t8, $t6 +/* 11487C 7F0DFD4C 322900FF */ andi $t1, $s1, 0xff +/* 114880 7F0DFD50 10000AAA */ b .L7F0E27FC +/* 114884 7F0DFD54 01208825 */ move $s1, $t1 +spectrum_op_ED_69: +/* 114888 7F0DFD58 8FAF028C */ lw $t7, 0x28c($sp) +/* 11488C 7F0DFD5C 02402825 */ move $a1, $s2 +/* 114890 7F0DFD60 02603025 */ move $a2, $s3 +/* 114894 7F0DFD64 25E40008 */ addiu $a0, $t7, 8 +/* 114898 7F0DFD68 AFA4028C */ sw $a0, 0x28c($sp) +/* 11489C 7F0DFD6C 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 1148A0 7F0DFD70 02E03825 */ move $a3, $s7 +/* 1148A4 7F0DFD74 8FAB028C */ lw $t3, 0x28c($sp) +/* 1148A8 7F0DFD78 AFA20048 */ sw $v0, 0x48($sp) +/* 1148AC 7F0DFD7C 01624021 */ addu $t0, $t3, $v0 +/* 1148B0 7F0DFD80 10000A9E */ b .L7F0E27FC +/* 1148B4 7F0DFD84 AFA8028C */ sw $t0, 0x28c($sp) +spectrum_op_ED_6A: +/* 1148B8 7F0DFD88 0016C200 */ sll $t8, $s6, 8 +/* 1148BC 7F0DFD8C 03177025 */ or $t6, $t8, $s7 +/* 1148C0 7F0DFD90 00164A00 */ sll $t1, $s6, 8 +/* 1148C4 7F0DFD94 01377825 */ or $t7, $t1, $s7 +/* 1148C8 7F0DFD98 31CDFFFF */ andi $t5, $t6, 0xffff +/* 1148CC 7F0DFD9C 8FB9028C */ lw $t9, 0x28c($sp) +/* 1148D0 7F0DFDA0 01ED5821 */ addu $t3, $t7, $t5 +/* 1148D4 7F0DFDA4 322C0001 */ andi $t4, $s1, 1 +/* 1148D8 7F0DFDA8 016C4021 */ addu $t0, $t3, $t4 +/* 1148DC 7F0DFDAC 272A000B */ addiu $t2, $t9, 0xb +/* 1148E0 7F0DFDB0 0008C202 */ srl $t8, $t0, 8 +/* 1148E4 7F0DFDB4 AFAA028C */ sw $t2, 0x28c($sp) +/* 1148E8 7F0DFDB8 330900A8 */ andi $t1, $t8, 0xa8 +/* 1148EC 7F0DFDBC 3119FFFF */ andi $t9, $t0, 0xffff +/* 1148F0 7F0DFDC0 00087C02 */ srl $t7, $t0, 0x10 +/* 1148F4 7F0DFDC4 00165A00 */ sll $t3, $s6, 8 +/* 1148F8 7F0DFDC8 01776025 */ or $t4, $t3, $s7 +/* 1148FC 7F0DFDCC 012F6825 */ or $t5, $t1, $t7 +/* 114900 7F0DFDD0 2F2A0001 */ sltiu $t2, $t9, 1 +/* 114904 7F0DFDD4 31990FFF */ andi $t9, $t4, 0xfff +/* 114908 7F0DFDD8 31C90FFF */ andi $t1, $t6, 0xfff +/* 11490C 7F0DFDDC 03297821 */ addu $t7, $t9, $t1 +/* 114910 7F0DFDE0 322B0001 */ andi $t3, $s1, 1 +/* 114914 7F0DFDE4 01EB6021 */ addu $t4, $t7, $t3 +/* 114918 7F0DFDE8 24010FFF */ li $at, 4095 +/* 11491C 7F0DFDEC 002CC02A */ slt $t8, $at, $t4 +/* 114920 7F0DFDF0 0018C900 */ sll $t9, $t8, 4 +/* 114924 7F0DFDF4 01B94825 */ or $t1, $t5, $t9 +/* 114928 7F0DFDF8 00167A00 */ sll $t7, $s6, 8 +/* 11492C 7F0DFDFC 01F75825 */ or $t3, $t7, $s7 +/* 114930 7F0DFE00 0016C200 */ sll $t8, $s6, 8 +/* 114934 7F0DFE04 03176827 */ nor $t5, $t8, $s7 +/* 114938 7F0DFE08 01C0C825 */ move $t9, $t6 +/* 11493C 7F0DFE0C 01B97826 */ xor $t7, $t5, $t9 +/* 114940 7F0DFE10 01686026 */ xor $t4, $t3, $t0 +/* 114944 7F0DFE14 01EC5824 */ and $t3, $t7, $t4 +/* 114948 7F0DFE18 31788000 */ andi $t8, $t3, 0x8000 +/* 11494C 7F0DFE1C A7AE00A0 */ sh $t6, 0xa0($sp) +/* 114950 7F0DFE20 00187342 */ srl $t6, $t8, 0xd +/* 114954 7F0DFE24 012E6825 */ or $t5, $t1, $t6 +/* 114958 7F0DFE28 000AC980 */ sll $t9, $t2, 6 +/* 11495C 7F0DFE2C 01B98825 */ or $s1, $t5, $t9 +/* 114960 7F0DFE30 0008B202 */ srl $s6, $t0, 8 +/* 114964 7F0DFE34 32CB00FF */ andi $t3, $s6, 0xff +/* 114968 7F0DFE38 362F0002 */ ori $t7, $s1, 2 +/* 11496C 7F0DFE3C AFA8009C */ sw $t0, 0x9c($sp) +/* 114970 7F0DFE40 93B7009F */ lbu $s7, 0x9f($sp) +/* 114974 7F0DFE44 31F100FF */ andi $s1, $t7, 0xff +/* 114978 7F0DFE48 0160B025 */ move $s6, $t3 +/* 11497C 7F0DFE4C 10000A6B */ b .L7F0E27FC +/* 114980 7F0DFE50 AFAA0048 */ sw $t2, 0x48($sp) +spectrum_op_ED_6B: +/* 114984 7F0DFE54 8FB8028C */ lw $t8, 0x28c($sp) +/* 114988 7F0DFE58 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 11498C 7F0DFE5C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 114990 7F0DFE60 97AE0298 */ lhu $t6, 0x298($sp) +/* 114994 7F0DFE64 27090010 */ addiu $t1, $t8, 0x10 +/* 114998 7F0DFE68 AFA9028C */ sw $t1, 0x28c($sp) +/* 11499C 7F0DFE6C 014E7821 */ addu $t7, $t2, $t6 +/* 1149A0 7F0DFE70 91EC0001 */ lbu $t4, 1($t7) +/* 1149A4 7F0DFE74 01CA6821 */ addu $t5, $t6, $t2 +/* 1149A8 7F0DFE78 91B90000 */ lbu $t9, ($t5) +/* 1149AC 7F0DFE7C 000C4200 */ sll $t0, $t4, 8 +/* 1149B0 7F0DFE80 25D80002 */ addiu $t8, $t6, 2 +/* 1149B4 7F0DFE84 03285825 */ or $t3, $t9, $t0 +/* 1149B8 7F0DFE88 3169FFFF */ andi $t1, $t3, 0xffff +/* 1149BC 7F0DFE8C A7AB009A */ sh $t3, 0x9a($sp) +/* 1149C0 7F0DFE90 A7B80298 */ sh $t8, 0x298($sp) +/* 1149C4 7F0DFE94 012A6821 */ addu $t5, $t1, $t2 +/* 1149C8 7F0DFE98 91B70000 */ lbu $s7, ($t5) +/* 1149CC 7F0DFE9C 10000A57 */ b .L7F0E27FC +/* 1149D0 7F0DFEA0 91B60001 */ lbu $s6, 1($t5) +spectrum_op_ED_6C: +/* 1149D4 7F0DFEA4 00108023 */ negu $s0, $s0 +/* 1149D8 7F0DFEA8 321900FF */ andi $t9, $s0, 0xff +/* 1149DC 7F0DFEAC 8FAF028C */ lw $t7, 0x28c($sp) +/* 1149E0 7F0DFEB0 2F280001 */ sltiu $t0, $t9, 1 +/* 1149E4 7F0DFEB4 332A000F */ andi $t2, $t9, 0xf +/* 1149E8 7F0DFEB8 03208025 */ move $s0, $t9 +/* 1149EC 7F0DFEBC 332B00A8 */ andi $t3, $t9, 0xa8 +/* 1149F0 7F0DFEC0 25EC0004 */ addiu $t4, $t7, 4 +/* 1149F4 7F0DFEC4 3B390080 */ xori $t9, $t9, 0x80 +/* 1149F8 7F0DFEC8 000A682A */ slt $t5, $zero, $t2 +/* 1149FC 7F0DFECC 0008C180 */ sll $t8, $t0, 6 +/* 114A00 7F0DFED0 AFAC028C */ sw $t4, 0x28c($sp) +/* 114A04 7F0DFED4 01784825 */ or $t1, $t3, $t8 +/* 114A08 7F0DFED8 000D7900 */ sll $t7, $t5, 4 +/* 114A0C 7F0DFEDC 2F390001 */ sltiu $t9, $t9, 1 +/* 114A10 7F0DFEE0 AFA80048 */ sw $t0, 0x48($sp) +/* 114A14 7F0DFEE4 00194080 */ sll $t0, $t9, 2 +/* 114A18 7F0DFEE8 012F6025 */ or $t4, $t1, $t7 +/* 114A1C 7F0DFEEC 01887025 */ or $t6, $t4, $t0 +/* 114A20 7F0DFEF0 35CB0002 */ ori $t3, $t6, 2 +/* 114A24 7F0DFEF4 0010C02A */ slt $t8, $zero, $s0 +/* 114A28 7F0DFEF8 01788825 */ or $s1, $t3, $t8 +/* 114A2C 7F0DFEFC 322A00FF */ andi $t2, $s1, 0xff +/* 114A30 7F0DFF00 10000A3E */ b .L7F0E27FC +/* 114A34 7F0DFF04 01408825 */ move $s1, $t2 +spectrum_op_ED_6D: +/* 114A38 7F0DFF08 8FAD028C */ lw $t5, 0x28c($sp) +/* 114A3C 7F0DFF0C 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 114A40 7F0DFF10 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 114A44 7F0DFF14 97AC0292 */ lhu $t4, 0x292($sp) +/* 114A48 7F0DFF18 25A90004 */ addiu $t1, $t5, 4 +/* 114A4C 7F0DFF1C AFA9028C */ sw $t1, 0x28c($sp) +/* 114A50 7F0DFF20 25390006 */ addiu $t9, $t1, 6 +/* 114A54 7F0DFF24 AFB9028C */ sw $t9, 0x28c($sp) +/* 114A58 7F0DFF28 010CC021 */ addu $t8, $t0, $t4 +/* 114A5C 7F0DFF2C 930A0001 */ lbu $t2, 1($t8) +/* 114A60 7F0DFF30 01887021 */ addu $t6, $t4, $t0 +/* 114A64 7F0DFF34 91CB0000 */ lbu $t3, ($t6) +/* 114A68 7F0DFF38 000A6A00 */ sll $t5, $t2, 8 +/* 114A6C 7F0DFF3C 258F0002 */ addiu $t7, $t4, 2 +/* 114A70 7F0DFF40 016D4825 */ or $t1, $t3, $t5 +/* 114A74 7F0DFF44 A7A90298 */ sh $t1, 0x298($sp) +/* 114A78 7F0DFF48 10000A2C */ b .L7F0E27FC +/* 114A7C 7F0DFF4C A7AF0292 */ sh $t7, 0x292($sp) +spectrum_op_ED_6E: +/* 114A80 7F0DFF50 8FB9028C */ lw $t9, 0x28c($sp) +/* 114A84 7F0DFF54 24080001 */ li $t0, 1 +/* 114A88 7F0DFF58 A3A8029B */ sb $t0, 0x29b($sp) +/* 114A8C 7F0DFF5C 272E0004 */ addiu $t6, $t9, 4 +/* 114A90 7F0DFF60 10000A26 */ b .L7F0E27FC +/* 114A94 7F0DFF64 AFAE028C */ sw $t6, 0x28c($sp) +spectrum_op_ED_6F: +/* 114A98 7F0DFF68 8FB8028C */ lw $t8, 0x28c($sp) +/* 114A9C 7F0DFF6C 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 114AA0 7F0DFF70 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 114AA4 7F0DFF74 00165A00 */ sll $t3, $s6, 8 +/* 114AA8 7F0DFF78 01776825 */ or $t5, $t3, $s7 +/* 114AAC 7F0DFF7C 270A0005 */ addiu $t2, $t8, 5 +/* 114AB0 7F0DFF80 AFAA028C */ sw $t2, 0x28c($sp) +/* 114AB4 7F0DFF84 01A96021 */ addu $t4, $t5, $t1 +/* 114AB8 7F0DFF88 918F0000 */ lbu $t7, ($t4) +/* 114ABC 7F0DFF8C 320E000F */ andi $t6, $s0, 0xf +/* 114AC0 7F0DFF90 320A00F0 */ andi $t2, $s0, 0xf0 +/* 114AC4 7F0DFF94 00166A00 */ sll $t5, $s6, 8 +/* 114AC8 7F0DFF98 000FC103 */ sra $t8, $t7, 4 +/* 114ACC 7F0DFF9C 01588025 */ or $s0, $t2, $t8 +/* 114AD0 7F0DFFA0 01B74825 */ or $t1, $t5, $s7 +/* 114AD4 7F0DFFA4 000FC900 */ sll $t9, $t7, 4 +/* 114AD8 7F0DFFA8 01D94025 */ or $t0, $t6, $t9 +/* 114ADC 7F0DFFAC 320B00FF */ andi $t3, $s0, 0xff +/* 114AE0 7F0DFFB0 29215B00 */ slti $at, $t1, 0x5b00 +/* 114AE4 7F0DFFB4 A3A80098 */ sb $t0, 0x98($sp) +/* 114AE8 7F0DFFB8 01608025 */ move $s0, $t3 +/* 114AEC 7F0DFFBC 14200009 */ bnez $at, .L7F0DFFE4 +/* 114AF0 7F0DFFC0 A3AF0099 */ sb $t7, 0x99($sp) +/* 114AF4 7F0DFFC4 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 114AF8 7F0DFFC8 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 114AFC 7F0DFFCC 01006025 */ move $t4, $t0 +/* 114B00 7F0DFFD0 0016CA00 */ sll $t9, $s6, 8 +/* 114B04 7F0DFFD4 03374025 */ or $t0, $t9, $s7 +/* 114B08 7F0DFFD8 01C87821 */ addu $t7, $t6, $t0 +/* 114B0C 7F0DFFDC 1000002B */ b .L7F0E008C +/* 114B10 7F0DFFE0 A1EC0000 */ sb $t4, ($t7) +.L7F0DFFE4: +/* 114B14 7F0DFFE4 00165200 */ sll $t2, $s6, 8 +/* 114B18 7F0DFFE8 0157C025 */ or $t8, $t2, $s7 +/* 114B1C 7F0DFFEC 2B015800 */ slti $at, $t8, 0x5800 +/* 114B20 7F0DFFF0 14200010 */ bnez $at, .L7F0E0034 +/* 114B24 7F0DFFF4 00164A00 */ sll $t1, $s6, 8 +/* 114B28 7F0DFFF8 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 114B2C 7F0DFFFC 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 114B30 7F0E0000 93AB0098 */ lbu $t3, 0x98($sp) +/* 114B34 7F0E0004 00164A00 */ sll $t1, $s6, 8 +/* 114B38 7F0E0008 0137C825 */ or $t9, $t1, $s7 +/* 114B3C 7F0E000C 01B97021 */ addu $t6, $t5, $t9 +/* 114B40 7F0E0010 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 114B44 7F0E0014 A1CB0000 */ sb $t3, ($t6) +/* 114B48 7F0E0018 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 114B4C 7F0E001C 00167A00 */ sll $t7, $s6, 8 +/* 114B50 7F0E0020 01F75025 */ or $t2, $t7, $s7 +/* 114B54 7F0E0024 24080001 */ li $t0, 1 +/* 114B58 7F0E0028 018AC021 */ addu $t8, $t4, $t2 +/* 114B5C 7F0E002C 10000017 */ b .L7F0E008C +/* 114B60 7F0E0030 A308A800 */ sb $t0, -0x5800($t8) +.L7F0E0034: +/* 114B64 7F0E0034 01376825 */ or $t5, $t1, $s7 +/* 114B68 7F0E0038 29A14000 */ slti $at, $t5, 0x4000 +/* 114B6C 7F0E003C 14200013 */ bnez $at, .L7F0E008C +/* 114B70 7F0E0040 93B90098 */ lbu $t9, 0x98($sp) +/* 114B74 7F0E0044 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 114B78 7F0E0048 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 114B7C 7F0E004C 00167200 */ sll $t6, $s6, 8 +/* 114B80 7F0E0050 01D77825 */ or $t7, $t6, $s7 +/* 114B84 7F0E0054 016F6021 */ addu $t4, $t3, $t7 +/* 114B88 7F0E0058 A1990000 */ sb $t9, ($t4) +/* 114B8C 7F0E005C 00164200 */ sll $t0, $s6, 8 +/* 114B90 7F0E0060 0117C025 */ or $t8, $t0, $s7 +/* 114B94 7F0E0064 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 114B98 7F0E0068 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 114B9C 7F0E006C 33091800 */ andi $t1, $t8, 0x1800 +/* 114BA0 7F0E0070 01D75825 */ or $t3, $t6, $s7 +/* 114BA4 7F0E0074 316F00FF */ andi $t7, $t3, 0xff +/* 114BA8 7F0E0078 000968C3 */ sra $t5, $t1, 3 +/* 114BAC 7F0E007C 01AFC825 */ or $t9, $t5, $t7 +/* 114BB0 7F0E0080 240A0001 */ li $t2, 1 +/* 114BB4 7F0E0084 01994021 */ addu $t0, $t4, $t9 +/* 114BB8 7F0E0088 A10A0000 */ sb $t2, ($t0) +.L7F0E008C: +/* 114BBC 7F0E008C 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 114BC0 7F0E0090 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 114BC4 7F0E0094 2E180001 */ sltiu $t8, $s0, 1 +/* 114BC8 7F0E0098 AFB80048 */ sw $t8, 0x48($sp) +/* 114BCC 7F0E009C 02195021 */ addu $t2, $s0, $t9 +/* 114BD0 7F0E00A0 91480000 */ lbu $t0, ($t2) +/* 114BD4 7F0E00A4 32290001 */ andi $t1, $s1, 1 +/* 114BD8 7F0E00A8 320E00A8 */ andi $t6, $s0, 0xa8 +/* 114BDC 7F0E00AC 012E5825 */ or $t3, $t1, $t6 +/* 114BE0 7F0E00B0 00187980 */ sll $t7, $t8, 6 +/* 114BE4 7F0E00B4 016F6025 */ or $t4, $t3, $t7 +/* 114BE8 7F0E00B8 010C8825 */ or $s1, $t0, $t4 +/* 114BEC 7F0E00BC 323800FF */ andi $t8, $s1, 0xff +/* 114BF0 7F0E00C0 100009CE */ b .L7F0E27FC +/* 114BF4 7F0E00C4 03008825 */ move $s1, $t8 +spectrum_op_ED_70: +/* 114BF8 7F0E00C8 8FA9028C */ lw $t1, 0x28c($sp) +/* 114BFC 7F0E00CC 02402825 */ move $a1, $s2 +/* 114C00 7F0E00D0 02603025 */ move $a2, $s3 +/* 114C04 7F0E00D4 25240008 */ addiu $a0, $t1, 8 +/* 114C08 7F0E00D8 0FC34DB6 */ jal spectrum_input_handling +/* 114C0C 7F0E00DC AFA4028C */ sw $a0, 0x28c($sp) +/* 114C10 7F0E00E0 8FAB028C */ lw $t3, 0x28c($sp) +/* 114C14 7F0E00E4 3058FFFF */ andi $t8, $v0, 0xffff +/* 114C18 7F0E00E8 00187A03 */ sra $t7, $t8, 8 +/* 114C1C 7F0E00EC 016FC821 */ addu $t9, $t3, $t7 +/* 114C20 7F0E00F0 AFB9028C */ sw $t9, 0x28c($sp) +/* 114C24 7F0E00F4 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 114C28 7F0E00F8 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 114C2C 7F0E00FC 330A00FF */ andi $t2, $t8, 0xff +/* 114C30 7F0E0100 330900A8 */ andi $t1, $t8, 0xa8 +/* 114C34 7F0E0104 2D480001 */ sltiu $t0, $t2, 1 +/* 114C38 7F0E0108 A3B80097 */ sb $t8, 0x97($sp) +/* 114C3C 7F0E010C 322C0001 */ andi $t4, $s1, 1 +/* 114C40 7F0E0110 01897025 */ or $t6, $t4, $t1 +/* 114C44 7F0E0114 AFA80048 */ sw $t0, 0x48($sp) +/* 114C48 7F0E0118 A7A20094 */ sh $v0, 0x94($sp) +/* 114C4C 7F0E011C 0159C021 */ addu $t8, $t2, $t9 +/* 114C50 7F0E0120 930C0000 */ lbu $t4, ($t8) +/* 114C54 7F0E0124 00085980 */ sll $t3, $t0, 6 +/* 114C58 7F0E0128 01CB7825 */ or $t7, $t6, $t3 +/* 114C5C 7F0E012C 018F8825 */ or $s1, $t4, $t7 +/* 114C60 7F0E0130 322900FF */ andi $t1, $s1, 0xff +/* 114C64 7F0E0134 100009B1 */ b .L7F0E27FC +/* 114C68 7F0E0138 01208825 */ move $s1, $t1 +spectrum_op_ED_71: +/* 114C6C 7F0E013C 8FA8028C */ lw $t0, 0x28c($sp) +/* 114C70 7F0E0140 02402825 */ move $a1, $s2 +/* 114C74 7F0E0144 02603025 */ move $a2, $s3 +/* 114C78 7F0E0148 25040008 */ addiu $a0, $t0, 8 +/* 114C7C 7F0E014C AFA4028C */ sw $a0, 0x28c($sp) +/* 114C80 7F0E0150 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 114C84 7F0E0154 00003825 */ move $a3, $zero +/* 114C88 7F0E0158 8FAB028C */ lw $t3, 0x28c($sp) +/* 114C8C 7F0E015C AFA20048 */ sw $v0, 0x48($sp) +/* 114C90 7F0E0160 01625021 */ addu $t2, $t3, $v0 +/* 114C94 7F0E0164 100009A5 */ b .L7F0E27FC +/* 114C98 7F0E0168 AFAA028C */ sw $t2, 0x28c($sp) +spectrum_op_ED_72: +/* 114C9C 7F0E016C 97AC0292 */ lhu $t4, 0x292($sp) +/* 114CA0 7F0E0170 8FB9028C */ lw $t9, 0x28c($sp) +/* 114CA4 7F0E0174 00167A00 */ sll $t7, $s6, 8 +/* 114CA8 7F0E0178 01F74825 */ or $t1, $t7, $s7 +/* 114CAC 7F0E017C 322E0001 */ andi $t6, $s1, 1 +/* 114CB0 7F0E0180 3C010001 */ lui $at, (0x0001FFFF >> 16) # lui $at, 1 +/* 114CB4 7F0E0184 012C4023 */ subu $t0, $t1, $t4 +/* 114CB8 7F0E0188 010E5823 */ subu $t3, $t0, $t6 +/* 114CBC 7F0E018C 3421FFFF */ ori $at, (0x0001FFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 114CC0 7F0E0190 2738000B */ addiu $t8, $t9, 0xb +/* 114CC4 7F0E0194 AFB8028C */ sw $t8, 0x28c($sp) +/* 114CC8 7F0E0198 01616824 */ and $t5, $t3, $at +/* 114CCC 7F0E019C 000DC202 */ srl $t8, $t5, 8 +/* 114CD0 7F0E01A0 330F00A8 */ andi $t7, $t8, 0xa8 +/* 114CD4 7F0E01A4 000D4C02 */ srl $t1, $t5, 0x10 +/* 114CD8 7F0E01A8 01E94025 */ or $t0, $t7, $t1 +/* 114CDC 7F0E01AC 31AAFFFF */ andi $t2, $t5, 0xffff +/* 114CE0 7F0E01B0 2D590001 */ sltiu $t9, $t2, 1 +/* 114CE4 7F0E01B4 322A0001 */ andi $t2, $s1, 1 +/* 114CE8 7F0E01B8 350E0002 */ ori $t6, $t0, 2 +/* 114CEC 7F0E01BC 00164A00 */ sll $t1, $s6, 8 +/* 114CF0 7F0E01C0 318B0FFF */ andi $t3, $t4, 0xfff +/* 114CF4 7F0E01C4 016A7821 */ addu $t7, $t3, $t2 +/* 114CF8 7F0E01C8 01374025 */ or $t0, $t1, $s7 +/* 114CFC 7F0E01CC 310B0FFF */ andi $t3, $t0, 0xfff +/* 114D00 7F0E01D0 016F502A */ slt $t2, $t3, $t7 +/* 114D04 7F0E01D4 000A4900 */ sll $t1, $t2, 4 +/* 114D08 7F0E01D8 01C94025 */ or $t0, $t6, $t1 +/* 114D0C 7F0E01DC 00165A00 */ sll $t3, $s6, 8 +/* 114D10 7F0E01E0 01777825 */ or $t7, $t3, $s7 +/* 114D14 7F0E01E4 00167200 */ sll $t6, $s6, 8 +/* 114D18 7F0E01E8 01D74825 */ or $t1, $t6, $s7 +/* 114D1C 7F0E01EC 012D5826 */ xor $t3, $t1, $t5 +/* 114D20 7F0E01F0 01EC5026 */ xor $t2, $t7, $t4 +/* 114D24 7F0E01F4 014B7824 */ and $t7, $t2, $t3 +/* 114D28 7F0E01F8 A7AC0092 */ sh $t4, 0x92($sp) +/* 114D2C 7F0E01FC 31EC8000 */ andi $t4, $t7, 0x8000 +/* 114D30 7F0E0200 000C7342 */ srl $t6, $t4, 0xd +/* 114D34 7F0E0204 AFAD008C */ sw $t5, 0x8c($sp) +/* 114D38 7F0E0208 00196980 */ sll $t5, $t9, 6 +/* 114D3C 7F0E020C 010E4825 */ or $t1, $t0, $t6 +/* 114D40 7F0E0210 012D8825 */ or $s1, $t1, $t5 +/* 114D44 7F0E0214 362A0002 */ ori $t2, $s1, 2 +/* 114D48 7F0E0218 315100FF */ andi $s1, $t2, 0xff +/* 114D4C 7F0E021C 93B7008F */ lbu $s7, 0x8f($sp) +/* 114D50 7F0E0220 331600FF */ andi $s6, $t8, 0xff +/* 114D54 7F0E0224 10000975 */ b .L7F0E27FC +/* 114D58 7F0E0228 AFB90048 */ sw $t9, 0x48($sp) +spectrum_op_ED_73: +/* 114D5C 7F0E022C 8FAF028C */ lw $t7, 0x28c($sp) +/* 114D60 7F0E0230 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 114D64 7F0E0234 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 114D68 7F0E0238 97A80298 */ lhu $t0, 0x298($sp) +/* 114D6C 7F0E023C 25EC0010 */ addiu $t4, $t7, 0x10 +/* 114D70 7F0E0240 AFAC028C */ sw $t4, 0x28c($sp) +/* 114D74 7F0E0244 01C86821 */ addu $t5, $t6, $t0 +/* 114D78 7F0E0248 91AA0001 */ lbu $t2, 1($t5) +/* 114D7C 7F0E024C 010EC821 */ addu $t9, $t0, $t6 +/* 114D80 7F0E0250 93290000 */ lbu $t1, ($t9) +/* 114D84 7F0E0254 000A5A00 */ sll $t3, $t2, 8 +/* 114D88 7F0E0258 250F0002 */ addiu $t7, $t0, 2 +/* 114D8C 7F0E025C 012BC025 */ or $t8, $t1, $t3 +/* 114D90 7F0E0260 330CFFFF */ andi $t4, $t8, 0xffff +/* 114D94 7F0E0264 29815B00 */ slti $at, $t4, 0x5b00 +/* 114D98 7F0E0268 A7B8008A */ sh $t8, 0x8a($sp) +/* 114D9C 7F0E026C 14200007 */ bnez $at, .L7F0E028C +/* 114DA0 7F0E0270 A7AF0298 */ sh $t7, 0x298($sp) +/* 114DA4 7F0E0274 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 114DA8 7F0E0278 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 114DAC 7F0E027C 97B90292 */ lhu $t9, 0x292($sp) +/* 114DB0 7F0E0280 01CC6821 */ addu $t5, $t6, $t4 +/* 114DB4 7F0E0284 10000023 */ b .L7F0E0314 +/* 114DB8 7F0E0288 A1B90000 */ sb $t9, ($t5) +.L7F0E028C: +/* 114DBC 7F0E028C 97AA008A */ lhu $t2, 0x8a($sp) +/* 114DC0 7F0E0290 97B9008A */ lhu $t9, 0x8a($sp) +/* 114DC4 7F0E0294 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 114DC8 7F0E0298 29415800 */ slti $at, $t2, 0x5800 +/* 114DCC 7F0E029C 5420000D */ bnezl $at, .L7F0E02D4 +/* 114DD0 7F0E02A0 2B214000 */ slti $at, $t9, 0x4000 +/* 114DD4 7F0E02A4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 114DD8 7F0E02A8 97A90292 */ lhu $t1, 0x292($sp) +/* 114DDC 7F0E02AC 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 114DE0 7F0E02B0 016AC021 */ addu $t8, $t3, $t2 +/* 114DE4 7F0E02B4 A3090000 */ sb $t1, ($t8) +/* 114DE8 7F0E02B8 97AE008A */ lhu $t6, 0x8a($sp) +/* 114DEC 7F0E02BC 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 114DF0 7F0E02C0 24080001 */ li $t0, 1 +/* 114DF4 7F0E02C4 01EE6021 */ addu $t4, $t7, $t6 +/* 114DF8 7F0E02C8 10000012 */ b .L7F0E0314 +/* 114DFC 7F0E02CC A188A800 */ sb $t0, -0x5800($t4) +/* 114E00 7F0E02D0 2B214000 */ slti $at, $t9, 0x4000 +.L7F0E02D4: +/* 114E04 7F0E02D4 1420000F */ bnez $at, .L7F0E0314 +/* 114E08 7F0E02D8 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 114E0C 7F0E02DC 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 114E10 7F0E02E0 97AD0292 */ lhu $t5, 0x292($sp) +/* 114E14 7F0E02E4 24090001 */ li $t1, 1 +/* 114E18 7F0E02E8 01795021 */ addu $t2, $t3, $t9 +/* 114E1C 7F0E02EC A14D0000 */ sb $t5, ($t2) +/* 114E20 7F0E02F0 97B8008A */ lhu $t8, 0x8a($sp) +/* 114E24 7F0E02F4 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 114E28 7F0E02F8 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 114E2C 7F0E02FC 330F1800 */ andi $t7, $t8, 0x1800 +/* 114E30 7F0E0300 000F70C3 */ sra $t6, $t7, 3 +/* 114E34 7F0E0304 330800FF */ andi $t0, $t8, 0xff +/* 114E38 7F0E0308 01C86025 */ or $t4, $t6, $t0 +/* 114E3C 7F0E030C 016CC821 */ addu $t9, $t3, $t4 +/* 114E40 7F0E0310 A3290000 */ sb $t1, ($t9) +.L7F0E0314: +/* 114E44 7F0E0314 97AD008A */ lhu $t5, 0x8a($sp) +/* 114E48 7F0E0318 97AB008A */ lhu $t3, 0x8a($sp) +/* 114E4C 7F0E031C 97AF0292 */ lhu $t7, 0x292($sp) +/* 114E50 7F0E0320 25AA0001 */ addiu $t2, $t5, 1 +/* 114E54 7F0E0324 29415B00 */ slti $at, $t2, 0x5b00 +/* 114E58 7F0E0328 14200007 */ bnez $at, .L7F0E0348 +/* 114E5C 7F0E032C 256C0001 */ addiu $t4, $t3, 1 +/* 114E60 7F0E0330 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 114E64 7F0E0334 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 114E68 7F0E0338 000FC203 */ sra $t8, $t7, 8 +/* 114E6C 7F0E033C 01CD4021 */ addu $t0, $t6, $t5 +/* 114E70 7F0E0340 1000092E */ b .L7F0E27FC +/* 114E74 7F0E0344 A1180001 */ sb $t8, 1($t0) +.L7F0E0348: +/* 114E78 7F0E0348 29815800 */ slti $at, $t4, 0x5800 +/* 114E7C 7F0E034C 1420000E */ bnez $at, .L7F0E0388 +/* 114E80 7F0E0350 97AC008A */ lhu $t4, 0x8a($sp) +/* 114E84 7F0E0354 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 114E88 7F0E0358 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 114E8C 7F0E035C 97A90292 */ lhu $t1, 0x292($sp) +/* 114E90 7F0E0360 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 114E94 7F0E0364 014B7821 */ addu $t7, $t2, $t3 +/* 114E98 7F0E0368 0009CA03 */ sra $t9, $t1, 8 +/* 114E9C 7F0E036C A1F90001 */ sb $t9, 1($t7) +/* 114EA0 7F0E0370 97B8008A */ lhu $t8, 0x8a($sp) +/* 114EA4 7F0E0374 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 114EA8 7F0E0378 240E0001 */ li $t6, 1 +/* 114EAC 7F0E037C 01B84021 */ addu $t0, $t5, $t8 +/* 114EB0 7F0E0380 1000091E */ b .L7F0E27FC +/* 114EB4 7F0E0384 A10EA801 */ sb $t6, -0x57ff($t0) +.L7F0E0388: +/* 114EB8 7F0E0388 25890001 */ addiu $t1, $t4, 1 +/* 114EBC 7F0E038C 29214000 */ slti $at, $t1, 0x4000 +/* 114EC0 7F0E0390 1420091A */ bnez $at, .L7F0E27FC +/* 114EC4 7F0E0394 97AA0292 */ lhu $t2, 0x292($sp) +/* 114EC8 7F0E0398 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 114ECC 7F0E039C 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 114ED0 7F0E03A0 000A5A03 */ sra $t3, $t2, 8 +/* 114ED4 7F0E03A4 240D0001 */ li $t5, 1 +/* 114ED8 7F0E03A8 032C7821 */ addu $t7, $t9, $t4 +/* 114EDC 7F0E03AC A1EB0001 */ sb $t3, 1($t7) +/* 114EE0 7F0E03B0 97B8008A */ lhu $t8, 0x8a($sp) +/* 114EE4 7F0E03B4 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 114EE8 7F0E03B8 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 114EEC 7F0E03BC 270E0001 */ addiu $t6, $t8, 1 +/* 114EF0 7F0E03C0 31C81800 */ andi $t0, $t6, 0x1800 +/* 114EF4 7F0E03C4 000848C3 */ sra $t1, $t0, 3 +/* 114EF8 7F0E03C8 31CA00FF */ andi $t2, $t6, 0xff +/* 114EFC 7F0E03CC 012AC825 */ or $t9, $t1, $t2 +/* 114F00 7F0E03D0 01995821 */ addu $t3, $t4, $t9 +/* 114F04 7F0E03D4 10000909 */ b .L7F0E27FC +/* 114F08 7F0E03D8 A16D0000 */ sb $t5, ($t3) +spectrum_op_ED_74: +/* 114F0C 7F0E03DC 00108023 */ negu $s0, $s0 +/* 114F10 7F0E03E0 320800FF */ andi $t0, $s0, 0xff +/* 114F14 7F0E03E4 8FAF028C */ lw $t7, 0x28c($sp) +/* 114F18 7F0E03E8 2D0E0001 */ sltiu $t6, $t0, 1 +/* 114F1C 7F0E03EC 310D000F */ andi $t5, $t0, 0xf +/* 114F20 7F0E03F0 01008025 */ move $s0, $t0 +/* 114F24 7F0E03F4 310900A8 */ andi $t1, $t0, 0xa8 +/* 114F28 7F0E03F8 25F80004 */ addiu $t8, $t7, 4 +/* 114F2C 7F0E03FC 39080080 */ xori $t0, $t0, 0x80 +/* 114F30 7F0E0400 000D582A */ slt $t3, $zero, $t5 +/* 114F34 7F0E0404 000E6180 */ sll $t4, $t6, 6 +/* 114F38 7F0E0408 AFB8028C */ sw $t8, 0x28c($sp) +/* 114F3C 7F0E040C 012CC825 */ or $t9, $t1, $t4 +/* 114F40 7F0E0410 000B7900 */ sll $t7, $t3, 4 +/* 114F44 7F0E0414 2D080001 */ sltiu $t0, $t0, 1 +/* 114F48 7F0E0418 AFAE0048 */ sw $t6, 0x48($sp) +/* 114F4C 7F0E041C 00087080 */ sll $t6, $t0, 2 +/* 114F50 7F0E0420 032FC025 */ or $t8, $t9, $t7 +/* 114F54 7F0E0424 030E5025 */ or $t2, $t8, $t6 +/* 114F58 7F0E0428 35490002 */ ori $t1, $t2, 2 +/* 114F5C 7F0E042C 0010602A */ slt $t4, $zero, $s0 +/* 114F60 7F0E0430 012C8825 */ or $s1, $t1, $t4 +/* 114F64 7F0E0434 322D00FF */ andi $t5, $s1, 0xff +/* 114F68 7F0E0438 100008F0 */ b .L7F0E27FC +/* 114F6C 7F0E043C 01A08825 */ move $s1, $t5 +spectrum_op_ED_75: +/* 114F70 7F0E0440 8FAB028C */ lw $t3, 0x28c($sp) +/* 114F74 7F0E0444 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 114F78 7F0E0448 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 114F7C 7F0E044C 97B80292 */ lhu $t8, 0x292($sp) +/* 114F80 7F0E0450 25790004 */ addiu $t9, $t3, 4 +/* 114F84 7F0E0454 AFB9028C */ sw $t9, 0x28c($sp) +/* 114F88 7F0E0458 27280006 */ addiu $t0, $t9, 6 +/* 114F8C 7F0E045C AFA8028C */ sw $t0, 0x28c($sp) +/* 114F90 7F0E0460 01D86021 */ addu $t4, $t6, $t8 +/* 114F94 7F0E0464 918D0001 */ lbu $t5, 1($t4) +/* 114F98 7F0E0468 030E5021 */ addu $t2, $t8, $t6 +/* 114F9C 7F0E046C 91490000 */ lbu $t1, ($t2) +/* 114FA0 7F0E0470 000D5A00 */ sll $t3, $t5, 8 +/* 114FA4 7F0E0474 270F0002 */ addiu $t7, $t8, 2 +/* 114FA8 7F0E0478 012BC825 */ or $t9, $t1, $t3 +/* 114FAC 7F0E047C A7B90298 */ sh $t9, 0x298($sp) +/* 114FB0 7F0E0480 100008DE */ b .L7F0E27FC +/* 114FB4 7F0E0484 A7AF0292 */ sh $t7, 0x292($sp) +spectrum_op_ED_76: +/* 114FB8 7F0E0488 8FA8028C */ lw $t0, 0x28c($sp) +/* 114FBC 7F0E048C 240E0002 */ li $t6, 2 +/* 114FC0 7F0E0490 A3AE029B */ sb $t6, 0x29b($sp) +/* 114FC4 7F0E0494 250A0004 */ addiu $t2, $t0, 4 +/* 114FC8 7F0E0498 100008D8 */ b .L7F0E27FC +/* 114FCC 7F0E049C AFAA028C */ sw $t2, 0x28c($sp) +spectrum_op_ED_78: +/* 114FD0 7F0E04A0 8FAC028C */ lw $t4, 0x28c($sp) +/* 114FD4 7F0E04A4 02402825 */ move $a1, $s2 +/* 114FD8 7F0E04A8 02603025 */ move $a2, $s3 +/* 114FDC 7F0E04AC 25840008 */ addiu $a0, $t4, 8 +/* 114FE0 7F0E04B0 0FC34DB6 */ jal spectrum_input_handling +/* 114FE4 7F0E04B4 AFA4028C */ sw $a0, 0x28c($sp) +/* 114FE8 7F0E04B8 8FA9028C */ lw $t1, 0x28c($sp) +/* 114FEC 7F0E04BC 304BFFFF */ andi $t3, $v0, 0xffff +/* 114FF0 7F0E04C0 000BCA03 */ sra $t9, $t3, 8 +/* 114FF4 7F0E04C4 A7A20088 */ sh $v0, 0x88($sp) +/* 114FF8 7F0E04C8 0139C021 */ addu $t8, $t1, $t9 +/* 114FFC 7F0E04CC 93B00089 */ lbu $s0, 0x89($sp) +/* 115000 7F0E04D0 3C098009 */ lui $t1, %hi(ptr_pc_keyboard_table_alloc) +/* 115004 7F0E04D4 8D29E334 */ lw $t1, %lo(ptr_pc_keyboard_table_alloc)($t1) +/* 115008 7F0E04D8 2E0F0001 */ sltiu $t7, $s0, 1 +/* 11500C 7F0E04DC AFAF0048 */ sw $t7, 0x48($sp) +/* 115010 7F0E04E0 AFB8028C */ sw $t8, 0x28c($sp) +/* 115014 7F0E04E4 0209C821 */ addu $t9, $s0, $t1 +/* 115018 7F0E04E8 93380000 */ lbu $t8, ($t9) +/* 11501C 7F0E04EC 32280001 */ andi $t0, $s1, 1 +/* 115020 7F0E04F0 320A00A8 */ andi $t2, $s0, 0xa8 +/* 115024 7F0E04F4 010A7025 */ or $t6, $t0, $t2 +/* 115028 7F0E04F8 000F6980 */ sll $t5, $t7, 6 +/* 11502C 7F0E04FC 01CD5825 */ or $t3, $t6, $t5 +/* 115030 7F0E0500 030B8825 */ or $s1, $t8, $t3 +/* 115034 7F0E0504 322F00FF */ andi $t7, $s1, 0xff +/* 115038 7F0E0508 100008BC */ b .L7F0E27FC +/* 11503C 7F0E050C 01E08825 */ move $s1, $t7 +spectrum_op_ED_79: +/* 115040 7F0E0510 8FA8028C */ lw $t0, 0x28c($sp) +/* 115044 7F0E0514 02402825 */ move $a1, $s2 +/* 115048 7F0E0518 02603025 */ move $a2, $s3 +/* 11504C 7F0E051C 25040008 */ addiu $a0, $t0, 8 +/* 115050 7F0E0520 AFA4028C */ sw $a0, 0x28c($sp) +/* 115054 7F0E0524 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 115058 7F0E0528 02003825 */ move $a3, $s0 +/* 11505C 7F0E052C 8FAC028C */ lw $t4, 0x28c($sp) +/* 115060 7F0E0530 AFA20048 */ sw $v0, 0x48($sp) +/* 115064 7F0E0534 01826821 */ addu $t5, $t4, $v0 +/* 115068 7F0E0538 100008B0 */ b .L7F0E27FC +/* 11506C 7F0E053C AFAD028C */ sw $t5, 0x28c($sp) +spectrum_op_ED_7A: +/* 115070 7F0E0540 97B80292 */ lhu $t8, 0x292($sp) +/* 115074 7F0E0544 00165A00 */ sll $t3, $s6, 8 +/* 115078 7F0E0548 8FA9028C */ lw $t1, 0x28c($sp) +/* 11507C 7F0E054C 01777825 */ or $t7, $t3, $s7 +/* 115080 7F0E0550 322A0001 */ andi $t2, $s1, 1 +/* 115084 7F0E0554 01F84021 */ addu $t0, $t7, $t8 +/* 115088 7F0E0558 010A6021 */ addu $t4, $t0, $t2 +/* 11508C 7F0E055C 2539000B */ addiu $t9, $t1, 0xb +/* 115090 7F0E0560 AFB9028C */ sw $t9, 0x28c($sp) +/* 115094 7F0E0564 000C4A02 */ srl $t1, $t4, 8 +/* 115098 7F0E0568 313900A8 */ andi $t9, $t1, 0xa8 +/* 11509C 7F0E056C 318EFFFF */ andi $t6, $t4, 0xffff +/* 1150A0 7F0E0570 000C5C02 */ srl $t3, $t4, 0x10 +/* 1150A4 7F0E0574 00164200 */ sll $t0, $s6, 8 +/* 1150A8 7F0E0578 01175025 */ or $t2, $t0, $s7 +/* 1150AC 7F0E057C 032B7825 */ or $t7, $t9, $t3 +/* 1150B0 7F0E0580 2DCD0001 */ sltiu $t5, $t6, 1 +/* 1150B4 7F0E0584 314E0FFF */ andi $t6, $t2, 0xfff +/* 1150B8 7F0E0588 33190FFF */ andi $t9, $t8, 0xfff +/* 1150BC 7F0E058C 01D95821 */ addu $t3, $t6, $t9 +/* 1150C0 7F0E0590 32280001 */ andi $t0, $s1, 1 +/* 1150C4 7F0E0594 01685021 */ addu $t2, $t3, $t0 +/* 1150C8 7F0E0598 24010FFF */ li $at, 4095 +/* 1150CC 7F0E059C 002A702A */ slt $t6, $at, $t2 +/* 1150D0 7F0E05A0 000EC900 */ sll $t9, $t6, 4 +/* 1150D4 7F0E05A4 01F95825 */ or $t3, $t7, $t9 +/* 1150D8 7F0E05A8 00164200 */ sll $t0, $s6, 8 +/* 1150DC 7F0E05AC 01175027 */ nor $t2, $t0, $s7 +/* 1150E0 7F0E05B0 00167A00 */ sll $t7, $s6, 8 +/* 1150E4 7F0E05B4 01F7C825 */ or $t9, $t7, $s7 +/* 1150E8 7F0E05B8 032C4026 */ xor $t0, $t9, $t4 +/* 1150EC 7F0E05BC 01587026 */ xor $t6, $t2, $t8 +/* 1150F0 7F0E05C0 01C85024 */ and $t2, $t6, $t0 +/* 1150F4 7F0E05C4 A7B80086 */ sh $t8, 0x86($sp) +/* 1150F8 7F0E05C8 31588000 */ andi $t8, $t2, 0x8000 +/* 1150FC 7F0E05CC 00187B42 */ srl $t7, $t8, 0xd +/* 115100 7F0E05D0 AFAC0080 */ sw $t4, 0x80($sp) +/* 115104 7F0E05D4 000D6180 */ sll $t4, $t5, 6 +/* 115108 7F0E05D8 016FC825 */ or $t9, $t3, $t7 +/* 11510C 7F0E05DC 032C8825 */ or $s1, $t9, $t4 +/* 115110 7F0E05E0 362E0002 */ ori $t6, $s1, 2 +/* 115114 7F0E05E4 31D100FF */ andi $s1, $t6, 0xff +/* 115118 7F0E05E8 93B70083 */ lbu $s7, 0x83($sp) +/* 11511C 7F0E05EC 313600FF */ andi $s6, $t1, 0xff +/* 115120 7F0E05F0 10000882 */ b .L7F0E27FC +/* 115124 7F0E05F4 AFAD0048 */ sw $t5, 0x48($sp) +spectrum_op_ED_7B: +/* 115128 7F0E05F8 8FAA028C */ lw $t2, 0x28c($sp) +/* 11512C 7F0E05FC 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 115130 7F0E0600 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 115134 7F0E0604 97AB0298 */ lhu $t3, 0x298($sp) +/* 115138 7F0E0608 25580010 */ addiu $t8, $t2, 0x10 +/* 11513C 7F0E060C AFB8028C */ sw $t8, 0x28c($sp) +/* 115140 7F0E0610 01EB6021 */ addu $t4, $t7, $t3 +/* 115144 7F0E0614 918E0001 */ lbu $t6, 1($t4) +/* 115148 7F0E0618 016F6821 */ addu $t5, $t3, $t7 +/* 11514C 7F0E061C 91B90000 */ lbu $t9, ($t5) +/* 115150 7F0E0620 000E4200 */ sll $t0, $t6, 8 +/* 115154 7F0E0624 256A0002 */ addiu $t2, $t3, 2 +/* 115158 7F0E0628 03284825 */ or $t1, $t9, $t0 +/* 11515C 7F0E062C 3138FFFF */ andi $t8, $t1, 0xffff +/* 115160 7F0E0630 A7A9007E */ sh $t1, 0x7e($sp) +/* 115164 7F0E0634 A7AA0298 */ sh $t2, 0x298($sp) +/* 115168 7F0E0638 01F87021 */ addu $t6, $t7, $t8 +/* 11516C 7F0E063C 91D90001 */ lbu $t9, 1($t6) +/* 115170 7F0E0640 030F6821 */ addu $t5, $t8, $t7 +/* 115174 7F0E0644 91AC0000 */ lbu $t4, ($t5) +/* 115178 7F0E0648 00194200 */ sll $t0, $t9, 8 +/* 11517C 7F0E064C 01884825 */ or $t1, $t4, $t0 +/* 115180 7F0E0650 1000086A */ b .L7F0E27FC +/* 115184 7F0E0654 A7A90292 */ sh $t1, 0x292($sp) +spectrum_op_ED_7C: +/* 115188 7F0E0658 00108023 */ negu $s0, $s0 +/* 11518C 7F0E065C 320D00FF */ andi $t5, $s0, 0xff +/* 115190 7F0E0660 8FAB028C */ lw $t3, 0x28c($sp) +/* 115194 7F0E0664 2DAF0001 */ sltiu $t7, $t5, 1 +/* 115198 7F0E0668 31A8000F */ andi $t0, $t5, 0xf +/* 11519C 7F0E066C 01A08025 */ move $s0, $t5 +/* 1151A0 7F0E0670 31B800A8 */ andi $t8, $t5, 0xa8 +/* 1151A4 7F0E0674 256A0004 */ addiu $t2, $t3, 4 +/* 1151A8 7F0E0678 39AD0080 */ xori $t5, $t5, 0x80 +/* 1151AC 7F0E067C 0008482A */ slt $t1, $zero, $t0 +/* 1151B0 7F0E0680 000FC980 */ sll $t9, $t7, 6 +/* 1151B4 7F0E0684 AFAA028C */ sw $t2, 0x28c($sp) +/* 1151B8 7F0E0688 03196025 */ or $t4, $t8, $t9 +/* 1151BC 7F0E068C 00095900 */ sll $t3, $t1, 4 +/* 1151C0 7F0E0690 2DAD0001 */ sltiu $t5, $t5, 1 +/* 1151C4 7F0E0694 AFAF0048 */ sw $t7, 0x48($sp) +/* 1151C8 7F0E0698 000D7880 */ sll $t7, $t5, 2 +/* 1151CC 7F0E069C 018B5025 */ or $t2, $t4, $t3 +/* 1151D0 7F0E06A0 014F7025 */ or $t6, $t2, $t7 +/* 1151D4 7F0E06A4 35D80002 */ ori $t8, $t6, 2 +/* 1151D8 7F0E06A8 0010C82A */ slt $t9, $zero, $s0 +/* 1151DC 7F0E06AC 03198825 */ or $s1, $t8, $t9 +/* 1151E0 7F0E06B0 322800FF */ andi $t0, $s1, 0xff +/* 1151E4 7F0E06B4 10000851 */ b .L7F0E27FC +/* 1151E8 7F0E06B8 01008825 */ move $s1, $t0 +spectrum_op_ED_7D: +/* 1151EC 7F0E06BC 8FA9028C */ lw $t1, 0x28c($sp) +/* 1151F0 7F0E06C0 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 1151F4 7F0E06C4 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 1151F8 7F0E06C8 97AA0292 */ lhu $t2, 0x292($sp) +/* 1151FC 7F0E06CC 252C0004 */ addiu $t4, $t1, 4 +/* 115200 7F0E06D0 AFAC028C */ sw $t4, 0x28c($sp) +/* 115204 7F0E06D4 258D0006 */ addiu $t5, $t4, 6 +/* 115208 7F0E06D8 AFAD028C */ sw $t5, 0x28c($sp) +/* 11520C 7F0E06DC 01EAC821 */ addu $t9, $t7, $t2 +/* 115210 7F0E06E0 93280001 */ lbu $t0, 1($t9) +/* 115214 7F0E06E4 014F7021 */ addu $t6, $t2, $t7 +/* 115218 7F0E06E8 91D80000 */ lbu $t8, ($t6) +/* 11521C 7F0E06EC 00084A00 */ sll $t1, $t0, 8 +/* 115220 7F0E06F0 254B0002 */ addiu $t3, $t2, 2 +/* 115224 7F0E06F4 03096025 */ or $t4, $t8, $t1 +/* 115228 7F0E06F8 A7AC0298 */ sh $t4, 0x298($sp) +/* 11522C 7F0E06FC 1000083F */ b .L7F0E27FC +/* 115230 7F0E0700 A7AB0292 */ sh $t3, 0x292($sp) +spectrum_op_ED_7E: +/* 115234 7F0E0704 8FAD028C */ lw $t5, 0x28c($sp) +/* 115238 7F0E0708 240F0003 */ li $t7, 3 +/* 11523C 7F0E070C A3AF029B */ sb $t7, 0x29b($sp) +/* 115240 7F0E0710 25AE0004 */ addiu $t6, $t5, 4 +/* 115244 7F0E0714 10000839 */ b .L7F0E27FC +/* 115248 7F0E0718 AFAE028C */ sw $t6, 0x28c($sp) +spectrum_op_ED_A0: +/* 11524C 7F0E071C 8FB9028C */ lw $t9, 0x28c($sp) +/* 115250 7F0E0720 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 115254 7F0E0724 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 115258 7F0E0728 0016C200 */ sll $t8, $s6, 8 +/* 11525C 7F0E072C 03174825 */ or $t1, $t8, $s7 +/* 115260 7F0E0730 2728000C */ addiu $t0, $t9, 0xc +/* 115264 7F0E0734 AFA8028C */ sw $t0, 0x28c($sp) +/* 115268 7F0E0738 00146A00 */ sll $t5, $s4, 8 +/* 11526C 7F0E073C 012C5021 */ addu $t2, $t1, $t4 +/* 115270 7F0E0740 914B0000 */ lbu $t3, ($t2) +/* 115274 7F0E0744 01B57025 */ or $t6, $t5, $s5 +/* 115278 7F0E0748 29C15B00 */ slti $at, $t6, 0x5b00 +/* 11527C 7F0E074C 14200008 */ bnez $at, .L7F0E0770 +/* 115280 7F0E0750 A3AB007D */ sb $t3, 0x7d($sp) +/* 115284 7F0E0754 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 115288 7F0E0758 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 11528C 7F0E075C 00144200 */ sll $t0, $s4, 8 +/* 115290 7F0E0760 0115C025 */ or $t8, $t0, $s5 +/* 115294 7F0E0764 03384821 */ addu $t1, $t9, $t8 +/* 115298 7F0E0768 1000002B */ b .L7F0E0818 +/* 11529C 7F0E076C A12B0000 */ sb $t3, ($t1) +.L7F0E0770: +/* 1152A0 7F0E0770 00146200 */ sll $t4, $s4, 8 +/* 1152A4 7F0E0774 01955025 */ or $t2, $t4, $s5 +/* 1152A8 7F0E0778 29415800 */ slti $at, $t2, 0x5800 +/* 1152AC 7F0E077C 14200010 */ bnez $at, .L7F0E07C0 +/* 1152B0 7F0E0780 00147200 */ sll $t6, $s4, 8 +/* 1152B4 7F0E0784 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1152B8 7F0E0788 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1152BC 7F0E078C 93AB007D */ lbu $t3, 0x7d($sp) +/* 1152C0 7F0E0790 00147200 */ sll $t6, $s4, 8 +/* 1152C4 7F0E0794 01D54025 */ or $t0, $t6, $s5 +/* 1152C8 7F0E0798 01A8C821 */ addu $t9, $t5, $t0 +/* 1152CC 7F0E079C 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 1152D0 7F0E07A0 A32B0000 */ sb $t3, ($t9) +/* 1152D4 7F0E07A4 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 1152D8 7F0E07A8 00144A00 */ sll $t1, $s4, 8 +/* 1152DC 7F0E07AC 01356025 */ or $t4, $t1, $s5 +/* 1152E0 7F0E07B0 24180001 */ li $t8, 1 +/* 1152E4 7F0E07B4 01EC5021 */ addu $t2, $t7, $t4 +/* 1152E8 7F0E07B8 10000017 */ b .L7F0E0818 +/* 1152EC 7F0E07BC A158A800 */ sb $t8, -0x5800($t2) +.L7F0E07C0: +/* 1152F0 7F0E07C0 01D56825 */ or $t5, $t6, $s5 +/* 1152F4 7F0E07C4 29A14000 */ slti $at, $t5, 0x4000 +/* 1152F8 7F0E07C8 14200013 */ bnez $at, .L7F0E0818 +/* 1152FC 7F0E07CC 93A8007D */ lbu $t0, 0x7d($sp) +/* 115300 7F0E07D0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 115304 7F0E07D4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 115308 7F0E07D8 0014CA00 */ sll $t9, $s4, 8 +/* 11530C 7F0E07DC 03354825 */ or $t1, $t9, $s5 +/* 115310 7F0E07E0 01697821 */ addu $t7, $t3, $t1 +/* 115314 7F0E07E4 A1E80000 */ sb $t0, ($t7) +/* 115318 7F0E07E8 0014C200 */ sll $t8, $s4, 8 +/* 11531C 7F0E07EC 03155025 */ or $t2, $t8, $s5 +/* 115320 7F0E07F0 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 115324 7F0E07F4 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 115328 7F0E07F8 314E1800 */ andi $t6, $t2, 0x1800 +/* 11532C 7F0E07FC 03355825 */ or $t3, $t9, $s5 +/* 115330 7F0E0800 316900FF */ andi $t1, $t3, 0xff +/* 115334 7F0E0804 000E68C3 */ sra $t5, $t6, 3 +/* 115338 7F0E0808 01A94025 */ or $t0, $t5, $t1 +/* 11533C 7F0E080C 240C0001 */ li $t4, 1 +/* 115340 7F0E0810 01E8C021 */ addu $t8, $t7, $t0 +/* 115344 7F0E0814 A30C0000 */ sb $t4, ($t8) +.L7F0E0818: +/* 115348 7F0E0818 26F70001 */ addiu $s7, $s7, 1 +/* 11534C 7F0E081C 32EA00FF */ andi $t2, $s7, 0xff +/* 115350 7F0E0820 15400004 */ bnez $t2, .L7F0E0834 +/* 115354 7F0E0824 0140B825 */ move $s7, $t2 +/* 115358 7F0E0828 26D60001 */ addiu $s6, $s6, 1 +/* 11535C 7F0E082C 32CE00FF */ andi $t6, $s6, 0xff +/* 115360 7F0E0830 01C0B025 */ move $s6, $t6 +.L7F0E0834: +/* 115364 7F0E0834 26B50001 */ addiu $s5, $s5, 1 +/* 115368 7F0E0838 32B900FF */ andi $t9, $s5, 0xff +/* 11536C 7F0E083C 17200004 */ bnez $t9, .L7F0E0850 +/* 115370 7F0E0840 0320A825 */ move $s5, $t9 +/* 115374 7F0E0844 26940001 */ addiu $s4, $s4, 1 +/* 115378 7F0E0848 328B00FF */ andi $t3, $s4, 0xff +/* 11537C 7F0E084C 0160A025 */ move $s4, $t3 +.L7F0E0850: +/* 115380 7F0E0850 2E6D0001 */ sltiu $t5, $s3, 1 +/* 115384 7F0E0854 2673FFFF */ addiu $s3, $s3, -1 +/* 115388 7F0E0858 326900FF */ andi $t1, $s3, 0xff +/* 11538C 7F0E085C 01209825 */ move $s3, $t1 +/* 115390 7F0E0860 11A00004 */ beqz $t5, .L7F0E0874 +/* 115394 7F0E0864 AFAD0048 */ sw $t5, 0x48($sp) +/* 115398 7F0E0868 2652FFFF */ addiu $s2, $s2, -1 +/* 11539C 7F0E086C 324800FF */ andi $t0, $s2, 0xff +/* 1153A0 7F0E0870 01009025 */ move $s2, $t0 +.L7F0E0874: +/* 1153A4 7F0E0874 93B8007D */ lbu $t8, 0x7d($sp) +/* 1153A8 7F0E0878 0253C825 */ or $t9, $s2, $s3 +/* 1153AC 7F0E087C 0019582A */ slt $t3, $zero, $t9 +/* 1153B0 7F0E0880 322C00C1 */ andi $t4, $s1, 0xc1 +/* 1153B4 7F0E0884 330A0028 */ andi $t2, $t8, 0x28 +/* 1153B8 7F0E0888 018A7025 */ or $t6, $t4, $t2 +/* 1153BC 7F0E088C 000B6880 */ sll $t5, $t3, 2 +/* 1153C0 7F0E0890 01CD8825 */ or $s1, $t6, $t5 +/* 1153C4 7F0E0894 322900FF */ andi $t1, $s1, 0xff +/* 1153C8 7F0E0898 100007D8 */ b .L7F0E27FC +/* 1153CC 7F0E089C 01208825 */ move $s1, $t1 +spectrum_op_ED_A1: +/* 1153D0 7F0E08A0 8FAF028C */ lw $t7, 0x28c($sp) +/* 1153D4 7F0E08A4 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 1153D8 7F0E08A8 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 1153DC 7F0E08AC 00166200 */ sll $t4, $s6, 8 +/* 1153E0 7F0E08B0 32380001 */ andi $t8, $s1, 1 +/* 1153E4 7F0E08B4 01975025 */ or $t2, $t4, $s7 +/* 1153E8 7F0E08B8 25E8000C */ addiu $t0, $t7, 0xc +/* 1153EC 7F0E08BC AFA8028C */ sw $t0, 0x28c($sp) +/* 1153F0 7F0E08C0 A3B8007C */ sb $t8, 0x7c($sp) +/* 1153F4 7F0E08C4 01595821 */ addu $t3, $t2, $t9 +/* 1153F8 7F0E08C8 916E0000 */ lbu $t6, ($t3) +/* 1153FC 7F0E08CC 26F70001 */ addiu $s7, $s7, 1 +/* 115400 7F0E08D0 020E6823 */ subu $t5, $s0, $t6 +/* 115404 7F0E08D4 31A901FF */ andi $t1, $t5, 0x1ff +/* 115408 7F0E08D8 312FFFFF */ andi $t7, $t1, 0xffff +/* 11540C 7F0E08DC 2DE80001 */ sltiu $t0, $t7, 1 +/* 115410 7F0E08E0 320F000F */ andi $t7, $s0, 0xf +/* 115414 7F0E08E4 31CD000F */ andi $t5, $t6, 0xf +/* 115418 7F0E08E8 01EDC02A */ slt $t8, $t7, $t5 +/* 11541C 7F0E08EC 312C00A8 */ andi $t4, $t1, 0xa8 +/* 115420 7F0E08F0 0009CA03 */ sra $t9, $t1, 8 +/* 115424 7F0E08F4 01995825 */ or $t3, $t4, $t9 +/* 115428 7F0E08F8 00185100 */ sll $t2, $t8, 4 +/* 11542C 7F0E08FC 01206825 */ move $t5, $t1 +/* 115430 7F0E0900 020EC826 */ xor $t9, $s0, $t6 +/* 115434 7F0E0904 332F0080 */ andi $t7, $t9, 0x80 +/* 115438 7F0E0908 01B0C026 */ xor $t8, $t5, $s0 +/* 11543C 7F0E090C 016A6025 */ or $t4, $t3, $t2 +/* 115440 7F0E0910 01F85824 */ and $t3, $t7, $t8 +/* 115444 7F0E0914 000B5143 */ sra $t2, $t3, 5 +/* 115448 7F0E0918 A3AE0079 */ sb $t6, 0x79($sp) +/* 11544C 7F0E091C 018A7025 */ or $t6, $t4, $t2 +/* 115450 7F0E0920 A7A9007A */ sh $t1, 0x7a($sp) +/* 115454 7F0E0924 00084980 */ sll $t1, $t0, 6 +/* 115458 7F0E0928 35D90002 */ ori $t9, $t6, 2 +/* 11545C 7F0E092C 03298825 */ or $s1, $t9, $t1 +/* 115460 7F0E0930 322D00FF */ andi $t5, $s1, 0xff +/* 115464 7F0E0934 32EF00FF */ andi $t7, $s7, 0xff +/* 115468 7F0E0938 01A08825 */ move $s1, $t5 +/* 11546C 7F0E093C AFA80048 */ sw $t0, 0x48($sp) +/* 115470 7F0E0940 15E00004 */ bnez $t7, .L7F0E0954 +/* 115474 7F0E0944 01E0B825 */ move $s7, $t7 +/* 115478 7F0E0948 26D60001 */ addiu $s6, $s6, 1 +/* 11547C 7F0E094C 32D800FF */ andi $t8, $s6, 0xff +/* 115480 7F0E0950 0300B025 */ move $s6, $t8 +.L7F0E0954: +/* 115484 7F0E0954 2E6B0001 */ sltiu $t3, $s3, 1 +/* 115488 7F0E0958 2673FFFF */ addiu $s3, $s3, -1 +/* 11548C 7F0E095C 326C00FF */ andi $t4, $s3, 0xff +/* 115490 7F0E0960 01809825 */ move $s3, $t4 +/* 115494 7F0E0964 11600004 */ beqz $t3, .L7F0E0978 +/* 115498 7F0E0968 AFAB0048 */ sw $t3, 0x48($sp) +/* 11549C 7F0E096C 2652FFFF */ addiu $s2, $s2, -1 +/* 1154A0 7F0E0970 324E00FF */ andi $t6, $s2, 0xff +/* 1154A4 7F0E0974 01C09025 */ move $s2, $t6 +.L7F0E0978: +/* 1154A8 7F0E0978 93B9007C */ lbu $t9, 0x7c($sp) +/* 1154AC 7F0E097C 02536825 */ or $t5, $s2, $s3 +/* 1154B0 7F0E0980 000D782A */ slt $t7, $zero, $t5 +/* 1154B4 7F0E0984 322800FA */ andi $t0, $s1, 0xfa +/* 1154B8 7F0E0988 000FC080 */ sll $t8, $t7, 2 +/* 1154BC 7F0E098C 01194825 */ or $t1, $t0, $t9 +/* 1154C0 7F0E0990 01388825 */ or $s1, $t1, $t8 +/* 1154C4 7F0E0994 322B00FF */ andi $t3, $s1, 0xff +/* 1154C8 7F0E0998 10000798 */ b .L7F0E27FC +/* 1154CC 7F0E099C 01608825 */ move $s1, $t3 +spectrum_op_ED_A2: +/* 1154D0 7F0E09A0 8FAC028C */ lw $t4, 0x28c($sp) +/* 1154D4 7F0E09A4 02402825 */ move $a1, $s2 +/* 1154D8 7F0E09A8 02603025 */ move $a2, $s3 +/* 1154DC 7F0E09AC 2584000C */ addiu $a0, $t4, 0xc +/* 1154E0 7F0E09B0 0FC34DB6 */ jal spectrum_input_handling +/* 1154E4 7F0E09B4 AFA4028C */ sw $a0, 0x28c($sp) +/* 1154E8 7F0E09B8 00167200 */ sll $t6, $s6, 8 +/* 1154EC 7F0E09BC 01D74025 */ or $t0, $t6, $s7 +/* 1154F0 7F0E09C0 29015B00 */ slti $at, $t0, 0x5b00 +/* 1154F4 7F0E09C4 14200008 */ bnez $at, .L7F0E09E8 +/* 1154F8 7F0E09C8 A7A20076 */ sh $v0, 0x76($sp) +/* 1154FC 7F0E09CC 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 115500 7F0E09D0 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 115504 7F0E09D4 00167A00 */ sll $t7, $s6, 8 +/* 115508 7F0E09D8 01F74825 */ or $t1, $t7, $s7 +/* 11550C 7F0E09DC 01A9C021 */ addu $t8, $t5, $t1 +/* 115510 7F0E09E0 1000002B */ b .L7F0E0A90 +/* 115514 7F0E09E4 A3020000 */ sb $v0, ($t8) +.L7F0E09E8: +/* 115518 7F0E09E8 00165A00 */ sll $t3, $s6, 8 +/* 11551C 7F0E09EC 01776025 */ or $t4, $t3, $s7 +/* 115520 7F0E09F0 29815800 */ slti $at, $t4, 0x5800 +/* 115524 7F0E09F4 14200010 */ bnez $at, .L7F0E0A38 +/* 115528 7F0E09F8 00164200 */ sll $t0, $s6, 8 +/* 11552C 7F0E09FC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 115530 7F0E0A00 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 115534 7F0E0A04 97AA0076 */ lhu $t2, 0x76($sp) +/* 115538 7F0E0A08 00164200 */ sll $t0, $s6, 8 +/* 11553C 7F0E0A0C 01177825 */ or $t7, $t0, $s7 +/* 115540 7F0E0A10 01CF6821 */ addu $t5, $t6, $t7 +/* 115544 7F0E0A14 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 115548 7F0E0A18 A1AA0000 */ sb $t2, ($t5) +/* 11554C 7F0E0A1C 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 115550 7F0E0A20 0016C200 */ sll $t8, $s6, 8 +/* 115554 7F0E0A24 03175825 */ or $t3, $t8, $s7 +/* 115558 7F0E0A28 24090001 */ li $t1, 1 +/* 11555C 7F0E0A2C 032B6021 */ addu $t4, $t9, $t3 +/* 115560 7F0E0A30 10000017 */ b .L7F0E0A90 +/* 115564 7F0E0A34 A189A800 */ sb $t1, -0x5800($t4) +.L7F0E0A38: +/* 115568 7F0E0A38 01177025 */ or $t6, $t0, $s7 +/* 11556C 7F0E0A3C 29C14000 */ slti $at, $t6, 0x4000 +/* 115570 7F0E0A40 14200013 */ bnez $at, .L7F0E0A90 +/* 115574 7F0E0A44 97AF0076 */ lhu $t7, 0x76($sp) +/* 115578 7F0E0A48 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 11557C 7F0E0A4C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 115580 7F0E0A50 00166A00 */ sll $t5, $s6, 8 +/* 115584 7F0E0A54 01B7C025 */ or $t8, $t5, $s7 +/* 115588 7F0E0A58 0158C821 */ addu $t9, $t2, $t8 +/* 11558C 7F0E0A5C A32F0000 */ sb $t7, ($t9) +/* 115590 7F0E0A60 00164A00 */ sll $t1, $s6, 8 +/* 115594 7F0E0A64 01376025 */ or $t4, $t1, $s7 +/* 115598 7F0E0A68 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 11559C 7F0E0A6C 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 1155A0 7F0E0A70 31881800 */ andi $t0, $t4, 0x1800 +/* 1155A4 7F0E0A74 01B75025 */ or $t2, $t5, $s7 +/* 1155A8 7F0E0A78 315800FF */ andi $t8, $t2, 0xff +/* 1155AC 7F0E0A7C 000870C3 */ sra $t6, $t0, 3 +/* 1155B0 7F0E0A80 01D87825 */ or $t7, $t6, $t8 +/* 1155B4 7F0E0A84 240B0001 */ li $t3, 1 +/* 1155B8 7F0E0A88 032F4821 */ addu $t1, $t9, $t7 +/* 1155BC 7F0E0A8C A12B0000 */ sb $t3, ($t1) +.L7F0E0A90: +/* 1155C0 7F0E0A90 97A80076 */ lhu $t0, 0x76($sp) +/* 1155C4 7F0E0A94 8FAC028C */ lw $t4, 0x28c($sp) +/* 1155C8 7F0E0A98 26F70001 */ addiu $s7, $s7, 1 +/* 1155CC 7F0E0A9C 00086A03 */ sra $t5, $t0, 8 +/* 1155D0 7F0E0AA0 32EE00FF */ andi $t6, $s7, 0xff +/* 1155D4 7F0E0AA4 018D5021 */ addu $t2, $t4, $t5 +/* 1155D8 7F0E0AA8 AFAA028C */ sw $t2, 0x28c($sp) +/* 1155DC 7F0E0AAC 15C00004 */ bnez $t6, .L7F0E0AC0 +/* 1155E0 7F0E0AB0 01C0B825 */ move $s7, $t6 +/* 1155E4 7F0E0AB4 26D60001 */ addiu $s6, $s6, 1 +/* 1155E8 7F0E0AB8 32D800FF */ andi $t8, $s6, 0xff +/* 1155EC 7F0E0ABC 0300B025 */ move $s6, $t8 +.L7F0E0AC0: +/* 1155F0 7F0E0AC0 3C0D8009 */ lui $t5, %hi(ptr_pc_keyboard_table_alloc) +/* 1155F4 7F0E0AC4 8DADE334 */ lw $t5, %lo(ptr_pc_keyboard_table_alloc)($t5) +/* 1155F8 7F0E0AC8 2652FFFF */ addiu $s2, $s2, -1 +/* 1155FC 7F0E0ACC 325900FF */ andi $t9, $s2, 0xff +/* 115600 7F0E0AD0 032D5021 */ addu $t2, $t9, $t5 +/* 115604 7F0E0AD4 914E0000 */ lbu $t6, ($t2) +/* 115608 7F0E0AD8 0019582A */ slt $t3, $zero, $t9 +/* 11560C 7F0E0ADC 000B4980 */ sll $t1, $t3, 6 +/* 115610 7F0E0AE0 332F00A8 */ andi $t7, $t9, 0xa8 +/* 115614 7F0E0AE4 03209025 */ move $s2, $t9 +/* 115618 7F0E0AE8 01E94025 */ or $t0, $t7, $t1 +/* 11561C 7F0E0AEC 01D3C026 */ xor $t8, $t6, $s3 +/* 115620 7F0E0AF0 33190004 */ andi $t9, $t8, 4 +/* 115624 7F0E0AF4 350C0002 */ ori $t4, $t0, 2 +/* 115628 7F0E0AF8 032C8825 */ or $s1, $t9, $t4 +/* 11562C 7F0E0AFC 322B00FF */ andi $t3, $s1, 0xff +/* 115630 7F0E0B00 1000073E */ b .L7F0E27FC +/* 115634 7F0E0B04 01608825 */ move $s1, $t3 +spectrum_op_ED_A3: +/* 115638 7F0E0B08 8FAF028C */ lw $t7, 0x28c($sp) +/* 11563C 7F0E0B0C 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 115640 7F0E0B10 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 115644 7F0E0B14 00164200 */ sll $t0, $s6, 8 +/* 115648 7F0E0B18 01176825 */ or $t5, $t0, $s7 +/* 11564C 7F0E0B1C 25E4000C */ addiu $a0, $t7, 0xc +/* 115650 7F0E0B20 AFA4028C */ sw $a0, 0x28c($sp) +/* 115654 7F0E0B24 01AA7021 */ addu $t6, $t5, $t2 +/* 115658 7F0E0B28 91C70000 */ lbu $a3, ($t6) +/* 11565C 7F0E0B2C 02402825 */ move $a1, $s2 +/* 115660 7F0E0B30 02603025 */ move $a2, $s3 +/* 115664 7F0E0B34 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 115668 7F0E0B38 A3A70075 */ sb $a3, 0x75($sp) +/* 11566C 7F0E0B3C 8FB9028C */ lw $t9, 0x28c($sp) +/* 115670 7F0E0B40 26F70001 */ addiu $s7, $s7, 1 +/* 115674 7F0E0B44 32EF00FF */ andi $t7, $s7, 0xff +/* 115678 7F0E0B48 03225821 */ addu $t3, $t9, $v0 +/* 11567C 7F0E0B4C AFAB028C */ sw $t3, 0x28c($sp) +/* 115680 7F0E0B50 AFA20048 */ sw $v0, 0x48($sp) +/* 115684 7F0E0B54 15E00004 */ bnez $t7, .L7F0E0B68 +/* 115688 7F0E0B58 01E0B825 */ move $s7, $t7 +/* 11568C 7F0E0B5C 26D60001 */ addiu $s6, $s6, 1 +/* 115690 7F0E0B60 32C800FF */ andi $t0, $s6, 0xff +/* 115694 7F0E0B64 0100B025 */ move $s6, $t0 +.L7F0E0B68: +/* 115698 7F0E0B68 2652FFFF */ addiu $s2, $s2, -1 +/* 11569C 7F0E0B6C 324D00FF */ andi $t5, $s2, 0xff +/* 1156A0 7F0E0B70 322A0001 */ andi $t2, $s1, 1 +/* 1156A4 7F0E0B74 354E0012 */ ori $t6, $t2, 0x12 +/* 1156A8 7F0E0B78 31A900A8 */ andi $t1, $t5, 0xa8 +/* 1156AC 7F0E0B7C 2DB90001 */ sltiu $t9, $t5, 1 +/* 1156B0 7F0E0B80 00196180 */ sll $t4, $t9, 6 +/* 1156B4 7F0E0B84 01C9C025 */ or $t8, $t6, $t1 +/* 1156B8 7F0E0B88 030C8825 */ or $s1, $t8, $t4 +/* 1156BC 7F0E0B8C 322B00FF */ andi $t3, $s1, 0xff +/* 1156C0 7F0E0B90 01A09025 */ move $s2, $t5 +/* 1156C4 7F0E0B94 10000719 */ b .L7F0E27FC +/* 1156C8 7F0E0B98 01608825 */ move $s1, $t3 +spectrum_op_ED_A8: +/* 1156CC 7F0E0B9C 8FAF028C */ lw $t7, 0x28c($sp) +/* 1156D0 7F0E0BA0 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1156D4 7F0E0BA4 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1156D8 7F0E0BA8 00166A00 */ sll $t5, $s6, 8 +/* 1156DC 7F0E0BAC 01B75025 */ or $t2, $t5, $s7 +/* 1156E0 7F0E0BB0 25E8000C */ addiu $t0, $t7, 0xc +/* 1156E4 7F0E0BB4 AFA8028C */ sw $t0, 0x28c($sp) +/* 1156E8 7F0E0BB8 0014C200 */ sll $t8, $s4, 8 +/* 1156EC 7F0E0BBC 014E4821 */ addu $t1, $t2, $t6 +/* 1156F0 7F0E0BC0 91390000 */ lbu $t9, ($t1) +/* 1156F4 7F0E0BC4 03156025 */ or $t4, $t8, $s5 +/* 1156F8 7F0E0BC8 29815B00 */ slti $at, $t4, 0x5b00 +/* 1156FC 7F0E0BCC 14200008 */ bnez $at, .L7F0E0BF0 +/* 115700 7F0E0BD0 A3B90074 */ sb $t9, 0x74($sp) +/* 115704 7F0E0BD4 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 115708 7F0E0BD8 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 11570C 7F0E0BDC 00144200 */ sll $t0, $s4, 8 +/* 115710 7F0E0BE0 01156825 */ or $t5, $t0, $s5 +/* 115714 7F0E0BE4 01ED5021 */ addu $t2, $t7, $t5 +/* 115718 7F0E0BE8 1000002B */ b .L7F0E0C98 +/* 11571C 7F0E0BEC A1590000 */ sb $t9, ($t2) +.L7F0E0BF0: +/* 115720 7F0E0BF0 00147200 */ sll $t6, $s4, 8 +/* 115724 7F0E0BF4 01D54825 */ or $t1, $t6, $s5 +/* 115728 7F0E0BF8 29215800 */ slti $at, $t1, 0x5800 +/* 11572C 7F0E0BFC 14200010 */ bnez $at, .L7F0E0C40 +/* 115730 7F0E0C00 00146200 */ sll $t4, $s4, 8 +/* 115734 7F0E0C04 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 115738 7F0E0C08 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 11573C 7F0E0C0C 93B90074 */ lbu $t9, 0x74($sp) +/* 115740 7F0E0C10 00146200 */ sll $t4, $s4, 8 +/* 115744 7F0E0C14 01954025 */ or $t0, $t4, $s5 +/* 115748 7F0E0C18 03087821 */ addu $t7, $t8, $t0 +/* 11574C 7F0E0C1C 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 115750 7F0E0C20 A1F90000 */ sb $t9, ($t7) +/* 115754 7F0E0C24 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 115758 7F0E0C28 00145200 */ sll $t2, $s4, 8 +/* 11575C 7F0E0C2C 01557025 */ or $t6, $t2, $s5 +/* 115760 7F0E0C30 240D0001 */ li $t5, 1 +/* 115764 7F0E0C34 016E4821 */ addu $t1, $t3, $t6 +/* 115768 7F0E0C38 10000017 */ b .L7F0E0C98 +/* 11576C 7F0E0C3C A12DA800 */ sb $t5, -0x5800($t1) +.L7F0E0C40: +/* 115770 7F0E0C40 0195C025 */ or $t8, $t4, $s5 +/* 115774 7F0E0C44 2B014000 */ slti $at, $t8, 0x4000 +/* 115778 7F0E0C48 14200013 */ bnez $at, .L7F0E0C98 +/* 11577C 7F0E0C4C 93A80074 */ lbu $t0, 0x74($sp) +/* 115780 7F0E0C50 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 115784 7F0E0C54 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 115788 7F0E0C58 00147A00 */ sll $t7, $s4, 8 +/* 11578C 7F0E0C5C 01F55025 */ or $t2, $t7, $s5 +/* 115790 7F0E0C60 032A5821 */ addu $t3, $t9, $t2 +/* 115794 7F0E0C64 A1680000 */ sb $t0, ($t3) +/* 115798 7F0E0C68 00146A00 */ sll $t5, $s4, 8 +/* 11579C 7F0E0C6C 01B54825 */ or $t1, $t5, $s5 +/* 1157A0 7F0E0C70 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 1157A4 7F0E0C74 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 1157A8 7F0E0C78 312C1800 */ andi $t4, $t1, 0x1800 +/* 1157AC 7F0E0C7C 01F5C825 */ or $t9, $t7, $s5 +/* 1157B0 7F0E0C80 332A00FF */ andi $t2, $t9, 0xff +/* 1157B4 7F0E0C84 000CC0C3 */ sra $t8, $t4, 3 +/* 1157B8 7F0E0C88 030A4025 */ or $t0, $t8, $t2 +/* 1157BC 7F0E0C8C 240E0001 */ li $t6, 1 +/* 1157C0 7F0E0C90 01686821 */ addu $t5, $t3, $t0 +/* 1157C4 7F0E0C94 A1AE0000 */ sb $t6, ($t5) +.L7F0E0C98: +/* 1157C8 7F0E0C98 2EE90001 */ sltiu $t1, $s7, 1 +/* 1157CC 7F0E0C9C 26F7FFFF */ addiu $s7, $s7, -1 +/* 1157D0 7F0E0CA0 32EC00FF */ andi $t4, $s7, 0xff +/* 1157D4 7F0E0CA4 0180B825 */ move $s7, $t4 +/* 1157D8 7F0E0CA8 11200004 */ beqz $t1, .L7F0E0CBC +/* 1157DC 7F0E0CAC AFA90048 */ sw $t1, 0x48($sp) +/* 1157E0 7F0E0CB0 26D6FFFF */ addiu $s6, $s6, -1 +/* 1157E4 7F0E0CB4 32D900FF */ andi $t9, $s6, 0xff +/* 1157E8 7F0E0CB8 0320B025 */ move $s6, $t9 +.L7F0E0CBC: +/* 1157EC 7F0E0CBC 2EB80001 */ sltiu $t8, $s5, 1 +/* 1157F0 7F0E0CC0 26B5FFFF */ addiu $s5, $s5, -1 +/* 1157F4 7F0E0CC4 32AA00FF */ andi $t2, $s5, 0xff +/* 1157F8 7F0E0CC8 0140A825 */ move $s5, $t2 +/* 1157FC 7F0E0CCC 13000004 */ beqz $t8, .L7F0E0CE0 +/* 115800 7F0E0CD0 AFB80048 */ sw $t8, 0x48($sp) +/* 115804 7F0E0CD4 2694FFFF */ addiu $s4, $s4, -1 +/* 115808 7F0E0CD8 328800FF */ andi $t0, $s4, 0xff +/* 11580C 7F0E0CDC 0100A025 */ move $s4, $t0 +.L7F0E0CE0: +/* 115810 7F0E0CE0 2E6E0001 */ sltiu $t6, $s3, 1 +/* 115814 7F0E0CE4 2673FFFF */ addiu $s3, $s3, -1 +/* 115818 7F0E0CE8 326D00FF */ andi $t5, $s3, 0xff +/* 11581C 7F0E0CEC 01A09825 */ move $s3, $t5 +/* 115820 7F0E0CF0 11C00004 */ beqz $t6, .L7F0E0D04 +/* 115824 7F0E0CF4 AFAE0048 */ sw $t6, 0x48($sp) +/* 115828 7F0E0CF8 2652FFFF */ addiu $s2, $s2, -1 +/* 11582C 7F0E0CFC 324C00FF */ andi $t4, $s2, 0xff +/* 115830 7F0E0D00 01809025 */ move $s2, $t4 +.L7F0E0D04: +/* 115834 7F0E0D04 93B90074 */ lbu $t9, 0x74($sp) +/* 115838 7F0E0D08 02535825 */ or $t3, $s2, $s3 +/* 11583C 7F0E0D0C 000B402A */ slt $t0, $zero, $t3 +/* 115840 7F0E0D10 322F00C1 */ andi $t7, $s1, 0xc1 +/* 115844 7F0E0D14 33380028 */ andi $t8, $t9, 0x28 +/* 115848 7F0E0D18 01F85025 */ or $t2, $t7, $t8 +/* 11584C 7F0E0D1C 00087080 */ sll $t6, $t0, 2 +/* 115850 7F0E0D20 014E8825 */ or $s1, $t2, $t6 +/* 115854 7F0E0D24 322D00FF */ andi $t5, $s1, 0xff +/* 115858 7F0E0D28 100006B4 */ b .L7F0E27FC +/* 11585C 7F0E0D2C 01A08825 */ move $s1, $t5 +spectrum_op_ED_A9: +/* 115860 7F0E0D30 8FA9028C */ lw $t1, 0x28c($sp) +/* 115864 7F0E0D34 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 115868 7F0E0D38 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 11586C 7F0E0D3C 00167A00 */ sll $t7, $s6, 8 +/* 115870 7F0E0D40 32390001 */ andi $t9, $s1, 1 +/* 115874 7F0E0D44 01F7C025 */ or $t8, $t7, $s7 +/* 115878 7F0E0D48 252C000C */ addiu $t4, $t1, 0xc +/* 11587C 7F0E0D4C AFAC028C */ sw $t4, 0x28c($sp) +/* 115880 7F0E0D50 A3B90073 */ sb $t9, 0x73($sp) +/* 115884 7F0E0D54 030B4021 */ addu $t0, $t8, $t3 +/* 115888 7F0E0D58 910A0000 */ lbu $t2, ($t0) +/* 11588C 7F0E0D5C 020A7023 */ subu $t6, $s0, $t2 +/* 115890 7F0E0D60 31CD01FF */ andi $t5, $t6, 0x1ff +/* 115894 7F0E0D64 31A9FFFF */ andi $t1, $t5, 0xffff +/* 115898 7F0E0D68 2D2C0001 */ sltiu $t4, $t1, 1 +/* 11589C 7F0E0D6C 3209000F */ andi $t1, $s0, 0xf +/* 1158A0 7F0E0D70 314E000F */ andi $t6, $t2, 0xf +/* 1158A4 7F0E0D74 012EC82A */ slt $t9, $t1, $t6 +/* 1158A8 7F0E0D78 31AF00A8 */ andi $t7, $t5, 0xa8 +/* 1158AC 7F0E0D7C 000D5A03 */ sra $t3, $t5, 8 +/* 1158B0 7F0E0D80 01EB4025 */ or $t0, $t7, $t3 +/* 1158B4 7F0E0D84 0019C100 */ sll $t8, $t9, 4 +/* 1158B8 7F0E0D88 01A07025 */ move $t6, $t5 +/* 1158BC 7F0E0D8C 020A5826 */ xor $t3, $s0, $t2 +/* 1158C0 7F0E0D90 31690080 */ andi $t1, $t3, 0x80 +/* 1158C4 7F0E0D94 01D0C826 */ xor $t9, $t6, $s0 +/* 1158C8 7F0E0D98 01187825 */ or $t7, $t0, $t8 +/* 1158CC 7F0E0D9C 01394024 */ and $t0, $t1, $t9 +/* 1158D0 7F0E0DA0 0008C143 */ sra $t8, $t0, 5 +/* 1158D4 7F0E0DA4 A3AA006F */ sb $t2, 0x6f($sp) +/* 1158D8 7F0E0DA8 01F85025 */ or $t2, $t7, $t8 +/* 1158DC 7F0E0DAC A7AD0070 */ sh $t5, 0x70($sp) +/* 1158E0 7F0E0DB0 000C6980 */ sll $t5, $t4, 6 +/* 1158E4 7F0E0DB4 354B0002 */ ori $t3, $t2, 2 +/* 1158E8 7F0E0DB8 2EE90001 */ sltiu $t1, $s7, 1 +/* 1158EC 7F0E0DBC 016D8825 */ or $s1, $t3, $t5 +/* 1158F0 7F0E0DC0 26F7FFFF */ addiu $s7, $s7, -1 +/* 1158F4 7F0E0DC4 322E00FF */ andi $t6, $s1, 0xff +/* 1158F8 7F0E0DC8 AFAC0048 */ sw $t4, 0x48($sp) +/* 1158FC 7F0E0DCC 32F900FF */ andi $t9, $s7, 0xff +/* 115900 7F0E0DD0 01C08825 */ move $s1, $t6 +/* 115904 7F0E0DD4 0320B825 */ move $s7, $t9 +/* 115908 7F0E0DD8 11200004 */ beqz $t1, .L7F0E0DEC +/* 11590C 7F0E0DDC AFA90048 */ sw $t1, 0x48($sp) +/* 115910 7F0E0DE0 26D6FFFF */ addiu $s6, $s6, -1 +/* 115914 7F0E0DE4 32CF00FF */ andi $t7, $s6, 0xff +/* 115918 7F0E0DE8 01E0B025 */ move $s6, $t7 +.L7F0E0DEC: +/* 11591C 7F0E0DEC 2E780001 */ sltiu $t8, $s3, 1 +/* 115920 7F0E0DF0 2673FFFF */ addiu $s3, $s3, -1 +/* 115924 7F0E0DF4 326A00FF */ andi $t2, $s3, 0xff +/* 115928 7F0E0DF8 01409825 */ move $s3, $t2 +/* 11592C 7F0E0DFC 13000004 */ beqz $t8, .L7F0E0E10 +/* 115930 7F0E0E00 AFB80048 */ sw $t8, 0x48($sp) +/* 115934 7F0E0E04 2652FFFF */ addiu $s2, $s2, -1 +/* 115938 7F0E0E08 324B00FF */ andi $t3, $s2, 0xff +/* 11593C 7F0E0E0C 01609025 */ move $s2, $t3 +.L7F0E0E10: +/* 115940 7F0E0E10 93AE0073 */ lbu $t6, 0x73($sp) +/* 115944 7F0E0E14 0253C825 */ or $t9, $s2, $s3 +/* 115948 7F0E0E18 0019402A */ slt $t0, $zero, $t9 +/* 11594C 7F0E0E1C 322D00FA */ andi $t5, $s1, 0xfa +/* 115950 7F0E0E20 00087880 */ sll $t7, $t0, 2 +/* 115954 7F0E0E24 01AE4825 */ or $t1, $t5, $t6 +/* 115958 7F0E0E28 012F8825 */ or $s1, $t1, $t7 +/* 11595C 7F0E0E2C 323800FF */ andi $t8, $s1, 0xff +/* 115960 7F0E0E30 10000672 */ b .L7F0E27FC +/* 115964 7F0E0E34 03008825 */ move $s1, $t8 +spectrum_op_ED_AA: +/* 115968 7F0E0E38 8FAA028C */ lw $t2, 0x28c($sp) +/* 11596C 7F0E0E3C 02402825 */ move $a1, $s2 +/* 115970 7F0E0E40 02603025 */ move $a2, $s3 +/* 115974 7F0E0E44 2544000C */ addiu $a0, $t2, 0xc +/* 115978 7F0E0E48 0FC34DB6 */ jal spectrum_input_handling +/* 11597C 7F0E0E4C AFA4028C */ sw $a0, 0x28c($sp) +/* 115980 7F0E0E50 00165A00 */ sll $t3, $s6, 8 +/* 115984 7F0E0E54 01776825 */ or $t5, $t3, $s7 +/* 115988 7F0E0E58 29A15B00 */ slti $at, $t5, 0x5b00 +/* 11598C 7F0E0E5C 14200008 */ bnez $at, .L7F0E0E80 +/* 115990 7F0E0E60 A7A2006C */ sh $v0, 0x6c($sp) +/* 115994 7F0E0E64 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 115998 7F0E0E68 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 11599C 7F0E0E6C 00164200 */ sll $t0, $s6, 8 +/* 1159A0 7F0E0E70 01174825 */ or $t1, $t0, $s7 +/* 1159A4 7F0E0E74 03297821 */ addu $t7, $t9, $t1 +/* 1159A8 7F0E0E78 1000002B */ b .L7F0E0F28 +/* 1159AC 7F0E0E7C A1E20000 */ sb $v0, ($t7) +.L7F0E0E80: +/* 1159B0 7F0E0E80 0016C200 */ sll $t8, $s6, 8 +/* 1159B4 7F0E0E84 03175025 */ or $t2, $t8, $s7 +/* 1159B8 7F0E0E88 29415800 */ slti $at, $t2, 0x5800 +/* 1159BC 7F0E0E8C 14200010 */ bnez $at, .L7F0E0ED0 +/* 1159C0 7F0E0E90 00166A00 */ sll $t5, $s6, 8 +/* 1159C4 7F0E0E94 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1159C8 7F0E0E98 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 1159CC 7F0E0E9C 97AC006C */ lhu $t4, 0x6c($sp) +/* 1159D0 7F0E0EA0 00166A00 */ sll $t5, $s6, 8 +/* 1159D4 7F0E0EA4 01B74025 */ or $t0, $t5, $s7 +/* 1159D8 7F0E0EA8 0168C821 */ addu $t9, $t3, $t0 +/* 1159DC 7F0E0EAC 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 1159E0 7F0E0EB0 A32C0000 */ sb $t4, ($t9) +/* 1159E4 7F0E0EB4 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 1159E8 7F0E0EB8 00167A00 */ sll $t7, $s6, 8 +/* 1159EC 7F0E0EBC 01F7C025 */ or $t8, $t7, $s7 +/* 1159F0 7F0E0EC0 24090001 */ li $t1, 1 +/* 1159F4 7F0E0EC4 01D85021 */ addu $t2, $t6, $t8 +/* 1159F8 7F0E0EC8 10000017 */ b .L7F0E0F28 +/* 1159FC 7F0E0ECC A149A800 */ sb $t1, -0x5800($t2) +.L7F0E0ED0: +/* 115A00 7F0E0ED0 01B75825 */ or $t3, $t5, $s7 +/* 115A04 7F0E0ED4 29614000 */ slti $at, $t3, 0x4000 +/* 115A08 7F0E0ED8 14200013 */ bnez $at, .L7F0E0F28 +/* 115A0C 7F0E0EDC 97A8006C */ lhu $t0, 0x6c($sp) +/* 115A10 7F0E0EE0 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 115A14 7F0E0EE4 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 115A18 7F0E0EE8 0016CA00 */ sll $t9, $s6, 8 +/* 115A1C 7F0E0EEC 03377825 */ or $t7, $t9, $s7 +/* 115A20 7F0E0EF0 018F7021 */ addu $t6, $t4, $t7 +/* 115A24 7F0E0EF4 A1C80000 */ sb $t0, ($t6) +/* 115A28 7F0E0EF8 00164A00 */ sll $t1, $s6, 8 +/* 115A2C 7F0E0EFC 01375025 */ or $t2, $t1, $s7 +/* 115A30 7F0E0F00 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 115A34 7F0E0F04 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 115A38 7F0E0F08 314D1800 */ andi $t5, $t2, 0x1800 +/* 115A3C 7F0E0F0C 03376025 */ or $t4, $t9, $s7 +/* 115A40 7F0E0F10 318F00FF */ andi $t7, $t4, 0xff +/* 115A44 7F0E0F14 000D58C3 */ sra $t3, $t5, 3 +/* 115A48 7F0E0F18 016F4025 */ or $t0, $t3, $t7 +/* 115A4C 7F0E0F1C 24180001 */ li $t8, 1 +/* 115A50 7F0E0F20 01C84821 */ addu $t1, $t6, $t0 +/* 115A54 7F0E0F24 A1380000 */ sb $t8, ($t1) +.L7F0E0F28: +/* 115A58 7F0E0F28 97AD006C */ lhu $t5, 0x6c($sp) +/* 115A5C 7F0E0F2C 8FAA028C */ lw $t2, 0x28c($sp) +/* 115A60 7F0E0F30 2EEB0001 */ sltiu $t3, $s7, 1 +/* 115A64 7F0E0F34 26F7FFFF */ addiu $s7, $s7, -1 +/* 115A68 7F0E0F38 000DCA03 */ sra $t9, $t5, 8 +/* 115A6C 7F0E0F3C 32EF00FF */ andi $t7, $s7, 0xff +/* 115A70 7F0E0F40 01596021 */ addu $t4, $t2, $t9 +/* 115A74 7F0E0F44 AFAC028C */ sw $t4, 0x28c($sp) +/* 115A78 7F0E0F48 01E0B825 */ move $s7, $t7 +/* 115A7C 7F0E0F4C 11600004 */ beqz $t3, .L7F0E0F60 +/* 115A80 7F0E0F50 AFAB0048 */ sw $t3, 0x48($sp) +/* 115A84 7F0E0F54 26D6FFFF */ addiu $s6, $s6, -1 +/* 115A88 7F0E0F58 32C800FF */ andi $t0, $s6, 0xff +/* 115A8C 7F0E0F5C 0100B025 */ move $s6, $t0 +.L7F0E0F60: +/* 115A90 7F0E0F60 3C0B8009 */ lui $t3, %hi(ptr_pc_keyboard_table_alloc) +/* 115A94 7F0E0F64 8D6BE334 */ lw $t3, %lo(ptr_pc_keyboard_table_alloc)($t3) +/* 115A98 7F0E0F68 2652FFFF */ addiu $s2, $s2, -1 +/* 115A9C 7F0E0F6C 325800FF */ andi $t8, $s2, 0xff +/* 115AA0 7F0E0F70 030B7821 */ addu $t7, $t8, $t3 +/* 115AA4 7F0E0F74 91EE0000 */ lbu $t6, ($t7) +/* 115AA8 7F0E0F78 330900A8 */ andi $t1, $t8, 0xa8 +/* 115AAC 7F0E0F7C 0018682A */ slt $t5, $zero, $t8 +/* 115AB0 7F0E0F80 03009025 */ move $s2, $t8 +/* 115AB4 7F0E0F84 000D5180 */ sll $t2, $t5, 6 +/* 115AB8 7F0E0F88 01D34026 */ xor $t0, $t6, $s3 +/* 115ABC 7F0E0F8C 39180004 */ xori $t8, $t0, 4 +/* 115AC0 7F0E0F90 012AC825 */ or $t9, $t1, $t2 +/* 115AC4 7F0E0F94 372C0002 */ ori $t4, $t9, 2 +/* 115AC8 7F0E0F98 330D0004 */ andi $t5, $t8, 4 +/* 115ACC 7F0E0F9C 01AC8825 */ or $s1, $t5, $t4 +/* 115AD0 7F0E0FA0 322900FF */ andi $t1, $s1, 0xff +/* 115AD4 7F0E0FA4 10000615 */ b .L7F0E27FC +/* 115AD8 7F0E0FA8 01208825 */ move $s1, $t1 +spectrum_op_ED_AB: +/* 115ADC 7F0E0FAC 8FAA028C */ lw $t2, 0x28c($sp) +/* 115AE0 7F0E0FB0 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 115AE4 7F0E0FB4 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 115AE8 7F0E0FB8 00165A00 */ sll $t3, $s6, 8 +/* 115AEC 7F0E0FBC 01777825 */ or $t7, $t3, $s7 +/* 115AF0 7F0E0FC0 2544000C */ addiu $a0, $t2, 0xc +/* 115AF4 7F0E0FC4 AFA4028C */ sw $a0, 0x28c($sp) +/* 115AF8 7F0E0FC8 01EE4021 */ addu $t0, $t7, $t6 +/* 115AFC 7F0E0FCC 91070000 */ lbu $a3, ($t0) +/* 115B00 7F0E0FD0 02402825 */ move $a1, $s2 +/* 115B04 7F0E0FD4 02603025 */ move $a2, $s3 +/* 115B08 7F0E0FD8 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 115B0C 7F0E0FDC A3A7006B */ sb $a3, 0x6b($sp) +/* 115B10 7F0E0FE0 8FAD028C */ lw $t5, 0x28c($sp) +/* 115B14 7F0E0FE4 2EEA0001 */ sltiu $t2, $s7, 1 +/* 115B18 7F0E0FE8 26F7FFFF */ addiu $s7, $s7, -1 +/* 115B1C 7F0E0FEC AFA20048 */ sw $v0, 0x48($sp) +/* 115B20 7F0E0FF0 32EB00FF */ andi $t3, $s7, 0xff +/* 115B24 7F0E0FF4 01A24821 */ addu $t1, $t5, $v0 +/* 115B28 7F0E0FF8 AFA9028C */ sw $t1, 0x28c($sp) +/* 115B2C 7F0E0FFC 0160B825 */ move $s7, $t3 +/* 115B30 7F0E1000 11400004 */ beqz $t2, .L7F0E1014 +/* 115B34 7F0E1004 AFAA0048 */ sw $t2, 0x48($sp) +/* 115B38 7F0E1008 26D6FFFF */ addiu $s6, $s6, -1 +/* 115B3C 7F0E100C 32CE00FF */ andi $t6, $s6, 0xff +/* 115B40 7F0E1010 01C0B025 */ move $s6, $t6 +.L7F0E1014: +/* 115B44 7F0E1014 2652FFFF */ addiu $s2, $s2, -1 +/* 115B48 7F0E1018 324800FF */ andi $t0, $s2, 0xff +/* 115B4C 7F0E101C 32390001 */ andi $t9, $s1, 1 +/* 115B50 7F0E1020 37380012 */ ori $t8, $t9, 0x12 +/* 115B54 7F0E1024 310D00A8 */ andi $t5, $t0, 0xa8 +/* 115B58 7F0E1028 2D090001 */ sltiu $t1, $t0, 1 +/* 115B5C 7F0E102C 00095180 */ sll $t2, $t1, 6 +/* 115B60 7F0E1030 030D6025 */ or $t4, $t8, $t5 +/* 115B64 7F0E1034 018A8825 */ or $s1, $t4, $t2 +/* 115B68 7F0E1038 322B00FF */ andi $t3, $s1, 0xff +/* 115B6C 7F0E103C 01009025 */ move $s2, $t0 +/* 115B70 7F0E1040 100005EE */ b .L7F0E27FC +/* 115B74 7F0E1044 01608825 */ move $s1, $t3 +spectrum_op_ED_B0: +/* 115B78 7F0E1048 8FAF028C */ lw $t7, 0x28c($sp) +/* 115B7C 7F0E104C 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 115B80 7F0E1050 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 115B84 7F0E1054 00164200 */ sll $t0, $s6, 8 +/* 115B88 7F0E1058 0117C825 */ or $t9, $t0, $s7 +/* 115B8C 7F0E105C 25EE000C */ addiu $t6, $t7, 0xc +/* 115B90 7F0E1060 AFAE028C */ sw $t6, 0x28c($sp) +/* 115B94 7F0E1064 00146200 */ sll $t4, $s4, 8 +/* 115B98 7F0E1068 03386821 */ addu $t5, $t9, $t8 +/* 115B9C 7F0E106C 91A90000 */ lbu $t1, ($t5) +/* 115BA0 7F0E1070 01955025 */ or $t2, $t4, $s5 +/* 115BA4 7F0E1074 29415B00 */ slti $at, $t2, 0x5b00 +/* 115BA8 7F0E1078 14200008 */ bnez $at, .L7F0E109C +/* 115BAC 7F0E107C A3A9006A */ sb $t1, 0x6a($sp) +/* 115BB0 7F0E1080 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 115BB4 7F0E1084 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 115BB8 7F0E1088 00147200 */ sll $t6, $s4, 8 +/* 115BBC 7F0E108C 01D54025 */ or $t0, $t6, $s5 +/* 115BC0 7F0E1090 01E8C821 */ addu $t9, $t7, $t0 +/* 115BC4 7F0E1094 1000002B */ b .L7F0E1144 +/* 115BC8 7F0E1098 A3290000 */ sb $t1, ($t9) +.L7F0E109C: +/* 115BCC 7F0E109C 0014C200 */ sll $t8, $s4, 8 +/* 115BD0 7F0E10A0 03156825 */ or $t5, $t8, $s5 +/* 115BD4 7F0E10A4 29A15800 */ slti $at, $t5, 0x5800 +/* 115BD8 7F0E10A8 14200010 */ bnez $at, .L7F0E10EC +/* 115BDC 7F0E10AC 00145200 */ sll $t2, $s4, 8 +/* 115BE0 7F0E10B0 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 115BE4 7F0E10B4 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 115BE8 7F0E10B8 93A9006A */ lbu $t1, 0x6a($sp) +/* 115BEC 7F0E10BC 00145200 */ sll $t2, $s4, 8 +/* 115BF0 7F0E10C0 01557025 */ or $t6, $t2, $s5 +/* 115BF4 7F0E10C4 018E7821 */ addu $t7, $t4, $t6 +/* 115BF8 7F0E10C8 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 115BFC 7F0E10CC A1E90000 */ sb $t1, ($t7) +/* 115C00 7F0E10D0 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 115C04 7F0E10D4 0014CA00 */ sll $t9, $s4, 8 +/* 115C08 7F0E10D8 0335C025 */ or $t8, $t9, $s5 +/* 115C0C 7F0E10DC 24080001 */ li $t0, 1 +/* 115C10 7F0E10E0 01786821 */ addu $t5, $t3, $t8 +/* 115C14 7F0E10E4 10000017 */ b .L7F0E1144 +/* 115C18 7F0E10E8 A1A8A800 */ sb $t0, -0x5800($t5) +.L7F0E10EC: +/* 115C1C 7F0E10EC 01556025 */ or $t4, $t2, $s5 +/* 115C20 7F0E10F0 29814000 */ slti $at, $t4, 0x4000 +/* 115C24 7F0E10F4 14200013 */ bnez $at, .L7F0E1144 +/* 115C28 7F0E10F8 93AE006A */ lbu $t6, 0x6a($sp) +/* 115C2C 7F0E10FC 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 115C30 7F0E1100 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 115C34 7F0E1104 00147A00 */ sll $t7, $s4, 8 +/* 115C38 7F0E1108 01F5C825 */ or $t9, $t7, $s5 +/* 115C3C 7F0E110C 01395821 */ addu $t3, $t1, $t9 +/* 115C40 7F0E1110 A16E0000 */ sb $t6, ($t3) +/* 115C44 7F0E1114 00144200 */ sll $t0, $s4, 8 +/* 115C48 7F0E1118 01156825 */ or $t5, $t0, $s5 +/* 115C4C 7F0E111C 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 115C50 7F0E1120 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 115C54 7F0E1124 31AA1800 */ andi $t2, $t5, 0x1800 +/* 115C58 7F0E1128 01F54825 */ or $t1, $t7, $s5 +/* 115C5C 7F0E112C 313900FF */ andi $t9, $t1, 0xff +/* 115C60 7F0E1130 000A60C3 */ sra $t4, $t2, 3 +/* 115C64 7F0E1134 01997025 */ or $t6, $t4, $t9 +/* 115C68 7F0E1138 24180001 */ li $t8, 1 +/* 115C6C 7F0E113C 016E4021 */ addu $t0, $t3, $t6 +/* 115C70 7F0E1140 A1180000 */ sb $t8, ($t0) +.L7F0E1144: +/* 115C74 7F0E1144 26F70001 */ addiu $s7, $s7, 1 +/* 115C78 7F0E1148 32ED00FF */ andi $t5, $s7, 0xff +/* 115C7C 7F0E114C 15A00004 */ bnez $t5, .L7F0E1160 +/* 115C80 7F0E1150 01A0B825 */ move $s7, $t5 +/* 115C84 7F0E1154 26D60001 */ addiu $s6, $s6, 1 +/* 115C88 7F0E1158 32CA00FF */ andi $t2, $s6, 0xff +/* 115C8C 7F0E115C 0140B025 */ move $s6, $t2 +.L7F0E1160: +/* 115C90 7F0E1160 26B50001 */ addiu $s5, $s5, 1 +/* 115C94 7F0E1164 32AF00FF */ andi $t7, $s5, 0xff +/* 115C98 7F0E1168 15E00004 */ bnez $t7, .L7F0E117C +/* 115C9C 7F0E116C 01E0A825 */ move $s5, $t7 +/* 115CA0 7F0E1170 26940001 */ addiu $s4, $s4, 1 +/* 115CA4 7F0E1174 328900FF */ andi $t1, $s4, 0xff +/* 115CA8 7F0E1178 0120A025 */ move $s4, $t1 +.L7F0E117C: +/* 115CAC 7F0E117C 2E6C0001 */ sltiu $t4, $s3, 1 +/* 115CB0 7F0E1180 2673FFFF */ addiu $s3, $s3, -1 +/* 115CB4 7F0E1184 327900FF */ andi $t9, $s3, 0xff +/* 115CB8 7F0E1188 03209825 */ move $s3, $t9 +/* 115CBC 7F0E118C 11800004 */ beqz $t4, .L7F0E11A0 +/* 115CC0 7F0E1190 AFAC0048 */ sw $t4, 0x48($sp) +/* 115CC4 7F0E1194 2652FFFF */ addiu $s2, $s2, -1 +/* 115CC8 7F0E1198 324E00FF */ andi $t6, $s2, 0xff +/* 115CCC 7F0E119C 01C09025 */ move $s2, $t6 +.L7F0E11A0: +/* 115CD0 7F0E11A0 93A8006A */ lbu $t0, 0x6a($sp) +/* 115CD4 7F0E11A4 02537825 */ or $t7, $s2, $s3 +/* 115CD8 7F0E11A8 000F482A */ slt $t1, $zero, $t7 +/* 115CDC 7F0E11AC 323800C1 */ andi $t8, $s1, 0xc1 +/* 115CE0 7F0E11B0 310D0028 */ andi $t5, $t0, 0x28 +/* 115CE4 7F0E11B4 030D5025 */ or $t2, $t8, $t5 +/* 115CE8 7F0E11B8 00096080 */ sll $t4, $t1, 2 +/* 115CEC 7F0E11BC 014C8825 */ or $s1, $t2, $t4 +/* 115CF0 7F0E11C0 323900FF */ andi $t9, $s1, 0xff +/* 115CF4 7F0E11C4 02535825 */ or $t3, $s2, $s3 +/* 115CF8 7F0E11C8 1160058C */ beqz $t3, .L7F0E27FC +/* 115CFC 7F0E11CC 03208825 */ move $s1, $t9 +/* 115D00 7F0E11D0 97AE0298 */ lhu $t6, 0x298($sp) +/* 115D04 7F0E11D4 8FB8028C */ lw $t8, 0x28c($sp) +/* 115D08 7F0E11D8 25C8FFFE */ addiu $t0, $t6, -2 +/* 115D0C 7F0E11DC 270D0005 */ addiu $t5, $t8, 5 +/* 115D10 7F0E11E0 AFAD028C */ sw $t5, 0x28c($sp) +/* 115D14 7F0E11E4 10000585 */ b .L7F0E27FC +/* 115D18 7F0E11E8 A7A80298 */ sh $t0, 0x298($sp) +spectrum_op_ED_B1: +/* 115D1C 7F0E11EC 8FAF028C */ lw $t7, 0x28c($sp) +/* 115D20 7F0E11F0 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 115D24 7F0E11F4 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 115D28 7F0E11F8 00166200 */ sll $t4, $s6, 8 +/* 115D2C 7F0E11FC 322A0001 */ andi $t2, $s1, 1 +/* 115D30 7F0E1200 0197C825 */ or $t9, $t4, $s7 +/* 115D34 7F0E1204 25E9000C */ addiu $t1, $t7, 0xc +/* 115D38 7F0E1208 AFA9028C */ sw $t1, 0x28c($sp) +/* 115D3C 7F0E120C A3AA0069 */ sb $t2, 0x69($sp) +/* 115D40 7F0E1210 032B7021 */ addu $t6, $t9, $t3 +/* 115D44 7F0E1214 91C80000 */ lbu $t0, ($t6) +/* 115D48 7F0E1218 26F70001 */ addiu $s7, $s7, 1 +/* 115D4C 7F0E121C 24010004 */ li $at, 4 +/* 115D50 7F0E1220 0208C023 */ subu $t8, $s0, $t0 +/* 115D54 7F0E1224 330D01FF */ andi $t5, $t8, 0x1ff +/* 115D58 7F0E1228 31AFFFFF */ andi $t7, $t5, 0xffff +/* 115D5C 7F0E122C 2DE90001 */ sltiu $t1, $t7, 1 +/* 115D60 7F0E1230 320F000F */ andi $t7, $s0, 0xf +/* 115D64 7F0E1234 3118000F */ andi $t8, $t0, 0xf +/* 115D68 7F0E1238 01F8502A */ slt $t2, $t7, $t8 +/* 115D6C 7F0E123C 31AC00A8 */ andi $t4, $t5, 0xa8 +/* 115D70 7F0E1240 000D5A03 */ sra $t3, $t5, 8 +/* 115D74 7F0E1244 018B7025 */ or $t6, $t4, $t3 +/* 115D78 7F0E1248 000AC900 */ sll $t9, $t2, 4 +/* 115D7C 7F0E124C 01A0C025 */ move $t8, $t5 +/* 115D80 7F0E1250 02085826 */ xor $t3, $s0, $t0 +/* 115D84 7F0E1254 316F0080 */ andi $t7, $t3, 0x80 +/* 115D88 7F0E1258 03105026 */ xor $t2, $t8, $s0 +/* 115D8C 7F0E125C 01D96025 */ or $t4, $t6, $t9 +/* 115D90 7F0E1260 01EA7024 */ and $t6, $t7, $t2 +/* 115D94 7F0E1264 000EC943 */ sra $t9, $t6, 5 +/* 115D98 7F0E1268 A3A80065 */ sb $t0, 0x65($sp) +/* 115D9C 7F0E126C 01994025 */ or $t0, $t4, $t9 +/* 115DA0 7F0E1270 A7AD0066 */ sh $t5, 0x66($sp) +/* 115DA4 7F0E1274 00096980 */ sll $t5, $t1, 6 +/* 115DA8 7F0E1278 350B0002 */ ori $t3, $t0, 2 +/* 115DAC 7F0E127C 016D8825 */ or $s1, $t3, $t5 +/* 115DB0 7F0E1280 323800FF */ andi $t8, $s1, 0xff +/* 115DB4 7F0E1284 32EF00FF */ andi $t7, $s7, 0xff +/* 115DB8 7F0E1288 03008825 */ move $s1, $t8 +/* 115DBC 7F0E128C AFA90048 */ sw $t1, 0x48($sp) +/* 115DC0 7F0E1290 15E00004 */ bnez $t7, .L7F0E12A4 +/* 115DC4 7F0E1294 01E0B825 */ move $s7, $t7 +/* 115DC8 7F0E1298 26D60001 */ addiu $s6, $s6, 1 +/* 115DCC 7F0E129C 32CA00FF */ andi $t2, $s6, 0xff +/* 115DD0 7F0E12A0 0140B025 */ move $s6, $t2 +.L7F0E12A4: +/* 115DD4 7F0E12A4 2E6E0001 */ sltiu $t6, $s3, 1 +/* 115DD8 7F0E12A8 2673FFFF */ addiu $s3, $s3, -1 +/* 115DDC 7F0E12AC 326C00FF */ andi $t4, $s3, 0xff +/* 115DE0 7F0E12B0 01809825 */ move $s3, $t4 +/* 115DE4 7F0E12B4 11C00004 */ beqz $t6, .L7F0E12C8 +/* 115DE8 7F0E12B8 AFAE0048 */ sw $t6, 0x48($sp) +/* 115DEC 7F0E12BC 2652FFFF */ addiu $s2, $s2, -1 +/* 115DF0 7F0E12C0 324800FF */ andi $t0, $s2, 0xff +/* 115DF4 7F0E12C4 01009025 */ move $s2, $t0 +.L7F0E12C8: +/* 115DF8 7F0E12C8 93AB0069 */ lbu $t3, 0x69($sp) +/* 115DFC 7F0E12CC 0253C025 */ or $t8, $s2, $s3 +/* 115E00 7F0E12D0 0018782A */ slt $t7, $zero, $t8 +/* 115E04 7F0E12D4 322900FA */ andi $t1, $s1, 0xfa +/* 115E08 7F0E12D8 000F5080 */ sll $t2, $t7, 2 +/* 115E0C 7F0E12DC 012B6825 */ or $t5, $t1, $t3 +/* 115E10 7F0E12E0 01AA8825 */ or $s1, $t5, $t2 +/* 115E14 7F0E12E4 322E00FF */ andi $t6, $s1, 0xff +/* 115E18 7F0E12E8 31CC0044 */ andi $t4, $t6, 0x44 +/* 115E1C 7F0E12EC 15810543 */ bne $t4, $at, .L7F0E27FC +/* 115E20 7F0E12F0 01C08825 */ move $s1, $t6 +/* 115E24 7F0E12F4 97B90298 */ lhu $t9, 0x298($sp) +/* 115E28 7F0E12F8 8FA9028C */ lw $t1, 0x28c($sp) +/* 115E2C 7F0E12FC 2728FFFE */ addiu $t0, $t9, -2 +/* 115E30 7F0E1300 252B0005 */ addiu $t3, $t1, 5 +/* 115E34 7F0E1304 AFAB028C */ sw $t3, 0x28c($sp) +/* 115E38 7F0E1308 1000053C */ b .L7F0E27FC +/* 115E3C 7F0E130C A7A80298 */ sh $t0, 0x298($sp) +spectrum_op_ED_B2: +/* 115E40 7F0E1310 8FB8028C */ lw $t8, 0x28c($sp) +/* 115E44 7F0E1314 02402825 */ move $a1, $s2 +/* 115E48 7F0E1318 02603025 */ move $a2, $s3 +/* 115E4C 7F0E131C 2704000C */ addiu $a0, $t8, 0xc +/* 115E50 7F0E1320 0FC34DB6 */ jal spectrum_input_handling +/* 115E54 7F0E1324 AFA4028C */ sw $a0, 0x28c($sp) +/* 115E58 7F0E1328 00166A00 */ sll $t5, $s6, 8 +/* 115E5C 7F0E132C 01B75025 */ or $t2, $t5, $s7 +/* 115E60 7F0E1330 29415B00 */ slti $at, $t2, 0x5b00 +/* 115E64 7F0E1334 14200008 */ bnez $at, .L7F0E1358 +/* 115E68 7F0E1338 A7A20062 */ sh $v0, 0x62($sp) +/* 115E6C 7F0E133C 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 115E70 7F0E1340 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 115E74 7F0E1344 0016CA00 */ sll $t9, $s6, 8 +/* 115E78 7F0E1348 03374025 */ or $t0, $t9, $s7 +/* 115E7C 7F0E134C 01884821 */ addu $t1, $t4, $t0 +/* 115E80 7F0E1350 1000002B */ b .L7F0E1400 +/* 115E84 7F0E1354 A1220000 */ sb $v0, ($t1) +.L7F0E1358: +/* 115E88 7F0E1358 00165A00 */ sll $t3, $s6, 8 +/* 115E8C 7F0E135C 0177C025 */ or $t8, $t3, $s7 +/* 115E90 7F0E1360 2B015800 */ slti $at, $t8, 0x5800 +/* 115E94 7F0E1364 14200010 */ bnez $at, .L7F0E13A8 +/* 115E98 7F0E1368 00165200 */ sll $t2, $s6, 8 +/* 115E9C 7F0E136C 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 115EA0 7F0E1370 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 115EA4 7F0E1374 97AF0062 */ lhu $t7, 0x62($sp) +/* 115EA8 7F0E1378 00165200 */ sll $t2, $s6, 8 +/* 115EAC 7F0E137C 0157C825 */ or $t9, $t2, $s7 +/* 115EB0 7F0E1380 01B96021 */ addu $t4, $t5, $t9 +/* 115EB4 7F0E1384 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 115EB8 7F0E1388 A18F0000 */ sb $t7, ($t4) +/* 115EBC 7F0E138C 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 115EC0 7F0E1390 00164A00 */ sll $t1, $s6, 8 +/* 115EC4 7F0E1394 01375825 */ or $t3, $t1, $s7 +/* 115EC8 7F0E1398 24080001 */ li $t0, 1 +/* 115ECC 7F0E139C 01CBC021 */ addu $t8, $t6, $t3 +/* 115ED0 7F0E13A0 10000017 */ b .L7F0E1400 +/* 115ED4 7F0E13A4 A308A800 */ sb $t0, -0x5800($t8) +.L7F0E13A8: +/* 115ED8 7F0E13A8 01576825 */ or $t5, $t2, $s7 +/* 115EDC 7F0E13AC 29A14000 */ slti $at, $t5, 0x4000 +/* 115EE0 7F0E13B0 14200013 */ bnez $at, .L7F0E1400 +/* 115EE4 7F0E13B4 97B90062 */ lhu $t9, 0x62($sp) +/* 115EE8 7F0E13B8 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 115EEC 7F0E13BC 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 115EF0 7F0E13C0 00166200 */ sll $t4, $s6, 8 +/* 115EF4 7F0E13C4 01974825 */ or $t1, $t4, $s7 +/* 115EF8 7F0E13C8 01E97021 */ addu $t6, $t7, $t1 +/* 115EFC 7F0E13CC A1D90000 */ sb $t9, ($t6) +/* 115F00 7F0E13D0 00164200 */ sll $t0, $s6, 8 +/* 115F04 7F0E13D4 0117C025 */ or $t8, $t0, $s7 +/* 115F08 7F0E13D8 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 115F0C 7F0E13DC 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 115F10 7F0E13E0 330A1800 */ andi $t2, $t8, 0x1800 +/* 115F14 7F0E13E4 01977825 */ or $t7, $t4, $s7 +/* 115F18 7F0E13E8 31E900FF */ andi $t1, $t7, 0xff +/* 115F1C 7F0E13EC 000A68C3 */ sra $t5, $t2, 3 +/* 115F20 7F0E13F0 01A9C825 */ or $t9, $t5, $t1 +/* 115F24 7F0E13F4 240B0001 */ li $t3, 1 +/* 115F28 7F0E13F8 01D94021 */ addu $t0, $t6, $t9 +/* 115F2C 7F0E13FC A10B0000 */ sb $t3, ($t0) +.L7F0E1400: +/* 115F30 7F0E1400 97AA0062 */ lhu $t2, 0x62($sp) +/* 115F34 7F0E1404 8FB8028C */ lw $t8, 0x28c($sp) +/* 115F38 7F0E1408 26F70001 */ addiu $s7, $s7, 1 +/* 115F3C 7F0E140C 000A6203 */ sra $t4, $t2, 8 +/* 115F40 7F0E1410 32ED00FF */ andi $t5, $s7, 0xff +/* 115F44 7F0E1414 030C7821 */ addu $t7, $t8, $t4 +/* 115F48 7F0E1418 AFAF028C */ sw $t7, 0x28c($sp) +/* 115F4C 7F0E141C 15A00004 */ bnez $t5, .L7F0E1430 +/* 115F50 7F0E1420 01A0B825 */ move $s7, $t5 +/* 115F54 7F0E1424 26D60001 */ addiu $s6, $s6, 1 +/* 115F58 7F0E1428 32C900FF */ andi $t1, $s6, 0xff +/* 115F5C 7F0E142C 0120B025 */ move $s6, $t1 +.L7F0E1430: +/* 115F60 7F0E1430 3C0C8009 */ lui $t4, %hi(ptr_pc_keyboard_table_alloc) +/* 115F64 7F0E1434 8D8CE334 */ lw $t4, %lo(ptr_pc_keyboard_table_alloc)($t4) +/* 115F68 7F0E1438 2652FFFF */ addiu $s2, $s2, -1 +/* 115F6C 7F0E143C 324E00FF */ andi $t6, $s2, 0xff +/* 115F70 7F0E1440 01CC7821 */ addu $t7, $t6, $t4 +/* 115F74 7F0E1444 91ED0000 */ lbu $t5, ($t7) +/* 115F78 7F0E1448 000E582A */ slt $t3, $zero, $t6 +/* 115F7C 7F0E144C 000B4180 */ sll $t0, $t3, 6 +/* 115F80 7F0E1450 31D900A8 */ andi $t9, $t6, 0xa8 +/* 115F84 7F0E1454 01C09025 */ move $s2, $t6 +/* 115F88 7F0E1458 03285025 */ or $t2, $t9, $t0 +/* 115F8C 7F0E145C 01B34826 */ xor $t1, $t5, $s3 +/* 115F90 7F0E1460 312E0004 */ andi $t6, $t1, 4 +/* 115F94 7F0E1464 35580002 */ ori $t8, $t2, 2 +/* 115F98 7F0E1468 01D88825 */ or $s1, $t6, $t8 +/* 115F9C 7F0E146C 322B00FF */ andi $t3, $s1, 0xff +/* 115FA0 7F0E1470 124004E2 */ beqz $s2, .L7F0E27FC +/* 115FA4 7F0E1474 01608825 */ move $s1, $t3 +/* 115FA8 7F0E1478 97B90298 */ lhu $t9, 0x298($sp) +/* 115FAC 7F0E147C 8FAA028C */ lw $t2, 0x28c($sp) +/* 115FB0 7F0E1480 2728FFFE */ addiu $t0, $t9, -2 +/* 115FB4 7F0E1484 254C0005 */ addiu $t4, $t2, 5 +/* 115FB8 7F0E1488 AFAC028C */ sw $t4, 0x28c($sp) +/* 115FBC 7F0E148C 100004DB */ b .L7F0E27FC +/* 115FC0 7F0E1490 A7A80298 */ sh $t0, 0x298($sp) +spectrum_op_ED_B3: +/* 115FC4 7F0E1494 8FAF028C */ lw $t7, 0x28c($sp) +/* 115FC8 7F0E1498 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 115FCC 7F0E149C 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 115FD0 7F0E14A0 00164A00 */ sll $t1, $s6, 8 +/* 115FD4 7F0E14A4 01377025 */ or $t6, $t1, $s7 +/* 115FD8 7F0E14A8 25E4000C */ addiu $a0, $t7, 0xc +/* 115FDC 7F0E14AC AFA4028C */ sw $a0, 0x28c($sp) +/* 115FE0 7F0E14B0 01D85821 */ addu $t3, $t6, $t8 +/* 115FE4 7F0E14B4 91670000 */ lbu $a3, ($t3) +/* 115FE8 7F0E14B8 02402825 */ move $a1, $s2 +/* 115FEC 7F0E14BC 02603025 */ move $a2, $s3 +/* 115FF0 7F0E14C0 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 115FF4 7F0E14C4 A3A70061 */ sb $a3, 0x61($sp) +/* 115FF8 7F0E14C8 8FA8028C */ lw $t0, 0x28c($sp) +/* 115FFC 7F0E14CC 26F70001 */ addiu $s7, $s7, 1 +/* 116000 7F0E14D0 32EF00FF */ andi $t7, $s7, 0xff +/* 116004 7F0E14D4 01026021 */ addu $t4, $t0, $v0 +/* 116008 7F0E14D8 AFAC028C */ sw $t4, 0x28c($sp) +/* 11600C 7F0E14DC AFA20048 */ sw $v0, 0x48($sp) +/* 116010 7F0E14E0 15E00004 */ bnez $t7, .L7F0E14F4 +/* 116014 7F0E14E4 01E0B825 */ move $s7, $t7 +/* 116018 7F0E14E8 26D60001 */ addiu $s6, $s6, 1 +/* 11601C 7F0E14EC 32C900FF */ andi $t1, $s6, 0xff +/* 116020 7F0E14F0 0120B025 */ move $s6, $t1 +.L7F0E14F4: +/* 116024 7F0E14F4 2652FFFF */ addiu $s2, $s2, -1 +/* 116028 7F0E14F8 324E00FF */ andi $t6, $s2, 0xff +/* 11602C 7F0E14FC 32380001 */ andi $t8, $s1, 1 +/* 116030 7F0E1500 370B0012 */ ori $t3, $t8, 0x12 +/* 116034 7F0E1504 31CD00A8 */ andi $t5, $t6, 0xa8 +/* 116038 7F0E1508 2DC80001 */ sltiu $t0, $t6, 1 +/* 11603C 7F0E150C 00085180 */ sll $t2, $t0, 6 +/* 116040 7F0E1510 016DC825 */ or $t9, $t3, $t5 +/* 116044 7F0E1514 032A8825 */ or $s1, $t9, $t2 +/* 116048 7F0E1518 322C00FF */ andi $t4, $s1, 0xff +/* 11604C 7F0E151C 01C09025 */ move $s2, $t6 +/* 116050 7F0E1520 11C004B6 */ beqz $t6, .L7F0E27FC +/* 116054 7F0E1524 01808825 */ move $s1, $t4 +/* 116058 7F0E1528 97AF0298 */ lhu $t7, 0x298($sp) +/* 11605C 7F0E152C 8FAE028C */ lw $t6, 0x28c($sp) +/* 116060 7F0E1530 25E9FFFE */ addiu $t1, $t7, -2 +/* 116064 7F0E1534 25D80005 */ addiu $t8, $t6, 5 +/* 116068 7F0E1538 AFB8028C */ sw $t8, 0x28c($sp) +/* 11606C 7F0E153C 100004AF */ b .L7F0E27FC +/* 116070 7F0E1540 A7A90298 */ sh $t1, 0x298($sp) +spectrum_op_ED_B8: +/* 116074 7F0E1544 8FAB028C */ lw $t3, 0x28c($sp) +/* 116078 7F0E1548 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 11607C 7F0E154C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 116080 7F0E1550 00164200 */ sll $t0, $s6, 8 +/* 116084 7F0E1554 0117C825 */ or $t9, $t0, $s7 +/* 116088 7F0E1558 256D000C */ addiu $t5, $t3, 0xc +/* 11608C 7F0E155C AFAD028C */ sw $t5, 0x28c($sp) +/* 116090 7F0E1560 00144A00 */ sll $t1, $s4, 8 +/* 116094 7F0E1564 032A6021 */ addu $t4, $t9, $t2 +/* 116098 7F0E1568 918F0000 */ lbu $t7, ($t4) +/* 11609C 7F0E156C 01357025 */ or $t6, $t1, $s5 +/* 1160A0 7F0E1570 29C15B00 */ slti $at, $t6, 0x5b00 +/* 1160A4 7F0E1574 14200008 */ bnez $at, .L7F0E1598 +/* 1160A8 7F0E1578 A3AF0060 */ sb $t7, 0x60($sp) +/* 1160AC 7F0E157C 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1160B0 7F0E1580 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 1160B4 7F0E1584 00146A00 */ sll $t5, $s4, 8 +/* 1160B8 7F0E1588 01B54025 */ or $t0, $t5, $s5 +/* 1160BC 7F0E158C 0168C821 */ addu $t9, $t3, $t0 +/* 1160C0 7F0E1590 1000002B */ b .L7F0E1640 +/* 1160C4 7F0E1594 A32F0000 */ sb $t7, ($t9) +.L7F0E1598: +/* 1160C8 7F0E1598 00145200 */ sll $t2, $s4, 8 +/* 1160CC 7F0E159C 01556025 */ or $t4, $t2, $s5 +/* 1160D0 7F0E15A0 29815800 */ slti $at, $t4, 0x5800 +/* 1160D4 7F0E15A4 14200010 */ bnez $at, .L7F0E15E8 +/* 1160D8 7F0E15A8 00147200 */ sll $t6, $s4, 8 +/* 1160DC 7F0E15AC 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 1160E0 7F0E15B0 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 1160E4 7F0E15B4 93AF0060 */ lbu $t7, 0x60($sp) +/* 1160E8 7F0E15B8 00147200 */ sll $t6, $s4, 8 +/* 1160EC 7F0E15BC 01D56825 */ or $t5, $t6, $s5 +/* 1160F0 7F0E15C0 012D5821 */ addu $t3, $t1, $t5 +/* 1160F4 7F0E15C4 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 1160F8 7F0E15C8 A16F0000 */ sb $t7, ($t3) +/* 1160FC 7F0E15CC 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 116100 7F0E15D0 0014CA00 */ sll $t9, $s4, 8 +/* 116104 7F0E15D4 03355025 */ or $t2, $t9, $s5 +/* 116108 7F0E15D8 24080001 */ li $t0, 1 +/* 11610C 7F0E15DC 030A6021 */ addu $t4, $t8, $t2 +/* 116110 7F0E15E0 10000017 */ b .L7F0E1640 +/* 116114 7F0E15E4 A188A800 */ sb $t0, -0x5800($t4) +.L7F0E15E8: +/* 116118 7F0E15E8 01D54825 */ or $t1, $t6, $s5 +/* 11611C 7F0E15EC 29214000 */ slti $at, $t1, 0x4000 +/* 116120 7F0E15F0 14200013 */ bnez $at, .L7F0E1640 +/* 116124 7F0E15F4 93AD0060 */ lbu $t5, 0x60($sp) +/* 116128 7F0E15F8 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 11612C 7F0E15FC 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 116130 7F0E1600 00145A00 */ sll $t3, $s4, 8 +/* 116134 7F0E1604 0175C825 */ or $t9, $t3, $s5 +/* 116138 7F0E1608 01F9C021 */ addu $t8, $t7, $t9 +/* 11613C 7F0E160C A30D0000 */ sb $t5, ($t8) +/* 116140 7F0E1610 00144200 */ sll $t0, $s4, 8 +/* 116144 7F0E1614 01156025 */ or $t4, $t0, $s5 +/* 116148 7F0E1618 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 11614C 7F0E161C 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 116150 7F0E1620 318E1800 */ andi $t6, $t4, 0x1800 +/* 116154 7F0E1624 01757825 */ or $t7, $t3, $s5 +/* 116158 7F0E1628 31F900FF */ andi $t9, $t7, 0xff +/* 11615C 7F0E162C 000E48C3 */ sra $t1, $t6, 3 +/* 116160 7F0E1630 01396825 */ or $t5, $t1, $t9 +/* 116164 7F0E1634 240A0001 */ li $t2, 1 +/* 116168 7F0E1638 030D4021 */ addu $t0, $t8, $t5 +/* 11616C 7F0E163C A10A0000 */ sb $t2, ($t0) +.L7F0E1640: +/* 116170 7F0E1640 2EEC0001 */ sltiu $t4, $s7, 1 +/* 116174 7F0E1644 26F7FFFF */ addiu $s7, $s7, -1 +/* 116178 7F0E1648 32EE00FF */ andi $t6, $s7, 0xff +/* 11617C 7F0E164C 01C0B825 */ move $s7, $t6 +/* 116180 7F0E1650 11800004 */ beqz $t4, .L7F0E1664 +/* 116184 7F0E1654 AFAC0048 */ sw $t4, 0x48($sp) +/* 116188 7F0E1658 26D6FFFF */ addiu $s6, $s6, -1 +/* 11618C 7F0E165C 32CF00FF */ andi $t7, $s6, 0xff +/* 116190 7F0E1660 01E0B025 */ move $s6, $t7 +.L7F0E1664: +/* 116194 7F0E1664 2EA90001 */ sltiu $t1, $s5, 1 +/* 116198 7F0E1668 26B5FFFF */ addiu $s5, $s5, -1 +/* 11619C 7F0E166C 32B900FF */ andi $t9, $s5, 0xff +/* 1161A0 7F0E1670 0320A825 */ move $s5, $t9 +/* 1161A4 7F0E1674 11200004 */ beqz $t1, .L7F0E1688 +/* 1161A8 7F0E1678 AFA90048 */ sw $t1, 0x48($sp) +/* 1161AC 7F0E167C 2694FFFF */ addiu $s4, $s4, -1 +/* 1161B0 7F0E1680 328D00FF */ andi $t5, $s4, 0xff +/* 1161B4 7F0E1684 01A0A025 */ move $s4, $t5 +.L7F0E1688: +/* 1161B8 7F0E1688 2E6A0001 */ sltiu $t2, $s3, 1 +/* 1161BC 7F0E168C 2673FFFF */ addiu $s3, $s3, -1 +/* 1161C0 7F0E1690 326800FF */ andi $t0, $s3, 0xff +/* 1161C4 7F0E1694 01009825 */ move $s3, $t0 +/* 1161C8 7F0E1698 11400004 */ beqz $t2, .L7F0E16AC +/* 1161CC 7F0E169C AFAA0048 */ sw $t2, 0x48($sp) +/* 1161D0 7F0E16A0 2652FFFF */ addiu $s2, $s2, -1 +/* 1161D4 7F0E16A4 324E00FF */ andi $t6, $s2, 0xff +/* 1161D8 7F0E16A8 01C09025 */ move $s2, $t6 +.L7F0E16AC: +/* 1161DC 7F0E16AC 93AF0060 */ lbu $t7, 0x60($sp) +/* 1161E0 7F0E16B0 0253C025 */ or $t8, $s2, $s3 +/* 1161E4 7F0E16B4 0018682A */ slt $t5, $zero, $t8 +/* 1161E8 7F0E16B8 322B00C1 */ andi $t3, $s1, 0xc1 +/* 1161EC 7F0E16BC 31E90028 */ andi $t1, $t7, 0x28 +/* 1161F0 7F0E16C0 0169C825 */ or $t9, $t3, $t1 +/* 1161F4 7F0E16C4 000D5080 */ sll $t2, $t5, 2 +/* 1161F8 7F0E16C8 032A8825 */ or $s1, $t9, $t2 +/* 1161FC 7F0E16CC 322800FF */ andi $t0, $s1, 0xff +/* 116200 7F0E16D0 02536025 */ or $t4, $s2, $s3 +/* 116204 7F0E16D4 11800449 */ beqz $t4, .L7F0E27FC +/* 116208 7F0E16D8 01008825 */ move $s1, $t0 +/* 11620C 7F0E16DC 97AE0298 */ lhu $t6, 0x298($sp) +/* 116210 7F0E16E0 8FAB028C */ lw $t3, 0x28c($sp) +/* 116214 7F0E16E4 25CFFFFE */ addiu $t7, $t6, -2 +/* 116218 7F0E16E8 25690005 */ addiu $t1, $t3, 5 +/* 11621C 7F0E16EC AFA9028C */ sw $t1, 0x28c($sp) +/* 116220 7F0E16F0 10000442 */ b .L7F0E27FC +/* 116224 7F0E16F4 A7AF0298 */ sh $t7, 0x298($sp) +spectrum_op_ED_B9: +/* 116228 7F0E16F8 8FB8028C */ lw $t8, 0x28c($sp) +/* 11622C 7F0E16FC 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 116230 7F0E1700 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 116234 7F0E1704 00165200 */ sll $t2, $s6, 8 +/* 116238 7F0E1708 32390001 */ andi $t9, $s1, 1 +/* 11623C 7F0E170C 01574025 */ or $t0, $t2, $s7 +/* 116240 7F0E1710 270D000C */ addiu $t5, $t8, 0xc +/* 116244 7F0E1714 AFAD028C */ sw $t5, 0x28c($sp) +/* 116248 7F0E1718 A3B9005F */ sb $t9, 0x5f($sp) +/* 11624C 7F0E171C 010C7021 */ addu $t6, $t0, $t4 +/* 116250 7F0E1720 91CF0000 */ lbu $t7, ($t6) +/* 116254 7F0E1724 24010004 */ li $at, 4 +/* 116258 7F0E1728 020F5823 */ subu $t3, $s0, $t7 +/* 11625C 7F0E172C 316901FF */ andi $t1, $t3, 0x1ff +/* 116260 7F0E1730 3138FFFF */ andi $t8, $t1, 0xffff +/* 116264 7F0E1734 2F0D0001 */ sltiu $t5, $t8, 1 +/* 116268 7F0E1738 3218000F */ andi $t8, $s0, 0xf +/* 11626C 7F0E173C 31EB000F */ andi $t3, $t7, 0xf +/* 116270 7F0E1740 030BC82A */ slt $t9, $t8, $t3 +/* 116274 7F0E1744 312A00A8 */ andi $t2, $t1, 0xa8 +/* 116278 7F0E1748 00096203 */ sra $t4, $t1, 8 +/* 11627C 7F0E174C 014C7025 */ or $t6, $t2, $t4 +/* 116280 7F0E1750 00194100 */ sll $t0, $t9, 4 +/* 116284 7F0E1754 01205825 */ move $t3, $t1 +/* 116288 7F0E1758 020F6026 */ xor $t4, $s0, $t7 +/* 11628C 7F0E175C 31980080 */ andi $t8, $t4, 0x80 +/* 116290 7F0E1760 0170C826 */ xor $t9, $t3, $s0 +/* 116294 7F0E1764 01C85025 */ or $t2, $t6, $t0 +/* 116298 7F0E1768 03197024 */ and $t6, $t8, $t9 +/* 11629C 7F0E176C 000E4143 */ sra $t0, $t6, 5 +/* 1162A0 7F0E1770 A3AF005B */ sb $t7, 0x5b($sp) +/* 1162A4 7F0E1774 01487825 */ or $t7, $t2, $t0 +/* 1162A8 7F0E1778 A7A9005C */ sh $t1, 0x5c($sp) +/* 1162AC 7F0E177C 000D4980 */ sll $t1, $t5, 6 +/* 1162B0 7F0E1780 35EC0002 */ ori $t4, $t7, 2 +/* 1162B4 7F0E1784 2EF80001 */ sltiu $t8, $s7, 1 +/* 1162B8 7F0E1788 01898825 */ or $s1, $t4, $t1 +/* 1162BC 7F0E178C 26F7FFFF */ addiu $s7, $s7, -1 +/* 1162C0 7F0E1790 322B00FF */ andi $t3, $s1, 0xff +/* 1162C4 7F0E1794 AFAD0048 */ sw $t5, 0x48($sp) +/* 1162C8 7F0E1798 32F900FF */ andi $t9, $s7, 0xff +/* 1162CC 7F0E179C 01608825 */ move $s1, $t3 +/* 1162D0 7F0E17A0 0320B825 */ move $s7, $t9 +/* 1162D4 7F0E17A4 13000004 */ beqz $t8, .L7F0E17B8 +/* 1162D8 7F0E17A8 AFB80048 */ sw $t8, 0x48($sp) +/* 1162DC 7F0E17AC 26D6FFFF */ addiu $s6, $s6, -1 +/* 1162E0 7F0E17B0 32CA00FF */ andi $t2, $s6, 0xff +/* 1162E4 7F0E17B4 0140B025 */ move $s6, $t2 +.L7F0E17B8: +/* 1162E8 7F0E17B8 2E680001 */ sltiu $t0, $s3, 1 +/* 1162EC 7F0E17BC 2673FFFF */ addiu $s3, $s3, -1 +/* 1162F0 7F0E17C0 326F00FF */ andi $t7, $s3, 0xff +/* 1162F4 7F0E17C4 01E09825 */ move $s3, $t7 +/* 1162F8 7F0E17C8 11000004 */ beqz $t0, .L7F0E17DC +/* 1162FC 7F0E17CC AFA80048 */ sw $t0, 0x48($sp) +/* 116300 7F0E17D0 2652FFFF */ addiu $s2, $s2, -1 +/* 116304 7F0E17D4 324C00FF */ andi $t4, $s2, 0xff +/* 116308 7F0E17D8 01809025 */ move $s2, $t4 +.L7F0E17DC: +/* 11630C 7F0E17DC 93AB005F */ lbu $t3, 0x5f($sp) +/* 116310 7F0E17E0 0253C825 */ or $t9, $s2, $s3 +/* 116314 7F0E17E4 0019702A */ slt $t6, $zero, $t9 +/* 116318 7F0E17E8 322900FA */ andi $t1, $s1, 0xfa +/* 11631C 7F0E17EC 000E5080 */ sll $t2, $t6, 2 +/* 116320 7F0E17F0 012BC025 */ or $t8, $t1, $t3 +/* 116324 7F0E17F4 030A8825 */ or $s1, $t8, $t2 +/* 116328 7F0E17F8 322800FF */ andi $t0, $s1, 0xff +/* 11632C 7F0E17FC 310F0044 */ andi $t7, $t0, 0x44 +/* 116330 7F0E1800 15E103FE */ bne $t7, $at, .L7F0E27FC +/* 116334 7F0E1804 01008825 */ move $s1, $t0 +/* 116338 7F0E1808 97AD0298 */ lhu $t5, 0x298($sp) +/* 11633C 7F0E180C 8FA9028C */ lw $t1, 0x28c($sp) +/* 116340 7F0E1810 25ACFFFE */ addiu $t4, $t5, -2 +/* 116344 7F0E1814 252B0005 */ addiu $t3, $t1, 5 +/* 116348 7F0E1818 AFAB028C */ sw $t3, 0x28c($sp) +/* 11634C 7F0E181C 100003F7 */ b .L7F0E27FC +/* 116350 7F0E1820 A7AC0298 */ sh $t4, 0x298($sp) +spectrum_op_ED_BA: +/* 116354 7F0E1824 8FB9028C */ lw $t9, 0x28c($sp) +/* 116358 7F0E1828 02402825 */ move $a1, $s2 +/* 11635C 7F0E182C 02603025 */ move $a2, $s3 +/* 116360 7F0E1830 2724000C */ addiu $a0, $t9, 0xc +/* 116364 7F0E1834 0FC34DB6 */ jal spectrum_input_handling +/* 116368 7F0E1838 AFA4028C */ sw $a0, 0x28c($sp) +/* 11636C 7F0E183C 0016C200 */ sll $t8, $s6, 8 +/* 116370 7F0E1840 03175025 */ or $t2, $t8, $s7 +/* 116374 7F0E1844 29415B00 */ slti $at, $t2, 0x5b00 +/* 116378 7F0E1848 14200008 */ bnez $at, .L7F0E186C +/* 11637C 7F0E184C A7A20058 */ sh $v0, 0x58($sp) +/* 116380 7F0E1850 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 116384 7F0E1854 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 116388 7F0E1858 00166A00 */ sll $t5, $s6, 8 +/* 11638C 7F0E185C 01B76025 */ or $t4, $t5, $s7 +/* 116390 7F0E1860 01EC4821 */ addu $t1, $t7, $t4 +/* 116394 7F0E1864 1000002B */ b .L7F0E1914 +/* 116398 7F0E1868 A1220000 */ sb $v0, ($t1) +.L7F0E186C: +/* 11639C 7F0E186C 00165A00 */ sll $t3, $s6, 8 +/* 1163A0 7F0E1870 0177C825 */ or $t9, $t3, $s7 +/* 1163A4 7F0E1874 2B215800 */ slti $at, $t9, 0x5800 +/* 1163A8 7F0E1878 14200010 */ bnez $at, .L7F0E18BC +/* 1163AC 7F0E187C 00165200 */ sll $t2, $s6, 8 +/* 1163B0 7F0E1880 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 1163B4 7F0E1884 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 1163B8 7F0E1888 97AE0058 */ lhu $t6, 0x58($sp) +/* 1163BC 7F0E188C 00165200 */ sll $t2, $s6, 8 +/* 1163C0 7F0E1890 01576825 */ or $t5, $t2, $s7 +/* 1163C4 7F0E1894 030D7821 */ addu $t7, $t8, $t5 +/* 1163C8 7F0E1898 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 1163CC 7F0E189C A1EE0000 */ sb $t6, ($t7) +/* 1163D0 7F0E18A0 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 1163D4 7F0E18A4 00164A00 */ sll $t1, $s6, 8 +/* 1163D8 7F0E18A8 01375825 */ or $t3, $t1, $s7 +/* 1163DC 7F0E18AC 240C0001 */ li $t4, 1 +/* 1163E0 7F0E18B0 010BC821 */ addu $t9, $t0, $t3 +/* 1163E4 7F0E18B4 10000017 */ b .L7F0E1914 +/* 1163E8 7F0E18B8 A32CA800 */ sb $t4, -0x5800($t9) +.L7F0E18BC: +/* 1163EC 7F0E18BC 0157C025 */ or $t8, $t2, $s7 +/* 1163F0 7F0E18C0 2B014000 */ slti $at, $t8, 0x4000 +/* 1163F4 7F0E18C4 14200013 */ bnez $at, .L7F0E1914 +/* 1163F8 7F0E18C8 97AD0058 */ lhu $t5, 0x58($sp) +/* 1163FC 7F0E18CC 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 116400 7F0E18D0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 116404 7F0E18D4 00167A00 */ sll $t7, $s6, 8 +/* 116408 7F0E18D8 01F74825 */ or $t1, $t7, $s7 +/* 11640C 7F0E18DC 01C94021 */ addu $t0, $t6, $t1 +/* 116410 7F0E18E0 A10D0000 */ sb $t5, ($t0) +/* 116414 7F0E18E4 00166200 */ sll $t4, $s6, 8 +/* 116418 7F0E18E8 0197C825 */ or $t9, $t4, $s7 +/* 11641C 7F0E18EC 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 116420 7F0E18F0 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 116424 7F0E18F4 332A1800 */ andi $t2, $t9, 0x1800 +/* 116428 7F0E18F8 01F77025 */ or $t6, $t7, $s7 +/* 11642C 7F0E18FC 31C900FF */ andi $t1, $t6, 0xff +/* 116430 7F0E1900 000AC0C3 */ sra $t8, $t2, 3 +/* 116434 7F0E1904 03096825 */ or $t5, $t8, $t1 +/* 116438 7F0E1908 240B0001 */ li $t3, 1 +/* 11643C 7F0E190C 010D6021 */ addu $t4, $t0, $t5 +/* 116440 7F0E1910 A18B0000 */ sb $t3, ($t4) +.L7F0E1914: +/* 116444 7F0E1914 97AA0058 */ lhu $t2, 0x58($sp) +/* 116448 7F0E1918 8FB9028C */ lw $t9, 0x28c($sp) +/* 11644C 7F0E191C 2EF80001 */ sltiu $t8, $s7, 1 +/* 116450 7F0E1920 26F7FFFF */ addiu $s7, $s7, -1 +/* 116454 7F0E1924 000A7A03 */ sra $t7, $t2, 8 +/* 116458 7F0E1928 32E900FF */ andi $t1, $s7, 0xff +/* 11645C 7F0E192C 032F7021 */ addu $t6, $t9, $t7 +/* 116460 7F0E1930 AFAE028C */ sw $t6, 0x28c($sp) +/* 116464 7F0E1934 0120B825 */ move $s7, $t1 +/* 116468 7F0E1938 13000004 */ beqz $t8, .L7F0E194C +/* 11646C 7F0E193C AFB80048 */ sw $t8, 0x48($sp) +/* 116470 7F0E1940 26D6FFFF */ addiu $s6, $s6, -1 +/* 116474 7F0E1944 32CD00FF */ andi $t5, $s6, 0xff +/* 116478 7F0E1948 01A0B025 */ move $s6, $t5 +.L7F0E194C: +/* 11647C 7F0E194C 3C188009 */ lui $t8, %hi(ptr_pc_keyboard_table_alloc) +/* 116480 7F0E1950 8F18E334 */ lw $t8, %lo(ptr_pc_keyboard_table_alloc)($t8) +/* 116484 7F0E1954 2652FFFF */ addiu $s2, $s2, -1 +/* 116488 7F0E1958 324B00FF */ andi $t3, $s2, 0xff +/* 11648C 7F0E195C 01784821 */ addu $t1, $t3, $t8 +/* 116490 7F0E1960 91280000 */ lbu $t0, ($t1) +/* 116494 7F0E1964 316C00A8 */ andi $t4, $t3, 0xa8 +/* 116498 7F0E1968 000B502A */ slt $t2, $zero, $t3 +/* 11649C 7F0E196C 01609025 */ move $s2, $t3 +/* 1164A0 7F0E1970 000AC980 */ sll $t9, $t2, 6 +/* 1164A4 7F0E1974 01136826 */ xor $t5, $t0, $s3 +/* 1164A8 7F0E1978 39AB0004 */ xori $t3, $t5, 4 +/* 1164AC 7F0E197C 01997825 */ or $t7, $t4, $t9 +/* 1164B0 7F0E1980 35EE0002 */ ori $t6, $t7, 2 +/* 1164B4 7F0E1984 316A0004 */ andi $t2, $t3, 4 +/* 1164B8 7F0E1988 014E8825 */ or $s1, $t2, $t6 +/* 1164BC 7F0E198C 322C00FF */ andi $t4, $s1, 0xff +/* 1164C0 7F0E1990 1240039A */ beqz $s2, .L7F0E27FC +/* 1164C4 7F0E1994 01808825 */ move $s1, $t4 +/* 1164C8 7F0E1998 97B90298 */ lhu $t9, 0x298($sp) +/* 1164CC 7F0E199C 8FB8028C */ lw $t8, 0x28c($sp) +/* 1164D0 7F0E19A0 272FFFFE */ addiu $t7, $t9, -2 +/* 1164D4 7F0E19A4 27090005 */ addiu $t1, $t8, 5 +/* 1164D8 7F0E19A8 AFA9028C */ sw $t1, 0x28c($sp) +/* 1164DC 7F0E19AC 10000393 */ b .L7F0E27FC +/* 1164E0 7F0E19B0 A7AF0298 */ sh $t7, 0x298($sp) +spectrum_op_ED_BB: +/* 1164E4 7F0E19B4 8FA8028C */ lw $t0, 0x28c($sp) +/* 1164E8 7F0E19B8 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1164EC 7F0E19BC 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1164F0 7F0E19C0 00165A00 */ sll $t3, $s6, 8 +/* 1164F4 7F0E19C4 01775025 */ or $t2, $t3, $s7 +/* 1164F8 7F0E19C8 2504000C */ addiu $a0, $t0, 0xc +/* 1164FC 7F0E19CC AFA4028C */ sw $a0, 0x28c($sp) +/* 116500 7F0E19D0 014E6021 */ addu $t4, $t2, $t6 +/* 116504 7F0E19D4 91870000 */ lbu $a3, ($t4) +/* 116508 7F0E19D8 02402825 */ move $a1, $s2 +/* 11650C 7F0E19DC 02603025 */ move $a2, $s3 +/* 116510 7F0E19E0 0FC34DF7 */ jal sub_GAME_7F0D37DC +/* 116514 7F0E19E4 A3A70057 */ sb $a3, 0x57($sp) +/* 116518 7F0E19E8 8FAF028C */ lw $t7, 0x28c($sp) +/* 11651C 7F0E19EC 2EE80001 */ sltiu $t0, $s7, 1 +/* 116520 7F0E19F0 26F7FFFF */ addiu $s7, $s7, -1 +/* 116524 7F0E19F4 AFA20048 */ sw $v0, 0x48($sp) +/* 116528 7F0E19F8 32EB00FF */ andi $t3, $s7, 0xff +/* 11652C 7F0E19FC 01E24821 */ addu $t1, $t7, $v0 +/* 116530 7F0E1A00 AFA9028C */ sw $t1, 0x28c($sp) +/* 116534 7F0E1A04 0160B825 */ move $s7, $t3 +/* 116538 7F0E1A08 11000004 */ beqz $t0, .L7F0E1A1C +/* 11653C 7F0E1A0C AFA80048 */ sw $t0, 0x48($sp) +/* 116540 7F0E1A10 26D6FFFF */ addiu $s6, $s6, -1 +/* 116544 7F0E1A14 32CE00FF */ andi $t6, $s6, 0xff +/* 116548 7F0E1A18 01C0B025 */ move $s6, $t6 +.L7F0E1A1C: +/* 11654C 7F0E1A1C 2652FFFF */ addiu $s2, $s2, -1 +/* 116550 7F0E1A20 324C00FF */ andi $t4, $s2, 0xff +/* 116554 7F0E1A24 322D0001 */ andi $t5, $s1, 1 +/* 116558 7F0E1A28 35B90012 */ ori $t9, $t5, 0x12 +/* 11655C 7F0E1A2C 318F00A8 */ andi $t7, $t4, 0xa8 +/* 116560 7F0E1A30 2D890001 */ sltiu $t1, $t4, 1 +/* 116564 7F0E1A34 00094180 */ sll $t0, $t1, 6 +/* 116568 7F0E1A38 032FC025 */ or $t8, $t9, $t7 +/* 11656C 7F0E1A3C 03088825 */ or $s1, $t8, $t0 +/* 116570 7F0E1A40 322B00FF */ andi $t3, $s1, 0xff +/* 116574 7F0E1A44 01809025 */ move $s2, $t4 +/* 116578 7F0E1A48 1180036C */ beqz $t4, .L7F0E27FC +/* 11657C 7F0E1A4C 01608825 */ move $s1, $t3 +/* 116580 7F0E1A50 97AA0298 */ lhu $t2, 0x298($sp) +/* 116584 7F0E1A54 8FAC028C */ lw $t4, 0x28c($sp) +/* 116588 7F0E1A58 254EFFFE */ addiu $t6, $t2, -2 +/* 11658C 7F0E1A5C 258D0005 */ addiu $t5, $t4, 5 +/* 116590 7F0E1A60 AFAD028C */ sw $t5, 0x28c($sp) +/* 116594 7F0E1A64 10000365 */ b .L7F0E27FC +/* 116598 7F0E1A68 A7AE0298 */ sh $t6, 0x298($sp) +.L7F0E1A6C: +/* 11659C 7F0E1A6C 8FB9028C */ lw $t9, 0x28c($sp) +/* 1165A0 7F0E1A70 272F0004 */ addiu $t7, $t9, 4 +/* 1165A4 7F0E1A74 10000361 */ b .L7F0E27FC +/* 1165A8 7F0E1A78 AFAF028C */ sw $t7, 0x28c($sp) +spectrum_op_EE: +/* 1165AC 7F0E1A7C 8FA9028C */ lw $t1, 0x28c($sp) +/* 1165B0 7F0E1A80 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 1165B4 7F0E1A84 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 1165B8 7F0E1A88 97AB0298 */ lhu $t3, 0x298($sp) +/* 1165BC 7F0E1A8C 25380007 */ addiu $t8, $t1, 7 +/* 1165C0 7F0E1A90 AFB8028C */ sw $t8, 0x28c($sp) +/* 1165C4 7F0E1A94 010B5021 */ addu $t2, $t0, $t3 +/* 1165C8 7F0E1A98 914E0000 */ lbu $t6, ($t2) +/* 1165CC 7F0E1A9C 3C088009 */ lui $t0, %hi(ptr_pc_keyboard_table_alloc) +/* 1165D0 7F0E1AA0 8D08E334 */ lw $t0, %lo(ptr_pc_keyboard_table_alloc)($t0) +/* 1165D4 7F0E1AA4 020E8026 */ xor $s0, $s0, $t6 +/* 1165D8 7F0E1AA8 320C00FF */ andi $t4, $s0, 0xff +/* 1165DC 7F0E1AAC 2D8D0001 */ sltiu $t5, $t4, 1 +/* 1165E0 7F0E1AB0 AFAD0048 */ sw $t5, 0x48($sp) +/* 1165E4 7F0E1AB4 01885821 */ addu $t3, $t4, $t0 +/* 1165E8 7F0E1AB8 916A0000 */ lbu $t2, ($t3) +/* 1165EC 7F0E1ABC 01808025 */ move $s0, $t4 +/* 1165F0 7F0E1AC0 319900A8 */ andi $t9, $t4, 0xa8 +/* 1165F4 7F0E1AC4 97AC0298 */ lhu $t4, 0x298($sp) +/* 1165F8 7F0E1AC8 000D4980 */ sll $t1, $t5, 6 +/* 1165FC 7F0E1ACC 0329C025 */ or $t8, $t9, $t1 +/* 116600 7F0E1AD0 01588825 */ or $s1, $t2, $t8 +/* 116604 7F0E1AD4 322E00FF */ andi $t6, $s1, 0xff +/* 116608 7F0E1AD8 258D0001 */ addiu $t5, $t4, 1 +/* 11660C 7F0E1ADC 01C08825 */ move $s1, $t6 +/* 116610 7F0E1AE0 10000346 */ b .L7F0E27FC +/* 116614 7F0E1AE4 A7AD0298 */ sh $t5, 0x298($sp) +spectrum_op_EF: +/* 116618 7F0E1AE8 97A90292 */ lhu $t1, 0x292($sp) +/* 11661C 7F0E1AEC 8FAF028C */ lw $t7, 0x28c($sp) +/* 116620 7F0E1AF0 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 116624 7F0E1AF4 2528FFFE */ addiu $t0, $t1, -2 +/* 116628 7F0E1AF8 310BFFFF */ andi $t3, $t0, 0xffff +/* 11662C 7F0E1AFC 29615B00 */ slti $at, $t3, 0x5b00 +/* 116630 7F0E1B00 25F9000B */ addiu $t9, $t7, 0xb +/* 116634 7F0E1B04 AFB9028C */ sw $t9, 0x28c($sp) +/* 116638 7F0E1B08 14200006 */ bnez $at, .L7F0E1B24 +/* 11663C 7F0E1B0C A7A80292 */ sh $t0, 0x292($sp) +/* 116640 7F0E1B10 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 116644 7F0E1B14 97AA0298 */ lhu $t2, 0x298($sp) +/* 116648 7F0E1B18 030B7021 */ addu $t6, $t8, $t3 +/* 11664C 7F0E1B1C 10000023 */ b .L7F0E1BAC +/* 116650 7F0E1B20 A1CA0000 */ sb $t2, ($t6) +.L7F0E1B24: +/* 116654 7F0E1B24 97AC0292 */ lhu $t4, 0x292($sp) +/* 116658 7F0E1B28 97AA0292 */ lhu $t2, 0x292($sp) +/* 11665C 7F0E1B2C 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 116660 7F0E1B30 29815800 */ slti $at, $t4, 0x5800 +/* 116664 7F0E1B34 5420000D */ bnezl $at, .L7F0E1B6C +/* 116668 7F0E1B38 29414000 */ slti $at, $t2, 0x4000 +/* 11666C 7F0E1B3C 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 116670 7F0E1B40 97AD0298 */ lhu $t5, 0x298($sp) +/* 116674 7F0E1B44 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 116678 7F0E1B48 01ECC821 */ addu $t9, $t7, $t4 +/* 11667C 7F0E1B4C A32D0000 */ sb $t5, ($t9) +/* 116680 7F0E1B50 97B80292 */ lhu $t8, 0x292($sp) +/* 116684 7F0E1B54 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 116688 7F0E1B58 24090001 */ li $t1, 1 +/* 11668C 7F0E1B5C 01185821 */ addu $t3, $t0, $t8 +/* 116690 7F0E1B60 10000012 */ b .L7F0E1BAC +/* 116694 7F0E1B64 A169A800 */ sb $t1, -0x5800($t3) +/* 116698 7F0E1B68 29414000 */ slti $at, $t2, 0x4000 +.L7F0E1B6C: +/* 11669C 7F0E1B6C 1420000F */ bnez $at, .L7F0E1BAC +/* 1166A0 7F0E1B70 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 1166A4 7F0E1B74 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 1166A8 7F0E1B78 97AE0298 */ lhu $t6, 0x298($sp) +/* 1166AC 7F0E1B7C 240D0001 */ li $t5, 1 +/* 1166B0 7F0E1B80 01EA6021 */ addu $t4, $t7, $t2 +/* 1166B4 7F0E1B84 A18E0000 */ sb $t6, ($t4) +/* 1166B8 7F0E1B88 97B90292 */ lhu $t9, 0x292($sp) +/* 1166BC 7F0E1B8C 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 1166C0 7F0E1B90 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 1166C4 7F0E1B94 33281800 */ andi $t0, $t9, 0x1800 +/* 1166C8 7F0E1B98 0008C0C3 */ sra $t8, $t0, 3 +/* 1166CC 7F0E1B9C 332900FF */ andi $t1, $t9, 0xff +/* 1166D0 7F0E1BA0 03095825 */ or $t3, $t8, $t1 +/* 1166D4 7F0E1BA4 01EB5021 */ addu $t2, $t7, $t3 +/* 1166D8 7F0E1BA8 A14D0000 */ sb $t5, ($t2) +.L7F0E1BAC: +/* 1166DC 7F0E1BAC 97AE0292 */ lhu $t6, 0x292($sp) +/* 1166E0 7F0E1BB0 97AF0292 */ lhu $t7, 0x292($sp) +/* 1166E4 7F0E1BB4 97A80298 */ lhu $t0, 0x298($sp) +/* 1166E8 7F0E1BB8 25CC0001 */ addiu $t4, $t6, 1 +/* 1166EC 7F0E1BBC 29815B00 */ slti $at, $t4, 0x5b00 +/* 1166F0 7F0E1BC0 14200007 */ bnez $at, .L7F0E1BE0 +/* 1166F4 7F0E1BC4 25EB0001 */ addiu $t3, $t7, 1 +/* 1166F8 7F0E1BC8 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 1166FC 7F0E1BCC 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 116700 7F0E1BD0 0008CA03 */ sra $t9, $t0, 8 +/* 116704 7F0E1BD4 030E4821 */ addu $t1, $t8, $t6 +/* 116708 7F0E1BD8 10000025 */ b .L7F0E1C70 +/* 11670C 7F0E1BDC A1390001 */ sb $t9, 1($t1) +.L7F0E1BE0: +/* 116710 7F0E1BE0 29615800 */ slti $at, $t3, 0x5800 +/* 116714 7F0E1BE4 1420000E */ bnez $at, .L7F0E1C20 +/* 116718 7F0E1BE8 97AB0292 */ lhu $t3, 0x292($sp) +/* 11671C 7F0E1BEC 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 116720 7F0E1BF0 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 116724 7F0E1BF4 97AD0298 */ lhu $t5, 0x298($sp) +/* 116728 7F0E1BF8 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 11672C 7F0E1BFC 018F4021 */ addu $t0, $t4, $t7 +/* 116730 7F0E1C00 000D5203 */ sra $t2, $t5, 8 +/* 116734 7F0E1C04 A10A0001 */ sb $t2, 1($t0) +/* 116738 7F0E1C08 97B90292 */ lhu $t9, 0x292($sp) +/* 11673C 7F0E1C0C 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 116740 7F0E1C10 24180001 */ li $t8, 1 +/* 116744 7F0E1C14 01D94821 */ addu $t1, $t6, $t9 +/* 116748 7F0E1C18 10000015 */ b .L7F0E1C70 +/* 11674C 7F0E1C1C A138A801 */ sb $t8, -0x57ff($t1) +.L7F0E1C20: +/* 116750 7F0E1C20 256D0001 */ addiu $t5, $t3, 1 +/* 116754 7F0E1C24 29A14000 */ slti $at, $t5, 0x4000 +/* 116758 7F0E1C28 14200011 */ bnez $at, .L7F0E1C70 +/* 11675C 7F0E1C2C 97AC0298 */ lhu $t4, 0x298($sp) +/* 116760 7F0E1C30 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 116764 7F0E1C34 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 116768 7F0E1C38 000C7A03 */ sra $t7, $t4, 8 +/* 11676C 7F0E1C3C 240E0001 */ li $t6, 1 +/* 116770 7F0E1C40 014B4021 */ addu $t0, $t2, $t3 +/* 116774 7F0E1C44 A10F0001 */ sb $t7, 1($t0) +/* 116778 7F0E1C48 97B90292 */ lhu $t9, 0x292($sp) +/* 11677C 7F0E1C4C 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 116780 7F0E1C50 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 116784 7F0E1C54 27380001 */ addiu $t8, $t9, 1 +/* 116788 7F0E1C58 33091800 */ andi $t1, $t8, 0x1800 +/* 11678C 7F0E1C5C 000968C3 */ sra $t5, $t1, 3 +/* 116790 7F0E1C60 330C00FF */ andi $t4, $t8, 0xff +/* 116794 7F0E1C64 01AC5025 */ or $t2, $t5, $t4 +/* 116798 7F0E1C68 016A7821 */ addu $t7, $t3, $t2 +/* 11679C 7F0E1C6C A1EE0000 */ sb $t6, ($t7) +.L7F0E1C70: +/* 1167A0 7F0E1C70 24080028 */ li $t0, 40 +/* 1167A4 7F0E1C74 100002E1 */ b .L7F0E27FC +/* 1167A8 7F0E1C78 A7A80298 */ sh $t0, 0x298($sp) +spectrum_op_F0: +/* 1167AC 7F0E1C7C 8FB9028C */ lw $t9, 0x28c($sp) +/* 1167B0 7F0E1C80 32380080 */ andi $t8, $s1, 0x80 +/* 1167B4 7F0E1C84 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 1167B8 7F0E1C88 27290005 */ addiu $t1, $t9, 5 +/* 1167BC 7F0E1C8C 170002DB */ bnez $t8, .L7F0E27FC +/* 1167C0 7F0E1C90 AFA9028C */ sw $t1, 0x28c($sp) +/* 1167C4 7F0E1C94 97AB0292 */ lhu $t3, 0x292($sp) +/* 1167C8 7F0E1C98 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 1167CC 7F0E1C9C 252C0006 */ addiu $t4, $t1, 6 +/* 1167D0 7F0E1CA0 AFAC028C */ sw $t4, 0x28c($sp) +/* 1167D4 7F0E1CA4 014B4021 */ addu $t0, $t2, $t3 +/* 1167D8 7F0E1CA8 91190001 */ lbu $t9, 1($t0) +/* 1167DC 7F0E1CAC 016A7021 */ addu $t6, $t3, $t2 +/* 1167E0 7F0E1CB0 91CF0000 */ lbu $t7, ($t6) +/* 1167E4 7F0E1CB4 00194A00 */ sll $t1, $t9, 8 +/* 1167E8 7F0E1CB8 256D0002 */ addiu $t5, $t3, 2 +/* 1167EC 7F0E1CBC 01E9C025 */ or $t8, $t7, $t1 +/* 1167F0 7F0E1CC0 A7B80298 */ sh $t8, 0x298($sp) +/* 1167F4 7F0E1CC4 100002CD */ b .L7F0E27FC +/* 1167F8 7F0E1CC8 A7AD0292 */ sh $t5, 0x292($sp) +spectrum_op_F1: +/* 1167FC 7F0E1CCC 8FAC028C */ lw $t4, 0x28c($sp) +/* 116800 7F0E1CD0 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 116804 7F0E1CD4 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 116808 7F0E1CD8 97AA0292 */ lhu $t2, 0x292($sp) +/* 11680C 7F0E1CDC 258E000A */ addiu $t6, $t4, 0xa +/* 116810 7F0E1CE0 AFAE028C */ sw $t6, 0x28c($sp) +/* 116814 7F0E1CE4 0148C821 */ addu $t9, $t2, $t0 +/* 116818 7F0E1CE8 93310000 */ lbu $s1, ($t9) +/* 11681C 7F0E1CEC 93300001 */ lbu $s0, 1($t9) +/* 116820 7F0E1CF0 254F0002 */ addiu $t7, $t2, 2 +/* 116824 7F0E1CF4 100002C1 */ b .L7F0E27FC +/* 116828 7F0E1CF8 A7AF0292 */ sh $t7, 0x292($sp) +spectrum_op_F2: +/* 11682C 7F0E1CFC 8FA9028C */ lw $t1, 0x28c($sp) +/* 116830 7F0E1D00 322B0080 */ andi $t3, $s1, 0x80 +/* 116834 7F0E1D04 97AD0298 */ lhu $t5, 0x298($sp) +/* 116838 7F0E1D08 2538000A */ addiu $t8, $t1, 0xa +/* 11683C 7F0E1D0C 1560000B */ bnez $t3, .L7F0E1D3C +/* 116840 7F0E1D10 AFB8028C */ sw $t8, 0x28c($sp) +/* 116844 7F0E1D14 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 116848 7F0E1D18 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 11684C 7F0E1D1C 018DC821 */ addu $t9, $t4, $t5 +/* 116850 7F0E1D20 932A0001 */ lbu $t2, 1($t9) +/* 116854 7F0E1D24 01AC7021 */ addu $t6, $t5, $t4 +/* 116858 7F0E1D28 91C80000 */ lbu $t0, ($t6) +/* 11685C 7F0E1D2C 000A7A00 */ sll $t7, $t2, 8 +/* 116860 7F0E1D30 010F4825 */ or $t1, $t0, $t7 +/* 116864 7F0E1D34 100002B1 */ b .L7F0E27FC +/* 116868 7F0E1D38 A7A90298 */ sh $t1, 0x298($sp) +.L7F0E1D3C: +/* 11686C 7F0E1D3C 97B80298 */ lhu $t8, 0x298($sp) +/* 116870 7F0E1D40 270B0002 */ addiu $t3, $t8, 2 +/* 116874 7F0E1D44 100002AD */ b .L7F0E27FC +/* 116878 7F0E1D48 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_F3: +/* 11687C 7F0E1D4C 8FAE028C */ lw $t6, 0x28c($sp) +/* 116880 7F0E1D50 A3A0029C */ sb $zero, 0x29c($sp) +/* 116884 7F0E1D54 A3A0029D */ sb $zero, 0x29d($sp) +/* 116888 7F0E1D58 25CC0004 */ addiu $t4, $t6, 4 +/* 11688C 7F0E1D5C AFAC028C */ sw $t4, 0x28c($sp) +/* 116890 7F0E1D60 100002A6 */ b .L7F0E27FC +/* 116894 7F0E1D64 A3A00285 */ sb $zero, 0x285($sp) +spectrum_op_F4: +/* 116898 7F0E1D68 8FAD028C */ lw $t5, 0x28c($sp) +/* 11689C 7F0E1D6C 322A0080 */ andi $t2, $s1, 0x80 +/* 1168A0 7F0E1D70 25B9000A */ addiu $t9, $t5, 0xa +/* 1168A4 7F0E1D74 15400072 */ bnez $t2, .L7F0E1F40 +/* 1168A8 7F0E1D78 AFB9028C */ sw $t9, 0x28c($sp) +/* 1168AC 7F0E1D7C 97A90292 */ lhu $t1, 0x292($sp) +/* 1168B0 7F0E1D80 272F0007 */ addiu $t7, $t9, 7 +/* 1168B4 7F0E1D84 AFAF028C */ sw $t7, 0x28c($sp) +/* 1168B8 7F0E1D88 2538FFFE */ addiu $t8, $t1, -2 +/* 1168BC 7F0E1D8C 330BFFFF */ andi $t3, $t8, 0xffff +/* 1168C0 7F0E1D90 29615B00 */ slti $at, $t3, 0x5b00 +/* 1168C4 7F0E1D94 14200008 */ bnez $at, .L7F0E1DB8 +/* 1168C8 7F0E1D98 A7B80292 */ sh $t8, 0x292($sp) +/* 1168CC 7F0E1D9C 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1168D0 7F0E1DA0 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1168D4 7F0E1DA4 97AE0298 */ lhu $t6, 0x298($sp) +/* 1168D8 7F0E1DA8 01ABC821 */ addu $t9, $t5, $t3 +/* 1168DC 7F0E1DAC 25CC0002 */ addiu $t4, $t6, 2 +/* 1168E0 7F0E1DB0 10000024 */ b .L7F0E1E44 +/* 1168E4 7F0E1DB4 A32C0000 */ sb $t4, ($t9) +.L7F0E1DB8: +/* 1168E8 7F0E1DB8 97AA0292 */ lhu $t2, 0x292($sp) +/* 1168EC 7F0E1DBC 97B90292 */ lhu $t9, 0x292($sp) +/* 1168F0 7F0E1DC0 97A80298 */ lhu $t0, 0x298($sp) +/* 1168F4 7F0E1DC4 29415800 */ slti $at, $t2, 0x5800 +/* 1168F8 7F0E1DC8 1420000C */ bnez $at, .L7F0E1DFC +/* 1168FC 7F0E1DCC 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 116900 7F0E1DD0 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 116904 7F0E1DD4 250F0002 */ addiu $t7, $t0, 2 +/* 116908 7F0E1DD8 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 11690C 7F0E1DDC 012AC021 */ addu $t8, $t1, $t2 +/* 116910 7F0E1DE0 A30F0000 */ sb $t7, ($t8) +/* 116914 7F0E1DE4 97AB0292 */ lhu $t3, 0x292($sp) +/* 116918 7F0E1DE8 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 11691C 7F0E1DEC 240E0001 */ li $t6, 1 +/* 116920 7F0E1DF0 01AB6021 */ addu $t4, $t5, $t3 +/* 116924 7F0E1DF4 10000013 */ b .L7F0E1E44 +/* 116928 7F0E1DF8 A18EA800 */ sb $t6, -0x5800($t4) +.L7F0E1DFC: +/* 11692C 7F0E1DFC 2B214000 */ slti $at, $t9, 0x4000 +/* 116930 7F0E1E00 14200010 */ bnez $at, .L7F0E1E44 +/* 116934 7F0E1E04 97A80298 */ lhu $t0, 0x298($sp) +/* 116938 7F0E1E08 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 11693C 7F0E1E0C 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 116940 7F0E1E10 25090002 */ addiu $t1, $t0, 2 +/* 116944 7F0E1E14 24180001 */ li $t8, 1 +/* 116948 7F0E1E18 01597821 */ addu $t7, $t2, $t9 +/* 11694C 7F0E1E1C A1E90000 */ sb $t1, ($t7) +/* 116950 7F0E1E20 97AD0292 */ lhu $t5, 0x292($sp) +/* 116954 7F0E1E24 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 116958 7F0E1E28 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 11695C 7F0E1E2C 31AB1800 */ andi $t3, $t5, 0x1800 +/* 116960 7F0E1E30 000B70C3 */ sra $t6, $t3, 3 +/* 116964 7F0E1E34 31AC00FF */ andi $t4, $t5, 0xff +/* 116968 7F0E1E38 01CC4025 */ or $t0, $t6, $t4 +/* 11696C 7F0E1E3C 0148C821 */ addu $t9, $t2, $t0 +/* 116970 7F0E1E40 A3380000 */ sb $t8, ($t9) +.L7F0E1E44: +/* 116974 7F0E1E44 97A90292 */ lhu $t1, 0x292($sp) +/* 116978 7F0E1E48 97A80292 */ lhu $t0, 0x292($sp) +/* 11697C 7F0E1E4C 97AB0298 */ lhu $t3, 0x298($sp) +/* 116980 7F0E1E50 252F0001 */ addiu $t7, $t1, 1 +/* 116984 7F0E1E54 29E15B00 */ slti $at, $t7, 0x5b00 +/* 116988 7F0E1E58 14200008 */ bnez $at, .L7F0E1E7C +/* 11698C 7F0E1E5C 25180001 */ addiu $t8, $t0, 1 +/* 116990 7F0E1E60 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 116994 7F0E1E64 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 116998 7F0E1E68 256D0002 */ addiu $t5, $t3, 2 +/* 11699C 7F0E1E6C 000D7203 */ sra $t6, $t5, 8 +/* 1169A0 7F0E1E70 01895021 */ addu $t2, $t4, $t1 +/* 1169A4 7F0E1E74 10000027 */ b .L7F0E1F14 +/* 1169A8 7F0E1E78 A14E0001 */ sb $t6, 1($t2) +.L7F0E1E7C: +/* 1169AC 7F0E1E7C 2B015800 */ slti $at, $t8, 0x5800 +/* 1169B0 7F0E1E80 1420000F */ bnez $at, .L7F0E1EC0 +/* 1169B4 7F0E1E84 97B90292 */ lhu $t9, 0x292($sp) +/* 1169B8 7F0E1E88 97B90298 */ lhu $t9, 0x298($sp) +/* 1169BC 7F0E1E8C 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1169C0 7F0E1E90 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1169C4 7F0E1E94 272F0002 */ addiu $t7, $t9, 2 +/* 1169C8 7F0E1E98 000F5A03 */ sra $t3, $t7, 8 +/* 1169CC 7F0E1E9C 01A86021 */ addu $t4, $t5, $t0 +/* 1169D0 7F0E1EA0 A18B0001 */ sb $t3, 1($t4) +/* 1169D4 7F0E1EA4 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 1169D8 7F0E1EA8 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 1169DC 7F0E1EAC 97AA0292 */ lhu $t2, 0x292($sp) +/* 1169E0 7F0E1EB0 24090001 */ li $t1, 1 +/* 1169E4 7F0E1EB4 01CAC021 */ addu $t8, $t6, $t2 +/* 1169E8 7F0E1EB8 10000016 */ b .L7F0E1F14 +/* 1169EC 7F0E1EBC A309A801 */ sb $t1, -0x57ff($t8) +.L7F0E1EC0: +/* 1169F0 7F0E1EC0 272F0001 */ addiu $t7, $t9, 1 +/* 1169F4 7F0E1EC4 29E14000 */ slti $at, $t7, 0x4000 +/* 1169F8 7F0E1EC8 14200012 */ bnez $at, .L7F0E1F14 +/* 1169FC 7F0E1ECC 97AD0298 */ lhu $t5, 0x298($sp) +/* 116A00 7F0E1ED0 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 116A04 7F0E1ED4 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 116A08 7F0E1ED8 25A80002 */ addiu $t0, $t5, 2 +/* 116A0C 7F0E1EDC 00085A03 */ sra $t3, $t0, 8 +/* 116A10 7F0E1EE0 01997021 */ addu $t6, $t4, $t9 +/* 116A14 7F0E1EE4 A1CB0001 */ sb $t3, 1($t6) +/* 116A18 7F0E1EE8 97A90292 */ lhu $t1, 0x292($sp) +/* 116A1C 7F0E1EEC 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 116A20 7F0E1EF0 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 116A24 7F0E1EF4 25380001 */ addiu $t8, $t1, 1 +/* 116A28 7F0E1EF8 330F1800 */ andi $t7, $t8, 0x1800 +/* 116A2C 7F0E1EFC 000F68C3 */ sra $t5, $t7, 3 +/* 116A30 7F0E1F00 330800FF */ andi $t0, $t8, 0xff +/* 116A34 7F0E1F04 01A86025 */ or $t4, $t5, $t0 +/* 116A38 7F0E1F08 240A0001 */ li $t2, 1 +/* 116A3C 7F0E1F0C 032C5821 */ addu $t3, $t9, $t4 +/* 116A40 7F0E1F10 A16A0000 */ sb $t2, ($t3) +.L7F0E1F14: +/* 116A44 7F0E1F14 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 116A48 7F0E1F18 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 116A4C 7F0E1F1C 97AE0298 */ lhu $t6, 0x298($sp) +/* 116A50 7F0E1F20 012E6821 */ addu $t5, $t1, $t6 +/* 116A54 7F0E1F24 91A80001 */ lbu $t0, 1($t5) +/* 116A58 7F0E1F28 01C97821 */ addu $t7, $t6, $t1 +/* 116A5C 7F0E1F2C 91F80000 */ lbu $t8, ($t7) +/* 116A60 7F0E1F30 0008CA00 */ sll $t9, $t0, 8 +/* 116A64 7F0E1F34 03196025 */ or $t4, $t8, $t9 +/* 116A68 7F0E1F38 10000230 */ b .L7F0E27FC +/* 116A6C 7F0E1F3C A7AC0298 */ sh $t4, 0x298($sp) +.L7F0E1F40: +/* 116A70 7F0E1F40 97AA0298 */ lhu $t2, 0x298($sp) +/* 116A74 7F0E1F44 254B0002 */ addiu $t3, $t2, 2 +/* 116A78 7F0E1F48 1000022C */ b .L7F0E27FC +/* 116A7C 7F0E1F4C A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_F5: +/* 116A80 7F0E1F50 97AE0292 */ lhu $t6, 0x292($sp) +/* 116A84 7F0E1F54 8FAF028C */ lw $t7, 0x28c($sp) +/* 116A88 7F0E1F58 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 116A8C 7F0E1F5C 25CDFFFE */ addiu $t5, $t6, -2 +/* 116A90 7F0E1F60 31A8FFFF */ andi $t0, $t5, 0xffff +/* 116A94 7F0E1F64 29015B00 */ slti $at, $t0, 0x5b00 +/* 116A98 7F0E1F68 25E9000B */ addiu $t1, $t7, 0xb +/* 116A9C 7F0E1F6C AFA9028C */ sw $t1, 0x28c($sp) +/* 116AA0 7F0E1F70 14200005 */ bnez $at, .L7F0E1F88 +/* 116AA4 7F0E1F74 A7AD0292 */ sh $t5, 0x292($sp) +/* 116AA8 7F0E1F78 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 116AAC 7F0E1F7C 0308C821 */ addu $t9, $t8, $t0 +/* 116AB0 7F0E1F80 10000021 */ b .L7F0E2008 +/* 116AB4 7F0E1F84 A3310000 */ sb $s1, ($t9) +.L7F0E1F88: +/* 116AB8 7F0E1F88 97AC0292 */ lhu $t4, 0x292($sp) +/* 116ABC 7F0E1F8C 97B80292 */ lhu $t8, 0x292($sp) +/* 116AC0 7F0E1F90 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 116AC4 7F0E1F94 29815800 */ slti $at, $t4, 0x5800 +/* 116AC8 7F0E1F98 5420000C */ bnezl $at, .L7F0E1FCC +/* 116ACC 7F0E1F9C 2B014000 */ slti $at, $t8, 0x4000 +/* 116AD0 7F0E1FA0 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 116AD4 7F0E1FA4 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 116AD8 7F0E1FA8 240F0001 */ li $t7, 1 +/* 116ADC 7F0E1FAC 014C5821 */ addu $t3, $t2, $t4 +/* 116AE0 7F0E1FB0 A1710000 */ sb $s1, ($t3) +/* 116AE4 7F0E1FB4 97AE0292 */ lhu $t6, 0x292($sp) +/* 116AE8 7F0E1FB8 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 116AEC 7F0E1FBC 012E6821 */ addu $t5, $t1, $t6 +/* 116AF0 7F0E1FC0 10000011 */ b .L7F0E2008 +/* 116AF4 7F0E1FC4 A1AFA800 */ sb $t7, -0x5800($t5) +/* 116AF8 7F0E1FC8 2B014000 */ slti $at, $t8, 0x4000 +.L7F0E1FCC: +/* 116AFC 7F0E1FCC 1420000E */ bnez $at, .L7F0E2008 +/* 116B00 7F0E1FD0 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 116B04 7F0E1FD4 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 116B08 7F0E1FD8 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 116B0C 7F0E1FDC 240A0001 */ li $t2, 1 +/* 116B10 7F0E1FE0 0118C821 */ addu $t9, $t0, $t8 +/* 116B14 7F0E1FE4 A3310000 */ sb $s1, ($t9) +/* 116B18 7F0E1FE8 97AC0292 */ lhu $t4, 0x292($sp) +/* 116B1C 7F0E1FEC 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 116B20 7F0E1FF0 318B1800 */ andi $t3, $t4, 0x1800 +/* 116B24 7F0E1FF4 000B48C3 */ sra $t1, $t3, 3 +/* 116B28 7F0E1FF8 318E00FF */ andi $t6, $t4, 0xff +/* 116B2C 7F0E1FFC 012E7825 */ or $t7, $t1, $t6 +/* 116B30 7F0E2000 01AF4021 */ addu $t0, $t5, $t7 +/* 116B34 7F0E2004 A10A0000 */ sb $t2, ($t0) +.L7F0E2008: +/* 116B38 7F0E2008 97B80292 */ lhu $t8, 0x292($sp) +/* 116B3C 7F0E200C 97A90292 */ lhu $t1, 0x292($sp) +/* 116B40 7F0E2010 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 116B44 7F0E2014 27190001 */ addiu $t9, $t8, 1 +/* 116B48 7F0E2018 2B215B00 */ slti $at, $t9, 0x5b00 +/* 116B4C 7F0E201C 14200005 */ bnez $at, .L7F0E2034 +/* 116B50 7F0E2020 252E0001 */ addiu $t6, $t1, 1 +/* 116B54 7F0E2024 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 116B58 7F0E2028 01786021 */ addu $t4, $t3, $t8 +/* 116B5C 7F0E202C 100001F3 */ b .L7F0E27FC +/* 116B60 7F0E2030 A1900001 */ sb $s0, 1($t4) +.L7F0E2034: +/* 116B64 7F0E2034 29C15800 */ slti $at, $t6, 0x5800 +/* 116B68 7F0E2038 1420000C */ bnez $at, .L7F0E206C +/* 116B6C 7F0E203C 97B80292 */ lhu $t8, 0x292($sp) +/* 116B70 7F0E2040 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 116B74 7F0E2044 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 116B78 7F0E2048 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 116B7C 7F0E204C 240A0001 */ li $t2, 1 +/* 116B80 7F0E2050 01A97821 */ addu $t7, $t5, $t1 +/* 116B84 7F0E2054 A1F00001 */ sb $s0, 1($t7) +/* 116B88 7F0E2058 97B90292 */ lhu $t9, 0x292($sp) +/* 116B8C 7F0E205C 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 116B90 7F0E2060 01195821 */ addu $t3, $t0, $t9 +/* 116B94 7F0E2064 100001E5 */ b .L7F0E27FC +/* 116B98 7F0E2068 A16AA801 */ sb $t2, -0x57ff($t3) +.L7F0E206C: +/* 116B9C 7F0E206C 270C0001 */ addiu $t4, $t8, 1 +/* 116BA0 7F0E2070 29814000 */ slti $at, $t4, 0x4000 +/* 116BA4 7F0E2074 142001E1 */ bnez $at, .L7F0E27FC +/* 116BA8 7F0E2078 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 116BAC 7F0E207C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 116BB0 7F0E2080 24090001 */ li $t1, 1 +/* 116BB4 7F0E2084 01D86821 */ addu $t5, $t6, $t8 +/* 116BB8 7F0E2088 A1B00001 */ sb $s0, 1($t5) +/* 116BBC 7F0E208C 97AF0292 */ lhu $t7, 0x292($sp) +/* 116BC0 7F0E2090 3C0E8009 */ lui $t6, %hi(ptr_300alloc) +/* 116BC4 7F0E2094 8DCEE32C */ lw $t6, %lo(ptr_300alloc)($t6) +/* 116BC8 7F0E2098 25E80001 */ addiu $t0, $t7, 1 +/* 116BCC 7F0E209C 31191800 */ andi $t9, $t0, 0x1800 +/* 116BD0 7F0E20A0 001950C3 */ sra $t2, $t9, 3 +/* 116BD4 7F0E20A4 310B00FF */ andi $t3, $t0, 0xff +/* 116BD8 7F0E20A8 014B6025 */ or $t4, $t2, $t3 +/* 116BDC 7F0E20AC 01CCC021 */ addu $t8, $t6, $t4 +/* 116BE0 7F0E20B0 100001D2 */ b .L7F0E27FC +/* 116BE4 7F0E20B4 A3090000 */ sb $t1, ($t8) +spectrum_op_F6: +/* 116BE8 7F0E20B8 8FAD028C */ lw $t5, 0x28c($sp) +/* 116BEC 7F0E20BC 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 116BF0 7F0E20C0 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 116BF4 7F0E20C4 97A80298 */ lhu $t0, 0x298($sp) +/* 116BF8 7F0E20C8 25AF0007 */ addiu $t7, $t5, 7 +/* 116BFC 7F0E20CC AFAF028C */ sw $t7, 0x28c($sp) +/* 116C00 7F0E20D0 03285021 */ addu $t2, $t9, $t0 +/* 116C04 7F0E20D4 914B0000 */ lbu $t3, ($t2) +/* 116C08 7F0E20D8 3C198009 */ lui $t9, %hi(ptr_pc_keyboard_table_alloc) +/* 116C0C 7F0E20DC 8F39E334 */ lw $t9, %lo(ptr_pc_keyboard_table_alloc)($t9) +/* 116C10 7F0E20E0 020B8025 */ or $s0, $s0, $t3 +/* 116C14 7F0E20E4 320E00FF */ andi $t6, $s0, 0xff +/* 116C18 7F0E20E8 2DCC0001 */ sltiu $t4, $t6, 1 +/* 116C1C 7F0E20EC AFAC0048 */ sw $t4, 0x48($sp) +/* 116C20 7F0E20F0 01D94021 */ addu $t0, $t6, $t9 +/* 116C24 7F0E20F4 910A0000 */ lbu $t2, ($t0) +/* 116C28 7F0E20F8 01C08025 */ move $s0, $t6 +/* 116C2C 7F0E20FC 31C900A8 */ andi $t1, $t6, 0xa8 +/* 116C30 7F0E2100 97AE0298 */ lhu $t6, 0x298($sp) +/* 116C34 7F0E2104 000C6980 */ sll $t5, $t4, 6 +/* 116C38 7F0E2108 012D7825 */ or $t7, $t1, $t5 +/* 116C3C 7F0E210C 014F8825 */ or $s1, $t2, $t7 +/* 116C40 7F0E2110 322B00FF */ andi $t3, $s1, 0xff +/* 116C44 7F0E2114 25CC0001 */ addiu $t4, $t6, 1 +/* 116C48 7F0E2118 01608825 */ move $s1, $t3 +/* 116C4C 7F0E211C 100001B7 */ b .L7F0E27FC +/* 116C50 7F0E2120 A7AC0298 */ sh $t4, 0x298($sp) +spectrum_op_F7: +/* 116C54 7F0E2124 97AD0292 */ lhu $t5, 0x292($sp) +/* 116C58 7F0E2128 8FB8028C */ lw $t8, 0x28c($sp) +/* 116C5C 7F0E212C 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 116C60 7F0E2130 25B9FFFE */ addiu $t9, $t5, -2 +/* 116C64 7F0E2134 3328FFFF */ andi $t0, $t9, 0xffff +/* 116C68 7F0E2138 29015B00 */ slti $at, $t0, 0x5b00 +/* 116C6C 7F0E213C 2709000B */ addiu $t1, $t8, 0xb +/* 116C70 7F0E2140 AFA9028C */ sw $t1, 0x28c($sp) +/* 116C74 7F0E2144 14200006 */ bnez $at, .L7F0E2160 +/* 116C78 7F0E2148 A7B90292 */ sh $t9, 0x292($sp) +/* 116C7C 7F0E214C 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 116C80 7F0E2150 97AA0298 */ lhu $t2, 0x298($sp) +/* 116C84 7F0E2154 01E85821 */ addu $t3, $t7, $t0 +/* 116C88 7F0E2158 10000023 */ b .L7F0E21E8 +/* 116C8C 7F0E215C A16A0000 */ sb $t2, ($t3) +.L7F0E2160: +/* 116C90 7F0E2160 97AE0292 */ lhu $t6, 0x292($sp) +/* 116C94 7F0E2164 97AA0292 */ lhu $t2, 0x292($sp) +/* 116C98 7F0E2168 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 116C9C 7F0E216C 29C15800 */ slti $at, $t6, 0x5800 +/* 116CA0 7F0E2170 5420000D */ bnezl $at, .L7F0E21A8 +/* 116CA4 7F0E2174 29414000 */ slti $at, $t2, 0x4000 +/* 116CA8 7F0E2178 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 116CAC 7F0E217C 97AC0298 */ lhu $t4, 0x298($sp) +/* 116CB0 7F0E2180 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 116CB4 7F0E2184 030E4821 */ addu $t1, $t8, $t6 +/* 116CB8 7F0E2188 A12C0000 */ sb $t4, ($t1) +/* 116CBC 7F0E218C 97AF0292 */ lhu $t7, 0x292($sp) +/* 116CC0 7F0E2190 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 116CC4 7F0E2194 240D0001 */ li $t5, 1 +/* 116CC8 7F0E2198 032F4021 */ addu $t0, $t9, $t7 +/* 116CCC 7F0E219C 10000012 */ b .L7F0E21E8 +/* 116CD0 7F0E21A0 A10DA800 */ sb $t5, -0x5800($t0) +/* 116CD4 7F0E21A4 29414000 */ slti $at, $t2, 0x4000 +.L7F0E21A8: +/* 116CD8 7F0E21A8 1420000F */ bnez $at, .L7F0E21E8 +/* 116CDC 7F0E21AC 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 116CE0 7F0E21B0 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 116CE4 7F0E21B4 97AB0298 */ lhu $t3, 0x298($sp) +/* 116CE8 7F0E21B8 240C0001 */ li $t4, 1 +/* 116CEC 7F0E21BC 030A7021 */ addu $t6, $t8, $t2 +/* 116CF0 7F0E21C0 A1CB0000 */ sb $t3, ($t6) +/* 116CF4 7F0E21C4 97A90292 */ lhu $t1, 0x292($sp) +/* 116CF8 7F0E21C8 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 116CFC 7F0E21CC 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 116D00 7F0E21D0 31391800 */ andi $t9, $t1, 0x1800 +/* 116D04 7F0E21D4 001978C3 */ sra $t7, $t9, 3 +/* 116D08 7F0E21D8 312D00FF */ andi $t5, $t1, 0xff +/* 116D0C 7F0E21DC 01ED4025 */ or $t0, $t7, $t5 +/* 116D10 7F0E21E0 03085021 */ addu $t2, $t8, $t0 +/* 116D14 7F0E21E4 A14C0000 */ sb $t4, ($t2) +.L7F0E21E8: +/* 116D18 7F0E21E8 97AB0292 */ lhu $t3, 0x292($sp) +/* 116D1C 7F0E21EC 97B80292 */ lhu $t8, 0x292($sp) +/* 116D20 7F0E21F0 97B90298 */ lhu $t9, 0x298($sp) +/* 116D24 7F0E21F4 256E0001 */ addiu $t6, $t3, 1 +/* 116D28 7F0E21F8 29C15B00 */ slti $at, $t6, 0x5b00 +/* 116D2C 7F0E21FC 14200007 */ bnez $at, .L7F0E221C +/* 116D30 7F0E2200 27080001 */ addiu $t0, $t8, 1 +/* 116D34 7F0E2204 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 116D38 7F0E2208 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 116D3C 7F0E220C 00194A03 */ sra $t1, $t9, 8 +/* 116D40 7F0E2210 01EB6821 */ addu $t5, $t7, $t3 +/* 116D44 7F0E2214 10000025 */ b .L7F0E22AC +/* 116D48 7F0E2218 A1A90001 */ sb $t1, 1($t5) +.L7F0E221C: +/* 116D4C 7F0E221C 29015800 */ slti $at, $t0, 0x5800 +/* 116D50 7F0E2220 1420000E */ bnez $at, .L7F0E225C +/* 116D54 7F0E2224 97A80292 */ lhu $t0, 0x292($sp) +/* 116D58 7F0E2228 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 116D5C 7F0E222C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 116D60 7F0E2230 97AC0298 */ lhu $t4, 0x298($sp) +/* 116D64 7F0E2234 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 116D68 7F0E2238 01D8C821 */ addu $t9, $t6, $t8 +/* 116D6C 7F0E223C 000C5203 */ sra $t2, $t4, 8 +/* 116D70 7F0E2240 A32A0001 */ sb $t2, 1($t9) +/* 116D74 7F0E2244 97A90292 */ lhu $t1, 0x292($sp) +/* 116D78 7F0E2248 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 116D7C 7F0E224C 240F0001 */ li $t7, 1 +/* 116D80 7F0E2250 01696821 */ addu $t5, $t3, $t1 +/* 116D84 7F0E2254 10000015 */ b .L7F0E22AC +/* 116D88 7F0E2258 A1AFA801 */ sb $t7, -0x57ff($t5) +.L7F0E225C: +/* 116D8C 7F0E225C 250C0001 */ addiu $t4, $t0, 1 +/* 116D90 7F0E2260 29814000 */ slti $at, $t4, 0x4000 +/* 116D94 7F0E2264 14200011 */ bnez $at, .L7F0E22AC +/* 116D98 7F0E2268 97AE0298 */ lhu $t6, 0x298($sp) +/* 116D9C 7F0E226C 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 116DA0 7F0E2270 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 116DA4 7F0E2274 000EC203 */ sra $t8, $t6, 8 +/* 116DA8 7F0E2278 240B0001 */ li $t3, 1 +/* 116DAC 7F0E227C 0148C821 */ addu $t9, $t2, $t0 +/* 116DB0 7F0E2280 A3380001 */ sb $t8, 1($t9) +/* 116DB4 7F0E2284 97A90292 */ lhu $t1, 0x292($sp) +/* 116DB8 7F0E2288 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 116DBC 7F0E228C 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 116DC0 7F0E2290 252F0001 */ addiu $t7, $t1, 1 +/* 116DC4 7F0E2294 31ED1800 */ andi $t5, $t7, 0x1800 +/* 116DC8 7F0E2298 000D60C3 */ sra $t4, $t5, 3 +/* 116DCC 7F0E229C 31EE00FF */ andi $t6, $t7, 0xff +/* 116DD0 7F0E22A0 018E5025 */ or $t2, $t4, $t6 +/* 116DD4 7F0E22A4 010AC021 */ addu $t8, $t0, $t2 +/* 116DD8 7F0E22A8 A30B0000 */ sb $t3, ($t8) +.L7F0E22AC: +/* 116DDC 7F0E22AC 24190030 */ li $t9, 48 +/* 116DE0 7F0E22B0 10000152 */ b .L7F0E27FC +/* 116DE4 7F0E22B4 A7B90298 */ sh $t9, 0x298($sp) +spectrum_op_F8: +/* 116DE8 7F0E22B8 8FA9028C */ lw $t1, 0x28c($sp) +/* 116DEC 7F0E22BC 322F0080 */ andi $t7, $s1, 0x80 +/* 116DF0 7F0E22C0 3C0A8009 */ lui $t2, %hi(ptr_spectrum_roms) +/* 116DF4 7F0E22C4 252D0005 */ addiu $t5, $t1, 5 +/* 116DF8 7F0E22C8 11E0014C */ beqz $t7, .L7F0E27FC +/* 116DFC 7F0E22CC AFAD028C */ sw $t5, 0x28c($sp) +/* 116E00 7F0E22D0 97A80292 */ lhu $t0, 0x292($sp) +/* 116E04 7F0E22D4 8D4AE328 */ lw $t2, %lo(ptr_spectrum_roms)($t2) +/* 116E08 7F0E22D8 25AE0006 */ addiu $t6, $t5, 6 +/* 116E0C 7F0E22DC AFAE028C */ sw $t6, 0x28c($sp) +/* 116E10 7F0E22E0 0148C821 */ addu $t9, $t2, $t0 +/* 116E14 7F0E22E4 93290001 */ lbu $t1, 1($t9) +/* 116E18 7F0E22E8 010A5821 */ addu $t3, $t0, $t2 +/* 116E1C 7F0E22EC 91780000 */ lbu $t8, ($t3) +/* 116E20 7F0E22F0 00096A00 */ sll $t5, $t1, 8 +/* 116E24 7F0E22F4 250C0002 */ addiu $t4, $t0, 2 +/* 116E28 7F0E22F8 030D7825 */ or $t7, $t8, $t5 +/* 116E2C 7F0E22FC A7AF0298 */ sh $t7, 0x298($sp) +/* 116E30 7F0E2300 1000013E */ b .L7F0E27FC +/* 116E34 7F0E2304 A7AC0292 */ sh $t4, 0x292($sp) +spectrum_op_F9: +/* 116E38 7F0E2308 8FAE028C */ lw $t6, 0x28c($sp) +/* 116E3C 7F0E230C 93AA0287 */ lbu $t2, 0x287($sp) +/* 116E40 7F0E2310 93B80287 */ lbu $t8, 0x287($sp) +/* 116E44 7F0E2314 25CB0006 */ addiu $t3, $t6, 6 +/* 116E48 7F0E2318 15400005 */ bnez $t2, .L7F0E2330 +/* 116E4C 7F0E231C AFAB028C */ sw $t3, 0x28c($sp) +/* 116E50 7F0E2320 0016CA00 */ sll $t9, $s6, 8 +/* 116E54 7F0E2324 03374825 */ or $t1, $t9, $s7 +/* 116E58 7F0E2328 10000134 */ b .L7F0E27FC +/* 116E5C 7F0E232C A7A90292 */ sh $t1, 0x292($sp) +.L7F0E2330: +/* 116E60 7F0E2330 24010001 */ li $at, 1 +/* 116E64 7F0E2334 17010004 */ bne $t8, $at, .L7F0E2348 +/* 116E68 7F0E2338 97AF0294 */ lhu $t7, 0x294($sp) +/* 116E6C 7F0E233C 97AD0296 */ lhu $t5, 0x296($sp) +/* 116E70 7F0E2340 10000002 */ b .L7F0E234C +/* 116E74 7F0E2344 AFAD0048 */ sw $t5, 0x48($sp) +.L7F0E2348: +/* 116E78 7F0E2348 AFAF0048 */ sw $t7, 0x48($sp) +.L7F0E234C: +/* 116E7C 7F0E234C 8FA80048 */ lw $t0, 0x48($sp) +/* 116E80 7F0E2350 1000012A */ b .L7F0E27FC +/* 116E84 7F0E2354 A7A80292 */ sh $t0, 0x292($sp) +spectrum_op_FA: +/* 116E88 7F0E2358 8FAC028C */ lw $t4, 0x28c($sp) +/* 116E8C 7F0E235C 322B0080 */ andi $t3, $s1, 0x80 +/* 116E90 7F0E2360 97AA0298 */ lhu $t2, 0x298($sp) +/* 116E94 7F0E2364 258E000A */ addiu $t6, $t4, 0xa +/* 116E98 7F0E2368 1160000B */ beqz $t3, .L7F0E2398 +/* 116E9C 7F0E236C AFAE028C */ sw $t6, 0x28c($sp) +/* 116EA0 7F0E2370 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 116EA4 7F0E2374 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 116EA8 7F0E2378 032A6821 */ addu $t5, $t9, $t2 +/* 116EAC 7F0E237C 91AF0001 */ lbu $t7, 1($t5) +/* 116EB0 7F0E2380 01594821 */ addu $t1, $t2, $t9 +/* 116EB4 7F0E2384 91380000 */ lbu $t8, ($t1) +/* 116EB8 7F0E2388 000F4200 */ sll $t0, $t7, 8 +/* 116EBC 7F0E238C 03086025 */ or $t4, $t8, $t0 +/* 116EC0 7F0E2390 1000011A */ b .L7F0E27FC +/* 116EC4 7F0E2394 A7AC0298 */ sh $t4, 0x298($sp) +.L7F0E2398: +/* 116EC8 7F0E2398 97AE0298 */ lhu $t6, 0x298($sp) +/* 116ECC 7F0E239C 25CB0002 */ addiu $t3, $t6, 2 +/* 116ED0 7F0E23A0 10000116 */ b .L7F0E27FC +/* 116ED4 7F0E23A4 A7AB0298 */ sh $t3, 0x298($sp) +spectrum_op_FB: +/* 116ED8 7F0E23A8 8FA9028C */ lw $t1, 0x28c($sp) +/* 116EDC 7F0E23AC 240A0001 */ li $t2, 1 +/* 116EE0 7F0E23B0 240D0001 */ li $t5, 1 +/* 116EE4 7F0E23B4 25390004 */ addiu $t9, $t1, 4 +/* 116EE8 7F0E23B8 AFB9028C */ sw $t9, 0x28c($sp) +/* 116EEC 7F0E23BC A3AD029D */ sb $t5, 0x29d($sp) +/* 116EF0 7F0E23C0 A3AA029C */ sb $t2, 0x29c($sp) +/* 116EF4 7F0E23C4 1000010D */ b .L7F0E27FC +/* 116EF8 7F0E23C8 A3A00285 */ sb $zero, 0x285($sp) +spectrum_op_FC: +/* 116EFC 7F0E23CC 8FAF028C */ lw $t7, 0x28c($sp) +/* 116F00 7F0E23D0 32280080 */ andi $t0, $s1, 0x80 +/* 116F04 7F0E23D4 25F8000A */ addiu $t8, $t7, 0xa +/* 116F08 7F0E23D8 11000072 */ beqz $t0, .L7F0E25A4 +/* 116F0C 7F0E23DC AFB8028C */ sw $t8, 0x28c($sp) +/* 116F10 7F0E23E0 97AB0292 */ lhu $t3, 0x292($sp) +/* 116F14 7F0E23E4 270E0007 */ addiu $t6, $t8, 7 +/* 116F18 7F0E23E8 AFAE028C */ sw $t6, 0x28c($sp) +/* 116F1C 7F0E23EC 2569FFFE */ addiu $t1, $t3, -2 +/* 116F20 7F0E23F0 3139FFFF */ andi $t9, $t1, 0xffff +/* 116F24 7F0E23F4 2B215B00 */ slti $at, $t9, 0x5b00 +/* 116F28 7F0E23F8 14200008 */ bnez $at, .L7F0E241C +/* 116F2C 7F0E23FC A7A90292 */ sh $t1, 0x292($sp) +/* 116F30 7F0E2400 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 116F34 7F0E2404 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 116F38 7F0E2408 97AA0298 */ lhu $t2, 0x298($sp) +/* 116F3C 7F0E240C 01F9C021 */ addu $t8, $t7, $t9 +/* 116F40 7F0E2410 254D0002 */ addiu $t5, $t2, 2 +/* 116F44 7F0E2414 10000024 */ b .L7F0E24A8 +/* 116F48 7F0E2418 A30D0000 */ sb $t5, ($t8) +.L7F0E241C: +/* 116F4C 7F0E241C 97A80292 */ lhu $t0, 0x292($sp) +/* 116F50 7F0E2420 97B80292 */ lhu $t8, 0x292($sp) +/* 116F54 7F0E2424 97AC0298 */ lhu $t4, 0x298($sp) +/* 116F58 7F0E2428 29015800 */ slti $at, $t0, 0x5800 +/* 116F5C 7F0E242C 1420000C */ bnez $at, .L7F0E2460 +/* 116F60 7F0E2430 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 116F64 7F0E2434 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 116F68 7F0E2438 258E0002 */ addiu $t6, $t4, 2 +/* 116F6C 7F0E243C 3C0F8009 */ lui $t7, %hi(ptr_300alloc) +/* 116F70 7F0E2440 01684821 */ addu $t1, $t3, $t0 +/* 116F74 7F0E2444 A12E0000 */ sb $t6, ($t1) +/* 116F78 7F0E2448 97B90292 */ lhu $t9, 0x292($sp) +/* 116F7C 7F0E244C 8DEFE32C */ lw $t7, %lo(ptr_300alloc)($t7) +/* 116F80 7F0E2450 240A0001 */ li $t2, 1 +/* 116F84 7F0E2454 01F96821 */ addu $t5, $t7, $t9 +/* 116F88 7F0E2458 10000013 */ b .L7F0E24A8 +/* 116F8C 7F0E245C A1AAA800 */ sb $t2, -0x5800($t5) +.L7F0E2460: +/* 116F90 7F0E2460 2B014000 */ slti $at, $t8, 0x4000 +/* 116F94 7F0E2464 14200010 */ bnez $at, .L7F0E24A8 +/* 116F98 7F0E2468 97AC0298 */ lhu $t4, 0x298($sp) +/* 116F9C 7F0E246C 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 116FA0 7F0E2470 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 116FA4 7F0E2474 258B0002 */ addiu $t3, $t4, 2 +/* 116FA8 7F0E2478 24090001 */ li $t1, 1 +/* 116FAC 7F0E247C 01187021 */ addu $t6, $t0, $t8 +/* 116FB0 7F0E2480 A1CB0000 */ sb $t3, ($t6) +/* 116FB4 7F0E2484 97AF0292 */ lhu $t7, 0x292($sp) +/* 116FB8 7F0E2488 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 116FBC 7F0E248C 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 116FC0 7F0E2490 31F91800 */ andi $t9, $t7, 0x1800 +/* 116FC4 7F0E2494 001950C3 */ sra $t2, $t9, 3 +/* 116FC8 7F0E2498 31ED00FF */ andi $t5, $t7, 0xff +/* 116FCC 7F0E249C 014D6025 */ or $t4, $t2, $t5 +/* 116FD0 7F0E24A0 010CC021 */ addu $t8, $t0, $t4 +/* 116FD4 7F0E24A4 A3090000 */ sb $t1, ($t8) +.L7F0E24A8: +/* 116FD8 7F0E24A8 97AB0292 */ lhu $t3, 0x292($sp) +/* 116FDC 7F0E24AC 97AC0292 */ lhu $t4, 0x292($sp) +/* 116FE0 7F0E24B0 97B90298 */ lhu $t9, 0x298($sp) +/* 116FE4 7F0E24B4 256E0001 */ addiu $t6, $t3, 1 +/* 116FE8 7F0E24B8 29C15B00 */ slti $at, $t6, 0x5b00 +/* 116FEC 7F0E24BC 14200008 */ bnez $at, .L7F0E24E0 +/* 116FF0 7F0E24C0 25890001 */ addiu $t1, $t4, 1 +/* 116FF4 7F0E24C4 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 116FF8 7F0E24C8 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 116FFC 7F0E24CC 272F0002 */ addiu $t7, $t9, 2 +/* 117000 7F0E24D0 000F5203 */ sra $t2, $t7, 8 +/* 117004 7F0E24D4 01AB4021 */ addu $t0, $t5, $t3 +/* 117008 7F0E24D8 10000027 */ b .L7F0E2578 +/* 11700C 7F0E24DC A10A0001 */ sb $t2, 1($t0) +.L7F0E24E0: +/* 117010 7F0E24E0 29215800 */ slti $at, $t1, 0x5800 +/* 117014 7F0E24E4 1420000F */ bnez $at, .L7F0E2524 +/* 117018 7F0E24E8 97B80292 */ lhu $t8, 0x292($sp) +/* 11701C 7F0E24EC 97B80298 */ lhu $t8, 0x298($sp) +/* 117020 7F0E24F0 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 117024 7F0E24F4 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 117028 7F0E24F8 270E0002 */ addiu $t6, $t8, 2 +/* 11702C 7F0E24FC 000ECA03 */ sra $t9, $t6, 8 +/* 117030 7F0E2500 01EC6821 */ addu $t5, $t7, $t4 +/* 117034 7F0E2504 A1B90001 */ sb $t9, 1($t5) +/* 117038 7F0E2508 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 11703C 7F0E250C 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 117040 7F0E2510 97A80292 */ lhu $t0, 0x292($sp) +/* 117044 7F0E2514 240B0001 */ li $t3, 1 +/* 117048 7F0E2518 01484821 */ addu $t1, $t2, $t0 +/* 11704C 7F0E251C 10000016 */ b .L7F0E2578 +/* 117050 7F0E2520 A12BA801 */ sb $t3, -0x57ff($t1) +.L7F0E2524: +/* 117054 7F0E2524 270E0001 */ addiu $t6, $t8, 1 +/* 117058 7F0E2528 29C14000 */ slti $at, $t6, 0x4000 +/* 11705C 7F0E252C 14200012 */ bnez $at, .L7F0E2578 +/* 117060 7F0E2530 97AF0298 */ lhu $t7, 0x298($sp) +/* 117064 7F0E2534 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 117068 7F0E2538 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 11706C 7F0E253C 25EC0002 */ addiu $t4, $t7, 2 +/* 117070 7F0E2540 000CCA03 */ sra $t9, $t4, 8 +/* 117074 7F0E2544 01B85021 */ addu $t2, $t5, $t8 +/* 117078 7F0E2548 A1590001 */ sb $t9, 1($t2) +/* 11707C 7F0E254C 97AB0292 */ lhu $t3, 0x292($sp) +/* 117080 7F0E2550 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 117084 7F0E2554 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 117088 7F0E2558 25690001 */ addiu $t1, $t3, 1 +/* 11708C 7F0E255C 312E1800 */ andi $t6, $t1, 0x1800 +/* 117090 7F0E2560 000E78C3 */ sra $t7, $t6, 3 +/* 117094 7F0E2564 312C00FF */ andi $t4, $t1, 0xff +/* 117098 7F0E2568 01EC6825 */ or $t5, $t7, $t4 +/* 11709C 7F0E256C 24080001 */ li $t0, 1 +/* 1170A0 7F0E2570 030DC821 */ addu $t9, $t8, $t5 +/* 1170A4 7F0E2574 A3280000 */ sb $t0, ($t9) +.L7F0E2578: +/* 1170A8 7F0E2578 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1170AC 7F0E257C 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 1170B0 7F0E2580 97AA0298 */ lhu $t2, 0x298($sp) +/* 1170B4 7F0E2584 016A7821 */ addu $t7, $t3, $t2 +/* 1170B8 7F0E2588 91EC0001 */ lbu $t4, 1($t7) +/* 1170BC 7F0E258C 014B7021 */ addu $t6, $t2, $t3 +/* 1170C0 7F0E2590 91C90000 */ lbu $t1, ($t6) +/* 1170C4 7F0E2594 000CC200 */ sll $t8, $t4, 8 +/* 1170C8 7F0E2598 01386825 */ or $t5, $t1, $t8 +/* 1170CC 7F0E259C 10000097 */ b .L7F0E27FC +/* 1170D0 7F0E25A0 A7AD0298 */ sh $t5, 0x298($sp) +.L7F0E25A4: +/* 1170D4 7F0E25A4 97A80298 */ lhu $t0, 0x298($sp) +/* 1170D8 7F0E25A8 25190002 */ addiu $t9, $t0, 2 +/* 1170DC 7F0E25AC 10000093 */ b .L7F0E27FC +/* 1170E0 7F0E25B0 A7B90298 */ sh $t9, 0x298($sp) +spectrum_op_FD: +/* 1170E4 7F0E25B4 8FAE028C */ lw $t6, 0x28c($sp) +/* 1170E8 7F0E25B8 240A0002 */ li $t2, 2 +/* 1170EC 7F0E25BC A3AA0286 */ sb $t2, 0x286($sp) +/* 1170F0 7F0E25C0 25CB0004 */ addiu $t3, $t6, 4 +/* 1170F4 7F0E25C4 AFAB028C */ sw $t3, 0x28c($sp) +/* 1170F8 7F0E25C8 1000008C */ b .L7F0E27FC +/* 1170FC 7F0E25CC A3A00285 */ sb $zero, 0x285($sp) +spectrum_op_FE: +/* 117100 7F0E25D0 8FAF028C */ lw $t7, 0x28c($sp) +/* 117104 7F0E25D4 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 117108 7F0E25D8 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 11710C 7F0E25DC 97A90298 */ lhu $t1, 0x298($sp) +/* 117110 7F0E25E0 25EC0007 */ addiu $t4, $t7, 7 +/* 117114 7F0E25E4 AFAC028C */ sw $t4, 0x28c($sp) +/* 117118 7F0E25E8 01386821 */ addu $t5, $t1, $t8 +/* 11711C 7F0E25EC 91A80000 */ lbu $t0, ($t5) +/* 117120 7F0E25F0 0208C823 */ subu $t9, $s0, $t0 +/* 117124 7F0E25F4 332E01FF */ andi $t6, $t9, 0x1ff +/* 117128 7F0E25F8 31CBFFFF */ andi $t3, $t6, 0xffff +/* 11712C 7F0E25FC 2D6A0001 */ sltiu $t2, $t3, 1 +/* 117130 7F0E2600 320B000F */ andi $t3, $s0, 0xf +/* 117134 7F0E2604 3119000F */ andi $t9, $t0, 0xf +/* 117138 7F0E2608 0179782A */ slt $t7, $t3, $t9 +/* 11713C 7F0E260C 31CC00A8 */ andi $t4, $t6, 0xa8 +/* 117140 7F0E2610 000EC203 */ sra $t8, $t6, 8 +/* 117144 7F0E2614 01986825 */ or $t5, $t4, $t8 +/* 117148 7F0E2618 000F4900 */ sll $t1, $t7, 4 +/* 11714C 7F0E261C 01C0C825 */ move $t9, $t6 +/* 117150 7F0E2620 0208C026 */ xor $t8, $s0, $t0 +/* 117154 7F0E2624 330B0080 */ andi $t3, $t8, 0x80 +/* 117158 7F0E2628 03307826 */ xor $t7, $t9, $s0 +/* 11715C 7F0E262C 01A96025 */ or $t4, $t5, $t1 +/* 117160 7F0E2630 016F6824 */ and $t5, $t3, $t7 +/* 117164 7F0E2634 000D4943 */ sra $t1, $t5, 5 +/* 117168 7F0E2638 A3A80053 */ sb $t0, 0x53($sp) +/* 11716C 7F0E263C 97AB0298 */ lhu $t3, 0x298($sp) +/* 117170 7F0E2640 01894025 */ or $t0, $t4, $t1 +/* 117174 7F0E2644 A7AE0054 */ sh $t6, 0x54($sp) +/* 117178 7F0E2648 000A7180 */ sll $t6, $t2, 6 +/* 11717C 7F0E264C 35180002 */ ori $t8, $t0, 2 +/* 117180 7F0E2650 030E8825 */ or $s1, $t8, $t6 +/* 117184 7F0E2654 323900FF */ andi $t9, $s1, 0xff +/* 117188 7F0E2658 256F0001 */ addiu $t7, $t3, 1 +/* 11718C 7F0E265C 03208825 */ move $s1, $t9 +/* 117190 7F0E2660 AFAA0048 */ sw $t2, 0x48($sp) +/* 117194 7F0E2664 10000065 */ b .L7F0E27FC +/* 117198 7F0E2668 A7AF0298 */ sh $t7, 0x298($sp) +spectrum_op_FF: +/* 11719C 7F0E266C 97A90292 */ lhu $t1, 0x292($sp) +/* 1171A0 7F0E2670 8FAD028C */ lw $t5, 0x28c($sp) +/* 1171A4 7F0E2674 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1171A8 7F0E2678 2528FFFE */ addiu $t0, $t1, -2 +/* 1171AC 7F0E267C 310AFFFF */ andi $t2, $t0, 0xffff +/* 1171B0 7F0E2680 29415B00 */ slti $at, $t2, 0x5b00 +/* 1171B4 7F0E2684 25AC000B */ addiu $t4, $t5, 0xb +/* 1171B8 7F0E2688 AFAC028C */ sw $t4, 0x28c($sp) +/* 1171BC 7F0E268C 14200006 */ bnez $at, .L7F0E26A8 +/* 1171C0 7F0E2690 A7A80292 */ sh $t0, 0x292($sp) +/* 1171C4 7F0E2694 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1171C8 7F0E2698 97B80298 */ lhu $t8, 0x298($sp) +/* 1171CC 7F0E269C 01CAC821 */ addu $t9, $t6, $t2 +/* 1171D0 7F0E26A0 10000023 */ b .L7F0E2730 +/* 1171D4 7F0E26A4 A3380000 */ sb $t8, ($t9) +.L7F0E26A8: +/* 1171D8 7F0E26A8 97AB0292 */ lhu $t3, 0x292($sp) +/* 1171DC 7F0E26AC 97B80292 */ lhu $t8, 0x292($sp) +/* 1171E0 7F0E26B0 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 1171E4 7F0E26B4 29615800 */ slti $at, $t3, 0x5800 +/* 1171E8 7F0E26B8 5420000D */ bnezl $at, .L7F0E26F0 +/* 1171EC 7F0E26BC 2B014000 */ slti $at, $t8, 0x4000 +/* 1171F0 7F0E26C0 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 1171F4 7F0E26C4 97AF0298 */ lhu $t7, 0x298($sp) +/* 1171F8 7F0E26C8 3C088009 */ lui $t0, %hi(ptr_300alloc) +/* 1171FC 7F0E26CC 01AB6021 */ addu $t4, $t5, $t3 +/* 117200 7F0E26D0 A18F0000 */ sb $t7, ($t4) +/* 117204 7F0E26D4 97AE0292 */ lhu $t6, 0x292($sp) +/* 117208 7F0E26D8 8D08E32C */ lw $t0, %lo(ptr_300alloc)($t0) +/* 11720C 7F0E26DC 24090001 */ li $t1, 1 +/* 117210 7F0E26E0 010E5021 */ addu $t2, $t0, $t6 +/* 117214 7F0E26E4 10000012 */ b .L7F0E2730 +/* 117218 7F0E26E8 A149A800 */ sb $t1, -0x5800($t2) +/* 11721C 7F0E26EC 2B014000 */ slti $at, $t8, 0x4000 +.L7F0E26F0: +/* 117220 7F0E26F0 1420000F */ bnez $at, .L7F0E2730 +/* 117224 7F0E26F4 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 117228 7F0E26F8 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 11722C 7F0E26FC 97B90298 */ lhu $t9, 0x298($sp) +/* 117230 7F0E2700 240F0001 */ li $t7, 1 +/* 117234 7F0E2704 01B85821 */ addu $t3, $t5, $t8 +/* 117238 7F0E2708 A1790000 */ sb $t9, ($t3) +/* 11723C 7F0E270C 97AC0292 */ lhu $t4, 0x292($sp) +/* 117240 7F0E2710 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 117244 7F0E2714 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 117248 7F0E2718 31881800 */ andi $t0, $t4, 0x1800 +/* 11724C 7F0E271C 000870C3 */ sra $t6, $t0, 3 +/* 117250 7F0E2720 318900FF */ andi $t1, $t4, 0xff +/* 117254 7F0E2724 01C95025 */ or $t2, $t6, $t1 +/* 117258 7F0E2728 01AAC021 */ addu $t8, $t5, $t2 +/* 11725C 7F0E272C A30F0000 */ sb $t7, ($t8) +.L7F0E2730: +/* 117260 7F0E2730 97B90292 */ lhu $t9, 0x292($sp) +/* 117264 7F0E2734 97AD0292 */ lhu $t5, 0x292($sp) +/* 117268 7F0E2738 97A80298 */ lhu $t0, 0x298($sp) +/* 11726C 7F0E273C 272B0001 */ addiu $t3, $t9, 1 +/* 117270 7F0E2740 29615B00 */ slti $at, $t3, 0x5b00 +/* 117274 7F0E2744 14200007 */ bnez $at, .L7F0E2764 +/* 117278 7F0E2748 25AA0001 */ addiu $t2, $t5, 1 +/* 11727C 7F0E274C 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 117280 7F0E2750 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 117284 7F0E2754 00086203 */ sra $t4, $t0, 8 +/* 117288 7F0E2758 01D94821 */ addu $t1, $t6, $t9 +/* 11728C 7F0E275C 10000025 */ b .L7F0E27F4 +/* 117290 7F0E2760 A12C0001 */ sb $t4, 1($t1) +.L7F0E2764: +/* 117294 7F0E2764 29415800 */ slti $at, $t2, 0x5800 +/* 117298 7F0E2768 1420000E */ bnez $at, .L7F0E27A4 +/* 11729C 7F0E276C 97AA0292 */ lhu $t2, 0x292($sp) +/* 1172A0 7F0E2770 3C0B8009 */ lui $t3, %hi(ptr_spectrum_roms) +/* 1172A4 7F0E2774 8D6BE328 */ lw $t3, %lo(ptr_spectrum_roms)($t3) +/* 1172A8 7F0E2778 97AF0298 */ lhu $t7, 0x298($sp) +/* 1172AC 7F0E277C 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 1172B0 7F0E2780 016D4021 */ addu $t0, $t3, $t5 +/* 1172B4 7F0E2784 000FC203 */ sra $t8, $t7, 8 +/* 1172B8 7F0E2788 A1180001 */ sb $t8, 1($t0) +/* 1172BC 7F0E278C 97AC0292 */ lhu $t4, 0x292($sp) +/* 1172C0 7F0E2790 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 1172C4 7F0E2794 240E0001 */ li $t6, 1 +/* 1172C8 7F0E2798 032C4821 */ addu $t1, $t9, $t4 +/* 1172CC 7F0E279C 10000015 */ b .L7F0E27F4 +/* 1172D0 7F0E27A0 A12EA801 */ sb $t6, -0x57ff($t1) +.L7F0E27A4: +/* 1172D4 7F0E27A4 254F0001 */ addiu $t7, $t2, 1 +/* 1172D8 7F0E27A8 29E14000 */ slti $at, $t7, 0x4000 +/* 1172DC 7F0E27AC 14200011 */ bnez $at, .L7F0E27F4 +/* 1172E0 7F0E27B0 97AB0298 */ lhu $t3, 0x298($sp) +/* 1172E4 7F0E27B4 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 1172E8 7F0E27B8 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 1172EC 7F0E27BC 000B6A03 */ sra $t5, $t3, 8 +/* 1172F0 7F0E27C0 24190001 */ li $t9, 1 +/* 1172F4 7F0E27C4 030A4021 */ addu $t0, $t8, $t2 +/* 1172F8 7F0E27C8 A10D0001 */ sb $t5, 1($t0) +/* 1172FC 7F0E27CC 97AC0292 */ lhu $t4, 0x292($sp) +/* 117300 7F0E27D0 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 117304 7F0E27D4 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 117308 7F0E27D8 258E0001 */ addiu $t6, $t4, 1 +/* 11730C 7F0E27DC 31C91800 */ andi $t1, $t6, 0x1800 +/* 117310 7F0E27E0 000978C3 */ sra $t7, $t1, 3 +/* 117314 7F0E27E4 31CB00FF */ andi $t3, $t6, 0xff +/* 117318 7F0E27E8 01EBC025 */ or $t8, $t7, $t3 +/* 11731C 7F0E27EC 01586821 */ addu $t5, $t2, $t8 +/* 117320 7F0E27F0 A1B90000 */ sb $t9, ($t5) +.L7F0E27F4: +/* 117324 7F0E27F4 24080038 */ li $t0, 56 +/* 117328 7F0E27F8 A7A80298 */ sh $t0, 0x298($sp) +.L7F0E27FC: +/* 11732C 7F0E27FC 8FAC028C */ lw $t4, 0x28c($sp) +/* 117330 7F0E2800 8FA90280 */ lw $t1, 0x280($sp) +/* 117334 7F0E2804 0189082B */ sltu $at, $t4, $t1 +/* 117338 7F0E2808 1420C473 */ bnez $at, .L7F0D39D8 +/* 11733C 7F0E280C 00000000 */ nop +/* 117340 7F0E2810 93AE0285 */ lbu $t6, 0x285($sp) +/* 117344 7F0E2814 11C0C470 */ beqz $t6, .L7F0D39D8 +/* 117348 7F0E2818 00000000 */ nop +.L7F0E281C: +/* 11734C 7F0E281C 8FAF028C */ lw $t7, 0x28c($sp) +/* 117350 7F0E2820 8FAB0280 */ lw $t3, 0x280($sp) +/* 117354 7F0E2824 93AA0285 */ lbu $t2, 0x285($sp) +/* 117358 7F0E2828 01EB082B */ sltu $at, $t7, $t3 +/* 11735C 7F0E282C 142000F6 */ bnez $at, .L7F0E2C08 +/* 117360 7F0E2830 00000000 */ nop +/* 117364 7F0E2834 114000F4 */ beqz $t2, .L7F0E2C08 +/* 117368 7F0E2838 00000000 */ nop +/* 11736C 7F0E283C 93B9029D */ lbu $t9, 0x29d($sp) +/* 117370 7F0E2840 01EBC023 */ subu $t8, $t7, $t3 +/* 117374 7F0E2844 AFB8028C */ sw $t8, 0x28c($sp) +/* 117378 7F0E2848 132000EF */ beqz $t9, .L7F0E2C08 +/* 11737C 7F0E284C 97AD0298 */ lhu $t5, 0x298($sp) +/* 117380 7F0E2850 3C088009 */ lui $t0, %hi(ptr_spectrum_roms) +/* 117384 7F0E2854 8D08E328 */ lw $t0, %lo(ptr_spectrum_roms)($t0) +/* 117388 7F0E2858 24010076 */ li $at, 118 +/* 11738C 7F0E285C 25AE0001 */ addiu $t6, $t5, 1 +/* 117390 7F0E2860 01A86021 */ addu $t4, $t5, $t0 +/* 117394 7F0E2864 91890000 */ lbu $t1, ($t4) +/* 117398 7F0E2868 55210003 */ bnel $t1, $at, .L7F0E2878 +/* 11739C 7F0E286C 8FAA028C */ lw $t2, 0x28c($sp) +/* 1173A0 7F0E2870 A7AE0298 */ sh $t6, 0x298($sp) +/* 1173A4 7F0E2874 8FAA028C */ lw $t2, 0x28c($sp) +.L7F0E2878: +/* 1173A8 7F0E2878 93AB029B */ lbu $t3, 0x29b($sp) +/* 1173AC 7F0E287C A3A0029C */ sb $zero, 0x29c($sp) +/* 1173B0 7F0E2880 254F0005 */ addiu $t7, $t2, 5 +/* 1173B4 7F0E2884 A3A0029D */ sb $zero, 0x29d($sp) +/* 1173B8 7F0E2888 AFAF028C */ sw $t7, 0x28c($sp) +/* 1173BC 7F0E288C 1160000A */ beqz $t3, .L7F0E28B8 +/* 1173C0 7F0E2890 AFAB0048 */ sw $t3, 0x48($sp) +/* 1173C4 7F0E2894 24010001 */ li $at, 1 +/* 1173C8 7F0E2898 11610007 */ beq $t3, $at, .L7F0E28B8 +/* 1173CC 7F0E289C 24010002 */ li $at, 2 +/* 1173D0 7F0E28A0 11610005 */ beq $t3, $at, .L7F0E28B8 +/* 1173D4 7F0E28A4 24010003 */ li $at, 3 +/* 1173D8 7F0E28A8 11610068 */ beq $t3, $at, .L7F0E2A4C +/* 1173DC 7F0E28AC 8FB9028C */ lw $t9, 0x28c($sp) +/* 1173E0 7F0E28B0 100000D5 */ b .L7F0E2C08 +/* 1173E4 7F0E28B4 00000000 */ nop +.L7F0E28B8: +/* 1173E8 7F0E28B8 97A80292 */ lhu $t0, 0x292($sp) +/* 1173EC 7F0E28BC 8FB8028C */ lw $t8, 0x28c($sp) +/* 1173F0 7F0E28C0 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1173F4 7F0E28C4 250CFFFE */ addiu $t4, $t0, -2 +/* 1173F8 7F0E28C8 3189FFFF */ andi $t1, $t4, 0xffff +/* 1173FC 7F0E28CC 29215B00 */ slti $at, $t1, 0x5b00 +/* 117400 7F0E28D0 27190008 */ addiu $t9, $t8, 8 +/* 117404 7F0E28D4 AFB9028C */ sw $t9, 0x28c($sp) +/* 117408 7F0E28D8 14200006 */ bnez $at, .L7F0E28F4 +/* 11740C 7F0E28DC A7AC0292 */ sh $t4, 0x292($sp) +/* 117410 7F0E28E0 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 117414 7F0E28E4 97AD0298 */ lhu $t5, 0x298($sp) +/* 117418 7F0E28E8 01C95021 */ addu $t2, $t6, $t1 +/* 11741C 7F0E28EC 10000023 */ b .L7F0E297C +/* 117420 7F0E28F0 A14D0000 */ sb $t5, ($t2) +.L7F0E28F4: +/* 117424 7F0E28F4 97AF0292 */ lhu $t7, 0x292($sp) +/* 117428 7F0E28F8 97AD0292 */ lhu $t5, 0x292($sp) +/* 11742C 7F0E28FC 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 117430 7F0E2900 29E15800 */ slti $at, $t7, 0x5800 +/* 117434 7F0E2904 5420000D */ bnezl $at, .L7F0E293C +/* 117438 7F0E2908 29A14000 */ slti $at, $t5, 0x4000 +/* 11743C 7F0E290C 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 117440 7F0E2910 97AB0298 */ lhu $t3, 0x298($sp) +/* 117444 7F0E2914 3C0C8009 */ lui $t4, %hi(ptr_300alloc) +/* 117448 7F0E2918 030FC821 */ addu $t9, $t8, $t7 +/* 11744C 7F0E291C A32B0000 */ sb $t3, ($t9) +/* 117450 7F0E2920 97AE0292 */ lhu $t6, 0x292($sp) +/* 117454 7F0E2924 8D8CE32C */ lw $t4, %lo(ptr_300alloc)($t4) +/* 117458 7F0E2928 24080001 */ li $t0, 1 +/* 11745C 7F0E292C 018E4821 */ addu $t1, $t4, $t6 +/* 117460 7F0E2930 10000012 */ b .L7F0E297C +/* 117464 7F0E2934 A128A800 */ sb $t0, -0x5800($t1) +/* 117468 7F0E2938 29A14000 */ slti $at, $t5, 0x4000 +.L7F0E293C: +/* 11746C 7F0E293C 1420000F */ bnez $at, .L7F0E297C +/* 117470 7F0E2940 3C188009 */ lui $t8, %hi(ptr_spectrum_roms) +/* 117474 7F0E2944 8F18E328 */ lw $t8, %lo(ptr_spectrum_roms)($t8) +/* 117478 7F0E2948 97AA0298 */ lhu $t2, 0x298($sp) +/* 11747C 7F0E294C 240B0001 */ li $t3, 1 +/* 117480 7F0E2950 030D7821 */ addu $t7, $t8, $t5 +/* 117484 7F0E2954 A1EA0000 */ sb $t2, ($t7) +/* 117488 7F0E2958 97B90292 */ lhu $t9, 0x292($sp) +/* 11748C 7F0E295C 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 117490 7F0E2960 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 117494 7F0E2964 332C1800 */ andi $t4, $t9, 0x1800 +/* 117498 7F0E2968 000C70C3 */ sra $t6, $t4, 3 +/* 11749C 7F0E296C 332800FF */ andi $t0, $t9, 0xff +/* 1174A0 7F0E2970 01C84825 */ or $t1, $t6, $t0 +/* 1174A4 7F0E2974 03096821 */ addu $t5, $t8, $t1 +/* 1174A8 7F0E2978 A1AB0000 */ sb $t3, ($t5) +.L7F0E297C: +/* 1174AC 7F0E297C 97AA0292 */ lhu $t2, 0x292($sp) +/* 1174B0 7F0E2980 97B80292 */ lhu $t8, 0x292($sp) +/* 1174B4 7F0E2984 97AC0298 */ lhu $t4, 0x298($sp) +/* 1174B8 7F0E2988 254F0001 */ addiu $t7, $t2, 1 +/* 1174BC 7F0E298C 29E15B00 */ slti $at, $t7, 0x5b00 +/* 1174C0 7F0E2990 14200007 */ bnez $at, .L7F0E29B0 +/* 1174C4 7F0E2994 27090001 */ addiu $t1, $t8, 1 +/* 1174C8 7F0E2998 3C0E8009 */ lui $t6, %hi(ptr_spectrum_roms) +/* 1174CC 7F0E299C 8DCEE328 */ lw $t6, %lo(ptr_spectrum_roms)($t6) +/* 1174D0 7F0E29A0 000CCA03 */ sra $t9, $t4, 8 +/* 1174D4 7F0E29A4 01CA4021 */ addu $t0, $t6, $t2 +/* 1174D8 7F0E29A8 10000025 */ b .L7F0E2A40 +/* 1174DC 7F0E29AC A1190001 */ sb $t9, 1($t0) +.L7F0E29B0: +/* 1174E0 7F0E29B0 29215800 */ slti $at, $t1, 0x5800 +/* 1174E4 7F0E29B4 1420000E */ bnez $at, .L7F0E29F0 +/* 1174E8 7F0E29B8 97A90292 */ lhu $t1, 0x292($sp) +/* 1174EC 7F0E29BC 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 1174F0 7F0E29C0 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 1174F4 7F0E29C4 97AB0298 */ lhu $t3, 0x298($sp) +/* 1174F8 7F0E29C8 3C0A8009 */ lui $t2, %hi(ptr_300alloc) +/* 1174FC 7F0E29CC 01F86021 */ addu $t4, $t7, $t8 +/* 117500 7F0E29D0 000B6A03 */ sra $t5, $t3, 8 +/* 117504 7F0E29D4 A18D0001 */ sb $t5, 1($t4) +/* 117508 7F0E29D8 97B90292 */ lhu $t9, 0x292($sp) +/* 11750C 7F0E29DC 8D4AE32C */ lw $t2, %lo(ptr_300alloc)($t2) +/* 117510 7F0E29E0 240E0001 */ li $t6, 1 +/* 117514 7F0E29E4 01594021 */ addu $t0, $t2, $t9 +/* 117518 7F0E29E8 10000015 */ b .L7F0E2A40 +/* 11751C 7F0E29EC A10EA801 */ sb $t6, -0x57ff($t0) +.L7F0E29F0: +/* 117520 7F0E29F0 252B0001 */ addiu $t3, $t1, 1 +/* 117524 7F0E29F4 29614000 */ slti $at, $t3, 0x4000 +/* 117528 7F0E29F8 14200011 */ bnez $at, .L7F0E2A40 +/* 11752C 7F0E29FC 97AF0298 */ lhu $t7, 0x298($sp) +/* 117530 7F0E2A00 3C0D8009 */ lui $t5, %hi(ptr_spectrum_roms) +/* 117534 7F0E2A04 8DADE328 */ lw $t5, %lo(ptr_spectrum_roms)($t5) +/* 117538 7F0E2A08 000FC203 */ sra $t8, $t7, 8 +/* 11753C 7F0E2A0C 240A0001 */ li $t2, 1 +/* 117540 7F0E2A10 01A96021 */ addu $t4, $t5, $t1 +/* 117544 7F0E2A14 A1980001 */ sb $t8, 1($t4) +/* 117548 7F0E2A18 97B90292 */ lhu $t9, 0x292($sp) +/* 11754C 7F0E2A1C 3C098009 */ lui $t1, %hi(ptr_300alloc) +/* 117550 7F0E2A20 8D29E32C */ lw $t1, %lo(ptr_300alloc)($t1) +/* 117554 7F0E2A24 272E0001 */ addiu $t6, $t9, 1 +/* 117558 7F0E2A28 31C81800 */ andi $t0, $t6, 0x1800 +/* 11755C 7F0E2A2C 000858C3 */ sra $t3, $t0, 3 +/* 117560 7F0E2A30 31CF00FF */ andi $t7, $t6, 0xff +/* 117564 7F0E2A34 016F6825 */ or $t5, $t3, $t7 +/* 117568 7F0E2A38 012DC021 */ addu $t8, $t1, $t5 +/* 11756C 7F0E2A3C A30A0000 */ sb $t2, ($t8) +.L7F0E2A40: +/* 117570 7F0E2A40 240C0038 */ li $t4, 56 +/* 117574 7F0E2A44 10000070 */ b .L7F0E2C08 +/* 117578 7F0E2A48 A7AC0298 */ sh $t4, 0x298($sp) +.L7F0E2A4C: +/* 11757C 7F0E2A4C 93AE029E */ lbu $t6, 0x29e($sp) +/* 117580 7F0E2A50 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 117584 7F0E2A54 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 117588 7F0E2A58 000E5A00 */ sll $t3, $t6, 8 +/* 11758C 7F0E2A5C 2728000E */ addiu $t0, $t9, 0xe +/* 117590 7F0E2A60 356F00FF */ ori $t7, $t3, 0xff +/* 117594 7F0E2A64 97AE0292 */ lhu $t6, 0x292($sp) +/* 117598 7F0E2A68 AFA8028C */ sw $t0, 0x28c($sp) +/* 11759C 7F0E2A6C 012FC021 */ addu $t8, $t1, $t7 +/* 1175A0 7F0E2A70 930C0001 */ lbu $t4, 1($t8) +/* 1175A4 7F0E2A74 01E96821 */ addu $t5, $t7, $t1 +/* 1175A8 7F0E2A78 91AA0000 */ lbu $t2, ($t5) +/* 1175AC 7F0E2A7C 25CBFFFE */ addiu $t3, $t6, -2 +/* 1175B0 7F0E2A80 316DFFFF */ andi $t5, $t3, 0xffff +/* 1175B4 7F0E2A84 000CCA00 */ sll $t9, $t4, 8 +/* 1175B8 7F0E2A88 29A15B00 */ slti $at, $t5, 0x5b00 +/* 1175BC 7F0E2A8C 01594025 */ or $t0, $t2, $t9 +/* 1175C0 7F0E2A90 AFA8004C */ sw $t0, 0x4c($sp) +/* 1175C4 7F0E2A94 14200007 */ bnez $at, .L7F0E2AB4 +/* 1175C8 7F0E2A98 A7AB0292 */ sh $t3, 0x292($sp) +/* 1175CC 7F0E2A9C 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 1175D0 7F0E2AA0 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 1175D4 7F0E2AA4 97A90298 */ lhu $t1, 0x298($sp) +/* 1175D8 7F0E2AA8 01EDC021 */ addu $t8, $t7, $t5 +/* 1175DC 7F0E2AAC 10000023 */ b .L7F0E2B3C +/* 1175E0 7F0E2AB0 A3090000 */ sb $t1, ($t8) +.L7F0E2AB4: +/* 1175E4 7F0E2AB4 97AC0292 */ lhu $t4, 0x292($sp) +/* 1175E8 7F0E2AB8 97A90292 */ lhu $t1, 0x292($sp) +/* 1175EC 7F0E2ABC 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 1175F0 7F0E2AC0 29815800 */ slti $at, $t4, 0x5800 +/* 1175F4 7F0E2AC4 5420000D */ bnezl $at, .L7F0E2AFC +/* 1175F8 7F0E2AC8 29214000 */ slti $at, $t1, 0x4000 +/* 1175FC 7F0E2ACC 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 117600 7F0E2AD0 97AA0298 */ lhu $t2, 0x298($sp) +/* 117604 7F0E2AD4 3C0B8009 */ lui $t3, %hi(ptr_300alloc) +/* 117608 7F0E2AD8 032C4021 */ addu $t0, $t9, $t4 +/* 11760C 7F0E2ADC A10A0000 */ sb $t2, ($t0) +/* 117610 7F0E2AE0 97AF0292 */ lhu $t7, 0x292($sp) +/* 117614 7F0E2AE4 8D6BE32C */ lw $t3, %lo(ptr_300alloc)($t3) +/* 117618 7F0E2AE8 240E0001 */ li $t6, 1 +/* 11761C 7F0E2AEC 016F6821 */ addu $t5, $t3, $t7 +/* 117620 7F0E2AF0 10000012 */ b .L7F0E2B3C +/* 117624 7F0E2AF4 A1AEA800 */ sb $t6, -0x5800($t5) +/* 117628 7F0E2AF8 29214000 */ slti $at, $t1, 0x4000 +.L7F0E2AFC: +/* 11762C 7F0E2AFC 1420000F */ bnez $at, .L7F0E2B3C +/* 117630 7F0E2B00 3C198009 */ lui $t9, %hi(ptr_spectrum_roms) +/* 117634 7F0E2B04 8F39E328 */ lw $t9, %lo(ptr_spectrum_roms)($t9) +/* 117638 7F0E2B08 97B80298 */ lhu $t8, 0x298($sp) +/* 11763C 7F0E2B0C 240A0001 */ li $t2, 1 +/* 117640 7F0E2B10 03296021 */ addu $t4, $t9, $t1 +/* 117644 7F0E2B14 A1980000 */ sb $t8, ($t4) +/* 117648 7F0E2B18 97A80292 */ lhu $t0, 0x292($sp) +/* 11764C 7F0E2B1C 3C198009 */ lui $t9, %hi(ptr_300alloc) +/* 117650 7F0E2B20 8F39E32C */ lw $t9, %lo(ptr_300alloc)($t9) +/* 117654 7F0E2B24 310B1800 */ andi $t3, $t0, 0x1800 +/* 117658 7F0E2B28 000B78C3 */ sra $t7, $t3, 3 +/* 11765C 7F0E2B2C 310E00FF */ andi $t6, $t0, 0xff +/* 117660 7F0E2B30 01EE6825 */ or $t5, $t7, $t6 +/* 117664 7F0E2B34 032D4821 */ addu $t1, $t9, $t5 +/* 117668 7F0E2B38 A12A0000 */ sb $t2, ($t1) +.L7F0E2B3C: +/* 11766C 7F0E2B3C 97B80292 */ lhu $t8, 0x292($sp) +/* 117670 7F0E2B40 97B90292 */ lhu $t9, 0x292($sp) +/* 117674 7F0E2B44 97AB0298 */ lhu $t3, 0x298($sp) +/* 117678 7F0E2B48 270C0001 */ addiu $t4, $t8, 1 +/* 11767C 7F0E2B4C 29815B00 */ slti $at, $t4, 0x5b00 +/* 117680 7F0E2B50 14200007 */ bnez $at, .L7F0E2B70 +/* 117684 7F0E2B54 272D0001 */ addiu $t5, $t9, 1 +/* 117688 7F0E2B58 3C0F8009 */ lui $t7, %hi(ptr_spectrum_roms) +/* 11768C 7F0E2B5C 8DEFE328 */ lw $t7, %lo(ptr_spectrum_roms)($t7) +/* 117690 7F0E2B60 000B4203 */ sra $t0, $t3, 8 +/* 117694 7F0E2B64 01F87021 */ addu $t6, $t7, $t8 +/* 117698 7F0E2B68 10000025 */ b .L7F0E2C00 +/* 11769C 7F0E2B6C A1C80001 */ sb $t0, 1($t6) +.L7F0E2B70: +/* 1176A0 7F0E2B70 29A15800 */ slti $at, $t5, 0x5800 +/* 1176A4 7F0E2B74 1420000E */ bnez $at, .L7F0E2BB0 +/* 1176A8 7F0E2B78 97AD0292 */ lhu $t5, 0x292($sp) +/* 1176AC 7F0E2B7C 3C0C8009 */ lui $t4, %hi(ptr_spectrum_roms) +/* 1176B0 7F0E2B80 8D8CE328 */ lw $t4, %lo(ptr_spectrum_roms)($t4) +/* 1176B4 7F0E2B84 97AA0298 */ lhu $t2, 0x298($sp) +/* 1176B8 7F0E2B88 3C188009 */ lui $t8, %hi(ptr_300alloc) +/* 1176BC 7F0E2B8C 01995821 */ addu $t3, $t4, $t9 +/* 1176C0 7F0E2B90 000A4A03 */ sra $t1, $t2, 8 +/* 1176C4 7F0E2B94 A1690001 */ sb $t1, 1($t3) +/* 1176C8 7F0E2B98 97A80292 */ lhu $t0, 0x292($sp) +/* 1176CC 7F0E2B9C 8F18E32C */ lw $t8, %lo(ptr_300alloc)($t8) +/* 1176D0 7F0E2BA0 240F0001 */ li $t7, 1 +/* 1176D4 7F0E2BA4 03087021 */ addu $t6, $t8, $t0 +/* 1176D8 7F0E2BA8 10000015 */ b .L7F0E2C00 +/* 1176DC 7F0E2BAC A1CFA801 */ sb $t7, -0x57ff($t6) +.L7F0E2BB0: +/* 1176E0 7F0E2BB0 25AA0001 */ addiu $t2, $t5, 1 +/* 1176E4 7F0E2BB4 29414000 */ slti $at, $t2, 0x4000 +/* 1176E8 7F0E2BB8 14200011 */ bnez $at, .L7F0E2C00 +/* 1176EC 7F0E2BBC 97AC0298 */ lhu $t4, 0x298($sp) +/* 1176F0 7F0E2BC0 3C098009 */ lui $t1, %hi(ptr_spectrum_roms) +/* 1176F4 7F0E2BC4 8D29E328 */ lw $t1, %lo(ptr_spectrum_roms)($t1) +/* 1176F8 7F0E2BC8 000CCA03 */ sra $t9, $t4, 8 +/* 1176FC 7F0E2BCC 24180001 */ li $t8, 1 +/* 117700 7F0E2BD0 012D5821 */ addu $t3, $t1, $t5 +/* 117704 7F0E2BD4 A1790001 */ sb $t9, 1($t3) +/* 117708 7F0E2BD8 97A80292 */ lhu $t0, 0x292($sp) +/* 11770C 7F0E2BDC 3C0D8009 */ lui $t5, %hi(ptr_300alloc) +/* 117710 7F0E2BE0 8DADE32C */ lw $t5, %lo(ptr_300alloc)($t5) +/* 117714 7F0E2BE4 250F0001 */ addiu $t7, $t0, 1 +/* 117718 7F0E2BE8 31EE1800 */ andi $t6, $t7, 0x1800 +/* 11771C 7F0E2BEC 000E50C3 */ sra $t2, $t6, 3 +/* 117720 7F0E2BF0 31EC00FF */ andi $t4, $t7, 0xff +/* 117724 7F0E2BF4 014C4825 */ or $t1, $t2, $t4 +/* 117728 7F0E2BF8 01A9C821 */ addu $t9, $t5, $t1 +/* 11772C 7F0E2BFC A3380000 */ sb $t8, ($t9) +.L7F0E2C00: +/* 117730 7F0E2C00 8FAB004C */ lw $t3, 0x4c($sp) +/* 117734 7F0E2C04 A7AB0298 */ sh $t3, 0x298($sp) +.L7F0E2C08: +/* 117738 7F0E2C08 3C018009 */ lui $at, %hi(spectrum_header16_15) +/* 11773C 7F0E2C0C A030E338 */ sb $s0, %lo(spectrum_header16_15)($at) +/* 117740 7F0E2C10 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E339) +/* 117744 7F0E2C14 A031E339 */ sb $s1, %lo(byte_CODE_bss_8008E339)($at) +/* 117748 7F0E2C18 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33A) +/* 11774C 7F0E2C1C A032E33A */ sb $s2, %lo(byte_CODE_bss_8008E33A)($at) +/* 117750 7F0E2C20 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33B) +/* 117754 7F0E2C24 A033E33B */ sb $s3, %lo(byte_CODE_bss_8008E33B)($at) +/* 117758 7F0E2C28 3C018009 */ lui $at, %hi(off_CODE_bss_8008E33C) +/* 11775C 7F0E2C2C A034E33C */ sb $s4, %lo(off_CODE_bss_8008E33C)($at) +/* 117760 7F0E2C30 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33D) +/* 117764 7F0E2C34 A035E33D */ sb $s5, %lo(byte_CODE_bss_8008E33D)($at) +/* 117768 7F0E2C38 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33E) +/* 11776C 7F0E2C3C A036E33E */ sb $s6, %lo(byte_CODE_bss_8008E33E)($at) +/* 117770 7F0E2C40 93A802A6 */ lbu $t0, 0x2a6($sp) +/* 117774 7F0E2C44 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E33F) +/* 117778 7F0E2C48 A037E33F */ sb $s7, %lo(byte_CODE_bss_8008E33F)($at) +/* 11777C 7F0E2C4C 93AE02A5 */ lbu $t6, 0x2a5($sp) +/* 117780 7F0E2C50 3C018009 */ lui $at, %hi(off_CODE_bss_8008E340) +/* 117784 7F0E2C54 A028E340 */ sb $t0, %lo(off_CODE_bss_8008E340)($at) +/* 117788 7F0E2C58 93AF02A4 */ lbu $t7, 0x2a4($sp) +/* 11778C 7F0E2C5C 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E341) +/* 117790 7F0E2C60 A02EE341 */ sb $t6, %lo(byte_CODE_bss_8008E341)($at) +/* 117794 7F0E2C64 93AA02A3 */ lbu $t2, 0x2a3($sp) +/* 117798 7F0E2C68 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E342) +/* 11779C 7F0E2C6C A02FE342 */ sb $t7, %lo(byte_CODE_bss_8008E342)($at) +/* 1177A0 7F0E2C70 93AC02A2 */ lbu $t4, 0x2a2($sp) +/* 1177A4 7F0E2C74 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E343) +/* 1177A8 7F0E2C78 A02AE343 */ sb $t2, %lo(byte_CODE_bss_8008E343)($at) +/* 1177AC 7F0E2C7C 93AD02A1 */ lbu $t5, 0x2a1($sp) +/* 1177B0 7F0E2C80 3C018009 */ lui $at, %hi(off_CODE_bss_8008E344) +/* 1177B4 7F0E2C84 A02CE344 */ sb $t4, %lo(off_CODE_bss_8008E344)($at) +/* 1177B8 7F0E2C88 93A902A0 */ lbu $t1, 0x2a0($sp) +/* 1177BC 7F0E2C8C 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E345) +/* 1177C0 7F0E2C90 A02DE345 */ sb $t5, %lo(byte_CODE_bss_8008E345)($at) +/* 1177C4 7F0E2C94 93B8029F */ lbu $t8, 0x29f($sp) +/* 1177C8 7F0E2C98 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E346) +/* 1177CC 7F0E2C9C A029E346 */ sb $t1, %lo(byte_CODE_bss_8008E346)($at) +/* 1177D0 7F0E2CA0 93B9029D */ lbu $t9, 0x29d($sp) +/* 1177D4 7F0E2CA4 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E347) +/* 1177D8 7F0E2CA8 A038E347 */ sb $t8, %lo(byte_CODE_bss_8008E347)($at) +/* 1177DC 7F0E2CAC 93AB029C */ lbu $t3, 0x29c($sp) +/* 1177E0 7F0E2CB0 3C018009 */ lui $at, %hi(spec_IFF2_lower) +/* 1177E4 7F0E2CB4 A039E34A */ sb $t9, %lo(spec_IFF2_lower)($at) +/* 1177E8 7F0E2CB8 93A8029E */ lbu $t0, 0x29e($sp) +/* 1177EC 7F0E2CBC 3C018009 */ lui $at, %hi(spec_IFF2_upper) +/* 1177F0 7F0E2CC0 A02BE34B */ sb $t3, %lo(spec_IFF2_upper)($at) +/* 1177F4 7F0E2CC4 93AE02A7 */ lbu $t6, 0x2a7($sp) +/* 1177F8 7F0E2CC8 3C018009 */ lui $at, %hi(spec_I) +/* 1177FC 7F0E2CCC A028E348 */ sb $t0, %lo(spec_I)($at) +/* 117800 7F0E2CD0 93AA029B */ lbu $t2, 0x29b($sp) +/* 117804 7F0E2CD4 3C018009 */ lui $at, %hi(byte_CODE_bss_8008E349) +/* 117808 7F0E2CD8 A02EE349 */ sb $t6, %lo(byte_CODE_bss_8008E349)($at) +/* 11780C 7F0E2CDC 97AC0296 */ lhu $t4, 0x296($sp) +/* 117810 7F0E2CE0 3C018009 */ lui $at, %hi(spec_IM) +/* 117814 7F0E2CE4 A02AE34C */ sb $t2, %lo(spec_IM)($at) +/* 117818 7F0E2CE8 97AD0294 */ lhu $t5, 0x294($sp) +/* 11781C 7F0E2CEC 3C018009 */ lui $at, %hi(spec_IX) +/* 117820 7F0E2CF0 A42CE34E */ sh $t4, %lo(spec_IX)($at) +/* 117824 7F0E2CF4 97A90292 */ lhu $t1, 0x292($sp) +/* 117828 7F0E2CF8 3C018009 */ lui $at, %hi(spec_IY) +/* 11782C 7F0E2CFC 8FAF0288 */ lw $t7, 0x288($sp) +/* 117830 7F0E2D00 A42DE350 */ sh $t5, %lo(spec_IY)($at) +/* 117834 7F0E2D04 8FBF0034 */ lw $ra, 0x34($sp) +/* 117838 7F0E2D08 3C018009 */ lui $at, %hi(spec_SP) +/* 11783C 7F0E2D0C 97B80298 */ lhu $t8, 0x298($sp) +/* 117840 7F0E2D10 A429E352 */ sh $t1, %lo(spec_SP)($at) +/* 117844 7F0E2D14 3C018009 */ lui $at, %hi(spec_PC) +/* 117848 7F0E2D18 8FB70030 */ lw $s7, 0x30($sp) +/* 11784C 7F0E2D1C 8FB6002C */ lw $s6, 0x2c($sp) +/* 117850 7F0E2D20 8FB50028 */ lw $s5, 0x28($sp) +/* 117854 7F0E2D24 8FB40024 */ lw $s4, 0x24($sp) +/* 117858 7F0E2D28 8FB30020 */ lw $s3, 0x20($sp) +/* 11785C 7F0E2D2C 8FB2001C */ lw $s2, 0x1c($sp) +/* 117860 7F0E2D30 8FB10018 */ lw $s1, 0x18($sp) +/* 117864 7F0E2D34 8FB00014 */ lw $s0, 0x14($sp) +/* 117868 7F0E2D38 A3AF02A7 */ sb $t7, 0x2a7($sp) +/* 11786C 7F0E2D3C 27BD02B0 */ addiu $sp, $sp, 0x2b0 +/* 117870 7F0E2D40 03E00008 */ jr $ra +/* 117874 7F0E2D44 A438E354 */ sh $t8, %lo(spec_PC)($at) +) +#endif + diff --git a/src/game/spectrum.h b/src/game/spectrum.h new file mode 100644 index 0000000..3d3bb9d --- /dev/null +++ b/src/game/spectrum.h @@ -0,0 +1,9 @@ +#ifndef _SPECTRUM_H_ +#define _SPECTRUM_H_ +#include "ultra64.h" + +extern void init_spectrum_game(u32 game); +extern void run_spectrum_game(void); +extern void spectrum_draw_screen(u32); + +#endif diff --git a/src/game/stan.c b/src/game/stan.c new file mode 100644 index 0000000..2fb0fb2 --- /dev/null +++ b/src/game/stan.c @@ -0,0 +1,7061 @@ +#include "ultra64.h" + +// bss +//CODE.bss:8007B120 +s32 clippingfile; +//CODE.bss:8007B124 +s32 ptr_firstroom; +//CODE.bss:8007B128 +s32 dword_CODE_bss_8007B128; +//CODE.bss:8007B12C +s32 dword_CODE_bss_8007B12C; +//CODE.bss:8007B130 +s32 dword_CODE_bss_8007B130; +//CODE.bss:8007B134 +char dword_CODE_bss_8007B134; +char dword_CODE_bss_8007B135; +char dword_CODE_bss_8007B136; +char dword_CODE_bss_8007B137; +char dword_CODE_bss_8007B138[0x21C]; +//CODE.bss:8007B354 +s32 dword_CODE_bss_8007B354; +//CODE.bss:8007B358 +s32 dword_CODE_bss_8007B358[0x1a1]; +//CODE.bss:8007B9DC +s32 dword_CODE_bss_8007B9DC; +//CODE.bss:8007B9E0 +s32 dword_CODE_bss_8007B9E0; +//CODE.bss:8007B9E4 +s32 dword_CODE_bss_8007B9E4; +//CODE.bss:8007B9E8 +s32 dword_CODE_bss_8007B9E8; +//CODE.bss:8007B9EC +s32 dword_CODE_bss_8007B9EC; +//CODE.bss:8007B9F0 +f32 flt_CODE_bss_8007B9F0; +//CODE.bss:8007B9F4 +f32 flt_CODE_bss_8007B9F4; +//CODE.bss:8007B9F8 +f32 flt_CODE_bss_8007B9F8; +//CODE.bss:8007B9FC +f32 flt_CODE_bss_8007B9FC; +//CODE.bss:8007BA00 +f32 flt_CODE_bss_8007BA00; +//CODE.bss:8007BA04 +s32 dword_CODE_bss_8007BA04; +//CODE.bss:8007BA08 +s32 dword_CODE_bss_8007BA08; +//CODE.bss:8007BA0C +s32 dword_CODE_bss_8007BA0C; +//CODE.bss:8007BA10 +char dword_CODE_bss_8007BA10[0x580]; + + +// data +//D:80040F30 +s32 D_80040F30[] = {0x8D8604C5, 0x9DA40000, 0, 0}; +s32 stan_c_debug_notice_list_entry = 0; +//D:80040F44 +f32 D_80040F44 = 1.0; +//D:80040F48 +f32 D_80040F48 = 1.0; +//D:80040F4C +u8 list_of_tilesizes[] = { + 0x20,0x20,0x20,0x20, + 0x28,0x30,0x38,0x40, + 0x48,0x50,0x58,0x00 +}; +//D:80040F58 +s32 base_ptr_connection_vals = 0; +//D:80040F5C +s32 ptr_firstroom_0 = 0; +//D:80040F60 +s32 D_80040F60 = 0; +//D:80040F64 +s32 D_80040F64[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:80040FAC +s32 D_80040FAC = 0; +//D:80040FB0 +s32 stanLoaded = 0; +//D:80040FB4 +s32 stanlinelog_flag[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0 +}; +//D:800413BC +s32 D_800413BC = 0; +//D:800413C0 +f32 D_800413C0 = 0.0; +//D:800413C4 +f32 D_800413C4 = 0.0; +//D:800413C8 +s32 D_800413C8 = 1; +//D:800413CC +s32 D_800413CC = 1; +//D:800413D0 +s32 D_800413D0[] = {0, 0, 0, 0, 0, 0, 0, 0}; + + +// rodata +//D:800585A0 +const char aCDCC[] = "%c%d%c%c"; +//D:800585AC +const char aStan_c_debug[] = "stan_c_debug"; +//D:800585BC +const char aStanlinelog[] = "-stanlinelog"; + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0AEF30(f32 arg0) { + // Node 0 + return arg0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AEF30 +/* 0E3A60 7F0AEF30 E7AC0000 */ swc1 $f12, ($sp) +/* 0E3A64 7F0AEF34 03E00008 */ jr $ra +/* 0E3A68 7F0AEF38 8FA20000 */ lw $v0, ($sp) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0AEF3C(void *arg0) { + s32 sp24; + s32 temp_a1; + s32 phi_v0; + + // Node 0 + sp24 = (s32) ((D_80040FAC * 9) + &D_80040F64); + temp_a1 = (arg0->unk2 & 7); + D_80040FAC = (s32) ((D_80040FAC + 1) & 7); + if (temp_a1 == 0) + { + // Node 1 + phi_v0 = 0; + } + else + { + // Node 2 + phi_v0 = (temp_a1 + 0x30); + } + // Node 3 + sprintf(sp24, &aCDCC, ((((s32) *arg0 >> 0xf) & 1) + 0x70), (*arg0 & 0x7fff), (s32) ((((s32) arg0->unk2 >> 3) & 0x1f) + 0x61), (s32) phi_v0); + return sp24; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AEF3C +/* 0E3A6C 7F0AEF3C 3C068004 */ lui $a2, %hi(D_80040FAC) +/* 0E3A70 7F0AEF40 8CC60FAC */ lw $a2, %lo(D_80040FAC)($a2) +/* 0E3A74 7F0AEF44 3C0F8004 */ lui $t7, %hi(D_80040F64) +/* 0E3A78 7F0AEF48 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0E3A7C 7F0AEF4C 000670C0 */ sll $t6, $a2, 3 +/* 0E3A80 7F0AEF50 25EF0F64 */ addiu $t7, %lo(D_80040F64) # addiu $t7, $t7, 0xf64 +/* 0E3A84 7F0AEF54 01C67021 */ addu $t6, $t6, $a2 +/* 0E3A88 7F0AEF58 01CFC021 */ addu $t8, $t6, $t7 +/* 0E3A8C 7F0AEF5C AFBF001C */ sw $ra, 0x1c($sp) +/* 0E3A90 7F0AEF60 AFB80024 */ sw $t8, 0x24($sp) +/* 0E3A94 7F0AEF64 94820000 */ lhu $v0, ($a0) +/* 0E3A98 7F0AEF68 90830002 */ lbu $v1, 2($a0) +/* 0E3A9C 7F0AEF6C 24C60001 */ addiu $a2, $a2, 1 +/* 0E3AA0 7F0AEF70 000243C3 */ sra $t0, $v0, 0xf +/* 0E3AA4 7F0AEF74 000348C3 */ sra $t1, $v1, 3 +/* 0E3AA8 7F0AEF78 30D90007 */ andi $t9, $a2, 7 +/* 0E3AAC 7F0AEF7C 310A0001 */ andi $t2, $t0, 1 +/* 0E3AB0 7F0AEF80 312B001F */ andi $t3, $t1, 0x1f +/* 0E3AB4 7F0AEF84 3C018004 */ lui $at, %hi(D_80040FAC) +/* 0E3AB8 7F0AEF88 30650007 */ andi $a1, $v1, 7 +/* 0E3ABC 7F0AEF8C 01404025 */ move $t0, $t2 +/* 0E3AC0 7F0AEF90 01604825 */ move $t1, $t3 +/* 0E3AC4 7F0AEF94 AC390FAC */ sw $t9, %lo(D_80040FAC)($at) +/* 0E3AC8 7F0AEF98 14A00003 */ bnez $a1, .L7F0AEFA8 +/* 0E3ACC 7F0AEF9C 30477FFF */ andi $a3, $v0, 0x7fff +/* 0E3AD0 7F0AEFA0 10000002 */ b .L7F0AEFAC +/* 0E3AD4 7F0AEFA4 00001025 */ move $v0, $zero +.L7F0AEFA8: +/* 0E3AD8 7F0AEFA8 24A20030 */ addiu $v0, $a1, 0x30 +.L7F0AEFAC: +/* 0E3ADC 7F0AEFAC 3C058006 */ lui $a1, %hi(aCDCC) +/* 0E3AE0 7F0AEFB0 252C0061 */ addiu $t4, $t1, 0x61 +/* 0E3AE4 7F0AEFB4 AFAC0010 */ sw $t4, 0x10($sp) +/* 0E3AE8 7F0AEFB8 24A585A0 */ addiu $a1, %lo(aCDCC) # addiu $a1, $a1, -0x7a60 +/* 0E3AEC 7F0AEFBC 8FA40024 */ lw $a0, 0x24($sp) +/* 0E3AF0 7F0AEFC0 25060070 */ addiu $a2, $t0, 0x70 +/* 0E3AF4 7F0AEFC4 0C002B25 */ jal sprintf +/* 0E3AF8 7F0AEFC8 AFA20014 */ sw $v0, 0x14($sp) +/* 0E3AFC 7F0AEFCC 8FBF001C */ lw $ra, 0x1c($sp) +/* 0E3B00 7F0AEFD0 8FA20024 */ lw $v0, 0x24($sp) +/* 0E3B04 7F0AEFD4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0E3B08 7F0AEFD8 03E00008 */ jr $ra +/* 0E3B0C 7F0AEFDC 00000000 */ nop +) +#endif + + + + +void sub_GAME_7F0AEFE0(void) { + sub_GAME_7F0AEF3C(); +} + +u32 stanRemovedAnimationRoutine(s32 arg0) { + return 0; +} + +void stanInitDebugNoticeList(void) { + debCheckAddDebugNoticeListEntry(&stan_c_debug_notice_list_entry, &aStan_c_debug);//"stan_c_debug"); +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AF038(void) { + void *temp_v1; + s32 temp_s0; + s32 temp_a2; + void *temp_s0_2; + s32 temp_s0_4; + s16 temp_s0_3; + s32 temp_s2; + s32 temp_v1_2; + s32 temp_s0_5; + void *temp_a0; + void *phi_v1; + s32 phi_a1; + void *phi_a0; + void *phi_s3; + void *phi_s5; + s16 phi_s0; + s32 phi_s2; + s32 phi_v1_2; + s32 phi_s0_2; + void *phi_s1; + s32 phi_a2; + + // Node 0 + dword_CODE_bss_8007B9DC = 0; + dword_CODE_bss_8007B12C = 0; + dword_CODE_bss_8007B12C = 0; + dword_CODE_bss_8007B130 = 0; + phi_v1 = &dword_CODE_bss_8007B134; +loop_1: + // Node 1 + temp_v1 = (phi_v1 + 0x10); + temp_v1->unk-10 = 0; + temp_v1->unk-C = 0; + temp_v1->unk-8 = 0; + temp_v1->unk-4 = 0; + phi_v1 = temp_v1; + if (temp_v1 != &dword_CODE_bss_8007B354) + { + goto loop_1; + } + // Node 2 + if (*clippingfile->unk4 != 0) + { + // Node 3 + phi_a1 = 0xff; + phi_a0 = clippingfile->unk4; + phi_a2 = 0xff; +loop_4: + // Node 4 + temp_s0 = phi_a0->unk3; + phi_a1 = phi_a1; + if (phi_a1 != temp_s0) + { + // Node 5 + temp_a2 = (temp_s0 & 0xff); + if (temp_a2 >= dword_CODE_bss_8007B9DC) + { + // Node 6 + dword_CODE_bss_8007B9DC = (s32) (temp_a2 + 1); + } + // Node 7 + *(&dword_CODE_bss_8007B128 + (temp_a2 * 4)) = (void *) phi_a0; + temp_s0_2 = (&dword_CODE_bss_8007B358 + (temp_a2 * 0xc)); + temp_s0_2->unk4 = (u16)0x7fff; + temp_s0_2->unkA = (u16)-0x8000; + temp_s0_2->unk2 = (s16) temp_s0_2->unk4; + *temp_s0_2 = (s16) temp_s0_2->unk4; + temp_s0_2->unk8 = (s16) temp_s0_2->unkA; + temp_s0_2->unk6 = (s16) temp_s0_2->unkA; + phi_a1 = temp_a2; + phi_a2 = temp_a2; + } + // Node 8 + temp_s0_4 = (((s32) phi_a0->unk6 >> 0xc) & 0xf); + phi_s0_2 = temp_s0_4; + if (temp_s0_4 > 0) + { + // Node 9 + phi_v1_2 = 0; + phi_s1 = phi_a0; +loop_10: + // Node 10 + phi_s3 = phi_s1; + phi_s5 = (&dword_CODE_bss_8007B358 + (((phi_a2 * 4) - phi_a2) * 4)); + phi_s2 = 0; +loop_11: + // Node 11 + temp_s0_3 = phi_s3->unk8; + temp_s2 = (phi_s2 + 2); + phi_s0 = temp_s0_3; + if (temp_s0_3 < *phi_s5) + { + // Node 12 + *phi_s5 = temp_s0_3; + phi_s0 = phi_s3->unk8; + } + // Node 13 + if (phi_s5->unk6 < phi_s0) + { + // Node 14 + phi_s5->unk6 = (s16) phi_s0; + } + // Node 15 + phi_s3 = (phi_s3 + 2); + phi_s5 = (phi_s5 + 2); + phi_s2 = temp_s2; + if (temp_s2 != 6) + { + goto loop_11; + } + // Node 16 + temp_v1_2 = (phi_v1_2 + 1); + temp_s0_5 = (((s32) phi_a0->unk6 >> 0xc) & 0xf); + phi_v1_2 = temp_v1_2; + phi_s0_2 = temp_s0_5; + phi_s1 = (phi_s1 + 8); + if (temp_v1_2 < temp_s0_5) + { + goto loop_10; + } + } + // Node 17 + temp_a0 = (*(&list_of_tilesizes + phi_s0_2) + phi_a0); + phi_a0 = temp_a0; + phi_a2 = phi_a2; + if (*temp_a0 != 0) + { + goto loop_4; + } + } + // Node 18 + // Error: assert not self.is_leaf + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AF038 +/* 0E3B68 7F0AF038 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E3B6C 7F0AF03C 3C078008 */ lui $a3, %hi(dword_CODE_bss_8007B9DC) +/* 0E3B70 7F0AF040 24E7B9DC */ addiu $a3, %lo(dword_CODE_bss_8007B9DC) # addiu $a3, $a3, -0x4624 +/* 0E3B74 7F0AF044 ACE00000 */ sw $zero, ($a3) +/* 0E3B78 7F0AF048 3C018008 */ lui $at, %hi(dword_CODE_bss_8007B12C) +/* 0E3B7C 7F0AF04C AC20B128 */ sw $zero, %lo(dword_CODE_bss_8007B128)($at) +/* 0E3B80 7F0AF050 AC20B12C */ sw $zero, %lo(dword_CODE_bss_8007B12C)($at) +/* 0E3B84 7F0AF054 3C018008 */ lui $at, %hi(dword_CODE_bss_8007B130) +/* 0E3B88 7F0AF058 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007B134) +/* 0E3B8C 7F0AF05C 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007B354) +/* 0E3B90 7F0AF060 AFB5001C */ sw $s5, 0x1c($sp) +/* 0E3B94 7F0AF064 AFB40018 */ sw $s4, 0x18($sp) +/* 0E3B98 7F0AF068 AFB30014 */ sw $s3, 0x14($sp) +/* 0E3B9C 7F0AF06C AFB20010 */ sw $s2, 0x10($sp) +/* 0E3BA0 7F0AF070 AFB1000C */ sw $s1, 0xc($sp) +/* 0E3BA4 7F0AF074 AFB00008 */ sw $s0, 8($sp) +/* 0E3BA8 7F0AF078 240600FF */ li $a2, 255 +/* 0E3BAC 7F0AF07C 2442B354 */ addiu $v0, %lo(dword_CODE_bss_8007B354) # addiu $v0, $v0, -0x4cac +/* 0E3BB0 7F0AF080 2463B134 */ addiu $v1, %lo(dword_CODE_bss_8007B134) # addiu $v1, $v1, -0x4ecc +/* 0E3BB4 7F0AF084 AC20B130 */ sw $zero, %lo(dword_CODE_bss_8007B130)($at) +.L7F0AF088: +/* 0E3BB8 7F0AF088 24630010 */ addiu $v1, $v1, 0x10 +/* 0E3BBC 7F0AF08C AC60FFF0 */ sw $zero, -0x10($v1) +/* 0E3BC0 7F0AF090 AC60FFF4 */ sw $zero, -0xc($v1) +/* 0E3BC4 7F0AF094 AC60FFF8 */ sw $zero, -8($v1) +/* 0E3BC8 7F0AF098 1462FFFB */ bne $v1, $v0, .L7F0AF088 +/* 0E3BCC 7F0AF09C AC60FFFC */ sw $zero, -4($v1) +/* 0E3BD0 7F0AF0A0 3C0E8008 */ lui $t6, %hi(clippingfile) +/* 0E3BD4 7F0AF0A4 8DCEB120 */ lw $t6, %lo(clippingfile)($t6) +/* 0E3BD8 7F0AF0A8 3C0D8004 */ lui $t5, %hi(list_of_tilesizes) +/* 0E3BDC 7F0AF0AC 25AD0F4C */ addiu $t5, %lo(list_of_tilesizes) # addiu $t5, $t5, 0xf4c +/* 0E3BE0 7F0AF0B0 8DC40004 */ lw $a0, 4($t6) +/* 0E3BE4 7F0AF0B4 00C02825 */ move $a1, $a2 +/* 0E3BE8 7F0AF0B8 240C8000 */ li $t4, -32768 +/* 0E3BEC 7F0AF0BC 8C8F0000 */ lw $t7, ($a0) +/* 0E3BF0 7F0AF0C0 240B7FFF */ li $t3, 32767 +/* 0E3BF4 7F0AF0C4 240A000C */ li $t2, 12 +/* 0E3BF8 7F0AF0C8 11E00048 */ beqz $t7, .L7F0AF1EC +/* 0E3BFC 7F0AF0CC 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007B358) +/* 0E3C00 7F0AF0D0 3C088008 */ lui $t0, %hi(dword_CODE_bss_8007B128) +/* 0E3C04 7F0AF0D4 2508B128 */ addiu $t0, %lo(dword_CODE_bss_8007B128) # addiu $t0, $t0, -0x4ed8 +/* 0E3C08 7F0AF0D8 2529B358 */ addiu $t1, %lo(dword_CODE_bss_8007B358) # addiu $t1, $t1, -0x4ca8 +/* 0E3C0C 7F0AF0DC 24020006 */ li $v0, 6 +/* 0E3C10 7F0AF0E0 90900003 */ lbu $s0, 3($a0) +.L7F0AF0E4: +/* 0E3C14 7F0AF0E4 00001825 */ move $v1, $zero +/* 0E3C18 7F0AF0E8 50B00017 */ beql $a1, $s0, .L7F0AF148 +/* 0E3C1C 7F0AF0EC 84900006 */ lh $s0, 6($a0) +/* 0E3C20 7F0AF0F0 8CF80000 */ lw $t8, ($a3) +/* 0E3C24 7F0AF0F4 320600FF */ andi $a2, $s0, 0xff +/* 0E3C28 7F0AF0F8 00C02825 */ move $a1, $a2 +/* 0E3C2C 7F0AF0FC 00D8082A */ slt $at, $a2, $t8 +/* 0E3C30 7F0AF100 14200002 */ bnez $at, .L7F0AF10C +/* 0E3C34 7F0AF104 24B90001 */ addiu $t9, $a1, 1 +/* 0E3C38 7F0AF108 ACF90000 */ sw $t9, ($a3) +.L7F0AF10C: +/* 0E3C3C 7F0AF10C 00CA0019 */ multu $a2, $t2 +/* 0E3C40 7F0AF110 00067080 */ sll $t6, $a2, 2 +/* 0E3C44 7F0AF114 010E7821 */ addu $t7, $t0, $t6 +/* 0E3C48 7F0AF118 ADE40000 */ sw $a0, ($t7) +/* 0E3C4C 7F0AF11C 0000C012 */ mflo $t8 +/* 0E3C50 7F0AF120 01388021 */ addu $s0, $t1, $t8 +/* 0E3C54 7F0AF124 A60B0004 */ sh $t3, 4($s0) +/* 0E3C58 7F0AF128 86110004 */ lh $s1, 4($s0) +/* 0E3C5C 7F0AF12C A60C000A */ sh $t4, 0xa($s0) +/* 0E3C60 7F0AF130 A6110002 */ sh $s1, 2($s0) +/* 0E3C64 7F0AF134 A6110000 */ sh $s1, ($s0) +/* 0E3C68 7F0AF138 8611000A */ lh $s1, 0xa($s0) +/* 0E3C6C 7F0AF13C A6110008 */ sh $s1, 8($s0) +/* 0E3C70 7F0AF140 A6110006 */ sh $s1, 6($s0) +/* 0E3C74 7F0AF144 84900006 */ lh $s0, 6($a0) +.L7F0AF148: +/* 0E3C78 7F0AF148 00067880 */ sll $t7, $a2, 2 +/* 0E3C7C 7F0AF14C 01E67823 */ subu $t7, $t7, $a2 +/* 0E3C80 7F0AF150 0010CB03 */ sra $t9, $s0, 0xc +/* 0E3C84 7F0AF154 3330000F */ andi $s0, $t9, 0xf +/* 0E3C88 7F0AF158 1A00001E */ blez $s0, .L7F0AF1D4 +/* 0E3C8C 7F0AF15C 00808825 */ move $s1, $a0 +/* 0E3C90 7F0AF160 000F7880 */ sll $t7, $t7, 2 +/* 0E3C94 7F0AF164 012FA021 */ addu $s4, $t1, $t7 +/* 0E3C98 7F0AF168 00009025 */ move $s2, $zero +.L7F0AF16C: +/* 0E3C9C 7F0AF16C 02209825 */ move $s3, $s1 +/* 0E3CA0 7F0AF170 0280A825 */ move $s5, $s4 +.L7F0AF174: +/* 0E3CA4 7F0AF174 86700008 */ lh $s0, 8($s3) +/* 0E3CA8 7F0AF178 86B80000 */ lh $t8, ($s5) +/* 0E3CAC 7F0AF17C 26520002 */ addiu $s2, $s2, 2 +/* 0E3CB0 7F0AF180 0218082A */ slt $at, $s0, $t8 +/* 0E3CB4 7F0AF184 50200004 */ beql $at, $zero, .L7F0AF198 +/* 0E3CB8 7F0AF188 86B90006 */ lh $t9, 6($s5) +/* 0E3CBC 7F0AF18C A6B00000 */ sh $s0, ($s5) +/* 0E3CC0 7F0AF190 86700008 */ lh $s0, 8($s3) +/* 0E3CC4 7F0AF194 86B90006 */ lh $t9, 6($s5) +.L7F0AF198: +/* 0E3CC8 7F0AF198 26730002 */ addiu $s3, $s3, 2 +/* 0E3CCC 7F0AF19C 0330082A */ slt $at, $t9, $s0 +/* 0E3CD0 7F0AF1A0 10200002 */ beqz $at, .L7F0AF1AC +/* 0E3CD4 7F0AF1A4 00000000 */ nop +/* 0E3CD8 7F0AF1A8 A6B00006 */ sh $s0, 6($s5) +.L7F0AF1AC: +/* 0E3CDC 7F0AF1AC 1642FFF1 */ bne $s2, $v0, .L7F0AF174 +/* 0E3CE0 7F0AF1B0 26B50002 */ addiu $s5, $s5, 2 +/* 0E3CE4 7F0AF1B4 84900006 */ lh $s0, 6($a0) +/* 0E3CE8 7F0AF1B8 24630001 */ addiu $v1, $v1, 1 +/* 0E3CEC 7F0AF1BC 26310008 */ addiu $s1, $s1, 8 +/* 0E3CF0 7F0AF1C0 00107303 */ sra $t6, $s0, 0xc +/* 0E3CF4 7F0AF1C4 31D0000F */ andi $s0, $t6, 0xf +/* 0E3CF8 7F0AF1C8 0070082A */ slt $at, $v1, $s0 +/* 0E3CFC 7F0AF1CC 5420FFE7 */ bnezl $at, .L7F0AF16C +/* 0E3D00 7F0AF1D0 00009025 */ move $s2, $zero +.L7F0AF1D4: +/* 0E3D04 7F0AF1D4 01B0C021 */ addu $t8, $t5, $s0 +/* 0E3D08 7F0AF1D8 93190000 */ lbu $t9, ($t8) +/* 0E3D0C 7F0AF1DC 03242021 */ addu $a0, $t9, $a0 +/* 0E3D10 7F0AF1E0 8C8E0000 */ lw $t6, ($a0) +/* 0E3D14 7F0AF1E4 55C0FFBF */ bnezl $t6, .L7F0AF0E4 +/* 0E3D18 7F0AF1E8 90900003 */ lbu $s0, 3($a0) +.L7F0AF1EC: +/* 0E3D1C 7F0AF1EC 8FB00008 */ lw $s0, 8($sp) +/* 0E3D20 7F0AF1F0 8FB1000C */ lw $s1, 0xc($sp) +/* 0E3D24 7F0AF1F4 8FB20010 */ lw $s2, 0x10($sp) +/* 0E3D28 7F0AF1F8 8FB30014 */ lw $s3, 0x14($sp) +/* 0E3D2C 7F0AF1FC 8FB40018 */ lw $s4, 0x18($sp) +/* 0E3D30 7F0AF200 8FB5001C */ lw $s5, 0x1c($sp) +/* 0E3D34 7F0AF204 03E00008 */ jr $ra +/* 0E3D38 7F0AF208 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AF20C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800585CC +.word 0x46fffe00 /*32767.0*/ +glabel D_800585D0 +.word 0xff7fffff /*-3.4028235e38*/ +glabel D_800585D4 +.word 0xc6fffe00 /*-32767.0*/ +.text +glabel sub_GAME_7F0AF20C +/* 0E3D3C 7F0AF20C 27BDFF38 */ addiu $sp, $sp, -0xc8 +/* 0E3D40 7F0AF210 3C018006 */ lui $at, %hi(D_800585CC) +/* 0E3D44 7F0AF214 C42285CC */ lwc1 $f2, %lo(D_800585CC)($at) +/* 0E3D48 7F0AF218 F7B80030 */ sdc1 $f24, 0x30($sp) +/* 0E3D4C 7F0AF21C 3C018006 */ lui $at, %hi(D_800585D0) +/* 0E3D50 7F0AF220 C43885D0 */ lwc1 $f24, %lo(D_800585D0)($at) +/* 0E3D54 7F0AF224 AFBF005C */ sw $ra, 0x5c($sp) +/* 0E3D58 7F0AF228 AFBE0058 */ sw $fp, 0x58($sp) +/* 0E3D5C 7F0AF22C AFB70054 */ sw $s7, 0x54($sp) +/* 0E3D60 7F0AF230 AFB60050 */ sw $s6, 0x50($sp) +/* 0E3D64 7F0AF234 AFB5004C */ sw $s5, 0x4c($sp) +/* 0E3D68 7F0AF238 AFB40048 */ sw $s4, 0x48($sp) +/* 0E3D6C 7F0AF23C AFB30044 */ sw $s3, 0x44($sp) +/* 0E3D70 7F0AF240 AFB20040 */ sw $s2, 0x40($sp) +/* 0E3D74 7F0AF244 AFB1003C */ sw $s1, 0x3c($sp) +/* 0E3D78 7F0AF248 AFB00038 */ sw $s0, 0x38($sp) +/* 0E3D7C 7F0AF24C F7B60028 */ sdc1 $f22, 0x28($sp) +/* 0E3D80 7F0AF250 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 0E3D84 7F0AF254 AFA500CC */ sw $a1, 0xcc($sp) +/* 0E3D88 7F0AF258 AFA600D0 */ sw $a2, 0xd0($sp) +/* 0E3D8C 7F0AF25C AFA0009C */ sw $zero, 0x9c($sp) +/* 0E3D90 7F0AF260 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E3D94 7F0AF264 C4200F44 */ lwc1 $f0, %lo(D_80040F44)($at) +/* 0E3D98 7F0AF268 C4840000 */ lwc1 $f4, ($a0) +/* 0E3D9C 7F0AF26C 0080A025 */ move $s4, $a0 +/* 0E3DA0 7F0AF270 3C178004 */ lui $s7, %hi(list_of_tilesizes) +/* 0E3DA4 7F0AF274 46002182 */ mul.s $f6, $f4, $f0 +/* 0E3DA8 7F0AF278 3C0A8008 */ lui $t2, %hi(dword_CODE_bss_8007B128) +/* 0E3DAC 7F0AF27C 3C018006 */ lui $at, %hi(D_800585D4) +/* 0E3DB0 7F0AF280 254AB128 */ addiu $t2, %lo(dword_CODE_bss_8007B128) # addiu $t2, $t2, -0x4ed8 +/* 0E3DB4 7F0AF284 26F70F4C */ addiu $s7, %lo(list_of_tilesizes) # addiu $s7, $s7, 0xf4c +/* 0E3DB8 7F0AF288 24130003 */ li $s3, 3 +/* 0E3DBC 7F0AF28C 241600FF */ li $s6, 255 +/* 0E3DC0 7F0AF290 E7A600B8 */ swc1 $f6, 0xb8($sp) +/* 0E3DC4 7F0AF294 C4880004 */ lwc1 $f8, 4($a0) +/* 0E3DC8 7F0AF298 27BE007C */ addiu $fp, $sp, 0x7c +/* 0E3DCC 7F0AF29C 46004282 */ mul.s $f10, $f8, $f0 +/* 0E3DD0 7F0AF2A0 E7AA00BC */ swc1 $f10, 0xbc($sp) +/* 0E3DD4 7F0AF2A4 C4900008 */ lwc1 $f16, 8($a0) +/* 0E3DD8 7F0AF2A8 C7A400BC */ lwc1 $f4, 0xbc($sp) +/* 0E3DDC 7F0AF2AC 24040004 */ li $a0, 4 +/* 0E3DE0 7F0AF2B0 46008482 */ mul.s $f18, $f16, $f0 +/* 0E3DE4 7F0AF2B4 4604103C */ c.lt.s $f2, $f4 +/* 0E3DE8 7F0AF2B8 00000000 */ nop +/* 0E3DEC 7F0AF2BC 45000002 */ bc1f .L7F0AF2C8 +/* 0E3DF0 7F0AF2C0 E7B200C0 */ swc1 $f18, 0xc0($sp) +/* 0E3DF4 7F0AF2C4 E7A200BC */ swc1 $f2, 0xbc($sp) +.L7F0AF2C8: +/* 0E3DF8 7F0AF2C8 C42085D4 */ lwc1 $f0, %lo(D_800585D4)($at) +/* 0E3DFC 7F0AF2CC C7AC00BC */ lwc1 $f12, 0xbc($sp) +/* 0E3E00 7F0AF2D0 C7A200C0 */ lwc1 $f2, 0xc0($sp) +/* 0E3E04 7F0AF2D4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0E3E08 7F0AF2D8 4600603C */ c.lt.s $f12, $f0 +/* 0E3E0C 7F0AF2DC 0000A825 */ move $s5, $zero +/* 0E3E10 7F0AF2E0 3C068008 */ lui $a2, %hi(dword_CODE_bss_8007B9DC) +/* 0E3E14 7F0AF2E4 4600128D */ trunc.w.s $f10, $f2 +/* 0E3E18 7F0AF2E8 45020003 */ bc1fl .L7F0AF2F8 +/* 0E3E1C 7F0AF2EC C7A000B8 */ lwc1 $f0, 0xb8($sp) +/* 0E3E20 7F0AF2F0 46000306 */ mov.s $f12, $f0 +/* 0E3E24 7F0AF2F4 C7A000B8 */ lwc1 $f0, 0xb8($sp) +.L7F0AF2F8: +/* 0E3E28 7F0AF2F8 4600620D */ trunc.w.s $f8, $f12 +/* 0E3E2C 7F0AF2FC 8CC6B9DC */ lw $a2, %lo(dword_CODE_bss_8007B9DC)($a2) +/* 0E3E30 7F0AF300 44095000 */ mfc1 $t1, $f10 +/* 0E3E34 7F0AF304 4600018D */ trunc.w.s $f6, $f0 +/* 0E3E38 7F0AF308 44194000 */ mfc1 $t9, $f8 +/* 0E3E3C 7F0AF30C E7AC00BC */ swc1 $f12, 0xbc($sp) +/* 0E3E40 7F0AF310 A7A900B0 */ sh $t1, 0xb0($sp) +/* 0E3E44 7F0AF314 440F3000 */ mfc1 $t7, $f6 +/* 0E3E48 7F0AF318 A7B900AE */ sh $t9, 0xae($sp) +/* 0E3E4C 7F0AF31C 18C0008F */ blez $a2, .L7F0AF55C +/* 0E3E50 7F0AF320 A7AF00AC */ sh $t7, 0xac($sp) +/* 0E3E54 7F0AF324 4481B000 */ mtc1 $at, $f22 +/* 0E3E58 7F0AF328 3C01C000 */ li $at, 0xC0000000 # -2.000000 +/* 0E3E5C 7F0AF32C 4481A000 */ mtc1 $at, $f20 +/* 0E3E60 7F0AF330 AFAA0070 */ sw $t2, 0x70($sp) +/* 0E3E64 7F0AF334 8FB20088 */ lw $s2, 0x88($sp) +.L7F0AF338: +/* 0E3E68 7F0AF338 8FAB0070 */ lw $t3, 0x70($sp) +/* 0E3E6C 7F0AF33C 00156080 */ sll $t4, $s5, 2 +/* 0E3E70 7F0AF340 01956023 */ subu $t4, $t4, $s5 +/* 0E3E74 7F0AF344 8D650000 */ lw $a1, ($t3) +/* 0E3E78 7F0AF348 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_8007B358) +/* 0E3E7C 7F0AF34C 25ADB358 */ addiu $t5, %lo(dword_CODE_bss_8007B358) # addiu $t5, $t5, -0x4ca8 +/* 0E3E80 7F0AF350 10A0007B */ beqz $a1, .L7F0AF540 +/* 0E3E84 7F0AF354 000C6080 */ sll $t4, $t4, 2 +/* 0E3E88 7F0AF358 018D1021 */ addu $v0, $t4, $t5 +/* 0E3E8C 7F0AF35C 844F0000 */ lh $t7, ($v0) +/* 0E3E90 7F0AF360 87AE00AC */ lh $t6, 0xac($sp) +/* 0E3E94 7F0AF364 87B900AC */ lh $t9, 0xac($sp) +/* 0E3E98 7F0AF368 01CF082A */ slt $at, $t6, $t7 +/* 0E3E9C 7F0AF36C 54200075 */ bnezl $at, .L7F0AF544 +/* 0E3EA0 7F0AF370 8FAE0070 */ lw $t6, 0x70($sp) +/* 0E3EA4 7F0AF374 84580006 */ lh $t8, 6($v0) +/* 0E3EA8 7F0AF378 87A800B0 */ lh $t0, 0xb0($sp) +/* 0E3EAC 7F0AF37C 0319082A */ slt $at, $t8, $t9 +/* 0E3EB0 7F0AF380 54200070 */ bnezl $at, .L7F0AF544 +/* 0E3EB4 7F0AF384 8FAE0070 */ lw $t6, 0x70($sp) +/* 0E3EB8 7F0AF388 84490004 */ lh $t1, 4($v0) +/* 0E3EBC 7F0AF38C 87AB00B0 */ lh $t3, 0xb0($sp) +/* 0E3EC0 7F0AF390 0109082A */ slt $at, $t0, $t1 +/* 0E3EC4 7F0AF394 5420006B */ bnezl $at, .L7F0AF544 +/* 0E3EC8 7F0AF398 8FAE0070 */ lw $t6, 0x70($sp) +/* 0E3ECC 7F0AF39C 844A000A */ lh $t2, 0xa($v0) +/* 0E3ED0 7F0AF3A0 87AC00AE */ lh $t4, 0xae($sp) +/* 0E3ED4 7F0AF3A4 014B082A */ slt $at, $t2, $t3 +/* 0E3ED8 7F0AF3A8 54200066 */ bnezl $at, .L7F0AF544 +/* 0E3EDC 7F0AF3AC 8FAE0070 */ lw $t6, 0x70($sp) +/* 0E3EE0 7F0AF3B0 844D0002 */ lh $t5, 2($v0) +/* 0E3EE4 7F0AF3B4 8FAE00CC */ lw $t6, 0xcc($sp) +/* 0E3EE8 7F0AF3B8 018D082A */ slt $at, $t4, $t5 +/* 0E3EEC 7F0AF3BC 54200061 */ bnezl $at, .L7F0AF544 +/* 0E3EF0 7F0AF3C0 8FAE0070 */ lw $t6, 0x70($sp) +/* 0E3EF4 7F0AF3C4 51C00015 */ beql $t6, $zero, .L7F0AF41C +/* 0E3EF8 7F0AF3C8 8CB80000 */ lw $t8, ($a1) +/* 0E3EFC 7F0AF3CC 91CF0000 */ lbu $t7, ($t6) +/* 0E3F00 7F0AF3D0 00008025 */ move $s0, $zero +/* 0E3F04 7F0AF3D4 01C01021 */ addu $v0, $t6, $zero +/* 0E3F08 7F0AF3D8 12CF000D */ beq $s6, $t7, .L7F0AF410 +/* 0E3F0C 7F0AF3DC 00000000 */ nop +/* 0E3F10 7F0AF3E0 91C30000 */ lbu $v1, ($t6) +.L7F0AF3E4: +/* 0E3F14 7F0AF3E4 56A30004 */ bnel $s5, $v1, .L7F0AF3F8 +/* 0E3F18 7F0AF3E8 90430001 */ lbu $v1, 1($v0) +/* 0E3F1C 7F0AF3EC 1000000B */ b .L7F0AF41C +/* 0E3F20 7F0AF3F0 8CB80000 */ lw $t8, ($a1) +/* 0E3F24 7F0AF3F4 90430001 */ lbu $v1, 1($v0) +.L7F0AF3F8: +/* 0E3F28 7F0AF3F8 26100001 */ addiu $s0, $s0, 1 +/* 0E3F2C 7F0AF3FC 24420001 */ addiu $v0, $v0, 1 +/* 0E3F30 7F0AF400 12C30003 */ beq $s6, $v1, .L7F0AF410 +/* 0E3F34 7F0AF404 00000000 */ nop +/* 0E3F38 7F0AF408 1604FFF6 */ bne $s0, $a0, .L7F0AF3E4 +/* 0E3F3C 7F0AF40C 00000000 */ nop +.L7F0AF410: +/* 0E3F40 7F0AF410 1000004C */ b .L7F0AF544 +/* 0E3F44 7F0AF414 8FAE0070 */ lw $t6, 0x70($sp) +/* 0E3F48 7F0AF418 8CB80000 */ lw $t8, ($a1) +.L7F0AF41C: +/* 0E3F4C 7F0AF41C 00A08825 */ move $s1, $a1 +/* 0E3F50 7F0AF420 13000044 */ beqz $t8, .L7F0AF534 +/* 0E3F54 7F0AF424 00000000 */ nop +/* 0E3F58 7F0AF428 90B90003 */ lbu $t9, 3($a1) +/* 0E3F5C 7F0AF42C 16B90041 */ bne $s5, $t9, .L7F0AF534 +/* 0E3F60 7F0AF430 00008025 */ move $s0, $zero +.L7F0AF434: +/* 0E3F64 7F0AF434 C7A000B8 */ lwc1 $f0, 0xb8($sp) +.L7F0AF438: +/* 0E3F68 7F0AF438 C7A200C0 */ lwc1 $f2, 0xc0($sp) +/* 0E3F6C 7F0AF43C 02202025 */ move $a0, $s1 +/* 0E3F70 7F0AF440 44060000 */ mfc1 $a2, $f0 +/* 0E3F74 7F0AF444 44071000 */ mfc1 $a3, $f2 +/* 0E3F78 7F0AF448 0FC2BF9C */ jal sub_GAME_7F0AFE70 +/* 0E3F7C 7F0AF44C 02002825 */ move $a1, $s0 +/* 0E3F80 7F0AF450 4614003C */ c.lt.s $f0, $f20 +/* 0E3F84 7F0AF454 26100001 */ addiu $s0, $s0, 1 +/* 0E3F88 7F0AF458 4503002B */ bc1tl .L7F0AF508 +/* 0E3F8C 7F0AF45C 86220006 */ lh $v0, 6($s1) +/* 0E3F90 7F0AF460 4616003C */ c.lt.s $f0, $f22 +/* 0E3F94 7F0AF464 00000000 */ nop +/* 0E3F98 7F0AF468 45000002 */ bc1f .L7F0AF474 +/* 0E3F9C 7F0AF46C 00000000 */ nop +/* 0E3FA0 7F0AF470 24120001 */ li $s2, 1 +.L7F0AF474: +/* 0E3FA4 7F0AF474 5613FFF0 */ bnel $s0, $s3, .L7F0AF438 +/* 0E3FA8 7F0AF478 C7A000B8 */ lwc1 $f0, 0xb8($sp) +/* 0E3FAC 7F0AF47C 0FC2BDD8 */ jal sub_GAME_7F0AF760 +/* 0E3FB0 7F0AF480 02202025 */ move $a0, $s1 +/* 0E3FB4 7F0AF484 54400020 */ bnezl $v0, .L7F0AF508 +/* 0E3FB8 7F0AF488 86220006 */ lh $v0, 6($s1) +/* 0E3FBC 7F0AF48C 1240000E */ beqz $s2, .L7F0AF4C8 +/* 0E3FC0 7F0AF490 02202025 */ move $a0, $s1 +/* 0E3FC4 7F0AF494 0FC2BE49 */ jal sub_GAME_7F0AF924 +/* 0E3FC8 7F0AF498 03C02825 */ move $a1, $fp +/* 0E3FCC 7F0AF49C AFB100A0 */ sw $s1, 0xa0($sp) +/* 0E3FD0 7F0AF4A0 C6900008 */ lwc1 $f16, 8($s4) +/* 0E3FD4 7F0AF4A4 8E870000 */ lw $a3, ($s4) +/* 0E3FD8 7F0AF4A8 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 0E3FDC 7F0AF4AC 8FA5007C */ lw $a1, 0x7c($sp) +/* 0E3FE0 7F0AF4B0 8FA60084 */ lw $a2, 0x84($sp) +/* 0E3FE4 7F0AF4B4 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0E3FE8 7F0AF4B8 E7B00010 */ swc1 $f16, 0x10($sp) +/* 0E3FEC 7F0AF4BC 10400011 */ beqz $v0, .L7F0AF504 +/* 0E3FF0 7F0AF4C0 8FA800A0 */ lw $t0, 0xa0($sp) +/* 0E3FF4 7F0AF4C4 1511000F */ bne $t0, $s1, .L7F0AF504 +.L7F0AF4C8: +/* 0E3FF8 7F0AF4C8 02202025 */ move $a0, $s1 +/* 0E3FFC 7F0AF4CC 8E850000 */ lw $a1, ($s4) +/* 0E4000 7F0AF4D0 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0E4004 7F0AF4D4 8E860008 */ lw $a2, 8($s4) +/* 0E4008 7F0AF4D8 C6920004 */ lwc1 $f18, 4($s4) +/* 0E400C 7F0AF4DC 4600903C */ c.lt.s $f18, $f0 +/* 0E4010 7F0AF4E0 00000000 */ nop +/* 0E4014 7F0AF4E4 45030008 */ bc1tl .L7F0AF508 +/* 0E4018 7F0AF4E8 86220006 */ lh $v0, 6($s1) +/* 0E401C 7F0AF4EC 4600C03C */ c.lt.s $f24, $f0 +/* 0E4020 7F0AF4F0 00000000 */ nop +/* 0E4024 7F0AF4F4 45020004 */ bc1fl .L7F0AF508 +/* 0E4028 7F0AF4F8 86220006 */ lh $v0, 6($s1) +/* 0E402C 7F0AF4FC AFB1009C */ sw $s1, 0x9c($sp) +/* 0E4030 7F0AF500 46000606 */ mov.s $f24, $f0 +.L7F0AF504: +/* 0E4034 7F0AF504 86220006 */ lh $v0, 6($s1) +.L7F0AF508: +/* 0E4038 7F0AF508 00024B03 */ sra $t1, $v0, 0xc +/* 0E403C 7F0AF50C 312A000F */ andi $t2, $t1, 0xf +/* 0E4040 7F0AF510 02EA5821 */ addu $t3, $s7, $t2 +/* 0E4044 7F0AF514 916C0000 */ lbu $t4, ($t3) +/* 0E4048 7F0AF518 01918821 */ addu $s1, $t4, $s1 +/* 0E404C 7F0AF51C 8E2D0000 */ lw $t5, ($s1) +/* 0E4050 7F0AF520 11A00004 */ beqz $t5, .L7F0AF534 +/* 0E4054 7F0AF524 00000000 */ nop +/* 0E4058 7F0AF528 922F0003 */ lbu $t7, 3($s1) +/* 0E405C 7F0AF52C 52AFFFC1 */ beql $s5, $t7, .L7F0AF434 +/* 0E4060 7F0AF530 00008025 */ move $s0, $zero +.L7F0AF534: +/* 0E4064 7F0AF534 3C068008 */ lui $a2, %hi(dword_CODE_bss_8007B9DC) +/* 0E4068 7F0AF538 8CC6B9DC */ lw $a2, %lo(dword_CODE_bss_8007B9DC)($a2) +/* 0E406C 7F0AF53C 24040004 */ li $a0, 4 +.L7F0AF540: +/* 0E4070 7F0AF540 8FAE0070 */ lw $t6, 0x70($sp) +.L7F0AF544: +/* 0E4074 7F0AF544 26B50001 */ addiu $s5, $s5, 1 +/* 0E4078 7F0AF548 02A6082A */ slt $at, $s5, $a2 +/* 0E407C 7F0AF54C 25D80004 */ addiu $t8, $t6, 4 +/* 0E4080 7F0AF550 1420FF79 */ bnez $at, .L7F0AF338 +/* 0E4084 7F0AF554 AFB80070 */ sw $t8, 0x70($sp) +/* 0E4088 7F0AF558 AFB20088 */ sw $s2, 0x88($sp) +.L7F0AF55C: +/* 0E408C 7F0AF55C 8FB9009C */ lw $t9, 0x9c($sp) +/* 0E4090 7F0AF560 8FA800D0 */ lw $t0, 0xd0($sp) +/* 0E4094 7F0AF564 53200005 */ beql $t9, $zero, .L7F0AF57C +/* 0E4098 7F0AF568 8FBF005C */ lw $ra, 0x5c($sp) +/* 0E409C 7F0AF56C 51000003 */ beql $t0, $zero, .L7F0AF57C +/* 0E40A0 7F0AF570 8FBF005C */ lw $ra, 0x5c($sp) +/* 0E40A4 7F0AF574 E5180000 */ swc1 $f24, ($t0) +/* 0E40A8 7F0AF578 8FBF005C */ lw $ra, 0x5c($sp) +.L7F0AF57C: +/* 0E40AC 7F0AF57C 8FA2009C */ lw $v0, 0x9c($sp) +/* 0E40B0 7F0AF580 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 0E40B4 7F0AF584 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 0E40B8 7F0AF588 D7B80030 */ ldc1 $f24, 0x30($sp) +/* 0E40BC 7F0AF58C 8FB00038 */ lw $s0, 0x38($sp) +/* 0E40C0 7F0AF590 8FB1003C */ lw $s1, 0x3c($sp) +/* 0E40C4 7F0AF594 8FB20040 */ lw $s2, 0x40($sp) +/* 0E40C8 7F0AF598 8FB30044 */ lw $s3, 0x44($sp) +/* 0E40CC 7F0AF59C 8FB40048 */ lw $s4, 0x48($sp) +/* 0E40D0 7F0AF5A0 8FB5004C */ lw $s5, 0x4c($sp) +/* 0E40D4 7F0AF5A4 8FB60050 */ lw $s6, 0x50($sp) +/* 0E40D8 7F0AF5A8 8FB70054 */ lw $s7, 0x54($sp) +/* 0E40DC 7F0AF5AC 8FBE0058 */ lw $fp, 0x58($sp) +/* 0E40E0 7F0AF5B0 03E00008 */ jr $ra +/* 0E40E4 7F0AF5B4 27BD00C8 */ addiu $sp, $sp, 0xc8 +) +#endif + + + + + +#ifdef NONMATCHING +void stanLoadFile(void *arg0) { + stanLoaded = 1; + clippingfile = arg0; + base_ptr_connection_vals = (s32) (arg0->unk4 + -0x80); + if (check_token(1, "-stanlinelog") != 0) + { + stanlinelog_flag = 1; + } + sub_GAME_7F0AF038(); + sub_GAME_7F0B2950(1.0); +} + +#else +GLOBAL_ASM( +.text +glabel stanLoadFile +/* 0E40E8 7F0AF5B8 3C028008 */ lui $v0, %hi(clippingfile) +/* 0E40EC 7F0AF5BC 240E0001 */ li $t6, 1 +/* 0E40F0 7F0AF5C0 3C018004 */ lui $at, %hi(stanLoaded) +/* 0E40F4 7F0AF5C4 2442B120 */ addiu $v0, %lo(clippingfile) # addiu $v0, $v0, -0x4ee0 +/* 0E40F8 7F0AF5C8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E40FC 7F0AF5CC AC2E0FB0 */ sw $t6, %lo(stanLoaded)($at) +/* 0E4100 7F0AF5D0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E4104 7F0AF5D4 AC440000 */ sw $a0, ($v0) +/* 0E4108 7F0AF5D8 8C980004 */ lw $t8, 4($a0) +/* 0E410C 7F0AF5DC 3C018004 */ lui $at, %hi(base_ptr_connection_vals) +/* 0E4110 7F0AF5E0 3C058006 */ lui $a1, %hi(aStanlinelog) +/* 0E4114 7F0AF5E4 2719FF80 */ addiu $t9, $t8, -0x80 +/* 0E4118 7F0AF5E8 AC390F58 */ sw $t9, %lo(base_ptr_connection_vals)($at) +/* 0E411C 7F0AF5EC 24A585BC */ addiu $a1, %lo(aStanlinelog) # addiu $a1, $a1, -0x7a44 +/* 0E4120 7F0AF5F0 0C0029A8 */ jal check_token +/* 0E4124 7F0AF5F4 24040001 */ li $a0, 1 +/* 0E4128 7F0AF5F8 10400003 */ beqz $v0, .L7F0AF608 +/* 0E412C 7F0AF5FC 24080001 */ li $t0, 1 +/* 0E4130 7F0AF600 3C018004 */ lui $at, %hi(stanlinelog_flag) +/* 0E4134 7F0AF604 AC280FB4 */ sw $t0, %lo(stanlinelog_flag)($at) +.L7F0AF608: +/* 0E4138 7F0AF608 0FC2BC0E */ jal sub_GAME_7F0AF038 +/* 0E413C 7F0AF60C 00000000 */ nop +/* 0E4140 7F0AF610 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E4144 7F0AF614 44816000 */ mtc1 $at, $f12 +/* 0E4148 7F0AF618 0FC2CA54 */ jal sub_GAME_7F0B2950 +/* 0E414C 7F0AF61C 00000000 */ nop +/* 0E4150 7F0AF620 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E4154 7F0AF624 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E4158 7F0AF628 03E00008 */ jr $ra +/* 0E415C 7F0AF62C 00000000 */ nop +) +#endif + + + + + + +void sub_GAME_7F0AF630(s32 arg0) { + return; +} + + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0AF638(s32 arg0, s32 arg1, void *arg2) { + s32 temp_s4; + void *temp_s3; + s32 temp_s1; + void *temp_s2; + s32 temp_a1; + s32 temp_v0; + s32 temp_s0; + void *temp_v1; + void *phi_s2; + s32 phi_a1; + void *phi_a0; + void *phi_s2_2; + s32 phi_s0; + s32 phi_a1_2; + s32 phi_s1; + s32 phi_s7; + void *phi_s2_3; + s32 phi_a1_3; + s32 phi_s1_2; + s32 phi_s1_3; + s32 phi_s7_2; + s32 phi_s7_3; + s32 phi_s1_4; + + // Node 0 + temp_s4 = (arg1 & 0xff); + *arg2 = arg0; + phi_s2 = (arg2 + 4); + phi_a1 = arg1; + phi_s1_3 = 1; + phi_s7_3 = 0; +loop_1: + // Node 1 + temp_s3 = phi_s2->unk-4; + temp_s1 = (phi_s1_3 + -1); + temp_s2 = (phi_s2 + -4); + phi_s1 = temp_s1; + phi_s7 = phi_s7_3; + phi_s2 = temp_s2; + phi_a1 = phi_a1; + if (temp_s4 != (((s32) *temp_s3 >> 0xf) & 1)) + { + // Node 2 + *temp_s3 = (s16) (*temp_s3 ^ 0x8000); + phi_s7_2 = phi_s7_3; + if (sub_GAME_7F0AF760(temp_s3, phi_a1) == 0) + { + // Node 3 + phi_s7_2 = (phi_s7_3 + 1); + } + // Node 4 + temp_a1 = (((s32) temp_s3->unk6 >> 0xc) & 0xf); + phi_a0 = temp_s3; + phi_s2_2 = temp_s2; + phi_s0 = 0; + phi_s1 = temp_s1; + phi_s7 = phi_s7_2; + phi_s2 = temp_s2; + phi_a1 = temp_a1; + phi_a1_3 = temp_a1; + phi_s1_4 = temp_s1; + if (temp_a1 > 0) + { +loop_5: + // Node 5 + temp_v0 = phi_a0->unkE; + temp_s0 = (phi_s0 + 1); + phi_a1_2 = phi_a1_3; + phi_s2_3 = phi_s2_2; + phi_s1_2 = phi_s1_4; + if ((temp_v0 >> 4) != 0) + { + // Node 6 + temp_v1 = ((temp_v0 * 8) + base_ptr_connection_vals); + phi_a1_2 = phi_a1_3; + phi_s2_3 = phi_s2_2; + phi_s1_2 = phi_s1_4; + if (temp_s4 != (((s32) *temp_v1 >> 0xf) & 1)) + { + // Node 7 + *phi_s2_2 = temp_v1; + phi_a1_2 = (((s32) temp_s3->unk6 >> 0xc) & 0xf); + phi_s2_3 = (phi_s2_2 + 4); + phi_s1_2 = (phi_s1_4 + 1); + } + } + // Node 8 + phi_a0 = (phi_a0 + 8); + phi_s2_2 = phi_s2_3; + phi_s0 = temp_s0; + phi_s1 = phi_s1_2; + phi_s7 = phi_s7_2; + phi_s2 = phi_s2_3; + phi_a1 = phi_a1_2; + phi_a1_3 = phi_a1_2; + phi_s1_4 = phi_s1_2; + if (temp_s0 < phi_a1_2) + { + goto loop_5; + } + } + } + // Node 9 + phi_s1_3 = phi_s1; + phi_s7_3 = phi_s7; + if (phi_s1 != 0) + { + goto loop_1; + } + // Node 10 + return phi_s7; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AF638 +/* 0E4168 7F0AF638 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0E416C 7F0AF63C AFB70030 */ sw $s7, 0x30($sp) +/* 0E4170 7F0AF640 AFB6002C */ sw $s6, 0x2c($sp) +/* 0E4174 7F0AF644 AFB40024 */ sw $s4, 0x24($sp) +/* 0E4178 7F0AF648 AFB2001C */ sw $s2, 0x1c($sp) +/* 0E417C 7F0AF64C AFB10018 */ sw $s1, 0x18($sp) +/* 0E4180 7F0AF650 AFBF0034 */ sw $ra, 0x34($sp) +/* 0E4184 7F0AF654 AFB50028 */ sw $s5, 0x28($sp) +/* 0E4188 7F0AF658 AFB30020 */ sw $s3, 0x20($sp) +/* 0E418C 7F0AF65C AFB00014 */ sw $s0, 0x14($sp) +/* 0E4190 7F0AF660 AFA5003C */ sw $a1, 0x3c($sp) +/* 0E4194 7F0AF664 3C168004 */ lui $s6, %hi(base_ptr_connection_vals) +/* 0E4198 7F0AF668 30B400FF */ andi $s4, $a1, 0xff +/* 0E419C 7F0AF66C 0000B825 */ move $s7, $zero +/* 0E41A0 7F0AF670 ACC40000 */ sw $a0, ($a2) +/* 0E41A4 7F0AF674 24110001 */ li $s1, 1 +/* 0E41A8 7F0AF678 26D60F58 */ addiu $s6, %lo(base_ptr_connection_vals) # addiu $s6, $s6, 0xf58 +/* 0E41AC 7F0AF67C 24D20004 */ addiu $s2, $a2, 4 +/* 0E41B0 7F0AF680 8E53FFFC */ lw $s3, -4($s2) +.L7F0AF684: +/* 0E41B4 7F0AF684 2631FFFF */ addiu $s1, $s1, -1 +/* 0E41B8 7F0AF688 2652FFFC */ addiu $s2, $s2, -4 +/* 0E41BC 7F0AF68C 96620000 */ lhu $v0, ($s3) +/* 0E41C0 7F0AF690 00008025 */ move $s0, $zero +/* 0E41C4 7F0AF694 02602025 */ move $a0, $s3 +/* 0E41C8 7F0AF698 00027BC3 */ sra $t7, $v0, 0xf +/* 0E41CC 7F0AF69C 31F80001 */ andi $t8, $t7, 1 +/* 0E41D0 7F0AF6A0 12980021 */ beq $s4, $t8, .L7F0AF728 +/* 0E41D4 7F0AF6A4 38598000 */ xori $t9, $v0, 0x8000 +/* 0E41D8 7F0AF6A8 0FC2BDD8 */ jal sub_GAME_7F0AF760 +/* 0E41DC 7F0AF6AC A6790000 */ sh $t9, ($s3) +/* 0E41E0 7F0AF6B0 14400002 */ bnez $v0, .L7F0AF6BC +/* 0E41E4 7F0AF6B4 02602025 */ move $a0, $s3 +/* 0E41E8 7F0AF6B8 26F70001 */ addiu $s7, $s7, 1 +.L7F0AF6BC: +/* 0E41EC 7F0AF6BC 86650006 */ lh $a1, 6($s3) +/* 0E41F0 7F0AF6C0 00054303 */ sra $t0, $a1, 0xc +/* 0E41F4 7F0AF6C4 3105000F */ andi $a1, $t0, 0xf +/* 0E41F8 7F0AF6C8 18A00017 */ blez $a1, .L7F0AF728 +/* 0E41FC 7F0AF6CC 00000000 */ nop +.L7F0AF6D0: +/* 0E4200 7F0AF6D0 9482000E */ lhu $v0, 0xe($a0) +/* 0E4204 7F0AF6D4 26100001 */ addiu $s0, $s0, 1 +/* 0E4208 7F0AF6D8 00025103 */ sra $t2, $v0, 4 +/* 0E420C 7F0AF6DC 51400010 */ beql $t2, $zero, .L7F0AF720 +/* 0E4210 7F0AF6E0 0205082A */ slt $at, $s0, $a1 +/* 0E4214 7F0AF6E4 8ECC0000 */ lw $t4, ($s6) +/* 0E4218 7F0AF6E8 000258C0 */ sll $t3, $v0, 3 +/* 0E421C 7F0AF6EC 016C1821 */ addu $v1, $t3, $t4 +/* 0E4220 7F0AF6F0 946D0000 */ lhu $t5, ($v1) +/* 0E4224 7F0AF6F4 000D73C3 */ sra $t6, $t5, 0xf +/* 0E4228 7F0AF6F8 31CF0001 */ andi $t7, $t6, 1 +/* 0E422C 7F0AF6FC 528F0008 */ beql $s4, $t7, .L7F0AF720 +/* 0E4230 7F0AF700 0205082A */ slt $at, $s0, $a1 +/* 0E4234 7F0AF704 AE430000 */ sw $v1, ($s2) +/* 0E4238 7F0AF708 86650006 */ lh $a1, 6($s3) +/* 0E423C 7F0AF70C 26310001 */ addiu $s1, $s1, 1 +/* 0E4240 7F0AF710 26520004 */ addiu $s2, $s2, 4 +/* 0E4244 7F0AF714 0005C303 */ sra $t8, $a1, 0xc +/* 0E4248 7F0AF718 3305000F */ andi $a1, $t8, 0xf +/* 0E424C 7F0AF71C 0205082A */ slt $at, $s0, $a1 +.L7F0AF720: +/* 0E4250 7F0AF720 1420FFEB */ bnez $at, .L7F0AF6D0 +/* 0E4254 7F0AF724 24840008 */ addiu $a0, $a0, 8 +.L7F0AF728: +/* 0E4258 7F0AF728 5620FFD6 */ bnezl $s1, .L7F0AF684 +/* 0E425C 7F0AF72C 8E53FFFC */ lw $s3, -4($s2) +/* 0E4260 7F0AF730 8FBF0034 */ lw $ra, 0x34($sp) +/* 0E4264 7F0AF734 02E01025 */ move $v0, $s7 +/* 0E4268 7F0AF738 8FB70030 */ lw $s7, 0x30($sp) +/* 0E426C 7F0AF73C 8FB00014 */ lw $s0, 0x14($sp) +/* 0E4270 7F0AF740 8FB10018 */ lw $s1, 0x18($sp) +/* 0E4274 7F0AF744 8FB2001C */ lw $s2, 0x1c($sp) +/* 0E4278 7F0AF748 8FB30020 */ lw $s3, 0x20($sp) +/* 0E427C 7F0AF74C 8FB40024 */ lw $s4, 0x24($sp) +/* 0E4280 7F0AF750 8FB50028 */ lw $s5, 0x28($sp) +/* 0E4284 7F0AF754 8FB6002C */ lw $s6, 0x2c($sp) +/* 0E4288 7F0AF758 03E00008 */ jr $ra +/* 0E428C 7F0AF75C 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0AF760(void *arg0) { + u32 sp0; + s32 sp8; + s32 sp10; + s32 sp14; + s32 sp1C; + void *temp_t1; + void *temp_t0; + void *temp_t2; + s32 temp_t5; + s32 temp_t8; + u32 temp_t8_2; + + // Node 0 + temp_t1 = (arg0 + ((((s32) arg0->unk6 >> 8) & 0xf) * 8)); + temp_t0 = (arg0 + ((((s32) arg0->unk6 >> 4) & 0xf) * 8)); + sp14 = (s32) (temp_t0->unk8 - temp_t1->unk8); + temp_t2 = (arg0 + ((arg0->unk6 & 0xf) * 8)); + sp1C = (s32) (temp_t0->unkC - temp_t1->unkC); + temp_t5 = (temp_t2->unk8 - temp_t1->unk8); + sp8 = temp_t5; + temp_t8 = (temp_t2->unkC - temp_t1->unkC); + sp10 = temp_t8; + temp_t8_2 = ((sp1C * temp_t5) - (temp_t8 * sp14)); + sp0 = temp_t8_2; + return (temp_t8_2 < 1U); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AF760 +/* 0E4290 7F0AF760 84850006 */ lh $a1, 6($a0) +/* 0E4294 7F0AF764 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E4298 7F0AF768 00051A03 */ sra $v1, $a1, 8 +/* 0E429C 7F0AF76C 00053103 */ sra $a2, $a1, 4 +/* 0E42A0 7F0AF770 306E000F */ andi $t6, $v1, 0xf +/* 0E42A4 7F0AF774 30CF000F */ andi $t7, $a2, 0xf +/* 0E42A8 7F0AF778 000FC0C0 */ sll $t8, $t7, 3 +/* 0E42AC 7F0AF77C 000EC8C0 */ sll $t9, $t6, 3 +/* 0E42B0 7F0AF780 00994821 */ addu $t1, $a0, $t9 +/* 0E42B4 7F0AF784 00984021 */ addu $t0, $a0, $t8 +/* 0E42B8 7F0AF788 850B0008 */ lh $t3, 8($t0) +/* 0E42BC 7F0AF78C 852C0008 */ lh $t4, 8($t1) +/* 0E42C0 7F0AF790 30A7000F */ andi $a3, $a1, 0xf +/* 0E42C4 7F0AF794 0007C8C0 */ sll $t9, $a3, 3 +/* 0E42C8 7F0AF798 016C6823 */ subu $t5, $t3, $t4 +/* 0E42CC 7F0AF79C AFAD0014 */ sw $t5, 0x14($sp) +/* 0E42D0 7F0AF7A0 852F000C */ lh $t7, 0xc($t1) +/* 0E42D4 7F0AF7A4 850E000C */ lh $t6, 0xc($t0) +/* 0E42D8 7F0AF7A8 00995021 */ addu $t2, $a0, $t9 +/* 0E42DC 7F0AF7AC 01CFC023 */ subu $t8, $t6, $t7 +/* 0E42E0 7F0AF7B0 AFB8001C */ sw $t8, 0x1c($sp) +/* 0E42E4 7F0AF7B4 852C0008 */ lh $t4, 8($t1) +/* 0E42E8 7F0AF7B8 854B0008 */ lh $t3, 8($t2) +/* 0E42EC 7F0AF7BC 8FB9001C */ lw $t9, 0x1c($sp) +/* 0E42F0 7F0AF7C0 016C6823 */ subu $t5, $t3, $t4 +/* 0E42F4 7F0AF7C4 032D0019 */ multu $t9, $t5 +/* 0E42F8 7F0AF7C8 AFAD0008 */ sw $t5, 8($sp) +/* 0E42FC 7F0AF7CC 852F000C */ lh $t7, 0xc($t1) +/* 0E4300 7F0AF7D0 854E000C */ lh $t6, 0xc($t2) +/* 0E4304 7F0AF7D4 01CFC023 */ subu $t8, $t6, $t7 +/* 0E4308 7F0AF7D8 8FAE0014 */ lw $t6, 0x14($sp) +/* 0E430C 7F0AF7DC AFB80010 */ sw $t8, 0x10($sp) +/* 0E4310 7F0AF7E0 00006012 */ mflo $t4 +/* 0E4314 7F0AF7E4 00000000 */ nop +/* 0E4318 7F0AF7E8 00000000 */ nop +/* 0E431C 7F0AF7EC 030E0019 */ multu $t8, $t6 +/* 0E4320 7F0AF7F0 00007812 */ mflo $t7 +/* 0E4324 7F0AF7F4 018FC023 */ subu $t8, $t4, $t7 +/* 0E4328 7F0AF7F8 AFB80000 */ sw $t8, ($sp) +/* 0E432C 7F0AF7FC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0E4330 7F0AF800 03E00008 */ jr $ra +/* 0E4334 7F0AF804 2F020001 */ sltiu $v0, $t8, 1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AF808(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AF808 +/* 0E4338 7F0AF808 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0E433C 7F0AF80C 3C0E8008 */ lui $t6, %hi(clippingfile) +/* 0E4340 7F0AF810 8DCEB120 */ lw $t6, %lo(clippingfile)($t6) +/* 0E4344 7F0AF814 AFBF0044 */ sw $ra, 0x44($sp) +/* 0E4348 7F0AF818 AFB20040 */ sw $s2, 0x40($sp) +/* 0E434C 7F0AF81C AFB1003C */ sw $s1, 0x3c($sp) +/* 0E4350 7F0AF820 AFB00038 */ sw $s0, 0x38($sp) +/* 0E4354 7F0AF824 F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0E4358 7F0AF828 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0E435C 7F0AF82C F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0E4360 7F0AF830 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0E4364 7F0AF834 8DD00004 */ lw $s0, 4($t6) +/* 0E4368 7F0AF838 4486B000 */ mtc1 $a2, $f22 +/* 0E436C 7F0AF83C 4487C000 */ mtc1 $a3, $f24 +/* 0E4370 7F0AF840 8E0F0000 */ lw $t7, ($s0) +/* 0E4374 7F0AF844 46006506 */ mov.s $f20, $f12 +/* 0E4378 7F0AF848 46007686 */ mov.s $f26, $f14 +/* 0E437C 7F0AF84C 11E0002A */ beqz $t7, .L7F0AF8F8 +/* 0E4380 7F0AF850 3C128004 */ lui $s2, %hi(list_of_tilesizes) +/* 0E4384 7F0AF854 26520F4C */ addiu $s2, %lo(list_of_tilesizes) # addiu $s2, $s2, 0xf4c +/* 0E4388 7F0AF858 27B10050 */ addiu $s1, $sp, 0x50 +/* 0E438C 7F0AF85C AFB00050 */ sw $s0, 0x50($sp) +.L7F0AF860: +/* 0E4390 7F0AF860 0FC2BDD8 */ jal sub_GAME_7F0AF760 +/* 0E4394 7F0AF864 02002025 */ move $a0, $s0 +/* 0E4398 7F0AF868 5440001B */ bnezl $v0, .L7F0AF8D8 +/* 0E439C 7F0AF86C 86020006 */ lh $v0, 6($s0) +/* 0E43A0 7F0AF870 4405A000 */ mfc1 $a1, $f20 +/* 0E43A4 7F0AF874 4406B000 */ mfc1 $a2, $f22 +/* 0E43A8 7F0AF878 0FC2C0DB */ jal sub_GAME_7F0B036C +/* 0E43AC 7F0AF87C 02002025 */ move $a0, $s0 +/* 0E43B0 7F0AF880 50400015 */ beql $v0, $zero, .L7F0AF8D8 +/* 0E43B4 7F0AF884 86020006 */ lh $v0, 6($s0) +/* 0E43B8 7F0AF888 4405A000 */ mfc1 $a1, $f20 +/* 0E43BC 7F0AF88C 4406B000 */ mfc1 $a2, $f22 +/* 0E43C0 7F0AF890 4407C000 */ mfc1 $a3, $f24 +/* 0E43C4 7F0AF894 0FC2C834 */ jal sub_GAME_7F0B20D0 +/* 0E43C8 7F0AF898 02202025 */ move $a0, $s1 +/* 0E43CC 7F0AF89C 1040000D */ beqz $v0, .L7F0AF8D4 +/* 0E43D0 7F0AF8A0 8FB80050 */ lw $t8, 0x50($sp) +/* 0E43D4 7F0AF8A4 5618000C */ bnel $s0, $t8, .L7F0AF8D8 +/* 0E43D8 7F0AF8A8 86020006 */ lh $v0, 6($s0) +/* 0E43DC 7F0AF8AC 4405A000 */ mfc1 $a1, $f20 +/* 0E43E0 7F0AF8B0 4406B000 */ mfc1 $a2, $f22 +/* 0E43E4 7F0AF8B4 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0E43E8 7F0AF8B8 02002025 */ move $a0, $s0 +/* 0E43EC 7F0AF8BC 461A003C */ c.lt.s $f0, $f26 +/* 0E43F0 7F0AF8C0 00000000 */ nop +/* 0E43F4 7F0AF8C4 45020004 */ bc1fl .L7F0AF8D8 +/* 0E43F8 7F0AF8C8 86020006 */ lh $v0, 6($s0) +/* 0E43FC 7F0AF8CC 1000000B */ b .L7F0AF8FC +/* 0E4400 7F0AF8D0 02001025 */ move $v0, $s0 +.L7F0AF8D4: +/* 0E4404 7F0AF8D4 86020006 */ lh $v0, 6($s0) +.L7F0AF8D8: +/* 0E4408 7F0AF8D8 0002CB03 */ sra $t9, $v0, 0xc +/* 0E440C 7F0AF8DC 3328000F */ andi $t0, $t9, 0xf +/* 0E4410 7F0AF8E0 02484821 */ addu $t1, $s2, $t0 +/* 0E4414 7F0AF8E4 912A0000 */ lbu $t2, ($t1) +/* 0E4418 7F0AF8E8 01508021 */ addu $s0, $t2, $s0 +/* 0E441C 7F0AF8EC 8E0B0000 */ lw $t3, ($s0) +/* 0E4420 7F0AF8F0 5560FFDB */ bnezl $t3, .L7F0AF860 +/* 0E4424 7F0AF8F4 AFB00050 */ sw $s0, 0x50($sp) +.L7F0AF8F8: +/* 0E4428 7F0AF8F8 00001025 */ move $v0, $zero +.L7F0AF8FC: +/* 0E442C 7F0AF8FC 8FBF0044 */ lw $ra, 0x44($sp) +/* 0E4430 7F0AF900 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0E4434 7F0AF904 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0E4438 7F0AF908 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0E443C 7F0AF90C D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0E4440 7F0AF910 8FB00038 */ lw $s0, 0x38($sp) +/* 0E4444 7F0AF914 8FB1003C */ lw $s1, 0x3c($sp) +/* 0E4448 7F0AF918 8FB20040 */ lw $s2, 0x40($sp) +/* 0E444C 7F0AF91C 03E00008 */ jr $ra +/* 0E4450 7F0AF920 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0AF924(void *arg0, void *arg1) { + void *temp_t2; + void *temp_t1; + void *temp_t0; + + // Node 0 + temp_t2 = (arg0 + ((((s32) arg0->unk6 >> 4) & 0xf) * 8)); + temp_t1 = (arg0 + ((((s32) arg0->unk6 >> 8) & 0xf) * 8)); + temp_t0 = (arg0 + ((arg0->unk6 & 0xf) * 8)); + *arg1 = (f32) ((((f32) temp_t0->unk8 + ((f32) temp_t1->unk8 + (f32) temp_t2->unk8)) / 3.0f) * D_80040F48); + arg1->unk4 = (f32) ((((f32) temp_t0->unkA + ((f32) temp_t1->unkA + (f32) temp_t2->unkA)) / 3.0f) * D_80040F48); + arg1->unk8 = (f32) ((((f32) temp_t0->unkC + ((f32) temp_t1->unkC + (f32) temp_t2->unkC)) / 3.0f) * D_80040F48); + return 3.0f; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AF924 +/* 0E4454 7F0AF924 84870006 */ lh $a3, 6($a0) +/* 0E4458 7F0AF928 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 0E445C 7F0AF92C 44810000 */ mtc1 $at, $f0 +/* 0E4460 7F0AF930 00077203 */ sra $t6, $a3, 8 +/* 0E4464 7F0AF934 31CF000F */ andi $t7, $t6, 0xf +/* 0E4468 7F0AF938 0007C103 */ sra $t8, $a3, 4 +/* 0E446C 7F0AF93C 3319000F */ andi $t9, $t8, 0xf +/* 0E4470 7F0AF940 000F70C0 */ sll $t6, $t7, 3 +/* 0E4474 7F0AF944 001978C0 */ sll $t7, $t9, 3 +/* 0E4478 7F0AF948 008F5021 */ addu $t2, $a0, $t7 +/* 0E447C 7F0AF94C 008E4821 */ addu $t1, $a0, $t6 +/* 0E4480 7F0AF950 85380008 */ lh $t8, 8($t1) +/* 0E4484 7F0AF954 85590008 */ lh $t9, 8($t2) +/* 0E4488 7F0AF958 30EC000F */ andi $t4, $a3, 0xf +/* 0E448C 7F0AF95C 000C68C0 */ sll $t5, $t4, 3 +/* 0E4490 7F0AF960 44982000 */ mtc1 $t8, $f4 +/* 0E4494 7F0AF964 44994000 */ mtc1 $t9, $f8 +/* 0E4498 7F0AF968 008D4021 */ addu $t0, $a0, $t5 +/* 0E449C 7F0AF96C 850C0008 */ lh $t4, 8($t0) +/* 0E44A0 7F0AF970 468021A0 */ cvt.s.w $f6, $f4 +/* 0E44A4 7F0AF974 3C0B8004 */ lui $t3, %hi(D_80040F48) +/* 0E44A8 7F0AF978 448C9000 */ mtc1 $t4, $f18 +/* 0E44AC 7F0AF97C 256B0F48 */ addiu $t3, %lo(D_80040F48) # addiu $t3, $t3, 0xf48 +/* 0E44B0 7F0AF980 468042A0 */ cvt.s.w $f10, $f8 +/* 0E44B4 7F0AF984 46809120 */ cvt.s.w $f4, $f18 +/* 0E44B8 7F0AF988 460A3400 */ add.s $f16, $f6, $f10 +/* 0E44BC 7F0AF98C C56A0000 */ lwc1 $f10, ($t3) +/* 0E44C0 7F0AF990 46102200 */ add.s $f8, $f4, $f16 +/* 0E44C4 7F0AF994 46004183 */ div.s $f6, $f8, $f0 +/* 0E44C8 7F0AF998 460A3482 */ mul.s $f18, $f6, $f10 +/* 0E44CC 7F0AF99C E4B20000 */ swc1 $f18, ($a1) +/* 0E44D0 7F0AF9A0 854E000A */ lh $t6, 0xa($t2) +/* 0E44D4 7F0AF9A4 852D000A */ lh $t5, 0xa($t1) +/* 0E44D8 7F0AF9A8 850F000A */ lh $t7, 0xa($t0) +/* 0E44DC 7F0AF9AC 448E4000 */ mtc1 $t6, $f8 +/* 0E44E0 7F0AF9B0 448D2000 */ mtc1 $t5, $f4 +/* 0E44E4 7F0AF9B4 448F9000 */ mtc1 $t7, $f18 +/* 0E44E8 7F0AF9B8 468041A0 */ cvt.s.w $f6, $f8 +/* 0E44EC 7F0AF9BC 46802420 */ cvt.s.w $f16, $f4 +/* 0E44F0 7F0AF9C0 46809120 */ cvt.s.w $f4, $f18 +/* 0E44F4 7F0AF9C4 46068280 */ add.s $f10, $f16, $f6 +/* 0E44F8 7F0AF9C8 C5660000 */ lwc1 $f6, ($t3) +/* 0E44FC 7F0AF9CC 460A2200 */ add.s $f8, $f4, $f10 +/* 0E4500 7F0AF9D0 46004403 */ div.s $f16, $f8, $f0 +/* 0E4504 7F0AF9D4 46068482 */ mul.s $f18, $f16, $f6 +/* 0E4508 7F0AF9D8 E4B20004 */ swc1 $f18, 4($a1) +/* 0E450C 7F0AF9DC 8559000C */ lh $t9, 0xc($t2) +/* 0E4510 7F0AF9E0 8538000C */ lh $t8, 0xc($t1) +/* 0E4514 7F0AF9E4 850C000C */ lh $t4, 0xc($t0) +/* 0E4518 7F0AF9E8 44994000 */ mtc1 $t9, $f8 +/* 0E451C 7F0AF9EC 44982000 */ mtc1 $t8, $f4 +/* 0E4520 7F0AF9F0 448C9000 */ mtc1 $t4, $f18 +/* 0E4524 7F0AF9F4 46804420 */ cvt.s.w $f16, $f8 +/* 0E4528 7F0AF9F8 468022A0 */ cvt.s.w $f10, $f4 +/* 0E452C 7F0AF9FC 46809120 */ cvt.s.w $f4, $f18 +/* 0E4530 7F0AFA00 46105180 */ add.s $f6, $f10, $f16 +/* 0E4534 7F0AFA04 C5700000 */ lwc1 $f16, ($t3) +/* 0E4538 7F0AFA08 46062200 */ add.s $f8, $f4, $f6 +/* 0E453C 7F0AFA0C 46004283 */ div.s $f10, $f8, $f0 +/* 0E4540 7F0AFA10 46105482 */ mul.s $f18, $f10, $f16 +/* 0E4544 7F0AFA14 03E00008 */ jr $ra +/* 0E4548 7F0AFA18 E4B20008 */ swc1 $f18, 8($a1) +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0AFA1C(void *arg0, s32 arg1, void *arg2) { + f32 sp1C; + s32 temp_a3; + void *temp_v0; + + // Node 0 + temp_a3 = ((s32) arg0->unk6 >> (8 - (arg1 * 4))); + temp_v0 = (arg0 + ((temp_a3 & 0xf) * 8)); + *arg2 = (f32) ((f32) temp_v0->unk8 * D_80040F48); + arg2->unk4 = (f32) ((f32) temp_v0->unkA * D_80040F48); + arg2->unk8 = (f32) ((f32) temp_v0->unkC * D_80040F48); + sub_GAME_7F0AF924(&sp1C, temp_a3); + *arg2 = (f32) ((sp1C * D_800585D8) + (D_800585DC * *arg2)); + arg2->unk4 = (f32) ((sp20 * D_800585D8) + (D_800585DC * arg2->unk4)); + arg2->unk8 = (f32) ((sp24 * D_800585D8) + (D_800585DC * arg2->unk8)); + return D_800585D8; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800585D8 +.word 0x3dcccccd /*0.1*/ +glabel D_800585DC +.word 0x3f666666 /*0.89999998*/ +.text +glabel sub_GAME_7F0AFA1C +/* 0E454C 7F0AFA1C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0E4550 7F0AFA20 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E4554 7F0AFA24 848E0006 */ lh $t6, 6($a0) +/* 0E4558 7F0AFA28 00057880 */ sll $t7, $a1, 2 +/* 0E455C 7F0AFA2C 24180008 */ li $t8, 8 +/* 0E4560 7F0AFA30 030FC823 */ subu $t9, $t8, $t7 +/* 0E4564 7F0AFA34 032E3807 */ srav $a3, $t6, $t9 +/* 0E4568 7F0AFA38 30E8000F */ andi $t0, $a3, 0xf +/* 0E456C 7F0AFA3C 000848C0 */ sll $t1, $t0, 3 +/* 0E4570 7F0AFA40 00891021 */ addu $v0, $a0, $t1 +/* 0E4574 7F0AFA44 844A0008 */ lh $t2, 8($v0) +/* 0E4578 7F0AFA48 3C038004 */ lui $v1, %hi(D_80040F48) +/* 0E457C 7F0AFA4C 24630F48 */ addiu $v1, %lo(D_80040F48) # addiu $v1, $v1, 0xf48 +/* 0E4580 7F0AFA50 448A2000 */ mtc1 $t2, $f4 +/* 0E4584 7F0AFA54 C4680000 */ lwc1 $f8, ($v1) +/* 0E4588 7F0AFA58 27A5001C */ addiu $a1, $sp, 0x1c +/* 0E458C 7F0AFA5C 468021A0 */ cvt.s.w $f6, $f4 +/* 0E4590 7F0AFA60 46083282 */ mul.s $f10, $f6, $f8 +/* 0E4594 7F0AFA64 E4CA0000 */ swc1 $f10, ($a2) +/* 0E4598 7F0AFA68 844B000A */ lh $t3, 0xa($v0) +/* 0E459C 7F0AFA6C C4640000 */ lwc1 $f4, ($v1) +/* 0E45A0 7F0AFA70 448B8000 */ mtc1 $t3, $f16 +/* 0E45A4 7F0AFA74 00000000 */ nop +/* 0E45A8 7F0AFA78 468084A0 */ cvt.s.w $f18, $f16 +/* 0E45AC 7F0AFA7C 46049182 */ mul.s $f6, $f18, $f4 +/* 0E45B0 7F0AFA80 E4C60004 */ swc1 $f6, 4($a2) +/* 0E45B4 7F0AFA84 844C000C */ lh $t4, 0xc($v0) +/* 0E45B8 7F0AFA88 C4700000 */ lwc1 $f16, ($v1) +/* 0E45BC 7F0AFA8C 448C4000 */ mtc1 $t4, $f8 +/* 0E45C0 7F0AFA90 00000000 */ nop +/* 0E45C4 7F0AFA94 468042A0 */ cvt.s.w $f10, $f8 +/* 0E45C8 7F0AFA98 46105482 */ mul.s $f18, $f10, $f16 +/* 0E45CC 7F0AFA9C E4D20008 */ swc1 $f18, 8($a2) +/* 0E45D0 7F0AFAA0 0FC2BE49 */ jal sub_GAME_7F0AF924 +/* 0E45D4 7F0AFAA4 AFA60030 */ sw $a2, 0x30($sp) +/* 0E45D8 7F0AFAA8 3C018006 */ lui $at, %hi(D_800585D8) +/* 0E45DC 7F0AFAAC C42085D8 */ lwc1 $f0, %lo(D_800585D8)($at) +/* 0E45E0 7F0AFAB0 8FA60030 */ lw $a2, 0x30($sp) +/* 0E45E4 7F0AFAB4 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0E45E8 7F0AFAB8 3C018006 */ lui $at, %hi(D_800585DC) +/* 0E45EC 7F0AFABC C42285DC */ lwc1 $f2, %lo(D_800585DC)($at) +/* 0E45F0 7F0AFAC0 46002182 */ mul.s $f6, $f4, $f0 +/* 0E45F4 7F0AFAC4 C4C80000 */ lwc1 $f8, ($a2) +/* 0E45F8 7F0AFAC8 46081282 */ mul.s $f10, $f2, $f8 +/* 0E45FC 7F0AFACC C4C80004 */ lwc1 $f8, 4($a2) +/* 0E4600 7F0AFAD0 460A3400 */ add.s $f16, $f6, $f10 +/* 0E4604 7F0AFAD4 E4D00000 */ swc1 $f16, ($a2) +/* 0E4608 7F0AFAD8 C7B20020 */ lwc1 $f18, 0x20($sp) +/* 0E460C 7F0AFADC 46009102 */ mul.s $f4, $f18, $f0 +/* 0E4610 7F0AFAE0 00000000 */ nop +/* 0E4614 7F0AFAE4 46081182 */ mul.s $f6, $f2, $f8 +/* 0E4618 7F0AFAE8 C4C80008 */ lwc1 $f8, 8($a2) +/* 0E461C 7F0AFAEC 46062280 */ add.s $f10, $f4, $f6 +/* 0E4620 7F0AFAF0 E4CA0004 */ swc1 $f10, 4($a2) +/* 0E4624 7F0AFAF4 C7B00024 */ lwc1 $f16, 0x24($sp) +/* 0E4628 7F0AFAF8 46008482 */ mul.s $f18, $f16, $f0 +/* 0E462C 7F0AFAFC 00000000 */ nop +/* 0E4630 7F0AFB00 46081102 */ mul.s $f4, $f2, $f8 +/* 0E4634 7F0AFB04 46049180 */ add.s $f6, $f18, $f4 +/* 0E4638 7F0AFB08 E4C60008 */ swc1 $f6, 8($a2) +/* 0E463C 7F0AFB0C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E4640 7F0AFB10 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0E4644 7F0AFB14 03E00008 */ jr $ra +/* 0E4648 7F0AFB18 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0AFB1C(void *arg0, void *arg1) { + f32 sp4; + f32 sp8; + f32 spC; + f32 temp_f18; + f32 temp_f8; + + // Node 0 + sp4 = (f32) (*arg1 - *arg0); + temp_f18 = (arg1->unk4 - arg0->unk4); + sp8 = temp_f18; + temp_f8 = (arg1->unk8 - arg0->unk8); + spC = temp_f8; + return ((temp_f8 * temp_f8) + ((sp4 * sp4) + (temp_f18 * temp_f18))); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AFB1C +/* 0E464C 7F0AFB1C C4A40000 */ lwc1 $f4, ($a1) +/* 0E4650 7F0AFB20 C4860000 */ lwc1 $f6, ($a0) +/* 0E4654 7F0AFB24 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 0E4658 7F0AFB28 46062201 */ sub.s $f8, $f4, $f6 +/* 0E465C 7F0AFB2C E7A80004 */ swc1 $f8, 4($sp) +/* 0E4660 7F0AFB30 C4900004 */ lwc1 $f16, 4($a0) +/* 0E4664 7F0AFB34 C4AA0004 */ lwc1 $f10, 4($a1) +/* 0E4668 7F0AFB38 46105481 */ sub.s $f18, $f10, $f16 +/* 0E466C 7F0AFB3C C7AA0004 */ lwc1 $f10, 4($sp) +/* 0E4670 7F0AFB40 E7B20008 */ swc1 $f18, 8($sp) +/* 0E4674 7F0AFB44 C4860008 */ lwc1 $f6, 8($a0) +/* 0E4678 7F0AFB48 C4A40008 */ lwc1 $f4, 8($a1) +/* 0E467C 7F0AFB4C 460A5402 */ mul.s $f16, $f10, $f10 +/* 0E4680 7F0AFB50 C7B20008 */ lwc1 $f18, 8($sp) +/* 0E4684 7F0AFB54 46062201 */ sub.s $f8, $f4, $f6 +/* 0E4688 7F0AFB58 46129102 */ mul.s $f4, $f18, $f18 +/* 0E468C 7F0AFB5C E7A8000C */ swc1 $f8, 0xc($sp) +/* 0E4690 7F0AFB60 C7A8000C */ lwc1 $f8, 0xc($sp) +/* 0E4694 7F0AFB64 27BD0010 */ addiu $sp, $sp, 0x10 +/* 0E4698 7F0AFB68 46084282 */ mul.s $f10, $f8, $f8 +/* 0E469C 7F0AFB6C 46048180 */ add.s $f6, $f16, $f4 +/* 0E46A0 7F0AFB70 03E00008 */ jr $ra +/* 0E46A4 7F0AFB74 46065000 */ add.s $f0, $f10, $f6 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AFB78(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AFB78 +/* 0E46A8 7F0AFB78 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 0E46AC 7F0AFB7C AFBF004C */ sw $ra, 0x4c($sp) +/* 0E46B0 7F0AFB80 AFBE0048 */ sw $fp, 0x48($sp) +/* 0E46B4 7F0AFB84 AFB70044 */ sw $s7, 0x44($sp) +/* 0E46B8 7F0AFB88 AFB60040 */ sw $s6, 0x40($sp) +/* 0E46BC 7F0AFB8C AFB5003C */ sw $s5, 0x3c($sp) +/* 0E46C0 7F0AFB90 AFB40038 */ sw $s4, 0x38($sp) +/* 0E46C4 7F0AFB94 AFB30034 */ sw $s3, 0x34($sp) +/* 0E46C8 7F0AFB98 AFB20030 */ sw $s2, 0x30($sp) +/* 0E46CC 7F0AFB9C AFB1002C */ sw $s1, 0x2c($sp) +/* 0E46D0 7F0AFBA0 AFB00028 */ sw $s0, 0x28($sp) +/* 0E46D4 7F0AFBA4 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0E46D8 7F0AFBA8 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0E46DC 7F0AFBAC AFA00078 */ sw $zero, 0x78($sp) +/* 0E46E0 7F0AFBB0 C4840000 */ lwc1 $f4, ($a0) +/* 0E46E4 7F0AFBB4 3C0E8008 */ lui $t6, %hi(clippingfile) +/* 0E46E8 7F0AFBB8 8DCEB120 */ lw $t6, %lo(clippingfile)($t6) +/* 0E46EC 7F0AFBBC E7A40064 */ swc1 $f4, 0x64($sp) +/* 0E46F0 7F0AFBC0 C4A60000 */ lwc1 $f6, ($a1) +/* 0E46F4 7F0AFBC4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0E46F8 7F0AFBC8 4487B000 */ mtc1 $a3, $f22 +/* 0E46FC 7F0AFBCC E7A60068 */ swc1 $f6, 0x68($sp) +/* 0E4700 7F0AFBD0 C4C80000 */ lwc1 $f8, ($a2) +/* 0E4704 7F0AFBD4 4481A000 */ mtc1 $at, $f20 +/* 0E4708 7F0AFBD8 00809825 */ move $s3, $a0 +/* 0E470C 7F0AFBDC E7A8006C */ swc1 $f8, 0x6c($sp) +/* 0E4710 7F0AFBE0 8DD10004 */ lw $s1, 4($t6) +/* 0E4714 7F0AFBE4 00A0A025 */ move $s4, $a1 +/* 0E4718 7F0AFBE8 00C0A825 */ move $s5, $a2 +/* 0E471C 7F0AFBEC 8E2F0000 */ lw $t7, ($s1) +/* 0E4720 7F0AFBF0 24160003 */ li $s6, 3 +/* 0E4724 7F0AFBF4 27B7007C */ addiu $s7, $sp, 0x7c +/* 0E4728 7F0AFBF8 11E00039 */ beqz $t7, .L7F0AFCE0 +/* 0E472C 7F0AFBFC 241E0004 */ li $fp, 4 +/* 0E4730 7F0AFC00 27B20058 */ addiu $s2, $sp, 0x58 +/* 0E4734 7F0AFC04 96380000 */ lhu $t8, ($s1) +.L7F0AFC08: +/* 0E4738 7F0AFC08 24010001 */ li $at, 1 +/* 0E473C 7F0AFC0C 0018CBC3 */ sra $t9, $t8, 0xf +/* 0E4740 7F0AFC10 33280001 */ andi $t0, $t9, 1 +/* 0E4744 7F0AFC14 51010029 */ beql $t0, $at, .L7F0AFCBC +/* 0E4748 7F0AFC18 86220006 */ lh $v0, 6($s1) +/* 0E474C 7F0AFC1C 0FC2BDD8 */ jal sub_GAME_7F0AF760 +/* 0E4750 7F0AFC20 02202025 */ move $a0, $s1 +/* 0E4754 7F0AFC24 14400024 */ bnez $v0, .L7F0AFCB8 +/* 0E4758 7F0AFC28 00008025 */ move $s0, $zero +.L7F0AFC2C: +/* 0E475C 7F0AFC2C 16160006 */ bne $s0, $s6, .L7F0AFC48 +/* 0E4760 7F0AFC30 02202025 */ move $a0, $s1 +/* 0E4764 7F0AFC34 02202025 */ move $a0, $s1 +/* 0E4768 7F0AFC38 0FC2BE49 */ jal sub_GAME_7F0AF924 +/* 0E476C 7F0AFC3C 02402825 */ move $a1, $s2 +/* 0E4770 7F0AFC40 10000005 */ b .L7F0AFC58 +/* 0E4774 7F0AFC44 4407B000 */ mfc1 $a3, $f22 +.L7F0AFC48: +/* 0E4778 7F0AFC48 02002825 */ move $a1, $s0 +/* 0E477C 7F0AFC4C 0FC2BE87 */ jal sub_GAME_7F0AFA1C +/* 0E4780 7F0AFC50 02403025 */ move $a2, $s2 +/* 0E4784 7F0AFC54 4407B000 */ mfc1 $a3, $f22 +.L7F0AFC58: +/* 0E4788 7F0AFC58 AFB1007C */ sw $s1, 0x7c($sp) +/* 0E478C 7F0AFC5C 02E02025 */ move $a0, $s7 +/* 0E4790 7F0AFC60 8FA50058 */ lw $a1, 0x58($sp) +/* 0E4794 7F0AFC64 0FC2C834 */ jal sub_GAME_7F0B20D0 +/* 0E4798 7F0AFC68 8FA60060 */ lw $a2, 0x60($sp) +/* 0E479C 7F0AFC6C 0441000F */ bgez $v0, .L7F0AFCAC +/* 0E47A0 7F0AFC70 02402025 */ move $a0, $s2 +/* 0E47A4 7F0AFC74 0FC2BEC7 */ jal sub_GAME_7F0AFB1C +/* 0E47A8 7F0AFC78 27A50064 */ addiu $a1, $sp, 0x64 +/* 0E47AC 7F0AFC7C 4614003C */ c.lt.s $f0, $f20 +/* 0E47B0 7F0AFC80 00000000 */ nop +/* 0E47B4 7F0AFC84 4502000A */ bc1fl .L7F0AFCB0 +/* 0E47B8 7F0AFC88 26100001 */ addiu $s0, $s0, 1 +/* 0E47BC 7F0AFC8C C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 0E47C0 7F0AFC90 AFB10078 */ sw $s1, 0x78($sp) +/* 0E47C4 7F0AFC94 46000506 */ mov.s $f20, $f0 +/* 0E47C8 7F0AFC98 E66A0000 */ swc1 $f10, ($s3) +/* 0E47CC 7F0AFC9C C7B0005C */ lwc1 $f16, 0x5c($sp) +/* 0E47D0 7F0AFCA0 E6900000 */ swc1 $f16, ($s4) +/* 0E47D4 7F0AFCA4 C7B20060 */ lwc1 $f18, 0x60($sp) +/* 0E47D8 7F0AFCA8 E6B20000 */ swc1 $f18, ($s5) +.L7F0AFCAC: +/* 0E47DC 7F0AFCAC 26100001 */ addiu $s0, $s0, 1 +.L7F0AFCB0: +/* 0E47E0 7F0AFCB0 161EFFDE */ bne $s0, $fp, .L7F0AFC2C +/* 0E47E4 7F0AFCB4 00000000 */ nop +.L7F0AFCB8: +/* 0E47E8 7F0AFCB8 86220006 */ lh $v0, 6($s1) +.L7F0AFCBC: +/* 0E47EC 7F0AFCBC 3C0B8004 */ lui $t3, %hi(list_of_tilesizes) +/* 0E47F0 7F0AFCC0 00024B03 */ sra $t1, $v0, 0xc +/* 0E47F4 7F0AFCC4 312A000F */ andi $t2, $t1, 0xf +/* 0E47F8 7F0AFCC8 016A5821 */ addu $t3, $t3, $t2 +/* 0E47FC 7F0AFCCC 916B0F4C */ lbu $t3, %lo(list_of_tilesizes)($t3) +/* 0E4800 7F0AFCD0 01718821 */ addu $s1, $t3, $s1 +/* 0E4804 7F0AFCD4 8E2C0000 */ lw $t4, ($s1) +/* 0E4808 7F0AFCD8 5580FFCB */ bnezl $t4, .L7F0AFC08 +/* 0E480C 7F0AFCDC 96380000 */ lhu $t8, ($s1) +.L7F0AFCE0: +/* 0E4810 7F0AFCE0 8FBF004C */ lw $ra, 0x4c($sp) +/* 0E4814 7F0AFCE4 8FA20078 */ lw $v0, 0x78($sp) +/* 0E4818 7F0AFCE8 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0E481C 7F0AFCEC D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0E4820 7F0AFCF0 8FB00028 */ lw $s0, 0x28($sp) +/* 0E4824 7F0AFCF4 8FB1002C */ lw $s1, 0x2c($sp) +/* 0E4828 7F0AFCF8 8FB20030 */ lw $s2, 0x30($sp) +/* 0E482C 7F0AFCFC 8FB30034 */ lw $s3, 0x34($sp) +/* 0E4830 7F0AFD00 8FB40038 */ lw $s4, 0x38($sp) +/* 0E4834 7F0AFD04 8FB5003C */ lw $s5, 0x3c($sp) +/* 0E4838 7F0AFD08 8FB60040 */ lw $s6, 0x40($sp) +/* 0E483C 7F0AFD0C 8FB70044 */ lw $s7, 0x44($sp) +/* 0E4840 7F0AFD10 8FBE0048 */ lw $fp, 0x48($sp) +/* 0E4844 7F0AFD14 03E00008 */ jr $ra +/* 0E4848 7F0AFD18 27BD0088 */ addiu $sp, $sp, 0x88 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0AFD1C(void *arg0, s32 arg1, f32 arg2, f32 arg3) { + void *sp18; + void *sp1C; + f32 sp40; + s32 temp_hi; + void *temp_v0; + void *temp_v1; + f32 temp_f2; + f32 temp_f14; + ? temp_ret; + f32 temp_f0; + f32 temp_f2_2; + + // Node 0 + temp_hi = ((s32) (arg1 + 1) % (s32) (((s32) arg0->unk6 >> 0xc) & 0xf)); + temp_v0 = (arg0 + (temp_hi * 8)); + temp_v1 = (arg0 + (arg1 * 8)); + temp_f2 = (f32) (temp_v0->unk8 - temp_v1->unk8); + temp_f14 = (f32) (temp_v0->unkC - temp_v1->unkC); + sp40 = temp_f2; + sp18 = temp_v1; + sp1C = temp_v0; + temp_ret = sqrtf(((temp_f2 * temp_f2) + (temp_f14 * temp_f14)), temp_f14, temp_hi); + if (temp_ret != 0.0f) + { + // Node 2 + // Node 3 + return ((((arg3 - (f32) temp_v1->unkC) * -temp_f2) + (sp3C * (arg2 - (f32) temp_v1->unk8))) / temp_ret); + } + // Node 1 + temp_f0 = (arg2 - (f32) temp_v0->unk8); + temp_f2_2 = (arg3 - (f32) temp_v0->unkC); + return ((((arg3 - (f32) temp_v1->unkC) * -temp_f2) + (sp3C * (arg2 - (f32) temp_v1->unk8))) / temp_ret); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AFD1C +/* 0E484C 7F0AFD1C 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0E4850 7F0AFD20 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E4854 7F0AFD24 AFA60050 */ sw $a2, 0x50($sp) +/* 0E4858 7F0AFD28 AFA70054 */ sw $a3, 0x54($sp) +/* 0E485C 7F0AFD2C 848F0006 */ lh $t7, 6($a0) +/* 0E4860 7F0AFD30 24AE0001 */ addiu $t6, $a1, 1 +/* 0E4864 7F0AFD34 000548C0 */ sll $t1, $a1, 3 +/* 0E4868 7F0AFD38 000FC303 */ sra $t8, $t7, 0xc +/* 0E486C 7F0AFD3C 3319000F */ andi $t9, $t8, 0xf +/* 0E4870 7F0AFD40 01D9001A */ div $zero, $t6, $t9 +/* 0E4874 7F0AFD44 00003010 */ mfhi $a2 +/* 0E4878 7F0AFD48 000640C0 */ sll $t0, $a2, 3 +/* 0E487C 7F0AFD4C 00881021 */ addu $v0, $a0, $t0 +/* 0E4880 7F0AFD50 00891821 */ addu $v1, $a0, $t1 +/* 0E4884 7F0AFD54 846B0008 */ lh $t3, 8($v1) +/* 0E4888 7F0AFD58 844A0008 */ lh $t2, 8($v0) +/* 0E488C 7F0AFD5C 846F000C */ lh $t7, 0xc($v1) +/* 0E4890 7F0AFD60 844D000C */ lh $t5, 0xc($v0) +/* 0E4894 7F0AFD64 014B6023 */ subu $t4, $t2, $t3 +/* 0E4898 7F0AFD68 448C2000 */ mtc1 $t4, $f4 +/* 0E489C 7F0AFD6C 01AFC023 */ subu $t8, $t5, $t7 +/* 0E48A0 7F0AFD70 44983000 */ mtc1 $t8, $f6 +/* 0E48A4 7F0AFD74 468020A0 */ cvt.s.w $f2, $f4 +/* 0E48A8 7F0AFD78 17200002 */ bnez $t9, .L7F0AFD84 +/* 0E48AC 7F0AFD7C 00000000 */ nop +/* 0E48B0 7F0AFD80 0007000D */ break 7 +.L7F0AFD84: +/* 0E48B4 7F0AFD84 2401FFFF */ li $at, -1 +/* 0E48B8 7F0AFD88 17210004 */ bne $t9, $at, .L7F0AFD9C +/* 0E48BC 7F0AFD8C 3C018000 */ lui $at, 0x8000 +/* 0E48C0 7F0AFD90 15C10002 */ bne $t6, $at, .L7F0AFD9C +/* 0E48C4 7F0AFD94 00000000 */ nop +/* 0E48C8 7F0AFD98 0006000D */ break 6 +.L7F0AFD9C: +/* 0E48CC 7F0AFD9C 468033A0 */ cvt.s.w $f14, $f6 +/* 0E48D0 7F0AFDA0 46021202 */ mul.s $f8, $f2, $f2 +/* 0E48D4 7F0AFDA4 E7A20040 */ swc1 $f2, 0x40($sp) +/* 0E48D8 7F0AFDA8 AFA30018 */ sw $v1, 0x18($sp) +/* 0E48DC 7F0AFDAC AFA2001C */ sw $v0, 0x1c($sp) +/* 0E48E0 7F0AFDB0 460E7282 */ mul.s $f10, $f14, $f14 +/* 0E48E4 7F0AFDB4 E7AE003C */ swc1 $f14, 0x3c($sp) +/* 0E48E8 7F0AFDB8 0C007DF8 */ jal sqrtf +/* 0E48EC 7F0AFDBC 460A4300 */ add.s $f12, $f8, $f10 +/* 0E48F0 7F0AFDC0 44802000 */ mtc1 $zero, $f4 +/* 0E48F4 7F0AFDC4 8FA2001C */ lw $v0, 0x1c($sp) +/* 0E48F8 7F0AFDC8 8FA30018 */ lw $v1, 0x18($sp) +/* 0E48FC 7F0AFDCC 46040032 */ c.eq.s $f0, $f4 +/* 0E4900 7F0AFDD0 C7A20040 */ lwc1 $f2, 0x40($sp) +/* 0E4904 7F0AFDD4 C7AE003C */ lwc1 $f14, 0x3c($sp) +/* 0E4908 7F0AFDD8 C7B20050 */ lwc1 $f18, 0x50($sp) +/* 0E490C 7F0AFDDC 45000011 */ bc1f .L7F0AFE24 +/* 0E4910 7F0AFDE0 46000406 */ mov.s $f16, $f0 +/* 0E4914 7F0AFDE4 844E0008 */ lh $t6, 8($v0) +/* 0E4918 7F0AFDE8 8459000C */ lh $t9, 0xc($v0) +/* 0E491C 7F0AFDEC C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 0E4920 7F0AFDF0 448E3000 */ mtc1 $t6, $f6 +/* 0E4924 7F0AFDF4 44992000 */ mtc1 $t9, $f4 +/* 0E4928 7F0AFDF8 46803220 */ cvt.s.w $f8, $f6 +/* 0E492C 7F0AFDFC 468021A0 */ cvt.s.w $f6, $f4 +/* 0E4930 7F0AFE00 46089001 */ sub.s $f0, $f18, $f8 +/* 0E4934 7F0AFE04 46065081 */ sub.s $f2, $f10, $f6 +/* 0E4938 7F0AFE08 46000202 */ mul.s $f8, $f0, $f0 +/* 0E493C 7F0AFE0C 00000000 */ nop +/* 0E4940 7F0AFE10 46021102 */ mul.s $f4, $f2, $f2 +/* 0E4944 7F0AFE14 0C007DF8 */ jal sqrtf +/* 0E4948 7F0AFE18 46044300 */ add.s $f12, $f8, $f4 +/* 0E494C 7F0AFE1C 10000011 */ b .L7F0AFE64 +/* 0E4950 7F0AFE20 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0AFE24: +/* 0E4954 7F0AFE24 8468000C */ lh $t0, 0xc($v1) +/* 0E4958 7F0AFE28 C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 0E495C 7F0AFE2C 84690008 */ lh $t1, 8($v1) +/* 0E4960 7F0AFE30 44883000 */ mtc1 $t0, $f6 +/* 0E4964 7F0AFE34 00000000 */ nop +/* 0E4968 7F0AFE38 46803220 */ cvt.s.w $f8, $f6 +/* 0E496C 7F0AFE3C 46001187 */ neg.s $f6, $f2 +/* 0E4970 7F0AFE40 46085101 */ sub.s $f4, $f10, $f8 +/* 0E4974 7F0AFE44 44894000 */ mtc1 $t1, $f8 +/* 0E4978 7F0AFE48 46062282 */ mul.s $f10, $f4, $f6 +/* 0E497C 7F0AFE4C 46804120 */ cvt.s.w $f4, $f8 +/* 0E4980 7F0AFE50 46049181 */ sub.s $f6, $f18, $f4 +/* 0E4984 7F0AFE54 46067202 */ mul.s $f8, $f14, $f6 +/* 0E4988 7F0AFE58 46085300 */ add.s $f12, $f10, $f8 +/* 0E498C 7F0AFE5C 46106003 */ div.s $f0, $f12, $f16 +/* 0E4990 7F0AFE60 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0AFE64: +/* 0E4994 7F0AFE64 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0E4998 7F0AFE68 03E00008 */ jr $ra +/* 0E499C 7F0AFE6C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0AFE70(void *arg0, s32 arg1, f32 arg2, f32 arg3) { + f32 sp40; + s32 temp_a1; + void *temp_a2; + void *temp_a0; + f32 temp_f2; + f32 temp_f14; + ? temp_ret; + f32 temp_f0; + f32 temp_f2_2; + s32 phi_v1; + + // Node 0 + if (arg1 != 2) + { + // Node 1 + phi_v1 = (arg1 + 1); + } + else + { + // Node 2 + phi_v1 = 0; + } + // Node 3 + temp_a1 = ((s32) arg0->unk6 >> (8 - (arg1 * 4))); + temp_a2 = (arg0 + ((temp_a1 & 0xf) * 8)); + temp_a0 = (arg0 + ((((s32) arg0->unk6 >> (8 - (phi_v1 * 4))) & 0xf) * 8)); + temp_f2 = (f32) (temp_a0->unk8 - temp_a2->unk8); + temp_f14 = (f32) (temp_a0->unkC - temp_a2->unkC); + sp40 = temp_f2; + temp_ret = sqrtf(((temp_f2 * temp_f2) + (temp_f14 * temp_f14)), temp_f14, temp_a0, temp_a1, temp_a2, arg0); + if (temp_ret != 0.0f) + { + // Node 5 + // Node 6 + return ((((arg3 - (f32) sp18->unkC) * -temp_f2) + (sp3C * (arg2 - (f32) sp18->unk8))) / temp_ret); + } + // Node 4 + temp_f0 = (arg2 - (f32) sp1C->unk8); + temp_f2_2 = (arg3 - (f32) sp1C->unkC); + return ((((arg3 - (f32) sp18->unkC) * -temp_f2) + (sp3C * (arg2 - (f32) sp18->unk8))) / temp_ret); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AFE70 +/* 0E49A0 7F0AFE70 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0E49A4 7F0AFE74 AFA70054 */ sw $a3, 0x54($sp) +/* 0E49A8 7F0AFE78 24010002 */ li $at, 2 +/* 0E49AC 7F0AFE7C 00803825 */ move $a3, $a0 +/* 0E49B0 7F0AFE80 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E49B4 7F0AFE84 AFA40048 */ sw $a0, 0x48($sp) +/* 0E49B8 7F0AFE88 10A10003 */ beq $a1, $at, .L7F0AFE98 +/* 0E49BC 7F0AFE8C AFA60050 */ sw $a2, 0x50($sp) +/* 0E49C0 7F0AFE90 10000002 */ b .L7F0AFE9C +/* 0E49C4 7F0AFE94 24A30001 */ addiu $v1, $a1, 1 +.L7F0AFE98: +/* 0E49C8 7F0AFE98 00001825 */ move $v1, $zero +.L7F0AFE9C: +/* 0E49CC 7F0AFE9C 84E20006 */ lh $v0, 6($a3) +/* 0E49D0 7F0AFEA0 24080008 */ li $t0, 8 +/* 0E49D4 7F0AFEA4 00057080 */ sll $t6, $a1, 2 +/* 0E49D8 7F0AFEA8 0003C880 */ sll $t9, $v1, 2 +/* 0E49DC 7F0AFEAC 010E7823 */ subu $t7, $t0, $t6 +/* 0E49E0 7F0AFEB0 01194823 */ subu $t1, $t0, $t9 +/* 0E49E4 7F0AFEB4 01E22807 */ srav $a1, $v0, $t7 +/* 0E49E8 7F0AFEB8 01221807 */ srav $v1, $v0, $t1 +/* 0E49EC 7F0AFEBC 30B8000F */ andi $t8, $a1, 0xf +/* 0E49F0 7F0AFEC0 306A000F */ andi $t2, $v1, 0xf +/* 0E49F4 7F0AFEC4 000A58C0 */ sll $t3, $t2, 3 +/* 0E49F8 7F0AFEC8 001860C0 */ sll $t4, $t8, 3 +/* 0E49FC 7F0AFECC 00EC3021 */ addu $a2, $a3, $t4 +/* 0E4A00 7F0AFED0 00EB2021 */ addu $a0, $a3, $t3 +/* 0E4A04 7F0AFED4 848D0008 */ lh $t5, 8($a0) +/* 0E4A08 7F0AFED8 84CE0008 */ lh $t6, 8($a2) +/* 0E4A0C 7F0AFEDC 8498000C */ lh $t8, 0xc($a0) +/* 0E4A10 7F0AFEE0 84D9000C */ lh $t9, 0xc($a2) +/* 0E4A14 7F0AFEE4 01AE7823 */ subu $t7, $t5, $t6 +/* 0E4A18 7F0AFEE8 448F2000 */ mtc1 $t7, $f4 +/* 0E4A1C 7F0AFEEC 03194823 */ subu $t1, $t8, $t9 +/* 0E4A20 7F0AFEF0 44893000 */ mtc1 $t1, $f6 +/* 0E4A24 7F0AFEF4 468020A0 */ cvt.s.w $f2, $f4 +/* 0E4A28 7F0AFEF8 AFA60018 */ sw $a2, 0x18($sp) +/* 0E4A2C 7F0AFEFC AFA4001C */ sw $a0, 0x1c($sp) +/* 0E4A30 7F0AFF00 468033A0 */ cvt.s.w $f14, $f6 +/* 0E4A34 7F0AFF04 46021202 */ mul.s $f8, $f2, $f2 +/* 0E4A38 7F0AFF08 E7A20040 */ swc1 $f2, 0x40($sp) +/* 0E4A3C 7F0AFF0C 460E7282 */ mul.s $f10, $f14, $f14 +/* 0E4A40 7F0AFF10 E7AE003C */ swc1 $f14, 0x3c($sp) +/* 0E4A44 7F0AFF14 0C007DF8 */ jal sqrtf +/* 0E4A48 7F0AFF18 460A4300 */ add.s $f12, $f8, $f10 +/* 0E4A4C 7F0AFF1C 44802000 */ mtc1 $zero, $f4 +/* 0E4A50 7F0AFF20 8FA4001C */ lw $a0, 0x1c($sp) +/* 0E4A54 7F0AFF24 8FA60018 */ lw $a2, 0x18($sp) +/* 0E4A58 7F0AFF28 46040032 */ c.eq.s $f0, $f4 +/* 0E4A5C 7F0AFF2C C7A20040 */ lwc1 $f2, 0x40($sp) +/* 0E4A60 7F0AFF30 C7AE003C */ lwc1 $f14, 0x3c($sp) +/* 0E4A64 7F0AFF34 C7B20050 */ lwc1 $f18, 0x50($sp) +/* 0E4A68 7F0AFF38 45000011 */ bc1f .L7F0AFF80 +/* 0E4A6C 7F0AFF3C 46000406 */ mov.s $f16, $f0 +/* 0E4A70 7F0AFF40 848A0008 */ lh $t2, 8($a0) +/* 0E4A74 7F0AFF44 848B000C */ lh $t3, 0xc($a0) +/* 0E4A78 7F0AFF48 C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 0E4A7C 7F0AFF4C 448A3000 */ mtc1 $t2, $f6 +/* 0E4A80 7F0AFF50 448B2000 */ mtc1 $t3, $f4 +/* 0E4A84 7F0AFF54 46803220 */ cvt.s.w $f8, $f6 +/* 0E4A88 7F0AFF58 468021A0 */ cvt.s.w $f6, $f4 +/* 0E4A8C 7F0AFF5C 46089001 */ sub.s $f0, $f18, $f8 +/* 0E4A90 7F0AFF60 46065081 */ sub.s $f2, $f10, $f6 +/* 0E4A94 7F0AFF64 46000202 */ mul.s $f8, $f0, $f0 +/* 0E4A98 7F0AFF68 00000000 */ nop +/* 0E4A9C 7F0AFF6C 46021102 */ mul.s $f4, $f2, $f2 +/* 0E4AA0 7F0AFF70 0C007DF8 */ jal sqrtf +/* 0E4AA4 7F0AFF74 46044300 */ add.s $f12, $f8, $f4 +/* 0E4AA8 7F0AFF78 10000011 */ b .L7F0AFFC0 +/* 0E4AAC 7F0AFF7C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0AFF80: +/* 0E4AB0 7F0AFF80 84CC000C */ lh $t4, 0xc($a2) +/* 0E4AB4 7F0AFF84 C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 0E4AB8 7F0AFF88 84CD0008 */ lh $t5, 8($a2) +/* 0E4ABC 7F0AFF8C 448C3000 */ mtc1 $t4, $f6 +/* 0E4AC0 7F0AFF90 00000000 */ nop +/* 0E4AC4 7F0AFF94 46803220 */ cvt.s.w $f8, $f6 +/* 0E4AC8 7F0AFF98 46001187 */ neg.s $f6, $f2 +/* 0E4ACC 7F0AFF9C 46085101 */ sub.s $f4, $f10, $f8 +/* 0E4AD0 7F0AFFA0 448D4000 */ mtc1 $t5, $f8 +/* 0E4AD4 7F0AFFA4 46062282 */ mul.s $f10, $f4, $f6 +/* 0E4AD8 7F0AFFA8 46804120 */ cvt.s.w $f4, $f8 +/* 0E4ADC 7F0AFFAC 46049181 */ sub.s $f6, $f18, $f4 +/* 0E4AE0 7F0AFFB0 46067202 */ mul.s $f8, $f14, $f6 +/* 0E4AE4 7F0AFFB4 46085300 */ add.s $f12, $f10, $f8 +/* 0E4AE8 7F0AFFB8 46106003 */ div.s $f0, $f12, $f16 +/* 0E4AEC 7F0AFFBC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0AFFC0: +/* 0E4AF0 7F0AFFC0 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0E4AF4 7F0AFFC4 03E00008 */ jr $ra +/* 0E4AF8 7F0AFFC8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0AFFCC(f32 arg2, f32 arg3) { + // Node 0 + return (sub_GAME_7F0AFD1C(arg2, arg3, (arg2 * D_80040F44), (arg3 * D_80040F44)) * D_80040F48); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AFFCC +/* 0E4AFC 7F0AFFCC 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E4B00 7F0AFFD0 44866000 */ mtc1 $a2, $f12 +/* 0E4B04 7F0AFFD4 C4200F44 */ lwc1 $f0, %lo(D_80040F44)($at) +/* 0E4B08 7F0AFFD8 44877000 */ mtc1 $a3, $f14 +/* 0E4B0C 7F0AFFDC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E4B10 7F0AFFE0 46006102 */ mul.s $f4, $f12, $f0 +/* 0E4B14 7F0AFFE4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E4B18 7F0AFFE8 46007182 */ mul.s $f6, $f14, $f0 +/* 0E4B1C 7F0AFFEC 44062000 */ mfc1 $a2, $f4 +/* 0E4B20 7F0AFFF0 44073000 */ mfc1 $a3, $f6 +/* 0E4B24 7F0AFFF4 0FC2BF47 */ jal sub_GAME_7F0AFD1C +/* 0E4B28 7F0AFFF8 00000000 */ nop +/* 0E4B2C 7F0AFFFC 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E4B30 7F0B0000 C4280F48 */ lwc1 $f8, %lo(D_80040F48)($at) +/* 0E4B34 7F0B0004 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E4B38 7F0B0008 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E4B3C 7F0B000C 46080002 */ mul.s $f0, $f0, $f8 +/* 0E4B40 7F0B0010 03E00008 */ jr $ra +/* 0E4B44 7F0B0014 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B0018(f32 arg2, f32 arg3) { + // Node 0 + return (sub_GAME_7F0AFE70(arg2, arg3, (arg2 * D_80040F44), (arg3 * D_80040F44)) * D_80040F48); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0018 +/* 0E4B48 7F0B0018 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E4B4C 7F0B001C 44866000 */ mtc1 $a2, $f12 +/* 0E4B50 7F0B0020 C4200F44 */ lwc1 $f0, %lo(D_80040F44)($at) +/* 0E4B54 7F0B0024 44877000 */ mtc1 $a3, $f14 +/* 0E4B58 7F0B0028 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E4B5C 7F0B002C 46006102 */ mul.s $f4, $f12, $f0 +/* 0E4B60 7F0B0030 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E4B64 7F0B0034 46007182 */ mul.s $f6, $f14, $f0 +/* 0E4B68 7F0B0038 44062000 */ mfc1 $a2, $f4 +/* 0E4B6C 7F0B003C 44073000 */ mfc1 $a3, $f6 +/* 0E4B70 7F0B0040 0FC2BF9C */ jal sub_GAME_7F0AFE70 +/* 0E4B74 7F0B0044 00000000 */ nop +/* 0E4B78 7F0B0048 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E4B7C 7F0B004C C4280F48 */ lwc1 $f8, %lo(D_80040F48)($at) +/* 0E4B80 7F0B0050 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E4B84 7F0B0054 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E4B88 7F0B0058 46080002 */ mul.s $f0, $f0, $f8 +/* 0E4B8C 7F0B005C 03E00008 */ jr $ra +/* 0E4B90 7F0B0060 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B0064(s32 arg0, s32 arg1, f32 arg2, f32 arg3) { + void *temp_v0; + f32 temp_f18; + f32 temp_f14; + + // Node 0 + temp_v0 = (arg0 + (arg1 * 8)); + temp_f18 = (arg3 - (f32) temp_v0->unkC); + temp_f14 = (arg2 - (f32) temp_v0->unk8); + arg3 = temp_f18; + return sqrtf(((temp_f14 * temp_f14) + (temp_f18 * temp_f18)), temp_f14); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0064 +/* 0E4B94 7F0B0064 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E4B98 7F0B0068 000570C0 */ sll $t6, $a1, 3 +/* 0E4B9C 7F0B006C AFBF0014 */ sw $ra, 0x14($sp) +/* 0E4BA0 7F0B0070 AFA70024 */ sw $a3, 0x24($sp) +/* 0E4BA4 7F0B0074 008E1021 */ addu $v0, $a0, $t6 +/* 0E4BA8 7F0B0078 8458000C */ lh $t8, 0xc($v0) +/* 0E4BAC 7F0B007C 844F0008 */ lh $t7, 8($v0) +/* 0E4BB0 7F0B0080 C7A80024 */ lwc1 $f8, 0x24($sp) +/* 0E4BB4 7F0B0084 44985000 */ mtc1 $t8, $f10 +/* 0E4BB8 7F0B0088 448F2000 */ mtc1 $t7, $f4 +/* 0E4BBC 7F0B008C 44867000 */ mtc1 $a2, $f14 +/* 0E4BC0 7F0B0090 46805420 */ cvt.s.w $f16, $f10 +/* 0E4BC4 7F0B0094 468021A0 */ cvt.s.w $f6, $f4 +/* 0E4BC8 7F0B0098 46104481 */ sub.s $f18, $f8, $f16 +/* 0E4BCC 7F0B009C 46067381 */ sub.s $f14, $f14, $f6 +/* 0E4BD0 7F0B00A0 46129102 */ mul.s $f4, $f18, $f18 +/* 0E4BD4 7F0B00A4 E7B20024 */ swc1 $f18, 0x24($sp) +/* 0E4BD8 7F0B00A8 460E7182 */ mul.s $f6, $f14, $f14 +/* 0E4BDC 7F0B00AC 0C007DF8 */ jal sqrtf +/* 0E4BE0 7F0B00B0 46043300 */ add.s $f12, $f6, $f4 +/* 0E4BE4 7F0B00B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E4BE8 7F0B00B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E4BEC 7F0B00BC 03E00008 */ jr $ra +/* 0E4BF0 7F0B00C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B00C4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B00C4 +/* 0E4BF4 7F0B00C4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E4BF8 7F0B00C8 000570C0 */ sll $t6, $a1, 3 +/* 0E4BFC 7F0B00CC AFBF001C */ sw $ra, 0x1c($sp) +/* 0E4C00 7F0B00D0 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0E4C04 7F0B00D4 008E1021 */ addu $v0, $a0, $t6 +/* 0E4C08 7F0B00D8 844F0008 */ lh $t7, 8($v0) +/* 0E4C0C 7F0B00DC 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E4C10 7F0B00E0 44867000 */ mtc1 $a2, $f14 +/* 0E4C14 7F0B00E4 C4200F44 */ lwc1 $f0, %lo(D_80040F44)($at) +/* 0E4C18 7F0B00E8 8458000C */ lh $t8, 0xc($v0) +/* 0E4C1C 7F0B00EC 448F2000 */ mtc1 $t7, $f4 +/* 0E4C20 7F0B00F0 46007382 */ mul.s $f14, $f14, $f0 +/* 0E4C24 7F0B00F4 4487A000 */ mtc1 $a3, $f20 +/* 0E4C28 7F0B00F8 44984000 */ mtc1 $t8, $f8 +/* 0E4C2C 7F0B00FC 4600A502 */ mul.s $f20, $f20, $f0 +/* 0E4C30 7F0B0100 468021A0 */ cvt.s.w $f6, $f4 +/* 0E4C34 7F0B0104 468042A0 */ cvt.s.w $f10, $f8 +/* 0E4C38 7F0B0108 46067381 */ sub.s $f14, $f14, $f6 +/* 0E4C3C 7F0B010C 460AA501 */ sub.s $f20, $f20, $f10 +/* 0E4C40 7F0B0110 460E7402 */ mul.s $f16, $f14, $f14 +/* 0E4C44 7F0B0114 00000000 */ nop +/* 0E4C48 7F0B0118 4614A482 */ mul.s $f18, $f20, $f20 +/* 0E4C4C 7F0B011C 0C007DF8 */ jal sqrtf +/* 0E4C50 7F0B0120 46128300 */ add.s $f12, $f16, $f18 +/* 0E4C54 7F0B0124 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E4C58 7F0B0128 C4240F48 */ lwc1 $f4, %lo(D_80040F48)($at) +/* 0E4C5C 7F0B012C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0E4C60 7F0B0130 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0E4C64 7F0B0134 46040002 */ mul.s $f0, $f0, $f4 +/* 0E4C68 7F0B0138 03E00008 */ jr $ra +/* 0E4C6C 7F0B013C 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B0140(s32 arg0, s32 arg1, f32 arg2, f32 arg3) { + void *temp_v0; + + // Node 0 + temp_v0 = (arg0 + (arg1 * 8)); + return ((((f32) temp_v0->unkC * (arg3 * D_80040F44)) + ((arg2 * D_80040F44) * (f32) temp_v0->unk8)) * D_80040F48); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0140 +/* 0E4C70 7F0B0140 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E4C74 7F0B0144 000570C0 */ sll $t6, $a1, 3 +/* 0E4C78 7F0B0148 44866000 */ mtc1 $a2, $f12 +/* 0E4C7C 7F0B014C C4220F44 */ lwc1 $f2, %lo(D_80040F44)($at) +/* 0E4C80 7F0B0150 008E1021 */ addu $v0, $a0, $t6 +/* 0E4C84 7F0B0154 844F000C */ lh $t7, 0xc($v0) +/* 0E4C88 7F0B0158 46026302 */ mul.s $f12, $f12, $f2 +/* 0E4C8C 7F0B015C 44877000 */ mtc1 $a3, $f14 +/* 0E4C90 7F0B0160 84580008 */ lh $t8, 8($v0) +/* 0E4C94 7F0B0164 448F2000 */ mtc1 $t7, $f4 +/* 0E4C98 7F0B0168 46027382 */ mul.s $f14, $f14, $f2 +/* 0E4C9C 7F0B016C 44985000 */ mtc1 $t8, $f10 +/* 0E4CA0 7F0B0170 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E4CA4 7F0B0174 468021A0 */ cvt.s.w $f6, $f4 +/* 0E4CA8 7F0B0178 46805420 */ cvt.s.w $f16, $f10 +/* 0E4CAC 7F0B017C 460E3202 */ mul.s $f8, $f6, $f14 +/* 0E4CB0 7F0B0180 C4260F48 */ lwc1 $f6, %lo(D_80040F48)($at) +/* 0E4CB4 7F0B0184 46106482 */ mul.s $f18, $f12, $f16 +/* 0E4CB8 7F0B0188 46124100 */ add.s $f4, $f8, $f18 +/* 0E4CBC 7F0B018C 46062002 */ mul.s $f0, $f4, $f6 +/* 0E4CC0 7F0B0190 03E00008 */ jr $ra +/* 0E4CC4 7F0B0194 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B0198(void *arg0, s32 arg1, f32 arg2, f32 arg3) { + void *temp_v0; + void *temp_v0_2; + f32 temp_f0; + f32 temp_f2; + f32 temp_f12; + f32 temp_f14; + f32 temp_f18; + f32 temp_f6; + f32 temp_f2_2; + f32 temp_f0_2; + s32 phi_v0; + s32 phi_v0_2; + s32 phi_v0_3; + + // Node 0 + temp_v0 = (arg0 + (arg1 * 8)); + temp_v0_2 = (arg0 + (((s32) (arg1 + 1) % (s32) (((s32) arg0->unk6 >> 0xc) & 0xf)) * 8)); + temp_f0 = (f32) temp_v0->unk8; + temp_f2 = (f32) temp_v0->unkC; + temp_f12 = ((f32) temp_v0_2->unk8 - temp_f0); + temp_f14 = ((f32) temp_v0_2->unkC - temp_f2); + temp_f18 = (arg2 - temp_f0); + temp_f6 = (arg3 - temp_f2); + arg2 = temp_f18; + arg3 = temp_f6; + temp_f2_2 = ((temp_f12 * temp_f12) + (temp_f14 * temp_f14)); + temp_f0_2 = ((temp_f18 * temp_f12) + (temp_f6 * temp_f14)); + phi_v0 = 0; + if (temp_f2_2 < temp_f0_2) + { + // Node 1 + phi_v0 = 1; + } + // Node 2 + if ((phi_v0 != 0) && (temp_f0_2 < 0.0f)) + { + // Node 4 + phi_v0_2 = 1; + // Node 5 + if (phi_v0_2 == 0) + { + // Node 6 + phi_v0_3 = 0; + if (0.0f < temp_f0_2) + { + // Node 7 + phi_v0_3 = 1; + } + // Node 8 + if (phi_v0_3 != 0) + { + // Node 9 + if (temp_f0_2 < temp_f2_2) + { + // Node 10 + } + } + } + } + else + { + // Node 6 + phi_v0_3 = 0; + if (0.0f < temp_f0_2) + { + // Node 7 + phi_v0_3 = 1; + } + // Node 8 + if (phi_v0_3 != 0) + { + // Node 9 + if (temp_f0_2 < temp_f2_2) + { + // Node 10 + } + } + } + // Node 11 + return temp_f0_2; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0198 +/* 0E4CC8 7F0B0198 AFA60008 */ sw $a2, 8($sp) +/* 0E4CCC 7F0B019C AFA7000C */ sw $a3, 0xc($sp) +/* 0E4CD0 7F0B01A0 84880006 */ lh $t0, 6($a0) +/* 0E4CD4 7F0B01A4 24B90001 */ addiu $t9, $a1, 1 +/* 0E4CD8 7F0B01A8 000570C0 */ sll $t6, $a1, 3 +/* 0E4CDC 7F0B01AC 00084B03 */ sra $t1, $t0, 0xc +/* 0E4CE0 7F0B01B0 312A000F */ andi $t2, $t1, 0xf +/* 0E4CE4 7F0B01B4 032A001A */ div $zero, $t9, $t2 +/* 0E4CE8 7F0B01B8 008E1021 */ addu $v0, $a0, $t6 +/* 0E4CEC 7F0B01BC 00002810 */ mfhi $a1 +/* 0E4CF0 7F0B01C0 844F0008 */ lh $t7, 8($v0) +/* 0E4CF4 7F0B01C4 8458000C */ lh $t8, 0xc($v0) +/* 0E4CF8 7F0B01C8 000558C0 */ sll $t3, $a1, 3 +/* 0E4CFC 7F0B01CC 008B1021 */ addu $v0, $a0, $t3 +/* 0E4D00 7F0B01D0 844C0008 */ lh $t4, 8($v0) +/* 0E4D04 7F0B01D4 844D000C */ lh $t5, 0xc($v0) +/* 0E4D08 7F0B01D8 448F2000 */ mtc1 $t7, $f4 +/* 0E4D0C 7F0B01DC 448C4000 */ mtc1 $t4, $f8 +/* 0E4D10 7F0B01E0 44983000 */ mtc1 $t8, $f6 +/* 0E4D14 7F0B01E4 46802020 */ cvt.s.w $f0, $f4 +/* 0E4D18 7F0B01E8 448D5000 */ mtc1 $t5, $f10 +/* 0E4D1C 7F0B01EC C7B00008 */ lwc1 $f16, 8($sp) +/* 0E4D20 7F0B01F0 C7A4000C */ lwc1 $f4, 0xc($sp) +/* 0E4D24 7F0B01F4 00001025 */ move $v0, $zero +/* 0E4D28 7F0B01F8 46804320 */ cvt.s.w $f12, $f8 +/* 0E4D2C 7F0B01FC 468030A0 */ cvt.s.w $f2, $f6 +/* 0E4D30 7F0B0200 15400002 */ bnez $t2, .L7F0B020C +/* 0E4D34 7F0B0204 00000000 */ nop +/* 0E4D38 7F0B0208 0007000D */ break 7 +.L7F0B020C: +/* 0E4D3C 7F0B020C 2401FFFF */ li $at, -1 +/* 0E4D40 7F0B0210 15410004 */ bne $t2, $at, .L7F0B0224 +/* 0E4D44 7F0B0214 3C018000 */ lui $at, 0x8000 +/* 0E4D48 7F0B0218 17210002 */ bne $t9, $at, .L7F0B0224 +/* 0E4D4C 7F0B021C 00000000 */ nop +/* 0E4D50 7F0B0220 0006000D */ break 6 +.L7F0B0224: +/* 0E4D54 7F0B0224 468053A0 */ cvt.s.w $f14, $f10 +/* 0E4D58 7F0B0228 46006301 */ sub.s $f12, $f12, $f0 +/* 0E4D5C 7F0B022C 46027381 */ sub.s $f14, $f14, $f2 +/* 0E4D60 7F0B0230 460C6202 */ mul.s $f8, $f12, $f12 +/* 0E4D64 7F0B0234 46008481 */ sub.s $f18, $f16, $f0 +/* 0E4D68 7F0B0238 460E7282 */ mul.s $f10, $f14, $f14 +/* 0E4D6C 7F0B023C 46022181 */ sub.s $f6, $f4, $f2 +/* 0E4D70 7F0B0240 460C9402 */ mul.s $f16, $f18, $f12 +/* 0E4D74 7F0B0244 E7B20008 */ swc1 $f18, 8($sp) +/* 0E4D78 7F0B0248 460E3102 */ mul.s $f4, $f6, $f14 +/* 0E4D7C 7F0B024C E7A6000C */ swc1 $f6, 0xc($sp) +/* 0E4D80 7F0B0250 460A4080 */ add.s $f2, $f8, $f10 +/* 0E4D84 7F0B0254 46048000 */ add.s $f0, $f16, $f4 +/* 0E4D88 7F0B0258 4600103C */ c.lt.s $f2, $f0 +/* 0E4D8C 7F0B025C 00000000 */ nop +/* 0E4D90 7F0B0260 45000002 */ bc1f .L7F0B026C +/* 0E4D94 7F0B0264 00000000 */ nop +/* 0E4D98 7F0B0268 24020001 */ li $v0, 1 +.L7F0B026C: +/* 0E4D9C 7F0B026C 5040000B */ beql $v0, $zero, .L7F0B029C +/* 0E4DA0 7F0B0270 44805000 */ mtc1 $zero, $f10 +/* 0E4DA4 7F0B0274 44804000 */ mtc1 $zero, $f8 +/* 0E4DA8 7F0B0278 00001025 */ move $v0, $zero +/* 0E4DAC 7F0B027C 4608003C */ c.lt.s $f0, $f8 +/* 0E4DB0 7F0B0280 00000000 */ nop +/* 0E4DB4 7F0B0284 45000002 */ bc1f .L7F0B0290 +/* 0E4DB8 7F0B0288 00000000 */ nop +/* 0E4DBC 7F0B028C 24020001 */ li $v0, 1 +.L7F0B0290: +/* 0E4DC0 7F0B0290 1440000F */ bnez $v0, .L7F0B02D0 +/* 0E4DC4 7F0B0294 00000000 */ nop +/* 0E4DC8 7F0B0298 44805000 */ mtc1 $zero, $f10 +.L7F0B029C: +/* 0E4DCC 7F0B029C 00001025 */ move $v0, $zero +/* 0E4DD0 7F0B02A0 4600503C */ c.lt.s $f10, $f0 +/* 0E4DD4 7F0B02A4 00000000 */ nop +/* 0E4DD8 7F0B02A8 45000002 */ bc1f .L7F0B02B4 +/* 0E4DDC 7F0B02AC 00000000 */ nop +/* 0E4DE0 7F0B02B0 24020001 */ li $v0, 1 +.L7F0B02B4: +/* 0E4DE4 7F0B02B4 10400006 */ beqz $v0, .L7F0B02D0 +/* 0E4DE8 7F0B02B8 00000000 */ nop +/* 0E4DEC 7F0B02BC 4602003C */ c.lt.s $f0, $f2 +/* 0E4DF0 7F0B02C0 00001025 */ move $v0, $zero +/* 0E4DF4 7F0B02C4 45000002 */ bc1f .L7F0B02D0 +/* 0E4DF8 7F0B02C8 00000000 */ nop +/* 0E4DFC 7F0B02CC 24020001 */ li $v0, 1 +.L7F0B02D0: +/* 0E4E00 7F0B02D0 03E00008 */ jr $ra +/* 0E4E04 7F0B02D4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B02D8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B02D8 +/* 0E4E08 7F0B02D8 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0E4E0C 7F0B02DC F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0E4E10 7F0B02E0 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0E4E14 7F0B02E4 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0E4E18 7F0B02E8 AFB20038 */ sw $s2, 0x38($sp) +/* 0E4E1C 7F0B02EC AFB10034 */ sw $s1, 0x34($sp) +/* 0E4E20 7F0B02F0 AFB00030 */ sw $s0, 0x30($sp) +/* 0E4E24 7F0B02F4 4485A000 */ mtc1 $a1, $f20 +/* 0E4E28 7F0B02F8 4486B000 */ mtc1 $a2, $f22 +/* 0E4E2C 7F0B02FC 4480C000 */ mtc1 $zero, $f24 +/* 0E4E30 7F0B0300 00808825 */ move $s1, $a0 +/* 0E4E34 7F0B0304 AFBF003C */ sw $ra, 0x3c($sp) +/* 0E4E38 7F0B0308 00008025 */ move $s0, $zero +/* 0E4E3C 7F0B030C 24120003 */ li $s2, 3 +/* 0E4E40 7F0B0310 4406A000 */ mfc1 $a2, $f20 +.L7F0B0314: +/* 0E4E44 7F0B0314 4407B000 */ mfc1 $a3, $f22 +/* 0E4E48 7F0B0318 02202025 */ move $a0, $s1 +/* 0E4E4C 7F0B031C 0FC2BF9C */ jal sub_GAME_7F0AFE70 +/* 0E4E50 7F0B0320 02002825 */ move $a1, $s0 +/* 0E4E54 7F0B0324 4618003C */ c.lt.s $f0, $f24 +/* 0E4E58 7F0B0328 26100001 */ addiu $s0, $s0, 1 +/* 0E4E5C 7F0B032C 45000003 */ bc1f .L7F0B033C +/* 0E4E60 7F0B0330 00000000 */ nop +/* 0E4E64 7F0B0334 10000004 */ b .L7F0B0348 +/* 0E4E68 7F0B0338 00001025 */ move $v0, $zero +.L7F0B033C: +/* 0E4E6C 7F0B033C 5612FFF5 */ bnel $s0, $s2, .L7F0B0314 +/* 0E4E70 7F0B0340 4406A000 */ mfc1 $a2, $f20 +/* 0E4E74 7F0B0344 24020001 */ li $v0, 1 +.L7F0B0348: +/* 0E4E78 7F0B0348 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E4E7C 7F0B034C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0E4E80 7F0B0350 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0E4E84 7F0B0354 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0E4E88 7F0B0358 8FB00030 */ lw $s0, 0x30($sp) +/* 0E4E8C 7F0B035C 8FB10034 */ lw $s1, 0x34($sp) +/* 0E4E90 7F0B0360 8FB20038 */ lw $s2, 0x38($sp) +/* 0E4E94 7F0B0364 03E00008 */ jr $ra +/* 0E4E98 7F0B0368 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B036C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B036C +/* 0E4E9C 7F0B036C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0E4EA0 7F0B0370 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0E4EA4 7F0B0374 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0E4EA8 7F0B0378 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0E4EAC 7F0B037C AFB20038 */ sw $s2, 0x38($sp) +/* 0E4EB0 7F0B0380 AFB10034 */ sw $s1, 0x34($sp) +/* 0E4EB4 7F0B0384 AFB00030 */ sw $s0, 0x30($sp) +/* 0E4EB8 7F0B0388 4485A000 */ mtc1 $a1, $f20 +/* 0E4EBC 7F0B038C 4486B000 */ mtc1 $a2, $f22 +/* 0E4EC0 7F0B0390 4480C000 */ mtc1 $zero, $f24 +/* 0E4EC4 7F0B0394 00808825 */ move $s1, $a0 +/* 0E4EC8 7F0B0398 AFBF003C */ sw $ra, 0x3c($sp) +/* 0E4ECC 7F0B039C 00008025 */ move $s0, $zero +/* 0E4ED0 7F0B03A0 24120003 */ li $s2, 3 +/* 0E4ED4 7F0B03A4 4406A000 */ mfc1 $a2, $f20 +.L7F0B03A8: +/* 0E4ED8 7F0B03A8 4407B000 */ mfc1 $a3, $f22 +/* 0E4EDC 7F0B03AC 02202025 */ move $a0, $s1 +/* 0E4EE0 7F0B03B0 0FC2C006 */ jal sub_GAME_7F0B0018 +/* 0E4EE4 7F0B03B4 02002825 */ move $a1, $s0 +/* 0E4EE8 7F0B03B8 4618003C */ c.lt.s $f0, $f24 +/* 0E4EEC 7F0B03BC 26100001 */ addiu $s0, $s0, 1 +/* 0E4EF0 7F0B03C0 45000003 */ bc1f .L7F0B03D0 +/* 0E4EF4 7F0B03C4 00000000 */ nop +/* 0E4EF8 7F0B03C8 10000004 */ b .L7F0B03DC +/* 0E4EFC 7F0B03CC 00001025 */ move $v0, $zero +.L7F0B03D0: +/* 0E4F00 7F0B03D0 5612FFF5 */ bnel $s0, $s2, .L7F0B03A8 +/* 0E4F04 7F0B03D4 4406A000 */ mfc1 $a2, $f20 +/* 0E4F08 7F0B03D8 24020001 */ li $v0, 1 +.L7F0B03DC: +/* 0E4F0C 7F0B03DC 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E4F10 7F0B03E0 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0E4F14 7F0B03E4 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0E4F18 7F0B03E8 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0E4F1C 7F0B03EC 8FB00030 */ lw $s0, 0x30($sp) +/* 0E4F20 7F0B03F0 8FB10034 */ lw $s1, 0x34($sp) +/* 0E4F24 7F0B03F4 8FB20038 */ lw $s2, 0x38($sp) +/* 0E4F28 7F0B03F8 03E00008 */ jr $ra +/* 0E4F2C 7F0B03FC 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B0400(void *arg0, s32 arg1, f32 arg2, f32 arg3) { + f32 sp38; + s32 temp_a1; + s32 temp_a0; + void *temp_a2; + void *temp_v1; + f32 temp_f2; + f32 temp_f14; + ? temp_ret; + s32 phi_a0; + + // Node 0 + if (arg1 != 2) + { + // Node 1 + phi_a0 = (arg1 + 1); + } + else + { + // Node 2 + phi_a0 = 0; + } + // Node 3 + temp_a1 = ((s32) arg0->unk6 >> (8 - (arg1 * 4))); + temp_a0 = ((s32) arg0->unk6 >> (8 - (phi_a0 * 4))); + temp_a2 = (arg0 + ((temp_a1 & 0xf) * 8)); + temp_v1 = (arg0 + ((temp_a0 & 0xf) * 8)); + temp_f2 = (f32) (temp_v1->unk8 - temp_a2->unk8); + temp_f14 = (f32) (temp_v1->unkC - temp_a2->unkC); + sp38 = temp_f2; + temp_ret = sqrtf(((temp_f2 * temp_f2) + (temp_f14 * temp_f14)), temp_f14, temp_a0, temp_a1, temp_a2, arg0); + if (temp_ret != 0.0f) + { + // Node 5 + // Node 6 + return ((((arg3 - (f32) sp1C->unkC) * -temp_f2) + (sp34 * (arg2 - (f32) sp1C->unk8))) / temp_ret); + } + // Node 4 + return ((((arg3 - (f32) sp1C->unkC) * -temp_f2) + (sp34 * (arg2 - (f32) sp1C->unk8))) / temp_ret); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0400 +/* 0E4F30 7F0B0400 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0E4F34 7F0B0404 AFA7004C */ sw $a3, 0x4c($sp) +/* 0E4F38 7F0B0408 24010002 */ li $at, 2 +/* 0E4F3C 7F0B040C 00803825 */ move $a3, $a0 +/* 0E4F40 7F0B0410 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E4F44 7F0B0414 AFA40040 */ sw $a0, 0x40($sp) +/* 0E4F48 7F0B0418 10A10003 */ beq $a1, $at, .L7F0B0428 +/* 0E4F4C 7F0B041C AFA60048 */ sw $a2, 0x48($sp) +/* 0E4F50 7F0B0420 10000002 */ b .L7F0B042C +/* 0E4F54 7F0B0424 24A40001 */ addiu $a0, $a1, 1 +.L7F0B0428: +/* 0E4F58 7F0B0428 00002025 */ move $a0, $zero +.L7F0B042C: +/* 0E4F5C 7F0B042C 84E20006 */ lh $v0, 6($a3) +/* 0E4F60 7F0B0430 24080008 */ li $t0, 8 +/* 0E4F64 7F0B0434 00057080 */ sll $t6, $a1, 2 +/* 0E4F68 7F0B0438 0004C880 */ sll $t9, $a0, 2 +/* 0E4F6C 7F0B043C 010E7823 */ subu $t7, $t0, $t6 +/* 0E4F70 7F0B0440 01194823 */ subu $t1, $t0, $t9 +/* 0E4F74 7F0B0444 01E22807 */ srav $a1, $v0, $t7 +/* 0E4F78 7F0B0448 01222007 */ srav $a0, $v0, $t1 +/* 0E4F7C 7F0B044C 30B8000F */ andi $t8, $a1, 0xf +/* 0E4F80 7F0B0450 308A000F */ andi $t2, $a0, 0xf +/* 0E4F84 7F0B0454 000A58C0 */ sll $t3, $t2, 3 +/* 0E4F88 7F0B0458 001860C0 */ sll $t4, $t8, 3 +/* 0E4F8C 7F0B045C 00EC3021 */ addu $a2, $a3, $t4 +/* 0E4F90 7F0B0460 00EB1821 */ addu $v1, $a3, $t3 +/* 0E4F94 7F0B0464 846D0008 */ lh $t5, 8($v1) +/* 0E4F98 7F0B0468 84CE0008 */ lh $t6, 8($a2) +/* 0E4F9C 7F0B046C 8478000C */ lh $t8, 0xc($v1) +/* 0E4FA0 7F0B0470 84D9000C */ lh $t9, 0xc($a2) +/* 0E4FA4 7F0B0474 01AE7823 */ subu $t7, $t5, $t6 +/* 0E4FA8 7F0B0478 448F2000 */ mtc1 $t7, $f4 +/* 0E4FAC 7F0B047C 03194823 */ subu $t1, $t8, $t9 +/* 0E4FB0 7F0B0480 44893000 */ mtc1 $t1, $f6 +/* 0E4FB4 7F0B0484 468020A0 */ cvt.s.w $f2, $f4 +/* 0E4FB8 7F0B0488 AFA6001C */ sw $a2, 0x1c($sp) +/* 0E4FBC 7F0B048C 468033A0 */ cvt.s.w $f14, $f6 +/* 0E4FC0 7F0B0490 46021202 */ mul.s $f8, $f2, $f2 +/* 0E4FC4 7F0B0494 E7A20038 */ swc1 $f2, 0x38($sp) +/* 0E4FC8 7F0B0498 460E7282 */ mul.s $f10, $f14, $f14 +/* 0E4FCC 7F0B049C E7AE0034 */ swc1 $f14, 0x34($sp) +/* 0E4FD0 7F0B04A0 0C007DF8 */ jal sqrtf +/* 0E4FD4 7F0B04A4 460A4300 */ add.s $f12, $f8, $f10 +/* 0E4FD8 7F0B04A8 44806000 */ mtc1 $zero, $f12 +/* 0E4FDC 7F0B04AC 8FA6001C */ lw $a2, 0x1c($sp) +/* 0E4FE0 7F0B04B0 C7A20038 */ lwc1 $f2, 0x38($sp) +/* 0E4FE4 7F0B04B4 460C0032 */ c.eq.s $f0, $f12 +/* 0E4FE8 7F0B04B8 C7AE0034 */ lwc1 $f14, 0x34($sp) +/* 0E4FEC 7F0B04BC 46000406 */ mov.s $f16, $f0 +/* 0E4FF0 7F0B04C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E4FF4 7F0B04C4 45020004 */ bc1fl .L7F0B04D8 +/* 0E4FF8 7F0B04C8 84CA000C */ lh $t2, 0xc($a2) +/* 0E4FFC 7F0B04CC 10000010 */ b .L7F0B0510 +/* 0E5000 7F0B04D0 46006006 */ mov.s $f0, $f12 +/* 0E5004 7F0B04D4 84CA000C */ lh $t2, 0xc($a2) +.L7F0B04D8: +/* 0E5008 7F0B04D8 C7B2004C */ lwc1 $f18, 0x4c($sp) +/* 0E500C 7F0B04DC 84CB0008 */ lh $t3, 8($a2) +/* 0E5010 7F0B04E0 448A2000 */ mtc1 $t2, $f4 +/* 0E5014 7F0B04E4 46001287 */ neg.s $f10, $f2 +/* 0E5018 7F0B04E8 468021A0 */ cvt.s.w $f6, $f4 +/* 0E501C 7F0B04EC 46069201 */ sub.s $f8, $f18, $f6 +/* 0E5020 7F0B04F0 448B3000 */ mtc1 $t3, $f6 +/* 0E5024 7F0B04F4 C7B20048 */ lwc1 $f18, 0x48($sp) +/* 0E5028 7F0B04F8 460A4102 */ mul.s $f4, $f8, $f10 +/* 0E502C 7F0B04FC 46803220 */ cvt.s.w $f8, $f6 +/* 0E5030 7F0B0500 46089281 */ sub.s $f10, $f18, $f8 +/* 0E5034 7F0B0504 460A7182 */ mul.s $f6, $f14, $f10 +/* 0E5038 7F0B0508 46062300 */ add.s $f12, $f4, $f6 +/* 0E503C 7F0B050C 46106003 */ div.s $f0, $f12, $f16 +.L7F0B0510: +/* 0E5040 7F0B0510 03E00008 */ jr $ra +/* 0E5044 7F0B0514 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B0518(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0518 +/* 0E5048 7F0B0518 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0E504C 7F0B051C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0E5050 7F0B0520 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E5054 7F0B0524 4485A000 */ mtc1 $a1, $f20 +/* 0E5058 7F0B0528 C4200F44 */ lwc1 $f0, %lo(D_80040F44)($at) +/* 0E505C 7F0B052C F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0E5060 7F0B0530 4486B000 */ mtc1 $a2, $f22 +/* 0E5064 7F0B0534 4600A502 */ mul.s $f20, $f20, $f0 +/* 0E5068 7F0B0538 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0E506C 7F0B053C 3C01C000 */ li $at, 0xC0000000 # -2.000000 +/* 0E5070 7F0B0540 AFB20038 */ sw $s2, 0x38($sp) +/* 0E5074 7F0B0544 AFB10034 */ sw $s1, 0x34($sp) +/* 0E5078 7F0B0548 AFB00030 */ sw $s0, 0x30($sp) +/* 0E507C 7F0B054C 4481C000 */ mtc1 $at, $f24 +/* 0E5080 7F0B0550 4600B582 */ mul.s $f22, $f22, $f0 +/* 0E5084 7F0B0554 00808825 */ move $s1, $a0 +/* 0E5088 7F0B0558 AFBF003C */ sw $ra, 0x3c($sp) +/* 0E508C 7F0B055C 00008025 */ move $s0, $zero +/* 0E5090 7F0B0560 24120003 */ li $s2, 3 +/* 0E5094 7F0B0564 4406A000 */ mfc1 $a2, $f20 +.L7F0B0568: +/* 0E5098 7F0B0568 4407B000 */ mfc1 $a3, $f22 +/* 0E509C 7F0B056C 02202025 */ move $a0, $s1 +/* 0E50A0 7F0B0570 0FC2C100 */ jal sub_GAME_7F0B0400 +/* 0E50A4 7F0B0574 02002825 */ move $a1, $s0 +/* 0E50A8 7F0B0578 4618003C */ c.lt.s $f0, $f24 +/* 0E50AC 7F0B057C 26100001 */ addiu $s0, $s0, 1 +/* 0E50B0 7F0B0580 45000003 */ bc1f .L7F0B0590 +/* 0E50B4 7F0B0584 00000000 */ nop +/* 0E50B8 7F0B0588 10000004 */ b .L7F0B059C +/* 0E50BC 7F0B058C 00001025 */ move $v0, $zero +.L7F0B0590: +/* 0E50C0 7F0B0590 5612FFF5 */ bnel $s0, $s2, .L7F0B0568 +/* 0E50C4 7F0B0594 4406A000 */ mfc1 $a2, $f20 +/* 0E50C8 7F0B0598 24020001 */ li $v0, 1 +.L7F0B059C: +/* 0E50CC 7F0B059C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E50D0 7F0B05A0 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0E50D4 7F0B05A4 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0E50D8 7F0B05A8 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0E50DC 7F0B05AC 8FB00030 */ lw $s0, 0x30($sp) +/* 0E50E0 7F0B05B0 8FB10034 */ lw $s1, 0x34($sp) +/* 0E50E4 7F0B05B4 8FB20038 */ lw $s2, 0x38($sp) +/* 0E50E8 7F0B05B8 03E00008 */ jr $ra +/* 0E50EC 7F0B05BC 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B05C0(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { + f32 temp_f0; + f32 temp_f2; + + // Node 0 + temp_f0 = (arg1 * arg2); + temp_f2 = (arg0 * arg3); + if (temp_f0 < temp_f2) + { + // Node 1 + return 1; + } + // Node 2 + if (temp_f2 < temp_f0) + { + // Node 3 + return -1; + } + // Node 4 + if ((arg0 * arg2) < 0.0f) + { + // Node 6 + return -1; + } + // Node 5 + if ((arg1 * arg3) < 0.0f) + { + // Node 6 + return -1; + } + // Node 7 + if (((arg0 * arg0) + (arg1 * arg1)) < ((arg2 * arg2) + (arg3 * arg3))) + { + // Node 8 + return 1; + } + // Node 9 + return 0; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B05C0 +/* 0E50F0 7F0B05C0 AFA60008 */ sw $a2, 8($sp) +/* 0E50F4 7F0B05C4 C7A40008 */ lwc1 $f4, 8($sp) +/* 0E50F8 7F0B05C8 AFA7000C */ sw $a3, 0xc($sp) +/* 0E50FC 7F0B05CC C7A6000C */ lwc1 $f6, 0xc($sp) +/* 0E5100 7F0B05D0 46047002 */ mul.s $f0, $f14, $f4 +/* 0E5104 7F0B05D4 00000000 */ nop +/* 0E5108 7F0B05D8 46066082 */ mul.s $f2, $f12, $f6 +/* 0E510C 7F0B05DC 4602003C */ c.lt.s $f0, $f2 +/* 0E5110 7F0B05E0 00000000 */ nop +/* 0E5114 7F0B05E4 45000003 */ bc1f .L7F0B05F4 +/* 0E5118 7F0B05E8 00000000 */ nop +/* 0E511C 7F0B05EC 03E00008 */ jr $ra +/* 0E5120 7F0B05F0 24020001 */ li $v0, 1 + +.L7F0B05F4: +/* 0E5124 7F0B05F4 4600103C */ c.lt.s $f2, $f0 +/* 0E5128 7F0B05F8 C7A80008 */ lwc1 $f8, 8($sp) +/* 0E512C 7F0B05FC 45000003 */ bc1f .L7F0B060C +/* 0E5130 7F0B0600 00000000 */ nop +/* 0E5134 7F0B0604 03E00008 */ jr $ra +/* 0E5138 7F0B0608 2402FFFF */ li $v0, -1 + +.L7F0B060C: +/* 0E513C 7F0B060C 46086282 */ mul.s $f10, $f12, $f8 +/* 0E5140 7F0B0610 44800000 */ mtc1 $zero, $f0 +/* 0E5144 7F0B0614 C7B0000C */ lwc1 $f16, 0xc($sp) +/* 0E5148 7F0B0618 4600503C */ c.lt.s $f10, $f0 +/* 0E514C 7F0B061C 00000000 */ nop +/* 0E5150 7F0B0620 45010006 */ bc1t .L7F0B063C +/* 0E5154 7F0B0624 00000000 */ nop +/* 0E5158 7F0B0628 46107482 */ mul.s $f18, $f14, $f16 +/* 0E515C 7F0B062C 4600903C */ c.lt.s $f18, $f0 +/* 0E5160 7F0B0630 00000000 */ nop +/* 0E5164 7F0B0634 45000003 */ bc1f .L7F0B0644 +/* 0E5168 7F0B0638 00000000 */ nop +.L7F0B063C: +/* 0E516C 7F0B063C 03E00008 */ jr $ra +/* 0E5170 7F0B0640 2402FFFF */ li $v0, -1 + +.L7F0B0644: +/* 0E5174 7F0B0644 460C6102 */ mul.s $f4, $f12, $f12 +/* 0E5178 7F0B0648 C7AA0008 */ lwc1 $f10, 8($sp) +/* 0E517C 7F0B064C C7B2000C */ lwc1 $f18, 0xc($sp) +/* 0E5180 7F0B0650 460E7182 */ mul.s $f6, $f14, $f14 +/* 0E5184 7F0B0654 00001025 */ move $v0, $zero +/* 0E5188 7F0B0658 460A5402 */ mul.s $f16, $f10, $f10 +/* 0E518C 7F0B065C 46062200 */ add.s $f8, $f4, $f6 +/* 0E5190 7F0B0660 46129102 */ mul.s $f4, $f18, $f18 +/* 0E5194 7F0B0664 46048180 */ add.s $f6, $f16, $f4 +/* 0E5198 7F0B0668 4606403C */ c.lt.s $f8, $f6 +/* 0E519C 7F0B066C 00000000 */ nop +/* 0E51A0 7F0B0670 45000003 */ bc1f .L7F0B0680 +/* 0E51A4 7F0B0674 00000000 */ nop +/* 0E51A8 7F0B0678 03E00008 */ jr $ra +/* 0E51AC 7F0B067C 24020001 */ li $v0, 1 + +.L7F0B0680: +/* 0E51B0 7F0B0680 03E00008 */ jr $ra +/* 0E51B4 7F0B0684 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B0688(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7) { + f32 sp20; + f32 sp24; + s32 sp28; + s32 sp2C; + f32 temp_f0; + f32 temp_f2; + s32 temp_t7; + s32 phi_return; + + // Node 0 + temp_f0 = (arg0 - arg4); + temp_f2 = (arg1 - arg5); + sp24 = temp_f0; + sp20 = temp_f2; + sp2C = sub_GAME_7F0B05C0((arg2 - arg0), (arg3 - arg1), -temp_f0, -temp_f2); + temp_t7 = ((sub_GAME_7F0B05C0(sp1C, sp18, (arg6 - arg0), (arg7 - arg1)) * sp2C) < 1); + phi_return = temp_t7; + if (temp_t7 != 0) + { + // Node 1 + sp28 = sub_GAME_7F0B05C0((arg6 - arg4), (arg7 - arg5), sp24, sp20); + phi_return = ((sub_GAME_7F0B05C0(sp1C, sp18, (arg2 - arg4), (arg3 - arg5)) * sp28) < 1); + } + // Node 2 + return phi_return; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0688 +/* 0E51B8 7F0B0688 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0E51BC 7F0B068C C7B20058 */ lwc1 $f18, 0x58($sp) +/* 0E51C0 7F0B0690 C7B0005C */ lwc1 $f16, 0x5c($sp) +/* 0E51C4 7F0B0694 E7AC0048 */ swc1 $f12, 0x48($sp) +/* 0E51C8 7F0B0698 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 0E51CC 7F0B069C E7AE004C */ swc1 $f14, 0x4c($sp) +/* 0E51D0 7F0B06A0 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 0E51D4 7F0B06A4 46125001 */ sub.s $f0, $f10, $f18 +/* 0E51D8 7F0B06A8 AFA60050 */ sw $a2, 0x50($sp) +/* 0E51DC 7F0B06AC C7B20050 */ lwc1 $f18, 0x50($sp) +/* 0E51E0 7F0B06B0 46104081 */ sub.s $f2, $f8, $f16 +/* 0E51E4 7F0B06B4 AFA70054 */ sw $a3, 0x54($sp) +/* 0E51E8 7F0B06B8 C7B00054 */ lwc1 $f16, 0x54($sp) +/* 0E51EC 7F0B06BC 460A9301 */ sub.s $f12, $f18, $f10 +/* 0E51F0 7F0B06C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E51F4 7F0B06C4 E7A00024 */ swc1 $f0, 0x24($sp) +/* 0E51F8 7F0B06C8 46088381 */ sub.s $f14, $f16, $f8 +/* 0E51FC 7F0B06CC E7A20020 */ swc1 $f2, 0x20($sp) +/* 0E5200 7F0B06D0 E7AC001C */ swc1 $f12, 0x1c($sp) +/* 0E5204 7F0B06D4 46000207 */ neg.s $f8, $f0 +/* 0E5208 7F0B06D8 46001407 */ neg.s $f16, $f2 +/* 0E520C 7F0B06DC 44064000 */ mfc1 $a2, $f8 +/* 0E5210 7F0B06E0 44078000 */ mfc1 $a3, $f16 +/* 0E5214 7F0B06E4 0FC2C170 */ jal sub_GAME_7F0B05C0 +/* 0E5218 7F0B06E8 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 0E521C 7F0B06EC C7A60060 */ lwc1 $f6, 0x60($sp) +/* 0E5220 7F0B06F0 C7B00048 */ lwc1 $f16, 0x48($sp) +/* 0E5224 7F0B06F4 C7AA0064 */ lwc1 $f10, 0x64($sp) +/* 0E5228 7F0B06F8 C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 0E522C 7F0B06FC 46103481 */ sub.s $f18, $f6, $f16 +/* 0E5230 7F0B0700 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 0E5234 7F0B0704 C7AE0018 */ lwc1 $f14, 0x18($sp) +/* 0E5238 7F0B0708 46045201 */ sub.s $f8, $f10, $f4 +/* 0E523C 7F0B070C 44069000 */ mfc1 $a2, $f18 +/* 0E5240 7F0B0710 AFA2002C */ sw $v0, 0x2c($sp) +/* 0E5244 7F0B0714 44074000 */ mfc1 $a3, $f8 +/* 0E5248 7F0B0718 0FC2C170 */ jal sub_GAME_7F0B05C0 +/* 0E524C 7F0B071C 00000000 */ nop +/* 0E5250 7F0B0720 8FAE002C */ lw $t6, 0x2c($sp) +/* 0E5254 7F0B0724 C7A60060 */ lwc1 $f6, 0x60($sp) +/* 0E5258 7F0B0728 C7B00058 */ lwc1 $f16, 0x58($sp) +/* 0E525C 7F0B072C 004E0019 */ multu $v0, $t6 +/* 0E5260 7F0B0730 C7B20064 */ lwc1 $f18, 0x64($sp) +/* 0E5264 7F0B0734 C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 0E5268 7F0B0738 00001012 */ mflo $v0 +/* 0E526C 7F0B073C 284F0001 */ slti $t7, $v0, 1 +/* 0E5270 7F0B0740 11E0001A */ beqz $t7, .L7F0B07AC +/* 0E5274 7F0B0744 01E01025 */ move $v0, $t7 +/* 0E5278 7F0B0748 46103301 */ sub.s $f12, $f6, $f16 +/* 0E527C 7F0B074C 8FA60024 */ lw $a2, 0x24($sp) +/* 0E5280 7F0B0750 8FA70020 */ lw $a3, 0x20($sp) +/* 0E5284 7F0B0754 460A9381 */ sub.s $f14, $f18, $f10 +/* 0E5288 7F0B0758 E7AC001C */ swc1 $f12, 0x1c($sp) +/* 0E528C 7F0B075C 0FC2C170 */ jal sub_GAME_7F0B05C0 +/* 0E5290 7F0B0760 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 0E5294 7F0B0764 C7A40050 */ lwc1 $f4, 0x50($sp) +/* 0E5298 7F0B0768 C7A80058 */ lwc1 $f8, 0x58($sp) +/* 0E529C 7F0B076C C7B00054 */ lwc1 $f16, 0x54($sp) +/* 0E52A0 7F0B0770 C7B2005C */ lwc1 $f18, 0x5c($sp) +/* 0E52A4 7F0B0774 46082181 */ sub.s $f6, $f4, $f8 +/* 0E52A8 7F0B0778 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 0E52AC 7F0B077C C7AE0018 */ lwc1 $f14, 0x18($sp) +/* 0E52B0 7F0B0780 46128281 */ sub.s $f10, $f16, $f18 +/* 0E52B4 7F0B0784 44063000 */ mfc1 $a2, $f6 +/* 0E52B8 7F0B0788 AFA20028 */ sw $v0, 0x28($sp) +/* 0E52BC 7F0B078C 44075000 */ mfc1 $a3, $f10 +/* 0E52C0 7F0B0790 0FC2C170 */ jal sub_GAME_7F0B05C0 +/* 0E52C4 7F0B0794 00000000 */ nop +/* 0E52C8 7F0B0798 8FB80028 */ lw $t8, 0x28($sp) +/* 0E52CC 7F0B079C 00580019 */ multu $v0, $t8 +/* 0E52D0 7F0B07A0 00001012 */ mflo $v0 +/* 0E52D4 7F0B07A4 28590001 */ slti $t9, $v0, 1 +/* 0E52D8 7F0B07A8 03201025 */ move $v0, $t9 +.L7F0B07AC: +/* 0E52DC 7F0B07AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E52E0 7F0B07B0 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0E52E4 7F0B07B4 03E00008 */ jr $ra +/* 0E52E8 7F0B07B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +?32 sub_GAME_7F0B07BC(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, s32 arg8) { + f32 sp24; + f32 sp28; + s32 sp2C; + ?32 sp44; + s32 sp4C; + f32 temp_f2; + f32 temp_f0; + ?32 phi_a0; + + // Node 0 + temp_f2 = (arg1 - arg5); + temp_f0 = (arg0 - arg4); + sp44 = 1; + sp28 = temp_f0; + sp24 = temp_f2; + sp2C = sub_GAME_7F0B05C0((arg2 - arg0), (arg3 - arg1), -temp_f0, -temp_f2); + sp4C = (s32) (sub_GAME_7F0B05C0(sp20, sp1C, (arg6 - arg0), (arg7 - arg1)) * sp2C); + sp2C = sub_GAME_7F0B05C0((arg6 - arg4), (arg7 - arg5), sp28, sp24); + if (sp4C >= arg8) + { + // Node 1 + sp44 = 0; + } + // Node 2 + phi_a0 = sp44; + if ((sub_GAME_7F0B05C0(sp20, sp1C, (arg2 - arg4), (arg3 - arg5)) * sp2C) >= arg8) + { + // Node 3 + phi_a0 = 0; + } + // Node 4 + return phi_a0; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B07BC +/* 0E52EC 7F0B07BC 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0E52F0 7F0B07C0 E7AC0068 */ swc1 $f12, 0x68($sp) +/* 0E52F4 7F0B07C4 AFA60070 */ sw $a2, 0x70($sp) +/* 0E52F8 7F0B07C8 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 0E52FC 7F0B07CC C7A60068 */ lwc1 $f6, 0x68($sp) +/* 0E5300 7F0B07D0 E7AE006C */ swc1 $f14, 0x6c($sp) +/* 0E5304 7F0B07D4 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 0E5308 7F0B07D8 46062301 */ sub.s $f12, $f4, $f6 +/* 0E530C 7F0B07DC C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 0E5310 7F0B07E0 C7B00078 */ lwc1 $f16, 0x78($sp) +/* 0E5314 7F0B07E4 AFA70074 */ sw $a3, 0x74($sp) +/* 0E5318 7F0B07E8 46045081 */ sub.s $f2, $f10, $f4 +/* 0E531C 7F0B07EC C7A80074 */ lwc1 $f8, 0x74($sp) +/* 0E5320 7F0B07F0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E5324 7F0B07F4 46103001 */ sub.s $f0, $f6, $f16 +/* 0E5328 7F0B07F8 240E0001 */ li $t6, 1 +/* 0E532C 7F0B07FC AFAE0044 */ sw $t6, 0x44($sp) +/* 0E5330 7F0B0800 460A4381 */ sub.s $f14, $f8, $f10 +/* 0E5334 7F0B0804 E7A00028 */ swc1 $f0, 0x28($sp) +/* 0E5338 7F0B0808 E7A20024 */ swc1 $f2, 0x24($sp) +/* 0E533C 7F0B080C 46001207 */ neg.s $f8, $f2 +/* 0E5340 7F0B0810 46000487 */ neg.s $f18, $f0 +/* 0E5344 7F0B0814 44074000 */ mfc1 $a3, $f8 +/* 0E5348 7F0B0818 44069000 */ mfc1 $a2, $f18 +/* 0E534C 7F0B081C E7AE001C */ swc1 $f14, 0x1c($sp) +/* 0E5350 7F0B0820 0FC2C170 */ jal sub_GAME_7F0B05C0 +/* 0E5354 7F0B0824 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 0E5358 7F0B0828 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 0E535C 7F0B082C C7B00068 */ lwc1 $f16, 0x68($sp) +/* 0E5360 7F0B0830 C7AA0084 */ lwc1 $f10, 0x84($sp) +/* 0E5364 7F0B0834 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 0E5368 7F0B0838 46103481 */ sub.s $f18, $f6, $f16 +/* 0E536C 7F0B083C C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 0E5370 7F0B0840 C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 0E5374 7F0B0844 46045201 */ sub.s $f8, $f10, $f4 +/* 0E5378 7F0B0848 44069000 */ mfc1 $a2, $f18 +/* 0E537C 7F0B084C AFA2002C */ sw $v0, 0x2c($sp) +/* 0E5380 7F0B0850 44074000 */ mfc1 $a3, $f8 +/* 0E5384 7F0B0854 0FC2C170 */ jal sub_GAME_7F0B05C0 +/* 0E5388 7F0B0858 00000000 */ nop +/* 0E538C 7F0B085C 8FAF002C */ lw $t7, 0x2c($sp) +/* 0E5390 7F0B0860 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 0E5394 7F0B0864 C7B00078 */ lwc1 $f16, 0x78($sp) +/* 0E5398 7F0B0868 004F0019 */ multu $v0, $t7 +/* 0E539C 7F0B086C C7B20084 */ lwc1 $f18, 0x84($sp) +/* 0E53A0 7F0B0870 C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 0E53A4 7F0B0874 46103301 */ sub.s $f12, $f6, $f16 +/* 0E53A8 7F0B0878 8FA60028 */ lw $a2, 0x28($sp) +/* 0E53AC 7F0B087C 8FA70024 */ lw $a3, 0x24($sp) +/* 0E53B0 7F0B0880 460A9381 */ sub.s $f14, $f18, $f10 +/* 0E53B4 7F0B0884 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 0E53B8 7F0B0888 0000C012 */ mflo $t8 +/* 0E53BC 7F0B088C AFB8004C */ sw $t8, 0x4c($sp) +/* 0E53C0 7F0B0890 0FC2C170 */ jal sub_GAME_7F0B05C0 +/* 0E53C4 7F0B0894 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 0E53C8 7F0B0898 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 0E53CC 7F0B089C C7A80078 */ lwc1 $f8, 0x78($sp) +/* 0E53D0 7F0B08A0 C7B00074 */ lwc1 $f16, 0x74($sp) +/* 0E53D4 7F0B08A4 C7B2007C */ lwc1 $f18, 0x7c($sp) +/* 0E53D8 7F0B08A8 46082181 */ sub.s $f6, $f4, $f8 +/* 0E53DC 7F0B08AC C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 0E53E0 7F0B08B0 C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 0E53E4 7F0B08B4 46128281 */ sub.s $f10, $f16, $f18 +/* 0E53E8 7F0B08B8 44063000 */ mfc1 $a2, $f6 +/* 0E53EC 7F0B08BC AFA2002C */ sw $v0, 0x2c($sp) +/* 0E53F0 7F0B08C0 44075000 */ mfc1 $a3, $f10 +/* 0E53F4 7F0B08C4 0FC2C170 */ jal sub_GAME_7F0B05C0 +/* 0E53F8 7F0B08C8 00000000 */ nop +/* 0E53FC 7F0B08CC 8FA30088 */ lw $v1, 0x88($sp) +/* 0E5400 7F0B08D0 8FB9004C */ lw $t9, 0x4c($sp) +/* 0E5404 7F0B08D4 0323082A */ slt $at, $t9, $v1 +/* 0E5408 7F0B08D8 54200003 */ bnezl $at, .L7F0B08E8 +/* 0E540C 7F0B08DC 8FA8002C */ lw $t0, 0x2c($sp) +/* 0E5410 7F0B08E0 AFA00044 */ sw $zero, 0x44($sp) +/* 0E5414 7F0B08E4 8FA8002C */ lw $t0, 0x2c($sp) +.L7F0B08E8: +/* 0E5418 7F0B08E8 8FA40044 */ lw $a0, 0x44($sp) +/* 0E541C 7F0B08EC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E5420 7F0B08F0 00480019 */ multu $v0, $t0 +/* 0E5424 7F0B08F4 27BD0068 */ addiu $sp, $sp, 0x68 +/* 0E5428 7F0B08F8 00004812 */ mflo $t1 +/* 0E542C 7F0B08FC 0123082A */ slt $at, $t1, $v1 +/* 0E5430 7F0B0900 14200002 */ bnez $at, .L7F0B090C +/* 0E5434 7F0B0904 00000000 */ nop +/* 0E5438 7F0B0908 00002025 */ move $a0, $zero +.L7F0B090C: +/* 0E543C 7F0B090C 03E00008 */ jr $ra +/* 0E5440 7F0B0910 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B0914(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0914 +/* 0E5444 7F0B0914 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0E5448 7F0B0918 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 0E544C 7F0B091C 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E5450 7F0B0920 4485A000 */ mtc1 $a1, $f20 +/* 0E5454 7F0B0924 C4200F44 */ lwc1 $f0, %lo(D_80040F44)($at) +/* 0E5458 7F0B0928 F7B60038 */ sdc1 $f22, 0x38($sp) +/* 0E545C 7F0B092C 4486B000 */ mtc1 $a2, $f22 +/* 0E5460 7F0B0930 4600A502 */ mul.s $f20, $f20, $f0 +/* 0E5464 7F0B0934 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 0E5468 7F0B0938 4487C000 */ mtc1 $a3, $f24 +/* 0E546C 7F0B093C 4600B582 */ mul.s $f22, $f22, $f0 +/* 0E5470 7F0B0940 F7BA0048 */ sdc1 $f26, 0x48($sp) +/* 0E5474 7F0B0944 C7BA00C8 */ lwc1 $f26, 0xc8($sp) +/* 0E5478 7F0B0948 4600C602 */ mul.s $f24, $f24, $f0 +/* 0E547C 7F0B094C AFBF0084 */ sw $ra, 0x84($sp) +/* 0E5480 7F0B0950 AFBE0080 */ sw $fp, 0x80($sp) +/* 0E5484 7F0B0954 4600D682 */ mul.s $f26, $f26, $f0 +/* 0E5488 7F0B0958 AFB7007C */ sw $s7, 0x7c($sp) +/* 0E548C 7F0B095C AFB60078 */ sw $s6, 0x78($sp) +/* 0E5490 7F0B0960 AFB50074 */ sw $s5, 0x74($sp) +/* 0E5494 7F0B0964 AFB40070 */ sw $s4, 0x70($sp) +/* 0E5498 7F0B0968 AFB3006C */ sw $s3, 0x6c($sp) +/* 0E549C 7F0B096C AFB20068 */ sw $s2, 0x68($sp) +/* 0E54A0 7F0B0970 AFB10064 */ sw $s1, 0x64($sp) +/* 0E54A4 7F0B0974 AFB00060 */ sw $s0, 0x60($sp) +/* 0E54A8 7F0B0978 F7BE0058 */ sdc1 $f30, 0x58($sp) +/* 0E54AC 7F0B097C F7BC0050 */ sdc1 $f28, 0x50($sp) +/* 0E54B0 7F0B0980 AFA400B8 */ sw $a0, 0xb8($sp) +/* 0E54B4 7F0B0984 8C820000 */ lw $v0, ($a0) +/* 0E54B8 7F0B0988 4616D701 */ sub.s $f28, $f26, $f22 +/* 0E54BC 7F0B098C 00807025 */ move $t6, $a0 +/* 0E54C0 7F0B0990 0000A825 */ move $s5, $zero +/* 0E54C4 7F0B0994 AFA0008C */ sw $zero, 0x8c($sp) +/* 0E54C8 7F0B0998 4600E707 */ neg.s $f28, $f28 +/* 0E54CC 7F0B099C 4614C781 */ sub.s $f30, $f24, $f20 +/* 0E54D0 7F0B09A0 00008825 */ move $s1, $zero +/* 0E54D4 7F0B09A4 0000A025 */ move $s4, $zero +/* 0E54D8 7F0B09A8 8FBE0098 */ lw $fp, 0x98($sp) +/* 0E54DC 7F0B09AC 00409825 */ move $s3, $v0 +/* 0E54E0 7F0B09B0 0040B025 */ move $s6, $v0 +/* 0E54E4 7F0B09B4 0040B825 */ move $s7, $v0 +.L7F0B09B8: +/* 0E54E8 7F0B09B8 8FAF00CC */ lw $t7, 0xcc($sp) +/* 0E54EC 7F0B09BC 02602025 */ move $a0, $s3 +/* 0E54F0 7F0B09C0 51E00005 */ beql $t7, $zero, .L7F0B09D8 +/* 0E54F4 7F0B09C4 86640006 */ lh $a0, 6($s3) +/* 0E54F8 7F0B09C8 02C02825 */ move $a1, $s6 +/* 0E54FC 7F0B09CC 01E0F809 */ jalr $t7 +/* 0E5500 7F0B09D0 8FA600D0 */ lw $a2, 0xd0($sp) +/* 0E5504 7F0B09D4 86640006 */ lh $a0, 6($s3) +.L7F0B09D8: +/* 0E5508 7F0B09D8 02608025 */ move $s0, $s3 +/* 0E550C 7F0B09DC 0004C303 */ sra $t8, $a0, 0xc +/* 0E5510 7F0B09E0 3319000F */ andi $t9, $t8, 0xf +/* 0E5514 7F0B09E4 1B200051 */ blez $t9, .L7F0B0B2C +/* 0E5518 7F0B09E8 03202025 */ move $a0, $t9 +.L7F0B09EC: +/* 0E551C 7F0B09EC 26320001 */ addiu $s2, $s1, 1 +/* 0E5520 7F0B09F0 0244001A */ div $zero, $s2, $a0 +/* 0E5524 7F0B09F4 00001810 */ mfhi $v1 +/* 0E5528 7F0B09F8 000358C0 */ sll $t3, $v1, 3 +/* 0E552C 7F0B09FC 026B1021 */ addu $v0, $s3, $t3 +/* 0E5530 7F0B0A00 8445000C */ lh $a1, 0xc($v0) +/* 0E5534 7F0B0A04 8608000C */ lh $t0, 0xc($s0) +/* 0E5538 7F0B0A08 84490008 */ lh $t1, 8($v0) +/* 0E553C 7F0B0A0C 860A0008 */ lh $t2, 8($s0) +/* 0E5540 7F0B0A10 00A86023 */ subu $t4, $a1, $t0 +/* 0E5544 7F0B0A14 448C3000 */ mtc1 $t4, $f6 +/* 0E5548 7F0B0A18 012A6823 */ subu $t5, $t1, $t2 +/* 0E554C 7F0B0A1C 448D8000 */ mtc1 $t5, $f16 +/* 0E5550 7F0B0A20 46803220 */ cvt.s.w $f8, $f6 +/* 0E5554 7F0B0A24 44802000 */ mtc1 $zero, $f4 +/* 0E5558 7F0B0A28 14800002 */ bnez $a0, .L7F0B0A34 +/* 0E555C 7F0B0A2C 00000000 */ nop +/* 0E5560 7F0B0A30 0007000D */ break 7 +.L7F0B0A34: +/* 0E5564 7F0B0A34 2401FFFF */ li $at, -1 +/* 0E5568 7F0B0A38 14810004 */ bne $a0, $at, .L7F0B0A4C +/* 0E556C 7F0B0A3C 3C018000 */ lui $at, 0x8000 +/* 0E5570 7F0B0A40 16410002 */ bne $s2, $at, .L7F0B0A4C +/* 0E5574 7F0B0A44 00000000 */ nop +/* 0E5578 7F0B0A48 0006000D */ break 6 +.L7F0B0A4C: +/* 0E557C 7F0B0A4C 468084A0 */ cvt.s.w $f18, $f16 +/* 0E5580 7F0B0A50 461E4282 */ mul.s $f10, $f8, $f30 +/* 0E5584 7F0B0A54 00000000 */ nop +/* 0E5588 7F0B0A58 4612E182 */ mul.s $f6, $f28, $f18 +/* 0E558C 7F0B0A5C 46065200 */ add.s $f8, $f10, $f6 +/* 0E5590 7F0B0A60 4604403E */ c.le.s $f8, $f4 +/* 0E5594 7F0B0A64 00000000 */ nop +/* 0E5598 7F0B0A68 45000028 */ bc1f .L7F0B0B0C +/* 0E559C 7F0B0A6C 00000000 */ nop +/* 0E55A0 7F0B0A70 448A8000 */ mtc1 $t2, $f16 +/* 0E55A4 7F0B0A74 44885000 */ mtc1 $t0, $f10 +/* 0E55A8 7F0B0A78 44892000 */ mtc1 $t1, $f4 +/* 0E55AC 7F0B0A7C 468084A0 */ cvt.s.w $f18, $f16 +/* 0E55B0 7F0B0A80 44858000 */ mtc1 $a1, $f16 +/* 0E55B4 7F0B0A84 9602000E */ lhu $v0, 0xe($s0) +/* 0E55B8 7F0B0A88 4406C000 */ mfc1 $a2, $f24 +/* 0E55BC 7F0B0A8C 4407D000 */ mfc1 $a3, $f26 +/* 0E55C0 7F0B0A90 468051A0 */ cvt.s.w $f6, $f10 +/* 0E55C4 7F0B0A94 E7B20010 */ swc1 $f18, 0x10($sp) +/* 0E55C8 7F0B0A98 00027103 */ sra $t6, $v0, 4 +/* 0E55CC 7F0B0A9C 000E782B */ sltu $t7, $zero, $t6 +/* 0E55D0 7F0B0AA0 AFAF0020 */ sw $t7, 0x20($sp) +/* 0E55D4 7F0B0AA4 46802220 */ cvt.s.w $f8, $f4 +/* 0E55D8 7F0B0AA8 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0E55DC 7F0B0AAC 4600A306 */ mov.s $f12, $f20 +/* 0E55E0 7F0B0AB0 4600B386 */ mov.s $f14, $f22 +/* 0E55E4 7F0B0AB4 468084A0 */ cvt.s.w $f18, $f16 +/* 0E55E8 7F0B0AB8 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0E55EC 7F0B0ABC 0FC2C1EF */ jal sub_GAME_7F0B07BC +/* 0E55F0 7F0B0AC0 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 0E55F4 7F0B0AC4 50400012 */ beql $v0, $zero, .L7F0B0B10 +/* 0E55F8 7F0B0AC8 86640006 */ lh $a0, 6($s3) +/* 0E55FC 7F0B0ACC 9603000E */ lhu $v1, 0xe($s0) +/* 0E5600 7F0B0AD0 3C198004 */ lui $t9, %hi(base_ptr_connection_vals) +/* 0E5604 7F0B0AD4 8F390F58 */ lw $t9, %lo(base_ptr_connection_vals)($t9) +/* 0E5608 7F0B0AD8 0003C0C0 */ sll $t8, $v1, 3 +/* 0E560C 7F0B0ADC 26940001 */ addiu $s4, $s4, 1 +/* 0E5610 7F0B0AE0 03191021 */ addu $v0, $t8, $t9 +/* 0E5614 7F0B0AE4 12C20009 */ beq $s6, $v0, .L7F0B0B0C +/* 0E5618 7F0B0AE8 00000000 */ nop +/* 0E561C 7F0B0AEC 12E20007 */ beq $s7, $v0, .L7F0B0B0C +/* 0E5620 7F0B0AF0 00000000 */ nop +/* 0E5624 7F0B0AF4 00035903 */ sra $t3, $v1, 4 +/* 0E5628 7F0B0AF8 11600003 */ beqz $t3, .L7F0B0B08 +/* 0E562C 7F0B0AFC 0220F025 */ move $fp, $s1 +/* 0E5630 7F0B0B00 10000002 */ b .L7F0B0B0C +/* 0E5634 7F0B0B04 0040A825 */ move $s5, $v0 +.L7F0B0B08: +/* 0E5638 7F0B0B08 0000A825 */ move $s5, $zero +.L7F0B0B0C: +/* 0E563C 7F0B0B0C 86640006 */ lh $a0, 6($s3) +.L7F0B0B10: +/* 0E5640 7F0B0B10 02408825 */ move $s1, $s2 +/* 0E5644 7F0B0B14 26100008 */ addiu $s0, $s0, 8 +/* 0E5648 7F0B0B18 00046303 */ sra $t4, $a0, 0xc +/* 0E564C 7F0B0B1C 318D000F */ andi $t5, $t4, 0xf +/* 0E5650 7F0B0B20 024D082A */ slt $at, $s2, $t5 +/* 0E5654 7F0B0B24 1420FFB1 */ bnez $at, .L7F0B09EC +/* 0E5658 7F0B0B28 01A02025 */ move $a0, $t5 +.L7F0B0B2C: +/* 0E565C 7F0B0B2C 02C0B825 */ move $s7, $s6 +/* 0E5660 7F0B0B30 0260B025 */ move $s6, $s3 +/* 0E5664 7F0B0B34 02751026 */ xor $v0, $s3, $s5 +/* 0E5668 7F0B0B38 14400002 */ bnez $v0, .L7F0B0B44 +/* 0E566C 7F0B0B3C 02A09825 */ move $s3, $s5 +/* 0E5670 7F0B0B40 0000A025 */ move $s4, $zero +.L7F0B0B44: +/* 0E5674 7F0B0B44 16800003 */ bnez $s4, .L7F0B0B54 +/* 0E5678 7F0B0B48 8FAE008C */ lw $t6, 0x8c($sp) +/* 0E567C 7F0B0B4C 10000013 */ b .L7F0B0B9C +/* 0E5680 7F0B0B50 24020001 */ li $v0, 1 +.L7F0B0B54: +/* 0E5684 7F0B0B54 29C201F5 */ slti $v0, $t6, 0x1f5 +/* 0E5688 7F0B0B58 38420001 */ xori $v0, $v0, 1 +/* 0E568C 7F0B0B5C 25CF0001 */ addiu $t7, $t6, 1 +/* 0E5690 7F0B0B60 14400005 */ bnez $v0, .L7F0B0B78 +/* 0E5694 7F0B0B64 AFAF008C */ sw $t7, 0x8c($sp) +/* 0E5698 7F0B0B68 12A00003 */ beqz $s5, .L7F0B0B78 +/* 0E569C 7F0B0B6C 8FB800B8 */ lw $t8, 0xb8($sp) +/* 0E56A0 7F0B0B70 16800007 */ bnez $s4, .L7F0B0B90 +/* 0E56A4 7F0B0B74 00008825 */ move $s1, $zero +.L7F0B0B78: +/* 0E56A8 7F0B0B78 3C018008 */ lui $at, %hi(dword_CODE_bss_8007B9E4) +/* 0E56AC 7F0B0B7C AC36B9E4 */ sw $s6, %lo(dword_CODE_bss_8007B9E4)($at) +/* 0E56B0 7F0B0B80 3C018008 */ lui $at, %hi(dword_CODE_bss_8007B9E8) +/* 0E56B4 7F0B0B84 AC3EB9E8 */ sw $fp, %lo(dword_CODE_bss_8007B9E8)($at) +/* 0E56B8 7F0B0B88 10000004 */ b .L7F0B0B9C +/* 0E56BC 7F0B0B8C 00001025 */ move $v0, $zero +.L7F0B0B90: +/* 0E56C0 7F0B0B90 AF150000 */ sw $s5, ($t8) +/* 0E56C4 7F0B0B94 1000FF88 */ b .L7F0B09B8 +/* 0E56C8 7F0B0B98 0000A025 */ move $s4, $zero +.L7F0B0B9C: +/* 0E56CC 7F0B0B9C 8FBF0084 */ lw $ra, 0x84($sp) +/* 0E56D0 7F0B0BA0 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 0E56D4 7F0B0BA4 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 0E56D8 7F0B0BA8 D7B80040 */ ldc1 $f24, 0x40($sp) +/* 0E56DC 7F0B0BAC D7BA0048 */ ldc1 $f26, 0x48($sp) +/* 0E56E0 7F0B0BB0 D7BC0050 */ ldc1 $f28, 0x50($sp) +/* 0E56E4 7F0B0BB4 D7BE0058 */ ldc1 $f30, 0x58($sp) +/* 0E56E8 7F0B0BB8 8FB00060 */ lw $s0, 0x60($sp) +/* 0E56EC 7F0B0BBC 8FB10064 */ lw $s1, 0x64($sp) +/* 0E56F0 7F0B0BC0 8FB20068 */ lw $s2, 0x68($sp) +/* 0E56F4 7F0B0BC4 8FB3006C */ lw $s3, 0x6c($sp) +/* 0E56F8 7F0B0BC8 8FB40070 */ lw $s4, 0x70($sp) +/* 0E56FC 7F0B0BCC 8FB50074 */ lw $s5, 0x74($sp) +/* 0E5700 7F0B0BD0 8FB60078 */ lw $s6, 0x78($sp) +/* 0E5704 7F0B0BD4 8FB7007C */ lw $s7, 0x7c($sp) +/* 0E5708 7F0B0BD8 8FBE0080 */ lw $fp, 0x80($sp) +/* 0E570C 7F0B0BDC 03E00008 */ jr $ra +/* 0E5710 7F0B0BE0 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B0BE4(s32 arg1, ? arg2, ? arg3, f32 arg4) { + sub_GAME_7F0B0914(arg1, arg2, arg1, arg2, arg4, 0, 0); +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0BE4 +/* 0E5714 7F0B0BE4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0E5718 7F0B0BE8 44856000 */ mtc1 $a1, $f12 +/* 0E571C 7F0B0BEC 44867000 */ mtc1 $a2, $f14 +/* 0E5720 7F0B0BF0 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0E5724 7F0B0BF4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0E5728 7F0B0BF8 44056000 */ mfc1 $a1, $f12 +/* 0E572C 7F0B0BFC 44067000 */ mfc1 $a2, $f14 +/* 0E5730 7F0B0C00 AFA70034 */ sw $a3, 0x34($sp) +/* 0E5734 7F0B0C04 AFA00014 */ sw $zero, 0x14($sp) +/* 0E5738 7F0B0C08 AFA00018 */ sw $zero, 0x18($sp) +/* 0E573C 7F0B0C0C 0FC2C245 */ jal sub_GAME_7F0B0914 +/* 0E5740 7F0B0C10 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0E5744 7F0B0C14 8FBF0024 */ lw $ra, 0x24($sp) +/* 0E5748 7F0B0C18 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0E574C 7F0B0C1C 03E00008 */ jr $ra +/* 0E5750 7F0B0C20 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B0C24(s32 arg1, ? arg2, ? arg3, f32 arg4, ?32 arg5, void *arg6, ?32 arg7) { + ?32 sp30; + ?32 sp34; + ?32 sp38; + ?32 sp3C; + + // Node 0 + sp34 = 0; + sp3C = -1; + sp30 = arg5; + sp38 = arg7; + *arg6 = sp34; + return sub_GAME_7F0B0914(arg1, arg2, arg1, arg2, arg4, &sub_GAME_7F0B0C98, &sp30); +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0C24 +/* 0E5754 7F0B0C24 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0E5758 7F0B0C28 44856000 */ mtc1 $a1, $f12 +/* 0E575C 7F0B0C2C 44867000 */ mtc1 $a2, $f14 +/* 0E5760 7F0B0C30 8FAE0054 */ lw $t6, 0x54($sp) +/* 0E5764 7F0B0C34 8FAF005C */ lw $t7, 0x5c($sp) +/* 0E5768 7F0B0C38 C7A40050 */ lwc1 $f4, 0x50($sp) +/* 0E576C 7F0B0C3C 3C197F0B */ lui $t9, %hi(sub_GAME_7F0B0C98) # $t9, 0x7f0b +/* 0E5770 7F0B0C40 AFBF0024 */ sw $ra, 0x24($sp) +/* 0E5774 7F0B0C44 2418FFFF */ li $t8, -1 +/* 0E5778 7F0B0C48 27390C98 */ addiu $t9, %lo(sub_GAME_7F0B0C98) # addiu $t9, $t9, 0xc98 +/* 0E577C 7F0B0C4C 27A80030 */ addiu $t0, $sp, 0x30 +/* 0E5780 7F0B0C50 44056000 */ mfc1 $a1, $f12 +/* 0E5784 7F0B0C54 44067000 */ mfc1 $a2, $f14 +/* 0E5788 7F0B0C58 AFA7004C */ sw $a3, 0x4c($sp) +/* 0E578C 7F0B0C5C AFA00034 */ sw $zero, 0x34($sp) +/* 0E5790 7F0B0C60 AFB8003C */ sw $t8, 0x3c($sp) +/* 0E5794 7F0B0C64 AFA80018 */ sw $t0, 0x18($sp) +/* 0E5798 7F0B0C68 AFB90014 */ sw $t9, 0x14($sp) +/* 0E579C 7F0B0C6C AFAE0030 */ sw $t6, 0x30($sp) +/* 0E57A0 7F0B0C70 AFAF0038 */ sw $t7, 0x38($sp) +/* 0E57A4 7F0B0C74 0FC2C245 */ jal sub_GAME_7F0B0914 +/* 0E57A8 7F0B0C78 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0E57AC 7F0B0C7C 8FA90034 */ lw $t1, 0x34($sp) +/* 0E57B0 7F0B0C80 8FAA0058 */ lw $t2, 0x58($sp) +/* 0E57B4 7F0B0C84 AD490000 */ sw $t1, ($t2) +/* 0E57B8 7F0B0C88 8FBF0024 */ lw $ra, 0x24($sp) +/* 0E57BC 7F0B0C8C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0E57C0 7F0B0C90 03E00008 */ jr $ra +/* 0E57C4 7F0B0C94 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B0C98(void *arg0, s32 arg1, void *arg2) { + // Node 0 + if (arg2->unkC != arg0->unk3) + { + // Node 1 + if (arg2->unk4 < arg2->unk8) + { + // Node 2 + **arg2 = (s32) arg0->unk3; + arg2->unkC = (s32) arg0->unk3; + *arg2 = (void *) (*arg2 + 4); + arg2->unk4 = (s32) (arg2->unk4 + 1); + } + } + // Node 3 + return arg0->unk3; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0C98 +/* 0E57C8 7F0B0C98 AFA50004 */ sw $a1, 4($sp) +/* 0E57CC 7F0B0C9C 8CCE000C */ lw $t6, 0xc($a2) +/* 0E57D0 7F0B0CA0 90820003 */ lbu $v0, 3($a0) +/* 0E57D4 7F0B0CA4 11C2000F */ beq $t6, $v0, .L7F0B0CE4 +/* 0E57D8 7F0B0CA8 00000000 */ nop +/* 0E57DC 7F0B0CAC 8CCF0004 */ lw $t7, 4($a2) +/* 0E57E0 7F0B0CB0 8CD80008 */ lw $t8, 8($a2) +/* 0E57E4 7F0B0CB4 01F8082A */ slt $at, $t7, $t8 +/* 0E57E8 7F0B0CB8 1020000A */ beqz $at, .L7F0B0CE4 +/* 0E57EC 7F0B0CBC 00000000 */ nop +/* 0E57F0 7F0B0CC0 8CD90000 */ lw $t9, ($a2) +/* 0E57F4 7F0B0CC4 AF220000 */ sw $v0, ($t9) +/* 0E57F8 7F0B0CC8 8CC80000 */ lw $t0, ($a2) +/* 0E57FC 7F0B0CCC 8CCA0004 */ lw $t2, 4($a2) +/* 0E5800 7F0B0CD0 ACC2000C */ sw $v0, 0xc($a2) +/* 0E5804 7F0B0CD4 25090004 */ addiu $t1, $t0, 4 +/* 0E5808 7F0B0CD8 254B0001 */ addiu $t3, $t2, 1 +/* 0E580C 7F0B0CDC ACC90000 */ sw $t1, ($a2) +/* 0E5810 7F0B0CE0 ACCB0004 */ sw $t3, 4($a2) +.L7F0B0CE4: +/* 0E5814 7F0B0CE4 03E00008 */ jr $ra +/* 0E5818 7F0B0CE8 00000000 */ nop +) +#endif + + + + + +void sub_GAME_7F0B0CEC(void) { + sub_GAME_7F0B0C98(); +} + + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B0D0C(void *arg0, s32 arg1, ? arg2, void *arg3, ? arg4, f32 arg5, void *arg6, s32 arg7) { + s32 sp40; + void *sp44; + void *phi_v0; + + // Node 0 + sp40 = 0; + if (*arg3 != 0) + { + // Node 1 + if (arg0->unk3 == *arg3->unk3) + { + // Node 2 + *arg6 = (s32) arg0->unk3; + return sp40; + } + // Node 3 + if (sub_GAME_7F0B8FD0((arg0->unk3 & 0xff), (*arg3->unk3 & 0xff), arg0->unk3, *arg3->unk3) != 0) + { + // Node 4 + *arg6 = (s32) arg0->unk3; + arg6->unk4 = (s32) *arg3->unk3; + return sp40; + } + } + // Node 5 + if (sub_GAME_7F0B0C24(&sp44, arg1, arg2, arg4, arg5, arg6, &sp40, arg7) == 0) + { + // Node 6 + return sp40; + } + // Node 7 + if (arg7 < sp40) + { + // Node 8 + sp40 = arg7; + } + // Node 9 + phi_v0 = *arg3; + if (*arg3 == 0) + { + // Node 10 + *arg3 = sp44; + phi_v0 = sp44; + } + // Node 11 + if (sp44 == phi_v0) + { + // Node 13 + // Node 14 + return sp40; + } + // Node 12 + return sp40; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0D0C +/* 0E583C 7F0B0D0C 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0E5840 7F0B0D10 AFBF002C */ sw $ra, 0x2c($sp) +/* 0E5844 7F0B0D14 AFB00028 */ sw $s0, 0x28($sp) +/* 0E5848 7F0B0D18 AFA40048 */ sw $a0, 0x48($sp) +/* 0E584C 7F0B0D1C AFA5004C */ sw $a1, 0x4c($sp) +/* 0E5850 7F0B0D20 AFA60050 */ sw $a2, 0x50($sp) +/* 0E5854 7F0B0D24 AFA40044 */ sw $a0, 0x44($sp) +/* 0E5858 7F0B0D28 AFA00040 */ sw $zero, 0x40($sp) +/* 0E585C 7F0B0D2C 8CE20000 */ lw $v0, ($a3) +/* 0E5860 7F0B0D30 00E08025 */ move $s0, $a3 +/* 0E5864 7F0B0D34 50400016 */ beql $v0, $zero, .L7F0B0D90 +/* 0E5868 7F0B0D38 8FA30060 */ lw $v1, 0x60($sp) +/* 0E586C 7F0B0D3C 90860003 */ lbu $a2, 3($a0) +/* 0E5870 7F0B0D40 90470003 */ lbu $a3, 3($v0) +/* 0E5874 7F0B0D44 8FA30060 */ lw $v1, 0x60($sp) +/* 0E5878 7F0B0D48 24020001 */ li $v0, 1 +/* 0E587C 7F0B0D4C 14C70003 */ bne $a2, $a3, .L7F0B0D5C +/* 0E5880 7F0B0D50 30C400FF */ andi $a0, $a2, 0xff +/* 0E5884 7F0B0D54 1000002E */ b .L7F0B0E10 +/* 0E5888 7F0B0D58 AC660000 */ sw $a2, ($v1) +.L7F0B0D5C: +/* 0E588C 7F0B0D5C 0FC2E3F4 */ jal sub_GAME_7F0B8FD0 +/* 0E5890 7F0B0D60 30E500FF */ andi $a1, $a3, 0xff +/* 0E5894 7F0B0D64 10400009 */ beqz $v0, .L7F0B0D8C +/* 0E5898 7F0B0D68 8FAF0048 */ lw $t7, 0x48($sp) +/* 0E589C 7F0B0D6C 8FA30060 */ lw $v1, 0x60($sp) +/* 0E58A0 7F0B0D70 91F80003 */ lbu $t8, 3($t7) +/* 0E58A4 7F0B0D74 24020002 */ li $v0, 2 +/* 0E58A8 7F0B0D78 AC780000 */ sw $t8, ($v1) +/* 0E58AC 7F0B0D7C 8E190000 */ lw $t9, ($s0) +/* 0E58B0 7F0B0D80 93280003 */ lbu $t0, 3($t9) +/* 0E58B4 7F0B0D84 10000022 */ b .L7F0B0E10 +/* 0E58B8 7F0B0D88 AC680004 */ sw $t0, 4($v1) +.L7F0B0D8C: +/* 0E58BC 7F0B0D8C 8FA30060 */ lw $v1, 0x60($sp) +.L7F0B0D90: +/* 0E58C0 7F0B0D90 C7A4005C */ lwc1 $f4, 0x5c($sp) +/* 0E58C4 7F0B0D94 8FAA0064 */ lw $t2, 0x64($sp) +/* 0E58C8 7F0B0D98 27A90040 */ addiu $t1, $sp, 0x40 +/* 0E58CC 7F0B0D9C AFA90018 */ sw $t1, 0x18($sp) +/* 0E58D0 7F0B0DA0 27A40044 */ addiu $a0, $sp, 0x44 +/* 0E58D4 7F0B0DA4 8FA5004C */ lw $a1, 0x4c($sp) +/* 0E58D8 7F0B0DA8 8FA60050 */ lw $a2, 0x50($sp) +/* 0E58DC 7F0B0DAC 8FA70058 */ lw $a3, 0x58($sp) +/* 0E58E0 7F0B0DB0 AFA30014 */ sw $v1, 0x14($sp) +/* 0E58E4 7F0B0DB4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0E58E8 7F0B0DB8 0FC2C309 */ jal sub_GAME_7F0B0C24 +/* 0E58EC 7F0B0DBC AFAA001C */ sw $t2, 0x1c($sp) +/* 0E58F0 7F0B0DC0 14400003 */ bnez $v0, .L7F0B0DD0 +/* 0E58F4 7F0B0DC4 8FA30064 */ lw $v1, 0x64($sp) +/* 0E58F8 7F0B0DC8 10000011 */ b .L7F0B0E10 +/* 0E58FC 7F0B0DCC 00001025 */ move $v0, $zero +.L7F0B0DD0: +/* 0E5900 7F0B0DD0 8FAB0040 */ lw $t3, 0x40($sp) +/* 0E5904 7F0B0DD4 006B082A */ slt $at, $v1, $t3 +/* 0E5908 7F0B0DD8 50200003 */ beql $at, $zero, .L7F0B0DE8 +/* 0E590C 7F0B0DDC 8E020000 */ lw $v0, ($s0) +/* 0E5910 7F0B0DE0 AFA30040 */ sw $v1, 0x40($sp) +/* 0E5914 7F0B0DE4 8E020000 */ lw $v0, ($s0) +.L7F0B0DE8: +/* 0E5918 7F0B0DE8 54400004 */ bnezl $v0, .L7F0B0DFC +/* 0E591C 7F0B0DEC 8FAD0044 */ lw $t5, 0x44($sp) +/* 0E5920 7F0B0DF0 8FA20044 */ lw $v0, 0x44($sp) +/* 0E5924 7F0B0DF4 AE020000 */ sw $v0, ($s0) +/* 0E5928 7F0B0DF8 8FAD0044 */ lw $t5, 0x44($sp) +.L7F0B0DFC: +/* 0E592C 7F0B0DFC 51A20004 */ beql $t5, $v0, .L7F0B0E10 +/* 0E5930 7F0B0E00 8FA20040 */ lw $v0, 0x40($sp) +/* 0E5934 7F0B0E04 10000002 */ b .L7F0B0E10 +/* 0E5938 7F0B0E08 00001025 */ move $v0, $zero +/* 0E593C 7F0B0E0C 8FA20040 */ lw $v0, 0x40($sp) +.L7F0B0E10: +/* 0E5940 7F0B0E10 8FBF002C */ lw $ra, 0x2c($sp) +/* 0E5944 7F0B0E14 8FB00028 */ lw $s0, 0x28($sp) +/* 0E5948 7F0B0E18 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0E594C 7F0B0E1C 03E00008 */ jr $ra +/* 0E5950 7F0B0E20 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B0E24(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B0E24 +/* 0E5954 7F0B0E24 27BDFEA0 */ addiu $sp, $sp, -0x160 +/* 0E5958 7F0B0E28 C7A40178 */ lwc1 $f4, 0x178($sp) +/* 0E595C 7F0B0E2C C7A6017C */ lwc1 $f6, 0x17c($sp) +/* 0E5960 7F0B0E30 F7BC0048 */ sdc1 $f28, 0x48($sp) +/* 0E5964 7F0B0E34 F7B80038 */ sdc1 $f24, 0x38($sp) +/* 0E5968 7F0B0E38 4604303E */ c.le.s $f6, $f4 +/* 0E596C 7F0B0E3C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E5970 7F0B0E40 4487C000 */ mtc1 $a3, $f24 +/* 0E5974 7F0B0E44 AFB00058 */ sw $s0, 0x58($sp) +/* 0E5978 7F0B0E48 F7BA0040 */ sdc1 $f26, 0x40($sp) +/* 0E597C 7F0B0E4C 44856000 */ mtc1 $a1, $f12 +/* 0E5980 7F0B0E50 44867000 */ mtc1 $a2, $f14 +/* 0E5984 7F0B0E54 4481E000 */ mtc1 $at, $f28 +/* 0E5988 7F0B0E58 C7BA0170 */ lwc1 $f26, 0x170($sp) +/* 0E598C 7F0B0E5C 27B000D0 */ addiu $s0, $sp, 0xd0 +/* 0E5990 7F0B0E60 AFBF007C */ sw $ra, 0x7c($sp) +/* 0E5994 7F0B0E64 AFBE0078 */ sw $fp, 0x78($sp) +/* 0E5998 7F0B0E68 AFB70074 */ sw $s7, 0x74($sp) +/* 0E599C 7F0B0E6C AFB60070 */ sw $s6, 0x70($sp) +/* 0E59A0 7F0B0E70 AFB5006C */ sw $s5, 0x6c($sp) +/* 0E59A4 7F0B0E74 AFB40068 */ sw $s4, 0x68($sp) +/* 0E59A8 7F0B0E78 AFB30064 */ sw $s3, 0x64($sp) +/* 0E59AC 7F0B0E7C AFB20060 */ sw $s2, 0x60($sp) +/* 0E59B0 7F0B0E80 AFB1005C */ sw $s1, 0x5c($sp) +/* 0E59B4 7F0B0E84 F7BE0050 */ sdc1 $f30, 0x50($sp) +/* 0E59B8 7F0B0E88 F7B60030 */ sdc1 $f22, 0x30($sp) +/* 0E59BC 7F0B0E8C F7B40028 */ sdc1 $f20, 0x28($sp) +/* 0E59C0 7F0B0E90 AFA40160 */ sw $a0, 0x160($sp) +/* 0E59C4 7F0B0E94 AFA00124 */ sw $zero, 0x124($sp) +/* 0E59C8 7F0B0E98 45000002 */ bc1f .L7F0B0EA4 +/* 0E59CC 7F0B0E9C 00007025 */ move $t6, $zero +/* 0E59D0 7F0B0EA0 240E0001 */ li $t6, 1 +.L7F0B0EA4: +/* 0E59D4 7F0B0EA4 8FAF0160 */ lw $t7, 0x160($sp) +/* 0E59D8 7F0B0EA8 AFAE00CC */ sw $t6, 0xcc($sp) +/* 0E59DC 7F0B0EAC 44056000 */ mfc1 $a1, $f12 +/* 0E59E0 7F0B0EB0 8DF80000 */ lw $t8, ($t7) +/* 0E59E4 7F0B0EB4 44067000 */ mfc1 $a2, $f14 +/* 0E59E8 7F0B0EB8 4407C000 */ mfc1 $a3, $f24 +/* 0E59EC 7F0B0EBC 27B90124 */ addiu $t9, $sp, 0x124 +/* 0E59F0 7F0B0EC0 240B0014 */ li $t3, 20 +/* 0E59F4 7F0B0EC4 0000A825 */ move $s5, $zero +/* 0E59F8 7F0B0EC8 E7AC014C */ swc1 $f12, 0x14c($sp) +/* 0E59FC 7F0B0ECC E7AE0150 */ swc1 $f14, 0x150($sp) +/* 0E5A00 7F0B0ED0 E7B80144 */ swc1 $f24, 0x144($sp) +/* 0E5A04 7F0B0ED4 E7BA0148 */ swc1 $f26, 0x148($sp) +/* 0E5A08 7F0B0ED8 AFAB001C */ sw $t3, 0x1c($sp) +/* 0E5A0C 7F0B0EDC AFB90018 */ sw $t9, 0x18($sp) +/* 0E5A10 7F0B0EE0 E7AE0168 */ swc1 $f14, 0x168($sp) +/* 0E5A14 7F0B0EE4 E7AC0164 */ swc1 $f12, 0x164($sp) +/* 0E5A18 7F0B0EE8 AFB00014 */ sw $s0, 0x14($sp) +/* 0E5A1C 7F0B0EEC E7BA0010 */ swc1 $f26, 0x10($sp) +/* 0E5A20 7F0B0EF0 27A40154 */ addiu $a0, $sp, 0x154 +/* 0E5A24 7F0B0EF4 0FC2C309 */ jal sub_GAME_7F0B0C24 +/* 0E5A28 7F0B0EF8 AFB80154 */ sw $t8, 0x154($sp) +/* 0E5A2C 7F0B0EFC 8FAC0124 */ lw $t4, 0x124($sp) +/* 0E5A30 7F0B0F00 3C078008 */ lui $a3, %hi(flt_CODE_bss_8007B9F8) +/* 0E5A34 7F0B0F04 AFA20158 */ sw $v0, 0x158($sp) +/* 0E5A38 7F0B0F08 29810015 */ slti $at, $t4, 0x15 +/* 0E5A3C 7F0B0F0C 14200003 */ bnez $at, .L7F0B0F1C +/* 0E5A40 7F0B0F10 24E7B9F8 */ addiu $a3, %lo(flt_CODE_bss_8007B9F8) # addiu $a3, $a3, -0x4608 +/* 0E5A44 7F0B0F14 240D0014 */ li $t5, 20 +/* 0E5A48 7F0B0F18 AFAD0124 */ sw $t5, 0x124($sp) +.L7F0B0F1C: +/* 0E5A4C 7F0B0F1C 1440003B */ bnez $v0, .L7F0B100C +/* 0E5A50 7F0B0F20 3C1E8008 */ lui $fp, %hi(flt_CODE_bss_8007B9F0) +/* 0E5A54 7F0B0F24 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007B9E4) +/* 0E5A58 7F0B0F28 8C42B9E4 */ lw $v0, %lo(dword_CODE_bss_8007B9E4)($v0) +/* 0E5A5C 7F0B0F2C 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007B9E8) +/* 0E5A60 7F0B0F30 8C63B9E8 */ lw $v1, %lo(dword_CODE_bss_8007B9E8)($v1) +/* 0E5A64 7F0B0F34 844F0006 */ lh $t7, 6($v0) +/* 0E5A68 7F0B0F38 240B0001 */ li $t3, 1 +/* 0E5A6C 7F0B0F3C 246E0001 */ addiu $t6, $v1, 1 +/* 0E5A70 7F0B0F40 000FC303 */ sra $t8, $t7, 0xc +/* 0E5A74 7F0B0F44 3319000F */ andi $t9, $t8, 0xf +/* 0E5A78 7F0B0F48 01D9001A */ div $zero, $t6, $t9 +/* 0E5A7C 7F0B0F4C 000360C0 */ sll $t4, $v1, 3 +/* 0E5A80 7F0B0F50 004C4021 */ addu $t0, $v0, $t4 +/* 0E5A84 7F0B0F54 27DEB9F0 */ addiu $fp, %lo(flt_CODE_bss_8007B9F0) # addiu $fp, $fp, -0x4610 +/* 0E5A88 7F0B0F58 17200002 */ bnez $t9, .L7F0B0F64 +/* 0E5A8C 7F0B0F5C 00000000 */ nop +/* 0E5A90 7F0B0F60 0007000D */ break 7 +.L7F0B0F64: +/* 0E5A94 7F0B0F64 2401FFFF */ li $at, -1 +/* 0E5A98 7F0B0F68 17210004 */ bne $t9, $at, .L7F0B0F7C +/* 0E5A9C 7F0B0F6C 3C018000 */ lui $at, 0x8000 +/* 0E5AA0 7F0B0F70 15C10002 */ bne $t6, $at, .L7F0B0F7C +/* 0E5AA4 7F0B0F74 00000000 */ nop +/* 0E5AA8 7F0B0F78 0006000D */ break 6 +.L7F0B0F7C: +/* 0E5AAC 7F0B0F7C 3C018004 */ lui $at, %hi(D_800413BC) +/* 0E5AB0 7F0B0F80 AC2B13BC */ sw $t3, %lo(D_800413BC)($at) +/* 0E5AB4 7F0B0F84 850D0008 */ lh $t5, 8($t0) +/* 0E5AB8 7F0B0F88 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E5ABC 7F0B0F8C C4200F48 */ lwc1 $f0, %lo(D_80040F48)($at) +/* 0E5AC0 7F0B0F90 448D4000 */ mtc1 $t5, $f8 +/* 0E5AC4 7F0B0F94 00005010 */ mfhi $t2 +/* 0E5AC8 7F0B0F98 000AC0C0 */ sll $t8, $t2, 3 +/* 0E5ACC 7F0B0F9C 468042A0 */ cvt.s.w $f10, $f8 +/* 0E5AD0 7F0B0FA0 00584821 */ addu $t1, $v0, $t8 +/* 0E5AD4 7F0B0FA4 03C03025 */ move $a2, $fp +/* 0E5AD8 7F0B0FA8 27A4014C */ addiu $a0, $sp, 0x14c +/* 0E5ADC 7F0B0FAC 27A50144 */ addiu $a1, $sp, 0x144 +/* 0E5AE0 7F0B0FB0 46005482 */ mul.s $f18, $f10, $f0 +/* 0E5AE4 7F0B0FB4 E7D20000 */ swc1 $f18, ($fp) +/* 0E5AE8 7F0B0FB8 850F000C */ lh $t7, 0xc($t0) +/* 0E5AEC 7F0B0FBC 448F2000 */ mtc1 $t7, $f4 +/* 0E5AF0 7F0B0FC0 00000000 */ nop +/* 0E5AF4 7F0B0FC4 468021A0 */ cvt.s.w $f6, $f4 +/* 0E5AF8 7F0B0FC8 46003202 */ mul.s $f8, $f6, $f0 +/* 0E5AFC 7F0B0FCC E7C80004 */ swc1 $f8, 4($fp) +/* 0E5B00 7F0B0FD0 852E0008 */ lh $t6, 8($t1) +/* 0E5B04 7F0B0FD4 448E5000 */ mtc1 $t6, $f10 +/* 0E5B08 7F0B0FD8 00000000 */ nop +/* 0E5B0C 7F0B0FDC 468054A0 */ cvt.s.w $f18, $f10 +/* 0E5B10 7F0B0FE0 46009102 */ mul.s $f4, $f18, $f0 +/* 0E5B14 7F0B0FE4 E4E40000 */ swc1 $f4, ($a3) +/* 0E5B18 7F0B0FE8 8539000C */ lh $t9, 0xc($t1) +/* 0E5B1C 7F0B0FEC 44993000 */ mtc1 $t9, $f6 +/* 0E5B20 7F0B0FF0 00000000 */ nop +/* 0E5B24 7F0B0FF4 46803220 */ cvt.s.w $f8, $f6 +/* 0E5B28 7F0B0FF8 46004282 */ mul.s $f10, $f8, $f0 +/* 0E5B2C 7F0B0FFC 0FC2CC80 */ jal sub_GAME_7F0B3200 +/* 0E5B30 7F0B1000 E4EA0004 */ swc1 $f10, 4($a3) +/* 0E5B34 7F0B1004 10000003 */ b .L7F0B1014 +/* 0E5B38 7F0B1008 46000706 */ mov.s $f28, $f0 +.L7F0B100C: +/* 0E5B3C 7F0B100C 3C1E8008 */ lui $fp, %hi(flt_CODE_bss_8007B9F0) +/* 0E5B40 7F0B1010 27DEB9F0 */ addiu $fp, %lo(flt_CODE_bss_8007B9F0) # addiu $fp, $fp, -0x4610 +.L7F0B1014: +/* 0E5B44 7F0B1014 8FAB0174 */ lw $t3, 0x174($sp) +/* 0E5B48 7F0B1018 3C178008 */ lui $s7, %hi(dword_CODE_bss_8007BA04) +/* 0E5B4C 7F0B101C 26F7BA04 */ addiu $s7, %lo(dword_CODE_bss_8007BA04) # addiu $s7, $s7, -0x45fc +/* 0E5B50 7F0B1020 116000CF */ beqz $t3, .L7F0B1360 +/* 0E5B54 7F0B1024 AEE00000 */ sw $zero, ($s7) +/* 0E5B58 7F0B1028 8FAD0124 */ lw $t5, 0x124($sp) +/* 0E5B5C 7F0B102C 240CFFFF */ li $t4, -1 +/* 0E5B60 7F0B1030 02002025 */ move $a0, $s0 +/* 0E5B64 7F0B1034 000D7880 */ sll $t7, $t5, 2 +/* 0E5B68 7F0B1038 020FC021 */ addu $t8, $s0, $t7 +/* 0E5B6C 7F0B103C 0FC0F8FF */ jal sub_GAME_7F03E3FC +/* 0E5B70 7F0B1040 AF0C0000 */ sw $t4, ($t8) +/* 0E5B74 7F0B1044 3C038007 */ lui $v1, %hi(ptr_list_object_lookup_indices) +/* 0E5B78 7F0B1048 8C639C30 */ lw $v1, %lo(ptr_list_object_lookup_indices)($v1) +/* 0E5B7C 7F0B104C 27B4012C */ addiu $s4, $sp, 0x12c +/* 0E5B80 7F0B1050 27B30134 */ addiu $s3, $sp, 0x134 +/* 0E5B84 7F0B1054 84620000 */ lh $v0, ($v1) +/* 0E5B88 7F0B1058 044200C2 */ bltzl $v0, .L7F0B1364 +/* 0E5B8C 7F0B105C 8FAC0154 */ lw $t4, 0x154($sp) +/* 0E5B90 7F0B1060 AFA300B8 */ sw $v1, 0xb8($sp) +/* 0E5B94 7F0B1064 C7BE00C4 */ lwc1 $f30, 0xc4($sp) +.L7F0B1068: +/* 0E5B98 7F0B1068 00027080 */ sll $t6, $v0, 2 +/* 0E5B9C 7F0B106C 01C27023 */ subu $t6, $t6, $v0 +/* 0E5BA0 7F0B1070 000E7080 */ sll $t6, $t6, 2 +/* 0E5BA4 7F0B1074 01C27021 */ addu $t6, $t6, $v0 +/* 0E5BA8 7F0B1078 3C198007 */ lui $t9, %hi(pos_data_entry) +/* 0E5BAC 7F0B107C 27399C38 */ addiu $t9, %lo(pos_data_entry) # addiu $t9, $t9, -0x63c8 +/* 0E5BB0 7F0B1080 000E7080 */ sll $t6, $t6, 2 +/* 0E5BB4 7F0B1084 01D9B021 */ addu $s6, $t6, $t9 +/* 0E5BB8 7F0B1088 02C02025 */ move $a0, $s6 +/* 0E5BBC 7F0B108C 0FC0F694 */ jal sub_GAME_7F03DA50 +/* 0E5BC0 7F0B1090 8FA50174 */ lw $a1, 0x174($sp) +/* 0E5BC4 7F0B1094 104000AB */ beqz $v0, .L7F0B1344 +/* 0E5BC8 7F0B1098 C7B000C0 */ lwc1 $f16, 0xc0($sp) +/* 0E5BCC 7F0B109C 27AB00A0 */ addiu $t3, $sp, 0xa0 +/* 0E5BD0 7F0B10A0 AFAB0010 */ sw $t3, 0x10($sp) +/* 0E5BD4 7F0B10A4 02C02025 */ move $a0, $s6 +/* 0E5BD8 7F0B10A8 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 0E5BDC 7F0B10AC 27A600B0 */ addiu $a2, $sp, 0xb0 +/* 0E5BE0 7F0B10B0 27A700A4 */ addiu $a3, $sp, 0xa4 +/* 0E5BE4 7F0B10B4 0FC0F308 */ jal sub_GAME_7F03CC20 +/* 0E5BE8 7F0B10B8 E7B000C0 */ swc1 $f16, 0xc0($sp) +/* 0E5BEC 7F0B10BC 8FA200B0 */ lw $v0, 0xb0($sp) +/* 0E5BF0 7F0B10C0 C7B000C0 */ lwc1 $f16, 0xc0($sp) +/* 0E5BF4 7F0B10C4 584000A0 */ blezl $v0, .L7F0B1348 +/* 0E5BF8 7F0B10C8 8FA300B8 */ lw $v1, 0xb8($sp) +/* 0E5BFC 7F0B10CC 1840009D */ blez $v0, .L7F0B1344 +/* 0E5C00 7F0B10D0 00002825 */ move $a1, $zero +/* 0E5C04 7F0B10D4 00008825 */ move $s1, $zero +/* 0E5C08 7F0B10D8 8FAD00B0 */ lw $t5, 0xb0($sp) +.L7F0B10DC: +/* 0E5C0C 7F0B10DC 24B20001 */ addiu $s2, $a1, 1 +/* 0E5C10 7F0B10E0 8FAF00B4 */ lw $t7, 0xb4($sp) +/* 0E5C14 7F0B10E4 024D001A */ div $zero, $s2, $t5 +/* 0E5C18 7F0B10E8 01F11821 */ addu $v1, $t7, $s1 +/* 0E5C1C 7F0B10EC C4720000 */ lwc1 $f18, ($v1) +/* 0E5C20 7F0B10F0 00001010 */ mfhi $v0 +/* 0E5C24 7F0B10F4 000260C0 */ sll $t4, $v0, 3 +/* 0E5C28 7F0B10F8 E7B20010 */ swc1 $f18, 0x10($sp) +/* 0E5C2C 7F0B10FC C4640004 */ lwc1 $f4, 4($v1) +/* 0E5C30 7F0B1100 01EC2021 */ addu $a0, $t7, $t4 +/* 0E5C34 7F0B1104 4406C000 */ mfc1 $a2, $f24 +/* 0E5C38 7F0B1108 E7A40014 */ swc1 $f4, 0x14($sp) +/* 0E5C3C 7F0B110C C4860000 */ lwc1 $f6, ($a0) +/* 0E5C40 7F0B1110 4407D000 */ mfc1 $a3, $f26 +/* 0E5C44 7F0B1114 15A00002 */ bnez $t5, .L7F0B1120 +/* 0E5C48 7F0B1118 00000000 */ nop +/* 0E5C4C 7F0B111C 0007000D */ break 7 +.L7F0B1120: +/* 0E5C50 7F0B1120 2401FFFF */ li $at, -1 +/* 0E5C54 7F0B1124 15A10004 */ bne $t5, $at, .L7F0B1138 +/* 0E5C58 7F0B1128 3C018000 */ li $at, 0x80000000 # -0.000000 +/* 0E5C5C 7F0B112C 16410002 */ bne $s2, $at, .L7F0B1138 +/* 0E5C60 7F0B1130 00000000 */ nop +/* 0E5C64 7F0B1134 0006000D */ break 6 +.L7F0B1138: +/* 0E5C68 7F0B1138 E7A60018 */ swc1 $f6, 0x18($sp) +/* 0E5C6C 7F0B113C C4880004 */ lwc1 $f8, 4($a0) +/* 0E5C70 7F0B1140 00408025 */ move $s0, $v0 +/* 0E5C74 7F0B1144 E7B000C0 */ swc1 $f16, 0xc0($sp) +/* 0E5C78 7F0B1148 C7AC0164 */ lwc1 $f12, 0x164($sp) +/* 0E5C7C 7F0B114C C7AE0168 */ lwc1 $f14, 0x168($sp) +/* 0E5C80 7F0B1150 0FC2C1A2 */ jal sub_GAME_7F0B0688 +/* 0E5C84 7F0B1154 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 0E5C88 7F0B1158 10400074 */ beqz $v0, .L7F0B132C +/* 0E5C8C 7F0B115C C7B000C0 */ lwc1 $f16, 0xc0($sp) +/* 0E5C90 7F0B1160 8FB800B4 */ lw $t8, 0xb4($sp) +/* 0E5C94 7F0B1164 001070C0 */ sll $t6, $s0, 3 +/* 0E5C98 7F0B1168 27A4014C */ addiu $a0, $sp, 0x14c +/* 0E5C9C 7F0B116C 03111821 */ addu $v1, $t8, $s1 +/* 0E5CA0 7F0B1170 C46A0000 */ lwc1 $f10, ($v1) +/* 0E5CA4 7F0B1174 030E1021 */ addu $v0, $t8, $t6 +/* 0E5CA8 7F0B1178 27A50144 */ addiu $a1, $sp, 0x144 +/* 0E5CAC 7F0B117C E7AA0134 */ swc1 $f10, 0x134($sp) +/* 0E5CB0 7F0B1180 C4720004 */ lwc1 $f18, 4($v1) +/* 0E5CB4 7F0B1184 02603025 */ move $a2, $s3 +/* 0E5CB8 7F0B1188 02803825 */ move $a3, $s4 +/* 0E5CBC 7F0B118C E7B20138 */ swc1 $f18, 0x138($sp) +/* 0E5CC0 7F0B1190 C4440000 */ lwc1 $f4, ($v0) +/* 0E5CC4 7F0B1194 E7A4012C */ swc1 $f4, 0x12c($sp) +/* 0E5CC8 7F0B1198 C4460004 */ lwc1 $f6, 4($v0) +/* 0E5CCC 7F0B119C E7B000C0 */ swc1 $f16, 0xc0($sp) +/* 0E5CD0 7F0B11A0 0FC2CC80 */ jal sub_GAME_7F0B3200 +/* 0E5CD4 7F0B11A4 E7A60130 */ swc1 $f6, 0x130($sp) +/* 0E5CD8 7F0B11A8 461C003C */ c.lt.s $f0, $f28 +/* 0E5CDC 7F0B11AC C7B000C0 */ lwc1 $f16, 0xc0($sp) +/* 0E5CE0 7F0B11B0 46000586 */ mov.s $f22, $f0 +/* 0E5CE4 7F0B11B4 4502005E */ bc1fl .L7F0B1330 +/* 0E5CE8 7F0B11B8 8FA200B0 */ lw $v0, 0xb0($sp) +/* 0E5CEC 7F0B11BC 8FB900CC */ lw $t9, 0xcc($sp) +/* 0E5CF0 7F0B11C0 24100001 */ li $s0, 1 +/* 0E5CF4 7F0B11C4 13200043 */ beqz $t9, .L7F0B12D4 +/* 0E5CF8 7F0B11C8 00000000 */ nop +/* 0E5CFC 7F0B11CC 16A00030 */ bnez $s5, .L7F0B1290 +/* 0E5D00 7F0B11D0 C7A80180 */ lwc1 $f8, 0x180($sp) +/* 0E5D04 7F0B11D4 C7AA0184 */ lwc1 $f10, 0x184($sp) +/* 0E5D08 7F0B11D8 24150001 */ li $s5, 1 +/* 0E5D0C 7F0B11DC C7B20178 */ lwc1 $f18, 0x178($sp) +/* 0E5D10 7F0B11E0 4608503E */ c.le.s $f10, $f8 +/* 0E5D14 7F0B11E4 C7A4017C */ lwc1 $f4, 0x17c($sp) +/* 0E5D18 7F0B11E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E5D1C 7F0B11EC 45020005 */ bc1fl .L7F0B1204 +/* 0E5D20 7F0B11F0 44813000 */ mtc1 $at, $f6 +/* 0E5D24 7F0B11F4 46124781 */ sub.s $f30, $f8, $f18 +/* 0E5D28 7F0B11F8 10000025 */ b .L7F0B1290 +/* 0E5D2C 7F0B11FC 46045401 */ sub.s $f16, $f10, $f4 +/* 0E5D30 7F0B1200 44813000 */ mtc1 $at, $f6 +.L7F0B1204: +/* 0E5D34 7F0B1204 C7A00164 */ lwc1 $f0, 0x164($sp) +/* 0E5D38 7F0B1208 C7A20168 */ lwc1 $f2, 0x168($sp) +/* 0E5D3C 7F0B120C 4606E03C */ c.lt.s $f28, $f6 +/* 0E5D40 7F0B1210 00000000 */ nop +/* 0E5D44 7F0B1214 45020009 */ bc1fl .L7F0B123C +/* 0E5D48 7F0B1218 C7A00164 */ lwc1 $f0, 0x164($sp) +/* 0E5D4C 7F0B121C 4600C601 */ sub.s $f24, $f24, $f0 +/* 0E5D50 7F0B1220 4602D681 */ sub.s $f26, $f26, $f2 +/* 0E5D54 7F0B1224 461CC602 */ mul.s $f24, $f24, $f28 +/* 0E5D58 7F0B1228 00000000 */ nop +/* 0E5D5C 7F0B122C 461CD682 */ mul.s $f26, $f26, $f28 +/* 0E5D60 7F0B1230 46180600 */ add.s $f24, $f0, $f24 +/* 0E5D64 7F0B1234 461A1680 */ add.s $f26, $f2, $f26 +/* 0E5D68 7F0B1238 C7A00164 */ lwc1 $f0, 0x164($sp) +.L7F0B123C: +/* 0E5D6C 7F0B123C C7A20168 */ lwc1 $f2, 0x168($sp) +/* 0E5D70 7F0B1240 8FAB0160 */ lw $t3, 0x160($sp) +/* 0E5D74 7F0B1244 44050000 */ mfc1 $a1, $f0 +/* 0E5D78 7F0B1248 44061000 */ mfc1 $a2, $f2 +/* 0E5D7C 7F0B124C 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0E5D80 7F0B1250 8D640000 */ lw $a0, ($t3) +/* 0E5D84 7F0B1254 C7A80178 */ lwc1 $f8, 0x178($sp) +/* 0E5D88 7F0B1258 C7AA017C */ lwc1 $f10, 0x17c($sp) +/* 0E5D8C 7F0B125C 4405C000 */ mfc1 $a1, $f24 +/* 0E5D90 7F0B1260 46004480 */ add.s $f18, $f8, $f0 +/* 0E5D94 7F0B1264 4406D000 */ mfc1 $a2, $f26 +/* 0E5D98 7F0B1268 46000506 */ mov.s $f20, $f0 +/* 0E5D9C 7F0B126C 46005100 */ add.s $f4, $f10, $f0 +/* 0E5DA0 7F0B1270 E7B20178 */ swc1 $f18, 0x178($sp) +/* 0E5DA4 7F0B1274 8FA40154 */ lw $a0, 0x154($sp) +/* 0E5DA8 7F0B1278 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0E5DAC 7F0B127C E7A4017C */ swc1 $f4, 0x17c($sp) +/* 0E5DB0 7F0B1280 46140181 */ sub.s $f6, $f0, $f20 +/* 0E5DB4 7F0B1284 461C3083 */ div.s $f2, $f6, $f28 +/* 0E5DB8 7F0B1288 46001406 */ mov.s $f16, $f2 +/* 0E5DBC 7F0B128C 46001786 */ mov.s $f30, $f2 +.L7F0B1290: +/* 0E5DC0 7F0B1290 46168202 */ mul.s $f8, $f16, $f22 +/* 0E5DC4 7F0B1294 C7B2017C */ lwc1 $f18, 0x17c($sp) +/* 0E5DC8 7F0B1298 C7A400A4 */ lwc1 $f4, 0xa4($sp) +/* 0E5DCC 7F0B129C 46124280 */ add.s $f10, $f8, $f18 +/* 0E5DD0 7F0B12A0 460A203E */ c.le.s $f4, $f10 +/* 0E5DD4 7F0B12A4 00000000 */ nop +/* 0E5DD8 7F0B12A8 4503000A */ bc1tl .L7F0B12D4 +/* 0E5DDC 7F0B12AC 00008025 */ move $s0, $zero +/* 0E5DE0 7F0B12B0 4616F202 */ mul.s $f8, $f30, $f22 +/* 0E5DE4 7F0B12B4 C7B20178 */ lwc1 $f18, 0x178($sp) +/* 0E5DE8 7F0B12B8 C7A600A0 */ lwc1 $f6, 0xa0($sp) +/* 0E5DEC 7F0B12BC 46124280 */ add.s $f10, $f8, $f18 +/* 0E5DF0 7F0B12C0 4606503E */ c.le.s $f10, $f6 +/* 0E5DF4 7F0B12C4 00000000 */ nop +/* 0E5DF8 7F0B12C8 45000002 */ bc1f .L7F0B12D4 +/* 0E5DFC 7F0B12CC 00000000 */ nop +/* 0E5E00 7F0B12D0 00008025 */ move $s0, $zero +.L7F0B12D4: +/* 0E5E04 7F0B12D4 12000015 */ beqz $s0, .L7F0B132C +/* 0E5E08 7F0B12D8 240D0001 */ li $t5, 1 +/* 0E5E0C 7F0B12DC 3C018004 */ lui $at, %hi(D_800413BC) +/* 0E5E10 7F0B12E0 AFA00158 */ sw $zero, 0x158($sp) +/* 0E5E14 7F0B12E4 AC2D13BC */ sw $t5, %lo(D_800413BC)($at) +/* 0E5E18 7F0B12E8 8E610000 */ lw $at, ($s3) +/* 0E5E1C 7F0B12EC 8E780004 */ lw $t8, 4($s3) +/* 0E5E20 7F0B12F0 3C0E8008 */ lui $t6, %hi(flt_CODE_bss_8007B9F8) +/* 0E5E24 7F0B12F4 AFC10000 */ sw $at, ($fp) +/* 0E5E28 7F0B12F8 8E810000 */ lw $at, ($s4) +/* 0E5E2C 7F0B12FC 25CEB9F8 */ addiu $t6, %lo(flt_CODE_bss_8007B9F8) # addiu $t6, $t6, -0x4608 +/* 0E5E30 7F0B1300 AFD80004 */ sw $t8, 4($fp) +/* 0E5E34 7F0B1304 ADC10000 */ sw $at, ($t6) +/* 0E5E38 7F0B1308 8E8D0004 */ lw $t5, 4($s4) +/* 0E5E3C 7F0B130C 3C018008 */ lui $at, %hi(dword_CODE_bss_8007B9E4) +/* 0E5E40 7F0B1310 4600B706 */ mov.s $f28, $f22 +/* 0E5E44 7F0B1314 ADCD0004 */ sw $t5, 4($t6) +/* 0E5E48 7F0B1318 AC20B9E4 */ sw $zero, %lo(dword_CODE_bss_8007B9E4)($at) +/* 0E5E4C 7F0B131C 3C018008 */ lui $at, %hi(dword_CODE_bss_8007B9E8) +/* 0E5E50 7F0B1320 AC20B9E8 */ sw $zero, %lo(dword_CODE_bss_8007B9E8)($at) +/* 0E5E54 7F0B1324 AEF60000 */ sw $s6, ($s7) +/* 0E5E58 7F0B1328 AFA00154 */ sw $zero, 0x154($sp) +.L7F0B132C: +/* 0E5E5C 7F0B132C 8FA200B0 */ lw $v0, 0xb0($sp) +.L7F0B1330: +/* 0E5E60 7F0B1330 02402825 */ move $a1, $s2 +/* 0E5E64 7F0B1334 26310008 */ addiu $s1, $s1, 8 +/* 0E5E68 7F0B1338 0242082A */ slt $at, $s2, $v0 +/* 0E5E6C 7F0B133C 5420FF67 */ bnezl $at, .L7F0B10DC +/* 0E5E70 7F0B1340 8FAD00B0 */ lw $t5, 0xb0($sp) +.L7F0B1344: +/* 0E5E74 7F0B1344 8FA300B8 */ lw $v1, 0xb8($sp) +.L7F0B1348: +/* 0E5E78 7F0B1348 84620002 */ lh $v0, 2($v1) +/* 0E5E7C 7F0B134C 24630002 */ addiu $v1, $v1, 2 +/* 0E5E80 7F0B1350 AFA300B8 */ sw $v1, 0xb8($sp) +/* 0E5E84 7F0B1354 0441FF44 */ bgez $v0, .L7F0B1068 +/* 0E5E88 7F0B1358 E7B000C0 */ swc1 $f16, 0xc0($sp) +/* 0E5E8C 7F0B135C E7BE00C4 */ swc1 $f30, 0xc4($sp) +.L7F0B1360: +/* 0E5E90 7F0B1360 8FAC0154 */ lw $t4, 0x154($sp) +.L7F0B1364: +/* 0E5E94 7F0B1364 C7A00164 */ lwc1 $f0, 0x164($sp) +/* 0E5E98 7F0B1368 C7A20168 */ lwc1 $f2, 0x168($sp) +/* 0E5E9C 7F0B136C 55800011 */ bnezl $t4, .L7F0B13B4 +/* 0E5EA0 7F0B1370 8FAB0154 */ lw $t3, 0x154($sp) +/* 0E5EA4 7F0B1374 4600C601 */ sub.s $f24, $f24, $f0 +/* 0E5EA8 7F0B1378 8FAF0160 */ lw $t7, 0x160($sp) +/* 0E5EAC 7F0B137C 44050000 */ mfc1 $a1, $f0 +/* 0E5EB0 7F0B1380 4602D681 */ sub.s $f26, $f26, $f2 +/* 0E5EB4 7F0B1384 461CC602 */ mul.s $f24, $f24, $f28 +/* 0E5EB8 7F0B1388 8DF80000 */ lw $t8, ($t7) +/* 0E5EBC 7F0B138C 44061000 */ mfc1 $a2, $f2 +/* 0E5EC0 7F0B1390 461CD682 */ mul.s $f26, $f26, $f28 +/* 0E5EC4 7F0B1394 27A40154 */ addiu $a0, $sp, 0x154 +/* 0E5EC8 7F0B1398 AFB80154 */ sw $t8, 0x154($sp) +/* 0E5ECC 7F0B139C 46180600 */ add.s $f24, $f0, $f24 +/* 0E5ED0 7F0B13A0 461A1680 */ add.s $f26, $f2, $f26 +/* 0E5ED4 7F0B13A4 4407C000 */ mfc1 $a3, $f24 +/* 0E5ED8 7F0B13A8 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0E5EDC 7F0B13AC E7BA0010 */ swc1 $f26, 0x10($sp) +/* 0E5EE0 7F0B13B0 8FAB0154 */ lw $t3, 0x154($sp) +.L7F0B13B4: +/* 0E5EE4 7F0B13B4 8FB90160 */ lw $t9, 0x160($sp) +/* 0E5EE8 7F0B13B8 3C018008 */ lui $at, %hi(flt_CODE_bss_8007BA00) +/* 0E5EEC 7F0B13BC AF2B0000 */ sw $t3, ($t9) +/* 0E5EF0 7F0B13C0 8FBF007C */ lw $ra, 0x7c($sp) +/* 0E5EF4 7F0B13C4 E43CBA00 */ swc1 $f28, %lo(flt_CODE_bss_8007BA00)($at) +/* 0E5EF8 7F0B13C8 D7BC0048 */ ldc1 $f28, 0x48($sp) +/* 0E5EFC 7F0B13CC 8FBE0078 */ lw $fp, 0x78($sp) +/* 0E5F00 7F0B13D0 8FB70074 */ lw $s7, 0x74($sp) +/* 0E5F04 7F0B13D4 8FB60070 */ lw $s6, 0x70($sp) +/* 0E5F08 7F0B13D8 8FB5006C */ lw $s5, 0x6c($sp) +/* 0E5F0C 7F0B13DC 8FB40068 */ lw $s4, 0x68($sp) +/* 0E5F10 7F0B13E0 8FB30064 */ lw $s3, 0x64($sp) +/* 0E5F14 7F0B13E4 8FB20060 */ lw $s2, 0x60($sp) +/* 0E5F18 7F0B13E8 8FB1005C */ lw $s1, 0x5c($sp) +/* 0E5F1C 7F0B13EC 8FB00058 */ lw $s0, 0x58($sp) +/* 0E5F20 7F0B13F0 D7BE0050 */ ldc1 $f30, 0x50($sp) +/* 0E5F24 7F0B13F4 D7BA0040 */ ldc1 $f26, 0x40($sp) +/* 0E5F28 7F0B13F8 D7B80038 */ ldc1 $f24, 0x38($sp) +/* 0E5F2C 7F0B13FC D7B60030 */ ldc1 $f22, 0x30($sp) +/* 0E5F30 7F0B1400 D7B40028 */ ldc1 $f20, 0x28($sp) +/* 0E5F34 7F0B1404 8FA20158 */ lw $v0, 0x158($sp) +/* 0E5F38 7F0B1408 03E00008 */ jr $ra +/* 0E5F3C 7F0B140C 27BD0160 */ addiu $sp, $sp, 0x160 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B1410(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B1410 +/* 0E5F40 7F0B1410 27BDFED8 */ addiu $sp, $sp, -0x128 +/* 0E5F44 7F0B1414 F7BA0040 */ sdc1 $f26, 0x40($sp) +/* 0E5F48 7F0B1418 F7B80038 */ sdc1 $f24, 0x38($sp) +/* 0E5F4C 7F0B141C F7B60030 */ sdc1 $f22, 0x30($sp) +/* 0E5F50 7F0B1420 4485B000 */ mtc1 $a1, $f22 +/* 0E5F54 7F0B1424 4486C000 */ mtc1 $a2, $f24 +/* 0E5F58 7F0B1428 4487D000 */ mtc1 $a3, $f26 +/* 0E5F5C 7F0B142C F7BC0048 */ sdc1 $f28, 0x48($sp) +/* 0E5F60 7F0B1430 C7BC0138 */ lwc1 $f28, 0x138($sp) +/* 0E5F64 7F0B1434 AFB10054 */ sw $s1, 0x54($sp) +/* 0E5F68 7F0B1438 F7B40028 */ sdc1 $f20, 0x28($sp) +/* 0E5F6C 7F0B143C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E5F70 7F0B1440 27B10098 */ addiu $s1, $sp, 0x98 +/* 0E5F74 7F0B1444 AFBF0074 */ sw $ra, 0x74($sp) +/* 0E5F78 7F0B1448 AFBE0070 */ sw $fp, 0x70($sp) +/* 0E5F7C 7F0B144C 4481A000 */ mtc1 $at, $f20 +/* 0E5F80 7F0B1450 AFA400F0 */ sw $a0, 0xf0($sp) +/* 0E5F84 7F0B1454 27AE00EC */ addiu $t6, $sp, 0xec +/* 0E5F88 7F0B1458 240F0014 */ li $t7, 20 +/* 0E5F8C 7F0B145C 4405B000 */ mfc1 $a1, $f22 +/* 0E5F90 7F0B1460 4406C000 */ mfc1 $a2, $f24 +/* 0E5F94 7F0B1464 4407D000 */ mfc1 $a3, $f26 +/* 0E5F98 7F0B1468 AFB7006C */ sw $s7, 0x6c($sp) +/* 0E5F9C 7F0B146C AFB60068 */ sw $s6, 0x68($sp) +/* 0E5FA0 7F0B1470 AFB50064 */ sw $s5, 0x64($sp) +/* 0E5FA4 7F0B1474 AFB40060 */ sw $s4, 0x60($sp) +/* 0E5FA8 7F0B1478 AFB3005C */ sw $s3, 0x5c($sp) +/* 0E5FAC 7F0B147C AFB20058 */ sw $s2, 0x58($sp) +/* 0E5FB0 7F0B1480 AFB00050 */ sw $s0, 0x50($sp) +/* 0E5FB4 7F0B1484 0000F025 */ move $fp, $zero +/* 0E5FB8 7F0B1488 AFAF001C */ sw $t7, 0x1c($sp) +/* 0E5FBC 7F0B148C AFAE0018 */ sw $t6, 0x18($sp) +/* 0E5FC0 7F0B1490 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0E5FC4 7F0B1494 AFB10014 */ sw $s1, 0x14($sp) +/* 0E5FC8 7F0B1498 AFA000EC */ sw $zero, 0xec($sp) +/* 0E5FCC 7F0B149C 0FC2C309 */ jal sub_GAME_7F0B0C24 +/* 0E5FD0 7F0B14A0 E7BC0010 */ swc1 $f28, 0x10($sp) +/* 0E5FD4 7F0B14A4 8FA300EC */ lw $v1, 0xec($sp) +/* 0E5FD8 7F0B14A8 2419FFFF */ li $t9, -1 +/* 0E5FDC 7F0B14AC 02202025 */ move $a0, $s1 +/* 0E5FE0 7F0B14B0 28610015 */ slti $at, $v1, 0x15 +/* 0E5FE4 7F0B14B4 54200003 */ bnezl $at, .L7F0B14C4 +/* 0E5FE8 7F0B14B8 8FB8013C */ lw $t8, 0x13c($sp) +/* 0E5FEC 7F0B14BC 24030014 */ li $v1, 20 +/* 0E5FF0 7F0B14C0 8FB8013C */ lw $t8, 0x13c($sp) +.L7F0B14C4: +/* 0E5FF4 7F0B14C4 E7B60118 */ swc1 $f22, 0x118($sp) +/* 0E5FF8 7F0B14C8 E7B8011C */ swc1 $f24, 0x11c($sp) +/* 0E5FFC 7F0B14CC E7BA0110 */ swc1 $f26, 0x110($sp) +/* 0E6000 7F0B14D0 1300006A */ beqz $t8, .L7F0B167C +/* 0E6004 7F0B14D4 E7BC0114 */ swc1 $f28, 0x114($sp) +/* 0E6008 7F0B14D8 00034080 */ sll $t0, $v1, 2 +/* 0E600C 7F0B14DC 02284821 */ addu $t1, $s1, $t0 +/* 0E6010 7F0B14E0 AD390000 */ sw $t9, ($t1) +/* 0E6014 7F0B14E4 0FC0F8FF */ jal sub_GAME_7F03E3FC +/* 0E6018 7F0B14E8 AFA300EC */ sw $v1, 0xec($sp) +/* 0E601C 7F0B14EC 3C038007 */ lui $v1, %hi(ptr_list_object_lookup_indices) +/* 0E6020 7F0B14F0 8C639C30 */ lw $v1, %lo(ptr_list_object_lookup_indices)($v1) +/* 0E6024 7F0B14F4 27B700F8 */ addiu $s7, $sp, 0xf8 +/* 0E6028 7F0B14F8 27B60100 */ addiu $s6, $sp, 0x100 +/* 0E602C 7F0B14FC 84620000 */ lh $v0, ($v1) +/* 0E6030 7F0B1500 27B50110 */ addiu $s5, $sp, 0x110 +/* 0E6034 7F0B1504 27B40118 */ addiu $s4, $sp, 0x118 +/* 0E6038 7F0B1508 0442005D */ bltzl $v0, .L7F0B1680 +/* 0E603C 7F0B150C 8FBF0074 */ lw $ra, 0x74($sp) +/* 0E6040 7F0B1510 AFA30094 */ sw $v1, 0x94($sp) +/* 0E6044 7F0B1514 00025080 */ sll $t2, $v0, 2 +.L7F0B1518: +/* 0E6048 7F0B1518 01425023 */ subu $t2, $t2, $v0 +/* 0E604C 7F0B151C 000A5080 */ sll $t2, $t2, 2 +/* 0E6050 7F0B1520 01425021 */ addu $t2, $t2, $v0 +/* 0E6054 7F0B1524 3C0B8007 */ lui $t3, %hi(pos_data_entry) +/* 0E6058 7F0B1528 256B9C38 */ addiu $t3, %lo(pos_data_entry) # addiu $t3, $t3, -0x63c8 +/* 0E605C 7F0B152C 000A5080 */ sll $t2, $t2, 2 +/* 0E6060 7F0B1530 014B9821 */ addu $s3, $t2, $t3 +/* 0E6064 7F0B1534 02602025 */ move $a0, $s3 +/* 0E6068 7F0B1538 0FC0F694 */ jal sub_GAME_7F03DA50 +/* 0E606C 7F0B153C 8FA5013C */ lw $a1, 0x13c($sp) +/* 0E6070 7F0B1540 10400048 */ beqz $v0, .L7F0B1664 +/* 0E6074 7F0B1544 02602025 */ move $a0, $s3 +/* 0E6078 7F0B1548 27A50090 */ addiu $a1, $sp, 0x90 +/* 0E607C 7F0B154C 0FC0F32C */ jal sub_GAME_7F03CCB0 +/* 0E6080 7F0B1550 27A6008C */ addiu $a2, $sp, 0x8c +/* 0E6084 7F0B1554 8FA2008C */ lw $v0, 0x8c($sp) +/* 0E6088 7F0B1558 58400043 */ blezl $v0, .L7F0B1668 +/* 0E608C 7F0B155C 8FA30094 */ lw $v1, 0x94($sp) +/* 0E6090 7F0B1560 18400040 */ blez $v0, .L7F0B1664 +/* 0E6094 7F0B1564 00002825 */ move $a1, $zero +/* 0E6098 7F0B1568 00008025 */ move $s0, $zero +/* 0E609C 7F0B156C 8FAC008C */ lw $t4, 0x8c($sp) +.L7F0B1570: +/* 0E60A0 7F0B1570 24B20001 */ addiu $s2, $a1, 1 +/* 0E60A4 7F0B1574 8FAD0090 */ lw $t5, 0x90($sp) +/* 0E60A8 7F0B1578 024C001A */ div $zero, $s2, $t4 +/* 0E60AC 7F0B157C 01B01821 */ addu $v1, $t5, $s0 +/* 0E60B0 7F0B1580 C4640000 */ lwc1 $f4, ($v1) +/* 0E60B4 7F0B1584 00001010 */ mfhi $v0 +/* 0E60B8 7F0B1588 000270C0 */ sll $t6, $v0, 3 +/* 0E60BC 7F0B158C E7A40010 */ swc1 $f4, 0x10($sp) +/* 0E60C0 7F0B1590 C4660004 */ lwc1 $f6, 4($v1) +/* 0E60C4 7F0B1594 01AE2021 */ addu $a0, $t5, $t6 +/* 0E60C8 7F0B1598 4406D000 */ mfc1 $a2, $f26 +/* 0E60CC 7F0B159C E7A60014 */ swc1 $f6, 0x14($sp) +/* 0E60D0 7F0B15A0 C4880000 */ lwc1 $f8, ($a0) +/* 0E60D4 7F0B15A4 4407E000 */ mfc1 $a3, $f28 +/* 0E60D8 7F0B15A8 15800002 */ bnez $t4, .L7F0B15B4 +/* 0E60DC 7F0B15AC 00000000 */ nop +/* 0E60E0 7F0B15B0 0007000D */ break 7 +.L7F0B15B4: +/* 0E60E4 7F0B15B4 2401FFFF */ li $at, -1 +/* 0E60E8 7F0B15B8 15810004 */ bne $t4, $at, .L7F0B15CC +/* 0E60EC 7F0B15BC 3C018000 */ lui $at, 0x8000 +/* 0E60F0 7F0B15C0 16410002 */ bne $s2, $at, .L7F0B15CC +/* 0E60F4 7F0B15C4 00000000 */ nop +/* 0E60F8 7F0B15C8 0006000D */ break 6 +.L7F0B15CC: +/* 0E60FC 7F0B15CC E7A80018 */ swc1 $f8, 0x18($sp) +/* 0E6100 7F0B15D0 C48A0004 */ lwc1 $f10, 4($a0) +/* 0E6104 7F0B15D4 00408825 */ move $s1, $v0 +/* 0E6108 7F0B15D8 4600B306 */ mov.s $f12, $f22 +/* 0E610C 7F0B15DC 4600C386 */ mov.s $f14, $f24 +/* 0E6110 7F0B15E0 0FC2C1A2 */ jal sub_GAME_7F0B0688 +/* 0E6114 7F0B15E4 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 0E6118 7F0B15E8 50400019 */ beql $v0, $zero, .L7F0B1650 +/* 0E611C 7F0B15EC 8FA2008C */ lw $v0, 0x8c($sp) +/* 0E6120 7F0B15F0 8FAF0090 */ lw $t7, 0x90($sp) +/* 0E6124 7F0B15F4 0011C0C0 */ sll $t8, $s1, 3 +/* 0E6128 7F0B15F8 02802025 */ move $a0, $s4 +/* 0E612C 7F0B15FC 01F01821 */ addu $v1, $t7, $s0 +/* 0E6130 7F0B1600 C4700000 */ lwc1 $f16, ($v1) +/* 0E6134 7F0B1604 01F81021 */ addu $v0, $t7, $t8 +/* 0E6138 7F0B1608 02A02825 */ move $a1, $s5 +/* 0E613C 7F0B160C E7B00100 */ swc1 $f16, 0x100($sp) +/* 0E6140 7F0B1610 C4720004 */ lwc1 $f18, 4($v1) +/* 0E6144 7F0B1614 02C03025 */ move $a2, $s6 +/* 0E6148 7F0B1618 02E03825 */ move $a3, $s7 +/* 0E614C 7F0B161C E7B20104 */ swc1 $f18, 0x104($sp) +/* 0E6150 7F0B1620 C4440000 */ lwc1 $f4, ($v0) +/* 0E6154 7F0B1624 E7A400F8 */ swc1 $f4, 0xf8($sp) +/* 0E6158 7F0B1628 C4460004 */ lwc1 $f6, 4($v0) +/* 0E615C 7F0B162C 0FC2CC80 */ jal sub_GAME_7F0B3200 +/* 0E6160 7F0B1630 E7A600FC */ swc1 $f6, 0xfc($sp) +/* 0E6164 7F0B1634 4614003C */ c.lt.s $f0, $f20 +/* 0E6168 7F0B1638 00000000 */ nop +/* 0E616C 7F0B163C 45020004 */ bc1fl .L7F0B1650 +/* 0E6170 7F0B1640 8FA2008C */ lw $v0, 0x8c($sp) +/* 0E6174 7F0B1644 46000506 */ mov.s $f20, $f0 +/* 0E6178 7F0B1648 0260F025 */ move $fp, $s3 +/* 0E617C 7F0B164C 8FA2008C */ lw $v0, 0x8c($sp) +.L7F0B1650: +/* 0E6180 7F0B1650 02402825 */ move $a1, $s2 +/* 0E6184 7F0B1654 26100008 */ addiu $s0, $s0, 8 +/* 0E6188 7F0B1658 0242082A */ slt $at, $s2, $v0 +/* 0E618C 7F0B165C 5420FFC4 */ bnezl $at, .L7F0B1570 +/* 0E6190 7F0B1660 8FAC008C */ lw $t4, 0x8c($sp) +.L7F0B1664: +/* 0E6194 7F0B1664 8FA30094 */ lw $v1, 0x94($sp) +.L7F0B1668: +/* 0E6198 7F0B1668 84620002 */ lh $v0, 2($v1) +/* 0E619C 7F0B166C 24630002 */ addiu $v1, $v1, 2 +/* 0E61A0 7F0B1670 AFA30094 */ sw $v1, 0x94($sp) +/* 0E61A4 7F0B1674 0443FFA8 */ bgezl $v0, .L7F0B1518 +/* 0E61A8 7F0B1678 00025080 */ sll $t2, $v0, 2 +.L7F0B167C: +/* 0E61AC 7F0B167C 8FBF0074 */ lw $ra, 0x74($sp) +.L7F0B1680: +/* 0E61B0 7F0B1680 03C01025 */ move $v0, $fp +/* 0E61B4 7F0B1684 8FBE0070 */ lw $fp, 0x70($sp) +/* 0E61B8 7F0B1688 D7B40028 */ ldc1 $f20, 0x28($sp) +/* 0E61BC 7F0B168C D7B60030 */ ldc1 $f22, 0x30($sp) +/* 0E61C0 7F0B1690 D7B80038 */ ldc1 $f24, 0x38($sp) +/* 0E61C4 7F0B1694 D7BA0040 */ ldc1 $f26, 0x40($sp) +/* 0E61C8 7F0B1698 D7BC0048 */ ldc1 $f28, 0x48($sp) +/* 0E61CC 7F0B169C 8FB00050 */ lw $s0, 0x50($sp) +/* 0E61D0 7F0B16A0 8FB10054 */ lw $s1, 0x54($sp) +/* 0E61D4 7F0B16A4 8FB20058 */ lw $s2, 0x58($sp) +/* 0E61D8 7F0B16A8 8FB3005C */ lw $s3, 0x5c($sp) +/* 0E61DC 7F0B16AC 8FB40060 */ lw $s4, 0x60($sp) +/* 0E61E0 7F0B16B0 8FB50064 */ lw $s5, 0x64($sp) +/* 0E61E4 7F0B16B4 8FB60068 */ lw $s6, 0x68($sp) +/* 0E61E8 7F0B16B8 8FB7006C */ lw $s7, 0x6c($sp) +/* 0E61EC 7F0B16BC 03E00008 */ jr $ra +/* 0E61F0 7F0B16C0 27BD0128 */ addiu $sp, $sp, 0x128 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B16C4(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5) { + f32 sp1C; + f32 sp20; + f32 temp_f2; + f32 temp_f16; + ? temp_ret; + f32 temp_f0; + f32 temp_f2_2; + + // Node 0 + temp_f2 = (arg2 - arg0); + temp_f16 = (arg3 - arg1); + sp20 = temp_f2; + sp1C = temp_f16; + temp_ret = sqrtf(((temp_f2 * temp_f2) + (temp_f16 * temp_f16))); + if (temp_ret != 0.0f) + { + // Node 2 + // Node 3 + return (((temp_f16 * (arg4 - arg0)) + (-temp_f2 * (arg5 - arg1))) / temp_ret); + } + // Node 1 + temp_f0 = (arg4 - arg2); + temp_f2_2 = (arg5 - arg3); + return (((temp_f16 * (arg4 - arg0)) + (-temp_f2 * (arg5 - arg1))) / temp_ret); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B16C4 +/* 0E61F4 7F0B16C4 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0E61F8 7F0B16C8 E7AC0048 */ swc1 $f12, 0x48($sp) +/* 0E61FC 7F0B16CC AFA60050 */ sw $a2, 0x50($sp) +/* 0E6200 7F0B16D0 C7A40050 */ lwc1 $f4, 0x50($sp) +/* 0E6204 7F0B16D4 C7A60048 */ lwc1 $f6, 0x48($sp) +/* 0E6208 7F0B16D8 E7AE004C */ swc1 $f14, 0x4c($sp) +/* 0E620C 7F0B16DC AFA70054 */ sw $a3, 0x54($sp) +/* 0E6210 7F0B16E0 46062081 */ sub.s $f2, $f4, $f6 +/* 0E6214 7F0B16E4 C7A80054 */ lwc1 $f8, 0x54($sp) +/* 0E6218 7F0B16E8 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0E621C 7F0B16EC AFBF0014 */ sw $ra, 0x14($sp) +/* 0E6220 7F0B16F0 46021482 */ mul.s $f18, $f2, $f2 +/* 0E6224 7F0B16F4 460A4401 */ sub.s $f16, $f8, $f10 +/* 0E6228 7F0B16F8 E7A20020 */ swc1 $f2, 0x20($sp) +/* 0E622C 7F0B16FC 46108102 */ mul.s $f4, $f16, $f16 +/* 0E6230 7F0B1700 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 0E6234 7F0B1704 0C007DF8 */ jal sqrtf +/* 0E6238 7F0B1708 46049300 */ add.s $f12, $f18, $f4 +/* 0E623C 7F0B170C 44803000 */ mtc1 $zero, $f6 +/* 0E6240 7F0B1710 C7A20020 */ lwc1 $f2, 0x20($sp) +/* 0E6244 7F0B1714 C7B0001C */ lwc1 $f16, 0x1c($sp) +/* 0E6248 7F0B1718 46060032 */ c.eq.s $f0, $f6 +/* 0E624C 7F0B171C 46000306 */ mov.s $f12, $f0 +/* 0E6250 7F0B1720 C7A80058 */ lwc1 $f8, 0x58($sp) +/* 0E6254 7F0B1724 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 0E6258 7F0B1728 4500000D */ bc1f .L7F0B1760 +/* 0E625C 7F0B172C C7B20048 */ lwc1 $f18, 0x48($sp) +/* 0E6260 7F0B1730 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 0E6264 7F0B1734 C7B2005C */ lwc1 $f18, 0x5c($sp) +/* 0E6268 7F0B1738 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 0E626C 7F0B173C 460A4001 */ sub.s $f0, $f8, $f10 +/* 0E6270 7F0B1740 46049081 */ sub.s $f2, $f18, $f4 +/* 0E6274 7F0B1744 46000182 */ mul.s $f6, $f0, $f0 +/* 0E6278 7F0B1748 00000000 */ nop +/* 0E627C 7F0B174C 46021202 */ mul.s $f8, $f2, $f2 +/* 0E6280 7F0B1750 0C007DF8 */ jal sqrtf +/* 0E6284 7F0B1754 46083300 */ add.s $f12, $f6, $f8 +/* 0E6288 7F0B1758 1000000B */ b .L7F0B1788 +/* 0E628C 7F0B175C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0B1760: +/* 0E6290 7F0B1760 46125101 */ sub.s $f4, $f10, $f18 +/* 0E6294 7F0B1764 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0E6298 7F0B1768 C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 0E629C 7F0B176C 46048182 */ mul.s $f6, $f16, $f4 +/* 0E62A0 7F0B1770 460A4481 */ sub.s $f18, $f8, $f10 +/* 0E62A4 7F0B1774 46001107 */ neg.s $f4, $f2 +/* 0E62A8 7F0B1778 46122202 */ mul.s $f8, $f4, $f18 +/* 0E62AC 7F0B177C 46083280 */ add.s $f10, $f6, $f8 +/* 0E62B0 7F0B1780 460C5003 */ div.s $f0, $f10, $f12 +/* 0E62B4 7F0B1784 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0B1788: +/* 0E62B8 7F0B1788 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0E62BC 7F0B178C 03E00008 */ jr $ra +/* 0E62C0 7F0B1790 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B1794(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { + f32 temp_f8; + f32 temp_f16; + + // Node 0 + temp_f8 = (arg2 - arg0); + temp_f16 = (arg3 - arg1); + arg2 = temp_f8; + arg3 = temp_f16; + sqrtf(((temp_f8 * temp_f8) + (temp_f16 * temp_f16))); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B1794 +/* 0E62C4 7F0B1794 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E62C8 7F0B1798 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0E62CC 7F0B179C AFA60020 */ sw $a2, 0x20($sp) +/* 0E62D0 7F0B17A0 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0E62D4 7F0B17A4 C7A60018 */ lwc1 $f6, 0x18($sp) +/* 0E62D8 7F0B17A8 AFA70024 */ sw $a3, 0x24($sp) +/* 0E62DC 7F0B17AC C7AA0024 */ lwc1 $f10, 0x24($sp) +/* 0E62E0 7F0B17B0 46062201 */ sub.s $f8, $f4, $f6 +/* 0E62E4 7F0B17B4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E62E8 7F0B17B8 460E5401 */ sub.s $f16, $f10, $f14 +/* 0E62EC 7F0B17BC 46084482 */ mul.s $f18, $f8, $f8 +/* 0E62F0 7F0B17C0 E7A80020 */ swc1 $f8, 0x20($sp) +/* 0E62F4 7F0B17C4 46108102 */ mul.s $f4, $f16, $f16 +/* 0E62F8 7F0B17C8 E7B00024 */ swc1 $f16, 0x24($sp) +/* 0E62FC 7F0B17CC 0C007DF8 */ jal sqrtf +/* 0E6300 7F0B17D0 46049300 */ add.s $f12, $f18, $f4 +/* 0E6304 7F0B17D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E6308 7F0B17D8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E630C 7F0B17DC 03E00008 */ jr $ra +/* 0E6310 7F0B17E0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B17E4(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5) { + f32 temp_f6; + f32 temp_f10; + f32 temp_f0; + f32 temp_f2; + f32 temp_f18; + f32 temp_f16; + s32 phi_v0; + s32 phi_v0_2; + s32 phi_v0_3; + + // Node 0 + temp_f6 = (arg4 - arg0); + temp_f10 = (arg5 - arg1); + arg4 = temp_f6; + temp_f0 = (arg2 - arg0); + arg5 = temp_f10; + temp_f2 = (arg3 - arg1); + temp_f18 = ((temp_f0 * temp_f0) + (temp_f2 * temp_f2)); + temp_f16 = ((temp_f6 * temp_f0) + (temp_f10 * temp_f2)); + phi_v0 = 0; + if (temp_f18 < temp_f16) + { + // Node 1 + phi_v0 = 1; + } + // Node 2 + if ((phi_v0 != 0) && (temp_f16 < 0.0f)) + { + // Node 4 + phi_v0_2 = 1; + // Node 5 + if (phi_v0_2 == 0) + { + // Node 6 + phi_v0_3 = 0; + if (0.0f < temp_f16) + { + // Node 7 + phi_v0_3 = 1; + } + // Node 8 + if (phi_v0_3 != 0) + { + // Node 9 + if (temp_f16 < temp_f18) + { + // Node 10 + } + } + } + } + else + { + // Node 6 + phi_v0_3 = 0; + if (0.0f < temp_f16) + { + // Node 7 + phi_v0_3 = 1; + } + // Node 8 + if (phi_v0_3 != 0) + { + // Node 9 + if (temp_f16 < temp_f18) + { + // Node 10 + } + } + } + // Node 11 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B17E4 +/* 0E6314 7F0B17E4 C7A40010 */ lwc1 $f4, 0x10($sp) +/* 0E6318 7F0B17E8 C7A80014 */ lwc1 $f8, 0x14($sp) +/* 0E631C 7F0B17EC AFA60008 */ sw $a2, 8($sp) +/* 0E6320 7F0B17F0 460C2181 */ sub.s $f6, $f4, $f12 +/* 0E6324 7F0B17F4 C7A40008 */ lwc1 $f4, 8($sp) +/* 0E6328 7F0B17F8 AFA7000C */ sw $a3, 0xc($sp) +/* 0E632C 7F0B17FC 460E4281 */ sub.s $f10, $f8, $f14 +/* 0E6330 7F0B1800 C7A8000C */ lwc1 $f8, 0xc($sp) +/* 0E6334 7F0B1804 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0E6338 7F0B1808 460C2001 */ sub.s $f0, $f4, $f12 +/* 0E633C 7F0B180C E7AA0014 */ swc1 $f10, 0x14($sp) +/* 0E6340 7F0B1810 00001025 */ move $v0, $zero +/* 0E6344 7F0B1814 460E4081 */ sub.s $f2, $f8, $f14 +/* 0E6348 7F0B1818 46000102 */ mul.s $f4, $f0, $f0 +/* 0E634C 7F0B181C 00000000 */ nop +/* 0E6350 7F0B1820 46021202 */ mul.s $f8, $f2, $f2 +/* 0E6354 7F0B1824 46082480 */ add.s $f18, $f4, $f8 +/* 0E6358 7F0B1828 46003102 */ mul.s $f4, $f6, $f0 +/* 0E635C 7F0B182C 00000000 */ nop +/* 0E6360 7F0B1830 46025202 */ mul.s $f8, $f10, $f2 +/* 0E6364 7F0B1834 46082400 */ add.s $f16, $f4, $f8 +/* 0E6368 7F0B1838 4610903C */ c.lt.s $f18, $f16 +/* 0E636C 7F0B183C 00000000 */ nop +/* 0E6370 7F0B1840 45000002 */ bc1f .L7F0B184C +/* 0E6374 7F0B1844 00000000 */ nop +/* 0E6378 7F0B1848 24020001 */ li $v0, 1 +.L7F0B184C: +/* 0E637C 7F0B184C 5040000B */ beql $v0, $zero, .L7F0B187C +/* 0E6380 7F0B1850 44805000 */ mtc1 $zero, $f10 +/* 0E6384 7F0B1854 44803000 */ mtc1 $zero, $f6 +/* 0E6388 7F0B1858 00001025 */ move $v0, $zero +/* 0E638C 7F0B185C 4606803C */ c.lt.s $f16, $f6 +/* 0E6390 7F0B1860 00000000 */ nop +/* 0E6394 7F0B1864 45000002 */ bc1f .L7F0B1870 +/* 0E6398 7F0B1868 00000000 */ nop +/* 0E639C 7F0B186C 24020001 */ li $v0, 1 +.L7F0B1870: +/* 0E63A0 7F0B1870 1440000F */ bnez $v0, .L7F0B18B0 +/* 0E63A4 7F0B1874 00000000 */ nop +/* 0E63A8 7F0B1878 44805000 */ mtc1 $zero, $f10 +.L7F0B187C: +/* 0E63AC 7F0B187C 00001025 */ move $v0, $zero +/* 0E63B0 7F0B1880 4610503C */ c.lt.s $f10, $f16 +/* 0E63B4 7F0B1884 00000000 */ nop +/* 0E63B8 7F0B1888 45000002 */ bc1f .L7F0B1894 +/* 0E63BC 7F0B188C 00000000 */ nop +/* 0E63C0 7F0B1890 24020001 */ li $v0, 1 +.L7F0B1894: +/* 0E63C4 7F0B1894 10400006 */ beqz $v0, .L7F0B18B0 +/* 0E63C8 7F0B1898 00000000 */ nop +/* 0E63CC 7F0B189C 4612803C */ c.lt.s $f16, $f18 +/* 0E63D0 7F0B18A0 00001025 */ move $v0, $zero +/* 0E63D4 7F0B18A4 45000002 */ bc1f .L7F0B18B0 +/* 0E63D8 7F0B18A8 00000000 */ nop +/* 0E63DC 7F0B18AC 24020001 */ li $v0, 1 +.L7F0B18B0: +/* 0E63E0 7F0B18B0 03E00008 */ jr $ra +/* 0E63E4 7F0B18B4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B18B8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B18B8 +/* 0E63E8 7F0B18B8 27BDFEE0 */ addiu $sp, $sp, -0x120 +/* 0E63EC 7F0B18BC C7A40134 */ lwc1 $f4, 0x134($sp) +/* 0E63F0 7F0B18C0 C7A60138 */ lwc1 $f6, 0x138($sp) +/* 0E63F4 7F0B18C4 F7BE0050 */ sdc1 $f30, 0x50($sp) +/* 0E63F8 7F0B18C8 F7BC0048 */ sdc1 $f28, 0x48($sp) +/* 0E63FC 7F0B18CC 4604303E */ c.le.s $f6, $f4 +/* 0E6400 7F0B18D0 F7BA0040 */ sdc1 $f26, 0x40($sp) +/* 0E6404 7F0B18D4 4485D000 */ mtc1 $a1, $f26 +/* 0E6408 7F0B18D8 4486E000 */ mtc1 $a2, $f28 +/* 0E640C 7F0B18DC 4487F000 */ mtc1 $a3, $f30 +/* 0E6410 7F0B18E0 AFB20060 */ sw $s2, 0x60($sp) +/* 0E6414 7F0B18E4 AFB1005C */ sw $s1, 0x5c($sp) +/* 0E6418 7F0B18E8 AFB00058 */ sw $s0, 0x58($sp) +/* 0E641C 7F0B18EC 00808825 */ move $s1, $a0 +/* 0E6420 7F0B18F0 27B200A8 */ addiu $s2, $sp, 0xa8 +/* 0E6424 7F0B18F4 AFBF007C */ sw $ra, 0x7c($sp) +/* 0E6428 7F0B18F8 AFBE0078 */ sw $fp, 0x78($sp) +/* 0E642C 7F0B18FC AFB70074 */ sw $s7, 0x74($sp) +/* 0E6430 7F0B1900 AFB60070 */ sw $s6, 0x70($sp) +/* 0E6434 7F0B1904 AFB5006C */ sw $s5, 0x6c($sp) +/* 0E6438 7F0B1908 AFB40068 */ sw $s4, 0x68($sp) +/* 0E643C 7F0B190C AFB30064 */ sw $s3, 0x64($sp) +/* 0E6440 7F0B1910 F7B80038 */ sdc1 $f24, 0x38($sp) +/* 0E6444 7F0B1914 F7B60030 */ sdc1 $f22, 0x30($sp) +/* 0E6448 7F0B1918 F7B40028 */ sdc1 $f20, 0x28($sp) +/* 0E644C 7F0B191C 45000002 */ bc1f .L7F0B1928 +/* 0E6450 7F0B1920 00008025 */ move $s0, $zero +/* 0E6454 7F0B1924 24100001 */ li $s0, 1 +.L7F0B1928: +/* 0E6458 7F0B1928 4405D000 */ mfc1 $a1, $f26 +/* 0E645C 7F0B192C 4406E000 */ mfc1 $a2, $f28 +/* 0E6460 7F0B1930 4407F000 */ mfc1 $a3, $f30 +/* 0E6464 7F0B1934 27AE00FC */ addiu $t6, $sp, 0xfc +/* 0E6468 7F0B1938 240F0014 */ li $t7, 20 +/* 0E646C 7F0B193C AFB00108 */ sw $s0, 0x108($sp) +/* 0E6470 7F0B1940 AFA000FC */ sw $zero, 0xfc($sp) +/* 0E6474 7F0B1944 AFAF0018 */ sw $t7, 0x18($sp) +/* 0E6478 7F0B1948 AFAE0014 */ sw $t6, 0x14($sp) +/* 0E647C 7F0B194C 02202025 */ move $a0, $s1 +/* 0E6480 7F0B1950 0FC2C86C */ jal sub_GAME_7F0B21B0 +/* 0E6484 7F0B1954 AFB20010 */ sw $s2, 0x10($sp) +/* 0E6488 7F0B1958 04400003 */ bltz $v0, .L7F0B1968 +/* 0E648C 7F0B195C 8FB800FC */ lw $t8, 0xfc($sp) +/* 0E6490 7F0B1960 100000C7 */ b .L7F0B1C80 +/* 0E6494 7F0B1964 8FBF007C */ lw $ra, 0x7c($sp) +.L7F0B1968: +/* 0E6498 7F0B1968 2B010015 */ slti $at, $t8, 0x15 +/* 0E649C 7F0B196C 14200002 */ bnez $at, .L7F0B1978 +/* 0E64A0 7F0B1970 24190014 */ li $t9, 20 +/* 0E64A4 7F0B1974 AFB900FC */ sw $t9, 0xfc($sp) +.L7F0B1978: +/* 0E64A8 7F0B1978 8FA80130 */ lw $t0, 0x130($sp) +/* 0E64AC 7F0B197C 3C018008 */ lui $at, %hi(dword_CODE_bss_8007BA04) +/* 0E64B0 7F0B1980 AC20BA04 */ sw $zero, %lo(dword_CODE_bss_8007BA04)($at) +/* 0E64B4 7F0B1984 510000BD */ beql $t0, $zero, .L7F0B1C7C +/* 0E64B8 7F0B1988 2402FFFE */ li $v0, -2 +/* 0E64BC 7F0B198C 5200000C */ beql $s0, $zero, .L7F0B19C0 +/* 0E64C0 7F0B1990 8FAA00FC */ lw $t2, 0xfc($sp) +/* 0E64C4 7F0B1994 4405D000 */ mfc1 $a1, $f26 +/* 0E64C8 7F0B1998 4406E000 */ mfc1 $a2, $f28 +/* 0E64CC 7F0B199C 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0E64D0 7F0B19A0 8E240000 */ lw $a0, ($s1) +/* 0E64D4 7F0B19A4 C7A80134 */ lwc1 $f8, 0x134($sp) +/* 0E64D8 7F0B19A8 C7B00138 */ lwc1 $f16, 0x138($sp) +/* 0E64DC 7F0B19AC 46004280 */ add.s $f10, $f8, $f0 +/* 0E64E0 7F0B19B0 46008480 */ add.s $f18, $f16, $f0 +/* 0E64E4 7F0B19B4 E7AA0134 */ swc1 $f10, 0x134($sp) +/* 0E64E8 7F0B19B8 E7B20138 */ swc1 $f18, 0x138($sp) +/* 0E64EC 7F0B19BC 8FAA00FC */ lw $t2, 0xfc($sp) +.L7F0B19C0: +/* 0E64F0 7F0B19C0 2409FFFF */ li $t1, -1 +/* 0E64F4 7F0B19C4 02402025 */ move $a0, $s2 +/* 0E64F8 7F0B19C8 000A5880 */ sll $t3, $t2, 2 +/* 0E64FC 7F0B19CC 024B6021 */ addu $t4, $s2, $t3 +/* 0E6500 7F0B19D0 0FC0F8FF */ jal sub_GAME_7F03E3FC +/* 0E6504 7F0B19D4 AD890000 */ sw $t1, ($t4) +/* 0E6508 7F0B19D8 3C038007 */ lui $v1, %hi(ptr_list_object_lookup_indices) +/* 0E650C 7F0B19DC 8C639C30 */ lw $v1, %lo(ptr_list_object_lookup_indices)($v1) +/* 0E6510 7F0B19E0 3C1E8008 */ lui $fp, %hi(dword_CODE_bss_8007B9E4) +/* 0E6514 7F0B19E4 3C168004 */ lui $s6, %hi(D_800413BC) +/* 0E6518 7F0B19E8 84620000 */ lh $v0, ($v1) +/* 0E651C 7F0B19EC 26D613BC */ addiu $s6, %lo(D_800413BC) # addiu $s6, $s6, 0x13bc +/* 0E6520 7F0B19F0 27DEB9E4 */ addiu $fp, %lo(dword_CODE_bss_8007B9E4) # addiu $fp, $fp, -0x461c +/* 0E6524 7F0B19F4 044000A0 */ bltz $v0, .L7F0B1C78 +/* 0E6528 7F0B19F8 24170001 */ li $s7, 1 +/* 0E652C 7F0B19FC 3C148008 */ lui $s4, %hi(flt_CODE_bss_8007B9F8) +/* 0E6530 7F0B1A00 3C138008 */ lui $s3, %hi(flt_CODE_bss_8007B9F0) +/* 0E6534 7F0B1A04 2673B9F0 */ addiu $s3, %lo(flt_CODE_bss_8007B9F0) # addiu $s3, $s3, -0x4610 +/* 0E6538 7F0B1A08 2694B9F8 */ addiu $s4, %lo(flt_CODE_bss_8007B9F8) # addiu $s4, $s4, -0x4608 +/* 0E653C 7F0B1A0C AFA30100 */ sw $v1, 0x100($sp) +/* 0E6540 7F0B1A10 00026880 */ sll $t5, $v0, 2 +.L7F0B1A14: +/* 0E6544 7F0B1A14 01A26823 */ subu $t5, $t5, $v0 +/* 0E6548 7F0B1A18 000D6880 */ sll $t5, $t5, 2 +/* 0E654C 7F0B1A1C 01A26821 */ addu $t5, $t5, $v0 +/* 0E6550 7F0B1A20 3C0E8007 */ lui $t6, %hi(pos_data_entry) +/* 0E6554 7F0B1A24 25CE9C38 */ addiu $t6, %lo(pos_data_entry) # addiu $t6, $t6, -0x63c8 +/* 0E6558 7F0B1A28 000D6880 */ sll $t5, $t5, 2 +/* 0E655C 7F0B1A2C 01AEA821 */ addu $s5, $t5, $t6 +/* 0E6560 7F0B1A30 02A02025 */ move $a0, $s5 +/* 0E6564 7F0B1A34 0FC0F694 */ jal sub_GAME_7F03DA50 +/* 0E6568 7F0B1A38 8FA50130 */ lw $a1, 0x130($sp) +/* 0E656C 7F0B1A3C 10400088 */ beqz $v0, .L7F0B1C60 +/* 0E6570 7F0B1A40 02A02025 */ move $a0, $s5 +/* 0E6574 7F0B1A44 27AF0090 */ addiu $t7, $sp, 0x90 +/* 0E6578 7F0B1A48 AFAF0010 */ sw $t7, 0x10($sp) +/* 0E657C 7F0B1A4C 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 0E6580 7F0B1A50 27A600A0 */ addiu $a2, $sp, 0xa0 +/* 0E6584 7F0B1A54 0FC0F308 */ jal sub_GAME_7F03CC20 +/* 0E6588 7F0B1A58 27A70094 */ addiu $a3, $sp, 0x94 +/* 0E658C 7F0B1A5C 8FB800A0 */ lw $t8, 0xa0($sp) +/* 0E6590 7F0B1A60 8FB90108 */ lw $t9, 0x108($sp) +/* 0E6594 7F0B1A64 5B00007F */ blezl $t8, .L7F0B1C64 +/* 0E6598 7F0B1A68 8FA30100 */ lw $v1, 0x100($sp) +/* 0E659C 7F0B1A6C 1320000D */ beqz $t9, .L7F0B1AA4 +/* 0E65A0 7F0B1A70 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0E65A4 7F0B1A74 C7A40134 */ lwc1 $f4, 0x134($sp) +/* 0E65A8 7F0B1A78 C7A60090 */ lwc1 $f6, 0x90($sp) +/* 0E65AC 7F0B1A7C C7A80094 */ lwc1 $f8, 0x94($sp) +/* 0E65B0 7F0B1A80 C7AA0138 */ lwc1 $f10, 0x138($sp) +/* 0E65B4 7F0B1A84 4604303E */ c.le.s $f6, $f4 +/* 0E65B8 7F0B1A88 00000000 */ nop +/* 0E65BC 7F0B1A8C 45020075 */ bc1fl .L7F0B1C64 +/* 0E65C0 7F0B1A90 8FA30100 */ lw $v1, 0x100($sp) +/* 0E65C4 7F0B1A94 4608503E */ c.le.s $f10, $f8 +/* 0E65C8 7F0B1A98 00000000 */ nop +/* 0E65CC 7F0B1A9C 45020071 */ bc1fl .L7F0B1C64 +/* 0E65D0 7F0B1AA0 8FA30100 */ lw $v1, 0x100($sp) +.L7F0B1AA4: +/* 0E65D4 7F0B1AA4 4481C000 */ mtc1 $at, $f24 +/* 0E65D8 7F0B1AA8 00002825 */ move $a1, $zero +.L7F0B1AAC: +/* 0E65DC 7F0B1AAC 8FAA00A0 */ lw $t2, 0xa0($sp) +/* 0E65E0 7F0B1AB0 24A80001 */ addiu $t0, $a1, 1 +/* 0E65E4 7F0B1AB4 8FAB00A4 */ lw $t3, 0xa4($sp) +/* 0E65E8 7F0B1AB8 010A001A */ div $zero, $t0, $t2 +/* 0E65EC 7F0B1ABC 00001810 */ mfhi $v1 +/* 0E65F0 7F0B1AC0 000348C0 */ sll $t1, $v1, 3 +/* 0E65F4 7F0B1AC4 000588C0 */ sll $s1, $a1, 3 +/* 0E65F8 7F0B1AC8 01711021 */ addu $v0, $t3, $s1 +/* 0E65FC 7F0B1ACC 01692021 */ addu $a0, $t3, $t1 +/* 0E6600 7F0B1AD0 8C860000 */ lw $a2, ($a0) +/* 0E6604 7F0B1AD4 8C870004 */ lw $a3, 4($a0) +/* 0E6608 7F0B1AD8 C44C0000 */ lwc1 $f12, ($v0) +/* 0E660C 7F0B1ADC C44E0004 */ lwc1 $f14, 4($v0) +/* 0E6610 7F0B1AE0 15400002 */ bnez $t2, .L7F0B1AEC +/* 0E6614 7F0B1AE4 00000000 */ nop +/* 0E6618 7F0B1AE8 0007000D */ break 7 +.L7F0B1AEC: +/* 0E661C 7F0B1AEC 2401FFFF */ li $at, -1 +/* 0E6620 7F0B1AF0 15410004 */ bne $t2, $at, .L7F0B1B04 +/* 0E6624 7F0B1AF4 3C018000 */ lui $at, 0x8000 +/* 0E6628 7F0B1AF8 15010002 */ bne $t0, $at, .L7F0B1B04 +/* 0E662C 7F0B1AFC 00000000 */ nop +/* 0E6630 7F0B1B00 0006000D */ break 6 +.L7F0B1B04: +/* 0E6634 7F0B1B04 00609025 */ move $s2, $v1 +/* 0E6638 7F0B1B08 E7BC0014 */ swc1 $f28, 0x14($sp) +/* 0E663C 7F0B1B0C 0FC2C5B1 */ jal sub_GAME_7F0B16C4 +/* 0E6640 7F0B1B10 E7BA0010 */ swc1 $f26, 0x10($sp) +/* 0E6644 7F0B1B14 44808000 */ mtc1 $zero, $f16 +/* 0E6648 7F0B1B18 46000506 */ mov.s $f20, $f0 +/* 0E664C 7F0B1B1C 4610003C */ c.lt.s $f0, $f16 +/* 0E6650 7F0B1B20 00000000 */ nop +/* 0E6654 7F0B1B24 45020003 */ bc1fl .L7F0B1B34 +/* 0E6658 7F0B1B28 4614C03C */ c.lt.s $f24, $f20 +/* 0E665C 7F0B1B2C 46000507 */ neg.s $f20, $f0 +/* 0E6660 7F0B1B30 4614C03C */ c.lt.s $f24, $f20 +.L7F0B1B34: +/* 0E6664 7F0B1B34 00000000 */ nop +/* 0E6668 7F0B1B38 4500003C */ bc1f .L7F0B1C2C +/* 0E666C 7F0B1B3C 00000000 */ nop +/* 0E6670 7F0B1B40 8FAC00A4 */ lw $t4, 0xa4($sp) +/* 0E6674 7F0B1B44 4406D000 */ mfc1 $a2, $f26 +/* 0E6678 7F0B1B48 4407E000 */ mfc1 $a3, $f28 +/* 0E667C 7F0B1B4C 01911021 */ addu $v0, $t4, $s1 +/* 0E6680 7F0B1B50 C44C0000 */ lwc1 $f12, ($v0) +/* 0E6684 7F0B1B54 0FC2C5E5 */ jal sub_GAME_7F0B1794 +/* 0E6688 7F0B1B58 C44E0004 */ lwc1 $f14, 4($v0) +/* 0E668C 7F0B1B5C 8FAD00A4 */ lw $t5, 0xa4($sp) +/* 0E6690 7F0B1B60 001280C0 */ sll $s0, $s2, 3 +/* 0E6694 7F0B1B64 4406D000 */ mfc1 $a2, $f26 +/* 0E6698 7F0B1B68 4407E000 */ mfc1 $a3, $f28 +/* 0E669C 7F0B1B6C 01B01821 */ addu $v1, $t5, $s0 +/* 0E66A0 7F0B1B70 46000586 */ mov.s $f22, $f0 +/* 0E66A4 7F0B1B74 C46C0000 */ lwc1 $f12, ($v1) +/* 0E66A8 7F0B1B78 0FC2C5E5 */ jal sub_GAME_7F0B1794 +/* 0E66AC 7F0B1B7C C46E0004 */ lwc1 $f14, 4($v1) +/* 0E66B0 7F0B1B80 461EA03C */ c.lt.s $f20, $f30 +/* 0E66B4 7F0B1B84 00000000 */ nop +/* 0E66B8 7F0B1B88 45000028 */ bc1f .L7F0B1C2C +/* 0E66BC 7F0B1B8C 00000000 */ nop +/* 0E66C0 7F0B1B90 461EB03C */ c.lt.s $f22, $f30 +/* 0E66C4 7F0B1B94 00000000 */ nop +/* 0E66C8 7F0B1B98 45030012 */ bc1tl .L7F0B1BE4 +/* 0E66CC 7F0B1B9C 8FAF00A4 */ lw $t7, 0xa4($sp) +/* 0E66D0 7F0B1BA0 461E003C */ c.lt.s $f0, $f30 +/* 0E66D4 7F0B1BA4 00000000 */ nop +/* 0E66D8 7F0B1BA8 4503000E */ bc1tl .L7F0B1BE4 +/* 0E66DC 7F0B1BAC 8FAF00A4 */ lw $t7, 0xa4($sp) +/* 0E66E0 7F0B1BB0 8FAE00A4 */ lw $t6, 0xa4($sp) +/* 0E66E4 7F0B1BB4 01D11021 */ addu $v0, $t6, $s1 +/* 0E66E8 7F0B1BB8 01D01821 */ addu $v1, $t6, $s0 +/* 0E66EC 7F0B1BBC 8C660000 */ lw $a2, ($v1) +/* 0E66F0 7F0B1BC0 8C670004 */ lw $a3, 4($v1) +/* 0E66F4 7F0B1BC4 C44C0000 */ lwc1 $f12, ($v0) +/* 0E66F8 7F0B1BC8 C44E0004 */ lwc1 $f14, 4($v0) +/* 0E66FC 7F0B1BCC E7BC0014 */ swc1 $f28, 0x14($sp) +/* 0E6700 7F0B1BD0 0FC2C5F9 */ jal sub_GAME_7F0B17E4 +/* 0E6704 7F0B1BD4 E7BA0010 */ swc1 $f26, 0x10($sp) +/* 0E6708 7F0B1BD8 10400014 */ beqz $v0, .L7F0B1C2C +/* 0E670C 7F0B1BDC 00000000 */ nop +/* 0E6710 7F0B1BE0 8FAF00A4 */ lw $t7, 0xa4($sp) +.L7F0B1BE4: +/* 0E6714 7F0B1BE4 AED70000 */ sw $s7, ($s6) +/* 0E6718 7F0B1BE8 8FB800A4 */ lw $t8, 0xa4($sp) +/* 0E671C 7F0B1BEC 01F11021 */ addu $v0, $t7, $s1 +/* 0E6720 7F0B1BF0 C4520000 */ lwc1 $f18, ($v0) +/* 0E6724 7F0B1BF4 03101821 */ addu $v1, $t8, $s0 +/* 0E6728 7F0B1BF8 3C018008 */ lui $at, %hi(dword_CODE_bss_8007B9E8) +/* 0E672C 7F0B1BFC E6720000 */ swc1 $f18, ($s3) +/* 0E6730 7F0B1C00 C4440004 */ lwc1 $f4, 4($v0) +/* 0E6734 7F0B1C04 4600A606 */ mov.s $f24, $f20 +/* 0E6738 7F0B1C08 E6640004 */ swc1 $f4, 4($s3) +/* 0E673C 7F0B1C0C C4660000 */ lwc1 $f6, ($v1) +/* 0E6740 7F0B1C10 E6860000 */ swc1 $f6, ($s4) +/* 0E6744 7F0B1C14 C4680004 */ lwc1 $f8, 4($v1) +/* 0E6748 7F0B1C18 AFC00000 */ sw $zero, ($fp) +/* 0E674C 7F0B1C1C E6880004 */ swc1 $f8, 4($s4) +/* 0E6750 7F0B1C20 AC20B9E8 */ sw $zero, %lo(dword_CODE_bss_8007B9E8)($at) +/* 0E6754 7F0B1C24 3C018008 */ lui $at, %hi(dword_CODE_bss_8007BA04) +/* 0E6758 7F0B1C28 AC35BA04 */ sw $s5, %lo(dword_CODE_bss_8007BA04)($at) +.L7F0B1C2C: +/* 0E675C 7F0B1C2C 52400004 */ beql $s2, $zero, .L7F0B1C40 +/* 0E6760 7F0B1C30 3C01BF80 */ lui $at, 0xbf80 +/* 0E6764 7F0B1C34 1000FF9D */ b .L7F0B1AAC +/* 0E6768 7F0B1C38 02402825 */ move $a1, $s2 +/* 0E676C 7F0B1C3C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.L7F0B1C40: +/* 0E6770 7F0B1C40 44815000 */ mtc1 $at, $f10 +/* 0E6774 7F0B1C44 00000000 */ nop +/* 0E6778 7F0B1C48 4618503C */ c.lt.s $f10, $f24 +/* 0E677C 7F0B1C4C 00000000 */ nop +/* 0E6780 7F0B1C50 45020004 */ bc1fl .L7F0B1C64 +/* 0E6784 7F0B1C54 8FA30100 */ lw $v1, 0x100($sp) +/* 0E6788 7F0B1C58 10000008 */ b .L7F0B1C7C +/* 0E678C 7F0B1C5C 24020002 */ li $v0, 2 +.L7F0B1C60: +/* 0E6790 7F0B1C60 8FA30100 */ lw $v1, 0x100($sp) +.L7F0B1C64: +/* 0E6794 7F0B1C64 84620002 */ lh $v0, 2($v1) +/* 0E6798 7F0B1C68 24630002 */ addiu $v1, $v1, 2 +/* 0E679C 7F0B1C6C AFA30100 */ sw $v1, 0x100($sp) +/* 0E67A0 7F0B1C70 0443FF68 */ bgezl $v0, .L7F0B1A14 +/* 0E67A4 7F0B1C74 00026880 */ sll $t5, $v0, 2 +.L7F0B1C78: +/* 0E67A8 7F0B1C78 2402FFFE */ li $v0, -2 +.L7F0B1C7C: +/* 0E67AC 7F0B1C7C 8FBF007C */ lw $ra, 0x7c($sp) +.L7F0B1C80: +/* 0E67B0 7F0B1C80 D7B40028 */ ldc1 $f20, 0x28($sp) +/* 0E67B4 7F0B1C84 D7B60030 */ ldc1 $f22, 0x30($sp) +/* 0E67B8 7F0B1C88 D7B80038 */ ldc1 $f24, 0x38($sp) +/* 0E67BC 7F0B1C8C D7BA0040 */ ldc1 $f26, 0x40($sp) +/* 0E67C0 7F0B1C90 D7BC0048 */ ldc1 $f28, 0x48($sp) +/* 0E67C4 7F0B1C94 D7BE0050 */ ldc1 $f30, 0x50($sp) +/* 0E67C8 7F0B1C98 8FB00058 */ lw $s0, 0x58($sp) +/* 0E67CC 7F0B1C9C 8FB1005C */ lw $s1, 0x5c($sp) +/* 0E67D0 7F0B1CA0 8FB20060 */ lw $s2, 0x60($sp) +/* 0E67D4 7F0B1CA4 8FB30064 */ lw $s3, 0x64($sp) +/* 0E67D8 7F0B1CA8 8FB40068 */ lw $s4, 0x68($sp) +/* 0E67DC 7F0B1CAC 8FB5006C */ lw $s5, 0x6c($sp) +/* 0E67E0 7F0B1CB0 8FB60070 */ lw $s6, 0x70($sp) +/* 0E67E4 7F0B1CB4 8FB70074 */ lw $s7, 0x74($sp) +/* 0E67E8 7F0B1CB8 8FBE0078 */ lw $fp, 0x78($sp) +/* 0E67EC 7F0B1CBC 03E00008 */ jr $ra +/* 0E67F0 7F0B1CC0 27BD0120 */ addiu $sp, $sp, 0x120 +) +#endif + + + + + +void sub_GAME_7F0B1CC4(void) { + dword_CODE_bss_8007B9E4 = 0; + dword_CODE_bss_8007B9E8 = 0; + D_800413BC = 0; +} + +s32 sub_GAME_7F0B1CE0(void) { + return dword_CODE_bss_8007B9E4; +} + +s32 sub_GAME_7F0B1CEC(void) { + return dword_CODE_bss_8007B9E8; +} + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0B1CF8(void *arg0, s32 arg1, void *arg2, void *arg3) { + void *temp_v0; + void *temp_v0_2; + + // Node 0 + temp_v0 = (arg0 + (arg1 * 8)); + *arg2 = (f32) ((f32) temp_v0->unk8 * D_80040F48); + arg2->unk4 = (f32) ((f32) temp_v0->unkA * D_80040F48); + arg2->unk8 = (f32) ((f32) temp_v0->unkC * D_80040F48); + temp_v0_2 = (arg0 + (((s32) (arg1 + 1) % (s32) (((s32) arg0->unk6 >> 0xc) & 0xf)) * 8)); + *arg3 = (f32) ((f32) temp_v0_2->unk8 * D_80040F48); + arg3->unk4 = (f32) ((f32) temp_v0_2->unkA * D_80040F48); + arg3->unk8 = (f32) ((f32) temp_v0_2->unkC * D_80040F48); + return temp_v0_2; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B1CF8 +/* 0E6828 7F0B1CF8 000570C0 */ sll $t6, $a1, 3 +/* 0E682C 7F0B1CFC 008E1021 */ addu $v0, $a0, $t6 +/* 0E6830 7F0B1D00 844F0008 */ lh $t7, 8($v0) +/* 0E6834 7F0B1D04 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E6838 7F0B1D08 C4200F48 */ lwc1 $f0, %lo(D_80040F48)($at) +/* 0E683C 7F0B1D0C 448F2000 */ mtc1 $t7, $f4 +/* 0E6840 7F0B1D10 24A80001 */ addiu $t0, $a1, 1 +/* 0E6844 7F0B1D14 468021A0 */ cvt.s.w $f6, $f4 +/* 0E6848 7F0B1D18 46003202 */ mul.s $f8, $f6, $f0 +/* 0E684C 7F0B1D1C E4C80000 */ swc1 $f8, ($a2) +/* 0E6850 7F0B1D20 8458000A */ lh $t8, 0xa($v0) +/* 0E6854 7F0B1D24 44985000 */ mtc1 $t8, $f10 +/* 0E6858 7F0B1D28 00000000 */ nop +/* 0E685C 7F0B1D2C 46805420 */ cvt.s.w $f16, $f10 +/* 0E6860 7F0B1D30 46008482 */ mul.s $f18, $f16, $f0 +/* 0E6864 7F0B1D34 E4D20004 */ swc1 $f18, 4($a2) +/* 0E6868 7F0B1D38 8459000C */ lh $t9, 0xc($v0) +/* 0E686C 7F0B1D3C 44992000 */ mtc1 $t9, $f4 +/* 0E6870 7F0B1D40 00000000 */ nop +/* 0E6874 7F0B1D44 468021A0 */ cvt.s.w $f6, $f4 +/* 0E6878 7F0B1D48 46003202 */ mul.s $f8, $f6, $f0 +/* 0E687C 7F0B1D4C E4C80008 */ swc1 $f8, 8($a2) +/* 0E6880 7F0B1D50 84890006 */ lh $t1, 6($a0) +/* 0E6884 7F0B1D54 00095303 */ sra $t2, $t1, 0xc +/* 0E6888 7F0B1D58 314B000F */ andi $t3, $t2, 0xf +/* 0E688C 7F0B1D5C 010B001A */ div $zero, $t0, $t3 +/* 0E6890 7F0B1D60 00002810 */ mfhi $a1 +/* 0E6894 7F0B1D64 000560C0 */ sll $t4, $a1, 3 +/* 0E6898 7F0B1D68 008C1021 */ addu $v0, $a0, $t4 +/* 0E689C 7F0B1D6C 844D0008 */ lh $t5, 8($v0) +/* 0E68A0 7F0B1D70 15600002 */ bnez $t3, .L7F0B1D7C +/* 0E68A4 7F0B1D74 00000000 */ nop +/* 0E68A8 7F0B1D78 0007000D */ break 7 +.L7F0B1D7C: +/* 0E68AC 7F0B1D7C 2401FFFF */ li $at, -1 +/* 0E68B0 7F0B1D80 15610004 */ bne $t3, $at, .L7F0B1D94 +/* 0E68B4 7F0B1D84 3C018000 */ lui $at, 0x8000 +/* 0E68B8 7F0B1D88 15010002 */ bne $t0, $at, .L7F0B1D94 +/* 0E68BC 7F0B1D8C 00000000 */ nop +/* 0E68C0 7F0B1D90 0006000D */ break 6 +.L7F0B1D94: +/* 0E68C4 7F0B1D94 448D5000 */ mtc1 $t5, $f10 +/* 0E68C8 7F0B1D98 00000000 */ nop +/* 0E68CC 7F0B1D9C 46805420 */ cvt.s.w $f16, $f10 +/* 0E68D0 7F0B1DA0 46008482 */ mul.s $f18, $f16, $f0 +/* 0E68D4 7F0B1DA4 E4F20000 */ swc1 $f18, ($a3) +/* 0E68D8 7F0B1DA8 844E000A */ lh $t6, 0xa($v0) +/* 0E68DC 7F0B1DAC 448E2000 */ mtc1 $t6, $f4 +/* 0E68E0 7F0B1DB0 00000000 */ nop +/* 0E68E4 7F0B1DB4 468021A0 */ cvt.s.w $f6, $f4 +/* 0E68E8 7F0B1DB8 46003202 */ mul.s $f8, $f6, $f0 +/* 0E68EC 7F0B1DBC E4E80004 */ swc1 $f8, 4($a3) +/* 0E68F0 7F0B1DC0 844F000C */ lh $t7, 0xc($v0) +/* 0E68F4 7F0B1DC4 448F5000 */ mtc1 $t7, $f10 +/* 0E68F8 7F0B1DC8 00000000 */ nop +/* 0E68FC 7F0B1DCC 46805420 */ cvt.s.w $f16, $f10 +/* 0E6900 7F0B1DD0 46008482 */ mul.s $f18, $f16, $f0 +/* 0E6904 7F0B1DD4 03E00008 */ jr $ra +/* 0E6908 7F0B1DD8 E4F20008 */ swc1 $f18, 8($a3) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B1DDC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B1DDC +/* 0E690C 7F0B1DDC 27BDFEB0 */ addiu $sp, $sp, -0x150 +/* 0E6910 7F0B1DE0 F7BA0038 */ sdc1 $f26, 0x38($sp) +/* 0E6914 7F0B1DE4 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E6918 7F0B1DE8 4485D000 */ mtc1 $a1, $f26 +/* 0E691C 7F0B1DEC C4200F44 */ lwc1 $f0, %lo(D_80040F44)($at) +/* 0E6920 7F0B1DF0 F7BC0040 */ sdc1 $f28, 0x40($sp) +/* 0E6924 7F0B1DF4 4486E000 */ mtc1 $a2, $f28 +/* 0E6928 7F0B1DF8 4600D682 */ mul.s $f26, $f26, $f0 +/* 0E692C 7F0B1DFC F7BE0048 */ sdc1 $f30, 0x48($sp) +/* 0E6930 7F0B1E00 4487F000 */ mtc1 $a3, $f30 +/* 0E6934 7F0B1E04 4600E702 */ mul.s $f28, $f28, $f0 +/* 0E6938 7F0B1E08 AFBF0074 */ sw $ra, 0x74($sp) +/* 0E693C 7F0B1E0C AFBE0070 */ sw $fp, 0x70($sp) +/* 0E6940 7F0B1E10 AFB7006C */ sw $s7, 0x6c($sp) +/* 0E6944 7F0B1E14 AFB60068 */ sw $s6, 0x68($sp) +/* 0E6948 7F0B1E18 AFB50064 */ sw $s5, 0x64($sp) +/* 0E694C 7F0B1E1C AFB40060 */ sw $s4, 0x60($sp) +/* 0E6950 7F0B1E20 AFB3005C */ sw $s3, 0x5c($sp) +/* 0E6954 7F0B1E24 AFB20058 */ sw $s2, 0x58($sp) +/* 0E6958 7F0B1E28 AFB10054 */ sw $s1, 0x54($sp) +/* 0E695C 7F0B1E2C AFB00050 */ sw $s0, 0x50($sp) +/* 0E6960 7F0B1E30 F7B80030 */ sdc1 $f24, 0x30($sp) +/* 0E6964 7F0B1E34 F7B60028 */ sdc1 $f22, 0x28($sp) +/* 0E6968 7F0B1E38 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 0E696C 7F0B1E3C AFA000A4 */ sw $zero, 0xa4($sp) +/* 0E6970 7F0B1E40 8C8E0000 */ lw $t6, ($a0) +/* 0E6974 7F0B1E44 27AF00B0 */ addiu $t7, $sp, 0xb0 +/* 0E6978 7F0B1E48 4600F782 */ mul.s $f30, $f30, $f0 +/* 0E697C 7F0B1E4C 24140001 */ li $s4, 1 +/* 0E6980 7F0B1E50 AFAF0084 */ sw $t7, 0x84($sp) +/* 0E6984 7F0B1E54 27B200B0 */ addiu $s2, $sp, 0xb0 +/* 0E6988 7F0B1E58 8FB60164 */ lw $s6, 0x164($sp) +/* 0E698C 7F0B1E5C 8FB7016C */ lw $s7, 0x16c($sp) +/* 0E6990 7F0B1E60 8FBE0168 */ lw $fp, 0x168($sp) +/* 0E6994 7F0B1E64 AFAE00B0 */ sw $t6, 0xb0($sp) +/* 0E6998 7F0B1E68 8FB80084 */ lw $t8, 0x84($sp) +.L7F0B1E6C: +/* 0E699C 7F0B1E6C 8FB900A4 */ lw $t9, 0xa4($sp) +/* 0E69A0 7F0B1E70 8FAA0160 */ lw $t2, 0x160($sp) +/* 0E69A4 7F0B1E74 8F130000 */ lw $s3, ($t8) +/* 0E69A8 7F0B1E78 27090004 */ addiu $t1, $t8, 4 +/* 0E69AC 7F0B1E7C 27280001 */ addiu $t0, $t9, 1 +/* 0E69B0 7F0B1E80 AFA800A4 */ sw $t0, 0xa4($sp) +/* 0E69B4 7F0B1E84 AFA90084 */ sw $t1, 0x84($sp) +/* 0E69B8 7F0B1E88 11400004 */ beqz $t2, .L7F0B1E9C +/* 0E69BC 7F0B1E8C 00008025 */ move $s0, $zero +/* 0E69C0 7F0B1E90 02602025 */ move $a0, $s3 +/* 0E69C4 7F0B1E94 0140F809 */ jalr $t2 +/* 0E69C8 7F0B1E98 02E02825 */ move $a1, $s7 +.L7F0B1E9C: +/* 0E69CC 7F0B1E9C 86620006 */ lh $v0, 6($s3) +/* 0E69D0 7F0B1EA0 00025B03 */ sra $t3, $v0, 0xc +/* 0E69D4 7F0B1EA4 316C000F */ andi $t4, $t3, 0xf +/* 0E69D8 7F0B1EA8 19800069 */ blez $t4, .L7F0B2050 +/* 0E69DC 7F0B1EAC 01801025 */ move $v0, $t4 +.L7F0B1EB0: +/* 0E69E0 7F0B1EB0 26150001 */ addiu $s5, $s0, 1 +/* 0E69E4 7F0B1EB4 02A2001A */ div $zero, $s5, $v0 +/* 0E69E8 7F0B1EB8 00008810 */ mfhi $s1 +/* 0E69EC 7F0B1EBC 4406D000 */ mfc1 $a2, $f26 +/* 0E69F0 7F0B1EC0 14400002 */ bnez $v0, .L7F0B1ECC +/* 0E69F4 7F0B1EC4 00000000 */ nop +/* 0E69F8 7F0B1EC8 0007000D */ break 7 +.L7F0B1ECC: +/* 0E69FC 7F0B1ECC 2401FFFF */ li $at, -1 +/* 0E6A00 7F0B1ED0 14410004 */ bne $v0, $at, .L7F0B1EE4 +/* 0E6A04 7F0B1ED4 3C018000 */ lui $at, 0x8000 +/* 0E6A08 7F0B1ED8 16A10002 */ bne $s5, $at, .L7F0B1EE4 +/* 0E6A0C 7F0B1EDC 00000000 */ nop +/* 0E6A10 7F0B1EE0 0006000D */ break 6 +.L7F0B1EE4: +/* 0E6A14 7F0B1EE4 4407E000 */ mfc1 $a3, $f28 +/* 0E6A18 7F0B1EE8 02602025 */ move $a0, $s3 +/* 0E6A1C 7F0B1EEC 0FC2BF47 */ jal sub_GAME_7F0AFD1C +/* 0E6A20 7F0B1EF0 02002825 */ move $a1, $s0 +/* 0E6A24 7F0B1EF4 4406D000 */ mfc1 $a2, $f26 +/* 0E6A28 7F0B1EF8 4407E000 */ mfc1 $a3, $f28 +/* 0E6A2C 7F0B1EFC 46000586 */ mov.s $f22, $f0 +/* 0E6A30 7F0B1F00 02602025 */ move $a0, $s3 +/* 0E6A34 7F0B1F04 0FC2C019 */ jal sub_GAME_7F0B0064 +/* 0E6A38 7F0B1F08 02002825 */ move $a1, $s0 +/* 0E6A3C 7F0B1F0C 4406D000 */ mfc1 $a2, $f26 +/* 0E6A40 7F0B1F10 4407E000 */ mfc1 $a3, $f28 +/* 0E6A44 7F0B1F14 46000506 */ mov.s $f20, $f0 +/* 0E6A48 7F0B1F18 02602025 */ move $a0, $s3 +/* 0E6A4C 7F0B1F1C 0FC2C019 */ jal sub_GAME_7F0B0064 +/* 0E6A50 7F0B1F20 02202825 */ move $a1, $s1 +/* 0E6A54 7F0B1F24 461EB03C */ c.lt.s $f22, $f30 +/* 0E6A58 7F0B1F28 46000606 */ mov.s $f24, $f0 +/* 0E6A5C 7F0B1F2C 45020042 */ bc1fl .L7F0B2038 +/* 0E6A60 7F0B1F30 86620006 */ lh $v0, 6($s3) +/* 0E6A64 7F0B1F34 461EA03C */ c.lt.s $f20, $f30 +/* 0E6A68 7F0B1F38 00000000 */ nop +/* 0E6A6C 7F0B1F3C 4501000B */ bc1t .L7F0B1F6C +/* 0E6A70 7F0B1F40 00000000 */ nop +/* 0E6A74 7F0B1F44 461E003C */ c.lt.s $f0, $f30 +/* 0E6A78 7F0B1F48 02602025 */ move $a0, $s3 +/* 0E6A7C 7F0B1F4C 45010007 */ bc1t .L7F0B1F6C +/* 0E6A80 7F0B1F50 00000000 */ nop +/* 0E6A84 7F0B1F54 4406D000 */ mfc1 $a2, $f26 +/* 0E6A88 7F0B1F58 4407E000 */ mfc1 $a3, $f28 +/* 0E6A8C 7F0B1F5C 0FC2C066 */ jal sub_GAME_7F0B0198 +/* 0E6A90 7F0B1F60 02002825 */ move $a1, $s0 +/* 0E6A94 7F0B1F64 50400034 */ beql $v0, $zero, .L7F0B2038 +/* 0E6A98 7F0B1F68 86620006 */ lh $v0, 6($s3) +.L7F0B1F6C: +/* 0E6A9C 7F0B1F6C 12C00008 */ beqz $s6, .L7F0B1F90 +/* 0E6AA0 7F0B1F70 02602025 */ move $a0, $s3 +/* 0E6AA4 7F0B1F74 4406B000 */ mfc1 $a2, $f22 +/* 0E6AA8 7F0B1F78 4407A000 */ mfc1 $a3, $f20 +/* 0E6AAC 7F0B1F7C 02002825 */ move $a1, $s0 +/* 0E6AB0 7F0B1F80 E7B80010 */ swc1 $f24, 0x10($sp) +/* 0E6AB4 7F0B1F84 02C0F809 */ jalr $s6 +/* 0E6AB8 7F0B1F88 AFB70014 */ sw $s7, 0x14($sp) +/* 0E6ABC 7F0B1F8C 1440001B */ bnez $v0, .L7F0B1FFC +.L7F0B1F90: +/* 0E6AC0 7F0B1F90 001068C0 */ sll $t5, $s0, 3 +/* 0E6AC4 7F0B1F94 026D7021 */ addu $t6, $s3, $t5 +/* 0E6AC8 7F0B1F98 95C4000E */ lhu $a0, 0xe($t6) +/* 0E6ACC 7F0B1F9C 3C088004 */ lui $t0, %hi(base_ptr_connection_vals) +/* 0E6AD0 7F0B1FA0 2682FFFF */ addiu $v0, $s4, -1 +/* 0E6AD4 7F0B1FA4 00047903 */ sra $t7, $a0, 4 +/* 0E6AD8 7F0B1FA8 11E00014 */ beqz $t7, .L7F0B1FFC +/* 0E6ADC 7F0B1FAC 0004C8C0 */ sll $t9, $a0, 3 +/* 0E6AE0 7F0B1FB0 8D080F58 */ lw $t0, %lo(base_ptr_connection_vals)($t0) +/* 0E6AE4 7F0B1FB4 00402825 */ move $a1, $v0 +/* 0E6AE8 7F0B1FB8 0440000B */ bltz $v0, .L7F0B1FE8 +/* 0E6AEC 7F0B1FBC 03281821 */ addu $v1, $t9, $t0 +/* 0E6AF0 7F0B1FC0 0002C080 */ sll $t8, $v0, 2 +/* 0E6AF4 7F0B1FC4 27A900B0 */ addiu $t1, $sp, 0xb0 +/* 0E6AF8 7F0B1FC8 03091021 */ addu $v0, $t8, $t1 +/* 0E6AFC 7F0B1FCC 8C4A0000 */ lw $t2, ($v0) +.L7F0B1FD0: +/* 0E6B00 7F0B1FD0 2442FFFC */ addiu $v0, $v0, -4 +/* 0E6B04 7F0B1FD4 0052082B */ sltu $at, $v0, $s2 +/* 0E6B08 7F0B1FD8 506A0017 */ beql $v1, $t2, .L7F0B2038 +/* 0E6B0C 7F0B1FDC 86620006 */ lh $v0, 6($s3) +/* 0E6B10 7F0B1FE0 5020FFFB */ beql $at, $zero, .L7F0B1FD0 +/* 0E6B14 7F0B1FE4 8C4A0000 */ lw $t2, ($v0) +.L7F0B1FE8: +/* 0E6B18 7F0B1FE8 00145880 */ sll $t3, $s4, 2 +/* 0E6B1C 7F0B1FEC 03AB6021 */ addu $t4, $sp, $t3 +/* 0E6B20 7F0B1FF0 AD8300B0 */ sw $v1, 0xb0($t4) +/* 0E6B24 7F0B1FF4 1000000F */ b .L7F0B2034 +/* 0E6B28 7F0B1FF8 26940001 */ addiu $s4, $s4, 1 +.L7F0B1FFC: +/* 0E6B2C 7F0B1FFC 3C018008 */ lui $at, %hi(dword_CODE_bss_8007B9E4) +/* 0E6B30 7F0B2000 AC33B9E4 */ sw $s3, %lo(dword_CODE_bss_8007B9E4)($at) +/* 0E6B34 7F0B2004 3C018008 */ lui $at, %hi(dword_CODE_bss_8007B9E8) +/* 0E6B38 7F0B2008 13C00008 */ beqz $fp, .L7F0B202C +/* 0E6B3C 7F0B200C AC30B9E8 */ sw $s0, %lo(dword_CODE_bss_8007B9E8)($at) +/* 0E6B40 7F0B2010 27A400B0 */ addiu $a0, $sp, 0xb0 +/* 0E6B44 7F0B2014 02802825 */ move $a1, $s4 +/* 0E6B48 7F0B2018 03C0F809 */ jalr $fp +/* 0E6B4C 7F0B201C 02E03025 */ move $a2, $s7 +/* 0E6B50 7F0B2020 24010001 */ li $at, 1 +/* 0E6B54 7F0B2024 50410004 */ beql $v0, $at, .L7F0B2038 +/* 0E6B58 7F0B2028 86620006 */ lh $v0, 6($s3) +.L7F0B202C: +/* 0E6B5C 7F0B202C 10000016 */ b .L7F0B2088 +/* 0E6B60 7F0B2030 24020002 */ li $v0, 2 +.L7F0B2034: +/* 0E6B64 7F0B2034 86620006 */ lh $v0, 6($s3) +.L7F0B2038: +/* 0E6B68 7F0B2038 02A08025 */ move $s0, $s5 +/* 0E6B6C 7F0B203C 00026B03 */ sra $t5, $v0, 0xc +/* 0E6B70 7F0B2040 31AE000F */ andi $t6, $t5, 0xf +/* 0E6B74 7F0B2044 02AE082A */ slt $at, $s5, $t6 +/* 0E6B78 7F0B2048 1420FF99 */ bnez $at, .L7F0B1EB0 +/* 0E6B7C 7F0B204C 01C01025 */ move $v0, $t6 +.L7F0B2050: +/* 0E6B80 7F0B2050 2E810029 */ sltiu $at, $s4, 0x29 +/* 0E6B84 7F0B2054 14200003 */ bnez $at, .L7F0B2064 +/* 0E6B88 7F0B2058 8FAF00A4 */ lw $t7, 0xa4($sp) +/* 0E6B8C 7F0B205C 1000000A */ b .L7F0B2088 +/* 0E6B90 7F0B2060 24020005 */ li $v0, 5 +.L7F0B2064: +/* 0E6B94 7F0B2064 01F4082A */ slt $at, $t7, $s4 +/* 0E6B98 7F0B2068 5420FF80 */ bnezl $at, .L7F0B1E6C +/* 0E6B9C 7F0B206C 8FB80084 */ lw $t8, 0x84($sp) +/* 0E6BA0 7F0B2070 13C00004 */ beqz $fp, .L7F0B2084 +/* 0E6BA4 7F0B2074 27A400B0 */ addiu $a0, $sp, 0xb0 +/* 0E6BA8 7F0B2078 02802825 */ move $a1, $s4 +/* 0E6BAC 7F0B207C 03C0F809 */ jalr $fp +/* 0E6BB0 7F0B2080 02E03025 */ move $a2, $s7 +.L7F0B2084: +/* 0E6BB4 7F0B2084 2402FFFE */ li $v0, -2 +.L7F0B2088: +/* 0E6BB8 7F0B2088 8FBF0074 */ lw $ra, 0x74($sp) +/* 0E6BBC 7F0B208C D7B40020 */ ldc1 $f20, 0x20($sp) +/* 0E6BC0 7F0B2090 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 0E6BC4 7F0B2094 D7B80030 */ ldc1 $f24, 0x30($sp) +/* 0E6BC8 7F0B2098 D7BA0038 */ ldc1 $f26, 0x38($sp) +/* 0E6BCC 7F0B209C D7BC0040 */ ldc1 $f28, 0x40($sp) +/* 0E6BD0 7F0B20A0 D7BE0048 */ ldc1 $f30, 0x48($sp) +/* 0E6BD4 7F0B20A4 8FB00050 */ lw $s0, 0x50($sp) +/* 0E6BD8 7F0B20A8 8FB10054 */ lw $s1, 0x54($sp) +/* 0E6BDC 7F0B20AC 8FB20058 */ lw $s2, 0x58($sp) +/* 0E6BE0 7F0B20B0 8FB3005C */ lw $s3, 0x5c($sp) +/* 0E6BE4 7F0B20B4 8FB40060 */ lw $s4, 0x60($sp) +/* 0E6BE8 7F0B20B8 8FB50064 */ lw $s5, 0x64($sp) +/* 0E6BEC 7F0B20BC 8FB60068 */ lw $s6, 0x68($sp) +/* 0E6BF0 7F0B20C0 8FB7006C */ lw $s7, 0x6c($sp) +/* 0E6BF4 7F0B20C4 8FBE0070 */ lw $fp, 0x70($sp) +/* 0E6BF8 7F0B20C8 03E00008 */ jr $ra +/* 0E6BFC 7F0B20CC 27BD0150 */ addiu $sp, $sp, 0x150 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B20D0(s32 arg1, ? arg2, ? arg3) { + // Node 0 + sub_GAME_7F0B1DDC(arg1, arg2, arg1, arg2, 0, 0, 0, 0); +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B20D0 +/* 0E6C00 7F0B20D0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0E6C04 7F0B20D4 44856000 */ mtc1 $a1, $f12 +/* 0E6C08 7F0B20D8 44867000 */ mtc1 $a2, $f14 +/* 0E6C0C 7F0B20DC AFBF0024 */ sw $ra, 0x24($sp) +/* 0E6C10 7F0B20E0 44056000 */ mfc1 $a1, $f12 +/* 0E6C14 7F0B20E4 44067000 */ mfc1 $a2, $f14 +/* 0E6C18 7F0B20E8 AFA70034 */ sw $a3, 0x34($sp) +/* 0E6C1C 7F0B20EC AFA00010 */ sw $zero, 0x10($sp) +/* 0E6C20 7F0B20F0 AFA00014 */ sw $zero, 0x14($sp) +/* 0E6C24 7F0B20F4 AFA00018 */ sw $zero, 0x18($sp) +/* 0E6C28 7F0B20F8 0FC2C777 */ jal sub_GAME_7F0B1DDC +/* 0E6C2C 7F0B20FC AFA0001C */ sw $zero, 0x1c($sp) +/* 0E6C30 7F0B2100 8FBF0024 */ lw $ra, 0x24($sp) +/* 0E6C34 7F0B2104 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0E6C38 7F0B2108 03E00008 */ jr $ra +/* 0E6C3C 7F0B210C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2110(void *arg0, void *arg1) { + s32 temp_v1; + void *phi_t0; + s32 phi_v1; + + // Node 0 + if (arg1->unk4 > 0) + { + // Node 1 + phi_t0 = *arg1; + phi_v1 = 0; +loop_2: + // Node 2 + if (arg0->unk3 == *phi_t0) + { + // Node 3 + return 0; + } + // Node 4 + temp_v1 = (phi_v1 + 1); + phi_t0 = (phi_t0 + 4); + phi_v1 = temp_v1; + if (temp_v1 < arg1->unk4) + { + goto loop_2; + } + } + // Node 5 + if (arg1->unk4 < arg1->unk8) + { + // Node 6 + *(*arg1 + (arg1->unk4 * 4)) = (s32) arg0->unk3; + arg1->unk4 = (s32) (arg1->unk4 + 1); + } + // Node 7 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2110 +/* 0E6C40 7F0B2110 8CA60004 */ lw $a2, 4($a1) +/* 0E6C44 7F0B2114 00A01025 */ move $v0, $a1 +/* 0E6C48 7F0B2118 00001825 */ move $v1, $zero +/* 0E6C4C 7F0B211C 58C0000F */ blezl $a2, .L7F0B215C +/* 0E6C50 7F0B2120 8CB80008 */ lw $t8, 8($a1) +/* 0E6C54 7F0B2124 90870003 */ lbu $a3, 3($a0) +/* 0E6C58 7F0B2128 8CA80000 */ lw $t0, ($a1) +/* 0E6C5C 7F0B212C 8D0E0000 */ lw $t6, ($t0) +.L7F0B2130: +/* 0E6C60 7F0B2130 54EE0004 */ bnel $a3, $t6, .L7F0B2144 +/* 0E6C64 7F0B2134 8C4F0004 */ lw $t7, 4($v0) +/* 0E6C68 7F0B2138 03E00008 */ jr $ra +/* 0E6C6C 7F0B213C 00001025 */ move $v0, $zero + +/* 0E6C70 7F0B2140 8C4F0004 */ lw $t7, 4($v0) +.L7F0B2144: +/* 0E6C74 7F0B2144 24630001 */ addiu $v1, $v1, 1 +/* 0E6C78 7F0B2148 25080004 */ addiu $t0, $t0, 4 +/* 0E6C7C 7F0B214C 006F082A */ slt $at, $v1, $t7 +/* 0E6C80 7F0B2150 5420FFF7 */ bnezl $at, .L7F0B2130 +/* 0E6C84 7F0B2154 8D0E0000 */ lw $t6, ($t0) +/* 0E6C88 7F0B2158 8CB80008 */ lw $t8, 8($a1) +.L7F0B215C: +/* 0E6C8C 7F0B215C 00001025 */ move $v0, $zero +/* 0E6C90 7F0B2160 00D8082A */ slt $at, $a2, $t8 +/* 0E6C94 7F0B2164 10200009 */ beqz $at, .L7F0B218C +/* 0E6C98 7F0B2168 00000000 */ nop +/* 0E6C9C 7F0B216C 8CA90000 */ lw $t1, ($a1) +/* 0E6CA0 7F0B2170 90990003 */ lbu $t9, 3($a0) +/* 0E6CA4 7F0B2174 00065080 */ sll $t2, $a2, 2 +/* 0E6CA8 7F0B2178 012A5821 */ addu $t3, $t1, $t2 +/* 0E6CAC 7F0B217C AD790000 */ sw $t9, ($t3) +/* 0E6CB0 7F0B2180 8CAC0004 */ lw $t4, 4($a1) +/* 0E6CB4 7F0B2184 258D0001 */ addiu $t5, $t4, 1 +/* 0E6CB8 7F0B2188 ACAD0004 */ sw $t5, 4($a1) +.L7F0B218C: +/* 0E6CBC 7F0B218C 03E00008 */ jr $ra +/* 0E6CC0 7F0B2190 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2194(s32 arg0, s32 arg1, void *arg2) { + // Node 0 + arg2->unkC = (s32) (arg2->unkC + 1); + return 1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2194 +/* 0E6CC4 7F0B2194 AFA40000 */ sw $a0, ($sp) +/* 0E6CC8 7F0B2198 AFA50004 */ sw $a1, 4($sp) +/* 0E6CCC 7F0B219C 8CCE000C */ lw $t6, 0xc($a2) +/* 0E6CD0 7F0B21A0 24020001 */ li $v0, 1 +/* 0E6CD4 7F0B21A4 25CF0001 */ addiu $t7, $t6, 1 +/* 0E6CD8 7F0B21A8 03E00008 */ jr $ra +/* 0E6CDC 7F0B21AC ACCF000C */ sw $t7, 0xc($a2) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B21B0(s32 arg1, ? arg2, ? arg3, ?32 arg4, void *arg5, ?32 arg6) { + ?32 sp30; + ?32 sp34; + ?32 sp38; + s32 sp3C; + + // Node 0 + sp34 = 0; + sp3C = 0; + sp30 = arg4; + sp38 = arg6; + *arg5 = sp34; + if (sp3C >= 2) + { + // Node 1 + } + // Node 2 + return sub_GAME_7F0B1DDC(arg1, arg2, arg1, arg2, &sub_GAME_7F0B2110, 0, &sub_GAME_7F0B2194, &sp30); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B21B0 +/* 0E6CE0 7F0B21B0 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0E6CE4 7F0B21B4 44856000 */ mtc1 $a1, $f12 +/* 0E6CE8 7F0B21B8 44867000 */ mtc1 $a2, $f14 +/* 0E6CEC 7F0B21BC 8FAE0050 */ lw $t6, 0x50($sp) +/* 0E6CF0 7F0B21C0 8FAF0058 */ lw $t7, 0x58($sp) +/* 0E6CF4 7F0B21C4 3C187F0B */ lui $t8, %hi(sub_GAME_7F0B2110) # $t8, 0x7f0b +/* 0E6CF8 7F0B21C8 3C197F0B */ lui $t9, %hi(sub_GAME_7F0B2194) # $t9, 0x7f0b +/* 0E6CFC 7F0B21CC AFBF0024 */ sw $ra, 0x24($sp) +/* 0E6D00 7F0B21D0 27392194 */ addiu $t9, %lo(sub_GAME_7F0B2194) # addiu $t9, $t9, 0x2194 +/* 0E6D04 7F0B21D4 27182110 */ addiu $t8, %lo(sub_GAME_7F0B2110) # addiu $t8, $t8, 0x2110 +/* 0E6D08 7F0B21D8 27A80030 */ addiu $t0, $sp, 0x30 +/* 0E6D0C 7F0B21DC 44056000 */ mfc1 $a1, $f12 +/* 0E6D10 7F0B21E0 44067000 */ mfc1 $a2, $f14 +/* 0E6D14 7F0B21E4 AFA7004C */ sw $a3, 0x4c($sp) +/* 0E6D18 7F0B21E8 AFA00034 */ sw $zero, 0x34($sp) +/* 0E6D1C 7F0B21EC AFA0003C */ sw $zero, 0x3c($sp) +/* 0E6D20 7F0B21F0 AFA8001C */ sw $t0, 0x1c($sp) +/* 0E6D24 7F0B21F4 AFB80010 */ sw $t8, 0x10($sp) +/* 0E6D28 7F0B21F8 AFB90018 */ sw $t9, 0x18($sp) +/* 0E6D2C 7F0B21FC AFA00014 */ sw $zero, 0x14($sp) +/* 0E6D30 7F0B2200 AFAE0030 */ sw $t6, 0x30($sp) +/* 0E6D34 7F0B2204 0FC2C777 */ jal sub_GAME_7F0B1DDC +/* 0E6D38 7F0B2208 AFAF0038 */ sw $t7, 0x38($sp) +/* 0E6D3C 7F0B220C 8FA90034 */ lw $t1, 0x34($sp) +/* 0E6D40 7F0B2210 8FAA0054 */ lw $t2, 0x54($sp) +/* 0E6D44 7F0B2214 00401825 */ move $v1, $v0 +/* 0E6D48 7F0B2218 00601025 */ move $v0, $v1 +/* 0E6D4C 7F0B221C AD490000 */ sw $t1, ($t2) +/* 0E6D50 7F0B2220 8FAB003C */ lw $t3, 0x3c($sp) +/* 0E6D54 7F0B2224 8FBF0024 */ lw $ra, 0x24($sp) +/* 0E6D58 7F0B2228 29610002 */ slti $at, $t3, 2 +/* 0E6D5C 7F0B222C 14200003 */ bnez $at, .L7F0B223C +/* 0E6D60 7F0B2230 00000000 */ nop +/* 0E6D64 7F0B2234 10000001 */ b .L7F0B223C +/* 0E6D68 7F0B2238 24020002 */ li $v0, 2 +.L7F0B223C: +/* 0E6D6C 7F0B223C 03E00008 */ jr $ra +/* 0E6D70 7F0B2240 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2244(void *arg0, void *arg1) { + // Node 0 + if ((*(&D_80040F30 + ((s32) arg0->unk4 >> 0xc)) & 2) != 0) + { + // Node 1 + *arg1 = 1; + } + // Node 2 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2244 +/* 0E6D74 7F0B2244 84820004 */ lh $v0, 4($a0) +/* 0E6D78 7F0B2248 3C0F8004 */ lui $t7, %hi(D_80040F30) +/* 0E6D7C 7F0B224C 24190001 */ li $t9, 1 +/* 0E6D80 7F0B2250 00027303 */ sra $t6, $v0, 0xc +/* 0E6D84 7F0B2254 01EE7821 */ addu $t7, $t7, $t6 +/* 0E6D88 7F0B2258 91EF0F30 */ lbu $t7, %lo(D_80040F30)($t7) +/* 0E6D8C 7F0B225C 31F80002 */ andi $t8, $t7, 2 +/* 0E6D90 7F0B2260 13000002 */ beqz $t8, .L7F0B226C +/* 0E6D94 7F0B2264 00000000 */ nop +/* 0E6D98 7F0B2268 ACB90000 */ sw $t9, ($a1) +.L7F0B226C: +/* 0E6D9C 7F0B226C 03E00008 */ jr $ra +/* 0E6DA0 7F0B2270 00001025 */ move $v0, $zero +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2274(s32 arg0, s32 arg1, ? arg2, ? arg3, void *arg5) { + void *temp_t7; + void *temp_v1; + + // Node 0 + temp_t7 = (arg0 + (arg1 * 8)); + if (((s32) temp_t7->unkE >> 4) != 0) + { + // Node 1 + temp_v1 = ((temp_t7->unkE * 8) + base_ptr_connection_vals); + if ((*(&D_80040F30 + ((s32) temp_v1->unk4 >> 0xc)) & 2) != 0) + { + // Node 2 + *arg5 = 1; + return 1; + } + // Node 3 + if ((*(&D_80040F30 + ((s32) temp_v1->unk4 >> 0xc)) & 0x40) != 0) + { + // Node 4 + dword_CODE_bss_8007BA0C = temp_v1; + arg5->unk4 = 1; + return 0; + } + } + // Node 5 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2274 +/* 0E6DA4 7F0B2274 000570C0 */ sll $t6, $a1, 3 +/* 0E6DA8 7F0B2278 AFA60008 */ sw $a2, 8($sp) +/* 0E6DAC 7F0B227C AFA7000C */ sw $a3, 0xc($sp) +/* 0E6DB0 7F0B2280 008E7821 */ addu $t7, $a0, $t6 +/* 0E6DB4 7F0B2284 95E2000E */ lhu $v0, 0xe($t7) +/* 0E6DB8 7F0B2288 3C088004 */ lui $t0, %hi(base_ptr_connection_vals) +/* 0E6DBC 7F0B228C 0002C103 */ sra $t8, $v0, 4 +/* 0E6DC0 7F0B2290 5300001E */ beql $t8, $zero, .L7F0B230C +/* 0E6DC4 7F0B2294 00001025 */ move $v0, $zero +/* 0E6DC8 7F0B2298 8D080F58 */ lw $t0, %lo(base_ptr_connection_vals)($t0) +/* 0E6DCC 7F0B229C 0002C8C0 */ sll $t9, $v0, 3 +/* 0E6DD0 7F0B22A0 3C058004 */ lui $a1, %hi(D_80040F30) +/* 0E6DD4 7F0B22A4 03281821 */ addu $v1, $t9, $t0 +/* 0E6DD8 7F0B22A8 84640004 */ lh $a0, 4($v1) +/* 0E6DDC 7F0B22AC 24A50F30 */ addiu $a1, %lo(D_80040F30) # addiu $a1, $a1, 0xf30 +/* 0E6DE0 7F0B22B0 240D0001 */ li $t5, 1 +/* 0E6DE4 7F0B22B4 00044B03 */ sra $t1, $a0, 0xc +/* 0E6DE8 7F0B22B8 00A95021 */ addu $t2, $a1, $t1 +/* 0E6DEC 7F0B22BC 914B0000 */ lbu $t3, ($t2) +/* 0E6DF0 7F0B22C0 00047B03 */ sra $t7, $a0, 0xc +/* 0E6DF4 7F0B22C4 8FAE0014 */ lw $t6, 0x14($sp) +/* 0E6DF8 7F0B22C8 316C0002 */ andi $t4, $t3, 2 +/* 0E6DFC 7F0B22CC 11800004 */ beqz $t4, .L7F0B22E0 +/* 0E6E00 7F0B22D0 00AFC021 */ addu $t8, $a1, $t7 +/* 0E6E04 7F0B22D4 ADCD0000 */ sw $t5, ($t6) +/* 0E6E08 7F0B22D8 03E00008 */ jr $ra +/* 0E6E0C 7F0B22DC 24020001 */ li $v0, 1 + +.L7F0B22E0: +/* 0E6E10 7F0B22E0 93190000 */ lbu $t9, ($t8) +/* 0E6E14 7F0B22E4 3C018008 */ lui $at, %hi(dword_CODE_bss_8007BA0C) +/* 0E6E18 7F0B22E8 24090001 */ li $t1, 1 +/* 0E6E1C 7F0B22EC 33280040 */ andi $t0, $t9, 0x40 +/* 0E6E20 7F0B22F0 11000005 */ beqz $t0, .L7F0B2308 +/* 0E6E24 7F0B22F4 00001025 */ move $v0, $zero +/* 0E6E28 7F0B22F8 8FAA0014 */ lw $t2, 0x14($sp) +/* 0E6E2C 7F0B22FC AC23BA0C */ sw $v1, %lo(dword_CODE_bss_8007BA0C)($at) +/* 0E6E30 7F0B2300 03E00008 */ jr $ra +/* 0E6E34 7F0B2304 AD490004 */ sw $t1, 4($t2) + +.L7F0B2308: +/* 0E6E38 7F0B2308 00001025 */ move $v0, $zero +.L7F0B230C: +/* 0E6E3C 7F0B230C 03E00008 */ jr $ra +/* 0E6E40 7F0B2310 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2314(s32 arg0, s32 arg1, ? arg2, ? arg3, void *arg4) { + s32 temp_v1; + void *phi_v0; + s32 phi_v1; + + // Node 0 + phi_v0 = arg4; + phi_v1 = 0; +loop_1: + // Node 1 + temp_v1 = (phi_v1 + 4); + *phi_v0 = 0; + phi_v0->unk4 = 0; + phi_v0->unk8 = 0; + phi_v0->unkC = 0; + phi_v0 = (phi_v0 + 0x10); + phi_v1 = temp_v1; + if (temp_v1 != 0x10) + { + goto loop_1; + } + // Node 2 + return sub_GAME_7F0B1DDC(arg1, arg2, arg0, arg1, arg2, arg3, &sub_GAME_7F0B2244, &sub_GAME_7F0B2274, 0, arg4); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2314 +/* 0E6E44 7F0B2314 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0E6E48 7F0B2318 AFA40028 */ sw $a0, 0x28($sp) +/* 0E6E4C 7F0B231C 44856000 */ mtc1 $a1, $f12 +/* 0E6E50 7F0B2320 44867000 */ mtc1 $a2, $f14 +/* 0E6E54 7F0B2324 AFBF0024 */ sw $ra, 0x24($sp) +/* 0E6E58 7F0B2328 AFA70034 */ sw $a3, 0x34($sp) +/* 0E6E5C 7F0B232C 24040010 */ li $a0, 16 +/* 0E6E60 7F0B2330 8FA20038 */ lw $v0, 0x38($sp) +/* 0E6E64 7F0B2334 00001825 */ move $v1, $zero +.L7F0B2338: +/* 0E6E68 7F0B2338 24630004 */ addiu $v1, $v1, 4 +/* 0E6E6C 7F0B233C AC400000 */ sw $zero, ($v0) +/* 0E6E70 7F0B2340 AC400004 */ sw $zero, 4($v0) +/* 0E6E74 7F0B2344 AC400008 */ sw $zero, 8($v0) +/* 0E6E78 7F0B2348 AC40000C */ sw $zero, 0xc($v0) +/* 0E6E7C 7F0B234C 1464FFFA */ bne $v1, $a0, .L7F0B2338 +/* 0E6E80 7F0B2350 24420010 */ addiu $v0, $v0, 0x10 +/* 0E6E84 7F0B2354 8FB80038 */ lw $t8, 0x38($sp) +/* 0E6E88 7F0B2358 3C0E7F0B */ lui $t6, %hi(sub_GAME_7F0B2244) # $t6, 0x7f0b +/* 0E6E8C 7F0B235C 3C0F7F0B */ lui $t7, %hi(sub_GAME_7F0B2274) # $t7, 0x7f0b +/* 0E6E90 7F0B2360 25EF2274 */ addiu $t7, %lo(sub_GAME_7F0B2274) # addiu $t7, $t7, 0x2274 +/* 0E6E94 7F0B2364 25CE2244 */ addiu $t6, %lo(sub_GAME_7F0B2244) # addiu $t6, $t6, 0x2244 +/* 0E6E98 7F0B2368 44056000 */ mfc1 $a1, $f12 +/* 0E6E9C 7F0B236C 44067000 */ mfc1 $a2, $f14 +/* 0E6EA0 7F0B2370 AFAE0010 */ sw $t6, 0x10($sp) +/* 0E6EA4 7F0B2374 AFAF0014 */ sw $t7, 0x14($sp) +/* 0E6EA8 7F0B2378 8FA40028 */ lw $a0, 0x28($sp) +/* 0E6EAC 7F0B237C 8FA70034 */ lw $a3, 0x34($sp) +/* 0E6EB0 7F0B2380 AFA00018 */ sw $zero, 0x18($sp) +/* 0E6EB4 7F0B2384 0FC2C777 */ jal sub_GAME_7F0B1DDC +/* 0E6EB8 7F0B2388 AFB8001C */ sw $t8, 0x1c($sp) +/* 0E6EBC 7F0B238C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0E6EC0 7F0B2390 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0E6EC4 7F0B2394 03E00008 */ jr $ra +/* 0E6EC8 7F0B2398 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0B239C(void *arg0) { + // Node 0 + return *arg0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B239C +/* 0E6ECC 7F0B239C 03E00008 */ jr $ra +/* 0E6ED0 7F0B23A0 8C820000 */ lw $v0, ($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B23A4(void *arg0) { + // Node 0 + return arg0->unk4; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B23A4 +/* 0E6ED4 7F0B23A4 03E00008 */ jr $ra +/* 0E6ED8 7F0B23A8 8C820004 */ lw $v0, 4($a0) +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B23AC(void *arg0, s32 arg1, void *arg2) { + void *temp_v0; + + // Node 0 + temp_v0 = (arg0 + ((((s32) arg0->unk6 >> (8 - (arg1 * 4))) & 0xf) * 8)); + *arg2 = (f32) ((f32) temp_v0->unk8 * D_80040F48); + arg2->unk4 = (f32) ((f32) temp_v0->unkA * D_80040F48); + arg2->unk8 = (f32) ((f32) temp_v0->unkC * D_80040F48); + return D_80040F48; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B23AC +/* 0E6EDC 7F0B23AC 848E0006 */ lh $t6, 6($a0) +/* 0E6EE0 7F0B23B0 00057880 */ sll $t7, $a1, 2 +/* 0E6EE4 7F0B23B4 24180008 */ li $t8, 8 +/* 0E6EE8 7F0B23B8 030FC823 */ subu $t9, $t8, $t7 +/* 0E6EEC 7F0B23BC 032E2807 */ srav $a1, $t6, $t9 +/* 0E6EF0 7F0B23C0 30A8000F */ andi $t0, $a1, 0xf +/* 0E6EF4 7F0B23C4 000848C0 */ sll $t1, $t0, 3 +/* 0E6EF8 7F0B23C8 00891021 */ addu $v0, $a0, $t1 +/* 0E6EFC 7F0B23CC 844A0008 */ lh $t2, 8($v0) +/* 0E6F00 7F0B23D0 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E6F04 7F0B23D4 C4200F48 */ lwc1 $f0, %lo(D_80040F48)($at) +/* 0E6F08 7F0B23D8 448A2000 */ mtc1 $t2, $f4 +/* 0E6F0C 7F0B23DC 00000000 */ nop +/* 0E6F10 7F0B23E0 468021A0 */ cvt.s.w $f6, $f4 +/* 0E6F14 7F0B23E4 46003202 */ mul.s $f8, $f6, $f0 +/* 0E6F18 7F0B23E8 E4C80000 */ swc1 $f8, ($a2) +/* 0E6F1C 7F0B23EC 844B000A */ lh $t3, 0xa($v0) +/* 0E6F20 7F0B23F0 448B5000 */ mtc1 $t3, $f10 +/* 0E6F24 7F0B23F4 00000000 */ nop +/* 0E6F28 7F0B23F8 46805420 */ cvt.s.w $f16, $f10 +/* 0E6F2C 7F0B23FC 46008482 */ mul.s $f18, $f16, $f0 +/* 0E6F30 7F0B2400 E4D20004 */ swc1 $f18, 4($a2) +/* 0E6F34 7F0B2404 844C000C */ lh $t4, 0xc($v0) +/* 0E6F38 7F0B2408 448C2000 */ mtc1 $t4, $f4 +/* 0E6F3C 7F0B240C 00000000 */ nop +/* 0E6F40 7F0B2410 468021A0 */ cvt.s.w $f6, $f4 +/* 0E6F44 7F0B2414 46003202 */ mul.s $f8, $f6, $f0 +/* 0E6F48 7F0B2418 03E00008 */ jr $ra +/* 0E6F4C 7F0B241C E4C80008 */ swc1 $f8, 8($a2) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2420(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2420 +/* 0E6F50 7F0B2420 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0E6F54 7F0B2424 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007BA0C) +/* 0E6F58 7F0B2428 8D29BA0C */ lw $t1, %lo(dword_CODE_bss_8007BA0C)($t1) +/* 0E6F5C 7F0B242C AFBF003C */ sw $ra, 0x3c($sp) +/* 0E6F60 7F0B2430 AFBE0038 */ sw $fp, 0x38($sp) +/* 0E6F64 7F0B2434 AFB70034 */ sw $s7, 0x34($sp) +/* 0E6F68 7F0B2438 AFB60030 */ sw $s6, 0x30($sp) +/* 0E6F6C 7F0B243C AFB5002C */ sw $s5, 0x2c($sp) +/* 0E6F70 7F0B2440 AFB40028 */ sw $s4, 0x28($sp) +/* 0E6F74 7F0B2444 AFB30024 */ sw $s3, 0x24($sp) +/* 0E6F78 7F0B2448 AFB20020 */ sw $s2, 0x20($sp) +/* 0E6F7C 7F0B244C AFB1001C */ sw $s1, 0x1c($sp) +/* 0E6F80 7F0B2450 AFB00018 */ sw $s0, 0x18($sp) +/* 0E6F84 7F0B2454 85280006 */ lh $t0, 6($t1) +/* 0E6F88 7F0B2458 00808025 */ move $s0, $a0 +/* 0E6F8C 7F0B245C 00A08825 */ move $s1, $a1 +/* 0E6F90 7F0B2460 00087303 */ sra $t6, $t0, 0xc +/* 0E6F94 7F0B2464 31C8000F */ andi $t0, $t6, 0xf +/* 0E6F98 7F0B2468 00C0A825 */ move $s5, $a2 +/* 0E6F9C 7F0B246C 1900005B */ blez $t0, .L7F0B25DC +/* 0E6FA0 7F0B2470 00003825 */ move $a3, $zero +/* 0E6FA4 7F0B2474 3C048004 */ lui $a0, %hi(base_ptr_connection_vals) +/* 0E6FA8 7F0B2478 3C058004 */ lui $a1, %hi(D_80040F30) +/* 0E6FAC 7F0B247C 24A50F30 */ addiu $a1, %lo(D_80040F30) # addiu $a1, $a1, 0xf30 +/* 0E6FB0 7F0B2480 8C840F58 */ lw $a0, %lo(base_ptr_connection_vals)($a0) +/* 0E6FB4 7F0B2484 01201825 */ move $v1, $t1 +.L7F0B2488: +/* 0E6FB8 7F0B2488 9462000E */ lhu $v0, 0xe($v1) +/* 0E6FBC 7F0B248C 0002C0C0 */ sll $t8, $v0, 3 +/* 0E6FC0 7F0B2490 0002C903 */ sra $t9, $v0, 4 +/* 0E6FC4 7F0B2494 1320004D */ beqz $t9, .L7F0B25CC +/* 0E6FC8 7F0B2498 0304B021 */ addu $s6, $t8, $a0 +/* 0E6FCC 7F0B249C 86C20004 */ lh $v0, 4($s6) +/* 0E6FD0 7F0B24A0 00025303 */ sra $t2, $v0, 0xc +/* 0E6FD4 7F0B24A4 00AA5821 */ addu $t3, $a1, $t2 +/* 0E6FD8 7F0B24A8 916C0000 */ lbu $t4, ($t3) +/* 0E6FDC 7F0B24AC 318D0040 */ andi $t5, $t4, 0x40 +/* 0E6FE0 7F0B24B0 11A00046 */ beqz $t5, .L7F0B25CC +/* 0E6FE4 7F0B24B4 24FE0002 */ addiu $fp, $a3, 2 +/* 0E6FE8 7F0B24B8 24010003 */ li $at, 3 +/* 0E6FEC 7F0B24BC 03C1001A */ div $zero, $fp, $at +/* 0E6FF0 7F0B24C0 AE090000 */ sw $t1, ($s0) +/* 0E6FF4 7F0B24C4 00007010 */ mfhi $t6 +/* 0E6FF8 7F0B24C8 AE360000 */ sw $s6, ($s1) +/* 0E6FFC 7F0B24CC 0000B825 */ move $s7, $zero +/* 0E7000 7F0B24D0 AFA90040 */ sw $t1, 0x40($sp) +/* 0E7004 7F0B24D4 01C0F025 */ move $fp, $t6 +/* 0E7008 7F0B24D8 2414000C */ li $s4, 12 +/* 0E700C 7F0B24DC 24130003 */ li $s3, 3 +/* 0E7010 7F0B24E0 00008025 */ move $s0, $zero +.L7F0B24E4: +/* 0E7014 7F0B24E4 00179083 */ sra $s2, $s7, 2 +/* 0E7018 7F0B24E8 02E08825 */ move $s1, $s7 +.L7F0B24EC: +/* 0E701C 7F0B24EC 02507821 */ addu $t7, $s2, $s0 +/* 0E7020 7F0B24F0 01F3001A */ div $zero, $t7, $s3 +/* 0E7024 7F0B24F4 00002810 */ mfhi $a1 +/* 0E7028 7F0B24F8 32380003 */ andi $t8, $s1, 3 +/* 0E702C 7F0B24FC 02C02025 */ move $a0, $s6 +/* 0E7030 7F0B2500 03140019 */ multu $t8, $s4 +/* 0E7034 7F0B2504 16600002 */ bnez $s3, .L7F0B2510 +/* 0E7038 7F0B2508 00000000 */ nop +/* 0E703C 7F0B250C 0007000D */ break 7 +.L7F0B2510: +/* 0E7040 7F0B2510 2401FFFF */ li $at, -1 +/* 0E7044 7F0B2514 16610004 */ bne $s3, $at, .L7F0B2528 +/* 0E7048 7F0B2518 3C018000 */ lui $at, 0x8000 +/* 0E704C 7F0B251C 15E10002 */ bne $t7, $at, .L7F0B2528 +/* 0E7050 7F0B2520 00000000 */ nop +/* 0E7054 7F0B2524 0006000D */ break 6 +.L7F0B2528: +/* 0E7058 7F0B2528 0000C812 */ mflo $t9 +/* 0E705C 7F0B252C 02B93021 */ addu $a2, $s5, $t9 +/* 0E7060 7F0B2530 0FC2C8EB */ jal sub_GAME_7F0B23AC +/* 0E7064 7F0B2534 00000000 */ nop +/* 0E7068 7F0B2538 26100001 */ addiu $s0, $s0, 1 +/* 0E706C 7F0B253C 1613FFEB */ bne $s0, $s3, .L7F0B24EC +/* 0E7070 7F0B2540 26310001 */ addiu $s1, $s1, 1 +/* 0E7074 7F0B2544 26EA0003 */ addiu $t2, $s7, 3 +/* 0E7078 7F0B2548 314B0003 */ andi $t3, $t2, 3 +/* 0E707C 7F0B254C 01740019 */ multu $t3, $s4 +/* 0E7080 7F0B2550 8FA40040 */ lw $a0, 0x40($sp) +/* 0E7084 7F0B2554 03C02825 */ move $a1, $fp +/* 0E7088 7F0B2558 00006012 */ mflo $t4 +/* 0E708C 7F0B255C 02AC3021 */ addu $a2, $s5, $t4 +/* 0E7090 7F0B2560 0FC2C8EB */ jal sub_GAME_7F0B23AC +/* 0E7094 7F0B2564 00000000 */ nop +/* 0E7098 7F0B2568 26F70001 */ addiu $s7, $s7, 1 +/* 0E709C 7F0B256C 52F4001C */ beql $s7, $s4, .L7F0B25E0 +/* 0E70A0 7F0B2570 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E70A4 7F0B2574 C6A0001C */ lwc1 $f0, 0x1c($s5) +/* 0E70A8 7F0B2578 C6A20004 */ lwc1 $f2, 4($s5) +/* 0E70AC 7F0B257C 4602003C */ c.lt.s $f0, $f2 +/* 0E70B0 7F0B2580 00000000 */ nop +/* 0E70B4 7F0B2584 4503FFD7 */ bc1tl .L7F0B24E4 +/* 0E70B8 7F0B2588 00008025 */ move $s0, $zero +/* 0E70BC 7F0B258C C6AC0010 */ lwc1 $f12, 0x10($s5) +/* 0E70C0 7F0B2590 460C003C */ c.lt.s $f0, $f12 +/* 0E70C4 7F0B2594 00000000 */ nop +/* 0E70C8 7F0B2598 4503FFD2 */ bc1tl .L7F0B24E4 +/* 0E70CC 7F0B259C 00008025 */ move $s0, $zero +/* 0E70D0 7F0B25A0 C6A00028 */ lwc1 $f0, 0x28($s5) +/* 0E70D4 7F0B25A4 4602003C */ c.lt.s $f0, $f2 +/* 0E70D8 7F0B25A8 00000000 */ nop +/* 0E70DC 7F0B25AC 4503FFCD */ bc1tl .L7F0B24E4 +/* 0E70E0 7F0B25B0 00008025 */ move $s0, $zero +/* 0E70E4 7F0B25B4 460C003C */ c.lt.s $f0, $f12 +/* 0E70E8 7F0B25B8 00000000 */ nop +/* 0E70EC 7F0B25BC 4503FFC9 */ bc1tl .L7F0B24E4 +/* 0E70F0 7F0B25C0 00008025 */ move $s0, $zero +/* 0E70F4 7F0B25C4 10000006 */ b .L7F0B25E0 +/* 0E70F8 7F0B25C8 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0B25CC: +/* 0E70FC 7F0B25CC 24E70001 */ addiu $a3, $a3, 1 +/* 0E7100 7F0B25D0 00E8082A */ slt $at, $a3, $t0 +/* 0E7104 7F0B25D4 1420FFAC */ bnez $at, .L7F0B2488 +/* 0E7108 7F0B25D8 24630008 */ addiu $v1, $v1, 8 +.L7F0B25DC: +/* 0E710C 7F0B25DC 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0B25E0: +/* 0E7110 7F0B25E0 8FB00018 */ lw $s0, 0x18($sp) +/* 0E7114 7F0B25E4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0E7118 7F0B25E8 8FB20020 */ lw $s2, 0x20($sp) +/* 0E711C 7F0B25EC 8FB30024 */ lw $s3, 0x24($sp) +/* 0E7120 7F0B25F0 8FB40028 */ lw $s4, 0x28($sp) +/* 0E7124 7F0B25F4 8FB5002C */ lw $s5, 0x2c($sp) +/* 0E7128 7F0B25F8 8FB60030 */ lw $s6, 0x30($sp) +/* 0E712C 7F0B25FC 8FB70034 */ lw $s7, 0x34($sp) +/* 0E7130 7F0B2600 8FBE0038 */ lw $fp, 0x38($sp) +/* 0E7134 7F0B2604 03E00008 */ jr $ra +/* 0E7138 7F0B2608 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B260C(void *arg0, s32 arg1, ? arg2, ? arg3, void *arg5) { + // Node 0 + if (*arg5 < (f32) (arg0 + (arg1 * 8))->unkA) + { + // Node 1 + if (*arg5 < (f32) (arg0 + (((s32) (arg1 + 1) % (s32) (((s32) arg0->unk6 >> 0xc) & 0xf)) * 8))->unkA) + { + // Node 2 + return 1; + } + } + // Node 3 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B260C +/* 0E713C 7F0B260C 000570C0 */ sll $t6, $a1, 3 +/* 0E7140 7F0B2610 AFA60008 */ sw $a2, 8($sp) +/* 0E7144 7F0B2614 AFA7000C */ sw $a3, 0xc($sp) +/* 0E7148 7F0B2618 008E7821 */ addu $t7, $a0, $t6 +/* 0E714C 7F0B261C 85F8000A */ lh $t8, 0xa($t7) +/* 0E7150 7F0B2620 8FA60014 */ lw $a2, 0x14($sp) +/* 0E7154 7F0B2624 44982000 */ mtc1 $t8, $f4 +/* 0E7158 7F0B2628 C4C00000 */ lwc1 $f0, ($a2) +/* 0E715C 7F0B262C 468021A0 */ cvt.s.w $f6, $f4 +/* 0E7160 7F0B2630 4606003C */ c.lt.s $f0, $f6 +/* 0E7164 7F0B2634 00000000 */ nop +/* 0E7168 7F0B2638 4502001D */ bc1fl .L7F0B26B0 +/* 0E716C 7F0B263C 00001025 */ move $v0, $zero +/* 0E7170 7F0B2640 84880006 */ lh $t0, 6($a0) +/* 0E7174 7F0B2644 24B90001 */ addiu $t9, $a1, 1 +/* 0E7178 7F0B2648 00084B03 */ sra $t1, $t0, 0xc +/* 0E717C 7F0B264C 312A000F */ andi $t2, $t1, 0xf +/* 0E7180 7F0B2650 032A001A */ div $zero, $t9, $t2 +/* 0E7184 7F0B2654 00001010 */ mfhi $v0 +/* 0E7188 7F0B2658 000258C0 */ sll $t3, $v0, 3 +/* 0E718C 7F0B265C 008B6021 */ addu $t4, $a0, $t3 +/* 0E7190 7F0B2660 858D000A */ lh $t5, 0xa($t4) +/* 0E7194 7F0B2664 15400002 */ bnez $t2, .L7F0B2670 +/* 0E7198 7F0B2668 00000000 */ nop +/* 0E719C 7F0B266C 0007000D */ break 7 +.L7F0B2670: +/* 0E71A0 7F0B2670 2401FFFF */ li $at, -1 +/* 0E71A4 7F0B2674 15410004 */ bne $t2, $at, .L7F0B2688 +/* 0E71A8 7F0B2678 3C018000 */ lui $at, 0x8000 +/* 0E71AC 7F0B267C 17210002 */ bne $t9, $at, .L7F0B2688 +/* 0E71B0 7F0B2680 00000000 */ nop +/* 0E71B4 7F0B2684 0006000D */ break 6 +.L7F0B2688: +/* 0E71B8 7F0B2688 448D4000 */ mtc1 $t5, $f8 +/* 0E71BC 7F0B268C 00000000 */ nop +/* 0E71C0 7F0B2690 468042A0 */ cvt.s.w $f10, $f8 +/* 0E71C4 7F0B2694 460A003C */ c.lt.s $f0, $f10 +/* 0E71C8 7F0B2698 00000000 */ nop +/* 0E71CC 7F0B269C 45020004 */ bc1fl .L7F0B26B0 +/* 0E71D0 7F0B26A0 00001025 */ move $v0, $zero +/* 0E71D4 7F0B26A4 03E00008 */ jr $ra +/* 0E71D8 7F0B26A8 24020001 */ li $v0, 1 + +/* 0E71DC 7F0B26AC 00001025 */ move $v0, $zero +.L7F0B26B0: +/* 0E71E0 7F0B26B0 03E00008 */ jr $ra +/* 0E71E4 7F0B26B4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B26B8(s32 arg1, ? arg2, ? arg3, f32 arg4) { + f32 sp2C; + + // Node 0 + sp2C = (f32) (arg4 * D_80040F44); + sub_GAME_7F0B1DDC(arg1, arg2, arg1, arg2, 0, &sub_GAME_7F0B260C, 0, &sp2C); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B26B8 +/* 0E71E8 7F0B26B8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0E71EC 7F0B26BC 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E71F0 7F0B26C0 C4260F44 */ lwc1 $f6, %lo(D_80040F44)($at) +/* 0E71F4 7F0B26C4 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0E71F8 7F0B26C8 44856000 */ mtc1 $a1, $f12 +/* 0E71FC 7F0B26CC 44867000 */ mtc1 $a2, $f14 +/* 0E7200 7F0B26D0 46062202 */ mul.s $f8, $f4, $f6 +/* 0E7204 7F0B26D4 3C0E7F0B */ lui $t6, %hi(sub_GAME_7F0B260C) # $t6, 0x7f0b +/* 0E7208 7F0B26D8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0E720C 7F0B26DC 25CE260C */ addiu $t6, %lo(sub_GAME_7F0B260C) # addiu $t6, $t6, 0x260c +/* 0E7210 7F0B26E0 27AF002C */ addiu $t7, $sp, 0x2c +/* 0E7214 7F0B26E4 44056000 */ mfc1 $a1, $f12 +/* 0E7218 7F0B26E8 44067000 */ mfc1 $a2, $f14 +/* 0E721C 7F0B26EC AFA7003C */ sw $a3, 0x3c($sp) +/* 0E7220 7F0B26F0 E7A8002C */ swc1 $f8, 0x2c($sp) +/* 0E7224 7F0B26F4 AFAF001C */ sw $t7, 0x1c($sp) +/* 0E7228 7F0B26F8 AFAE0014 */ sw $t6, 0x14($sp) +/* 0E722C 7F0B26FC AFA00010 */ sw $zero, 0x10($sp) +/* 0E7230 7F0B2700 0FC2C777 */ jal sub_GAME_7F0B1DDC +/* 0E7234 7F0B2704 AFA00018 */ sw $zero, 0x18($sp) +/* 0E7238 7F0B2708 8FBF0024 */ lw $ra, 0x24($sp) +/* 0E723C 7F0B270C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0E7240 7F0B2710 03E00008 */ jr $ra +/* 0E7244 7F0B2714 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2718(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2718 +/* 0E7248 7F0B2718 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0E724C 7F0B271C AFBF003C */ sw $ra, 0x3c($sp) +/* 0E7250 7F0B2720 AFB5002C */ sw $s5, 0x2c($sp) +/* 0E7254 7F0B2724 AFB40028 */ sw $s4, 0x28($sp) +/* 0E7258 7F0B2728 0080A025 */ move $s4, $a0 +/* 0E725C 7F0B272C 00A0A825 */ move $s5, $a1 +/* 0E7260 7F0B2730 AFBE0038 */ sw $fp, 0x38($sp) +/* 0E7264 7F0B2734 AFB70034 */ sw $s7, 0x34($sp) +/* 0E7268 7F0B2738 AFB60030 */ sw $s6, 0x30($sp) +/* 0E726C 7F0B273C AFB30024 */ sw $s3, 0x24($sp) +/* 0E7270 7F0B2740 AFB20020 */ sw $s2, 0x20($sp) +/* 0E7274 7F0B2744 AFB1001C */ sw $s1, 0x1c($sp) +/* 0E7278 7F0B2748 00A0F809 */ jalr $a1 +/* 0E727C 7F0B274C AFB00018 */ sw $s0, 0x18($sp) +/* 0E7280 7F0B2750 10400003 */ beqz $v0, .L7F0B2760 +/* 0E7284 7F0B2754 3C018008 */ lui $at, %hi(dword_CODE_bss_8007BA10) +/* 0E7288 7F0B2758 10000049 */ b .L7F0B2880 +/* 0E728C 7F0B275C 02801025 */ move $v0, $s4 +.L7F0B2760: +/* 0E7290 7F0B2760 240E0001 */ li $t6, 1 +/* 0E7294 7F0B2764 3C178008 */ lui $s7, %hi(dword_CODE_bss_8007BA10) +/* 0E7298 7F0B2768 3C168004 */ lui $s6, %hi(base_ptr_connection_vals) +/* 0E729C 7F0B276C AC34BA10 */ sw $s4, %lo(dword_CODE_bss_8007BA10)($at) +/* 0E72A0 7F0B2770 24110001 */ li $s1, 1 +/* 0E72A4 7F0B2774 26D60F58 */ addiu $s6, %lo(base_ptr_connection_vals) # addiu $s6, $s6, 0xf58 +/* 0E72A8 7F0B2778 26F7BA10 */ addiu $s7, %lo(dword_CODE_bss_8007BA10) # addiu $s7, $s7, -0x45f0 +/* 0E72AC 7F0B277C AFAE0058 */ sw $t6, 0x58($sp) +/* 0E72B0 7F0B2780 0000F025 */ move $fp, $zero +.L7F0B2784: +/* 0E72B4 7F0B2784 1A200037 */ blez $s1, .L7F0B2864 +/* 0E72B8 7F0B2788 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_8007BA10) +/* 0E72BC 7F0B278C 25EFBA10 */ addiu $t7, %lo(dword_CODE_bss_8007BA10) # addiu $t7, $t7, -0x45f0 +/* 0E72C0 7F0B2790 AFAF0044 */ sw $t7, 0x44($sp) +.L7F0B2794: +/* 0E72C4 7F0B2794 8FB80044 */ lw $t8, 0x44($sp) +/* 0E72C8 7F0B2798 00009025 */ move $s2, $zero +/* 0E72CC 7F0B279C 8F140000 */ lw $s4, ($t8) +/* 0E72D0 7F0B27A0 86840006 */ lh $a0, 6($s4) +/* 0E72D4 7F0B27A4 02809825 */ move $s3, $s4 +/* 0E72D8 7F0B27A8 0004CB03 */ sra $t9, $a0, 0xc +/* 0E72DC 7F0B27AC 3324000F */ andi $a0, $t9, 0xf +/* 0E72E0 7F0B27B0 58800026 */ blezl $a0, .L7F0B284C +/* 0E72E4 7F0B27B4 8FB90044 */ lw $t9, 0x44($sp) +.L7F0B27B8: +/* 0E72E8 7F0B27B8 9662000E */ lhu $v0, 0xe($s3) +/* 0E72EC 7F0B27BC 8ECA0000 */ lw $t2, ($s6) +/* 0E72F0 7F0B27C0 000248C0 */ sll $t1, $v0, 3 +/* 0E72F4 7F0B27C4 00025903 */ sra $t3, $v0, 4 +/* 0E72F8 7F0B27C8 1160001B */ beqz $t3, .L7F0B2838 +/* 0E72FC 7F0B27CC 012A8021 */ addu $s0, $t1, $t2 +/* 0E7300 7F0B27D0 1A200009 */ blez $s1, .L7F0B27F8 +/* 0E7304 7F0B27D4 00001025 */ move $v0, $zero +/* 0E7308 7F0B27D8 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007BA10) +/* 0E730C 7F0B27DC 2463BA10 */ addiu $v1, %lo(dword_CODE_bss_8007BA10) # addiu $v1, $v1, -0x45f0 +.L7F0B27E0: +/* 0E7310 7F0B27E0 8C6C0000 */ lw $t4, ($v1) +/* 0E7314 7F0B27E4 24420001 */ addiu $v0, $v0, 1 +/* 0E7318 7F0B27E8 520C0014 */ beql $s0, $t4, .L7F0B283C +/* 0E731C 7F0B27EC 26520001 */ addiu $s2, $s2, 1 +/* 0E7320 7F0B27F0 1451FFFB */ bne $v0, $s1, .L7F0B27E0 +/* 0E7324 7F0B27F4 24630004 */ addiu $v1, $v1, 4 +.L7F0B27F8: +/* 0E7328 7F0B27F8 02A0F809 */ jalr $s5 +/* 0E732C 7F0B27FC 02002025 */ move $a0, $s0 +/* 0E7330 7F0B2800 10400003 */ beqz $v0, .L7F0B2810 +/* 0E7334 7F0B2804 00116880 */ sll $t5, $s1, 2 +/* 0E7338 7F0B2808 1000001D */ b .L7F0B2880 +/* 0E733C 7F0B280C 02001025 */ move $v0, $s0 +.L7F0B2810: +/* 0E7340 7F0B2810 26310001 */ addiu $s1, $s1, 1 +/* 0E7344 7F0B2814 02ED7021 */ addu $t6, $s7, $t5 +/* 0E7348 7F0B2818 2E21015F */ sltiu $at, $s1, 0x15f +/* 0E734C 7F0B281C 14200003 */ bnez $at, .L7F0B282C +/* 0E7350 7F0B2820 ADD00000 */ sw $s0, ($t6) +/* 0E7354 7F0B2824 10000016 */ b .L7F0B2880 +/* 0E7358 7F0B2828 00001025 */ move $v0, $zero +.L7F0B282C: +/* 0E735C 7F0B282C 86840006 */ lh $a0, 6($s4) +/* 0E7360 7F0B2830 00047B03 */ sra $t7, $a0, 0xc +/* 0E7364 7F0B2834 31E4000F */ andi $a0, $t7, 0xf +.L7F0B2838: +/* 0E7368 7F0B2838 26520001 */ addiu $s2, $s2, 1 +.L7F0B283C: +/* 0E736C 7F0B283C 0244082A */ slt $at, $s2, $a0 +/* 0E7370 7F0B2840 1420FFDD */ bnez $at, .L7F0B27B8 +/* 0E7374 7F0B2844 26730008 */ addiu $s3, $s3, 8 +/* 0E7378 7F0B2848 8FB90044 */ lw $t9, 0x44($sp) +.L7F0B284C: +/* 0E737C 7F0B284C 8FA90058 */ lw $t1, 0x58($sp) +/* 0E7380 7F0B2850 27DE0001 */ addiu $fp, $fp, 1 +/* 0E7384 7F0B2854 27280004 */ addiu $t0, $t9, 4 +/* 0E7388 7F0B2858 03C9082A */ slt $at, $fp, $t1 +/* 0E738C 7F0B285C 1420FFCD */ bnez $at, .L7F0B2794 +/* 0E7390 7F0B2860 AFA80044 */ sw $t0, 0x44($sp) +.L7F0B2864: +/* 0E7394 7F0B2864 8FAA0058 */ lw $t2, 0x58($sp) +/* 0E7398 7F0B2868 0000F025 */ move $fp, $zero +/* 0E739C 7F0B286C 522A0004 */ beql $s1, $t2, .L7F0B2880 +/* 0E73A0 7F0B2870 00001025 */ move $v0, $zero +/* 0E73A4 7F0B2874 1000FFC3 */ b .L7F0B2784 +/* 0E73A8 7F0B2878 AFB10058 */ sw $s1, 0x58($sp) +/* 0E73AC 7F0B287C 00001025 */ move $v0, $zero +.L7F0B2880: +/* 0E73B0 7F0B2880 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E73B4 7F0B2884 8FB00018 */ lw $s0, 0x18($sp) +/* 0E73B8 7F0B2888 8FB1001C */ lw $s1, 0x1c($sp) +/* 0E73BC 7F0B288C 8FB20020 */ lw $s2, 0x20($sp) +/* 0E73C0 7F0B2890 8FB30024 */ lw $s3, 0x24($sp) +/* 0E73C4 7F0B2894 8FB40028 */ lw $s4, 0x28($sp) +/* 0E73C8 7F0B2898 8FB5002C */ lw $s5, 0x2c($sp) +/* 0E73CC 7F0B289C 8FB60030 */ lw $s6, 0x30($sp) +/* 0E73D0 7F0B28A0 8FB70034 */ lw $s7, 0x34($sp) +/* 0E73D4 7F0B28A4 8FBE0038 */ lw $fp, 0x38($sp) +/* 0E73D8 7F0B28A8 03E00008 */ jr $ra +/* 0E73DC 7F0B28AC 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B28B0(void *arg0, void *arg1) { + s32 sp1C; + + // Node 0 + sp1C = (s32) dword_CODE_bss_8007B9E4; + if (dword_CODE_bss_8007B9E4 != 0) + { + // Node 1 + sub_GAME_7F0B1CF8(dword_CODE_bss_8007B9E4, dword_CODE_bss_8007B9E8, arg0, arg1); + return 0; + } + // Node 2 + if (D_800413BC == 0) + { + // Node 4 + // Node 5 + return 0; + } + // Node 3 + arg0->unk4 = 0.0f; + *arg0 = (f32) flt_CODE_bss_8007B9F0; + arg0->unk8 = (f32) flt_CODE_bss_8007B9F0.unk4; + arg1->unk4 = 0.0f; + *arg1 = (f32) flt_CODE_bss_8007B9F8; + arg1->unk8 = (f32) flt_CODE_bss_8007B9F8.unk4; + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B28B0 +/* 0E73E0 7F0B28B0 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_8007B9E4) +/* 0E73E4 7F0B28B4 8DCEB9E4 */ lw $t6, %lo(dword_CODE_bss_8007B9E4)($t6) +/* 0E73E8 7F0B28B8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E73EC 7F0B28BC AFBF0014 */ sw $ra, 0x14($sp) +/* 0E73F0 7F0B28C0 00803025 */ move $a2, $a0 +/* 0E73F4 7F0B28C4 00A03825 */ move $a3, $a1 +/* 0E73F8 7F0B28C8 11C00007 */ beqz $t6, .L7F0B28E8 +/* 0E73FC 7F0B28CC AFAE001C */ sw $t6, 0x1c($sp) +/* 0E7400 7F0B28D0 3C058008 */ lui $a1, %hi(dword_CODE_bss_8007B9E8) +/* 0E7404 7F0B28D4 8CA5B9E8 */ lw $a1, %lo(dword_CODE_bss_8007B9E8)($a1) +/* 0E7408 7F0B28D8 0FC2C73E */ jal sub_GAME_7F0B1CF8 +/* 0E740C 7F0B28DC 01C02025 */ move $a0, $t6 +/* 0E7410 7F0B28E0 10000017 */ b .L7F0B2940 +/* 0E7414 7F0B28E4 24020001 */ li $v0, 1 +.L7F0B28E8: +/* 0E7418 7F0B28E8 3C0F8004 */ lui $t7, %hi(D_800413BC) +/* 0E741C 7F0B28EC 8DEF13BC */ lw $t7, %lo(D_800413BC)($t7) +/* 0E7420 7F0B28F0 3C038008 */ lui $v1, %hi(flt_CODE_bss_8007B9F0) +/* 0E7424 7F0B28F4 2463B9F0 */ addiu $v1, %lo(flt_CODE_bss_8007B9F0) # addiu $v1, $v1, -0x4610 +/* 0E7428 7F0B28F8 51E00011 */ beql $t7, $zero, .L7F0B2940 +/* 0E742C 7F0B28FC 00001025 */ move $v0, $zero +/* 0E7430 7F0B2900 44800000 */ mtc1 $zero, $f0 +/* 0E7434 7F0B2904 C4640000 */ lwc1 $f4, ($v1) +/* 0E7438 7F0B2908 3C048008 */ lui $a0, %hi(flt_CODE_bss_8007B9F8) +/* 0E743C 7F0B290C E4C00004 */ swc1 $f0, 4($a2) +/* 0E7440 7F0B2910 E4C40000 */ swc1 $f4, ($a2) +/* 0E7444 7F0B2914 C4660004 */ lwc1 $f6, 4($v1) +/* 0E7448 7F0B2918 2484B9F8 */ addiu $a0, %lo(flt_CODE_bss_8007B9F8) # addiu $a0, $a0, -0x4608 +/* 0E744C 7F0B291C 24020001 */ li $v0, 1 +/* 0E7450 7F0B2920 E4C60008 */ swc1 $f6, 8($a2) +/* 0E7454 7F0B2924 C4880000 */ lwc1 $f8, ($a0) +/* 0E7458 7F0B2928 E4E00004 */ swc1 $f0, 4($a3) +/* 0E745C 7F0B292C E4E80000 */ swc1 $f8, ($a3) +/* 0E7460 7F0B2930 C48A0004 */ lwc1 $f10, 4($a0) +/* 0E7464 7F0B2934 10000002 */ b .L7F0B2940 +/* 0E7468 7F0B2938 E4EA0008 */ swc1 $f10, 8($a3) +/* 0E746C 7F0B293C 00001025 */ move $v0, $zero +.L7F0B2940: +/* 0E7470 7F0B2940 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E7474 7F0B2944 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0E7478 7F0B2948 03E00008 */ jr $ra +/* 0E747C 7F0B294C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2950(f32 arg0) { + // Node 0 + D_80040F44 = arg0; + D_80040F48 = (f32) (1.0f / arg0); + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2950 +/* 0E7480 7F0B2950 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E7484 7F0B2954 E42C0F44 */ swc1 $f12, %lo(D_80040F44)($at) +/* 0E7488 7F0B2958 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E748C 7F0B295C 44812000 */ mtc1 $at, $f4 +/* 0E7490 7F0B2960 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E7494 7F0B2964 460C2183 */ div.s $f6, $f4, $f12 +/* 0E7498 7F0B2968 03E00008 */ jr $ra +/* 0E749C 7F0B296C E4260F48 */ swc1 $f6, %lo(D_80040F48)($at) +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B2970(void *arg0, s32 arg1, f32 arg2) { + f64 sp20; + f64 sp28; + f64 sp30; + s32 sp38; + u32 sp3C; + s32 sp40; + u32 sp44; + s32 sp58; + u32 sp5C; + s32 sp60; + u32 sp64; + s32 sp68; + u32 sp6C; + s32 sp70; + u32 sp74; + f32 sp78; + f32 sp7C; + f32 sp80; + f32 sp84; + f32 sp88; + f32 sp8C; + s32 temp_a1; + s32 temp_a2; + void *temp_s0; + void *temp_v1; + s32 temp_a3; + void *temp_t0; + f32 temp_f18; + f32 temp_f6; + f32 temp_f10; + f32 temp_f4; + f32 temp_f10_2; + ? temp_ret; + ? temp_ret_2; + ? temp_ret_3; + ? temp_ret_4; + ? temp_ret_5; + ? temp_ret_6; + u32 temp_t9; + u32 temp_t5; + + // Node 0 + temp_a1 = ((s32) arg0->unk6 >> 8); + temp_a2 = ((s32) arg0->unk6 >> 4); + arg2 = (f32) (arg2 * D_80040F44); + temp_s0 = (arg0 + ((temp_a1 & 0xf) * 8)); + temp_v1 = (arg0 + ((temp_a2 & 0xf) * 8)); + temp_a3 = (arg0->unk6 & 0xf); + temp_t0 = (arg0 + (temp_a3 * 8)); + sp84 = (f32) (temp_v1->unk8 - temp_s0->unk8); + temp_f18 = (f32) (temp_v1->unkA - temp_s0->unkA); + sp88 = temp_f18; + temp_f6 = (f32) (temp_v1->unkC - temp_s0->unkC); + sp8C = temp_f6; + temp_f10 = (f32) (temp_t0->unk8 - temp_s0->unk8); + sp78 = temp_f10; + temp_f4 = (f32) (temp_t0->unkA - temp_s0->unkA); + sp7C = temp_f4; + temp_f10_2 = (f32) (temp_t0->unkC - temp_s0->unkC); + sp80 = temp_f10_2; + temp_ret = __f_to_ll(((temp_f18 * temp_f10_2) - (temp_f4 * temp_f6)), (arg1 * D_80040F44), temp_a1, temp_a2, temp_a3); + sp60 = temp_ret; + sp64 = temp_ret; + temp_ret_2 = __f_to_ll(((sp8C * temp_f10) - (sp80 * sp84))); + sp68 = temp_ret_2; + sp6C = temp_ret_2; + temp_ret_3 = __f_to_ll(((sp84 * sp7C) - (sp78 * sp88))); + sp70 = temp_ret_3; + sp74 = temp_ret_3; + temp_ret_4 = __ll_mul(sp68, sp6C, ((s32) temp_s0->unkA >> 0x1f), temp_s0->unkA); + sp38 = temp_ret_4; + sp3C = temp_ret_4; + temp_ret_5 = __ll_mul(sp60, sp64, ((s32) temp_s0->unk8 >> 0x1f), temp_s0->unk8); + sp40 = temp_ret_5; + sp44 = temp_ret_5; + temp_ret_6 = __ll_mul(sp70, sp74, ((s32) temp_s0->unkC >> 0x1f), temp_s0->unkC); + temp_t9 = (temp_ret_6 + sp44); + temp_t5 = (temp_t9 + sp3C); + sp58 = (s32) (((temp_t5 < sp3C) + (((temp_t9 < sp44) + temp_ret_6) + sp40)) + sp38); + sp5C = temp_t5; + if (sp68 != 0) + { + // Node 3 + sp20 = __ll_to_d(sp70, sp74); + sp28 = __ll_to_d(sp60, sp64); + sp30 = __ll_to_d(sp58, sp5C); + // Node 4 + return ((f32) (((sp30 - ((f64) arg1 * sp28)) - ((f64) arg2 * sp20)) / __ll_to_d(sp68, sp6C)) * D_80040F48); + } + // Node 1 + if (sp6C != 0) + { + // Node 3 + sp20 = __ll_to_d(sp70, sp74); + sp28 = __ll_to_d(sp60, sp64); + sp30 = __ll_to_d(sp58, sp5C); + // Node 4 + return ((f32) (((sp30 - ((f64) arg1 * sp28)) - ((f64) arg2 * sp20)) / __ll_to_d(sp68, sp6C)) * D_80040F48); + } + // Node 2 + return ((f32) (((sp30 - ((f64) arg1 * sp28)) - ((f64) arg2 * sp20)) / __ll_to_d(sp68, sp6C)) * D_80040F48); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2970 +/* 0E74A0 7F0B2970 3C018004 */ lui $at, %hi(D_80040F44) +/* 0E74A4 7F0B2974 44857000 */ mtc1 $a1, $f14 +/* 0E74A8 7F0B2978 C4200F44 */ lwc1 $f0, %lo(D_80040F44)($at) +/* 0E74AC 7F0B297C 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 0E74B0 7F0B2980 AFA60098 */ sw $a2, 0x98($sp) +/* 0E74B4 7F0B2984 46007382 */ mul.s $f14, $f14, $f0 +/* 0E74B8 7F0B2988 C7A40098 */ lwc1 $f4, 0x98($sp) +/* 0E74BC 7F0B298C AFBF001C */ sw $ra, 0x1c($sp) +/* 0E74C0 7F0B2990 AFB00018 */ sw $s0, 0x18($sp) +/* 0E74C4 7F0B2994 46002182 */ mul.s $f6, $f4, $f0 +/* 0E74C8 7F0B2998 84820006 */ lh $v0, 6($a0) +/* 0E74CC 7F0B299C 00022A03 */ sra $a1, $v0, 8 +/* 0E74D0 7F0B29A0 00023103 */ sra $a2, $v0, 4 +/* 0E74D4 7F0B29A4 30AE000F */ andi $t6, $a1, 0xf +/* 0E74D8 7F0B29A8 30CF000F */ andi $t7, $a2, 0xf +/* 0E74DC 7F0B29AC E7A60098 */ swc1 $f6, 0x98($sp) +/* 0E74E0 7F0B29B0 000FC0C0 */ sll $t8, $t7, 3 +/* 0E74E4 7F0B29B4 000EC8C0 */ sll $t9, $t6, 3 +/* 0E74E8 7F0B29B8 00998021 */ addu $s0, $a0, $t9 +/* 0E74EC 7F0B29BC 00981821 */ addu $v1, $a0, $t8 +/* 0E74F0 7F0B29C0 84690008 */ lh $t1, 8($v1) +/* 0E74F4 7F0B29C4 860A0008 */ lh $t2, 8($s0) +/* 0E74F8 7F0B29C8 3047000F */ andi $a3, $v0, 0xf +/* 0E74FC 7F0B29CC 012A5823 */ subu $t3, $t1, $t2 +/* 0E7500 7F0B29D0 448B4000 */ mtc1 $t3, $f8 +/* 0E7504 7F0B29D4 000748C0 */ sll $t1, $a3, 3 +/* 0E7508 7F0B29D8 00894021 */ addu $t0, $a0, $t1 +/* 0E750C 7F0B29DC 468042A0 */ cvt.s.w $f10, $f8 +/* 0E7510 7F0B29E0 E7AA0084 */ swc1 $f10, 0x84($sp) +/* 0E7514 7F0B29E4 860D000A */ lh $t5, 0xa($s0) +/* 0E7518 7F0B29E8 846C000A */ lh $t4, 0xa($v1) +/* 0E751C 7F0B29EC 018D7023 */ subu $t6, $t4, $t5 +/* 0E7520 7F0B29F0 448E8000 */ mtc1 $t6, $f16 +/* 0E7524 7F0B29F4 00000000 */ nop +/* 0E7528 7F0B29F8 468084A0 */ cvt.s.w $f18, $f16 +/* 0E752C 7F0B29FC E7B20088 */ swc1 $f18, 0x88($sp) +/* 0E7530 7F0B2A00 8618000C */ lh $t8, 0xc($s0) +/* 0E7534 7F0B2A04 846F000C */ lh $t7, 0xc($v1) +/* 0E7538 7F0B2A08 01F8C823 */ subu $t9, $t7, $t8 +/* 0E753C 7F0B2A0C 44992000 */ mtc1 $t9, $f4 +/* 0E7540 7F0B2A10 00000000 */ nop +/* 0E7544 7F0B2A14 468021A0 */ cvt.s.w $f6, $f4 +/* 0E7548 7F0B2A18 E7A6008C */ swc1 $f6, 0x8c($sp) +/* 0E754C 7F0B2A1C 860B0008 */ lh $t3, 8($s0) +/* 0E7550 7F0B2A20 850A0008 */ lh $t2, 8($t0) +/* 0E7554 7F0B2A24 014B6023 */ subu $t4, $t2, $t3 +/* 0E7558 7F0B2A28 448C4000 */ mtc1 $t4, $f8 +/* 0E755C 7F0B2A2C 00000000 */ nop +/* 0E7560 7F0B2A30 468042A0 */ cvt.s.w $f10, $f8 +/* 0E7564 7F0B2A34 E7AA0078 */ swc1 $f10, 0x78($sp) +/* 0E7568 7F0B2A38 860E000A */ lh $t6, 0xa($s0) +/* 0E756C 7F0B2A3C 850D000A */ lh $t5, 0xa($t0) +/* 0E7570 7F0B2A40 01AE7823 */ subu $t7, $t5, $t6 +/* 0E7574 7F0B2A44 448F8000 */ mtc1 $t7, $f16 +/* 0E7578 7F0B2A48 00000000 */ nop +/* 0E757C 7F0B2A4C 46808120 */ cvt.s.w $f4, $f16 +/* 0E7580 7F0B2A50 E7A4007C */ swc1 $f4, 0x7c($sp) +/* 0E7584 7F0B2A54 8619000C */ lh $t9, 0xc($s0) +/* 0E7588 7F0B2A58 8518000C */ lh $t8, 0xc($t0) +/* 0E758C 7F0B2A5C E7AE0094 */ swc1 $f14, 0x94($sp) +/* 0E7590 7F0B2A60 03194823 */ subu $t1, $t8, $t9 +/* 0E7594 7F0B2A64 44894000 */ mtc1 $t1, $f8 +/* 0E7598 7F0B2A68 00000000 */ nop +/* 0E759C 7F0B2A6C 468042A0 */ cvt.s.w $f10, $f8 +/* 0E75A0 7F0B2A70 460A9402 */ mul.s $f16, $f18, $f10 +/* 0E75A4 7F0B2A74 E7AA0080 */ swc1 $f10, 0x80($sp) +/* 0E75A8 7F0B2A78 46062202 */ mul.s $f8, $f4, $f6 +/* 0E75AC 7F0B2A7C 0C005E4B */ jal __f_to_ll +/* 0E75B0 7F0B2A80 46088301 */ sub.s $f12, $f16, $f8 +/* 0E75B4 7F0B2A84 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 0E75B8 7F0B2A88 C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 0E75BC 7F0B2A8C C7A60080 */ lwc1 $f6, 0x80($sp) +/* 0E75C0 7F0B2A90 C7B00084 */ lwc1 $f16, 0x84($sp) +/* 0E75C4 7F0B2A94 460A9102 */ mul.s $f4, $f18, $f10 +/* 0E75C8 7F0B2A98 AFA20060 */ sw $v0, 0x60($sp) +/* 0E75CC 7F0B2A9C AFA30064 */ sw $v1, 0x64($sp) +/* 0E75D0 7F0B2AA0 46103202 */ mul.s $f8, $f6, $f16 +/* 0E75D4 7F0B2AA4 0C005E4B */ jal __f_to_ll +/* 0E75D8 7F0B2AA8 46082301 */ sub.s $f12, $f4, $f8 +/* 0E75DC 7F0B2AAC C7B20084 */ lwc1 $f18, 0x84($sp) +/* 0E75E0 7F0B2AB0 C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 0E75E4 7F0B2AB4 C7B00078 */ lwc1 $f16, 0x78($sp) +/* 0E75E8 7F0B2AB8 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0E75EC 7F0B2ABC 460A9182 */ mul.s $f6, $f18, $f10 +/* 0E75F0 7F0B2AC0 AFA20068 */ sw $v0, 0x68($sp) +/* 0E75F4 7F0B2AC4 AFA3006C */ sw $v1, 0x6c($sp) +/* 0E75F8 7F0B2AC8 46048202 */ mul.s $f8, $f16, $f4 +/* 0E75FC 7F0B2ACC 0C005E4B */ jal __f_to_ll +/* 0E7600 7F0B2AD0 46083301 */ sub.s $f12, $f6, $f8 +/* 0E7604 7F0B2AD4 AFA20070 */ sw $v0, 0x70($sp) +/* 0E7608 7F0B2AD8 AFA30074 */ sw $v1, 0x74($sp) +/* 0E760C 7F0B2ADC 8607000A */ lh $a3, 0xa($s0) +/* 0E7610 7F0B2AE0 8FA40068 */ lw $a0, 0x68($sp) +/* 0E7614 7F0B2AE4 8FA5006C */ lw $a1, 0x6c($sp) +/* 0E7618 7F0B2AE8 0C003B6A */ jal __ll_mul +/* 0E761C 7F0B2AEC 000737C3 */ sra $a2, $a3, 0x1f +/* 0E7620 7F0B2AF0 AFA20038 */ sw $v0, 0x38($sp) +/* 0E7624 7F0B2AF4 AFA3003C */ sw $v1, 0x3c($sp) +/* 0E7628 7F0B2AF8 86070008 */ lh $a3, 8($s0) +/* 0E762C 7F0B2AFC 8FA40060 */ lw $a0, 0x60($sp) +/* 0E7630 7F0B2B00 8FA50064 */ lw $a1, 0x64($sp) +/* 0E7634 7F0B2B04 0C003B6A */ jal __ll_mul +/* 0E7638 7F0B2B08 000737C3 */ sra $a2, $a3, 0x1f +/* 0E763C 7F0B2B0C AFA20040 */ sw $v0, 0x40($sp) +/* 0E7640 7F0B2B10 AFA30044 */ sw $v1, 0x44($sp) +/* 0E7644 7F0B2B14 8607000C */ lh $a3, 0xc($s0) +/* 0E7648 7F0B2B18 8FA40070 */ lw $a0, 0x70($sp) +/* 0E764C 7F0B2B1C 8FA50074 */ lw $a1, 0x74($sp) +/* 0E7650 7F0B2B20 0C003B6A */ jal __ll_mul +/* 0E7654 7F0B2B24 000737C3 */ sra $a2, $a3, 0x1f +/* 0E7658 7F0B2B28 8FAF0044 */ lw $t7, 0x44($sp) +/* 0E765C 7F0B2B2C 8FAE0040 */ lw $t6, 0x40($sp) +/* 0E7660 7F0B2B30 8FAB003C */ lw $t3, 0x3c($sp) +/* 0E7664 7F0B2B34 006FC821 */ addu $t9, $v1, $t7 +/* 0E7668 7F0B2B38 032F082B */ sltu $at, $t9, $t7 +/* 0E766C 7F0B2B3C 0022C021 */ addu $t8, $at, $v0 +/* 0E7670 7F0B2B40 8FAA0038 */ lw $t2, 0x38($sp) +/* 0E7674 7F0B2B44 030EC021 */ addu $t8, $t8, $t6 +/* 0E7678 7F0B2B48 032B6821 */ addu $t5, $t9, $t3 +/* 0E767C 7F0B2B4C 8FAE0068 */ lw $t6, 0x68($sp) +/* 0E7680 7F0B2B50 01AB082B */ sltu $at, $t5, $t3 +/* 0E7684 7F0B2B54 00386021 */ addu $t4, $at, $t8 +/* 0E7688 7F0B2B58 018A6021 */ addu $t4, $t4, $t2 +/* 0E768C 7F0B2B5C AFAC0058 */ sw $t4, 0x58($sp) +/* 0E7690 7F0B2B60 AFAD005C */ sw $t5, 0x5c($sp) +/* 0E7694 7F0B2B64 15C0000C */ bnez $t6, .L7F0B2B98 +/* 0E7698 7F0B2B68 8FAF006C */ lw $t7, 0x6c($sp) +/* 0E769C 7F0B2B6C 55E0000B */ bnezl $t7, .L7F0B2B9C +/* 0E76A0 7F0B2B70 8FA40070 */ lw $a0, 0x70($sp) +/* 0E76A4 7F0B2B74 8609000A */ lh $t1, 0xa($s0) +/* 0E76A8 7F0B2B78 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E76AC 7F0B2B7C C4300F48 */ lwc1 $f16, %lo(D_80040F48)($at) +/* 0E76B0 7F0B2B80 44899000 */ mtc1 $t1, $f18 +/* 0E76B4 7F0B2B84 00000000 */ nop +/* 0E76B8 7F0B2B88 468092A0 */ cvt.s.w $f10, $f18 +/* 0E76BC 7F0B2B8C 46105002 */ mul.s $f0, $f10, $f16 +/* 0E76C0 7F0B2B90 10000022 */ b .L7F0B2C1C +/* 0E76C4 7F0B2B94 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0B2B98: +/* 0E76C8 7F0B2B98 8FA40070 */ lw $a0, 0x70($sp) +.L7F0B2B9C: +/* 0E76CC 7F0B2B9C 0C005EA1 */ jal __ll_to_d +/* 0E76D0 7F0B2BA0 8FA50074 */ lw $a1, 0x74($sp) +/* 0E76D4 7F0B2BA4 F7A00020 */ sdc1 $f0, 0x20($sp) +/* 0E76D8 7F0B2BA8 8FA40060 */ lw $a0, 0x60($sp) +/* 0E76DC 7F0B2BAC 0C005EA1 */ jal __ll_to_d +/* 0E76E0 7F0B2BB0 8FA50064 */ lw $a1, 0x64($sp) +/* 0E76E4 7F0B2BB4 8FA40058 */ lw $a0, 0x58($sp) +/* 0E76E8 7F0B2BB8 8FA5005C */ lw $a1, 0x5c($sp) +/* 0E76EC 7F0B2BBC 0C005EA1 */ jal __ll_to_d +/* 0E76F0 7F0B2BC0 F7A00028 */ sdc1 $f0, 0x28($sp) +/* 0E76F4 7F0B2BC4 8FA40068 */ lw $a0, 0x68($sp) +/* 0E76F8 7F0B2BC8 8FA5006C */ lw $a1, 0x6c($sp) +/* 0E76FC 7F0B2BCC 0C005EA1 */ jal __ll_to_d +/* 0E7700 7F0B2BD0 F7A00030 */ sdc1 $f0, 0x30($sp) +/* 0E7704 7F0B2BD4 C7A40098 */ lwc1 $f4, 0x98($sp) +/* 0E7708 7F0B2BD8 D7A80020 */ ldc1 $f8, 0x20($sp) +/* 0E770C 7F0B2BDC C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 0E7710 7F0B2BE0 460021A1 */ cvt.d.s $f6, $f4 +/* 0E7714 7F0B2BE4 D7A20028 */ ldc1 $f2, 0x28($sp) +/* 0E7718 7F0B2BE8 46283482 */ mul.d $f18, $f6, $f8 +/* 0E771C 7F0B2BEC 46005421 */ cvt.d.s $f16, $f10 +/* 0E7720 7F0B2BF0 D7AC0030 */ ldc1 $f12, 0x30($sp) +/* 0E7724 7F0B2BF4 3C018004 */ lui $at, %hi(D_80040F48) +/* 0E7728 7F0B2BF8 46228102 */ mul.d $f4, $f16, $f2 +/* 0E772C 7F0B2BFC 46246181 */ sub.d $f6, $f12, $f4 +/* 0E7730 7F0B2C00 C4240F48 */ lwc1 $f4, %lo(D_80040F48)($at) +/* 0E7734 7F0B2C04 46323201 */ sub.d $f8, $f6, $f18 +/* 0E7738 7F0B2C08 46204283 */ div.d $f10, $f8, $f0 +/* 0E773C 7F0B2C0C 46205420 */ cvt.s.d $f16, $f10 +/* 0E7740 7F0B2C10 46048002 */ mul.s $f0, $f16, $f4 +/* 0E7744 7F0B2C14 00000000 */ nop +/* 0E7748 7F0B2C18 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0B2C1C: +/* 0E774C 7F0B2C1C 8FB00018 */ lw $s0, 0x18($sp) +/* 0E7750 7F0B2C20 27BD0090 */ addiu $sp, $sp, 0x90 +/* 0E7754 7F0B2C24 03E00008 */ jr $ra +/* 0E7758 7F0B2C28 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 copy_tile_RGB_as_24bit(void *arg0, s32 arg1, ? arg2, void *arg3) { + s32 temp_v0; + s32 temp_t7; + s32 temp_t9; + s32 temp_t3; + + // Node 0 + temp_v0 = ((s32) arg0->unk4 >> 8); + temp_t7 = (temp_v0 & 0xf); + temp_t9 = (((s32) arg0->unk4 >> 4) & 0xf); + temp_t3 = (arg0->unk4 & 0xf); + *arg3 = (s8) ((temp_t7 * 0x10) | temp_t7); + arg3->unk1 = (s8) ((temp_t9 * 0x10) | temp_t9); + arg3->unk2 = (s8) ((temp_t3 * 0x10) | temp_t3); + return temp_v0; +} +#else +GLOBAL_ASM( +.text +glabel copy_tile_RGB_as_24bit +/* 0E775C 7F0B2C2C AFA50004 */ sw $a1, 4($sp) +/* 0E7760 7F0B2C30 AFA60008 */ sw $a2, 8($sp) +/* 0E7764 7F0B2C34 84830004 */ lh $v1, 4($a0) +/* 0E7768 7F0B2C38 00031203 */ sra $v0, $v1, 8 +/* 0E776C 7F0B2C3C 304F000F */ andi $t7, $v0, 0xf +/* 0E7770 7F0B2C40 00032903 */ sra $a1, $v1, 4 +/* 0E7774 7F0B2C44 30B9000F */ andi $t9, $a1, 0xf +/* 0E7778 7F0B2C48 000F6100 */ sll $t4, $t7, 4 +/* 0E777C 7F0B2C4C 018F6825 */ or $t5, $t4, $t7 +/* 0E7780 7F0B2C50 00197100 */ sll $t6, $t9, 4 +/* 0E7784 7F0B2C54 306B000F */ andi $t3, $v1, 0xf +/* 0E7788 7F0B2C58 01D97825 */ or $t7, $t6, $t9 +/* 0E778C 7F0B2C5C 000BC100 */ sll $t8, $t3, 4 +/* 0E7790 7F0B2C60 030BC825 */ or $t9, $t8, $t3 +/* 0E7794 7F0B2C64 A0ED0000 */ sb $t5, ($a3) +/* 0E7798 7F0B2C68 A0EF0001 */ sb $t7, 1($a3) +/* 0E779C 7F0B2C6C 03E00008 */ jr $ra +/* 0E77A0 7F0B2C70 A0F90002 */ sb $t9, 2($a3) +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B2C74(void *arg0, void *arg1) { + f32 temp_f2; + f32 phi_f16; + f32 phi_f2; + + // Node 0 + temp_f2 = (f32) (arg0 + ((((s32) arg0->unk6 >> 8) & 0xf) * 8))->unkA; + if (temp_f2 < temp_f2) + { + // Node 1 + } + // Node 2 + phi_f16 = temp_f2; + if (temp_f2 < temp_f2) + { + // Node 3 + phi_f16 = temp_f2; + } + // Node 4 + if (temp_f2 < temp_f2) + { + // Node 5 + } + // Node 6 + phi_f2 = temp_f2; + if (temp_f2 < temp_f2) + { + // Node 7 + phi_f2 = temp_f2; + } + // Node 8 + *arg1 = (f32) (phi_f16 * D_80040F48); + arg1->unk4 = (f32) (phi_f2 * D_80040F48); + return temp_f2; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2C74 +/* 0E77A4 7F0B2C74 848E0006 */ lh $t6, 6($a0) +/* 0E77A8 7F0B2C78 3C028004 */ lui $v0, %hi(D_80040F48) +/* 0E77AC 7F0B2C7C 24420F48 */ addiu $v0, %lo(D_80040F48) # addiu $v0, $v0, 0xf48 +/* 0E77B0 7F0B2C80 000E7A03 */ sra $t7, $t6, 8 +/* 0E77B4 7F0B2C84 31F8000F */ andi $t8, $t7, 0xf +/* 0E77B8 7F0B2C88 0018C8C0 */ sll $t9, $t8, 3 +/* 0E77BC 7F0B2C8C 00994021 */ addu $t0, $a0, $t9 +/* 0E77C0 7F0B2C90 8509000A */ lh $t1, 0xa($t0) +/* 0E77C4 7F0B2C94 44892000 */ mtc1 $t1, $f4 +/* 0E77C8 7F0B2C98 00000000 */ nop +/* 0E77CC 7F0B2C9C 468020A0 */ cvt.s.w $f2, $f4 +/* 0E77D0 7F0B2CA0 4602103C */ c.lt.s $f2, $f2 +/* 0E77D4 7F0B2CA4 46001006 */ mov.s $f0, $f2 +/* 0E77D8 7F0B2CA8 46001306 */ mov.s $f12, $f2 +/* 0E77DC 7F0B2CAC 46001386 */ mov.s $f14, $f2 +/* 0E77E0 7F0B2CB0 45000002 */ bc1f .L7F0B2CBC +/* 0E77E4 7F0B2CB4 46001406 */ mov.s $f16, $f2 +/* 0E77E8 7F0B2CB8 46001406 */ mov.s $f16, $f2 +.L7F0B2CBC: +/* 0E77EC 7F0B2CBC 4610703C */ c.lt.s $f14, $f16 +/* 0E77F0 7F0B2CC0 00000000 */ nop +/* 0E77F4 7F0B2CC4 45020003 */ bc1fl .L7F0B2CD4 +/* 0E77F8 7F0B2CC8 460C003C */ c.lt.s $f0, $f12 +/* 0E77FC 7F0B2CCC 46007406 */ mov.s $f16, $f14 +/* 0E7800 7F0B2CD0 460C003C */ c.lt.s $f0, $f12 +.L7F0B2CD4: +/* 0E7804 7F0B2CD4 46000086 */ mov.s $f2, $f0 +/* 0E7808 7F0B2CD8 45020003 */ bc1fl .L7F0B2CE8 +/* 0E780C 7F0B2CDC 460E103C */ c.lt.s $f2, $f14 +/* 0E7810 7F0B2CE0 46006086 */ mov.s $f2, $f12 +/* 0E7814 7F0B2CE4 460E103C */ c.lt.s $f2, $f14 +.L7F0B2CE8: +/* 0E7818 7F0B2CE8 00000000 */ nop +/* 0E781C 7F0B2CEC 45020003 */ bc1fl .L7F0B2CFC +/* 0E7820 7F0B2CF0 C4460000 */ lwc1 $f6, ($v0) +/* 0E7824 7F0B2CF4 46007086 */ mov.s $f2, $f14 +/* 0E7828 7F0B2CF8 C4460000 */ lwc1 $f6, ($v0) +.L7F0B2CFC: +/* 0E782C 7F0B2CFC 46068202 */ mul.s $f8, $f16, $f6 +/* 0E7830 7F0B2D00 E4A80000 */ swc1 $f8, ($a1) +/* 0E7834 7F0B2D04 C44A0000 */ lwc1 $f10, ($v0) +/* 0E7838 7F0B2D08 460A1482 */ mul.s $f18, $f2, $f10 +/* 0E783C 7F0B2D0C 03E00008 */ jr $ra +/* 0E7840 7F0B2D10 E4B20004 */ swc1 $f18, 4($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2D14(void) { + ? sp18; + + // Node 0 + sub_GAME_7F0B2C74(&sp18); + return sp18; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2D14 +/* 0E7844 7F0B2D14 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E7848 7F0B2D18 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E784C 7F0B2D1C 0FC2CB1D */ jal sub_GAME_7F0B2C74 +/* 0E7850 7F0B2D20 27A50018 */ addiu $a1, $sp, 0x18 +/* 0E7854 7F0B2D24 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E7858 7F0B2D28 C7A00018 */ lwc1 $f0, 0x18($sp) +/* 0E785C 7F0B2D2C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0E7860 7F0B2D30 03E00008 */ jr $ra +/* 0E7864 7F0B2D34 00000000 */ nop +) +#endif + + + + + +void sub_GAME_7F0B2D38(s32 arg0, s32 arg1, s32 arg2) { + return; +} + +s32 sub_GAME_7F0B2D48(s32 arg0) { + return arg0; +} + + + + + + +#ifdef NONMATCHING +void stanConvertNameStringToS32(void *arg0, void *arg1, void *arg2) { + s32 sp30; + void *sp38; + s32 temp_v1; + ? temp_ret; + s32 temp_v1_2; + s32 phi_v1; + + // Node 0 + temp_v1 = (*arg0 + -0x70); + if (temp_v1 < 0) + { + // Node 14 + *arg1 = (u16)0xffff; + *arg2 = (u8)0xff; + // Node 15 + return; + } + // Node 1 + if (temp_v1 >= 2) + { + // Node 14 + *arg1 = (u16)0xffff; + *arg2 = (u8)0xff; + // Node 15 + return; + } + // Node 2 + sp30 = temp_v1; + temp_ret = strtol((arg0 + 1), &sp38, 0xa); + if (sp38 == sp1C) + { + // Node 14 + *arg1 = (u16)0xffff; + *arg2 = (u8)0xff; + // Node 15 + return; + } + // Node 3 + if (temp_ret >= 0x8000U) + { + // Node 14 + *arg1 = (u16)0xffff; + *arg2 = (u8)0xff; + // Node 15 + return; + } + // Node 4 + temp_v1_2 = (*sp38 + -0x61); + if (temp_v1_2 < 0) + { + // Node 14 + *arg1 = (u16)0xffff; + *arg2 = (u8)0xff; + // Node 15 + return; + } + // Node 5 + if (temp_v1_2 >= 0x1a) + { + // Node 14 + *arg1 = (u16)0xffff; + *arg2 = (u8)0xff; + // Node 15 + return; + } + // Node 6 + phi_v1 = sp38->unk1; + if (sp38->unk1 != 0) + { + // Node 7 + phi_v1 = sp38->unk1; + if (sp38->unk1 != 0x30) + { + // Node 8 + phi_v1 = (sp38->unk1 + -0x30); + } + } + // Node 9 + if (phi_v1 < 0) + { + // Node 14 + *arg1 = (u16)0xffff; + *arg2 = (u8)0xff; + // Node 15 + return; + } + // Node 10 + if (phi_v1 >= 8) + { + // Node 14 + *arg1 = (u16)0xffff; + *arg2 = (u8)0xff; + // Node 15 + return; + } + // Node 11 + if (sp38->unk1 != 0) + { + // Node 12 + if (sp38->unk2 != 0) + { + // Node 14 + *arg1 = (u16)0xffff; + *arg2 = (u8)0xff; + // Node 15 + return; + } + } + // Node 13 + *arg1 = (s16) ((sp30 << 0xf) | temp_ret); + *arg2 = (s8) ((temp_v1_2 * 8) | phi_v1); + return; +} +#else +GLOBAL_ASM( +.text +glabel stanConvertNameStringToS32 +/* 0E7880 7F0B2D50 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0E7884 7F0B2D54 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E7888 7F0B2D58 AFA50044 */ sw $a1, 0x44($sp) +/* 0E788C 7F0B2D5C AFA60048 */ sw $a2, 0x48($sp) +/* 0E7890 7F0B2D60 90830000 */ lbu $v1, ($a0) +/* 0E7894 7F0B2D64 2463FF90 */ addiu $v1, $v1, -0x70 +/* 0E7898 7F0B2D68 04600031 */ bltz $v1, .L7F0B2E30 +/* 0E789C 7F0B2D6C 28610002 */ slti $at, $v1, 2 +/* 0E78A0 7F0B2D70 1020002F */ beqz $at, .L7F0B2E30 +/* 0E78A4 7F0B2D74 24840001 */ addiu $a0, $a0, 1 +/* 0E78A8 7F0B2D78 AFA30030 */ sw $v1, 0x30($sp) +/* 0E78AC 7F0B2D7C 27A50038 */ addiu $a1, $sp, 0x38 +/* 0E78B0 7F0B2D80 2406000A */ li $a2, 10 +/* 0E78B4 7F0B2D84 0C002A78 */ jal strtol +/* 0E78B8 7F0B2D88 AFA4001C */ sw $a0, 0x1c($sp) +/* 0E78BC 7F0B2D8C 8FA4001C */ lw $a0, 0x1c($sp) +/* 0E78C0 7F0B2D90 8FAE0038 */ lw $t6, 0x38($sp) +/* 0E78C4 7F0B2D94 34018000 */ li $at, 32768 +/* 0E78C8 7F0B2D98 0041082B */ sltu $at, $v0, $at +/* 0E78CC 7F0B2D9C 51C40025 */ beql $t6, $a0, .L7F0B2E34 +/* 0E78D0 7F0B2DA0 8FB90044 */ lw $t9, 0x44($sp) +/* 0E78D4 7F0B2DA4 10200022 */ beqz $at, .L7F0B2E30 +/* 0E78D8 7F0B2DA8 8FAF0038 */ lw $t7, 0x38($sp) +/* 0E78DC 7F0B2DAC 91E30000 */ lbu $v1, ($t7) +/* 0E78E0 7F0B2DB0 2463FF9F */ addiu $v1, $v1, -0x61 +/* 0E78E4 7F0B2DB4 0460001E */ bltz $v1, .L7F0B2E30 +/* 0E78E8 7F0B2DB8 2861001A */ slti $at, $v1, 0x1a +/* 0E78EC 7F0B2DBC 1020001C */ beqz $at, .L7F0B2E30 +/* 0E78F0 7F0B2DC0 8FB80038 */ lw $t8, 0x38($sp) +/* 0E78F4 7F0B2DC4 93040001 */ lbu $a0, 1($t8) +/* 0E78F8 7F0B2DC8 00602825 */ move $a1, $v1 +/* 0E78FC 7F0B2DCC 24010030 */ li $at, 48 +/* 0E7900 7F0B2DD0 10800004 */ beqz $a0, .L7F0B2DE4 +/* 0E7904 7F0B2DD4 00801825 */ move $v1, $a0 +/* 0E7908 7F0B2DD8 10610002 */ beq $v1, $at, .L7F0B2DE4 +/* 0E790C 7F0B2DDC 00000000 */ nop +/* 0E7910 7F0B2DE0 2463FFD0 */ addiu $v1, $v1, -0x30 +.L7F0B2DE4: +/* 0E7914 7F0B2DE4 04600012 */ bltz $v1, .L7F0B2E30 +/* 0E7918 7F0B2DE8 28610008 */ slti $at, $v1, 8 +/* 0E791C 7F0B2DEC 50200011 */ beql $at, $zero, .L7F0B2E34 +/* 0E7920 7F0B2DF0 8FB90044 */ lw $t9, 0x44($sp) +/* 0E7924 7F0B2DF4 10800004 */ beqz $a0, .L7F0B2E08 +/* 0E7928 7F0B2DF8 8FB90038 */ lw $t9, 0x38($sp) +/* 0E792C 7F0B2DFC 93280002 */ lbu $t0, 2($t9) +/* 0E7930 7F0B2E00 5500000C */ bnezl $t0, .L7F0B2E34 +/* 0E7934 7F0B2E04 8FB90044 */ lw $t9, 0x44($sp) +.L7F0B2E08: +/* 0E7938 7F0B2E08 8FA90030 */ lw $t1, 0x30($sp) +/* 0E793C 7F0B2E0C 8FAC0044 */ lw $t4, 0x44($sp) +/* 0E7940 7F0B2E10 000568C0 */ sll $t5, $a1, 3 +/* 0E7944 7F0B2E14 000953C0 */ sll $t2, $t1, 0xf +/* 0E7948 7F0B2E18 01425825 */ or $t3, $t2, $v0 +/* 0E794C 7F0B2E1C A58B0000 */ sh $t3, ($t4) +/* 0E7950 7F0B2E20 8FAF0048 */ lw $t7, 0x48($sp) +/* 0E7954 7F0B2E24 01A37025 */ or $t6, $t5, $v1 +/* 0E7958 7F0B2E28 10000007 */ b .L7F0B2E48 +/* 0E795C 7F0B2E2C A1EE0000 */ sb $t6, ($t7) +.L7F0B2E30: +/* 0E7960 7F0B2E30 8FB90044 */ lw $t9, 0x44($sp) +.L7F0B2E34: +/* 0E7964 7F0B2E34 3418FFFF */ li $t8, 65535 +/* 0E7968 7F0B2E38 240800FF */ li $t0, 255 +/* 0E796C 7F0B2E3C A7380000 */ sh $t8, ($t9) +/* 0E7970 7F0B2E40 8FA90048 */ lw $t1, 0x48($sp) +/* 0E7974 7F0B2E44 A1280000 */ sb $t0, ($t1) +.L7F0B2E48: +/* 0E7978 7F0B2E48 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E797C 7F0B2E4C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0E7980 7F0B2E50 03E00008 */ jr $ra +/* 0E7984 7F0B2E54 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void stanMatchTileName(void) { + +} +#else +GLOBAL_ASM( +.text +glabel stanMatchTileName +/* 0E7988 7F0B2E58 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0E798C 7F0B2E5C AFBF0014 */ sw $ra, 0x14($sp) +/* 0E7990 7F0B2E60 908E0000 */ lbu $t6, ($a0) +/* 0E7994 7F0B2E64 27A50022 */ addiu $a1, $sp, 0x22 +/* 0E7998 7F0B2E68 15C00003 */ bnez $t6, .L7F0B2E78 +/* 0E799C 7F0B2E6C 00000000 */ nop +/* 0E79A0 7F0B2E70 1000001F */ b .L7F0B2EF0 +/* 0E79A4 7F0B2E74 00001025 */ move $v0, $zero +.L7F0B2E78: +/* 0E79A8 7F0B2E78 0FC2CB54 */ jal stanConvertNameStringToS32 +/* 0E79AC 7F0B2E7C 27A60021 */ addiu $a2, $sp, 0x21 +/* 0E79B0 7F0B2E80 3C0F8008 */ lui $t7, %hi(clippingfile) +/* 0E79B4 7F0B2E84 8DEFB120 */ lw $t7, %lo(clippingfile)($t7) +/* 0E79B8 7F0B2E88 3C058004 */ lui $a1, %hi(list_of_tilesizes) +/* 0E79BC 7F0B2E8C 24A50F4C */ addiu $a1, %lo(list_of_tilesizes) # addiu $a1, $a1, 0xf4c +/* 0E79C0 7F0B2E90 8DE30004 */ lw $v1, 4($t7) +/* 0E79C4 7F0B2E94 97A40022 */ lhu $a0, 0x22($sp) +/* 0E79C8 7F0B2E98 8C780000 */ lw $t8, ($v1) +/* 0E79CC 7F0B2E9C 53000014 */ beql $t8, $zero, .L7F0B2EF0 +/* 0E79D0 7F0B2EA0 00001025 */ move $v0, $zero +/* 0E79D4 7F0B2EA4 94790000 */ lhu $t9, ($v1) +.L7F0B2EA8: +/* 0E79D8 7F0B2EA8 93A80021 */ lbu $t0, 0x21($sp) +/* 0E79DC 7F0B2EAC 54990007 */ bnel $a0, $t9, .L7F0B2ECC +/* 0E79E0 7F0B2EB0 84620006 */ lh $v0, 6($v1) +/* 0E79E4 7F0B2EB4 90690002 */ lbu $t1, 2($v1) +/* 0E79E8 7F0B2EB8 55090004 */ bnel $t0, $t1, .L7F0B2ECC +/* 0E79EC 7F0B2EBC 84620006 */ lh $v0, 6($v1) +/* 0E79F0 7F0B2EC0 1000000B */ b .L7F0B2EF0 +/* 0E79F4 7F0B2EC4 00601025 */ move $v0, $v1 +/* 0E79F8 7F0B2EC8 84620006 */ lh $v0, 6($v1) +.L7F0B2ECC: +/* 0E79FC 7F0B2ECC 00025303 */ sra $t2, $v0, 0xc +/* 0E7A00 7F0B2ED0 314B000F */ andi $t3, $t2, 0xf +/* 0E7A04 7F0B2ED4 00AB6021 */ addu $t4, $a1, $t3 +/* 0E7A08 7F0B2ED8 918D0000 */ lbu $t5, ($t4) +/* 0E7A0C 7F0B2EDC 01A31821 */ addu $v1, $t5, $v1 +/* 0E7A10 7F0B2EE0 8C6E0000 */ lw $t6, ($v1) +/* 0E7A14 7F0B2EE4 55C0FFF0 */ bnezl $t6, .L7F0B2EA8 +/* 0E7A18 7F0B2EE8 94790000 */ lhu $t9, ($v1) +/* 0E7A1C 7F0B2EEC 00001025 */ move $v0, $zero +.L7F0B2EF0: +/* 0E7A20 7F0B2EF0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E7A24 7F0B2EF4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0E7A28 7F0B2EF8 03E00008 */ jr $ra +/* 0E7A2C 7F0B2EFC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2F00(void *arg0) { + ? temp_ret; + + // Node 0 + temp_ret = stanMatchTileName(*arg0); + *arg0 = temp_ret; + return temp_ret; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2F00 +/* 0E7A30 7F0B2F00 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E7A34 7F0B2F04 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E7A38 7F0B2F08 AFA40018 */ sw $a0, 0x18($sp) +/* 0E7A3C 7F0B2F0C 0FC2CB96 */ jal stanMatchTileName +/* 0E7A40 7F0B2F10 8C840000 */ lw $a0, ($a0) +/* 0E7A44 7F0B2F14 8FAF0018 */ lw $t7, 0x18($sp) +/* 0E7A48 7F0B2F18 ADE20000 */ sw $v0, ($t7) +/* 0E7A4C 7F0B2F1C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E7A50 7F0B2F20 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E7A54 7F0B2F24 03E00008 */ jr $ra +/* 0E7A58 7F0B2F28 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void *stanDetermineEOF(void *arg0, s32 arg1, s32 arg2) { + s32 temp_v0; + void *temp_a3; + s32 temp_v1; + void *temp_a3_2; + void *temp_v0_2; + void *temp_v0_3; + s32 phi_v1; + void *phi_a3; + void *phi_a3_2; + void *phi_v0; + + // Node 0 + clippingfile = arg0; + temp_v0 = (arg2 - arg1); + base_ptr_connection_vals = (s32) ((arg0->unk4 + temp_v0) + -0x80); + ptr_firstroom_0 = (s32) (arg0->unk4 + temp_v0); + temp_a3 = (arg0 + 4); + phi_a3_2 = temp_a3; + if (arg0->unk4 != 0) + { + // Node 1 + phi_v1 = *temp_a3; + phi_a3 = temp_a3; +loop_2: + // Node 2 + temp_v1 = phi_a3->unk4; + *phi_a3 = (s32) (phi_v1 + temp_v0); + temp_a3_2 = (phi_a3 + 4); + phi_v1 = temp_v1; + phi_a3 = temp_a3_2; + phi_a3_2 = temp_a3_2; + if (temp_v1 != 0) + { + goto loop_2; + } + } + // Node 3 + temp_v0_2 = (phi_a3_2 + 4); + phi_v0 = temp_v0_2; + if (*temp_v0_2 != 0) + { +loop_4: + // Node 4 + D_80040F60 = (void *) phi_v0; + temp_v0_3 = (*(&list_of_tilesizes + (((s32) phi_v0->unk6 >> 0xc) & 0xf)) + phi_v0); + phi_v0 = temp_v0_3; + if (*temp_v0_3 != 0) + { + goto loop_4; + } + } + // Node 5 + clippingfile = arg0; + return temp_v0_2; +} +#else +GLOBAL_ASM( +.text +glabel stanDetermineEOF +/* 0E7A5C 7F0B2F2C 3C088008 */ lui $t0, %hi(clippingfile) +/* 0E7A60 7F0B2F30 2508B120 */ addiu $t0, %lo(clippingfile) # addiu $t0, $t0, -0x4ee0 +/* 0E7A64 7F0B2F34 AD040000 */ sw $a0, ($t0) +/* 0E7A68 7F0B2F38 8C8E0004 */ lw $t6, 4($a0) +/* 0E7A6C 7F0B2F3C 00C51023 */ subu $v0, $a2, $a1 +/* 0E7A70 7F0B2F40 3C018004 */ lui $at, %hi(base_ptr_connection_vals) +/* 0E7A74 7F0B2F44 01C27821 */ addu $t7, $t6, $v0 +/* 0E7A78 7F0B2F48 25F8FF80 */ addiu $t8, $t7, -0x80 +/* 0E7A7C 7F0B2F4C AC380F58 */ sw $t8, %lo(base_ptr_connection_vals)($at) +/* 0E7A80 7F0B2F50 8C990004 */ lw $t9, 4($a0) +/* 0E7A84 7F0B2F54 3C018004 */ lui $at, %hi(ptr_firstroom_0) +/* 0E7A88 7F0B2F58 3C068004 */ lui $a2, %hi(list_of_tilesizes) +/* 0E7A8C 7F0B2F5C 03224821 */ addu $t1, $t9, $v0 +/* 0E7A90 7F0B2F60 AC290F5C */ sw $t1, %lo(ptr_firstroom_0)($at) +/* 0E7A94 7F0B2F64 8C8A0004 */ lw $t2, 4($a0) +/* 0E7A98 7F0B2F68 24870004 */ addiu $a3, $a0, 4 +/* 0E7A9C 7F0B2F6C 24C60F4C */ addiu $a2, %lo(list_of_tilesizes) # addiu $a2, $a2, 0xf4c +/* 0E7AA0 7F0B2F70 11400008 */ beqz $t2, .L7F0B2F94 +/* 0E7AA4 7F0B2F74 3C058004 */ lui $a1, %hi(D_80040F60) +/* 0E7AA8 7F0B2F78 8CE30000 */ lw $v1, ($a3) +/* 0E7AAC 7F0B2F7C 00625821 */ addu $t3, $v1, $v0 +.L7F0B2F80: +/* 0E7AB0 7F0B2F80 8CE30004 */ lw $v1, 4($a3) +/* 0E7AB4 7F0B2F84 ACEB0000 */ sw $t3, ($a3) +/* 0E7AB8 7F0B2F88 24E70004 */ addiu $a3, $a3, 4 +/* 0E7ABC 7F0B2F8C 5460FFFC */ bnezl $v1, .L7F0B2F80 +/* 0E7AC0 7F0B2F90 00625821 */ addu $t3, $v1, $v0 +.L7F0B2F94: +/* 0E7AC4 7F0B2F94 24E20004 */ addiu $v0, $a3, 4 +/* 0E7AC8 7F0B2F98 8C4C0000 */ lw $t4, ($v0) +/* 0E7ACC 7F0B2F9C 24A50F60 */ addiu $a1, %lo(D_80040F60) # addiu $a1, $a1, 0xf60 +/* 0E7AD0 7F0B2FA0 1180000B */ beqz $t4, .L7F0B2FD0 +/* 0E7AD4 7F0B2FA4 00000000 */ nop +/* 0E7AD8 7F0B2FA8 ACA20000 */ sw $v0, ($a1) +.L7F0B2FAC: +/* 0E7ADC 7F0B2FAC 84430006 */ lh $v1, 6($v0) +/* 0E7AE0 7F0B2FB0 00036B03 */ sra $t5, $v1, 0xc +/* 0E7AE4 7F0B2FB4 31AE000F */ andi $t6, $t5, 0xf +/* 0E7AE8 7F0B2FB8 00CE7821 */ addu $t7, $a2, $t6 +/* 0E7AEC 7F0B2FBC 91F80000 */ lbu $t8, ($t7) +/* 0E7AF0 7F0B2FC0 03021021 */ addu $v0, $t8, $v0 +/* 0E7AF4 7F0B2FC4 8C590000 */ lw $t9, ($v0) +/* 0E7AF8 7F0B2FC8 5720FFF8 */ bnezl $t9, .L7F0B2FAC +/* 0E7AFC 7F0B2FCC ACA20000 */ sw $v0, ($a1) +.L7F0B2FD0: +/* 0E7B00 7F0B2FD0 03E00008 */ jr $ra +/* 0E7B04 7F0B2FD4 AD040000 */ sw $a0, ($t0) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B2FD8(void *arg0) { + return arg0->unk3; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2FD8 +/* 0E7B08 7F0B2FD8 03E00008 */ jr $ra +/* 0E7B0C 7F0B2FDC 90820003 */ lbu $v0, 3($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B2FE0(void *arg0) { + sub_GAME_7F0B4F9C(arg0->unk3); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B2FE0 +/* 0E7B10 7F0B2FE0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E7B14 7F0B2FE4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E7B18 7F0B2FE8 90820003 */ lbu $v0, 3($a0) +/* 0E7B1C 7F0B2FEC 0FC2D3E7 */ jal sub_GAME_7F0B4F9C +/* 0E7B20 7F0B2FF0 00402025 */ move $a0, $v0 +/* 0E7B24 7F0B2FF4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E7B28 7F0B2FF8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E7B2C 7F0B2FFC 03E00008 */ jr $ra +/* 0E7B30 7F0B3000 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B3004(void) { + sub_GAME_7F0B2D14(); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B3004 +/* 0E7B34 7F0B3004 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E7B38 7F0B3008 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E7B3C 7F0B300C 0FC2CB45 */ jal sub_GAME_7F0B2D14 +/* 0E7B40 7F0B3010 00000000 */ nop +/* 0E7B44 7F0B3014 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E7B48 7F0B3018 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E7B4C 7F0B301C 03E00008 */ jr $ra +/* 0E7B50 7F0B3020 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B3024(s32 *ptrdl, s32 *ptrtile, u32 RGBAColor) { + return *ptrdl; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B3024 +/* 0E7B54 7F0B3024 AFA50004 */ sw $a1, 4($sp) +/* 0E7B58 7F0B3028 AFA60008 */ sw $a2, 8($sp) +/* 0E7B5C 7F0B302C 03E00008 */ jr $ra +/* 0E7B60 7F0B3030 00801025 */ move $v0, $a0 +) +#endif + + + + + + +s32 sub_GAME_7F0B3034(s32 arg0) { + return arg0; +} + +s32 sub_GAME_7F0B303C(s32 arg0) { + return arg0; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B3044(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B3044 +/* 0E7B74 7F0B3044 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E7B78 7F0B3048 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E7B7C 7F0B304C 0FC2F5DF */ jal num_microcode_cmds_that_fit +/* 0E7B80 7F0B3050 AFA0001C */ sw $zero, 0x1c($sp) +/* 0E7B84 7F0B3054 28411000 */ slti $at, $v0, 0x1000 +/* 0E7B88 7F0B3058 14200005 */ bnez $at, .L7F0B3070 +/* 0E7B8C 7F0B305C 00000000 */ nop +/* 0E7B90 7F0B3060 0FC2F5E9 */ jal sub_GAME_7F0BD7A4 +/* 0E7B94 7F0B3064 00000000 */ nop +/* 0E7B98 7F0B3068 28411000 */ slti $at, $v0, 0x1000 +/* 0E7B9C 7F0B306C 10200010 */ beqz $at, .L7F0B30B0 +.L7F0B3070: +/* 0E7BA0 7F0B3070 3C048004 */ lui $a0, %hi(D_800413D0) +/* 0E7BA4 7F0B3074 248413D0 */ addiu $a0, %lo(D_800413D0) # addiu $a0, $a0, 0x13d0 +/* 0E7BA8 7F0B3078 8C8E0000 */ lw $t6, ($a0) +/* 0E7BAC 7F0B307C 3C028004 */ lui $v0, %hi(D_800413C0) +/* 0E7BB0 7F0B3080 244213C0 */ addiu $v0, %lo(D_800413C0) # addiu $v0, $v0, 0x13c0 +/* 0E7BB4 7F0B3084 15C0000A */ bnez $t6, .L7F0B30B0 +/* 0E7BB8 7F0B3088 3C018004 */ lui $at, %hi(D_800413C4) +/* 0E7BBC 7F0B308C 44800000 */ mtc1 $zero, $f0 +/* 0E7BC0 7F0B3090 3C0F8004 */ lui $t7, %hi(D_800413CC) +/* 0E7BC4 7F0B3094 24180001 */ li $t8, 1 +/* 0E7BC8 7F0B3098 E4400000 */ swc1 $f0, ($v0) +/* 0E7BCC 7F0B309C 8DEF13CC */ lw $t7, %lo(D_800413CC)($t7) +/* 0E7BD0 7F0B30A0 E42013C4 */ swc1 $f0, %lo(D_800413C4)($at) +/* 0E7BD4 7F0B30A4 3C018004 */ lui $at, %hi(D_800413C8) +/* 0E7BD8 7F0B30A8 AC2F13C8 */ sw $t7, %lo(D_800413C8)($at) +/* 0E7BDC 7F0B30AC AC980000 */ sw $t8, ($a0) +.L7F0B30B0: +/* 0E7BE0 7F0B30B0 3C048004 */ lui $a0, %hi(D_800413D0) +/* 0E7BE4 7F0B30B4 248413D0 */ addiu $a0, %lo(D_800413D0) # addiu $a0, $a0, 0x13d0 +/* 0E7BE8 7F0B30B8 8C990000 */ lw $t9, ($a0) +/* 0E7BEC 7F0B30BC 3C028004 */ lui $v0, %hi(D_800413C0) +/* 0E7BF0 7F0B30C0 3C038004 */ lui $v1, %hi(D_800413CC) +/* 0E7BF4 7F0B30C4 244213C0 */ addiu $v0, %lo(D_800413C0) # addiu $v0, $v0, 0x13c0 +/* 0E7BF8 7F0B30C8 17200011 */ bnez $t9, .L7F0B3110 +/* 0E7BFC 7F0B30CC 8C6313CC */ lw $v1, %lo(D_800413CC)($v1) +/* 0E7C00 7F0B30D0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E7C04 7F0B30D4 44811000 */ mtc1 $at, $f2 +/* 0E7C08 7F0B30D8 3C018004 */ lui $at, %hi(D_800413C4) +/* 0E7C0C 7F0B30DC C42613C4 */ lwc1 $f6, %lo(D_800413C4)($at) +/* 0E7C10 7F0B30E0 C4440000 */ lwc1 $f4, ($v0) +/* 0E7C14 7F0B30E4 46062200 */ add.s $f8, $f4, $f6 +/* 0E7C18 7F0B30E8 E4480000 */ swc1 $f8, ($v0) +/* 0E7C1C 7F0B30EC C4400000 */ lwc1 $f0, ($v0) +/* 0E7C20 7F0B30F0 4600103C */ c.lt.s $f2, $f0 +/* 0E7C24 7F0B30F4 00000000 */ nop +/* 0E7C28 7F0B30F8 45020006 */ bc1fl .L7F0B3114 +/* 0E7C2C 7F0B30FC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E7C30 7F0B3100 46020281 */ sub.s $f10, $f0, $f2 +/* 0E7C34 7F0B3104 24080001 */ li $t0, 1 +/* 0E7C38 7F0B3108 AFA8001C */ sw $t0, 0x1c($sp) +/* 0E7C3C 7F0B310C E44A0000 */ swc1 $f10, ($v0) +.L7F0B3110: +/* 0E7C40 7F0B3110 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0B3114: +/* 0E7C44 7F0B3114 24690001 */ addiu $t1, $v1, 1 +/* 0E7C48 7F0B3118 3C018004 */ lui $at, %hi(D_800413CC) +/* 0E7C4C 7F0B311C 8FA2001C */ lw $v0, 0x1c($sp) +/* 0E7C50 7F0B3120 AC2913CC */ sw $t1, %lo(D_800413CC)($at) +/* 0E7C54 7F0B3124 03E00008 */ jr $ra +/* 0E7C58 7F0B3128 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0B312C(s32 arg0, s32 arg1) { + // Node 0 + return arg0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B312C +/* 0E7C5C 7F0B312C AFA50004 */ sw $a1, 4($sp) +/* 0E7C60 7F0B3130 03E00008 */ jr $ra +/* 0E7C64 7F0B3134 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B3138(s32 arg0, s32 arg1, ? arg2, ? arg3, ? arg4, f32 arg5, ?32 arg6, f32 arg7, f32 arg8) { + // Node 0 + return sub_GAME_7F0B0E24(arg2, arg3, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, 0.0f, 1.0f); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B3138 +/* 0E7C68 7F0B3138 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0E7C6C 7F0B313C 44866000 */ mtc1 $a2, $f12 +/* 0E7C70 7F0B3140 44877000 */ mtc1 $a3, $f14 +/* 0E7C74 7F0B3144 AFA40030 */ sw $a0, 0x30($sp) +/* 0E7C78 7F0B3148 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E7C7C 7F0B314C 44818000 */ mtc1 $at, $f16 +/* 0E7C80 7F0B3150 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0E7C84 7F0B3154 8FAE0048 */ lw $t6, 0x48($sp) +/* 0E7C88 7F0B3158 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 0E7C8C 7F0B315C C7A80050 */ lwc1 $f8, 0x50($sp) +/* 0E7C90 7F0B3160 44805000 */ mtc1 $zero, $f10 +/* 0E7C94 7F0B3164 00A02025 */ move $a0, $a1 +/* 0E7C98 7F0B3168 AFBF002C */ sw $ra, 0x2c($sp) +/* 0E7C9C 7F0B316C 44056000 */ mfc1 $a1, $f12 +/* 0E7CA0 7F0B3170 44067000 */ mfc1 $a2, $f14 +/* 0E7CA4 7F0B3174 8FA70040 */ lw $a3, 0x40($sp) +/* 0E7CA8 7F0B3178 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0E7CAC 7F0B317C E7B00024 */ swc1 $f16, 0x24($sp) +/* 0E7CB0 7F0B3180 AFAE0014 */ sw $t6, 0x14($sp) +/* 0E7CB4 7F0B3184 E7A60018 */ swc1 $f6, 0x18($sp) +/* 0E7CB8 7F0B3188 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 0E7CBC 7F0B318C 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 0E7CC0 7F0B3190 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 0E7CC4 7F0B3194 8FBF002C */ lw $ra, 0x2c($sp) +/* 0E7CC8 7F0B3198 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0E7CCC 7F0B319C 03E00008 */ jr $ra +/* 0E7CD0 7F0B31A0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B31A4(s32 arg0, s32 arg1, ? arg2, ? arg3, ? arg4, ?32 arg5, f32 arg6, f32 arg7) { + // Node 0 + return sub_GAME_7F0B18B8(arg2, arg3, arg1, arg2, arg3, arg4, arg5, arg6, arg7); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B31A4 +/* 0E7CD4 7F0B31A4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0E7CD8 7F0B31A8 44866000 */ mtc1 $a2, $f12 +/* 0E7CDC 7F0B31AC 44877000 */ mtc1 $a3, $f14 +/* 0E7CE0 7F0B31B0 AFA40028 */ sw $a0, 0x28($sp) +/* 0E7CE4 7F0B31B4 8FAE003C */ lw $t6, 0x3c($sp) +/* 0E7CE8 7F0B31B8 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0E7CEC 7F0B31BC C7A60044 */ lwc1 $f6, 0x44($sp) +/* 0E7CF0 7F0B31C0 AFA5002C */ sw $a1, 0x2c($sp) +/* 0E7CF4 7F0B31C4 00A02025 */ move $a0, $a1 +/* 0E7CF8 7F0B31C8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0E7CFC 7F0B31CC 44056000 */ mfc1 $a1, $f12 +/* 0E7D00 7F0B31D0 44067000 */ mfc1 $a2, $f14 +/* 0E7D04 7F0B31D4 8FA70038 */ lw $a3, 0x38($sp) +/* 0E7D08 7F0B31D8 AFAE0010 */ sw $t6, 0x10($sp) +/* 0E7D0C 7F0B31DC E7A40014 */ swc1 $f4, 0x14($sp) +/* 0E7D10 7F0B31E0 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 0E7D14 7F0B31E4 E7A60018 */ swc1 $f6, 0x18($sp) +/* 0E7D18 7F0B31E8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0E7D1C 7F0B31EC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0E7D20 7F0B31F0 03E00008 */ jr $ra +/* 0E7D24 7F0B31F4 00000000 */ nop +) +#endif + + diff --git a/src/game/stan.h b/src/game/stan.h new file mode 100644 index 0000000..f758b23 --- /dev/null +++ b/src/game/stan.h @@ -0,0 +1,7 @@ +#ifndef _STAN_H_ +#define _STAN_H_ +#include "ultra64.h" + +void stanInitDebugNoticeList(void); + +#endif diff --git a/src/game/textrelated.c b/src/game/textrelated.c new file mode 100644 index 0000000..9083962 --- /dev/null +++ b/src/game/textrelated.c @@ -0,0 +1,3187 @@ +#include "ultra64.h" + + +// data +s32 D_80040E80 = 0; +s32 text_spacing = 0; +s32 text_orientation = 0; +s32 text_wordwrap = 0; +s32 overlap_correction = -1; +s32 text_bilevel_filter = 0; +s32 text_x = 0; +s32 text_y = 0; +s32 text_s = 0; +s32 text_t = 0; +s32 D_80040EA8 = 0; +s32 ptrFirstFontTableSmall = 0; +s32 ptrSecondFontTableSmall = 0; +s32 ptrFirstFontTableLarge = 0; +s32 ptrSecondFontTableLarge = 0; + +u16 D_80040EBC[] = { + 0x0000, 0x5555, 0xaaaa, 0xffff, + 0x0000, 0x5555, 0xaaaa, 0xffff, + 0x0000, 0x5555, 0xaaaa, 0xffff, + 0x0000, 0x5555, 0xaaaa, 0xffff +}; +u32 D_80040EDC = 0; +u32 D_80040EE0 = 0; + +u32 D_80040EE4[] = { + 0x55555555, 0x55555555, + 0xAAAAAAAA, 0xAAAAAAAA, + 0xFFFFFFFF, 0xFFFFFFFF +}; +u32 D_80040EFC = 0; +u32 D_80040F00 = 0; + + +s32 D_80040F04 = 0xC; +s32 D_80040F08 = 0xB; +s32 D_80040F0C = 0; +s32 D_80040F10 = 0; +s32 D_80040F14 = 0; +s32 D_80040F18 = 0; +s32 D_80040F1C = 0xC; +s32 D_80040F20 = 0xB; +s32 D_80040F24 = 0; +s32 D_80040F28 = 0; + + + +void textrelatedInit_REMOVED(void) { + +} + +void setTextSpacingInverted(s32 spacing) { + text_spacing = -spacing; +} + +void setTextOrientation(s32 orientation) { + text_orientation = orientation; +} + +void setTextWordWrap(s32 flag) { + text_wordwrap = flag; +} + +void setTextOverlapCorrection(s32 flag) { + overlap_correction = flag; +} + + + + + + +#ifdef NONMATCHING +void load_font_tables(void) +{ + s32 sp1C; + s32 MACROSIZE; + s32 MACROSIZE; + s32 temp_ret; + s32 temp_ret_2; + s32 i_next; + s32 temp_v1_2; + void *temp_v0; + void *temp_v0_2; + void *temp_v0_3; + void *temp_v0_4; + void *temp_v0_5; + s32 i; + s32 phi_v1_2; + + text_spacing = 0; + text_orientation = 0; + text_wordwrap = 0; + overlap_correction = -1; + text_bilevel_filter = 0; + text_x = 0; + text_y = 0; + text_s = 0; + MACROSIZE = 0x24b0 - 0; + text_t = 0; + ptrFirstFontTableSmall = mempAllocBytesInBank(MACROSIZE, 4); + ptrSecondFontTableSmall = (s32) (ptrFirstFontTableSmall + 0x2a4); + romCopy(&ptrFirstFontTableSmall, &_fonttablectlsmall1SegmentRomStart, MACROSIZE); + i = 0; +loop_1: + temp_v0 = ptrSecondFontTableSmall + i; + i_next = i + 0x18; + temp_v0->unk14 = (s32) (temp_v0->unk14 + ptrFirstFontTableSmall); + i = i_next; + if (i_next < 0x8d0) + { + goto loop_1; + } + MACROSIZE = 0x3540 - 0; + ptrFirstFontTableLarge = mempAllocBytesInBank(MACROSIZE, 4); + ptrSecondFontTableLarge = (s32) (ptrFirstFontTableLarge + 0x2a4); + romCopy(&ptrFirstFontTableLarge, &_fonttablectllarge1SegmentRomStart, MACROSIZE); + ptrSecondFontTableLarge->unk14 = (s32) (ptrSecondFontTableLarge->unk14 + ptrFirstFontTableLarge); + ptrSecondFontTableLarge->unk2C = (s32) (ptrSecondFontTableLarge->unk2C + ptrFirstFontTableLarge); + phi_v1_2 = 0x30; +loop_3: + temp_v0_2 = ptrSecondFontTableLarge + phi_v1_2; + temp_v0_2->unk14 = (s32) (temp_v0_2->unk14 + ptrFirstFontTableLarge); + temp_v0_3 = ptrSecondFontTableLarge + phi_v1_2; + temp_v0_3->unk2C = (s32) (temp_v0_3->unk2C + ptrFirstFontTableLarge); + temp_v0_4 = ptrSecondFontTableLarge + phi_v1_2; + temp_v0_4->unk44 = (s32) (temp_v0_4->unk44 + ptrFirstFontTableLarge); + temp_v0_5 = ptrSecondFontTableLarge + phi_v1_2; + temp_v1_2 = phi_v1_2 + 0x60; + temp_v0_5->unk5C = (s32) (temp_v0_5->unk5C + ptrFirstFontTableLarge); + phi_v1_2 = temp_v1_2; + if (temp_v1_2 != 0x8d0) + { + goto loop_3; + } +} +#else +GLOBAL_ASM( +.text +glabel load_font_tables +/* 0E16DC 7F0ACBAC 3C018004 */ lui $at, %hi(text_spacing) +/* 0E16E0 7F0ACBB0 AC200E84 */ sw $zero, %lo(text_spacing)($at) +/* 0E16E4 7F0ACBB4 3C018004 */ lui $at, %hi(text_orientation) +/* 0E16E8 7F0ACBB8 AC200E88 */ sw $zero, %lo(text_orientation)($at) +/* 0E16EC 7F0ACBBC 3C018004 */ lui $at, %hi(text_wordwrap) +/* 0E16F0 7F0ACBC0 AC200E8C */ sw $zero, %lo(text_wordwrap)($at) +/* 0E16F4 7F0ACBC4 3C018004 */ lui $at, %hi(overlap_correction) +/* 0E16F8 7F0ACBC8 240EFFFF */ li $t6, -1 +/* 0E16FC 7F0ACBCC AC2E0E90 */ sw $t6, %lo(overlap_correction)($at) +/* 0E1700 7F0ACBD0 3C018004 */ lui $at, %hi(text_bilevel_filter) +/* 0E1704 7F0ACBD4 AC200E94 */ sw $zero, %lo(text_bilevel_filter)($at) +/* 0E1708 7F0ACBD8 3C018004 */ lui $at, %hi(text_x) +/* 0E170C 7F0ACBDC AC200E98 */ sw $zero, %lo(text_x)($at) +/* 0E1710 7F0ACBE0 3C018004 */ lui $at, %hi(text_y) +/* 0E1714 7F0ACBE4 AC200E9C */ sw $zero, %lo(text_y)($at) +/* 0E1718 7F0ACBE8 3C018004 */ lui $at, %hi(text_s) +/* 0E171C 7F0ACBEC 3C0F0000 */ lui $t7, %hi(0x000024B0) # $t7, 0 +/* 0E1720 7F0ACBF0 3C180000 */ lui $t8, 0 +/* 0E1724 7F0ACBF4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0E1728 7F0ACBF8 AC200EA0 */ sw $zero, %lo(text_s)($at) +/* 0E172C 7F0ACBFC 27180000 */ addiu $t8, $t8, 0 +/* 0E1730 7F0ACC00 25EF24B0 */ addiu $t7, %lo(0x000024B0) # addiu $t7, $t7, 0x24b0 +/* 0E1734 7F0ACC04 AFBF0014 */ sw $ra, 0x14($sp) +/* 0E1738 7F0ACC08 3C018004 */ lui $at, %hi(text_t) +/* 0E173C 7F0ACC0C 01F83023 */ subu $a2, $t7, $t8 +/* 0E1740 7F0ACC10 AC200EA4 */ sw $zero, %lo(text_t)($at) +/* 0E1744 7F0ACC14 00C02025 */ move $a0, $a2 +/* 0E1748 7F0ACC18 AFA6001C */ sw $a2, 0x1c($sp) +/* 0E174C 7F0ACC1C 0C0025C8 */ jal mempAllocBytesInBank +/* 0E1750 7F0ACC20 24050004 */ li $a1, 4 +/* 0E1754 7F0ACC24 3C078004 */ lui $a3, %hi(ptrFirstFontTableSmall) +/* 0E1758 7F0ACC28 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall) +/* 0E175C 7F0ACC2C 25080EB0 */ addiu $t0, %lo(ptrSecondFontTableSmall) # addiu $t0, $t0, 0xeb0 +/* 0E1760 7F0ACC30 24E70EAC */ addiu $a3, %lo(ptrFirstFontTableSmall) # addiu $a3, $a3, 0xeac +/* 0E1764 7F0ACC34 245902A4 */ addiu $t9, $v0, 0x2a4 +/* 0E1768 7F0ACC38 3C05002E */ lui $a1, %hi(_fonttablectlsmall1SegmentRomStart) # $a1, 0x2e +/* 0E176C 7F0ACC3C ACE20000 */ sw $v0, ($a3) +/* 0E1770 7F0ACC40 8FA6001C */ lw $a2, 0x1c($sp) +/* 0E1774 7F0ACC44 AD190000 */ sw $t9, ($t0) +/* 0E1778 7F0ACC48 00402025 */ move $a0, $v0 +/* 0E177C 7F0ACC4C 0C001707 */ jal romCopy +/* 0E1780 7F0ACC50 24A563F0 */ addiu $a1, %lo(_fonttablectlsmall1SegmentRomStart) # addiu $a1, $a1, 0x63f0 +/* 0E1784 7F0ACC54 3C078004 */ lui $a3, %hi(ptrFirstFontTableSmall) +/* 0E1788 7F0ACC58 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall) +/* 0E178C 7F0ACC5C 25080EB0 */ addiu $t0, %lo(ptrSecondFontTableSmall) # addiu $t0, $t0, 0xeb0 +/* 0E1790 7F0ACC60 24E70EAC */ addiu $a3, %lo(ptrFirstFontTableSmall) # addiu $a3, $a3, 0xeac +/* 0E1794 7F0ACC64 00001825 */ move $v1, $zero +.L7F0ACC68: +/* 0E1798 7F0ACC68 8D090000 */ lw $t1, ($t0) +/* 0E179C 7F0ACC6C 8CEB0000 */ lw $t3, ($a3) +/* 0E17A0 7F0ACC70 01231021 */ addu $v0, $t1, $v1 +/* 0E17A4 7F0ACC74 8C4A0014 */ lw $t2, 0x14($v0) +/* 0E17A8 7F0ACC78 24630018 */ addiu $v1, $v1, 0x18 +/* 0E17AC 7F0ACC7C 286108D0 */ slti $at, $v1, 0x8d0 +/* 0E17B0 7F0ACC80 014B6021 */ addu $t4, $t2, $t3 +/* 0E17B4 7F0ACC84 1420FFF8 */ bnez $at, .L7F0ACC68 +/* 0E17B8 7F0ACC88 AC4C0014 */ sw $t4, 0x14($v0) +/* 0E17BC 7F0ACC8C 3C0D0000 */ lui $t5, %hi(0x00003540) # $t5, 0 +/* 0E17C0 7F0ACC90 3C0E0000 */ lui $t6, 0 +/* 0E17C4 7F0ACC94 25CE0000 */ addiu $t6, $t6, 0 +/* 0E17C8 7F0ACC98 25AD3540 */ addiu $t5, %lo(0x00003540) # addiu $t5, $t5, 0x3540 +/* 0E17CC 7F0ACC9C 01AE3023 */ subu $a2, $t5, $t6 +/* 0E17D0 7F0ACCA0 00C02025 */ move $a0, $a2 +/* 0E17D4 7F0ACCA4 AFA6001C */ sw $a2, 0x1c($sp) +/* 0E17D8 7F0ACCA8 0C0025C8 */ jal mempAllocBytesInBank +/* 0E17DC 7F0ACCAC 24050004 */ li $a1, 4 +/* 0E17E0 7F0ACCB0 3C078004 */ lui $a3, %hi(ptrFirstFontTableLarge) +/* 0E17E4 7F0ACCB4 3C088004 */ lui $t0, %hi(ptrSecondFontTableLarge) +/* 0E17E8 7F0ACCB8 25080EB8 */ addiu $t0, %lo(ptrSecondFontTableLarge) # addiu $t0, $t0, 0xeb8 +/* 0E17EC 7F0ACCBC 24E70EB4 */ addiu $a3, %lo(ptrFirstFontTableLarge) # addiu $a3, $a3, 0xeb4 +/* 0E17F0 7F0ACCC0 244F02A4 */ addiu $t7, $v0, 0x2a4 +/* 0E17F4 7F0ACCC4 3C05002F */ lui $a1, %hi(_fonttablectllarge1SegmentRomStart) # $a1, 0x2f +/* 0E17F8 7F0ACCC8 ACE20000 */ sw $v0, ($a3) +/* 0E17FC 7F0ACCCC 8FA6001C */ lw $a2, 0x1c($sp) +/* 0E1800 7F0ACCD0 AD0F0000 */ sw $t7, ($t0) +/* 0E1804 7F0ACCD4 00402025 */ move $a0, $v0 +/* 0E1808 7F0ACCD8 0C001707 */ jal romCopy +/* 0E180C 7F0ACCDC 24A588A0 */ addiu $a1, %lo(_fonttablectllarge1SegmentRomStart) # addiu $a1, $a1, -0x7760 +/* 0E1810 7F0ACCE0 3C088004 */ lui $t0, %hi(ptrSecondFontTableLarge) +/* 0E1814 7F0ACCE4 25080EB8 */ addiu $t0, %lo(ptrSecondFontTableLarge) # addiu $t0, $t0, 0xeb8 +/* 0E1818 7F0ACCE8 8D020000 */ lw $v0, ($t0) +/* 0E181C 7F0ACCEC 3C078004 */ lui $a3, %hi(ptrFirstFontTableLarge) +/* 0E1820 7F0ACCF0 24E70EB4 */ addiu $a3, %lo(ptrFirstFontTableLarge) # addiu $a3, $a3, 0xeb4 +/* 0E1824 7F0ACCF4 8CF90000 */ lw $t9, ($a3) +/* 0E1828 7F0ACCF8 8C580014 */ lw $t8, 0x14($v0) +/* 0E182C 7F0ACCFC 24030030 */ li $v1, 48 +/* 0E1830 7F0ACD00 240408D0 */ li $a0, 2256 +/* 0E1834 7F0ACD04 03194821 */ addu $t1, $t8, $t9 +/* 0E1838 7F0ACD08 AC490014 */ sw $t1, 0x14($v0) +/* 0E183C 7F0ACD0C 8D020000 */ lw $v0, ($t0) +/* 0E1840 7F0ACD10 8CEB0000 */ lw $t3, ($a3) +/* 0E1844 7F0ACD14 8C4A002C */ lw $t2, 0x2c($v0) +/* 0E1848 7F0ACD18 014B6021 */ addu $t4, $t2, $t3 +/* 0E184C 7F0ACD1C AC4C002C */ sw $t4, 0x2c($v0) +.L7F0ACD20: +/* 0E1850 7F0ACD20 8D0D0000 */ lw $t5, ($t0) +/* 0E1854 7F0ACD24 8CEF0000 */ lw $t7, ($a3) +/* 0E1858 7F0ACD28 01A31021 */ addu $v0, $t5, $v1 +/* 0E185C 7F0ACD2C 8C4E0014 */ lw $t6, 0x14($v0) +/* 0E1860 7F0ACD30 01CFC021 */ addu $t8, $t6, $t7 +/* 0E1864 7F0ACD34 AC580014 */ sw $t8, 0x14($v0) +/* 0E1868 7F0ACD38 8D190000 */ lw $t9, ($t0) +/* 0E186C 7F0ACD3C 8CEA0000 */ lw $t2, ($a3) +/* 0E1870 7F0ACD40 03231021 */ addu $v0, $t9, $v1 +/* 0E1874 7F0ACD44 8C49002C */ lw $t1, 0x2c($v0) +/* 0E1878 7F0ACD48 012A5821 */ addu $t3, $t1, $t2 +/* 0E187C 7F0ACD4C AC4B002C */ sw $t3, 0x2c($v0) +/* 0E1880 7F0ACD50 8D0C0000 */ lw $t4, ($t0) +/* 0E1884 7F0ACD54 8CEE0000 */ lw $t6, ($a3) +/* 0E1888 7F0ACD58 01831021 */ addu $v0, $t4, $v1 +/* 0E188C 7F0ACD5C 8C4D0044 */ lw $t5, 0x44($v0) +/* 0E1890 7F0ACD60 01AE7821 */ addu $t7, $t5, $t6 +/* 0E1894 7F0ACD64 AC4F0044 */ sw $t7, 0x44($v0) +/* 0E1898 7F0ACD68 8D180000 */ lw $t8, ($t0) +/* 0E189C 7F0ACD6C 8CE90000 */ lw $t1, ($a3) +/* 0E18A0 7F0ACD70 03031021 */ addu $v0, $t8, $v1 +/* 0E18A4 7F0ACD74 8C59005C */ lw $t9, 0x5c($v0) +/* 0E18A8 7F0ACD78 24630060 */ addiu $v1, $v1, 0x60 +/* 0E18AC 7F0ACD7C 03295021 */ addu $t2, $t9, $t1 +/* 0E18B0 7F0ACD80 1464FFE7 */ bne $v1, $a0, .L7F0ACD20 +/* 0E18B4 7F0ACD84 AC4A005C */ sw $t2, 0x5c($v0) +/* 0E18B8 7F0ACD88 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E18BC 7F0ACD8C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0E18C0 7F0ACD90 03E00008 */ jr $ra +/* 0E18C4 7F0ACD94 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void microcode_constructor(u32 *DL) + +{ + DL[0] = 0xe7000000; //rdp_pipesync + DL[1] = 0; + DL[2] = 0xba001402; //rsp_uc05_setothermode_h + DL[3] = 0; + DL[5] = 0xc0; + DL[4] = 0xba000602; //rsp_uc05_setothermode_h + DL[6] = 0xb900031d; //rsp_uc05_setothermode_l + DL[7] = 0x5041c8; + DL[8] = 0xfcff97ff; //rdp_setcombine + DL[9] = 0xff2dfeff; //rdp_setcolourimage + DL[10] = 0xba001301; //rsp_uc05_setothermode_h + DL[0xb] = 0; + DL[0xc] = 0xb9000002; //rsp_uc05_setothermode_l + DL[0xd] = 0; + DL[0xe] = 0xba001001; //rsp_uc05_setothermode_h + DL[0xf] = 0; + DL[0x11] = 0xc00; + DL[0x10] = 0xba000903; //rsp_uc05_setothermode_h + DL[0x12] = 0xba000e02; //rsp_uc05_setothermode_h + DL[0x13] = 0; + if (text_bilevel_filter != 0) { + DL[0x15] = 0x3000; + DL[0x14] = 0xba000c02; //rsp_uc05_setothermode_h + return; + } + DL[0x15] = 0x2000; + DL[0x14] = 0xba000c02; //rsp_uc05_setothermode_h + return; +} +#else +GLOBAL_ASM( +.text +glabel microcode_constructor +/* 0E18C8 7F0ACD98 00801025 */ move $v0, $a0 +/* 0E18CC 7F0ACD9C 24840008 */ addiu $a0, $a0, 8 +/* 0E18D0 7F0ACDA0 3C0EE700 */ lui $t6, 0xe700 +/* 0E18D4 7F0ACDA4 AC4E0000 */ sw $t6, ($v0) +/* 0E18D8 7F0ACDA8 AC400004 */ sw $zero, 4($v0) +/* 0E18DC 7F0ACDAC 00801825 */ move $v1, $a0 +/* 0E18E0 7F0ACDB0 24840008 */ addiu $a0, $a0, 8 +/* 0E18E4 7F0ACDB4 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00 +/* 0E18E8 7F0ACDB8 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402 +/* 0E18EC 7F0ACDBC 00802825 */ move $a1, $a0 +/* 0E18F0 7F0ACDC0 AC6F0000 */ sw $t7, ($v1) +/* 0E18F4 7F0ACDC4 AC600004 */ sw $zero, 4($v1) +/* 0E18F8 7F0ACDC8 24840008 */ addiu $a0, $a0, 8 +/* 0E18FC 7F0ACDCC 3C18BA00 */ lui $t8, (0xBA000602 >> 16) # lui $t8, 0xba00 +/* 0E1900 7F0ACDD0 37180602 */ ori $t8, (0xBA000602 & 0xFFFF) # ori $t8, $t8, 0x602 +/* 0E1904 7F0ACDD4 241900C0 */ li $t9, 192 +/* 0E1908 7F0ACDD8 00803025 */ move $a2, $a0 +/* 0E190C 7F0ACDDC ACB90004 */ sw $t9, 4($a1) +/* 0E1910 7F0ACDE0 ACB80000 */ sw $t8, ($a1) +/* 0E1914 7F0ACDE4 24840008 */ addiu $a0, $a0, 8 +/* 0E1918 7F0ACDE8 3C08B900 */ lui $t0, (0xB900031D >> 16) # lui $t0, 0xb900 +/* 0E191C 7F0ACDEC 3C090050 */ lui $t1, (0x005041C8 >> 16) # lui $t1, 0x50 +/* 0E1920 7F0ACDF0 352941C8 */ ori $t1, (0x005041C8 & 0xFFFF) # ori $t1, $t1, 0x41c8 +/* 0E1924 7F0ACDF4 3508031D */ ori $t0, (0xB900031D & 0xFFFF) # ori $t0, $t0, 0x31d +/* 0E1928 7F0ACDF8 00803825 */ move $a3, $a0 +/* 0E192C 7F0ACDFC ACC80000 */ sw $t0, ($a2) +/* 0E1930 7F0ACE00 ACC90004 */ sw $t1, 4($a2) +/* 0E1934 7F0ACE04 3C0AFCFF */ lui $t2, (0xFCFF97FF >> 16) # lui $t2, 0xfcff +/* 0E1938 7F0ACE08 3C0BFF2D */ lui $t3, (0xFF2DFEFF >> 16) # lui $t3, 0xff2d +/* 0E193C 7F0ACE0C 356BFEFF */ ori $t3, (0xFF2DFEFF & 0xFFFF) # ori $t3, $t3, 0xfeff +/* 0E1940 7F0ACE10 354A97FF */ ori $t2, (0xFCFF97FF & 0xFFFF) # ori $t2, $t2, 0x97ff +/* 0E1944 7F0ACE14 24840008 */ addiu $a0, $a0, 8 +/* 0E1948 7F0ACE18 ACEA0000 */ sw $t2, ($a3) +/* 0E194C 7F0ACE1C ACEB0004 */ sw $t3, 4($a3) +/* 0E1950 7F0ACE20 00801025 */ move $v0, $a0 +/* 0E1954 7F0ACE24 24840008 */ addiu $a0, $a0, 8 +/* 0E1958 7F0ACE28 3C0CBA00 */ lui $t4, (0xBA001301 >> 16) # lui $t4, 0xba00 +/* 0E195C 7F0ACE2C 358C1301 */ ori $t4, (0xBA001301 & 0xFFFF) # ori $t4, $t4, 0x1301 +/* 0E1960 7F0ACE30 00801825 */ move $v1, $a0 +/* 0E1964 7F0ACE34 AC4C0000 */ sw $t4, ($v0) +/* 0E1968 7F0ACE38 AC400004 */ sw $zero, 4($v0) +/* 0E196C 7F0ACE3C 24840008 */ addiu $a0, $a0, 8 +/* 0E1970 7F0ACE40 3C0DB900 */ lui $t5, (0xB9000002 >> 16) # lui $t5, 0xb900 +/* 0E1974 7F0ACE44 35AD0002 */ ori $t5, (0xB9000002 & 0xFFFF) # ori $t5, $t5, 2 +/* 0E1978 7F0ACE48 00802825 */ move $a1, $a0 +/* 0E197C 7F0ACE4C AC6D0000 */ sw $t5, ($v1) +/* 0E1980 7F0ACE50 AC600004 */ sw $zero, 4($v1) +/* 0E1984 7F0ACE54 24840008 */ addiu $a0, $a0, 8 +/* 0E1988 7F0ACE58 3C0EBA00 */ lui $t6, (0xBA001001 >> 16) # lui $t6, 0xba00 +/* 0E198C 7F0ACE5C 35CE1001 */ ori $t6, (0xBA001001 & 0xFFFF) # ori $t6, $t6, 0x1001 +/* 0E1990 7F0ACE60 00803025 */ move $a2, $a0 +/* 0E1994 7F0ACE64 ACAE0000 */ sw $t6, ($a1) +/* 0E1998 7F0ACE68 ACA00004 */ sw $zero, 4($a1) +/* 0E199C 7F0ACE6C 3C0FBA00 */ lui $t7, (0xBA000903 >> 16) # lui $t7, 0xba00 +/* 0E19A0 7F0ACE70 35EF0903 */ ori $t7, (0xBA000903 & 0xFFFF) # ori $t7, $t7, 0x903 +/* 0E19A4 7F0ACE74 24840008 */ addiu $a0, $a0, 8 +/* 0E19A8 7F0ACE78 24180C00 */ li $t8, 3072 +/* 0E19AC 7F0ACE7C ACD80004 */ sw $t8, 4($a2) +/* 0E19B0 7F0ACE80 ACCF0000 */ sw $t7, ($a2) +/* 0E19B4 7F0ACE84 00803825 */ move $a3, $a0 +/* 0E19B8 7F0ACE88 3C19BA00 */ lui $t9, (0xBA000E02 >> 16) # lui $t9, 0xba00 +/* 0E19BC 7F0ACE8C 37390E02 */ ori $t9, (0xBA000E02 & 0xFFFF) # ori $t9, $t9, 0xe02 +/* 0E19C0 7F0ACE90 ACF90000 */ sw $t9, ($a3) +/* 0E19C4 7F0ACE94 ACE00004 */ sw $zero, 4($a3) +/* 0E19C8 7F0ACE98 3C088004 */ lui $t0, %hi(text_bilevel_filter) +/* 0E19CC 7F0ACE9C 8D080E94 */ lw $t0, %lo(text_bilevel_filter)($t0) +/* 0E19D0 7F0ACEA0 24840008 */ addiu $a0, $a0, 8 +/* 0E19D4 7F0ACEA4 00801025 */ move $v0, $a0 +/* 0E19D8 7F0ACEA8 1100000A */ beqz $t0, .L7F0ACED4 +/* 0E19DC 7F0ACEAC 3C0BBA00 */ lui $t3, 0xba00 +/* 0E19E0 7F0ACEB0 00801025 */ move $v0, $a0 +/* 0E19E4 7F0ACEB4 3C09BA00 */ lui $t1, (0xBA000C02 >> 16) # lui $t1, 0xba00 +/* 0E19E8 7F0ACEB8 35290C02 */ ori $t1, (0xBA000C02 & 0xFFFF) # ori $t1, $t1, 0xc02 +/* 0E19EC 7F0ACEBC 240A3000 */ li $t2, 12288 +/* 0E19F0 7F0ACEC0 AC4A0004 */ sw $t2, 4($v0) +/* 0E19F4 7F0ACEC4 AC490000 */ sw $t1, ($v0) +/* 0E19F8 7F0ACEC8 24840008 */ addiu $a0, $a0, 8 +/* 0E19FC 7F0ACECC 03E00008 */ jr $ra +/* 0E1A00 7F0ACED0 00801025 */ move $v0, $a0 + +.L7F0ACED4: +/* 0E1A04 7F0ACED4 356B0C02 */ ori $t3, $t3, 0xc02 +/* 0E1A08 7F0ACED8 240C2000 */ li $t4, 8192 +/* 0E1A0C 7F0ACEDC AC4C0004 */ sw $t4, 4($v0) +/* 0E1A10 7F0ACEE0 AC4B0000 */ sw $t3, ($v0) +/* 0E1A14 7F0ACEE4 24840008 */ addiu $a0, $a0, 8 +/* 0E1A18 7F0ACEE8 03E00008 */ jr $ra +/* 0E1A1C 7F0ACEEC 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +s32 combiner_bayer_lod_perspective(void *arg0) { + void *temp_a1; + void *temp_a2; + void *temp_a3; + + // Node 0 + temp_a1 = (arg0 + 8); + *arg0 = 0xe7000000; + arg0->unk4 = 0; + temp_a2 = (temp_a1 + 8); + temp_a1->unk4 = 0x40; + *temp_a1 = 0xba000602; + temp_a3 = (temp_a2 + 8); + temp_a2->unk4 = 0x80000; + *temp_a2 = 0xba001301; + temp_a3->unk4 = 0x10000; + *temp_a3 = 0xba001001; + return; + // (possible return value: (temp_a3 + 8)) +} + +#else +GLOBAL_ASM( +.text +glabel combiner_bayer_lod_perspective +/* 0E1A20 7F0ACEF0 24850008 */ addiu $a1, $a0, 8 +/* 0E1A24 7F0ACEF4 3C0EE700 */ lui $t6, 0xe700 +/* 0E1A28 7F0ACEF8 AC8E0000 */ sw $t6, ($a0) +/* 0E1A2C 7F0ACEFC AC800004 */ sw $zero, 4($a0) +/* 0E1A30 7F0ACF00 3C0FBA00 */ lui $t7, (0xBA000602 >> 16) # lui $t7, 0xba00 +/* 0E1A34 7F0ACF04 35EF0602 */ ori $t7, (0xBA000602 & 0xFFFF) # ori $t7, $t7, 0x602 +/* 0E1A38 7F0ACF08 24A60008 */ addiu $a2, $a1, 8 +/* 0E1A3C 7F0ACF0C 24180040 */ li $t8, 64 +/* 0E1A40 7F0ACF10 ACB80004 */ sw $t8, 4($a1) +/* 0E1A44 7F0ACF14 ACAF0000 */ sw $t7, ($a1) +/* 0E1A48 7F0ACF18 3C19BA00 */ lui $t9, (0xBA001301 >> 16) # lui $t9, 0xba00 +/* 0E1A4C 7F0ACF1C 37391301 */ ori $t9, (0xBA001301 & 0xFFFF) # ori $t9, $t9, 0x1301 +/* 0E1A50 7F0ACF20 24C70008 */ addiu $a3, $a2, 8 +/* 0E1A54 7F0ACF24 3C080008 */ lui $t0, 8 +/* 0E1A58 7F0ACF28 3C09BA00 */ lui $t1, (0xBA001001 >> 16) # lui $t1, 0xba00 +/* 0E1A5C 7F0ACF2C ACC80004 */ sw $t0, 4($a2) +/* 0E1A60 7F0ACF30 ACD90000 */ sw $t9, ($a2) +/* 0E1A64 7F0ACF34 35291001 */ ori $t1, (0xBA001001 & 0xFFFF) # ori $t1, $t1, 0x1001 +/* 0E1A68 7F0ACF38 3C0A0001 */ lui $t2, 1 +/* 0E1A6C 7F0ACF3C ACEA0004 */ sw $t2, 4($a3) +/* 0E1A70 7F0ACF40 ACE90000 */ sw $t1, ($a3) +/* 0E1A74 7F0ACF44 03E00008 */ jr $ra +/* 0E1A78 7F0ACF48 24E20008 */ addiu $v0, $a3, 8 +) +#endif + + + + + +#ifdef NONMATCHING +s32 draw_blackbox_to_screen(void *arg0, void *arg1, void *arg2, void *arg3, void *arg4) { + void *temp_a0; + void *temp_t0; + void *temp_t1; + void *temp_v1; + void *temp_a1; + + // Node 0 + *arg0 = 0xb900031d; + arg0->unk4 = 0x504240; + temp_a0 = (arg0 + 8); + *temp_a0 = 0xfcffffff; + temp_a0->unk4 = 0xfffdf6fb; + temp_t0 = (temp_a0 + 8); + *temp_t0 = 0xfa000000; + temp_t0->unk4 = 0; + temp_t1 = (temp_t0 + 8); + *temp_t1 = (s32) ((((*arg4 & 0x3ff) * 4) | 0xf6000000) | ((*arg3 & 0x3ff) << 0xe)); + temp_v1 = (temp_t1 + 8); + temp_t1->unk4 = (s32) (((*arg2 & 0x3ff) * 4) | ((*arg1 & 0x3ff) << 0xe)); + temp_a1 = (temp_v1 + 8); + temp_v1->unk4 = 0x504240; + *temp_v1 = 0xb900031d; + *temp_a1 = 0xfcff97ff; + temp_a1->unk4 = 0xff2dfeff; + return; + // (possible return value: (temp_a1 + 8)) +} + +#else +GLOBAL_ASM( +.text +glabel draw_blackbox_to_screen +/* 0E1A7C 7F0ACF4C 3C0AB900 */ lui $t2, (0xB900031D >> 16) # lui $t2, 0xb900 +/* 0E1A80 7F0ACF50 3C0B0050 */ lui $t3, (0x00504240 >> 16) # lui $t3, 0x50 +/* 0E1A84 7F0ACF54 00801025 */ move $v0, $a0 +/* 0E1A88 7F0ACF58 356B4240 */ ori $t3, (0x00504240 & 0xFFFF) # ori $t3, $t3, 0x4240 +/* 0E1A8C 7F0ACF5C 354A031D */ ori $t2, (0xB900031D & 0xFFFF) # ori $t2, $t2, 0x31d +/* 0E1A90 7F0ACF60 AC4A0000 */ sw $t2, ($v0) +/* 0E1A94 7F0ACF64 AC4B0004 */ sw $t3, 4($v0) +/* 0E1A98 7F0ACF68 3C0EFCFF */ lui $t6, (0xFCFFFFFF >> 16) # lui $t6, 0xfcff +/* 0E1A9C 7F0ACF6C 3C0FFFFD */ lui $t7, (0xFFFDF6FB >> 16) # lui $t7, 0xfffd +/* 0E1AA0 7F0ACF70 24840008 */ addiu $a0, $a0, 8 +/* 0E1AA4 7F0ACF74 35EFF6FB */ ori $t7, (0xFFFDF6FB & 0xFFFF) # ori $t7, $t7, 0xf6fb +/* 0E1AA8 7F0ACF78 35CEFFFF */ ori $t6, (0xFCFFFFFF & 0xFFFF) # ori $t6, $t6, 0xffff +/* 0E1AAC 7F0ACF7C AC8E0000 */ sw $t6, ($a0) +/* 0E1AB0 7F0ACF80 AC8F0004 */ sw $t7, 4($a0) +/* 0E1AB4 7F0ACF84 24880008 */ addiu $t0, $a0, 8 +/* 0E1AB8 7F0ACF88 3C18FA00 */ lui $t8, 0xfa00 +/* 0E1ABC 7F0ACF8C AD180000 */ sw $t8, ($t0) +/* 0E1AC0 7F0ACF90 AD000004 */ sw $zero, 4($t0) +/* 0E1AC4 7F0ACF94 8FB90010 */ lw $t9, 0x10($sp) +/* 0E1AC8 7F0ACF98 8CF80000 */ lw $t8, ($a3) +/* 0E1ACC 7F0ACF9C 3C01F600 */ lui $at, 0xf600 +/* 0E1AD0 7F0ACFA0 8F2C0000 */ lw $t4, ($t9) +/* 0E1AD4 7F0ACFA4 331903FF */ andi $t9, $t8, 0x3ff +/* 0E1AD8 7F0ACFA8 25090008 */ addiu $t1, $t0, 8 +/* 0E1ADC 7F0ACFAC 318D03FF */ andi $t5, $t4, 0x3ff +/* 0E1AE0 7F0ACFB0 000D7080 */ sll $t6, $t5, 2 +/* 0E1AE4 7F0ACFB4 01C17825 */ or $t7, $t6, $at +/* 0E1AE8 7F0ACFB8 00196380 */ sll $t4, $t9, 0xe +/* 0E1AEC 7F0ACFBC 01EC6825 */ or $t5, $t7, $t4 +/* 0E1AF0 7F0ACFC0 AD2D0000 */ sw $t5, ($t1) +/* 0E1AF4 7F0ACFC4 8CAF0000 */ lw $t7, ($a1) +/* 0E1AF8 7F0ACFC8 8CCE0000 */ lw $t6, ($a2) +/* 0E1AFC 7F0ACFCC 25230008 */ addiu $v1, $t1, 8 +/* 0E1B00 7F0ACFD0 31EC03FF */ andi $t4, $t7, 0x3ff +/* 0E1B04 7F0ACFD4 31D803FF */ andi $t8, $t6, 0x3ff +/* 0E1B08 7F0ACFD8 0018C880 */ sll $t9, $t8, 2 +/* 0E1B0C 7F0ACFDC 000C6B80 */ sll $t5, $t4, 0xe +/* 0E1B10 7F0ACFE0 032D7025 */ or $t6, $t9, $t5 +/* 0E1B14 7F0ACFE4 AD2E0004 */ sw $t6, 4($t1) +/* 0E1B18 7F0ACFE8 24650008 */ addiu $a1, $v1, 8 +/* 0E1B1C 7F0ACFEC 3C18FCFF */ lui $t8, (0xFCFF97FF >> 16) # lui $t8, 0xfcff +/* 0E1B20 7F0ACFF0 3C0FFF2D */ lui $t7, (0xFF2DFEFF >> 16) # lui $t7, 0xff2d +/* 0E1B24 7F0ACFF4 AC6B0004 */ sw $t3, 4($v1) +/* 0E1B28 7F0ACFF8 AC6A0000 */ sw $t2, ($v1) +/* 0E1B2C 7F0ACFFC 35EFFEFF */ ori $t7, (0xFF2DFEFF & 0xFFFF) # ori $t7, $t7, 0xfeff +/* 0E1B30 7F0AD000 371897FF */ ori $t8, (0xFCFF97FF & 0xFFFF) # ori $t8, $t8, 0x97ff +/* 0E1B34 7F0AD004 ACB80000 */ sw $t8, ($a1) +/* 0E1B38 7F0AD008 ACAF0004 */ sw $t7, 4($a1) +/* 0E1B3C 7F0AD00C 03E00008 */ jr $ra +/* 0E1B40 7F0AD010 24A20008 */ addiu $v0, $a1, 8 +) +#endif + + + + + +#ifdef NONMATCHING +s32 microcode_constructor_related_to_menus(void *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, u32 arg5) { + void *temp_a0; + void *temp_t0; + void *temp_t1; + void *temp_v1; + + // Node 0 + *arg0 = 0xb900031d; + arg0->unk4 = 0x504240; + temp_a0 = (arg0 + 8); + *temp_a0 = 0xfcffffff; + temp_a0->unk4 = 0xfffdf6fb; + temp_t0 = (temp_a0 + 8); + *temp_t0 = 0xfa000000; + temp_t1 = (temp_t0 + 8); + temp_t0->unk4 = (s32) (((((arg5 >> 0x18) << 0x18) | (((arg5 >> 0x10) & 0xff) << 0x10)) | (((arg5 >> 8) & 0xff) << 8)) | (arg5 & 0xff)); + temp_v1 = (temp_t1 + 8); + temp_t1->unk4 = (s32) (((arg1 & 0x3ff) << 0xe) | ((arg2 & 0x3ff) * 4)); + *temp_t1 = (s32) ((((arg3 & 0x3ff) << 0xe) | 0xf6000000) | ((arg4 & 0x3ff) * 4)); + temp_v1->unk4 = 0xff2dfeff; + *temp_v1 = 0xfcff97ff; + return; + // (possible return value: (temp_v1 + 8)) +} + +#else +GLOBAL_ASM( +.text +glabel microcode_constructor_related_to_menus +/* 0E1B44 7F0AD014 00801025 */ move $v0, $a0 +/* 0E1B48 7F0AD018 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0E1B4C 7F0AD01C 3C0F0050 */ lui $t7, (0x00504240 >> 16) # lui $t7, 0x50 +/* 0E1B50 7F0AD020 35EF4240 */ ori $t7, (0x00504240 & 0xFFFF) # ori $t7, $t7, 0x4240 +/* 0E1B54 7F0AD024 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0E1B58 7F0AD028 AC4E0000 */ sw $t6, ($v0) +/* 0E1B5C 7F0AD02C AC4F0004 */ sw $t7, 4($v0) +/* 0E1B60 7F0AD030 3C18FCFF */ lui $t8, (0xFCFFFFFF >> 16) # lui $t8, 0xfcff +/* 0E1B64 7F0AD034 3C19FFFD */ lui $t9, (0xFFFDF6FB >> 16) # lui $t9, 0xfffd +/* 0E1B68 7F0AD038 24840008 */ addiu $a0, $a0, 8 +/* 0E1B6C 7F0AD03C 3739F6FB */ ori $t9, (0xFFFDF6FB & 0xFFFF) # ori $t9, $t9, 0xf6fb +/* 0E1B70 7F0AD040 3718FFFF */ ori $t8, (0xFCFFFFFF & 0xFFFF) # ori $t8, $t8, 0xffff +/* 0E1B74 7F0AD044 AC980000 */ sw $t8, ($a0) +/* 0E1B78 7F0AD048 AC990004 */ sw $t9, 4($a0) +/* 0E1B7C 7F0AD04C 24880008 */ addiu $t0, $a0, 8 +/* 0E1B80 7F0AD050 3C0AFA00 */ lui $t2, 0xfa00 +/* 0E1B84 7F0AD054 AD0A0000 */ sw $t2, ($t0) +/* 0E1B88 7F0AD058 8FAB0014 */ lw $t3, 0x14($sp) +/* 0E1B8C 7F0AD05C 3C01F600 */ lui $at, 0xf600 +/* 0E1B90 7F0AD060 25090008 */ addiu $t1, $t0, 8 +/* 0E1B94 7F0AD064 000BCC02 */ srl $t9, $t3, 0x10 +/* 0E1B98 7F0AD068 332A00FF */ andi $t2, $t9, 0xff +/* 0E1B9C 7F0AD06C 000A6400 */ sll $t4, $t2, 0x10 +/* 0E1BA0 7F0AD070 000B7602 */ srl $t6, $t3, 0x18 +/* 0E1BA4 7F0AD074 000E7E00 */ sll $t7, $t6, 0x18 +/* 0E1BA8 7F0AD078 000BC202 */ srl $t8, $t3, 8 +/* 0E1BAC 7F0AD07C 331900FF */ andi $t9, $t8, 0xff +/* 0E1BB0 7F0AD080 01EC6825 */ or $t5, $t7, $t4 +/* 0E1BB4 7F0AD084 00195200 */ sll $t2, $t9, 8 +/* 0E1BB8 7F0AD088 01606025 */ move $t4, $t3 +/* 0E1BBC 7F0AD08C 318E00FF */ andi $t6, $t4, 0xff +/* 0E1BC0 7F0AD090 01AA7825 */ or $t7, $t5, $t2 +/* 0E1BC4 7F0AD094 01EEC025 */ or $t8, $t7, $t6 +/* 0E1BC8 7F0AD098 AD180004 */ sw $t8, 4($t0) +/* 0E1BCC 7F0AD09C 8FAB0010 */ lw $t3, 0x10($sp) +/* 0E1BD0 7F0AD0A0 30F903FF */ andi $t9, $a3, 0x3ff +/* 0E1BD4 7F0AD0A4 00196B80 */ sll $t5, $t9, 0xe +/* 0E1BD8 7F0AD0A8 01A15025 */ or $t2, $t5, $at +/* 0E1BDC 7F0AD0AC 316C03FF */ andi $t4, $t3, 0x3ff +/* 0E1BE0 7F0AD0B0 000C7880 */ sll $t7, $t4, 2 +/* 0E1BE4 7F0AD0B4 014F7025 */ or $t6, $t2, $t7 +/* 0E1BE8 7F0AD0B8 30CD03FF */ andi $t5, $a2, 0x3ff +/* 0E1BEC 7F0AD0BC 30B803FF */ andi $t8, $a1, 0x3ff +/* 0E1BF0 7F0AD0C0 0018CB80 */ sll $t9, $t8, 0xe +/* 0E1BF4 7F0AD0C4 000D5880 */ sll $t3, $t5, 2 +/* 0E1BF8 7F0AD0C8 032B6025 */ or $t4, $t9, $t3 +/* 0E1BFC 7F0AD0CC 25230008 */ addiu $v1, $t1, 8 +/* 0E1C00 7F0AD0D0 3C0FFF2D */ lui $t7, (0xFF2DFEFF >> 16) # lui $t7, 0xff2d +/* 0E1C04 7F0AD0D4 3C0AFCFF */ lui $t2, (0xFCFF97FF >> 16) # lui $t2, 0xfcff +/* 0E1C08 7F0AD0D8 AD2C0004 */ sw $t4, 4($t1) +/* 0E1C0C 7F0AD0DC AD2E0000 */ sw $t6, ($t1) +/* 0E1C10 7F0AD0E0 354A97FF */ ori $t2, (0xFCFF97FF & 0xFFFF) # ori $t2, $t2, 0x97ff +/* 0E1C14 7F0AD0E4 35EFFEFF */ ori $t7, (0xFF2DFEFF & 0xFFFF) # ori $t7, $t7, 0xfeff +/* 0E1C18 7F0AD0E8 AC6F0004 */ sw $t7, 4($v1) +/* 0E1C1C 7F0AD0EC AC6A0000 */ sw $t2, ($v1) +/* 0E1C20 7F0AD0F0 03E00008 */ jr $ra +/* 0E1C24 7F0AD0F4 24620008 */ addiu $v0, $v1, 8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AD0F8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AD0F8 +/* 0E1C28 7F0AD0F8 27BDFF10 */ addiu $sp, $sp, -0xf0 +/* 0E1C2C 7F0AD0FC 8FB90100 */ lw $t9, 0x100($sp) +/* 0E1C30 7F0AD100 AFBF001C */ sw $ra, 0x1c($sp) +/* 0E1C34 7F0AD104 AFB10018 */ sw $s1, 0x18($sp) +/* 0E1C38 7F0AD108 AFB00014 */ sw $s0, 0x14($sp) +/* 0E1C3C 7F0AD10C AFA500F4 */ sw $a1, 0xf4($sp) +/* 0E1C40 7F0AD110 8F2C0010 */ lw $t4, 0x10($t9) +/* 0E1C44 7F0AD114 8CCE0000 */ lw $t6, ($a2) +/* 0E1C48 7F0AD118 8FAF0118 */ lw $t7, 0x118($sp) +/* 0E1C4C 7F0AD11C 000C6880 */ sll $t5, $t4, 2 +/* 0E1C50 7F0AD120 01AC6823 */ subu $t5, $t5, $t4 +/* 0E1C54 7F0AD124 8FB80104 */ lw $t8, 0x104($sp) +/* 0E1C58 7F0AD128 000D6880 */ sll $t5, $t5, 2 +/* 0E1C5C 7F0AD12C 8CF90010 */ lw $t9, 0x10($a3) +/* 0E1C60 7F0AD130 01AC6821 */ addu $t5, $t5, $t4 +/* 0E1C64 7F0AD134 01CF4821 */ addu $t1, $t6, $t7 +/* 0E1C68 7F0AD138 000D7080 */ sll $t6, $t5, 2 +/* 0E1C6C 7F0AD13C 030E7821 */ addu $t7, $t8, $t6 +/* 0E1C70 7F0AD140 00196080 */ sll $t4, $t9, 2 +/* 0E1C74 7F0AD144 01EC6821 */ addu $t5, $t7, $t4 +/* 0E1C78 7F0AD148 3C0E8004 */ lui $t6, %hi(text_spacing) +/* 0E1C7C 7F0AD14C 8DCE0E84 */ lw $t6, %lo(text_spacing)($t6) +/* 0E1C80 7F0AD150 8DB80000 */ lw $t8, ($t5) +/* 0E1C84 7F0AD154 8CAF0000 */ lw $t7, ($a1) +/* 0E1C88 7F0AD158 00808025 */ move $s0, $a0 +/* 0E1C8C 7F0AD15C 030E1021 */ addu $v0, $t8, $t6 +/* 0E1C90 7F0AD160 01E26023 */ subu $t4, $t7, $v0 +/* 0E1C94 7F0AD164 258D0001 */ addiu $t5, $t4, 1 +/* 0E1C98 7F0AD168 ACAD0000 */ sw $t5, ($a1) +/* 0E1C9C 7F0AD16C 3C188004 */ lui $t8, %hi(text_orientation) +/* 0E1CA0 7F0AD170 8F180E88 */ lw $t8, %lo(text_orientation)($t8) +/* 0E1CA4 7F0AD174 00E08825 */ move $s1, $a3 +/* 0E1CA8 7F0AD178 57000014 */ bnezl $t8, .L7F0AD1CC +/* 0E1CAC 7F0AD17C 8FA40108 */ lw $a0, 0x108($sp) +/* 0E1CB0 7F0AD180 59A00244 */ blezl $t5, .L7F0ADA94 +/* 0E1CB4 7F0AD184 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0E1CB8 7F0AD188 0C001107 */ jal get_video2_settings_txtClipW +/* 0E1CBC 7F0AD18C AFA900E0 */ sw $t1, 0xe0($sp) +/* 0E1CC0 7F0AD190 8FAE00F4 */ lw $t6, 0xf4($sp) +/* 0E1CC4 7F0AD194 8FA900E0 */ lw $t1, 0xe0($sp) +/* 0E1CC8 7F0AD198 8DCF0000 */ lw $t7, ($t6) +/* 0E1CCC 7F0AD19C 004F082A */ slt $at, $v0, $t7 +/* 0E1CD0 7F0AD1A0 5420023C */ bnezl $at, .L7F0ADA94 +/* 0E1CD4 7F0AD1A4 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0E1CD8 7F0AD1A8 0C00110B */ jal get_video2_settings_txtClipH +/* 0E1CDC 7F0AD1AC AFA900E0 */ sw $t1, 0xe0($sp) +/* 0E1CE0 7F0AD1B0 8FA900E0 */ lw $t1, 0xe0($sp) +/* 0E1CE4 7F0AD1B4 8E2C0004 */ lw $t4, 4($s1) +/* 0E1CE8 7F0AD1B8 012CC821 */ addu $t9, $t1, $t4 +/* 0E1CEC 7F0AD1BC 0059082A */ slt $at, $v0, $t9 +/* 0E1CF0 7F0AD1C0 54200234 */ bnezl $at, .L7F0ADA94 +/* 0E1CF4 7F0AD1C4 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0E1CF8 7F0AD1C8 8FA40108 */ lw $a0, 0x108($sp) +.L7F0AD1CC: +/* 0E1CFC 7F0AD1CC 8FB80110 */ lw $t8, 0x110($sp) +/* 0E1D00 7F0AD1D0 8FAE00F4 */ lw $t6, 0xf4($sp) +/* 0E1D04 7F0AD1D4 8FAA010C */ lw $t2, 0x10c($sp) +/* 0E1D08 7F0AD1D8 00986821 */ addu $t5, $a0, $t8 +/* 0E1D0C 7F0AD1DC AFAD0024 */ sw $t5, 0x24($sp) +/* 0E1D10 7F0AD1E0 8DC20000 */ lw $v0, ($t6) +/* 0E1D14 7F0AD1E4 8FAC0114 */ lw $t4, 0x114($sp) +/* 0E1D18 7F0AD1E8 01A2082A */ slt $at, $t5, $v0 +/* 0E1D1C 7F0AD1EC 54200229 */ bnezl $at, .L7F0ADA94 +/* 0E1D20 7F0AD1F0 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0E1D24 7F0AD1F4 8E390004 */ lw $t9, 4($s1) +/* 0E1D28 7F0AD1F8 014C5821 */ addu $t3, $t2, $t4 +/* 0E1D2C 7F0AD1FC 03291821 */ addu $v1, $t9, $t1 +/* 0E1D30 7F0AD200 0163082A */ slt $at, $t3, $v1 +/* 0E1D34 7F0AD204 14200222 */ bnez $at, .L7F0ADA90 +/* 0E1D38 7F0AD208 0044082A */ slt $at, $v0, $a0 +/* 0E1D3C 7F0AD20C 54200221 */ bnezl $at, .L7F0ADA94 +/* 0E1D40 7F0AD210 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0E1D44 7F0AD214 8E380008 */ lw $t8, 8($s1) +/* 0E1D48 7F0AD218 00786821 */ addu $t5, $v1, $t8 +/* 0E1D4C 7F0AD21C 01AA082A */ slt $at, $t5, $t2 +/* 0E1D50 7F0AD220 5420021C */ bnezl $at, .L7F0ADA94 +/* 0E1D54 7F0AD224 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0E1D58 7F0AD228 8E2E0000 */ lw $t6, ($s1) +/* 0E1D5C 7F0AD22C 3C058004 */ lui $a1, %hi(D_80040EA8) +/* 0E1D60 7F0AD230 24A50EA8 */ addiu $a1, %lo(D_80040EA8) # addiu $a1, $a1, 0xea8 +/* 0E1D64 7F0AD234 29C10080 */ slti $at, $t6, 0x80 +/* 0E1D68 7F0AD238 1020006F */ beqz $at, .L7F0AD3F8 +/* 0E1D6C 7F0AD23C 02001025 */ move $v0, $s0 +/* 0E1D70 7F0AD240 02001025 */ move $v0, $s0 +/* 0E1D74 7F0AD244 3C0FBA00 */ lui $t7, (0xBA000E02 >> 16) # lui $t7, 0xba00 +/* 0E1D78 7F0AD248 35EF0E02 */ ori $t7, (0xBA000E02 & 0xFFFF) # ori $t7, $t7, 0xe02 +/* 0E1D7C 7F0AD24C 26100008 */ addiu $s0, $s0, 8 +/* 0E1D80 7F0AD250 AC4F0000 */ sw $t7, ($v0) +/* 0E1D84 7F0AD254 AC400004 */ sw $zero, 4($v0) +/* 0E1D88 7F0AD258 02001825 */ move $v1, $s0 +/* 0E1D8C 7F0AD25C 3C0CFD90 */ lui $t4, 0xfd90 +/* 0E1D90 7F0AD260 AC6C0000 */ sw $t4, ($v1) +/* 0E1D94 7F0AD264 8E390014 */ lw $t9, 0x14($s1) +/* 0E1D98 7F0AD268 26100008 */ addiu $s0, $s0, 8 +/* 0E1D9C 7F0AD26C 02002025 */ move $a0, $s0 +/* 0E1DA0 7F0AD270 26100008 */ addiu $s0, $s0, 8 +/* 0E1DA4 7F0AD274 AC790004 */ sw $t9, 4($v1) +/* 0E1DA8 7F0AD278 02002825 */ move $a1, $s0 +/* 0E1DAC 7F0AD27C 3C18F590 */ lui $t8, 0xf590 +/* 0E1DB0 7F0AD280 3C0D0700 */ lui $t5, 0x700 +/* 0E1DB4 7F0AD284 AC8D0004 */ sw $t5, 4($a0) +/* 0E1DB8 7F0AD288 AC980000 */ sw $t8, ($a0) +/* 0E1DBC 7F0AD28C 26100008 */ addiu $s0, $s0, 8 +/* 0E1DC0 7F0AD290 3C0EE600 */ lui $t6, 0xe600 +/* 0E1DC4 7F0AD294 ACAE0000 */ sw $t6, ($a1) +/* 0E1DC8 7F0AD298 02004025 */ move $t0, $s0 +/* 0E1DCC 7F0AD29C ACA00004 */ sw $zero, 4($a1) +/* 0E1DD0 7F0AD2A0 3C0FF300 */ lui $t7, 0xf300 +/* 0E1DD4 7F0AD2A4 AD0F0000 */ sw $t7, ($t0) +/* 0E1DD8 7F0AD2A8 8E23000C */ lw $v1, 0xc($s1) +/* 0E1DDC 7F0AD2AC 8E390008 */ lw $t9, 8($s1) +/* 0E1DE0 7F0AD2B0 26100008 */ addiu $s0, $s0, 8 +/* 0E1DE4 7F0AD2B4 24630007 */ addiu $v1, $v1, 7 +/* 0E1DE8 7F0AD2B8 306C00F8 */ andi $t4, $v1, 0xf8 +/* 0E1DEC 7F0AD2BC 01990019 */ multu $t4, $t9 +/* 0E1DF0 7F0AD2C0 01801825 */ move $v1, $t4 +/* 0E1DF4 7F0AD2C4 240607FF */ li $a2, 2047 +/* 0E1DF8 7F0AD2C8 00001012 */ mflo $v0 +/* 0E1DFC 7F0AD2CC 24420001 */ addiu $v0, $v0, 1 +/* 0E1E00 7F0AD2D0 0002C043 */ sra $t8, $v0, 1 +/* 0E1E04 7F0AD2D4 2702FFFF */ addiu $v0, $t8, -1 +/* 0E1E08 7F0AD2D8 284107FF */ slti $at, $v0, 0x7ff +/* 0E1E0C 7F0AD2DC 10200003 */ beqz $at, .L7F0AD2EC +/* 0E1E10 7F0AD2E0 00000000 */ nop +/* 0E1E14 7F0AD2E4 10000001 */ b .L7F0AD2EC +/* 0E1E18 7F0AD2E8 00403025 */ move $a2, $v0 +.L7F0AD2EC: +/* 0E1E1C 7F0AD2EC 04610003 */ bgez $v1, .L7F0AD2FC +/* 0E1E20 7F0AD2F0 000310C3 */ sra $v0, $v1, 3 +/* 0E1E24 7F0AD2F4 24610007 */ addiu $at, $v1, 7 +/* 0E1E28 7F0AD2F8 000110C3 */ sra $v0, $at, 3 +.L7F0AD2FC: +/* 0E1E2C 7F0AD2FC 1C400003 */ bgtz $v0, .L7F0AD30C +/* 0E1E30 7F0AD300 30D90FFF */ andi $t9, $a2, 0xfff +/* 0E1E34 7F0AD304 10000002 */ b .L7F0AD310 +/* 0E1E38 7F0AD308 24070001 */ li $a3, 1 +.L7F0AD30C: +/* 0E1E3C 7F0AD30C 00403825 */ move $a3, $v0 +.L7F0AD310: +/* 0E1E40 7F0AD310 1C400003 */ bgtz $v0, .L7F0AD320 +/* 0E1E44 7F0AD314 24ED07FF */ addiu $t5, $a3, 0x7ff +/* 0E1E48 7F0AD318 10000002 */ b .L7F0AD324 +/* 0E1E4C 7F0AD31C 24050001 */ li $a1, 1 +.L7F0AD320: +/* 0E1E50 7F0AD320 00402825 */ move $a1, $v0 +.L7F0AD324: +/* 0E1E54 7F0AD324 01A5001A */ div $zero, $t5, $a1 +/* 0E1E58 7F0AD328 14A00002 */ bnez $a1, .L7F0AD334 +/* 0E1E5C 7F0AD32C 00000000 */ nop +/* 0E1E60 7F0AD330 0007000D */ break 7 +.L7F0AD334: +/* 0E1E64 7F0AD334 2401FFFF */ li $at, -1 +/* 0E1E68 7F0AD338 14A10004 */ bne $a1, $at, .L7F0AD34C +/* 0E1E6C 7F0AD33C 3C018000 */ lui $at, 0x8000 +/* 0E1E70 7F0AD340 15A10002 */ bne $t5, $at, .L7F0AD34C +/* 0E1E74 7F0AD344 00000000 */ nop +/* 0E1E78 7F0AD348 0006000D */ break 6 +.L7F0AD34C: +/* 0E1E7C 7F0AD34C 00007012 */ mflo $t6 +/* 0E1E80 7F0AD350 31CF0FFF */ andi $t7, $t6, 0xfff +/* 0E1E84 7F0AD354 3C010700 */ lui $at, 0x700 +/* 0E1E88 7F0AD358 01E16025 */ or $t4, $t7, $at +/* 0E1E8C 7F0AD35C 0019C300 */ sll $t8, $t9, 0xc +/* 0E1E90 7F0AD360 01986825 */ or $t5, $t4, $t8 +/* 0E1E94 7F0AD364 AD0D0004 */ sw $t5, 4($t0) +/* 0E1E98 7F0AD368 02001025 */ move $v0, $s0 +/* 0E1E9C 7F0AD36C 3C0EE700 */ lui $t6, 0xe700 +/* 0E1EA0 7F0AD370 AC4E0000 */ sw $t6, ($v0) +/* 0E1EA4 7F0AD374 AC400004 */ sw $zero, 4($v0) +/* 0E1EA8 7F0AD378 8E2F000C */ lw $t7, 0xc($s1) +/* 0E1EAC 7F0AD37C 26100008 */ addiu $s0, $s0, 8 +/* 0E1EB0 7F0AD380 02001825 */ move $v1, $s0 +/* 0E1EB4 7F0AD384 25F90007 */ addiu $t9, $t7, 7 +/* 0E1EB8 7F0AD388 332C00F8 */ andi $t4, $t9, 0xf8 +/* 0E1EBC 7F0AD38C 25980007 */ addiu $t8, $t4, 7 +/* 0E1EC0 7F0AD390 001868C3 */ sra $t5, $t8, 3 +/* 0E1EC4 7F0AD394 31AE01FF */ andi $t6, $t5, 0x1ff +/* 0E1EC8 7F0AD398 000E7A40 */ sll $t7, $t6, 9 +/* 0E1ECC 7F0AD39C 3C01F588 */ lui $at, 0xf588 +/* 0E1ED0 7F0AD3A0 01E1C825 */ or $t9, $t7, $at +/* 0E1ED4 7F0AD3A4 26100008 */ addiu $s0, $s0, 8 +/* 0E1ED8 7F0AD3A8 02002025 */ move $a0, $s0 +/* 0E1EDC 7F0AD3AC AC790000 */ sw $t9, ($v1) +/* 0E1EE0 7F0AD3B0 3C0CF200 */ lui $t4, 0xf200 +/* 0E1EE4 7F0AD3B4 AC600004 */ sw $zero, 4($v1) +/* 0E1EE8 7F0AD3B8 AC8C0000 */ sw $t4, ($a0) +/* 0E1EEC 7F0AD3BC 8E38000C */ lw $t8, 0xc($s1) +/* 0E1EF0 7F0AD3C0 26100008 */ addiu $s0, $s0, 8 +/* 0E1EF4 7F0AD3C4 270D0007 */ addiu $t5, $t8, 7 +/* 0E1EF8 7F0AD3C8 31AE00F8 */ andi $t6, $t5, 0xf8 +/* 0E1EFC 7F0AD3CC 8E2D0008 */ lw $t5, 8($s1) +/* 0E1F00 7F0AD3D0 25CFFFFF */ addiu $t7, $t6, -1 +/* 0E1F04 7F0AD3D4 000FC880 */ sll $t9, $t7, 2 +/* 0E1F08 7F0AD3D8 332C0FFF */ andi $t4, $t9, 0xfff +/* 0E1F0C 7F0AD3DC 25AEFFFF */ addiu $t6, $t5, -1 +/* 0E1F10 7F0AD3E0 000E7880 */ sll $t7, $t6, 2 +/* 0E1F14 7F0AD3E4 31F90FFF */ andi $t9, $t7, 0xfff +/* 0E1F18 7F0AD3E8 000CC300 */ sll $t8, $t4, 0xc +/* 0E1F1C 7F0AD3EC 03196025 */ or $t4, $t8, $t9 +/* 0E1F20 7F0AD3F0 100000AC */ b .L7F0AD6A4 +/* 0E1F24 7F0AD3F4 AC8C0004 */ sw $t4, 4($a0) +.L7F0AD3F8: +/* 0E1F28 7F0AD3F8 26100008 */ addiu $s0, $s0, 8 +/* 0E1F2C 7F0AD3FC 3C0DE700 */ lui $t5, 0xe700 +/* 0E1F30 7F0AD400 AC4D0000 */ sw $t5, ($v0) +/* 0E1F34 7F0AD404 AC400004 */ sw $zero, 4($v0) +/* 0E1F38 7F0AD408 02001825 */ move $v1, $s0 +/* 0E1F3C 7F0AD40C 3C0EBA00 */ lui $t6, (0xBA000E02 >> 16) # lui $t6, 0xba00 +/* 0E1F40 7F0AD410 35CE0E02 */ ori $t6, (0xBA000E02 & 0xFFFF) # ori $t6, $t6, 0xe02 +/* 0E1F44 7F0AD414 340FC000 */ li $t7, 49152 +/* 0E1F48 7F0AD418 AC6F0004 */ sw $t7, 4($v1) +/* 0E1F4C 7F0AD41C AC6E0000 */ sw $t6, ($v1) +/* 0E1F50 7F0AD420 8CB80000 */ lw $t8, ($a1) +/* 0E1F54 7F0AD424 26100008 */ addiu $s0, $s0, 8 +/* 0E1F58 7F0AD428 02003825 */ move $a3, $s0 +/* 0E1F5C 7F0AD42C 13000056 */ beqz $t8, .L7F0AD588 +/* 0E1F60 7F0AD430 3C19FD10 */ lui $t9, 0xfd10 +/* 0E1F64 7F0AD434 ACA00000 */ sw $zero, ($a1) +/* 0E1F68 7F0AD438 ACF90000 */ sw $t9, ($a3) +/* 0E1F6C 7F0AD43C 3C048004 */ lui $a0, %hi(D_80040EBC) +/* 0E1F70 7F0AD440 24840EBC */ addiu $a0, %lo(D_80040EBC) # addiu $a0, $a0, 0xebc +/* 0E1F74 7F0AD444 AFAB0020 */ sw $t3, 0x20($sp) +/* 0E1F78 7F0AD448 AFA900E0 */ sw $t1, 0xe0($sp) +/* 0E1F7C 7F0AD44C AFA700B4 */ sw $a3, 0xb4($sp) +/* 0E1F80 7F0AD450 0C003A2C */ jal osVirtualToPhysical +/* 0E1F84 7F0AD454 26100008 */ addiu $s0, $s0, 8 +/* 0E1F88 7F0AD458 8FA700B4 */ lw $a3, 0xb4($sp) +/* 0E1F8C 7F0AD45C 8FA900E0 */ lw $t1, 0xe0($sp) +/* 0E1F90 7F0AD460 8FAB0020 */ lw $t3, 0x20($sp) +/* 0E1F94 7F0AD464 02001825 */ move $v1, $s0 +/* 0E1F98 7F0AD468 26100008 */ addiu $s0, $s0, 8 +/* 0E1F9C 7F0AD46C ACE20004 */ sw $v0, 4($a3) +/* 0E1FA0 7F0AD470 02002025 */ move $a0, $s0 +/* 0E1FA4 7F0AD474 3C0CE800 */ lui $t4, 0xe800 +/* 0E1FA8 7F0AD478 3C0DF500 */ lui $t5, (0xF5000100 >> 16) # lui $t5, 0xf500 +/* 0E1FAC 7F0AD47C 35AD0100 */ ori $t5, (0xF5000100 & 0xFFFF) # ori $t5, $t5, 0x100 +/* 0E1FB0 7F0AD480 AC6C0000 */ sw $t4, ($v1) +/* 0E1FB4 7F0AD484 AC600004 */ sw $zero, 4($v1) +/* 0E1FB8 7F0AD488 AC8D0000 */ sw $t5, ($a0) +/* 0E1FBC 7F0AD48C 26100008 */ addiu $s0, $s0, 8 +/* 0E1FC0 7F0AD490 3C0E0700 */ lui $t6, 0x700 +/* 0E1FC4 7F0AD494 AC8E0004 */ sw $t6, 4($a0) +/* 0E1FC8 7F0AD498 02002825 */ move $a1, $s0 +/* 0E1FCC 7F0AD49C 26100008 */ addiu $s0, $s0, 8 +/* 0E1FD0 7F0AD4A0 02003025 */ move $a2, $s0 +/* 0E1FD4 7F0AD4A4 3C0FE600 */ lui $t7, 0xe600 +/* 0E1FD8 7F0AD4A8 ACAF0000 */ sw $t7, ($a1) +/* 0E1FDC 7F0AD4AC 26100008 */ addiu $s0, $s0, 8 +/* 0E1FE0 7F0AD4B0 ACA00004 */ sw $zero, 4($a1) +/* 0E1FE4 7F0AD4B4 3C190703 */ lui $t9, (0x0703C000 >> 16) # lui $t9, 0x703 +/* 0E1FE8 7F0AD4B8 3739C000 */ ori $t9, (0x0703C000 & 0xFFFF) # ori $t9, $t9, 0xc000 +/* 0E1FEC 7F0AD4BC 02004025 */ move $t0, $s0 +/* 0E1FF0 7F0AD4C0 3C18F000 */ lui $t8, 0xf000 +/* 0E1FF4 7F0AD4C4 ACD80000 */ sw $t8, ($a2) +/* 0E1FF8 7F0AD4C8 ACD90004 */ sw $t9, 4($a2) +/* 0E1FFC 7F0AD4CC 26100008 */ addiu $s0, $s0, 8 +/* 0E2000 7F0AD4D0 3C0CE700 */ lui $t4, 0xe700 +/* 0E2004 7F0AD4D4 AD0C0000 */ sw $t4, ($t0) +/* 0E2008 7F0AD4D8 AD000004 */ sw $zero, 4($t0) +/* 0E200C 7F0AD4DC 02003825 */ move $a3, $s0 +/* 0E2010 7F0AD4E0 3C0DFD10 */ lui $t5, 0xfd10 +/* 0E2014 7F0AD4E4 ACED0000 */ sw $t5, ($a3) +/* 0E2018 7F0AD4E8 3C048004 */ lui $a0, %hi(D_80040EDC) +/* 0E201C 7F0AD4EC 24840EDC */ addiu $a0, %lo(D_80040EDC) # addiu $a0, $a0, 0xedc +/* 0E2020 7F0AD4F0 AFA7009C */ sw $a3, 0x9c($sp) +/* 0E2024 7F0AD4F4 26100008 */ addiu $s0, $s0, 8 +/* 0E2028 7F0AD4F8 AFA900E0 */ sw $t1, 0xe0($sp) +/* 0E202C 7F0AD4FC 0C003A2C */ jal osVirtualToPhysical +/* 0E2030 7F0AD500 AFAB0020 */ sw $t3, 0x20($sp) +/* 0E2034 7F0AD504 8FA7009C */ lw $a3, 0x9c($sp) +/* 0E2038 7F0AD508 8FA900E0 */ lw $t1, 0xe0($sp) +/* 0E203C 7F0AD50C 8FAB0020 */ lw $t3, 0x20($sp) +/* 0E2040 7F0AD510 02001825 */ move $v1, $s0 +/* 0E2044 7F0AD514 26100008 */ addiu $s0, $s0, 8 +/* 0E2048 7F0AD518 3C0EE800 */ lui $t6, 0xe800 +/* 0E204C 7F0AD51C ACE20004 */ sw $v0, 4($a3) +/* 0E2050 7F0AD520 AC6E0000 */ sw $t6, ($v1) +/* 0E2054 7F0AD524 02002025 */ move $a0, $s0 +/* 0E2058 7F0AD528 26100008 */ addiu $s0, $s0, 8 +/* 0E205C 7F0AD52C AC600004 */ sw $zero, 4($v1) +/* 0E2060 7F0AD530 3C0FF500 */ lui $t7, (0xF5000110 >> 16) # lui $t7, 0xf500 +/* 0E2064 7F0AD534 35EF0110 */ ori $t7, (0xF5000110 & 0xFFFF) # ori $t7, $t7, 0x110 +/* 0E2068 7F0AD538 02002825 */ move $a1, $s0 +/* 0E206C 7F0AD53C 3C180700 */ lui $t8, 0x700 +/* 0E2070 7F0AD540 AC980004 */ sw $t8, 4($a0) +/* 0E2074 7F0AD544 26100008 */ addiu $s0, $s0, 8 +/* 0E2078 7F0AD548 AC8F0000 */ sw $t7, ($a0) +/* 0E207C 7F0AD54C 02003025 */ move $a2, $s0 +/* 0E2080 7F0AD550 3C19E600 */ lui $t9, 0xe600 +/* 0E2084 7F0AD554 ACB90000 */ sw $t9, ($a1) +/* 0E2088 7F0AD558 26100008 */ addiu $s0, $s0, 8 +/* 0E208C 7F0AD55C ACA00004 */ sw $zero, 4($a1) +/* 0E2090 7F0AD560 3C0D0703 */ lui $t5, (0x0703C000 >> 16) # lui $t5, 0x703 +/* 0E2094 7F0AD564 35ADC000 */ ori $t5, (0x0703C000 & 0xFFFF) # ori $t5, $t5, 0xc000 +/* 0E2098 7F0AD568 02004025 */ move $t0, $s0 +/* 0E209C 7F0AD56C 3C0CF000 */ lui $t4, 0xf000 +/* 0E20A0 7F0AD570 ACCC0000 */ sw $t4, ($a2) +/* 0E20A4 7F0AD574 ACCD0004 */ sw $t5, 4($a2) +/* 0E20A8 7F0AD578 3C0EE700 */ lui $t6, 0xe700 +/* 0E20AC 7F0AD57C AD0E0000 */ sw $t6, ($t0) +/* 0E20B0 7F0AD580 AD000004 */ sw $zero, 4($t0) +/* 0E20B4 7F0AD584 26100008 */ addiu $s0, $s0, 8 +.L7F0AD588: +/* 0E20B8 7F0AD588 02002825 */ move $a1, $s0 +/* 0E20BC 7F0AD58C 3C0FFD50 */ lui $t7, 0xfd50 +/* 0E20C0 7F0AD590 ACAF0000 */ sw $t7, ($a1) +/* 0E20C4 7F0AD594 8E240014 */ lw $a0, 0x14($s1) +/* 0E20C8 7F0AD598 AFAB0020 */ sw $t3, 0x20($sp) +/* 0E20CC 7F0AD59C AFA900E0 */ sw $t1, 0xe0($sp) +/* 0E20D0 7F0AD5A0 AFA50084 */ sw $a1, 0x84($sp) +/* 0E20D4 7F0AD5A4 0C003A2C */ jal osVirtualToPhysical +/* 0E20D8 7F0AD5A8 26100008 */ addiu $s0, $s0, 8 +/* 0E20DC 7F0AD5AC 8FA50084 */ lw $a1, 0x84($sp) +/* 0E20E0 7F0AD5B0 8FA900E0 */ lw $t1, 0xe0($sp) +/* 0E20E4 7F0AD5B4 8FAA010C */ lw $t2, 0x10c($sp) +/* 0E20E8 7F0AD5B8 8FAB0020 */ lw $t3, 0x20($sp) +/* 0E20EC 7F0AD5BC 02001825 */ move $v1, $s0 +/* 0E20F0 7F0AD5C0 26100008 */ addiu $s0, $s0, 8 +/* 0E20F4 7F0AD5C4 ACA20004 */ sw $v0, 4($a1) +/* 0E20F8 7F0AD5C8 3C080700 */ lui $t0, 0x700 +/* 0E20FC 7F0AD5CC 3C18F550 */ lui $t8, 0xf550 +/* 0E2100 7F0AD5D0 02002025 */ move $a0, $s0 +/* 0E2104 7F0AD5D4 AC780000 */ sw $t8, ($v1) +/* 0E2108 7F0AD5D8 AC680004 */ sw $t0, 4($v1) +/* 0E210C 7F0AD5DC 26100008 */ addiu $s0, $s0, 8 +/* 0E2110 7F0AD5E0 3C19E600 */ lui $t9, 0xe600 +/* 0E2114 7F0AD5E4 AC990000 */ sw $t9, ($a0) +/* 0E2118 7F0AD5E8 AC800004 */ sw $zero, 4($a0) +/* 0E211C 7F0AD5EC 02003025 */ move $a2, $s0 +/* 0E2120 7F0AD5F0 3C0CF300 */ lui $t4, 0xf300 +/* 0E2124 7F0AD5F4 ACCC0000 */ sw $t4, ($a2) +/* 0E2128 7F0AD5F8 8E270008 */ lw $a3, 8($s1) +/* 0E212C 7F0AD5FC 26100008 */ addiu $s0, $s0, 8 +/* 0E2130 7F0AD600 02001025 */ move $v0, $s0 +/* 0E2134 7F0AD604 00076880 */ sll $t5, $a3, 2 +/* 0E2138 7F0AD608 25A7FFFF */ addiu $a3, $t5, -1 +/* 0E213C 7F0AD60C 28E107FF */ slti $at, $a3, 0x7ff +/* 0E2140 7F0AD610 10200003 */ beqz $at, .L7F0AD620 +/* 0E2144 7F0AD614 26100008 */ addiu $s0, $s0, 8 +/* 0E2148 7F0AD618 10000002 */ b .L7F0AD624 +/* 0E214C 7F0AD61C 00E02825 */ move $a1, $a3 +.L7F0AD620: +/* 0E2150 7F0AD620 240507FF */ li $a1, 2047 +.L7F0AD624: +/* 0E2154 7F0AD624 30AE0FFF */ andi $t6, $a1, 0xfff +/* 0E2158 7F0AD628 000E7B00 */ sll $t7, $t6, 0xc +/* 0E215C 7F0AD62C 01E8C025 */ or $t8, $t7, $t0 +/* 0E2160 7F0AD630 37190800 */ ori $t9, $t8, 0x800 +/* 0E2164 7F0AD634 ACD90004 */ sw $t9, 4($a2) +/* 0E2168 7F0AD638 3C0CE700 */ lui $t4, 0xe700 +/* 0E216C 7F0AD63C 3C0DF540 */ lui $t5, (0xF5400200 >> 16) # lui $t5, 0xf540 +/* 0E2170 7F0AD640 AC4C0000 */ sw $t4, ($v0) +/* 0E2174 7F0AD644 AC400004 */ sw $zero, 4($v0) +/* 0E2178 7F0AD648 35AD0200 */ ori $t5, (0xF5400200 & 0xFFFF) # ori $t5, $t5, 0x200 +/* 0E217C 7F0AD64C 02001825 */ move $v1, $s0 +/* 0E2180 7F0AD650 AC6D0000 */ sw $t5, ($v1) +/* 0E2184 7F0AD654 8E2F0000 */ lw $t7, ($s1) +/* 0E2188 7F0AD658 3C010008 */ lui $at, 8 +/* 0E218C 7F0AD65C 26100008 */ addiu $s0, $s0, 8 +/* 0E2190 7F0AD660 31F80001 */ andi $t8, $t7, 1 +/* 0E2194 7F0AD664 0018CD00 */ sll $t9, $t8, 0x14 +/* 0E2198 7F0AD668 03216025 */ or $t4, $t9, $at +/* 0E219C 7F0AD66C 358D0200 */ ori $t5, $t4, 0x200 +/* 0E21A0 7F0AD670 AC6D0004 */ sw $t5, 4($v1) +/* 0E21A4 7F0AD674 02002025 */ move $a0, $s0 +/* 0E21A8 7F0AD678 3C0EF200 */ lui $t6, 0xf200 +/* 0E21AC 7F0AD67C AC8E0000 */ sw $t6, ($a0) +/* 0E21B0 7F0AD680 8E2F0008 */ lw $t7, 8($s1) +/* 0E21B4 7F0AD684 3C010003 */ lui $at, (0x0003C000 >> 16) # lui $at, 3 +/* 0E21B8 7F0AD688 3421C000 */ ori $at, (0x0003C000 & 0xFFFF) # ori $at, $at, 0xc000 +/* 0E21BC 7F0AD68C 25F8FFFF */ addiu $t8, $t7, -1 +/* 0E21C0 7F0AD690 0018C880 */ sll $t9, $t8, 2 +/* 0E21C4 7F0AD694 332C0FFF */ andi $t4, $t9, 0xfff +/* 0E21C8 7F0AD698 01816825 */ or $t5, $t4, $at +/* 0E21CC 7F0AD69C AC8D0004 */ sw $t5, 4($a0) +/* 0E21D0 7F0AD6A0 26100008 */ addiu $s0, $s0, 8 +.L7F0AD6A4: +/* 0E21D4 7F0AD6A4 8FAE00F4 */ lw $t6, 0xf4($sp) +/* 0E21D8 7F0AD6A8 8E38000C */ lw $t8, 0xc($s1) +/* 0E21DC 7F0AD6AC 8FB90024 */ lw $t9, 0x24($sp) +/* 0E21E0 7F0AD6B0 8DCF0000 */ lw $t7, ($t6) +/* 0E21E4 7F0AD6B4 01F84021 */ addu $t0, $t7, $t8 +/* 0E21E8 7F0AD6B8 0328082A */ slt $at, $t9, $t0 +/* 0E21EC 7F0AD6BC 542000F5 */ bnezl $at, .L7F0ADA94 +/* 0E21F0 7F0AD6C0 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0E21F4 7F0AD6C4 8E240004 */ lw $a0, 4($s1) +/* 0E21F8 7F0AD6C8 00891821 */ addu $v1, $a0, $t1 +/* 0E21FC 7F0AD6CC 006A082A */ slt $at, $v1, $t2 +/* 0E2200 7F0AD6D0 542000B4 */ bnezl $at, .L7F0AD9A4 +/* 0E2204 7F0AD6D4 8E2E0008 */ lw $t6, 8($s1) +/* 0E2208 7F0AD6D8 8E2C0008 */ lw $t4, 8($s1) +/* 0E220C 7F0AD6DC 3C0D8004 */ lui $t5, %hi(text_orientation) +/* 0E2210 7F0AD6E0 006C1021 */ addu $v0, $v1, $t4 +/* 0E2214 7F0AD6E4 0162082A */ slt $at, $t3, $v0 +/* 0E2218 7F0AD6E8 54200077 */ bnezl $at, .L7F0AD8C8 +/* 0E221C 7F0AD6EC 0163082A */ slt $at, $t3, $v1 +/* 0E2220 7F0AD6F0 8DAD0E88 */ lw $t5, %lo(text_orientation)($t5) +/* 0E2224 7F0AD6F4 3C068004 */ lui $a2, %hi(text_x) +/* 0E2228 7F0AD6F8 24C60E98 */ addiu $a2, %lo(text_x) # addiu $a2, $a2, 0xe98 +/* 0E222C 7F0AD6FC 11A0003E */ beqz $t5, .L7F0AD7F8 +/* 0E2230 7F0AD700 3C078004 */ lui $a3, %hi(text_y) +/* 0E2234 7F0AD704 3C068004 */ lui $a2, %hi(text_x) +/* 0E2238 7F0AD708 24C60E98 */ addiu $a2, %lo(text_x) # addiu $a2, $a2, 0xe98 +/* 0E223C 7F0AD70C 8CCF0000 */ lw $t7, ($a2) +/* 0E2240 7F0AD710 3C078004 */ lui $a3, %hi(text_y) +/* 0E2244 7F0AD714 00087080 */ sll $t6, $t0, 2 +/* 0E2248 7F0AD718 24E70E9C */ addiu $a3, %lo(text_y) # addiu $a3, $a3, 0xe9c +/* 0E224C 7F0AD71C 01CFC021 */ addu $t8, $t6, $t7 +/* 0E2250 7F0AD720 8CEF0000 */ lw $t7, ($a3) +/* 0E2254 7F0AD724 33190FFF */ andi $t9, $t8, 0xfff +/* 0E2258 7F0AD728 01246823 */ subu $t5, $t1, $a0 +/* 0E225C 7F0AD72C 000D7080 */ sll $t6, $t5, 2 +/* 0E2260 7F0AD730 3C01E500 */ lui $at, 0xe500 +/* 0E2264 7F0AD734 03216025 */ or $t4, $t9, $at +/* 0E2268 7F0AD738 01CFC021 */ addu $t8, $t6, $t7 +/* 0E226C 7F0AD73C 33190FFF */ andi $t9, $t8, 0xfff +/* 0E2270 7F0AD740 00196B00 */ sll $t5, $t9, 0xc +/* 0E2274 7F0AD744 018D7025 */ or $t6, $t4, $t5 +/* 0E2278 7F0AD748 02001025 */ move $v0, $s0 +/* 0E227C 7F0AD74C AC4E0000 */ sw $t6, ($v0) +/* 0E2280 7F0AD750 8FAF00F4 */ lw $t7, 0xf4($sp) +/* 0E2284 7F0AD754 8CCC0000 */ lw $t4, ($a2) +/* 0E2288 7F0AD758 26100008 */ addiu $s0, $s0, 8 +/* 0E228C 7F0AD75C 8DF80000 */ lw $t8, ($t7) +/* 0E2290 7F0AD760 8E2F0004 */ lw $t7, 4($s1) +/* 0E2294 7F0AD764 02001825 */ move $v1, $s0 +/* 0E2298 7F0AD768 0018C880 */ sll $t9, $t8, 2 +/* 0E229C 7F0AD76C 032C6821 */ addu $t5, $t9, $t4 +/* 0E22A0 7F0AD770 8E390008 */ lw $t9, 8($s1) +/* 0E22A4 7F0AD774 012FC023 */ subu $t8, $t1, $t7 +/* 0E22A8 7F0AD778 8CEF0000 */ lw $t7, ($a3) +/* 0E22AC 7F0AD77C 31AE0FFF */ andi $t6, $t5, 0xfff +/* 0E22B0 7F0AD780 03196023 */ subu $t4, $t8, $t9 +/* 0E22B4 7F0AD784 000C6880 */ sll $t5, $t4, 2 +/* 0E22B8 7F0AD788 01AFC021 */ addu $t8, $t5, $t7 +/* 0E22BC 7F0AD78C 33190FFF */ andi $t9, $t8, 0xfff +/* 0E22C0 7F0AD790 00196300 */ sll $t4, $t9, 0xc +/* 0E22C4 7F0AD794 01CC6825 */ or $t5, $t6, $t4 +/* 0E22C8 7F0AD798 AC4D0004 */ sw $t5, 4($v0) +/* 0E22CC 7F0AD79C 3C0FB400 */ lui $t7, 0xb400 +/* 0E22D0 7F0AD7A0 AC6F0000 */ sw $t7, ($v1) +/* 0E22D4 7F0AD7A4 8E380008 */ lw $t8, 8($s1) +/* 0E22D8 7F0AD7A8 3C0C8004 */ lui $t4, %hi(text_s) +/* 0E22DC 7F0AD7AC 8D8C0EA0 */ lw $t4, %lo(text_s)($t4) +/* 0E22E0 7F0AD7B0 2719FFFF */ addiu $t9, $t8, -1 +/* 0E22E4 7F0AD7B4 00197140 */ sll $t6, $t9, 5 +/* 0E22E8 7F0AD7B8 3C188004 */ lui $t8, %hi(text_t) +/* 0E22EC 7F0AD7BC 8F190EA4 */ lw $t9, %lo(text_t)($t8) +/* 0E22F0 7F0AD7C0 01CC6821 */ addu $t5, $t6, $t4 +/* 0E22F4 7F0AD7C4 31AFFFFF */ andi $t7, $t5, 0xffff +/* 0E22F8 7F0AD7C8 26100008 */ addiu $s0, $s0, 8 +/* 0E22FC 7F0AD7CC 00197400 */ sll $t6, $t9, 0x10 +/* 0E2300 7F0AD7D0 01CF6025 */ or $t4, $t6, $t7 +/* 0E2304 7F0AD7D4 02002825 */ move $a1, $s0 +/* 0E2308 7F0AD7D8 3C180400 */ lui $t8, (0x0400FC00 >> 16) # lui $t8, 0x400 +/* 0E230C 7F0AD7DC 3718FC00 */ ori $t8, (0x0400FC00 & 0xFFFF) # ori $t8, $t8, 0xfc00 +/* 0E2310 7F0AD7E0 AC6C0004 */ sw $t4, 4($v1) +/* 0E2314 7F0AD7E4 3C0DB300 */ lui $t5, 0xb300 +/* 0E2318 7F0AD7E8 ACAD0000 */ sw $t5, ($a1) +/* 0E231C 7F0AD7EC ACB80004 */ sw $t8, 4($a1) +/* 0E2320 7F0AD7F0 100000A7 */ b .L7F0ADA90 +/* 0E2324 7F0AD7F4 26100008 */ addiu $s0, $s0, 8 +.L7F0AD7F8: +/* 0E2328 7F0AD7F8 8CCE0000 */ lw $t6, ($a2) +/* 0E232C 7F0AD7FC 0008C880 */ sll $t9, $t0, 2 +/* 0E2330 7F0AD800 24E70E9C */ addiu $a3, $a3, %lo(text_y) +/* 0E2334 7F0AD804 032E7821 */ addu $t7, $t9, $t6 +/* 0E2338 7F0AD808 8CEE0000 */ lw $t6, ($a3) +/* 0E233C 7F0AD80C 31EC0FFF */ andi $t4, $t7, 0xfff +/* 0E2340 7F0AD810 000C6B00 */ sll $t5, $t4, 0xc +/* 0E2344 7F0AD814 0002C880 */ sll $t9, $v0, 2 +/* 0E2348 7F0AD818 3C01E400 */ lui $at, 0xe400 +/* 0E234C 7F0AD81C 032E7821 */ addu $t7, $t9, $t6 +/* 0E2350 7F0AD820 31EC0FFF */ andi $t4, $t7, 0xfff +/* 0E2354 7F0AD824 01A1C025 */ or $t8, $t5, $at +/* 0E2358 7F0AD828 030C6825 */ or $t5, $t8, $t4 +/* 0E235C 7F0AD82C 02001825 */ move $v1, $s0 +/* 0E2360 7F0AD830 AC6D0000 */ sw $t5, ($v1) +/* 0E2364 7F0AD834 8FB900F4 */ lw $t9, 0xf4($sp) +/* 0E2368 7F0AD838 8CD80000 */ lw $t8, ($a2) +/* 0E236C 7F0AD83C 26100008 */ addiu $s0, $s0, 8 +/* 0E2370 7F0AD840 8F2E0000 */ lw $t6, ($t9) +/* 0E2374 7F0AD844 02002025 */ move $a0, $s0 +/* 0E2378 7F0AD848 26100008 */ addiu $s0, $s0, 8 +/* 0E237C 7F0AD84C 000E7880 */ sll $t7, $t6, 2 +/* 0E2380 7F0AD850 8E2E0004 */ lw $t6, 4($s1) +/* 0E2384 7F0AD854 01F86021 */ addu $t4, $t7, $t8 +/* 0E2388 7F0AD858 318D0FFF */ andi $t5, $t4, 0xfff +/* 0E238C 7F0AD85C 8CEC0000 */ lw $t4, ($a3) +/* 0E2390 7F0AD860 012E7821 */ addu $t7, $t1, $t6 +/* 0E2394 7F0AD864 000FC080 */ sll $t8, $t7, 2 +/* 0E2398 7F0AD868 000DCB00 */ sll $t9, $t5, 0xc +/* 0E239C 7F0AD86C 030C6821 */ addu $t5, $t8, $t4 +/* 0E23A0 7F0AD870 31AE0FFF */ andi $t6, $t5, 0xfff +/* 0E23A4 7F0AD874 032E7825 */ or $t7, $t9, $t6 +/* 0E23A8 7F0AD878 AC6F0004 */ sw $t7, 4($v1) +/* 0E23AC 7F0AD87C 3C18B400 */ lui $t8, 0xb400 +/* 0E23B0 7F0AD880 AC980000 */ sw $t8, ($a0) +/* 0E23B4 7F0AD884 3C0C8004 */ lui $t4, %hi(text_s) +/* 0E23B8 7F0AD888 8D8D0EA0 */ lw $t5, %lo(text_s)($t4) +/* 0E23BC 7F0AD88C 3C0E8004 */ lui $t6, %hi(text_t) +/* 0E23C0 7F0AD890 8DCE0EA4 */ lw $t6, %lo(text_t)($t6) +/* 0E23C4 7F0AD894 000DCC00 */ sll $t9, $t5, 0x10 +/* 0E23C8 7F0AD898 3C0D0400 */ lui $t5, (0x04000400 >> 16) # lui $t5, 0x400 +/* 0E23CC 7F0AD89C 31CFFFFF */ andi $t7, $t6, 0xffff +/* 0E23D0 7F0AD8A0 032FC025 */ or $t8, $t9, $t7 +/* 0E23D4 7F0AD8A4 02002825 */ move $a1, $s0 +/* 0E23D8 7F0AD8A8 AC980004 */ sw $t8, 4($a0) +/* 0E23DC 7F0AD8AC 35AD0400 */ ori $t5, (0x04000400 & 0xFFFF) # ori $t5, $t5, 0x400 +/* 0E23E0 7F0AD8B0 3C0CB300 */ lui $t4, 0xb300 +/* 0E23E4 7F0AD8B4 ACAC0000 */ sw $t4, ($a1) +/* 0E23E8 7F0AD8B8 ACAD0004 */ sw $t5, 4($a1) +/* 0E23EC 7F0AD8BC 10000074 */ b .L7F0ADA90 +/* 0E23F0 7F0AD8C0 26100008 */ addiu $s0, $s0, 8 +/* 0E23F4 7F0AD8C4 0163082A */ slt $at, $t3, $v1 +.L7F0AD8C8: +/* 0E23F8 7F0AD8C8 14200071 */ bnez $at, .L7F0ADA90 +/* 0E23FC 7F0AD8CC 3C068004 */ lui $a2, %hi(text_x) +/* 0E2400 7F0AD8D0 24C60E98 */ addiu $a2, %lo(text_x) # addiu $a2, $a2, 0xe98 +/* 0E2404 7F0AD8D4 8CD90000 */ lw $t9, ($a2) +/* 0E2408 7F0AD8D8 3C078004 */ lui $a3, %hi(text_y) +/* 0E240C 7F0AD8DC 00087080 */ sll $t6, $t0, 2 +/* 0E2410 7F0AD8E0 24E70E9C */ addiu $a3, %lo(text_y) # addiu $a3, $a3, 0xe9c +/* 0E2414 7F0AD8E4 01D97821 */ addu $t7, $t6, $t9 +/* 0E2418 7F0AD8E8 8CEE0000 */ lw $t6, ($a3) +/* 0E241C 7F0AD8EC 31F80FFF */ andi $t8, $t7, 0xfff +/* 0E2420 7F0AD8F0 00186300 */ sll $t4, $t8, 0xc +/* 0E2424 7F0AD8F4 3C01E400 */ lui $at, 0xe400 +/* 0E2428 7F0AD8F8 016EC821 */ addu $t9, $t3, $t6 +/* 0E242C 7F0AD8FC 332F0FFF */ andi $t7, $t9, 0xfff +/* 0E2430 7F0AD900 01816825 */ or $t5, $t4, $at +/* 0E2434 7F0AD904 01AFC025 */ or $t8, $t5, $t7 +/* 0E2438 7F0AD908 02001025 */ move $v0, $s0 +/* 0E243C 7F0AD90C AC580000 */ sw $t8, ($v0) +/* 0E2440 7F0AD910 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0E2444 7F0AD914 8CCD0000 */ lw $t5, ($a2) +/* 0E2448 7F0AD918 26100008 */ addiu $s0, $s0, 8 +/* 0E244C 7F0AD91C 8D8E0000 */ lw $t6, ($t4) +/* 0E2450 7F0AD920 02001825 */ move $v1, $s0 +/* 0E2454 7F0AD924 26100008 */ addiu $s0, $s0, 8 +/* 0E2458 7F0AD928 000EC880 */ sll $t9, $t6, 2 +/* 0E245C 7F0AD92C 8E2E0004 */ lw $t6, 4($s1) +/* 0E2460 7F0AD930 032D7821 */ addu $t7, $t9, $t5 +/* 0E2464 7F0AD934 31F80FFF */ andi $t8, $t7, 0xfff +/* 0E2468 7F0AD938 8CEF0000 */ lw $t7, ($a3) +/* 0E246C 7F0AD93C 012EC821 */ addu $t9, $t1, $t6 +/* 0E2470 7F0AD940 00196880 */ sll $t5, $t9, 2 +/* 0E2474 7F0AD944 00186300 */ sll $t4, $t8, 0xc +/* 0E2478 7F0AD948 01AFC021 */ addu $t8, $t5, $t7 +/* 0E247C 7F0AD94C 330E0FFF */ andi $t6, $t8, 0xfff +/* 0E2480 7F0AD950 018EC825 */ or $t9, $t4, $t6 +/* 0E2484 7F0AD954 AC590004 */ sw $t9, 4($v0) +/* 0E2488 7F0AD958 3C0DB400 */ lui $t5, 0xb400 +/* 0E248C 7F0AD95C AC6D0000 */ sw $t5, ($v1) +/* 0E2490 7F0AD960 3C0F8004 */ lui $t7, %hi(text_s) +/* 0E2494 7F0AD964 8DF80EA0 */ lw $t8, %lo(text_s)($t7) +/* 0E2498 7F0AD968 3C0E8004 */ lui $t6, %hi(text_t) +/* 0E249C 7F0AD96C 8DCE0EA4 */ lw $t6, %lo(text_t)($t6) +/* 0E24A0 7F0AD970 00186400 */ sll $t4, $t8, 0x10 +/* 0E24A4 7F0AD974 3C180400 */ lui $t8, (0x04000400 >> 16) # lui $t8, 0x400 +/* 0E24A8 7F0AD978 31D9FFFF */ andi $t9, $t6, 0xffff +/* 0E24AC 7F0AD97C 01996825 */ or $t5, $t4, $t9 +/* 0E24B0 7F0AD980 02002025 */ move $a0, $s0 +/* 0E24B4 7F0AD984 AC6D0004 */ sw $t5, 4($v1) +/* 0E24B8 7F0AD988 37180400 */ ori $t8, (0x04000400 & 0xFFFF) # ori $t8, $t8, 0x400 +/* 0E24BC 7F0AD98C 3C0FB300 */ lui $t7, 0xb300 +/* 0E24C0 7F0AD990 AC8F0000 */ sw $t7, ($a0) +/* 0E24C4 7F0AD994 AC980004 */ sw $t8, 4($a0) +/* 0E24C8 7F0AD998 1000003D */ b .L7F0ADA90 +/* 0E24CC 7F0AD99C 26100008 */ addiu $s0, $s0, 8 +/* 0E24D0 7F0AD9A0 8E2E0008 */ lw $t6, 8($s1) +.L7F0AD9A4: +/* 0E24D4 7F0AD9A4 3C068004 */ lui $a2, %hi(text_x) +/* 0E24D8 7F0AD9A8 24C60E98 */ addiu $a2, %lo(text_x) # addiu $a2, $a2, 0xe98 +/* 0E24DC 7F0AD9AC 006E1021 */ addu $v0, $v1, $t6 +/* 0E24E0 7F0AD9B0 004A082A */ slt $at, $v0, $t2 +/* 0E24E4 7F0AD9B4 14200036 */ bnez $at, .L7F0ADA90 +/* 0E24E8 7F0AD9B8 3C078004 */ lui $a3, %hi(text_y) +/* 0E24EC 7F0AD9BC 8CD90000 */ lw $t9, ($a2) +/* 0E24F0 7F0AD9C0 00086080 */ sll $t4, $t0, 2 +/* 0E24F4 7F0AD9C4 24E70E9C */ addiu $a3, %lo(text_y) # addiu $a3, $a3, 0xe9c +/* 0E24F8 7F0AD9C8 01996821 */ addu $t5, $t4, $t9 +/* 0E24FC 7F0AD9CC 8CF90000 */ lw $t9, ($a3) +/* 0E2500 7F0AD9D0 31AF0FFF */ andi $t7, $t5, 0xfff +/* 0E2504 7F0AD9D4 000FC300 */ sll $t8, $t7, 0xc +/* 0E2508 7F0AD9D8 00026080 */ sll $t4, $v0, 2 +/* 0E250C 7F0AD9DC 3C01E400 */ lui $at, 0xe400 +/* 0E2510 7F0AD9E0 01996821 */ addu $t5, $t4, $t9 +/* 0E2514 7F0AD9E4 31AF0FFF */ andi $t7, $t5, 0xfff +/* 0E2518 7F0AD9E8 03017025 */ or $t6, $t8, $at +/* 0E251C 7F0AD9EC 01CFC025 */ or $t8, $t6, $t7 +/* 0E2520 7F0AD9F0 02001825 */ move $v1, $s0 +/* 0E2524 7F0AD9F4 AC780000 */ sw $t8, ($v1) +/* 0E2528 7F0AD9F8 8FAC00F4 */ lw $t4, 0xf4($sp) +/* 0E252C 7F0AD9FC 8CCE0000 */ lw $t6, ($a2) +/* 0E2530 7F0ADA00 26100008 */ addiu $s0, $s0, 8 +/* 0E2534 7F0ADA04 8D990000 */ lw $t9, ($t4) +/* 0E2538 7F0ADA08 02002025 */ move $a0, $s0 +/* 0E253C 7F0ADA0C 26100008 */ addiu $s0, $s0, 8 +/* 0E2540 7F0ADA10 00196880 */ sll $t5, $t9, 2 +/* 0E2544 7F0ADA14 01AE7821 */ addu $t7, $t5, $t6 +/* 0E2548 7F0ADA18 8CED0000 */ lw $t5, ($a3) +/* 0E254C 7F0ADA1C 31F80FFF */ andi $t8, $t7, 0xfff +/* 0E2550 7F0ADA20 000AC880 */ sll $t9, $t2, 2 +/* 0E2554 7F0ADA24 032D7021 */ addu $t6, $t9, $t5 +/* 0E2558 7F0ADA28 31CF0FFF */ andi $t7, $t6, 0xfff +/* 0E255C 7F0ADA2C 00186300 */ sll $t4, $t8, 0xc +/* 0E2560 7F0ADA30 018FC025 */ or $t8, $t4, $t7 +/* 0E2564 7F0ADA34 AC780004 */ sw $t8, 4($v1) +/* 0E2568 7F0ADA38 3C19B400 */ lui $t9, 0xb400 +/* 0E256C 7F0ADA3C AC990000 */ sw $t9, ($a0) +/* 0E2570 7F0ADA40 8E2E0004 */ lw $t6, 4($s1) +/* 0E2574 7F0ADA44 01496823 */ subu $t5, $t2, $t1 +/* 0E2578 7F0ADA48 3C188004 */ lui $t8, %hi(text_t) +/* 0E257C 7F0ADA4C 01AE6023 */ subu $t4, $t5, $t6 +/* 0E2580 7F0ADA50 8F180EA4 */ lw $t8, %lo(text_t)($t8) +/* 0E2584 7F0ADA54 000C7940 */ sll $t7, $t4, 5 +/* 0E2588 7F0ADA58 3C0E8004 */ lui $t6, %hi(text_s) +/* 0E258C 7F0ADA5C 8DCC0EA0 */ lw $t4, %lo(text_s)($t6) +/* 0E2590 7F0ADA60 01F8C821 */ addu $t9, $t7, $t8 +/* 0E2594 7F0ADA64 332DFFFF */ andi $t5, $t9, 0xffff +/* 0E2598 7F0ADA68 000C7C00 */ sll $t7, $t4, 0x10 +/* 0E259C 7F0ADA6C 01EDC025 */ or $t8, $t7, $t5 +/* 0E25A0 7F0ADA70 02002825 */ move $a1, $s0 +/* 0E25A4 7F0ADA74 AC980004 */ sw $t8, 4($a0) +/* 0E25A8 7F0ADA78 3C0E0400 */ lui $t6, (0x04000400 >> 16) # lui $t6, 0x400 +/* 0E25AC 7F0ADA7C 35CE0400 */ ori $t6, (0x04000400 & 0xFFFF) # ori $t6, $t6, 0x400 +/* 0E25B0 7F0ADA80 3C19B300 */ lui $t9, 0xb300 +/* 0E25B4 7F0ADA84 ACB90000 */ sw $t9, ($a1) +/* 0E25B8 7F0ADA88 ACAE0004 */ sw $t6, 4($a1) +/* 0E25BC 7F0ADA8C 26100008 */ addiu $s0, $s0, 8 +.L7F0ADA90: +/* 0E25C0 7F0ADA90 8FAC00F4 */ lw $t4, 0xf4($sp) +.L7F0ADA94: +/* 0E25C4 7F0ADA94 8E2D000C */ lw $t5, 0xc($s1) +/* 0E25C8 7F0ADA98 02001025 */ move $v0, $s0 +/* 0E25CC 7F0ADA9C 8D8F0000 */ lw $t7, ($t4) +/* 0E25D0 7F0ADAA0 01EDC021 */ addu $t8, $t7, $t5 +/* 0E25D4 7F0ADAA4 AD980000 */ sw $t8, ($t4) +/* 0E25D8 7F0ADAA8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0E25DC 7F0ADAAC 8FB10018 */ lw $s1, 0x18($sp) +/* 0E25E0 7F0ADAB0 8FB00014 */ lw $s0, 0x14($sp) +/* 0E25E4 7F0ADAB4 03E00008 */ jr $ra +/* 0E25E8 7F0ADAB8 27BD00F0 */ addiu $sp, $sp, 0xf0 +) +#endif + + + + + +#ifdef NONMATCHING +void en_text_write_stuff(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel en_text_write_stuff +/* 0E25EC 7F0ADABC 27BDFF58 */ addiu $sp, $sp, -0xa8 +/* 0E25F0 7F0ADAC0 240E0001 */ li $t6, 1 +/* 0E25F4 7F0ADAC4 3C018004 */ lui $at, %hi(D_80040EA8) +/* 0E25F8 7F0ADAC8 8FB800D0 */ lw $t8, 0xd0($sp) +/* 0E25FC 7F0ADACC AFBF005C */ sw $ra, 0x5c($sp) +/* 0E2600 7F0ADAD0 AFBE0058 */ sw $fp, 0x58($sp) +/* 0E2604 7F0ADAD4 AFB70054 */ sw $s7, 0x54($sp) +/* 0E2608 7F0ADAD8 AFB60050 */ sw $s6, 0x50($sp) +/* 0E260C 7F0ADADC AFB5004C */ sw $s5, 0x4c($sp) +/* 0E2610 7F0ADAE0 AFB40048 */ sw $s4, 0x48($sp) +/* 0E2614 7F0ADAE4 AFB30044 */ sw $s3, 0x44($sp) +/* 0E2618 7F0ADAE8 AFB20040 */ sw $s2, 0x40($sp) +/* 0E261C 7F0ADAEC AFB1003C */ sw $s1, 0x3c($sp) +/* 0E2620 7F0ADAF0 AFB00038 */ sw $s0, 0x38($sp) +/* 0E2624 7F0ADAF4 AC2E0EA8 */ sw $t6, %lo(D_80040EA8)($at) +/* 0E2628 7F0ADAF8 8CCF0000 */ lw $t7, ($a2) +/* 0E262C 7F0ADAFC 8CB40000 */ lw $s4, ($a1) +/* 0E2630 7F0ADB00 00E08025 */ move $s0, $a3 +/* 0E2634 7F0ADB04 00A08825 */ move $s1, $a1 +/* 0E2638 7F0ADB08 00C09025 */ move $s2, $a2 +/* 0E263C 7F0ADB0C 00809825 */ move $s3, $a0 +/* 0E2640 7F0ADB10 24150048 */ li $s5, 72 +/* 0E2644 7F0ADB14 17000006 */ bnez $t8, .L7F0ADB30 +/* 0E2648 7F0ADB18 AFAF00A0 */ sw $t7, 0xa0($sp) +/* 0E264C 7F0ADB1C 8FB900B8 */ lw $t9, 0xb8($sp) +/* 0E2650 7F0ADB20 8F28088C */ lw $t0, 0x88c($t9) +/* 0E2654 7F0ADB24 8F290890 */ lw $t1, 0x890($t9) +/* 0E2658 7F0ADB28 01095021 */ addu $t2, $t0, $t1 +/* 0E265C 7F0ADB2C AFAA00D0 */ sw $t2, 0xd0($sp) +.L7F0ADB30: +/* 0E2660 7F0ADB30 3C0B8005 */ lui $t3, %hi(j_text_trigger) +/* 0E2664 7F0ADB34 8D6B84D0 */ lw $t3, %lo(j_text_trigger)($t3) +/* 0E2668 7F0ADB38 8FAC00D0 */ lw $t4, 0xd0($sp) +/* 0E266C 7F0ADB3C 02602025 */ move $a0, $s3 +/* 0E2670 7F0ADB40 11600004 */ beqz $t3, .L7F0ADB54 +/* 0E2674 7F0ADB44 2981000E */ slti $at, $t4, 0xe +/* 0E2678 7F0ADB48 10200002 */ beqz $at, .L7F0ADB54 +/* 0E267C 7F0ADB4C 240D000E */ li $t5, 14 +/* 0E2680 7F0ADB50 AFAD00D0 */ sw $t5, 0xd0($sp) +.L7F0ADB54: +/* 0E2684 7F0ADB54 8FA300C0 */ lw $v1, 0xc0($sp) +/* 0E2688 7F0ADB58 3C0EFA00 */ lui $t6, 0xfa00 +/* 0E268C 7F0ADB5C AC8E0000 */ sw $t6, ($a0) +/* 0E2690 7F0ADB60 0003CE02 */ srl $t9, $v1, 0x18 +/* 0E2694 7F0ADB64 00035402 */ srl $t2, $v1, 0x10 +/* 0E2698 7F0ADB68 314B00FF */ andi $t3, $t2, 0xff +/* 0E269C 7F0ADB6C 00194600 */ sll $t0, $t9, 0x18 +/* 0E26A0 7F0ADB70 00037A02 */ srl $t7, $v1, 8 +/* 0E26A4 7F0ADB74 31F800FF */ andi $t8, $t7, 0xff +/* 0E26A8 7F0ADB78 000B6400 */ sll $t4, $t3, 0x10 +/* 0E26AC 7F0ADB7C 010C6825 */ or $t5, $t0, $t4 +/* 0E26B0 7F0ADB80 0018CA00 */ sll $t9, $t8, 8 +/* 0E26B4 7F0ADB84 01B94825 */ or $t1, $t5, $t9 +/* 0E26B8 7F0ADB88 306B00FF */ andi $t3, $v1, 0xff +/* 0E26BC 7F0ADB8C 012B4025 */ or $t0, $t1, $t3 +/* 0E26C0 7F0ADB90 AC880004 */ sw $t0, 4($a0) +/* 0E26C4 7F0ADB94 92020000 */ lbu $v0, ($s0) +/* 0E26C8 7F0ADB98 26730008 */ addiu $s3, $s3, 8 +/* 0E26CC 7F0ADB9C 8FB700BC */ lw $s7, 0xbc($sp) +/* 0E26D0 7F0ADBA0 10400075 */ beqz $v0, .L7F0ADD78 +/* 0E26D4 7F0ADBA4 8FBE00C4 */ lw $fp, 0xc4($sp) +/* 0E26D8 7F0ADBA8 27B6006C */ addiu $s6, $sp, 0x6c +/* 0E26DC 7F0ADBAC 24010020 */ li $at, 32 +.L7F0ADBB0: +/* 0E26E0 7F0ADBB0 54410008 */ bnel $v0, $at, .L7F0ADBD4 +/* 0E26E4 7F0ADBB4 2401000A */ li $at, 10 +/* 0E26E8 7F0ADBB8 8E2C0000 */ lw $t4, ($s1) +/* 0E26EC 7F0ADBBC 24150048 */ li $s5, 72 +/* 0E26F0 7F0ADBC0 26100001 */ addiu $s0, $s0, 1 +/* 0E26F4 7F0ADBC4 258E0005 */ addiu $t6, $t4, 5 +/* 0E26F8 7F0ADBC8 10000068 */ b .L7F0ADD6C +/* 0E26FC 7F0ADBCC AE2E0000 */ sw $t6, ($s1) +/* 0E2700 7F0ADBD0 2401000A */ li $at, 10 +.L7F0ADBD4: +/* 0E2704 7F0ADBD4 54410014 */ bnel $v0, $at, .L7F0ADC28 +/* 0E2708 7F0ADBD8 28410080 */ slti $at, $v0, 0x80 +/* 0E270C 7F0ADBDC 3C028004 */ lui $v0, %hi(overlap_correction) +/* 0E2710 7F0ADBE0 8C420E90 */ lw $v0, %lo(overlap_correction)($v0) +/* 0E2714 7F0ADBE4 24150048 */ li $s5, 72 +/* 0E2718 7F0ADBE8 8FAA00D0 */ lw $t2, 0xd0($sp) +/* 0E271C 7F0ADBEC 04400008 */ bltz $v0, .L7F0ADC10 +/* 0E2720 7F0ADBF0 26100001 */ addiu $s0, $s0, 1 +/* 0E2724 7F0ADBF4 8E2F0000 */ lw $t7, ($s1) +/* 0E2728 7F0ADBF8 568F0006 */ bnel $s4, $t7, .L7F0ADC14 +/* 0E272C 7F0ADBFC 8E590000 */ lw $t9, ($s2) +/* 0E2730 7F0ADC00 8E580000 */ lw $t8, ($s2) +/* 0E2734 7F0ADC04 03026821 */ addu $t5, $t8, $v0 +/* 0E2738 7F0ADC08 10000004 */ b .L7F0ADC1C +/* 0E273C 7F0ADC0C AE4D0000 */ sw $t5, ($s2) +.L7F0ADC10: +/* 0E2740 7F0ADC10 8E590000 */ lw $t9, ($s2) +.L7F0ADC14: +/* 0E2744 7F0ADC14 032A4821 */ addu $t1, $t9, $t2 +/* 0E2748 7F0ADC18 AE490000 */ sw $t1, ($s2) +.L7F0ADC1C: +/* 0E274C 7F0ADC1C 10000053 */ b .L7F0ADD6C +/* 0E2750 7F0ADC20 AE340000 */ sw $s4, ($s1) +/* 0E2754 7F0ADC24 28410080 */ slti $at, $v0, 0x80 +.L7F0ADC28: +/* 0E2758 7F0ADC28 1020001D */ beqz $at, .L7F0ADCA0 +/* 0E275C 7F0ADC2C 3C0E8004 */ lui $t6, %hi(D_80040EFC) +/* 0E2760 7F0ADC30 24030018 */ li $v1, 24 +/* 0E2764 7F0ADC34 00430019 */ multu $v0, $v1 +/* 0E2768 7F0ADC38 8FA800B8 */ lw $t0, 0xb8($sp) +/* 0E276C 7F0ADC3C 8FB800A0 */ lw $t8, 0xa0($sp) +/* 0E2770 7F0ADC40 8FAD00C8 */ lw $t5, 0xc8($sp) +/* 0E2774 7F0ADC44 8FB900CC */ lw $t9, 0xcc($sp) +/* 0E2778 7F0ADC48 02602025 */ move $a0, $s3 +/* 0E277C 7F0ADC4C 02202825 */ move $a1, $s1 +/* 0E2780 7F0ADC50 02403025 */ move $a2, $s2 +/* 0E2784 7F0ADC54 AFB70014 */ sw $s7, 0x14($sp) +/* 0E2788 7F0ADC58 AFB40018 */ sw $s4, 0x18($sp) +/* 0E278C 7F0ADC5C 00005812 */ mflo $t3 +/* 0E2790 7F0ADC60 01683821 */ addu $a3, $t3, $t0 +/* 0E2794 7F0ADC64 24E7FCE8 */ addiu $a3, $a3, -0x318 +/* 0E2798 7F0ADC68 02A30019 */ multu $s5, $v1 +/* 0E279C 7F0ADC6C AFBE0020 */ sw $fp, 0x20($sp) +/* 0E27A0 7F0ADC70 AFB8001C */ sw $t8, 0x1c($sp) +/* 0E27A4 7F0ADC74 AFAD0024 */ sw $t5, 0x24($sp) +/* 0E27A8 7F0ADC78 AFB90028 */ sw $t9, 0x28($sp) +/* 0E27AC 7F0ADC7C 00006012 */ mflo $t4 +/* 0E27B0 7F0ADC80 01887021 */ addu $t6, $t4, $t0 +/* 0E27B4 7F0ADC84 25CFFCE8 */ addiu $t7, $t6, -0x318 +/* 0E27B8 7F0ADC88 0FC2B43E */ jal sub_GAME_7F0AD0F8 +/* 0E27BC 7F0ADC8C AFAF0010 */ sw $t7, 0x10($sp) +/* 0E27C0 7F0ADC90 00409825 */ move $s3, $v0 +/* 0E27C4 7F0ADC94 92150000 */ lbu $s5, ($s0) +/* 0E27C8 7F0ADC98 10000034 */ b .L7F0ADD6C +/* 0E27CC 7F0ADC9C 26100001 */ addiu $s0, $s0, 1 +.L7F0ADCA0: +/* 0E27D0 7F0ADCA0 25CE0EFC */ addiu $t6, $t6, %lo(D_80040EFC) +/* 0E27D4 7F0ADCA4 8DC10000 */ lw $at, ($t6) +/* 0E27D8 7F0ADCA8 920A0001 */ lbu $t2, 1($s0) +/* 0E27DC 7F0ADCAC 304B007F */ andi $t3, $v0, 0x7f +/* 0E27E0 7F0ADCB0 AEC10000 */ sw $at, ($s6) +/* 0E27E4 7F0ADCB4 8DD80004 */ lw $t8, 4($t6) +/* 0E27E8 7F0ADCB8 000B61C0 */ sll $t4, $t3, 7 +/* 0E27EC 7F0ADCBC 3149007F */ andi $t1, $t2, 0x7f +/* 0E27F0 7F0ADCC0 AED80004 */ sw $t8, 4($s6) +/* 0E27F4 7F0ADCC4 8DC10008 */ lw $at, 8($t6) +/* 0E27F8 7F0ADCC8 012C1825 */ or $v1, $t1, $t4 +/* 0E27FC 7F0ADCCC 3064FFFF */ andi $a0, $v1, 0xffff +/* 0E2800 7F0ADCD0 AEC10008 */ sw $at, 8($s6) +/* 0E2804 7F0ADCD4 8DD8000C */ lw $t8, 0xc($t6) +/* 0E2808 7F0ADCD8 308D2000 */ andi $t5, $a0, 0x2000 +/* 0E280C 7F0ADCDC 308B1FFF */ andi $t3, $a0, 0x1fff +/* 0E2810 7F0ADCE0 AED8000C */ sw $t8, 0xc($s6) +/* 0E2814 7F0ADCE4 8DC10010 */ lw $at, 0x10($t6) +/* 0E2818 7F0ADCE8 2419000F */ li $t9, 15 +/* 0E281C 7F0ADCEC 240A0010 */ li $t2, 16 +/* 0E2820 7F0ADCF0 AEC10010 */ sw $at, 0x10($s6) +/* 0E2824 7F0ADCF4 8DD80014 */ lw $t8, 0x14($t6) +/* 0E2828 7F0ADCF8 296103C7 */ slti $at, $t3, 0x3c7 +/* 0E282C 7F0ADCFC 11A00003 */ beqz $t5, .L7F0ADD0C +/* 0E2830 7F0ADD00 AED80014 */ sw $t8, 0x14($s6) +/* 0E2834 7F0ADD04 AFB90078 */ sw $t9, 0x78($sp) +/* 0E2838 7F0ADD08 AFAA0074 */ sw $t2, 0x74($sp) +.L7F0ADD0C: +/* 0E283C 7F0ADD0C 54200003 */ bnezl $at, .L7F0ADD1C +/* 0E2840 7F0ADD10 24890080 */ addiu $t1, $a0, 0x80 +/* 0E2844 7F0ADD14 24040002 */ li $a0, 2 +/* 0E2848 7F0ADD18 24890080 */ addiu $t1, $a0, 0x80 +.L7F0ADD1C: +/* 0E284C 7F0ADD1C 0FC3068C */ jal something_with_LnameX +/* 0E2850 7F0ADD20 AFA9006C */ sw $t1, 0x6c($sp) +/* 0E2854 7F0ADD24 8FAC00A0 */ lw $t4, 0xa0($sp) +/* 0E2858 7F0ADD28 8FA800C8 */ lw $t0, 0xc8($sp) +/* 0E285C 7F0ADD2C 8FAF00CC */ lw $t7, 0xcc($sp) +/* 0E2860 7F0ADD30 AFA20080 */ sw $v0, 0x80($sp) +/* 0E2864 7F0ADD34 02602025 */ move $a0, $s3 +/* 0E2868 7F0ADD38 02202825 */ move $a1, $s1 +/* 0E286C 7F0ADD3C 02403025 */ move $a2, $s2 +/* 0E2870 7F0ADD40 02C03825 */ move $a3, $s6 +/* 0E2874 7F0ADD44 AFB60010 */ sw $s6, 0x10($sp) +/* 0E2878 7F0ADD48 AFB70014 */ sw $s7, 0x14($sp) +/* 0E287C 7F0ADD4C AFB40018 */ sw $s4, 0x18($sp) +/* 0E2880 7F0ADD50 AFBE0020 */ sw $fp, 0x20($sp) +/* 0E2884 7F0ADD54 AFAC001C */ sw $t4, 0x1c($sp) +/* 0E2888 7F0ADD58 AFA80024 */ sw $t0, 0x24($sp) +/* 0E288C 7F0ADD5C 0FC2B43E */ jal sub_GAME_7F0AD0F8 +/* 0E2890 7F0ADD60 AFAF0028 */ sw $t7, 0x28($sp) +/* 0E2894 7F0ADD64 00409825 */ move $s3, $v0 +/* 0E2898 7F0ADD68 26100002 */ addiu $s0, $s0, 2 +.L7F0ADD6C: +/* 0E289C 7F0ADD6C 92020000 */ lbu $v0, ($s0) +/* 0E28A0 7F0ADD70 5440FF8F */ bnezl $v0, .L7F0ADBB0 +/* 0E28A4 7F0ADD74 24010020 */ li $at, 32 +.L7F0ADD78: +/* 0E28A8 7F0ADD78 8FBF005C */ lw $ra, 0x5c($sp) +/* 0E28AC 7F0ADD7C 02601025 */ move $v0, $s3 +/* 0E28B0 7F0ADD80 8FB30044 */ lw $s3, 0x44($sp) +/* 0E28B4 7F0ADD84 8FB00038 */ lw $s0, 0x38($sp) +/* 0E28B8 7F0ADD88 8FB1003C */ lw $s1, 0x3c($sp) +/* 0E28BC 7F0ADD8C 8FB20040 */ lw $s2, 0x40($sp) +/* 0E28C0 7F0ADD90 8FB40048 */ lw $s4, 0x48($sp) +/* 0E28C4 7F0ADD94 8FB5004C */ lw $s5, 0x4c($sp) +/* 0E28C8 7F0ADD98 8FB60050 */ lw $s6, 0x50($sp) +/* 0E28CC 7F0ADD9C 8FB70054 */ lw $s7, 0x54($sp) +/* 0E28D0 7F0ADDA0 8FBE0058 */ lw $fp, 0x58($sp) +/* 0E28D4 7F0ADDA4 03E00008 */ jr $ra +/* 0E28D8 7F0ADDA8 27BD00A8 */ addiu $sp, $sp, 0xa8 +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel en_text_write_stuff +/* 0E25EC 7F0ADABC 27BDFF58 */ addiu $sp, $sp, -0xa8 +/* 0E25F0 7F0ADAC0 240E0001 */ li $t6, 1 +/* 0E25F4 7F0ADAC4 3C018004 */ lui $at, %hi(D_80040EA8) +/* 0E25F8 7F0ADAC8 8FB800D0 */ lw $t8, 0xd0($sp) +/* 0E25FC 7F0ADACC AFBF005C */ sw $ra, 0x5c($sp) +/* 0E2600 7F0ADAD0 AFBE0058 */ sw $fp, 0x58($sp) +/* 0E2604 7F0ADAD4 AFB70054 */ sw $s7, 0x54($sp) +/* 0E2608 7F0ADAD8 AFB60050 */ sw $s6, 0x50($sp) +/* 0E260C 7F0ADADC AFB5004C */ sw $s5, 0x4c($sp) +/* 0E2610 7F0ADAE0 AFB40048 */ sw $s4, 0x48($sp) +/* 0E2614 7F0ADAE4 AFB30044 */ sw $s3, 0x44($sp) +/* 0E2618 7F0ADAE8 AFB20040 */ sw $s2, 0x40($sp) +/* 0E261C 7F0ADAEC AFB1003C */ sw $s1, 0x3c($sp) +/* 0E2620 7F0ADAF0 AFB00038 */ sw $s0, 0x38($sp) +/* 0E2624 7F0ADAF4 AC2E0EA8 */ sw $t6, %lo(D_80040EA8)($at) +/* 0E2628 7F0ADAF8 8CCF0000 */ lw $t7, ($a2) +/* 0E262C 7F0ADAFC 8CB40000 */ lw $s4, ($a1) +/* 0E2630 7F0ADB00 00E08025 */ move $s0, $a3 +/* 0E2634 7F0ADB04 00A08825 */ move $s1, $a1 +/* 0E2638 7F0ADB08 00C09025 */ move $s2, $a2 +/* 0E263C 7F0ADB0C 00809825 */ move $s3, $a0 +/* 0E2640 7F0ADB10 24150048 */ li $s5, 72 +/* 0E2644 7F0ADB14 17000006 */ bnez $t8, .L7F0ADB30 +/* 0E2648 7F0ADB18 AFAF00A0 */ sw $t7, 0xa0($sp) +/* 0E264C 7F0ADB1C 8FB900B8 */ lw $t9, 0xb8($sp) +/* 0E2650 7F0ADB20 8F28088C */ lw $t0, 0x88c($t9) +/* 0E2654 7F0ADB24 8F290890 */ lw $t1, 0x890($t9) +/* 0E2658 7F0ADB28 01095021 */ addu $t2, $t0, $t1 +/* 0E265C 7F0ADB2C AFAA00D0 */ sw $t2, 0xd0($sp) +.L7F0ADB30: +/* 0E2660 7F0ADB30 3C0B8005 */ lui $t3, %hi(j_text_trigger) +/* 0E2664 7F0ADB34 8D6B84D0 */ lw $t3, %lo(j_text_trigger)($t3) +/* 0E2668 7F0ADB38 8FAC00D0 */ lw $t4, 0xd0($sp) +/* 0E266C 7F0ADB3C 02602025 */ move $a0, $s3 +/* 0E2670 7F0ADB40 11600004 */ beqz $t3, .L7F0ADB54 +/* 0E2674 7F0ADB44 2981000E */ slti $at, $t4, 0xe +/* 0E2678 7F0ADB48 10200002 */ beqz $at, .L7F0ADB54 +/* 0E267C 7F0ADB4C 240D000E */ li $t5, 14 +/* 0E2680 7F0ADB50 AFAD00D0 */ sw $t5, 0xd0($sp) +.L7F0ADB54: +/* 0E2684 7F0ADB54 8FA300C0 */ lw $v1, 0xc0($sp) +/* 0E2688 7F0ADB58 3C0EFA00 */ lui $t6, 0xfa00 +/* 0E268C 7F0ADB5C AC8E0000 */ sw $t6, ($a0) +/* 0E2690 7F0ADB60 0003CE02 */ srl $t9, $v1, 0x18 +/* 0E2694 7F0ADB64 00035402 */ srl $t2, $v1, 0x10 +/* 0E2698 7F0ADB68 314B00FF */ andi $t3, $t2, 0xff +/* 0E269C 7F0ADB6C 00194600 */ sll $t0, $t9, 0x18 +/* 0E26A0 7F0ADB70 00037A02 */ srl $t7, $v1, 8 +/* 0E26A4 7F0ADB74 31F800FF */ andi $t8, $t7, 0xff +/* 0E26A8 7F0ADB78 000B6400 */ sll $t4, $t3, 0x10 +/* 0E26AC 7F0ADB7C 010C6825 */ or $t5, $t0, $t4 +/* 0E26B0 7F0ADB80 0018CA00 */ sll $t9, $t8, 8 +/* 0E26B4 7F0ADB84 01B94825 */ or $t1, $t5, $t9 +/* 0E26B8 7F0ADB88 306B00FF */ andi $t3, $v1, 0xff +/* 0E26BC 7F0ADB8C 012B4025 */ or $t0, $t1, $t3 +/* 0E26C0 7F0ADB90 AC880004 */ sw $t0, 4($a0) +/* 0E26C4 7F0ADB94 92020000 */ lbu $v0, ($s0) +/* 0E26C8 7F0ADB98 26730008 */ addiu $s3, $s3, 8 +/* 0E26CC 7F0ADB9C 8FB700BC */ lw $s7, 0xbc($sp) +/* 0E26D0 7F0ADBA0 10400075 */ beqz $v0, .L7F0ADD78 +/* 0E26D4 7F0ADBA4 8FBE00C4 */ lw $fp, 0xc4($sp) +/* 0E26D8 7F0ADBA8 27B6006C */ addiu $s6, $sp, 0x6c +/* 0E26DC 7F0ADBAC 24010020 */ li $at, 32 +.L7F0ADBB0: +/* 0E26E0 7F0ADBB0 54410008 */ bnel $v0, $at, .L7F0ADBD4 +/* 0E26E4 7F0ADBB4 2401000A */ li $at, 10 +/* 0E26E8 7F0ADBB8 8E2C0000 */ lw $t4, ($s1) +/* 0E26EC 7F0ADBBC 24150048 */ li $s5, 72 +/* 0E26F0 7F0ADBC0 26100001 */ addiu $s0, $s0, 1 +/* 0E26F4 7F0ADBC4 258E0005 */ addiu $t6, $t4, 5 +/* 0E26F8 7F0ADBC8 10000068 */ b .L7F0ADD6C +/* 0E26FC 7F0ADBCC AE2E0000 */ sw $t6, ($s1) +/* 0E2700 7F0ADBD0 2401000A */ li $at, 10 +.L7F0ADBD4: +/* 0E2704 7F0ADBD4 54410014 */ bnel $v0, $at, .L7F0ADC28 +/* 0E2708 7F0ADBD8 28410080 */ slti $at, $v0, 0x80 +/* 0E270C 7F0ADBDC 3C028004 */ lui $v0, %hi(overlap_correction) +/* 0E2710 7F0ADBE0 8C420E90 */ lw $v0, %lo(overlap_correction)($v0) +/* 0E2714 7F0ADBE4 24150048 */ li $s5, 72 +/* 0E2718 7F0ADBE8 8FAA00D0 */ lw $t2, 0xd0($sp) +/* 0E271C 7F0ADBEC 04400008 */ bltz $v0, .L7F0ADC10 +/* 0E2720 7F0ADBF0 26100001 */ addiu $s0, $s0, 1 +/* 0E2724 7F0ADBF4 8E2F0000 */ lw $t7, ($s1) +/* 0E2728 7F0ADBF8 568F0006 */ bnel $s4, $t7, .L7F0ADC14 +/* 0E272C 7F0ADBFC 8E590000 */ lw $t9, ($s2) +/* 0E2730 7F0ADC00 8E580000 */ lw $t8, ($s2) +/* 0E2734 7F0ADC04 03026821 */ addu $t5, $t8, $v0 +/* 0E2738 7F0ADC08 10000004 */ b .L7F0ADC1C +/* 0E273C 7F0ADC0C AE4D0000 */ sw $t5, ($s2) +.L7F0ADC10: +/* 0E2740 7F0ADC10 8E590000 */ lw $t9, ($s2) +.L7F0ADC14: +/* 0E2744 7F0ADC14 032A4821 */ addu $t1, $t9, $t2 +/* 0E2748 7F0ADC18 AE490000 */ sw $t1, ($s2) +.L7F0ADC1C: +/* 0E274C 7F0ADC1C 10000053 */ b .L7F0ADD6C +/* 0E2750 7F0ADC20 AE340000 */ sw $s4, ($s1) +/* 0E2754 7F0ADC24 28410080 */ slti $at, $v0, 0x80 +.L7F0ADC28: +/* 0E2758 7F0ADC28 1020001D */ beqz $at, .L7F0ADCA0 +/* 0E275C 7F0ADC2C 3C0E8004 */ lui $t6, %hi(D_80040EFC) +/* 0E2760 7F0ADC30 24030018 */ li $v1, 24 +/* 0E2764 7F0ADC34 00430019 */ multu $v0, $v1 +/* 0E2768 7F0ADC38 8FA800B8 */ lw $t0, 0xb8($sp) +/* 0E276C 7F0ADC3C 8FB800A0 */ lw $t8, 0xa0($sp) +/* 0E2770 7F0ADC40 8FAD00C8 */ lw $t5, 0xc8($sp) +/* 0E2774 7F0ADC44 8FB900CC */ lw $t9, 0xcc($sp) +/* 0E2778 7F0ADC48 02602025 */ move $a0, $s3 +/* 0E277C 7F0ADC4C 02202825 */ move $a1, $s1 +/* 0E2780 7F0ADC50 02403025 */ move $a2, $s2 +/* 0E2784 7F0ADC54 AFB70014 */ sw $s7, 0x14($sp) +/* 0E2788 7F0ADC58 AFB40018 */ sw $s4, 0x18($sp) +/* 0E278C 7F0ADC5C 00005812 */ mflo $t3 +/* 0E2790 7F0ADC60 01683821 */ addu $a3, $t3, $t0 +/* 0E2794 7F0ADC64 24E7FCE8 */ addiu $a3, $a3, -0x318 +/* 0E2798 7F0ADC68 02A30019 */ multu $s5, $v1 +/* 0E279C 7F0ADC6C AFBE0020 */ sw $fp, 0x20($sp) +/* 0E27A0 7F0ADC70 AFB8001C */ sw $t8, 0x1c($sp) +/* 0E27A4 7F0ADC74 AFAD0024 */ sw $t5, 0x24($sp) +/* 0E27A8 7F0ADC78 AFB90028 */ sw $t9, 0x28($sp) +/* 0E27AC 7F0ADC7C 00006012 */ mflo $t4 +/* 0E27B0 7F0ADC80 01887021 */ addu $t6, $t4, $t0 +/* 0E27B4 7F0ADC84 25CFFCE8 */ addiu $t7, $t6, -0x318 +/* 0E27B8 7F0ADC88 0FC2B43E */ jal sub_GAME_7F0AD0F8 +/* 0E27BC 7F0ADC8C AFAF0010 */ sw $t7, 0x10($sp) +/* 0E27C0 7F0ADC90 00409825 */ move $s3, $v0 +/* 0E27C4 7F0ADC94 92150000 */ lbu $s5, ($s0) +/* 0E27C8 7F0ADC98 10000034 */ b .L7F0ADD6C +/* 0E27CC 7F0ADC9C 26100001 */ addiu $s0, $s0, 1 +.L7F0ADCA0: +/* 0E27D0 7F0ADCA0 25CE0EFC */ addiu $t6, $t6, %lo(D_80040EFC) +/* 0E27D4 7F0ADCA4 8DC10000 */ lw $at, ($t6) +/* 0E27D8 7F0ADCA8 920A0001 */ lbu $t2, 1($s0) +/* 0E27DC 7F0ADCAC 304B007F */ andi $t3, $v0, 0x7f +/* 0E27E0 7F0ADCB0 AEC10000 */ sw $at, ($s6) +/* 0E27E4 7F0ADCB4 8DD80004 */ lw $t8, 4($t6) +/* 0E27E8 7F0ADCB8 000B61C0 */ sll $t4, $t3, 7 +/* 0E27EC 7F0ADCBC 3149007F */ andi $t1, $t2, 0x7f +/* 0E27F0 7F0ADCC0 AED80004 */ sw $t8, 4($s6) +/* 0E27F4 7F0ADCC4 8DC10008 */ lw $at, 8($t6) +/* 0E27F8 7F0ADCC8 012C1825 */ or $v1, $t1, $t4 +/* 0E27FC 7F0ADCCC 3064FFFF */ andi $a0, $v1, 0xffff +/* 0E2800 7F0ADCD0 AEC10008 */ sw $at, 8($s6) +/* 0E2804 7F0ADCD4 8DD8000C */ lw $t8, 0xc($t6) +/* 0E2808 7F0ADCD8 308D2000 */ andi $t5, $a0, 0x2000 +/* 0E280C 7F0ADCDC 308B1FFF */ andi $t3, $a0, 0x1fff +/* 0E2810 7F0ADCE0 AED8000C */ sw $t8, 0xc($s6) +/* 0E2814 7F0ADCE4 8DC10010 */ lw $at, 0x10($t6) +/* 0E2818 7F0ADCE8 2419000F */ li $t9, 15 +/* 0E281C 7F0ADCEC 240A0010 */ li $t2, 16 +/* 0E2820 7F0ADCF0 AEC10010 */ sw $at, 0x10($s6) +/* 0E2824 7F0ADCF4 8DD80014 */ lw $t8, 0x14($t6) +/* 0E2828 7F0ADCF8 296103C7 */ slti $at, $t3, 0x3c8 +/* 0E282C 7F0ADCFC 11A00003 */ beqz $t5, .L7F0ADD0C +/* 0E2830 7F0ADD00 AED80014 */ sw $t8, 0x14($s6) +/* 0E2834 7F0ADD04 AFB90078 */ sw $t9, 0x78($sp) +/* 0E2838 7F0ADD08 AFAA0074 */ sw $t2, 0x74($sp) +.L7F0ADD0C: +/* 0E283C 7F0ADD0C 54200003 */ bnezl $at, .L7F0ADD1C +/* 0E2840 7F0ADD10 24890080 */ addiu $t1, $a0, 0x80 +/* 0E2844 7F0ADD14 24040002 */ li $a0, 2 +/* 0E2848 7F0ADD18 24890080 */ addiu $t1, $a0, 0x80 +.L7F0ADD1C: +/* 0E284C 7F0ADD1C 0FC3068C */ jal something_with_LnameX +/* 0E2850 7F0ADD20 AFA9006C */ sw $t1, 0x6c($sp) +/* 0E2854 7F0ADD24 8FAC00A0 */ lw $t4, 0xa0($sp) +/* 0E2858 7F0ADD28 8FA800C8 */ lw $t0, 0xc8($sp) +/* 0E285C 7F0ADD2C 8FAF00CC */ lw $t7, 0xcc($sp) +/* 0E2860 7F0ADD30 AFA20080 */ sw $v0, 0x80($sp) +/* 0E2864 7F0ADD34 02602025 */ move $a0, $s3 +/* 0E2868 7F0ADD38 02202825 */ move $a1, $s1 +/* 0E286C 7F0ADD3C 02403025 */ move $a2, $s2 +/* 0E2870 7F0ADD40 02C03825 */ move $a3, $s6 +/* 0E2874 7F0ADD44 AFB60010 */ sw $s6, 0x10($sp) +/* 0E2878 7F0ADD48 AFB70014 */ sw $s7, 0x14($sp) +/* 0E287C 7F0ADD4C AFB40018 */ sw $s4, 0x18($sp) +/* 0E2880 7F0ADD50 AFBE0020 */ sw $fp, 0x20($sp) +/* 0E2884 7F0ADD54 AFAC001C */ sw $t4, 0x1c($sp) +/* 0E2888 7F0ADD58 AFA80024 */ sw $t0, 0x24($sp) +/* 0E288C 7F0ADD5C 0FC2B43E */ jal sub_GAME_7F0AD0F8 +/* 0E2890 7F0ADD60 AFAF0028 */ sw $t7, 0x28($sp) +/* 0E2894 7F0ADD64 00409825 */ move $s3, $v0 +/* 0E2898 7F0ADD68 26100002 */ addiu $s0, $s0, 2 +.L7F0ADD6C: +/* 0E289C 7F0ADD6C 92020000 */ lbu $v0, ($s0) +/* 0E28A0 7F0ADD70 5440FF8F */ bnezl $v0, .L7F0ADBB0 +/* 0E28A4 7F0ADD74 24010020 */ li $at, 32 +.L7F0ADD78: +/* 0E28A8 7F0ADD78 8FBF005C */ lw $ra, 0x5c($sp) +/* 0E28AC 7F0ADD7C 02601025 */ move $v0, $s3 +/* 0E28B0 7F0ADD80 8FB30044 */ lw $s3, 0x44($sp) +/* 0E28B4 7F0ADD84 8FB00038 */ lw $s0, 0x38($sp) +/* 0E28B8 7F0ADD88 8FB1003C */ lw $s1, 0x3c($sp) +/* 0E28BC 7F0ADD8C 8FB20040 */ lw $s2, 0x40($sp) +/* 0E28C0 7F0ADD90 8FB40048 */ lw $s4, 0x48($sp) +/* 0E28C4 7F0ADD94 8FB5004C */ lw $s5, 0x4c($sp) +/* 0E28C8 7F0ADD98 8FB60050 */ lw $s6, 0x50($sp) +/* 0E28CC 7F0ADD9C 8FB70054 */ lw $s7, 0x54($sp) +/* 0E28D0 7F0ADDA0 8FBE0058 */ lw $fp, 0x58($sp) +/* 0E28D4 7F0ADDA4 03E00008 */ jr $ra +/* 0E28D8 7F0ADDA8 27BD00A8 */ addiu $sp, $sp, 0xa8 +) +#endif +#endif + + + + +#ifdef NONMATCHING +void sub_GAME_7F0ADDAC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0ADDAC +/* 0E28DC 7F0ADDAC 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0E28E0 7F0ADDB0 AFBF004C */ sw $ra, 0x4c($sp) +/* 0E28E4 7F0ADDB4 AFBE0048 */ sw $fp, 0x48($sp) +/* 0E28E8 7F0ADDB8 AFB70044 */ sw $s7, 0x44($sp) +/* 0E28EC 7F0ADDBC AFB60040 */ sw $s6, 0x40($sp) +/* 0E28F0 7F0ADDC0 AFB5003C */ sw $s5, 0x3c($sp) +/* 0E28F4 7F0ADDC4 AFB40038 */ sw $s4, 0x38($sp) +/* 0E28F8 7F0ADDC8 AFB30034 */ sw $s3, 0x34($sp) +/* 0E28FC 7F0ADDCC AFB20030 */ sw $s2, 0x30($sp) +/* 0E2900 7F0ADDD0 AFB1002C */ sw $s1, 0x2c($sp) +/* 0E2904 7F0ADDD4 AFB00028 */ sw $s0, 0x28($sp) +/* 0E2908 7F0ADDD8 8CCE0000 */ lw $t6, ($a2) +/* 0E290C 7F0ADDDC 8FAF0090 */ lw $t7, 0x90($sp) +/* 0E2910 7F0ADDE0 8FA90070 */ lw $t1, 0x70($sp) +/* 0E2914 7F0ADDE4 8FB90074 */ lw $t9, 0x74($sp) +/* 0E2918 7F0ADDE8 01CFC021 */ addu $t8, $t6, $t7 +/* 0E291C 7F0ADDEC AFB80050 */ sw $t8, 0x50($sp) +/* 0E2920 7F0ADDF0 8D2A0010 */ lw $t2, 0x10($t1) +/* 0E2924 7F0ADDF4 8CEE0010 */ lw $t6, 0x10($a3) +/* 0E2928 7F0ADDF8 00809825 */ move $s3, $a0 +/* 0E292C 7F0ADDFC 000A5880 */ sll $t3, $t2, 2 +/* 0E2930 7F0ADE00 016A5823 */ subu $t3, $t3, $t2 +/* 0E2934 7F0ADE04 000B5880 */ sll $t3, $t3, 2 +/* 0E2938 7F0ADE08 016A5821 */ addu $t3, $t3, $t2 +/* 0E293C 7F0ADE0C 000B6080 */ sll $t4, $t3, 2 +/* 0E2940 7F0ADE10 032C6821 */ addu $t5, $t9, $t4 +/* 0E2944 7F0ADE14 000E7880 */ sll $t7, $t6, 2 +/* 0E2948 7F0ADE18 01AFC021 */ addu $t8, $t5, $t7 +/* 0E294C 7F0ADE1C 3C0A8004 */ lui $t2, %hi(text_spacing) +/* 0E2950 7F0ADE20 8D4A0E84 */ lw $t2, %lo(text_spacing)($t2) +/* 0E2954 7F0ADE24 8F090000 */ lw $t1, ($t8) +/* 0E2958 7F0ADE28 8CAB0000 */ lw $t3, ($a1) +/* 0E295C 7F0ADE2C 00E0F025 */ move $fp, $a3 +/* 0E2960 7F0ADE30 012A1021 */ addu $v0, $t1, $t2 +/* 0E2964 7F0ADE34 0162C823 */ subu $t9, $t3, $v0 +/* 0E2968 7F0ADE38 272C0001 */ addiu $t4, $t9, 1 +/* 0E296C 7F0ADE3C ACAC0000 */ sw $t4, ($a1) +/* 0E2970 7F0ADE40 AFA50064 */ sw $a1, 0x64($sp) +/* 0E2974 7F0ADE44 8CAE0000 */ lw $t6, ($a1) +/* 0E2978 7F0ADE48 59C00173 */ blezl $t6, .L7F0AE418 +/* 0E297C 7F0ADE4C 8FA50064 */ lw $a1, 0x64($sp) +/* 0E2980 7F0ADE50 0C001107 */ jal get_video2_settings_txtClipW +/* 0E2984 7F0ADE54 AFA50064 */ sw $a1, 0x64($sp) +/* 0E2988 7F0ADE58 8FAD0064 */ lw $t5, 0x64($sp) +/* 0E298C 7F0ADE5C 8DAF0000 */ lw $t7, ($t5) +/* 0E2990 7F0ADE60 004F082A */ slt $at, $v0, $t7 +/* 0E2994 7F0ADE64 5420016C */ bnezl $at, .L7F0AE418 +/* 0E2998 7F0ADE68 8FA50064 */ lw $a1, 0x64($sp) +/* 0E299C 7F0ADE6C 0C00110B */ jal get_video2_settings_txtClipH +/* 0E29A0 7F0ADE70 00000000 */ nop +/* 0E29A4 7F0ADE74 8FB80050 */ lw $t8, 0x50($sp) +/* 0E29A8 7F0ADE78 8FC90004 */ lw $t1, 4($fp) +/* 0E29AC 7F0ADE7C 8FAA0064 */ lw $t2, 0x64($sp) +/* 0E29B0 7F0ADE80 03092021 */ addu $a0, $t8, $t1 +/* 0E29B4 7F0ADE84 0044082A */ slt $at, $v0, $a0 +/* 0E29B8 7F0ADE88 54200163 */ bnezl $at, .L7F0AE418 +/* 0E29BC 7F0ADE8C 8FA50064 */ lw $a1, 0x64($sp) +/* 0E29C0 7F0ADE90 8FB40078 */ lw $s4, 0x78($sp) +/* 0E29C4 7F0ADE94 8FB60088 */ lw $s6, 0x88($sp) +/* 0E29C8 7F0ADE98 8D430000 */ lw $v1, ($t2) +/* 0E29CC 7F0ADE9C 8FB5007C */ lw $s5, 0x7c($sp) +/* 0E29D0 7F0ADEA0 02965821 */ addu $t3, $s4, $s6 +/* 0E29D4 7F0ADEA4 0163082A */ slt $at, $t3, $v1 +/* 0E29D8 7F0ADEA8 1420015A */ bnez $at, .L7F0AE414 +/* 0E29DC 7F0ADEAC 8FB7008C */ lw $s7, 0x8c($sp) +/* 0E29E0 7F0ADEB0 02B7C821 */ addu $t9, $s5, $s7 +/* 0E29E4 7F0ADEB4 0324082A */ slt $at, $t9, $a0 +/* 0E29E8 7F0ADEB8 14200156 */ bnez $at, .L7F0AE414 +/* 0E29EC 7F0ADEBC 0074082A */ slt $at, $v1, $s4 +/* 0E29F0 7F0ADEC0 54200155 */ bnezl $at, .L7F0AE418 +/* 0E29F4 7F0ADEC4 8FA50064 */ lw $a1, 0x64($sp) +/* 0E29F8 7F0ADEC8 8FCC0008 */ lw $t4, 8($fp) +/* 0E29FC 7F0ADECC 008C7021 */ addu $t6, $a0, $t4 +/* 0E2A00 7F0ADED0 01D5082A */ slt $at, $t6, $s5 +/* 0E2A04 7F0ADED4 54200150 */ bnezl $at, .L7F0AE418 +/* 0E2A08 7F0ADED8 8FA50064 */ lw $a1, 0x64($sp) +/* 0E2A0C 7F0ADEDC 8FCD0000 */ lw $t5, ($fp) +/* 0E2A10 7F0ADEE0 3C058004 */ lui $a1, %hi(D_80040EA8) +/* 0E2A14 7F0ADEE4 24A50EA8 */ addiu $a1, %lo(D_80040EA8) # addiu $a1, $a1, 0xea8 +/* 0E2A18 7F0ADEE8 29A10080 */ slti $at, $t5, 0x80 +/* 0E2A1C 7F0ADEEC 1020006E */ beqz $at, .L7F0AE0A8 +/* 0E2A20 7F0ADEF0 3C11E700 */ lui $s1, 0xe700 +/* 0E2A24 7F0ADEF4 02601025 */ move $v0, $s3 +/* 0E2A28 7F0ADEF8 3C0FBA00 */ lui $t7, (0xBA000E02 >> 16) # lui $t7, 0xba00 +/* 0E2A2C 7F0ADEFC 35EF0E02 */ ori $t7, (0xBA000E02 & 0xFFFF) # ori $t7, $t7, 0xe02 +/* 0E2A30 7F0ADF00 26730008 */ addiu $s3, $s3, 8 +/* 0E2A34 7F0ADF04 AC4F0000 */ sw $t7, ($v0) +/* 0E2A38 7F0ADF08 AC400004 */ sw $zero, 4($v0) +/* 0E2A3C 7F0ADF0C 02601825 */ move $v1, $s3 +/* 0E2A40 7F0ADF10 3C18FD90 */ lui $t8, 0xfd90 +/* 0E2A44 7F0ADF14 AC780000 */ sw $t8, ($v1) +/* 0E2A48 7F0ADF18 8FC90014 */ lw $t1, 0x14($fp) +/* 0E2A4C 7F0ADF1C 26730008 */ addiu $s3, $s3, 8 +/* 0E2A50 7F0ADF20 02602025 */ move $a0, $s3 +/* 0E2A54 7F0ADF24 26730008 */ addiu $s3, $s3, 8 +/* 0E2A58 7F0ADF28 AC690004 */ sw $t1, 4($v1) +/* 0E2A5C 7F0ADF2C 3C120700 */ lui $s2, 0x700 +/* 0E2A60 7F0ADF30 02602825 */ move $a1, $s3 +/* 0E2A64 7F0ADF34 3C0AF590 */ lui $t2, 0xf590 +/* 0E2A68 7F0ADF38 AC8A0000 */ sw $t2, ($a0) +/* 0E2A6C 7F0ADF3C AC920004 */ sw $s2, 4($a0) +/* 0E2A70 7F0ADF40 26730008 */ addiu $s3, $s3, 8 +/* 0E2A74 7F0ADF44 3C0BE600 */ lui $t3, 0xe600 +/* 0E2A78 7F0ADF48 ACAB0000 */ sw $t3, ($a1) +/* 0E2A7C 7F0ADF4C 02604025 */ move $t0, $s3 +/* 0E2A80 7F0ADF50 ACA00004 */ sw $zero, 4($a1) +/* 0E2A84 7F0ADF54 3C19F300 */ lui $t9, 0xf300 +/* 0E2A88 7F0ADF58 AD190000 */ sw $t9, ($t0) +/* 0E2A8C 7F0ADF5C 8FC3000C */ lw $v1, 0xc($fp) +/* 0E2A90 7F0ADF60 8FCE0008 */ lw $t6, 8($fp) +/* 0E2A94 7F0ADF64 26730008 */ addiu $s3, $s3, 8 +/* 0E2A98 7F0ADF68 24630007 */ addiu $v1, $v1, 7 +/* 0E2A9C 7F0ADF6C 306C00F8 */ andi $t4, $v1, 0xf8 +/* 0E2AA0 7F0ADF70 018E0019 */ multu $t4, $t6 +/* 0E2AA4 7F0ADF74 01801825 */ move $v1, $t4 +/* 0E2AA8 7F0ADF78 3C11E700 */ lui $s1, 0xe700 +/* 0E2AAC 7F0ADF7C 240607FF */ li $a2, 2047 +/* 0E2AB0 7F0ADF80 00001012 */ mflo $v0 +/* 0E2AB4 7F0ADF84 24420001 */ addiu $v0, $v0, 1 +/* 0E2AB8 7F0ADF88 00026843 */ sra $t5, $v0, 1 +/* 0E2ABC 7F0ADF8C 25A2FFFF */ addiu $v0, $t5, -1 +/* 0E2AC0 7F0ADF90 284107FF */ slti $at, $v0, 0x7ff +/* 0E2AC4 7F0ADF94 10200003 */ beqz $at, .L7F0ADFA4 +/* 0E2AC8 7F0ADF98 00000000 */ nop +/* 0E2ACC 7F0ADF9C 10000001 */ b .L7F0ADFA4 +/* 0E2AD0 7F0ADFA0 00403025 */ move $a2, $v0 +.L7F0ADFA4: +/* 0E2AD4 7F0ADFA4 04610003 */ bgez $v1, .L7F0ADFB4 +/* 0E2AD8 7F0ADFA8 000310C3 */ sra $v0, $v1, 3 +/* 0E2ADC 7F0ADFAC 24610007 */ addiu $at, $v1, 7 +/* 0E2AE0 7F0ADFB0 000110C3 */ sra $v0, $at, 3 +.L7F0ADFB4: +/* 0E2AE4 7F0ADFB4 1C400003 */ bgtz $v0, .L7F0ADFC4 +/* 0E2AE8 7F0ADFB8 30CB0FFF */ andi $t3, $a2, 0xfff +/* 0E2AEC 7F0ADFBC 10000002 */ b .L7F0ADFC8 +/* 0E2AF0 7F0ADFC0 24070001 */ li $a3, 1 +.L7F0ADFC4: +/* 0E2AF4 7F0ADFC4 00403825 */ move $a3, $v0 +.L7F0ADFC8: +/* 0E2AF8 7F0ADFC8 1C400003 */ bgtz $v0, .L7F0ADFD8 +/* 0E2AFC 7F0ADFCC 24EF07FF */ addiu $t7, $a3, 0x7ff +/* 0E2B00 7F0ADFD0 10000002 */ b .L7F0ADFDC +/* 0E2B04 7F0ADFD4 24050001 */ li $a1, 1 +.L7F0ADFD8: +/* 0E2B08 7F0ADFD8 00402825 */ move $a1, $v0 +.L7F0ADFDC: +/* 0E2B0C 7F0ADFDC 01E5001A */ div $zero, $t7, $a1 +/* 0E2B10 7F0ADFE0 0000C012 */ mflo $t8 +/* 0E2B14 7F0ADFE4 33090FFF */ andi $t1, $t8, 0xfff +/* 0E2B18 7F0ADFE8 01325025 */ or $t2, $t1, $s2 +/* 0E2B1C 7F0ADFEC 000BCB00 */ sll $t9, $t3, 0xc +/* 0E2B20 7F0ADFF0 01596025 */ or $t4, $t2, $t9 +/* 0E2B24 7F0ADFF4 AD0C0004 */ sw $t4, 4($t0) +/* 0E2B28 7F0ADFF8 02601025 */ move $v0, $s3 +/* 0E2B2C 7F0ADFFC AC510000 */ sw $s1, ($v0) +/* 0E2B30 7F0AE000 AC400004 */ sw $zero, 4($v0) +/* 0E2B34 7F0AE004 8FCE000C */ lw $t6, 0xc($fp) +/* 0E2B38 7F0AE008 14A00002 */ bnez $a1, .L7F0AE014 +/* 0E2B3C 7F0AE00C 00000000 */ nop +/* 0E2B40 7F0AE010 0007000D */ break 7 +.L7F0AE014: +/* 0E2B44 7F0AE014 2401FFFF */ li $at, -1 +/* 0E2B48 7F0AE018 14A10004 */ bne $a1, $at, .L7F0AE02C +/* 0E2B4C 7F0AE01C 3C018000 */ lui $at, 0x8000 +/* 0E2B50 7F0AE020 15E10002 */ bne $t7, $at, .L7F0AE02C +/* 0E2B54 7F0AE024 00000000 */ nop +/* 0E2B58 7F0AE028 0006000D */ break 6 +.L7F0AE02C: +/* 0E2B5C 7F0AE02C 25CD0007 */ addiu $t5, $t6, 7 +/* 0E2B60 7F0AE030 31AF00F8 */ andi $t7, $t5, 0xf8 +/* 0E2B64 7F0AE034 25F80007 */ addiu $t8, $t7, 7 +/* 0E2B68 7F0AE038 001848C3 */ sra $t1, $t8, 3 +/* 0E2B6C 7F0AE03C 26730008 */ addiu $s3, $s3, 8 +/* 0E2B70 7F0AE040 02601825 */ move $v1, $s3 +/* 0E2B74 7F0AE044 312B01FF */ andi $t3, $t1, 0x1ff +/* 0E2B78 7F0AE048 000B5240 */ sll $t2, $t3, 9 +/* 0E2B7C 7F0AE04C 3C01F588 */ lui $at, 0xf588 +/* 0E2B80 7F0AE050 0141C825 */ or $t9, $t2, $at +/* 0E2B84 7F0AE054 26730008 */ addiu $s3, $s3, 8 +/* 0E2B88 7F0AE058 02602025 */ move $a0, $s3 +/* 0E2B8C 7F0AE05C AC790000 */ sw $t9, ($v1) +/* 0E2B90 7F0AE060 AC600004 */ sw $zero, 4($v1) +/* 0E2B94 7F0AE064 3C0CF200 */ lui $t4, 0xf200 +/* 0E2B98 7F0AE068 AC8C0000 */ sw $t4, ($a0) +/* 0E2B9C 7F0AE06C 8FCE000C */ lw $t6, 0xc($fp) +/* 0E2BA0 7F0AE070 8FD90008 */ lw $t9, 8($fp) +/* 0E2BA4 7F0AE074 26730008 */ addiu $s3, $s3, 8 +/* 0E2BA8 7F0AE078 25CD0007 */ addiu $t5, $t6, 7 +/* 0E2BAC 7F0AE07C 31AF00F8 */ andi $t7, $t5, 0xf8 +/* 0E2BB0 7F0AE080 25F8FFFF */ addiu $t8, $t7, -1 +/* 0E2BB4 7F0AE084 00184880 */ sll $t1, $t8, 2 +/* 0E2BB8 7F0AE088 272CFFFF */ addiu $t4, $t9, -1 +/* 0E2BBC 7F0AE08C 000C7080 */ sll $t6, $t4, 2 +/* 0E2BC0 7F0AE090 312B0FFF */ andi $t3, $t1, 0xfff +/* 0E2BC4 7F0AE094 000B5300 */ sll $t2, $t3, 0xc +/* 0E2BC8 7F0AE098 31CD0FFF */ andi $t5, $t6, 0xfff +/* 0E2BCC 7F0AE09C 014D7825 */ or $t7, $t2, $t5 +/* 0E2BD0 7F0AE0A0 10000095 */ b .L7F0AE2F8 +/* 0E2BD4 7F0AE0A4 AC8F0004 */ sw $t7, 4($a0) +.L7F0AE0A8: +/* 0E2BD8 7F0AE0A8 02601025 */ move $v0, $s3 +/* 0E2BDC 7F0AE0AC 26730008 */ addiu $s3, $s3, 8 +/* 0E2BE0 7F0AE0B0 AC510000 */ sw $s1, ($v0) +/* 0E2BE4 7F0AE0B4 AC400004 */ sw $zero, 4($v0) +/* 0E2BE8 7F0AE0B8 02601825 */ move $v1, $s3 +/* 0E2BEC 7F0AE0BC 3C18BA00 */ lui $t8, (0xBA000E02 >> 16) # lui $t8, 0xba00 +/* 0E2BF0 7F0AE0C0 37180E02 */ ori $t8, (0xBA000E02 & 0xFFFF) # ori $t8, $t8, 0xe02 +/* 0E2BF4 7F0AE0C4 3409C000 */ li $t1, 49152 +/* 0E2BF8 7F0AE0C8 AC690004 */ sw $t1, 4($v1) +/* 0E2BFC 7F0AE0CC AC780000 */ sw $t8, ($v1) +/* 0E2C00 7F0AE0D0 8CAB0000 */ lw $t3, ($a1) +/* 0E2C04 7F0AE0D4 26730008 */ addiu $s3, $s3, 8 +/* 0E2C08 7F0AE0D8 02608025 */ move $s0, $s3 +/* 0E2C0C 7F0AE0DC 11600047 */ beqz $t3, .L7F0AE1FC +/* 0E2C10 7F0AE0E0 3C19FD10 */ lui $t9, 0xfd10 +/* 0E2C14 7F0AE0E4 ACA00000 */ sw $zero, ($a1) +/* 0E2C18 7F0AE0E8 3C048004 */ lui $a0, %hi(D_80040EBC) +/* 0E2C1C 7F0AE0EC 24840EBC */ addiu $a0, %lo(D_80040EBC) # addiu $a0, $a0, 0xebc +/* 0E2C20 7F0AE0F0 AE190000 */ sw $t9, ($s0) +/* 0E2C24 7F0AE0F4 0C003A2C */ jal osVirtualToPhysical +/* 0E2C28 7F0AE0F8 26730008 */ addiu $s3, $s3, 8 +/* 0E2C2C 7F0AE0FC 02601825 */ move $v1, $s3 +/* 0E2C30 7F0AE100 26730008 */ addiu $s3, $s3, 8 +/* 0E2C34 7F0AE104 AE020004 */ sw $v0, 4($s0) +/* 0E2C38 7F0AE108 02602025 */ move $a0, $s3 +/* 0E2C3C 7F0AE10C 3C0CE800 */ lui $t4, 0xe800 +/* 0E2C40 7F0AE110 AC6C0000 */ sw $t4, ($v1) +/* 0E2C44 7F0AE114 AC600004 */ sw $zero, 4($v1) +/* 0E2C48 7F0AE118 3C0EF500 */ lui $t6, (0xF5000100 >> 16) # lui $t6, 0xf500 +/* 0E2C4C 7F0AE11C 35CE0100 */ ori $t6, (0xF5000100 & 0xFFFF) # ori $t6, $t6, 0x100 +/* 0E2C50 7F0AE120 26730008 */ addiu $s3, $s3, 8 +/* 0E2C54 7F0AE124 3C120700 */ lui $s2, 0x700 +/* 0E2C58 7F0AE128 AC920004 */ sw $s2, 4($a0) +/* 0E2C5C 7F0AE12C 02602825 */ move $a1, $s3 +/* 0E2C60 7F0AE130 AC8E0000 */ sw $t6, ($a0) +/* 0E2C64 7F0AE134 26730008 */ addiu $s3, $s3, 8 +/* 0E2C68 7F0AE138 02603025 */ move $a2, $s3 +/* 0E2C6C 7F0AE13C 3C0AE600 */ lui $t2, 0xe600 +/* 0E2C70 7F0AE140 ACAA0000 */ sw $t2, ($a1) +/* 0E2C74 7F0AE144 26730008 */ addiu $s3, $s3, 8 +/* 0E2C78 7F0AE148 ACA00004 */ sw $zero, 4($a1) +/* 0E2C7C 7F0AE14C 3C0F0703 */ lui $t7, (0x0703C000 >> 16) # lui $t7, 0x703 +/* 0E2C80 7F0AE150 35EFC000 */ ori $t7, (0x0703C000 & 0xFFFF) # ori $t7, $t7, 0xc000 +/* 0E2C84 7F0AE154 02603825 */ move $a3, $s3 +/* 0E2C88 7F0AE158 3C0DF000 */ lui $t5, 0xf000 +/* 0E2C8C 7F0AE15C ACCD0000 */ sw $t5, ($a2) +/* 0E2C90 7F0AE160 ACCF0004 */ sw $t7, 4($a2) +/* 0E2C94 7F0AE164 26730008 */ addiu $s3, $s3, 8 +/* 0E2C98 7F0AE168 ACE00004 */ sw $zero, 4($a3) +/* 0E2C9C 7F0AE16C ACF10000 */ sw $s1, ($a3) +/* 0E2CA0 7F0AE170 02608025 */ move $s0, $s3 +/* 0E2CA4 7F0AE174 3C048004 */ lui $a0, %hi(D_80040EDC) +/* 0E2CA8 7F0AE178 3C18FD10 */ lui $t8, 0xfd10 +/* 0E2CAC 7F0AE17C AE180000 */ sw $t8, ($s0) +/* 0E2CB0 7F0AE180 24840EDC */ addiu $a0, %lo(D_80040EDC) # addiu $a0, $a0, 0xedc +/* 0E2CB4 7F0AE184 0C003A2C */ jal osVirtualToPhysical +/* 0E2CB8 7F0AE188 26730008 */ addiu $s3, $s3, 8 +/* 0E2CBC 7F0AE18C 02601825 */ move $v1, $s3 +/* 0E2CC0 7F0AE190 26730008 */ addiu $s3, $s3, 8 +/* 0E2CC4 7F0AE194 AE020004 */ sw $v0, 4($s0) +/* 0E2CC8 7F0AE198 02602025 */ move $a0, $s3 +/* 0E2CCC 7F0AE19C 3C09E800 */ lui $t1, 0xe800 +/* 0E2CD0 7F0AE1A0 AC690000 */ sw $t1, ($v1) +/* 0E2CD4 7F0AE1A4 26730008 */ addiu $s3, $s3, 8 +/* 0E2CD8 7F0AE1A8 AC600004 */ sw $zero, 4($v1) +/* 0E2CDC 7F0AE1AC 3C0BF500 */ lui $t3, (0xF5000110 >> 16) # lui $t3, 0xf500 +/* 0E2CE0 7F0AE1B0 356B0110 */ ori $t3, (0xF5000110 & 0xFFFF) # ori $t3, $t3, 0x110 +/* 0E2CE4 7F0AE1B4 02602825 */ move $a1, $s3 +/* 0E2CE8 7F0AE1B8 26730008 */ addiu $s3, $s3, 8 +/* 0E2CEC 7F0AE1BC AC8B0000 */ sw $t3, ($a0) +/* 0E2CF0 7F0AE1C0 AC920004 */ sw $s2, 4($a0) +/* 0E2CF4 7F0AE1C4 02603025 */ move $a2, $s3 +/* 0E2CF8 7F0AE1C8 3C19E600 */ lui $t9, 0xe600 +/* 0E2CFC 7F0AE1CC ACB90000 */ sw $t9, ($a1) +/* 0E2D00 7F0AE1D0 26730008 */ addiu $s3, $s3, 8 +/* 0E2D04 7F0AE1D4 ACA00004 */ sw $zero, 4($a1) +/* 0E2D08 7F0AE1D8 3C0E0703 */ lui $t6, (0x0703C000 >> 16) # lui $t6, 0x703 +/* 0E2D0C 7F0AE1DC 35CEC000 */ ori $t6, (0x0703C000 & 0xFFFF) # ori $t6, $t6, 0xc000 +/* 0E2D10 7F0AE1E0 02603825 */ move $a3, $s3 +/* 0E2D14 7F0AE1E4 3C0CF000 */ lui $t4, 0xf000 +/* 0E2D18 7F0AE1E8 ACCC0000 */ sw $t4, ($a2) +/* 0E2D1C 7F0AE1EC ACCE0004 */ sw $t6, 4($a2) +/* 0E2D20 7F0AE1F0 ACE00004 */ sw $zero, 4($a3) +/* 0E2D24 7F0AE1F4 ACF10000 */ sw $s1, ($a3) +/* 0E2D28 7F0AE1F8 26730008 */ addiu $s3, $s3, 8 +.L7F0AE1FC: +/* 0E2D2C 7F0AE1FC 02608025 */ move $s0, $s3 +/* 0E2D30 7F0AE200 3C0AFD50 */ lui $t2, 0xfd50 +/* 0E2D34 7F0AE204 AE0A0000 */ sw $t2, ($s0) +/* 0E2D38 7F0AE208 3C120700 */ lui $s2, 0x700 +/* 0E2D3C 7F0AE20C 8FC40014 */ lw $a0, 0x14($fp) +/* 0E2D40 7F0AE210 0C003A2C */ jal osVirtualToPhysical +/* 0E2D44 7F0AE214 26730008 */ addiu $s3, $s3, 8 +/* 0E2D48 7F0AE218 02601825 */ move $v1, $s3 +/* 0E2D4C 7F0AE21C AE020004 */ sw $v0, 4($s0) +/* 0E2D50 7F0AE220 26730008 */ addiu $s3, $s3, 8 +/* 0E2D54 7F0AE224 3C0DF550 */ lui $t5, 0xf550 +/* 0E2D58 7F0AE228 02602025 */ move $a0, $s3 +/* 0E2D5C 7F0AE22C AC6D0000 */ sw $t5, ($v1) +/* 0E2D60 7F0AE230 AC720004 */ sw $s2, 4($v1) +/* 0E2D64 7F0AE234 26730008 */ addiu $s3, $s3, 8 +/* 0E2D68 7F0AE238 3C0FE600 */ lui $t7, 0xe600 +/* 0E2D6C 7F0AE23C AC8F0000 */ sw $t7, ($a0) +/* 0E2D70 7F0AE240 AC800004 */ sw $zero, 4($a0) +/* 0E2D74 7F0AE244 02603025 */ move $a2, $s3 +/* 0E2D78 7F0AE248 3C18F300 */ lui $t8, 0xf300 +/* 0E2D7C 7F0AE24C ACD80000 */ sw $t8, ($a2) +/* 0E2D80 7F0AE250 8FC70008 */ lw $a3, 8($fp) +/* 0E2D84 7F0AE254 26730008 */ addiu $s3, $s3, 8 +/* 0E2D88 7F0AE258 02601025 */ move $v0, $s3 +/* 0E2D8C 7F0AE25C 00074880 */ sll $t1, $a3, 2 +/* 0E2D90 7F0AE260 2527FFFF */ addiu $a3, $t1, -1 +/* 0E2D94 7F0AE264 28E107FF */ slti $at, $a3, 0x7ff +/* 0E2D98 7F0AE268 10200003 */ beqz $at, .L7F0AE278 +/* 0E2D9C 7F0AE26C 26730008 */ addiu $s3, $s3, 8 +/* 0E2DA0 7F0AE270 10000002 */ b .L7F0AE27C +/* 0E2DA4 7F0AE274 00E02825 */ move $a1, $a3 +.L7F0AE278: +/* 0E2DA8 7F0AE278 240507FF */ li $a1, 2047 +.L7F0AE27C: +/* 0E2DAC 7F0AE27C 30AB0FFF */ andi $t3, $a1, 0xfff +/* 0E2DB0 7F0AE280 000BCB00 */ sll $t9, $t3, 0xc +/* 0E2DB4 7F0AE284 03326025 */ or $t4, $t9, $s2 +/* 0E2DB8 7F0AE288 358E0800 */ ori $t6, $t4, 0x800 +/* 0E2DBC 7F0AE28C ACCE0004 */ sw $t6, 4($a2) +/* 0E2DC0 7F0AE290 3C0AF540 */ lui $t2, (0xF5400200 >> 16) # lui $t2, 0xf540 +/* 0E2DC4 7F0AE294 AC400004 */ sw $zero, 4($v0) +/* 0E2DC8 7F0AE298 AC510000 */ sw $s1, ($v0) +/* 0E2DCC 7F0AE29C 354A0200 */ ori $t2, (0xF5400200 & 0xFFFF) # ori $t2, $t2, 0x200 +/* 0E2DD0 7F0AE2A0 02601825 */ move $v1, $s3 +/* 0E2DD4 7F0AE2A4 AC6A0000 */ sw $t2, ($v1) +/* 0E2DD8 7F0AE2A8 8FCF0000 */ lw $t7, ($fp) +/* 0E2DDC 7F0AE2AC 3C010008 */ lui $at, 8 +/* 0E2DE0 7F0AE2B0 26730008 */ addiu $s3, $s3, 8 +/* 0E2DE4 7F0AE2B4 31F80001 */ andi $t8, $t7, 1 +/* 0E2DE8 7F0AE2B8 00184D00 */ sll $t1, $t8, 0x14 +/* 0E2DEC 7F0AE2BC 01215825 */ or $t3, $t1, $at +/* 0E2DF0 7F0AE2C0 35790200 */ ori $t9, $t3, 0x200 +/* 0E2DF4 7F0AE2C4 AC790004 */ sw $t9, 4($v1) +/* 0E2DF8 7F0AE2C8 02602025 */ move $a0, $s3 +/* 0E2DFC 7F0AE2CC 3C0CF200 */ lui $t4, 0xf200 +/* 0E2E00 7F0AE2D0 AC8C0000 */ sw $t4, ($a0) +/* 0E2E04 7F0AE2D4 8FCE0008 */ lw $t6, 8($fp) +/* 0E2E08 7F0AE2D8 3C010003 */ lui $at, (0x0003C000 >> 16) # lui $at, 3 +/* 0E2E0C 7F0AE2DC 3421C000 */ ori $at, (0x0003C000 & 0xFFFF) # ori $at, $at, 0xc000 +/* 0E2E10 7F0AE2E0 25CAFFFF */ addiu $t2, $t6, -1 +/* 0E2E14 7F0AE2E4 000A6880 */ sll $t5, $t2, 2 +/* 0E2E18 7F0AE2E8 31AF0FFF */ andi $t7, $t5, 0xfff +/* 0E2E1C 7F0AE2EC 01E1C025 */ or $t8, $t7, $at +/* 0E2E20 7F0AE2F0 AC980004 */ sw $t8, 4($a0) +/* 0E2E24 7F0AE2F4 26730008 */ addiu $s3, $s3, 8 +.L7F0AE2F8: +/* 0E2E28 7F0AE2F8 8FA20084 */ lw $v0, 0x84($sp) +/* 0E2E2C 7F0AE2FC 02602025 */ move $a0, $s3 +/* 0E2E30 7F0AE300 3C09FA00 */ lui $t1, 0xfa00 +/* 0E2E34 7F0AE304 00026602 */ srl $t4, $v0, 0x18 +/* 0E2E38 7F0AE308 00026C02 */ srl $t5, $v0, 0x10 +/* 0E2E3C 7F0AE30C 31AF00FF */ andi $t7, $t5, 0xff +/* 0E2E40 7F0AE310 000C7600 */ sll $t6, $t4, 0x18 +/* 0E2E44 7F0AE314 000FC400 */ sll $t8, $t7, 0x10 +/* 0E2E48 7F0AE318 AC890000 */ sw $t1, ($a0) +/* 0E2E4C 7F0AE31C 0002CA02 */ srl $t9, $v0, 8 +/* 0E2E50 7F0AE320 332C00FF */ andi $t4, $t9, 0xff +/* 0E2E54 7F0AE324 01D84825 */ or $t1, $t6, $t8 +/* 0E2E58 7F0AE328 000C5200 */ sll $t2, $t4, 8 +/* 0E2E5C 7F0AE32C 012A6825 */ or $t5, $t1, $t2 +/* 0E2E60 7F0AE330 304E00FF */ andi $t6, $v0, 0xff +/* 0E2E64 7F0AE334 01AEC025 */ or $t8, $t5, $t6 +/* 0E2E68 7F0AE338 AC980004 */ sw $t8, 4($a0) +/* 0E2E6C 7F0AE33C 8FAB0064 */ lw $t3, 0x64($sp) +/* 0E2E70 7F0AE340 26730008 */ addiu $s3, $s3, 8 +/* 0E2E74 7F0AE344 2411FFFF */ li $s1, -1 +/* 0E2E78 7F0AE348 24120002 */ li $s2, 2 +/* 0E2E7C 7F0AE34C 8D630000 */ lw $v1, ($t3) +/* 0E2E80 7F0AE350 2410FFFF */ li $s0, -1 +.L7F0AE354: +/* 0E2E84 7F0AE354 16200003 */ bnez $s1, .L7F0AE364 +/* 0E2E88 7F0AE358 00712821 */ addu $a1, $v1, $s1 +/* 0E2E8C 7F0AE35C 5200000E */ beql $s0, $zero, .L7F0AE398 +/* 0E2E90 7F0AE360 26100001 */ addiu $s0, $s0, 1 +.L7F0AE364: +/* 0E2E94 7F0AE364 8FB90050 */ lw $t9, 0x50($sp) +/* 0E2E98 7F0AE368 02602025 */ move $a0, $s3 +/* 0E2E9C 7F0AE36C 03C03825 */ move $a3, $fp +/* 0E2EA0 7F0AE370 AFB40010 */ sw $s4, 0x10($sp) +/* 0E2EA4 7F0AE374 AFB50014 */ sw $s5, 0x14($sp) +/* 0E2EA8 7F0AE378 AFB60018 */ sw $s6, 0x18($sp) +/* 0E2EAC 7F0AE37C AFB7001C */ sw $s7, 0x1c($sp) +/* 0E2EB0 7F0AE380 0FC2B917 */ jal sub_GAME_7F0AE45C +/* 0E2EB4 7F0AE384 03303021 */ addu $a2, $t9, $s0 +/* 0E2EB8 7F0AE388 8FAC0064 */ lw $t4, 0x64($sp) +/* 0E2EBC 7F0AE38C 00409825 */ move $s3, $v0 +/* 0E2EC0 7F0AE390 8D830000 */ lw $v1, ($t4) +/* 0E2EC4 7F0AE394 26100001 */ addiu $s0, $s0, 1 +.L7F0AE398: +/* 0E2EC8 7F0AE398 1612FFEE */ bne $s0, $s2, .L7F0AE354 +/* 0E2ECC 7F0AE39C 00000000 */ nop +/* 0E2ED0 7F0AE3A0 26310001 */ addiu $s1, $s1, 1 +/* 0E2ED4 7F0AE3A4 5632FFEB */ bnel $s1, $s2, .L7F0AE354 +/* 0E2ED8 7F0AE3A8 2410FFFF */ li $s0, -1 +/* 0E2EDC 7F0AE3AC 8FA20080 */ lw $v0, 0x80($sp) +/* 0E2EE0 7F0AE3B0 3C09FA00 */ lui $t1, 0xfa00 +/* 0E2EE4 7F0AE3B4 AE690000 */ sw $t1, ($s3) +/* 0E2EE8 7F0AE3B8 00026E02 */ srl $t5, $v0, 0x18 +/* 0E2EEC 7F0AE3BC 00025C02 */ srl $t3, $v0, 0x10 +/* 0E2EF0 7F0AE3C0 317900FF */ andi $t9, $t3, 0xff +/* 0E2EF4 7F0AE3C4 000D7600 */ sll $t6, $t5, 0x18 +/* 0E2EF8 7F0AE3C8 00196400 */ sll $t4, $t9, 0x10 +/* 0E2EFC 7F0AE3CC 00027A02 */ srl $t7, $v0, 8 +/* 0E2F00 7F0AE3D0 31ED00FF */ andi $t5, $t7, 0xff +/* 0E2F04 7F0AE3D4 01CC4825 */ or $t1, $t6, $t4 +/* 0E2F08 7F0AE3D8 000DC200 */ sll $t8, $t5, 8 +/* 0E2F0C 7F0AE3DC 01385825 */ or $t3, $t1, $t8 +/* 0E2F10 7F0AE3E0 304E00FF */ andi $t6, $v0, 0xff +/* 0E2F14 7F0AE3E4 016E6025 */ or $t4, $t3, $t6 +/* 0E2F18 7F0AE3E8 AE6C0004 */ sw $t4, 4($s3) +/* 0E2F1C 7F0AE3EC 00602825 */ move $a1, $v1 +/* 0E2F20 7F0AE3F0 26640008 */ addiu $a0, $s3, 8 +/* 0E2F24 7F0AE3F4 AFB7001C */ sw $s7, 0x1c($sp) +/* 0E2F28 7F0AE3F8 AFB60018 */ sw $s6, 0x18($sp) +/* 0E2F2C 7F0AE3FC AFB50014 */ sw $s5, 0x14($sp) +/* 0E2F30 7F0AE400 AFB40010 */ sw $s4, 0x10($sp) +/* 0E2F34 7F0AE404 8FA60050 */ lw $a2, 0x50($sp) +/* 0E2F38 7F0AE408 0FC2B917 */ jal sub_GAME_7F0AE45C +/* 0E2F3C 7F0AE40C 03C03825 */ move $a3, $fp +/* 0E2F40 7F0AE410 00409825 */ move $s3, $v0 +.L7F0AE414: +/* 0E2F44 7F0AE414 8FA50064 */ lw $a1, 0x64($sp) +.L7F0AE418: +/* 0E2F48 7F0AE418 8FCF000C */ lw $t7, 0xc($fp) +/* 0E2F4C 7F0AE41C 02601025 */ move $v0, $s3 +/* 0E2F50 7F0AE420 8CAA0000 */ lw $t2, ($a1) +/* 0E2F54 7F0AE424 014F6821 */ addu $t5, $t2, $t7 +/* 0E2F58 7F0AE428 ACAD0000 */ sw $t5, ($a1) +/* 0E2F5C 7F0AE42C 8FBF004C */ lw $ra, 0x4c($sp) +/* 0E2F60 7F0AE430 8FBE0048 */ lw $fp, 0x48($sp) +/* 0E2F64 7F0AE434 8FB70044 */ lw $s7, 0x44($sp) +/* 0E2F68 7F0AE438 8FB60040 */ lw $s6, 0x40($sp) +/* 0E2F6C 7F0AE43C 8FB5003C */ lw $s5, 0x3c($sp) +/* 0E2F70 7F0AE440 8FB40038 */ lw $s4, 0x38($sp) +/* 0E2F74 7F0AE444 8FB30034 */ lw $s3, 0x34($sp) +/* 0E2F78 7F0AE448 8FB20030 */ lw $s2, 0x30($sp) +/* 0E2F7C 7F0AE44C 8FB1002C */ lw $s1, 0x2c($sp) +/* 0E2F80 7F0AE450 8FB00028 */ lw $s0, 0x28($sp) +/* 0E2F84 7F0AE454 03E00008 */ jr $ra +/* 0E2F88 7F0AE458 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AE45C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AE45C +/* 0E2F8C 7F0AE45C 8CEE000C */ lw $t6, 0xc($a3) +/* 0E2F90 7F0AE460 8FAF0010 */ lw $t7, 0x10($sp) +/* 0E2F94 7F0AE464 8FB80018 */ lw $t8, 0x18($sp) +/* 0E2F98 7F0AE468 01C51021 */ addu $v0, $t6, $a1 +/* 0E2F9C 7F0AE46C 01F8C821 */ addu $t9, $t7, $t8 +/* 0E2FA0 7F0AE470 0322082A */ slt $at, $t9, $v0 +/* 0E2FA4 7F0AE474 1420009B */ bnez $at, .L7F0AE6E4 +/* 0E2FA8 7F0AE478 00000000 */ nop +/* 0E2FAC 7F0AE47C 8CE30004 */ lw $v1, 4($a3) +/* 0E2FB0 7F0AE480 8FA90014 */ lw $t1, 0x14($sp) +/* 0E2FB4 7F0AE484 8FAC001C */ lw $t4, 0x1c($sp) +/* 0E2FB8 7F0AE488 00664021 */ addu $t0, $v1, $a2 +/* 0E2FBC 7F0AE48C 0109082A */ slt $at, $t0, $t1 +/* 0E2FC0 7F0AE490 5420006E */ bnezl $at, .L7F0AE64C +/* 0E2FC4 7F0AE494 8CEF0008 */ lw $t7, 8($a3) +/* 0E2FC8 7F0AE498 8CED0008 */ lw $t5, 8($a3) +/* 0E2FCC 7F0AE49C 012C5021 */ addu $t2, $t1, $t4 +/* 0E2FD0 7F0AE4A0 3C0E8004 */ lui $t6, %hi(text_orientation) +/* 0E2FD4 7F0AE4A4 010D5821 */ addu $t3, $t0, $t5 +/* 0E2FD8 7F0AE4A8 014B082A */ slt $at, $t2, $t3 +/* 0E2FDC 7F0AE4AC 54200047 */ bnezl $at, .L7F0AE5CC +/* 0E2FE0 7F0AE4B0 0148082A */ slt $at, $t2, $t0 +/* 0E2FE4 7F0AE4B4 8DCE0E88 */ lw $t6, %lo(text_orientation)($t6) +/* 0E2FE8 7F0AE4B8 0002C080 */ sll $t8, $v0, 2 +/* 0E2FEC 7F0AE4BC 330C0FFF */ andi $t4, $t8, 0xfff +/* 0E2FF0 7F0AE4C0 11C00026 */ beqz $t6, .L7F0AE55C +/* 0E2FF4 7F0AE4C4 24880008 */ addiu $t0, $a0, 8 +/* 0E2FF8 7F0AE4C8 00C37823 */ subu $t7, $a2, $v1 +/* 0E2FFC 7F0AE4CC 000FC080 */ sll $t8, $t7, 2 +/* 0E3000 7F0AE4D0 33190FFF */ andi $t9, $t8, 0xfff +/* 0E3004 7F0AE4D4 00196300 */ sll $t4, $t9, 0xc +/* 0E3008 7F0AE4D8 3C01E500 */ lui $at, 0xe500 +/* 0E300C 7F0AE4DC 00027080 */ sll $t6, $v0, 2 +/* 0E3010 7F0AE4E0 31CF0FFF */ andi $t7, $t6, 0xfff +/* 0E3014 7F0AE4E4 01816825 */ or $t5, $t4, $at +/* 0E3018 7F0AE4E8 01AFC025 */ or $t8, $t5, $t7 +/* 0E301C 7F0AE4EC AC980000 */ sw $t8, ($a0) +/* 0E3020 7F0AE4F0 8CF90004 */ lw $t9, 4($a3) +/* 0E3024 7F0AE4F4 8CEE0008 */ lw $t6, 8($a3) +/* 0E3028 7F0AE4F8 24890008 */ addiu $t1, $a0, 8 +/* 0E302C 7F0AE4FC 00D96023 */ subu $t4, $a2, $t9 +/* 0E3030 7F0AE500 018E6823 */ subu $t5, $t4, $t6 +/* 0E3034 7F0AE504 000D7880 */ sll $t7, $t5, 2 +/* 0E3038 7F0AE508 31F80FFF */ andi $t8, $t7, 0xfff +/* 0E303C 7F0AE50C 00056080 */ sll $t4, $a1, 2 +/* 0E3040 7F0AE510 318E0FFF */ andi $t6, $t4, 0xfff +/* 0E3044 7F0AE514 0018CB00 */ sll $t9, $t8, 0xc +/* 0E3048 7F0AE518 032E6825 */ or $t5, $t9, $t6 +/* 0E304C 7F0AE51C AC8D0004 */ sw $t5, 4($a0) +/* 0E3050 7F0AE520 3C0FB400 */ lui $t7, 0xb400 +/* 0E3054 7F0AE524 AD2F0000 */ sw $t7, ($t1) +/* 0E3058 7F0AE528 8CF80008 */ lw $t8, 8($a3) +/* 0E305C 7F0AE52C 3C0F0400 */ lui $t7, (0x0400FC00 >> 16) # lui $t7, 0x400 +/* 0E3060 7F0AE530 252A0008 */ addiu $t2, $t1, 8 +/* 0E3064 7F0AE534 270CFFFF */ addiu $t4, $t8, -1 +/* 0E3068 7F0AE538 000CC940 */ sll $t9, $t4, 5 +/* 0E306C 7F0AE53C 332EFFFF */ andi $t6, $t9, 0xffff +/* 0E3070 7F0AE540 AD2E0004 */ sw $t6, 4($t1) +/* 0E3074 7F0AE544 35EFFC00 */ ori $t7, (0x0400FC00 & 0xFFFF) # ori $t7, $t7, 0xfc00 +/* 0E3078 7F0AE548 3C0DB300 */ lui $t5, 0xb300 +/* 0E307C 7F0AE54C AD4D0000 */ sw $t5, ($t2) +/* 0E3080 7F0AE550 AD4F0004 */ sw $t7, 4($t2) +/* 0E3084 7F0AE554 03E00008 */ jr $ra +/* 0E3088 7F0AE558 25420008 */ addiu $v0, $t2, 8 + +.L7F0AE55C: +/* 0E308C 7F0AE55C 000CCB00 */ sll $t9, $t4, 0xc +/* 0E3090 7F0AE560 3C01E400 */ lui $at, 0xe400 +/* 0E3094 7F0AE564 000B6880 */ sll $t5, $t3, 2 +/* 0E3098 7F0AE568 31AF0FFF */ andi $t7, $t5, 0xfff +/* 0E309C 7F0AE56C 03217025 */ or $t6, $t9, $at +/* 0E30A0 7F0AE570 01CFC025 */ or $t8, $t6, $t7 +/* 0E30A4 7F0AE574 AC980000 */ sw $t8, ($a0) +/* 0E30A8 7F0AE578 8CEE0004 */ lw $t6, 4($a3) +/* 0E30AC 7F0AE57C 00056080 */ sll $t4, $a1, 2 +/* 0E30B0 7F0AE580 31990FFF */ andi $t9, $t4, 0xfff +/* 0E30B4 7F0AE584 00CE7821 */ addu $t7, $a2, $t6 +/* 0E30B8 7F0AE588 000FC080 */ sll $t8, $t7, 2 +/* 0E30BC 7F0AE58C 330C0FFF */ andi $t4, $t8, 0xfff +/* 0E30C0 7F0AE590 00196B00 */ sll $t5, $t9, 0xc +/* 0E30C4 7F0AE594 01ACC825 */ or $t9, $t5, $t4 +/* 0E30C8 7F0AE598 AC990004 */ sw $t9, 4($a0) +/* 0E30CC 7F0AE59C 3C180400 */ lui $t8, (0x04000400 >> 16) # lui $t8, 0x400 +/* 0E30D0 7F0AE5A0 3C0EB400 */ lui $t6, 0xb400 +/* 0E30D4 7F0AE5A4 25090008 */ addiu $t1, $t0, 8 +/* 0E30D8 7F0AE5A8 AD0E0000 */ sw $t6, ($t0) +/* 0E30DC 7F0AE5AC 37180400 */ ori $t8, (0x04000400 & 0xFFFF) # ori $t8, $t8, 0x400 +/* 0E30E0 7F0AE5B0 AD000004 */ sw $zero, 4($t0) +/* 0E30E4 7F0AE5B4 3C0FB300 */ lui $t7, 0xb300 +/* 0E30E8 7F0AE5B8 AD2F0000 */ sw $t7, ($t1) +/* 0E30EC 7F0AE5BC AD380004 */ sw $t8, 4($t1) +/* 0E30F0 7F0AE5C0 03E00008 */ jr $ra +/* 0E30F4 7F0AE5C4 25220008 */ addiu $v0, $t1, 8 + +/* 0E30F8 7F0AE5C8 0148082A */ slt $at, $t2, $t0 +.L7F0AE5CC: +/* 0E30FC 7F0AE5CC 14200045 */ bnez $at, .L7F0AE6E4 +/* 0E3100 7F0AE5D0 24880008 */ addiu $t0, $a0, 8 +/* 0E3104 7F0AE5D4 00026880 */ sll $t5, $v0, 2 +/* 0E3108 7F0AE5D8 31AC0FFF */ andi $t4, $t5, 0xfff +/* 0E310C 7F0AE5DC 000CCB00 */ sll $t9, $t4, 0xc +/* 0E3110 7F0AE5E0 3C01E400 */ lui $at, 0xe400 +/* 0E3114 7F0AE5E4 000A7880 */ sll $t7, $t2, 2 +/* 0E3118 7F0AE5E8 31F80FFF */ andi $t8, $t7, 0xfff +/* 0E311C 7F0AE5EC 03217025 */ or $t6, $t9, $at +/* 0E3120 7F0AE5F0 01D86825 */ or $t5, $t6, $t8 +/* 0E3124 7F0AE5F4 AC8D0000 */ sw $t5, ($a0) +/* 0E3128 7F0AE5F8 8CEE0004 */ lw $t6, 4($a3) +/* 0E312C 7F0AE5FC 00056080 */ sll $t4, $a1, 2 +/* 0E3130 7F0AE600 31990FFF */ andi $t9, $t4, 0xfff +/* 0E3134 7F0AE604 00CEC021 */ addu $t8, $a2, $t6 +/* 0E3138 7F0AE608 00186880 */ sll $t5, $t8, 2 +/* 0E313C 7F0AE60C 31AC0FFF */ andi $t4, $t5, 0xfff +/* 0E3140 7F0AE610 00197B00 */ sll $t7, $t9, 0xc +/* 0E3144 7F0AE614 01ECC825 */ or $t9, $t7, $t4 +/* 0E3148 7F0AE618 AC990004 */ sw $t9, 4($a0) +/* 0E314C 7F0AE61C 3C0D0400 */ lui $t5, (0x04000400 >> 16) # lui $t5, 0x400 +/* 0E3150 7F0AE620 3C0EB400 */ lui $t6, 0xb400 +/* 0E3154 7F0AE624 25090008 */ addiu $t1, $t0, 8 +/* 0E3158 7F0AE628 AD0E0000 */ sw $t6, ($t0) +/* 0E315C 7F0AE62C 35AD0400 */ ori $t5, (0x04000400 & 0xFFFF) # ori $t5, $t5, 0x400 +/* 0E3160 7F0AE630 AD000004 */ sw $zero, 4($t0) +/* 0E3164 7F0AE634 3C18B300 */ lui $t8, 0xb300 +/* 0E3168 7F0AE638 AD380000 */ sw $t8, ($t1) +/* 0E316C 7F0AE63C AD2D0004 */ sw $t5, 4($t1) +/* 0E3170 7F0AE640 03E00008 */ jr $ra +/* 0E3174 7F0AE644 25220008 */ addiu $v0, $t1, 8 + +/* 0E3178 7F0AE648 8CEF0008 */ lw $t7, 8($a3) +.L7F0AE64C: +/* 0E317C 7F0AE64C 00026080 */ sll $t4, $v0, 2 +/* 0E3180 7F0AE650 31990FFF */ andi $t9, $t4, 0xfff +/* 0E3184 7F0AE654 010F5821 */ addu $t3, $t0, $t7 +/* 0E3188 7F0AE658 0169082A */ slt $at, $t3, $t1 +/* 0E318C 7F0AE65C 14200021 */ bnez $at, .L7F0AE6E4 +/* 0E3190 7F0AE660 00801825 */ move $v1, $a0 +/* 0E3194 7F0AE664 00197300 */ sll $t6, $t9, 0xc +/* 0E3198 7F0AE668 3C01E400 */ lui $at, 0xe400 +/* 0E319C 7F0AE66C 000B6880 */ sll $t5, $t3, 2 +/* 0E31A0 7F0AE670 31AF0FFF */ andi $t7, $t5, 0xfff +/* 0E31A4 7F0AE674 01C1C025 */ or $t8, $t6, $at +/* 0E31A8 7F0AE678 030F6025 */ or $t4, $t8, $t7 +/* 0E31AC 7F0AE67C 0005C880 */ sll $t9, $a1, 2 +/* 0E31B0 7F0AE680 332E0FFF */ andi $t6, $t9, 0xfff +/* 0E31B4 7F0AE684 0009C080 */ sll $t8, $t1, 2 +/* 0E31B8 7F0AE688 330F0FFF */ andi $t7, $t8, 0xfff +/* 0E31BC 7F0AE68C 000E6B00 */ sll $t5, $t6, 0xc +/* 0E31C0 7F0AE690 AC6C0000 */ sw $t4, ($v1) +/* 0E31C4 7F0AE694 01AF6025 */ or $t4, $t5, $t7 +/* 0E31C8 7F0AE698 24840008 */ addiu $a0, $a0, 8 +/* 0E31CC 7F0AE69C 00804025 */ move $t0, $a0 +/* 0E31D0 7F0AE6A0 AC6C0004 */ sw $t4, 4($v1) +/* 0E31D4 7F0AE6A4 3C19B400 */ lui $t9, 0xb400 +/* 0E31D8 7F0AE6A8 AD190000 */ sw $t9, ($t0) +/* 0E31DC 7F0AE6AC 8CEE0004 */ lw $t6, 4($a3) +/* 0E31E0 7F0AE6B0 24840008 */ addiu $a0, $a0, 8 +/* 0E31E4 7F0AE6B4 00805025 */ move $t2, $a0 +/* 0E31E8 7F0AE6B8 012EC023 */ subu $t8, $t1, $t6 +/* 0E31EC 7F0AE6BC 03066823 */ subu $t5, $t8, $a2 +/* 0E31F0 7F0AE6C0 000D7940 */ sll $t7, $t5, 5 +/* 0E31F4 7F0AE6C4 31ECFFFF */ andi $t4, $t7, 0xffff +/* 0E31F8 7F0AE6C8 AD0C0004 */ sw $t4, 4($t0) +/* 0E31FC 7F0AE6CC 3C0E0400 */ lui $t6, (0x04000400 >> 16) # lui $t6, 0x400 +/* 0E3200 7F0AE6D0 35CE0400 */ ori $t6, (0x04000400 & 0xFFFF) # ori $t6, $t6, 0x400 +/* 0E3204 7F0AE6D4 3C19B300 */ lui $t9, 0xb300 +/* 0E3208 7F0AE6D8 AD590000 */ sw $t9, ($t2) +/* 0E320C 7F0AE6DC AD4E0004 */ sw $t6, 4($t2) +/* 0E3210 7F0AE6E0 24840008 */ addiu $a0, $a0, 8 +.L7F0AE6E4: +/* 0E3214 7F0AE6E4 03E00008 */ jr $ra +/* 0E3218 7F0AE6E8 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +void jp_text_write_stuff(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel jp_text_write_stuff +/* 0E321C 7F0AE6EC 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 0E3220 7F0AE6F0 240E0001 */ li $t6, 1 +/* 0E3224 7F0AE6F4 3C018004 */ lui $at, %hi(D_80040EA8) +/* 0E3228 7F0AE6F8 8FB800C4 */ lw $t8, 0xc4($sp) +/* 0E322C 7F0AE6FC AFBF0064 */ sw $ra, 0x64($sp) +/* 0E3230 7F0AE700 AFBE0060 */ sw $fp, 0x60($sp) +/* 0E3234 7F0AE704 AFB7005C */ sw $s7, 0x5c($sp) +/* 0E3238 7F0AE708 AFB60058 */ sw $s6, 0x58($sp) +/* 0E323C 7F0AE70C AFB50054 */ sw $s5, 0x54($sp) +/* 0E3240 7F0AE710 AFB40050 */ sw $s4, 0x50($sp) +/* 0E3244 7F0AE714 AFB3004C */ sw $s3, 0x4c($sp) +/* 0E3248 7F0AE718 AFB20048 */ sw $s2, 0x48($sp) +/* 0E324C 7F0AE71C AFB10044 */ sw $s1, 0x44($sp) +/* 0E3250 7F0AE720 AFB00040 */ sw $s0, 0x40($sp) +/* 0E3254 7F0AE724 AC2E0EA8 */ sw $t6, %lo(D_80040EA8)($at) +/* 0E3258 7F0AE728 8CCF0000 */ lw $t7, ($a2) +/* 0E325C 7F0AE72C 8CB60000 */ lw $s6, ($a1) +/* 0E3260 7F0AE730 00E08025 */ move $s0, $a3 +/* 0E3264 7F0AE734 00A08825 */ move $s1, $a1 +/* 0E3268 7F0AE738 00C09825 */ move $s3, $a2 +/* 0E326C 7F0AE73C 0080A825 */ move $s5, $a0 +/* 0E3270 7F0AE740 24140048 */ li $s4, 72 +/* 0E3274 7F0AE744 17000006 */ bnez $t8, .L7F0AE760 +/* 0E3278 7F0AE748 AFAF0090 */ sw $t7, 0x90($sp) +/* 0E327C 7F0AE74C 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0E3280 7F0AE750 8F28088C */ lw $t0, 0x88c($t9) +/* 0E3284 7F0AE754 8F290890 */ lw $t1, 0x890($t9) +/* 0E3288 7F0AE758 01095021 */ addu $t2, $t0, $t1 +/* 0E328C 7F0AE75C AFAA00C4 */ sw $t2, 0xc4($sp) +.L7F0AE760: +/* 0E3290 7F0AE760 3C0B8005 */ lui $t3, %hi(j_text_trigger) +/* 0E3294 7F0AE764 8D6B84D0 */ lw $t3, %lo(j_text_trigger)($t3) +/* 0E3298 7F0AE768 8FAC00C4 */ lw $t4, 0xc4($sp) +/* 0E329C 7F0AE76C 27B20074 */ addiu $s2, $sp, 0x74 +/* 0E32A0 7F0AE770 11600004 */ beqz $t3, .L7F0AE784 +/* 0E32A4 7F0AE774 2981000E */ slti $at, $t4, 0xe +/* 0E32A8 7F0AE778 10200002 */ beqz $at, .L7F0AE784 +/* 0E32AC 7F0AE77C 240D000E */ li $t5, 14 +/* 0E32B0 7F0AE780 AFAD00C4 */ sw $t5, 0xc4($sp) +.L7F0AE784: +/* 0E32B4 7F0AE784 92020000 */ lbu $v0, ($s0) +/* 0E32B8 7F0AE788 8FBE00B0 */ lw $fp, 0xb0($sp) +/* 0E32BC 7F0AE78C 8FB700AC */ lw $s7, 0xac($sp) +/* 0E32C0 7F0AE790 10400071 */ beqz $v0, .L7F0AE958 +/* 0E32C4 7F0AE794 24010020 */ li $at, 32 +.L7F0AE798: +/* 0E32C8 7F0AE798 54410008 */ bnel $v0, $at, .L7F0AE7BC +/* 0E32CC 7F0AE79C 2401000A */ li $at, 10 +/* 0E32D0 7F0AE7A0 8E2E0000 */ lw $t6, ($s1) +/* 0E32D4 7F0AE7A4 24140048 */ li $s4, 72 +/* 0E32D8 7F0AE7A8 26100001 */ addiu $s0, $s0, 1 +/* 0E32DC 7F0AE7AC 25CF0005 */ addiu $t7, $t6, 5 +/* 0E32E0 7F0AE7B0 10000066 */ b .L7F0AE94C +/* 0E32E4 7F0AE7B4 AE2F0000 */ sw $t7, ($s1) +/* 0E32E8 7F0AE7B8 2401000A */ li $at, 10 +.L7F0AE7BC: +/* 0E32EC 7F0AE7BC 5441000A */ bnel $v0, $at, .L7F0AE7E8 +/* 0E32F0 7F0AE7C0 28410080 */ slti $at, $v0, 0x80 +/* 0E32F4 7F0AE7C4 AE360000 */ sw $s6, ($s1) +/* 0E32F8 7F0AE7C8 8E780000 */ lw $t8, ($s3) +/* 0E32FC 7F0AE7CC 8FB900C4 */ lw $t9, 0xc4($sp) +/* 0E3300 7F0AE7D0 24140048 */ li $s4, 72 +/* 0E3304 7F0AE7D4 26100001 */ addiu $s0, $s0, 1 +/* 0E3308 7F0AE7D8 03194021 */ addu $t0, $t8, $t9 +/* 0E330C 7F0AE7DC 1000005B */ b .L7F0AE94C +/* 0E3310 7F0AE7E0 AE680000 */ sw $t0, ($s3) +/* 0E3314 7F0AE7E4 28410080 */ slti $at, $v0, 0x80 +.L7F0AE7E8: +/* 0E3318 7F0AE7E8 10200021 */ beqz $at, .L7F0AE870 +/* 0E331C 7F0AE7EC 3C0E8004 */ lui $t6, %hi(D_80040F14) +/* 0E3320 7F0AE7F0 24030018 */ li $v1, 24 +/* 0E3324 7F0AE7F4 00430019 */ multu $v0, $v1 +/* 0E3328 7F0AE7F8 8FAA00A8 */ lw $t2, 0xa8($sp) +/* 0E332C 7F0AE7FC 8FAE0090 */ lw $t6, 0x90($sp) +/* 0E3330 7F0AE800 8FAF00B4 */ lw $t7, 0xb4($sp) +/* 0E3334 7F0AE804 8FB800B8 */ lw $t8, 0xb8($sp) +/* 0E3338 7F0AE808 8FB900BC */ lw $t9, 0xbc($sp) +/* 0E333C 7F0AE80C 8FA800C0 */ lw $t0, 0xc0($sp) +/* 0E3340 7F0AE810 02A02025 */ move $a0, $s5 +/* 0E3344 7F0AE814 02202825 */ move $a1, $s1 +/* 0E3348 7F0AE818 02603025 */ move $a2, $s3 +/* 0E334C 7F0AE81C 00004812 */ mflo $t1 +/* 0E3350 7F0AE820 012A3821 */ addu $a3, $t1, $t2 +/* 0E3354 7F0AE824 24E7FCE8 */ addiu $a3, $a3, -0x318 +/* 0E3358 7F0AE828 02830019 */ multu $s4, $v1 +/* 0E335C 7F0AE82C AFB70014 */ sw $s7, 0x14($sp) +/* 0E3360 7F0AE830 AFB60018 */ sw $s6, 0x18($sp) +/* 0E3364 7F0AE834 AFBE0020 */ sw $fp, 0x20($sp) +/* 0E3368 7F0AE838 AFAE001C */ sw $t6, 0x1c($sp) +/* 0E336C 7F0AE83C AFAF0024 */ sw $t7, 0x24($sp) +/* 0E3370 7F0AE840 AFB80028 */ sw $t8, 0x28($sp) +/* 0E3374 7F0AE844 AFB9002C */ sw $t9, 0x2c($sp) +/* 0E3378 7F0AE848 AFA80030 */ sw $t0, 0x30($sp) +/* 0E337C 7F0AE84C 00005812 */ mflo $t3 +/* 0E3380 7F0AE850 016A6021 */ addu $t4, $t3, $t2 +/* 0E3384 7F0AE854 258DFCE8 */ addiu $t5, $t4, -0x318 +/* 0E3388 7F0AE858 0FC2B76B */ jal sub_GAME_7F0ADDAC +/* 0E338C 7F0AE85C AFAD0010 */ sw $t5, 0x10($sp) +/* 0E3390 7F0AE860 0040A825 */ move $s5, $v0 +/* 0E3394 7F0AE864 92140000 */ lbu $s4, ($s0) +/* 0E3398 7F0AE868 10000038 */ b .L7F0AE94C +/* 0E339C 7F0AE86C 26100001 */ addiu $s0, $s0, 1 +.L7F0AE870: +/* 0E33A0 7F0AE870 25CE0F14 */ addiu $t6, $t6, %lo(D_80040F14) +/* 0E33A4 7F0AE874 8DC10000 */ lw $at, ($t6) +/* 0E33A8 7F0AE878 92090001 */ lbu $t1, 1($s0) +/* 0E33AC 7F0AE87C 304A007F */ andi $t2, $v0, 0x7f +/* 0E33B0 7F0AE880 AE410000 */ sw $at, ($s2) +/* 0E33B4 7F0AE884 8DD80004 */ lw $t8, 4($t6) +/* 0E33B8 7F0AE888 000A61C0 */ sll $t4, $t2, 7 +/* 0E33BC 7F0AE88C 312B007F */ andi $t3, $t1, 0x7f +/* 0E33C0 7F0AE890 AE580004 */ sw $t8, 4($s2) +/* 0E33C4 7F0AE894 8DC10008 */ lw $at, 8($t6) +/* 0E33C8 7F0AE898 016C1825 */ or $v1, $t3, $t4 +/* 0E33CC 7F0AE89C 3064FFFF */ andi $a0, $v1, 0xffff +/* 0E33D0 7F0AE8A0 AE410008 */ sw $at, 8($s2) +/* 0E33D4 7F0AE8A4 8DD8000C */ lw $t8, 0xc($t6) +/* 0E33D8 7F0AE8A8 30992000 */ andi $t9, $a0, 0x2000 +/* 0E33DC 7F0AE8AC 308A1FFF */ andi $t2, $a0, 0x1fff +/* 0E33E0 7F0AE8B0 AE58000C */ sw $t8, 0xc($s2) +/* 0E33E4 7F0AE8B4 8DC10010 */ lw $at, 0x10($t6) +/* 0E33E8 7F0AE8B8 2408000F */ li $t0, 15 +/* 0E33EC 7F0AE8BC 24090010 */ li $t1, 16 +/* 0E33F0 7F0AE8C0 AE410010 */ sw $at, 0x10($s2) +/* 0E33F4 7F0AE8C4 8DD80014 */ lw $t8, 0x14($t6) +/* 0E33F8 7F0AE8C8 294103C7 */ slti $at, $t2, 0x3c7 +/* 0E33FC 7F0AE8CC 13200003 */ beqz $t9, .L7F0AE8DC +/* 0E3400 7F0AE8D0 AE580014 */ sw $t8, 0x14($s2) +/* 0E3404 7F0AE8D4 AFA80080 */ sw $t0, 0x80($sp) +/* 0E3408 7F0AE8D8 AFA9007C */ sw $t1, 0x7c($sp) +.L7F0AE8DC: +/* 0E340C 7F0AE8DC 54200003 */ bnezl $at, .L7F0AE8EC +/* 0E3410 7F0AE8E0 248B0080 */ addiu $t3, $a0, 0x80 +/* 0E3414 7F0AE8E4 24040002 */ li $a0, 2 +/* 0E3418 7F0AE8E8 248B0080 */ addiu $t3, $a0, 0x80 +.L7F0AE8EC: +/* 0E341C 7F0AE8EC 0FC3068C */ jal something_with_LnameX +/* 0E3420 7F0AE8F0 AFAB0074 */ sw $t3, 0x74($sp) +/* 0E3424 7F0AE8F4 8FAC0090 */ lw $t4, 0x90($sp) +/* 0E3428 7F0AE8F8 8FAD00B4 */ lw $t5, 0xb4($sp) +/* 0E342C 7F0AE8FC 8FAF00B8 */ lw $t7, 0xb8($sp) +/* 0E3430 7F0AE900 8FAE00BC */ lw $t6, 0xbc($sp) +/* 0E3434 7F0AE904 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0E3438 7F0AE908 AFA20088 */ sw $v0, 0x88($sp) +/* 0E343C 7F0AE90C 02A02025 */ move $a0, $s5 +/* 0E3440 7F0AE910 02202825 */ move $a1, $s1 +/* 0E3444 7F0AE914 02603025 */ move $a2, $s3 +/* 0E3448 7F0AE918 02403825 */ move $a3, $s2 +/* 0E344C 7F0AE91C AFB20010 */ sw $s2, 0x10($sp) +/* 0E3450 7F0AE920 AFB70014 */ sw $s7, 0x14($sp) +/* 0E3454 7F0AE924 AFB60018 */ sw $s6, 0x18($sp) +/* 0E3458 7F0AE928 AFBE0020 */ sw $fp, 0x20($sp) +/* 0E345C 7F0AE92C AFAC001C */ sw $t4, 0x1c($sp) +/* 0E3460 7F0AE930 AFAD0024 */ sw $t5, 0x24($sp) +/* 0E3464 7F0AE934 AFAF0028 */ sw $t7, 0x28($sp) +/* 0E3468 7F0AE938 AFAE002C */ sw $t6, 0x2c($sp) +/* 0E346C 7F0AE93C 0FC2B76B */ jal sub_GAME_7F0ADDAC +/* 0E3470 7F0AE940 AFB80030 */ sw $t8, 0x30($sp) +/* 0E3474 7F0AE944 0040A825 */ move $s5, $v0 +/* 0E3478 7F0AE948 26100002 */ addiu $s0, $s0, 2 +.L7F0AE94C: +/* 0E347C 7F0AE94C 92020000 */ lbu $v0, ($s0) +/* 0E3480 7F0AE950 5440FF91 */ bnezl $v0, .L7F0AE798 +/* 0E3484 7F0AE954 24010020 */ li $at, 32 +.L7F0AE958: +/* 0E3488 7F0AE958 8FBF0064 */ lw $ra, 0x64($sp) +/* 0E348C 7F0AE95C 02A01025 */ move $v0, $s5 +/* 0E3490 7F0AE960 8FB50054 */ lw $s5, 0x54($sp) +/* 0E3494 7F0AE964 8FB00040 */ lw $s0, 0x40($sp) +/* 0E3498 7F0AE968 8FB10044 */ lw $s1, 0x44($sp) +/* 0E349C 7F0AE96C 8FB20048 */ lw $s2, 0x48($sp) +/* 0E34A0 7F0AE970 8FB3004C */ lw $s3, 0x4c($sp) +/* 0E34A4 7F0AE974 8FB40050 */ lw $s4, 0x50($sp) +/* 0E34A8 7F0AE978 8FB60058 */ lw $s6, 0x58($sp) +/* 0E34AC 7F0AE97C 8FB7005C */ lw $s7, 0x5c($sp) +/* 0E34B0 7F0AE980 8FBE0060 */ lw $fp, 0x60($sp) +/* 0E34B4 7F0AE984 03E00008 */ jr $ra +/* 0E34B8 7F0AE988 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel jp_text_write_stuff +/* 0E321C 7F0AE6EC 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 0E3220 7F0AE6F0 240E0001 */ li $t6, 1 +/* 0E3224 7F0AE6F4 3C018004 */ lui $at, %hi(D_80040EA8) +/* 0E3228 7F0AE6F8 8FB800C4 */ lw $t8, 0xc4($sp) +/* 0E322C 7F0AE6FC AFBF0064 */ sw $ra, 0x64($sp) +/* 0E3230 7F0AE700 AFBE0060 */ sw $fp, 0x60($sp) +/* 0E3234 7F0AE704 AFB7005C */ sw $s7, 0x5c($sp) +/* 0E3238 7F0AE708 AFB60058 */ sw $s6, 0x58($sp) +/* 0E323C 7F0AE70C AFB50054 */ sw $s5, 0x54($sp) +/* 0E3240 7F0AE710 AFB40050 */ sw $s4, 0x50($sp) +/* 0E3244 7F0AE714 AFB3004C */ sw $s3, 0x4c($sp) +/* 0E3248 7F0AE718 AFB20048 */ sw $s2, 0x48($sp) +/* 0E324C 7F0AE71C AFB10044 */ sw $s1, 0x44($sp) +/* 0E3250 7F0AE720 AFB00040 */ sw $s0, 0x40($sp) +/* 0E3254 7F0AE724 AC2E0EA8 */ sw $t6, %lo(D_80040EA8)($at) +/* 0E3258 7F0AE728 8CCF0000 */ lw $t7, ($a2) +/* 0E325C 7F0AE72C 8CB60000 */ lw $s6, ($a1) +/* 0E3260 7F0AE730 00E08025 */ move $s0, $a3 +/* 0E3264 7F0AE734 00A08825 */ move $s1, $a1 +/* 0E3268 7F0AE738 00C09825 */ move $s3, $a2 +/* 0E326C 7F0AE73C 0080A825 */ move $s5, $a0 +/* 0E3270 7F0AE740 24140048 */ li $s4, 72 +/* 0E3274 7F0AE744 17000006 */ bnez $t8, .L7F0AE760 +/* 0E3278 7F0AE748 AFAF0090 */ sw $t7, 0x90($sp) +/* 0E327C 7F0AE74C 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0E3280 7F0AE750 8F28088C */ lw $t0, 0x88c($t9) +/* 0E3284 7F0AE754 8F290890 */ lw $t1, 0x890($t9) +/* 0E3288 7F0AE758 01095021 */ addu $t2, $t0, $t1 +/* 0E328C 7F0AE75C AFAA00C4 */ sw $t2, 0xc4($sp) +.L7F0AE760: +/* 0E3290 7F0AE760 3C0B8005 */ lui $t3, %hi(j_text_trigger) +/* 0E3294 7F0AE764 8D6B84D0 */ lw $t3, %lo(j_text_trigger)($t3) +/* 0E3298 7F0AE768 8FAC00C4 */ lw $t4, 0xc4($sp) +/* 0E329C 7F0AE76C 27B20074 */ addiu $s2, $sp, 0x74 +/* 0E32A0 7F0AE770 11600004 */ beqz $t3, .L7F0AE784 +/* 0E32A4 7F0AE774 2981000E */ slti $at, $t4, 0xe +/* 0E32A8 7F0AE778 10200002 */ beqz $at, .L7F0AE784 +/* 0E32AC 7F0AE77C 240D000E */ li $t5, 14 +/* 0E32B0 7F0AE780 AFAD00C4 */ sw $t5, 0xc4($sp) +.L7F0AE784: +/* 0E32B4 7F0AE784 92020000 */ lbu $v0, ($s0) +/* 0E32B8 7F0AE788 8FBE00B0 */ lw $fp, 0xb0($sp) +/* 0E32BC 7F0AE78C 8FB700AC */ lw $s7, 0xac($sp) +/* 0E32C0 7F0AE790 10400071 */ beqz $v0, .L7F0AE958 +/* 0E32C4 7F0AE794 24010020 */ li $at, 32 +.L7F0AE798: +/* 0E32C8 7F0AE798 54410008 */ bnel $v0, $at, .L7F0AE7BC +/* 0E32CC 7F0AE79C 2401000A */ li $at, 10 +/* 0E32D0 7F0AE7A0 8E2E0000 */ lw $t6, ($s1) +/* 0E32D4 7F0AE7A4 24140048 */ li $s4, 72 +/* 0E32D8 7F0AE7A8 26100001 */ addiu $s0, $s0, 1 +/* 0E32DC 7F0AE7AC 25CF0005 */ addiu $t7, $t6, 5 +/* 0E32E0 7F0AE7B0 10000066 */ b .L7F0AE94C +/* 0E32E4 7F0AE7B4 AE2F0000 */ sw $t7, ($s1) +/* 0E32E8 7F0AE7B8 2401000A */ li $at, 10 +.L7F0AE7BC: +/* 0E32EC 7F0AE7BC 5441000A */ bnel $v0, $at, .L7F0AE7E8 +/* 0E32F0 7F0AE7C0 28410080 */ slti $at, $v0, 0x80 +/* 0E32F4 7F0AE7C4 AE360000 */ sw $s6, ($s1) +/* 0E32F8 7F0AE7C8 8E780000 */ lw $t8, ($s3) +/* 0E32FC 7F0AE7CC 8FB900C4 */ lw $t9, 0xc4($sp) +/* 0E3300 7F0AE7D0 24140048 */ li $s4, 72 +/* 0E3304 7F0AE7D4 26100001 */ addiu $s0, $s0, 1 +/* 0E3308 7F0AE7D8 03194021 */ addu $t0, $t8, $t9 +/* 0E330C 7F0AE7DC 1000005B */ b .L7F0AE94C +/* 0E3310 7F0AE7E0 AE680000 */ sw $t0, ($s3) +/* 0E3314 7F0AE7E4 28410080 */ slti $at, $v0, 0x80 +.L7F0AE7E8: +/* 0E3318 7F0AE7E8 10200021 */ beqz $at, .L7F0AE870 +/* 0E331C 7F0AE7EC 3C0E8004 */ lui $t6, %hi(D_80040F14) +/* 0E3320 7F0AE7F0 24030018 */ li $v1, 24 +/* 0E3324 7F0AE7F4 00430019 */ multu $v0, $v1 +/* 0E3328 7F0AE7F8 8FAA00A8 */ lw $t2, 0xa8($sp) +/* 0E332C 7F0AE7FC 8FAE0090 */ lw $t6, 0x90($sp) +/* 0E3330 7F0AE800 8FAF00B4 */ lw $t7, 0xb4($sp) +/* 0E3334 7F0AE804 8FB800B8 */ lw $t8, 0xb8($sp) +/* 0E3338 7F0AE808 8FB900BC */ lw $t9, 0xbc($sp) +/* 0E333C 7F0AE80C 8FA800C0 */ lw $t0, 0xc0($sp) +/* 0E3340 7F0AE810 02A02025 */ move $a0, $s5 +/* 0E3344 7F0AE814 02202825 */ move $a1, $s1 +/* 0E3348 7F0AE818 02603025 */ move $a2, $s3 +/* 0E334C 7F0AE81C 00004812 */ mflo $t1 +/* 0E3350 7F0AE820 012A3821 */ addu $a3, $t1, $t2 +/* 0E3354 7F0AE824 24E7FCE8 */ addiu $a3, $a3, -0x318 +/* 0E3358 7F0AE828 02830019 */ multu $s4, $v1 +/* 0E335C 7F0AE82C AFB70014 */ sw $s7, 0x14($sp) +/* 0E3360 7F0AE830 AFB60018 */ sw $s6, 0x18($sp) +/* 0E3364 7F0AE834 AFBE0020 */ sw $fp, 0x20($sp) +/* 0E3368 7F0AE838 AFAE001C */ sw $t6, 0x1c($sp) +/* 0E336C 7F0AE83C AFAF0024 */ sw $t7, 0x24($sp) +/* 0E3370 7F0AE840 AFB80028 */ sw $t8, 0x28($sp) +/* 0E3374 7F0AE844 AFB9002C */ sw $t9, 0x2c($sp) +/* 0E3378 7F0AE848 AFA80030 */ sw $t0, 0x30($sp) +/* 0E337C 7F0AE84C 00005812 */ mflo $t3 +/* 0E3380 7F0AE850 016A6021 */ addu $t4, $t3, $t2 +/* 0E3384 7F0AE854 258DFCE8 */ addiu $t5, $t4, -0x318 +/* 0E3388 7F0AE858 0FC2B76B */ jal sub_GAME_7F0ADDAC +/* 0E338C 7F0AE85C AFAD0010 */ sw $t5, 0x10($sp) +/* 0E3390 7F0AE860 0040A825 */ move $s5, $v0 +/* 0E3394 7F0AE864 92140000 */ lbu $s4, ($s0) +/* 0E3398 7F0AE868 10000038 */ b .L7F0AE94C +/* 0E339C 7F0AE86C 26100001 */ addiu $s0, $s0, 1 +.L7F0AE870: +/* 0E33A0 7F0AE870 25CE0F14 */ addiu $t6, $t6, %lo(D_80040F14) +/* 0E33A4 7F0AE874 8DC10000 */ lw $at, ($t6) +/* 0E33A8 7F0AE878 92090001 */ lbu $t1, 1($s0) +/* 0E33AC 7F0AE87C 304A007F */ andi $t2, $v0, 0x7f +/* 0E33B0 7F0AE880 AE410000 */ sw $at, ($s2) +/* 0E33B4 7F0AE884 8DD80004 */ lw $t8, 4($t6) +/* 0E33B8 7F0AE888 000A61C0 */ sll $t4, $t2, 7 +/* 0E33BC 7F0AE88C 312B007F */ andi $t3, $t1, 0x7f +/* 0E33C0 7F0AE890 AE580004 */ sw $t8, 4($s2) +/* 0E33C4 7F0AE894 8DC10008 */ lw $at, 8($t6) +/* 0E33C8 7F0AE898 016C1825 */ or $v1, $t3, $t4 +/* 0E33CC 7F0AE89C 3064FFFF */ andi $a0, $v1, 0xffff +/* 0E33D0 7F0AE8A0 AE410008 */ sw $at, 8($s2) +/* 0E33D4 7F0AE8A4 8DD8000C */ lw $t8, 0xc($t6) +/* 0E33D8 7F0AE8A8 30992000 */ andi $t9, $a0, 0x2000 +/* 0E33DC 7F0AE8AC 308A1FFF */ andi $t2, $a0, 0x1fff +/* 0E33E0 7F0AE8B0 AE58000C */ sw $t8, 0xc($s2) +/* 0E33E4 7F0AE8B4 8DC10010 */ lw $at, 0x10($t6) +/* 0E33E8 7F0AE8B8 2408000F */ li $t0, 15 +/* 0E33EC 7F0AE8BC 24090010 */ li $t1, 16 +/* 0E33F0 7F0AE8C0 AE410010 */ sw $at, 0x10($s2) +/* 0E33F4 7F0AE8C4 8DD80014 */ lw $t8, 0x14($t6) +/* 0E33F8 7F0AE8C8 294103C7 */ slti $at, $t2, 0x3c8 +/* 0E33FC 7F0AE8CC 13200003 */ beqz $t9, .L7F0AE8DC +/* 0E3400 7F0AE8D0 AE580014 */ sw $t8, 0x14($s2) +/* 0E3404 7F0AE8D4 AFA80080 */ sw $t0, 0x80($sp) +/* 0E3408 7F0AE8D8 AFA9007C */ sw $t1, 0x7c($sp) +.L7F0AE8DC: +/* 0E340C 7F0AE8DC 54200003 */ bnezl $at, .L7F0AE8EC +/* 0E3410 7F0AE8E0 248B0080 */ addiu $t3, $a0, 0x80 +/* 0E3414 7F0AE8E4 24040002 */ li $a0, 2 +/* 0E3418 7F0AE8E8 248B0080 */ addiu $t3, $a0, 0x80 +.L7F0AE8EC: +/* 0E341C 7F0AE8EC 0FC3068C */ jal something_with_LnameX +/* 0E3420 7F0AE8F0 AFAB0074 */ sw $t3, 0x74($sp) +/* 0E3424 7F0AE8F4 8FAC0090 */ lw $t4, 0x90($sp) +/* 0E3428 7F0AE8F8 8FAD00B4 */ lw $t5, 0xb4($sp) +/* 0E342C 7F0AE8FC 8FAF00B8 */ lw $t7, 0xb8($sp) +/* 0E3430 7F0AE900 8FAE00BC */ lw $t6, 0xbc($sp) +/* 0E3434 7F0AE904 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0E3438 7F0AE908 AFA20088 */ sw $v0, 0x88($sp) +/* 0E343C 7F0AE90C 02A02025 */ move $a0, $s5 +/* 0E3440 7F0AE910 02202825 */ move $a1, $s1 +/* 0E3444 7F0AE914 02603025 */ move $a2, $s3 +/* 0E3448 7F0AE918 02403825 */ move $a3, $s2 +/* 0E344C 7F0AE91C AFB20010 */ sw $s2, 0x10($sp) +/* 0E3450 7F0AE920 AFB70014 */ sw $s7, 0x14($sp) +/* 0E3454 7F0AE924 AFB60018 */ sw $s6, 0x18($sp) +/* 0E3458 7F0AE928 AFBE0020 */ sw $fp, 0x20($sp) +/* 0E345C 7F0AE92C AFAC001C */ sw $t4, 0x1c($sp) +/* 0E3460 7F0AE930 AFAD0024 */ sw $t5, 0x24($sp) +/* 0E3464 7F0AE934 AFAF0028 */ sw $t7, 0x28($sp) +/* 0E3468 7F0AE938 AFAE002C */ sw $t6, 0x2c($sp) +/* 0E346C 7F0AE93C 0FC2B76B */ jal sub_GAME_7F0ADDAC +/* 0E3470 7F0AE940 AFB80030 */ sw $t8, 0x30($sp) +/* 0E3474 7F0AE944 0040A825 */ move $s5, $v0 +/* 0E3478 7F0AE948 26100002 */ addiu $s0, $s0, 2 +.L7F0AE94C: +/* 0E347C 7F0AE94C 92020000 */ lbu $v0, ($s0) +/* 0E3480 7F0AE950 5440FF91 */ bnezl $v0, .L7F0AE798 +/* 0E3484 7F0AE954 24010020 */ li $at, 32 +.L7F0AE958: +/* 0E3488 7F0AE958 8FBF0064 */ lw $ra, 0x64($sp) +/* 0E348C 7F0AE95C 02A01025 */ move $v0, $s5 +/* 0E3490 7F0AE960 8FB50054 */ lw $s5, 0x54($sp) +/* 0E3494 7F0AE964 8FB00040 */ lw $s0, 0x40($sp) +/* 0E3498 7F0AE968 8FB10044 */ lw $s1, 0x44($sp) +/* 0E349C 7F0AE96C 8FB20048 */ lw $s2, 0x48($sp) +/* 0E34A0 7F0AE970 8FB3004C */ lw $s3, 0x4c($sp) +/* 0E34A4 7F0AE974 8FB40050 */ lw $s4, 0x50($sp) +/* 0E34A8 7F0AE978 8FB60058 */ lw $s6, 0x58($sp) +/* 0E34AC 7F0AE97C 8FB7005C */ lw $s7, 0x5c($sp) +/* 0E34B0 7F0AE980 8FBE0060 */ lw $fp, 0x60($sp) +/* 0E34B4 7F0AE984 03E00008 */ jr $ra +/* 0E34B8 7F0AE988 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif +#endif + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AE98C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AE98C +/* 0E34BC 7F0AE98C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E34C0 7F0AE990 AFB00008 */ sw $s0, 8($sp) +/* 0E34C4 7F0AE994 8FB0002C */ lw $s0, 0x2c($sp) +/* 0E34C8 7F0AE998 AFB30014 */ sw $s3, 0x14($sp) +/* 0E34CC 7F0AE99C AFB20010 */ sw $s2, 0x10($sp) +/* 0E34D0 7F0AE9A0 AFB1000C */ sw $s1, 0xc($sp) +/* 0E34D4 7F0AE9A4 AC800000 */ sw $zero, ($a0) +/* 0E34D8 7F0AE9A8 24020048 */ li $v0, 72 +/* 0E34DC 7F0AE9AC 00004025 */ move $t0, $zero +/* 0E34E0 7F0AE9B0 16000004 */ bnez $s0, .L7F0AE9C4 +/* 0E34E4 7F0AE9B4 ACA00000 */ sw $zero, ($a1) +/* 0E34E8 7F0AE9B8 8CEE0890 */ lw $t6, 0x890($a3) +/* 0E34EC 7F0AE9BC 8CEF088C */ lw $t7, 0x88c($a3) +/* 0E34F0 7F0AE9C0 01CF8021 */ addu $s0, $t6, $t7 +.L7F0AE9C4: +/* 0E34F4 7F0AE9C4 3C188005 */ lui $t8, %hi(j_text_trigger) +/* 0E34F8 7F0AE9C8 8F1884D0 */ lw $t8, %lo(j_text_trigger)($t8) +/* 0E34FC 7F0AE9CC 3C138004 */ lui $s3, %hi(text_spacing) +/* 0E3500 7F0AE9D0 2A01000E */ slti $at, $s0, 0xe +/* 0E3504 7F0AE9D4 13000004 */ beqz $t8, .L7F0AE9E8 +/* 0E3508 7F0AE9D8 26730E84 */ addiu $s3, %lo(text_spacing) # addiu $s3, $s3, 0xe84 +/* 0E350C 7F0AE9DC 50200003 */ beql $at, $zero, .L7F0AE9EC +/* 0E3510 7F0AE9E0 90C90000 */ lbu $t1, ($a2) +/* 0E3514 7F0AE9E4 2410000E */ li $s0, 14 +.L7F0AE9E8: +/* 0E3518 7F0AE9E8 90C90000 */ lbu $t1, ($a2) +.L7F0AE9EC: +/* 0E351C 7F0AE9EC 2412000D */ li $s2, 13 +/* 0E3520 7F0AE9F0 24110018 */ li $s1, 24 +/* 0E3524 7F0AE9F4 11200050 */ beqz $t1, .L7F0AEB38 +/* 0E3528 7F0AE9F8 240D000A */ li $t5, 10 +/* 0E352C 7F0AE9FC 240C0020 */ li $t4, 32 +/* 0E3530 7F0AEA00 8FAA0028 */ lw $t2, 0x28($sp) +.L7F0AEA04: +/* 0E3534 7F0AEA04 1589000A */ bne $t4, $t1, .L7F0AEA30 +/* 0E3538 7F0AEA08 00000000 */ nop +/* 0E353C 7F0AEA0C 90D90001 */ lbu $t9, 1($a2) +/* 0E3540 7F0AEA10 24020048 */ li $v0, 72 +/* 0E3544 7F0AEA14 11B90004 */ beq $t5, $t9, .L7F0AEA28 +/* 0E3548 7F0AEA18 00000000 */ nop +/* 0E354C 7F0AEA1C 8CAE0000 */ lw $t6, ($a1) +/* 0E3550 7F0AEA20 25CF0005 */ addiu $t7, $t6, 5 +/* 0E3554 7F0AEA24 ACAF0000 */ sw $t7, ($a1) +.L7F0AEA28: +/* 0E3558 7F0AEA28 10000040 */ b .L7F0AEB2C +/* 0E355C 7F0AEA2C 24C60001 */ addiu $a2, $a2, 1 +.L7F0AEA30: +/* 0E3560 7F0AEA30 15A9000C */ bne $t5, $t1, .L7F0AEA64 +/* 0E3564 7F0AEA34 29210080 */ slti $at, $t1, 0x80 +/* 0E3568 7F0AEA38 8CA30000 */ lw $v1, ($a1) +/* 0E356C 7F0AEA3C 0103082A */ slt $at, $t0, $v1 +/* 0E3570 7F0AEA40 50200003 */ beql $at, $zero, .L7F0AEA50 +/* 0E3574 7F0AEA44 ACA00000 */ sw $zero, ($a1) +/* 0E3578 7F0AEA48 00604025 */ move $t0, $v1 +/* 0E357C 7F0AEA4C ACA00000 */ sw $zero, ($a1) +.L7F0AEA50: +/* 0E3580 7F0AEA50 8C980000 */ lw $t8, ($a0) +/* 0E3584 7F0AEA54 24C60001 */ addiu $a2, $a2, 1 +/* 0E3588 7F0AEA58 0310C821 */ addu $t9, $t8, $s0 +/* 0E358C 7F0AEA5C 10000033 */ b .L7F0AEB2C +/* 0E3590 7F0AEA60 AC990000 */ sw $t9, ($a0) +.L7F0AEA64: +/* 0E3594 7F0AEA64 5020001C */ beql $at, $zero, .L7F0AEAD8 +/* 0E3598 7F0AEA68 292100C0 */ slti $at, $t1, 0xc0 +/* 0E359C 7F0AEA6C 01310019 */ multu $t1, $s1 +/* 0E35A0 7F0AEA70 24C60001 */ addiu $a2, $a2, 1 +/* 0E35A4 7F0AEA74 00007012 */ mflo $t6 +/* 0E35A8 7F0AEA78 00EE5821 */ addu $t3, $a3, $t6 +/* 0E35AC 7F0AEA7C 8D6FFCF8 */ lw $t7, -0x308($t3) +/* 0E35B0 7F0AEA80 00510019 */ multu $v0, $s1 +/* 0E35B4 7F0AEA84 000FC080 */ sll $t8, $t7, 2 +/* 0E35B8 7F0AEA88 0158C821 */ addu $t9, $t2, $t8 +/* 0E35BC 7F0AEA8C 00007012 */ mflo $t6 +/* 0E35C0 7F0AEA90 00EE7821 */ addu $t7, $a3, $t6 +/* 0E35C4 7F0AEA94 8DF8FCF8 */ lw $t8, -0x308($t7) +/* 0E35C8 7F0AEA98 03120019 */ multu $t8, $s2 +/* 0E35CC 7F0AEA9C 00007012 */ mflo $t6 +/* 0E35D0 7F0AEAA0 000E7880 */ sll $t7, $t6, 2 +/* 0E35D4 7F0AEAA4 032FC021 */ addu $t8, $t9, $t7 +/* 0E35D8 7F0AEAA8 8F0E0000 */ lw $t6, ($t8) +/* 0E35DC 7F0AEAAC 8E790000 */ lw $t9, ($s3) +/* 0E35E0 7F0AEAB0 8D78FCF4 */ lw $t8, -0x30c($t3) +/* 0E35E4 7F0AEAB4 8CAF0000 */ lw $t7, ($a1) +/* 0E35E8 7F0AEAB8 01D91821 */ addu $v1, $t6, $t9 +/* 0E35EC 7F0AEABC 2463FFFF */ addiu $v1, $v1, -1 +/* 0E35F0 7F0AEAC0 01F87021 */ addu $t6, $t7, $t8 +/* 0E35F4 7F0AEAC4 01C3C823 */ subu $t9, $t6, $v1 +/* 0E35F8 7F0AEAC8 ACB90000 */ sw $t9, ($a1) +/* 0E35FC 7F0AEACC 10000017 */ b .L7F0AEB2C +/* 0E3600 7F0AEAD0 90C2FFFF */ lbu $v0, -1($a2) +/* 0E3604 7F0AEAD4 292100C0 */ slti $at, $t1, 0xc0 +.L7F0AEAD8: +/* 0E3608 7F0AEAD8 5020000C */ beql $at, $zero, .L7F0AEB0C +/* 0E360C 7F0AEADC 8D580000 */ lw $t8, ($t2) +/* 0E3610 7F0AEAE0 8D4F0000 */ lw $t7, ($t2) +/* 0E3614 7F0AEAE4 8E780000 */ lw $t8, ($s3) +/* 0E3618 7F0AEAE8 8CAE0000 */ lw $t6, ($a1) +/* 0E361C 7F0AEAEC 24C60002 */ addiu $a2, $a2, 2 +/* 0E3620 7F0AEAF0 01F81821 */ addu $v1, $t7, $t8 +/* 0E3624 7F0AEAF4 2463FFFF */ addiu $v1, $v1, -1 +/* 0E3628 7F0AEAF8 01C3C823 */ subu $t9, $t6, $v1 +/* 0E362C 7F0AEAFC 272F000B */ addiu $t7, $t9, 0xb +/* 0E3630 7F0AEB00 1000000A */ b .L7F0AEB2C +/* 0E3634 7F0AEB04 ACAF0000 */ sw $t7, ($a1) +/* 0E3638 7F0AEB08 8D580000 */ lw $t8, ($t2) +.L7F0AEB0C: +/* 0E363C 7F0AEB0C 8E6E0000 */ lw $t6, ($s3) +/* 0E3640 7F0AEB10 8CB90000 */ lw $t9, ($a1) +/* 0E3644 7F0AEB14 24C60002 */ addiu $a2, $a2, 2 +/* 0E3648 7F0AEB18 030E1821 */ addu $v1, $t8, $t6 +/* 0E364C 7F0AEB1C 2463FFFF */ addiu $v1, $v1, -1 +/* 0E3650 7F0AEB20 03237823 */ subu $t7, $t9, $v1 +/* 0E3654 7F0AEB24 25F8000F */ addiu $t8, $t7, 0xf +/* 0E3658 7F0AEB28 ACB80000 */ sw $t8, ($a1) +.L7F0AEB2C: +/* 0E365C 7F0AEB2C 90C90000 */ lbu $t1, ($a2) +/* 0E3660 7F0AEB30 1520FFB4 */ bnez $t1, .L7F0AEA04 +/* 0E3664 7F0AEB34 00000000 */ nop +.L7F0AEB38: +/* 0E3668 7F0AEB38 8CAE0000 */ lw $t6, ($a1) +/* 0E366C 7F0AEB3C 01C8082A */ slt $at, $t6, $t0 +/* 0E3670 7F0AEB40 50200003 */ beql $at, $zero, .L7F0AEB50 +/* 0E3674 7F0AEB44 8FB00008 */ lw $s0, 8($sp) +/* 0E3678 7F0AEB48 ACA80000 */ sw $t0, ($a1) +/* 0E367C 7F0AEB4C 8FB00008 */ lw $s0, 8($sp) +.L7F0AEB50: +/* 0E3680 7F0AEB50 8FB1000C */ lw $s1, 0xc($sp) +/* 0E3684 7F0AEB54 8FB20010 */ lw $s2, 0x10($sp) +/* 0E3688 7F0AEB58 8FB30014 */ lw $s3, 0x14($sp) +/* 0E368C 7F0AEB5C 03E00008 */ jr $ra +/* 0E3690 7F0AEB60 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AEB64(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AEB64 +/* 0E3694 7F0AEB64 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 0E3698 7F0AEB68 AFB40030 */ sw $s4, 0x30($sp) +/* 0E369C 7F0AEB6C AFB3002C */ sw $s3, 0x2c($sp) +/* 0E36A0 7F0AEB70 AFB20028 */ sw $s2, 0x28($sp) +/* 0E36A4 7F0AEB74 AFB00020 */ sw $s0, 0x20($sp) +/* 0E36A8 7F0AEB78 00C08025 */ move $s0, $a2 +/* 0E36AC 7F0AEB7C 00A09025 */ move $s2, $a1 +/* 0E36B0 7F0AEB80 00E09825 */ move $s3, $a3 +/* 0E36B4 7F0AEB84 AFBF0034 */ sw $ra, 0x34($sp) +/* 0E36B8 7F0AEB88 AFB10024 */ sw $s1, 0x24($sp) +/* 0E36BC 7F0AEB8C AFA40090 */ sw $a0, 0x90($sp) +/* 0E36C0 7F0AEB90 00005825 */ move $t3, $zero +/* 0E36C4 7F0AEB94 AFA0007C */ sw $zero, 0x7c($sp) +/* 0E36C8 7F0AEB98 240D0001 */ li $t5, 1 +/* 0E36CC 7F0AEB9C 27B4004C */ addiu $s4, $sp, 0x4c +/* 0E36D0 7F0AEBA0 240A0018 */ li $t2, 24 +.L7F0AEBA4: +/* 0E36D4 7F0AEBA4 AFA00080 */ sw $zero, 0x80($sp) +/* 0E36D8 7F0AEBA8 92440000 */ lbu $a0, ($s2) +/* 0E36DC 7F0AEBAC 00008825 */ move $s1, $zero +/* 0E36E0 7F0AEBB0 00001825 */ move $v1, $zero +/* 0E36E4 7F0AEBB4 28810021 */ slti $at, $a0, 0x21 +/* 0E36E8 7F0AEBB8 1420001E */ bnez $at, .L7F0AEC34 +/* 0E36EC 7F0AEBBC 27A50080 */ addiu $a1, $sp, 0x80 +/* 0E36F0 7F0AEBC0 27A2004C */ addiu $v0, $sp, 0x4c +/* 0E36F4 7F0AEBC4 A0440000 */ sb $a0, ($v0) +.L7F0AEBC8: +/* 0E36F8 7F0AEBC8 924E0000 */ lbu $t6, ($s2) +/* 0E36FC 7F0AEBCC 26520001 */ addiu $s2, $s2, 1 +/* 0E3700 7F0AEBD0 26310001 */ addiu $s1, $s1, 1 +/* 0E3704 7F0AEBD4 01CA0019 */ multu $t6, $t2 +/* 0E3708 7F0AEBD8 904E0000 */ lbu $t6, ($v0) +/* 0E370C 7F0AEBDC 24420001 */ addiu $v0, $v0, 1 +/* 0E3710 7F0AEBE0 29C10080 */ slti $at, $t6, 0x80 +/* 0E3714 7F0AEBE4 00007812 */ mflo $t7 +/* 0E3718 7F0AEBE8 026FC021 */ addu $t8, $s3, $t7 +/* 0E371C 7F0AEBEC 8F19FCF4 */ lw $t9, -0x30c($t8) +/* 0E3720 7F0AEBF0 1420000C */ bnez $at, .L7F0AEC24 +/* 0E3724 7F0AEBF4 00791821 */ addu $v1, $v1, $t9 +/* 0E3728 7F0AEBF8 924F0000 */ lbu $t7, ($s2) +/* 0E372C 7F0AEBFC 26520001 */ addiu $s2, $s2, 1 +/* 0E3730 7F0AEC00 26310001 */ addiu $s1, $s1, 1 +/* 0E3734 7F0AEC04 A04F0000 */ sb $t7, ($v0) +/* 0E3738 7F0AEC08 9258FFFF */ lbu $t8, -1($s2) +/* 0E373C 7F0AEC0C 24420001 */ addiu $v0, $v0, 1 +/* 0E3740 7F0AEC10 030A0019 */ multu $t8, $t2 +/* 0E3744 7F0AEC14 0000C812 */ mflo $t9 +/* 0E3748 7F0AEC18 02797021 */ addu $t6, $s3, $t9 +/* 0E374C 7F0AEC1C 8DCFFCF4 */ lw $t7, -0x30c($t6) +/* 0E3750 7F0AEC20 006F1821 */ addu $v1, $v1, $t7 +.L7F0AEC24: +/* 0E3754 7F0AEC24 92440000 */ lbu $a0, ($s2) +/* 0E3758 7F0AEC28 28810021 */ slti $at, $a0, 0x21 +/* 0E375C 7F0AEC2C 5020FFE6 */ beql $at, $zero, .L7F0AEBC8 +/* 0E3760 7F0AEC30 A0440000 */ sb $a0, ($v0) +.L7F0AEC34: +/* 0E3764 7F0AEC34 0291C021 */ addu $t8, $s4, $s1 +/* 0E3768 7F0AEC38 A3000000 */ sb $zero, ($t8) +/* 0E376C 7F0AEC3C 8FB900A0 */ lw $t9, 0xa0($sp) +/* 0E3770 7F0AEC40 AFAD0078 */ sw $t5, 0x78($sp) +/* 0E3774 7F0AEC44 AFAB008C */ sw $t3, 0x8c($sp) +/* 0E3778 7F0AEC48 AFA00014 */ sw $zero, 0x14($sp) +/* 0E377C 7F0AEC4C 27A4007C */ addiu $a0, $sp, 0x7c +/* 0E3780 7F0AEC50 02803025 */ move $a2, $s4 +/* 0E3784 7F0AEC54 02603825 */ move $a3, $s3 +/* 0E3788 7F0AEC58 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E378C 7F0AEC5C AFB90010 */ sw $t9, 0x10($sp) +/* 0E3790 7F0AEC60 8FAB008C */ lw $t3, 0x8c($sp) +/* 0E3794 7F0AEC64 8FAE0080 */ lw $t6, 0x80($sp) +/* 0E3798 7F0AEC68 8FAF0090 */ lw $t7, 0x90($sp) +/* 0E379C 7F0AEC6C 3C088004 */ lui $t0, %hi(text_wordwrap) +/* 0E37A0 7F0AEC70 016E5821 */ addu $t3, $t3, $t6 +/* 0E37A4 7F0AEC74 01EB082A */ slt $at, $t7, $t3 +/* 0E37A8 7F0AEC78 25080E8C */ addiu $t0, %lo(text_wordwrap) # addiu $t0, $t0, 0xe8c +/* 0E37AC 7F0AEC7C 24090020 */ li $t1, 32 +/* 0E37B0 7F0AEC80 240A0018 */ li $t2, 24 +/* 0E37B4 7F0AEC84 240C000A */ li $t4, 10 +/* 0E37B8 7F0AEC88 14200003 */ bnez $at, .L7F0AEC98 +/* 0E37BC 7F0AEC8C 8FAD0078 */ lw $t5, 0x78($sp) +/* 0E37C0 7F0AEC90 10000002 */ b .L7F0AEC9C +/* 0E37C4 7F0AEC94 24040001 */ li $a0, 1 +.L7F0AEC98: +/* 0E37C8 7F0AEC98 00002025 */ move $a0, $zero +.L7F0AEC9C: +/* 0E37CC 7F0AEC9C 92420000 */ lbu $v0, ($s2) +/* 0E37D0 7F0AECA0 2401000A */ li $at, 10 +/* 0E37D4 7F0AECA4 5441002F */ bnel $v0, $at, .L7F0AED64 +/* 0E37D8 7F0AECA8 24010020 */ li $at, 32 +/* 0E37DC 7F0AECAC 1480000E */ bnez $a0, .L7F0AECE8 +/* 0E37E0 7F0AECB0 00001825 */ move $v1, $zero +/* 0E37E4 7F0AECB4 A20C0000 */ sb $t4, ($s0) +/* 0E37E8 7F0AECB8 8D180000 */ lw $t8, ($t0) +/* 0E37EC 7F0AECBC 26100001 */ addiu $s0, $s0, 1 +/* 0E37F0 7F0AECC0 1B000009 */ blez $t8, .L7F0AECE8 +/* 0E37F4 7F0AECC4 00000000 */ nop +/* 0E37F8 7F0AECC8 A2090000 */ sb $t1, ($s0) +.L7F0AECCC: +/* 0E37FC 7F0AECCC 8D190000 */ lw $t9, ($t0) +/* 0E3800 7F0AECD0 24630001 */ addiu $v1, $v1, 1 +/* 0E3804 7F0AECD4 26100001 */ addiu $s0, $s0, 1 +/* 0E3808 7F0AECD8 0079082A */ slt $at, $v1, $t9 +/* 0E380C 7F0AECDC 5420FFFB */ bnezl $at, .L7F0AECCC +/* 0E3810 7F0AECE0 A2090000 */ sb $t1, ($s0) +/* 0E3814 7F0AECE4 00001825 */ move $v1, $zero +.L7F0AECE8: +/* 0E3818 7F0AECE8 1A20001A */ blez $s1, .L7F0AED54 +/* 0E381C 7F0AECEC 00005825 */ move $t3, $zero +/* 0E3820 7F0AECF0 32250003 */ andi $a1, $s1, 3 +/* 0E3824 7F0AECF4 10A00009 */ beqz $a1, .L7F0AED1C +/* 0E3828 7F0AECF8 00A02025 */ move $a0, $a1 +/* 0E382C 7F0AECFC 02831021 */ addu $v0, $s4, $v1 +.L7F0AED00: +/* 0E3830 7F0AED00 904E0000 */ lbu $t6, ($v0) +/* 0E3834 7F0AED04 24630001 */ addiu $v1, $v1, 1 +/* 0E3838 7F0AED08 26100001 */ addiu $s0, $s0, 1 +/* 0E383C 7F0AED0C 24420001 */ addiu $v0, $v0, 1 +/* 0E3840 7F0AED10 1483FFFB */ bne $a0, $v1, .L7F0AED00 +/* 0E3844 7F0AED14 A20EFFFF */ sb $t6, -1($s0) +/* 0E3848 7F0AED18 1071000E */ beq $v1, $s1, .L7F0AED54 +.L7F0AED1C: +/* 0E384C 7F0AED1C 27AF004C */ addiu $t7, $sp, 0x4c +/* 0E3850 7F0AED20 022F2021 */ addu $a0, $s1, $t7 +/* 0E3854 7F0AED24 02831021 */ addu $v0, $s4, $v1 +.L7F0AED28: +/* 0E3858 7F0AED28 90580000 */ lbu $t8, ($v0) +/* 0E385C 7F0AED2C 24420004 */ addiu $v0, $v0, 4 +/* 0E3860 7F0AED30 26100004 */ addiu $s0, $s0, 4 +/* 0E3864 7F0AED34 A218FFFC */ sb $t8, -4($s0) +/* 0E3868 7F0AED38 9059FFFD */ lbu $t9, -3($v0) +/* 0E386C 7F0AED3C A219FFFD */ sb $t9, -3($s0) +/* 0E3870 7F0AED40 904EFFFE */ lbu $t6, -2($v0) +/* 0E3874 7F0AED44 A20EFFFE */ sb $t6, -2($s0) +/* 0E3878 7F0AED48 904FFFFF */ lbu $t7, -1($v0) +/* 0E387C 7F0AED4C 1444FFF6 */ bne $v0, $a0, .L7F0AED28 +/* 0E3880 7F0AED50 A20FFFFF */ sb $t7, -1($s0) +.L7F0AED54: +/* 0E3884 7F0AED54 A20C0000 */ sb $t4, ($s0) +/* 0E3888 7F0AED58 10000061 */ b .L7F0AEEE0 +/* 0E388C 7F0AED5C 26100001 */ addiu $s0, $s0, 1 +/* 0E3890 7F0AED60 24010020 */ li $at, 32 +.L7F0AED64: +/* 0E3894 7F0AED64 14410032 */ bne $v0, $at, .L7F0AEE30 +/* 0E3898 7F0AED68 00000000 */ nop +/* 0E389C 7F0AED6C 14800012 */ bnez $a0, .L7F0AEDB8 +/* 0E38A0 7F0AED70 00001825 */ move $v1, $zero +/* 0E38A4 7F0AED74 A20C0000 */ sb $t4, ($s0) +/* 0E38A8 7F0AED78 8D020000 */ lw $v0, ($t0) +/* 0E38AC 7F0AED7C 26100001 */ addiu $s0, $s0, 1 +/* 0E38B0 7F0AED80 5840000A */ blezl $v0, .L7F0AEDAC +/* 0E38B4 7F0AED84 8FB90080 */ lw $t9, 0x80($sp) +/* 0E38B8 7F0AED88 A2090000 */ sb $t1, ($s0) +.L7F0AED8C: +/* 0E38BC 7F0AED8C 8D020000 */ lw $v0, ($t0) +/* 0E38C0 7F0AED90 24630001 */ addiu $v1, $v1, 1 +/* 0E38C4 7F0AED94 26100001 */ addiu $s0, $s0, 1 +/* 0E38C8 7F0AED98 0062082A */ slt $at, $v1, $v0 +/* 0E38CC 7F0AED9C 5420FFFB */ bnezl $at, .L7F0AED8C +/* 0E38D0 7F0AEDA0 A2090000 */ sb $t1, ($s0) +/* 0E38D4 7F0AEDA4 00001825 */ move $v1, $zero +/* 0E38D8 7F0AEDA8 8FB90080 */ lw $t9, 0x80($sp) +.L7F0AEDAC: +/* 0E38DC 7F0AEDAC 0002C080 */ sll $t8, $v0, 2 +/* 0E38E0 7F0AEDB0 0302C021 */ addu $t8, $t8, $v0 +/* 0E38E4 7F0AEDB4 03195821 */ addu $t3, $t8, $t9 +.L7F0AEDB8: +/* 0E38E8 7F0AEDB8 1A20001A */ blez $s1, .L7F0AEE24 +/* 0E38EC 7F0AEDBC 256B0005 */ addiu $t3, $t3, 5 +/* 0E38F0 7F0AEDC0 32250003 */ andi $a1, $s1, 3 +/* 0E38F4 7F0AEDC4 10A00009 */ beqz $a1, .L7F0AEDEC +/* 0E38F8 7F0AEDC8 00A02025 */ move $a0, $a1 +/* 0E38FC 7F0AEDCC 02831021 */ addu $v0, $s4, $v1 +.L7F0AEDD0: +/* 0E3900 7F0AEDD0 904E0000 */ lbu $t6, ($v0) +/* 0E3904 7F0AEDD4 24630001 */ addiu $v1, $v1, 1 +/* 0E3908 7F0AEDD8 26100001 */ addiu $s0, $s0, 1 +/* 0E390C 7F0AEDDC 24420001 */ addiu $v0, $v0, 1 +/* 0E3910 7F0AEDE0 1483FFFB */ bne $a0, $v1, .L7F0AEDD0 +/* 0E3914 7F0AEDE4 A20EFFFF */ sb $t6, -1($s0) +/* 0E3918 7F0AEDE8 1071000E */ beq $v1, $s1, .L7F0AEE24 +.L7F0AEDEC: +/* 0E391C 7F0AEDEC 27AF004C */ addiu $t7, $sp, 0x4c +/* 0E3920 7F0AEDF0 022F2021 */ addu $a0, $s1, $t7 +/* 0E3924 7F0AEDF4 02831021 */ addu $v0, $s4, $v1 +.L7F0AEDF8: +/* 0E3928 7F0AEDF8 90580000 */ lbu $t8, ($v0) +/* 0E392C 7F0AEDFC 24420004 */ addiu $v0, $v0, 4 +/* 0E3930 7F0AEE00 26100004 */ addiu $s0, $s0, 4 +/* 0E3934 7F0AEE04 A218FFFC */ sb $t8, -4($s0) +/* 0E3938 7F0AEE08 9059FFFD */ lbu $t9, -3($v0) +/* 0E393C 7F0AEE0C A219FFFD */ sb $t9, -3($s0) +/* 0E3940 7F0AEE10 904EFFFE */ lbu $t6, -2($v0) +/* 0E3944 7F0AEE14 A20EFFFE */ sb $t6, -2($s0) +/* 0E3948 7F0AEE18 904FFFFF */ lbu $t7, -1($v0) +/* 0E394C 7F0AEE1C 1444FFF6 */ bne $v0, $a0, .L7F0AEDF8 +/* 0E3950 7F0AEE20 A20FFFFF */ sb $t7, -1($s0) +.L7F0AEE24: +/* 0E3954 7F0AEE24 A2090000 */ sb $t1, ($s0) +/* 0E3958 7F0AEE28 1000002D */ b .L7F0AEEE0 +/* 0E395C 7F0AEE2C 26100001 */ addiu $s0, $s0, 1 +.L7F0AEE30: +/* 0E3960 7F0AEE30 1440002B */ bnez $v0, .L7F0AEEE0 +/* 0E3964 7F0AEE34 00001825 */ move $v1, $zero +/* 0E3968 7F0AEE38 1480000E */ bnez $a0, .L7F0AEE74 +/* 0E396C 7F0AEE3C 00006825 */ move $t5, $zero +/* 0E3970 7F0AEE40 A20C0000 */ sb $t4, ($s0) +/* 0E3974 7F0AEE44 8D180000 */ lw $t8, ($t0) +/* 0E3978 7F0AEE48 26100001 */ addiu $s0, $s0, 1 +/* 0E397C 7F0AEE4C 1B000009 */ blez $t8, .L7F0AEE74 +/* 0E3980 7F0AEE50 00000000 */ nop +/* 0E3984 7F0AEE54 A2090000 */ sb $t1, ($s0) +.L7F0AEE58: +/* 0E3988 7F0AEE58 8D190000 */ lw $t9, ($t0) +/* 0E398C 7F0AEE5C 24630001 */ addiu $v1, $v1, 1 +/* 0E3990 7F0AEE60 26100001 */ addiu $s0, $s0, 1 +/* 0E3994 7F0AEE64 0079082A */ slt $at, $v1, $t9 +/* 0E3998 7F0AEE68 5420FFFB */ bnezl $at, .L7F0AEE58 +/* 0E399C 7F0AEE6C A2090000 */ sb $t1, ($s0) +/* 0E39A0 7F0AEE70 00001825 */ move $v1, $zero +.L7F0AEE74: +/* 0E39A4 7F0AEE74 1A200019 */ blez $s1, .L7F0AEEDC +/* 0E39A8 7F0AEE78 32250003 */ andi $a1, $s1, 3 +/* 0E39AC 7F0AEE7C 10A00009 */ beqz $a1, .L7F0AEEA4 +/* 0E39B0 7F0AEE80 00A02025 */ move $a0, $a1 +/* 0E39B4 7F0AEE84 02831021 */ addu $v0, $s4, $v1 +.L7F0AEE88: +/* 0E39B8 7F0AEE88 904E0000 */ lbu $t6, ($v0) +/* 0E39BC 7F0AEE8C 24630001 */ addiu $v1, $v1, 1 +/* 0E39C0 7F0AEE90 26100001 */ addiu $s0, $s0, 1 +/* 0E39C4 7F0AEE94 24420001 */ addiu $v0, $v0, 1 +/* 0E39C8 7F0AEE98 1483FFFB */ bne $a0, $v1, .L7F0AEE88 +/* 0E39CC 7F0AEE9C A20EFFFF */ sb $t6, -1($s0) +/* 0E39D0 7F0AEEA0 1071000E */ beq $v1, $s1, .L7F0AEEDC +.L7F0AEEA4: +/* 0E39D4 7F0AEEA4 27AF004C */ addiu $t7, $sp, 0x4c +/* 0E39D8 7F0AEEA8 022F2021 */ addu $a0, $s1, $t7 +/* 0E39DC 7F0AEEAC 02831021 */ addu $v0, $s4, $v1 +.L7F0AEEB0: +/* 0E39E0 7F0AEEB0 90580000 */ lbu $t8, ($v0) +/* 0E39E4 7F0AEEB4 24420004 */ addiu $v0, $v0, 4 +/* 0E39E8 7F0AEEB8 26100004 */ addiu $s0, $s0, 4 +/* 0E39EC 7F0AEEBC A218FFFC */ sb $t8, -4($s0) +/* 0E39F0 7F0AEEC0 9059FFFD */ lbu $t9, -3($v0) +/* 0E39F4 7F0AEEC4 A219FFFD */ sb $t9, -3($s0) +/* 0E39F8 7F0AEEC8 904EFFFE */ lbu $t6, -2($v0) +/* 0E39FC 7F0AEECC A20EFFFE */ sb $t6, -2($s0) +/* 0E3A00 7F0AEED0 904FFFFF */ lbu $t7, -1($v0) +/* 0E3A04 7F0AEED4 1444FFF6 */ bne $v0, $a0, .L7F0AEEB0 +/* 0E3A08 7F0AEED8 A20FFFFF */ sb $t7, -1($s0) +.L7F0AEEDC: +/* 0E3A0C 7F0AEEDC A2000000 */ sb $zero, ($s0) +.L7F0AEEE0: +/* 0E3A10 7F0AEEE0 24010001 */ li $at, 1 +/* 0E3A14 7F0AEEE4 11A1FF2F */ beq $t5, $at, .L7F0AEBA4 +/* 0E3A18 7F0AEEE8 26520001 */ addiu $s2, $s2, 1 +/* 0E3A1C 7F0AEEEC 8FBF0034 */ lw $ra, 0x34($sp) +/* 0E3A20 7F0AEEF0 8FB00020 */ lw $s0, 0x20($sp) +/* 0E3A24 7F0AEEF4 8FB10024 */ lw $s1, 0x24($sp) +/* 0E3A28 7F0AEEF8 8FB20028 */ lw $s2, 0x28($sp) +/* 0E3A2C 7F0AEEFC 8FB3002C */ lw $s3, 0x2c($sp) +/* 0E3A30 7F0AEF00 8FB40030 */ lw $s4, 0x30($sp) +/* 0E3A34 7F0AEF04 03E00008 */ jr $ra +/* 0E3A38 7F0AEF08 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + + + +void sub_GAME_7F0AEF0C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + // (function likely stubbed) +} + +u32 sub_GAME_7F0AEF20(u32 param_1,u32 param_2){ + return param_1; +} + + diff --git a/src/game/textrelated.h b/src/game/textrelated.h new file mode 100644 index 0000000..02e3ce2 --- /dev/null +++ b/src/game/textrelated.h @@ -0,0 +1,11 @@ +#ifndef _TEXTRELATED_H_ +#define _TEXTRELATED_H_ +#include "ultra64.h" + +extern s32 ptrFirstFontTableSmall; +extern s32 ptrSecondFontTableSmall; +extern s32 ptrFirstFontTableLarge; +extern s32 ptrSecondFontTableLarge; + +void textrelatedInit_REMOVED(void); +#endif diff --git a/src/game/truncf.c b/src/game/truncf.c new file mode 100644 index 0000000..40b43d5 --- /dev/null +++ b/src/game/truncf.c @@ -0,0 +1,98 @@ +#include "ultra64.h" + + + + + + + +#ifdef NONMATCHING +void truncf(void) { + +} +#else +GLOBAL_ASM( +.text +glabel truncf +/* 090E90 7F05C360 44802000 */ mtc1 $zero, $f4 +/* 090E94 7F05C364 00000000 */ nop +/* 090E98 7F05C368 460C203E */ c.le.s $f4, $f12 +/* 090E9C 7F05C36C 00000000 */ nop +/* 090EA0 7F05C370 45020008 */ bc1fl .L7F05C394 +/* 090EA4 7F05C374 4600628D */ trunc.w.s $f10, $f12 +/* 090EA8 7F05C378 4600618D */ trunc.w.s $f6, $f12 +/* 090EAC 7F05C37C 440F3000 */ mfc1 $t7, $f6 +/* 090EB0 7F05C380 00000000 */ nop +/* 090EB4 7F05C384 448F4000 */ mtc1 $t7, $f8 +/* 090EB8 7F05C388 03E00008 */ jr $ra +/* 090EBC 7F05C38C 46804020 */ cvt.s.w $f0, $f8 + +/* 090EC0 7F05C390 4600628D */ trunc.w.s $f10, $f12 +.L7F05C394: +/* 090EC4 7F05C394 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 090EC8 7F05C398 44195000 */ mfc1 $t9, $f10 +/* 090ECC 7F05C39C 00000000 */ nop +/* 090ED0 7F05C3A0 44998000 */ mtc1 $t9, $f16 +/* 090ED4 7F05C3A4 00000000 */ nop +/* 090ED8 7F05C3A8 468080A0 */ cvt.s.w $f2, $f16 +/* 090EDC 7F05C3AC 46026032 */ c.eq.s $f12, $f2 +/* 090EE0 7F05C3B0 00000000 */ nop +/* 090EE4 7F05C3B4 45020004 */ bc1fl .L7F05C3C8 +/* 090EE8 7F05C3B8 44819000 */ mtc1 $at, $f18 +/* 090EEC 7F05C3BC 03E00008 */ jr $ra +/* 090EF0 7F05C3C0 46001006 */ mov.s $f0, $f2 + +/* 090EF4 7F05C3C4 44819000 */ mtc1 $at, $f18 +.L7F05C3C8: +/* 090EF8 7F05C3C8 00000000 */ nop +/* 090EFC 7F05C3CC 46121001 */ sub.s $f0, $f2, $f18 +/* 090F00 7F05C3D0 03E00008 */ jr $ra +/* 090F04 7F05C3D4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05C3D8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05C3D8 +/* 090F08 7F05C3D8 44802000 */ mtc1 $zero, $f4 +/* 090F0C 7F05C3DC 00000000 */ nop +/* 090F10 7F05C3E0 460C203E */ c.le.s $f4, $f12 +/* 090F14 7F05C3E4 00000000 */ nop +/* 090F18 7F05C3E8 45020006 */ bc1fl .L7F05C404 +/* 090F1C 7F05C3EC 4600620D */ trunc.w.s $f8, $f12 +/* 090F20 7F05C3F0 4600618D */ trunc.w.s $f6, $f12 +/* 090F24 7F05C3F4 44023000 */ mfc1 $v0, $f6 +/* 090F28 7F05C3F8 03E00008 */ jr $ra +/* 090F2C 7F05C3FC 00000000 */ nop + +/* 090F30 7F05C400 4600620D */ trunc.w.s $f8, $f12 +.L7F05C404: +/* 090F34 7F05C404 44034000 */ mfc1 $v1, $f8 +/* 090F38 7F05C408 00000000 */ nop +/* 090F3C 7F05C40C 44835000 */ mtc1 $v1, $f10 +/* 090F40 7F05C410 2462FFFF */ addiu $v0, $v1, -1 +/* 090F44 7F05C414 46805420 */ cvt.s.w $f16, $f10 +/* 090F48 7F05C418 46106032 */ c.eq.s $f12, $f16 +/* 090F4C 7F05C41C 00000000 */ nop +/* 090F50 7F05C420 45000003 */ bc1f .L7F05C430 +/* 090F54 7F05C424 00000000 */ nop +/* 090F58 7F05C428 03E00008 */ jr $ra +/* 090F5C 7F05C42C 00601025 */ move $v0, $v1 + +.L7F05C430: +/* 090F60 7F05C430 03E00008 */ jr $ra +/* 090F64 7F05C434 00000000 */ nop +) +#endif + + + diff --git a/src/game/unk_007800.c b/src/game/unk_007800.c new file mode 100644 index 0000000..32c318f --- /dev/null +++ b/src/game/unk_007800.c @@ -0,0 +1,161 @@ +#include "ultra64.h" + + + +#ifdef NONMATCHING +void cleanupExplosions(void) { + ? temp_ret; + void *temp_t8; + s32 temp_s0; + void *temp_t7; + s32 temp_s0_2; + s32 phi_s0; + s32 phi_s0_2; + ? phi_return; + ? phi_return_2; + ? phi_return_3; + ? phi_return_4; + + // Node 0 + D_80040170 = 0; + temp_ret = video_related_9(0); + phi_s0 = 0; + phi_return_3 = temp_ret; + phi_return_4 = temp_ret; + if (ptr_explosion_buf != 0) + { +loop_1: + // Node 1 + temp_t8 = (ptr_explosion_buf + phi_s0); + if (*temp_t8 != 0) + { + // Node 2 + sub_GAME_7F03A538(*temp_t8); + unset_stateflag_0x04_for_posdata(*(ptr_explosion_buf + phi_s0)); + *(ptr_explosion_buf + phi_s0) = 0; + phi_return_4 = set_last_obj_pos_data(*(ptr_explosion_buf + phi_s0)); + } + // Node 3 + temp_s0 = (phi_s0 + 0x3e0); + phi_s0 = temp_s0; + phi_return_3 = phi_return_4; + phi_return_4 = phi_return_4; + if (temp_s0 != 0x1740) + { + goto loop_1; + } + } + // Node 4 + phi_s0_2 = 0; + phi_return = phi_return_3; + phi_return_2 = phi_return_3; + if (ptr_smoke_buf != 0) + { +loop_5: + // Node 5 + temp_t7 = (ptr_smoke_buf + phi_s0_2); + if (*temp_t7 != 0) + { + // Node 6 + sub_GAME_7F03A538(*temp_t7); + unset_stateflag_0x04_for_posdata(*(ptr_smoke_buf + phi_s0_2)); + *(ptr_smoke_buf + phi_s0_2) = 0; + phi_return_2 = set_last_obj_pos_data(*(ptr_smoke_buf + phi_s0_2)); + } + // Node 7 + temp_s0_2 = (phi_s0_2 + 0x198); + phi_s0_2 = temp_s0_2; + phi_return = phi_return_2; + phi_return_2 = phi_return_2; + if (temp_s0_2 != 0x1fe0) + { + goto loop_5; + } + } + // Node 8 + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel cleanupExplosions +/* 03C330 7F007800 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 03C334 7F007804 AFBF0024 */ sw $ra, 0x24($sp) +/* 03C338 7F007808 3C018004 */ lui $at, %hi(D_80040170) +/* 03C33C 7F00780C 44806000 */ mtc1 $zero, $f12 +/* 03C340 7F007810 AFB20020 */ sw $s2, 0x20($sp) +/* 03C344 7F007814 AFB1001C */ sw $s1, 0x1c($sp) +/* 03C348 7F007818 AFB00018 */ sw $s0, 0x18($sp) +/* 03C34C 7F00781C 0C000EC1 */ jal video_related_9 +/* 03C350 7F007820 AC200170 */ sw $zero, %lo(D_80040170)($at) +/* 03C354 7F007824 3C118008 */ lui $s1, %hi(ptr_explosion_buf) +/* 03C358 7F007828 2631A144 */ addiu $s1, %lo(ptr_explosion_buf) # addiu $s1, $s1, -0x5ebc +/* 03C35C 7F00782C 8E2E0000 */ lw $t6, ($s1) +/* 03C360 7F007830 00008025 */ move $s0, $zero +/* 03C364 7F007834 24121740 */ li $s2, 5952 +/* 03C368 7F007838 11C00016 */ beqz $t6, .L7F007894 +/* 03C36C 7F00783C 00000000 */ nop +/* 03C370 7F007840 8E2F0000 */ lw $t7, ($s1) +.L7F007844: +/* 03C374 7F007844 01F0C021 */ addu $t8, $t7, $s0 +/* 03C378 7F007848 8F040000 */ lw $a0, ($t8) +/* 03C37C 7F00784C 5080000F */ beql $a0, $zero, .L7F00788C +/* 03C380 7F007850 261003E0 */ addiu $s0, $s0, 0x3e0 +/* 03C384 7F007854 0FC0E94E */ jal sub_GAME_7F03A538 +/* 03C388 7F007858 00000000 */ nop +/* 03C38C 7F00785C 8E390000 */ lw $t9, ($s1) +/* 03C390 7F007860 03304021 */ addu $t0, $t9, $s0 +/* 03C394 7F007864 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 03C398 7F007868 8D040000 */ lw $a0, ($t0) +/* 03C39C 7F00786C 8E290000 */ lw $t1, ($s1) +/* 03C3A0 7F007870 01305021 */ addu $t2, $t1, $s0 +/* 03C3A4 7F007874 0FC0E921 */ jal set_last_obj_pos_data +/* 03C3A8 7F007878 8D440000 */ lw $a0, ($t2) +/* 03C3AC 7F00787C 8E2B0000 */ lw $t3, ($s1) +/* 03C3B0 7F007880 01706021 */ addu $t4, $t3, $s0 +/* 03C3B4 7F007884 AD800000 */ sw $zero, ($t4) +/* 03C3B8 7F007888 261003E0 */ addiu $s0, $s0, 0x3e0 +.L7F00788C: +/* 03C3BC 7F00788C 5612FFED */ bnel $s0, $s2, .L7F007844 +/* 03C3C0 7F007890 8E2F0000 */ lw $t7, ($s1) +.L7F007894: +/* 03C3C4 7F007894 3C118008 */ lui $s1, %hi(ptr_smoke_buf) +/* 03C3C8 7F007898 2631A140 */ addiu $s1, %lo(ptr_smoke_buf) # addiu $s1, $s1, -0x5ec0 +/* 03C3CC 7F00789C 8E2D0000 */ lw $t5, ($s1) +/* 03C3D0 7F0078A0 00008025 */ move $s0, $zero +/* 03C3D4 7F0078A4 24121FE0 */ li $s2, 8160 +/* 03C3D8 7F0078A8 51A00017 */ beql $t5, $zero, .L7F007908 +/* 03C3DC 7F0078AC 8FBF0024 */ lw $ra, 0x24($sp) +/* 03C3E0 7F0078B0 8E2E0000 */ lw $t6, ($s1) +.L7F0078B4: +/* 03C3E4 7F0078B4 01D07821 */ addu $t7, $t6, $s0 +/* 03C3E8 7F0078B8 8DE40000 */ lw $a0, ($t7) +/* 03C3EC 7F0078BC 5080000F */ beql $a0, $zero, .L7F0078FC +/* 03C3F0 7F0078C0 26100198 */ addiu $s0, $s0, 0x198 +/* 03C3F4 7F0078C4 0FC0E94E */ jal sub_GAME_7F03A538 +/* 03C3F8 7F0078C8 00000000 */ nop +/* 03C3FC 7F0078CC 8E380000 */ lw $t8, ($s1) +/* 03C400 7F0078D0 0310C821 */ addu $t9, $t8, $s0 +/* 03C404 7F0078D4 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 03C408 7F0078D8 8F240000 */ lw $a0, ($t9) +/* 03C40C 7F0078DC 8E280000 */ lw $t0, ($s1) +/* 03C410 7F0078E0 01104821 */ addu $t1, $t0, $s0 +/* 03C414 7F0078E4 0FC0E921 */ jal set_last_obj_pos_data +/* 03C418 7F0078E8 8D240000 */ lw $a0, ($t1) +/* 03C41C 7F0078EC 8E2A0000 */ lw $t2, ($s1) +/* 03C420 7F0078F0 01505821 */ addu $t3, $t2, $s0 +/* 03C424 7F0078F4 AD600000 */ sw $zero, ($t3) +/* 03C428 7F0078F8 26100198 */ addiu $s0, $s0, 0x198 +.L7F0078FC: +/* 03C42C 7F0078FC 5612FFED */ bnel $s0, $s2, .L7F0078B4 +/* 03C430 7F007900 8E2E0000 */ lw $t6, ($s1) +/* 03C434 7F007904 8FBF0024 */ lw $ra, 0x24($sp) +.L7F007908: +/* 03C438 7F007908 8FB00018 */ lw $s0, 0x18($sp) +/* 03C43C 7F00790C 8FB1001C */ lw $s1, 0x1c($sp) +/* 03C440 7F007910 8FB20020 */ lw $s2, 0x20($sp) +/* 03C444 7F007914 03E00008 */ jr $ra +/* 03C448 7F007918 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + diff --git a/src/game/unk_007920.c b/src/game/unk_007920.c new file mode 100644 index 0000000..6d60ad4 --- /dev/null +++ b/src/game/unk_007920.c @@ -0,0 +1,58 @@ +#include "ultra64.h" + + + +#ifdef NONMATCHING +s32 sub_GAME_7F007920(void) { + s32 temp_v0; + s32 phi_v1; + s32 phi_v0; + + // Node 0 + if (dword_CODE_bss_8007A160 > 0) + { + // Node 1 + phi_v1 = 0; + phi_v0 = 0; +loop_2: + // Node 2 + temp_v0 = (phi_v0 + 1); + *(dword_CODE_bss_8007A164 + phi_v1) = 0; + phi_v1 = (phi_v1 + 0x68); + phi_v0 = temp_v0; + if (temp_v0 < dword_CODE_bss_8007A160) + { + goto loop_2; + } + } + // Node 3 + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F007920 +/* 03C450 7F007920 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A160) +/* 03C454 7F007924 2484A160 */ addiu $a0, %lo(dword_CODE_bss_8007A160) # addiu $a0, $a0, -0x5ea0 +/* 03C458 7F007928 8C8E0000 */ lw $t6, ($a0) +/* 03C45C 7F00792C 00001025 */ move $v0, $zero +/* 03C460 7F007930 00001825 */ move $v1, $zero +/* 03C464 7F007934 19C0000B */ blez $t6, .L7F007964 +/* 03C468 7F007938 3C058008 */ lui $a1, %hi(dword_CODE_bss_8007A164) +/* 03C46C 7F00793C 24A5A164 */ addiu $a1, %lo(dword_CODE_bss_8007A164) # addiu $a1, $a1, -0x5e9c +/* 03C470 7F007940 8CAF0000 */ lw $t7, ($a1) +.L7F007944: +/* 03C474 7F007944 24420001 */ addiu $v0, $v0, 1 +/* 03C478 7F007948 01E3C021 */ addu $t8, $t7, $v1 +/* 03C47C 7F00794C AF000000 */ sw $zero, ($t8) +/* 03C480 7F007950 8C990000 */ lw $t9, ($a0) +/* 03C484 7F007954 24630068 */ addiu $v1, $v1, 0x68 +/* 03C488 7F007958 0059082A */ slt $at, $v0, $t9 +/* 03C48C 7F00795C 5420FFF9 */ bnezl $at, .L7F007944 +/* 03C490 7F007960 8CAF0000 */ lw $t7, ($a1) +.L7F007964: +/* 03C494 7F007964 03E00008 */ jr $ra +/* 03C498 7F007968 00000000 */ nop +) +#endif + diff --git a/src/game/unk_007980.c b/src/game/unk_007980.c new file mode 100644 index 0000000..31558a5 --- /dev/null +++ b/src/game/unk_007980.c @@ -0,0 +1,118 @@ +#include "ultra64.h" + + + + +#ifdef NONMATCHING +void cleanupplayersoundrelated(void) { + ? temp_ret; + void *temp_s0; + s32 temp_s1; + s32 temp_s4; + ? temp_ret_2; + void *phi_s2; + s32 phi_s1; + s32 phi_s4; + ? phi_return; + + // Node 0 + temp_ret = get_num_players(); + phi_return = temp_ret; + if (temp_ret > 0) + { + // Node 1 + phi_s2 = ((0 * 4) + &ptr_BONDdata_p1); + phi_s4 = 0; +loop_2: + // Node 2 + phi_s1 = 0; +loop_3: + // Node 3 + temp_s0 = (*phi_s2 + phi_s1); + if (temp_s0->unkA44 != 0) + { + // Node 4 + if (sfxGetArg0Unk3F(temp_s0->unkA44) != 0) + { + // Node 5 + sfxDeactivate((temp_s0 + 0x870)->unk1D4); + } + } + // Node 6 + temp_s1 = (phi_s1 + 0x3a8); + phi_s1 = temp_s1; + if (temp_s1 != 0x750) + { + goto loop_3; + } + // Node 7 + temp_s4 = (phi_s4 + 1); + temp_ret_2 = get_num_players(); + phi_s2 = (phi_s2 + 4); + phi_s4 = temp_s4; + phi_return = temp_ret_2; + if (temp_s4 < temp_ret_2) + { + goto loop_2; + } + } + // Node 8 + return phi_return; +} + +#else +GLOBAL_ASM( +.text +glabel cleanupplayersoundrelated +/* 03C4B0 7F007980 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 03C4B4 7F007984 AFBF002C */ sw $ra, 0x2c($sp) +/* 03C4B8 7F007988 AFB40028 */ sw $s4, 0x28($sp) +/* 03C4BC 7F00798C AFB30024 */ sw $s3, 0x24($sp) +/* 03C4C0 7F007990 AFB20020 */ sw $s2, 0x20($sp) +/* 03C4C4 7F007994 AFB1001C */ sw $s1, 0x1c($sp) +/* 03C4C8 7F007998 AFB00018 */ sw $s0, 0x18($sp) +/* 03C4CC 7F00799C 0FC26919 */ jal get_num_players +/* 03C4D0 7F0079A0 0000A025 */ move $s4, $zero +/* 03C4D4 7F0079A4 1840001B */ blez $v0, .L7F007A14 +/* 03C4D8 7F0079A8 00147080 */ sll $t6, $s4, 2 +/* 03C4DC 7F0079AC 3C0F8008 */ lui $t7, %hi(ptr_BONDdata_p1) +/* 03C4E0 7F0079B0 25EF9EE0 */ addiu $t7, %lo(ptr_BONDdata_p1) # addiu $t7, $t7, -0x6120 +/* 03C4E4 7F0079B4 01CF9021 */ addu $s2, $t6, $t7 +/* 03C4E8 7F0079B8 24130750 */ li $s3, 1872 +/* 03C4EC 7F0079BC 00008825 */ move $s1, $zero +.L7F0079C0: +/* 03C4F0 7F0079C0 8E580000 */ lw $t8, ($s2) +.L7F0079C4: +/* 03C4F4 7F0079C4 03118021 */ addu $s0, $t8, $s1 +/* 03C4F8 7F0079C8 8E040A44 */ lw $a0, 0xa44($s0) +/* 03C4FC 7F0079CC 26100870 */ addiu $s0, $s0, 0x870 +/* 03C500 7F0079D0 50800008 */ beql $a0, $zero, .L7F0079F4 +/* 03C504 7F0079D4 263103A8 */ addiu $s1, $s1, 0x3a8 +/* 03C508 7F0079D8 0C00237C */ jal sfxGetArg0Unk3F +/* 03C50C 7F0079DC 00000000 */ nop +/* 03C510 7F0079E0 50400004 */ beql $v0, $zero, .L7F0079F4 +/* 03C514 7F0079E4 263103A8 */ addiu $s1, $s1, 0x3a8 +/* 03C518 7F0079E8 0C002408 */ jal sfxDeactivate +/* 03C51C 7F0079EC 8E0401D4 */ lw $a0, 0x1d4($s0) +/* 03C520 7F0079F0 263103A8 */ addiu $s1, $s1, 0x3a8 +.L7F0079F4: +/* 03C524 7F0079F4 5633FFF3 */ bnel $s1, $s3, .L7F0079C4 +/* 03C528 7F0079F8 8E580000 */ lw $t8, ($s2) +/* 03C52C 7F0079FC 26940001 */ addiu $s4, $s4, 1 +/* 03C530 7F007A00 0FC26919 */ jal get_num_players +/* 03C534 7F007A04 26520004 */ addiu $s2, $s2, 4 +/* 03C538 7F007A08 0282082A */ slt $at, $s4, $v0 +/* 03C53C 7F007A0C 5420FFEC */ bnezl $at, .L7F0079C0 +/* 03C540 7F007A10 00008825 */ move $s1, $zero +.L7F007A14: +/* 03C544 7F007A14 8FBF002C */ lw $ra, 0x2c($sp) +/* 03C548 7F007A18 8FB00018 */ lw $s0, 0x18($sp) +/* 03C54C 7F007A1C 8FB1001C */ lw $s1, 0x1c($sp) +/* 03C550 7F007A20 8FB20020 */ lw $s2, 0x20($sp) +/* 03C554 7F007A24 8FB30024 */ lw $s3, 0x24($sp) +/* 03C558 7F007A28 8FB40028 */ lw $s4, 0x28($sp) +/* 03C55C 7F007A2C 03E00008 */ jr $ra +/* 03C560 7F007A30 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + diff --git a/src/game/unk_01B0E0.c b/src/game/unk_01B0E0.c new file mode 100644 index 0000000..b118773 --- /dev/null +++ b/src/game/unk_01B0E0.c @@ -0,0 +1,134 @@ +#include "ultra64.h" + + + +#ifdef NONMATCHING +void sub_GAME_7F01B0E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01B0E0 +/* 04FC10 7F01B0E0 94820000 */ lhu $v0, ($a0) +/* 04FC14 7F01B0E4 94830002 */ lhu $v1, 2($a0) +/* 04FC18 7F01B0E8 2487000A */ addiu $a3, $a0, 0xa +/* 04FC1C 7F01B0EC 00430019 */ multu $v0, $v1 +/* 04FC20 7F01B0F0 00003012 */ mflo $a2 +/* 04FC24 7F01B0F4 00000000 */ nop +/* 04FC28 7F01B0F8 00000000 */ nop +/* 04FC2C 7F01B0FC 90E20000 */ lbu $v0, ($a3) +.L7F01B100: +/* 04FC30 7F01B100 90E30001 */ lbu $v1, 1($a3) +/* 04FC34 7F01B104 24E70002 */ addiu $a3, $a3, 2 +/* 04FC38 7F01B108 00C23023 */ subu $a2, $a2, $v0 +/* 04FC3C 7F01B10C 2442FFFF */ addiu $v0, $v0, -1 +.L7F01B110: +/* 04FC40 7F01B110 0002202A */ slt $a0, $zero, $v0 +/* 04FC44 7F01B114 2442FFFF */ addiu $v0, $v0, -1 +/* 04FC48 7F01B118 A0A30000 */ sb $v1, ($a1) +/* 04FC4C 7F01B11C 1480FFFC */ bnez $a0, .L7F01B110 +/* 04FC50 7F01B120 24A50001 */ addiu $a1, $a1, 1 +/* 04FC54 7F01B124 5CC0FFF6 */ bgtzl $a2, .L7F01B100 +/* 04FC58 7F01B128 90E20000 */ lbu $v0, ($a3) +/* 04FC5C 7F01B12C 03E00008 */ jr $ra +/* 04FC60 7F01B130 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01B134(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01B134 +/* 04FC64 7F01B134 27BDFFF8 */ addiu $sp, $sp, -8 +/* 04FC68 7F01B138 AFB00004 */ sw $s0, 4($sp) +/* 04FC6C 7F01B13C 94820000 */ lhu $v0, ($a0) +/* 04FC70 7F01B140 94830002 */ lhu $v1, 2($a0) +/* 04FC74 7F01B144 00A08025 */ move $s0, $a1 +/* 04FC78 7F01B148 2487000A */ addiu $a3, $a0, 0xa +/* 04FC7C 7F01B14C 00430019 */ multu $v0, $v1 +/* 04FC80 7F01B150 00003012 */ mflo $a2 +/* 04FC84 7F01B154 00000000 */ nop +/* 04FC88 7F01B158 00000000 */ nop +/* 04FC8C 7F01B15C 90E40002 */ lbu $a0, 2($a3) +.L7F01B160: +/* 04FC90 7F01B160 90E50003 */ lbu $a1, 3($a3) +/* 04FC94 7F01B164 90E30001 */ lbu $v1, 1($a3) +/* 04FC98 7F01B168 0004C0C3 */ sra $t8, $a0, 3 +/* 04FC9C 7F01B16C 000570C3 */ sra $t6, $a1, 3 +/* 04FCA0 7F01B170 90E20000 */ lbu $v0, ($a3) +/* 04FCA4 7F01B174 000E7AC0 */ sll $t7, $t6, 0xb +/* 04FCA8 7F01B178 0018C980 */ sll $t9, $t8, 6 +/* 04FCAC 7F01B17C 000350C3 */ sra $t2, $v1, 3 +/* 04FCB0 7F01B180 000A5840 */ sll $t3, $t2, 1 +/* 04FCB4 7F01B184 01F94825 */ or $t1, $t7, $t9 +/* 04FCB8 7F01B188 012B4025 */ or $t0, $t1, $t3 +/* 04FCBC 7F01B18C 350C0001 */ ori $t4, $t0, 1 +/* 04FCC0 7F01B190 00C23023 */ subu $a2, $a2, $v0 +/* 04FCC4 7F01B194 24E70004 */ addiu $a3, $a3, 4 +/* 04FCC8 7F01B198 01804025 */ move $t0, $t4 +/* 04FCCC 7F01B19C 2442FFFF */ addiu $v0, $v0, -1 +.L7F01B1A0: +/* 04FCD0 7F01B1A0 0002182A */ slt $v1, $zero, $v0 +/* 04FCD4 7F01B1A4 2442FFFF */ addiu $v0, $v0, -1 +/* 04FCD8 7F01B1A8 A6080000 */ sh $t0, ($s0) +/* 04FCDC 7F01B1AC 1460FFFC */ bnez $v1, .L7F01B1A0 +/* 04FCE0 7F01B1B0 26100002 */ addiu $s0, $s0, 2 +/* 04FCE4 7F01B1B4 5CC0FFEA */ bgtzl $a2, .L7F01B160 +/* 04FCE8 7F01B1B8 90E40002 */ lbu $a0, 2($a3) +/* 04FCEC 7F01B1BC 8FB00004 */ lw $s0, 4($sp) +/* 04FCF0 7F01B1C0 03E00008 */ jr $ra +/* 04FCF4 7F01B1C4 27BD0008 */ addiu $sp, $sp, 8 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01B1C8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01B1C8 +/* 04FCF8 7F01B1C8 94830000 */ lhu $v1, ($a0) +/* 04FCFC 7F01B1CC 94860002 */ lhu $a2, 2($a0) +/* 04FD00 7F01B1D0 00A01025 */ move $v0, $a1 +/* 04FD04 7F01B1D4 2488000A */ addiu $t0, $a0, 0xa +/* 04FD08 7F01B1D8 00660019 */ multu $v1, $a2 +/* 04FD0C 7F01B1DC 240A00FF */ li $t2, 255 +/* 04FD10 7F01B1E0 00003812 */ mflo $a3 +/* 04FD14 7F01B1E4 00000000 */ nop +/* 04FD18 7F01B1E8 00000000 */ nop +/* 04FD1C 7F01B1EC 91030000 */ lbu $v1, ($t0) +.L7F01B1F0: +/* 04FD20 7F01B1F0 91040001 */ lbu $a0, 1($t0) +/* 04FD24 7F01B1F4 91050002 */ lbu $a1, 2($t0) +/* 04FD28 7F01B1F8 00E33823 */ subu $a3, $a3, $v1 +/* 04FD2C 7F01B1FC 91060003 */ lbu $a2, 3($t0) +/* 04FD30 7F01B200 25080004 */ addiu $t0, $t0, 4 +/* 04FD34 7F01B204 2463FFFF */ addiu $v1, $v1, -1 +.L7F01B208: +/* 04FD38 7F01B208 0003482A */ slt $t1, $zero, $v1 +/* 04FD3C 7F01B20C A0460000 */ sb $a2, ($v0) +/* 04FD40 7F01B210 A0450001 */ sb $a1, 1($v0) +/* 04FD44 7F01B214 A0440002 */ sb $a0, 2($v0) +/* 04FD48 7F01B218 A04A0003 */ sb $t2, 3($v0) +/* 04FD4C 7F01B21C 2463FFFF */ addiu $v1, $v1, -1 +/* 04FD50 7F01B220 1520FFF9 */ bnez $t1, .L7F01B208 +/* 04FD54 7F01B224 24420004 */ addiu $v0, $v0, 4 +/* 04FD58 7F01B228 5CE0FFF1 */ bgtzl $a3, .L7F01B1F0 +/* 04FD5C 7F01B22C 91030000 */ lbu $v1, ($t0) +/* 04FD60 7F01B230 03E00008 */ jr $ra +/* 04FD64 7F01B234 00000000 */ nop +) +#endif + + diff --git a/src/game/unk_01B240.c b/src/game/unk_01B240.c new file mode 100644 index 0000000..79da544 --- /dev/null +++ b/src/game/unk_01B240.c @@ -0,0 +1,626 @@ +#include "ultra64.h" + + +s32 D_8002BB00 = 0; +s32 D_8002BB04 = 0; +s32 D_8002BB08 = 0; +f32 D_8002BB0C = 255.0; +f32 D_8002BB10 = 255.0; +f32 D_8002BB14 = 255.0; +s32 D_8002BB18 = 0; +s32 D_8002BB1C = 0; +s32 D_8002BB20 = 0; +s32 D_8002BB24 = 0; +s32 D_8002BB28 = 0; +s32 D_8002BB2C = 0; + + + + + + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F01B240(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80051CF0 +.word 0x43958000 +.text +glabel sub_GAME_7F01B240 +/* 04FD70 7F01B240 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 04FD74 7F01B244 AFB20028 */ sw $s2, 0x28($sp) +/* 04FD78 7F01B248 AFBF0044 */ sw $ra, 0x44($sp) +/* 04FD7C 7F01B24C AFBE0040 */ sw $fp, 0x40($sp) +/* 04FD80 7F01B250 AFB7003C */ sw $s7, 0x3c($sp) +/* 04FD84 7F01B254 AFB60038 */ sw $s6, 0x38($sp) +/* 04FD88 7F01B258 AFB50034 */ sw $s5, 0x34($sp) +/* 04FD8C 7F01B25C AFB40030 */ sw $s4, 0x30($sp) +/* 04FD90 7F01B260 AFB3002C */ sw $s3, 0x2c($sp) +/* 04FD94 7F01B264 AFB10024 */ sw $s1, 0x24($sp) +/* 04FD98 7F01B268 AFB00020 */ sw $s0, 0x20($sp) +/* 04FD9C 7F01B26C F7B80018 */ sdc1 $f24, 0x18($sp) +/* 04FDA0 7F01B270 F7B60010 */ sdc1 $f22, 0x10($sp) +/* 04FDA4 7F01B274 F7B40008 */ sdc1 $f20, 8($sp) +/* 04FDA8 7F01B278 8FB20058 */ lw $s2, 0x58($sp) +/* 04FDAC 7F01B27C 8CEE0000 */ lw $t6, ($a3) +/* 04FDB0 7F01B280 8CEF0004 */ lw $t7, 4($a3) +/* 04FDB4 7F01B284 8E590000 */ lw $t9, ($s2) +/* 04FDB8 7F01B288 448E2000 */ mtc1 $t6, $f4 +/* 04FDBC 7F01B28C 8E4E0004 */ lw $t6, 4($s2) +/* 04FDC0 7F01B290 448F3000 */ mtc1 $t7, $f6 +/* 04FDC4 7F01B294 44995000 */ mtc1 $t9, $f10 +/* 04FDC8 7F01B298 46802020 */ cvt.s.w $f0, $f4 +/* 04FDCC 7F01B29C 8E4F0008 */ lw $t7, 8($s2) +/* 04FDD0 7F01B2A0 448E2000 */ mtc1 $t6, $f4 +/* 04FDD4 7F01B2A4 8CF80008 */ lw $t8, 8($a3) +/* 04FDD8 7F01B2A8 3C018003 */ lui $at, %hi(D_8002BB0C) +/* 04FDDC 7F01B2AC 468030A0 */ cvt.s.w $f2, $f6 +/* 04FDE0 7F01B2B0 448F3000 */ mtc1 $t7, $f6 +/* 04FDE4 7F01B2B4 44984000 */ mtc1 $t8, $f8 +/* 04FDE8 7F01B2B8 3C140708 */ lui $s4, (0x07080200 >> 16) # lui $s4, 0x708 +/* 04FDEC 7F01B2BC 3C17070D */ lui $s7, (0x070DB026 >> 16) # lui $s7, 0x70d +/* 04FDF0 7F01B2C0 468053A0 */ cvt.s.w $f14, $f10 +/* 04FDF4 7F01B2C4 3C1FF588 */ lui $ra, (0xF5886E00 >> 16) # lui $ra, 0xf588 +/* 04FDF8 7F01B2C8 3C0D0400 */ lui $t5, (0x04000400 >> 16) # lui $t5, 0x400 +/* 04FDFC 7F01B2CC 3C0AE46D */ lui $t2, (0xE46DF000 >> 16) # lui $t2, 0xe46d +/* 04FE00 7F01B2D0 00A08025 */ move $s0, $a1 +/* 04FE04 7F01B2D4 46802420 */ cvt.s.w $f16, $f4 +/* 04FE08 7F01B2D8 E42EBB0C */ swc1 $f14, %lo(D_8002BB0C)($at) +/* 04FE0C 7F01B2DC 3C018003 */ lui $at, %hi(D_8002BB10) +/* 04FE10 7F01B2E0 00C08825 */ move $s1, $a2 +/* 04FE14 7F01B2E4 00004025 */ move $t0, $zero +/* 04FE18 7F01B2E8 468034A0 */ cvt.s.w $f18, $f6 +/* 04FE1C 7F01B2EC E430BB10 */ swc1 $f16, %lo(D_8002BB10)($at) +/* 04FE20 7F01B2F0 3C018003 */ lui $at, %hi(D_8002BB14) +/* 04FE24 7F01B2F4 354AF000 */ ori $t2, (0xE46DF000 & 0xFFFF) # ori $t2, $t2, 0xf000 +/* 04FE28 7F01B2F8 35AD0400 */ ori $t5, (0x04000400 & 0xFFFF) # ori $t5, $t5, 0x400 +/* 04FE2C 7F01B2FC 46804320 */ cvt.s.w $f12, $f8 +/* 04FE30 7F01B300 E432BB14 */ swc1 $f18, %lo(D_8002BB14)($at) +/* 04FE34 7F01B304 3C018005 */ lui $at, %hi(D_80051CF0) +/* 04FE38 7F01B308 37FF6E00 */ ori $ra, (0xF5886E00 & 0xFFFF) # ori $ra, $ra, 0x6e00 +/* 04FE3C 7F01B30C 36F7B026 */ ori $s7, (0x070DB026 & 0xFFFF) # ori $s7, $s7, 0xb026 +/* 04FE40 7F01B310 46028581 */ sub.s $f22, $f16, $f2 +/* 04FE44 7F01B314 C4301CF0 */ lwc1 $f16, %lo(D_80051CF0)($at) +/* 04FE48 7F01B318 36940200 */ ori $s4, (0x07080200 & 0xFFFF) # ori $s4, $s4, 0x200 +/* 04FE4C 7F01B31C 460C9601 */ sub.s $f24, $f18, $f12 +/* 04FE50 7F01B320 3C12FD90 */ lui $s2, 0xfd90 +/* 04FE54 7F01B324 3C13F590 */ lui $s3, 0xf590 +/* 04FE58 7F01B328 46007501 */ sub.s $f20, $f14, $f0 +/* 04FE5C 7F01B32C 3C15E600 */ lui $s5, 0xe600 +/* 04FE60 7F01B330 3C16F300 */ lui $s6, 0xf300 +/* 04FE64 7F01B334 3C1EE700 */ lui $fp, 0xe700 +/* 04FE68 7F01B338 24090001 */ li $t1, 1 +/* 04FE6C 7F01B33C 3C0CB300 */ lui $t4, 0xb300 +/* 04FE70 7F01B340 3C0BB400 */ lui $t3, 0xb400 +.L7F01B344: +/* 04FE74 7F01B344 44884000 */ mtc1 $t0, $f8 +/* 04FE78 7F01B348 00801025 */ move $v0, $a0 +/* 04FE7C 7F01B34C 24840008 */ addiu $a0, $a0, 8 +/* 04FE80 7F01B350 468043A0 */ cvt.s.w $f14, $f8 +/* 04FE84 7F01B354 00801825 */ move $v1, $a0 +/* 04FE88 7F01B358 AC520000 */ sw $s2, ($v0) +/* 04FE8C 7F01B35C AC500004 */ sw $s0, 4($v0) +/* 04FE90 7F01B360 24840008 */ addiu $a0, $a0, 8 +/* 04FE94 7F01B364 00802825 */ move $a1, $a0 +/* 04FE98 7F01B368 460EA282 */ mul.s $f10, $f20, $f14 +/* 04FE9C 7F01B36C AC740004 */ sw $s4, 4($v1) +/* 04FEA0 7F01B370 AC730000 */ sw $s3, ($v1) +/* 04FEA4 7F01B374 24840008 */ addiu $a0, $a0, 8 +/* 04FEA8 7F01B378 00803025 */ move $a2, $a0 +/* 04FEAC 7F01B37C 24840008 */ addiu $a0, $a0, 8 +/* 04FEB0 7F01B380 ACB50000 */ sw $s5, ($a1) +/* 04FEB4 7F01B384 46105103 */ div.s $f4, $f10, $f16 +/* 04FEB8 7F01B388 ACA00004 */ sw $zero, 4($a1) +/* 04FEBC 7F01B38C 00803825 */ move $a3, $a0 +/* 04FEC0 7F01B390 24840008 */ addiu $a0, $a0, 8 +/* 04FEC4 7F01B394 ACD70004 */ sw $s7, 4($a2) +/* 04FEC8 7F01B398 ACD60000 */ sw $s6, ($a2) +/* 04FECC 7F01B39C 00801025 */ move $v0, $a0 +/* 04FED0 7F01B3A0 ACE00004 */ sw $zero, 4($a3) +/* 04FED4 7F01B3A4 ACFE0000 */ sw $fp, ($a3) +/* 04FED8 7F01B3A8 3C180008 */ lui $t8, (0x00080200 >> 16) # lui $t8, 8 +/* 04FEDC 7F01B3AC 37180200 */ ori $t8, (0x00080200 & 0xFFFF) # ori $t8, $t8, 0x200 +/* 04FEE0 7F01B3B0 24840008 */ addiu $a0, $a0, 8 +/* 04FEE4 7F01B3B4 00801825 */ move $v1, $a0 +/* 04FEE8 7F01B3B8 AC580004 */ sw $t8, 4($v0) +/* 04FEEC 7F01B3BC AC5F0000 */ sw $ra, ($v0) +/* 04FEF0 7F01B3C0 3C19F200 */ lui $t9, 0xf200 +/* 04FEF4 7F01B3C4 AC790000 */ sw $t9, ($v1) +/* 04FEF8 7F01B3C8 24190001 */ li $t9, 1 +/* 04FEFC 7F01B3CC 24840008 */ addiu $a0, $a0, 8 +/* 04FF00 7F01B3D0 3C0E006D */ lui $t6, (0x006DC000 >> 16) # lui $t6, 0x6d +/* 04FF04 7F01B3D4 35CEC000 */ ori $t6, (0x006DC000 & 0xFFFF) # ori $t6, $t6, 0xc000 +/* 04FF08 7F01B3D8 00802825 */ move $a1, $a0 +/* 04FF0C 7F01B3DC AC6E0004 */ sw $t6, 4($v1) +/* 04FF10 7F01B3E0 46002180 */ add.s $f6, $f4, $f0 +/* 04FF14 7F01B3E4 24840008 */ addiu $a0, $a0, 8 +/* 04FF18 7F01B3E8 3C0FFA00 */ lui $t7, 0xfa00 +/* 04FF1C 7F01B3EC ACAF0000 */ sw $t7, ($a1) +/* 04FF20 7F01B3F0 4458F800 */ cfc1 $t8, $31 +/* 04FF24 7F01B3F4 44D9F800 */ ctc1 $t9, $31 +/* 04FF28 7F01B3F8 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 04FF2C 7F01B3FC 00801025 */ move $v0, $a0 +/* 04FF30 7F01B400 46003224 */ cvt.w.s $f8, $f6 +/* 04FF34 7F01B404 4459F800 */ cfc1 $t9, $31 +/* 04FF38 7F01B408 00000000 */ nop +/* 04FF3C 7F01B40C 33390078 */ andi $t9, $t9, 0x78 +/* 04FF40 7F01B410 53200013 */ beql $t9, $zero, .L7F01B460 +/* 04FF44 7F01B414 44194000 */ mfc1 $t9, $f8 +/* 04FF48 7F01B418 44814000 */ mtc1 $at, $f8 +/* 04FF4C 7F01B41C 24190001 */ li $t9, 1 +/* 04FF50 7F01B420 46083201 */ sub.s $f8, $f6, $f8 +/* 04FF54 7F01B424 44D9F800 */ ctc1 $t9, $31 +/* 04FF58 7F01B428 00000000 */ nop +/* 04FF5C 7F01B42C 46004224 */ cvt.w.s $f8, $f8 +/* 04FF60 7F01B430 4459F800 */ cfc1 $t9, $31 +/* 04FF64 7F01B434 00000000 */ nop +/* 04FF68 7F01B438 33390078 */ andi $t9, $t9, 0x78 +/* 04FF6C 7F01B43C 17200005 */ bnez $t9, .L7F01B454 +/* 04FF70 7F01B440 00000000 */ nop +/* 04FF74 7F01B444 44194000 */ mfc1 $t9, $f8 +/* 04FF78 7F01B448 3C018000 */ lui $at, 0x8000 +/* 04FF7C 7F01B44C 10000007 */ b .L7F01B46C +/* 04FF80 7F01B450 0321C825 */ or $t9, $t9, $at +.L7F01B454: +/* 04FF84 7F01B454 10000005 */ b .L7F01B46C +/* 04FF88 7F01B458 2419FFFF */ li $t9, -1 +/* 04FF8C 7F01B45C 44194000 */ mfc1 $t9, $f8 +.L7F01B460: +/* 04FF90 7F01B460 00000000 */ nop +/* 04FF94 7F01B464 0720FFFB */ bltz $t9, .L7F01B454 +/* 04FF98 7F01B468 00000000 */ nop +.L7F01B46C: +/* 04FF9C 7F01B46C 44D8F800 */ ctc1 $t8, $31 +/* 04FFA0 7F01B470 03207025 */ move $t6, $t9 +/* 04FFA4 7F01B474 24190001 */ li $t9, 1 +/* 04FFA8 7F01B478 460EB282 */ mul.s $f10, $f22, $f14 +/* 04FFAC 7F01B47C 000E7E00 */ sll $t7, $t6, 0x18 +/* 04FFB0 7F01B480 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 04FFB4 7F01B484 46105103 */ div.s $f4, $f10, $f16 +/* 04FFB8 7F01B488 46041180 */ add.s $f6, $f2, $f4 +/* 04FFBC 7F01B48C 4458F800 */ cfc1 $t8, $31 +/* 04FFC0 7F01B490 44D9F800 */ ctc1 $t9, $31 +/* 04FFC4 7F01B494 00000000 */ nop +/* 04FFC8 7F01B498 46003224 */ cvt.w.s $f8, $f6 +/* 04FFCC 7F01B49C 4459F800 */ cfc1 $t9, $31 +/* 04FFD0 7F01B4A0 00000000 */ nop +/* 04FFD4 7F01B4A4 33390078 */ andi $t9, $t9, 0x78 +/* 04FFD8 7F01B4A8 53200013 */ beql $t9, $zero, .L7F01B4F8 +/* 04FFDC 7F01B4AC 44194000 */ mfc1 $t9, $f8 +/* 04FFE0 7F01B4B0 44814000 */ mtc1 $at, $f8 +/* 04FFE4 7F01B4B4 24190001 */ li $t9, 1 +/* 04FFE8 7F01B4B8 46083201 */ sub.s $f8, $f6, $f8 +/* 04FFEC 7F01B4BC 44D9F800 */ ctc1 $t9, $31 +/* 04FFF0 7F01B4C0 00000000 */ nop +/* 04FFF4 7F01B4C4 46004224 */ cvt.w.s $f8, $f8 +/* 04FFF8 7F01B4C8 4459F800 */ cfc1 $t9, $31 +/* 04FFFC 7F01B4CC 00000000 */ nop +/* 050000 7F01B4D0 33390078 */ andi $t9, $t9, 0x78 +/* 050004 7F01B4D4 17200005 */ bnez $t9, .L7F01B4EC +/* 050008 7F01B4D8 00000000 */ nop +/* 05000C 7F01B4DC 44194000 */ mfc1 $t9, $f8 +/* 050010 7F01B4E0 3C018000 */ lui $at, 0x8000 +/* 050014 7F01B4E4 10000007 */ b .L7F01B504 +/* 050018 7F01B4E8 0321C825 */ or $t9, $t9, $at +.L7F01B4EC: +/* 05001C 7F01B4EC 10000005 */ b .L7F01B504 +/* 050020 7F01B4F0 2419FFFF */ li $t9, -1 +/* 050024 7F01B4F4 44194000 */ mfc1 $t9, $f8 +.L7F01B4F8: +/* 050028 7F01B4F8 00000000 */ nop +/* 05002C 7F01B4FC 0720FFFB */ bltz $t9, .L7F01B4EC +/* 050030 7F01B500 00000000 */ nop +.L7F01B504: +/* 050034 7F01B504 44D8F800 */ ctc1 $t8, $31 +/* 050038 7F01B508 332E00FF */ andi $t6, $t9, 0xff +/* 05003C 7F01B50C 000EC400 */ sll $t8, $t6, 0x10 +/* 050040 7F01B510 460EC282 */ mul.s $f10, $f24, $f14 +/* 050044 7F01B514 01F8C825 */ or $t9, $t7, $t8 +/* 050048 7F01B518 240F0001 */ li $t7, 1 +/* 05004C 7F01B51C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 050050 7F01B520 46105103 */ div.s $f4, $f10, $f16 +/* 050054 7F01B524 46046180 */ add.s $f6, $f12, $f4 +/* 050058 7F01B528 444EF800 */ cfc1 $t6, $31 +/* 05005C 7F01B52C 44CFF800 */ ctc1 $t7, $31 +/* 050060 7F01B530 00000000 */ nop +/* 050064 7F01B534 46003224 */ cvt.w.s $f8, $f6 +/* 050068 7F01B538 444FF800 */ cfc1 $t7, $31 +/* 05006C 7F01B53C 00000000 */ nop +/* 050070 7F01B540 31EF0078 */ andi $t7, $t7, 0x78 +/* 050074 7F01B544 51E00013 */ beql $t7, $zero, .L7F01B594 +/* 050078 7F01B548 440F4000 */ mfc1 $t7, $f8 +/* 05007C 7F01B54C 44814000 */ mtc1 $at, $f8 +/* 050080 7F01B550 240F0001 */ li $t7, 1 +/* 050084 7F01B554 46083201 */ sub.s $f8, $f6, $f8 +/* 050088 7F01B558 44CFF800 */ ctc1 $t7, $31 +/* 05008C 7F01B55C 00000000 */ nop +/* 050090 7F01B560 46004224 */ cvt.w.s $f8, $f8 +/* 050094 7F01B564 444FF800 */ cfc1 $t7, $31 +/* 050098 7F01B568 00000000 */ nop +/* 05009C 7F01B56C 31EF0078 */ andi $t7, $t7, 0x78 +/* 0500A0 7F01B570 15E00005 */ bnez $t7, .L7F01B588 +/* 0500A4 7F01B574 00000000 */ nop +/* 0500A8 7F01B578 440F4000 */ mfc1 $t7, $f8 +/* 0500AC 7F01B57C 3C018000 */ lui $at, 0x8000 +/* 0500B0 7F01B580 10000007 */ b .L7F01B5A0 +/* 0500B4 7F01B584 01E17825 */ or $t7, $t7, $at +.L7F01B588: +/* 0500B8 7F01B588 10000005 */ b .L7F01B5A0 +/* 0500BC 7F01B58C 240FFFFF */ li $t7, -1 +/* 0500C0 7F01B590 440F4000 */ mfc1 $t7, $f8 +.L7F01B594: +/* 0500C4 7F01B594 00000000 */ nop +/* 0500C8 7F01B598 05E0FFFB */ bltz $t7, .L7F01B588 +/* 0500CC 7F01B59C 00000000 */ nop +.L7F01B5A0: +/* 0500D0 7F01B5A0 44CEF800 */ ctc1 $t6, $31 +/* 0500D4 7F01B5A4 31F800FF */ andi $t8, $t7, 0xff +/* 0500D8 7F01B5A8 00187200 */ sll $t6, $t8, 8 +/* 0500DC 7F01B5AC 032E7825 */ or $t7, $t9, $t6 +/* 0500E0 7F01B5B0 35F800FF */ ori $t8, $t7, 0xff +/* 0500E4 7F01B5B4 06210018 */ bgez $s1, .L7F01B618 +/* 0500E8 7F01B5B8 ACB80004 */ sw $t8, 4($a1) +/* 0500EC 7F01B5BC 25190011 */ addiu $t9, $t0, 0x11 +/* 0500F0 7F01B5C0 00197080 */ sll $t6, $t9, 2 +/* 0500F4 7F01B5C4 25CFFFFF */ addiu $t7, $t6, -1 +/* 0500F8 7F01B5C8 31F80FFF */ andi $t8, $t7, 0xfff +/* 0500FC 7F01B5CC 250E0010 */ addiu $t6, $t0, 0x10 +/* 050100 7F01B5D0 000E7880 */ sll $t7, $t6, 2 +/* 050104 7F01B5D4 030AC825 */ or $t9, $t8, $t2 +/* 050108 7F01B5D8 00801025 */ move $v0, $a0 +/* 05010C 7F01B5DC 24840008 */ addiu $a0, $a0, 8 +/* 050110 7F01B5E0 31F80FFF */ andi $t8, $t7, 0xfff +/* 050114 7F01B5E4 AC580004 */ sw $t8, 4($v0) +/* 050118 7F01B5E8 00801825 */ move $v1, $a0 +/* 05011C 7F01B5EC 24840008 */ addiu $a0, $a0, 8 +/* 050120 7F01B5F0 00117823 */ negu $t7, $s1 +/* 050124 7F01B5F4 AC590000 */ sw $t9, ($v0) +/* 050128 7F01B5F8 000FC540 */ sll $t8, $t7, 0x15 +/* 05012C 7F01B5FC 00802825 */ move $a1, $a0 +/* 050130 7F01B600 AC780004 */ sw $t8, 4($v1) +/* 050134 7F01B604 AC6B0000 */ sw $t3, ($v1) +/* 050138 7F01B608 ACAD0004 */ sw $t5, 4($a1) +/* 05013C 7F01B60C ACAC0000 */ sw $t4, ($a1) +/* 050140 7F01B610 10000018 */ b .L7F01B674 +/* 050144 7F01B614 24840008 */ addiu $a0, $a0, 8 +.L7F01B618: +/* 050148 7F01B618 25190011 */ addiu $t9, $t0, 0x11 +/* 05014C 7F01B61C 00197080 */ sll $t6, $t9, 2 +/* 050150 7F01B620 25CFFFFF */ addiu $t7, $t6, -1 +/* 050154 7F01B624 31F80FFF */ andi $t8, $t7, 0xfff +/* 050158 7F01B628 030AC825 */ or $t9, $t8, $t2 +/* 05015C 7F01B62C 00117080 */ sll $t6, $s1, 2 +/* 050160 7F01B630 31CF0FFF */ andi $t7, $t6, 0xfff +/* 050164 7F01B634 AC590000 */ sw $t9, ($v0) +/* 050168 7F01B638 25190010 */ addiu $t9, $t0, 0x10 +/* 05016C 7F01B63C 00197080 */ sll $t6, $t9, 2 +/* 050170 7F01B640 000FC300 */ sll $t8, $t7, 0xc +/* 050174 7F01B644 31CF0FFF */ andi $t7, $t6, 0xfff +/* 050178 7F01B648 24840008 */ addiu $a0, $a0, 8 +/* 05017C 7F01B64C 00801825 */ move $v1, $a0 +/* 050180 7F01B650 030FC825 */ or $t9, $t8, $t7 +/* 050184 7F01B654 AC590004 */ sw $t9, 4($v0) +/* 050188 7F01B658 24840008 */ addiu $a0, $a0, 8 +/* 05018C 7F01B65C 00802825 */ move $a1, $a0 +/* 050190 7F01B660 AC600004 */ sw $zero, 4($v1) +/* 050194 7F01B664 AC6B0000 */ sw $t3, ($v1) +/* 050198 7F01B668 ACAD0004 */ sw $t5, 4($a1) +/* 05019C 7F01B66C ACAC0000 */ sw $t4, ($a1) +/* 0501A0 7F01B670 24840008 */ addiu $a0, $a0, 8 +.L7F01B674: +/* 0501A4 7F01B674 01204025 */ move $t0, $t1 +/* 0501A8 7F01B678 25290001 */ addiu $t1, $t1, 1 +/* 0501AC 7F01B67C 2921012C */ slti $at, $t1, 0x12c +/* 0501B0 7F01B680 1420FF30 */ bnez $at, .L7F01B344 +/* 0501B4 7F01B684 261001B8 */ addiu $s0, $s0, 0x1b8 +/* 0501B8 7F01B688 3C018003 */ lui $at, %hi(D_8002BB08) +/* 0501BC 7F01B68C E42CBB08 */ swc1 $f12, %lo(D_8002BB08)($at) +/* 0501C0 7F01B690 8FBF0044 */ lw $ra, 0x44($sp) +/* 0501C4 7F01B694 3C018003 */ lui $at, %hi(D_8002BB04) +/* 0501C8 7F01B698 E422BB04 */ swc1 $f2, %lo(D_8002BB04)($at) +/* 0501CC 7F01B69C 3C018003 */ lui $at, %hi(D_8002BB00) +/* 0501D0 7F01B6A0 D7B40008 */ ldc1 $f20, 8($sp) +/* 0501D4 7F01B6A4 D7B60010 */ ldc1 $f22, 0x10($sp) +/* 0501D8 7F01B6A8 D7B80018 */ ldc1 $f24, 0x18($sp) +/* 0501DC 7F01B6AC 8FB00020 */ lw $s0, 0x20($sp) +/* 0501E0 7F01B6B0 8FB10024 */ lw $s1, 0x24($sp) +/* 0501E4 7F01B6B4 8FB20028 */ lw $s2, 0x28($sp) +/* 0501E8 7F01B6B8 8FB3002C */ lw $s3, 0x2c($sp) +/* 0501EC 7F01B6BC 8FB40030 */ lw $s4, 0x30($sp) +/* 0501F0 7F01B6C0 8FB50034 */ lw $s5, 0x34($sp) +/* 0501F4 7F01B6C4 8FB60038 */ lw $s6, 0x38($sp) +/* 0501F8 7F01B6C8 8FB7003C */ lw $s7, 0x3c($sp) +/* 0501FC 7F01B6CC 8FBE0040 */ lw $fp, 0x40($sp) +/* 050200 7F01B6D0 E420BB00 */ swc1 $f0, %lo(D_8002BB00)($at) +/* 050204 7F01B6D4 27BD0048 */ addiu $sp, $sp, 0x48 +/* 050208 7F01B6D8 03E00008 */ jr $ra +/* 05020C 7F01B6DC 00801025 */ move $v0, $a0 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F01B6E0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F01B6E0 +/* 050210 7F01B6E0 44862000 */ mtc1 $a2, $f4 +/* 050214 7F01B6E4 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 050218 7F01B6E8 3C018003 */ lui $at, %hi(D_8002BB2C) +/* 05021C 7F01B6EC 468023A0 */ cvt.s.w $f14, $f4 +/* 050220 7F01B6F0 AFBF0044 */ sw $ra, 0x44($sp) +/* 050224 7F01B6F4 AFBE0040 */ sw $fp, 0x40($sp) +/* 050228 7F01B6F8 AFB60038 */ sw $s6, 0x38($sp) +/* 05022C 7F01B6FC AFB3002C */ sw $s3, 0x2c($sp) +/* 050230 7F01B700 AFB7003C */ sw $s7, 0x3c($sp) +/* 050234 7F01B704 E42EBB2C */ swc1 $f14, %lo(D_8002BB2C)($at) +/* 050238 7F01B708 C426BB2C */ lwc1 $f6, %lo(D_8002BB2C)($at) +/* 05023C 7F01B70C 46007406 */ mov.s $f16, $f14 +/* 050240 7F01B710 3C018003 */ lui $at, %hi(D_8002BB24) +/* 050244 7F01B714 E430BB24 */ swc1 $f16, %lo(D_8002BB24)($at) +/* 050248 7F01B718 3C018003 */ lui $at, %hi(D_8002BB28) +/* 05024C 7F01B71C E42EBB28 */ swc1 $f14, %lo(D_8002BB28)($at) +/* 050250 7F01B720 3C014359 */ li $at, 0x43590000 # 217.000000 +/* 050254 7F01B724 AFB50034 */ sw $s5, 0x34($sp) +/* 050258 7F01B728 AFB40030 */ sw $s4, 0x30($sp) +/* 05025C 7F01B72C AFB20028 */ sw $s2, 0x28($sp) +/* 050260 7F01B730 AFB10024 */ sw $s1, 0x24($sp) +/* 050264 7F01B734 AFB00020 */ sw $s0, 0x20($sp) +/* 050268 7F01B738 F7B80018 */ sdc1 $f24, 0x18($sp) +/* 05026C 7F01B73C F7B60010 */ sdc1 $f22, 0x10($sp) +/* 050270 7F01B740 F7B40008 */ sdc1 $f20, 8($sp) +/* 050274 7F01B744 3C130708 */ lui $s3, (0x07080200 >> 16) # lui $s3, 0x708 +/* 050278 7F01B748 3C160713 */ lui $s6, (0x0713F01A >> 16) # lui $s6, 0x713 +/* 05027C 7F01B74C 3C1EF510 */ lui $fp, (0xF510A000 >> 16) # lui $fp, 0xf510 +/* 050280 7F01B750 3C1F0008 */ lui $ra, (0x00080200 >> 16) # lui $ra, 8 +/* 050284 7F01B754 3C0D0400 */ lui $t5, (0x04000400 >> 16) # lui $t5, 0x400 +/* 050288 7F01B758 3C0AE44F */ lui $t2, (0xE44FF000 >> 16) # lui $t2, 0xe44f +/* 05028C 7F01B75C 44818000 */ mtc1 $at, $f16 +/* 050290 7F01B760 00A08025 */ move $s0, $a1 +/* 050294 7F01B764 00003825 */ move $a3, $zero +/* 050298 7F01B768 46007006 */ mov.s $f0, $f14 +/* 05029C 7F01B76C 46007306 */ mov.s $f12, $f14 +/* 0502A0 7F01B770 354AF000 */ ori $t2, (0xE44FF000 & 0xFFFF) # ori $t2, $t2, 0xf000 +/* 0502A4 7F01B774 35AD0400 */ ori $t5, (0x04000400 & 0xFFFF) # ori $t5, $t5, 0x400 +/* 0502A8 7F01B778 37FF0200 */ ori $ra, (0x00080200 & 0xFFFF) # ori $ra, $ra, 0x200 +/* 0502AC 7F01B77C 37DEA000 */ ori $fp, (0xF510A000 & 0xFFFF) # ori $fp, $fp, 0xa000 +/* 0502B0 7F01B780 36D6F01A */ ori $s6, (0x0713F01A & 0xFFFF) # ori $s6, $s6, 0xf01a +/* 0502B4 7F01B784 36730200 */ ori $s3, (0x07080200 & 0xFFFF) # ori $s3, $s3, 0x200 +/* 0502B8 7F01B788 460E7501 */ sub.s $f20, $f14, $f14 +/* 0502BC 7F01B78C 3C11FD10 */ lui $s1, 0xfd10 +/* 0502C0 7F01B790 3C12F510 */ lui $s2, 0xf510 +/* 0502C4 7F01B794 460E7581 */ sub.s $f22, $f14, $f14 +/* 0502C8 7F01B798 3C14E600 */ lui $s4, 0xe600 +/* 0502CC 7F01B79C 3C15F300 */ lui $s5, 0xf300 +/* 0502D0 7F01B7A0 3C17E700 */ lui $s7, 0xe700 +/* 0502D4 7F01B7A4 24090001 */ li $t1, 1 +/* 0502D8 7F01B7A8 3C0CB300 */ lui $t4, 0xb300 +/* 0502DC 7F01B7AC 3C0BB400 */ lui $t3, 0xb400 +/* 0502E0 7F01B7B0 460E3601 */ sub.s $f24, $f6, $f14 +.L7F01B7B4: +/* 0502E4 7F01B7B4 44874000 */ mtc1 $a3, $f8 +/* 0502E8 7F01B7B8 00801025 */ move $v0, $a0 +/* 0502EC 7F01B7BC 24840008 */ addiu $a0, $a0, 8 +/* 0502F0 7F01B7C0 468040A0 */ cvt.s.w $f2, $f8 +/* 0502F4 7F01B7C4 00801825 */ move $v1, $a0 +/* 0502F8 7F01B7C8 AC510000 */ sw $s1, ($v0) +/* 0502FC 7F01B7CC AC500004 */ sw $s0, 4($v0) +/* 050300 7F01B7D0 24840008 */ addiu $a0, $a0, 8 +/* 050304 7F01B7D4 00802825 */ move $a1, $a0 +/* 050308 7F01B7D8 4602A282 */ mul.s $f10, $f20, $f2 +/* 05030C 7F01B7DC AC730004 */ sw $s3, 4($v1) +/* 050310 7F01B7E0 AC720000 */ sw $s2, ($v1) +/* 050314 7F01B7E4 24840008 */ addiu $a0, $a0, 8 +/* 050318 7F01B7E8 00803025 */ move $a2, $a0 +/* 05031C 7F01B7EC 24840008 */ addiu $a0, $a0, 8 +/* 050320 7F01B7F0 ACB40000 */ sw $s4, ($a1) +/* 050324 7F01B7F4 46105103 */ div.s $f4, $f10, $f16 +/* 050328 7F01B7F8 ACA00004 */ sw $zero, 4($a1) +/* 05032C 7F01B7FC 00804025 */ move $t0, $a0 +/* 050330 7F01B800 24840008 */ addiu $a0, $a0, 8 +/* 050334 7F01B804 ACD60004 */ sw $s6, 4($a2) +/* 050338 7F01B808 ACD50000 */ sw $s5, ($a2) +/* 05033C 7F01B80C 00801025 */ move $v0, $a0 +/* 050340 7F01B810 AD000004 */ sw $zero, 4($t0) +/* 050344 7F01B814 AD170000 */ sw $s7, ($t0) +/* 050348 7F01B818 24840008 */ addiu $a0, $a0, 8 +/* 05034C 7F01B81C 00801825 */ move $v1, $a0 +/* 050350 7F01B820 AC5F0004 */ sw $ra, 4($v0) +/* 050354 7F01B824 AC5E0000 */ sw $fp, ($v0) +/* 050358 7F01B828 3C0EF200 */ lui $t6, 0xf200 +/* 05035C 7F01B82C AC6E0000 */ sw $t6, ($v1) +/* 050360 7F01B830 240E0001 */ li $t6, 1 +/* 050364 7F01B834 24840008 */ addiu $a0, $a0, 8 +/* 050368 7F01B838 00802825 */ move $a1, $a0 +/* 05036C 7F01B83C 3C0F004F */ lui $t7, (0x004FC000 >> 16) # lui $t7, 0x4f +/* 050370 7F01B840 24840008 */ addiu $a0, $a0, 8 +/* 050374 7F01B844 35EFC000 */ ori $t7, (0x004FC000 & 0xFFFF) # ori $t7, $t7, 0xc000 +/* 050378 7F01B848 00801025 */ move $v0, $a0 +/* 05037C 7F01B84C AC6F0004 */ sw $t7, 4($v1) +/* 050380 7F01B850 46002180 */ add.s $f6, $f4, $f0 +/* 050384 7F01B854 24840008 */ addiu $a0, $a0, 8 +/* 050388 7F01B858 3C18FA00 */ lui $t8, 0xfa00 +/* 05038C 7F01B85C 00801825 */ move $v1, $a0 +/* 050390 7F01B860 4459F800 */ cfc1 $t9, $31 +/* 050394 7F01B864 44CEF800 */ ctc1 $t6, $31 +/* 050398 7F01B868 ACB80000 */ sw $t8, ($a1) +/* 05039C 7F01B86C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0503A0 7F01B870 46003224 */ cvt.w.s $f8, $f6 +/* 0503A4 7F01B874 24840008 */ addiu $a0, $a0, 8 +/* 0503A8 7F01B878 26100280 */ addiu $s0, $s0, 0x280 +/* 0503AC 7F01B87C 444EF800 */ cfc1 $t6, $31 +/* 0503B0 7F01B880 00000000 */ nop +/* 0503B4 7F01B884 31CE0078 */ andi $t6, $t6, 0x78 +/* 0503B8 7F01B888 51C00013 */ beql $t6, $zero, .L7F01B8D8 +/* 0503BC 7F01B88C 440E4000 */ mfc1 $t6, $f8 +/* 0503C0 7F01B890 44814000 */ mtc1 $at, $f8 +/* 0503C4 7F01B894 240E0001 */ li $t6, 1 +/* 0503C8 7F01B898 46083201 */ sub.s $f8, $f6, $f8 +/* 0503CC 7F01B89C 44CEF800 */ ctc1 $t6, $31 +/* 0503D0 7F01B8A0 00000000 */ nop +/* 0503D4 7F01B8A4 46004224 */ cvt.w.s $f8, $f8 +/* 0503D8 7F01B8A8 444EF800 */ cfc1 $t6, $31 +/* 0503DC 7F01B8AC 00000000 */ nop +/* 0503E0 7F01B8B0 31CE0078 */ andi $t6, $t6, 0x78 +/* 0503E4 7F01B8B4 15C00005 */ bnez $t6, .L7F01B8CC +/* 0503E8 7F01B8B8 00000000 */ nop +/* 0503EC 7F01B8BC 440E4000 */ mfc1 $t6, $f8 +/* 0503F0 7F01B8C0 3C018000 */ lui $at, 0x8000 +/* 0503F4 7F01B8C4 10000007 */ b .L7F01B8E4 +/* 0503F8 7F01B8C8 01C17025 */ or $t6, $t6, $at +.L7F01B8CC: +/* 0503FC 7F01B8CC 10000005 */ b .L7F01B8E4 +/* 050400 7F01B8D0 240EFFFF */ li $t6, -1 +/* 050404 7F01B8D4 440E4000 */ mfc1 $t6, $f8 +.L7F01B8D8: +/* 050408 7F01B8D8 00000000 */ nop +/* 05040C 7F01B8DC 05C0FFFB */ bltz $t6, .L7F01B8CC +/* 050410 7F01B8E0 00000000 */ nop +.L7F01B8E4: +/* 050414 7F01B8E4 44D9F800 */ ctc1 $t9, $31 +/* 050418 7F01B8E8 01C07825 */ move $t7, $t6 +/* 05041C 7F01B8EC 240E0001 */ li $t6, 1 +/* 050420 7F01B8F0 4602B282 */ mul.s $f10, $f22, $f2 +/* 050424 7F01B8F4 000FC600 */ sll $t8, $t7, 0x18 +/* 050428 7F01B8F8 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 05042C 7F01B8FC 46105103 */ div.s $f4, $f10, $f16 +/* 050430 7F01B900 46046180 */ add.s $f6, $f12, $f4 +/* 050434 7F01B904 4459F800 */ cfc1 $t9, $31 +/* 050438 7F01B908 44CEF800 */ ctc1 $t6, $31 +/* 05043C 7F01B90C 00000000 */ nop +/* 050440 7F01B910 46003224 */ cvt.w.s $f8, $f6 +/* 050444 7F01B914 444EF800 */ cfc1 $t6, $31 +/* 050448 7F01B918 00000000 */ nop +/* 05044C 7F01B91C 31CE0078 */ andi $t6, $t6, 0x78 +/* 050450 7F01B920 51C00013 */ beql $t6, $zero, .L7F01B970 +/* 050454 7F01B924 440E4000 */ mfc1 $t6, $f8 +/* 050458 7F01B928 44814000 */ mtc1 $at, $f8 +/* 05045C 7F01B92C 240E0001 */ li $t6, 1 +/* 050460 7F01B930 46083201 */ sub.s $f8, $f6, $f8 +/* 050464 7F01B934 44CEF800 */ ctc1 $t6, $31 +/* 050468 7F01B938 00000000 */ nop +/* 05046C 7F01B93C 46004224 */ cvt.w.s $f8, $f8 +/* 050470 7F01B940 444EF800 */ cfc1 $t6, $31 +/* 050474 7F01B944 00000000 */ nop +/* 050478 7F01B948 31CE0078 */ andi $t6, $t6, 0x78 +/* 05047C 7F01B94C 15C00005 */ bnez $t6, .L7F01B964 +/* 050480 7F01B950 00000000 */ nop +/* 050484 7F01B954 440E4000 */ mfc1 $t6, $f8 +/* 050488 7F01B958 3C018000 */ lui $at, 0x8000 +/* 05048C 7F01B95C 10000007 */ b .L7F01B97C +/* 050490 7F01B960 01C17025 */ or $t6, $t6, $at +.L7F01B964: +/* 050494 7F01B964 10000005 */ b .L7F01B97C +/* 050498 7F01B968 240EFFFF */ li $t6, -1 +/* 05049C 7F01B96C 440E4000 */ mfc1 $t6, $f8 +.L7F01B970: +/* 0504A0 7F01B970 00000000 */ nop +/* 0504A4 7F01B974 05C0FFFB */ bltz $t6, .L7F01B964 +/* 0504A8 7F01B978 00000000 */ nop +.L7F01B97C: +/* 0504AC 7F01B97C 44D9F800 */ ctc1 $t9, $31 +/* 0504B0 7F01B980 31CF00FF */ andi $t7, $t6, 0xff +/* 0504B4 7F01B984 000FCC00 */ sll $t9, $t7, 0x10 +/* 0504B8 7F01B988 4602C282 */ mul.s $f10, $f24, $f2 +/* 0504BC 7F01B98C 03197025 */ or $t6, $t8, $t9 +/* 0504C0 7F01B990 24180001 */ li $t8, 1 +/* 0504C4 7F01B994 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0504C8 7F01B998 46105103 */ div.s $f4, $f10, $f16 +/* 0504CC 7F01B99C 46047180 */ add.s $f6, $f14, $f4 +/* 0504D0 7F01B9A0 444FF800 */ cfc1 $t7, $31 +/* 0504D4 7F01B9A4 44D8F800 */ ctc1 $t8, $31 +/* 0504D8 7F01B9A8 00000000 */ nop +/* 0504DC 7F01B9AC 46003224 */ cvt.w.s $f8, $f6 +/* 0504E0 7F01B9B0 4458F800 */ cfc1 $t8, $31 +/* 0504E4 7F01B9B4 00000000 */ nop +/* 0504E8 7F01B9B8 33180078 */ andi $t8, $t8, 0x78 +/* 0504EC 7F01B9BC 53000013 */ beql $t8, $zero, .L7F01BA0C +/* 0504F0 7F01B9C0 44184000 */ mfc1 $t8, $f8 +/* 0504F4 7F01B9C4 44814000 */ mtc1 $at, $f8 +/* 0504F8 7F01B9C8 24180001 */ li $t8, 1 +/* 0504FC 7F01B9CC 46083201 */ sub.s $f8, $f6, $f8 +/* 050500 7F01B9D0 44D8F800 */ ctc1 $t8, $31 +/* 050504 7F01B9D4 00000000 */ nop +/* 050508 7F01B9D8 46004224 */ cvt.w.s $f8, $f8 +/* 05050C 7F01B9DC 4458F800 */ cfc1 $t8, $31 +/* 050510 7F01B9E0 00000000 */ nop +/* 050514 7F01B9E4 33180078 */ andi $t8, $t8, 0x78 +/* 050518 7F01B9E8 17000005 */ bnez $t8, .L7F01BA00 +/* 05051C 7F01B9EC 00000000 */ nop +/* 050520 7F01B9F0 44184000 */ mfc1 $t8, $f8 +/* 050524 7F01B9F4 3C018000 */ lui $at, 0x8000 +/* 050528 7F01B9F8 10000007 */ b .L7F01BA18 +/* 05052C 7F01B9FC 0301C025 */ or $t8, $t8, $at +.L7F01BA00: +/* 050530 7F01BA00 10000005 */ b .L7F01BA18 +/* 050534 7F01BA04 2418FFFF */ li $t8, -1 +/* 050538 7F01BA08 44184000 */ mfc1 $t8, $f8 +.L7F01BA0C: +/* 05053C 7F01BA0C 00000000 */ nop +/* 050540 7F01BA10 0700FFFB */ bltz $t8, .L7F01BA00 +/* 050544 7F01BA14 00000000 */ nop +.L7F01BA18: +/* 050548 7F01BA18 44CFF800 */ ctc1 $t7, $31 +/* 05054C 7F01BA1C 331900FF */ andi $t9, $t8, 0xff +/* 050550 7F01BA20 00197A00 */ sll $t7, $t9, 8 +/* 050554 7F01BA24 01CFC025 */ or $t8, $t6, $t7 +/* 050558 7F01BA28 371900FF */ ori $t9, $t8, 0xff +/* 05055C 7F01BA2C 24EE000D */ addiu $t6, $a3, 0xd +/* 050560 7F01BA30 000E7880 */ sll $t7, $t6, 2 +/* 050564 7F01BA34 ACB90004 */ sw $t9, 4($a1) +/* 050568 7F01BA38 25F8FFFF */ addiu $t8, $t7, -1 +/* 05056C 7F01BA3C 33190FFF */ andi $t9, $t8, 0xfff +/* 050570 7F01BA40 24EF000C */ addiu $t7, $a3, 0xc +/* 050574 7F01BA44 000FC080 */ sll $t8, $t7, 2 +/* 050578 7F01BA48 032A7025 */ or $t6, $t9, $t2 +/* 05057C 7F01BA4C 33190FFF */ andi $t9, $t8, 0xfff +/* 050580 7F01BA50 AC590004 */ sw $t9, 4($v0) +/* 050584 7F01BA54 AC4E0000 */ sw $t6, ($v0) +/* 050588 7F01BA58 01203825 */ move $a3, $t1 +/* 05058C 7F01BA5C 00802825 */ move $a1, $a0 +/* 050590 7F01BA60 25290001 */ addiu $t1, $t1, 1 +/* 050594 7F01BA64 AC600004 */ sw $zero, 4($v1) +/* 050598 7F01BA68 AC6B0000 */ sw $t3, ($v1) +/* 05059C 7F01BA6C 292100DA */ slti $at, $t1, 0xda +/* 0505A0 7F01BA70 ACAD0004 */ sw $t5, 4($a1) +/* 0505A4 7F01BA74 ACAC0000 */ sw $t4, ($a1) +/* 0505A8 7F01BA78 1420FF4E */ bnez $at, .L7F01B7B4 +/* 0505AC 7F01BA7C 24840008 */ addiu $a0, $a0, 8 +/* 0505B0 7F01BA80 3C018003 */ lui $at, %hi(D_8002BB20) +/* 0505B4 7F01BA84 E42EBB20 */ swc1 $f14, %lo(D_8002BB20)($at) +/* 0505B8 7F01BA88 8FBF0044 */ lw $ra, 0x44($sp) +/* 0505BC 7F01BA8C 3C018003 */ lui $at, %hi(D_8002BB1C) +/* 0505C0 7F01BA90 E42CBB1C */ swc1 $f12, %lo(D_8002BB1C)($at) +/* 0505C4 7F01BA94 3C018003 */ lui $at, %hi(D_8002BB18) +/* 0505C8 7F01BA98 D7B40008 */ ldc1 $f20, 8($sp) +/* 0505CC 7F01BA9C D7B60010 */ ldc1 $f22, 0x10($sp) +/* 0505D0 7F01BAA0 D7B80018 */ ldc1 $f24, 0x18($sp) +/* 0505D4 7F01BAA4 8FB00020 */ lw $s0, 0x20($sp) +/* 0505D8 7F01BAA8 8FB10024 */ lw $s1, 0x24($sp) +/* 0505DC 7F01BAAC 8FB20028 */ lw $s2, 0x28($sp) +/* 0505E0 7F01BAB0 8FB3002C */ lw $s3, 0x2c($sp) +/* 0505E4 7F01BAB4 8FB40030 */ lw $s4, 0x30($sp) +/* 0505E8 7F01BAB8 8FB50034 */ lw $s5, 0x34($sp) +/* 0505EC 7F01BABC 8FB60038 */ lw $s6, 0x38($sp) +/* 0505F0 7F01BAC0 8FB7003C */ lw $s7, 0x3c($sp) +/* 0505F4 7F01BAC4 8FBE0040 */ lw $fp, 0x40($sp) +/* 0505F8 7F01BAC8 E420BB18 */ swc1 $f0, %lo(D_8002BB18)($at) +/* 0505FC 7F01BACC 27BD0048 */ addiu $sp, $sp, 0x48 +/* 050600 7F01BAD0 03E00008 */ jr $ra +/* 050604 7F01BAD4 00801025 */ move $v0, $a0 +) +#endif + + diff --git a/src/game/unk_01BAE0.c b/src/game/unk_01BAE0.c new file mode 100644 index 0000000..861352a --- /dev/null +++ b/src/game/unk_01BAE0.c @@ -0,0 +1,440 @@ +#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 + + + + + + diff --git a/src/game/unk_05A9E0.c b/src/game/unk_05A9E0.c new file mode 100644 index 0000000..2bd39d5 --- /dev/null +++ b/src/game/unk_05A9E0.c @@ -0,0 +1,9 @@ +#include "ultra64.h" + + +f32 sub_GAME_7F05A9E0(f32 arg0) { + return sqrtf(((sinf(arg0) / cosf(arg0)) + 1.0f)); +} + + + diff --git a/src/game/unk_05AB70.c b/src/game/unk_05AB70.c new file mode 100644 index 0000000..758dc81 --- /dev/null +++ b/src/game/unk_05AB70.c @@ -0,0 +1,166 @@ +#include "ultra64.h" + + +//data +//D:80032320 +s16 table_1[] = { + 0x8000,0x7EBA,0x7D74,0x7C2D,0x7AE7,0x79A0,0x7859,0x7711,0x75C9,0x7480, + 0x7337,0x71EC,0x70A1,0x6F55,0x6E07,0x6CB8,0x6B68,0x6A17,0x68C4,0x6770, + 0x661A,0x64C1,0x6367,0x620B,0x60AD,0x5F4C,0x5DE9,0x5C83,0x5B1A,0x59AE, + 0x583E,0x56CB,0x5555,0x53DB,0x525C,0x50D9,0x4F51,0x4DC5,0x4C32,0x4A9A, + 0x48FC,0x4757,0x45AB,0x43F7,0x423A,0x4075,0x3EA5,0x3CCB,0x3AE5,0x38F1, + 0x36EF,0x34DC,0x32B7,0x307D,0x2E2B,0x2BBD,0x292E,0x2678,0x2391,0x206C, + 0x1CF6, 0 +}; + +//D:8003239C +s16 table_2[] = { + 0x1CF6,0x1CBB,0x1C80,0x1C45,0x1C08,0x1BCC,0x1B8F,0x1B51,0x1B13,0x1AD4, + 0x1A95,0x1A55,0x1A14,0x19D3,0x1992,0x194F,0x190C,0x18C9,0x1884,0x183F, + 0x17F9,0x17B3,0x176B,0x1723,0x16DA,0x1690,0x1645,0x15F9,0x15AC,0x155E, + 0x150F,0x14BE,0x146D,0x141A,0x13C6,0x1370,0x1319,0x12C1,0x1267,0x120B, + 0x11AD,0x114E,0x10EC,0x1088,0x1022, 0xFB9, 0xF4D, 0xEDE, 0xE6C, 0xDF7, + 0xD7D, 0xD00, 0xC7D, 0xBF4, 0xB66, 0xAD0, 0xA31, 0x989, 0x8D3, 0x80E, + 0x734, 0x63D, 0x518, 0x39A +}; + +//D:8003241C +s16 table_3[] = { + 0x39A, 0x31E, 0x28C, 0x1CD, 0, 0 +}; + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05AB70(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05AB70 +/* 08F6A0 7F05AB70 28817FE0 */ slti $at, $a0, 0x7fe0 +/* 08F6A4 7F05AB74 14200006 */ bnez $at, .L7F05AB90 +/* 08F6A8 7F05AB78 24030007 */ li $v1, 7 +/* 08F6AC 7F05AB7C 3C068003 */ lui $a2, %hi(table_3) +/* 08F6B0 7F05AB80 24050003 */ li $a1, 3 +/* 08F6B4 7F05AB84 24C6241C */ addiu $a2, %lo(table_3) # addiu $a2, $a2, 0x241c +/* 08F6B8 7F05AB88 1000000D */ b .L7F05ABC0 +/* 08F6BC 7F05AB8C 24848020 */ addiu $a0, $a0, -0x7fe0 +.L7F05AB90: +/* 08F6C0 7F05AB90 28817800 */ slti $at, $a0, 0x7800 +/* 08F6C4 7F05AB94 14200007 */ bnez $at, .L7F05ABB4 +/* 08F6C8 7F05AB98 240301FF */ li $v1, 511 +/* 08F6CC 7F05AB9C 3C068003 */ lui $a2, %hi(table_2) +/* 08F6D0 7F05ABA0 2403001F */ li $v1, 31 +/* 08F6D4 7F05ABA4 24050005 */ li $a1, 5 +/* 08F6D8 7F05ABA8 24C6239C */ addiu $a2, %lo(table_2) # addiu $a2, $a2, 0x239c +/* 08F6DC 7F05ABAC 10000004 */ b .L7F05ABC0 +/* 08F6E0 7F05ABB0 24848800 */ addiu $a0, $a0, -0x7800 +.L7F05ABB4: +/* 08F6E4 7F05ABB4 3C068003 */ lui $a2, %hi(table_1) +/* 08F6E8 7F05ABB8 24050009 */ li $a1, 9 +/* 08F6EC 7F05ABBC 24C62320 */ addiu $a2, %lo(table_1) # addiu $a2, $a2, 0x2320 +.L7F05ABC0: +/* 08F6F0 7F05ABC0 00A47007 */ srav $t6, $a0, $a1 +/* 08F6F4 7F05ABC4 000E7840 */ sll $t7, $t6, 1 +/* 08F6F8 7F05ABC8 00CF4021 */ addu $t0, $a2, $t7 +/* 08F6FC 7F05ABCC 95070000 */ lhu $a3, ($t0) +/* 08F700 7F05ABD0 95090002 */ lhu $t1, 2($t0) +/* 08F704 7F05ABD4 0083C824 */ and $t9, $a0, $v1 +/* 08F708 7F05ABD8 00E9C023 */ subu $t8, $a3, $t1 +/* 08F70C 7F05ABDC 03190019 */ multu $t8, $t9 +/* 08F710 7F05ABE0 00005012 */ mflo $t2 +/* 08F714 7F05ABE4 00AA5807 */ srav $t3, $t2, $a1 +/* 08F718 7F05ABE8 03E00008 */ jr $ra +/* 08F71C 7F05ABEC 00EB1023 */ subu $v0, $a3, $t3 +) +#endif + + + + + +#ifdef NONMATCHING +u16 acos(s16) { + +} +#else +GLOBAL_ASM( +.text +glabel acos +/* 08F720 7F05ABF0 00042C00 */ sll $a1, $a0, 0x10 +/* 08F724 7F05ABF4 00057403 */ sra $t6, $a1, 0x10 +/* 08F728 7F05ABF8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08F72C 7F05ABFC AFBF0014 */ sw $ra, 0x14($sp) +/* 08F730 7F05AC00 AFA40018 */ sw $a0, 0x18($sp) +/* 08F734 7F05AC04 05C00003 */ bltz $t6, .L7F05AC14 +/* 08F738 7F05AC08 01C02825 */ move $a1, $t6 +/* 08F73C 7F05AC0C 10000002 */ b .L7F05AC18 +/* 08F740 7F05AC10 01C02025 */ move $a0, $t6 +.L7F05AC14: +/* 08F744 7F05AC14 00052023 */ negu $a0, $a1 +.L7F05AC18: +/* 08F748 7F05AC18 0FC16ADC */ jal sub_GAME_7F05AB70 +/* 08F74C 7F05AC1C A7A5001A */ sh $a1, 0x1a($sp) +/* 08F750 7F05AC20 87A5001A */ lh $a1, 0x1a($sp) +/* 08F754 7F05AC24 8FBF0014 */ lw $ra, 0x14($sp) +/* 08F758 7F05AC28 00402025 */ move $a0, $v0 +/* 08F75C 7F05AC2C 04A10003 */ bgez $a1, .L7F05AC3C +/* 08F760 7F05AC30 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08F764 7F05AC34 340FFFFF */ li $t7, 65535 +/* 08F768 7F05AC38 01E22023 */ subu $a0, $t7, $v0 +.L7F05AC3C: +/* 08F76C 7F05AC3C 03E00008 */ jr $ra +/* 08F770 7F05AC40 3082FFFF */ andi $v0, $a0, 0xffff +) +#endif + + + + + +#ifdef NONMATCHING +s16 asin(s16) { + +} +#else +GLOBAL_ASM( +.text +glabel asin +/* 08F774 7F05AC44 00042C00 */ sll $a1, $a0, 0x10 +/* 08F778 7F05AC48 00057403 */ sra $t6, $a1, 0x10 +/* 08F77C 7F05AC4C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 08F780 7F05AC50 AFBF0014 */ sw $ra, 0x14($sp) +/* 08F784 7F05AC54 AFA40018 */ sw $a0, 0x18($sp) +/* 08F788 7F05AC58 05C00003 */ bltz $t6, .L7F05AC68 +/* 08F78C 7F05AC5C 01C02825 */ move $a1, $t6 +/* 08F790 7F05AC60 10000002 */ b .L7F05AC6C +/* 08F794 7F05AC64 01C02025 */ move $a0, $t6 +.L7F05AC68: +/* 08F798 7F05AC68 00052023 */ negu $a0, $a1 +.L7F05AC6C: +/* 08F79C 7F05AC6C 0FC16ADC */ jal sub_GAME_7F05AB70 +/* 08F7A0 7F05AC70 A7A5001A */ sh $a1, 0x1a($sp) +/* 08F7A4 7F05AC74 87A5001A */ lh $a1, 0x1a($sp) +/* 08F7A8 7F05AC78 8FBF0014 */ lw $ra, 0x14($sp) +/* 08F7AC 7F05AC7C 24018000 */ li $at, -32768 +/* 08F7B0 7F05AC80 04A00004 */ bltz $a1, .L7F05AC94 +/* 08F7B4 7F05AC84 27BD0018 */ addiu $sp, $sp, 0x18 +/* 08F7B8 7F05AC88 240F7FFF */ li $t7, 32767 +/* 08F7BC 7F05AC8C 10000002 */ b .L7F05AC98 +/* 08F7C0 7F05AC90 01E22023 */ subu $a0, $t7, $v0 +.L7F05AC94: +/* 08F7C4 7F05AC94 00412021 */ addu $a0, $v0, $at +.L7F05AC98: +/* 08F7C8 7F05AC98 00041400 */ sll $v0, $a0, 0x10 +/* 08F7CC 7F05AC9C 0002C403 */ sra $t8, $v0, 0x10 +/* 08F7D0 7F05ACA0 03E00008 */ jr $ra +/* 08F7D4 7F05ACA4 03001025 */ move $v0, $t8 +) +#endif + + + diff --git a/src/game/unk_05ACB0.c b/src/game/unk_05ACB0.c new file mode 100644 index 0000000..e4c9e2b --- /dev/null +++ b/src/game/unk_05ACB0.c @@ -0,0 +1,28 @@ +#include "ultra64.h" + +u16 acos(s16); +s16 asin(s16); + +f32 acosf(f32 cosinef) { + s16 cosines; + if (1.0f <= cosinef) { + cosines = 0x7FFF; + } else if (cosinef <= -1.0f) { + cosines = -0x7FFF; + } else { + cosines = (cosinef * 32767.0f); + } + return (acos(cosines) * 3.1415927f) / 65535.0f; +} + +f32 asinf(f32 sinef) { + s16 sines; + if (1.0f <= sinef) { + sines = 0x7FFF; + } else if (sinef <= -1.0f) { + sines = -0x7FFF; + } else { + sines = (sinef * 32767.0f); + } + return (asin(sines) * 3.1415927f) / 65535.0f; +} diff --git a/src/game/unk_05AE00.c b/src/game/unk_05AE00.c new file mode 100644 index 0000000..856d870 --- /dev/null +++ b/src/game/unk_05AE00.c @@ -0,0 +1,321 @@ +#include "ultra64.h" + +#ifdef NONMATCHING +void sub_GAME_7F05AE00(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05AE00 +/* 08F930 7F05AE00 C4800000 */ lwc1 $f0, ($a0) +/* 08F934 7F05AE04 C4A40000 */ lwc1 $f4, ($a1) +/* 08F938 7F05AE08 44866000 */ mtc1 $a2, $f12 +/* 08F93C 7F05AE0C 46002181 */ sub.s $f6, $f4, $f0 +/* 08F940 7F05AE10 460C3202 */ mul.s $f8, $f6, $f12 +/* 08F944 7F05AE14 46004280 */ add.s $f10, $f8, $f0 +/* 08F948 7F05AE18 E4EA0000 */ swc1 $f10, ($a3) +/* 08F94C 7F05AE1C C4B00004 */ lwc1 $f16, 4($a1) +/* 08F950 7F05AE20 C4820004 */ lwc1 $f2, 4($a0) +/* 08F954 7F05AE24 46028481 */ sub.s $f18, $f16, $f2 +/* 08F958 7F05AE28 460C9102 */ mul.s $f4, $f18, $f12 +/* 08F95C 7F05AE2C 46022180 */ add.s $f6, $f4, $f2 +/* 08F960 7F05AE30 E4E60004 */ swc1 $f6, 4($a3) +/* 08F964 7F05AE34 C4A80008 */ lwc1 $f8, 8($a1) +/* 08F968 7F05AE38 C48E0008 */ lwc1 $f14, 8($a0) +/* 08F96C 7F05AE3C 460E4281 */ sub.s $f10, $f8, $f14 +/* 08F970 7F05AE40 460C5402 */ mul.s $f16, $f10, $f12 +/* 08F974 7F05AE44 460E8480 */ add.s $f18, $f16, $f14 +/* 08F978 7F05AE48 03E00008 */ jr $ra +/* 08F97C 7F05AE4C E4F20008 */ swc1 $f18, 8($a3) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05AE50(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05AE50 +/* 08F980 7F05AE50 C7A40010 */ lwc1 $f4, 0x10($sp) +/* 08F984 7F05AE54 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 08F988 7F05AE58 44819000 */ mtc1 $at, $f18 +/* 08F98C 7F05AE5C 46042082 */ mul.s $f2, $f4, $f4 +/* 08F990 7F05AE60 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 08F994 7F05AE64 44813000 */ mtc1 $at, $f6 +/* 08F998 7F05AE68 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 08F99C 7F05AE6C 44815000 */ mtc1 $at, $f10 +/* 08F9A0 7F05AE70 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 08F9A4 7F05AE74 AFA60008 */ sw $a2, 8($sp) +/* 08F9A8 7F05AE78 46041402 */ mul.s $f16, $f2, $f4 +/* 08F9AC 7F05AE7C AFA7000C */ sw $a3, 0xc($sp) +/* 08F9B0 7F05AE80 46103202 */ mul.s $f8, $f6, $f16 +/* 08F9B4 7F05AE84 00000000 */ nop +/* 08F9B8 7F05AE88 46025182 */ mul.s $f6, $f10, $f2 +/* 08F9BC 7F05AE8C 46064281 */ sub.s $f10, $f8, $f6 +/* 08F9C0 7F05AE90 44814000 */ mtc1 $at, $f8 +/* 08F9C4 7F05AE94 3C01BFC0 */ li $at, 0xBFC00000 # -1.500000 +/* 08F9C8 7F05AE98 46085180 */ add.s $f6, $f10, $f8 +/* 08F9CC 7F05AE9C 46102200 */ add.s $f8, $f4, $f16 +/* 08F9D0 7F05AEA0 46067282 */ mul.s $f10, $f14, $f6 +/* 08F9D4 7F05AEA4 00000000 */ nop +/* 08F9D8 7F05AEA8 46124182 */ mul.s $f6, $f8, $f18 +/* 08F9DC 7F05AEAC 46061201 */ sub.s $f8, $f2, $f6 +/* 08F9E0 7F05AEB0 46086182 */ mul.s $f6, $f12, $f8 +/* 08F9E4 7F05AEB4 460A3200 */ add.s $f8, $f6, $f10 +/* 08F9E8 7F05AEB8 44813000 */ mtc1 $at, $f6 +/* 08F9EC 7F05AEBC 00000000 */ nop +/* 08F9F0 7F05AEC0 46103282 */ mul.s $f10, $f6, $f16 +/* 08F9F4 7F05AEC4 46021180 */ add.s $f6, $f2, $f2 +/* 08F9F8 7F05AEC8 46065280 */ add.s $f10, $f10, $f6 +/* 08F9FC 7F05AECC 46049182 */ mul.s $f6, $f18, $f4 +/* 08FA00 7F05AED0 46065100 */ add.s $f4, $f10, $f6 +/* 08FA04 7F05AED4 C7AA0008 */ lwc1 $f10, 8($sp) +/* 08FA08 7F05AED8 46045182 */ mul.s $f6, $f10, $f4 +/* 08FA0C 7F05AEDC C7A4000C */ lwc1 $f4, 0xc($sp) +/* 08FA10 7F05AEE0 46064280 */ add.s $f10, $f8, $f6 +/* 08FA14 7F05AEE4 46028201 */ sub.s $f8, $f16, $f2 +/* 08FA18 7F05AEE8 46124182 */ mul.s $f6, $f8, $f18 +/* 08FA1C 7F05AEEC 00000000 */ nop +/* 08FA20 7F05AEF0 46062202 */ mul.s $f8, $f4, $f6 +/* 08FA24 7F05AEF4 03E00008 */ jr $ra +/* 08FA28 7F05AEF8 46085000 */ add.s $f0, $f10, $f8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05AEFC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05AEFC +/* 08FA2C 7F05AEFC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 08FA30 7F05AF00 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 08FA34 7F05AF04 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 08FA38 7F05AF08 44813000 */ mtc1 $at, $f6 +/* 08FA3C 7F05AF0C 460C6002 */ mul.s $f0, $f12, $f12 +/* 08FA40 7F05AF10 8FAE003C */ lw $t6, 0x3c($sp) +/* 08FA44 7F05AF14 460C0082 */ mul.s $f2, $f0, $f12 +/* 08FA48 7F05AF18 46001101 */ sub.s $f4, $f2, $f0 +/* 08FA4C 7F05AF1C 46026280 */ add.s $f10, $f12, $f2 +/* 08FA50 7F05AF20 46062202 */ mul.s $f8, $f4, $f6 +/* 08FA54 7F05AF24 44812000 */ mtc1 $at, $f4 +/* 08FA58 7F05AF28 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 08FA5C 7F05AF2C 46045182 */ mul.s $f6, $f10, $f4 +/* 08FA60 7F05AF30 44815000 */ mtc1 $at, $f10 +/* 08FA64 7F05AF34 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 08FA68 7F05AF38 E7A80000 */ swc1 $f8, ($sp) +/* 08FA6C 7F05AF3C 46025102 */ mul.s $f4, $f10, $f2 +/* 08FA70 7F05AF40 46060381 */ sub.s $f14, $f0, $f6 +/* 08FA74 7F05AF44 44813000 */ mtc1 $at, $f6 +/* 08FA78 7F05AF48 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 08FA7C 7F05AF4C 46003282 */ mul.s $f10, $f6, $f0 +/* 08FA80 7F05AF50 460A2181 */ sub.s $f6, $f4, $f10 +/* 08FA84 7F05AF54 44812000 */ mtc1 $at, $f4 +/* 08FA88 7F05AF58 3C01BFC0 */ li $at, 0xBFC00000 # -1.500000 +/* 08FA8C 7F05AF5C 44815000 */ mtc1 $at, $f10 +/* 08FA90 7F05AF60 46043400 */ add.s $f16, $f6, $f4 +/* 08FA94 7F05AF64 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 08FA98 7F05AF68 46025182 */ mul.s $f6, $f10, $f2 +/* 08FA9C 7F05AF6C 46000100 */ add.s $f4, $f0, $f0 +/* 08FAA0 7F05AF70 46043280 */ add.s $f10, $f6, $f4 +/* 08FAA4 7F05AF74 44813000 */ mtc1 $at, $f6 +/* 08FAA8 7F05AF78 00000000 */ nop +/* 08FAAC 7F05AF7C 460C3102 */ mul.s $f4, $f6, $f12 +/* 08FAB0 7F05AF80 C4E60000 */ lwc1 $f6, ($a3) +/* 08FAB4 7F05AF84 46045480 */ add.s $f18, $f10, $f4 +/* 08FAB8 7F05AF88 46083282 */ mul.s $f10, $f6, $f8 +/* 08FABC 7F05AF8C C4840000 */ lwc1 $f4, ($a0) +/* 08FAC0 7F05AF90 46047182 */ mul.s $f6, $f14, $f4 +/* 08FAC4 7F05AF94 C4A40000 */ lwc1 $f4, ($a1) +/* 08FAC8 7F05AF98 46048102 */ mul.s $f4, $f16, $f4 +/* 08FACC 7F05AF9C 46043180 */ add.s $f6, $f6, $f4 +/* 08FAD0 7F05AFA0 C4C40000 */ lwc1 $f4, ($a2) +/* 08FAD4 7F05AFA4 46049102 */ mul.s $f4, $f18, $f4 +/* 08FAD8 7F05AFA8 46043180 */ add.s $f6, $f6, $f4 +/* 08FADC 7F05AFAC 46065100 */ add.s $f4, $f10, $f6 +/* 08FAE0 7F05AFB0 E5C40000 */ swc1 $f4, ($t6) +/* 08FAE4 7F05AFB4 C4EA0004 */ lwc1 $f10, 4($a3) +/* 08FAE8 7F05AFB8 C4840004 */ lwc1 $f4, 4($a0) +/* 08FAEC 7F05AFBC 46085182 */ mul.s $f6, $f10, $f8 +/* 08FAF0 7F05AFC0 00000000 */ nop +/* 08FAF4 7F05AFC4 46047282 */ mul.s $f10, $f14, $f4 +/* 08FAF8 7F05AFC8 C4A40004 */ lwc1 $f4, 4($a1) +/* 08FAFC 7F05AFCC 46048102 */ mul.s $f4, $f16, $f4 +/* 08FB00 7F05AFD0 46045280 */ add.s $f10, $f10, $f4 +/* 08FB04 7F05AFD4 C4C40004 */ lwc1 $f4, 4($a2) +/* 08FB08 7F05AFD8 46049102 */ mul.s $f4, $f18, $f4 +/* 08FB0C 7F05AFDC 46045280 */ add.s $f10, $f10, $f4 +/* 08FB10 7F05AFE0 460A3100 */ add.s $f4, $f6, $f10 +/* 08FB14 7F05AFE4 E5C40004 */ swc1 $f4, 4($t6) +/* 08FB18 7F05AFE8 C4E60008 */ lwc1 $f6, 8($a3) +/* 08FB1C 7F05AFEC C4840008 */ lwc1 $f4, 8($a0) +/* 08FB20 7F05AFF0 46083282 */ mul.s $f10, $f6, $f8 +/* 08FB24 7F05AFF4 C4A80008 */ lwc1 $f8, 8($a1) +/* 08FB28 7F05AFF8 46047182 */ mul.s $f6, $f14, $f4 +/* 08FB2C 7F05AFFC 00000000 */ nop +/* 08FB30 7F05B000 46088102 */ mul.s $f4, $f16, $f8 +/* 08FB34 7F05B004 46043200 */ add.s $f8, $f6, $f4 +/* 08FB38 7F05B008 C4C60008 */ lwc1 $f6, 8($a2) +/* 08FB3C 7F05B00C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 08FB40 7F05B010 46069102 */ mul.s $f4, $f18, $f6 +/* 08FB44 7F05B014 46044180 */ add.s $f6, $f8, $f4 +/* 08FB48 7F05B018 46065200 */ add.s $f8, $f10, $f6 +/* 08FB4C 7F05B01C 03E00008 */ jr $ra +/* 08FB50 7F05B020 E5C80008 */ swc1 $f8, 8($t6) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05B024(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05B024 +/* 08FB54 7F05B024 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 08FB58 7F05B028 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 08FB5C 7F05B02C C7AE003C */ lwc1 $f14, 0x3c($sp) +/* 08FB60 7F05B030 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 08FB64 7F05B034 460C6002 */ mul.s $f0, $f12, $f12 +/* 08FB68 7F05B038 8FAE0040 */ lw $t6, 0x40($sp) +/* 08FB6C 7F05B03C 460C0082 */ mul.s $f2, $f0, $f12 +/* 08FB70 7F05B040 46000200 */ add.s $f8, $f0, $f0 +/* 08FB74 7F05B044 46001101 */ sub.s $f4, $f2, $f0 +/* 08FB78 7F05B048 46026280 */ add.s $f10, $f12, $f2 +/* 08FB7C 7F05B04C 460E2182 */ mul.s $f6, $f4, $f14 +/* 08FB80 7F05B050 460A4101 */ sub.s $f4, $f8, $f10 +/* 08FB84 7F05B054 44814000 */ mtc1 $at, $f8 +/* 08FB88 7F05B058 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 08FB8C 7F05B05C E7A60000 */ swc1 $f6, ($sp) +/* 08FB90 7F05B060 460E4281 */ sub.s $f10, $f8, $f14 +/* 08FB94 7F05B064 460E2402 */ mul.s $f16, $f4, $f14 +/* 08FB98 7F05B068 44814000 */ mtc1 $at, $f8 +/* 08FB9C 7F05B06C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 08FBA0 7F05B070 46025102 */ mul.s $f4, $f10, $f2 +/* 08FBA4 7F05B074 46087281 */ sub.s $f10, $f14, $f8 +/* 08FBA8 7F05B078 460A0202 */ mul.s $f8, $f0, $f10 +/* 08FBAC 7F05B07C 46082280 */ add.s $f10, $f4, $f8 +/* 08FBB0 7F05B080 44812000 */ mtc1 $at, $f4 +/* 08FBB4 7F05B084 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 08FBB8 7F05B088 44814000 */ mtc1 $at, $f8 +/* 08FBBC 7F05B08C 46045480 */ add.s $f18, $f10, $f4 +/* 08FBC0 7F05B090 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 08FBC4 7F05B094 460E7280 */ add.s $f10, $f14, $f14 +/* 08FBC8 7F05B098 460A4101 */ sub.s $f4, $f8, $f10 +/* 08FBCC 7F05B09C 44815000 */ mtc1 $at, $f10 +/* 08FBD0 7F05B0A0 46040202 */ mul.s $f8, $f0, $f4 +/* 08FBD4 7F05B0A4 460A7101 */ sub.s $f4, $f14, $f10 +/* 08FBD8 7F05B0A8 46022282 */ mul.s $f10, $f4, $f2 +/* 08FBDC 7F05B0AC 46085100 */ add.s $f4, $f10, $f8 +/* 08FBE0 7F05B0B0 460E6282 */ mul.s $f10, $f12, $f14 +/* 08FBE4 7F05B0B4 460A2200 */ add.s $f8, $f4, $f10 +/* 08FBE8 7F05B0B8 E7A80008 */ swc1 $f8, 8($sp) +/* 08FBEC 7F05B0BC C4840000 */ lwc1 $f4, ($a0) +/* 08FBF0 7F05B0C0 46048282 */ mul.s $f10, $f16, $f4 +/* 08FBF4 7F05B0C4 C4A40000 */ lwc1 $f4, ($a1) +/* 08FBF8 7F05B0C8 46049102 */ mul.s $f4, $f18, $f4 +/* 08FBFC 7F05B0CC 46045280 */ add.s $f10, $f10, $f4 +/* 08FC00 7F05B0D0 C4C40000 */ lwc1 $f4, ($a2) +/* 08FC04 7F05B0D4 46044102 */ mul.s $f4, $f8, $f4 +/* 08FC08 7F05B0D8 46045280 */ add.s $f10, $f10, $f4 +/* 08FC0C 7F05B0DC C4E40000 */ lwc1 $f4, ($a3) +/* 08FC10 7F05B0E0 46062102 */ mul.s $f4, $f4, $f6 +/* 08FC14 7F05B0E4 460A2100 */ add.s $f4, $f4, $f10 +/* 08FC18 7F05B0E8 E5C40000 */ swc1 $f4, ($t6) +/* 08FC1C 7F05B0EC C48A0004 */ lwc1 $f10, 4($a0) +/* 08FC20 7F05B0F0 460A8102 */ mul.s $f4, $f16, $f10 +/* 08FC24 7F05B0F4 C4AA0004 */ lwc1 $f10, 4($a1) +/* 08FC28 7F05B0F8 460A9282 */ mul.s $f10, $f18, $f10 +/* 08FC2C 7F05B0FC 460A2100 */ add.s $f4, $f4, $f10 +/* 08FC30 7F05B100 C4CA0004 */ lwc1 $f10, 4($a2) +/* 08FC34 7F05B104 460A4282 */ mul.s $f10, $f8, $f10 +/* 08FC38 7F05B108 460A2100 */ add.s $f4, $f4, $f10 +/* 08FC3C 7F05B10C C4EA0004 */ lwc1 $f10, 4($a3) +/* 08FC40 7F05B110 46065282 */ mul.s $f10, $f10, $f6 +/* 08FC44 7F05B114 46045280 */ add.s $f10, $f10, $f4 +/* 08FC48 7F05B118 E5CA0004 */ swc1 $f10, 4($t6) +/* 08FC4C 7F05B11C C4840008 */ lwc1 $f4, 8($a0) +/* 08FC50 7F05B120 46048282 */ mul.s $f10, $f16, $f4 +/* 08FC54 7F05B124 C4A40008 */ lwc1 $f4, 8($a1) +/* 08FC58 7F05B128 46049102 */ mul.s $f4, $f18, $f4 +/* 08FC5C 7F05B12C 46045280 */ add.s $f10, $f10, $f4 +/* 08FC60 7F05B130 C4C40008 */ lwc1 $f4, 8($a2) +/* 08FC64 7F05B134 46044202 */ mul.s $f8, $f8, $f4 +/* 08FC68 7F05B138 46085100 */ add.s $f4, $f10, $f8 +/* 08FC6C 7F05B13C C4EA0008 */ lwc1 $f10, 8($a3) +/* 08FC70 7F05B140 27BD0028 */ addiu $sp, $sp, 0x28 +/* 08FC74 7F05B144 46065202 */ mul.s $f8, $f10, $f6 +/* 08FC78 7F05B148 46044280 */ add.s $f10, $f8, $f4 +/* 08FC7C 7F05B14C 03E00008 */ jr $ra +/* 08FC80 7F05B150 E5CA0008 */ swc1 $f10, 8($t6) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F05B154(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F05B154 +/* 08FC84 7F05B154 C7A40010 */ lwc1 $f4, 0x10($sp) +/* 08FC88 7F05B158 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 08FC8C 7F05B15C 44814000 */ mtc1 $at, $f8 +/* 08FC90 7F05B160 46042082 */ mul.s $f2, $f4, $f4 +/* 08FC94 7F05B164 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 08FC98 7F05B168 AFA60008 */ sw $a2, 8($sp) +/* 08FC9C 7F05B16C AFA7000C */ sw $a3, 0xc($sp) +/* 08FCA0 7F05B170 46041402 */ mul.s $f16, $f2, $f4 +/* 08FCA4 7F05B174 46108180 */ add.s $f6, $f16, $f16 +/* 08FCA8 7F05B178 46024282 */ mul.s $f10, $f8, $f2 +/* 08FCAC 7F05B17C 460A3201 */ sub.s $f8, $f6, $f10 +/* 08FCB0 7F05B180 44813000 */ mtc1 $at, $f6 +/* 08FCB4 7F05B184 00000000 */ nop +/* 08FCB8 7F05B188 46064480 */ add.s $f18, $f8, $f6 +/* 08FCBC 7F05B18C 44814000 */ mtc1 $at, $f8 +/* 08FCC0 7F05B190 00000000 */ nop +/* 08FCC4 7F05B194 46124181 */ sub.s $f6, $f8, $f18 +/* 08FCC8 7F05B198 46126282 */ mul.s $f10, $f12, $f18 +/* 08FCCC 7F05B19C 00000000 */ nop +/* 08FCD0 7F05B1A0 46067202 */ mul.s $f8, $f14, $f6 +/* 08FCD4 7F05B1A4 46085180 */ add.s $f6, $f10, $f8 +/* 08FCD8 7F05B1A8 46021280 */ add.s $f10, $f2, $f2 +/* 08FCDC 7F05B1AC 460A8201 */ sub.s $f8, $f16, $f10 +/* 08FCE0 7F05B1B0 46044280 */ add.s $f10, $f8, $f4 +/* 08FCE4 7F05B1B4 C7A80008 */ lwc1 $f8, 8($sp) +/* 08FCE8 7F05B1B8 460A4102 */ mul.s $f4, $f8, $f10 +/* 08FCEC 7F05B1BC C7AA000C */ lwc1 $f10, 0xc($sp) +/* 08FCF0 7F05B1C0 46043200 */ add.s $f8, $f6, $f4 +/* 08FCF4 7F05B1C4 46028181 */ sub.s $f6, $f16, $f2 +/* 08FCF8 7F05B1C8 46065102 */ mul.s $f4, $f10, $f6 +/* 08FCFC 7F05B1CC 03E00008 */ jr $ra +/* 08FD00 7F05B1D0 46044000 */ add.s $f0, $f8, $f4 +) +#endif + + + + diff --git a/src/game/unk_05B1E0.c b/src/game/unk_05B1E0.c new file mode 100644 index 0000000..54ac9f1 --- /dev/null +++ b/src/game/unk_05B1E0.c @@ -0,0 +1,314 @@ +#include "ultra64.h" + +typedef u16 vec3u[3]; +typedef f32 vec3f[3]; +typedef f32 mat44f[4][4]; +typedef f32 quatf[4]; // w, x, y, z + +float acosf(float); + +#define M_PI 3.1415927f +#define HALF2RAD(x) (x * (M_PI / 32768.0f)) + +void quaternion_set_rotation_around_xyz(vec3u angles, quatf q) { + f32 cos_x = cosf(HALF2RAD(angles[0]) * 0.5f); + f32 sin_x = sinf(HALF2RAD(angles[0]) * 0.5f); + f32 cos_y = cosf(HALF2RAD(angles[1]) * 0.5f); + f32 sin_y = sinf(HALF2RAD(angles[1]) * 0.5f); + f32 cos_z = cosf(HALF2RAD(angles[2]) * 0.5f); + f32 sin_z = sinf(HALF2RAD(angles[2]) * 0.5f); + f32 cos_x_cos_y = cos_x * cos_y; + f32 cos_x_sin_y = cos_x * sin_y; + f32 sin_x_cos_y = sin_x * cos_y; + f32 sin_x_sin_y = sin_x * sin_y; + q[0] = ((cos_x_cos_y * cos_z) + (sin_x_sin_y * sin_z)); + q[1] = ((sin_x_cos_y * cos_z) - (cos_x_sin_y * sin_z)); + q[2] = ((cos_x_sin_y * cos_z) + (sin_x_cos_y * sin_z)); + q[3] = ((cos_x_cos_y * sin_z) - (sin_x_sin_y * cos_z)); +} + +void quaternion_set_rotation_around_xyzf(vec3f angles, quatf q) { + f32 cos_x = cosf(angles[0] * 0.5f); + f32 sin_x = sinf(angles[0] * 0.5f); + f32 cos_y = cosf(angles[1] * 0.5f); + f32 sin_y = sinf(angles[1] * 0.5f); + f32 cos_z = cosf(angles[2] * 0.5f); + f32 sin_z = sinf(angles[2] * 0.5f); + f32 cos_x_cos_y = cos_x * cos_y; + f32 cos_x_sin_y = cos_x * sin_y; + f32 sin_x_cos_y = sin_x * cos_y; + f32 sin_x_sin_y = sin_x * sin_y; + q[0] = (cos_x_cos_y * cos_z) + (sin_x_sin_y * sin_z); + q[1] = (sin_x_cos_y * cos_z) - (cos_x_sin_y * sin_z); + q[2] = (cos_x_sin_y * cos_z) + (sin_x_cos_y * sin_z); + q[3] = (cos_x_cos_y * sin_z) - (sin_x_sin_y * cos_z); +} + +void quaternion_set_rotation_around_x(f32 angle, quatf q) { + q[0] = cosf(angle * 0.5f); + q[1] = sinf(angle * 0.5f); + q[2] = 0.0f; + q[3] = 0.0f; +} + +void quaternion_set_rotation_around_y(f32 angle, quatf q) { + q[0] = cosf(angle * 0.5f); + q[1] = 0.0f; + q[2] = sinf(angle * 0.5f); + q[3] = 0.0f; +} + +void quaternion_set_rotation_around_z(f32 angle, quatf q) { + q[0] = cosf(angle * 0.5f); + q[1] = 0.0f; + q[2] = 0.0f; + q[3] = sinf(angle * 0.5f); +} + +void quaternion_to_matrix(quatf q, mat44f matrix) { + f32 temp_f6 = 2.0f / ((q[0] * q[0]) + (q[1] * q[1]) + (q[2] * q[2]) + (q[3] * q[3])); + f32 temp_f18 = q[1] * temp_f6; + f32 temp_f16 = q[2] * temp_f6; + f32 temp_f14 = q[3] * temp_f6; + f32 sp34 = q[0] * temp_f18; + f32 sp30 = q[0] * temp_f16; + f32 sp2C = q[0] * temp_f14; + f32 sp28 = q[1] * temp_f18; + f32 sp24 = q[1] * temp_f16; + f32 sp20 = q[1] * temp_f14; + f32 sp1C = q[2] * temp_f16; + f32 sp18 = q[2] * temp_f14; + f32 sp14 = q[3] * temp_f14; + matrix[0][0] = (1.0f - (sp1C + sp14)); + matrix[0][1] = (sp24 + sp2C); + matrix[0][2] = (sp20 - sp30); + matrix[1][0] = (sp24 - sp2C); + matrix[1][1] = (1.0f - (sp28 + sp14)); + matrix[1][2] = (sp18 + sp34); + matrix[2][0] = (sp20 + sp30); + matrix[2][1] = (sp18 - sp34); + matrix[2][2] = (1.0f - (sp28 + sp1C)); + matrix[3][0] = 0.0f; + matrix[3][1] = 0.0f; + matrix[3][2] = 0.0f; + matrix[0][3] = 0.0f; + matrix[1][3] = 0.0f; + matrix[2][3] = 0.0f; + matrix[3][3] = 1.0f; +} + +void quaternion_from_matrix(mat44f arg0, quatf arg1) { + f32 var1; + f32 var2; + f32 trace = arg0[0][0] + arg0[1][1] + arg0[2][2] + 1.0f; + if (0.0f < trace) { + var1 = sqrtf(trace); + var2 = 0.5f / var1; + arg1[0] = var1 * 0.5f; + arg1[1] = (arg0[1][2] - arg0[2][1]) * var2; + arg1[2] = (arg0[2][0] - arg0[0][2]) * var2; + arg1[3] = (arg0[0][1] - arg0[1][0]) * var2; + } else { + s32 i; + s32 j; + s32 indices[3] = {1,2,0}; + s32 k; + i = 0; + if (arg0[0][0] < arg0[1][1]) { + i = 1; + } + if (arg0[i][i] < arg0[2][2]) { + i = 2; + } + j = indices[i]; + k = indices[j]; + var1 = sqrtf(arg0[i][i] - arg0[j][j] - arg0[k][k] + 1.0f); + var2 = 0.5f / var1; + arg1[i + 1] = var1 * 0.5f; + arg1[ 0] = (arg0[j][k] - arg0[k][j]) * var2; + arg1[j + 1] = (arg0[i][j] + arg0[j][i]) * var2; + arg1[k + 1] = (arg0[i][k] + arg0[k][i]) * var2; + } +} + +void quaternion_to_transform_matrix(vec3f position, quatf rotation, mat44f matrix) { + quaternion_to_matrix(rotation, matrix); + matrix[3][0] = position[0]; + matrix[3][1] = position[1]; + matrix[3][2] = position[2]; +} + +#define EPSILON 0.00001001f + +void quaternion_slerp(quatf q1, quatf q2, f32 t, quatf result) { + f32 dot = (q1[0] * q2[0]) + (q1[1] * q2[1]) + (q1[2] * q2[2]) + (q1[3] * q2[3]); + f32 theta; + f32 theta_q1; + f32 theta_q2; + f32 sine; + f32 coeff_q1; + f32 coeff_q2; + if (dot < (-1.0f + EPSILON)) { + result[0] = ((1.0f - t) * q1[0]) - (q2[0] * t); + result[1] = ((1.0f - t) * q1[1]) - (q2[1] * t); + result[2] = ((1.0f - t) * q1[2]) - (q2[2] * t); + result[3] = ((1.0f - t) * q1[3]) - (q2[3] * t); + } + else if (dot <= (1.0f - EPSILON)) { + theta = acosf(dot); + theta_q1 = (1.0f - t) * theta; + theta_q2 = t * theta; + sine = sinf(theta); + coeff_q1 = sinf(theta_q1) / sine; + coeff_q2 = sinf(theta_q2) / sine; + result[0] = (coeff_q1 * q1[0]) + (q2[0] * coeff_q2); + result[1] = (coeff_q1 * q1[1]) + (q2[1] * coeff_q2); + result[2] = (coeff_q1 * q1[2]) + (q2[2] * coeff_q2); + result[3] = (coeff_q1 * q1[3]) + (q2[3] * coeff_q2); + } else { + result[0] = ((1.0f - t) * q1[0]) + (q2[0] * t); + result[1] = ((1.0f - t) * q1[1]) + (q2[1] * t); + result[2] = ((1.0f - t) * q1[2]) + (q2[2] * t); + result[3] = ((1.0f - t) * q1[3]) + (q2[3] * t); + } +} + +void quaternion_7F05BC68(quatf q, f32 t, quatf result) { + f32 phi_f12 = q[0]; + f32 phi_f16 = 1.0f; + f32 temp_f0_2; + f32 test2; + f32 temp_f4; + f32 sp20; + f32 temp_f2; + f32 test; + if (q[0] < 0.0f) { + phi_f12 = -phi_f12; + phi_f16 = -phi_f16; + } + if (phi_f12 < -0.99998999f) { + result[0] = (q[0] * t) - ((1.0f - t) * phi_f16); + result[1] = (q[1] * t); + result[2] = (q[2] * t); + result[3] = (q[3] * t); + } else if (phi_f12 <= 0.99998999f) { + temp_f0_2 = acosf(phi_f12); + test2 = t * temp_f0_2; + temp_f4 = (1.0f - t) * temp_f0_2; + sp20 = sinf(temp_f0_2); + temp_f2 = sinf(test2) / sp20; + test = sinf(temp_f4) / sp20; + result[0] = (q[0] * temp_f2) + (test * phi_f16); + result[1] = (q[1] * temp_f2); + result[2] = (q[2] * temp_f2); + result[3] = (q[3] * temp_f2); + } else { + result[0] = (q[0] * t) + ((1.0f - t) * phi_f16); + result[1] = (q[1] * t); + result[2] = (q[2] * t); + result[3] = (q[3] * t); + } +} + +void quaternion_ensure_shortest_path(quatf q1, quatf q2) { + f32 dot = (q1[0] * q2[0]) + (q1[1] * q2[1]) + (q1[2] * q2[2]) + (q1[3] * q2[3]); + if (dot < 0.0f) { + q2[0] = -q2[0]; + q2[1] = -q2[1]; + q2[2] = -q2[2]; + q2[3] = -q2[3]; + } +} + +void quaternion_multiply(quatf lhs, quatf rhs, quatf result) { + result[0] = (lhs[0] * rhs[0]) - (lhs[1] * rhs[1]) - (lhs[2] * rhs[2]) - (lhs[3] * rhs[3]); + result[1] = (lhs[0] * rhs[1]) + (rhs[0] * lhs[1]) + (lhs[2] * rhs[3]) - (lhs[3] * rhs[2]); + result[2] = (lhs[0] * rhs[2]) + (rhs[0] * lhs[2]) + (lhs[3] * rhs[1]) - (lhs[1] * rhs[3]); + result[3] = (lhs[0] * rhs[3]) + (rhs[0] * lhs[3]) + (lhs[1] * rhs[2]) - (lhs[2] * rhs[1]); +} + +void quaternion_multiply_in_place(quatf lhs, quatf rhs) { + quatf result; + quaternion_multiply(lhs, rhs, result); + rhs[0] = result[0]; + rhs[1] = result[1]; + rhs[2] = result[2]; + rhs[3] = result[3]; +} + +void quaternion_7F05BFD4(quatf q1, quatf q2) { + f32 angle = acosf(q1[0]); + f32 sine = sinf(angle); + if (sine == 0.0f) { + q2[0] = 0.0f; + q2[1] = 0.0f; + q2[2] = 0.0f; + q2[3] = 0.0f; + } else { + q2[0] = 0.0f; + q2[1] = (q1[1] * (angle / sine)); + q2[2] = (q1[2] * (angle / sine)); + q2[3] = (q1[3] * (angle / sine)); + } +} + +void quaternion_7F05C068(quatf q1, quatf q2) { + f32 sine; + f32 angle = sqrtf((q1[1] * q1[1]) + (q1[2] * q1[2]) + (q1[3] * q1[3])); + f32 unknown; + if (angle == 0.0f) { + q2[0] = 1.0f; + q2[1] = 0.0f; + q2[2] = 0.0f; + q2[3] = 0.0f; + } else { + sine = sinf(angle); + unknown = sine / angle; + q2[0] = cosf(angle); + q2[1] = (q1[1] * unknown); + q2[2] = (q1[2] * unknown); + q2[3] = (q1[3] * unknown); + } +} + +void quaternion_7F05C138(quatf arg0, quatf arg1, quatf arg2, quatf result) { + quatf conjugate; + quatf sp50; + quatf sp40; + quatf sp30; + quatf sp20; + conjugate[0] = arg1[0]; + conjugate[1] = -arg1[1]; + conjugate[2] = -arg1[2]; + conjugate[3] = -arg1[3]; + quaternion_multiply(conjugate, arg0, sp50); + quaternion_multiply(conjugate, arg2, sp40); + quaternion_7F05BFD4(sp50, sp30); + quaternion_7F05BFD4(sp40, sp20); + sp30[0] = -(sp30[0] + sp20[0]) * 0.25f; + sp30[1] = -(sp30[1] + sp20[1]) * 0.25f; + sp30[2] = -(sp30[2] + sp20[2]) * 0.25f; + sp30[3] = -(sp30[3] + sp20[3]) * 0.25f; + quaternion_7F05C068(sp30, sp50); + quaternion_multiply(arg1, sp50, result); +} + +void quaternion_7F05C250(quatf q1, quatf q2, quatf q3, quatf q4, f32 t, quatf result) { + quatf q5; + quatf q6; + f32 t2 = (t + t) * (1.0f - t); + quaternion_ensure_shortest_path(q1, q4); + quaternion_slerp(q1, q4, t, q5); + quaternion_ensure_shortest_path(q2, q3); + quaternion_slerp(q2, q3, t, q6); + quaternion_ensure_shortest_path(q5, q6); + quaternion_slerp(q5, q6, t2, result); +} + +void quaternion_7F05C2F0(quatf q1, quatf q2, quatf q3, quatf q4, f32 t, quatf result) { + quatf q5; + quatf q6; + quaternion_7F05C138(q1, q2, q3, q5); + quaternion_7F05C138(q2, q3, q4, q6); + quaternion_7F05C250(q2, q5, q6, q3, t, result); +} diff --git a/src/game/unk_05C440.c b/src/game/unk_05C440.c new file mode 100644 index 0000000..3055001 --- /dev/null +++ b/src/game/unk_05C440.c @@ -0,0 +1,36 @@ +#include "ultra64.h" +#include "game/unk_05C440.h" + + +f32 sub_GAME_7F05C440(f32 arg0) +{ + f32 temp_f2; + + if (arg0 <= 0.0f) + { + return (f32) (s32) arg0; + } + temp_f2 = (f32) (s32) arg0; + if (arg0 == temp_f2) + { + return temp_f2; + } + return temp_f2 + 1.0f; +} + + +s32 sub_GAME_7F05C4B8(f32 arg0) +{ + s32 temp_f8; + + if (arg0 <= 0.0f) + { + return (s32) arg0; + } + temp_f8 = (s32) arg0; + if (arg0 == (f32) temp_f8) + { + return temp_f8; + } + return temp_f8 + 1; +} diff --git a/src/game/unk_05C440.h b/src/game/unk_05C440.h new file mode 100644 index 0000000..4ae39d4 --- /dev/null +++ b/src/game/unk_05C440.h @@ -0,0 +1,9 @@ +#ifndef _UNK_05C440_H_ +#define _UNK_05C440_H_ + +#include "ultra64.h" + +f32 sub_GAME_7F05C440(f32 arg0); +s32 sub_GAME_7F05C4B8(f32 arg0); + +#endif diff --git a/src/game/unk_08DBB0.c b/src/game/unk_08DBB0.c new file mode 100644 index 0000000..96a979d --- /dev/null +++ b/src/game/unk_08DBB0.c @@ -0,0 +1,2784 @@ +#include "ultra64.h" +#include "game/lvl.h" +#include "game/unk_093880.h" + +// data +//D:80036AD0 +u32 D_80036AD0 = 0x4144; +u32 D_80036AD4 = 0x41180000; +u32 D_80036AD8 = 0x41D80000; +u32 D_80036ADC = 0; +u32 D_80036AE0 = 0; + +//D:80036AE4 +u32 D_80036AE4 = 0x3FC00000; +u32 D_80036AE8 = 0x4070; +u32 D_80036AEC = 0x40F00000; +u32 D_80036AF0 = 0x41880000; +u32 D_80036AF4 = 0; +//D:80036AF8 +u32 D_80036AF8 = 0x3FC00000; +//D:80036AFC +u32 D_80036AFC = 0x42C80000; + +//D:80036B00 +u32 D_80036B00 = 0; +//D:80036B04 +u32 D_80036B04 = 0; +//D:80036B08 +u32 D_80036B08 = 0; +//D:80036B0C +u32 D_80036B0C = 0; +//D:80036B10 +u32 D_80036B10 = 0; +//D:80036B14 +f32 D_80036B14 = 1.0; +//D:80036B18 +u32 D_80036B18 = 0; +//D:80036B1C +f32 D_80036B1C = 1.0; +//D:80036B20 +u32 D_80036B20 = 0; +//D:80036B24 +u32 D_80036B24 = 0; +//D:80036B28 +u32 D_80036B28 = 1; +//D:80036B2C +u32 D_80036B2C = 3; +//D:80036B30 +u32 D_80036B30[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:80036B60 +u32 D_80036B60 = 0; +//D:80036B64 +u32 D_80036B64 = 0; +//D:80036B68 +u32 D_80036B68 = 0; +//D:80036B6C +u32 D_80036B6C = 0; + + + +// rodata + + + +#ifdef NONMATCHING// +void sub_GAME_7F08DBB0(void) +{ + pPlayer->field_5BC = (pPlayer->field_5BC == 0); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08DBB0 +/* 0C26E0 7F08DBB0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C26E4 7F08DBB4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C26E8 7F08DBB8 806205BC */ lb $v0, 0x5bc($v1) +/* 0C26EC 7F08DBBC 2C4E0001 */ sltiu $t6, $v0, 1 +/* 0C26F0 7F08DBC0 03E00008 */ jr $ra +/* 0C26F4 7F08DBC4 A06E05BC */ sb $t6, 0x5bc($v1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08DBC8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800552E0 +.word 0x3ca3d70a /*0.02*/ +glabel D_800552E4 +.word 0x3ca3d70a /*0.02*/ +glabel D_800552E8 +.word 0x3c23d70a /*0.0099999998*/ +glabel D_800552EC +.word 0xbc23d70a /*-0.0099999998*/ +glabel D_800552F0 +.word 0xbc23d70a /*-0.0099999998*/ +glabel D_800552F4 +.word 0x3c23d70a /*0.0099999998*/ +.text +glabel sub_GAME_7F08DBC8 +/* 0C26F8 7F08DBC8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C26FC 7F08DBCC AFBF002C */ sw $ra, 0x2c($sp) +/* 0C2700 7F08DBD0 AFB20028 */ sw $s2, 0x28($sp) +/* 0C2704 7F08DBD4 AFB10024 */ sw $s1, 0x24($sp) +/* 0C2708 7F08DBD8 AFB00020 */ sw $s0, 0x20($sp) +/* 0C270C 7F08DBDC 0C002914 */ jal get_random_value +/* 0C2710 7F08DBE0 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0C2714 7F08DBE4 44822000 */ mtc1 $v0, $f4 +/* 0C2718 7F08DBE8 3C118008 */ lui $s1, %hi(pPlayer) +/* 0C271C 7F08DBEC 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0C2720 7F08DBF0 4481A000 */ mtc1 $at, $f20 +/* 0C2724 7F08DBF4 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 0C2728 7F08DBF8 8E300000 */ lw $s0, ($s1) +/* 0C272C 7F08DBFC 2412000C */ li $s2, 12 +/* 0C2730 7F08DC00 04410005 */ bgez $v0, .L7F08DC18 +/* 0C2734 7F08DC04 468021A0 */ cvt.s.w $f6, $f4 +/* 0C2738 7F08DC08 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0C273C 7F08DC0C 44814000 */ mtc1 $at, $f8 +/* 0C2740 7F08DC10 00000000 */ nop +/* 0C2744 7F08DC14 46083180 */ add.s $f6, $f6, $f8 +.L7F08DC18: +/* 0C2748 7F08DC18 46143282 */ mul.s $f10, $f6, $f20 +/* 0C274C 7F08DC1C 8E0E0594 */ lw $t6, 0x594($s0) +/* 0C2750 7F08DC20 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C2754 7F08DC24 44818000 */ mtc1 $at, $f16 +/* 0C2758 7F08DC28 01D20019 */ multu $t6, $s2 +/* 0C275C 7F08DC2C 3C018005 */ lui $at, %hi(D_800552E0) +/* 0C2760 7F08DC30 C42452E0 */ lwc1 $f4, %lo(D_800552E0)($at) +/* 0C2764 7F08DC34 46105481 */ sub.s $f18, $f10, $f16 +/* 0C2768 7F08DC38 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C276C 7F08DC3C 44813000 */ mtc1 $at, $f6 +/* 0C2770 7F08DC40 46049202 */ mul.s $f8, $f18, $f4 +/* 0C2774 7F08DC44 00007812 */ mflo $t7 +/* 0C2778 7F08DC48 020FC021 */ addu $t8, $s0, $t7 +/* 0C277C 7F08DC4C E7080564 */ swc1 $f8, 0x564($t8) +/* 0C2780 7F08DC50 8E300000 */ lw $s0, ($s1) +/* 0C2784 7F08DC54 8E190594 */ lw $t9, 0x594($s0) +/* 0C2788 7F08DC58 03320019 */ multu $t9, $s2 +/* 0C278C 7F08DC5C 00004012 */ mflo $t0 +/* 0C2790 7F08DC60 02084821 */ addu $t1, $s0, $t0 +/* 0C2794 7F08DC64 0C002914 */ jal get_random_value +/* 0C2798 7F08DC68 E526056C */ swc1 $f6, 0x56c($t1) +/* 0C279C 7F08DC6C 44825000 */ mtc1 $v0, $f10 +/* 0C27A0 7F08DC70 8E300000 */ lw $s0, ($s1) +/* 0C27A4 7F08DC74 04410005 */ bgez $v0, .L7F08DC8C +/* 0C27A8 7F08DC78 46805420 */ cvt.s.w $f16, $f10 +/* 0C27AC 7F08DC7C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0C27B0 7F08DC80 44819000 */ mtc1 $at, $f18 +/* 0C27B4 7F08DC84 00000000 */ nop +/* 0C27B8 7F08DC88 46128400 */ add.s $f16, $f16, $f18 +.L7F08DC8C: +/* 0C27BC 7F08DC8C 46148102 */ mul.s $f4, $f16, $f20 +/* 0C27C0 7F08DC90 8E0A0594 */ lw $t2, 0x594($s0) +/* 0C27C4 7F08DC94 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C27C8 7F08DC98 44814000 */ mtc1 $at, $f8 +/* 0C27CC 7F08DC9C 01520019 */ multu $t2, $s2 +/* 0C27D0 7F08DCA0 3C018005 */ lui $at, %hi(D_800552E4) +/* 0C27D4 7F08DCA4 C42A52E4 */ lwc1 $f10, %lo(D_800552E4)($at) +/* 0C27D8 7F08DCA8 46082181 */ sub.s $f6, $f4, $f8 +/* 0C27DC 7F08DCAC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C27E0 7F08DCB0 44818000 */ mtc1 $at, $f16 +/* 0C27E4 7F08DCB4 460A3482 */ mul.s $f18, $f6, $f10 +/* 0C27E8 7F08DCB8 00005812 */ mflo $t3 +/* 0C27EC 7F08DCBC 020B6021 */ addu $t4, $s0, $t3 +/* 0C27F0 7F08DCC0 E592057C */ swc1 $f18, 0x57c($t4) +/* 0C27F4 7F08DCC4 8E300000 */ lw $s0, ($s1) +/* 0C27F8 7F08DCC8 8E0D0594 */ lw $t5, 0x594($s0) +/* 0C27FC 7F08DCCC 01B20019 */ multu $t5, $s2 +/* 0C2800 7F08DCD0 00007012 */ mflo $t6 +/* 0C2804 7F08DCD4 020E7821 */ addu $t7, $s0, $t6 +/* 0C2808 7F08DCD8 E5F00580 */ swc1 $f16, 0x580($t7) +/* 0C280C 7F08DCDC 8E380000 */ lw $t8, ($s1) +/* 0C2810 7F08DCE0 8F190594 */ lw $t9, 0x594($t8) +/* 0C2814 7F08DCE4 13200027 */ beqz $t9, .L7F08DD84 +/* 0C2818 7F08DCE8 00000000 */ nop +/* 0C281C 7F08DCEC 0C002914 */ jal get_random_value +/* 0C2820 7F08DCF0 00000000 */ nop +/* 0C2824 7F08DCF4 44822000 */ mtc1 $v0, $f4 +/* 0C2828 7F08DCF8 8E300000 */ lw $s0, ($s1) +/* 0C282C 7F08DCFC 04410005 */ bgez $v0, .L7F08DD14 +/* 0C2830 7F08DD00 46802220 */ cvt.s.w $f8, $f4 +/* 0C2834 7F08DD04 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0C2838 7F08DD08 44813000 */ mtc1 $at, $f6 +/* 0C283C 7F08DD0C 00000000 */ nop +/* 0C2840 7F08DD10 46064200 */ add.s $f8, $f8, $f6 +.L7F08DD14: +/* 0C2844 7F08DD14 8E080594 */ lw $t0, 0x594($s0) +/* 0C2848 7F08DD18 46144282 */ mul.s $f10, $f8, $f20 +/* 0C284C 7F08DD1C 3C018005 */ lui $at, %hi(D_800552E8) +/* 0C2850 7F08DD20 01120019 */ multu $t0, $s2 +/* 0C2854 7F08DD24 C43252E8 */ lwc1 $f18, %lo(D_800552E8)($at) +/* 0C2858 7F08DD28 46125402 */ mul.s $f16, $f10, $f18 +/* 0C285C 7F08DD2C 00004812 */ mflo $t1 +/* 0C2860 7F08DD30 02095021 */ addu $t2, $s0, $t1 +/* 0C2864 7F08DD34 0C002914 */ jal get_random_value +/* 0C2868 7F08DD38 E5500568 */ swc1 $f16, 0x568($t2) +/* 0C286C 7F08DD3C 44822000 */ mtc1 $v0, $f4 +/* 0C2870 7F08DD40 8E300000 */ lw $s0, ($s1) +/* 0C2874 7F08DD44 04410005 */ bgez $v0, .L7F08DD5C +/* 0C2878 7F08DD48 468021A0 */ cvt.s.w $f6, $f4 +/* 0C287C 7F08DD4C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0C2880 7F08DD50 44814000 */ mtc1 $at, $f8 +/* 0C2884 7F08DD54 00000000 */ nop +/* 0C2888 7F08DD58 46083180 */ add.s $f6, $f6, $f8 +.L7F08DD5C: +/* 0C288C 7F08DD5C 8E0B0594 */ lw $t3, 0x594($s0) +/* 0C2890 7F08DD60 46143282 */ mul.s $f10, $f6, $f20 +/* 0C2894 7F08DD64 3C018005 */ lui $at, %hi(D_800552EC) +/* 0C2898 7F08DD68 01720019 */ multu $t3, $s2 +/* 0C289C 7F08DD6C C43252EC */ lwc1 $f18, %lo(D_800552EC)($at) +/* 0C28A0 7F08DD70 46125402 */ mul.s $f16, $f10, $f18 +/* 0C28A4 7F08DD74 00006012 */ mflo $t4 +/* 0C28A8 7F08DD78 020C6821 */ addu $t5, $s0, $t4 +/* 0C28AC 7F08DD7C 10000026 */ b .L7F08DE18 +/* 0C28B0 7F08DD80 E5B00584 */ swc1 $f16, 0x584($t5) +.L7F08DD84: +/* 0C28B4 7F08DD84 0C002914 */ jal get_random_value +/* 0C28B8 7F08DD88 00000000 */ nop +/* 0C28BC 7F08DD8C 44822000 */ mtc1 $v0, $f4 +/* 0C28C0 7F08DD90 8E300000 */ lw $s0, ($s1) +/* 0C28C4 7F08DD94 04410005 */ bgez $v0, .L7F08DDAC +/* 0C28C8 7F08DD98 46802220 */ cvt.s.w $f8, $f4 +/* 0C28CC 7F08DD9C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0C28D0 7F08DDA0 44813000 */ mtc1 $at, $f6 +/* 0C28D4 7F08DDA4 00000000 */ nop +/* 0C28D8 7F08DDA8 46064200 */ add.s $f8, $f8, $f6 +.L7F08DDAC: +/* 0C28DC 7F08DDAC 8E0E0594 */ lw $t6, 0x594($s0) +/* 0C28E0 7F08DDB0 46144282 */ mul.s $f10, $f8, $f20 +/* 0C28E4 7F08DDB4 3C018005 */ lui $at, %hi(D_800552F0) +/* 0C28E8 7F08DDB8 01D20019 */ multu $t6, $s2 +/* 0C28EC 7F08DDBC C43252F0 */ lwc1 $f18, %lo(D_800552F0)($at) +/* 0C28F0 7F08DDC0 46125402 */ mul.s $f16, $f10, $f18 +/* 0C28F4 7F08DDC4 00007812 */ mflo $t7 +/* 0C28F8 7F08DDC8 020FC021 */ addu $t8, $s0, $t7 +/* 0C28FC 7F08DDCC 0C002914 */ jal get_random_value +/* 0C2900 7F08DDD0 E7100568 */ swc1 $f16, 0x568($t8) +/* 0C2904 7F08DDD4 44822000 */ mtc1 $v0, $f4 +/* 0C2908 7F08DDD8 8E300000 */ lw $s0, ($s1) +/* 0C290C 7F08DDDC 04410005 */ bgez $v0, .L7F08DDF4 +/* 0C2910 7F08DDE0 468021A0 */ cvt.s.w $f6, $f4 +/* 0C2914 7F08DDE4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0C2918 7F08DDE8 44814000 */ mtc1 $at, $f8 +/* 0C291C 7F08DDEC 00000000 */ nop +/* 0C2920 7F08DDF0 46083180 */ add.s $f6, $f6, $f8 +.L7F08DDF4: +/* 0C2924 7F08DDF4 8E190594 */ lw $t9, 0x594($s0) +/* 0C2928 7F08DDF8 46143282 */ mul.s $f10, $f6, $f20 +/* 0C292C 7F08DDFC 3C018005 */ lui $at, %hi(D_800552F4) +/* 0C2930 7F08DE00 03320019 */ multu $t9, $s2 +/* 0C2934 7F08DE04 C43252F4 */ lwc1 $f18, %lo(D_800552F4)($at) +/* 0C2938 7F08DE08 46125402 */ mul.s $f16, $f10, $f18 +/* 0C293C 7F08DE0C 00004012 */ mflo $t0 +/* 0C2940 7F08DE10 02084821 */ addu $t1, $s0, $t0 +/* 0C2944 7F08DE14 E5300584 */ swc1 $f16, 0x584($t1) +.L7F08DE18: +/* 0C2948 7F08DE18 8E300000 */ lw $s0, ($s1) +/* 0C294C 7F08DE1C 240B0001 */ li $t3, 1 +/* 0C2950 7F08DE20 8E0A0594 */ lw $t2, 0x594($s0) +/* 0C2954 7F08DE24 016A6023 */ subu $t4, $t3, $t2 +/* 0C2958 7F08DE28 AE0C0594 */ sw $t4, 0x594($s0) +/* 0C295C 7F08DE2C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C2960 7F08DE30 8FB20028 */ lw $s2, 0x28($sp) +/* 0C2964 7F08DE34 8FB10024 */ lw $s1, 0x24($sp) +/* 0C2968 7F08DE38 8FB00020 */ lw $s0, 0x20($sp) +/* 0C296C 7F08DE3C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0C2970 7F08DE40 03E00008 */ jr $ra +/* 0C2974 7F08DE44 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08DE48(struct xyzpoint *param_1) +{ + int i; + + if (pPlayer->field_4DC != 0) + { + (pPlayer->velocity).x = 0.00000000f; + (pPlayer->velocity).y = param_1->y / 0.06999999f; + (pPlayer->velocity).z = 0.00000000f; + pPlayer->field_4DC = 0; + } + for (i = 0; i < clock_timer; ++i) + { + //wrong register allocation for mult + (pPlayer->velocity).x = param_1->x + ((pPlayer->velocity).x * 0.93f); + (pPlayer->velocity).y = param_1->y + ((pPlayer->velocity).y * 0.93f); + (pPlayer->velocity).z = param_1->z + ((pPlayer->velocity).z * 0.93f); + } + (pPlayer->scaled_velocity).x = (pPlayer->velocity).x * 0.06999999f; + (pPlayer->scaled_velocity).y = (pPlayer->velocity).y * 0.06999999f; + (pPlayer->scaled_velocity).z = (pPlayer->velocity).z * 0.06999999f; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800552F8 +.word 0x3d8f5c28 /*0.069999993*/ +glabel master_player_perspective +.word 0x3d8f5c28 /*0.069999993*/ +glabel D_80055300 +.word 0x3f6e147b /*0.93000001*/ +.text +glabel sub_GAME_7F08DE48 +/* 0C2978 7F08DE48 3C058008 */ lui $a1, %hi(pPlayer) +/* 0C297C 7F08DE4C 24A5A0B0 */ addiu $a1, %lo(pPlayer) # addiu $a1, $a1, -0x5f50 +/* 0C2980 7F08DE50 8CA20000 */ lw $v0, ($a1) +/* 0C2984 7F08DE54 3C068005 */ lui $a2, %hi(clock_timer) +/* 0C2988 7F08DE58 24C68374 */ addiu $a2, %lo(clock_timer) # addiu $a2, $a2, -0x7c8c +/* 0C298C 7F08DE5C 8C4E04DC */ lw $t6, 0x4dc($v0) +/* 0C2990 7F08DE60 51C0000E */ beql $t6, $zero, .L7F08DE9C +/* 0C2994 7F08DE64 8CC80000 */ lw $t0, ($a2) +/* 0C2998 7F08DE68 44800000 */ mtc1 $zero, $f0 +/* 0C299C 7F08DE6C 3C018005 */ lui $at, %hi(D_800552F8) +/* 0C29A0 7F08DE70 C42252F8 */ lwc1 $f2, %lo(D_800552F8)($at) +/* 0C29A4 7F08DE74 E4400520 */ swc1 $f0, 0x520($v0) +/* 0C29A8 7F08DE78 C4840004 */ lwc1 $f4, 4($a0) +/* 0C29AC 7F08DE7C 8CAF0000 */ lw $t7, ($a1) +/* 0C29B0 7F08DE80 46022183 */ div.s $f6, $f4, $f2 +/* 0C29B4 7F08DE84 E5E60524 */ swc1 $f6, 0x524($t7) +/* 0C29B8 7F08DE88 8CB80000 */ lw $t8, ($a1) +/* 0C29BC 7F08DE8C E7000528 */ swc1 $f0, 0x528($t8) +/* 0C29C0 7F08DE90 8CB90000 */ lw $t9, ($a1) +/* 0C29C4 7F08DE94 AF2004DC */ sw $zero, 0x4dc($t9) +/* 0C29C8 7F08DE98 8CC80000 */ lw $t0, ($a2) +.L7F08DE9C: +/* 0C29CC 7F08DE9C 3C018005 */ lui $at, %hi(master_player_perspective) +/* 0C29D0 7F08DEA0 C42252FC */ lwc1 $f2, %lo(master_player_perspective)($at) +/* 0C29D4 7F08DEA4 1900001A */ blez $t0, .L7F08DF10 +/* 0C29D8 7F08DEA8 00001825 */ move $v1, $zero +/* 0C29DC 7F08DEAC 3C018005 */ lui $at, %hi(D_80055300) +/* 0C29E0 7F08DEB0 C4205300 */ lwc1 $f0, %lo(D_80055300)($at) +/* 0C29E4 7F08DEB4 8CA20000 */ lw $v0, ($a1) +.L7F08DEB8: +/* 0C29E8 7F08DEB8 C4880000 */ lwc1 $f8, ($a0) +/* 0C29EC 7F08DEBC 24630001 */ addiu $v1, $v1, 1 +/* 0C29F0 7F08DEC0 C44A0520 */ lwc1 $f10, 0x520($v0) +/* 0C29F4 7F08DEC4 460A0402 */ mul.s $f16, $f0, $f10 +/* 0C29F8 7F08DEC8 46104480 */ add.s $f18, $f8, $f16 +/* 0C29FC 7F08DECC E4520520 */ swc1 $f18, 0x520($v0) +/* 0C2A00 7F08DED0 8CA20000 */ lw $v0, ($a1) +/* 0C2A04 7F08DED4 C4840004 */ lwc1 $f4, 4($a0) +/* 0C2A08 7F08DED8 C4460524 */ lwc1 $f6, 0x524($v0) +/* 0C2A0C 7F08DEDC 46060282 */ mul.s $f10, $f0, $f6 +/* 0C2A10 7F08DEE0 460A2200 */ add.s $f8, $f4, $f10 +/* 0C2A14 7F08DEE4 E4480524 */ swc1 $f8, 0x524($v0) +/* 0C2A18 7F08DEE8 8CA20000 */ lw $v0, ($a1) +/* 0C2A1C 7F08DEEC C4900008 */ lwc1 $f16, 8($a0) +/* 0C2A20 7F08DEF0 C4520528 */ lwc1 $f18, 0x528($v0) +/* 0C2A24 7F08DEF4 46120182 */ mul.s $f6, $f0, $f18 +/* 0C2A28 7F08DEF8 46068100 */ add.s $f4, $f16, $f6 +/* 0C2A2C 7F08DEFC E4440528 */ swc1 $f4, 0x528($v0) +/* 0C2A30 7F08DF00 8CC90000 */ lw $t1, ($a2) +/* 0C2A34 7F08DF04 0069082A */ slt $at, $v1, $t1 +/* 0C2A38 7F08DF08 5420FFEB */ bnezl $at, .L7F08DEB8 +/* 0C2A3C 7F08DF0C 8CA20000 */ lw $v0, ($a1) +.L7F08DF10: +/* 0C2A40 7F08DF10 8CA20000 */ lw $v0, ($a1) +/* 0C2A44 7F08DF14 C44A0520 */ lwc1 $f10, 0x520($v0) +/* 0C2A48 7F08DF18 46025202 */ mul.s $f8, $f10, $f2 +/* 0C2A4C 7F08DF1C E44804FC */ swc1 $f8, 0x4fc($v0) +/* 0C2A50 7F08DF20 8CA20000 */ lw $v0, ($a1) +/* 0C2A54 7F08DF24 C4520524 */ lwc1 $f18, 0x524($v0) +/* 0C2A58 7F08DF28 46029402 */ mul.s $f16, $f18, $f2 +/* 0C2A5C 7F08DF2C E4500500 */ swc1 $f16, 0x500($v0) +/* 0C2A60 7F08DF30 8CA20000 */ lw $v0, ($a1) +/* 0C2A64 7F08DF34 C4460528 */ lwc1 $f6, 0x528($v0) +/* 0C2A68 7F08DF38 46023102 */ mul.s $f4, $f6, $f2 +/* 0C2A6C 7F08DF3C 03E00008 */ jr $ra +/* 0C2A70 7F08DF40 E4440504 */ swc1 $f4, 0x504($v0) +) +#endif + + + + + + +void sub_GAME_7F08DF44(struct xyzpoint *param_1, struct xyzpoint *param_2) +{ + int i; + + if (pPlayer->field_4E0 != 0) + { + (pPlayer->field_52C).x = param_1->x / (1.0f - pPlayer->field_4EC); + (pPlayer->field_52C).y = param_1->y / (1.0f - pPlayer->field_4EC); + (pPlayer->field_52C).z = param_1->z / (1.0f - pPlayer->field_4EC); + (pPlayer->field_538).x = param_2->x / (1.0f - pPlayer->field_4EC); + (pPlayer->field_538).y = param_2->y / (1.0f - pPlayer->field_4EC); + (pPlayer->field_538).z = param_2->z / (1.0f - pPlayer->field_4EC); + pPlayer->field_4E0 = 0; + } + + for (i = 0; i < clock_timer; ++i) + { + (pPlayer->field_52C).x = param_1->x + pPlayer->field_4EC * (pPlayer->field_52C).x; + (pPlayer->field_52C).y = param_1->y + pPlayer->field_4EC * (pPlayer->field_52C).y; + (pPlayer->field_52C).z = param_1->z + pPlayer->field_4EC * (pPlayer->field_52C).z; + (pPlayer->field_538).x = param_2->x + pPlayer->field_4EC * (pPlayer->field_538).x; + (pPlayer->field_538).y = param_2->y + pPlayer->field_4EC * (pPlayer->field_538).y; + (pPlayer->field_538).z = param_2->z + pPlayer->field_4EC * (pPlayer->field_538).z; + } + + (pPlayer->field_508).x = (pPlayer->field_52C).x * (1.0f - pPlayer->field_4EC); + (pPlayer->field_508).y = (pPlayer->field_52C).y * (1.0f - pPlayer->field_4EC); + (pPlayer->field_508).z = (pPlayer->field_52C).z * (1.0f - pPlayer->field_4EC); + (pPlayer->field_514).x = (pPlayer->field_538).x * (1.0f - pPlayer->field_4EC); + (pPlayer->field_514).y = (pPlayer->field_538).y * (1.0f - pPlayer->field_4EC); + (pPlayer->field_514).z = (pPlayer->field_538).z * (1.0f - pPlayer->field_4EC); + +} + + +void sub_GAME_7F08E164(float param_1) +{ + float fVar1; + + if (param_1 != pPlayer->field_4EC) { + fVar1 = 1.0f - param_1; + (pPlayer->field_52C).x = ((pPlayer->field_52C).x * (1.0f - pPlayer->field_4EC)) / fVar1; + (pPlayer->field_52C).y = ((pPlayer->field_52C).y * (1.0f - pPlayer->field_4EC)) / fVar1; + (pPlayer->field_52C).z = ((pPlayer->field_52C).z * (1.0f - pPlayer->field_4EC)) / fVar1; + + (pPlayer->field_538).x = ((pPlayer->field_538).x * (1.0f - pPlayer->field_4EC)) / fVar1; + (pPlayer->field_538).y = ((pPlayer->field_538).y * (1.0f - pPlayer->field_4EC)) / fVar1; + (pPlayer->field_538).z = ((pPlayer->field_538).z * (1.0f - pPlayer->field_4EC)) / fVar1; + pPlayer->field_4EC = param_1; + } +} + + + + +#ifdef NONMATCHING +void sub_GAME_7F08E240(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055304 +.word 0x3f333333 /*0.69999999*/ +glabel D_80055308 +.word 0x3dcccccd /*0.1*/ +glabel D_8005530C +.word 0x3f19999a /*0.60000002*/ +glabel D_80055310 +.word 0x3f199999 /*0.59999996*/ +glabel D_80055314 +.word 0x3ecccccd /*0.40000001*/ +glabel D_80055318 +.word 0x3ecccccd /*0.40000001*/ +glabel D_8005531C +.word 0x3f666666 /*0.89999998*/ +glabel D_80055320 +.word 0x3f6e147b /*0.93000001*/ +glabel D_80055324 +.word 0x3f7d70a4 /*0.99000001*/ +glabel D_80055328 +.word 0x3f59999a /*0.85000002*/ +glabel D_8005532C +.word 0x3f7d70a4 /*0.99000001*/ +glabel D_80055330 +.word 0x3c088889 /*0.0083333338*/ +glabel D_80055334 +.word 0x3cccccce /*0.025000002*/ +.text +glabel sub_GAME_7F08E240 +/* 0C2D70 7F08E240 27BDFF18 */ addiu $sp, $sp, -0xe8 +/* 0C2D74 7F08E244 3C0F8003 */ lui $t7, %hi(D_80036B00) +/* 0C2D78 7F08E248 AFBF001C */ sw $ra, 0x1c($sp) +/* 0C2D7C 7F08E24C AFB00018 */ sw $s0, 0x18($sp) +/* 0C2D80 7F08E250 E7AC00E8 */ swc1 $f12, 0xe8($sp) +/* 0C2D84 7F08E254 E7AE00EC */ swc1 $f14, 0xec($sp) +/* 0C2D88 7F08E258 25EF6B00 */ addiu $t7, %lo(D_80036B00) # addiu $t7, $t7, 0x6b00 +/* 0C2D8C 7F08E25C 8DE10000 */ lw $at, ($t7) +/* 0C2D90 7F08E260 27AE00DC */ addiu $t6, $sp, 0xdc +/* 0C2D94 7F08E264 8DE80004 */ lw $t0, 4($t7) +/* 0C2D98 7F08E268 ADC10000 */ sw $at, ($t6) +/* 0C2D9C 7F08E26C 8DE10008 */ lw $at, 8($t7) +/* 0C2DA0 7F08E270 3C0A8003 */ lui $t2, %hi(D_80036B0C) +/* 0C2DA4 7F08E274 254A6B0C */ addiu $t2, %lo(D_80036B0C) # addiu $t2, $t2, 0x6b0c +/* 0C2DA8 7F08E278 ADC80004 */ sw $t0, 4($t6) +/* 0C2DAC 7F08E27C ADC10008 */ sw $at, 8($t6) +/* 0C2DB0 7F08E280 8D410000 */ lw $at, ($t2) +/* 0C2DB4 7F08E284 27A900D0 */ addiu $t1, $sp, 0xd0 +/* 0C2DB8 7F08E288 8D4D0004 */ lw $t5, 4($t2) +/* 0C2DBC 7F08E28C AD210000 */ sw $at, ($t1) +/* 0C2DC0 7F08E290 8D410008 */ lw $at, 8($t2) +/* 0C2DC4 7F08E294 3C188003 */ lui $t8, %hi(D_80036B18) +/* 0C2DC8 7F08E298 27186B18 */ addiu $t8, %lo(D_80036B18) # addiu $t8, $t8, 0x6b18 +/* 0C2DCC 7F08E29C AD2D0004 */ sw $t5, 4($t1) +/* 0C2DD0 7F08E2A0 AD210008 */ sw $at, 8($t1) +/* 0C2DD4 7F08E2A4 8F010000 */ lw $at, ($t8) +/* 0C2DD8 7F08E2A8 27B900C4 */ addiu $t9, $sp, 0xc4 +/* 0C2DDC 7F08E2AC 8F080004 */ lw $t0, 4($t8) +/* 0C2DE0 7F08E2B0 AF210000 */ sw $at, ($t9) +/* 0C2DE4 7F08E2B4 8F010008 */ lw $at, 8($t8) +/* 0C2DE8 7F08E2B8 3C108008 */ lui $s0, %hi(pPlayer) +/* 0C2DEC 7F08E2BC 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 0C2DF0 7F08E2C0 AF280004 */ sw $t0, 4($t9) +/* 0C2DF4 7F08E2C4 AF210008 */ sw $at, 8($t9) +/* 0C2DF8 7F08E2C8 8E040000 */ lw $a0, ($s0) +/* 0C2DFC 7F08E2CC 0FC1BD86 */ jal sub_GAME_7F06F618 +/* 0C2E00 7F08E2D0 24840598 */ addiu $a0, $a0, 0x598 +/* 0C2E04 7F08E2D4 8E020000 */ lw $v0, ($s0) +/* 0C2E08 7F08E2D8 E7A000C0 */ swc1 $f0, 0xc0($sp) +/* 0C2E0C 7F08E2DC 3C098003 */ lui $t1, %hi(D_80036B24) +/* 0C2E10 7F08E2E0 8C4304E8 */ lw $v1, 0x4e8($v0) +/* 0C2E14 7F08E2E4 25296B24 */ addiu $t1, %lo(D_80036B24) # addiu $t1, $t1, 0x6b24 +/* 0C2E18 7F08E2E8 252D003C */ addiu $t5, $t1, 0x3c +/* 0C2E1C 7F08E2EC 14600024 */ bnez $v1, .L7F08E380 +/* 0C2E20 7F08E2F0 27AB0080 */ addiu $t3, $sp, 0x80 +/* 0C2E24 7F08E2F4 3C018005 */ lui $at, %hi(D_80055304) +/* 0C2E28 7F08E2F8 C4245304 */ lwc1 $f4, %lo(D_80055304)($at) +/* 0C2E2C 7F08E2FC 3C018005 */ lui $at, %hi(D_80055308) +/* 0C2E30 7F08E300 4600203C */ c.lt.s $f4, $f0 +/* 0C2E34 7F08E304 00000000 */ nop +/* 0C2E38 7F08E308 45000005 */ bc1f .L7F08E320 +/* 0C2E3C 7F08E30C 00000000 */ nop +/* 0C2E40 7F08E310 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C2E44 7F08E314 44813000 */ mtc1 $at, $f6 +/* 0C2E48 7F08E318 10000015 */ b .L7F08E370 +/* 0C2E4C 7F08E31C E44604F4 */ swc1 $f6, 0x4f4($v0) +.L7F08E320: +/* 0C2E50 7F08E320 C4225308 */ lwc1 $f2, %lo(D_80055308)($at) +/* 0C2E54 7F08E324 3C018005 */ lui $at, %hi(D_80055318) +/* 0C2E58 7F08E328 4600103C */ c.lt.s $f2, $f0 +/* 0C2E5C 7F08E32C 00000000 */ nop +/* 0C2E60 7F08E330 4500000D */ bc1f .L7F08E368 +/* 0C2E64 7F08E334 00000000 */ nop +/* 0C2E68 7F08E338 46020201 */ sub.s $f8, $f0, $f2 +/* 0C2E6C 7F08E33C 3C018005 */ lui $at, %hi(D_8005530C) +/* 0C2E70 7F08E340 C42A530C */ lwc1 $f10, %lo(D_8005530C)($at) +/* 0C2E74 7F08E344 3C018005 */ lui $at, %hi(D_80055310) +/* 0C2E78 7F08E348 C4325310 */ lwc1 $f18, %lo(D_80055310)($at) +/* 0C2E7C 7F08E34C 460A4402 */ mul.s $f16, $f8, $f10 +/* 0C2E80 7F08E350 3C018005 */ lui $at, %hi(D_80055318) +/* 0C2E84 7F08E354 C4265314 */ lwc1 $f6, %lo(D_80055314)($at) +/* 0C2E88 7F08E358 46128103 */ div.s $f4, $f16, $f18 +/* 0C2E8C 7F08E35C 46062200 */ add.s $f8, $f4, $f6 +/* 0C2E90 7F08E360 10000003 */ b .L7F08E370 +/* 0C2E94 7F08E364 E44804F4 */ swc1 $f8, 0x4f4($v0) +.L7F08E368: +/* 0C2E98 7F08E368 C42A5318 */ lwc1 $f10, %lo(D_80055318)($at) +/* 0C2E9C 7F08E36C E44A04F4 */ swc1 $f10, 0x4f4($v0) +.L7F08E370: +/* 0C2EA0 7F08E370 8E020000 */ lw $v0, ($s0) +/* 0C2EA4 7F08E374 C45004F4 */ lwc1 $f16, 0x4f4($v0) +/* 0C2EA8 7F08E378 10000012 */ b .L7F08E3C4 +/* 0C2EAC 7F08E37C E45004F8 */ swc1 $f16, 0x4f8($v0) +.L7F08E380: +/* 0C2EB0 7F08E380 24010001 */ li $at, 1 +/* 0C2EB4 7F08E384 14610008 */ bne $v1, $at, .L7F08E3A8 +/* 0C2EB8 7F08E388 3C018005 */ lui $at, %hi(D_8005531C) +/* 0C2EBC 7F08E38C C432531C */ lwc1 $f18, %lo(D_8005531C)($at) +/* 0C2EC0 7F08E390 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C2EC4 7F08E394 44812000 */ mtc1 $at, $f4 +/* 0C2EC8 7F08E398 E45204F4 */ swc1 $f18, 0x4f4($v0) +/* 0C2ECC 7F08E39C 8E0C0000 */ lw $t4, ($s0) +/* 0C2ED0 7F08E3A0 10000008 */ b .L7F08E3C4 +/* 0C2ED4 7F08E3A4 E58404F8 */ swc1 $f4, 0x4f8($t4) +.L7F08E3A8: +/* 0C2ED8 7F08E3A8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C2EDC 7F08E3AC 44813000 */ mtc1 $at, $f6 +/* 0C2EE0 7F08E3B0 00000000 */ nop +/* 0C2EE4 7F08E3B4 E44604F4 */ swc1 $f6, 0x4f4($v0) +/* 0C2EE8 7F08E3B8 8E020000 */ lw $v0, ($s0) +/* 0C2EEC 7F08E3BC C44804F4 */ lwc1 $f8, 0x4f4($v0) +/* 0C2EF0 7F08E3C0 E44804F8 */ swc1 $f8, 0x4f8($v0) +.L7F08E3C4: +/* 0C2EF4 7F08E3C4 8D210000 */ lw $at, ($t1) +/* 0C2EF8 7F08E3C8 2529000C */ addiu $t1, $t1, 0xc +/* 0C2EFC 7F08E3CC 256B000C */ addiu $t3, $t3, 0xc +/* 0C2F00 7F08E3D0 AD61FFF4 */ sw $at, -0xc($t3) +/* 0C2F04 7F08E3D4 8D21FFF8 */ lw $at, -8($t1) +/* 0C2F08 7F08E3D8 AD61FFF8 */ sw $at, -8($t3) +/* 0C2F0C 7F08E3DC 8D21FFFC */ lw $at, -4($t1) +/* 0C2F10 7F08E3E0 152DFFF8 */ bne $t1, $t5, .L7F08E3C4 +/* 0C2F14 7F08E3E4 AD61FFFC */ sw $at, -4($t3) +/* 0C2F18 7F08E3E8 8D210000 */ lw $at, ($t1) +/* 0C2F1C 7F08E3EC 3C0E8003 */ lui $t6, %hi(D_80036B64) +/* 0C2F20 7F08E3F0 25CE6B64 */ addiu $t6, %lo(D_80036B64) # addiu $t6, $t6, 0x6b64 +/* 0C2F24 7F08E3F4 AD610000 */ sw $at, ($t3) +/* 0C2F28 7F08E3F8 8DC10000 */ lw $at, ($t6) +/* 0C2F2C 7F08E3FC 27AF0034 */ addiu $t7, $sp, 0x34 +/* 0C2F30 7F08E400 8DD80004 */ lw $t8, 4($t6) +/* 0C2F34 7F08E404 ADE10000 */ sw $at, ($t7) +/* 0C2F38 7F08E408 8DC10008 */ lw $at, 8($t6) +/* 0C2F3C 7F08E40C ADF80004 */ sw $t8, 4($t7) +/* 0C2F40 7F08E410 0FC1C078 */ jal sub_GAME_7F0701E0 +/* 0C2F44 7F08E414 ADE10008 */ sw $at, 8($t7) +/* 0C2F48 7F08E418 8E080000 */ lw $t0, ($s0) +/* 0C2F4C 7F08E41C AFA20030 */ sw $v0, 0x30($sp) +/* 0C2F50 7F08E420 00002025 */ move $a0, $zero +/* 0C2F54 7F08E424 0FC1C075 */ jal sub_GAME_7F0701D4 +/* 0C2F58 7F08E428 AD0004E4 */ sw $zero, 0x4e4($t0) +/* 0C2F5C 7F08E42C 8E040000 */ lw $a0, ($s0) +/* 0C2F60 7F08E430 3C058005 */ lui $a1, %hi(clock_timer) +/* 0C2F64 7F08E434 8CA58374 */ lw $a1, %lo(clock_timer)($a1) +/* 0C2F68 7F08E438 24060001 */ li $a2, 1 +/* 0C2F6C 7F08E43C 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 0C2F70 7F08E440 24840598 */ addiu $a0, $a0, 0x598 +/* 0C2F74 7F08E444 0FC1C075 */ jal sub_GAME_7F0701D4 +/* 0C2F78 7F08E448 8FA40030 */ lw $a0, 0x30($sp) +/* 0C2F7C 7F08E44C 8E040000 */ lw $a0, ($s0) +/* 0C2F80 7F08E450 0FC1B5AC */ jal subcalcpos +/* 0C2F84 7F08E454 24840598 */ addiu $a0, $a0, 0x598 +/* 0C2F88 7F08E458 0FC15FF4 */ jal matrix_4x4_set_identity +/* 0C2F8C 7F08E45C 27A40040 */ addiu $a0, $sp, 0x40 +/* 0C2F90 7F08E460 8E020000 */ lw $v0, ($s0) +/* 0C2F94 7F08E464 27AC0040 */ addiu $t4, $sp, 0x40 +/* 0C2F98 7F08E468 AFAC0080 */ sw $t4, 0x80($sp) +/* 0C2F9C 7F08E46C 244A06D0 */ addiu $t2, $v0, 0x6d0 +/* 0C2FA0 7F08E470 AFAA0090 */ sw $t2, 0x90($sp) +/* 0C2FA4 7F08E474 27A40080 */ addiu $a0, $sp, 0x80 +/* 0C2FA8 7F08E478 0FC1BCBE */ jal subcalcmatrices +/* 0C2FAC 7F08E47C 24450598 */ addiu $a1, $v0, 0x598 +/* 0C2FB0 7F08E480 8E020000 */ lw $v0, ($s0) +/* 0C2FB4 7F08E484 27A50034 */ addiu $a1, $sp, 0x34 +/* 0C2FB8 7F08E488 C44A0554 */ lwc1 $f10, 0x554($v0) +/* 0C2FBC 7F08E48C E44A0544 */ swc1 $f10, 0x544($v0) +/* 0C2FC0 7F08E490 8E020000 */ lw $v0, ($s0) +/* 0C2FC4 7F08E494 C4500558 */ lwc1 $f16, 0x558($v0) +/* 0C2FC8 7F08E498 E4500548 */ swc1 $f16, 0x548($v0) +/* 0C2FCC 7F08E49C 8E020000 */ lw $v0, ($s0) +/* 0C2FD0 7F08E4A0 C452055C */ lwc1 $f18, 0x55c($v0) +/* 0C2FD4 7F08E4A4 E452054C */ swc1 $f18, 0x54c($v0) +/* 0C2FD8 7F08E4A8 8E040000 */ lw $a0, ($s0) +/* 0C2FDC 7F08E4AC 0FC1B2E6 */ jal getsuboffset +/* 0C2FE0 7F08E4B0 24840598 */ addiu $a0, $a0, 0x598 +/* 0C2FE4 7F08E4B4 8E020000 */ lw $v0, ($s0) +/* 0C2FE8 7F08E4B8 C7A40034 */ lwc1 $f4, 0x34($sp) +/* 0C2FEC 7F08E4BC C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 0C2FF0 7F08E4C0 C4460700 */ lwc1 $f6, 0x700($v0) +/* 0C2FF4 7F08E4C4 27A50034 */ addiu $a1, $sp, 0x34 +/* 0C2FF8 7F08E4C8 24440598 */ addiu $a0, $v0, 0x598 +/* 0C2FFC 7F08E4CC 46062201 */ sub.s $f8, $f4, $f6 +/* 0C3000 7F08E4D0 E7A80034 */ swc1 $f8, 0x34($sp) +/* 0C3004 7F08E4D4 C4500708 */ lwc1 $f16, 0x708($v0) +/* 0C3008 7F08E4D8 46105481 */ sub.s $f18, $f10, $f16 +/* 0C300C 7F08E4DC 0FC1B303 */ jal setsuboffset +/* 0C3010 7F08E4E0 E7B2003C */ swc1 $f18, 0x3c($sp) +/* 0C3014 7F08E4E4 44800000 */ mtc1 $zero, $f0 +/* 0C3018 7F08E4E8 C7A400C0 */ lwc1 $f4, 0xc0($sp) +/* 0C301C 7F08E4EC 4604003C */ c.lt.s $f0, $f4 +/* 0C3020 7F08E4F0 00000000 */ nop +/* 0C3024 7F08E4F4 45020071 */ bc1fl .L7F08E6BC +/* 0C3028 7F08E4F8 8E020000 */ lw $v0, ($s0) +/* 0C302C 7F08E4FC 8E020000 */ lw $v0, ($s0) +/* 0C3030 7F08E500 C7A800EC */ lwc1 $f8, 0xec($sp) +/* 0C3034 7F08E504 3C048005 */ lui $a0, %hi(clock_timer) +/* 0C3038 7F08E508 C4460700 */ lwc1 $f6, 0x700($v0) +/* 0C303C 7F08E50C 24848374 */ addiu $a0, %lo(clock_timer) # addiu $a0, $a0, -0x7c8c +/* 0C3040 7F08E510 3C038005 */ lui $v1, %hi(global_timer_delta) +/* 0C3044 7F08E514 46083280 */ add.s $f10, $f6, $f8 +/* 0C3048 7F08E518 E44A0700 */ swc1 $f10, 0x700($v0) +/* 0C304C 7F08E51C 8E020000 */ lw $v0, ($s0) +/* 0C3050 7F08E520 C7B200E8 */ lwc1 $f18, 0xe8($sp) +/* 0C3054 7F08E524 C4500708 */ lwc1 $f16, 0x708($v0) +/* 0C3058 7F08E528 46128102 */ mul.s $f4, $f16, $f18 +/* 0C305C 7F08E52C E4440708 */ swc1 $f4, 0x708($v0) +/* 0C3060 7F08E530 8C8D0000 */ lw $t5, ($a0) +/* 0C3064 7F08E534 59A0000D */ blezl $t5, .L7F08E56C +/* 0C3068 7F08E538 8E020000 */ lw $v0, ($s0) +/* 0C306C 7F08E53C 8E020000 */ lw $v0, ($s0) +/* 0C3070 7F08E540 24638378 */ addiu $v1, %lo(global_timer_delta) # addiu $v1, $v1, -0x7c88 +/* 0C3074 7F08E544 C4680000 */ lwc1 $f8, ($v1) +/* 0C3078 7F08E548 C4460700 */ lwc1 $f6, 0x700($v0) +/* 0C307C 7F08E54C 46083283 */ div.s $f10, $f6, $f8 +/* 0C3080 7F08E550 E44A0700 */ swc1 $f10, 0x700($v0) +/* 0C3084 7F08E554 8E020000 */ lw $v0, ($s0) +/* 0C3088 7F08E558 C4720000 */ lwc1 $f18, ($v1) +/* 0C308C 7F08E55C C4500708 */ lwc1 $f16, 0x708($v0) +/* 0C3090 7F08E560 46128103 */ div.s $f4, $f16, $f18 +/* 0C3094 7F08E564 E4440708 */ swc1 $f4, 0x708($v0) +/* 0C3098 7F08E568 8E020000 */ lw $v0, ($s0) +.L7F08E56C: +/* 0C309C 7F08E56C C4460700 */ lwc1 $f6, 0x700($v0) +/* 0C30A0 7F08E570 C44804F4 */ lwc1 $f8, 0x4f4($v0) +/* 0C30A4 7F08E574 46083282 */ mul.s $f10, $f6, $f8 +/* 0C30A8 7F08E578 E7AA00DC */ swc1 $f10, 0xdc($sp) +/* 0C30AC 7F08E57C C4500704 */ lwc1 $f16, 0x704($v0) +/* 0C30B0 7F08E580 C4400550 */ lwc1 $f0, 0x550($v0) +/* 0C30B4 7F08E584 C44404F4 */ lwc1 $f4, 0x4f4($v0) +/* 0C30B8 7F08E588 46008481 */ sub.s $f18, $f16, $f0 +/* 0C30BC 7F08E58C 46049182 */ mul.s $f6, $f18, $f4 +/* 0C30C0 7F08E590 46003200 */ add.s $f8, $f6, $f0 +/* 0C30C4 7F08E594 E7A800E0 */ swc1 $f8, 0xe0($sp) +/* 0C30C8 7F08E598 C45004F4 */ lwc1 $f16, 0x4f4($v0) +/* 0C30CC 7F08E59C C44A0708 */ lwc1 $f10, 0x708($v0) +/* 0C30D0 7F08E5A0 46105482 */ mul.s $f18, $f10, $f16 +/* 0C30D4 7F08E5A4 E7B200E4 */ swc1 $f18, 0xe4($sp) +/* 0C30D8 7F08E5A8 8C4904E8 */ lw $t1, 0x4e8($v0) +/* 0C30DC 7F08E5AC 05220032 */ bltzl $t1, .L7F08E678 +/* 0C30E0 7F08E5B0 C45006F0 */ lwc1 $f16, 0x6f0($v0) +/* 0C30E4 7F08E5B4 C44406F0 */ lwc1 $f4, 0x6f0($v0) +/* 0C30E8 7F08E5B8 C44604F8 */ lwc1 $f6, 0x4f8($v0) +/* 0C30EC 7F08E5BC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C30F0 7F08E5C0 44810000 */ mtc1 $at, $f0 +/* 0C30F4 7F08E5C4 46062202 */ mul.s $f8, $f4, $f6 +/* 0C30F8 7F08E5C8 8C990000 */ lw $t9, ($a0) +/* 0C30FC 7F08E5CC E7A800D0 */ swc1 $f8, 0xd0($sp) +/* 0C3100 7F08E5D0 C45004F4 */ lwc1 $f16, 0x4f4($v0) +/* 0C3104 7F08E5D4 C44A06F4 */ lwc1 $f10, 0x6f4($v0) +/* 0C3108 7F08E5D8 46105482 */ mul.s $f18, $f10, $f16 +/* 0C310C 7F08E5DC E7B200D4 */ swc1 $f18, 0xd4($sp) +/* 0C3110 7F08E5E0 C44406F8 */ lwc1 $f4, 0x6f8($v0) +/* 0C3114 7F08E5E4 C44804F4 */ lwc1 $f8, 0x4f4($v0) +/* 0C3118 7F08E5E8 46002181 */ sub.s $f6, $f4, $f0 +/* 0C311C 7F08E5EC 46083282 */ mul.s $f10, $f6, $f8 +/* 0C3120 7F08E5F0 46005400 */ add.s $f16, $f10, $f0 +/* 0C3124 7F08E5F4 E7B000D8 */ swc1 $f16, 0xd8($sp) +/* 0C3128 7F08E5F8 C44404F4 */ lwc1 $f4, 0x4f4($v0) +/* 0C312C 7F08E5FC C45206E0 */ lwc1 $f18, 0x6e0($v0) +/* 0C3130 7F08E600 46049182 */ mul.s $f6, $f18, $f4 +/* 0C3134 7F08E604 E7A600C4 */ swc1 $f6, 0xc4($sp) +/* 0C3138 7F08E608 C44806E4 */ lwc1 $f8, 0x6e4($v0) +/* 0C313C 7F08E60C C45004F4 */ lwc1 $f16, 0x4f4($v0) +/* 0C3140 7F08E610 46004281 */ sub.s $f10, $f8, $f0 +/* 0C3144 7F08E614 46105482 */ mul.s $f18, $f10, $f16 +/* 0C3148 7F08E618 46009100 */ add.s $f4, $f18, $f0 +/* 0C314C 7F08E61C E7A400C8 */ swc1 $f4, 0xc8($sp) +/* 0C3150 7F08E620 C44804F4 */ lwc1 $f8, 0x4f4($v0) +/* 0C3154 7F08E624 C44606E8 */ lwc1 $f6, 0x6e8($v0) +/* 0C3158 7F08E628 46083282 */ mul.s $f10, $f6, $f8 +/* 0C315C 7F08E62C E7AA00CC */ swc1 $f10, 0xcc($sp) +/* 0C3160 7F08E630 8C4B04F0 */ lw $t3, 0x4f0($v0) +/* 0C3164 7F08E634 01797821 */ addu $t7, $t3, $t9 +/* 0C3168 7F08E638 AC4F04F0 */ sw $t7, 0x4f0($v0) +/* 0C316C 7F08E63C 8E0E0000 */ lw $t6, ($s0) +/* 0C3170 7F08E640 8DD804F0 */ lw $t8, 0x4f0($t6) +/* 0C3174 7F08E644 2B01003D */ slti $at, $t8, 0x3d +/* 0C3178 7F08E648 14200005 */ bnez $at, .L7F08E660 +/* 0C317C 7F08E64C 3C018005 */ lui $at, %hi(D_80055320) +/* 0C3180 7F08E650 0FC23859 */ jal sub_GAME_7F08E164 +/* 0C3184 7F08E654 C42C5320 */ lwc1 $f12, %lo(D_80055320)($at) +/* 0C3188 7F08E658 1000008E */ b .L7F08E894 +/* 0C318C 7F08E65C 00000000 */ nop +.L7F08E660: +/* 0C3190 7F08E660 3C018005 */ lui $at, %hi(D_80055324) +/* 0C3194 7F08E664 0FC23859 */ jal sub_GAME_7F08E164 +/* 0C3198 7F08E668 C42C5324 */ lwc1 $f12, %lo(D_80055324)($at) +/* 0C319C 7F08E66C 10000089 */ b .L7F08E894 +/* 0C31A0 7F08E670 00000000 */ nop +/* 0C31A4 7F08E674 C45006F0 */ lwc1 $f16, 0x6f0($v0) +.L7F08E678: +/* 0C31A8 7F08E678 3C018005 */ lui $at, %hi(D_80055328) +/* 0C31AC 7F08E67C C42C5328 */ lwc1 $f12, %lo(D_80055328)($at) +/* 0C31B0 7F08E680 E7B000D0 */ swc1 $f16, 0xd0($sp) +/* 0C31B4 7F08E684 C45206F4 */ lwc1 $f18, 0x6f4($v0) +/* 0C31B8 7F08E688 E7B200D4 */ swc1 $f18, 0xd4($sp) +/* 0C31BC 7F08E68C C44406F8 */ lwc1 $f4, 0x6f8($v0) +/* 0C31C0 7F08E690 E7A400D8 */ swc1 $f4, 0xd8($sp) +/* 0C31C4 7F08E694 C44606E0 */ lwc1 $f6, 0x6e0($v0) +/* 0C31C8 7F08E698 E7A600C4 */ swc1 $f6, 0xc4($sp) +/* 0C31CC 7F08E69C C44806E4 */ lwc1 $f8, 0x6e4($v0) +/* 0C31D0 7F08E6A0 E7A800C8 */ swc1 $f8, 0xc8($sp) +/* 0C31D4 7F08E6A4 C44A06E8 */ lwc1 $f10, 0x6e8($v0) +/* 0C31D8 7F08E6A8 0FC23859 */ jal sub_GAME_7F08E164 +/* 0C31DC 7F08E6AC E7AA00CC */ swc1 $f10, 0xcc($sp) +/* 0C31E0 7F08E6B0 10000078 */ b .L7F08E894 +/* 0C31E4 7F08E6B4 00000000 */ nop +/* 0C31E8 7F08E6B8 8E020000 */ lw $v0, ($s0) +.L7F08E6BC: +/* 0C31EC 7F08E6BC 3C018005 */ lui $at, %hi(D_8005532C) +/* 0C31F0 7F08E6C0 C4500554 */ lwc1 $f16, 0x554($v0) +/* 0C31F4 7F08E6C4 E4500544 */ swc1 $f16, 0x544($v0) +/* 0C31F8 7F08E6C8 8E020000 */ lw $v0, ($s0) +/* 0C31FC 7F08E6CC C4520558 */ lwc1 $f18, 0x558($v0) +/* 0C3200 7F08E6D0 E4520548 */ swc1 $f18, 0x548($v0) +/* 0C3204 7F08E6D4 8E020000 */ lw $v0, ($s0) +/* 0C3208 7F08E6D8 C444055C */ lwc1 $f4, 0x55c($v0) +/* 0C320C 7F08E6DC E444054C */ swc1 $f4, 0x54c($v0) +/* 0C3210 7F08E6E0 8E020000 */ lw $v0, ($s0) +/* 0C3214 7F08E6E4 E7A000DC */ swc1 $f0, 0xdc($sp) +/* 0C3218 7F08E6E8 C4460550 */ lwc1 $f6, 0x550($v0) +/* 0C321C 7F08E6EC E7A000E4 */ swc1 $f0, 0xe4($sp) +/* 0C3220 7F08E6F0 E7A600E0 */ swc1 $f6, 0xe0($sp) +/* 0C3224 7F08E6F4 AC4004F0 */ sw $zero, 0x4f0($v0) +/* 0C3228 7F08E6F8 0FC23859 */ jal sub_GAME_7F08E164 +/* 0C322C 7F08E6FC C42C532C */ lwc1 $f12, %lo(D_8005532C)($at) +/* 0C3230 7F08E700 0FC227B5 */ jal get_BONDdata_bondfadefracnew +/* 0C3234 7F08E704 00000000 */ nop +/* 0C3238 7F08E708 3C018005 */ lui $at, %hi(D_80055330) +/* 0C323C 7F08E70C C4285330 */ lwc1 $f8, %lo(D_80055330)($at) +/* 0C3240 7F08E710 3C018005 */ lui $at, %hi(D_80055334) +/* 0C3244 7F08E714 C42A5334 */ lwc1 $f10, %lo(D_80055334)($at) +/* 0C3248 7F08E718 3C038005 */ lui $v1, %hi(global_timer_delta) +/* 0C324C 7F08E71C 24638378 */ addiu $v1, %lo(global_timer_delta) # addiu $v1, $v1, -0x7c88 +/* 0C3250 7F08E720 46005402 */ mul.s $f16, $f10, $f0 +/* 0C3254 7F08E724 C4640000 */ lwc1 $f4, ($v1) +/* 0C3258 7F08E728 8E020000 */ lw $v0, ($s0) +/* 0C325C 7F08E72C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C3260 7F08E730 C44A0560 */ lwc1 $f10, 0x560($v0) +/* 0C3264 7F08E734 46104480 */ add.s $f18, $f8, $f16 +/* 0C3268 7F08E738 44818000 */ mtc1 $at, $f16 +/* 0C326C 7F08E73C 46049182 */ mul.s $f6, $f18, $f4 +/* 0C3270 7F08E740 46065200 */ add.s $f8, $f10, $f6 +/* 0C3274 7F08E744 E4480560 */ swc1 $f8, 0x560($v0) +/* 0C3278 7F08E748 8E020000 */ lw $v0, ($s0) +/* 0C327C 7F08E74C C4420560 */ lwc1 $f2, 0x560($v0) +/* 0C3280 7F08E750 4602803E */ c.le.s $f16, $f2 +/* 0C3284 7F08E754 00000000 */ nop +/* 0C3288 7F08E758 4502000C */ bc1fl .L7F08E78C +/* 0C328C 7F08E75C 8C430594 */ lw $v1, 0x594($v0) +/* 0C3290 7F08E760 0FC236F2 */ jal sub_GAME_7F08DBC8 +/* 0C3294 7F08E764 00000000 */ nop +/* 0C3298 7F08E768 8E020000 */ lw $v0, ($s0) +/* 0C329C 7F08E76C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C32A0 7F08E770 44812000 */ mtc1 $at, $f4 +/* 0C32A4 7F08E774 C4520560 */ lwc1 $f18, 0x560($v0) +/* 0C32A8 7F08E778 46049281 */ sub.s $f10, $f18, $f4 +/* 0C32AC 7F08E77C E44A0560 */ swc1 $f10, 0x560($v0) +/* 0C32B0 7F08E780 8E020000 */ lw $v0, ($s0) +/* 0C32B4 7F08E784 C4420560 */ lwc1 $f2, 0x560($v0) +/* 0C32B8 7F08E788 8C430594 */ lw $v1, 0x594($v0) +.L7F08E78C: +/* 0C32BC 7F08E78C 44061000 */ mfc1 $a2, $f2 +/* 0C32C0 7F08E790 27A700D0 */ addiu $a3, $sp, 0xd0 +/* 0C32C4 7F08E794 00034080 */ sll $t0, $v1, 2 +/* 0C32C8 7F08E798 01034023 */ subu $t0, $t0, $v1 +/* 0C32CC 7F08E79C 00081880 */ sll $v1, $t0, 2 +/* 0C32D0 7F08E7A0 00036023 */ negu $t4, $v1 +/* 0C32D4 7F08E7A4 004C2821 */ addu $a1, $v0, $t4 +/* 0C32D8 7F08E7A8 00432021 */ addu $a0, $v0, $v1 +/* 0C32DC 7F08E7AC 24840564 */ addiu $a0, $a0, 0x564 +/* 0C32E0 7F08E7B0 0FC16B80 */ jal sub_GAME_7F05AE00 +/* 0C32E4 7F08E7B4 24A50570 */ addiu $a1, $a1, 0x570 +/* 0C32E8 7F08E7B8 0FC227B5 */ jal get_BONDdata_bondfadefracnew +/* 0C32EC 7F08E7BC 00000000 */ nop +/* 0C32F0 7F08E7C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C32F4 7F08E7C4 44813000 */ mtc1 $at, $f6 +/* 0C32F8 7F08E7C8 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0C32FC 7F08E7CC 44814000 */ mtc1 $at, $f8 +/* 0C3300 7F08E7D0 C7A400D0 */ lwc1 $f4, 0xd0($sp) +/* 0C3304 7F08E7D4 46004402 */ mul.s $f16, $f8, $f0 +/* 0C3308 7F08E7D8 46103480 */ add.s $f18, $f6, $f16 +/* 0C330C 7F08E7DC 46122282 */ mul.s $f10, $f4, $f18 +/* 0C3310 7F08E7E0 0FC227B5 */ jal get_BONDdata_bondfadefracnew +/* 0C3314 7F08E7E4 E7AA00D0 */ swc1 $f10, 0xd0($sp) +/* 0C3318 7F08E7E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C331C 7F08E7EC 44814000 */ mtc1 $at, $f8 +/* 0C3320 7F08E7F0 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0C3324 7F08E7F4 44813000 */ mtc1 $at, $f6 +/* 0C3328 7F08E7F8 C7B200D4 */ lwc1 $f18, 0xd4($sp) +/* 0C332C 7F08E7FC 8E020000 */ lw $v0, ($s0) +/* 0C3330 7F08E800 46003402 */ mul.s $f16, $f6, $f0 +/* 0C3334 7F08E804 27A700C4 */ addiu $a3, $sp, 0xc4 +/* 0C3338 7F08E808 46104100 */ add.s $f4, $f8, $f16 +/* 0C333C 7F08E80C 46049282 */ mul.s $f10, $f18, $f4 +/* 0C3340 7F08E810 E7AA00D4 */ swc1 $f10, 0xd4($sp) +/* 0C3344 7F08E814 8C430594 */ lw $v1, 0x594($v0) +/* 0C3348 7F08E818 8C460560 */ lw $a2, 0x560($v0) +/* 0C334C 7F08E81C 00035080 */ sll $t2, $v1, 2 +/* 0C3350 7F08E820 01435023 */ subu $t2, $t2, $v1 +/* 0C3354 7F08E824 000A1880 */ sll $v1, $t2, 2 +/* 0C3358 7F08E828 00036823 */ negu $t5, $v1 +/* 0C335C 7F08E82C 004D2821 */ addu $a1, $v0, $t5 +/* 0C3360 7F08E830 00432021 */ addu $a0, $v0, $v1 +/* 0C3364 7F08E834 2484057C */ addiu $a0, $a0, 0x57c +/* 0C3368 7F08E838 0FC16B80 */ jal sub_GAME_7F05AE00 +/* 0C336C 7F08E83C 24A50588 */ addiu $a1, $a1, 0x588 +/* 0C3370 7F08E840 0FC227B5 */ jal get_BONDdata_bondfadefracnew +/* 0C3374 7F08E844 00000000 */ nop +/* 0C3378 7F08E848 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C337C 7F08E84C 44813000 */ mtc1 $at, $f6 +/* 0C3380 7F08E850 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0C3384 7F08E854 44814000 */ mtc1 $at, $f8 +/* 0C3388 7F08E858 C7A400C4 */ lwc1 $f4, 0xc4($sp) +/* 0C338C 7F08E85C 46004402 */ mul.s $f16, $f8, $f0 +/* 0C3390 7F08E860 46103480 */ add.s $f18, $f6, $f16 +/* 0C3394 7F08E864 46122282 */ mul.s $f10, $f4, $f18 +/* 0C3398 7F08E868 0FC227B5 */ jal get_BONDdata_bondfadefracnew +/* 0C339C 7F08E86C E7AA00C4 */ swc1 $f10, 0xc4($sp) +/* 0C33A0 7F08E870 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C33A4 7F08E874 44814000 */ mtc1 $at, $f8 +/* 0C33A8 7F08E878 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0C33AC 7F08E87C 44813000 */ mtc1 $at, $f6 +/* 0C33B0 7F08E880 C7B200CC */ lwc1 $f18, 0xcc($sp) +/* 0C33B4 7F08E884 46003402 */ mul.s $f16, $f6, $f0 +/* 0C33B8 7F08E888 46104100 */ add.s $f4, $f8, $f16 +/* 0C33BC 7F08E88C 46049282 */ mul.s $f10, $f18, $f4 +/* 0C33C0 7F08E890 E7AA00CC */ swc1 $f10, 0xcc($sp) +.L7F08E894: +/* 0C33C4 7F08E894 0FC23792 */ jal sub_GAME_7F08DE48 +/* 0C33C8 7F08E898 27A400DC */ addiu $a0, $sp, 0xdc +/* 0C33CC 7F08E89C 27A400D0 */ addiu $a0, $sp, 0xd0 +/* 0C33D0 7F08E8A0 0FC237D1 */ jal sub_GAME_7F08DF44 +/* 0C33D4 7F08E8A4 27A500C4 */ addiu $a1, $sp, 0xc4 +/* 0C33D8 7F08E8A8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C33DC 7F08E8AC 8FB00018 */ lw $s0, 0x18($sp) +/* 0C33E0 7F08E8B0 27BD00E8 */ addiu $sp, $sp, 0xe8 +/* 0C33E4 7F08E8B4 03E00008 */ jr $ra +/* 0C33E8 7F08E8B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08E8BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08E8BC +/* 0C33EC 7F08E8BC 3C058003 */ lui $a1, %hi(D_80036AD0) +/* 0C33F0 7F08E8C0 24A56AD0 */ addiu $a1, %lo(D_80036AD0) # addiu $a1, $a1, 0x6ad0 +/* 0C33F4 7F08E8C4 C4A40024 */ lwc1 $f4, 0x24($a1) +/* 0C33F8 7F08E8C8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C33FC 7F08E8CC AFB00020 */ sw $s0, 0x20($sp) +/* 0C3400 7F08E8D0 3C108003 */ lui $s0, %hi(D_80036AD0) +/* 0C3404 7F08E8D4 46046302 */ mul.s $f12, $f12, $f4 +/* 0C3408 7F08E8D8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0C340C 7F08E8DC 26106AD0 */ addiu $s0, %lo(D_80036AD0) # addiu $s0, $s0, 0x6ad0 +/* 0C3410 7F08E8E0 00001025 */ move $v0, $zero +/* 0C3414 7F08E8E4 24030002 */ li $v1, 2 +.L7F08E8E8: +/* 0C3418 7F08E8E8 C600000C */ lwc1 $f0, 0xc($s0) +/* 0C341C 7F08E8EC C6060014 */ lwc1 $f6, 0x14($s0) +/* 0C3420 7F08E8F0 46060202 */ mul.s $f8, $f0, $f6 +/* 0C3424 7F08E8F4 4608603E */ c.le.s $f12, $f8 +/* 0C3428 7F08E8F8 00000000 */ nop +/* 0C342C 7F08E8FC 4500004A */ bc1f .L7F08EA28 +/* 0C3430 7F08E900 3C088008 */ lui $t0, %hi(pPlayer) +/* 0C3434 7F08E904 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0C3438 7F08E908 3C188007 */ lui $t8, %hi(ptr_animation_table) +/* 0C343C 7F08E90C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C3440 7F08E910 8D0404E8 */ lw $a0, 0x4e8($t0) +/* 0C3444 7F08E914 5044003A */ beql $v0, $a0, .L7F08EA00 +/* 0C3448 7F08E918 46006303 */ div.s $f12, $f12, $f0 +/* 0C344C 7F08E91C 44807000 */ mtc1 $zero, $f14 +/* 0C3450 7F08E920 0480000F */ bltz $a0, .L7F08E960 +/* 0C3454 7F08E924 00047080 */ sll $t6, $a0, 2 +/* 0C3458 7F08E928 01C47023 */ subu $t6, $t6, $a0 +/* 0C345C 7F08E92C 000E70C0 */ sll $t6, $t6, 3 +/* 0C3460 7F08E930 00AE1821 */ addu $v1, $a1, $t6 +/* 0C3464 7F08E934 C4600004 */ lwc1 $f0, 4($v1) +/* 0C3468 7F08E938 C4720008 */ lwc1 $f18, 8($v1) +/* 0C346C 7F08E93C C50A05C0 */ lwc1 $f10, 0x5c0($t0) +/* 0C3470 7F08E940 C6020004 */ lwc1 $f2, 4($s0) +/* 0C3474 7F08E944 46009101 */ sub.s $f4, $f18, $f0 +/* 0C3478 7F08E948 C6060008 */ lwc1 $f6, 8($s0) +/* 0C347C 7F08E94C 46005401 */ sub.s $f16, $f10, $f0 +/* 0C3480 7F08E950 46023201 */ sub.s $f8, $f6, $f2 +/* 0C3484 7F08E954 46048383 */ div.s $f14, $f16, $f4 +/* 0C3488 7F08E958 460E4282 */ mul.s $f10, $f8, $f14 +/* 0C348C 7F08E95C 46025380 */ add.s $f14, $f10, $f2 +.L7F08E960: +/* 0C3490 7F08E960 44819000 */ mtc1 $at, $f18 +/* 0C3494 7F08E964 3C014140 */ li $at, 0x41400000 # 12.000000 +/* 0C3498 7F08E968 810605BC */ lb $a2, 0x5bc($t0) +/* 0C349C 7F08E96C 44818000 */ mtc1 $at, $f16 +/* 0C34A0 7F08E970 8E0F0000 */ lw $t7, ($s0) +/* 0C34A4 7F08E974 8F189538 */ lw $t8, %lo(ptr_animation_table)($t8) +/* 0C34A8 7F08E978 44077000 */ mfc1 $a3, $f14 +/* 0C34AC 7F08E97C E7AC0030 */ swc1 $f12, 0x30($sp) +/* 0C34B0 7F08E980 AFA2002C */ sw $v0, 0x2c($sp) +/* 0C34B4 7F08E984 25040598 */ addiu $a0, $t0, 0x598 +/* 0C34B8 7F08E988 E7B20010 */ swc1 $f18, 0x10($sp) +/* 0C34BC 7F08E98C E7B00014 */ swc1 $f16, 0x14($sp) +/* 0C34C0 7F08E990 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0C34C4 7F08E994 01F82821 */ addu $a1, $t7, $t8 +/* 0C34C8 7F08E998 3C048008 */ lui $a0, %hi(pPlayer) +/* 0C34CC 7F08E99C 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0C34D0 7F08E9A0 8E050004 */ lw $a1, 4($s0) +/* 0C34D4 7F08E9A4 24060000 */ li $a2, 0 +/* 0C34D8 7F08E9A8 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 0C34DC 7F08E9AC 24840598 */ addiu $a0, $a0, 0x598 +/* 0C34E0 7F08E9B0 3C048008 */ lui $a0, %hi(pPlayer) +/* 0C34E4 7F08E9B4 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0C34E8 7F08E9B8 8E050008 */ lw $a1, 8($s0) +/* 0C34EC 7F08E9BC 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0C34F0 7F08E9C0 24840598 */ addiu $a0, $a0, 0x598 +/* 0C34F4 7F08E9C4 3C048008 */ lui $a0, %hi(pPlayer) +/* 0C34F8 7F08E9C8 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0C34FC 7F08E9CC 3C057F09 */ lui $a1, %hi(sub_GAME_7F08DBB0) # $a1, 0x7f09 +/* 0C3500 7F08E9D0 24A5DBB0 */ addiu $a1, %lo(sub_GAME_7F08DBB0) # addiu $a1, $a1, -0x2450 +/* 0C3504 7F08E9D4 0FC1BF8F */ jal sub_GAME_7F06FE3C +/* 0C3508 7F08E9D8 24840598 */ addiu $a0, $a0, 0x598 +/* 0C350C 7F08E9DC 3C198008 */ lui $t9, %hi(pPlayer) +/* 0C3510 7F08E9E0 8FA2002C */ lw $v0, 0x2c($sp) +/* 0C3514 7F08E9E4 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0C3518 7F08E9E8 C7AC0030 */ lwc1 $f12, 0x30($sp) +/* 0C351C 7F08E9EC 3C088008 */ lui $t0, %hi(pPlayer) +/* 0C3520 7F08E9F0 AF2204E8 */ sw $v0, 0x4e8($t9) +/* 0C3524 7F08E9F4 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0C3528 7F08E9F8 C600000C */ lwc1 $f0, 0xc($s0) +/* 0C352C 7F08E9FC 46006303 */ div.s $f12, $f12, $f0 +.L7F08EA00: +/* 0C3530 7F08EA00 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C3534 7F08EA04 44812000 */ mtc1 $at, $f4 +/* 0C3538 7F08EA08 25040598 */ addiu $a0, $t0, 0x598 +/* 0C353C 7F08EA0C 24060000 */ li $a2, 0 +/* 0C3540 7F08EA10 46046182 */ mul.s $f6, $f12, $f4 +/* 0C3544 7F08EA14 44053000 */ mfc1 $a1, $f6 +/* 0C3548 7F08EA18 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 0C354C 7F08EA1C 00000000 */ nop +/* 0C3550 7F08EA20 10000005 */ b .L7F08EA38 +/* 0C3554 7F08EA24 8FBF0024 */ lw $ra, 0x24($sp) +.L7F08EA28: +/* 0C3558 7F08EA28 24420001 */ addiu $v0, $v0, 1 +/* 0C355C 7F08EA2C 1443FFAE */ bne $v0, $v1, .L7F08E8E8 +/* 0C3560 7F08EA30 26100018 */ addiu $s0, $s0, 0x18 +/* 0C3564 7F08EA34 8FBF0024 */ lw $ra, 0x24($sp) +.L7F08EA38: +/* 0C3568 7F08EA38 8FB00020 */ lw $s0, 0x20($sp) +/* 0C356C 7F08EA3C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0C3570 7F08EA40 03E00008 */ jr $ra +/* 0C3574 7F08EA44 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EA48(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08EA48 +/* 0C3578 7F08EA48 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C357C 7F08EA4C 44877000 */ mtc1 $a3, $f14 +/* 0C3580 7F08EA50 44812000 */ mtc1 $at, $f4 +/* 0C3584 7F08EA54 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C3588 7F08EA58 AFA50024 */ sw $a1, 0x24($sp) +/* 0C358C 7F08EA5C 46047182 */ mul.s $f6, $f14, $f4 +/* 0C3590 7F08EA60 44866000 */ mtc1 $a2, $f12 +/* 0C3594 7F08EA64 00802825 */ move $a1, $a0 +/* 0C3598 7F08EA68 AFA40020 */ sw $a0, 0x20($sp) +/* 0C359C 7F08EA6C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0C35A0 7F08EA70 3C014140 */ li $at, 0x41400000 # 12.000000 +/* 0C35A4 7F08EA74 44814000 */ mtc1 $at, $f8 +/* 0C35A8 7F08EA78 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0C35AC 7F08EA7C AFBF001C */ sw $ra, 0x1c($sp) +/* 0C35B0 7F08EA80 44076000 */ mfc1 $a3, $f12 +/* 0C35B4 7F08EA84 8FA60024 */ lw $a2, 0x24($sp) +/* 0C35B8 7F08EA88 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0C35BC 7F08EA8C 24840598 */ addiu $a0, $a0, 0x598 +/* 0C35C0 7F08EA90 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0C35C4 7F08EA94 E7A80014 */ swc1 $f8, 0x14($sp) +/* 0C35C8 7F08EA98 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0C35CC 7F08EA9C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0C35D0 7F08EAA0 240EFFFF */ li $t6, -1 +/* 0C35D4 7F08EAA4 ADEE04E8 */ sw $t6, 0x4e8($t7) +/* 0C35D8 7F08EAA8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C35DC 7F08EAAC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C35E0 7F08EAB0 03E00008 */ jr $ra +/* 0C35E4 7F08EAB4 00000000 */ nop +) +#endif + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EAB8(f32 param_1) +{ + sub_GAME_7F06FE4C(pPlayer->field_598, param_1 * 0.5f, 0); + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08EAB8 +/* 0C35E8 7F08EAB8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C35EC 7F08EABC 44812000 */ mtc1 $at, $f4 +/* 0C35F0 7F08EAC0 3C048008 */ lui $a0, %hi(pPlayer) +/* 0C35F4 7F08EAC4 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0C35F8 7F08EAC8 46046182 */ mul.s $f6, $f12, $f4 +/* 0C35FC 7F08EACC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C3600 7F08EAD0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C3604 7F08EAD4 24060000 */ li $a2, 0 +/* 0C3608 7F08EAD8 24840598 */ addiu $a0, $a0, 0x598 +/* 0C360C 7F08EADC 44053000 */ mfc1 $a1, $f6 +/* 0C3610 7F08EAE0 0FC1BF93 */ jal sub_GAME_7F06FE4C +/* 0C3614 7F08EAE4 00000000 */ nop +/* 0C3618 7F08EAE8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C361C 7F08EAEC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C3620 7F08EAF0 03E00008 */ jr $ra +/* 0C3624 7F08EAF4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EAF8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055338 +.word 0x3c4cccce /*0.012500001*/ +glabel D_8005533C +.word 0x3b888889 /*0.0041666669*/ +.text +glabel sub_GAME_7F08EAF8 +/* 0C3628 7F08EAF8 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0C362C 7F08EAFC 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0C3630 7F08EB00 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C3634 7F08EB04 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C3638 7F08EB08 8DCF04E8 */ lw $t7, 0x4e8($t6) +/* 0C363C 7F08EB0C 05E2002B */ bltzl $t7, .L7F08EBBC +/* 0C3640 7F08EB10 44800000 */ mtc1 $zero, $f0 +/* 0C3644 7F08EB14 0FC227B5 */ jal get_BONDdata_bondfadefracnew +/* 0C3648 7F08EB18 00000000 */ nop +/* 0C364C 7F08EB1C 3C018005 */ lui $at, %hi(D_80055338) +/* 0C3650 7F08EB20 C4245338 */ lwc1 $f4, %lo(D_80055338)($at) +/* 0C3654 7F08EB24 3C018005 */ lui $at, %hi(D_8005533C) +/* 0C3658 7F08EB28 C428533C */ lwc1 $f8, %lo(D_8005533C)($at) +/* 0C365C 7F08EB2C 46040182 */ mul.s $f6, $f0, $f4 +/* 0C3660 7F08EB30 3C048008 */ lui $a0, %hi(pPlayer) +/* 0C3664 7F08EB34 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0C3668 7F08EB38 24840598 */ addiu $a0, $a0, 0x598 +/* 0C366C 7F08EB3C 46083080 */ add.s $f2, $f6, $f8 +/* 0C3670 7F08EB40 0FC1BD86 */ jal sub_GAME_7F06F618 +/* 0C3674 7F08EB44 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0C3678 7F08EB48 44805000 */ mtc1 $zero, $f10 +/* 0C367C 7F08EB4C C7A2001C */ lwc1 $f2, 0x1c($sp) +/* 0C3680 7F08EB50 3C188008 */ lui $t8, %hi(pPlayer) +/* 0C3684 7F08EB54 4600503C */ c.lt.s $f10, $f0 +/* 0C3688 7F08EB58 00000000 */ nop +/* 0C368C 7F08EB5C 45000014 */ bc1f .L7F08EBB0 +/* 0C3690 7F08EB60 00000000 */ nop +/* 0C3694 7F08EB64 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0C3698 7F08EB68 3C098003 */ lui $t1, %hi(D_80036AD0) +/* 0C369C 7F08EB6C 25296AD0 */ addiu $t1, %lo(D_80036AD0) # addiu $t1, $t1, 0x6ad0 +/* 0C36A0 7F08EB70 8F1904E8 */ lw $t9, 0x4e8($t8) +/* 0C36A4 7F08EB74 00194080 */ sll $t0, $t9, 2 +/* 0C36A8 7F08EB78 01194023 */ subu $t0, $t0, $t9 +/* 0C36AC 7F08EB7C 000840C0 */ sll $t0, $t0, 3 +/* 0C36B0 7F08EB80 01091021 */ addu $v0, $t0, $t1 +/* 0C36B4 7F08EB84 C4500008 */ lwc1 $f16, 8($v0) +/* 0C36B8 7F08EB88 C4520004 */ lwc1 $f18, 4($v0) +/* 0C36BC 7F08EB8C 46128101 */ sub.s $f4, $f16, $f18 +/* 0C36C0 7F08EB90 46040303 */ div.s $f12, $f0, $f4 +/* 0C36C4 7F08EB94 4602603C */ c.lt.s $f12, $f2 +/* 0C36C8 7F08EB98 00000000 */ nop +/* 0C36CC 7F08EB9C 45000002 */ bc1f .L7F08EBA8 +/* 0C36D0 7F08EBA0 00000000 */ nop +/* 0C36D4 7F08EBA4 46001306 */ mov.s $f12, $f2 +.L7F08EBA8: +/* 0C36D8 7F08EBA8 10000005 */ b .L7F08EBC0 +/* 0C36DC 7F08EBAC 46006006 */ mov.s $f0, $f12 +.L7F08EBB0: +/* 0C36E0 7F08EBB0 10000003 */ b .L7F08EBC0 +/* 0C36E4 7F08EBB4 46001006 */ mov.s $f0, $f2 +/* 0C36E8 7F08EBB8 44800000 */ mtc1 $zero, $f0 +.L7F08EBBC: +/* 0C36EC 7F08EBBC 00000000 */ nop +.L7F08EBC0: +/* 0C36F0 7F08EBC0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C36F4 7F08EBC4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C36F8 7F08EBC8 03E00008 */ jr $ra +/* 0C36FC 7F08EBCC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EBD0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08EBD0 +/* 0C3700 7F08EBD0 3C028007 */ lui $v0, %hi(ptr_setup_path_tbl) +/* 0C3704 7F08EBD4 8C425D00 */ lw $v0, %lo(ptr_setup_path_tbl)($v0) +/* 0C3708 7F08EBD8 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 0C370C 7F08EBDC F7B40008 */ sdc1 $f20, 8($sp) +/* 0C3710 7F08EBE0 AFA50014 */ sw $a1, 0x14($sp) +/* 0C3714 7F08EBE4 00803825 */ move $a3, $a0 +/* 0C3718 7F08EBE8 10400024 */ beqz $v0, .L7F08EC7C +/* 0C371C 7F08EBEC 00001825 */ move $v1, $zero +/* 0C3720 7F08EBF0 8C4E0000 */ lw $t6, ($v0) +/* 0C3724 7F08EBF4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0C3728 7F08EBF8 44810000 */ mtc1 $at, $f0 +/* 0C372C 7F08EBFC 05C0001F */ bltz $t6, .L7F08EC7C +/* 0C3730 7F08EC00 00402025 */ move $a0, $v0 +/* 0C3734 7F08EC04 3C068007 */ lui $a2, %hi(ptr_0xxxpresets) +/* 0C3738 7F08EC08 C4EC0008 */ lwc1 $f12, 8($a3) +/* 0C373C 7F08EC0C C4F00000 */ lwc1 $f16, ($a3) +/* 0C3740 7F08EC10 4480A000 */ mtc1 $zero, $f20 +/* 0C3744 7F08EC14 2407002C */ li $a3, 44 +/* 0C3748 7F08EC18 8CC65D18 */ lw $a2, %lo(ptr_0xxxpresets)($a2) +/* 0C374C 7F08EC1C 8C450000 */ lw $a1, ($v0) +.L7F08EC20: +/* 0C3750 7F08EC20 00A70019 */ multu $a1, $a3 +/* 0C3754 7F08EC24 4614003C */ c.lt.s $f0, $f20 +/* 0C3758 7F08EC28 00007812 */ mflo $t7 +/* 0C375C 7F08EC2C 01E61021 */ addu $v0, $t7, $a2 +/* 0C3760 7F08EC30 C4440008 */ lwc1 $f4, 8($v0) +/* 0C3764 7F08EC34 C4460000 */ lwc1 $f6, ($v0) +/* 0C3768 7F08EC38 46046381 */ sub.s $f14, $f12, $f4 +/* 0C376C 7F08EC3C 46068481 */ sub.s $f18, $f16, $f6 +/* 0C3770 7F08EC40 460E7202 */ mul.s $f8, $f14, $f14 +/* 0C3774 7F08EC44 00000000 */ nop +/* 0C3778 7F08EC48 46129282 */ mul.s $f10, $f18, $f18 +/* 0C377C 7F08EC4C 45010005 */ bc1t .L7F08EC64 +/* 0C3780 7F08EC50 460A4080 */ add.s $f2, $f8, $f10 +/* 0C3784 7F08EC54 4600103C */ c.lt.s $f2, $f0 +/* 0C3788 7F08EC58 00000000 */ nop +/* 0C378C 7F08EC5C 45020004 */ bc1fl .L7F08EC70 +/* 0C3790 7F08EC60 8C850010 */ lw $a1, 0x10($a0) +.L7F08EC64: +/* 0C3794 7F08EC64 46001006 */ mov.s $f0, $f2 +/* 0C3798 7F08EC68 00801825 */ move $v1, $a0 +/* 0C379C 7F08EC6C 8C850010 */ lw $a1, 0x10($a0) +.L7F08EC70: +/* 0C37A0 7F08EC70 24840010 */ addiu $a0, $a0, 0x10 +/* 0C37A4 7F08EC74 04A1FFEA */ bgez $a1, .L7F08EC20 +/* 0C37A8 7F08EC78 00000000 */ nop +.L7F08EC7C: +/* 0C37AC 7F08EC7C D7B40008 */ ldc1 $f20, 8($sp) +/* 0C37B0 7F08EC80 27BD0010 */ addiu $sp, $sp, 0x10 +/* 0C37B4 7F08EC84 03E00008 */ jr $ra +/* 0C37B8 7F08EC88 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EC8C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08EC8C +/* 0C37BC 7F08EC8C AFA50004 */ sw $a1, 4($sp) +/* 0C37C0 7F08EC90 8CC20004 */ lw $v0, 4($a2) +/* 0C37C4 7F08EC94 00803825 */ move $a3, $a0 +/* 0C37C8 7F08EC98 00C01825 */ move $v1, $a2 +/* 0C37CC 7F08EC9C 1040002E */ beqz $v0, .L7F08ED58 +/* 0C37D0 7F08ECA0 00000000 */ nop +/* 0C37D4 7F08ECA4 8CCE0000 */ lw $t6, ($a2) +/* 0C37D8 7F08ECA8 240A002C */ li $t2, 44 +/* 0C37DC 7F08ECAC 3C0B8007 */ lui $t3, %hi(ptr_setup_path_tbl) +/* 0C37E0 7F08ECB0 01CA0019 */ multu $t6, $t2 +/* 0C37E4 7F08ECB4 256B5D00 */ addiu $t3, %lo(ptr_setup_path_tbl) # addiu $t3, $t3, 0x5d00 +/* 0C37E8 7F08ECB8 8D650018 */ lw $a1, 0x18($t3) +/* 0C37EC 7F08ECBC C4E20008 */ lwc1 $f2, 8($a3) +/* 0C37F0 7F08ECC0 C4EE0000 */ lwc1 $f14, ($a3) +/* 0C37F4 7F08ECC4 8C490000 */ lw $t1, ($v0) +/* 0C37F8 7F08ECC8 8D680000 */ lw $t0, ($t3) +/* 0C37FC 7F08ECCC 00007812 */ mflo $t7 +/* 0C3800 7F08ECD0 01E52021 */ addu $a0, $t7, $a1 +/* 0C3804 7F08ECD4 C4840008 */ lwc1 $f4, 8($a0) +/* 0C3808 7F08ECD8 C4860000 */ lwc1 $f6, ($a0) +/* 0C380C 7F08ECDC 46041301 */ sub.s $f12, $f2, $f4 +/* 0C3810 7F08ECE0 46067401 */ sub.s $f16, $f14, $f6 +/* 0C3814 7F08ECE4 460C6202 */ mul.s $f8, $f12, $f12 +/* 0C3818 7F08ECE8 00000000 */ nop +/* 0C381C 7F08ECEC 46108282 */ mul.s $f10, $f16, $f16 +/* 0C3820 7F08ECF0 05200019 */ bltz $t1, .L7F08ED58 +/* 0C3824 7F08ECF4 460A4000 */ add.s $f0, $f8, $f10 +/* 0C3828 7F08ECF8 0009C100 */ sll $t8, $t1, 4 +.L7F08ECFC: +/* 0C382C 7F08ECFC 03083021 */ addu $a2, $t8, $t0 +/* 0C3830 7F08ED00 8CD90000 */ lw $t9, ($a2) +/* 0C3834 7F08ED04 032A0019 */ multu $t9, $t2 +/* 0C3838 7F08ED08 00006012 */ mflo $t4 +/* 0C383C 7F08ED0C 01852021 */ addu $a0, $t4, $a1 +/* 0C3840 7F08ED10 C4840008 */ lwc1 $f4, 8($a0) +/* 0C3844 7F08ED14 C4860000 */ lwc1 $f6, ($a0) +/* 0C3848 7F08ED18 46041301 */ sub.s $f12, $f2, $f4 +/* 0C384C 7F08ED1C 46067401 */ sub.s $f16, $f14, $f6 +/* 0C3850 7F08ED20 460C6202 */ mul.s $f8, $f12, $f12 +/* 0C3854 7F08ED24 00000000 */ nop +/* 0C3858 7F08ED28 46108282 */ mul.s $f10, $f16, $f16 +/* 0C385C 7F08ED2C 460A4480 */ add.s $f18, $f8, $f10 +/* 0C3860 7F08ED30 4600903C */ c.lt.s $f18, $f0 +/* 0C3864 7F08ED34 00000000 */ nop +/* 0C3868 7F08ED38 45000003 */ bc1f .L7F08ED48 +/* 0C386C 7F08ED3C 00000000 */ nop +/* 0C3870 7F08ED40 46009006 */ mov.s $f0, $f18 +/* 0C3874 7F08ED44 00C01825 */ move $v1, $a2 +.L7F08ED48: +/* 0C3878 7F08ED48 8C490004 */ lw $t1, 4($v0) +/* 0C387C 7F08ED4C 24420004 */ addiu $v0, $v0, 4 +/* 0C3880 7F08ED50 0523FFEA */ bgezl $t1, .L7F08ECFC +/* 0C3884 7F08ED54 0009C100 */ sll $t8, $t1, 4 +.L7F08ED58: +/* 0C3888 7F08ED58 03E00008 */ jr $ra +/* 0C388C 7F08ED5C 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08ED60(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08ED60 +/* 0C3890 7F08ED60 8C830000 */ lw $v1, ($a0) +/* 0C3894 7F08ED64 3C028007 */ lui $v0, %hi(ptr_setup_path_link) +/* 0C3898 7F08ED68 00A03025 */ move $a2, $a1 +/* 0C389C 7F08ED6C 0460000E */ bltz $v1, .L7F08EDA8 +/* 0C38A0 7F08ED70 8C425D04 */ lw $v0, %lo(ptr_setup_path_link)($v0) +/* 0C38A4 7F08ED74 2407000C */ li $a3, 12 +.L7F08ED78: +/* 0C38A8 7F08ED78 00670019 */ multu $v1, $a3 +/* 0C38AC 7F08ED7C 00007012 */ mflo $t6 +/* 0C38B0 7F08ED80 01C22821 */ addu $a1, $t6, $v0 +/* 0C38B4 7F08ED84 8CAF0008 */ lw $t7, 8($a1) +/* 0C38B8 7F08ED88 54CF0004 */ bnel $a2, $t7, .L7F08ED9C +/* 0C38BC 7F08ED8C 8C830004 */ lw $v1, 4($a0) +/* 0C38C0 7F08ED90 03E00008 */ jr $ra +/* 0C38C4 7F08ED94 00A01025 */ move $v0, $a1 + +/* 0C38C8 7F08ED98 8C830004 */ lw $v1, 4($a0) +.L7F08ED9C: +/* 0C38CC 7F08ED9C 24840004 */ addiu $a0, $a0, 4 +/* 0C38D0 7F08EDA0 0461FFF5 */ bgez $v1, .L7F08ED78 +/* 0C38D4 7F08EDA4 00000000 */ nop +.L7F08EDA8: +/* 0C38D8 7F08EDA8 00001025 */ move $v0, $zero +/* 0C38DC 7F08EDAC 03E00008 */ jr $ra +/* 0C38E0 7F08EDB0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EDB4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08EDB4 +/* 0C38E4 7F08EDB4 8C830000 */ lw $v1, ($a0) +/* 0C38E8 7F08EDB8 3C028007 */ lui $v0, %hi(ptr_setup_path_link) +/* 0C38EC 7F08EDBC 00A03025 */ move $a2, $a1 +/* 0C38F0 7F08EDC0 0460000D */ bltz $v1, .L7F08EDF8 +/* 0C38F4 7F08EDC4 8C425D04 */ lw $v0, %lo(ptr_setup_path_link)($v0) +/* 0C38F8 7F08EDC8 2407000C */ li $a3, 12 +.L7F08EDCC: +/* 0C38FC 7F08EDCC 00670019 */ multu $v1, $a3 +/* 0C3900 7F08EDD0 00007012 */ mflo $t6 +/* 0C3904 7F08EDD4 01C22821 */ addu $a1, $t6, $v0 +/* 0C3908 7F08EDD8 8CAF0008 */ lw $t7, 8($a1) +/* 0C390C 7F08EDDC 05E30003 */ bgezl $t7, .L7F08EDEC +/* 0C3910 7F08EDE0 8C830004 */ lw $v1, 4($a0) +/* 0C3914 7F08EDE4 ACA60008 */ sw $a2, 8($a1) +/* 0C3918 7F08EDE8 8C830004 */ lw $v1, 4($a0) +.L7F08EDEC: +/* 0C391C 7F08EDEC 24840004 */ addiu $a0, $a0, 4 +/* 0C3920 7F08EDF0 0461FFF6 */ bgez $v1, .L7F08EDCC +/* 0C3924 7F08EDF4 00000000 */ nop +.L7F08EDF8: +/* 0C3928 7F08EDF8 03E00008 */ jr $ra +/* 0C392C 7F08EDFC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EE00(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08EE00 +/* 0C3930 7F08EE00 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C3934 7F08EE04 AFBF0024 */ sw $ra, 0x24($sp) +/* 0C3938 7F08EE08 AFB20020 */ sw $s2, 0x20($sp) +/* 0C393C 7F08EE0C AFB1001C */ sw $s1, 0x1c($sp) +/* 0C3940 7F08EE10 AFB00018 */ sw $s0, 0x18($sp) +/* 0C3944 7F08EE14 8C860000 */ lw $a2, ($a0) +/* 0C3948 7F08EE18 00808025 */ move $s0, $a0 +/* 0C394C 7F08EE1C 00A08825 */ move $s1, $a1 +/* 0C3950 7F08EE20 10C0000C */ beqz $a2, .L7F08EE54 +/* 0C3954 7F08EE24 00009025 */ move $s2, $zero +/* 0C3958 7F08EE28 8E0E0008 */ lw $t6, 8($s0) +.L7F08EE2C: +/* 0C395C 7F08EE2C 00C02025 */ move $a0, $a2 +/* 0C3960 7F08EE30 26250001 */ addiu $a1, $s1, 1 +/* 0C3964 7F08EE34 562E0004 */ bnel $s1, $t6, .L7F08EE48 +/* 0C3968 7F08EE38 8E06000C */ lw $a2, 0xc($s0) +/* 0C396C 7F08EE3C 0FC23B6D */ jal sub_GAME_7F08EDB4 +/* 0C3970 7F08EE40 24120001 */ li $s2, 1 +/* 0C3974 7F08EE44 8E06000C */ lw $a2, 0xc($s0) +.L7F08EE48: +/* 0C3978 7F08EE48 2610000C */ addiu $s0, $s0, 0xc +/* 0C397C 7F08EE4C 54C0FFF7 */ bnezl $a2, .L7F08EE2C +/* 0C3980 7F08EE50 8E0E0008 */ lw $t6, 8($s0) +.L7F08EE54: +/* 0C3984 7F08EE54 8FBF0024 */ lw $ra, 0x24($sp) +/* 0C3988 7F08EE58 02401025 */ move $v0, $s2 +/* 0C398C 7F08EE5C 8FB20020 */ lw $s2, 0x20($sp) +/* 0C3990 7F08EE60 8FB00018 */ lw $s0, 0x18($sp) +/* 0C3994 7F08EE64 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C3998 7F08EE68 03E00008 */ jr $ra +/* 0C399C 7F08EE6C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EE70(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08EE70 +/* 0C39A0 7F08EE70 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C39A4 7F08EE74 AFBF0024 */ sw $ra, 0x24($sp) +/* 0C39A8 7F08EE78 AFB30020 */ sw $s3, 0x20($sp) +/* 0C39AC 7F08EE7C AFB2001C */ sw $s2, 0x1c($sp) +/* 0C39B0 7F08EE80 AFB10018 */ sw $s1, 0x18($sp) +/* 0C39B4 7F08EE84 AFB00014 */ sw $s0, 0x14($sp) +/* 0C39B8 7F08EE88 8CCE0000 */ lw $t6, ($a2) +/* 0C39BC 7F08EE8C 00C08825 */ move $s1, $a2 +/* 0C39C0 7F08EE90 00E09025 */ move $s2, $a3 +/* 0C39C4 7F08EE94 00A09825 */ move $s3, $a1 +/* 0C39C8 7F08EE98 24080001 */ li $t0, 1 +/* 0C39CC 7F08EE9C 11C00007 */ beqz $t6, .L7F08EEBC +/* 0C39D0 7F08EEA0 00C01025 */ move $v0, $a2 +/* 0C39D4 7F08EEA4 2403FFFF */ li $v1, -1 +/* 0C39D8 7F08EEA8 8C4F000C */ lw $t7, 0xc($v0) +.L7F08EEAC: +/* 0C39DC 7F08EEAC 2442000C */ addiu $v0, $v0, 0xc +/* 0C39E0 7F08EEB0 AC43FFFC */ sw $v1, -4($v0) +/* 0C39E4 7F08EEB4 55E0FFFD */ bnezl $t7, .L7F08EEAC +/* 0C39E8 7F08EEB8 8C4F000C */ lw $t7, 0xc($v0) +.L7F08EEBC: +/* 0C39EC 7F08EEBC AC800008 */ sw $zero, 8($a0) +/* 0C39F0 7F08EEC0 16400003 */ bnez $s2, .L7F08EED0 +/* 0C39F4 7F08EEC4 00008025 */ move $s0, $zero +/* 0C39F8 7F08EEC8 8E780008 */ lw $t8, 8($s3) +/* 0C39FC 7F08EECC 0701000B */ bgez $t8, .L7F08EEFC +.L7F08EED0: +/* 0C3A00 7F08EED0 02202025 */ move $a0, $s1 +.L7F08EED4: +/* 0C3A04 7F08EED4 0FC23B80 */ jal sub_GAME_7F08EE00 +/* 0C3A08 7F08EED8 02002825 */ move $a1, $s0 +/* 0C3A0C 7F08EEDC 26100001 */ addiu $s0, $s0, 1 +/* 0C3A10 7F08EEE0 16400004 */ bnez $s2, .L7F08EEF4 +/* 0C3A14 7F08EEE4 00404025 */ move $t0, $v0 +/* 0C3A18 7F08EEE8 8E790008 */ lw $t9, 8($s3) +/* 0C3A1C 7F08EEEC 07230004 */ bgezl $t9, .L7F08EF00 +/* 0C3A20 7F08EEF0 8FBF0024 */ lw $ra, 0x24($sp) +.L7F08EEF4: +/* 0C3A24 7F08EEF4 5500FFF7 */ bnezl $t0, .L7F08EED4 +/* 0C3A28 7F08EEF8 02202025 */ move $a0, $s1 +.L7F08EEFC: +/* 0C3A2C 7F08EEFC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F08EF00: +/* 0C3A30 7F08EF00 8FB00014 */ lw $s0, 0x14($sp) +/* 0C3A34 7F08EF04 8FB10018 */ lw $s1, 0x18($sp) +/* 0C3A38 7F08EF08 8FB2001C */ lw $s2, 0x1c($sp) +/* 0C3A3C 7F08EF0C 8FB30020 */ lw $s3, 0x20($sp) +/* 0C3A40 7F08EF10 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0C3A44 7F08EF14 03E00008 */ jr $ra +/* 0C3A48 7F08EF18 01001025 */ move $v0, $t0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EF1C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08EF1C +/* 0C3A4C 7F08EF1C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C3A50 7F08EF20 AFBF001C */ sw $ra, 0x1c($sp) +/* 0C3A54 7F08EF24 AFB10018 */ sw $s1, 0x18($sp) +/* 0C3A58 7F08EF28 AFB00014 */ sw $s0, 0x14($sp) +/* 0C3A5C 7F08EF2C AFA50034 */ sw $a1, 0x34($sp) +/* 0C3A60 7F08EF30 0FC23B9C */ jal sub_GAME_7F08EE70 +/* 0C3A64 7F08EF34 00003825 */ move $a3, $zero +/* 0C3A68 7F08EF38 8FA50034 */ lw $a1, 0x34($sp) +/* 0C3A6C 7F08EF3C 10400012 */ beqz $v0, .L7F08EF88 +/* 0C3A70 7F08EF40 AFA20024 */ sw $v0, 0x24($sp) +/* 0C3A74 7F08EF44 8CB00008 */ lw $s0, 8($a1) +/* 0C3A78 7F08EF48 00A08825 */ move $s1, $a1 +/* 0C3A7C 7F08EF4C 2610FFFF */ addiu $s0, $s0, -1 +/* 0C3A80 7F08EF50 0602000B */ bltzl $s0, .L7F08EF80 +/* 0C3A84 7F08EF54 8E380008 */ lw $t8, 8($s1) +.L7F08EF58: +/* 0C3A88 7F08EF58 8E2E0008 */ lw $t6, 8($s1) +/* 0C3A8C 7F08EF5C 8E240000 */ lw $a0, ($s1) +/* 0C3A90 7F08EF60 02002825 */ move $a1, $s0 +/* 0C3A94 7F08EF64 25CF2710 */ addiu $t7, $t6, 0x2710 +/* 0C3A98 7F08EF68 0FC23B58 */ jal sub_GAME_7F08ED60 +/* 0C3A9C 7F08EF6C AE2F0008 */ sw $t7, 8($s1) +/* 0C3AA0 7F08EF70 2610FFFF */ addiu $s0, $s0, -1 +/* 0C3AA4 7F08EF74 0601FFF8 */ bgez $s0, .L7F08EF58 +/* 0C3AA8 7F08EF78 00408825 */ move $s1, $v0 +/* 0C3AAC 7F08EF7C 8E380008 */ lw $t8, 8($s1) +.L7F08EF80: +/* 0C3AB0 7F08EF80 27192710 */ addiu $t9, $t8, 0x2710 +/* 0C3AB4 7F08EF84 AE390008 */ sw $t9, 8($s1) +.L7F08EF88: +/* 0C3AB8 7F08EF88 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C3ABC 7F08EF8C 8FA20024 */ lw $v0, 0x24($sp) +/* 0C3AC0 7F08EF90 8FB00014 */ lw $s0, 0x14($sp) +/* 0C3AC4 7F08EF94 8FB10018 */ lw $s1, 0x18($sp) +/* 0C3AC8 7F08EF98 03E00008 */ jr $ra +/* 0C3ACC 7F08EF9C 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08EFA0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08EFA0 +/* 0C3AD0 7F08EFA0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C3AD4 7F08EFA4 AFB40028 */ sw $s4, 0x28($sp) +/* 0C3AD8 7F08EFA8 AFB30024 */ sw $s3, 0x24($sp) +/* 0C3ADC 7F08EFAC AFB1001C */ sw $s1, 0x1c($sp) +/* 0C3AE0 7F08EFB0 28E10002 */ slti $at, $a3, 2 +/* 0C3AE4 7F08EFB4 00E09825 */ move $s3, $a3 +/* 0C3AE8 7F08EFB8 00A0A025 */ move $s4, $a1 +/* 0C3AEC 7F08EFBC AFBF002C */ sw $ra, 0x2c($sp) +/* 0C3AF0 7F08EFC0 AFB20020 */ sw $s2, 0x20($sp) +/* 0C3AF4 7F08EFC4 AFB00018 */ sw $s0, 0x18($sp) +/* 0C3AF8 7F08EFC8 AFA60038 */ sw $a2, 0x38($sp) +/* 0C3AFC 7F08EFCC 14200022 */ bnez $at, .L7F08F058 +/* 0C3B00 7F08EFD0 00C08825 */ move $s1, $a2 +/* 0C3B04 7F08EFD4 3C068007 */ lui $a2, %hi(ptr_setup_path_link) +/* 0C3B08 7F08EFD8 8CC65D04 */ lw $a2, %lo(ptr_setup_path_link)($a2) +/* 0C3B0C 7F08EFDC 50C0001F */ beql $a2, $zero, .L7F08F05C +/* 0C3B10 7F08EFE0 AE200000 */ sw $zero, ($s1) +/* 0C3B14 7F08EFE4 0FC23BC7 */ jal sub_GAME_7F08EF1C +/* 0C3B18 7F08EFE8 AFA40030 */ sw $a0, 0x30($sp) +/* 0C3B1C 7F08EFEC 1040001A */ beqz $v0, .L7F08F058 +/* 0C3B20 7F08EFF0 8FA40030 */ lw $a0, 0x30($sp) +/* 0C3B24 7F08EFF4 8FA20038 */ lw $v0, 0x38($sp) +/* 0C3B28 7F08EFF8 00809025 */ move $s2, $a0 +/* 0C3B2C 7F08EFFC 2673270F */ addiu $s3, $s3, 0x270f +/* 0C3B30 7F08F000 AC440000 */ sw $a0, ($v0) +/* 0C3B34 7F08F004 8E8E0008 */ lw $t6, 8($s4) +/* 0C3B38 7F08F008 24102711 */ li $s0, 10001 +/* 0C3B3C 7F08F00C 24510004 */ addiu $s1, $v0, 4 +/* 0C3B40 7F08F010 29C12711 */ slti $at, $t6, 0x2711 +/* 0C3B44 7F08F014 14200010 */ bnez $at, .L7F08F058 +/* 0C3B48 7F08F018 2A612712 */ slti $at, $s3, 0x2712 +/* 0C3B4C 7F08F01C 5420000F */ bnezl $at, .L7F08F05C +/* 0C3B50 7F08F020 AE200000 */ sw $zero, ($s1) +/* 0C3B54 7F08F024 8E440000 */ lw $a0, ($s2) +.L7F08F028: +/* 0C3B58 7F08F028 0FC23B58 */ jal sub_GAME_7F08ED60 +/* 0C3B5C 7F08F02C 02002825 */ move $a1, $s0 +/* 0C3B60 7F08F030 AE220000 */ sw $v0, ($s1) +/* 0C3B64 7F08F034 8E8F0008 */ lw $t7, 8($s4) +/* 0C3B68 7F08F038 26100001 */ addiu $s0, $s0, 1 +/* 0C3B6C 7F08F03C 00409025 */ move $s2, $v0 +/* 0C3B70 7F08F040 01F0082A */ slt $at, $t7, $s0 +/* 0C3B74 7F08F044 14200004 */ bnez $at, .L7F08F058 +/* 0C3B78 7F08F048 26310004 */ addiu $s1, $s1, 4 +/* 0C3B7C 7F08F04C 0213082A */ slt $at, $s0, $s3 +/* 0C3B80 7F08F050 5420FFF5 */ bnezl $at, .L7F08F028 +/* 0C3B84 7F08F054 8E440000 */ lw $a0, ($s2) +.L7F08F058: +/* 0C3B88 7F08F058 AE200000 */ sw $zero, ($s1) +.L7F08F05C: +/* 0C3B8C 7F08F05C 8FB80038 */ lw $t8, 0x38($sp) +/* 0C3B90 7F08F060 26310004 */ addiu $s1, $s1, 4 +/* 0C3B94 7F08F064 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C3B98 7F08F068 02381023 */ subu $v0, $s1, $t8 +/* 0C3B9C 7F08F06C 0002C883 */ sra $t9, $v0, 2 +/* 0C3BA0 7F08F070 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C3BA4 7F08F074 8FB40028 */ lw $s4, 0x28($sp) +/* 0C3BA8 7F08F078 8FB30024 */ lw $s3, 0x24($sp) +/* 0C3BAC 7F08F07C 8FB20020 */ lw $s2, 0x20($sp) +/* 0C3BB0 7F08F080 8FB00018 */ lw $s0, 0x18($sp) +/* 0C3BB4 7F08F084 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0C3BB8 7F08F088 03E00008 */ jr $ra +/* 0C3BBC 7F08F08C 03201025 */ move $v0, $t9 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08F090(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08F090 +/* 0C3BC0 7F08F090 8C830000 */ lw $v1, ($a0) +/* 0C3BC4 7F08F094 3C028007 */ lui $v0, %hi(ptr_setup_path_tbl) +/* 0C3BC8 7F08F098 00A03825 */ move $a3, $a1 +/* 0C3BCC 7F08F09C 0460000F */ bltz $v1, .L7F08F0DC +/* 0C3BD0 7F08F0A0 8C425D00 */ lw $v0, %lo(ptr_setup_path_tbl)($v0) +/* 0C3BD4 7F08F0A4 00037100 */ sll $t6, $v1, 4 +.L7F08F0A8: +/* 0C3BD8 7F08F0A8 01C22821 */ addu $a1, $t6, $v0 +/* 0C3BDC 7F08F0AC 8CAF0008 */ lw $t7, 8($a1) +/* 0C3BE0 7F08F0B0 54CF0007 */ bnel $a2, $t7, .L7F08F0D0 +/* 0C3BE4 7F08F0B4 8C830004 */ lw $v1, 4($a0) +/* 0C3BE8 7F08F0B8 8CB8000C */ lw $t8, 0xc($a1) +/* 0C3BEC 7F08F0BC 54F80004 */ bnel $a3, $t8, .L7F08F0D0 +/* 0C3BF0 7F08F0C0 8C830004 */ lw $v1, 4($a0) +/* 0C3BF4 7F08F0C4 03E00008 */ jr $ra +/* 0C3BF8 7F08F0C8 00A01025 */ move $v0, $a1 + +/* 0C3BFC 7F08F0CC 8C830004 */ lw $v1, 4($a0) +.L7F08F0D0: +/* 0C3C00 7F08F0D0 24840004 */ addiu $a0, $a0, 4 +/* 0C3C04 7F08F0D4 0463FFF4 */ bgezl $v1, .L7F08F0A8 +/* 0C3C08 7F08F0D8 00037100 */ sll $t6, $v1, 4 +.L7F08F0DC: +/* 0C3C0C 7F08F0DC 00001025 */ move $v0, $zero +/* 0C3C10 7F08F0E0 03E00008 */ jr $ra +/* 0C3C14 7F08F0E4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08F0E8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08F0E8 +/* 0C3C18 7F08F0E8 8C830000 */ lw $v1, ($a0) +/* 0C3C1C 7F08F0EC 3C028007 */ lui $v0, %hi(ptr_setup_path_tbl) +/* 0C3C20 7F08F0F0 00A03825 */ move $a3, $a1 +/* 0C3C24 7F08F0F4 0460000E */ bltz $v1, .L7F08F130 +/* 0C3C28 7F08F0F8 8C425D00 */ lw $v0, %lo(ptr_setup_path_tbl)($v0) +/* 0C3C2C 7F08F0FC 00037100 */ sll $t6, $v1, 4 +.L7F08F100: +/* 0C3C30 7F08F100 01C22821 */ addu $a1, $t6, $v0 +/* 0C3C34 7F08F104 8CAF0008 */ lw $t7, 8($a1) +/* 0C3C38 7F08F108 54CF0006 */ bnel $a2, $t7, .L7F08F124 +/* 0C3C3C 7F08F10C 8C830004 */ lw $v1, 4($a0) +/* 0C3C40 7F08F110 8CB8000C */ lw $t8, 0xc($a1) +/* 0C3C44 7F08F114 07030003 */ bgezl $t8, .L7F08F124 +/* 0C3C48 7F08F118 8C830004 */ lw $v1, 4($a0) +/* 0C3C4C 7F08F11C ACA7000C */ sw $a3, 0xc($a1) +/* 0C3C50 7F08F120 8C830004 */ lw $v1, 4($a0) +.L7F08F124: +/* 0C3C54 7F08F124 24840004 */ addiu $a0, $a0, 4 +/* 0C3C58 7F08F128 0463FFF5 */ bgezl $v1, .L7F08F100 +/* 0C3C5C 7F08F12C 00037100 */ sll $t6, $v1, 4 +.L7F08F130: +/* 0C3C60 7F08F130 03E00008 */ jr $ra +/* 0C3C64 7F08F134 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08F138(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08F138 +/* 0C3C68 7F08F138 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C3C6C 7F08F13C AFBF002C */ sw $ra, 0x2c($sp) +/* 0C3C70 7F08F140 AFB40028 */ sw $s4, 0x28($sp) +/* 0C3C74 7F08F144 AFB30024 */ sw $s3, 0x24($sp) +/* 0C3C78 7F08F148 AFB20020 */ sw $s2, 0x20($sp) +/* 0C3C7C 7F08F14C AFB1001C */ sw $s1, 0x1c($sp) +/* 0C3C80 7F08F150 AFB00018 */ sw $s0, 0x18($sp) +/* 0C3C84 7F08F154 8C820000 */ lw $v0, ($a0) +/* 0C3C88 7F08F158 3C138007 */ lui $s3, %hi(ptr_setup_path_tbl) +/* 0C3C8C 7F08F15C 00808025 */ move $s0, $a0 +/* 0C3C90 7F08F160 00A08825 */ move $s1, $a1 +/* 0C3C94 7F08F164 00C0A025 */ move $s4, $a2 +/* 0C3C98 7F08F168 00009025 */ move $s2, $zero +/* 0C3C9C 7F08F16C 04400011 */ bltz $v0, .L7F08F1B4 +/* 0C3CA0 7F08F170 8E735D00 */ lw $s3, %lo(ptr_setup_path_tbl)($s3) +/* 0C3CA4 7F08F174 00027100 */ sll $t6, $v0, 4 +.L7F08F178: +/* 0C3CA8 7F08F178 01D31821 */ addu $v1, $t6, $s3 +/* 0C3CAC 7F08F17C 8C6F000C */ lw $t7, 0xc($v1) +/* 0C3CB0 7F08F180 562F0009 */ bnel $s1, $t7, .L7F08F1A8 +/* 0C3CB4 7F08F184 8E020004 */ lw $v0, 4($s0) +/* 0C3CB8 7F08F188 8C640004 */ lw $a0, 4($v1) +/* 0C3CBC 7F08F18C 26250001 */ addiu $a1, $s1, 1 +/* 0C3CC0 7F08F190 02803025 */ move $a2, $s4 +/* 0C3CC4 7F08F194 50800004 */ beql $a0, $zero, .L7F08F1A8 +/* 0C3CC8 7F08F198 8E020004 */ lw $v0, 4($s0) +/* 0C3CCC 7F08F19C 0FC23C3A */ jal sub_GAME_7F08F0E8 +/* 0C3CD0 7F08F1A0 24120001 */ li $s2, 1 +/* 0C3CD4 7F08F1A4 8E020004 */ lw $v0, 4($s0) +.L7F08F1A8: +/* 0C3CD8 7F08F1A8 26100004 */ addiu $s0, $s0, 4 +/* 0C3CDC 7F08F1AC 0443FFF2 */ bgezl $v0, .L7F08F178 +/* 0C3CE0 7F08F1B0 00027100 */ sll $t6, $v0, 4 +.L7F08F1B4: +/* 0C3CE4 7F08F1B4 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C3CE8 7F08F1B8 02401025 */ move $v0, $s2 +/* 0C3CEC 7F08F1BC 8FB20020 */ lw $s2, 0x20($sp) +/* 0C3CF0 7F08F1C0 8FB00018 */ lw $s0, 0x18($sp) +/* 0C3CF4 7F08F1C4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C3CF8 7F08F1C8 8FB30024 */ lw $s3, 0x24($sp) +/* 0C3CFC 7F08F1CC 8FB40028 */ lw $s4, 0x28($sp) +/* 0C3D00 7F08F1D0 03E00008 */ jr $ra +/* 0C3D04 7F08F1D4 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08F1D8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08F1D8 +/* 0C3D08 7F08F1D8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C3D0C 7F08F1DC AFBF002C */ sw $ra, 0x2c($sp) +/* 0C3D10 7F08F1E0 AFB50028 */ sw $s5, 0x28($sp) +/* 0C3D14 7F08F1E4 AFB40024 */ sw $s4, 0x24($sp) +/* 0C3D18 7F08F1E8 AFB30020 */ sw $s3, 0x20($sp) +/* 0C3D1C 7F08F1EC AFB2001C */ sw $s2, 0x1c($sp) +/* 0C3D20 7F08F1F0 AFB10018 */ sw $s1, 0x18($sp) +/* 0C3D24 7F08F1F4 AFB00014 */ sw $s0, 0x14($sp) +/* 0C3D28 7F08F1F8 8C8E0008 */ lw $t6, 8($a0) +/* 0C3D2C 7F08F1FC 2415000C */ li $s5, 12 +/* 0C3D30 7F08F200 3C028007 */ lui $v0, %hi(ptr_setup_path_tbl) +/* 0C3D34 7F08F204 01D50019 */ multu $t6, $s5 +/* 0C3D38 7F08F208 24425D00 */ addiu $v0, %lo(ptr_setup_path_tbl) # addiu $v0, $v0, 0x5d00 +/* 0C3D3C 7F08F20C 8C510004 */ lw $s1, 4($v0) +/* 0C3D40 7F08F210 00809025 */ move $s2, $a0 +/* 0C3D44 7F08F214 00C09825 */ move $s3, $a2 +/* 0C3D48 7F08F218 00A0A025 */ move $s4, $a1 +/* 0C3D4C 7F08F21C 8C480000 */ lw $t0, ($v0) +/* 0C3D50 7F08F220 2404FFFF */ li $a0, -1 +/* 0C3D54 7F08F224 00008025 */ move $s0, $zero +/* 0C3D58 7F08F228 00007812 */ mflo $t7 +/* 0C3D5C 7F08F22C 022FC021 */ addu $t8, $s1, $t7 +/* 0C3D60 7F08F230 8F030004 */ lw $v1, 4($t8) +/* 0C3D64 7F08F234 8C670000 */ lw $a3, ($v1) +/* 0C3D68 7F08F238 04E00007 */ bltz $a3, .L7F08F258 +/* 0C3D6C 7F08F23C 0007C900 */ sll $t9, $a3, 4 +.L7F08F240: +/* 0C3D70 7F08F240 03281021 */ addu $v0, $t9, $t0 +/* 0C3D74 7F08F244 AC44000C */ sw $a0, 0xc($v0) +/* 0C3D78 7F08F248 8C670004 */ lw $a3, 4($v1) +/* 0C3D7C 7F08F24C 24630004 */ addiu $v1, $v1, 4 +/* 0C3D80 7F08F250 04E3FFFB */ bgezl $a3, .L7F08F240 +/* 0C3D84 7F08F254 0007C900 */ sll $t9, $a3, 4 +.L7F08F258: +/* 0C3D88 7F08F258 16600004 */ bnez $s3, .L7F08F26C +/* 0C3D8C 7F08F25C AE40000C */ sw $zero, 0xc($s2) +/* 0C3D90 7F08F260 8E89000C */ lw $t1, 0xc($s4) +/* 0C3D94 7F08F264 05230011 */ bgezl $t1, .L7F08F2AC +/* 0C3D98 7F08F268 8FBF002C */ lw $ra, 0x2c($sp) +.L7F08F26C: +/* 0C3D9C 7F08F26C 8E460008 */ lw $a2, 8($s2) +.L7F08F270: +/* 0C3DA0 7F08F270 02002825 */ move $a1, $s0 +/* 0C3DA4 7F08F274 00D50019 */ multu $a2, $s5 +/* 0C3DA8 7F08F278 00005012 */ mflo $t2 +/* 0C3DAC 7F08F27C 022A5821 */ addu $t3, $s1, $t2 +/* 0C3DB0 7F08F280 0FC23C4E */ jal sub_GAME_7F08F138 +/* 0C3DB4 7F08F284 8D640004 */ lw $a0, 4($t3) +/* 0C3DB8 7F08F288 26100001 */ addiu $s0, $s0, 1 +/* 0C3DBC 7F08F28C 16600004 */ bnez $s3, .L7F08F2A0 +/* 0C3DC0 7F08F290 00401825 */ move $v1, $v0 +/* 0C3DC4 7F08F294 8E8C000C */ lw $t4, 0xc($s4) +/* 0C3DC8 7F08F298 05830004 */ bgezl $t4, .L7F08F2AC +/* 0C3DCC 7F08F29C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F08F2A0: +/* 0C3DD0 7F08F2A0 5460FFF3 */ bnezl $v1, .L7F08F270 +/* 0C3DD4 7F08F2A4 8E460008 */ lw $a2, 8($s2) +/* 0C3DD8 7F08F2A8 8FBF002C */ lw $ra, 0x2c($sp) +.L7F08F2AC: +/* 0C3DDC 7F08F2AC 8FB00014 */ lw $s0, 0x14($sp) +/* 0C3DE0 7F08F2B0 8FB10018 */ lw $s1, 0x18($sp) +/* 0C3DE4 7F08F2B4 8FB2001C */ lw $s2, 0x1c($sp) +/* 0C3DE8 7F08F2B8 8FB30020 */ lw $s3, 0x20($sp) +/* 0C3DEC 7F08F2BC 8FB40024 */ lw $s4, 0x24($sp) +/* 0C3DF0 7F08F2C0 8FB50028 */ lw $s5, 0x28($sp) +/* 0C3DF4 7F08F2C4 03E00008 */ jr $ra +/* 0C3DF8 7F08F2C8 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08F2CC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08F2CC +/* 0C3DFC 7F08F2CC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C3E00 7F08F2D0 AFBF0024 */ sw $ra, 0x24($sp) +/* 0C3E04 7F08F2D4 AFB20020 */ sw $s2, 0x20($sp) +/* 0C3E08 7F08F2D8 00809025 */ move $s2, $a0 +/* 0C3E0C 7F08F2DC AFB1001C */ sw $s1, 0x1c($sp) +/* 0C3E10 7F08F2E0 AFB00018 */ sw $s0, 0x18($sp) +/* 0C3E14 7F08F2E4 AFA5002C */ sw $a1, 0x2c($sp) +/* 0C3E18 7F08F2E8 0FC23C76 */ jal sub_GAME_7F08F1D8 +/* 0C3E1C 7F08F2EC 00003025 */ move $a2, $zero +/* 0C3E20 7F08F2F0 8FB1002C */ lw $s1, 0x2c($sp) +/* 0C3E24 7F08F2F4 8E30000C */ lw $s0, 0xc($s1) +/* 0C3E28 7F08F2F8 2610FFFF */ addiu $s0, $s0, -1 +/* 0C3E2C 7F08F2FC 0602000C */ bltzl $s0, .L7F08F330 +/* 0C3E30 7F08F300 8E38000C */ lw $t8, 0xc($s1) +.L7F08F304: +/* 0C3E34 7F08F304 8E2E000C */ lw $t6, 0xc($s1) +/* 0C3E38 7F08F308 8E240004 */ lw $a0, 4($s1) +/* 0C3E3C 7F08F30C 02002825 */ move $a1, $s0 +/* 0C3E40 7F08F310 25CF2710 */ addiu $t7, $t6, 0x2710 +/* 0C3E44 7F08F314 AE2F000C */ sw $t7, 0xc($s1) +/* 0C3E48 7F08F318 0FC23C24 */ jal sub_GAME_7F08F090 +/* 0C3E4C 7F08F31C 8E460008 */ lw $a2, 8($s2) +/* 0C3E50 7F08F320 2610FFFF */ addiu $s0, $s0, -1 +/* 0C3E54 7F08F324 0601FFF7 */ bgez $s0, .L7F08F304 +/* 0C3E58 7F08F328 00408825 */ move $s1, $v0 +/* 0C3E5C 7F08F32C 8E38000C */ lw $t8, 0xc($s1) +.L7F08F330: +/* 0C3E60 7F08F330 27192710 */ addiu $t9, $t8, 0x2710 +/* 0C3E64 7F08F334 AE39000C */ sw $t9, 0xc($s1) +/* 0C3E68 7F08F338 8FBF0024 */ lw $ra, 0x24($sp) +/* 0C3E6C 7F08F33C 8FB20020 */ lw $s2, 0x20($sp) +/* 0C3E70 7F08F340 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C3E74 7F08F344 8FB00018 */ lw $s0, 0x18($sp) +/* 0C3E78 7F08F348 03E00008 */ jr $ra +/* 0C3E7C 7F08F34C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08F350(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08F350 +/* 0C3E80 7F08F350 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C3E84 7F08F354 AFB50028 */ sw $s5, 0x28($sp) +/* 0C3E88 7F08F358 AFB40024 */ sw $s4, 0x24($sp) +/* 0C3E8C 7F08F35C AFB30020 */ sw $s3, 0x20($sp) +/* 0C3E90 7F08F360 AFB10018 */ sw $s1, 0x18($sp) +/* 0C3E94 7F08F364 28E10002 */ slti $at, $a3, 2 +/* 0C3E98 7F08F368 00E09825 */ move $s3, $a3 +/* 0C3E9C 7F08F36C 0080A025 */ move $s4, $a0 +/* 0C3EA0 7F08F370 00A0A825 */ move $s5, $a1 +/* 0C3EA4 7F08F374 AFBF002C */ sw $ra, 0x2c($sp) +/* 0C3EA8 7F08F378 AFB2001C */ sw $s2, 0x1c($sp) +/* 0C3EAC 7F08F37C AFB00014 */ sw $s0, 0x14($sp) +/* 0C3EB0 7F08F380 AFA60038 */ sw $a2, 0x38($sp) +/* 0C3EB4 7F08F384 1420001D */ bnez $at, .L7F08F3FC +/* 0C3EB8 7F08F388 00C08825 */ move $s1, $a2 +/* 0C3EBC 7F08F38C 0FC23CB3 */ jal sub_GAME_7F08F2CC +/* 0C3EC0 7F08F390 00000000 */ nop +/* 0C3EC4 7F08F394 8FA20038 */ lw $v0, 0x38($sp) +/* 0C3EC8 7F08F398 02809025 */ move $s2, $s4 +/* 0C3ECC 7F08F39C 2673270F */ addiu $s3, $s3, 0x270f +/* 0C3ED0 7F08F3A0 AC540000 */ sw $s4, ($v0) +/* 0C3ED4 7F08F3A4 8EAE000C */ lw $t6, 0xc($s5) +/* 0C3ED8 7F08F3A8 24102711 */ li $s0, 10001 +/* 0C3EDC 7F08F3AC 24510004 */ addiu $s1, $v0, 4 +/* 0C3EE0 7F08F3B0 29C12711 */ slti $at, $t6, 0x2711 +/* 0C3EE4 7F08F3B4 14200011 */ bnez $at, .L7F08F3FC +/* 0C3EE8 7F08F3B8 2A612712 */ slti $at, $s3, 0x2712 +/* 0C3EEC 7F08F3BC 54200010 */ bnezl $at, .L7F08F400 +/* 0C3EF0 7F08F3C0 AE200000 */ sw $zero, ($s1) +/* 0C3EF4 7F08F3C4 8E440004 */ lw $a0, 4($s2) +.L7F08F3C8: +/* 0C3EF8 7F08F3C8 02002825 */ move $a1, $s0 +/* 0C3EFC 7F08F3CC 0FC23C24 */ jal sub_GAME_7F08F090 +/* 0C3F00 7F08F3D0 8E860008 */ lw $a2, 8($s4) +/* 0C3F04 7F08F3D4 AE220000 */ sw $v0, ($s1) +/* 0C3F08 7F08F3D8 8EAF000C */ lw $t7, 0xc($s5) +/* 0C3F0C 7F08F3DC 26100001 */ addiu $s0, $s0, 1 +/* 0C3F10 7F08F3E0 00409025 */ move $s2, $v0 +/* 0C3F14 7F08F3E4 01F0082A */ slt $at, $t7, $s0 +/* 0C3F18 7F08F3E8 14200004 */ bnez $at, .L7F08F3FC +/* 0C3F1C 7F08F3EC 26310004 */ addiu $s1, $s1, 4 +/* 0C3F20 7F08F3F0 0213082A */ slt $at, $s0, $s3 +/* 0C3F24 7F08F3F4 5420FFF4 */ bnezl $at, .L7F08F3C8 +/* 0C3F28 7F08F3F8 8E440004 */ lw $a0, 4($s2) +.L7F08F3FC: +/* 0C3F2C 7F08F3FC AE200000 */ sw $zero, ($s1) +.L7F08F400: +/* 0C3F30 7F08F400 8FB80038 */ lw $t8, 0x38($sp) +/* 0C3F34 7F08F404 26310004 */ addiu $s1, $s1, 4 +/* 0C3F38 7F08F408 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C3F3C 7F08F40C 02381023 */ subu $v0, $s1, $t8 +/* 0C3F40 7F08F410 0002C883 */ sra $t9, $v0, 2 +/* 0C3F44 7F08F414 8FB10018 */ lw $s1, 0x18($sp) +/* 0C3F48 7F08F418 8FB50028 */ lw $s5, 0x28($sp) +/* 0C3F4C 7F08F41C 8FB40024 */ lw $s4, 0x24($sp) +/* 0C3F50 7F08F420 8FB30020 */ lw $s3, 0x20($sp) +/* 0C3F54 7F08F424 8FB2001C */ lw $s2, 0x1c($sp) +/* 0C3F58 7F08F428 8FB00014 */ lw $s0, 0x14($sp) +/* 0C3F5C 7F08F42C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0C3F60 7F08F430 03E00008 */ jr $ra +/* 0C3F64 7F08F434 03201025 */ move $v0, $t9 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08F438(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08F438 +/* 0C3F68 7F08F438 27BDFFF8 */ addiu $sp, $sp, -8 +/* 0C3F6C 7F08F43C AFB00004 */ sw $s0, 4($sp) +/* 0C3F70 7F08F440 AFA60010 */ sw $a2, 0x10($sp) +/* 0C3F74 7F08F444 AFA70014 */ sw $a3, 0x14($sp) +/* 0C3F78 7F08F448 8C880004 */ lw $t0, 4($a0) +/* 0C3F7C 7F08F44C 3C0A8007 */ lui $t2, %hi(ptr_setup_path_tbl) +/* 0C3F80 7F08F450 254A5D00 */ addiu $t2, %lo(ptr_setup_path_tbl) # addiu $t2, $t2, 0x5d00 +/* 0C3F84 7F08F454 8D090000 */ lw $t1, ($t0) +/* 0C3F88 7F08F458 00A08025 */ move $s0, $a1 +/* 0C3F8C 7F08F45C 8D420000 */ lw $v0, ($t2) +/* 0C3F90 7F08F460 0520001C */ bltz $t1, .L7F08F4D4 +/* 0C3F94 7F08F464 8D430004 */ lw $v1, 4($t2) +/* 0C3F98 7F08F468 240A000C */ li $t2, 12 +/* 0C3F9C 7F08F46C 00097100 */ sll $t6, $t1, 4 +.L7F08F470: +/* 0C3FA0 7F08F470 01C22021 */ addu $a0, $t6, $v0 +/* 0C3FA4 7F08F474 8C850004 */ lw $a1, 4($a0) +/* 0C3FA8 7F08F478 8CA60000 */ lw $a2, ($a1) +/* 0C3FAC 7F08F47C 04C00011 */ bltz $a2, .L7F08F4C4 +/* 0C3FB0 7F08F480 00067900 */ sll $t7, $a2, 4 +.L7F08F484: +/* 0C3FB4 7F08F484 01E23821 */ addu $a3, $t7, $v0 +/* 0C3FB8 7F08F488 8CF80008 */ lw $t8, 8($a3) +/* 0C3FBC 7F08F48C 030A0019 */ multu $t8, $t2 +/* 0C3FC0 7F08F490 0000C812 */ mflo $t9 +/* 0C3FC4 7F08F494 03235821 */ addu $t3, $t9, $v1 +/* 0C3FC8 7F08F498 560B0007 */ bnel $s0, $t3, .L7F08F4B8 +/* 0C3FCC 7F08F49C 8CA60004 */ lw $a2, 4($a1) +/* 0C3FD0 7F08F4A0 8FAC0010 */ lw $t4, 0x10($sp) +/* 0C3FD4 7F08F4A4 AD840000 */ sw $a0, ($t4) +/* 0C3FD8 7F08F4A8 8FAD0014 */ lw $t5, 0x14($sp) +/* 0C3FDC 7F08F4AC 1000000D */ b .L7F08F4E4 +/* 0C3FE0 7F08F4B0 ADA70000 */ sw $a3, ($t5) +/* 0C3FE4 7F08F4B4 8CA60004 */ lw $a2, 4($a1) +.L7F08F4B8: +/* 0C3FE8 7F08F4B8 24A50004 */ addiu $a1, $a1, 4 +/* 0C3FEC 7F08F4BC 04C3FFF1 */ bgezl $a2, .L7F08F484 +/* 0C3FF0 7F08F4C0 00067900 */ sll $t7, $a2, 4 +.L7F08F4C4: +/* 0C3FF4 7F08F4C4 8D090004 */ lw $t1, 4($t0) +/* 0C3FF8 7F08F4C8 25080004 */ addiu $t0, $t0, 4 +/* 0C3FFC 7F08F4CC 0523FFE8 */ bgezl $t1, .L7F08F470 +/* 0C4000 7F08F4D0 00097100 */ sll $t6, $t1, 4 +.L7F08F4D4: +/* 0C4004 7F08F4D4 8FAE0014 */ lw $t6, 0x14($sp) +/* 0C4008 7F08F4D8 ADC00000 */ sw $zero, ($t6) +/* 0C400C 7F08F4DC 8FAF0010 */ lw $t7, 0x10($sp) +/* 0C4010 7F08F4E0 ADE00000 */ sw $zero, ($t7) +.L7F08F4E4: +/* 0C4014 7F08F4E4 8FB00004 */ lw $s0, 4($sp) +/* 0C4018 7F08F4E8 03E00008 */ jr $ra +/* 0C401C 7F08F4EC 27BD0008 */ addiu $sp, $sp, 8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08F4F0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08F4F0 +/* 0C4020 7F08F4F0 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0C4024 7F08F4F4 AFB00018 */ sw $s0, 0x18($sp) +/* 0C4028 7F08F4F8 3C108007 */ lui $s0, %hi(ptr_setup_path_link) +/* 0C402C 7F08F4FC 8E105D04 */ lw $s0, %lo(ptr_setup_path_link)($s0) +/* 0C4030 7F08F500 AFB60030 */ sw $s6, 0x30($sp) +/* 0C4034 7F08F504 AFB40028 */ sw $s4, 0x28($sp) +/* 0C4038 7F08F508 AFB1001C */ sw $s1, 0x1c($sp) +/* 0C403C 7F08F50C 00E08825 */ move $s1, $a3 +/* 0C4040 7F08F510 0080B025 */ move $s6, $a0 +/* 0C4044 7F08F514 AFBF003C */ sw $ra, 0x3c($sp) +/* 0C4048 7F08F518 AFBE0038 */ sw $fp, 0x38($sp) +/* 0C404C 7F08F51C AFB70034 */ sw $s7, 0x34($sp) +/* 0C4050 7F08F520 AFB5002C */ sw $s5, 0x2c($sp) +/* 0C4054 7F08F524 AFB30024 */ sw $s3, 0x24($sp) +/* 0C4058 7F08F528 AFB20020 */ sw $s2, 0x20($sp) +/* 0C405C 7F08F52C AFA50074 */ sw $a1, 0x74($sp) +/* 0C4060 7F08F530 AFA60078 */ sw $a2, 0x78($sp) +/* 0C4064 7F08F534 1200003F */ beqz $s0, .L7F08F634 +/* 0C4068 7F08F538 00C0A025 */ move $s4, $a2 +/* 0C406C 7F08F53C 8C8E0008 */ lw $t6, 8($a0) +/* 0C4070 7F08F540 2402000C */ li $v0, 12 +/* 0C4074 7F08F544 8CB90008 */ lw $t9, 8($a1) +/* 0C4078 7F08F548 01C20019 */ multu $t6, $v0 +/* 0C407C 7F08F54C 02003025 */ move $a2, $s0 +/* 0C4080 7F08F550 00007812 */ mflo $t7 +/* 0C4084 7F08F554 01F09821 */ addu $s3, $t7, $s0 +/* 0C4088 7F08F558 02602025 */ move $a0, $s3 +/* 0C408C 7F08F55C 03220019 */ multu $t9, $v0 +/* 0C4090 7F08F560 00004012 */ mflo $t0 +/* 0C4094 7F08F564 0110F021 */ addu $fp, $t0, $s0 +/* 0C4098 7F08F568 0FC23BC7 */ jal sub_GAME_7F08EF1C +/* 0C409C 7F08F56C 03C02825 */ move $a1, $fp +/* 0C40A0 7F08F570 50400031 */ beql $v0, $zero, .L7F08F638 +/* 0C40A4 7F08F574 AE800000 */ sw $zero, ($s4) +/* 0C40A8 7F08F578 8E700008 */ lw $s0, 8($s3) +/* 0C40AC 7F08F57C 8FC90008 */ lw $t1, 8($fp) +/* 0C40B0 7F08F580 02C0A825 */ move $s5, $s6 +/* 0C40B4 7F08F584 26100001 */ addiu $s0, $s0, 1 +/* 0C40B8 7F08F588 0130082A */ slt $at, $t1, $s0 +/* 0C40BC 7F08F58C 14200021 */ bnez $at, .L7F08F614 +/* 0C40C0 7F08F590 02609025 */ move $s2, $s3 +/* 0C40C4 7F08F594 2A210002 */ slti $at, $s1, 2 +/* 0C40C8 7F08F598 1420001E */ bnez $at, .L7F08F614 +/* 0C40CC 7F08F59C 27B70044 */ addiu $s7, $sp, 0x44 +/* 0C40D0 7F08F5A0 27B60048 */ addiu $s6, $sp, 0x48 +/* 0C40D4 7F08F5A4 8E440000 */ lw $a0, ($s2) +.L7F08F5A8: +/* 0C40D8 7F08F5A8 0FC23B58 */ jal sub_GAME_7F08ED60 +/* 0C40DC 7F08F5AC 02002825 */ move $a1, $s0 +/* 0C40E0 7F08F5B0 00409825 */ move $s3, $v0 +/* 0C40E4 7F08F5B4 02402025 */ move $a0, $s2 +/* 0C40E8 7F08F5B8 00402825 */ move $a1, $v0 +/* 0C40EC 7F08F5BC 02C03025 */ move $a2, $s6 +/* 0C40F0 7F08F5C0 0FC23D0E */ jal sub_GAME_7F08F438 +/* 0C40F4 7F08F5C4 02E03825 */ move $a3, $s7 +/* 0C40F8 7F08F5C8 02A02025 */ move $a0, $s5 +/* 0C40FC 7F08F5CC 8FA50048 */ lw $a1, 0x48($sp) +/* 0C4100 7F08F5D0 02803025 */ move $a2, $s4 +/* 0C4104 7F08F5D4 0FC23CD4 */ jal sub_GAME_7F08F350 +/* 0C4108 7F08F5D8 02203825 */ move $a3, $s1 +/* 0C410C 7F08F5DC 8FCC0008 */ lw $t4, 8($fp) +/* 0C4110 7F08F5E0 26100001 */ addiu $s0, $s0, 1 +/* 0C4114 7F08F5E4 244AFFFF */ addiu $t2, $v0, -1 +/* 0C4118 7F08F5E8 02228823 */ subu $s1, $s1, $v0 +/* 0C411C 7F08F5EC 000A5880 */ sll $t3, $t2, 2 +/* 0C4120 7F08F5F0 0190082A */ slt $at, $t4, $s0 +/* 0C4124 7F08F5F4 26310001 */ addiu $s1, $s1, 1 +/* 0C4128 7F08F5F8 028BA021 */ addu $s4, $s4, $t3 +/* 0C412C 7F08F5FC 8FB50044 */ lw $s5, 0x44($sp) +/* 0C4130 7F08F600 14200004 */ bnez $at, .L7F08F614 +/* 0C4134 7F08F604 02609025 */ move $s2, $s3 +/* 0C4138 7F08F608 2A210002 */ slti $at, $s1, 2 +/* 0C413C 7F08F60C 5020FFE6 */ beql $at, $zero, .L7F08F5A8 +/* 0C4140 7F08F610 8E440000 */ lw $a0, ($s2) +.L7F08F614: +/* 0C4144 7F08F614 02A02025 */ move $a0, $s5 +/* 0C4148 7F08F618 8FA50074 */ lw $a1, 0x74($sp) +/* 0C414C 7F08F61C 02803025 */ move $a2, $s4 +/* 0C4150 7F08F620 0FC23CD4 */ jal sub_GAME_7F08F350 +/* 0C4154 7F08F624 02203825 */ move $a3, $s1 +/* 0C4158 7F08F628 244DFFFF */ addiu $t5, $v0, -1 +/* 0C415C 7F08F62C 000D7080 */ sll $t6, $t5, 2 +/* 0C4160 7F08F630 028EA021 */ addu $s4, $s4, $t6 +.L7F08F634: +/* 0C4164 7F08F634 AE800000 */ sw $zero, ($s4) +.L7F08F638: +/* 0C4168 7F08F638 8FAF0078 */ lw $t7, 0x78($sp) +/* 0C416C 7F08F63C 26940004 */ addiu $s4, $s4, 4 +/* 0C4170 7F08F640 8FBF003C */ lw $ra, 0x3c($sp) +/* 0C4174 7F08F644 028F1023 */ subu $v0, $s4, $t7 +/* 0C4178 7F08F648 0002C083 */ sra $t8, $v0, 2 +/* 0C417C 7F08F64C 8FB40028 */ lw $s4, 0x28($sp) +/* 0C4180 7F08F650 8FBE0038 */ lw $fp, 0x38($sp) +/* 0C4184 7F08F654 8FB70034 */ lw $s7, 0x34($sp) +/* 0C4188 7F08F658 8FB60030 */ lw $s6, 0x30($sp) +/* 0C418C 7F08F65C 8FB5002C */ lw $s5, 0x2c($sp) +/* 0C4190 7F08F660 8FB30024 */ lw $s3, 0x24($sp) +/* 0C4194 7F08F664 8FB20020 */ lw $s2, 0x20($sp) +/* 0C4198 7F08F668 8FB1001C */ lw $s1, 0x1c($sp) +/* 0C419C 7F08F66C 8FB00018 */ lw $s0, 0x18($sp) +/* 0C41A0 7F08F670 27BD0070 */ addiu $sp, $sp, 0x70 +/* 0C41A4 7F08F674 03E00008 */ jr $ra +/* 0C41A8 7F08F678 03001025 */ move $v0, $t8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08F67C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08F67C +/* 0C41AC 7F08F67C 3C028007 */ lui $v0, %hi(ptr_setup_path_tbl) +/* 0C41B0 7F08F680 8C425D00 */ lw $v0, %lo(ptr_setup_path_tbl)($v0) +/* 0C41B4 7F08F684 2403FFFF */ li $v1, -1 +/* 0C41B8 7F08F688 8C4E0000 */ lw $t6, ($v0) +/* 0C41BC 7F08F68C 05C00006 */ bltz $t6, .L7F08F6A8 +/* 0C41C0 7F08F690 00000000 */ nop +/* 0C41C4 7F08F694 8C4F0010 */ lw $t7, 0x10($v0) +.L7F08F698: +/* 0C41C8 7F08F698 AC43000C */ sw $v1, 0xc($v0) +/* 0C41CC 7F08F69C 24420010 */ addiu $v0, $v0, 0x10 +/* 0C41D0 7F08F6A0 05E3FFFD */ bgezl $t7, .L7F08F698 +/* 0C41D4 7F08F6A4 8C4F0010 */ lw $t7, 0x10($v0) +.L7F08F6A8: +/* 0C41D8 7F08F6A8 03E00008 */ jr $ra +/* 0C41DC 7F08F6AC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08F6B0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08F6B0 +/* 0C41E0 7F08F6B0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C41E4 7F08F6B4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C41E8 7F08F6B8 8C8E0000 */ lw $t6, ($a0) +/* 0C41EC 7F08F6BC 00A03825 */ move $a3, $a1 +/* 0C41F0 7F08F6C0 00004825 */ move $t1, $zero +/* 0C41F4 7F08F6C4 05C00006 */ bltz $t6, .L7F08F6E0 +/* 0C41F8 7F08F6C8 00801025 */ move $v0, $a0 +/* 0C41FC 7F08F6CC 8C4F0004 */ lw $t7, 4($v0) +.L7F08F6D0: +/* 0C4200 7F08F6D0 25290001 */ addiu $t1, $t1, 1 +/* 0C4204 7F08F6D4 24420004 */ addiu $v0, $v0, 4 +/* 0C4208 7F08F6D8 05E3FFFD */ bgezl $t7, .L7F08F6D0 +/* 0C420C 7F08F6DC 8C4F0004 */ lw $t7, 4($v0) +.L7F08F6E0: +/* 0C4210 7F08F6E0 AFA40020 */ sw $a0, 0x20($sp) +/* 0C4214 7F08F6E4 AFA70024 */ sw $a3, 0x24($sp) +/* 0C4218 7F08F6E8 0C002914 */ jal get_random_value +/* 0C421C 7F08F6EC AFA9001C */ sw $t1, 0x1c($sp) +/* 0C4220 7F08F6F0 8FA9001C */ lw $t1, 0x1c($sp) +/* 0C4224 7F08F6F4 8FA70024 */ lw $a3, 0x24($sp) +/* 0C4228 7F08F6F8 8FAC0020 */ lw $t4, 0x20($sp) +/* 0C422C 7F08F6FC 0049001B */ divu $zero, $v0, $t1 +/* 0C4230 7F08F700 00005810 */ mfhi $t3 +/* 0C4234 7F08F704 0169082A */ slt $at, $t3, $t1 +/* 0C4238 7F08F708 15200002 */ bnez $t1, .L7F08F714 +/* 0C423C 7F08F70C 00000000 */ nop +/* 0C4240 7F08F710 0007000D */ break 7 +.L7F08F714: +/* 0C4244 7F08F714 01605025 */ move $t2, $t3 +/* 0C4248 7F08F718 1020003C */ beqz $at, .L7F08F80C +/* 0C424C 7F08F71C 01603025 */ move $a2, $t3 +/* 0C4250 7F08F720 012B1823 */ subu $v1, $t1, $t3 +/* 0C4254 7F08F724 30780003 */ andi $t8, $v1, 3 +/* 0C4258 7F08F728 13000011 */ beqz $t8, .L7F08F770 +/* 0C425C 7F08F72C 030B4021 */ addu $t0, $t8, $t3 +/* 0C4260 7F08F730 0006C880 */ sll $t9, $a2, 2 +/* 0C4264 7F08F734 3C058007 */ lui $a1, %hi(ptr_setup_path_tbl) +/* 0C4268 7F08F738 8CA55D00 */ lw $a1, %lo(ptr_setup_path_tbl)($a1) +/* 0C426C 7F08F73C 01991021 */ addu $v0, $t4, $t9 +.L7F08F740: +/* 0C4270 7F08F740 8C4D0000 */ lw $t5, ($v0) +/* 0C4274 7F08F744 24C60001 */ addiu $a2, $a2, 1 +/* 0C4278 7F08F748 000D7100 */ sll $t6, $t5, 4 +/* 0C427C 7F08F74C 01C52021 */ addu $a0, $t6, $a1 +/* 0C4280 7F08F750 8C8F000C */ lw $t7, 0xc($a0) +/* 0C4284 7F08F754 14EF0003 */ bne $a3, $t7, .L7F08F764 +/* 0C4288 7F08F758 00000000 */ nop +/* 0C428C 7F08F75C 10000066 */ b .L7F08F8F8 +/* 0C4290 7F08F760 00801025 */ move $v0, $a0 +.L7F08F764: +/* 0C4294 7F08F764 1506FFF6 */ bne $t0, $a2, .L7F08F740 +/* 0C4298 7F08F768 24420004 */ addiu $v0, $v0, 4 +/* 0C429C 7F08F76C 10C90027 */ beq $a2, $t1, .L7F08F80C +.L7F08F770: +/* 0C42A0 7F08F770 0006C080 */ sll $t8, $a2, 2 +/* 0C42A4 7F08F774 3C058007 */ lui $a1, %hi(ptr_setup_path_tbl) +/* 0C42A8 7F08F778 8CA55D00 */ lw $a1, %lo(ptr_setup_path_tbl)($a1) +/* 0C42AC 7F08F77C 01981021 */ addu $v0, $t4, $t8 +.L7F08F780: +/* 0C42B0 7F08F780 8C590000 */ lw $t9, ($v0) +/* 0C42B4 7F08F784 24C60004 */ addiu $a2, $a2, 4 +/* 0C42B8 7F08F788 00196900 */ sll $t5, $t9, 4 +/* 0C42BC 7F08F78C 01A52021 */ addu $a0, $t5, $a1 +/* 0C42C0 7F08F790 8C8E000C */ lw $t6, 0xc($a0) +/* 0C42C4 7F08F794 54EE0004 */ bnel $a3, $t6, .L7F08F7A8 +/* 0C42C8 7F08F798 8C4F0004 */ lw $t7, 4($v0) +/* 0C42CC 7F08F79C 10000056 */ b .L7F08F8F8 +/* 0C42D0 7F08F7A0 00801025 */ move $v0, $a0 +/* 0C42D4 7F08F7A4 8C4F0004 */ lw $t7, 4($v0) +.L7F08F7A8: +/* 0C42D8 7F08F7A8 000FC100 */ sll $t8, $t7, 4 +/* 0C42DC 7F08F7AC 03051821 */ addu $v1, $t8, $a1 +/* 0C42E0 7F08F7B0 8C79000C */ lw $t9, 0xc($v1) +/* 0C42E4 7F08F7B4 54F90004 */ bnel $a3, $t9, .L7F08F7C8 +/* 0C42E8 7F08F7B8 8C4D0008 */ lw $t5, 8($v0) +/* 0C42EC 7F08F7BC 1000004E */ b .L7F08F8F8 +/* 0C42F0 7F08F7C0 00601025 */ move $v0, $v1 +/* 0C42F4 7F08F7C4 8C4D0008 */ lw $t5, 8($v0) +.L7F08F7C8: +/* 0C42F8 7F08F7C8 000D7100 */ sll $t6, $t5, 4 +/* 0C42FC 7F08F7CC 01C51821 */ addu $v1, $t6, $a1 +/* 0C4300 7F08F7D0 8C6F000C */ lw $t7, 0xc($v1) +/* 0C4304 7F08F7D4 54EF0004 */ bnel $a3, $t7, .L7F08F7E8 +/* 0C4308 7F08F7D8 8C58000C */ lw $t8, 0xc($v0) +/* 0C430C 7F08F7DC 10000046 */ b .L7F08F8F8 +/* 0C4310 7F08F7E0 00601025 */ move $v0, $v1 +/* 0C4314 7F08F7E4 8C58000C */ lw $t8, 0xc($v0) +.L7F08F7E8: +/* 0C4318 7F08F7E8 0018C900 */ sll $t9, $t8, 4 +/* 0C431C 7F08F7EC 03251821 */ addu $v1, $t9, $a1 +/* 0C4320 7F08F7F0 8C6D000C */ lw $t5, 0xc($v1) +/* 0C4324 7F08F7F4 14ED0003 */ bne $a3, $t5, .L7F08F804 +/* 0C4328 7F08F7F8 00000000 */ nop +/* 0C432C 7F08F7FC 1000003E */ b .L7F08F8F8 +/* 0C4330 7F08F800 00601025 */ move $v0, $v1 +.L7F08F804: +/* 0C4334 7F08F804 14C9FFDE */ bne $a2, $t1, .L7F08F780 +/* 0C4338 7F08F808 24420010 */ addiu $v0, $v0, 0x10 +.L7F08F80C: +/* 0C433C 7F08F80C 19600039 */ blez $t3, .L7F08F8F4 +/* 0C4340 7F08F810 00003025 */ move $a2, $zero +/* 0C4344 7F08F814 3C058007 */ lui $a1, %hi(ptr_setup_path_tbl) +/* 0C4348 7F08F818 31630003 */ andi $v1, $t3, 3 +/* 0C434C 7F08F81C 10600010 */ beqz $v1, .L7F08F860 +/* 0C4350 7F08F820 8CA55D00 */ lw $a1, %lo(ptr_setup_path_tbl)($a1) +/* 0C4354 7F08F824 00007080 */ sll $t6, $zero, 2 +/* 0C4358 7F08F828 018E1021 */ addu $v0, $t4, $t6 +/* 0C435C 7F08F82C 00604025 */ move $t0, $v1 +.L7F08F830: +/* 0C4360 7F08F830 8C4F0000 */ lw $t7, ($v0) +/* 0C4364 7F08F834 24C60001 */ addiu $a2, $a2, 1 +/* 0C4368 7F08F838 000FC100 */ sll $t8, $t7, 4 +/* 0C436C 7F08F83C 03052021 */ addu $a0, $t8, $a1 +/* 0C4370 7F08F840 8C99000C */ lw $t9, 0xc($a0) +/* 0C4374 7F08F844 14F90003 */ bne $a3, $t9, .L7F08F854 +/* 0C4378 7F08F848 00000000 */ nop +/* 0C437C 7F08F84C 1000002A */ b .L7F08F8F8 +/* 0C4380 7F08F850 00801025 */ move $v0, $a0 +.L7F08F854: +/* 0C4384 7F08F854 1506FFF6 */ bne $t0, $a2, .L7F08F830 +/* 0C4388 7F08F858 24420004 */ addiu $v0, $v0, 4 +/* 0C438C 7F08F85C 10CB0025 */ beq $a2, $t3, .L7F08F8F4 +.L7F08F860: +/* 0C4390 7F08F860 00066880 */ sll $t5, $a2, 2 +/* 0C4394 7F08F864 018D1021 */ addu $v0, $t4, $t5 +.L7F08F868: +/* 0C4398 7F08F868 8C4E0000 */ lw $t6, ($v0) +/* 0C439C 7F08F86C 24C60004 */ addiu $a2, $a2, 4 +/* 0C43A0 7F08F870 000E7900 */ sll $t7, $t6, 4 +/* 0C43A4 7F08F874 01E52021 */ addu $a0, $t7, $a1 +/* 0C43A8 7F08F878 8C98000C */ lw $t8, 0xc($a0) +/* 0C43AC 7F08F87C 54F80004 */ bnel $a3, $t8, .L7F08F890 +/* 0C43B0 7F08F880 8C590004 */ lw $t9, 4($v0) +/* 0C43B4 7F08F884 1000001C */ b .L7F08F8F8 +/* 0C43B8 7F08F888 00801025 */ move $v0, $a0 +/* 0C43BC 7F08F88C 8C590004 */ lw $t9, 4($v0) +.L7F08F890: +/* 0C43C0 7F08F890 00196900 */ sll $t5, $t9, 4 +/* 0C43C4 7F08F894 01A51821 */ addu $v1, $t5, $a1 +/* 0C43C8 7F08F898 8C6E000C */ lw $t6, 0xc($v1) +/* 0C43CC 7F08F89C 54EE0004 */ bnel $a3, $t6, .L7F08F8B0 +/* 0C43D0 7F08F8A0 8C4F0008 */ lw $t7, 8($v0) +/* 0C43D4 7F08F8A4 10000014 */ b .L7F08F8F8 +/* 0C43D8 7F08F8A8 00601025 */ move $v0, $v1 +/* 0C43DC 7F08F8AC 8C4F0008 */ lw $t7, 8($v0) +.L7F08F8B0: +/* 0C43E0 7F08F8B0 000FC100 */ sll $t8, $t7, 4 +/* 0C43E4 7F08F8B4 03051821 */ addu $v1, $t8, $a1 +/* 0C43E8 7F08F8B8 8C79000C */ lw $t9, 0xc($v1) +/* 0C43EC 7F08F8BC 54F90004 */ bnel $a3, $t9, .L7F08F8D0 +/* 0C43F0 7F08F8C0 8C4D000C */ lw $t5, 0xc($v0) +/* 0C43F4 7F08F8C4 1000000C */ b .L7F08F8F8 +/* 0C43F8 7F08F8C8 00601025 */ move $v0, $v1 +/* 0C43FC 7F08F8CC 8C4D000C */ lw $t5, 0xc($v0) +.L7F08F8D0: +/* 0C4400 7F08F8D0 000D7100 */ sll $t6, $t5, 4 +/* 0C4404 7F08F8D4 01C51821 */ addu $v1, $t6, $a1 +/* 0C4408 7F08F8D8 8C6F000C */ lw $t7, 0xc($v1) +/* 0C440C 7F08F8DC 14EF0003 */ bne $a3, $t7, .L7F08F8EC +/* 0C4410 7F08F8E0 00000000 */ nop +/* 0C4414 7F08F8E4 10000004 */ b .L7F08F8F8 +/* 0C4418 7F08F8E8 00601025 */ move $v0, $v1 +.L7F08F8EC: +/* 0C441C 7F08F8EC 14CAFFDE */ bne $a2, $t2, .L7F08F868 +/* 0C4420 7F08F8F0 24420010 */ addiu $v0, $v0, 0x10 +.L7F08F8F4: +/* 0C4424 7F08F8F4 00001025 */ move $v0, $zero +.L7F08F8F8: +/* 0C4428 7F08F8F8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C442C 7F08F8FC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C4430 7F08F900 03E00008 */ jr $ra +/* 0C4434 7F08F904 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08F908(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08F908 +/* 0C4438 7F08F908 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C443C 7F08F90C AFBF001C */ sw $ra, 0x1c($sp) +/* 0C4440 7F08F910 AFB00018 */ sw $s0, 0x18($sp) +/* 0C4444 7F08F914 8C8E0000 */ lw $t6, ($a0) +/* 0C4448 7F08F918 00A08025 */ move $s0, $a1 +/* 0C444C 7F08F91C 00004825 */ move $t1, $zero +/* 0C4450 7F08F920 05C00006 */ bltz $t6, .L7F08F93C +/* 0C4454 7F08F924 00801025 */ move $v0, $a0 +/* 0C4458 7F08F928 8C4F0004 */ lw $t7, 4($v0) +.L7F08F92C: +/* 0C445C 7F08F92C 25290001 */ addiu $t1, $t1, 1 +/* 0C4460 7F08F930 24420004 */ addiu $v0, $v0, 4 +/* 0C4464 7F08F934 05E3FFFD */ bgezl $t7, .L7F08F92C +/* 0C4468 7F08F938 8C4F0004 */ lw $t7, 4($v0) +.L7F08F93C: +/* 0C446C 7F08F93C AFA40028 */ sw $a0, 0x28($sp) +/* 0C4470 7F08F940 0C002914 */ jal get_random_value +/* 0C4474 7F08F944 AFA90024 */ sw $t1, 0x24($sp) +/* 0C4478 7F08F948 8FA90024 */ lw $t1, 0x24($sp) +/* 0C447C 7F08F94C 8FAC0028 */ lw $t4, 0x28($sp) +/* 0C4480 7F08F950 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C4484 7F08F954 0049001B */ divu $zero, $v0, $t1 +/* 0C4488 7F08F958 00005810 */ mfhi $t3 +/* 0C448C 7F08F95C 0169082A */ slt $at, $t3, $t1 +/* 0C4490 7F08F960 15200002 */ bnez $t1, .L7F08F96C +/* 0C4494 7F08F964 00000000 */ nop +/* 0C4498 7F08F968 0007000D */ break 7 +.L7F08F96C: +/* 0C449C 7F08F96C 01605025 */ move $t2, $t3 +/* 0C44A0 7F08F970 10200043 */ beqz $at, .L7F08FA80 +/* 0C44A4 7F08F974 01603025 */ move $a2, $t3 +/* 0C44A8 7F08F978 012B1823 */ subu $v1, $t1, $t3 +/* 0C44AC 7F08F97C 30780003 */ andi $t8, $v1, 3 +/* 0C44B0 7F08F980 13000013 */ beqz $t8, .L7F08F9D0 +/* 0C44B4 7F08F984 030B4021 */ addu $t0, $t8, $t3 +/* 0C44B8 7F08F988 0006C880 */ sll $t9, $a2, 2 +/* 0C44BC 7F08F98C 3C058007 */ lui $a1, %hi(ptr_setup_path_link) +/* 0C44C0 7F08F990 8CA55D04 */ lw $a1, %lo(ptr_setup_path_link)($a1) +/* 0C44C4 7F08F994 01991021 */ addu $v0, $t4, $t9 +/* 0C44C8 7F08F998 2407000C */ li $a3, 12 +.L7F08F99C: +/* 0C44CC 7F08F99C 8C4D0000 */ lw $t5, ($v0) +/* 0C44D0 7F08F9A0 24C60001 */ addiu $a2, $a2, 1 +/* 0C44D4 7F08F9A4 01A70019 */ multu $t5, $a3 +/* 0C44D8 7F08F9A8 00007012 */ mflo $t6 +/* 0C44DC 7F08F9AC 01C52021 */ addu $a0, $t6, $a1 +/* 0C44E0 7F08F9B0 8C8F0008 */ lw $t7, 8($a0) +/* 0C44E4 7F08F9B4 160F0003 */ bne $s0, $t7, .L7F08F9C4 +/* 0C44E8 7F08F9B8 00000000 */ nop +/* 0C44EC 7F08F9BC 10000071 */ b .L7F08FB84 +/* 0C44F0 7F08F9C0 00801025 */ move $v0, $a0 +.L7F08F9C4: +/* 0C44F4 7F08F9C4 1506FFF5 */ bne $t0, $a2, .L7F08F99C +/* 0C44F8 7F08F9C8 24420004 */ addiu $v0, $v0, 4 +/* 0C44FC 7F08F9CC 10C9002C */ beq $a2, $t1, .L7F08FA80 +.L7F08F9D0: +/* 0C4500 7F08F9D0 0006C080 */ sll $t8, $a2, 2 +/* 0C4504 7F08F9D4 3C058007 */ lui $a1, %hi(ptr_setup_path_link) +/* 0C4508 7F08F9D8 8CA55D04 */ lw $a1, %lo(ptr_setup_path_link)($a1) +/* 0C450C 7F08F9DC 01981021 */ addu $v0, $t4, $t8 +/* 0C4510 7F08F9E0 2407000C */ li $a3, 12 +.L7F08F9E4: +/* 0C4514 7F08F9E4 8C590000 */ lw $t9, ($v0) +/* 0C4518 7F08F9E8 24C60004 */ addiu $a2, $a2, 4 +/* 0C451C 7F08F9EC 03270019 */ multu $t9, $a3 +/* 0C4520 7F08F9F0 00006812 */ mflo $t5 +/* 0C4524 7F08F9F4 01A52021 */ addu $a0, $t5, $a1 +/* 0C4528 7F08F9F8 8C8E0008 */ lw $t6, 8($a0) +/* 0C452C 7F08F9FC 560E0004 */ bnel $s0, $t6, .L7F08FA10 +/* 0C4530 7F08FA00 8C4F0004 */ lw $t7, 4($v0) +/* 0C4534 7F08FA04 1000005F */ b .L7F08FB84 +/* 0C4538 7F08FA08 00801025 */ move $v0, $a0 +/* 0C453C 7F08FA0C 8C4F0004 */ lw $t7, 4($v0) +.L7F08FA10: +/* 0C4540 7F08FA10 01E70019 */ multu $t7, $a3 +/* 0C4544 7F08FA14 0000C012 */ mflo $t8 +/* 0C4548 7F08FA18 03051821 */ addu $v1, $t8, $a1 +/* 0C454C 7F08FA1C 8C790008 */ lw $t9, 8($v1) +/* 0C4550 7F08FA20 56190004 */ bnel $s0, $t9, .L7F08FA34 +/* 0C4554 7F08FA24 8C4D0008 */ lw $t5, 8($v0) +/* 0C4558 7F08FA28 10000056 */ b .L7F08FB84 +/* 0C455C 7F08FA2C 00601025 */ move $v0, $v1 +/* 0C4560 7F08FA30 8C4D0008 */ lw $t5, 8($v0) +.L7F08FA34: +/* 0C4564 7F08FA34 01A70019 */ multu $t5, $a3 +/* 0C4568 7F08FA38 00007012 */ mflo $t6 +/* 0C456C 7F08FA3C 01C51821 */ addu $v1, $t6, $a1 +/* 0C4570 7F08FA40 8C6F0008 */ lw $t7, 8($v1) +/* 0C4574 7F08FA44 560F0004 */ bnel $s0, $t7, .L7F08FA58 +/* 0C4578 7F08FA48 8C58000C */ lw $t8, 0xc($v0) +/* 0C457C 7F08FA4C 1000004D */ b .L7F08FB84 +/* 0C4580 7F08FA50 00601025 */ move $v0, $v1 +/* 0C4584 7F08FA54 8C58000C */ lw $t8, 0xc($v0) +.L7F08FA58: +/* 0C4588 7F08FA58 03070019 */ multu $t8, $a3 +/* 0C458C 7F08FA5C 0000C812 */ mflo $t9 +/* 0C4590 7F08FA60 03251821 */ addu $v1, $t9, $a1 +/* 0C4594 7F08FA64 8C6D0008 */ lw $t5, 8($v1) +/* 0C4598 7F08FA68 160D0003 */ bne $s0, $t5, .L7F08FA78 +/* 0C459C 7F08FA6C 00000000 */ nop +/* 0C45A0 7F08FA70 10000044 */ b .L7F08FB84 +/* 0C45A4 7F08FA74 00601025 */ move $v0, $v1 +.L7F08FA78: +/* 0C45A8 7F08FA78 14C9FFDA */ bne $a2, $t1, .L7F08F9E4 +/* 0C45AC 7F08FA7C 24420010 */ addiu $v0, $v0, 0x10 +.L7F08FA80: +/* 0C45B0 7F08FA80 2407000C */ li $a3, 12 +/* 0C45B4 7F08FA84 1960003E */ blez $t3, .L7F08FB80 +/* 0C45B8 7F08FA88 00003025 */ move $a2, $zero +/* 0C45BC 7F08FA8C 3C058007 */ lui $a1, %hi(ptr_setup_path_link) +/* 0C45C0 7F08FA90 31630003 */ andi $v1, $t3, 3 +/* 0C45C4 7F08FA94 10600011 */ beqz $v1, .L7F08FADC +/* 0C45C8 7F08FA98 8CA55D04 */ lw $a1, %lo(ptr_setup_path_link)($a1) +/* 0C45CC 7F08FA9C 00007080 */ sll $t6, $zero, 2 +/* 0C45D0 7F08FAA0 018E1021 */ addu $v0, $t4, $t6 +/* 0C45D4 7F08FAA4 00604025 */ move $t0, $v1 +.L7F08FAA8: +/* 0C45D8 7F08FAA8 8C4F0000 */ lw $t7, ($v0) +/* 0C45DC 7F08FAAC 24C60001 */ addiu $a2, $a2, 1 +/* 0C45E0 7F08FAB0 01E70019 */ multu $t7, $a3 +/* 0C45E4 7F08FAB4 0000C012 */ mflo $t8 +/* 0C45E8 7F08FAB8 03052021 */ addu $a0, $t8, $a1 +/* 0C45EC 7F08FABC 8C990008 */ lw $t9, 8($a0) +/* 0C45F0 7F08FAC0 16190003 */ bne $s0, $t9, .L7F08FAD0 +/* 0C45F4 7F08FAC4 00000000 */ nop +/* 0C45F8 7F08FAC8 1000002E */ b .L7F08FB84 +/* 0C45FC 7F08FACC 00801025 */ move $v0, $a0 +.L7F08FAD0: +/* 0C4600 7F08FAD0 1506FFF5 */ bne $t0, $a2, .L7F08FAA8 +/* 0C4604 7F08FAD4 24420004 */ addiu $v0, $v0, 4 +/* 0C4608 7F08FAD8 10CB0029 */ beq $a2, $t3, .L7F08FB80 +.L7F08FADC: +/* 0C460C 7F08FADC 00066880 */ sll $t5, $a2, 2 +/* 0C4610 7F08FAE0 018D1021 */ addu $v0, $t4, $t5 +.L7F08FAE4: +/* 0C4614 7F08FAE4 8C4E0000 */ lw $t6, ($v0) +/* 0C4618 7F08FAE8 24C60004 */ addiu $a2, $a2, 4 +/* 0C461C 7F08FAEC 01C70019 */ multu $t6, $a3 +/* 0C4620 7F08FAF0 00007812 */ mflo $t7 +/* 0C4624 7F08FAF4 01E52021 */ addu $a0, $t7, $a1 +/* 0C4628 7F08FAF8 8C980008 */ lw $t8, 8($a0) +/* 0C462C 7F08FAFC 56180004 */ bnel $s0, $t8, .L7F08FB10 +/* 0C4630 7F08FB00 8C590004 */ lw $t9, 4($v0) +/* 0C4634 7F08FB04 1000001F */ b .L7F08FB84 +/* 0C4638 7F08FB08 00801025 */ move $v0, $a0 +/* 0C463C 7F08FB0C 8C590004 */ lw $t9, 4($v0) +.L7F08FB10: +/* 0C4640 7F08FB10 03270019 */ multu $t9, $a3 +/* 0C4644 7F08FB14 00006812 */ mflo $t5 +/* 0C4648 7F08FB18 01A51821 */ addu $v1, $t5, $a1 +/* 0C464C 7F08FB1C 8C6E0008 */ lw $t6, 8($v1) +/* 0C4650 7F08FB20 560E0004 */ bnel $s0, $t6, .L7F08FB34 +/* 0C4654 7F08FB24 8C4F0008 */ lw $t7, 8($v0) +/* 0C4658 7F08FB28 10000016 */ b .L7F08FB84 +/* 0C465C 7F08FB2C 00601025 */ move $v0, $v1 +/* 0C4660 7F08FB30 8C4F0008 */ lw $t7, 8($v0) +.L7F08FB34: +/* 0C4664 7F08FB34 01E70019 */ multu $t7, $a3 +/* 0C4668 7F08FB38 0000C012 */ mflo $t8 +/* 0C466C 7F08FB3C 03051821 */ addu $v1, $t8, $a1 +/* 0C4670 7F08FB40 8C790008 */ lw $t9, 8($v1) +/* 0C4674 7F08FB44 56190004 */ bnel $s0, $t9, .L7F08FB58 +/* 0C4678 7F08FB48 8C4D000C */ lw $t5, 0xc($v0) +/* 0C467C 7F08FB4C 1000000D */ b .L7F08FB84 +/* 0C4680 7F08FB50 00601025 */ move $v0, $v1 +/* 0C4684 7F08FB54 8C4D000C */ lw $t5, 0xc($v0) +.L7F08FB58: +/* 0C4688 7F08FB58 01A70019 */ multu $t5, $a3 +/* 0C468C 7F08FB5C 00007012 */ mflo $t6 +/* 0C4690 7F08FB60 01C51821 */ addu $v1, $t6, $a1 +/* 0C4694 7F08FB64 8C6F0008 */ lw $t7, 8($v1) +/* 0C4698 7F08FB68 160F0003 */ bne $s0, $t7, .L7F08FB78 +/* 0C469C 7F08FB6C 00000000 */ nop +/* 0C46A0 7F08FB70 10000004 */ b .L7F08FB84 +/* 0C46A4 7F08FB74 00601025 */ move $v0, $v1 +.L7F08FB78: +/* 0C46A8 7F08FB78 14CAFFDA */ bne $a2, $t2, .L7F08FAE4 +/* 0C46AC 7F08FB7C 24420010 */ addiu $v0, $v0, 0x10 +.L7F08FB80: +/* 0C46B0 7F08FB80 00001025 */ move $v0, $zero +.L7F08FB84: +/* 0C46B4 7F08FB84 8FB00018 */ lw $s0, 0x18($sp) +/* 0C46B8 7F08FB88 03E00008 */ jr $ra +/* 0C46BC 7F08FB8C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08FB90(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08FB90 +/* 0C46C0 7F08FB90 3C068007 */ lui $a2, %hi(ptr_setup_path_link) +/* 0C46C4 7F08FB94 8CC65D04 */ lw $a2, %lo(ptr_setup_path_link)($a2) +/* 0C46C8 7F08FB98 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0C46CC 7F08FB9C AFB10018 */ sw $s1, 0x18($sp) +/* 0C46D0 7F08FBA0 00808825 */ move $s1, $a0 +/* 0C46D4 7F08FBA4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0C46D8 7F08FBA8 10C00056 */ beqz $a2, .L7F08FD04 +/* 0C46DC 7F08FBAC AFB00014 */ sw $s0, 0x14($sp) +/* 0C46E0 7F08FBB0 8C8E0008 */ lw $t6, 8($a0) +/* 0C46E4 7F08FBB4 2402000C */ li $v0, 12 +/* 0C46E8 7F08FBB8 8CB80008 */ lw $t8, 8($a1) +/* 0C46EC 7F08FBBC 01C20019 */ multu $t6, $v0 +/* 0C46F0 7F08FBC0 00003825 */ move $a3, $zero +/* 0C46F4 7F08FBC4 00007812 */ mflo $t7 +/* 0C46F8 7F08FBC8 01E68021 */ addu $s0, $t7, $a2 +/* 0C46FC 7F08FBCC 00000000 */ nop +/* 0C4700 7F08FBD0 03020019 */ multu $t8, $v0 +/* 0C4704 7F08FBD4 0000C812 */ mflo $t9 +/* 0C4708 7F08FBD8 03262021 */ addu $a0, $t9, $a2 +/* 0C470C 7F08FBDC 16040016 */ bne $s0, $a0, .L7F08FC38 +/* 0C4710 7F08FBE0 00000000 */ nop +/* 0C4714 7F08FBE4 0FC23D9F */ jal sub_GAME_7F08F67C +/* 0C4718 7F08FBE8 AFA5005C */ sw $a1, 0x5c($sp) +/* 0C471C 7F08FBEC 8FA4005C */ lw $a0, 0x5c($sp) +/* 0C4720 7F08FBF0 02202825 */ move $a1, $s1 +/* 0C4724 7F08FBF4 0FC23C76 */ jal sub_GAME_7F08F1D8 +/* 0C4728 7F08FBF8 24060001 */ li $a2, 1 +/* 0C472C 7F08FBFC 8E240004 */ lw $a0, 4($s1) +/* 0C4730 7F08FC00 0FC23DAC */ jal sub_GAME_7F08F6B0 +/* 0C4734 7F08FC04 2405FFFF */ li $a1, -1 +/* 0C4738 7F08FC08 50400004 */ beql $v0, $zero, .L7F08FC1C +/* 0C473C 7F08FC0C 8E25000C */ lw $a1, 0xc($s1) +/* 0C4740 7F08FC10 1000003E */ b .L7F08FD0C +/* 0C4744 7F08FC14 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C4748 7F08FC18 8E25000C */ lw $a1, 0xc($s1) +.L7F08FC1C: +/* 0C474C 7F08FC1C 8E240004 */ lw $a0, 4($s1) +/* 0C4750 7F08FC20 0FC23DAC */ jal sub_GAME_7F08F6B0 +/* 0C4754 7F08FC24 24A50001 */ addiu $a1, $a1, 1 +/* 0C4758 7F08FC28 50400037 */ beql $v0, $zero, .L7F08FD08 +/* 0C475C 7F08FC2C 00001025 */ move $v0, $zero +/* 0C4760 7F08FC30 10000036 */ b .L7F08FD0C +/* 0C4764 7F08FC34 8FBF001C */ lw $ra, 0x1c($sp) +.L7F08FC38: +/* 0C4768 7F08FC38 0FC23B9C */ jal sub_GAME_7F08EE70 +/* 0C476C 7F08FC3C 02002825 */ move $a1, $s0 +/* 0C4770 7F08FC40 8E080008 */ lw $t0, 8($s0) +/* 0C4774 7F08FC44 2405FFFF */ li $a1, -1 +/* 0C4778 7F08FC48 0502002F */ bltzl $t0, .L7F08FD08 +/* 0C477C 7F08FC4C 00001025 */ move $v0, $zero +/* 0C4780 7F08FC50 0FC23E42 */ jal sub_GAME_7F08F908 +/* 0C4784 7F08FC54 8E040000 */ lw $a0, ($s0) +/* 0C4788 7F08FC58 10400013 */ beqz $v0, .L7F08FCA8 +/* 0C478C 7F08FC5C 00402825 */ move $a1, $v0 +/* 0C4790 7F08FC60 02002025 */ move $a0, $s0 +/* 0C4794 7F08FC64 27A60040 */ addiu $a2, $sp, 0x40 +/* 0C4798 7F08FC68 0FC23D0E */ jal sub_GAME_7F08F438 +/* 0C479C 7F08FC6C 27A7003C */ addiu $a3, $sp, 0x3c +/* 0C47A0 7F08FC70 8FA50040 */ lw $a1, 0x40($sp) +/* 0C47A4 7F08FC74 02202025 */ move $a0, $s1 +/* 0C47A8 7F08FC78 27A60030 */ addiu $a2, $sp, 0x30 +/* 0C47AC 7F08FC7C 14B10003 */ bne $a1, $s1, .L7F08FC8C +/* 0C47B0 7F08FC80 00000000 */ nop +/* 0C47B4 7F08FC84 10000020 */ b .L7F08FD08 +/* 0C47B8 7F08FC88 8FA2003C */ lw $v0, 0x3c($sp) +.L7F08FC8C: +/* 0C47BC 7F08FC8C 0FC23CD4 */ jal sub_GAME_7F08F350 +/* 0C47C0 7F08FC90 24070003 */ li $a3, 3 +/* 0C47C4 7F08FC94 28410003 */ slti $at, $v0, 3 +/* 0C47C8 7F08FC98 5420001B */ bnezl $at, .L7F08FD08 +/* 0C47CC 7F08FC9C 00001025 */ move $v0, $zero +/* 0C47D0 7F08FCA0 10000019 */ b .L7F08FD08 +/* 0C47D4 7F08FCA4 8FA20034 */ lw $v0, 0x34($sp) +.L7F08FCA8: +/* 0C47D8 7F08FCA8 8E050008 */ lw $a1, 8($s0) +/* 0C47DC 7F08FCAC 8E040000 */ lw $a0, ($s0) +/* 0C47E0 7F08FCB0 0FC23B58 */ jal sub_GAME_7F08ED60 +/* 0C47E4 7F08FCB4 24A5FFFF */ addiu $a1, $a1, -1 +/* 0C47E8 7F08FCB8 10400012 */ beqz $v0, .L7F08FD04 +/* 0C47EC 7F08FCBC 00402825 */ move $a1, $v0 +/* 0C47F0 7F08FCC0 02002025 */ move $a0, $s0 +/* 0C47F4 7F08FCC4 27A60028 */ addiu $a2, $sp, 0x28 +/* 0C47F8 7F08FCC8 0FC23D0E */ jal sub_GAME_7F08F438 +/* 0C47FC 7F08FCCC 27A70024 */ addiu $a3, $sp, 0x24 +/* 0C4800 7F08FCD0 8FA40028 */ lw $a0, 0x28($sp) +/* 0C4804 7F08FCD4 02202825 */ move $a1, $s1 +/* 0C4808 7F08FCD8 0FC23C76 */ jal sub_GAME_7F08F1D8 +/* 0C480C 7F08FCDC 24060001 */ li $a2, 1 +/* 0C4810 7F08FCE0 8E25000C */ lw $a1, 0xc($s1) +/* 0C4814 7F08FCE4 8E240004 */ lw $a0, 4($s1) +/* 0C4818 7F08FCE8 8E260008 */ lw $a2, 8($s1) +/* 0C481C 7F08FCEC 0FC23C24 */ jal sub_GAME_7F08F090 +/* 0C4820 7F08FCF0 24A50001 */ addiu $a1, $a1, 1 +/* 0C4824 7F08FCF4 50400004 */ beql $v0, $zero, .L7F08FD08 +/* 0C4828 7F08FCF8 00001025 */ move $v0, $zero +/* 0C482C 7F08FCFC 10000003 */ b .L7F08FD0C +/* 0C4830 7F08FD00 8FBF001C */ lw $ra, 0x1c($sp) +.L7F08FD04: +/* 0C4834 7F08FD04 00001025 */ move $v0, $zero +.L7F08FD08: +/* 0C4838 7F08FD08 8FBF001C */ lw $ra, 0x1c($sp) +.L7F08FD0C: +/* 0C483C 7F08FD0C 8FB00014 */ lw $s0, 0x14($sp) +/* 0C4840 7F08FD10 8FB10018 */ lw $s1, 0x18($sp) +/* 0C4844 7F08FD14 03E00008 */ jr $ra +/* 0C4848 7F08FD18 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F08FD1C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F08FD1C +/* 0C484C 7F08FD1C 3C088007 */ lui $t0, %hi(ptr_setup_path_tbl) +/* 0C4850 7F08FD20 8D085D00 */ lw $t0, %lo(ptr_setup_path_tbl)($t0) +/* 0C4854 7F08FD24 27BDFF08 */ addiu $sp, $sp, -0xf8 +/* 0C4858 7F08FD28 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C485C 7F08FD2C 5100002F */ beql $t0, $zero, .L7F08FDEC +/* 0C4860 7F08FD30 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C4864 7F08FD34 8D0E0000 */ lw $t6, ($t0) +/* 0C4868 7F08FD38 00001825 */ move $v1, $zero +/* 0C486C 7F08FD3C 01001025 */ move $v0, $t0 +/* 0C4870 7F08FD40 05C20007 */ bltzl $t6, .L7F08FD60 +/* 0C4874 7F08FD44 AFA300F0 */ sw $v1, 0xf0($sp) +/* 0C4878 7F08FD48 8C4F0010 */ lw $t7, 0x10($v0) +.L7F08FD4C: +/* 0C487C 7F08FD4C 24420010 */ addiu $v0, $v0, 0x10 +/* 0C4880 7F08FD50 24630001 */ addiu $v1, $v1, 1 +/* 0C4884 7F08FD54 05E3FFFD */ bgezl $t7, .L7F08FD4C +/* 0C4888 7F08FD58 8C4F0010 */ lw $t7, 0x10($v0) +/* 0C488C 7F08FD5C AFA300F0 */ sw $v1, 0xf0($sp) +.L7F08FD60: +/* 0C4890 7F08FD60 0C002914 */ jal get_random_value +/* 0C4894 7F08FD64 AFA800F4 */ sw $t0, 0xf4($sp) +/* 0C4898 7F08FD68 8FA300F0 */ lw $v1, 0xf0($sp) +/* 0C489C 7F08FD6C 8FA800F4 */ lw $t0, 0xf4($sp) +/* 0C48A0 7F08FD70 0043001B */ divu $zero, $v0, $v1 +/* 0C48A4 7F08FD74 0000C010 */ mfhi $t8 +/* 0C48A8 7F08FD78 0018C900 */ sll $t9, $t8, 4 +/* 0C48AC 7F08FD7C 14600002 */ bnez $v1, .L7F08FD88 +/* 0C48B0 7F08FD80 00000000 */ nop +/* 0C48B4 7F08FD84 0007000D */ break 7 +.L7F08FD88: +/* 0C48B8 7F08FD88 03284821 */ addu $t1, $t9, $t0 +/* 0C48BC 7F08FD8C 0C002914 */ jal get_random_value +/* 0C48C0 7F08FD90 AFA900E8 */ sw $t1, 0xe8($sp) +/* 0C48C4 7F08FD94 8FA300F0 */ lw $v1, 0xf0($sp) +/* 0C48C8 7F08FD98 8FA800F4 */ lw $t0, 0xf4($sp) +/* 0C48CC 7F08FD9C 8FA400E8 */ lw $a0, 0xe8($sp) +/* 0C48D0 7F08FDA0 0043001B */ divu $zero, $v0, $v1 +/* 0C48D4 7F08FDA4 00005010 */ mfhi $t2 +/* 0C48D8 7F08FDA8 000A5900 */ sll $t3, $t2, 4 +/* 0C48DC 7F08FDAC 14600002 */ bnez $v1, .L7F08FDB8 +/* 0C48E0 7F08FDB0 00000000 */ nop +/* 0C48E4 7F08FDB4 0007000D */ break 7 +.L7F08FDB8: +/* 0C48E8 7F08FDB8 27A6001C */ addiu $a2, $sp, 0x1c +/* 0C48EC 7F08FDBC 24070032 */ li $a3, 50 +/* 0C48F0 7F08FDC0 0FC23D3C */ jal sub_GAME_7F08F4F0 +/* 0C48F4 7F08FDC4 01682821 */ addu $a1, $t3, $t0 +/* 0C48F8 7F08FDC8 10400007 */ beqz $v0, .L7F08FDE8 +/* 0C48FC 7F08FDCC 8FAC001C */ lw $t4, 0x1c($sp) +/* 0C4900 7F08FDD0 11800005 */ beqz $t4, .L7F08FDE8 +/* 0C4904 7F08FDD4 27A2001C */ addiu $v0, $sp, 0x1c +/* 0C4908 7F08FDD8 8C4D0004 */ lw $t5, 4($v0) +.L7F08FDDC: +/* 0C490C 7F08FDDC 24420004 */ addiu $v0, $v0, 4 +/* 0C4910 7F08FDE0 55A0FFFE */ bnezl $t5, .L7F08FDDC +/* 0C4914 7F08FDE4 8C4D0004 */ lw $t5, 4($v0) +.L7F08FDE8: +/* 0C4918 7F08FDE8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08FDEC: +/* 0C491C 7F08FDEC 27BD00F8 */ addiu $sp, $sp, 0xf8 +/* 0C4920 7F08FDF0 03E00008 */ jr $ra +/* 0C4924 7F08FDF4 00000000 */ nop +) +#endif + + + diff --git a/src/game/unk_091080.c b/src/game/unk_091080.c new file mode 100644 index 0000000..1947e39 --- /dev/null +++ b/src/game/unk_091080.c @@ -0,0 +1,647 @@ +#include "ultra64.h" + +// bss +//CODE.bss:80079E20 +s32 dword_CODE_bss_80079E20; + + +// data +//D:80037010 +s32 D_80037010 = 0; +//D:80037014 +f32 stanbondx = 0.0f; +//D:80037018 +s32 stanbondy = 0; +//D:8003701C +s32 stanbondz = 0; +//D:80037020 +s32 D_80037020 = 0; +//D:80037024 +s32 D_80037024 = 0; +//D:80037028 +f32 D_80037028 = -1.0; +//D:8003702C +s32 D_8003702C = 0; +//D:80037030 +f32 D_80037030 = 1.0; +//D:80037034 +s32 D_80037034 = 0; +//D:80037038 +s32 D_80037038 = 0; +//D:8003703C +f32 D_8003703C = 1.0; +//D:80037040 +s32 D_80037040 = 0; +//D:80037044 +s32 D_80037044 = 0; +//D:80037048 +f32 D_80037048 = 1.0; +//D:8003704C +s32 D_8003704C = 0; +//D:80037050 +f32 D_80037050 = 1.0; +//D:80037054 +s32 D_80037054 = 0; +//D:80037058 +f32 D_80037058 = 1.0; +//D:8003705C +f32 D_8003705C = 1.0; +//D:80037060 +s32 D_80037060 = 0; +//D:80037064 +s32 D_80037064 = 0; +//D:80037068 +s32 D_80037068 = 0; + + +// rodata + + +#ifdef NONMATCHING +void sub_GAME_7F091080(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055850 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055854 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055858 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_8005585C +.word 0x3c8efa35 /*0.017453292*/ +.text +glabel sub_GAME_7F091080 +/* 0C5BB0 7F091080 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C5BB4 7F091084 AFA40018 */ sw $a0, 0x18($sp) +/* 0C5BB8 7F091088 83AF001B */ lb $t7, 0x1b($sp) +/* 0C5BBC 7F09108C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C5BC0 7F091090 44810000 */ mtc1 $at, $f0 +/* 0C5BC4 7F091094 00053E00 */ sll $a3, $a1, 0x18 +/* 0C5BC8 7F091098 00077603 */ sra $t6, $a3, 0x18 +/* 0C5BCC 7F09109C 29E1FFFD */ slti $at, $t7, -3 +/* 0C5BD0 7F0910A0 01C03825 */ move $a3, $t6 +/* 0C5BD4 7F0910A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C5BD8 7F0910A8 AFA5001C */ sw $a1, 0x1c($sp) +/* 0C5BDC 7F0910AC AFA60020 */ sw $a2, 0x20($sp) +/* 0C5BE0 7F0910B0 10200004 */ beqz $at, .L7F0910C4 +/* 0C5BE4 7F0910B4 46000086 */ mov.s $f2, $f0 +/* 0C5BE8 7F0910B8 25F80003 */ addiu $t8, $t7, 3 +/* 0C5BEC 7F0910BC 10000008 */ b .L7F0910E0 +/* 0C5BF0 7F0910C0 A3B8001B */ sb $t8, 0x1b($sp) +.L7F0910C4: +/* 0C5BF4 7F0910C4 83B9001B */ lb $t9, 0x1b($sp) +/* 0C5BF8 7F0910C8 2B210004 */ slti $at, $t9, 4 +/* 0C5BFC 7F0910CC 14200003 */ bnez $at, .L7F0910DC +/* 0C5C00 7F0910D0 2728FFFD */ addiu $t0, $t9, -3 +/* 0C5C04 7F0910D4 10000002 */ b .L7F0910E0 +/* 0C5C08 7F0910D8 A3A8001B */ sb $t0, 0x1b($sp) +.L7F0910DC: +/* 0C5C0C 7F0910DC A3A0001B */ sb $zero, 0x1b($sp) +.L7F0910E0: +/* 0C5C10 7F0910E0 28E1FFFD */ slti $at, $a3, -3 +/* 0C5C14 7F0910E4 10200005 */ beqz $at, .L7F0910FC +/* 0C5C18 7F0910E8 97A50022 */ lhu $a1, 0x22($sp) +/* 0C5C1C 7F0910EC 24E70003 */ addiu $a3, $a3, 3 +/* 0C5C20 7F0910F0 00074E00 */ sll $t1, $a3, 0x18 +/* 0C5C24 7F0910F4 10000008 */ b .L7F091118 +/* 0C5C28 7F0910F8 00093E03 */ sra $a3, $t1, 0x18 +.L7F0910FC: +/* 0C5C2C 7F0910FC 28E10004 */ slti $at, $a3, 4 +/* 0C5C30 7F091100 14200004 */ bnez $at, .L7F091114 +/* 0C5C34 7F091104 24E7FFFD */ addiu $a3, $a3, -3 +/* 0C5C38 7F091108 00075E00 */ sll $t3, $a3, 0x18 +/* 0C5C3C 7F09110C 10000002 */ b .L7F091118 +/* 0C5C40 7F091110 000B3E03 */ sra $a3, $t3, 0x18 +.L7F091114: +/* 0C5C44 7F091114 00003825 */ move $a3, $zero +.L7F091118: +/* 0C5C48 7F091118 30AD0030 */ andi $t5, $a1, 0x30 +/* 0C5C4C 7F09111C 15A00085 */ bnez $t5, .L7F091334 +/* 0C5C50 7F091120 30AE2000 */ andi $t6, $a1, 0x2000 +/* 0C5C54 7F091124 11C00005 */ beqz $t6, .L7F09113C +/* 0C5C58 7F091128 3C0F8003 */ lui $t7, %hi(D_80037054) +/* 0C5C5C 7F09112C 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0C5C60 7F091130 44812000 */ mtc1 $at, $f4 +/* 0C5C64 7F091134 00000000 */ nop +/* 0C5C68 7F091138 46040083 */ div.s $f2, $f0, $f4 +.L7F09113C: +/* 0C5C6C 7F09113C 95EF7054 */ lhu $t7, %lo(D_80037054)($t7) +/* 0C5C70 7F091140 44874000 */ mtc1 $a3, $f8 +/* 0C5C74 7F091144 30AA0101 */ andi $t2, $a1, 0x101 +/* 0C5C78 7F091148 01E0C027 */ not $t8, $t7 +/* 0C5C7C 7F09114C 00B81024 */ and $v0, $a1, $t8 +/* 0C5C80 7F091150 30598000 */ andi $t9, $v0, 0x8000 +/* 0C5C84 7F091154 30484000 */ andi $t0, $v0, 0x4000 +/* 0C5C88 7F091158 13200005 */ beqz $t9, .L7F091170 +/* 0C5C8C 7F09115C 46804020 */ cvt.s.w $f0, $f8 +/* 0C5C90 7F091160 3C018003 */ lui $at, %hi(D_80037050) +/* 0C5C94 7F091164 C42C7050 */ lwc1 $f12, %lo(D_80037050)($at) +/* 0C5C98 7F091168 460C6300 */ add.s $f12, $f12, $f12 +/* 0C5C9C 7F09116C E42C7050 */ swc1 $f12, %lo(D_80037050)($at) +.L7F091170: +/* 0C5CA0 7F091170 3C018003 */ lui $at, %hi(D_80037050) +/* 0C5CA4 7F091174 11000006 */ beqz $t0, .L7F091190 +/* 0C5CA8 7F091178 C42C7050 */ lwc1 $f12, %lo(D_80037050)($at) +/* 0C5CAC 7F09117C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C5CB0 7F091180 44813000 */ mtc1 $at, $f6 +/* 0C5CB4 7F091184 00000000 */ nop +/* 0C5CB8 7F091188 46066302 */ mul.s $f12, $f12, $f6 +/* 0C5CBC 7F09118C 00000000 */ nop +.L7F091190: +/* 0C5CC0 7F091190 3C018003 */ lui $at, %hi(D_80037040) +/* 0C5CC4 7F091194 C4307040 */ lwc1 $f16, %lo(D_80037040)($at) +/* 0C5CC8 7F091198 3C048003 */ lui $a0, %hi(stanbondx) +/* 0C5CCC 7F09119C 24847014 */ addiu $a0, %lo(stanbondx) # addiu $a0, $a0, 0x7014 +/* 0C5CD0 7F0911A0 46100102 */ mul.s $f4, $f0, $f16 +/* 0C5CD4 7F0911A4 C48A0000 */ lwc1 $f10, ($a0) +/* 0C5CD8 7F0911A8 3C018003 */ lui $at, %hi(D_8003703C) +/* 0C5CDC 7F0911AC 30A90202 */ andi $t1, $a1, 0x202 +/* 0C5CE0 7F0911B0 3C028003 */ lui $v0, %hi(D_80037044) +/* 0C5CE4 7F0911B4 24427044 */ addiu $v0, %lo(D_80037044) # addiu $v0, $v0, 0x7044 +/* 0C5CE8 7F0911B8 30AD0400 */ andi $t5, $a1, 0x400 +/* 0C5CEC 7F0911BC 46022182 */ mul.s $f6, $f4, $f2 +/* 0C5CF0 7F0911C0 30AE0008 */ andi $t6, $a1, 8 +/* 0C5CF4 7F0911C4 30AF0004 */ andi $t7, $a1, 4 +/* 0C5CF8 7F0911C8 460C3202 */ mul.s $f8, $f6, $f12 +/* 0C5CFC 7F0911CC C4860008 */ lwc1 $f6, 8($a0) +/* 0C5D00 7F0911D0 46085100 */ add.s $f4, $f10, $f8 +/* 0C5D04 7F0911D4 46000287 */ neg.s $f10, $f0 +/* 0C5D08 7F0911D8 E4840000 */ swc1 $f4, ($a0) +/* 0C5D0C 7F0911DC C432703C */ lwc1 $f18, %lo(D_8003703C)($at) +/* 0C5D10 7F0911E0 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0C5D14 7F0911E4 46125202 */ mul.s $f8, $f10, $f18 +/* 0C5D18 7F0911E8 00000000 */ nop +/* 0C5D1C 7F0911EC 46024102 */ mul.s $f4, $f8, $f2 +/* 0C5D20 7F0911F0 00000000 */ nop +/* 0C5D24 7F0911F4 460C2282 */ mul.s $f10, $f4, $f12 +/* 0C5D28 7F0911F8 460A3200 */ add.s $f8, $f6, $f10 +/* 0C5D2C 7F0911FC 11200011 */ beqz $t1, .L7F091244 +/* 0C5D30 7F091200 E4880008 */ swc1 $f8, 8($a0) +/* 0C5D34 7F091204 44810000 */ mtc1 $at, $f0 +/* 0C5D38 7F091208 C4840000 */ lwc1 $f4, ($a0) +/* 0C5D3C 7F09120C 46120182 */ mul.s $f6, $f0, $f18 +/* 0C5D40 7F091210 00000000 */ nop +/* 0C5D44 7F091214 46023282 */ mul.s $f10, $f6, $f2 +/* 0C5D48 7F091218 00000000 */ nop +/* 0C5D4C 7F09121C 460C5202 */ mul.s $f8, $f10, $f12 +/* 0C5D50 7F091220 C48A0008 */ lwc1 $f10, 8($a0) +/* 0C5D54 7F091224 46082181 */ sub.s $f6, $f4, $f8 +/* 0C5D58 7F091228 46100102 */ mul.s $f4, $f0, $f16 +/* 0C5D5C 7F09122C E4860000 */ swc1 $f6, ($a0) +/* 0C5D60 7F091230 46022202 */ mul.s $f8, $f4, $f2 +/* 0C5D64 7F091234 00000000 */ nop +/* 0C5D68 7F091238 460C4182 */ mul.s $f6, $f8, $f12 +/* 0C5D6C 7F09123C 46065101 */ sub.s $f4, $f10, $f6 +/* 0C5D70 7F091240 E4840008 */ swc1 $f4, 8($a0) +.L7F091244: +/* 0C5D74 7F091244 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0C5D78 7F091248 44810000 */ mtc1 $at, $f0 +/* 0C5D7C 7F09124C 51400010 */ beql $t2, $zero, .L7F091290 +/* 0C5D80 7F091250 83AB001B */ lb $t3, 0x1b($sp) +/* 0C5D84 7F091254 46120282 */ mul.s $f10, $f0, $f18 +/* 0C5D88 7F091258 C4880000 */ lwc1 $f8, ($a0) +/* 0C5D8C 7F09125C 46025182 */ mul.s $f6, $f10, $f2 +/* 0C5D90 7F091260 00000000 */ nop +/* 0C5D94 7F091264 460C3102 */ mul.s $f4, $f6, $f12 +/* 0C5D98 7F091268 C4860008 */ lwc1 $f6, 8($a0) +/* 0C5D9C 7F09126C 46044280 */ add.s $f10, $f8, $f4 +/* 0C5DA0 7F091270 46100202 */ mul.s $f8, $f0, $f16 +/* 0C5DA4 7F091274 E48A0000 */ swc1 $f10, ($a0) +/* 0C5DA8 7F091278 46024102 */ mul.s $f4, $f8, $f2 +/* 0C5DAC 7F09127C 00000000 */ nop +/* 0C5DB0 7F091280 460C2282 */ mul.s $f10, $f4, $f12 +/* 0C5DB4 7F091284 460A3200 */ add.s $f8, $f6, $f10 +/* 0C5DB8 7F091288 E4880008 */ swc1 $f8, 8($a0) +/* 0C5DBC 7F09128C 83AB001B */ lb $t3, 0x1b($sp) +.L7F091290: +/* 0C5DC0 7F091290 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 0C5DC4 7F091294 44814000 */ mtc1 $at, $f8 +/* 0C5DC8 7F091298 448B2000 */ mtc1 $t3, $f4 +/* 0C5DCC 7F09129C 3C038003 */ lui $v1, %hi(D_80037038) +/* 0C5DD0 7F0912A0 24637038 */ addiu $v1, %lo(D_80037038) # addiu $v1, $v1, 0x7038 +/* 0C5DD4 7F0912A4 468021A0 */ cvt.s.w $f6, $f4 +/* 0C5DD8 7F0912A8 30AC0800 */ andi $t4, $a1, 0x800 +/* 0C5DDC 7F0912AC 3C018003 */ lui $at, %hi(D_80037050) +/* 0C5DE0 7F0912B0 46023282 */ mul.s $f10, $f6, $f2 +/* 0C5DE4 7F0912B4 C4660000 */ lwc1 $f6, ($v1) +/* 0C5DE8 7F0912B8 46085102 */ mul.s $f4, $f10, $f8 +/* 0C5DEC 7F0912BC 46043280 */ add.s $f10, $f6, $f4 +/* 0C5DF0 7F0912C0 11800005 */ beqz $t4, .L7F0912D8 +/* 0C5DF4 7F0912C4 E46A0000 */ swc1 $f10, ($v1) +/* 0C5DF8 7F0912C8 46021180 */ add.s $f6, $f2, $f2 +/* 0C5DFC 7F0912CC C4480000 */ lwc1 $f8, ($v0) +/* 0C5E00 7F0912D0 46064101 */ sub.s $f4, $f8, $f6 +/* 0C5E04 7F0912D4 E4440000 */ swc1 $f4, ($v0) +.L7F0912D8: +/* 0C5E08 7F0912D8 3C028003 */ lui $v0, %hi(D_80037044) +/* 0C5E0C 7F0912DC 11A00005 */ beqz $t5, .L7F0912F4 +/* 0C5E10 7F0912E0 24427044 */ addiu $v0, %lo(D_80037044) # addiu $v0, $v0, 0x7044 +/* 0C5E14 7F0912E4 46021200 */ add.s $f8, $f2, $f2 +/* 0C5E18 7F0912E8 C44A0000 */ lwc1 $f10, ($v0) +/* 0C5E1C 7F0912EC 46085180 */ add.s $f6, $f10, $f8 +/* 0C5E20 7F0912F0 E4460000 */ swc1 $f6, ($v0) +.L7F0912F4: +/* 0C5E24 7F0912F4 11C00006 */ beqz $t6, .L7F091310 +/* 0C5E28 7F0912F8 00000000 */ nop +/* 0C5E2C 7F0912FC 46020282 */ mul.s $f10, $f0, $f2 +/* 0C5E30 7F091300 C4840004 */ lwc1 $f4, 4($a0) +/* 0C5E34 7F091304 460C5202 */ mul.s $f8, $f10, $f12 +/* 0C5E38 7F091308 46082180 */ add.s $f6, $f4, $f8 +/* 0C5E3C 7F09130C E4860004 */ swc1 $f6, 4($a0) +.L7F091310: +/* 0C5E40 7F091310 11E00008 */ beqz $t7, .L7F091334 +/* 0C5E44 7F091314 E42C7050 */ swc1 $f12, %lo(D_80037050)($at) +/* 0C5E48 7F091318 46020102 */ mul.s $f4, $f0, $f2 +/* 0C5E4C 7F09131C C48A0004 */ lwc1 $f10, 4($a0) +/* 0C5E50 7F091320 3C018003 */ lui $at, %hi(D_80037050) +/* 0C5E54 7F091324 460C2202 */ mul.s $f8, $f4, $f12 +/* 0C5E58 7F091328 46085181 */ sub.s $f6, $f10, $f8 +/* 0C5E5C 7F09132C E4860004 */ swc1 $f6, 4($a0) +/* 0C5E60 7F091330 E42C7050 */ swc1 $f12, %lo(D_80037050)($at) +.L7F091334: +/* 0C5E64 7F091334 3C038003 */ lui $v1, %hi(D_80037038) +/* 0C5E68 7F091338 24637038 */ addiu $v1, %lo(D_80037038) # addiu $v1, $v1, 0x7038 +/* 0C5E6C 7F09133C 44806000 */ mtc1 $zero, $f12 +/* 0C5E70 7F091340 C46E0000 */ lwc1 $f14, ($v1) +/* 0C5E74 7F091344 3C028003 */ lui $v0, %hi(D_80037044) +/* 0C5E78 7F091348 24427044 */ addiu $v0, %lo(D_80037044) # addiu $v0, $v0, 0x7044 +/* 0C5E7C 7F09134C 460C703C */ c.lt.s $f14, $f12 +/* 0C5E80 7F091350 3C0143B4 */ lui $at, 0x43b4 +/* 0C5E84 7F091354 4502000B */ bc1fl .L7F091384 +/* 0C5E88 7F091358 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0C5E8C 7F09135C 44811000 */ mtc1 $at, $f2 +/* 0C5E90 7F091360 00000000 */ nop +/* 0C5E94 7F091364 46027100 */ add.s $f4, $f14, $f2 +.L7F091368: +/* 0C5E98 7F091368 E4640000 */ swc1 $f4, ($v1) +/* 0C5E9C 7F09136C C46E0000 */ lwc1 $f14, ($v1) +/* 0C5EA0 7F091370 460C703C */ c.lt.s $f14, $f12 +/* 0C5EA4 7F091374 00000000 */ nop +/* 0C5EA8 7F091378 4503FFFB */ bc1tl .L7F091368 +/* 0C5EAC 7F09137C 46027100 */ add.s $f4, $f14, $f2 +/* 0C5EB0 7F091380 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +.L7F091384: +/* 0C5EB4 7F091384 44811000 */ mtc1 $at, $f2 +/* 0C5EB8 7F091388 3C018005 */ lui $at, %hi(D_80055850) +/* 0C5EBC 7F09138C 460E103E */ c.le.s $f2, $f14 +/* 0C5EC0 7F091390 00000000 */ nop +/* 0C5EC4 7F091394 45020009 */ bc1fl .L7F0913BC +/* 0C5EC8 7F091398 C4400000 */ lwc1 $f0, ($v0) +/* 0C5ECC 7F09139C 46027281 */ sub.s $f10, $f14, $f2 +.L7F0913A0: +/* 0C5ED0 7F0913A0 E46A0000 */ swc1 $f10, ($v1) +/* 0C5ED4 7F0913A4 C46E0000 */ lwc1 $f14, ($v1) +/* 0C5ED8 7F0913A8 460E103E */ c.le.s $f2, $f14 +/* 0C5EDC 7F0913AC 00000000 */ nop +/* 0C5EE0 7F0913B0 4503FFFB */ bc1tl .L7F0913A0 +/* 0C5EE4 7F0913B4 46027281 */ sub.s $f10, $f14, $f2 +/* 0C5EE8 7F0913B8 C4400000 */ lwc1 $f0, ($v0) +.L7F0913BC: +/* 0C5EEC 7F0913BC 460C003C */ c.lt.s $f0, $f12 +/* 0C5EF0 7F0913C0 00000000 */ nop +/* 0C5EF4 7F0913C4 45020009 */ bc1fl .L7F0913EC +/* 0C5EF8 7F0913C8 4600103E */ c.le.s $f2, $f0 +/* 0C5EFC 7F0913CC 46020200 */ add.s $f8, $f0, $f2 +.L7F0913D0: +/* 0C5F00 7F0913D0 E4480000 */ swc1 $f8, ($v0) +/* 0C5F04 7F0913D4 C4400000 */ lwc1 $f0, ($v0) +/* 0C5F08 7F0913D8 460C003C */ c.lt.s $f0, $f12 +/* 0C5F0C 7F0913DC 00000000 */ nop +/* 0C5F10 7F0913E0 4503FFFB */ bc1tl .L7F0913D0 +/* 0C5F14 7F0913E4 46020200 */ add.s $f8, $f0, $f2 +/* 0C5F18 7F0913E8 4600103E */ c.le.s $f2, $f0 +.L7F0913EC: +/* 0C5F1C 7F0913EC 00000000 */ nop +/* 0C5F20 7F0913F0 45000008 */ bc1f .L7F091414 +/* 0C5F24 7F0913F4 00000000 */ nop +/* 0C5F28 7F0913F8 46020181 */ sub.s $f6, $f0, $f2 +.L7F0913FC: +/* 0C5F2C 7F0913FC E4460000 */ swc1 $f6, ($v0) +/* 0C5F30 7F091400 C4400000 */ lwc1 $f0, ($v0) +/* 0C5F34 7F091404 4600103E */ c.le.s $f2, $f0 +/* 0C5F38 7F091408 00000000 */ nop +/* 0C5F3C 7F09140C 4503FFFB */ bc1tl .L7F0913FC +/* 0C5F40 7F091410 46020181 */ sub.s $f6, $f0, $f2 +.L7F091414: +/* 0C5F44 7F091414 C4245850 */ lwc1 $f4, %lo(D_80055850)($at) +/* 0C5F48 7F091418 46047302 */ mul.s $f12, $f14, $f4 +/* 0C5F4C 7F09141C 0FC15FA8 */ jal cosf +/* 0C5F50 7F091420 00000000 */ nop +/* 0C5F54 7F091424 3C018003 */ lui $at, %hi(D_8003703C) +/* 0C5F58 7F091428 E420703C */ swc1 $f0, %lo(D_8003703C)($at) +/* 0C5F5C 7F09142C 3C038003 */ lui $v1, %hi(D_80037038) +/* 0C5F60 7F091430 24637038 */ addiu $v1, %lo(D_80037038) # addiu $v1, $v1, 0x7038 +/* 0C5F64 7F091434 3C018005 */ lui $at, %hi(D_80055854) +/* 0C5F68 7F091438 C4285854 */ lwc1 $f8, %lo(D_80055854)($at) +/* 0C5F6C 7F09143C C46A0000 */ lwc1 $f10, ($v1) +/* 0C5F70 7F091440 46085302 */ mul.s $f12, $f10, $f8 +/* 0C5F74 7F091444 0FC15FAB */ jal sinf +/* 0C5F78 7F091448 00000000 */ nop +/* 0C5F7C 7F09144C 3C018003 */ lui $at, %hi(D_80037040) +/* 0C5F80 7F091450 E4207040 */ swc1 $f0, %lo(D_80037040)($at) +/* 0C5F84 7F091454 3C028003 */ lui $v0, %hi(D_80037044) +/* 0C5F88 7F091458 24427044 */ addiu $v0, %lo(D_80037044) # addiu $v0, $v0, 0x7044 +/* 0C5F8C 7F09145C 3C018005 */ lui $at, %hi(D_80055858) +/* 0C5F90 7F091460 C4245858 */ lwc1 $f4, %lo(D_80055858)($at) +/* 0C5F94 7F091464 C4460000 */ lwc1 $f6, ($v0) +/* 0C5F98 7F091468 46043302 */ mul.s $f12, $f6, $f4 +/* 0C5F9C 7F09146C 0FC15FA8 */ jal cosf +/* 0C5FA0 7F091470 00000000 */ nop +/* 0C5FA4 7F091474 3C018003 */ lui $at, %hi(D_80037048) +/* 0C5FA8 7F091478 E4207048 */ swc1 $f0, %lo(D_80037048)($at) +/* 0C5FAC 7F09147C 3C028003 */ lui $v0, %hi(D_80037044) +/* 0C5FB0 7F091480 24427044 */ addiu $v0, %lo(D_80037044) # addiu $v0, $v0, 0x7044 +/* 0C5FB4 7F091484 3C018005 */ lui $at, %hi(D_8005585C) +/* 0C5FB8 7F091488 C428585C */ lwc1 $f8, %lo(D_8005585C)($at) +/* 0C5FBC 7F09148C C44A0000 */ lwc1 $f10, ($v0) +/* 0C5FC0 7F091490 46085302 */ mul.s $f12, $f10, $f8 +/* 0C5FC4 7F091494 0FC15FAB */ jal sinf +/* 0C5FC8 7F091498 00000000 */ nop +/* 0C5FCC 7F09149C 3C048003 */ lui $a0, %hi(D_8003704C) +/* 0C5FD0 7F0914A0 2484704C */ addiu $a0, %lo(D_8003704C) # addiu $a0, $a0, 0x704c +/* 0C5FD4 7F0914A4 E4800000 */ swc1 $f0, ($a0) +/* 0C5FD8 7F0914A8 C4820000 */ lwc1 $f2, ($a0) +/* 0C5FDC 7F0914AC 3C028003 */ lui $v0, %hi(D_80037020) +/* 0C5FE0 7F0914B0 24427020 */ addiu $v0, %lo(D_80037020) # addiu $v0, $v0, 0x7020 +/* 0C5FE4 7F0914B4 3C018003 */ lui $at, %hi(D_80037048) +/* 0C5FE8 7F0914B8 E4420004 */ swc1 $f2, 4($v0) +/* 0C5FEC 7F0914BC C42E7048 */ lwc1 $f14, %lo(D_80037048)($at) +/* 0C5FF0 7F0914C0 3C018003 */ lui $at, %hi(D_80037040) +/* 0C5FF4 7F0914C4 C4307040 */ lwc1 $f16, %lo(D_80037040)($at) +/* 0C5FF8 7F0914C8 3C018003 */ lui $at, %hi(D_8003703C) +/* 0C5FFC 7F0914CC 46007107 */ neg.s $f4, $f14 +/* 0C6000 7F0914D0 46107182 */ mul.s $f6, $f14, $f16 +/* 0C6004 7F0914D4 46001207 */ neg.s $f8, $f2 +/* 0C6008 7F0914D8 3C038003 */ lui $v1, %hi(D_8003702C) +/* 0C600C 7F0914DC 2463702C */ addiu $v1, %lo(D_8003702C) # addiu $v1, $v1, 0x702c +/* 0C6010 7F0914E0 97B80022 */ lhu $t8, 0x22($sp) +/* 0C6014 7F0914E4 E4460000 */ swc1 $f6, ($v0) +/* 0C6018 7F0914E8 C432703C */ lwc1 $f18, %lo(D_8003703C)($at) +/* 0C601C 7F0914EC 3C018003 */ lui $at, %hi(D_80037054) +/* 0C6020 7F0914F0 E46E0004 */ swc1 $f14, 4($v1) +/* 0C6024 7F0914F4 46122282 */ mul.s $f10, $f4, $f18 +/* 0C6028 7F0914F8 00000000 */ nop +/* 0C602C 7F0914FC 46104182 */ mul.s $f6, $f8, $f16 +/* 0C6030 7F091500 00000000 */ nop +/* 0C6034 7F091504 46121102 */ mul.s $f4, $f2, $f18 +/* 0C6038 7F091508 E44A0008 */ swc1 $f10, 8($v0) +/* 0C603C 7F09150C E4660000 */ swc1 $f6, ($v1) +/* 0C6040 7F091510 E4640008 */ swc1 $f4, 8($v1) +/* 0C6044 7F091514 A4387054 */ sh $t8, %lo(D_80037054)($at) +/* 0C6048 7F091518 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0C604C 7F09151C 44816000 */ mtc1 $at, $f12 +/* 0C6050 7F091520 0FC26C85 */ jal set_cur_player_fovy +/* 0C6054 7F091524 00000000 */ nop +/* 0C6058 7F091528 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079E20) +/* 0C605C 7F09152C 24429E20 */ addiu $v0, %lo(dword_CODE_bss_80079E20) # addiu $v0, $v0, -0x61e0 +/* 0C6060 7F091530 8C590000 */ lw $t9, ($v0) +/* 0C6064 7F091534 24010001 */ li $at, 1 +/* 0C6068 7F091538 27230001 */ addiu $v1, $t9, 1 +/* 0C606C 7F09153C 14610007 */ bne $v1, $at, .L7F09155C +/* 0C6070 7F091540 AC430000 */ sw $v1, ($v0) +/* 0C6074 7F091544 0FC173D7 */ jal remove_item_in_hand +/* 0C6078 7F091548 00002025 */ move $a0, $zero +/* 0C607C 7F09154C 0FC173D7 */ jal remove_item_in_hand +/* 0C6080 7F091550 24040001 */ li $a0, 1 +/* 0C6084 7F091554 10000007 */ b .L7F091574 +/* 0C6088 7F091558 8FBF0014 */ lw $ra, 0x14($sp) +.L7F09155C: +/* 0C608C 7F09155C 24010004 */ li $at, 4 +/* 0C6090 7F091560 54610004 */ bnel $v1, $at, .L7F091574 +/* 0C6094 7F091564 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6098 7F091568 0FC1E73C */ jal solo_char_load +/* 0C609C 7F09156C 00000000 */ nop +/* 0C60A0 7F091570 8FBF0014 */ lw $ra, 0x14($sp) +.L7F091574: +/* 0C60A4 7F091574 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C60A8 7F091578 03E00008 */ jr $ra +/* 0C60AC 7F09157C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F091580(s32 arg0) { + // Node 0 + sub_GAME_7F0876C4(&stanbondx, &D_80037020, &D_8003702C); + return arg0; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F091580 +/* 0C60B0 7F091580 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C60B4 7F091584 AFA40018 */ sw $a0, 0x18($sp) +/* 0C60B8 7F091588 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C60BC 7F09158C 3C048003 */ lui $a0, %hi(stanbondx) +/* 0C60C0 7F091590 3C058003 */ lui $a1, %hi(D_80037020) +/* 0C60C4 7F091594 3C068003 */ lui $a2, %hi(D_8003702C) +/* 0C60C8 7F091598 24C6702C */ addiu $a2, %lo(D_8003702C) # addiu $a2, $a2, 0x702c +/* 0C60CC 7F09159C 24A57020 */ addiu $a1, %lo(D_80037020) # addiu $a1, $a1, 0x7020 +/* 0C60D0 7F0915A0 0FC21DB1 */ jal sub_GAME_7F0876C4 +/* 0C60D4 7F0915A4 24847014 */ addiu $a0, %lo(stanbondx) # addiu $a0, $a0, 0x7014 +/* 0C60D8 7F0915A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C60DC 7F0915AC 8FA20018 */ lw $v0, 0x18($sp) +/* 0C60E0 7F0915B0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C60E4 7F0915B4 03E00008 */ jr $ra +/* 0C60E8 7F0915B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0915BC(f32 arg0) { + f32 temp_f0; + + // Node 0 + temp_f0 = (D_80037058 / arg0); + D_80037058 = arg0; + stanbondx = (f32) (stanbondx * temp_f0); + stanbondx.unk4 = (f32) (stanbondx.unk4 * temp_f0); + stanbondx.unk8 = (f32) (stanbondx.unk8 * temp_f0); + D_8003705C = (f32) (1.0f / arg0); + return; + // (possible return value: temp_f0) +} + + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0915BC +/* 0C60EC 7F0915BC 3C028003 */ lui $v0, %hi(D_80037058) +/* 0C60F0 7F0915C0 24427058 */ addiu $v0, %lo(D_80037058) # addiu $v0, $v0, 0x7058 +/* 0C60F4 7F0915C4 C4440000 */ lwc1 $f4, ($v0) +/* 0C60F8 7F0915C8 3C038003 */ lui $v1, %hi(stanbondx) +/* 0C60FC 7F0915CC 24637014 */ addiu $v1, %lo(stanbondx) # addiu $v1, $v1, 0x7014 +/* 0C6100 7F0915D0 460C2003 */ div.s $f0, $f4, $f12 +/* 0C6104 7F0915D4 C4660000 */ lwc1 $f6, ($v1) +/* 0C6108 7F0915D8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C610C 7F0915DC C46A0004 */ lwc1 $f10, 4($v1) +/* 0C6110 7F0915E0 C4720008 */ lwc1 $f18, 8($v1) +/* 0C6114 7F0915E4 E44C0000 */ swc1 $f12, ($v0) +/* 0C6118 7F0915E8 46003202 */ mul.s $f8, $f6, $f0 +/* 0C611C 7F0915EC 44813000 */ mtc1 $at, $f6 +/* 0C6120 7F0915F0 3C018003 */ lui $at, %hi(D_8003705C) +/* 0C6124 7F0915F4 46005402 */ mul.s $f16, $f10, $f0 +/* 0C6128 7F0915F8 00000000 */ nop +/* 0C612C 7F0915FC 46009102 */ mul.s $f4, $f18, $f0 +/* 0C6130 7F091600 E4680000 */ swc1 $f8, ($v1) +/* 0C6134 7F091604 E4700004 */ swc1 $f16, 4($v1) +/* 0C6138 7F091608 460C3203 */ div.s $f8, $f6, $f12 +/* 0C613C 7F09160C E4640008 */ swc1 $f4, 8($v1) +/* 0C6140 7F091610 03E00008 */ jr $ra +/* 0C6144 7F091614 E428705C */ swc1 $f8, %lo(D_8003705C)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F091618(void) +{ + float __x; + + get_BONDdata_position(); + __x = get_curplay_horizontal_rotation_in_degrees(); + __x = 6.28318548f - __x; + cosf(__x); + sinf(__x); + cosf(__x); + sinf(__x); + return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80055860 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F091618 +/* 0C6148 7F091618 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C614C 7F09161C AFBF0014 */ sw $ra, 0x14($sp) +/* 0C6150 7F091620 0FC227F5 */ jal get_BONDdata_position +/* 0C6154 7F091624 00000000 */ nop +/* 0C6158 7F091628 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 0C615C 7F09162C 00000000 */ nop +/* 0C6160 7F091630 3C018005 */ lui $at, %hi(D_80055860) +/* 0C6164 7F091634 C4245860 */ lwc1 $f4, %lo(D_80055860)($at) +/* 0C6168 7F091638 46002301 */ sub.s $f12, $f4, $f0 +/* 0C616C 7F09163C 0FC15FA8 */ jal cosf +/* 0C6170 7F091640 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0C6174 7F091644 0FC15FAB */ jal sinf +/* 0C6178 7F091648 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 0C617C 7F09164C 0FC15FA8 */ jal cosf +/* 0C6180 7F091650 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 0C6184 7F091654 0FC15FAB */ jal sinf +/* 0C6188 7F091658 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 0C618C 7F09165C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6190 7F091660 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C6194 7F091664 03E00008 */ jr $ra +/* 0C6198 7F091668 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09166C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09166C +/* 0C619C 7F09166C 3C028003 */ lui $v0, %hi(stanbondx) +/* 0C61A0 7F091670 3C038003 */ lui $v1, %hi(D_80037060) +/* 0C61A4 7F091674 24637060 */ addiu $v1, %lo(D_80037060) # addiu $v1, $v1, 0x7060 +/* 0C61A8 7F091678 24427014 */ addiu $v0, %lo(stanbondx) # addiu $v0, $v0, 0x7014 +/* 0C61AC 7F09167C C4440000 */ lwc1 $f4, ($v0) +/* 0C61B0 7F091680 C4660000 */ lwc1 $f6, ($v1) +/* 0C61B4 7F091684 C4480004 */ lwc1 $f8, 4($v0) +/* 0C61B8 7F091688 C46A0004 */ lwc1 $f10, 4($v1) +/* 0C61BC 7F09168C 46062001 */ sub.s $f0, $f4, $f6 +/* 0C61C0 7F091690 C4500008 */ lwc1 $f16, 8($v0) +/* 0C61C4 7F091694 C4720008 */ lwc1 $f18, 8($v1) +/* 0C61C8 7F091698 460A4081 */ sub.s $f2, $f8, $f10 +/* 0C61CC 7F09169C 46000102 */ mul.s $f4, $f0, $f0 +/* 0C61D0 7F0916A0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C61D4 7F0916A4 46128381 */ sub.s $f14, $f16, $f18 +/* 0C61D8 7F0916A8 46021182 */ mul.s $f6, $f2, $f2 +/* 0C61DC 7F0916AC AFBF0014 */ sw $ra, 0x14($sp) +/* 0C61E0 7F0916B0 460E7282 */ mul.s $f10, $f14, $f14 +/* 0C61E4 7F0916B4 46062200 */ add.s $f8, $f4, $f6 +/* 0C61E8 7F0916B8 0C007DF8 */ jal sqrtf +/* 0C61EC 7F0916BC 460A4300 */ add.s $f12, $f8, $f10 +/* 0C61F0 7F0916C0 3C028003 */ lui $v0, %hi(stanbondx) +/* 0C61F4 7F0916C4 24427014 */ addiu $v0, %lo(stanbondx) # addiu $v0, $v0, 0x7014 +/* 0C61F8 7F0916C8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C61FC 7F0916CC 3C038003 */ lui $v1, %hi(D_80037060) +/* 0C6200 7F0916D0 C4500000 */ lwc1 $f16, ($v0) +/* 0C6204 7F0916D4 C4520004 */ lwc1 $f18, 4($v0) +/* 0C6208 7F0916D8 C4440008 */ lwc1 $f4, 8($v0) +/* 0C620C 7F0916DC 24637060 */ addiu $v1, %lo(D_80037060) # addiu $v1, $v1, 0x7060 +/* 0C6210 7F0916E0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C6214 7F0916E4 E4700000 */ swc1 $f16, ($v1) +/* 0C6218 7F0916E8 E4720004 */ swc1 $f18, 4($v1) +/* 0C621C 7F0916EC 03E00008 */ jr $ra +/* 0C6220 7F0916F0 E4640008 */ swc1 $f4, 8($v1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0916F4(void) +{ + struct xyzpoint *pos; + + pos = get_BONDdata_position(); + stanbondx.x = pos->x; + stanbondx.y = pos->y; + stanbondx.z = pos->z; + dword_CODE_bss_80079E20 = 0; + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0916F4 +/* 0C6224 7F0916F4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C6228 7F0916F8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C622C 7F0916FC 0FC227F5 */ jal get_BONDdata_position +/* 0C6230 7F091700 00000000 */ nop +/* 0C6234 7F091704 C4440000 */ lwc1 $f4, ($v0) +/* 0C6238 7F091708 3C038003 */ lui $v1, %hi(stanbondx) +/* 0C623C 7F09170C 24637014 */ addiu $v1, %lo(stanbondx) # addiu $v1, $v1, 0x7014 +/* 0C6240 7F091710 E4640000 */ swc1 $f4, ($v1) +/* 0C6244 7F091714 C4460004 */ lwc1 $f6, 4($v0) +/* 0C6248 7F091718 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C624C 7F09171C 3C018008 */ lui $at, %hi(dword_CODE_bss_80079E20) +/* 0C6250 7F091720 E4660004 */ swc1 $f6, 4($v1) +/* 0C6254 7F091724 C4480008 */ lwc1 $f8, 8($v0) +/* 0C6258 7F091728 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0C625C 7F09172C E4680008 */ swc1 $f8, 8($v1) +/* 0C6260 7F091730 03E00008 */ jr $ra +/* 0C6264 7F091734 AC209E20 */ sw $zero, %lo(dword_CODE_bss_80079E20)($at) +) +#endif + + + diff --git a/src/game/unk_092890.c b/src/game/unk_092890.c new file mode 100644 index 0000000..b2939d7 --- /dev/null +++ b/src/game/unk_092890.c @@ -0,0 +1,391 @@ +#include "ultra64.h" + + +#ifdef NONMATCHING +void sub_GAME_7F092890(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F092890 +/* 0C73C0 7F092890 27BDFEA8 */ addiu $sp, $sp, -0x158 +/* 0C73C4 7F092894 F7BE0030 */ sdc1 $f30, 0x30($sp) +/* 0C73C8 7F092898 F7BC0028 */ sdc1 $f28, 0x28($sp) +/* 0C73CC 7F09289C F7BA0020 */ sdc1 $f26, 0x20($sp) +/* 0C73D0 7F0928A0 F7B80018 */ sdc1 $f24, 0x18($sp) +/* 0C73D4 7F0928A4 F7B60010 */ sdc1 $f22, 0x10($sp) +/* 0C73D8 7F0928A8 F7B40008 */ sdc1 $f20, 8($sp) +/* 0C73DC 7F0928AC C4E40000 */ lwc1 $f4, ($a3) +/* 0C73E0 7F0928B0 8FA90170 */ lw $t1, 0x170($sp) +/* 0C73E4 7F0928B4 8FAA016C */ lw $t2, 0x16c($sp) +/* 0C73E8 7F0928B8 46002221 */ cvt.d.s $f8, $f4 +/* 0C73EC 7F0928BC F7A80090 */ sdc1 $f8, 0x90($sp) +/* 0C73F0 7F0928C0 C4EA0004 */ lwc1 $f10, 4($a3) +/* 0C73F4 7F0928C4 460051A1 */ cvt.d.s $f6, $f10 +/* 0C73F8 7F0928C8 F7A60098 */ sdc1 $f6, 0x98($sp) +/* 0C73FC 7F0928CC C4E40008 */ lwc1 $f4, 8($a3) +/* 0C7400 7F0928D0 46002221 */ cvt.d.s $f8, $f4 +/* 0C7404 7F0928D4 F7A800A0 */ sdc1 $f8, 0xa0($sp) +/* 0C7408 7F0928D8 C52A0000 */ lwc1 $f10, ($t1) +/* 0C740C 7F0928DC 460051A1 */ cvt.d.s $f6, $f10 +/* 0C7410 7F0928E0 F7A60078 */ sdc1 $f6, 0x78($sp) +/* 0C7414 7F0928E4 C5240004 */ lwc1 $f4, 4($t1) +/* 0C7418 7F0928E8 46002221 */ cvt.d.s $f8, $f4 +/* 0C741C 7F0928EC F7A80080 */ sdc1 $f8, 0x80($sp) +/* 0C7420 7F0928F0 C52A0008 */ lwc1 $f10, 8($t1) +/* 0C7424 7F0928F4 46005121 */ cvt.d.s $f4, $f10 +/* 0C7428 7F0928F8 F7A40088 */ sdc1 $f4, 0x88($sp) +/* 0C742C 7F0928FC C54A0000 */ lwc1 $f10, ($t2) +/* 0C7430 7F092900 460052A1 */ cvt.d.s $f10, $f10 +/* 0C7434 7F092904 F7AA0060 */ sdc1 $f10, 0x60($sp) +/* 0C7438 7F092908 C54A0004 */ lwc1 $f10, 4($t2) +/* 0C743C 7F09290C 460052A1 */ cvt.d.s $f10, $f10 +/* 0C7440 7F092910 F7AA0068 */ sdc1 $f10, 0x68($sp) +/* 0C7444 7F092914 C54A0008 */ lwc1 $f10, 8($t2) +/* 0C7448 7F092918 460052A1 */ cvt.d.s $f10, $f10 +/* 0C744C 7F09291C F7AA0070 */ sdc1 $f10, 0x70($sp) +/* 0C7450 7F092920 848C0000 */ lh $t4, ($a0) +/* 0C7454 7F092924 84AB0000 */ lh $t3, ($a1) +/* 0C7458 7F092928 016C6823 */ subu $t5, $t3, $t4 +/* 0C745C 7F09292C 448D5000 */ mtc1 $t5, $f10 +/* 0C7460 7F092930 00000000 */ nop +/* 0C7464 7F092934 468052A1 */ cvt.d.w $f10, $f10 +/* 0C7468 7F092938 F7AA0140 */ sdc1 $f10, 0x140($sp) +/* 0C746C 7F09293C 84CE0000 */ lh $t6, ($a2) +/* 0C7470 7F092940 84AF0000 */ lh $t7, ($a1) +/* 0C7474 7F092944 F7A60038 */ sdc1 $f6, 0x38($sp) +/* 0C7478 7F092948 01CFC023 */ subu $t8, $t6, $t7 +/* 0C747C 7F09294C 44983000 */ mtc1 $t8, $f6 +/* 0C7480 7F092950 00000000 */ nop +/* 0C7484 7F092954 468031A1 */ cvt.d.w $f6, $f6 +/* 0C7488 7F092958 F7A60128 */ sdc1 $f6, 0x128($sp) +/* 0C748C 7F09295C 84880002 */ lh $t0, 2($a0) +/* 0C7490 7F092960 84B90002 */ lh $t9, 2($a1) +/* 0C7494 7F092964 F7A80040 */ sdc1 $f8, 0x40($sp) +/* 0C7498 7F092968 03284823 */ subu $t1, $t9, $t0 +/* 0C749C 7F09296C 44894000 */ mtc1 $t1, $f8 +/* 0C74A0 7F092970 00000000 */ nop +/* 0C74A4 7F092974 46804221 */ cvt.d.w $f8, $f8 +/* 0C74A8 7F092978 F7A80148 */ sdc1 $f8, 0x148($sp) +/* 0C74AC 7F09297C 84CA0002 */ lh $t2, 2($a2) +/* 0C74B0 7F092980 84AB0002 */ lh $t3, 2($a1) +/* 0C74B4 7F092984 014B6023 */ subu $t4, $t2, $t3 +/* 0C74B8 7F092988 448C4000 */ mtc1 $t4, $f8 +/* 0C74BC 7F09298C 00000000 */ nop +/* 0C74C0 7F092990 46804221 */ cvt.d.w $f8, $f8 +/* 0C74C4 7F092994 F7A80130 */ sdc1 $f8, 0x130($sp) +/* 0C74C8 7F092998 848E0004 */ lh $t6, 4($a0) +/* 0C74CC 7F09299C 84AD0004 */ lh $t5, 4($a1) +/* 0C74D0 7F0929A0 01AE7823 */ subu $t7, $t5, $t6 +/* 0C74D4 7F0929A4 448F4000 */ mtc1 $t7, $f8 +/* 0C74D8 7F0929A8 00000000 */ nop +/* 0C74DC 7F0929AC 46804221 */ cvt.d.w $f8, $f8 +/* 0C74E0 7F0929B0 F7A80150 */ sdc1 $f8, 0x150($sp) +/* 0C74E4 7F0929B4 84D80004 */ lh $t8, 4($a2) +/* 0C74E8 7F0929B8 84B90004 */ lh $t9, 4($a1) +/* 0C74EC 7F0929BC 03194023 */ subu $t0, $t8, $t9 +/* 0C74F0 7F0929C0 44884000 */ mtc1 $t0, $f8 +/* 0C74F4 7F0929C4 00000000 */ nop +/* 0C74F8 7F0929C8 46804221 */ cvt.d.w $f8, $f8 +/* 0C74FC 7F0929CC F7A80138 */ sdc1 $f8, 0x138($sp) +/* 0C7500 7F0929D0 848A0000 */ lh $t2, ($a0) +/* 0C7504 7F0929D4 84C90000 */ lh $t1, ($a2) +/* 0C7508 7F0929D8 012A5823 */ subu $t3, $t1, $t2 +/* 0C750C 7F0929DC 448B4000 */ mtc1 $t3, $f8 +/* 0C7510 7F0929E0 00000000 */ nop +/* 0C7514 7F0929E4 46804221 */ cvt.d.w $f8, $f8 +/* 0C7518 7F0929E8 F7A80110 */ sdc1 $f8, 0x110($sp) +/* 0C751C 7F0929EC 848D0002 */ lh $t5, 2($a0) +/* 0C7520 7F0929F0 84CC0002 */ lh $t4, 2($a2) +/* 0C7524 7F0929F4 018D7023 */ subu $t6, $t4, $t5 +/* 0C7528 7F0929F8 448E4000 */ mtc1 $t6, $f8 +/* 0C752C 7F0929FC 00000000 */ nop +/* 0C7530 7F092A00 46804221 */ cvt.d.w $f8, $f8 +/* 0C7534 7F092A04 F7A80118 */ sdc1 $f8, 0x118($sp) +/* 0C7538 7F092A08 84980004 */ lh $t8, 4($a0) +/* 0C753C 7F092A0C 84CF0004 */ lh $t7, 4($a2) +/* 0C7540 7F092A10 F7A40048 */ sdc1 $f4, 0x48($sp) +/* 0C7544 7F092A14 D7A40138 */ ldc1 $f4, 0x138($sp) +/* 0C7548 7F092A18 01F8C823 */ subu $t9, $t7, $t8 +/* 0C754C 7F092A1C 44994000 */ mtc1 $t9, $f8 +/* 0C7550 7F092A20 00000000 */ nop +/* 0C7554 7F092A24 46804221 */ cvt.d.w $f8, $f8 +/* 0C7558 7F092A28 F7A80120 */ sdc1 $f8, 0x120($sp) +/* 0C755C 7F092A2C D7A80148 */ ldc1 $f8, 0x148($sp) +/* 0C7560 7F092A30 46244482 */ mul.d $f18, $f8, $f4 +/* 0C7564 7F092A34 D7A40130 */ ldc1 $f4, 0x130($sp) +/* 0C7568 7F092A38 D7A80150 */ ldc1 $f8, 0x150($sp) +/* 0C756C 7F092A3C 46244502 */ mul.d $f20, $f8, $f4 +/* 0C7570 7F092A40 D7A40138 */ ldc1 $f4, 0x138($sp) +/* 0C7574 7F092A44 46264582 */ mul.d $f22, $f8, $f6 +/* 0C7578 7F092A48 D7A80130 */ ldc1 $f8, 0x130($sp) +/* 0C757C 7F092A4C 46245602 */ mul.d $f24, $f10, $f4 +/* 0C7580 7F092A50 D7A40148 */ ldc1 $f4, 0x148($sp) +/* 0C7584 7F092A54 46349301 */ sub.d $f12, $f18, $f20 +/* 0C7588 7F092A58 46285682 */ mul.d $f26, $f10, $f8 +/* 0C758C 7F092A5C 00000000 */ nop +/* 0C7590 7F092A60 46262702 */ mul.d $f28, $f4, $f6 +/* 0C7594 7F092A64 D7A40090 */ ldc1 $f4, 0x90($sp) +/* 0C7598 7F092A68 4638B381 */ sub.d $f14, $f22, $f24 +/* 0C759C 7F092A6C 463CD401 */ sub.d $f16, $f26, $f28 +/* 0C75A0 7F092A70 F7B000F8 */ sdc1 $f16, 0xf8($sp) +/* 0C75A4 7F092A74 84880000 */ lh $t0, ($a0) +/* 0C75A8 7F092A78 84890002 */ lh $t1, 2($a0) +/* 0C75AC 7F092A7C 848A0004 */ lh $t2, 4($a0) +/* 0C75B0 7F092A80 44885000 */ mtc1 $t0, $f10 +/* 0C75B4 7F092A84 F7AE0100 */ sdc1 $f14, 0x100($sp) +/* 0C75B8 7F092A88 F7AC0108 */ sdc1 $f12, 0x108($sp) +/* 0C75BC 7F092A8C 46805221 */ cvt.d.w $f8, $f10 +/* 0C75C0 7F092A90 46244180 */ add.d $f6, $f8, $f4 +/* 0C75C4 7F092A94 44894000 */ mtc1 $t1, $f8 +/* 0C75C8 7F092A98 00000000 */ nop +/* 0C75CC 7F092A9C 46804121 */ cvt.d.w $f4, $f8 +/* 0C75D0 7F092AA0 46266282 */ mul.d $f10, $f12, $f6 +/* 0C75D4 7F092AA4 D7A60098 */ ldc1 $f6, 0x98($sp) +/* 0C75D8 7F092AA8 46262200 */ add.d $f8, $f4, $f6 +/* 0C75DC 7F092AAC 46287102 */ mul.d $f4, $f14, $f8 +/* 0C75E0 7F092AB0 D7A800A0 */ ldc1 $f8, 0xa0($sp) +/* 0C75E4 7F092AB4 46245180 */ add.d $f6, $f10, $f4 +/* 0C75E8 7F092AB8 448A5000 */ mtc1 $t2, $f10 +/* 0C75EC 7F092ABC 00000000 */ nop +/* 0C75F0 7F092AC0 46805121 */ cvt.d.w $f4, $f10 +/* 0C75F4 7F092AC4 46244280 */ add.d $f10, $f8, $f4 +/* 0C75F8 7F092AC8 D7A80048 */ ldc1 $f8, 0x48($sp) +/* 0C75FC 7F092ACC 46305102 */ mul.d $f4, $f10, $f16 +/* 0C7600 7F092AD0 46262280 */ add.d $f10, $f4, $f6 +/* 0C7604 7F092AD4 46304182 */ mul.d $f6, $f8, $f16 +/* 0C7608 7F092AD8 D7A40040 */ ldc1 $f4, 0x40($sp) +/* 0C760C 7F092ADC F7AA00F0 */ sdc1 $f10, 0xf0($sp) +/* 0C7610 7F092AE0 D7AA0038 */ ldc1 $f10, 0x38($sp) +/* 0C7614 7F092AE4 462A6202 */ mul.d $f8, $f12, $f10 +/* 0C7618 7F092AE8 00000000 */ nop +/* 0C761C 7F092AEC 46247282 */ mul.d $f10, $f14, $f4 +/* 0C7620 7F092AF0 462A4100 */ add.d $f4, $f8, $f10 +/* 0C7624 7F092AF4 44804000 */ mtc1 $zero, $f8 +/* 0C7628 7F092AF8 44804800 */ mtc1 $zero, $f9 +/* 0C762C 7F092AFC 46243000 */ add.d $f0, $f6, $f4 +/* 0C7630 7F092B00 D7A60060 */ ldc1 $f6, 0x60($sp) +/* 0C7634 7F092B04 46280032 */ c.eq.d $f0, $f8 +/* 0C7638 7F092B08 00000000 */ nop +/* 0C763C 7F092B0C 45000003 */ bc1f .L7F092B1C +/* 0C7640 7F092B10 00000000 */ nop +/* 0C7644 7F092B14 100000C5 */ b .L7F092E2C +/* 0C7648 7F092B18 00001025 */ move $v0, $zero +.L7F092B1C: +/* 0C764C 7F092B1C 46266102 */ mul.d $f4, $f12, $f6 +/* 0C7650 7F092B20 D7AA00F0 */ ldc1 $f10, 0xf0($sp) +/* 0C7654 7F092B24 F7A60048 */ sdc1 $f6, 0x48($sp) +/* 0C7658 7F092B28 463AE781 */ sub.d $f30, $f28, $f26 +/* 0C765C 7F092B2C 00001025 */ move $v0, $zero +/* 0C7660 7F092B30 46245201 */ sub.d $f8, $f10, $f4 +/* 0C7664 7F092B34 D7AA0068 */ ldc1 $f10, 0x68($sp) +/* 0C7668 7F092B38 462A7102 */ mul.d $f4, $f14, $f10 +/* 0C766C 7F092B3C F7AA0040 */ sdc1 $f10, 0x40($sp) +/* 0C7670 7F092B40 46244201 */ sub.d $f8, $f8, $f4 +/* 0C7674 7F092B44 D7A40070 */ ldc1 $f4, 0x70($sp) +/* 0C7678 7F092B48 46302182 */ mul.d $f6, $f4, $f16 +/* 0C767C 7F092B4C F7A40038 */ sdc1 $f4, 0x38($sp) +/* 0C7680 7F092B50 D7A40080 */ ldc1 $f4, 0x80($sp) +/* 0C7684 7F092B54 46264201 */ sub.d $f8, $f8, $f6 +/* 0C7688 7F092B58 D7A60078 */ ldc1 $f6, 0x78($sp) +/* 0C768C 7F092B5C 46266282 */ mul.d $f10, $f12, $f6 +/* 0C7690 7F092B60 F7A80050 */ sdc1 $f8, 0x50($sp) +/* 0C7694 7F092B64 F7A60058 */ sdc1 $f6, 0x58($sp) +/* 0C7698 7F092B68 46247202 */ mul.d $f8, $f14, $f4 +/* 0C769C 7F092B6C D7AE0148 */ ldc1 $f14, 0x148($sp) +/* 0C76A0 7F092B70 46285280 */ add.d $f10, $f10, $f8 +/* 0C76A4 7F092B74 D7A80088 */ ldc1 $f8, 0x88($sp) +/* 0C76A8 7F092B78 46304182 */ mul.d $f6, $f8, $f16 +/* 0C76AC 7F092B7C 44808000 */ mtc1 $zero, $f16 +/* 0C76B0 7F092B80 44808800 */ mtc1 $zero, $f17 +/* 0C76B4 7F092B84 462A3180 */ add.d $f6, $f6, $f10 +/* 0C76B8 7F092B88 D7AA0050 */ ldc1 $f10, 0x50($sp) +/* 0C76BC 7F092B8C 46265083 */ div.d $f2, $f10, $f6 +/* 0C76C0 7F092B90 D7AA0058 */ ldc1 $f10, 0x58($sp) +/* 0C76C4 7F092B94 46225182 */ mul.d $f6, $f10, $f2 +/* 0C76C8 7F092B98 D7AA0048 */ ldc1 $f10, 0x48($sp) +/* 0C76CC 7F092B9C 462A3180 */ add.d $f6, $f6, $f10 +/* 0C76D0 7F092BA0 46222282 */ mul.d $f10, $f4, $f2 +/* 0C76D4 7F092BA4 D7A40040 */ ldc1 $f4, 0x40($sp) +/* 0C76D8 7F092BA8 F7A600C8 */ sdc1 $f6, 0xc8($sp) +/* 0C76DC 7F092BAC 46245280 */ add.d $f10, $f10, $f4 +/* 0C76E0 7F092BB0 46224102 */ mul.d $f4, $f8, $f2 +/* 0C76E4 7F092BB4 D7A80038 */ ldc1 $f8, 0x38($sp) +/* 0C76E8 7F092BB8 F7AA00D0 */ sdc1 $f10, 0xd0($sp) +/* 0C76EC 7F092BBC 46282100 */ add.d $f4, $f4, $f8 +/* 0C76F0 7F092BC0 D7A80090 */ ldc1 $f8, 0x90($sp) +/* 0C76F4 7F092BC4 F7A400D8 */ sdc1 $f4, 0xd8($sp) +/* 0C76F8 7F092BC8 848B0000 */ lh $t3, ($a0) +/* 0C76FC 7F092BCC F7AA0058 */ sdc1 $f10, 0x58($sp) +/* 0C7700 7F092BD0 448B5000 */ mtc1 $t3, $f10 +/* 0C7704 7F092BD4 00000000 */ nop +/* 0C7708 7F092BD8 468052A1 */ cvt.d.w $f10, $f10 +/* 0C770C 7F092BDC 462A4200 */ add.d $f8, $f8, $f10 +/* 0C7710 7F092BE0 46283281 */ sub.d $f10, $f6, $f8 +/* 0C7714 7F092BE4 D7A80098 */ ldc1 $f8, 0x98($sp) +/* 0C7718 7F092BE8 D7A60058 */ ldc1 $f6, 0x58($sp) +/* 0C771C 7F092BEC F7AA00B0 */ sdc1 $f10, 0xb0($sp) +/* 0C7720 7F092BF0 848C0002 */ lh $t4, 2($a0) +/* 0C7724 7F092BF4 448C5000 */ mtc1 $t4, $f10 +/* 0C7728 7F092BF8 00000000 */ nop +/* 0C772C 7F092BFC 468052A1 */ cvt.d.w $f10, $f10 +/* 0C7730 7F092C00 462A4200 */ add.d $f8, $f8, $f10 +/* 0C7734 7F092C04 46283281 */ sub.d $f10, $f6, $f8 +/* 0C7738 7F092C08 D7A600A0 */ ldc1 $f6, 0xa0($sp) +/* 0C773C 7F092C0C F7AA00B8 */ sdc1 $f10, 0xb8($sp) +/* 0C7740 7F092C10 848D0004 */ lh $t5, 4($a0) +/* 0C7744 7F092C14 448D4000 */ mtc1 $t5, $f8 +/* 0C7748 7F092C18 00000000 */ nop +/* 0C774C 7F092C1C 468042A1 */ cvt.d.w $f10, $f8 +/* 0C7750 7F092C20 462A3200 */ add.d $f8, $f6, $f10 +/* 0C7754 7F092C24 44805000 */ mtc1 $zero, $f10 +/* 0C7758 7F092C28 44805800 */ mtc1 $zero, $f11 +/* 0C775C 7F092C2C 46282181 */ sub.d $f6, $f4, $f8 +/* 0C7760 7F092C30 D7A400B0 */ ldc1 $f4, 0xb0($sp) +/* 0C7764 7F092C34 462AF032 */ c.eq.d $f30, $f10 +/* 0C7768 7F092C38 F7A600C0 */ sdc1 $f6, 0xc0($sp) +/* 0C776C 7F092C3C D7A600B8 */ ldc1 $f6, 0xb8($sp) +/* 0C7770 7F092C40 45030008 */ bc1tl .L7F092C64 +/* 0C7774 7F092C44 4632A301 */ sub.d $f12, $f20, $f18 +/* 0C7778 7F092C48 462E2202 */ mul.d $f8, $f4, $f14 +/* 0C777C 7F092C4C D7AC0140 */ ldc1 $f12, 0x140($sp) +/* 0C7780 7F092C50 46266282 */ mul.d $f10, $f12, $f6 +/* 0C7784 7F092C54 462A4101 */ sub.d $f4, $f8, $f10 +/* 0C7788 7F092C58 1000001C */ b .L7F092CCC +/* 0C778C 7F092C5C 463E2083 */ div.d $f2, $f4, $f30 +/* 0C7790 7F092C60 4632A301 */ sub.d $f12, $f20, $f18 +.L7F092C64: +/* 0C7794 7F092C64 44803800 */ mtc1 $zero, $f7 +/* 0C7798 7F092C68 44803000 */ mtc1 $zero, $f6 +/* 0C779C 7F092C6C D7A800B8 */ ldc1 $f8, 0xb8($sp) +/* 0C77A0 7F092C70 D7A400B0 */ ldc1 $f4, 0xb0($sp) +/* 0C77A4 7F092C74 46266032 */ c.eq.d $f12, $f6 +/* 0C77A8 7F092C78 D7A60150 */ ldc1 $f6, 0x150($sp) +/* 0C77AC 7F092C7C D7AA00C0 */ ldc1 $f10, 0xc0($sp) +/* 0C77B0 7F092C80 4501000B */ bc1t .L7F092CB0 +/* 0C77B4 7F092C84 00000000 */ nop +/* 0C77B8 7F092C88 D7AA0150 */ ldc1 $f10, 0x150($sp) +/* 0C77BC 7F092C8C D7AE0148 */ ldc1 $f14, 0x148($sp) +/* 0C77C0 7F092C90 D7A600C0 */ ldc1 $f6, 0xc0($sp) +/* 0C77C4 7F092C94 462A4102 */ mul.d $f4, $f8, $f10 +/* 0C77C8 7F092C98 00000000 */ nop +/* 0C77CC 7F092C9C 46267202 */ mul.d $f8, $f14, $f6 +/* 0C77D0 7F092CA0 46282281 */ sub.d $f10, $f4, $f8 +/* 0C77D4 7F092CA4 462C5083 */ div.d $f2, $f10, $f12 +/* 0C77D8 7F092CA8 10000008 */ b .L7F092CCC +/* 0C77DC 7F092CAC D7AC0140 */ ldc1 $f12, 0x140($sp) +.L7F092CB0: +/* 0C77E0 7F092CB0 46243202 */ mul.d $f8, $f6, $f4 +/* 0C77E4 7F092CB4 D7AC0140 */ ldc1 $f12, 0x140($sp) +/* 0C77E8 7F092CB8 4636C001 */ sub.d $f0, $f24, $f22 +/* 0C77EC 7F092CBC D7AE0148 */ ldc1 $f14, 0x148($sp) +/* 0C77F0 7F092CC0 462C5182 */ mul.d $f6, $f10, $f12 +/* 0C77F4 7F092CC4 46283101 */ sub.d $f4, $f6, $f8 +/* 0C77F8 7F092CC8 46202083 */ div.d $f2, $f4, $f0 +.L7F092CCC: +/* 0C77FC 7F092CCC 462C8032 */ c.eq.d $f16, $f12 +/* 0C7800 7F092CD0 D7A60110 */ ldc1 $f6, 0x110($sp) +/* 0C7804 7F092CD4 45030007 */ bc1tl .L7F092CF4 +/* 0C7808 7F092CD8 462E8032 */ c.eq.d $f16, $f14 +/* 0C780C 7F092CDC 46261202 */ mul.d $f8, $f2, $f6 +/* 0C7810 7F092CE0 D7AA00B0 */ ldc1 $f10, 0xb0($sp) +/* 0C7814 7F092CE4 46285101 */ sub.d $f4, $f10, $f8 +/* 0C7818 7F092CE8 10000010 */ b .L7F092D2C +/* 0C781C 7F092CEC 462C2003 */ div.d $f0, $f4, $f12 +/* 0C7820 7F092CF0 462E8032 */ c.eq.d $f16, $f14 +.L7F092CF4: +/* 0C7824 7F092CF4 D7AA0118 */ ldc1 $f10, 0x118($sp) +/* 0C7828 7F092CF8 D7A60120 */ ldc1 $f6, 0x120($sp) +/* 0C782C 7F092CFC 45010006 */ bc1t .L7F092D18 +/* 0C7830 7F092D00 00000000 */ nop +/* 0C7834 7F092D04 462A1202 */ mul.d $f8, $f2, $f10 +/* 0C7838 7F092D08 D7A600B8 */ ldc1 $f6, 0xb8($sp) +/* 0C783C 7F092D0C 46283101 */ sub.d $f4, $f6, $f8 +/* 0C7840 7F092D10 10000006 */ b .L7F092D2C +/* 0C7844 7F092D14 462E2003 */ div.d $f0, $f4, $f14 +.L7F092D18: +/* 0C7848 7F092D18 46261202 */ mul.d $f8, $f2, $f6 +/* 0C784C 7F092D1C D7AA00C0 */ ldc1 $f10, 0xc0($sp) +/* 0C7850 7F092D20 D7A60150 */ ldc1 $f6, 0x150($sp) +/* 0C7854 7F092D24 46285101 */ sub.d $f4, $f10, $f8 +/* 0C7858 7F092D28 46262003 */ div.d $f0, $f4, $f6 +.L7F092D2C: +/* 0C785C 7F092D2C 4620803E */ c.le.d $f16, $f0 +/* 0C7860 7F092D30 00000000 */ nop +/* 0C7864 7F092D34 4500003D */ bc1f .L7F092E2C +/* 0C7868 7F092D38 00000000 */ nop +/* 0C786C 7F092D3C 4622803E */ c.le.d $f16, $f2 +/* 0C7870 7F092D40 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 0C7874 7F092D44 45000039 */ bc1f .L7F092E2C +/* 0C7878 7F092D48 00000000 */ nop +/* 0C787C 7F092D4C 46220200 */ add.d $f8, $f0, $f2 +/* 0C7880 7F092D50 44815800 */ mtc1 $at, $f11 +/* 0C7884 7F092D54 44805000 */ mtc1 $zero, $f10 +/* 0C7888 7F092D58 00000000 */ nop +/* 0C788C 7F092D5C 462A403E */ c.le.d $f8, $f10 +/* 0C7890 7F092D60 00000000 */ nop +/* 0C7894 7F092D64 45000031 */ bc1f .L7F092E2C +/* 0C7898 7F092D68 00000000 */ nop +/* 0C789C 7F092D6C 8FA20168 */ lw $v0, 0x168($sp) +/* 0C78A0 7F092D70 D7A400C8 */ ldc1 $f4, 0xc8($sp) +/* 0C78A4 7F092D74 C4460000 */ lwc1 $f6, ($v0) +/* 0C78A8 7F092D78 460032A1 */ cvt.d.s $f10, $f6 +/* 0C78AC 7F092D7C D7A60078 */ ldc1 $f6, 0x78($sp) +/* 0C78B0 7F092D80 462A2201 */ sub.d $f8, $f4, $f10 +/* 0C78B4 7F092D84 46283282 */ mul.d $f10, $f6, $f8 +/* 0C78B8 7F092D88 C4480004 */ lwc1 $f8, 4($v0) +/* 0C78BC 7F092D8C D7A600D0 */ ldc1 $f6, 0xd0($sp) +/* 0C78C0 7F092D90 46004221 */ cvt.d.s $f8, $f8 +/* 0C78C4 7F092D94 46283181 */ sub.d $f6, $f6, $f8 +/* 0C78C8 7F092D98 D7A80080 */ ldc1 $f8, 0x80($sp) +/* 0C78CC 7F092D9C 46264202 */ mul.d $f8, $f8, $f6 +/* 0C78D0 7F092DA0 46285180 */ add.d $f6, $f10, $f8 +/* 0C78D4 7F092DA4 C4480008 */ lwc1 $f8, 8($v0) +/* 0C78D8 7F092DA8 D7AA00D8 */ ldc1 $f10, 0xd8($sp) +/* 0C78DC 7F092DAC 46004221 */ cvt.d.s $f8, $f8 +/* 0C78E0 7F092DB0 46285281 */ sub.d $f10, $f10, $f8 +/* 0C78E4 7F092DB4 D7A80088 */ ldc1 $f8, 0x88($sp) +/* 0C78E8 7F092DB8 46285282 */ mul.d $f10, $f10, $f8 +/* 0C78EC 7F092DBC 46265200 */ add.d $f8, $f10, $f6 +/* 0C78F0 7F092DC0 4628803E */ c.le.d $f16, $f8 +/* 0C78F4 7F092DC4 00000000 */ nop +/* 0C78F8 7F092DC8 45000016 */ bc1f .L7F092E24 +/* 0C78FC 7F092DCC 00000000 */ nop +/* 0C7900 7F092DD0 462022A0 */ cvt.s.d $f10, $f4 +/* 0C7904 7F092DD4 8FA30174 */ lw $v1, 0x174($sp) +/* 0C7908 7F092DD8 24020001 */ li $v0, 1 +/* 0C790C 7F092DDC E46A0000 */ swc1 $f10, ($v1) +/* 0C7910 7F092DE0 D7A600D0 */ ldc1 $f6, 0xd0($sp) +/* 0C7914 7F092DE4 46203220 */ cvt.s.d $f8, $f6 +/* 0C7918 7F092DE8 E4680004 */ swc1 $f8, 4($v1) +/* 0C791C 7F092DEC D7A400D8 */ ldc1 $f4, 0xd8($sp) +/* 0C7920 7F092DF0 462022A0 */ cvt.s.d $f10, $f4 +/* 0C7924 7F092DF4 E46A0008 */ swc1 $f10, 8($v1) +/* 0C7928 7F092DF8 D7A60108 */ ldc1 $f6, 0x108($sp) +/* 0C792C 7F092DFC 46203220 */ cvt.s.d $f8, $f6 +/* 0C7930 7F092E00 E468000C */ swc1 $f8, 0xc($v1) +/* 0C7934 7F092E04 D7A40100 */ ldc1 $f4, 0x100($sp) +/* 0C7938 7F092E08 462022A0 */ cvt.s.d $f10, $f4 +/* 0C793C 7F092E0C E46A0010 */ swc1 $f10, 0x10($v1) +/* 0C7940 7F092E10 D7A600F8 */ ldc1 $f6, 0xf8($sp) +/* 0C7944 7F092E14 A460002A */ sh $zero, 0x2a($v1) +/* 0C7948 7F092E18 46203220 */ cvt.s.d $f8, $f6 +/* 0C794C 7F092E1C 10000003 */ b .L7F092E2C +/* 0C7950 7F092E20 E4680014 */ swc1 $f8, 0x14($v1) +.L7F092E24: +/* 0C7954 7F092E24 10000001 */ b .L7F092E2C +/* 0C7958 7F092E28 00001025 */ move $v0, $zero +.L7F092E2C: +/* 0C795C 7F092E2C D7B40008 */ ldc1 $f20, 8($sp) +/* 0C7960 7F092E30 D7B60010 */ ldc1 $f22, 0x10($sp) +/* 0C7964 7F092E34 D7B80018 */ ldc1 $f24, 0x18($sp) +/* 0C7968 7F092E38 D7BA0020 */ ldc1 $f26, 0x20($sp) +/* 0C796C 7F092E3C D7BC0028 */ ldc1 $f28, 0x28($sp) +/* 0C7970 7F092E40 D7BE0030 */ ldc1 $f30, 0x30($sp) +/* 0C7974 7F092E44 03E00008 */ jr $ra +/* 0C7978 7F092E48 27BD0158 */ addiu $sp, $sp, 0x158 +) +#endif + + diff --git a/src/game/unk_092E50.c b/src/game/unk_092E50.c new file mode 100644 index 0000000..21c87a9 --- /dev/null +++ b/src/game/unk_092E50.c @@ -0,0 +1,808 @@ +#include "ultra64.h" +#include "game/unk_092E50.h" +// bss +//CODE.bss:80079E80 +f32 flt_CODE_bss_80079E80; +//CODE.bss:80079E84 +f32 flt_CODE_bss_80079E84; +//CODE.bss:80079E88 +f32 flt_CODE_bss_80079E88; + + +// data +//Gfx MipMap2C_Something_Setup[]={}; +//D:8003FCC0 +u64 MipMap2C_Something_Setup[] = { + 0xF580080000018060,0xF580080001018060,0xF200200200000000,0xF200200201000000, + 0xFA00000FFFFFFFFF,0xBA00110200000000,0xBA000C0200002000,0xFC272C041F1093FF, + 0xB900031D0C192078,0xBA00100100000000,0xBA00140200100000,0xB700000000002000, + 0xB800000000000000 +}; + +//Gfx MipMap2C_Something2_Setup[]={}; +//D:8003FD28 +u64 MipMap2C_Something2_Setup[] = { + 0xF548040000014050,0xF548040001014050,0xF200200200000000,0xF200200201000000, + 0xFA00000FFFFFFFFF,0xBA00110200000000,0xBA000C0200002000,0xFC272C041F1093FF, + 0xB900031D0C192078,0xBA00100100000000,0xBA00140200100000,0xB700000000002000, + 0xB800000000000000 +}; + +//End Dl means this gfx list cannot go any further. perhaps below is a vtx array? + +u32 D_8003FD90 = 0; +f32 D_8003FD94[] = {0, 0, 0}; +u32 D_8003FDA0 = 0; +u32 D_8003FDA4 = 0xFFFFFFFF; +//D:D_8003FDA8 +u64 D_8003FDA8[] = { + 0x100, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0x3F800000, 0, + 0,0x3F80000000000000, 0, 0x3F800000, + 0, 0,0x3F80000000000000, 0, + 0, 0xBF800000, 0x3F800000, 0, + 0, 0,0xC19FFFFE00000000,0x419FFFFE00000000, + 0, 0, 0, 0, + 0, 0, 0,0xBF80000000000000, + 0xBF800000, 0,0xBF80000000000000, 0xBF800000, + 0x3F800000, 0,0x3F80000000000000, 0x3F800000, + 0,0x3F80000000000000, 0,0x3F8000003F800000, + 0, 0, 0, 0, + 0,0x447A000000000000, 0, 0xFF000000, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0 +}; + +// rodata + + + +#ifdef NONMATCHING +void sub_GAME_7F092E50(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80057510 +.word 0x3dcccccd /*0.1*/ +glabel D_80057514 +.word 0x40c90fd0 /*6.2831802*/ +glabel D_80057518 +.word 0x3d23d70a /*0.039999999*/ +.text +glabel sub_GAME_7F092E50 +/* 0C7980 7F092E50 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 0C7984 7F092E54 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 0C7988 7F092E58 3C014380 */ li $at, 0x43800000 # 256.000000 +/* 0C798C 7F092E5C 44810000 */ mtc1 $at, $f0 +/* 0C7990 7F092E60 448E2000 */ mtc1 $t6, $f4 +/* 0C7994 7F092E64 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0C7998 7F092E68 44814000 */ mtc1 $at, $f8 +/* 0C799C 7F092E6C 46802420 */ cvt.s.w $f16, $f4 +/* 0C79A0 7F092E70 3C088008 */ lui $t0, %hi(flt_CODE_bss_80079E80) +/* 0C79A4 7F092E74 25089E80 */ addiu $t0, %lo(flt_CODE_bss_80079E80) # addiu $t0, $t0, -0x6180 +/* 0C79A8 7F092E78 C5060000 */ lwc1 $f6, ($t0) +/* 0C79AC 7F092E7C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0C79B0 7F092E80 44809000 */ mtc1 $zero, $f18 +/* 0C79B4 7F092E84 46088282 */ mul.s $f10, $f16, $f8 +/* 0C79B8 7F092E88 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C79BC 7F092E8C 3C018005 */ lui $at, %hi(D_80057510) +/* 0C79C0 7F092E90 24180001 */ li $t8, 1 +/* 0C79C4 7F092E94 460A3100 */ add.s $f4, $f6, $f10 +/* 0C79C8 7F092E98 E5040000 */ swc1 $f4, ($t0) +/* 0C79CC 7F092E9C C50E0000 */ lwc1 $f14, ($t0) +/* 0C79D0 7F092EA0 460E003E */ c.le.s $f0, $f14 +/* 0C79D4 7F092EA4 00000000 */ nop +/* 0C79D8 7F092EA8 45020005 */ bc1fl .L7F092EC0 +/* 0C79DC 7F092EAC 4612703C */ c.lt.s $f14, $f18 +/* 0C79E0 7F092EB0 46007201 */ sub.s $f8, $f14, $f0 +/* 0C79E4 7F092EB4 E5080000 */ swc1 $f8, ($t0) +/* 0C79E8 7F092EB8 C50E0000 */ lwc1 $f14, ($t0) +/* 0C79EC 7F092EBC 4612703C */ c.lt.s $f14, $f18 +.L7F092EC0: +/* 0C79F0 7F092EC0 00000000 */ nop +/* 0C79F4 7F092EC4 45000004 */ bc1f .L7F092ED8 +/* 0C79F8 7F092EC8 00000000 */ nop +/* 0C79FC 7F092ECC 46007180 */ add.s $f6, $f14, $f0 +/* 0C7A00 7F092ED0 E5060000 */ swc1 $f6, ($t0) +/* 0C7A04 7F092ED4 C50E0000 */ lwc1 $f14, ($t0) +.L7F092ED8: +/* 0C7A08 7F092ED8 C4247510 */ lwc1 $f4, %lo(D_80057510)($at) +/* 0C7A0C 7F092EDC 3C078008 */ lui $a3, %hi(flt_CODE_bss_80079E84) +/* 0C7A10 7F092EE0 24E79E84 */ addiu $a3, %lo(flt_CODE_bss_80079E84) # addiu $a3, $a3, -0x617c +/* 0C7A14 7F092EE4 46048202 */ mul.s $f8, $f16, $f4 +/* 0C7A18 7F092EE8 C4EA0000 */ lwc1 $f10, ($a3) +/* 0C7A1C 7F092EEC 3C018005 */ lui $at, %hi(D_80057514) +/* 0C7A20 7F092EF0 46085180 */ add.s $f6, $f10, $f8 +/* 0C7A24 7F092EF4 E4E60000 */ swc1 $f6, ($a3) +/* 0C7A28 7F092EF8 C4E20000 */ lwc1 $f2, ($a3) +/* 0C7A2C 7F092EFC 4602003E */ c.le.s $f0, $f2 +/* 0C7A30 7F092F00 00000000 */ nop +/* 0C7A34 7F092F04 45020005 */ bc1fl .L7F092F1C +/* 0C7A38 7F092F08 4612103C */ c.lt.s $f2, $f18 +/* 0C7A3C 7F092F0C 46001101 */ sub.s $f4, $f2, $f0 +/* 0C7A40 7F092F10 E4E40000 */ swc1 $f4, ($a3) +/* 0C7A44 7F092F14 C4E20000 */ lwc1 $f2, ($a3) +/* 0C7A48 7F092F18 4612103C */ c.lt.s $f2, $f18 +.L7F092F1C: +/* 0C7A4C 7F092F1C 00000000 */ nop +/* 0C7A50 7F092F20 45000004 */ bc1f .L7F092F34 +/* 0C7A54 7F092F24 00000000 */ nop +/* 0C7A58 7F092F28 46001280 */ add.s $f10, $f2, $f0 +/* 0C7A5C 7F092F2C E4EA0000 */ swc1 $f10, ($a3) +/* 0C7A60 7F092F30 C4E20000 */ lwc1 $f2, ($a3) +.L7F092F34: +/* 0C7A64 7F092F34 C4207514 */ lwc1 $f0, %lo(D_80057514)($at) +/* 0C7A68 7F092F38 3C018005 */ lui $at, %hi(D_80057518) +/* 0C7A6C 7F092F3C C4267518 */ lwc1 $f6, %lo(D_80057518)($at) +/* 0C7A70 7F092F40 3C068008 */ lui $a2, %hi(flt_CODE_bss_80079E88) +/* 0C7A74 7F092F44 24C69E88 */ addiu $a2, %lo(flt_CODE_bss_80079E88) # addiu $a2, $a2, -0x6178 +/* 0C7A78 7F092F48 46068102 */ mul.s $f4, $f16, $f6 +/* 0C7A7C 7F092F4C C4C80000 */ lwc1 $f8, ($a2) +/* 0C7A80 7F092F50 46044280 */ add.s $f10, $f8, $f4 +/* 0C7A84 7F092F54 E4CA0000 */ swc1 $f10, ($a2) +/* 0C7A88 7F092F58 C4CC0000 */ lwc1 $f12, ($a2) +/* 0C7A8C 7F092F5C 460C003E */ c.le.s $f0, $f12 +/* 0C7A90 7F092F60 00000000 */ nop +/* 0C7A94 7F092F64 45020005 */ bc1fl .L7F092F7C +/* 0C7A98 7F092F68 4612603C */ c.lt.s $f12, $f18 +/* 0C7A9C 7F092F6C 46006181 */ sub.s $f6, $f12, $f0 +/* 0C7AA0 7F092F70 E4C60000 */ swc1 $f6, ($a2) +/* 0C7AA4 7F092F74 C4CC0000 */ lwc1 $f12, ($a2) +/* 0C7AA8 7F092F78 4612603C */ c.lt.s $f12, $f18 +.L7F092F7C: +/* 0C7AAC 7F092F7C 00000000 */ nop +/* 0C7AB0 7F092F80 45020005 */ bc1fl .L7F092F98 +/* 0C7AB4 7F092F84 444FF800 */ cfc1 $t7, $31 +/* 0C7AB8 7F092F88 46006200 */ add.s $f8, $f12, $f0 +/* 0C7ABC 7F092F8C E4C80000 */ swc1 $f8, ($a2) +/* 0C7AC0 7F092F90 C4CC0000 */ lwc1 $f12, ($a2) +/* 0C7AC4 7F092F94 444FF800 */ cfc1 $t7, $31 +.L7F092F98: +/* 0C7AC8 7F092F98 44D8F800 */ ctc1 $t8, $31 +/* 0C7ACC 7F092F9C 3C028004 */ lui $v0, %hi(MipMap2C_Something_Setup) +/* 0C7AD0 7F092FA0 2442FCC0 */ addiu $v0, %lo(MipMap2C_Something_Setup) # addiu $v0, $v0, -0x340 +/* 0C7AD4 7F092FA4 46007124 */ cvt.w.s $f4, $f14 +/* 0C7AD8 7F092FA8 8C430010 */ lw $v1, 0x10($v0) +/* 0C7ADC 7F092FAC 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C7AE0 7F092FB0 4458F800 */ cfc1 $t8, $31 +/* 0C7AE4 7F092FB4 00000000 */ nop +/* 0C7AE8 7F092FB8 33180078 */ andi $t8, $t8, 0x78 +/* 0C7AEC 7F092FBC 53000013 */ beql $t8, $zero, .L7F09300C +/* 0C7AF0 7F092FC0 44182000 */ mfc1 $t8, $f4 +/* 0C7AF4 7F092FC4 44812000 */ mtc1 $at, $f4 +/* 0C7AF8 7F092FC8 24180001 */ li $t8, 1 +/* 0C7AFC 7F092FCC 46047101 */ sub.s $f4, $f14, $f4 +/* 0C7B00 7F092FD0 44D8F800 */ ctc1 $t8, $31 +/* 0C7B04 7F092FD4 00000000 */ nop +/* 0C7B08 7F092FD8 46002124 */ cvt.w.s $f4, $f4 +/* 0C7B0C 7F092FDC 4458F800 */ cfc1 $t8, $31 +/* 0C7B10 7F092FE0 00000000 */ nop +/* 0C7B14 7F092FE4 33180078 */ andi $t8, $t8, 0x78 +/* 0C7B18 7F092FE8 17000005 */ bnez $t8, .L7F093000 +/* 0C7B1C 7F092FEC 00000000 */ nop +/* 0C7B20 7F092FF0 44182000 */ mfc1 $t8, $f4 +/* 0C7B24 7F092FF4 3C018000 */ lui $at, 0x8000 +/* 0C7B28 7F092FF8 10000007 */ b .L7F093018 +/* 0C7B2C 7F092FFC 0301C025 */ or $t8, $t8, $at +.L7F093000: +/* 0C7B30 7F093000 10000005 */ b .L7F093018 +/* 0C7B34 7F093004 2418FFFF */ li $t8, -1 +/* 0C7B38 7F093008 44182000 */ mfc1 $t8, $f4 +.L7F09300C: +/* 0C7B3C 7F09300C 00000000 */ nop +/* 0C7B40 7F093010 0700FFFB */ bltz $t8, .L7F093000 +/* 0C7B44 7F093014 00000000 */ nop +.L7F093018: +/* 0C7B48 7F093018 44CFF800 */ ctc1 $t7, $31 +/* 0C7B4C 7F09301C 240F0001 */ li $t7, 1 +/* 0C7B50 7F093020 00034B02 */ srl $t1, $v1, 0xc +/* 0C7B54 7F093024 03095026 */ xor $t2, $t8, $t1 +/* 0C7B58 7F093028 444EF800 */ cfc1 $t6, $31 +/* 0C7B5C 7F09302C 44CFF800 */ ctc1 $t7, $31 +/* 0C7B60 7F093030 000A5D00 */ sll $t3, $t2, 0x14 +/* 0C7B64 7F093034 000B6202 */ srl $t4, $t3, 8 +/* 0C7B68 7F093038 460012A4 */ cvt.w.s $f10, $f2 +/* 0C7B6C 7F09303C 01836826 */ xor $t5, $t4, $v1 +/* 0C7B70 7F093040 AC4D0010 */ sw $t5, 0x10($v0) +/* 0C7B74 7F093044 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C7B78 7F093048 444FF800 */ cfc1 $t7, $31 +/* 0C7B7C 7F09304C 00000000 */ nop +/* 0C7B80 7F093050 31EF0078 */ andi $t7, $t7, 0x78 +/* 0C7B84 7F093054 51E00013 */ beql $t7, $zero, .L7F0930A4 +/* 0C7B88 7F093058 440F5000 */ mfc1 $t7, $f10 +/* 0C7B8C 7F09305C 44815000 */ mtc1 $at, $f10 +/* 0C7B90 7F093060 240F0001 */ li $t7, 1 +/* 0C7B94 7F093064 460A1281 */ sub.s $f10, $f2, $f10 +/* 0C7B98 7F093068 44CFF800 */ ctc1 $t7, $31 +/* 0C7B9C 7F09306C 00000000 */ nop +/* 0C7BA0 7F093070 460052A4 */ cvt.w.s $f10, $f10 +/* 0C7BA4 7F093074 444FF800 */ cfc1 $t7, $31 +/* 0C7BA8 7F093078 00000000 */ nop +/* 0C7BAC 7F09307C 31EF0078 */ andi $t7, $t7, 0x78 +/* 0C7BB0 7F093080 15E00005 */ bnez $t7, .L7F093098 +/* 0C7BB4 7F093084 00000000 */ nop +/* 0C7BB8 7F093088 440F5000 */ mfc1 $t7, $f10 +/* 0C7BBC 7F09308C 3C018000 */ lui $at, 0x8000 +/* 0C7BC0 7F093090 10000007 */ b .L7F0930B0 +/* 0C7BC4 7F093094 01E17825 */ or $t7, $t7, $at +.L7F093098: +/* 0C7BC8 7F093098 10000005 */ b .L7F0930B0 +/* 0C7BCC 7F09309C 240FFFFF */ li $t7, -1 +/* 0C7BD0 7F0930A0 440F5000 */ mfc1 $t7, $f10 +.L7F0930A4: +/* 0C7BD4 7F0930A4 00000000 */ nop +/* 0C7BD8 7F0930A8 05E0FFFB */ bltz $t7, .L7F093098 +/* 0C7BDC 7F0930AC 00000000 */ nop +.L7F0930B0: +/* 0C7BE0 7F0930B0 44CEF800 */ ctc1 $t6, $31 +/* 0C7BE4 7F0930B4 94490012 */ lhu $t1, 0x12($v0) +/* 0C7BE8 7F0930B8 8C440018 */ lw $a0, 0x18($v0) +/* 0C7BEC 7F0930BC 4600718D */ trunc.w.s $f6, $f14 +/* 0C7BF0 7F0930C0 31F90FFF */ andi $t9, $t7, 0xfff +/* 0C7BF4 7F0930C4 312AF000 */ andi $t2, $t1, 0xf000 +/* 0C7BF8 7F0930C8 032A5825 */ or $t3, $t9, $t2 +/* 0C7BFC 7F0930CC 440D3000 */ mfc1 $t5, $f6 +/* 0C7C00 7F0930D0 00044B02 */ srl $t1, $a0, 0xc +/* 0C7C04 7F0930D4 4600120D */ trunc.w.s $f8, $f2 +/* 0C7C08 7F0930D8 25AE005A */ addiu $t6, $t5, 0x5a +/* 0C7C0C 7F0930DC 31D800FF */ andi $t8, $t6, 0xff +/* 0C7C10 7F0930E0 0309C826 */ xor $t9, $t8, $t1 +/* 0C7C14 7F0930E4 A44B0012 */ sh $t3, 0x12($v0) +/* 0C7C18 7F0930E8 00195500 */ sll $t2, $t9, 0x14 +/* 0C7C1C 7F0930EC 000A5A02 */ srl $t3, $t2, 8 +/* 0C7C20 7F0930F0 01646026 */ xor $t4, $t3, $a0 +/* 0C7C24 7F0930F4 440E4000 */ mfc1 $t6, $f8 +/* 0C7C28 7F0930F8 AC4C0018 */ sw $t4, 0x18($v0) +/* 0C7C2C 7F0930FC 944A001A */ lhu $t2, 0x1a($v0) +/* 0C7C30 7F093100 25C90096 */ addiu $t1, $t6, 0x96 +/* 0C7C34 7F093104 313900FF */ andi $t9, $t1, 0xff +/* 0C7C38 7F093108 314BF000 */ andi $t3, $t2, 0xf000 +/* 0C7C3C 7F09310C 032B6025 */ or $t4, $t9, $t3 +/* 0C7C40 7F093110 0FC15FAB */ jal sinf +/* 0C7C44 7F093114 A44C001A */ sh $t4, 0x1a($v0) +/* 0C7C48 7F093118 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 0C7C4C 7F09311C 44812000 */ mtc1 $at, $f4 +/* 0C7C50 7F093120 3C014300 */ li $at, 0x43000000 # 128.000000 +/* 0C7C54 7F093124 44813000 */ mtc1 $at, $f6 +/* 0C7C58 7F093128 46040282 */ mul.s $f10, $f0, $f4 +/* 0C7C5C 7F09312C 240E0001 */ li $t6, 1 +/* 0C7C60 7F093130 3C028004 */ lui $v0, %hi(MipMap2C_Something_Setup) +/* 0C7C64 7F093134 3C038004 */ lui $v1, %hi(MipMap2C_Something2_Setup) +/* 0C7C68 7F093138 3C068008 */ lui $a2, %hi(flt_CODE_bss_80079E88) +/* 0C7C6C 7F09313C 3C078008 */ lui $a3, %hi(flt_CODE_bss_80079E84) +/* 0C7C70 7F093140 3C088008 */ lui $t0, %hi(flt_CODE_bss_80079E80) +/* 0C7C74 7F093144 46065200 */ add.s $f8, $f10, $f6 +/* 0C7C78 7F093148 25089E80 */ addiu $t0, %lo(flt_CODE_bss_80079E80) # addiu $t0, $t0, -0x6180 +/* 0C7C7C 7F09314C 24E79E84 */ addiu $a3, %lo(flt_CODE_bss_80079E84) # addiu $a3, $a3, -0x617c +/* 0C7C80 7F093150 24C69E88 */ addiu $a2, %lo(flt_CODE_bss_80079E88) # addiu $a2, $a2, -0x6178 +/* 0C7C84 7F093154 444DF800 */ cfc1 $t5, $31 +/* 0C7C88 7F093158 44CEF800 */ ctc1 $t6, $31 +/* 0C7C8C 7F09315C 2463FD28 */ addiu $v1, %lo(MipMap2C_Something2_Setup) # addiu $v1, $v1, -0x2d8 +/* 0C7C90 7F093160 2442FCC0 */ addiu $v0, %lo(MipMap2C_Something_Setup) # addiu $v0, $v0, -0x340 +/* 0C7C94 7F093164 46004124 */ cvt.w.s $f4, $f8 +/* 0C7C98 7F093168 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C7C9C 7F09316C 444EF800 */ cfc1 $t6, $31 +/* 0C7CA0 7F093170 00000000 */ nop +/* 0C7CA4 7F093174 31CE0078 */ andi $t6, $t6, 0x78 +/* 0C7CA8 7F093178 51C00013 */ beql $t6, $zero, .L7F0931C8 +/* 0C7CAC 7F09317C 440E2000 */ mfc1 $t6, $f4 +/* 0C7CB0 7F093180 44812000 */ mtc1 $at, $f4 +/* 0C7CB4 7F093184 240E0001 */ li $t6, 1 +/* 0C7CB8 7F093188 46044101 */ sub.s $f4, $f8, $f4 +/* 0C7CBC 7F09318C 44CEF800 */ ctc1 $t6, $31 +/* 0C7CC0 7F093190 00000000 */ nop +/* 0C7CC4 7F093194 46002124 */ cvt.w.s $f4, $f4 +/* 0C7CC8 7F093198 444EF800 */ cfc1 $t6, $31 +/* 0C7CCC 7F09319C 00000000 */ nop +/* 0C7CD0 7F0931A0 31CE0078 */ andi $t6, $t6, 0x78 +/* 0C7CD4 7F0931A4 15C00005 */ bnez $t6, .L7F0931BC +/* 0C7CD8 7F0931A8 00000000 */ nop +/* 0C7CDC 7F0931AC 440E2000 */ mfc1 $t6, $f4 +/* 0C7CE0 7F0931B0 3C018000 */ lui $at, 0x8000 +/* 0C7CE4 7F0931B4 10000007 */ b .L7F0931D4 +/* 0C7CE8 7F0931B8 01C17025 */ or $t6, $t6, $at +.L7F0931BC: +/* 0C7CEC 7F0931BC 10000005 */ b .L7F0931D4 +/* 0C7CF0 7F0931C0 240EFFFF */ li $t6, -1 +/* 0C7CF4 7F0931C4 440E2000 */ mfc1 $t6, $f4 +.L7F0931C8: +/* 0C7CF8 7F0931C8 00000000 */ nop +/* 0C7CFC 7F0931CC 05C0FFFB */ bltz $t6, .L7F0931BC +/* 0C7D00 7F0931D0 00000000 */ nop +.L7F0931D4: +/* 0C7D04 7F0931D4 44CDF800 */ ctc1 $t5, $31 +/* 0C7D08 7F0931D8 24190001 */ li $t9, 1 +/* 0C7D0C 7F0931DC C50E0000 */ lwc1 $f14, ($t0) +/* 0C7D10 7F0931E0 8C4F0020 */ lw $t7, 0x20($v0) +/* 0C7D14 7F0931E4 444AF800 */ cfc1 $t2, $31 +/* 0C7D18 7F0931E8 44D9F800 */ ctc1 $t9, $31 +/* 0C7D1C 7F0931EC 2401FF00 */ li $at, -256 +/* 0C7D20 7F0931F0 01E1C024 */ and $t8, $t7, $at +/* 0C7D24 7F0931F4 460072A4 */ cvt.w.s $f10, $f14 +/* 0C7D28 7F0931F8 01D84825 */ or $t1, $t6, $t8 +/* 0C7D2C 7F0931FC AC490020 */ sw $t1, 0x20($v0) +/* 0C7D30 7F093200 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C7D34 7F093204 4459F800 */ cfc1 $t9, $31 +/* 0C7D38 7F093208 8C640010 */ lw $a0, 0x10($v1) +/* 0C7D3C 7F09320C 33390078 */ andi $t9, $t9, 0x78 +/* 0C7D40 7F093210 53200013 */ beql $t9, $zero, .L7F093260 +/* 0C7D44 7F093214 44195000 */ mfc1 $t9, $f10 +/* 0C7D48 7F093218 44815000 */ mtc1 $at, $f10 +/* 0C7D4C 7F09321C 24190001 */ li $t9, 1 +/* 0C7D50 7F093220 460A7281 */ sub.s $f10, $f14, $f10 +/* 0C7D54 7F093224 44D9F800 */ ctc1 $t9, $31 +/* 0C7D58 7F093228 00000000 */ nop +/* 0C7D5C 7F09322C 460052A4 */ cvt.w.s $f10, $f10 +/* 0C7D60 7F093230 4459F800 */ cfc1 $t9, $31 +/* 0C7D64 7F093234 00000000 */ nop +/* 0C7D68 7F093238 33390078 */ andi $t9, $t9, 0x78 +/* 0C7D6C 7F09323C 17200005 */ bnez $t9, .L7F093254 +/* 0C7D70 7F093240 00000000 */ nop +/* 0C7D74 7F093244 44195000 */ mfc1 $t9, $f10 +/* 0C7D78 7F093248 3C018000 */ lui $at, 0x8000 +/* 0C7D7C 7F09324C 10000007 */ b .L7F09326C +/* 0C7D80 7F093250 0321C825 */ or $t9, $t9, $at +.L7F093254: +/* 0C7D84 7F093254 10000005 */ b .L7F09326C +/* 0C7D88 7F093258 2419FFFF */ li $t9, -1 +/* 0C7D8C 7F09325C 44195000 */ mfc1 $t9, $f10 +.L7F093260: +/* 0C7D90 7F093260 00000000 */ nop +/* 0C7D94 7F093264 0720FFFB */ bltz $t9, .L7F093254 +/* 0C7D98 7F093268 00000000 */ nop +.L7F09326C: +/* 0C7D9C 7F09326C 44CAF800 */ ctc1 $t2, $31 +/* 0C7DA0 7F093270 240A0001 */ li $t2, 1 +/* 0C7DA4 7F093274 C4E20000 */ lwc1 $f2, ($a3) +/* 0C7DA8 7F093278 00046302 */ srl $t4, $a0, 0xc +/* 0C7DAC 7F09327C 4449F800 */ cfc1 $t1, $31 +/* 0C7DB0 7F093280 44CAF800 */ ctc1 $t2, $31 +/* 0C7DB4 7F093284 032C6826 */ xor $t5, $t9, $t4 +/* 0C7DB8 7F093288 000D7D00 */ sll $t7, $t5, 0x14 +/* 0C7DBC 7F09328C 460011A4 */ cvt.w.s $f6, $f2 +/* 0C7DC0 7F093290 000F7202 */ srl $t6, $t7, 8 +/* 0C7DC4 7F093294 01C4C026 */ xor $t8, $t6, $a0 +/* 0C7DC8 7F093298 AC780010 */ sw $t8, 0x10($v1) +/* 0C7DCC 7F09329C 444AF800 */ cfc1 $t2, $31 +/* 0C7DD0 7F0932A0 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C7DD4 7F0932A4 314A0078 */ andi $t2, $t2, 0x78 +/* 0C7DD8 7F0932A8 51400013 */ beql $t2, $zero, .L7F0932F8 +/* 0C7DDC 7F0932AC 440A3000 */ mfc1 $t2, $f6 +/* 0C7DE0 7F0932B0 44813000 */ mtc1 $at, $f6 +/* 0C7DE4 7F0932B4 240A0001 */ li $t2, 1 +/* 0C7DE8 7F0932B8 46061181 */ sub.s $f6, $f2, $f6 +/* 0C7DEC 7F0932BC 44CAF800 */ ctc1 $t2, $31 +/* 0C7DF0 7F0932C0 00000000 */ nop +/* 0C7DF4 7F0932C4 460031A4 */ cvt.w.s $f6, $f6 +/* 0C7DF8 7F0932C8 444AF800 */ cfc1 $t2, $31 +/* 0C7DFC 7F0932CC 00000000 */ nop +/* 0C7E00 7F0932D0 314A0078 */ andi $t2, $t2, 0x78 +/* 0C7E04 7F0932D4 15400005 */ bnez $t2, .L7F0932EC +/* 0C7E08 7F0932D8 00000000 */ nop +/* 0C7E0C 7F0932DC 440A3000 */ mfc1 $t2, $f6 +/* 0C7E10 7F0932E0 3C018000 */ lui $at, 0x8000 +/* 0C7E14 7F0932E4 10000007 */ b .L7F093304 +/* 0C7E18 7F0932E8 01415025 */ or $t2, $t2, $at +.L7F0932EC: +/* 0C7E1C 7F0932EC 10000005 */ b .L7F093304 +/* 0C7E20 7F0932F0 240AFFFF */ li $t2, -1 +/* 0C7E24 7F0932F4 440A3000 */ mfc1 $t2, $f6 +.L7F0932F8: +/* 0C7E28 7F0932F8 00000000 */ nop +/* 0C7E2C 7F0932FC 0540FFFB */ bltz $t2, .L7F0932EC +/* 0C7E30 7F093300 00000000 */ nop +.L7F093304: +/* 0C7E34 7F093304 44C9F800 */ ctc1 $t1, $31 +/* 0C7E38 7F093308 946C0012 */ lhu $t4, 0x12($v1) +/* 0C7E3C 7F09330C 8C650018 */ lw $a1, 0x18($v1) +/* 0C7E40 7F093310 4600720D */ trunc.w.s $f8, $f14 +/* 0C7E44 7F093314 314B0FFF */ andi $t3, $t2, 0xfff +/* 0C7E48 7F093318 318DF000 */ andi $t5, $t4, 0xf000 +/* 0C7E4C 7F09331C 016D7825 */ or $t7, $t3, $t5 +/* 0C7E50 7F093320 44184000 */ mfc1 $t8, $f8 +/* 0C7E54 7F093324 00056302 */ srl $t4, $a1, 0xc +/* 0C7E58 7F093328 4600110D */ trunc.w.s $f4, $f2 +/* 0C7E5C 7F09332C 2709005A */ addiu $t1, $t8, 0x5a +/* 0C7E60 7F093330 313900FF */ andi $t9, $t1, 0xff +/* 0C7E64 7F093334 032C5826 */ xor $t3, $t9, $t4 +/* 0C7E68 7F093338 A46F0012 */ sh $t7, 0x12($v1) +/* 0C7E6C 7F09333C 000B6D00 */ sll $t5, $t3, 0x14 +/* 0C7E70 7F093340 000D7A02 */ srl $t7, $t5, 8 +/* 0C7E74 7F093344 01E57026 */ xor $t6, $t7, $a1 +/* 0C7E78 7F093348 44092000 */ mfc1 $t1, $f4 +/* 0C7E7C 7F09334C AC6E0018 */ sw $t6, 0x18($v1) +/* 0C7E80 7F093350 946D001A */ lhu $t5, 0x1a($v1) +/* 0C7E84 7F093354 252C0096 */ addiu $t4, $t1, 0x96 +/* 0C7E88 7F093358 318B00FF */ andi $t3, $t4, 0xff +/* 0C7E8C 7F09335C 31AFF000 */ andi $t7, $t5, 0xf000 +/* 0C7E90 7F093360 016F7025 */ or $t6, $t3, $t7 +/* 0C7E94 7F093364 A46E001A */ sh $t6, 0x1a($v1) +/* 0C7E98 7F093368 0FC15FAB */ jal sinf +/* 0C7E9C 7F09336C C4CC0000 */ lwc1 $f12, ($a2) +/* 0C7EA0 7F093370 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 0C7EA4 7F093374 44815000 */ mtc1 $at, $f10 +/* 0C7EA8 7F093378 3C014300 */ li $at, 0x43000000 # 128.000000 +/* 0C7EAC 7F09337C 44814000 */ mtc1 $at, $f8 +/* 0C7EB0 7F093380 460A0182 */ mul.s $f6, $f0, $f10 +/* 0C7EB4 7F093384 24090001 */ li $t1, 1 +/* 0C7EB8 7F093388 3C028004 */ lui $v0, %hi(MipMap2C_Something_Setup) +/* 0C7EBC 7F09338C 3C038004 */ lui $v1, %hi(MipMap2C_Something2_Setup) +/* 0C7EC0 7F093390 2463FD28 */ addiu $v1, %lo(MipMap2C_Something2_Setup) # addiu $v1, $v1, -0x2d8 +/* 0C7EC4 7F093394 2442FCC0 */ addiu $v0, %lo(MipMap2C_Something_Setup) # addiu $v0, $v0, -0x340 +/* 0C7EC8 7F093398 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C7ECC 7F09339C 46083100 */ add.s $f4, $f6, $f8 +/* 0C7ED0 7F0933A0 4458F800 */ cfc1 $t8, $31 +/* 0C7ED4 7F0933A4 44C9F800 */ ctc1 $t1, $31 +/* 0C7ED8 7F0933A8 00000000 */ nop +/* 0C7EDC 7F0933AC 460022A4 */ cvt.w.s $f10, $f4 +/* 0C7EE0 7F0933B0 4449F800 */ cfc1 $t1, $31 +/* 0C7EE4 7F0933B4 00000000 */ nop +/* 0C7EE8 7F0933B8 31290078 */ andi $t1, $t1, 0x78 +/* 0C7EEC 7F0933BC 51200013 */ beql $t1, $zero, .L7F09340C +/* 0C7EF0 7F0933C0 44095000 */ mfc1 $t1, $f10 +/* 0C7EF4 7F0933C4 44815000 */ mtc1 $at, $f10 +/* 0C7EF8 7F0933C8 24090001 */ li $t1, 1 +/* 0C7EFC 7F0933CC 460A2281 */ sub.s $f10, $f4, $f10 +/* 0C7F00 7F0933D0 44C9F800 */ ctc1 $t1, $31 +/* 0C7F04 7F0933D4 00000000 */ nop +/* 0C7F08 7F0933D8 460052A4 */ cvt.w.s $f10, $f10 +/* 0C7F0C 7F0933DC 4449F800 */ cfc1 $t1, $31 +/* 0C7F10 7F0933E0 00000000 */ nop +/* 0C7F14 7F0933E4 31290078 */ andi $t1, $t1, 0x78 +/* 0C7F18 7F0933E8 15200005 */ bnez $t1, .L7F093400 +/* 0C7F1C 7F0933EC 00000000 */ nop +/* 0C7F20 7F0933F0 44095000 */ mfc1 $t1, $f10 +/* 0C7F24 7F0933F4 3C018000 */ lui $at, 0x8000 +/* 0C7F28 7F0933F8 10000007 */ b .L7F093418 +/* 0C7F2C 7F0933FC 01214825 */ or $t1, $t1, $at +.L7F093400: +/* 0C7F30 7F093400 10000005 */ b .L7F093418 +/* 0C7F34 7F093404 2409FFFF */ li $t1, -1 +/* 0C7F38 7F093408 44095000 */ mfc1 $t1, $f10 +.L7F09340C: +/* 0C7F3C 7F09340C 00000000 */ nop +/* 0C7F40 7F093410 0520FFFB */ bltz $t1, .L7F093400 +/* 0C7F44 7F093414 00000000 */ nop +.L7F093418: +/* 0C7F48 7F093418 8C4A0020 */ lw $t2, 0x20($v0) +/* 0C7F4C 7F09341C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7F50 7F093420 2401FF00 */ li $at, -256 +/* 0C7F54 7F093424 0141C824 */ and $t9, $t2, $at +/* 0C7F58 7F093428 01396025 */ or $t4, $t1, $t9 +/* 0C7F5C 7F09342C 44D8F800 */ ctc1 $t8, $31 +/* 0C7F60 7F093430 AC6C0020 */ sw $t4, 0x20($v1) +/* 0C7F64 7F093434 03E00008 */ jr $ra +/* 0C7F68 7F093438 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09343C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09343C +/* 0C7F6C 7F09343C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C7F70 7F093440 10A00009 */ beqz $a1, .L7F093468 +/* 0C7F74 7F093444 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C7F78 7F093448 00801025 */ move $v0, $a0 +/* 0C7F7C 7F09344C 3C0F8004 */ lui $t7, %hi(MipMap2C_Something_Setup) +/* 0C7F80 7F093450 25EFFCC0 */ addiu $t7, %lo(MipMap2C_Something_Setup) # addiu $t7, $t7, -0x340 +/* 0C7F84 7F093454 3C0E0600 */ lui $t6, 0x600 +/* 0C7F88 7F093458 AC4E0000 */ sw $t6, ($v0) +/* 0C7F8C 7F09345C AC4F0004 */ sw $t7, 4($v0) +/* 0C7F90 7F093460 10000079 */ b .L7F093648 +/* 0C7F94 7F093464 24840008 */ addiu $a0, $a0, 8 +.L7F093468: +/* 0C7F98 7F093468 3C08F510 */ lui $t0, %hi(0xF5100004) # $t0, 0xf510 +/* 0C7F9C 7F09346C 00801025 */ move $v0, $a0 +/* 0C7FA0 7F093470 3C180001 */ lui $t8, (0x00014050 >> 16) # lui $t8, 1 +/* 0C7FA4 7F093474 35080800 */ ori $t0, (0xF5100800 & 0xFFFF) # ori $t0, $t0, 0x800 +/* 0C7FA8 7F093478 37184050 */ ori $t8, (0x00014050 & 0xFFFF) # ori $t8, $t8, 0x4050 +/* 0C7FAC 7F09347C 24830008 */ addiu $v1, $a0, 8 +/* 0C7FB0 7F093480 AC580004 */ sw $t8, 4($v0) +/* 0C7FB4 7F093484 AC480000 */ sw $t0, ($v0) +/* 0C7FB8 7F093488 3C190101 */ lui $t9, (0x01014050 >> 16) # lui $t9, 0x101 +/* 0C7FBC 7F09348C 37394050 */ ori $t9, (0x01014050 & 0xFFFF) # ori $t9, $t9, 0x4050 +/* 0C7FC0 7F093490 24650008 */ addiu $a1, $v1, 8 +/* 0C7FC4 7F093494 AC790004 */ sw $t9, 4($v1) +/* 0C7FC8 7F093498 AC680000 */ sw $t0, ($v1) +/* 0C7FCC 7F09349C 24A60008 */ addiu $a2, $a1, 8 +/* 0C7FD0 7F0934A0 3C0AF200 */ lui $t2, 0xf200 +/* 0C7FD4 7F0934A4 ACAA0000 */ sw $t2, ($a1) +/* 0C7FD8 7F0934A8 ACA00004 */ sw $zero, 4($a1) +/* 0C7FDC 7F0934AC 3C0BF205 */ lui $t3, (0xF205A096 >> 16) # lui $t3, 0xf205 +/* 0C7FE0 7F0934B0 356BA096 */ ori $t3, (0xF205A096 & 0xFFFF) # ori $t3, $t3, 0xa096 +/* 0C7FE4 7F0934B4 3C0C0100 */ lui $t4, 0x100 +/* 0C7FE8 7F0934B8 ACCC0004 */ sw $t4, 4($a2) +/* 0C7FEC 7F0934BC ACCB0000 */ sw $t3, ($a2) +/* 0C7FF0 7F0934C0 24C70008 */ addiu $a3, $a2, 8 +/* 0C7FF4 7F0934C4 24E40008 */ addiu $a0, $a3, 8 +/* 0C7FF8 7F0934C8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079E88) +/* 0C7FFC 7F0934CC C42C9E88 */ lwc1 $f12, %lo(flt_CODE_bss_80079E88)($at) +/* 0C8000 7F0934D0 AFA40030 */ sw $a0, 0x30($sp) +/* 0C8004 7F0934D4 0FC15FAB */ jal sinf +/* 0C8008 7F0934D8 AFA70018 */ sw $a3, 0x18($sp) +/* 0C800C 7F0934DC 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 0C8010 7F0934E0 44812000 */ mtc1 $at, $f4 +/* 0C8014 7F0934E4 3C014300 */ li $at, 0x43000000 # 128.000000 +/* 0C8018 7F0934E8 44814000 */ mtc1 $at, $f8 +/* 0C801C 7F0934EC 46040182 */ mul.s $f6, $f0, $f4 +/* 0C8020 7F0934F0 240E0001 */ li $t6, 1 +/* 0C8024 7F0934F4 8FA40030 */ lw $a0, 0x30($sp) +/* 0C8028 7F0934F8 3C0ABA00 */ lui $t2, (0xBA001102 >> 16) # lui $t2, 0xba00 +/* 0C802C 7F0934FC 3C0BBA00 */ lui $t3, (0xBA000C02 >> 16) # lui $t3, 0xba00 +/* 0C8030 7F093500 00801025 */ move $v0, $a0 +/* 0C8034 7F093504 24840008 */ addiu $a0, $a0, 8 +/* 0C8038 7F093508 46083280 */ add.s $f10, $f6, $f8 +/* 0C803C 7F09350C 00801825 */ move $v1, $a0 +/* 0C8040 7F093510 24840008 */ addiu $a0, $a0, 8 +/* 0C8044 7F093514 00802825 */ move $a1, $a0 +/* 0C8048 7F093518 444DF800 */ cfc1 $t5, $31 +/* 0C804C 7F09351C 44CEF800 */ ctc1 $t6, $31 +/* 0C8050 7F093520 3C0CFC27 */ lui $t4, (0xFC272C04 >> 16) # lui $t4, 0xfc27 +/* 0C8054 7F093524 8FA70018 */ lw $a3, 0x18($sp) +/* 0C8058 7F093528 46005424 */ cvt.w.s $f16, $f10 +/* 0C805C 7F09352C 24092000 */ li $t1, 8192 +/* 0C8060 7F093530 2419FFFF */ li $t9, -1 +/* 0C8064 7F093534 354A1102 */ ori $t2, (0xBA001102 & 0xFFFF) # ori $t2, $t2, 0x1102 +/* 0C8068 7F093538 444EF800 */ cfc1 $t6, $31 +/* 0C806C 7F09353C 356B0C02 */ ori $t3, (0xBA000C02 & 0xFFFF) # ori $t3, $t3, 0xc02 +/* 0C8070 7F093540 358C2C04 */ ori $t4, (0xFC272C04 & 0xFFFF) # ori $t4, $t4, 0x2c04 +/* 0C8074 7F093544 31CE0078 */ andi $t6, $t6, 0x78 +/* 0C8078 7F093548 11C00013 */ beqz $t6, .L7F093598 +/* 0C807C 7F09354C 24840008 */ addiu $a0, $a0, 8 +/* 0C8080 7F093550 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C8084 7F093554 44818000 */ mtc1 $at, $f16 +/* 0C8088 7F093558 240E0001 */ li $t6, 1 +/* 0C808C 7F09355C 46105401 */ sub.s $f16, $f10, $f16 +/* 0C8090 7F093560 44CEF800 */ ctc1 $t6, $31 +/* 0C8094 7F093564 00000000 */ nop +/* 0C8098 7F093568 46008424 */ cvt.w.s $f16, $f16 +/* 0C809C 7F09356C 444EF800 */ cfc1 $t6, $31 +/* 0C80A0 7F093570 00000000 */ nop +/* 0C80A4 7F093574 31CE0078 */ andi $t6, $t6, 0x78 +/* 0C80A8 7F093578 15C00005 */ bnez $t6, .L7F093590 +/* 0C80AC 7F09357C 00000000 */ nop +/* 0C80B0 7F093580 440E8000 */ mfc1 $t6, $f16 +/* 0C80B4 7F093584 3C018000 */ lui $at, 0x8000 +/* 0C80B8 7F093588 10000007 */ b .L7F0935A8 +/* 0C80BC 7F09358C 01C17025 */ or $t6, $t6, $at +.L7F093590: +/* 0C80C0 7F093590 10000005 */ b .L7F0935A8 +/* 0C80C4 7F093594 240EFFFF */ li $t6, -1 +.L7F093598: +/* 0C80C8 7F093598 440E8000 */ mfc1 $t6, $f16 +/* 0C80CC 7F09359C 00000000 */ nop +/* 0C80D0 7F0935A0 05C0FFFB */ bltz $t6, .L7F093590 +/* 0C80D4 7F0935A4 00000000 */ nop +.L7F0935A8: +/* 0C80D8 7F0935A8 31CF00FF */ andi $t7, $t6, 0xff +/* 0C80DC 7F0935AC 3C01FA00 */ lui $at, 0xfa00 +/* 0C80E0 7F0935B0 01E1C025 */ or $t8, $t7, $at +/* 0C80E4 7F0935B4 ACF80000 */ sw $t8, ($a3) +/* 0C80E8 7F0935B8 ACF90004 */ sw $t9, 4($a3) +/* 0C80EC 7F0935BC AC400004 */ sw $zero, 4($v0) +/* 0C80F0 7F0935C0 AC4A0000 */ sw $t2, ($v0) +/* 0C80F4 7F0935C4 44CDF800 */ ctc1 $t5, $31 +/* 0C80F8 7F0935C8 AC690004 */ sw $t1, 4($v1) +/* 0C80FC 7F0935CC AC6B0000 */ sw $t3, ($v1) +/* 0C8100 7F0935D0 3C0D1F10 */ lui $t5, (0x1F1093FF >> 16) # lui $t5, 0x1f10 +/* 0C8104 7F0935D4 35AD93FF */ ori $t5, (0x1F1093FF & 0xFFFF) # ori $t5, $t5, 0x93ff +/* 0C8108 7F0935D8 00803025 */ move $a2, $a0 +/* 0C810C 7F0935DC ACAD0004 */ sw $t5, 4($a1) +/* 0C8110 7F0935E0 ACAC0000 */ sw $t4, ($a1) +/* 0C8114 7F0935E4 24840008 */ addiu $a0, $a0, 8 +/* 0C8118 7F0935E8 3C0F0C19 */ lui $t7, (0x0C192078 >> 16) # lui $t7, 0xc19 +/* 0C811C 7F0935EC 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0C8120 7F0935F0 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0C8124 7F0935F4 35EF2078 */ ori $t7, (0x0C192078 & 0xFFFF) # ori $t7, $t7, 0x2078 +/* 0C8128 7F0935F8 00804025 */ move $t0, $a0 +/* 0C812C 7F0935FC ACCF0004 */ sw $t7, 4($a2) +/* 0C8130 7F093600 ACCE0000 */ sw $t6, ($a2) +/* 0C8134 7F093604 24840008 */ addiu $a0, $a0, 8 +/* 0C8138 7F093608 3C18BA00 */ lui $t8, (0xBA001001 >> 16) # lui $t8, 0xba00 +/* 0C813C 7F09360C 37181001 */ ori $t8, (0xBA001001 & 0xFFFF) # ori $t8, $t8, 0x1001 +/* 0C8140 7F093610 00801025 */ move $v0, $a0 +/* 0C8144 7F093614 AD180000 */ sw $t8, ($t0) +/* 0C8148 7F093618 AD000004 */ sw $zero, %lo(0xF5100004)($t0) +/* 0C814C 7F09361C 24840008 */ addiu $a0, $a0, 8 +/* 0C8150 7F093620 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 +/* 0C8154 7F093624 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 +/* 0C8158 7F093628 3C0A0010 */ lui $t2, 0x10 +/* 0C815C 7F09362C 00801825 */ move $v1, $a0 +/* 0C8160 7F093630 AC4A0004 */ sw $t2, 4($v0) +/* 0C8164 7F093634 AC590000 */ sw $t9, ($v0) +/* 0C8168 7F093638 3C0BB700 */ lui $t3, 0xb700 +/* 0C816C 7F09363C AC6B0000 */ sw $t3, ($v1) +/* 0C8170 7F093640 AC690004 */ sw $t1, 4($v1) +/* 0C8174 7F093644 24840008 */ addiu $a0, $a0, 8 +.L7F093648: +/* 0C8178 7F093648 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C817C 7F09364C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0C8180 7F093650 00801025 */ move $v0, $a0 +/* 0C8184 7F093654 03E00008 */ jr $ra +/* 0C8188 7F093658 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09365C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09365C +/* 0C818C 7F09365C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C8190 7F093660 10A00009 */ beqz $a1, .L7F093688 +/* 0C8194 7F093664 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C8198 7F093668 00801025 */ move $v0, $a0 +/* 0C819C 7F09366C 3C0F8004 */ lui $t7, %hi(MipMap2C_Something2_Setup) +/* 0C81A0 7F093670 25EFFD28 */ addiu $t7, %lo(MipMap2C_Something2_Setup) # addiu $t7, $t7, -0x2d8 +/* 0C81A4 7F093674 3C0E0600 */ lui $t6, 0x600 +/* 0C81A8 7F093678 AC4E0000 */ sw $t6, ($v0) +/* 0C81AC 7F09367C AC4F0004 */ sw $t7, 4($v0) +/* 0C81B0 7F093680 10000079 */ b .L7F093868 +/* 0C81B4 7F093684 24840008 */ addiu $a0, $a0, 8 +.L7F093688: +/* 0C81B8 7F093688 3C08F548 */ lui $t0, %hi(0xF5480004) # $t0, 0xf548 +/* 0C81BC 7F09368C 00801025 */ move $v0, $a0 +/* 0C81C0 7F093690 3C180001 */ lui $t8, (0x00014050 >> 16) # lui $t8, 1 +/* 0C81C4 7F093694 35080400 */ ori $t0, (0xF5480400 & 0xFFFF) # ori $t0, $t0, 0x400 +/* 0C81C8 7F093698 37184050 */ ori $t8, (0x00014050 & 0xFFFF) # ori $t8, $t8, 0x4050 +/* 0C81CC 7F09369C 24830008 */ addiu $v1, $a0, 8 +/* 0C81D0 7F0936A0 AC580004 */ sw $t8, 4($v0) +/* 0C81D4 7F0936A4 AC480000 */ sw $t0, ($v0) +/* 0C81D8 7F0936A8 3C190101 */ lui $t9, (0x01014050 >> 16) # lui $t9, 0x101 +/* 0C81DC 7F0936AC 37394050 */ ori $t9, (0x01014050 & 0xFFFF) # ori $t9, $t9, 0x4050 +/* 0C81E0 7F0936B0 24650008 */ addiu $a1, $v1, 8 +/* 0C81E4 7F0936B4 AC790004 */ sw $t9, 4($v1) +/* 0C81E8 7F0936B8 AC680000 */ sw $t0, ($v1) +/* 0C81EC 7F0936BC 24A60008 */ addiu $a2, $a1, 8 +/* 0C81F0 7F0936C0 3C0AF200 */ lui $t2, 0xf200 +/* 0C81F4 7F0936C4 ACAA0000 */ sw $t2, ($a1) +/* 0C81F8 7F0936C8 ACA00004 */ sw $zero, 4($a1) +/* 0C81FC 7F0936CC 3C0BF205 */ lui $t3, (0xF205A096 >> 16) # lui $t3, 0xf205 +/* 0C8200 7F0936D0 356BA096 */ ori $t3, (0xF205A096 & 0xFFFF) # ori $t3, $t3, 0xa096 +/* 0C8204 7F0936D4 3C0C0100 */ lui $t4, 0x100 +/* 0C8208 7F0936D8 ACCC0004 */ sw $t4, 4($a2) +/* 0C820C 7F0936DC ACCB0000 */ sw $t3, ($a2) +/* 0C8210 7F0936E0 24C70008 */ addiu $a3, $a2, 8 +/* 0C8214 7F0936E4 24E40008 */ addiu $a0, $a3, 8 +/* 0C8218 7F0936E8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079E88) +/* 0C821C 7F0936EC C42C9E88 */ lwc1 $f12, %lo(flt_CODE_bss_80079E88)($at) +/* 0C8220 7F0936F0 AFA40030 */ sw $a0, 0x30($sp) +/* 0C8224 7F0936F4 0FC15FAB */ jal sinf +/* 0C8228 7F0936F8 AFA70018 */ sw $a3, 0x18($sp) +/* 0C822C 7F0936FC 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 0C8230 7F093700 44812000 */ mtc1 $at, $f4 +/* 0C8234 7F093704 3C014300 */ li $at, 0x43000000 # 128.000000 +/* 0C8238 7F093708 44814000 */ mtc1 $at, $f8 +/* 0C823C 7F09370C 46040182 */ mul.s $f6, $f0, $f4 +/* 0C8240 7F093710 240E0001 */ li $t6, 1 +/* 0C8244 7F093714 8FA40030 */ lw $a0, 0x30($sp) +/* 0C8248 7F093718 3C0ABA00 */ lui $t2, (0xBA001102 >> 16) # lui $t2, 0xba00 +/* 0C824C 7F09371C 3C0BBA00 */ lui $t3, (0xBA000C02 >> 16) # lui $t3, 0xba00 +/* 0C8250 7F093720 00801025 */ move $v0, $a0 +/* 0C8254 7F093724 24840008 */ addiu $a0, $a0, 8 +/* 0C8258 7F093728 46083280 */ add.s $f10, $f6, $f8 +/* 0C825C 7F09372C 00801825 */ move $v1, $a0 +/* 0C8260 7F093730 24840008 */ addiu $a0, $a0, 8 +/* 0C8264 7F093734 00802825 */ move $a1, $a0 +/* 0C8268 7F093738 444DF800 */ cfc1 $t5, $31 +/* 0C826C 7F09373C 44CEF800 */ ctc1 $t6, $31 +/* 0C8270 7F093740 3C0CFC27 */ lui $t4, (0xFC272C04 >> 16) # lui $t4, 0xfc27 +/* 0C8274 7F093744 8FA70018 */ lw $a3, 0x18($sp) +/* 0C8278 7F093748 46005424 */ cvt.w.s $f16, $f10 +/* 0C827C 7F09374C 24092000 */ li $t1, 8192 +/* 0C8280 7F093750 2419FFFF */ li $t9, -1 +/* 0C8284 7F093754 354A1102 */ ori $t2, (0xBA001102 & 0xFFFF) # ori $t2, $t2, 0x1102 +/* 0C8288 7F093758 444EF800 */ cfc1 $t6, $31 +/* 0C828C 7F09375C 356B0C02 */ ori $t3, (0xBA000C02 & 0xFFFF) # ori $t3, $t3, 0xc02 +/* 0C8290 7F093760 358C2C04 */ ori $t4, (0xFC272C04 & 0xFFFF) # ori $t4, $t4, 0x2c04 +/* 0C8294 7F093764 31CE0078 */ andi $t6, $t6, 0x78 +/* 0C8298 7F093768 11C00013 */ beqz $t6, .L7F0937B8 +/* 0C829C 7F09376C 24840008 */ addiu $a0, $a0, 8 +/* 0C82A0 7F093770 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C82A4 7F093774 44818000 */ mtc1 $at, $f16 +/* 0C82A8 7F093778 240E0001 */ li $t6, 1 +/* 0C82AC 7F09377C 46105401 */ sub.s $f16, $f10, $f16 +/* 0C82B0 7F093780 44CEF800 */ ctc1 $t6, $31 +/* 0C82B4 7F093784 00000000 */ nop +/* 0C82B8 7F093788 46008424 */ cvt.w.s $f16, $f16 +/* 0C82BC 7F09378C 444EF800 */ cfc1 $t6, $31 +/* 0C82C0 7F093790 00000000 */ nop +/* 0C82C4 7F093794 31CE0078 */ andi $t6, $t6, 0x78 +/* 0C82C8 7F093798 15C00005 */ bnez $t6, .L7F0937B0 +/* 0C82CC 7F09379C 00000000 */ nop +/* 0C82D0 7F0937A0 440E8000 */ mfc1 $t6, $f16 +/* 0C82D4 7F0937A4 3C018000 */ lui $at, 0x8000 +/* 0C82D8 7F0937A8 10000007 */ b .L7F0937C8 +/* 0C82DC 7F0937AC 01C17025 */ or $t6, $t6, $at +.L7F0937B0: +/* 0C82E0 7F0937B0 10000005 */ b .L7F0937C8 +/* 0C82E4 7F0937B4 240EFFFF */ li $t6, -1 +.L7F0937B8: +/* 0C82E8 7F0937B8 440E8000 */ mfc1 $t6, $f16 +/* 0C82EC 7F0937BC 00000000 */ nop +/* 0C82F0 7F0937C0 05C0FFFB */ bltz $t6, .L7F0937B0 +/* 0C82F4 7F0937C4 00000000 */ nop +.L7F0937C8: +/* 0C82F8 7F0937C8 31CF00FF */ andi $t7, $t6, 0xff +/* 0C82FC 7F0937CC 3C01FA00 */ lui $at, 0xfa00 +/* 0C8300 7F0937D0 01E1C025 */ or $t8, $t7, $at +/* 0C8304 7F0937D4 ACF80000 */ sw $t8, ($a3) +/* 0C8308 7F0937D8 ACF90004 */ sw $t9, 4($a3) +/* 0C830C 7F0937DC AC400004 */ sw $zero, 4($v0) +/* 0C8310 7F0937E0 AC4A0000 */ sw $t2, ($v0) +/* 0C8314 7F0937E4 44CDF800 */ ctc1 $t5, $31 +/* 0C8318 7F0937E8 AC690004 */ sw $t1, 4($v1) +/* 0C831C 7F0937EC AC6B0000 */ sw $t3, ($v1) +/* 0C8320 7F0937F0 3C0D1F10 */ lui $t5, (0x1F1093FF >> 16) # lui $t5, 0x1f10 +/* 0C8324 7F0937F4 35AD93FF */ ori $t5, (0x1F1093FF & 0xFFFF) # ori $t5, $t5, 0x93ff +/* 0C8328 7F0937F8 00803025 */ move $a2, $a0 +/* 0C832C 7F0937FC ACAD0004 */ sw $t5, 4($a1) +/* 0C8330 7F093800 ACAC0000 */ sw $t4, ($a1) +/* 0C8334 7F093804 24840008 */ addiu $a0, $a0, 8 +/* 0C8338 7F093808 3C0F0C19 */ lui $t7, (0x0C192078 >> 16) # lui $t7, 0xc19 +/* 0C833C 7F09380C 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0C8340 7F093810 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0C8344 7F093814 35EF2078 */ ori $t7, (0x0C192078 & 0xFFFF) # ori $t7, $t7, 0x2078 +/* 0C8348 7F093818 00804025 */ move $t0, $a0 +/* 0C834C 7F09381C ACCF0004 */ sw $t7, 4($a2) +/* 0C8350 7F093820 ACCE0000 */ sw $t6, ($a2) +/* 0C8354 7F093824 24840008 */ addiu $a0, $a0, 8 +/* 0C8358 7F093828 3C18BA00 */ lui $t8, (0xBA001001 >> 16) # lui $t8, 0xba00 +/* 0C835C 7F09382C 37181001 */ ori $t8, (0xBA001001 & 0xFFFF) # ori $t8, $t8, 0x1001 +/* 0C8360 7F093830 00801025 */ move $v0, $a0 +/* 0C8364 7F093834 AD180000 */ sw $t8, ($t0) +/* 0C8368 7F093838 AD000004 */ sw $zero, %lo(0xF5480004)($t0) +/* 0C836C 7F09383C 24840008 */ addiu $a0, $a0, 8 +/* 0C8370 7F093840 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 +/* 0C8374 7F093844 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 +/* 0C8378 7F093848 3C0A0010 */ lui $t2, 0x10 +/* 0C837C 7F09384C 00801825 */ move $v1, $a0 +/* 0C8380 7F093850 AC4A0004 */ sw $t2, 4($v0) +/* 0C8384 7F093854 AC590000 */ sw $t9, ($v0) +/* 0C8388 7F093858 3C0BB700 */ lui $t3, 0xb700 +/* 0C838C 7F09385C AC6B0000 */ sw $t3, ($v1) +/* 0C8390 7F093860 AC690004 */ sw $t1, 4($v1) +/* 0C8394 7F093864 24840008 */ addiu $a0, $a0, 8 +.L7F093868: +/* 0C8398 7F093868 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C839C 7F09386C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0C83A0 7F093870 00801025 */ move $v0, $a0 +/* 0C83A4 7F093874 03E00008 */ jr $ra +/* 0C83A8 7F093878 00000000 */ nop +) +#endif + + diff --git a/src/game/unk_092E50.h b/src/game/unk_092E50.h new file mode 100644 index 0000000..67ab97f --- /dev/null +++ b/src/game/unk_092E50.h @@ -0,0 +1,12 @@ +#ifndef _UNK_092E50_H_ +#define _UNK_092E50_H_ +#include "ultra64.h" + + +extern f32 D_8003FD94[]; + +extern f32 flt_CODE_bss_80079E80; +extern f32 flt_CODE_bss_80079E84; +extern f32 flt_CODE_bss_80079E88; + +#endif diff --git a/src/game/unk_093880.c b/src/game/unk_093880.c new file mode 100644 index 0000000..73921c8 --- /dev/null +++ b/src/game/unk_093880.c @@ -0,0 +1,10432 @@ +#include "ultra64.h" +#include "game/unk_093880.h" +#include "game/unk_092E50.h" +#include "game/bond.h" +#include "game/lvl.h" + +// bss +s32 copyof_stagenum; +s32 dword_CODE_bss_80079E94; +char dword_CODE_bss_80079E98[0x48]; +u32 *ptr_BONDdata_p1; +u32 *ptr_BONDdata_p2; +u32 *ptr_BONDdata_p3; +u32 *ptr_BONDdata_p4; + +struct player_data player1_player_data; +struct player_data player2_player_data; +struct player_data player3_player_data; +struct player_data player4_player_data; + +struct Player *pPlayer; +struct player_data *pPlayersPerm; +s32 player_num; +s32 random_byte; +s32 dword_CODE_bss_8007A0C0; +s32 dword_CODE_bss_8007A0C4; +s32 dword_CODE_bss_8007A0C8; +s32 dword_CODE_bss_8007A0CC; + + + + +#ifdef NONMATCHING +void sub_GAME_7F093880(f32 arg0, f32 arg1, ? arg2) { + f32 sp18; + f32 sp1C; + f32 sp20; + s32 sp24; + + // Node 0 + sp24 = sub_GAME_7F078444(); + sp1C = (f32) (getPlayer_c_screenleft() + arg0); + sp18 = getPlayer_c_screentop(); + sp20 = (f32) (get_ptr_currentdata()->unk38 + (arg1 + sp18)); + sub_GAME_7F077EEC(&sp1C, arg2, 0x42c80000); + return matrix_4x4_rotate_vector_in_place(sp24, arg2); +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F093880 +/* 0C83B0 7F093880 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C83B4 7F093884 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C83B8 7F093888 E7AC0028 */ swc1 $f12, 0x28($sp) +/* 0C83BC 7F09388C E7AE002C */ swc1 $f14, 0x2c($sp) +/* 0C83C0 7F093890 0FC1E111 */ jal sub_GAME_7F078444 +/* 0C83C4 7F093894 AFA60030 */ sw $a2, 0x30($sp) +/* 0C83C8 7F093898 0FC1E131 */ jal getPlayer_c_screenleft +/* 0C83CC 7F09389C AFA20024 */ sw $v0, 0x24($sp) +/* 0C83D0 7F0938A0 C7A40028 */ lwc1 $f4, 0x28($sp) +/* 0C83D4 7F0938A4 46040180 */ add.s $f6, $f0, $f4 +/* 0C83D8 7F0938A8 0FC1E135 */ jal getPlayer_c_screentop +/* 0C83DC 7F0938AC E7A6001C */ swc1 $f6, 0x1c($sp) +/* 0C83E0 7F0938B0 0FC2E9CB */ jal get_ptr_currentdata +/* 0C83E4 7F0938B4 E7A00018 */ swc1 $f0, 0x18($sp) +/* 0C83E8 7F0938B8 C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 0C83EC 7F0938BC C7AA0018 */ lwc1 $f10, 0x18($sp) +/* 0C83F0 7F0938C0 C4520038 */ lwc1 $f18, 0x38($v0) +/* 0C83F4 7F0938C4 27A4001C */ addiu $a0, $sp, 0x1c +/* 0C83F8 7F0938C8 460A4400 */ add.s $f16, $f8, $f10 +/* 0C83FC 7F0938CC 8FA50030 */ lw $a1, 0x30($sp) +/* 0C8400 7F0938D0 3C0642C8 */ lui $a2, 0x42c8 +/* 0C8404 7F0938D4 46109100 */ add.s $f4, $f18, $f16 +/* 0C8408 7F0938D8 0FC1DFBB */ jal sub_GAME_7F077EEC +/* 0C840C 7F0938DC E7A40020 */ swc1 $f4, 0x20($sp) +/* 0C8410 7F0938E0 8FA40024 */ lw $a0, 0x24($sp) +/* 0C8414 7F0938E4 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0C8418 7F0938E8 8FA50030 */ lw $a1, 0x30($sp) +/* 0C841C 7F0938EC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C8420 7F0938F0 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0C8424 7F0938F4 03E00008 */ jr $ra +/* 0C8428 7F0938F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0938FC(void *arg0, void *arg1, void *arg2) { + f32 sp24; + f32 sp2C; + s32 temp_s1; + f32 temp_f12; + f32 temp_f2; + f32 temp_f12_2; + f32 phi_f12; + f32 phi_f16; + f32 phi_f2; + f32 phi_return; + + // Node 0 + temp_s1 = get_BONDdata_position(); + temp_f12 = ((arg0->unk4 + arg0->unk4) / sqrtf((((arg0->unk8 * arg0->unk8) + (*arg0 * *arg0)) + D_80057520), *arg0)); + phi_f12 = temp_f12; + if (1.0f < temp_f12) + { + // Node 1 + phi_f12 = 1.0f; + } + // Node 2 + *arg2 = (f32) (1.0f - phi_f12); + if (0.0f == arg0->unk4) + { + // Node 3 + phi_f16 = D_80057524; + } + else + { + // Node 4 + phi_f16 = arg0->unk4; + } + // Node 5 + phi_return = 0.0f; + if (0.0f < phi_f16) + { + // Node 6 + sp24 = (f32) phi_f16; + temp_f2 = ((get_ptr_currentdata(phi_f12, 1.0f)->unkC - temp_s1->unk4) / phi_f16); + sp2C = temp_f2; + temp_f12_2 = (sqrtf(((arg0->unk8 * arg0->unk8) + (*arg0 * *arg0)), *arg0) * temp_f2); + phi_f2 = temp_f2; + if (D_80057528 < temp_f12_2) + { + // Node 7 + phi_f2 = (temp_f2 * (D_80057528 / temp_f12_2)); + } + // Node 8 + *arg1 = (f32) ((*arg0 * phi_f2) + *temp_s1); + arg1->unk4 = (f32) (temp_s1->unk4 + (phi_f2 * phi_f16)); + arg1->unk8 = (f32) ((arg0->unk8 * phi_f2) + temp_s1->unk8); + phi_return = 1.401298464324817e-45f; + } + // Node 9 + return phi_return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80057520 +.word 0x38d1b717 /*0.000099999997*/ +glabel D_80057524 +.word 0x3c23d70a /*0.0099999998*/ +glabel D_80057528 +.word 0x48927c00 /*300000.0*/ +.text +glabel sub_GAME_7F0938FC +/* 0C842C 7F0938FC 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0C8430 7F093900 AFBF001C */ sw $ra, 0x1c($sp) +/* 0C8434 7F093904 AFB00014 */ sw $s0, 0x14($sp) +/* 0C8438 7F093908 00808025 */ move $s0, $a0 +/* 0C843C 7F09390C AFB10018 */ sw $s1, 0x18($sp) +/* 0C8440 7F093910 AFA5003C */ sw $a1, 0x3c($sp) +/* 0C8444 7F093914 0FC227F5 */ jal get_BONDdata_position +/* 0C8448 7F093918 AFA60040 */ sw $a2, 0x40($sp) +/* 0C844C 7F09391C C6000008 */ lwc1 $f0, 8($s0) +/* 0C8450 7F093920 C60E0000 */ lwc1 $f14, ($s0) +/* 0C8454 7F093924 3C018005 */ lui $at, %hi(D_80057520) +/* 0C8458 7F093928 46000102 */ mul.s $f4, $f0, $f0 +/* 0C845C 7F09392C C42A7520 */ lwc1 $f10, %lo(D_80057520)($at) +/* 0C8460 7F093930 00408825 */ move $s1, $v0 +/* 0C8464 7F093934 460E7182 */ mul.s $f6, $f14, $f14 +/* 0C8468 7F093938 46062200 */ add.s $f8, $f4, $f6 +/* 0C846C 7F09393C 0C007DF8 */ jal sqrtf +/* 0C8470 7F093940 460A4300 */ add.s $f12, $f8, $f10 +/* 0C8474 7F093944 C6020004 */ lwc1 $f2, 4($s0) +/* 0C8478 7F093948 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C847C 7F09394C 44817000 */ mtc1 $at, $f14 +/* 0C8480 7F093950 46021100 */ add.s $f4, $f2, $f2 +/* 0C8484 7F093954 3C018005 */ lui $at, %hi(D_80057524) +/* 0C8488 7F093958 00001025 */ move $v0, $zero +/* 0C848C 7F09395C 46002303 */ div.s $f12, $f4, $f0 +/* 0C8490 7F093960 460C703C */ c.lt.s $f14, $f12 +/* 0C8494 7F093964 00000000 */ nop +/* 0C8498 7F093968 45020003 */ bc1fl .L7F093978 +/* 0C849C 7F09396C 460C7181 */ sub.s $f6, $f14, $f12 +/* 0C84A0 7F093970 46007306 */ mov.s $f12, $f14 +/* 0C84A4 7F093974 460C7181 */ sub.s $f6, $f14, $f12 +.L7F093978: +/* 0C84A8 7F093978 8FAE0040 */ lw $t6, 0x40($sp) +/* 0C84AC 7F09397C 44800000 */ mtc1 $zero, $f0 +/* 0C84B0 7F093980 E5C60000 */ swc1 $f6, ($t6) +/* 0C84B4 7F093984 C6020004 */ lwc1 $f2, 4($s0) +/* 0C84B8 7F093988 46020032 */ c.eq.s $f0, $f2 +/* 0C84BC 7F09398C 00000000 */ nop +/* 0C84C0 7F093990 45020004 */ bc1fl .L7F0939A4 +/* 0C84C4 7F093994 46001406 */ mov.s $f16, $f2 +/* 0C84C8 7F093998 10000002 */ b .L7F0939A4 +/* 0C84CC 7F09399C C4307524 */ lwc1 $f16, %lo(D_80057524)($at) +/* 0C84D0 7F0939A0 46001406 */ mov.s $f16, $f2 +.L7F0939A4: +/* 0C84D4 7F0939A4 4610003C */ c.lt.s $f0, $f16 +/* 0C84D8 7F0939A8 00000000 */ nop +/* 0C84DC 7F0939AC 4500002D */ bc1f .L7F093A64 +/* 0C84E0 7F0939B0 00000000 */ nop +/* 0C84E4 7F0939B4 0FC2E9CB */ jal get_ptr_currentdata +/* 0C84E8 7F0939B8 E7B00024 */ swc1 $f16, 0x24($sp) +/* 0C84EC 7F0939BC C448000C */ lwc1 $f8, 0xc($v0) +/* 0C84F0 7F0939C0 C62A0004 */ lwc1 $f10, 4($s1) +/* 0C84F4 7F0939C4 C7B00024 */ lwc1 $f16, 0x24($sp) +/* 0C84F8 7F0939C8 C6000008 */ lwc1 $f0, 8($s0) +/* 0C84FC 7F0939CC 460A4101 */ sub.s $f4, $f8, $f10 +/* 0C8500 7F0939D0 C60E0000 */ lwc1 $f14, ($s0) +/* 0C8504 7F0939D4 46000182 */ mul.s $f6, $f0, $f0 +/* 0C8508 7F0939D8 00000000 */ nop +/* 0C850C 7F0939DC 460E7202 */ mul.s $f8, $f14, $f14 +/* 0C8510 7F0939E0 46102083 */ div.s $f2, $f4, $f16 +/* 0C8514 7F0939E4 46083300 */ add.s $f12, $f6, $f8 +/* 0C8518 7F0939E8 0C007DF8 */ jal sqrtf +/* 0C851C 7F0939EC E7A2002C */ swc1 $f2, 0x2c($sp) +/* 0C8520 7F0939F0 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 0C8524 7F0939F4 3C018005 */ lui $at, %hi(D_80057528) +/* 0C8528 7F0939F8 C4327528 */ lwc1 $f18, %lo(D_80057528)($at) +/* 0C852C 7F0939FC 46020302 */ mul.s $f12, $f0, $f2 +/* 0C8530 7F093A00 C7B00024 */ lwc1 $f16, 0x24($sp) +/* 0C8534 7F093A04 460C903C */ c.lt.s $f18, $f12 +/* 0C8538 7F093A08 00000000 */ nop +/* 0C853C 7F093A0C 45020005 */ bc1fl .L7F093A24 +/* 0C8540 7F093A10 C6040000 */ lwc1 $f4, ($s0) +/* 0C8544 7F093A14 460C9283 */ div.s $f10, $f18, $f12 +/* 0C8548 7F093A18 460A1082 */ mul.s $f2, $f2, $f10 +/* 0C854C 7F093A1C 00000000 */ nop +/* 0C8550 7F093A20 C6040000 */ lwc1 $f4, ($s0) +.L7F093A24: +/* 0C8554 7F093A24 C6280000 */ lwc1 $f8, ($s1) +/* 0C8558 7F093A28 8FA3003C */ lw $v1, 0x3c($sp) +/* 0C855C 7F093A2C 46022182 */ mul.s $f6, $f4, $f2 +/* 0C8560 7F093A30 24020001 */ li $v0, 1 +/* 0C8564 7F093A34 46083280 */ add.s $f10, $f6, $f8 +/* 0C8568 7F093A38 46101182 */ mul.s $f6, $f2, $f16 +/* 0C856C 7F093A3C E46A0000 */ swc1 $f10, ($v1) +/* 0C8570 7F093A40 C6240004 */ lwc1 $f4, 4($s1) +/* 0C8574 7F093A44 46062200 */ add.s $f8, $f4, $f6 +/* 0C8578 7F093A48 E4680004 */ swc1 $f8, 4($v1) +/* 0C857C 7F093A4C C60A0008 */ lwc1 $f10, 8($s0) +/* 0C8580 7F093A50 C6260008 */ lwc1 $f6, 8($s1) +/* 0C8584 7F093A54 46025102 */ mul.s $f4, $f10, $f2 +/* 0C8588 7F093A58 46062200 */ add.s $f8, $f4, $f6 +/* 0C858C 7F093A5C 10000001 */ b .L7F093A64 +/* 0C8590 7F093A60 E4680008 */ swc1 $f8, 8($v1) +.L7F093A64: +/* 0C8594 7F093A64 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C8598 7F093A68 8FB00014 */ lw $s0, 0x14($sp) +/* 0C859C 7F093A6C 8FB10018 */ lw $s1, 0x18($sp) +/* 0C85A0 7F093A70 03E00008 */ jr $ra +/* 0C85A4 7F093A74 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F093A78(void *arg0, void *arg1, void *arg2) { + f32 sp24; + f32 sp2C; + s32 temp_s1; + f32 temp_f2_2; + f32 temp_f2; + f32 temp_f12; + f32 phi_f2; + f32 phi_f16; + f32 phi_f2_2; + f32 phi_return; + + // Node 0 + temp_s1 = get_BONDdata_position(); + temp_f2_2 = ((-2.0f * arg0->unk4) / sqrtf((((arg0->unk8 * arg0->unk8) + (*arg0 * *arg0)) + D_8005752C), *arg0)); + phi_f2 = temp_f2_2; + if (1.0f < temp_f2_2) + { + // Node 1 + phi_f2 = 1.0f; + } + // Node 2 + *arg2 = (f32) (1.0f - phi_f2); + if (0.0f == arg0->unk4) + { + // Node 3 + phi_f16 = D_80057530; + } + else + { + // Node 4 + phi_f16 = arg0->unk4; + } + // Node 5 + phi_return = arg0->unk4; + if (phi_f16 < 0.0f) + { + // Node 6 + sp24 = (f32) phi_f16; + temp_f2 = ((get_ptr_currentdata(1.0f, 0.0f)->unk24 - temp_s1->unk4) / phi_f16); + sp2C = temp_f2; + temp_f12 = (sqrtf(((arg0->unk8 * arg0->unk8) + (*arg0 * *arg0)), *arg0) * temp_f2); + phi_f2_2 = temp_f2; + if (D_80057534 < temp_f12) + { + // Node 7 + phi_f2_2 = (temp_f2 * (D_80057534 / temp_f12)); + } + // Node 8 + *arg1 = (f32) ((*arg0 * phi_f2_2) + *temp_s1); + arg1->unk4 = (f32) (temp_s1->unk4 + (phi_f2_2 * phi_f16)); + arg1->unk8 = (f32) ((arg0->unk8 * phi_f2_2) + temp_s1->unk8); + phi_return = 1.401298464324817e-45f; + } + // Node 9 + return phi_return; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005752C +.word 0x38d1b717 /*0.000099999997*/ +glabel D_80057530 +.word 0xbc23d70a /*-0.01*/ +glabel D_80057534 +.word 0x48927c00 /*300000.0*/ +.text +glabel sub_GAME_7F093A78 +/* 0C85A8 7F093A78 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0C85AC 7F093A7C AFBF001C */ sw $ra, 0x1c($sp) +/* 0C85B0 7F093A80 AFB00014 */ sw $s0, 0x14($sp) +/* 0C85B4 7F093A84 00808025 */ move $s0, $a0 +/* 0C85B8 7F093A88 AFB10018 */ sw $s1, 0x18($sp) +/* 0C85BC 7F093A8C AFA5003C */ sw $a1, 0x3c($sp) +/* 0C85C0 7F093A90 0FC227F5 */ jal get_BONDdata_position +/* 0C85C4 7F093A94 AFA60040 */ sw $a2, 0x40($sp) +/* 0C85C8 7F093A98 C6000008 */ lwc1 $f0, 8($s0) +/* 0C85CC 7F093A9C C60E0000 */ lwc1 $f14, ($s0) +/* 0C85D0 7F093AA0 3C018005 */ lui $at, %hi(D_8005752C) +/* 0C85D4 7F093AA4 46000102 */ mul.s $f4, $f0, $f0 +/* 0C85D8 7F093AA8 C42A752C */ lwc1 $f10, %lo(D_8005752C)($at) +/* 0C85DC 7F093AAC 00408825 */ move $s1, $v0 +/* 0C85E0 7F093AB0 460E7182 */ mul.s $f6, $f14, $f14 +/* 0C85E4 7F093AB4 46062200 */ add.s $f8, $f4, $f6 +/* 0C85E8 7F093AB8 0C007DF8 */ jal sqrtf +/* 0C85EC 7F093ABC 460A4300 */ add.s $f12, $f8, $f10 +/* 0C85F0 7F093AC0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C85F4 7F093AC4 44816000 */ mtc1 $at, $f12 +/* 0C85F8 7F093AC8 3C01C000 */ li $at, 0xC0000000 # -2.000000 +/* 0C85FC 7F093ACC 44812000 */ mtc1 $at, $f4 +/* 0C8600 7F093AD0 C6060004 */ lwc1 $f6, 4($s0) +/* 0C8604 7F093AD4 3C018005 */ lui $at, %hi(D_80057530) +/* 0C8608 7F093AD8 00001025 */ move $v0, $zero +/* 0C860C 7F093ADC 46062202 */ mul.s $f8, $f4, $f6 +/* 0C8610 7F093AE0 46004083 */ div.s $f2, $f8, $f0 +/* 0C8614 7F093AE4 4602603C */ c.lt.s $f12, $f2 +/* 0C8618 7F093AE8 00000000 */ nop +/* 0C861C 7F093AEC 45020003 */ bc1fl .L7F093AFC +/* 0C8620 7F093AF0 46026281 */ sub.s $f10, $f12, $f2 +/* 0C8624 7F093AF4 46006086 */ mov.s $f2, $f12 +/* 0C8628 7F093AF8 46026281 */ sub.s $f10, $f12, $f2 +.L7F093AFC: +/* 0C862C 7F093AFC 8FAE0040 */ lw $t6, 0x40($sp) +/* 0C8630 7F093B00 44807000 */ mtc1 $zero, $f14 +/* 0C8634 7F093B04 E5CA0000 */ swc1 $f10, ($t6) +/* 0C8638 7F093B08 C6000004 */ lwc1 $f0, 4($s0) +/* 0C863C 7F093B0C 46007032 */ c.eq.s $f14, $f0 +/* 0C8640 7F093B10 00000000 */ nop +/* 0C8644 7F093B14 45020004 */ bc1fl .L7F093B28 +/* 0C8648 7F093B18 46000406 */ mov.s $f16, $f0 +/* 0C864C 7F093B1C 10000002 */ b .L7F093B28 +/* 0C8650 7F093B20 C4307530 */ lwc1 $f16, %lo(D_80057530)($at) +/* 0C8654 7F093B24 46000406 */ mov.s $f16, $f0 +.L7F093B28: +/* 0C8658 7F093B28 460E803C */ c.lt.s $f16, $f14 +/* 0C865C 7F093B2C 00000000 */ nop +/* 0C8660 7F093B30 4500002D */ bc1f .L7F093BE8 +/* 0C8664 7F093B34 00000000 */ nop +/* 0C8668 7F093B38 0FC2E9CB */ jal get_ptr_currentdata +/* 0C866C 7F093B3C E7B00024 */ swc1 $f16, 0x24($sp) +/* 0C8670 7F093B40 C4440024 */ lwc1 $f4, 0x24($v0) +/* 0C8674 7F093B44 C6260004 */ lwc1 $f6, 4($s1) +/* 0C8678 7F093B48 C7B00024 */ lwc1 $f16, 0x24($sp) +/* 0C867C 7F093B4C C6000008 */ lwc1 $f0, 8($s0) +/* 0C8680 7F093B50 46062201 */ sub.s $f8, $f4, $f6 +/* 0C8684 7F093B54 C60E0000 */ lwc1 $f14, ($s0) +/* 0C8688 7F093B58 46000282 */ mul.s $f10, $f0, $f0 +/* 0C868C 7F093B5C 00000000 */ nop +/* 0C8690 7F093B60 460E7102 */ mul.s $f4, $f14, $f14 +/* 0C8694 7F093B64 46104083 */ div.s $f2, $f8, $f16 +/* 0C8698 7F093B68 46045300 */ add.s $f12, $f10, $f4 +/* 0C869C 7F093B6C 0C007DF8 */ jal sqrtf +/* 0C86A0 7F093B70 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 0C86A4 7F093B74 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 0C86A8 7F093B78 3C018005 */ lui $at, %hi(D_80057534) +/* 0C86AC 7F093B7C C4327534 */ lwc1 $f18, %lo(D_80057534)($at) +/* 0C86B0 7F093B80 46020302 */ mul.s $f12, $f0, $f2 +/* 0C86B4 7F093B84 C7B00024 */ lwc1 $f16, 0x24($sp) +/* 0C86B8 7F093B88 460C903C */ c.lt.s $f18, $f12 +/* 0C86BC 7F093B8C 00000000 */ nop +/* 0C86C0 7F093B90 45020005 */ bc1fl .L7F093BA8 +/* 0C86C4 7F093B94 C6080000 */ lwc1 $f8, ($s0) +/* 0C86C8 7F093B98 460C9183 */ div.s $f6, $f18, $f12 +/* 0C86CC 7F093B9C 46061082 */ mul.s $f2, $f2, $f6 +/* 0C86D0 7F093BA0 00000000 */ nop +/* 0C86D4 7F093BA4 C6080000 */ lwc1 $f8, ($s0) +.L7F093BA8: +/* 0C86D8 7F093BA8 C6240000 */ lwc1 $f4, ($s1) +/* 0C86DC 7F093BAC 8FA3003C */ lw $v1, 0x3c($sp) +/* 0C86E0 7F093BB0 46024282 */ mul.s $f10, $f8, $f2 +/* 0C86E4 7F093BB4 24020001 */ li $v0, 1 +/* 0C86E8 7F093BB8 46045180 */ add.s $f6, $f10, $f4 +/* 0C86EC 7F093BBC 46101282 */ mul.s $f10, $f2, $f16 +/* 0C86F0 7F093BC0 E4660000 */ swc1 $f6, ($v1) +/* 0C86F4 7F093BC4 C6280004 */ lwc1 $f8, 4($s1) +/* 0C86F8 7F093BC8 460A4100 */ add.s $f4, $f8, $f10 +/* 0C86FC 7F093BCC E4640004 */ swc1 $f4, 4($v1) +/* 0C8700 7F093BD0 C6060008 */ lwc1 $f6, 8($s0) +/* 0C8704 7F093BD4 C62A0008 */ lwc1 $f10, 8($s1) +/* 0C8708 7F093BD8 46023202 */ mul.s $f8, $f6, $f2 +/* 0C870C 7F093BDC 460A4100 */ add.s $f4, $f8, $f10 +/* 0C8710 7F093BE0 10000001 */ b .L7F093BE8 +/* 0C8714 7F093BE4 E4640008 */ swc1 $f4, 8($v1) +.L7F093BE8: +/* 0C8718 7F093BE8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0C871C 7F093BEC 8FB00014 */ lw $s0, 0x14($sp) +/* 0C8720 7F093BF0 8FB10018 */ lw $s1, 0x18($sp) +/* 0C8724 7F093BF4 03E00008 */ jr $ra +/* 0C8728 7F093BF8 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F093BFC(void *arg0, void *arg1, void *arg2) { + f32 temp_f0; + + // Node 0 + arg2->unk4 = 0.0f; + temp_f0 = (arg0->unk4 / (arg0->unk4 - arg1->unk4)); + *arg2 = (f32) (((*arg1 - *arg0) * temp_f0) + *arg0); + arg2->unk8 = (f32) (((arg1->unk8 - arg0->unk8) * temp_f0) + arg0->unk8); + return temp_f0; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F093BFC +/* 0C872C 7F093BFC C4820004 */ lwc1 $f2, 4($a0) +/* 0C8730 7F093C00 C4A40004 */ lwc1 $f4, 4($a1) +/* 0C8734 7F093C04 C48C0000 */ lwc1 $f12, ($a0) +/* 0C8738 7F093C08 C4A80000 */ lwc1 $f8, ($a1) +/* 0C873C 7F093C0C 46041181 */ sub.s $f6, $f2, $f4 +/* 0C8740 7F093C10 44802000 */ mtc1 $zero, $f4 +/* 0C8744 7F093C14 460C4281 */ sub.s $f10, $f8, $f12 +/* 0C8748 7F093C18 E4C40004 */ swc1 $f4, 4($a2) +/* 0C874C 7F093C1C 46061003 */ div.s $f0, $f2, $f6 +/* 0C8750 7F093C20 46005402 */ mul.s $f16, $f10, $f0 +/* 0C8754 7F093C24 460C8480 */ add.s $f18, $f16, $f12 +/* 0C8758 7F093C28 E4D20000 */ swc1 $f18, ($a2) +/* 0C875C 7F093C2C C4A60008 */ lwc1 $f6, 8($a1) +/* 0C8760 7F093C30 C48E0008 */ lwc1 $f14, 8($a0) +/* 0C8764 7F093C34 460E3201 */ sub.s $f8, $f6, $f14 +/* 0C8768 7F093C38 46004282 */ mul.s $f10, $f8, $f0 +/* 0C876C 7F093C3C 460E5400 */ add.s $f16, $f10, $f14 +/* 0C8770 7F093C40 03E00008 */ jr $ra +/* 0C8774 7F093C44 E4D00008 */ swc1 $f16, 8($a2) +) +#endif + + + + + + +f32 sub_GAME_7F093C48(f32 a, f32 b, f32 c) +{ + if (a < b) + { + return b; + } + if (c < a) + { + return c; + } + return a; +} + + + +f32 addpoint5tofloat(f32 arg0) { + return (f32) (s32) (arg0 + 0.5f); +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F093CB0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F093CB0 +/* 0C87E0 7F093CB0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C87E4 7F093CB4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C87E8 7F093CB8 AFA40030 */ sw $a0, 0x30($sp) +/* 0C87EC 7F093CBC 0FC2E9CB */ jal get_ptr_currentdata +/* 0C87F0 7F093CC0 AFA50034 */ sw $a1, 0x34($sp) +/* 0C87F4 7F093CC4 904E0008 */ lbu $t6, 8($v0) +/* 0C87F8 7F093CC8 448E2000 */ mtc1 $t6, $f4 +/* 0C87FC 7F093CCC 05C10005 */ bgez $t6, .L7F093CE4 +/* 0C8800 7F093CD0 468021A0 */ cvt.s.w $f6, $f4 +/* 0C8804 7F093CD4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0C8808 7F093CD8 44814000 */ mtc1 $at, $f8 +/* 0C880C 7F093CDC 00000000 */ nop +/* 0C8810 7F093CE0 46083180 */ add.s $f6, $f6, $f8 +.L7F093CE4: +/* 0C8814 7F093CE4 0FC2E9CB */ jal get_ptr_currentdata +/* 0C8818 7F093CE8 E7A6002C */ swc1 $f6, 0x2c($sp) +/* 0C881C 7F093CEC 904F0009 */ lbu $t7, 9($v0) +/* 0C8820 7F093CF0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0C8824 7F093CF4 448F5000 */ mtc1 $t7, $f10 +/* 0C8828 7F093CF8 05E10004 */ bgez $t7, .L7F093D0C +/* 0C882C 7F093CFC 46805420 */ cvt.s.w $f16, $f10 +/* 0C8830 7F093D00 44819000 */ mtc1 $at, $f18 +/* 0C8834 7F093D04 00000000 */ nop +/* 0C8838 7F093D08 46128400 */ add.s $f16, $f16, $f18 +.L7F093D0C: +/* 0C883C 7F093D0C 0FC2E9CB */ jal get_ptr_currentdata +/* 0C8840 7F093D10 E7B00028 */ swc1 $f16, 0x28($sp) +/* 0C8844 7F093D14 9058000A */ lbu $t8, 0xa($v0) +/* 0C8848 7F093D18 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0C884C 7F093D1C 44982000 */ mtc1 $t8, $f4 +/* 0C8850 7F093D20 07010004 */ bgez $t8, .L7F093D34 +/* 0C8854 7F093D24 46802220 */ cvt.s.w $f8, $f4 +/* 0C8858 7F093D28 44813000 */ mtc1 $at, $f6 +/* 0C885C 7F093D2C 00000000 */ nop +/* 0C8860 7F093D30 46064200 */ add.s $f8, $f8, $f6 +.L7F093D34: +/* 0C8864 7F093D34 0FC2E9CB */ jal get_ptr_currentdata +/* 0C8868 7F093D38 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0C886C 7F093D3C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C8870 7F093D40 44811000 */ mtc1 $at, $f2 +/* 0C8874 7F093D44 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0C8878 7F093D48 44818000 */ mtc1 $at, $f16 +/* 0C887C 7F093D4C C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 0C8880 7F093D50 C4520014 */ lwc1 $f18, 0x14($v0) +/* 0C8884 7F093D54 C7AA0034 */ lwc1 $f10, 0x34($sp) +/* 0C8888 7F093D58 46106103 */ div.s $f4, $f12, $f16 +/* 0C888C 7F093D5C 24080001 */ li $t0, 1 +/* 0C8890 7F093D60 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C8894 7F093D64 8FA90030 */ lw $t1, 0x30($sp) +/* 0C8898 7F093D68 460A1001 */ sub.s $f0, $f2, $f10 +/* 0C889C 7F093D6C 46041181 */ sub.s $f6, $f2, $f4 +/* 0C88A0 7F093D70 46069202 */ mul.s $f8, $f18, $f6 +/* 0C88A4 7F093D74 00000000 */ nop +/* 0C88A8 7F093D78 46004282 */ mul.s $f10, $f8, $f0 +/* 0C88AC 7F093D7C 460C5400 */ add.s $f16, $f10, $f12 +/* 0C88B0 7F093D80 4459F800 */ cfc1 $t9, $31 +/* 0C88B4 7F093D84 44C8F800 */ ctc1 $t0, $31 +/* 0C88B8 7F093D88 00000000 */ nop +/* 0C88BC 7F093D8C 46008124 */ cvt.w.s $f4, $f16 +/* 0C88C0 7F093D90 4448F800 */ cfc1 $t0, $31 +/* 0C88C4 7F093D94 00000000 */ nop +/* 0C88C8 7F093D98 31080078 */ andi $t0, $t0, 0x78 +/* 0C88CC 7F093D9C 11000012 */ beqz $t0, .L7F093DE8 +/* 0C88D0 7F093DA0 00000000 */ nop +/* 0C88D4 7F093DA4 44812000 */ mtc1 $at, $f4 +/* 0C88D8 7F093DA8 24080001 */ li $t0, 1 +/* 0C88DC 7F093DAC 46048101 */ sub.s $f4, $f16, $f4 +/* 0C88E0 7F093DB0 44C8F800 */ ctc1 $t0, $31 +/* 0C88E4 7F093DB4 00000000 */ nop +/* 0C88E8 7F093DB8 46002124 */ cvt.w.s $f4, $f4 +/* 0C88EC 7F093DBC 4448F800 */ cfc1 $t0, $31 +/* 0C88F0 7F093DC0 00000000 */ nop +/* 0C88F4 7F093DC4 31080078 */ andi $t0, $t0, 0x78 +/* 0C88F8 7F093DC8 15000005 */ bnez $t0, .L7F093DE0 +/* 0C88FC 7F093DCC 00000000 */ nop +/* 0C8900 7F093DD0 44082000 */ mfc1 $t0, $f4 +/* 0C8904 7F093DD4 3C018000 */ lui $at, 0x8000 +/* 0C8908 7F093DD8 10000007 */ b .L7F093DF8 +/* 0C890C 7F093DDC 01014025 */ or $t0, $t0, $at +.L7F093DE0: +/* 0C8910 7F093DE0 10000005 */ b .L7F093DF8 +/* 0C8914 7F093DE4 2408FFFF */ li $t0, -1 +.L7F093DE8: +/* 0C8918 7F093DE8 44082000 */ mfc1 $t0, $f4 +/* 0C891C 7F093DEC 00000000 */ nop +/* 0C8920 7F093DF0 0500FFFB */ bltz $t0, .L7F093DE0 +/* 0C8924 7F093DF4 00000000 */ nop +.L7F093DF8: +/* 0C8928 7F093DF8 44D9F800 */ ctc1 $t9, $31 +/* 0C892C 7F093DFC A1280014 */ sb $t0, 0x14($t1) +/* 0C8930 7F093E00 0FC2E9CB */ jal get_ptr_currentdata +/* 0C8934 7F093E04 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0C8938 7F093E08 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C893C 7F093E0C 44819000 */ mtc1 $at, $f18 +/* 0C8940 7F093E10 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0C8944 7F093E14 44813000 */ mtc1 $at, $f6 +/* 0C8948 7F093E18 C7A00028 */ lwc1 $f0, 0x28($sp) +/* 0C894C 7F093E1C C4500018 */ lwc1 $f16, 0x18($v0) +/* 0C8950 7F093E20 240B0001 */ li $t3, 1 +/* 0C8954 7F093E24 46060203 */ div.s $f8, $f0, $f6 +/* 0C8958 7F093E28 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 0C895C 7F093E2C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C8960 7F093E30 8FAC0030 */ lw $t4, 0x30($sp) +/* 0C8964 7F093E34 46089281 */ sub.s $f10, $f18, $f8 +/* 0C8968 7F093E38 460A8102 */ mul.s $f4, $f16, $f10 +/* 0C896C 7F093E3C 00000000 */ nop +/* 0C8970 7F093E40 46062482 */ mul.s $f18, $f4, $f6 +/* 0C8974 7F093E44 46009200 */ add.s $f8, $f18, $f0 +/* 0C8978 7F093E48 444AF800 */ cfc1 $t2, $31 +/* 0C897C 7F093E4C 44CBF800 */ ctc1 $t3, $31 +/* 0C8980 7F093E50 00000000 */ nop +/* 0C8984 7F093E54 46004424 */ cvt.w.s $f16, $f8 +/* 0C8988 7F093E58 444BF800 */ cfc1 $t3, $31 +/* 0C898C 7F093E5C 00000000 */ nop +/* 0C8990 7F093E60 316B0078 */ andi $t3, $t3, 0x78 +/* 0C8994 7F093E64 11600012 */ beqz $t3, .L7F093EB0 +/* 0C8998 7F093E68 00000000 */ nop +/* 0C899C 7F093E6C 44818000 */ mtc1 $at, $f16 +/* 0C89A0 7F093E70 240B0001 */ li $t3, 1 +/* 0C89A4 7F093E74 46104401 */ sub.s $f16, $f8, $f16 +/* 0C89A8 7F093E78 44CBF800 */ ctc1 $t3, $31 +/* 0C89AC 7F093E7C 00000000 */ nop +/* 0C89B0 7F093E80 46008424 */ cvt.w.s $f16, $f16 +/* 0C89B4 7F093E84 444BF800 */ cfc1 $t3, $31 +/* 0C89B8 7F093E88 00000000 */ nop +/* 0C89BC 7F093E8C 316B0078 */ andi $t3, $t3, 0x78 +/* 0C89C0 7F093E90 15600005 */ bnez $t3, .L7F093EA8 +/* 0C89C4 7F093E94 00000000 */ nop +/* 0C89C8 7F093E98 440B8000 */ mfc1 $t3, $f16 +/* 0C89CC 7F093E9C 3C018000 */ lui $at, 0x8000 +/* 0C89D0 7F093EA0 10000007 */ b .L7F093EC0 +/* 0C89D4 7F093EA4 01615825 */ or $t3, $t3, $at +.L7F093EA8: +/* 0C89D8 7F093EA8 10000005 */ b .L7F093EC0 +/* 0C89DC 7F093EAC 240BFFFF */ li $t3, -1 +.L7F093EB0: +/* 0C89E0 7F093EB0 440B8000 */ mfc1 $t3, $f16 +/* 0C89E4 7F093EB4 00000000 */ nop +/* 0C89E8 7F093EB8 0560FFFB */ bltz $t3, .L7F093EA8 +/* 0C89EC 7F093EBC 00000000 */ nop +.L7F093EC0: +/* 0C89F0 7F093EC0 44CAF800 */ ctc1 $t2, $31 +/* 0C89F4 7F093EC4 0FC2E9CB */ jal get_ptr_currentdata +/* 0C89F8 7F093EC8 A18B0015 */ sb $t3, 0x15($t4) +/* 0C89FC 7F093ECC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C8A00 7F093ED0 44815000 */ mtc1 $at, $f10 +/* 0C8A04 7F093ED4 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0C8A08 7F093ED8 44812000 */ mtc1 $at, $f4 +/* 0C8A0C 7F093EDC C7A00024 */ lwc1 $f0, 0x24($sp) +/* 0C8A10 7F093EE0 C448001C */ lwc1 $f8, 0x1c($v0) +/* 0C8A14 7F093EE4 240E0001 */ li $t6, 1 +/* 0C8A18 7F093EE8 46040183 */ div.s $f6, $f0, $f4 +/* 0C8A1C 7F093EEC C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0C8A20 7F093EF0 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C8A24 7F093EF4 8FAF0030 */ lw $t7, 0x30($sp) +/* 0C8A28 7F093EF8 241800FF */ li $t8, 255 +/* 0C8A2C 7F093EFC 46065481 */ sub.s $f18, $f10, $f6 +/* 0C8A30 7F093F00 46124402 */ mul.s $f16, $f8, $f18 +/* 0C8A34 7F093F04 00000000 */ nop +/* 0C8A38 7F093F08 46048282 */ mul.s $f10, $f16, $f4 +/* 0C8A3C 7F093F0C 46005180 */ add.s $f6, $f10, $f0 +/* 0C8A40 7F093F10 444DF800 */ cfc1 $t5, $31 +/* 0C8A44 7F093F14 44CEF800 */ ctc1 $t6, $31 +/* 0C8A48 7F093F18 00000000 */ nop +/* 0C8A4C 7F093F1C 46003224 */ cvt.w.s $f8, $f6 +/* 0C8A50 7F093F20 444EF800 */ cfc1 $t6, $31 +/* 0C8A54 7F093F24 00000000 */ nop +/* 0C8A58 7F093F28 31CE0078 */ andi $t6, $t6, 0x78 +/* 0C8A5C 7F093F2C 11C00012 */ beqz $t6, .L7F093F78 +/* 0C8A60 7F093F30 00000000 */ nop +/* 0C8A64 7F093F34 44814000 */ mtc1 $at, $f8 +/* 0C8A68 7F093F38 240E0001 */ li $t6, 1 +/* 0C8A6C 7F093F3C 46083201 */ sub.s $f8, $f6, $f8 +/* 0C8A70 7F093F40 44CEF800 */ ctc1 $t6, $31 +/* 0C8A74 7F093F44 00000000 */ nop +/* 0C8A78 7F093F48 46004224 */ cvt.w.s $f8, $f8 +/* 0C8A7C 7F093F4C 444EF800 */ cfc1 $t6, $31 +/* 0C8A80 7F093F50 00000000 */ nop +/* 0C8A84 7F093F54 31CE0078 */ andi $t6, $t6, 0x78 +/* 0C8A88 7F093F58 15C00005 */ bnez $t6, .L7F093F70 +/* 0C8A8C 7F093F5C 00000000 */ nop +/* 0C8A90 7F093F60 440E4000 */ mfc1 $t6, $f8 +/* 0C8A94 7F093F64 3C018000 */ lui $at, 0x8000 +/* 0C8A98 7F093F68 10000007 */ b .L7F093F88 +/* 0C8A9C 7F093F6C 01C17025 */ or $t6, $t6, $at +.L7F093F70: +/* 0C8AA0 7F093F70 10000005 */ b .L7F093F88 +/* 0C8AA4 7F093F74 240EFFFF */ li $t6, -1 +.L7F093F78: +/* 0C8AA8 7F093F78 440E4000 */ mfc1 $t6, $f8 +/* 0C8AAC 7F093F7C 00000000 */ nop +/* 0C8AB0 7F093F80 05C0FFFB */ bltz $t6, .L7F093F70 +/* 0C8AB4 7F093F84 00000000 */ nop +.L7F093F88: +/* 0C8AB8 7F093F88 A1EE0016 */ sb $t6, 0x16($t7) +/* 0C8ABC 7F093F8C A1F80017 */ sb $t8, 0x17($t7) +/* 0C8AC0 7F093F90 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C8AC4 7F093F94 44CDF800 */ ctc1 $t5, $31 +/* 0C8AC8 7F093F98 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0C8ACC 7F093F9C 03E00008 */ jr $ra +/* 0C8AD0 7F093FA0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F093FA4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F093FA4 +/* 0C8AD4 7F093FA4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C8AD8 7F093FA8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C8ADC 7F093FAC AFA40030 */ sw $a0, 0x30($sp) +/* 0C8AE0 7F093FB0 0FC2E9CB */ jal get_ptr_currentdata +/* 0C8AE4 7F093FB4 AFA50034 */ sw $a1, 0x34($sp) +/* 0C8AE8 7F093FB8 904E0008 */ lbu $t6, 8($v0) +/* 0C8AEC 7F093FBC 448E2000 */ mtc1 $t6, $f4 +/* 0C8AF0 7F093FC0 05C10005 */ bgez $t6, .L7F093FD8 +/* 0C8AF4 7F093FC4 468021A0 */ cvt.s.w $f6, $f4 +/* 0C8AF8 7F093FC8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0C8AFC 7F093FCC 44814000 */ mtc1 $at, $f8 +/* 0C8B00 7F093FD0 00000000 */ nop +/* 0C8B04 7F093FD4 46083180 */ add.s $f6, $f6, $f8 +.L7F093FD8: +/* 0C8B08 7F093FD8 0FC2E9CB */ jal get_ptr_currentdata +/* 0C8B0C 7F093FDC E7A6002C */ swc1 $f6, 0x2c($sp) +/* 0C8B10 7F093FE0 904F0009 */ lbu $t7, 9($v0) +/* 0C8B14 7F093FE4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0C8B18 7F093FE8 448F5000 */ mtc1 $t7, $f10 +/* 0C8B1C 7F093FEC 05E10004 */ bgez $t7, .L7F094000 +/* 0C8B20 7F093FF0 46805420 */ cvt.s.w $f16, $f10 +/* 0C8B24 7F093FF4 44819000 */ mtc1 $at, $f18 +/* 0C8B28 7F093FF8 00000000 */ nop +/* 0C8B2C 7F093FFC 46128400 */ add.s $f16, $f16, $f18 +.L7F094000: +/* 0C8B30 7F094000 0FC2E9CB */ jal get_ptr_currentdata +/* 0C8B34 7F094004 E7B00028 */ swc1 $f16, 0x28($sp) +/* 0C8B38 7F094008 9058000A */ lbu $t8, 0xa($v0) +/* 0C8B3C 7F09400C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0C8B40 7F094010 44982000 */ mtc1 $t8, $f4 +/* 0C8B44 7F094014 07010004 */ bgez $t8, .L7F094028 +/* 0C8B48 7F094018 46802220 */ cvt.s.w $f8, $f4 +/* 0C8B4C 7F09401C 44813000 */ mtc1 $at, $f6 +/* 0C8B50 7F094020 00000000 */ nop +/* 0C8B54 7F094024 46064200 */ add.s $f8, $f8, $f6 +.L7F094028: +/* 0C8B58 7F094028 0FC2E9CB */ jal get_ptr_currentdata +/* 0C8B5C 7F09402C E7A80024 */ swc1 $f8, 0x24($sp) +/* 0C8B60 7F094030 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C8B64 7F094034 44811000 */ mtc1 $at, $f2 +/* 0C8B68 7F094038 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0C8B6C 7F09403C 44818000 */ mtc1 $at, $f16 +/* 0C8B70 7F094040 C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 0C8B74 7F094044 C452002C */ lwc1 $f18, 0x2c($v0) +/* 0C8B78 7F094048 C7AA0034 */ lwc1 $f10, 0x34($sp) +/* 0C8B7C 7F09404C 46106103 */ div.s $f4, $f12, $f16 +/* 0C8B80 7F094050 24080001 */ li $t0, 1 +/* 0C8B84 7F094054 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C8B88 7F094058 8FA90030 */ lw $t1, 0x30($sp) +/* 0C8B8C 7F09405C 460A1001 */ sub.s $f0, $f2, $f10 +/* 0C8B90 7F094060 46041181 */ sub.s $f6, $f2, $f4 +/* 0C8B94 7F094064 46069202 */ mul.s $f8, $f18, $f6 +/* 0C8B98 7F094068 00000000 */ nop +/* 0C8B9C 7F09406C 46004282 */ mul.s $f10, $f8, $f0 +/* 0C8BA0 7F094070 460C5400 */ add.s $f16, $f10, $f12 +/* 0C8BA4 7F094074 4459F800 */ cfc1 $t9, $31 +/* 0C8BA8 7F094078 44C8F800 */ ctc1 $t0, $31 +/* 0C8BAC 7F09407C 00000000 */ nop +/* 0C8BB0 7F094080 46008124 */ cvt.w.s $f4, $f16 +/* 0C8BB4 7F094084 4448F800 */ cfc1 $t0, $31 +/* 0C8BB8 7F094088 00000000 */ nop +/* 0C8BBC 7F09408C 31080078 */ andi $t0, $t0, 0x78 +/* 0C8BC0 7F094090 11000012 */ beqz $t0, .L7F0940DC +/* 0C8BC4 7F094094 00000000 */ nop +/* 0C8BC8 7F094098 44812000 */ mtc1 $at, $f4 +/* 0C8BCC 7F09409C 24080001 */ li $t0, 1 +/* 0C8BD0 7F0940A0 46048101 */ sub.s $f4, $f16, $f4 +/* 0C8BD4 7F0940A4 44C8F800 */ ctc1 $t0, $31 +/* 0C8BD8 7F0940A8 00000000 */ nop +/* 0C8BDC 7F0940AC 46002124 */ cvt.w.s $f4, $f4 +/* 0C8BE0 7F0940B0 4448F800 */ cfc1 $t0, $31 +/* 0C8BE4 7F0940B4 00000000 */ nop +/* 0C8BE8 7F0940B8 31080078 */ andi $t0, $t0, 0x78 +/* 0C8BEC 7F0940BC 15000005 */ bnez $t0, .L7F0940D4 +/* 0C8BF0 7F0940C0 00000000 */ nop +/* 0C8BF4 7F0940C4 44082000 */ mfc1 $t0, $f4 +/* 0C8BF8 7F0940C8 3C018000 */ lui $at, 0x8000 +/* 0C8BFC 7F0940CC 10000007 */ b .L7F0940EC +/* 0C8C00 7F0940D0 01014025 */ or $t0, $t0, $at +.L7F0940D4: +/* 0C8C04 7F0940D4 10000005 */ b .L7F0940EC +/* 0C8C08 7F0940D8 2408FFFF */ li $t0, -1 +.L7F0940DC: +/* 0C8C0C 7F0940DC 44082000 */ mfc1 $t0, $f4 +/* 0C8C10 7F0940E0 00000000 */ nop +/* 0C8C14 7F0940E4 0500FFFB */ bltz $t0, .L7F0940D4 +/* 0C8C18 7F0940E8 00000000 */ nop +.L7F0940EC: +/* 0C8C1C 7F0940EC 44D9F800 */ ctc1 $t9, $31 +/* 0C8C20 7F0940F0 A1280014 */ sb $t0, 0x14($t1) +/* 0C8C24 7F0940F4 0FC2E9CB */ jal get_ptr_currentdata +/* 0C8C28 7F0940F8 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0C8C2C 7F0940FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C8C30 7F094100 44819000 */ mtc1 $at, $f18 +/* 0C8C34 7F094104 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0C8C38 7F094108 44813000 */ mtc1 $at, $f6 +/* 0C8C3C 7F09410C C7A00028 */ lwc1 $f0, 0x28($sp) +/* 0C8C40 7F094110 C4500030 */ lwc1 $f16, 0x30($v0) +/* 0C8C44 7F094114 240B0001 */ li $t3, 1 +/* 0C8C48 7F094118 46060203 */ div.s $f8, $f0, $f6 +/* 0C8C4C 7F09411C C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 0C8C50 7F094120 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C8C54 7F094124 8FAC0030 */ lw $t4, 0x30($sp) +/* 0C8C58 7F094128 46089281 */ sub.s $f10, $f18, $f8 +/* 0C8C5C 7F09412C 460A8102 */ mul.s $f4, $f16, $f10 +/* 0C8C60 7F094130 00000000 */ nop +/* 0C8C64 7F094134 46062482 */ mul.s $f18, $f4, $f6 +/* 0C8C68 7F094138 46009200 */ add.s $f8, $f18, $f0 +/* 0C8C6C 7F09413C 444AF800 */ cfc1 $t2, $31 +/* 0C8C70 7F094140 44CBF800 */ ctc1 $t3, $31 +/* 0C8C74 7F094144 00000000 */ nop +/* 0C8C78 7F094148 46004424 */ cvt.w.s $f16, $f8 +/* 0C8C7C 7F09414C 444BF800 */ cfc1 $t3, $31 +/* 0C8C80 7F094150 00000000 */ nop +/* 0C8C84 7F094154 316B0078 */ andi $t3, $t3, 0x78 +/* 0C8C88 7F094158 11600012 */ beqz $t3, .L7F0941A4 +/* 0C8C8C 7F09415C 00000000 */ nop +/* 0C8C90 7F094160 44818000 */ mtc1 $at, $f16 +/* 0C8C94 7F094164 240B0001 */ li $t3, 1 +/* 0C8C98 7F094168 46104401 */ sub.s $f16, $f8, $f16 +/* 0C8C9C 7F09416C 44CBF800 */ ctc1 $t3, $31 +/* 0C8CA0 7F094170 00000000 */ nop +/* 0C8CA4 7F094174 46008424 */ cvt.w.s $f16, $f16 +/* 0C8CA8 7F094178 444BF800 */ cfc1 $t3, $31 +/* 0C8CAC 7F09417C 00000000 */ nop +/* 0C8CB0 7F094180 316B0078 */ andi $t3, $t3, 0x78 +/* 0C8CB4 7F094184 15600005 */ bnez $t3, .L7F09419C +/* 0C8CB8 7F094188 00000000 */ nop +/* 0C8CBC 7F09418C 440B8000 */ mfc1 $t3, $f16 +/* 0C8CC0 7F094190 3C018000 */ lui $at, 0x8000 +/* 0C8CC4 7F094194 10000007 */ b .L7F0941B4 +/* 0C8CC8 7F094198 01615825 */ or $t3, $t3, $at +.L7F09419C: +/* 0C8CCC 7F09419C 10000005 */ b .L7F0941B4 +/* 0C8CD0 7F0941A0 240BFFFF */ li $t3, -1 +.L7F0941A4: +/* 0C8CD4 7F0941A4 440B8000 */ mfc1 $t3, $f16 +/* 0C8CD8 7F0941A8 00000000 */ nop +/* 0C8CDC 7F0941AC 0560FFFB */ bltz $t3, .L7F09419C +/* 0C8CE0 7F0941B0 00000000 */ nop +.L7F0941B4: +/* 0C8CE4 7F0941B4 44CAF800 */ ctc1 $t2, $31 +/* 0C8CE8 7F0941B8 0FC2E9CB */ jal get_ptr_currentdata +/* 0C8CEC 7F0941BC A18B0015 */ sb $t3, 0x15($t4) +/* 0C8CF0 7F0941C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C8CF4 7F0941C4 44815000 */ mtc1 $at, $f10 +/* 0C8CF8 7F0941C8 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0C8CFC 7F0941CC 44812000 */ mtc1 $at, $f4 +/* 0C8D00 7F0941D0 C7A00024 */ lwc1 $f0, 0x24($sp) +/* 0C8D04 7F0941D4 C4480034 */ lwc1 $f8, 0x34($v0) +/* 0C8D08 7F0941D8 240E0001 */ li $t6, 1 +/* 0C8D0C 7F0941DC 46040183 */ div.s $f6, $f0, $f4 +/* 0C8D10 7F0941E0 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0C8D14 7F0941E4 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C8D18 7F0941E8 8FAF0030 */ lw $t7, 0x30($sp) +/* 0C8D1C 7F0941EC 241800FF */ li $t8, 255 +/* 0C8D20 7F0941F0 46065481 */ sub.s $f18, $f10, $f6 +/* 0C8D24 7F0941F4 46124402 */ mul.s $f16, $f8, $f18 +/* 0C8D28 7F0941F8 00000000 */ nop +/* 0C8D2C 7F0941FC 46048282 */ mul.s $f10, $f16, $f4 +/* 0C8D30 7F094200 46005180 */ add.s $f6, $f10, $f0 +/* 0C8D34 7F094204 444DF800 */ cfc1 $t5, $31 +/* 0C8D38 7F094208 44CEF800 */ ctc1 $t6, $31 +/* 0C8D3C 7F09420C 00000000 */ nop +/* 0C8D40 7F094210 46003224 */ cvt.w.s $f8, $f6 +/* 0C8D44 7F094214 444EF800 */ cfc1 $t6, $31 +/* 0C8D48 7F094218 00000000 */ nop +/* 0C8D4C 7F09421C 31CE0078 */ andi $t6, $t6, 0x78 +/* 0C8D50 7F094220 11C00012 */ beqz $t6, .L7F09426C +/* 0C8D54 7F094224 00000000 */ nop +/* 0C8D58 7F094228 44814000 */ mtc1 $at, $f8 +/* 0C8D5C 7F09422C 240E0001 */ li $t6, 1 +/* 0C8D60 7F094230 46083201 */ sub.s $f8, $f6, $f8 +/* 0C8D64 7F094234 44CEF800 */ ctc1 $t6, $31 +/* 0C8D68 7F094238 00000000 */ nop +/* 0C8D6C 7F09423C 46004224 */ cvt.w.s $f8, $f8 +/* 0C8D70 7F094240 444EF800 */ cfc1 $t6, $31 +/* 0C8D74 7F094244 00000000 */ nop +/* 0C8D78 7F094248 31CE0078 */ andi $t6, $t6, 0x78 +/* 0C8D7C 7F09424C 15C00005 */ bnez $t6, .L7F094264 +/* 0C8D80 7F094250 00000000 */ nop +/* 0C8D84 7F094254 440E4000 */ mfc1 $t6, $f8 +/* 0C8D88 7F094258 3C018000 */ lui $at, 0x8000 +/* 0C8D8C 7F09425C 10000007 */ b .L7F09427C +/* 0C8D90 7F094260 01C17025 */ or $t6, $t6, $at +.L7F094264: +/* 0C8D94 7F094264 10000005 */ b .L7F09427C +/* 0C8D98 7F094268 240EFFFF */ li $t6, -1 +.L7F09426C: +/* 0C8D9C 7F09426C 440E4000 */ mfc1 $t6, $f8 +/* 0C8DA0 7F094270 00000000 */ nop +/* 0C8DA4 7F094274 05C0FFFB */ bltz $t6, .L7F094264 +/* 0C8DA8 7F094278 00000000 */ nop +.L7F09427C: +/* 0C8DAC 7F09427C A1EE0016 */ sb $t6, 0x16($t7) +/* 0C8DB0 7F094280 A1F80017 */ sb $t8, 0x17($t7) +/* 0C8DB4 7F094284 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C8DB8 7F094288 44CDF800 */ ctc1 $t5, $31 +/* 0C8DBC 7F09428C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0C8DC0 7F094290 03E00008 */ jr $ra +/* 0C8DC4 7F094294 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F094298(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80057538 +.word 0x46ffffcd /*32767.9*/ +glabel D_8005753C +.word 0xc6ffffcd /*-32767.9*/ + +.text +glabel sub_GAME_7F094298 +/* 0C8DC8 7F094298 3C018005 */ lui $at, %hi(D_80057538) +/* 0C8DCC 7F09429C C4207538 */ lwc1 $f0, %lo(D_80057538)($at) +/* 0C8DD0 7F0942A0 44802000 */ mtc1 $zero, $f4 +/* 0C8DD4 7F0942A4 3C018005 */ lui $at, %hi(D_8005753C) +/* 0C8DD8 7F0942A8 460C003C */ c.lt.s $f0, $f12 +/* 0C8DDC 7F0942AC 00000000 */ nop +/* 0C8DE0 7F0942B0 45000002 */ bc1f .L7F0942BC +/* 0C8DE4 7F0942B4 00000000 */ nop +/* 0C8DE8 7F0942B8 46000306 */ mov.s $f12, $f0 +.L7F0942BC: +/* 0C8DEC 7F0942BC C420753C */ lwc1 $f0, %lo(D_8005753C)($at) +/* 0C8DF0 7F0942C0 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0C8DF4 7F0942C4 4600603C */ c.lt.s $f12, $f0 +/* 0C8DF8 7F0942C8 00000000 */ nop +/* 0C8DFC 7F0942CC 45020003 */ bc1fl .L7F0942DC +/* 0C8E00 7F0942D0 4604603C */ c.lt.s $f12, $f4 +/* 0C8E04 7F0942D4 46000306 */ mov.s $f12, $f0 +/* 0C8E08 7F0942D8 4604603C */ c.lt.s $f12, $f4 +.L7F0942DC: +/* 0C8E0C 7F0942DC 00000000 */ nop +/* 0C8E10 7F0942E0 4502002C */ bc1fl .L7F094394 +/* 0C8E14 7F0942E4 44818000 */ mtc1 $at, $f16 +/* 0C8E18 7F0942E8 3C01C780 */ li $at, 0xC7800000 # -65536.000000 +/* 0C8E1C 7F0942EC 44813000 */ mtc1 $at, $f6 +/* 0C8E20 7F0942F0 24030001 */ li $v1, 1 +/* 0C8E24 7F0942F4 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C8E28 7F0942F8 46066202 */ mul.s $f8, $f12, $f6 +/* 0C8E2C 7F0942FC 444EF800 */ cfc1 $t6, $31 +/* 0C8E30 7F094300 44C3F800 */ ctc1 $v1, $31 +/* 0C8E34 7F094304 00000000 */ nop +/* 0C8E38 7F094308 460042A4 */ cvt.w.s $f10, $f8 +/* 0C8E3C 7F09430C 4443F800 */ cfc1 $v1, $31 +/* 0C8E40 7F094310 00000000 */ nop +/* 0C8E44 7F094314 30630078 */ andi $v1, $v1, 0x78 +/* 0C8E48 7F094318 50600017 */ beql $v1, $zero, .L7F094378 +/* 0C8E4C 7F09431C 44035000 */ mfc1 $v1, $f10 +/* 0C8E50 7F094320 44815000 */ mtc1 $at, $f10 +/* 0C8E54 7F094324 24030001 */ li $v1, 1 +/* 0C8E58 7F094328 460A4281 */ sub.s $f10, $f8, $f10 +/* 0C8E5C 7F09432C 44C3F800 */ ctc1 $v1, $31 +/* 0C8E60 7F094330 00000000 */ nop +/* 0C8E64 7F094334 460052A4 */ cvt.w.s $f10, $f10 +/* 0C8E68 7F094338 4443F800 */ cfc1 $v1, $31 +/* 0C8E6C 7F09433C 00000000 */ nop +/* 0C8E70 7F094340 30630078 */ andi $v1, $v1, 0x78 +/* 0C8E74 7F094344 54600008 */ bnezl $v1, .L7F094368 +/* 0C8E78 7F094348 2403FFFF */ li $v1, -1 +/* 0C8E7C 7F09434C 44035000 */ mfc1 $v1, $f10 +/* 0C8E80 7F094350 3C018000 */ lui $at, 0x8000 +/* 0C8E84 7F094354 44CEF800 */ ctc1 $t6, $31 +/* 0C8E88 7F094358 00611825 */ or $v1, $v1, $at +/* 0C8E8C 7F09435C 03E00008 */ jr $ra +/* 0C8E90 7F094360 00031023 */ negu $v0, $v1 + +/* 0C8E94 7F094364 2403FFFF */ li $v1, -1 +.L7F094368: +/* 0C8E98 7F094368 44CEF800 */ ctc1 $t6, $31 +/* 0C8E9C 7F09436C 03E00008 */ jr $ra +/* 0C8EA0 7F094370 00031023 */ negu $v0, $v1 + +/* 0C8EA4 7F094374 44035000 */ mfc1 $v1, $f10 +.L7F094378: +/* 0C8EA8 7F094378 00000000 */ nop +/* 0C8EAC 7F09437C 0462FFFA */ bltzl $v1, .L7F094368 +/* 0C8EB0 7F094380 2403FFFF */ li $v1, -1 +/* 0C8EB4 7F094384 44CEF800 */ ctc1 $t6, $31 +/* 0C8EB8 7F094388 03E00008 */ jr $ra +/* 0C8EBC 7F09438C 00031023 */ negu $v0, $v1 + +/* 0C8EC0 7F094390 44818000 */ mtc1 $at, $f16 +.L7F094394: +/* 0C8EC4 7F094394 24030001 */ li $v1, 1 +/* 0C8EC8 7F094398 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0C8ECC 7F09439C 460C8482 */ mul.s $f18, $f16, $f12 +/* 0C8ED0 7F0943A0 444FF800 */ cfc1 $t7, $31 +/* 0C8ED4 7F0943A4 44C3F800 */ ctc1 $v1, $31 +/* 0C8ED8 7F0943A8 00000000 */ nop +/* 0C8EDC 7F0943AC 46009124 */ cvt.w.s $f4, $f18 +/* 0C8EE0 7F0943B0 4443F800 */ cfc1 $v1, $31 +/* 0C8EE4 7F0943B4 00000000 */ nop +/* 0C8EE8 7F0943B8 30630078 */ andi $v1, $v1, 0x78 +/* 0C8EEC 7F0943BC 50600013 */ beql $v1, $zero, .L7F09440C +/* 0C8EF0 7F0943C0 44032000 */ mfc1 $v1, $f4 +/* 0C8EF4 7F0943C4 44812000 */ mtc1 $at, $f4 +/* 0C8EF8 7F0943C8 24030001 */ li $v1, 1 +/* 0C8EFC 7F0943CC 46049101 */ sub.s $f4, $f18, $f4 +/* 0C8F00 7F0943D0 44C3F800 */ ctc1 $v1, $31 +/* 0C8F04 7F0943D4 00000000 */ nop +/* 0C8F08 7F0943D8 46002124 */ cvt.w.s $f4, $f4 +/* 0C8F0C 7F0943DC 4443F800 */ cfc1 $v1, $31 +/* 0C8F10 7F0943E0 00000000 */ nop +/* 0C8F14 7F0943E4 30630078 */ andi $v1, $v1, 0x78 +/* 0C8F18 7F0943E8 14600005 */ bnez $v1, .L7F094400 +/* 0C8F1C 7F0943EC 00000000 */ nop +/* 0C8F20 7F0943F0 44032000 */ mfc1 $v1, $f4 +/* 0C8F24 7F0943F4 3C018000 */ lui $at, 0x8000 +/* 0C8F28 7F0943F8 10000007 */ b .L7F094418 +/* 0C8F2C 7F0943FC 00611825 */ or $v1, $v1, $at +.L7F094400: +/* 0C8F30 7F094400 10000005 */ b .L7F094418 +/* 0C8F34 7F094404 2403FFFF */ li $v1, -1 +/* 0C8F38 7F094408 44032000 */ mfc1 $v1, $f4 +.L7F09440C: +/* 0C8F3C 7F09440C 00000000 */ nop +/* 0C8F40 7F094410 0460FFFB */ bltz $v1, .L7F094400 +/* 0C8F44 7F094414 00000000 */ nop +.L7F094418: +/* 0C8F48 7F094418 44CFF800 */ ctc1 $t7, $31 +/* 0C8F4C 7F09441C 00000000 */ nop +/* 0C8F50 7F094420 00000000 */ nop +/* 0C8F54 7F094424 03E00008 */ jr $ra +/* 0C8F58 7F094428 00601025 */ move $v0, $v1 +) +#endif + + + + + +void store_stagenum_to_copyof_stagenum(s32 stagenum) { + copyof_stagenum = stagenum; +} + +void sub_GAME_7F094438(void) +{ + D_8003FD94[0] = (clock_timer + D_8003FD94[0]); + if ( D_8003FD94[0] > 4096.0f) + { + D_8003FD94[0] -= 4096.0f; + } +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F094488(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80057540 +.word 0x3dcccccd /*0.1*/ +/*D:80057544*/ +glabel jpt_80057544 +.word .L7F094A48 +.word .L7F095284 +.word .L7F0953CC +.word .L7F094B4C +.word .L7F095514 +.word .L7F094E60 +.word .L7F0957A4 +.word .L7F0951BC +.word .L7F09565C +.word .L7F0957A4 +.word .L7F094D5C +.word .L7F0950F4 +.word .L7F094C50 +.word .L7F09502C +.word .L7F094F64 +.word .L7F094A40 + +glabel D_80057584 +.word 0x477fff00 /*65535.0*/ +glabel D_80057588 +.word 0x449fe000 /*1279.0*/ +glabel D_8005758C +.word 0x446fc000 /*959.0*/ + +/*D:80057590*/ +glabel jpt_80057590 +.word .L7F095E14 +.word .L7F09643C +.word .L7F09652C +.word .L7F096094 +.word .L7F09661C +.word .L7F0961CC +.word .L7F096E20 +.word .L7F096C98 +.word .L7F09670C +.word .L7F096E20 +.word .L7F096304 +.word .L7F096B10 +.word .L7F095F58 +.word .L7F096984 +.word .L7F0967FC +.word .L7F095E1C + +glabel D_800575D0 +.word 0x477fff00 /*65535.0*/ +glabel D_800575D4 +.word 0x46fffe00 /*32767.0*/ +glabel D_800575D8 +.word 0x46fffe00 /*32767.0*/ +glabel D_800575DC +.word 0x43ff8000 /*511.0*/ +glabel D_800575E0 +.word 0xc57fa000 /*-4090.0*/ +glabel D_800575E4 +.word 0xc57fa000 /*-4090.0*/ +.text +glabel sub_GAME_7F094488 +/* 0C8FB8 7F094488 27BDF950 */ addiu $sp, $sp, -0x6b0 +/* 0C8FBC 7F09448C AFBF004C */ sw $ra, 0x4c($sp) +/* 0C8FC0 7F094490 AFB10048 */ sw $s1, 0x48($sp) +/* 0C8FC4 7F094494 AFB00044 */ sw $s0, 0x44($sp) +/* 0C8FC8 7F094498 F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 0C8FCC 7F09449C F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0C8FD0 7F0944A0 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0C8FD4 7F0944A4 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0C8FD8 7F0944A8 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0C8FDC 7F0944AC 0FC2D20F */ jal get_room_data_float1 +/* 0C8FE0 7F0944B0 AFA406B0 */ sw $a0, 0x6b0($sp) +/* 0C8FE4 7F0944B4 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0C8FE8 7F0944B8 44812000 */ mtc1 $at, $f4 +/* 0C8FEC 7F0944BC AFA00430 */ sw $zero, 0x430($sp) +/* 0C8FF0 7F0944C0 0FC2E9CB */ jal get_ptr_currentdata +/* 0C8FF4 7F0944C4 46040603 */ div.s $f24, $f0, $f4 +/* 0C8FF8 7F0944C8 0FC2E9CB */ jal get_ptr_currentdata +/* 0C8FFC 7F0944CC 00408025 */ move $s0, $v0 +/* 0C9000 7F0944D0 904E000B */ lbu $t6, 0xb($v0) +/* 0C9004 7F0944D4 8FA406B0 */ lw $a0, 0x6b0($sp) +/* 0C9008 7F0944D8 55C0007B */ bnezl $t6, .L7F0946C8 +/* 0C900C 7F0944DC 92050008 */ lbu $a1, 8($s0) +/* 0C9010 7F0944E0 0FC26919 */ jal get_num_players +/* 0C9014 7F0944E4 00000000 */ nop +/* 0C9018 7F0944E8 24010001 */ li $at, 1 +/* 0C901C 7F0944EC 1441003B */ bne $v0, $at, .L7F0945DC +/* 0C9020 7F0944F0 3C088008 */ lui $t0, %hi(pPlayer) +/* 0C9024 7F0944F4 8FAF06B0 */ lw $t7, 0x6b0($sp) +/* 0C9028 7F0944F8 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 +/* 0C902C 7F0944FC 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 +/* 0C9030 7F094500 25F80008 */ addiu $t8, $t7, 8 +/* 0C9034 7F094504 AFB806B0 */ sw $t8, 0x6b0($sp) +/* 0C9038 7F094508 3C0A0030 */ lui $t2, 0x30 +/* 0C903C 7F09450C ADEA0004 */ sw $t2, 4($t7) +/* 0C9040 7F094510 ADF90000 */ sw $t9, ($t7) +/* 0C9044 7F094514 9207000A */ lbu $a3, 0xa($s0) +/* 0C9048 7F094518 92060009 */ lbu $a2, 9($s0) +/* 0C904C 7F09451C 92050008 */ lbu $a1, 8($s0) +/* 0C9050 7F094520 0C0011B4 */ jal set_setfillcolor +/* 0C9054 7F094524 8FA406B0 */ lw $a0, 0x6b0($sp) +/* 0C9058 7F094528 244B0008 */ addiu $t3, $v0, 8 +/* 0C905C 7F09452C AFAB06B0 */ sw $t3, 0x6b0($sp) +/* 0C9060 7F094530 0C001127 */ jal get_video2_settings_width +/* 0C9064 7F094534 00408825 */ move $s1, $v0 +/* 0C9068 7F094538 0C001145 */ jal get_video2_settings_ulx +/* 0C906C 7F09453C A7A2007A */ sh $v0, 0x7a($sp) +/* 0C9070 7F094540 0C001149 */ jal get_video2_settings_uly +/* 0C9074 7F094544 A7A2007C */ sh $v0, 0x7c($sp) +/* 0C9078 7F094548 00028400 */ sll $s0, $v0, 0x10 +/* 0C907C 7F09454C 00106403 */ sra $t4, $s0, 0x10 +/* 0C9080 7F094550 0C00112B */ jal get_video2_settings_height +/* 0C9084 7F094554 01808025 */ move $s0, $t4 +/* 0C9088 7F094558 87AD007C */ lh $t5, 0x7c($sp) +/* 0C908C 7F09455C 87AE007A */ lh $t6, 0x7a($sp) +/* 0C9090 7F094560 00505821 */ addu $t3, $v0, $s0 +/* 0C9094 7F094564 256CFFFF */ addiu $t4, $t3, -1 +/* 0C9098 7F094568 01AE7821 */ addu $t7, $t5, $t6 +/* 0C909C 7F09456C 25F8FFFF */ addiu $t8, $t7, -1 +/* 0C90A0 7F094570 318D03FF */ andi $t5, $t4, 0x3ff +/* 0C90A4 7F094574 000D7080 */ sll $t6, $t5, 2 +/* 0C90A8 7F094578 331903FF */ andi $t9, $t8, 0x3ff +/* 0C90AC 7F09457C 3C01F600 */ lui $at, 0xf600 +/* 0C90B0 7F094580 01C17825 */ or $t7, $t6, $at +/* 0C90B4 7F094584 00195380 */ sll $t2, $t9, 0xe +/* 0C90B8 7F094588 01EAC025 */ or $t8, $t7, $t2 +/* 0C90BC 7F09458C 0C001145 */ jal get_video2_settings_ulx +/* 0C90C0 7F094590 AE380000 */ sw $t8, ($s1) +/* 0C90C4 7F094594 00028400 */ sll $s0, $v0, 0x10 +/* 0C90C8 7F094598 0010CC03 */ sra $t9, $s0, 0x10 +/* 0C90CC 7F09459C 0C001149 */ jal get_video2_settings_uly +/* 0C90D0 7F0945A0 03208025 */ move $s0, $t9 +/* 0C90D4 7F0945A4 304B03FF */ andi $t3, $v0, 0x3ff +/* 0C90D8 7F0945A8 320D03FF */ andi $t5, $s0, 0x3ff +/* 0C90DC 7F0945AC 000D7380 */ sll $t6, $t5, 0xe +/* 0C90E0 7F0945B0 000B6080 */ sll $t4, $t3, 2 +/* 0C90E4 7F0945B4 018E7825 */ or $t7, $t4, $t6 +/* 0C90E8 7F0945B8 AE2F0004 */ sw $t7, 4($s1) +/* 0C90EC 7F0945BC 8FAA06B0 */ lw $t2, 0x6b0($sp) +/* 0C90F0 7F0945C0 3C19E700 */ lui $t9, 0xe700 +/* 0C90F4 7F0945C4 25580008 */ addiu $t8, $t2, 8 +/* 0C90F8 7F0945C8 AFB806B0 */ sw $t8, 0x6b0($sp) +/* 0C90FC 7F0945CC AD400004 */ sw $zero, 4($t2) +/* 0C9100 7F0945D0 AD590000 */ sw $t9, ($t2) +/* 0C9104 7F0945D4 10000B62 */ b .L7F097360 +/* 0C9108 7F0945D8 8FA206B0 */ lw $v0, 0x6b0($sp) +.L7F0945DC: +/* 0C910C 7F0945DC 8FAB06B0 */ lw $t3, 0x6b0($sp) +/* 0C9110 7F0945E0 3C09E700 */ lui $t1, 0xe700 +/* 0C9114 7F0945E4 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00 +/* 0C9118 7F0945E8 256D0008 */ addiu $t5, $t3, 8 +/* 0C911C 7F0945EC AFAD06B0 */ sw $t5, 0x6b0($sp) +/* 0C9120 7F0945F0 AD600004 */ sw $zero, 4($t3) +/* 0C9124 7F0945F4 AD690000 */ sw $t1, ($t3) +/* 0C9128 7F0945F8 8FAC06B0 */ lw $t4, 0x6b0($sp) +/* 0C912C 7F0945FC 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402 +/* 0C9130 7F094600 3C0A0030 */ lui $t2, 0x30 +/* 0C9134 7F094604 258E0008 */ addiu $t6, $t4, 8 +/* 0C9138 7F094608 AFAE06B0 */ sw $t6, 0x6b0($sp) +/* 0C913C 7F09460C AD8A0004 */ sw $t2, 4($t4) +/* 0C9140 7F094610 AD8F0000 */ sw $t7, ($t4) +/* 0C9144 7F094614 8FB806B0 */ lw $t8, 0x6b0($sp) +/* 0C9148 7F094618 3C0BB900 */ lui $t3, (0xB900031D >> 16) # lui $t3, 0xb900 +/* 0C914C 7F09461C 356B031D */ ori $t3, (0xB900031D & 0xFFFF) # ori $t3, $t3, 0x31d +/* 0C9150 7F094620 27190008 */ addiu $t9, $t8, 8 +/* 0C9154 7F094624 AFB906B0 */ sw $t9, 0x6b0($sp) +/* 0C9158 7F094628 AF000004 */ sw $zero, 4($t8) +/* 0C915C 7F09462C AF0B0000 */ sw $t3, ($t8) +/* 0C9160 7F094630 8FA606B0 */ lw $a2, 0x6b0($sp) +/* 0C9164 7F094634 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0C9168 7F094638 8D020000 */ lw $v0, ($t0) +/* 0C916C 7F09463C 24CC0008 */ addiu $t4, $a2, 8 +/* 0C9170 7F094640 AFAC06B0 */ sw $t4, 0x6b0($sp) +/* 0C9174 7F094644 844E07F4 */ lh $t6, 0x7f4($v0) +/* 0C9178 7F094648 844F07F0 */ lh $t7, 0x7f0($v0) +/* 0C917C 7F09464C 844C07F6 */ lh $t4, 0x7f6($v0) +/* 0C9180 7F094650 3C01F600 */ lui $at, 0xf600 +/* 0C9184 7F094654 01CF5021 */ addu $t2, $t6, $t7 +/* 0C9188 7F094658 844E07F2 */ lh $t6, 0x7f2($v0) +/* 0C918C 7F09465C 2558FFFF */ addiu $t8, $t2, -1 +/* 0C9190 7F094660 331903FF */ andi $t9, $t8, 0x3ff +/* 0C9194 7F094664 018E7821 */ addu $t7, $t4, $t6 +/* 0C9198 7F094668 25EAFFFF */ addiu $t2, $t7, -1 +/* 0C919C 7F09466C 00195B80 */ sll $t3, $t9, 0xe +/* 0C91A0 7F094670 315803FF */ andi $t8, $t2, 0x3ff +/* 0C91A4 7F094674 0018C880 */ sll $t9, $t8, 2 +/* 0C91A8 7F094678 01616825 */ or $t5, $t3, $at +/* 0C91AC 7F09467C 01B95825 */ or $t3, $t5, $t9 +/* 0C91B0 7F094680 ACCB0000 */ sw $t3, ($a2) +/* 0C91B4 7F094684 8D020000 */ lw $v0, ($t0) +/* 0C91B8 7F094688 844C07F4 */ lh $t4, 0x7f4($v0) +/* 0C91BC 7F09468C 844A07F6 */ lh $t2, 0x7f6($v0) +/* 0C91C0 7F094690 318E03FF */ andi $t6, $t4, 0x3ff +/* 0C91C4 7F094694 315803FF */ andi $t8, $t2, 0x3ff +/* 0C91C8 7F094698 00186880 */ sll $t5, $t8, 2 +/* 0C91CC 7F09469C 000E7B80 */ sll $t7, $t6, 0xe +/* 0C91D0 7F0946A0 01EDC825 */ or $t9, $t7, $t5 +/* 0C91D4 7F0946A4 ACD90004 */ sw $t9, 4($a2) +/* 0C91D8 7F0946A8 8FAB06B0 */ lw $t3, 0x6b0($sp) +/* 0C91DC 7F0946AC 256C0008 */ addiu $t4, $t3, 8 +/* 0C91E0 7F0946B0 AFAC06B0 */ sw $t4, 0x6b0($sp) +/* 0C91E4 7F0946B4 AD600004 */ sw $zero, 4($t3) +/* 0C91E8 7F0946B8 AD690000 */ sw $t1, ($t3) +/* 0C91EC 7F0946BC 10000B28 */ b .L7F097360 +/* 0C91F0 7F0946C0 8FA206B0 */ lw $v0, 0x6b0($sp) +/* 0C91F4 7F0946C4 92050008 */ lbu $a1, 8($s0) +.L7F0946C8: +/* 0C91F8 7F0946C8 92060009 */ lbu $a2, 9($s0) +/* 0C91FC 7F0946CC 0C0011B4 */ jal set_setfillcolor +/* 0C9200 7F0946D0 9207000A */ lbu $a3, 0xa($s0) +/* 0C9204 7F0946D4 44806000 */ mtc1 $zero, $f12 +/* 0C9208 7F0946D8 27B106A4 */ addiu $s1, $sp, 0x6a4 +/* 0C920C 7F0946DC AFA206B0 */ sw $v0, 0x6b0($sp) +/* 0C9210 7F0946E0 02203025 */ move $a2, $s1 +/* 0C9214 7F0946E4 0FC24E20 */ jal sub_GAME_7F093880 +/* 0C9218 7F0946E8 46006386 */ mov.s $f14, $f12 +/* 0C921C 7F0946EC 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0C9220 7F0946F0 00000000 */ nop +/* 0C9224 7F0946F4 3C018005 */ lui $at, %hi(D_80057540) +/* 0C9228 7F0946F8 C43C7540 */ lwc1 $f28, %lo(D_80057540)($at) +/* 0C922C 7F0946FC 44807000 */ mtc1 $zero, $f14 +/* 0C9230 7F094700 27A60698 */ addiu $a2, $sp, 0x698 +/* 0C9234 7F094704 0FC24E20 */ jal sub_GAME_7F093880 +/* 0C9238 7F094708 461C0301 */ sub.s $f12, $f0, $f28 +/* 0C923C 7F09470C 0FC1E12D */ jal getPlayer_c_screenheight +/* 0C9240 7F094710 00000000 */ nop +/* 0C9244 7F094714 44806000 */ mtc1 $zero, $f12 +/* 0C9248 7F094718 461C0381 */ sub.s $f14, $f0, $f28 +/* 0C924C 7F09471C 0FC24E20 */ jal sub_GAME_7F093880 +/* 0C9250 7F094720 27A6068C */ addiu $a2, $sp, 0x68c +/* 0C9254 7F094724 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0C9258 7F094728 00000000 */ nop +/* 0C925C 7F09472C 0FC1E12D */ jal getPlayer_c_screenheight +/* 0C9260 7F094730 46000586 */ mov.s $f22, $f0 +/* 0C9264 7F094734 461CB301 */ sub.s $f12, $f22, $f28 +/* 0C9268 7F094738 27A60680 */ addiu $a2, $sp, 0x680 +/* 0C926C 7F09473C 0FC24E20 */ jal sub_GAME_7F093880 +/* 0C9270 7F094740 461C0381 */ sub.s $f14, $f0, $f28 +/* 0C9274 7F094744 02202025 */ move $a0, $s1 +/* 0C9278 7F094748 27A50644 */ addiu $a1, $sp, 0x644 +/* 0C927C 7F09474C 0FC24E3F */ jal sub_GAME_7F0938FC +/* 0C9280 7F094750 27A6058C */ addiu $a2, $sp, 0x58c +/* 0C9284 7F094754 AFA20538 */ sw $v0, 0x538($sp) +/* 0C9288 7F094758 27A40698 */ addiu $a0, $sp, 0x698 +/* 0C928C 7F09475C 27A50638 */ addiu $a1, $sp, 0x638 +/* 0C9290 7F094760 0FC24E3F */ jal sub_GAME_7F0938FC +/* 0C9294 7F094764 27A60588 */ addiu $a2, $sp, 0x588 +/* 0C9298 7F094768 AFA20534 */ sw $v0, 0x534($sp) +/* 0C929C 7F09476C 27A4068C */ addiu $a0, $sp, 0x68c +/* 0C92A0 7F094770 27A5062C */ addiu $a1, $sp, 0x62c +/* 0C92A4 7F094774 0FC24E3F */ jal sub_GAME_7F0938FC +/* 0C92A8 7F094778 27A60584 */ addiu $a2, $sp, 0x584 +/* 0C92AC 7F09477C AFA20530 */ sw $v0, 0x530($sp) +/* 0C92B0 7F094780 27A40680 */ addiu $a0, $sp, 0x680 +/* 0C92B4 7F094784 27A50620 */ addiu $a1, $sp, 0x620 +/* 0C92B8 7F094788 0FC24E3F */ jal sub_GAME_7F0938FC +/* 0C92BC 7F09478C 27A60580 */ addiu $a2, $sp, 0x580 +/* 0C92C0 7F094790 AFA2052C */ sw $v0, 0x52c($sp) +/* 0C92C4 7F094794 02202025 */ move $a0, $s1 +/* 0C92C8 7F094798 27A505E4 */ addiu $a1, $sp, 0x5e4 +/* 0C92CC 7F09479C 0FC24E9E */ jal sub_GAME_7F093A78 +/* 0C92D0 7F0947A0 27A6056C */ addiu $a2, $sp, 0x56c +/* 0C92D4 7F0947A4 27A40698 */ addiu $a0, $sp, 0x698 +/* 0C92D8 7F0947A8 27A505D8 */ addiu $a1, $sp, 0x5d8 +/* 0C92DC 7F0947AC 0FC24E9E */ jal sub_GAME_7F093A78 +/* 0C92E0 7F0947B0 27A60568 */ addiu $a2, $sp, 0x568 +/* 0C92E4 7F0947B4 27A4068C */ addiu $a0, $sp, 0x68c +/* 0C92E8 7F0947B8 27A505CC */ addiu $a1, $sp, 0x5cc +/* 0C92EC 7F0947BC 0FC24E9E */ jal sub_GAME_7F093A78 +/* 0C92F0 7F0947C0 27A60564 */ addiu $a2, $sp, 0x564 +/* 0C92F4 7F0947C4 27A40680 */ addiu $a0, $sp, 0x680 +/* 0C92F8 7F0947C8 27A505C0 */ addiu $a1, $sp, 0x5c0 +/* 0C92FC 7F0947CC 0FC24E9E */ jal sub_GAME_7F093A78 +/* 0C9300 7F0947D0 27A60560 */ addiu $a2, $sp, 0x560 +/* 0C9304 7F0947D4 8FAE0538 */ lw $t6, 0x538($sp) +/* 0C9308 7F0947D8 8FAA0530 */ lw $t2, 0x530($sp) +/* 0C930C 7F0947DC 51CA001F */ beql $t6, $t2, .L7F09485C +/* 0C9310 7F0947E0 44802000 */ mtc1 $zero, $f4 +/* 0C9314 7F0947E4 0FC1E135 */ jal getPlayer_c_screentop +/* 0C9318 7F0947E8 00000000 */ nop +/* 0C931C 7F0947EC 0FC1E12D */ jal getPlayer_c_screenheight +/* 0C9320 7F0947F0 46000586 */ mov.s $f22, $f0 +/* 0C9324 7F0947F4 C7A206A8 */ lwc1 $f2, 0x6a8($sp) +/* 0C9328 7F0947F8 C7B00690 */ lwc1 $f16, 0x690($sp) +/* 0C932C 7F0947FC 27B0065C */ addiu $s0, $sp, 0x65c +/* 0C9330 7F094800 44806000 */ mtc1 $zero, $f12 +/* 0C9334 7F094804 46101181 */ sub.s $f6, $f2, $f16 +/* 0C9338 7F094808 02003025 */ move $a2, $s0 +/* 0C933C 7F09480C 46061203 */ div.s $f8, $f2, $f6 +/* 0C9340 7F094810 46004282 */ mul.s $f10, $f8, $f0 +/* 0C9344 7F094814 46165380 */ add.s $f14, $f10, $f22 +/* 0C9348 7F094818 0FC24E20 */ jal sub_GAME_7F093880 +/* 0C934C 7F09481C E7AE054C */ swc1 $f14, 0x54c($sp) +/* 0C9350 7F094820 02202025 */ move $a0, $s1 +/* 0C9354 7F094824 27A5068C */ addiu $a1, $sp, 0x68c +/* 0C9358 7F094828 0FC24EFF */ jal sub_GAME_7F093BFC +/* 0C935C 7F09482C 02003025 */ move $a2, $s0 +/* 0C9360 7F094830 02002025 */ move $a0, $s0 +/* 0C9364 7F094834 27A505FC */ addiu $a1, $sp, 0x5fc +/* 0C9368 7F094838 0FC24E3F */ jal sub_GAME_7F0938FC +/* 0C936C 7F09483C 27A60574 */ addiu $a2, $sp, 0x574 +/* 0C9370 7F094840 02002025 */ move $a0, $s0 +/* 0C9374 7F094844 27A5059C */ addiu $a1, $sp, 0x59c +/* 0C9378 7F094848 0FC24E9E */ jal sub_GAME_7F093A78 +/* 0C937C 7F09484C 27A60554 */ addiu $a2, $sp, 0x554 +/* 0C9380 7F094850 10000005 */ b .L7F094868 +/* 0C9384 7F094854 8FB80534 */ lw $t8, 0x534($sp) +/* 0C9388 7F094858 44802000 */ mtc1 $zero, $f4 +.L7F09485C: +/* 0C938C 7F09485C 00000000 */ nop +/* 0C9390 7F094860 E7A4054C */ swc1 $f4, 0x54c($sp) +/* 0C9394 7F094864 8FB80534 */ lw $t8, 0x534($sp) +.L7F094868: +/* 0C9398 7F094868 8FAF052C */ lw $t7, 0x52c($sp) +/* 0C939C 7F09486C 530F0021 */ beql $t8, $t7, .L7F0948F4 +/* 0C93A0 7F094870 44804000 */ mtc1 $zero, $f8 +/* 0C93A4 7F094874 0FC1E135 */ jal getPlayer_c_screentop +/* 0C93A8 7F094878 00000000 */ nop +/* 0C93AC 7F09487C 0FC1E12D */ jal getPlayer_c_screenheight +/* 0C93B0 7F094880 46000586 */ mov.s $f22, $f0 +/* 0C93B4 7F094884 C7B0069C */ lwc1 $f16, 0x69c($sp) +/* 0C93B8 7F094888 C7A60684 */ lwc1 $f6, 0x684($sp) +/* 0C93BC 7F09488C 46068201 */ sub.s $f8, $f16, $f6 +/* 0C93C0 7F094890 46088283 */ div.s $f10, $f16, $f8 +/* 0C93C4 7F094894 46005102 */ mul.s $f4, $f10, $f0 +/* 0C93C8 7F094898 46162180 */ add.s $f6, $f4, $f22 +/* 0C93CC 7F09489C 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0C93D0 7F0948A0 E7A60548 */ swc1 $f6, 0x548($sp) +/* 0C93D4 7F0948A4 27B00650 */ addiu $s0, $sp, 0x650 +/* 0C93D8 7F0948A8 02003025 */ move $a2, $s0 +/* 0C93DC 7F0948AC 461C0301 */ sub.s $f12, $f0, $f28 +/* 0C93E0 7F0948B0 0FC24E20 */ jal sub_GAME_7F093880 +/* 0C93E4 7F0948B4 C7AE0548 */ lwc1 $f14, 0x548($sp) +/* 0C93E8 7F0948B8 27A40698 */ addiu $a0, $sp, 0x698 +/* 0C93EC 7F0948BC 27A50680 */ addiu $a1, $sp, 0x680 +/* 0C93F0 7F0948C0 0FC24EFF */ jal sub_GAME_7F093BFC +/* 0C93F4 7F0948C4 02003025 */ move $a2, $s0 +/* 0C93F8 7F0948C8 02002025 */ move $a0, $s0 +/* 0C93FC 7F0948CC 27A505F0 */ addiu $a1, $sp, 0x5f0 +/* 0C9400 7F0948D0 0FC24E3F */ jal sub_GAME_7F0938FC +/* 0C9404 7F0948D4 27A60570 */ addiu $a2, $sp, 0x570 +/* 0C9408 7F0948D8 02002025 */ move $a0, $s0 +/* 0C940C 7F0948DC 27A50590 */ addiu $a1, $sp, 0x590 +/* 0C9410 7F0948E0 0FC24E9E */ jal sub_GAME_7F093A78 +/* 0C9414 7F0948E4 27A60550 */ addiu $a2, $sp, 0x550 +/* 0C9418 7F0948E8 10000005 */ b .L7F094900 +/* 0C941C 7F0948EC 8FAD0538 */ lw $t5, 0x538($sp) +/* 0C9420 7F0948F0 44804000 */ mtc1 $zero, $f8 +.L7F0948F4: +/* 0C9424 7F0948F4 00000000 */ nop +/* 0C9428 7F0948F8 E7A80548 */ swc1 $f8, 0x548($sp) +/* 0C942C 7F0948FC 8FAD0538 */ lw $t5, 0x538($sp) +.L7F094900: +/* 0C9430 7F094900 8FB90534 */ lw $t9, 0x534($sp) +/* 0C9434 7F094904 51B9001C */ beql $t5, $t9, .L7F094978 +/* 0C9438 7F094908 8FAB0530 */ lw $t3, 0x530($sp) +/* 0C943C 7F09490C 0FC1E131 */ jal getPlayer_c_screenleft +/* 0C9440 7F094910 00000000 */ nop +/* 0C9444 7F094914 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0C9448 7F094918 46000586 */ mov.s $f22, $f0 +/* 0C944C 7F09491C C7A206A8 */ lwc1 $f2, 0x6a8($sp) +/* 0C9450 7F094920 C7B0069C */ lwc1 $f16, 0x69c($sp) +/* 0C9454 7F094924 27B00674 */ addiu $s0, $sp, 0x674 +/* 0C9458 7F094928 44807000 */ mtc1 $zero, $f14 +/* 0C945C 7F09492C 46101281 */ sub.s $f10, $f2, $f16 +/* 0C9460 7F094930 02003025 */ move $a2, $s0 +/* 0C9464 7F094934 460A1103 */ div.s $f4, $f2, $f10 +/* 0C9468 7F094938 46002182 */ mul.s $f6, $f4, $f0 +/* 0C946C 7F09493C 0FC24E20 */ jal sub_GAME_7F093880 +/* 0C9470 7F094940 46163300 */ add.s $f12, $f6, $f22 +/* 0C9474 7F094944 02202025 */ move $a0, $s1 +/* 0C9478 7F094948 27A50698 */ addiu $a1, $sp, 0x698 +/* 0C947C 7F09494C 0FC24EFF */ jal sub_GAME_7F093BFC +/* 0C9480 7F094950 02003025 */ move $a2, $s0 +/* 0C9484 7F094954 02002025 */ move $a0, $s0 +/* 0C9488 7F094958 27A50614 */ addiu $a1, $sp, 0x614 +/* 0C948C 7F09495C 0FC24E3F */ jal sub_GAME_7F0938FC +/* 0C9490 7F094960 27A6057C */ addiu $a2, $sp, 0x57c +/* 0C9494 7F094964 02002025 */ move $a0, $s0 +/* 0C9498 7F094968 27A505B4 */ addiu $a1, $sp, 0x5b4 +/* 0C949C 7F09496C 0FC24E9E */ jal sub_GAME_7F093A78 +/* 0C94A0 7F094970 27A6055C */ addiu $a2, $sp, 0x55c +/* 0C94A4 7F094974 8FAB0530 */ lw $t3, 0x530($sp) +.L7F094978: +/* 0C94A8 7F094978 8FAC052C */ lw $t4, 0x52c($sp) +/* 0C94AC 7F09497C 516C001E */ beql $t3, $t4, .L7F0949F8 +/* 0C94B0 7F094980 8FAE0538 */ lw $t6, 0x538($sp) +/* 0C94B4 7F094984 0FC1E131 */ jal getPlayer_c_screenleft +/* 0C94B8 7F094988 00000000 */ nop +/* 0C94BC 7F09498C 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0C94C0 7F094990 46000586 */ mov.s $f22, $f0 +/* 0C94C4 7F094994 C7B00690 */ lwc1 $f16, 0x690($sp) +/* 0C94C8 7F094998 C7A80684 */ lwc1 $f8, 0x684($sp) +/* 0C94CC 7F09499C 46088281 */ sub.s $f10, $f16, $f8 +/* 0C94D0 7F0949A0 460A8103 */ div.s $f4, $f16, $f10 +/* 0C94D4 7F0949A4 46002182 */ mul.s $f6, $f4, $f0 +/* 0C94D8 7F0949A8 0FC1E12D */ jal getPlayer_c_screenheight +/* 0C94DC 7F0949AC 46163500 */ add.s $f20, $f6, $f22 +/* 0C94E0 7F0949B0 27B00668 */ addiu $s0, $sp, 0x668 +/* 0C94E4 7F0949B4 02003025 */ move $a2, $s0 +/* 0C94E8 7F0949B8 4600A306 */ mov.s $f12, $f20 +/* 0C94EC 7F0949BC 0FC24E20 */ jal sub_GAME_7F093880 +/* 0C94F0 7F0949C0 461C0381 */ sub.s $f14, $f0, $f28 +/* 0C94F4 7F0949C4 27A4068C */ addiu $a0, $sp, 0x68c +/* 0C94F8 7F0949C8 27A50680 */ addiu $a1, $sp, 0x680 +/* 0C94FC 7F0949CC 0FC24EFF */ jal sub_GAME_7F093BFC +/* 0C9500 7F0949D0 02003025 */ move $a2, $s0 +/* 0C9504 7F0949D4 02002025 */ move $a0, $s0 +/* 0C9508 7F0949D8 27A50608 */ addiu $a1, $sp, 0x608 +/* 0C950C 7F0949DC 0FC24E3F */ jal sub_GAME_7F0938FC +/* 0C9510 7F0949E0 27A60578 */ addiu $a2, $sp, 0x578 +/* 0C9514 7F0949E4 02002025 */ move $a0, $s0 +/* 0C9518 7F0949E8 27A505A8 */ addiu $a1, $sp, 0x5a8 +/* 0C951C 7F0949EC 0FC24E9E */ jal sub_GAME_7F093A78 +/* 0C9520 7F0949F0 27A60558 */ addiu $a2, $sp, 0x558 +/* 0C9524 7F0949F4 8FAE0538 */ lw $t6, 0x538($sp) +.L7F0949F8: +/* 0C9528 7F0949F8 8FB80534 */ lw $t8, 0x534($sp) +/* 0C952C 7F0949FC 8FB90530 */ lw $t9, 0x530($sp) +/* 0C9530 7F094A00 000E50C0 */ sll $t2, $t6, 3 +/* 0C9534 7F094A04 8FAE052C */ lw $t6, 0x52c($sp) +/* 0C9538 7F094A08 00187880 */ sll $t7, $t8, 2 +/* 0C953C 7F094A0C 014F6825 */ or $t5, $t2, $t7 +/* 0C9540 7F094A10 00195840 */ sll $t3, $t9, 1 +/* 0C9544 7F094A14 01AB6025 */ or $t4, $t5, $t3 +/* 0C9548 7F094A18 018EC025 */ or $t8, $t4, $t6 +/* 0C954C 7F094A1C 2F010010 */ sltiu $at, $t8, 0x10 +/* 0C9550 7F094A20 10200360 */ beqz $at, .L7F0957A4 +/* 0C9554 7F094A24 AFB8005C */ sw $t8, 0x5c($sp) +/* 0C9558 7F094A28 00185080 */ sll $t2, $t8, 2 +/* 0C955C 7F094A2C 3C018005 */ lui $at, %hi(jpt_80057544) +/* 0C9560 7F094A30 002A0821 */ addu $at, $at, $t2 +/* 0C9564 7F094A34 8C2A7544 */ lw $t2, %lo(jpt_80057544)($at) +.L7F094A38: +/* 0C9568 7F094A38 01400008 */ jr $t2 +/* 0C956C 7F094A3C 00000000 */ nop +.L7F094A40: +/* 0C9570 7F094A40 1000035A */ b .L7F0957AC +/* 0C9574 7F094A44 00008825 */ move $s1, $zero +.L7F094A48: +/* 0C9578 7F094A48 C7A205E4 */ lwc1 $f2, 0x5e4($sp) +/* 0C957C 7F094A4C C7AA05E8 */ lwc1 $f10, 0x5e8($sp) +/* 0C9580 7F094A50 C7AC05EC */ lwc1 $f12, 0x5ec($sp) +/* 0C9584 7F094A54 46181202 */ mul.s $f8, $f2, $f24 +/* 0C9588 7F094A58 C7AE05D8 */ lwc1 $f14, 0x5d8($sp) +/* 0C958C 7F094A5C C7B005E0 */ lwc1 $f16, 0x5e0($sp) +/* 0C9590 7F094A60 46185102 */ mul.s $f4, $f10, $f24 +/* 0C9594 7F094A64 C7AA05DC */ lwc1 $f10, 0x5dc($sp) +/* 0C9598 7F094A68 C7B205CC */ lwc1 $f18, 0x5cc($sp) +/* 0C959C 7F094A6C 46186182 */ mul.s $f6, $f12, $f24 +/* 0C95A0 7F094A70 E7A8043C */ swc1 $f8, 0x43c($sp) +/* 0C95A4 7F094A74 C7B405D4 */ lwc1 $f20, 0x5d4($sp) +/* 0C95A8 7F094A78 46187202 */ mul.s $f8, $f14, $f24 +/* 0C95AC 7F094A7C E7A40440 */ swc1 $f4, 0x440($sp) +/* 0C95B0 7F094A80 C7B605C0 */ lwc1 $f22, 0x5c0($sp) +/* 0C95B4 7F094A84 46185102 */ mul.s $f4, $f10, $f24 +/* 0C95B8 7F094A88 E7A60444 */ swc1 $f6, 0x444($sp) +/* 0C95BC 7F094A8C C7AA05D0 */ lwc1 $f10, 0x5d0($sp) +/* 0C95C0 7F094A90 46188182 */ mul.s $f6, $f16, $f24 +/* 0C95C4 7F094A94 E7A80454 */ swc1 $f8, 0x454($sp) +/* 0C95C8 7F094A98 C7BA05C8 */ lwc1 $f26, 0x5c8($sp) +/* 0C95CC 7F094A9C 46189202 */ mul.s $f8, $f18, $f24 +/* 0C95D0 7F094AA0 E7A40458 */ swc1 $f4, 0x458($sp) +/* 0C95D4 7F094AA4 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0C95D8 7F094AA8 46185102 */ mul.s $f4, $f10, $f24 +/* 0C95DC 7F094AAC E7A6045C */ swc1 $f6, 0x45c($sp) +/* 0C95E0 7F094AB0 C7AA05C4 */ lwc1 $f10, 0x5c4($sp) +/* 0C95E4 7F094AB4 4618A182 */ mul.s $f6, $f20, $f24 +/* 0C95E8 7F094AB8 E7A8046C */ swc1 $f8, 0x46c($sp) +/* 0C95EC 7F094ABC C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0C95F0 7F094AC0 4618B202 */ mul.s $f8, $f22, $f24 +/* 0C95F4 7F094AC4 E7A40470 */ swc1 $f4, 0x470($sp) +/* 0C95F8 7F094AC8 24110004 */ li $s1, 4 +/* 0C95FC 7F094ACC 46185102 */ mul.s $f4, $f10, $f24 +/* 0C9600 7F094AD0 E7A60474 */ swc1 $f6, 0x474($sp) +/* 0C9604 7F094AD4 46008280 */ add.s $f10, $f16, $f0 +/* 0C9608 7F094AD8 4618D182 */ mul.s $f6, $f26, $f24 +/* 0C960C 7F094ADC E7A80484 */ swc1 $f8, 0x484($sp) +/* 0C9610 7F094AE0 46006200 */ add.s $f8, $f12, $f0 +/* 0C9614 7F094AE4 E7AA0464 */ swc1 $f10, 0x464($sp) +/* 0C9618 7F094AE8 E7A40488 */ swc1 $f4, 0x488($sp) +/* 0C961C 7F094AEC 4600A100 */ add.s $f4, $f20, $f0 +/* 0C9620 7F094AF0 E7A8044C */ swc1 $f8, 0x44c($sp) +/* 0C9624 7F094AF4 E7A6048C */ swc1 $f6, 0x48c($sp) +/* 0C9628 7F094AF8 4600D180 */ add.s $f6, $f26, $f0 +/* 0C962C 7F094AFC E7A4047C */ swc1 $f4, 0x47c($sp) +/* 0C9630 7F094B00 27A4043C */ addiu $a0, $sp, 0x43c +/* 0C9634 7F094B04 8FA5056C */ lw $a1, 0x56c($sp) +/* 0C9638 7F094B08 E7A60494 */ swc1 $f6, 0x494($sp) +/* 0C963C 7F094B0C E7A20448 */ swc1 $f2, 0x448($sp) +/* 0C9640 7F094B10 E7AE0460 */ swc1 $f14, 0x460($sp) +/* 0C9644 7F094B14 E7B20478 */ swc1 $f18, 0x478($sp) +/* 0C9648 7F094B18 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C964C 7F094B1C E7B60490 */ swc1 $f22, 0x490($sp) +/* 0C9650 7F094B20 27A40454 */ addiu $a0, $sp, 0x454 +/* 0C9654 7F094B24 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9658 7F094B28 8FA50568 */ lw $a1, 0x568($sp) +/* 0C965C 7F094B2C 27A4046C */ addiu $a0, $sp, 0x46c +/* 0C9660 7F094B30 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9664 7F094B34 8FA50564 */ lw $a1, 0x564($sp) +/* 0C9668 7F094B38 27A40484 */ addiu $a0, $sp, 0x484 +/* 0C966C 7F094B3C 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9670 7F094B40 8FA50560 */ lw $a1, 0x560($sp) +/* 0C9674 7F094B44 10000319 */ b .L7F0957AC +/* 0C9678 7F094B48 00000000 */ nop +.L7F094B4C: +/* 0C967C 7F094B4C C7A205E4 */ lwc1 $f2, 0x5e4($sp) +/* 0C9680 7F094B50 C7AA05E8 */ lwc1 $f10, 0x5e8($sp) +/* 0C9684 7F094B54 C7AC05EC */ lwc1 $f12, 0x5ec($sp) +/* 0C9688 7F094B58 46181202 */ mul.s $f8, $f2, $f24 +/* 0C968C 7F094B5C C7AE05D8 */ lwc1 $f14, 0x5d8($sp) +/* 0C9690 7F094B60 C7B005E0 */ lwc1 $f16, 0x5e0($sp) +/* 0C9694 7F094B64 46185102 */ mul.s $f4, $f10, $f24 +/* 0C9698 7F094B68 C7AA05DC */ lwc1 $f10, 0x5dc($sp) +/* 0C969C 7F094B6C C7B2059C */ lwc1 $f18, 0x59c($sp) +/* 0C96A0 7F094B70 46186182 */ mul.s $f6, $f12, $f24 +/* 0C96A4 7F094B74 E7A8043C */ swc1 $f8, 0x43c($sp) +/* 0C96A8 7F094B78 C7B405A4 */ lwc1 $f20, 0x5a4($sp) +/* 0C96AC 7F094B7C 46187202 */ mul.s $f8, $f14, $f24 +/* 0C96B0 7F094B80 E7A40440 */ swc1 $f4, 0x440($sp) +/* 0C96B4 7F094B84 C7B60590 */ lwc1 $f22, 0x590($sp) +/* 0C96B8 7F094B88 46185102 */ mul.s $f4, $f10, $f24 +/* 0C96BC 7F094B8C E7A60444 */ swc1 $f6, 0x444($sp) +/* 0C96C0 7F094B90 C7AA05A0 */ lwc1 $f10, 0x5a0($sp) +/* 0C96C4 7F094B94 46188182 */ mul.s $f6, $f16, $f24 +/* 0C96C8 7F094B98 E7A80454 */ swc1 $f8, 0x454($sp) +/* 0C96CC 7F094B9C C7BA0598 */ lwc1 $f26, 0x598($sp) +/* 0C96D0 7F094BA0 46189202 */ mul.s $f8, $f18, $f24 +/* 0C96D4 7F094BA4 E7A40458 */ swc1 $f4, 0x458($sp) +/* 0C96D8 7F094BA8 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0C96DC 7F094BAC 46185102 */ mul.s $f4, $f10, $f24 +/* 0C96E0 7F094BB0 E7A6045C */ swc1 $f6, 0x45c($sp) +/* 0C96E4 7F094BB4 C7AA0594 */ lwc1 $f10, 0x594($sp) +/* 0C96E8 7F094BB8 4618A182 */ mul.s $f6, $f20, $f24 +/* 0C96EC 7F094BBC E7A8046C */ swc1 $f8, 0x46c($sp) +/* 0C96F0 7F094BC0 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0C96F4 7F094BC4 4618B202 */ mul.s $f8, $f22, $f24 +/* 0C96F8 7F094BC8 E7A40470 */ swc1 $f4, 0x470($sp) +/* 0C96FC 7F094BCC 24110004 */ li $s1, 4 +/* 0C9700 7F094BD0 46185102 */ mul.s $f4, $f10, $f24 +/* 0C9704 7F094BD4 E7A60474 */ swc1 $f6, 0x474($sp) +/* 0C9708 7F094BD8 46008280 */ add.s $f10, $f16, $f0 +/* 0C970C 7F094BDC 4618D182 */ mul.s $f6, $f26, $f24 +/* 0C9710 7F094BE0 E7A80484 */ swc1 $f8, 0x484($sp) +/* 0C9714 7F094BE4 46006200 */ add.s $f8, $f12, $f0 +/* 0C9718 7F094BE8 E7AA0464 */ swc1 $f10, 0x464($sp) +/* 0C971C 7F094BEC E7A40488 */ swc1 $f4, 0x488($sp) +/* 0C9720 7F094BF0 4600A100 */ add.s $f4, $f20, $f0 +/* 0C9724 7F094BF4 E7A8044C */ swc1 $f8, 0x44c($sp) +/* 0C9728 7F094BF8 E7A6048C */ swc1 $f6, 0x48c($sp) +/* 0C972C 7F094BFC 4600D180 */ add.s $f6, $f26, $f0 +/* 0C9730 7F094C00 E7A4047C */ swc1 $f4, 0x47c($sp) +/* 0C9734 7F094C04 27A4043C */ addiu $a0, $sp, 0x43c +/* 0C9738 7F094C08 8FA5056C */ lw $a1, 0x56c($sp) +/* 0C973C 7F094C0C E7A60494 */ swc1 $f6, 0x494($sp) +/* 0C9740 7F094C10 E7A20448 */ swc1 $f2, 0x448($sp) +/* 0C9744 7F094C14 E7AE0460 */ swc1 $f14, 0x460($sp) +/* 0C9748 7F094C18 E7B20478 */ swc1 $f18, 0x478($sp) +/* 0C974C 7F094C1C 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9750 7F094C20 E7B60490 */ swc1 $f22, 0x490($sp) +/* 0C9754 7F094C24 27A40454 */ addiu $a0, $sp, 0x454 +/* 0C9758 7F094C28 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C975C 7F094C2C 8FA50568 */ lw $a1, 0x568($sp) +/* 0C9760 7F094C30 27A4046C */ addiu $a0, $sp, 0x46c +/* 0C9764 7F094C34 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9768 7F094C38 8FA50554 */ lw $a1, 0x554($sp) +/* 0C976C 7F094C3C 27A40484 */ addiu $a0, $sp, 0x484 +/* 0C9770 7F094C40 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9774 7F094C44 8FA50550 */ lw $a1, 0x550($sp) +/* 0C9778 7F094C48 100002D8 */ b .L7F0957AC +/* 0C977C 7F094C4C 00000000 */ nop +.L7F094C50: +/* 0C9780 7F094C50 C7B605C0 */ lwc1 $f22, 0x5c0($sp) +/* 0C9784 7F094C54 C7AA05C4 */ lwc1 $f10, 0x5c4($sp) +/* 0C9788 7F094C58 C7BA05C8 */ lwc1 $f26, 0x5c8($sp) +/* 0C978C 7F094C5C 4618B202 */ mul.s $f8, $f22, $f24 +/* 0C9790 7F094C60 C7B205CC */ lwc1 $f18, 0x5cc($sp) +/* 0C9794 7F094C64 C7B405D4 */ lwc1 $f20, 0x5d4($sp) +/* 0C9798 7F094C68 46185102 */ mul.s $f4, $f10, $f24 +/* 0C979C 7F094C6C C7AA05D0 */ lwc1 $f10, 0x5d0($sp) +/* 0C97A0 7F094C70 C7AE0590 */ lwc1 $f14, 0x590($sp) +/* 0C97A4 7F094C74 4618D182 */ mul.s $f6, $f26, $f24 +/* 0C97A8 7F094C78 E7A8043C */ swc1 $f8, 0x43c($sp) +/* 0C97AC 7F094C7C C7B00598 */ lwc1 $f16, 0x598($sp) +/* 0C97B0 7F094C80 46189202 */ mul.s $f8, $f18, $f24 +/* 0C97B4 7F094C84 E7A40440 */ swc1 $f4, 0x440($sp) +/* 0C97B8 7F094C88 C7A2059C */ lwc1 $f2, 0x59c($sp) +/* 0C97BC 7F094C8C 46185102 */ mul.s $f4, $f10, $f24 +/* 0C97C0 7F094C90 E7A60444 */ swc1 $f6, 0x444($sp) +/* 0C97C4 7F094C94 C7AA0594 */ lwc1 $f10, 0x594($sp) +/* 0C97C8 7F094C98 4618A182 */ mul.s $f6, $f20, $f24 +/* 0C97CC 7F094C9C E7A80454 */ swc1 $f8, 0x454($sp) +/* 0C97D0 7F094CA0 C7AC05A4 */ lwc1 $f12, 0x5a4($sp) +/* 0C97D4 7F094CA4 46187202 */ mul.s $f8, $f14, $f24 +/* 0C97D8 7F094CA8 E7A40458 */ swc1 $f4, 0x458($sp) +/* 0C97DC 7F094CAC 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0C97E0 7F094CB0 46185102 */ mul.s $f4, $f10, $f24 +/* 0C97E4 7F094CB4 E7A6045C */ swc1 $f6, 0x45c($sp) +/* 0C97E8 7F094CB8 C7AA05A0 */ lwc1 $f10, 0x5a0($sp) +/* 0C97EC 7F094CBC 46188182 */ mul.s $f6, $f16, $f24 +/* 0C97F0 7F094CC0 E7A8046C */ swc1 $f8, 0x46c($sp) +/* 0C97F4 7F094CC4 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0C97F8 7F094CC8 46181202 */ mul.s $f8, $f2, $f24 +/* 0C97FC 7F094CCC E7A40470 */ swc1 $f4, 0x470($sp) +/* 0C9800 7F094CD0 240F0001 */ li $t7, 1 +/* 0C9804 7F094CD4 46185102 */ mul.s $f4, $f10, $f24 +/* 0C9808 7F094CD8 E7A60474 */ swc1 $f6, 0x474($sp) +/* 0C980C 7F094CDC 4600A280 */ add.s $f10, $f20, $f0 +/* 0C9810 7F094CE0 46186182 */ mul.s $f6, $f12, $f24 +/* 0C9814 7F094CE4 E7A80484 */ swc1 $f8, 0x484($sp) +/* 0C9818 7F094CE8 4600D200 */ add.s $f8, $f26, $f0 +/* 0C981C 7F094CEC 24110004 */ li $s1, 4 +/* 0C9820 7F094CF0 E7A40488 */ swc1 $f4, 0x488($sp) +/* 0C9824 7F094CF4 46008100 */ add.s $f4, $f16, $f0 +/* 0C9828 7F094CF8 AFAF0430 */ sw $t7, 0x430($sp) +/* 0C982C 7F094CFC E7A6048C */ swc1 $f6, 0x48c($sp) +/* 0C9830 7F094D00 46006180 */ add.s $f6, $f12, $f0 +/* 0C9834 7F094D04 E7A8044C */ swc1 $f8, 0x44c($sp) +/* 0C9838 7F094D08 E7AA0464 */ swc1 $f10, 0x464($sp) +/* 0C983C 7F094D0C E7A4047C */ swc1 $f4, 0x47c($sp) +/* 0C9840 7F094D10 E7A60494 */ swc1 $f6, 0x494($sp) +/* 0C9844 7F094D14 27A4043C */ addiu $a0, $sp, 0x43c +/* 0C9848 7F094D18 8FA50560 */ lw $a1, 0x560($sp) +/* 0C984C 7F094D1C E7B60448 */ swc1 $f22, 0x448($sp) +/* 0C9850 7F094D20 E7B20460 */ swc1 $f18, 0x460($sp) +/* 0C9854 7F094D24 E7AE0478 */ swc1 $f14, 0x478($sp) +/* 0C9858 7F094D28 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C985C 7F094D2C E7A20490 */ swc1 $f2, 0x490($sp) +/* 0C9860 7F094D30 27A40454 */ addiu $a0, $sp, 0x454 +/* 0C9864 7F094D34 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9868 7F094D38 8FA50564 */ lw $a1, 0x564($sp) +/* 0C986C 7F094D3C 27A4046C */ addiu $a0, $sp, 0x46c +/* 0C9870 7F094D40 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9874 7F094D44 8FA50550 */ lw $a1, 0x550($sp) +/* 0C9878 7F094D48 27A40484 */ addiu $a0, $sp, 0x484 +/* 0C987C 7F094D4C 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9880 7F094D50 8FA50554 */ lw $a1, 0x554($sp) +/* 0C9884 7F094D54 10000295 */ b .L7F0957AC +/* 0C9888 7F094D58 00000000 */ nop +.L7F094D5C: +/* 0C988C 7F094D5C C7AE05D8 */ lwc1 $f14, 0x5d8($sp) +/* 0C9890 7F094D60 C7AA05DC */ lwc1 $f10, 0x5dc($sp) +/* 0C9894 7F094D64 C7B005E0 */ lwc1 $f16, 0x5e0($sp) +/* 0C9898 7F094D68 46187202 */ mul.s $f8, $f14, $f24 +/* 0C989C 7F094D6C C7B605C0 */ lwc1 $f22, 0x5c0($sp) +/* 0C98A0 7F094D70 C7BA05C8 */ lwc1 $f26, 0x5c8($sp) +/* 0C98A4 7F094D74 46185102 */ mul.s $f4, $f10, $f24 +/* 0C98A8 7F094D78 C7AA05C4 */ lwc1 $f10, 0x5c4($sp) +/* 0C98AC 7F094D7C C7A205B4 */ lwc1 $f2, 0x5b4($sp) +/* 0C98B0 7F094D80 46188182 */ mul.s $f6, $f16, $f24 +/* 0C98B4 7F094D84 E7A8043C */ swc1 $f8, 0x43c($sp) +/* 0C98B8 7F094D88 C7AC05BC */ lwc1 $f12, 0x5bc($sp) +/* 0C98BC 7F094D8C 4618B202 */ mul.s $f8, $f22, $f24 +/* 0C98C0 7F094D90 E7A40440 */ swc1 $f4, 0x440($sp) +/* 0C98C4 7F094D94 C7B205A8 */ lwc1 $f18, 0x5a8($sp) +/* 0C98C8 7F094D98 46185102 */ mul.s $f4, $f10, $f24 +/* 0C98CC 7F094D9C E7A60444 */ swc1 $f6, 0x444($sp) +/* 0C98D0 7F094DA0 C7AA05B8 */ lwc1 $f10, 0x5b8($sp) +/* 0C98D4 7F094DA4 4618D182 */ mul.s $f6, $f26, $f24 +/* 0C98D8 7F094DA8 E7A80454 */ swc1 $f8, 0x454($sp) +/* 0C98DC 7F094DAC C7B405B0 */ lwc1 $f20, 0x5b0($sp) +/* 0C98E0 7F094DB0 46181202 */ mul.s $f8, $f2, $f24 +/* 0C98E4 7F094DB4 E7A40458 */ swc1 $f4, 0x458($sp) +/* 0C98E8 7F094DB8 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0C98EC 7F094DBC 46185102 */ mul.s $f4, $f10, $f24 +/* 0C98F0 7F094DC0 E7A6045C */ swc1 $f6, 0x45c($sp) +/* 0C98F4 7F094DC4 C7AA05AC */ lwc1 $f10, 0x5ac($sp) +/* 0C98F8 7F094DC8 46186182 */ mul.s $f6, $f12, $f24 +/* 0C98FC 7F094DCC E7A8046C */ swc1 $f8, 0x46c($sp) +/* 0C9900 7F094DD0 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0C9904 7F094DD4 46189202 */ mul.s $f8, $f18, $f24 +/* 0C9908 7F094DD8 E7A40470 */ swc1 $f4, 0x470($sp) +/* 0C990C 7F094DDC 24110004 */ li $s1, 4 +/* 0C9910 7F094DE0 46185102 */ mul.s $f4, $f10, $f24 +/* 0C9914 7F094DE4 E7A60474 */ swc1 $f6, 0x474($sp) +/* 0C9918 7F094DE8 4600D280 */ add.s $f10, $f26, $f0 +/* 0C991C 7F094DEC 4618A182 */ mul.s $f6, $f20, $f24 +/* 0C9920 7F094DF0 E7A80484 */ swc1 $f8, 0x484($sp) +/* 0C9924 7F094DF4 46008200 */ add.s $f8, $f16, $f0 +/* 0C9928 7F094DF8 E7AA0464 */ swc1 $f10, 0x464($sp) +/* 0C992C 7F094DFC E7A40488 */ swc1 $f4, 0x488($sp) +/* 0C9930 7F094E00 46006100 */ add.s $f4, $f12, $f0 +/* 0C9934 7F094E04 E7A8044C */ swc1 $f8, 0x44c($sp) +/* 0C9938 7F094E08 E7A6048C */ swc1 $f6, 0x48c($sp) +/* 0C993C 7F094E0C 4600A180 */ add.s $f6, $f20, $f0 +/* 0C9940 7F094E10 E7A4047C */ swc1 $f4, 0x47c($sp) +/* 0C9944 7F094E14 27A4043C */ addiu $a0, $sp, 0x43c +/* 0C9948 7F094E18 8FA50568 */ lw $a1, 0x568($sp) +/* 0C994C 7F094E1C E7A60494 */ swc1 $f6, 0x494($sp) +/* 0C9950 7F094E20 E7AE0448 */ swc1 $f14, 0x448($sp) +/* 0C9954 7F094E24 E7B60460 */ swc1 $f22, 0x460($sp) +/* 0C9958 7F094E28 E7A20478 */ swc1 $f2, 0x478($sp) +/* 0C995C 7F094E2C 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9960 7F094E30 E7B20490 */ swc1 $f18, 0x490($sp) +/* 0C9964 7F094E34 27A40454 */ addiu $a0, $sp, 0x454 +/* 0C9968 7F094E38 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C996C 7F094E3C 8FA50560 */ lw $a1, 0x560($sp) +/* 0C9970 7F094E40 27A4046C */ addiu $a0, $sp, 0x46c +/* 0C9974 7F094E44 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9978 7F094E48 8FA5055C */ lw $a1, 0x55c($sp) +/* 0C997C 7F094E4C 27A40484 */ addiu $a0, $sp, 0x484 +/* 0C9980 7F094E50 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9984 7F094E54 8FA50558 */ lw $a1, 0x558($sp) +/* 0C9988 7F094E58 10000254 */ b .L7F0957AC +/* 0C998C 7F094E5C 00000000 */ nop +.L7F094E60: +/* 0C9990 7F094E60 C7B205CC */ lwc1 $f18, 0x5cc($sp) +/* 0C9994 7F094E64 C7AA05D0 */ lwc1 $f10, 0x5d0($sp) +/* 0C9998 7F094E68 C7B405D4 */ lwc1 $f20, 0x5d4($sp) +/* 0C999C 7F094E6C 46189202 */ mul.s $f8, $f18, $f24 +/* 0C99A0 7F094E70 C7A205E4 */ lwc1 $f2, 0x5e4($sp) +/* 0C99A4 7F094E74 C7AC05EC */ lwc1 $f12, 0x5ec($sp) +/* 0C99A8 7F094E78 46185102 */ mul.s $f4, $f10, $f24 +/* 0C99AC 7F094E7C C7AA05E8 */ lwc1 $f10, 0x5e8($sp) +/* 0C99B0 7F094E80 C7B605A8 */ lwc1 $f22, 0x5a8($sp) +/* 0C99B4 7F094E84 4618A182 */ mul.s $f6, $f20, $f24 +/* 0C99B8 7F094E88 E7A8043C */ swc1 $f8, 0x43c($sp) +/* 0C99BC 7F094E8C C7BA05B0 */ lwc1 $f26, 0x5b0($sp) +/* 0C99C0 7F094E90 46181202 */ mul.s $f8, $f2, $f24 +/* 0C99C4 7F094E94 E7A40440 */ swc1 $f4, 0x440($sp) +/* 0C99C8 7F094E98 C7AE05B4 */ lwc1 $f14, 0x5b4($sp) +/* 0C99CC 7F094E9C 46185102 */ mul.s $f4, $f10, $f24 +/* 0C99D0 7F094EA0 E7A60444 */ swc1 $f6, 0x444($sp) +/* 0C99D4 7F094EA4 C7AA05AC */ lwc1 $f10, 0x5ac($sp) +/* 0C99D8 7F094EA8 46186182 */ mul.s $f6, $f12, $f24 +/* 0C99DC 7F094EAC E7A80454 */ swc1 $f8, 0x454($sp) +/* 0C99E0 7F094EB0 C7B005BC */ lwc1 $f16, 0x5bc($sp) +/* 0C99E4 7F094EB4 4618B202 */ mul.s $f8, $f22, $f24 +/* 0C99E8 7F094EB8 E7A40458 */ swc1 $f4, 0x458($sp) +/* 0C99EC 7F094EBC 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0C99F0 7F094EC0 46185102 */ mul.s $f4, $f10, $f24 +/* 0C99F4 7F094EC4 E7A6045C */ swc1 $f6, 0x45c($sp) +/* 0C99F8 7F094EC8 C7AA05B8 */ lwc1 $f10, 0x5b8($sp) +/* 0C99FC 7F094ECC 4618D182 */ mul.s $f6, $f26, $f24 +/* 0C9A00 7F094ED0 E7A8046C */ swc1 $f8, 0x46c($sp) +/* 0C9A04 7F094ED4 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0C9A08 7F094ED8 46187202 */ mul.s $f8, $f14, $f24 +/* 0C9A0C 7F094EDC E7A40470 */ swc1 $f4, 0x470($sp) +/* 0C9A10 7F094EE0 24110004 */ li $s1, 4 +/* 0C9A14 7F094EE4 46185102 */ mul.s $f4, $f10, $f24 +/* 0C9A18 7F094EE8 E7A60474 */ swc1 $f6, 0x474($sp) +/* 0C9A1C 7F094EEC 46006280 */ add.s $f10, $f12, $f0 +/* 0C9A20 7F094EF0 46188182 */ mul.s $f6, $f16, $f24 +/* 0C9A24 7F094EF4 E7A80484 */ swc1 $f8, 0x484($sp) +/* 0C9A28 7F094EF8 4600A200 */ add.s $f8, $f20, $f0 +/* 0C9A2C 7F094EFC E7AA0464 */ swc1 $f10, 0x464($sp) +/* 0C9A30 7F094F00 E7A40488 */ swc1 $f4, 0x488($sp) +/* 0C9A34 7F094F04 4600D100 */ add.s $f4, $f26, $f0 +/* 0C9A38 7F094F08 E7A8044C */ swc1 $f8, 0x44c($sp) +/* 0C9A3C 7F094F0C E7A6048C */ swc1 $f6, 0x48c($sp) +/* 0C9A40 7F094F10 46008180 */ add.s $f6, $f16, $f0 +/* 0C9A44 7F094F14 E7A4047C */ swc1 $f4, 0x47c($sp) +/* 0C9A48 7F094F18 27A4043C */ addiu $a0, $sp, 0x43c +/* 0C9A4C 7F094F1C 8FA50564 */ lw $a1, 0x564($sp) +/* 0C9A50 7F094F20 E7A60494 */ swc1 $f6, 0x494($sp) +/* 0C9A54 7F094F24 E7B20448 */ swc1 $f18, 0x448($sp) +/* 0C9A58 7F094F28 E7A20460 */ swc1 $f2, 0x460($sp) +/* 0C9A5C 7F094F2C E7B60478 */ swc1 $f22, 0x478($sp) +/* 0C9A60 7F094F30 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9A64 7F094F34 E7AE0490 */ swc1 $f14, 0x490($sp) +/* 0C9A68 7F094F38 27A40454 */ addiu $a0, $sp, 0x454 +/* 0C9A6C 7F094F3C 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9A70 7F094F40 8FA5056C */ lw $a1, 0x56c($sp) +/* 0C9A74 7F094F44 27A4046C */ addiu $a0, $sp, 0x46c +/* 0C9A78 7F094F48 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9A7C 7F094F4C 8FA50558 */ lw $a1, 0x558($sp) +/* 0C9A80 7F094F50 27A40484 */ addiu $a0, $sp, 0x484 +/* 0C9A84 7F094F54 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9A88 7F094F58 8FA5055C */ lw $a1, 0x55c($sp) +/* 0C9A8C 7F094F5C 10000213 */ b .L7F0957AC +/* 0C9A90 7F094F60 00000000 */ nop +.L7F094F64: +/* 0C9A94 7F094F64 C7B605C0 */ lwc1 $f22, 0x5c0($sp) +/* 0C9A98 7F094F68 C7AA05C4 */ lwc1 $f10, 0x5c4($sp) +/* 0C9A9C 7F094F6C C7BA05C8 */ lwc1 $f26, 0x5c8($sp) +/* 0C9AA0 7F094F70 4618B202 */ mul.s $f8, $f22, $f24 +/* 0C9AA4 7F094F74 C7AE05A8 */ lwc1 $f14, 0x5a8($sp) +/* 0C9AA8 7F094F78 C7B005B0 */ lwc1 $f16, 0x5b0($sp) +/* 0C9AAC 7F094F7C 46185102 */ mul.s $f4, $f10, $f24 +/* 0C9AB0 7F094F80 C7AA05AC */ lwc1 $f10, 0x5ac($sp) +/* 0C9AB4 7F094F84 C7A20590 */ lwc1 $f2, 0x590($sp) +/* 0C9AB8 7F094F88 4618D182 */ mul.s $f6, $f26, $f24 +/* 0C9ABC 7F094F8C E7A8043C */ swc1 $f8, 0x43c($sp) +/* 0C9AC0 7F094F90 C7AC0598 */ lwc1 $f12, 0x598($sp) +/* 0C9AC4 7F094F94 46187202 */ mul.s $f8, $f14, $f24 +/* 0C9AC8 7F094F98 E7A40440 */ swc1 $f4, 0x440($sp) +/* 0C9ACC 7F094F9C 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0C9AD0 7F094FA0 46185102 */ mul.s $f4, $f10, $f24 +/* 0C9AD4 7F094FA4 E7A60444 */ swc1 $f6, 0x444($sp) +/* 0C9AD8 7F094FA8 C7AA0594 */ lwc1 $f10, 0x594($sp) +/* 0C9ADC 7F094FAC 46188182 */ mul.s $f6, $f16, $f24 +/* 0C9AE0 7F094FB0 E7A80454 */ swc1 $f8, 0x454($sp) +/* 0C9AE4 7F094FB4 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0C9AE8 7F094FB8 46181202 */ mul.s $f8, $f2, $f24 +/* 0C9AEC 7F094FBC E7A40458 */ swc1 $f4, 0x458($sp) +/* 0C9AF0 7F094FC0 24110003 */ li $s1, 3 +/* 0C9AF4 7F094FC4 46185102 */ mul.s $f4, $f10, $f24 +/* 0C9AF8 7F094FC8 E7A6045C */ swc1 $f6, 0x45c($sp) +/* 0C9AFC 7F094FCC 46008280 */ add.s $f10, $f16, $f0 +/* 0C9B00 7F094FD0 46186182 */ mul.s $f6, $f12, $f24 +/* 0C9B04 7F094FD4 E7A8046C */ swc1 $f8, 0x46c($sp) +/* 0C9B08 7F094FD8 4600D200 */ add.s $f8, $f26, $f0 +/* 0C9B0C 7F094FDC E7AA0464 */ swc1 $f10, 0x464($sp) +/* 0C9B10 7F094FE0 E7A40470 */ swc1 $f4, 0x470($sp) +/* 0C9B14 7F094FE4 46006100 */ add.s $f4, $f12, $f0 +/* 0C9B18 7F094FE8 E7A8044C */ swc1 $f8, 0x44c($sp) +/* 0C9B1C 7F094FEC E7A60474 */ swc1 $f6, 0x474($sp) +/* 0C9B20 7F094FF0 27A4043C */ addiu $a0, $sp, 0x43c +/* 0C9B24 7F094FF4 E7A4047C */ swc1 $f4, 0x47c($sp) +/* 0C9B28 7F094FF8 8FA50560 */ lw $a1, 0x560($sp) +/* 0C9B2C 7F094FFC E7B60448 */ swc1 $f22, 0x448($sp) +/* 0C9B30 7F095000 E7AE0460 */ swc1 $f14, 0x460($sp) +/* 0C9B34 7F095004 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9B38 7F095008 E7A20478 */ swc1 $f2, 0x478($sp) +/* 0C9B3C 7F09500C 27A40454 */ addiu $a0, $sp, 0x454 +/* 0C9B40 7F095010 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9B44 7F095014 8FA50558 */ lw $a1, 0x558($sp) +/* 0C9B48 7F095018 27A4046C */ addiu $a0, $sp, 0x46c +/* 0C9B4C 7F09501C 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9B50 7F095020 8FA50550 */ lw $a1, 0x550($sp) +/* 0C9B54 7F095024 100001E1 */ b .L7F0957AC +/* 0C9B58 7F095028 00000000 */ nop +.L7F09502C: +/* 0C9B5C 7F09502C C7B205CC */ lwc1 $f18, 0x5cc($sp) +/* 0C9B60 7F095030 C7A805D0 */ lwc1 $f8, 0x5d0($sp) +/* 0C9B64 7F095034 C7B405D4 */ lwc1 $f20, 0x5d4($sp) +/* 0C9B68 7F095038 46189182 */ mul.s $f6, $f18, $f24 +/* 0C9B6C 7F09503C C7A2059C */ lwc1 $f2, 0x59c($sp) +/* 0C9B70 7F095040 C7AC05A4 */ lwc1 $f12, 0x5a4($sp) +/* 0C9B74 7F095044 46184282 */ mul.s $f10, $f8, $f24 +/* 0C9B78 7F095048 C7A805A0 */ lwc1 $f8, 0x5a0($sp) +/* 0C9B7C 7F09504C C7AE05A8 */ lwc1 $f14, 0x5a8($sp) +/* 0C9B80 7F095050 4618A102 */ mul.s $f4, $f20, $f24 +/* 0C9B84 7F095054 E7A6043C */ swc1 $f6, 0x43c($sp) +/* 0C9B88 7F095058 C7B005B0 */ lwc1 $f16, 0x5b0($sp) +/* 0C9B8C 7F09505C 46181182 */ mul.s $f6, $f2, $f24 +/* 0C9B90 7F095060 E7AA0440 */ swc1 $f10, 0x440($sp) +/* 0C9B94 7F095064 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0C9B98 7F095068 46184282 */ mul.s $f10, $f8, $f24 +/* 0C9B9C 7F09506C E7A40444 */ swc1 $f4, 0x444($sp) +/* 0C9BA0 7F095070 C7A805AC */ lwc1 $f8, 0x5ac($sp) +/* 0C9BA4 7F095074 46186102 */ mul.s $f4, $f12, $f24 +/* 0C9BA8 7F095078 E7A60454 */ swc1 $f6, 0x454($sp) +/* 0C9BAC 7F09507C C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0C9BB0 7F095080 46187182 */ mul.s $f6, $f14, $f24 +/* 0C9BB4 7F095084 E7AA0458 */ swc1 $f10, 0x458($sp) +/* 0C9BB8 7F095088 24110003 */ li $s1, 3 +/* 0C9BBC 7F09508C 46184282 */ mul.s $f10, $f8, $f24 +/* 0C9BC0 7F095090 E7A4045C */ swc1 $f4, 0x45c($sp) +/* 0C9BC4 7F095094 46006200 */ add.s $f8, $f12, $f0 +/* 0C9BC8 7F095098 46188102 */ mul.s $f4, $f16, $f24 +/* 0C9BCC 7F09509C E7A6046C */ swc1 $f6, 0x46c($sp) +/* 0C9BD0 7F0950A0 4600A180 */ add.s $f6, $f20, $f0 +/* 0C9BD4 7F0950A4 E7A80464 */ swc1 $f8, 0x464($sp) +/* 0C9BD8 7F0950A8 E7AA0470 */ swc1 $f10, 0x470($sp) +/* 0C9BDC 7F0950AC 46008280 */ add.s $f10, $f16, $f0 +/* 0C9BE0 7F0950B0 E7A6044C */ swc1 $f6, 0x44c($sp) +/* 0C9BE4 7F0950B4 E7A40474 */ swc1 $f4, 0x474($sp) +/* 0C9BE8 7F0950B8 27A4043C */ addiu $a0, $sp, 0x43c +/* 0C9BEC 7F0950BC E7AA047C */ swc1 $f10, 0x47c($sp) +/* 0C9BF0 7F0950C0 8FA50564 */ lw $a1, 0x564($sp) +/* 0C9BF4 7F0950C4 E7B20448 */ swc1 $f18, 0x448($sp) +/* 0C9BF8 7F0950C8 E7A20460 */ swc1 $f2, 0x460($sp) +/* 0C9BFC 7F0950CC 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9C00 7F0950D0 E7AE0478 */ swc1 $f14, 0x478($sp) +/* 0C9C04 7F0950D4 27A40454 */ addiu $a0, $sp, 0x454 +/* 0C9C08 7F0950D8 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9C0C 7F0950DC 8FA50554 */ lw $a1, 0x554($sp) +/* 0C9C10 7F0950E0 27A4046C */ addiu $a0, $sp, 0x46c +/* 0C9C14 7F0950E4 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9C18 7F0950E8 8FA50558 */ lw $a1, 0x558($sp) +/* 0C9C1C 7F0950EC 100001AF */ b .L7F0957AC +/* 0C9C20 7F0950F0 00000000 */ nop +.L7F0950F4: +/* 0C9C24 7F0950F4 C7AE05D8 */ lwc1 $f14, 0x5d8($sp) +/* 0C9C28 7F0950F8 C7A605DC */ lwc1 $f6, 0x5dc($sp) +/* 0C9C2C 7F0950FC C7B005E0 */ lwc1 $f16, 0x5e0($sp) +/* 0C9C30 7F095100 46187102 */ mul.s $f4, $f14, $f24 +/* 0C9C34 7F095104 C7B20590 */ lwc1 $f18, 0x590($sp) +/* 0C9C38 7F095108 C7B40598 */ lwc1 $f20, 0x598($sp) +/* 0C9C3C 7F09510C 46183202 */ mul.s $f8, $f6, $f24 +/* 0C9C40 7F095110 C7A60594 */ lwc1 $f6, 0x594($sp) +/* 0C9C44 7F095114 C7A205B4 */ lwc1 $f2, 0x5b4($sp) +/* 0C9C48 7F095118 46188282 */ mul.s $f10, $f16, $f24 +/* 0C9C4C 7F09511C E7A4043C */ swc1 $f4, 0x43c($sp) +/* 0C9C50 7F095120 C7AC05BC */ lwc1 $f12, 0x5bc($sp) +/* 0C9C54 7F095124 46189102 */ mul.s $f4, $f18, $f24 +/* 0C9C58 7F095128 E7A80440 */ swc1 $f8, 0x440($sp) +/* 0C9C5C 7F09512C 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0C9C60 7F095130 46183202 */ mul.s $f8, $f6, $f24 +/* 0C9C64 7F095134 E7AA0444 */ swc1 $f10, 0x444($sp) +/* 0C9C68 7F095138 C7A605B8 */ lwc1 $f6, 0x5b8($sp) +/* 0C9C6C 7F09513C 4618A282 */ mul.s $f10, $f20, $f24 +/* 0C9C70 7F095140 E7A40454 */ swc1 $f4, 0x454($sp) +/* 0C9C74 7F095144 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0C9C78 7F095148 46181102 */ mul.s $f4, $f2, $f24 +/* 0C9C7C 7F09514C E7A80458 */ swc1 $f8, 0x458($sp) +/* 0C9C80 7F095150 24110003 */ li $s1, 3 +/* 0C9C84 7F095154 46183202 */ mul.s $f8, $f6, $f24 +/* 0C9C88 7F095158 E7AA045C */ swc1 $f10, 0x45c($sp) +/* 0C9C8C 7F09515C 4600A180 */ add.s $f6, $f20, $f0 +/* 0C9C90 7F095160 46186282 */ mul.s $f10, $f12, $f24 +/* 0C9C94 7F095164 E7A4046C */ swc1 $f4, 0x46c($sp) +/* 0C9C98 7F095168 46008100 */ add.s $f4, $f16, $f0 +/* 0C9C9C 7F09516C E7A60464 */ swc1 $f6, 0x464($sp) +/* 0C9CA0 7F095170 E7A80470 */ swc1 $f8, 0x470($sp) +/* 0C9CA4 7F095174 46006200 */ add.s $f8, $f12, $f0 +/* 0C9CA8 7F095178 E7A4044C */ swc1 $f4, 0x44c($sp) +/* 0C9CAC 7F09517C E7AA0474 */ swc1 $f10, 0x474($sp) +/* 0C9CB0 7F095180 27A4043C */ addiu $a0, $sp, 0x43c +/* 0C9CB4 7F095184 E7A8047C */ swc1 $f8, 0x47c($sp) +/* 0C9CB8 7F095188 8FA50568 */ lw $a1, 0x568($sp) +/* 0C9CBC 7F09518C E7AE0448 */ swc1 $f14, 0x448($sp) +/* 0C9CC0 7F095190 E7B20460 */ swc1 $f18, 0x460($sp) +/* 0C9CC4 7F095194 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9CC8 7F095198 E7A20478 */ swc1 $f2, 0x478($sp) +/* 0C9CCC 7F09519C 27A40454 */ addiu $a0, $sp, 0x454 +/* 0C9CD0 7F0951A0 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9CD4 7F0951A4 8FA50550 */ lw $a1, 0x550($sp) +/* 0C9CD8 7F0951A8 27A4046C */ addiu $a0, $sp, 0x46c +/* 0C9CDC 7F0951AC 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9CE0 7F0951B0 8FA5055C */ lw $a1, 0x55c($sp) +/* 0C9CE4 7F0951B4 1000017D */ b .L7F0957AC +/* 0C9CE8 7F0951B8 00000000 */ nop +.L7F0951BC: +/* 0C9CEC 7F0951BC C7A205E4 */ lwc1 $f2, 0x5e4($sp) +/* 0C9CF0 7F0951C0 C7A405E8 */ lwc1 $f4, 0x5e8($sp) +/* 0C9CF4 7F0951C4 C7AC05EC */ lwc1 $f12, 0x5ec($sp) +/* 0C9CF8 7F0951C8 46181282 */ mul.s $f10, $f2, $f24 +/* 0C9CFC 7F0951CC C7AE05B4 */ lwc1 $f14, 0x5b4($sp) +/* 0C9D00 7F0951D0 C7B005BC */ lwc1 $f16, 0x5bc($sp) +/* 0C9D04 7F0951D4 46182182 */ mul.s $f6, $f4, $f24 +/* 0C9D08 7F0951D8 C7A405B8 */ lwc1 $f4, 0x5b8($sp) +/* 0C9D0C 7F0951DC C7B2059C */ lwc1 $f18, 0x59c($sp) +/* 0C9D10 7F0951E0 46186202 */ mul.s $f8, $f12, $f24 +/* 0C9D14 7F0951E4 E7AA043C */ swc1 $f10, 0x43c($sp) +/* 0C9D18 7F0951E8 C7B405A4 */ lwc1 $f20, 0x5a4($sp) +/* 0C9D1C 7F0951EC 46187282 */ mul.s $f10, $f14, $f24 +/* 0C9D20 7F0951F0 E7A60440 */ swc1 $f6, 0x440($sp) +/* 0C9D24 7F0951F4 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0C9D28 7F0951F8 46182182 */ mul.s $f6, $f4, $f24 +/* 0C9D2C 7F0951FC E7A80444 */ swc1 $f8, 0x444($sp) +/* 0C9D30 7F095200 C7A405A0 */ lwc1 $f4, 0x5a0($sp) +/* 0C9D34 7F095204 46188202 */ mul.s $f8, $f16, $f24 +/* 0C9D38 7F095208 E7AA0454 */ swc1 $f10, 0x454($sp) +/* 0C9D3C 7F09520C C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0C9D40 7F095210 46189282 */ mul.s $f10, $f18, $f24 +/* 0C9D44 7F095214 E7A60458 */ swc1 $f6, 0x458($sp) +/* 0C9D48 7F095218 24110003 */ li $s1, 3 +/* 0C9D4C 7F09521C 46182182 */ mul.s $f6, $f4, $f24 +/* 0C9D50 7F095220 E7A8045C */ swc1 $f8, 0x45c($sp) +/* 0C9D54 7F095224 46008100 */ add.s $f4, $f16, $f0 +/* 0C9D58 7F095228 4618A202 */ mul.s $f8, $f20, $f24 +/* 0C9D5C 7F09522C E7AA046C */ swc1 $f10, 0x46c($sp) +/* 0C9D60 7F095230 46006280 */ add.s $f10, $f12, $f0 +/* 0C9D64 7F095234 E7A40464 */ swc1 $f4, 0x464($sp) +/* 0C9D68 7F095238 E7A60470 */ swc1 $f6, 0x470($sp) +/* 0C9D6C 7F09523C 4600A180 */ add.s $f6, $f20, $f0 +/* 0C9D70 7F095240 E7AA044C */ swc1 $f10, 0x44c($sp) +/* 0C9D74 7F095244 E7A80474 */ swc1 $f8, 0x474($sp) +/* 0C9D78 7F095248 27A4043C */ addiu $a0, $sp, 0x43c +/* 0C9D7C 7F09524C E7A6047C */ swc1 $f6, 0x47c($sp) +/* 0C9D80 7F095250 8FA5056C */ lw $a1, 0x56c($sp) +/* 0C9D84 7F095254 E7A20448 */ swc1 $f2, 0x448($sp) +/* 0C9D88 7F095258 E7AE0460 */ swc1 $f14, 0x460($sp) +/* 0C9D8C 7F09525C 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9D90 7F095260 E7B20478 */ swc1 $f18, 0x478($sp) +/* 0C9D94 7F095264 27A40454 */ addiu $a0, $sp, 0x454 +/* 0C9D98 7F095268 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9D9C 7F09526C 8FA5055C */ lw $a1, 0x55c($sp) +/* 0C9DA0 7F095270 27A4046C */ addiu $a0, $sp, 0x46c +/* 0C9DA4 7F095274 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9DA8 7F095278 8FA50554 */ lw $a1, 0x554($sp) +/* 0C9DAC 7F09527C 1000014B */ b .L7F0957AC +/* 0C9DB0 7F095280 00000000 */ nop +.L7F095284: +/* 0C9DB4 7F095284 C7B205CC */ lwc1 $f18, 0x5cc($sp) +/* 0C9DB8 7F095288 C7AA05D0 */ lwc1 $f10, 0x5d0($sp) +/* 0C9DBC 7F09528C C7B405D4 */ lwc1 $f20, 0x5d4($sp) +/* 0C9DC0 7F095290 46189202 */ mul.s $f8, $f18, $f24 +/* 0C9DC4 7F095294 C7A205E4 */ lwc1 $f2, 0x5e4($sp) +/* 0C9DC8 7F095298 C7AC05EC */ lwc1 $f12, 0x5ec($sp) +/* 0C9DCC 7F09529C 46185102 */ mul.s $f4, $f10, $f24 +/* 0C9DD0 7F0952A0 C7AA05E8 */ lwc1 $f10, 0x5e8($sp) +/* 0C9DD4 7F0952A4 C7AE05D8 */ lwc1 $f14, 0x5d8($sp) +/* 0C9DD8 7F0952A8 4618A182 */ mul.s $f6, $f20, $f24 +/* 0C9DDC 7F0952AC E7A8043C */ swc1 $f8, 0x43c($sp) +/* 0C9DE0 7F0952B0 C7B005E0 */ lwc1 $f16, 0x5e0($sp) +/* 0C9DE4 7F0952B4 46181202 */ mul.s $f8, $f2, $f24 +/* 0C9DE8 7F0952B8 E7A40440 */ swc1 $f4, 0x440($sp) +/* 0C9DEC 7F0952BC C7B60590 */ lwc1 $f22, 0x590($sp) +/* 0C9DF0 7F0952C0 46185102 */ mul.s $f4, $f10, $f24 +/* 0C9DF4 7F0952C4 E7A60444 */ swc1 $f6, 0x444($sp) +/* 0C9DF8 7F0952C8 C7AA05DC */ lwc1 $f10, 0x5dc($sp) +/* 0C9DFC 7F0952CC 46186182 */ mul.s $f6, $f12, $f24 +/* 0C9E00 7F0952D0 E7A80454 */ swc1 $f8, 0x454($sp) +/* 0C9E04 7F0952D4 C7BA0598 */ lwc1 $f26, 0x598($sp) +/* 0C9E08 7F0952D8 46187202 */ mul.s $f8, $f14, $f24 +/* 0C9E0C 7F0952DC E7A40458 */ swc1 $f4, 0x458($sp) +/* 0C9E10 7F0952E0 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0C9E14 7F0952E4 46185102 */ mul.s $f4, $f10, $f24 +/* 0C9E18 7F0952E8 E7A6045C */ swc1 $f6, 0x45c($sp) +/* 0C9E1C 7F0952EC C7AA0594 */ lwc1 $f10, 0x594($sp) +/* 0C9E20 7F0952F0 46188182 */ mul.s $f6, $f16, $f24 +/* 0C9E24 7F0952F4 E7A8046C */ swc1 $f8, 0x46c($sp) +/* 0C9E28 7F0952F8 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0C9E2C 7F0952FC 4618B202 */ mul.s $f8, $f22, $f24 +/* 0C9E30 7F095300 E7A40470 */ swc1 $f4, 0x470($sp) +/* 0C9E34 7F095304 24110005 */ li $s1, 5 +/* 0C9E38 7F095308 46185102 */ mul.s $f4, $f10, $f24 +/* 0C9E3C 7F09530C E7A60474 */ swc1 $f6, 0x474($sp) +/* 0C9E40 7F095310 27A4043C */ addiu $a0, $sp, 0x43c +/* 0C9E44 7F095314 4618D182 */ mul.s $f6, $f26, $f24 +/* 0C9E48 7F095318 E7A80484 */ swc1 $f8, 0x484($sp) +/* 0C9E4C 7F09531C C7A805A8 */ lwc1 $f8, 0x5a8($sp) +/* 0C9E50 7F095320 8FA50564 */ lw $a1, 0x564($sp) +/* 0C9E54 7F095324 E7A40488 */ swc1 $f4, 0x488($sp) +/* 0C9E58 7F095328 46184282 */ mul.s $f10, $f8, $f24 +/* 0C9E5C 7F09532C C7A405AC */ lwc1 $f4, 0x5ac($sp) +/* 0C9E60 7F095330 E7A6048C */ swc1 $f6, 0x48c($sp) +/* 0C9E64 7F095334 C7A805B0 */ lwc1 $f8, 0x5b0($sp) +/* 0C9E68 7F095338 46182182 */ mul.s $f6, $f4, $f24 +/* 0C9E6C 7F09533C 4600A100 */ add.s $f4, $f20, $f0 +/* 0C9E70 7F095340 E7B20448 */ swc1 $f18, 0x448($sp) +/* 0C9E74 7F095344 E7AA049C */ swc1 $f10, 0x49c($sp) +/* 0C9E78 7F095348 46184282 */ mul.s $f10, $f8, $f24 +/* 0C9E7C 7F09534C 46008200 */ add.s $f8, $f16, $f0 +/* 0C9E80 7F095350 E7A4044C */ swc1 $f4, 0x44c($sp) +/* 0C9E84 7F095354 E7A604A0 */ swc1 $f6, 0x4a0($sp) +/* 0C9E88 7F095358 C7A405A8 */ lwc1 $f4, 0x5a8($sp) +/* 0C9E8C 7F09535C 46006180 */ add.s $f6, $f12, $f0 +/* 0C9E90 7F095360 E7A8047C */ swc1 $f8, 0x47c($sp) +/* 0C9E94 7F095364 E7AA04A4 */ swc1 $f10, 0x4a4($sp) +/* 0C9E98 7F095368 4600D280 */ add.s $f10, $f26, $f0 +/* 0C9E9C 7F09536C E7A60464 */ swc1 $f6, 0x464($sp) +/* 0C9EA0 7F095370 C7A605B0 */ lwc1 $f6, 0x5b0($sp) +/* 0C9EA4 7F095374 E7A20460 */ swc1 $f2, 0x460($sp) +/* 0C9EA8 7F095378 E7AA0494 */ swc1 $f10, 0x494($sp) +/* 0C9EAC 7F09537C 46003200 */ add.s $f8, $f6, $f0 +/* 0C9EB0 7F095380 E7AE0478 */ swc1 $f14, 0x478($sp) +/* 0C9EB4 7F095384 E7B60490 */ swc1 $f22, 0x490($sp) +/* 0C9EB8 7F095388 E7A404A8 */ swc1 $f4, 0x4a8($sp) +/* 0C9EBC 7F09538C 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9EC0 7F095390 E7A804AC */ swc1 $f8, 0x4ac($sp) +/* 0C9EC4 7F095394 27A40454 */ addiu $a0, $sp, 0x454 +/* 0C9EC8 7F095398 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9ECC 7F09539C 8FA5056C */ lw $a1, 0x56c($sp) +/* 0C9ED0 7F0953A0 27A4046C */ addiu $a0, $sp, 0x46c +/* 0C9ED4 7F0953A4 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9ED8 7F0953A8 8FA50568 */ lw $a1, 0x568($sp) +/* 0C9EDC 7F0953AC 27A40484 */ addiu $a0, $sp, 0x484 +/* 0C9EE0 7F0953B0 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9EE4 7F0953B4 8FA50550 */ lw $a1, 0x550($sp) +/* 0C9EE8 7F0953B8 27A4049C */ addiu $a0, $sp, 0x49c +/* 0C9EEC 7F0953BC 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0C9EF0 7F0953C0 8FA50558 */ lw $a1, 0x558($sp) +/* 0C9EF4 7F0953C4 100000F9 */ b .L7F0957AC +/* 0C9EF8 7F0953C8 00000000 */ nop +.L7F0953CC: +/* 0C9EFC 7F0953CC C7BA05E4 */ lwc1 $f26, 0x5e4($sp) +/* 0C9F00 7F0953D0 C7B605EC */ lwc1 $f22, 0x5ec($sp) +/* 0C9F04 7F0953D4 C7B405D8 */ lwc1 $f20, 0x5d8($sp) +/* 0C9F08 7F0953D8 4618D482 */ mul.s $f18, $f26, $f24 +/* 0C9F0C 7F0953DC C7B005E0 */ lwc1 $f16, 0x5e0($sp) +/* 0C9F10 7F0953E0 C7AE05C0 */ lwc1 $f14, 0x5c0($sp) +/* 0C9F14 7F0953E4 4618B302 */ mul.s $f12, $f22, $f24 +/* 0C9F18 7F0953E8 C7AA059C */ lwc1 $f10, 0x59c($sp) +/* 0C9F1C 7F0953EC C7A805E8 */ lwc1 $f8, 0x5e8($sp) +/* 0C9F20 7F0953F0 4618A182 */ mul.s $f6, $f20, $f24 +/* 0C9F24 7F0953F4 C7A405C8 */ lwc1 $f4, 0x5c8($sp) +/* 0C9F28 7F0953F8 C7A205A4 */ lwc1 $f2, 0x5a4($sp) +/* 0C9F2C 7F0953FC 46184202 */ mul.s $f8, $f8, $f24 +/* 0C9F30 7F095400 C7A005DC */ lwc1 $f0, 0x5dc($sp) +/* 0C9F34 7F095404 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0C9F38 7F095408 E7B2043C */ swc1 $f18, 0x43c($sp) +/* 0C9F3C 7F09540C 46180002 */ mul.s $f0, $f0, $f24 +/* 0C9F40 7F095410 C7B205C4 */ lwc1 $f18, 0x5c4($sp) +/* 0C9F44 7F095414 E7AC0444 */ swc1 $f12, 0x444($sp) +/* 0C9F48 7F095418 46188302 */ mul.s $f12, $f16, $f24 +/* 0C9F4C 7F09541C E7A80440 */ swc1 $f8, 0x440($sp) +/* 0C9F50 7F095420 C7A805A8 */ lwc1 $f8, 0x5a8($sp) +/* 0C9F54 7F095424 46189482 */ mul.s $f18, $f18, $f24 +/* 0C9F58 7F095428 E7A60454 */ swc1 $f6, 0x454($sp) +/* 0C9F5C 7F09542C C7A605AC */ lwc1 $f6, 0x5ac($sp) +/* 0C9F60 7F095430 46184202 */ mul.s $f8, $f8, $f24 +/* 0C9F64 7F095434 E7A00458 */ swc1 $f0, 0x458($sp) +/* 0C9F68 7F095438 C7A005B0 */ lwc1 $f0, 0x5b0($sp) +/* 0C9F6C 7F09543C 24110005 */ li $s1, 5 +/* 0C9F70 7F095440 E7AC045C */ swc1 $f12, 0x45c($sp) +/* 0C9F74 7F095444 46187302 */ mul.s $f12, $f14, $f24 +/* 0C9F78 7F095448 E7B20470 */ swc1 $f18, 0x470($sp) +/* 0C9F7C 7F09544C C7B205A0 */ lwc1 $f18, 0x5a0($sp) +/* 0C9F80 7F095450 46180002 */ mul.s $f0, $f0, $f24 +/* 0C9F84 7F095454 E7A80484 */ swc1 $f8, 0x484($sp) +/* 0C9F88 7F095458 C428FD94 */ lwc1 $f8, %lo(D_8003FD94)($at) +/* 0C9F8C 7F09545C 46189482 */ mul.s $f18, $f18, $f24 +/* 0C9F90 7F095460 E7AC046C */ swc1 $f12, 0x46c($sp) +/* 0C9F94 7F095464 46082300 */ add.s $f12, $f4, $f8 +/* 0C9F98 7F095468 46182102 */ mul.s $f4, $f4, $f24 +/* 0C9F9C 7F09546C E7A0048C */ swc1 $f0, 0x48c($sp) +/* 0C9FA0 7F095470 46081000 */ add.s $f0, $f2, $f8 +/* 0C9FA4 7F095474 46183182 */ mul.s $f6, $f6, $f24 +/* 0C9FA8 7F095478 E7B204A0 */ swc1 $f18, 0x4a0($sp) +/* 0C9FAC 7F09547C 46088400 */ add.s $f16, $f16, $f8 +/* 0C9FB0 7F095480 46181082 */ mul.s $f2, $f2, $f24 +/* 0C9FB4 7F095484 C7B205B0 */ lwc1 $f18, 0x5b0($sp) +/* 0C9FB8 7F095488 E7A40474 */ swc1 $f4, 0x474($sp) +/* 0C9FBC 7F09548C 46185102 */ mul.s $f4, $f10, $f24 +/* 0C9FC0 7F095490 E7A60488 */ swc1 $f6, 0x488($sp) +/* 0C9FC4 7F095494 4608B580 */ add.s $f22, $f22, $f8 +/* 0C9FC8 7F095498 C7A605A8 */ lwc1 $f6, 0x5a8($sp) +/* 0C9FCC 7F09549C E7A204A4 */ swc1 $f2, 0x4a4($sp) +/* 0C9FD0 7F0954A0 46089200 */ add.s $f8, $f18, $f8 +/* 0C9FD4 7F0954A4 E7BA0448 */ swc1 $f26, 0x448($sp) +/* 0C9FD8 7F0954A8 E7A4049C */ swc1 $f4, 0x49c($sp) +/* 0C9FDC 7F0954AC E7B6044C */ swc1 $f22, 0x44c($sp) +/* 0C9FE0 7F0954B0 E7B40460 */ swc1 $f20, 0x460($sp) +/* 0C9FE4 7F0954B4 E7B00464 */ swc1 $f16, 0x464($sp) +/* 0C9FE8 7F0954B8 E7AE0478 */ swc1 $f14, 0x478($sp) +/* 0C9FEC 7F0954BC E7AC047C */ swc1 $f12, 0x47c($sp) +/* 0C9FF0 7F0954C0 E7A60490 */ swc1 $f6, 0x490($sp) +/* 0C9FF4 7F0954C4 E7A80494 */ swc1 $f8, 0x494($sp) +/* 0C9FF8 7F0954C8 E7AA04A8 */ swc1 $f10, 0x4a8($sp) +/* 0C9FFC 7F0954CC E7A004AC */ swc1 $f0, 0x4ac($sp) +/* 0CA000 7F0954D0 27A4043C */ addiu $a0, $sp, 0x43c +/* 0CA004 7F0954D4 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0CA008 7F0954D8 8FA5056C */ lw $a1, 0x56c($sp) +/* 0CA00C 7F0954DC 27A40454 */ addiu $a0, $sp, 0x454 +/* 0CA010 7F0954E0 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0CA014 7F0954E4 8FA50568 */ lw $a1, 0x568($sp) +/* 0CA018 7F0954E8 27A4046C */ addiu $a0, $sp, 0x46c +/* 0CA01C 7F0954EC 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0CA020 7F0954F0 8FA50560 */ lw $a1, 0x560($sp) +/* 0CA024 7F0954F4 27A40484 */ addiu $a0, $sp, 0x484 +/* 0CA028 7F0954F8 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0CA02C 7F0954FC 8FA50558 */ lw $a1, 0x558($sp) +/* 0CA030 7F095500 27A4049C */ addiu $a0, $sp, 0x49c +/* 0CA034 7F095504 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0CA038 7F095508 8FA50554 */ lw $a1, 0x554($sp) +/* 0CA03C 7F09550C 100000A7 */ b .L7F0957AC +/* 0CA040 7F095510 00000000 */ nop +.L7F095514: +/* 0CA044 7F095514 C7B605C0 */ lwc1 $f22, 0x5c0($sp) +/* 0CA048 7F095518 C7A605C4 */ lwc1 $f6, 0x5c4($sp) +/* 0CA04C 7F09551C C7BA05C8 */ lwc1 $f26, 0x5c8($sp) +/* 0CA050 7F095520 4618B102 */ mul.s $f4, $f22, $f24 +/* 0CA054 7F095524 C7B205CC */ lwc1 $f18, 0x5cc($sp) +/* 0CA058 7F095528 C7B405D4 */ lwc1 $f20, 0x5d4($sp) +/* 0CA05C 7F09552C 46183202 */ mul.s $f8, $f6, $f24 +/* 0CA060 7F095530 C7A605D0 */ lwc1 $f6, 0x5d0($sp) +/* 0CA064 7F095534 C7A205E4 */ lwc1 $f2, 0x5e4($sp) +/* 0CA068 7F095538 4618D282 */ mul.s $f10, $f26, $f24 +/* 0CA06C 7F09553C E7A4043C */ swc1 $f4, 0x43c($sp) +/* 0CA070 7F095540 C7AC05EC */ lwc1 $f12, 0x5ec($sp) +/* 0CA074 7F095544 46189102 */ mul.s $f4, $f18, $f24 +/* 0CA078 7F095548 E7A80440 */ swc1 $f8, 0x440($sp) +/* 0CA07C 7F09554C C7AE05B4 */ lwc1 $f14, 0x5b4($sp) +/* 0CA080 7F095550 46183202 */ mul.s $f8, $f6, $f24 +/* 0CA084 7F095554 E7AA0444 */ swc1 $f10, 0x444($sp) +/* 0CA088 7F095558 C7A605E8 */ lwc1 $f6, 0x5e8($sp) +/* 0CA08C 7F09555C 4618A282 */ mul.s $f10, $f20, $f24 +/* 0CA090 7F095560 E7A40454 */ swc1 $f4, 0x454($sp) +/* 0CA094 7F095564 C7B005BC */ lwc1 $f16, 0x5bc($sp) +/* 0CA098 7F095568 46181102 */ mul.s $f4, $f2, $f24 +/* 0CA09C 7F09556C E7A80458 */ swc1 $f8, 0x458($sp) +/* 0CA0A0 7F095570 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0CA0A4 7F095574 46183202 */ mul.s $f8, $f6, $f24 +/* 0CA0A8 7F095578 E7AA045C */ swc1 $f10, 0x45c($sp) +/* 0CA0AC 7F09557C C7A605B8 */ lwc1 $f6, 0x5b8($sp) +/* 0CA0B0 7F095580 46186282 */ mul.s $f10, $f12, $f24 +/* 0CA0B4 7F095584 E7A4046C */ swc1 $f4, 0x46c($sp) +/* 0CA0B8 7F095588 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0CA0BC 7F09558C 46187102 */ mul.s $f4, $f14, $f24 +/* 0CA0C0 7F095590 E7A80470 */ swc1 $f8, 0x470($sp) +/* 0CA0C4 7F095594 24110005 */ li $s1, 5 +/* 0CA0C8 7F095598 46183202 */ mul.s $f8, $f6, $f24 +/* 0CA0CC 7F09559C E7AA0474 */ swc1 $f10, 0x474($sp) +/* 0CA0D0 7F0955A0 27A4043C */ addiu $a0, $sp, 0x43c +/* 0CA0D4 7F0955A4 46188282 */ mul.s $f10, $f16, $f24 +/* 0CA0D8 7F0955A8 E7A40484 */ swc1 $f4, 0x484($sp) +/* 0CA0DC 7F0955AC C7A40590 */ lwc1 $f4, 0x590($sp) +/* 0CA0E0 7F0955B0 8FA50560 */ lw $a1, 0x560($sp) +/* 0CA0E4 7F0955B4 E7A80488 */ swc1 $f8, 0x488($sp) +/* 0CA0E8 7F0955B8 46182182 */ mul.s $f6, $f4, $f24 +/* 0CA0EC 7F0955BC C7A80594 */ lwc1 $f8, 0x594($sp) +/* 0CA0F0 7F0955C0 E7AA048C */ swc1 $f10, 0x48c($sp) +/* 0CA0F4 7F0955C4 C7A40598 */ lwc1 $f4, 0x598($sp) +/* 0CA0F8 7F0955C8 46184282 */ mul.s $f10, $f8, $f24 +/* 0CA0FC 7F0955CC 4600D200 */ add.s $f8, $f26, $f0 +/* 0CA100 7F0955D0 E7B60448 */ swc1 $f22, 0x448($sp) +/* 0CA104 7F0955D4 E7A6049C */ swc1 $f6, 0x49c($sp) +/* 0CA108 7F0955D8 46182182 */ mul.s $f6, $f4, $f24 +/* 0CA10C 7F0955DC 46006100 */ add.s $f4, $f12, $f0 +/* 0CA110 7F0955E0 E7A8044C */ swc1 $f8, 0x44c($sp) +/* 0CA114 7F0955E4 E7AA04A0 */ swc1 $f10, 0x4a0($sp) +/* 0CA118 7F0955E8 C7A80590 */ lwc1 $f8, 0x590($sp) +/* 0CA11C 7F0955EC 4600A280 */ add.s $f10, $f20, $f0 +/* 0CA120 7F0955F0 E7A4047C */ swc1 $f4, 0x47c($sp) +/* 0CA124 7F0955F4 E7A604A4 */ swc1 $f6, 0x4a4($sp) +/* 0CA128 7F0955F8 46008180 */ add.s $f6, $f16, $f0 +/* 0CA12C 7F0955FC E7AA0464 */ swc1 $f10, 0x464($sp) +/* 0CA130 7F095600 C7AA0598 */ lwc1 $f10, 0x598($sp) +/* 0CA134 7F095604 E7B20460 */ swc1 $f18, 0x460($sp) +/* 0CA138 7F095608 E7A60494 */ swc1 $f6, 0x494($sp) +/* 0CA13C 7F09560C 46005100 */ add.s $f4, $f10, $f0 +/* 0CA140 7F095610 E7A20478 */ swc1 $f2, 0x478($sp) +/* 0CA144 7F095614 E7AE0490 */ swc1 $f14, 0x490($sp) +/* 0CA148 7F095618 E7A804A8 */ swc1 $f8, 0x4a8($sp) +/* 0CA14C 7F09561C 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0CA150 7F095620 E7A404AC */ swc1 $f4, 0x4ac($sp) +/* 0CA154 7F095624 27A40454 */ addiu $a0, $sp, 0x454 +/* 0CA158 7F095628 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0CA15C 7F09562C 8FA50564 */ lw $a1, 0x564($sp) +/* 0CA160 7F095630 27A4046C */ addiu $a0, $sp, 0x46c +/* 0CA164 7F095634 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0CA168 7F095638 8FA5056C */ lw $a1, 0x56c($sp) +/* 0CA16C 7F09563C 27A40484 */ addiu $a0, $sp, 0x484 +/* 0CA170 7F095640 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0CA174 7F095644 8FA5055C */ lw $a1, 0x55c($sp) +/* 0CA178 7F095648 27A4049C */ addiu $a0, $sp, 0x49c +/* 0CA17C 7F09564C 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0CA180 7F095650 8FA50550 */ lw $a1, 0x550($sp) +/* 0CA184 7F095654 10000055 */ b .L7F0957AC +/* 0CA188 7F095658 00000000 */ nop +.L7F09565C: +/* 0CA18C 7F09565C C7AE05D8 */ lwc1 $f14, 0x5d8($sp) +/* 0CA190 7F095660 C7A805DC */ lwc1 $f8, 0x5dc($sp) +/* 0CA194 7F095664 C7B005E0 */ lwc1 $f16, 0x5e0($sp) +/* 0CA198 7F095668 46187182 */ mul.s $f6, $f14, $f24 +/* 0CA19C 7F09566C C7B605C0 */ lwc1 $f22, 0x5c0($sp) +/* 0CA1A0 7F095670 C7BA05C8 */ lwc1 $f26, 0x5c8($sp) +/* 0CA1A4 7F095674 46184282 */ mul.s $f10, $f8, $f24 +/* 0CA1A8 7F095678 C7A805C4 */ lwc1 $f8, 0x5c4($sp) +/* 0CA1AC 7F09567C C7B205CC */ lwc1 $f18, 0x5cc($sp) +/* 0CA1B0 7F095680 46188102 */ mul.s $f4, $f16, $f24 +/* 0CA1B4 7F095684 E7A6043C */ swc1 $f6, 0x43c($sp) +/* 0CA1B8 7F095688 C7B405D4 */ lwc1 $f20, 0x5d4($sp) +/* 0CA1BC 7F09568C 4618B182 */ mul.s $f6, $f22, $f24 +/* 0CA1C0 7F095690 E7AA0440 */ swc1 $f10, 0x440($sp) +/* 0CA1C4 7F095694 C7A2059C */ lwc1 $f2, 0x59c($sp) +/* 0CA1C8 7F095698 46184282 */ mul.s $f10, $f8, $f24 +/* 0CA1CC 7F09569C E7A40444 */ swc1 $f4, 0x444($sp) +/* 0CA1D0 7F0956A0 C7A805D0 */ lwc1 $f8, 0x5d0($sp) +/* 0CA1D4 7F0956A4 4618D102 */ mul.s $f4, $f26, $f24 +/* 0CA1D8 7F0956A8 E7A60454 */ swc1 $f6, 0x454($sp) +/* 0CA1DC 7F0956AC C7AC05A4 */ lwc1 $f12, 0x5a4($sp) +/* 0CA1E0 7F0956B0 46189182 */ mul.s $f6, $f18, $f24 +/* 0CA1E4 7F0956B4 E7AA0458 */ swc1 $f10, 0x458($sp) +/* 0CA1E8 7F0956B8 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0CA1EC 7F0956BC 46184282 */ mul.s $f10, $f8, $f24 +/* 0CA1F0 7F0956C0 E7A4045C */ swc1 $f4, 0x45c($sp) +/* 0CA1F4 7F0956C4 C7A805A0 */ lwc1 $f8, 0x5a0($sp) +/* 0CA1F8 7F0956C8 4618A102 */ mul.s $f4, $f20, $f24 +/* 0CA1FC 7F0956CC E7A6046C */ swc1 $f6, 0x46c($sp) +/* 0CA200 7F0956D0 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0CA204 7F0956D4 46181182 */ mul.s $f6, $f2, $f24 +/* 0CA208 7F0956D8 E7AA0470 */ swc1 $f10, 0x470($sp) +/* 0CA20C 7F0956DC 24110005 */ li $s1, 5 +/* 0CA210 7F0956E0 46184282 */ mul.s $f10, $f8, $f24 +/* 0CA214 7F0956E4 E7A40474 */ swc1 $f4, 0x474($sp) +/* 0CA218 7F0956E8 27A4043C */ addiu $a0, $sp, 0x43c +/* 0CA21C 7F0956EC 46186102 */ mul.s $f4, $f12, $f24 +/* 0CA220 7F0956F0 E7A60484 */ swc1 $f6, 0x484($sp) +/* 0CA224 7F0956F4 C7A605B4 */ lwc1 $f6, 0x5b4($sp) +/* 0CA228 7F0956F8 8FA50568 */ lw $a1, 0x568($sp) +/* 0CA22C 7F0956FC E7AA0488 */ swc1 $f10, 0x488($sp) +/* 0CA230 7F095700 46183202 */ mul.s $f8, $f6, $f24 +/* 0CA234 7F095704 C7AA05B8 */ lwc1 $f10, 0x5b8($sp) +/* 0CA238 7F095708 E7A4048C */ swc1 $f4, 0x48c($sp) +/* 0CA23C 7F09570C C7A605BC */ lwc1 $f6, 0x5bc($sp) +/* 0CA240 7F095710 46185102 */ mul.s $f4, $f10, $f24 +/* 0CA244 7F095714 46008280 */ add.s $f10, $f16, $f0 +/* 0CA248 7F095718 E7AE0448 */ swc1 $f14, 0x448($sp) +/* 0CA24C 7F09571C E7A8049C */ swc1 $f8, 0x49c($sp) +/* 0CA250 7F095720 46183202 */ mul.s $f8, $f6, $f24 +/* 0CA254 7F095724 4600A180 */ add.s $f6, $f20, $f0 +/* 0CA258 7F095728 E7AA044C */ swc1 $f10, 0x44c($sp) +/* 0CA25C 7F09572C E7A404A0 */ swc1 $f4, 0x4a0($sp) +/* 0CA260 7F095730 C7AA05B4 */ lwc1 $f10, 0x5b4($sp) +/* 0CA264 7F095734 4600D100 */ add.s $f4, $f26, $f0 +/* 0CA268 7F095738 E7A6047C */ swc1 $f6, 0x47c($sp) +/* 0CA26C 7F09573C E7A804A4 */ swc1 $f8, 0x4a4($sp) +/* 0CA270 7F095740 46006200 */ add.s $f8, $f12, $f0 +/* 0CA274 7F095744 E7A40464 */ swc1 $f4, 0x464($sp) +/* 0CA278 7F095748 C7A405BC */ lwc1 $f4, 0x5bc($sp) +/* 0CA27C 7F09574C E7B60460 */ swc1 $f22, 0x460($sp) +/* 0CA280 7F095750 E7A80494 */ swc1 $f8, 0x494($sp) +/* 0CA284 7F095754 46002180 */ add.s $f6, $f4, $f0 +/* 0CA288 7F095758 E7B20478 */ swc1 $f18, 0x478($sp) +/* 0CA28C 7F09575C E7A20490 */ swc1 $f2, 0x490($sp) +/* 0CA290 7F095760 E7AA04A8 */ swc1 $f10, 0x4a8($sp) +/* 0CA294 7F095764 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0CA298 7F095768 E7A604AC */ swc1 $f6, 0x4ac($sp) +/* 0CA29C 7F09576C 27A40454 */ addiu $a0, $sp, 0x454 +/* 0CA2A0 7F095770 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0CA2A4 7F095774 8FA50560 */ lw $a1, 0x560($sp) +/* 0CA2A8 7F095778 27A4046C */ addiu $a0, $sp, 0x46c +/* 0CA2AC 7F09577C 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0CA2B0 7F095780 8FA50564 */ lw $a1, 0x564($sp) +/* 0CA2B4 7F095784 27A40484 */ addiu $a0, $sp, 0x484 +/* 0CA2B8 7F095788 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0CA2BC 7F09578C 8FA50554 */ lw $a1, 0x554($sp) +/* 0CA2C0 7F095790 27A4049C */ addiu $a0, $sp, 0x49c +/* 0CA2C4 7F095794 0FC24FE9 */ jal sub_GAME_7F093FA4 +/* 0CA2C8 7F095798 8FA5055C */ lw $a1, 0x55c($sp) +/* 0CA2CC 7F09579C 10000003 */ b .L7F0957AC +/* 0CA2D0 7F0957A0 00000000 */ nop +def_7F094A38: +.L7F0957A4: +/* 0CA2D4 7F0957A4 100006EE */ b .L7F097360 +/* 0CA2D8 7F0957A8 8FA206B0 */ lw $v0, 0x6b0($sp) +.L7F0957AC: +/* 0CA2DC 7F0957AC 5A20018E */ blezl $s1, .L7F095DE8 +/* 0CA2E0 7F0957B0 8FAA005C */ lw $t2, 0x5c($sp) +/* 0CA2E4 7F0957B4 0FC1E0F9 */ jal get_BONDdata_field_10DC +/* 0CA2E8 7F0957B8 00000000 */ nop +/* 0CA2EC 7F0957BC 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0CA2F0 7F0957C0 00408025 */ move $s0, $v0 +/* 0CA2F4 7F0957C4 02002025 */ move $a0, $s0 +/* 0CA2F8 7F0957C8 00402825 */ move $a1, $v0 +/* 0CA2FC 7F0957CC 0FC16032 */ jal matrix_4x4_multiply +/* 0CA300 7F0957D0 27A603CC */ addiu $a2, $sp, 0x3cc +/* 0CA304 7F0957D4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CA308 7F0957D8 44814000 */ mtc1 $at, $f8 +/* 0CA30C 7F0957DC 3C048008 */ lui $a0, %hi(dword_CODE_bss_80079E98) +/* 0CA310 7F0957E0 24849E98 */ addiu $a0, %lo(dword_CODE_bss_80079E98) # addiu $a0, $a0, -0x6168 +/* 0CA314 7F0957E4 46184003 */ div.s $f0, $f8, $f24 +/* 0CA318 7F0957E8 44050000 */ mfc1 $a1, $f0 +/* 0CA31C 7F0957EC 44060000 */ mfc1 $a2, $f0 +/* 0CA320 7F0957F0 44070000 */ mfc1 $a3, $f0 +/* 0CA324 7F0957F4 0C005BA4 */ jal guScaleF +/* 0CA328 7F0957F8 00000000 */ nop +/* 0CA32C 7F0957FC 3C058008 */ lui $a1, %hi(dword_CODE_bss_80079E98) +/* 0CA330 7F095800 24A59E98 */ addiu $a1, %lo(dword_CODE_bss_80079E98) # addiu $a1, $a1, -0x6168 +/* 0CA334 7F095804 27A403CC */ addiu $a0, $sp, 0x3cc +/* 0CA338 7F095808 0FC16032 */ jal matrix_4x4_multiply +/* 0CA33C 7F09580C 27A6038C */ addiu $a2, $sp, 0x38c +/* 0CA340 7F095810 1A20004E */ blez $s1, .L7F09594C +/* 0CA344 7F095814 AFA00270 */ sw $zero, 0x270($sp) +/* 0CA348 7F095818 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0CA34C 7F09581C 27A4043C */ addiu $a0, $sp, 0x43c +/* 0CA350 7F095820 4481D000 */ mtc1 $at, $f26 +/* 0CA354 7F095824 AFA40058 */ sw $a0, 0x58($sp) +/* 0CA358 7F095828 27B00274 */ addiu $s0, $sp, 0x274 +.L7F09582C: +/* 0CA35C 7F09582C 3C018005 */ lui $at, %hi(D_80057584) +/* 0CA360 7F095830 C4207584 */ lwc1 $f0, %lo(D_80057584)($at) +/* 0CA364 7F095834 8FA40058 */ lw $a0, 0x58($sp) +/* 0CA368 7F095838 27A5038C */ addiu $a1, $sp, 0x38c +/* 0CA36C 7F09583C 44070000 */ mfc1 $a3, $f0 +/* 0CA370 7F095840 24060082 */ li $a2, 130 +/* 0CA374 7F095844 AFB00014 */ sw $s0, 0x14($sp) +/* 0CA378 7F095848 0FC25CE2 */ jal sub_GAME_7F097388 +/* 0CA37C 7F09584C E7A00010 */ swc1 $f0, 0x10($sp) +/* 0CA380 7F095850 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CA384 7F095854 00000000 */ nop +/* 0CA388 7F095858 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CA38C 7F09585C 46000506 */ mov.s $f20, $f0 +/* 0CA390 7F095860 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0CA394 7F095864 46000586 */ mov.s $f22, $f0 +/* 0CA398 7F095868 46160280 */ add.s $f10, $f0, $f22 +/* 0CA39C 7F09586C 461AA382 */ mul.s $f14, $f20, $f26 +/* 0CA3A0 7F095870 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CA3A4 7F095874 44813000 */ mtc1 $at, $f6 +/* 0CA3A8 7F095878 461A5102 */ mul.s $f4, $f10, $f26 +/* 0CA3AC 7F09587C C60C0028 */ lwc1 $f12, 0x28($s0) +/* 0CA3B0 7F095880 46062201 */ sub.s $f8, $f4, $f6 +/* 0CA3B4 7F095884 44064000 */ mfc1 $a2, $f8 +/* 0CA3B8 7F095888 0FC24F12 */ jal sub_GAME_7F093C48 +/* 0CA3BC 7F09588C 00000000 */ nop +/* 0CA3C0 7F095890 0FC1E135 */ jal getPlayer_c_screentop +/* 0CA3C4 7F095894 E6000028 */ swc1 $f0, 0x28($s0) +/* 0CA3C8 7F095898 0FC1E135 */ jal getPlayer_c_screentop +/* 0CA3CC 7F09589C 46000506 */ mov.s $f20, $f0 +/* 0CA3D0 7F0958A0 0FC1E12D */ jal getPlayer_c_screenheight +/* 0CA3D4 7F0958A4 46000586 */ mov.s $f22, $f0 +/* 0CA3D8 7F0958A8 46160280 */ add.s $f10, $f0, $f22 +/* 0CA3DC 7F0958AC 461AA382 */ mul.s $f14, $f20, $f26 +/* 0CA3E0 7F0958B0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CA3E4 7F0958B4 44813000 */ mtc1 $at, $f6 +/* 0CA3E8 7F0958B8 461A5102 */ mul.s $f4, $f10, $f26 +/* 0CA3EC 7F0958BC C60C002C */ lwc1 $f12, 0x2c($s0) +/* 0CA3F0 7F0958C0 46062201 */ sub.s $f8, $f4, $f6 +/* 0CA3F4 7F0958C4 44064000 */ mfc1 $a2, $f8 +/* 0CA3F8 7F0958C8 0FC24F12 */ jal sub_GAME_7F093C48 +/* 0CA3FC 7F0958CC 00000000 */ nop +/* 0CA400 7F0958D0 0FC1E135 */ jal getPlayer_c_screentop +/* 0CA404 7F0958D4 E600002C */ swc1 $f0, 0x2c($s0) +/* 0CA408 7F0958D8 461A0282 */ mul.s $f10, $f0, $f26 +/* 0CA40C 7F0958DC C606002C */ lwc1 $f6, 0x2c($s0) +/* 0CA410 7F0958E0 461A5100 */ add.s $f4, $f10, $f26 +/* 0CA414 7F0958E4 4606203C */ c.lt.s $f4, $f6 +/* 0CA418 7F0958E8 00000000 */ nop +/* 0CA41C 7F0958EC 45020010 */ bc1fl .L7F095930 +/* 0CA420 7F0958F0 8FB90058 */ lw $t9, 0x58($sp) +/* 0CA424 7F0958F4 0FC1E135 */ jal getPlayer_c_screentop +/* 0CA428 7F0958F8 00000000 */ nop +/* 0CA42C 7F0958FC 0FC1E12D */ jal getPlayer_c_screenheight +/* 0CA430 7F095900 46000506 */ mov.s $f20, $f0 +/* 0CA434 7F095904 46140200 */ add.s $f8, $f0, $f20 +/* 0CA438 7F095908 C602002C */ lwc1 $f2, 0x2c($s0) +/* 0CA43C 7F09590C 461A4282 */ mul.s $f10, $f8, $f26 +/* 0CA440 7F095910 461A5101 */ sub.s $f4, $f10, $f26 +/* 0CA444 7F095914 4604103C */ c.lt.s $f2, $f4 +/* 0CA448 7F095918 00000000 */ nop +/* 0CA44C 7F09591C 45020004 */ bc1fl .L7F095930 +/* 0CA450 7F095920 8FB90058 */ lw $t9, 0x58($sp) +/* 0CA454 7F095924 461A1181 */ sub.s $f6, $f2, $f26 +/* 0CA458 7F095928 E606002C */ swc1 $f6, 0x2c($s0) +/* 0CA45C 7F09592C 8FB90058 */ lw $t9, 0x58($sp) +.L7F095930: +/* 0CA460 7F095930 8FA20270 */ lw $v0, 0x270($sp) +/* 0CA464 7F095934 26100038 */ addiu $s0, $s0, 0x38 +/* 0CA468 7F095938 272D0018 */ addiu $t5, $t9, 0x18 +/* 0CA46C 7F09593C 24420001 */ addiu $v0, $v0, 1 +/* 0CA470 7F095940 AFA20270 */ sw $v0, 0x270($sp) +/* 0CA474 7F095944 1451FFB9 */ bne $v0, $s1, .L7F09582C +/* 0CA478 7F095948 AFAD0058 */ sw $t5, 0x58($sp) +.L7F09594C: +/* 0CA47C 7F09594C 0FC2E9CB */ jal get_ptr_currentdata +/* 0CA480 7F095950 00000000 */ nop +/* 0CA484 7F095954 904B0020 */ lbu $t3, 0x20($v0) +/* 0CA488 7F095958 8FAE06B0 */ lw $t6, 0x6b0($sp) +/* 0CA48C 7F09595C 3C0FE700 */ lui $t7, 0xe700 +/* 0CA490 7F095960 156000A6 */ bnez $t3, .L7F095BFC +/* 0CA494 7F095964 25CA0008 */ addiu $t2, $t6, 8 +/* 0CA498 7F095968 3C018005 */ lui $at, %hi(D_80057588) +/* 0CA49C 7F09596C C4327588 */ lwc1 $f18, %lo(D_80057588)($at) +/* 0CA4A0 7F095970 3C018005 */ lui $at, %hi(D_8005758C) +/* 0CA4A4 7F095974 C434758C */ lwc1 $f20, %lo(D_8005758C)($at) +/* 0CA4A8 7F095978 44808000 */ mtc1 $zero, $f16 +/* 0CA4AC 7F09597C 00001825 */ move $v1, $zero +/* 0CA4B0 7F095980 46009086 */ mov.s $f2, $f18 +/* 0CA4B4 7F095984 4600A386 */ mov.s $f14, $f20 +/* 0CA4B8 7F095988 1A200054 */ blez $s1, .L7F095ADC +/* 0CA4BC 7F09598C 46008306 */ mov.s $f12, $f16 +/* 0CA4C0 7F095990 32220001 */ andi $v0, $s1, 1 +/* 0CA4C4 7F095994 10400019 */ beqz $v0, .L7F0959FC +/* 0CA4C8 7F095998 C7A0029C */ lwc1 $f0, 0x29c($sp) +/* 0CA4CC 7F09599C 4612003C */ c.lt.s $f0, $f18 +/* 0CA4D0 7F0959A0 44804000 */ mtc1 $zero, $f8 +/* 0CA4D4 7F0959A4 44805000 */ mtc1 $zero, $f10 +/* 0CA4D8 7F0959A8 24030001 */ li $v1, 1 +/* 0CA4DC 7F0959AC 45020003 */ bc1fl .L7F0959BC +/* 0CA4E0 7F0959B0 4600403C */ c.lt.s $f8, $f0 +/* 0CA4E4 7F0959B4 46000086 */ mov.s $f2, $f0 +/* 0CA4E8 7F0959B8 4600403C */ c.lt.s $f8, $f0 +.L7F0959BC: +/* 0CA4EC 7F0959BC 00000000 */ nop +/* 0CA4F0 7F0959C0 45020003 */ bc1fl .L7F0959D0 +/* 0CA4F4 7F0959C4 C7A002A0 */ lwc1 $f0, 0x2a0($sp) +/* 0CA4F8 7F0959C8 46000306 */ mov.s $f12, $f0 +/* 0CA4FC 7F0959CC C7A002A0 */ lwc1 $f0, 0x2a0($sp) +.L7F0959D0: +/* 0CA500 7F0959D0 4614003C */ c.lt.s $f0, $f20 +/* 0CA504 7F0959D4 00000000 */ nop +/* 0CA508 7F0959D8 45020003 */ bc1fl .L7F0959E8 +/* 0CA50C 7F0959DC 4600503C */ c.lt.s $f10, $f0 +/* 0CA510 7F0959E0 46000386 */ mov.s $f14, $f0 +/* 0CA514 7F0959E4 4600503C */ c.lt.s $f10, $f0 +.L7F0959E8: +/* 0CA518 7F0959E8 00000000 */ nop +/* 0CA51C 7F0959EC 45000002 */ bc1f .L7F0959F8 +/* 0CA520 7F0959F0 00000000 */ nop +/* 0CA524 7F0959F4 46000406 */ mov.s $f16, $f0 +.L7F0959F8: +/* 0CA528 7F0959F8 10710038 */ beq $v1, $s1, .L7F095ADC +.L7F0959FC: +/* 0CA52C 7F0959FC 000360C0 */ sll $t4, $v1, 3 +/* 0CA530 7F095A00 0011C0C0 */ sll $t8, $s1, 3 +/* 0CA534 7F095A04 0311C023 */ subu $t8, $t8, $s1 +/* 0CA538 7F095A08 01836023 */ subu $t4, $t4, $v1 +/* 0CA53C 7F095A0C 27AE0274 */ addiu $t6, $sp, 0x274 +/* 0CA540 7F095A10 000C60C0 */ sll $t4, $t4, 3 +/* 0CA544 7F095A14 0018C0C0 */ sll $t8, $t8, 3 +/* 0CA548 7F095A18 030E2021 */ addu $a0, $t8, $t6 +/* 0CA54C 7F095A1C 018E1021 */ addu $v0, $t4, $t6 +/* 0CA550 7F095A20 C4400028 */ lwc1 $f0, 0x28($v0) +.L7F095A24: +/* 0CA554 7F095A24 4602003C */ c.lt.s $f0, $f2 +/* 0CA558 7F095A28 00000000 */ nop +/* 0CA55C 7F095A2C 45020003 */ bc1fl .L7F095A3C +/* 0CA560 7F095A30 4600603C */ c.lt.s $f12, $f0 +/* 0CA564 7F095A34 46000086 */ mov.s $f2, $f0 +/* 0CA568 7F095A38 4600603C */ c.lt.s $f12, $f0 +.L7F095A3C: +/* 0CA56C 7F095A3C 00000000 */ nop +/* 0CA570 7F095A40 45020003 */ bc1fl .L7F095A50 +/* 0CA574 7F095A44 C440002C */ lwc1 $f0, 0x2c($v0) +/* 0CA578 7F095A48 46000306 */ mov.s $f12, $f0 +/* 0CA57C 7F095A4C C440002C */ lwc1 $f0, 0x2c($v0) +.L7F095A50: +/* 0CA580 7F095A50 460E003C */ c.lt.s $f0, $f14 +/* 0CA584 7F095A54 00000000 */ nop +/* 0CA588 7F095A58 45020003 */ bc1fl .L7F095A68 +/* 0CA58C 7F095A5C 4600803C */ c.lt.s $f16, $f0 +/* 0CA590 7F095A60 46000386 */ mov.s $f14, $f0 +/* 0CA594 7F095A64 4600803C */ c.lt.s $f16, $f0 +.L7F095A68: +/* 0CA598 7F095A68 00000000 */ nop +/* 0CA59C 7F095A6C 45020003 */ bc1fl .L7F095A7C +/* 0CA5A0 7F095A70 C4400060 */ lwc1 $f0, 0x60($v0) +/* 0CA5A4 7F095A74 46000406 */ mov.s $f16, $f0 +/* 0CA5A8 7F095A78 C4400060 */ lwc1 $f0, 0x60($v0) +.L7F095A7C: +/* 0CA5AC 7F095A7C 4602003C */ c.lt.s $f0, $f2 +/* 0CA5B0 7F095A80 00000000 */ nop +/* 0CA5B4 7F095A84 45020003 */ bc1fl .L7F095A94 +/* 0CA5B8 7F095A88 4600603C */ c.lt.s $f12, $f0 +/* 0CA5BC 7F095A8C 46000086 */ mov.s $f2, $f0 +/* 0CA5C0 7F095A90 4600603C */ c.lt.s $f12, $f0 +.L7F095A94: +/* 0CA5C4 7F095A94 00000000 */ nop +/* 0CA5C8 7F095A98 45020003 */ bc1fl .L7F095AA8 +/* 0CA5CC 7F095A9C C4400064 */ lwc1 $f0, 0x64($v0) +/* 0CA5D0 7F095AA0 46000306 */ mov.s $f12, $f0 +/* 0CA5D4 7F095AA4 C4400064 */ lwc1 $f0, 0x64($v0) +.L7F095AA8: +/* 0CA5D8 7F095AA8 24420070 */ addiu $v0, $v0, 0x70 +/* 0CA5DC 7F095AAC 460E003C */ c.lt.s $f0, $f14 +/* 0CA5E0 7F095AB0 00000000 */ nop +/* 0CA5E4 7F095AB4 45020003 */ bc1fl .L7F095AC4 +/* 0CA5E8 7F095AB8 4600803C */ c.lt.s $f16, $f0 +/* 0CA5EC 7F095ABC 46000386 */ mov.s $f14, $f0 +/* 0CA5F0 7F095AC0 4600803C */ c.lt.s $f16, $f0 +.L7F095AC4: +/* 0CA5F4 7F095AC4 00000000 */ nop +/* 0CA5F8 7F095AC8 45000002 */ bc1f .L7F095AD4 +/* 0CA5FC 7F095ACC 00000000 */ nop +/* 0CA600 7F095AD0 46000406 */ mov.s $f16, $f0 +.L7F095AD4: +/* 0CA604 7F095AD4 5444FFD3 */ bnel $v0, $a0, .L7F095A24 +/* 0CA608 7F095AD8 C4400028 */ lwc1 $f0, 0x28($v0) +.L7F095ADC: +/* 0CA60C 7F095ADC 8FAA06B0 */ lw $t2, 0x6b0($sp) +/* 0CA610 7F095AE0 3C19E700 */ lui $t9, 0xe700 +/* 0CA614 7F095AE4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CA618 7F095AE8 254F0008 */ addiu $t7, $t2, 8 +/* 0CA61C 7F095AEC AFAF06B0 */ sw $t7, 0x6b0($sp) +/* 0CA620 7F095AF0 AD400004 */ sw $zero, 4($t2) +/* 0CA624 7F095AF4 AD590000 */ sw $t9, ($t2) +/* 0CA628 7F095AF8 8FAD06B0 */ lw $t5, 0x6b0($sp) +/* 0CA62C 7F095AFC 44810000 */ mtc1 $at, $f0 +/* 0CA630 7F095B00 3C0CBA00 */ lui $t4, (0xBA001402 >> 16) # lui $t4, 0xba00 +/* 0CA634 7F095B04 25AB0008 */ addiu $t3, $t5, 8 +/* 0CA638 7F095B08 AFAB06B0 */ sw $t3, 0x6b0($sp) +/* 0CA63C 7F095B0C 358C1402 */ ori $t4, (0xBA001402 & 0xFFFF) # ori $t4, $t4, 0x1402 +/* 0CA640 7F095B10 3C180030 */ lui $t8, 0x30 +/* 0CA644 7F095B14 46006102 */ mul.s $f4, $f12, $f0 +/* 0CA648 7F095B18 ADB80004 */ sw $t8, 4($t5) +/* 0CA64C 7F095B1C ADAC0000 */ sw $t4, ($t5) +/* 0CA650 7F095B20 8FAE06B0 */ lw $t6, 0x6b0($sp) +/* 0CA654 7F095B24 46008202 */ mul.s $f8, $f16, $f0 +/* 0CA658 7F095B28 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 0CA65C 7F095B2C 25CA0008 */ addiu $t2, $t6, 8 +/* 0CA660 7F095B30 AFAA06B0 */ sw $t2, 0x6b0($sp) +/* 0CA664 7F095B34 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 0CA668 7F095B38 ADCF0000 */ sw $t7, ($t6) +/* 0CA66C 7F095B3C ADC00004 */ sw $zero, 4($t6) +/* 0CA670 7F095B40 4600218D */ trunc.w.s $f6, $f4 +/* 0CA674 7F095B44 8FB906B0 */ lw $t9, 0x6b0($sp) +/* 0CA678 7F095B48 46001102 */ mul.s $f4, $f2, $f0 +/* 0CA67C 7F095B4C 4600428D */ trunc.w.s $f10, $f8 +/* 0CA680 7F095B50 272D0008 */ addiu $t5, $t9, 8 +/* 0CA684 7F095B54 46007202 */ mul.s $f8, $f14, $f0 +/* 0CA688 7F095B58 3C07BA00 */ lui $a3, (0xBA001301 >> 16) # lui $a3, 0xba00 +/* 0CA68C 7F095B5C AFAD06B0 */ sw $t5, 0x6b0($sp) +/* 0CA690 7F095B60 34E71301 */ ori $a3, (0xBA001301 & 0xFFFF) # ori $a3, $a3, 0x1301 +/* 0CA694 7F095B64 AF270000 */ sw $a3, ($t9) +/* 0CA698 7F095B68 AF200004 */ sw $zero, 4($t9) +/* 0CA69C 7F095B6C 8FA606B0 */ lw $a2, 0x6b0($sp) +/* 0CA6A0 7F095B70 440E3000 */ mfc1 $t6, $f6 +/* 0CA6A4 7F095B74 440B5000 */ mfc1 $t3, $f10 +/* 0CA6A8 7F095B78 24CC0008 */ addiu $t4, $a2, 8 +/* 0CA6AC 7F095B7C 31CA03FF */ andi $t2, $t6, 0x3ff +/* 0CA6B0 7F095B80 4600428D */ trunc.w.s $f10, $f8 +/* 0CA6B4 7F095B84 000A7B80 */ sll $t7, $t2, 0xe +/* 0CA6B8 7F095B88 AFAC06B0 */ sw $t4, 0x6b0($sp) +/* 0CA6BC 7F095B8C 4600218D */ trunc.w.s $f6, $f4 +/* 0CA6C0 7F095B90 3C01F600 */ lui $at, 0xf600 +/* 0CA6C4 7F095B94 01E1C825 */ or $t9, $t7, $at +/* 0CA6C8 7F095B98 316C03FF */ andi $t4, $t3, 0x3ff +/* 0CA6CC 7F095B9C 000CC080 */ sll $t8, $t4, 2 +/* 0CA6D0 7F095BA0 03387025 */ or $t6, $t9, $t8 +/* 0CA6D4 7F095BA4 44195000 */ mfc1 $t9, $f10 +/* 0CA6D8 7F095BA8 440F3000 */ mfc1 $t7, $f6 +/* 0CA6DC 7F095BAC ACCE0000 */ sw $t6, ($a2) +/* 0CA6E0 7F095BB0 333803FF */ andi $t8, $t9, 0x3ff +/* 0CA6E4 7F095BB4 31ED03FF */ andi $t5, $t7, 0x3ff +/* 0CA6E8 7F095BB8 000D5B80 */ sll $t3, $t5, 0xe +/* 0CA6EC 7F095BBC 00187080 */ sll $t6, $t8, 2 +/* 0CA6F0 7F095BC0 016E5025 */ or $t2, $t3, $t6 +/* 0CA6F4 7F095BC4 ACCA0004 */ sw $t2, 4($a2) +/* 0CA6F8 7F095BC8 8FAF06B0 */ lw $t7, 0x6b0($sp) +/* 0CA6FC 7F095BCC 3C0CE700 */ lui $t4, 0xe700 +/* 0CA700 7F095BD0 3C0B0008 */ lui $t3, 8 +/* 0CA704 7F095BD4 25ED0008 */ addiu $t5, $t7, 8 +/* 0CA708 7F095BD8 AFAD06B0 */ sw $t5, 0x6b0($sp) +/* 0CA70C 7F095BDC ADE00004 */ sw $zero, 4($t7) +/* 0CA710 7F095BE0 ADEC0000 */ sw $t4, ($t7) +/* 0CA714 7F095BE4 8FB906B0 */ lw $t9, 0x6b0($sp) +/* 0CA718 7F095BE8 27380008 */ addiu $t8, $t9, 8 +/* 0CA71C 7F095BEC AFB806B0 */ sw $t8, 0x6b0($sp) +/* 0CA720 7F095BF0 AF2B0004 */ sw $t3, 4($t9) +/* 0CA724 7F095BF4 1000007B */ b .L7F095DE4 +/* 0CA728 7F095BF8 AF270000 */ sw $a3, ($t9) +.L7F095BFC: +/* 0CA72C 7F095BFC AFAA06B0 */ sw $t2, 0x6b0($sp) +/* 0CA730 7F095C00 ADC00004 */ sw $zero, 4($t6) +/* 0CA734 7F095C04 0FC2E9CB */ jal get_ptr_currentdata +/* 0CA738 7F095C08 ADCF0000 */ sw $t7, ($t6) +/* 0CA73C 7F095C0C 844D0028 */ lh $t5, 0x28($v0) +/* 0CA740 7F095C10 3C198009 */ lui $t9, %hi(skywaterimages) +/* 0CA744 7F095C14 8F39D124 */ lw $t9, %lo(skywaterimages)($t9) +/* 0CA748 7F095C18 000D6080 */ sll $t4, $t5, 2 +/* 0CA74C 7F095C1C 018D6023 */ subu $t4, $t4, $t5 +/* 0CA750 7F095C20 000C6080 */ sll $t4, $t4, 2 +/* 0CA754 7F095C24 24180002 */ li $t8, 2 +/* 0CA758 7F095C28 AFB80010 */ sw $t8, 0x10($sp) +/* 0CA75C 7F095C2C 27A406B0 */ addiu $a0, $sp, 0x6b0 +/* 0CA760 7F095C30 24060001 */ li $a2, 1 +/* 0CA764 7F095C34 00003825 */ move $a3, $zero +/* 0CA768 7F095C38 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 0CA76C 7F095C3C 01992821 */ addu $a1, $t4, $t9 +/* 0CA770 7F095C40 8FA406B0 */ lw $a0, 0x6b0($sp) +/* 0CA774 7F095C44 0FC24D0F */ jal sub_GAME_7F09343C +/* 0CA778 7F095C48 00002825 */ move $a1, $zero +/* 0CA77C 7F095C4C 244B0008 */ addiu $t3, $v0, 8 +/* 0CA780 7F095C50 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0CA784 7F095C54 3C0A0F0A */ lui $t2, (0x0F0A4000 >> 16) # lui $t2, 0xf0a +/* 0CA788 7F095C58 354A4000 */ ori $t2, (0x0F0A4000 & 0xFFFF) # ori $t2, $t2, 0x4000 +/* 0CA78C 7F095C5C 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0CA790 7F095C60 AFAB06B0 */ sw $t3, 0x6b0($sp) +/* 0CA794 7F095C64 24010004 */ li $at, 4 +/* 0CA798 7F095C68 AC4A0004 */ sw $t2, 4($v0) +/* 0CA79C 7F095C6C 1621002A */ bne $s1, $at, .L7F095D18 +/* 0CA7A0 7F095C70 AC4E0000 */ sw $t6, ($v0) +/* 0CA7A4 7F095C74 3C014302 */ li $at, 0x43020000 # 130.000000 +/* 0CA7A8 7F095C78 44812000 */ mtc1 $at, $f4 +/* 0CA7AC 7F095C7C 27B00274 */ addiu $s0, $sp, 0x274 +/* 0CA7B0 7F095C80 27B1031C */ addiu $s1, $sp, 0x31c +/* 0CA7B4 7F095C84 240F0001 */ li $t7, 1 +/* 0CA7B8 7F095C88 AFAF0014 */ sw $t7, 0x14($sp) +/* 0CA7BC 7F095C8C 02203825 */ move $a3, $s1 +/* 0CA7C0 7F095C90 02002825 */ move $a1, $s0 +/* 0CA7C4 7F095C94 8FA406B0 */ lw $a0, 0x6b0($sp) +/* 0CA7C8 7F095C98 27A602AC */ addiu $a2, $sp, 0x2ac +/* 0CA7CC 7F095C9C 0FC25E06 */ jal sub_GAME_7F097818 +/* 0CA7D0 7F095CA0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0CA7D4 7F095CA4 8FAD0430 */ lw $t5, 0x430($sp) +/* 0CA7D8 7F095CA8 00402025 */ move $a0, $v0 +/* 0CA7DC 7F095CAC 02202825 */ move $a1, $s1 +/* 0CA7E0 7F095CB0 11A0000F */ beqz $t5, .L7F095CF0 +/* 0CA7E4 7F095CB4 27A602E4 */ addiu $a2, $sp, 0x2e4 +/* 0CA7E8 7F095CB8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CA7EC 7F095CBC 44811000 */ mtc1 $at, $f2 +/* 0CA7F0 7F095CC0 C7A602D8 */ lwc1 $f6, 0x2d8($sp) +/* 0CA7F4 7F095CC4 C7A002A0 */ lwc1 $f0, 0x2a0($sp) +/* 0CA7F8 7F095CC8 C7AA0310 */ lwc1 $f10, 0x310($sp) +/* 0CA7FC 7F095CCC 46023200 */ add.s $f8, $f6, $f2 +/* 0CA800 7F095CD0 C7A60348 */ lwc1 $f6, 0x348($sp) +/* 0CA804 7F095CD4 46020000 */ add.s $f0, $f0, $f2 +/* 0CA808 7F095CD8 E7A802D8 */ swc1 $f8, 0x2d8($sp) +/* 0CA80C 7F095CDC 46025100 */ add.s $f4, $f10, $f2 +/* 0CA810 7F095CE0 E7A002A0 */ swc1 $f0, 0x2a0($sp) +/* 0CA814 7F095CE4 46023200 */ add.s $f8, $f6, $f2 +/* 0CA818 7F095CE8 E7A40310 */ swc1 $f4, 0x310($sp) +/* 0CA81C 7F095CEC E7A80348 */ swc1 $f8, 0x348($sp) +.L7F095CF0: +/* 0CA820 7F095CF0 3C014302 */ li $at, 0x43020000 # 130.000000 +/* 0CA824 7F095CF4 44815000 */ mtc1 $at, $f10 +/* 0CA828 7F095CF8 240C0001 */ li $t4, 1 +/* 0CA82C 7F095CFC AFAC0014 */ sw $t4, 0x14($sp) +/* 0CA830 7F095D00 02003825 */ move $a3, $s0 +/* 0CA834 7F095D04 AFA406B0 */ sw $a0, 0x6b0($sp) +/* 0CA838 7F095D08 0FC25E06 */ jal sub_GAME_7F097818 +/* 0CA83C 7F095D0C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0CA840 7F095D10 10000034 */ b .L7F095DE4 +/* 0CA844 7F095D14 AFA206B0 */ sw $v0, 0x6b0($sp) +.L7F095D18: +/* 0CA848 7F095D18 24010005 */ li $at, 5 +/* 0CA84C 7F095D1C 16210024 */ bne $s1, $at, .L7F095DB0 +/* 0CA850 7F095D20 27B00274 */ addiu $s0, $sp, 0x274 +/* 0CA854 7F095D24 3C014302 */ li $at, 0x43020000 # 130.000000 +/* 0CA858 7F095D28 44812000 */ mtc1 $at, $f4 +/* 0CA85C 7F095D2C 24190001 */ li $t9, 1 +/* 0CA860 7F095D30 AFB90014 */ sw $t9, 0x14($sp) +/* 0CA864 7F095D34 8FA406B0 */ lw $a0, 0x6b0($sp) +/* 0CA868 7F095D38 02002825 */ move $a1, $s0 +/* 0CA86C 7F095D3C 27A602AC */ addiu $a2, $sp, 0x2ac +/* 0CA870 7F095D40 27A702E4 */ addiu $a3, $sp, 0x2e4 +/* 0CA874 7F095D44 0FC25E06 */ jal sub_GAME_7F097818 +/* 0CA878 7F095D48 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0CA87C 7F095D4C 3C014302 */ li $at, 0x43020000 # 130.000000 +/* 0CA880 7F095D50 44813000 */ mtc1 $at, $f6 +/* 0CA884 7F095D54 27B1031C */ addiu $s1, $sp, 0x31c +/* 0CA888 7F095D58 24180001 */ li $t8, 1 +/* 0CA88C 7F095D5C AFA206B0 */ sw $v0, 0x6b0($sp) +/* 0CA890 7F095D60 AFB80014 */ sw $t8, 0x14($sp) +/* 0CA894 7F095D64 02203825 */ move $a3, $s1 +/* 0CA898 7F095D68 00402025 */ move $a0, $v0 +/* 0CA89C 7F095D6C 02002825 */ move $a1, $s0 +/* 0CA8A0 7F095D70 27A602E4 */ addiu $a2, $sp, 0x2e4 +/* 0CA8A4 7F095D74 0FC25E06 */ jal sub_GAME_7F097818 +/* 0CA8A8 7F095D78 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0CA8AC 7F095D7C 3C014302 */ li $at, 0x43020000 # 130.000000 +/* 0CA8B0 7F095D80 44814000 */ mtc1 $at, $f8 +/* 0CA8B4 7F095D84 240B0001 */ li $t3, 1 +/* 0CA8B8 7F095D88 AFA206B0 */ sw $v0, 0x6b0($sp) +/* 0CA8BC 7F095D8C AFAB0014 */ sw $t3, 0x14($sp) +/* 0CA8C0 7F095D90 00402025 */ move $a0, $v0 +/* 0CA8C4 7F095D94 02002825 */ move $a1, $s0 +/* 0CA8C8 7F095D98 02203025 */ move $a2, $s1 +/* 0CA8CC 7F095D9C 27A70354 */ addiu $a3, $sp, 0x354 +/* 0CA8D0 7F095DA0 0FC25E06 */ jal sub_GAME_7F097818 +/* 0CA8D4 7F095DA4 E7A80010 */ swc1 $f8, 0x10($sp) +/* 0CA8D8 7F095DA8 1000000E */ b .L7F095DE4 +/* 0CA8DC 7F095DAC AFA206B0 */ sw $v0, 0x6b0($sp) +.L7F095DB0: +/* 0CA8E0 7F095DB0 24010003 */ li $at, 3 +/* 0CA8E4 7F095DB4 1621000B */ bne $s1, $at, .L7F095DE4 +/* 0CA8E8 7F095DB8 27A50274 */ addiu $a1, $sp, 0x274 +/* 0CA8EC 7F095DBC 3C014302 */ li $at, 0x43020000 # 130.000000 +/* 0CA8F0 7F095DC0 44815000 */ mtc1 $at, $f10 +/* 0CA8F4 7F095DC4 240E0001 */ li $t6, 1 +/* 0CA8F8 7F095DC8 AFAE0014 */ sw $t6, 0x14($sp) +/* 0CA8FC 7F095DCC 8FA406B0 */ lw $a0, 0x6b0($sp) +/* 0CA900 7F095DD0 27A602AC */ addiu $a2, $sp, 0x2ac +/* 0CA904 7F095DD4 27A702E4 */ addiu $a3, $sp, 0x2e4 +/* 0CA908 7F095DD8 0FC25E06 */ jal sub_GAME_7F097818 +/* 0CA90C 7F095DDC E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0CA910 7F095DE0 AFA206B0 */ sw $v0, 0x6b0($sp) +.L7F095DE4: +/* 0CA914 7F095DE4 8FAA005C */ lw $t2, 0x5c($sp) +.L7F095DE8: +/* 0CA918 7F095DE8 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0CA91C 7F095DEC 4481D000 */ mtc1 $at, $f26 +/* 0CA920 7F095DF0 2D410010 */ sltiu $at, $t2, 0x10 +/* 0CA924 7F095DF4 1020040A */ beqz $at, .L7F096E20 +/* 0CA928 7F095DF8 8FA306B0 */ lw $v1, 0x6b0($sp) +/* 0CA92C 7F095DFC 000A5080 */ sll $t2, $t2, 2 +/* 0CA930 7F095E00 3C018005 */ lui $at, %hi(jpt_80057590) +/* 0CA934 7F095E04 002A0821 */ addu $at, $at, $t2 +/* 0CA938 7F095E08 8C2A7590 */ lw $t2, %lo(jpt_80057590)($at) +.L7F095E0C: +/* 0CA93C 7F095E0C 01400008 */ jr $t2 +/* 0CA940 7F095E10 00000000 */ nop +.L7F095E14: +/* 0CA944 7F095E14 10000552 */ b .L7F097360 +/* 0CA948 7F095E18 00601025 */ move $v0, $v1 +.L7F095E1C: +/* 0CA94C 7F095E1C C7A20644 */ lwc1 $f2, 0x644($sp) +/* 0CA950 7F095E20 C7A60648 */ lwc1 $f6, 0x648($sp) +/* 0CA954 7F095E24 C7AC064C */ lwc1 $f12, 0x64c($sp) +/* 0CA958 7F095E28 46181102 */ mul.s $f4, $f2, $f24 +/* 0CA95C 7F095E2C C7AE0638 */ lwc1 $f14, 0x638($sp) +/* 0CA960 7F095E30 C7B00640 */ lwc1 $f16, 0x640($sp) +/* 0CA964 7F095E34 46183202 */ mul.s $f8, $f6, $f24 +/* 0CA968 7F095E38 C7A6063C */ lwc1 $f6, 0x63c($sp) +/* 0CA96C 7F095E3C C7B2062C */ lwc1 $f18, 0x62c($sp) +/* 0CA970 7F095E40 46186282 */ mul.s $f10, $f12, $f24 +/* 0CA974 7F095E44 E7A404B4 */ swc1 $f4, 0x4b4($sp) +/* 0CA978 7F095E48 C7B40634 */ lwc1 $f20, 0x634($sp) +/* 0CA97C 7F095E4C 46187102 */ mul.s $f4, $f14, $f24 +/* 0CA980 7F095E50 E7A804B8 */ swc1 $f8, 0x4b8($sp) +/* 0CA984 7F095E54 C7B60620 */ lwc1 $f22, 0x620($sp) +/* 0CA988 7F095E58 46183202 */ mul.s $f8, $f6, $f24 +/* 0CA98C 7F095E5C E7AA04BC */ swc1 $f10, 0x4bc($sp) +/* 0CA990 7F095E60 C7A60630 */ lwc1 $f6, 0x630($sp) +/* 0CA994 7F095E64 46188282 */ mul.s $f10, $f16, $f24 +/* 0CA998 7F095E68 E7A404CC */ swc1 $f4, 0x4cc($sp) +/* 0CA99C 7F095E6C 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0CA9A0 7F095E70 46189102 */ mul.s $f4, $f18, $f24 +/* 0CA9A4 7F095E74 E7A804D0 */ swc1 $f8, 0x4d0($sp) +/* 0CA9A8 7F095E78 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0CA9AC 7F095E7C 46183202 */ mul.s $f8, $f6, $f24 +/* 0CA9B0 7F095E80 E7AA04D4 */ swc1 $f10, 0x4d4($sp) +/* 0CA9B4 7F095E84 C7A60624 */ lwc1 $f6, 0x624($sp) +/* 0CA9B8 7F095E88 4618A282 */ mul.s $f10, $f20, $f24 +/* 0CA9BC 7F095E8C E7A404E4 */ swc1 $f4, 0x4e4($sp) +/* 0CA9C0 7F095E90 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CA9C4 7F095E94 4618B102 */ mul.s $f4, $f22, $f24 +/* 0CA9C8 7F095E98 E7A804E8 */ swc1 $f8, 0x4e8($sp) +/* 0CA9CC 7F095E9C 24110004 */ li $s1, 4 +/* 0CA9D0 7F095EA0 46183202 */ mul.s $f8, $f6, $f24 +/* 0CA9D4 7F095EA4 E7AA04EC */ swc1 $f10, 0x4ec($sp) +/* 0CA9D8 7F095EA8 C7AA0628 */ lwc1 $f10, 0x628($sp) +/* 0CA9DC 7F095EAC 27A404B4 */ addiu $a0, $sp, 0x4b4 +/* 0CA9E0 7F095EB0 E7A404FC */ swc1 $f4, 0x4fc($sp) +/* 0CA9E4 7F095EB4 46185102 */ mul.s $f4, $f10, $f24 +/* 0CA9E8 7F095EB8 8FA5058C */ lw $a1, 0x58c($sp) +/* 0CA9EC 7F095EBC E7A80500 */ swc1 $f8, 0x500($sp) +/* 0CA9F0 7F095EC0 461C1182 */ mul.s $f6, $f2, $f28 +/* 0CA9F4 7F095EC4 00000000 */ nop +/* 0CA9F8 7F095EC8 461C6202 */ mul.s $f8, $f12, $f28 +/* 0CA9FC 7F095ECC E7A40504 */ swc1 $f4, 0x504($sp) +/* 0CAA00 7F095ED0 461C7102 */ mul.s $f4, $f14, $f28 +/* 0CAA04 7F095ED4 E7A604C0 */ swc1 $f6, 0x4c0($sp) +/* 0CAA08 7F095ED8 461C8182 */ mul.s $f6, $f16, $f28 +/* 0CAA0C 7F095EDC 46004280 */ add.s $f10, $f8, $f0 +/* 0CAA10 7F095EE0 E7A404D8 */ swc1 $f4, 0x4d8($sp) +/* 0CAA14 7F095EE4 E7AA04C4 */ swc1 $f10, 0x4c4($sp) +/* 0CAA18 7F095EE8 461C9282 */ mul.s $f10, $f18, $f28 +/* 0CAA1C 7F095EEC 46003200 */ add.s $f8, $f6, $f0 +/* 0CAA20 7F095EF0 461CA102 */ mul.s $f4, $f20, $f28 +/* 0CAA24 7F095EF4 E7A804DC */ swc1 $f8, 0x4dc($sp) +/* 0CAA28 7F095EF8 461CB202 */ mul.s $f8, $f22, $f28 +/* 0CAA2C 7F095EFC E7AA04F0 */ swc1 $f10, 0x4f0($sp) +/* 0CAA30 7F095F00 C7AA0628 */ lwc1 $f10, 0x628($sp) +/* 0CAA34 7F095F04 46002180 */ add.s $f6, $f4, $f0 +/* 0CAA38 7F095F08 461C5102 */ mul.s $f4, $f10, $f28 +/* 0CAA3C 7F095F0C E7A80508 */ swc1 $f8, 0x508($sp) +/* 0CAA40 7F095F10 44814000 */ mtc1 $at, $f8 +/* 0CAA44 7F095F14 E7A604F4 */ swc1 $f6, 0x4f4($sp) +/* 0CAA48 7F095F18 46184283 */ div.s $f10, $f8, $f24 +/* 0CAA4C 7F095F1C 46002180 */ add.s $f6, $f4, $f0 +/* 0CAA50 7F095F20 E7A6050C */ swc1 $f6, 0x50c($sp) +/* 0CAA54 7F095F24 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CAA58 7F095F28 E7AA0058 */ swc1 $f10, 0x58($sp) +/* 0CAA5C 7F095F2C 27A404CC */ addiu $a0, $sp, 0x4cc +/* 0CAA60 7F095F30 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CAA64 7F095F34 8FA50588 */ lw $a1, 0x588($sp) +/* 0CAA68 7F095F38 27A404E4 */ addiu $a0, $sp, 0x4e4 +/* 0CAA6C 7F095F3C 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CAA70 7F095F40 8FA50584 */ lw $a1, 0x584($sp) +/* 0CAA74 7F095F44 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0CAA78 7F095F48 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CAA7C 7F095F4C 8FA50580 */ lw $a1, 0x580($sp) +/* 0CAA80 7F095F50 100003B6 */ b .L7F096E2C +/* 0CAA84 7F095F54 8FAF06B0 */ lw $t7, 0x6b0($sp) +.L7F095F58: +/* 0CAA88 7F095F58 C7A20644 */ lwc1 $f2, 0x644($sp) +/* 0CAA8C 7F095F5C C7A60648 */ lwc1 $f6, 0x648($sp) +/* 0CAA90 7F095F60 C7AC064C */ lwc1 $f12, 0x64c($sp) +/* 0CAA94 7F095F64 46181102 */ mul.s $f4, $f2, $f24 +/* 0CAA98 7F095F68 C7AE0638 */ lwc1 $f14, 0x638($sp) +/* 0CAA9C 7F095F6C C7B00640 */ lwc1 $f16, 0x640($sp) +/* 0CAAA0 7F095F70 46183202 */ mul.s $f8, $f6, $f24 +/* 0CAAA4 7F095F74 C7A6063C */ lwc1 $f6, 0x63c($sp) +/* 0CAAA8 7F095F78 C7B205FC */ lwc1 $f18, 0x5fc($sp) +/* 0CAAAC 7F095F7C 46186282 */ mul.s $f10, $f12, $f24 +/* 0CAAB0 7F095F80 E7A404B4 */ swc1 $f4, 0x4b4($sp) +/* 0CAAB4 7F095F84 C7B40604 */ lwc1 $f20, 0x604($sp) +/* 0CAAB8 7F095F88 46187102 */ mul.s $f4, $f14, $f24 +/* 0CAABC 7F095F8C E7A804B8 */ swc1 $f8, 0x4b8($sp) +/* 0CAAC0 7F095F90 C7B605F0 */ lwc1 $f22, 0x5f0($sp) +/* 0CAAC4 7F095F94 46183202 */ mul.s $f8, $f6, $f24 +/* 0CAAC8 7F095F98 E7AA04BC */ swc1 $f10, 0x4bc($sp) +/* 0CAACC 7F095F9C C7A60600 */ lwc1 $f6, 0x600($sp) +/* 0CAAD0 7F095FA0 46188282 */ mul.s $f10, $f16, $f24 +/* 0CAAD4 7F095FA4 E7A404CC */ swc1 $f4, 0x4cc($sp) +/* 0CAAD8 7F095FA8 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0CAADC 7F095FAC 46189102 */ mul.s $f4, $f18, $f24 +/* 0CAAE0 7F095FB0 E7A804D0 */ swc1 $f8, 0x4d0($sp) +/* 0CAAE4 7F095FB4 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0CAAE8 7F095FB8 46183202 */ mul.s $f8, $f6, $f24 +/* 0CAAEC 7F095FBC E7AA04D4 */ swc1 $f10, 0x4d4($sp) +/* 0CAAF0 7F095FC0 C7A605F4 */ lwc1 $f6, 0x5f4($sp) +/* 0CAAF4 7F095FC4 4618A282 */ mul.s $f10, $f20, $f24 +/* 0CAAF8 7F095FC8 E7A404E4 */ swc1 $f4, 0x4e4($sp) +/* 0CAAFC 7F095FCC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CAB00 7F095FD0 4618B102 */ mul.s $f4, $f22, $f24 +/* 0CAB04 7F095FD4 E7A804E8 */ swc1 $f8, 0x4e8($sp) +/* 0CAB08 7F095FD8 24110004 */ li $s1, 4 +/* 0CAB0C 7F095FDC 46183202 */ mul.s $f8, $f6, $f24 +/* 0CAB10 7F095FE0 E7AA04EC */ swc1 $f10, 0x4ec($sp) +/* 0CAB14 7F095FE4 C7AA05F8 */ lwc1 $f10, 0x5f8($sp) +/* 0CAB18 7F095FE8 27A404B4 */ addiu $a0, $sp, 0x4b4 +/* 0CAB1C 7F095FEC E7A404FC */ swc1 $f4, 0x4fc($sp) +/* 0CAB20 7F095FF0 46185102 */ mul.s $f4, $f10, $f24 +/* 0CAB24 7F095FF4 8FA5058C */ lw $a1, 0x58c($sp) +/* 0CAB28 7F095FF8 E7A80500 */ swc1 $f8, 0x500($sp) +/* 0CAB2C 7F095FFC 461C1182 */ mul.s $f6, $f2, $f28 +/* 0CAB30 7F096000 00000000 */ nop +/* 0CAB34 7F096004 461C6202 */ mul.s $f8, $f12, $f28 +/* 0CAB38 7F096008 E7A40504 */ swc1 $f4, 0x504($sp) +/* 0CAB3C 7F09600C 461C7102 */ mul.s $f4, $f14, $f28 +/* 0CAB40 7F096010 E7A604C0 */ swc1 $f6, 0x4c0($sp) +/* 0CAB44 7F096014 461C8182 */ mul.s $f6, $f16, $f28 +/* 0CAB48 7F096018 46004280 */ add.s $f10, $f8, $f0 +/* 0CAB4C 7F09601C E7A404D8 */ swc1 $f4, 0x4d8($sp) +/* 0CAB50 7F096020 E7AA04C4 */ swc1 $f10, 0x4c4($sp) +/* 0CAB54 7F096024 461C9282 */ mul.s $f10, $f18, $f28 +/* 0CAB58 7F096028 46003200 */ add.s $f8, $f6, $f0 +/* 0CAB5C 7F09602C 461CA102 */ mul.s $f4, $f20, $f28 +/* 0CAB60 7F096030 E7A804DC */ swc1 $f8, 0x4dc($sp) +/* 0CAB64 7F096034 461CB202 */ mul.s $f8, $f22, $f28 +/* 0CAB68 7F096038 E7AA04F0 */ swc1 $f10, 0x4f0($sp) +/* 0CAB6C 7F09603C C7AA05F8 */ lwc1 $f10, 0x5f8($sp) +/* 0CAB70 7F096040 46002180 */ add.s $f6, $f4, $f0 +/* 0CAB74 7F096044 461C5102 */ mul.s $f4, $f10, $f28 +/* 0CAB78 7F096048 E7A80508 */ swc1 $f8, 0x508($sp) +/* 0CAB7C 7F09604C 44814000 */ mtc1 $at, $f8 +/* 0CAB80 7F096050 E7A604F4 */ swc1 $f6, 0x4f4($sp) +/* 0CAB84 7F096054 46184283 */ div.s $f10, $f8, $f24 +/* 0CAB88 7F096058 46002180 */ add.s $f6, $f4, $f0 +/* 0CAB8C 7F09605C E7A6050C */ swc1 $f6, 0x50c($sp) +/* 0CAB90 7F096060 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CAB94 7F096064 E7AA0058 */ swc1 $f10, 0x58($sp) +/* 0CAB98 7F096068 27A404CC */ addiu $a0, $sp, 0x4cc +/* 0CAB9C 7F09606C 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CABA0 7F096070 8FA50588 */ lw $a1, 0x588($sp) +/* 0CABA4 7F096074 27A404E4 */ addiu $a0, $sp, 0x4e4 +/* 0CABA8 7F096078 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CABAC 7F09607C 8FA50574 */ lw $a1, 0x574($sp) +/* 0CABB0 7F096080 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0CABB4 7F096084 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CABB8 7F096088 8FA50570 */ lw $a1, 0x570($sp) +/* 0CABBC 7F09608C 10000367 */ b .L7F096E2C +/* 0CABC0 7F096090 8FAF06B0 */ lw $t7, 0x6b0($sp) +.L7F096094: +/* 0CABC4 7F096094 C7B60620 */ lwc1 $f22, 0x620($sp) +/* 0CABC8 7F096098 C7A60624 */ lwc1 $f6, 0x624($sp) +/* 0CABCC 7F09609C C7A20628 */ lwc1 $f2, 0x628($sp) +/* 0CABD0 7F0960A0 4618B102 */ mul.s $f4, $f22, $f24 +/* 0CABD4 7F0960A4 C7B2062C */ lwc1 $f18, 0x62c($sp) +/* 0CABD8 7F0960A8 C7B40634 */ lwc1 $f20, 0x634($sp) +/* 0CABDC 7F0960AC 46183202 */ mul.s $f8, $f6, $f24 +/* 0CABE0 7F0960B0 C7A60630 */ lwc1 $f6, 0x630($sp) +/* 0CABE4 7F0960B4 C7B005F0 */ lwc1 $f16, 0x5f0($sp) +/* 0CABE8 7F0960B8 46181282 */ mul.s $f10, $f2, $f24 +/* 0CABEC 7F0960BC E7A404B4 */ swc1 $f4, 0x4b4($sp) +/* 0CABF0 7F0960C0 C7AC05FC */ lwc1 $f12, 0x5fc($sp) +/* 0CABF4 7F0960C4 46189102 */ mul.s $f4, $f18, $f24 +/* 0CABF8 7F0960C8 E7A804B8 */ swc1 $f8, 0x4b8($sp) +/* 0CABFC 7F0960CC C7AE0604 */ lwc1 $f14, 0x604($sp) +/* 0CAC00 7F0960D0 46183202 */ mul.s $f8, $f6, $f24 +/* 0CAC04 7F0960D4 E7AA04BC */ swc1 $f10, 0x4bc($sp) +/* 0CAC08 7F0960D8 C7A605F4 */ lwc1 $f6, 0x5f4($sp) +/* 0CAC0C 7F0960DC 4618A282 */ mul.s $f10, $f20, $f24 +/* 0CAC10 7F0960E0 E7A404CC */ swc1 $f4, 0x4cc($sp) +/* 0CAC14 7F0960E4 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0CAC18 7F0960E8 46188102 */ mul.s $f4, $f16, $f24 +/* 0CAC1C 7F0960EC E7A804D0 */ swc1 $f8, 0x4d0($sp) +/* 0CAC20 7F0960F0 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0CAC24 7F0960F4 46183202 */ mul.s $f8, $f6, $f24 +/* 0CAC28 7F0960F8 E7AA04D4 */ swc1 $f10, 0x4d4($sp) +/* 0CAC2C 7F0960FC C7AA05F8 */ lwc1 $f10, 0x5f8($sp) +/* 0CAC30 7F096100 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CAC34 7F096104 E7A404E4 */ swc1 $f4, 0x4e4($sp) +/* 0CAC38 7F096108 46185102 */ mul.s $f4, $f10, $f24 +/* 0CAC3C 7F09610C 24110004 */ li $s1, 4 +/* 0CAC40 7F096110 E7A804E8 */ swc1 $f8, 0x4e8($sp) +/* 0CAC44 7F096114 46186182 */ mul.s $f6, $f12, $f24 +/* 0CAC48 7F096118 C7A80600 */ lwc1 $f8, 0x600($sp) +/* 0CAC4C 7F09611C 27A404B4 */ addiu $a0, $sp, 0x4b4 +/* 0CAC50 7F096120 8FA50580 */ lw $a1, 0x580($sp) +/* 0CAC54 7F096124 46184282 */ mul.s $f10, $f8, $f24 +/* 0CAC58 7F096128 E7A404EC */ swc1 $f4, 0x4ec($sp) +/* 0CAC5C 7F09612C 46187102 */ mul.s $f4, $f14, $f24 +/* 0CAC60 7F096130 E7A604FC */ swc1 $f6, 0x4fc($sp) +/* 0CAC64 7F096134 461CB182 */ mul.s $f6, $f22, $f28 +/* 0CAC68 7F096138 E7AA0500 */ swc1 $f10, 0x500($sp) +/* 0CAC6C 7F09613C 461C1202 */ mul.s $f8, $f2, $f28 +/* 0CAC70 7F096140 E7A40504 */ swc1 $f4, 0x504($sp) +/* 0CAC74 7F096144 461C9102 */ mul.s $f4, $f18, $f28 +/* 0CAC78 7F096148 E7A604C0 */ swc1 $f6, 0x4c0($sp) +/* 0CAC7C 7F09614C 461CA182 */ mul.s $f6, $f20, $f28 +/* 0CAC80 7F096150 46004280 */ add.s $f10, $f8, $f0 +/* 0CAC84 7F096154 E7A404D8 */ swc1 $f4, 0x4d8($sp) +/* 0CAC88 7F096158 C7A405F8 */ lwc1 $f4, 0x5f8($sp) +/* 0CAC8C 7F09615C E7AA04C4 */ swc1 $f10, 0x4c4($sp) +/* 0CAC90 7F096160 461C8282 */ mul.s $f10, $f16, $f28 +/* 0CAC94 7F096164 46003200 */ add.s $f8, $f6, $f0 +/* 0CAC98 7F096168 461C2182 */ mul.s $f6, $f4, $f28 +/* 0CAC9C 7F09616C E7A804DC */ swc1 $f8, 0x4dc($sp) +/* 0CACA0 7F096170 E7AA04F0 */ swc1 $f10, 0x4f0($sp) +/* 0CACA4 7F096174 461C6282 */ mul.s $f10, $f12, $f28 +/* 0CACA8 7F096178 46003200 */ add.s $f8, $f6, $f0 +/* 0CACAC 7F09617C 461C7102 */ mul.s $f4, $f14, $f28 +/* 0CACB0 7F096180 E7A804F4 */ swc1 $f8, 0x4f4($sp) +/* 0CACB4 7F096184 44814000 */ mtc1 $at, $f8 +/* 0CACB8 7F096188 E7AA0508 */ swc1 $f10, 0x508($sp) +/* 0CACBC 7F09618C 46184283 */ div.s $f10, $f8, $f24 +/* 0CACC0 7F096190 46002180 */ add.s $f6, $f4, $f0 +/* 0CACC4 7F096194 E7A6050C */ swc1 $f6, 0x50c($sp) +/* 0CACC8 7F096198 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CACCC 7F09619C E7AA0058 */ swc1 $f10, 0x58($sp) +/* 0CACD0 7F0961A0 27A404CC */ addiu $a0, $sp, 0x4cc +/* 0CACD4 7F0961A4 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CACD8 7F0961A8 8FA50584 */ lw $a1, 0x584($sp) +/* 0CACDC 7F0961AC 27A404E4 */ addiu $a0, $sp, 0x4e4 +/* 0CACE0 7F0961B0 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CACE4 7F0961B4 8FA50570 */ lw $a1, 0x570($sp) +/* 0CACE8 7F0961B8 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0CACEC 7F0961BC 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CACF0 7F0961C0 8FA50574 */ lw $a1, 0x574($sp) +/* 0CACF4 7F0961C4 10000319 */ b .L7F096E2C +/* 0CACF8 7F0961C8 8FAF06B0 */ lw $t7, 0x6b0($sp) +.L7F0961CC: +/* 0CACFC 7F0961CC C7AE0638 */ lwc1 $f14, 0x638($sp) +/* 0CAD00 7F0961D0 C7A6063C */ lwc1 $f6, 0x63c($sp) +/* 0CAD04 7F0961D4 C7B00640 */ lwc1 $f16, 0x640($sp) +/* 0CAD08 7F0961D8 46187102 */ mul.s $f4, $f14, $f24 +/* 0CAD0C 7F0961DC C7B60620 */ lwc1 $f22, 0x620($sp) +/* 0CAD10 7F0961E0 C7A20628 */ lwc1 $f2, 0x628($sp) +/* 0CAD14 7F0961E4 46183202 */ mul.s $f8, $f6, $f24 +/* 0CAD18 7F0961E8 C7A60624 */ lwc1 $f6, 0x624($sp) +/* 0CAD1C 7F0961EC C7B40614 */ lwc1 $f20, 0x614($sp) +/* 0CAD20 7F0961F0 46188282 */ mul.s $f10, $f16, $f24 +/* 0CAD24 7F0961F4 E7A404B4 */ swc1 $f4, 0x4b4($sp) +/* 0CAD28 7F0961F8 C7AC0608 */ lwc1 $f12, 0x608($sp) +/* 0CAD2C 7F0961FC 4618B102 */ mul.s $f4, $f22, $f24 +/* 0CAD30 7F096200 E7A804B8 */ swc1 $f8, 0x4b8($sp) +/* 0CAD34 7F096204 C7B20610 */ lwc1 $f18, 0x610($sp) +/* 0CAD38 7F096208 46183202 */ mul.s $f8, $f6, $f24 +/* 0CAD3C 7F09620C E7AA04BC */ swc1 $f10, 0x4bc($sp) +/* 0CAD40 7F096210 C7A60618 */ lwc1 $f6, 0x618($sp) +/* 0CAD44 7F096214 46181282 */ mul.s $f10, $f2, $f24 +/* 0CAD48 7F096218 E7A404CC */ swc1 $f4, 0x4cc($sp) +/* 0CAD4C 7F09621C 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0CAD50 7F096220 4618A102 */ mul.s $f4, $f20, $f24 +/* 0CAD54 7F096224 E7A804D0 */ swc1 $f8, 0x4d0($sp) +/* 0CAD58 7F096228 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0CAD5C 7F09622C 46183202 */ mul.s $f8, $f6, $f24 +/* 0CAD60 7F096230 E7AA04D4 */ swc1 $f10, 0x4d4($sp) +/* 0CAD64 7F096234 C7AA061C */ lwc1 $f10, 0x61c($sp) +/* 0CAD68 7F096238 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CAD6C 7F09623C E7A404E4 */ swc1 $f4, 0x4e4($sp) +/* 0CAD70 7F096240 46185102 */ mul.s $f4, $f10, $f24 +/* 0CAD74 7F096244 24110004 */ li $s1, 4 +/* 0CAD78 7F096248 E7A804E8 */ swc1 $f8, 0x4e8($sp) +/* 0CAD7C 7F09624C 46186182 */ mul.s $f6, $f12, $f24 +/* 0CAD80 7F096250 C7A8060C */ lwc1 $f8, 0x60c($sp) +/* 0CAD84 7F096254 27A404B4 */ addiu $a0, $sp, 0x4b4 +/* 0CAD88 7F096258 8FA50588 */ lw $a1, 0x588($sp) +/* 0CAD8C 7F09625C 46184282 */ mul.s $f10, $f8, $f24 +/* 0CAD90 7F096260 E7A404EC */ swc1 $f4, 0x4ec($sp) +/* 0CAD94 7F096264 46189102 */ mul.s $f4, $f18, $f24 +/* 0CAD98 7F096268 E7A604FC */ swc1 $f6, 0x4fc($sp) +/* 0CAD9C 7F09626C 461C7182 */ mul.s $f6, $f14, $f28 +/* 0CADA0 7F096270 E7AA0500 */ swc1 $f10, 0x500($sp) +/* 0CADA4 7F096274 461C8202 */ mul.s $f8, $f16, $f28 +/* 0CADA8 7F096278 E7A40504 */ swc1 $f4, 0x504($sp) +/* 0CADAC 7F09627C 461CB102 */ mul.s $f4, $f22, $f28 +/* 0CADB0 7F096280 E7A604C0 */ swc1 $f6, 0x4c0($sp) +/* 0CADB4 7F096284 461C1182 */ mul.s $f6, $f2, $f28 +/* 0CADB8 7F096288 46004280 */ add.s $f10, $f8, $f0 +/* 0CADBC 7F09628C E7A404D8 */ swc1 $f4, 0x4d8($sp) +/* 0CADC0 7F096290 C7A4061C */ lwc1 $f4, 0x61c($sp) +/* 0CADC4 7F096294 E7AA04C4 */ swc1 $f10, 0x4c4($sp) +/* 0CADC8 7F096298 461CA282 */ mul.s $f10, $f20, $f28 +/* 0CADCC 7F09629C 46003200 */ add.s $f8, $f6, $f0 +/* 0CADD0 7F0962A0 461C2182 */ mul.s $f6, $f4, $f28 +/* 0CADD4 7F0962A4 E7A804DC */ swc1 $f8, 0x4dc($sp) +/* 0CADD8 7F0962A8 E7AA04F0 */ swc1 $f10, 0x4f0($sp) +/* 0CADDC 7F0962AC 461C6282 */ mul.s $f10, $f12, $f28 +/* 0CADE0 7F0962B0 46003200 */ add.s $f8, $f6, $f0 +/* 0CADE4 7F0962B4 461C9102 */ mul.s $f4, $f18, $f28 +/* 0CADE8 7F0962B8 E7A804F4 */ swc1 $f8, 0x4f4($sp) +/* 0CADEC 7F0962BC 44814000 */ mtc1 $at, $f8 +/* 0CADF0 7F0962C0 E7AA0508 */ swc1 $f10, 0x508($sp) +/* 0CADF4 7F0962C4 46184283 */ div.s $f10, $f8, $f24 +/* 0CADF8 7F0962C8 46002180 */ add.s $f6, $f4, $f0 +/* 0CADFC 7F0962CC E7A6050C */ swc1 $f6, 0x50c($sp) +/* 0CAE00 7F0962D0 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CAE04 7F0962D4 E7AA0058 */ swc1 $f10, 0x58($sp) +/* 0CAE08 7F0962D8 27A404CC */ addiu $a0, $sp, 0x4cc +/* 0CAE0C 7F0962DC 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CAE10 7F0962E0 8FA50580 */ lw $a1, 0x580($sp) +/* 0CAE14 7F0962E4 27A404E4 */ addiu $a0, $sp, 0x4e4 +/* 0CAE18 7F0962E8 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CAE1C 7F0962EC 8FA5057C */ lw $a1, 0x57c($sp) +/* 0CAE20 7F0962F0 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0CAE24 7F0962F4 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CAE28 7F0962F8 8FA50578 */ lw $a1, 0x578($sp) +/* 0CAE2C 7F0962FC 100002CB */ b .L7F096E2C +/* 0CAE30 7F096300 8FAF06B0 */ lw $t7, 0x6b0($sp) +.L7F096304: +/* 0CAE34 7F096304 C7B2062C */ lwc1 $f18, 0x62c($sp) +/* 0CAE38 7F096308 C7A60630 */ lwc1 $f6, 0x630($sp) +/* 0CAE3C 7F09630C C7B40634 */ lwc1 $f20, 0x634($sp) +/* 0CAE40 7F096310 46189102 */ mul.s $f4, $f18, $f24 +/* 0CAE44 7F096314 C7A20644 */ lwc1 $f2, 0x644($sp) +/* 0CAE48 7F096318 C7AC064C */ lwc1 $f12, 0x64c($sp) +/* 0CAE4C 7F09631C 46183202 */ mul.s $f8, $f6, $f24 +/* 0CAE50 7F096320 C7A60648 */ lwc1 $f6, 0x648($sp) +/* 0CAE54 7F096324 C7B60608 */ lwc1 $f22, 0x608($sp) +/* 0CAE58 7F096328 4618A282 */ mul.s $f10, $f20, $f24 +/* 0CAE5C 7F09632C E7A404B4 */ swc1 $f4, 0x4b4($sp) +/* 0CAE60 7F096330 C7AE0614 */ lwc1 $f14, 0x614($sp) +/* 0CAE64 7F096334 46181102 */ mul.s $f4, $f2, $f24 +/* 0CAE68 7F096338 E7A804B8 */ swc1 $f8, 0x4b8($sp) +/* 0CAE6C 7F09633C C7B0061C */ lwc1 $f16, 0x61c($sp) +/* 0CAE70 7F096340 46183202 */ mul.s $f8, $f6, $f24 +/* 0CAE74 7F096344 E7AA04BC */ swc1 $f10, 0x4bc($sp) +/* 0CAE78 7F096348 C7A6060C */ lwc1 $f6, 0x60c($sp) +/* 0CAE7C 7F09634C 46186282 */ mul.s $f10, $f12, $f24 +/* 0CAE80 7F096350 E7A404CC */ swc1 $f4, 0x4cc($sp) +/* 0CAE84 7F096354 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0CAE88 7F096358 4618B102 */ mul.s $f4, $f22, $f24 +/* 0CAE8C 7F09635C E7A804D0 */ swc1 $f8, 0x4d0($sp) +/* 0CAE90 7F096360 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0CAE94 7F096364 46183202 */ mul.s $f8, $f6, $f24 +/* 0CAE98 7F096368 E7AA04D4 */ swc1 $f10, 0x4d4($sp) +/* 0CAE9C 7F09636C C7AA0610 */ lwc1 $f10, 0x610($sp) +/* 0CAEA0 7F096370 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CAEA4 7F096374 E7A404E4 */ swc1 $f4, 0x4e4($sp) +/* 0CAEA8 7F096378 46185102 */ mul.s $f4, $f10, $f24 +/* 0CAEAC 7F09637C 24110004 */ li $s1, 4 +/* 0CAEB0 7F096380 E7A804E8 */ swc1 $f8, 0x4e8($sp) +/* 0CAEB4 7F096384 46187182 */ mul.s $f6, $f14, $f24 +/* 0CAEB8 7F096388 C7A80618 */ lwc1 $f8, 0x618($sp) +/* 0CAEBC 7F09638C 27A404B4 */ addiu $a0, $sp, 0x4b4 +/* 0CAEC0 7F096390 8FA50584 */ lw $a1, 0x584($sp) +/* 0CAEC4 7F096394 46184282 */ mul.s $f10, $f8, $f24 +/* 0CAEC8 7F096398 E7A404EC */ swc1 $f4, 0x4ec($sp) +/* 0CAECC 7F09639C 46188102 */ mul.s $f4, $f16, $f24 +/* 0CAED0 7F0963A0 E7A604FC */ swc1 $f6, 0x4fc($sp) +/* 0CAED4 7F0963A4 461C9182 */ mul.s $f6, $f18, $f28 +/* 0CAED8 7F0963A8 E7AA0500 */ swc1 $f10, 0x500($sp) +/* 0CAEDC 7F0963AC 461CA202 */ mul.s $f8, $f20, $f28 +/* 0CAEE0 7F0963B0 E7A40504 */ swc1 $f4, 0x504($sp) +/* 0CAEE4 7F0963B4 461C1102 */ mul.s $f4, $f2, $f28 +/* 0CAEE8 7F0963B8 E7A604C0 */ swc1 $f6, 0x4c0($sp) +/* 0CAEEC 7F0963BC 461C6182 */ mul.s $f6, $f12, $f28 +/* 0CAEF0 7F0963C0 46004280 */ add.s $f10, $f8, $f0 +/* 0CAEF4 7F0963C4 E7A404D8 */ swc1 $f4, 0x4d8($sp) +/* 0CAEF8 7F0963C8 C7A40610 */ lwc1 $f4, 0x610($sp) +/* 0CAEFC 7F0963CC E7AA04C4 */ swc1 $f10, 0x4c4($sp) +/* 0CAF00 7F0963D0 461CB282 */ mul.s $f10, $f22, $f28 +/* 0CAF04 7F0963D4 46003200 */ add.s $f8, $f6, $f0 +/* 0CAF08 7F0963D8 461C2182 */ mul.s $f6, $f4, $f28 +/* 0CAF0C 7F0963DC E7A804DC */ swc1 $f8, 0x4dc($sp) +/* 0CAF10 7F0963E0 E7AA04F0 */ swc1 $f10, 0x4f0($sp) +/* 0CAF14 7F0963E4 461C7282 */ mul.s $f10, $f14, $f28 +/* 0CAF18 7F0963E8 46003200 */ add.s $f8, $f6, $f0 +/* 0CAF1C 7F0963EC 461C8102 */ mul.s $f4, $f16, $f28 +/* 0CAF20 7F0963F0 E7A804F4 */ swc1 $f8, 0x4f4($sp) +/* 0CAF24 7F0963F4 44814000 */ mtc1 $at, $f8 +/* 0CAF28 7F0963F8 E7AA0508 */ swc1 $f10, 0x508($sp) +/* 0CAF2C 7F0963FC 46184283 */ div.s $f10, $f8, $f24 +/* 0CAF30 7F096400 46002180 */ add.s $f6, $f4, $f0 +/* 0CAF34 7F096404 E7A6050C */ swc1 $f6, 0x50c($sp) +/* 0CAF38 7F096408 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CAF3C 7F09640C E7AA0058 */ swc1 $f10, 0x58($sp) +/* 0CAF40 7F096410 27A404CC */ addiu $a0, $sp, 0x4cc +/* 0CAF44 7F096414 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CAF48 7F096418 8FA5058C */ lw $a1, 0x58c($sp) +/* 0CAF4C 7F09641C 27A404E4 */ addiu $a0, $sp, 0x4e4 +/* 0CAF50 7F096420 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CAF54 7F096424 8FA50578 */ lw $a1, 0x578($sp) +/* 0CAF58 7F096428 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0CAF5C 7F09642C 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CAF60 7F096430 8FA5057C */ lw $a1, 0x57c($sp) +/* 0CAF64 7F096434 1000027D */ b .L7F096E2C +/* 0CAF68 7F096438 8FAF06B0 */ lw $t7, 0x6b0($sp) +.L7F09643C: +/* 0CAF6C 7F09643C C7B60620 */ lwc1 $f22, 0x620($sp) +/* 0CAF70 7F096440 C7A60624 */ lwc1 $f6, 0x624($sp) +/* 0CAF74 7F096444 C7A20628 */ lwc1 $f2, 0x628($sp) +/* 0CAF78 7F096448 4618B102 */ mul.s $f4, $f22, $f24 +/* 0CAF7C 7F09644C C7AE0608 */ lwc1 $f14, 0x608($sp) +/* 0CAF80 7F096450 C7B20610 */ lwc1 $f18, 0x610($sp) +/* 0CAF84 7F096454 46183202 */ mul.s $f8, $f6, $f24 +/* 0CAF88 7F096458 C7A6060C */ lwc1 $f6, 0x60c($sp) +/* 0CAF8C 7F09645C C7B005F0 */ lwc1 $f16, 0x5f0($sp) +/* 0CAF90 7F096460 46181282 */ mul.s $f10, $f2, $f24 +/* 0CAF94 7F096464 E7A404B4 */ swc1 $f4, 0x4b4($sp) +/* 0CAF98 7F096468 C7AC05F8 */ lwc1 $f12, 0x5f8($sp) +/* 0CAF9C 7F09646C 46187102 */ mul.s $f4, $f14, $f24 +/* 0CAFA0 7F096470 E7A804B8 */ swc1 $f8, 0x4b8($sp) +/* 0CAFA4 7F096474 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0CAFA8 7F096478 46183202 */ mul.s $f8, $f6, $f24 +/* 0CAFAC 7F09647C E7AA04BC */ swc1 $f10, 0x4bc($sp) +/* 0CAFB0 7F096480 C7A605F4 */ lwc1 $f6, 0x5f4($sp) +/* 0CAFB4 7F096484 46189282 */ mul.s $f10, $f18, $f24 +/* 0CAFB8 7F096488 E7A404CC */ swc1 $f4, 0x4cc($sp) +/* 0CAFBC 7F09648C C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0CAFC0 7F096490 46188102 */ mul.s $f4, $f16, $f24 +/* 0CAFC4 7F096494 E7A804D0 */ swc1 $f8, 0x4d0($sp) +/* 0CAFC8 7F096498 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CAFCC 7F09649C 46183202 */ mul.s $f8, $f6, $f24 +/* 0CAFD0 7F0964A0 E7AA04D4 */ swc1 $f10, 0x4d4($sp) +/* 0CAFD4 7F0964A4 24110003 */ li $s1, 3 +/* 0CAFD8 7F0964A8 46186282 */ mul.s $f10, $f12, $f24 +/* 0CAFDC 7F0964AC E7A404E4 */ swc1 $f4, 0x4e4($sp) +/* 0CAFE0 7F0964B0 27A404B4 */ addiu $a0, $sp, 0x4b4 +/* 0CAFE4 7F0964B4 461CB102 */ mul.s $f4, $f22, $f28 +/* 0CAFE8 7F0964B8 E7A804E8 */ swc1 $f8, 0x4e8($sp) +/* 0CAFEC 7F0964BC 8FA50580 */ lw $a1, 0x580($sp) +/* 0CAFF0 7F0964C0 461C1182 */ mul.s $f6, $f2, $f28 +/* 0CAFF4 7F0964C4 E7AA04EC */ swc1 $f10, 0x4ec($sp) +/* 0CAFF8 7F0964C8 461C7282 */ mul.s $f10, $f14, $f28 +/* 0CAFFC 7F0964CC E7A404C0 */ swc1 $f4, 0x4c0($sp) +/* 0CB000 7F0964D0 461C9102 */ mul.s $f4, $f18, $f28 +/* 0CB004 7F0964D4 46003200 */ add.s $f8, $f6, $f0 +/* 0CB008 7F0964D8 E7AA04D8 */ swc1 $f10, 0x4d8($sp) +/* 0CB00C 7F0964DC E7A804C4 */ swc1 $f8, 0x4c4($sp) +/* 0CB010 7F0964E0 461C8202 */ mul.s $f8, $f16, $f28 +/* 0CB014 7F0964E4 46002180 */ add.s $f6, $f4, $f0 +/* 0CB018 7F0964E8 461C6282 */ mul.s $f10, $f12, $f28 +/* 0CB01C 7F0964EC E7A604DC */ swc1 $f6, 0x4dc($sp) +/* 0CB020 7F0964F0 44813000 */ mtc1 $at, $f6 +/* 0CB024 7F0964F4 E7A804F0 */ swc1 $f8, 0x4f0($sp) +/* 0CB028 7F0964F8 46183203 */ div.s $f8, $f6, $f24 +/* 0CB02C 7F0964FC 46005100 */ add.s $f4, $f10, $f0 +/* 0CB030 7F096500 E7A404F4 */ swc1 $f4, 0x4f4($sp) +/* 0CB034 7F096504 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB038 7F096508 E7A80058 */ swc1 $f8, 0x58($sp) +/* 0CB03C 7F09650C 27A404CC */ addiu $a0, $sp, 0x4cc +/* 0CB040 7F096510 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB044 7F096514 8FA50578 */ lw $a1, 0x578($sp) +/* 0CB048 7F096518 27A404E4 */ addiu $a0, $sp, 0x4e4 +/* 0CB04C 7F09651C 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB050 7F096520 8FA50570 */ lw $a1, 0x570($sp) +/* 0CB054 7F096524 10000241 */ b .L7F096E2C +/* 0CB058 7F096528 8FAF06B0 */ lw $t7, 0x6b0($sp) +.L7F09652C: +/* 0CB05C 7F09652C C7B2062C */ lwc1 $f18, 0x62c($sp) +/* 0CB060 7F096530 C7A40630 */ lwc1 $f4, 0x630($sp) +/* 0CB064 7F096534 C7B40634 */ lwc1 $f20, 0x634($sp) +/* 0CB068 7F096538 46189282 */ mul.s $f10, $f18, $f24 +/* 0CB06C 7F09653C C7AC05FC */ lwc1 $f12, 0x5fc($sp) +/* 0CB070 7F096540 C7AE0604 */ lwc1 $f14, 0x604($sp) +/* 0CB074 7F096544 46182182 */ mul.s $f6, $f4, $f24 +/* 0CB078 7F096548 C7A40600 */ lwc1 $f4, 0x600($sp) +/* 0CB07C 7F09654C C7A20608 */ lwc1 $f2, 0x608($sp) +/* 0CB080 7F096550 4618A202 */ mul.s $f8, $f20, $f24 +/* 0CB084 7F096554 E7AA04B4 */ swc1 $f10, 0x4b4($sp) +/* 0CB088 7F096558 C7B00610 */ lwc1 $f16, 0x610($sp) +/* 0CB08C 7F09655C 46186282 */ mul.s $f10, $f12, $f24 +/* 0CB090 7F096560 E7A604B8 */ swc1 $f6, 0x4b8($sp) +/* 0CB094 7F096564 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0CB098 7F096568 46182182 */ mul.s $f6, $f4, $f24 +/* 0CB09C 7F09656C E7A804BC */ swc1 $f8, 0x4bc($sp) +/* 0CB0A0 7F096570 C7A4060C */ lwc1 $f4, 0x60c($sp) +/* 0CB0A4 7F096574 46187202 */ mul.s $f8, $f14, $f24 +/* 0CB0A8 7F096578 E7AA04CC */ swc1 $f10, 0x4cc($sp) +/* 0CB0AC 7F09657C C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0CB0B0 7F096580 46181282 */ mul.s $f10, $f2, $f24 +/* 0CB0B4 7F096584 E7A604D0 */ swc1 $f6, 0x4d0($sp) +/* 0CB0B8 7F096588 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CB0BC 7F09658C 46182182 */ mul.s $f6, $f4, $f24 +/* 0CB0C0 7F096590 E7A804D4 */ swc1 $f8, 0x4d4($sp) +/* 0CB0C4 7F096594 24110003 */ li $s1, 3 +/* 0CB0C8 7F096598 46188202 */ mul.s $f8, $f16, $f24 +/* 0CB0CC 7F09659C E7AA04E4 */ swc1 $f10, 0x4e4($sp) +/* 0CB0D0 7F0965A0 27A404B4 */ addiu $a0, $sp, 0x4b4 +/* 0CB0D4 7F0965A4 461C9282 */ mul.s $f10, $f18, $f28 +/* 0CB0D8 7F0965A8 E7A604E8 */ swc1 $f6, 0x4e8($sp) +/* 0CB0DC 7F0965AC 8FA50584 */ lw $a1, 0x584($sp) +/* 0CB0E0 7F0965B0 461CA102 */ mul.s $f4, $f20, $f28 +/* 0CB0E4 7F0965B4 E7A804EC */ swc1 $f8, 0x4ec($sp) +/* 0CB0E8 7F0965B8 461C6202 */ mul.s $f8, $f12, $f28 +/* 0CB0EC 7F0965BC E7AA04C0 */ swc1 $f10, 0x4c0($sp) +/* 0CB0F0 7F0965C0 461C7282 */ mul.s $f10, $f14, $f28 +/* 0CB0F4 7F0965C4 46002180 */ add.s $f6, $f4, $f0 +/* 0CB0F8 7F0965C8 E7A804D8 */ swc1 $f8, 0x4d8($sp) +/* 0CB0FC 7F0965CC E7A604C4 */ swc1 $f6, 0x4c4($sp) +/* 0CB100 7F0965D0 461C1182 */ mul.s $f6, $f2, $f28 +/* 0CB104 7F0965D4 46005100 */ add.s $f4, $f10, $f0 +/* 0CB108 7F0965D8 461C8202 */ mul.s $f8, $f16, $f28 +/* 0CB10C 7F0965DC E7A404DC */ swc1 $f4, 0x4dc($sp) +/* 0CB110 7F0965E0 44812000 */ mtc1 $at, $f4 +/* 0CB114 7F0965E4 E7A604F0 */ swc1 $f6, 0x4f0($sp) +/* 0CB118 7F0965E8 46182183 */ div.s $f6, $f4, $f24 +/* 0CB11C 7F0965EC 46004280 */ add.s $f10, $f8, $f0 +/* 0CB120 7F0965F0 E7AA04F4 */ swc1 $f10, 0x4f4($sp) +/* 0CB124 7F0965F4 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB128 7F0965F8 E7A60058 */ swc1 $f6, 0x58($sp) +/* 0CB12C 7F0965FC 27A404CC */ addiu $a0, $sp, 0x4cc +/* 0CB130 7F096600 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB134 7F096604 8FA50574 */ lw $a1, 0x574($sp) +/* 0CB138 7F096608 27A404E4 */ addiu $a0, $sp, 0x4e4 +/* 0CB13C 7F09660C 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB140 7F096610 8FA50578 */ lw $a1, 0x578($sp) +/* 0CB144 7F096614 10000205 */ b .L7F096E2C +/* 0CB148 7F096618 8FAF06B0 */ lw $t7, 0x6b0($sp) +.L7F09661C: +/* 0CB14C 7F09661C C7AE0638 */ lwc1 $f14, 0x638($sp) +/* 0CB150 7F096620 C7AA063C */ lwc1 $f10, 0x63c($sp) +/* 0CB154 7F096624 C7B00640 */ lwc1 $f16, 0x640($sp) +/* 0CB158 7F096628 46187202 */ mul.s $f8, $f14, $f24 +/* 0CB15C 7F09662C C7A205F0 */ lwc1 $f2, 0x5f0($sp) +/* 0CB160 7F096630 C7AC05F8 */ lwc1 $f12, 0x5f8($sp) +/* 0CB164 7F096634 46185102 */ mul.s $f4, $f10, $f24 +/* 0CB168 7F096638 C7AA05F4 */ lwc1 $f10, 0x5f4($sp) +/* 0CB16C 7F09663C C7B40614 */ lwc1 $f20, 0x614($sp) +/* 0CB170 7F096640 46188182 */ mul.s $f6, $f16, $f24 +/* 0CB174 7F096644 E7A804B4 */ swc1 $f8, 0x4b4($sp) +/* 0CB178 7F096648 C7B2061C */ lwc1 $f18, 0x61c($sp) +/* 0CB17C 7F09664C 46181202 */ mul.s $f8, $f2, $f24 +/* 0CB180 7F096650 E7A404B8 */ swc1 $f4, 0x4b8($sp) +/* 0CB184 7F096654 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0CB188 7F096658 46185102 */ mul.s $f4, $f10, $f24 +/* 0CB18C 7F09665C E7A604BC */ swc1 $f6, 0x4bc($sp) +/* 0CB190 7F096660 C7AA0618 */ lwc1 $f10, 0x618($sp) +/* 0CB194 7F096664 46186182 */ mul.s $f6, $f12, $f24 +/* 0CB198 7F096668 E7A804CC */ swc1 $f8, 0x4cc($sp) +/* 0CB19C 7F09666C C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0CB1A0 7F096670 4618A202 */ mul.s $f8, $f20, $f24 +/* 0CB1A4 7F096674 E7A404D0 */ swc1 $f4, 0x4d0($sp) +/* 0CB1A8 7F096678 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CB1AC 7F09667C 46185102 */ mul.s $f4, $f10, $f24 +/* 0CB1B0 7F096680 E7A604D4 */ swc1 $f6, 0x4d4($sp) +/* 0CB1B4 7F096684 24110003 */ li $s1, 3 +/* 0CB1B8 7F096688 46189182 */ mul.s $f6, $f18, $f24 +/* 0CB1BC 7F09668C E7A804E4 */ swc1 $f8, 0x4e4($sp) +/* 0CB1C0 7F096690 27A404B4 */ addiu $a0, $sp, 0x4b4 +/* 0CB1C4 7F096694 461C7202 */ mul.s $f8, $f14, $f28 +/* 0CB1C8 7F096698 E7A404E8 */ swc1 $f4, 0x4e8($sp) +/* 0CB1CC 7F09669C 8FA50588 */ lw $a1, 0x588($sp) +/* 0CB1D0 7F0966A0 461C8282 */ mul.s $f10, $f16, $f28 +/* 0CB1D4 7F0966A4 E7A604EC */ swc1 $f6, 0x4ec($sp) +/* 0CB1D8 7F0966A8 461C1182 */ mul.s $f6, $f2, $f28 +/* 0CB1DC 7F0966AC E7A804C0 */ swc1 $f8, 0x4c0($sp) +/* 0CB1E0 7F0966B0 461C6202 */ mul.s $f8, $f12, $f28 +/* 0CB1E4 7F0966B4 46005100 */ add.s $f4, $f10, $f0 +/* 0CB1E8 7F0966B8 E7A604D8 */ swc1 $f6, 0x4d8($sp) +/* 0CB1EC 7F0966BC E7A404C4 */ swc1 $f4, 0x4c4($sp) +/* 0CB1F0 7F0966C0 461CA102 */ mul.s $f4, $f20, $f28 +/* 0CB1F4 7F0966C4 46004280 */ add.s $f10, $f8, $f0 +/* 0CB1F8 7F0966C8 461C9182 */ mul.s $f6, $f18, $f28 +/* 0CB1FC 7F0966CC E7AA04DC */ swc1 $f10, 0x4dc($sp) +/* 0CB200 7F0966D0 44815000 */ mtc1 $at, $f10 +/* 0CB204 7F0966D4 E7A404F0 */ swc1 $f4, 0x4f0($sp) +/* 0CB208 7F0966D8 46185103 */ div.s $f4, $f10, $f24 +/* 0CB20C 7F0966DC 46003200 */ add.s $f8, $f6, $f0 +/* 0CB210 7F0966E0 E7A804F4 */ swc1 $f8, 0x4f4($sp) +/* 0CB214 7F0966E4 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB218 7F0966E8 E7A40058 */ swc1 $f4, 0x58($sp) +/* 0CB21C 7F0966EC 27A404CC */ addiu $a0, $sp, 0x4cc +/* 0CB220 7F0966F0 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB224 7F0966F4 8FA50570 */ lw $a1, 0x570($sp) +/* 0CB228 7F0966F8 27A404E4 */ addiu $a0, $sp, 0x4e4 +/* 0CB22C 7F0966FC 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB230 7F096700 8FA5057C */ lw $a1, 0x57c($sp) +/* 0CB234 7F096704 100001C9 */ b .L7F096E2C +/* 0CB238 7F096708 8FAF06B0 */ lw $t7, 0x6b0($sp) +.L7F09670C: +/* 0CB23C 7F09670C C7A20644 */ lwc1 $f2, 0x644($sp) +/* 0CB240 7F096710 C7A80648 */ lwc1 $f8, 0x648($sp) +/* 0CB244 7F096714 C7AC064C */ lwc1 $f12, 0x64c($sp) +/* 0CB248 7F096718 46181182 */ mul.s $f6, $f2, $f24 +/* 0CB24C 7F09671C C7B20614 */ lwc1 $f18, 0x614($sp) +/* 0CB250 7F096720 C7B4061C */ lwc1 $f20, 0x61c($sp) +/* 0CB254 7F096724 46184282 */ mul.s $f10, $f8, $f24 +/* 0CB258 7F096728 C7A80618 */ lwc1 $f8, 0x618($sp) +/* 0CB25C 7F09672C C7AE05FC */ lwc1 $f14, 0x5fc($sp) +/* 0CB260 7F096730 46186102 */ mul.s $f4, $f12, $f24 +/* 0CB264 7F096734 E7A604B4 */ swc1 $f6, 0x4b4($sp) +/* 0CB268 7F096738 C7B00604 */ lwc1 $f16, 0x604($sp) +/* 0CB26C 7F09673C 46189182 */ mul.s $f6, $f18, $f24 +/* 0CB270 7F096740 E7AA04B8 */ swc1 $f10, 0x4b8($sp) +/* 0CB274 7F096744 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0CB278 7F096748 46184282 */ mul.s $f10, $f8, $f24 +/* 0CB27C 7F09674C E7A404BC */ swc1 $f4, 0x4bc($sp) +/* 0CB280 7F096750 C7A80600 */ lwc1 $f8, 0x600($sp) +/* 0CB284 7F096754 4618A102 */ mul.s $f4, $f20, $f24 +/* 0CB288 7F096758 E7A604CC */ swc1 $f6, 0x4cc($sp) +/* 0CB28C 7F09675C C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0CB290 7F096760 46187182 */ mul.s $f6, $f14, $f24 +/* 0CB294 7F096764 E7AA04D0 */ swc1 $f10, 0x4d0($sp) +/* 0CB298 7F096768 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CB29C 7F09676C 46184282 */ mul.s $f10, $f8, $f24 +/* 0CB2A0 7F096770 E7A404D4 */ swc1 $f4, 0x4d4($sp) +/* 0CB2A4 7F096774 24110003 */ li $s1, 3 +/* 0CB2A8 7F096778 46188102 */ mul.s $f4, $f16, $f24 +/* 0CB2AC 7F09677C E7A604E4 */ swc1 $f6, 0x4e4($sp) +/* 0CB2B0 7F096780 27A404B4 */ addiu $a0, $sp, 0x4b4 +/* 0CB2B4 7F096784 461C1182 */ mul.s $f6, $f2, $f28 +/* 0CB2B8 7F096788 E7AA04E8 */ swc1 $f10, 0x4e8($sp) +/* 0CB2BC 7F09678C 8FA5058C */ lw $a1, 0x58c($sp) +/* 0CB2C0 7F096790 461C6202 */ mul.s $f8, $f12, $f28 +/* 0CB2C4 7F096794 E7A404EC */ swc1 $f4, 0x4ec($sp) +/* 0CB2C8 7F096798 461C9102 */ mul.s $f4, $f18, $f28 +/* 0CB2CC 7F09679C E7A604C0 */ swc1 $f6, 0x4c0($sp) +/* 0CB2D0 7F0967A0 461CA182 */ mul.s $f6, $f20, $f28 +/* 0CB2D4 7F0967A4 46004280 */ add.s $f10, $f8, $f0 +/* 0CB2D8 7F0967A8 E7A404D8 */ swc1 $f4, 0x4d8($sp) +/* 0CB2DC 7F0967AC E7AA04C4 */ swc1 $f10, 0x4c4($sp) +/* 0CB2E0 7F0967B0 461C7282 */ mul.s $f10, $f14, $f28 +/* 0CB2E4 7F0967B4 46003200 */ add.s $f8, $f6, $f0 +/* 0CB2E8 7F0967B8 461C8102 */ mul.s $f4, $f16, $f28 +/* 0CB2EC 7F0967BC E7A804DC */ swc1 $f8, 0x4dc($sp) +/* 0CB2F0 7F0967C0 44814000 */ mtc1 $at, $f8 +/* 0CB2F4 7F0967C4 E7AA04F0 */ swc1 $f10, 0x4f0($sp) +/* 0CB2F8 7F0967C8 46184283 */ div.s $f10, $f8, $f24 +/* 0CB2FC 7F0967CC 46002180 */ add.s $f6, $f4, $f0 +/* 0CB300 7F0967D0 E7A604F4 */ swc1 $f6, 0x4f4($sp) +/* 0CB304 7F0967D4 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB308 7F0967D8 E7AA0058 */ swc1 $f10, 0x58($sp) +/* 0CB30C 7F0967DC 27A404CC */ addiu $a0, $sp, 0x4cc +/* 0CB310 7F0967E0 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB314 7F0967E4 8FA5057C */ lw $a1, 0x57c($sp) +/* 0CB318 7F0967E8 27A404E4 */ addiu $a0, $sp, 0x4e4 +/* 0CB31C 7F0967EC 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB320 7F0967F0 8FA50574 */ lw $a1, 0x574($sp) +/* 0CB324 7F0967F4 1000018D */ b .L7F096E2C +/* 0CB328 7F0967F8 8FAF06B0 */ lw $t7, 0x6b0($sp) +.L7F0967FC: +/* 0CB32C 7F0967FC C7B2062C */ lwc1 $f18, 0x62c($sp) +/* 0CB330 7F096800 C7A60630 */ lwc1 $f6, 0x630($sp) +/* 0CB334 7F096804 C7B40634 */ lwc1 $f20, 0x634($sp) +/* 0CB338 7F096808 46189102 */ mul.s $f4, $f18, $f24 +/* 0CB33C 7F09680C C7A20644 */ lwc1 $f2, 0x644($sp) +/* 0CB340 7F096810 C7AC064C */ lwc1 $f12, 0x64c($sp) +/* 0CB344 7F096814 46183202 */ mul.s $f8, $f6, $f24 +/* 0CB348 7F096818 C7A60648 */ lwc1 $f6, 0x648($sp) +/* 0CB34C 7F09681C C7AE0638 */ lwc1 $f14, 0x638($sp) +/* 0CB350 7F096820 4618A282 */ mul.s $f10, $f20, $f24 +/* 0CB354 7F096824 E7A404B4 */ swc1 $f4, 0x4b4($sp) +/* 0CB358 7F096828 C7B00640 */ lwc1 $f16, 0x640($sp) +/* 0CB35C 7F09682C 46181102 */ mul.s $f4, $f2, $f24 +/* 0CB360 7F096830 E7A804B8 */ swc1 $f8, 0x4b8($sp) +/* 0CB364 7F096834 C7B605F0 */ lwc1 $f22, 0x5f0($sp) +/* 0CB368 7F096838 46183202 */ mul.s $f8, $f6, $f24 +/* 0CB36C 7F09683C E7AA04BC */ swc1 $f10, 0x4bc($sp) +/* 0CB370 7F096840 C7A6063C */ lwc1 $f6, 0x63c($sp) +/* 0CB374 7F096844 46186282 */ mul.s $f10, $f12, $f24 +/* 0CB378 7F096848 E7A404CC */ swc1 $f4, 0x4cc($sp) +/* 0CB37C 7F09684C 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0CB380 7F096850 46187102 */ mul.s $f4, $f14, $f24 +/* 0CB384 7F096854 E7A804D0 */ swc1 $f8, 0x4d0($sp) +/* 0CB388 7F096858 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0CB38C 7F09685C 46183202 */ mul.s $f8, $f6, $f24 +/* 0CB390 7F096860 E7AA04D4 */ swc1 $f10, 0x4d4($sp) +/* 0CB394 7F096864 C7A605F4 */ lwc1 $f6, 0x5f4($sp) +/* 0CB398 7F096868 46188282 */ mul.s $f10, $f16, $f24 +/* 0CB39C 7F09686C E7A404E4 */ swc1 $f4, 0x4e4($sp) +/* 0CB3A0 7F096870 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CB3A4 7F096874 4618B102 */ mul.s $f4, $f22, $f24 +/* 0CB3A8 7F096878 E7A804E8 */ swc1 $f8, 0x4e8($sp) +/* 0CB3AC 7F09687C 24110005 */ li $s1, 5 +/* 0CB3B0 7F096880 46183202 */ mul.s $f8, $f6, $f24 +/* 0CB3B4 7F096884 E7AA04EC */ swc1 $f10, 0x4ec($sp) +/* 0CB3B8 7F096888 C7AA05F8 */ lwc1 $f10, 0x5f8($sp) +/* 0CB3BC 7F09688C C7A60608 */ lwc1 $f6, 0x608($sp) +/* 0CB3C0 7F096890 E7A404FC */ swc1 $f4, 0x4fc($sp) +/* 0CB3C4 7F096894 46185102 */ mul.s $f4, $f10, $f24 +/* 0CB3C8 7F096898 C7AA060C */ lwc1 $f10, 0x60c($sp) +/* 0CB3CC 7F09689C E7A80500 */ swc1 $f8, 0x500($sp) +/* 0CB3D0 7F0968A0 46183202 */ mul.s $f8, $f6, $f24 +/* 0CB3D4 7F0968A4 C7A60610 */ lwc1 $f6, 0x610($sp) +/* 0CB3D8 7F0968A8 27A404B4 */ addiu $a0, $sp, 0x4b4 +/* 0CB3DC 7F0968AC 8FA50584 */ lw $a1, 0x584($sp) +/* 0CB3E0 7F0968B0 E7A40504 */ swc1 $f4, 0x504($sp) +/* 0CB3E4 7F0968B4 46185102 */ mul.s $f4, $f10, $f24 +/* 0CB3E8 7F0968B8 E7A80514 */ swc1 $f8, 0x514($sp) +/* 0CB3EC 7F0968BC 46183202 */ mul.s $f8, $f6, $f24 +/* 0CB3F0 7F0968C0 00000000 */ nop +/* 0CB3F4 7F0968C4 461C9282 */ mul.s $f10, $f18, $f28 +/* 0CB3F8 7F0968C8 E7A40518 */ swc1 $f4, 0x518($sp) +/* 0CB3FC 7F0968CC 461CA102 */ mul.s $f4, $f20, $f28 +/* 0CB400 7F0968D0 E7A8051C */ swc1 $f8, 0x51c($sp) +/* 0CB404 7F0968D4 461C1202 */ mul.s $f8, $f2, $f28 +/* 0CB408 7F0968D8 E7AA04C0 */ swc1 $f10, 0x4c0($sp) +/* 0CB40C 7F0968DC 461C6282 */ mul.s $f10, $f12, $f28 +/* 0CB410 7F0968E0 46002180 */ add.s $f6, $f4, $f0 +/* 0CB414 7F0968E4 E7A804D8 */ swc1 $f8, 0x4d8($sp) +/* 0CB418 7F0968E8 E7A604C4 */ swc1 $f6, 0x4c4($sp) +/* 0CB41C 7F0968EC 461C7182 */ mul.s $f6, $f14, $f28 +/* 0CB420 7F0968F0 46005100 */ add.s $f4, $f10, $f0 +/* 0CB424 7F0968F4 461C8202 */ mul.s $f8, $f16, $f28 +/* 0CB428 7F0968F8 E7A404DC */ swc1 $f4, 0x4dc($sp) +/* 0CB42C 7F0968FC 461CB102 */ mul.s $f4, $f22, $f28 +/* 0CB430 7F096900 E7A604F0 */ swc1 $f6, 0x4f0($sp) +/* 0CB434 7F096904 C7A605F8 */ lwc1 $f6, 0x5f8($sp) +/* 0CB438 7F096908 46004280 */ add.s $f10, $f8, $f0 +/* 0CB43C 7F09690C 461C3202 */ mul.s $f8, $f6, $f28 +/* 0CB440 7F096910 E7A40508 */ swc1 $f4, 0x508($sp) +/* 0CB444 7F096914 C7A40608 */ lwc1 $f4, 0x608($sp) +/* 0CB448 7F096918 E7AA04F4 */ swc1 $f10, 0x4f4($sp) +/* 0CB44C 7F09691C 461C2182 */ mul.s $f6, $f4, $f28 +/* 0CB450 7F096920 46004280 */ add.s $f10, $f8, $f0 +/* 0CB454 7F096924 C7A80610 */ lwc1 $f8, 0x610($sp) +/* 0CB458 7F096928 E7AA050C */ swc1 $f10, 0x50c($sp) +/* 0CB45C 7F09692C E7A60520 */ swc1 $f6, 0x520($sp) +/* 0CB460 7F096930 44813000 */ mtc1 $at, $f6 +/* 0CB464 7F096934 461C4282 */ mul.s $f10, $f8, $f28 +/* 0CB468 7F096938 46183203 */ div.s $f8, $f6, $f24 +/* 0CB46C 7F09693C 46005100 */ add.s $f4, $f10, $f0 +/* 0CB470 7F096940 E7A40524 */ swc1 $f4, 0x524($sp) +/* 0CB474 7F096944 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB478 7F096948 E7A80058 */ swc1 $f8, 0x58($sp) +/* 0CB47C 7F09694C 27A404CC */ addiu $a0, $sp, 0x4cc +/* 0CB480 7F096950 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB484 7F096954 8FA5058C */ lw $a1, 0x58c($sp) +/* 0CB488 7F096958 27A404E4 */ addiu $a0, $sp, 0x4e4 +/* 0CB48C 7F09695C 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB490 7F096960 8FA50588 */ lw $a1, 0x588($sp) +/* 0CB494 7F096964 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0CB498 7F096968 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB49C 7F09696C 8FA50570 */ lw $a1, 0x570($sp) +/* 0CB4A0 7F096970 27A40514 */ addiu $a0, $sp, 0x514 +/* 0CB4A4 7F096974 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB4A8 7F096978 8FA50578 */ lw $a1, 0x578($sp) +/* 0CB4AC 7F09697C 1000012B */ b .L7F096E2C +/* 0CB4B0 7F096980 8FAF06B0 */ lw $t7, 0x6b0($sp) +.L7F096984: +/* 0CB4B4 7F096984 C7A20644 */ lwc1 $f2, 0x644($sp) +/* 0CB4B8 7F096988 C7A40648 */ lwc1 $f4, 0x648($sp) +/* 0CB4BC 7F09698C C7AC064C */ lwc1 $f12, 0x64c($sp) +/* 0CB4C0 7F096990 46181282 */ mul.s $f10, $f2, $f24 +/* 0CB4C4 7F096994 C7AE0638 */ lwc1 $f14, 0x638($sp) +/* 0CB4C8 7F096998 C7B00640 */ lwc1 $f16, 0x640($sp) +/* 0CB4CC 7F09699C 46182182 */ mul.s $f6, $f4, $f24 +/* 0CB4D0 7F0969A0 C7A4063C */ lwc1 $f4, 0x63c($sp) +/* 0CB4D4 7F0969A4 C7B60620 */ lwc1 $f22, 0x620($sp) +/* 0CB4D8 7F0969A8 46186202 */ mul.s $f8, $f12, $f24 +/* 0CB4DC 7F0969AC E7AA04B4 */ swc1 $f10, 0x4b4($sp) +/* 0CB4E0 7F0969B0 C7B205FC */ lwc1 $f18, 0x5fc($sp) +/* 0CB4E4 7F0969B4 46187282 */ mul.s $f10, $f14, $f24 +/* 0CB4E8 7F0969B8 E7A604B8 */ swc1 $f6, 0x4b8($sp) +/* 0CB4EC 7F0969BC C7B40604 */ lwc1 $f20, 0x604($sp) +/* 0CB4F0 7F0969C0 46182182 */ mul.s $f6, $f4, $f24 +/* 0CB4F4 7F0969C4 E7A804BC */ swc1 $f8, 0x4bc($sp) +/* 0CB4F8 7F0969C8 C7A40624 */ lwc1 $f4, 0x624($sp) +/* 0CB4FC 7F0969CC 46188202 */ mul.s $f8, $f16, $f24 +/* 0CB500 7F0969D0 E7AA04CC */ swc1 $f10, 0x4cc($sp) +/* 0CB504 7F0969D4 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0CB508 7F0969D8 4618B282 */ mul.s $f10, $f22, $f24 +/* 0CB50C 7F0969DC E7A604D0 */ swc1 $f6, 0x4d0($sp) +/* 0CB510 7F0969E0 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0CB514 7F0969E4 46182182 */ mul.s $f6, $f4, $f24 +/* 0CB518 7F0969E8 E7A804D4 */ swc1 $f8, 0x4d4($sp) +/* 0CB51C 7F0969EC C7A80628 */ lwc1 $f8, 0x628($sp) +/* 0CB520 7F0969F0 C7A40608 */ lwc1 $f4, 0x608($sp) +/* 0CB524 7F0969F4 E7AA04E4 */ swc1 $f10, 0x4e4($sp) +/* 0CB528 7F0969F8 46184282 */ mul.s $f10, $f8, $f24 +/* 0CB52C 7F0969FC C7A8060C */ lwc1 $f8, 0x60c($sp) +/* 0CB530 7F096A00 E7A604E8 */ swc1 $f6, 0x4e8($sp) +/* 0CB534 7F096A04 46182182 */ mul.s $f6, $f4, $f24 +/* 0CB538 7F096A08 C7A40610 */ lwc1 $f4, 0x610($sp) +/* 0CB53C 7F096A0C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CB540 7F096A10 24110005 */ li $s1, 5 +/* 0CB544 7F096A14 E7AA04EC */ swc1 $f10, 0x4ec($sp) +/* 0CB548 7F096A18 46184282 */ mul.s $f10, $f8, $f24 +/* 0CB54C 7F096A1C 27A404B4 */ addiu $a0, $sp, 0x4b4 +/* 0CB550 7F096A20 E7A604FC */ swc1 $f6, 0x4fc($sp) +/* 0CB554 7F096A24 46182182 */ mul.s $f6, $f4, $f24 +/* 0CB558 7F096A28 8FA5058C */ lw $a1, 0x58c($sp) +/* 0CB55C 7F096A2C 46189202 */ mul.s $f8, $f18, $f24 +/* 0CB560 7F096A30 E7AA0500 */ swc1 $f10, 0x500($sp) +/* 0CB564 7F096A34 C7AA0600 */ lwc1 $f10, 0x600($sp) +/* 0CB568 7F096A38 E7A60504 */ swc1 $f6, 0x504($sp) +/* 0CB56C 7F096A3C 46185102 */ mul.s $f4, $f10, $f24 +/* 0CB570 7F096A40 E7A80514 */ swc1 $f8, 0x514($sp) +/* 0CB574 7F096A44 4618A182 */ mul.s $f6, $f20, $f24 +/* 0CB578 7F096A48 00000000 */ nop +/* 0CB57C 7F096A4C 461C1202 */ mul.s $f8, $f2, $f28 +/* 0CB580 7F096A50 E7A40518 */ swc1 $f4, 0x518($sp) +/* 0CB584 7F096A54 461C6282 */ mul.s $f10, $f12, $f28 +/* 0CB588 7F096A58 E7A6051C */ swc1 $f6, 0x51c($sp) +/* 0CB58C 7F096A5C 461C7182 */ mul.s $f6, $f14, $f28 +/* 0CB590 7F096A60 E7A804C0 */ swc1 $f8, 0x4c0($sp) +/* 0CB594 7F096A64 461C8202 */ mul.s $f8, $f16, $f28 +/* 0CB598 7F096A68 46005100 */ add.s $f4, $f10, $f0 +/* 0CB59C 7F096A6C E7A604D8 */ swc1 $f6, 0x4d8($sp) +/* 0CB5A0 7F096A70 C7A60628 */ lwc1 $f6, 0x628($sp) +/* 0CB5A4 7F096A74 E7A404C4 */ swc1 $f4, 0x4c4($sp) +/* 0CB5A8 7F096A78 461CB102 */ mul.s $f4, $f22, $f28 +/* 0CB5AC 7F096A7C 46004280 */ add.s $f10, $f8, $f0 +/* 0CB5B0 7F096A80 461C3202 */ mul.s $f8, $f6, $f28 +/* 0CB5B4 7F096A84 E7AA04DC */ swc1 $f10, 0x4dc($sp) +/* 0CB5B8 7F096A88 E7A404F0 */ swc1 $f4, 0x4f0($sp) +/* 0CB5BC 7F096A8C C7A40608 */ lwc1 $f4, 0x608($sp) +/* 0CB5C0 7F096A90 46004280 */ add.s $f10, $f8, $f0 +/* 0CB5C4 7F096A94 461C2182 */ mul.s $f6, $f4, $f28 +/* 0CB5C8 7F096A98 C7A80610 */ lwc1 $f8, 0x610($sp) +/* 0CB5CC 7F096A9C E7AA04F4 */ swc1 $f10, 0x4f4($sp) +/* 0CB5D0 7F096AA0 461C4282 */ mul.s $f10, $f8, $f28 +/* 0CB5D4 7F096AA4 E7A60508 */ swc1 $f6, 0x508($sp) +/* 0CB5D8 7F096AA8 461C9182 */ mul.s $f6, $f18, $f28 +/* 0CB5DC 7F096AAC 46005100 */ add.s $f4, $f10, $f0 +/* 0CB5E0 7F096AB0 461CA202 */ mul.s $f8, $f20, $f28 +/* 0CB5E4 7F096AB4 E7A60520 */ swc1 $f6, 0x520($sp) +/* 0CB5E8 7F096AB8 E7A4050C */ swc1 $f4, 0x50c($sp) +/* 0CB5EC 7F096ABC 44812000 */ mtc1 $at, $f4 +/* 0CB5F0 7F096AC0 00000000 */ nop +/* 0CB5F4 7F096AC4 46182183 */ div.s $f6, $f4, $f24 +/* 0CB5F8 7F096AC8 46004280 */ add.s $f10, $f8, $f0 +/* 0CB5FC 7F096ACC E7AA0524 */ swc1 $f10, 0x524($sp) +/* 0CB600 7F096AD0 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB604 7F096AD4 E7A60058 */ swc1 $f6, 0x58($sp) +/* 0CB608 7F096AD8 27A404CC */ addiu $a0, $sp, 0x4cc +/* 0CB60C 7F096ADC 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB610 7F096AE0 8FA50588 */ lw $a1, 0x588($sp) +/* 0CB614 7F096AE4 27A404E4 */ addiu $a0, $sp, 0x4e4 +/* 0CB618 7F096AE8 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB61C 7F096AEC 8FA50580 */ lw $a1, 0x580($sp) +/* 0CB620 7F096AF0 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0CB624 7F096AF4 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB628 7F096AF8 8FA50578 */ lw $a1, 0x578($sp) +/* 0CB62C 7F096AFC 27A40514 */ addiu $a0, $sp, 0x514 +/* 0CB630 7F096B00 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB634 7F096B04 8FA50574 */ lw $a1, 0x574($sp) +/* 0CB638 7F096B08 100000C8 */ b .L7F096E2C +/* 0CB63C 7F096B0C 8FAF06B0 */ lw $t7, 0x6b0($sp) +.L7F096B10: +/* 0CB640 7F096B10 C7B60620 */ lwc1 $f22, 0x620($sp) +/* 0CB644 7F096B14 C7AA0624 */ lwc1 $f10, 0x624($sp) +/* 0CB648 7F096B18 C7A60628 */ lwc1 $f6, 0x628($sp) +/* 0CB64C 7F096B1C 4618B202 */ mul.s $f8, $f22, $f24 +/* 0CB650 7F096B20 C7B2062C */ lwc1 $f18, 0x62c($sp) +/* 0CB654 7F096B24 C7B40634 */ lwc1 $f20, 0x634($sp) +/* 0CB658 7F096B28 46185102 */ mul.s $f4, $f10, $f24 +/* 0CB65C 7F096B2C C7A20644 */ lwc1 $f2, 0x644($sp) +/* 0CB660 7F096B30 C7AC064C */ lwc1 $f12, 0x64c($sp) +/* 0CB664 7F096B34 C7AE0614 */ lwc1 $f14, 0x614($sp) +/* 0CB668 7F096B38 E7A804B4 */ swc1 $f8, 0x4b4($sp) +/* 0CB66C 7F096B3C 46183202 */ mul.s $f8, $f6, $f24 +/* 0CB670 7F096B40 C7B0061C */ lwc1 $f16, 0x61c($sp) +/* 0CB674 7F096B44 E7A404B8 */ swc1 $f4, 0x4b8($sp) +/* 0CB678 7F096B48 46189282 */ mul.s $f10, $f18, $f24 +/* 0CB67C 7F096B4C C7A40630 */ lwc1 $f4, 0x630($sp) +/* 0CB680 7F096B50 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0CB684 7F096B54 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0CB688 7F096B58 E7A804BC */ swc1 $f8, 0x4bc($sp) +/* 0CB68C 7F096B5C 46182202 */ mul.s $f8, $f4, $f24 +/* 0CB690 7F096B60 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CB694 7F096B64 E7AA04CC */ swc1 $f10, 0x4cc($sp) +/* 0CB698 7F096B68 4618A282 */ mul.s $f10, $f20, $f24 +/* 0CB69C 7F096B6C 24110005 */ li $s1, 5 +/* 0CB6A0 7F096B70 27A404B4 */ addiu $a0, $sp, 0x4b4 +/* 0CB6A4 7F096B74 46181102 */ mul.s $f4, $f2, $f24 +/* 0CB6A8 7F096B78 E7A804D0 */ swc1 $f8, 0x4d0($sp) +/* 0CB6AC 7F096B7C C7A80648 */ lwc1 $f8, 0x648($sp) +/* 0CB6B0 7F096B80 8FA50580 */ lw $a1, 0x580($sp) +/* 0CB6B4 7F096B84 E7AA04D4 */ swc1 $f10, 0x4d4($sp) +/* 0CB6B8 7F096B88 46184282 */ mul.s $f10, $f8, $f24 +/* 0CB6BC 7F096B8C E7A404E4 */ swc1 $f4, 0x4e4($sp) +/* 0CB6C0 7F096B90 46186102 */ mul.s $f4, $f12, $f24 +/* 0CB6C4 7F096B94 E7AA04E8 */ swc1 $f10, 0x4e8($sp) +/* 0CB6C8 7F096B98 46187202 */ mul.s $f8, $f14, $f24 +/* 0CB6CC 7F096B9C C7AA0618 */ lwc1 $f10, 0x618($sp) +/* 0CB6D0 7F096BA0 E7A404EC */ swc1 $f4, 0x4ec($sp) +/* 0CB6D4 7F096BA4 46185102 */ mul.s $f4, $f10, $f24 +/* 0CB6D8 7F096BA8 C7AA05F0 */ lwc1 $f10, 0x5f0($sp) +/* 0CB6DC 7F096BAC E7A804FC */ swc1 $f8, 0x4fc($sp) +/* 0CB6E0 7F096BB0 46188202 */ mul.s $f8, $f16, $f24 +/* 0CB6E4 7F096BB4 E7A40500 */ swc1 $f4, 0x500($sp) +/* 0CB6E8 7F096BB8 46185102 */ mul.s $f4, $f10, $f24 +/* 0CB6EC 7F096BBC E7A80504 */ swc1 $f8, 0x504($sp) +/* 0CB6F0 7F096BC0 C7A805F4 */ lwc1 $f8, 0x5f4($sp) +/* 0CB6F4 7F096BC4 46184282 */ mul.s $f10, $f8, $f24 +/* 0CB6F8 7F096BC8 E7A40514 */ swc1 $f4, 0x514($sp) +/* 0CB6FC 7F096BCC C7A405F8 */ lwc1 $f4, 0x5f8($sp) +/* 0CB700 7F096BD0 46182202 */ mul.s $f8, $f4, $f24 +/* 0CB704 7F096BD4 E7AA0518 */ swc1 $f10, 0x518($sp) +/* 0CB708 7F096BD8 461CB282 */ mul.s $f10, $f22, $f28 +/* 0CB70C 7F096BDC 00000000 */ nop +/* 0CB710 7F096BE0 461C3102 */ mul.s $f4, $f6, $f28 +/* 0CB714 7F096BE4 E7A8051C */ swc1 $f8, 0x51c($sp) +/* 0CB718 7F096BE8 E7AA04C0 */ swc1 $f10, 0x4c0($sp) +/* 0CB71C 7F096BEC 461C9282 */ mul.s $f10, $f18, $f28 +/* 0CB720 7F096BF0 46002200 */ add.s $f8, $f4, $f0 +/* 0CB724 7F096BF4 461CA182 */ mul.s $f6, $f20, $f28 +/* 0CB728 7F096BF8 E7A804C4 */ swc1 $f8, 0x4c4($sp) +/* 0CB72C 7F096BFC 461C1202 */ mul.s $f8, $f2, $f28 +/* 0CB730 7F096C00 E7AA04D8 */ swc1 $f10, 0x4d8($sp) +/* 0CB734 7F096C04 461C6282 */ mul.s $f10, $f12, $f28 +/* 0CB738 7F096C08 46003100 */ add.s $f4, $f6, $f0 +/* 0CB73C 7F096C0C E7A804F0 */ swc1 $f8, 0x4f0($sp) +/* 0CB740 7F096C10 E7A404DC */ swc1 $f4, 0x4dc($sp) +/* 0CB744 7F096C14 461C7102 */ mul.s $f4, $f14, $f28 +/* 0CB748 7F096C18 46005180 */ add.s $f6, $f10, $f0 +/* 0CB74C 7F096C1C 461C8202 */ mul.s $f8, $f16, $f28 +/* 0CB750 7F096C20 E7A604F4 */ swc1 $f6, 0x4f4($sp) +/* 0CB754 7F096C24 C7A605F0 */ lwc1 $f6, 0x5f0($sp) +/* 0CB758 7F096C28 E7A40508 */ swc1 $f4, 0x508($sp) +/* 0CB75C 7F096C2C 461C3102 */ mul.s $f4, $f6, $f28 +/* 0CB760 7F096C30 46004280 */ add.s $f10, $f8, $f0 +/* 0CB764 7F096C34 C7A805F8 */ lwc1 $f8, 0x5f8($sp) +/* 0CB768 7F096C38 E7AA050C */ swc1 $f10, 0x50c($sp) +/* 0CB76C 7F096C3C 461C4282 */ mul.s $f10, $f8, $f28 +/* 0CB770 7F096C40 E7A40520 */ swc1 $f4, 0x520($sp) +/* 0CB774 7F096C44 44812000 */ mtc1 $at, $f4 +/* 0CB778 7F096C48 00000000 */ nop +/* 0CB77C 7F096C4C 46182203 */ div.s $f8, $f4, $f24 +/* 0CB780 7F096C50 46005180 */ add.s $f6, $f10, $f0 +/* 0CB784 7F096C54 E7A60524 */ swc1 $f6, 0x524($sp) +/* 0CB788 7F096C58 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB78C 7F096C5C E7A80058 */ swc1 $f8, 0x58($sp) +/* 0CB790 7F096C60 27A404CC */ addiu $a0, $sp, 0x4cc +/* 0CB794 7F096C64 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB798 7F096C68 8FA50584 */ lw $a1, 0x584($sp) +/* 0CB79C 7F096C6C 27A404E4 */ addiu $a0, $sp, 0x4e4 +/* 0CB7A0 7F096C70 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB7A4 7F096C74 8FA5058C */ lw $a1, 0x58c($sp) +/* 0CB7A8 7F096C78 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0CB7AC 7F096C7C 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB7B0 7F096C80 8FA5057C */ lw $a1, 0x57c($sp) +/* 0CB7B4 7F096C84 27A40514 */ addiu $a0, $sp, 0x514 +/* 0CB7B8 7F096C88 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB7BC 7F096C8C 8FA50570 */ lw $a1, 0x570($sp) +/* 0CB7C0 7F096C90 10000066 */ b .L7F096E2C +/* 0CB7C4 7F096C94 8FAF06B0 */ lw $t7, 0x6b0($sp) +.L7F096C98: +/* 0CB7C8 7F096C98 C7AE0638 */ lwc1 $f14, 0x638($sp) +/* 0CB7CC 7F096C9C C7A6063C */ lwc1 $f6, 0x63c($sp) +/* 0CB7D0 7F096CA0 C7B00640 */ lwc1 $f16, 0x640($sp) +/* 0CB7D4 7F096CA4 46187282 */ mul.s $f10, $f14, $f24 +/* 0CB7D8 7F096CA8 C7B60620 */ lwc1 $f22, 0x620($sp) +/* 0CB7DC 7F096CAC C7A20628 */ lwc1 $f2, 0x628($sp) +/* 0CB7E0 7F096CB0 46183102 */ mul.s $f4, $f6, $f24 +/* 0CB7E4 7F096CB4 C7A60624 */ lwc1 $f6, 0x624($sp) +/* 0CB7E8 7F096CB8 C7B2062C */ lwc1 $f18, 0x62c($sp) +/* 0CB7EC 7F096CBC 46188202 */ mul.s $f8, $f16, $f24 +/* 0CB7F0 7F096CC0 E7AA04B4 */ swc1 $f10, 0x4b4($sp) +/* 0CB7F4 7F096CC4 C7B40634 */ lwc1 $f20, 0x634($sp) +/* 0CB7F8 7F096CC8 4618B282 */ mul.s $f10, $f22, $f24 +/* 0CB7FC 7F096CCC E7A404B8 */ swc1 $f4, 0x4b8($sp) +/* 0CB800 7F096CD0 C7AC05FC */ lwc1 $f12, 0x5fc($sp) +/* 0CB804 7F096CD4 46183102 */ mul.s $f4, $f6, $f24 +/* 0CB808 7F096CD8 E7A804BC */ swc1 $f8, 0x4bc($sp) +/* 0CB80C 7F096CDC C7A60630 */ lwc1 $f6, 0x630($sp) +/* 0CB810 7F096CE0 46181202 */ mul.s $f8, $f2, $f24 +/* 0CB814 7F096CE4 E7AA04CC */ swc1 $f10, 0x4cc($sp) +/* 0CB818 7F096CE8 3C018004 */ lui $at, %hi(D_8003FD94) +/* 0CB81C 7F096CEC 46189282 */ mul.s $f10, $f18, $f24 +/* 0CB820 7F096CF0 E7A404D0 */ swc1 $f4, 0x4d0($sp) +/* 0CB824 7F096CF4 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) +/* 0CB828 7F096CF8 46183102 */ mul.s $f4, $f6, $f24 +/* 0CB82C 7F096CFC E7A804D4 */ swc1 $f8, 0x4d4($sp) +/* 0CB830 7F096D00 C7A60600 */ lwc1 $f6, 0x600($sp) +/* 0CB834 7F096D04 4618A202 */ mul.s $f8, $f20, $f24 +/* 0CB838 7F096D08 E7AA04E4 */ swc1 $f10, 0x4e4($sp) +/* 0CB83C 7F096D0C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CB840 7F096D10 46186282 */ mul.s $f10, $f12, $f24 +/* 0CB844 7F096D14 E7A404E8 */ swc1 $f4, 0x4e8($sp) +/* 0CB848 7F096D18 24110005 */ li $s1, 5 +/* 0CB84C 7F096D1C 46183102 */ mul.s $f4, $f6, $f24 +/* 0CB850 7F096D20 E7A804EC */ swc1 $f8, 0x4ec($sp) +/* 0CB854 7F096D24 C7A80604 */ lwc1 $f8, 0x604($sp) +/* 0CB858 7F096D28 C7A60614 */ lwc1 $f6, 0x614($sp) +/* 0CB85C 7F096D2C E7AA04FC */ swc1 $f10, 0x4fc($sp) +/* 0CB860 7F096D30 46184282 */ mul.s $f10, $f8, $f24 +/* 0CB864 7F096D34 C7A80618 */ lwc1 $f8, 0x618($sp) +/* 0CB868 7F096D38 E7A40500 */ swc1 $f4, 0x500($sp) +/* 0CB86C 7F096D3C 46183102 */ mul.s $f4, $f6, $f24 +/* 0CB870 7F096D40 C7A6061C */ lwc1 $f6, 0x61c($sp) +/* 0CB874 7F096D44 27A404B4 */ addiu $a0, $sp, 0x4b4 +/* 0CB878 7F096D48 8FA50588 */ lw $a1, 0x588($sp) +/* 0CB87C 7F096D4C E7AA0504 */ swc1 $f10, 0x504($sp) +/* 0CB880 7F096D50 46184282 */ mul.s $f10, $f8, $f24 +/* 0CB884 7F096D54 E7A40514 */ swc1 $f4, 0x514($sp) +/* 0CB888 7F096D58 46183102 */ mul.s $f4, $f6, $f24 +/* 0CB88C 7F096D5C 00000000 */ nop +/* 0CB890 7F096D60 461C7202 */ mul.s $f8, $f14, $f28 +/* 0CB894 7F096D64 E7AA0518 */ swc1 $f10, 0x518($sp) +/* 0CB898 7F096D68 461C8282 */ mul.s $f10, $f16, $f28 +/* 0CB89C 7F096D6C E7A4051C */ swc1 $f4, 0x51c($sp) +/* 0CB8A0 7F096D70 461CB102 */ mul.s $f4, $f22, $f28 +/* 0CB8A4 7F096D74 E7A804C0 */ swc1 $f8, 0x4c0($sp) +/* 0CB8A8 7F096D78 461C1202 */ mul.s $f8, $f2, $f28 +/* 0CB8AC 7F096D7C 46005180 */ add.s $f6, $f10, $f0 +/* 0CB8B0 7F096D80 E7A404D8 */ swc1 $f4, 0x4d8($sp) +/* 0CB8B4 7F096D84 E7A604C4 */ swc1 $f6, 0x4c4($sp) +/* 0CB8B8 7F096D88 461C9182 */ mul.s $f6, $f18, $f28 +/* 0CB8BC 7F096D8C 46004280 */ add.s $f10, $f8, $f0 +/* 0CB8C0 7F096D90 461CA102 */ mul.s $f4, $f20, $f28 +/* 0CB8C4 7F096D94 E7AA04DC */ swc1 $f10, 0x4dc($sp) +/* 0CB8C8 7F096D98 461C6282 */ mul.s $f10, $f12, $f28 +/* 0CB8CC 7F096D9C E7A604F0 */ swc1 $f6, 0x4f0($sp) +/* 0CB8D0 7F096DA0 C7A60604 */ lwc1 $f6, 0x604($sp) +/* 0CB8D4 7F096DA4 46002200 */ add.s $f8, $f4, $f0 +/* 0CB8D8 7F096DA8 461C3102 */ mul.s $f4, $f6, $f28 +/* 0CB8DC 7F096DAC E7AA0508 */ swc1 $f10, 0x508($sp) +/* 0CB8E0 7F096DB0 C7AA0614 */ lwc1 $f10, 0x614($sp) +/* 0CB8E4 7F096DB4 E7A804F4 */ swc1 $f8, 0x4f4($sp) +/* 0CB8E8 7F096DB8 461C5182 */ mul.s $f6, $f10, $f28 +/* 0CB8EC 7F096DBC 46002200 */ add.s $f8, $f4, $f0 +/* 0CB8F0 7F096DC0 C7A4061C */ lwc1 $f4, 0x61c($sp) +/* 0CB8F4 7F096DC4 E7A8050C */ swc1 $f8, 0x50c($sp) +/* 0CB8F8 7F096DC8 E7A60520 */ swc1 $f6, 0x520($sp) +/* 0CB8FC 7F096DCC 44813000 */ mtc1 $at, $f6 +/* 0CB900 7F096DD0 461C2202 */ mul.s $f8, $f4, $f28 +/* 0CB904 7F096DD4 46183103 */ div.s $f4, $f6, $f24 +/* 0CB908 7F096DD8 46004280 */ add.s $f10, $f8, $f0 +/* 0CB90C 7F096DDC E7AA0524 */ swc1 $f10, 0x524($sp) +/* 0CB910 7F096DE0 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB914 7F096DE4 E7A40058 */ swc1 $f4, 0x58($sp) +/* 0CB918 7F096DE8 27A404CC */ addiu $a0, $sp, 0x4cc +/* 0CB91C 7F096DEC 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB920 7F096DF0 8FA50580 */ lw $a1, 0x580($sp) +/* 0CB924 7F096DF4 27A404E4 */ addiu $a0, $sp, 0x4e4 +/* 0CB928 7F096DF8 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB92C 7F096DFC 8FA50584 */ lw $a1, 0x584($sp) +/* 0CB930 7F096E00 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0CB934 7F096E04 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB938 7F096E08 8FA50574 */ lw $a1, 0x574($sp) +/* 0CB93C 7F096E0C 27A40514 */ addiu $a0, $sp, 0x514 +/* 0CB940 7F096E10 0FC24F2C */ jal sub_GAME_7F093CB0 +/* 0CB944 7F096E14 8FA5057C */ lw $a1, 0x57c($sp) +/* 0CB948 7F096E18 10000004 */ b .L7F096E2C +/* 0CB94C 7F096E1C 8FAF06B0 */ lw $t7, 0x6b0($sp) +def_7F095E0C: +.L7F096E20: +/* 0CB950 7F096E20 1000014F */ b .L7F097360 +/* 0CB954 7F096E24 00601025 */ move $v0, $v1 +/* 0CB958 7F096E28 8FAF06B0 */ lw $t7, 0x6b0($sp) +.L7F096E2C: +/* 0CB95C 7F096E2C 3C0CE700 */ lui $t4, 0xe700 +/* 0CB960 7F096E30 25ED0008 */ addiu $t5, $t7, 8 +/* 0CB964 7F096E34 AFAD06B0 */ sw $t5, 0x6b0($sp) +/* 0CB968 7F096E38 ADE00004 */ sw $zero, 4($t7) +/* 0CB96C 7F096E3C 0FC2E9CB */ jal get_ptr_currentdata +/* 0CB970 7F096E40 ADEC0000 */ sw $t4, ($t7) +/* 0CB974 7F096E44 84590010 */ lh $t9, 0x10($v0) +/* 0CB978 7F096E48 3C0B8009 */ lui $t3, %hi(skywaterimages) +/* 0CB97C 7F096E4C 8D6BD124 */ lw $t3, %lo(skywaterimages)($t3) +/* 0CB980 7F096E50 0019C080 */ sll $t8, $t9, 2 +/* 0CB984 7F096E54 0319C023 */ subu $t8, $t8, $t9 +/* 0CB988 7F096E58 0018C080 */ sll $t8, $t8, 2 +/* 0CB98C 7F096E5C 240E0002 */ li $t6, 2 +/* 0CB990 7F096E60 AFAE0010 */ sw $t6, 0x10($sp) +/* 0CB994 7F096E64 27A406B0 */ addiu $a0, $sp, 0x6b0 +/* 0CB998 7F096E68 24060001 */ li $a2, 1 +/* 0CB99C 7F096E6C 00003825 */ move $a3, $zero +/* 0CB9A0 7F096E70 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 0CB9A4 7F096E74 030B2821 */ addu $a1, $t8, $t3 +/* 0CB9A8 7F096E78 8FAA06B0 */ lw $t2, 0x6b0($sp) +/* 0CB9AC 7F096E7C 3C0DFB00 */ lui $t5, 0xfb00 +/* 0CB9B0 7F096E80 254F0008 */ addiu $t7, $t2, 8 +/* 0CB9B4 7F096E84 AFAF06B0 */ sw $t7, 0x6b0($sp) +/* 0CB9B8 7F096E88 AD4D0000 */ sw $t5, ($t2) +/* 0CB9BC 7F096E8C 0FC2E9CB */ jal get_ptr_currentdata +/* 0CB9C0 7F096E90 AFAA0228 */ sw $t2, 0x228($sp) +/* 0CB9C4 7F096E94 0FC2E9CB */ jal get_ptr_currentdata +/* 0CB9C8 7F096E98 00408025 */ move $s0, $v0 +/* 0CB9CC 7F096E9C 0FC2E9CB */ jal get_ptr_currentdata +/* 0CB9D0 7F096EA0 AFA2006C */ sw $v0, 0x6c($sp) +/* 0CB9D4 7F096EA4 8FAB006C */ lw $t3, 0x6c($sp) +/* 0CB9D8 7F096EA8 9059000A */ lbu $t9, 0xa($v0) +/* 0CB9DC 7F096EAC 916A0008 */ lbu $t2, 8($t3) +/* 0CB9E0 7F096EB0 0019C200 */ sll $t8, $t9, 8 +/* 0CB9E4 7F096EB4 92190009 */ lbu $t9, 9($s0) +/* 0CB9E8 7F096EB8 000A7E00 */ sll $t7, $t2, 0x18 +/* 0CB9EC 7F096EBC 030F6825 */ or $t5, $t8, $t7 +/* 0CB9F0 7F096EC0 8FB80228 */ lw $t8, 0x228($sp) +/* 0CB9F4 7F096EC4 00195C00 */ sll $t3, $t9, 0x10 +/* 0CB9F8 7F096EC8 01AB7025 */ or $t6, $t5, $t3 +/* 0CB9FC 7F096ECC 35CA00FF */ ori $t2, $t6, 0xff +/* 0CBA00 7F096ED0 AF0A0004 */ sw $t2, 4($t8) +/* 0CBA04 7F096ED4 8FAF06B0 */ lw $t7, 0x6b0($sp) +/* 0CBA08 7F096ED8 3C0D55FE */ lui $t5, (0x55FEF97C >> 16) # lui $t5, 0x55fe +/* 0CBA0C 7F096EDC 3C19FC40 */ lui $t9, (0xFC40FE81 >> 16) # lui $t9, 0xfc40 +/* 0CBA10 7F096EE0 25EC0008 */ addiu $t4, $t7, 8 +/* 0CBA14 7F096EE4 AFAC06B0 */ sw $t4, 0x6b0($sp) +/* 0CBA18 7F096EE8 3739FE81 */ ori $t9, (0xFC40FE81 & 0xFFFF) # ori $t9, $t9, 0xfe81 +/* 0CBA1C 7F096EEC 35ADF97C */ ori $t5, (0x55FEF97C & 0xFFFF) # ori $t5, $t5, 0xf97c +/* 0CBA20 7F096EF0 ADED0004 */ sw $t5, 4($t7) +/* 0CBA24 7F096EF4 0FC1E0F9 */ jal get_BONDdata_field_10DC +/* 0CBA28 7F096EF8 ADF90000 */ sw $t9, ($t7) +/* 0CBA2C 7F096EFC 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0CBA30 7F096F00 00408025 */ move $s0, $v0 +/* 0CBA34 7F096F04 02002025 */ move $a0, $s0 +/* 0CBA38 7F096F08 00402825 */ move $a1, $v0 +/* 0CBA3C 7F096F0C 0FC16032 */ jal matrix_4x4_multiply +/* 0CBA40 7F096F10 27A601E4 */ addiu $a2, $sp, 0x1e4 +/* 0CBA44 7F096F14 C7A80058 */ lwc1 $f8, 0x58($sp) +/* 0CBA48 7F096F18 3C048008 */ lui $a0, %hi(dword_CODE_bss_80079E98) +/* 0CBA4C 7F096F1C 24849E98 */ addiu $a0, %lo(dword_CODE_bss_80079E98) # addiu $a0, $a0, -0x6168 +/* 0CBA50 7F096F20 44054000 */ mfc1 $a1, $f8 +/* 0CBA54 7F096F24 44064000 */ mfc1 $a2, $f8 +/* 0CBA58 7F096F28 44074000 */ mfc1 $a3, $f8 +/* 0CBA5C 7F096F2C 0C005BA4 */ jal guScaleF +/* 0CBA60 7F096F30 00000000 */ nop +/* 0CBA64 7F096F34 3C058008 */ lui $a1, %hi(dword_CODE_bss_80079E98) +/* 0CBA68 7F096F38 24A59E98 */ addiu $a1, %lo(dword_CODE_bss_80079E98) # addiu $a1, $a1, -0x6168 +/* 0CBA6C 7F096F3C 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 0CBA70 7F096F40 0FC16032 */ jal matrix_4x4_multiply +/* 0CBA74 7F096F44 27A601A4 */ addiu $a2, $sp, 0x1a4 +/* 0CBA78 7F096F48 1A200036 */ blez $s1, .L7F097024 +/* 0CBA7C 7F096F4C AFA00088 */ sw $zero, 0x88($sp) +/* 0CBA80 7F096F50 27A404B4 */ addiu $a0, $sp, 0x4b4 +/* 0CBA84 7F096F54 AFA40058 */ sw $a0, 0x58($sp) +/* 0CBA88 7F096F58 27B0008C */ addiu $s0, $sp, 0x8c +.L7F096F5C: +/* 0CBA8C 7F096F5C 3C018005 */ lui $at, %hi(D_800575D0) +/* 0CBA90 7F096F60 C42075D0 */ lwc1 $f0, %lo(D_800575D0)($at) +/* 0CBA94 7F096F64 8FA40058 */ lw $a0, 0x58($sp) +/* 0CBA98 7F096F68 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 0CBA9C 7F096F6C 44070000 */ mfc1 $a3, $f0 +/* 0CBAA0 7F096F70 24060082 */ li $a2, 130 +/* 0CBAA4 7F096F74 AFB00014 */ sw $s0, 0x14($sp) +/* 0CBAA8 7F096F78 0FC25CE2 */ jal sub_GAME_7F097388 +/* 0CBAAC 7F096F7C E7A00010 */ swc1 $f0, 0x10($sp) +/* 0CBAB0 7F096F80 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CBAB4 7F096F84 00000000 */ nop +/* 0CBAB8 7F096F88 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CBABC 7F096F8C 46000506 */ mov.s $f20, $f0 +/* 0CBAC0 7F096F90 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0CBAC4 7F096F94 46000586 */ mov.s $f22, $f0 +/* 0CBAC8 7F096F98 46160280 */ add.s $f10, $f0, $f22 +/* 0CBACC 7F096F9C 461AA382 */ mul.s $f14, $f20, $f26 +/* 0CBAD0 7F096FA0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CBAD4 7F096FA4 44812000 */ mtc1 $at, $f4 +/* 0CBAD8 7F096FA8 461A5182 */ mul.s $f6, $f10, $f26 +/* 0CBADC 7F096FAC C60C0028 */ lwc1 $f12, 0x28($s0) +/* 0CBAE0 7F096FB0 46043201 */ sub.s $f8, $f6, $f4 +/* 0CBAE4 7F096FB4 44064000 */ mfc1 $a2, $f8 +/* 0CBAE8 7F096FB8 0FC24F12 */ jal sub_GAME_7F093C48 +/* 0CBAEC 7F096FBC 00000000 */ nop +/* 0CBAF0 7F096FC0 0FC1E135 */ jal getPlayer_c_screentop +/* 0CBAF4 7F096FC4 E6000028 */ swc1 $f0, 0x28($s0) +/* 0CBAF8 7F096FC8 0FC1E135 */ jal getPlayer_c_screentop +/* 0CBAFC 7F096FCC 46000506 */ mov.s $f20, $f0 +/* 0CBB00 7F096FD0 0FC1E12D */ jal getPlayer_c_screenheight +/* 0CBB04 7F096FD4 46000586 */ mov.s $f22, $f0 +/* 0CBB08 7F096FD8 46160280 */ add.s $f10, $f0, $f22 +/* 0CBB0C 7F096FDC 461AA382 */ mul.s $f14, $f20, $f26 +/* 0CBB10 7F096FE0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CBB14 7F096FE4 44812000 */ mtc1 $at, $f4 +/* 0CBB18 7F096FE8 461A5182 */ mul.s $f6, $f10, $f26 +/* 0CBB1C 7F096FEC C60C002C */ lwc1 $f12, 0x2c($s0) +/* 0CBB20 7F096FF0 46043201 */ sub.s $f8, $f6, $f4 +/* 0CBB24 7F096FF4 44064000 */ mfc1 $a2, $f8 +/* 0CBB28 7F096FF8 0FC24F12 */ jal sub_GAME_7F093C48 +/* 0CBB2C 7F096FFC 00000000 */ nop +/* 0CBB30 7F097000 8FA20088 */ lw $v0, 0x88($sp) +/* 0CBB34 7F097004 E600002C */ swc1 $f0, 0x2c($s0) +/* 0CBB38 7F097008 8FAB0058 */ lw $t3, 0x58($sp) +/* 0CBB3C 7F09700C 24420001 */ addiu $v0, $v0, 1 +/* 0CBB40 7F097010 AFA20088 */ sw $v0, 0x88($sp) +/* 0CBB44 7F097014 256E0018 */ addiu $t6, $t3, 0x18 +/* 0CBB48 7F097018 AFAE0058 */ sw $t6, 0x58($sp) +/* 0CBB4C 7F09701C 1451FFCF */ bne $v0, $s1, .L7F096F5C +/* 0CBB50 7F097020 26100038 */ addiu $s0, $s0, 0x38 +.L7F097024: +/* 0CBB54 7F097024 24010004 */ li $at, 4 +/* 0CBB58 7F097028 16210099 */ bne $s1, $at, .L7F097290 +/* 0CBB5C 7F09702C 8FAA005C */ lw $t2, 0x5c($sp) +/* 0CBB60 7F097030 2401000C */ li $at, 12 +/* 0CBB64 7F097034 1541007E */ bne $t2, $at, .L7F097230 +/* 0CBB68 7F097038 27B0008C */ addiu $s0, $sp, 0x8c +/* 0CBB6C 7F09703C C7AA0548 */ lwc1 $f10, 0x548($sp) +/* 0CBB70 7F097040 C7A6054C */ lwc1 $f6, 0x54c($sp) +/* 0CBB74 7F097044 C7A800F0 */ lwc1 $f8, 0xf0($sp) +/* 0CBB78 7F097048 4606503C */ c.lt.s $f10, $f6 +/* 0CBB7C 7F09704C C7AA00B8 */ lwc1 $f10, 0xb8($sp) +/* 0CBB80 7F097050 4502003D */ bc1fl .L7F097148 +/* 0CBB84 7F097054 461A5180 */ add.s $f6, $f10, $f26 +/* 0CBB88 7F097058 461A4280 */ add.s $f10, $f8, $f26 +/* 0CBB8C 7F09705C C7A40160 */ lwc1 $f4, 0x160($sp) +/* 0CBB90 7F097060 27A5008C */ addiu $a1, $sp, 0x8c +/* 0CBB94 7F097064 8FA406B0 */ lw $a0, 0x6b0($sp) +/* 0CBB98 7F097068 4604503E */ c.le.s $f10, $f4 +/* 0CBB9C 7F09706C 27A600C4 */ addiu $a2, $sp, 0xc4 +/* 0CBBA0 7F097070 27A700FC */ addiu $a3, $sp, 0xfc +/* 0CBBA4 7F097074 3C014302 */ li $at, 0x43020000 # 130.000000 +/* 0CBBA8 7F097078 4500002C */ bc1f .L7F09712C +/* 0CBBAC 7F09707C 24180001 */ li $t8, 1 +/* 0CBBB0 7F097080 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CBBB4 7F097084 00000000 */ nop +/* 0CBBB8 7F097088 461A0182 */ mul.s $f6, $f0, $f26 +/* 0CBBBC 7F09708C 0FC1E135 */ jal getPlayer_c_screentop +/* 0CBBC0 7F097090 E7A600B4 */ swc1 $f6, 0xb4($sp) +/* 0CBBC4 7F097094 461A0202 */ mul.s $f8, $f0, $f26 +/* 0CBBC8 7F097098 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CBBCC 7F09709C E7A800B8 */ swc1 $f8, 0xb8($sp) +/* 0CBBD0 7F0970A0 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0CBBD4 7F0970A4 46000506 */ mov.s $f20, $f0 +/* 0CBBD8 7F0970A8 46140100 */ add.s $f4, $f0, $f20 +/* 0CBBDC 7F0970AC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CBBE0 7F0970B0 44813000 */ mtc1 $at, $f6 +/* 0CBBE4 7F0970B4 461A2282 */ mul.s $f10, $f4, $f26 +/* 0CBBE8 7F0970B8 46065201 */ sub.s $f8, $f10, $f6 +/* 0CBBEC 7F0970BC 0FC1E135 */ jal getPlayer_c_screentop +/* 0CBBF0 7F0970C0 E7A800EC */ swc1 $f8, 0xec($sp) +/* 0CBBF4 7F0970C4 461A0102 */ mul.s $f4, $f0, $f26 +/* 0CBBF8 7F0970C8 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CBBFC 7F0970CC E7A400F0 */ swc1 $f4, 0xf0($sp) +/* 0CBC00 7F0970D0 461A0282 */ mul.s $f10, $f0, $f26 +/* 0CBC04 7F0970D4 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CBC08 7F0970D8 E7AA0124 */ swc1 $f10, 0x124($sp) +/* 0CBC0C 7F0970DC 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0CBC10 7F0970E0 46000506 */ mov.s $f20, $f0 +/* 0CBC14 7F0970E4 46140180 */ add.s $f6, $f0, $f20 +/* 0CBC18 7F0970E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CBC1C 7F0970EC 44812000 */ mtc1 $at, $f4 +/* 0CBC20 7F0970F0 3C014302 */ li $at, 0x43020000 # 130.000000 +/* 0CBC24 7F0970F4 461A3202 */ mul.s $f8, $f6, $f26 +/* 0CBC28 7F0970F8 44813000 */ mtc1 $at, $f6 +/* 0CBC2C 7F0970FC 27B10134 */ addiu $s1, $sp, 0x134 +/* 0CBC30 7F097100 27A5008C */ addiu $a1, $sp, 0x8c +/* 0CBC34 7F097104 AFB10010 */ sw $s1, 0x10($sp) +/* 0CBC38 7F097108 8FA406B0 */ lw $a0, 0x6b0($sp) +/* 0CBC3C 7F09710C 27A600C4 */ addiu $a2, $sp, 0xc4 +/* 0CBC40 7F097110 46044281 */ sub.s $f10, $f8, $f4 +/* 0CBC44 7F097114 27A700FC */ addiu $a3, $sp, 0xfc +/* 0CBC48 7F097118 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0CBC4C 7F09711C 0FC2628B */ jal sub_GAME_7F098A2C +/* 0CBC50 7F097120 E7AA015C */ swc1 $f10, 0x15c($sp) +/* 0CBC54 7F097124 1000008D */ b .L7F09735C +/* 0CBC58 7F097128 AFA206B0 */ sw $v0, 0x6b0($sp) +.L7F09712C: +/* 0CBC5C 7F09712C 44814000 */ mtc1 $at, $f8 +/* 0CBC60 7F097130 AFB80014 */ sw $t8, 0x14($sp) +/* 0CBC64 7F097134 0FC25E06 */ jal sub_GAME_7F097818 +/* 0CBC68 7F097138 E7A80010 */ swc1 $f8, 0x10($sp) +/* 0CBC6C 7F09713C 10000087 */ b .L7F09735C +/* 0CBC70 7F097140 AFA206B0 */ sw $v0, 0x6b0($sp) +/* 0CBC74 7F097144 461A5180 */ add.s $f6, $f10, $f26 +.L7F097148: +/* 0CBC78 7F097148 C7A40128 */ lwc1 $f4, 0x128($sp) +/* 0CBC7C 7F09714C 27A6008C */ addiu $a2, $sp, 0x8c +/* 0CBC80 7F097150 27A70134 */ addiu $a3, $sp, 0x134 +/* 0CBC84 7F097154 4604303E */ c.le.s $f6, $f4 +/* 0CBC88 7F097158 8FA406B0 */ lw $a0, 0x6b0($sp) +/* 0CBC8C 7F09715C 27A500C4 */ addiu $a1, $sp, 0xc4 +/* 0CBC90 7F097160 3C014302 */ li $at, 0x43020000 # 130.000000 +/* 0CBC94 7F097164 4500002C */ bc1f .L7F097218 +/* 0CBC98 7F097168 240C0001 */ li $t4, 1 +/* 0CBC9C 7F09716C 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CBCA0 7F097170 00000000 */ nop +/* 0CBCA4 7F097174 461A0202 */ mul.s $f8, $f0, $f26 +/* 0CBCA8 7F097178 0FC1E135 */ jal getPlayer_c_screentop +/* 0CBCAC 7F09717C E7A800B4 */ swc1 $f8, 0xb4($sp) +/* 0CBCB0 7F097180 461A0282 */ mul.s $f10, $f0, $f26 +/* 0CBCB4 7F097184 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CBCB8 7F097188 E7AA00B8 */ swc1 $f10, 0xb8($sp) +/* 0CBCBC 7F09718C 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0CBCC0 7F097190 46000506 */ mov.s $f20, $f0 +/* 0CBCC4 7F097194 46140100 */ add.s $f4, $f0, $f20 +/* 0CBCC8 7F097198 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CBCCC 7F09719C 44814000 */ mtc1 $at, $f8 +/* 0CBCD0 7F0971A0 461A2182 */ mul.s $f6, $f4, $f26 +/* 0CBCD4 7F0971A4 46083281 */ sub.s $f10, $f6, $f8 +/* 0CBCD8 7F0971A8 0FC1E135 */ jal getPlayer_c_screentop +/* 0CBCDC 7F0971AC E7AA00EC */ swc1 $f10, 0xec($sp) +/* 0CBCE0 7F0971B0 461A0102 */ mul.s $f4, $f0, $f26 +/* 0CBCE4 7F0971B4 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CBCE8 7F0971B8 E7A400F0 */ swc1 $f4, 0xf0($sp) +/* 0CBCEC 7F0971BC 461A0182 */ mul.s $f6, $f0, $f26 +/* 0CBCF0 7F0971C0 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CBCF4 7F0971C4 E7A60124 */ swc1 $f6, 0x124($sp) +/* 0CBCF8 7F0971C8 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0CBCFC 7F0971CC 46000506 */ mov.s $f20, $f0 +/* 0CBD00 7F0971D0 46140200 */ add.s $f8, $f0, $f20 +/* 0CBD04 7F0971D4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CBD08 7F0971D8 44812000 */ mtc1 $at, $f4 +/* 0CBD0C 7F0971DC 3C014302 */ li $at, 0x43020000 # 130.000000 +/* 0CBD10 7F0971E0 461A4282 */ mul.s $f10, $f8, $f26 +/* 0CBD14 7F0971E4 44814000 */ mtc1 $at, $f8 +/* 0CBD18 7F0971E8 27AF00FC */ addiu $t7, $sp, 0xfc +/* 0CBD1C 7F0971EC 27A6008C */ addiu $a2, $sp, 0x8c +/* 0CBD20 7F0971F0 27A70134 */ addiu $a3, $sp, 0x134 +/* 0CBD24 7F0971F4 AFAF0010 */ sw $t7, 0x10($sp) +/* 0CBD28 7F0971F8 8FA406B0 */ lw $a0, 0x6b0($sp) +/* 0CBD2C 7F0971FC 46045181 */ sub.s $f6, $f10, $f4 +/* 0CBD30 7F097200 27A500C4 */ addiu $a1, $sp, 0xc4 +/* 0CBD34 7F097204 E7A80014 */ swc1 $f8, 0x14($sp) +/* 0CBD38 7F097208 0FC2628B */ jal sub_GAME_7F098A2C +/* 0CBD3C 7F09720C E7A6015C */ swc1 $f6, 0x15c($sp) +/* 0CBD40 7F097210 10000052 */ b .L7F09735C +/* 0CBD44 7F097214 AFA206B0 */ sw $v0, 0x6b0($sp) +.L7F097218: +/* 0CBD48 7F097218 44815000 */ mtc1 $at, $f10 +/* 0CBD4C 7F09721C AFAC0014 */ sw $t4, 0x14($sp) +/* 0CBD50 7F097220 0FC25E06 */ jal sub_GAME_7F097818 +/* 0CBD54 7F097224 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0CBD58 7F097228 1000004C */ b .L7F09735C +/* 0CBD5C 7F09722C AFA206B0 */ sw $v0, 0x6b0($sp) +.L7F097230: +/* 0CBD60 7F097230 3C014302 */ li $at, 0x43020000 # 130.000000 +/* 0CBD64 7F097234 44812000 */ mtc1 $at, $f4 +/* 0CBD68 7F097238 27B10134 */ addiu $s1, $sp, 0x134 +/* 0CBD6C 7F09723C 24190001 */ li $t9, 1 +/* 0CBD70 7F097240 AFB90014 */ sw $t9, 0x14($sp) +/* 0CBD74 7F097244 02203825 */ move $a3, $s1 +/* 0CBD78 7F097248 8FA406B0 */ lw $a0, 0x6b0($sp) +/* 0CBD7C 7F09724C 02002825 */ move $a1, $s0 +/* 0CBD80 7F097250 27A600C4 */ addiu $a2, $sp, 0xc4 +/* 0CBD84 7F097254 0FC25E06 */ jal sub_GAME_7F097818 +/* 0CBD88 7F097258 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0CBD8C 7F09725C 3C014302 */ li $at, 0x43020000 # 130.000000 +/* 0CBD90 7F097260 44813000 */ mtc1 $at, $f6 +/* 0CBD94 7F097264 240D0001 */ li $t5, 1 +/* 0CBD98 7F097268 AFA206B0 */ sw $v0, 0x6b0($sp) +/* 0CBD9C 7F09726C AFAD0014 */ sw $t5, 0x14($sp) +/* 0CBDA0 7F097270 00402025 */ move $a0, $v0 +/* 0CBDA4 7F097274 02202825 */ move $a1, $s1 +/* 0CBDA8 7F097278 27A600FC */ addiu $a2, $sp, 0xfc +/* 0CBDAC 7F09727C 02003825 */ move $a3, $s0 +/* 0CBDB0 7F097280 0FC25E06 */ jal sub_GAME_7F097818 +/* 0CBDB4 7F097284 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0CBDB8 7F097288 10000034 */ b .L7F09735C +/* 0CBDBC 7F09728C AFA206B0 */ sw $v0, 0x6b0($sp) +.L7F097290: +/* 0CBDC0 7F097290 24010005 */ li $at, 5 +/* 0CBDC4 7F097294 16210024 */ bne $s1, $at, .L7F097328 +/* 0CBDC8 7F097298 27B0008C */ addiu $s0, $sp, 0x8c +/* 0CBDCC 7F09729C 3C014302 */ li $at, 0x43020000 # 130.000000 +/* 0CBDD0 7F0972A0 44814000 */ mtc1 $at, $f8 +/* 0CBDD4 7F0972A4 240B0001 */ li $t3, 1 +/* 0CBDD8 7F0972A8 AFAB0014 */ sw $t3, 0x14($sp) +/* 0CBDDC 7F0972AC 8FA406B0 */ lw $a0, 0x6b0($sp) +/* 0CBDE0 7F0972B0 02002825 */ move $a1, $s0 +/* 0CBDE4 7F0972B4 27A600C4 */ addiu $a2, $sp, 0xc4 +/* 0CBDE8 7F0972B8 27A700FC */ addiu $a3, $sp, 0xfc +/* 0CBDEC 7F0972BC 0FC25E06 */ jal sub_GAME_7F097818 +/* 0CBDF0 7F0972C0 E7A80010 */ swc1 $f8, 0x10($sp) +/* 0CBDF4 7F0972C4 3C014302 */ li $at, 0x43020000 # 130.000000 +/* 0CBDF8 7F0972C8 44815000 */ mtc1 $at, $f10 +/* 0CBDFC 7F0972CC 27B10134 */ addiu $s1, $sp, 0x134 +/* 0CBE00 7F0972D0 240E0001 */ li $t6, 1 +/* 0CBE04 7F0972D4 AFA206B0 */ sw $v0, 0x6b0($sp) +/* 0CBE08 7F0972D8 AFAE0014 */ sw $t6, 0x14($sp) +/* 0CBE0C 7F0972DC 02203825 */ move $a3, $s1 +/* 0CBE10 7F0972E0 00402025 */ move $a0, $v0 +/* 0CBE14 7F0972E4 02002825 */ move $a1, $s0 +/* 0CBE18 7F0972E8 27A600FC */ addiu $a2, $sp, 0xfc +/* 0CBE1C 7F0972EC 0FC25E06 */ jal sub_GAME_7F097818 +/* 0CBE20 7F0972F0 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0CBE24 7F0972F4 3C014302 */ li $at, 0x43020000 # 130.000000 +/* 0CBE28 7F0972F8 44812000 */ mtc1 $at, $f4 +/* 0CBE2C 7F0972FC 240A0001 */ li $t2, 1 +/* 0CBE30 7F097300 AFA206B0 */ sw $v0, 0x6b0($sp) +/* 0CBE34 7F097304 AFAA0014 */ sw $t2, 0x14($sp) +/* 0CBE38 7F097308 00402025 */ move $a0, $v0 +/* 0CBE3C 7F09730C 02002825 */ move $a1, $s0 +/* 0CBE40 7F097310 02203025 */ move $a2, $s1 +/* 0CBE44 7F097314 27A7016C */ addiu $a3, $sp, 0x16c +/* 0CBE48 7F097318 0FC25E06 */ jal sub_GAME_7F097818 +/* 0CBE4C 7F09731C E7A40010 */ swc1 $f4, 0x10($sp) +/* 0CBE50 7F097320 1000000E */ b .L7F09735C +/* 0CBE54 7F097324 AFA206B0 */ sw $v0, 0x6b0($sp) +.L7F097328: +/* 0CBE58 7F097328 24010003 */ li $at, 3 +/* 0CBE5C 7F09732C 1621000B */ bne $s1, $at, .L7F09735C +/* 0CBE60 7F097330 27A5008C */ addiu $a1, $sp, 0x8c +/* 0CBE64 7F097334 3C014302 */ li $at, 0x43020000 # 130.000000 +/* 0CBE68 7F097338 44813000 */ mtc1 $at, $f6 +/* 0CBE6C 7F09733C 24180001 */ li $t8, 1 +/* 0CBE70 7F097340 AFB80014 */ sw $t8, 0x14($sp) +/* 0CBE74 7F097344 8FA406B0 */ lw $a0, 0x6b0($sp) +/* 0CBE78 7F097348 27A600C4 */ addiu $a2, $sp, 0xc4 +/* 0CBE7C 7F09734C 27A700FC */ addiu $a3, $sp, 0xfc +/* 0CBE80 7F097350 0FC25E06 */ jal sub_GAME_7F097818 +/* 0CBE84 7F097354 E7A60010 */ swc1 $f6, 0x10($sp) +/* 0CBE88 7F097358 AFA206B0 */ sw $v0, 0x6b0($sp) +.L7F09735C: +/* 0CBE8C 7F09735C 8FA206B0 */ lw $v0, 0x6b0($sp) +.L7F097360: +/* 0CBE90 7F097360 8FBF004C */ lw $ra, 0x4c($sp) +/* 0CBE94 7F097364 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0CBE98 7F097368 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0CBE9C 7F09736C D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0CBEA0 7F097370 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0CBEA4 7F097374 D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 0CBEA8 7F097378 8FB00044 */ lw $s0, 0x44($sp) +/* 0CBEAC 7F09737C 8FB10048 */ lw $s1, 0x48($sp) +/* 0CBEB0 7F097380 03E00008 */ jr $ra +/* 0CBEB4 7F097384 27BD06B0 */ addiu $sp, $sp, 0x6b0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F097388(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F097388 +/* 0CBEB8 7F097388 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 0CBEBC 7F09738C 30CEFFFF */ andi $t6, $a2, 0xffff +/* 0CBEC0 7F097390 448E2000 */ mtc1 $t6, $f4 +/* 0CBEC4 7F097394 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0CBEC8 7F097398 44816000 */ mtc1 $at, $f12 +/* 0CBECC 7F09739C AFB00020 */ sw $s0, 0x20($sp) +/* 0CBED0 7F0973A0 44877000 */ mtc1 $a3, $f14 +/* 0CBED4 7F0973A4 00808025 */ move $s0, $a0 +/* 0CBED8 7F0973A8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0CBEDC 7F0973AC F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0CBEE0 7F0973B0 AFA60080 */ sw $a2, 0x80($sp) +/* 0CBEE4 7F0973B4 05C10005 */ bgez $t6, .L7F0973CC +/* 0CBEE8 7F0973B8 468021A0 */ cvt.s.w $f6, $f4 +/* 0CBEEC 7F0973BC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0CBEF0 7F0973C0 44814000 */ mtc1 $at, $f8 +/* 0CBEF4 7F0973C4 00000000 */ nop +/* 0CBEF8 7F0973C8 46083180 */ add.s $f6, $f6, $f8 +.L7F0973CC: +/* 0CBEFC 7F0973CC C60A0000 */ lwc1 $f10, ($s0) +/* 0CBF00 7F0973D0 C4B20000 */ lwc1 $f18, ($a1) +/* 0CBF04 7F0973D4 460C3003 */ div.s $f0, $f6, $f12 +/* 0CBF08 7F0973D8 C4A60010 */ lwc1 $f6, 0x10($a1) +/* 0CBF0C 7F0973DC C6080004 */ lwc1 $f8, 4($s0) +/* 0CBF10 7F0973E0 44808000 */ mtc1 $zero, $f16 +/* 0CBF14 7F0973E4 46125102 */ mul.s $f4, $f10, $f18 +/* 0CBF18 7F0973E8 00000000 */ nop +/* 0CBF1C 7F0973EC 46064282 */ mul.s $f10, $f8, $f6 +/* 0CBF20 7F0973F0 C4A60020 */ lwc1 $f6, 0x20($a1) +/* 0CBF24 7F0973F4 C6080008 */ lwc1 $f8, 8($s0) +/* 0CBF28 7F0973F8 460A2480 */ add.s $f18, $f4, $f10 +/* 0CBF2C 7F0973FC 46064102 */ mul.s $f4, $f8, $f6 +/* 0CBF30 7F097400 C4A80030 */ lwc1 $f8, 0x30($a1) +/* 0CBF34 7F097404 46000086 */ mov.s $f2, $f0 +/* 0CBF38 7F097408 46049280 */ add.s $f10, $f18, $f4 +/* 0CBF3C 7F09740C 460A4180 */ add.s $f6, $f8, $f10 +/* 0CBF40 7F097410 E7A60068 */ swc1 $f6, 0x68($sp) +/* 0CBF44 7F097414 C6120000 */ lwc1 $f18, ($s0) +/* 0CBF48 7F097418 C4A40004 */ lwc1 $f4, 4($a1) +/* 0CBF4C 7F09741C C60A0004 */ lwc1 $f10, 4($s0) +/* 0CBF50 7F097420 C4A60014 */ lwc1 $f6, 0x14($a1) +/* 0CBF54 7F097424 46049202 */ mul.s $f8, $f18, $f4 +/* 0CBF58 7F097428 00000000 */ nop +/* 0CBF5C 7F09742C 46065482 */ mul.s $f18, $f10, $f6 +/* 0CBF60 7F097430 C4A60024 */ lwc1 $f6, 0x24($a1) +/* 0CBF64 7F097434 C60A0008 */ lwc1 $f10, 8($s0) +/* 0CBF68 7F097438 46124100 */ add.s $f4, $f8, $f18 +/* 0CBF6C 7F09743C 46065202 */ mul.s $f8, $f10, $f6 +/* 0CBF70 7F097440 C4AA0034 */ lwc1 $f10, 0x34($a1) +/* 0CBF74 7F097444 46082480 */ add.s $f18, $f4, $f8 +/* 0CBF78 7F097448 46125180 */ add.s $f6, $f10, $f18 +/* 0CBF7C 7F09744C E7A6006C */ swc1 $f6, 0x6c($sp) +/* 0CBF80 7F097450 C6040000 */ lwc1 $f4, ($s0) +/* 0CBF84 7F097454 C4A80008 */ lwc1 $f8, 8($a1) +/* 0CBF88 7F097458 C6120004 */ lwc1 $f18, 4($s0) +/* 0CBF8C 7F09745C C4A60018 */ lwc1 $f6, 0x18($a1) +/* 0CBF90 7F097460 46082282 */ mul.s $f10, $f4, $f8 +/* 0CBF94 7F097464 00000000 */ nop +/* 0CBF98 7F097468 46069102 */ mul.s $f4, $f18, $f6 +/* 0CBF9C 7F09746C C4A60028 */ lwc1 $f6, 0x28($a1) +/* 0CBFA0 7F097470 C6120008 */ lwc1 $f18, 8($s0) +/* 0CBFA4 7F097474 46045200 */ add.s $f8, $f10, $f4 +/* 0CBFA8 7F097478 46069282 */ mul.s $f10, $f18, $f6 +/* 0CBFAC 7F09747C C4B20038 */ lwc1 $f18, 0x38($a1) +/* 0CBFB0 7F097480 460A4100 */ add.s $f4, $f8, $f10 +/* 0CBFB4 7F097484 46049180 */ add.s $f6, $f18, $f4 +/* 0CBFB8 7F097488 E7A60070 */ swc1 $f6, 0x70($sp) +/* 0CBFBC 7F09748C C4AA000C */ lwc1 $f10, 0xc($a1) +/* 0CBFC0 7F097490 C6080000 */ lwc1 $f8, ($s0) +/* 0CBFC4 7F097494 C4A6001C */ lwc1 $f6, 0x1c($a1) +/* 0CBFC8 7F097498 C6040004 */ lwc1 $f4, 4($s0) +/* 0CBFCC 7F09749C 460A4482 */ mul.s $f18, $f8, $f10 +/* 0CBFD0 7F0974A0 00000000 */ nop +/* 0CBFD4 7F0974A4 46062202 */ mul.s $f8, $f4, $f6 +/* 0CBFD8 7F0974A8 C4A6002C */ lwc1 $f6, 0x2c($a1) +/* 0CBFDC 7F0974AC C6040008 */ lwc1 $f4, 8($s0) +/* 0CBFE0 7F0974B0 46089280 */ add.s $f10, $f18, $f8 +/* 0CBFE4 7F0974B4 46062482 */ mul.s $f18, $f4, $f6 +/* 0CBFE8 7F0974B8 C4A4003C */ lwc1 $f4, 0x3c($a1) +/* 0CBFEC 7F0974BC 46125200 */ add.s $f8, $f10, $f18 +/* 0CBFF0 7F0974C0 460C7483 */ div.s $f18, $f14, $f12 +/* 0CBFF4 7F0974C4 46082180 */ add.s $f6, $f4, $f8 +/* 0CBFF8 7F0974C8 E7A60074 */ swc1 $f6, 0x74($sp) +/* 0CBFFC 7F0974CC C60A000C */ lwc1 $f10, 0xc($s0) +/* 0CC000 7F0974D0 C7A60088 */ lwc1 $f6, 0x88($sp) +/* 0CC004 7F0974D4 46125102 */ mul.s $f4, $f10, $f18 +/* 0CC008 7F0974D8 460C3283 */ div.s $f10, $f6, $f12 +/* 0CC00C 7F0974DC E7A40060 */ swc1 $f4, 0x60($sp) +/* 0CC010 7F0974E0 C6080010 */ lwc1 $f8, 0x10($s0) +/* 0CC014 7F0974E4 C7A40074 */ lwc1 $f4, 0x74($sp) +/* 0CC018 7F0974E8 46048032 */ c.eq.s $f16, $f4 +/* 0CC01C 7F0974EC 460A4482 */ mul.s $f18, $f8, $f10 +/* 0CC020 7F0974F0 E7B20064 */ swc1 $f18, 0x64($sp) +/* 0CC024 7F0974F4 45000004 */ bc1f .L7F097508 +/* 0CC028 7F0974F8 C7B20068 */ lwc1 $f18, 0x68($sp) +/* 0CC02C 7F0974FC 3C018005 */ lui $at, %hi(D_800575D4) +/* 0CC030 7F097500 10000006 */ b .L7F09751C +/* 0CC034 7F097504 C43475D4 */ lwc1 $f20, %lo(D_800575D4)($at) +.L7F097508: +/* 0CC038 7F097508 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 0CC03C 7F09750C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CC040 7F097510 44813000 */ mtc1 $at, $f6 +/* 0CC044 7F097514 46004282 */ mul.s $f10, $f8, $f0 +/* 0CC048 7F097518 460A3503 */ div.s $f20, $f6, $f10 +.L7F09751C: +/* 0CC04C 7F09751C 4610A03C */ c.lt.s $f20, $f16 +/* 0CC050 7F097520 4600A006 */ mov.s $f0, $f20 +/* 0CC054 7F097524 45000002 */ bc1f .L7F097530 +/* 0CC058 7F097528 3C018005 */ lui $at, %hi(D_800575D8) +/* 0CC05C 7F09752C C42075D8 */ lwc1 $f0, %lo(D_800575D8)($at) +.L7F097530: +/* 0CC060 7F097530 46009102 */ mul.s $f4, $f18, $f0 +/* 0CC064 7F097534 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 0CC068 7F097538 46022202 */ mul.s $f8, $f4, $f2 +/* 0CC06C 7F09753C C7A40070 */ lwc1 $f4, 0x70($sp) +/* 0CC070 7F097540 46003282 */ mul.s $f10, $f6, $f0 +/* 0CC074 7F097544 E7A80048 */ swc1 $f8, 0x48($sp) +/* 0CC078 7F097548 46025482 */ mul.s $f18, $f10, $f2 +/* 0CC07C 7F09754C C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 0CC080 7F097550 46002202 */ mul.s $f8, $f4, $f0 +/* 0CC084 7F097554 E7B2004C */ swc1 $f18, 0x4c($sp) +/* 0CC088 7F097558 46024182 */ mul.s $f6, $f8, $f2 +/* 0CC08C 7F09755C 00000000 */ nop +/* 0CC090 7F097560 46005482 */ mul.s $f18, $f10, $f0 +/* 0CC094 7F097564 E7A60050 */ swc1 $f6, 0x50($sp) +/* 0CC098 7F097568 46029102 */ mul.s $f4, $f18, $f2 +/* 0CC09C 7F09756C 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0CC0A0 7F097570 E7A40054 */ swc1 $f4, 0x54($sp) +/* 0CC0A4 7F097574 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0CC0A8 7F097578 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 0CC0AC 7F09757C 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CC0B0 7F097580 E7A00030 */ swc1 $f0, 0x30($sp) +/* 0CC0B4 7F097584 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0CC0B8 7F097588 44811000 */ mtc1 $at, $f2 +/* 0CC0BC 7F09758C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0CC0C0 7F097590 44814000 */ mtc1 $at, $f8 +/* 0CC0C4 7F097594 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 0CC0C8 7F097598 46080182 */ mul.s $f6, $f0, $f8 +/* 0CC0CC 7F09759C C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0CC0D0 7F0975A0 46025482 */ mul.s $f18, $f10, $f2 +/* 0CC0D4 7F0975A4 C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 0CC0D8 7F0975A8 46123100 */ add.s $f4, $f6, $f18 +/* 0CC0DC 7F0975AC 46025182 */ mul.s $f6, $f10, $f2 +/* 0CC0E0 7F0975B0 00000000 */ nop +/* 0CC0E4 7F0975B4 46064482 */ mul.s $f18, $f8, $f6 +/* 0CC0E8 7F0975B8 46122280 */ add.s $f10, $f4, $f18 +/* 0CC0EC 7F0975BC 0FC1E12D */ jal getPlayer_c_screenheight +/* 0CC0F0 7F0975C0 E7AA0038 */ swc1 $f10, 0x38($sp) +/* 0CC0F4 7F0975C4 0FC1E12D */ jal getPlayer_c_screenheight +/* 0CC0F8 7F0975C8 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 0CC0FC 7F0975CC 0FC1E135 */ jal getPlayer_c_screentop +/* 0CC100 7F0975D0 E7A00030 */ swc1 $f0, 0x30($sp) +/* 0CC104 7F0975D4 3C018005 */ lui $at, %hi(D_800575DC) +/* 0CC108 7F0975D8 C42275DC */ lwc1 $f2, %lo(D_800575DC)($at) +/* 0CC10C 7F0975DC 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0CC110 7F0975E0 44818000 */ mtc1 $at, $f16 +/* 0CC114 7F0975E4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0CC118 7F0975E8 44814000 */ mtc1 $at, $f8 +/* 0CC11C 7F0975EC C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0CC120 7F0975F0 3C018005 */ lui $at, %hi(D_800575E0) +/* 0CC124 7F0975F4 46080182 */ mul.s $f6, $f0, $f8 +/* 0CC128 7F0975F8 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 0CC12C 7F0975FC 3C06457F */ lui $a2, (0x457FA000 >> 16) # lui $a2, 0x457f +/* 0CC130 7F097600 46102482 */ mul.s $f18, $f4, $f16 +/* 0CC134 7F097604 46004107 */ neg.s $f4, $f8 +/* 0CC138 7F097608 34C6A000 */ ori $a2, (0x457FA000 & 0xFFFF) # ori $a2, $a2, 0xa000 +/* 0CC13C 7F09760C C42E75E0 */ lwc1 $f14, %lo(D_800575E0)($at) +/* 0CC140 7F097610 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 0CC144 7F097614 46123280 */ add.s $f10, $f6, $f18 +/* 0CC148 7F097618 C7A6002C */ lwc1 $f6, 0x2c($sp) +/* 0CC14C 7F09761C 46103482 */ mul.s $f18, $f6, $f16 +/* 0CC150 7F097620 00000000 */ nop +/* 0CC154 7F097624 46122202 */ mul.s $f8, $f4, $f18 +/* 0CC158 7F097628 C7A40050 */ lwc1 $f4, 0x50($sp) +/* 0CC15C 7F09762C 46022482 */ mul.s $f18, $f4, $f2 +/* 0CC160 7F097630 46085180 */ add.s $f6, $f10, $f8 +/* 0CC164 7F097634 C7A80054 */ lwc1 $f8, 0x54($sp) +/* 0CC168 7F097638 46029280 */ add.s $f10, $f18, $f2 +/* 0CC16C 7F09763C E7A6003C */ swc1 $f6, 0x3c($sp) +/* 0CC170 7F097640 44803000 */ mtc1 $zero, $f6 +/* 0CC174 7F097644 E7AA0040 */ swc1 $f10, 0x40($sp) +/* 0CC178 7F097648 46064102 */ mul.s $f4, $f8, $f6 +/* 0CC17C 7F09764C 0FC24F12 */ jal sub_GAME_7F093C48 +/* 0CC180 7F097650 E7A40044 */ swc1 $f4, 0x44($sp) +/* 0CC184 7F097654 3C018005 */ lui $at, %hi(D_800575E4) +/* 0CC188 7F097658 3C06457F */ lui $a2, (0x457FA000 >> 16) # lui $a2, 0x457f +/* 0CC18C 7F09765C E7A00038 */ swc1 $f0, 0x38($sp) +/* 0CC190 7F097660 34C6A000 */ ori $a2, (0x457FA000 & 0xFFFF) # ori $a2, $a2, 0xa000 +/* 0CC194 7F097664 C42E75E4 */ lwc1 $f14, %lo(D_800575E4)($at) +/* 0CC198 7F097668 0FC24F12 */ jal sub_GAME_7F093C48 +/* 0CC19C 7F09766C C7AC003C */ lwc1 $f12, 0x3c($sp) +/* 0CC1A0 7F097670 44807000 */ mtc1 $zero, $f14 +/* 0CC1A4 7F097674 3C0646FF */ lui $a2, (0x46FFFE00 >> 16) # lui $a2, 0x46ff +/* 0CC1A8 7F097678 E7A0003C */ swc1 $f0, 0x3c($sp) +/* 0CC1AC 7F09767C 34C6FE00 */ ori $a2, (0x46FFFE00 & 0xFFFF) # ori $a2, $a2, 0xfe00 +/* 0CC1B0 7F097680 0FC24F12 */ jal sub_GAME_7F093C48 +/* 0CC1B4 7F097684 C7AC0040 */ lwc1 $f12, 0x40($sp) +/* 0CC1B8 7F097688 44807000 */ mtc1 $zero, $f14 +/* 0CC1BC 7F09768C 3C0646FF */ lui $a2, (0x46FFFE00 >> 16) # lui $a2, 0x46ff +/* 0CC1C0 7F097690 E7A00040 */ swc1 $f0, 0x40($sp) +/* 0CC1C4 7F097694 34C6FE00 */ ori $a2, (0x46FFFE00 & 0xFFFF) # ori $a2, $a2, 0xfe00 +/* 0CC1C8 7F097698 0FC24F12 */ jal sub_GAME_7F093C48 +/* 0CC1CC 7F09769C C7AC0044 */ lwc1 $f12, 0x44($sp) +/* 0CC1D0 7F0976A0 8FA3008C */ lw $v1, 0x8c($sp) +/* 0CC1D4 7F0976A4 C7B20068 */ lwc1 $f18, 0x68($sp) +/* 0CC1D8 7F0976A8 E7A00044 */ swc1 $f0, 0x44($sp) +/* 0CC1DC 7F0976AC E4720000 */ swc1 $f18, ($v1) +/* 0CC1E0 7F0976B0 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 0CC1E4 7F0976B4 E46A0004 */ swc1 $f10, 4($v1) +/* 0CC1E8 7F0976B8 C7A80070 */ lwc1 $f8, 0x70($sp) +/* 0CC1EC 7F0976BC E4680008 */ swc1 $f8, 8($v1) +/* 0CC1F0 7F0976C0 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 0CC1F4 7F0976C4 E466000C */ swc1 $f6, 0xc($v1) +/* 0CC1F8 7F0976C8 C7A40060 */ lwc1 $f4, 0x60($sp) +/* 0CC1FC 7F0976CC E4640020 */ swc1 $f4, 0x20($v1) +/* 0CC200 7F0976D0 C7B20064 */ lwc1 $f18, 0x64($sp) +/* 0CC204 7F0976D4 E4720024 */ swc1 $f18, 0x24($v1) +/* 0CC208 7F0976D8 C7AA0038 */ lwc1 $f10, 0x38($sp) +/* 0CC20C 7F0976DC 0FC2E9CB */ jal get_ptr_currentdata +/* 0CC210 7F0976E0 E46A0028 */ swc1 $f10, 0x28($v1) +/* 0CC214 7F0976E4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0CC218 7F0976E8 44813000 */ mtc1 $at, $f6 +/* 0CC21C 7F0976EC C4480038 */ lwc1 $f8, 0x38($v0) +/* 0CC220 7F0976F0 C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 0CC224 7F0976F4 8FA3008C */ lw $v1, 0x8c($sp) +/* 0CC228 7F0976F8 46064102 */ mul.s $f4, $f8, $f6 +/* 0CC22C 7F0976FC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0CC230 7F097700 46049281 */ sub.s $f10, $f18, $f4 +/* 0CC234 7F097704 E46A002C */ swc1 $f10, 0x2c($v1) +/* 0CC238 7F097708 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 0CC23C 7F09770C E4740034 */ swc1 $f20, 0x34($v1) +/* 0CC240 7F097710 E4680030 */ swc1 $f8, 0x30($v1) +/* 0CC244 7F097714 920F0014 */ lbu $t7, 0x14($s0) +/* 0CC248 7F097718 448F3000 */ mtc1 $t7, $f6 +/* 0CC24C 7F09771C 05E10004 */ bgez $t7, .L7F097730 +/* 0CC250 7F097720 468034A0 */ cvt.s.w $f18, $f6 +/* 0CC254 7F097724 44812000 */ mtc1 $at, $f4 +/* 0CC258 7F097728 00000000 */ nop +/* 0CC25C 7F09772C 46049480 */ add.s $f18, $f18, $f4 +.L7F097730: +/* 0CC260 7F097730 E4720010 */ swc1 $f18, 0x10($v1) +/* 0CC264 7F097734 92180015 */ lbu $t8, 0x15($s0) +/* 0CC268 7F097738 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0CC26C 7F09773C 44985000 */ mtc1 $t8, $f10 +/* 0CC270 7F097740 07010004 */ bgez $t8, .L7F097754 +/* 0CC274 7F097744 46805220 */ cvt.s.w $f8, $f10 +/* 0CC278 7F097748 44813000 */ mtc1 $at, $f6 +/* 0CC27C 7F09774C 00000000 */ nop +/* 0CC280 7F097750 46064200 */ add.s $f8, $f8, $f6 +.L7F097754: +/* 0CC284 7F097754 E4680014 */ swc1 $f8, 0x14($v1) +/* 0CC288 7F097758 92190016 */ lbu $t9, 0x16($s0) +/* 0CC28C 7F09775C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0CC290 7F097760 44992000 */ mtc1 $t9, $f4 +/* 0CC294 7F097764 07210004 */ bgez $t9, .L7F097778 +/* 0CC298 7F097768 468024A0 */ cvt.s.w $f18, $f4 +/* 0CC29C 7F09776C 44815000 */ mtc1 $at, $f10 +/* 0CC2A0 7F097770 00000000 */ nop +/* 0CC2A4 7F097774 460A9480 */ add.s $f18, $f18, $f10 +.L7F097778: +/* 0CC2A8 7F097778 E4720018 */ swc1 $f18, 0x18($v1) +/* 0CC2AC 7F09777C 92080017 */ lbu $t0, 0x17($s0) +/* 0CC2B0 7F097780 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0CC2B4 7F097784 44883000 */ mtc1 $t0, $f6 +/* 0CC2B8 7F097788 05010004 */ bgez $t0, .L7F09779C +/* 0CC2BC 7F09778C 46803220 */ cvt.s.w $f8, $f6 +/* 0CC2C0 7F097790 44812000 */ mtc1 $at, $f4 +/* 0CC2C4 7F097794 00000000 */ nop +/* 0CC2C8 7F097798 46044200 */ add.s $f8, $f8, $f4 +.L7F09779C: +/* 0CC2CC 7F09779C E468001C */ swc1 $f8, 0x1c($v1) +/* 0CC2D0 7F0977A0 8FBF0024 */ lw $ra, 0x24($sp) +/* 0CC2D4 7F0977A4 8FB00020 */ lw $s0, 0x20($sp) +/* 0CC2D8 7F0977A8 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0CC2DC 7F0977AC 03E00008 */ jr $ra +/* 0CC2E0 7F0977B0 27BD0078 */ addiu $sp, $sp, 0x78 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0977B4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0977B4 +/* 0CC2E4 7F0977B4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0CC2E8 7F0977B8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0CC2EC 7F0977BC C4A60028 */ lwc1 $f6, 0x28($a1) +/* 0CC2F0 7F0977C0 C4840028 */ lwc1 $f4, 0x28($a0) +/* 0CC2F4 7F0977C4 C4AA002C */ lwc1 $f10, 0x2c($a1) +/* 0CC2F8 7F0977C8 C488002C */ lwc1 $f8, 0x2c($a0) +/* 0CC2FC 7F0977CC 46062001 */ sub.s $f0, $f4, $f6 +/* 0CC300 7F0977D0 460A4081 */ sub.s $f2, $f8, $f10 +/* 0CC304 7F0977D4 46000402 */ mul.s $f16, $f0, $f0 +/* 0CC308 7F0977D8 00000000 */ nop +/* 0CC30C 7F0977DC 46021482 */ mul.s $f18, $f2, $f2 +/* 0CC310 7F0977E0 0C007DF8 */ jal sqrtf +/* 0CC314 7F0977E4 46128300 */ add.s $f12, $f16, $f18 +/* 0CC318 7F0977E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CC31C 7F0977EC 44812000 */ mtc1 $at, $f4 +/* 0CC320 7F0977F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0CC324 7F0977F4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0CC328 7F0977F8 4604003C */ c.lt.s $f0, $f4 +/* 0CC32C 7F0977FC 00001825 */ move $v1, $zero +/* 0CC330 7F097800 45000003 */ bc1f .L7F097810 +/* 0CC334 7F097804 00000000 */ nop +/* 0CC338 7F097808 10000001 */ b .L7F097810 +/* 0CC33C 7F09780C 24030001 */ li $v1, 1 +.L7F097810: +/* 0CC340 7F097810 03E00008 */ jr $ra +/* 0CC344 7F097814 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F097818(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800575E8 +.word 0xc4eac000 /*-1878.0*/ +glabel D_800575EC +.word 0xc4eac000 /*-1878.0*/ +glabel D_800575F0 +.word 0xc4eac000 /*-1878.0*/ +glabel D_800575F4 +.word 0x46fffe00 /*32767.0*/ +.text +glabel sub_GAME_7F097818 +/* 0CC348 7F097818 27BDFB78 */ addiu $sp, $sp, -0x488 +/* 0CC34C 7F09781C AFB00020 */ sw $s0, 0x20($sp) +/* 0CC350 7F097820 00808025 */ move $s0, $a0 +/* 0CC354 7F097824 AFBF0024 */ sw $ra, 0x24($sp) +/* 0CC358 7F097828 AFA5048C */ sw $a1, 0x48c($sp) +/* 0CC35C 7F09782C 00A02025 */ move $a0, $a1 +/* 0CC360 7F097830 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0CC364 7F097834 00C02825 */ move $a1, $a2 +/* 0CC368 7F097838 AFA60490 */ sw $a2, 0x490($sp) +/* 0CC36C 7F09783C 0FC25DED */ jal sub_GAME_7F0977B4 +/* 0CC370 7F097840 AFA70494 */ sw $a3, 0x494($sp) +/* 0CC374 7F097844 8FA60490 */ lw $a2, 0x490($sp) +/* 0CC378 7F097848 14400013 */ bnez $v0, .L7F097898 +/* 0CC37C 7F09784C 8FA70494 */ lw $a3, 0x494($sp) +/* 0CC380 7F097850 00C02025 */ move $a0, $a2 +/* 0CC384 7F097854 00E02825 */ move $a1, $a3 +/* 0CC388 7F097858 AFA60490 */ sw $a2, 0x490($sp) +/* 0CC38C 7F09785C 0FC25DED */ jal sub_GAME_7F0977B4 +/* 0CC390 7F097860 AFA70494 */ sw $a3, 0x494($sp) +/* 0CC394 7F097864 8FAF048C */ lw $t7, 0x48c($sp) +/* 0CC398 7F097868 8FA60490 */ lw $a2, 0x490($sp) +/* 0CC39C 7F09786C 1440000A */ bnez $v0, .L7F097898 +/* 0CC3A0 7F097870 8FA70494 */ lw $a3, 0x494($sp) +/* 0CC3A4 7F097874 00E02025 */ move $a0, $a3 +/* 0CC3A8 7F097878 01E02825 */ move $a1, $t7 +/* 0CC3AC 7F09787C AFA60490 */ sw $a2, 0x490($sp) +/* 0CC3B0 7F097880 0FC25DED */ jal sub_GAME_7F0977B4 +/* 0CC3B4 7F097884 AFA70494 */ sw $a3, 0x494($sp) +/* 0CC3B8 7F097888 8FA3048C */ lw $v1, 0x48c($sp) +/* 0CC3BC 7F09788C 8FA60490 */ lw $a2, 0x490($sp) +/* 0CC3C0 7F097890 10400003 */ beqz $v0, .L7F0978A0 +/* 0CC3C4 7F097894 8FA70494 */ lw $a3, 0x494($sp) +.L7F097898: +/* 0CC3C8 7F097898 1000045F */ b .L7F098A18 +/* 0CC3CC 7F09789C 02001025 */ move $v0, $s0 +.L7F0978A0: +/* 0CC3D0 7F0978A0 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0CC3D4 7F0978A4 44812000 */ mtc1 $at, $f4 +/* 0CC3D8 7F0978A8 C7A80498 */ lwc1 $f8, 0x498($sp) +/* 0CC3DC 7F0978AC 4480A000 */ mtc1 $zero, $f20 +/* 0CC3E0 7F0978B0 46044183 */ div.s $f6, $f8, $f4 +/* 0CC3E4 7F0978B4 E7A60378 */ swc1 $f6, 0x378($sp) +/* 0CC3E8 7F0978B8 C4C8002C */ lwc1 $f8, 0x2c($a2) +/* 0CC3EC 7F0978BC C4CA0028 */ lwc1 $f10, 0x28($a2) +/* 0CC3F0 7F0978C0 C4600028 */ lwc1 $f0, 0x28($v1) +/* 0CC3F4 7F0978C4 E7A8005C */ swc1 $f8, 0x5c($sp) +/* 0CC3F8 7F0978C8 C4E60028 */ lwc1 $f6, 0x28($a3) +/* 0CC3FC 7F0978CC 46005301 */ sub.s $f12, $f10, $f0 +/* 0CC400 7F0978D0 C46E002C */ lwc1 $f14, 0x2c($v1) +/* 0CC404 7F0978D4 C7A4005C */ lwc1 $f4, 0x5c($sp) +/* 0CC408 7F0978D8 46003281 */ sub.s $f10, $f6, $f0 +/* 0CC40C 7F0978DC 460E2401 */ sub.s $f16, $f4, $f14 +/* 0CC410 7F0978E0 E7AA046C */ swc1 $f10, 0x46c($sp) +/* 0CC414 7F0978E4 C4E8002C */ lwc1 $f8, 0x2c($a3) +/* 0CC418 7F0978E8 C7A6046C */ lwc1 $f6, 0x46c($sp) +/* 0CC41C 7F0978EC E7A80054 */ swc1 $f8, 0x54($sp) +/* 0CC420 7F0978F0 C7A40054 */ lwc1 $f4, 0x54($sp) +/* 0CC424 7F0978F4 46103282 */ mul.s $f10, $f6, $f16 +/* 0CC428 7F0978F8 44813000 */ mtc1 $at, $f6 +/* 0CC42C 7F0978FC 460E2481 */ sub.s $f18, $f4, $f14 +/* 0CC430 7F097900 46126202 */ mul.s $f8, $f12, $f18 +/* 0CC434 7F097904 46085101 */ sub.s $f4, $f10, $f8 +/* 0CC438 7F097908 C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 0CC43C 7F09790C 46062083 */ div.s $f2, $f4, $f6 +/* 0CC440 7F097910 4602A032 */ c.eq.s $f20, $f2 +/* 0CC444 7F097914 E7A20444 */ swc1 $f2, 0x444($sp) +/* 0CC448 7F097918 45020004 */ bc1fl .L7F09792C +/* 0CC44C 7F09791C 460E403C */ c.lt.s $f8, $f14 +/* 0CC450 7F097920 1000043D */ b .L7F098A18 +/* 0CC454 7F097924 02001025 */ move $v0, $s0 +/* 0CC458 7F097928 460E403C */ c.lt.s $f8, $f14 +.L7F09792C: +/* 0CC45C 7F09792C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CC460 7F097930 44815000 */ mtc1 $at, $f10 +/* 0CC464 7F097934 00604825 */ move $t1, $v1 +/* 0CC468 7F097938 00C04025 */ move $t0, $a2 +/* 0CC46C 7F09793C 00E05825 */ move $t3, $a3 +/* 0CC470 7F097940 45000009 */ bc1f .L7F097968 +/* 0CC474 7F097944 46025403 */ div.s $f16, $f10, $f2 +/* 0CC478 7F097948 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0CC47C 7F09794C 44816000 */ mtc1 $at, $f12 +/* 0CC480 7F097950 00604025 */ move $t0, $v1 +/* 0CC484 7F097954 00C04825 */ move $t1, $a2 +/* 0CC488 7F097958 460C1382 */ mul.s $f14, $f2, $f12 +/* 0CC48C 7F09795C E7AE0444 */ swc1 $f14, 0x444($sp) +/* 0CC490 7F097960 460C8402 */ mul.s $f16, $f16, $f12 +/* 0CC494 7F097964 00000000 */ nop +.L7F097968: +/* 0CC498 7F097968 C500002C */ lwc1 $f0, 0x2c($t0) +/* 0CC49C 7F09796C C7A40054 */ lwc1 $f4, 0x54($sp) +/* 0CC4A0 7F097970 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0CC4A4 7F097974 44816000 */ mtc1 $at, $f12 +/* 0CC4A8 7F097978 4600203C */ c.lt.s $f4, $f0 +/* 0CC4AC 7F09797C C7AE0444 */ lwc1 $f14, 0x444($sp) +/* 0CC4B0 7F097980 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CC4B4 7F097984 45020007 */ bc1fl .L7F0979A4 +/* 0CC4B8 7F097988 E7AE0444 */ swc1 $f14, 0x444($sp) +/* 0CC4BC 7F09798C 460C7382 */ mul.s $f14, $f14, $f12 +/* 0CC4C0 7F097990 01005825 */ move $t3, $t0 +/* 0CC4C4 7F097994 00E04025 */ move $t0, $a3 +/* 0CC4C8 7F097998 460C8402 */ mul.s $f16, $f16, $f12 +/* 0CC4CC 7F09799C C4E0002C */ lwc1 $f0, 0x2c($a3) +/* 0CC4D0 7F0979A0 E7AE0444 */ swc1 $f14, 0x444($sp) +.L7F0979A4: +/* 0CC4D4 7F0979A4 E7B00440 */ swc1 $f16, 0x440($sp) +/* 0CC4D8 7F0979A8 C526002C */ lwc1 $f6, 0x2c($t1) +/* 0CC4DC 7F0979AC 4606003C */ c.lt.s $f0, $f6 +/* 0CC4E0 7F0979B0 44810000 */ mtc1 $at, $f0 +/* 0CC4E4 7F0979B4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0CC4E8 7F0979B8 44811000 */ mtc1 $at, $f2 +/* 0CC4EC 7F0979BC 45000008 */ bc1f .L7F0979E0 +/* 0CC4F0 7F0979C0 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CC4F4 7F0979C4 460C7382 */ mul.s $f14, $f14, $f12 +/* 0CC4F8 7F0979C8 01001025 */ move $v0, $t0 +/* 0CC4FC 7F0979CC 01204025 */ move $t0, $t1 +/* 0CC500 7F0979D0 460C8402 */ mul.s $f16, $f16, $f12 +/* 0CC504 7F0979D4 00404825 */ move $t1, $v0 +/* 0CC508 7F0979D8 E7AE0444 */ swc1 $f14, 0x444($sp) +/* 0CC50C 7F0979DC E7B00440 */ swc1 $f16, 0x440($sp) +.L7F0979E0: +/* 0CC510 7F0979E0 C50A0028 */ lwc1 $f10, 0x28($t0) +/* 0CC514 7F0979E4 44814000 */ mtc1 $at, $f8 +/* 0CC518 7F0979E8 E7B40424 */ swc1 $f20, 0x424($sp) +/* 0CC51C 7F0979EC 3C0644EA */ lui $a2, (0x44EAA000 >> 16) # lui $a2, 0x44ea +/* 0CC520 7F0979F0 46085102 */ mul.s $f4, $f10, $f8 +/* 0CC524 7F0979F4 44815000 */ mtc1 $at, $f10 +/* 0CC528 7F0979F8 34C6A000 */ ori $a2, (0x44EAA000 & 0xFFFF) # ori $a2, $a2, 0xa000 +/* 0CC52C 7F0979FC E7A40420 */ swc1 $f4, 0x420($sp) +/* 0CC530 7F097A00 C5260028 */ lwc1 $f6, 0x28($t1) +/* 0CC534 7F097A04 E7B4042C */ swc1 $f20, 0x42c($sp) +/* 0CC538 7F097A08 460A3202 */ mul.s $f8, $f6, $f10 +/* 0CC53C 7F097A0C 44813000 */ mtc1 $at, $f6 +/* 0CC540 7F097A10 3C018005 */ lui $at, %hi(D_800575E8) +/* 0CC544 7F097A14 E7A80428 */ swc1 $f8, 0x428($sp) +/* 0CC548 7F097A18 C5240028 */ lwc1 $f4, 0x28($t1) +/* 0CC54C 7F097A1C E7B40434 */ swc1 $f20, 0x434($sp) +/* 0CC550 7F097A20 E7B4043C */ swc1 $f20, 0x43c($sp) +/* 0CC554 7F097A24 46062282 */ mul.s $f10, $f4, $f6 +/* 0CC558 7F097A28 E7B40438 */ swc1 $f20, 0x438($sp) +/* 0CC55C 7F097A2C E7AA0430 */ swc1 $f10, 0x430($sp) +/* 0CC560 7F097A30 C5680028 */ lwc1 $f8, 0x28($t3) +/* 0CC564 7F097A34 E7A80448 */ swc1 $f8, 0x448($sp) +/* 0CC568 7F097A38 C564002C */ lwc1 $f4, 0x2c($t3) +/* 0CC56C 7F097A3C E7A4044C */ swc1 $f4, 0x44c($sp) +/* 0CC570 7F097A40 C5060028 */ lwc1 $f6, 0x28($t0) +/* 0CC574 7F097A44 E7A60450 */ swc1 $f6, 0x450($sp) +/* 0CC578 7F097A48 C50A002C */ lwc1 $f10, 0x2c($t0) +/* 0CC57C 7F097A4C C7A60450 */ lwc1 $f6, 0x450($sp) +/* 0CC580 7F097A50 E7AA0454 */ swc1 $f10, 0x454($sp) +/* 0CC584 7F097A54 C5280028 */ lwc1 $f8, 0x28($t1) +/* 0CC588 7F097A58 E7A80458 */ swc1 $f8, 0x458($sp) +/* 0CC58C 7F097A5C C7AA0458 */ lwc1 $f10, 0x458($sp) +/* 0CC590 7F097A60 C524002C */ lwc1 $f4, 0x2c($t1) +/* 0CC594 7F097A64 E7A60028 */ swc1 $f6, 0x28($sp) +/* 0CC598 7F097A68 460A3201 */ sub.s $f8, $f6, $f10 +/* 0CC59C 7F097A6C E7A4045C */ swc1 $f4, 0x45c($sp) +/* 0CC5A0 7F097A70 C7A40454 */ lwc1 $f4, 0x454($sp) +/* 0CC5A4 7F097A74 C7A6045C */ lwc1 $f6, 0x45c($sp) +/* 0CC5A8 7F097A78 E7A80474 */ swc1 $f8, 0x474($sp) +/* 0CC5AC 7F097A7C E7A80030 */ swc1 $f8, 0x30($sp) +/* 0CC5B0 7F097A80 E7AA002C */ swc1 $f10, 0x2c($sp) +/* 0CC5B4 7F097A84 C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 0CC5B8 7F097A88 46062401 */ sub.s $f16, $f4, $f6 +/* 0CC5BC 7F097A8C E7A4002C */ swc1 $f4, 0x2c($sp) +/* 0CC5C0 7F097A90 C7A4044C */ lwc1 $f4, 0x44c($sp) +/* 0CC5C4 7F097A94 C7AA0448 */ lwc1 $f10, 0x448($sp) +/* 0CC5C8 7F097A98 E7B403FC */ swc1 $f20, 0x3fc($sp) +/* 0CC5CC 7F097A9C 46062481 */ sub.s $f18, $f4, $f6 +/* 0CC5D0 7F097AA0 C7A60028 */ lwc1 $f6, 0x28($sp) +/* 0CC5D4 7F097AA4 E7B403F8 */ swc1 $f20, 0x3f8($sp) +/* 0CC5D8 7F097AA8 46085201 */ sub.s $f8, $f10, $f8 +/* 0CC5DC 7F097AAC E7B403DC */ swc1 $f20, 0x3dc($sp) +/* 0CC5E0 7F097AB0 E7B403D8 */ swc1 $f20, 0x3d8($sp) +/* 0CC5E4 7F097AB4 46065301 */ sub.s $f12, $f10, $f6 +/* 0CC5E8 7F097AB8 C7AA002C */ lwc1 $f10, 0x2c($sp) +/* 0CC5EC 7F097ABC E7A8046C */ swc1 $f8, 0x46c($sp) +/* 0CC5F0 7F097AC0 E7B403A0 */ swc1 $f20, 0x3a0($sp) +/* 0CC5F4 7F097AC4 46006182 */ mul.s $f6, $f12, $f0 +/* 0CC5F8 7F097AC8 460A2381 */ sub.s $f14, $f4, $f10 +/* 0CC5FC 7F097ACC C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 0CC600 7F097AD0 E7AC0464 */ swc1 $f12, 0x464($sp) +/* 0CC604 7F097AD4 E7B403A8 */ swc1 $f20, 0x3a8($sp) +/* 0CC608 7F097AD8 46007102 */ mul.s $f4, $f14, $f0 +/* 0CC60C 7F097ADC E7AE0460 */ swc1 $f14, 0x460($sp) +/* 0CC610 7F097AE0 E7A603E0 */ swc1 $f6, 0x3e0($sp) +/* 0CC614 7F097AE4 46005182 */ mul.s $f6, $f10, $f0 +/* 0CC618 7F097AE8 E7B403B0 */ swc1 $f20, 0x3b0($sp) +/* 0CC61C 7F097AEC E7B403BC */ swc1 $f20, 0x3bc($sp) +/* 0CC620 7F097AF0 E7B403B8 */ swc1 $f20, 0x3b8($sp) +/* 0CC624 7F097AF4 E7A403E4 */ swc1 $f4, 0x3e4($sp) +/* 0CC628 7F097AF8 46008102 */ mul.s $f4, $f16, $f0 +/* 0CC62C 7F097AFC E7B40380 */ swc1 $f20, 0x380($sp) +/* 0CC630 7F097B00 E7A603E8 */ swc1 $f6, 0x3e8($sp) +/* 0CC634 7F097B04 46004182 */ mul.s $f6, $f8, $f0 +/* 0CC638 7F097B08 E7B40388 */ swc1 $f20, 0x388($sp) +/* 0CC63C 7F097B0C E7B40390 */ swc1 $f20, 0x390($sp) +/* 0CC640 7F097B10 E7B4039C */ swc1 $f20, 0x39c($sp) +/* 0CC644 7F097B14 E7A403EC */ swc1 $f4, 0x3ec($sp) +/* 0CC648 7F097B18 46009102 */ mul.s $f4, $f18, $f0 +/* 0CC64C 7F097B1C C7A00460 */ lwc1 $f0, 0x460($sp) +/* 0CC650 7F097B20 E7A603F0 */ swc1 $f6, 0x3f0($sp) +/* 0CC654 7F097B24 46026182 */ mul.s $f6, $f12, $f2 +/* 0CC658 7F097B28 E7B40398 */ swc1 $f20, 0x398($sp) +/* 0CC65C 7F097B2C AFAB047C */ sw $t3, 0x47c($sp) +/* 0CC660 7F097B30 AFA90484 */ sw $t1, 0x484($sp) +/* 0CC664 7F097B34 E7A403F4 */ swc1 $f4, 0x3f4($sp) +/* 0CC668 7F097B38 46027102 */ mul.s $f4, $f14, $f2 +/* 0CC66C 7F097B3C C42E75E8 */ lwc1 $f14, %lo(D_800575E8)($at) +/* 0CC670 7F097B40 E7A603C0 */ swc1 $f6, 0x3c0($sp) +/* 0CC674 7F097B44 46025182 */ mul.s $f6, $f10, $f2 +/* 0CC678 7F097B48 AFA80480 */ sw $t0, 0x480($sp) +/* 0CC67C 7F097B4C E7A403C4 */ swc1 $f4, 0x3c4($sp) +/* 0CC680 7F097B50 46028102 */ mul.s $f4, $f16, $f2 +/* 0CC684 7F097B54 E7A603C8 */ swc1 $f6, 0x3c8($sp) +/* 0CC688 7F097B58 46024182 */ mul.s $f6, $f8, $f2 +/* 0CC68C 7F097B5C E7A403CC */ swc1 $f4, 0x3cc($sp) +/* 0CC690 7F097B60 46029102 */ mul.s $f4, $f18, $f2 +/* 0CC694 7F097B64 E7A603D0 */ swc1 $f6, 0x3d0($sp) +/* 0CC698 7F097B68 46001183 */ div.s $f6, $f2, $f0 +/* 0CC69C 7F097B6C E7A403D4 */ swc1 $f4, 0x3d4($sp) +/* 0CC6A0 7F097B70 46101103 */ div.s $f4, $f2, $f16 +/* 0CC6A4 7F097B74 E7A603A4 */ swc1 $f6, 0x3a4($sp) +/* 0CC6A8 7F097B78 46121183 */ div.s $f6, $f2, $f18 +/* 0CC6AC 7F097B7C E7A403AC */ swc1 $f4, 0x3ac($sp) +/* 0CC6B0 7F097B80 C7A40464 */ lwc1 $f4, 0x464($sp) +/* 0CC6B4 7F097B84 46002303 */ div.s $f12, $f4, $f0 +/* 0CC6B8 7F097B88 E7A603B4 */ swc1 $f6, 0x3b4($sp) +/* 0CC6BC 7F097B8C 46124103 */ div.s $f4, $f8, $f18 +/* 0CC6C0 7F097B90 E7AC0384 */ swc1 $f12, 0x384($sp) +/* 0CC6C4 7F097B94 46105183 */ div.s $f6, $f10, $f16 +/* 0CC6C8 7F097B98 E7A40394 */ swc1 $f4, 0x394($sp) +/* 0CC6CC 7F097B9C 0FC24F12 */ jal sub_GAME_7F093C48 +/* 0CC6D0 7F097BA0 E7A6038C */ swc1 $f6, 0x38c($sp) +/* 0CC6D4 7F097BA4 3C018005 */ lui $at, %hi(D_800575EC) +/* 0CC6D8 7F097BA8 3C0644EA */ lui $a2, (0x44EAA000 >> 16) # lui $a2, 0x44ea +/* 0CC6DC 7F097BAC E7A00384 */ swc1 $f0, 0x384($sp) +/* 0CC6E0 7F097BB0 34C6A000 */ ori $a2, (0x44EAA000 & 0xFFFF) # ori $a2, $a2, 0xa000 +/* 0CC6E4 7F097BB4 C42E75EC */ lwc1 $f14, %lo(D_800575EC)($at) +/* 0CC6E8 7F097BB8 0FC24F12 */ jal sub_GAME_7F093C48 +/* 0CC6EC 7F097BBC C7AC038C */ lwc1 $f12, 0x38c($sp) +/* 0CC6F0 7F097BC0 3C018005 */ lui $at, %hi(D_800575F0) +/* 0CC6F4 7F097BC4 3C0644EA */ lui $a2, (0x44EAA000 >> 16) # lui $a2, 0x44ea +/* 0CC6F8 7F097BC8 E7A0038C */ swc1 $f0, 0x38c($sp) +/* 0CC6FC 7F097BCC 34C6A000 */ ori $a2, (0x44EAA000 & 0xFFFF) # ori $a2, $a2, 0xa000 +/* 0CC700 7F097BD0 C42E75F0 */ lwc1 $f14, %lo(D_800575F0)($at) +/* 0CC704 7F097BD4 0FC24F12 */ jal sub_GAME_7F093C48 +/* 0CC708 7F097BD8 C7AC0394 */ lwc1 $f12, 0x394($sp) +/* 0CC70C 7F097BDC 8FA90484 */ lw $t1, 0x484($sp) +/* 0CC710 7F097BE0 E7A00394 */ swc1 $f0, 0x394($sp) +/* 0CC714 7F097BE4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CC718 7F097BE8 44813000 */ mtc1 $at, $f6 +/* 0CC71C 7F097BEC C52A002C */ lwc1 $f10, 0x2c($t1) +/* 0CC720 7F097BF0 3C014600 */ li $at, 0x46000000 # 8192.000000 +/* 0CC724 7F097BF4 46065082 */ mul.s $f2, $f10, $f6 +/* 0CC728 7F097BF8 4600120D */ trunc.w.s $f8, $f2 +/* 0CC72C 7F097BFC 44194000 */ mfc1 $t9, $f8 +/* 0CC730 7F097C00 C7A8038C */ lwc1 $f8, 0x38c($sp) +/* 0CC734 7F097C04 44992000 */ mtc1 $t9, $f4 +/* 0CC738 7F097C08 00000000 */ nop +/* 0CC73C 7F097C0C 468022A0 */ cvt.s.w $f10, $f4 +/* 0CC740 7F097C10 44812000 */ mtc1 $at, $f4 +/* 0CC744 7F097C14 00000000 */ nop +/* 0CC748 7F097C18 46044302 */ mul.s $f12, $f8, $f4 +/* 0CC74C 7F097C1C 460A1181 */ sub.s $f6, $f2, $f10 +/* 0CC750 7F097C20 0FC24F22 */ jal addpoint5tofloat +/* 0CC754 7F097C24 E7A6037C */ swc1 $f6, 0x37c($sp) +/* 0CC758 7F097C28 3C013900 */ li $at, 0x39000000 # 0.000122 +/* 0CC75C 7F097C2C 44815000 */ mtc1 $at, $f10 +/* 0CC760 7F097C30 C7A8037C */ lwc1 $f8, 0x37c($sp) +/* 0CC764 7F097C34 3C014600 */ li $at, 0x46000000 # 8192.000000 +/* 0CC768 7F097C38 460A0182 */ mul.s $f6, $f0, $f10 +/* 0CC76C 7F097C3C C7AA0428 */ lwc1 $f10, 0x428($sp) +/* 0CC770 7F097C40 46083102 */ mul.s $f4, $f6, $f8 +/* 0CC774 7F097C44 C7A80394 */ lwc1 $f8, 0x394($sp) +/* 0CC778 7F097C48 46045181 */ sub.s $f6, $f10, $f4 +/* 0CC77C 7F097C4C 44815000 */ mtc1 $at, $f10 +/* 0CC780 7F097C50 00000000 */ nop +/* 0CC784 7F097C54 460A4302 */ mul.s $f12, $f8, $f10 +/* 0CC788 7F097C58 0FC24F22 */ jal addpoint5tofloat +/* 0CC78C 7F097C5C E7A60408 */ swc1 $f6, 0x408($sp) +/* 0CC790 7F097C60 3C013900 */ li $at, 0x39000000 # 0.000122 +/* 0CC794 7F097C64 44812000 */ mtc1 $at, $f4 +/* 0CC798 7F097C68 C7A8037C */ lwc1 $f8, 0x37c($sp) +/* 0CC79C 7F097C6C 3C07B400 */ lui $a3, 0xb400 +/* 0CC7A0 7F097C70 46040182 */ mul.s $f6, $f0, $f4 +/* 0CC7A4 7F097C74 C7A40430 */ lwc1 $f4, 0x430($sp) +/* 0CC7A8 7F097C78 8FA80480 */ lw $t0, 0x480($sp) +/* 0CC7AC 7F097C7C 8FA90484 */ lw $t1, 0x484($sp) +/* 0CC7B0 7F097C80 8FAB047C */ lw $t3, 0x47c($sp) +/* 0CC7B4 7F097C84 02002825 */ move $a1, $s0 +/* 0CC7B8 7F097C88 26100008 */ addiu $s0, $s0, 8 +/* 0CC7BC 7F097C8C 46083282 */ mul.s $f10, $f6, $f8 +/* 0CC7C0 7F097C90 3C06C800 */ lui $a2, 0xc800 +/* 0CC7C4 7F097C94 00001825 */ move $v1, $zero +/* 0CC7C8 7F097C98 460A2181 */ sub.s $f6, $f4, $f10 +/* 0CC7CC 7F097C9C E7A60410 */ swc1 $f6, 0x410($sp) +/* 0CC7D0 7F097CA0 ACA70000 */ sw $a3, ($a1) +/* 0CC7D4 7F097CA4 8FB8049C */ lw $t8, 0x49c($sp) +/* 0CC7D8 7F097CA8 C7A80444 */ lwc1 $f8, 0x444($sp) +/* 0CC7DC 7F097CAC 13000003 */ beqz $t8, .L7F097CBC +/* 0CC7E0 7F097CB0 00000000 */ nop +/* 0CC7E4 7F097CB4 10000001 */ b .L7F097CBC +/* 0CC7E8 7F097CB8 3C06CE00 */ lui $a2, 0xce00 +.L7F097CBC: +/* 0CC7EC 7F097CBC 4614403C */ c.lt.s $f8, $f20 +/* 0CC7F0 7F097CC0 00000000 */ nop +/* 0CC7F4 7F097CC4 45000003 */ bc1f .L7F097CD4 +/* 0CC7F8 7F097CC8 00000000 */ nop +/* 0CC7FC 7F097CCC 10000001 */ b .L7F097CD4 +/* 0CC800 7F097CD0 3C030080 */ lui $v1, 0x80 +.L7F097CD4: +/* 0CC804 7F097CD4 C564002C */ lwc1 $f4, 0x2c($t3) +/* 0CC808 7F097CD8 00667825 */ or $t7, $v1, $a2 +/* 0CC80C 7F097CDC 02001025 */ move $v0, $s0 +/* 0CC810 7F097CE0 4600228D */ trunc.w.s $f10, $f4 +/* 0CC814 7F097CE4 3C0EB200 */ lui $t6, 0xb200 +/* 0CC818 7F097CE8 26100008 */ addiu $s0, $s0, 8 +/* 0CC81C 7F097CEC 02002025 */ move $a0, $s0 +/* 0CC820 7F097CF0 44195000 */ mfc1 $t9, $f10 +/* 0CC824 7F097CF4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CC828 7F097CF8 26100008 */ addiu $s0, $s0, 8 +/* 0CC82C 7F097CFC 01F9C025 */ or $t8, $t7, $t9 +/* 0CC830 7F097D00 ACB80004 */ sw $t8, 4($a1) +/* 0CC834 7F097D04 AC4E0000 */ sw $t6, ($v0) +/* 0CC838 7F097D08 C506002C */ lwc1 $f6, 0x2c($t0) +/* 0CC83C 7F097D0C C524002C */ lwc1 $f4, 0x2c($t1) +/* 0CC840 7F097D10 4600320D */ trunc.w.s $f8, $f6 +/* 0CC844 7F097D14 4600228D */ trunc.w.s $f10, $f4 +/* 0CC848 7F097D18 44194000 */ mfc1 $t9, $f8 +/* 0CC84C 7F097D1C 44814000 */ mtc1 $at, $f8 +/* 0CC850 7F097D20 440F5000 */ mfc1 $t7, $f10 +/* 0CC854 7F097D24 0019C400 */ sll $t8, $t9, 0x10 +/* 0CC858 7F097D28 030FC825 */ or $t9, $t8, $t7 +/* 0CC85C 7F097D2C AC590004 */ sw $t9, 4($v0) +/* 0CC860 7F097D30 AC870000 */ sw $a3, ($a0) +/* 0CC864 7F097D34 C5060028 */ lwc1 $f6, 0x28($t0) +/* 0CC868 7F097D38 AFAB047C */ sw $t3, 0x47c($sp) +/* 0CC86C 7F097D3C AFA90484 */ sw $t1, 0x484($sp) +/* 0CC870 7F097D40 46083302 */ mul.s $f12, $f6, $f8 +/* 0CC874 7F097D44 AFA80480 */ sw $t0, 0x480($sp) +/* 0CC878 7F097D48 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CC87C 7F097D4C AFA40180 */ sw $a0, 0x180($sp) +/* 0CC880 7F097D50 8FA40180 */ lw $a0, 0x180($sp) +/* 0CC884 7F097D54 02001825 */ move $v1, $s0 +/* 0CC888 7F097D58 3C0EB200 */ lui $t6, 0xb200 +/* 0CC88C 7F097D5C AC820004 */ sw $v0, 4($a0) +/* 0CC890 7F097D60 AC6E0000 */ sw $t6, ($v1) +/* 0CC894 7F097D64 AFA3017C */ sw $v1, 0x17c($sp) +/* 0CC898 7F097D68 C7AC0384 */ lwc1 $f12, 0x384($sp) +/* 0CC89C 7F097D6C 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CC8A0 7F097D70 26100008 */ addiu $s0, $s0, 8 +/* 0CC8A4 7F097D74 8FA3017C */ lw $v1, 0x17c($sp) +/* 0CC8A8 7F097D78 02002025 */ move $a0, $s0 +/* 0CC8AC 7F097D7C 3C18B400 */ lui $t8, 0xb400 +/* 0CC8B0 7F097D80 AC620004 */ sw $v0, 4($v1) +/* 0CC8B4 7F097D84 AC980000 */ sw $t8, ($a0) +/* 0CC8B8 7F097D88 AFA40178 */ sw $a0, 0x178($sp) +/* 0CC8BC 7F097D8C C7AC0410 */ lwc1 $f12, 0x410($sp) +/* 0CC8C0 7F097D90 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CC8C4 7F097D94 26100008 */ addiu $s0, $s0, 8 +/* 0CC8C8 7F097D98 8FA40178 */ lw $a0, 0x178($sp) +/* 0CC8CC 7F097D9C 02001825 */ move $v1, $s0 +/* 0CC8D0 7F097DA0 3C0FB200 */ lui $t7, 0xb200 +/* 0CC8D4 7F097DA4 AC820004 */ sw $v0, 4($a0) +/* 0CC8D8 7F097DA8 AC6F0000 */ sw $t7, ($v1) +/* 0CC8DC 7F097DAC AFA30174 */ sw $v1, 0x174($sp) +/* 0CC8E0 7F097DB0 C7AC0394 */ lwc1 $f12, 0x394($sp) +/* 0CC8E4 7F097DB4 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CC8E8 7F097DB8 26100008 */ addiu $s0, $s0, 8 +/* 0CC8EC 7F097DBC 8FA30174 */ lw $v1, 0x174($sp) +/* 0CC8F0 7F097DC0 02002025 */ move $a0, $s0 +/* 0CC8F4 7F097DC4 3C19B400 */ lui $t9, 0xb400 +/* 0CC8F8 7F097DC8 AC620004 */ sw $v0, 4($v1) +/* 0CC8FC 7F097DCC AC990000 */ sw $t9, ($a0) +/* 0CC900 7F097DD0 AFA40170 */ sw $a0, 0x170($sp) +/* 0CC904 7F097DD4 C7AC0408 */ lwc1 $f12, 0x408($sp) +/* 0CC908 7F097DD8 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CC90C 7F097DDC 26100008 */ addiu $s0, $s0, 8 +/* 0CC910 7F097DE0 8FA40170 */ lw $a0, 0x170($sp) +/* 0CC914 7F097DE4 02001825 */ move $v1, $s0 +/* 0CC918 7F097DE8 3C0EB200 */ lui $t6, 0xb200 +/* 0CC91C 7F097DEC AC820004 */ sw $v0, 4($a0) +/* 0CC920 7F097DF0 AC6E0000 */ sw $t6, ($v1) +/* 0CC924 7F097DF4 AFA3016C */ sw $v1, 0x16c($sp) +/* 0CC928 7F097DF8 C7AC038C */ lwc1 $f12, 0x38c($sp) +/* 0CC92C 7F097DFC 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CC930 7F097E00 26100008 */ addiu $s0, $s0, 8 +/* 0CC934 7F097E04 8FA3016C */ lw $v1, 0x16c($sp) +/* 0CC938 7F097E08 8FA80480 */ lw $t0, 0x480($sp) +/* 0CC93C 7F097E0C 8FA90484 */ lw $t1, 0x484($sp) +/* 0CC940 7F097E10 8FAB047C */ lw $t3, 0x47c($sp) +/* 0CC944 7F097E14 AC620004 */ sw $v0, 4($v1) +/* 0CC948 7F097E18 8FB8049C */ lw $t8, 0x49c($sp) +/* 0CC94C 7F097E1C C7A00378 */ lwc1 $f0, 0x378($sp) +/* 0CC950 7F097E20 3C018005 */ lui $at, %hi(D_800575F4) +/* 0CC954 7F097E24 57000004 */ bnezl $t8, .L7F097E38 +/* 0CC958 7F097E28 C524000C */ lwc1 $f4, 0xc($t1) +/* 0CC95C 7F097E2C 100002FA */ b .L7F098A18 +/* 0CC960 7F097E30 02001025 */ move $v0, $s0 +/* 0CC964 7F097E34 C524000C */ lwc1 $f4, 0xc($t1) +.L7F097E38: +/* 0CC968 7F097E38 46002282 */ mul.s $f10, $f4, $f0 +/* 0CC96C 7F097E3C E7AA036C */ swc1 $f10, 0x36c($sp) +/* 0CC970 7F097E40 C506000C */ lwc1 $f6, 0xc($t0) +/* 0CC974 7F097E44 C7B2036C */ lwc1 $f18, 0x36c($sp) +/* 0CC978 7F097E48 46003202 */ mul.s $f8, $f6, $f0 +/* 0CC97C 7F097E4C E7A80370 */ swc1 $f8, 0x370($sp) +/* 0CC980 7F097E50 C564000C */ lwc1 $f4, 0xc($t3) +/* 0CC984 7F097E54 C7A60370 */ lwc1 $f6, 0x370($sp) +/* 0CC988 7F097E58 46002282 */ mul.s $f10, $f4, $f0 +/* 0CC98C 7F097E5C 4612303C */ c.lt.s $f6, $f18 +/* 0CC990 7F097E60 E7AA0374 */ swc1 $f10, 0x374($sp) +/* 0CC994 7F097E64 45000002 */ bc1f .L7F097E70 +/* 0CC998 7F097E68 C7A00374 */ lwc1 $f0, 0x374($sp) +/* 0CC99C 7F097E6C 46003486 */ mov.s $f18, $f6 +.L7F097E70: +/* 0CC9A0 7F097E70 4612003C */ c.lt.s $f0, $f18 +/* 0CC9A4 7F097E74 00000000 */ nop +/* 0CC9A8 7F097E78 45000002 */ bc1f .L7F097E84 +/* 0CC9AC 7F097E7C 00000000 */ nop +/* 0CC9B0 7F097E80 46000486 */ mov.s $f18, $f0 +.L7F097E84: +/* 0CC9B4 7F097E84 C42075F4 */ lwc1 $f0, %lo(D_800575F4)($at) +/* 0CC9B8 7F097E88 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0CC9BC 7F097E8C 44811000 */ mtc1 $at, $f2 +/* 0CC9C0 7F097E90 C5280034 */ lwc1 $f8, 0x34($t1) +/* 0CC9C4 7F097E94 46029482 */ mul.s $f18, $f18, $f2 +/* 0CC9C8 7F097E98 00000000 */ nop +/* 0CC9CC 7F097E9C 46124102 */ mul.s $f4, $f8, $f18 +/* 0CC9D0 7F097EA0 E7A4035C */ swc1 $f4, 0x35c($sp) +/* 0CC9D4 7F097EA4 C50A0034 */ lwc1 $f10, 0x34($t0) +/* 0CC9D8 7F097EA8 46125182 */ mul.s $f6, $f10, $f18 +/* 0CC9DC 7F097EAC C7AA035C */ lwc1 $f10, 0x35c($sp) +/* 0CC9E0 7F097EB0 E7A60360 */ swc1 $f6, 0x360($sp) +/* 0CC9E4 7F097EB4 C5680034 */ lwc1 $f8, 0x34($t3) +/* 0CC9E8 7F097EB8 46124102 */ mul.s $f4, $f8, $f18 +/* 0CC9EC 7F097EBC E7A40364 */ swc1 $f4, 0x364($sp) +/* 0CC9F0 7F097EC0 C5260020 */ lwc1 $f6, 0x20($t1) +/* 0CC9F4 7F097EC4 46065202 */ mul.s $f8, $f10, $f6 +/* 0CC9F8 7F097EC8 E7A80338 */ swc1 $f8, 0x338($sp) +/* 0CC9FC 7F097ECC C5240024 */ lwc1 $f4, 0x24($t1) +/* 0CCA00 7F097ED0 4608A03E */ c.le.s $f20, $f8 +/* 0CCA04 7F097ED4 46045182 */ mul.s $f6, $f10, $f4 +/* 0CCA08 7F097ED8 00000000 */ nop +/* 0CCA0C 7F097EDC 46005102 */ mul.s $f4, $f10, $f0 +/* 0CCA10 7F097EE0 E7A6033C */ swc1 $f6, 0x33c($sp) +/* 0CCA14 7F097EE4 C7A60360 */ lwc1 $f6, 0x360($sp) +/* 0CCA18 7F097EE8 E7A40340 */ swc1 $f4, 0x340($sp) +/* 0CCA1C 7F097EEC C50A0020 */ lwc1 $f10, 0x20($t0) +/* 0CCA20 7F097EF0 460A3102 */ mul.s $f4, $f6, $f10 +/* 0CCA24 7F097EF4 E7A40344 */ swc1 $f4, 0x344($sp) +/* 0CCA28 7F097EF8 C50A0024 */ lwc1 $f10, 0x24($t0) +/* 0CCA2C 7F097EFC 460A3102 */ mul.s $f4, $f6, $f10 +/* 0CCA30 7F097F00 00000000 */ nop +/* 0CCA34 7F097F04 46003282 */ mul.s $f10, $f6, $f0 +/* 0CCA38 7F097F08 E7A40348 */ swc1 $f4, 0x348($sp) +/* 0CCA3C 7F097F0C C7A40364 */ lwc1 $f4, 0x364($sp) +/* 0CCA40 7F097F10 E7AA034C */ swc1 $f10, 0x34c($sp) +/* 0CCA44 7F097F14 C5660020 */ lwc1 $f6, 0x20($t3) +/* 0CCA48 7F097F18 46062282 */ mul.s $f10, $f4, $f6 +/* 0CCA4C 7F097F1C E7AA0350 */ swc1 $f10, 0x350($sp) +/* 0CCA50 7F097F20 C5660024 */ lwc1 $f6, 0x24($t3) +/* 0CCA54 7F097F24 46062282 */ mul.s $f10, $f4, $f6 +/* 0CCA58 7F097F28 00000000 */ nop +/* 0CCA5C 7F097F2C 46002182 */ mul.s $f6, $f4, $f0 +/* 0CCA60 7F097F30 C7A0033C */ lwc1 $f0, 0x33c($sp) +/* 0CCA64 7F097F34 E7AA0354 */ swc1 $f10, 0x354($sp) +/* 0CCA68 7F097F38 45000003 */ bc1f .L7F097F48 +/* 0CCA6C 7F097F3C E7A60358 */ swc1 $f6, 0x358($sp) +/* 0CCA70 7F097F40 10000003 */ b .L7F097F50 +/* 0CCA74 7F097F44 46004386 */ mov.s $f14, $f8 +.L7F097F48: +/* 0CCA78 7F097F48 C7AE0338 */ lwc1 $f14, 0x338($sp) +/* 0CCA7C 7F097F4C 46007387 */ neg.s $f14, $f14 +.L7F097F50: +/* 0CCA80 7F097F50 4600A03E */ c.le.s $f20, $f0 +/* 0CCA84 7F097F54 00000000 */ nop +/* 0CCA88 7F097F58 45020004 */ bc1fl .L7F097F6C +/* 0CCA8C 7F097F5C 46000407 */ neg.s $f16, $f0 +/* 0CCA90 7F097F60 10000002 */ b .L7F097F6C +/* 0CCA94 7F097F64 46000406 */ mov.s $f16, $f0 +/* 0CCA98 7F097F68 46000407 */ neg.s $f16, $f0 +.L7F097F6C: +/* 0CCA9C 7F097F6C C7A00344 */ lwc1 $f0, 0x344($sp) +/* 0CCAA0 7F097F70 4600A03E */ c.le.s $f20, $f0 +/* 0CCAA4 7F097F74 00000000 */ nop +/* 0CCAA8 7F097F78 45020004 */ bc1fl .L7F097F8C +/* 0CCAAC 7F097F7C 46000307 */ neg.s $f12, $f0 +/* 0CCAB0 7F097F80 10000002 */ b .L7F097F8C +/* 0CCAB4 7F097F84 46000306 */ mov.s $f12, $f0 +/* 0CCAB8 7F097F88 46000307 */ neg.s $f12, $f0 +.L7F097F8C: +/* 0CCABC 7F097F8C 460C703C */ c.lt.s $f14, $f12 +/* 0CCAC0 7F097F90 00000000 */ nop +/* 0CCAC4 7F097F94 45020009 */ bc1fl .L7F097FBC +/* 0CCAC8 7F097F98 C7A00348 */ lwc1 $f0, 0x348($sp) +/* 0CCACC 7F097F9C 4600A03E */ c.le.s $f20, $f0 +/* 0CCAD0 7F097FA0 00000000 */ nop +/* 0CCAD4 7F097FA4 45020004 */ bc1fl .L7F097FB8 +/* 0CCAD8 7F097FA8 46000387 */ neg.s $f14, $f0 +/* 0CCADC 7F097FAC 10000002 */ b .L7F097FB8 +/* 0CCAE0 7F097FB0 46000386 */ mov.s $f14, $f0 +/* 0CCAE4 7F097FB4 46000387 */ neg.s $f14, $f0 +.L7F097FB8: +/* 0CCAE8 7F097FB8 C7A00348 */ lwc1 $f0, 0x348($sp) +.L7F097FBC: +/* 0CCAEC 7F097FBC 4600A03E */ c.le.s $f20, $f0 +/* 0CCAF0 7F097FC0 00000000 */ nop +/* 0CCAF4 7F097FC4 45020004 */ bc1fl .L7F097FD8 +/* 0CCAF8 7F097FC8 46000307 */ neg.s $f12, $f0 +/* 0CCAFC 7F097FCC 10000002 */ b .L7F097FD8 +/* 0CCB00 7F097FD0 46000306 */ mov.s $f12, $f0 +/* 0CCB04 7F097FD4 46000307 */ neg.s $f12, $f0 +.L7F097FD8: +/* 0CCB08 7F097FD8 460C803C */ c.lt.s $f16, $f12 +/* 0CCB0C 7F097FDC E7B20368 */ swc1 $f18, 0x368($sp) +/* 0CCB10 7F097FE0 4502000B */ bc1fl .L7F098010 +/* 0CCB14 7F097FE4 C7A00350 */ lwc1 $f0, 0x350($sp) +/* 0CCB18 7F097FE8 4600A03E */ c.le.s $f20, $f0 +/* 0CCB1C 7F097FEC 00000000 */ nop +/* 0CCB20 7F097FF0 45020005 */ bc1fl .L7F098008 +/* 0CCB24 7F097FF4 46000407 */ neg.s $f16, $f0 +/* 0CCB28 7F097FF8 46000406 */ mov.s $f16, $f0 +/* 0CCB2C 7F097FFC 10000003 */ b .L7F09800C +/* 0CCB30 7F098000 E7B20368 */ swc1 $f18, 0x368($sp) +/* 0CCB34 7F098004 46000407 */ neg.s $f16, $f0 +.L7F098008: +/* 0CCB38 7F098008 E7B20368 */ swc1 $f18, 0x368($sp) +.L7F09800C: +/* 0CCB3C 7F09800C C7A00350 */ lwc1 $f0, 0x350($sp) +.L7F098010: +/* 0CCB40 7F098010 4600A03E */ c.le.s $f20, $f0 +/* 0CCB44 7F098014 00000000 */ nop +/* 0CCB48 7F098018 45020004 */ bc1fl .L7F09802C +/* 0CCB4C 7F09801C 46000307 */ neg.s $f12, $f0 +/* 0CCB50 7F098020 10000002 */ b .L7F09802C +/* 0CCB54 7F098024 46000306 */ mov.s $f12, $f0 +/* 0CCB58 7F098028 46000307 */ neg.s $f12, $f0 +.L7F09802C: +/* 0CCB5C 7F09802C 460C703C */ c.lt.s $f14, $f12 +/* 0CCB60 7F098030 E7AE0330 */ swc1 $f14, 0x330($sp) +/* 0CCB64 7F098034 4502000A */ bc1fl .L7F098060 +/* 0CCB68 7F098038 C7A00354 */ lwc1 $f0, 0x354($sp) +/* 0CCB6C 7F09803C 4600A03E */ c.le.s $f20, $f0 +/* 0CCB70 7F098040 00000000 */ nop +/* 0CCB74 7F098044 45020004 */ bc1fl .L7F098058 +/* 0CCB78 7F098048 46000387 */ neg.s $f14, $f0 +/* 0CCB7C 7F09804C 10000003 */ b .L7F09805C +/* 0CCB80 7F098050 E7A00330 */ swc1 $f0, 0x330($sp) +/* 0CCB84 7F098054 46000387 */ neg.s $f14, $f0 +.L7F098058: +/* 0CCB88 7F098058 E7AE0330 */ swc1 $f14, 0x330($sp) +.L7F09805C: +/* 0CCB8C 7F09805C C7A00354 */ lwc1 $f0, 0x354($sp) +.L7F098060: +/* 0CCB90 7F098060 4600A03E */ c.le.s $f20, $f0 +/* 0CCB94 7F098064 00000000 */ nop +/* 0CCB98 7F098068 45020004 */ bc1fl .L7F09807C +/* 0CCB9C 7F09806C 46000307 */ neg.s $f12, $f0 +/* 0CCBA0 7F098070 10000002 */ b .L7F09807C +/* 0CCBA4 7F098074 46000306 */ mov.s $f12, $f0 +/* 0CCBA8 7F098078 46000307 */ neg.s $f12, $f0 +.L7F09807C: +/* 0CCBAC 7F09807C 460C803C */ c.lt.s $f16, $f12 +/* 0CCBB0 7F098080 E7B00334 */ swc1 $f16, 0x334($sp) +/* 0CCBB4 7F098084 4502000A */ bc1fl .L7F0980B0 +/* 0CCBB8 7F098088 C52A0010 */ lwc1 $f10, 0x10($t1) +/* 0CCBBC 7F09808C 4600A03E */ c.le.s $f20, $f0 +/* 0CCBC0 7F098090 00000000 */ nop +/* 0CCBC4 7F098094 45020004 */ bc1fl .L7F0980A8 +/* 0CCBC8 7F098098 46000407 */ neg.s $f16, $f0 +/* 0CCBCC 7F09809C 10000003 */ b .L7F0980AC +/* 0CCBD0 7F0980A0 E7A00334 */ swc1 $f0, 0x334($sp) +/* 0CCBD4 7F0980A4 46000407 */ neg.s $f16, $f0 +.L7F0980A8: +/* 0CCBD8 7F0980A8 E7B00334 */ swc1 $f16, 0x334($sp) +.L7F0980AC: +/* 0CCBDC 7F0980AC C52A0010 */ lwc1 $f10, 0x10($t1) +.L7F0980B0: +/* 0CCBE0 7F0980B0 27A402B0 */ addiu $a0, $sp, 0x2b0 +/* 0CCBE4 7F0980B4 27A602F0 */ addiu $a2, $sp, 0x2f0 +/* 0CCBE8 7F0980B8 46025100 */ add.s $f4, $f10, $f2 +/* 0CCBEC 7F0980BC 27A20310 */ addiu $v0, $sp, 0x310 +/* 0CCBF0 7F0980C0 27A30290 */ addiu $v1, $sp, 0x290 +/* 0CCBF4 7F0980C4 27A502D0 */ addiu $a1, $sp, 0x2d0 +/* 0CCBF8 7F0980C8 E7A40310 */ swc1 $f4, 0x310($sp) +/* 0CCBFC 7F0980CC C5260014 */ lwc1 $f6, 0x14($t1) +/* 0CCC00 7F0980D0 27A702F0 */ addiu $a3, $sp, 0x2f0 +/* 0CCC04 7F0980D4 46023200 */ add.s $f8, $f6, $f2 +/* 0CCC08 7F0980D8 E7A80314 */ swc1 $f8, 0x314($sp) +/* 0CCC0C 7F0980DC C52A0018 */ lwc1 $f10, 0x18($t1) +/* 0CCC10 7F0980E0 46025100 */ add.s $f4, $f10, $f2 +/* 0CCC14 7F0980E4 E7A40318 */ swc1 $f4, 0x318($sp) +/* 0CCC18 7F0980E8 C526001C */ lwc1 $f6, 0x1c($t1) +/* 0CCC1C 7F0980EC 46023200 */ add.s $f8, $f6, $f2 +/* 0CCC20 7F0980F0 E7A8031C */ swc1 $f8, 0x31c($sp) +/* 0CCC24 7F0980F4 C50A0010 */ lwc1 $f10, 0x10($t0) +/* 0CCC28 7F0980F8 46025100 */ add.s $f4, $f10, $f2 +/* 0CCC2C 7F0980FC E7A402F0 */ swc1 $f4, 0x2f0($sp) +/* 0CCC30 7F098100 C5060014 */ lwc1 $f6, 0x14($t0) +/* 0CCC34 7F098104 46023200 */ add.s $f8, $f6, $f2 +/* 0CCC38 7F098108 E7A802F4 */ swc1 $f8, 0x2f4($sp) +/* 0CCC3C 7F09810C C50A0018 */ lwc1 $f10, 0x18($t0) +/* 0CCC40 7F098110 46025100 */ add.s $f4, $f10, $f2 +/* 0CCC44 7F098114 E7A402F8 */ swc1 $f4, 0x2f8($sp) +/* 0CCC48 7F098118 C506001C */ lwc1 $f6, 0x1c($t0) +/* 0CCC4C 7F09811C 46023200 */ add.s $f8, $f6, $f2 +/* 0CCC50 7F098120 E7A802FC */ swc1 $f8, 0x2fc($sp) +/* 0CCC54 7F098124 C56A0010 */ lwc1 $f10, 0x10($t3) +/* 0CCC58 7F098128 46025100 */ add.s $f4, $f10, $f2 +/* 0CCC5C 7F09812C E7A402D0 */ swc1 $f4, 0x2d0($sp) +/* 0CCC60 7F098130 C5660014 */ lwc1 $f6, 0x14($t3) +/* 0CCC64 7F098134 46023200 */ add.s $f8, $f6, $f2 +/* 0CCC68 7F098138 E7A802D4 */ swc1 $f8, 0x2d4($sp) +/* 0CCC6C 7F09813C C56A0018 */ lwc1 $f10, 0x18($t3) +/* 0CCC70 7F098140 46025100 */ add.s $f4, $f10, $f2 +/* 0CCC74 7F098144 C7AA0338 */ lwc1 $f10, 0x338($sp) +/* 0CCC78 7F098148 E7A402D8 */ swc1 $f4, 0x2d8($sp) +/* 0CCC7C 7F09814C C566001C */ lwc1 $f6, 0x1c($t3) +/* 0CCC80 7F098150 E7AA0320 */ swc1 $f10, 0x320($sp) +/* 0CCC84 7F098154 C7A4033C */ lwc1 $f4, 0x33c($sp) +/* 0CCC88 7F098158 46023200 */ add.s $f8, $f6, $f2 +/* 0CCC8C 7F09815C C7A60340 */ lwc1 $f6, 0x340($sp) +/* 0CCC90 7F098160 C7AA0348 */ lwc1 $f10, 0x348($sp) +/* 0CCC94 7F098164 E7A40324 */ swc1 $f4, 0x324($sp) +/* 0CCC98 7F098168 E7A802DC */ swc1 $f8, 0x2dc($sp) +/* 0CCC9C 7F09816C C7A80344 */ lwc1 $f8, 0x344($sp) +/* 0CCCA0 7F098170 E7A60328 */ swc1 $f6, 0x328($sp) +/* 0CCCA4 7F098174 E7AA0304 */ swc1 $f10, 0x304($sp) +/* 0CCCA8 7F098178 E7A80300 */ swc1 $f8, 0x300($sp) +/* 0CCCAC 7F09817C C7A4034C */ lwc1 $f4, 0x34c($sp) +/* 0CCCB0 7F098180 C7A80354 */ lwc1 $f8, 0x354($sp) +/* 0CCCB4 7F098184 C7AA0358 */ lwc1 $f10, 0x358($sp) +/* 0CCCB8 7F098188 C7A60350 */ lwc1 $f6, 0x350($sp) +/* 0CCCBC 7F09818C E7A40308 */ swc1 $f4, 0x308($sp) +/* 0CCCC0 7F098190 E7A802E4 */ swc1 $f8, 0x2e4($sp) +/* 0CCCC4 7F098194 E7AA02E8 */ swc1 $f10, 0x2e8($sp) +/* 0CCCC8 7F098198 E7A602E0 */ swc1 $f6, 0x2e0($sp) +/* 0CCCCC 7F09819C C5240030 */ lwc1 $f4, 0x30($t1) +/* 0CCCD0 7F0981A0 27A90230 */ addiu $t1, $sp, 0x230 +/* 0CCCD4 7F0981A4 E7A4032C */ swc1 $f4, 0x32c($sp) +/* 0CCCD8 7F0981A8 C5060030 */ lwc1 $f6, 0x30($t0) +/* 0CCCDC 7F0981AC 27A80230 */ addiu $t0, $sp, 0x230 +/* 0CCCE0 7F0981B0 E7A6030C */ swc1 $f6, 0x30c($sp) +/* 0CCCE4 7F0981B4 C5680030 */ lwc1 $f8, 0x30($t3) +/* 0CCCE8 7F0981B8 E7A802EC */ swc1 $f8, 0x2ec($sp) +.L7F0981BC: +/* 0CCCEC 7F0981BC C4400000 */ lwc1 $f0, ($v0) +/* 0CCCF0 7F0981C0 C4CA0000 */ lwc1 $f10, ($a2) +/* 0CCCF4 7F0981C4 C4A60000 */ lwc1 $f6, ($a1) +/* 0CCCF8 7F0981C8 24A50004 */ addiu $a1, $a1, 4 +/* 0CCCFC 7F0981CC 46005101 */ sub.s $f4, $f10, $f0 +/* 0CCD00 7F0981D0 00A7082B */ sltu $at, $a1, $a3 +/* 0CCD04 7F0981D4 24840004 */ addiu $a0, $a0, 4 +/* 0CCD08 7F0981D8 46003201 */ sub.s $f8, $f6, $f0 +/* 0CCD0C 7F0981DC 24C60004 */ addiu $a2, $a2, 4 +/* 0CCD10 7F0981E0 24420004 */ addiu $v0, $v0, 4 +/* 0CCD14 7F0981E4 24630004 */ addiu $v1, $v1, 4 +/* 0CCD18 7F0981E8 E484FFFC */ swc1 $f4, -4($a0) +/* 0CCD1C 7F0981EC 1420FFF3 */ bnez $at, .L7F0981BC +/* 0CCD20 7F0981F0 E468FFFC */ swc1 $f8, -4($v1) +/* 0CCD24 7F0981F4 27A402B0 */ addiu $a0, $sp, 0x2b0 +/* 0CCD28 7F0981F8 27A20310 */ addiu $v0, $sp, 0x310 +/* 0CCD2C 7F0981FC 27A30290 */ addiu $v1, $sp, 0x290 +/* 0CCD30 7F098200 27A70250 */ addiu $a3, $sp, 0x250 +/* 0CCD34 7F098204 27A50270 */ addiu $a1, $sp, 0x270 +/* 0CCD38 7F098208 27A60210 */ addiu $a2, $sp, 0x210 +/* 0CCD3C 7F09820C C7B203C8 */ lwc1 $f18, 0x3c8($sp) +.L7F098210: +/* 0CCD40 7F098210 C4600000 */ lwc1 $f0, ($v1) +/* 0CCD44 7F098214 C7AA03CC */ lwc1 $f10, 0x3cc($sp) +/* 0CCD48 7F098218 C4820000 */ lwc1 $f2, ($a0) +/* 0CCD4C 7F09821C C7A603D4 */ lwc1 $f6, 0x3d4($sp) +/* 0CCD50 7F098220 460A0102 */ mul.s $f4, $f0, $f10 +/* 0CCD54 7F098224 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0CCD58 7F098228 24C60004 */ addiu $a2, $a2, 4 +/* 0CCD5C 7F09822C 46023202 */ mul.s $f8, $f6, $f2 +/* 0CCD60 7F098230 44813000 */ mtc1 $at, $f6 +/* 0CCD64 7F098234 24840004 */ addiu $a0, $a0, 4 +/* 0CCD68 7F098238 24420004 */ addiu $v0, $v0, 4 +/* 0CCD6C 7F09823C 24630004 */ addiu $v1, $v1, 4 +/* 0CCD70 7F098240 24E70004 */ addiu $a3, $a3, 4 +/* 0CCD74 7F098244 24A50004 */ addiu $a1, $a1, 4 +/* 0CCD78 7F098248 46082281 */ sub.s $f10, $f4, $f8 +/* 0CCD7C 7F09824C 25080004 */ addiu $t0, $t0, 4 +/* 0CCD80 7F098250 46065303 */ div.s $f12, $f10, $f6 +/* 0CCD84 7F098254 E4ECFFFC */ swc1 $f12, -4($a3) +/* 0CCD88 7F098258 C7A403D0 */ lwc1 $f4, 0x3d0($sp) +/* 0CCD8C 7F09825C 46041202 */ mul.s $f8, $f2, $f4 +/* 0CCD90 7F098260 44812000 */ mtc1 $at, $f4 +/* 0CCD94 7F098264 00C9082B */ sltu $at, $a2, $t1 +/* 0CCD98 7F098268 46009282 */ mul.s $f10, $f18, $f0 +/* 0CCD9C 7F09826C 460A4181 */ sub.s $f6, $f8, $f10 +/* 0CCDA0 7F098270 46043203 */ div.s $f8, $f6, $f4 +/* 0CCDA4 7F098274 E4A8FFFC */ swc1 $f8, -4($a1) +/* 0CCDA8 7F098278 C7AA0440 */ lwc1 $f10, 0x440($sp) +/* 0CCDAC 7F09827C C4A4FFFC */ lwc1 $f4, -4($a1) +/* 0CCDB0 7F098280 460A6182 */ mul.s $f6, $f12, $f10 +/* 0CCDB4 7F098284 E466FFFC */ swc1 $f6, -4($v1) +/* 0CCDB8 7F098288 C7A80440 */ lwc1 $f8, 0x440($sp) +/* 0CCDBC 7F09828C C466FFFC */ lwc1 $f6, -4($v1) +/* 0CCDC0 7F098290 46082382 */ mul.s $f14, $f4, $f8 +/* 0CCDC4 7F098294 C448FFFC */ lwc1 $f8, -4($v0) +/* 0CCDC8 7F098298 E48EFFFC */ swc1 $f14, -4($a0) +/* 0CCDCC 7F09829C C7AA0394 */ lwc1 $f10, 0x394($sp) +/* 0CCDD0 7F0982A0 46065102 */ mul.s $f4, $f10, $f6 +/* 0CCDD4 7F0982A4 460E2400 */ add.s $f16, $f4, $f14 +/* 0CCDD8 7F0982A8 E510FFFC */ swc1 $f16, -4($t0) +/* 0CCDDC 7F0982AC C7AA037C */ lwc1 $f10, 0x37c($sp) +/* 0CCDE0 7F0982B0 460A8182 */ mul.s $f6, $f16, $f10 +/* 0CCDE4 7F0982B4 46064101 */ sub.s $f4, $f8, $f6 +/* 0CCDE8 7F0982B8 1420FFD5 */ bnez $at, .L7F098210 +/* 0CCDEC 7F0982BC E4C4FFFC */ swc1 $f4, -4($a2) +/* 0CCDF0 7F0982C0 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CCDF4 7F0982C4 C7AC0210 */ lwc1 $f12, 0x210($sp) +/* 0CCDF8 7F0982C8 AFA20168 */ sw $v0, 0x168($sp) +/* 0CCDFC 7F0982CC 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CCE00 7F0982D0 C7AC0214 */ lwc1 $f12, 0x214($sp) +/* 0CCE04 7F0982D4 AFA20164 */ sw $v0, 0x164($sp) +/* 0CCE08 7F0982D8 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CCE0C 7F0982DC C7AC0218 */ lwc1 $f12, 0x218($sp) +/* 0CCE10 7F0982E0 AFA20160 */ sw $v0, 0x160($sp) +/* 0CCE14 7F0982E4 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CCE18 7F0982E8 C7AC021C */ lwc1 $f12, 0x21c($sp) +/* 0CCE1C 7F0982EC AFA2015C */ sw $v0, 0x15c($sp) +/* 0CCE20 7F0982F0 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CCE24 7F0982F4 C7AC0290 */ lwc1 $f12, 0x290($sp) +/* 0CCE28 7F0982F8 AFA20158 */ sw $v0, 0x158($sp) +/* 0CCE2C 7F0982FC 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CCE30 7F098300 C7AC0294 */ lwc1 $f12, 0x294($sp) +/* 0CCE34 7F098304 AFA20154 */ sw $v0, 0x154($sp) +/* 0CCE38 7F098308 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CCE3C 7F09830C C7AC0298 */ lwc1 $f12, 0x298($sp) +/* 0CCE40 7F098310 AFA20150 */ sw $v0, 0x150($sp) +/* 0CCE44 7F098314 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CCE48 7F098318 C7AC029C */ lwc1 $f12, 0x29c($sp) +/* 0CCE4C 7F09831C AFA2014C */ sw $v0, 0x14c($sp) +/* 0CCE50 7F098320 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CCE54 7F098324 C7AC02B0 */ lwc1 $f12, 0x2b0($sp) +/* 0CCE58 7F098328 AFA20138 */ sw $v0, 0x138($sp) +/* 0CCE5C 7F09832C 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CCE60 7F098330 C7AC02B4 */ lwc1 $f12, 0x2b4($sp) +/* 0CCE64 7F098334 AFA20134 */ sw $v0, 0x134($sp) +/* 0CCE68 7F098338 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CCE6C 7F09833C C7AC02B8 */ lwc1 $f12, 0x2b8($sp) +/* 0CCE70 7F098340 AFA20130 */ sw $v0, 0x130($sp) +/* 0CCE74 7F098344 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CCE78 7F098348 C7AC02BC */ lwc1 $f12, 0x2bc($sp) +/* 0CCE7C 7F09834C AFA2012C */ sw $v0, 0x12c($sp) +/* 0CCE80 7F098350 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CCE84 7F098354 C7AC0230 */ lwc1 $f12, 0x230($sp) +/* 0CCE88 7F098358 AFA20148 */ sw $v0, 0x148($sp) +/* 0CCE8C 7F09835C 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CCE90 7F098360 C7AC0234 */ lwc1 $f12, 0x234($sp) +/* 0CCE94 7F098364 AFA20144 */ sw $v0, 0x144($sp) +/* 0CCE98 7F098368 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CCE9C 7F09836C C7AC0238 */ lwc1 $f12, 0x238($sp) +/* 0CCEA0 7F098370 C7AC023C */ lwc1 $f12, 0x23c($sp) +/* 0CCEA4 7F098374 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CCEA8 7F098378 AFA20140 */ sw $v0, 0x140($sp) +/* 0CCEAC 7F09837C 8FAC0140 */ lw $t4, 0x140($sp) +/* 0CCEB0 7F098380 8FAD015C */ lw $t5, 0x15c($sp) +/* 0CCEB4 7F098384 8FBF0168 */ lw $ra, 0x168($sp) +/* 0CCEB8 7F098388 3C08B400 */ lui $t0, 0xb400 +/* 0CCEBC 7F09838C 02001825 */ move $v1, $s0 +/* 0CCEC0 7F098390 AC680000 */ sw $t0, ($v1) +/* 0CCEC4 7F098394 8FB90164 */ lw $t9, 0x164($sp) +/* 0CCEC8 7F098398 3C09FFFF */ lui $t1, 0xffff +/* 0CCECC 7F09839C 03E97824 */ and $t7, $ra, $t1 +/* 0CCED0 7F0983A0 03297024 */ and $t6, $t9, $t1 +/* 0CCED4 7F0983A4 000EC402 */ srl $t8, $t6, 0x10 +/* 0CCED8 7F0983A8 01F8C825 */ or $t9, $t7, $t8 +/* 0CCEDC 7F0983AC 26100008 */ addiu $s0, $s0, 8 +/* 0CCEE0 7F0983B0 3C0AB200 */ lui $t2, 0xb200 +/* 0CCEE4 7F0983B4 AC790004 */ sw $t9, 4($v1) +/* 0CCEE8 7F0983B8 02002025 */ move $a0, $s0 +/* 0CCEEC 7F0983BC AC8A0000 */ sw $t2, ($a0) +/* 0CCEF0 7F0983C0 8FAE0160 */ lw $t6, 0x160($sp) +/* 0CCEF4 7F0983C4 01A9C024 */ and $t8, $t5, $t1 +/* 0CCEF8 7F0983C8 0018CC02 */ srl $t9, $t8, 0x10 +/* 0CCEFC 7F0983CC 01C97824 */ and $t7, $t6, $t1 +/* 0CCF00 7F0983D0 01F97025 */ or $t6, $t7, $t9 +/* 0CCF04 7F0983D4 26100008 */ addiu $s0, $s0, 8 +/* 0CCF08 7F0983D8 AC8E0004 */ sw $t6, 4($a0) +/* 0CCF0C 7F0983DC 02002825 */ move $a1, $s0 +/* 0CCF10 7F0983E0 ACA80000 */ sw $t0, ($a1) +/* 0CCF14 7F0983E4 8FB90154 */ lw $t9, 0x154($sp) +/* 0CCF18 7F0983E8 8FB80158 */ lw $t8, 0x158($sp) +/* 0CCF1C 7F0983EC 26100008 */ addiu $s0, $s0, 8 +/* 0CCF20 7F0983F0 03297024 */ and $t6, $t9, $t1 +/* 0CCF24 7F0983F4 03097824 */ and $t7, $t8, $t1 +/* 0CCF28 7F0983F8 000EC402 */ srl $t8, $t6, 0x10 +/* 0CCF2C 7F0983FC 01F8C825 */ or $t9, $t7, $t8 +/* 0CCF30 7F098400 ACB90004 */ sw $t9, 4($a1) +/* 0CCF34 7F098404 8FAB014C */ lw $t3, 0x14c($sp) +/* 0CCF38 7F098408 02003025 */ move $a2, $s0 +/* 0CCF3C 7F09840C ACCA0000 */ sw $t2, ($a2) +/* 0CCF40 7F098410 8FAE0150 */ lw $t6, 0x150($sp) +/* 0CCF44 7F098414 0169C024 */ and $t8, $t3, $t1 +/* 0CCF48 7F098418 0018CC02 */ srl $t9, $t8, 0x10 +/* 0CCF4C 7F09841C 01C97824 */ and $t7, $t6, $t1 +/* 0CCF50 7F098420 01F97025 */ or $t6, $t7, $t9 +/* 0CCF54 7F098424 26100008 */ addiu $s0, $s0, 8 +/* 0CCF58 7F098428 ACCE0004 */ sw $t6, 4($a2) +/* 0CCF5C 7F09842C 02001825 */ move $v1, $s0 +/* 0CCF60 7F098430 AC680000 */ sw $t0, ($v1) +/* 0CCF64 7F098434 8FB90164 */ lw $t9, 0x164($sp) +/* 0CCF68 7F098438 001F7C00 */ sll $t7, $ra, 0x10 +/* 0CCF6C 7F09843C 26100008 */ addiu $s0, $s0, 8 +/* 0CCF70 7F098440 332EFFFF */ andi $t6, $t9, 0xffff +/* 0CCF74 7F098444 01EEC025 */ or $t8, $t7, $t6 +/* 0CCF78 7F098448 AC780004 */ sw $t8, 4($v1) +/* 0CCF7C 7F09844C 02002025 */ move $a0, $s0 +/* 0CCF80 7F098450 AC8A0000 */ sw $t2, ($a0) +/* 0CCF84 7F098454 8FAF0160 */ lw $t7, 0x160($sp) +/* 0CCF88 7F098458 31B8FFFF */ andi $t8, $t5, 0xffff +/* 0CCF8C 7F09845C 26100008 */ addiu $s0, $s0, 8 +/* 0CCF90 7F098460 000F7400 */ sll $t6, $t7, 0x10 +/* 0CCF94 7F098464 01D8C825 */ or $t9, $t6, $t8 +/* 0CCF98 7F098468 AC990004 */ sw $t9, 4($a0) +/* 0CCF9C 7F09846C 02003825 */ move $a3, $s0 +/* 0CCFA0 7F098470 ACE80000 */ sw $t0, ($a3) +/* 0CCFA4 7F098474 8FB90154 */ lw $t9, 0x154($sp) +/* 0CCFA8 7F098478 8FAE0158 */ lw $t6, 0x158($sp) +/* 0CCFAC 7F09847C 8FA80148 */ lw $t0, 0x148($sp) +/* 0CCFB0 7F098480 332FFFFF */ andi $t7, $t9, 0xffff +/* 0CCFB4 7F098484 000EC400 */ sll $t8, $t6, 0x10 +/* 0CCFB8 7F098488 8FA60144 */ lw $a2, 0x144($sp) +/* 0CCFBC 7F09848C 030F7025 */ or $t6, $t8, $t7 +/* 0CCFC0 7F098490 26100008 */ addiu $s0, $s0, 8 +/* 0CCFC4 7F098494 ACEE0004 */ sw $t6, 4($a3) +/* 0CCFC8 7F098498 02001825 */ move $v1, $s0 +/* 0CCFCC 7F09849C AC6A0000 */ sw $t2, ($v1) +/* 0CCFD0 7F0984A0 8FB80150 */ lw $t8, 0x150($sp) +/* 0CCFD4 7F0984A4 316EFFFF */ andi $t6, $t3, 0xffff +/* 0CCFD8 7F0984A8 26100008 */ addiu $s0, $s0, 8 +/* 0CCFDC 7F0984AC 00187C00 */ sll $t7, $t8, 0x10 +/* 0CCFE0 7F0984B0 01EEC825 */ or $t9, $t7, $t6 +/* 0CCFE4 7F0984B4 AC790004 */ sw $t9, 4($v1) +/* 0CCFE8 7F0984B8 3C18B400 */ lui $t8, 0xb400 +/* 0CCFEC 7F0984BC 02002025 */ move $a0, $s0 +/* 0CCFF0 7F0984C0 00C97024 */ and $t6, $a2, $t1 +/* 0CCFF4 7F0984C4 000ECC02 */ srl $t9, $t6, 0x10 +/* 0CCFF8 7F0984C8 AC980000 */ sw $t8, ($a0) +/* 0CCFFC 7F0984CC 01097824 */ and $t7, $t0, $t1 +/* 0CD000 7F0984D0 01F9C025 */ or $t8, $t7, $t9 +/* 0CD004 7F0984D4 26100008 */ addiu $s0, $s0, 8 +/* 0CD008 7F0984D8 AC980004 */ sw $t8, 4($a0) +/* 0CD00C 7F0984DC 02002825 */ move $a1, $s0 +/* 0CD010 7F0984E0 00497824 */ and $t7, $v0, $t1 +/* 0CD014 7F0984E4 000FCC02 */ srl $t9, $t7, 0x10 +/* 0CD018 7F0984E8 01897024 */ and $t6, $t4, $t1 +/* 0CD01C 7F0984EC 01D9C025 */ or $t8, $t6, $t9 +/* 0CD020 7F0984F0 ACB80004 */ sw $t8, 4($a1) +/* 0CD024 7F0984F4 ACAA0000 */ sw $t2, ($a1) +/* 0CD028 7F0984F8 26100008 */ addiu $s0, $s0, 8 +/* 0CD02C 7F0984FC 8FAD0130 */ lw $t5, 0x130($sp) +/* 0CD030 7F098500 3C07B400 */ lui $a3, %hi(0xB4000004) # $a3, 0xb400 +/* 0CD034 7F098504 02001825 */ move $v1, $s0 +/* 0CD038 7F098508 AC670000 */ sw $a3, ($v1) +/* 0CD03C 7F09850C 8FB90134 */ lw $t9, 0x134($sp) +/* 0CD040 7F098510 8FAF0138 */ lw $t7, 0x138($sp) +/* 0CD044 7F098514 26100008 */ addiu $s0, $s0, 8 +/* 0CD048 7F098518 0329C024 */ and $t8, $t9, $t1 +/* 0CD04C 7F09851C 01E97024 */ and $t6, $t7, $t1 +/* 0CD050 7F098520 00187C02 */ srl $t7, $t8, 0x10 +/* 0CD054 7F098524 01CFC825 */ or $t9, $t6, $t7 +/* 0CD058 7F098528 AC790004 */ sw $t9, 4($v1) +/* 0CD05C 7F09852C 3C18B200 */ lui $t8, 0xb200 +/* 0CD060 7F098530 02002025 */ move $a0, $s0 +/* 0CD064 7F098534 AC980000 */ sw $t8, ($a0) +/* 0CD068 7F098538 8FAF012C */ lw $t7, 0x12c($sp) +/* 0CD06C 7F09853C 01A97024 */ and $t6, $t5, $t1 +/* 0CD070 7F098540 26100008 */ addiu $s0, $s0, 8 +/* 0CD074 7F098544 01E9C824 */ and $t9, $t7, $t1 +/* 0CD078 7F098548 0019C402 */ srl $t8, $t9, 0x10 +/* 0CD07C 7F09854C 01D87825 */ or $t7, $t6, $t8 +/* 0CD080 7F098550 AC8F0004 */ sw $t7, 4($a0) +/* 0CD084 7F098554 02002825 */ move $a1, $s0 +/* 0CD088 7F098558 00087400 */ sll $t6, $t0, 0x10 +/* 0CD08C 7F09855C 30D8FFFF */ andi $t8, $a2, 0xffff +/* 0CD090 7F098560 01D87825 */ or $t7, $t6, $t8 +/* 0CD094 7F098564 26100008 */ addiu $s0, $s0, 8 +/* 0CD098 7F098568 ACAF0004 */ sw $t7, 4($a1) +/* 0CD09C 7F09856C ACA70000 */ sw $a3, ($a1) +/* 0CD0A0 7F098570 02005825 */ move $t3, $s0 +/* 0CD0A4 7F098574 3058FFFF */ andi $t8, $v0, 0xffff +/* 0CD0A8 7F098578 000C7400 */ sll $t6, $t4, 0x10 +/* 0CD0AC 7F09857C 01D87825 */ or $t7, $t6, $t8 +/* 0CD0B0 7F098580 26100008 */ addiu $s0, $s0, 8 +/* 0CD0B4 7F098584 3C1FB200 */ lui $ra, 0xb200 +/* 0CD0B8 7F098588 AD7F0000 */ sw $ra, ($t3) +/* 0CD0BC 7F09858C AD6F0004 */ sw $t7, 4($t3) +/* 0CD0C0 7F098590 02003825 */ move $a3, $s0 +/* 0CD0C4 7F098594 3C19B400 */ lui $t9, 0xb400 +/* 0CD0C8 7F098598 ACF90000 */ sw $t9, ($a3) +/* 0CD0CC 7F09859C 8FB90134 */ lw $t9, 0x134($sp) +/* 0CD0D0 7F0985A0 8FB80138 */ lw $t8, 0x138($sp) +/* 0CD0D4 7F0985A4 26100008 */ addiu $s0, $s0, 8 +/* 0CD0D8 7F0985A8 332EFFFF */ andi $t6, $t9, 0xffff +/* 0CD0DC 7F0985AC 00187C00 */ sll $t7, $t8, 0x10 +/* 0CD0E0 7F0985B0 01EEC025 */ or $t8, $t7, $t6 +/* 0CD0E4 7F0985B4 ACF80004 */ sw $t8, %lo(0xB4000004)($a3) +/* 0CD0E8 7F0985B8 02004025 */ move $t0, $s0 +/* 0CD0EC 7F0985BC AD1F0000 */ sw $ra, ($t0) +/* 0CD0F0 7F0985C0 8FAE012C */ lw $t6, 0x12c($sp) +/* 0CD0F4 7F0985C4 000D7C00 */ sll $t7, $t5, 0x10 +/* 0CD0F8 7F0985C8 3C013D00 */ li $at, 0x3D000000 # 0.031250 +/* 0CD0FC 7F0985CC 31D8FFFF */ andi $t8, $t6, 0xffff +/* 0CD100 7F0985D0 01F8C825 */ or $t9, $t7, $t8 +/* 0CD104 7F0985D4 AD190004 */ sw $t9, 4($t0) +/* 0CD108 7F0985D8 44817000 */ mtc1 $at, $f14 +/* 0CD10C 7F0985DC C7AA0330 */ lwc1 $f10, 0x330($sp) +/* 0CD110 7F0985E0 C7A60334 */ lwc1 $f6, 0x334($sp) +/* 0CD114 7F0985E4 26100008 */ addiu $s0, $s0, 8 +/* 0CD118 7F0985E8 460E5202 */ mul.s $f8, $f10, $f14 +/* 0CD11C 7F0985EC C7AA0368 */ lwc1 $f10, 0x368($sp) +/* 0CD120 7F0985F0 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0CD124 7F0985F4 460E3102 */ mul.s $f4, $f6, $f14 +/* 0CD128 7F0985F8 27A201D0 */ addiu $v0, $sp, 0x1d0 +/* 0CD12C 7F0985FC 27A501B0 */ addiu $a1, $sp, 0x1b0 +/* 0CD130 7F098600 27A601D0 */ addiu $a2, $sp, 0x1d0 +/* 0CD134 7F098604 E7A80200 */ swc1 $f8, 0x200($sp) +/* 0CD138 7F098608 460E5202 */ mul.s $f8, $f10, $f14 +/* 0CD13C 7F09860C 27A402B0 */ addiu $a0, $sp, 0x2b0 +/* 0CD140 7F098610 E7A40204 */ swc1 $f4, 0x204($sp) +/* 0CD144 7F098614 27A30290 */ addiu $v1, $sp, 0x290 +/* 0CD148 7F098618 E7A80208 */ swc1 $f8, 0x208($sp) +.L7F09861C: +/* 0CD14C 7F09861C C4600000 */ lwc1 $f0, ($v1) +/* 0CD150 7F098620 4600A03E */ c.le.s $f20, $f0 +/* 0CD154 7F098624 00000000 */ nop +/* 0CD158 7F098628 45020004 */ bc1fl .L7F09863C +/* 0CD15C 7F09862C 46000307 */ neg.s $f12, $f0 +/* 0CD160 7F098630 10000002 */ b .L7F09863C +/* 0CD164 7F098634 46000306 */ mov.s $f12, $f0 +/* 0CD168 7F098638 46000307 */ neg.s $f12, $f0 +.L7F09863C: +/* 0CD16C 7F09863C C4820000 */ lwc1 $f2, ($a0) +/* 0CD170 7F098640 460E6182 */ mul.s $f6, $f12, $f14 +/* 0CD174 7F098644 4602A03E */ c.le.s $f20, $f2 +/* 0CD178 7F098648 00000000 */ nop +/* 0CD17C 7F09864C 45000003 */ bc1f .L7F09865C +/* 0CD180 7F098650 E4C60000 */ swc1 $f6, ($a2) +/* 0CD184 7F098654 10000002 */ b .L7F098660 +/* 0CD188 7F098658 46001306 */ mov.s $f12, $f2 +.L7F09865C: +/* 0CD18C 7F09865C 46001307 */ neg.s $f12, $f2 +.L7F098660: +/* 0CD190 7F098660 460E6102 */ mul.s $f4, $f12, $f14 +/* 0CD194 7F098664 24A50004 */ addiu $a1, $a1, 4 +/* 0CD198 7F098668 24840004 */ addiu $a0, $a0, 4 +/* 0CD19C 7F09866C 24630004 */ addiu $v1, $v1, 4 +/* 0CD1A0 7F098670 24C60004 */ addiu $a2, $a2, 4 +/* 0CD1A4 7F098674 14A2FFE9 */ bne $a1, $v0, .L7F09861C +/* 0CD1A8 7F098678 E4A4FFFC */ swc1 $f4, -4($a1) +/* 0CD1AC 7F09867C 44811000 */ mtc1 $at, $f2 +/* 0CD1B0 7F098680 C7A801E0 */ lwc1 $f8, 0x1e0($sp) +/* 0CD1B4 7F098684 C7AA0200 */ lwc1 $f10, 0x200($sp) +/* 0CD1B8 7F098688 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CD1BC 7F09868C 46081182 */ mul.s $f6, $f2, $f8 +/* 0CD1C0 7F098690 C7A801C0 */ lwc1 $f8, 0x1c0($sp) +/* 0CD1C4 7F098694 46065100 */ add.s $f4, $f10, $f6 +/* 0CD1C8 7F098698 C7A601E4 */ lwc1 $f6, 0x1e4($sp) +/* 0CD1CC 7F09869C C7AA0204 */ lwc1 $f10, 0x204($sp) +/* 0CD1D0 7F0986A0 46044000 */ add.s $f0, $f8, $f4 +/* 0CD1D4 7F0986A4 46061202 */ mul.s $f8, $f2, $f6 +/* 0CD1D8 7F0986A8 C7A601C4 */ lwc1 $f6, 0x1c4($sp) +/* 0CD1DC 7F0986AC 46085100 */ add.s $f4, $f10, $f8 +/* 0CD1E0 7F0986B0 C7A801E8 */ lwc1 $f8, 0x1e8($sp) +/* 0CD1E4 7F0986B4 C7AA0208 */ lwc1 $f10, 0x208($sp) +/* 0CD1E8 7F0986B8 46043300 */ add.s $f12, $f6, $f4 +/* 0CD1EC 7F0986BC 46081182 */ mul.s $f6, $f2, $f8 +/* 0CD1F0 7F0986C0 44811000 */ mtc1 $at, $f2 +/* 0CD1F4 7F0986C4 C7A801C8 */ lwc1 $f8, 0x1c8($sp) +/* 0CD1F8 7F0986C8 460C003C */ c.lt.s $f0, $f12 +/* 0CD1FC 7F0986CC 3C013A80 */ li $at, 0x3A800000 # 0.000977 +/* 0CD200 7F0986D0 E7AC01A4 */ swc1 $f12, 0x1a4($sp) +/* 0CD204 7F0986D4 46065100 */ add.s $f4, $f10, $f6 +/* 0CD208 7F0986D8 44815000 */ mtc1 $at, $f10 +/* 0CD20C 7F0986DC 45000003 */ bc1f .L7F0986EC +/* 0CD210 7F0986E0 46044380 */ add.s $f14, $f8, $f4 +/* 0CD214 7F0986E4 46006006 */ mov.s $f0, $f12 +/* 0CD218 7F0986E8 E7AC01A4 */ swc1 $f12, 0x1a4($sp) +.L7F0986EC: +/* 0CD21C 7F0986EC 460E003C */ c.lt.s $f0, $f14 +/* 0CD220 7F0986F0 E7AE01A8 */ swc1 $f14, 0x1a8($sp) +/* 0CD224 7F0986F4 45000003 */ bc1f .L7F098704 +/* 0CD228 7F0986F8 00000000 */ nop +/* 0CD22C 7F0986FC 46007006 */ mov.s $f0, $f14 +/* 0CD230 7F098700 E7AE01A8 */ swc1 $f14, 0x1a8($sp) +.L7F098704: +/* 0CD234 7F098704 460A0002 */ mul.s $f0, $f0, $f10 +/* 0CD238 7F098708 4600103C */ c.lt.s $f2, $f0 +/* 0CD23C 7F09870C 00000000 */ nop +/* 0CD240 7F098710 45020005 */ bc1fl .L7F098728 +/* 0CD244 7F098714 E7A001A0 */ swc1 $f0, 0x1a0($sp) +/* 0CD248 7F098718 46001503 */ div.s $f20, $f2, $f0 +/* 0CD24C 7F09871C 10000003 */ b .L7F09872C +/* 0CD250 7F098720 E7A001A0 */ swc1 $f0, 0x1a0($sp) +/* 0CD254 7F098724 E7A001A0 */ swc1 $f0, 0x1a0($sp) +.L7F098728: +/* 0CD258 7F098728 46001506 */ mov.s $f20, $f2 +.L7F09872C: +/* 0CD25C 7F09872C C7A60220 */ lwc1 $f6, 0x220($sp) +/* 0CD260 7F098730 E7B40190 */ swc1 $f20, 0x190($sp) +/* 0CD264 7F098734 4606A302 */ mul.s $f12, $f20, $f6 +/* 0CD268 7F098738 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CD26C 7F09873C 00000000 */ nop +/* 0CD270 7F098740 C7B40190 */ lwc1 $f20, 0x190($sp) +/* 0CD274 7F098744 C7A80224 */ lwc1 $f8, 0x224($sp) +/* 0CD278 7F098748 AFA200E8 */ sw $v0, 0xe8($sp) +/* 0CD27C 7F09874C 4608A302 */ mul.s $f12, $f20, $f8 +/* 0CD280 7F098750 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CD284 7F098754 00000000 */ nop +/* 0CD288 7F098758 C7B40190 */ lwc1 $f20, 0x190($sp) +/* 0CD28C 7F09875C C7A40228 */ lwc1 $f4, 0x228($sp) +/* 0CD290 7F098760 AFA200E4 */ sw $v0, 0xe4($sp) +/* 0CD294 7F098764 4604A302 */ mul.s $f12, $f20, $f4 +/* 0CD298 7F098768 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CD29C 7F09876C 00000000 */ nop +/* 0CD2A0 7F098770 C7B40190 */ lwc1 $f20, 0x190($sp) +/* 0CD2A4 7F098774 C7AA02A0 */ lwc1 $f10, 0x2a0($sp) +/* 0CD2A8 7F098778 AFA200E0 */ sw $v0, 0xe0($sp) +/* 0CD2AC 7F09877C 460AA302 */ mul.s $f12, $f20, $f10 +/* 0CD2B0 7F098780 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CD2B4 7F098784 00000000 */ nop +/* 0CD2B8 7F098788 C7B40190 */ lwc1 $f20, 0x190($sp) +/* 0CD2BC 7F09878C C7A602A4 */ lwc1 $f6, 0x2a4($sp) +/* 0CD2C0 7F098790 AFA200D8 */ sw $v0, 0xd8($sp) +/* 0CD2C4 7F098794 4606A302 */ mul.s $f12, $f20, $f6 +/* 0CD2C8 7F098798 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CD2CC 7F09879C 00000000 */ nop +/* 0CD2D0 7F0987A0 C7B40190 */ lwc1 $f20, 0x190($sp) +/* 0CD2D4 7F0987A4 C7A802A8 */ lwc1 $f8, 0x2a8($sp) +/* 0CD2D8 7F0987A8 AFA200D4 */ sw $v0, 0xd4($sp) +/* 0CD2DC 7F0987AC 4608A302 */ mul.s $f12, $f20, $f8 +/* 0CD2E0 7F0987B0 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CD2E4 7F0987B4 00000000 */ nop +/* 0CD2E8 7F0987B8 C7B40190 */ lwc1 $f20, 0x190($sp) +/* 0CD2EC 7F0987BC C7A402C0 */ lwc1 $f4, 0x2c0($sp) +/* 0CD2F0 7F0987C0 AFA200D0 */ sw $v0, 0xd0($sp) +/* 0CD2F4 7F0987C4 4604A302 */ mul.s $f12, $f20, $f4 +/* 0CD2F8 7F0987C8 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CD2FC 7F0987CC 00000000 */ nop +/* 0CD300 7F0987D0 C7B40190 */ lwc1 $f20, 0x190($sp) +/* 0CD304 7F0987D4 C7AA02C4 */ lwc1 $f10, 0x2c4($sp) +/* 0CD308 7F0987D8 AFA200B8 */ sw $v0, 0xb8($sp) +/* 0CD30C 7F0987DC 460AA302 */ mul.s $f12, $f20, $f10 +/* 0CD310 7F0987E0 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CD314 7F0987E4 00000000 */ nop +/* 0CD318 7F0987E8 C7B40190 */ lwc1 $f20, 0x190($sp) +/* 0CD31C 7F0987EC C7A602C8 */ lwc1 $f6, 0x2c8($sp) +/* 0CD320 7F0987F0 AFA200B4 */ sw $v0, 0xb4($sp) +/* 0CD324 7F0987F4 4606A302 */ mul.s $f12, $f20, $f6 +/* 0CD328 7F0987F8 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CD32C 7F0987FC 00000000 */ nop +/* 0CD330 7F098800 C7B40190 */ lwc1 $f20, 0x190($sp) +/* 0CD334 7F098804 C7A80240 */ lwc1 $f8, 0x240($sp) +/* 0CD338 7F098808 AFA200B0 */ sw $v0, 0xb0($sp) +/* 0CD33C 7F09880C 4608A302 */ mul.s $f12, $f20, $f8 +/* 0CD340 7F098810 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CD344 7F098814 00000000 */ nop +/* 0CD348 7F098818 C7B40190 */ lwc1 $f20, 0x190($sp) +/* 0CD34C 7F09881C C7A40244 */ lwc1 $f4, 0x244($sp) +/* 0CD350 7F098820 AFA200C8 */ sw $v0, 0xc8($sp) +/* 0CD354 7F098824 4604A302 */ mul.s $f12, $f20, $f4 +/* 0CD358 7F098828 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CD35C 7F09882C 00000000 */ nop +/* 0CD360 7F098830 C7B40190 */ lwc1 $f20, 0x190($sp) +/* 0CD364 7F098834 C7AA0248 */ lwc1 $f10, 0x248($sp) +/* 0CD368 7F098838 AFA200C4 */ sw $v0, 0xc4($sp) +/* 0CD36C 7F09883C 460AA302 */ mul.s $f12, $f20, $f10 +/* 0CD370 7F098840 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CD374 7F098844 00000000 */ nop +/* 0CD378 7F098848 8FAD00E4 */ lw $t5, 0xe4($sp) +/* 0CD37C 7F09884C 8FAC00E8 */ lw $t4, 0xe8($sp) +/* 0CD380 7F098850 3C09FFFF */ lui $t1, 0xffff +/* 0CD384 7F098854 8FA600C4 */ lw $a2, 0xc4($sp) +/* 0CD388 7F098858 8FBF00E0 */ lw $ra, 0xe0($sp) +/* 0CD38C 7F09885C 3C0EB400 */ lui $t6, 0xb400 +/* 0CD390 7F098860 01A9C024 */ and $t8, $t5, $t1 +/* 0CD394 7F098864 0018CC02 */ srl $t9, $t8, 0x10 +/* 0CD398 7F098868 AE0E0000 */ sw $t6, ($s0) +/* 0CD39C 7F09886C 01897824 */ and $t7, $t4, $t1 +/* 0CD3A0 7F098870 01F97025 */ or $t6, $t7, $t9 +/* 0CD3A4 7F098874 26040008 */ addiu $a0, $s0, 8 +/* 0CD3A8 7F098878 AE0E0004 */ sw $t6, 4($s0) +/* 0CD3AC 7F09887C 3C18B200 */ lui $t8, 0xb200 +/* 0CD3B0 7F098880 03E97824 */ and $t7, $ra, $t1 +/* 0CD3B4 7F098884 AC8F0004 */ sw $t7, 4($a0) +/* 0CD3B8 7F098888 AC980000 */ sw $t8, ($a0) +/* 0CD3BC 7F09888C 24850008 */ addiu $a1, $a0, 8 +/* 0CD3C0 7F098890 3C19B400 */ lui $t9, 0xb400 +/* 0CD3C4 7F098894 ACB90000 */ sw $t9, ($a1) +/* 0CD3C8 7F098898 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 0CD3CC 7F09889C 8FAE00D8 */ lw $t6, 0xd8($sp) +/* 0CD3D0 7F0988A0 24A70008 */ addiu $a3, $a1, 8 +/* 0CD3D4 7F0988A4 01E9C824 */ and $t9, $t7, $t1 +/* 0CD3D8 7F0988A8 01C9C024 */ and $t8, $t6, $t1 +/* 0CD3DC 7F0988AC 00197402 */ srl $t6, $t9, 0x10 +/* 0CD3E0 7F0988B0 030E7825 */ or $t7, $t8, $t6 +/* 0CD3E4 7F0988B4 ACAF0004 */ sw $t7, 4($a1) +/* 0CD3E8 7F0988B8 8FAB00D0 */ lw $t3, 0xd0($sp) +/* 0CD3EC 7F0988BC 3C19B200 */ lui $t9, 0xb200 +/* 0CD3F0 7F0988C0 ACF90000 */ sw $t9, ($a3) +/* 0CD3F4 7F0988C4 0169C024 */ and $t8, $t3, $t1 +/* 0CD3F8 7F0988C8 ACF80004 */ sw $t8, 4($a3) +/* 0CD3FC 7F0988CC 24E30008 */ addiu $v1, $a3, 8 +/* 0CD400 7F0988D0 3C0EB400 */ lui $t6, 0xb400 +/* 0CD404 7F0988D4 AC6E0000 */ sw $t6, ($v1) +/* 0CD408 7F0988D8 31B8FFFF */ andi $t8, $t5, 0xffff +/* 0CD40C 7F0988DC 000CCC00 */ sll $t9, $t4, 0x10 +/* 0CD410 7F0988E0 03387025 */ or $t6, $t9, $t8 +/* 0CD414 7F0988E4 AC6E0004 */ sw $t6, 4($v1) +/* 0CD418 7F0988E8 24700008 */ addiu $s0, $v1, 8 +/* 0CD41C 7F0988EC 3C0FB200 */ lui $t7, 0xb200 +/* 0CD420 7F0988F0 001FC400 */ sll $t8, $ra, 0x10 +/* 0CD424 7F0988F4 AE180004 */ sw $t8, 4($s0) +/* 0CD428 7F0988F8 AE0F0000 */ sw $t7, ($s0) +/* 0CD42C 7F0988FC 26080008 */ addiu $t0, $s0, 8 +/* 0CD430 7F098900 3C0EB400 */ lui $t6, 0xb400 +/* 0CD434 7F098904 AD0E0000 */ sw $t6, ($t0) +/* 0CD438 7F098908 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0CD43C 7F09890C 8FB900D8 */ lw $t9, 0xd8($sp) +/* 0CD440 7F098910 8FA700C8 */ lw $a3, 0xc8($sp) +/* 0CD444 7F098914 31CFFFFF */ andi $t7, $t6, 0xffff +/* 0CD448 7F098918 0019C400 */ sll $t8, $t9, 0x10 +/* 0CD44C 7F09891C 030FC825 */ or $t9, $t8, $t7 +/* 0CD450 7F098920 AD190004 */ sw $t9, 4($t0) +/* 0CD454 7F098924 25030008 */ addiu $v1, $t0, 8 +/* 0CD458 7F098928 3C0EB200 */ lui $t6, 0xb200 +/* 0CD45C 7F09892C 000B7C00 */ sll $t7, $t3, 0x10 +/* 0CD460 7F098930 AC6F0004 */ sw $t7, 4($v1) +/* 0CD464 7F098934 AC6E0000 */ sw $t6, ($v1) +/* 0CD468 7F098938 24640008 */ addiu $a0, $v1, 8 +/* 0CD46C 7F09893C 3C19B400 */ lui $t9, 0xb400 +/* 0CD470 7F098940 00C9C024 */ and $t8, $a2, $t1 +/* 0CD474 7F098944 00187C02 */ srl $t7, $t8, 0x10 +/* 0CD478 7F098948 AC990000 */ sw $t9, ($a0) +/* 0CD47C 7F09894C 00E97024 */ and $t6, $a3, $t1 +/* 0CD480 7F098950 01CFC825 */ or $t9, $t6, $t7 +/* 0CD484 7F098954 AC990004 */ sw $t9, 4($a0) +/* 0CD488 7F098958 24850008 */ addiu $a1, $a0, 8 +/* 0CD48C 7F09895C 00497024 */ and $t6, $v0, $t1 +/* 0CD490 7F098960 3C18B200 */ lui $t8, 0xb200 +/* 0CD494 7F098964 ACB80000 */ sw $t8, ($a1) +/* 0CD498 7F098968 ACAE0004 */ sw $t6, 4($a1) +/* 0CD49C 7F09896C 8FA800B4 */ lw $t0, 0xb4($sp) +/* 0CD4A0 7F098970 8FAC00B8 */ lw $t4, 0xb8($sp) +/* 0CD4A4 7F098974 00405025 */ move $t2, $v0 +/* 0CD4A8 7F098978 24B00008 */ addiu $s0, $a1, 8 +/* 0CD4AC 7F09897C 8FAB00B0 */ lw $t3, 0xb0($sp) +/* 0CD4B0 7F098980 02001025 */ move $v0, $s0 +/* 0CD4B4 7F098984 3C0FB400 */ lui $t7, 0xb400 +/* 0CD4B8 7F098988 0109C024 */ and $t8, $t0, $t1 +/* 0CD4BC 7F09898C 00187402 */ srl $t6, $t8, 0x10 +/* 0CD4C0 7F098990 AC4F0000 */ sw $t7, ($v0) +/* 0CD4C4 7F098994 0189C824 */ and $t9, $t4, $t1 +/* 0CD4C8 7F098998 032E7825 */ or $t7, $t9, $t6 +/* 0CD4CC 7F09899C AC4F0004 */ sw $t7, 4($v0) +/* 0CD4D0 7F0989A0 26030008 */ addiu $v1, $s0, 8 +/* 0CD4D4 7F0989A4 3C18B200 */ lui $t8, 0xb200 +/* 0CD4D8 7F0989A8 0169C824 */ and $t9, $t3, $t1 +/* 0CD4DC 7F0989AC AC790004 */ sw $t9, 4($v1) +/* 0CD4E0 7F0989B0 AC780000 */ sw $t8, ($v1) +/* 0CD4E4 7F0989B4 24700008 */ addiu $s0, $v1, 8 +/* 0CD4E8 7F0989B8 3C0EB400 */ lui $t6, 0xb400 +/* 0CD4EC 7F0989BC AE0E0000 */ sw $t6, ($s0) +/* 0CD4F0 7F0989C0 30D9FFFF */ andi $t9, $a2, 0xffff +/* 0CD4F4 7F0989C4 0007C400 */ sll $t8, $a3, 0x10 +/* 0CD4F8 7F0989C8 03197025 */ or $t6, $t8, $t9 +/* 0CD4FC 7F0989CC AE0E0004 */ sw $t6, 4($s0) +/* 0CD500 7F0989D0 26050008 */ addiu $a1, $s0, 8 +/* 0CD504 7F0989D4 000ACC00 */ sll $t9, $t2, 0x10 +/* 0CD508 7F0989D8 ACB90004 */ sw $t9, 4($a1) +/* 0CD50C 7F0989DC 3C0FB200 */ lui $t7, 0xb200 +/* 0CD510 7F0989E0 ACAF0000 */ sw $t7, ($a1) +/* 0CD514 7F0989E4 24A30008 */ addiu $v1, $a1, 8 +/* 0CD518 7F0989E8 3C0EB400 */ lui $t6, 0xb400 +/* 0CD51C 7F0989EC AC6E0000 */ sw $t6, ($v1) +/* 0CD520 7F0989F0 3119FFFF */ andi $t9, $t0, 0xffff +/* 0CD524 7F0989F4 000CC400 */ sll $t8, $t4, 0x10 +/* 0CD528 7F0989F8 03197025 */ or $t6, $t8, $t9 +/* 0CD52C 7F0989FC 24640008 */ addiu $a0, $v1, 8 +/* 0CD530 7F098A00 AC6E0004 */ sw $t6, 4($v1) +/* 0CD534 7F098A04 3C0FB300 */ lui $t7, 0xb300 +/* 0CD538 7F098A08 000BCC00 */ sll $t9, $t3, 0x10 +/* 0CD53C 7F098A0C AC990004 */ sw $t9, 4($a0) +/* 0CD540 7F098A10 AC8F0000 */ sw $t7, ($a0) +/* 0CD544 7F098A14 24820008 */ addiu $v0, $a0, 8 +.L7F098A18: +/* 0CD548 7F098A18 8FBF0024 */ lw $ra, 0x24($sp) +/* 0CD54C 7F098A1C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0CD550 7F098A20 8FB00020 */ lw $s0, 0x20($sp) +/* 0CD554 7F098A24 03E00008 */ jr $ra +/* 0CD558 7F098A28 27BD0488 */ addiu $sp, $sp, 0x488 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F098A2C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800575F8 +.word 0xc4eac000 /*-1878.0*/ +glabel D_800575FC +.word 0xc4eac000 /*-1878.0*/ +glabel D_80057600 +.word 0xc4eac000 /*-1878.0*/ +glabel D_80057604 +.word 0xc4eac000 /*-1878.0*/ +glabel D_80057608 +.word 0x44eaa000 /*1877.0*/ +glabel D_8005760C +.word 0x46fffe00 /*32767.0*/ +.text +glabel sub_GAME_7F098A2C +/* 0CD55C 7F098A2C 27BDFB30 */ addiu $sp, $sp, -0x4d0 +/* 0CD560 7F098A30 AFB00020 */ sw $s0, 0x20($sp) +/* 0CD564 7F098A34 00808025 */ move $s0, $a0 +/* 0CD568 7F098A38 AFBF0024 */ sw $ra, 0x24($sp) +/* 0CD56C 7F098A3C AFA504D4 */ sw $a1, 0x4d4($sp) +/* 0CD570 7F098A40 00A02025 */ move $a0, $a1 +/* 0CD574 7F098A44 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0CD578 7F098A48 AFA604D8 */ sw $a2, 0x4d8($sp) +/* 0CD57C 7F098A4C AFA704DC */ sw $a3, 0x4dc($sp) +/* 0CD580 7F098A50 0FC25DED */ jal sub_GAME_7F0977B4 +/* 0CD584 7F098A54 00C02825 */ move $a1, $a2 +/* 0CD588 7F098A58 14400015 */ bnez $v0, .L7F098AB0 +/* 0CD58C 7F098A5C 8FA404D8 */ lw $a0, 0x4d8($sp) +/* 0CD590 7F098A60 0FC25DED */ jal sub_GAME_7F0977B4 +/* 0CD594 7F098A64 8FA504DC */ lw $a1, 0x4dc($sp) +/* 0CD598 7F098A68 14400011 */ bnez $v0, .L7F098AB0 +/* 0CD59C 7F098A6C 8FA404DC */ lw $a0, 0x4dc($sp) +/* 0CD5A0 7F098A70 0FC25DED */ jal sub_GAME_7F0977B4 +/* 0CD5A4 7F098A74 8FA504D4 */ lw $a1, 0x4d4($sp) +/* 0CD5A8 7F098A78 1440000D */ bnez $v0, .L7F098AB0 +/* 0CD5AC 7F098A7C 8FA404E0 */ lw $a0, 0x4e0($sp) +/* 0CD5B0 7F098A80 0FC25DED */ jal sub_GAME_7F0977B4 +/* 0CD5B4 7F098A84 8FA504D4 */ lw $a1, 0x4d4($sp) +/* 0CD5B8 7F098A88 14400009 */ bnez $v0, .L7F098AB0 +/* 0CD5BC 7F098A8C 8FA404E0 */ lw $a0, 0x4e0($sp) +/* 0CD5C0 7F098A90 0FC25DED */ jal sub_GAME_7F0977B4 +/* 0CD5C4 7F098A94 8FA504D8 */ lw $a1, 0x4d8($sp) +/* 0CD5C8 7F098A98 14400005 */ bnez $v0, .L7F098AB0 +/* 0CD5CC 7F098A9C 8FA404E0 */ lw $a0, 0x4e0($sp) +/* 0CD5D0 7F098AA0 0FC25DED */ jal sub_GAME_7F0977B4 +/* 0CD5D4 7F098AA4 8FA504DC */ lw $a1, 0x4dc($sp) +/* 0CD5D8 7F098AA8 10400003 */ beqz $v0, .L7F098AB8 +/* 0CD5DC 7F098AAC C7A404E4 */ lwc1 $f4, 0x4e4($sp) +.L7F098AB0: +/* 0CD5E0 7F098AB0 10000606 */ b .L7F09A2CC +/* 0CD5E4 7F098AB4 02001025 */ move $v0, $s0 +.L7F098AB8: +/* 0CD5E8 7F098AB8 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0CD5EC 7F098ABC 44813000 */ mtc1 $at, $f6 +/* 0CD5F0 7F098AC0 8FA304D4 */ lw $v1, 0x4d4($sp) +/* 0CD5F4 7F098AC4 8FA404DC */ lw $a0, 0x4dc($sp) +/* 0CD5F8 7F098AC8 46062203 */ div.s $f8, $f4, $f6 +/* 0CD5FC 7F098ACC 8FA904D8 */ lw $t1, 0x4d8($sp) +/* 0CD600 7F098AD0 00603825 */ move $a3, $v1 +/* 0CD604 7F098AD4 00804025 */ move $t0, $a0 +/* 0CD608 7F098AD8 01202825 */ move $a1, $t1 +/* 0CD60C 7F098ADC E7A803C0 */ swc1 $f8, 0x3c0($sp) +/* 0CD610 7F098AE0 C46C0028 */ lwc1 $f12, 0x28($v1) +/* 0CD614 7F098AE4 C4840028 */ lwc1 $f4, 0x28($a0) +/* 0CD618 7F098AE8 C460002C */ lwc1 $f0, 0x2c($v1) +/* 0CD61C 7F098AEC C52E002C */ lwc1 $f14, 0x2c($t1) +/* 0CD620 7F098AF0 460C2181 */ sub.s $f6, $f4, $f12 +/* 0CD624 7F098AF4 C52A0028 */ lwc1 $f10, 0x28($t1) +/* 0CD628 7F098AF8 46007081 */ sub.s $f2, $f14, $f0 +/* 0CD62C 7F098AFC E7A604B0 */ swc1 $f6, 0x4b0($sp) +/* 0CD630 7F098B00 C494002C */ lwc1 $f20, 0x2c($a0) +/* 0CD634 7F098B04 C7A804B0 */ lwc1 $f8, 0x4b0($sp) +/* 0CD638 7F098B08 460C5481 */ sub.s $f18, $f10, $f12 +/* 0CD63C 7F098B0C 46024282 */ mul.s $f10, $f8, $f2 +/* 0CD640 7F098B10 4600A401 */ sub.s $f16, $f20, $f0 +/* 0CD644 7F098B14 44814000 */ mtc1 $at, $f8 +/* 0CD648 7F098B18 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CD64C 7F098B1C 46109102 */ mul.s $f4, $f18, $f16 +/* 0CD650 7F098B20 4600703C */ c.lt.s $f14, $f0 +/* 0CD654 7F098B24 46045181 */ sub.s $f6, $f10, $f4 +/* 0CD658 7F098B28 44812000 */ mtc1 $at, $f4 +/* 0CD65C 7F098B2C 46083283 */ div.s $f10, $f6, $f8 +/* 0CD660 7F098B30 460A2183 */ div.s $f6, $f4, $f10 +/* 0CD664 7F098B34 E7AA0054 */ swc1 $f10, 0x54($sp) +/* 0CD668 7F098B38 E7AA0488 */ swc1 $f10, 0x488($sp) +/* 0CD66C 7F098B3C E7A60050 */ swc1 $f6, 0x50($sp) +/* 0CD670 7F098B40 4500000A */ bc1f .L7F098B6C +/* 0CD674 7F098B44 E7A60484 */ swc1 $f6, 0x484($sp) +/* 0CD678 7F098B48 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0CD67C 7F098B4C 44811000 */ mtc1 $at, $f2 +/* 0CD680 7F098B50 00602825 */ move $a1, $v1 +/* 0CD684 7F098B54 01203825 */ move $a3, $t1 +/* 0CD688 7F098B58 46025302 */ mul.s $f12, $f10, $f2 +/* 0CD68C 7F098B5C 00000000 */ nop +/* 0CD690 7F098B60 46023382 */ mul.s $f14, $f6, $f2 +/* 0CD694 7F098B64 E7AC0488 */ swc1 $f12, 0x488($sp) +/* 0CD698 7F098B68 E7AE0484 */ swc1 $f14, 0x484($sp) +.L7F098B6C: +/* 0CD69C 7F098B6C C4A0002C */ lwc1 $f0, 0x2c($a1) +/* 0CD6A0 7F098B70 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0CD6A4 7F098B74 44811000 */ mtc1 $at, $f2 +/* 0CD6A8 7F098B78 4600A03C */ c.lt.s $f20, $f0 +/* 0CD6AC 7F098B7C C7AC0488 */ lwc1 $f12, 0x488($sp) +/* 0CD6B0 7F098B80 C7AE0484 */ lwc1 $f14, 0x484($sp) +/* 0CD6B4 7F098B84 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0CD6B8 7F098B88 45020006 */ bc1fl .L7F098BA4 +/* 0CD6BC 7F098B8C E7AE0484 */ swc1 $f14, 0x484($sp) +/* 0CD6C0 7F098B90 00A04025 */ move $t0, $a1 +/* 0CD6C4 7F098B94 46027382 */ mul.s $f14, $f14, $f2 +/* 0CD6C8 7F098B98 00802825 */ move $a1, $a0 +/* 0CD6CC 7F098B9C C480002C */ lwc1 $f0, 0x2c($a0) +/* 0CD6D0 7F098BA0 E7AE0484 */ swc1 $f14, 0x484($sp) +.L7F098BA4: +/* 0CD6D4 7F098BA4 C4E8002C */ lwc1 $f8, 0x2c($a3) +/* 0CD6D8 7F098BA8 4608003C */ c.lt.s $f0, $f8 +/* 0CD6DC 7F098BAC 44810000 */ mtc1 $at, $f0 +/* 0CD6E0 7F098BB0 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CD6E4 7F098BB4 44815000 */ mtc1 $at, $f10 +/* 0CD6E8 7F098BB8 45020007 */ bc1fl .L7F098BD8 +/* 0CD6EC 7F098BBC C4A40028 */ lwc1 $f4, 0x28($a1) +/* 0CD6F0 7F098BC0 46027382 */ mul.s $f14, $f14, $f2 +/* 0CD6F4 7F098BC4 00A01025 */ move $v0, $a1 +/* 0CD6F8 7F098BC8 00E02825 */ move $a1, $a3 +/* 0CD6FC 7F098BCC 00403825 */ move $a3, $v0 +/* 0CD700 7F098BD0 E7AE0484 */ swc1 $f14, 0x484($sp) +/* 0CD704 7F098BD4 C4A40028 */ lwc1 $f4, 0x28($a1) +.L7F098BD8: +/* 0CD708 7F098BD8 4480A000 */ mtc1 $zero, $f20 +/* 0CD70C 7F098BDC 3C0644EA */ lui $a2, (0x44EAA000 >> 16) # lui $a2, 0x44ea +/* 0CD710 7F098BE0 460A2182 */ mul.s $f6, $f4, $f10 +/* 0CD714 7F098BE4 E7B40468 */ swc1 $f20, 0x468($sp) +/* 0CD718 7F098BE8 44812000 */ mtc1 $at, $f4 +/* 0CD71C 7F098BEC 34C6A000 */ ori $a2, (0x44EAA000 & 0xFFFF) # ori $a2, $a2, 0xa000 +/* 0CD720 7F098BF0 E7A60464 */ swc1 $f6, 0x464($sp) +/* 0CD724 7F098BF4 C4E80028 */ lwc1 $f8, 0x28($a3) +/* 0CD728 7F098BF8 E7B40470 */ swc1 $f20, 0x470($sp) +/* 0CD72C 7F098BFC 46044282 */ mul.s $f10, $f8, $f4 +/* 0CD730 7F098C00 44814000 */ mtc1 $at, $f8 +/* 0CD734 7F098C04 E7AA046C */ swc1 $f10, 0x46c($sp) +/* 0CD738 7F098C08 C4E60028 */ lwc1 $f6, 0x28($a3) +/* 0CD73C 7F098C0C E7B40478 */ swc1 $f20, 0x478($sp) +/* 0CD740 7F098C10 E7B40480 */ swc1 $f20, 0x480($sp) +/* 0CD744 7F098C14 46083102 */ mul.s $f4, $f6, $f8 +/* 0CD748 7F098C18 E7B4047C */ swc1 $f20, 0x47c($sp) +/* 0CD74C 7F098C1C E7A40474 */ swc1 $f4, 0x474($sp) +/* 0CD750 7F098C20 C50A0028 */ lwc1 $f10, 0x28($t0) +/* 0CD754 7F098C24 E7AA048C */ swc1 $f10, 0x48c($sp) +/* 0CD758 7F098C28 C506002C */ lwc1 $f6, 0x2c($t0) +/* 0CD75C 7F098C2C E7A60490 */ swc1 $f6, 0x490($sp) +/* 0CD760 7F098C30 C4A80028 */ lwc1 $f8, 0x28($a1) +/* 0CD764 7F098C34 E7A80494 */ swc1 $f8, 0x494($sp) +/* 0CD768 7F098C38 C4A4002C */ lwc1 $f4, 0x2c($a1) +/* 0CD76C 7F098C3C C7A80494 */ lwc1 $f8, 0x494($sp) +/* 0CD770 7F098C40 E7A40498 */ swc1 $f4, 0x498($sp) +/* 0CD774 7F098C44 C4EA0028 */ lwc1 $f10, 0x28($a3) +/* 0CD778 7F098C48 E7AA049C */ swc1 $f10, 0x49c($sp) +/* 0CD77C 7F098C4C C4E6002C */ lwc1 $f6, 0x2c($a3) +/* 0CD780 7F098C50 C7AA0498 */ lwc1 $f10, 0x498($sp) +/* 0CD784 7F098C54 C7A4049C */ lwc1 $f4, 0x49c($sp) +/* 0CD788 7F098C58 E7A604A0 */ swc1 $f6, 0x4a0($sp) +/* 0CD78C 7F098C5C C7A604A0 */ lwc1 $f6, 0x4a0($sp) +/* 0CD790 7F098C60 E7AA002C */ swc1 $f10, 0x2c($sp) +/* 0CD794 7F098C64 E7A80028 */ swc1 $f8, 0x28($sp) +/* 0CD798 7F098C68 46065081 */ sub.s $f2, $f10, $f6 +/* 0CD79C 7F098C6C C7AA0490 */ lwc1 $f10, 0x490($sp) +/* 0CD7A0 7F098C70 AFA804C4 */ sw $t0, 0x4c4($sp) +/* 0CD7A4 7F098C74 46044481 */ sub.s $f18, $f8, $f4 +/* 0CD7A8 7F098C78 C7A8048C */ lwc1 $f8, 0x48c($sp) +/* 0CD7AC 7F098C7C AFA704CC */ sw $a3, 0x4cc($sp) +/* 0CD7B0 7F098C80 46065401 */ sub.s $f16, $f10, $f6 +/* 0CD7B4 7F098C84 C7A60028 */ lwc1 $f6, 0x28($sp) +/* 0CD7B8 7F098C88 AFA504C8 */ sw $a1, 0x4c8($sp) +/* 0CD7BC 7F098C8C 46044101 */ sub.s $f4, $f8, $f4 +/* 0CD7C0 7F098C90 E7B40440 */ swc1 $f20, 0x440($sp) +/* 0CD7C4 7F098C94 E7B4043C */ swc1 $f20, 0x43c($sp) +/* 0CD7C8 7F098C98 46064301 */ sub.s $f12, $f8, $f6 +/* 0CD7CC 7F098C9C C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 0CD7D0 7F098CA0 44813000 */ mtc1 $at, $f6 +/* 0CD7D4 7F098CA4 E7A404B0 */ swc1 $f4, 0x4b0($sp) +/* 0CD7D8 7F098CA8 46085381 */ sub.s $f14, $f10, $f8 +/* 0CD7DC 7F098CAC 46066282 */ mul.s $f10, $f12, $f6 +/* 0CD7E0 7F098CB0 44814000 */ mtc1 $at, $f8 +/* 0CD7E4 7F098CB4 E7AC04A8 */ swc1 $f12, 0x4a8($sp) +/* 0CD7E8 7F098CB8 E7AE04A4 */ swc1 $f14, 0x4a4($sp) +/* 0CD7EC 7F098CBC 46087182 */ mul.s $f6, $f14, $f8 +/* 0CD7F0 7F098CC0 E7B40420 */ swc1 $f20, 0x420($sp) +/* 0CD7F4 7F098CC4 E7B4041C */ swc1 $f20, 0x41c($sp) +/* 0CD7F8 7F098CC8 E7AA0424 */ swc1 $f10, 0x424($sp) +/* 0CD7FC 7F098CCC 44815000 */ mtc1 $at, $f10 +/* 0CD800 7F098CD0 E7B403E4 */ swc1 $f20, 0x3e4($sp) +/* 0CD804 7F098CD4 E7B403EC */ swc1 $f20, 0x3ec($sp) +/* 0CD808 7F098CD8 460A9202 */ mul.s $f8, $f18, $f10 +/* 0CD80C 7F098CDC E7A60428 */ swc1 $f6, 0x428($sp) +/* 0CD810 7F098CE0 44813000 */ mtc1 $at, $f6 +/* 0CD814 7F098CE4 E7B403F4 */ swc1 $f20, 0x3f4($sp) +/* 0CD818 7F098CE8 E7B40400 */ swc1 $f20, 0x400($sp) +/* 0CD81C 7F098CEC 46061282 */ mul.s $f10, $f2, $f6 +/* 0CD820 7F098CF0 E7B403FC */ swc1 $f20, 0x3fc($sp) +/* 0CD824 7F098CF4 E7A8042C */ swc1 $f8, 0x42c($sp) +/* 0CD828 7F098CF8 44814000 */ mtc1 $at, $f8 +/* 0CD82C 7F098CFC E7B403C4 */ swc1 $f20, 0x3c4($sp) +/* 0CD830 7F098D00 E7B403CC */ swc1 $f20, 0x3cc($sp) +/* 0CD834 7F098D04 46082182 */ mul.s $f6, $f4, $f8 +/* 0CD838 7F098D08 E7AA0430 */ swc1 $f10, 0x430($sp) +/* 0CD83C 7F098D0C 44815000 */ mtc1 $at, $f10 +/* 0CD840 7F098D10 3C018005 */ lui $at, %hi(D_800575F8) +/* 0CD844 7F098D14 E7B403D4 */ swc1 $f20, 0x3d4($sp) +/* 0CD848 7F098D18 460A8202 */ mul.s $f8, $f16, $f10 +/* 0CD84C 7F098D1C E7B403E0 */ swc1 $f20, 0x3e0($sp) +/* 0CD850 7F098D20 E7A60434 */ swc1 $f6, 0x434($sp) +/* 0CD854 7F098D24 46006182 */ mul.s $f6, $f12, $f0 +/* 0CD858 7F098D28 E7B403DC */ swc1 $f20, 0x3dc($sp) +/* 0CD85C 7F098D2C 46007282 */ mul.s $f10, $f14, $f0 +/* 0CD860 7F098D30 E7A80438 */ swc1 $f8, 0x438($sp) +/* 0CD864 7F098D34 C42E75F8 */ lwc1 $f14, %lo(D_800575F8)($at) +/* 0CD868 7F098D38 46009202 */ mul.s $f8, $f18, $f0 +/* 0CD86C 7F098D3C E7A60404 */ swc1 $f6, 0x404($sp) +/* 0CD870 7F098D40 46001182 */ mul.s $f6, $f2, $f0 +/* 0CD874 7F098D44 E7AA0408 */ swc1 $f10, 0x408($sp) +/* 0CD878 7F098D48 46002282 */ mul.s $f10, $f4, $f0 +/* 0CD87C 7F098D4C E7A8040C */ swc1 $f8, 0x40c($sp) +/* 0CD880 7F098D50 46008202 */ mul.s $f8, $f16, $f0 +/* 0CD884 7F098D54 E7A60410 */ swc1 $f6, 0x410($sp) +/* 0CD888 7F098D58 C7A604A4 */ lwc1 $f6, 0x4a4($sp) +/* 0CD88C 7F098D5C E7AA0414 */ swc1 $f10, 0x414($sp) +/* 0CD890 7F098D60 46060283 */ div.s $f10, $f0, $f6 +/* 0CD894 7F098D64 E7A80418 */ swc1 $f8, 0x418($sp) +/* 0CD898 7F098D68 46020203 */ div.s $f8, $f0, $f2 +/* 0CD89C 7F098D6C E7AA03E8 */ swc1 $f10, 0x3e8($sp) +/* 0CD8A0 7F098D70 46100283 */ div.s $f10, $f0, $f16 +/* 0CD8A4 7F098D74 E7A803F0 */ swc1 $f8, 0x3f0($sp) +/* 0CD8A8 7F098D78 C7A804A8 */ lwc1 $f8, 0x4a8($sp) +/* 0CD8AC 7F098D7C 46064303 */ div.s $f12, $f8, $f6 +/* 0CD8B0 7F098D80 E7AA03F8 */ swc1 $f10, 0x3f8($sp) +/* 0CD8B4 7F098D84 46029283 */ div.s $f10, $f18, $f2 +/* 0CD8B8 7F098D88 E7AC03C8 */ swc1 $f12, 0x3c8($sp) +/* 0CD8BC 7F098D8C 46102203 */ div.s $f8, $f4, $f16 +/* 0CD8C0 7F098D90 E7AA03D0 */ swc1 $f10, 0x3d0($sp) +/* 0CD8C4 7F098D94 0FC24F12 */ jal sub_GAME_7F093C48 +/* 0CD8C8 7F098D98 E7A803D8 */ swc1 $f8, 0x3d8($sp) +/* 0CD8CC 7F098D9C 3C018005 */ lui $at, %hi(D_800575FC) +/* 0CD8D0 7F098DA0 3C0644EA */ lui $a2, (0x44EAA000 >> 16) # lui $a2, 0x44ea +/* 0CD8D4 7F098DA4 E7A003C8 */ swc1 $f0, 0x3c8($sp) +/* 0CD8D8 7F098DA8 34C6A000 */ ori $a2, (0x44EAA000 & 0xFFFF) # ori $a2, $a2, 0xa000 +/* 0CD8DC 7F098DAC C42E75FC */ lwc1 $f14, %lo(D_800575FC)($at) +/* 0CD8E0 7F098DB0 0FC24F12 */ jal sub_GAME_7F093C48 +/* 0CD8E4 7F098DB4 C7AC03D0 */ lwc1 $f12, 0x3d0($sp) +/* 0CD8E8 7F098DB8 3C018005 */ lui $at, %hi(D_80057600) +/* 0CD8EC 7F098DBC 3C0644EA */ lui $a2, (0x44EAA000 >> 16) # lui $a2, 0x44ea +/* 0CD8F0 7F098DC0 E7A003D0 */ swc1 $f0, 0x3d0($sp) +/* 0CD8F4 7F098DC4 34C6A000 */ ori $a2, (0x44EAA000 & 0xFFFF) # ori $a2, $a2, 0xa000 +/* 0CD8F8 7F098DC8 C42E7600 */ lwc1 $f14, %lo(D_80057600)($at) +/* 0CD8FC 7F098DCC 0FC24F12 */ jal sub_GAME_7F093C48 +/* 0CD900 7F098DD0 C7AC03D8 */ lwc1 $f12, 0x3d8($sp) +/* 0CD904 7F098DD4 C7A6046C */ lwc1 $f6, 0x46c($sp) +/* 0CD908 7F098DD8 C7AA0474 */ lwc1 $f10, 0x474($sp) +/* 0CD90C 7F098DDC 8FAE04D4 */ lw $t6, 0x4d4($sp) +/* 0CD910 7F098DE0 8FB804D8 */ lw $t8, 0x4d8($sp) +/* 0CD914 7F098DE4 E7A003D8 */ swc1 $f0, 0x3d8($sp) +/* 0CD918 7F098DE8 E7A6044C */ swc1 $f6, 0x44c($sp) +/* 0CD91C 7F098DEC E7AA0454 */ swc1 $f10, 0x454($sp) +/* 0CD920 7F098DF0 C5C40028 */ lwc1 $f4, 0x28($t6) +/* 0CD924 7F098DF4 C7080028 */ lwc1 $f8, 0x28($t8) +/* 0CD928 7F098DF8 4608203C */ c.lt.s $f4, $f8 +/* 0CD92C 7F098DFC 00000000 */ nop +/* 0CD930 7F098E00 45020081 */ bc1fl .L7F099008 +/* 0CD934 7F098E04 8FAE04DC */ lw $t6, 0x4dc($sp) +/* 0CD938 7F098E08 8FB904DC */ lw $t9, 0x4dc($sp) +/* 0CD93C 7F098E0C 8FAF04E0 */ lw $t7, 0x4e0($sp) +/* 0CD940 7F098E10 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CD944 7F098E14 C726002C */ lwc1 $f6, 0x2c($t9) +/* 0CD948 7F098E18 C5EA002C */ lwc1 $f10, 0x2c($t7) +/* 0CD94C 7F098E1C 44814000 */ mtc1 $at, $f8 +/* 0CD950 7F098E20 460A3101 */ sub.s $f4, $f6, $f10 +/* 0CD954 7F098E24 4608203C */ c.lt.s $f4, $f8 +/* 0CD958 7F098E28 00000000 */ nop +/* 0CD95C 7F098E2C 45000004 */ bc1f .L7F098E40 +/* 0CD960 7F098E30 3C018005 */ lui $at, %hi(D_80057604) +/* 0CD964 7F098E34 C4267604 */ lwc1 $f6, %lo(D_80057604)($at) +/* 0CD968 7F098E38 10000010 */ b .L7F098E7C +/* 0CD96C 7F098E3C E7A601BC */ swc1 $f6, 0x1bc($sp) +.L7F098E40: +/* 0CD970 7F098E40 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0CD974 7F098E44 00000000 */ nop +/* 0CD978 7F098E48 8FAE04DC */ lw $t6, 0x4dc($sp) +/* 0CD97C 7F098E4C 8FB804E0 */ lw $t8, 0x4e0($sp) +/* 0CD980 7F098E50 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CD984 7F098E54 C5CA002C */ lwc1 $f10, 0x2c($t6) +/* 0CD988 7F098E58 C704002C */ lwc1 $f4, 0x2c($t8) +/* 0CD98C 7F098E5C 44813000 */ mtc1 $at, $f6 +/* 0CD990 7F098E60 46045201 */ sub.s $f8, $f10, $f4 +/* 0CD994 7F098E64 44812000 */ mtc1 $at, $f4 +/* 0CD998 7F098E68 46064282 */ mul.s $f10, $f8, $f6 +/* 0CD99C 7F098E6C 46040201 */ sub.s $f8, $f0, $f4 +/* 0CD9A0 7F098E70 46004187 */ neg.s $f6, $f8 +/* 0CD9A4 7F098E74 460A3103 */ div.s $f4, $f6, $f10 +/* 0CD9A8 7F098E78 E7A401BC */ swc1 $f4, 0x1bc($sp) +.L7F098E7C: +/* 0CD9AC 7F098E7C 3C05B400 */ lui $a1, 0xb400 +/* 0CD9B0 7F098E80 02001025 */ move $v0, $s0 +/* 0CD9B4 7F098E84 AC450000 */ sw $a1, ($v0) +/* 0CD9B8 7F098E88 8FB904DC */ lw $t9, 0x4dc($sp) +/* 0CD9BC 7F098E8C 3C01CE80 */ lui $at, 0xce80 +/* 0CD9C0 7F098E90 26100008 */ addiu $s0, $s0, 8 +/* 0CD9C4 7F098E94 C728002C */ lwc1 $f8, 0x2c($t9) +/* 0CD9C8 7F098E98 3C19B200 */ lui $t9, 0xb200 +/* 0CD9CC 7F098E9C 02001825 */ move $v1, $s0 +/* 0CD9D0 7F098EA0 4600418D */ trunc.w.s $f6, $f8 +/* 0CD9D4 7F098EA4 26100008 */ addiu $s0, $s0, 8 +/* 0CD9D8 7F098EA8 02002025 */ move $a0, $s0 +/* 0CD9DC 7F098EAC 26100008 */ addiu $s0, $s0, 8 +/* 0CD9E0 7F098EB0 440E3000 */ mfc1 $t6, $f6 +/* 0CD9E4 7F098EB4 00000000 */ nop +/* 0CD9E8 7F098EB8 01C1C025 */ or $t8, $t6, $at +/* 0CD9EC 7F098EBC AC580004 */ sw $t8, 4($v0) +/* 0CD9F0 7F098EC0 AC790000 */ sw $t9, ($v1) +/* 0CD9F4 7F098EC4 8FAF04E0 */ lw $t7, 0x4e0($sp) +/* 0CD9F8 7F098EC8 C5EA002C */ lwc1 $f10, 0x2c($t7) +/* 0CD9FC 7F098ECC 8FAF04D4 */ lw $t7, 0x4d4($sp) +/* 0CDA00 7F098ED0 4600510D */ trunc.w.s $f4, $f10 +/* 0CDA04 7F098ED4 C5E8002C */ lwc1 $f8, 0x2c($t7) +/* 0CDA08 7F098ED8 4600418D */ trunc.w.s $f6, $f8 +/* 0CDA0C 7F098EDC 44182000 */ mfc1 $t8, $f4 +/* 0CDA10 7F098EE0 00000000 */ nop +/* 0CDA14 7F098EE4 0018CC00 */ sll $t9, $t8, 0x10 +/* 0CDA18 7F098EE8 44183000 */ mfc1 $t8, $f6 +/* 0CDA1C 7F098EEC 00000000 */ nop +/* 0CDA20 7F098EF0 03387825 */ or $t7, $t9, $t8 +/* 0CDA24 7F098EF4 AC6F0004 */ sw $t7, 4($v1) +/* 0CDA28 7F098EF8 AC850000 */ sw $a1, ($a0) +/* 0CDA2C 7F098EFC 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CDA30 7F098F00 AFA401B0 */ sw $a0, 0x1b0($sp) +/* 0CDA34 7F098F04 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0CDA38 7F098F08 E7A0005C */ swc1 $f0, 0x5c($sp) +/* 0CDA3C 7F098F0C C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 0CDA40 7F098F10 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CDA44 7F098F14 44814000 */ mtc1 $at, $f8 +/* 0CDA48 7F098F18 460A0100 */ add.s $f4, $f0, $f10 +/* 0CDA4C 7F098F1C 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CDA50 7F098F20 46082301 */ sub.s $f12, $f4, $f8 +/* 0CDA54 7F098F24 8FAE01B0 */ lw $t6, 0x1b0($sp) +/* 0CDA58 7F098F28 02001825 */ move $v1, $s0 +/* 0CDA5C 7F098F2C 3C19B200 */ lui $t9, 0xb200 +/* 0CDA60 7F098F30 ADC20004 */ sw $v0, 4($t6) +/* 0CDA64 7F098F34 AC790000 */ sw $t9, ($v1) +/* 0CDA68 7F098F38 AFA301AC */ sw $v1, 0x1ac($sp) +/* 0CDA6C 7F098F3C C7AC01BC */ lwc1 $f12, 0x1bc($sp) +/* 0CDA70 7F098F40 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CDA74 7F098F44 26100008 */ addiu $s0, $s0, 8 +/* 0CDA78 7F098F48 8FA301AC */ lw $v1, 0x1ac($sp) +/* 0CDA7C 7F098F4C 02002025 */ move $a0, $s0 +/* 0CDA80 7F098F50 3C18B400 */ lui $t8, 0xb400 +/* 0CDA84 7F098F54 AC620004 */ sw $v0, 4($v1) +/* 0CDA88 7F098F58 AC980000 */ sw $t8, ($a0) +/* 0CDA8C 7F098F5C AFA401A8 */ sw $a0, 0x1a8($sp) +/* 0CDA90 7F098F60 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CDA94 7F098F64 26100008 */ addiu $s0, $s0, 8 +/* 0CDA98 7F098F68 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CDA9C 7F098F6C 46000306 */ mov.s $f12, $f0 +/* 0CDAA0 7F098F70 8FAF01A8 */ lw $t7, 0x1a8($sp) +/* 0CDAA4 7F098F74 02001825 */ move $v1, $s0 +/* 0CDAA8 7F098F78 3C0EB200 */ lui $t6, 0xb200 +/* 0CDAAC 7F098F7C ADE20004 */ sw $v0, 4($t7) +/* 0CDAB0 7F098F80 AC6E0000 */ sw $t6, ($v1) +/* 0CDAB4 7F098F84 AFA301A4 */ sw $v1, 0x1a4($sp) +/* 0CDAB8 7F098F88 26100008 */ addiu $s0, $s0, 8 +/* 0CDABC 7F098F8C 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CDAC0 7F098F90 4600A306 */ mov.s $f12, $f20 +/* 0CDAC4 7F098F94 8FA301A4 */ lw $v1, 0x1a4($sp) +/* 0CDAC8 7F098F98 02002025 */ move $a0, $s0 +/* 0CDACC 7F098F9C 3C19B400 */ lui $t9, 0xb400 +/* 0CDAD0 7F098FA0 AC620004 */ sw $v0, 4($v1) +/* 0CDAD4 7F098FA4 AC990000 */ sw $t9, ($a0) +/* 0CDAD8 7F098FA8 AFA401A0 */ sw $a0, 0x1a0($sp) +/* 0CDADC 7F098FAC 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CDAE0 7F098FB0 26100008 */ addiu $s0, $s0, 8 +/* 0CDAE4 7F098FB4 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0CDAE8 7F098FB8 E7A0005C */ swc1 $f0, 0x5c($sp) +/* 0CDAEC 7F098FBC C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 0CDAF0 7F098FC0 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CDAF4 7F098FC4 44812000 */ mtc1 $at, $f4 +/* 0CDAF8 7F098FC8 46060280 */ add.s $f10, $f0, $f6 +/* 0CDAFC 7F098FCC 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CDB00 7F098FD0 46045301 */ sub.s $f12, $f10, $f4 +/* 0CDB04 7F098FD4 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 0CDB08 7F098FD8 02001825 */ move $v1, $s0 +/* 0CDB0C 7F098FDC 3C0FB200 */ lui $t7, 0xb200 +/* 0CDB10 7F098FE0 AF020004 */ sw $v0, 4($t8) +/* 0CDB14 7F098FE4 AC6F0000 */ sw $t7, ($v1) +/* 0CDB18 7F098FE8 AFA3019C */ sw $v1, 0x19c($sp) +/* 0CDB1C 7F098FEC 26100008 */ addiu $s0, $s0, 8 +/* 0CDB20 7F098FF0 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CDB24 7F098FF4 4600A306 */ mov.s $f12, $f20 +/* 0CDB28 7F098FF8 8FA3019C */ lw $v1, 0x19c($sp) +/* 0CDB2C 7F098FFC 10000078 */ b .L7F0991E0 +/* 0CDB30 7F099000 AC620004 */ sw $v0, 4($v1) +/* 0CDB34 7F099004 8FAE04DC */ lw $t6, 0x4dc($sp) +.L7F099008: +/* 0CDB38 7F099008 8FB904E0 */ lw $t9, 0x4e0($sp) +/* 0CDB3C 7F09900C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CDB40 7F099010 C5C8002C */ lwc1 $f8, 0x2c($t6) +/* 0CDB44 7F099014 C726002C */ lwc1 $f6, 0x2c($t9) +/* 0CDB48 7F099018 44812000 */ mtc1 $at, $f4 +/* 0CDB4C 7F09901C 46064281 */ sub.s $f10, $f8, $f6 +/* 0CDB50 7F099020 4604503C */ c.lt.s $f10, $f4 +/* 0CDB54 7F099024 00000000 */ nop +/* 0CDB58 7F099028 45000003 */ bc1f .L7F099038 +/* 0CDB5C 7F09902C 3C018005 */ lui $at, %hi(D_80057608) +/* 0CDB60 7F099030 1000000E */ b .L7F09906C +/* 0CDB64 7F099034 C42E7608 */ lwc1 $f14, %lo(D_80057608)($at) +.L7F099038: +/* 0CDB68 7F099038 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0CDB6C 7F09903C 00000000 */ nop +/* 0CDB70 7F099040 8FB804DC */ lw $t8, 0x4dc($sp) +/* 0CDB74 7F099044 8FAF04E0 */ lw $t7, 0x4e0($sp) +/* 0CDB78 7F099048 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CDB7C 7F09904C C708002C */ lwc1 $f8, 0x2c($t8) +/* 0CDB80 7F099050 C5E6002C */ lwc1 $f6, 0x2c($t7) +/* 0CDB84 7F099054 44812000 */ mtc1 $at, $f4 +/* 0CDB88 7F099058 46064281 */ sub.s $f10, $f8, $f6 +/* 0CDB8C 7F09905C 44813000 */ mtc1 $at, $f6 +/* 0CDB90 7F099060 46045202 */ mul.s $f8, $f10, $f4 +/* 0CDB94 7F099064 46060281 */ sub.s $f10, $f0, $f6 +/* 0CDB98 7F099068 46085383 */ div.s $f14, $f10, $f8 +.L7F09906C: +/* 0CDB9C 7F09906C 02001025 */ move $v0, $s0 +/* 0CDBA0 7F099070 3C0EB400 */ lui $t6, 0xb400 +/* 0CDBA4 7F099074 AC4E0000 */ sw $t6, ($v0) +/* 0CDBA8 7F099078 8FB904DC */ lw $t9, 0x4dc($sp) +/* 0CDBAC 7F09907C 3C01CE00 */ lui $at, 0xce00 +/* 0CDBB0 7F099080 26100008 */ addiu $s0, $s0, 8 +/* 0CDBB4 7F099084 C724002C */ lwc1 $f4, 0x2c($t9) +/* 0CDBB8 7F099088 3C19B200 */ lui $t9, 0xb200 +/* 0CDBBC 7F09908C 02001825 */ move $v1, $s0 +/* 0CDBC0 7F099090 4600218D */ trunc.w.s $f6, $f4 +/* 0CDBC4 7F099094 26100008 */ addiu $s0, $s0, 8 +/* 0CDBC8 7F099098 02002025 */ move $a0, $s0 +/* 0CDBCC 7F09909C 26100008 */ addiu $s0, $s0, 8 +/* 0CDBD0 7F0990A0 440F3000 */ mfc1 $t7, $f6 +/* 0CDBD4 7F0990A4 00000000 */ nop +/* 0CDBD8 7F0990A8 01E17025 */ or $t6, $t7, $at +/* 0CDBDC 7F0990AC AC4E0004 */ sw $t6, 4($v0) +/* 0CDBE0 7F0990B0 AC790000 */ sw $t9, ($v1) +/* 0CDBE4 7F0990B4 8FB804E0 */ lw $t8, 0x4e0($sp) +/* 0CDBE8 7F0990B8 3C0FB400 */ lui $t7, 0xb400 +/* 0CDBEC 7F0990BC C70A002C */ lwc1 $f10, 0x2c($t8) +/* 0CDBF0 7F0990C0 8FB804D4 */ lw $t8, 0x4d4($sp) +/* 0CDBF4 7F0990C4 4600520D */ trunc.w.s $f8, $f10 +/* 0CDBF8 7F0990C8 C704002C */ lwc1 $f4, 0x2c($t8) +/* 0CDBFC 7F0990CC 4600218D */ trunc.w.s $f6, $f4 +/* 0CDC00 7F0990D0 440E4000 */ mfc1 $t6, $f8 +/* 0CDC04 7F0990D4 00000000 */ nop +/* 0CDC08 7F0990D8 000ECC00 */ sll $t9, $t6, 0x10 +/* 0CDC0C 7F0990DC 440E3000 */ mfc1 $t6, $f6 +/* 0CDC10 7F0990E0 00000000 */ nop +/* 0CDC14 7F0990E4 032EC025 */ or $t8, $t9, $t6 +/* 0CDC18 7F0990E8 AC780004 */ sw $t8, 4($v1) +/* 0CDC1C 7F0990EC AC8F0000 */ sw $t7, ($a0) +/* 0CDC20 7F0990F0 E7AE0198 */ swc1 $f14, 0x198($sp) +/* 0CDC24 7F0990F4 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CDC28 7F0990F8 AFA4018C */ sw $a0, 0x18c($sp) +/* 0CDC2C 7F0990FC 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CDC30 7F099100 46000306 */ mov.s $f12, $f0 +/* 0CDC34 7F099104 8FB9018C */ lw $t9, 0x18c($sp) +/* 0CDC38 7F099108 C7AC0198 */ lwc1 $f12, 0x198($sp) +/* 0CDC3C 7F09910C 02001825 */ move $v1, $s0 +/* 0CDC40 7F099110 3C0EB200 */ lui $t6, 0xb200 +/* 0CDC44 7F099114 AF220004 */ sw $v0, 4($t9) +/* 0CDC48 7F099118 AC6E0000 */ sw $t6, ($v1) +/* 0CDC4C 7F09911C AFA30188 */ sw $v1, 0x188($sp) +/* 0CDC50 7F099120 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CDC54 7F099124 26100008 */ addiu $s0, $s0, 8 +/* 0CDC58 7F099128 8FA30188 */ lw $v1, 0x188($sp) +/* 0CDC5C 7F09912C 02002025 */ move $a0, $s0 +/* 0CDC60 7F099130 3C18B400 */ lui $t8, 0xb400 +/* 0CDC64 7F099134 AC620004 */ sw $v0, 4($v1) +/* 0CDC68 7F099138 AC980000 */ sw $t8, ($a0) +/* 0CDC6C 7F09913C AFA40184 */ sw $a0, 0x184($sp) +/* 0CDC70 7F099140 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CDC74 7F099144 26100008 */ addiu $s0, $s0, 8 +/* 0CDC78 7F099148 0FC1E129 */ jal getPlayer_c_screenwidth +/* 0CDC7C 7F09914C E7A0005C */ swc1 $f0, 0x5c($sp) +/* 0CDC80 7F099150 C7AA005C */ lwc1 $f10, 0x5c($sp) +/* 0CDC84 7F099154 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CDC88 7F099158 44812000 */ mtc1 $at, $f4 +/* 0CDC8C 7F09915C 460A0200 */ add.s $f8, $f0, $f10 +/* 0CDC90 7F099160 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CDC94 7F099164 46044301 */ sub.s $f12, $f8, $f4 +/* 0CDC98 7F099168 8FAF0184 */ lw $t7, 0x184($sp) +/* 0CDC9C 7F09916C 02001825 */ move $v1, $s0 +/* 0CDCA0 7F099170 3C19B200 */ lui $t9, 0xb200 +/* 0CDCA4 7F099174 ADE20004 */ sw $v0, 4($t7) +/* 0CDCA8 7F099178 AC790000 */ sw $t9, ($v1) +/* 0CDCAC 7F09917C AFA30180 */ sw $v1, 0x180($sp) +/* 0CDCB0 7F099180 26100008 */ addiu $s0, $s0, 8 +/* 0CDCB4 7F099184 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CDCB8 7F099188 4600A306 */ mov.s $f12, $f20 +/* 0CDCBC 7F09918C 8FA30180 */ lw $v1, 0x180($sp) +/* 0CDCC0 7F099190 02002025 */ move $a0, $s0 +/* 0CDCC4 7F099194 3C0EB400 */ lui $t6, 0xb400 +/* 0CDCC8 7F099198 AC620004 */ sw $v0, 4($v1) +/* 0CDCCC 7F09919C AC8E0000 */ sw $t6, ($a0) +/* 0CDCD0 7F0991A0 AFA4017C */ sw $a0, 0x17c($sp) +/* 0CDCD4 7F0991A4 0FC1E131 */ jal getPlayer_c_screenleft +/* 0CDCD8 7F0991A8 26100008 */ addiu $s0, $s0, 8 +/* 0CDCDC 7F0991AC 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CDCE0 7F0991B0 46000306 */ mov.s $f12, $f0 +/* 0CDCE4 7F0991B4 8FB8017C */ lw $t8, 0x17c($sp) +/* 0CDCE8 7F0991B8 02001825 */ move $v1, $s0 +/* 0CDCEC 7F0991BC 3C0FB200 */ lui $t7, 0xb200 +/* 0CDCF0 7F0991C0 AF020004 */ sw $v0, 4($t8) +/* 0CDCF4 7F0991C4 AC6F0000 */ sw $t7, ($v1) +/* 0CDCF8 7F0991C8 AFA30178 */ sw $v1, 0x178($sp) +/* 0CDCFC 7F0991CC 26100008 */ addiu $s0, $s0, 8 +/* 0CDD00 7F0991D0 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CDD04 7F0991D4 4600A306 */ mov.s $f12, $f20 +/* 0CDD08 7F0991D8 8FA30178 */ lw $v1, 0x178($sp) +/* 0CDD0C 7F0991DC AC620004 */ sw $v0, 4($v1) +.L7F0991E0: +/* 0CDD10 7F0991E0 8FA804CC */ lw $t0, 0x4cc($sp) +/* 0CDD14 7F0991E4 C7A003C0 */ lwc1 $f0, 0x3c0($sp) +/* 0CDD18 7F0991E8 8FA704C8 */ lw $a3, 0x4c8($sp) +/* 0CDD1C 7F0991EC C506000C */ lwc1 $f6, 0xc($t0) +/* 0CDD20 7F0991F0 8FA904C4 */ lw $t1, 0x4c4($sp) +/* 0CDD24 7F0991F4 8FAB04E0 */ lw $t3, 0x4e0($sp) +/* 0CDD28 7F0991F8 46003282 */ mul.s $f10, $f6, $f0 +/* 0CDD2C 7F0991FC 3C018005 */ lui $at, %hi(D_8005760C) +/* 0CDD30 7F099200 E7AA03B0 */ swc1 $f10, 0x3b0($sp) +/* 0CDD34 7F099204 C4E8000C */ lwc1 $f8, 0xc($a3) +/* 0CDD38 7F099208 C7B003B0 */ lwc1 $f16, 0x3b0($sp) +/* 0CDD3C 7F09920C 46004102 */ mul.s $f4, $f8, $f0 +/* 0CDD40 7F099210 E7A403B4 */ swc1 $f4, 0x3b4($sp) +/* 0CDD44 7F099214 C526000C */ lwc1 $f6, 0xc($t1) +/* 0CDD48 7F099218 46003282 */ mul.s $f10, $f6, $f0 +/* 0CDD4C 7F09921C C7A603B4 */ lwc1 $f6, 0x3b4($sp) +/* 0CDD50 7F099220 4610303C */ c.lt.s $f6, $f16 +/* 0CDD54 7F099224 E7AA03B8 */ swc1 $f10, 0x3b8($sp) +/* 0CDD58 7F099228 C568000C */ lwc1 $f8, 0xc($t3) +/* 0CDD5C 7F09922C 46004102 */ mul.s $f4, $f8, $f0 +/* 0CDD60 7F099230 C7A003B8 */ lwc1 $f0, 0x3b8($sp) +/* 0CDD64 7F099234 45000002 */ bc1f .L7F099240 +/* 0CDD68 7F099238 E7A403BC */ swc1 $f4, 0x3bc($sp) +/* 0CDD6C 7F09923C 46003406 */ mov.s $f16, $f6 +.L7F099240: +/* 0CDD70 7F099240 4610003C */ c.lt.s $f0, $f16 +/* 0CDD74 7F099244 00000000 */ nop +/* 0CDD78 7F099248 45020003 */ bc1fl .L7F099258 +/* 0CDD7C 7F09924C C7A003BC */ lwc1 $f0, 0x3bc($sp) +/* 0CDD80 7F099250 46000406 */ mov.s $f16, $f0 +/* 0CDD84 7F099254 C7A003BC */ lwc1 $f0, 0x3bc($sp) +.L7F099258: +/* 0CDD88 7F099258 4610003C */ c.lt.s $f0, $f16 +/* 0CDD8C 7F09925C 00000000 */ nop +/* 0CDD90 7F099260 45000002 */ bc1f .L7F09926C +/* 0CDD94 7F099264 00000000 */ nop +/* 0CDD98 7F099268 46000406 */ mov.s $f16, $f0 +.L7F09926C: +/* 0CDD9C 7F09926C C420760C */ lwc1 $f0, %lo(D_8005760C)($at) +/* 0CDDA0 7F099270 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0CDDA4 7F099274 44815000 */ mtc1 $at, $f10 +/* 0CDDA8 7F099278 C5080034 */ lwc1 $f8, 0x34($t0) +/* 0CDDAC 7F09927C 460A8402 */ mul.s $f16, $f16, $f10 +/* 0CDDB0 7F099280 00000000 */ nop +/* 0CDDB4 7F099284 46104102 */ mul.s $f4, $f8, $f16 +/* 0CDDB8 7F099288 E7A4039C */ swc1 $f4, 0x39c($sp) +/* 0CDDBC 7F09928C C4E60034 */ lwc1 $f6, 0x34($a3) +/* 0CDDC0 7F099290 46103282 */ mul.s $f10, $f6, $f16 +/* 0CDDC4 7F099294 E7AA03A0 */ swc1 $f10, 0x3a0($sp) +/* 0CDDC8 7F099298 C5280034 */ lwc1 $f8, 0x34($t1) +/* 0CDDCC 7F09929C 46104102 */ mul.s $f4, $f8, $f16 +/* 0CDDD0 7F0992A0 C7A8039C */ lwc1 $f8, 0x39c($sp) +/* 0CDDD4 7F0992A4 E7A403A4 */ swc1 $f4, 0x3a4($sp) +/* 0CDDD8 7F0992A8 C5660034 */ lwc1 $f6, 0x34($t3) +/* 0CDDDC 7F0992AC 46103282 */ mul.s $f10, $f6, $f16 +/* 0CDDE0 7F0992B0 E7AA03A8 */ swc1 $f10, 0x3a8($sp) +/* 0CDDE4 7F0992B4 C5040020 */ lwc1 $f4, 0x20($t0) +/* 0CDDE8 7F0992B8 46044182 */ mul.s $f6, $f8, $f4 +/* 0CDDEC 7F0992BC E7A6036C */ swc1 $f6, 0x36c($sp) +/* 0CDDF0 7F0992C0 C50A0024 */ lwc1 $f10, 0x24($t0) +/* 0CDDF4 7F0992C4 4606A03E */ c.le.s $f20, $f6 +/* 0CDDF8 7F0992C8 460A4102 */ mul.s $f4, $f8, $f10 +/* 0CDDFC 7F0992CC 00000000 */ nop +/* 0CDE00 7F0992D0 46004282 */ mul.s $f10, $f8, $f0 +/* 0CDE04 7F0992D4 E7A40370 */ swc1 $f4, 0x370($sp) +/* 0CDE08 7F0992D8 C7A403A0 */ lwc1 $f4, 0x3a0($sp) +/* 0CDE0C 7F0992DC E7AA0374 */ swc1 $f10, 0x374($sp) +/* 0CDE10 7F0992E0 C4E80020 */ lwc1 $f8, 0x20($a3) +/* 0CDE14 7F0992E4 46082282 */ mul.s $f10, $f4, $f8 +/* 0CDE18 7F0992E8 E7AA0378 */ swc1 $f10, 0x378($sp) +/* 0CDE1C 7F0992EC C4E80024 */ lwc1 $f8, 0x24($a3) +/* 0CDE20 7F0992F0 46082282 */ mul.s $f10, $f4, $f8 +/* 0CDE24 7F0992F4 00000000 */ nop +/* 0CDE28 7F0992F8 46002202 */ mul.s $f8, $f4, $f0 +/* 0CDE2C 7F0992FC E7AA037C */ swc1 $f10, 0x37c($sp) +/* 0CDE30 7F099300 C7AA03A4 */ lwc1 $f10, 0x3a4($sp) +/* 0CDE34 7F099304 E7A80380 */ swc1 $f8, 0x380($sp) +/* 0CDE38 7F099308 C5240020 */ lwc1 $f4, 0x20($t1) +/* 0CDE3C 7F09930C 46045202 */ mul.s $f8, $f10, $f4 +/* 0CDE40 7F099310 E7A80384 */ swc1 $f8, 0x384($sp) +/* 0CDE44 7F099314 C5240024 */ lwc1 $f4, 0x24($t1) +/* 0CDE48 7F099318 46045202 */ mul.s $f8, $f10, $f4 +/* 0CDE4C 7F09931C 00000000 */ nop +/* 0CDE50 7F099320 46005102 */ mul.s $f4, $f10, $f0 +/* 0CDE54 7F099324 E7A80388 */ swc1 $f8, 0x388($sp) +/* 0CDE58 7F099328 C7A803A8 */ lwc1 $f8, 0x3a8($sp) +/* 0CDE5C 7F09932C E7A4038C */ swc1 $f4, 0x38c($sp) +/* 0CDE60 7F099330 C56A0020 */ lwc1 $f10, 0x20($t3) +/* 0CDE64 7F099334 460A4102 */ mul.s $f4, $f8, $f10 +/* 0CDE68 7F099338 C7A803A8 */ lwc1 $f8, 0x3a8($sp) +/* 0CDE6C 7F09933C E7A40390 */ swc1 $f4, 0x390($sp) +/* 0CDE70 7F099340 C56A0024 */ lwc1 $f10, 0x24($t3) +/* 0CDE74 7F099344 460A4102 */ mul.s $f4, $f8, $f10 +/* 0CDE78 7F099348 C7A803A8 */ lwc1 $f8, 0x3a8($sp) +/* 0CDE7C 7F09934C 46004282 */ mul.s $f10, $f8, $f0 +/* 0CDE80 7F099350 C7A00370 */ lwc1 $f0, 0x370($sp) +/* 0CDE84 7F099354 E7A40394 */ swc1 $f4, 0x394($sp) +/* 0CDE88 7F099358 45000003 */ bc1f .L7F099368 +/* 0CDE8C 7F09935C E7AA0398 */ swc1 $f10, 0x398($sp) +/* 0CDE90 7F099360 10000003 */ b .L7F099370 +/* 0CDE94 7F099364 46003086 */ mov.s $f2, $f6 +.L7F099368: +/* 0CDE98 7F099368 C7A2036C */ lwc1 $f2, 0x36c($sp) +/* 0CDE9C 7F09936C 46001087 */ neg.s $f2, $f2 +.L7F099370: +/* 0CDEA0 7F099370 4600A03E */ c.le.s $f20, $f0 +/* 0CDEA4 7F099374 00000000 */ nop +/* 0CDEA8 7F099378 45020004 */ bc1fl .L7F09938C +/* 0CDEAC 7F09937C 46000387 */ neg.s $f14, $f0 +/* 0CDEB0 7F099380 10000002 */ b .L7F09938C +/* 0CDEB4 7F099384 46000386 */ mov.s $f14, $f0 +/* 0CDEB8 7F099388 46000387 */ neg.s $f14, $f0 +.L7F09938C: +/* 0CDEBC 7F09938C C7A00378 */ lwc1 $f0, 0x378($sp) +/* 0CDEC0 7F099390 4600A03E */ c.le.s $f20, $f0 +/* 0CDEC4 7F099394 00000000 */ nop +/* 0CDEC8 7F099398 45020004 */ bc1fl .L7F0993AC +/* 0CDECC 7F09939C 46000307 */ neg.s $f12, $f0 +/* 0CDED0 7F0993A0 10000002 */ b .L7F0993AC +/* 0CDED4 7F0993A4 46000306 */ mov.s $f12, $f0 +/* 0CDED8 7F0993A8 46000307 */ neg.s $f12, $f0 +.L7F0993AC: +/* 0CDEDC 7F0993AC 460C103C */ c.lt.s $f2, $f12 +/* 0CDEE0 7F0993B0 00000000 */ nop +/* 0CDEE4 7F0993B4 45020009 */ bc1fl .L7F0993DC +/* 0CDEE8 7F0993B8 C7A0037C */ lwc1 $f0, 0x37c($sp) +/* 0CDEEC 7F0993BC 4600A03E */ c.le.s $f20, $f0 +/* 0CDEF0 7F0993C0 00000000 */ nop +/* 0CDEF4 7F0993C4 45020004 */ bc1fl .L7F0993D8 +/* 0CDEF8 7F0993C8 46000087 */ neg.s $f2, $f0 +/* 0CDEFC 7F0993CC 10000002 */ b .L7F0993D8 +/* 0CDF00 7F0993D0 46000086 */ mov.s $f2, $f0 +/* 0CDF04 7F0993D4 46000087 */ neg.s $f2, $f0 +.L7F0993D8: +/* 0CDF08 7F0993D8 C7A0037C */ lwc1 $f0, 0x37c($sp) +.L7F0993DC: +/* 0CDF0C 7F0993DC 4600A03E */ c.le.s $f20, $f0 +/* 0CDF10 7F0993E0 00000000 */ nop +/* 0CDF14 7F0993E4 45020004 */ bc1fl .L7F0993F8 +/* 0CDF18 7F0993E8 46000307 */ neg.s $f12, $f0 +/* 0CDF1C 7F0993EC 10000002 */ b .L7F0993F8 +/* 0CDF20 7F0993F0 46000306 */ mov.s $f12, $f0 +/* 0CDF24 7F0993F4 46000307 */ neg.s $f12, $f0 +.L7F0993F8: +/* 0CDF28 7F0993F8 460C703C */ c.lt.s $f14, $f12 +/* 0CDF2C 7F0993FC E7B003AC */ swc1 $f16, 0x3ac($sp) +/* 0CDF30 7F099400 4502000B */ bc1fl .L7F099430 +/* 0CDF34 7F099404 C7A00384 */ lwc1 $f0, 0x384($sp) +/* 0CDF38 7F099408 4600A03E */ c.le.s $f20, $f0 +/* 0CDF3C 7F09940C 00000000 */ nop +/* 0CDF40 7F099410 45020005 */ bc1fl .L7F099428 +/* 0CDF44 7F099414 46000387 */ neg.s $f14, $f0 +/* 0CDF48 7F099418 46000386 */ mov.s $f14, $f0 +/* 0CDF4C 7F09941C 10000003 */ b .L7F09942C +/* 0CDF50 7F099420 E7B003AC */ swc1 $f16, 0x3ac($sp) +/* 0CDF54 7F099424 46000387 */ neg.s $f14, $f0 +.L7F099428: +/* 0CDF58 7F099428 E7B003AC */ swc1 $f16, 0x3ac($sp) +.L7F09942C: +/* 0CDF5C 7F09942C C7A00384 */ lwc1 $f0, 0x384($sp) +.L7F099430: +/* 0CDF60 7F099430 4600A03E */ c.le.s $f20, $f0 +/* 0CDF64 7F099434 00000000 */ nop +/* 0CDF68 7F099438 45020004 */ bc1fl .L7F09944C +/* 0CDF6C 7F09943C 46000307 */ neg.s $f12, $f0 +/* 0CDF70 7F099440 10000002 */ b .L7F09944C +/* 0CDF74 7F099444 46000306 */ mov.s $f12, $f0 +/* 0CDF78 7F099448 46000307 */ neg.s $f12, $f0 +.L7F09944C: +/* 0CDF7C 7F09944C 460C103C */ c.lt.s $f2, $f12 +/* 0CDF80 7F099450 00000000 */ nop +/* 0CDF84 7F099454 45020009 */ bc1fl .L7F09947C +/* 0CDF88 7F099458 C7A00388 */ lwc1 $f0, 0x388($sp) +/* 0CDF8C 7F09945C 4600A03E */ c.le.s $f20, $f0 +/* 0CDF90 7F099460 00000000 */ nop +/* 0CDF94 7F099464 45020004 */ bc1fl .L7F099478 +/* 0CDF98 7F099468 46000087 */ neg.s $f2, $f0 +/* 0CDF9C 7F09946C 10000002 */ b .L7F099478 +/* 0CDFA0 7F099470 46000086 */ mov.s $f2, $f0 +/* 0CDFA4 7F099474 46000087 */ neg.s $f2, $f0 +.L7F099478: +/* 0CDFA8 7F099478 C7A00388 */ lwc1 $f0, 0x388($sp) +.L7F09947C: +/* 0CDFAC 7F09947C 4600A03E */ c.le.s $f20, $f0 +/* 0CDFB0 7F099480 00000000 */ nop +/* 0CDFB4 7F099484 45020004 */ bc1fl .L7F099498 +/* 0CDFB8 7F099488 46000307 */ neg.s $f12, $f0 +/* 0CDFBC 7F09948C 10000002 */ b .L7F099498 +/* 0CDFC0 7F099490 46000306 */ mov.s $f12, $f0 +/* 0CDFC4 7F099494 46000307 */ neg.s $f12, $f0 +.L7F099498: +/* 0CDFC8 7F099498 460C703C */ c.lt.s $f14, $f12 +/* 0CDFCC 7F09949C 00000000 */ nop +/* 0CDFD0 7F0994A0 45020009 */ bc1fl .L7F0994C8 +/* 0CDFD4 7F0994A4 C7A00390 */ lwc1 $f0, 0x390($sp) +/* 0CDFD8 7F0994A8 4600A03E */ c.le.s $f20, $f0 +/* 0CDFDC 7F0994AC 00000000 */ nop +/* 0CDFE0 7F0994B0 45020004 */ bc1fl .L7F0994C4 +/* 0CDFE4 7F0994B4 46000387 */ neg.s $f14, $f0 +/* 0CDFE8 7F0994B8 10000002 */ b .L7F0994C4 +/* 0CDFEC 7F0994BC 46000386 */ mov.s $f14, $f0 +/* 0CDFF0 7F0994C0 46000387 */ neg.s $f14, $f0 +.L7F0994C4: +/* 0CDFF4 7F0994C4 C7A00390 */ lwc1 $f0, 0x390($sp) +.L7F0994C8: +/* 0CDFF8 7F0994C8 4600A03E */ c.le.s $f20, $f0 +/* 0CDFFC 7F0994CC 00000000 */ nop +/* 0CE000 7F0994D0 45020004 */ bc1fl .L7F0994E4 +/* 0CE004 7F0994D4 46000307 */ neg.s $f12, $f0 +/* 0CE008 7F0994D8 10000002 */ b .L7F0994E4 +/* 0CE00C 7F0994DC 46000306 */ mov.s $f12, $f0 +/* 0CE010 7F0994E0 46000307 */ neg.s $f12, $f0 +.L7F0994E4: +/* 0CE014 7F0994E4 460C103C */ c.lt.s $f2, $f12 +/* 0CE018 7F0994E8 E7A20364 */ swc1 $f2, 0x364($sp) +/* 0CE01C 7F0994EC 4502000A */ bc1fl .L7F099518 +/* 0CE020 7F0994F0 C7A00394 */ lwc1 $f0, 0x394($sp) +/* 0CE024 7F0994F4 4600A03E */ c.le.s $f20, $f0 +/* 0CE028 7F0994F8 00000000 */ nop +/* 0CE02C 7F0994FC 45020004 */ bc1fl .L7F099510 +/* 0CE030 7F099500 46000087 */ neg.s $f2, $f0 +/* 0CE034 7F099504 10000003 */ b .L7F099514 +/* 0CE038 7F099508 E7A00364 */ swc1 $f0, 0x364($sp) +/* 0CE03C 7F09950C 46000087 */ neg.s $f2, $f0 +.L7F099510: +/* 0CE040 7F099510 E7A20364 */ swc1 $f2, 0x364($sp) +.L7F099514: +/* 0CE044 7F099514 C7A00394 */ lwc1 $f0, 0x394($sp) +.L7F099518: +/* 0CE048 7F099518 4600A03E */ c.le.s $f20, $f0 +/* 0CE04C 7F09951C 00000000 */ nop +/* 0CE050 7F099520 45020004 */ bc1fl .L7F099534 +/* 0CE054 7F099524 46000307 */ neg.s $f12, $f0 +/* 0CE058 7F099528 10000002 */ b .L7F099534 +/* 0CE05C 7F09952C 46000306 */ mov.s $f12, $f0 +/* 0CE060 7F099530 46000307 */ neg.s $f12, $f0 +.L7F099534: +/* 0CE064 7F099534 460C703C */ c.lt.s $f14, $f12 +/* 0CE068 7F099538 E7AE0368 */ swc1 $f14, 0x368($sp) +/* 0CE06C 7F09953C 4502000A */ bc1fl .L7F099568 +/* 0CE070 7F099540 C7A4036C */ lwc1 $f4, 0x36c($sp) +/* 0CE074 7F099544 4600A03E */ c.le.s $f20, $f0 +/* 0CE078 7F099548 00000000 */ nop +/* 0CE07C 7F09954C 45020004 */ bc1fl .L7F099560 +/* 0CE080 7F099550 46000387 */ neg.s $f14, $f0 +/* 0CE084 7F099554 10000003 */ b .L7F099564 +/* 0CE088 7F099558 E7A00368 */ swc1 $f0, 0x368($sp) +/* 0CE08C 7F09955C 46000387 */ neg.s $f14, $f0 +.L7F099560: +/* 0CE090 7F099560 E7AE0368 */ swc1 $f14, 0x368($sp) +.L7F099564: +/* 0CE094 7F099564 C7A4036C */ lwc1 $f4, 0x36c($sp) +.L7F099568: +/* 0CE098 7F099568 C7A80370 */ lwc1 $f8, 0x370($sp) +/* 0CE09C 7F09956C C7AA0374 */ lwc1 $f10, 0x374($sp) +/* 0CE0A0 7F099570 E7A40354 */ swc1 $f4, 0x354($sp) +/* 0CE0A4 7F099574 C7A4037C */ lwc1 $f4, 0x37c($sp) +/* 0CE0A8 7F099578 C7A60378 */ lwc1 $f6, 0x378($sp) +/* 0CE0AC 7F09957C E7A80358 */ swc1 $f8, 0x358($sp) +/* 0CE0B0 7F099580 E7AA035C */ swc1 $f10, 0x35c($sp) +/* 0CE0B4 7F099584 E7A40338 */ swc1 $f4, 0x338($sp) +/* 0CE0B8 7F099588 E7A60334 */ swc1 $f6, 0x334($sp) +/* 0CE0BC 7F09958C C7A80380 */ lwc1 $f8, 0x380($sp) +/* 0CE0C0 7F099590 C7A60388 */ lwc1 $f6, 0x388($sp) +/* 0CE0C4 7F099594 C7A4038C */ lwc1 $f4, 0x38c($sp) +/* 0CE0C8 7F099598 C7AA0384 */ lwc1 $f10, 0x384($sp) +/* 0CE0CC 7F09959C E7A8033C */ swc1 $f8, 0x33c($sp) +/* 0CE0D0 7F0995A0 E7A60318 */ swc1 $f6, 0x318($sp) +/* 0CE0D4 7F0995A4 E7A4031C */ swc1 $f4, 0x31c($sp) +/* 0CE0D8 7F0995A8 E7AA0314 */ swc1 $f10, 0x314($sp) +/* 0CE0DC 7F0995AC C5080030 */ lwc1 $f8, 0x30($t0) +/* 0CE0E0 7F0995B0 27A302F4 */ addiu $v1, $sp, 0x2f4 +/* 0CE0E4 7F0995B4 27A60334 */ addiu $a2, $sp, 0x334 +/* 0CE0E8 7F0995B8 E7A80360 */ swc1 $f8, 0x360($sp) +/* 0CE0EC 7F0995BC C4EA0030 */ lwc1 $f10, 0x30($a3) +/* 0CE0F0 7F0995C0 27A70324 */ addiu $a3, $sp, 0x324 +/* 0CE0F4 7F0995C4 27A20354 */ addiu $v0, $sp, 0x354 +/* 0CE0F8 7F0995C8 E7AA0340 */ swc1 $f10, 0x340($sp) +/* 0CE0FC 7F0995CC C5260030 */ lwc1 $f6, 0x30($t1) +/* 0CE100 7F0995D0 27A402D4 */ addiu $a0, $sp, 0x2d4 +/* 0CE104 7F0995D4 27A50314 */ addiu $a1, $sp, 0x314 +/* 0CE108 7F0995D8 E7A60320 */ swc1 $f6, 0x320($sp) +.L7F0995DC: +/* 0CE10C 7F0995DC C4400000 */ lwc1 $f0, ($v0) +/* 0CE110 7F0995E0 C4C40000 */ lwc1 $f4, ($a2) +/* 0CE114 7F0995E4 C4AA0000 */ lwc1 $f10, ($a1) +/* 0CE118 7F0995E8 24A50004 */ addiu $a1, $a1, 4 +/* 0CE11C 7F0995EC 46002201 */ sub.s $f8, $f4, $f0 +/* 0CE120 7F0995F0 00A7082B */ sltu $at, $a1, $a3 +/* 0CE124 7F0995F4 24630004 */ addiu $v1, $v1, 4 +/* 0CE128 7F0995F8 46005181 */ sub.s $f6, $f10, $f0 +/* 0CE12C 7F0995FC 24C60004 */ addiu $a2, $a2, 4 +/* 0CE130 7F099600 24420004 */ addiu $v0, $v0, 4 +/* 0CE134 7F099604 24840004 */ addiu $a0, $a0, 4 +/* 0CE138 7F099608 E468FFFC */ swc1 $f8, -4($v1) +/* 0CE13C 7F09960C 1420FFF3 */ bnez $at, .L7F0995DC +/* 0CE140 7F099610 E486FFFC */ swc1 $f6, -4($a0) +/* 0CE144 7F099614 27A302F4 */ addiu $v1, $sp, 0x2f4 +/* 0CE148 7F099618 27A20354 */ addiu $v0, $sp, 0x354 +/* 0CE14C 7F09961C 27A402D4 */ addiu $a0, $sp, 0x2d4 +/* 0CE150 7F099620 27A70294 */ addiu $a3, $sp, 0x294 +/* 0CE154 7F099624 27A502B4 */ addiu $a1, $sp, 0x2b4 +/* 0CE158 7F099628 27A80274 */ addiu $t0, $sp, 0x274 +/* 0CE15C 7F09962C 27A60254 */ addiu $a2, $sp, 0x254 +/* 0CE160 7F099630 C7B20410 */ lwc1 $f18, 0x410($sp) +/* 0CE164 7F099634 C7B0040C */ lwc1 $f16, 0x40c($sp) +/* 0CE168 7F099638 27A90264 */ addiu $t1, $sp, 0x264 +.L7F09963C: +/* 0CE16C 7F09963C C4800000 */ lwc1 $f0, ($a0) +/* 0CE170 7F099640 C4620000 */ lwc1 $f2, ($v1) +/* 0CE174 7F099644 C7A80418 */ lwc1 $f8, 0x418($sp) +/* 0CE178 7F099648 46120102 */ mul.s $f4, $f0, $f18 +/* 0CE17C 7F09964C 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0CE180 7F099650 24C60004 */ addiu $a2, $a2, 4 +/* 0CE184 7F099654 46024282 */ mul.s $f10, $f8, $f2 +/* 0CE188 7F099658 44814000 */ mtc1 $at, $f8 +/* 0CE18C 7F09965C 24630004 */ addiu $v1, $v1, 4 +/* 0CE190 7F099660 24420004 */ addiu $v0, $v0, 4 +/* 0CE194 7F099664 24840004 */ addiu $a0, $a0, 4 +/* 0CE198 7F099668 24E70004 */ addiu $a3, $a3, 4 +/* 0CE19C 7F09966C 24A50004 */ addiu $a1, $a1, 4 +/* 0CE1A0 7F099670 460A2181 */ sub.s $f6, $f4, $f10 +/* 0CE1A4 7F099674 25080004 */ addiu $t0, $t0, 4 +/* 0CE1A8 7F099678 46083303 */ div.s $f12, $f6, $f8 +/* 0CE1AC 7F09967C E4ECFFFC */ swc1 $f12, -4($a3) +/* 0CE1B0 7F099680 C7A40414 */ lwc1 $f4, 0x414($sp) +/* 0CE1B4 7F099684 46041282 */ mul.s $f10, $f2, $f4 +/* 0CE1B8 7F099688 44812000 */ mtc1 $at, $f4 +/* 0CE1BC 7F09968C 00C9082B */ sltu $at, $a2, $t1 +/* 0CE1C0 7F099690 46008182 */ mul.s $f6, $f16, $f0 +/* 0CE1C4 7F099694 46065201 */ sub.s $f8, $f10, $f6 +/* 0CE1C8 7F099698 46044283 */ div.s $f10, $f8, $f4 +/* 0CE1CC 7F09969C E4AAFFFC */ swc1 $f10, -4($a1) +/* 0CE1D0 7F0996A0 C7A60484 */ lwc1 $f6, 0x484($sp) +/* 0CE1D4 7F0996A4 C4A4FFFC */ lwc1 $f4, -4($a1) +/* 0CE1D8 7F0996A8 46066202 */ mul.s $f8, $f12, $f6 +/* 0CE1DC 7F0996AC C446FFFC */ lwc1 $f6, -4($v0) +/* 0CE1E0 7F0996B0 E488FFFC */ swc1 $f8, -4($a0) +/* 0CE1E4 7F0996B4 C7AA0484 */ lwc1 $f10, 0x484($sp) +/* 0CE1E8 7F0996B8 E4C6FFFC */ swc1 $f6, -4($a2) +/* 0CE1EC 7F0996BC 460A2382 */ mul.s $f14, $f4, $f10 +/* 0CE1F0 7F0996C0 E46EFFFC */ swc1 $f14, -4($v1) +/* 0CE1F4 7F0996C4 1420FFDD */ bnez $at, .L7F09963C +/* 0CE1F8 7F0996C8 E50EFFFC */ swc1 $f14, -4($t0) +/* 0CE1FC 7F0996CC 8FA304DC */ lw $v1, 0x4dc($sp) +/* 0CE200 7F0996D0 C568002C */ lwc1 $f8, 0x2c($t3) +/* 0CE204 7F0996D4 8FA204D4 */ lw $v0, 0x4d4($sp) +/* 0CE208 7F0996D8 C464002C */ lwc1 $f4, 0x2c($v1) +/* 0CE20C 7F0996DC C4660010 */ lwc1 $f6, 0x10($v1) +/* 0CE210 7F0996E0 C44E0010 */ lwc1 $f14, 0x10($v0) +/* 0CE214 7F0996E4 46044003 */ div.s $f0, $f8, $f4 +/* 0CE218 7F0996E8 C56A0010 */ lwc1 $f10, 0x10($t3) +/* 0CE21C 7F0996EC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0CE220 7F0996F0 240E0001 */ li $t6, 1 +/* 0CE224 7F0996F4 46067201 */ sub.s $f8, $f14, $f6 +/* 0CE228 7F0996F8 46004102 */ mul.s $f4, $f8, $f0 +/* 0CE22C 7F0996FC 46045180 */ add.s $f6, $f10, $f4 +/* 0CE230 7F099700 E7A60170 */ swc1 $f6, 0x170($sp) +/* 0CE234 7F099704 C46A0014 */ lwc1 $f10, 0x14($v1) +/* 0CE238 7F099708 C4420014 */ lwc1 $f2, 0x14($v0) +/* 0CE23C 7F09970C C5680014 */ lwc1 $f8, 0x14($t3) +/* 0CE240 7F099710 460A1101 */ sub.s $f4, $f2, $f10 +/* 0CE244 7F099714 46002182 */ mul.s $f6, $f4, $f0 +/* 0CE248 7F099718 46064280 */ add.s $f10, $f8, $f6 +/* 0CE24C 7F09971C E7AA016C */ swc1 $f10, 0x16c($sp) +/* 0CE250 7F099720 C4680018 */ lwc1 $f8, 0x18($v1) +/* 0CE254 7F099724 C4500018 */ lwc1 $f16, 0x18($v0) +/* 0CE258 7F099728 C5640018 */ lwc1 $f4, 0x18($t3) +/* 0CE25C 7F09972C 46088181 */ sub.s $f6, $f16, $f8 +/* 0CE260 7F099730 46003282 */ mul.s $f10, $f6, $f0 +/* 0CE264 7F099734 460A2200 */ add.s $f8, $f4, $f10 +/* 0CE268 7F099738 E7A80168 */ swc1 $f8, 0x168($sp) +/* 0CE26C 7F09973C C464001C */ lwc1 $f4, 0x1c($v1) +/* 0CE270 7F099740 C452001C */ lwc1 $f18, 0x1c($v0) +/* 0CE274 7F099744 C566001C */ lwc1 $f6, 0x1c($t3) +/* 0CE278 7F099748 46049281 */ sub.s $f10, $f18, $f4 +/* 0CE27C 7F09974C 46005202 */ mul.s $f8, $f10, $f0 +/* 0CE280 7F099750 44815000 */ mtc1 $at, $f10 +/* 0CE284 7F099754 46083100 */ add.s $f4, $f6, $f8 +/* 0CE288 7F099758 460A7182 */ mul.s $f6, $f14, $f10 +/* 0CE28C 7F09975C E7A40164 */ swc1 $f4, 0x164($sp) +/* 0CE290 7F099760 4459F800 */ cfc1 $t9, $31 +/* 0CE294 7F099764 44CEF800 */ ctc1 $t6, $31 +/* 0CE298 7F099768 00000000 */ nop +/* 0CE29C 7F09976C 46003224 */ cvt.w.s $f8, $f6 +/* 0CE2A0 7F099770 444EF800 */ cfc1 $t6, $31 +/* 0CE2A4 7F099774 00000000 */ nop +/* 0CE2A8 7F099778 31CE0078 */ andi $t6, $t6, 0x78 +/* 0CE2AC 7F09977C 11C00012 */ beqz $t6, .L7F0997C8 +/* 0CE2B0 7F099780 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0CE2B4 7F099784 44814000 */ mtc1 $at, $f8 +/* 0CE2B8 7F099788 240E0001 */ li $t6, 1 +/* 0CE2BC 7F09978C 46083201 */ sub.s $f8, $f6, $f8 +/* 0CE2C0 7F099790 44CEF800 */ ctc1 $t6, $31 +/* 0CE2C4 7F099794 00000000 */ nop +/* 0CE2C8 7F099798 46004224 */ cvt.w.s $f8, $f8 +/* 0CE2CC 7F09979C 444EF800 */ cfc1 $t6, $31 +/* 0CE2D0 7F0997A0 00000000 */ nop +/* 0CE2D4 7F0997A4 31CE0078 */ andi $t6, $t6, 0x78 +/* 0CE2D8 7F0997A8 15C00005 */ bnez $t6, .L7F0997C0 +/* 0CE2DC 7F0997AC 00000000 */ nop +/* 0CE2E0 7F0997B0 440E4000 */ mfc1 $t6, $f8 +/* 0CE2E4 7F0997B4 3C018000 */ lui $at, 0x8000 +/* 0CE2E8 7F0997B8 10000007 */ b .L7F0997D8 +/* 0CE2EC 7F0997BC 01C17025 */ or $t6, $t6, $at +.L7F0997C0: +/* 0CE2F0 7F0997C0 10000005 */ b .L7F0997D8 +/* 0CE2F4 7F0997C4 240EFFFF */ li $t6, -1 +.L7F0997C8: +/* 0CE2F8 7F0997C8 440E4000 */ mfc1 $t6, $f8 +/* 0CE2FC 7F0997CC 00000000 */ nop +/* 0CE300 7F0997D0 05C0FFFB */ bltz $t6, .L7F0997C0 +/* 0CE304 7F0997D4 00000000 */ nop +.L7F0997D8: +/* 0CE308 7F0997D8 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0CE30C 7F0997DC 44D9F800 */ ctc1 $t9, $31 +/* 0CE310 7F0997E0 44812000 */ mtc1 $at, $f4 +/* 0CE314 7F0997E4 240F0001 */ li $t7, 1 +/* 0CE318 7F0997E8 AFAE0160 */ sw $t6, 0x160($sp) +/* 0CE31C 7F0997EC 46041282 */ mul.s $f10, $f2, $f4 +/* 0CE320 7F0997F0 4458F800 */ cfc1 $t8, $31 +/* 0CE324 7F0997F4 44CFF800 */ ctc1 $t7, $31 +/* 0CE328 7F0997F8 00000000 */ nop +/* 0CE32C 7F0997FC 460051A4 */ cvt.w.s $f6, $f10 +/* 0CE330 7F099800 444FF800 */ cfc1 $t7, $31 +/* 0CE334 7F099804 00000000 */ nop +/* 0CE338 7F099808 31EF0078 */ andi $t7, $t7, 0x78 +/* 0CE33C 7F09980C 11E00012 */ beqz $t7, .L7F099858 +/* 0CE340 7F099810 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0CE344 7F099814 44813000 */ mtc1 $at, $f6 +/* 0CE348 7F099818 240F0001 */ li $t7, 1 +/* 0CE34C 7F09981C 46065181 */ sub.s $f6, $f10, $f6 +/* 0CE350 7F099820 44CFF800 */ ctc1 $t7, $31 +/* 0CE354 7F099824 00000000 */ nop +/* 0CE358 7F099828 460031A4 */ cvt.w.s $f6, $f6 +/* 0CE35C 7F09982C 444FF800 */ cfc1 $t7, $31 +/* 0CE360 7F099830 00000000 */ nop +/* 0CE364 7F099834 31EF0078 */ andi $t7, $t7, 0x78 +/* 0CE368 7F099838 15E00005 */ bnez $t7, .L7F099850 +/* 0CE36C 7F09983C 00000000 */ nop +/* 0CE370 7F099840 440F3000 */ mfc1 $t7, $f6 +/* 0CE374 7F099844 3C018000 */ lui $at, 0x8000 +/* 0CE378 7F099848 10000007 */ b .L7F099868 +/* 0CE37C 7F09984C 01E17825 */ or $t7, $t7, $at +.L7F099850: +/* 0CE380 7F099850 10000005 */ b .L7F099868 +/* 0CE384 7F099854 240FFFFF */ li $t7, -1 +.L7F099858: +/* 0CE388 7F099858 440F3000 */ mfc1 $t7, $f6 +/* 0CE38C 7F09985C 00000000 */ nop +/* 0CE390 7F099860 05E0FFFB */ bltz $t7, .L7F099850 +/* 0CE394 7F099864 00000000 */ nop +.L7F099868: +/* 0CE398 7F099868 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0CE39C 7F09986C 44D8F800 */ ctc1 $t8, $31 +/* 0CE3A0 7F099870 44814000 */ mtc1 $at, $f8 +/* 0CE3A4 7F099874 240E0001 */ li $t6, 1 +/* 0CE3A8 7F099878 AFAF015C */ sw $t7, 0x15c($sp) +/* 0CE3AC 7F09987C 46088102 */ mul.s $f4, $f16, $f8 +/* 0CE3B0 7F099880 4459F800 */ cfc1 $t9, $31 +/* 0CE3B4 7F099884 44CEF800 */ ctc1 $t6, $31 +/* 0CE3B8 7F099888 00000000 */ nop +/* 0CE3BC 7F09988C 460022A4 */ cvt.w.s $f10, $f4 +/* 0CE3C0 7F099890 444EF800 */ cfc1 $t6, $31 +/* 0CE3C4 7F099894 00000000 */ nop +/* 0CE3C8 7F099898 31CE0078 */ andi $t6, $t6, 0x78 +/* 0CE3CC 7F09989C 11C00012 */ beqz $t6, .L7F0998E8 +/* 0CE3D0 7F0998A0 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0CE3D4 7F0998A4 44815000 */ mtc1 $at, $f10 +/* 0CE3D8 7F0998A8 240E0001 */ li $t6, 1 +/* 0CE3DC 7F0998AC 460A2281 */ sub.s $f10, $f4, $f10 +/* 0CE3E0 7F0998B0 44CEF800 */ ctc1 $t6, $31 +/* 0CE3E4 7F0998B4 00000000 */ nop +/* 0CE3E8 7F0998B8 460052A4 */ cvt.w.s $f10, $f10 +/* 0CE3EC 7F0998BC 444EF800 */ cfc1 $t6, $31 +/* 0CE3F0 7F0998C0 00000000 */ nop +/* 0CE3F4 7F0998C4 31CE0078 */ andi $t6, $t6, 0x78 +/* 0CE3F8 7F0998C8 15C00005 */ bnez $t6, .L7F0998E0 +/* 0CE3FC 7F0998CC 00000000 */ nop +/* 0CE400 7F0998D0 440E5000 */ mfc1 $t6, $f10 +/* 0CE404 7F0998D4 3C018000 */ lui $at, 0x8000 +/* 0CE408 7F0998D8 10000007 */ b .L7F0998F8 +/* 0CE40C 7F0998DC 01C17025 */ or $t6, $t6, $at +.L7F0998E0: +/* 0CE410 7F0998E0 10000005 */ b .L7F0998F8 +/* 0CE414 7F0998E4 240EFFFF */ li $t6, -1 +.L7F0998E8: +/* 0CE418 7F0998E8 440E5000 */ mfc1 $t6, $f10 +/* 0CE41C 7F0998EC 00000000 */ nop +/* 0CE420 7F0998F0 05C0FFFB */ bltz $t6, .L7F0998E0 +/* 0CE424 7F0998F4 00000000 */ nop +.L7F0998F8: +/* 0CE428 7F0998F8 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0CE42C 7F0998FC 44D9F800 */ ctc1 $t9, $31 +/* 0CE430 7F099900 44813000 */ mtc1 $at, $f6 +/* 0CE434 7F099904 240F0001 */ li $t7, 1 +/* 0CE438 7F099908 AFAE0158 */ sw $t6, 0x158($sp) +/* 0CE43C 7F09990C 46069202 */ mul.s $f8, $f18, $f6 +/* 0CE440 7F099910 4458F800 */ cfc1 $t8, $31 +/* 0CE444 7F099914 44CFF800 */ ctc1 $t7, $31 +/* 0CE448 7F099918 00000000 */ nop +/* 0CE44C 7F09991C 46004124 */ cvt.w.s $f4, $f8 +/* 0CE450 7F099920 444FF800 */ cfc1 $t7, $31 +/* 0CE454 7F099924 00000000 */ nop +/* 0CE458 7F099928 31EF0078 */ andi $t7, $t7, 0x78 +/* 0CE45C 7F09992C 11E00012 */ beqz $t7, .L7F099978 +/* 0CE460 7F099930 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0CE464 7F099934 44812000 */ mtc1 $at, $f4 +/* 0CE468 7F099938 240F0001 */ li $t7, 1 +/* 0CE46C 7F09993C 46044101 */ sub.s $f4, $f8, $f4 +/* 0CE470 7F099940 44CFF800 */ ctc1 $t7, $31 +/* 0CE474 7F099944 00000000 */ nop +/* 0CE478 7F099948 46002124 */ cvt.w.s $f4, $f4 +/* 0CE47C 7F09994C 444FF800 */ cfc1 $t7, $31 +/* 0CE480 7F099950 00000000 */ nop +/* 0CE484 7F099954 31EF0078 */ andi $t7, $t7, 0x78 +/* 0CE488 7F099958 15E00005 */ bnez $t7, .L7F099970 +/* 0CE48C 7F09995C 00000000 */ nop +/* 0CE490 7F099960 440F2000 */ mfc1 $t7, $f4 +/* 0CE494 7F099964 3C018000 */ lui $at, 0x8000 +/* 0CE498 7F099968 10000007 */ b .L7F099988 +/* 0CE49C 7F09996C 01E17825 */ or $t7, $t7, $at +.L7F099970: +/* 0CE4A0 7F099970 10000005 */ b .L7F099988 +/* 0CE4A4 7F099974 240FFFFF */ li $t7, -1 +.L7F099978: +/* 0CE4A8 7F099978 440F2000 */ mfc1 $t7, $f4 +/* 0CE4AC 7F09997C 00000000 */ nop +/* 0CE4B0 7F099980 05E0FFFB */ bltz $t7, .L7F099970 +/* 0CE4B4 7F099984 00000000 */ nop +.L7F099988: +/* 0CE4B8 7F099988 8FB904D8 */ lw $t9, 0x4d8($sp) +/* 0CE4BC 7F09998C AFAF0154 */ sw $t7, 0x154($sp) +/* 0CE4C0 7F099990 44D8F800 */ ctc1 $t8, $31 +/* 0CE4C4 7F099994 C4460028 */ lwc1 $f6, 0x28($v0) +/* 0CE4C8 7F099998 C72A0028 */ lwc1 $f10, 0x28($t9) +/* 0CE4CC 7F09999C 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CE4D0 7F0999A0 44812000 */ mtc1 $at, $f4 +/* 0CE4D4 7F0999A4 46065201 */ sub.s $f8, $f10, $f6 +/* 0CE4D8 7F0999A8 C7A60170 */ lwc1 $f6, 0x170($sp) +/* 0CE4DC 7F0999AC 46044282 */ mul.s $f10, $f8, $f4 +/* 0CE4E0 7F0999B0 460E3201 */ sub.s $f8, $f6, $f14 +/* 0CE4E4 7F0999B4 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CE4E8 7F0999B8 460A4303 */ div.s $f12, $f8, $f10 +/* 0CE4EC 7F0999BC 8FA304D4 */ lw $v1, 0x4d4($sp) +/* 0CE4F0 7F0999C0 AFA20150 */ sw $v0, 0x150($sp) +/* 0CE4F4 7F0999C4 C7A4016C */ lwc1 $f4, 0x16c($sp) +/* 0CE4F8 7F0999C8 C4660014 */ lwc1 $f6, 0x14($v1) +/* 0CE4FC 7F0999CC 8FAE04D8 */ lw $t6, 0x4d8($sp) +/* 0CE500 7F0999D0 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CE504 7F0999D4 46062201 */ sub.s $f8, $f4, $f6 +/* 0CE508 7F0999D8 C4640028 */ lwc1 $f4, 0x28($v1) +/* 0CE50C 7F0999DC C5CA0028 */ lwc1 $f10, 0x28($t6) +/* 0CE510 7F0999E0 46045181 */ sub.s $f6, $f10, $f4 +/* 0CE514 7F0999E4 44815000 */ mtc1 $at, $f10 +/* 0CE518 7F0999E8 00000000 */ nop +/* 0CE51C 7F0999EC 460A3102 */ mul.s $f4, $f6, $f10 +/* 0CE520 7F0999F0 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CE524 7F0999F4 46044303 */ div.s $f12, $f8, $f4 +/* 0CE528 7F0999F8 8FA304D4 */ lw $v1, 0x4d4($sp) +/* 0CE52C 7F0999FC AFA2014C */ sw $v0, 0x14c($sp) +/* 0CE530 7F099A00 C7A60168 */ lwc1 $f6, 0x168($sp) +/* 0CE534 7F099A04 C46A0018 */ lwc1 $f10, 0x18($v1) +/* 0CE538 7F099A08 8FB804D8 */ lw $t8, 0x4d8($sp) +/* 0CE53C 7F099A0C 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CE540 7F099A10 460A3201 */ sub.s $f8, $f6, $f10 +/* 0CE544 7F099A14 C4660028 */ lwc1 $f6, 0x28($v1) +/* 0CE548 7F099A18 C7040028 */ lwc1 $f4, 0x28($t8) +/* 0CE54C 7F099A1C 46062281 */ sub.s $f10, $f4, $f6 +/* 0CE550 7F099A20 44812000 */ mtc1 $at, $f4 +/* 0CE554 7F099A24 00000000 */ nop +/* 0CE558 7F099A28 46045182 */ mul.s $f6, $f10, $f4 +/* 0CE55C 7F099A2C 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CE560 7F099A30 46064303 */ div.s $f12, $f8, $f6 +/* 0CE564 7F099A34 8FA304D4 */ lw $v1, 0x4d4($sp) +/* 0CE568 7F099A38 AFA20148 */ sw $v0, 0x148($sp) +/* 0CE56C 7F099A3C C7AA0164 */ lwc1 $f10, 0x164($sp) +/* 0CE570 7F099A40 C464001C */ lwc1 $f4, 0x1c($v1) +/* 0CE574 7F099A44 8FAF04D8 */ lw $t7, 0x4d8($sp) +/* 0CE578 7F099A48 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CE57C 7F099A4C 46045201 */ sub.s $f8, $f10, $f4 +/* 0CE580 7F099A50 C46A0028 */ lwc1 $f10, 0x28($v1) +/* 0CE584 7F099A54 C5E60028 */ lwc1 $f6, 0x28($t7) +/* 0CE588 7F099A58 460A3101 */ sub.s $f4, $f6, $f10 +/* 0CE58C 7F099A5C 44813000 */ mtc1 $at, $f6 +/* 0CE590 7F099A60 00000000 */ nop +/* 0CE594 7F099A64 46062282 */ mul.s $f10, $f4, $f6 +/* 0CE598 7F099A68 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CE59C 7F099A6C 460A4303 */ div.s $f12, $f8, $f10 +/* 0CE5A0 7F099A70 8FA304DC */ lw $v1, 0x4dc($sp) +/* 0CE5A4 7F099A74 8FB904D4 */ lw $t9, 0x4d4($sp) +/* 0CE5A8 7F099A78 AFA20144 */ sw $v0, 0x144($sp) +/* 0CE5AC 7F099A7C C4640010 */ lwc1 $f4, 0x10($v1) +/* 0CE5B0 7F099A80 C7260010 */ lwc1 $f6, 0x10($t9) +/* 0CE5B4 7F099A84 C46A002C */ lwc1 $f10, 0x2c($v1) +/* 0CE5B8 7F099A88 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CE5BC 7F099A8C 46062201 */ sub.s $f8, $f4, $f6 +/* 0CE5C0 7F099A90 C724002C */ lwc1 $f4, 0x2c($t9) +/* 0CE5C4 7F099A94 46045181 */ sub.s $f6, $f10, $f4 +/* 0CE5C8 7F099A98 44815000 */ mtc1 $at, $f10 +/* 0CE5CC 7F099A9C 00000000 */ nop +/* 0CE5D0 7F099AA0 460A3102 */ mul.s $f4, $f6, $f10 +/* 0CE5D4 7F099AA4 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CE5D8 7F099AA8 46044303 */ div.s $f12, $f8, $f4 +/* 0CE5DC 7F099AAC 8FA304DC */ lw $v1, 0x4dc($sp) +/* 0CE5E0 7F099AB0 8FAE04D4 */ lw $t6, 0x4d4($sp) +/* 0CE5E4 7F099AB4 AFA20130 */ sw $v0, 0x130($sp) +/* 0CE5E8 7F099AB8 AFA20140 */ sw $v0, 0x140($sp) +/* 0CE5EC 7F099ABC C4660014 */ lwc1 $f6, 0x14($v1) +/* 0CE5F0 7F099AC0 C5CA0014 */ lwc1 $f10, 0x14($t6) +/* 0CE5F4 7F099AC4 C464002C */ lwc1 $f4, 0x2c($v1) +/* 0CE5F8 7F099AC8 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CE5FC 7F099ACC 460A3201 */ sub.s $f8, $f6, $f10 +/* 0CE600 7F099AD0 C5C6002C */ lwc1 $f6, 0x2c($t6) +/* 0CE604 7F099AD4 46062281 */ sub.s $f10, $f4, $f6 +/* 0CE608 7F099AD8 44812000 */ mtc1 $at, $f4 +/* 0CE60C 7F099ADC 00000000 */ nop +/* 0CE610 7F099AE0 46045182 */ mul.s $f6, $f10, $f4 +/* 0CE614 7F099AE4 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CE618 7F099AE8 46064303 */ div.s $f12, $f8, $f6 +/* 0CE61C 7F099AEC 8FB804DC */ lw $t8, 0x4dc($sp) +/* 0CE620 7F099AF0 8FAF04D4 */ lw $t7, 0x4d4($sp) +/* 0CE624 7F099AF4 AFA2012C */ sw $v0, 0x12c($sp) +/* 0CE628 7F099AF8 AFA2013C */ sw $v0, 0x13c($sp) +/* 0CE62C 7F099AFC C70A0018 */ lwc1 $f10, 0x18($t8) +/* 0CE630 7F099B00 C5E40018 */ lwc1 $f4, 0x18($t7) +/* 0CE634 7F099B04 C706002C */ lwc1 $f6, 0x2c($t8) +/* 0CE638 7F099B08 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CE63C 7F099B0C 46045201 */ sub.s $f8, $f10, $f4 +/* 0CE640 7F099B10 C5EA002C */ lwc1 $f10, 0x2c($t7) +/* 0CE644 7F099B14 460A3101 */ sub.s $f4, $f6, $f10 +/* 0CE648 7F099B18 44813000 */ mtc1 $at, $f6 +/* 0CE64C 7F099B1C 00000000 */ nop +/* 0CE650 7F099B20 46062282 */ mul.s $f10, $f4, $f6 +/* 0CE654 7F099B24 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CE658 7F099B28 460A4303 */ div.s $f12, $f8, $f10 +/* 0CE65C 7F099B2C 8FB904DC */ lw $t9, 0x4dc($sp) +/* 0CE660 7F099B30 8FAE04D4 */ lw $t6, 0x4d4($sp) +/* 0CE664 7F099B34 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0CE668 7F099B38 C724001C */ lwc1 $f4, 0x1c($t9) +/* 0CE66C 7F099B3C C5C6001C */ lwc1 $f6, 0x1c($t6) +/* 0CE670 7F099B40 C72A002C */ lwc1 $f10, 0x2c($t9) +/* 0CE674 7F099B44 46062201 */ sub.s $f8, $f4, $f6 +/* 0CE678 7F099B48 C5C4002C */ lwc1 $f4, 0x2c($t6) +/* 0CE67C 7F099B4C AFA20138 */ sw $v0, 0x138($sp) +/* 0CE680 7F099B50 AFA20128 */ sw $v0, 0x128($sp) +/* 0CE684 7F099B54 46045181 */ sub.s $f6, $f10, $f4 +/* 0CE688 7F099B58 44815000 */ mtc1 $at, $f10 +/* 0CE68C 7F099B5C 00000000 */ nop +/* 0CE690 7F099B60 460A3102 */ mul.s $f4, $f6, $f10 +/* 0CE694 7F099B64 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CE698 7F099B68 46044303 */ div.s $f12, $f8, $f4 +/* 0CE69C 7F099B6C 8FAB015C */ lw $t3, 0x15c($sp) +/* 0CE6A0 7F099B70 8FAA0160 */ lw $t2, 0x160($sp) +/* 0CE6A4 7F099B74 3C09FFFF */ lui $t1, 0xffff +/* 0CE6A8 7F099B78 02001825 */ move $v1, $s0 +/* 0CE6AC 7F099B7C 01697824 */ and $t7, $t3, $t1 +/* 0CE6B0 7F099B80 8FAC0128 */ lw $t4, 0x128($sp) +/* 0CE6B4 7F099B84 8FAD0138 */ lw $t5, 0x138($sp) +/* 0CE6B8 7F099B88 8FBF0158 */ lw $ra, 0x158($sp) +/* 0CE6BC 7F099B8C 000FCC02 */ srl $t9, $t7, 0x10 +/* 0CE6C0 7F099B90 0149C024 */ and $t8, $t2, $t1 +/* 0CE6C4 7F099B94 3C08B400 */ lui $t0, 0xb400 +/* 0CE6C8 7F099B98 03197025 */ or $t6, $t8, $t9 +/* 0CE6CC 7F099B9C 26100008 */ addiu $s0, $s0, 8 +/* 0CE6D0 7F099BA0 AC6E0004 */ sw $t6, 4($v1) +/* 0CE6D4 7F099BA4 AC680000 */ sw $t0, ($v1) +/* 0CE6D8 7F099BA8 02002025 */ move $a0, $s0 +/* 0CE6DC 7F099BAC 3C0FB200 */ lui $t7, 0xb200 +/* 0CE6E0 7F099BB0 AC8F0000 */ sw $t7, ($a0) +/* 0CE6E4 7F099BB4 8FB90154 */ lw $t9, 0x154($sp) +/* 0CE6E8 7F099BB8 03E9C024 */ and $t8, $ra, $t1 +/* 0CE6EC 7F099BBC 26100008 */ addiu $s0, $s0, 8 +/* 0CE6F0 7F099BC0 03297024 */ and $t6, $t9, $t1 +/* 0CE6F4 7F099BC4 000E7C02 */ srl $t7, $t6, 0x10 +/* 0CE6F8 7F099BC8 030FC825 */ or $t9, $t8, $t7 +/* 0CE6FC 7F099BCC AC990004 */ sw $t9, 4($a0) +/* 0CE700 7F099BD0 02002825 */ move $a1, $s0 +/* 0CE704 7F099BD4 ACA80000 */ sw $t0, ($a1) +/* 0CE708 7F099BD8 8FAF014C */ lw $t7, 0x14c($sp) +/* 0CE70C 7F099BDC 8FAE0150 */ lw $t6, 0x150($sp) +/* 0CE710 7F099BE0 26100008 */ addiu $s0, $s0, 8 +/* 0CE714 7F099BE4 01E9C824 */ and $t9, $t7, $t1 +/* 0CE718 7F099BE8 01C9C024 */ and $t8, $t6, $t1 +/* 0CE71C 7F099BEC 00197402 */ srl $t6, $t9, 0x10 +/* 0CE720 7F099BF0 030E7825 */ or $t7, $t8, $t6 +/* 0CE724 7F099BF4 ACAF0004 */ sw $t7, 4($a1) +/* 0CE728 7F099BF8 3C05B200 */ lui $a1, %hi(0xB2000004) # $a1, 0xb200 +/* 0CE72C 7F099BFC 02003025 */ move $a2, $s0 +/* 0CE730 7F099C00 ACC50000 */ sw $a1, ($a2) +/* 0CE734 7F099C04 8FAE0144 */ lw $t6, 0x144($sp) +/* 0CE738 7F099C08 8FB90148 */ lw $t9, 0x148($sp) +/* 0CE73C 7F099C0C 26100008 */ addiu $s0, $s0, 8 +/* 0CE740 7F099C10 01C97824 */ and $t7, $t6, $t1 +/* 0CE744 7F099C14 0329C024 */ and $t8, $t9, $t1 +/* 0CE748 7F099C18 000FCC02 */ srl $t9, $t7, 0x10 +/* 0CE74C 7F099C1C 03197025 */ or $t6, $t8, $t9 +/* 0CE750 7F099C20 ACCE0004 */ sw $t6, 4($a2) +/* 0CE754 7F099C24 02001825 */ move $v1, $s0 +/* 0CE758 7F099C28 3179FFFF */ andi $t9, $t3, 0xffff +/* 0CE75C 7F099C2C 000AC400 */ sll $t8, $t2, 0x10 +/* 0CE760 7F099C30 03197025 */ or $t6, $t8, $t9 +/* 0CE764 7F099C34 26100008 */ addiu $s0, $s0, 8 +/* 0CE768 7F099C38 AC6E0004 */ sw $t6, 4($v1) +/* 0CE76C 7F099C3C AC680000 */ sw $t0, ($v1) +/* 0CE770 7F099C40 02002025 */ move $a0, $s0 +/* 0CE774 7F099C44 AC850000 */ sw $a1, ($a0) +/* 0CE778 7F099C48 8FB90154 */ lw $t9, 0x154($sp) +/* 0CE77C 7F099C4C 001FC400 */ sll $t8, $ra, 0x10 +/* 0CE780 7F099C50 26100008 */ addiu $s0, $s0, 8 +/* 0CE784 7F099C54 332EFFFF */ andi $t6, $t9, 0xffff +/* 0CE788 7F099C58 030E7825 */ or $t7, $t8, $t6 +/* 0CE78C 7F099C5C AC8F0004 */ sw $t7, 4($a0) +/* 0CE790 7F099C60 02003825 */ move $a3, $s0 +/* 0CE794 7F099C64 ACE80000 */ sw $t0, ($a3) +/* 0CE798 7F099C68 8FAF014C */ lw $t7, 0x14c($sp) +/* 0CE79C 7F099C6C 8FB80150 */ lw $t8, 0x150($sp) +/* 0CE7A0 7F099C70 8FAA0140 */ lw $t2, 0x140($sp) +/* 0CE7A4 7F099C74 31F9FFFF */ andi $t9, $t7, 0xffff +/* 0CE7A8 7F099C78 00187400 */ sll $t6, $t8, 0x10 +/* 0CE7AC 7F099C7C 8FA8013C */ lw $t0, 0x13c($sp) +/* 0CE7B0 7F099C80 01D9C025 */ or $t8, $t6, $t9 +/* 0CE7B4 7F099C84 26100008 */ addiu $s0, $s0, 8 +/* 0CE7B8 7F099C88 ACF80004 */ sw $t8, 4($a3) +/* 0CE7BC 7F099C8C 02001825 */ move $v1, $s0 +/* 0CE7C0 7F099C90 3C0FB200 */ lui $t7, 0xb200 +/* 0CE7C4 7F099C94 AC6F0000 */ sw $t7, ($v1) +/* 0CE7C8 7F099C98 8FAF0144 */ lw $t7, 0x144($sp) +/* 0CE7CC 7F099C9C 8FB90148 */ lw $t9, 0x148($sp) +/* 0CE7D0 7F099CA0 26100008 */ addiu $s0, $s0, 8 +/* 0CE7D4 7F099CA4 31EEFFFF */ andi $t6, $t7, 0xffff +/* 0CE7D8 7F099CA8 0019C400 */ sll $t8, $t9, 0x10 +/* 0CE7DC 7F099CAC 030EC825 */ or $t9, $t8, $t6 +/* 0CE7E0 7F099CB0 0109C024 */ and $t8, $t0, $t1 +/* 0CE7E4 7F099CB4 AC790004 */ sw $t9, 4($v1) +/* 0CE7E8 7F099CB8 00187402 */ srl $t6, $t8, 0x10 +/* 0CE7EC 7F099CBC 01497824 */ and $t7, $t2, $t1 +/* 0CE7F0 7F099CC0 01EEC825 */ or $t9, $t7, $t6 +/* 0CE7F4 7F099CC4 02002025 */ move $a0, $s0 +/* 0CE7F8 7F099CC8 26100008 */ addiu $s0, $s0, 8 +/* 0CE7FC 7F099CCC 3C1FB400 */ lui $ra, 0xb400 +/* 0CE800 7F099CD0 AC990004 */ sw $t9, 4($a0) +/* 0CE804 7F099CD4 02002825 */ move $a1, $s0 +/* 0CE808 7F099CD8 00493024 */ and $a2, $v0, $t1 +/* 0CE80C 7F099CDC AC9F0000 */ sw $ra, ($a0) +/* 0CE810 7F099CE0 00067C02 */ srl $t7, $a2, 0x10 +/* 0CE814 7F099CE4 01A97024 */ and $t6, $t5, $t1 +/* 0CE818 7F099CE8 01CFC825 */ or $t9, $t6, $t7 +/* 0CE81C 7F099CEC 26100008 */ addiu $s0, $s0, 8 +/* 0CE820 7F099CF0 3C18B200 */ lui $t8, 0xb200 +/* 0CE824 7F099CF4 ACB80000 */ sw $t8, ($a1) +/* 0CE828 7F099CF8 ACB90004 */ sw $t9, %lo(0xB2000004)($a1) +/* 0CE82C 7F099CFC 02001825 */ move $v1, $s0 +/* 0CE830 7F099D00 AC7F0000 */ sw $ra, ($v1) +/* 0CE834 7F099D04 8FAE012C */ lw $t6, 0x12c($sp) +/* 0CE838 7F099D08 8FB80130 */ lw $t8, 0x130($sp) +/* 0CE83C 7F099D0C 01E03025 */ move $a2, $t7 +/* 0CE840 7F099D10 01C9C824 */ and $t9, $t6, $t1 +/* 0CE844 7F099D14 03097824 */ and $t7, $t8, $t1 +/* 0CE848 7F099D18 0019C402 */ srl $t8, $t9, 0x10 +/* 0CE84C 7F099D1C 01F87025 */ or $t6, $t7, $t8 +/* 0CE850 7F099D20 26100008 */ addiu $s0, $s0, 8 +/* 0CE854 7F099D24 02002025 */ move $a0, $s0 +/* 0CE858 7F099D28 01897824 */ and $t7, $t4, $t1 +/* 0CE85C 7F099D2C AC6E0004 */ sw $t6, 4($v1) +/* 0CE860 7F099D30 01E6C025 */ or $t8, $t7, $a2 +/* 0CE864 7F099D34 3C19B200 */ lui $t9, 0xb200 +/* 0CE868 7F099D38 AC990000 */ sw $t9, ($a0) +/* 0CE86C 7F099D3C 26100008 */ addiu $s0, $s0, 8 +/* 0CE870 7F099D40 AC980004 */ sw $t8, 4($a0) +/* 0CE874 7F099D44 02002825 */ move $a1, $s0 +/* 0CE878 7F099D48 000ACC00 */ sll $t9, $t2, 0x10 +/* 0CE87C 7F099D4C 310FFFFF */ andi $t7, $t0, 0xffff +/* 0CE880 7F099D50 032FC025 */ or $t8, $t9, $t7 +/* 0CE884 7F099D54 26100008 */ addiu $s0, $s0, 8 +/* 0CE888 7F099D58 ACB80004 */ sw $t8, %lo(0xB2000004)($a1) +/* 0CE88C 7F099D5C ACBF0000 */ sw $ra, ($a1) +/* 0CE890 7F099D60 02005825 */ move $t3, $s0 +/* 0CE894 7F099D64 304FFFFF */ andi $t7, $v0, 0xffff +/* 0CE898 7F099D68 000DCC00 */ sll $t9, $t5, 0x10 +/* 0CE89C 7F099D6C 032FC025 */ or $t8, $t9, $t7 +/* 0CE8A0 7F099D70 26100008 */ addiu $s0, $s0, 8 +/* 0CE8A4 7F099D74 3C1FB200 */ lui $ra, 0xb200 +/* 0CE8A8 7F099D78 AD7F0000 */ sw $ra, ($t3) +/* 0CE8AC 7F099D7C AD780004 */ sw $t8, 4($t3) +/* 0CE8B0 7F099D80 02003825 */ move $a3, $s0 +/* 0CE8B4 7F099D84 3C0EB400 */ lui $t6, 0xb400 +/* 0CE8B8 7F099D88 ACEE0000 */ sw $t6, ($a3) +/* 0CE8BC 7F099D8C 8FAE012C */ lw $t6, 0x12c($sp) +/* 0CE8C0 7F099D90 8FAF0130 */ lw $t7, 0x130($sp) +/* 0CE8C4 7F099D94 26100008 */ addiu $s0, $s0, 8 +/* 0CE8C8 7F099D98 31D9FFFF */ andi $t9, $t6, 0xffff +/* 0CE8CC 7F099D9C 000FC400 */ sll $t8, $t7, 0x10 +/* 0CE8D0 7F099DA0 03197825 */ or $t7, $t8, $t9 +/* 0CE8D4 7F099DA4 ACEF0004 */ sw $t7, 4($a3) +/* 0CE8D8 7F099DA8 3059FFFF */ andi $t9, $v0, 0xffff +/* 0CE8DC 7F099DAC 02004025 */ move $t0, $s0 +/* 0CE8E0 7F099DB0 000CC400 */ sll $t8, $t4, 0x10 +/* 0CE8E4 7F099DB4 03197825 */ or $t7, $t8, $t9 +/* 0CE8E8 7F099DB8 3C013D00 */ li $at, 0x3D000000 # 0.031250 +/* 0CE8EC 7F099DBC AD0F0004 */ sw $t7, 4($t0) +/* 0CE8F0 7F099DC0 AD1F0000 */ sw $ra, ($t0) +/* 0CE8F4 7F099DC4 44817000 */ mtc1 $at, $f14 +/* 0CE8F8 7F099DC8 C7A60364 */ lwc1 $f6, 0x364($sp) +/* 0CE8FC 7F099DCC C7A80368 */ lwc1 $f8, 0x368($sp) +/* 0CE900 7F099DD0 26100008 */ addiu $s0, $s0, 8 +/* 0CE904 7F099DD4 460E3282 */ mul.s $f10, $f6, $f14 +/* 0CE908 7F099DD8 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0CE90C 7F099DDC 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0CE910 7F099DE0 460E4102 */ mul.s $f4, $f8, $f14 +/* 0CE914 7F099DE4 27A20204 */ addiu $v0, $sp, 0x204 +/* 0CE918 7F099DE8 27A501F4 */ addiu $a1, $sp, 0x1f4 +/* 0CE91C 7F099DEC 27A402D4 */ addiu $a0, $sp, 0x2d4 +/* 0CE920 7F099DF0 E7AA0234 */ swc1 $f10, 0x234($sp) +/* 0CE924 7F099DF4 460E3282 */ mul.s $f10, $f6, $f14 +/* 0CE928 7F099DF8 27A60214 */ addiu $a2, $sp, 0x214 +/* 0CE92C 7F099DFC E7A40238 */ swc1 $f4, 0x238($sp) +/* 0CE930 7F099E00 27A302F4 */ addiu $v1, $sp, 0x2f4 +/* 0CE934 7F099E04 E7AA023C */ swc1 $f10, 0x23c($sp) +.L7F099E08: +/* 0CE938 7F099E08 C4800000 */ lwc1 $f0, ($a0) +/* 0CE93C 7F099E0C 4600A03E */ c.le.s $f20, $f0 +/* 0CE940 7F099E10 00000000 */ nop +/* 0CE944 7F099E14 45020004 */ bc1fl .L7F099E28 +/* 0CE948 7F099E18 46000307 */ neg.s $f12, $f0 +/* 0CE94C 7F099E1C 10000002 */ b .L7F099E28 +/* 0CE950 7F099E20 46000306 */ mov.s $f12, $f0 +/* 0CE954 7F099E24 46000307 */ neg.s $f12, $f0 +.L7F099E28: +/* 0CE958 7F099E28 C4620000 */ lwc1 $f2, ($v1) +/* 0CE95C 7F099E2C 460E6202 */ mul.s $f8, $f12, $f14 +/* 0CE960 7F099E30 4602A03E */ c.le.s $f20, $f2 +/* 0CE964 7F099E34 00000000 */ nop +/* 0CE968 7F099E38 45000003 */ bc1f .L7F099E48 +/* 0CE96C 7F099E3C E4C80000 */ swc1 $f8, ($a2) +/* 0CE970 7F099E40 10000002 */ b .L7F099E4C +/* 0CE974 7F099E44 46001306 */ mov.s $f12, $f2 +.L7F099E48: +/* 0CE978 7F099E48 46001307 */ neg.s $f12, $f2 +.L7F099E4C: +/* 0CE97C 7F099E4C 460E6102 */ mul.s $f4, $f12, $f14 +/* 0CE980 7F099E50 24A50004 */ addiu $a1, $a1, 4 +/* 0CE984 7F099E54 24630004 */ addiu $v1, $v1, 4 +/* 0CE988 7F099E58 24840004 */ addiu $a0, $a0, 4 +/* 0CE98C 7F099E5C 24C60004 */ addiu $a2, $a2, 4 +/* 0CE990 7F099E60 14A2FFE9 */ bne $a1, $v0, .L7F099E08 +/* 0CE994 7F099E64 E4A4FFFC */ swc1 $f4, -4($a1) +/* 0CE998 7F099E68 44811000 */ mtc1 $at, $f2 +/* 0CE99C 7F099E6C C7AA0214 */ lwc1 $f10, 0x214($sp) +/* 0CE9A0 7F099E70 C7A60234 */ lwc1 $f6, 0x234($sp) +/* 0CE9A4 7F099E74 3C013A80 */ li $at, 0x3A800000 # 0.000977 +/* 0CE9A8 7F099E78 460A1202 */ mul.s $f8, $f2, $f10 +/* 0CE9AC 7F099E7C C7AA01F4 */ lwc1 $f10, 0x1f4($sp) +/* 0CE9B0 7F099E80 46083100 */ add.s $f4, $f6, $f8 +/* 0CE9B4 7F099E84 C7A80218 */ lwc1 $f8, 0x218($sp) +/* 0CE9B8 7F099E88 C7A60238 */ lwc1 $f6, 0x238($sp) +/* 0CE9BC 7F099E8C 46045000 */ add.s $f0, $f10, $f4 +/* 0CE9C0 7F099E90 46081282 */ mul.s $f10, $f2, $f8 +/* 0CE9C4 7F099E94 C7A801F8 */ lwc1 $f8, 0x1f8($sp) +/* 0CE9C8 7F099E98 460A3100 */ add.s $f4, $f6, $f10 +/* 0CE9CC 7F099E9C C7AA021C */ lwc1 $f10, 0x21c($sp) +/* 0CE9D0 7F099EA0 C7A6023C */ lwc1 $f6, 0x23c($sp) +/* 0CE9D4 7F099EA4 46044300 */ add.s $f12, $f8, $f4 +/* 0CE9D8 7F099EA8 460A1202 */ mul.s $f8, $f2, $f10 +/* 0CE9DC 7F099EAC C7AA01FC */ lwc1 $f10, 0x1fc($sp) +/* 0CE9E0 7F099EB0 460C003C */ c.lt.s $f0, $f12 +/* 0CE9E4 7F099EB4 E7AC01D8 */ swc1 $f12, 0x1d8($sp) +/* 0CE9E8 7F099EB8 46083100 */ add.s $f4, $f6, $f8 +/* 0CE9EC 7F099EBC 44813000 */ mtc1 $at, $f6 +/* 0CE9F0 7F099EC0 45000003 */ bc1f .L7F099ED0 +/* 0CE9F4 7F099EC4 46045380 */ add.s $f14, $f10, $f4 +/* 0CE9F8 7F099EC8 46006006 */ mov.s $f0, $f12 +/* 0CE9FC 7F099ECC E7AC01D8 */ swc1 $f12, 0x1d8($sp) +.L7F099ED0: +/* 0CEA00 7F099ED0 460E003C */ c.lt.s $f0, $f14 +/* 0CEA04 7F099ED4 E7AE01DC */ swc1 $f14, 0x1dc($sp) +/* 0CEA08 7F099ED8 45000003 */ bc1f .L7F099EE8 +/* 0CEA0C 7F099EDC 00000000 */ nop +/* 0CEA10 7F099EE0 46007006 */ mov.s $f0, $f14 +/* 0CEA14 7F099EE4 E7AE01DC */ swc1 $f14, 0x1dc($sp) +.L7F099EE8: +/* 0CEA18 7F099EE8 46060002 */ mul.s $f0, $f0, $f6 +/* 0CEA1C 7F099EEC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CEA20 7F099EF0 44814000 */ mtc1 $at, $f8 +/* 0CEA24 7F099EF4 00000000 */ nop +/* 0CEA28 7F099EF8 4600403C */ c.lt.s $f8, $f0 +/* 0CEA2C 7F099EFC 00000000 */ nop +/* 0CEA30 7F099F00 45000005 */ bc1f .L7F099F18 +/* 0CEA34 7F099F04 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CEA38 7F099F08 44815000 */ mtc1 $at, $f10 +/* 0CEA3C 7F099F0C E7A001D4 */ swc1 $f0, 0x1d4($sp) +/* 0CEA40 7F099F10 10000004 */ b .L7F099F24 +/* 0CEA44 7F099F14 46005503 */ div.s $f20, $f10, $f0 +.L7F099F18: +/* 0CEA48 7F099F18 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CEA4C 7F099F1C 4481A000 */ mtc1 $at, $f20 +/* 0CEA50 7F099F20 E7A001D4 */ swc1 $f0, 0x1d4($sp) +.L7F099F24: +/* 0CEA54 7F099F24 C7A40254 */ lwc1 $f4, 0x254($sp) +/* 0CEA58 7F099F28 E7B401C4 */ swc1 $f20, 0x1c4($sp) +/* 0CEA5C 7F099F2C 4604A302 */ mul.s $f12, $f20, $f4 +/* 0CEA60 7F099F30 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CEA64 7F099F34 00000000 */ nop +/* 0CEA68 7F099F38 C7B401C4 */ lwc1 $f20, 0x1c4($sp) +/* 0CEA6C 7F099F3C C7A60258 */ lwc1 $f6, 0x258($sp) +/* 0CEA70 7F099F40 AFA200E0 */ sw $v0, 0xe0($sp) +/* 0CEA74 7F099F44 4606A302 */ mul.s $f12, $f20, $f6 +/* 0CEA78 7F099F48 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CEA7C 7F099F4C 00000000 */ nop +/* 0CEA80 7F099F50 C7B401C4 */ lwc1 $f20, 0x1c4($sp) +/* 0CEA84 7F099F54 C7A8025C */ lwc1 $f8, 0x25c($sp) +/* 0CEA88 7F099F58 AFA200DC */ sw $v0, 0xdc($sp) +/* 0CEA8C 7F099F5C 4608A302 */ mul.s $f12, $f20, $f8 +/* 0CEA90 7F099F60 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CEA94 7F099F64 00000000 */ nop +/* 0CEA98 7F099F68 C7B401C4 */ lwc1 $f20, 0x1c4($sp) +/* 0CEA9C 7F099F6C C7AA0260 */ lwc1 $f10, 0x260($sp) +/* 0CEAA0 7F099F70 AFA200D8 */ sw $v0, 0xd8($sp) +/* 0CEAA4 7F099F74 460AA302 */ mul.s $f12, $f20, $f10 +/* 0CEAA8 7F099F78 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CEAAC 7F099F7C 00000000 */ nop +/* 0CEAB0 7F099F80 C7B401C4 */ lwc1 $f20, 0x1c4($sp) +/* 0CEAB4 7F099F84 C7A402D4 */ lwc1 $f4, 0x2d4($sp) +/* 0CEAB8 7F099F88 AFA200D4 */ sw $v0, 0xd4($sp) +/* 0CEABC 7F099F8C 4604A302 */ mul.s $f12, $f20, $f4 +/* 0CEAC0 7F099F90 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CEAC4 7F099F94 00000000 */ nop +/* 0CEAC8 7F099F98 C7B401C4 */ lwc1 $f20, 0x1c4($sp) +/* 0CEACC 7F099F9C C7A602D8 */ lwc1 $f6, 0x2d8($sp) +/* 0CEAD0 7F099FA0 AFA200D0 */ sw $v0, 0xd0($sp) +/* 0CEAD4 7F099FA4 4606A302 */ mul.s $f12, $f20, $f6 +/* 0CEAD8 7F099FA8 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CEADC 7F099FAC 00000000 */ nop +/* 0CEAE0 7F099FB0 C7B401C4 */ lwc1 $f20, 0x1c4($sp) +/* 0CEAE4 7F099FB4 C7A802DC */ lwc1 $f8, 0x2dc($sp) +/* 0CEAE8 7F099FB8 AFA200CC */ sw $v0, 0xcc($sp) +/* 0CEAEC 7F099FBC 4608A302 */ mul.s $f12, $f20, $f8 +/* 0CEAF0 7F099FC0 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CEAF4 7F099FC4 00000000 */ nop +/* 0CEAF8 7F099FC8 C7B401C4 */ lwc1 $f20, 0x1c4($sp) +/* 0CEAFC 7F099FCC C7AA02E0 */ lwc1 $f10, 0x2e0($sp) +/* 0CEB00 7F099FD0 AFA200C8 */ sw $v0, 0xc8($sp) +/* 0CEB04 7F099FD4 460AA302 */ mul.s $f12, $f20, $f10 +/* 0CEB08 7F099FD8 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CEB0C 7F099FDC 00000000 */ nop +/* 0CEB10 7F099FE0 C7B401C4 */ lwc1 $f20, 0x1c4($sp) +/* 0CEB14 7F099FE4 C7A402F4 */ lwc1 $f4, 0x2f4($sp) +/* 0CEB18 7F099FE8 AFA200C4 */ sw $v0, 0xc4($sp) +/* 0CEB1C 7F099FEC 4604A302 */ mul.s $f12, $f20, $f4 +/* 0CEB20 7F099FF0 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CEB24 7F099FF4 00000000 */ nop +/* 0CEB28 7F099FF8 C7B401C4 */ lwc1 $f20, 0x1c4($sp) +/* 0CEB2C 7F099FFC C7A602F8 */ lwc1 $f6, 0x2f8($sp) +/* 0CEB30 7F09A000 AFA200B0 */ sw $v0, 0xb0($sp) +/* 0CEB34 7F09A004 4606A302 */ mul.s $f12, $f20, $f6 +/* 0CEB38 7F09A008 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CEB3C 7F09A00C 00000000 */ nop +/* 0CEB40 7F09A010 C7B401C4 */ lwc1 $f20, 0x1c4($sp) +/* 0CEB44 7F09A014 C7A802FC */ lwc1 $f8, 0x2fc($sp) +/* 0CEB48 7F09A018 AFA200AC */ sw $v0, 0xac($sp) +/* 0CEB4C 7F09A01C 4608A302 */ mul.s $f12, $f20, $f8 +/* 0CEB50 7F09A020 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CEB54 7F09A024 00000000 */ nop +/* 0CEB58 7F09A028 C7B401C4 */ lwc1 $f20, 0x1c4($sp) +/* 0CEB5C 7F09A02C C7AA0300 */ lwc1 $f10, 0x300($sp) +/* 0CEB60 7F09A030 AFA200A8 */ sw $v0, 0xa8($sp) +/* 0CEB64 7F09A034 460AA302 */ mul.s $f12, $f20, $f10 +/* 0CEB68 7F09A038 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CEB6C 7F09A03C 00000000 */ nop +/* 0CEB70 7F09A040 C7B401C4 */ lwc1 $f20, 0x1c4($sp) +/* 0CEB74 7F09A044 C7A40274 */ lwc1 $f4, 0x274($sp) +/* 0CEB78 7F09A048 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0CEB7C 7F09A04C 4604A302 */ mul.s $f12, $f20, $f4 +/* 0CEB80 7F09A050 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CEB84 7F09A054 00000000 */ nop +/* 0CEB88 7F09A058 C7B401C4 */ lwc1 $f20, 0x1c4($sp) +/* 0CEB8C 7F09A05C C7A60278 */ lwc1 $f6, 0x278($sp) +/* 0CEB90 7F09A060 AFA200C0 */ sw $v0, 0xc0($sp) +/* 0CEB94 7F09A064 4606A302 */ mul.s $f12, $f20, $f6 +/* 0CEB98 7F09A068 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CEB9C 7F09A06C 00000000 */ nop +/* 0CEBA0 7F09A070 C7B401C4 */ lwc1 $f20, 0x1c4($sp) +/* 0CEBA4 7F09A074 C7A8027C */ lwc1 $f8, 0x27c($sp) +/* 0CEBA8 7F09A078 AFA200BC */ sw $v0, 0xbc($sp) +/* 0CEBAC 7F09A07C 4608A302 */ mul.s $f12, $f20, $f8 +/* 0CEBB0 7F09A080 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CEBB4 7F09A084 00000000 */ nop +/* 0CEBB8 7F09A088 C7B401C4 */ lwc1 $f20, 0x1c4($sp) +/* 0CEBBC 7F09A08C C7AA0280 */ lwc1 $f10, 0x280($sp) +/* 0CEBC0 7F09A090 AFA200B8 */ sw $v0, 0xb8($sp) +/* 0CEBC4 7F09A094 460AA302 */ mul.s $f12, $f20, $f10 +/* 0CEBC8 7F09A098 0FC250A6 */ jal sub_GAME_7F094298 +/* 0CEBCC 7F09A09C 00000000 */ nop +/* 0CEBD0 7F09A0A0 8FA800B8 */ lw $t0, 0xb8($sp) +/* 0CEBD4 7F09A0A4 8FAB00D4 */ lw $t3, 0xd4($sp) +/* 0CEBD8 7F09A0A8 8FBF00E0 */ lw $ra, 0xe0($sp) +/* 0CEBDC 7F09A0AC 3C0DB400 */ lui $t5, 0xb400 +/* 0CEBE0 7F09A0B0 AE0D0000 */ sw $t5, ($s0) +/* 0CEBE4 7F09A0B4 8FB800DC */ lw $t8, 0xdc($sp) +/* 0CEBE8 7F09A0B8 3C09FFFF */ lui $t1, 0xffff +/* 0CEBEC 7F09A0BC 03E97024 */ and $t6, $ra, $t1 +/* 0CEBF0 7F09A0C0 0309C824 */ and $t9, $t8, $t1 +/* 0CEBF4 7F09A0C4 00197C02 */ srl $t7, $t9, 0x10 +/* 0CEBF8 7F09A0C8 01CFC025 */ or $t8, $t6, $t7 +/* 0CEBFC 7F09A0CC AE180004 */ sw $t8, 4($s0) +/* 0CEC00 7F09A0D0 26040008 */ addiu $a0, $s0, 8 +/* 0CEC04 7F09A0D4 3C19B200 */ lui $t9, 0xb200 +/* 0CEC08 7F09A0D8 AC990000 */ sw $t9, ($a0) +/* 0CEC0C 7F09A0DC 8FAE00D8 */ lw $t6, 0xd8($sp) +/* 0CEC10 7F09A0E0 0169C024 */ and $t8, $t3, $t1 +/* 0CEC14 7F09A0E4 0018CC02 */ srl $t9, $t8, 0x10 +/* 0CEC18 7F09A0E8 01C97824 */ and $t7, $t6, $t1 +/* 0CEC1C 7F09A0EC 01F97025 */ or $t6, $t7, $t9 +/* 0CEC20 7F09A0F0 AC8E0004 */ sw $t6, 4($a0) +/* 0CEC24 7F09A0F4 24850008 */ addiu $a1, $a0, 8 +/* 0CEC28 7F09A0F8 ACAD0000 */ sw $t5, ($a1) +/* 0CEC2C 7F09A0FC 8FB900CC */ lw $t9, 0xcc($sp) +/* 0CEC30 7F09A100 8FB800D0 */ lw $t8, 0xd0($sp) +/* 0CEC34 7F09A104 24A60008 */ addiu $a2, $a1, 8 +/* 0CEC38 7F09A108 03297024 */ and $t6, $t9, $t1 +/* 0CEC3C 7F09A10C 03097824 */ and $t7, $t8, $t1 +/* 0CEC40 7F09A110 000EC402 */ srl $t8, $t6, 0x10 +/* 0CEC44 7F09A114 01F8C825 */ or $t9, $t7, $t8 +/* 0CEC48 7F09A118 ACB90004 */ sw $t9, 4($a1) +/* 0CEC4C 7F09A11C 8FAC00C4 */ lw $t4, 0xc4($sp) +/* 0CEC50 7F09A120 3C0EB200 */ lui $t6, 0xb200 +/* 0CEC54 7F09A124 ACCE0000 */ sw $t6, ($a2) +/* 0CEC58 7F09A128 8FAF00C8 */ lw $t7, 0xc8($sp) +/* 0CEC5C 7F09A12C 0189C824 */ and $t9, $t4, $t1 +/* 0CEC60 7F09A130 00197402 */ srl $t6, $t9, 0x10 +/* 0CEC64 7F09A134 01E9C024 */ and $t8, $t7, $t1 +/* 0CEC68 7F09A138 030E7825 */ or $t7, $t8, $t6 +/* 0CEC6C 7F09A13C ACCF0004 */ sw $t7, 4($a2) +/* 0CEC70 7F09A140 24C30008 */ addiu $v1, $a2, 8 +/* 0CEC74 7F09A144 AC6D0000 */ sw $t5, ($v1) +/* 0CEC78 7F09A148 8FAE00DC */ lw $t6, 0xdc($sp) +/* 0CEC7C 7F09A14C 001FC400 */ sll $t8, $ra, 0x10 +/* 0CEC80 7F09A150 24700008 */ addiu $s0, $v1, 8 +/* 0CEC84 7F09A154 31CFFFFF */ andi $t7, $t6, 0xffff +/* 0CEC88 7F09A158 030FC825 */ or $t9, $t8, $t7 +/* 0CEC8C 7F09A15C AC790004 */ sw $t9, 4($v1) +/* 0CEC90 7F09A160 3C0EB200 */ lui $t6, 0xb200 +/* 0CEC94 7F09A164 AE0E0000 */ sw $t6, ($s0) +/* 0CEC98 7F09A168 8FAF00D8 */ lw $t7, 0xd8($sp) +/* 0CEC9C 7F09A16C 316EFFFF */ andi $t6, $t3, 0xffff +/* 0CECA0 7F09A170 26070008 */ addiu $a3, $s0, 8 +/* 0CECA4 7F09A174 000FCC00 */ sll $t9, $t7, 0x10 +/* 0CECA8 7F09A178 032EC025 */ or $t8, $t9, $t6 +/* 0CECAC 7F09A17C AE180004 */ sw $t8, 4($s0) +/* 0CECB0 7F09A180 ACED0000 */ sw $t5, ($a3) +/* 0CECB4 7F09A184 8FB800CC */ lw $t8, 0xcc($sp) +/* 0CECB8 7F09A188 8FB900D0 */ lw $t9, 0xd0($sp) +/* 0CECBC 7F09A18C 8FAB00C0 */ lw $t3, 0xc0($sp) +/* 0CECC0 7F09A190 330FFFFF */ andi $t7, $t8, 0xffff +/* 0CECC4 7F09A194 00197400 */ sll $t6, $t9, 0x10 +/* 0CECC8 7F09A198 8FA600BC */ lw $a2, 0xbc($sp) +/* 0CECCC 7F09A19C 01CFC825 */ or $t9, $t6, $t7 +/* 0CECD0 7F09A1A0 ACF90004 */ sw $t9, 4($a3) +/* 0CECD4 7F09A1A4 3C0DB200 */ lui $t5, 0xb200 +/* 0CECD8 7F09A1A8 24E30008 */ addiu $v1, $a3, 8 +/* 0CECDC 7F09A1AC AC6D0000 */ sw $t5, ($v1) +/* 0CECE0 7F09A1B0 8FAE00C8 */ lw $t6, 0xc8($sp) +/* 0CECE4 7F09A1B4 3199FFFF */ andi $t9, $t4, 0xffff +/* 0CECE8 7F09A1B8 24640008 */ addiu $a0, $v1, 8 +/* 0CECEC 7F09A1BC 000E7C00 */ sll $t7, $t6, 0x10 +/* 0CECF0 7F09A1C0 01F9C025 */ or $t8, $t7, $t9 +/* 0CECF4 7F09A1C4 AC780004 */ sw $t8, 4($v1) +/* 0CECF8 7F09A1C8 3C0EB400 */ lui $t6, 0xb400 +/* 0CECFC 7F09A1CC 00C9C824 */ and $t9, $a2, $t1 +/* 0CED00 7F09A1D0 0019C402 */ srl $t8, $t9, 0x10 +/* 0CED04 7F09A1D4 AC8E0000 */ sw $t6, ($a0) +/* 0CED08 7F09A1D8 01697824 */ and $t7, $t3, $t1 +/* 0CED0C 7F09A1DC 01F87025 */ or $t6, $t7, $t8 +/* 0CED10 7F09A1E0 00497824 */ and $t7, $v0, $t1 +/* 0CED14 7F09A1E4 AC8E0004 */ sw $t6, 4($a0) +/* 0CED18 7F09A1E8 000FC402 */ srl $t8, $t7, 0x10 +/* 0CED1C 7F09A1EC 0109C824 */ and $t9, $t0, $t1 +/* 0CED20 7F09A1F0 24850008 */ addiu $a1, $a0, 8 +/* 0CED24 7F09A1F4 03387025 */ or $t6, $t9, $t8 +/* 0CED28 7F09A1F8 ACAE0004 */ sw $t6, 4($a1) +/* 0CED2C 7F09A1FC ACAD0000 */ sw $t5, ($a1) +/* 0CED30 7F09A200 8FBF00AC */ lw $ra, 0xac($sp) +/* 0CED34 7F09A204 8FAD00B0 */ lw $t5, 0xb0($sp) +/* 0CED38 7F09A208 00405025 */ move $t2, $v0 +/* 0CED3C 7F09A20C 24B00008 */ addiu $s0, $a1, 8 +/* 0CED40 7F09A210 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0CED44 7F09A214 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0CED48 7F09A218 02001025 */ move $v0, $s0 +/* 0CED4C 7F09A21C 3C0FB400 */ lui $t7, 0xb400 +/* 0CED50 7F09A220 03E9C024 */ and $t8, $ra, $t1 +/* 0CED54 7F09A224 00187402 */ srl $t6, $t8, 0x10 +/* 0CED58 7F09A228 AC4F0000 */ sw $t7, ($v0) +/* 0CED5C 7F09A22C 01A9C824 */ and $t9, $t5, $t1 +/* 0CED60 7F09A230 032E7825 */ or $t7, $t9, $t6 +/* 0CED64 7F09A234 AC4F0004 */ sw $t7, 4($v0) +/* 0CED68 7F09A238 26030008 */ addiu $v1, $s0, 8 +/* 0CED6C 7F09A23C 3C18B200 */ lui $t8, 0xb200 +/* 0CED70 7F09A240 00E97024 */ and $t6, $a3, $t1 +/* 0CED74 7F09A244 000E7C02 */ srl $t7, $t6, 0x10 +/* 0CED78 7F09A248 AC780000 */ sw $t8, ($v1) +/* 0CED7C 7F09A24C 0189C824 */ and $t9, $t4, $t1 +/* 0CED80 7F09A250 032FC025 */ or $t8, $t9, $t7 +/* 0CED84 7F09A254 AC780004 */ sw $t8, 4($v1) +/* 0CED88 7F09A258 24700008 */ addiu $s0, $v1, 8 +/* 0CED8C 7F09A25C 3C0EB400 */ lui $t6, 0xb400 +/* 0CED90 7F09A260 AE0E0000 */ sw $t6, ($s0) +/* 0CED94 7F09A264 000B7C00 */ sll $t7, $t3, 0x10 +/* 0CED98 7F09A268 30D8FFFF */ andi $t8, $a2, 0xffff +/* 0CED9C 7F09A26C 01F87025 */ or $t6, $t7, $t8 +/* 0CEDA0 7F09A270 AE0E0004 */ sw $t6, 4($s0) +/* 0CEDA4 7F09A274 26050008 */ addiu $a1, $s0, 8 +/* 0CEDA8 7F09A278 3C19B200 */ lui $t9, 0xb200 +/* 0CEDAC 7F09A27C ACB90000 */ sw $t9, ($a1) +/* 0CEDB0 7F09A280 314EFFFF */ andi $t6, $t2, 0xffff +/* 0CEDB4 7F09A284 0008C400 */ sll $t8, $t0, 0x10 +/* 0CEDB8 7F09A288 030EC825 */ or $t9, $t8, $t6 +/* 0CEDBC 7F09A28C ACB90004 */ sw $t9, 4($a1) +/* 0CEDC0 7F09A290 24A30008 */ addiu $v1, $a1, 8 +/* 0CEDC4 7F09A294 3C0FB400 */ lui $t7, 0xb400 +/* 0CEDC8 7F09A298 AC6F0000 */ sw $t7, ($v1) +/* 0CEDCC 7F09A29C 33F9FFFF */ andi $t9, $ra, 0xffff +/* 0CEDD0 7F09A2A0 000D7400 */ sll $t6, $t5, 0x10 +/* 0CEDD4 7F09A2A4 01D97825 */ or $t7, $t6, $t9 +/* 0CEDD8 7F09A2A8 AC6F0004 */ sw $t7, 4($v1) +/* 0CEDDC 7F09A2AC 24640008 */ addiu $a0, $v1, 8 +/* 0CEDE0 7F09A2B0 3C18B300 */ lui $t8, 0xb300 +/* 0CEDE4 7F09A2B4 AC980000 */ sw $t8, ($a0) +/* 0CEDE8 7F09A2B8 000CCC00 */ sll $t9, $t4, 0x10 +/* 0CEDEC 7F09A2BC 30EFFFFF */ andi $t7, $a3, 0xffff +/* 0CEDF0 7F09A2C0 032FC025 */ or $t8, $t9, $t7 +/* 0CEDF4 7F09A2C4 AC980004 */ sw $t8, 4($a0) +/* 0CEDF8 7F09A2C8 24820008 */ addiu $v0, $a0, 8 +.L7F09A2CC: +/* 0CEDFC 7F09A2CC 8FBF0024 */ lw $ra, 0x24($sp) +/* 0CEE00 7F09A2D0 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0CEE04 7F09A2D4 8FB00020 */ lw $s0, 0x20($sp) +/* 0CEE08 7F09A2D8 03E00008 */ jr $ra +/* 0CEE0C 7F09A2DC 27BD04D0 */ addiu $sp, $sp, 0x4d0 +) +#endif + + + + + +#ifdef NONMATCHING +void default_player_perspective_and_height(void) +{ + player1_playerdata[0].handicap = 1.00000000; + player1_playerdata[0].player_perspective_height = 1.00000000; + player1_playerdata[1].handicap = 1.00000000; + player1_playerdata[1].player_perspective_height = 1.00000000; + player1_playerdata[2].handicap = 1.00000000; + player1_playerdata[2].player_perspective_height = 1.00000000; + player1_playerdata[3].handicap = 1.00000000; + player1_playerdata[3].player_perspective_height = 1.00000000; +} +#else +GLOBAL_ASM( +.text +glabel default_player_perspective_and_height +/* 0CEE10 7F09A2E0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CEE14 7F09A2E4 44810000 */ mtc1 $at, $f0 +/* 0CEE18 7F09A2E8 3C018008 */ lui $at, %hi(player1_player_data+0x64) +/* 0CEE1C 7F09A2EC E4209F54 */ swc1 $f0, %lo(player1_player_data+0x64)($at) +/* 0CEE20 7F09A2F0 3C018008 */ lui $at, %hi(player1_player_data+0x5c) +/* 0CEE24 7F09A2F4 E4209F4C */ swc1 $f0, %lo(player1_player_data+0x5c)($at) +/* 0CEE28 7F09A2F8 3C018008 */ lui $at, %hi(player2_player_data+0x64) +/* 0CEE2C 7F09A2FC E4209FC4 */ swc1 $f0, %lo(player2_player_data+0x64)($at) +/* 0CEE30 7F09A300 3C018008 */ lui $at, %hi(player2_player_data+0x5C) +/* 0CEE34 7F09A304 E4209FBC */ swc1 $f0, %lo(player2_player_data+0x5C)($at) +/* 0CEE38 7F09A308 3C018008 */ lui $at, %hi(player3_player_data+0x64) +/* 0CEE3C 7F09A30C E420A034 */ swc1 $f0, %lo(player3_player_data+0x64)($at) +/* 0CEE40 7F09A310 3C018008 */ lui $at, %hi(player3_player_data+0x5C) +/* 0CEE44 7F09A314 E420A02C */ swc1 $f0, %lo(player3_player_data+0x5C)($at) +/* 0CEE48 7F09A318 3C018008 */ lui $at, %hi(player4_player_data+0x64) +/* 0CEE4C 7F09A31C E420A0A4 */ swc1 $f0, %lo(player4_player_data+0x64)($at) +/* 0CEE50 7F09A320 3C018008 */ lui $at, %hi(player4_player_data+92) +/* 0CEE54 7F09A324 03E00008 */ jr $ra +/* 0CEE58 7F09A328 E420A09C */ swc1 $f0, %lo(player4_player_data+92)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void reset_play_data_ptrs(void) +{ + ptr_BONDdata_p1[0] = NULL; + ptr_BONDdata_p1[1] = NULL; + ptr_BONDdata_p1[2] = NULL; + ptr_BONDdata_p1[3] = NULL; + pPlayer = NULL; + pPlayersPerm = NULL; + player_num = 0; + random_byte = 0; + DAT_8007a0c0 = 0; + DAT_8007a0c4 = 1; + DAT_8007a0c8 = 2; + DAT_8007a0cc = 3; +} +#else +GLOBAL_ASM( +.text +glabel reset_play_data_ptrs +/* 0CEE5C 7F09A32C 3C028008 */ lui $v0, %hi(ptr_BONDdata_p1) +/* 0CEE60 7F09A330 24429EE0 */ addiu $v0, %lo(ptr_BONDdata_p1) # addiu $v0, $v0, -0x6120 +/* 0CEE64 7F09A334 AC400000 */ sw $zero, ($v0) +/* 0CEE68 7F09A338 AC400004 */ sw $zero, 4($v0) +/* 0CEE6C 7F09A33C AC400008 */ sw $zero, 8($v0) +/* 0CEE70 7F09A340 AC40000C */ sw $zero, 0xc($v0) +/* 0CEE74 7F09A344 3C018008 */ lui $at, %hi(pPlayer) +/* 0CEE78 7F09A348 AC20A0B0 */ sw $zero, %lo(pPlayer)($at) +/* 0CEE7C 7F09A34C 3C018008 */ lui $at, %hi(pPlayersPerm) +/* 0CEE80 7F09A350 AC20A0B4 */ sw $zero, %lo(pPlayersPerm)($at) +/* 0CEE84 7F09A354 3C018008 */ lui $at, %hi(player_num) +/* 0CEE88 7F09A358 AC20A0B8 */ sw $zero, %lo(player_num)($at) +/* 0CEE8C 7F09A35C 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A0C0) +/* 0CEE90 7F09A360 3C018008 */ lui $at, %hi(random_byte) +/* 0CEE94 7F09A364 2463A0C0 */ addiu $v1, %lo(dword_CODE_bss_8007A0C0) # addiu $v1, $v1, -0x5f40 +/* 0CEE98 7F09A368 AC20A0BC */ sw $zero, %lo(random_byte)($at) +/* 0CEE9C 7F09A36C 240E0001 */ li $t6, 1 +/* 0CEEA0 7F09A370 240F0002 */ li $t7, 2 +/* 0CEEA4 7F09A374 24180003 */ li $t8, 3 +/* 0CEEA8 7F09A378 AC600000 */ sw $zero, ($v1) +/* 0CEEAC 7F09A37C AC6E0004 */ sw $t6, 4($v1) +/* 0CEEB0 7F09A380 AC6F0008 */ sw $t7, 8($v1) +/* 0CEEB4 7F09A384 03E00008 */ jr $ra +/* 0CEEB8 7F09A388 AC78000C */ sw $t8, 0xc($v1) +) +#endif + + + + +#ifdef NONMATCHING +void init_player_data_ptrs_construct_viewports(int playercount) +{ + int player; + + ptr_BONDdata_p1[0] = NULL; + ptr_BONDdata_p1[1] = NULL; + ptr_BONDdata_p1[2] = NULL; + ptr_BONDdata_p1[3] = NULL; + + random_byte = get_random_value() & 0xff; + if (playercount < 1) { + initBONDdataforPlayer(0); + set_cur_player(0); + set_cur_player_screen_size( get_video2_settings_width(), get_video2_settings_height() ); + set_cur_player_viewport_size( get_video2_settings_ulx(), get_video2_settings_uly() ); + } + else { + for (player = 0; player != playercount; player++) + { + initBONDdataforPlayer(player); + } + set_cur_player(0); + } + return; +} +#else +GLOBAL_ASM( +.text +glabel init_player_data_ptrs_construct_viewports +/* 0CEEBC 7F09A38C 3C028008 */ lui $v0, %hi(ptr_BONDdata_p1) +/* 0CEEC0 7F09A390 24429EE0 */ addiu $v0, %lo(ptr_BONDdata_p1) # addiu $v0, $v0, -0x6120 +/* 0CEEC4 7F09A394 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0CEEC8 7F09A398 AFBF001C */ sw $ra, 0x1c($sp) +/* 0CEECC 7F09A39C AFB10018 */ sw $s1, 0x18($sp) +/* 0CEED0 7F09A3A0 00808825 */ move $s1, $a0 +/* 0CEED4 7F09A3A4 AFB00014 */ sw $s0, 0x14($sp) +/* 0CEED8 7F09A3A8 AC400000 */ sw $zero, ($v0) +/* 0CEEDC 7F09A3AC AC400004 */ sw $zero, 4($v0) +/* 0CEEE0 7F09A3B0 AC400008 */ sw $zero, 8($v0) +/* 0CEEE4 7F09A3B4 0C002914 */ jal get_random_value +/* 0CEEE8 7F09A3B8 AC40000C */ sw $zero, 0xc($v0) +/* 0CEEEC 7F09A3BC 304E00FF */ andi $t6, $v0, 0xff +/* 0CEEF0 7F09A3C0 3C018008 */ lui $at, %hi(random_byte) +/* 0CEEF4 7F09A3C4 1A20000C */ blez $s1, .L7F09A3F8 +/* 0CEEF8 7F09A3C8 AC2EA0BC */ sw $t6, %lo(random_byte)($at) +/* 0CEEFC 7F09A3CC 1A200006 */ blez $s1, .L7F09A3E8 +/* 0CEF00 7F09A3D0 00008025 */ move $s0, $zero +.L7F09A3D4: +/* 0CEF04 7F09A3D4 0FC2692F */ jal initBONDdataforPlayer +/* 0CEF08 7F09A3D8 02002025 */ move $a0, $s0 +/* 0CEF0C 7F09A3DC 26100001 */ addiu $s0, $s0, 1 +/* 0CEF10 7F09A3E0 1611FFFC */ bne $s0, $s1, .L7F09A3D4 +/* 0CEF14 7F09A3E4 00000000 */ nop +.L7F09A3E8: +/* 0CEF18 7F09A3E8 0FC26C43 */ jal set_cur_player +/* 0CEF1C 7F09A3EC 00002025 */ move $a0, $zero +/* 0CEF20 7F09A3F0 10000018 */ b .L7F09A454 +/* 0CEF24 7F09A3F4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F09A3F8: +/* 0CEF28 7F09A3F8 0FC2692F */ jal initBONDdataforPlayer +/* 0CEF2C 7F09A3FC 00002025 */ move $a0, $zero +/* 0CEF30 7F09A400 0FC26C43 */ jal set_cur_player +/* 0CEF34 7F09A404 00002025 */ move $a0, $zero +/* 0CEF38 7F09A408 0C001127 */ jal get_video2_settings_width +/* 0CEF3C 7F09A40C 00000000 */ nop +/* 0CEF40 7F09A410 00028400 */ sll $s0, $v0, 0x10 +/* 0CEF44 7F09A414 00107C03 */ sra $t7, $s0, 0x10 +/* 0CEF48 7F09A418 0C00112B */ jal get_video2_settings_height +/* 0CEF4C 7F09A41C 01E08025 */ move $s0, $t7 +/* 0CEF50 7F09A420 02002025 */ move $a0, $s0 +/* 0CEF54 7F09A424 0FC26C77 */ jal set_cur_player_screen_size +/* 0CEF58 7F09A428 00402825 */ move $a1, $v0 +/* 0CEF5C 7F09A42C 0C001145 */ jal get_video2_settings_ulx +/* 0CEF60 7F09A430 00000000 */ nop +/* 0CEF64 7F09A434 00028400 */ sll $s0, $v0, 0x10 +/* 0CEF68 7F09A438 0010C403 */ sra $t8, $s0, 0x10 +/* 0CEF6C 7F09A43C 0C001149 */ jal get_video2_settings_uly +/* 0CEF70 7F09A440 03008025 */ move $s0, $t8 +/* 0CEF74 7F09A444 02002025 */ move $a0, $s0 +/* 0CEF78 7F09A448 0FC26C7E */ jal set_cur_player_viewport_size +/* 0CEF7C 7F09A44C 00402825 */ move $a1, $v0 +/* 0CEF80 7F09A450 8FBF001C */ lw $ra, 0x1c($sp) +.L7F09A454: +/* 0CEF84 7F09A454 8FB00014 */ lw $s0, 0x14($sp) +/* 0CEF88 7F09A458 8FB10018 */ lw $s1, 0x18($sp) +/* 0CEF8C 7F09A45C 03E00008 */ jr $ra +/* 0CEF90 7F09A460 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +u32 get_num_players(void) +{ + u32 uVar1; + + uVar1 = (u32)(ptr_BONDdata_p1[0] != NULL); + if (ptr_BONDdata_p1[1] != NULL) { + uVar1 = (uint)(ptr_BONDdata_p1[0] != NULL) + 1; + } + if (ptr_BONDdata_p1[2] != NULL) { + uVar1 = uVar1 + 1; + } + if (ptr_BONDdata_p1[3] != NULL) { + uVar1 = uVar1 + 1; + } + return uVar1; +} +#else +GLOBAL_ASM( +.text +glabel get_num_players +/* 0CEF94 7F09A464 3C0E8008 */ lui $t6, %hi(ptr_BONDdata_p1) +/* 0CEF98 7F09A468 8DCE9EE0 */ lw $t6, %lo(ptr_BONDdata_p1)($t6) +/* 0CEF9C 7F09A46C 00001825 */ move $v1, $zero +/* 0CEFA0 7F09A470 3C0F8008 */ lui $t7, %hi(ptr_BONDdata_p2) +/* 0CEFA4 7F09A474 11C00002 */ beqz $t6, .L7F09A480 +/* 0CEFA8 7F09A478 3C188008 */ lui $t8, %hi(ptr_BONDdata_p3) +/* 0CEFAC 7F09A47C 24030001 */ li $v1, 1 +.L7F09A480: +/* 0CEFB0 7F09A480 8DEF9EE4 */ lw $t7, %lo(ptr_BONDdata_p2)($t7) +/* 0CEFB4 7F09A484 3C198008 */ lui $t9, %hi(ptr_BONDdata_p4) +/* 0CEFB8 7F09A488 11E00002 */ beqz $t7, .L7F09A494 +/* 0CEFBC 7F09A48C 00000000 */ nop +/* 0CEFC0 7F09A490 24630001 */ addiu $v1, $v1, 1 +.L7F09A494: +/* 0CEFC4 7F09A494 8F189EE8 */ lw $t8, %lo(ptr_BONDdata_p3)($t8) +/* 0CEFC8 7F09A498 13000002 */ beqz $t8, .L7F09A4A4 +/* 0CEFCC 7F09A49C 00000000 */ nop +/* 0CEFD0 7F09A4A0 24630001 */ addiu $v1, $v1, 1 +.L7F09A4A4: +/* 0CEFD4 7F09A4A4 8F399EEC */ lw $t9, %lo(ptr_BONDdata_p4)($t9) +/* 0CEFD8 7F09A4A8 13200002 */ beqz $t9, .L7F09A4B4 +/* 0CEFDC 7F09A4AC 00000000 */ nop +/* 0CEFE0 7F09A4B0 24630001 */ addiu $v1, $v1, 1 +.L7F09A4B4: +/* 0CEFE4 7F09A4B4 03E00008 */ jr $ra +/* 0CEFE8 7F09A4B8 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void initBONDdataforPlayer(PLAYER_ID player) +{ + int iVar1; + int iVar2; + Player **ppPVar3; + int *dest; + int *src; + int *src_next; + Player *pPVar4; + int array234undefined4 [234]; + int iStack4; + f32 temp_3f36e15f8e; + + src = init_BONDdata_related_8003fda0; + dest = array234undefined4; + do { + src_next = src + 3; + *dest = *src; + dest[1] = src[1]; + dest[2] = src[2]; + src = src_next; + dest = dest + 3; + } while (src_next != (int *)0x80040148); + pPVar4 = (Player *)mempAllocBytesInBank(0x2a80,4); + ppPVar3 = ptr_BONDdata_p1 + player; + *ppPVar3 = pPVar4; + pPVar4->unknown = 0; + (*ppPVar3)->xpos = 0.00000000; + (*ppPVar3)->ypos = 0.00000000; + (*ppPVar3)->zpos = 0.00000000; + (*ppPVar3)->xpos2 = 0.00000000; + (*ppPVar3)->ypos2 = 0.00000000; + (*ppPVar3)->zpos2 = 1.00000000; + (*ppPVar3)->xoffset = 0.00000000; + (*ppPVar3)->yoffset = 1.00000000; + (*ppPVar3)->zoffset = 0.00000000; + (*ppPVar3)->xpos3 = 0.00000000; + (*ppPVar3)->ypos3 = 0.00000000; + (*ppPVar3)->zpos3 = 0.00000000; + (*ppPVar3)->room_pointer = 0; + (*ppPVar3)->current_model_xpos = 0.00000000; + (*ppPVar3)->current_model_ypos = 0.00000000; + (*ppPVar3)->current_model_zpos = 0.00000000; + (*ppPVar3)->previous_model_xpos = 0.00000000; + (*ppPVar3)->previous_model_ypos = 0.00000000; + (*ppPVar3)->previous_model_zpos = 0.00000000; + (*ppPVar3)->current_room_xpos = 0.00000000; + (*ppPVar3)->current_room_ypos = 0.00000000; + (*ppPVar3)->current_room_zpos = 0.00000000; + (*ppPVar3)->field_6C = 0.00000000; + (*ppPVar3)->field_70 = 0.00000000; + (*ppPVar3)->clipping_height = 0.00000000; + (*ppPVar3)->field_78 = 0.00000000; + (*ppPVar3)->field_7C = 0.00000000; + (*ppPVar3)->field_80 = 0.00000000; + (*ppPVar3)->field_84 = 0.00000000; + (*ppPVar3)->field_88 = 0.00000000; + (*ppPVar3)->field_8C = 0; + (*ppPVar3)->field_90 = 0.00000000; + (*ppPVar3)->field_94 = 0; + (*ppPVar3)->field_98 = 0.00000000; + (*ppPVar3)->field_1274 = 0.00000000; + (*ppPVar3)->field_1278 = 0.00000000; + (*ppPVar3)->field_127C = 0.00000000; + (*ppPVar3)->crouchposition = 2; + (*ppPVar3)->field_29FC = 2; + (*ppPVar3)->ducking_height_offset = 0.00000000; + (*ppPVar3)->field_A4 = 0.00000000; + (*ppPVar3)->position_data_pointer = 0; + (*ppPVar3)->field_AC = 1; + (*ppPVar3)->field_D0 = 0; + (*ppPVar3)->ptr_char_objectinstance = 0; + (*ppPVar3)->bonddead = 0; + (*ppPVar3)->bondhealth = 1.00000000; + (*ppPVar3)->bondarmour = 0.00000000; + (*ppPVar3)->oldhealth = 1.00000000; + (*ppPVar3)->oldarmour = 0.00000000; + (*ppPVar3)->apparenthealth = 1.00000000; + (*ppPVar3)->apparentarmour = 0.00000000; + (*ppPVar3)->damageshowtime = -1; + (*ppPVar3)->healthshowtime = -1; + (*ppPVar3)->field_104 = 0; + (*ppPVar3)->field_108 = 0; + (*ppPVar3)->field_10C = 0; + (*ppPVar3)->movecentrerelease = 0; + (*ppPVar3)->lookaheadcentreenabled = 1; + (*ppPVar3)->automovecentreenabled = 1; + (*ppPVar3)->fastmovecentreenabled = 0; + (*ppPVar3)->automovecentre = 1; + (*ppPVar3)->insightaimmode = 0; + (*ppPVar3)->autoyaimenabled = 1; + (*ppPVar3)->autoaimy = 0.00000000; + (*ppPVar3)->autoyaimtime = 0; + (*ppPVar3)->autoyaimtime60 = -1; + (*ppPVar3)->autoxaimenabled = 1; + (*ppPVar3)->autoaimx = 0.00000000; + (*ppPVar3)->autoxaimtime = 0; + (*ppPVar3)->autoxaimtime60 = -1; + (*ppPVar3)->vv_theta = 0.00000000; + (*ppPVar3)->speedtheta = 0.00000000; + (*ppPVar3)->vv_costheta = 1.00000000; + (*ppPVar3)->vv_sintheta = 0.00000000; + (*ppPVar3)->vv_verta = -4.00000000; + (*ppPVar3)->vv_verta360 = -229.18310547; + (*ppPVar3)->speedverta = 0.00000000; + (*ppPVar3)->vv_cosverta = 1.00000000; + (*ppPVar3)->vv_sinverta = 0.00000000; + (*ppPVar3)->speedsideways = 0.00000000; + (*ppPVar3)->speedstrafe = 0.00000000; + (*ppPVar3)->speedforwards = 0.00000000; + (*ppPVar3)->field_2A4C = 0.00000000; + (*ppPVar3)->speedboost = 1.00000000; + (*ppPVar3)->boost_factor_x = 0.00000000; + (*ppPVar3)->boost_factor_y = 0.00000000; + (*ppPVar3)->boost_factor_z = 0.00000000; + (*ppPVar3)->viewport_alpha = -1.00000000; + (*ppPVar3)->bondfadetime60 = -1.00000000; + (*ppPVar3)->bondfadetimemax = 0.00000000; + (*ppPVar3)->bondfadefracold = 0.00000000; + (*ppPVar3)->bondfadefracnew = 0.00000000; + (*ppPVar3)->field_1A0 = 0; + (*ppPVar3)->field_1C0 = 0; + (*ppPVar3)->field_1C4 = 0; + (*ppPVar3)->pause_animation_state = 0; + (*ppPVar3)->paused_flag = 1; + (*ppPVar3)->open_close_solo_watch_menu = 0; + (*ppPVar3)->field_1D4 = 0.00000000; + (*ppPVar3)->field_1D8 = 0.00000000; + (*ppPVar3)->pause_watch_position = -25.00000000; + (*ppPVar3)->field_1E0 = 0.00000000; + (*ppPVar3)->field_1E4 = 1.00000000; + (*ppPVar3)->field_1E8 = 0.00000000; + (*ppPVar3)->field_1EC = 0.00000000; + (*ppPVar3)->field_1F0 = 0.00000000; + (*ppPVar3)->field_1F4 = 1.00000000; + (*ppPVar3)->pausing_flag = 0; + (*ppPVar3)->pause_starting_angle = 0.00000000; + (*ppPVar3)->field_208 = 0.00000000; + (*ppPVar3)->pause_target_angle = 0.00000000; + (*ppPVar3)->field_210 = 0.00000000; + (*ppPVar3)->field_214 = 0.00000000; + (*ppPVar3)->field_218 = 0; + (*ppPVar3)->field_21C = 1; + (*ppPVar3)->step_in_view_watch_animation = 0; + (*ppPVar3)->pause_animation_counter = 0.00000000; + (*ppPVar3)->field_3B4 = 0; + (*ppPVar3)->field_3B6 = 0; + (*ppPVar3)->field_3B8 = 0.00000000; + (*ppPVar3)->field_3BC = 0.00000000; + *(float *)&(*ppPVar3)->field_3C0 = 9.99999809; + (*ppPVar3)->field_3C4 = 0.00000000; + (*ppPVar3)->field_3C8 = 0.00000000; + (*ppPVar3)->field_3CC = 1.00000000; + (*ppPVar3)->tint_red = 0xff; + (*ppPVar3)->tint_green = 0xff; + (*ppPVar3)->tint_blue = 0xff; + (*ppPVar3)->tint_alpha = 0.00000000; + (*ppPVar3)->field_3E0 = -1.00000000; + (*ppPVar3)->timer_for_fade = -1.00000000; + (*ppPVar3)->field_3E8 = 0xff; + (*ppPVar3)->field_3EC = 0xff; + (*ppPVar3)->field_3F0 = 0xff; + (*ppPVar3)->field_3F4 = 0xff; + (*ppPVar3)->field_3F8 = 0xff; + (*ppPVar3)->field_3FC = 0xff; + (*ppPVar3)->field_400 = 0.00000000; + (*ppPVar3)->field_404 = 0.00000000; + (*ppPVar3)->cuff_value = CUFF_BLUE; + (*ppPVar3)->field_420 = 1; + (*ppPVar3)->field_424 = 0; + (*ppPVar3)->field_428 = 0; + (*ppPVar3)->field_42C = 2; + (*ppPVar3)->controlstyle = 0; + (*ppPVar3)->field_4DC = 1; + (*ppPVar3)->field_4E0 = 1; + (*ppPVar3)->field_4E4 = 1; + (*ppPVar3)->field_4E8 = 0; + (*ppPVar3)->field_4EC = 0.93000001; + (*ppPVar3)->field_4F0 = 0; + (*ppPVar3)->field_4F4 = 1.00000000; + (*ppPVar3)->field_4F8 = 1.00000000; + (*ppPVar3)->scaled_velocity = 0.00000000; + (*ppPVar3)->field_500 = 0.00000000; + (*ppPVar3)->field_504 = 0.00000000; + (*ppPVar3)->field_508 = 0.00000000; + (*ppPVar3)->field_50C = 0.00000000; + (*ppPVar3)->field_510 = 1.00000000; + (*ppPVar3)->field_514 = 0.00000000; + (*ppPVar3)->field_518 = 1.00000000; + (*ppPVar3)->field_51C = 0.00000000; + (*ppPVar3)->velocity = 0.00000000; + (*ppPVar3)->field_524 = 0.00000000; + (*ppPVar3)->field_528 = 0.00000000; + (*ppPVar3)->field_52C = 0.00000000; + (*ppPVar3)->field_530 = 0.00000000; + *(f32 *)&(*ppPVar3)->field_534 = 14.28571606; + (*ppPVar3)->field_538 = 0; + (*ppPVar3)->field_53C = 14.28571606; + (*ppPVar3)->field_540 = 0.00000000; + (*ppPVar3)->field_544 = 0.00000000; + (*ppPVar3)->field_548 = 0.00000000; + (*ppPVar3)->field_54C = 0.00000000; + (*ppPVar3)->stationary_ground_offset = 0.00000000; + (*ppPVar3)->field_554 = 0.00000000; + (*ppPVar3)->field_558 = 0.00000000; + (*ppPVar3)->field_55C = 0.00000000; + (*ppPVar3)->field_560 = 0.00000000; + (*ppPVar3)->field_564 = 0.00000000; + (*ppPVar3)->field_568 = 0.00000000; + (*ppPVar3)->field_56C = 1.00000000; + (*ppPVar3)->field_570 = 0.00000000; + (*ppPVar3)->field_574 = 0.00000000; + (*ppPVar3)->field_578 = 1.00000000; + (*ppPVar3)->field_57C = 0.00000000; + (*ppPVar3)->field_580 = 1.00000000; + (*ppPVar3)->field_584 = 0.00000000; + (*ppPVar3)->field_588 = 0.00000000; + (*ppPVar3)->field_58C = 1.00000000; + (*ppPVar3)->field_590 = 0.00000000; + (*ppPVar3)->field_594 = 0; + iVar1 = 0; + do { + *(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7D0 + iVar1) = 0x280; + *(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7D2 + iVar1) = 0x1e0; + *(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7D4 + iVar1) = 0x1ff; + *(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7D6 + iVar1) = 0; + *(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7D8 + iVar1) = 0x280; + *(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7DA + iVar1) = 0x1e0; + *(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7DC + iVar1) = 0x1ff; + iVar2 = iVar1 + 0x10; + *(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7DE + iVar1) = 0; + iVar1 = iVar2; + } while (iVar2 != 0x20); + (*ppPVar3)->viewx = 100; + (*ppPVar3)->viewy = 100; + (*ppPVar3)->viewleft = 0; + (*ppPVar3)->viewtop = 0; + (*ppPVar3)->hand_invisible[0] = 0; + (*ppPVar3)->hand_invisible[1] = 0; + (*ppPVar3)->hand_item[0] = ITEM_UNARMED; + (*ppPVar3)->hand_item[1] = ITEM_UNARMED; + (*ppPVar3)->field_2A44[0] = -1; + (*ppPVar3)->field_2A44[1] = -1; + (*ppPVar3)->lock_hand_model[0] = 0; + (*ppPVar3)->lock_hand_model[1] = 0; + (*ppPVar3)->ptr_hand_weapon_buffer[0] = NULL; + (*ppPVar3)->ptr_hand_weapon_buffer[1] = NULL; + pPVar4 = *ppPVar3; + src = array234undefined4; + do { + dest = src + 3; + pPVar4->right_weapon = *src; + pPVar4->right_weapon_attack = src[1]; + pPVar4->previous_right_weapon = src[2]; + pPVar4 = (Player *)&pPVar4->zpos; + src = dest; + } while (dest != &iStack4); + src = array234undefined4; + pPVar4 = *ppPVar3; + do { + dest = src + 3; + pPVar4->left_weapon = *src; + pPVar4->left_weapon_attack = src[1]; + pPVar4->left_weapon_previous = src[2]; + src = dest; + pPVar4 = (Player *)&pPVar4->zpos; + } while (dest != &iStack4); + (*ppPVar3)->field_FC0 = 1.00000000; + (*ppPVar3)->field_FC4 = 1.00000000; + (*ppPVar3)->field_FC8 = 0; + (*ppPVar3)->field_FCC = 0; + (*ppPVar3)->field_FD0 = 0; + (*ppPVar3)->field_FD4 = 0; + (*ppPVar3)->field_FD8 = 0; + (*ppPVar3)->field_FDC = -1; + (*ppPVar3)->field_FDD = -1; + (*ppPVar3)->field_FDE = -1; + (*ppPVar3)->field_FDF = '\0'; + (*ppPVar3)->field_FE0 = 1; + (*ppPVar3)->field_FE4 = 0; + (*ppPVar3)->field_FE8 = 0.00000000; + (*ppPVar3)->field_FEC = 0.00000000; + (*ppPVar3)->field_FF0 = 0.00000000; + (*ppPVar3)->field_FF4 = 0.00000000; + (*ppPVar3)->field_FF8 = 0.89999998; + (*ppPVar3)->field_FFC = 0.00000000; + (*ppPVar3)->field_1000 = 0.00000000; + (*ppPVar3)->field_1004 = 0.00000000; + (*ppPVar3)->field_1008 = 0.00000000; + (*ppPVar3)->field_100C = 0.89999998; + (*ppPVar3)->field_1010 = 0.00000000; + (*ppPVar3)->holds_neg_pi = -3.14159274; + (*ppPVar3)->field_1018 = 0.00000000; + (*ppPVar3)->field_105C = 0; + (*ppPVar3)->copiedgoldeneye = 0; + (*ppPVar3)->somekinda_flags = 0; + (*ppPVar3)->field_106C = 0.00000000; + (*ppPVar3)->field_1070 = 0.00000000; + (*ppPVar3)->field_1074 = 0.00000000; + (*ppPVar3)->field_1078 = 0; + (*ppPVar3)->field_107C = 0.00000000; + (*ppPVar3)->field_1080 = 0.00000000; + (*ppPVar3)->sniper_zoom = 60.00000000; + (*ppPVar3)->camera_zoom = 60.00000000; + (*ppPVar3)->field_108C = -1; + (*ppPVar3)->c_screenwidth = 320.00000000; + (*ppPVar3)->c_screenheight = 240.00000000; + (*ppPVar3)->c_screenleft = 0.00000000; + (*ppPVar3)->c_screentop = 0.00000000; + (*ppPVar3)->c_perspnear = 10.00000000; + (*ppPVar3)->c_perspfovy = 46.00000000; + (*ppPVar3)->c_perspaspect = 1.00000000; + (*ppPVar3)->c_halfwidth = 160.00000000; + (*ppPVar3)->c_halfheight = 120.00000000; + (*ppPVar3)->c_scalex = 1.00000000; + (*ppPVar3)->c_scaley = 1.00000000; + (*ppPVar3)->c_recipscalex = 1.00000000; + (*ppPVar3)->c_recipscaley = 1.00000000; + (*ppPVar3)->field_10C4 = 0; + (*ppPVar3)->field_10C8 = 0; + (*ppPVar3)->field_10CC = 0; + (*ppPVar3)->field_10D0 = 0; + (*ppPVar3)->field_10D4 = 0; + (*ppPVar3)->field_10D8 = 0; + (*ppPVar3)->field_10DC = 0; + (*ppPVar3)->field_10E0 = 0; + (*ppPVar3)->field_10E4 = 0; + (*ppPVar3)->field_10E8 = 0; + (*ppPVar3)->field_10EC = 0; + (*ppPVar3)->c_scalelod60 = 1.00000000; + (*ppPVar3)->c_scalelod = 1.00000000; + (*ppPVar3)->c_lodscalez = 1.00000000; + (*ppPVar3)->c_lodscalezu32 = 0x10000; + (*ppPVar3)->screenxminf = 0.00000000; + (*ppPVar3)->screenyminf = 0.00000000; + (*ppPVar3)->screenxmaxf = 320.00000000; + (*ppPVar3)->screenymaxf = 240.00000000; + (*ppPVar3)->somekinda_bitflags = 0; + (*ppPVar3)->field_11B0 = 0; + (*ppPVar3)->field_11B4 = 0; + (*ppPVar3)->field_11B8 = 0; + (*ppPVar3)->zoomintime = 0.00000000; + (*ppPVar3)->zoomintimemax = 0.00000000; + (*ppPVar3)->zoominfovy = 60.00000000; + (*ppPVar3)->zoominfovyold = 60.00000000; + (*ppPVar3)->zoominfovynew = 60.00000000; + (*ppPVar3)->fovy = 60.00000000; + (*ppPVar3)->aspect = 1.33333337; + (*ppPVar3)->hudmessoff = 0; + (*ppPVar3)->bondmesscnt = -1; + (*ppPVar3)->ptr_inventory_first_in_cycle = 0; + (*ppPVar3)->p_itemcur = 0; + (*ppPVar3)->equipmaxitems = 0; + (*ppPVar3)->equipallguns = 0; + (*ppPVar3)->field_11F0 = 0; + (*ppPVar3)->field_11F4 = 0; + (*ppPVar3)->field_1280 = 0; + (*ppPVar3)->players_cur_animation = 0; + (*ppPVar3)->field_1288 = 0.00000000; + (*ppPVar3)->bondinvincible = '\0'; + (*ppPVar3)->field_29B8 = 7; + (*ppPVar3)->field_29BC = 1.00000000; + (*ppPVar3)->field_29C0 = 0.00000000; + (*ppPVar3)->mpmenuon = 0; + (*ppPVar3)->damagetype = 7; + (*ppPVar3)->deathcount = 0; + (*ppPVar3)->field_29E0 = random_byte; + random_byte = random_byte + 1; + (*ppPVar3)->field_29E4 = -1; + (*ppPVar3)->field_29E8 = -1; + (*ppPVar3)->field_29EC = -1; + (*ppPVar3)->field_29F0 = -1; + (*ppPVar3)->healthdisplaytime = 0; + (*ppPVar3)->field_2A30 = 0; + (*ppPVar3)->field_2A34 = 0; + (*ppPVar3)->cur_item_weapon_getname = 1; + (*ppPVar3)->actual_health = 1.00000000; + (*ppPVar3)->actual_armor = 1.00000000; + (*ppPVar3)->cur_player_control_type_0 = 0; + (*ppPVar3)->cur_player_control_type_1 = 0; + (*ppPVar3)->cur_player_control_type_2 = 0.00000000; + (*ppPVar3)->neg_vspacing_for_control_type_entry = 0; + (*ppPVar3)->has_set_control_type_data = 1; + (*ppPVar3)->field_2A6C = 0; + (*ppPVar3)->field_2A70 = 0; + visible_to_guards_flag = TRUE; + obj_collision_flag = TRUE; +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80057610 +.word 0xc3652ee0 /*-229.18311*/ +glabel D_80057614 +.word 0x411ffffe /*9.9999981*/ +glabel D_80057618 +.word 0x3f6e147b /*0.93000001*/ +glabel D_8005761C +.word 0x4164924b /*14.285716*/ +glabel D_80057620 +.word 0x3f666666 /*0.89999998*/ +glabel D_80057624 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80057628 +.word 0x3faaaaab /*1.3333334*/ +.text +glabel initBONDdataforPlayer +/* 0CEFEC 7F09A4BC 27BDFC30 */ addiu $sp, $sp, -0x3d0 +/* 0CEFF0 7F09A4C0 3C0F8004 */ lui $t7, %hi(D_8003FD94+0xC) +/* 0CEFF4 7F09A4C4 25EFFDA0 */ addiu $t7, %lo(D_8003FD94+0xC) # addiu $t7, $t7, -0x260 +/* 0CEFF8 7F09A4C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0CEFFC 7F09A4CC AFA403D0 */ sw $a0, 0x3d0($sp) +/* 0CF000 7F09A4D0 25EB03A8 */ addiu $t3, $t7, 0x3a8 +/* 0CF004 7F09A4D4 27AE0024 */ addiu $t6, $sp, 0x24 +.L7F09A4D8: +/* 0CF008 7F09A4D8 8DE10000 */ lw $at, ($t7) +/* 0CF00C 7F09A4DC 25EF000C */ addiu $t7, $t7, 0xc +/* 0CF010 7F09A4E0 25CE000C */ addiu $t6, $t6, 0xc +/* 0CF014 7F09A4E4 ADC1FFF4 */ sw $at, -0xc($t6) +/* 0CF018 7F09A4E8 8DE1FFF8 */ lw $at, -8($t7) +/* 0CF01C 7F09A4EC ADC1FFF8 */ sw $at, -8($t6) +/* 0CF020 7F09A4F0 8DE1FFFC */ lw $at, -4($t7) +/* 0CF024 7F09A4F4 15EBFFF8 */ bne $t7, $t3, .L7F09A4D8 +/* 0CF028 7F09A4F8 ADC1FFFC */ sw $at, -4($t6) +/* 0CF02C 7F09A4FC 24042A80 */ li $a0, 10880 +/* 0CF030 7F09A500 0C0025C8 */ jal mempAllocBytesInBank +/* 0CF034 7F09A504 24050004 */ li $a1, 4 +/* 0CF038 7F09A508 8FAC03D0 */ lw $t4, 0x3d0($sp) +/* 0CF03C 7F09A50C 3C198008 */ lui $t9, %hi(ptr_BONDdata_p1) +/* 0CF040 7F09A510 27399EE0 */ addiu $t9, %lo(ptr_BONDdata_p1) # addiu $t9, $t9, -0x6120 +/* 0CF044 7F09A514 000C6880 */ sll $t5, $t4, 2 +/* 0CF048 7F09A518 01B91821 */ addu $v1, $t5, $t9 +/* 0CF04C 7F09A51C AC620000 */ sw $v0, ($v1) +/* 0CF050 7F09A520 AC400000 */ sw $zero, ($v0) +/* 0CF054 7F09A524 44800000 */ mtc1 $zero, $f0 +/* 0CF058 7F09A528 8C780000 */ lw $t8, ($v1) +/* 0CF05C 7F09A52C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CF060 7F09A530 44811000 */ mtc1 $at, $f2 +/* 0CF064 7F09A534 E7000004 */ swc1 $f0, 4($t8) +/* 0CF068 7F09A538 8C6B0000 */ lw $t3, ($v1) +/* 0CF06C 7F09A53C 24040002 */ li $a0, 2 +/* 0CF070 7F09A540 24080001 */ li $t0, 1 +/* 0CF074 7F09A544 E5600008 */ swc1 $f0, 8($t3) +/* 0CF078 7F09A548 8C6F0000 */ lw $t7, ($v1) +/* 0CF07C 7F09A54C 2409FFFF */ li $t1, -1 +/* 0CF080 7F09A550 3C01C080 */ li $at, 0xC0800000 # -4.000000 +/* 0CF084 7F09A554 E5E0000C */ swc1 $f0, 0xc($t7) +/* 0CF088 7F09A558 8C6E0000 */ lw $t6, ($v1) +/* 0CF08C 7F09A55C 44812000 */ mtc1 $at, $f4 +/* 0CF090 7F09A560 3C018005 */ lui $at, %hi(D_80057610) +/* 0CF094 7F09A564 E5C00010 */ swc1 $f0, 0x10($t6) +/* 0CF098 7F09A568 8C6C0000 */ lw $t4, ($v1) +/* 0CF09C 7F09A56C 240200FF */ li $v0, 255 +/* 0CF0A0 7F09A570 27AA0024 */ addiu $t2, $sp, 0x24 +/* 0CF0A4 7F09A574 E5800014 */ swc1 $f0, 0x14($t4) +/* 0CF0A8 7F09A578 8C6D0000 */ lw $t5, ($v1) +/* 0CF0AC 7F09A57C E5A20018 */ swc1 $f2, 0x18($t5) +/* 0CF0B0 7F09A580 8C790000 */ lw $t9, ($v1) +/* 0CF0B4 7F09A584 E720001C */ swc1 $f0, 0x1c($t9) +/* 0CF0B8 7F09A588 8C780000 */ lw $t8, ($v1) +/* 0CF0BC 7F09A58C E7020020 */ swc1 $f2, 0x20($t8) +/* 0CF0C0 7F09A590 8C6B0000 */ lw $t3, ($v1) +/* 0CF0C4 7F09A594 E5600024 */ swc1 $f0, 0x24($t3) +/* 0CF0C8 7F09A598 8C6F0000 */ lw $t7, ($v1) +/* 0CF0CC 7F09A59C E5E00028 */ swc1 $f0, 0x28($t7) +/* 0CF0D0 7F09A5A0 8C6E0000 */ lw $t6, ($v1) +/* 0CF0D4 7F09A5A4 E5C0002C */ swc1 $f0, 0x2c($t6) +/* 0CF0D8 7F09A5A8 8C6C0000 */ lw $t4, ($v1) +/* 0CF0DC 7F09A5AC E5800030 */ swc1 $f0, 0x30($t4) +/* 0CF0E0 7F09A5B0 8C6D0000 */ lw $t5, ($v1) +/* 0CF0E4 7F09A5B4 ADA00034 */ sw $zero, 0x34($t5) +/* 0CF0E8 7F09A5B8 8C790000 */ lw $t9, ($v1) +/* 0CF0EC 7F09A5BC E7200038 */ swc1 $f0, 0x38($t9) +/* 0CF0F0 7F09A5C0 8C780000 */ lw $t8, ($v1) +/* 0CF0F4 7F09A5C4 E700003C */ swc1 $f0, 0x3c($t8) +/* 0CF0F8 7F09A5C8 8C6B0000 */ lw $t3, ($v1) +/* 0CF0FC 7F09A5CC E5600040 */ swc1 $f0, 0x40($t3) +/* 0CF100 7F09A5D0 8C6F0000 */ lw $t7, ($v1) +/* 0CF104 7F09A5D4 E5E00044 */ swc1 $f0, 0x44($t7) +/* 0CF108 7F09A5D8 8C6E0000 */ lw $t6, ($v1) +/* 0CF10C 7F09A5DC E5C00048 */ swc1 $f0, 0x48($t6) +/* 0CF110 7F09A5E0 8C6C0000 */ lw $t4, ($v1) +/* 0CF114 7F09A5E4 E580004C */ swc1 $f0, 0x4c($t4) +/* 0CF118 7F09A5E8 8C6D0000 */ lw $t5, ($v1) +/* 0CF11C 7F09A5EC E5A00050 */ swc1 $f0, 0x50($t5) +/* 0CF120 7F09A5F0 8C790000 */ lw $t9, ($v1) +/* 0CF124 7F09A5F4 E7200054 */ swc1 $f0, 0x54($t9) +/* 0CF128 7F09A5F8 8C780000 */ lw $t8, ($v1) +/* 0CF12C 7F09A5FC E7000058 */ swc1 $f0, 0x58($t8) +/* 0CF130 7F09A600 8C6B0000 */ lw $t3, ($v1) +/* 0CF134 7F09A604 E560006C */ swc1 $f0, 0x6c($t3) +/* 0CF138 7F09A608 8C6F0000 */ lw $t7, ($v1) +/* 0CF13C 7F09A60C E5E00070 */ swc1 $f0, 0x70($t7) +/* 0CF140 7F09A610 8C6E0000 */ lw $t6, ($v1) +/* 0CF144 7F09A614 E5C00074 */ swc1 $f0, 0x74($t6) +/* 0CF148 7F09A618 8C6C0000 */ lw $t4, ($v1) +/* 0CF14C 7F09A61C E5800078 */ swc1 $f0, 0x78($t4) +/* 0CF150 7F09A620 8C6D0000 */ lw $t5, ($v1) +/* 0CF154 7F09A624 E5A0007C */ swc1 $f0, 0x7c($t5) +/* 0CF158 7F09A628 8C790000 */ lw $t9, ($v1) +/* 0CF15C 7F09A62C E7200080 */ swc1 $f0, 0x80($t9) +/* 0CF160 7F09A630 8C780000 */ lw $t8, ($v1) +/* 0CF164 7F09A634 E7000084 */ swc1 $f0, 0x84($t8) +/* 0CF168 7F09A638 8C6B0000 */ lw $t3, ($v1) +/* 0CF16C 7F09A63C E5600088 */ swc1 $f0, 0x88($t3) +/* 0CF170 7F09A640 8C6F0000 */ lw $t7, ($v1) +/* 0CF174 7F09A644 ADE0008C */ sw $zero, 0x8c($t7) +/* 0CF178 7F09A648 8C6E0000 */ lw $t6, ($v1) +/* 0CF17C 7F09A64C E5C00090 */ swc1 $f0, 0x90($t6) +/* 0CF180 7F09A650 8C6C0000 */ lw $t4, ($v1) +/* 0CF184 7F09A654 AD800094 */ sw $zero, 0x94($t4) +/* 0CF188 7F09A658 8C6D0000 */ lw $t5, ($v1) +/* 0CF18C 7F09A65C E5A00098 */ swc1 $f0, 0x98($t5) +/* 0CF190 7F09A660 8C790000 */ lw $t9, ($v1) +/* 0CF194 7F09A664 E7201274 */ swc1 $f0, 0x1274($t9) +/* 0CF198 7F09A668 8C780000 */ lw $t8, ($v1) +/* 0CF19C 7F09A66C E7001278 */ swc1 $f0, 0x1278($t8) +/* 0CF1A0 7F09A670 8C6B0000 */ lw $t3, ($v1) +/* 0CF1A4 7F09A674 E560127C */ swc1 $f0, 0x127c($t3) +/* 0CF1A8 7F09A678 8C6F0000 */ lw $t7, ($v1) +/* 0CF1AC 7F09A67C ADE4009C */ sw $a0, 0x9c($t7) +/* 0CF1B0 7F09A680 8C6E0000 */ lw $t6, ($v1) +/* 0CF1B4 7F09A684 ADC429FC */ sw $a0, 0x29fc($t6) +/* 0CF1B8 7F09A688 8C6C0000 */ lw $t4, ($v1) +/* 0CF1BC 7F09A68C E58000A0 */ swc1 $f0, 0xa0($t4) +/* 0CF1C0 7F09A690 8C6D0000 */ lw $t5, ($v1) +/* 0CF1C4 7F09A694 E5A000A4 */ swc1 $f0, 0xa4($t5) +/* 0CF1C8 7F09A698 8C790000 */ lw $t9, ($v1) +/* 0CF1CC 7F09A69C AF2000A8 */ sw $zero, 0xa8($t9) +/* 0CF1D0 7F09A6A0 8C780000 */ lw $t8, ($v1) +/* 0CF1D4 7F09A6A4 AF0800AC */ sw $t0, 0xac($t8) +/* 0CF1D8 7F09A6A8 8C6B0000 */ lw $t3, ($v1) +/* 0CF1DC 7F09A6AC AD6000D0 */ sw $zero, 0xd0($t3) +/* 0CF1E0 7F09A6B0 8C6F0000 */ lw $t7, ($v1) +/* 0CF1E4 7F09A6B4 ADE000D4 */ sw $zero, 0xd4($t7) +/* 0CF1E8 7F09A6B8 8C6E0000 */ lw $t6, ($v1) +/* 0CF1EC 7F09A6BC ADC000D8 */ sw $zero, 0xd8($t6) +/* 0CF1F0 7F09A6C0 8C6C0000 */ lw $t4, ($v1) +/* 0CF1F4 7F09A6C4 E58200DC */ swc1 $f2, 0xdc($t4) +/* 0CF1F8 7F09A6C8 8C6D0000 */ lw $t5, ($v1) +/* 0CF1FC 7F09A6CC E5A000E0 */ swc1 $f0, 0xe0($t5) +/* 0CF200 7F09A6D0 8C790000 */ lw $t9, ($v1) +/* 0CF204 7F09A6D4 E72200E4 */ swc1 $f2, 0xe4($t9) +/* 0CF208 7F09A6D8 8C780000 */ lw $t8, ($v1) +/* 0CF20C 7F09A6DC E70000E8 */ swc1 $f0, 0xe8($t8) +/* 0CF210 7F09A6E0 8C6B0000 */ lw $t3, ($v1) +/* 0CF214 7F09A6E4 E56200EC */ swc1 $f2, 0xec($t3) +/* 0CF218 7F09A6E8 8C6F0000 */ lw $t7, ($v1) +/* 0CF21C 7F09A6EC E5E000F0 */ swc1 $f0, 0xf0($t7) +/* 0CF220 7F09A6F0 8C6E0000 */ lw $t6, ($v1) +/* 0CF224 7F09A6F4 ADC900F4 */ sw $t1, 0xf4($t6) +/* 0CF228 7F09A6F8 8C6C0000 */ lw $t4, ($v1) +/* 0CF22C 7F09A6FC AD8900F8 */ sw $t1, 0xf8($t4) +/* 0CF230 7F09A700 8C6D0000 */ lw $t5, ($v1) +/* 0CF234 7F09A704 ADA00104 */ sw $zero, 0x104($t5) +/* 0CF238 7F09A708 8C790000 */ lw $t9, ($v1) +/* 0CF23C 7F09A70C AF200108 */ sw $zero, 0x108($t9) +/* 0CF240 7F09A710 8C780000 */ lw $t8, ($v1) +/* 0CF244 7F09A714 AF00010C */ sw $zero, 0x10c($t8) +/* 0CF248 7F09A718 8C6B0000 */ lw $t3, ($v1) +/* 0CF24C 7F09A71C AD600110 */ sw $zero, 0x110($t3) +/* 0CF250 7F09A720 8C6F0000 */ lw $t7, ($v1) +/* 0CF254 7F09A724 ADE80114 */ sw $t0, 0x114($t7) +/* 0CF258 7F09A728 8C6E0000 */ lw $t6, ($v1) +/* 0CF25C 7F09A72C ADC80118 */ sw $t0, 0x118($t6) +/* 0CF260 7F09A730 8C6C0000 */ lw $t4, ($v1) +/* 0CF264 7F09A734 AD80011C */ sw $zero, 0x11c($t4) +/* 0CF268 7F09A738 8C6D0000 */ lw $t5, ($v1) +/* 0CF26C 7F09A73C ADA80120 */ sw $t0, 0x120($t5) +/* 0CF270 7F09A740 8C790000 */ lw $t9, ($v1) +/* 0CF274 7F09A744 AF200124 */ sw $zero, 0x124($t9) +/* 0CF278 7F09A748 8C780000 */ lw $t8, ($v1) +/* 0CF27C 7F09A74C AF080128 */ sw $t0, 0x128($t8) +/* 0CF280 7F09A750 8C6B0000 */ lw $t3, ($v1) +/* 0CF284 7F09A754 E560012C */ swc1 $f0, 0x12c($t3) +/* 0CF288 7F09A758 8C6F0000 */ lw $t7, ($v1) +/* 0CF28C 7F09A75C ADE00130 */ sw $zero, 0x130($t7) +/* 0CF290 7F09A760 8C6E0000 */ lw $t6, ($v1) +/* 0CF294 7F09A764 ADC90134 */ sw $t1, 0x134($t6) +/* 0CF298 7F09A768 8C6C0000 */ lw $t4, ($v1) +/* 0CF29C 7F09A76C AD880138 */ sw $t0, 0x138($t4) +/* 0CF2A0 7F09A770 8C6D0000 */ lw $t5, ($v1) +/* 0CF2A4 7F09A774 E5A0013C */ swc1 $f0, 0x13c($t5) +/* 0CF2A8 7F09A778 8C790000 */ lw $t9, ($v1) +/* 0CF2AC 7F09A77C AF200140 */ sw $zero, 0x140($t9) +/* 0CF2B0 7F09A780 8C780000 */ lw $t8, ($v1) +/* 0CF2B4 7F09A784 AF090144 */ sw $t1, 0x144($t8) +/* 0CF2B8 7F09A788 8C6B0000 */ lw $t3, ($v1) +/* 0CF2BC 7F09A78C E5600148 */ swc1 $f0, 0x148($t3) +/* 0CF2C0 7F09A790 8C6F0000 */ lw $t7, ($v1) +/* 0CF2C4 7F09A794 E5E0014C */ swc1 $f0, 0x14c($t7) +/* 0CF2C8 7F09A798 8C6E0000 */ lw $t6, ($v1) +/* 0CF2CC 7F09A79C E5C20150 */ swc1 $f2, 0x150($t6) +/* 0CF2D0 7F09A7A0 8C6C0000 */ lw $t4, ($v1) +/* 0CF2D4 7F09A7A4 E5800154 */ swc1 $f0, 0x154($t4) +/* 0CF2D8 7F09A7A8 8C6D0000 */ lw $t5, ($v1) +/* 0CF2DC 7F09A7AC E5A40158 */ swc1 $f4, 0x158($t5) +/* 0CF2E0 7F09A7B0 8C790000 */ lw $t9, ($v1) +/* 0CF2E4 7F09A7B4 C4267610 */ lwc1 $f6, %lo(D_80057610)($at) +/* 0CF2E8 7F09A7B8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0CF2EC 7F09A7BC 44816000 */ mtc1 $at, $f12 +/* 0CF2F0 7F09A7C0 E726015C */ swc1 $f6, 0x15c($t9) +/* 0CF2F4 7F09A7C4 8C780000 */ lw $t8, ($v1) +/* 0CF2F8 7F09A7C8 3C01C1C8 */ li $at, 0xC1C80000 # -25.000000 +/* 0CF2FC 7F09A7CC 44814000 */ mtc1 $at, $f8 +/* 0CF300 7F09A7D0 E7000160 */ swc1 $f0, 0x160($t8) +/* 0CF304 7F09A7D4 8C6B0000 */ lw $t3, ($v1) +/* 0CF308 7F09A7D8 3C018005 */ lui $at, %hi(D_80057614) +/* 0CF30C 7F09A7DC E5620164 */ swc1 $f2, 0x164($t3) +/* 0CF310 7F09A7E0 8C6F0000 */ lw $t7, ($v1) +/* 0CF314 7F09A7E4 E5E00168 */ swc1 $f0, 0x168($t7) +/* 0CF318 7F09A7E8 8C6E0000 */ lw $t6, ($v1) +/* 0CF31C 7F09A7EC E5C0016C */ swc1 $f0, 0x16c($t6) +/* 0CF320 7F09A7F0 8C6C0000 */ lw $t4, ($v1) +/* 0CF324 7F09A7F4 E5800170 */ swc1 $f0, 0x170($t4) +/* 0CF328 7F09A7F8 8C6D0000 */ lw $t5, ($v1) +/* 0CF32C 7F09A7FC E5A00174 */ swc1 $f0, 0x174($t5) +/* 0CF330 7F09A800 8C790000 */ lw $t9, ($v1) +/* 0CF334 7F09A804 E7202A4C */ swc1 $f0, 0x2a4c($t9) +/* 0CF338 7F09A808 8C780000 */ lw $t8, ($v1) +/* 0CF33C 7F09A80C E7020178 */ swc1 $f2, 0x178($t8) +/* 0CF340 7F09A810 8C6B0000 */ lw $t3, ($v1) +/* 0CF344 7F09A814 E5600180 */ swc1 $f0, 0x180($t3) +/* 0CF348 7F09A818 8C6F0000 */ lw $t7, ($v1) +/* 0CF34C 7F09A81C E5E00184 */ swc1 $f0, 0x184($t7) +/* 0CF350 7F09A820 8C6E0000 */ lw $t6, ($v1) +/* 0CF354 7F09A824 E5C00188 */ swc1 $f0, 0x188($t6) +/* 0CF358 7F09A828 8C6C0000 */ lw $t4, ($v1) +/* 0CF35C 7F09A82C E58C018C */ swc1 $f12, 0x18c($t4) +/* 0CF360 7F09A830 8C6D0000 */ lw $t5, ($v1) +/* 0CF364 7F09A834 E5AC0190 */ swc1 $f12, 0x190($t5) +/* 0CF368 7F09A838 8C790000 */ lw $t9, ($v1) +/* 0CF36C 7F09A83C E7200194 */ swc1 $f0, 0x194($t9) +/* 0CF370 7F09A840 8C780000 */ lw $t8, ($v1) +/* 0CF374 7F09A844 E7000198 */ swc1 $f0, 0x198($t8) +/* 0CF378 7F09A848 8C6B0000 */ lw $t3, ($v1) +/* 0CF37C 7F09A84C E560019C */ swc1 $f0, 0x19c($t3) +/* 0CF380 7F09A850 8C6F0000 */ lw $t7, ($v1) +/* 0CF384 7F09A854 ADE001A0 */ sw $zero, 0x1a0($t7) +/* 0CF388 7F09A858 8C6E0000 */ lw $t6, ($v1) +/* 0CF38C 7F09A85C ADC001C0 */ sw $zero, 0x1c0($t6) +/* 0CF390 7F09A860 8C6C0000 */ lw $t4, ($v1) +/* 0CF394 7F09A864 AD8001C4 */ sw $zero, 0x1c4($t4) +/* 0CF398 7F09A868 8C6D0000 */ lw $t5, ($v1) +/* 0CF39C 7F09A86C ADA001C8 */ sw $zero, 0x1c8($t5) +/* 0CF3A0 7F09A870 8C790000 */ lw $t9, ($v1) +/* 0CF3A4 7F09A874 AF2801CC */ sw $t0, 0x1cc($t9) +/* 0CF3A8 7F09A878 8C780000 */ lw $t8, ($v1) +/* 0CF3AC 7F09A87C AF0001D0 */ sw $zero, 0x1d0($t8) +/* 0CF3B0 7F09A880 8C6B0000 */ lw $t3, ($v1) +/* 0CF3B4 7F09A884 E56001D4 */ swc1 $f0, 0x1d4($t3) +/* 0CF3B8 7F09A888 8C6F0000 */ lw $t7, ($v1) +/* 0CF3BC 7F09A88C E5E001D8 */ swc1 $f0, 0x1d8($t7) +/* 0CF3C0 7F09A890 8C6E0000 */ lw $t6, ($v1) +/* 0CF3C4 7F09A894 E5C801DC */ swc1 $f8, 0x1dc($t6) +/* 0CF3C8 7F09A898 8C6C0000 */ lw $t4, ($v1) +/* 0CF3CC 7F09A89C E58001E0 */ swc1 $f0, 0x1e0($t4) +/* 0CF3D0 7F09A8A0 8C6D0000 */ lw $t5, ($v1) +/* 0CF3D4 7F09A8A4 E5A201E4 */ swc1 $f2, 0x1e4($t5) +/* 0CF3D8 7F09A8A8 8C790000 */ lw $t9, ($v1) +/* 0CF3DC 7F09A8AC E72001E8 */ swc1 $f0, 0x1e8($t9) +/* 0CF3E0 7F09A8B0 8C780000 */ lw $t8, ($v1) +/* 0CF3E4 7F09A8B4 E70001EC */ swc1 $f0, 0x1ec($t8) +/* 0CF3E8 7F09A8B8 8C6B0000 */ lw $t3, ($v1) +/* 0CF3EC 7F09A8BC E56001F0 */ swc1 $f0, 0x1f0($t3) +/* 0CF3F0 7F09A8C0 8C6F0000 */ lw $t7, ($v1) +/* 0CF3F4 7F09A8C4 E5E201F4 */ swc1 $f2, 0x1f4($t7) +/* 0CF3F8 7F09A8C8 8C6E0000 */ lw $t6, ($v1) +/* 0CF3FC 7F09A8CC ADC00200 */ sw $zero, 0x200($t6) +/* 0CF400 7F09A8D0 8C6C0000 */ lw $t4, ($v1) +/* 0CF404 7F09A8D4 E5800204 */ swc1 $f0, 0x204($t4) +/* 0CF408 7F09A8D8 8C6D0000 */ lw $t5, ($v1) +/* 0CF40C 7F09A8DC E5A00208 */ swc1 $f0, 0x208($t5) +/* 0CF410 7F09A8E0 8C790000 */ lw $t9, ($v1) +/* 0CF414 7F09A8E4 E720020C */ swc1 $f0, 0x20c($t9) +/* 0CF418 7F09A8E8 8C780000 */ lw $t8, ($v1) +/* 0CF41C 7F09A8EC E7000210 */ swc1 $f0, 0x210($t8) +/* 0CF420 7F09A8F0 8C6B0000 */ lw $t3, ($v1) +/* 0CF424 7F09A8F4 E5600214 */ swc1 $f0, 0x214($t3) +/* 0CF428 7F09A8F8 8C6F0000 */ lw $t7, ($v1) +/* 0CF42C 7F09A8FC ADE00218 */ sw $zero, 0x218($t7) +/* 0CF430 7F09A900 8C6E0000 */ lw $t6, ($v1) +/* 0CF434 7F09A904 ADC8021C */ sw $t0, 0x21c($t6) +/* 0CF438 7F09A908 8C6C0000 */ lw $t4, ($v1) +/* 0CF43C 7F09A90C AD800220 */ sw $zero, 0x220($t4) +/* 0CF440 7F09A910 8C6D0000 */ lw $t5, ($v1) +/* 0CF444 7F09A914 E5A00224 */ swc1 $f0, 0x224($t5) +/* 0CF448 7F09A918 8C790000 */ lw $t9, ($v1) +/* 0CF44C 7F09A91C A72003B4 */ sh $zero, 0x3b4($t9) +/* 0CF450 7F09A920 8C780000 */ lw $t8, ($v1) +/* 0CF454 7F09A924 A70003B6 */ sh $zero, 0x3b6($t8) +/* 0CF458 7F09A928 8C6B0000 */ lw $t3, ($v1) +/* 0CF45C 7F09A92C E56003B8 */ swc1 $f0, 0x3b8($t3) +/* 0CF460 7F09A930 8C6F0000 */ lw $t7, ($v1) +/* 0CF464 7F09A934 E5E003BC */ swc1 $f0, 0x3bc($t7) +/* 0CF468 7F09A938 8C6E0000 */ lw $t6, ($v1) +/* 0CF46C 7F09A93C C42A7614 */ lwc1 $f10, %lo(D_80057614)($at) +/* 0CF470 7F09A940 E5CA03C0 */ swc1 $f10, 0x3c0($t6) +/* 0CF474 7F09A944 8C6C0000 */ lw $t4, ($v1) +/* 0CF478 7F09A948 E58003C4 */ swc1 $f0, 0x3c4($t4) +/* 0CF47C 7F09A94C 8C6D0000 */ lw $t5, ($v1) +/* 0CF480 7F09A950 E5A003C8 */ swc1 $f0, 0x3c8($t5) +/* 0CF484 7F09A954 8C790000 */ lw $t9, ($v1) +/* 0CF488 7F09A958 E72203CC */ swc1 $f2, 0x3cc($t9) +/* 0CF48C 7F09A95C 8C780000 */ lw $t8, ($v1) +/* 0CF490 7F09A960 AF0203D0 */ sw $v0, 0x3d0($t8) +/* 0CF494 7F09A964 8C6B0000 */ lw $t3, ($v1) +/* 0CF498 7F09A968 AD6203D4 */ sw $v0, 0x3d4($t3) +/* 0CF49C 7F09A96C 8C6F0000 */ lw $t7, ($v1) +/* 0CF4A0 7F09A970 3C018005 */ lui $at, %hi(D_80057618) +/* 0CF4A4 7F09A974 24070020 */ li $a3, 32 +/* 0CF4A8 7F09A978 ADE203D8 */ sw $v0, 0x3d8($t7) +/* 0CF4AC 7F09A97C 8C6E0000 */ lw $t6, ($v1) +/* 0CF4B0 7F09A980 240601FF */ li $a2, 511 +/* 0CF4B4 7F09A984 240501E0 */ li $a1, 480 +/* 0CF4B8 7F09A988 E5C003DC */ swc1 $f0, 0x3dc($t6) +/* 0CF4BC 7F09A98C 8C6C0000 */ lw $t4, ($v1) +/* 0CF4C0 7F09A990 E58C03E0 */ swc1 $f12, 0x3e0($t4) +/* 0CF4C4 7F09A994 8C6D0000 */ lw $t5, ($v1) +/* 0CF4C8 7F09A998 E5AC03E4 */ swc1 $f12, 0x3e4($t5) +/* 0CF4CC 7F09A99C 8C790000 */ lw $t9, ($v1) +/* 0CF4D0 7F09A9A0 AF2203E8 */ sw $v0, 0x3e8($t9) +/* 0CF4D4 7F09A9A4 8C780000 */ lw $t8, ($v1) +/* 0CF4D8 7F09A9A8 AF0203EC */ sw $v0, 0x3ec($t8) +/* 0CF4DC 7F09A9AC 8C6B0000 */ lw $t3, ($v1) +/* 0CF4E0 7F09A9B0 AD6203F0 */ sw $v0, 0x3f0($t3) +/* 0CF4E4 7F09A9B4 8C6F0000 */ lw $t7, ($v1) +/* 0CF4E8 7F09A9B8 ADE203F4 */ sw $v0, 0x3f4($t7) +/* 0CF4EC 7F09A9BC 8C6E0000 */ lw $t6, ($v1) +/* 0CF4F0 7F09A9C0 ADC203F8 */ sw $v0, 0x3f8($t6) +/* 0CF4F4 7F09A9C4 8C6C0000 */ lw $t4, ($v1) +/* 0CF4F8 7F09A9C8 AD8203FC */ sw $v0, 0x3fc($t4) +/* 0CF4FC 7F09A9CC 8C6D0000 */ lw $t5, ($v1) +/* 0CF500 7F09A9D0 00001025 */ move $v0, $zero +/* 0CF504 7F09A9D4 E5A00400 */ swc1 $f0, 0x400($t5) +/* 0CF508 7F09A9D8 8C790000 */ lw $t9, ($v1) +/* 0CF50C 7F09A9DC E7200404 */ swc1 $f0, 0x404($t9) +/* 0CF510 7F09A9E0 8C780000 */ lw $t8, ($v1) +/* 0CF514 7F09A9E4 AF00041C */ sw $zero, 0x41c($t8) +/* 0CF518 7F09A9E8 8C6B0000 */ lw $t3, ($v1) +/* 0CF51C 7F09A9EC AD680420 */ sw $t0, 0x420($t3) +/* 0CF520 7F09A9F0 8C6F0000 */ lw $t7, ($v1) +/* 0CF524 7F09A9F4 ADE00424 */ sw $zero, 0x424($t7) +/* 0CF528 7F09A9F8 8C6E0000 */ lw $t6, ($v1) +/* 0CF52C 7F09A9FC ADC00428 */ sw $zero, 0x428($t6) +/* 0CF530 7F09AA00 8C6C0000 */ lw $t4, ($v1) +/* 0CF534 7F09AA04 AD84042C */ sw $a0, 0x42c($t4) +/* 0CF538 7F09AA08 8C6D0000 */ lw $t5, ($v1) +/* 0CF53C 7F09AA0C 24040280 */ li $a0, 640 +/* 0CF540 7F09AA10 ADA00430 */ sw $zero, 0x430($t5) +/* 0CF544 7F09AA14 8C790000 */ lw $t9, ($v1) +/* 0CF548 7F09AA18 AF2804DC */ sw $t0, 0x4dc($t9) +/* 0CF54C 7F09AA1C 8C780000 */ lw $t8, ($v1) +/* 0CF550 7F09AA20 AF0804E0 */ sw $t0, 0x4e0($t8) +/* 0CF554 7F09AA24 8C6B0000 */ lw $t3, ($v1) +/* 0CF558 7F09AA28 AD6804E4 */ sw $t0, 0x4e4($t3) +/* 0CF55C 7F09AA2C 8C6F0000 */ lw $t7, ($v1) +/* 0CF560 7F09AA30 ADE004E8 */ sw $zero, 0x4e8($t7) +/* 0CF564 7F09AA34 8C6E0000 */ lw $t6, ($v1) +/* 0CF568 7F09AA38 C4327618 */ lwc1 $f18, %lo(D_80057618)($at) +/* 0CF56C 7F09AA3C 3C018005 */ lui $at, %hi(D_8005761C) +/* 0CF570 7F09AA40 E5D204EC */ swc1 $f18, 0x4ec($t6) +/* 0CF574 7F09AA44 8C6C0000 */ lw $t4, ($v1) +/* 0CF578 7F09AA48 AD8004F0 */ sw $zero, 0x4f0($t4) +/* 0CF57C 7F09AA4C 8C6D0000 */ lw $t5, ($v1) +/* 0CF580 7F09AA50 E5A204F4 */ swc1 $f2, 0x4f4($t5) +/* 0CF584 7F09AA54 8C790000 */ lw $t9, ($v1) +/* 0CF588 7F09AA58 E72204F8 */ swc1 $f2, 0x4f8($t9) +/* 0CF58C 7F09AA5C 8C780000 */ lw $t8, ($v1) +/* 0CF590 7F09AA60 E70004FC */ swc1 $f0, 0x4fc($t8) +/* 0CF594 7F09AA64 8C6B0000 */ lw $t3, ($v1) +/* 0CF598 7F09AA68 E5600500 */ swc1 $f0, 0x500($t3) +/* 0CF59C 7F09AA6C 8C6F0000 */ lw $t7, ($v1) +/* 0CF5A0 7F09AA70 E5E00504 */ swc1 $f0, 0x504($t7) +/* 0CF5A4 7F09AA74 8C6E0000 */ lw $t6, ($v1) +/* 0CF5A8 7F09AA78 C42C761C */ lwc1 $f12, %lo(D_8005761C)($at) +/* 0CF5AC 7F09AA7C E5C00508 */ swc1 $f0, 0x508($t6) +/* 0CF5B0 7F09AA80 8C6C0000 */ lw $t4, ($v1) +/* 0CF5B4 7F09AA84 E580050C */ swc1 $f0, 0x50c($t4) +/* 0CF5B8 7F09AA88 8C6D0000 */ lw $t5, ($v1) +/* 0CF5BC 7F09AA8C E5A20510 */ swc1 $f2, 0x510($t5) +/* 0CF5C0 7F09AA90 8C790000 */ lw $t9, ($v1) +/* 0CF5C4 7F09AA94 E7200514 */ swc1 $f0, 0x514($t9) +/* 0CF5C8 7F09AA98 8C780000 */ lw $t8, ($v1) +/* 0CF5CC 7F09AA9C E7020518 */ swc1 $f2, 0x518($t8) +/* 0CF5D0 7F09AAA0 8C6B0000 */ lw $t3, ($v1) +/* 0CF5D4 7F09AAA4 E560051C */ swc1 $f0, 0x51c($t3) +/* 0CF5D8 7F09AAA8 8C6F0000 */ lw $t7, ($v1) +/* 0CF5DC 7F09AAAC E5E00520 */ swc1 $f0, 0x520($t7) +/* 0CF5E0 7F09AAB0 8C6E0000 */ lw $t6, ($v1) +/* 0CF5E4 7F09AAB4 E5C00524 */ swc1 $f0, 0x524($t6) +/* 0CF5E8 7F09AAB8 8C6C0000 */ lw $t4, ($v1) +/* 0CF5EC 7F09AABC E5800528 */ swc1 $f0, 0x528($t4) +/* 0CF5F0 7F09AAC0 8C6D0000 */ lw $t5, ($v1) +/* 0CF5F4 7F09AAC4 E5A0052C */ swc1 $f0, 0x52c($t5) +/* 0CF5F8 7F09AAC8 8C790000 */ lw $t9, ($v1) +/* 0CF5FC 7F09AACC E7200530 */ swc1 $f0, 0x530($t9) +/* 0CF600 7F09AAD0 8C780000 */ lw $t8, ($v1) +/* 0CF604 7F09AAD4 E70C0534 */ swc1 $f12, 0x534($t8) +/* 0CF608 7F09AAD8 8C6B0000 */ lw $t3, ($v1) +/* 0CF60C 7F09AADC E5600538 */ swc1 $f0, 0x538($t3) +/* 0CF610 7F09AAE0 8C6F0000 */ lw $t7, ($v1) +/* 0CF614 7F09AAE4 E5EC053C */ swc1 $f12, 0x53c($t7) +/* 0CF618 7F09AAE8 8C6E0000 */ lw $t6, ($v1) +/* 0CF61C 7F09AAEC E5C00540 */ swc1 $f0, 0x540($t6) +/* 0CF620 7F09AAF0 8C6C0000 */ lw $t4, ($v1) +/* 0CF624 7F09AAF4 E5800544 */ swc1 $f0, 0x544($t4) +/* 0CF628 7F09AAF8 8C6D0000 */ lw $t5, ($v1) +/* 0CF62C 7F09AAFC E5A00548 */ swc1 $f0, 0x548($t5) +/* 0CF630 7F09AB00 8C790000 */ lw $t9, ($v1) +/* 0CF634 7F09AB04 E720054C */ swc1 $f0, 0x54c($t9) +/* 0CF638 7F09AB08 8C780000 */ lw $t8, ($v1) +/* 0CF63C 7F09AB0C E7000550 */ swc1 $f0, 0x550($t8) +/* 0CF640 7F09AB10 8C6B0000 */ lw $t3, ($v1) +/* 0CF644 7F09AB14 E5600554 */ swc1 $f0, 0x554($t3) +/* 0CF648 7F09AB18 8C6F0000 */ lw $t7, ($v1) +/* 0CF64C 7F09AB1C E5E00558 */ swc1 $f0, 0x558($t7) +/* 0CF650 7F09AB20 8C6E0000 */ lw $t6, ($v1) +/* 0CF654 7F09AB24 E5C0055C */ swc1 $f0, 0x55c($t6) +/* 0CF658 7F09AB28 8C6C0000 */ lw $t4, ($v1) +/* 0CF65C 7F09AB2C E5800560 */ swc1 $f0, 0x560($t4) +/* 0CF660 7F09AB30 8C6D0000 */ lw $t5, ($v1) +/* 0CF664 7F09AB34 E5A00564 */ swc1 $f0, 0x564($t5) +/* 0CF668 7F09AB38 8C790000 */ lw $t9, ($v1) +/* 0CF66C 7F09AB3C E7200568 */ swc1 $f0, 0x568($t9) +/* 0CF670 7F09AB40 8C780000 */ lw $t8, ($v1) +/* 0CF674 7F09AB44 E702056C */ swc1 $f2, 0x56c($t8) +/* 0CF678 7F09AB48 8C6B0000 */ lw $t3, ($v1) +/* 0CF67C 7F09AB4C E5600570 */ swc1 $f0, 0x570($t3) +/* 0CF680 7F09AB50 8C6F0000 */ lw $t7, ($v1) +/* 0CF684 7F09AB54 E5E00574 */ swc1 $f0, 0x574($t7) +/* 0CF688 7F09AB58 8C6E0000 */ lw $t6, ($v1) +/* 0CF68C 7F09AB5C E5C20578 */ swc1 $f2, 0x578($t6) +/* 0CF690 7F09AB60 8C6C0000 */ lw $t4, ($v1) +/* 0CF694 7F09AB64 E580057C */ swc1 $f0, 0x57c($t4) +/* 0CF698 7F09AB68 8C6D0000 */ lw $t5, ($v1) +/* 0CF69C 7F09AB6C E5A20580 */ swc1 $f2, 0x580($t5) +/* 0CF6A0 7F09AB70 8C790000 */ lw $t9, ($v1) +/* 0CF6A4 7F09AB74 E7200584 */ swc1 $f0, 0x584($t9) +/* 0CF6A8 7F09AB78 8C780000 */ lw $t8, ($v1) +/* 0CF6AC 7F09AB7C E7000588 */ swc1 $f0, 0x588($t8) +/* 0CF6B0 7F09AB80 8C6B0000 */ lw $t3, ($v1) +/* 0CF6B4 7F09AB84 E562058C */ swc1 $f2, 0x58c($t3) +/* 0CF6B8 7F09AB88 8C6F0000 */ lw $t7, ($v1) +/* 0CF6BC 7F09AB8C E5E00590 */ swc1 $f0, 0x590($t7) +/* 0CF6C0 7F09AB90 8C6E0000 */ lw $t6, ($v1) +/* 0CF6C4 7F09AB94 ADC00594 */ sw $zero, 0x594($t6) +.L7F09AB98: +/* 0CF6C8 7F09AB98 8C6C0000 */ lw $t4, ($v1) +/* 0CF6CC 7F09AB9C 01826821 */ addu $t5, $t4, $v0 +/* 0CF6D0 7F09ABA0 A5A407D0 */ sh $a0, 0x7d0($t5) +/* 0CF6D4 7F09ABA4 8C790000 */ lw $t9, ($v1) +/* 0CF6D8 7F09ABA8 0322C021 */ addu $t8, $t9, $v0 +/* 0CF6DC 7F09ABAC A70507D2 */ sh $a1, 0x7d2($t8) +/* 0CF6E0 7F09ABB0 8C6B0000 */ lw $t3, ($v1) +/* 0CF6E4 7F09ABB4 01627821 */ addu $t7, $t3, $v0 +/* 0CF6E8 7F09ABB8 A5E607D4 */ sh $a2, 0x7d4($t7) +/* 0CF6EC 7F09ABBC 8C6E0000 */ lw $t6, ($v1) +/* 0CF6F0 7F09ABC0 01C26021 */ addu $t4, $t6, $v0 +/* 0CF6F4 7F09ABC4 A58007D6 */ sh $zero, 0x7d6($t4) +/* 0CF6F8 7F09ABC8 8C6D0000 */ lw $t5, ($v1) +/* 0CF6FC 7F09ABCC 01A2C821 */ addu $t9, $t5, $v0 +/* 0CF700 7F09ABD0 A72407D8 */ sh $a0, 0x7d8($t9) +/* 0CF704 7F09ABD4 8C780000 */ lw $t8, ($v1) +/* 0CF708 7F09ABD8 03025821 */ addu $t3, $t8, $v0 +/* 0CF70C 7F09ABDC A56507DA */ sh $a1, 0x7da($t3) +/* 0CF710 7F09ABE0 8C6F0000 */ lw $t7, ($v1) +/* 0CF714 7F09ABE4 01E27021 */ addu $t6, $t7, $v0 +/* 0CF718 7F09ABE8 A5C607DC */ sh $a2, 0x7dc($t6) +/* 0CF71C 7F09ABEC 8C6C0000 */ lw $t4, ($v1) +/* 0CF720 7F09ABF0 01826821 */ addu $t5, $t4, $v0 +/* 0CF724 7F09ABF4 24420010 */ addiu $v0, $v0, 0x10 +/* 0CF728 7F09ABF8 1447FFE7 */ bne $v0, $a3, .L7F09AB98 +/* 0CF72C 7F09ABFC A5A007DE */ sh $zero, 0x7de($t5) +/* 0CF730 7F09AC00 8C790000 */ lw $t9, ($v1) +/* 0CF734 7F09AC04 24020064 */ li $v0, 100 +/* 0CF738 7F09AC08 A72207F0 */ sh $v0, 0x7f0($t9) +/* 0CF73C 7F09AC0C 8C780000 */ lw $t8, ($v1) +/* 0CF740 7F09AC10 A70207F2 */ sh $v0, 0x7f2($t8) +/* 0CF744 7F09AC14 8C6B0000 */ lw $t3, ($v1) +/* 0CF748 7F09AC18 A56007F4 */ sh $zero, 0x7f4($t3) +/* 0CF74C 7F09AC1C 8C6F0000 */ lw $t7, ($v1) +/* 0CF750 7F09AC20 A5E007F6 */ sh $zero, 0x7f6($t7) +/* 0CF754 7F09AC24 8C6E0000 */ lw $t6, ($v1) +/* 0CF758 7F09AC28 ADC007F8 */ sw $zero, 0x7f8($t6) +/* 0CF75C 7F09AC2C 8C6C0000 */ lw $t4, ($v1) +/* 0CF760 7F09AC30 AD8007FC */ sw $zero, 0x7fc($t4) +/* 0CF764 7F09AC34 8C6D0000 */ lw $t5, ($v1) +/* 0CF768 7F09AC38 ADA00800 */ sw $zero, 0x800($t5) +/* 0CF76C 7F09AC3C 8C790000 */ lw $t9, ($v1) +/* 0CF770 7F09AC40 AF200804 */ sw $zero, 0x804($t9) +/* 0CF774 7F09AC44 8C780000 */ lw $t8, ($v1) +/* 0CF778 7F09AC48 AF092A44 */ sw $t1, 0x2a44($t8) +/* 0CF77C 7F09AC4C 8C6B0000 */ lw $t3, ($v1) +/* 0CF780 7F09AC50 0140C025 */ move $t8, $t2 +/* 0CF784 7F09AC54 AD692A48 */ sw $t1, 0x2a48($t3) +/* 0CF788 7F09AC58 8C6F0000 */ lw $t7, ($v1) +/* 0CF78C 7F09AC5C 254B03A8 */ addiu $t3, $t2, 0x3a8 +/* 0CF790 7F09AC60 ADE02A50 */ sw $zero, 0x2a50($t7) +/* 0CF794 7F09AC64 8C6E0000 */ lw $t6, ($v1) +/* 0CF798 7F09AC68 01407825 */ move $t7, $t2 +/* 0CF79C 7F09AC6C ADC02A54 */ sw $zero, 0x2a54($t6) +/* 0CF7A0 7F09AC70 8C6C0000 */ lw $t4, ($v1) +/* 0CF7A4 7F09AC74 AD800808 */ sw $zero, 0x808($t4) +/* 0CF7A8 7F09AC78 8C6D0000 */ lw $t5, ($v1) +/* 0CF7AC 7F09AC7C ADA0080C */ sw $zero, 0x80c($t5) +/* 0CF7B0 7F09AC80 8C790000 */ lw $t9, ($v1) +.L7F09AC84: +/* 0CF7B4 7F09AC84 8DE10000 */ lw $at, ($t7) +/* 0CF7B8 7F09AC88 25EF000C */ addiu $t7, $t7, 0xc +/* 0CF7BC 7F09AC8C 2739000C */ addiu $t9, $t9, 0xc +/* 0CF7C0 7F09AC90 AF210864 */ sw $at, 0x864($t9) +/* 0CF7C4 7F09AC94 8DE1FFF8 */ lw $at, -8($t7) +/* 0CF7C8 7F09AC98 AF210868 */ sw $at, 0x868($t9) +/* 0CF7CC 7F09AC9C 8DE1FFFC */ lw $at, -4($t7) +/* 0CF7D0 7F09ACA0 15EBFFF8 */ bne $t7, $t3, .L7F09AC84 +/* 0CF7D4 7F09ACA4 AF21086C */ sw $at, 0x86c($t9) +/* 0CF7D8 7F09ACA8 8C6E0000 */ lw $t6, ($v1) +/* 0CF7DC 7F09ACAC 254D03A8 */ addiu $t5, $t2, 0x3a8 +.L7F09ACB0: +/* 0CF7E0 7F09ACB0 8F010000 */ lw $at, ($t8) +/* 0CF7E4 7F09ACB4 2718000C */ addiu $t8, $t8, 0xc +/* 0CF7E8 7F09ACB8 25CE000C */ addiu $t6, $t6, 0xc +/* 0CF7EC 7F09ACBC ADC10C0C */ sw $at, 0xc0c($t6) +/* 0CF7F0 7F09ACC0 8F01FFF8 */ lw $at, -8($t8) +/* 0CF7F4 7F09ACC4 ADC10C10 */ sw $at, 0xc10($t6) +/* 0CF7F8 7F09ACC8 8F01FFFC */ lw $at, -4($t8) +/* 0CF7FC 7F09ACCC 170DFFF8 */ bne $t8, $t5, .L7F09ACB0 +/* 0CF800 7F09ACD0 ADC10C14 */ sw $at, 0xc14($t6) +/* 0CF804 7F09ACD4 8C6B0000 */ lw $t3, ($v1) +/* 0CF808 7F09ACD8 3C018005 */ lui $at, %hi(D_80057620) +/* 0CF80C 7F09ACDC 240200FF */ li $v0, 255 +/* 0CF810 7F09ACE0 E5620FC0 */ swc1 $f2, 0xfc0($t3) +/* 0CF814 7F09ACE4 8C6F0000 */ lw $t7, ($v1) +/* 0CF818 7F09ACE8 24040007 */ li $a0, 7 +/* 0CF81C 7F09ACEC E5E20FC4 */ swc1 $f2, 0xfc4($t7) +/* 0CF820 7F09ACF0 8C790000 */ lw $t9, ($v1) +/* 0CF824 7F09ACF4 AF200FC8 */ sw $zero, 0xfc8($t9) +/* 0CF828 7F09ACF8 8C6C0000 */ lw $t4, ($v1) +/* 0CF82C 7F09ACFC AD800FCC */ sw $zero, 0xfcc($t4) +/* 0CF830 7F09AD00 8C6D0000 */ lw $t5, ($v1) +/* 0CF834 7F09AD04 C42C7620 */ lwc1 $f12, %lo(D_80057620)($at) +/* 0CF838 7F09AD08 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0CF83C 7F09AD0C ADA00FD0 */ sw $zero, 0xfd0($t5) +/* 0CF840 7F09AD10 8C780000 */ lw $t8, ($v1) +/* 0CF844 7F09AD14 AF000FD4 */ sw $zero, 0xfd4($t8) +/* 0CF848 7F09AD18 8C6E0000 */ lw $t6, ($v1) +/* 0CF84C 7F09AD1C ADC00FD8 */ sw $zero, 0xfd8($t6) +/* 0CF850 7F09AD20 8C6B0000 */ lw $t3, ($v1) +/* 0CF854 7F09AD24 A1620FDC */ sb $v0, 0xfdc($t3) +/* 0CF858 7F09AD28 8C6F0000 */ lw $t7, ($v1) +/* 0CF85C 7F09AD2C A1E20FDD */ sb $v0, 0xfdd($t7) +/* 0CF860 7F09AD30 8C790000 */ lw $t9, ($v1) +/* 0CF864 7F09AD34 A3220FDE */ sb $v0, 0xfde($t9) +/* 0CF868 7F09AD38 8C6C0000 */ lw $t4, ($v1) +/* 0CF86C 7F09AD3C 3C028008 */ lui $v0, %hi(random_byte) +/* 0CF870 7F09AD40 2442A0BC */ addiu $v0, %lo(random_byte) # addiu $v0, $v0, -0x5f44 +/* 0CF874 7F09AD44 A1800FDF */ sb $zero, 0xfdf($t4) +/* 0CF878 7F09AD48 8C6D0000 */ lw $t5, ($v1) +/* 0CF87C 7F09AD4C ADA80FE0 */ sw $t0, 0xfe0($t5) +/* 0CF880 7F09AD50 8C780000 */ lw $t8, ($v1) +/* 0CF884 7F09AD54 AF000FE4 */ sw $zero, 0xfe4($t8) +/* 0CF888 7F09AD58 8C6E0000 */ lw $t6, ($v1) +/* 0CF88C 7F09AD5C E5C00FE8 */ swc1 $f0, 0xfe8($t6) +/* 0CF890 7F09AD60 8C6B0000 */ lw $t3, ($v1) +/* 0CF894 7F09AD64 E5600FEC */ swc1 $f0, 0xfec($t3) +/* 0CF898 7F09AD68 8C6F0000 */ lw $t7, ($v1) +/* 0CF89C 7F09AD6C E5E00FF0 */ swc1 $f0, 0xff0($t7) +/* 0CF8A0 7F09AD70 8C790000 */ lw $t9, ($v1) +/* 0CF8A4 7F09AD74 E7200FF4 */ swc1 $f0, 0xff4($t9) +/* 0CF8A8 7F09AD78 8C6C0000 */ lw $t4, ($v1) +/* 0CF8AC 7F09AD7C E58C0FF8 */ swc1 $f12, 0xff8($t4) +/* 0CF8B0 7F09AD80 8C6D0000 */ lw $t5, ($v1) +/* 0CF8B4 7F09AD84 E5A00FFC */ swc1 $f0, 0xffc($t5) +/* 0CF8B8 7F09AD88 8C780000 */ lw $t8, ($v1) +/* 0CF8BC 7F09AD8C E7001000 */ swc1 $f0, 0x1000($t8) +/* 0CF8C0 7F09AD90 8C6E0000 */ lw $t6, ($v1) +/* 0CF8C4 7F09AD94 E5C01004 */ swc1 $f0, 0x1004($t6) +/* 0CF8C8 7F09AD98 8C6B0000 */ lw $t3, ($v1) +/* 0CF8CC 7F09AD9C E5601008 */ swc1 $f0, 0x1008($t3) +/* 0CF8D0 7F09ADA0 8C6F0000 */ lw $t7, ($v1) +/* 0CF8D4 7F09ADA4 E5EC100C */ swc1 $f12, 0x100c($t7) +/* 0CF8D8 7F09ADA8 44816000 */ mtc1 $at, $f12 +/* 0CF8DC 7F09ADAC 8C790000 */ lw $t9, ($v1) +/* 0CF8E0 7F09ADB0 3C0143A0 */ li $at, 0x43A00000 # 320.000000 +/* 0CF8E4 7F09ADB4 44817000 */ mtc1 $at, $f14 +/* 0CF8E8 7F09ADB8 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 0CF8EC 7F09ADBC 44818000 */ mtc1 $at, $f16 +/* 0CF8F0 7F09ADC0 E7201010 */ swc1 $f0, 0x1010($t9) +/* 0CF8F4 7F09ADC4 3C018005 */ lui $at, %hi(D_80057624) +/* 0CF8F8 7F09ADC8 C4247624 */ lwc1 $f4, %lo(D_80057624)($at) +/* 0CF8FC 7F09ADCC 8C6C0000 */ lw $t4, ($v1) +/* 0CF900 7F09ADD0 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0CF904 7F09ADD4 44813000 */ mtc1 $at, $f6 +/* 0CF908 7F09ADD8 E5841014 */ swc1 $f4, 0x1014($t4) +/* 0CF90C 7F09ADDC 8C6D0000 */ lw $t5, ($v1) +/* 0CF910 7F09ADE0 3C014238 */ li $at, 0x42380000 # 46.000000 +/* 0CF914 7F09ADE4 44814000 */ mtc1 $at, $f8 +/* 0CF918 7F09ADE8 E5A01018 */ swc1 $f0, 0x1018($t5) +/* 0CF91C 7F09ADEC 8C780000 */ lw $t8, ($v1) +/* 0CF920 7F09ADF0 3C014320 */ li $at, 0x43200000 # 160.000000 +/* 0CF924 7F09ADF4 44815000 */ mtc1 $at, $f10 +/* 0CF928 7F09ADF8 AF00105C */ sw $zero, 0x105c($t8) +/* 0CF92C 7F09ADFC 8C6E0000 */ lw $t6, ($v1) +/* 0CF930 7F09AE00 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 0CF934 7F09AE04 44819000 */ mtc1 $at, $f18 +/* 0CF938 7F09AE08 ADC01060 */ sw $zero, 0x1060($t6) +/* 0CF93C 7F09AE0C 8C6B0000 */ lw $t3, ($v1) +/* 0CF940 7F09AE10 3C018005 */ lui $at, %hi(D_80057628) +/* 0CF944 7F09AE14 AD601064 */ sw $zero, 0x1064($t3) +/* 0CF948 7F09AE18 8C6F0000 */ lw $t7, ($v1) +/* 0CF94C 7F09AE1C E5E0106C */ swc1 $f0, 0x106c($t7) +/* 0CF950 7F09AE20 8C790000 */ lw $t9, ($v1) +/* 0CF954 7F09AE24 E7201070 */ swc1 $f0, 0x1070($t9) +/* 0CF958 7F09AE28 8C6C0000 */ lw $t4, ($v1) +/* 0CF95C 7F09AE2C E5801074 */ swc1 $f0, 0x1074($t4) +/* 0CF960 7F09AE30 8C6D0000 */ lw $t5, ($v1) +/* 0CF964 7F09AE34 ADA01078 */ sw $zero, 0x1078($t5) +/* 0CF968 7F09AE38 8C780000 */ lw $t8, ($v1) +/* 0CF96C 7F09AE3C E700107C */ swc1 $f0, 0x107c($t8) +/* 0CF970 7F09AE40 8C6E0000 */ lw $t6, ($v1) +/* 0CF974 7F09AE44 E5C01080 */ swc1 $f0, 0x1080($t6) +/* 0CF978 7F09AE48 8C6B0000 */ lw $t3, ($v1) +/* 0CF97C 7F09AE4C E56C1084 */ swc1 $f12, 0x1084($t3) +/* 0CF980 7F09AE50 8C6F0000 */ lw $t7, ($v1) +/* 0CF984 7F09AE54 E5EC1088 */ swc1 $f12, 0x1088($t7) +/* 0CF988 7F09AE58 8C790000 */ lw $t9, ($v1) +/* 0CF98C 7F09AE5C AF29108C */ sw $t1, 0x108c($t9) +/* 0CF990 7F09AE60 8C6C0000 */ lw $t4, ($v1) +/* 0CF994 7F09AE64 E58E1090 */ swc1 $f14, 0x1090($t4) +/* 0CF998 7F09AE68 8C6D0000 */ lw $t5, ($v1) +/* 0CF99C 7F09AE6C E5B01094 */ swc1 $f16, 0x1094($t5) +/* 0CF9A0 7F09AE70 8C780000 */ lw $t8, ($v1) +/* 0CF9A4 7F09AE74 E7001098 */ swc1 $f0, 0x1098($t8) +/* 0CF9A8 7F09AE78 8C6E0000 */ lw $t6, ($v1) +/* 0CF9AC 7F09AE7C E5C0109C */ swc1 $f0, 0x109c($t6) +/* 0CF9B0 7F09AE80 8C6B0000 */ lw $t3, ($v1) +/* 0CF9B4 7F09AE84 E56610A0 */ swc1 $f6, 0x10a0($t3) +/* 0CF9B8 7F09AE88 8C6F0000 */ lw $t7, ($v1) +/* 0CF9BC 7F09AE8C E5E810A4 */ swc1 $f8, 0x10a4($t7) +/* 0CF9C0 7F09AE90 8C790000 */ lw $t9, ($v1) +/* 0CF9C4 7F09AE94 E72210A8 */ swc1 $f2, 0x10a8($t9) +/* 0CF9C8 7F09AE98 8C6C0000 */ lw $t4, ($v1) +/* 0CF9CC 7F09AE9C E58A10AC */ swc1 $f10, 0x10ac($t4) +/* 0CF9D0 7F09AEA0 8C6D0000 */ lw $t5, ($v1) +/* 0CF9D4 7F09AEA4 E5B210B0 */ swc1 $f18, 0x10b0($t5) +/* 0CF9D8 7F09AEA8 8C780000 */ lw $t8, ($v1) +/* 0CF9DC 7F09AEAC E70210B4 */ swc1 $f2, 0x10b4($t8) +/* 0CF9E0 7F09AEB0 8C6E0000 */ lw $t6, ($v1) +/* 0CF9E4 7F09AEB4 E5C210B8 */ swc1 $f2, 0x10b8($t6) +/* 0CF9E8 7F09AEB8 8C6B0000 */ lw $t3, ($v1) +/* 0CF9EC 7F09AEBC E56210BC */ swc1 $f2, 0x10bc($t3) +/* 0CF9F0 7F09AEC0 8C6F0000 */ lw $t7, ($v1) +/* 0CF9F4 7F09AEC4 E5E210C0 */ swc1 $f2, 0x10c0($t7) +/* 0CF9F8 7F09AEC8 8C790000 */ lw $t9, ($v1) +/* 0CF9FC 7F09AECC AF2010C4 */ sw $zero, 0x10c4($t9) +/* 0CFA00 7F09AED0 8C6C0000 */ lw $t4, ($v1) +/* 0CFA04 7F09AED4 AD8010C8 */ sw $zero, 0x10c8($t4) +/* 0CFA08 7F09AED8 8C6D0000 */ lw $t5, ($v1) +/* 0CFA0C 7F09AEDC ADA010CC */ sw $zero, 0x10cc($t5) +/* 0CFA10 7F09AEE0 8C780000 */ lw $t8, ($v1) +/* 0CFA14 7F09AEE4 AF0010D0 */ sw $zero, 0x10d0($t8) +/* 0CFA18 7F09AEE8 8C6E0000 */ lw $t6, ($v1) +/* 0CFA1C 7F09AEEC ADC010D4 */ sw $zero, 0x10d4($t6) +/* 0CFA20 7F09AEF0 8C6B0000 */ lw $t3, ($v1) +/* 0CFA24 7F09AEF4 AD6010D8 */ sw $zero, 0x10d8($t3) +/* 0CFA28 7F09AEF8 8C6F0000 */ lw $t7, ($v1) +/* 0CFA2C 7F09AEFC ADE010DC */ sw $zero, 0x10dc($t7) +/* 0CFA30 7F09AF00 8C790000 */ lw $t9, ($v1) +/* 0CFA34 7F09AF04 AF2010E0 */ sw $zero, 0x10e0($t9) +/* 0CFA38 7F09AF08 8C6C0000 */ lw $t4, ($v1) +/* 0CFA3C 7F09AF0C 3C190001 */ lui $t9, 1 +/* 0CFA40 7F09AF10 AD8010E4 */ sw $zero, 0x10e4($t4) +/* 0CFA44 7F09AF14 8C6D0000 */ lw $t5, ($v1) +/* 0CFA48 7F09AF18 ADA010E8 */ sw $zero, 0x10e8($t5) +/* 0CFA4C 7F09AF1C 8C780000 */ lw $t8, ($v1) +/* 0CFA50 7F09AF20 AF0010EC */ sw $zero, 0x10ec($t8) +/* 0CFA54 7F09AF24 8C6E0000 */ lw $t6, ($v1) +/* 0CFA58 7F09AF28 E5C210F0 */ swc1 $f2, 0x10f0($t6) +/* 0CFA5C 7F09AF2C 8C6B0000 */ lw $t3, ($v1) +/* 0CFA60 7F09AF30 E56210F4 */ swc1 $f2, 0x10f4($t3) +/* 0CFA64 7F09AF34 8C6F0000 */ lw $t7, ($v1) +/* 0CFA68 7F09AF38 E5E210F8 */ swc1 $f2, 0x10f8($t7) +/* 0CFA6C 7F09AF3C 8C6C0000 */ lw $t4, ($v1) +/* 0CFA70 7F09AF40 AD9910FC */ sw $t9, 0x10fc($t4) +/* 0CFA74 7F09AF44 8C6D0000 */ lw $t5, ($v1) +/* 0CFA78 7F09AF48 E5A01118 */ swc1 $f0, 0x1118($t5) +/* 0CFA7C 7F09AF4C 8C780000 */ lw $t8, ($v1) +/* 0CFA80 7F09AF50 E700111C */ swc1 $f0, 0x111c($t8) +/* 0CFA84 7F09AF54 8C6E0000 */ lw $t6, ($v1) +/* 0CFA88 7F09AF58 E5CE1120 */ swc1 $f14, 0x1120($t6) +/* 0CFA8C 7F09AF5C 8C6B0000 */ lw $t3, ($v1) +/* 0CFA90 7F09AF60 E5701124 */ swc1 $f16, 0x1124($t3) +/* 0CFA94 7F09AF64 8C6F0000 */ lw $t7, ($v1) +/* 0CFA98 7F09AF68 ADE01128 */ sw $zero, 0x1128($t7) +/* 0CFA9C 7F09AF6C 8C790000 */ lw $t9, ($v1) +/* 0CFAA0 7F09AF70 AF2011B0 */ sw $zero, 0x11b0($t9) +/* 0CFAA4 7F09AF74 8C6C0000 */ lw $t4, ($v1) +/* 0CFAA8 7F09AF78 AD8011B4 */ sw $zero, 0x11b4($t4) +/* 0CFAAC 7F09AF7C 8C6D0000 */ lw $t5, ($v1) +/* 0CFAB0 7F09AF80 ADA011B8 */ sw $zero, 0x11b8($t5) +/* 0CFAB4 7F09AF84 8C780000 */ lw $t8, ($v1) +/* 0CFAB8 7F09AF88 E70011BC */ swc1 $f0, 0x11bc($t8) +/* 0CFABC 7F09AF8C 8C6E0000 */ lw $t6, ($v1) +/* 0CFAC0 7F09AF90 E5C011C0 */ swc1 $f0, 0x11c0($t6) +/* 0CFAC4 7F09AF94 8C6B0000 */ lw $t3, ($v1) +/* 0CFAC8 7F09AF98 E56C11C4 */ swc1 $f12, 0x11c4($t3) +/* 0CFACC 7F09AF9C 8C6F0000 */ lw $t7, ($v1) +/* 0CFAD0 7F09AFA0 E5EC11C8 */ swc1 $f12, 0x11c8($t7) +/* 0CFAD4 7F09AFA4 8C790000 */ lw $t9, ($v1) +/* 0CFAD8 7F09AFA8 E72C11CC */ swc1 $f12, 0x11cc($t9) +/* 0CFADC 7F09AFAC 8C6C0000 */ lw $t4, ($v1) +/* 0CFAE0 7F09AFB0 E58C11D0 */ swc1 $f12, 0x11d0($t4) +/* 0CFAE4 7F09AFB4 8C6D0000 */ lw $t5, ($v1) +/* 0CFAE8 7F09AFB8 C4247628 */ lwc1 $f4, %lo(D_80057628)($at) +/* 0CFAEC 7F09AFBC 3C018003 */ lui $at, %hi(invisible_to_guards_flag) +/* 0CFAF0 7F09AFC0 E5A411D4 */ swc1 $f4, 0x11d4($t5) +/* 0CFAF4 7F09AFC4 8C780000 */ lw $t8, ($v1) +/* 0CFAF8 7F09AFC8 AF0011D8 */ sw $zero, 0x11d8($t8) +/* 0CFAFC 7F09AFCC 8C6E0000 */ lw $t6, ($v1) +/* 0CFB00 7F09AFD0 ADC911DC */ sw $t1, 0x11dc($t6) +/* 0CFB04 7F09AFD4 8C6B0000 */ lw $t3, ($v1) +/* 0CFB08 7F09AFD8 AD6011E0 */ sw $zero, 0x11e0($t3) +/* 0CFB0C 7F09AFDC 8C6F0000 */ lw $t7, ($v1) +/* 0CFB10 7F09AFE0 ADE011E4 */ sw $zero, 0x11e4($t7) +/* 0CFB14 7F09AFE4 8C790000 */ lw $t9, ($v1) +/* 0CFB18 7F09AFE8 AF2011E8 */ sw $zero, 0x11e8($t9) +/* 0CFB1C 7F09AFEC 8C6C0000 */ lw $t4, ($v1) +/* 0CFB20 7F09AFF0 AD8011EC */ sw $zero, 0x11ec($t4) +/* 0CFB24 7F09AFF4 8C6D0000 */ lw $t5, ($v1) +/* 0CFB28 7F09AFF8 ADA011F0 */ sw $zero, 0x11f0($t5) +/* 0CFB2C 7F09AFFC 8C780000 */ lw $t8, ($v1) +/* 0CFB30 7F09B000 AF0011F4 */ sw $zero, 0x11f4($t8) +/* 0CFB34 7F09B004 8C6E0000 */ lw $t6, ($v1) +/* 0CFB38 7F09B008 E5C01280 */ swc1 $f0, 0x1280($t6) +/* 0CFB3C 7F09B00C 8C6B0000 */ lw $t3, ($v1) +/* 0CFB40 7F09B010 AD601284 */ sw $zero, 0x1284($t3) +/* 0CFB44 7F09B014 8C6F0000 */ lw $t7, ($v1) +/* 0CFB48 7F09B018 E5E01288 */ swc1 $f0, 0x1288($t7) +/* 0CFB4C 7F09B01C 8C790000 */ lw $t9, ($v1) +/* 0CFB50 7F09B020 A32012B6 */ sb $zero, 0x12b6($t9) +/* 0CFB54 7F09B024 8C6C0000 */ lw $t4, ($v1) +/* 0CFB58 7F09B028 AD8429B8 */ sw $a0, 0x29b8($t4) +/* 0CFB5C 7F09B02C 8C6D0000 */ lw $t5, ($v1) +/* 0CFB60 7F09B030 E5A229BC */ swc1 $f2, 0x29bc($t5) +/* 0CFB64 7F09B034 8C780000 */ lw $t8, ($v1) +/* 0CFB68 7F09B038 E70029C0 */ swc1 $f0, 0x29c0($t8) +/* 0CFB6C 7F09B03C 8C6E0000 */ lw $t6, ($v1) +/* 0CFB70 7F09B040 ADC029C4 */ sw $zero, 0x29c4($t6) +/* 0CFB74 7F09B044 8C6B0000 */ lw $t3, ($v1) +/* 0CFB78 7F09B048 AD6429D4 */ sw $a0, 0x29d4($t3) +/* 0CFB7C 7F09B04C 8C6F0000 */ lw $t7, ($v1) +/* 0CFB80 7F09B050 ADE029D8 */ sw $zero, 0x29d8($t7) +/* 0CFB84 7F09B054 8C6C0000 */ lw $t4, ($v1) +/* 0CFB88 7F09B058 8C590000 */ lw $t9, ($v0) +/* 0CFB8C 7F09B05C AD9929E0 */ sw $t9, 0x29e0($t4) +/* 0CFB90 7F09B060 8C4D0000 */ lw $t5, ($v0) +/* 0CFB94 7F09B064 8C6E0000 */ lw $t6, ($v1) +/* 0CFB98 7F09B068 25B80001 */ addiu $t8, $t5, 1 +/* 0CFB9C 7F09B06C AC580000 */ sw $t8, ($v0) +/* 0CFBA0 7F09B070 ADC929E4 */ sw $t1, 0x29e4($t6) +/* 0CFBA4 7F09B074 8C6B0000 */ lw $t3, ($v1) +/* 0CFBA8 7F09B078 AD6929E8 */ sw $t1, 0x29e8($t3) +/* 0CFBAC 7F09B07C 8C6F0000 */ lw $t7, ($v1) +/* 0CFBB0 7F09B080 ADE929EC */ sw $t1, 0x29ec($t7) +/* 0CFBB4 7F09B084 8C790000 */ lw $t9, ($v1) +/* 0CFBB8 7F09B088 AF2929F0 */ sw $t1, 0x29f0($t9) +/* 0CFBBC 7F09B08C 8C6C0000 */ lw $t4, ($v1) +/* 0CFBC0 7F09B090 AD802A00 */ sw $zero, 0x2a00($t4) +/* 0CFBC4 7F09B094 8C6D0000 */ lw $t5, ($v1) +/* 0CFBC8 7F09B098 ADA02A30 */ sw $zero, 0x2a30($t5) +/* 0CFBCC 7F09B09C 8C780000 */ lw $t8, ($v1) +/* 0CFBD0 7F09B0A0 AF002A34 */ sw $zero, 0x2a34($t8) +/* 0CFBD4 7F09B0A4 8C6E0000 */ lw $t6, ($v1) +/* 0CFBD8 7F09B0A8 ADC82A38 */ sw $t0, 0x2a38($t6) +/* 0CFBDC 7F09B0AC 8C6B0000 */ lw $t3, ($v1) +/* 0CFBE0 7F09B0B0 E5622A3C */ swc1 $f2, 0x2a3c($t3) +/* 0CFBE4 7F09B0B4 8C6F0000 */ lw $t7, ($v1) +/* 0CFBE8 7F09B0B8 E5E22A40 */ swc1 $f2, 0x2a40($t7) +/* 0CFBEC 7F09B0BC 8C790000 */ lw $t9, ($v1) +/* 0CFBF0 7F09B0C0 AF202A58 */ sw $zero, 0x2a58($t9) +/* 0CFBF4 7F09B0C4 8C6C0000 */ lw $t4, ($v1) +/* 0CFBF8 7F09B0C8 AD802A5C */ sw $zero, 0x2a5c($t4) +/* 0CFBFC 7F09B0CC 8C6D0000 */ lw $t5, ($v1) +/* 0CFC00 7F09B0D0 E5A02A60 */ swc1 $f0, 0x2a60($t5) +/* 0CFC04 7F09B0D4 8C780000 */ lw $t8, ($v1) +/* 0CFC08 7F09B0D8 AF002A64 */ sw $zero, 0x2a64($t8) +/* 0CFC0C 7F09B0DC 8C6E0000 */ lw $t6, ($v1) +/* 0CFC10 7F09B0E0 ADC82A68 */ sw $t0, 0x2a68($t6) +/* 0CFC14 7F09B0E4 8C6B0000 */ lw $t3, ($v1) +/* 0CFC18 7F09B0E8 AD602A6C */ sw $zero, 0x2a6c($t3) +/* 0CFC1C 7F09B0EC 8C6F0000 */ lw $t7, ($v1) +/* 0CFC20 7F09B0F0 ADE02A70 */ sw $zero, 0x2a70($t7) +/* 0CFC24 7F09B0F4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0CFC28 7F09B0F8 AC2864C4 */ sw $t0, %lo(invisible_to_guards_flag)($at) +/* 0CFC2C 7F09B0FC 3C018003 */ lui $at, %hi(obj_collision_flag) +/* 0CFC30 7F09B100 AC2864C8 */ sw $t0, %lo(obj_collision_flag)($at) +/* 0CFC34 7F09B104 03E00008 */ jr $ra +/* 0CFC38 7F09B108 27BD03D0 */ addiu $sp, $sp, 0x3d0 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80057610 +.word 0xc3652ee0 /*-229.18311*/ +glabel D_80057614 +.word 0x411ffffe /*9.9999981*/ +glabel D_80057618 +.word 0x3f6e147b /*0.93000001*/ +glabel D_8005761C +.word 0x4164924b /*14.285716*/ +glabel D_80057620 +.word 0x3f666666 /*0.89999998*/ +glabel D_80057624 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80057628 +.word 0x3faaaaab /*1.3333334*/ +.text +glabel initBONDdataforPlayer +/* 0CFBCC 7F09B05C 27BDFC30 */ addiu $sp, $sp, -0x3d0 +/* 0CFBD0 7F09B060 3C0F8004 */ lui $t7, %hi(D_8003FD94+0xC) # $t7, 0x8004 +/* 0CFBD4 7F09B064 25EFFDD0 */ addiu $t7, %lo(D_8003FD94+0xC) # addiu $t7, $t7, -0x230 +/* 0CFBD8 7F09B068 AFBF0014 */ sw $ra, 0x14($sp) +/* 0CFBDC 7F09B06C AFA403D0 */ sw $a0, 0x3d0($sp) +/* 0CFBE0 7F09B070 25EB03A8 */ addiu $t3, $t7, 0x3a8 +/* 0CFBE4 7F09B074 27AE0024 */ addiu $t6, $sp, 0x24 +.L7F09B078: +/* 0CFBE8 7F09B078 8DE10000 */ lw $at, ($t7) +/* 0CFBEC 7F09B07C 25EF000C */ addiu $t7, $t7, 0xc +/* 0CFBF0 7F09B080 25CE000C */ addiu $t6, $t6, 0xc +/* 0CFBF4 7F09B084 ADC1FFF4 */ sw $at, -0xc($t6) +/* 0CFBF8 7F09B088 8DE1FFF8 */ lw $at, -8($t7) +/* 0CFBFC 7F09B08C ADC1FFF8 */ sw $at, -8($t6) +/* 0CFC00 7F09B090 8DE1FFFC */ lw $at, -4($t7) +/* 0CFC04 7F09B094 15EBFFF8 */ bne $t7, $t3, .L7F09B078 +/* 0CFC08 7F09B098 ADC1FFFC */ sw $at, -4($t6) +/* 0CFC0C 7F09B09C 24042A80 */ li $a0, 10880 +/* 0CFC10 7F09B0A0 0C0025CC */ jal mempAllocBytesInBank +/* 0CFC14 7F09B0A4 24050004 */ li $a1, 4 +/* 0CFC18 7F09B0A8 8FAC03D0 */ lw $t4, 0x3d0($sp) +/* 0CFC1C 7F09B0AC 3C198008 */ lui $t9, %hi(ptr_BONDdata_p1) # $t9, 0x8008 +/* 0CFC20 7F09B0B0 27399F50 */ addiu $t9, %lo(ptr_BONDdata_p1) # addiu $t9, $t9, -0x60b0 +/* 0CFC24 7F09B0B4 000C6880 */ sll $t5, $t4, 2 +/* 0CFC28 7F09B0B8 01B91821 */ addu $v1, $t5, $t9 +/* 0CFC2C 7F09B0BC AC620000 */ sw $v0, ($v1) +/* 0CFC30 7F09B0C0 AC400000 */ sw $zero, ($v0) +/* 0CFC34 7F09B0C4 44800000 */ mtc1 $zero, $f0 +/* 0CFC38 7F09B0C8 8C780000 */ lw $t8, ($v1) +/* 0CFC3C 7F09B0CC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CFC40 7F09B0D0 44811000 */ mtc1 $at, $f2 +/* 0CFC44 7F09B0D4 E7000004 */ swc1 $f0, 4($t8) +/* 0CFC48 7F09B0D8 8C6B0000 */ lw $t3, ($v1) +/* 0CFC4C 7F09B0DC 24040002 */ li $a0, 2 +/* 0CFC50 7F09B0E0 24080001 */ li $t0, 1 +/* 0CFC54 7F09B0E4 E5600008 */ swc1 $f0, 8($t3) +/* 0CFC58 7F09B0E8 8C6F0000 */ lw $t7, ($v1) +/* 0CFC5C 7F09B0EC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0CFC60 7F09B0F0 44816000 */ mtc1 $at, $f12 +/* 0CFC64 7F09B0F4 E5E0000C */ swc1 $f0, 0xc($t7) +/* 0CFC68 7F09B0F8 8C6E0000 */ lw $t6, ($v1) +/* 0CFC6C 7F09B0FC 2409FFFF */ li $t1, -1 +/* 0CFC70 7F09B100 3C01C080 */ li $at, 0xC0800000 # -4.000000 +/* 0CFC74 7F09B104 E5C00010 */ swc1 $f0, 0x10($t6) +/* 0CFC78 7F09B108 8C6C0000 */ lw $t4, ($v1) +/* 0CFC7C 7F09B10C 44812000 */ mtc1 $at, $f4 +/* 0CFC80 7F09B110 3C018005 */ lui $at, %hi(D_80057610) +/* 0CFC84 7F09B114 E5800014 */ swc1 $f0, 0x14($t4) +/* 0CFC88 7F09B118 8C6D0000 */ lw $t5, ($v1) +/* 0CFC8C 7F09B11C 240200FF */ li $v0, 255 +/* 0CFC90 7F09B120 27AA0024 */ addiu $t2, $sp, 0x24 +/* 0CFC94 7F09B124 E5A20018 */ swc1 $f2, 0x18($t5) +/* 0CFC98 7F09B128 8C790000 */ lw $t9, ($v1) +/* 0CFC9C 7F09B12C E720001C */ swc1 $f0, 0x1c($t9) +/* 0CFCA0 7F09B130 8C780000 */ lw $t8, ($v1) +/* 0CFCA4 7F09B134 E7020020 */ swc1 $f2, 0x20($t8) +/* 0CFCA8 7F09B138 8C6B0000 */ lw $t3, ($v1) +/* 0CFCAC 7F09B13C E5600024 */ swc1 $f0, 0x24($t3) +/* 0CFCB0 7F09B140 8C6F0000 */ lw $t7, ($v1) +/* 0CFCB4 7F09B144 E5E00028 */ swc1 $f0, 0x28($t7) +/* 0CFCB8 7F09B148 8C6E0000 */ lw $t6, ($v1) +/* 0CFCBC 7F09B14C E5C0002C */ swc1 $f0, 0x2c($t6) +/* 0CFCC0 7F09B150 8C6C0000 */ lw $t4, ($v1) +/* 0CFCC4 7F09B154 E5800030 */ swc1 $f0, 0x30($t4) +/* 0CFCC8 7F09B158 8C6D0000 */ lw $t5, ($v1) +/* 0CFCCC 7F09B15C ADA00034 */ sw $zero, 0x34($t5) +/* 0CFCD0 7F09B160 8C790000 */ lw $t9, ($v1) +/* 0CFCD4 7F09B164 E7200038 */ swc1 $f0, 0x38($t9) +/* 0CFCD8 7F09B168 8C780000 */ lw $t8, ($v1) +/* 0CFCDC 7F09B16C E700003C */ swc1 $f0, 0x3c($t8) +/* 0CFCE0 7F09B170 8C6B0000 */ lw $t3, ($v1) +/* 0CFCE4 7F09B174 E5600040 */ swc1 $f0, 0x40($t3) +/* 0CFCE8 7F09B178 8C6F0000 */ lw $t7, ($v1) +/* 0CFCEC 7F09B17C E5E00044 */ swc1 $f0, 0x44($t7) +/* 0CFCF0 7F09B180 8C6E0000 */ lw $t6, ($v1) +/* 0CFCF4 7F09B184 E5C00048 */ swc1 $f0, 0x48($t6) +/* 0CFCF8 7F09B188 8C6C0000 */ lw $t4, ($v1) +/* 0CFCFC 7F09B18C E580004C */ swc1 $f0, 0x4c($t4) +/* 0CFD00 7F09B190 8C6D0000 */ lw $t5, ($v1) +/* 0CFD04 7F09B194 E5A00050 */ swc1 $f0, 0x50($t5) +/* 0CFD08 7F09B198 8C790000 */ lw $t9, ($v1) +/* 0CFD0C 7F09B19C E7200054 */ swc1 $f0, 0x54($t9) +/* 0CFD10 7F09B1A0 8C780000 */ lw $t8, ($v1) +/* 0CFD14 7F09B1A4 E7000058 */ swc1 $f0, 0x58($t8) +/* 0CFD18 7F09B1A8 8C6B0000 */ lw $t3, ($v1) +/* 0CFD1C 7F09B1AC E560006C */ swc1 $f0, 0x6c($t3) +/* 0CFD20 7F09B1B0 8C6F0000 */ lw $t7, ($v1) +/* 0CFD24 7F09B1B4 E5E00070 */ swc1 $f0, 0x70($t7) +/* 0CFD28 7F09B1B8 8C6E0000 */ lw $t6, ($v1) +/* 0CFD2C 7F09B1BC E5C00074 */ swc1 $f0, 0x74($t6) +/* 0CFD30 7F09B1C0 8C6C0000 */ lw $t4, ($v1) +/* 0CFD34 7F09B1C4 E5800078 */ swc1 $f0, 0x78($t4) +/* 0CFD38 7F09B1C8 8C6D0000 */ lw $t5, ($v1) +/* 0CFD3C 7F09B1CC E5A0007C */ swc1 $f0, 0x7c($t5) +/* 0CFD40 7F09B1D0 8C790000 */ lw $t9, ($v1) +/* 0CFD44 7F09B1D4 E7200080 */ swc1 $f0, 0x80($t9) +/* 0CFD48 7F09B1D8 8C780000 */ lw $t8, ($v1) +/* 0CFD4C 7F09B1DC E7000084 */ swc1 $f0, 0x84($t8) +/* 0CFD50 7F09B1E0 8C6B0000 */ lw $t3, ($v1) +/* 0CFD54 7F09B1E4 E5600088 */ swc1 $f0, 0x88($t3) +/* 0CFD58 7F09B1E8 8C6F0000 */ lw $t7, ($v1) +/* 0CFD5C 7F09B1EC ADE0008C */ sw $zero, 0x8c($t7) +/* 0CFD60 7F09B1F0 8C6E0000 */ lw $t6, ($v1) +/* 0CFD64 7F09B1F4 E5C00090 */ swc1 $f0, 0x90($t6) +/* 0CFD68 7F09B1F8 8C6C0000 */ lw $t4, ($v1) +/* 0CFD6C 7F09B1FC AD800094 */ sw $zero, 0x94($t4) +/* 0CFD70 7F09B200 8C6D0000 */ lw $t5, ($v1) +/* 0CFD74 7F09B204 E5A00098 */ swc1 $f0, 0x98($t5) +/* 0CFD78 7F09B208 8C790000 */ lw $t9, ($v1) +/* 0CFD7C 7F09B20C E7201274 */ swc1 $f0, 0x1274($t9) +/* 0CFD80 7F09B210 8C780000 */ lw $t8, ($v1) +/* 0CFD84 7F09B214 E7001278 */ swc1 $f0, 0x1278($t8) +/* 0CFD88 7F09B218 8C6B0000 */ lw $t3, ($v1) +/* 0CFD8C 7F09B21C E560127C */ swc1 $f0, 0x127c($t3) +/* 0CFD90 7F09B220 8C6F0000 */ lw $t7, ($v1) +/* 0CFD94 7F09B224 ADE4009C */ sw $a0, 0x9c($t7) +/* 0CFD98 7F09B228 8C6E0000 */ lw $t6, ($v1) +/* 0CFD9C 7F09B22C ADC429FC */ sw $a0, 0x29fc($t6) +/* 0CFDA0 7F09B230 8C6C0000 */ lw $t4, ($v1) +/* 0CFDA4 7F09B234 E58000A0 */ swc1 $f0, 0xa0($t4) +/* 0CFDA8 7F09B238 8C6D0000 */ lw $t5, ($v1) +/* 0CFDAC 7F09B23C E5A000A4 */ swc1 $f0, 0xa4($t5) +/* 0CFDB0 7F09B240 8C790000 */ lw $t9, ($v1) +/* 0CFDB4 7F09B244 AF2000A8 */ sw $zero, 0xa8($t9) +/* 0CFDB8 7F09B248 8C780000 */ lw $t8, ($v1) +/* 0CFDBC 7F09B24C AF0800AC */ sw $t0, 0xac($t8) +/* 0CFDC0 7F09B250 8C6B0000 */ lw $t3, ($v1) +/* 0CFDC4 7F09B254 AD6000D0 */ sw $zero, 0xd0($t3) +/* 0CFDC8 7F09B258 8C6F0000 */ lw $t7, ($v1) +/* 0CFDCC 7F09B25C ADE000D4 */ sw $zero, 0xd4($t7) +/* 0CFDD0 7F09B260 8C6E0000 */ lw $t6, ($v1) +/* 0CFDD4 7F09B264 ADC000D8 */ sw $zero, 0xd8($t6) +/* 0CFDD8 7F09B268 8C6C0000 */ lw $t4, ($v1) +/* 0CFDDC 7F09B26C E58200DC */ swc1 $f2, 0xdc($t4) +/* 0CFDE0 7F09B270 8C6D0000 */ lw $t5, ($v1) +/* 0CFDE4 7F09B274 E5A000E0 */ swc1 $f0, 0xe0($t5) +/* 0CFDE8 7F09B278 8C790000 */ lw $t9, ($v1) +/* 0CFDEC 7F09B27C E72200E4 */ swc1 $f2, 0xe4($t9) +/* 0CFDF0 7F09B280 8C780000 */ lw $t8, ($v1) +/* 0CFDF4 7F09B284 E70000E8 */ swc1 $f0, 0xe8($t8) +/* 0CFDF8 7F09B288 8C6B0000 */ lw $t3, ($v1) +/* 0CFDFC 7F09B28C E56200EC */ swc1 $f2, 0xec($t3) +/* 0CFE00 7F09B290 8C6F0000 */ lw $t7, ($v1) +/* 0CFE04 7F09B294 E5E000F0 */ swc1 $f0, 0xf0($t7) +/* 0CFE08 7F09B298 8C6E0000 */ lw $t6, ($v1) +/* 0CFE0C 7F09B29C E5CC00F4 */ swc1 $f12, 0xf4($t6) +/* 0CFE10 7F09B2A0 8C6C0000 */ lw $t4, ($v1) +/* 0CFE14 7F09B2A4 E58C00F8 */ swc1 $f12, 0xf8($t4) +/* 0CFE18 7F09B2A8 8C6D0000 */ lw $t5, ($v1) +/* 0CFE1C 7F09B2AC ADA00104 */ sw $zero, 0x104($t5) +/* 0CFE20 7F09B2B0 8C790000 */ lw $t9, ($v1) +/* 0CFE24 7F09B2B4 AF200108 */ sw $zero, 0x108($t9) +/* 0CFE28 7F09B2B8 8C780000 */ lw $t8, ($v1) +/* 0CFE2C 7F09B2BC AF00010C */ sw $zero, 0x10c($t8) +/* 0CFE30 7F09B2C0 8C6B0000 */ lw $t3, ($v1) +/* 0CFE34 7F09B2C4 AD600110 */ sw $zero, 0x110($t3) +/* 0CFE38 7F09B2C8 8C6F0000 */ lw $t7, ($v1) +/* 0CFE3C 7F09B2CC ADE80114 */ sw $t0, 0x114($t7) +/* 0CFE40 7F09B2D0 8C6E0000 */ lw $t6, ($v1) +/* 0CFE44 7F09B2D4 ADC80118 */ sw $t0, 0x118($t6) +/* 0CFE48 7F09B2D8 8C6C0000 */ lw $t4, ($v1) +/* 0CFE4C 7F09B2DC AD80011C */ sw $zero, 0x11c($t4) +/* 0CFE50 7F09B2E0 8C6D0000 */ lw $t5, ($v1) +/* 0CFE54 7F09B2E4 ADA80120 */ sw $t0, 0x120($t5) +/* 0CFE58 7F09B2E8 8C790000 */ lw $t9, ($v1) +/* 0CFE5C 7F09B2EC AF200124 */ sw $zero, 0x124($t9) +/* 0CFE60 7F09B2F0 8C780000 */ lw $t8, ($v1) +/* 0CFE64 7F09B2F4 AF080128 */ sw $t0, 0x128($t8) +/* 0CFE68 7F09B2F8 8C6B0000 */ lw $t3, ($v1) +/* 0CFE6C 7F09B2FC E560012C */ swc1 $f0, 0x12c($t3) +/* 0CFE70 7F09B300 8C6F0000 */ lw $t7, ($v1) +/* 0CFE74 7F09B304 ADE00130 */ sw $zero, 0x130($t7) +/* 0CFE78 7F09B308 8C6E0000 */ lw $t6, ($v1) +/* 0CFE7C 7F09B30C ADC90134 */ sw $t1, 0x134($t6) +/* 0CFE80 7F09B310 8C6C0000 */ lw $t4, ($v1) +/* 0CFE84 7F09B314 AD880138 */ sw $t0, 0x138($t4) +/* 0CFE88 7F09B318 8C6D0000 */ lw $t5, ($v1) +/* 0CFE8C 7F09B31C E5A0013C */ swc1 $f0, 0x13c($t5) +/* 0CFE90 7F09B320 8C790000 */ lw $t9, ($v1) +/* 0CFE94 7F09B324 AF200140 */ sw $zero, 0x140($t9) +/* 0CFE98 7F09B328 8C780000 */ lw $t8, ($v1) +/* 0CFE9C 7F09B32C AF090144 */ sw $t1, 0x144($t8) +/* 0CFEA0 7F09B330 8C6B0000 */ lw $t3, ($v1) +/* 0CFEA4 7F09B334 E5600148 */ swc1 $f0, 0x148($t3) +/* 0CFEA8 7F09B338 8C6F0000 */ lw $t7, ($v1) +/* 0CFEAC 7F09B33C E5E0014C */ swc1 $f0, 0x14c($t7) +/* 0CFEB0 7F09B340 8C6E0000 */ lw $t6, ($v1) +/* 0CFEB4 7F09B344 E5C20150 */ swc1 $f2, 0x150($t6) +/* 0CFEB8 7F09B348 8C6C0000 */ lw $t4, ($v1) +/* 0CFEBC 7F09B34C E5800154 */ swc1 $f0, 0x154($t4) +/* 0CFEC0 7F09B350 8C6D0000 */ lw $t5, ($v1) +/* 0CFEC4 7F09B354 E5A40158 */ swc1 $f4, 0x158($t5) +/* 0CFEC8 7F09B358 8C790000 */ lw $t9, ($v1) +/* 0CFECC 7F09B35C C4267640 */ lwc1 $f6, %lo(D_80057610)($at) +/* 0CFED0 7F09B360 3C01C1C8 */ li $at, 0xC1C80000 # -25.000000 +/* 0CFED4 7F09B364 44814000 */ mtc1 $at, $f8 +/* 0CFED8 7F09B368 E726015C */ swc1 $f6, 0x15c($t9) +/* 0CFEDC 7F09B36C 8C780000 */ lw $t8, ($v1) +/* 0CFEE0 7F09B370 3C018005 */ lui $at, %hi(D_80057614) # $at, 0x8005 +/* 0CFEE4 7F09B374 E7000160 */ swc1 $f0, 0x160($t8) +/* 0CFEE8 7F09B378 8C6B0000 */ lw $t3, ($v1) +/* 0CFEEC 7F09B37C E5620164 */ swc1 $f2, 0x164($t3) +/* 0CFEF0 7F09B380 8C6F0000 */ lw $t7, ($v1) +/* 0CFEF4 7F09B384 E5E00168 */ swc1 $f0, 0x168($t7) +/* 0CFEF8 7F09B388 8C6E0000 */ lw $t6, ($v1) +/* 0CFEFC 7F09B38C E5C0016C */ swc1 $f0, 0x16c($t6) +/* 0CFF00 7F09B390 8C6C0000 */ lw $t4, ($v1) +/* 0CFF04 7F09B394 E5800170 */ swc1 $f0, 0x170($t4) +/* 0CFF08 7F09B398 8C6D0000 */ lw $t5, ($v1) +/* 0CFF0C 7F09B39C E5A00174 */ swc1 $f0, 0x174($t5) +/* 0CFF10 7F09B3A0 8C790000 */ lw $t9, ($v1) +/* 0CFF14 7F09B3A4 E7202A4C */ swc1 $f0, 0x2a4c($t9) +/* 0CFF18 7F09B3A8 8C780000 */ lw $t8, ($v1) +/* 0CFF1C 7F09B3AC E7020178 */ swc1 $f2, 0x178($t8) +/* 0CFF20 7F09B3B0 8C6B0000 */ lw $t3, ($v1) +/* 0CFF24 7F09B3B4 E5600180 */ swc1 $f0, 0x180($t3) +/* 0CFF28 7F09B3B8 8C6F0000 */ lw $t7, ($v1) +/* 0CFF2C 7F09B3BC E5E00184 */ swc1 $f0, 0x184($t7) +/* 0CFF30 7F09B3C0 8C6E0000 */ lw $t6, ($v1) +/* 0CFF34 7F09B3C4 E5C00188 */ swc1 $f0, 0x188($t6) +/* 0CFF38 7F09B3C8 8C6C0000 */ lw $t4, ($v1) +/* 0CFF3C 7F09B3CC E58C018C */ swc1 $f12, 0x18c($t4) +/* 0CFF40 7F09B3D0 8C6D0000 */ lw $t5, ($v1) +/* 0CFF44 7F09B3D4 E5AC0190 */ swc1 $f12, 0x190($t5) +/* 0CFF48 7F09B3D8 8C790000 */ lw $t9, ($v1) +/* 0CFF4C 7F09B3DC E7200194 */ swc1 $f0, 0x194($t9) +/* 0CFF50 7F09B3E0 8C780000 */ lw $t8, ($v1) +/* 0CFF54 7F09B3E4 E7000198 */ swc1 $f0, 0x198($t8) +/* 0CFF58 7F09B3E8 8C6B0000 */ lw $t3, ($v1) +/* 0CFF5C 7F09B3EC E560019C */ swc1 $f0, 0x19c($t3) +/* 0CFF60 7F09B3F0 8C6F0000 */ lw $t7, ($v1) +/* 0CFF64 7F09B3F4 ADE001A0 */ sw $zero, 0x1a0($t7) +/* 0CFF68 7F09B3F8 8C6E0000 */ lw $t6, ($v1) +/* 0CFF6C 7F09B3FC ADC001C0 */ sw $zero, 0x1c0($t6) +/* 0CFF70 7F09B400 8C6C0000 */ lw $t4, ($v1) +/* 0CFF74 7F09B404 AD8001C4 */ sw $zero, 0x1c4($t4) +/* 0CFF78 7F09B408 8C6D0000 */ lw $t5, ($v1) +/* 0CFF7C 7F09B40C ADA001C8 */ sw $zero, 0x1c8($t5) +/* 0CFF80 7F09B410 8C790000 */ lw $t9, ($v1) +/* 0CFF84 7F09B414 AF2801CC */ sw $t0, 0x1cc($t9) +/* 0CFF88 7F09B418 8C780000 */ lw $t8, ($v1) +/* 0CFF8C 7F09B41C AF0001D0 */ sw $zero, 0x1d0($t8) +/* 0CFF90 7F09B420 8C6B0000 */ lw $t3, ($v1) +/* 0CFF94 7F09B424 E56001D4 */ swc1 $f0, 0x1d4($t3) +/* 0CFF98 7F09B428 8C6F0000 */ lw $t7, ($v1) +/* 0CFF9C 7F09B42C E5E001D8 */ swc1 $f0, 0x1d8($t7) +/* 0CFFA0 7F09B430 8C6E0000 */ lw $t6, ($v1) +/* 0CFFA4 7F09B434 E5C801DC */ swc1 $f8, 0x1dc($t6) +/* 0CFFA8 7F09B438 8C6C0000 */ lw $t4, ($v1) +/* 0CFFAC 7F09B43C E58001E0 */ swc1 $f0, 0x1e0($t4) +/* 0CFFB0 7F09B440 8C6D0000 */ lw $t5, ($v1) +/* 0CFFB4 7F09B444 E5A201E4 */ swc1 $f2, 0x1e4($t5) +/* 0CFFB8 7F09B448 8C790000 */ lw $t9, ($v1) +/* 0CFFBC 7F09B44C E72001E8 */ swc1 $f0, 0x1e8($t9) +/* 0CFFC0 7F09B450 8C780000 */ lw $t8, ($v1) +/* 0CFFC4 7F09B454 E70001EC */ swc1 $f0, 0x1ec($t8) +/* 0CFFC8 7F09B458 8C6B0000 */ lw $t3, ($v1) +/* 0CFFCC 7F09B45C E56001F0 */ swc1 $f0, 0x1f0($t3) +/* 0CFFD0 7F09B460 8C6F0000 */ lw $t7, ($v1) +/* 0CFFD4 7F09B464 E5E201F4 */ swc1 $f2, 0x1f4($t7) +/* 0CFFD8 7F09B468 8C6E0000 */ lw $t6, ($v1) +/* 0CFFDC 7F09B46C ADC00200 */ sw $zero, 0x200($t6) +/* 0CFFE0 7F09B470 8C6C0000 */ lw $t4, ($v1) +/* 0CFFE4 7F09B474 E5800204 */ swc1 $f0, 0x204($t4) +/* 0CFFE8 7F09B478 8C6D0000 */ lw $t5, ($v1) +/* 0CFFEC 7F09B47C E5A00208 */ swc1 $f0, 0x208($t5) +/* 0CFFF0 7F09B480 8C790000 */ lw $t9, ($v1) +/* 0CFFF4 7F09B484 E720020C */ swc1 $f0, 0x20c($t9) +/* 0CFFF8 7F09B488 8C780000 */ lw $t8, ($v1) +/* 0CFFFC 7F09B48C E7000210 */ swc1 $f0, 0x210($t8) +/* 0D0000 7F09B490 8C6B0000 */ lw $t3, ($v1) +/* 0D0004 7F09B494 E5600214 */ swc1 $f0, 0x214($t3) +/* 0D0008 7F09B498 8C6F0000 */ lw $t7, ($v1) +/* 0D000C 7F09B49C ADE00218 */ sw $zero, 0x218($t7) +/* 0D0010 7F09B4A0 8C6E0000 */ lw $t6, ($v1) +/* 0D0014 7F09B4A4 ADC8021C */ sw $t0, 0x21c($t6) +/* 0D0018 7F09B4A8 8C6C0000 */ lw $t4, ($v1) +/* 0D001C 7F09B4AC AD800220 */ sw $zero, 0x220($t4) +/* 0D0020 7F09B4B0 8C6D0000 */ lw $t5, ($v1) +/* 0D0024 7F09B4B4 E5A00224 */ swc1 $f0, 0x224($t5) +/* 0D0028 7F09B4B8 8C790000 */ lw $t9, ($v1) +/* 0D002C 7F09B4BC A72003B4 */ sh $zero, 0x3b4($t9) +/* 0D0030 7F09B4C0 8C780000 */ lw $t8, ($v1) +/* 0D0034 7F09B4C4 A70003B6 */ sh $zero, 0x3b6($t8) +/* 0D0038 7F09B4C8 8C6B0000 */ lw $t3, ($v1) +/* 0D003C 7F09B4CC E56003B8 */ swc1 $f0, 0x3b8($t3) +/* 0D0040 7F09B4D0 8C6F0000 */ lw $t7, ($v1) +/* 0D0044 7F09B4D4 E5E003BC */ swc1 $f0, 0x3bc($t7) +/* 0D0048 7F09B4D8 8C6E0000 */ lw $t6, ($v1) +/* 0D004C 7F09B4DC C42A7644 */ lwc1 $f10, %lo(D_80057614)($at) +/* 0D0050 7F09B4E0 E5CA03C0 */ swc1 $f10, 0x3c0($t6) +/* 0D0054 7F09B4E4 8C6C0000 */ lw $t4, ($v1) +/* 0D0058 7F09B4E8 E58003C4 */ swc1 $f0, 0x3c4($t4) +/* 0D005C 7F09B4EC 8C6D0000 */ lw $t5, ($v1) +/* 0D0060 7F09B4F0 E5A003C8 */ swc1 $f0, 0x3c8($t5) +/* 0D0064 7F09B4F4 8C790000 */ lw $t9, ($v1) +/* 0D0068 7F09B4F8 E72203CC */ swc1 $f2, 0x3cc($t9) +/* 0D006C 7F09B4FC 8C780000 */ lw $t8, ($v1) +/* 0D0070 7F09B500 AF0203D0 */ sw $v0, 0x3d0($t8) +/* 0D0074 7F09B504 8C6B0000 */ lw $t3, ($v1) +/* 0D0078 7F09B508 AD6203D4 */ sw $v0, 0x3d4($t3) +/* 0D007C 7F09B50C 8C6F0000 */ lw $t7, ($v1) +/* 0D0080 7F09B510 3C018005 */ lui $at, %hi(D_80057618) # $at, 0x8005 +/* 0D0084 7F09B514 24070020 */ li $a3, 32 +/* 0D0088 7F09B518 ADE203D8 */ sw $v0, 0x3d8($t7) +/* 0D008C 7F09B51C 8C6E0000 */ lw $t6, ($v1) +/* 0D0090 7F09B520 240601FF */ li $a2, 511 +/* 0D0094 7F09B524 240501E0 */ li $a1, 480 +/* 0D0098 7F09B528 E5C003DC */ swc1 $f0, 0x3dc($t6) +/* 0D009C 7F09B52C 8C6C0000 */ lw $t4, ($v1) +/* 0D00A0 7F09B530 E58C03E0 */ swc1 $f12, 0x3e0($t4) +/* 0D00A4 7F09B534 8C6D0000 */ lw $t5, ($v1) +/* 0D00A8 7F09B538 E5AC03E4 */ swc1 $f12, 0x3e4($t5) +/* 0D00AC 7F09B53C 8C790000 */ lw $t9, ($v1) +/* 0D00B0 7F09B540 AF2203E8 */ sw $v0, 0x3e8($t9) +/* 0D00B4 7F09B544 8C780000 */ lw $t8, ($v1) +/* 0D00B8 7F09B548 AF0203EC */ sw $v0, 0x3ec($t8) +/* 0D00BC 7F09B54C 8C6B0000 */ lw $t3, ($v1) +/* 0D00C0 7F09B550 AD6203F0 */ sw $v0, 0x3f0($t3) +/* 0D00C4 7F09B554 8C6F0000 */ lw $t7, ($v1) +/* 0D00C8 7F09B558 ADE203F4 */ sw $v0, 0x3f4($t7) +/* 0D00CC 7F09B55C 8C6E0000 */ lw $t6, ($v1) +/* 0D00D0 7F09B560 ADC203F8 */ sw $v0, 0x3f8($t6) +/* 0D00D4 7F09B564 8C6C0000 */ lw $t4, ($v1) +/* 0D00D8 7F09B568 AD8203FC */ sw $v0, 0x3fc($t4) +/* 0D00DC 7F09B56C 8C6D0000 */ lw $t5, ($v1) +/* 0D00E0 7F09B570 00001025 */ move $v0, $zero +/* 0D00E4 7F09B574 E5A00400 */ swc1 $f0, 0x400($t5) +/* 0D00E8 7F09B578 8C790000 */ lw $t9, ($v1) +/* 0D00EC 7F09B57C E7200404 */ swc1 $f0, 0x404($t9) +/* 0D00F0 7F09B580 8C780000 */ lw $t8, ($v1) +/* 0D00F4 7F09B584 AF00041C */ sw $zero, 0x41c($t8) +/* 0D00F8 7F09B588 8C6B0000 */ lw $t3, ($v1) +/* 0D00FC 7F09B58C AD680420 */ sw $t0, 0x420($t3) +/* 0D0100 7F09B590 8C6F0000 */ lw $t7, ($v1) +/* 0D0104 7F09B594 ADE00424 */ sw $zero, 0x424($t7) +/* 0D0108 7F09B598 8C6E0000 */ lw $t6, ($v1) +/* 0D010C 7F09B59C ADC00428 */ sw $zero, 0x428($t6) +/* 0D0110 7F09B5A0 8C6C0000 */ lw $t4, ($v1) +/* 0D0114 7F09B5A4 AD84042C */ sw $a0, 0x42c($t4) +/* 0D0118 7F09B5A8 8C6D0000 */ lw $t5, ($v1) +/* 0D011C 7F09B5AC 24040280 */ li $a0, 640 +/* 0D0120 7F09B5B0 ADA00430 */ sw $zero, 0x430($t5) +/* 0D0124 7F09B5B4 8C790000 */ lw $t9, ($v1) +/* 0D0128 7F09B5B8 AF2804DC */ sw $t0, 0x4dc($t9) +/* 0D012C 7F09B5BC 8C780000 */ lw $t8, ($v1) +/* 0D0130 7F09B5C0 AF0804E0 */ sw $t0, 0x4e0($t8) +/* 0D0134 7F09B5C4 8C6B0000 */ lw $t3, ($v1) +/* 0D0138 7F09B5C8 AD6804E4 */ sw $t0, 0x4e4($t3) +/* 0D013C 7F09B5CC 8C6F0000 */ lw $t7, ($v1) +/* 0D0140 7F09B5D0 ADE004E8 */ sw $zero, 0x4e8($t7) +/* 0D0144 7F09B5D4 8C6E0000 */ lw $t6, ($v1) +/* 0D0148 7F09B5D8 C4327648 */ lwc1 $f18, %lo(D_80057618)($at) +/* 0D014C 7F09B5DC 3C018005 */ lui $at, %hi(D_8005761C) # $at, 0x8005 +/* 0D0150 7F09B5E0 E5D204EC */ swc1 $f18, 0x4ec($t6) +/* 0D0154 7F09B5E4 8C6C0000 */ lw $t4, ($v1) +/* 0D0158 7F09B5E8 AD8004F0 */ sw $zero, 0x4f0($t4) +/* 0D015C 7F09B5EC 8C6D0000 */ lw $t5, ($v1) +/* 0D0160 7F09B5F0 E5A204F4 */ swc1 $f2, 0x4f4($t5) +/* 0D0164 7F09B5F4 8C790000 */ lw $t9, ($v1) +/* 0D0168 7F09B5F8 E72204F8 */ swc1 $f2, 0x4f8($t9) +/* 0D016C 7F09B5FC 8C780000 */ lw $t8, ($v1) +/* 0D0170 7F09B600 E70004FC */ swc1 $f0, 0x4fc($t8) +/* 0D0174 7F09B604 8C6B0000 */ lw $t3, ($v1) +/* 0D0178 7F09B608 E5600500 */ swc1 $f0, 0x500($t3) +/* 0D017C 7F09B60C 8C6F0000 */ lw $t7, ($v1) +/* 0D0180 7F09B610 E5E00504 */ swc1 $f0, 0x504($t7) +/* 0D0184 7F09B614 8C6E0000 */ lw $t6, ($v1) +/* 0D0188 7F09B618 C42C764C */ lwc1 $f12, %lo(D_8005761C)($at) +/* 0D018C 7F09B61C E5C00508 */ swc1 $f0, 0x508($t6) +/* 0D0190 7F09B620 8C6C0000 */ lw $t4, ($v1) +/* 0D0194 7F09B624 E580050C */ swc1 $f0, 0x50c($t4) +/* 0D0198 7F09B628 8C6D0000 */ lw $t5, ($v1) +/* 0D019C 7F09B62C E5A20510 */ swc1 $f2, 0x510($t5) +/* 0D01A0 7F09B630 8C790000 */ lw $t9, ($v1) +/* 0D01A4 7F09B634 E7200514 */ swc1 $f0, 0x514($t9) +/* 0D01A8 7F09B638 8C780000 */ lw $t8, ($v1) +/* 0D01AC 7F09B63C E7020518 */ swc1 $f2, 0x518($t8) +/* 0D01B0 7F09B640 8C6B0000 */ lw $t3, ($v1) +/* 0D01B4 7F09B644 E560051C */ swc1 $f0, 0x51c($t3) +/* 0D01B8 7F09B648 8C6F0000 */ lw $t7, ($v1) +/* 0D01BC 7F09B64C E5E00520 */ swc1 $f0, 0x520($t7) +/* 0D01C0 7F09B650 8C6E0000 */ lw $t6, ($v1) +/* 0D01C4 7F09B654 E5C00524 */ swc1 $f0, 0x524($t6) +/* 0D01C8 7F09B658 8C6C0000 */ lw $t4, ($v1) +/* 0D01CC 7F09B65C E5800528 */ swc1 $f0, 0x528($t4) +/* 0D01D0 7F09B660 8C6D0000 */ lw $t5, ($v1) +/* 0D01D4 7F09B664 E5A0052C */ swc1 $f0, 0x52c($t5) +/* 0D01D8 7F09B668 8C790000 */ lw $t9, ($v1) +/* 0D01DC 7F09B66C E7200530 */ swc1 $f0, 0x530($t9) +/* 0D01E0 7F09B670 8C780000 */ lw $t8, ($v1) +/* 0D01E4 7F09B674 E70C0534 */ swc1 $f12, 0x534($t8) +/* 0D01E8 7F09B678 8C6B0000 */ lw $t3, ($v1) +/* 0D01EC 7F09B67C E5600538 */ swc1 $f0, 0x538($t3) +/* 0D01F0 7F09B680 8C6F0000 */ lw $t7, ($v1) +/* 0D01F4 7F09B684 E5EC053C */ swc1 $f12, 0x53c($t7) +/* 0D01F8 7F09B688 8C6E0000 */ lw $t6, ($v1) +/* 0D01FC 7F09B68C E5C00540 */ swc1 $f0, 0x540($t6) +/* 0D0200 7F09B690 8C6C0000 */ lw $t4, ($v1) +/* 0D0204 7F09B694 E5800544 */ swc1 $f0, 0x544($t4) +/* 0D0208 7F09B698 8C6D0000 */ lw $t5, ($v1) +/* 0D020C 7F09B69C E5A00548 */ swc1 $f0, 0x548($t5) +/* 0D0210 7F09B6A0 8C790000 */ lw $t9, ($v1) +/* 0D0214 7F09B6A4 E720054C */ swc1 $f0, 0x54c($t9) +/* 0D0218 7F09B6A8 8C780000 */ lw $t8, ($v1) +/* 0D021C 7F09B6AC E7000550 */ swc1 $f0, 0x550($t8) +/* 0D0220 7F09B6B0 8C6B0000 */ lw $t3, ($v1) +/* 0D0224 7F09B6B4 E5600554 */ swc1 $f0, 0x554($t3) +/* 0D0228 7F09B6B8 8C6F0000 */ lw $t7, ($v1) +/* 0D022C 7F09B6BC E5E00558 */ swc1 $f0, 0x558($t7) +/* 0D0230 7F09B6C0 8C6E0000 */ lw $t6, ($v1) +/* 0D0234 7F09B6C4 E5C0055C */ swc1 $f0, 0x55c($t6) +/* 0D0238 7F09B6C8 8C6C0000 */ lw $t4, ($v1) +/* 0D023C 7F09B6CC E5800560 */ swc1 $f0, 0x560($t4) +/* 0D0240 7F09B6D0 8C6D0000 */ lw $t5, ($v1) +/* 0D0244 7F09B6D4 E5A00564 */ swc1 $f0, 0x564($t5) +/* 0D0248 7F09B6D8 8C790000 */ lw $t9, ($v1) +/* 0D024C 7F09B6DC E7200568 */ swc1 $f0, 0x568($t9) +/* 0D0250 7F09B6E0 8C780000 */ lw $t8, ($v1) +/* 0D0254 7F09B6E4 E702056C */ swc1 $f2, 0x56c($t8) +/* 0D0258 7F09B6E8 8C6B0000 */ lw $t3, ($v1) +/* 0D025C 7F09B6EC E5600570 */ swc1 $f0, 0x570($t3) +/* 0D0260 7F09B6F0 8C6F0000 */ lw $t7, ($v1) +/* 0D0264 7F09B6F4 E5E00574 */ swc1 $f0, 0x574($t7) +/* 0D0268 7F09B6F8 8C6E0000 */ lw $t6, ($v1) +/* 0D026C 7F09B6FC E5C20578 */ swc1 $f2, 0x578($t6) +/* 0D0270 7F09B700 8C6C0000 */ lw $t4, ($v1) +/* 0D0274 7F09B704 E580057C */ swc1 $f0, 0x57c($t4) +/* 0D0278 7F09B708 8C6D0000 */ lw $t5, ($v1) +/* 0D027C 7F09B70C E5A20580 */ swc1 $f2, 0x580($t5) +/* 0D0280 7F09B710 8C790000 */ lw $t9, ($v1) +/* 0D0284 7F09B714 E7200584 */ swc1 $f0, 0x584($t9) +/* 0D0288 7F09B718 8C780000 */ lw $t8, ($v1) +/* 0D028C 7F09B71C E7000588 */ swc1 $f0, 0x588($t8) +/* 0D0290 7F09B720 8C6B0000 */ lw $t3, ($v1) +/* 0D0294 7F09B724 E562058C */ swc1 $f2, 0x58c($t3) +/* 0D0298 7F09B728 8C6F0000 */ lw $t7, ($v1) +/* 0D029C 7F09B72C E5E00590 */ swc1 $f0, 0x590($t7) +/* 0D02A0 7F09B730 8C6E0000 */ lw $t6, ($v1) +/* 0D02A4 7F09B734 ADC00594 */ sw $zero, 0x594($t6) +.L7F09B738: +/* 0D02A8 7F09B738 8C6C0000 */ lw $t4, ($v1) +/* 0D02AC 7F09B73C 01826821 */ addu $t5, $t4, $v0 +/* 0D02B0 7F09B740 A5A407D0 */ sh $a0, 0x7d0($t5) +/* 0D02B4 7F09B744 8C790000 */ lw $t9, ($v1) +/* 0D02B8 7F09B748 0322C021 */ addu $t8, $t9, $v0 +/* 0D02BC 7F09B74C A70507D2 */ sh $a1, 0x7d2($t8) +/* 0D02C0 7F09B750 8C6B0000 */ lw $t3, ($v1) +/* 0D02C4 7F09B754 01627821 */ addu $t7, $t3, $v0 +/* 0D02C8 7F09B758 A5E607D4 */ sh $a2, 0x7d4($t7) +/* 0D02CC 7F09B75C 8C6E0000 */ lw $t6, ($v1) +/* 0D02D0 7F09B760 01C26021 */ addu $t4, $t6, $v0 +/* 0D02D4 7F09B764 A58007D6 */ sh $zero, 0x7d6($t4) +/* 0D02D8 7F09B768 8C6D0000 */ lw $t5, ($v1) +/* 0D02DC 7F09B76C 01A2C821 */ addu $t9, $t5, $v0 +/* 0D02E0 7F09B770 A72407D8 */ sh $a0, 0x7d8($t9) +/* 0D02E4 7F09B774 8C780000 */ lw $t8, ($v1) +/* 0D02E8 7F09B778 03025821 */ addu $t3, $t8, $v0 +/* 0D02EC 7F09B77C A56507DA */ sh $a1, 0x7da($t3) +/* 0D02F0 7F09B780 8C6F0000 */ lw $t7, ($v1) +/* 0D02F4 7F09B784 01E27021 */ addu $t6, $t7, $v0 +/* 0D02F8 7F09B788 A5C607DC */ sh $a2, 0x7dc($t6) +/* 0D02FC 7F09B78C 8C6C0000 */ lw $t4, ($v1) +/* 0D0300 7F09B790 01826821 */ addu $t5, $t4, $v0 +/* 0D0304 7F09B794 24420010 */ addiu $v0, $v0, 0x10 +/* 0D0308 7F09B798 1447FFE7 */ bne $v0, $a3, .L7F09B738 +/* 0D030C 7F09B79C A5A007DE */ sh $zero, 0x7de($t5) +/* 0D0310 7F09B7A0 8C790000 */ lw $t9, ($v1) +/* 0D0314 7F09B7A4 24020064 */ li $v0, 100 +/* 0D0318 7F09B7A8 A72207F0 */ sh $v0, 0x7f0($t9) +/* 0D031C 7F09B7AC 8C780000 */ lw $t8, ($v1) +/* 0D0320 7F09B7B0 A70207F2 */ sh $v0, 0x7f2($t8) +/* 0D0324 7F09B7B4 8C6B0000 */ lw $t3, ($v1) +/* 0D0328 7F09B7B8 A56007F4 */ sh $zero, 0x7f4($t3) +/* 0D032C 7F09B7BC 8C6F0000 */ lw $t7, ($v1) +/* 0D0330 7F09B7C0 A5E007F6 */ sh $zero, 0x7f6($t7) +/* 0D0334 7F09B7C4 8C6E0000 */ lw $t6, ($v1) +/* 0D0338 7F09B7C8 ADC007F8 */ sw $zero, 0x7f8($t6) +/* 0D033C 7F09B7CC 8C6C0000 */ lw $t4, ($v1) +/* 0D0340 7F09B7D0 AD8007FC */ sw $zero, 0x7fc($t4) +/* 0D0344 7F09B7D4 8C6D0000 */ lw $t5, ($v1) +/* 0D0348 7F09B7D8 ADA00800 */ sw $zero, 0x800($t5) +/* 0D034C 7F09B7DC 8C790000 */ lw $t9, ($v1) +/* 0D0350 7F09B7E0 AF200804 */ sw $zero, 0x804($t9) +/* 0D0354 7F09B7E4 8C780000 */ lw $t8, ($v1) +/* 0D0358 7F09B7E8 AF092A44 */ sw $t1, 0x2a44($t8) +/* 0D035C 7F09B7EC 8C6B0000 */ lw $t3, ($v1) +/* 0D0360 7F09B7F0 0140C025 */ move $t8, $t2 +/* 0D0364 7F09B7F4 AD692A48 */ sw $t1, 0x2a48($t3) +/* 0D0368 7F09B7F8 8C6F0000 */ lw $t7, ($v1) +/* 0D036C 7F09B7FC 254B03A8 */ addiu $t3, $t2, 0x3a8 +/* 0D0370 7F09B800 ADE02A50 */ sw $zero, 0x2a50($t7) +/* 0D0374 7F09B804 8C6E0000 */ lw $t6, ($v1) +/* 0D0378 7F09B808 01407825 */ move $t7, $t2 +/* 0D037C 7F09B80C ADC02A54 */ sw $zero, 0x2a54($t6) +/* 0D0380 7F09B810 8C6C0000 */ lw $t4, ($v1) +/* 0D0384 7F09B814 AD800808 */ sw $zero, 0x808($t4) +/* 0D0388 7F09B818 8C6D0000 */ lw $t5, ($v1) +/* 0D038C 7F09B81C ADA0080C */ sw $zero, 0x80c($t5) +/* 0D0390 7F09B820 8C790000 */ lw $t9, ($v1) +.L7F09B824: +/* 0D0394 7F09B824 8DE10000 */ lw $at, ($t7) +/* 0D0398 7F09B828 25EF000C */ addiu $t7, $t7, 0xc +/* 0D039C 7F09B82C 2739000C */ addiu $t9, $t9, 0xc +/* 0D03A0 7F09B830 AF210864 */ sw $at, 0x864($t9) +/* 0D03A4 7F09B834 8DE1FFF8 */ lw $at, -8($t7) +/* 0D03A8 7F09B838 AF210868 */ sw $at, 0x868($t9) +/* 0D03AC 7F09B83C 8DE1FFFC */ lw $at, -4($t7) +/* 0D03B0 7F09B840 15EBFFF8 */ bne $t7, $t3, .L7F09B824 +/* 0D03B4 7F09B844 AF21086C */ sw $at, 0x86c($t9) +/* 0D03B8 7F09B848 8C6E0000 */ lw $t6, ($v1) +/* 0D03BC 7F09B84C 254D03A8 */ addiu $t5, $t2, 0x3a8 +.L7F09B850: +/* 0D03C0 7F09B850 8F010000 */ lw $at, ($t8) +/* 0D03C4 7F09B854 2718000C */ addiu $t8, $t8, 0xc +/* 0D03C8 7F09B858 25CE000C */ addiu $t6, $t6, 0xc +/* 0D03CC 7F09B85C ADC10C0C */ sw $at, 0xc0c($t6) +/* 0D03D0 7F09B860 8F01FFF8 */ lw $at, -8($t8) +/* 0D03D4 7F09B864 ADC10C10 */ sw $at, 0xc10($t6) +/* 0D03D8 7F09B868 8F01FFFC */ lw $at, -4($t8) +/* 0D03DC 7F09B86C 170DFFF8 */ bne $t8, $t5, .L7F09B850 +/* 0D03E0 7F09B870 ADC10C14 */ sw $at, 0xc14($t6) +/* 0D03E4 7F09B874 8C6B0000 */ lw $t3, ($v1) +/* 0D03E8 7F09B878 3C018005 */ lui $at, %hi(D_80057620) # $at, 0x8005 +/* 0D03EC 7F09B87C 240200FF */ li $v0, 255 +/* 0D03F0 7F09B880 E5620FC0 */ swc1 $f2, 0xfc0($t3) +/* 0D03F4 7F09B884 8C6F0000 */ lw $t7, ($v1) +/* 0D03F8 7F09B888 24040007 */ li $a0, 7 +/* 0D03FC 7F09B88C E5E20FC4 */ swc1 $f2, 0xfc4($t7) +/* 0D0400 7F09B890 8C790000 */ lw $t9, ($v1) +/* 0D0404 7F09B894 AF200FC8 */ sw $zero, 0xfc8($t9) +/* 0D0408 7F09B898 8C6C0000 */ lw $t4, ($v1) +/* 0D040C 7F09B89C AD800FCC */ sw $zero, 0xfcc($t4) +/* 0D0410 7F09B8A0 8C6D0000 */ lw $t5, ($v1) +/* 0D0414 7F09B8A4 C42C7650 */ lwc1 $f12, %lo(D_80057620)($at) +/* 0D0418 7F09B8A8 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0D041C 7F09B8AC ADA00FD0 */ sw $zero, 0xfd0($t5) +/* 0D0420 7F09B8B0 8C780000 */ lw $t8, ($v1) +/* 0D0424 7F09B8B4 AF000FD4 */ sw $zero, 0xfd4($t8) +/* 0D0428 7F09B8B8 8C6E0000 */ lw $t6, ($v1) +/* 0D042C 7F09B8BC ADC00FD8 */ sw $zero, 0xfd8($t6) +/* 0D0430 7F09B8C0 8C6B0000 */ lw $t3, ($v1) +/* 0D0434 7F09B8C4 A1620FDC */ sb $v0, 0xfdc($t3) +/* 0D0438 7F09B8C8 8C6F0000 */ lw $t7, ($v1) +/* 0D043C 7F09B8CC A1E20FDD */ sb $v0, 0xfdd($t7) +/* 0D0440 7F09B8D0 8C790000 */ lw $t9, ($v1) +/* 0D0444 7F09B8D4 A3220FDE */ sb $v0, 0xfde($t9) +/* 0D0448 7F09B8D8 8C6C0000 */ lw $t4, ($v1) +/* 0D044C 7F09B8DC 3C028008 */ lui $v0, %hi(random_byte) # $v0, 0x8008 +/* 0D0450 7F09B8E0 2442A12C */ addiu $v0, %lo(random_byte) # addiu $v0, $v0, -0x5ed4 +/* 0D0454 7F09B8E4 A1800FDF */ sb $zero, 0xfdf($t4) +/* 0D0458 7F09B8E8 8C6D0000 */ lw $t5, ($v1) +/* 0D045C 7F09B8EC ADA80FE0 */ sw $t0, 0xfe0($t5) +/* 0D0460 7F09B8F0 8C780000 */ lw $t8, ($v1) +/* 0D0464 7F09B8F4 AF000FE4 */ sw $zero, 0xfe4($t8) +/* 0D0468 7F09B8F8 8C6E0000 */ lw $t6, ($v1) +/* 0D046C 7F09B8FC E5C00FE8 */ swc1 $f0, 0xfe8($t6) +/* 0D0470 7F09B900 8C6B0000 */ lw $t3, ($v1) +/* 0D0474 7F09B904 E5600FEC */ swc1 $f0, 0xfec($t3) +/* 0D0478 7F09B908 8C6F0000 */ lw $t7, ($v1) +/* 0D047C 7F09B90C E5E00FF0 */ swc1 $f0, 0xff0($t7) +/* 0D0480 7F09B910 8C790000 */ lw $t9, ($v1) +/* 0D0484 7F09B914 E7200FF4 */ swc1 $f0, 0xff4($t9) +/* 0D0488 7F09B918 8C6C0000 */ lw $t4, ($v1) +/* 0D048C 7F09B91C E58C0FF8 */ swc1 $f12, 0xff8($t4) +/* 0D0490 7F09B920 8C6D0000 */ lw $t5, ($v1) +/* 0D0494 7F09B924 E5A00FFC */ swc1 $f0, 0xffc($t5) +/* 0D0498 7F09B928 8C780000 */ lw $t8, ($v1) +/* 0D049C 7F09B92C E7001000 */ swc1 $f0, 0x1000($t8) +/* 0D04A0 7F09B930 8C6E0000 */ lw $t6, ($v1) +/* 0D04A4 7F09B934 E5C01004 */ swc1 $f0, 0x1004($t6) +/* 0D04A8 7F09B938 8C6B0000 */ lw $t3, ($v1) +/* 0D04AC 7F09B93C E5601008 */ swc1 $f0, 0x1008($t3) +/* 0D04B0 7F09B940 8C6F0000 */ lw $t7, ($v1) +/* 0D04B4 7F09B944 E5EC100C */ swc1 $f12, 0x100c($t7) +/* 0D04B8 7F09B948 44816000 */ mtc1 $at, $f12 +/* 0D04BC 7F09B94C 8C790000 */ lw $t9, ($v1) +/* 0D04C0 7F09B950 3C0143A0 */ li $at, 0x43A00000 # 320.000000 +/* 0D04C4 7F09B954 44817000 */ mtc1 $at, $f14 +/* 0D04C8 7F09B958 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 0D04CC 7F09B95C 44818000 */ mtc1 $at, $f16 +/* 0D04D0 7F09B960 E7201010 */ swc1 $f0, 0x1010($t9) +/* 0D04D4 7F09B964 3C018005 */ lui $at, %hi(D_80057624) # $at, 0x8005 +/* 0D04D8 7F09B968 C4247654 */ lwc1 $f4, %lo(D_80057624)($at) +/* 0D04DC 7F09B96C 8C6C0000 */ lw $t4, ($v1) +/* 0D04E0 7F09B970 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0D04E4 7F09B974 44813000 */ mtc1 $at, $f6 +/* 0D04E8 7F09B978 E5841014 */ swc1 $f4, 0x1014($t4) +/* 0D04EC 7F09B97C 8C6D0000 */ lw $t5, ($v1) +/* 0D04F0 7F09B980 3C014238 */ li $at, 0x42380000 # 46.000000 +/* 0D04F4 7F09B984 44814000 */ mtc1 $at, $f8 +/* 0D04F8 7F09B988 E5A01018 */ swc1 $f0, 0x1018($t5) +/* 0D04FC 7F09B98C 8C780000 */ lw $t8, ($v1) +/* 0D0500 7F09B990 3C014320 */ li $at, 0x43200000 # 160.000000 +/* 0D0504 7F09B994 44815000 */ mtc1 $at, $f10 +/* 0D0508 7F09B998 AF00105C */ sw $zero, 0x105c($t8) +/* 0D050C 7F09B99C 8C6E0000 */ lw $t6, ($v1) +/* 0D0510 7F09B9A0 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 0D0514 7F09B9A4 44819000 */ mtc1 $at, $f18 +/* 0D0518 7F09B9A8 ADC01060 */ sw $zero, 0x1060($t6) +/* 0D051C 7F09B9AC 8C6B0000 */ lw $t3, ($v1) +/* 0D0520 7F09B9B0 3C018005 */ lui $at, %hi(D_80057628) # $at, 0x8005 +/* 0D0524 7F09B9B4 AD601064 */ sw $zero, 0x1064($t3) +/* 0D0528 7F09B9B8 8C6F0000 */ lw $t7, ($v1) +/* 0D052C 7F09B9BC E5E0106C */ swc1 $f0, 0x106c($t7) +/* 0D0530 7F09B9C0 8C790000 */ lw $t9, ($v1) +/* 0D0534 7F09B9C4 E7201070 */ swc1 $f0, 0x1070($t9) +/* 0D0538 7F09B9C8 8C6C0000 */ lw $t4, ($v1) +/* 0D053C 7F09B9CC E5801074 */ swc1 $f0, 0x1074($t4) +/* 0D0540 7F09B9D0 8C6D0000 */ lw $t5, ($v1) +/* 0D0544 7F09B9D4 ADA01078 */ sw $zero, 0x1078($t5) +/* 0D0548 7F09B9D8 8C780000 */ lw $t8, ($v1) +/* 0D054C 7F09B9DC E700107C */ swc1 $f0, 0x107c($t8) +/* 0D0550 7F09B9E0 8C6E0000 */ lw $t6, ($v1) +/* 0D0554 7F09B9E4 E5C01080 */ swc1 $f0, 0x1080($t6) +/* 0D0558 7F09B9E8 8C6B0000 */ lw $t3, ($v1) +/* 0D055C 7F09B9EC E56C1084 */ swc1 $f12, 0x1084($t3) +/* 0D0560 7F09B9F0 8C6F0000 */ lw $t7, ($v1) +/* 0D0564 7F09B9F4 E5EC1088 */ swc1 $f12, 0x1088($t7) +/* 0D0568 7F09B9F8 8C790000 */ lw $t9, ($v1) +/* 0D056C 7F09B9FC AF29108C */ sw $t1, 0x108c($t9) +/* 0D0570 7F09BA00 8C6C0000 */ lw $t4, ($v1) +/* 0D0574 7F09BA04 E58E1090 */ swc1 $f14, 0x1090($t4) +/* 0D0578 7F09BA08 8C6D0000 */ lw $t5, ($v1) +/* 0D057C 7F09BA0C E5B01094 */ swc1 $f16, 0x1094($t5) +/* 0D0580 7F09BA10 8C780000 */ lw $t8, ($v1) +/* 0D0584 7F09BA14 E7001098 */ swc1 $f0, 0x1098($t8) +/* 0D0588 7F09BA18 8C6E0000 */ lw $t6, ($v1) +/* 0D058C 7F09BA1C E5C0109C */ swc1 $f0, 0x109c($t6) +/* 0D0590 7F09BA20 8C6B0000 */ lw $t3, ($v1) +/* 0D0594 7F09BA24 E56610A0 */ swc1 $f6, 0x10a0($t3) +/* 0D0598 7F09BA28 8C6F0000 */ lw $t7, ($v1) +/* 0D059C 7F09BA2C E5E810A4 */ swc1 $f8, 0x10a4($t7) +/* 0D05A0 7F09BA30 8C790000 */ lw $t9, ($v1) +/* 0D05A4 7F09BA34 E72210A8 */ swc1 $f2, 0x10a8($t9) +/* 0D05A8 7F09BA38 8C6C0000 */ lw $t4, ($v1) +/* 0D05AC 7F09BA3C E58A10AC */ swc1 $f10, 0x10ac($t4) +/* 0D05B0 7F09BA40 8C6D0000 */ lw $t5, ($v1) +/* 0D05B4 7F09BA44 E5B210B0 */ swc1 $f18, 0x10b0($t5) +/* 0D05B8 7F09BA48 8C780000 */ lw $t8, ($v1) +/* 0D05BC 7F09BA4C E70210B4 */ swc1 $f2, 0x10b4($t8) +/* 0D05C0 7F09BA50 8C6E0000 */ lw $t6, ($v1) +/* 0D05C4 7F09BA54 E5C210B8 */ swc1 $f2, 0x10b8($t6) +/* 0D05C8 7F09BA58 8C6B0000 */ lw $t3, ($v1) +/* 0D05CC 7F09BA5C E56210BC */ swc1 $f2, 0x10bc($t3) +/* 0D05D0 7F09BA60 8C6F0000 */ lw $t7, ($v1) +/* 0D05D4 7F09BA64 E5E210C0 */ swc1 $f2, 0x10c0($t7) +/* 0D05D8 7F09BA68 8C790000 */ lw $t9, ($v1) +/* 0D05DC 7F09BA6C AF2010C4 */ sw $zero, 0x10c4($t9) +/* 0D05E0 7F09BA70 8C6C0000 */ lw $t4, ($v1) +/* 0D05E4 7F09BA74 AD8010C8 */ sw $zero, 0x10c8($t4) +/* 0D05E8 7F09BA78 8C6D0000 */ lw $t5, ($v1) +/* 0D05EC 7F09BA7C ADA010CC */ sw $zero, 0x10cc($t5) +/* 0D05F0 7F09BA80 8C780000 */ lw $t8, ($v1) +/* 0D05F4 7F09BA84 AF0010D0 */ sw $zero, 0x10d0($t8) +/* 0D05F8 7F09BA88 8C6E0000 */ lw $t6, ($v1) +/* 0D05FC 7F09BA8C ADC010D4 */ sw $zero, 0x10d4($t6) +/* 0D0600 7F09BA90 8C6B0000 */ lw $t3, ($v1) +/* 0D0604 7F09BA94 AD6010D8 */ sw $zero, 0x10d8($t3) +/* 0D0608 7F09BA98 8C6F0000 */ lw $t7, ($v1) +/* 0D060C 7F09BA9C ADE010DC */ sw $zero, 0x10dc($t7) +/* 0D0610 7F09BAA0 8C790000 */ lw $t9, ($v1) +/* 0D0614 7F09BAA4 AF2010E0 */ sw $zero, 0x10e0($t9) +/* 0D0618 7F09BAA8 8C6C0000 */ lw $t4, ($v1) +/* 0D061C 7F09BAAC 3C190001 */ lui $t9, 1 +/* 0D0620 7F09BAB0 AD8010E4 */ sw $zero, 0x10e4($t4) +/* 0D0624 7F09BAB4 8C6D0000 */ lw $t5, ($v1) +/* 0D0628 7F09BAB8 ADA010E8 */ sw $zero, 0x10e8($t5) +/* 0D062C 7F09BABC 8C780000 */ lw $t8, ($v1) +/* 0D0630 7F09BAC0 AF0010EC */ sw $zero, 0x10ec($t8) +/* 0D0634 7F09BAC4 8C6E0000 */ lw $t6, ($v1) +/* 0D0638 7F09BAC8 E5C210F0 */ swc1 $f2, 0x10f0($t6) +/* 0D063C 7F09BACC 8C6B0000 */ lw $t3, ($v1) +/* 0D0640 7F09BAD0 E56210F4 */ swc1 $f2, 0x10f4($t3) +/* 0D0644 7F09BAD4 8C6F0000 */ lw $t7, ($v1) +/* 0D0648 7F09BAD8 E5E210F8 */ swc1 $f2, 0x10f8($t7) +/* 0D064C 7F09BADC 8C6C0000 */ lw $t4, ($v1) +/* 0D0650 7F09BAE0 AD9910FC */ sw $t9, 0x10fc($t4) +/* 0D0654 7F09BAE4 8C6D0000 */ lw $t5, ($v1) +/* 0D0658 7F09BAE8 E5A01118 */ swc1 $f0, 0x1118($t5) +/* 0D065C 7F09BAEC 8C780000 */ lw $t8, ($v1) +/* 0D0660 7F09BAF0 E700111C */ swc1 $f0, 0x111c($t8) +/* 0D0664 7F09BAF4 8C6E0000 */ lw $t6, ($v1) +/* 0D0668 7F09BAF8 E5CE1120 */ swc1 $f14, 0x1120($t6) +/* 0D066C 7F09BAFC 8C6B0000 */ lw $t3, ($v1) +/* 0D0670 7F09BB00 E5701124 */ swc1 $f16, 0x1124($t3) +/* 0D0674 7F09BB04 8C6F0000 */ lw $t7, ($v1) +/* 0D0678 7F09BB08 ADE01128 */ sw $zero, 0x1128($t7) +/* 0D067C 7F09BB0C 8C790000 */ lw $t9, ($v1) +/* 0D0680 7F09BB10 AF2011B0 */ sw $zero, 0x11b0($t9) +/* 0D0684 7F09BB14 8C6C0000 */ lw $t4, ($v1) +/* 0D0688 7F09BB18 AD8011B4 */ sw $zero, 0x11b4($t4) +/* 0D068C 7F09BB1C 8C6D0000 */ lw $t5, ($v1) +/* 0D0690 7F09BB20 ADA011B8 */ sw $zero, 0x11b8($t5) +/* 0D0694 7F09BB24 8C780000 */ lw $t8, ($v1) +/* 0D0698 7F09BB28 E70011BC */ swc1 $f0, 0x11bc($t8) +/* 0D069C 7F09BB2C 8C6E0000 */ lw $t6, ($v1) +/* 0D06A0 7F09BB30 E5C011C0 */ swc1 $f0, 0x11c0($t6) +/* 0D06A4 7F09BB34 8C6B0000 */ lw $t3, ($v1) +/* 0D06A8 7F09BB38 E56C11C4 */ swc1 $f12, 0x11c4($t3) +/* 0D06AC 7F09BB3C 8C6F0000 */ lw $t7, ($v1) +/* 0D06B0 7F09BB40 E5EC11C8 */ swc1 $f12, 0x11c8($t7) +/* 0D06B4 7F09BB44 8C790000 */ lw $t9, ($v1) +/* 0D06B8 7F09BB48 E72C11CC */ swc1 $f12, 0x11cc($t9) +/* 0D06BC 7F09BB4C 8C6C0000 */ lw $t4, ($v1) +/* 0D06C0 7F09BB50 E58C11D0 */ swc1 $f12, 0x11d0($t4) +/* 0D06C4 7F09BB54 8C6D0000 */ lw $t5, ($v1) +/* 0D06C8 7F09BB58 C4247658 */ lwc1 $f4, %lo(D_80057628)($at) +/* 0D06CC 7F09BB5C 3C018003 */ lui $at, %hi(invisible_to_guards_flag) # $at, 0x8003 +/* 0D06D0 7F09BB60 E5A411D4 */ swc1 $f4, 0x11d4($t5) +/* 0D06D4 7F09BB64 8C780000 */ lw $t8, ($v1) +/* 0D06D8 7F09BB68 AF0011D8 */ sw $zero, 0x11d8($t8) +/* 0D06DC 7F09BB6C 8C6E0000 */ lw $t6, ($v1) +/* 0D06E0 7F09BB70 ADC911DC */ sw $t1, 0x11dc($t6) +/* 0D06E4 7F09BB74 8C6B0000 */ lw $t3, ($v1) +/* 0D06E8 7F09BB78 AD6011E0 */ sw $zero, 0x11e0($t3) +/* 0D06EC 7F09BB7C 8C6F0000 */ lw $t7, ($v1) +/* 0D06F0 7F09BB80 ADE011E4 */ sw $zero, 0x11e4($t7) +/* 0D06F4 7F09BB84 8C790000 */ lw $t9, ($v1) +/* 0D06F8 7F09BB88 AF2011E8 */ sw $zero, 0x11e8($t9) +/* 0D06FC 7F09BB8C 8C6C0000 */ lw $t4, ($v1) +/* 0D0700 7F09BB90 AD8011EC */ sw $zero, 0x11ec($t4) +/* 0D0704 7F09BB94 8C6D0000 */ lw $t5, ($v1) +/* 0D0708 7F09BB98 ADA011F0 */ sw $zero, 0x11f0($t5) +/* 0D070C 7F09BB9C 8C780000 */ lw $t8, ($v1) +/* 0D0710 7F09BBA0 AF0011F4 */ sw $zero, 0x11f4($t8) +/* 0D0714 7F09BBA4 8C6E0000 */ lw $t6, ($v1) +/* 0D0718 7F09BBA8 E5C01280 */ swc1 $f0, 0x1280($t6) +/* 0D071C 7F09BBAC 8C6B0000 */ lw $t3, ($v1) +/* 0D0720 7F09BBB0 AD601284 */ sw $zero, 0x1284($t3) +/* 0D0724 7F09BBB4 8C6F0000 */ lw $t7, ($v1) +/* 0D0728 7F09BBB8 E5E01288 */ swc1 $f0, 0x1288($t7) +/* 0D072C 7F09BBBC 8C790000 */ lw $t9, ($v1) +/* 0D0730 7F09BBC0 A32012B6 */ sb $zero, 0x12b6($t9) +/* 0D0734 7F09BBC4 8C6C0000 */ lw $t4, ($v1) +/* 0D0738 7F09BBC8 AD8429B8 */ sw $a0, 0x29b8($t4) +/* 0D073C 7F09BBCC 8C6D0000 */ lw $t5, ($v1) +/* 0D0740 7F09BBD0 E5A229BC */ swc1 $f2, 0x29bc($t5) +/* 0D0744 7F09BBD4 8C780000 */ lw $t8, ($v1) +/* 0D0748 7F09BBD8 E70029C0 */ swc1 $f0, 0x29c0($t8) +/* 0D074C 7F09BBDC 8C6E0000 */ lw $t6, ($v1) +/* 0D0750 7F09BBE0 ADC029C4 */ sw $zero, 0x29c4($t6) +/* 0D0754 7F09BBE4 8C6B0000 */ lw $t3, ($v1) +/* 0D0758 7F09BBE8 AD6429D4 */ sw $a0, 0x29d4($t3) +/* 0D075C 7F09BBEC 8C6F0000 */ lw $t7, ($v1) +/* 0D0760 7F09BBF0 ADE029D8 */ sw $zero, 0x29d8($t7) +/* 0D0764 7F09BBF4 8C6C0000 */ lw $t4, ($v1) +/* 0D0768 7F09BBF8 8C590000 */ lw $t9, ($v0) +/* 0D076C 7F09BBFC AD9929E0 */ sw $t9, 0x29e0($t4) +/* 0D0770 7F09BC00 8C4D0000 */ lw $t5, ($v0) +/* 0D0774 7F09BC04 8C6E0000 */ lw $t6, ($v1) +/* 0D0778 7F09BC08 25B80001 */ addiu $t8, $t5, 1 +/* 0D077C 7F09BC0C AC580000 */ sw $t8, ($v0) +/* 0D0780 7F09BC10 ADC929E4 */ sw $t1, 0x29e4($t6) +/* 0D0784 7F09BC14 8C6B0000 */ lw $t3, ($v1) +/* 0D0788 7F09BC18 AD6929E8 */ sw $t1, 0x29e8($t3) +/* 0D078C 7F09BC1C 8C6F0000 */ lw $t7, ($v1) +/* 0D0790 7F09BC20 ADE929EC */ sw $t1, 0x29ec($t7) +/* 0D0794 7F09BC24 8C790000 */ lw $t9, ($v1) +/* 0D0798 7F09BC28 AF2929F0 */ sw $t1, 0x29f0($t9) +/* 0D079C 7F09BC2C 8C6C0000 */ lw $t4, ($v1) +/* 0D07A0 7F09BC30 AD802A00 */ sw $zero, 0x2a00($t4) +/* 0D07A4 7F09BC34 8C6D0000 */ lw $t5, ($v1) +/* 0D07A8 7F09BC38 ADA02A30 */ sw $zero, 0x2a30($t5) +/* 0D07AC 7F09BC3C 8C780000 */ lw $t8, ($v1) +/* 0D07B0 7F09BC40 AF002A34 */ sw $zero, 0x2a34($t8) +/* 0D07B4 7F09BC44 8C6E0000 */ lw $t6, ($v1) +/* 0D07B8 7F09BC48 ADC82A38 */ sw $t0, 0x2a38($t6) +/* 0D07BC 7F09BC4C 8C6B0000 */ lw $t3, ($v1) +/* 0D07C0 7F09BC50 E5622A3C */ swc1 $f2, 0x2a3c($t3) +/* 0D07C4 7F09BC54 8C6F0000 */ lw $t7, ($v1) +/* 0D07C8 7F09BC58 E5E22A40 */ swc1 $f2, 0x2a40($t7) +/* 0D07CC 7F09BC5C 8C790000 */ lw $t9, ($v1) +/* 0D07D0 7F09BC60 AF202A58 */ sw $zero, 0x2a58($t9) +/* 0D07D4 7F09BC64 8C6C0000 */ lw $t4, ($v1) +/* 0D07D8 7F09BC68 AD802A5C */ sw $zero, 0x2a5c($t4) +/* 0D07DC 7F09BC6C 8C6D0000 */ lw $t5, ($v1) +/* 0D07E0 7F09BC70 E5A02A60 */ swc1 $f0, 0x2a60($t5) +/* 0D07E4 7F09BC74 8C780000 */ lw $t8, ($v1) +/* 0D07E8 7F09BC78 AF002A64 */ sw $zero, 0x2a64($t8) +/* 0D07EC 7F09BC7C 8C6E0000 */ lw $t6, ($v1) +/* 0D07F0 7F09BC80 ADC82A68 */ sw $t0, 0x2a68($t6) +/* 0D07F4 7F09BC84 8C6B0000 */ lw $t3, ($v1) +/* 0D07F8 7F09BC88 AD602A6C */ sw $zero, 0x2a6c($t3) +/* 0D07FC 7F09BC8C 8C6F0000 */ lw $t7, ($v1) +/* 0D0800 7F09BC90 ADE02A70 */ sw $zero, 0x2a70($t7) +/* 0D0804 7F09BC94 8FBF0014 */ lw $ra, 0x14($sp) +/* 0D0808 7F09BC98 AC286504 */ sw $t0, %lo(invisible_to_guards_flag)($at) +/* 0D080C 7F09BC9C 3C018003 */ lui $at, %hi(obj_collision_flag) # $at, 0x8003 +/* 0D0810 7F09BCA0 AC286508 */ sw $t0, %lo(obj_collision_flag)($at) +/* 0D0814 7F09BCA4 03E00008 */ jr $ra +/* 0D0818 7F09BCA8 27BD03D0 */ addiu $sp, $sp, 0x3d0 +) +#endif + +#endif + + + +#ifdef NONMATCHING +void set_cur_player(PLAYER_ID playernum) +{ + pPlayer = ptr_BONDdata_p1[playernum]; + pPlayersPerm = player1_playerdata[playernum]; + player_num = playernum; + return; +} +#else +GLOBAL_ASM( +.text +glabel set_cur_player +/* 0CFC3C 7F09B10C 00047080 */ sll $t6, $a0, 2 +/* 0CFC40 7F09B110 3C0F8008 */ lui $t7, %hi(ptr_BONDdata_p1) +/* 0CFC44 7F09B114 01EE7821 */ addu $t7, $t7, $t6 +/* 0CFC48 7F09B118 8DEF9EE0 */ lw $t7, %lo(ptr_BONDdata_p1)($t7) +/* 0CFC4C 7F09B11C 3C018008 */ lui $at, %hi(player_num) +/* 0CFC50 7F09B120 AC24A0B8 */ sw $a0, %lo(player_num)($at) +/* 0CFC54 7F09B124 0004C0C0 */ sll $t8, $a0, 3 +/* 0CFC58 7F09B128 3C018008 */ lui $at, %hi(pPlayer) +/* 0CFC5C 7F09B12C 0304C023 */ subu $t8, $t8, $a0 +/* 0CFC60 7F09B130 3C198008 */ lui $t9, %hi(player1_player_data) +/* 0CFC64 7F09B134 27399EF0 */ addiu $t9, %lo(player1_player_data) # addiu $t9, $t9, -0x6110 +/* 0CFC68 7F09B138 0018C100 */ sll $t8, $t8, 4 +/* 0CFC6C 7F09B13C AC2FA0B0 */ sw $t7, %lo(pPlayer)($at) +/* 0CFC70 7F09B140 3C018008 */ lui $at, %hi(pPlayersPerm) +/* 0CFC74 7F09B144 03194021 */ addu $t0, $t8, $t9 +/* 0CFC78 7F09B148 03E00008 */ jr $ra +/* 0CFC7C 7F09B14C AC28A0B4 */ sw $t0, %lo(pPlayersPerm)($at) +) +#endif + + + + +s32 get_cur_playernum(void) { + return player_num; +} + + + + + + +#ifdef NONMATCHING +void proc_7F09B15C(int position_data_pointer) +{ + Player *pPVar1; + s32 numplayers; + Player **ppPVar2; + int i; + + i = 0; + numplayers = get_num_players(); + if (0 < numplayers) { + ppPVar2 = ptr_BONDdata_p1; + pPVar1 = ptr_BONDdata_p1[0]; + while (ppPVar2 = ppPVar2 + 1, position_data_pointer != pPVar1->position_data_pointer) { + i = i + 1; + numplayers = get_num_players(); + if (numplayers <= i) { + return; + } + pPVar1 = *ppPVar2; + } + } + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B15C +/* 0CFC8C 7F09B15C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0CFC90 7F09B160 AFBF0024 */ sw $ra, 0x24($sp) +/* 0CFC94 7F09B164 AFB20020 */ sw $s2, 0x20($sp) +/* 0CFC98 7F09B168 AFB1001C */ sw $s1, 0x1c($sp) +/* 0CFC9C 7F09B16C 00809025 */ move $s2, $a0 +/* 0CFCA0 7F09B170 AFB00018 */ sw $s0, 0x18($sp) +/* 0CFCA4 7F09B174 0FC26919 */ jal get_num_players +/* 0CFCA8 7F09B178 00008825 */ move $s1, $zero +/* 0CFCAC 7F09B17C 18400010 */ blez $v0, .L7F09B1C0 +/* 0CFCB0 7F09B180 00117080 */ sll $t6, $s1, 2 +/* 0CFCB4 7F09B184 3C0F8008 */ lui $t7, %hi(ptr_BONDdata_p1) +/* 0CFCB8 7F09B188 25EF9EE0 */ addiu $t7, %lo(ptr_BONDdata_p1) # addiu $t7, $t7, -0x6120 +/* 0CFCBC 7F09B18C 01CF8021 */ addu $s0, $t6, $t7 +/* 0CFCC0 7F09B190 8E180000 */ lw $t8, ($s0) +.L7F09B194: +/* 0CFCC4 7F09B194 26100004 */ addiu $s0, $s0, 4 +/* 0CFCC8 7F09B198 8F1900A8 */ lw $t9, 0xa8($t8) +/* 0CFCCC 7F09B19C 16590003 */ bne $s2, $t9, .L7F09B1AC +/* 0CFCD0 7F09B1A0 00000000 */ nop +/* 0CFCD4 7F09B1A4 10000007 */ b .L7F09B1C4 +/* 0CFCD8 7F09B1A8 02201025 */ move $v0, $s1 +.L7F09B1AC: +/* 0CFCDC 7F09B1AC 0FC26919 */ jal get_num_players +/* 0CFCE0 7F09B1B0 26310001 */ addiu $s1, $s1, 1 +/* 0CFCE4 7F09B1B4 0222082A */ slt $at, $s1, $v0 +/* 0CFCE8 7F09B1B8 5420FFF6 */ bnezl $at, .L7F09B194 +/* 0CFCEC 7F09B1BC 8E180000 */ lw $t8, ($s0) +.L7F09B1C0: +/* 0CFCF0 7F09B1C0 2402FFFF */ li $v0, -1 +.L7F09B1C4: +/* 0CFCF4 7F09B1C4 8FBF0024 */ lw $ra, 0x24($sp) +/* 0CFCF8 7F09B1C8 8FB00018 */ lw $s0, 0x18($sp) +/* 0CFCFC 7F09B1CC 8FB1001C */ lw $s1, 0x1c($sp) +/* 0CFD00 7F09B1D0 8FB20020 */ lw $s2, 0x20($sp) +/* 0CFD04 7F09B1D4 03E00008 */ jr $ra +/* 0CFD08 7F09B1D8 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +void set_cur_player_screen_size(u32 width, u32 height) { + pPlayer->viewx = width; + pPlayer->viewy = height; +} + +void set_cur_player_viewport_size(u32 ulx, u32 uly) { + pPlayer->viewleft = ulx; + pPlayer->viewtop = uly; +} + +void set_cur_player_fovy(f32 fovy) { + pPlayer->fovy = fovy; +} + +void set_cur_player_aspect(f32 aspect) { + pPlayer->aspect = aspect; +} + +f32 get_cur_player_fovy(void) { + return pPlayer->fovy; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09B244(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:8005762C*/ +glabel jpt_weapon_multi +.word weapon_multi_none +.word weapon_multi_none +.word weapon_multi_hunting_knife +.word weapon_multi_throwing_knife +.word weapon_multi_pp7 +.word weapon_multi_pp7_silent +.word weapon_multi_dd44 +.word weapon_multi_klobb +.word weapon_multi_kf7 +.word weapon_multi_zmg +.word weapon_multi_d5k +.word weapon_multi_d5k_silent +.word weapon_multi_phantom +.word weapon_multi_ar33 +.word weapon_multi_rcp90 +.word weapon_multi_shotgun +.word weapon_multi_auto_shot +.word weapon_multi_sniper +.word weapon_multi_cougar +.word weapon_multi_goldengun +.word weapon_multi_pp7_special1 +.word weapon_multi_pp7_special2 +.word weapon_multi_moonraker +/*.word weapon_multi_none*/ +/*.word weapon_multi_grenade_laun*/ +/*.word weapon_multi_rocket_launch*/ +/*.word weapon_multi_hand*/ +/*.word weapon_multi_timed*/ +/*.word weapon_multi_prox*/ +/*.word weapon_multi_remote*/ +/*.word weapon_multi_none*/ +/*.word weapon_multi_none*/ + +.text +glabel sub_GAME_7F09B244 +/* 0CFD74 7F09B244 28810020 */ slti $at, $a0, 0x20 +/* 0CFD78 7F09B248 14200006 */ bnez $at, .L7F09B264 +/* 0CFD7C 7F09B24C 2403FFFF */ li $v1, -1 +/* 0CFD80 7F09B250 24010058 */ li $at, 88 +/* 0CFD84 7F09B254 50810042 */ beql $a0, $at, .L7F09B360 +/* 0CFD88 7F09B258 2403014D */ li $v1, 333 +/* 0CFD8C 7F09B25C 03E00008 */ jr $ra +/* 0CFD90 7F09B260 00601025 */ move $v0, $v1 + +.L7F09B264: +/* 0CFD94 7F09B264 2C810020 */ sltiu $at, $a0, 0x20 +/* 0CFD98 7F09B268 1020003D */ beqz $at, .L7F09B360 +/* 0CFD9C 7F09B26C 00047080 */ sll $t6, $a0, 2 +/* 0CFDA0 7F09B270 3C018005 */ lui $at, %hi(jpt_weapon_multi) +/* 0CFDA4 7F09B274 002E0821 */ addu $at, $at, $t6 +/* 0CFDA8 7F09B278 8C2E762C */ lw $t6, %lo(jpt_weapon_multi)($at) +/* 0CFDAC 7F09B27C 01C00008 */ jr $t6 +/* 0CFDB0 7F09B280 00000000 */ nop +weapon_multi_hunting_knife: +/* 0CFDB4 7F09B284 03E00008 */ jr $ra +/* 0CFDB8 7F09B288 240200BA */ li $v0, 186 + +weapon_multi_pp7: +/* 0CFDBC 7F09B28C 03E00008 */ jr $ra +/* 0CFDC0 7F09B290 240200BF */ li $v0, 191 + +weapon_multi_klobb: +/* 0CFDC4 7F09B294 03E00008 */ jr $ra +/* 0CFDC8 7F09B298 240200C1 */ li $v0, 193 + +weapon_multi_kf7: +/* 0CFDCC 7F09B29C 03E00008 */ jr $ra +/* 0CFDD0 7F09B2A0 240200B8 */ li $v0, 184 + +weapon_multi_zmg: +/* 0CFDD4 7F09B2A4 03E00008 */ jr $ra +/* 0CFDD8 7F09B2A8 240200C3 */ li $v0, 195 + +weapon_multi_d5k: +/* 0CFDDC 7F09B2AC 03E00008 */ jr $ra +/* 0CFDE0 7F09B2B0 240200BD */ li $v0, 189 + +weapon_multi_phantom: +/* 0CFDE4 7F09B2B4 03E00008 */ jr $ra +/* 0CFDE8 7F09B2B8 240200C2 */ li $v0, 194 + +weapon_multi_ar33: +/* 0CFDEC 7F09B2BC 03E00008 */ jr $ra +/* 0CFDF0 7F09B2C0 240200BC */ li $v0, 188 + +weapon_multi_rcp90: +/* 0CFDF4 7F09B2C4 03E00008 */ jr $ra +/* 0CFDF8 7F09B2C8 240200C5 */ li $v0, 197 + +weapon_multi_shotgun: +/* 0CFDFC 7F09B2CC 03E00008 */ jr $ra +/* 0CFE00 7F09B2D0 240200C0 */ li $v0, 192 + +weapon_multi_grenade_laun: +/* 0CFE04 7F09B2D4 03E00008 */ jr $ra +/* 0CFE08 7F09B2D8 240200B9 */ li $v0, 185 + +weapon_multi_hand: +/* 0CFE0C 7F09B2DC 03E00008 */ jr $ra +/* 0CFE10 7F09B2E0 240200C4 */ li $v0, 196 + +weapon_multi_remote: +/* 0CFE14 7F09B2E4 03E00008 */ jr $ra +/* 0CFE18 7F09B2E8 240200C7 */ li $v0, 199 + +weapon_multi_prox: +/* 0CFE1C 7F09B2EC 03E00008 */ jr $ra +/* 0CFE20 7F09B2F0 240200C8 */ li $v0, 200 + +weapon_multi_timed: +/* 0CFE24 7F09B2F4 03E00008 */ jr $ra +/* 0CFE28 7F09B2F8 240200C9 */ li $v0, 201 + +weapon_multi_cougar: +/* 0CFE2C 7F09B2FC 03E00008 */ jr $ra +/* 0CFE30 7F09B300 240200BE */ li $v0, 190 + +weapon_multi_moonraker: +/* 0CFE34 7F09B304 03E00008 */ jr $ra +/* 0CFE38 7F09B308 240200BB */ li $v0, 187 + +weapon_multi_sniper: +/* 0CFE3C 7F09B30C 03E00008 */ jr $ra +/* 0CFE40 7F09B310 240200D2 */ li $v0, 210 + +weapon_multi_d5k_silent: +/* 0CFE44 7F09B314 03E00008 */ jr $ra +/* 0CFE48 7F09B318 240200CE */ li $v0, 206 + +weapon_multi_dd44: +/* 0CFE4C 7F09B31C 03E00008 */ jr $ra +/* 0CFE50 7F09B320 240200CD */ li $v0, 205 + +weapon_multi_pp7_silent: +/* 0CFE54 7F09B324 03E00008 */ jr $ra +/* 0CFE58 7F09B328 240200CC */ li $v0, 204 + +weapon_multi_throwing_knife: +/* 0CFE5C 7F09B32C 03E00008 */ jr $ra +/* 0CFE60 7F09B330 240200D1 */ li $v0, 209 + +weapon_multi_auto_shot: +/* 0CFE64 7F09B334 03E00008 */ jr $ra +/* 0CFE68 7F09B338 240200CF */ li $v0, 207 + +weapon_multi_rocket_launch: +/* 0CFE6C 7F09B33C 03E00008 */ jr $ra +/* 0CFE70 7F09B340 240200D3 */ li $v0, 211 + +weapon_multi_goldengun: +/* 0CFE74 7F09B344 03E00008 */ jr $ra +/* 0CFE78 7F09B348 240200D0 */ li $v0, 208 + +weapon_multi_pp7_special1: +/* 0CFE7C 7F09B34C 03E00008 */ jr $ra +/* 0CFE80 7F09B350 240200BF */ li $v0, 191 + +weapon_multi_pp7_special2: +/* 0CFE84 7F09B354 03E00008 */ jr $ra +/* 0CFE88 7F09B358 240200BF */ li $v0, 191 + +/* 0CFE8C 7F09B35C 2403014D */ li $v1, 333 +weapon_multi_none: +.L7F09B360: +/* 0CFE90 7F09B360 03E00008 */ jr $ra +/* 0CFE94 7F09B364 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09B368(s32 arg0) { + // Node 0 + return set_0x4_in_runtime_flags_for_item_in_guards_hand(pPlayer->unkA8->unk4, arg0); +} + +#else +GLOBAL_ASM( +.late_rodata +/*hack for jtbl*/ +.word weapon_multi_none +.word weapon_multi_grenade_laun +.word weapon_multi_rocket_launch +/*.word weapon_multi_hand*/ +/*.word weapon_multi_timed*/ +/*.word weapon_multi_prox*/ +/*.word weapon_multi_remote*/ +/*.word weapon_multi_none*/ +/*.word weapon_multi_none*/ +.text +glabel sub_GAME_7F09B368 +/* 0CFE98 7F09B368 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0CFE9C 7F09B36C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0CFEA0 7F09B370 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0CFEA4 7F09B374 AFBF0014 */ sw $ra, 0x14($sp) +/* 0CFEA8 7F09B378 8DCF00A8 */ lw $t7, 0xa8($t6) +/* 0CFEAC 7F09B37C 00802825 */ move $a1, $a0 +/* 0CFEB0 7F09B380 0FC1487A */ jal set_0x4_in_runtime_flags_for_item_in_guards_hand +/* 0CFEB4 7F09B384 8DE40004 */ lw $a0, 4($t7) +/* 0CFEB8 7F09B388 8FBF0014 */ lw $ra, 0x14($sp) +/* 0CFEBC 7F09B38C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0CFEC0 7F09B390 03E00008 */ jr $ra +/* 0CFEC4 7F09B394 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F09B398(s32 arg0) { + s32 sp24; + s32 sp30; + s32 sp34; + s32 temp_v1; + ? temp_ret; + s32 temp_ret_2; + ? phi_a3; + s32 phi_return; + + // Node 0 + temp_v1 = (arg0 * 4); + phi_return = pPlayer->unkA8->unk4; + if ((pPlayer->unkA8->unk4 + temp_v1)->unk160 == 0) + { + // Node 1 + sp34 = (s32) pPlayer->unkA8->unk4; + sp24 = temp_v1; + temp_ret = get_item_in_hand(); + sp30 = temp_ret; + temp_ret_2 = sub_GAME_7F09B244(temp_ret); + phi_return = temp_ret_2; + if (temp_ret_2 >= 0) + { + // Node 2 + if (temp_v1 == 0) + { + // Node 3 + phi_a3 = 0; + } + else + { + // Node 4 + phi_a3 = 0x10000000; + } + // Node 5 + phi_return = something_with_generating_object(sp34, temp_ret_2, sp30, phi_a3, 0, 0); + } + } + // Node 6 + return phi_return; +} +#else +GLOBAL_ASM( +.late_rodata +/*hack for jtbl*/ +.word weapon_multi_hand +.word weapon_multi_timed +.word weapon_multi_prox +.word weapon_multi_remote +.word weapon_multi_none +.word weapon_multi_none + +.text +glabel sub_GAME_7F09B398 +/* 0CFEC8 7F09B398 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0CFECC 7F09B39C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0CFED0 7F09B3A0 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0CFED4 7F09B3A4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0CFED8 7F09B3A8 8DCF00A8 */ lw $t7, 0xa8($t6) +/* 0CFEDC 7F09B3AC 00041880 */ sll $v1, $a0, 2 +/* 0CFEE0 7F09B3B0 8DE20004 */ lw $v0, 4($t7) +/* 0CFEE4 7F09B3B4 0043C021 */ addu $t8, $v0, $v1 +/* 0CFEE8 7F09B3B8 8F190160 */ lw $t9, 0x160($t8) +/* 0CFEEC 7F09B3BC 57200014 */ bnezl $t9, .L7F09B410 +/* 0CFEF0 7F09B3C0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0CFEF4 7F09B3C4 AFA20034 */ sw $v0, 0x34($sp) +/* 0CFEF8 7F09B3C8 0FC17674 */ jal get_item_in_hand +/* 0CFEFC 7F09B3CC AFA30024 */ sw $v1, 0x24($sp) +/* 0CFF00 7F09B3D0 AFA20030 */ sw $v0, 0x30($sp) +/* 0CFF04 7F09B3D4 0FC26C91 */ jal sub_GAME_7F09B244 +/* 0CFF08 7F09B3D8 00402025 */ move $a0, $v0 +/* 0CFF0C 7F09B3DC 8FA30024 */ lw $v1, 0x24($sp) +/* 0CFF10 7F09B3E0 0440000A */ bltz $v0, .L7F09B40C +/* 0CFF14 7F09B3E4 00402825 */ move $a1, $v0 +/* 0CFF18 7F09B3E8 14600003 */ bnez $v1, .L7F09B3F8 +/* 0CFF1C 7F09B3EC 8FA40034 */ lw $a0, 0x34($sp) +/* 0CFF20 7F09B3F0 10000002 */ b .L7F09B3FC +/* 0CFF24 7F09B3F4 00003825 */ move $a3, $zero +.L7F09B3F8: +/* 0CFF28 7F09B3F8 3C071000 */ lui $a3, 0x1000 +.L7F09B3FC: +/* 0CFF2C 7F09B3FC 8FA60030 */ lw $a2, 0x30($sp) +/* 0CFF30 7F09B400 AFA00010 */ sw $zero, 0x10($sp) +/* 0CFF34 7F09B404 0FC14885 */ jal something_with_generating_object +/* 0CFF38 7F09B408 AFA00014 */ sw $zero, 0x14($sp) +.L7F09B40C: +/* 0CFF3C 7F09B40C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F09B410: +/* 0CFF40 7F09B410 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0CFF44 7F09B414 03E00008 */ jr $ra +/* 0CFF48 7F09B418 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09B41C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B41C +/* 0CFF4C 7F09B41C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0CFF50 7F09B420 AFB1001C */ sw $s1, 0x1c($sp) +/* 0CFF54 7F09B424 AFB00018 */ sw $s0, 0x18($sp) +/* 0CFF58 7F09B428 3C118008 */ lui $s1, %hi(dword_CODE_bss_8007A0C0) +/* 0CFF5C 7F09B42C AFBF002C */ sw $ra, 0x2c($sp) +/* 0CFF60 7F09B430 AFB40028 */ sw $s4, 0x28($sp) +/* 0CFF64 7F09B434 AFB30024 */ sw $s3, 0x24($sp) +/* 0CFF68 7F09B438 AFB20020 */ sw $s2, 0x20($sp) +/* 0CFF6C 7F09B43C 2631A0C0 */ addiu $s1, %lo(dword_CODE_bss_8007A0C0) # addiu $s1, $s1, -0x5f40 +/* 0CFF70 7F09B440 00008025 */ move $s0, $zero +.L7F09B444: +/* 0CFF74 7F09B444 AE300000 */ sw $s0, ($s1) +/* 0CFF78 7F09B448 26100001 */ addiu $s0, $s0, 1 +/* 0CFF7C 7F09B44C 2A010004 */ slti $at, $s0, 4 +/* 0CFF80 7F09B450 1420FFFC */ bnez $at, .L7F09B444 +/* 0CFF84 7F09B454 26310004 */ addiu $s1, $s1, 4 +/* 0CFF88 7F09B458 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_8007A0C0) +/* 0CFF8C 7F09B45C 25D2A0C0 */ addiu $s2, $t6, %lo(dword_CODE_bss_8007A0C0) +/* 0CFF90 7F09B460 02408825 */ move $s1, $s2 +/* 0CFF94 7F09B464 00008025 */ move $s0, $zero +/* 0CFF98 7F09B468 24140003 */ li $s4, 3 +/* 0CFF9C 7F09B46C 24130004 */ li $s3, 4 +.L7F09B470: +/* 0CFFA0 7F09B470 0C002914 */ jal get_random_value +/* 0CFFA4 7F09B474 00000000 */ nop +/* 0CFFA8 7F09B478 02707823 */ subu $t7, $s3, $s0 +/* 0CFFAC 7F09B47C 004F001B */ divu $zero, $v0, $t7 +/* 0CFFB0 7F09B480 0000C010 */ mfhi $t8 +/* 0CFFB4 7F09B484 0018C880 */ sll $t9, $t8, 2 +/* 0CFFB8 7F09B488 02591821 */ addu $v1, $s2, $t9 +/* 0CFFBC 7F09B48C 8C680000 */ lw $t0, ($v1) +/* 0CFFC0 7F09B490 8E240000 */ lw $a0, ($s1) +/* 0CFFC4 7F09B494 26100001 */ addiu $s0, $s0, 1 +/* 0CFFC8 7F09B498 15E00002 */ bnez $t7, .L7F09B4A4 +/* 0CFFCC 7F09B49C 00000000 */ nop +/* 0CFFD0 7F09B4A0 0007000D */ break 7 +.L7F09B4A4: +/* 0CFFD4 7F09B4A4 AE280000 */ sw $t0, ($s1) +/* 0CFFD8 7F09B4A8 26520004 */ addiu $s2, $s2, 4 +/* 0CFFDC 7F09B4AC 26310004 */ addiu $s1, $s1, 4 +/* 0CFFE0 7F09B4B0 1614FFEF */ bne $s0, $s4, .L7F09B470 +/* 0CFFE4 7F09B4B4 AC640000 */ sw $a0, ($v1) +/* 0CFFE8 7F09B4B8 8FBF002C */ lw $ra, 0x2c($sp) +/* 0CFFEC 7F09B4BC 8FB00018 */ lw $s0, 0x18($sp) +/* 0CFFF0 7F09B4C0 8FB1001C */ lw $s1, 0x1c($sp) +/* 0CFFF4 7F09B4C4 8FB20020 */ lw $s2, 0x20($sp) +/* 0CFFF8 7F09B4C8 8FB30024 */ lw $s3, 0x24($sp) +/* 0CFFFC 7F09B4CC 8FB40028 */ lw $s4, 0x28($sp) +/* 0D0000 7F09B4D0 03E00008 */ jr $ra +/* 0D0004 7F09B4D4 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F09B4D8(s32 arg0) { + s32 temp_v0; + void *temp_a1; + void *phi_a1; + s32 phi_v1; + s32 phi_v1_2; + s32 phi_v1_3; + + // Node 0 + phi_a1 = &dword_CODE_bss_8007A0C0; + phi_v1_3 = 0; +loop_1: + // Node 1 + temp_v0 = *phi_a1; + temp_a1 = (phi_a1 + 4); + phi_v1 = phi_v1_3; + if (arg0 != temp_v0) + { + // Node 2 + phi_v1_2 = phi_v1_3; + if (*(&ptr_BONDdata_p1 + (temp_v0 * 4)) != 0) + { + // Node 3 + phi_v1_2 = (phi_v1_3 + 1); + } + // Node 4 + phi_a1 = temp_a1; + phi_v1 = phi_v1_2; + phi_v1_3 = phi_v1_2; + if (temp_a1 != &dword_CODE_bss_8007A0D0) + { + goto loop_1; + } + } + // Node 5 + return phi_v1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B4D8 +/* 0D0008 7F09B4D8 3C058008 */ lui $a1, %hi(dword_CODE_bss_8007A0C0) +/* 0D000C 7F09B4DC 3C078008 */ lui $a3, %hi(dword_CODE_bss_8007A0D0) +/* 0D0010 7F09B4E0 3C068008 */ lui $a2, %hi(ptr_BONDdata_p1) +/* 0D0014 7F09B4E4 00001825 */ move $v1, $zero +/* 0D0018 7F09B4E8 24C69EE0 */ addiu $a2, %lo(ptr_BONDdata_p1) # addiu $a2, $a2, -0x6120 +/* 0D001C 7F09B4EC 24E7A0D0 */ addiu $a3, %lo(dword_CODE_bss_8007A0D0) # addiu $a3, $a3, -0x5f30 +/* 0D0020 7F09B4F0 24A5A0C0 */ addiu $a1, %lo(dword_CODE_bss_8007A0C0) # addiu $a1, $a1, -0x5f40 +/* 0D0024 7F09B4F4 8CA20000 */ lw $v0, ($a1) +.L7F09B4F8: +/* 0D0028 7F09B4F8 24A50004 */ addiu $a1, $a1, 4 +/* 0D002C 7F09B4FC 10820008 */ beq $a0, $v0, .L7F09B520 +/* 0D0030 7F09B500 00027080 */ sll $t6, $v0, 2 +/* 0D0034 7F09B504 00CE7821 */ addu $t7, $a2, $t6 +/* 0D0038 7F09B508 8DF80000 */ lw $t8, ($t7) +/* 0D003C 7F09B50C 13000002 */ beqz $t8, .L7F09B518 +/* 0D0040 7F09B510 00000000 */ nop +/* 0D0044 7F09B514 24630001 */ addiu $v1, $v1, 1 +.L7F09B518: +/* 0D0048 7F09B518 54A7FFF7 */ bnel $a1, $a3, .L7F09B4F8 +/* 0D004C 7F09B51C 8CA20000 */ lw $v0, ($a1) +.L7F09B520: +/* 0D0050 7F09B520 03E00008 */ jr $ra +/* 0D0054 7F09B524 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +int proc_7F09B528(int param_1) +{ + if (ptr_BONDdata_p1[dword_CODE_bss_8007A0C0] != NULL) { + if (param_1 == 0) { + return dword_CODE_bss_8007A0C0; + } + param_1--; + } + if (ptr_BONDdata_p1[dword_CODE_bss_8007A0C4] != NULL) { + if (param_1 == 0) { + return dword_CODE_bss_8007A0C4; + } + param_1--; + } + if (ptr_BONDdata_p1[dword_CODE_bss_8007A0C8] != NULL) { + if (param_1 == 0) { + return dword_CODE_bss_8007A0C8; + } + param_1--; + } + if ((ptr_BONDdata_p1[dword_CODE_bss_8007A0CC] != NULL) && (param_1 == 0)) { + return dword_CODE_bss_8007A0CC; + } + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B528 +/* 0D0058 7F09B528 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A0C0) +/* 0D005C 7F09B52C 8C63A0C0 */ lw $v1, %lo(dword_CODE_bss_8007A0C0)($v1) +/* 0D0060 7F09B530 3C028008 */ lui $v0, %hi(ptr_BONDdata_p1) +/* 0D0064 7F09B534 24429EE0 */ addiu $v0, %lo(ptr_BONDdata_p1) # addiu $v0, $v0, -0x6120 +/* 0D0068 7F09B538 00037080 */ sll $t6, $v1, 2 +/* 0D006C 7F09B53C 004E7821 */ addu $t7, $v0, $t6 +/* 0D0070 7F09B540 8DF80000 */ lw $t8, ($t7) +/* 0D0074 7F09B544 13000006 */ beqz $t8, .L7F09B560 +/* 0D0078 7F09B548 00000000 */ nop +/* 0D007C 7F09B54C 54800004 */ bnezl $a0, .L7F09B560 +/* 0D0080 7F09B550 2484FFFF */ addiu $a0, $a0, -1 +/* 0D0084 7F09B554 03E00008 */ jr $ra +/* 0D0088 7F09B558 00601025 */ move $v0, $v1 + +/* 0D008C 7F09B55C 2484FFFF */ addiu $a0, $a0, -1 +.L7F09B560: +/* 0D0090 7F09B560 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A0C4) +/* 0D0094 7F09B564 8C63A0C4 */ lw $v1, %lo(dword_CODE_bss_8007A0C4)($v1) +/* 0D0098 7F09B568 0003C880 */ sll $t9, $v1, 2 +/* 0D009C 7F09B56C 00594021 */ addu $t0, $v0, $t9 +/* 0D00A0 7F09B570 8D090000 */ lw $t1, ($t0) +/* 0D00A4 7F09B574 11200006 */ beqz $t1, .L7F09B590 +/* 0D00A8 7F09B578 00000000 */ nop +/* 0D00AC 7F09B57C 54800004 */ bnezl $a0, .L7F09B590 +/* 0D00B0 7F09B580 2484FFFF */ addiu $a0, $a0, -1 +/* 0D00B4 7F09B584 03E00008 */ jr $ra +/* 0D00B8 7F09B588 00601025 */ move $v0, $v1 + +/* 0D00BC 7F09B58C 2484FFFF */ addiu $a0, $a0, -1 +.L7F09B590: +/* 0D00C0 7F09B590 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A0C8) +/* 0D00C4 7F09B594 8C63A0C8 */ lw $v1, %lo(dword_CODE_bss_8007A0C8)($v1) +/* 0D00C8 7F09B598 00035080 */ sll $t2, $v1, 2 +/* 0D00CC 7F09B59C 004A5821 */ addu $t3, $v0, $t2 +/* 0D00D0 7F09B5A0 8D6C0000 */ lw $t4, ($t3) +/* 0D00D4 7F09B5A4 11800006 */ beqz $t4, .L7F09B5C0 +/* 0D00D8 7F09B5A8 00000000 */ nop +/* 0D00DC 7F09B5AC 54800004 */ bnezl $a0, .L7F09B5C0 +/* 0D00E0 7F09B5B0 2484FFFF */ addiu $a0, $a0, -1 +/* 0D00E4 7F09B5B4 03E00008 */ jr $ra +/* 0D00E8 7F09B5B8 00601025 */ move $v0, $v1 + +/* 0D00EC 7F09B5BC 2484FFFF */ addiu $a0, $a0, -1 +.L7F09B5C0: +/* 0D00F0 7F09B5C0 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A0CC) +/* 0D00F4 7F09B5C4 8C63A0CC */ lw $v1, %lo(dword_CODE_bss_8007A0CC)($v1) +/* 0D00F8 7F09B5C8 00036880 */ sll $t5, $v1, 2 +/* 0D00FC 7F09B5CC 004D7021 */ addu $t6, $v0, $t5 +/* 0D0100 7F09B5D0 8DCF0000 */ lw $t7, ($t6) +/* 0D0104 7F09B5D4 00001025 */ move $v0, $zero +/* 0D0108 7F09B5D8 11E00005 */ beqz $t7, .L7F09B5F0 +/* 0D010C 7F09B5DC 00000000 */ nop +/* 0D0110 7F09B5E0 14800003 */ bnez $a0, .L7F09B5F0 +/* 0D0114 7F09B5E4 00000000 */ nop +/* 0D0118 7F09B5E8 03E00008 */ jr $ra +/* 0D011C 7F09B5EC 00601025 */ move $v0, $v1 + +.L7F09B5F0: +/* 0D0120 7F09B5F0 03E00008 */ jr $ra +/* 0D0124 7F09B5F4 00000000 */ nop +) +#endif + + + diff --git a/src/game/unk_093880.h b/src/game/unk_093880.h new file mode 100644 index 0000000..61e3374 --- /dev/null +++ b/src/game/unk_093880.h @@ -0,0 +1,47 @@ +#ifndef _UNK_093880_H_ +#define _UNK_093880_H_ +#include "ultra64.h" +#include "game/bond.h" + +struct player_data { + int shots_fired; + int head_hits; + int body_hits; + int leg_hits; + int other_hit_weapon; + int other_hit_hat; + int other_hit_objects; + int kill_count; + int killed_gg_owner_count; + int killed_p1; + int killed_p2; + int killed_p3; + int killed_p4; + int time_other_players_on_screen; + float distance_traveled; + int damage_to_backside; + float body_armor_pickups; + int min_time_between_kills; + int max_time_between_kills; + int longest_inning; + s32 shortest_inning; + int most_killed_one_life; + int most_killed_one_time; + float handicap; + int flag_counter; + float player_perspective_height; + char order_out_in_yolt; + char have_token_or_goldengun; + char autoaim; + char sight; + int killed_civilians; +}; + +extern struct player_data player1_player_data; +extern struct player_data player2_player_data; +extern struct player_data player3_player_data; +extern struct player_data player4_player_data; + +extern struct Player * pPlayer; +extern struct player_data *pPlayersPerm; +#endif diff --git a/src/game/unk_09B600.c b/src/game/unk_09B600.c new file mode 100644 index 0000000..6461979 --- /dev/null +++ b/src/game/unk_09B600.c @@ -0,0 +1,101 @@ +#include "ultra64.h" + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09B600(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B600 +/* 0D0130 7F09B600 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0D0134 7F09B604 3C0E8F80 */ lui $t6, (0x8F809F47 >> 16) # lui $t6, 0x8f80 # seed for save profile checksum confirmation +/* 0D0138 7F09B608 3C0F3108 */ lui $t7, (0x3108B3C1 >> 16) # lui $t7, 0x3108 +/* 0D013C 7F09B60C AFB50028 */ sw $s5, 0x28($sp) +/* 0D0140 7F09B610 AFB40024 */ sw $s4, 0x24($sp) +/* 0D0144 7F09B614 AFB30020 */ sw $s3, 0x20($sp) +/* 0D0148 7F09B618 AFB10018 */ sw $s1, 0x18($sp) +/* 0D014C 7F09B61C AFB00014 */ sw $s0, 0x14($sp) +/* 0D0150 7F09B620 35EFB3C1 */ ori $t7, (0x3108B3C1 & 0xFFFF) # ori $t7, $t7, 0xb3c1 +/* 0D0154 7F09B624 35CE9F47 */ ori $t6, (0x8F809F47 & 0xFFFF) # ori $t6, $t6, 0x9f47 +/* 0D0158 7F09B628 0085082B */ sltu $at, $a0, $a1 # +/* 0D015C 7F09B62C 00A0A825 */ move $s5, $a1 +/* 0D0160 7F09B630 AFBF002C */ sw $ra, 0x2c($sp) +/* 0D0164 7F09B634 AFB2001C */ sw $s2, 0x1c($sp) +/* 0D0168 7F09B638 AFA60060 */ sw $a2, 0x60($sp) +/* 0D016C 7F09B63C 00803825 */ move $a3, $a0 +/* 0D0170 7F09B640 00008825 */ move $s1, $zero +/* 0D0174 7F09B644 AFAE0048 */ sw $t6, 0x48($sp) +/* 0D0178 7F09B648 AFAF004C */ sw $t7, 0x4c($sp) +/* 0D017C 7F09B64C 00009825 */ move $s3, $zero +/* 0D0180 7F09B650 0000A025 */ move $s4, $zero +/* 0D0184 7F09B654 10200016 */ beqz $at, .L7F09B6B0 +/* 0D0188 7F09B658 00808025 */ move $s0, $a0 +/* 0D018C 7F09B65C AFA40058 */ sw $a0, 0x58($sp) +/* 0D0190 7F09B660 27B20048 */ addiu $s2, $sp, 0x48 +.L7F09B664: +/* 0D0194 7F09B664 92180000 */ lbu $t8, ($s0) +/* 0D0198 7F09B668 8FAD004C */ lw $t5, 0x4c($sp) +/* 0D019C 7F09B66C 3239000F */ andi $t9, $s1, 0xf +/* 0D01A0 7F09B670 03384004 */ sllv $t0, $t8, $t9 +/* 0D01A4 7F09B674 8FAC0048 */ lw $t4, 0x48($sp) +/* 0D01A8 7F09B678 010D7821 */ addu $t7, $t0, $t5 +/* 0D01AC 7F09B67C 000857C3 */ sra $t2, $t0, 0x1f +/* 0D01B0 7F09B680 01ED082B */ sltu $at, $t7, $t5 +/* 0D01B4 7F09B684 002A7021 */ addu $t6, $at, $t2 +/* 0D01B8 7F09B688 01CC7021 */ addu $t6, $t6, $t4 +/* 0D01BC 7F09B68C AFAE0048 */ sw $t6, 0x48($sp) +/* 0D01C0 7F09B690 AFAF004C */ sw $t7, 0x4c($sp) +/* 0D01C4 7F09B694 0C00292B */ jal lotsa_shifting_randomizer_related +/* 0D01C8 7F09B698 02402025 */ move $a0, $s2 +/* 0D01CC 7F09B69C 26100001 */ addiu $s0, $s0, 1 +/* 0D01D0 7F09B6A0 26310007 */ addiu $s1, $s1, 7 +/* 0D01D4 7F09B6A4 1615FFEF */ bne $s0, $s5, .L7F09B664 +/* 0D01D8 7F09B6A8 02629826 */ xor $s3, $s3, $v0 +/* 0D01DC 7F09B6AC 8FA70058 */ lw $a3, 0x58($sp) +.L7F09B6B0: +/* 0D01E0 7F09B6B0 26B0FFFF */ addiu $s0, $s5, -1 +/* 0D01E4 7F09B6B4 0207082B */ sltu $at, $s0, $a3 +/* 0D01E8 7F09B6B8 14200014 */ bnez $at, .L7F09B70C +/* 0D01EC 7F09B6BC 27B20048 */ addiu $s2, $sp, 0x48 +/* 0D01F0 7F09B6C0 24F5FFFF */ addiu $s5, $a3, -1 +.L7F09B6C4: +/* 0D01F4 7F09B6C4 92090000 */ lbu $t1, ($s0) +/* 0D01F8 7F09B6C8 8FAB004C */ lw $t3, 0x4c($sp) +/* 0D01FC 7F09B6CC 3238000F */ andi $t8, $s1, 0xf +/* 0D0200 7F09B6D0 0309C804 */ sllv $t9, $t1, $t8 +/* 0D0204 7F09B6D4 8FAA0048 */ lw $t2, 0x48($sp) +/* 0D0208 7F09B6D8 032B6821 */ addu $t5, $t9, $t3 +/* 0D020C 7F09B6DC 001947C3 */ sra $t0, $t9, 0x1f +/* 0D0210 7F09B6E0 01AB082B */ sltu $at, $t5, $t3 +/* 0D0214 7F09B6E4 00286021 */ addu $t4, $at, $t0 +/* 0D0218 7F09B6E8 018A6021 */ addu $t4, $t4, $t2 +/* 0D021C 7F09B6EC AFAC0048 */ sw $t4, 0x48($sp) +/* 0D0220 7F09B6F0 AFAD004C */ sw $t5, 0x4c($sp) +/* 0D0224 7F09B6F4 0C00292B */ jal lotsa_shifting_randomizer_related +/* 0D0228 7F09B6F8 02402025 */ move $a0, $s2 +/* 0D022C 7F09B6FC 2610FFFF */ addiu $s0, $s0, -1 +/* 0D0230 7F09B700 26310003 */ addiu $s1, $s1, 3 +/* 0D0234 7F09B704 1615FFEF */ bne $s0, $s5, .L7F09B6C4 +/* 0D0238 7F09B708 0282A026 */ xor $s4, $s4, $v0 +.L7F09B70C: +/* 0D023C 7F09B70C 8FAE0060 */ lw $t6, 0x60($sp) +/* 0D0240 7F09B710 ADD30000 */ sw $s3, ($t6) +/* 0D0244 7F09B714 ADD40004 */ sw $s4, 4($t6) +/* 0D0248 7F09B718 8FBF002C */ lw $ra, 0x2c($sp) +/* 0D024C 7F09B71C 8FB50028 */ lw $s5, 0x28($sp) +/* 0D0250 7F09B720 8FB40024 */ lw $s4, 0x24($sp) +/* 0D0254 7F09B724 8FB30020 */ lw $s3, 0x20($sp) +/* 0D0258 7F09B728 8FB2001C */ lw $s2, 0x1c($sp) +/* 0D025C 7F09B72C 8FB10018 */ lw $s1, 0x18($sp) +/* 0D0260 7F09B730 8FB00014 */ lw $s0, 0x14($sp) +/* 0D0264 7F09B734 03E00008 */ jr $ra +/* 0D0268 7F09B738 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + diff --git a/src/game/unk_09B740.c b/src/game/unk_09B740.c new file mode 100644 index 0000000..5a5ba7a --- /dev/null +++ b/src/game/unk_09B740.c @@ -0,0 +1,60 @@ +#include "ultra64.h" + + +// data +//D:80040160 +u64 random_val = 0xAB8D9F7781280783; + + + +#ifdef NONMATCHING +void sub_GAME_7F09B740(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B740 +/* 0D0270 7F09B740 3C048004 */ lui $a0, %hi(random_val) +/* 0D0274 7F09B744 DC840160 */ ld $a0, %lo(random_val)($a0) +/* 0D0278 7F09B748 3C018004 */ lui $at, %hi(random_val) +/* 0D027C 7F09B74C 000437FC */ dsll32 $a2, $a0, 0x1f +/* 0D0280 7F09B750 00042FF8 */ dsll $a1, $a0, 0x1f +/* 0D0284 7F09B754 000637FA */ dsrl $a2, $a2, 0x1f +/* 0D0288 7F09B758 0005283E */ dsrl32 $a1, $a1, 0 +/* 0D028C 7F09B75C 0004233C */ dsll32 $a0, $a0, 0xc +/* 0D0290 7F09B760 00C53025 */ or $a2, $a2, $a1 +/* 0D0294 7F09B764 0004203E */ dsrl32 $a0, $a0, 0 +/* 0D0298 7F09B768 00C43026 */ xor $a2, $a2, $a0 +/* 0D029C 7F09B76C 0006253A */ dsrl $a0, $a2, 0x14 +/* 0D02A0 7F09B770 30840FFF */ andi $a0, $a0, 0xfff +/* 0D02A4 7F09B774 00862026 */ xor $a0, $a0, $a2 +/* 0D02A8 7F09B778 0004103C */ dsll32 $v0, $a0, 0 +/* 0D02AC 7F09B77C FC240160 */ sd $a0, %lo(random_val)($at) +/* 0D02B0 7F09B780 03E00008 */ jr $ra +/* 0D02B4 7F09B784 0002103F */ dsra32 $v0, $v0, 0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09B788(u64 param_1) +{ + random_val = param_1 + 1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B788 +/* 0D02B8 7F09B788 64840001 */ daddiu $a0, $a0, 1 +/* 0D02BC 7F09B78C 3C018004 */ lui $at, %hi(random_val) +/* 0D02C0 7F09B790 FC240160 */ sd $a0, %lo(random_val)($at) +/* 0D02C4 7F09B794 03E00008 */ jr $ra +/* 0D02C8 7F09B798 24040000 */ li $a0, 0 +) +#endif + + diff --git a/src/game/unk_09B7A0.c b/src/game/unk_09B7A0.c new file mode 100644 index 0000000..d322af8 --- /dev/null +++ b/src/game/unk_09B7A0.c @@ -0,0 +1,871 @@ +#include "ultra64.h" + +// bss +//CODE.bss:8007A0D0 +s32 dword_CODE_bss_8007A0D0; +//CODE.bss:8007A0D4 +s32 dword_CODE_bss_8007A0D4; +//CODE.bss:8007A0D8 +s32 dword_CODE_bss_8007A0D8; +//CODE.bss:8007A0DC +s32 dword_CODE_bss_8007A0DC; +//CODE.bss:8007A0E0 +s32 dword_CODE_bss_8007A0E0; +//CODE.bss:8007A0E4 +s32 dword_CODE_bss_8007A0E4; +//CODE.bss:8007A0E8 +s32 dword_CODE_bss_8007A0E8; +//CODE.bss:8007A0EC +s32 dword_CODE_bss_8007A0EC; +//CODE.bss:8007A0F0 +s16 word_CODE_bss_8007A0F0; +//CODE.bss:8007A0F2 +s16 word_CODE_bss_8007A0F2; + + + +void null_init_main_1(void) { + return; +} + + + + +#ifdef NONMATCHING +void sub_GAME_7F09B7A8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B7A8 +/* 0D02D8 7F09B7A8 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A0D4) +/* 0D02DC 7F09B7AC 8C63A0D4 */ lw $v1, %lo(dword_CODE_bss_8007A0D4)($v1) +/* 0D02E0 7F09B7B0 00001025 */ move $v0, $zero +/* 0D02E4 7F09B7B4 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A0E8) +/* 0D02E8 7F09B7B8 18600008 */ blez $v1, .L7F09B7DC +/* 0D02EC 7F09B7BC 00032880 */ sll $a1, $v1, 2 +/* 0D02F0 7F09B7C0 00A32821 */ addu $a1, $a1, $v1 +/* 0D02F4 7F09B7C4 00052880 */ sll $a1, $a1, 2 +/* 0D02F8 7F09B7C8 8C84A0E8 */ lw $a0, %lo(dword_CODE_bss_8007A0E8)($a0) +.L7F09B7CC: +/* 0D02FC 7F09B7CC 24420014 */ addiu $v0, $v0, 0x14 +/* 0D0300 7F09B7D0 0045082A */ slt $at, $v0, $a1 +/* 0D0304 7F09B7D4 1420FFFD */ bnez $at, .L7F09B7CC +/* 0D0308 7F09B7D8 24840014 */ addiu $a0, $a0, 0x14 +.L7F09B7DC: +/* 0D030C 7F09B7DC 03E00008 */ jr $ra +/* 0D0310 7F09B7E0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09B7E4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B7E4 +/* 0D0314 7F09B7E4 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A0DC) +/* 0D0318 7F09B7E8 8C63A0DC */ lw $v1, %lo(dword_CODE_bss_8007A0DC)($v1) +/* 0D031C 7F09B7EC 00001025 */ move $v0, $zero +/* 0D0320 7F09B7F0 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A0EC) +/* 0D0324 7F09B7F4 18600008 */ blez $v1, .L7F09B818 +/* 0D0328 7F09B7F8 00032880 */ sll $a1, $v1, 2 +/* 0D032C 7F09B7FC 00A32821 */ addu $a1, $a1, $v1 +/* 0D0330 7F09B800 00052880 */ sll $a1, $a1, 2 +/* 0D0334 7F09B804 8C84A0EC */ lw $a0, %lo(dword_CODE_bss_8007A0EC)($a0) +.L7F09B808: +/* 0D0338 7F09B808 24420014 */ addiu $v0, $v0, 0x14 +/* 0D033C 7F09B80C 0045082A */ slt $at, $v0, $a1 +/* 0D0340 7F09B810 1420FFFD */ bnez $at, .L7F09B808 +/* 0D0344 7F09B814 24840014 */ addiu $a0, $a0, 0x14 +.L7F09B818: +/* 0D0348 7F09B818 03E00008 */ jr $ra +/* 0D034C 7F09B81C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09B820(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09B820 +/* 0D0350 7F09B820 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0D0354 7F09B824 AFBF0014 */ sw $ra, 0x14($sp) +/* 0D0358 7F09B828 0FC26919 */ jal get_num_players +/* 0D035C 7F09B82C 00000000 */ nop +/* 0D0360 7F09B830 28410002 */ slti $at, $v0, 2 +/* 0D0364 7F09B834 1420000F */ bnez $at, .L7F09B874 +/* 0D0368 7F09B838 240201F4 */ li $v0, 500 +/* 0D036C 7F09B83C 240E0BB8 */ li $t6, 3000 +/* 0D0370 7F09B840 3C018008 */ lui $at, %hi(dword_CODE_bss_8007A0D0) +/* 0D0374 7F09B844 3C088008 */ lui $t0, %hi(dword_CODE_bss_8007A0D4) +/* 0D0378 7F09B848 AC2EA0D0 */ sw $t6, %lo(dword_CODE_bss_8007A0D0)($at) +/* 0D037C 7F09B84C 2508A0D4 */ addiu $t0, %lo(dword_CODE_bss_8007A0D4) # addiu $t0, $t0, -0x5f2c +/* 0D0380 7F09B850 240F0050 */ li $t7, 80 +/* 0D0384 7F09B854 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007A0DC) +/* 0D0388 7F09B858 AD0F0000 */ sw $t7, ($t0) +/* 0D038C 7F09B85C 3C018008 */ lui $at, %hi(dword_CODE_bss_8007A0D8) +/* 0D0390 7F09B860 2529A0DC */ addiu $t1, %lo(dword_CODE_bss_8007A0DC) # addiu $t1, $t1, -0x5f24 +/* 0D0394 7F09B864 24030014 */ li $v1, 20 +/* 0D0398 7F09B868 AC22A0D8 */ sw $v0, %lo(dword_CODE_bss_8007A0D8)($at) +/* 0D039C 7F09B86C 10000022 */ b .L7F09B8F8 +/* 0D03A0 7F09B870 AD230000 */ sw $v1, ($t1) +.L7F09B874: +/* 0D03A4 7F09B874 0FC2F7C1 */ jal sub_GAME_7F0BDF04 +/* 0D03A8 7F09B878 00000000 */ nop +/* 0D03AC 7F09B87C 2401001E */ li $at, 30 +/* 0D03B0 7F09B880 10410011 */ beq $v0, $at, .L7F09B8C8 +/* 0D03B4 7F09B884 2401001D */ li $at, 29 +/* 0D03B8 7F09B888 1041000F */ beq $v0, $at, .L7F09B8C8 +/* 0D03BC 7F09B88C 24030014 */ li $v1, 20 +/* 0D03C0 7F09B890 240201F4 */ li $v0, 500 +/* 0D03C4 7F09B894 3C018008 */ lui $at, %hi(dword_CODE_bss_8007A0D0) +/* 0D03C8 7F09B898 3C088008 */ lui $t0, %hi(dword_CODE_bss_8007A0D4) +/* 0D03CC 7F09B89C AC22A0D0 */ sw $v0, %lo(dword_CODE_bss_8007A0D0)($at) +/* 0D03D0 7F09B8A0 2508A0D4 */ addiu $t0, %lo(dword_CODE_bss_8007A0D4) # addiu $t0, $t0, -0x5f2c +/* 0D03D4 7F09B8A4 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007A0DC) +/* 0D03D8 7F09B8A8 AD030000 */ sw $v1, ($t0) +/* 0D03DC 7F09B8AC 3C018008 */ lui $at, %hi(dword_CODE_bss_8007A0D8) +/* 0D03E0 7F09B8B0 241805DC */ li $t8, 1500 +/* 0D03E4 7F09B8B4 2529A0DC */ addiu $t1, %lo(dword_CODE_bss_8007A0DC) # addiu $t1, $t1, -0x5f24 +/* 0D03E8 7F09B8B8 AC38A0D8 */ sw $t8, %lo(dword_CODE_bss_8007A0D8)($at) +/* 0D03EC 7F09B8BC 24190028 */ li $t9, 40 +/* 0D03F0 7F09B8C0 1000000D */ b .L7F09B8F8 +/* 0D03F4 7F09B8C4 AD390000 */ sw $t9, ($t1) +.L7F09B8C8: +/* 0D03F8 7F09B8C8 240201F4 */ li $v0, 500 +/* 0D03FC 7F09B8CC 3C018008 */ lui $at, %hi(dword_CODE_bss_8007A0D0) +/* 0D0400 7F09B8D0 3C088008 */ lui $t0, %hi(dword_CODE_bss_8007A0D4) +/* 0D0404 7F09B8D4 AC22A0D0 */ sw $v0, %lo(dword_CODE_bss_8007A0D0)($at) +/* 0D0408 7F09B8D8 2508A0D4 */ addiu $t0, %lo(dword_CODE_bss_8007A0D4) # addiu $t0, $t0, -0x5f2c +/* 0D040C 7F09B8DC 24030014 */ li $v1, 20 +/* 0D0410 7F09B8E0 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007A0DC) +/* 0D0414 7F09B8E4 AD030000 */ sw $v1, ($t0) +/* 0D0418 7F09B8E8 3C018008 */ lui $at, %hi(dword_CODE_bss_8007A0D8) +/* 0D041C 7F09B8EC 2529A0DC */ addiu $t1, %lo(dword_CODE_bss_8007A0DC) # addiu $t1, $t1, -0x5f24 +/* 0D0420 7F09B8F0 AC22A0D8 */ sw $v0, %lo(dword_CODE_bss_8007A0D8)($at) +/* 0D0424 7F09B8F4 AD230000 */ sw $v1, ($t1) +.L7F09B8F8: +/* 0D0428 7F09B8F8 8D040000 */ lw $a0, ($t0) +/* 0D042C 7F09B8FC 24050004 */ li $a1, 4 +/* 0D0430 7F09B900 00045880 */ sll $t3, $a0, 2 +/* 0D0434 7F09B904 01645821 */ addu $t3, $t3, $a0 +/* 0D0438 7F09B908 0C0025C8 */ jal mempAllocBytesInBank +/* 0D043C 7F09B90C 000B2080 */ sll $a0, $t3, 2 +/* 0D0440 7F09B910 3C068008 */ lui $a2, %hi(dword_CODE_bss_8007A0E8) +/* 0D0444 7F09B914 24C6A0E8 */ addiu $a2, %lo(dword_CODE_bss_8007A0E8) # addiu $a2, $a2, -0x5f18 +/* 0D0448 7F09B918 ACC20000 */ sw $v0, ($a2) +/* 0D044C 7F09B91C 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A0D0) +/* 0D0450 7F09B920 8C84A0D0 */ lw $a0, %lo(dword_CODE_bss_8007A0D0)($a0) +/* 0D0454 7F09B924 24050004 */ li $a1, 4 +/* 0D0458 7F09B928 00046100 */ sll $t4, $a0, 4 +/* 0D045C 7F09B92C 0C0025C8 */ jal mempAllocBytesInBank +/* 0D0460 7F09B930 01802025 */ move $a0, $t4 +/* 0D0464 7F09B934 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007A0DC) +/* 0D0468 7F09B938 3C018008 */ lui $at, %hi(dword_CODE_bss_8007A0E0) +/* 0D046C 7F09B93C AC22A0E0 */ sw $v0, %lo(dword_CODE_bss_8007A0E0)($at) +/* 0D0470 7F09B940 2529A0DC */ addiu $t1, %lo(dword_CODE_bss_8007A0DC) # addiu $t1, $t1, -0x5f24 +/* 0D0474 7F09B944 8D240000 */ lw $a0, ($t1) +/* 0D0478 7F09B948 24050004 */ li $a1, 4 +/* 0D047C 7F09B94C 00046880 */ sll $t5, $a0, 2 +/* 0D0480 7F09B950 01A46821 */ addu $t5, $t5, $a0 +/* 0D0484 7F09B954 0C0025C8 */ jal mempAllocBytesInBank +/* 0D0488 7F09B958 000D2080 */ sll $a0, $t5, 2 +/* 0D048C 7F09B95C 3C078008 */ lui $a3, %hi(dword_CODE_bss_8007A0EC) +/* 0D0490 7F09B960 24E7A0EC */ addiu $a3, %lo(dword_CODE_bss_8007A0EC) # addiu $a3, $a3, -0x5f14 +/* 0D0494 7F09B964 ACE20000 */ sw $v0, ($a3) +/* 0D0498 7F09B968 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A0D8) +/* 0D049C 7F09B96C 8C84A0D8 */ lw $a0, %lo(dword_CODE_bss_8007A0D8)($a0) +/* 0D04A0 7F09B970 24050004 */ li $a1, 4 +/* 0D04A4 7F09B974 00047100 */ sll $t6, $a0, 4 +/* 0D04A8 7F09B978 0C0025C8 */ jal mempAllocBytesInBank +/* 0D04AC 7F09B97C 01C02025 */ move $a0, $t6 +/* 0D04B0 7F09B980 3C0A8008 */ lui $t2, %hi(dword_CODE_bss_8007A0D0) +/* 0D04B4 7F09B984 254AA0D0 */ addiu $t2, %lo(dword_CODE_bss_8007A0D0) # addiu $t2, $t2, -0x5f30 +/* 0D04B8 7F09B988 8D4F0000 */ lw $t7, ($t2) +/* 0D04BC 7F09B98C 3C058008 */ lui $a1, %hi(dword_CODE_bss_8007A0E4) +/* 0D04C0 7F09B990 24A5A0E4 */ addiu $a1, %lo(dword_CODE_bss_8007A0E4) # addiu $a1, $a1, -0x5f1c +/* 0D04C4 7F09B994 ACA20000 */ sw $v0, ($a1) +/* 0D04C8 7F09B998 3C068008 */ lui $a2, %hi(dword_CODE_bss_8007A0E8) +/* 0D04CC 7F09B99C 3C018008 */ lui $at, %hi(word_CODE_bss_8007A0F0) +/* 0D04D0 7F09B9A0 24C6A0E8 */ addiu $a2, %lo(dword_CODE_bss_8007A0E8) # addiu $a2, $a2, -0x5f18 +/* 0D04D4 7F09B9A4 3C188008 */ lui $t8, %hi(dword_CODE_bss_8007A0E0) +/* 0D04D8 7F09B9A8 A42FA0F0 */ sh $t7, %lo(word_CODE_bss_8007A0F0)($at) +/* 0D04DC 7F09B9AC 8CD90000 */ lw $t9, ($a2) +/* 0D04E0 7F09B9B0 8F18A0E0 */ lw $t8, %lo(dword_CODE_bss_8007A0E0)($t8) +/* 0D04E4 7F09B9B4 2404FFFF */ li $a0, -1 +/* 0D04E8 7F09B9B8 3C088008 */ lui $t0, %hi(dword_CODE_bss_8007A0D4) +/* 0D04EC 7F09B9BC AF380000 */ sw $t8, ($t9) +/* 0D04F0 7F09B9C0 8CCC0000 */ lw $t4, ($a2) +/* 0D04F4 7F09B9C4 8D4B0000 */ lw $t3, ($t2) +/* 0D04F8 7F09B9C8 2508A0D4 */ addiu $t0, %lo(dword_CODE_bss_8007A0D4) # addiu $t0, $t0, -0x5f2c +/* 0D04FC 7F09B9CC 3C078008 */ lui $a3, %hi(dword_CODE_bss_8007A0EC) +/* 0D0500 7F09B9D0 A58B000C */ sh $t3, 0xc($t4) +/* 0D0504 7F09B9D4 8CCD0000 */ lw $t5, ($a2) +/* 0D0508 7F09B9D8 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007A0DC) +/* 0D050C 7F09B9DC 2529A0DC */ addiu $t1, %lo(dword_CODE_bss_8007A0DC) # addiu $t1, $t1, -0x5f24 +/* 0D0510 7F09B9E0 A5A0000E */ sh $zero, 0xe($t5) +/* 0D0514 7F09B9E4 8CCE0000 */ lw $t6, ($a2) +/* 0D0518 7F09B9E8 24E7A0EC */ addiu $a3, %lo(dword_CODE_bss_8007A0EC) # addiu $a3, $a3, -0x5f14 +/* 0D051C 7F09B9EC 24020014 */ li $v0, 20 +/* 0D0520 7F09B9F0 A5C40010 */ sh $a0, 0x10($t6) +/* 0D0524 7F09B9F4 8CCF0000 */ lw $t7, ($a2) +/* 0D0528 7F09B9F8 24030001 */ li $v1, 1 +/* 0D052C 7F09B9FC 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_8007A0D8) +/* 0D0530 7F09BA00 A5E40012 */ sh $a0, 0x12($t7) +/* 0D0534 7F09BA04 8D180000 */ lw $t8, ($t0) +/* 0D0538 7F09BA08 2B010002 */ slti $at, $t8, 2 +/* 0D053C 7F09BA0C 1420000B */ bnez $at, .L7F09BA3C +/* 0D0540 7F09BA10 00000000 */ nop +/* 0D0544 7F09BA14 8CD90000 */ lw $t9, ($a2) +.L7F09BA18: +/* 0D0548 7F09BA18 24630001 */ addiu $v1, $v1, 1 +/* 0D054C 7F09BA1C 03225821 */ addu $t3, $t9, $v0 +/* 0D0550 7F09BA20 A564000E */ sh $a0, 0xe($t3) +/* 0D0554 7F09BA24 8D0C0000 */ lw $t4, ($t0) +/* 0D0558 7F09BA28 24420014 */ addiu $v0, $v0, 0x14 +/* 0D055C 7F09BA2C 006C082A */ slt $at, $v1, $t4 +/* 0D0560 7F09BA30 5420FFF9 */ bnezl $at, .L7F09BA18 +/* 0D0564 7F09BA34 8CD90000 */ lw $t9, ($a2) +/* 0D0568 7F09BA38 24030001 */ li $v1, 1 +.L7F09BA3C: +/* 0D056C 7F09BA3C 8DADA0D8 */ lw $t5, %lo(dword_CODE_bss_8007A0D8)($t5) +/* 0D0570 7F09BA40 3C018008 */ lui $at, %hi(word_CODE_bss_8007A0F2) +/* 0D0574 7F09BA44 3C188008 */ lui $t8, %hi(dword_CODE_bss_8007A0D8) +/* 0D0578 7F09BA48 A42DA0F2 */ sh $t5, %lo(word_CODE_bss_8007A0F2)($at) +/* 0D057C 7F09BA4C 8CEF0000 */ lw $t7, ($a3) +/* 0D0580 7F09BA50 8CAE0000 */ lw $t6, ($a1) +/* 0D0584 7F09BA54 24020014 */ li $v0, 20 +/* 0D0588 7F09BA58 ADEE0000 */ sw $t6, ($t7) +/* 0D058C 7F09BA5C 8CF90000 */ lw $t9, ($a3) +/* 0D0590 7F09BA60 8F18A0D8 */ lw $t8, %lo(dword_CODE_bss_8007A0D8)($t8) +/* 0D0594 7F09BA64 A738000C */ sh $t8, 0xc($t9) +/* 0D0598 7F09BA68 8CEB0000 */ lw $t3, ($a3) +/* 0D059C 7F09BA6C A560000E */ sh $zero, 0xe($t3) +/* 0D05A0 7F09BA70 8CEC0000 */ lw $t4, ($a3) +/* 0D05A4 7F09BA74 A5840010 */ sh $a0, 0x10($t4) +/* 0D05A8 7F09BA78 8CED0000 */ lw $t5, ($a3) +/* 0D05AC 7F09BA7C A5A40012 */ sh $a0, 0x12($t5) +/* 0D05B0 7F09BA80 8D2E0000 */ lw $t6, ($t1) +/* 0D05B4 7F09BA84 29C10002 */ slti $at, $t6, 2 +/* 0D05B8 7F09BA88 5420000B */ bnezl $at, .L7F09BAB8 +/* 0D05BC 7F09BA8C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0D05C0 7F09BA90 8CEF0000 */ lw $t7, ($a3) +.L7F09BA94: +/* 0D05C4 7F09BA94 24630001 */ addiu $v1, $v1, 1 +/* 0D05C8 7F09BA98 01E2C021 */ addu $t8, $t7, $v0 +/* 0D05CC 7F09BA9C A704000E */ sh $a0, 0xe($t8) +/* 0D05D0 7F09BAA0 8D390000 */ lw $t9, ($t1) +/* 0D05D4 7F09BAA4 24420014 */ addiu $v0, $v0, 0x14 +/* 0D05D8 7F09BAA8 0079082A */ slt $at, $v1, $t9 +/* 0D05DC 7F09BAAC 5420FFF9 */ bnezl $at, .L7F09BA94 +/* 0D05E0 7F09BAB0 8CEF0000 */ lw $t7, ($a3) +/* 0D05E4 7F09BAB4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F09BAB8: +/* 0D05E8 7F09BAB8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0D05EC 7F09BABC 03E00008 */ jr $ra +/* 0D05F0 7F09BAC0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09BAC4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09BAC4 +/* 0D05F4 7F09BAC4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0D05F8 7F09BAC8 AFBF002C */ sw $ra, 0x2c($sp) +/* 0D05FC 7F09BACC AFB40028 */ sw $s4, 0x28($sp) +/* 0D0600 7F09BAD0 AFB30024 */ sw $s3, 0x24($sp) +/* 0D0604 7F09BAD4 00809825 */ move $s3, $a0 +/* 0D0608 7F09BAD8 00A0A025 */ move $s4, $a1 +/* 0D060C 7F09BADC AFB20020 */ sw $s2, 0x20($sp) +/* 0D0610 7F09BAE0 AFB1001C */ sw $s1, 0x1c($sp) +/* 0D0614 7F09BAE4 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry +/* 0D0618 7F09BAE8 AFB00018 */ sw $s0, 0x18($sp) +/* 0D061C 7F09BAEC 1040002B */ beqz $v0, .L7F09BB9C +/* 0D0620 7F09BAF0 00408825 */ move $s1, $v0 +/* 0D0624 7F09BAF4 24120001 */ li $s2, 1 +/* 0D0628 7F09BAF8 24100018 */ li $s0, 24 +/* 0D062C 7F09BAFC 922E0000 */ lbu $t6, ($s1) +.L7F09BB00: +/* 0D0630 7F09BB00 564E0024 */ bnel $s2, $t6, .L7F09BB94 +/* 0D0634 7F09BB04 8E310024 */ lw $s1, 0x24($s1) +/* 0D0638 7F09BB08 8E220004 */ lw $v0, 4($s1) +/* 0D063C 7F09BB0C 8C440014 */ lw $a0, 0x14($v0) +/* 0D0640 7F09BB10 8C830008 */ lw $v1, 8($a0) +/* 0D0644 7F09BB14 8C650000 */ lw $a1, ($v1) +/* 0D0648 7F09BB18 50A0001E */ beql $a1, $zero, .L7F09BB94 +/* 0D064C 7F09BB1C 8E310024 */ lw $s1, 0x24($s1) +/* 0D0650 7F09BB20 94A20000 */ lhu $v0, ($a1) +.L7F09BB24: +/* 0D0654 7F09BB24 304F00FF */ andi $t7, $v0, 0xff +/* 0D0658 7F09BB28 55F00009 */ bnel $t7, $s0, .L7F09BB50 +/* 0D065C 7F09BB2C 8CA20014 */ lw $v0, 0x14($a1) +/* 0D0660 7F09BB30 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0D0664 7F09BB34 00000000 */ nop +/* 0D0668 7F09BB38 8C580000 */ lw $t8, ($v0) +/* 0D066C 7F09BB3C 56780015 */ bnel $s3, $t8, .L7F09BB94 +/* 0D0670 7F09BB40 8E310024 */ lw $s1, 0x24($s1) +/* 0D0674 7F09BB44 10000012 */ b .L7F09BB90 +/* 0D0678 7F09BB48 AC540000 */ sw $s4, ($v0) +/* 0D067C 7F09BB4C 8CA20014 */ lw $v0, 0x14($a1) +.L7F09BB50: +/* 0D0680 7F09BB50 10400003 */ beqz $v0, .L7F09BB60 +/* 0D0684 7F09BB54 00000000 */ nop +/* 0D0688 7F09BB58 1000000B */ b .L7F09BB88 +/* 0D068C 7F09BB5C 00402825 */ move $a1, $v0 +.L7F09BB60: +/* 0D0690 7F09BB60 10A00009 */ beqz $a1, .L7F09BB88 +/* 0D0694 7F09BB64 00000000 */ nop +/* 0D0698 7F09BB68 8CA2000C */ lw $v0, 0xc($a1) +.L7F09BB6C: +/* 0D069C 7F09BB6C 50400004 */ beql $v0, $zero, .L7F09BB80 +/* 0D06A0 7F09BB70 8CA50008 */ lw $a1, 8($a1) +/* 0D06A4 7F09BB74 10000004 */ b .L7F09BB88 +/* 0D06A8 7F09BB78 00402825 */ move $a1, $v0 +/* 0D06AC 7F09BB7C 8CA50008 */ lw $a1, 8($a1) +.L7F09BB80: +/* 0D06B0 7F09BB80 54A0FFFA */ bnezl $a1, .L7F09BB6C +/* 0D06B4 7F09BB84 8CA2000C */ lw $v0, 0xc($a1) +.L7F09BB88: +/* 0D06B8 7F09BB88 54A0FFE6 */ bnezl $a1, .L7F09BB24 +/* 0D06BC 7F09BB8C 94A20000 */ lhu $v0, ($a1) +.L7F09BB90: +/* 0D06C0 7F09BB90 8E310024 */ lw $s1, 0x24($s1) +.L7F09BB94: +/* 0D06C4 7F09BB94 5620FFDA */ bnezl $s1, .L7F09BB00 +/* 0D06C8 7F09BB98 922E0000 */ lbu $t6, ($s1) +.L7F09BB9C: +/* 0D06CC 7F09BB9C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0D06D0 7F09BBA0 8FB00018 */ lw $s0, 0x18($sp) +/* 0D06D4 7F09BBA4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0D06D8 7F09BBA8 8FB20020 */ lw $s2, 0x20($sp) +/* 0D06DC 7F09BBAC 8FB30024 */ lw $s3, 0x24($sp) +/* 0D06E0 7F09BBB0 8FB40028 */ lw $s4, 0x28($sp) +/* 0D06E4 7F09BBB4 03E00008 */ jr $ra +/* 0D06E8 7F09BBB8 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09BBBC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09BBBC +/* 0D06EC 7F09BBBC 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0D06F0 7F09BBC0 AFB5002C */ sw $s5, 0x2c($sp) +/* 0D06F4 7F09BBC4 3C158008 */ lui $s5, %hi(word_CODE_bss_8007A0F2) +/* 0D06F8 7F09BBC8 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_8007A0D8) +/* 0D06FC 7F09BBCC 8DEFA0D8 */ lw $t7, %lo(dword_CODE_bss_8007A0D8)($t7) +/* 0D0700 7F09BBD0 26B5A0F2 */ addiu $s5, %lo(word_CODE_bss_8007A0F2) # addiu $s5, $s5, -0x5f0e +/* 0D0704 7F09BBD4 86AE0000 */ lh $t6, ($s5) +/* 0D0708 7F09BBD8 000FC083 */ sra $t8, $t7, 2 +/* 0D070C 7F09BBDC AFB60030 */ sw $s6, 0x30($sp) +/* 0D0710 7F09BBE0 01D8082A */ slt $at, $t6, $t8 +/* 0D0714 7F09BBE4 AFBF003C */ sw $ra, 0x3c($sp) +/* 0D0718 7F09BBE8 AFBE0038 */ sw $fp, 0x38($sp) +/* 0D071C 7F09BBEC AFB70034 */ sw $s7, 0x34($sp) +/* 0D0720 7F09BBF0 AFB40028 */ sw $s4, 0x28($sp) +/* 0D0724 7F09BBF4 AFB30024 */ sw $s3, 0x24($sp) +/* 0D0728 7F09BBF8 AFB20020 */ sw $s2, 0x20($sp) +/* 0D072C 7F09BBFC AFB1001C */ sw $s1, 0x1c($sp) +/* 0D0730 7F09BC00 AFB00018 */ sw $s0, 0x18($sp) +/* 0D0734 7F09BC04 1020004B */ beqz $at, .L7F09BD34 +/* 0D0738 7F09BC08 0000B025 */ move $s6, $zero +/* 0D073C 7F09BC0C 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A0DC) +/* 0D0740 7F09BC10 8C84A0DC */ lw $a0, %lo(dword_CODE_bss_8007A0DC)($a0) +/* 0D0744 7F09BC14 0000F025 */ move $fp, $zero +/* 0D0748 7F09BC18 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A0EC) +/* 0D074C 7F09BC1C 2485FFFF */ addiu $a1, $a0, -1 +/* 0D0750 7F09BC20 18A00044 */ blez $a1, .L7F09BD34 +/* 0D0754 7F09BC24 24170014 */ li $s7, 20 +/* 0D0758 7F09BC28 3C148008 */ lui $s4, %hi(dword_CODE_bss_8007A0EC) +/* 0D075C 7F09BC2C 2694A0EC */ addiu $s4, %lo(dword_CODE_bss_8007A0EC) # addiu $s4, $s4, -0x5f14 +/* 0D0760 7F09BC30 8C63A0EC */ lw $v1, %lo(dword_CODE_bss_8007A0EC)($v1) +.L7F09BC34: +/* 0D0764 7F09BC34 03D70019 */ multu $fp, $s7 +/* 0D0768 7F09BC38 27C20001 */ addiu $v0, $fp, 1 +/* 0D076C 7F09BC3C 00025400 */ sll $t2, $v0, 0x10 +/* 0D0770 7F09BC40 000A5C03 */ sra $t3, $t2, 0x10 +/* 0D0774 7F09BC44 00029400 */ sll $s2, $v0, 0x10 +/* 0D0778 7F09BC48 00124C03 */ sra $t1, $s2, 0x10 +/* 0D077C 7F09BC4C 0164082A */ slt $at, $t3, $a0 +/* 0D0780 7F09BC50 00009812 */ mflo $s3 +/* 0D0784 7F09BC54 0073C821 */ addu $t9, $v1, $s3 +/* 0D0788 7F09BC58 8728000E */ lh $t0, 0xe($t9) +/* 0D078C 7F09BC5C 59000030 */ blezl $t0, .L7F09BD20 +/* 0D0790 7F09BC60 27DE0001 */ addiu $fp, $fp, 1 +/* 0D0794 7F09BC64 1020002D */ beqz $at, .L7F09BD1C +/* 0D0798 7F09BC68 01209025 */ move $s2, $t1 +.L7F09BC6C: +/* 0D079C 7F09BC6C 02570019 */ multu $s2, $s7 +/* 0D07A0 7F09BC70 00738021 */ addu $s0, $v1, $s3 +/* 0D07A4 7F09BC74 00008812 */ mflo $s1 +/* 0D07A8 7F09BC78 00711021 */ addu $v0, $v1, $s1 +/* 0D07AC 7F09BC7C 844C000E */ lh $t4, 0xe($v0) +/* 0D07B0 7F09BC80 59800020 */ blezl $t4, .L7F09BD04 +/* 0D07B4 7F09BC84 26520001 */ addiu $s2, $s2, 1 +/* 0D07B8 7F09BC88 8E0D0004 */ lw $t5, 4($s0) +/* 0D07BC 7F09BC8C 8C4F0004 */ lw $t7, 4($v0) +/* 0D07C0 7F09BC90 55AF001C */ bnel $t5, $t7, .L7F09BD04 +/* 0D07C4 7F09BC94 26520001 */ addiu $s2, $s2, 1 +/* 0D07C8 7F09BC98 8E0E0008 */ lw $t6, 8($s0) +/* 0D07CC 7F09BC9C 8C580008 */ lw $t8, 8($v0) +/* 0D07D0 7F09BCA0 55D80018 */ bnel $t6, $t8, .L7F09BD04 +/* 0D07D4 7F09BCA4 26520001 */ addiu $s2, $s2, 1 +/* 0D07D8 7F09BCA8 8C440000 */ lw $a0, ($v0) +/* 0D07DC 7F09BCAC 8E050000 */ lw $a1, ($s0) +/* 0D07E0 7F09BCB0 0FC26EB1 */ jal sub_GAME_7F09BAC4 +/* 0D07E4 7F09BCB4 24160001 */ li $s6, 1 +/* 0D07E8 7F09BCB8 8E830000 */ lw $v1, ($s4) +/* 0D07EC 7F09BCBC 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A0DC) +/* 0D07F0 7F09BCC0 00738021 */ addu $s0, $v1, $s3 +/* 0D07F4 7F09BCC4 00714021 */ addu $t0, $v1, $s1 +/* 0D07F8 7F09BCC8 8509000E */ lh $t1, 0xe($t0) +/* 0D07FC 7F09BCCC 8619000E */ lh $t9, 0xe($s0) +/* 0D0800 7F09BCD0 03295021 */ addu $t2, $t9, $t1 +/* 0D0804 7F09BCD4 A60A000E */ sh $t2, 0xe($s0) +/* 0D0808 7F09BCD8 8E8B0000 */ lw $t3, ($s4) +/* 0D080C 7F09BCDC 01716021 */ addu $t4, $t3, $s1 +/* 0D0810 7F09BCE0 A580000E */ sh $zero, 0xe($t4) +/* 0D0814 7F09BCE4 8E830000 */ lw $v1, ($s4) +/* 0D0818 7F09BCE8 86AD0000 */ lh $t5, ($s5) +/* 0D081C 7F09BCEC 00717821 */ addu $t7, $v1, $s1 +/* 0D0820 7F09BCF0 85EE000C */ lh $t6, 0xc($t7) +/* 0D0824 7F09BCF4 01AEC021 */ addu $t8, $t5, $t6 +/* 0D0828 7F09BCF8 A6B80000 */ sh $t8, ($s5) +/* 0D082C 7F09BCFC 8C84A0DC */ lw $a0, %lo(dword_CODE_bss_8007A0DC)($a0) +/* 0D0830 7F09BD00 26520001 */ addiu $s2, $s2, 1 +.L7F09BD04: +/* 0D0834 7F09BD04 00124400 */ sll $t0, $s2, 0x10 +/* 0D0838 7F09BD08 00089403 */ sra $s2, $t0, 0x10 +/* 0D083C 7F09BD0C 0244082A */ slt $at, $s2, $a0 +/* 0D0840 7F09BD10 1420FFD6 */ bnez $at, .L7F09BC6C +/* 0D0844 7F09BD14 00000000 */ nop +/* 0D0848 7F09BD18 2485FFFF */ addiu $a1, $a0, -1 +.L7F09BD1C: +/* 0D084C 7F09BD1C 27DE0001 */ addiu $fp, $fp, 1 +.L7F09BD20: +/* 0D0850 7F09BD20 001E4C00 */ sll $t1, $fp, 0x10 +/* 0D0854 7F09BD24 0009F403 */ sra $fp, $t1, 0x10 +/* 0D0858 7F09BD28 03C5082A */ slt $at, $fp, $a1 +/* 0D085C 7F09BD2C 1420FFC1 */ bnez $at, .L7F09BC34 +/* 0D0860 7F09BD30 00000000 */ nop +.L7F09BD34: +/* 0D0864 7F09BD34 3C148008 */ lui $s4, %hi(dword_CODE_bss_8007A0EC) +/* 0D0868 7F09BD38 2694A0EC */ addiu $s4, %lo(dword_CODE_bss_8007A0EC) # addiu $s4, $s4, -0x5f14 +/* 0D086C 7F09BD3C 12C0002E */ beqz $s6, .L7F09BDF8 +/* 0D0870 7F09BD40 24170014 */ li $s7, 20 +/* 0D0874 7F09BD44 00002025 */ move $a0, $zero +/* 0D0878 7F09BD48 0000F025 */ move $fp, $zero +/* 0D087C 7F09BD4C 2405FFFF */ li $a1, -1 +.L7F09BD50: +/* 0D0880 7F09BD50 03D70019 */ multu $fp, $s7 +/* 0D0884 7F09BD54 8E830000 */ lw $v1, ($s4) +/* 0D0888 7F09BD58 00009812 */ mflo $s3 +/* 0D088C 7F09BD5C 00738021 */ addu $s0, $v1, $s3 +/* 0D0890 7F09BD60 86120010 */ lh $s2, 0x10($s0) +/* 0D0894 7F09BD64 06420022 */ bltzl $s2, .L7F09BDF0 +/* 0D0898 7F09BD68 24040001 */ li $a0, 1 +/* 0D089C 7F09BD6C 860B000E */ lh $t3, 0xe($s0) +/* 0D08A0 7F09BD70 5560001B */ bnezl $t3, .L7F09BDE0 +/* 0D08A4 7F09BD74 0012F400 */ sll $fp, $s2, 0x10 +/* 0D08A8 7F09BD78 02570019 */ multu $s2, $s7 +/* 0D08AC 7F09BD7C 00008812 */ mflo $s1 +/* 0D08B0 7F09BD80 00711021 */ addu $v0, $v1, $s1 +/* 0D08B4 7F09BD84 844C000E */ lh $t4, 0xe($v0) +/* 0D08B8 7F09BD88 55800015 */ bnezl $t4, .L7F09BDE0 +/* 0D08BC 7F09BD8C 0012F400 */ sll $fp, $s2, 0x10 +/* 0D08C0 7F09BD90 860F000C */ lh $t7, 0xc($s0) +/* 0D08C4 7F09BD94 844D000C */ lh $t5, 0xc($v0) +/* 0D08C8 7F09BD98 01ED7021 */ addu $t6, $t7, $t5 +/* 0D08CC 7F09BD9C A60E000C */ sh $t6, 0xc($s0) +/* 0D08D0 7F09BDA0 8E980000 */ lw $t8, ($s4) +/* 0D08D4 7F09BDA4 03114021 */ addu $t0, $t8, $s1 +/* 0D08D8 7F09BDA8 A505000E */ sh $a1, 0xe($t0) +/* 0D08DC 7F09BDAC 8E830000 */ lw $v1, ($s4) +/* 0D08E0 7F09BDB0 0071C821 */ addu $t9, $v1, $s1 +/* 0D08E4 7F09BDB4 87320010 */ lh $s2, 0x10($t9) +/* 0D08E8 7F09BDB8 00734821 */ addu $t1, $v1, $s3 +/* 0D08EC 7F09BDBC 0640000C */ bltz $s2, .L7F09BDF0 +/* 0D08F0 7F09BDC0 A5320010 */ sh $s2, 0x10($t1) +/* 0D08F4 7F09BDC4 02570019 */ multu $s2, $s7 +/* 0D08F8 7F09BDC8 8E8A0000 */ lw $t2, ($s4) +/* 0D08FC 7F09BDCC 00005812 */ mflo $t3 +/* 0D0900 7F09BDD0 014B6021 */ addu $t4, $t2, $t3 +/* 0D0904 7F09BDD4 10000006 */ b .L7F09BDF0 +/* 0D0908 7F09BDD8 A59E0012 */ sh $fp, 0x12($t4) +/* 0D090C 7F09BDDC 0012F400 */ sll $fp, $s2, 0x10 +.L7F09BDE0: +/* 0D0910 7F09BDE0 001E7C03 */ sra $t7, $fp, 0x10 +/* 0D0914 7F09BDE4 10000002 */ b .L7F09BDF0 +/* 0D0918 7F09BDE8 01E0F025 */ move $fp, $t7 +/* 0D091C 7F09BDEC 24040001 */ li $a0, 1 +.L7F09BDF0: +/* 0D0920 7F09BDF0 1080FFD7 */ beqz $a0, .L7F09BD50 +/* 0D0924 7F09BDF4 00000000 */ nop +.L7F09BDF8: +/* 0D0928 7F09BDF8 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_8007A0D8) +/* 0D092C 7F09BDFC 8DCEA0D8 */ lw $t6, %lo(dword_CODE_bss_8007A0D8)($t6) +/* 0D0930 7F09BE00 86AD0000 */ lh $t5, ($s5) +/* 0D0934 7F09BE04 000EC083 */ sra $t8, $t6, 2 +/* 0D0938 7F09BE08 01B8082A */ slt $at, $t5, $t8 +/* 0D093C 7F09BE0C 50200004 */ beql $at, $zero, .L7F09BE20 +/* 0D0940 7F09BE10 8FBF003C */ lw $ra, 0x3c($sp) +/* 0D0944 7F09BE14 0FC159A4 */ jal sub_GAME_7F056690 +/* 0D0948 7F09BE18 00000000 */ nop +/* 0D094C 7F09BE1C 8FBF003C */ lw $ra, 0x3c($sp) +.L7F09BE20: +/* 0D0950 7F09BE20 8FB00018 */ lw $s0, 0x18($sp) +/* 0D0954 7F09BE24 8FB1001C */ lw $s1, 0x1c($sp) +/* 0D0958 7F09BE28 8FB20020 */ lw $s2, 0x20($sp) +/* 0D095C 7F09BE2C 8FB30024 */ lw $s3, 0x24($sp) +/* 0D0960 7F09BE30 8FB40028 */ lw $s4, 0x28($sp) +/* 0D0964 7F09BE34 8FB5002C */ lw $s5, 0x2c($sp) +/* 0D0968 7F09BE38 8FB60030 */ lw $s6, 0x30($sp) +/* 0D096C 7F09BE3C 8FB70034 */ lw $s7, 0x34($sp) +/* 0D0970 7F09BE40 8FBE0038 */ lw $fp, 0x38($sp) +/* 0D0974 7F09BE44 03E00008 */ jr $ra +/* 0D0978 7F09BE48 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09BE4C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09BE4C +/* 0D097C 7F09BE4C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0D0980 7F09BE50 AFB00018 */ sw $s0, 0x18($sp) +/* 0D0984 7F09BE54 24010B0B */ li $at, 2827 +/* 0D0988 7F09BE58 00808025 */ move $s0, $a0 +/* 0D098C 7F09BE5C AFBF001C */ sw $ra, 0x1c($sp) +/* 0D0990 7F09BE60 AFA60028 */ sw $a2, 0x28($sp) +/* 0D0994 7F09BE64 10A1000A */ beq $a1, $at, .L7F09BE90 +/* 0D0998 7F09BE68 AFA7002C */ sw $a3, 0x2c($sp) +/* 0D099C 7F09BE6C 3401CCCC */ li $at, 52428 +/* 0D09A0 7F09BE70 14A1000E */ bne $a1, $at, .L7F09BEAC +/* 0D09A4 7F09BE74 3C088008 */ lui $t0, %hi(dword_CODE_bss_8007A0E8) +/* 0D09A8 7F09BE78 3C0B8008 */ lui $t3, %hi(word_CODE_bss_8007A0F0) +/* 0D09AC 7F09BE7C 3C068008 */ lui $a2, %hi(dword_CODE_bss_8007A0D4+2) +/* 0D09B0 7F09BE80 8D08A0E8 */ lw $t0, %lo(dword_CODE_bss_8007A0E8)($t0) +/* 0D09B4 7F09BE84 256BA0F0 */ addiu $t3, %lo(word_CODE_bss_8007A0F0) # addiu $t3, $t3, -0x5f10 +/* 0D09B8 7F09BE88 1000000A */ b .L7F09BEB4 +/* 0D09BC 7F09BE8C 84C6A0D6 */ lh $a2, %lo(dword_CODE_bss_8007A0D4+2)($a2) +.L7F09BE90: +/* 0D09C0 7F09BE90 3C088008 */ lui $t0, %hi(dword_CODE_bss_8007A0EC) +/* 0D09C4 7F09BE94 3C0B8008 */ lui $t3, %hi(word_CODE_bss_8007A0F2) +/* 0D09C8 7F09BE98 3C068008 */ lui $a2, %hi(dword_CODE_bss_8007A0DC+0x2) +/* 0D09CC 7F09BE9C 8D08A0EC */ lw $t0, %lo(dword_CODE_bss_8007A0EC)($t0) +/* 0D09D0 7F09BEA0 256BA0F2 */ addiu $t3, %lo(word_CODE_bss_8007A0F2) # addiu $t3, $t3, -0x5f0e +/* 0D09D4 7F09BEA4 10000003 */ b .L7F09BEB4 +/* 0D09D8 7F09BEA8 84C6A0DE */ lh $a2, %lo(dword_CODE_bss_8007A0DC+0x2)($a2) +.L7F09BEAC: +/* 0D09DC 7F09BEAC 10000060 */ b .L7F09C030 +/* 0D09E0 7F09BEB0 00001025 */ move $v0, $zero +.L7F09BEB4: +/* 0D09E4 7F09BEB4 00001825 */ move $v1, $zero +/* 0D09E8 7F09BEB8 00001025 */ move $v0, $zero +/* 0D09EC 7F09BEBC 00002825 */ move $a1, $zero +/* 0D09F0 7F09BEC0 24090014 */ li $t1, 20 +/* 0D09F4 7F09BEC4 2407FFFF */ li $a3, -1 +.L7F09BEC8: +/* 0D09F8 7F09BEC8 00A90019 */ multu $a1, $t1 +/* 0D09FC 7F09BECC 00007012 */ mflo $t6 +/* 0D0A00 7F09BED0 010E2021 */ addu $a0, $t0, $t6 +/* 0D0A04 7F09BED4 848F000E */ lh $t7, 0xe($a0) +/* 0D0A08 7F09BED8 55E00008 */ bnezl $t7, .L7F09BEFC +/* 0D0A0C 7F09BEDC 84850010 */ lh $a1, 0x10($a0) +/* 0D0A10 7F09BEE0 8498000C */ lh $t8, 0xc($a0) +/* 0D0A14 7F09BEE4 0310082A */ slt $at, $t8, $s0 +/* 0D0A18 7F09BEE8 54200004 */ bnezl $at, .L7F09BEFC +/* 0D0A1C 7F09BEEC 84850010 */ lh $a1, 0x10($a0) +/* 0D0A20 7F09BEF0 1000000B */ b .L7F09BF20 +/* 0D0A24 7F09BEF4 24030001 */ li $v1, 1 +/* 0D0A28 7F09BEF8 84850010 */ lh $a1, 0x10($a0) +.L7F09BEFC: +/* 0D0A2C 7F09BEFC 24420001 */ addiu $v0, $v0, 1 +/* 0D0A30 7F09BF00 00C2082A */ slt $at, $a2, $v0 +/* 0D0A34 7F09BF04 50A70004 */ beql $a1, $a3, .L7F09BF18 +/* 0D0A38 7F09BF08 00071C00 */ sll $v1, $a3, 0x10 +/* 0D0A3C 7F09BF0C 10200004 */ beqz $at, .L7F09BF20 +/* 0D0A40 7F09BF10 00000000 */ nop +/* 0D0A44 7F09BF14 00071C00 */ sll $v1, $a3, 0x10 +.L7F09BF18: +/* 0D0A48 7F09BF18 0003CC03 */ sra $t9, $v1, 0x10 +/* 0D0A4C 7F09BF1C 03201825 */ move $v1, $t9 +.L7F09BF20: +/* 0D0A50 7F09BF20 1060FFE9 */ beqz $v1, .L7F09BEC8 +/* 0D0A54 7F09BF24 00000000 */ nop +/* 0D0A58 7F09BF28 00C2082A */ slt $at, $a2, $v0 +/* 0D0A5C 7F09BF2C 50200008 */ beql $at, $zero, .L7F09BF50 +/* 0D0A60 7F09BF30 24010001 */ li $at, 1 +/* 0D0A64 7F09BF34 0FC26DEA */ jal sub_GAME_7F09B7A8 +/* 0D0A68 7F09BF38 00000000 */ nop +/* 0D0A6C 7F09BF3C 0FC26DF9 */ jal sub_GAME_7F09B7E4 +/* 0D0A70 7F09BF40 00000000 */ nop +/* 0D0A74 7F09BF44 1000003A */ b .L7F09C030 +/* 0D0A78 7F09BF48 00001025 */ move $v0, $zero +/* 0D0A7C 7F09BF4C 24010001 */ li $at, 1 +.L7F09BF50: +/* 0D0A80 7F09BF50 14610037 */ bne $v1, $at, .L7F09C030 +/* 0D0A84 7F09BF54 00001025 */ move $v0, $zero +/* 0D0A88 7F09BF58 00A90019 */ multu $a1, $t1 +/* 0D0A8C 7F09BF5C 8FAE0028 */ lw $t6, 0x28($sp) +/* 0D0A90 7F09BF60 00006025 */ move $t4, $zero +/* 0D0A94 7F09BF64 00006812 */ mflo $t5 +/* 0D0A98 7F09BF68 010D2021 */ addu $a0, $t0, $t5 +/* 0D0A9C 7F09BF6C 8498000E */ lh $t8, 0xe($a0) +/* 0D0AA0 7F09BF70 848A000C */ lh $t2, 0xc($a0) +/* 0D0AA4 7F09BF74 AC8E0004 */ sw $t6, 4($a0) +/* 0D0AA8 7F09BF78 8FAF002C */ lw $t7, 0x2c($sp) +/* 0D0AAC 7F09BF7C 27190001 */ addiu $t9, $t8, 1 +/* 0D0AB0 7F09BF80 A499000E */ sh $t9, 0xe($a0) +/* 0D0AB4 7F09BF84 1150001F */ beq $t2, $s0, .L7F09C004 +/* 0D0AB8 7F09BF88 AC8F0008 */ sw $t7, 8($a0) +/* 0D0ABC 7F09BF8C 18C0001D */ blez $a2, .L7F09C004 +/* 0D0AC0 7F09BF90 00001825 */ move $v1, $zero +/* 0D0AC4 7F09BF94 01001025 */ move $v0, $t0 +.L7F09BF98: +/* 0D0AC8 7F09BF98 844D000E */ lh $t5, 0xe($v0) +/* 0D0ACC 7F09BF9C 54ED0017 */ bnel $a3, $t5, .L7F09BFFC +/* 0D0AD0 7F09BFA0 24630001 */ addiu $v1, $v1, 1 +/* 0D0AD4 7F09BFA4 8C8E0000 */ lw $t6, ($a0) +/* 0D0AD8 7F09BFA8 A490000C */ sh $s0, 0xc($a0) +/* 0D0ADC 7F09BFAC 00107900 */ sll $t7, $s0, 4 +/* 0D0AE0 7F09BFB0 0150C823 */ subu $t9, $t2, $s0 +/* 0D0AE4 7F09BFB4 01CFC021 */ addu $t8, $t6, $t7 +/* 0D0AE8 7F09BFB8 AC580000 */ sw $t8, ($v0) +/* 0D0AEC 7F09BFBC A459000C */ sh $t9, 0xc($v0) +/* 0D0AF0 7F09BFC0 A440000E */ sh $zero, 0xe($v0) +/* 0D0AF4 7F09BFC4 A4450012 */ sh $a1, 0x12($v0) +/* 0D0AF8 7F09BFC8 848D0010 */ lh $t5, 0x10($a0) +/* 0D0AFC 7F09BFCC 240C0001 */ li $t4, 1 +/* 0D0B00 7F09BFD0 A44D0010 */ sh $t5, 0x10($v0) +/* 0D0B04 7F09BFD4 84820010 */ lh $v0, 0x10($a0) +/* 0D0B08 7F09BFD8 04400005 */ bltz $v0, .L7F09BFF0 +/* 0D0B0C 7F09BFDC 00000000 */ nop +/* 0D0B10 7F09BFE0 00490019 */ multu $v0, $t1 +/* 0D0B14 7F09BFE4 00007012 */ mflo $t6 +/* 0D0B18 7F09BFE8 010E7821 */ addu $t7, $t0, $t6 +/* 0D0B1C 7F09BFEC A5E30012 */ sh $v1, 0x12($t7) +.L7F09BFF0: +/* 0D0B20 7F09BFF0 10000004 */ b .L7F09C004 +/* 0D0B24 7F09BFF4 A4830010 */ sh $v1, 0x10($a0) +/* 0D0B28 7F09BFF8 24630001 */ addiu $v1, $v1, 1 +.L7F09BFFC: +/* 0D0B2C 7F09BFFC 1466FFE6 */ bne $v1, $a2, .L7F09BF98 +/* 0D0B30 7F09C000 24420014 */ addiu $v0, $v0, 0x14 +.L7F09C004: +/* 0D0B34 7F09C004 51800006 */ beql $t4, $zero, .L7F09C020 +/* 0D0B38 7F09C008 856D0000 */ lh $t5, ($t3) +/* 0D0B3C 7F09C00C 85780000 */ lh $t8, ($t3) +/* 0D0B40 7F09C010 0310C823 */ subu $t9, $t8, $s0 +/* 0D0B44 7F09C014 10000004 */ b .L7F09C028 +/* 0D0B48 7F09C018 A5790000 */ sh $t9, ($t3) +/* 0D0B4C 7F09C01C 856D0000 */ lh $t5, ($t3) +.L7F09C020: +/* 0D0B50 7F09C020 01AA7023 */ subu $t6, $t5, $t2 +/* 0D0B54 7F09C024 A56E0000 */ sh $t6, ($t3) +.L7F09C028: +/* 0D0B58 7F09C028 10000001 */ b .L7F09C030 +/* 0D0B5C 7F09C02C 8C820000 */ lw $v0, ($a0) +.L7F09C030: +/* 0D0B60 7F09C030 8FBF001C */ lw $ra, 0x1c($sp) +/* 0D0B64 7F09C034 8FB00018 */ lw $s0, 0x18($sp) +/* 0D0B68 7F09C038 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0D0B6C 7F09C03C 03E00008 */ jr $ra +/* 0D0B70 7F09C040 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09C044(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09C044 +/* 0D0B74 7F09C044 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007A0E0) +/* 0D0B78 7F09C048 8C42A0E0 */ lw $v0, %lo(dword_CODE_bss_8007A0E0)($v0) +/* 0D0B7C 7F09C04C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0D0B80 7F09C050 AFB00018 */ sw $s0, 0x18($sp) +/* 0D0B84 7F09C054 0082082B */ sltu $at, $a0, $v0 +/* 0D0B88 7F09C058 00808025 */ move $s0, $a0 +/* 0D0B8C 7F09C05C 1420000D */ bnez $at, .L7F09C094 +/* 0D0B90 7F09C060 AFBF001C */ sw $ra, 0x1c($sp) +/* 0D0B94 7F09C064 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_8007A0D0) +/* 0D0B98 7F09C068 8DCEA0D0 */ lw $t6, %lo(dword_CODE_bss_8007A0D0)($t6) +/* 0D0B9C 7F09C06C 3C0A8008 */ lui $t2, %hi(word_CODE_bss_8007A0F0) +/* 0D0BA0 7F09C070 3C078008 */ lui $a3, %hi(dword_CODE_bss_8007A0E8) +/* 0D0BA4 7F09C074 25CFFFFF */ addiu $t7, $t6, -1 +/* 0D0BA8 7F09C078 000FC100 */ sll $t8, $t7, 4 +/* 0D0BAC 7F09C07C 0302C821 */ addu $t9, $t8, $v0 +/* 0D0BB0 7F09C080 0324082B */ sltu $at, $t9, $a0 +/* 0D0BB4 7F09C084 14200003 */ bnez $at, .L7F09C094 +/* 0D0BB8 7F09C088 254AA0F0 */ addiu $t2, %lo(word_CODE_bss_8007A0F0) # addiu $t2, $t2, -0x5f10 +/* 0D0BBC 7F09C08C 10000018 */ b .L7F09C0F0 +/* 0D0BC0 7F09C090 8CE7A0E8 */ lw $a3, %lo(dword_CODE_bss_8007A0E8)($a3) +.L7F09C094: +/* 0D0BC4 7F09C094 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007A0E4) +/* 0D0BC8 7F09C098 8C42A0E4 */ lw $v0, %lo(dword_CODE_bss_8007A0E4)($v0) +/* 0D0BCC 7F09C09C 3C0B8008 */ lui $t3, %hi(dword_CODE_bss_8007A0D8) +/* 0D0BD0 7F09C0A0 0202082B */ sltu $at, $s0, $v0 +/* 0D0BD4 7F09C0A4 1420000C */ bnez $at, .L7F09C0D8 +/* 0D0BD8 7F09C0A8 00000000 */ nop +/* 0D0BDC 7F09C0AC 8D6BA0D8 */ lw $t3, %lo(dword_CODE_bss_8007A0D8)($t3) +/* 0D0BE0 7F09C0B0 3C0A8008 */ lui $t2, %hi(word_CODE_bss_8007A0F2) +/* 0D0BE4 7F09C0B4 3C078008 */ lui $a3, %hi(dword_CODE_bss_8007A0EC) +/* 0D0BE8 7F09C0B8 256CFFFF */ addiu $t4, $t3, -1 +/* 0D0BEC 7F09C0BC 000C6900 */ sll $t5, $t4, 4 +/* 0D0BF0 7F09C0C0 01A27021 */ addu $t6, $t5, $v0 +/* 0D0BF4 7F09C0C4 01D0082B */ sltu $at, $t6, $s0 +/* 0D0BF8 7F09C0C8 14200003 */ bnez $at, .L7F09C0D8 +/* 0D0BFC 7F09C0CC 254AA0F2 */ addiu $t2, %lo(word_CODE_bss_8007A0F2) # addiu $t2, $t2, -0x5f0e +/* 0D0C00 7F09C0D0 10000007 */ b .L7F09C0F0 +/* 0D0C04 7F09C0D4 8CE7A0EC */ lw $a3, %lo(dword_CODE_bss_8007A0EC)($a3) +.L7F09C0D8: +/* 0D0C08 7F09C0D8 0FC26DEA */ jal sub_GAME_7F09B7A8 +/* 0D0C0C 7F09C0DC 00000000 */ nop +/* 0D0C10 7F09C0E0 0FC26DF9 */ jal sub_GAME_7F09B7E4 +/* 0D0C14 7F09C0E4 00000000 */ nop +/* 0D0C18 7F09C0E8 10000053 */ b .L7F09C238 +/* 0D0C1C 7F09C0EC 8FBF001C */ lw $ra, 0x1c($sp) +.L7F09C0F0: +/* 0D0C20 7F09C0F0 00002825 */ move $a1, $zero +/* 0D0C24 7F09C0F4 00004025 */ move $t0, $zero +/* 0D0C28 7F09C0F8 2409FFFF */ li $t1, -1 +/* 0D0C2C 7F09C0FC 24060014 */ li $a2, 20 +.L7F09C100: +/* 0D0C30 7F09C100 00A60019 */ multu $a1, $a2 +/* 0D0C34 7F09C104 00007812 */ mflo $t7 +/* 0D0C38 7F09C108 00EF2021 */ addu $a0, $a3, $t7 +/* 0D0C3C 7F09C10C 8C980000 */ lw $t8, ($a0) +/* 0D0C40 7F09C110 56180043 */ bnel $s0, $t8, .L7F09C220 +/* 0D0C44 7F09C114 84850010 */ lh $a1, 0x10($a0) +/* 0D0C48 7F09C118 8482000E */ lh $v0, 0xe($a0) +/* 0D0C4C 7F09C11C 24080001 */ li $t0, 1 +/* 0D0C50 7F09C120 2459FFFF */ addiu $t9, $v0, -1 +/* 0D0C54 7F09C124 A499000E */ sh $t9, 0xe($a0) +/* 0D0C58 7F09C128 848B000E */ lh $t3, 0xe($a0) +/* 0D0C5C 7F09C12C 1560003F */ bnez $t3, .L7F09C22C +/* 0D0C60 7F09C130 00000000 */ nop +/* 0D0C64 7F09C134 854C0000 */ lh $t4, ($t2) +/* 0D0C68 7F09C138 848D000C */ lh $t5, 0xc($a0) +/* 0D0C6C 7F09C13C 018D7021 */ addu $t6, $t4, $t5 +/* 0D0C70 7F09C140 A54E0000 */ sh $t6, ($t2) +/* 0D0C74 7F09C144 84830010 */ lh $v1, 0x10($a0) +/* 0D0C78 7F09C148 04620016 */ bltzl $v1, .L7F09C1A4 +/* 0D0C7C 7F09C14C 84830012 */ lh $v1, 0x12($a0) +/* 0D0C80 7F09C150 00660019 */ multu $v1, $a2 +/* 0D0C84 7F09C154 00007812 */ mflo $t7 +/* 0D0C88 7F09C158 00EF1021 */ addu $v0, $a3, $t7 +/* 0D0C8C 7F09C15C 8458000E */ lh $t8, 0xe($v0) +/* 0D0C90 7F09C160 57000010 */ bnezl $t8, .L7F09C1A4 +/* 0D0C94 7F09C164 84830012 */ lh $v1, 0x12($a0) +/* 0D0C98 7F09C168 8499000C */ lh $t9, 0xc($a0) +/* 0D0C9C 7F09C16C 844B000C */ lh $t3, 0xc($v0) +/* 0D0CA0 7F09C170 032B6021 */ addu $t4, $t9, $t3 +/* 0D0CA4 7F09C174 A48C000C */ sh $t4, 0xc($a0) +/* 0D0CA8 7F09C178 844D0010 */ lh $t5, 0x10($v0) +/* 0D0CAC 7F09C17C A48D0010 */ sh $t5, 0x10($a0) +/* 0D0CB0 7F09C180 A449000E */ sh $t1, 0xe($v0) +/* 0D0CB4 7F09C184 84830010 */ lh $v1, 0x10($a0) +/* 0D0CB8 7F09C188 04620006 */ bltzl $v1, .L7F09C1A4 +/* 0D0CBC 7F09C18C 84830012 */ lh $v1, 0x12($a0) +/* 0D0CC0 7F09C190 00660019 */ multu $v1, $a2 +/* 0D0CC4 7F09C194 00007012 */ mflo $t6 +/* 0D0CC8 7F09C198 00EE7821 */ addu $t7, $a3, $t6 +/* 0D0CCC 7F09C19C A5E50012 */ sh $a1, 0x12($t7) +/* 0D0CD0 7F09C1A0 84830012 */ lh $v1, 0x12($a0) +.L7F09C1A4: +/* 0D0CD4 7F09C1A4 04600021 */ bltz $v1, .L7F09C22C +/* 0D0CD8 7F09C1A8 00000000 */ nop +/* 0D0CDC 7F09C1AC 00660019 */ multu $v1, $a2 +/* 0D0CE0 7F09C1B0 0000C012 */ mflo $t8 +/* 0D0CE4 7F09C1B4 00F81021 */ addu $v0, $a3, $t8 +/* 0D0CE8 7F09C1B8 8459000E */ lh $t9, 0xe($v0) +/* 0D0CEC 7F09C1BC 0003C400 */ sll $t8, $v1, 0x10 +/* 0D0CF0 7F09C1C0 1720001A */ bnez $t9, .L7F09C22C +/* 0D0CF4 7F09C1C4 0018CC03 */ sra $t9, $t8, 0x10 +/* 0D0CF8 7F09C1C8 03260019 */ multu $t9, $a2 +/* 0D0CFC 7F09C1CC 844B000C */ lh $t3, 0xc($v0) +/* 0D0D00 7F09C1D0 848C000C */ lh $t4, 0xc($a0) +/* 0D0D04 7F09C1D4 00032C00 */ sll $a1, $v1, 0x10 +/* 0D0D08 7F09C1D8 00057C03 */ sra $t7, $a1, 0x10 +/* 0D0D0C 7F09C1DC 016C6821 */ addu $t5, $t3, $t4 +/* 0D0D10 7F09C1E0 A44D000C */ sh $t5, 0xc($v0) +/* 0D0D14 7F09C1E4 848E0010 */ lh $t6, 0x10($a0) +/* 0D0D18 7F09C1E8 01E02825 */ move $a1, $t7 +/* 0D0D1C 7F09C1EC 00005812 */ mflo $t3 +/* 0D0D20 7F09C1F0 A44E0010 */ sh $t6, 0x10($v0) +/* 0D0D24 7F09C1F4 A489000E */ sh $t1, 0xe($a0) +/* 0D0D28 7F09C1F8 00EB6021 */ addu $t4, $a3, $t3 +/* 0D0D2C 7F09C1FC 85830010 */ lh $v1, 0x10($t4) +/* 0D0D30 7F09C200 0460000A */ bltz $v1, .L7F09C22C +/* 0D0D34 7F09C204 00000000 */ nop +/* 0D0D38 7F09C208 00660019 */ multu $v1, $a2 +/* 0D0D3C 7F09C20C 00006812 */ mflo $t5 +/* 0D0D40 7F09C210 00ED7021 */ addu $t6, $a3, $t5 +/* 0D0D44 7F09C214 10000005 */ b .L7F09C22C +/* 0D0D48 7F09C218 A5CF0012 */ sh $t7, 0x12($t6) +/* 0D0D4C 7F09C21C 84850010 */ lh $a1, 0x10($a0) +.L7F09C220: +/* 0D0D50 7F09C220 14A90002 */ bne $a1, $t1, .L7F09C22C +/* 0D0D54 7F09C224 00000000 */ nop +/* 0D0D58 7F09C228 24080001 */ li $t0, 1 +.L7F09C22C: +/* 0D0D5C 7F09C22C 1100FFB4 */ beqz $t0, .L7F09C100 +/* 0D0D60 7F09C230 00000000 */ nop +/* 0D0D64 7F09C234 8FBF001C */ lw $ra, 0x1c($sp) +.L7F09C238: +/* 0D0D68 7F09C238 8FB00018 */ lw $s0, 0x18($sp) +/* 0D0D6C 7F09C23C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0D0D70 7F09C240 03E00008 */ jr $ra +/* 0D0D74 7F09C244 00000000 */ nop +) +#endif + + + diff --git a/src/game/unk_09C250.c b/src/game/unk_09C250.c new file mode 100644 index 0000000..f179fdf --- /dev/null +++ b/src/game/unk_09C250.c @@ -0,0 +1,7222 @@ +#include "ultra64.h" +#include "game/unk_09C250.h" + +// bss +//CODE.bss:8007A100 +char dword_CODE_bss_8007A100[0x40]; +//CODE.bss:8007A140 +u32 *ptr_smoke_buf; +//CODE.bss:8007A144 +u32 *ptr_explosion_buf; +//CODE.bss:8007A148 +s32 max_casings; +//CODE.bss:8007A14C +u32 *ptr_ejected_casing_buf; +//CODE.bss:8007A150 +u32 *ptr_scorch_buf; +//CODE.bss:8007A154 +u32 *ptr_bullet_impact_buf; + +// data +//D:80040170 +s32 D_80040170 = 0; +//D:80040174 +s32 D_80040174 = 0; +//D:80040178 +f32 D_80040178 = 1.0; +//D:8004017C +u32 D_8004017C[] = { + 0x1003C, 0x630000, 0,0x80808000, + 0x3E99999A, 0xB40000, 0x1E0003C, 0x2D003C, + 0x3CA3D70A,0x50506000,0x3E99999A, 0xB40000, + 0x1E0003C, 0x320014,0x3C23D70A,0x80808000, + 0x3E99999A, 0xB40000, 0x280003C, 0x780064, + 0x3C23D70A,0xC0C0C000,0x3E99999A, 0xB40000, + 0x280003C, 0x3C0050,0x3CA3D70A,0x40404000, + 0x3E99999A, 0xB40000, 0x302003C, 0x3200BE, + 0x3E19999A,0x40404000,0x3E99999A, 0xB40000, + 0x384003C, 0x46012C,0x3C23D70A,0x40404000, + 0x3E99999A, 0xB40000, 0x3C003C, 0x8000F, + 0x3CF5C28F,0xFFFFFF00,0x3E99999A, 0xB40000, + 0x140001, 0x6001E,0x3CF5C28F,0xFFFFFF00, + 0x40000000, 0x1E0000, 0x190001, 0x70010, + 0x3CF5C28F,0xE0E0E000,0x40400000, 0x1E0000, + 0x384003C, 0x460384,0x3C23D70A,0x40404000, + 0x3E99999A, 0xB40000,0x3DCCCCCD,0x3DCCCCCD, + 0, 0,0x3DCCCCCD, 0, + 0, 0x10001,0x3F800000, 0, + 0x3DCCCCCD, 0, 0, 0, + 0, 0,0x3F800000,0x3F800000, + 0, 0,0x3F800000, 0, + 0, 0x1E0001,0x3F800000, 0xA0000, + 0x40A00000, 0,0x40000000,0x40C00000, + 0x7000000, 0,0x41A00000,0x41A00000, + 0, 0,0x41F00000,0x42480000, + 0x42480000, 0x500001,0x40400000, 0x280000, + 0x40C00000,0x40A00000,0x3F333333,0x40C00000, + 0x2B50000,0x3E000000,0x42480000,0x42480000, + 0, 0,0x42480000,0x42C80000, + 0x42C80000, 0x5A0001,0x40800000, 0x320000, + 0x40C00000,0x41200000,0x3F800000,0x40C00000, + 0x2B60000,0x3F000000,0x42700000,0x42A00000, + 0x3F800000,0x3E99999A,0x42C80000,0x43160000, + 0x438C0000, 0x780002,0x40A00000, 0x500000, + 0x41000000,0x41F00000,0x40000000,0x40C00000, + 0x1AC0000,0x3F800000,0x42700000,0x42F00000, + 0x3F800000,0x3E99999A,0x43160000,0x43480000, + 0x439B0000, 0x780002,0x40A00000, 0x500000, + 0x41000000,0x41F00000,0x40000000,0x40C00000, + 0x1AC0000,0x40000000,0x41A00000,0x41A00000, + 0, 0,0x41B00000,0x42200000, + 0x42200000, 0x500001,0x40400000, 0x280000, + 0x40C00000,0x40A00000,0x3F333333,0x40C00000, + 0x2B50000,0x3F000000,0x420C0000,0x42200000, + 0, 0,0x420C0000,0x428C0000, + 0x428C0000, 0x5A0001,0x40800000, 0x320000, + 0x40C00000,0x41200000,0x3F800000,0x40C00000, + 0x2B60000,0x3F800000,0x42480000,0x42A00000, + 0x3F800000,0x3E99999A,0x42480000,0x42C80000, + 0x435C0000, 0x780002,0x40A00000, 0x500000, + 0x41000000,0x41F00000,0x40000000,0x40C00000, + 0x1AC0000,0x40000000,0x42700000,0x42F00000, + 0x3F800000,0x3E99999A,0x42480000,0x43020000, + 0x43660000, 0x780002,0x40A00000, 0x500000, + 0x41000000,0x41F00000,0x40000000,0x40C00000, + 0x1AC0000,0x40000000,0x42200000,0x42200000, + 0x3ECCCCCD,0x3E4CCCCD,0x428C0000,0x42C80000, + 0x43340000, 0xAA0004,0x40A00000, 0x780000, + 0x40C00000,0x41F00000,0x40200000,0x40C00000, + 0x4AE0000,0x3F800000,0x42480000,0x42480000, + 0x3F19999A,0x3ECCCCCD,0x42C80000,0x43160000, + 0x43820000, 0xB40001,0x40800000, 0x960000, + 0x40C00000,0x41F00000,0x40400000,0x40C00000, + 0x4AC0000,0x40000000,0x428C0000,0x42700000, + 0x3F800000,0x3F19999A,0x43160000,0x43610000, + 0x43A00000, 0xB40002,0x40A00000, 0x960000, + 0x40C00000,0x41F00000,0x40800000,0x41400000, + 0x5AC0000,0x40800000,0x42A00000,0x42700000, + 0x40000000,0x3F333333,0x43480000,0x43960000, + 0x43F00000, 0xB40002,0x40A00000, 0xC80000, + 0x40C00000,0x41F00000,0x40C00000,0x41700000, + 0x6AD0000,0x40800000,0x42480000,0x42480000, + 0, 0,0x42F00000,0x43480000, + 0x43C80000, 0x960004,0x40800000, 0x960000, + 0x40C00000,0x41F00000,0x40400000,0x40C00000, + 0x4AD0000,0x40800000,0x3F800000,0x3F800000, + 0, 0,0x3F800000, 0, + 0, 0x10001,0x3F800000, 0x960000, + 0x40C00000,0x41F00000,0x40200000,0x40C00000, + 0x7AA0000, 0,0x3F800000,0x3F800000, + 0, 0,0x3F800000, 0, + 0, 0x10001,0x3F800000, 0x640000, + 0x40C00000,0x41F00000,0x40200000,0x40C00000, + 0x7AA0000, 0,0x42A00000,0x42700000, + 0x41700000,0x40A00000,0x44BB8000,0x45098000, + 0x45610000, 0x12C0001,0x40000000, 0, + 0, 0, 0, 0, + 0xAD0000,0x40800000,0x42A00000,0x42700000, + 0x40400000,0x3F800000,0x43960000,0x43E10000, + 0x44200000, 0x3C0001,0x40000000, 0, + 0, 0, 0, 0, + 0xAD0000,0x40800000,0x42B40000,0x42960000, + 0x40200000,0x3F5EB852,0x437A0000,0x43BB8000, + 0x44160000, 0xB40002,0x40A00000, 0xC80000, + 0x40C00000,0x41F00000,0x40C00000,0x41700000, + 0x6AD0000,0x40800000,0x43200000,0x42F00000, + 0x40C00000,0x40000000,0x44160000,0x43E10000, + 0x44200000, 0x3C0001,0x40000000, 0, + 0, 0, 0, 0, + 0xAD0000,0x40800000, 0x2000078, 0x2000120, + 0x20001C8, 0x2000270, 0x2000318, 0x20003C0, + 0x2000468, 0x2000510, 0x20005B8, 0x2000660, + 0x2000708, 0x20007B0, 0x2000858, 0x2000900, + 0x20009A8, 0, 0, 0 +}; +//D:8004080C +u32 D_8004080C[] = { + 0x41200000, 0x41200000, 0x1020800, 0x40C00000, 0x40C00000, 0x1020800, + 0x41000000, 0x41000000, 0x20800, 0x41A00000, 0x41A00000, 0x1020800, 0x40C00000, + 0x40C00000, 0x1020800, 0x41000000, 0x41000000, 0x1020800, 0x41400000, + 0x41400000, 0x1020800, 0x40C00000, 0x40C00000, 0x1020800, 0x41A00000, + 0x41A00000, 0x1020800, 0x41A00000, 0x41A00000, 0x1020800, 0x41A00000, + 0x41A00000, 0x1020800, 0x41A00000, 0x41A00000, 0x1020800, 0x41A00000, + 0x41A00000, 0x1020800, 0x41C00000, 0x41C00000, 0x1020800, 0x40C00000, + 0x40C00000, 0x1020100, 0x40C00000, 0x40C00000, 0x1020100, 0x41C00000, + 0x41C00000, 0x2020800, 0x40C00000, 0x40C00000, 0x1020100, 0x41000000, + 0x41000000, 0x1020100, 0x41400000, 0x41400000, 0x1020100, 0, 0, 0, 0 +}; + +//D:8004090C +u32 D_8004090C = 0xFFFFFFFF; +//D:80040910 +u32 D_80040910 = 0; +//D:80040914 +u32 D_80040914 = 0; +//D:80040918 +u32 D_80040918 = 0; +//D:8004091C +u32 D_8004091C = 0; +//D:80040920 +u32 D_80040920 = 0; +//D:80040924 +u32 D_80040924 = 0; +//D:80040928 +u32 D_80040928 = 0; +//D:8004092C +u32 D_8004092C = 0xDC; +//D:80040930 +u32 D_80040930 = 0; +//D:80040934 +u32 D_80040934 = 0; +//D:80040938 +u32 D_80040938 = 0; +//D:8004093C +u32 D_8004093C = 0xDC; + + +// rodata + + +#ifdef NONMATCHING +void sub_GAME_7F09C250(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_800576B0 +.word 0x497423fe /*999999.88*/ +glabel D_800576B4 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F09C250 +/* 0D0D80 7F09C250 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0D0D84 7F09C254 00077400 */ sll $t6, $a3, 0x10 +/* 0D0D88 7F09C258 000E7C03 */ sra $t7, $t6, 0x10 +/* 0D0D8C 7F09C25C 3C198004 */ lui $t9, %hi(D_8004017C+0x108) +/* 0D0D90 7F09C260 AFB10020 */ sw $s1, 0x20($sp) +/* 0D0D94 7F09C264 27390284 */ addiu $t9, %lo(D_8004017C+0x108) # addiu $t9, $t9, 0x284 +/* 0D0D98 7F09C268 000FC180 */ sll $t8, $t7, 6 +/* 0D0D9C 7F09C26C AFB30028 */ sw $s3, 0x28($sp) +/* 0D0DA0 7F09C270 AFA70054 */ sw $a3, 0x54($sp) +/* 0D0DA4 7F09C274 03198821 */ addu $s1, $t8, $t9 +/* 0D0DA8 7F09C278 24010010 */ li $at, 16 +/* 0D0DAC 7F09C27C 01E03825 */ move $a3, $t7 +/* 0D0DB0 7F09C280 00A09825 */ move $s3, $a1 +/* 0D0DB4 7F09C284 AFBF002C */ sw $ra, 0x2c($sp) +/* 0D0DB8 7F09C288 AFB20024 */ sw $s2, 0x24($sp) +/* 0D0DBC 7F09C28C AFB0001C */ sw $s0, 0x1c($sp) +/* 0D0DC0 7F09C290 AFA40048 */ sw $a0, 0x48($sp) +/* 0D0DC4 7F09C294 AFA60050 */ sw $a2, 0x50($sp) +/* 0D0DC8 7F09C298 AFB10044 */ sw $s1, 0x44($sp) +/* 0D0DCC 7F09C29C 11E10006 */ beq $t7, $at, .L7F09C2B8 +/* 0D0DD0 7F09C2A0 00004025 */ move $t0, $zero +/* 0D0DD4 7F09C2A4 24010001 */ li $at, 1 +/* 0D0DD8 7F09C2A8 11E10003 */ beq $t7, $at, .L7F09C2B8 +/* 0D0DDC 7F09C2AC 240E0006 */ li $t6, 6 +/* 0D0DE0 7F09C2B0 3C018004 */ lui $at, %hi(D_80040170) +/* 0D0DE4 7F09C2B4 AC2E0170 */ sw $t6, %lo(D_80040170)($at) +.L7F09C2B8: +/* 0D0DE8 7F09C2B8 3C048008 */ lui $a0, %hi(ptr_explosion_buf) +/* 0D0DEC 7F09C2BC 8C84A144 */ lw $a0, %lo(ptr_explosion_buf)($a0) +/* 0D0DF0 7F09C2C0 00001025 */ move $v0, $zero +/* 0D0DF4 7F09C2C4 00801825 */ move $v1, $a0 +.L7F09C2C8: +/* 0D0DF8 7F09C2C8 8C6F0000 */ lw $t7, ($v1) +/* 0D0DFC 7F09C2CC 55E00004 */ bnezl $t7, .L7F09C2E0 +/* 0D0E00 7F09C2D0 244203E0 */ addiu $v0, $v0, 0x3e0 +/* 0D0E04 7F09C2D4 10000005 */ b .L7F09C2EC +/* 0D0E08 7F09C2D8 00444021 */ addu $t0, $v0, $a0 +/* 0D0E0C 7F09C2DC 244203E0 */ addiu $v0, $v0, 0x3e0 +.L7F09C2E0: +/* 0D0E10 7F09C2E0 28411740 */ slti $at, $v0, 0x1740 +/* 0D0E14 7F09C2E4 1420FFF8 */ bnez $at, .L7F09C2C8 +/* 0D0E18 7F09C2E8 246303E0 */ addiu $v1, $v1, 0x3e0 +.L7F09C2EC: +/* 0D0E1C 7F09C2EC 51000129 */ beql $t0, $zero, .L7F09C794 +/* 0D0E20 7F09C2F0 8FBF002C */ lw $ra, 0x2c($sp) +/* 0D0E24 7F09C2F4 A7A70056 */ sh $a3, 0x56($sp) +/* 0D0E28 7F09C2F8 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 0D0E2C 7F09C2FC AFA80040 */ sw $t0, 0x40($sp) +/* 0D0E30 7F09C300 92230039 */ lbu $v1, 0x39($s1) +/* 0D0E34 7F09C304 8FA80040 */ lw $t0, 0x40($sp) +/* 0D0E38 7F09C308 00403825 */ move $a3, $v0 +/* 0D0E3C 7F09C30C 1860000E */ blez $v1, .L7F09C348 +/* 0D0E40 7F09C310 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0D0E44 7F09C314 00032C00 */ sll $a1, $v1, 0x10 +/* 0D0E48 7F09C318 0005C403 */ sra $t8, $a1, 0x10 +/* 0D0E4C 7F09C31C 03002825 */ move $a1, $t8 +/* 0D0E50 7F09C320 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0D0E54 7F09C324 00003025 */ move $a2, $zero +/* 0D0E58 7F09C328 AFA20030 */ sw $v0, 0x30($sp) +/* 0D0E5C 7F09C32C 0C002382 */ jal play_sfx_a1 +/* 0D0E60 7F09C330 AFA80040 */ sw $t0, 0x40($sp) +/* 0D0E64 7F09C334 00402025 */ move $a0, $v0 +/* 0D0E68 7F09C338 0FC14E84 */ jal sub_GAME_7F053A10 +/* 0D0E6C 7F09C33C 02602825 */ move $a1, $s3 +/* 0D0E70 7F09C340 8FA70030 */ lw $a3, 0x30($sp) +/* 0D0E74 7F09C344 8FA80040 */ lw $t0, 0x40($sp) +.L7F09C348: +/* 0D0E78 7F09C348 10E00111 */ beqz $a3, .L7F09C790 +/* 0D0E7C 7F09C34C 8FA60060 */ lw $a2, 0x60($sp) +/* 0D0E80 7F09C350 90EE0001 */ lbu $t6, 1($a3) +/* 0D0E84 7F09C354 24190007 */ li $t9, 7 +/* 0D0E88 7F09C358 A0F90000 */ sb $t9, ($a3) +/* 0D0E8C 7F09C35C 35CF0002 */ ori $t7, $t6, 2 +/* 0D0E90 7F09C360 A0EF0001 */ sb $t7, 1($a3) +/* 0D0E94 7F09C364 ACE80004 */ sw $t0, 4($a3) +/* 0D0E98 7F09C368 8FB80050 */ lw $t8, 0x50($sp) +/* 0D0E9C 7F09C36C 240500FF */ li $a1, 255 +/* 0D0EA0 7F09C370 00008025 */ move $s0, $zero +/* 0D0EA4 7F09C374 ACF80014 */ sw $t8, 0x14($a3) +/* 0D0EA8 7F09C378 C6640000 */ lwc1 $f4, ($s3) +/* 0D0EAC 7F09C37C 240E00FF */ li $t6, 255 +/* 0D0EB0 7F09C380 E4E40008 */ swc1 $f4, 8($a3) +/* 0D0EB4 7F09C384 C6660004 */ lwc1 $f6, 4($s3) +/* 0D0EB8 7F09C388 E4E6000C */ swc1 $f6, 0xc($a3) +/* 0D0EBC 7F09C38C C6680008 */ lwc1 $f8, 8($s3) +/* 0D0EC0 7F09C390 E4E80010 */ swc1 $f8, 0x10($a3) +/* 0D0EC4 7F09C394 90D90000 */ lbu $t9, ($a2) +/* 0D0EC8 7F09C398 10B9000C */ beq $a1, $t9, .L7F09C3CC +/* 0D0ECC 7F09C39C 00E01821 */ addu $v1, $a3, $zero +/* 0D0ED0 7F09C3A0 00C01021 */ addu $v0, $a2, $zero +/* 0D0ED4 7F09C3A4 90C40000 */ lbu $a0, ($a2) +/* 0D0ED8 7F09C3A8 24120007 */ li $s2, 7 +/* 0D0EDC 7F09C3AC A064002C */ sb $a0, 0x2c($v1) +.L7F09C3B0: +/* 0D0EE0 7F09C3B0 90440001 */ lbu $a0, 1($v0) +/* 0D0EE4 7F09C3B4 26100001 */ addiu $s0, $s0, 1 +/* 0D0EE8 7F09C3B8 24630001 */ addiu $v1, $v1, 1 +/* 0D0EEC 7F09C3BC 10A40003 */ beq $a1, $a0, .L7F09C3CC +/* 0D0EF0 7F09C3C0 24420001 */ addiu $v0, $v0, 1 +/* 0D0EF4 7F09C3C4 5612FFFA */ bnel $s0, $s2, .L7F09C3B0 +/* 0D0EF8 7F09C3C8 A064002C */ sb $a0, 0x2c($v1) +.L7F09C3CC: +/* 0D0EFC 7F09C3CC 00F07821 */ addu $t7, $a3, $s0 +/* 0D0F00 7F09C3D0 A1EE002C */ sb $t6, 0x2c($t7) +/* 0D0F04 7F09C3D4 8FB80064 */ lw $t8, 0x64($sp) +/* 0D0F08 7F09C3D8 24120007 */ li $s2, 7 +/* 0D0F0C 7F09C3DC 00008025 */ move $s0, $zero +/* 0D0F10 7F09C3E0 13000004 */ beqz $t8, .L7F09C3F4 +/* 0D0F14 7F09C3E4 00E02025 */ move $a0, $a3 +/* 0D0F18 7F09C3E8 90F90001 */ lbu $t9, 1($a3) +/* 0D0F1C 7F09C3EC 372E0008 */ ori $t6, $t9, 8 +/* 0D0F20 7F09C3F0 A0EE0001 */ sb $t6, 1($a3) +.L7F09C3F4: +/* 0D0F24 7F09C3F4 AFA70030 */ sw $a3, 0x30($sp) +/* 0D0F28 7F09C3F8 0FC0E93C */ jal sub_GAME_7F03A4F0 +/* 0D0F2C 7F09C3FC AFA80040 */ sw $t0, 0x40($sp) +/* 0D0F30 7F09C400 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 0D0F34 7F09C404 8FA40030 */ lw $a0, 0x30($sp) +/* 0D0F38 7F09C408 8FA80040 */ lw $t0, 0x40($sp) +/* 0D0F3C 7F09C40C 8FA20058 */ lw $v0, 0x58($sp) +/* 0D0F40 7F09C410 8FA70030 */ lw $a3, 0x30($sp) +/* 0D0F44 7F09C414 8FA90048 */ lw $t1, 0x48($sp) +/* 0D0F48 7F09C418 87AF0056 */ lh $t7, 0x56($sp) +/* 0D0F4C 7F09C41C 2418FFFF */ li $t8, -1 +/* 0D0F50 7F09C420 A50003C8 */ sh $zero, 0x3c8($t0) +/* 0D0F54 7F09C424 A51803CA */ sh $t8, 0x3ca($t0) +/* 0D0F58 7F09C428 A10203CD */ sb $v0, 0x3cd($t0) +/* 0D0F5C 7F09C42C AD070000 */ sw $a3, ($t0) +/* 0D0F60 7F09C430 AD090004 */ sw $t1, 4($t0) +/* 0D0F64 7F09C434 A10F03CC */ sb $t7, 0x3cc($t0) +/* 0D0F68 7F09C438 8FB9005C */ lw $t9, 0x5c($sp) +/* 0D0F6C 7F09C43C 3C018005 */ lui $at, %hi(D_800576B0) +/* 0D0F70 7F09C440 1040002D */ beqz $v0, .L7F09C4F8 +/* 0D0F74 7F09C444 A11903CE */ sb $t9, 0x3ce($t0) +/* 0D0F78 7F09C448 51200019 */ beql $t1, $zero, .L7F09C4B0 +/* 0D0F7C 7F09C44C C6660000 */ lwc1 $f6, ($s3) +/* 0D0F80 7F09C450 8D2E0014 */ lw $t6, 0x14($t1) +/* 0D0F84 7F09C454 51C00016 */ beql $t6, $zero, .L7F09C4B0 +/* 0D0F88 7F09C458 C6660000 */ lwc1 $f6, ($s3) +/* 0D0F8C 7F09C45C C52A0008 */ lwc1 $f10, 8($t1) +/* 0D0F90 7F09C460 E50A03D0 */ swc1 $f10, 0x3d0($t0) +/* 0D0F94 7F09C464 8D260010 */ lw $a2, 0x10($t1) +/* 0D0F98 7F09C468 8D250008 */ lw $a1, 8($t1) +/* 0D0F9C 7F09C46C 8D240014 */ lw $a0, 0x14($t1) +/* 0D0FA0 7F09C470 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0D0FA4 7F09C474 AFA80040 */ sw $t0, 0x40($sp) +/* 0D0FA8 7F09C478 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0D0FAC 7F09C47C 44818000 */ mtc1 $at, $f16 +/* 0D0FB0 7F09C480 8FA80040 */ lw $t0, 0x40($sp) +/* 0D0FB4 7F09C484 8FA90048 */ lw $t1, 0x48($sp) +/* 0D0FB8 7F09C488 46100480 */ add.s $f18, $f0, $f16 +/* 0D0FBC 7F09C48C E51203D4 */ swc1 $f18, 0x3d4($t0) +/* 0D0FC0 7F09C490 C5240010 */ lwc1 $f4, 0x10($t1) +/* 0D0FC4 7F09C494 E50403D8 */ swc1 $f4, 0x3d8($t0) +/* 0D0FC8 7F09C498 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 0D0FCC 7F09C49C 8D240014 */ lw $a0, 0x14($t1) +/* 0D0FD0 7F09C4A0 8FA80040 */ lw $t0, 0x40($sp) +/* 0D0FD4 7F09C4A4 10000016 */ b .L7F09C500 +/* 0D0FD8 7F09C4A8 A50203DC */ sh $v0, 0x3dc($t0) +/* 0D0FDC 7F09C4AC C6660000 */ lwc1 $f6, ($s3) +.L7F09C4B0: +/* 0D0FE0 7F09C4B0 E50603D0 */ swc1 $f6, 0x3d0($t0) +/* 0D0FE4 7F09C4B4 8E660008 */ lw $a2, 8($s3) +/* 0D0FE8 7F09C4B8 8E650000 */ lw $a1, ($s3) +/* 0D0FEC 7F09C4BC AFA80040 */ sw $t0, 0x40($sp) +/* 0D0FF0 7F09C4C0 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0D0FF4 7F09C4C4 8FA40050 */ lw $a0, 0x50($sp) +/* 0D0FF8 7F09C4C8 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0D0FFC 7F09C4CC 44814000 */ mtc1 $at, $f8 +/* 0D1000 7F09C4D0 8FA80040 */ lw $t0, 0x40($sp) +/* 0D1004 7F09C4D4 46080280 */ add.s $f10, $f0, $f8 +/* 0D1008 7F09C4D8 E50A03D4 */ swc1 $f10, 0x3d4($t0) +/* 0D100C 7F09C4DC C6700008 */ lwc1 $f16, 8($s3) +/* 0D1010 7F09C4E0 E51003D8 */ swc1 $f16, 0x3d8($t0) +/* 0D1014 7F09C4E4 0FC2CBF6 */ jal sub_GAME_7F0B2FD8 +/* 0D1018 7F09C4E8 8FA40050 */ lw $a0, 0x50($sp) +/* 0D101C 7F09C4EC 8FA80040 */ lw $t0, 0x40($sp) +/* 0D1020 7F09C4F0 10000003 */ b .L7F09C500 +/* 0D1024 7F09C4F4 A50203DC */ sh $v0, 0x3dc($t0) +.L7F09C4F8: +/* 0D1028 7F09C4F8 C43276B0 */ lwc1 $f18, %lo(D_800576B0)($at) +/* 0D102C 7F09C4FC E51203D0 */ swc1 $f18, 0x3d0($t0) +.L7F09C500: +/* 0D1030 7F09C500 0C002914 */ jal get_random_value +/* 0D1034 7F09C504 AFA80040 */ sw $t0, 0x40($sp) +/* 0D1038 7F09C508 44822000 */ mtc1 $v0, $f4 +/* 0D103C 7F09C50C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1040 7F09C510 04410004 */ bgez $v0, .L7F09C524 +/* 0D1044 7F09C514 468021A0 */ cvt.s.w $f6, $f4 +/* 0D1048 7F09C518 44814000 */ mtc1 $at, $f8 +/* 0D104C 7F09C51C 00000000 */ nop +/* 0D1050 7F09C520 46083180 */ add.s $f6, $f6, $f8 +.L7F09C524: +/* 0D1054 7F09C524 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D1058 7F09C528 44815000 */ mtc1 $at, $f10 +/* 0D105C 7F09C52C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D1060 7F09C530 44819000 */ mtc1 $at, $f18 +/* 0D1064 7F09C534 460A3402 */ mul.s $f16, $f6, $f10 +/* 0D1068 7F09C538 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D106C 7F09C53C 44814000 */ mtc1 $at, $f8 +/* 0D1070 7F09C540 C62A0010 */ lwc1 $f10, 0x10($s1) +/* 0D1074 7F09C544 46128102 */ mul.s $f4, $f16, $f18 +/* 0D1078 7F09C548 46082180 */ add.s $f6, $f4, $f8 +/* 0D107C 7F09C54C 460A3402 */ mul.s $f16, $f6, $f10 +/* 0D1080 7F09C550 0C002914 */ jal get_random_value +/* 0D1084 7F09C554 E7B0003C */ swc1 $f16, 0x3c($sp) +/* 0D1088 7F09C558 44829000 */ mtc1 $v0, $f18 +/* 0D108C 7F09C55C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1090 7F09C560 04410004 */ bgez $v0, .L7F09C574 +/* 0D1094 7F09C564 46809120 */ cvt.s.w $f4, $f18 +/* 0D1098 7F09C568 44814000 */ mtc1 $at, $f8 +/* 0D109C 7F09C56C 00000000 */ nop +/* 0D10A0 7F09C570 46082100 */ add.s $f4, $f4, $f8 +.L7F09C574: +/* 0D10A4 7F09C574 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D10A8 7F09C578 44813000 */ mtc1 $at, $f6 +/* 0D10AC 7F09C57C 3C018005 */ lui $at, %hi(D_800576B4) +/* 0D10B0 7F09C580 C43076B4 */ lwc1 $f16, %lo(D_800576B4)($at) +/* 0D10B4 7F09C584 46062282 */ mul.s $f10, $f4, $f6 +/* 0D10B8 7F09C588 00000000 */ nop +/* 0D10BC 7F09C58C 46105302 */ mul.s $f12, $f10, $f16 +/* 0D10C0 7F09C590 0FC15FA8 */ jal cosf +/* 0D10C4 7F09C594 E7AC0038 */ swc1 $f12, 0x38($sp) +/* 0D10C8 7F09C598 C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 0D10CC 7F09C59C 8FA80040 */ lw $t0, 0x40($sp) +/* 0D10D0 7F09C5A0 46120202 */ mul.s $f8, $f0, $f18 +/* 0D10D4 7F09C5A4 E5080014 */ swc1 $f8, 0x14($t0) +/* 0D10D8 7F09C5A8 0FC15FAB */ jal sinf +/* 0D10DC 7F09C5AC C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 0D10E0 7F09C5B0 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0D10E4 7F09C5B4 8FA80040 */ lw $t0, 0x40($sp) +/* 0D10E8 7F09C5B8 240F0001 */ li $t7, 1 +/* 0D10EC 7F09C5BC 46040182 */ mul.s $f6, $f0, $f4 +/* 0D10F0 7F09C5C0 A50F001C */ sh $t7, 0x1c($t0) +/* 0D10F4 7F09C5C4 E5060018 */ swc1 $f6, 0x18($t0) +/* 0D10F8 7F09C5C8 C66A0000 */ lwc1 $f10, ($s3) +/* 0D10FC 7F09C5CC E50A0008 */ swc1 $f10, 8($t0) +/* 0D1100 7F09C5D0 C6700004 */ lwc1 $f16, 4($s3) +/* 0D1104 7F09C5D4 E510000C */ swc1 $f16, 0xc($t0) +/* 0D1108 7F09C5D8 C6720008 */ lwc1 $f18, 8($s3) +/* 0D110C 7F09C5DC E5120010 */ swc1 $f18, 0x10($t0) +/* 0D1110 7F09C5E0 86380024 */ lh $t8, 0x24($s1) +/* 0D1114 7F09C5E4 1B00000E */ blez $t8, .L7F09C620 +/* 0D1118 7F09C5E8 00000000 */ nop +/* 0D111C 7F09C5EC C6280028 */ lwc1 $f8, 0x28($s1) +.L7F09C5F0: +/* 0D1120 7F09C5F0 8E25002C */ lw $a1, 0x2c($s1) +/* 0D1124 7F09C5F4 8E260030 */ lw $a2, 0x30($s1) +/* 0D1128 7F09C5F8 8E270034 */ lw $a3, 0x34($s1) +/* 0D112C 7F09C5FC 02602025 */ move $a0, $s3 +/* 0D1130 7F09C600 0FC27C95 */ jal sub_GAME_7F09F254 +/* 0D1134 7F09C604 E7A80010 */ swc1 $f8, 0x10($sp) +/* 0D1138 7F09C608 8FB90044 */ lw $t9, 0x44($sp) +/* 0D113C 7F09C60C 26100001 */ addiu $s0, $s0, 1 +/* 0D1140 7F09C610 872E0024 */ lh $t6, 0x24($t9) +/* 0D1144 7F09C614 020E082A */ slt $at, $s0, $t6 +/* 0D1148 7F09C618 5420FFF5 */ bnezl $at, .L7F09C5F0 +/* 0D114C 7F09C61C C6280028 */ lwc1 $f8, 0x28($s1) +.L7F09C620: +/* 0D1150 7F09C620 0FC26919 */ jal get_num_players +/* 0D1154 7F09C624 00000000 */ nop +/* 0D1158 7F09C628 28410002 */ slti $at, $v0, 2 +/* 0D115C 7F09C62C 14200058 */ bnez $at, .L7F09C790 +/* 0D1160 7F09C630 00003025 */ move $a2, $zero +/* 0D1164 7F09C634 3C0D8008 */ lui $t5, %hi(ptr_smoke_buf) +/* 0D1168 7F09C638 3C0B8004 */ lui $t3, %hi(D_8004017C) +/* 0D116C 7F09C63C 256B017C */ addiu $t3, %lo(D_8004017C) # addiu $t3, $t3, 0x17c +/* 0D1170 7F09C640 25ADA140 */ addiu $t5, %lo(ptr_smoke_buf) # addiu $t5, $t5, -0x5ec0 +/* 0D1174 7F09C644 241F1FE0 */ li $ra, 8160 +/* 0D1178 7F09C648 240C0018 */ li $t4, 24 +/* 0D117C 7F09C64C 240A0009 */ li $t2, 9 +/* 0D1180 7F09C650 24090008 */ li $t1, 8 +/* 0D1184 7F09C654 8DA30000 */ lw $v1, ($t5) +.L7F09C658: +/* 0D1188 7F09C658 00662821 */ addu $a1, $v1, $a2 +/* 0D118C 7F09C65C 8CAF0000 */ lw $t7, ($a1) +/* 0D1190 7F09C660 00C33821 */ addu $a3, $a2, $v1 +/* 0D1194 7F09C664 51E00011 */ beql $t7, $zero, .L7F09C6AC +/* 0D1198 7F09C668 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D119C 7F09C66C 84E20006 */ lh $v0, 6($a3) +/* 0D11A0 7F09C670 5242000E */ beql $s2, $v0, .L7F09C6AC +/* 0D11A4 7F09C674 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D11A8 7F09C678 84E80006 */ lh $t0, 6($a3) +/* 0D11AC 7F09C67C 5128000B */ beql $t1, $t0, .L7F09C6AC +/* 0D11B0 7F09C680 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D11B4 7F09C684 51480009 */ beql $t2, $t0, .L7F09C6AC +/* 0D11B8 7F09C688 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D11BC 7F09C68C 004C0019 */ multu $v0, $t4 +/* 0D11C0 7F09C690 0000C012 */ mflo $t8 +/* 0D11C4 7F09C694 0178C821 */ addu $t9, $t3, $t8 +/* 0D11C8 7F09C698 872E0000 */ lh $t6, ($t9) +/* 0D11CC 7F09C69C A4EE0004 */ sh $t6, 4($a3) +/* 0D11D0 7F09C6A0 8DA30000 */ lw $v1, ($t5) +/* 0D11D4 7F09C6A4 00662821 */ addu $a1, $v1, $a2 +/* 0D11D8 7F09C6A8 8CAF0198 */ lw $t7, 0x198($a1) +.L7F09C6AC: +/* 0D11DC 7F09C6AC 00C32021 */ addu $a0, $a2, $v1 +/* 0D11E0 7F09C6B0 51E00011 */ beql $t7, $zero, .L7F09C6F8 +/* 0D11E4 7F09C6B4 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D11E8 7F09C6B8 8482019E */ lh $v0, 0x19e($a0) +/* 0D11EC 7F09C6BC 24840198 */ addiu $a0, $a0, 0x198 +/* 0D11F0 7F09C6C0 5242000D */ beql $s2, $v0, .L7F09C6F8 +/* 0D11F4 7F09C6C4 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D11F8 7F09C6C8 5122000B */ beql $t1, $v0, .L7F09C6F8 +/* 0D11FC 7F09C6CC 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D1200 7F09C6D0 51420009 */ beql $t2, $v0, .L7F09C6F8 +/* 0D1204 7F09C6D4 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D1208 7F09C6D8 004C0019 */ multu $v0, $t4 +/* 0D120C 7F09C6DC 0000C012 */ mflo $t8 +/* 0D1210 7F09C6E0 0178C821 */ addu $t9, $t3, $t8 +/* 0D1214 7F09C6E4 872E0000 */ lh $t6, ($t9) +/* 0D1218 7F09C6E8 A48E0004 */ sh $t6, 4($a0) +/* 0D121C 7F09C6EC 8DA30000 */ lw $v1, ($t5) +/* 0D1220 7F09C6F0 00662821 */ addu $a1, $v1, $a2 +/* 0D1224 7F09C6F4 8CAF0330 */ lw $t7, 0x330($a1) +.L7F09C6F8: +/* 0D1228 7F09C6F8 00C32021 */ addu $a0, $a2, $v1 +/* 0D122C 7F09C6FC 51E00011 */ beql $t7, $zero, .L7F09C744 +/* 0D1230 7F09C700 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D1234 7F09C704 84820336 */ lh $v0, 0x336($a0) +/* 0D1238 7F09C708 24840330 */ addiu $a0, $a0, 0x330 +/* 0D123C 7F09C70C 5242000D */ beql $s2, $v0, .L7F09C744 +/* 0D1240 7F09C710 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D1244 7F09C714 5122000B */ beql $t1, $v0, .L7F09C744 +/* 0D1248 7F09C718 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D124C 7F09C71C 51420009 */ beql $t2, $v0, .L7F09C744 +/* 0D1250 7F09C720 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D1254 7F09C724 004C0019 */ multu $v0, $t4 +/* 0D1258 7F09C728 0000C012 */ mflo $t8 +/* 0D125C 7F09C72C 0178C821 */ addu $t9, $t3, $t8 +/* 0D1260 7F09C730 872E0000 */ lh $t6, ($t9) +/* 0D1264 7F09C734 A48E0004 */ sh $t6, 4($a0) +/* 0D1268 7F09C738 8DA30000 */ lw $v1, ($t5) +/* 0D126C 7F09C73C 00662821 */ addu $a1, $v1, $a2 +/* 0D1270 7F09C740 8CAF04C8 */ lw $t7, 0x4c8($a1) +.L7F09C744: +/* 0D1274 7F09C744 00C32021 */ addu $a0, $a2, $v1 +/* 0D1278 7F09C748 51E0000F */ beql $t7, $zero, .L7F09C788 +/* 0D127C 7F09C74C 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D1280 7F09C750 848204CE */ lh $v0, 0x4ce($a0) +/* 0D1284 7F09C754 248404C8 */ addiu $a0, $a0, 0x4c8 +/* 0D1288 7F09C758 5242000B */ beql $s2, $v0, .L7F09C788 +/* 0D128C 7F09C75C 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D1290 7F09C760 51220009 */ beql $t1, $v0, .L7F09C788 +/* 0D1294 7F09C764 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D1298 7F09C768 51420007 */ beql $t2, $v0, .L7F09C788 +/* 0D129C 7F09C76C 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D12A0 7F09C770 004C0019 */ multu $v0, $t4 +/* 0D12A4 7F09C774 0000C012 */ mflo $t8 +/* 0D12A8 7F09C778 0178C821 */ addu $t9, $t3, $t8 +/* 0D12AC 7F09C77C 872E0000 */ lh $t6, ($t9) +/* 0D12B0 7F09C780 A48E0004 */ sh $t6, 4($a0) +/* 0D12B4 7F09C784 24C60660 */ addiu $a2, $a2, 0x660 +.L7F09C788: +/* 0D12B8 7F09C788 54DFFFB3 */ bnel $a2, $ra, .L7F09C658 +/* 0D12BC 7F09C78C 8DA30000 */ lw $v1, ($t5) +.L7F09C790: +/* 0D12C0 7F09C790 8FBF002C */ lw $ra, 0x2c($sp) +.L7F09C794: +/* 0D12C4 7F09C794 8FB0001C */ lw $s0, 0x1c($sp) +/* 0D12C8 7F09C798 8FB10020 */ lw $s1, 0x20($sp) +/* 0D12CC 7F09C79C 8FB20024 */ lw $s2, 0x24($sp) +/* 0D12D0 7F09C7A0 8FB30028 */ lw $s3, 0x28($sp) +/* 0D12D4 7F09C7A4 03E00008 */ jr $ra +/* 0D12D8 7F09C7A8 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_800576B0 +.word 0x497423fe /*999999.88*/ +glabel D_800576B4 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F09C250 +/* 0D1960 7F09CDF0 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0D1964 7F09CDF4 AFA7005C */ sw $a3, 0x5c($sp) +/* 0D1968 7F09CDF8 87AE005E */ lh $t6, 0x5e($sp) +/* 0D196C 7F09CDFC 3C088008 */ lui $t0, %hi(ptr_explosion_buf) # $t0, 0x8008 +/* 0D1970 7F09CE00 8D08A1B4 */ lw $t0, %lo(ptr_explosion_buf)($t0) +/* 0D1974 7F09CE04 3C188004 */ lui $t8, %hi(D_8004017C+0x108) # $t8, 0x8004 +/* 0D1978 7F09CE08 AFB10024 */ sw $s1, 0x24($sp) +/* 0D197C 7F09CE0C 271802B4 */ addiu $t8, %lo(D_8004017C+0x108) # addiu $t8, $t8, 0x2b4 +/* 0D1980 7F09CE10 000E7980 */ sll $t7, $t6, 6 +/* 0D1984 7F09CE14 AFB40030 */ sw $s4, 0x30($sp) +/* 0D1988 7F09CE18 AFB3002C */ sw $s3, 0x2c($sp) +/* 0D198C 7F09CE1C 01F88821 */ addu $s1, $t7, $t8 +/* 0D1990 7F09CE20 00A09825 */ move $s3, $a1 +/* 0D1994 7F09CE24 AFBF0034 */ sw $ra, 0x34($sp) +/* 0D1998 7F09CE28 AFB20028 */ sw $s2, 0x28($sp) +/* 0D199C 7F09CE2C AFB00020 */ sw $s0, 0x20($sp) +/* 0D19A0 7F09CE30 AFA40050 */ sw $a0, 0x50($sp) +/* 0D19A4 7F09CE34 AFA60058 */ sw $a2, 0x58($sp) +/* 0D19A8 7F09CE38 AFB1004C */ sw $s1, 0x4c($sp) +/* 0D19AC 7F09CE3C 0000A025 */ move $s4, $zero +/* 0D19B0 7F09CE40 00001025 */ move $v0, $zero +/* 0D19B4 7F09CE44 01001825 */ move $v1, $t0 +.Ljp7F09CE48: +/* 0D19B8 7F09CE48 8C790000 */ lw $t9, ($v1) +/* 0D19BC 7F09CE4C 57200004 */ bnezl $t9, .Ljp7F09CE60 +/* 0D19C0 7F09CE50 244203E0 */ addiu $v0, $v0, 0x3e0 +/* 0D19C4 7F09CE54 10000005 */ b .Ljp7F09CE6C +/* 0D19C8 7F09CE58 0048A021 */ addu $s4, $v0, $t0 +/* 0D19CC 7F09CE5C 244203E0 */ addiu $v0, $v0, 0x3e0 +.Ljp7F09CE60: +/* 0D19D0 7F09CE60 28411740 */ slti $at, $v0, 0x1740 +/* 0D19D4 7F09CE64 1420FFF8 */ bnez $at, .Ljp7F09CE48 +/* 0D19D8 7F09CE68 246303E0 */ addiu $v1, $v1, 0x3e0 +.Ljp7F09CE6C: +/* 0D19DC 7F09CE6C 52800124 */ beql $s4, $zero, .Ljp7F09D300 +/* 0D19E0 7F09CE70 8FBF0034 */ lw $ra, 0x34($sp) +/* 0D19E4 7F09CE74 0FC0E9CC */ jal remove_last_obj_pos_data_entry +/* 0D19E8 7F09CE78 00000000 */ nop +/* 0D19EC 7F09CE7C 87AE005E */ lh $t6, 0x5e($sp) +/* 0D19F0 7F09CE80 24010010 */ li $at, 16 +/* 0D19F4 7F09CE84 00403825 */ move $a3, $v0 +/* 0D19F8 7F09CE88 11C10006 */ beq $t6, $at, .Ljp7F09CEA4 +/* 0D19FC 7F09CE8C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0D1A00 7F09CE90 24010001 */ li $at, 1 +/* 0D1A04 7F09CE94 11C10003 */ beq $t6, $at, .Ljp7F09CEA4 +/* 0D1A08 7F09CE98 240F0006 */ li $t7, 6 +/* 0D1A0C 7F09CE9C 3C018004 */ lui $at, %hi(D_80040170) # $at, 0x8004 +/* 0D1A10 7F09CEA0 AC2F01A0 */ sw $t7, %lo(D_80040170)($at) +.Ljp7F09CEA4: +/* 0D1A14 7F09CEA4 92220039 */ lbu $v0, 0x39($s1) +/* 0D1A18 7F09CEA8 00003025 */ move $a2, $zero +/* 0D1A1C 7F09CEAC 1840000A */ blez $v0, .Ljp7F09CED8 +/* 0D1A20 7F09CEB0 00022C00 */ sll $a1, $v0, 0x10 +/* 0D1A24 7F09CEB4 0005C403 */ sra $t8, $a1, 0x10 +/* 0D1A28 7F09CEB8 03002825 */ move $a1, $t8 +/* 0D1A2C 7F09CEBC 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0D1A30 7F09CEC0 0C002386 */ jal play_sfx_a1 +/* 0D1A34 7F09CEC4 AFA70038 */ sw $a3, 0x38($sp) +/* 0D1A38 7F09CEC8 00402025 */ move $a0, $v0 +/* 0D1A3C 7F09CECC 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 0D1A40 7F09CED0 02602825 */ move $a1, $s3 +/* 0D1A44 7F09CED4 8FA70038 */ lw $a3, 0x38($sp) +.Ljp7F09CED8: +/* 0D1A48 7F09CED8 10E00108 */ beqz $a3, .Ljp7F09D2FC +/* 0D1A4C 7F09CEDC 8FA60068 */ lw $a2, 0x68($sp) +/* 0D1A50 7F09CEE0 90EE0001 */ lbu $t6, 1($a3) +/* 0D1A54 7F09CEE4 24190007 */ li $t9, 7 +/* 0D1A58 7F09CEE8 A0F90000 */ sb $t9, ($a3) +/* 0D1A5C 7F09CEEC 35CF0002 */ ori $t7, $t6, 2 +/* 0D1A60 7F09CEF0 A0EF0001 */ sb $t7, 1($a3) +/* 0D1A64 7F09CEF4 ACF40004 */ sw $s4, 4($a3) +/* 0D1A68 7F09CEF8 8FB80058 */ lw $t8, 0x58($sp) +/* 0D1A6C 7F09CEFC 240500FF */ li $a1, 255 +/* 0D1A70 7F09CF00 00008025 */ move $s0, $zero +/* 0D1A74 7F09CF04 ACF80014 */ sw $t8, 0x14($a3) +/* 0D1A78 7F09CF08 C6640000 */ lwc1 $f4, ($s3) +/* 0D1A7C 7F09CF0C 240E00FF */ li $t6, 255 +/* 0D1A80 7F09CF10 E4E40008 */ swc1 $f4, 8($a3) +/* 0D1A84 7F09CF14 C6660004 */ lwc1 $f6, 4($s3) +/* 0D1A88 7F09CF18 E4E6000C */ swc1 $f6, 0xc($a3) +/* 0D1A8C 7F09CF1C C6680008 */ lwc1 $f8, 8($s3) +/* 0D1A90 7F09CF20 E4E80010 */ swc1 $f8, 0x10($a3) +/* 0D1A94 7F09CF24 90D90000 */ lbu $t9, ($a2) +/* 0D1A98 7F09CF28 10B9000C */ beq $a1, $t9, .Ljp7F09CF5C +/* 0D1A9C 7F09CF2C 00E01821 */ addu $v1, $a3, $zero +/* 0D1AA0 7F09CF30 00C01021 */ addu $v0, $a2, $zero +/* 0D1AA4 7F09CF34 90C40000 */ lbu $a0, ($a2) +/* 0D1AA8 7F09CF38 24120007 */ li $s2, 7 +/* 0D1AAC 7F09CF3C A064002C */ sb $a0, 0x2c($v1) +.Ljp7F09CF40: +/* 0D1AB0 7F09CF40 90440001 */ lbu $a0, 1($v0) +/* 0D1AB4 7F09CF44 26100001 */ addiu $s0, $s0, 1 +/* 0D1AB8 7F09CF48 24630001 */ addiu $v1, $v1, 1 +/* 0D1ABC 7F09CF4C 10A40003 */ beq $a1, $a0, .Ljp7F09CF5C +/* 0D1AC0 7F09CF50 24420001 */ addiu $v0, $v0, 1 +/* 0D1AC4 7F09CF54 5612FFFA */ bnel $s0, $s2, .Ljp7F09CF40 +/* 0D1AC8 7F09CF58 A064002C */ sb $a0, 0x2c($v1) +.Ljp7F09CF5C: +/* 0D1ACC 7F09CF5C 00F07821 */ addu $t7, $a3, $s0 +/* 0D1AD0 7F09CF60 A1EE002C */ sb $t6, 0x2c($t7) +/* 0D1AD4 7F09CF64 8FB8006C */ lw $t8, 0x6c($sp) +/* 0D1AD8 7F09CF68 24120007 */ li $s2, 7 +/* 0D1ADC 7F09CF6C 00008025 */ move $s0, $zero +/* 0D1AE0 7F09CF70 13000004 */ beqz $t8, .Ljp7F09CF84 +/* 0D1AE4 7F09CF74 00E02025 */ move $a0, $a3 +/* 0D1AE8 7F09CF78 90F90001 */ lbu $t9, 1($a3) +/* 0D1AEC 7F09CF7C 372E0008 */ ori $t6, $t9, 8 +/* 0D1AF0 7F09CF80 A0EE0001 */ sb $t6, 1($a3) +.Ljp7F09CF84: +/* 0D1AF4 7F09CF84 0FC0E9FC */ jal sub_GAME_7F03A4F0 +/* 0D1AF8 7F09CF88 AFA70038 */ sw $a3, 0x38($sp) +/* 0D1AFC 7F09CF8C 0FC0E9C1 */ jal set_stateflag_0x04_for_posdata +/* 0D1B00 7F09CF90 8FA40038 */ lw $a0, 0x38($sp) +/* 0D1B04 7F09CF94 8FA20060 */ lw $v0, 0x60($sp) +/* 0D1B08 7F09CF98 8FA70038 */ lw $a3, 0x38($sp) +/* 0D1B0C 7F09CF9C 8FA80050 */ lw $t0, 0x50($sp) +/* 0D1B10 7F09CFA0 87AF005E */ lh $t7, 0x5e($sp) +/* 0D1B14 7F09CFA4 2418FFFF */ li $t8, -1 +/* 0D1B18 7F09CFA8 A68003C8 */ sh $zero, 0x3c8($s4) +/* 0D1B1C 7F09CFAC A69803CA */ sh $t8, 0x3ca($s4) +/* 0D1B20 7F09CFB0 A28203CD */ sb $v0, 0x3cd($s4) +/* 0D1B24 7F09CFB4 AE870000 */ sw $a3, ($s4) +/* 0D1B28 7F09CFB8 AE880004 */ sw $t0, 4($s4) +/* 0D1B2C 7F09CFBC A28F03CC */ sb $t7, 0x3cc($s4) +/* 0D1B30 7F09CFC0 8FB90064 */ lw $t9, 0x64($sp) +/* 0D1B34 7F09CFC4 3C018005 */ lui $at, %hi(D_800576B0) # $at, 0x8005 +/* 0D1B38 7F09CFC8 10400028 */ beqz $v0, .Ljp7F09D06C +/* 0D1B3C 7F09CFCC A29903CE */ sb $t9, 0x3ce($s4) +/* 0D1B40 7F09CFD0 51000016 */ beql $t0, $zero, .Ljp7F09D02C +/* 0D1B44 7F09CFD4 C6660000 */ lwc1 $f6, ($s3) +/* 0D1B48 7F09CFD8 8D0E0014 */ lw $t6, 0x14($t0) +/* 0D1B4C 7F09CFDC 51C00013 */ beql $t6, $zero, .Ljp7F09D02C +/* 0D1B50 7F09CFE0 C6660000 */ lwc1 $f6, ($s3) +/* 0D1B54 7F09CFE4 C50A0008 */ lwc1 $f10, 8($t0) +/* 0D1B58 7F09CFE8 E68A03D0 */ swc1 $f10, 0x3d0($s4) +/* 0D1B5C 7F09CFEC 8D060010 */ lw $a2, 0x10($t0) +/* 0D1B60 7F09CFF0 8D050008 */ lw $a1, 8($t0) +/* 0D1B64 7F09CFF4 0FC2CD48 */ jal sub_GAME_7F0B2970 +/* 0D1B68 7F09CFF8 8D040014 */ lw $a0, 0x14($t0) +/* 0D1B6C 7F09CFFC 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0D1B70 7F09D000 44818000 */ mtc1 $at, $f16 +/* 0D1B74 7F09D004 8FA80050 */ lw $t0, 0x50($sp) +/* 0D1B78 7F09D008 46100480 */ add.s $f18, $f0, $f16 +/* 0D1B7C 7F09D00C E69203D4 */ swc1 $f18, 0x3d4($s4) +/* 0D1B80 7F09D010 C5040010 */ lwc1 $f4, 0x10($t0) +/* 0D1B84 7F09D014 E68403D8 */ swc1 $f4, 0x3d8($s4) +/* 0D1B88 7F09D018 0FC2CEE2 */ jal sub_GAME_7F0B2FD8 +/* 0D1B8C 7F09D01C 8D040014 */ lw $a0, 0x14($t0) +/* 0D1B90 7F09D020 10000014 */ b .Ljp7F09D074 +/* 0D1B94 7F09D024 A68203DC */ sh $v0, 0x3dc($s4) +/* 0D1B98 7F09D028 C6660000 */ lwc1 $f6, ($s3) +.Ljp7F09D02C: +/* 0D1B9C 7F09D02C E68603D0 */ swc1 $f6, 0x3d0($s4) +/* 0D1BA0 7F09D030 8E660008 */ lw $a2, 8($s3) +/* 0D1BA4 7F09D034 8E650000 */ lw $a1, ($s3) +/* 0D1BA8 7F09D038 0FC2CD48 */ jal sub_GAME_7F0B2970 +/* 0D1BAC 7F09D03C 8FA40058 */ lw $a0, 0x58($sp) +/* 0D1BB0 7F09D040 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0D1BB4 7F09D044 44814000 */ mtc1 $at, $f8 +/* 0D1BB8 7F09D048 00000000 */ nop +/* 0D1BBC 7F09D04C 46080280 */ add.s $f10, $f0, $f8 +/* 0D1BC0 7F09D050 E68A03D4 */ swc1 $f10, 0x3d4($s4) +/* 0D1BC4 7F09D054 C6700008 */ lwc1 $f16, 8($s3) +/* 0D1BC8 7F09D058 E69003D8 */ swc1 $f16, 0x3d8($s4) +/* 0D1BCC 7F09D05C 0FC2CEE2 */ jal sub_GAME_7F0B2FD8 +/* 0D1BD0 7F09D060 8FA40058 */ lw $a0, 0x58($sp) +/* 0D1BD4 7F09D064 10000003 */ b .Ljp7F09D074 +/* 0D1BD8 7F09D068 A68203DC */ sh $v0, 0x3dc($s4) +.Ljp7F09D06C: +/* 0D1BDC 7F09D06C C43276E0 */ lwc1 $f18, %lo(D_800576B0)($at) +/* 0D1BE0 7F09D070 E69203D0 */ swc1 $f18, 0x3d0($s4) +.Ljp7F09D074: +/* 0D1BE4 7F09D074 0C002918 */ jal get_random_value +/* 0D1BE8 7F09D078 00000000 */ nop +/* 0D1BEC 7F09D07C 44822000 */ mtc1 $v0, $f4 +/* 0D1BF0 7F09D080 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1BF4 7F09D084 04410004 */ bgez $v0, .Ljp7F09D098 +/* 0D1BF8 7F09D088 468021A0 */ cvt.s.w $f6, $f4 +/* 0D1BFC 7F09D08C 44814000 */ mtc1 $at, $f8 +/* 0D1C00 7F09D090 00000000 */ nop +/* 0D1C04 7F09D094 46083180 */ add.s $f6, $f6, $f8 +.Ljp7F09D098: +/* 0D1C08 7F09D098 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D1C0C 7F09D09C 44815000 */ mtc1 $at, $f10 +/* 0D1C10 7F09D0A0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D1C14 7F09D0A4 44819000 */ mtc1 $at, $f18 +/* 0D1C18 7F09D0A8 460A3402 */ mul.s $f16, $f6, $f10 +/* 0D1C1C 7F09D0AC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D1C20 7F09D0B0 44814000 */ mtc1 $at, $f8 +/* 0D1C24 7F09D0B4 C62A0010 */ lwc1 $f10, 0x10($s1) +/* 0D1C28 7F09D0B8 46128102 */ mul.s $f4, $f16, $f18 +/* 0D1C2C 7F09D0BC 46082180 */ add.s $f6, $f4, $f8 +/* 0D1C30 7F09D0C0 460A3402 */ mul.s $f16, $f6, $f10 +/* 0D1C34 7F09D0C4 0C002918 */ jal get_random_value +/* 0D1C38 7F09D0C8 E7B00044 */ swc1 $f16, 0x44($sp) +/* 0D1C3C 7F09D0CC 44829000 */ mtc1 $v0, $f18 +/* 0D1C40 7F09D0D0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1C44 7F09D0D4 04410004 */ bgez $v0, .Ljp7F09D0E8 +/* 0D1C48 7F09D0D8 46809120 */ cvt.s.w $f4, $f18 +/* 0D1C4C 7F09D0DC 44814000 */ mtc1 $at, $f8 +/* 0D1C50 7F09D0E0 00000000 */ nop +/* 0D1C54 7F09D0E4 46082100 */ add.s $f4, $f4, $f8 +.Ljp7F09D0E8: +/* 0D1C58 7F09D0E8 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D1C5C 7F09D0EC 44813000 */ mtc1 $at, $f6 +/* 0D1C60 7F09D0F0 3C018005 */ lui $at, %hi(D_800576B4) # $at, 0x8005 +/* 0D1C64 7F09D0F4 C43076E4 */ lwc1 $f16, %lo(D_800576B4)($at) +/* 0D1C68 7F09D0F8 46062282 */ mul.s $f10, $f4, $f6 +/* 0D1C6C 7F09D0FC 00000000 */ nop +/* 0D1C70 7F09D100 46105302 */ mul.s $f12, $f10, $f16 +/* 0D1C74 7F09D104 0FC160F0 */ jal cosf +/* 0D1C78 7F09D108 E7AC0040 */ swc1 $f12, 0x40($sp) +/* 0D1C7C 7F09D10C C7B20044 */ lwc1 $f18, 0x44($sp) +/* 0D1C80 7F09D110 46120202 */ mul.s $f8, $f0, $f18 +/* 0D1C84 7F09D114 E6880014 */ swc1 $f8, 0x14($s4) +/* 0D1C88 7F09D118 0FC160F3 */ jal sinf +/* 0D1C8C 7F09D11C C7AC0040 */ lwc1 $f12, 0x40($sp) +/* 0D1C90 7F09D120 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0D1C94 7F09D124 240F0001 */ li $t7, 1 +/* 0D1C98 7F09D128 A68F001C */ sh $t7, 0x1c($s4) +/* 0D1C9C 7F09D12C 46040182 */ mul.s $f6, $f0, $f4 +/* 0D1CA0 7F09D130 E6860018 */ swc1 $f6, 0x18($s4) +/* 0D1CA4 7F09D134 C66A0000 */ lwc1 $f10, ($s3) +/* 0D1CA8 7F09D138 E68A0008 */ swc1 $f10, 8($s4) +/* 0D1CAC 7F09D13C C6700004 */ lwc1 $f16, 4($s3) +/* 0D1CB0 7F09D140 E690000C */ swc1 $f16, 0xc($s4) +/* 0D1CB4 7F09D144 C6720008 */ lwc1 $f18, 8($s3) +/* 0D1CB8 7F09D148 E6920010 */ swc1 $f18, 0x10($s4) +/* 0D1CBC 7F09D14C 86380024 */ lh $t8, 0x24($s1) +/* 0D1CC0 7F09D150 1B00000E */ blez $t8, .Ljp7F09D18C +/* 0D1CC4 7F09D154 00000000 */ nop +/* 0D1CC8 7F09D158 C6280028 */ lwc1 $f8, 0x28($s1) +.Ljp7F09D15C: +/* 0D1CCC 7F09D15C 8E25002C */ lw $a1, 0x2c($s1) +/* 0D1CD0 7F09D160 8E260030 */ lw $a2, 0x30($s1) +/* 0D1CD4 7F09D164 8E270034 */ lw $a3, 0x34($s1) +/* 0D1CD8 7F09D168 02602025 */ move $a0, $s3 +/* 0D1CDC 7F09D16C 0FC27F7E */ jal sub_GAME_7F09F254 +/* 0D1CE0 7F09D170 E7A80010 */ swc1 $f8, 0x10($sp) +/* 0D1CE4 7F09D174 8FB9004C */ lw $t9, 0x4c($sp) +/* 0D1CE8 7F09D178 26100001 */ addiu $s0, $s0, 1 +/* 0D1CEC 7F09D17C 872E0024 */ lh $t6, 0x24($t9) +/* 0D1CF0 7F09D180 020E082A */ slt $at, $s0, $t6 +/* 0D1CF4 7F09D184 5420FFF5 */ bnezl $at, .Ljp7F09D15C +/* 0D1CF8 7F09D188 C6280028 */ lwc1 $f8, 0x28($s1) +.Ljp7F09D18C: +/* 0D1CFC 7F09D18C 0FC26C01 */ jal get_num_players +/* 0D1D00 7F09D190 00000000 */ nop +/* 0D1D04 7F09D194 28410002 */ slti $at, $v0, 2 +/* 0D1D08 7F09D198 14200058 */ bnez $at, .Ljp7F09D2FC +/* 0D1D0C 7F09D19C 00003025 */ move $a2, $zero +/* 0D1D10 7F09D1A0 3C0D8008 */ lui $t5, %hi(ptr_smoke_buf) # $t5, 0x8008 +/* 0D1D14 7F09D1A4 3C0B8004 */ lui $t3, %hi(D_8004017C) # $t3, 0x8004 +/* 0D1D18 7F09D1A8 256B01AC */ addiu $t3, %lo(D_8004017C) # addiu $t3, $t3, 0x1ac +/* 0D1D1C 7F09D1AC 25ADA1B0 */ addiu $t5, %lo(ptr_smoke_buf) # addiu $t5, $t5, -0x5e50 +/* 0D1D20 7F09D1B0 241F1FE0 */ li $ra, 8160 +/* 0D1D24 7F09D1B4 240C0018 */ li $t4, 24 +/* 0D1D28 7F09D1B8 240A0009 */ li $t2, 9 +/* 0D1D2C 7F09D1BC 24090008 */ li $t1, 8 +/* 0D1D30 7F09D1C0 8DA30000 */ lw $v1, ($t5) +.Ljp7F09D1C4: +/* 0D1D34 7F09D1C4 00662821 */ addu $a1, $v1, $a2 +/* 0D1D38 7F09D1C8 8CAF0000 */ lw $t7, ($a1) +/* 0D1D3C 7F09D1CC 00C33821 */ addu $a3, $a2, $v1 +/* 0D1D40 7F09D1D0 51E00011 */ beql $t7, $zero, .Ljp7F09D218 +/* 0D1D44 7F09D1D4 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D1D48 7F09D1D8 84E20006 */ lh $v0, 6($a3) +/* 0D1D4C 7F09D1DC 5242000E */ beql $s2, $v0, .Ljp7F09D218 +/* 0D1D50 7F09D1E0 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D1D54 7F09D1E4 84E80006 */ lh $t0, 6($a3) +/* 0D1D58 7F09D1E8 5128000B */ beql $t1, $t0, .Ljp7F09D218 +/* 0D1D5C 7F09D1EC 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D1D60 7F09D1F0 51480009 */ beql $t2, $t0, .Ljp7F09D218 +/* 0D1D64 7F09D1F4 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D1D68 7F09D1F8 004C0019 */ multu $v0, $t4 +/* 0D1D6C 7F09D1FC 0000C012 */ mflo $t8 +/* 0D1D70 7F09D200 0178C821 */ addu $t9, $t3, $t8 +/* 0D1D74 7F09D204 872E0000 */ lh $t6, ($t9) +/* 0D1D78 7F09D208 A4EE0004 */ sh $t6, 4($a3) +/* 0D1D7C 7F09D20C 8DA30000 */ lw $v1, ($t5) +/* 0D1D80 7F09D210 00662821 */ addu $a1, $v1, $a2 +/* 0D1D84 7F09D214 8CAF0198 */ lw $t7, 0x198($a1) +.Ljp7F09D218: +/* 0D1D88 7F09D218 00C32021 */ addu $a0, $a2, $v1 +/* 0D1D8C 7F09D21C 51E00011 */ beql $t7, $zero, .Ljp7F09D264 +/* 0D1D90 7F09D220 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D1D94 7F09D224 8482019E */ lh $v0, 0x19e($a0) +/* 0D1D98 7F09D228 24840198 */ addiu $a0, $a0, 0x198 +/* 0D1D9C 7F09D22C 5242000D */ beql $s2, $v0, .Ljp7F09D264 +/* 0D1DA0 7F09D230 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D1DA4 7F09D234 5122000B */ beql $t1, $v0, .Ljp7F09D264 +/* 0D1DA8 7F09D238 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D1DAC 7F09D23C 51420009 */ beql $t2, $v0, .Ljp7F09D264 +/* 0D1DB0 7F09D240 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D1DB4 7F09D244 004C0019 */ multu $v0, $t4 +/* 0D1DB8 7F09D248 0000C012 */ mflo $t8 +/* 0D1DBC 7F09D24C 0178C821 */ addu $t9, $t3, $t8 +/* 0D1DC0 7F09D250 872E0000 */ lh $t6, ($t9) +/* 0D1DC4 7F09D254 A48E0004 */ sh $t6, 4($a0) +/* 0D1DC8 7F09D258 8DA30000 */ lw $v1, ($t5) +/* 0D1DCC 7F09D25C 00662821 */ addu $a1, $v1, $a2 +/* 0D1DD0 7F09D260 8CAF0330 */ lw $t7, 0x330($a1) +.Ljp7F09D264: +/* 0D1DD4 7F09D264 00C32021 */ addu $a0, $a2, $v1 +/* 0D1DD8 7F09D268 51E00011 */ beql $t7, $zero, .Ljp7F09D2B0 +/* 0D1DDC 7F09D26C 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D1DE0 7F09D270 84820336 */ lh $v0, 0x336($a0) +/* 0D1DE4 7F09D274 24840330 */ addiu $a0, $a0, 0x330 +/* 0D1DE8 7F09D278 5242000D */ beql $s2, $v0, .Ljp7F09D2B0 +/* 0D1DEC 7F09D27C 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D1DF0 7F09D280 5122000B */ beql $t1, $v0, .Ljp7F09D2B0 +/* 0D1DF4 7F09D284 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D1DF8 7F09D288 51420009 */ beql $t2, $v0, .Ljp7F09D2B0 +/* 0D1DFC 7F09D28C 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D1E00 7F09D290 004C0019 */ multu $v0, $t4 +/* 0D1E04 7F09D294 0000C012 */ mflo $t8 +/* 0D1E08 7F09D298 0178C821 */ addu $t9, $t3, $t8 +/* 0D1E0C 7F09D29C 872E0000 */ lh $t6, ($t9) +/* 0D1E10 7F09D2A0 A48E0004 */ sh $t6, 4($a0) +/* 0D1E14 7F09D2A4 8DA30000 */ lw $v1, ($t5) +/* 0D1E18 7F09D2A8 00662821 */ addu $a1, $v1, $a2 +/* 0D1E1C 7F09D2AC 8CAF04C8 */ lw $t7, 0x4c8($a1) +.Ljp7F09D2B0: +/* 0D1E20 7F09D2B0 00C32021 */ addu $a0, $a2, $v1 +/* 0D1E24 7F09D2B4 51E0000F */ beql $t7, $zero, .Ljp7F09D2F4 +/* 0D1E28 7F09D2B8 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D1E2C 7F09D2BC 848204CE */ lh $v0, 0x4ce($a0) +/* 0D1E30 7F09D2C0 248404C8 */ addiu $a0, $a0, 0x4c8 +/* 0D1E34 7F09D2C4 5242000B */ beql $s2, $v0, .Ljp7F09D2F4 +/* 0D1E38 7F09D2C8 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D1E3C 7F09D2CC 51220009 */ beql $t1, $v0, .Ljp7F09D2F4 +/* 0D1E40 7F09D2D0 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D1E44 7F09D2D4 51420007 */ beql $t2, $v0, .Ljp7F09D2F4 +/* 0D1E48 7F09D2D8 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D1E4C 7F09D2DC 004C0019 */ multu $v0, $t4 +/* 0D1E50 7F09D2E0 0000C012 */ mflo $t8 +/* 0D1E54 7F09D2E4 0178C821 */ addu $t9, $t3, $t8 +/* 0D1E58 7F09D2E8 872E0000 */ lh $t6, ($t9) +/* 0D1E5C 7F09D2EC A48E0004 */ sh $t6, 4($a0) +/* 0D1E60 7F09D2F0 24C60660 */ addiu $a2, $a2, 0x660 +.Ljp7F09D2F4: +/* 0D1E64 7F09D2F4 54DFFFB3 */ bnel $a2, $ra, .Ljp7F09D1C4 +/* 0D1E68 7F09D2F8 8DA30000 */ lw $v1, ($t5) +.Ljp7F09D2FC: +/* 0D1E6C 7F09D2FC 8FBF0034 */ lw $ra, 0x34($sp) +.Ljp7F09D300: +/* 0D1E70 7F09D300 0014102B */ sltu $v0, $zero, $s4 +/* 0D1E74 7F09D304 8FB40030 */ lw $s4, 0x30($sp) +/* 0D1E78 7F09D308 8FB00020 */ lw $s0, 0x20($sp) +/* 0D1E7C 7F09D30C 8FB10024 */ lw $s1, 0x24($sp) +/* 0D1E80 7F09D310 8FB20028 */ lw $s2, 0x28($sp) +/* 0D1E84 7F09D314 8FB3002C */ lw $s3, 0x2c($sp) +/* 0D1E88 7F09D318 03E00008 */ jr $ra +/* 0D1E8C 7F09D31C 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + +#endif + + +void sub_GAME_7F09C7AC(void) { + D_80040170 = 6; + D_80040174 = 6; +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09C7C4(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_800576B8 +.word 0x3f4ccccd /*0.80000001*/ +.text +glabel sub_GAME_7F09C7C4 +/* 0D12F4 7F09C7C4 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0D12F8 7F09C7C8 3C0E8004 */ lui $t6, %hi(D_80040170) +/* 0D12FC 7F09C7CC 8DCE0170 */ lw $t6, %lo(D_80040170)($t6) +/* 0D1300 7F09C7D0 AFB20030 */ sw $s2, 0x30($sp) +/* 0D1304 7F09C7D4 AFB1002C */ sw $s1, 0x2c($sp) +/* 0D1308 7F09C7D8 00808825 */ move $s1, $a0 +/* 0D130C 7F09C7DC 00A09025 */ move $s2, $a1 +/* 0D1310 7F09C7E0 AFBF003C */ sw $ra, 0x3c($sp) +/* 0D1314 7F09C7E4 AFB40038 */ sw $s4, 0x38($sp) +/* 0D1318 7F09C7E8 AFB30034 */ sw $s3, 0x34($sp) +/* 0D131C 7F09C7EC AFB00028 */ sw $s0, 0x28($sp) +/* 0D1320 7F09C7F0 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0D1324 7F09C7F4 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D1328 7F09C7F8 15C00006 */ bnez $t6, .L7F09C814 +/* 0D132C 7F09C7FC AFA60060 */ sw $a2, 0x60($sp) +/* 0D1330 7F09C800 44806000 */ mtc1 $zero, $f12 +/* 0D1334 7F09C804 0C000EC1 */ jal video_related_9 +/* 0D1338 7F09C808 00000000 */ nop +/* 0D133C 7F09C80C 10000069 */ b .L7F09C9B4 +/* 0D1340 7F09C810 8FBF003C */ lw $ra, 0x3c($sp) +.L7F09C814: +/* 0D1344 7F09C814 3C018005 */ lui $at, %hi(D_800576B8) +/* 0D1348 7F09C818 C43476B8 */ lwc1 $f20, %lo(D_800576B8)($at) +/* 0D134C 7F09C81C 0FC15FA8 */ jal cosf +/* 0D1350 7F09C820 4600A306 */ mov.s $f12, $f20 +/* 0D1354 7F09C824 46000586 */ mov.s $f22, $f0 +/* 0D1358 7F09C828 0FC15FAB */ jal sinf +/* 0D135C 7F09C82C 4600A306 */ mov.s $f12, $f20 +/* 0D1360 7F09C830 C6440000 */ lwc1 $f4, ($s2) +/* 0D1364 7F09C834 C6480008 */ lwc1 $f8, 8($s2) +/* 0D1368 7F09C838 4600A306 */ mov.s $f12, $f20 +/* 0D136C 7F09C83C 4604B182 */ mul.s $f6, $f22, $f4 +/* 0D1370 7F09C840 00000000 */ nop +/* 0D1374 7F09C844 46004282 */ mul.s $f10, $f8, $f0 +/* 0D1378 7F09C848 460A3401 */ sub.s $f16, $f6, $f10 +/* 0D137C 7F09C84C 0FC15FAB */ jal sinf +/* 0D1380 7F09C850 E7B00044 */ swc1 $f16, 0x44($sp) +/* 0D1384 7F09C854 46000586 */ mov.s $f22, $f0 +/* 0D1388 7F09C858 0FC15FA8 */ jal cosf +/* 0D138C 7F09C85C 4600A306 */ mov.s $f12, $f20 +/* 0D1390 7F09C860 C6520008 */ lwc1 $f18, 8($s2) +/* 0D1394 7F09C864 C6480000 */ lwc1 $f8, ($s2) +/* 0D1398 7F09C868 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0D139C 7F09C86C 46009102 */ mul.s $f4, $f18, $f0 +/* 0D13A0 7F09C870 3C128004 */ lui $s2, %hi(D_8004017C+0x108) +/* 0D13A4 7F09C874 3C028008 */ lui $v0, %hi(ptr_explosion_buf) +/* 0D13A8 7F09C878 4608B182 */ mul.s $f6, $f22, $f8 +/* 0D13AC 7F09C87C 3C138008 */ lui $s3, %hi(ptr_explosion_buf) +/* 0D13B0 7F09C880 4480A000 */ mtc1 $zero, $f20 +/* 0D13B4 7F09C884 4481B000 */ mtc1 $at, $f22 +/* 0D13B8 7F09C888 2673A144 */ addiu $s3, %lo(ptr_explosion_buf) # addiu $s3, $s3, -0x5ebc +/* 0D13BC 7F09C88C 8C42A144 */ lw $v0, %lo(ptr_explosion_buf)($v0) +/* 0D13C0 7F09C890 26520284 */ addiu $s2, %lo(D_8004017C+0x108) # addiu $s2, $s2, 0x284 +/* 0D13C4 7F09C894 46062280 */ add.s $f10, $f4, $f6 +/* 0D13C8 7F09C898 00008025 */ move $s0, $zero +/* 0D13CC 7F09C89C 24141740 */ li $s4, 5952 +/* 0D13D0 7F09C8A0 E7AA0040 */ swc1 $f10, 0x40($sp) +.L7F09C8A4: +/* 0D13D4 7F09C8A4 8C430000 */ lw $v1, ($v0) +/* 0D13D8 7F09C8A8 5060001A */ beql $v1, $zero, .L7F09C914 +/* 0D13DC 7F09C8AC 261003E0 */ addiu $s0, $s0, 0x3e0 +/* 0D13E0 7F09C8B0 C4700008 */ lwc1 $f16, 8($v1) +/* 0D13E4 7F09C8B4 C6320000 */ lwc1 $f18, ($s1) +/* 0D13E8 7F09C8B8 C468000C */ lwc1 $f8, 0xc($v1) +/* 0D13EC 7F09C8BC C6240004 */ lwc1 $f4, 4($s1) +/* 0D13F0 7F09C8C0 46128001 */ sub.s $f0, $f16, $f18 +/* 0D13F4 7F09C8C4 C4660010 */ lwc1 $f6, 0x10($v1) +/* 0D13F8 7F09C8C8 C62A0008 */ lwc1 $f10, 8($s1) +/* 0D13FC 7F09C8CC 46044081 */ sub.s $f2, $f8, $f4 +/* 0D1400 7F09C8D0 46000402 */ mul.s $f16, $f0, $f0 +/* 0D1404 7F09C8D4 460A3381 */ sub.s $f14, $f6, $f10 +/* 0D1408 7F09C8D8 46021482 */ mul.s $f18, $f2, $f2 +/* 0D140C 7F09C8DC 46128200 */ add.s $f8, $f16, $f18 +/* 0D1410 7F09C8E0 460E7102 */ mul.s $f4, $f14, $f14 +/* 0D1414 7F09C8E4 0C007DF8 */ jal sqrtf +/* 0D1418 7F09C8E8 46044300 */ add.s $f12, $f8, $f4 +/* 0D141C 7F09C8EC 8E6F0000 */ lw $t7, ($s3) +/* 0D1420 7F09C8F0 01F01021 */ addu $v0, $t7, $s0 +/* 0D1424 7F09C8F4 805803CC */ lb $t8, 0x3cc($v0) +/* 0D1428 7F09C8F8 0018C980 */ sll $t9, $t8, 6 +/* 0D142C 7F09C8FC 02594021 */ addu $t0, $s2, $t9 +/* 0D1430 7F09C900 C5060010 */ lwc1 $f6, 0x10($t0) +/* 0D1434 7F09C904 46003083 */ div.s $f2, $f6, $f0 +/* 0D1438 7F09C908 46161282 */ mul.s $f10, $f2, $f22 +/* 0D143C 7F09C90C 460AA500 */ add.s $f20, $f20, $f10 +/* 0D1440 7F09C910 261003E0 */ addiu $s0, $s0, 0x3e0 +.L7F09C914: +/* 0D1444 7F09C914 1614FFE3 */ bne $s0, $s4, .L7F09C8A4 +/* 0D1448 7F09C918 244203E0 */ addiu $v0, $v0, 0x3e0 +/* 0D144C 7F09C91C 3C038004 */ lui $v1, %hi(D_80040174) +/* 0D1450 7F09C920 24630174 */ addiu $v1, %lo(D_80040174) # addiu $v1, $v1, 0x174 +/* 0D1454 7F09C924 8C620000 */ lw $v0, ($v1) +/* 0D1458 7F09C928 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D145C 7F09C92C 18400005 */ blez $v0, .L7F09C944 +/* 0D1460 7F09C930 00000000 */ nop +/* 0D1464 7F09C934 44818000 */ mtc1 $at, $f16 +/* 0D1468 7F09C938 2449FFFF */ addiu $t1, $v0, -1 +/* 0D146C 7F09C93C AC690000 */ sw $t1, ($v1) +/* 0D1470 7F09C940 4610A500 */ add.s $f20, $f20, $f16 +.L7F09C944: +/* 0D1474 7F09C944 3C028004 */ lui $v0, %hi(D_80040170) +/* 0D1478 7F09C948 24420170 */ addiu $v0, %lo(D_80040170) # addiu $v0, $v0, 0x170 +/* 0D147C 7F09C94C 8C4A0000 */ lw $t2, ($v0) +/* 0D1480 7F09C950 254BFFFF */ addiu $t3, $t2, -1 +/* 0D1484 7F09C954 316D0002 */ andi $t5, $t3, 2 +/* 0D1488 7F09C958 11A00005 */ beqz $t5, .L7F09C970 +/* 0D148C 7F09C95C AC4B0000 */ sw $t3, ($v0) +/* 0D1490 7F09C960 8FA30060 */ lw $v1, 0x60($sp) +/* 0D1494 7F09C964 E4740004 */ swc1 $f20, 4($v1) +/* 0D1498 7F09C968 10000004 */ b .L7F09C97C +/* 0D149C 7F09C96C 4600A507 */ neg.s $f20, $f20 +.L7F09C970: +/* 0D14A0 7F09C970 8FA30060 */ lw $v1, 0x60($sp) +/* 0D14A4 7F09C974 4600A487 */ neg.s $f18, $f20 +/* 0D14A8 7F09C978 E4720004 */ swc1 $f18, 4($v1) +.L7F09C97C: +/* 0D14AC 7F09C97C C7A80044 */ lwc1 $f8, 0x44($sp) +/* 0D14B0 7F09C980 4608A102 */ mul.s $f4, $f20, $f8 +/* 0D14B4 7F09C984 E4640000 */ swc1 $f4, ($v1) +/* 0D14B8 7F09C988 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 0D14BC 7F09C98C 4606A282 */ mul.s $f10, $f20, $f6 +/* 0D14C0 7F09C990 E46A0008 */ swc1 $f10, 8($v1) +/* 0D14C4 7F09C994 8C4F0000 */ lw $t7, ($v0) +/* 0D14C8 7F09C998 448F8000 */ mtc1 $t7, $f16 +/* 0D14CC 7F09C99C 00000000 */ nop +/* 0D14D0 7F09C9A0 468084A0 */ cvt.s.w $f18, $f16 +/* 0D14D4 7F09C9A4 46149302 */ mul.s $f12, $f18, $f20 +/* 0D14D8 7F09C9A8 0C000EC1 */ jal video_related_9 +/* 0D14DC 7F09C9AC 00000000 */ nop +/* 0D14E0 7F09C9B0 8FBF003C */ lw $ra, 0x3c($sp) +.L7F09C9B4: +/* 0D14E4 7F09C9B4 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D14E8 7F09C9B8 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0D14EC 7F09C9BC 8FB00028 */ lw $s0, 0x28($sp) +/* 0D14F0 7F09C9C0 8FB1002C */ lw $s1, 0x2c($sp) +/* 0D14F4 7F09C9C4 8FB20030 */ lw $s2, 0x30($sp) +/* 0D14F8 7F09C9C8 8FB30034 */ lw $s3, 0x34($sp) +/* 0D14FC 7F09C9CC 8FB40038 */ lw $s4, 0x38($sp) +/* 0D1500 7F09C9D0 03E00008 */ jr $ra +/* 0D1504 7F09C9D4 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_800576B8 +.word 0x3f4ccccd /*0.80000001*/ +.word 0x38d1b717 +.text +glabel sub_GAME_7F09C7C4 +/* 0D1EA8 7F09D338 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0D1EAC 7F09D33C 3C0E8004 */ lui $t6, %hi(D_80040170) # $t6, 0x8004 +/* 0D1EB0 7F09D340 8DCE01A0 */ lw $t6, %lo(D_80040170)($t6) +/* 0D1EB4 7F09D344 AFB20040 */ sw $s2, 0x40($sp) +/* 0D1EB8 7F09D348 AFB1003C */ sw $s1, 0x3c($sp) +/* 0D1EBC 7F09D34C 00808825 */ move $s1, $a0 +/* 0D1EC0 7F09D350 00A09025 */ move $s2, $a1 +/* 0D1EC4 7F09D354 AFBF004C */ sw $ra, 0x4c($sp) +/* 0D1EC8 7F09D358 AFB40048 */ sw $s4, 0x48($sp) +/* 0D1ECC 7F09D35C AFB30044 */ sw $s3, 0x44($sp) +/* 0D1ED0 7F09D360 AFB00038 */ sw $s0, 0x38($sp) +/* 0D1ED4 7F09D364 F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0D1ED8 7F09D368 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0D1EDC 7F09D36C F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0D1EE0 7F09D370 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D1EE4 7F09D374 15C00006 */ bnez $t6, .Ljp7F09D390 +/* 0D1EE8 7F09D378 AFA60070 */ sw $a2, 0x70($sp) +/* 0D1EEC 7F09D37C 44806000 */ mtc1 $zero, $f12 +/* 0D1EF0 7F09D380 0C000EC1 */ jal video_related_9 +/* 0D1EF4 7F09D384 00000000 */ nop +/* 0D1EF8 7F09D388 10000071 */ b .Ljp7F09D550 +/* 0D1EFC 7F09D38C 8FBF004C */ lw $ra, 0x4c($sp) +.Ljp7F09D390: +/* 0D1F00 7F09D390 3C018005 */ lui $at, %hi(D_800576B8) # $at, 0x8005 +/* 0D1F04 7F09D394 C43476E8 */ lwc1 $f20, %lo(D_800576B8)($at) +/* 0D1F08 7F09D398 0FC160F0 */ jal cosf +/* 0D1F0C 7F09D39C 4600A306 */ mov.s $f12, $f20 +/* 0D1F10 7F09D3A0 46000606 */ mov.s $f24, $f0 +/* 0D1F14 7F09D3A4 0FC160F3 */ jal sinf +/* 0D1F18 7F09D3A8 4600A306 */ mov.s $f12, $f20 +/* 0D1F1C 7F09D3AC C6440000 */ lwc1 $f4, ($s2) +/* 0D1F20 7F09D3B0 C6480008 */ lwc1 $f8, 8($s2) +/* 0D1F24 7F09D3B4 4600A306 */ mov.s $f12, $f20 +/* 0D1F28 7F09D3B8 4604C182 */ mul.s $f6, $f24, $f4 +/* 0D1F2C 7F09D3BC 00000000 */ nop +/* 0D1F30 7F09D3C0 46004282 */ mul.s $f10, $f8, $f0 +/* 0D1F34 7F09D3C4 460A3401 */ sub.s $f16, $f6, $f10 +/* 0D1F38 7F09D3C8 0FC160F3 */ jal sinf +/* 0D1F3C 7F09D3CC E7B00054 */ swc1 $f16, 0x54($sp) +/* 0D1F40 7F09D3D0 46000606 */ mov.s $f24, $f0 +/* 0D1F44 7F09D3D4 0FC160F0 */ jal cosf +/* 0D1F48 7F09D3D8 4600A306 */ mov.s $f12, $f20 +/* 0D1F4C 7F09D3DC C6520008 */ lwc1 $f18, 8($s2) +/* 0D1F50 7F09D3E0 C6480000 */ lwc1 $f8, ($s2) +/* 0D1F54 7F09D3E4 4480B000 */ mtc1 $zero, $f22 +/* 0D1F58 7F09D3E8 46009102 */ mul.s $f4, $f18, $f0 +/* 0D1F5C 7F09D3EC 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0D1F60 7F09D3F0 4481D000 */ mtc1 $at, $f26 +/* 0D1F64 7F09D3F4 4608C182 */ mul.s $f6, $f24, $f8 +/* 0D1F68 7F09D3F8 3C018005 */ lui $at, %hi(D_800576B8+0x4) # $at, 0x8005 +/* 0D1F6C 7F09D3FC 3C128004 */ lui $s2, %hi(D_8004017C+0x108) # $s2, 0x8004 +/* 0D1F70 7F09D400 3C028008 */ lui $v0, %hi(ptr_explosion_buf) # $v0, 0x8008 +/* 0D1F74 7F09D404 3C138008 */ lui $s3, %hi(ptr_explosion_buf) # $s3, 0x8008 +/* 0D1F78 7F09D408 2673A1B4 */ addiu $s3, %lo(ptr_explosion_buf) # addiu $s3, $s3, -0x5e4c +/* 0D1F7C 7F09D40C 8C42A1B4 */ lw $v0, %lo(ptr_explosion_buf)($v0) +/* 0D1F80 7F09D410 46062280 */ add.s $f10, $f4, $f6 +/* 0D1F84 7F09D414 265202B4 */ addiu $s2, %lo(D_8004017C+0x108) # addiu $s2, $s2, 0x2b4 +/* 0D1F88 7F09D418 C43876EC */ lwc1 $f24, %lo(D_800576B8+0x4)($at) +/* 0D1F8C 7F09D41C 00008025 */ move $s0, $zero +/* 0D1F90 7F09D420 E7AA0050 */ swc1 $f10, 0x50($sp) +/* 0D1F94 7F09D424 24141740 */ li $s4, 5952 +/* 0D1F98 7F09D428 4600B506 */ mov.s $f20, $f22 +.Ljp7F09D42C: +/* 0D1F9C 7F09D42C 8C430000 */ lw $v1, ($v0) +/* 0D1FA0 7F09D430 5060001F */ beql $v1, $zero, .Ljp7F09D4B0 +/* 0D1FA4 7F09D434 261003E0 */ addiu $s0, $s0, 0x3e0 +/* 0D1FA8 7F09D438 C4700008 */ lwc1 $f16, 8($v1) +/* 0D1FAC 7F09D43C C6320000 */ lwc1 $f18, ($s1) +/* 0D1FB0 7F09D440 C468000C */ lwc1 $f8, 0xc($v1) +/* 0D1FB4 7F09D444 C6240004 */ lwc1 $f4, 4($s1) +/* 0D1FB8 7F09D448 46128001 */ sub.s $f0, $f16, $f18 +/* 0D1FBC 7F09D44C C4660010 */ lwc1 $f6, 0x10($v1) +/* 0D1FC0 7F09D450 C62A0008 */ lwc1 $f10, 8($s1) +/* 0D1FC4 7F09D454 46044081 */ sub.s $f2, $f8, $f4 +/* 0D1FC8 7F09D458 46000402 */ mul.s $f16, $f0, $f0 +/* 0D1FCC 7F09D45C 460A3381 */ sub.s $f14, $f6, $f10 +/* 0D1FD0 7F09D460 46021482 */ mul.s $f18, $f2, $f2 +/* 0D1FD4 7F09D464 46128200 */ add.s $f8, $f16, $f18 +/* 0D1FD8 7F09D468 460E7102 */ mul.s $f4, $f14, $f14 +/* 0D1FDC 7F09D46C 0C007E08 */ jal sqrtf +/* 0D1FE0 7F09D470 46044300 */ add.s $f12, $f8, $f4 +/* 0D1FE4 7F09D474 46160032 */ c.eq.s $f0, $f22 +/* 0D1FE8 7F09D478 46000086 */ mov.s $f2, $f0 +/* 0D1FEC 7F09D47C 45020003 */ bc1fl .Ljp7F09D48C +/* 0D1FF0 7F09D480 8E6F0000 */ lw $t7, ($s3) +/* 0D1FF4 7F09D484 4600C086 */ mov.s $f2, $f24 +/* 0D1FF8 7F09D488 8E6F0000 */ lw $t7, ($s3) +.Ljp7F09D48C: +/* 0D1FFC 7F09D48C 01F01021 */ addu $v0, $t7, $s0 +/* 0D2000 7F09D490 805803CC */ lb $t8, 0x3cc($v0) +/* 0D2004 7F09D494 0018C980 */ sll $t9, $t8, 6 +/* 0D2008 7F09D498 02594021 */ addu $t0, $s2, $t9 +/* 0D200C 7F09D49C C5060010 */ lwc1 $f6, 0x10($t0) +/* 0D2010 7F09D4A0 46023003 */ div.s $f0, $f6, $f2 +/* 0D2014 7F09D4A4 461A0282 */ mul.s $f10, $f0, $f26 +/* 0D2018 7F09D4A8 460AA500 */ add.s $f20, $f20, $f10 +/* 0D201C 7F09D4AC 261003E0 */ addiu $s0, $s0, 0x3e0 +.Ljp7F09D4B0: +/* 0D2020 7F09D4B0 1614FFDE */ bne $s0, $s4, .Ljp7F09D42C +/* 0D2024 7F09D4B4 244203E0 */ addiu $v0, $v0, 0x3e0 +/* 0D2028 7F09D4B8 3C038004 */ lui $v1, %hi(D_80040174) # $v1, 0x8004 +/* 0D202C 7F09D4BC 246301A4 */ addiu $v1, %lo(D_80040174) # addiu $v1, $v1, 0x1a4 +/* 0D2030 7F09D4C0 8C620000 */ lw $v0, ($v1) +/* 0D2034 7F09D4C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D2038 7F09D4C8 18400005 */ blez $v0, .Ljp7F09D4E0 +/* 0D203C 7F09D4CC 00000000 */ nop +/* 0D2040 7F09D4D0 44818000 */ mtc1 $at, $f16 +/* 0D2044 7F09D4D4 2449FFFF */ addiu $t1, $v0, -1 +/* 0D2048 7F09D4D8 AC690000 */ sw $t1, ($v1) +/* 0D204C 7F09D4DC 4610A500 */ add.s $f20, $f20, $f16 +.Ljp7F09D4E0: +/* 0D2050 7F09D4E0 3C028004 */ lui $v0, %hi(D_80040170) # $v0, 0x8004 +/* 0D2054 7F09D4E4 244201A0 */ addiu $v0, %lo(D_80040170) # addiu $v0, $v0, 0x1a0 +/* 0D2058 7F09D4E8 8C4A0000 */ lw $t2, ($v0) +/* 0D205C 7F09D4EC 254BFFFF */ addiu $t3, $t2, -1 +/* 0D2060 7F09D4F0 316D0002 */ andi $t5, $t3, 2 +/* 0D2064 7F09D4F4 11A00005 */ beqz $t5, .Ljp7F09D50C +/* 0D2068 7F09D4F8 AC4B0000 */ sw $t3, ($v0) +/* 0D206C 7F09D4FC 8FA30070 */ lw $v1, 0x70($sp) +/* 0D2070 7F09D500 E4740004 */ swc1 $f20, 4($v1) +/* 0D2074 7F09D504 10000004 */ b .Ljp7F09D518 +/* 0D2078 7F09D508 4600A507 */ neg.s $f20, $f20 +.Ljp7F09D50C: +/* 0D207C 7F09D50C 8FA30070 */ lw $v1, 0x70($sp) +/* 0D2080 7F09D510 4600A487 */ neg.s $f18, $f20 +/* 0D2084 7F09D514 E4720004 */ swc1 $f18, 4($v1) +.Ljp7F09D518: +/* 0D2088 7F09D518 C7A80054 */ lwc1 $f8, 0x54($sp) +/* 0D208C 7F09D51C 4608A102 */ mul.s $f4, $f20, $f8 +/* 0D2090 7F09D520 E4640000 */ swc1 $f4, ($v1) +/* 0D2094 7F09D524 C7A60050 */ lwc1 $f6, 0x50($sp) +/* 0D2098 7F09D528 4606A282 */ mul.s $f10, $f20, $f6 +/* 0D209C 7F09D52C E46A0008 */ swc1 $f10, 8($v1) +/* 0D20A0 7F09D530 8C4F0000 */ lw $t7, ($v0) +/* 0D20A4 7F09D534 448F8000 */ mtc1 $t7, $f16 +/* 0D20A8 7F09D538 00000000 */ nop +/* 0D20AC 7F09D53C 468084A0 */ cvt.s.w $f18, $f16 +/* 0D20B0 7F09D540 46149302 */ mul.s $f12, $f18, $f20 +/* 0D20B4 7F09D544 0C000EC1 */ jal video_related_9 +/* 0D20B8 7F09D548 00000000 */ nop +/* 0D20BC 7F09D54C 8FBF004C */ lw $ra, 0x4c($sp) +.Ljp7F09D550: +/* 0D20C0 7F09D550 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D20C4 7F09D554 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0D20C8 7F09D558 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0D20CC 7F09D55C D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0D20D0 7F09D560 8FB00038 */ lw $s0, 0x38($sp) +/* 0D20D4 7F09D564 8FB1003C */ lw $s1, 0x3c($sp) +/* 0D20D8 7F09D568 8FB20040 */ lw $s2, 0x40($sp) +/* 0D20DC 7F09D56C 8FB30044 */ lw $s3, 0x44($sp) +/* 0D20E0 7F09D570 8FB40048 */ lw $s4, 0x48($sp) +/* 0D20E4 7F09D574 03E00008 */ jr $ra +/* 0D20E8 7F09D578 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F09C9D8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09C9D8 +/* 0D1508 7F09C9D8 27BDFF00 */ addiu $sp, $sp, -0x100 +/* 0D150C 7F09C9DC AFBF006C */ sw $ra, 0x6c($sp) +/* 0D1510 7F09C9E0 AFB60068 */ sw $s6, 0x68($sp) +/* 0D1514 7F09C9E4 AFB50064 */ sw $s5, 0x64($sp) +/* 0D1518 7F09C9E8 AFB40060 */ sw $s4, 0x60($sp) +/* 0D151C 7F09C9EC AFB3005C */ sw $s3, 0x5c($sp) +/* 0D1520 7F09C9F0 AFB20058 */ sw $s2, 0x58($sp) +/* 0D1524 7F09C9F4 AFB10054 */ sw $s1, 0x54($sp) +/* 0D1528 7F09C9F8 AFB00050 */ sw $s0, 0x50($sp) +/* 0D152C 7F09C9FC F7BE0048 */ sdc1 $f30, 0x48($sp) +/* 0D1530 7F09CA00 F7BC0040 */ sdc1 $f28, 0x40($sp) +/* 0D1534 7F09CA04 F7BA0038 */ sdc1 $f26, 0x38($sp) +/* 0D1538 7F09CA08 F7B80030 */ sdc1 $f24, 0x30($sp) +/* 0D153C 7F09CA0C F7B60028 */ sdc1 $f22, 0x28($sp) +/* 0D1540 7F09CA10 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 0D1544 7F09CA14 AFA60108 */ sw $a2, 0x108($sp) +/* 0D1548 7F09CA18 8C920004 */ lw $s2, 4($a0) +/* 0D154C 7F09CA1C 3C188004 */ lui $t8, %hi(D_8004017C+0x108) +/* 0D1550 7F09CA20 4485E000 */ mtc1 $a1, $f28 +/* 0D1554 7F09CA24 824E03CC */ lb $t6, 0x3cc($s2) +/* 0D1558 7F09CA28 865903C8 */ lh $t9, 0x3c8($s2) +/* 0D155C 7F09CA2C 864803CA */ lh $t0, 0x3ca($s2) +/* 0D1560 7F09CA30 27180284 */ addiu $t8, %lo(D_8004017C+0x108) # addiu $t8, $t8, 0x284 +/* 0D1564 7F09CA34 000E7980 */ sll $t7, $t6, 6 +/* 0D1568 7F09CA38 0328082A */ slt $at, $t9, $t0 +/* 0D156C 7F09CA3C 00808825 */ move $s1, $a0 +/* 0D1570 7F09CA40 14200119 */ bnez $at, .L7F09CEA8 +/* 0D1574 7F09CA44 01F8B021 */ addu $s6, $t7, $t8 +/* 0D1578 7F09CA48 27B000E0 */ addiu $s0, $sp, 0xe0 +/* 0D157C 7F09CA4C 0FC0F2E3 */ jal sub_GAME_7F03CB8C +/* 0D1580 7F09CA50 02002825 */ move $a1, $s0 +/* 0D1584 7F09CA54 0FC0F8FF */ jal sub_GAME_7F03E3FC +/* 0D1588 7F09CA58 02002025 */ move $a0, $s0 +/* 0D158C 7F09CA5C 3C138007 */ lui $s3, %hi(ptr_list_object_lookup_indices) +/* 0D1590 7F09CA60 8E739C30 */ lw $s3, %lo(ptr_list_object_lookup_indices)($s3) +/* 0D1594 7F09CA64 24150003 */ li $s5, 3 +/* 0D1598 7F09CA68 86620000 */ lh $v0, ($s3) +/* 0D159C 7F09CA6C 0442010A */ bltzl $v0, .L7F09CE98 +/* 0D15A0 7F09CA70 86C9001C */ lh $t1, 0x1c($s6) +/* 0D15A4 7F09CA74 4480F000 */ mtc1 $zero, $f30 +/* 0D15A8 7F09CA78 24140001 */ li $s4, 1 +/* 0D15AC 7F09CA7C 00024880 */ sll $t1, $v0, 2 +.L7F09CA80: +/* 0D15B0 7F09CA80 01224823 */ subu $t1, $t1, $v0 +/* 0D15B4 7F09CA84 00094880 */ sll $t1, $t1, 2 +/* 0D15B8 7F09CA88 8E4B0004 */ lw $t3, 4($s2) +/* 0D15BC 7F09CA8C 01224821 */ addu $t1, $t1, $v0 +/* 0D15C0 7F09CA90 3C0A8007 */ lui $t2, %hi(pos_data_entry) +/* 0D15C4 7F09CA94 254A9C38 */ addiu $t2, %lo(pos_data_entry) # addiu $t2, $t2, -0x63c8 +/* 0D15C8 7F09CA98 00094880 */ sll $t1, $t1, 2 +/* 0D15CC 7F09CA9C 012A8021 */ addu $s0, $t1, $t2 +/* 0D15D0 7F09CAA0 520B00F9 */ beql $s0, $t3, .L7F09CE88 +/* 0D15D4 7F09CAA4 86620002 */ lh $v0, 2($s3) +/* 0D15D8 7F09CAA8 860C0002 */ lh $t4, 2($s0) +/* 0D15DC 7F09CAAC 558000F6 */ bnezl $t4, .L7F09CE88 +/* 0D15E0 7F09CAB0 86620002 */ lh $v0, 2($s3) +/* 0D15E4 7F09CAB4 92020000 */ lbu $v0, ($s0) +/* 0D15E8 7F09CAB8 24010004 */ li $at, 4 +/* 0D15EC 7F09CABC 52820006 */ beql $s4, $v0, .L7F09CAD8 +/* 0D15F0 7F09CAC0 8E030004 */ lw $v1, 4($s0) +/* 0D15F4 7F09CAC4 10410003 */ beq $v0, $at, .L7F09CAD4 +/* 0D15F8 7F09CAC8 24010002 */ li $at, 2 +/* 0D15FC 7F09CACC 1441006B */ bne $v0, $at, .L7F09CC7C +/* 0D1600 7F09CAD0 00000000 */ nop +.L7F09CAD4: +/* 0D1604 7F09CAD4 8E030004 */ lw $v1, 4($s0) +.L7F09CAD8: +/* 0D1608 7F09CAD8 C6260008 */ lwc1 $f6, 8($s1) +/* 0D160C 7F09CADC C62A000C */ lwc1 $f10, 0xc($s1) +/* 0D1610 7F09CAE0 C4640058 */ lwc1 $f4, 0x58($v1) +/* 0D1614 7F09CAE4 C468005C */ lwc1 $f8, 0x5c($v1) +/* 0D1618 7F09CAE8 46062481 */ sub.s $f18, $f4, $f6 +/* 0D161C 7F09CAEC C6260010 */ lwc1 $f6, 0x10($s1) +/* 0D1620 7F09CAF0 C4640060 */ lwc1 $f4, 0x60($v1) +/* 0D1624 7F09CAF4 460A4501 */ sub.s $f20, $f8, $f10 +/* 0D1628 7F09CAF8 461C903E */ c.le.s $f18, $f28 +/* 0D162C 7F09CAFC 46062581 */ sub.s $f22, $f4, $f6 +/* 0D1630 7F09CB00 4500005C */ bc1f .L7F09CC74 +/* 0D1634 7F09CB04 00000000 */ nop +/* 0D1638 7F09CB08 4600E007 */ neg.s $f0, $f28 +/* 0D163C 7F09CB0C C7A80108 */ lwc1 $f8, 0x108($sp) +/* 0D1640 7F09CB10 4612003E */ c.le.s $f0, $f18 +/* 0D1644 7F09CB14 00000000 */ nop +/* 0D1648 7F09CB18 45000056 */ bc1f .L7F09CC74 +/* 0D164C 7F09CB1C 00000000 */ nop +/* 0D1650 7F09CB20 4608A03E */ c.le.s $f20, $f8 +/* 0D1654 7F09CB24 00000000 */ nop +/* 0D1658 7F09CB28 45000052 */ bc1f .L7F09CC74 +/* 0D165C 7F09CB2C 00000000 */ nop +/* 0D1660 7F09CB30 46004287 */ neg.s $f10, $f8 +/* 0D1664 7F09CB34 4614503E */ c.le.s $f10, $f20 +/* 0D1668 7F09CB38 00000000 */ nop +/* 0D166C 7F09CB3C 4500004D */ bc1f .L7F09CC74 +/* 0D1670 7F09CB40 00000000 */ nop +/* 0D1674 7F09CB44 461CB03E */ c.le.s $f22, $f28 +/* 0D1678 7F09CB48 00000000 */ nop +/* 0D167C 7F09CB4C 45000049 */ bc1f .L7F09CC74 +/* 0D1680 7F09CB50 00000000 */ nop +/* 0D1684 7F09CB54 4616003E */ c.le.s $f0, $f22 +/* 0D1688 7F09CB58 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D168C 7F09CB5C 45000045 */ bc1f .L7F09CC74 +/* 0D1690 7F09CB60 00000000 */ nop +/* 0D1694 7F09CB64 461C9083 */ div.s $f2, $f18, $f28 +/* 0D1698 7F09CB68 C6DA003C */ lwc1 $f26, 0x3c($s6) +/* 0D169C 7F09CB6C 4608A383 */ div.s $f14, $f20, $f8 +/* 0D16A0 7F09CB70 46001006 */ mov.s $f0, $f2 +/* 0D16A4 7F09CB74 461E103C */ c.lt.s $f2, $f30 +/* 0D16A8 7F09CB78 461CB603 */ div.s $f24, $f22, $f28 +/* 0D16AC 7F09CB7C 4481B000 */ mtc1 $at, $f22 +/* 0D16B0 7F09CB80 46007306 */ mov.s $f12, $f14 +/* 0D16B4 7F09CB84 45000002 */ bc1f .L7F09CB90 +/* 0D16B8 7F09CB88 4600C406 */ mov.s $f16, $f24 +/* 0D16BC 7F09CB8C 46001007 */ neg.s $f0, $f2 +.L7F09CB90: +/* 0D16C0 7F09CB90 461E703C */ c.lt.s $f14, $f30 +/* 0D16C4 7F09CB94 4600B501 */ sub.s $f20, $f22, $f0 +/* 0D16C8 7F09CB98 45020003 */ bc1fl .L7F09CBA8 +/* 0D16CC 7F09CB9C 461EC03C */ c.lt.s $f24, $f30 +/* 0D16D0 7F09CBA0 46007307 */ neg.s $f12, $f14 +/* 0D16D4 7F09CBA4 461EC03C */ c.lt.s $f24, $f30 +.L7F09CBA8: +/* 0D16D8 7F09CBA8 460CB301 */ sub.s $f12, $f22, $f12 +/* 0D16DC 7F09CBAC 45020003 */ bc1fl .L7F09CBBC +/* 0D16E0 7F09CBB0 4614603C */ c.lt.s $f12, $f20 +/* 0D16E4 7F09CBB4 4600C407 */ neg.s $f16, $f24 +/* 0D16E8 7F09CBB8 4614603C */ c.lt.s $f12, $f20 +.L7F09CBBC: +/* 0D16EC 7F09CBBC 4610B401 */ sub.s $f16, $f22, $f16 +/* 0D16F0 7F09CBC0 45020003 */ bc1fl .L7F09CBD0 +/* 0D16F4 7F09CBC4 4614803C */ c.lt.s $f16, $f20 +/* 0D16F8 7F09CBC8 46006506 */ mov.s $f20, $f12 +/* 0D16FC 7F09CBCC 4614803C */ c.lt.s $f16, $f20 +.L7F09CBD0: +/* 0D1700 7F09CBD0 00000000 */ nop +/* 0D1704 7F09CBD4 45020003 */ bc1fl .L7F09CBE4 +/* 0D1708 7F09CBD8 8C6D0064 */ lw $t5, 0x64($v1) +/* 0D170C 7F09CBDC 46008506 */ mov.s $f20, $f16 +/* 0D1710 7F09CBE0 8C6D0064 */ lw $t5, 0x64($v1) +.L7F09CBE4: +/* 0D1714 7F09CBE4 461AA502 */ mul.s $f20, $f20, $f26 +/* 0D1718 7F09CBE8 31AE1000 */ andi $t6, $t5, 0x1000 +/* 0D171C 7F09CBEC 15C00021 */ bnez $t6, .L7F09CC74 +/* 0D1720 7F09CBF0 00000000 */ nop +/* 0D1724 7F09CBF4 8C6F000C */ lw $t7, 0xc($v1) +/* 0D1728 7F09CBF8 3C010020 */ lui $at, (0x00200400 >> 16) # lui $at, 0x20 +/* 0D172C 7F09CBFC 34210400 */ ori $at, (0x00200400 & 0xFFFF) # ori $at, $at, 0x400 +/* 0D1730 7F09CC00 01E1C024 */ and $t8, $t7, $at +/* 0D1734 7F09CC04 1700001B */ bnez $t8, .L7F09CC74 +/* 0D1738 7F09CC08 00000000 */ nop +/* 0D173C 7F09CC0C 0C002914 */ jal get_random_value +/* 0D1740 7F09CC10 AFA300CC */ sw $v1, 0xcc($sp) +/* 0D1744 7F09CC14 44822000 */ mtc1 $v0, $f4 +/* 0D1748 7F09CC18 8FA300CC */ lw $v1, 0xcc($sp) +/* 0D174C 7F09CC1C 02002025 */ move $a0, $s0 +/* 0D1750 7F09CC20 04410005 */ bgez $v0, .L7F09CC38 +/* 0D1754 7F09CC24 468021A0 */ cvt.s.w $f6, $f4 +/* 0D1758 7F09CC28 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D175C 7F09CC2C 44815000 */ mtc1 $at, $f10 +/* 0D1760 7F09CC30 00000000 */ nop +/* 0D1764 7F09CC34 460A3180 */ add.s $f6, $f6, $f10 +.L7F09CC38: +/* 0D1768 7F09CC38 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D176C 7F09CC3C 44814000 */ mtc1 $at, $f8 +/* 0D1770 7F09CC40 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D1774 7F09CC44 44815000 */ mtc1 $at, $f10 +/* 0D1778 7F09CC48 46083102 */ mul.s $f4, $f6, $f8 +/* 0D177C 7F09CC4C 825903CE */ lb $t9, 0x3ce($s2) +/* 0D1780 7F09CC50 24660058 */ addiu $a2, $v1, 0x58 +/* 0D1784 7F09CC54 2407001D */ li $a3, 29 +/* 0D1788 7F09CC58 AFB90010 */ sw $t9, 0x10($sp) +/* 0D178C 7F09CC5C 460A2182 */ mul.s $f6, $f4, $f10 +/* 0D1790 7F09CC60 46163200 */ add.s $f8, $f6, $f22 +/* 0D1794 7F09CC64 46144102 */ mul.s $f4, $f8, $f20 +/* 0D1798 7F09CC68 44052000 */ mfc1 $a1, $f4 +/* 0D179C 7F09CC6C 0FC137BF */ jal sub_GAME_7F04DEFC +/* 0D17A0 7F09CC70 00000000 */ nop +.L7F09CC74: +/* 0D17A4 7F09CC74 10000084 */ b .L7F09CE88 +/* 0D17A8 7F09CC78 86620002 */ lh $v0, 2($s3) +.L7F09CC7C: +/* 0D17AC 7F09CC7C 12A20003 */ beq $s5, $v0, .L7F09CC8C +/* 0D17B0 7F09CC80 24010006 */ li $at, 6 +/* 0D17B4 7F09CC84 54410080 */ bnel $v0, $at, .L7F09CE88 +/* 0D17B8 7F09CC88 86620002 */ lh $v0, 2($s3) +.L7F09CC8C: +/* 0D17BC 7F09CC8C C60A0008 */ lwc1 $f10, 8($s0) +/* 0D17C0 7F09CC90 C6260008 */ lwc1 $f6, 8($s1) +/* 0D17C4 7F09CC94 C608000C */ lwc1 $f8, 0xc($s0) +/* 0D17C8 7F09CC98 C624000C */ lwc1 $f4, 0xc($s1) +/* 0D17CC 7F09CC9C 46065581 */ sub.s $f22, $f10, $f6 +/* 0D17D0 7F09CCA0 C6260010 */ lwc1 $f6, 0x10($s1) +/* 0D17D4 7F09CCA4 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 0D17D8 7F09CCA8 46044481 */ sub.s $f18, $f8, $f4 +/* 0D17DC 7F09CCAC 461CB03E */ c.le.s $f22, $f28 +/* 0D17E0 7F09CCB0 46065601 */ sub.s $f24, $f10, $f6 +/* 0D17E4 7F09CCB4 45020074 */ bc1fl .L7F09CE88 +/* 0D17E8 7F09CCB8 86620002 */ lh $v0, 2($s3) +/* 0D17EC 7F09CCBC 4600E007 */ neg.s $f0, $f28 +/* 0D17F0 7F09CCC0 C7A80108 */ lwc1 $f8, 0x108($sp) +/* 0D17F4 7F09CCC4 4616003E */ c.le.s $f0, $f22 +/* 0D17F8 7F09CCC8 00000000 */ nop +/* 0D17FC 7F09CCCC 4502006E */ bc1fl .L7F09CE88 +/* 0D1800 7F09CCD0 86620002 */ lh $v0, 2($s3) +/* 0D1804 7F09CCD4 4608903E */ c.le.s $f18, $f8 +/* 0D1808 7F09CCD8 00000000 */ nop +/* 0D180C 7F09CCDC 4502006A */ bc1fl .L7F09CE88 +/* 0D1810 7F09CCE0 86620002 */ lh $v0, 2($s3) +/* 0D1814 7F09CCE4 46004107 */ neg.s $f4, $f8 +/* 0D1818 7F09CCE8 4612203E */ c.le.s $f4, $f18 +/* 0D181C 7F09CCEC 00000000 */ nop +/* 0D1820 7F09CCF0 45020065 */ bc1fl .L7F09CE88 +/* 0D1824 7F09CCF4 86620002 */ lh $v0, 2($s3) +/* 0D1828 7F09CCF8 461CC03E */ c.le.s $f24, $f28 +/* 0D182C 7F09CCFC 00000000 */ nop +/* 0D1830 7F09CD00 45020061 */ bc1fl .L7F09CE88 +/* 0D1834 7F09CD04 86620002 */ lh $v0, 2($s3) +/* 0D1838 7F09CD08 4618003E */ c.le.s $f0, $f24 +/* 0D183C 7F09CD0C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D1840 7F09CD10 4502005D */ bc1fl .L7F09CE88 +/* 0D1844 7F09CD14 86620002 */ lh $v0, 2($s3) +/* 0D1848 7F09CD18 461CB083 */ div.s $f2, $f22, $f28 +/* 0D184C 7F09CD1C C6DA003C */ lwc1 $f26, 0x3c($s6) +/* 0D1850 7F09CD20 26250008 */ addiu $a1, $s1, 8 +/* 0D1854 7F09CD24 02803825 */ move $a3, $s4 +/* 0D1858 7F09CD28 46089383 */ div.s $f14, $f18, $f8 +/* 0D185C 7F09CD2C 46001006 */ mov.s $f0, $f2 +/* 0D1860 7F09CD30 461E103C */ c.lt.s $f2, $f30 +/* 0D1864 7F09CD34 461CC503 */ div.s $f20, $f24, $f28 +/* 0D1868 7F09CD38 46007306 */ mov.s $f12, $f14 +/* 0D186C 7F09CD3C 45000002 */ bc1f .L7F09CD48 +/* 0D1870 7F09CD40 4600A406 */ mov.s $f16, $f20 +/* 0D1874 7F09CD44 46001007 */ neg.s $f0, $f2 +.L7F09CD48: +/* 0D1878 7F09CD48 461E703C */ c.lt.s $f14, $f30 +/* 0D187C 7F09CD4C 44811000 */ mtc1 $at, $f2 +/* 0D1880 7F09CD50 45020003 */ bc1fl .L7F09CD60 +/* 0D1884 7F09CD54 461EA03C */ c.lt.s $f20, $f30 +/* 0D1888 7F09CD58 46007307 */ neg.s $f12, $f14 +/* 0D188C 7F09CD5C 461EA03C */ c.lt.s $f20, $f30 +.L7F09CD60: +/* 0D1890 7F09CD60 460C1301 */ sub.s $f12, $f2, $f12 +/* 0D1894 7F09CD64 45020003 */ bc1fl .L7F09CD74 +/* 0D1898 7F09CD68 46001501 */ sub.s $f20, $f2, $f0 +/* 0D189C 7F09CD6C 4600A407 */ neg.s $f16, $f20 +/* 0D18A0 7F09CD70 46001501 */ sub.s $f20, $f2, $f0 +.L7F09CD74: +/* 0D18A4 7F09CD74 46101401 */ sub.s $f16, $f2, $f16 +/* 0D18A8 7F09CD78 4614603C */ c.lt.s $f12, $f20 +/* 0D18AC 7F09CD7C 00000000 */ nop +/* 0D18B0 7F09CD80 45020003 */ bc1fl .L7F09CD90 +/* 0D18B4 7F09CD84 4614803C */ c.lt.s $f16, $f20 +/* 0D18B8 7F09CD88 46006506 */ mov.s $f20, $f12 +/* 0D18BC 7F09CD8C 4614803C */ c.lt.s $f16, $f20 +.L7F09CD90: +/* 0D18C0 7F09CD90 00000000 */ nop +/* 0D18C4 7F09CD94 45000002 */ bc1f .L7F09CDA0 +/* 0D18C8 7F09CD98 00000000 */ nop +/* 0D18CC 7F09CD9C 46008506 */ mov.s $f20, $f16 +.L7F09CDA0: +/* 0D18D0 7F09CDA0 4614A502 */ mul.s $f20, $f20, $f20 +/* 0D18D4 7F09CDA4 00000000 */ nop +/* 0D18D8 7F09CDA8 461AA502 */ mul.s $f20, $f20, $f26 +/* 0D18DC 7F09CDAC 16A20006 */ bne $s5, $v0, .L7F09CDC8 +/* 0D18E0 7F09CDB0 00000000 */ nop +/* 0D18E4 7F09CDB4 4406A000 */ mfc1 $a2, $f20 +/* 0D18E8 7F09CDB8 0FC09E01 */ jal sub_GAME_7F027804 +/* 0D18EC 7F09CDBC 8E040004 */ lw $a0, 4($s0) +/* 0D18F0 7F09CDC0 10000031 */ b .L7F09CE88 +/* 0D18F4 7F09CDC4 86620002 */ lh $v0, 2($s3) +.L7F09CDC8: +/* 0D18F8 7F09CDC8 461EB032 */ c.eq.s $f22, $f30 +/* 0D18FC 7F09CDCC 00000000 */ nop +/* 0D1900 7F09CDD0 45000005 */ bc1f .L7F09CDE8 +/* 0D1904 7F09CDD4 00000000 */ nop +/* 0D1908 7F09CDD8 461EC032 */ c.eq.s $f24, $f30 +/* 0D190C 7F09CDDC 00000000 */ nop +/* 0D1910 7F09CDE0 4501000E */ bc1t .L7F09CE1C +/* 0D1914 7F09CDE4 00000000 */ nop +.L7F09CDE8: +/* 0D1918 7F09CDE8 4616B282 */ mul.s $f10, $f22, $f22 +/* 0D191C 7F09CDEC 00000000 */ nop +/* 0D1920 7F09CDF0 4618C182 */ mul.s $f6, $f24, $f24 +/* 0D1924 7F09CDF4 0C007DF8 */ jal sqrtf +/* 0D1928 7F09CDF8 46065300 */ add.s $f12, $f10, $f6 +/* 0D192C 7F09CDFC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D1930 7F09CE00 44812000 */ mtc1 $at, $f4 +/* 0D1934 7F09CE04 00000000 */ nop +/* 0D1938 7F09CE08 46002083 */ div.s $f2, $f4, $f0 +/* 0D193C 7F09CE0C 4602B582 */ mul.s $f22, $f22, $f2 +/* 0D1940 7F09CE10 00000000 */ nop +/* 0D1944 7F09CE14 4602C602 */ mul.s $f24, $f24, $f2 +/* 0D1948 7F09CE18 00000000 */ nop +.L7F09CE1C: +/* 0D194C 7F09CE1C 0FC26C54 */ jal get_cur_playernum +/* 0D1950 7F09CE20 00000000 */ nop +/* 0D1954 7F09CE24 AFA20090 */ sw $v0, 0x90($sp) +/* 0D1958 7F09CE28 0FC26C57 */ jal sub_GAME_7F09B15C +/* 0D195C 7F09CE2C 02002025 */ move $a0, $s0 +/* 0D1960 7F09CE30 0FC26C43 */ jal set_cur_player +/* 0D1964 7F09CE34 00402025 */ move $a0, $v0 +/* 0D1968 7F09CE38 0FC26919 */ jal get_num_players +/* 0D196C 7F09CE3C 00000000 */ nop +/* 0D1970 7F09CE40 14540004 */ bne $v0, $s4, .L7F09CE54 +/* 0D1974 7F09CE44 3C018004 */ lui $at, %hi(D_80040178) +/* 0D1978 7F09CE48 C4280178 */ lwc1 $f8, %lo(D_80040178)($at) +/* 0D197C 7F09CE4C 4608A502 */ mul.s $f20, $f20, $f8 +/* 0D1980 7F09CE50 00000000 */ nop +.L7F09CE54: +/* 0D1984 7F09CE54 0FC1F39E */ jal get_intank_flag +/* 0D1988 7F09CE58 00000000 */ nop +/* 0D198C 7F09CE5C 14540002 */ bne $v0, $s4, .L7F09CE68 +/* 0D1990 7F09CE60 4600B386 */ mov.s $f14, $f22 +/* 0D1994 7F09CE64 4614A500 */ add.s $f20, $f20, $f20 +.L7F09CE68: +/* 0D1998 7F09CE68 4406C000 */ mfc1 $a2, $f24 +/* 0D199C 7F09CE6C 824703CE */ lb $a3, 0x3ce($s2) +/* 0D19A0 7F09CE70 AFB40010 */ sw $s4, 0x10($sp) +/* 0D19A4 7F09CE74 0FC22647 */ jal record_damage_kills +/* 0D19A8 7F09CE78 4600A306 */ mov.s $f12, $f20 +/* 0D19AC 7F09CE7C 0FC26C43 */ jal set_cur_player +/* 0D19B0 7F09CE80 8FA40090 */ lw $a0, 0x90($sp) +/* 0D19B4 7F09CE84 86620002 */ lh $v0, 2($s3) +.L7F09CE88: +/* 0D19B8 7F09CE88 26730002 */ addiu $s3, $s3, 2 +/* 0D19BC 7F09CE8C 0443FEFC */ bgezl $v0, .L7F09CA80 +/* 0D19C0 7F09CE90 00024880 */ sll $t1, $v0, 2 +/* 0D19C4 7F09CE94 86C9001C */ lh $t1, 0x1c($s6) +.L7F09CE98: +/* 0D19C8 7F09CE98 864803C8 */ lh $t0, 0x3c8($s2) +/* 0D19CC 7F09CE9C 00095083 */ sra $t2, $t1, 2 +/* 0D19D0 7F09CEA0 010A5821 */ addu $t3, $t0, $t2 +/* 0D19D4 7F09CEA4 A64B03CA */ sh $t3, 0x3ca($s2) +.L7F09CEA8: +/* 0D19D8 7F09CEA8 8FBF006C */ lw $ra, 0x6c($sp) +/* 0D19DC 7F09CEAC D7B40020 */ ldc1 $f20, 0x20($sp) +/* 0D19E0 7F09CEB0 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 0D19E4 7F09CEB4 D7B80030 */ ldc1 $f24, 0x30($sp) +/* 0D19E8 7F09CEB8 D7BA0038 */ ldc1 $f26, 0x38($sp) +/* 0D19EC 7F09CEBC D7BC0040 */ ldc1 $f28, 0x40($sp) +/* 0D19F0 7F09CEC0 D7BE0048 */ ldc1 $f30, 0x48($sp) +/* 0D19F4 7F09CEC4 8FB00050 */ lw $s0, 0x50($sp) +/* 0D19F8 7F09CEC8 8FB10054 */ lw $s1, 0x54($sp) +/* 0D19FC 7F09CECC 8FB20058 */ lw $s2, 0x58($sp) +/* 0D1A00 7F09CED0 8FB3005C */ lw $s3, 0x5c($sp) +/* 0D1A04 7F09CED4 8FB40060 */ lw $s4, 0x60($sp) +/* 0D1A08 7F09CED8 8FB50064 */ lw $s5, 0x64($sp) +/* 0D1A0C 7F09CEDC 8FB60068 */ lw $s6, 0x68($sp) +/* 0D1A10 7F09CEE0 03E00008 */ jr $ra +/* 0D1A14 7F09CEE4 27BD0100 */ addiu $sp, $sp, 0x100 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09CEE8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800576BC +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F09CEE8 +/* 0D1A18 7F09CEE8 27BDFF38 */ addiu $sp, $sp, -0xc8 +/* 0D1A1C 7F09CEEC AFBF006C */ sw $ra, 0x6c($sp) +/* 0D1A20 7F09CEF0 AFB70068 */ sw $s7, 0x68($sp) +/* 0D1A24 7F09CEF4 AFB60064 */ sw $s6, 0x64($sp) +/* 0D1A28 7F09CEF8 AFB50060 */ sw $s5, 0x60($sp) +/* 0D1A2C 7F09CEFC AFB4005C */ sw $s4, 0x5c($sp) +/* 0D1A30 7F09CF00 AFB30058 */ sw $s3, 0x58($sp) +/* 0D1A34 7F09CF04 AFB20054 */ sw $s2, 0x54($sp) +/* 0D1A38 7F09CF08 AFB10050 */ sw $s1, 0x50($sp) +/* 0D1A3C 7F09CF0C AFB0004C */ sw $s0, 0x4c($sp) +/* 0D1A40 7F09CF10 F7BE0040 */ sdc1 $f30, 0x40($sp) +/* 0D1A44 7F09CF14 F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 0D1A48 7F09CF18 F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0D1A4C 7F09CF1C F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0D1A50 7F09CF20 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0D1A54 7F09CF24 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D1A58 7F09CF28 8C920004 */ lw $s2, 4($a0) +/* 0D1A5C 7F09CF2C 3C028005 */ lui $v0, %hi(clock_timer) +/* 0D1A60 7F09CF30 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0D1A64 7F09CF34 824503CC */ lb $a1, 0x3cc($s2) +/* 0D1A68 7F09CF38 3C0F8004 */ lui $t7, %hi(D_8004017C+0x108) +/* 0D1A6C 7F09CF3C 25EF0284 */ addiu $t7, %lo(D_8004017C+0x108) # addiu $t7, $t7, 0x284 +/* 0D1A70 7F09CF40 00057180 */ sll $t6, $a1, 6 +/* 0D1A74 7F09CF44 00809825 */ move $s3, $a0 +/* 0D1A78 7F09CF48 14400003 */ bnez $v0, .L7F09CF58 +/* 0D1A7C 7F09CF4C 01CFA821 */ addu $s5, $t6, $t7 +/* 0D1A80 7F09CF50 10000155 */ b .L7F09D4A8 +/* 0D1A84 7F09CF54 00001025 */ move $v0, $zero +.L7F09CF58: +/* 0D1A88 7F09CF58 2841000F */ slti $at, $v0, 0xf +/* 0D1A8C 7F09CF5C 50200007 */ beql $at, $zero, .L7F09CF7C +/* 0D1A90 7F09CF60 3C014170 */ lui $at, 0x4170 +/* 0D1A94 7F09CF64 44822000 */ mtc1 $v0, $f4 +/* 0D1A98 7F09CF68 00000000 */ nop +/* 0D1A9C 7F09CF6C 468021A0 */ cvt.s.w $f6, $f4 +/* 0D1AA0 7F09CF70 10000005 */ b .L7F09CF88 +/* 0D1AA4 7F09CF74 E7A600A0 */ swc1 $f6, 0xa0($sp) +/* 0D1AA8 7F09CF78 3C014170 */ li $at, 0x41700000 # 15.000000 +.L7F09CF7C: +/* 0D1AAC 7F09CF7C 44814000 */ mtc1 $at, $f8 +/* 0D1AB0 7F09CF80 00000000 */ nop +/* 0D1AB4 7F09CF84 E7A800A0 */ swc1 $f8, 0xa0($sp) +.L7F09CF88: +/* 0D1AB8 7F09CF88 864303C8 */ lh $v1, 0x3c8($s2) +/* 0D1ABC 7F09CF8C 28610008 */ slti $at, $v1, 8 +/* 0D1AC0 7F09CF90 542000D5 */ bnezl $at, .L7F09D2E8 +/* 0D1AC4 7F09CF94 C7AA00A0 */ lwc1 $f10, 0xa0($sp) +/* 0D1AC8 7F09CF98 86A2001C */ lh $v0, 0x1c($s5) +/* 0D1ACC 7F09CF9C 0062082A */ slt $at, $v1, $v0 +/* 0D1AD0 7F09CFA0 502000D1 */ beql $at, $zero, .L7F09D2E8 +/* 0D1AD4 7F09CFA4 C7AA00A0 */ lwc1 $f10, 0xa0($sp) +/* 0D1AD8 7F09CFA8 44835000 */ mtc1 $v1, $f10 +/* 0D1ADC 7F09CFAC C6B20008 */ lwc1 $f18, 8($s5) +/* 0D1AE0 7F09CFB0 C6A8000C */ lwc1 $f8, 0xc($s5) +/* 0D1AE4 7F09CFB4 46805020 */ cvt.s.w $f0, $f10 +/* 0D1AE8 7F09CFB8 C6B00000 */ lwc1 $f16, ($s5) +/* 0D1AEC 7F09CFBC C6A60004 */ lwc1 $f6, 4($s5) +/* 0D1AF0 7F09CFC0 2417000E */ li $s7, 14 +/* 0D1AF4 7F09CFC4 28610020 */ slti $at, $v1, 0x20 +/* 0D1AF8 7F09CFC8 24160001 */ li $s6, 1 +/* 0D1AFC 7F09CFCC 46009102 */ mul.s $f4, $f18, $f0 +/* 0D1B00 7F09CFD0 00000000 */ nop +/* 0D1B04 7F09CFD4 46004282 */ mul.s $f10, $f8, $f0 +/* 0D1B08 7F09CFD8 46048700 */ add.s $f28, $f16, $f4 +/* 0D1B0C 7F09CFDC 16E5001F */ bne $s7, $a1, .L7F09D05C +/* 0D1B10 7F09CFE0 460A3780 */ add.s $f30, $f6, $f10 +/* 0D1B14 7F09CFE4 1020000C */ beqz $at, .L7F09D018 +/* 0D1B18 7F09CFE8 C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 0D1B1C 7F09CFEC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0D1B20 7F09CFF0 44819000 */ mtc1 $at, $f18 +/* 0D1B24 7F09CFF4 C668000C */ lwc1 $f8, 0xc($s3) +/* 0D1B28 7F09CFF8 46109102 */ mul.s $f4, $f18, $f16 +/* 0D1B2C 7F09CFFC 46044180 */ add.s $f6, $f8, $f4 +/* 0D1B30 7F09D000 E666000C */ swc1 $f6, 0xc($s3) +/* 0D1B34 7F09D004 864303C8 */ lh $v1, 0x3c8($s2) +/* 0D1B38 7F09D008 86A2001C */ lh $v0, 0x1c($s5) +/* 0D1B3C 7F09D00C 44835000 */ mtc1 $v1, $f10 +/* 0D1B40 7F09D010 00000000 */ nop +/* 0D1B44 7F09D014 46805020 */ cvt.s.w $f0, $f10 +.L7F09D018: +/* 0D1B48 7F09D018 28610021 */ slti $at, $v1, 0x21 +/* 0D1B4C 7F09D01C 1420000F */ bnez $at, .L7F09D05C +/* 0D1B50 7F09D020 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0D1B54 7F09D024 44811000 */ mtc1 $at, $f2 +/* 0D1B58 7F09D028 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 0D1B5C 7F09D02C 44819000 */ mtc1 $at, $f18 +/* 0D1B60 7F09D030 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0D1B64 7F09D034 44814000 */ mtc1 $at, $f8 +/* 0D1B68 7F09D038 46120402 */ mul.s $f16, $f0, $f18 +/* 0D1B6C 7F09D03C 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0D1B70 7F09D040 4481F000 */ mtc1 $at, $f30 +/* 0D1B74 7F09D044 46088700 */ add.s $f28, $f16, $f8 +/* 0D1B78 7F09D048 461C103C */ c.lt.s $f2, $f28 +/* 0D1B7C 7F09D04C 00000000 */ nop +/* 0D1B80 7F09D050 45000002 */ bc1f .L7F09D05C +/* 0D1B84 7F09D054 00000000 */ nop +/* 0D1B88 7F09D058 46001706 */ mov.s $f28, $f2 +.L7F09D05C: +/* 0D1B8C 7F09D05C 86B8001E */ lh $t8, 0x1e($s5) +/* 0D1B90 7F09D060 44829000 */ mtc1 $v0, $f18 +/* 0D1B94 7F09D064 0000A025 */ move $s4, $zero +/* 0D1B98 7F09D068 44982000 */ mtc1 $t8, $f4 +/* 0D1B9C 7F09D06C 46809420 */ cvt.s.w $f16, $f18 +/* 0D1BA0 7F09D070 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D1BA4 7F09D074 468021A0 */ cvt.s.w $f6, $f4 +/* 0D1BA8 7F09D078 46003282 */ mul.s $f10, $f6, $f0 +/* 0D1BAC 7F09D07C 46105203 */ div.s $f8, $f10, $f16 +/* 0D1BB0 7F09D080 4600410D */ trunc.w.s $f4, $f8 +/* 0D1BB4 7F09D084 44082000 */ mfc1 $t0, $f4 +/* 0D1BB8 7F09D088 00000000 */ nop +/* 0D1BBC 7F09D08C 25090001 */ addiu $t1, $t0, 1 +/* 0D1BC0 7F09D090 19200061 */ blez $t1, .L7F09D218 +/* 0D1BC4 7F09D094 AFA9009C */ sw $t1, 0x9c($sp) +/* 0D1BC8 7F09D098 4481D000 */ mtc1 $at, $f26 +/* 0D1BCC 7F09D09C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D1BD0 7F09D0A0 4481B000 */ mtc1 $at, $f22 +/* 0D1BD4 7F09D0A4 241103C0 */ li $s1, 960 +/* 0D1BD8 7F09D0A8 00001025 */ move $v0, $zero +.L7F09D0AC: +/* 0D1BDC 7F09D0AC 02408025 */ move $s0, $s2 +.L7F09D0B0: +/* 0D1BE0 7F09D0B0 860A001C */ lh $t2, 0x1c($s0) +/* 0D1BE4 7F09D0B4 24420018 */ addiu $v0, $v0, 0x18 +/* 0D1BE8 7F09D0B8 15400051 */ bnez $t2, .L7F09D200 +/* 0D1BEC 7F09D0BC 00000000 */ nop +/* 0D1BF0 7F09D0C0 0C002914 */ jal get_random_value +/* 0D1BF4 7F09D0C4 A616001C */ sh $s6, 0x1c($s0) +/* 0D1BF8 7F09D0C8 44823000 */ mtc1 $v0, $f6 +/* 0D1BFC 7F09D0CC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1C00 7F09D0D0 04410004 */ bgez $v0, .L7F09D0E4 +/* 0D1C04 7F09D0D4 468034A0 */ cvt.s.w $f18, $f6 +/* 0D1C08 7F09D0D8 44815000 */ mtc1 $at, $f10 +/* 0D1C0C 7F09D0DC 00000000 */ nop +/* 0D1C10 7F09D0E0 460A9480 */ add.s $f18, $f18, $f10 +.L7F09D0E4: +/* 0D1C14 7F09D0E4 46169402 */ mul.s $f16, $f18, $f22 +/* 0D1C18 7F09D0E8 C6660008 */ lwc1 $f6, 8($s3) +/* 0D1C1C 7F09D0EC 461A8201 */ sub.s $f8, $f16, $f26 +/* 0D1C20 7F09D0F0 461C4102 */ mul.s $f4, $f8, $f28 +/* 0D1C24 7F09D0F4 46062280 */ add.s $f10, $f4, $f6 +/* 0D1C28 7F09D0F8 0C002914 */ jal get_random_value +/* 0D1C2C 7F09D0FC E60A0008 */ swc1 $f10, 8($s0) +/* 0D1C30 7F09D100 44829000 */ mtc1 $v0, $f18 +/* 0D1C34 7F09D104 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1C38 7F09D108 04410004 */ bgez $v0, .L7F09D11C +/* 0D1C3C 7F09D10C 46809420 */ cvt.s.w $f16, $f18 +/* 0D1C40 7F09D110 44814000 */ mtc1 $at, $f8 +/* 0D1C44 7F09D114 00000000 */ nop +/* 0D1C48 7F09D118 46088400 */ add.s $f16, $f16, $f8 +.L7F09D11C: +/* 0D1C4C 7F09D11C 46168102 */ mul.s $f4, $f16, $f22 +/* 0D1C50 7F09D120 C672000C */ lwc1 $f18, 0xc($s3) +/* 0D1C54 7F09D124 461A2181 */ sub.s $f6, $f4, $f26 +/* 0D1C58 7F09D128 461E3282 */ mul.s $f10, $f6, $f30 +/* 0D1C5C 7F09D12C 46125200 */ add.s $f8, $f10, $f18 +/* 0D1C60 7F09D130 0C002914 */ jal get_random_value +/* 0D1C64 7F09D134 E608000C */ swc1 $f8, 0xc($s0) +/* 0D1C68 7F09D138 44828000 */ mtc1 $v0, $f16 +/* 0D1C6C 7F09D13C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1C70 7F09D140 04410004 */ bgez $v0, .L7F09D154 +/* 0D1C74 7F09D144 46808120 */ cvt.s.w $f4, $f16 +/* 0D1C78 7F09D148 44813000 */ mtc1 $at, $f6 +/* 0D1C7C 7F09D14C 00000000 */ nop +/* 0D1C80 7F09D150 46062100 */ add.s $f4, $f4, $f6 +.L7F09D154: +/* 0D1C84 7F09D154 46162282 */ mul.s $f10, $f4, $f22 +/* 0D1C88 7F09D158 C6700010 */ lwc1 $f16, 0x10($s3) +/* 0D1C8C 7F09D15C 461A5481 */ sub.s $f18, $f10, $f26 +/* 0D1C90 7F09D160 461C9202 */ mul.s $f8, $f18, $f28 +/* 0D1C94 7F09D164 46104180 */ add.s $f6, $f8, $f16 +/* 0D1C98 7F09D168 0C002914 */ jal get_random_value +/* 0D1C9C 7F09D16C E6060010 */ swc1 $f6, 0x10($s0) +/* 0D1CA0 7F09D170 44822000 */ mtc1 $v0, $f4 +/* 0D1CA4 7F09D174 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1CA8 7F09D178 04410004 */ bgez $v0, .L7F09D18C +/* 0D1CAC 7F09D17C 468022A0 */ cvt.s.w $f10, $f4 +/* 0D1CB0 7F09D180 44819000 */ mtc1 $at, $f18 +/* 0D1CB4 7F09D184 00000000 */ nop +/* 0D1CB8 7F09D188 46125280 */ add.s $f10, $f10, $f18 +.L7F09D18C: +/* 0D1CBC 7F09D18C 46165202 */ mul.s $f8, $f10, $f22 +/* 0D1CC0 7F09D190 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D1CC4 7F09D194 44813000 */ mtc1 $at, $f6 +/* 0D1CC8 7F09D198 C6B20010 */ lwc1 $f18, 0x10($s5) +/* 0D1CCC 7F09D19C 461A4402 */ mul.s $f16, $f8, $f26 +/* 0D1CD0 7F09D1A0 46068100 */ add.s $f4, $f16, $f6 +/* 0D1CD4 7F09D1A4 46122502 */ mul.s $f20, $f4, $f18 +/* 0D1CD8 7F09D1A8 0C002914 */ jal get_random_value +/* 0D1CDC 7F09D1AC 00000000 */ nop +/* 0D1CE0 7F09D1B0 44825000 */ mtc1 $v0, $f10 +/* 0D1CE4 7F09D1B4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1CE8 7F09D1B8 04410004 */ bgez $v0, .L7F09D1CC +/* 0D1CEC 7F09D1BC 46805220 */ cvt.s.w $f8, $f10 +/* 0D1CF0 7F09D1C0 44818000 */ mtc1 $at, $f16 +/* 0D1CF4 7F09D1C4 00000000 */ nop +/* 0D1CF8 7F09D1C8 46104200 */ add.s $f8, $f8, $f16 +.L7F09D1CC: +/* 0D1CFC 7F09D1CC 46164182 */ mul.s $f6, $f8, $f22 +/* 0D1D00 7F09D1D0 3C018005 */ lui $at, %hi(D_800576BC) +/* 0D1D04 7F09D1D4 C42476BC */ lwc1 $f4, %lo(D_800576BC)($at) +/* 0D1D08 7F09D1D8 46043302 */ mul.s $f12, $f6, $f4 +/* 0D1D0C 7F09D1DC 0FC15FA8 */ jal cosf +/* 0D1D10 7F09D1E0 46006606 */ mov.s $f24, $f12 +/* 0D1D14 7F09D1E4 46140482 */ mul.s $f18, $f0, $f20 +/* 0D1D18 7F09D1E8 4600C306 */ mov.s $f12, $f24 +/* 0D1D1C 7F09D1EC 0FC15FAB */ jal sinf +/* 0D1D20 7F09D1F0 E6120014 */ swc1 $f18, 0x14($s0) +/* 0D1D24 7F09D1F4 46140282 */ mul.s $f10, $f0, $f20 +/* 0D1D28 7F09D1F8 10000003 */ b .L7F09D208 +/* 0D1D2C 7F09D1FC E60A0018 */ swc1 $f10, 0x18($s0) +.L7F09D200: +/* 0D1D30 7F09D200 1451FFAB */ bne $v0, $s1, .L7F09D0B0 +/* 0D1D34 7F09D204 26100018 */ addiu $s0, $s0, 0x18 +.L7F09D208: +/* 0D1D38 7F09D208 8FAB009C */ lw $t3, 0x9c($sp) +/* 0D1D3C 7F09D20C 26940001 */ addiu $s4, $s4, 1 +/* 0D1D40 7F09D210 568BFFA6 */ bnel $s4, $t3, .L7F09D0AC +/* 0D1D44 7F09D214 00001025 */ move $v0, $zero +.L7F09D218: +/* 0D1D48 7F09D218 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D1D4C 7F09D21C 4481D000 */ mtc1 $at, $f26 +/* 0D1D50 7F09D220 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0D1D54 7F09D224 44814000 */ mtc1 $at, $f8 +/* 0D1D58 7F09D228 C6B00010 */ lwc1 $f16, 0x10($s5) +/* 0D1D5C 7F09D22C C6720008 */ lwc1 $f18, 8($s3) +/* 0D1D60 7F09D230 02602025 */ move $a0, $s3 +/* 0D1D64 7F09D234 46088002 */ mul.s $f0, $f16, $f8 +/* 0D1D68 7F09D238 27A50090 */ addiu $a1, $sp, 0x90 +/* 0D1D6C 7F09D23C 27A60084 */ addiu $a2, $sp, 0x84 +/* 0D1D70 7F09D240 461AE182 */ mul.s $f6, $f28, $f26 +/* 0D1D74 7F09D244 46003700 */ add.s $f28, $f6, $f0 +/* 0D1D78 7F09D248 461AF102 */ mul.s $f4, $f30, $f26 +/* 0D1D7C 7F09D24C 4407E000 */ mfc1 $a3, $f28 +/* 0D1D80 7F09D250 461C9281 */ sub.s $f10, $f18, $f28 +/* 0D1D84 7F09D254 46002780 */ add.s $f30, $f4, $f0 +/* 0D1D88 7F09D258 E7AA0090 */ swc1 $f10, 0x90($sp) +/* 0D1D8C 7F09D25C C670000C */ lwc1 $f16, 0xc($s3) +/* 0D1D90 7F09D260 461E8201 */ sub.s $f8, $f16, $f30 +/* 0D1D94 7F09D264 E7A80094 */ swc1 $f8, 0x94($sp) +/* 0D1D98 7F09D268 C6660010 */ lwc1 $f6, 0x10($s3) +/* 0D1D9C 7F09D26C 461C3101 */ sub.s $f4, $f6, $f28 +/* 0D1DA0 7F09D270 E7A40098 */ swc1 $f4, 0x98($sp) +/* 0D1DA4 7F09D274 C6720008 */ lwc1 $f18, 8($s3) +/* 0D1DA8 7F09D278 461C9280 */ add.s $f10, $f18, $f28 +/* 0D1DAC 7F09D27C E7AA0084 */ swc1 $f10, 0x84($sp) +/* 0D1DB0 7F09D280 C670000C */ lwc1 $f16, 0xc($s3) +/* 0D1DB4 7F09D284 461E8200 */ add.s $f8, $f16, $f30 +/* 0D1DB8 7F09D288 E7A80088 */ swc1 $f8, 0x88($sp) +/* 0D1DBC 7F09D28C C6660010 */ lwc1 $f6, 0x10($s3) +/* 0D1DC0 7F09D290 461C3100 */ add.s $f4, $f6, $f28 +/* 0D1DC4 7F09D294 0FC0F89F */ jal sub_GAME_7F03E27C +/* 0D1DC8 7F09D298 E7A4008C */ swc1 $f4, 0x8c($sp) +/* 0D1DCC 7F09D29C 864C03C8 */ lh $t4, 0x3c8($s2) +/* 0D1DD0 7F09D2A0 C6A00014 */ lwc1 $f0, 0x14($s5) +/* 0D1DD4 7F09D2A4 C6B20018 */ lwc1 $f18, 0x18($s5) +/* 0D1DD8 7F09D2A8 448C8000 */ mtc1 $t4, $f16 +/* 0D1DDC 7F09D2AC 86AD001C */ lh $t5, 0x1c($s5) +/* 0D1DE0 7F09D2B0 46009281 */ sub.s $f10, $f18, $f0 +/* 0D1DE4 7F09D2B4 02602025 */ move $a0, $s3 +/* 0D1DE8 7F09D2B8 448D2000 */ mtc1 $t5, $f4 +/* 0D1DEC 7F09D2BC 46808220 */ cvt.s.w $f8, $f16 +/* 0D1DF0 7F09D2C0 468024A0 */ cvt.s.w $f18, $f4 +/* 0D1DF4 7F09D2C4 46085182 */ mul.s $f6, $f10, $f8 +/* 0D1DF8 7F09D2C8 46123403 */ div.s $f16, $f6, $f18 +/* 0D1DFC 7F09D2CC 46100780 */ add.s $f30, $f0, $f16 +/* 0D1E00 7F09D2D0 4405F000 */ mfc1 $a1, $f30 +/* 0D1E04 7F09D2D4 4406F000 */ mfc1 $a2, $f30 +/* 0D1E08 7F09D2D8 0FC27276 */ jal sub_GAME_7F09C9D8 +/* 0D1E0C 7F09D2DC 00000000 */ nop +/* 0D1E10 7F09D2E0 864303C8 */ lh $v1, 0x3c8($s2) +/* 0D1E14 7F09D2E4 C7AA00A0 */ lwc1 $f10, 0xa0($sp) +.L7F09D2E8: +/* 0D1E18 7F09D2E8 24160001 */ li $s6, 1 +/* 0D1E1C 7F09D2EC 2417000E */ li $s7, 14 +/* 0D1E20 7F09D2F0 4600520D */ trunc.w.s $f8, $f10 +/* 0D1E24 7F09D2F4 0000A025 */ move $s4, $zero +/* 0D1E28 7F09D2F8 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0D1E2C 7F09D2FC 440F4000 */ mfc1 $t7, $f8 +/* 0D1E30 7F09D300 00000000 */ nop +/* 0D1E34 7F09D304 19E00058 */ blez $t7, .L7F09D468 +/* 0D1E38 7F09D308 AFAF0070 */ sw $t7, 0x70($sp) +/* 0D1E3C 7F09D30C 4481A000 */ mtc1 $at, $f20 +/* 0D1E40 7F09D310 241103C0 */ li $s1, 960 +/* 0D1E44 7F09D314 24780001 */ addiu $t8, $v1, 1 +.L7F09D318: +/* 0D1E48 7F09D318 A65803C8 */ sh $t8, 0x3c8($s2) +/* 0D1E4C 7F09D31C 00001025 */ move $v0, $zero +/* 0D1E50 7F09D320 02408025 */ move $s0, $s2 +.L7F09D324: +/* 0D1E54 7F09D324 8603001C */ lh $v1, 0x1c($s0) +/* 0D1E58 7F09D328 24420018 */ addiu $v0, $v0, 0x18 +/* 0D1E5C 7F09D32C 18600002 */ blez $v1, .L7F09D338 +/* 0D1E60 7F09D330 24790001 */ addiu $t9, $v1, 1 +/* 0D1E64 7F09D334 A619001C */ sh $t9, 0x1c($s0) +.L7F09D338: +/* 0D1E68 7F09D338 1451FFFA */ bne $v0, $s1, .L7F09D324 +/* 0D1E6C 7F09D33C 26100018 */ addiu $s0, $s0, 0x18 +/* 0D1E70 7F09D340 864303C8 */ lh $v1, 0x3c8($s2) +/* 0D1E74 7F09D344 2401000F */ li $at, 15 +/* 0D1E78 7F09D348 54610005 */ bnel $v1, $at, .L7F09D360 +/* 0D1E7C 7F09D34C 86A2001C */ lh $v0, 0x1c($s5) +/* 0D1E80 7F09D350 824803CC */ lb $t0, 0x3cc($s2) +/* 0D1E84 7F09D354 52E80009 */ beql $s7, $t0, .L7F09D37C +/* 0D1E88 7F09D358 8E420004 */ lw $v0, 4($s2) +/* 0D1E8C 7F09D35C 86A2001C */ lh $v0, 0x1c($s5) +.L7F09D360: +/* 0D1E90 7F09D360 24690014 */ addiu $t1, $v1, 0x14 +/* 0D1E94 7F09D364 5449002F */ bnel $v0, $t1, .L7F09D424 +/* 0D1E98 7F09D368 00025843 */ sra $t3, $v0, 1 +/* 0D1E9C 7F09D36C 824A03CC */ lb $t2, 0x3cc($s2) +/* 0D1EA0 7F09D370 52EA002C */ beql $s7, $t2, .L7F09D424 +/* 0D1EA4 7F09D374 00025843 */ sra $t3, $v0, 1 +/* 0D1EA8 7F09D378 8E420004 */ lw $v0, 4($s2) +.L7F09D37C: +/* 0D1EAC 7F09D37C 26640008 */ addiu $a0, $s3, 8 +/* 0D1EB0 7F09D380 2667002C */ addiu $a3, $s3, 0x2c +/* 0D1EB4 7F09D384 5040001E */ beql $v0, $zero, .L7F09D400 +/* 0D1EB8 7F09D388 92680001 */ lbu $t0, 1($s3) +/* 0D1EBC 7F09D38C 8C450014 */ lw $a1, 0x14($v0) +/* 0D1EC0 7F09D390 50A0001B */ beql $a1, $zero, .L7F09D400 +/* 0D1EC4 7F09D394 92680001 */ lbu $t0, 1($s3) +/* 0D1EC8 7F09D398 904B0000 */ lbu $t3, ($v0) +/* 0D1ECC 7F09D39C 2447002C */ addiu $a3, $v0, 0x2c +/* 0D1ED0 7F09D3A0 24440008 */ addiu $a0, $v0, 8 +/* 0D1ED4 7F09D3A4 56CB000C */ bnel $s6, $t3, .L7F09D3D8 +/* 0D1ED8 7F09D3A8 926F0001 */ lbu $t7, 1($s3) +/* 0D1EDC 7F09D3AC 926C0001 */ lbu $t4, 1($s3) +/* 0D1EE0 7F09D3B0 8C430004 */ lw $v1, 4($v0) +/* 0D1EE4 7F09D3B4 92A60038 */ lbu $a2, 0x38($s5) +/* 0D1EE8 7F09D3B8 318D0008 */ andi $t5, $t4, 8 +/* 0D1EEC 7F09D3BC 000D702B */ sltu $t6, $zero, $t5 +/* 0D1EF0 7F09D3C0 AFAE0010 */ sw $t6, 0x10($sp) +/* 0D1EF4 7F09D3C4 0FC279C0 */ jal sub_GAME_7F09E700 +/* 0D1EF8 7F09D3C8 24640058 */ addiu $a0, $v1, 0x58 +/* 0D1EFC 7F09D3CC 10000009 */ b .L7F09D3F4 +/* 0D1F00 7F09D3D0 864303C8 */ lh $v1, 0x3c8($s2) +/* 0D1F04 7F09D3D4 926F0001 */ lbu $t7, 1($s3) +.L7F09D3D8: +/* 0D1F08 7F09D3D8 92A60038 */ lbu $a2, 0x38($s5) +/* 0D1F0C 7F09D3DC 2447002C */ addiu $a3, $v0, 0x2c +/* 0D1F10 7F09D3E0 31F80008 */ andi $t8, $t7, 8 +/* 0D1F14 7F09D3E4 0018C82B */ sltu $t9, $zero, $t8 +/* 0D1F18 7F09D3E8 0FC279C0 */ jal sub_GAME_7F09E700 +/* 0D1F1C 7F09D3EC AFB90010 */ sw $t9, 0x10($sp) +/* 0D1F20 7F09D3F0 864303C8 */ lh $v1, 0x3c8($s2) +.L7F09D3F4: +/* 0D1F24 7F09D3F4 1000000A */ b .L7F09D420 +/* 0D1F28 7F09D3F8 86A2001C */ lh $v0, 0x1c($s5) +/* 0D1F2C 7F09D3FC 92680001 */ lbu $t0, 1($s3) +.L7F09D400: +/* 0D1F30 7F09D400 8E650014 */ lw $a1, 0x14($s3) +/* 0D1F34 7F09D404 92A60038 */ lbu $a2, 0x38($s5) +/* 0D1F38 7F09D408 31090008 */ andi $t1, $t0, 8 +/* 0D1F3C 7F09D40C 0009502B */ sltu $t2, $zero, $t1 +/* 0D1F40 7F09D410 0FC279C0 */ jal sub_GAME_7F09E700 +/* 0D1F44 7F09D414 AFAA0010 */ sw $t2, 0x10($sp) +/* 0D1F48 7F09D418 864303C8 */ lh $v1, 0x3c8($s2) +/* 0D1F4C 7F09D41C 86A2001C */ lh $v0, 0x1c($s5) +.L7F09D420: +/* 0D1F50 7F09D420 00025843 */ sra $t3, $v0, 1 +.L7F09D424: +/* 0D1F54 7F09D424 5563000D */ bnel $t3, $v1, .L7F09D45C +/* 0D1F58 7F09D428 8FAD0070 */ lw $t5, 0x70($sp) +/* 0D1F5C 7F09D42C 824C03CD */ lb $t4, 0x3cd($s2) +/* 0D1F60 7F09D430 5180000A */ beql $t4, $zero, .L7F09D45C +/* 0D1F64 7F09D434 8FAD0070 */ lw $t5, 0x70($sp) +/* 0D1F68 7F09D438 C6A40010 */ lwc1 $f4, 0x10($s5) +/* 0D1F6C 7F09D43C 264403D0 */ addiu $a0, $s2, 0x3d0 +/* 0D1F70 7F09D440 864603DC */ lh $a2, 0x3dc($s2) +/* 0D1F74 7F09D444 46142182 */ mul.s $f6, $f4, $f20 +/* 0D1F78 7F09D448 44053000 */ mfc1 $a1, $f6 +/* 0D1F7C 7F09D44C 0FC2809F */ jal sub_GAME_7F0A027C +/* 0D1F80 7F09D450 00000000 */ nop +/* 0D1F84 7F09D454 864303C8 */ lh $v1, 0x3c8($s2) +/* 0D1F88 7F09D458 8FAD0070 */ lw $t5, 0x70($sp) +.L7F09D45C: +/* 0D1F8C 7F09D45C 26940001 */ addiu $s4, $s4, 1 +/* 0D1F90 7F09D460 568DFFAD */ bnel $s4, $t5, .L7F09D318 +/* 0D1F94 7F09D464 24780001 */ addiu $t8, $v1, 1 +.L7F09D468: +/* 0D1F98 7F09D468 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0D1F9C 7F09D46C 44819000 */ mtc1 $at, $f18 +/* 0D1FA0 7F09D470 C6B00020 */ lwc1 $f16, 0x20($s5) +/* 0D1FA4 7F09D474 86B8001C */ lh $t8, 0x1c($s5) +/* 0D1FA8 7F09D478 00001025 */ move $v0, $zero +/* 0D1FAC 7F09D47C 46109282 */ mul.s $f10, $f18, $f16 +/* 0D1FB0 7F09D480 4600520D */ trunc.w.s $f8, $f10 +/* 0D1FB4 7F09D484 440F4000 */ mfc1 $t7, $f8 +/* 0D1FB8 7F09D488 00000000 */ nop +/* 0D1FBC 7F09D48C 030FC821 */ addu $t9, $t8, $t7 +/* 0D1FC0 7F09D490 0079082A */ slt $at, $v1, $t9 +/* 0D1FC4 7F09D494 14200004 */ bnez $at, .L7F09D4A8 +/* 0D1FC8 7F09D498 00000000 */ nop +/* 0D1FCC 7F09D49C AE400000 */ sw $zero, ($s2) +/* 0D1FD0 7F09D4A0 10000001 */ b .L7F09D4A8 +/* 0D1FD4 7F09D4A4 24020001 */ li $v0, 1 +.L7F09D4A8: +/* 0D1FD8 7F09D4A8 8FBF006C */ lw $ra, 0x6c($sp) +/* 0D1FDC 7F09D4AC D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D1FE0 7F09D4B0 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0D1FE4 7F09D4B4 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0D1FE8 7F09D4B8 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0D1FEC 7F09D4BC D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 0D1FF0 7F09D4C0 D7BE0040 */ ldc1 $f30, 0x40($sp) +/* 0D1FF4 7F09D4C4 8FB0004C */ lw $s0, 0x4c($sp) +/* 0D1FF8 7F09D4C8 8FB10050 */ lw $s1, 0x50($sp) +/* 0D1FFC 7F09D4CC 8FB20054 */ lw $s2, 0x54($sp) +/* 0D2000 7F09D4D0 8FB30058 */ lw $s3, 0x58($sp) +/* 0D2004 7F09D4D4 8FB4005C */ lw $s4, 0x5c($sp) +/* 0D2008 7F09D4D8 8FB50060 */ lw $s5, 0x60($sp) +/* 0D200C 7F09D4DC 8FB60064 */ lw $s6, 0x64($sp) +/* 0D2010 7F09D4E0 8FB70068 */ lw $s7, 0x68($sp) +/* 0D2014 7F09D4E4 03E00008 */ jr $ra +/* 0D2018 7F09D4E8 27BD00C8 */ addiu $sp, $sp, 0xc8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09D4EC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09D4EC +/* 0D201C 7F09D4EC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0D2020 7F09D4F0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0D2024 7F09D4F4 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0D2028 7F09D4F8 AFA40018 */ sw $a0, 0x18($sp) +/* 0D202C 7F09D4FC 8FA40018 */ lw $a0, 0x18($sp) +/* 0D2030 7F09D500 C4440008 */ lwc1 $f4, 8($v0) +/* 0D2034 7F09D504 C44A0018 */ lwc1 $f10, 0x18($v0) +/* 0D2038 7F09D508 C4860008 */ lwc1 $f6, 8($a0) +/* 0D203C 7F09D50C C490000C */ lwc1 $f16, 0xc($a0) +/* 0D2040 7F09D510 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0D2044 7F09D514 46062202 */ mul.s $f8, $f4, $f6 +/* 0D2048 7F09D518 C4460028 */ lwc1 $f6, 0x28($v0) +/* 0D204C 7F09D51C 44811000 */ mtc1 $at, $f2 +/* 0D2050 7F09D520 46105482 */ mul.s $f18, $f10, $f16 +/* 0D2054 7F09D524 C48A0010 */ lwc1 $f10, 0x10($a0) +/* 0D2058 7F09D528 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D205C 7F09D52C 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 0D2060 7F09D530 460A3402 */ mul.s $f16, $f6, $f10 +/* 0D2064 7F09D534 46124100 */ add.s $f4, $f8, $f18 +/* 0D2068 7F09D538 C4520038 */ lwc1 $f18, 0x38($v0) +/* 0D206C 7F09D53C 00001025 */ move $v0, $zero +/* 0D2070 7F09D540 46102200 */ add.s $f8, $f4, $f16 +/* 0D2074 7F09D544 46089180 */ add.s $f6, $f18, $f8 +/* 0D2078 7F09D548 46003287 */ neg.s $f10, $f6 +/* 0D207C 7F09D54C E48A0018 */ swc1 $f10, 0x18($a0) +/* 0D2080 7F09D550 C4800018 */ lwc1 $f0, 0x18($a0) +/* 0D2084 7F09D554 4602003C */ c.lt.s $f0, $f2 +/* 0D2088 7F09D558 00000000 */ nop +/* 0D208C 7F09D55C 45020007 */ bc1fl .L7F09D57C +/* 0D2090 7F09D560 46020481 */ sub.s $f18, $f0, $f2 +/* 0D2094 7F09D564 44812000 */ mtc1 $at, $f4 +/* 0D2098 7F09D568 00000000 */ nop +/* 0D209C 7F09D56C 46040402 */ mul.s $f16, $f0, $f4 +/* 0D20A0 7F09D570 10000003 */ b .L7F09D580 +/* 0D20A4 7F09D574 E4900018 */ swc1 $f16, 0x18($a0) +/* 0D20A8 7F09D578 46020481 */ sub.s $f18, $f0, $f2 +.L7F09D57C: +/* 0D20AC 7F09D57C E4920018 */ swc1 $f18, 0x18($a0) +.L7F09D580: +/* 0D20B0 7F09D580 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 0D20B4 7F09D584 8FBF0014 */ lw $ra, 0x14($sp) +/* 0D20B8 7F09D588 15C00003 */ bnez $t6, .L7F09D598 +/* 0D20BC 7F09D58C 00000000 */ nop +/* 0D20C0 7F09D590 10000001 */ b .L7F09D598 +/* 0D20C4 7F09D594 00001025 */ move $v0, $zero +.L7F09D598: +/* 0D20C8 7F09D598 03E00008 */ jr $ra +/* 0D20CC 7F09D59C 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09D5A0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09D5A0 +/* 0D20D0 7F09D5A0 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 0D20D4 7F09D5A4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0D20D8 7F09D5A8 AFBF003C */ sw $ra, 0x3c($sp) +/* 0D20DC 7F09D5AC AFB70038 */ sw $s7, 0x38($sp) +/* 0D20E0 7F09D5B0 AFB60034 */ sw $s6, 0x34($sp) +/* 0D20E4 7F09D5B4 AFB50030 */ sw $s5, 0x30($sp) +/* 0D20E8 7F09D5B8 AFB4002C */ sw $s4, 0x2c($sp) +/* 0D20EC 7F09D5BC AFB30028 */ sw $s3, 0x28($sp) +/* 0D20F0 7F09D5C0 AFB20024 */ sw $s2, 0x24($sp) +/* 0D20F4 7F09D5C4 AFB10020 */ sw $s1, 0x20($sp) +/* 0D20F8 7F09D5C8 9091002C */ lbu $s1, 0x2c($a0) +/* 0D20FC 7F09D5CC 00808025 */ move $s0, $a0 +/* 0D2100 7F09D5D0 8C950004 */ lw $s5, 4($a0) +/* 0D2104 7F09D5D4 00C09025 */ move $s2, $a2 +/* 0D2108 7F09D5D8 00A0A025 */ move $s4, $a1 +/* 0D210C 7F09D5DC 0FC2F285 */ jal sub_GAME_7F0BCA14 +/* 0D2110 7F09D5E0 02202025 */ move $a0, $s1 +/* 0D2114 7F09D5E4 16400003 */ bnez $s2, .L7F09D5F4 +/* 0D2118 7F09D5E8 0040B025 */ move $s6, $v0 +/* 0D211C 7F09D5EC 10000084 */ b .L7F09D800 +/* 0D2120 7F09D5F0 02801025 */ move $v0, $s4 +.L7F09D5F4: +/* 0D2124 7F09D5F4 02002025 */ move $a0, $s0 +/* 0D2128 7F09D5F8 0FC15299 */ jal sub_GAME_7F054A64 +/* 0D212C 7F09D5FC 27A50070 */ addiu $a1, $sp, 0x70 +/* 0D2130 7F09D600 1840000A */ blez $v0, .L7F09D62C +/* 0D2134 7F09D604 00000000 */ nop +/* 0D2138 7F09D608 C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 0D213C 7F09D60C 02802025 */ move $a0, $s4 +/* 0D2140 7F09D610 8FA50070 */ lw $a1, 0x70($sp) +/* 0D2144 7F09D614 8FA60074 */ lw $a2, 0x74($sp) +/* 0D2148 7F09D618 8FA70078 */ lw $a3, 0x78($sp) +/* 0D214C 7F09D61C 0FC2D3FD */ jal sub_GAME_7F0B4FF4 +/* 0D2150 7F09D620 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0D2154 7F09D624 10000004 */ b .L7F09D638 +/* 0D2158 7F09D628 0040A025 */ move $s4, $v0 +.L7F09D62C: +/* 0D215C 7F09D62C 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 0D2160 7F09D630 02802025 */ move $a0, $s4 +/* 0D2164 7F09D634 0040A025 */ move $s4, $v0 +.L7F09D638: +/* 0D2168 7F09D638 02801025 */ move $v0, $s4 +/* 0D216C 7F09D63C 3C0F0001 */ lui $t7, (0x00013000 >> 16) # lui $t7, 1 +/* 0D2170 7F09D640 35EF3000 */ ori $t7, (0x00013000 & 0xFFFF) # ori $t7, $t7, 0x3000 +/* 0D2174 7F09D644 26940008 */ addiu $s4, $s4, 8 +/* 0D2178 7F09D648 3C0EB600 */ lui $t6, 0xb600 +/* 0D217C 7F09D64C 3C180103 */ lui $t8, (0x01030040 >> 16) # lui $t8, 0x103 +/* 0D2180 7F09D650 AC4E0000 */ sw $t6, ($v0) +/* 0D2184 7F09D654 AC4F0004 */ sw $t7, 4($v0) +/* 0D2188 7F09D658 37180040 */ ori $t8, (0x01030040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 0D218C 7F09D65C 02808025 */ move $s0, $s4 +/* 0D2190 7F09D660 AE180000 */ sw $t8, ($s0) +/* 0D2194 7F09D664 0FC1E0E5 */ jal get_BONDdata_field_10E0 +/* 0D2198 7F09D668 26940008 */ addiu $s4, $s4, 8 +/* 0D219C 7F09D66C 0C003A2C */ jal osVirtualToPhysical +/* 0D21A0 7F09D670 00402025 */ move $a0, $v0 +/* 0D21A4 7F09D674 AE020004 */ sw $v0, 4($s0) +/* 0D21A8 7F09D678 02802025 */ move $a0, $s4 +/* 0D21AC 7F09D67C 0FC2F271 */ jal sub_GAME_7F0BC9C4 +/* 0D21B0 7F09D680 02202825 */ move $a1, $s1 +/* 0D21B4 7F09D684 3C19BC00 */ lui $t9, (0xBC000806 >> 16) # lui $t9, 0xbc00 +/* 0D21B8 7F09D688 37390806 */ ori $t9, (0xBC000806 & 0xFFFF) # ori $t9, $t9, 0x806 +/* 0D21BC 7F09D68C AC590000 */ sw $t9, ($v0) +/* 0D21C0 7F09D690 3C048009 */ lui $a0, %hi(pGlobalimagetable) +/* 0D21C4 7F09D694 8C84D0B4 */ lw $a0, %lo(pGlobalimagetable)($a0) +/* 0D21C8 7F09D698 00408025 */ move $s0, $v0 +/* 0D21CC 7F09D69C 0C003A2C */ jal osVirtualToPhysical +/* 0D21D0 7F09D6A0 24540008 */ addiu $s4, $v0, 8 +/* 0D21D4 7F09D6A4 3C178004 */ lui $s7, %hi(D_8004017C+0x680) +/* 0D21D8 7F09D6A8 3C138004 */ lui $s3, %hi(D_8004017C+0x108) +/* 0D21DC 7F09D6AC AE020004 */ sw $v0, 4($s0) +/* 0D21E0 7F09D6B0 26730284 */ addiu $s3, %lo(D_8004017C+0x108) # addiu $s3, $s3, 0x284 +/* 0D21E4 7F09D6B4 26F707FC */ addiu $s7, %lo(D_8004017C+0x680) # addiu $s7, $s7, 0x7fc +/* 0D21E8 7F09D6B8 2412000E */ li $s2, 14 +.L7F09D6BC: +/* 0D21EC 7F09D6BC 02801025 */ move $v0, $s4 +/* 0D21F0 7F09D6C0 3C080600 */ lui $t0, 0x600 +/* 0D21F4 7F09D6C4 AC480000 */ sw $t0, ($v0) +/* 0D21F8 7F09D6C8 8EE90000 */ lw $t1, ($s7) +/* 0D21FC 7F09D6CC 26940008 */ addiu $s4, $s4, 8 +/* 0D2200 7F09D6D0 00008825 */ move $s1, $zero +/* 0D2204 7F09D6D4 02A08025 */ move $s0, $s5 +/* 0D2208 7F09D6D8 AC490004 */ sw $t1, 4($v0) +.L7F09D6DC: +/* 0D220C 7F09D6DC 8602001C */ lh $v0, 0x1c($s0) +/* 0D2210 7F09D6E0 18400012 */ blez $v0, .L7F09D72C +/* 0D2214 7F09D6E4 244AFFFF */ addiu $t2, $v0, -1 +/* 0D2218 7F09D6E8 448A3000 */ mtc1 $t2, $f6 +/* 0D221C 7F09D6EC 82AB03CC */ lb $t3, 0x3cc($s5) +/* 0D2220 7F09D6F0 26040008 */ addiu $a0, $s0, 8 +/* 0D2224 7F09D6F4 46803220 */ cvt.s.w $f8, $f6 +/* 0D2228 7F09D6F8 000B6180 */ sll $t4, $t3, 6 +/* 0D222C 7F09D6FC 026C6821 */ addu $t5, $s3, $t4 +/* 0D2230 7F09D700 C5AA0020 */ lwc1 $f10, 0x20($t5) +/* 0D2234 7F09D704 02802825 */ move $a1, $s4 +/* 0D2238 7F09D708 460A4403 */ div.s $f16, $f8, $f10 +/* 0D223C 7F09D70C 4600848D */ trunc.w.s $f18, $f16 +/* 0D2240 7F09D710 440F9000 */ mfc1 $t7, $f18 +/* 0D2244 7F09D714 00000000 */ nop +/* 0D2248 7F09D718 564F0005 */ bnel $s2, $t7, .L7F09D730 +/* 0D224C 7F09D71C 26310018 */ addiu $s1, $s1, 0x18 +/* 0D2250 7F09D720 0FC2760B */ jal sub_GAME_7F09D82C +/* 0D2254 7F09D724 02C03025 */ move $a2, $s6 +/* 0D2258 7F09D728 0040A025 */ move $s4, $v0 +.L7F09D72C: +/* 0D225C 7F09D72C 26310018 */ addiu $s1, $s1, 0x18 +.L7F09D730: +/* 0D2260 7F09D730 2A2103C0 */ slti $at, $s1, 0x3c0 +/* 0D2264 7F09D734 1420FFE9 */ bnez $at, .L7F09D6DC +/* 0D2268 7F09D738 26100018 */ addiu $s0, $s0, 0x18 +/* 0D226C 7F09D73C 2652FFFF */ addiu $s2, $s2, -1 +/* 0D2270 7F09D740 0641FFDE */ bgez $s2, .L7F09D6BC +/* 0D2274 7F09D744 26F7FFFC */ addiu $s7, $s7, -4 +/* 0D2278 7F09D748 3C180103 */ lui $t8, (0x01030040 >> 16) # lui $t8, 0x103 +/* 0D227C 7F09D74C 37180040 */ ori $t8, (0x01030040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 0D2280 7F09D750 02809025 */ move $s2, $s4 +/* 0D2284 7F09D754 AE580000 */ sw $t8, ($s2) +/* 0D2288 7F09D758 0FC1E0DD */ jal get_BONDdata_field_10D8 +/* 0D228C 7F09D75C 26940008 */ addiu $s4, $s4, 8 +/* 0D2290 7F09D760 0C003A2C */ jal osVirtualToPhysical +/* 0D2294 7F09D764 00402025 */ move $a0, $v0 +/* 0D2298 7F09D768 AE420004 */ sw $v0, 4($s2) +/* 0D229C 7F09D76C 82B903CC */ lb $t9, 0x3cc($s5) +/* 0D22A0 7F09D770 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0D22A4 7F09D774 44813000 */ mtc1 $at, $f6 +/* 0D22A8 7F09D778 00194180 */ sll $t0, $t9, 6 +/* 0D22AC 7F09D77C 02684821 */ addu $t1, $s3, $t0 +/* 0D22B0 7F09D780 C5240020 */ lwc1 $f4, 0x20($t1) +/* 0D22B4 7F09D784 240203C0 */ li $v0, 960 +/* 0D22B8 7F09D788 00008825 */ move $s1, $zero +/* 0D22BC 7F09D78C 46062202 */ mul.s $f8, $f4, $f6 +/* 0D22C0 7F09D790 02A08025 */ move $s0, $s5 +/* 0D22C4 7F09D794 4600428D */ trunc.w.s $f10, $f8 +/* 0D22C8 7F09D798 44035000 */ mfc1 $v1, $f10 +/* 0D22CC 7F09D79C 00000000 */ nop +.L7F09D7A0: +/* 0D22D0 7F09D7A0 860B001C */ lh $t3, 0x1c($s0) +/* 0D22D4 7F09D7A4 26310060 */ addiu $s1, $s1, 0x60 +/* 0D22D8 7F09D7A8 006B082A */ slt $at, $v1, $t3 +/* 0D22DC 7F09D7AC 50200003 */ beql $at, $zero, .L7F09D7BC +/* 0D22E0 7F09D7B0 860C0034 */ lh $t4, 0x34($s0) +/* 0D22E4 7F09D7B4 A600001C */ sh $zero, 0x1c($s0) +/* 0D22E8 7F09D7B8 860C0034 */ lh $t4, 0x34($s0) +.L7F09D7BC: +/* 0D22EC 7F09D7BC 006C082A */ slt $at, $v1, $t4 +/* 0D22F0 7F09D7C0 50200003 */ beql $at, $zero, .L7F09D7D0 +/* 0D22F4 7F09D7C4 860D004C */ lh $t5, 0x4c($s0) +/* 0D22F8 7F09D7C8 A6000034 */ sh $zero, 0x34($s0) +/* 0D22FC 7F09D7CC 860D004C */ lh $t5, 0x4c($s0) +.L7F09D7D0: +/* 0D2300 7F09D7D0 006D082A */ slt $at, $v1, $t5 +/* 0D2304 7F09D7D4 50200003 */ beql $at, $zero, .L7F09D7E4 +/* 0D2308 7F09D7D8 860E0064 */ lh $t6, 0x64($s0) +/* 0D230C 7F09D7DC A600004C */ sh $zero, 0x4c($s0) +/* 0D2310 7F09D7E0 860E0064 */ lh $t6, 0x64($s0) +.L7F09D7E4: +/* 0D2314 7F09D7E4 006E082A */ slt $at, $v1, $t6 +/* 0D2318 7F09D7E8 10200002 */ beqz $at, .L7F09D7F4 +/* 0D231C 7F09D7EC 00000000 */ nop +/* 0D2320 7F09D7F0 A6000064 */ sh $zero, 0x64($s0) +.L7F09D7F4: +/* 0D2324 7F09D7F4 1622FFEA */ bne $s1, $v0, .L7F09D7A0 +/* 0D2328 7F09D7F8 26100060 */ addiu $s0, $s0, 0x60 +/* 0D232C 7F09D7FC 02801025 */ move $v0, $s4 +.L7F09D800: +/* 0D2330 7F09D800 8FBF003C */ lw $ra, 0x3c($sp) +/* 0D2334 7F09D804 8FB0001C */ lw $s0, 0x1c($sp) +/* 0D2338 7F09D808 8FB10020 */ lw $s1, 0x20($sp) +/* 0D233C 7F09D80C 8FB20024 */ lw $s2, 0x24($sp) +/* 0D2340 7F09D810 8FB30028 */ lw $s3, 0x28($sp) +/* 0D2344 7F09D814 8FB4002C */ lw $s4, 0x2c($sp) +/* 0D2348 7F09D818 8FB50030 */ lw $s5, 0x30($sp) +/* 0D234C 7F09D81C 8FB60034 */ lw $s6, 0x34($sp) +/* 0D2350 7F09D820 8FB70038 */ lw $s7, 0x38($sp) +/* 0D2354 7F09D824 03E00008 */ jr $ra +/* 0D2358 7F09D828 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09D82C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09D82C +/* 0D235C 7F09D82C 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0D2360 7F09D830 3C0F8004 */ lui $t7, %hi(D_8004080C+0xF4) +/* 0D2364 7F09D834 AFBF0024 */ sw $ra, 0x24($sp) +/* 0D2368 7F09D838 AFB20020 */ sw $s2, 0x20($sp) +/* 0D236C 7F09D83C AFB1001C */ sw $s1, 0x1c($sp) +/* 0D2370 7F09D840 AFB00018 */ sw $s0, 0x18($sp) +/* 0D2374 7F09D844 25EF0900 */ addiu $t7, %lo(D_8004080C+0xF4) # addiu $t7, $t7, 0x900 +/* 0D2378 7F09D848 8DE10000 */ lw $at, ($t7) +/* 0D237C 7F09D84C 8DE80004 */ lw $t0, 4($t7) +/* 0D2380 7F09D850 27AE00A0 */ addiu $t6, $sp, 0xa0 +/* 0D2384 7F09D854 ADC10000 */ sw $at, ($t6) +/* 0D2388 7F09D858 ADC80004 */ sw $t0, 4($t6) +/* 0D238C 7F09D85C 8DE8000C */ lw $t0, 0xc($t7) +/* 0D2390 7F09D860 8DE10008 */ lw $at, 8($t7) +/* 0D2394 7F09D864 00808025 */ move $s0, $a0 +/* 0D2398 7F09D868 00C08825 */ move $s1, $a2 +/* 0D239C 7F09D86C 00A09025 */ move $s2, $a1 +/* 0D23A0 7F09D870 ADC8000C */ sw $t0, 0xc($t6) +/* 0D23A4 7F09D874 0FC1E111 */ jal sub_GAME_7F078444 +/* 0D23A8 7F09D878 ADC10008 */ sw $at, 8($t6) +/* 0D23AC 7F09D87C 0FC227F5 */ jal get_BONDdata_position +/* 0D23B0 7F09D880 AFA2009C */ sw $v0, 0x9c($sp) +/* 0D23B4 7F09D884 C6040000 */ lwc1 $f4, ($s0) +/* 0D23B8 7F09D888 C4460000 */ lwc1 $f6, ($v0) +/* 0D23BC 7F09D88C C6080004 */ lwc1 $f8, 4($s0) +/* 0D23C0 7F09D890 C44A0004 */ lwc1 $f10, 4($v0) +/* 0D23C4 7F09D894 46062381 */ sub.s $f14, $f4, $f6 +/* 0D23C8 7F09D898 C4460008 */ lwc1 $f6, 8($v0) +/* 0D23CC 7F09D89C C6040008 */ lwc1 $f4, 8($s0) +/* 0D23D0 7F09D8A0 460A4401 */ sub.s $f16, $f8, $f10 +/* 0D23D4 7F09D8A4 460E7202 */ mul.s $f8, $f14, $f14 +/* 0D23D8 7F09D8A8 E7AE0064 */ swc1 $f14, 0x64($sp) +/* 0D23DC 7F09D8AC 46062481 */ sub.s $f18, $f4, $f6 +/* 0D23E0 7F09D8B0 46108282 */ mul.s $f10, $f16, $f16 +/* 0D23E4 7F09D8B4 E7B00060 */ swc1 $f16, 0x60($sp) +/* 0D23E8 7F09D8B8 AFA20098 */ sw $v0, 0x98($sp) +/* 0D23EC 7F09D8BC 46129182 */ mul.s $f6, $f18, $f18 +/* 0D23F0 7F09D8C0 E7B2005C */ swc1 $f18, 0x5c($sp) +/* 0D23F4 7F09D8C4 460A4100 */ add.s $f4, $f8, $f10 +/* 0D23F8 7F09D8C8 0C007DF8 */ jal sqrtf +/* 0D23FC 7F09D8CC 46062300 */ add.s $f12, $f4, $f6 +/* 0D2400 7F09D8D0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D2404 7F09D8D4 44814000 */ mtc1 $at, $f8 +/* 0D2408 7F09D8D8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0D240C 7F09D8DC 44815000 */ mtc1 $at, $f10 +/* 0D2410 7F09D8E0 46080302 */ mul.s $f12, $f0, $f8 +/* 0D2414 7F09D8E4 44802000 */ mtc1 $zero, $f4 +/* 0D2418 7F09D8E8 8FA3009C */ lw $v1, 0x9c($sp) +/* 0D241C 7F09D8EC 8FA50098 */ lw $a1, 0x98($sp) +/* 0D2420 7F09D8F0 C7AE0064 */ lwc1 $f14, 0x64($sp) +/* 0D2424 7F09D8F4 C7B00060 */ lwc1 $f16, 0x60($sp) +/* 0D2428 7F09D8F8 C7B2005C */ lwc1 $f18, 0x5c($sp) +/* 0D242C 7F09D8FC 460C503C */ c.lt.s $f10, $f12 +/* 0D2430 7F09D900 00000000 */ nop +/* 0D2434 7F09D904 45000003 */ bc1f .L7F09D914 +/* 0D2438 7F09D908 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0D243C 7F09D90C 44816000 */ mtc1 $at, $f12 +/* 0D2440 7F09D910 00000000 */ nop +.L7F09D914: +/* 0D2444 7F09D914 46040032 */ c.eq.s $f0, $f4 +/* 0D2448 7F09D918 00000000 */ nop +/* 0D244C 7F09D91C 45020005 */ bc1fl .L7F09D934 +/* 0D2450 7F09D920 460C0181 */ sub.s $f6, $f0, $f12 +/* 0D2454 7F09D924 44801000 */ mtc1 $zero, $f2 +/* 0D2458 7F09D928 10000004 */ b .L7F09D93C +/* 0D245C 7F09D92C C608000C */ lwc1 $f8, 0xc($s0) +/* 0D2460 7F09D930 460C0181 */ sub.s $f6, $f0, $f12 +.L7F09D934: +/* 0D2464 7F09D934 46003083 */ div.s $f2, $f6, $f0 +/* 0D2468 7F09D938 C608000C */ lwc1 $f8, 0xc($s0) +.L7F09D93C: +/* 0D246C 7F09D93C C60A0010 */ lwc1 $f10, 0x10($s0) +/* 0D2470 7F09D940 C4A40000 */ lwc1 $f4, ($a1) +/* 0D2474 7F09D944 46024002 */ mul.s $f0, $f8, $f2 +/* 0D2478 7F09D948 24040004 */ li $a0, 4 +/* 0D247C 7F09D94C 46025302 */ mul.s $f12, $f10, $f2 +/* 0D2480 7F09D950 00000000 */ nop +/* 0D2484 7F09D954 46027182 */ mul.s $f6, $f14, $f2 +/* 0D2488 7F09D958 46062200 */ add.s $f8, $f4, $f6 +/* 0D248C 7F09D95C 46028102 */ mul.s $f4, $f16, $f2 +/* 0D2490 7F09D960 E7A8004C */ swc1 $f8, 0x4c($sp) +/* 0D2494 7F09D964 C4AA0004 */ lwc1 $f10, 4($a1) +/* 0D2498 7F09D968 46045180 */ add.s $f6, $f10, $f4 +/* 0D249C 7F09D96C 46029282 */ mul.s $f10, $f18, $f2 +/* 0D24A0 7F09D970 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0D24A4 7F09D974 C4A80008 */ lwc1 $f8, 8($a1) +/* 0D24A8 7F09D978 E7AC0050 */ swc1 $f12, 0x50($sp) +/* 0D24AC 7F09D97C E7A00054 */ swc1 $f0, 0x54($sp) +/* 0D24B0 7F09D980 460A4100 */ add.s $f4, $f8, $f10 +/* 0D24B4 7F09D984 AFA3009C */ sw $v1, 0x9c($sp) +/* 0D24B8 7F09D988 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0D24BC 7F09D98C E7A40044 */ swc1 $f4, 0x44($sp) +/* 0D24C0 7F09D990 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 0D24C4 7F09D994 8C810000 */ lw $at, ($a0) +/* 0D24C8 7F09D998 8FA3009C */ lw $v1, 0x9c($sp) +/* 0D24CC 7F09D99C C7A00054 */ lwc1 $f0, 0x54($sp) +/* 0D24D0 7F09D9A0 C7AC0050 */ lwc1 $f12, 0x50($sp) +/* 0D24D4 7F09D9A4 AC410000 */ sw $at, ($v0) +/* 0D24D8 7F09D9A8 8C8B0004 */ lw $t3, 4($a0) +/* 0D24DC 7F09D9AC 00408025 */ move $s0, $v0 +/* 0D24E0 7F09D9B0 AC4B0004 */ sw $t3, 4($v0) +/* 0D24E4 7F09D9B4 8C810008 */ lw $at, 8($a0) +/* 0D24E8 7F09D9B8 AC410008 */ sw $at, 8($v0) +/* 0D24EC 7F09D9BC 8C8B000C */ lw $t3, 0xc($a0) +/* 0D24F0 7F09D9C0 AC4B000C */ sw $t3, 0xc($v0) +/* 0D24F4 7F09D9C4 8C810000 */ lw $at, ($a0) +/* 0D24F8 7F09D9C8 AC410010 */ sw $at, 0x10($v0) +/* 0D24FC 7F09D9CC 8C990004 */ lw $t9, 4($a0) +/* 0D2500 7F09D9D0 AC590014 */ sw $t9, 0x14($v0) +/* 0D2504 7F09D9D4 8C810008 */ lw $at, 8($a0) +/* 0D2508 7F09D9D8 AC410018 */ sw $at, 0x18($v0) +/* 0D250C 7F09D9DC 8C99000C */ lw $t9, 0xc($a0) +/* 0D2510 7F09D9E0 AC59001C */ sw $t9, 0x1c($v0) +/* 0D2514 7F09D9E4 8C810000 */ lw $at, ($a0) +/* 0D2518 7F09D9E8 AC410020 */ sw $at, 0x20($v0) +/* 0D251C 7F09D9EC 8C8F0004 */ lw $t7, 4($a0) +/* 0D2520 7F09D9F0 AC4F0024 */ sw $t7, 0x24($v0) +/* 0D2524 7F09D9F4 8C810008 */ lw $at, 8($a0) +/* 0D2528 7F09D9F8 AC410028 */ sw $at, 0x28($v0) +/* 0D252C 7F09D9FC 8C8F000C */ lw $t7, 0xc($a0) +/* 0D2530 7F09DA00 AC4F002C */ sw $t7, 0x2c($v0) +/* 0D2534 7F09DA04 8C810000 */ lw $at, ($a0) +/* 0D2538 7F09DA08 AC410030 */ sw $at, 0x30($v0) +/* 0D253C 7F09DA0C 8C890004 */ lw $t1, 4($a0) +/* 0D2540 7F09DA10 AC490034 */ sw $t1, 0x34($v0) +/* 0D2544 7F09DA14 8C810008 */ lw $at, 8($a0) +/* 0D2548 7F09DA18 AC410038 */ sw $at, 0x38($v0) +/* 0D254C 7F09DA1C 8C89000C */ lw $t1, 0xc($a0) +/* 0D2550 7F09DA20 AC49003C */ sw $t1, 0x3c($v0) +/* 0D2554 7F09DA24 8C810000 */ lw $at, ($a0) +/* 0D2558 7F09DA28 AC410040 */ sw $at, 0x40($v0) +/* 0D255C 7F09DA2C 8C8C0004 */ lw $t4, 4($a0) +/* 0D2560 7F09DA30 AC4C0044 */ sw $t4, 0x44($v0) +/* 0D2564 7F09DA34 8C810008 */ lw $at, 8($a0) +/* 0D2568 7F09DA38 AC410048 */ sw $at, 0x48($v0) +/* 0D256C 7F09DA3C 8C8C000C */ lw $t4, 0xc($a0) +/* 0D2570 7F09DA40 AC4C004C */ sw $t4, 0x4c($v0) +/* 0D2574 7F09DA44 C4660000 */ lwc1 $f6, ($v1) +/* 0D2578 7F09DA48 46003202 */ mul.s $f8, $f6, $f0 +/* 0D257C 7F09DA4C E7A8008C */ swc1 $f8, 0x8c($sp) +/* 0D2580 7F09DA50 C46A0004 */ lwc1 $f10, 4($v1) +/* 0D2584 7F09DA54 46005102 */ mul.s $f4, $f10, $f0 +/* 0D2588 7F09DA58 E7A40090 */ swc1 $f4, 0x90($sp) +/* 0D258C 7F09DA5C C4660008 */ lwc1 $f6, 8($v1) +/* 0D2590 7F09DA60 46003202 */ mul.s $f8, $f6, $f0 +/* 0D2594 7F09DA64 E7A80094 */ swc1 $f8, 0x94($sp) +/* 0D2598 7F09DA68 C46A0000 */ lwc1 $f10, ($v1) +/* 0D259C 7F09DA6C 460C5102 */ mul.s $f4, $f10, $f12 +/* 0D25A0 7F09DA70 E7A40080 */ swc1 $f4, 0x80($sp) +/* 0D25A4 7F09DA74 C4660004 */ lwc1 $f6, 4($v1) +/* 0D25A8 7F09DA78 460C3202 */ mul.s $f8, $f6, $f12 +/* 0D25AC 7F09DA7C E7A80084 */ swc1 $f8, 0x84($sp) +/* 0D25B0 7F09DA80 C46A0008 */ lwc1 $f10, 8($v1) +/* 0D25B4 7F09DA84 460C5102 */ mul.s $f4, $f10, $f12 +/* 0D25B8 7F09DA88 E7A40088 */ swc1 $f4, 0x88($sp) +/* 0D25BC 7F09DA8C C4660010 */ lwc1 $f6, 0x10($v1) +/* 0D25C0 7F09DA90 46003202 */ mul.s $f8, $f6, $f0 +/* 0D25C4 7F09DA94 E7A80074 */ swc1 $f8, 0x74($sp) +/* 0D25C8 7F09DA98 C46A0014 */ lwc1 $f10, 0x14($v1) +/* 0D25CC 7F09DA9C 46005102 */ mul.s $f4, $f10, $f0 +/* 0D25D0 7F09DAA0 E7A40078 */ swc1 $f4, 0x78($sp) +/* 0D25D4 7F09DAA4 C4660018 */ lwc1 $f6, 0x18($v1) +/* 0D25D8 7F09DAA8 46003202 */ mul.s $f8, $f6, $f0 +/* 0D25DC 7F09DAAC E7A8007C */ swc1 $f8, 0x7c($sp) +/* 0D25E0 7F09DAB0 C46A0010 */ lwc1 $f10, 0x10($v1) +/* 0D25E4 7F09DAB4 460C5102 */ mul.s $f4, $f10, $f12 +/* 0D25E8 7F09DAB8 E7A40068 */ swc1 $f4, 0x68($sp) +/* 0D25EC 7F09DABC C4660014 */ lwc1 $f6, 0x14($v1) +/* 0D25F0 7F09DAC0 460C3202 */ mul.s $f8, $f6, $f12 +/* 0D25F4 7F09DAC4 E7A8006C */ swc1 $f8, 0x6c($sp) +/* 0D25F8 7F09DAC8 C46A0018 */ lwc1 $f10, 0x18($v1) +/* 0D25FC 7F09DACC 460C5102 */ mul.s $f4, $f10, $f12 +/* 0D2600 7F09DAD0 0FC2D20F */ jal get_room_data_float1 +/* 0D2604 7F09DAD4 E7A40070 */ swc1 $f4, 0x70($sp) +/* 0D2608 7F09DAD8 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 0D260C 7F09DADC C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 0D2610 7F09DAE0 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 0D2614 7F09DAE4 46083281 */ sub.s $f10, $f6, $f8 +/* 0D2618 7F09DAE8 46045181 */ sub.s $f6, $f10, $f4 +/* 0D261C 7F09DAEC C62A0000 */ lwc1 $f10, ($s1) +/* 0D2620 7F09DAF0 46003202 */ mul.s $f8, $f6, $f0 +/* 0D2624 7F09DAF4 460A4101 */ sub.s $f4, $f8, $f10 +/* 0D2628 7F09DAF8 4600218D */ trunc.w.s $f6, $f4 +/* 0D262C 7F09DAFC 440E3000 */ mfc1 $t6, $f6 +/* 0D2630 7F09DB00 0FC2D20F */ jal get_room_data_float1 +/* 0D2634 7F09DB04 A60E0000 */ sh $t6, ($s0) +/* 0D2638 7F09DB08 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0D263C 7F09DB0C C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 0D2640 7F09DB10 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 0D2644 7F09DB14 460A4101 */ sub.s $f4, $f8, $f10 +/* 0D2648 7F09DB18 46062201 */ sub.s $f8, $f4, $f6 +/* 0D264C 7F09DB1C C6240004 */ lwc1 $f4, 4($s1) +/* 0D2650 7F09DB20 46004282 */ mul.s $f10, $f8, $f0 +/* 0D2654 7F09DB24 46045181 */ sub.s $f6, $f10, $f4 +/* 0D2658 7F09DB28 4600320D */ trunc.w.s $f8, $f6 +/* 0D265C 7F09DB2C 440F4000 */ mfc1 $t7, $f8 +/* 0D2660 7F09DB30 0FC2D20F */ jal get_room_data_float1 +/* 0D2664 7F09DB34 A60F0002 */ sh $t7, 2($s0) +/* 0D2668 7F09DB38 C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 0D266C 7F09DB3C C7A40094 */ lwc1 $f4, 0x94($sp) +/* 0D2670 7F09DB40 C7A80070 */ lwc1 $f8, 0x70($sp) +/* 0D2674 7F09DB44 240906E0 */ li $t1, 1760 +/* 0D2678 7F09DB48 46045181 */ sub.s $f6, $f10, $f4 +/* 0D267C 7F09DB4C 46083281 */ sub.s $f10, $f6, $f8 +/* 0D2680 7F09DB50 C6260008 */ lwc1 $f6, 8($s1) +/* 0D2684 7F09DB54 A6090008 */ sh $t1, 8($s0) +/* 0D2688 7F09DB58 A600000A */ sh $zero, 0xa($s0) +/* 0D268C 7F09DB5C 46005102 */ mul.s $f4, $f10, $f0 +/* 0D2690 7F09DB60 46062201 */ sub.s $f8, $f4, $f6 +/* 0D2694 7F09DB64 4600428D */ trunc.w.s $f10, $f8 +/* 0D2698 7F09DB68 44085000 */ mfc1 $t0, $f10 +/* 0D269C 7F09DB6C 0FC2D20F */ jal get_room_data_float1 +/* 0D26A0 7F09DB70 A6080004 */ sh $t0, 4($s0) +/* 0D26A4 7F09DB74 C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 0D26A8 7F09DB78 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 0D26AC 7F09DB7C C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 0D26B0 7F09DB80 46062200 */ add.s $f8, $f4, $f6 +/* 0D26B4 7F09DB84 460A4101 */ sub.s $f4, $f8, $f10 +/* 0D26B8 7F09DB88 C6280000 */ lwc1 $f8, ($s1) +/* 0D26BC 7F09DB8C 46002182 */ mul.s $f6, $f4, $f0 +/* 0D26C0 7F09DB90 46083281 */ sub.s $f10, $f6, $f8 +/* 0D26C4 7F09DB94 4600510D */ trunc.w.s $f4, $f10 +/* 0D26C8 7F09DB98 440B2000 */ mfc1 $t3, $f4 +/* 0D26CC 7F09DB9C 0FC2D20F */ jal get_room_data_float1 +/* 0D26D0 7F09DBA0 A60B0010 */ sh $t3, 0x10($s0) +/* 0D26D4 7F09DBA4 C7A60048 */ lwc1 $f6, 0x48($sp) +/* 0D26D8 7F09DBA8 C7A80084 */ lwc1 $f8, 0x84($sp) +/* 0D26DC 7F09DBAC C7A40078 */ lwc1 $f4, 0x78($sp) +/* 0D26E0 7F09DBB0 46083280 */ add.s $f10, $f6, $f8 +/* 0D26E4 7F09DBB4 46045181 */ sub.s $f6, $f10, $f4 +/* 0D26E8 7F09DBB8 C62A0004 */ lwc1 $f10, 4($s1) +/* 0D26EC 7F09DBBC 46003202 */ mul.s $f8, $f6, $f0 +/* 0D26F0 7F09DBC0 460A4101 */ sub.s $f4, $f8, $f10 +/* 0D26F4 7F09DBC4 4600218D */ trunc.w.s $f6, $f4 +/* 0D26F8 7F09DBC8 44193000 */ mfc1 $t9, $f6 +/* 0D26FC 7F09DBCC 0FC2D20F */ jal get_room_data_float1 +/* 0D2700 7F09DBD0 A6190012 */ sh $t9, 0x12($s0) +/* 0D2704 7F09DBD4 C7A80044 */ lwc1 $f8, 0x44($sp) +/* 0D2708 7F09DBD8 C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 0D270C 7F09DBDC C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 0D2710 7F09DBE0 460A4100 */ add.s $f4, $f8, $f10 +/* 0D2714 7F09DBE4 46062201 */ sub.s $f8, $f4, $f6 +/* 0D2718 7F09DBE8 C6240008 */ lwc1 $f4, 8($s1) +/* 0D271C 7F09DBEC A6000018 */ sh $zero, 0x18($s0) +/* 0D2720 7F09DBF0 A600001A */ sh $zero, 0x1a($s0) +/* 0D2724 7F09DBF4 46004282 */ mul.s $f10, $f8, $f0 +/* 0D2728 7F09DBF8 46045181 */ sub.s $f6, $f10, $f4 +/* 0D272C 7F09DBFC 4600320D */ trunc.w.s $f8, $f6 +/* 0D2730 7F09DC00 44184000 */ mfc1 $t8, $f8 +/* 0D2734 7F09DC04 0FC2D20F */ jal get_room_data_float1 +/* 0D2738 7F09DC08 A6180014 */ sh $t8, 0x14($s0) +/* 0D273C 7F09DC0C C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0D2740 7F09DC10 C7A4008C */ lwc1 $f4, 0x8c($sp) +/* 0D2744 7F09DC14 C7A80068 */ lwc1 $f8, 0x68($sp) +/* 0D2748 7F09DC18 46045180 */ add.s $f6, $f10, $f4 +/* 0D274C 7F09DC1C 46083280 */ add.s $f10, $f6, $f8 +/* 0D2750 7F09DC20 C6260000 */ lwc1 $f6, ($s1) +/* 0D2754 7F09DC24 46005102 */ mul.s $f4, $f10, $f0 +/* 0D2758 7F09DC28 46062201 */ sub.s $f8, $f4, $f6 +/* 0D275C 7F09DC2C 4600428D */ trunc.w.s $f10, $f8 +/* 0D2760 7F09DC30 440A5000 */ mfc1 $t2, $f10 +/* 0D2764 7F09DC34 0FC2D20F */ jal get_room_data_float1 +/* 0D2768 7F09DC38 A60A0020 */ sh $t2, 0x20($s0) +/* 0D276C 7F09DC3C C7A40048 */ lwc1 $f4, 0x48($sp) +/* 0D2770 7F09DC40 C7A60090 */ lwc1 $f6, 0x90($sp) +/* 0D2774 7F09DC44 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 0D2778 7F09DC48 46062200 */ add.s $f8, $f4, $f6 +/* 0D277C 7F09DC4C 460A4100 */ add.s $f4, $f8, $f10 +/* 0D2780 7F09DC50 C6280004 */ lwc1 $f8, 4($s1) +/* 0D2784 7F09DC54 46002182 */ mul.s $f6, $f4, $f0 +/* 0D2788 7F09DC58 46083281 */ sub.s $f10, $f6, $f8 +/* 0D278C 7F09DC5C 4600510D */ trunc.w.s $f4, $f10 +/* 0D2790 7F09DC60 44092000 */ mfc1 $t1, $f4 +/* 0D2794 7F09DC64 0FC2D20F */ jal get_room_data_float1 +/* 0D2798 7F09DC68 A6090022 */ sh $t1, 0x22($s0) +/* 0D279C 7F09DC6C C7A60044 */ lwc1 $f6, 0x44($sp) +/* 0D27A0 7F09DC70 C7A80094 */ lwc1 $f8, 0x94($sp) +/* 0D27A4 7F09DC74 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 0D27A8 7F09DC78 240C06E0 */ li $t4, 1760 +/* 0D27AC 7F09DC7C 46083280 */ add.s $f10, $f6, $f8 +/* 0D27B0 7F09DC80 46045180 */ add.s $f6, $f10, $f4 +/* 0D27B4 7F09DC84 C62A0008 */ lwc1 $f10, 8($s1) +/* 0D27B8 7F09DC88 A6000028 */ sh $zero, 0x28($s0) +/* 0D27BC 7F09DC8C A60C002A */ sh $t4, 0x2a($s0) +/* 0D27C0 7F09DC90 46003202 */ mul.s $f8, $f6, $f0 +/* 0D27C4 7F09DC94 460A4101 */ sub.s $f4, $f8, $f10 +/* 0D27C8 7F09DC98 4600218D */ trunc.w.s $f6, $f4 +/* 0D27CC 7F09DC9C 440B3000 */ mfc1 $t3, $f6 +/* 0D27D0 7F09DCA0 0FC2D20F */ jal get_room_data_float1 +/* 0D27D4 7F09DCA4 A60B0024 */ sh $t3, 0x24($s0) +/* 0D27D8 7F09DCA8 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 0D27DC 7F09DCAC C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 0D27E0 7F09DCB0 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 0D27E4 7F09DCB4 460A4101 */ sub.s $f4, $f8, $f10 +/* 0D27E8 7F09DCB8 46062200 */ add.s $f8, $f4, $f6 +/* 0D27EC 7F09DCBC C6240000 */ lwc1 $f4, ($s1) +/* 0D27F0 7F09DCC0 46004282 */ mul.s $f10, $f8, $f0 +/* 0D27F4 7F09DCC4 46045181 */ sub.s $f6, $f10, $f4 +/* 0D27F8 7F09DCC8 4600320D */ trunc.w.s $f8, $f6 +/* 0D27FC 7F09DCCC 440E4000 */ mfc1 $t6, $f8 +/* 0D2800 7F09DCD0 0FC2D20F */ jal get_room_data_float1 +/* 0D2804 7F09DCD4 A60E0030 */ sh $t6, 0x30($s0) +/* 0D2808 7F09DCD8 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 0D280C 7F09DCDC C7A40084 */ lwc1 $f4, 0x84($sp) +/* 0D2810 7F09DCE0 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 0D2814 7F09DCE4 46045181 */ sub.s $f6, $f10, $f4 +/* 0D2818 7F09DCE8 46083280 */ add.s $f10, $f6, $f8 +/* 0D281C 7F09DCEC C6260004 */ lwc1 $f6, 4($s1) +/* 0D2820 7F09DCF0 46005102 */ mul.s $f4, $f10, $f0 +/* 0D2824 7F09DCF4 46062201 */ sub.s $f8, $f4, $f6 +/* 0D2828 7F09DCF8 4600428D */ trunc.w.s $f10, $f8 +/* 0D282C 7F09DCFC 440F5000 */ mfc1 $t7, $f10 +/* 0D2830 7F09DD00 0FC2D20F */ jal get_room_data_float1 +/* 0D2834 7F09DD04 A60F0032 */ sh $t7, 0x32($s0) +/* 0D2838 7F09DD08 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0D283C 7F09DD0C C7A60088 */ lwc1 $f6, 0x88($sp) +/* 0D2840 7F09DD10 C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 0D2844 7F09DD14 240906E0 */ li $t1, 1760 +/* 0D2848 7F09DD18 46062201 */ sub.s $f8, $f4, $f6 +/* 0D284C 7F09DD1C 240D06E0 */ li $t5, 1760 +/* 0D2850 7F09DD20 3C0B0430 */ lui $t3, (0x04300040 >> 16) # lui $t3, 0x430 +/* 0D2854 7F09DD24 356B0040 */ ori $t3, (0x04300040 & 0xFFFF) # ori $t3, $t3, 0x40 +/* 0D2858 7F09DD28 460A4100 */ add.s $f4, $f8, $f10 +/* 0D285C 7F09DD2C C6280008 */ lwc1 $f8, 8($s1) +/* 0D2860 7F09DD30 A6090038 */ sh $t1, 0x38($s0) +/* 0D2864 7F09DD34 A60D003A */ sh $t5, 0x3a($s0) +/* 0D2868 7F09DD38 46002182 */ mul.s $f6, $f4, $f0 +/* 0D286C 7F09DD3C 02402825 */ move $a1, $s2 +/* 0D2870 7F09DD40 26520008 */ addiu $s2, $s2, 8 +/* 0D2874 7F09DD44 02002025 */ move $a0, $s0 +/* 0D2878 7F09DD48 46083281 */ sub.s $f10, $f6, $f8 +/* 0D287C 7F09DD4C 4600510D */ trunc.w.s $f4, $f10 +/* 0D2880 7F09DD50 44082000 */ mfc1 $t0, $f4 +/* 0D2884 7F09DD54 00000000 */ nop +/* 0D2888 7F09DD58 A6080034 */ sh $t0, 0x34($s0) +/* 0D288C 7F09DD5C ACAB0000 */ sw $t3, ($a1) +/* 0D2890 7F09DD60 0C003A2C */ jal osVirtualToPhysical +/* 0D2894 7F09DD64 AFA50038 */ sw $a1, 0x38($sp) +/* 0D2898 7F09DD68 8FA50038 */ lw $a1, 0x38($sp) +/* 0D289C 7F09DD6C 02401825 */ move $v1, $s2 +/* 0D28A0 7F09DD70 3C0CB100 */ lui $t4, (0xB1000032 >> 16) # lui $t4, 0xb100 +/* 0D28A4 7F09DD74 ACA20004 */ sw $v0, 4($a1) +/* 0D28A8 7F09DD78 358C0032 */ ori $t4, (0xB1000032 & 0xFFFF) # ori $t4, $t4, 0x32 +/* 0D28AC 7F09DD7C 24192010 */ li $t9, 8208 +/* 0D28B0 7F09DD80 AC790004 */ sw $t9, 4($v1) +/* 0D28B4 7F09DD84 AC6C0000 */ sw $t4, ($v1) +/* 0D28B8 7F09DD88 8FBF0024 */ lw $ra, 0x24($sp) +/* 0D28BC 7F09DD8C 26420008 */ addiu $v0, $s2, 8 +/* 0D28C0 7F09DD90 8FB20020 */ lw $s2, 0x20($sp) +/* 0D28C4 7F09DD94 8FB1001C */ lw $s1, 0x1c($sp) +/* 0D28C8 7F09DD98 8FB00018 */ lw $s0, 0x18($sp) +/* 0D28CC 7F09DD9C 03E00008 */ jr $ra +/* 0D28D0 7F09DDA0 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09DDA4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800576C0 +.word 0x46ea6000 /*30000.0*/ +glabel D_800576C4 +.word 0x46ea6000 /*30000.0*/ +glabel D_800576C8 +.word 0xc6ea6000 /*-30000.0*/ +.text +glabel sub_GAME_7F09DDA4 +/* 0D28D4 7F09DDA4 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 0D28D8 7F09DDA8 3C0F8004 */ lui $t7, %hi(D_80040910) +/* 0D28DC 7F09DDAC AFBF0034 */ sw $ra, 0x34($sp) +/* 0D28E0 7F09DDB0 AFB50030 */ sw $s5, 0x30($sp) +/* 0D28E4 7F09DDB4 AFB4002C */ sw $s4, 0x2c($sp) +/* 0D28E8 7F09DDB8 AFB30028 */ sw $s3, 0x28($sp) +/* 0D28EC 7F09DDBC AFB20024 */ sw $s2, 0x24($sp) +/* 0D28F0 7F09DDC0 AFB10020 */ sw $s1, 0x20($sp) +/* 0D28F4 7F09DDC4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0D28F8 7F09DDC8 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0D28FC 7F09DDCC AFA600E0 */ sw $a2, 0xe0($sp) +/* 0D2900 7F09DDD0 25EF0910 */ addiu $t7, %lo(D_80040910) # addiu $t7, $t7, 0x910 +/* 0D2904 7F09DDD4 8DE10000 */ lw $at, ($t7) +/* 0D2908 7F09DDD8 8DE80004 */ lw $t0, 4($t7) +/* 0D290C 7F09DDDC 27AE00C0 */ addiu $t6, $sp, 0xc0 +/* 0D2910 7F09DDE0 ADC10000 */ sw $at, ($t6) +/* 0D2914 7F09DDE4 ADC80004 */ sw $t0, 4($t6) +/* 0D2918 7F09DDE8 8DE8000C */ lw $t0, 0xc($t7) +/* 0D291C 7F09DDEC 8DE10008 */ lw $at, 8($t7) +/* 0D2920 7F09DDF0 00A08825 */ move $s1, $a1 +/* 0D2924 7F09DDF4 00809025 */ move $s2, $a0 +/* 0D2928 7F09DDF8 00E09825 */ move $s3, $a3 +/* 0D292C 7F09DDFC ADC8000C */ sw $t0, 0xc($t6) +/* 0D2930 7F09DE00 0FC1E111 */ jal sub_GAME_7F078444 +/* 0D2934 7F09DE04 ADC10008 */ sw $at, 8($t6) +/* 0D2938 7F09DE08 0FC227F5 */ jal get_BONDdata_position +/* 0D293C 7F09DE0C AFA200BC */ sw $v0, 0xbc($sp) +/* 0D2940 7F09DE10 AFA20070 */ sw $v0, 0x70($sp) +/* 0D2944 7F09DE14 86490006 */ lh $t1, 6($s2) +/* 0D2948 7F09DE18 24150018 */ li $s5, 24 +/* 0D294C 7F09DE1C 3C148004 */ lui $s4, %hi(D_8004017C) +/* 0D2950 7F09DE20 01350019 */ multu $t1, $s5 +/* 0D2954 7F09DE24 2694017C */ addiu $s4, %lo(D_8004017C) # addiu $s4, $s4, 0x17c +/* 0D2958 7F09DE28 86250024 */ lh $a1, 0x24($s1) +/* 0D295C 7F09DE2C 8FA300BC */ lw $v1, 0xbc($sp) +/* 0D2960 7F09DE30 24180001 */ li $t8, 1 +/* 0D2964 7F09DE34 00005012 */ mflo $t2 +/* 0D2968 7F09DE38 028A5821 */ addu $t3, $s4, $t2 +/* 0D296C 7F09DE3C 85640002 */ lh $a0, 2($t3) +/* 0D2970 7F09DE40 0085082A */ slt $at, $a0, $a1 +/* 0D2974 7F09DE44 5420002C */ bnezl $at, .L7F09DEF8 +/* 0D2978 7F09DE48 4459F800 */ cfc1 $t9, $31 +/* 0D297C 7F09DE4C 44843000 */ mtc1 $a0, $f6 +/* 0D2980 7F09DE50 C6240020 */ lwc1 $f4, 0x20($s1) +/* 0D2984 7F09DE54 240D0001 */ li $t5, 1 +/* 0D2988 7F09DE58 46803220 */ cvt.s.w $f8, $f6 +/* 0D298C 7F09DE5C 44853000 */ mtc1 $a1, $f6 +/* 0D2990 7F09DE60 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0D2994 7F09DE64 46082283 */ div.s $f10, $f4, $f8 +/* 0D2998 7F09DE68 46803120 */ cvt.s.w $f4, $f6 +/* 0D299C 7F09DE6C 46045202 */ mul.s $f8, $f10, $f4 +/* 0D29A0 7F09DE70 444CF800 */ cfc1 $t4, $31 +/* 0D29A4 7F09DE74 44CDF800 */ ctc1 $t5, $31 +/* 0D29A8 7F09DE78 00000000 */ nop +/* 0D29AC 7F09DE7C 460041A4 */ cvt.w.s $f6, $f8 +/* 0D29B0 7F09DE80 444DF800 */ cfc1 $t5, $31 +/* 0D29B4 7F09DE84 00000000 */ nop +/* 0D29B8 7F09DE88 31AD0078 */ andi $t5, $t5, 0x78 +/* 0D29BC 7F09DE8C 51A00013 */ beql $t5, $zero, .L7F09DEDC +/* 0D29C0 7F09DE90 440D3000 */ mfc1 $t5, $f6 +/* 0D29C4 7F09DE94 44813000 */ mtc1 $at, $f6 +/* 0D29C8 7F09DE98 240D0001 */ li $t5, 1 +/* 0D29CC 7F09DE9C 46064181 */ sub.s $f6, $f8, $f6 +/* 0D29D0 7F09DEA0 44CDF800 */ ctc1 $t5, $31 +/* 0D29D4 7F09DEA4 00000000 */ nop +/* 0D29D8 7F09DEA8 460031A4 */ cvt.w.s $f6, $f6 +/* 0D29DC 7F09DEAC 444DF800 */ cfc1 $t5, $31 +/* 0D29E0 7F09DEB0 00000000 */ nop +/* 0D29E4 7F09DEB4 31AD0078 */ andi $t5, $t5, 0x78 +/* 0D29E8 7F09DEB8 15A00005 */ bnez $t5, .L7F09DED0 +/* 0D29EC 7F09DEBC 00000000 */ nop +/* 0D29F0 7F09DEC0 440D3000 */ mfc1 $t5, $f6 +/* 0D29F4 7F09DEC4 3C018000 */ lui $at, 0x8000 +/* 0D29F8 7F09DEC8 10000007 */ b .L7F09DEE8 +/* 0D29FC 7F09DECC 01A16825 */ or $t5, $t5, $at +.L7F09DED0: +/* 0D2A00 7F09DED0 10000005 */ b .L7F09DEE8 +/* 0D2A04 7F09DED4 240DFFFF */ li $t5, -1 +/* 0D2A08 7F09DED8 440D3000 */ mfc1 $t5, $f6 +.L7F09DEDC: +/* 0D2A0C 7F09DEDC 00000000 */ nop +/* 0D2A10 7F09DEE0 05A0FFFB */ bltz $t5, .L7F09DED0 +/* 0D2A14 7F09DEE4 00000000 */ nop +.L7F09DEE8: +/* 0D2A18 7F09DEE8 44CCF800 */ ctc1 $t4, $31 +/* 0D2A1C 7F09DEEC 10000023 */ b .L7F09DF7C +/* 0D2A20 7F09DEF0 A3AD0077 */ sb $t5, 0x77($sp) +/* 0D2A24 7F09DEF4 4459F800 */ cfc1 $t9, $31 +.L7F09DEF8: +/* 0D2A28 7F09DEF8 44D8F800 */ ctc1 $t8, $31 +/* 0D2A2C 7F09DEFC C62A0020 */ lwc1 $f10, 0x20($s1) +/* 0D2A30 7F09DF00 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0D2A34 7F09DF04 46005124 */ cvt.w.s $f4, $f10 +/* 0D2A38 7F09DF08 4458F800 */ cfc1 $t8, $31 +/* 0D2A3C 7F09DF0C 00000000 */ nop +/* 0D2A40 7F09DF10 33180078 */ andi $t8, $t8, 0x78 +/* 0D2A44 7F09DF14 53000013 */ beql $t8, $zero, .L7F09DF64 +/* 0D2A48 7F09DF18 44182000 */ mfc1 $t8, $f4 +/* 0D2A4C 7F09DF1C 44812000 */ mtc1 $at, $f4 +/* 0D2A50 7F09DF20 24180001 */ li $t8, 1 +/* 0D2A54 7F09DF24 46045101 */ sub.s $f4, $f10, $f4 +/* 0D2A58 7F09DF28 44D8F800 */ ctc1 $t8, $31 +/* 0D2A5C 7F09DF2C 00000000 */ nop +/* 0D2A60 7F09DF30 46002124 */ cvt.w.s $f4, $f4 +/* 0D2A64 7F09DF34 4458F800 */ cfc1 $t8, $31 +/* 0D2A68 7F09DF38 00000000 */ nop +/* 0D2A6C 7F09DF3C 33180078 */ andi $t8, $t8, 0x78 +/* 0D2A70 7F09DF40 17000005 */ bnez $t8, .L7F09DF58 +/* 0D2A74 7F09DF44 00000000 */ nop +/* 0D2A78 7F09DF48 44182000 */ mfc1 $t8, $f4 +/* 0D2A7C 7F09DF4C 3C018000 */ lui $at, 0x8000 +/* 0D2A80 7F09DF50 10000007 */ b .L7F09DF70 +/* 0D2A84 7F09DF54 0301C025 */ or $t8, $t8, $at +.L7F09DF58: +/* 0D2A88 7F09DF58 10000005 */ b .L7F09DF70 +/* 0D2A8C 7F09DF5C 2418FFFF */ li $t8, -1 +/* 0D2A90 7F09DF60 44182000 */ mfc1 $t8, $f4 +.L7F09DF64: +/* 0D2A94 7F09DF64 00000000 */ nop +/* 0D2A98 7F09DF68 0700FFFB */ bltz $t8, .L7F09DF58 +/* 0D2A9C 7F09DF6C 00000000 */ nop +.L7F09DF70: +/* 0D2AA0 7F09DF70 44D9F800 */ ctc1 $t9, $31 +/* 0D2AA4 7F09DF74 A3B80077 */ sb $t8, 0x77($sp) +/* 0D2AA8 7F09DF78 00000000 */ nop +.L7F09DF7C: +/* 0D2AAC 7F09DF7C 24040004 */ li $a0, 4 +/* 0D2AB0 7F09DF80 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0D2AB4 7F09DF84 AFA300BC */ sw $v1, 0xbc($sp) +/* 0D2AB8 7F09DF88 27A400C0 */ addiu $a0, $sp, 0xc0 +/* 0D2ABC 7F09DF8C 8C810000 */ lw $at, ($a0) +/* 0D2AC0 7F09DF90 00408025 */ move $s0, $v0 +/* 0D2AC4 7F09DF94 AC410000 */ sw $at, ($v0) +/* 0D2AC8 7F09DF98 8C880004 */ lw $t0, 4($a0) +/* 0D2ACC 7F09DF9C AC480004 */ sw $t0, 4($v0) +/* 0D2AD0 7F09DFA0 8C810008 */ lw $at, 8($a0) +/* 0D2AD4 7F09DFA4 AC410008 */ sw $at, 8($v0) +/* 0D2AD8 7F09DFA8 8C88000C */ lw $t0, 0xc($a0) +/* 0D2ADC 7F09DFAC AC48000C */ sw $t0, 0xc($v0) +/* 0D2AE0 7F09DFB0 8C810000 */ lw $at, ($a0) +/* 0D2AE4 7F09DFB4 AC410010 */ sw $at, 0x10($v0) +/* 0D2AE8 7F09DFB8 8C8B0004 */ lw $t3, 4($a0) +/* 0D2AEC 7F09DFBC AC4B0014 */ sw $t3, 0x14($v0) +/* 0D2AF0 7F09DFC0 8C810008 */ lw $at, 8($a0) +/* 0D2AF4 7F09DFC4 AC410018 */ sw $at, 0x18($v0) +/* 0D2AF8 7F09DFC8 8C8B000C */ lw $t3, 0xc($a0) +/* 0D2AFC 7F09DFCC AC4B001C */ sw $t3, 0x1c($v0) +/* 0D2B00 7F09DFD0 8C810000 */ lw $at, ($a0) +/* 0D2B04 7F09DFD4 AC410020 */ sw $at, 0x20($v0) +/* 0D2B08 7F09DFD8 8C990004 */ lw $t9, 4($a0) +/* 0D2B0C 7F09DFDC AC590024 */ sw $t9, 0x24($v0) +/* 0D2B10 7F09DFE0 8C810008 */ lw $at, 8($a0) +/* 0D2B14 7F09DFE4 AC410028 */ sw $at, 0x28($v0) +/* 0D2B18 7F09DFE8 8C99000C */ lw $t9, 0xc($a0) +/* 0D2B1C 7F09DFEC AC59002C */ sw $t9, 0x2c($v0) +/* 0D2B20 7F09DFF0 8C810000 */ lw $at, ($a0) +/* 0D2B24 7F09DFF4 AC410030 */ sw $at, 0x30($v0) +/* 0D2B28 7F09DFF8 8C8E0004 */ lw $t6, 4($a0) +/* 0D2B2C 7F09DFFC AC4E0034 */ sw $t6, 0x34($v0) +/* 0D2B30 7F09E000 8C810008 */ lw $at, 8($a0) +/* 0D2B34 7F09E004 AC410038 */ sw $at, 0x38($v0) +/* 0D2B38 7F09E008 8C8E000C */ lw $t6, 0xc($a0) +/* 0D2B3C 7F09E00C AC4E003C */ sw $t6, 0x3c($v0) +/* 0D2B40 7F09E010 0FC15FA8 */ jal cosf +/* 0D2B44 7F09E014 C62C0010 */ lwc1 $f12, 0x10($s1) +/* 0D2B48 7F09E018 C628000C */ lwc1 $f8, 0xc($s1) +/* 0D2B4C 7F09E01C C62C0010 */ lwc1 $f12, 0x10($s1) +/* 0D2B50 7F09E020 46080382 */ mul.s $f14, $f0, $f8 +/* 0D2B54 7F09E024 0FC15FAB */ jal sinf +/* 0D2B58 7F09E028 E7AE0088 */ swc1 $f14, 0x88($sp) +/* 0D2B5C 7F09E02C C626000C */ lwc1 $f6, 0xc($s1) +/* 0D2B60 7F09E030 C62C0018 */ lwc1 $f12, 0x18($s1) +/* 0D2B64 7F09E034 46060402 */ mul.s $f16, $f0, $f6 +/* 0D2B68 7F09E038 0FC15FAB */ jal sinf +/* 0D2B6C 7F09E03C E7B00084 */ swc1 $f16, 0x84($sp) +/* 0D2B70 7F09E040 3C0140E0 */ li $at, 0x40E00000 # 7.000000 +/* 0D2B74 7F09E044 44815000 */ mtc1 $at, $f10 +/* 0D2B78 7F09E048 C6280000 */ lwc1 $f8, ($s1) +/* 0D2B7C 7F09E04C 460A0102 */ mul.s $f4, $f0, $f10 +/* 0D2B80 7F09E050 46082180 */ add.s $f6, $f4, $f8 +/* 0D2B84 7F09E054 E7A60080 */ swc1 $f6, 0x80($sp) +/* 0D2B88 7F09E058 C62A0004 */ lwc1 $f10, 4($s1) +/* 0D2B8C 7F09E05C E7AA007C */ swc1 $f10, 0x7c($sp) +/* 0D2B90 7F09E060 0FC15FAB */ jal sinf +/* 0D2B94 7F09E064 C62C001C */ lwc1 $f12, 0x1c($s1) +/* 0D2B98 7F09E068 3C0140E0 */ li $at, 0x40E00000 # 7.000000 +/* 0D2B9C 7F09E06C 44812000 */ mtc1 $at, $f4 +/* 0D2BA0 7F09E070 C6260008 */ lwc1 $f6, 8($s1) +/* 0D2BA4 7F09E074 8FA20070 */ lw $v0, 0x70($sp) +/* 0D2BA8 7F09E078 46040202 */ mul.s $f8, $f0, $f4 +/* 0D2BAC 7F09E07C C7A40080 */ lwc1 $f4, 0x80($sp) +/* 0D2BB0 7F09E080 46064280 */ add.s $f10, $f8, $f6 +/* 0D2BB4 7F09E084 C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 0D2BB8 7F09E088 E7AA0078 */ swc1 $f10, 0x78($sp) +/* 0D2BBC 7F09E08C C4480000 */ lwc1 $f8, ($v0) +/* 0D2BC0 7F09E090 46082501 */ sub.s $f20, $f4, $f8 +/* 0D2BC4 7F09E094 C4440004 */ lwc1 $f4, 4($v0) +/* 0D2BC8 7F09E098 C4480008 */ lwc1 $f8, 8($v0) +/* 0D2BCC 7F09E09C 46043481 */ sub.s $f18, $f6, $f4 +/* 0D2BD0 7F09E0A0 4614A182 */ mul.s $f6, $f20, $f20 +/* 0D2BD4 7F09E0A4 46085081 */ sub.s $f2, $f10, $f8 +/* 0D2BD8 7F09E0A8 46129102 */ mul.s $f4, $f18, $f18 +/* 0D2BDC 7F09E0AC E7B20068 */ swc1 $f18, 0x68($sp) +/* 0D2BE0 7F09E0B0 46021202 */ mul.s $f8, $f2, $f2 +/* 0D2BE4 7F09E0B4 E7A20064 */ swc1 $f2, 0x64($sp) +/* 0D2BE8 7F09E0B8 46043280 */ add.s $f10, $f6, $f4 +/* 0D2BEC 7F09E0BC 0C007DF8 */ jal sqrtf +/* 0D2BF0 7F09E0C0 46085300 */ add.s $f12, $f10, $f8 +/* 0D2BF4 7F09E0C4 3C018005 */ lui $at, %hi(D_800576C0) +/* 0D2BF8 7F09E0C8 C42676C0 */ lwc1 $f6, %lo(D_800576C0)($at) +/* 0D2BFC 7F09E0CC 8FA300BC */ lw $v1, 0xbc($sp) +/* 0D2C00 7F09E0D0 C7AE0088 */ lwc1 $f14, 0x88($sp) +/* 0D2C04 7F09E0D4 4600303C */ c.lt.s $f6, $f0 +/* 0D2C08 7F09E0D8 C7B00084 */ lwc1 $f16, 0x84($sp) +/* 0D2C0C 7F09E0DC C7B20068 */ lwc1 $f18, 0x68($sp) +/* 0D2C10 7F09E0E0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D2C14 7F09E0E4 45020004 */ bc1fl .L7F09E0F8 +/* 0D2C18 7F09E0E8 44812000 */ mtc1 $at, $f4 +/* 0D2C1C 7F09E0EC 1000017A */ b .L7F09E6D8 +/* 0D2C20 7F09E0F0 8FA200E0 */ lw $v0, 0xe0($sp) +/* 0D2C24 7F09E0F4 44812000 */ mtc1 $at, $f4 +.L7F09E0F8: +/* 0D2C28 7F09E0F8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0D2C2C 7F09E0FC 44815000 */ mtc1 $at, $f10 +/* 0D2C30 7F09E100 46040302 */ mul.s $f12, $f0, $f4 +/* 0D2C34 7F09E104 44804000 */ mtc1 $zero, $f8 +/* 0D2C38 7F09E108 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0D2C3C 7F09E10C 460C503C */ c.lt.s $f10, $f12 +/* 0D2C40 7F09E110 00000000 */ nop +/* 0D2C44 7F09E114 45020004 */ bc1fl .L7F09E128 +/* 0D2C48 7F09E118 46080032 */ c.eq.s $f0, $f8 +/* 0D2C4C 7F09E11C 44816000 */ mtc1 $at, $f12 +/* 0D2C50 7F09E120 00000000 */ nop +/* 0D2C54 7F09E124 46080032 */ c.eq.s $f0, $f8 +.L7F09E128: +/* 0D2C58 7F09E128 00000000 */ nop +/* 0D2C5C 7F09E12C 45020005 */ bc1fl .L7F09E144 +/* 0D2C60 7F09E130 460C0181 */ sub.s $f6, $f0, $f12 +/* 0D2C64 7F09E134 44801000 */ mtc1 $zero, $f2 +/* 0D2C68 7F09E138 10000003 */ b .L7F09E148 +/* 0D2C6C 7F09E13C 00000000 */ nop +/* 0D2C70 7F09E140 460C0181 */ sub.s $f6, $f0, $f12 +.L7F09E144: +/* 0D2C74 7F09E144 46003083 */ div.s $f2, $f6, $f0 +.L7F09E148: +/* 0D2C78 7F09E148 46027382 */ mul.s $f14, $f14, $f2 +/* 0D2C7C 7F09E14C 8FA20070 */ lw $v0, 0x70($sp) +/* 0D2C80 7F09E150 46028402 */ mul.s $f16, $f16, $f2 +/* 0D2C84 7F09E154 C4440000 */ lwc1 $f4, ($v0) +/* 0D2C88 7F09E158 4602A282 */ mul.s $f10, $f20, $f2 +/* 0D2C8C 7F09E15C 460A2200 */ add.s $f8, $f4, $f10 +/* 0D2C90 7F09E160 46029102 */ mul.s $f4, $f18, $f2 +/* 0D2C94 7F09E164 E7A80080 */ swc1 $f8, 0x80($sp) +/* 0D2C98 7F09E168 C4460004 */ lwc1 $f6, 4($v0) +/* 0D2C9C 7F09E16C 46043280 */ add.s $f10, $f6, $f4 +/* 0D2CA0 7F09E170 C7A60064 */ lwc1 $f6, 0x64($sp) +/* 0D2CA4 7F09E174 46023102 */ mul.s $f4, $f6, $f2 +/* 0D2CA8 7F09E178 E7AA007C */ swc1 $f10, 0x7c($sp) +/* 0D2CAC 7F09E17C C4480008 */ lwc1 $f8, 8($v0) +/* 0D2CB0 7F09E180 46044280 */ add.s $f10, $f8, $f4 +/* 0D2CB4 7F09E184 E7AA0078 */ swc1 $f10, 0x78($sp) +/* 0D2CB8 7F09E188 C4660000 */ lwc1 $f6, ($v1) +/* 0D2CBC 7F09E18C 460E3202 */ mul.s $f8, $f6, $f14 +/* 0D2CC0 7F09E190 E7A800B0 */ swc1 $f8, 0xb0($sp) +/* 0D2CC4 7F09E194 C4640004 */ lwc1 $f4, 4($v1) +/* 0D2CC8 7F09E198 460E2282 */ mul.s $f10, $f4, $f14 +/* 0D2CCC 7F09E19C E7AA00B4 */ swc1 $f10, 0xb4($sp) +/* 0D2CD0 7F09E1A0 C4660008 */ lwc1 $f6, 8($v1) +/* 0D2CD4 7F09E1A4 460E3202 */ mul.s $f8, $f6, $f14 +/* 0D2CD8 7F09E1A8 E7A800B8 */ swc1 $f8, 0xb8($sp) +/* 0D2CDC 7F09E1AC C4640000 */ lwc1 $f4, ($v1) +/* 0D2CE0 7F09E1B0 46102282 */ mul.s $f10, $f4, $f16 +/* 0D2CE4 7F09E1B4 E7AA00A4 */ swc1 $f10, 0xa4($sp) +/* 0D2CE8 7F09E1B8 C4660004 */ lwc1 $f6, 4($v1) +/* 0D2CEC 7F09E1BC 46103202 */ mul.s $f8, $f6, $f16 +/* 0D2CF0 7F09E1C0 E7A800A8 */ swc1 $f8, 0xa8($sp) +/* 0D2CF4 7F09E1C4 C4640008 */ lwc1 $f4, 8($v1) +/* 0D2CF8 7F09E1C8 46102282 */ mul.s $f10, $f4, $f16 +/* 0D2CFC 7F09E1CC E7AA00AC */ swc1 $f10, 0xac($sp) +/* 0D2D00 7F09E1D0 C4660010 */ lwc1 $f6, 0x10($v1) +/* 0D2D04 7F09E1D4 460E3202 */ mul.s $f8, $f6, $f14 +/* 0D2D08 7F09E1D8 E7A80098 */ swc1 $f8, 0x98($sp) +/* 0D2D0C 7F09E1DC C4640014 */ lwc1 $f4, 0x14($v1) +/* 0D2D10 7F09E1E0 460E2282 */ mul.s $f10, $f4, $f14 +/* 0D2D14 7F09E1E4 E7AA009C */ swc1 $f10, 0x9c($sp) +/* 0D2D18 7F09E1E8 C4660018 */ lwc1 $f6, 0x18($v1) +/* 0D2D1C 7F09E1EC 460E3202 */ mul.s $f8, $f6, $f14 +/* 0D2D20 7F09E1F0 E7A800A0 */ swc1 $f8, 0xa0($sp) +/* 0D2D24 7F09E1F4 C4640010 */ lwc1 $f4, 0x10($v1) +/* 0D2D28 7F09E1F8 46102282 */ mul.s $f10, $f4, $f16 +/* 0D2D2C 7F09E1FC E7AA008C */ swc1 $f10, 0x8c($sp) +/* 0D2D30 7F09E200 C4660014 */ lwc1 $f6, 0x14($v1) +/* 0D2D34 7F09E204 46103202 */ mul.s $f8, $f6, $f16 +/* 0D2D38 7F09E208 E7A80090 */ swc1 $f8, 0x90($sp) +/* 0D2D3C 7F09E20C C4640018 */ lwc1 $f4, 0x18($v1) +/* 0D2D40 7F09E210 46102282 */ mul.s $f10, $f4, $f16 +/* 0D2D44 7F09E214 0FC2D20F */ jal get_room_data_float1 +/* 0D2D48 7F09E218 E7AA0094 */ swc1 $f10, 0x94($sp) +/* 0D2D4C 7F09E21C C7A60080 */ lwc1 $f6, 0x80($sp) +/* 0D2D50 7F09E220 C7A800B0 */ lwc1 $f8, 0xb0($sp) +/* 0D2D54 7F09E224 C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0D2D58 7F09E228 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0D2D5C 7F09E22C 46083101 */ sub.s $f4, $f6, $f8 +/* 0D2D60 7F09E230 4481A000 */ mtc1 $at, $f20 +/* 0D2D64 7F09E234 460A2181 */ sub.s $f6, $f4, $f10 +/* 0D2D68 7F09E238 C6640000 */ lwc1 $f4, ($s3) +/* 0D2D6C 7F09E23C 46003202 */ mul.s $f8, $f6, $f0 +/* 0D2D70 7F09E240 46044281 */ sub.s $f10, $f8, $f4 +/* 0D2D74 7F09E244 46145082 */ mul.s $f2, $f10, $f20 +/* 0D2D78 7F09E248 0FC2D20F */ jal get_room_data_float1 +/* 0D2D7C 7F09E24C E7A20054 */ swc1 $f2, 0x54($sp) +/* 0D2D80 7F09E250 C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 0D2D84 7F09E254 C7A800B4 */ lwc1 $f8, 0xb4($sp) +/* 0D2D88 7F09E258 C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 0D2D8C 7F09E25C 46083101 */ sub.s $f4, $f6, $f8 +/* 0D2D90 7F09E260 460A2181 */ sub.s $f6, $f4, $f10 +/* 0D2D94 7F09E264 C6640004 */ lwc1 $f4, 4($s3) +/* 0D2D98 7F09E268 46003202 */ mul.s $f8, $f6, $f0 +/* 0D2D9C 7F09E26C 46044281 */ sub.s $f10, $f8, $f4 +/* 0D2DA0 7F09E270 46145302 */ mul.s $f12, $f10, $f20 +/* 0D2DA4 7F09E274 0FC2D20F */ jal get_room_data_float1 +/* 0D2DA8 7F09E278 E7AC0050 */ swc1 $f12, 0x50($sp) +/* 0D2DAC 7F09E27C C7A60078 */ lwc1 $f6, 0x78($sp) +/* 0D2DB0 7F09E280 C7A800B8 */ lwc1 $f8, 0xb8($sp) +/* 0D2DB4 7F09E284 C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 0D2DB8 7F09E288 3C018005 */ lui $at, %hi(D_800576C4) +/* 0D2DBC 7F09E28C 46083101 */ sub.s $f4, $f6, $f8 +/* 0D2DC0 7F09E290 C43076C4 */ lwc1 $f16, %lo(D_800576C4)($at) +/* 0D2DC4 7F09E294 C7A20054 */ lwc1 $f2, 0x54($sp) +/* 0D2DC8 7F09E298 C7AC0050 */ lwc1 $f12, 0x50($sp) +/* 0D2DCC 7F09E29C 460A2181 */ sub.s $f6, $f4, $f10 +/* 0D2DD0 7F09E2A0 C6640008 */ lwc1 $f4, 8($s3) +/* 0D2DD4 7F09E2A4 3C018005 */ lui $at, %hi(D_800576C8) +/* 0D2DD8 7F09E2A8 4602803C */ c.lt.s $f16, $f2 +/* 0D2DDC 7F09E2AC 46003202 */ mul.s $f8, $f6, $f0 +/* 0D2DE0 7F09E2B0 46044281 */ sub.s $f10, $f8, $f4 +/* 0D2DE4 7F09E2B4 46145382 */ mul.s $f14, $f10, $f20 +/* 0D2DE8 7F09E2B8 45010016 */ bc1t .L7F09E314 +/* 0D2DEC 7F09E2BC 00000000 */ nop +/* 0D2DF0 7F09E2C0 C42076C8 */ lwc1 $f0, %lo(D_800576C8)($at) +/* 0D2DF4 7F09E2C4 4600103C */ c.lt.s $f2, $f0 +/* 0D2DF8 7F09E2C8 00000000 */ nop +/* 0D2DFC 7F09E2CC 45010011 */ bc1t .L7F09E314 +/* 0D2E00 7F09E2D0 00000000 */ nop +/* 0D2E04 7F09E2D4 460C803C */ c.lt.s $f16, $f12 +/* 0D2E08 7F09E2D8 00000000 */ nop +/* 0D2E0C 7F09E2DC 4501000D */ bc1t .L7F09E314 +/* 0D2E10 7F09E2E0 00000000 */ nop +/* 0D2E14 7F09E2E4 4600603C */ c.lt.s $f12, $f0 +/* 0D2E18 7F09E2E8 00000000 */ nop +/* 0D2E1C 7F09E2EC 45010009 */ bc1t .L7F09E314 +/* 0D2E20 7F09E2F0 00000000 */ nop +/* 0D2E24 7F09E2F4 460E803C */ c.lt.s $f16, $f14 +/* 0D2E28 7F09E2F8 00000000 */ nop +/* 0D2E2C 7F09E2FC 45010005 */ bc1t .L7F09E314 +/* 0D2E30 7F09E300 00000000 */ nop +/* 0D2E34 7F09E304 4600703C */ c.lt.s $f14, $f0 +/* 0D2E38 7F09E308 00000000 */ nop +/* 0D2E3C 7F09E30C 45020004 */ bc1fl .L7F09E320 +/* 0D2E40 7F09E310 4600118D */ trunc.w.s $f6, $f2 +.L7F09E314: +/* 0D2E44 7F09E314 100000F0 */ b .L7F09E6D8 +/* 0D2E48 7F09E318 8FA200E0 */ lw $v0, 0xe0($sp) +/* 0D2E4C 7F09E31C 4600118D */ trunc.w.s $f6, $f2 +.L7F09E320: +/* 0D2E50 7F09E320 241906E0 */ li $t9, 1760 +/* 0D2E54 7F09E324 A6190008 */ sh $t9, 8($s0) +/* 0D2E58 7F09E328 4600620D */ trunc.w.s $f8, $f12 +/* 0D2E5C 7F09E32C 440A3000 */ mfc1 $t2, $f6 +/* 0D2E60 7F09E330 A600000A */ sh $zero, 0xa($s0) +/* 0D2E64 7F09E334 4600710D */ trunc.w.s $f4, $f14 +/* 0D2E68 7F09E338 440B4000 */ mfc1 $t3, $f8 +/* 0D2E6C 7F09E33C A60A0000 */ sh $t2, ($s0) +/* 0D2E70 7F09E340 440C2000 */ mfc1 $t4, $f4 +/* 0D2E74 7F09E344 A60B0002 */ sh $t3, 2($s0) +/* 0D2E78 7F09E348 A60C0004 */ sh $t4, 4($s0) +/* 0D2E7C 7F09E34C 864F0006 */ lh $t7, 6($s2) +/* 0D2E80 7F09E350 01F50019 */ multu $t7, $s5 +/* 0D2E84 7F09E354 0000C012 */ mflo $t8 +/* 0D2E88 7F09E358 02987021 */ addu $t6, $s4, $t8 +/* 0D2E8C 7F09E35C 91C8000C */ lbu $t0, 0xc($t6) +/* 0D2E90 7F09E360 A208000C */ sb $t0, 0xc($s0) +/* 0D2E94 7F09E364 864A0006 */ lh $t2, 6($s2) +/* 0D2E98 7F09E368 01550019 */ multu $t2, $s5 +/* 0D2E9C 7F09E36C 00004812 */ mflo $t1 +/* 0D2EA0 7F09E370 02895821 */ addu $t3, $s4, $t1 +/* 0D2EA4 7F09E374 916D000D */ lbu $t5, 0xd($t3) +/* 0D2EA8 7F09E378 A20D000D */ sb $t5, 0xd($s0) +/* 0D2EAC 7F09E37C 864C0006 */ lh $t4, 6($s2) +/* 0D2EB0 7F09E380 01950019 */ multu $t4, $s5 +/* 0D2EB4 7F09E384 0000C812 */ mflo $t9 +/* 0D2EB8 7F09E388 02997821 */ addu $t7, $s4, $t9 +/* 0D2EBC 7F09E38C 91F8000E */ lbu $t8, 0xe($t7) +/* 0D2EC0 7F09E390 A218000E */ sb $t8, 0xe($s0) +/* 0D2EC4 7F09E394 93AE0077 */ lbu $t6, 0x77($sp) +/* 0D2EC8 7F09E398 0FC2D20F */ jal get_room_data_float1 +/* 0D2ECC 7F09E39C A20E000F */ sb $t6, 0xf($s0) +/* 0D2ED0 7F09E3A0 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 0D2ED4 7F09E3A4 C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 0D2ED8 7F09E3A8 C7A40098 */ lwc1 $f4, 0x98($sp) +/* 0D2EDC 7F09E3AC 46065200 */ add.s $f8, $f10, $f6 +/* 0D2EE0 7F09E3B0 46044281 */ sub.s $f10, $f8, $f4 +/* 0D2EE4 7F09E3B4 C6680000 */ lwc1 $f8, ($s3) +/* 0D2EE8 7F09E3B8 46005182 */ mul.s $f6, $f10, $f0 +/* 0D2EEC 7F09E3BC 46083101 */ sub.s $f4, $f6, $f8 +/* 0D2EF0 7F09E3C0 46142282 */ mul.s $f10, $f4, $f20 +/* 0D2EF4 7F09E3C4 4600518D */ trunc.w.s $f6, $f10 +/* 0D2EF8 7F09E3C8 440A3000 */ mfc1 $t2, $f6 +/* 0D2EFC 7F09E3CC 0FC2D20F */ jal get_room_data_float1 +/* 0D2F00 7F09E3D0 A60A0010 */ sh $t2, 0x10($s0) +/* 0D2F04 7F09E3D4 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 0D2F08 7F09E3D8 C7A400A8 */ lwc1 $f4, 0xa8($sp) +/* 0D2F0C 7F09E3DC C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 0D2F10 7F09E3E0 46044280 */ add.s $f10, $f8, $f4 +/* 0D2F14 7F09E3E4 46065201 */ sub.s $f8, $f10, $f6 +/* 0D2F18 7F09E3E8 C66A0004 */ lwc1 $f10, 4($s3) +/* 0D2F1C 7F09E3EC 46004102 */ mul.s $f4, $f8, $f0 +/* 0D2F20 7F09E3F0 460A2181 */ sub.s $f6, $f4, $f10 +/* 0D2F24 7F09E3F4 46143202 */ mul.s $f8, $f6, $f20 +/* 0D2F28 7F09E3F8 4600410D */ trunc.w.s $f4, $f8 +/* 0D2F2C 7F09E3FC 440B2000 */ mfc1 $t3, $f4 +/* 0D2F30 7F09E400 0FC2D20F */ jal get_room_data_float1 +/* 0D2F34 7F09E404 A60B0012 */ sh $t3, 0x12($s0) +/* 0D2F38 7F09E408 C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 0D2F3C 7F09E40C C7A600AC */ lwc1 $f6, 0xac($sp) +/* 0D2F40 7F09E410 C7A400A0 */ lwc1 $f4, 0xa0($sp) +/* 0D2F44 7F09E414 46065200 */ add.s $f8, $f10, $f6 +/* 0D2F48 7F09E418 46044281 */ sub.s $f10, $f8, $f4 +/* 0D2F4C 7F09E41C C6680008 */ lwc1 $f8, 8($s3) +/* 0D2F50 7F09E420 A6000018 */ sh $zero, 0x18($s0) +/* 0D2F54 7F09E424 A600001A */ sh $zero, 0x1a($s0) +/* 0D2F58 7F09E428 46005182 */ mul.s $f6, $f10, $f0 +/* 0D2F5C 7F09E42C 46083101 */ sub.s $f4, $f6, $f8 +/* 0D2F60 7F09E430 46142282 */ mul.s $f10, $f4, $f20 +/* 0D2F64 7F09E434 4600518D */ trunc.w.s $f6, $f10 +/* 0D2F68 7F09E438 440C3000 */ mfc1 $t4, $f6 +/* 0D2F6C 7F09E43C 00000000 */ nop +/* 0D2F70 7F09E440 A60C0014 */ sh $t4, 0x14($s0) +/* 0D2F74 7F09E444 86590006 */ lh $t9, 6($s2) +/* 0D2F78 7F09E448 03350019 */ multu $t9, $s5 +/* 0D2F7C 7F09E44C 00007812 */ mflo $t7 +/* 0D2F80 7F09E450 028FC021 */ addu $t8, $s4, $t7 +/* 0D2F84 7F09E454 930E000C */ lbu $t6, 0xc($t8) +/* 0D2F88 7F09E458 A20E001C */ sb $t6, 0x1c($s0) +/* 0D2F8C 7F09E45C 86480006 */ lh $t0, 6($s2) +/* 0D2F90 7F09E460 01150019 */ multu $t0, $s5 +/* 0D2F94 7F09E464 00005012 */ mflo $t2 +/* 0D2F98 7F09E468 028A4821 */ addu $t1, $s4, $t2 +/* 0D2F9C 7F09E46C 912B000D */ lbu $t3, 0xd($t1) +/* 0D2FA0 7F09E470 A20B001D */ sb $t3, 0x1d($s0) +/* 0D2FA4 7F09E474 864D0006 */ lh $t5, 6($s2) +/* 0D2FA8 7F09E478 01B50019 */ multu $t5, $s5 +/* 0D2FAC 7F09E47C 00006012 */ mflo $t4 +/* 0D2FB0 7F09E480 028CC821 */ addu $t9, $s4, $t4 +/* 0D2FB4 7F09E484 932F000E */ lbu $t7, 0xe($t9) +/* 0D2FB8 7F09E488 A20F001E */ sb $t7, 0x1e($s0) +/* 0D2FBC 7F09E48C 93B80077 */ lbu $t8, 0x77($sp) +/* 0D2FC0 7F09E490 0FC2D20F */ jal get_room_data_float1 +/* 0D2FC4 7F09E494 A218001F */ sb $t8, 0x1f($s0) +/* 0D2FC8 7F09E498 C7A80080 */ lwc1 $f8, 0x80($sp) +/* 0D2FCC 7F09E49C C7A400B0 */ lwc1 $f4, 0xb0($sp) +/* 0D2FD0 7F09E4A0 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 0D2FD4 7F09E4A4 46044280 */ add.s $f10, $f8, $f4 +/* 0D2FD8 7F09E4A8 46065200 */ add.s $f8, $f10, $f6 +/* 0D2FDC 7F09E4AC C66A0000 */ lwc1 $f10, ($s3) +/* 0D2FE0 7F09E4B0 46004102 */ mul.s $f4, $f8, $f0 +/* 0D2FE4 7F09E4B4 460A2181 */ sub.s $f6, $f4, $f10 +/* 0D2FE8 7F09E4B8 46143202 */ mul.s $f8, $f6, $f20 +/* 0D2FEC 7F09E4BC 4600410D */ trunc.w.s $f4, $f8 +/* 0D2FF0 7F09E4C0 44082000 */ mfc1 $t0, $f4 +/* 0D2FF4 7F09E4C4 0FC2D20F */ jal get_room_data_float1 +/* 0D2FF8 7F09E4C8 A6080020 */ sh $t0, 0x20($s0) +/* 0D2FFC 7F09E4CC C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 0D3000 7F09E4D0 C7A600B4 */ lwc1 $f6, 0xb4($sp) +/* 0D3004 7F09E4D4 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 0D3008 7F09E4D8 46065200 */ add.s $f8, $f10, $f6 +/* 0D300C 7F09E4DC 46044280 */ add.s $f10, $f8, $f4 +/* 0D3010 7F09E4E0 C6680004 */ lwc1 $f8, 4($s3) +/* 0D3014 7F09E4E4 46005182 */ mul.s $f6, $f10, $f0 +/* 0D3018 7F09E4E8 46083101 */ sub.s $f4, $f6, $f8 +/* 0D301C 7F09E4EC 46142282 */ mul.s $f10, $f4, $f20 +/* 0D3020 7F09E4F0 4600518D */ trunc.w.s $f6, $f10 +/* 0D3024 7F09E4F4 44093000 */ mfc1 $t1, $f6 +/* 0D3028 7F09E4F8 0FC2D20F */ jal get_room_data_float1 +/* 0D302C 7F09E4FC A6090022 */ sh $t1, 0x22($s0) +/* 0D3030 7F09E500 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 0D3034 7F09E504 C7A400B8 */ lwc1 $f4, 0xb8($sp) +/* 0D3038 7F09E508 C7A60094 */ lwc1 $f6, 0x94($sp) +/* 0D303C 7F09E50C 240C06E0 */ li $t4, 1760 +/* 0D3040 7F09E510 46044280 */ add.s $f10, $f8, $f4 +/* 0D3044 7F09E514 46065200 */ add.s $f8, $f10, $f6 +/* 0D3048 7F09E518 C66A0008 */ lwc1 $f10, 8($s3) +/* 0D304C 7F09E51C A6000028 */ sh $zero, 0x28($s0) +/* 0D3050 7F09E520 A60C002A */ sh $t4, 0x2a($s0) +/* 0D3054 7F09E524 46004102 */ mul.s $f4, $f8, $f0 +/* 0D3058 7F09E528 460A2181 */ sub.s $f6, $f4, $f10 +/* 0D305C 7F09E52C 46143202 */ mul.s $f8, $f6, $f20 +/* 0D3060 7F09E530 4600410D */ trunc.w.s $f4, $f8 +/* 0D3064 7F09E534 440D2000 */ mfc1 $t5, $f4 +/* 0D3068 7F09E538 00000000 */ nop +/* 0D306C 7F09E53C A60D0024 */ sh $t5, 0x24($s0) +/* 0D3070 7F09E540 86590006 */ lh $t9, 6($s2) +/* 0D3074 7F09E544 03350019 */ multu $t9, $s5 +/* 0D3078 7F09E548 00007812 */ mflo $t7 +/* 0D307C 7F09E54C 028FC021 */ addu $t8, $s4, $t7 +/* 0D3080 7F09E550 930E000C */ lbu $t6, 0xc($t8) +/* 0D3084 7F09E554 A20E002C */ sb $t6, 0x2c($s0) +/* 0D3088 7F09E558 86480006 */ lh $t0, 6($s2) +/* 0D308C 7F09E55C 01150019 */ multu $t0, $s5 +/* 0D3090 7F09E560 00005012 */ mflo $t2 +/* 0D3094 7F09E564 028A4821 */ addu $t1, $s4, $t2 +/* 0D3098 7F09E568 912B000D */ lbu $t3, 0xd($t1) +/* 0D309C 7F09E56C A20B002D */ sb $t3, 0x2d($s0) +/* 0D30A0 7F09E570 864D0006 */ lh $t5, 6($s2) +/* 0D30A4 7F09E574 01B50019 */ multu $t5, $s5 +/* 0D30A8 7F09E578 00006012 */ mflo $t4 +/* 0D30AC 7F09E57C 028CC821 */ addu $t9, $s4, $t4 +/* 0D30B0 7F09E580 932F000E */ lbu $t7, 0xe($t9) +/* 0D30B4 7F09E584 A20F002E */ sb $t7, 0x2e($s0) +/* 0D30B8 7F09E588 93B80077 */ lbu $t8, 0x77($sp) +/* 0D30BC 7F09E58C 0FC2D20F */ jal get_room_data_float1 +/* 0D30C0 7F09E590 A218002F */ sb $t8, 0x2f($s0) +/* 0D30C4 7F09E594 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 0D30C8 7F09E598 C7A600A4 */ lwc1 $f6, 0xa4($sp) +/* 0D30CC 7F09E59C C7A40098 */ lwc1 $f4, 0x98($sp) +/* 0D30D0 7F09E5A0 46065201 */ sub.s $f8, $f10, $f6 +/* 0D30D4 7F09E5A4 46044280 */ add.s $f10, $f8, $f4 +/* 0D30D8 7F09E5A8 C6680000 */ lwc1 $f8, ($s3) +/* 0D30DC 7F09E5AC 46005182 */ mul.s $f6, $f10, $f0 +/* 0D30E0 7F09E5B0 46083101 */ sub.s $f4, $f6, $f8 +/* 0D30E4 7F09E5B4 46142282 */ mul.s $f10, $f4, $f20 +/* 0D30E8 7F09E5B8 4600518D */ trunc.w.s $f6, $f10 +/* 0D30EC 7F09E5BC 44083000 */ mfc1 $t0, $f6 +/* 0D30F0 7F09E5C0 0FC2D20F */ jal get_room_data_float1 +/* 0D30F4 7F09E5C4 A6080030 */ sh $t0, 0x30($s0) +/* 0D30F8 7F09E5C8 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 0D30FC 7F09E5CC C7A400A8 */ lwc1 $f4, 0xa8($sp) +/* 0D3100 7F09E5D0 C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 0D3104 7F09E5D4 46044281 */ sub.s $f10, $f8, $f4 +/* 0D3108 7F09E5D8 46065200 */ add.s $f8, $f10, $f6 +/* 0D310C 7F09E5DC C66A0004 */ lwc1 $f10, 4($s3) +/* 0D3110 7F09E5E0 46004102 */ mul.s $f4, $f8, $f0 +/* 0D3114 7F09E5E4 460A2181 */ sub.s $f6, $f4, $f10 +/* 0D3118 7F09E5E8 46143202 */ mul.s $f8, $f6, $f20 +/* 0D311C 7F09E5EC 4600410D */ trunc.w.s $f4, $f8 +/* 0D3120 7F09E5F0 44092000 */ mfc1 $t1, $f4 +/* 0D3124 7F09E5F4 0FC2D20F */ jal get_room_data_float1 +/* 0D3128 7F09E5F8 A6090032 */ sh $t1, 0x32($s0) +/* 0D312C 7F09E5FC C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 0D3130 7F09E600 C7A600AC */ lwc1 $f6, 0xac($sp) +/* 0D3134 7F09E604 C7A400A0 */ lwc1 $f4, 0xa0($sp) +/* 0D3138 7F09E608 240C06E0 */ li $t4, 1760 +/* 0D313C 7F09E60C 46065201 */ sub.s $f8, $f10, $f6 +/* 0D3140 7F09E610 241906E0 */ li $t9, 1760 +/* 0D3144 7F09E614 02002025 */ move $a0, $s0 +/* 0D3148 7F09E618 46044280 */ add.s $f10, $f8, $f4 +/* 0D314C 7F09E61C C6680008 */ lwc1 $f8, 8($s3) +/* 0D3150 7F09E620 A60C0038 */ sh $t4, 0x38($s0) +/* 0D3154 7F09E624 A619003A */ sh $t9, 0x3a($s0) +/* 0D3158 7F09E628 46005182 */ mul.s $f6, $f10, $f0 +/* 0D315C 7F09E62C 46083101 */ sub.s $f4, $f6, $f8 +/* 0D3160 7F09E630 46142282 */ mul.s $f10, $f4, $f20 +/* 0D3164 7F09E634 4600518D */ trunc.w.s $f6, $f10 +/* 0D3168 7F09E638 440D3000 */ mfc1 $t5, $f6 +/* 0D316C 7F09E63C 00000000 */ nop +/* 0D3170 7F09E640 A60D0034 */ sh $t5, 0x34($s0) +/* 0D3174 7F09E644 864F0006 */ lh $t7, 6($s2) +/* 0D3178 7F09E648 01F50019 */ multu $t7, $s5 +/* 0D317C 7F09E64C 0000C012 */ mflo $t8 +/* 0D3180 7F09E650 02987021 */ addu $t6, $s4, $t8 +/* 0D3184 7F09E654 91C8000C */ lbu $t0, 0xc($t6) +/* 0D3188 7F09E658 A208003C */ sb $t0, 0x3c($s0) +/* 0D318C 7F09E65C 864A0006 */ lh $t2, 6($s2) +/* 0D3190 7F09E660 01550019 */ multu $t2, $s5 +/* 0D3194 7F09E664 00004812 */ mflo $t1 +/* 0D3198 7F09E668 02895821 */ addu $t3, $s4, $t1 +/* 0D319C 7F09E66C 916D000D */ lbu $t5, 0xd($t3) +/* 0D31A0 7F09E670 3C090430 */ lui $t1, (0x04300040 >> 16) # lui $t1, 0x430 +/* 0D31A4 7F09E674 35290040 */ ori $t1, (0x04300040 & 0xFFFF) # ori $t1, $t1, 0x40 +/* 0D31A8 7F09E678 A20D003D */ sb $t5, 0x3d($s0) +/* 0D31AC 7F09E67C 864C0006 */ lh $t4, 6($s2) +/* 0D31B0 7F09E680 01950019 */ multu $t4, $s5 +/* 0D31B4 7F09E684 0000C812 */ mflo $t9 +/* 0D31B8 7F09E688 02997821 */ addu $t7, $s4, $t9 +/* 0D31BC 7F09E68C 91F8000E */ lbu $t8, 0xe($t7) +/* 0D31C0 7F09E690 A218003E */ sb $t8, 0x3e($s0) +/* 0D31C4 7F09E694 93AE0077 */ lbu $t6, 0x77($sp) +/* 0D31C8 7F09E698 A20E003F */ sb $t6, 0x3f($s0) +/* 0D31CC 7F09E69C 8FB100E0 */ lw $s1, 0xe0($sp) +/* 0D31D0 7F09E6A0 262A0008 */ addiu $t2, $s1, 8 +/* 0D31D4 7F09E6A4 AFAA00E0 */ sw $t2, 0xe0($sp) +/* 0D31D8 7F09E6A8 0C003A2C */ jal osVirtualToPhysical +/* 0D31DC 7F09E6AC AE290000 */ sw $t1, ($s1) +/* 0D31E0 7F09E6B0 AE220004 */ sw $v0, 4($s1) +/* 0D31E4 7F09E6B4 8FAB00E0 */ lw $t3, 0xe0($sp) +/* 0D31E8 7F09E6B8 3C0CB100 */ lui $t4, (0xB1000032 >> 16) # lui $t4, 0xb100 +/* 0D31EC 7F09E6BC 358C0032 */ ori $t4, (0xB1000032 & 0xFFFF) # ori $t4, $t4, 0x32 +/* 0D31F0 7F09E6C0 256D0008 */ addiu $t5, $t3, 8 +/* 0D31F4 7F09E6C4 AFAD00E0 */ sw $t5, 0xe0($sp) +/* 0D31F8 7F09E6C8 24192010 */ li $t9, 8208 +/* 0D31FC 7F09E6CC AD790004 */ sw $t9, 4($t3) +/* 0D3200 7F09E6D0 AD6C0000 */ sw $t4, ($t3) +/* 0D3204 7F09E6D4 8FA200E0 */ lw $v0, 0xe0($sp) +.L7F09E6D8: +/* 0D3208 7F09E6D8 8FBF0034 */ lw $ra, 0x34($sp) +/* 0D320C 7F09E6DC D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0D3210 7F09E6E0 8FB0001C */ lw $s0, 0x1c($sp) +/* 0D3214 7F09E6E4 8FB10020 */ lw $s1, 0x20($sp) +/* 0D3218 7F09E6E8 8FB20024 */ lw $s2, 0x24($sp) +/* 0D321C 7F09E6EC 8FB30028 */ lw $s3, 0x28($sp) +/* 0D3220 7F09E6F0 8FB4002C */ lw $s4, 0x2c($sp) +/* 0D3224 7F09E6F4 8FB50030 */ lw $s5, 0x30($sp) +/* 0D3228 7F09E6F8 03E00008 */ jr $ra +/* 0D322C 7F09E6FC 27BD00D8 */ addiu $sp, $sp, 0xd8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09E700(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09E700 +/* 0D3230 7F09E700 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0D3234 7F09E704 AFBF0014 */ sw $ra, 0x14($sp) +/* 0D3238 7F09E708 AFA40030 */ sw $a0, 0x30($sp) +/* 0D323C 7F09E70C AFA50034 */ sw $a1, 0x34($sp) +/* 0D3240 7F09E710 AFA60038 */ sw $a2, 0x38($sp) +/* 0D3244 7F09E714 AFA7003C */ sw $a3, 0x3c($sp) +/* 0D3248 7F09E718 0FC26919 */ jal get_num_players +/* 0D324C 7F09E71C AFA0002C */ sw $zero, 0x2c($sp) +/* 0D3250 7F09E720 3C0B8004 */ lui $t3, %hi(D_8004017C) +/* 0D3254 7F09E724 3C078008 */ lui $a3, %hi(ptr_smoke_buf) +/* 0D3258 7F09E728 8FAD002C */ lw $t5, 0x2c($sp) +/* 0D325C 7F09E72C 24E7A140 */ addiu $a3, %lo(ptr_smoke_buf) # addiu $a3, $a3, -0x5ec0 +/* 0D3260 7F09E730 256B017C */ addiu $t3, %lo(D_8004017C) # addiu $t3, $t3, 0x17c +/* 0D3264 7F09E734 00002025 */ move $a0, $zero +/* 0D3268 7F09E738 240C0018 */ li $t4, 24 +/* 0D326C 7F09E73C 240A0009 */ li $t2, 9 +/* 0D3270 7F09E740 24090008 */ li $t1, 8 +/* 0D3274 7F09E744 24080007 */ li $t0, 7 +/* 0D3278 7F09E748 8CE50000 */ lw $a1, ($a3) +.L7F09E74C: +/* 0D327C 7F09E74C 28410002 */ slti $at, $v0, 2 +/* 0D3280 7F09E750 00A47021 */ addu $t6, $a1, $a0 +/* 0D3284 7F09E754 8DCF0000 */ lw $t7, ($t6) +/* 0D3288 7F09E758 00853021 */ addu $a2, $a0, $a1 +/* 0D328C 7F09E75C 15E00003 */ bnez $t7, .L7F09E76C +/* 0D3290 7F09E760 00000000 */ nop +/* 0D3294 7F09E764 10000012 */ b .L7F09E7B0 +/* 0D3298 7F09E768 00856821 */ addu $t5, $a0, $a1 +.L7F09E76C: +/* 0D329C 7F09E76C 1420000D */ bnez $at, .L7F09E7A4 +/* 0D32A0 7F09E770 24840198 */ addiu $a0, $a0, 0x198 +/* 0D32A4 7F09E774 84C30006 */ lh $v1, 6($a2) +/* 0D32A8 7F09E778 5103000B */ beql $t0, $v1, .L7F09E7A8 +/* 0D32AC 7F09E77C 28811FE0 */ slti $at, $a0, 0x1fe0 +/* 0D32B0 7F09E780 51230009 */ beql $t1, $v1, .L7F09E7A8 +/* 0D32B4 7F09E784 28811FE0 */ slti $at, $a0, 0x1fe0 +/* 0D32B8 7F09E788 51430007 */ beql $t2, $v1, .L7F09E7A8 +/* 0D32BC 7F09E78C 28811FE0 */ slti $at, $a0, 0x1fe0 +/* 0D32C0 7F09E790 006C0019 */ multu $v1, $t4 +/* 0D32C4 7F09E794 0000C012 */ mflo $t8 +/* 0D32C8 7F09E798 0178C821 */ addu $t9, $t3, $t8 +/* 0D32CC 7F09E79C 872E0000 */ lh $t6, ($t9) +/* 0D32D0 7F09E7A0 A4CE0004 */ sh $t6, 4($a2) +.L7F09E7A4: +/* 0D32D4 7F09E7A4 28811FE0 */ slti $at, $a0, 0x1fe0 +.L7F09E7A8: +/* 0D32D8 7F09E7A8 5420FFE8 */ bnezl $at, .L7F09E74C +/* 0D32DC 7F09E7AC 8CE50000 */ lw $a1, ($a3) +.L7F09E7B0: +/* 0D32E0 7F09E7B0 51A0003B */ beql $t5, $zero, .L7F09E8A0 +/* 0D32E4 7F09E7B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0D32E8 7F09E7B8 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 0D32EC 7F09E7BC AFAD002C */ sw $t5, 0x2c($sp) +/* 0D32F0 7F09E7C0 24080007 */ li $t0, 7 +/* 0D32F4 7F09E7C4 8FAD002C */ lw $t5, 0x2c($sp) +/* 0D32F8 7F09E7C8 8FBF0030 */ lw $ra, 0x30($sp) +/* 0D32FC 7F09E7CC 10400033 */ beqz $v0, .L7F09E89C +/* 0D3300 7F09E7D0 AFA2001C */ sw $v0, 0x1c($sp) +/* 0D3304 7F09E7D4 90580001 */ lbu $t8, 1($v0) +/* 0D3308 7F09E7D8 8FA9003C */ lw $t1, 0x3c($sp) +/* 0D330C 7F09E7DC 240F0008 */ li $t7, 8 +/* 0D3310 7F09E7E0 37190002 */ ori $t9, $t8, 2 +/* 0D3314 7F09E7E4 A04F0000 */ sb $t7, ($v0) +/* 0D3318 7F09E7E8 A0590001 */ sb $t9, 1($v0) +/* 0D331C 7F09E7EC AC4D0004 */ sw $t5, 4($v0) +/* 0D3320 7F09E7F0 8FAE0034 */ lw $t6, 0x34($sp) +/* 0D3324 7F09E7F4 240700FF */ li $a3, 255 +/* 0D3328 7F09E7F8 00003025 */ move $a2, $zero +/* 0D332C 7F09E7FC AC4E0014 */ sw $t6, 0x14($v0) +/* 0D3330 7F09E800 C7E40000 */ lwc1 $f4, ($ra) +/* 0D3334 7F09E804 00402821 */ addu $a1, $v0, $zero +/* 0D3338 7F09E808 241800FF */ li $t8, 255 +/* 0D333C 7F09E80C E4440008 */ swc1 $f4, 8($v0) +/* 0D3340 7F09E810 C7E60004 */ lwc1 $f6, 4($ra) +/* 0D3344 7F09E814 01201821 */ addu $v1, $t1, $zero +/* 0D3348 7F09E818 E446000C */ swc1 $f6, 0xc($v0) +/* 0D334C 7F09E81C C7E80008 */ lwc1 $f8, 8($ra) +/* 0D3350 7F09E820 E4480010 */ swc1 $f8, 0x10($v0) +/* 0D3354 7F09E824 912F0000 */ lbu $t7, ($t1) +/* 0D3358 7F09E828 10EF0009 */ beq $a3, $t7, .L7F09E850 +/* 0D335C 7F09E82C 31E400FF */ andi $a0, $t7, 0xff +/* 0D3360 7F09E830 A0A4002C */ sb $a0, 0x2c($a1) +.L7F09E834: +/* 0D3364 7F09E834 90640001 */ lbu $a0, 1($v1) +/* 0D3368 7F09E838 24C60001 */ addiu $a2, $a2, 1 +/* 0D336C 7F09E83C 24630001 */ addiu $v1, $v1, 1 +/* 0D3370 7F09E840 10E40003 */ beq $a3, $a0, .L7F09E850 +/* 0D3374 7F09E844 24A50001 */ addiu $a1, $a1, 1 +/* 0D3378 7F09E848 54C8FFFA */ bnel $a2, $t0, .L7F09E834 +/* 0D337C 7F09E84C A0A4002C */ sb $a0, 0x2c($a1) +.L7F09E850: +/* 0D3380 7F09E850 0046C821 */ addu $t9, $v0, $a2 +/* 0D3384 7F09E854 A338002C */ sb $t8, 0x2c($t9) +/* 0D3388 7F09E858 8FAE0040 */ lw $t6, 0x40($sp) +/* 0D338C 7F09E85C 51C00005 */ beql $t6, $zero, .L7F09E874 +/* 0D3390 7F09E860 8FA4001C */ lw $a0, 0x1c($sp) +/* 0D3394 7F09E864 904F0001 */ lbu $t7, 1($v0) +/* 0D3398 7F09E868 35F80008 */ ori $t8, $t7, 8 +/* 0D339C 7F09E86C A0580001 */ sb $t8, 1($v0) +/* 0D33A0 7F09E870 8FA4001C */ lw $a0, 0x1c($sp) +.L7F09E874: +/* 0D33A4 7F09E874 0FC0E93C */ jal sub_GAME_7F03A4F0 +/* 0D33A8 7F09E878 AFAD002C */ sw $t5, 0x2c($sp) +/* 0D33AC 7F09E87C 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 0D33B0 7F09E880 8FA4001C */ lw $a0, 0x1c($sp) +/* 0D33B4 7F09E884 8FAD002C */ lw $t5, 0x2c($sp) +/* 0D33B8 7F09E888 8FB9001C */ lw $t9, 0x1c($sp) +/* 0D33BC 7F09E88C A5A00004 */ sh $zero, 4($t5) +/* 0D33C0 7F09E890 ADB90000 */ sw $t9, ($t5) +/* 0D33C4 7F09E894 87AE003A */ lh $t6, 0x3a($sp) +/* 0D33C8 7F09E898 A5AE0006 */ sh $t6, 6($t5) +.L7F09E89C: +/* 0D33CC 7F09E89C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F09E8A0: +/* 0D33D0 7F09E8A0 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0D33D4 7F09E8A4 03E00008 */ jr $ra +/* 0D33D8 7F09E8A8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09E8AC(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800576CC +.word 0x3e19999a /*0.15000001*/ +glabel D_800576D0 +.word 0x3e99999a /*0.30000001*/ +glabel D_800576D4 +.word 0x3c23d70a /*0.0099999998*/ +glabel D_800576D8 +.word 0x3ca3d70a /*0.02*/ +glabel D_800576DC +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F09E8AC +/* 0D33DC 7F09E8AC 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 0D33E0 7F09E8B0 3C028005 */ lui $v0, %hi(clock_timer) +/* 0D33E4 7F09E8B4 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0D33E8 7F09E8B8 AFBF006C */ sw $ra, 0x6c($sp) +/* 0D33EC 7F09E8BC AFBE0068 */ sw $fp, 0x68($sp) +/* 0D33F0 7F09E8C0 AFB70064 */ sw $s7, 0x64($sp) +/* 0D33F4 7F09E8C4 AFB60060 */ sw $s6, 0x60($sp) +/* 0D33F8 7F09E8C8 AFB5005C */ sw $s5, 0x5c($sp) +/* 0D33FC 7F09E8CC AFB40058 */ sw $s4, 0x58($sp) +/* 0D3400 7F09E8D0 AFB30054 */ sw $s3, 0x54($sp) +/* 0D3404 7F09E8D4 AFB20050 */ sw $s2, 0x50($sp) +/* 0D3408 7F09E8D8 AFB1004C */ sw $s1, 0x4c($sp) +/* 0D340C 7F09E8DC AFB00048 */ sw $s0, 0x48($sp) +/* 0D3410 7F09E8E0 F7BE0040 */ sdc1 $f30, 0x40($sp) +/* 0D3414 7F09E8E4 F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 0D3418 7F09E8E8 F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0D341C 7F09E8EC F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0D3420 7F09E8F0 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0D3424 7F09E8F4 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D3428 7F09E8F8 0080B825 */ move $s7, $a0 +/* 0D342C 7F09E8FC 14400003 */ bnez $v0, .L7F09E90C +/* 0D3430 7F09E900 8C930004 */ lw $s3, 4($a0) +/* 0D3434 7F09E904 10000193 */ b .L7F09EF54 +/* 0D3438 7F09E908 00001025 */ move $v0, $zero +.L7F09E90C: +/* 0D343C 7F09E90C 2841000F */ slti $at, $v0, 0xf +/* 0D3440 7F09E910 50200005 */ beql $at, $zero, .L7F09E928 +/* 0D3444 7F09E914 3C014170 */ lui $at, 0x4170 +/* 0D3448 7F09E918 44822000 */ mtc1 $v0, $f4 +/* 0D344C 7F09E91C 10000004 */ b .L7F09E930 +/* 0D3450 7F09E920 46802020 */ cvt.s.w $f0, $f4 +/* 0D3454 7F09E924 3C014170 */ li $at, 0x41700000 # 15.000000 +.L7F09E928: +/* 0D3458 7F09E928 44810000 */ mtc1 $at, $f0 +/* 0D345C 7F09E92C 00000000 */ nop +.L7F09E930: +/* 0D3460 7F09E930 4600018D */ trunc.w.s $f6, $f0 +/* 0D3464 7F09E934 3C158004 */ lui $s5, %hi(D_8004017C) +/* 0D3468 7F09E938 26B5017C */ addiu $s5, %lo(D_8004017C) # addiu $s5, $s5, 0x17c +/* 0D346C 7F09E93C 0000F025 */ move $fp, $zero +/* 0D3470 7F09E940 440F3000 */ mfc1 $t7, $f6 +/* 0D3474 7F09E944 3C018005 */ lui $at, %hi(D_800576CC) +/* 0D3478 7F09E948 24160018 */ li $s6, 24 +/* 0D347C 7F09E94C 19E000FD */ blez $t7, .L7F09ED44 +/* 0D3480 7F09E950 AFAF008C */ sw $t7, 0x8c($sp) +/* 0D3484 7F09E954 C43E76CC */ lwc1 $f30, %lo(D_800576CC)($at) +/* 0D3488 7F09E958 3C018005 */ lui $at, %hi(D_800576D0) +/* 0D348C 7F09E95C C43C76D0 */ lwc1 $f28, %lo(D_800576D0)($at) +/* 0D3490 7F09E960 3C018005 */ lui $at, %hi(D_800576D4) +/* 0D3494 7F09E964 C43876D4 */ lwc1 $f24, %lo(D_800576D4)($at) +/* 0D3498 7F09E968 3C018005 */ lui $at, %hi(D_800576D8) +/* 0D349C 7F09E96C C43676D8 */ lwc1 $f22, %lo(D_800576D8)($at) +/* 0D34A0 7F09E970 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D34A4 7F09E974 4481A000 */ mtc1 $at, $f20 +/* 0D34A8 7F09E978 4480D000 */ mtc1 $zero, $f26 +/* 0D34AC 7F09E97C 24140190 */ li $s4, 400 +/* 0D34B0 7F09E980 86790004 */ lh $t9, 4($s3) +.L7F09E984: +/* 0D34B4 7F09E984 00001025 */ move $v0, $zero +/* 0D34B8 7F09E988 00009025 */ move $s2, $zero +/* 0D34BC 7F09E98C 27280001 */ addiu $t0, $t9, 1 +/* 0D34C0 7F09E990 A6680004 */ sh $t0, 4($s3) +/* 0D34C4 7F09E994 02608825 */ move $s1, $s3 +.L7F09E998: +/* 0D34C8 7F09E998 C6280014 */ lwc1 $f8, 0x14($s1) +/* 0D34CC 7F09E99C 4608D032 */ c.eq.s $f26, $f8 +/* 0D34D0 7F09E9A0 00000000 */ nop +/* 0D34D4 7F09E9A4 4503003C */ bc1tl .L7F09EA98 +/* 0D34D8 7F09E9A8 26520028 */ addiu $s2, $s2, 0x28 +/* 0D34DC 7F09E9AC 26300008 */ addiu $s0, $s1, 8 +/* 0D34E0 7F09E9B0 C60A0004 */ lwc1 $f10, 4($s0) +/* 0D34E4 7F09E9B4 C612000C */ lwc1 $f18, 0xc($s0) +/* 0D34E8 7F09E9B8 C6060020 */ lwc1 $f6, 0x20($s0) +/* 0D34EC 7F09E9BC 461C5400 */ add.s $f16, $f10, $f28 +/* 0D34F0 7F09E9C0 860C0024 */ lh $t4, 0x24($s0) +/* 0D34F4 7F09E9C4 461E9100 */ add.s $f4, $f18, $f30 +/* 0D34F8 7F09E9C8 E6100004 */ swc1 $f16, 4($s0) +/* 0D34FC 7F09E9CC C6100010 */ lwc1 $f16, 0x10($s0) +/* 0D3500 7F09E9D0 C6120014 */ lwc1 $f18, 0x14($s0) +/* 0D3504 7F09E9D4 E604000C */ swc1 $f4, 0xc($s0) +/* 0D3508 7F09E9D8 86690006 */ lh $t1, 6($s3) +/* 0D350C 7F09E9DC 46128100 */ add.s $f4, $f16, $f18 +/* 0D3510 7F09E9E0 258D0001 */ addiu $t5, $t4, 1 +/* 0D3514 7F09E9E4 01360019 */ multu $t1, $s6 +/* 0D3518 7F09E9E8 00005012 */ mflo $t2 +/* 0D351C 7F09E9EC 02AA5821 */ addu $t3, $s5, $t2 +/* 0D3520 7F09E9F0 C5680010 */ lwc1 $f8, 0x10($t3) +/* 0D3524 7F09E9F4 A60D0024 */ sh $t5, 0x24($s0) +/* 0D3528 7F09E9F8 E6040010 */ swc1 $f4, 0x10($s0) +/* 0D352C 7F09E9FC 46083281 */ sub.s $f10, $f6, $f8 +/* 0D3530 7F09EA00 0C002914 */ jal get_random_value +/* 0D3534 7F09EA04 E60A0020 */ swc1 $f10, 0x20($s0) +/* 0D3538 7F09EA08 44824000 */ mtc1 $v0, $f8 +/* 0D353C 7F09EA0C C6060018 */ lwc1 $f6, 0x18($s0) +/* 0D3540 7F09EA10 04410005 */ bgez $v0, .L7F09EA28 +/* 0D3544 7F09EA14 468042A0 */ cvt.s.w $f10, $f8 +/* 0D3548 7F09EA18 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D354C 7F09EA1C 44818000 */ mtc1 $at, $f16 +/* 0D3550 7F09EA20 00000000 */ nop +/* 0D3554 7F09EA24 46105280 */ add.s $f10, $f10, $f16 +.L7F09EA28: +/* 0D3558 7F09EA28 46145482 */ mul.s $f18, $f10, $f20 +/* 0D355C 7F09EA2C 00000000 */ nop +/* 0D3560 7F09EA30 46189102 */ mul.s $f4, $f18, $f24 +/* 0D3564 7F09EA34 4604B200 */ add.s $f8, $f22, $f4 +/* 0D3568 7F09EA38 46083400 */ add.s $f16, $f6, $f8 +/* 0D356C 7F09EA3C 0C002914 */ jal get_random_value +/* 0D3570 7F09EA40 E6100018 */ swc1 $f16, 0x18($s0) +/* 0D3574 7F09EA44 44829000 */ mtc1 $v0, $f18 +/* 0D3578 7F09EA48 C60A001C */ lwc1 $f10, 0x1c($s0) +/* 0D357C 7F09EA4C 04410005 */ bgez $v0, .L7F09EA64 +/* 0D3580 7F09EA50 46809120 */ cvt.s.w $f4, $f18 +/* 0D3584 7F09EA54 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D3588 7F09EA58 44813000 */ mtc1 $at, $f6 +/* 0D358C 7F09EA5C 00000000 */ nop +/* 0D3590 7F09EA60 46062100 */ add.s $f4, $f4, $f6 +.L7F09EA64: +/* 0D3594 7F09EA64 46142202 */ mul.s $f8, $f4, $f20 +/* 0D3598 7F09EA68 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0D359C 7F09EA6C C6040020 */ lwc1 $f4, 0x20($s0) +/* 0D35A0 7F09EA70 46184402 */ mul.s $f16, $f8, $f24 +/* 0D35A4 7F09EA74 44814000 */ mtc1 $at, $f8 +/* 0D35A8 7F09EA78 00000000 */ nop +/* 0D35AC 7F09EA7C 4608203C */ c.lt.s $f4, $f8 +/* 0D35B0 7F09EA80 4610B480 */ add.s $f18, $f22, $f16 +/* 0D35B4 7F09EA84 46125180 */ add.s $f6, $f10, $f18 +/* 0D35B8 7F09EA88 45000002 */ bc1f .L7F09EA94 +/* 0D35BC 7F09EA8C E606001C */ swc1 $f6, 0x1c($s0) +/* 0D35C0 7F09EA90 E61A000C */ swc1 $f26, 0xc($s0) +.L7F09EA94: +/* 0D35C4 7F09EA94 26520028 */ addiu $s2, $s2, 0x28 +.L7F09EA98: +/* 0D35C8 7F09EA98 2A410190 */ slti $at, $s2, 0x190 +/* 0D35CC 7F09EA9C 1420FFBE */ bnez $at, .L7F09E998 +/* 0D35D0 7F09EAA0 26310028 */ addiu $s1, $s1, 0x28 +/* 0D35D4 7F09EAA4 866E0006 */ lh $t6, 6($s3) +/* 0D35D8 7F09EAA8 86630004 */ lh $v1, 4($s3) +/* 0D35DC 7F09EAAC 01D60019 */ multu $t6, $s6 +/* 0D35E0 7F09EAB0 00007812 */ mflo $t7 +/* 0D35E4 7F09EAB4 02AF2021 */ addu $a0, $s5, $t7 +/* 0D35E8 7F09EAB8 84980000 */ lh $t8, ($a0) +/* 0D35EC 7F09EABC 0078082A */ slt $at, $v1, $t8 +/* 0D35F0 7F09EAC0 5020009D */ beql $at, $zero, .L7F09ED38 +/* 0D35F4 7F09EAC4 8FAB008C */ lw $t3, 0x8c($sp) +/* 0D35F8 7F09EAC8 84990004 */ lh $t9, 4($a0) +/* 0D35FC 7F09EACC 00009025 */ move $s2, $zero +/* 0D3600 7F09EAD0 02608825 */ move $s1, $s3 +/* 0D3604 7F09EAD4 0079001A */ div $zero, $v1, $t9 +/* 0D3608 7F09EAD8 17200002 */ bnez $t9, .L7F09EAE4 +/* 0D360C 7F09EADC 00000000 */ nop +/* 0D3610 7F09EAE0 0007000D */ break 7 +.L7F09EAE4: +/* 0D3614 7F09EAE4 2401FFFF */ li $at, -1 +/* 0D3618 7F09EAE8 17210004 */ bne $t9, $at, .L7F09EAFC +/* 0D361C 7F09EAEC 3C018000 */ li $at, 0x80000000 # -0.000000 +/* 0D3620 7F09EAF0 14610002 */ bne $v1, $at, .L7F09EAFC +/* 0D3624 7F09EAF4 00000000 */ nop +/* 0D3628 7F09EAF8 0006000D */ break 6 +.L7F09EAFC: +/* 0D362C 7F09EAFC 24010001 */ li $at, 1 +/* 0D3630 7F09EB00 00004010 */ mfhi $t0 +/* 0D3634 7F09EB04 5501008C */ bnel $t0, $at, .L7F09ED38 +/* 0D3638 7F09EB08 8FAB008C */ lw $t3, 0x8c($sp) +.L7F09EB0C: +/* 0D363C 7F09EB0C C6300014 */ lwc1 $f16, 0x14($s1) +/* 0D3640 7F09EB10 26520028 */ addiu $s2, $s2, 0x28 +/* 0D3644 7F09EB14 4610D032 */ c.eq.s $f26, $f16 +/* 0D3648 7F09EB18 00000000 */ nop +/* 0D364C 7F09EB1C 45000083 */ bc1f .L7F09ED2C +/* 0D3650 7F09EB20 00000000 */ nop +/* 0D3654 7F09EB24 0C002914 */ jal get_random_value +/* 0D3658 7F09EB28 00000000 */ nop +/* 0D365C 7F09EB2C 44825000 */ mtc1 $v0, $f10 +/* 0D3660 7F09EB30 26300008 */ addiu $s0, $s1, 8 +/* 0D3664 7F09EB34 04410005 */ bgez $v0, .L7F09EB4C +/* 0D3668 7F09EB38 468054A0 */ cvt.s.w $f18, $f10 +/* 0D366C 7F09EB3C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D3670 7F09EB40 44813000 */ mtc1 $at, $f6 +/* 0D3674 7F09EB44 00000000 */ nop +/* 0D3678 7F09EB48 46069480 */ add.s $f18, $f18, $f6 +.L7F09EB4C: +/* 0D367C 7F09EB4C 86690006 */ lh $t1, 6($s3) +/* 0D3680 7F09EB50 46149102 */ mul.s $f4, $f18, $f20 +/* 0D3684 7F09EB54 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D3688 7F09EB58 01360019 */ multu $t1, $s6 +/* 0D368C 7F09EB5C 44814000 */ mtc1 $at, $f8 +/* 0D3690 7F09EB60 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D3694 7F09EB64 44815000 */ mtc1 $at, $f10 +/* 0D3698 7F09EB68 46082402 */ mul.s $f16, $f4, $f8 +/* 0D369C 7F09EB6C 00005012 */ mflo $t2 +/* 0D36A0 7F09EB70 02AA5821 */ addu $t3, $s5, $t2 +/* 0D36A4 7F09EB74 856C0006 */ lh $t4, 6($t3) +/* 0D36A8 7F09EB78 460A8180 */ add.s $f6, $f16, $f10 +/* 0D36AC 7F09EB7C 448C9000 */ mtc1 $t4, $f18 +/* 0D36B0 7F09EB80 00000000 */ nop +/* 0D36B4 7F09EB84 46809120 */ cvt.s.w $f4, $f18 +/* 0D36B8 7F09EB88 46043202 */ mul.s $f8, $f6, $f4 +/* 0D36BC 7F09EB8C 0C002914 */ jal get_random_value +/* 0D36C0 7F09EB90 E608000C */ swc1 $f8, 0xc($s0) +/* 0D36C4 7F09EB94 24010046 */ li $at, 70 +/* 0D36C8 7F09EB98 0041001B */ divu $zero, $v0, $at +/* 0D36CC 7F09EB9C 00006810 */ mfhi $t5 +/* 0D36D0 7F09EBA0 448D8000 */ mtc1 $t5, $f16 +/* 0D36D4 7F09EBA4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D36D8 7F09EBA8 05A10004 */ bgez $t5, .L7F09EBBC +/* 0D36DC 7F09EBAC 468082A0 */ cvt.s.w $f10, $f16 +/* 0D36E0 7F09EBB0 44819000 */ mtc1 $at, $f18 +/* 0D36E4 7F09EBB4 00000000 */ nop +/* 0D36E8 7F09EBB8 46125280 */ add.s $f10, $f10, $f18 +.L7F09EBBC: +/* 0D36EC 7F09EBBC 3C0142DC */ li $at, 0x42DC0000 # 110.000000 +/* 0D36F0 7F09EBC0 44813000 */ mtc1 $at, $f6 +/* 0D36F4 7F09EBC4 A6000024 */ sh $zero, 0x24($s0) +/* 0D36F8 7F09EBC8 46065100 */ add.s $f4, $f10, $f6 +/* 0D36FC 7F09EBCC 0C002914 */ jal get_random_value +/* 0D3700 7F09EBD0 E6040020 */ swc1 $f4, 0x20($s0) +/* 0D3704 7F09EBD4 44824000 */ mtc1 $v0, $f8 +/* 0D3708 7F09EBD8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D370C 7F09EBDC 04410004 */ bgez $v0, .L7F09EBF0 +/* 0D3710 7F09EBE0 46804420 */ cvt.s.w $f16, $f8 +/* 0D3714 7F09EBE4 44819000 */ mtc1 $at, $f18 +/* 0D3718 7F09EBE8 00000000 */ nop +/* 0D371C 7F09EBEC 46128400 */ add.s $f16, $f16, $f18 +.L7F09EBF0: +/* 0D3720 7F09EBF0 46148282 */ mul.s $f10, $f16, $f20 +/* 0D3724 7F09EBF4 3C018005 */ lui $at, %hi(D_800576DC) +/* 0D3728 7F09EBF8 C42676DC */ lwc1 $f6, %lo(D_800576DC)($at) +/* 0D372C 7F09EBFC 46065102 */ mul.s $f4, $f10, $f6 +/* 0D3730 7F09EC00 0C002914 */ jal get_random_value +/* 0D3734 7F09EC04 E6040010 */ swc1 $f4, 0x10($s0) +/* 0D3738 7F09EC08 44829000 */ mtc1 $v0, $f18 +/* 0D373C 7F09EC0C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D3740 7F09EC10 44814000 */ mtc1 $at, $f8 +/* 0D3744 7F09EC14 04410005 */ bgez $v0, .L7F09EC2C +/* 0D3748 7F09EC18 46809420 */ cvt.s.w $f16, $f18 +/* 0D374C 7F09EC1C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D3750 7F09EC20 44815000 */ mtc1 $at, $f10 +/* 0D3754 7F09EC24 00000000 */ nop +/* 0D3758 7F09EC28 460A8400 */ add.s $f16, $f16, $f10 +.L7F09EC2C: +/* 0D375C 7F09EC2C 866E0006 */ lh $t6, 6($s3) +/* 0D3760 7F09EC30 46148182 */ mul.s $f6, $f16, $f20 +/* 0D3764 7F09EC34 46064101 */ sub.s $f4, $f8, $f6 +/* 0D3768 7F09EC38 01D60019 */ multu $t6, $s6 +/* 0D376C 7F09EC3C 00007812 */ mflo $t7 +/* 0D3770 7F09EC40 02AFC021 */ addu $t8, $s5, $t7 +/* 0D3774 7F09EC44 C7120008 */ lwc1 $f18, 8($t8) +/* 0D3778 7F09EC48 46049282 */ mul.s $f10, $f18, $f4 +/* 0D377C 7F09EC4C E60A0014 */ swc1 $f10, 0x14($s0) +/* 0D3780 7F09EC50 C6F00008 */ lwc1 $f16, 8($s7) +/* 0D3784 7F09EC54 E6100000 */ swc1 $f16, ($s0) +/* 0D3788 7F09EC58 C6E8000C */ lwc1 $f8, 0xc($s7) +/* 0D378C 7F09EC5C E6080004 */ swc1 $f8, 4($s0) +/* 0D3790 7F09EC60 C6E60010 */ lwc1 $f6, 0x10($s7) +/* 0D3794 7F09EC64 0C002914 */ jal get_random_value +/* 0D3798 7F09EC68 E6060008 */ swc1 $f6, 8($s0) +/* 0D379C 7F09EC6C 44829000 */ mtc1 $v0, $f18 +/* 0D37A0 7F09EC70 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D37A4 7F09EC74 04410004 */ bgez $v0, .L7F09EC88 +/* 0D37A8 7F09EC78 46809120 */ cvt.s.w $f4, $f18 +/* 0D37AC 7F09EC7C 44815000 */ mtc1 $at, $f10 +/* 0D37B0 7F09EC80 00000000 */ nop +/* 0D37B4 7F09EC84 460A2100 */ add.s $f4, $f4, $f10 +.L7F09EC88: +/* 0D37B8 7F09EC88 46142402 */ mul.s $f16, $f4, $f20 +/* 0D37BC 7F09EC8C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D37C0 7F09EC90 44814000 */ mtc1 $at, $f8 +/* 0D37C4 7F09EC94 00000000 */ nop +/* 0D37C8 7F09EC98 46088182 */ mul.s $f6, $f16, $f8 +/* 0D37CC 7F09EC9C 0C002914 */ jal get_random_value +/* 0D37D0 7F09ECA0 E6060018 */ swc1 $f6, 0x18($s0) +/* 0D37D4 7F09ECA4 44829000 */ mtc1 $v0, $f18 +/* 0D37D8 7F09ECA8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D37DC 7F09ECAC 04410004 */ bgez $v0, .L7F09ECC0 +/* 0D37E0 7F09ECB0 468092A0 */ cvt.s.w $f10, $f18 +/* 0D37E4 7F09ECB4 44812000 */ mtc1 $at, $f4 +/* 0D37E8 7F09ECB8 00000000 */ nop +/* 0D37EC 7F09ECBC 46045280 */ add.s $f10, $f10, $f4 +.L7F09ECC0: +/* 0D37F0 7F09ECC0 46145402 */ mul.s $f16, $f10, $f20 +/* 0D37F4 7F09ECC4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D37F8 7F09ECC8 44814000 */ mtc1 $at, $f8 +/* 0D37FC 7F09ECCC 00000000 */ nop +/* 0D3800 7F09ECD0 46088182 */ mul.s $f6, $f16, $f8 +/* 0D3804 7F09ECD4 E606001C */ swc1 $f6, 0x1c($s0) +/* 0D3808 7F09ECD8 86790006 */ lh $t9, 6($s3) +/* 0D380C 7F09ECDC 86630004 */ lh $v1, 4($s3) +/* 0D3810 7F09ECE0 03360019 */ multu $t9, $s6 +/* 0D3814 7F09ECE4 00004012 */ mflo $t0 +/* 0D3818 7F09ECE8 02A82021 */ addu $a0, $s5, $t0 +/* 0D381C 7F09ECEC 84850000 */ lh $a1, ($a0) +/* 0D3820 7F09ECF0 84860014 */ lh $a2, 0x14($a0) +/* 0D3824 7F09ECF4 00A64823 */ subu $t1, $a1, $a2 +/* 0D3828 7F09ECF8 0123082A */ slt $at, $t1, $v1 +/* 0D382C 7F09ECFC 5020000E */ beql $at, $zero, .L7F09ED38 +/* 0D3830 7F09ED00 8FAB008C */ lw $t3, 0x8c($sp) +/* 0D3834 7F09ED04 00A35023 */ subu $t2, $a1, $v1 +/* 0D3838 7F09ED08 448A9000 */ mtc1 $t2, $f18 +/* 0D383C 7F09ED0C 44865000 */ mtc1 $a2, $f10 +/* 0D3840 7F09ED10 C6060020 */ lwc1 $f6, 0x20($s0) +/* 0D3844 7F09ED14 46809120 */ cvt.s.w $f4, $f18 +/* 0D3848 7F09ED18 46805420 */ cvt.s.w $f16, $f10 +/* 0D384C 7F09ED1C 46102203 */ div.s $f8, $f4, $f16 +/* 0D3850 7F09ED20 46083482 */ mul.s $f18, $f6, $f8 +/* 0D3854 7F09ED24 10000003 */ b .L7F09ED34 +/* 0D3858 7F09ED28 E6120020 */ swc1 $f18, 0x20($s0) +.L7F09ED2C: +/* 0D385C 7F09ED2C 1654FF77 */ bne $s2, $s4, .L7F09EB0C +/* 0D3860 7F09ED30 26310028 */ addiu $s1, $s1, 0x28 +.L7F09ED34: +/* 0D3864 7F09ED34 8FAB008C */ lw $t3, 0x8c($sp) +.L7F09ED38: +/* 0D3868 7F09ED38 27DE0001 */ addiu $fp, $fp, 1 +/* 0D386C 7F09ED3C 57CBFF11 */ bnel $fp, $t3, .L7F09E984 +/* 0D3870 7F09ED40 86790004 */ lh $t9, 4($s3) +.L7F09ED44: +/* 0D3874 7F09ED44 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D3878 7F09ED48 44812000 */ mtc1 $at, $f4 +/* 0D387C 7F09ED4C C6EA0008 */ lwc1 $f10, 8($s7) +/* 0D3880 7F09ED50 44814000 */ mtc1 $at, $f8 +/* 0D3884 7F09ED54 4480D000 */ mtc1 $zero, $f26 +/* 0D3888 7F09ED58 46045401 */ sub.s $f16, $f10, $f4 +/* 0D388C 7F09ED5C 44812000 */ mtc1 $at, $f4 +/* 0D3890 7F09ED60 3C158004 */ lui $s5, %hi(D_8004017C) +/* 0D3894 7F09ED64 26B5017C */ addiu $s5, %lo(D_8004017C) # addiu $s5, $s5, 0x17c +/* 0D3898 7F09ED68 E7B000A8 */ swc1 $f16, 0xa8($sp) +/* 0D389C 7F09ED6C C6E6000C */ lwc1 $f6, 0xc($s7) +/* 0D38A0 7F09ED70 24160018 */ li $s6, 24 +/* 0D38A4 7F09ED74 00009025 */ move $s2, $zero +/* 0D38A8 7F09ED78 46083481 */ sub.s $f18, $f6, $f8 +/* 0D38AC 7F09ED7C 44814000 */ mtc1 $at, $f8 +/* 0D38B0 7F09ED80 02608825 */ move $s1, $s3 +/* 0D38B4 7F09ED84 27B0009C */ addiu $s0, $sp, 0x9c +/* 0D38B8 7F09ED88 E7B200AC */ swc1 $f18, 0xac($sp) +/* 0D38BC 7F09ED8C C6EA0010 */ lwc1 $f10, 0x10($s7) +/* 0D38C0 7F09ED90 27A600B4 */ addiu $a2, $sp, 0xb4 +/* 0D38C4 7F09ED94 4600D386 */ mov.s $f14, $f26 +/* 0D38C8 7F09ED98 46045401 */ sub.s $f16, $f10, $f4 +/* 0D38CC 7F09ED9C 44812000 */ mtc1 $at, $f4 +/* 0D38D0 7F09EDA0 E7B000B0 */ swc1 $f16, 0xb0($sp) +/* 0D38D4 7F09EDA4 C6E60008 */ lwc1 $f6, 8($s7) +/* 0D38D8 7F09EDA8 46083480 */ add.s $f18, $f6, $f8 +/* 0D38DC 7F09EDAC 44814000 */ mtc1 $at, $f8 +/* 0D38E0 7F09EDB0 E7B2009C */ swc1 $f18, 0x9c($sp) +/* 0D38E4 7F09EDB4 C6EA000C */ lwc1 $f10, 0xc($s7) +/* 0D38E8 7F09EDB8 46045400 */ add.s $f16, $f10, $f4 +/* 0D38EC 7F09EDBC E7B000A0 */ swc1 $f16, 0xa0($sp) +/* 0D38F0 7F09EDC0 C6E60010 */ lwc1 $f6, 0x10($s7) +/* 0D38F4 7F09EDC4 46083480 */ add.s $f18, $f6, $f8 +/* 0D38F8 7F09EDC8 E7B200A4 */ swc1 $f18, 0xa4($sp) +.L7F09EDCC: +/* 0D38FC 7F09EDCC C62A0014 */ lwc1 $f10, 0x14($s1) +/* 0D3900 7F09EDD0 26520028 */ addiu $s2, $s2, 0x28 +/* 0D3904 7F09EDD4 2A410190 */ slti $at, $s2, 0x190 +/* 0D3908 7F09EDD8 460AD032 */ c.eq.s $f26, $f10 +/* 0D390C 7F09EDDC 00002025 */ move $a0, $zero +/* 0D3910 7F09EDE0 02202825 */ move $a1, $s1 +/* 0D3914 7F09EDE4 27A200A8 */ addiu $v0, $sp, 0xa8 +/* 0D3918 7F09EDE8 45010016 */ bc1t .L7F09EE44 +/* 0D391C 7F09EDEC 00000000 */ nop +.L7F09EDF0: +/* 0D3920 7F09EDF0 C4A40008 */ lwc1 $f4, 8($a1) +/* 0D3924 7F09EDF4 C6300014 */ lwc1 $f16, 0x14($s1) +/* 0D3928 7F09EDF8 C4460000 */ lwc1 $f6, ($v0) +/* 0D392C 7F09EDFC 24A50004 */ addiu $a1, $a1, 4 +/* 0D3930 7F09EE00 46102001 */ sub.s $f0, $f4, $f16 +/* 0D3934 7F09EE04 02041821 */ addu $v1, $s0, $a0 +/* 0D3938 7F09EE08 4606003C */ c.lt.s $f0, $f6 +/* 0D393C 7F09EE0C 00000000 */ nop +/* 0D3940 7F09EE10 45020004 */ bc1fl .L7F09EE24 +/* 0D3944 7F09EE14 C4680000 */ lwc1 $f8, ($v1) +/* 0D3948 7F09EE18 10000007 */ b .L7F09EE38 +/* 0D394C 7F09EE1C E4400000 */ swc1 $f0, ($v0) +/* 0D3950 7F09EE20 C4680000 */ lwc1 $f8, ($v1) +.L7F09EE24: +/* 0D3954 7F09EE24 4600403C */ c.lt.s $f8, $f0 +/* 0D3958 7F09EE28 00000000 */ nop +/* 0D395C 7F09EE2C 45020003 */ bc1fl .L7F09EE3C +/* 0D3960 7F09EE30 24420004 */ addiu $v0, $v0, 4 +/* 0D3964 7F09EE34 E4600000 */ swc1 $f0, ($v1) +.L7F09EE38: +/* 0D3968 7F09EE38 24420004 */ addiu $v0, $v0, 4 +.L7F09EE3C: +/* 0D396C 7F09EE3C 1446FFEC */ bne $v0, $a2, .L7F09EDF0 +/* 0D3970 7F09EE40 24840004 */ addiu $a0, $a0, 4 +.L7F09EE44: +/* 0D3974 7F09EE44 1420FFE1 */ bnez $at, .L7F09EDCC +/* 0D3978 7F09EE48 26310028 */ addiu $s1, $s1, 0x28 +/* 0D397C 7F09EE4C C6E00008 */ lwc1 $f0, 8($s7) +/* 0D3980 7F09EE50 C7B200A8 */ lwc1 $f18, 0xa8($sp) +/* 0D3984 7F09EE54 C7AA00B0 */ lwc1 $f10, 0xb0($sp) +/* 0D3988 7F09EE58 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0D398C 7F09EE5C 46120081 */ sub.s $f2, $f0, $f18 +/* 0D3990 7F09EE60 C7B000A4 */ lwc1 $f16, 0xa4($sp) +/* 0D3994 7F09EE64 02E02025 */ move $a0, $s7 +/* 0D3998 7F09EE68 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 0D399C 7F09EE6C 4602D03C */ c.lt.s $f26, $f2 +/* 0D39A0 7F09EE70 00000000 */ nop +/* 0D39A4 7F09EE74 45020003 */ bc1fl .L7F09EE84 +/* 0D39A8 7F09EE78 C6E20010 */ lwc1 $f2, 0x10($s7) +/* 0D39AC 7F09EE7C 46001386 */ mov.s $f14, $f2 +/* 0D39B0 7F09EE80 C6E20010 */ lwc1 $f2, 0x10($s7) +.L7F09EE84: +/* 0D39B4 7F09EE84 460A1301 */ sub.s $f12, $f2, $f10 +/* 0D39B8 7F09EE88 460C703C */ c.lt.s $f14, $f12 +/* 0D39BC 7F09EE8C 00000000 */ nop +/* 0D39C0 7F09EE90 45020003 */ bc1fl .L7F09EEA0 +/* 0D39C4 7F09EE94 46002301 */ sub.s $f12, $f4, $f0 +/* 0D39C8 7F09EE98 46006386 */ mov.s $f14, $f12 +/* 0D39CC 7F09EE9C 46002301 */ sub.s $f12, $f4, $f0 +.L7F09EEA0: +/* 0D39D0 7F09EEA0 46028001 */ sub.s $f0, $f16, $f2 +/* 0D39D4 7F09EEA4 460C703C */ c.lt.s $f14, $f12 +/* 0D39D8 7F09EEA8 00000000 */ nop +/* 0D39DC 7F09EEAC 45020003 */ bc1fl .L7F09EEBC +/* 0D39E0 7F09EEB0 4600703C */ c.lt.s $f14, $f0 +/* 0D39E4 7F09EEB4 46006386 */ mov.s $f14, $f12 +/* 0D39E8 7F09EEB8 4600703C */ c.lt.s $f14, $f0 +.L7F09EEBC: +/* 0D39EC 7F09EEBC 00000000 */ nop +/* 0D39F0 7F09EEC0 45020003 */ bc1fl .L7F09EED0 +/* 0D39F4 7F09EEC4 44077000 */ mfc1 $a3, $f14 +/* 0D39F8 7F09EEC8 46000386 */ mov.s $f14, $f0 +/* 0D39FC 7F09EECC 44077000 */ mfc1 $a3, $f14 +.L7F09EED0: +/* 0D3A00 7F09EED0 0FC0F89F */ jal sub_GAME_7F03E27C +/* 0D3A04 7F09EED4 02003025 */ move $a2, $s0 +/* 0D3A08 7F09EED8 866C0006 */ lh $t4, 6($s3) +/* 0D3A0C 7F09EEDC 86780004 */ lh $t8, 4($s3) +/* 0D3A10 7F09EEE0 00009025 */ move $s2, $zero +/* 0D3A14 7F09EEE4 01960019 */ multu $t4, $s6 +/* 0D3A18 7F09EEE8 02608825 */ move $s1, $s3 +/* 0D3A1C 7F09EEEC 24020190 */ li $v0, 400 +/* 0D3A20 7F09EEF0 00001825 */ move $v1, $zero +/* 0D3A24 7F09EEF4 00006812 */ mflo $t5 +/* 0D3A28 7F09EEF8 02AD7021 */ addu $t6, $s5, $t5 +/* 0D3A2C 7F09EEFC 85CF0004 */ lh $t7, 4($t6) +/* 0D3A30 7F09EF00 01F8082A */ slt $at, $t7, $t8 +/* 0D3A34 7F09EF04 1020000E */ beqz $at, .L7F09EF40 +/* 0D3A38 7F09EF08 00000000 */ nop +/* 0D3A3C 7F09EF0C 24030001 */ li $v1, 1 +.L7F09EF10: +/* 0D3A40 7F09EF10 C6260014 */ lwc1 $f6, 0x14($s1) +/* 0D3A44 7F09EF14 26520028 */ addiu $s2, $s2, 0x28 +/* 0D3A48 7F09EF18 4606D03C */ c.lt.s $f26, $f6 +/* 0D3A4C 7F09EF1C 00000000 */ nop +/* 0D3A50 7F09EF20 45000003 */ bc1f .L7F09EF30 +/* 0D3A54 7F09EF24 00000000 */ nop +/* 0D3A58 7F09EF28 10000005 */ b .L7F09EF40 +/* 0D3A5C 7F09EF2C 00001825 */ move $v1, $zero +.L7F09EF30: +/* 0D3A60 7F09EF30 1642FFF7 */ bne $s2, $v0, .L7F09EF10 +/* 0D3A64 7F09EF34 26310028 */ addiu $s1, $s1, 0x28 +/* 0D3A68 7F09EF38 10000001 */ b .L7F09EF40 +/* 0D3A6C 7F09EF3C 00000000 */ nop +.L7F09EF40: +/* 0D3A70 7F09EF40 10600004 */ beqz $v1, .L7F09EF54 +/* 0D3A74 7F09EF44 00001025 */ move $v0, $zero +/* 0D3A78 7F09EF48 AE600000 */ sw $zero, ($s3) +/* 0D3A7C 7F09EF4C 10000001 */ b .L7F09EF54 +/* 0D3A80 7F09EF50 24020001 */ li $v0, 1 +.L7F09EF54: +/* 0D3A84 7F09EF54 8FBF006C */ lw $ra, 0x6c($sp) +/* 0D3A88 7F09EF58 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D3A8C 7F09EF5C D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0D3A90 7F09EF60 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0D3A94 7F09EF64 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0D3A98 7F09EF68 D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 0D3A9C 7F09EF6C D7BE0040 */ ldc1 $f30, 0x40($sp) +/* 0D3AA0 7F09EF70 8FB00048 */ lw $s0, 0x48($sp) +/* 0D3AA4 7F09EF74 8FB1004C */ lw $s1, 0x4c($sp) +/* 0D3AA8 7F09EF78 8FB20050 */ lw $s2, 0x50($sp) +/* 0D3AAC 7F09EF7C 8FB30054 */ lw $s3, 0x54($sp) +/* 0D3AB0 7F09EF80 8FB40058 */ lw $s4, 0x58($sp) +/* 0D3AB4 7F09EF84 8FB5005C */ lw $s5, 0x5c($sp) +/* 0D3AB8 7F09EF88 8FB60060 */ lw $s6, 0x60($sp) +/* 0D3ABC 7F09EF8C 8FB70064 */ lw $s7, 0x64($sp) +/* 0D3AC0 7F09EF90 8FBE0068 */ lw $fp, 0x68($sp) +/* 0D3AC4 7F09EF94 03E00008 */ jr $ra +/* 0D3AC8 7F09EF98 27BD00D0 */ addiu $sp, $sp, 0xd0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09EF9C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09EF9C +/* 0D3ACC 7F09EF9C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0D3AD0 7F09EFA0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0D3AD4 7F09EFA4 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0D3AD8 7F09EFA8 AFA40018 */ sw $a0, 0x18($sp) +/* 0D3ADC 7F09EFAC 8FA40018 */ lw $a0, 0x18($sp) +/* 0D3AE0 7F09EFB0 C4440008 */ lwc1 $f4, 8($v0) +/* 0D3AE4 7F09EFB4 C44A0018 */ lwc1 $f10, 0x18($v0) +/* 0D3AE8 7F09EFB8 C4860008 */ lwc1 $f6, 8($a0) +/* 0D3AEC 7F09EFBC C490000C */ lwc1 $f16, 0xc($a0) +/* 0D3AF0 7F09EFC0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0D3AF4 7F09EFC4 46062202 */ mul.s $f8, $f4, $f6 +/* 0D3AF8 7F09EFC8 C4460028 */ lwc1 $f6, 0x28($v0) +/* 0D3AFC 7F09EFCC 44811000 */ mtc1 $at, $f2 +/* 0D3B00 7F09EFD0 46105482 */ mul.s $f18, $f10, $f16 +/* 0D3B04 7F09EFD4 C48A0010 */ lwc1 $f10, 0x10($a0) +/* 0D3B08 7F09EFD8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D3B0C 7F09EFDC 460A3402 */ mul.s $f16, $f6, $f10 +/* 0D3B10 7F09EFE0 46124100 */ add.s $f4, $f8, $f18 +/* 0D3B14 7F09EFE4 C4520038 */ lwc1 $f18, 0x38($v0) +/* 0D3B18 7F09EFE8 46102200 */ add.s $f8, $f4, $f16 +/* 0D3B1C 7F09EFEC 46089180 */ add.s $f6, $f18, $f8 +/* 0D3B20 7F09EFF0 46003287 */ neg.s $f10, $f6 +/* 0D3B24 7F09EFF4 E48A0018 */ swc1 $f10, 0x18($a0) +/* 0D3B28 7F09EFF8 C4800018 */ lwc1 $f0, 0x18($a0) +/* 0D3B2C 7F09EFFC 4602003C */ c.lt.s $f0, $f2 +/* 0D3B30 7F09F000 00000000 */ nop +/* 0D3B34 7F09F004 45020007 */ bc1fl .L7F09F024 +/* 0D3B38 7F09F008 46020481 */ sub.s $f18, $f0, $f2 +/* 0D3B3C 7F09F00C 44812000 */ mtc1 $at, $f4 +/* 0D3B40 7F09F010 00000000 */ nop +/* 0D3B44 7F09F014 46040402 */ mul.s $f16, $f0, $f4 +/* 0D3B48 7F09F018 10000003 */ b .L7F09F028 +/* 0D3B4C 7F09F01C E4900018 */ swc1 $f16, 0x18($a0) +/* 0D3B50 7F09F020 46020481 */ sub.s $f18, $f0, $f2 +.L7F09F024: +/* 0D3B54 7F09F024 E4920018 */ swc1 $f18, 0x18($a0) +.L7F09F028: +/* 0D3B58 7F09F028 8FBF0014 */ lw $ra, 0x14($sp) +/* 0D3B5C 7F09F02C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0D3B60 7F09F030 00001025 */ move $v0, $zero +/* 0D3B64 7F09F034 03E00008 */ jr $ra +/* 0D3B68 7F09F038 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09F03C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F09F03C +/* 0D3B6C 7F09F03C 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 0D3B70 7F09F040 AFB00024 */ sw $s0, 0x24($sp) +/* 0D3B74 7F09F044 AFBF003C */ sw $ra, 0x3c($sp) +/* 0D3B78 7F09F048 AFB50038 */ sw $s5, 0x38($sp) +/* 0D3B7C 7F09F04C AFB40034 */ sw $s4, 0x34($sp) +/* 0D3B80 7F09F050 AFB30030 */ sw $s3, 0x30($sp) +/* 0D3B84 7F09F054 AFB2002C */ sw $s2, 0x2c($sp) +/* 0D3B88 7F09F058 AFB10028 */ sw $s1, 0x28($sp) +/* 0D3B8C 7F09F05C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D3B90 7F09F060 9091002C */ lbu $s1, 0x2c($a0) +/* 0D3B94 7F09F064 00808025 */ move $s0, $a0 +/* 0D3B98 7F09F068 8C940004 */ lw $s4, 4($a0) +/* 0D3B9C 7F09F06C 00A09025 */ move $s2, $a1 +/* 0D3BA0 7F09F070 00C09825 */ move $s3, $a2 +/* 0D3BA4 7F09F074 0FC2F285 */ jal sub_GAME_7F0BCA14 +/* 0D3BA8 7F09F078 02202025 */ move $a0, $s1 +/* 0D3BAC 7F09F07C 16600003 */ bnez $s3, .L7F09F08C +/* 0D3BB0 7F09F080 0040A825 */ move $s5, $v0 +/* 0D3BB4 7F09F084 10000069 */ b .L7F09F22C +/* 0D3BB8 7F09F088 02401025 */ move $v0, $s2 +.L7F09F08C: +/* 0D3BBC 7F09F08C 02002025 */ move $a0, $s0 +/* 0D3BC0 7F09F090 0FC15299 */ jal sub_GAME_7F054A64 +/* 0D3BC4 7F09F094 27A50078 */ addiu $a1, $sp, 0x78 +/* 0D3BC8 7F09F098 1840000A */ blez $v0, .L7F09F0C4 +/* 0D3BCC 7F09F09C 00000000 */ nop +/* 0D3BD0 7F09F0A0 C7A40084 */ lwc1 $f4, 0x84($sp) +/* 0D3BD4 7F09F0A4 02402025 */ move $a0, $s2 +/* 0D3BD8 7F09F0A8 8FA50078 */ lw $a1, 0x78($sp) +/* 0D3BDC 7F09F0AC 8FA6007C */ lw $a2, 0x7c($sp) +/* 0D3BE0 7F09F0B0 8FA70080 */ lw $a3, 0x80($sp) +/* 0D3BE4 7F09F0B4 0FC2D3FD */ jal sub_GAME_7F0B4FF4 +/* 0D3BE8 7F09F0B8 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0D3BEC 7F09F0BC 10000004 */ b .L7F09F0D0 +/* 0D3BF0 7F09F0C0 00409025 */ move $s2, $v0 +.L7F09F0C4: +/* 0D3BF4 7F09F0C4 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 0D3BF8 7F09F0C8 02402025 */ move $a0, $s2 +/* 0D3BFC 7F09F0CC 00409025 */ move $s2, $v0 +.L7F09F0D0: +/* 0D3C00 7F09F0D0 02401025 */ move $v0, $s2 +/* 0D3C04 7F09F0D4 3C0F0001 */ lui $t7, (0x00013000 >> 16) # lui $t7, 1 +/* 0D3C08 7F09F0D8 35EF3000 */ ori $t7, (0x00013000 & 0xFFFF) # ori $t7, $t7, 0x3000 +/* 0D3C0C 7F09F0DC 26520008 */ addiu $s2, $s2, 8 +/* 0D3C10 7F09F0E0 3C0EB600 */ lui $t6, 0xb600 +/* 0D3C14 7F09F0E4 3C180103 */ lui $t8, (0x01030040 >> 16) # lui $t8, 0x103 +/* 0D3C18 7F09F0E8 AC4E0000 */ sw $t6, ($v0) +/* 0D3C1C 7F09F0EC AC4F0004 */ sw $t7, 4($v0) +/* 0D3C20 7F09F0F0 37180040 */ ori $t8, (0x01030040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 0D3C24 7F09F0F4 02408025 */ move $s0, $s2 +/* 0D3C28 7F09F0F8 AE180000 */ sw $t8, ($s0) +/* 0D3C2C 7F09F0FC 0FC1E0E5 */ jal get_BONDdata_field_10E0 +/* 0D3C30 7F09F100 26520008 */ addiu $s2, $s2, 8 +/* 0D3C34 7F09F104 0C003A2C */ jal osVirtualToPhysical +/* 0D3C38 7F09F108 00402025 */ move $a0, $v0 +/* 0D3C3C 7F09F10C AE020004 */ sw $v0, 4($s0) +/* 0D3C40 7F09F110 02402025 */ move $a0, $s2 +/* 0D3C44 7F09F114 0FC2F271 */ jal sub_GAME_7F0BC9C4 +/* 0D3C48 7F09F118 02202825 */ move $a1, $s1 +/* 0D3C4C 7F09F11C 3C190100 */ lui $t9, (0x01000040 >> 16) # lui $t9, 0x100 +/* 0D3C50 7F09F120 37390040 */ ori $t9, (0x01000040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 0D3C54 7F09F124 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A100) +/* 0D3C58 7F09F128 2484A100 */ addiu $a0, %lo(dword_CODE_bss_8007A100) # addiu $a0, $a0, -0x5f00 +/* 0D3C5C 7F09F12C AC590000 */ sw $t9, ($v0) +/* 0D3C60 7F09F130 00408025 */ move $s0, $v0 +/* 0D3C64 7F09F134 0C003A2C */ jal osVirtualToPhysical +/* 0D3C68 7F09F138 24520008 */ addiu $s2, $v0, 8 +/* 0D3C6C 7F09F13C 3C08BC00 */ lui $t0, (0xBC000806 >> 16) # lui $t0, 0xbc00 +/* 0D3C70 7F09F140 AE020004 */ sw $v0, 4($s0) +/* 0D3C74 7F09F144 35080806 */ ori $t0, (0xBC000806 & 0xFFFF) # ori $t0, $t0, 0x806 +/* 0D3C78 7F09F148 02409825 */ move $s3, $s2 +/* 0D3C7C 7F09F14C AE680000 */ sw $t0, ($s3) +/* 0D3C80 7F09F150 3C048009 */ lui $a0, %hi(pGlobalimagetable) +/* 0D3C84 7F09F154 8C84D0B4 */ lw $a0, %lo(pGlobalimagetable)($a0) +/* 0D3C88 7F09F158 0C003A2C */ jal osVirtualToPhysical +/* 0D3C8C 7F09F15C 26520008 */ addiu $s2, $s2, 8 +/* 0D3C90 7F09F160 AE620004 */ sw $v0, 4($s3) +/* 0D3C94 7F09F164 02401825 */ move $v1, $s2 +/* 0D3C98 7F09F168 26520008 */ addiu $s2, $s2, 8 +/* 0D3C9C 7F09F16C 3C0A0200 */ lui $t2, 0x200 +/* 0D3CA0 7F09F170 254A0000 */ addiu $t2, $t2, 0 +/* 0D3CA4 7F09F174 3C090600 */ lui $t1, 0x600 +/* 0D3CA8 7F09F178 02402025 */ move $a0, $s2 +/* 0D3CAC 7F09F17C AC690000 */ sw $t1, ($v1) +/* 0D3CB0 7F09F180 AC6A0004 */ sw $t2, 4($v1) +/* 0D3CB4 7F09F184 3C0BBA00 */ lui $t3, (0xBA000602 >> 16) # lui $t3, 0xba00 +/* 0D3CB8 7F09F188 356B0602 */ ori $t3, (0xBA000602 & 0xFFFF) # ori $t3, $t3, 0x602 +/* 0D3CBC 7F09F18C 240C0080 */ li $t4, 128 +/* 0D3CC0 7F09F190 4480A000 */ mtc1 $zero, $f20 +/* 0D3CC4 7F09F194 AC8C0004 */ sw $t4, 4($a0) +/* 0D3CC8 7F09F198 AC8B0000 */ sw $t3, ($a0) +/* 0D3CCC 7F09F19C 26520008 */ addiu $s2, $s2, 8 +/* 0D3CD0 7F09F1A0 24130190 */ li $s3, 400 +/* 0D3CD4 7F09F1A4 00008825 */ move $s1, $zero +/* 0D3CD8 7F09F1A8 02808025 */ move $s0, $s4 +.L7F09F1AC: +/* 0D3CDC 7F09F1AC C6060014 */ lwc1 $f6, 0x14($s0) +/* 0D3CE0 7F09F1B0 02802025 */ move $a0, $s4 +/* 0D3CE4 7F09F1B4 26050008 */ addiu $a1, $s0, 8 +/* 0D3CE8 7F09F1B8 4606A03C */ c.lt.s $f20, $f6 +/* 0D3CEC 7F09F1BC 02403025 */ move $a2, $s2 +/* 0D3CF0 7F09F1C0 45020006 */ bc1fl .L7F09F1DC +/* 0D3CF4 7F09F1C4 E6140014 */ swc1 $f20, 0x14($s0) +/* 0D3CF8 7F09F1C8 0FC27769 */ jal sub_GAME_7F09DDA4 +/* 0D3CFC 7F09F1CC 02A03825 */ move $a3, $s5 +/* 0D3D00 7F09F1D0 10000002 */ b .L7F09F1DC +/* 0D3D04 7F09F1D4 00409025 */ move $s2, $v0 +/* 0D3D08 7F09F1D8 E6140014 */ swc1 $f20, 0x14($s0) +.L7F09F1DC: +/* 0D3D0C 7F09F1DC 26310028 */ addiu $s1, $s1, 0x28 +/* 0D3D10 7F09F1E0 1633FFF2 */ bne $s1, $s3, .L7F09F1AC +/* 0D3D14 7F09F1E4 26100028 */ addiu $s0, $s0, 0x28 +/* 0D3D18 7F09F1E8 02401025 */ move $v0, $s2 +/* 0D3D1C 7F09F1EC 3C0DBA00 */ lui $t5, (0xBA000602 >> 16) # lui $t5, 0xba00 +/* 0D3D20 7F09F1F0 35AD0602 */ ori $t5, (0xBA000602 & 0xFFFF) # ori $t5, $t5, 0x602 +/* 0D3D24 7F09F1F4 26520008 */ addiu $s2, $s2, 8 +/* 0D3D28 7F09F1F8 240E0040 */ li $t6, 64 +/* 0D3D2C 7F09F1FC 3C0F0103 */ lui $t7, (0x01030040 >> 16) # lui $t7, 0x103 +/* 0D3D30 7F09F200 AC4E0004 */ sw $t6, 4($v0) +/* 0D3D34 7F09F204 AC4D0000 */ sw $t5, ($v0) +/* 0D3D38 7F09F208 35EF0040 */ ori $t7, (0x01030040 & 0xFFFF) # ori $t7, $t7, 0x40 +/* 0D3D3C 7F09F20C 02408025 */ move $s0, $s2 +/* 0D3D40 7F09F210 AE0F0000 */ sw $t7, ($s0) +/* 0D3D44 7F09F214 0FC1E0DD */ jal get_BONDdata_field_10D8 +/* 0D3D48 7F09F218 26520008 */ addiu $s2, $s2, 8 +/* 0D3D4C 7F09F21C 0C003A2C */ jal osVirtualToPhysical +/* 0D3D50 7F09F220 00402025 */ move $a0, $v0 +/* 0D3D54 7F09F224 AE020004 */ sw $v0, 4($s0) +/* 0D3D58 7F09F228 02401025 */ move $v0, $s2 +.L7F09F22C: +/* 0D3D5C 7F09F22C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0D3D60 7F09F230 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D3D64 7F09F234 8FB00024 */ lw $s0, 0x24($sp) +/* 0D3D68 7F09F238 8FB10028 */ lw $s1, 0x28($sp) +/* 0D3D6C 7F09F23C 8FB2002C */ lw $s2, 0x2c($sp) +/* 0D3D70 7F09F240 8FB30030 */ lw $s3, 0x30($sp) +/* 0D3D74 7F09F244 8FB40034 */ lw $s4, 0x34($sp) +/* 0D3D78 7F09F248 8FB50038 */ lw $s5, 0x38($sp) +/* 0D3D7C 7F09F24C 03E00008 */ jr $ra +/* 0D3D80 7F09F250 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09F254(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800576E0 +.word 0x3f8f5c29 /*1.12*/ +glabel D_800576E4 +.word 0x3df5c28f /*0.12*/ +glabel D_800576E8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800576EC +.word 0x3dcccccd /*0.1*/ +.text +glabel sub_GAME_7F09F254 +/* 0D3D84 7F09F254 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0D3D88 7F09F258 AFBF0034 */ sw $ra, 0x34($sp) +/* 0D3D8C 7F09F25C AFB20030 */ sw $s2, 0x30($sp) +/* 0D3D90 7F09F260 AFB1002C */ sw $s1, 0x2c($sp) +/* 0D3D94 7F09F264 AFB00028 */ sw $s0, 0x28($sp) +/* 0D3D98 7F09F268 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0D3D9C 7F09F26C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D3DA0 7F09F270 AFA40050 */ sw $a0, 0x50($sp) +/* 0D3DA4 7F09F274 AFA50054 */ sw $a1, 0x54($sp) +/* 0D3DA8 7F09F278 AFA60058 */ sw $a2, 0x58($sp) +/* 0D3DAC 7F09F27C 0C002914 */ jal get_random_value +/* 0D3DB0 7F09F280 AFA7005C */ sw $a3, 0x5c($sp) +/* 0D3DB4 7F09F284 44822000 */ mtc1 $v0, $f4 +/* 0D3DB8 7F09F288 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D3DBC 7F09F28C 4481B000 */ mtc1 $at, $f22 +/* 0D3DC0 7F09F290 04410005 */ bgez $v0, .L7F09F2A8 +/* 0D3DC4 7F09F294 468021A0 */ cvt.s.w $f6, $f4 +/* 0D3DC8 7F09F298 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D3DCC 7F09F29C 44814000 */ mtc1 $at, $f8 +/* 0D3DD0 7F09F2A0 00000000 */ nop +/* 0D3DD4 7F09F2A4 46083180 */ add.s $f6, $f6, $f8 +.L7F09F2A8: +/* 0D3DD8 7F09F2A8 46163002 */ mul.s $f0, $f6, $f22 +/* 0D3DDC 7F09F2AC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D3DE0 7F09F2B0 44819000 */ mtc1 $at, $f18 +/* 0D3DE4 7F09F2B4 46000280 */ add.s $f10, $f0, $f0 +/* 0D3DE8 7F09F2B8 0C002914 */ jal get_random_value +/* 0D3DEC 7F09F2BC 46125501 */ sub.s $f20, $f10, $f18 +/* 0D3DF0 7F09F2C0 44822000 */ mtc1 $v0, $f4 +/* 0D3DF4 7F09F2C4 04410005 */ bgez $v0, .L7F09F2DC +/* 0D3DF8 7F09F2C8 46802220 */ cvt.s.w $f8, $f4 +/* 0D3DFC 7F09F2CC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D3E00 7F09F2D0 44813000 */ mtc1 $at, $f6 +/* 0D3E04 7F09F2D4 00000000 */ nop +/* 0D3E08 7F09F2D8 46064200 */ add.s $f8, $f8, $f6 +.L7F09F2DC: +/* 0D3E0C 7F09F2DC 46164282 */ mul.s $f10, $f8, $f22 +/* 0D3E10 7F09F2E0 3C018005 */ lui $at, %hi(D_800576E0) +/* 0D3E14 7F09F2E4 C43276E0 */ lwc1 $f18, %lo(D_800576E0)($at) +/* 0D3E18 7F09F2E8 3C018005 */ lui $at, %hi(D_800576E4) +/* 0D3E1C 7F09F2EC C42676E4 */ lwc1 $f6, %lo(D_800576E4)($at) +/* 0D3E20 7F09F2F0 46125102 */ mul.s $f4, $f10, $f18 +/* 0D3E24 7F09F2F4 46062301 */ sub.s $f12, $f4, $f6 +/* 0D3E28 7F09F2F8 0C002914 */ jal get_random_value +/* 0D3E2C 7F09F2FC E7AC0048 */ swc1 $f12, 0x48($sp) +/* 0D3E30 7F09F300 3C128004 */ lui $s2, %hi(D_8004017C+0x684) +/* 0D3E34 7F09F304 26520800 */ addiu $s2, %lo(D_8004017C+0x684) # addiu $s2, $s2, 0x800 +/* 0D3E38 7F09F308 8E580000 */ lw $t8, ($s2) +/* 0D3E3C 7F09F30C 24110078 */ li $s1, 120 +/* 0D3E40 7F09F310 3C108008 */ lui $s0, %hi(ptr_ejected_casing_buf) +/* 0D3E44 7F09F314 03110019 */ multu $t8, $s1 +/* 0D3E48 7F09F318 2610A14C */ addiu $s0, %lo(ptr_ejected_casing_buf) # addiu $s0, $s0, -0x5eb4 +/* 0D3E4C 7F09F31C 8E0F0000 */ lw $t7, ($s0) +/* 0D3E50 7F09F320 8FA30050 */ lw $v1, 0x50($sp) +/* 0D3E54 7F09F324 C7AC0048 */ lwc1 $f12, 0x48($sp) +/* 0D3E58 7F09F328 C7AE0054 */ lwc1 $f14, 0x54($sp) +/* 0D3E5C 7F09F32C C7B00058 */ lwc1 $f16, 0x58($sp) +/* 0D3E60 7F09F330 240E0001 */ li $t6, 1 +/* 0D3E64 7F09F334 46147282 */ mul.s $f10, $f14, $f20 +/* 0D3E68 7F09F338 0000C812 */ mflo $t9 +/* 0D3E6C 7F09F33C 01F94021 */ addu $t0, $t7, $t9 +/* 0D3E70 7F09F340 AD0E0000 */ sw $t6, ($t0) +/* 0D3E74 7F09F344 8E4A0000 */ lw $t2, ($s2) +/* 0D3E78 7F09F348 C4680000 */ lwc1 $f8, ($v1) +/* 0D3E7C 7F09F34C 8E090000 */ lw $t1, ($s0) +/* 0D3E80 7F09F350 01510019 */ multu $t2, $s1 +/* 0D3E84 7F09F354 460A4480 */ add.s $f18, $f8, $f10 +/* 0D3E88 7F09F358 460C7182 */ mul.s $f6, $f14, $f12 +/* 0D3E8C 7F09F35C 44825000 */ mtc1 $v0, $f10 +/* 0D3E90 7F09F360 00005812 */ mflo $t3 +/* 0D3E94 7F09F364 012B6021 */ addu $t4, $t1, $t3 +/* 0D3E98 7F09F368 E5920004 */ swc1 $f18, 4($t4) +/* 0D3E9C 7F09F36C 8E580000 */ lw $t8, ($s2) +/* 0D3EA0 7F09F370 C4640004 */ lwc1 $f4, 4($v1) +/* 0D3EA4 7F09F374 8E0D0000 */ lw $t5, ($s0) +/* 0D3EA8 7F09F378 03110019 */ multu $t8, $s1 +/* 0D3EAC 7F09F37C 46062200 */ add.s $f8, $f4, $f6 +/* 0D3EB0 7F09F380 468054A0 */ cvt.s.w $f18, $f10 +/* 0D3EB4 7F09F384 00007812 */ mflo $t7 +/* 0D3EB8 7F09F388 01AFC821 */ addu $t9, $t5, $t7 +/* 0D3EBC 7F09F38C 04410005 */ bgez $v0, .L7F09F3A4 +/* 0D3EC0 7F09F390 E7280008 */ swc1 $f8, 8($t9) +/* 0D3EC4 7F09F394 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D3EC8 7F09F398 44812000 */ mtc1 $at, $f4 +/* 0D3ECC 7F09F39C 00000000 */ nop +/* 0D3ED0 7F09F3A0 46049480 */ add.s $f18, $f18, $f4 +.L7F09F3A4: +/* 0D3ED4 7F09F3A4 46169002 */ mul.s $f0, $f18, $f22 +/* 0D3ED8 7F09F3A8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D3EDC 7F09F3AC 44814000 */ mtc1 $at, $f8 +/* 0D3EE0 7F09F3B0 8E480000 */ lw $t0, ($s2) +/* 0D3EE4 7F09F3B4 C46A0008 */ lwc1 $f10, 8($v1) +/* 0D3EE8 7F09F3B8 8E0E0000 */ lw $t6, ($s0) +/* 0D3EEC 7F09F3BC 01110019 */ multu $t0, $s1 +/* 0D3EF0 7F09F3C0 46000180 */ add.s $f6, $f0, $f0 +/* 0D3EF4 7F09F3C4 46083081 */ sub.s $f2, $f6, $f8 +/* 0D3EF8 7F09F3C8 46027102 */ mul.s $f4, $f14, $f2 +/* 0D3EFC 7F09F3CC 00005012 */ mflo $t2 +/* 0D3F00 7F09F3D0 01CA4821 */ addu $t1, $t6, $t2 +/* 0D3F04 7F09F3D4 4610A182 */ mul.s $f6, $f20, $f16 +/* 0D3F08 7F09F3D8 46045480 */ add.s $f18, $f10, $f4 +/* 0D3F0C 7F09F3DC E532000C */ swc1 $f18, 0xc($t1) +/* 0D3F10 7F09F3E0 8E4C0000 */ lw $t4, ($s2) +/* 0D3F14 7F09F3E4 8E0B0000 */ lw $t3, ($s0) +/* 0D3F18 7F09F3E8 01910019 */ multu $t4, $s1 +/* 0D3F1C 7F09F3EC 0000C012 */ mflo $t8 +/* 0D3F20 7F09F3F0 01786821 */ addu $t5, $t3, $t8 +/* 0D3F24 7F09F3F4 E5A6001C */ swc1 $f6, 0x1c($t5) +/* 0D3F28 7F09F3F8 8E590000 */ lw $t9, ($s2) +/* 0D3F2C 7F09F3FC C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 0D3F30 7F09F400 8E0F0000 */ lw $t7, ($s0) +/* 0D3F34 7F09F404 03310019 */ multu $t9, $s1 +/* 0D3F38 7F09F408 46086282 */ mul.s $f10, $f12, $f8 +/* 0D3F3C 7F09F40C 00000000 */ nop +/* 0D3F40 7F09F410 46101102 */ mul.s $f4, $f2, $f16 +/* 0D3F44 7F09F414 00004012 */ mflo $t0 +/* 0D3F48 7F09F418 01E87021 */ addu $t6, $t7, $t0 +/* 0D3F4C 7F09F41C E5CA0020 */ swc1 $f10, 0x20($t6) +/* 0D3F50 7F09F420 8E490000 */ lw $t1, ($s2) +/* 0D3F54 7F09F424 8E0A0000 */ lw $t2, ($s0) +/* 0D3F58 7F09F428 01310019 */ multu $t1, $s1 +/* 0D3F5C 7F09F42C 00006012 */ mflo $t4 +/* 0D3F60 7F09F430 014C5821 */ addu $t3, $t2, $t4 +/* 0D3F64 7F09F434 0C002914 */ jal get_random_value +/* 0D3F68 7F09F438 E5640024 */ swc1 $f4, 0x24($t3) +/* 0D3F6C 7F09F43C 44829000 */ mtc1 $v0, $f18 +/* 0D3F70 7F09F440 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0D3F74 7F09F444 4481A000 */ mtc1 $at, $f20 +/* 0D3F78 7F09F448 04410005 */ bgez $v0, .L7F09F460 +/* 0D3F7C 7F09F44C 468091A0 */ cvt.s.w $f6, $f18 +/* 0D3F80 7F09F450 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D3F84 7F09F454 44814000 */ mtc1 $at, $f8 +/* 0D3F88 7F09F458 00000000 */ nop +/* 0D3F8C 7F09F45C 46083180 */ add.s $f6, $f6, $f8 +.L7F09F460: +/* 0D3F90 7F09F460 46163282 */ mul.s $f10, $f6, $f22 +/* 0D3F94 7F09F464 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 0D3F98 7F09F468 8E4F0000 */ lw $t7, ($s2) +/* 0D3F9C 7F09F46C 8E190000 */ lw $t9, ($s0) +/* 0D3FA0 7F09F470 01F10019 */ multu $t7, $s1 +/* 0D3FA4 7F09F474 46145102 */ mul.s $f4, $f10, $f20 +/* 0D3FA8 7F09F478 46142480 */ add.s $f18, $f4, $f20 +/* 0D3FAC 7F09F47C 00004012 */ mflo $t0 +/* 0D3FB0 7F09F480 03287021 */ addu $t6, $t9, $t0 +/* 0D3FB4 7F09F484 46089182 */ mul.s $f6, $f18, $f8 +/* 0D3FB8 7F09F488 4600328D */ trunc.w.s $f10, $f6 +/* 0D3FBC 7F09F48C 440D5000 */ mfc1 $t5, $f10 +/* 0D3FC0 7F09F490 00000000 */ nop +/* 0D3FC4 7F09F494 A5CD0038 */ sh $t5, 0x38($t6) +/* 0D3FC8 7F09F498 8E4A0000 */ lw $t2, ($s2) +/* 0D3FCC 7F09F49C 8E090000 */ lw $t1, ($s0) +/* 0D3FD0 7F09F4A0 01510019 */ multu $t2, $s1 +/* 0D3FD4 7F09F4A4 00006012 */ mflo $t4 +/* 0D3FD8 7F09F4A8 012C5821 */ addu $t3, $t1, $t4 +/* 0D3FDC 7F09F4AC 0C002914 */ jal get_random_value +/* 0D3FE0 7F09F4B0 A560003A */ sh $zero, 0x3a($t3) +/* 0D3FE4 7F09F4B4 44822000 */ mtc1 $v0, $f4 +/* 0D3FE8 7F09F4B8 04410005 */ bgez $v0, .L7F09F4D0 +/* 0D3FEC 7F09F4BC 468024A0 */ cvt.s.w $f18, $f4 +/* 0D3FF0 7F09F4C0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D3FF4 7F09F4C4 44814000 */ mtc1 $at, $f8 +/* 0D3FF8 7F09F4C8 00000000 */ nop +/* 0D3FFC 7F09F4CC 46089480 */ add.s $f18, $f18, $f8 +.L7F09F4D0: +/* 0D4000 7F09F4D0 46169182 */ mul.s $f6, $f18, $f22 +/* 0D4004 7F09F4D4 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 0D4008 7F09F4D8 8E480000 */ lw $t0, ($s2) +/* 0D400C 7F09F4DC 8E190000 */ lw $t9, ($s0) +/* 0D4010 7F09F4E0 01110019 */ multu $t0, $s1 +/* 0D4014 7F09F4E4 46143282 */ mul.s $f10, $f6, $f20 +/* 0D4018 7F09F4E8 46145100 */ add.s $f4, $f10, $f20 +/* 0D401C 7F09F4EC 00006812 */ mflo $t5 +/* 0D4020 7F09F4F0 032D7021 */ addu $t6, $t9, $t5 +/* 0D4024 7F09F4F4 46082482 */ mul.s $f18, $f4, $f8 +/* 0D4028 7F09F4F8 4600918D */ trunc.w.s $f6, $f18 +/* 0D402C 7F09F4FC 440F3000 */ mfc1 $t7, $f6 +/* 0D4030 7F09F500 0C002914 */ jal get_random_value +/* 0D4034 7F09F504 A5CF003C */ sh $t7, 0x3c($t6) +/* 0D4038 7F09F508 44825000 */ mtc1 $v0, $f10 +/* 0D403C 7F09F50C 04410005 */ bgez $v0, .L7F09F524 +/* 0D4040 7F09F510 46805120 */ cvt.s.w $f4, $f10 +/* 0D4044 7F09F514 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D4048 7F09F518 44814000 */ mtc1 $at, $f8 +/* 0D404C 7F09F51C 00000000 */ nop +/* 0D4050 7F09F520 46082100 */ add.s $f4, $f4, $f8 +.L7F09F524: +/* 0D4054 7F09F524 46162482 */ mul.s $f18, $f4, $f22 +/* 0D4058 7F09F528 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 0D405C 7F09F52C 8E4B0000 */ lw $t3, ($s2) +/* 0D4060 7F09F530 8E0C0000 */ lw $t4, ($s0) +/* 0D4064 7F09F534 01710019 */ multu $t3, $s1 +/* 0D4068 7F09F538 46149182 */ mul.s $f6, $f18, $f20 +/* 0D406C 7F09F53C 46143280 */ add.s $f10, $f6, $f20 +/* 0D4070 7F09F540 0000C012 */ mflo $t8 +/* 0D4074 7F09F544 01984021 */ addu $t0, $t4, $t8 +/* 0D4078 7F09F548 46085102 */ mul.s $f4, $f10, $f8 +/* 0D407C 7F09F54C 4600248D */ trunc.w.s $f18, $f4 +/* 0D4080 7F09F550 44099000 */ mfc1 $t1, $f18 +/* 0D4084 7F09F554 00000000 */ nop +/* 0D4088 7F09F558 A5090048 */ sh $t1, 0x48($t0) +/* 0D408C 7F09F55C 8E4D0000 */ lw $t5, ($s2) +/* 0D4090 7F09F560 8E190000 */ lw $t9, ($s0) +/* 0D4094 7F09F564 01B10019 */ multu $t5, $s1 +/* 0D4098 7F09F568 00007812 */ mflo $t7 +/* 0D409C 7F09F56C 032F7021 */ addu $t6, $t9, $t7 +/* 0D40A0 7F09F570 0C002914 */ jal get_random_value +/* 0D40A4 7F09F574 A5C0004A */ sh $zero, 0x4a($t6) +/* 0D40A8 7F09F578 C7A00060 */ lwc1 $f0, 0x60($sp) +/* 0D40AC 7F09F57C 44823000 */ mtc1 $v0, $f6 +/* 0D40B0 7F09F580 46000007 */ neg.s $f0, $f0 +/* 0D40B4 7F09F584 04410005 */ bgez $v0, .L7F09F59C +/* 0D40B8 7F09F588 468032A0 */ cvt.s.w $f10, $f6 +/* 0D40BC 7F09F58C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D40C0 7F09F590 44814000 */ mtc1 $at, $f8 +/* 0D40C4 7F09F594 00000000 */ nop +/* 0D40C8 7F09F598 46085280 */ add.s $f10, $f10, $f8 +.L7F09F59C: +/* 0D40CC 7F09F59C 46165102 */ mul.s $f4, $f10, $f22 +/* 0D40D0 7F09F5A0 8E580000 */ lw $t8, ($s2) +/* 0D40D4 7F09F5A4 8E0C0000 */ lw $t4, ($s0) +/* 0D40D8 7F09F5A8 03110019 */ multu $t8, $s1 +/* 0D40DC 7F09F5AC 46142482 */ mul.s $f18, $f4, $f20 +/* 0D40E0 7F09F5B0 46149180 */ add.s $f6, $f18, $f20 +/* 0D40E4 7F09F5B4 00004812 */ mflo $t1 +/* 0D40E8 7F09F5B8 01894021 */ addu $t0, $t4, $t1 +/* 0D40EC 7F09F5BC 46003202 */ mul.s $f8, $f6, $f0 +/* 0D40F0 7F09F5C0 4600428D */ trunc.w.s $f10, $f8 +/* 0D40F4 7F09F5C4 440B5000 */ mfc1 $t3, $f10 +/* 0D40F8 7F09F5C8 00000000 */ nop +/* 0D40FC 7F09F5CC A50B004C */ sh $t3, 0x4c($t0) +/* 0D4100 7F09F5D0 0C002914 */ jal get_random_value +/* 0D4104 7F09F5D4 E7A00038 */ swc1 $f0, 0x38($sp) +/* 0D4108 7F09F5D8 44822000 */ mtc1 $v0, $f4 +/* 0D410C 7F09F5DC 04410005 */ bgez $v0, .L7F09F5F4 +/* 0D4110 7F09F5E0 468024A0 */ cvt.s.w $f18, $f4 +/* 0D4114 7F09F5E4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D4118 7F09F5E8 44813000 */ mtc1 $at, $f6 +/* 0D411C 7F09F5EC 00000000 */ nop +/* 0D4120 7F09F5F0 46069480 */ add.s $f18, $f18, $f6 +.L7F09F5F4: +/* 0D4124 7F09F5F4 46169202 */ mul.s $f8, $f18, $f22 +/* 0D4128 7F09F5F8 C7A60038 */ lwc1 $f6, 0x38($sp) +/* 0D412C 7F09F5FC 8E4E0000 */ lw $t6, ($s2) +/* 0D4130 7F09F600 8E0F0000 */ lw $t7, ($s0) +/* 0D4134 7F09F604 01D10019 */ multu $t6, $s1 +/* 0D4138 7F09F608 46144282 */ mul.s $f10, $f8, $f20 +/* 0D413C 7F09F60C 46145100 */ add.s $f4, $f10, $f20 +/* 0D4140 7F09F610 00005012 */ mflo $t2 +/* 0D4144 7F09F614 01EAC021 */ addu $t8, $t7, $t2 +/* 0D4148 7F09F618 46062482 */ mul.s $f18, $f4, $f6 +/* 0D414C 7F09F61C 4600920D */ trunc.w.s $f8, $f18 +/* 0D4150 7F09F620 44194000 */ mfc1 $t9, $f8 +/* 0D4154 7F09F624 00000000 */ nop +/* 0D4158 7F09F628 A7190058 */ sh $t9, 0x58($t8) +/* 0D415C 7F09F62C 8E490000 */ lw $t1, ($s2) +/* 0D4160 7F09F630 8E0C0000 */ lw $t4, ($s0) +/* 0D4164 7F09F634 01310019 */ multu $t1, $s1 +/* 0D4168 7F09F638 00005812 */ mflo $t3 +/* 0D416C 7F09F63C 018B4021 */ addu $t0, $t4, $t3 +/* 0D4170 7F09F640 0C002914 */ jal get_random_value +/* 0D4174 7F09F644 A500005A */ sh $zero, 0x5a($t0) +/* 0D4178 7F09F648 44825000 */ mtc1 $v0, $f10 +/* 0D417C 7F09F64C 04410005 */ bgez $v0, .L7F09F664 +/* 0D4180 7F09F650 46805120 */ cvt.s.w $f4, $f10 +/* 0D4184 7F09F654 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D4188 7F09F658 44813000 */ mtc1 $at, $f6 +/* 0D418C 7F09F65C 00000000 */ nop +/* 0D4190 7F09F660 46062100 */ add.s $f4, $f4, $f6 +.L7F09F664: +/* 0D4194 7F09F664 46162482 */ mul.s $f18, $f4, $f22 +/* 0D4198 7F09F668 C7A60038 */ lwc1 $f6, 0x38($sp) +/* 0D419C 7F09F66C 8E4A0000 */ lw $t2, ($s2) +/* 0D41A0 7F09F670 8E0F0000 */ lw $t7, ($s0) +/* 0D41A4 7F09F674 01510019 */ multu $t2, $s1 +/* 0D41A8 7F09F678 46149202 */ mul.s $f8, $f18, $f20 +/* 0D41AC 7F09F67C 46144280 */ add.s $f10, $f8, $f20 +/* 0D41B0 7F09F680 0000C812 */ mflo $t9 +/* 0D41B4 7F09F684 01F9C021 */ addu $t8, $t7, $t9 +/* 0D41B8 7F09F688 46065102 */ mul.s $f4, $f10, $f6 +/* 0D41BC 7F09F68C 4600248D */ trunc.w.s $f18, $f4 +/* 0D41C0 7F09F690 440E9000 */ mfc1 $t6, $f18 +/* 0D41C4 7F09F694 0C002914 */ jal get_random_value +/* 0D41C8 7F09F698 A70E005C */ sh $t6, 0x5c($t8) +/* 0D41CC 7F09F69C 44824000 */ mtc1 $v0, $f8 +/* 0D41D0 7F09F6A0 04410005 */ bgez $v0, .L7F09F6B8 +/* 0D41D4 7F09F6A4 468042A0 */ cvt.s.w $f10, $f8 +/* 0D41D8 7F09F6A8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D41DC 7F09F6AC 44813000 */ mtc1 $at, $f6 +/* 0D41E0 7F09F6B0 00000000 */ nop +/* 0D41E4 7F09F6B4 46065280 */ add.s $f10, $f10, $f6 +.L7F09F6B8: +/* 0D41E8 7F09F6B8 46165102 */ mul.s $f4, $f10, $f22 +/* 0D41EC 7F09F6BC C7A60038 */ lwc1 $f6, 0x38($sp) +/* 0D41F0 7F09F6C0 8E480000 */ lw $t0, ($s2) +/* 0D41F4 7F09F6C4 8E0B0000 */ lw $t3, ($s0) +/* 0D41F8 7F09F6C8 01110019 */ multu $t0, $s1 +/* 0D41FC 7F09F6CC 46142482 */ mul.s $f18, $f4, $f20 +/* 0D4200 7F09F6D0 46149200 */ add.s $f8, $f18, $f20 +/* 0D4204 7F09F6D4 00006812 */ mflo $t5 +/* 0D4208 7F09F6D8 016D5021 */ addu $t2, $t3, $t5 +/* 0D420C 7F09F6DC 46064282 */ mul.s $f10, $f8, $f6 +/* 0D4210 7F09F6E0 4600510D */ trunc.w.s $f4, $f10 +/* 0D4214 7F09F6E4 440C2000 */ mfc1 $t4, $f4 +/* 0D4218 7F09F6E8 00000000 */ nop +/* 0D421C 7F09F6EC A54C0068 */ sh $t4, 0x68($t2) +/* 0D4220 7F09F6F0 8E590000 */ lw $t9, ($s2) +/* 0D4224 7F09F6F4 8E0F0000 */ lw $t7, ($s0) +/* 0D4228 7F09F6F8 03310019 */ multu $t9, $s1 +/* 0D422C 7F09F6FC 00007012 */ mflo $t6 +/* 0D4230 7F09F700 01EEC021 */ addu $t8, $t7, $t6 +/* 0D4234 7F09F704 0C002914 */ jal get_random_value +/* 0D4238 7F09F708 A700006A */ sh $zero, 0x6a($t8) +/* 0D423C 7F09F70C 44829000 */ mtc1 $v0, $f18 +/* 0D4240 7F09F710 04410005 */ bgez $v0, .L7F09F728 +/* 0D4244 7F09F714 46809220 */ cvt.s.w $f8, $f18 +/* 0D4248 7F09F718 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D424C 7F09F71C 44813000 */ mtc1 $at, $f6 +/* 0D4250 7F09F720 00000000 */ nop +/* 0D4254 7F09F724 46064200 */ add.s $f8, $f8, $f6 +.L7F09F728: +/* 0D4258 7F09F728 46164282 */ mul.s $f10, $f8, $f22 +/* 0D425C 7F09F72C C7A60060 */ lwc1 $f6, 0x60($sp) +/* 0D4260 7F09F730 8E4D0000 */ lw $t5, ($s2) +/* 0D4264 7F09F734 8E0B0000 */ lw $t3, ($s0) +/* 0D4268 7F09F738 01B10019 */ multu $t5, $s1 +/* 0D426C 7F09F73C 46145102 */ mul.s $f4, $f10, $f20 +/* 0D4270 7F09F740 46142480 */ add.s $f18, $f4, $f20 +/* 0D4274 7F09F744 00006012 */ mflo $t4 +/* 0D4278 7F09F748 016C5021 */ addu $t2, $t3, $t4 +/* 0D427C 7F09F74C 46069202 */ mul.s $f8, $f18, $f6 +/* 0D4280 7F09F750 4600428D */ trunc.w.s $f10, $f8 +/* 0D4284 7F09F754 44085000 */ mfc1 $t0, $f10 +/* 0D4288 7F09F758 0C002914 */ jal get_random_value +/* 0D428C 7F09F75C A548006C */ sh $t0, 0x6c($t2) +/* 0D4290 7F09F760 30460003 */ andi $a2, $v0, 3 +/* 0D4294 7F09F764 00067200 */ sll $t6, $a2, 8 +/* 0D4298 7F09F768 0C002914 */ jal get_random_value +/* 0D429C 7F09F76C A7AE0042 */ sh $t6, 0x42($sp) +/* 0D42A0 7F09F770 8E490000 */ lw $t1, ($s2) +/* 0D42A4 7F09F774 87A60042 */ lh $a2, 0x42($sp) +/* 0D42A8 7F09F778 8E180000 */ lw $t8, ($s0) +/* 0D42AC 7F09F77C 01310019 */ multu $t1, $s1 +/* 0D42B0 7F09F780 24C400E0 */ addiu $a0, $a2, 0xe0 +/* 0D42B4 7F09F784 30430003 */ andi $v1, $v0, 3 +/* 0D42B8 7F09F788 00034200 */ sll $t0, $v1, 8 +/* 0D42BC 7F09F78C 250500E0 */ addiu $a1, $t0, 0xe0 +/* 0D42C0 7F09F790 01001825 */ move $v1, $t0 +/* 0D42C4 7F09F794 00006812 */ mflo $t5 +/* 0D42C8 7F09F798 030D5821 */ addu $t3, $t8, $t5 +/* 0D42CC 7F09F79C A5640040 */ sh $a0, 0x40($t3) +/* 0D42D0 7F09F7A0 8E590000 */ lw $t9, ($s2) +/* 0D42D4 7F09F7A4 8E0A0000 */ lw $t2, ($s0) +/* 0D42D8 7F09F7A8 03310019 */ multu $t9, $s1 +/* 0D42DC 7F09F7AC 00007812 */ mflo $t7 +/* 0D42E0 7F09F7B0 014F7021 */ addu $t6, $t2, $t7 +/* 0D42E4 7F09F7B4 A5C50042 */ sh $a1, 0x42($t6) +/* 0D42E8 7F09F7B8 8E580000 */ lw $t8, ($s2) +/* 0D42EC 7F09F7BC 8E090000 */ lw $t1, ($s0) +/* 0D42F0 7F09F7C0 03110019 */ multu $t8, $s1 +/* 0D42F4 7F09F7C4 00006812 */ mflo $t5 +/* 0D42F8 7F09F7C8 012D5821 */ addu $t3, $t1, $t5 +/* 0D42FC 7F09F7CC A5640050 */ sh $a0, 0x50($t3) +/* 0D4300 7F09F7D0 8E480000 */ lw $t0, ($s2) +/* 0D4304 7F09F7D4 8E0C0000 */ lw $t4, ($s0) +/* 0D4308 7F09F7D8 01110019 */ multu $t0, $s1 +/* 0D430C 7F09F7DC 0000C812 */ mflo $t9 +/* 0D4310 7F09F7E0 01995021 */ addu $t2, $t4, $t9 +/* 0D4314 7F09F7E4 A5430052 */ sh $v1, 0x52($t2) +/* 0D4318 7F09F7E8 8E4E0000 */ lw $t6, ($s2) +/* 0D431C 7F09F7EC 8E0F0000 */ lw $t7, ($s0) +/* 0D4320 7F09F7F0 01D10019 */ multu $t6, $s1 +/* 0D4324 7F09F7F4 0000C012 */ mflo $t8 +/* 0D4328 7F09F7F8 01F84821 */ addu $t1, $t7, $t8 +/* 0D432C 7F09F7FC A5260060 */ sh $a2, 0x60($t1) +/* 0D4330 7F09F800 8E4B0000 */ lw $t3, ($s2) +/* 0D4334 7F09F804 8E0D0000 */ lw $t5, ($s0) +/* 0D4338 7F09F808 01710019 */ multu $t3, $s1 +/* 0D433C 7F09F80C 00004012 */ mflo $t0 +/* 0D4340 7F09F810 01A86021 */ addu $t4, $t5, $t0 +/* 0D4344 7F09F814 A5830062 */ sh $v1, 0x62($t4) +/* 0D4348 7F09F818 8E4A0000 */ lw $t2, ($s2) +/* 0D434C 7F09F81C 8E190000 */ lw $t9, ($s0) +/* 0D4350 7F09F820 01510019 */ multu $t2, $s1 +/* 0D4354 7F09F824 00007012 */ mflo $t6 +/* 0D4358 7F09F828 032E7821 */ addu $t7, $t9, $t6 +/* 0D435C 7F09F82C A5E60070 */ sh $a2, 0x70($t7) +/* 0D4360 7F09F830 8E490000 */ lw $t1, ($s2) +/* 0D4364 7F09F834 8E180000 */ lw $t8, ($s0) +/* 0D4368 7F09F838 01310019 */ multu $t1, $s1 +/* 0D436C 7F09F83C 00005812 */ mflo $t3 +/* 0D4370 7F09F840 030B6821 */ addu $t5, $t8, $t3 +/* 0D4374 7F09F844 0C002914 */ jal get_random_value +/* 0D4378 7F09F848 A5A50072 */ sh $a1, 0x72($t5) +/* 0D437C 7F09F84C 30480001 */ andi $t0, $v0, 1 +/* 0D4380 7F09F850 1100005B */ beqz $t0, .L7F09F9C0 +/* 0D4384 7F09F854 00000000 */ nop +/* 0D4388 7F09F858 0C002914 */ jal get_random_value +/* 0D438C 7F09F85C 00000000 */ nop +/* 0D4390 7F09F860 8E4E0000 */ lw $t6, ($s2) +/* 0D4394 7F09F864 8E190000 */ lw $t9, ($s0) +/* 0D4398 7F09F868 304C003F */ andi $t4, $v0, 0x3f +/* 0D439C 7F09F86C 01D10019 */ multu $t6, $s1 +/* 0D43A0 7F09F870 240A00FF */ li $t2, 255 +/* 0D43A4 7F09F874 014C1823 */ subu $v1, $t2, $t4 +/* 0D43A8 7F09F878 00007812 */ mflo $t7 +/* 0D43AC 7F09F87C 032F4821 */ addu $t1, $t9, $t7 +/* 0D43B0 7F09F880 A1230046 */ sb $v1, 0x46($t1) +/* 0D43B4 7F09F884 8E4B0000 */ lw $t3, ($s2) +/* 0D43B8 7F09F888 8E180000 */ lw $t8, ($s0) +/* 0D43BC 7F09F88C 01710019 */ multu $t3, $s1 +/* 0D43C0 7F09F890 00006812 */ mflo $t5 +/* 0D43C4 7F09F894 030D4021 */ addu $t0, $t8, $t5 +/* 0D43C8 7F09F898 A1030045 */ sb $v1, 0x45($t0) +/* 0D43CC 7F09F89C 8E4C0000 */ lw $t4, ($s2) +/* 0D43D0 7F09F8A0 8E0A0000 */ lw $t2, ($s0) +/* 0D43D4 7F09F8A4 01910019 */ multu $t4, $s1 +/* 0D43D8 7F09F8A8 00007012 */ mflo $t6 +/* 0D43DC 7F09F8AC 014EC821 */ addu $t9, $t2, $t6 +/* 0D43E0 7F09F8B0 0C002914 */ jal get_random_value +/* 0D43E4 7F09F8B4 A3230044 */ sb $v1, 0x44($t9) +/* 0D43E8 7F09F8B8 8E580000 */ lw $t8, ($s2) +/* 0D43EC 7F09F8BC 8E0B0000 */ lw $t3, ($s0) +/* 0D43F0 7F09F8C0 304F003F */ andi $t7, $v0, 0x3f +/* 0D43F4 7F09F8C4 03110019 */ multu $t8, $s1 +/* 0D43F8 7F09F8C8 240900FF */ li $t1, 255 +/* 0D43FC 7F09F8CC 012F1823 */ subu $v1, $t1, $t7 +/* 0D4400 7F09F8D0 00006812 */ mflo $t5 +/* 0D4404 7F09F8D4 016D4021 */ addu $t0, $t3, $t5 +/* 0D4408 7F09F8D8 A1030056 */ sb $v1, 0x56($t0) +/* 0D440C 7F09F8DC 8E4A0000 */ lw $t2, ($s2) +/* 0D4410 7F09F8E0 8E0C0000 */ lw $t4, ($s0) +/* 0D4414 7F09F8E4 01510019 */ multu $t2, $s1 +/* 0D4418 7F09F8E8 00007012 */ mflo $t6 +/* 0D441C 7F09F8EC 018EC821 */ addu $t9, $t4, $t6 +/* 0D4420 7F09F8F0 A3230055 */ sb $v1, 0x55($t9) +/* 0D4424 7F09F8F4 8E4F0000 */ lw $t7, ($s2) +/* 0D4428 7F09F8F8 8E090000 */ lw $t1, ($s0) +/* 0D442C 7F09F8FC 01F10019 */ multu $t7, $s1 +/* 0D4430 7F09F900 0000C012 */ mflo $t8 +/* 0D4434 7F09F904 01385821 */ addu $t3, $t1, $t8 +/* 0D4438 7F09F908 0C002914 */ jal get_random_value +/* 0D443C 7F09F90C A1630054 */ sb $v1, 0x54($t3) +/* 0D4440 7F09F910 8E4C0000 */ lw $t4, ($s2) +/* 0D4444 7F09F914 8E0A0000 */ lw $t2, ($s0) +/* 0D4448 7F09F918 304D003F */ andi $t5, $v0, 0x3f +/* 0D444C 7F09F91C 01910019 */ multu $t4, $s1 +/* 0D4450 7F09F920 240800FF */ li $t0, 255 +/* 0D4454 7F09F924 010D1823 */ subu $v1, $t0, $t5 +/* 0D4458 7F09F928 00007012 */ mflo $t6 +/* 0D445C 7F09F92C 014EC821 */ addu $t9, $t2, $t6 +/* 0D4460 7F09F930 A3230066 */ sb $v1, 0x66($t9) +/* 0D4464 7F09F934 8E490000 */ lw $t1, ($s2) +/* 0D4468 7F09F938 8E0F0000 */ lw $t7, ($s0) +/* 0D446C 7F09F93C 01310019 */ multu $t1, $s1 +/* 0D4470 7F09F940 0000C012 */ mflo $t8 +/* 0D4474 7F09F944 01F85821 */ addu $t3, $t7, $t8 +/* 0D4478 7F09F948 A1630065 */ sb $v1, 0x65($t3) +/* 0D447C 7F09F94C 8E4D0000 */ lw $t5, ($s2) +/* 0D4480 7F09F950 8E080000 */ lw $t0, ($s0) +/* 0D4484 7F09F954 01B10019 */ multu $t5, $s1 +/* 0D4488 7F09F958 00006012 */ mflo $t4 +/* 0D448C 7F09F95C 010C5021 */ addu $t2, $t0, $t4 +/* 0D4490 7F09F960 0C002914 */ jal get_random_value +/* 0D4494 7F09F964 A1430064 */ sb $v1, 0x64($t2) +/* 0D4498 7F09F968 8E4F0000 */ lw $t7, ($s2) +/* 0D449C 7F09F96C 8E090000 */ lw $t1, ($s0) +/* 0D44A0 7F09F970 304E003F */ andi $t6, $v0, 0x3f +/* 0D44A4 7F09F974 01F10019 */ multu $t7, $s1 +/* 0D44A8 7F09F978 241900FF */ li $t9, 255 +/* 0D44AC 7F09F97C 032E1823 */ subu $v1, $t9, $t6 +/* 0D44B0 7F09F980 0000C012 */ mflo $t8 +/* 0D44B4 7F09F984 01385821 */ addu $t3, $t1, $t8 +/* 0D44B8 7F09F988 A1630076 */ sb $v1, 0x76($t3) +/* 0D44BC 7F09F98C 8E480000 */ lw $t0, ($s2) +/* 0D44C0 7F09F990 8E0D0000 */ lw $t5, ($s0) +/* 0D44C4 7F09F994 01110019 */ multu $t0, $s1 +/* 0D44C8 7F09F998 00006012 */ mflo $t4 +/* 0D44CC 7F09F99C 01AC5021 */ addu $t2, $t5, $t4 +/* 0D44D0 7F09F9A0 A1430075 */ sb $v1, 0x75($t2) +/* 0D44D4 7F09F9A4 8E4E0000 */ lw $t6, ($s2) +/* 0D44D8 7F09F9A8 8E190000 */ lw $t9, ($s0) +/* 0D44DC 7F09F9AC 01D10019 */ multu $t6, $s1 +/* 0D44E0 7F09F9B0 00007812 */ mflo $t7 +/* 0D44E4 7F09F9B4 032F4821 */ addu $t1, $t9, $t7 +/* 0D44E8 7F09F9B8 10000052 */ b .L7F09FB04 +/* 0D44EC 7F09F9BC A1230074 */ sb $v1, 0x74($t1) +.L7F09F9C0: +/* 0D44F0 7F09F9C0 0C002914 */ jal get_random_value +/* 0D44F4 7F09F9C4 00000000 */ nop +/* 0D44F8 7F09F9C8 8E4B0000 */ lw $t3, ($s2) +/* 0D44FC 7F09F9CC 8E180000 */ lw $t8, ($s0) +/* 0D4500 7F09F9D0 3043003F */ andi $v1, $v0, 0x3f +/* 0D4504 7F09F9D4 01710019 */ multu $t3, $s1 +/* 0D4508 7F09F9D8 00004012 */ mflo $t0 +/* 0D450C 7F09F9DC 03086821 */ addu $t5, $t8, $t0 +/* 0D4510 7F09F9E0 A1A30046 */ sb $v1, 0x46($t5) +/* 0D4514 7F09F9E4 8E4A0000 */ lw $t2, ($s2) +/* 0D4518 7F09F9E8 8E0C0000 */ lw $t4, ($s0) +/* 0D451C 7F09F9EC 01510019 */ multu $t2, $s1 +/* 0D4520 7F09F9F0 00007012 */ mflo $t6 +/* 0D4524 7F09F9F4 018EC821 */ addu $t9, $t4, $t6 +/* 0D4528 7F09F9F8 A3230045 */ sb $v1, 0x45($t9) +/* 0D452C 7F09F9FC 8E490000 */ lw $t1, ($s2) +/* 0D4530 7F09FA00 8E0F0000 */ lw $t7, ($s0) +/* 0D4534 7F09FA04 01310019 */ multu $t1, $s1 +/* 0D4538 7F09FA08 00005812 */ mflo $t3 +/* 0D453C 7F09FA0C 01EBC021 */ addu $t8, $t7, $t3 +/* 0D4540 7F09FA10 0C002914 */ jal get_random_value +/* 0D4544 7F09FA14 A3030044 */ sb $v1, 0x44($t8) +/* 0D4548 7F09FA18 8E4D0000 */ lw $t5, ($s2) +/* 0D454C 7F09FA1C 8E080000 */ lw $t0, ($s0) +/* 0D4550 7F09FA20 3043003F */ andi $v1, $v0, 0x3f +/* 0D4554 7F09FA24 01B10019 */ multu $t5, $s1 +/* 0D4558 7F09FA28 00005012 */ mflo $t2 +/* 0D455C 7F09FA2C 010A6021 */ addu $t4, $t0, $t2 +/* 0D4560 7F09FA30 A1830056 */ sb $v1, 0x56($t4) +/* 0D4564 7F09FA34 8E590000 */ lw $t9, ($s2) +/* 0D4568 7F09FA38 8E0E0000 */ lw $t6, ($s0) +/* 0D456C 7F09FA3C 03310019 */ multu $t9, $s1 +/* 0D4570 7F09FA40 00004812 */ mflo $t1 +/* 0D4574 7F09FA44 01C97821 */ addu $t7, $t6, $t1 +/* 0D4578 7F09FA48 A1E30055 */ sb $v1, 0x55($t7) +/* 0D457C 7F09FA4C 8E580000 */ lw $t8, ($s2) +/* 0D4580 7F09FA50 8E0B0000 */ lw $t3, ($s0) +/* 0D4584 7F09FA54 03110019 */ multu $t8, $s1 +/* 0D4588 7F09FA58 00006812 */ mflo $t5 +/* 0D458C 7F09FA5C 016D4021 */ addu $t0, $t3, $t5 +/* 0D4590 7F09FA60 0C002914 */ jal get_random_value +/* 0D4594 7F09FA64 A1030054 */ sb $v1, 0x54($t0) +/* 0D4598 7F09FA68 8E4C0000 */ lw $t4, ($s2) +/* 0D459C 7F09FA6C 8E0A0000 */ lw $t2, ($s0) +/* 0D45A0 7F09FA70 3043003F */ andi $v1, $v0, 0x3f +/* 0D45A4 7F09FA74 01910019 */ multu $t4, $s1 +/* 0D45A8 7F09FA78 0000C812 */ mflo $t9 +/* 0D45AC 7F09FA7C 01597021 */ addu $t6, $t2, $t9 +/* 0D45B0 7F09FA80 A1C30066 */ sb $v1, 0x66($t6) +/* 0D45B4 7F09FA84 8E4F0000 */ lw $t7, ($s2) +/* 0D45B8 7F09FA88 8E090000 */ lw $t1, ($s0) +/* 0D45BC 7F09FA8C 01F10019 */ multu $t7, $s1 +/* 0D45C0 7F09FA90 0000C012 */ mflo $t8 +/* 0D45C4 7F09FA94 01385821 */ addu $t3, $t1, $t8 +/* 0D45C8 7F09FA98 A1630065 */ sb $v1, 0x65($t3) +/* 0D45CC 7F09FA9C 8E480000 */ lw $t0, ($s2) +/* 0D45D0 7F09FAA0 8E0D0000 */ lw $t5, ($s0) +/* 0D45D4 7F09FAA4 01110019 */ multu $t0, $s1 +/* 0D45D8 7F09FAA8 00006012 */ mflo $t4 +/* 0D45DC 7F09FAAC 01AC5021 */ addu $t2, $t5, $t4 +/* 0D45E0 7F09FAB0 0C002914 */ jal get_random_value +/* 0D45E4 7F09FAB4 A1430064 */ sb $v1, 0x64($t2) +/* 0D45E8 7F09FAB8 8E4E0000 */ lw $t6, ($s2) +/* 0D45EC 7F09FABC 8E190000 */ lw $t9, ($s0) +/* 0D45F0 7F09FAC0 3043003F */ andi $v1, $v0, 0x3f +/* 0D45F4 7F09FAC4 01D10019 */ multu $t6, $s1 +/* 0D45F8 7F09FAC8 00007812 */ mflo $t7 +/* 0D45FC 7F09FACC 032F4821 */ addu $t1, $t9, $t7 +/* 0D4600 7F09FAD0 A1230076 */ sb $v1, 0x76($t1) +/* 0D4604 7F09FAD4 8E4B0000 */ lw $t3, ($s2) +/* 0D4608 7F09FAD8 8E180000 */ lw $t8, ($s0) +/* 0D460C 7F09FADC 01710019 */ multu $t3, $s1 +/* 0D4610 7F09FAE0 00004012 */ mflo $t0 +/* 0D4614 7F09FAE4 03086821 */ addu $t5, $t8, $t0 +/* 0D4618 7F09FAE8 A1A30075 */ sb $v1, 0x75($t5) +/* 0D461C 7F09FAEC 8E4A0000 */ lw $t2, ($s2) +/* 0D4620 7F09FAF0 8E0C0000 */ lw $t4, ($s0) +/* 0D4624 7F09FAF4 01510019 */ multu $t2, $s1 +/* 0D4628 7F09FAF8 00007012 */ mflo $t6 +/* 0D462C 7F09FAFC 018EC821 */ addu $t9, $t4, $t6 +/* 0D4630 7F09FB00 A3230074 */ sb $v1, 0x74($t9) +.L7F09FB04: +/* 0D4634 7F09FB04 8E490000 */ lw $t1, ($s2) +/* 0D4638 7F09FB08 8E0F0000 */ lw $t7, ($s0) +/* 0D463C 7F09FB0C 240200DC */ li $v0, 220 +/* 0D4640 7F09FB10 01310019 */ multu $t1, $s1 +/* 0D4644 7F09FB14 00005812 */ mflo $t3 +/* 0D4648 7F09FB18 01EBC021 */ addu $t8, $t7, $t3 +/* 0D464C 7F09FB1C A3020047 */ sb $v0, 0x47($t8) +/* 0D4650 7F09FB20 8E4D0000 */ lw $t5, ($s2) +/* 0D4654 7F09FB24 8E080000 */ lw $t0, ($s0) +/* 0D4658 7F09FB28 01B10019 */ multu $t5, $s1 +/* 0D465C 7F09FB2C 00005012 */ mflo $t2 +/* 0D4660 7F09FB30 010A6021 */ addu $t4, $t0, $t2 +/* 0D4664 7F09FB34 A1820057 */ sb $v0, 0x57($t4) +/* 0D4668 7F09FB38 8E590000 */ lw $t9, ($s2) +/* 0D466C 7F09FB3C 8E0E0000 */ lw $t6, ($s0) +/* 0D4670 7F09FB40 03310019 */ multu $t9, $s1 +/* 0D4674 7F09FB44 00004812 */ mflo $t1 +/* 0D4678 7F09FB48 01C97821 */ addu $t7, $t6, $t1 +/* 0D467C 7F09FB4C A1E20067 */ sb $v0, 0x67($t7) +/* 0D4680 7F09FB50 8E580000 */ lw $t8, ($s2) +/* 0D4684 7F09FB54 8E0B0000 */ lw $t3, ($s0) +/* 0D4688 7F09FB58 03110019 */ multu $t8, $s1 +/* 0D468C 7F09FB5C 00006812 */ mflo $t5 +/* 0D4690 7F09FB60 016D4021 */ addu $t0, $t3, $t5 +/* 0D4694 7F09FB64 0C002914 */ jal get_random_value +/* 0D4698 7F09FB68 A1020077 */ sb $v0, 0x77($t0) +/* 0D469C 7F09FB6C 44822000 */ mtc1 $v0, $f4 +/* 0D46A0 7F09FB70 3C018005 */ lui $at, %hi(D_800576E8) +/* 0D46A4 7F09FB74 C43476E8 */ lwc1 $f20, %lo(D_800576E8)($at) +/* 0D46A8 7F09FB78 04410005 */ bgez $v0, .L7F09FB90 +/* 0D46AC 7F09FB7C 468024A0 */ cvt.s.w $f18, $f4 +/* 0D46B0 7F09FB80 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D46B4 7F09FB84 44813000 */ mtc1 $at, $f6 +/* 0D46B8 7F09FB88 00000000 */ nop +/* 0D46BC 7F09FB8C 46069480 */ add.s $f18, $f18, $f6 +.L7F09FB90: +/* 0D46C0 7F09FB90 8E4C0000 */ lw $t4, ($s2) +/* 0D46C4 7F09FB94 46169202 */ mul.s $f8, $f18, $f22 +/* 0D46C8 7F09FB98 8E0A0000 */ lw $t2, ($s0) +/* 0D46CC 7F09FB9C 01910019 */ multu $t4, $s1 +/* 0D46D0 7F09FBA0 46144282 */ mul.s $f10, $f8, $f20 +/* 0D46D4 7F09FBA4 0000C812 */ mflo $t9 +/* 0D46D8 7F09FBA8 01597021 */ addu $t6, $t2, $t9 +/* 0D46DC 7F09FBAC 0C002914 */ jal get_random_value +/* 0D46E0 7F09FBB0 E5CA0010 */ swc1 $f10, 0x10($t6) +/* 0D46E4 7F09FBB4 44822000 */ mtc1 $v0, $f4 +/* 0D46E8 7F09FBB8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D46EC 7F09FBBC 04410004 */ bgez $v0, .L7F09FBD0 +/* 0D46F0 7F09FBC0 468021A0 */ cvt.s.w $f6, $f4 +/* 0D46F4 7F09FBC4 44819000 */ mtc1 $at, $f18 +/* 0D46F8 7F09FBC8 00000000 */ nop +/* 0D46FC 7F09FBCC 46123180 */ add.s $f6, $f6, $f18 +.L7F09FBD0: +/* 0D4700 7F09FBD0 8E4F0000 */ lw $t7, ($s2) +/* 0D4704 7F09FBD4 46163202 */ mul.s $f8, $f6, $f22 +/* 0D4708 7F09FBD8 8E090000 */ lw $t1, ($s0) +/* 0D470C 7F09FBDC 01F10019 */ multu $t7, $s1 +/* 0D4710 7F09FBE0 46144282 */ mul.s $f10, $f8, $f20 +/* 0D4714 7F09FBE4 0000C012 */ mflo $t8 +/* 0D4718 7F09FBE8 01385821 */ addu $t3, $t1, $t8 +/* 0D471C 7F09FBEC 0C002914 */ jal get_random_value +/* 0D4720 7F09FBF0 E56A0014 */ swc1 $f10, 0x14($t3) +/* 0D4724 7F09FBF4 44822000 */ mtc1 $v0, $f4 +/* 0D4728 7F09FBF8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D472C 7F09FBFC 04410004 */ bgez $v0, .L7F09FC10 +/* 0D4730 7F09FC00 468024A0 */ cvt.s.w $f18, $f4 +/* 0D4734 7F09FC04 44813000 */ mtc1 $at, $f6 +/* 0D4738 7F09FC08 00000000 */ nop +/* 0D473C 7F09FC0C 46069480 */ add.s $f18, $f18, $f6 +.L7F09FC10: +/* 0D4740 7F09FC10 8E480000 */ lw $t0, ($s2) +/* 0D4744 7F09FC14 46169202 */ mul.s $f8, $f18, $f22 +/* 0D4748 7F09FC18 8E0D0000 */ lw $t5, ($s0) +/* 0D474C 7F09FC1C 01110019 */ multu $t0, $s1 +/* 0D4750 7F09FC20 46144282 */ mul.s $f10, $f8, $f20 +/* 0D4754 7F09FC24 00006012 */ mflo $t4 +/* 0D4758 7F09FC28 01AC5021 */ addu $t2, $t5, $t4 +/* 0D475C 7F09FC2C 0C002914 */ jal get_random_value +/* 0D4760 7F09FC30 E54A0018 */ swc1 $f10, 0x18($t2) +/* 0D4764 7F09FC34 44822000 */ mtc1 $v0, $f4 +/* 0D4768 7F09FC38 3C018005 */ lui $at, %hi(D_800576EC) +/* 0D476C 7F09FC3C C43476EC */ lwc1 $f20, %lo(D_800576EC)($at) +/* 0D4770 7F09FC40 04410005 */ bgez $v0, .L7F09FC58 +/* 0D4774 7F09FC44 468021A0 */ cvt.s.w $f6, $f4 +/* 0D4778 7F09FC48 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D477C 7F09FC4C 44819000 */ mtc1 $at, $f18 +/* 0D4780 7F09FC50 00000000 */ nop +/* 0D4784 7F09FC54 46123180 */ add.s $f6, $f6, $f18 +.L7F09FC58: +/* 0D4788 7F09FC58 8E4E0000 */ lw $t6, ($s2) +/* 0D478C 7F09FC5C 46163202 */ mul.s $f8, $f6, $f22 +/* 0D4790 7F09FC60 8E190000 */ lw $t9, ($s0) +/* 0D4794 7F09FC64 01D10019 */ multu $t6, $s1 +/* 0D4798 7F09FC68 46144282 */ mul.s $f10, $f8, $f20 +/* 0D479C 7F09FC6C 00007812 */ mflo $t7 +/* 0D47A0 7F09FC70 032F4821 */ addu $t1, $t9, $t7 +/* 0D47A4 7F09FC74 0C002914 */ jal get_random_value +/* 0D47A8 7F09FC78 E52A0028 */ swc1 $f10, 0x28($t1) +/* 0D47AC 7F09FC7C 44822000 */ mtc1 $v0, $f4 +/* 0D47B0 7F09FC80 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D47B4 7F09FC84 04410004 */ bgez $v0, .L7F09FC98 +/* 0D47B8 7F09FC88 468024A0 */ cvt.s.w $f18, $f4 +/* 0D47BC 7F09FC8C 44813000 */ mtc1 $at, $f6 +/* 0D47C0 7F09FC90 00000000 */ nop +/* 0D47C4 7F09FC94 46069480 */ add.s $f18, $f18, $f6 +.L7F09FC98: +/* 0D47C8 7F09FC98 8E4B0000 */ lw $t3, ($s2) +/* 0D47CC 7F09FC9C 46169202 */ mul.s $f8, $f18, $f22 +/* 0D47D0 7F09FCA0 8E180000 */ lw $t8, ($s0) +/* 0D47D4 7F09FCA4 01710019 */ multu $t3, $s1 +/* 0D47D8 7F09FCA8 46144282 */ mul.s $f10, $f8, $f20 +/* 0D47DC 7F09FCAC 00004012 */ mflo $t0 +/* 0D47E0 7F09FCB0 03086821 */ addu $t5, $t8, $t0 +/* 0D47E4 7F09FCB4 0C002914 */ jal get_random_value +/* 0D47E8 7F09FCB8 E5AA002C */ swc1 $f10, 0x2c($t5) +/* 0D47EC 7F09FCBC 44822000 */ mtc1 $v0, $f4 +/* 0D47F0 7F09FCC0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D47F4 7F09FCC4 04410004 */ bgez $v0, .L7F09FCD8 +/* 0D47F8 7F09FCC8 468021A0 */ cvt.s.w $f6, $f4 +/* 0D47FC 7F09FCCC 44819000 */ mtc1 $at, $f18 +/* 0D4800 7F09FCD0 00000000 */ nop +/* 0D4804 7F09FCD4 46123180 */ add.s $f6, $f6, $f18 +.L7F09FCD8: +/* 0D4808 7F09FCD8 8E4A0000 */ lw $t2, ($s2) +/* 0D480C 7F09FCDC 46163202 */ mul.s $f8, $f6, $f22 +/* 0D4810 7F09FCE0 8E0C0000 */ lw $t4, ($s0) +/* 0D4814 7F09FCE4 01510019 */ multu $t2, $s1 +/* 0D4818 7F09FCE8 3C188008 */ lui $t8, %hi(max_casings) +/* 0D481C 7F09FCEC 46144282 */ mul.s $f10, $f8, $f20 +/* 0D4820 7F09FCF0 00007012 */ mflo $t6 +/* 0D4824 7F09FCF4 018EC821 */ addu $t9, $t4, $t6 +/* 0D4828 7F09FCF8 E72A0030 */ swc1 $f10, 0x30($t9) +/* 0D482C 7F09FCFC 8E4F0000 */ lw $t7, ($s2) +/* 0D4830 7F09FD00 25E90001 */ addiu $t1, $t7, 1 +/* 0D4834 7F09FD04 AE490000 */ sw $t1, ($s2) +/* 0D4838 7F09FD08 8F18A148 */ lw $t8, %lo(max_casings)($t8) +/* 0D483C 7F09FD0C 0138082A */ slt $at, $t1, $t8 +/* 0D4840 7F09FD10 54200003 */ bnezl $at, .L7F09FD20 +/* 0D4844 7F09FD14 8FBF0034 */ lw $ra, 0x34($sp) +/* 0D4848 7F09FD18 AE400000 */ sw $zero, ($s2) +/* 0D484C 7F09FD1C 8FBF0034 */ lw $ra, 0x34($sp) +.L7F09FD20: +/* 0D4850 7F09FD20 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D4854 7F09FD24 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0D4858 7F09FD28 8FB00028 */ lw $s0, 0x28($sp) +/* 0D485C 7F09FD2C 8FB1002C */ lw $s1, 0x2c($sp) +/* 0D4860 7F09FD30 8FB20030 */ lw $s2, 0x30($sp) +/* 0D4864 7F09FD34 03E00008 */ jr $ra +/* 0D4868 7F09FD38 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F09FD3C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800576F0 +.word 0x46ea6000 /*30000.0*/ +glabel D_800576F4 +.word 0xc6ea6000 /*-30000.0*/ +glabel D_800576F8 +.word 0x3e4ccccd /*0.2*/ +.text +glabel sub_GAME_7F09FD3C +/* 0D486C 7F09FD3C 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0D4870 7F09FD40 3C028005 */ lui $v0, %hi(clock_timer) +/* 0D4874 7F09FD44 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0D4878 7F09FD48 AFBF0054 */ sw $ra, 0x54($sp) +/* 0D487C 7F09FD4C AFB40050 */ sw $s4, 0x50($sp) +/* 0D4880 7F09FD50 2841000F */ slti $at, $v0, 0xf +/* 0D4884 7F09FD54 AFB3004C */ sw $s3, 0x4c($sp) +/* 0D4888 7F09FD58 AFB20048 */ sw $s2, 0x48($sp) +/* 0D488C 7F09FD5C AFB10044 */ sw $s1, 0x44($sp) +/* 0D4890 7F09FD60 AFB00040 */ sw $s0, 0x40($sp) +/* 0D4894 7F09FD64 F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 0D4898 7F09FD68 F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0D489C 7F09FD6C F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0D48A0 7F09FD70 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0D48A4 7F09FD74 10200004 */ beqz $at, .L7F09FD88 +/* 0D48A8 7F09FD78 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D48AC 7F09FD7C 44822000 */ mtc1 $v0, $f4 +/* 0D48B0 7F09FD80 10000004 */ b .L7F09FD94 +/* 0D48B4 7F09FD84 46802620 */ cvt.s.w $f24, $f4 +.L7F09FD88: +/* 0D48B8 7F09FD88 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0D48BC 7F09FD8C 4481C000 */ mtc1 $at, $f24 +/* 0D48C0 7F09FD90 00000000 */ nop +.L7F09FD94: +/* 0D48C4 7F09FD94 3C148008 */ lui $s4, %hi(max_casings) +/* 0D48C8 7F09FD98 2694A148 */ addiu $s4, %lo(max_casings) # addiu $s4, $s4, -0x5eb8 +/* 0D48CC 7F09FD9C 8E8E0000 */ lw $t6, ($s4) +/* 0D48D0 7F09FDA0 00009025 */ move $s2, $zero +/* 0D48D4 7F09FDA4 00008025 */ move $s0, $zero +/* 0D48D8 7F09FDA8 19C00095 */ blez $t6, .L7F0A0000 +/* 0D48DC 7F09FDAC 3C018005 */ lui $at, %hi(D_800576F0) +/* 0D48E0 7F09FDB0 C43C76F0 */ lwc1 $f28, %lo(D_800576F0)($at) +/* 0D48E4 7F09FDB4 3C018005 */ lui $at, %hi(D_800576F4) +/* 0D48E8 7F09FDB8 C43A76F4 */ lwc1 $f26, %lo(D_800576F4)($at) +/* 0D48EC 7F09FDBC 3C018005 */ lui $at, %hi(D_800576F8) +/* 0D48F0 7F09FDC0 C43676F8 */ lwc1 $f22, %lo(D_800576F8)($at) +/* 0D48F4 7F09FDC4 3C01C070 */ li $at, 0xC0700000 # -3.750000 +/* 0D48F8 7F09FDC8 3C118008 */ lui $s1, %hi(ptr_ejected_casing_buf) +/* 0D48FC 7F09FDCC 4481A000 */ mtc1 $at, $f20 +/* 0D4900 7F09FDD0 2631A14C */ addiu $s1, %lo(ptr_ejected_casing_buf) # addiu $s1, $s1, -0x5eb4 +/* 0D4904 7F09FDD4 2413012C */ li $s3, 300 +/* 0D4908 7F09FDD8 8E2F0000 */ lw $t7, ($s1) +.L7F09FDDC: +/* 0D490C 7F09FDDC 01F01021 */ addu $v0, $t7, $s0 +/* 0D4910 7F09FDE0 8C450000 */ lw $a1, ($v0) +/* 0D4914 7F09FDE4 58A00081 */ blezl $a1, .L7F09FFEC +/* 0D4918 7F09FDE8 8E990000 */ lw $t9, ($s4) +/* 0D491C 7F09FDEC 4600C18D */ trunc.w.s $f6, $f24 +/* 0D4920 7F09FDF0 00001825 */ move $v1, $zero +/* 0D4924 7F09FDF4 44043000 */ mfc1 $a0, $f6 +/* 0D4928 7F09FDF8 00000000 */ nop +/* 0D492C 7F09FDFC 00A4C821 */ addu $t9, $a1, $a0 +/* 0D4930 7F09FE00 AC590000 */ sw $t9, ($v0) +/* 0D4934 7F09FE04 8E280000 */ lw $t0, ($s1) +/* 0D4938 7F09FE08 01101021 */ addu $v0, $t0, $s0 +/* 0D493C 7F09FE0C C44A0028 */ lwc1 $f10, 0x28($v0) +/* 0D4940 7F09FE10 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0D4944 7F09FE14 46185402 */ mul.s $f16, $f10, $f24 +/* 0D4948 7F09FE18 46104480 */ add.s $f18, $f8, $f16 +/* 0D494C 7F09FE1C E4520010 */ swc1 $f18, 0x10($v0) +/* 0D4950 7F09FE20 8E290000 */ lw $t1, ($s1) +/* 0D4954 7F09FE24 01301021 */ addu $v0, $t1, $s0 +/* 0D4958 7F09FE28 C446002C */ lwc1 $f6, 0x2c($v0) +/* 0D495C 7F09FE2C C4440014 */ lwc1 $f4, 0x14($v0) +/* 0D4960 7F09FE30 46183282 */ mul.s $f10, $f6, $f24 +/* 0D4964 7F09FE34 460A2200 */ add.s $f8, $f4, $f10 +/* 0D4968 7F09FE38 E4480014 */ swc1 $f8, 0x14($v0) +/* 0D496C 7F09FE3C 8E2A0000 */ lw $t2, ($s1) +/* 0D4970 7F09FE40 01501021 */ addu $v0, $t2, $s0 +/* 0D4974 7F09FE44 C4520030 */ lwc1 $f18, 0x30($v0) +/* 0D4978 7F09FE48 C4500018 */ lwc1 $f16, 0x18($v0) +/* 0D497C 7F09FE4C 46189182 */ mul.s $f6, $f18, $f24 +/* 0D4980 7F09FE50 46068100 */ add.s $f4, $f16, $f6 +/* 0D4984 7F09FE54 E4440018 */ swc1 $f4, 0x18($v0) +/* 0D4988 7F09FE58 8E2B0000 */ lw $t3, ($s1) +/* 0D498C 7F09FE5C 01701021 */ addu $v0, $t3, $s0 +/* 0D4990 7F09FE60 C448001C */ lwc1 $f8, 0x1c($v0) +/* 0D4994 7F09FE64 C44A0004 */ lwc1 $f10, 4($v0) +/* 0D4998 7F09FE68 46184482 */ mul.s $f18, $f8, $f24 +/* 0D499C 7F09FE6C 46125400 */ add.s $f16, $f10, $f18 +/* 0D49A0 7F09FE70 E4500004 */ swc1 $f16, 4($v0) +/* 0D49A4 7F09FE74 8E2C0000 */ lw $t4, ($s1) +/* 0D49A8 7F09FE78 01901021 */ addu $v0, $t4, $s0 +/* 0D49AC 7F09FE7C C4440024 */ lwc1 $f4, 0x24($v0) +/* 0D49B0 7F09FE80 C446000C */ lwc1 $f6, 0xc($v0) +/* 0D49B4 7F09FE84 46182202 */ mul.s $f8, $f4, $f24 +/* 0D49B8 7F09FE88 46083280 */ add.s $f10, $f6, $f8 +/* 0D49BC 7F09FE8C 18800037 */ blez $a0, .L7F09FF6C +/* 0D49C0 7F09FE90 E44A000C */ swc1 $f10, 0xc($v0) +/* 0D49C4 7F09FE94 30820001 */ andi $v0, $a0, 1 +/* 0D49C8 7F09FE98 50400014 */ beql $v0, $zero, .L7F09FEEC +/* 0D49CC 7F09FE9C 8E2F0000 */ lw $t7, ($s1) +/* 0D49D0 7F09FEA0 8E2D0000 */ lw $t5, ($s1) +/* 0D49D4 7F09FEA4 24030001 */ li $v1, 1 +/* 0D49D8 7F09FEA8 01B01021 */ addu $v0, $t5, $s0 +/* 0D49DC 7F09FEAC C4520008 */ lwc1 $f18, 8($v0) +/* 0D49E0 7F09FEB0 C4500020 */ lwc1 $f16, 0x20($v0) +/* 0D49E4 7F09FEB4 46109100 */ add.s $f4, $f18, $f16 +/* 0D49E8 7F09FEB8 E4440008 */ swc1 $f4, 8($v0) +/* 0D49EC 7F09FEBC 8E2E0000 */ lw $t6, ($s1) +/* 0D49F0 7F09FEC0 01D01021 */ addu $v0, $t6, $s0 +/* 0D49F4 7F09FEC4 C4400020 */ lwc1 $f0, 0x20($v0) +/* 0D49F8 7F09FEC8 4600A03C */ c.lt.s $f20, $f0 +/* 0D49FC 7F09FECC 00000000 */ nop +/* 0D4A00 7F09FED0 45000003 */ bc1f .L7F09FEE0 +/* 0D4A04 7F09FED4 00000000 */ nop +/* 0D4A08 7F09FED8 46160181 */ sub.s $f6, $f0, $f22 +/* 0D4A0C 7F09FEDC E4460020 */ swc1 $f6, 0x20($v0) +.L7F09FEE0: +/* 0D4A10 7F09FEE0 50640023 */ beql $v1, $a0, .L7F09FF70 +/* 0D4A14 7F09FEE4 8E290000 */ lw $t1, ($s1) +/* 0D4A18 7F09FEE8 8E2F0000 */ lw $t7, ($s1) +.L7F09FEEC: +/* 0D4A1C 7F09FEEC 24630002 */ addiu $v1, $v1, 2 +/* 0D4A20 7F09FEF0 01F01021 */ addu $v0, $t7, $s0 +/* 0D4A24 7F09FEF4 C4480008 */ lwc1 $f8, 8($v0) +/* 0D4A28 7F09FEF8 C44A0020 */ lwc1 $f10, 0x20($v0) +/* 0D4A2C 7F09FEFC 460A4480 */ add.s $f18, $f8, $f10 +/* 0D4A30 7F09FF00 E4520008 */ swc1 $f18, 8($v0) +/* 0D4A34 7F09FF04 8E380000 */ lw $t8, ($s1) +/* 0D4A38 7F09FF08 03101021 */ addu $v0, $t8, $s0 +/* 0D4A3C 7F09FF0C C4400020 */ lwc1 $f0, 0x20($v0) +/* 0D4A40 7F09FF10 4600A03C */ c.lt.s $f20, $f0 +/* 0D4A44 7F09FF14 00000000 */ nop +/* 0D4A48 7F09FF18 45020007 */ bc1fl .L7F09FF38 +/* 0D4A4C 7F09FF1C C4440008 */ lwc1 $f4, 8($v0) +/* 0D4A50 7F09FF20 46160401 */ sub.s $f16, $f0, $f22 +/* 0D4A54 7F09FF24 E4500020 */ swc1 $f16, 0x20($v0) +/* 0D4A58 7F09FF28 8E390000 */ lw $t9, ($s1) +/* 0D4A5C 7F09FF2C 03301021 */ addu $v0, $t9, $s0 +/* 0D4A60 7F09FF30 C4400020 */ lwc1 $f0, 0x20($v0) +/* 0D4A64 7F09FF34 C4440008 */ lwc1 $f4, 8($v0) +.L7F09FF38: +/* 0D4A68 7F09FF38 46002180 */ add.s $f6, $f4, $f0 +/* 0D4A6C 7F09FF3C E4460008 */ swc1 $f6, 8($v0) +/* 0D4A70 7F09FF40 8E280000 */ lw $t0, ($s1) +/* 0D4A74 7F09FF44 01101021 */ addu $v0, $t0, $s0 +/* 0D4A78 7F09FF48 C4400020 */ lwc1 $f0, 0x20($v0) +/* 0D4A7C 7F09FF4C 4600A03C */ c.lt.s $f20, $f0 +/* 0D4A80 7F09FF50 00000000 */ nop +/* 0D4A84 7F09FF54 45000003 */ bc1f .L7F09FF64 +/* 0D4A88 7F09FF58 00000000 */ nop +/* 0D4A8C 7F09FF5C 46160201 */ sub.s $f8, $f0, $f22 +/* 0D4A90 7F09FF60 E4480020 */ swc1 $f8, 0x20($v0) +.L7F09FF64: +/* 0D4A94 7F09FF64 5464FFE1 */ bnel $v1, $a0, .L7F09FEEC +/* 0D4A98 7F09FF68 8E2F0000 */ lw $t7, ($s1) +.L7F09FF6C: +/* 0D4A9C 7F09FF6C 8E290000 */ lw $t1, ($s1) +.L7F09FF70: +/* 0D4AA0 7F09FF70 01301021 */ addu $v0, $t1, $s0 +/* 0D4AA4 7F09FF74 8C4A0000 */ lw $t2, ($v0) +/* 0D4AA8 7F09FF78 29410065 */ slti $at, $t2, 0x65 +/* 0D4AAC 7F09FF7C 54200011 */ bnezl $at, .L7F09FFC4 +/* 0D4AB0 7F09FF80 C4400008 */ lwc1 $f0, 8($v0) +/* 0D4AB4 7F09FF84 0C002914 */ jal get_random_value +/* 0D4AB8 7F09FF88 00000000 */ nop +/* 0D4ABC 7F09FF8C 304B001F */ andi $t3, $v0, 0x1f +/* 0D4AC0 7F09FF90 51600007 */ beql $t3, $zero, .L7F09FFB0 +/* 0D4AC4 7F09FF94 8E2E0000 */ lw $t6, ($s1) +/* 0D4AC8 7F09FF98 8E2C0000 */ lw $t4, ($s1) +/* 0D4ACC 7F09FF9C 01901021 */ addu $v0, $t4, $s0 +/* 0D4AD0 7F09FFA0 8C4D0000 */ lw $t5, ($v0) +/* 0D4AD4 7F09FFA4 566D0007 */ bnel $s3, $t5, .L7F09FFC4 +/* 0D4AD8 7F09FFA8 C4400008 */ lwc1 $f0, 8($v0) +/* 0D4ADC 7F09FFAC 8E2E0000 */ lw $t6, ($s1) +.L7F09FFB0: +/* 0D4AE0 7F09FFB0 01D07821 */ addu $t7, $t6, $s0 +/* 0D4AE4 7F09FFB4 ADE00000 */ sw $zero, ($t7) +/* 0D4AE8 7F09FFB8 8E380000 */ lw $t8, ($s1) +/* 0D4AEC 7F09FFBC 03101021 */ addu $v0, $t8, $s0 +/* 0D4AF0 7F09FFC0 C4400008 */ lwc1 $f0, 8($v0) +.L7F09FFC4: +/* 0D4AF4 7F09FFC4 461A003C */ c.lt.s $f0, $f26 +/* 0D4AF8 7F09FFC8 00000000 */ nop +/* 0D4AFC 7F09FFCC 45030006 */ bc1tl .L7F09FFE8 +/* 0D4B00 7F09FFD0 AC400000 */ sw $zero, ($v0) +/* 0D4B04 7F09FFD4 4600E03C */ c.lt.s $f28, $f0 +/* 0D4B08 7F09FFD8 00000000 */ nop +/* 0D4B0C 7F09FFDC 45020003 */ bc1fl .L7F09FFEC +/* 0D4B10 7F09FFE0 8E990000 */ lw $t9, ($s4) +/* 0D4B14 7F09FFE4 AC400000 */ sw $zero, ($v0) +.L7F09FFE8: +/* 0D4B18 7F09FFE8 8E990000 */ lw $t9, ($s4) +.L7F09FFEC: +/* 0D4B1C 7F09FFEC 26520001 */ addiu $s2, $s2, 1 +/* 0D4B20 7F09FFF0 26100078 */ addiu $s0, $s0, 0x78 +/* 0D4B24 7F09FFF4 0259082A */ slt $at, $s2, $t9 +/* 0D4B28 7F09FFF8 5420FF78 */ bnezl $at, .L7F09FDDC +/* 0D4B2C 7F09FFFC 8E2F0000 */ lw $t7, ($s1) +.L7F0A0000: +/* 0D4B30 7F0A0000 8FBF0054 */ lw $ra, 0x54($sp) +/* 0D4B34 7F0A0004 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D4B38 7F0A0008 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0D4B3C 7F0A000C D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0D4B40 7F0A0010 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0D4B44 7F0A0014 D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 0D4B48 7F0A0018 8FB00040 */ lw $s0, 0x40($sp) +/* 0D4B4C 7F0A001C 8FB10044 */ lw $s1, 0x44($sp) +/* 0D4B50 7F0A0020 8FB20048 */ lw $s2, 0x48($sp) +/* 0D4B54 7F0A0024 8FB3004C */ lw $s3, 0x4c($sp) +/* 0D4B58 7F0A0028 8FB40050 */ lw $s4, 0x50($sp) +/* 0D4B5C 7F0A002C 03E00008 */ jr $ra +/* 0D4B60 7F0A0030 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A0034(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800576FC +.word 0xc69c4000 /*-20000.0*/ +glabel D_80057700 +.word 0x469c4000 /*20000.0*/ +.text +glabel sub_GAME_7F0A0034 +/* 0D4B64 7F0A0034 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 0D4B68 7F0A0038 AFB00028 */ sw $s0, 0x28($sp) +/* 0D4B6C 7F0A003C AFBF004C */ sw $ra, 0x4c($sp) +/* 0D4B70 7F0A0040 AFBE0048 */ sw $fp, 0x48($sp) +/* 0D4B74 7F0A0044 AFB70044 */ sw $s7, 0x44($sp) +/* 0D4B78 7F0A0048 AFB60040 */ sw $s6, 0x40($sp) +/* 0D4B7C 7F0A004C AFB5003C */ sw $s5, 0x3c($sp) +/* 0D4B80 7F0A0050 AFB40038 */ sw $s4, 0x38($sp) +/* 0D4B84 7F0A0054 AFB30034 */ sw $s3, 0x34($sp) +/* 0D4B88 7F0A0058 AFB20030 */ sw $s2, 0x30($sp) +/* 0D4B8C 7F0A005C AFB1002C */ sw $s1, 0x2c($sp) +/* 0D4B90 7F0A0060 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0D4B94 7F0A0064 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D4B98 7F0A0068 3C0EB600 */ lui $t6, 0xb600 +/* 0D4B9C 7F0A006C 240F3000 */ li $t7, 12288 +/* 0D4BA0 7F0A0070 AC8F0004 */ sw $t7, 4($a0) +/* 0D4BA4 7F0A0074 AC8E0000 */ sw $t6, ($a0) +/* 0D4BA8 7F0A0078 24900008 */ addiu $s0, $a0, 8 +/* 0D4BAC 7F0A007C 3C18BC00 */ lui $t8, (0xBC000806 >> 16) # lui $t8, 0xbc00 +/* 0D4BB0 7F0A0080 37180806 */ ori $t8, (0xBC000806 & 0xFFFF) # ori $t8, $t8, 0x806 +/* 0D4BB4 7F0A0084 02008825 */ move $s1, $s0 +/* 0D4BB8 7F0A0088 AE380000 */ sw $t8, ($s1) +/* 0D4BBC 7F0A008C 3C048009 */ lui $a0, %hi(pGlobalimagetable) +/* 0D4BC0 7F0A0090 8C84D0B4 */ lw $a0, %lo(pGlobalimagetable)($a0) +/* 0D4BC4 7F0A0094 0C003A2C */ jal osVirtualToPhysical +/* 0D4BC8 7F0A0098 26100008 */ addiu $s0, $s0, 8 +/* 0D4BCC 7F0A009C 02001825 */ move $v1, $s0 +/* 0D4BD0 7F0A00A0 AE220004 */ sw $v0, 4($s1) +/* 0D4BD4 7F0A00A4 3C080200 */ lui $t0, 0x200 +/* 0D4BD8 7F0A00A8 25080A50 */ addiu $t0, $t0, 0xa50 +/* 0D4BDC 7F0A00AC 26100008 */ addiu $s0, $s0, 8 +/* 0D4BE0 7F0A00B0 3C190600 */ lui $t9, 0x600 +/* 0D4BE4 7F0A00B4 AC790000 */ sw $t9, ($v1) +/* 0D4BE8 7F0A00B8 AC680004 */ sw $t0, 4($v1) +/* 0D4BEC 7F0A00BC 02002025 */ move $a0, $s0 +/* 0D4BF0 7F0A00C0 3C09B900 */ lui $t1, (0xB900031D >> 16) # lui $t1, 0xb900 +/* 0D4BF4 7F0A00C4 3C0A0050 */ lui $t2, (0x005049D8 >> 16) # lui $t2, 0x50 +/* 0D4BF8 7F0A00C8 354A49D8 */ ori $t2, (0x005049D8 & 0xFFFF) # ori $t2, $t2, 0x49d8 +/* 0D4BFC 7F0A00CC 3529031D */ ori $t1, (0xB900031D & 0xFFFF) # ori $t1, $t1, 0x31d +/* 0D4C00 7F0A00D0 AC890000 */ sw $t1, ($a0) +/* 0D4C04 7F0A00D4 AC8A0004 */ sw $t2, 4($a0) +/* 0D4C08 7F0A00D8 3C0B8008 */ lui $t3, %hi(max_casings) +/* 0D4C0C 7F0A00DC 8D6BA148 */ lw $t3, %lo(max_casings)($t3) +/* 0D4C10 7F0A00E0 26100008 */ addiu $s0, $s0, 8 +/* 0D4C14 7F0A00E4 0000A825 */ move $s5, $zero +/* 0D4C18 7F0A00E8 19600055 */ blez $t3, .L7F0A0240 +/* 0D4C1C 7F0A00EC 00009825 */ move $s3, $zero +/* 0D4C20 7F0A00F0 3C018005 */ lui $at, %hi(D_800576FC) +/* 0D4C24 7F0A00F4 C43676FC */ lwc1 $f22, %lo(D_800576FC)($at) +/* 0D4C28 7F0A00F8 3C018005 */ lui $at, %hi(D_80057700) +/* 0D4C2C 7F0A00FC 3C1E0430 */ lui $fp, (0x04300040 >> 16) # lui $fp, 0x430 +/* 0D4C30 7F0A0100 3C170102 */ lui $s7, (0x01020040 >> 16) # lui $s7, 0x102 +/* 0D4C34 7F0A0104 3C168008 */ lui $s6, %hi(ptr_ejected_casing_buf) +/* 0D4C38 7F0A0108 26D6A14C */ addiu $s6, %lo(ptr_ejected_casing_buf) # addiu $s6, $s6, -0x5eb4 +/* 0D4C3C 7F0A010C 36F70040 */ ori $s7, (0x01020040 & 0xFFFF) # ori $s7, $s7, 0x40 +/* 0D4C40 7F0A0110 37DE0040 */ ori $fp, (0x04300040 & 0xFFFF) # ori $fp, $fp, 0x40 +/* 0D4C44 7F0A0114 C4347700 */ lwc1 $f20, %lo(D_80057700)($at) +/* 0D4C48 7F0A0118 27B40080 */ addiu $s4, $sp, 0x80 +/* 0D4C4C 7F0A011C 8ECC0000 */ lw $t4, ($s6) +.L7F0A0120: +/* 0D4C50 7F0A0120 01931021 */ addu $v0, $t4, $s3 +/* 0D4C54 7F0A0124 8C4D0000 */ lw $t5, ($v0) +/* 0D4C58 7F0A0128 24440004 */ addiu $a0, $v0, 4 +/* 0D4C5C 7F0A012C 24450010 */ addiu $a1, $v0, 0x10 +/* 0D4C60 7F0A0130 19A0003C */ blez $t5, .L7F0A0224 +/* 0D4C64 7F0A0134 00000000 */ nop +/* 0D4C68 7F0A0138 0FC1624B */ jal matrix_4x4_set_position_and_rotation_around_xyz +/* 0D4C6C 7F0A013C 02803025 */ move $a2, $s4 +/* 0D4C70 7F0A0140 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0D4C74 7F0A0144 00000000 */ nop +/* 0D4C78 7F0A0148 00402025 */ move $a0, $v0 +/* 0D4C7C 7F0A014C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0D4C80 7F0A0150 02802825 */ move $a1, $s4 +/* 0D4C84 7F0A0154 C7A000B0 */ lwc1 $f0, 0xb0($sp) +/* 0D4C88 7F0A0158 4614003C */ c.lt.s $f0, $f20 +/* 0D4C8C 7F0A015C 00000000 */ nop +/* 0D4C90 7F0A0160 45000030 */ bc1f .L7F0A0224 +/* 0D4C94 7F0A0164 00000000 */ nop +/* 0D4C98 7F0A0168 4600B03C */ c.lt.s $f22, $f0 +/* 0D4C9C 7F0A016C C7A000B4 */ lwc1 $f0, 0xb4($sp) +/* 0D4CA0 7F0A0170 4500002C */ bc1f .L7F0A0224 +/* 0D4CA4 7F0A0174 00000000 */ nop +/* 0D4CA8 7F0A0178 4614003C */ c.lt.s $f0, $f20 +/* 0D4CAC 7F0A017C 00000000 */ nop +/* 0D4CB0 7F0A0180 45000028 */ bc1f .L7F0A0224 +/* 0D4CB4 7F0A0184 00000000 */ nop +/* 0D4CB8 7F0A0188 4600B03C */ c.lt.s $f22, $f0 +/* 0D4CBC 7F0A018C C7A000B8 */ lwc1 $f0, 0xb8($sp) +/* 0D4CC0 7F0A0190 45000024 */ bc1f .L7F0A0224 +/* 0D4CC4 7F0A0194 00000000 */ nop +/* 0D4CC8 7F0A0198 4614003C */ c.lt.s $f0, $f20 +/* 0D4CCC 7F0A019C 00000000 */ nop +/* 0D4CD0 7F0A01A0 45000020 */ bc1f .L7F0A0224 +/* 0D4CD4 7F0A01A4 00000000 */ nop +/* 0D4CD8 7F0A01A8 4600B03C */ c.lt.s $f22, $f0 +/* 0D4CDC 7F0A01AC 00000000 */ nop +/* 0D4CE0 7F0A01B0 4500001C */ bc1f .L7F0A0224 +/* 0D4CE4 7F0A01B4 00000000 */ nop +/* 0D4CE8 7F0A01B8 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0D4CEC 7F0A01BC 00000000 */ nop +/* 0D4CF0 7F0A01C0 00409025 */ move $s2, $v0 +/* 0D4CF4 7F0A01C4 02802025 */ move $a0, $s4 +/* 0D4CF8 7F0A01C8 0FC16327 */ jal sub_GAME_7F058C9C +/* 0D4CFC 7F0A01CC 00402825 */ move $a1, $v0 +/* 0D4D00 7F0A01D0 02008825 */ move $s1, $s0 +/* 0D4D04 7F0A01D4 AE370000 */ sw $s7, ($s1) +/* 0D4D08 7F0A01D8 26100008 */ addiu $s0, $s0, 8 +/* 0D4D0C 7F0A01DC 0C003A2C */ jal osVirtualToPhysical +/* 0D4D10 7F0A01E0 02402025 */ move $a0, $s2 +/* 0D4D14 7F0A01E4 AE220004 */ sw $v0, 4($s1) +/* 0D4D18 7F0A01E8 02009025 */ move $s2, $s0 +/* 0D4D1C 7F0A01EC AE5E0000 */ sw $fp, ($s2) +/* 0D4D20 7F0A01F0 8ECE0000 */ lw $t6, ($s6) +/* 0D4D24 7F0A01F4 26100008 */ addiu $s0, $s0, 8 +/* 0D4D28 7F0A01F8 01D32021 */ addu $a0, $t6, $s3 +/* 0D4D2C 7F0A01FC 0C003A2C */ jal osVirtualToPhysical +/* 0D4D30 7F0A0200 24840038 */ addiu $a0, $a0, 0x38 +/* 0D4D34 7F0A0204 02001825 */ move $v1, $s0 +/* 0D4D38 7F0A0208 AE420004 */ sw $v0, 4($s2) +/* 0D4D3C 7F0A020C 3C0FB100 */ lui $t7, (0xB1000032 >> 16) # lui $t7, 0xb100 +/* 0D4D40 7F0A0210 35EF0032 */ ori $t7, (0xB1000032 & 0xFFFF) # ori $t7, $t7, 0x32 +/* 0D4D44 7F0A0214 24182010 */ li $t8, 8208 +/* 0D4D48 7F0A0218 AC780004 */ sw $t8, 4($v1) +/* 0D4D4C 7F0A021C AC6F0000 */ sw $t7, ($v1) +/* 0D4D50 7F0A0220 26100008 */ addiu $s0, $s0, 8 +.L7F0A0224: +/* 0D4D54 7F0A0224 3C198008 */ lui $t9, %hi(max_casings) +/* 0D4D58 7F0A0228 8F39A148 */ lw $t9, %lo(max_casings)($t9) +/* 0D4D5C 7F0A022C 26B50001 */ addiu $s5, $s5, 1 +/* 0D4D60 7F0A0230 26730078 */ addiu $s3, $s3, 0x78 +/* 0D4D64 7F0A0234 02B9082A */ slt $at, $s5, $t9 +/* 0D4D68 7F0A0238 5420FFB9 */ bnezl $at, .L7F0A0120 +/* 0D4D6C 7F0A023C 8ECC0000 */ lw $t4, ($s6) +.L7F0A0240: +/* 0D4D70 7F0A0240 8FBF004C */ lw $ra, 0x4c($sp) +/* 0D4D74 7F0A0244 02001025 */ move $v0, $s0 +/* 0D4D78 7F0A0248 8FB00028 */ lw $s0, 0x28($sp) +/* 0D4D7C 7F0A024C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D4D80 7F0A0250 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0D4D84 7F0A0254 8FB1002C */ lw $s1, 0x2c($sp) +/* 0D4D88 7F0A0258 8FB20030 */ lw $s2, 0x30($sp) +/* 0D4D8C 7F0A025C 8FB30034 */ lw $s3, 0x34($sp) +/* 0D4D90 7F0A0260 8FB40038 */ lw $s4, 0x38($sp) +/* 0D4D94 7F0A0264 8FB5003C */ lw $s5, 0x3c($sp) +/* 0D4D98 7F0A0268 8FB60040 */ lw $s6, 0x40($sp) +/* 0D4D9C 7F0A026C 8FB70044 */ lw $s7, 0x44($sp) +/* 0D4DA0 7F0A0270 8FBE0048 */ lw $fp, 0x48($sp) +/* 0D4DA4 7F0A0274 03E00008 */ jr $ra +/* 0D4DA8 7F0A0278 27BD00C0 */ addiu $sp, $sp, 0xc0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A027C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80057704 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80057708 +.word 0x3e4ccccd /*0.2*/ +glabel D_8005770C +.word 0x3f4ccccd /*0.80000001*/ +.text +glabel sub_GAME_7F0A027C +/* 0D4DAC 7F0A027C 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0D4DB0 7F0A0280 3C0E8004 */ lui $t6, %hi(D_80040920) +/* 0D4DB4 7F0A0284 AFBF0034 */ sw $ra, 0x34($sp) +/* 0D4DB8 7F0A0288 AFB40030 */ sw $s4, 0x30($sp) +/* 0D4DBC 7F0A028C AFB3002C */ sw $s3, 0x2c($sp) +/* 0D4DC0 7F0A0290 AFB20028 */ sw $s2, 0x28($sp) +/* 0D4DC4 7F0A0294 AFB10024 */ sw $s1, 0x24($sp) +/* 0D4DC8 7F0A0298 AFB00020 */ sw $s0, 0x20($sp) +/* 0D4DCC 7F0A029C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D4DD0 7F0A02A0 AFA60070 */ sw $a2, 0x70($sp) +/* 0D4DD4 7F0A02A4 25CE0920 */ addiu $t6, %lo(D_80040920) # addiu $t6, $t6, 0x920 +/* 0D4DD8 7F0A02A8 8DC10000 */ lw $at, ($t6) +/* 0D4DDC 7F0A02AC 27B30058 */ addiu $s3, $sp, 0x58 +/* 0D4DE0 7F0A02B0 4485A000 */ mtc1 $a1, $f20 +/* 0D4DE4 7F0A02B4 AE610000 */ sw $at, ($s3) +/* 0D4DE8 7F0A02B8 8DD90004 */ lw $t9, 4($t6) +/* 0D4DEC 7F0A02BC 0080A025 */ move $s4, $a0 +/* 0D4DF0 7F0A02C0 AE790004 */ sw $t9, 4($s3) +/* 0D4DF4 7F0A02C4 8DC10008 */ lw $at, 8($t6) +/* 0D4DF8 7F0A02C8 AE610008 */ sw $at, 8($s3) +/* 0D4DFC 7F0A02CC 8DD9000C */ lw $t9, 0xc($t6) +/* 0D4E00 7F0A02D0 0C002914 */ jal get_random_value +/* 0D4E04 7F0A02D4 AE79000C */ sw $t9, 0xc($s3) +/* 0D4E08 7F0A02D8 44822000 */ mtc1 $v0, $f4 +/* 0D4E0C 7F0A02DC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D4E10 7F0A02E0 04410004 */ bgez $v0, .L7F0A02F4 +/* 0D4E14 7F0A02E4 468021A0 */ cvt.s.w $f6, $f4 +/* 0D4E18 7F0A02E8 44814000 */ mtc1 $at, $f8 +/* 0D4E1C 7F0A02EC 00000000 */ nop +/* 0D4E20 7F0A02F0 46083180 */ add.s $f6, $f6, $f8 +.L7F0A02F4: +/* 0D4E24 7F0A02F4 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D4E28 7F0A02F8 44815000 */ mtc1 $at, $f10 +/* 0D4E2C 7F0A02FC 3C018005 */ lui $at, %hi(D_80057704) +/* 0D4E30 7F0A0300 C4327704 */ lwc1 $f18, %lo(D_80057704)($at) +/* 0D4E34 7F0A0304 460A3402 */ mul.s $f16, $f6, $f10 +/* 0D4E38 7F0A0308 00000000 */ nop +/* 0D4E3C 7F0A030C 46128102 */ mul.s $f4, $f16, $f18 +/* 0D4E40 7F0A0310 0C002914 */ jal get_random_value +/* 0D4E44 7F0A0314 E7A40054 */ swc1 $f4, 0x54($sp) +/* 0D4E48 7F0A0318 24010050 */ li $at, 80 +/* 0D4E4C 7F0A031C 0041001B */ divu $zero, $v0, $at +/* 0D4E50 7F0A0320 00004010 */ mfhi $t0 +/* 0D4E54 7F0A0324 240900FF */ li $t1, 255 +/* 0D4E58 7F0A0328 01285023 */ subu $t2, $t1, $t0 +/* 0D4E5C 7F0A032C A3AA004B */ sb $t2, 0x4b($sp) +/* 0D4E60 7F0A0330 0FC2F285 */ jal sub_GAME_7F0BCA14 +/* 0D4E64 7F0A0334 87A40072 */ lh $a0, 0x72($sp) +/* 0D4E68 7F0A0338 0FC26919 */ jal get_num_players +/* 0D4E6C 7F0A033C 00408025 */ move $s0, $v0 +/* 0D4E70 7F0A0340 28410002 */ slti $at, $v0, 2 +/* 0D4E74 7F0A0344 102001D2 */ beqz $at, .L7F0A0A90 +/* 0D4E78 7F0A0348 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 0D4E7C 7F0A034C 44810000 */ mtc1 $at, $f0 +/* 0D4E80 7F0A0350 00000000 */ nop +/* 0D4E84 7F0A0354 4614003C */ c.lt.s $f0, $f20 +/* 0D4E88 7F0A0358 00000000 */ nop +/* 0D4E8C 7F0A035C 45000002 */ bc1f .L7F0A0368 +/* 0D4E90 7F0A0360 00000000 */ nop +/* 0D4E94 7F0A0364 46000506 */ mov.s $f20, $f0 +.L7F0A0368: +/* 0D4E98 7F0A0368 0C002914 */ jal get_random_value +/* 0D4E9C 7F0A036C 00000000 */ nop +/* 0D4EA0 7F0A0370 44824000 */ mtc1 $v0, $f8 +/* 0D4EA4 7F0A0374 04410005 */ bgez $v0, .L7F0A038C +/* 0D4EA8 7F0A0378 468041A0 */ cvt.s.w $f6, $f8 +/* 0D4EAC 7F0A037C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D4EB0 7F0A0380 44815000 */ mtc1 $at, $f10 +/* 0D4EB4 7F0A0384 00000000 */ nop +/* 0D4EB8 7F0A0388 460A3180 */ add.s $f6, $f6, $f10 +.L7F0A038C: +/* 0D4EBC 7F0A038C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D4EC0 7F0A0390 44818000 */ mtc1 $at, $f16 +/* 0D4EC4 7F0A0394 3C018005 */ lui $at, %hi(D_80057708) +/* 0D4EC8 7F0A0398 C4247708 */ lwc1 $f4, %lo(D_80057708)($at) +/* 0D4ECC 7F0A039C 46103482 */ mul.s $f18, $f6, $f16 +/* 0D4ED0 7F0A03A0 3C018005 */ lui $at, %hi(D_8005770C) +/* 0D4ED4 7F0A03A4 C42A770C */ lwc1 $f10, %lo(D_8005770C)($at) +/* 0D4ED8 7F0A03A8 46122202 */ mul.s $f8, $f4, $f18 +/* 0D4EDC 7F0A03AC 46085180 */ add.s $f6, $f10, $f8 +/* 0D4EE0 7F0A03B0 4606A502 */ mul.s $f20, $f20, $f6 +/* 0D4EE4 7F0A03B4 0FC2D20F */ jal get_room_data_float1 +/* 0D4EE8 7F0A03B8 00000000 */ nop +/* 0D4EEC 7F0A03BC C6900000 */ lwc1 $f16, ($s4) +/* 0D4EF0 7F0A03C0 C6120000 */ lwc1 $f18, ($s0) +/* 0D4EF4 7F0A03C4 46008102 */ mul.s $f4, $f16, $f0 +/* 0D4EF8 7F0A03C8 46122281 */ sub.s $f10, $f4, $f18 +/* 0D4EFC 7F0A03CC 0FC2D20F */ jal get_room_data_float1 +/* 0D4F00 7F0A03D0 E68A0000 */ swc1 $f10, ($s4) +/* 0D4F04 7F0A03D4 C6880004 */ lwc1 $f8, 4($s4) +/* 0D4F08 7F0A03D8 C6100004 */ lwc1 $f16, 4($s0) +/* 0D4F0C 7F0A03DC 46004182 */ mul.s $f6, $f8, $f0 +/* 0D4F10 7F0A03E0 46103101 */ sub.s $f4, $f6, $f16 +/* 0D4F14 7F0A03E4 0FC2D20F */ jal get_room_data_float1 +/* 0D4F18 7F0A03E8 E6840004 */ swc1 $f4, 4($s4) +/* 0D4F1C 7F0A03EC C6920008 */ lwc1 $f18, 8($s4) +/* 0D4F20 7F0A03F0 C6080008 */ lwc1 $f8, 8($s0) +/* 0D4F24 7F0A03F4 46009282 */ mul.s $f10, $f18, $f0 +/* 0D4F28 7F0A03F8 46085181 */ sub.s $f6, $f10, $f8 +/* 0D4F2C 7F0A03FC 0FC2D20F */ jal get_room_data_float1 +/* 0D4F30 7F0A0400 E6860008 */ swc1 $f6, 8($s4) +/* 0D4F34 7F0A0404 4600A502 */ mul.s $f20, $f20, $f0 +/* 0D4F38 7F0A0408 0FC15FA8 */ jal cosf +/* 0D4F3C 7F0A040C C7AC0054 */ lwc1 $f12, 0x54($sp) +/* 0D4F40 7F0A0410 46140402 */ mul.s $f16, $f0, $f20 +/* 0D4F44 7F0A0414 C7AC0054 */ lwc1 $f12, 0x54($sp) +/* 0D4F48 7F0A0418 0FC15FAB */ jal sinf +/* 0D4F4C 7F0A041C E7B00050 */ swc1 $f16, 0x50($sp) +/* 0D4F50 7F0A0420 3C128004 */ lui $s2, %hi(D_8004017C+0x688) +/* 0D4F54 7F0A0424 26520804 */ addiu $s2, %lo(D_8004017C+0x688) # addiu $s2, $s2, 0x804 +/* 0D4F58 7F0A0428 8E4D0000 */ lw $t5, ($s2) +/* 0D4F5C 7F0A042C 24110058 */ li $s1, 88 +/* 0D4F60 7F0A0430 46140082 */ mul.s $f2, $f0, $f20 +/* 0D4F64 7F0A0434 3C108008 */ lui $s0, %hi(ptr_scorch_buf) +/* 0D4F68 7F0A0438 01B10019 */ multu $t5, $s1 +/* 0D4F6C 7F0A043C 2610A150 */ addiu $s0, %lo(ptr_scorch_buf) # addiu $s0, $s0, -0x5eb0 +/* 0D4F70 7F0A0440 8E0C0000 */ lw $t4, ($s0) +/* 0D4F74 7F0A0444 87AB0072 */ lh $t3, 0x72($sp) +/* 0D4F78 7F0A0448 E7A2004C */ swc1 $f2, 0x4c($sp) +/* 0D4F7C 7F0A044C 0000C012 */ mflo $t8 +/* 0D4F80 7F0A0450 01987821 */ addu $t7, $t4, $t8 +/* 0D4F84 7F0A0454 A5EB0000 */ sh $t3, ($t7) +/* 0D4F88 7F0A0458 8E590000 */ lw $t9, ($s2) +/* 0D4F8C 7F0A045C 8E0E0000 */ lw $t6, ($s0) +/* 0D4F90 7F0A0460 C6840000 */ lwc1 $f4, ($s4) +/* 0D4F94 7F0A0464 03310019 */ multu $t9, $s1 +/* 0D4F98 7F0A0468 00004812 */ mflo $t1 +/* 0D4F9C 7F0A046C 01C94021 */ addu $t0, $t6, $t1 +/* 0D4FA0 7F0A0470 E5040004 */ swc1 $f4, 4($t0) +/* 0D4FA4 7F0A0474 8E4D0000 */ lw $t5, ($s2) +/* 0D4FA8 7F0A0478 8E0A0000 */ lw $t2, ($s0) +/* 0D4FAC 7F0A047C C6920004 */ lwc1 $f18, 4($s4) +/* 0D4FB0 7F0A0480 01B10019 */ multu $t5, $s1 +/* 0D4FB4 7F0A0484 00006012 */ mflo $t4 +/* 0D4FB8 7F0A0488 014CC021 */ addu $t8, $t2, $t4 +/* 0D4FBC 7F0A048C E7120008 */ swc1 $f18, 8($t8) +/* 0D4FC0 7F0A0490 8E4F0000 */ lw $t7, ($s2) +/* 0D4FC4 7F0A0494 8E0B0000 */ lw $t3, ($s0) +/* 0D4FC8 7F0A0498 C68A0008 */ lwc1 $f10, 8($s4) +/* 0D4FCC 7F0A049C 01F10019 */ multu $t7, $s1 +/* 0D4FD0 7F0A04A0 0000C812 */ mflo $t9 +/* 0D4FD4 7F0A04A4 01797021 */ addu $t6, $t3, $t9 +/* 0D4FD8 7F0A04A8 E5CA000C */ swc1 $f10, 0xc($t6) +/* 0D4FDC 7F0A04AC 8E480000 */ lw $t0, ($s2) +/* 0D4FE0 7F0A04B0 8E090000 */ lw $t1, ($s0) +/* 0D4FE4 7F0A04B4 01110019 */ multu $t0, $s1 +/* 0D4FE8 7F0A04B8 00006812 */ mflo $t5 +/* 0D4FEC 7F0A04BC 012D5021 */ addu $t2, $t1, $t5 +/* 0D4FF0 7F0A04C0 E5540010 */ swc1 $f20, 0x10($t2) +/* 0D4FF4 7F0A04C4 8E580000 */ lw $t8, ($s2) +/* 0D4FF8 7F0A04C8 8E0C0000 */ lw $t4, ($s0) +/* 0D4FFC 7F0A04CC 8E610000 */ lw $at, ($s3) +/* 0D5000 7F0A04D0 03110019 */ multu $t8, $s1 +/* 0D5004 7F0A04D4 00007812 */ mflo $t7 +/* 0D5008 7F0A04D8 018F5821 */ addu $t3, $t4, $t7 +/* 0D500C 7F0A04DC AD610018 */ sw $at, 0x18($t3) +/* 0D5010 7F0A04E0 8E6E0004 */ lw $t6, 4($s3) +/* 0D5014 7F0A04E4 AD6E001C */ sw $t6, 0x1c($t3) +/* 0D5018 7F0A04E8 8E610008 */ lw $at, 8($s3) +/* 0D501C 7F0A04EC AD610020 */ sw $at, 0x20($t3) +/* 0D5020 7F0A04F0 8E6E000C */ lw $t6, 0xc($s3) +/* 0D5024 7F0A04F4 AD6E0024 */ sw $t6, 0x24($t3) +/* 0D5028 7F0A04F8 8E490000 */ lw $t1, ($s2) +/* 0D502C 7F0A04FC 8E080000 */ lw $t0, ($s0) +/* 0D5030 7F0A0500 8E610000 */ lw $at, ($s3) +/* 0D5034 7F0A0504 01310019 */ multu $t1, $s1 +/* 0D5038 7F0A0508 00006812 */ mflo $t5 +/* 0D503C 7F0A050C 010D5021 */ addu $t2, $t0, $t5 +/* 0D5040 7F0A0510 AD410028 */ sw $at, 0x28($t2) +/* 0D5044 7F0A0514 8E6C0004 */ lw $t4, 4($s3) +/* 0D5048 7F0A0518 AD4C002C */ sw $t4, 0x2c($t2) +/* 0D504C 7F0A051C 8E610008 */ lw $at, 8($s3) +/* 0D5050 7F0A0520 AD410030 */ sw $at, 0x30($t2) +/* 0D5054 7F0A0524 8E6C000C */ lw $t4, 0xc($s3) +/* 0D5058 7F0A0528 AD4C0034 */ sw $t4, 0x34($t2) +/* 0D505C 7F0A052C 8E590000 */ lw $t9, ($s2) +/* 0D5060 7F0A0530 8E0F0000 */ lw $t7, ($s0) +/* 0D5064 7F0A0534 8E610000 */ lw $at, ($s3) +/* 0D5068 7F0A0538 03310019 */ multu $t9, $s1 +/* 0D506C 7F0A053C 00005812 */ mflo $t3 +/* 0D5070 7F0A0540 01EB7021 */ addu $t6, $t7, $t3 +/* 0D5074 7F0A0544 ADC10038 */ sw $at, 0x38($t6) +/* 0D5078 7F0A0548 8E680004 */ lw $t0, 4($s3) +/* 0D507C 7F0A054C ADC8003C */ sw $t0, 0x3c($t6) +/* 0D5080 7F0A0550 8E610008 */ lw $at, 8($s3) +/* 0D5084 7F0A0554 ADC10040 */ sw $at, 0x40($t6) +/* 0D5088 7F0A0558 8E68000C */ lw $t0, 0xc($s3) +/* 0D508C 7F0A055C ADC80044 */ sw $t0, 0x44($t6) +/* 0D5090 7F0A0560 8E580000 */ lw $t8, ($s2) +/* 0D5094 7F0A0564 8E0D0000 */ lw $t5, ($s0) +/* 0D5098 7F0A0568 8E610000 */ lw $at, ($s3) +/* 0D509C 7F0A056C 03110019 */ multu $t8, $s1 +/* 0D50A0 7F0A0570 00005012 */ mflo $t2 +/* 0D50A4 7F0A0574 01AA6021 */ addu $t4, $t5, $t2 +/* 0D50A8 7F0A0578 AD810048 */ sw $at, 0x48($t4) +/* 0D50AC 7F0A057C 8E6F0004 */ lw $t7, 4($s3) +/* 0D50B0 7F0A0580 AD8F004C */ sw $t7, 0x4c($t4) +/* 0D50B4 7F0A0584 8E610008 */ lw $at, 8($s3) +/* 0D50B8 7F0A0588 AD810050 */ sw $at, 0x50($t4) +/* 0D50BC 7F0A058C 8E6F000C */ lw $t7, 0xc($s3) +/* 0D50C0 7F0A0590 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D50C4 7F0A0594 44815000 */ mtc1 $at, $f10 +/* 0D50C8 7F0A0598 AD8F0054 */ sw $t7, 0x54($t4) +/* 0D50CC 7F0A059C 8E480000 */ lw $t0, ($s2) +/* 0D50D0 7F0A05A0 C7A60050 */ lwc1 $f6, 0x50($sp) +/* 0D50D4 7F0A05A4 C6880000 */ lwc1 $f8, ($s4) +/* 0D50D8 7F0A05A8 01110019 */ multu $t0, $s1 +/* 0D50DC 7F0A05AC 8E0E0000 */ lw $t6, ($s0) +/* 0D50E0 7F0A05B0 46064400 */ add.s $f16, $f8, $f6 +/* 0D50E4 7F0A05B4 4600810D */ trunc.w.s $f4, $f16 +/* 0D50E8 7F0A05B8 44092000 */ mfc1 $t1, $f4 +/* 0D50EC 7F0A05BC 0000C012 */ mflo $t8 +/* 0D50F0 7F0A05C0 01D86821 */ addu $t5, $t6, $t8 +/* 0D50F4 7F0A05C4 A5A90018 */ sh $t1, 0x18($t5) +/* 0D50F8 7F0A05C8 8E4F0000 */ lw $t7, ($s2) +/* 0D50FC 7F0A05CC C6920004 */ lwc1 $f18, 4($s4) +/* 0D5100 7F0A05D0 8E0C0000 */ lw $t4, ($s0) +/* 0D5104 7F0A05D4 01F10019 */ multu $t7, $s1 +/* 0D5108 7F0A05D8 460A9200 */ add.s $f8, $f18, $f10 +/* 0D510C 7F0A05DC 3C0E8009 */ lui $t6, %hi(genericimage) +/* 0D5110 7F0A05E0 4600418D */ trunc.w.s $f6, $f8 +/* 0D5114 7F0A05E4 44193000 */ mfc1 $t9, $f6 +/* 0D5118 7F0A05E8 00005812 */ mflo $t3 +/* 0D511C 7F0A05EC 018B4021 */ addu $t0, $t4, $t3 +/* 0D5120 7F0A05F0 A519001A */ sh $t9, 0x1a($t0) +/* 0D5124 7F0A05F4 8E4D0000 */ lw $t5, ($s2) +/* 0D5128 7F0A05F8 C6900008 */ lwc1 $f16, 8($s4) +/* 0D512C 7F0A05FC 8E090000 */ lw $t1, ($s0) +/* 0D5130 7F0A0600 01B10019 */ multu $t5, $s1 +/* 0D5134 7F0A0604 46028100 */ add.s $f4, $f16, $f2 +/* 0D5138 7F0A0608 4600248D */ trunc.w.s $f18, $f4 +/* 0D513C 7F0A060C 44189000 */ mfc1 $t8, $f18 +/* 0D5140 7F0A0610 00005012 */ mflo $t2 +/* 0D5144 7F0A0614 012A7821 */ addu $t7, $t1, $t2 +/* 0D5148 7F0A0618 A5F8001C */ sh $t8, 0x1c($t7) +/* 0D514C 7F0A061C 8E4B0000 */ lw $t3, ($s2) +/* 0D5150 7F0A0620 8E0C0000 */ lw $t4, ($s0) +/* 0D5154 7F0A0624 01710019 */ multu $t3, $s1 +/* 0D5158 7F0A0628 0000C812 */ mflo $t9 +/* 0D515C 7F0A062C 01994021 */ addu $t0, $t4, $t9 +/* 0D5160 7F0A0630 A5000020 */ sh $zero, 0x20($t0) +/* 0D5164 7F0A0634 8E580000 */ lw $t8, ($s2) +/* 0D5168 7F0A0638 8DCED0B8 */ lw $t6, %lo(genericimage)($t6) +/* 0D516C 7F0A063C 8E0A0000 */ lw $t2, ($s0) +/* 0D5170 7F0A0640 03110019 */ multu $t8, $s1 +/* 0D5174 7F0A0644 91CD0004 */ lbu $t5, 4($t6) +/* 0D5178 7F0A0648 000D4940 */ sll $t1, $t5, 5 +/* 0D517C 7F0A064C 00007812 */ mflo $t7 +/* 0D5180 7F0A0650 014F5821 */ addu $t3, $t2, $t7 +/* 0D5184 7F0A0654 0C002914 */ jal get_random_value +/* 0D5188 7F0A0658 A5690022 */ sh $t1, 0x22($t3) +/* 0D518C 7F0A065C 24010032 */ li $at, 50 +/* 0D5190 7F0A0660 0041001B */ divu $zero, $v0, $at +/* 0D5194 7F0A0664 00009810 */ mfhi $s3 +/* 0D5198 7F0A0668 8E590000 */ lw $t9, ($s2) +/* 0D519C 7F0A066C 8E0C0000 */ lw $t4, ($s0) +/* 0D51A0 7F0A0670 C7B4004C */ lwc1 $f20, 0x4c($sp) +/* 0D51A4 7F0A0674 03310019 */ multu $t9, $s1 +/* 0D51A8 7F0A0678 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D51AC 7F0A067C 44812000 */ mtc1 $at, $f4 +/* 0D51B0 7F0A0680 00004012 */ mflo $t0 +/* 0D51B4 7F0A0684 01887021 */ addu $t6, $t4, $t0 +/* 0D51B8 7F0A0688 A1D30026 */ sb $s3, 0x26($t6) +/* 0D51BC 7F0A068C 8E580000 */ lw $t8, ($s2) +/* 0D51C0 7F0A0690 8E0D0000 */ lw $t5, ($s0) +/* 0D51C4 7F0A0694 03110019 */ multu $t8, $s1 +/* 0D51C8 7F0A0698 00005012 */ mflo $t2 +/* 0D51CC 7F0A069C 01AA7821 */ addu $t7, $t5, $t2 +/* 0D51D0 7F0A06A0 A1F30025 */ sb $s3, 0x25($t7) +/* 0D51D4 7F0A06A4 8E4B0000 */ lw $t3, ($s2) +/* 0D51D8 7F0A06A8 8E090000 */ lw $t1, ($s0) +/* 0D51DC 7F0A06AC 01710019 */ multu $t3, $s1 +/* 0D51E0 7F0A06B0 0000C812 */ mflo $t9 +/* 0D51E4 7F0A06B4 01396021 */ addu $t4, $t1, $t9 +/* 0D51E8 7F0A06B8 A1930024 */ sb $s3, 0x24($t4) +/* 0D51EC 7F0A06BC 8E580000 */ lw $t8, ($s2) +/* 0D51F0 7F0A06C0 8E0E0000 */ lw $t6, ($s0) +/* 0D51F4 7F0A06C4 93A8004B */ lbu $t0, 0x4b($sp) +/* 0D51F8 7F0A06C8 03110019 */ multu $t8, $s1 +/* 0D51FC 7F0A06CC 00006812 */ mflo $t5 +/* 0D5200 7F0A06D0 01CD5021 */ addu $t2, $t6, $t5 +/* 0D5204 7F0A06D4 A1480027 */ sb $t0, 0x27($t2) +/* 0D5208 7F0A06D8 8E590000 */ lw $t9, ($s2) +/* 0D520C 7F0A06DC C68A0000 */ lwc1 $f10, ($s4) +/* 0D5210 7F0A06E0 8E090000 */ lw $t1, ($s0) +/* 0D5214 7F0A06E4 03310019 */ multu $t9, $s1 +/* 0D5218 7F0A06E8 46145200 */ add.s $f8, $f10, $f20 +/* 0D521C 7F0A06EC 4600418D */ trunc.w.s $f6, $f8 +/* 0D5220 7F0A06F0 440B3000 */ mfc1 $t3, $f6 +/* 0D5224 7F0A06F4 00006012 */ mflo $t4 +/* 0D5228 7F0A06F8 012CC021 */ addu $t8, $t1, $t4 +/* 0D522C 7F0A06FC A70B0028 */ sh $t3, 0x28($t8) +/* 0D5230 7F0A0700 8E4A0000 */ lw $t2, ($s2) +/* 0D5234 7F0A0704 C6900004 */ lwc1 $f16, 4($s4) +/* 0D5238 7F0A0708 8E080000 */ lw $t0, ($s0) +/* 0D523C 7F0A070C 01510019 */ multu $t2, $s1 +/* 0D5240 7F0A0710 46048480 */ add.s $f18, $f16, $f4 +/* 0D5244 7F0A0714 4600928D */ trunc.w.s $f10, $f18 +/* 0D5248 7F0A0718 440D5000 */ mfc1 $t5, $f10 +/* 0D524C 7F0A071C 00007812 */ mflo $t7 +/* 0D5250 7F0A0720 010FC821 */ addu $t9, $t0, $t7 +/* 0D5254 7F0A0724 A72D002A */ sh $t5, 0x2a($t9) +/* 0D5258 7F0A0728 8E580000 */ lw $t8, ($s2) +/* 0D525C 7F0A072C C7A60050 */ lwc1 $f6, 0x50($sp) +/* 0D5260 7F0A0730 C6880008 */ lwc1 $f8, 8($s4) +/* 0D5264 7F0A0734 03110019 */ multu $t8, $s1 +/* 0D5268 7F0A0738 8E0B0000 */ lw $t3, ($s0) +/* 0D526C 7F0A073C 46064401 */ sub.s $f16, $f8, $f6 +/* 0D5270 7F0A0740 4600810D */ trunc.w.s $f4, $f16 +/* 0D5274 7F0A0744 440C2000 */ mfc1 $t4, $f4 +/* 0D5278 7F0A0748 00007012 */ mflo $t6 +/* 0D527C 7F0A074C 016E5021 */ addu $t2, $t3, $t6 +/* 0D5280 7F0A0750 A54C002C */ sh $t4, 0x2c($t2) +/* 0D5284 7F0A0754 8E4F0000 */ lw $t7, ($s2) +/* 0D5288 7F0A0758 8E080000 */ lw $t0, ($s0) +/* 0D528C 7F0A075C 01F10019 */ multu $t7, $s1 +/* 0D5290 7F0A0760 00006812 */ mflo $t5 +/* 0D5294 7F0A0764 010DC821 */ addu $t9, $t0, $t5 +/* 0D5298 7F0A0768 A7200030 */ sh $zero, 0x30($t9) +/* 0D529C 7F0A076C 8E580000 */ lw $t8, ($s2) +/* 0D52A0 7F0A0770 8E090000 */ lw $t1, ($s0) +/* 0D52A4 7F0A0774 03110019 */ multu $t8, $s1 +/* 0D52A8 7F0A0778 00005812 */ mflo $t3 +/* 0D52AC 7F0A077C 012B7021 */ addu $t6, $t1, $t3 +/* 0D52B0 7F0A0780 0C002914 */ jal get_random_value +/* 0D52B4 7F0A0784 A5C00032 */ sh $zero, 0x32($t6) +/* 0D52B8 7F0A0788 24010032 */ li $at, 50 +/* 0D52BC 7F0A078C 0041001B */ divu $zero, $v0, $at +/* 0D52C0 7F0A0790 00009810 */ mfhi $s3 +/* 0D52C4 7F0A0794 8E4A0000 */ lw $t2, ($s2) +/* 0D52C8 7F0A0798 8E0C0000 */ lw $t4, ($s0) +/* 0D52CC 7F0A079C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D52D0 7F0A07A0 01510019 */ multu $t2, $s1 +/* 0D52D4 7F0A07A4 44812000 */ mtc1 $at, $f4 +/* 0D52D8 7F0A07A8 00007812 */ mflo $t7 +/* 0D52DC 7F0A07AC 018F4021 */ addu $t0, $t4, $t7 +/* 0D52E0 7F0A07B0 A1130036 */ sb $s3, 0x36($t0) +/* 0D52E4 7F0A07B4 8E590000 */ lw $t9, ($s2) +/* 0D52E8 7F0A07B8 8E0D0000 */ lw $t5, ($s0) +/* 0D52EC 7F0A07BC 03310019 */ multu $t9, $s1 +/* 0D52F0 7F0A07C0 0000C012 */ mflo $t8 +/* 0D52F4 7F0A07C4 01B84821 */ addu $t1, $t5, $t8 +/* 0D52F8 7F0A07C8 A1330035 */ sb $s3, 0x35($t1) +/* 0D52FC 7F0A07CC 8E4E0000 */ lw $t6, ($s2) +/* 0D5300 7F0A07D0 8E0B0000 */ lw $t3, ($s0) +/* 0D5304 7F0A07D4 01D10019 */ multu $t6, $s1 +/* 0D5308 7F0A07D8 00005012 */ mflo $t2 +/* 0D530C 7F0A07DC 016A6021 */ addu $t4, $t3, $t2 +/* 0D5310 7F0A07E0 A1930034 */ sb $s3, 0x34($t4) +/* 0D5314 7F0A07E4 8E590000 */ lw $t9, ($s2) +/* 0D5318 7F0A07E8 8E080000 */ lw $t0, ($s0) +/* 0D531C 7F0A07EC 93AF004B */ lbu $t7, 0x4b($sp) +/* 0D5320 7F0A07F0 03310019 */ multu $t9, $s1 +/* 0D5324 7F0A07F4 00006812 */ mflo $t5 +/* 0D5328 7F0A07F8 010DC021 */ addu $t8, $t0, $t5 +/* 0D532C 7F0A07FC A30F0037 */ sb $t7, 0x37($t8) +/* 0D5330 7F0A0800 8E4A0000 */ lw $t2, ($s2) +/* 0D5334 7F0A0804 C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 0D5338 7F0A0808 C6920000 */ lwc1 $f18, ($s4) +/* 0D533C 7F0A080C 01510019 */ multu $t2, $s1 +/* 0D5340 7F0A0810 8E0B0000 */ lw $t3, ($s0) +/* 0D5344 7F0A0814 460A9201 */ sub.s $f8, $f18, $f10 +/* 0D5348 7F0A0818 4600418D */ trunc.w.s $f6, $f8 +/* 0D534C 7F0A081C 440E3000 */ mfc1 $t6, $f6 +/* 0D5350 7F0A0820 00006012 */ mflo $t4 +/* 0D5354 7F0A0824 016CC821 */ addu $t9, $t3, $t4 +/* 0D5358 7F0A0828 A72E0038 */ sh $t6, 0x38($t9) +/* 0D535C 7F0A082C 8E580000 */ lw $t8, ($s2) +/* 0D5360 7F0A0830 C6900004 */ lwc1 $f16, 4($s4) +/* 0D5364 7F0A0834 8E0F0000 */ lw $t7, ($s0) +/* 0D5368 7F0A0838 03110019 */ multu $t8, $s1 +/* 0D536C 7F0A083C 46048480 */ add.s $f18, $f16, $f4 +/* 0D5370 7F0A0840 4600928D */ trunc.w.s $f10, $f18 +/* 0D5374 7F0A0844 440D5000 */ mfc1 $t5, $f10 +/* 0D5378 7F0A0848 00004812 */ mflo $t1 +/* 0D537C 7F0A084C 01E95021 */ addu $t2, $t7, $t1 +/* 0D5380 7F0A0850 A54D003A */ sh $t5, 0x3a($t2) +/* 0D5384 7F0A0854 8E590000 */ lw $t9, ($s2) +/* 0D5388 7F0A0858 C6880008 */ lwc1 $f8, 8($s4) +/* 0D538C 7F0A085C 8E0E0000 */ lw $t6, ($s0) +/* 0D5390 7F0A0860 03310019 */ multu $t9, $s1 +/* 0D5394 7F0A0864 46144181 */ sub.s $f6, $f8, $f20 +/* 0D5398 7F0A0868 3C0F8009 */ lui $t7, %hi(genericimage) +/* 0D539C 7F0A086C 4600340D */ trunc.w.s $f16, $f6 +/* 0D53A0 7F0A0870 440C8000 */ mfc1 $t4, $f16 +/* 0D53A4 7F0A0874 00004012 */ mflo $t0 +/* 0D53A8 7F0A0878 01C8C021 */ addu $t8, $t6, $t0 +/* 0D53AC 7F0A087C A70C003C */ sh $t4, 0x3c($t8) +/* 0D53B0 7F0A0880 8E4B0000 */ lw $t3, ($s2) +/* 0D53B4 7F0A0884 8DEFD0B8 */ lw $t7, %lo(genericimage)($t7) +/* 0D53B8 7F0A0888 8E0A0000 */ lw $t2, ($s0) +/* 0D53BC 7F0A088C 01710019 */ multu $t3, $s1 +/* 0D53C0 7F0A0890 91E90005 */ lbu $t1, 5($t7) +/* 0D53C4 7F0A0894 00096940 */ sll $t5, $t1, 5 +/* 0D53C8 7F0A0898 0000C812 */ mflo $t9 +/* 0D53CC 7F0A089C 01597021 */ addu $t6, $t2, $t9 +/* 0D53D0 7F0A08A0 A5CD0040 */ sh $t5, 0x40($t6) +/* 0D53D4 7F0A08A4 8E4C0000 */ lw $t4, ($s2) +/* 0D53D8 7F0A08A8 8E080000 */ lw $t0, ($s0) +/* 0D53DC 7F0A08AC 01910019 */ multu $t4, $s1 +/* 0D53E0 7F0A08B0 0000C012 */ mflo $t8 +/* 0D53E4 7F0A08B4 01187821 */ addu $t7, $t0, $t8 +/* 0D53E8 7F0A08B8 0C002914 */ jal get_random_value +/* 0D53EC 7F0A08BC A5E00042 */ sh $zero, 0x42($t7) +/* 0D53F0 7F0A08C0 24010032 */ li $at, 50 +/* 0D53F4 7F0A08C4 0041001B */ divu $zero, $v0, $at +/* 0D53F8 7F0A08C8 00009810 */ mfhi $s3 +/* 0D53FC 7F0A08CC 8E4B0000 */ lw $t3, ($s2) +/* 0D5400 7F0A08D0 8E090000 */ lw $t1, ($s0) +/* 0D5404 7F0A08D4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D5408 7F0A08D8 01710019 */ multu $t3, $s1 +/* 0D540C 7F0A08DC 44813000 */ mtc1 $at, $f6 +/* 0D5410 7F0A08E0 00005012 */ mflo $t2 +/* 0D5414 7F0A08E4 012AC821 */ addu $t9, $t1, $t2 +/* 0D5418 7F0A08E8 A3330046 */ sb $s3, 0x46($t9) +/* 0D541C 7F0A08EC 8E4E0000 */ lw $t6, ($s2) +/* 0D5420 7F0A08F0 8E0D0000 */ lw $t5, ($s0) +/* 0D5424 7F0A08F4 01D10019 */ multu $t6, $s1 +/* 0D5428 7F0A08F8 00006012 */ mflo $t4 +/* 0D542C 7F0A08FC 01AC4021 */ addu $t0, $t5, $t4 +/* 0D5430 7F0A0900 A1130045 */ sb $s3, 0x45($t0) +/* 0D5434 7F0A0904 8E4F0000 */ lw $t7, ($s2) +/* 0D5438 7F0A0908 8E180000 */ lw $t8, ($s0) +/* 0D543C 7F0A090C 01F10019 */ multu $t7, $s1 +/* 0D5440 7F0A0910 00005812 */ mflo $t3 +/* 0D5444 7F0A0914 030B4821 */ addu $t1, $t8, $t3 +/* 0D5448 7F0A0918 A1330044 */ sb $s3, 0x44($t1) +/* 0D544C 7F0A091C 8E4E0000 */ lw $t6, ($s2) +/* 0D5450 7F0A0920 8E190000 */ lw $t9, ($s0) +/* 0D5454 7F0A0924 93AA004B */ lbu $t2, 0x4b($sp) +/* 0D5458 7F0A0928 01D10019 */ multu $t6, $s1 +/* 0D545C 7F0A092C 00006812 */ mflo $t5 +/* 0D5460 7F0A0930 032D6021 */ addu $t4, $t9, $t5 +/* 0D5464 7F0A0934 A18A0047 */ sb $t2, 0x47($t4) +/* 0D5468 7F0A0938 8E4B0000 */ lw $t3, ($s2) +/* 0D546C 7F0A093C C6840000 */ lwc1 $f4, ($s4) +/* 0D5470 7F0A0940 8E180000 */ lw $t8, ($s0) +/* 0D5474 7F0A0944 01710019 */ multu $t3, $s1 +/* 0D5478 7F0A0948 46142481 */ sub.s $f18, $f4, $f20 +/* 0D547C 7F0A094C 4600928D */ trunc.w.s $f10, $f18 +/* 0D5480 7F0A0950 440F5000 */ mfc1 $t7, $f10 +/* 0D5484 7F0A0954 00004812 */ mflo $t1 +/* 0D5488 7F0A0958 03097021 */ addu $t6, $t8, $t1 +/* 0D548C 7F0A095C A5CF0048 */ sh $t7, 0x48($t6) +/* 0D5490 7F0A0960 8E4C0000 */ lw $t4, ($s2) +/* 0D5494 7F0A0964 C6880004 */ lwc1 $f8, 4($s4) +/* 0D5498 7F0A0968 8E0A0000 */ lw $t2, ($s0) +/* 0D549C 7F0A096C 01910019 */ multu $t4, $s1 +/* 0D54A0 7F0A0970 46064400 */ add.s $f16, $f8, $f6 +/* 0D54A4 7F0A0974 4600810D */ trunc.w.s $f4, $f16 +/* 0D54A8 7F0A0978 440D2000 */ mfc1 $t5, $f4 +/* 0D54AC 7F0A097C 00004012 */ mflo $t0 +/* 0D54B0 7F0A0980 01485821 */ addu $t3, $t2, $t0 +/* 0D54B4 7F0A0984 A56D004A */ sh $t5, 0x4a($t3) +/* 0D54B8 7F0A0988 8E4E0000 */ lw $t6, ($s2) +/* 0D54BC 7F0A098C C7AA0050 */ lwc1 $f10, 0x50($sp) +/* 0D54C0 7F0A0990 C6920008 */ lwc1 $f18, 8($s4) +/* 0D54C4 7F0A0994 01D10019 */ multu $t6, $s1 +/* 0D54C8 7F0A0998 8E0F0000 */ lw $t7, ($s0) +/* 0D54CC 7F0A099C 460A9200 */ add.s $f8, $f18, $f10 +/* 0D54D0 7F0A09A0 3C0A8009 */ lui $t2, %hi(genericimage) +/* 0D54D4 7F0A09A4 4600418D */ trunc.w.s $f6, $f8 +/* 0D54D8 7F0A09A8 44093000 */ mfc1 $t1, $f6 +/* 0D54DC 7F0A09AC 0000C812 */ mflo $t9 +/* 0D54E0 7F0A09B0 01F96021 */ addu $t4, $t7, $t9 +/* 0D54E4 7F0A09B4 A589004C */ sh $t1, 0x4c($t4) +/* 0D54E8 7F0A09B8 8E580000 */ lw $t8, ($s2) +/* 0D54EC 7F0A09BC 8D4AD0B8 */ lw $t2, %lo(genericimage)($t2) +/* 0D54F0 7F0A09C0 8E0B0000 */ lw $t3, ($s0) +/* 0D54F4 7F0A09C4 03110019 */ multu $t8, $s1 +/* 0D54F8 7F0A09C8 91480004 */ lbu $t0, 4($t2) +/* 0D54FC 7F0A09CC 3C198009 */ lui $t9, %hi(genericimage) +/* 0D5500 7F0A09D0 00086940 */ sll $t5, $t0, 5 +/* 0D5504 7F0A09D4 00007012 */ mflo $t6 +/* 0D5508 7F0A09D8 016E7821 */ addu $t7, $t3, $t6 +/* 0D550C 7F0A09DC A5ED0050 */ sh $t5, 0x50($t7) +/* 0D5510 7F0A09E0 8E480000 */ lw $t0, ($s2) +/* 0D5514 7F0A09E4 8F39D0B8 */ lw $t9, %lo(genericimage)($t9) +/* 0D5518 7F0A09E8 8E0A0000 */ lw $t2, ($s0) +/* 0D551C 7F0A09EC 01110019 */ multu $t0, $s1 +/* 0D5520 7F0A09F0 93290005 */ lbu $t1, 5($t9) +/* 0D5524 7F0A09F4 00096140 */ sll $t4, $t1, 5 +/* 0D5528 7F0A09F8 0000C012 */ mflo $t8 +/* 0D552C 7F0A09FC 01585821 */ addu $t3, $t2, $t8 +/* 0D5530 7F0A0A00 0C002914 */ jal get_random_value +/* 0D5534 7F0A0A04 A56C0052 */ sh $t4, 0x52($t3) +/* 0D5538 7F0A0A08 24010032 */ li $at, 50 +/* 0D553C 7F0A0A0C 0041001B */ divu $zero, $v0, $at +/* 0D5540 7F0A0A10 00009810 */ mfhi $s3 +/* 0D5544 7F0A0A14 8E4D0000 */ lw $t5, ($s2) +/* 0D5548 7F0A0A18 8E0E0000 */ lw $t6, ($s0) +/* 0D554C 7F0A0A1C 01B10019 */ multu $t5, $s1 +/* 0D5550 7F0A0A20 00007812 */ mflo $t7 +/* 0D5554 7F0A0A24 01CFC821 */ addu $t9, $t6, $t7 +/* 0D5558 7F0A0A28 A3330056 */ sb $s3, 0x56($t9) +/* 0D555C 7F0A0A2C 8E480000 */ lw $t0, ($s2) +/* 0D5560 7F0A0A30 8E090000 */ lw $t1, ($s0) +/* 0D5564 7F0A0A34 01110019 */ multu $t0, $s1 +/* 0D5568 7F0A0A38 00005012 */ mflo $t2 +/* 0D556C 7F0A0A3C 012AC021 */ addu $t8, $t1, $t2 +/* 0D5570 7F0A0A40 A3130055 */ sb $s3, 0x55($t8) +/* 0D5574 7F0A0A44 8E4B0000 */ lw $t3, ($s2) +/* 0D5578 7F0A0A48 8E0C0000 */ lw $t4, ($s0) +/* 0D557C 7F0A0A4C 01710019 */ multu $t3, $s1 +/* 0D5580 7F0A0A50 00006812 */ mflo $t5 +/* 0D5584 7F0A0A54 018D7021 */ addu $t6, $t4, $t5 +/* 0D5588 7F0A0A58 A1D30054 */ sb $s3, 0x54($t6) +/* 0D558C 7F0A0A5C 8E480000 */ lw $t0, ($s2) +/* 0D5590 7F0A0A60 8E190000 */ lw $t9, ($s0) +/* 0D5594 7F0A0A64 93AF004B */ lbu $t7, 0x4b($sp) +/* 0D5598 7F0A0A68 01110019 */ multu $t0, $s1 +/* 0D559C 7F0A0A6C 00004812 */ mflo $t1 +/* 0D55A0 7F0A0A70 03295021 */ addu $t2, $t9, $t1 +/* 0D55A4 7F0A0A74 A14F0057 */ sb $t7, 0x57($t2) +/* 0D55A8 7F0A0A78 8E580000 */ lw $t8, ($s2) +/* 0D55AC 7F0A0A7C 270B0001 */ addiu $t3, $t8, 1 +/* 0D55B0 7F0A0A80 29610014 */ slti $at, $t3, 0x14 +/* 0D55B4 7F0A0A84 14200002 */ bnez $at, .L7F0A0A90 +/* 0D55B8 7F0A0A88 AE4B0000 */ sw $t3, ($s2) +/* 0D55BC 7F0A0A8C AE400000 */ sw $zero, ($s2) +.L7F0A0A90: +/* 0D55C0 7F0A0A90 8FBF0034 */ lw $ra, 0x34($sp) +/* 0D55C4 7F0A0A94 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D55C8 7F0A0A98 8FB00020 */ lw $s0, 0x20($sp) +/* 0D55CC 7F0A0A9C 8FB10024 */ lw $s1, 0x24($sp) +/* 0D55D0 7F0A0AA0 8FB20028 */ lw $s2, 0x28($sp) +/* 0D55D4 7F0A0AA4 8FB3002C */ lw $s3, 0x2c($sp) +/* 0D55D8 7F0A0AA8 8FB40030 */ lw $s4, 0x30($sp) +/* 0D55DC 7F0A0AAC 03E00008 */ jr $ra +/* 0D55E0 7F0A0AB0 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A0AB4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A0AB4 +/* 0D55E4 7F0A0AB4 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0D55E8 7F0A0AB8 AFBF003C */ sw $ra, 0x3c($sp) +/* 0D55EC 7F0A0ABC AFB30028 */ sw $s3, 0x28($sp) +/* 0D55F0 7F0A0AC0 AFB70038 */ sw $s7, 0x38($sp) +/* 0D55F4 7F0A0AC4 AFB60034 */ sw $s6, 0x34($sp) +/* 0D55F8 7F0A0AC8 AFB50030 */ sw $s5, 0x30($sp) +/* 0D55FC 7F0A0ACC AFB4002C */ sw $s4, 0x2c($sp) +/* 0D5600 7F0A0AD0 AFB20024 */ sw $s2, 0x24($sp) +/* 0D5604 7F0A0AD4 AFB10020 */ sw $s1, 0x20($sp) +/* 0D5608 7F0A0AD8 AFB0001C */ sw $s0, 0x1c($sp) +/* 0D560C 7F0A0ADC AFA40040 */ sw $a0, 0x40($sp) +/* 0D5610 7F0A0AE0 0FC26919 */ jal get_num_players +/* 0D5614 7F0A0AE4 2413FFFF */ li $s3, -1 +/* 0D5618 7F0A0AE8 28410002 */ slti $at, $v0, 2 +/* 0D561C 7F0A0AEC 14200003 */ bnez $at, .L7F0A0AFC +/* 0D5620 7F0A0AF0 8FAE0040 */ lw $t6, 0x40($sp) +/* 0D5624 7F0A0AF4 10000054 */ b .L7F0A0C48 +/* 0D5628 7F0A0AF8 8FA20040 */ lw $v0, 0x40($sp) +.L7F0A0AFC: +/* 0D562C 7F0A0AFC 25CF0008 */ addiu $t7, $t6, 8 +/* 0D5630 7F0A0B00 AFAF0040 */ sw $t7, 0x40($sp) +/* 0D5634 7F0A0B04 3C18B700 */ lui $t8, 0xb700 +/* 0D5638 7F0A0B08 24192000 */ li $t9, 8192 +/* 0D563C 7F0A0B0C ADD90004 */ sw $t9, 4($t6) +/* 0D5640 7F0A0B10 ADD80000 */ sw $t8, ($t6) +/* 0D5644 7F0A0B14 8FA90040 */ lw $t1, 0x40($sp) +/* 0D5648 7F0A0B18 3C0C0001 */ lui $t4, (0x00011000 >> 16) # lui $t4, 1 +/* 0D564C 7F0A0B1C 358C1000 */ ori $t4, (0x00011000 & 0xFFFF) # ori $t4, $t4, 0x1000 +/* 0D5650 7F0A0B20 252A0008 */ addiu $t2, $t1, 8 +/* 0D5654 7F0A0B24 AFAA0040 */ sw $t2, 0x40($sp) +/* 0D5658 7F0A0B28 3C0BB600 */ lui $t3, 0xb600 +/* 0D565C 7F0A0B2C AD2B0000 */ sw $t3, ($t1) +/* 0D5660 7F0A0B30 AD2C0004 */ sw $t4, 4($t1) +/* 0D5664 7F0A0B34 8FAD0040 */ lw $t5, 0x40($sp) +/* 0D5668 7F0A0B38 3C0FBA00 */ lui $t7, (0xBA000602 >> 16) # lui $t7, 0xba00 +/* 0D566C 7F0A0B3C 35EF0602 */ ori $t7, (0xBA000602 & 0xFFFF) # ori $t7, $t7, 0x602 +/* 0D5670 7F0A0B40 25AE0008 */ addiu $t6, $t5, 8 +/* 0D5674 7F0A0B44 AFAE0040 */ sw $t6, 0x40($sp) +/* 0D5678 7F0A0B48 24180080 */ li $t8, 128 +/* 0D567C 7F0A0B4C 24190002 */ li $t9, 2 +/* 0D5680 7F0A0B50 3C058009 */ lui $a1, %hi(genericimage) +/* 0D5684 7F0A0B54 ADB80004 */ sw $t8, 4($t5) +/* 0D5688 7F0A0B58 ADAF0000 */ sw $t7, ($t5) +/* 0D568C 7F0A0B5C AFB90010 */ sw $t9, 0x10($sp) +/* 0D5690 7F0A0B60 8CA5D0B8 */ lw $a1, %lo(genericimage)($a1) +/* 0D5694 7F0A0B64 27A40040 */ addiu $a0, $sp, 0x40 +/* 0D5698 7F0A0B68 24060004 */ li $a2, 4 +/* 0D569C 7F0A0B6C 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 0D56A0 7F0A0B70 24070001 */ li $a3, 1 +/* 0D56A4 7F0A0B74 3C15B100 */ lui $s5, (0xB1000032 >> 16) # lui $s5, 0xb100 +/* 0D56A8 7F0A0B78 3C140430 */ lui $s4, (0x04300040 >> 16) # lui $s4, 0x430 +/* 0D56AC 7F0A0B7C 3C128008 */ lui $s2, %hi(ptr_scorch_buf) +/* 0D56B0 7F0A0B80 2652A150 */ addiu $s2, %lo(ptr_scorch_buf) # addiu $s2, $s2, -0x5eb0 +/* 0D56B4 7F0A0B84 36940040 */ ori $s4, (0x04300040 & 0xFFFF) # ori $s4, $s4, 0x40 +/* 0D56B8 7F0A0B88 36B50032 */ ori $s5, (0xB1000032 & 0xFFFF) # ori $s5, $s5, 0x32 +/* 0D56BC 7F0A0B8C 00008025 */ move $s0, $zero +/* 0D56C0 7F0A0B90 241706E0 */ li $s7, 1760 +/* 0D56C4 7F0A0B94 24162010 */ li $s6, 8208 +/* 0D56C8 7F0A0B98 8E490000 */ lw $t1, ($s2) +.L7F0A0B9C: +/* 0D56CC 7F0A0B9C 01305021 */ addu $t2, $t1, $s0 +/* 0D56D0 7F0A0BA0 85450000 */ lh $a1, ($t2) +/* 0D56D4 7F0A0BA4 04A2001D */ bltzl $a1, .L7F0A0C1C +/* 0D56D8 7F0A0BA8 26100058 */ addiu $s0, $s0, 0x58 +/* 0D56DC 7F0A0BAC 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 0D56E0 7F0A0BB0 00A02025 */ move $a0, $a1 +/* 0D56E4 7F0A0BB4 50400019 */ beql $v0, $zero, .L7F0A0C1C +/* 0D56E8 7F0A0BB8 26100058 */ addiu $s0, $s0, 0x58 +/* 0D56EC 7F0A0BBC 8E4B0000 */ lw $t3, ($s2) +/* 0D56F0 7F0A0BC0 8FA40040 */ lw $a0, 0x40($sp) +/* 0D56F4 7F0A0BC4 01706021 */ addu $t4, $t3, $s0 +/* 0D56F8 7F0A0BC8 85850000 */ lh $a1, ($t4) +/* 0D56FC 7F0A0BCC 52650005 */ beql $s3, $a1, .L7F0A0BE4 +/* 0D5700 7F0A0BD0 8FB10040 */ lw $s1, 0x40($sp) +/* 0D5704 7F0A0BD4 0FC2F271 */ jal sub_GAME_7F0BC9C4 +/* 0D5708 7F0A0BD8 00A09825 */ move $s3, $a1 +/* 0D570C 7F0A0BDC AFA20040 */ sw $v0, 0x40($sp) +/* 0D5710 7F0A0BE0 8FB10040 */ lw $s1, 0x40($sp) +.L7F0A0BE4: +/* 0D5714 7F0A0BE4 262E0008 */ addiu $t6, $s1, 8 +/* 0D5718 7F0A0BE8 AFAE0040 */ sw $t6, 0x40($sp) +/* 0D571C 7F0A0BEC AE340000 */ sw $s4, ($s1) +/* 0D5720 7F0A0BF0 8E4F0000 */ lw $t7, ($s2) +/* 0D5724 7F0A0BF4 01F02021 */ addu $a0, $t7, $s0 +/* 0D5728 7F0A0BF8 0C003A2C */ jal osVirtualToPhysical +/* 0D572C 7F0A0BFC 24840018 */ addiu $a0, $a0, 0x18 +/* 0D5730 7F0A0C00 AE220004 */ sw $v0, 4($s1) +/* 0D5734 7F0A0C04 8FB80040 */ lw $t8, 0x40($sp) +/* 0D5738 7F0A0C08 27190008 */ addiu $t9, $t8, 8 +/* 0D573C 7F0A0C0C AFB90040 */ sw $t9, 0x40($sp) +/* 0D5740 7F0A0C10 AF160004 */ sw $s6, 4($t8) +/* 0D5744 7F0A0C14 AF150000 */ sw $s5, ($t8) +/* 0D5748 7F0A0C18 26100058 */ addiu $s0, $s0, 0x58 +.L7F0A0C1C: +/* 0D574C 7F0A0C1C 5617FFDF */ bnel $s0, $s7, .L7F0A0B9C +/* 0D5750 7F0A0C20 8E490000 */ lw $t1, ($s2) +/* 0D5754 7F0A0C24 8FA90040 */ lw $t1, 0x40($sp) +/* 0D5758 7F0A0C28 3C0BBA00 */ lui $t3, (0xBA000602 >> 16) # lui $t3, 0xba00 +/* 0D575C 7F0A0C2C 356B0602 */ ori $t3, (0xBA000602 & 0xFFFF) # ori $t3, $t3, 0x602 +/* 0D5760 7F0A0C30 252A0008 */ addiu $t2, $t1, 8 +/* 0D5764 7F0A0C34 AFAA0040 */ sw $t2, 0x40($sp) +/* 0D5768 7F0A0C38 240C0040 */ li $t4, 64 +/* 0D576C 7F0A0C3C AD2C0004 */ sw $t4, 4($t1) +/* 0D5770 7F0A0C40 AD2B0000 */ sw $t3, ($t1) +/* 0D5774 7F0A0C44 8FA20040 */ lw $v0, 0x40($sp) +.L7F0A0C48: +/* 0D5778 7F0A0C48 8FBF003C */ lw $ra, 0x3c($sp) +/* 0D577C 7F0A0C4C 8FB0001C */ lw $s0, 0x1c($sp) +/* 0D5780 7F0A0C50 8FB10020 */ lw $s1, 0x20($sp) +/* 0D5784 7F0A0C54 8FB20024 */ lw $s2, 0x24($sp) +/* 0D5788 7F0A0C58 8FB30028 */ lw $s3, 0x28($sp) +/* 0D578C 7F0A0C5C 8FB4002C */ lw $s4, 0x2c($sp) +/* 0D5790 7F0A0C60 8FB50030 */ lw $s5, 0x30($sp) +/* 0D5794 7F0A0C64 8FB60034 */ lw $s6, 0x34($sp) +/* 0D5798 7F0A0C68 8FB70038 */ lw $s7, 0x38($sp) +/* 0D579C 7F0A0C6C 03E00008 */ jr $ra +/* 0D57A0 7F0A0C70 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A0C74(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A0C74 +/* 0D57A4 7F0A0C74 44802000 */ mtc1 $zero, $f4 +/* 0D57A8 7F0A0C78 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D57AC 7F0A0C7C 460C203E */ c.le.s $f4, $f12 +/* 0D57B0 7F0A0C80 00000000 */ nop +/* 0D57B4 7F0A0C84 4502000A */ bc1fl .L7F0A0CB0 +/* 0D57B8 7F0A0C88 44818000 */ mtc1 $at, $f16 +/* 0D57BC 7F0A0C8C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D57C0 7F0A0C90 44813000 */ mtc1 $at, $f6 +/* 0D57C4 7F0A0C94 00000000 */ nop +/* 0D57C8 7F0A0C98 46066200 */ add.s $f8, $f12, $f6 +/* 0D57CC 7F0A0C9C 4600428D */ trunc.w.s $f10, $f8 +/* 0D57D0 7F0A0CA0 44025000 */ mfc1 $v0, $f10 +/* 0D57D4 7F0A0CA4 03E00008 */ jr $ra +/* 0D57D8 7F0A0CA8 00000000 */ nop + +/* 0D57DC 7F0A0CAC 44818000 */ mtc1 $at, $f16 +.L7F0A0CB0: +/* 0D57E0 7F0A0CB0 00000000 */ nop +/* 0D57E4 7F0A0CB4 46106481 */ sub.s $f18, $f12, $f16 +/* 0D57E8 7F0A0CB8 4600910D */ trunc.w.s $f4, $f18 +/* 0D57EC 7F0A0CBC 44022000 */ mfc1 $v0, $f4 +/* 0D57F0 7F0A0CC0 00000000 */ nop +/* 0D57F4 7F0A0CC4 03E00008 */ jr $ra +/* 0D57F8 7F0A0CC8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A0CCC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A0CCC +/* 0D57FC 7F0A0CCC AFA50004 */ sw $a1, 4($sp) +/* 0D5800 7F0A0CD0 00057600 */ sll $t6, $a1, 0x18 +/* 0D5804 7F0A0CD4 3C068008 */ lui $a2, %hi(ptr_bullet_impact_buf) +/* 0D5808 7F0A0CD8 000E2E03 */ sra $a1, $t6, 0x18 +/* 0D580C 7F0A0CDC 24C6A154 */ addiu $a2, %lo(ptr_bullet_impact_buf) # addiu $a2, $a2, -0x5eac +/* 0D5810 7F0A0CE0 00001825 */ move $v1, $zero +/* 0D5814 7F0A0CE4 24081F40 */ li $t0, 8000 +/* 0D5818 7F0A0CE8 2407FFFF */ li $a3, -1 +/* 0D581C 7F0A0CEC 8CD80000 */ lw $t8, ($a2) +.L7F0A0CF0: +/* 0D5820 7F0A0CF0 03031021 */ addu $v0, $t8, $v1 +/* 0D5824 7F0A0CF4 8C590048 */ lw $t9, 0x48($v0) +/* 0D5828 7F0A0CF8 54990008 */ bnel $a0, $t9, .L7F0A0D1C +/* 0D582C 7F0A0CFC 8C4B0098 */ lw $t3, 0x98($v0) +/* 0D5830 7F0A0D00 8049004D */ lb $t1, 0x4d($v0) +/* 0D5834 7F0A0D04 54A90005 */ bnel $a1, $t1, .L7F0A0D1C +/* 0D5838 7F0A0D08 8C4B0098 */ lw $t3, 0x98($v0) +/* 0D583C 7F0A0D0C A4470000 */ sh $a3, ($v0) +/* 0D5840 7F0A0D10 8CCA0000 */ lw $t2, ($a2) +/* 0D5844 7F0A0D14 01431021 */ addu $v0, $t2, $v1 +/* 0D5848 7F0A0D18 8C4B0098 */ lw $t3, 0x98($v0) +.L7F0A0D1C: +/* 0D584C 7F0A0D1C 548B0008 */ bnel $a0, $t3, .L7F0A0D40 +/* 0D5850 7F0A0D20 8C4E00E8 */ lw $t6, 0xe8($v0) +/* 0D5854 7F0A0D24 804C009D */ lb $t4, 0x9d($v0) +/* 0D5858 7F0A0D28 54AC0005 */ bnel $a1, $t4, .L7F0A0D40 +/* 0D585C 7F0A0D2C 8C4E00E8 */ lw $t6, 0xe8($v0) +/* 0D5860 7F0A0D30 A4470050 */ sh $a3, 0x50($v0) +/* 0D5864 7F0A0D34 8CCD0000 */ lw $t5, ($a2) +/* 0D5868 7F0A0D38 01A31021 */ addu $v0, $t5, $v1 +/* 0D586C 7F0A0D3C 8C4E00E8 */ lw $t6, 0xe8($v0) +.L7F0A0D40: +/* 0D5870 7F0A0D40 548E0008 */ bnel $a0, $t6, .L7F0A0D64 +/* 0D5874 7F0A0D44 8C590138 */ lw $t9, 0x138($v0) +/* 0D5878 7F0A0D48 804F00ED */ lb $t7, 0xed($v0) +/* 0D587C 7F0A0D4C 54AF0005 */ bnel $a1, $t7, .L7F0A0D64 +/* 0D5880 7F0A0D50 8C590138 */ lw $t9, 0x138($v0) +/* 0D5884 7F0A0D54 A44700A0 */ sh $a3, 0xa0($v0) +/* 0D5888 7F0A0D58 8CD80000 */ lw $t8, ($a2) +/* 0D588C 7F0A0D5C 03031021 */ addu $v0, $t8, $v1 +/* 0D5890 7F0A0D60 8C590138 */ lw $t9, 0x138($v0) +.L7F0A0D64: +/* 0D5894 7F0A0D64 24630140 */ addiu $v1, $v1, 0x140 +/* 0D5898 7F0A0D68 14990005 */ bne $a0, $t9, .L7F0A0D80 +/* 0D589C 7F0A0D6C 00000000 */ nop +/* 0D58A0 7F0A0D70 8049013D */ lb $t1, 0x13d($v0) +/* 0D58A4 7F0A0D74 14A90002 */ bne $a1, $t1, .L7F0A0D80 +/* 0D58A8 7F0A0D78 00000000 */ nop +/* 0D58AC 7F0A0D7C A44700F0 */ sh $a3, 0xf0($v0) +.L7F0A0D80: +/* 0D58B0 7F0A0D80 5468FFDB */ bnel $v1, $t0, .L7F0A0CF0 +/* 0D58B4 7F0A0D84 8CD80000 */ lw $t8, ($a2) +/* 0D58B8 7F0A0D88 03E00008 */ jr $ra +/* 0D58BC 7F0A0D8C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A0D90(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A0D90 +/* 0D58C0 7F0A0D90 3C078004 */ lui $a3, %hi(D_8004080C) +/* 0D58C4 7F0A0D94 3C058008 */ lui $a1, %hi(ptr_bullet_impact_buf) +/* 0D58C8 7F0A0D98 24A5A154 */ addiu $a1, %lo(ptr_bullet_impact_buf) # addiu $a1, $a1, -0x5eac +/* 0D58CC 7F0A0D9C 24E7080C */ addiu $a3, %lo(D_8004080C) # addiu $a3, $a3, 0x80c +/* 0D58D0 7F0A0DA0 00001825 */ move $v1, $zero +/* 0D58D4 7F0A0DA4 240A1F40 */ li $t2, 8000 +/* 0D58D8 7F0A0DA8 2409FFFF */ li $t1, -1 +/* 0D58DC 7F0A0DAC 2408000C */ li $t0, 12 +/* 0D58E0 7F0A0DB0 24060002 */ li $a2, 2 +/* 0D58E4 7F0A0DB4 8CAE0000 */ lw $t6, ($a1) +.L7F0A0DB8: +/* 0D58E8 7F0A0DB8 01C31021 */ addu $v0, $t6, $v1 +/* 0D58EC 7F0A0DBC 8C4F0048 */ lw $t7, 0x48($v0) +/* 0D58F0 7F0A0DC0 548F000C */ bnel $a0, $t7, .L7F0A0DF4 +/* 0D58F4 7F0A0DC4 8C4E0098 */ lw $t6, 0x98($v0) +/* 0D58F8 7F0A0DC8 84580002 */ lh $t8, 2($v0) +/* 0D58FC 7F0A0DCC 03080019 */ multu $t8, $t0 +/* 0D5900 7F0A0DD0 0000C812 */ mflo $t9 +/* 0D5904 7F0A0DD4 00F95821 */ addu $t3, $a3, $t9 +/* 0D5908 7F0A0DD8 916C0009 */ lbu $t4, 9($t3) +/* 0D590C 7F0A0DDC 54CC0005 */ bnel $a2, $t4, .L7F0A0DF4 +/* 0D5910 7F0A0DE0 8C4E0098 */ lw $t6, 0x98($v0) +/* 0D5914 7F0A0DE4 A4490000 */ sh $t1, ($v0) +/* 0D5918 7F0A0DE8 8CAD0000 */ lw $t5, ($a1) +/* 0D591C 7F0A0DEC 01A31021 */ addu $v0, $t5, $v1 +/* 0D5920 7F0A0DF0 8C4E0098 */ lw $t6, 0x98($v0) +.L7F0A0DF4: +/* 0D5924 7F0A0DF4 548E000C */ bnel $a0, $t6, .L7F0A0E28 +/* 0D5928 7F0A0DF8 8C4D00E8 */ lw $t5, 0xe8($v0) +/* 0D592C 7F0A0DFC 844F0052 */ lh $t7, 0x52($v0) +/* 0D5930 7F0A0E00 01E80019 */ multu $t7, $t0 +/* 0D5934 7F0A0E04 0000C012 */ mflo $t8 +/* 0D5938 7F0A0E08 00F8C821 */ addu $t9, $a3, $t8 +/* 0D593C 7F0A0E0C 932B0009 */ lbu $t3, 9($t9) +/* 0D5940 7F0A0E10 54CB0005 */ bnel $a2, $t3, .L7F0A0E28 +/* 0D5944 7F0A0E14 8C4D00E8 */ lw $t5, 0xe8($v0) +/* 0D5948 7F0A0E18 A4490050 */ sh $t1, 0x50($v0) +/* 0D594C 7F0A0E1C 8CAC0000 */ lw $t4, ($a1) +/* 0D5950 7F0A0E20 01831021 */ addu $v0, $t4, $v1 +/* 0D5954 7F0A0E24 8C4D00E8 */ lw $t5, 0xe8($v0) +.L7F0A0E28: +/* 0D5958 7F0A0E28 548D000C */ bnel $a0, $t5, .L7F0A0E5C +/* 0D595C 7F0A0E2C 8C4C0138 */ lw $t4, 0x138($v0) +/* 0D5960 7F0A0E30 844E00A2 */ lh $t6, 0xa2($v0) +/* 0D5964 7F0A0E34 01C80019 */ multu $t6, $t0 +/* 0D5968 7F0A0E38 00007812 */ mflo $t7 +/* 0D596C 7F0A0E3C 00EFC021 */ addu $t8, $a3, $t7 +/* 0D5970 7F0A0E40 93190009 */ lbu $t9, 9($t8) +/* 0D5974 7F0A0E44 54D90005 */ bnel $a2, $t9, .L7F0A0E5C +/* 0D5978 7F0A0E48 8C4C0138 */ lw $t4, 0x138($v0) +/* 0D597C 7F0A0E4C A44900A0 */ sh $t1, 0xa0($v0) +/* 0D5980 7F0A0E50 8CAB0000 */ lw $t3, ($a1) +/* 0D5984 7F0A0E54 01631021 */ addu $v0, $t3, $v1 +/* 0D5988 7F0A0E58 8C4C0138 */ lw $t4, 0x138($v0) +.L7F0A0E5C: +/* 0D598C 7F0A0E5C 24630140 */ addiu $v1, $v1, 0x140 +/* 0D5990 7F0A0E60 148C0009 */ bne $a0, $t4, .L7F0A0E88 +/* 0D5994 7F0A0E64 00000000 */ nop +/* 0D5998 7F0A0E68 844D00F2 */ lh $t5, 0xf2($v0) +/* 0D599C 7F0A0E6C 01A80019 */ multu $t5, $t0 +/* 0D59A0 7F0A0E70 00007012 */ mflo $t6 +/* 0D59A4 7F0A0E74 00EE7821 */ addu $t7, $a3, $t6 +/* 0D59A8 7F0A0E78 91F80009 */ lbu $t8, 9($t7) +/* 0D59AC 7F0A0E7C 14D80002 */ bne $a2, $t8, .L7F0A0E88 +/* 0D59B0 7F0A0E80 00000000 */ nop +/* 0D59B4 7F0A0E84 A44900F0 */ sh $t1, 0xf0($v0) +.L7F0A0E88: +/* 0D59B8 7F0A0E88 546AFFCB */ bnel $v1, $t2, .L7F0A0DB8 +/* 0D59BC 7F0A0E8C 8CAE0000 */ lw $t6, ($a1) +/* 0D59C0 7F0A0E90 03E00008 */ jr $ra +/* 0D59C4 7F0A0E94 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A0E98(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A0E98 +/* 0D59C8 7F0A0E98 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 0D59CC 7F0A0E9C 44811000 */ mtc1 $at, $f2 +/* 0D59D0 7F0A0EA0 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0D59D4 7F0A0EA4 3C068008 */ lui $a2, %hi(ptr_bullet_impact_buf) +/* 0D59D8 7F0A0EA8 44810000 */ mtc1 $at, $f0 +/* 0D59DC 7F0A0EAC 24C6A154 */ addiu $a2, %lo(ptr_bullet_impact_buf) # addiu $a2, $a2, -0x5eac +/* 0D59E0 7F0A0EB0 00001025 */ move $v0, $zero +/* 0D59E4 7F0A0EB4 2408000A */ li $t0, 10 +/* 0D59E8 7F0A0EB8 24070050 */ li $a3, 80 +/* 0D59EC 7F0A0EBC 44822000 */ mtc1 $v0, $f4 +.L7F0A0EC0: +/* 0D59F0 7F0A0EC0 24030001 */ li $v1, 1 +/* 0D59F4 7F0A0EC4 00870019 */ multu $a0, $a3 +/* 0D59F8 7F0A0EC8 468021A0 */ cvt.s.w $f6, $f4 +/* 0D59FC 7F0A0ECC 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0D5A00 7F0A0ED0 46003203 */ div.s $f8, $f6, $f0 +/* 0D5A04 7F0A0ED4 00002812 */ mflo $a1 +/* 0D5A08 7F0A0ED8 46024282 */ mul.s $f10, $f8, $f2 +/* 0D5A0C 7F0A0EDC 444EF800 */ cfc1 $t6, $31 +/* 0D5A10 7F0A0EE0 44C3F800 */ ctc1 $v1, $31 +/* 0D5A14 7F0A0EE4 00000000 */ nop +/* 0D5A18 7F0A0EE8 46005424 */ cvt.w.s $f16, $f10 +/* 0D5A1C 7F0A0EEC 4443F800 */ cfc1 $v1, $31 +/* 0D5A20 7F0A0EF0 00000000 */ nop +/* 0D5A24 7F0A0EF4 30630078 */ andi $v1, $v1, 0x78 +/* 0D5A28 7F0A0EF8 50600013 */ beql $v1, $zero, .L7F0A0F48 +/* 0D5A2C 7F0A0EFC 44038000 */ mfc1 $v1, $f16 +/* 0D5A30 7F0A0F00 44818000 */ mtc1 $at, $f16 +/* 0D5A34 7F0A0F04 24030001 */ li $v1, 1 +/* 0D5A38 7F0A0F08 46105401 */ sub.s $f16, $f10, $f16 +/* 0D5A3C 7F0A0F0C 44C3F800 */ ctc1 $v1, $31 +/* 0D5A40 7F0A0F10 00000000 */ nop +/* 0D5A44 7F0A0F14 46008424 */ cvt.w.s $f16, $f16 +/* 0D5A48 7F0A0F18 4443F800 */ cfc1 $v1, $31 +/* 0D5A4C 7F0A0F1C 00000000 */ nop +/* 0D5A50 7F0A0F20 30630078 */ andi $v1, $v1, 0x78 +/* 0D5A54 7F0A0F24 14600005 */ bnez $v1, .L7F0A0F3C +/* 0D5A58 7F0A0F28 00000000 */ nop +/* 0D5A5C 7F0A0F2C 44038000 */ mfc1 $v1, $f16 +/* 0D5A60 7F0A0F30 3C018000 */ lui $at, 0x8000 +/* 0D5A64 7F0A0F34 10000007 */ b .L7F0A0F54 +/* 0D5A68 7F0A0F38 00611825 */ or $v1, $v1, $at +.L7F0A0F3C: +/* 0D5A6C 7F0A0F3C 10000005 */ b .L7F0A0F54 +/* 0D5A70 7F0A0F40 2403FFFF */ li $v1, -1 +/* 0D5A74 7F0A0F44 44038000 */ mfc1 $v1, $f16 +.L7F0A0F48: +/* 0D5A78 7F0A0F48 00000000 */ nop +/* 0D5A7C 7F0A0F4C 0460FFFB */ bltz $v1, .L7F0A0F3C +/* 0D5A80 7F0A0F50 00000000 */ nop +.L7F0A0F54: +/* 0D5A84 7F0A0F54 8CCF0000 */ lw $t7, ($a2) +/* 0D5A88 7F0A0F58 44CEF800 */ ctc1 $t6, $31 +/* 0D5A8C 7F0A0F5C 244E0001 */ addiu $t6, $v0, 1 +/* 0D5A90 7F0A0F60 01E5C021 */ addu $t8, $t7, $a1 +/* 0D5A94 7F0A0F64 A3030047 */ sb $v1, 0x47($t8) +/* 0D5A98 7F0A0F68 8CD90000 */ lw $t9, ($a2) +/* 0D5A9C 7F0A0F6C 448E9000 */ mtc1 $t6, $f18 +/* 0D5AA0 7F0A0F70 24840001 */ addiu $a0, $a0, 1 +/* 0D5AA4 7F0A0F74 03254821 */ addu $t1, $t9, $a1 +/* 0D5AA8 7F0A0F78 A1230037 */ sb $v1, 0x37($t1) +/* 0D5AAC 7F0A0F7C 8CCA0000 */ lw $t2, ($a2) +/* 0D5AB0 7F0A0F80 46809120 */ cvt.s.w $f4, $f18 +/* 0D5AB4 7F0A0F84 28810064 */ slti $at, $a0, 0x64 +/* 0D5AB8 7F0A0F88 01455821 */ addu $t3, $t2, $a1 +/* 0D5ABC 7F0A0F8C A1630027 */ sb $v1, 0x27($t3) +/* 0D5AC0 7F0A0F90 8CCC0000 */ lw $t4, ($a2) +/* 0D5AC4 7F0A0F94 24420002 */ addiu $v0, $v0, 2 +/* 0D5AC8 7F0A0F98 46002183 */ div.s $f6, $f4, $f0 +/* 0D5ACC 7F0A0F9C 01856821 */ addu $t5, $t4, $a1 +/* 0D5AD0 7F0A0FA0 A1A30017 */ sb $v1, 0x17($t5) +/* 0D5AD4 7F0A0FA4 14200003 */ bnez $at, .L7F0A0FB4 +/* 0D5AD8 7F0A0FA8 24A50050 */ addiu $a1, $a1, 0x50 +/* 0D5ADC 7F0A0FAC 00002025 */ move $a0, $zero +/* 0D5AE0 7F0A0FB0 00002825 */ move $a1, $zero +.L7F0A0FB4: +/* 0D5AE4 7F0A0FB4 46023202 */ mul.s $f8, $f6, $f2 +/* 0D5AE8 7F0A0FB8 24030001 */ li $v1, 1 +/* 0D5AEC 7F0A0FBC 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0D5AF0 7F0A0FC0 444FF800 */ cfc1 $t7, $31 +/* 0D5AF4 7F0A0FC4 44C3F800 */ ctc1 $v1, $31 +/* 0D5AF8 7F0A0FC8 00000000 */ nop +/* 0D5AFC 7F0A0FCC 460042A4 */ cvt.w.s $f10, $f8 +/* 0D5B00 7F0A0FD0 4443F800 */ cfc1 $v1, $31 +/* 0D5B04 7F0A0FD4 00000000 */ nop +/* 0D5B08 7F0A0FD8 30630078 */ andi $v1, $v1, 0x78 +/* 0D5B0C 7F0A0FDC 50600013 */ beql $v1, $zero, .L7F0A102C +/* 0D5B10 7F0A0FE0 44035000 */ mfc1 $v1, $f10 +/* 0D5B14 7F0A0FE4 44815000 */ mtc1 $at, $f10 +/* 0D5B18 7F0A0FE8 24030001 */ li $v1, 1 +/* 0D5B1C 7F0A0FEC 460A4281 */ sub.s $f10, $f8, $f10 +/* 0D5B20 7F0A0FF0 44C3F800 */ ctc1 $v1, $31 +/* 0D5B24 7F0A0FF4 00000000 */ nop +/* 0D5B28 7F0A0FF8 460052A4 */ cvt.w.s $f10, $f10 +/* 0D5B2C 7F0A0FFC 4443F800 */ cfc1 $v1, $31 +/* 0D5B30 7F0A1000 00000000 */ nop +/* 0D5B34 7F0A1004 30630078 */ andi $v1, $v1, 0x78 +/* 0D5B38 7F0A1008 14600005 */ bnez $v1, .L7F0A1020 +/* 0D5B3C 7F0A100C 00000000 */ nop +/* 0D5B40 7F0A1010 44035000 */ mfc1 $v1, $f10 +/* 0D5B44 7F0A1014 3C018000 */ lui $at, 0x8000 +/* 0D5B48 7F0A1018 10000007 */ b .L7F0A1038 +/* 0D5B4C 7F0A101C 00611825 */ or $v1, $v1, $at +.L7F0A1020: +/* 0D5B50 7F0A1020 10000005 */ b .L7F0A1038 +/* 0D5B54 7F0A1024 2403FFFF */ li $v1, -1 +/* 0D5B58 7F0A1028 44035000 */ mfc1 $v1, $f10 +.L7F0A102C: +/* 0D5B5C 7F0A102C 00000000 */ nop +/* 0D5B60 7F0A1030 0460FFFB */ bltz $v1, .L7F0A1020 +/* 0D5B64 7F0A1034 00000000 */ nop +.L7F0A1038: +/* 0D5B68 7F0A1038 8CD80000 */ lw $t8, ($a2) +/* 0D5B6C 7F0A103C 24840001 */ addiu $a0, $a0, 1 +/* 0D5B70 7F0A1040 28810064 */ slti $at, $a0, 0x64 +/* 0D5B74 7F0A1044 0305C821 */ addu $t9, $t8, $a1 +/* 0D5B78 7F0A1048 A3230047 */ sb $v1, 0x47($t9) +/* 0D5B7C 7F0A104C 8CC90000 */ lw $t1, ($a2) +/* 0D5B80 7F0A1050 44CFF800 */ ctc1 $t7, $31 +/* 0D5B84 7F0A1054 01255021 */ addu $t2, $t1, $a1 +/* 0D5B88 7F0A1058 A1430037 */ sb $v1, 0x37($t2) +/* 0D5B8C 7F0A105C 8CCB0000 */ lw $t3, ($a2) +/* 0D5B90 7F0A1060 01656021 */ addu $t4, $t3, $a1 +/* 0D5B94 7F0A1064 A1830027 */ sb $v1, 0x27($t4) +/* 0D5B98 7F0A1068 8CCD0000 */ lw $t5, ($a2) +/* 0D5B9C 7F0A106C 01A57021 */ addu $t6, $t5, $a1 +/* 0D5BA0 7F0A1070 14200002 */ bnez $at, .L7F0A107C +/* 0D5BA4 7F0A1074 A1C30017 */ sb $v1, 0x17($t6) +/* 0D5BA8 7F0A1078 00002025 */ move $a0, $zero +.L7F0A107C: +/* 0D5BAC 7F0A107C 5448FF90 */ bnel $v0, $t0, .L7F0A0EC0 +/* 0D5BB0 7F0A1080 44822000 */ mtc1 $v0, $f4 +/* 0D5BB4 7F0A1084 03E00008 */ jr $ra +/* 0D5BB8 7F0A1088 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A108C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A108C +/* 0D5BBC 7F0A108C 27BDFF10 */ addiu $sp, $sp, -0xf0 +/* 0D5BC0 7F0A1090 3C0E8004 */ lui $t6, %hi(D_80040930) +/* 0D5BC4 7F0A1094 AFBF0034 */ sw $ra, 0x34($sp) +/* 0D5BC8 7F0A1098 AFB60030 */ sw $s6, 0x30($sp) +/* 0D5BCC 7F0A109C AFB5002C */ sw $s5, 0x2c($sp) +/* 0D5BD0 7F0A10A0 AFB40028 */ sw $s4, 0x28($sp) +/* 0D5BD4 7F0A10A4 AFB30024 */ sw $s3, 0x24($sp) +/* 0D5BD8 7F0A10A8 AFB20020 */ sw $s2, 0x20($sp) +/* 0D5BDC 7F0A10AC AFB1001C */ sw $s1, 0x1c($sp) +/* 0D5BE0 7F0A10B0 AFB00018 */ sw $s0, 0x18($sp) +/* 0D5BE4 7F0A10B4 AFA600F8 */ sw $a2, 0xf8($sp) +/* 0D5BE8 7F0A10B8 AFA700FC */ sw $a3, 0xfc($sp) +/* 0D5BEC 7F0A10BC 25CE0930 */ addiu $t6, %lo(D_80040930) # addiu $t6, $t6, 0x930 +/* 0D5BF0 7F0A10C0 8DC10000 */ lw $at, ($t6) +/* 0D5BF4 7F0A10C4 27B500E0 */ addiu $s5, $sp, 0xe0 +/* 0D5BF8 7F0A10C8 00808825 */ move $s1, $a0 +/* 0D5BFC 7F0A10CC AEA10000 */ sw $at, ($s5) +/* 0D5C00 7F0A10D0 8DD90004 */ lw $t9, 4($t6) +/* 0D5C04 7F0A10D4 00A08025 */ move $s0, $a1 +/* 0D5C08 7F0A10D8 2404000F */ li $a0, 15 +/* 0D5C0C 7F0A10DC AEB90004 */ sw $t9, 4($s5) +/* 0D5C10 7F0A10E0 8DC10008 */ lw $at, 8($t6) +/* 0D5C14 7F0A10E4 AEA10008 */ sw $at, 8($s5) +/* 0D5C18 7F0A10E8 8DD9000C */ lw $t9, 0xc($t6) +/* 0D5C1C 7F0A10EC 0FC249EF */ jal cheatCheckIfOn +/* 0D5C20 7F0A10F0 AEB9000C */ sw $t9, 0xc($s5) +/* 0D5C24 7F0A10F4 10400003 */ beqz $v0, .L7F0A1104 +/* 0D5C28 7F0A10F8 3C0A8004 */ lui $t2, %hi(D_8004080C) +/* 0D5C2C 7F0A10FC 24080010 */ li $t0, 16 +/* 0D5C30 7F0A1100 A7A800FA */ sh $t0, 0xfa($sp) +.L7F0A1104: +/* 0D5C34 7F0A1104 C6240000 */ lwc1 $f4, ($s1) +/* 0D5C38 7F0A1108 87B400FA */ lh $s4, 0xfa($sp) +/* 0D5C3C 7F0A110C 254A080C */ addiu $t2, %lo(D_8004080C) # addiu $t2, $t2, 0x80c +/* 0D5C40 7F0A1110 E7A400A0 */ swc1 $f4, 0xa0($sp) +/* 0D5C44 7F0A1114 C6260004 */ lwc1 $f6, 4($s1) +/* 0D5C48 7F0A1118 00144880 */ sll $t1, $s4, 2 +/* 0D5C4C 7F0A111C 01344823 */ subu $t1, $t1, $s4 +/* 0D5C50 7F0A1120 E7A600A4 */ swc1 $f6, 0xa4($sp) +/* 0D5C54 7F0A1124 C6280008 */ lwc1 $f8, 8($s1) +/* 0D5C58 7F0A1128 0009A080 */ sll $s4, $t1, 2 +/* 0D5C5C 7F0A112C 028A5821 */ addu $t3, $s4, $t2 +/* 0D5C60 7F0A1130 AFAB0050 */ sw $t3, 0x50($sp) +/* 0D5C64 7F0A1134 E7A800A8 */ swc1 $f8, 0xa8($sp) +/* 0D5C68 7F0A1138 C56A0000 */ lwc1 $f10, ($t3) +/* 0D5C6C 7F0A113C 44808000 */ mtc1 $zero, $f16 +/* 0D5C70 7F0A1140 E7AA009C */ swc1 $f10, 0x9c($sp) +/* 0D5C74 7F0A1144 C5640004 */ lwc1 $f4, 4($t3) +/* 0D5C78 7F0A1148 E7A40098 */ swc1 $f4, 0x98($sp) +/* 0D5C7C 7F0A114C C60E0000 */ lwc1 $f14, ($s0) +/* 0D5C80 7F0A1150 460E8032 */ c.eq.s $f16, $f14 +/* 0D5C84 7F0A1154 00000000 */ nop +/* 0D5C88 7F0A1158 4500000E */ bc1f .L7F0A1194 +/* 0D5C8C 7F0A115C 00000000 */ nop +/* 0D5C90 7F0A1160 C6060008 */ lwc1 $f6, 8($s0) +/* 0D5C94 7F0A1164 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D5C98 7F0A1168 46068032 */ c.eq.s $f16, $f6 +/* 0D5C9C 7F0A116C 00000000 */ nop +/* 0D5CA0 7F0A1170 45000008 */ bc1f .L7F0A1194 +/* 0D5CA4 7F0A1174 00000000 */ nop +/* 0D5CA8 7F0A1178 44810000 */ mtc1 $at, $f0 +/* 0D5CAC 7F0A117C E7B000B8 */ swc1 $f16, 0xb8($sp) +/* 0D5CB0 7F0A1180 E7B000B4 */ swc1 $f16, 0xb4($sp) +/* 0D5CB4 7F0A1184 E7B000BC */ swc1 $f16, 0xbc($sp) +/* 0D5CB8 7F0A1188 E7A000B0 */ swc1 $f0, 0xb0($sp) +/* 0D5CBC 7F0A118C 10000025 */ b .L7F0A1224 +/* 0D5CC0 7F0A1190 E7A000C4 */ swc1 $f0, 0xc4($sp) +.L7F0A1194: +/* 0D5CC4 7F0A1194 460E7202 */ mul.s $f8, $f14, $f14 +/* 0D5CC8 7F0A1198 C6020004 */ lwc1 $f2, 4($s0) +/* 0D5CCC 7F0A119C C6000008 */ lwc1 $f0, 8($s0) +/* 0D5CD0 7F0A11A0 46021282 */ mul.s $f10, $f2, $f2 +/* 0D5CD4 7F0A11A4 460A4100 */ add.s $f4, $f8, $f10 +/* 0D5CD8 7F0A11A8 46000182 */ mul.s $f6, $f0, $f0 +/* 0D5CDC 7F0A11AC 0C007DF8 */ jal sqrtf +/* 0D5CE0 7F0A11B0 46043300 */ add.s $f12, $f6, $f4 +/* 0D5CE4 7F0A11B4 C6080000 */ lwc1 $f8, ($s0) +/* 0D5CE8 7F0A11B8 C6060008 */ lwc1 $f6, 8($s0) +/* 0D5CEC 7F0A11BC C60A0004 */ lwc1 $f10, 4($s0) +/* 0D5CF0 7F0A11C0 46004383 */ div.s $f14, $f8, $f0 +/* 0D5CF4 7F0A11C4 46003403 */ div.s $f16, $f6, $f0 +/* 0D5CF8 7F0A11C8 E7AE00DC */ swc1 $f14, 0xdc($sp) +/* 0D5CFC 7F0A11CC 460E7102 */ mul.s $f4, $f14, $f14 +/* 0D5D00 7F0A11D0 46005483 */ div.s $f18, $f10, $f0 +/* 0D5D04 7F0A11D4 E7B000D4 */ swc1 $f16, 0xd4($sp) +/* 0D5D08 7F0A11D8 46108202 */ mul.s $f8, $f16, $f16 +/* 0D5D0C 7F0A11DC 46082300 */ add.s $f12, $f4, $f8 +/* 0D5D10 7F0A11E0 0C007DF8 */ jal sqrtf +/* 0D5D14 7F0A11E4 E7B200D8 */ swc1 $f18, 0xd8($sp) +/* 0D5D18 7F0A11E8 C7AE00DC */ lwc1 $f14, 0xdc($sp) +/* 0D5D1C 7F0A11EC C7B000D4 */ lwc1 $f16, 0xd4($sp) +/* 0D5D20 7F0A11F0 C7B200D8 */ lwc1 $f18, 0xd8($sp) +/* 0D5D24 7F0A11F4 46007083 */ div.s $f2, $f14, $f0 +/* 0D5D28 7F0A11F8 46000107 */ neg.s $f4, $f0 +/* 0D5D2C 7F0A11FC E7A400B4 */ swc1 $f4, 0xb4($sp) +/* 0D5D30 7F0A1200 46008303 */ div.s $f12, $f16, $f0 +/* 0D5D34 7F0A1204 44808000 */ mtc1 $zero, $f16 +/* 0D5D38 7F0A1208 46029182 */ mul.s $f6, $f18, $f2 +/* 0D5D3C 7F0A120C 46001287 */ neg.s $f10, $f2 +/* 0D5D40 7F0A1210 E7AA00BC */ swc1 $f10, 0xbc($sp) +/* 0D5D44 7F0A1214 E7A600B8 */ swc1 $f6, 0xb8($sp) +/* 0D5D48 7F0A1218 460C9202 */ mul.s $f8, $f18, $f12 +/* 0D5D4C 7F0A121C E7AC00C4 */ swc1 $f12, 0xc4($sp) +/* 0D5D50 7F0A1220 E7A800B0 */ swc1 $f8, 0xb0($sp) +.L7F0A1224: +/* 0D5D54 7F0A1224 8FA20100 */ lw $v0, 0x100($sp) +/* 0D5D58 7F0A1228 10400044 */ beqz $v0, .L7F0A133C +/* 0D5D5C 7F0A122C 00000000 */ nop +/* 0D5D60 7F0A1230 8C500004 */ lw $s0, 4($v0) +/* 0D5D64 7F0A1234 C7AA00C4 */ lwc1 $f10, 0xc4($sp) +/* 0D5D68 7F0A1238 83AF0107 */ lb $t7, 0x107($sp) +/* 0D5D6C 7F0A123C 8E0D0014 */ lw $t5, 0x14($s0) +/* 0D5D70 7F0A1240 C7A600BC */ lwc1 $f6, 0xbc($sp) +/* 0D5D74 7F0A1244 C7A400B8 */ lwc1 $f4, 0xb8($sp) +/* 0D5D78 7F0A1248 8DB8000C */ lw $t8, 0xc($t5) +/* 0D5D7C 7F0A124C E7AA0078 */ swc1 $f10, 0x78($sp) +/* 0D5D80 7F0A1250 C7A800B4 */ lwc1 $f8, 0xb4($sp) +/* 0D5D84 7F0A1254 C7AA00B0 */ lwc1 $f10, 0xb0($sp) +/* 0D5D88 7F0A1258 000F7180 */ sll $t6, $t7, 6 +/* 0D5D8C 7F0A125C 030E8821 */ addu $s1, $t8, $t6 +/* 0D5D90 7F0A1260 E7B0007C */ swc1 $f16, 0x7c($sp) +/* 0D5D94 7F0A1264 02202025 */ move $a0, $s1 +/* 0D5D98 7F0A1268 27A50078 */ addiu $a1, $sp, 0x78 +/* 0D5D9C 7F0A126C E7A60080 */ swc1 $f6, 0x80($sp) +/* 0D5DA0 7F0A1270 E7A4006C */ swc1 $f4, 0x6c($sp) +/* 0D5DA4 7F0A1274 E7A80070 */ swc1 $f8, 0x70($sp) +/* 0D5DA8 7F0A1278 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0D5DAC 7F0A127C E7AA0074 */ swc1 $f10, 0x74($sp) +/* 0D5DB0 7F0A1280 02202025 */ move $a0, $s1 +/* 0D5DB4 7F0A1284 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0D5DB8 7F0A1288 27A5006C */ addiu $a1, $sp, 0x6c +/* 0D5DBC 7F0A128C C7A00078 */ lwc1 $f0, 0x78($sp) +/* 0D5DC0 7F0A1290 C7A2007C */ lwc1 $f2, 0x7c($sp) +/* 0D5DC4 7F0A1294 C7AE0080 */ lwc1 $f14, 0x80($sp) +/* 0D5DC8 7F0A1298 46000182 */ mul.s $f6, $f0, $f0 +/* 0D5DCC 7F0A129C 00000000 */ nop +/* 0D5DD0 7F0A12A0 46021102 */ mul.s $f4, $f2, $f2 +/* 0D5DD4 7F0A12A4 46043200 */ add.s $f8, $f6, $f4 +/* 0D5DD8 7F0A12A8 460E7282 */ mul.s $f10, $f14, $f14 +/* 0D5DDC 7F0A12AC 0C007DF8 */ jal sqrtf +/* 0D5DE0 7F0A12B0 46085300 */ add.s $f12, $f10, $f8 +/* 0D5DE4 7F0A12B4 C7A2006C */ lwc1 $f2, 0x6c($sp) +/* 0D5DE8 7F0A12B8 C7AE0070 */ lwc1 $f14, 0x70($sp) +/* 0D5DEC 7F0A12BC C7B00074 */ lwc1 $f16, 0x74($sp) +/* 0D5DF0 7F0A12C0 46021182 */ mul.s $f6, $f2, $f2 +/* 0D5DF4 7F0A12C4 E7A00088 */ swc1 $f0, 0x88($sp) +/* 0D5DF8 7F0A12C8 460E7102 */ mul.s $f4, $f14, $f14 +/* 0D5DFC 7F0A12CC 46043280 */ add.s $f10, $f6, $f4 +/* 0D5E00 7F0A12D0 46108202 */ mul.s $f8, $f16, $f16 +/* 0D5E04 7F0A12D4 0C007DF8 */ jal sqrtf +/* 0D5E08 7F0A12D8 460A4300 */ add.s $f12, $f8, $f10 +/* 0D5E0C 7F0A12DC C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 0D5E10 7F0A12E0 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0D5E14 7F0A12E4 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0D5E18 7F0A12E8 8FB90050 */ lw $t9, 0x50($sp) +/* 0D5E1C 7F0A12EC 46043203 */ div.s $f8, $f6, $f4 +/* 0D5E20 7F0A12F0 46005183 */ div.s $f6, $f10, $f0 +/* 0D5E24 7F0A12F4 E7A8009C */ swc1 $f8, 0x9c($sp) +/* 0D5E28 7F0A12F8 E7A60098 */ swc1 $f6, 0x98($sp) +/* 0D5E2C 7F0A12FC 9328000A */ lbu $t0, 0xa($t9) +/* 0D5E30 7F0A1300 29010002 */ slti $at, $t0, 2 +/* 0D5E34 7F0A1304 5020000A */ beql $at, $zero, .L7F0A1330 +/* 0D5E38 7F0A1308 920C0002 */ lbu $t4, 2($s0) +/* 0D5E3C 7F0A130C 93290009 */ lbu $t1, 9($t9) +/* 0D5E40 7F0A1310 24010002 */ li $at, 2 +/* 0D5E44 7F0A1314 55210006 */ bnel $t1, $at, .L7F0A1330 +/* 0D5E48 7F0A1318 920C0002 */ lbu $t4, 2($s0) +/* 0D5E4C 7F0A131C 920A0002 */ lbu $t2, 2($s0) +/* 0D5E50 7F0A1320 354B0002 */ ori $t3, $t2, 2 +/* 0D5E54 7F0A1324 10000022 */ b .L7F0A13B0 +/* 0D5E58 7F0A1328 A20B0002 */ sb $t3, 2($s0) +/* 0D5E5C 7F0A132C 920C0002 */ lbu $t4, 2($s0) +.L7F0A1330: +/* 0D5E60 7F0A1330 358D0001 */ ori $t5, $t4, 1 +/* 0D5E64 7F0A1334 1000001E */ b .L7F0A13B0 +/* 0D5E68 7F0A1338 A20D0002 */ sb $t5, 2($s0) +.L7F0A133C: +/* 0D5E6C 7F0A133C 0FC2F285 */ jal sub_GAME_7F0BCA14 +/* 0D5E70 7F0A1340 87A400FE */ lh $a0, 0xfe($sp) +/* 0D5E74 7F0A1344 0FC2D20F */ jal get_room_data_float1 +/* 0D5E78 7F0A1348 00408025 */ move $s0, $v0 +/* 0D5E7C 7F0A134C C7A400A0 */ lwc1 $f4, 0xa0($sp) +/* 0D5E80 7F0A1350 C60A0000 */ lwc1 $f10, ($s0) +/* 0D5E84 7F0A1354 46002202 */ mul.s $f8, $f4, $f0 +/* 0D5E88 7F0A1358 460A4181 */ sub.s $f6, $f8, $f10 +/* 0D5E8C 7F0A135C 0FC2D20F */ jal get_room_data_float1 +/* 0D5E90 7F0A1360 E7A600A0 */ swc1 $f6, 0xa0($sp) +/* 0D5E94 7F0A1364 C7A400A4 */ lwc1 $f4, 0xa4($sp) +/* 0D5E98 7F0A1368 C60A0004 */ lwc1 $f10, 4($s0) +/* 0D5E9C 7F0A136C 46002202 */ mul.s $f8, $f4, $f0 +/* 0D5EA0 7F0A1370 460A4181 */ sub.s $f6, $f8, $f10 +/* 0D5EA4 7F0A1374 0FC2D20F */ jal get_room_data_float1 +/* 0D5EA8 7F0A1378 E7A600A4 */ swc1 $f6, 0xa4($sp) +/* 0D5EAC 7F0A137C C7A400A8 */ lwc1 $f4, 0xa8($sp) +/* 0D5EB0 7F0A1380 C60A0008 */ lwc1 $f10, 8($s0) +/* 0D5EB4 7F0A1384 46002202 */ mul.s $f8, $f4, $f0 +/* 0D5EB8 7F0A1388 460A4181 */ sub.s $f6, $f8, $f10 +/* 0D5EBC 7F0A138C 0FC2D20F */ jal get_room_data_float1 +/* 0D5EC0 7F0A1390 E7A600A8 */ swc1 $f6, 0xa8($sp) +/* 0D5EC4 7F0A1394 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0D5EC8 7F0A1398 46002202 */ mul.s $f8, $f4, $f0 +/* 0D5ECC 7F0A139C 0FC2D20F */ jal get_room_data_float1 +/* 0D5ED0 7F0A13A0 E7A8009C */ swc1 $f8, 0x9c($sp) +/* 0D5ED4 7F0A13A4 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0D5ED8 7F0A13A8 46005182 */ mul.s $f6, $f10, $f0 +/* 0D5EDC 7F0A13AC E7A60098 */ swc1 $f6, 0x98($sp) +.L7F0A13B0: +/* 0D5EE0 7F0A13B0 3C128004 */ lui $s2, %hi(D_8004017C+0x68C) +/* 0D5EE4 7F0A13B4 26520808 */ addiu $s2, %lo(D_8004017C+0x68C) # addiu $s2, $s2, 0x808 +/* 0D5EE8 7F0A13B8 8E4E0000 */ lw $t6, ($s2) +/* 0D5EEC 7F0A13BC 24160050 */ li $s6, 80 +/* 0D5EF0 7F0A13C0 3C138008 */ lui $s3, %hi(ptr_bullet_impact_buf) +/* 0D5EF4 7F0A13C4 01D60019 */ multu $t6, $s6 +/* 0D5EF8 7F0A13C8 2673A154 */ addiu $s3, %lo(ptr_bullet_impact_buf) # addiu $s3, $s3, -0x5eac +/* 0D5EFC 7F0A13CC 8E780000 */ lw $t8, ($s3) +/* 0D5F00 7F0A13D0 8FAF0100 */ lw $t7, 0x100($sp) +/* 0D5F04 7F0A13D4 00004012 */ mflo $t0 +/* 0D5F08 7F0A13D8 0308C821 */ addu $t9, $t8, $t0 +/* 0D5F0C 7F0A13DC AF2F0048 */ sw $t7, 0x48($t9) +/* 0D5F10 7F0A13E0 8E4B0000 */ lw $t3, ($s2) +/* 0D5F14 7F0A13E4 8E6A0000 */ lw $t2, ($s3) +/* 0D5F18 7F0A13E8 83A90107 */ lb $t1, 0x107($sp) +/* 0D5F1C 7F0A13EC 01760019 */ multu $t3, $s6 +/* 0D5F20 7F0A13F0 00006012 */ mflo $t4 +/* 0D5F24 7F0A13F4 014C6821 */ addu $t5, $t2, $t4 +/* 0D5F28 7F0A13F8 A1A9004C */ sb $t1, 0x4c($t5) +/* 0D5F2C 7F0A13FC 8E480000 */ lw $t0, ($s2) +/* 0D5F30 7F0A1400 8E780000 */ lw $t8, ($s3) +/* 0D5F34 7F0A1404 83AE010B */ lb $t6, 0x10b($sp) +/* 0D5F38 7F0A1408 01160019 */ multu $t0, $s6 +/* 0D5F3C 7F0A140C 00007812 */ mflo $t7 +/* 0D5F40 7F0A1410 030FC821 */ addu $t9, $t8, $t7 +/* 0D5F44 7F0A1414 A32E004D */ sb $t6, 0x4d($t9) +/* 0D5F48 7F0A1418 8E4C0000 */ lw $t4, ($s2) +/* 0D5F4C 7F0A141C 8E6A0000 */ lw $t2, ($s3) +/* 0D5F50 7F0A1420 87AB00FE */ lh $t3, 0xfe($sp) +/* 0D5F54 7F0A1424 01960019 */ multu $t4, $s6 +/* 0D5F58 7F0A1428 00004812 */ mflo $t1 +/* 0D5F5C 7F0A142C 01496821 */ addu $t5, $t2, $t1 +/* 0D5F60 7F0A1430 A5AB0000 */ sh $t3, ($t5) +/* 0D5F64 7F0A1434 8E4F0000 */ lw $t7, ($s2) +/* 0D5F68 7F0A1438 8E780000 */ lw $t8, ($s3) +/* 0D5F6C 7F0A143C 87A800FA */ lh $t0, 0xfa($sp) +/* 0D5F70 7F0A1440 01F60019 */ multu $t7, $s6 +/* 0D5F74 7F0A1444 00007012 */ mflo $t6 +/* 0D5F78 7F0A1448 030EC821 */ addu $t9, $t8, $t6 +/* 0D5F7C 7F0A144C A7280002 */ sh $t0, 2($t9) +/* 0D5F80 7F0A1450 8E4A0000 */ lw $t2, ($s2) +/* 0D5F84 7F0A1454 8E6C0000 */ lw $t4, ($s3) +/* 0D5F88 7F0A1458 8EA10000 */ lw $at, ($s5) +/* 0D5F8C 7F0A145C 01560019 */ multu $t2, $s6 +/* 0D5F90 7F0A1460 00004812 */ mflo $t1 +/* 0D5F94 7F0A1464 01895821 */ addu $t3, $t4, $t1 +/* 0D5F98 7F0A1468 AD610008 */ sw $at, 8($t3) +/* 0D5F9C 7F0A146C 8EAF0004 */ lw $t7, 4($s5) +/* 0D5FA0 7F0A1470 AD6F000C */ sw $t7, 0xc($t3) +/* 0D5FA4 7F0A1474 8EA10008 */ lw $at, 8($s5) +/* 0D5FA8 7F0A1478 AD610010 */ sw $at, 0x10($t3) +/* 0D5FAC 7F0A147C 8EAF000C */ lw $t7, 0xc($s5) +/* 0D5FB0 7F0A1480 AD6F0014 */ sw $t7, 0x14($t3) +/* 0D5FB4 7F0A1484 8E4E0000 */ lw $t6, ($s2) +/* 0D5FB8 7F0A1488 8E780000 */ lw $t8, ($s3) +/* 0D5FBC 7F0A148C 8EA10000 */ lw $at, ($s5) +/* 0D5FC0 7F0A1490 01D60019 */ multu $t6, $s6 +/* 0D5FC4 7F0A1494 00004012 */ mflo $t0 +/* 0D5FC8 7F0A1498 0308C821 */ addu $t9, $t8, $t0 +/* 0D5FCC 7F0A149C AF210018 */ sw $at, 0x18($t9) +/* 0D5FD0 7F0A14A0 8EAC0004 */ lw $t4, 4($s5) +/* 0D5FD4 7F0A14A4 AF2C001C */ sw $t4, 0x1c($t9) +/* 0D5FD8 7F0A14A8 8EA10008 */ lw $at, 8($s5) +/* 0D5FDC 7F0A14AC AF210020 */ sw $at, 0x20($t9) +/* 0D5FE0 7F0A14B0 8EAC000C */ lw $t4, 0xc($s5) +/* 0D5FE4 7F0A14B4 AF2C0024 */ sw $t4, 0x24($t9) +/* 0D5FE8 7F0A14B8 8E4D0000 */ lw $t5, ($s2) +/* 0D5FEC 7F0A14BC 8E690000 */ lw $t1, ($s3) +/* 0D5FF0 7F0A14C0 8EA10000 */ lw $at, ($s5) +/* 0D5FF4 7F0A14C4 01B60019 */ multu $t5, $s6 +/* 0D5FF8 7F0A14C8 00005812 */ mflo $t3 +/* 0D5FFC 7F0A14CC 012B7821 */ addu $t7, $t1, $t3 +/* 0D6000 7F0A14D0 ADE10028 */ sw $at, 0x28($t7) +/* 0D6004 7F0A14D4 8EB80004 */ lw $t8, 4($s5) +/* 0D6008 7F0A14D8 ADF8002C */ sw $t8, 0x2c($t7) +/* 0D600C 7F0A14DC 8EA10008 */ lw $at, 8($s5) +/* 0D6010 7F0A14E0 ADE10030 */ sw $at, 0x30($t7) +/* 0D6014 7F0A14E4 8EB8000C */ lw $t8, 0xc($s5) +/* 0D6018 7F0A14E8 ADF80034 */ sw $t8, 0x34($t7) +/* 0D601C 7F0A14EC 8E4A0000 */ lw $t2, ($s2) +/* 0D6020 7F0A14F0 8E680000 */ lw $t0, ($s3) +/* 0D6024 7F0A14F4 8EA10000 */ lw $at, ($s5) +/* 0D6028 7F0A14F8 01560019 */ multu $t2, $s6 +/* 0D602C 7F0A14FC 0000C812 */ mflo $t9 +/* 0D6030 7F0A1500 01196021 */ addu $t4, $t0, $t9 +/* 0D6034 7F0A1504 AD810038 */ sw $at, 0x38($t4) +/* 0D6038 7F0A1508 8EA90004 */ lw $t1, 4($s5) +/* 0D603C 7F0A150C AD89003C */ sw $t1, 0x3c($t4) +/* 0D6040 7F0A1510 8EA10008 */ lw $at, 8($s5) +/* 0D6044 7F0A1514 AD810040 */ sw $at, 0x40($t4) +/* 0D6048 7F0A1518 8EA9000C */ lw $t1, 0xc($s5) +/* 0D604C 7F0A151C AD890044 */ sw $t1, 0x44($t4) +/* 0D6050 7F0A1520 C7A800C4 */ lwc1 $f8, 0xc4($sp) +/* 0D6054 7F0A1524 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0D6058 7F0A1528 C7A600B8 */ lwc1 $f6, 0xb8($sp) +/* 0D605C 7F0A152C C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0D6060 7F0A1530 46082002 */ mul.s $f0, $f4, $f8 +/* 0D6064 7F0A1534 C7A400A0 */ lwc1 $f4, 0xa0($sp) +/* 0D6068 7F0A1538 46065082 */ mul.s $f2, $f10, $f6 +/* 0D606C 7F0A153C E7A0004C */ swc1 $f0, 0x4c($sp) +/* 0D6070 7F0A1540 46002201 */ sub.s $f8, $f4, $f0 +/* 0D6074 7F0A1544 E7A20048 */ swc1 $f2, 0x48($sp) +/* 0D6078 7F0A1548 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D607C 7F0A154C 46024301 */ sub.s $f12, $f8, $f2 +/* 0D6080 7F0A1550 8E4E0000 */ lw $t6, ($s2) +/* 0D6084 7F0A1554 8E6B0000 */ lw $t3, ($s3) +/* 0D6088 7F0A1558 44804000 */ mtc1 $zero, $f8 +/* 0D608C 7F0A155C 01D60019 */ multu $t6, $s6 +/* 0D6090 7F0A1560 00007812 */ mflo $t7 +/* 0D6094 7F0A1564 016FC021 */ addu $t8, $t3, $t7 +/* 0D6098 7F0A1568 A7020008 */ sh $v0, 8($t8) +/* 0D609C 7F0A156C C7A600B4 */ lwc1 $f6, 0xb4($sp) +/* 0D60A0 7F0A1570 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0D60A4 7F0A1574 C7A400A4 */ lwc1 $f4, 0xa4($sp) +/* 0D60A8 7F0A1578 46065002 */ mul.s $f0, $f10, $f6 +/* 0D60AC 7F0A157C 46082281 */ sub.s $f10, $f4, $f8 +/* 0D60B0 7F0A1580 46005301 */ sub.s $f12, $f10, $f0 +/* 0D60B4 7F0A1584 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D60B8 7F0A1588 E7A00044 */ swc1 $f0, 0x44($sp) +/* 0D60BC 7F0A158C 8E480000 */ lw $t0, ($s2) +/* 0D60C0 7F0A1590 8E6A0000 */ lw $t2, ($s3) +/* 0D60C4 7F0A1594 01160019 */ multu $t0, $s6 +/* 0D60C8 7F0A1598 0000C812 */ mflo $t9 +/* 0D60CC 7F0A159C 01596821 */ addu $t5, $t2, $t9 +/* 0D60D0 7F0A15A0 A5A2000A */ sh $v0, 0xa($t5) +/* 0D60D4 7F0A15A4 C7A400BC */ lwc1 $f4, 0xbc($sp) +/* 0D60D8 7F0A15A8 C7A6009C */ lwc1 $f6, 0x9c($sp) +/* 0D60DC 7F0A15AC C7AA00B0 */ lwc1 $f10, 0xb0($sp) +/* 0D60E0 7F0A15B0 C7A80098 */ lwc1 $f8, 0x98($sp) +/* 0D60E4 7F0A15B4 46043002 */ mul.s $f0, $f6, $f4 +/* 0D60E8 7F0A15B8 C7A600A8 */ lwc1 $f6, 0xa8($sp) +/* 0D60EC 7F0A15BC 460A4082 */ mul.s $f2, $f8, $f10 +/* 0D60F0 7F0A15C0 E7A00040 */ swc1 $f0, 0x40($sp) +/* 0D60F4 7F0A15C4 46003101 */ sub.s $f4, $f6, $f0 +/* 0D60F8 7F0A15C8 E7A2003C */ swc1 $f2, 0x3c($sp) +/* 0D60FC 7F0A15CC 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D6100 7F0A15D0 46022301 */ sub.s $f12, $f4, $f2 +/* 0D6104 7F0A15D4 8E490000 */ lw $t1, ($s2) +/* 0D6108 7F0A15D8 8E6C0000 */ lw $t4, ($s3) +/* 0D610C 7F0A15DC 3C108009 */ lui $s0, %hi(impactimages) +/* 0D6110 7F0A15E0 01360019 */ multu $t1, $s6 +/* 0D6114 7F0A15E4 2610D0BC */ addiu $s0, %lo(impactimages) # addiu $s0, $s0, -0x2f44 +/* 0D6118 7F0A15E8 00007012 */ mflo $t6 +/* 0D611C 7F0A15EC 018E5821 */ addu $t3, $t4, $t6 +/* 0D6120 7F0A15F0 A562000C */ sh $v0, 0xc($t3) +/* 0D6124 7F0A15F4 8E580000 */ lw $t8, ($s2) +/* 0D6128 7F0A15F8 8E6F0000 */ lw $t7, ($s3) +/* 0D612C 7F0A15FC 03160019 */ multu $t8, $s6 +/* 0D6130 7F0A1600 00004012 */ mflo $t0 +/* 0D6134 7F0A1604 01E85021 */ addu $t2, $t7, $t0 +/* 0D6138 7F0A1608 A5400010 */ sh $zero, 0x10($t2) +/* 0D613C 7F0A160C 8E4B0000 */ lw $t3, ($s2) +/* 0D6140 7F0A1610 8E190000 */ lw $t9, ($s0) +/* 0D6144 7F0A1614 8E6E0000 */ lw $t6, ($s3) +/* 0D6148 7F0A1618 01760019 */ multu $t3, $s6 +/* 0D614C 7F0A161C 03346821 */ addu $t5, $t9, $s4 +/* 0D6150 7F0A1620 91A90005 */ lbu $t1, 5($t5) +/* 0D6154 7F0A1624 00096140 */ sll $t4, $t1, 5 +/* 0D6158 7F0A1628 0000C012 */ mflo $t8 +/* 0D615C 7F0A162C 01D87821 */ addu $t7, $t6, $t8 +/* 0D6160 7F0A1630 A5EC0012 */ sh $t4, 0x12($t7) +/* 0D6164 7F0A1634 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0D6168 7F0A1638 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 0D616C 7F0A163C C7A40048 */ lwc1 $f4, 0x48($sp) +/* 0D6170 7F0A1640 460A4181 */ sub.s $f6, $f8, $f10 +/* 0D6174 7F0A1644 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D6178 7F0A1648 46043300 */ add.s $f12, $f6, $f4 +/* 0D617C 7F0A164C 8E4A0000 */ lw $t2, ($s2) +/* 0D6180 7F0A1650 8E680000 */ lw $t0, ($s3) +/* 0D6184 7F0A1654 44805000 */ mtc1 $zero, $f10 +/* 0D6188 7F0A1658 01560019 */ multu $t2, $s6 +/* 0D618C 7F0A165C 0000C812 */ mflo $t9 +/* 0D6190 7F0A1660 01196821 */ addu $t5, $t0, $t9 +/* 0D6194 7F0A1664 A5A20018 */ sh $v0, 0x18($t5) +/* 0D6198 7F0A1668 C7A800A4 */ lwc1 $f8, 0xa4($sp) +/* 0D619C 7F0A166C C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0D61A0 7F0A1670 460A4181 */ sub.s $f6, $f8, $f10 +/* 0D61A4 7F0A1674 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D61A8 7F0A1678 46043300 */ add.s $f12, $f6, $f4 +/* 0D61AC 7F0A167C 8E4B0000 */ lw $t3, ($s2) +/* 0D61B0 7F0A1680 8E690000 */ lw $t1, ($s3) +/* 0D61B4 7F0A1684 01760019 */ multu $t3, $s6 +/* 0D61B8 7F0A1688 00007012 */ mflo $t6 +/* 0D61BC 7F0A168C 012EC021 */ addu $t8, $t1, $t6 +/* 0D61C0 7F0A1690 A702001A */ sh $v0, 0x1a($t8) +/* 0D61C4 7F0A1694 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 0D61C8 7F0A1698 C7A800A8 */ lwc1 $f8, 0xa8($sp) +/* 0D61CC 7F0A169C C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0D61D0 7F0A16A0 460A4181 */ sub.s $f6, $f8, $f10 +/* 0D61D4 7F0A16A4 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D61D8 7F0A16A8 46043300 */ add.s $f12, $f6, $f4 +/* 0D61DC 7F0A16AC 8E4F0000 */ lw $t7, ($s2) +/* 0D61E0 7F0A16B0 8E6C0000 */ lw $t4, ($s3) +/* 0D61E4 7F0A16B4 01F60019 */ multu $t7, $s6 +/* 0D61E8 7F0A16B8 00005012 */ mflo $t2 +/* 0D61EC 7F0A16BC 018A4021 */ addu $t0, $t4, $t2 +/* 0D61F0 7F0A16C0 A502001C */ sh $v0, 0x1c($t0) +/* 0D61F4 7F0A16C4 8E4D0000 */ lw $t5, ($s2) +/* 0D61F8 7F0A16C8 8E790000 */ lw $t9, ($s3) +/* 0D61FC 7F0A16CC 01B60019 */ multu $t5, $s6 +/* 0D6200 7F0A16D0 00005812 */ mflo $t3 +/* 0D6204 7F0A16D4 032B4821 */ addu $t1, $t9, $t3 +/* 0D6208 7F0A16D8 A5200020 */ sh $zero, 0x20($t1) +/* 0D620C 7F0A16DC 8E580000 */ lw $t8, ($s2) +/* 0D6210 7F0A16E0 8E6E0000 */ lw $t6, ($s3) +/* 0D6214 7F0A16E4 03160019 */ multu $t8, $s6 +/* 0D6218 7F0A16E8 00007812 */ mflo $t7 +/* 0D621C 7F0A16EC 01CF6021 */ addu $t4, $t6, $t7 +/* 0D6220 7F0A16F0 A5800022 */ sh $zero, 0x22($t4) +/* 0D6224 7F0A16F4 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0D6228 7F0A16F8 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 0D622C 7F0A16FC C7A40048 */ lwc1 $f4, 0x48($sp) +/* 0D6230 7F0A1700 460A4180 */ add.s $f6, $f8, $f10 +/* 0D6234 7F0A1704 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D6238 7F0A1708 46043300 */ add.s $f12, $f6, $f4 +/* 0D623C 7F0A170C 8E480000 */ lw $t0, ($s2) +/* 0D6240 7F0A1710 8E6A0000 */ lw $t2, ($s3) +/* 0D6244 7F0A1714 44805000 */ mtc1 $zero, $f10 +/* 0D6248 7F0A1718 01160019 */ multu $t0, $s6 +/* 0D624C 7F0A171C 00006812 */ mflo $t5 +/* 0D6250 7F0A1720 014DC821 */ addu $t9, $t2, $t5 +/* 0D6254 7F0A1724 A7220028 */ sh $v0, 0x28($t9) +/* 0D6258 7F0A1728 C7A800A4 */ lwc1 $f8, 0xa4($sp) +/* 0D625C 7F0A172C C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0D6260 7F0A1730 460A4180 */ add.s $f6, $f8, $f10 +/* 0D6264 7F0A1734 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D6268 7F0A1738 46043300 */ add.s $f12, $f6, $f4 +/* 0D626C 7F0A173C 8E490000 */ lw $t1, ($s2) +/* 0D6270 7F0A1740 8E6B0000 */ lw $t3, ($s3) +/* 0D6274 7F0A1744 01360019 */ multu $t1, $s6 +/* 0D6278 7F0A1748 0000C012 */ mflo $t8 +/* 0D627C 7F0A174C 01787021 */ addu $t6, $t3, $t8 +/* 0D6280 7F0A1750 A5C2002A */ sh $v0, 0x2a($t6) +/* 0D6284 7F0A1754 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 0D6288 7F0A1758 C7A800A8 */ lwc1 $f8, 0xa8($sp) +/* 0D628C 7F0A175C C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0D6290 7F0A1760 460A4180 */ add.s $f6, $f8, $f10 +/* 0D6294 7F0A1764 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D6298 7F0A1768 46043300 */ add.s $f12, $f6, $f4 +/* 0D629C 7F0A176C 8E4C0000 */ lw $t4, ($s2) +/* 0D62A0 7F0A1770 8E6F0000 */ lw $t7, ($s3) +/* 0D62A4 7F0A1774 01960019 */ multu $t4, $s6 +/* 0D62A8 7F0A1778 00004012 */ mflo $t0 +/* 0D62AC 7F0A177C 01E85021 */ addu $t2, $t7, $t0 +/* 0D62B0 7F0A1780 A542002C */ sh $v0, 0x2c($t2) +/* 0D62B4 7F0A1784 8E4E0000 */ lw $t6, ($s2) +/* 0D62B8 7F0A1788 8E0D0000 */ lw $t5, ($s0) +/* 0D62BC 7F0A178C 8E780000 */ lw $t8, ($s3) +/* 0D62C0 7F0A1790 01D60019 */ multu $t6, $s6 +/* 0D62C4 7F0A1794 01B4C821 */ addu $t9, $t5, $s4 +/* 0D62C8 7F0A1798 93290004 */ lbu $t1, 4($t9) +/* 0D62CC 7F0A179C 00095940 */ sll $t3, $t1, 5 +/* 0D62D0 7F0A17A0 00006012 */ mflo $t4 +/* 0D62D4 7F0A17A4 030C7821 */ addu $t7, $t8, $t4 +/* 0D62D8 7F0A17A8 A5EB0030 */ sh $t3, 0x30($t7) +/* 0D62DC 7F0A17AC 8E4A0000 */ lw $t2, ($s2) +/* 0D62E0 7F0A17B0 8E680000 */ lw $t0, ($s3) +/* 0D62E4 7F0A17B4 01560019 */ multu $t2, $s6 +/* 0D62E8 7F0A17B8 00006812 */ mflo $t5 +/* 0D62EC 7F0A17BC 010DC821 */ addu $t9, $t0, $t5 +/* 0D62F0 7F0A17C0 A7200032 */ sh $zero, 0x32($t9) +/* 0D62F4 7F0A17C4 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0D62F8 7F0A17C8 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 0D62FC 7F0A17CC C7A40048 */ lwc1 $f4, 0x48($sp) +/* 0D6300 7F0A17D0 460A4180 */ add.s $f6, $f8, $f10 +/* 0D6304 7F0A17D4 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D6308 7F0A17D8 46043301 */ sub.s $f12, $f6, $f4 +/* 0D630C 7F0A17DC 8E4E0000 */ lw $t6, ($s2) +/* 0D6310 7F0A17E0 8E690000 */ lw $t1, ($s3) +/* 0D6314 7F0A17E4 44805000 */ mtc1 $zero, $f10 +/* 0D6318 7F0A17E8 01D60019 */ multu $t6, $s6 +/* 0D631C 7F0A17EC 0000C012 */ mflo $t8 +/* 0D6320 7F0A17F0 01386021 */ addu $t4, $t1, $t8 +/* 0D6324 7F0A17F4 A5820038 */ sh $v0, 0x38($t4) +/* 0D6328 7F0A17F8 C7A800A4 */ lwc1 $f8, 0xa4($sp) +/* 0D632C 7F0A17FC C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0D6330 7F0A1800 460A4180 */ add.s $f6, $f8, $f10 +/* 0D6334 7F0A1804 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D6338 7F0A1808 46043301 */ sub.s $f12, $f6, $f4 +/* 0D633C 7F0A180C 8E4F0000 */ lw $t7, ($s2) +/* 0D6340 7F0A1810 8E6B0000 */ lw $t3, ($s3) +/* 0D6344 7F0A1814 01F60019 */ multu $t7, $s6 +/* 0D6348 7F0A1818 00005012 */ mflo $t2 +/* 0D634C 7F0A181C 016A4021 */ addu $t0, $t3, $t2 +/* 0D6350 7F0A1820 A502003A */ sh $v0, 0x3a($t0) +/* 0D6354 7F0A1824 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 0D6358 7F0A1828 C7A800A8 */ lwc1 $f8, 0xa8($sp) +/* 0D635C 7F0A182C C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0D6360 7F0A1830 460A4180 */ add.s $f6, $f8, $f10 +/* 0D6364 7F0A1834 0FC2831D */ jal sub_GAME_7F0A0C74 +/* 0D6368 7F0A1838 46043301 */ sub.s $f12, $f6, $f4 +/* 0D636C 7F0A183C 8E590000 */ lw $t9, ($s2) +/* 0D6370 7F0A1840 8E6D0000 */ lw $t5, ($s3) +/* 0D6374 7F0A1844 00008825 */ move $s1, $zero +/* 0D6378 7F0A1848 03360019 */ multu $t9, $s6 +/* 0D637C 7F0A184C 24150028 */ li $s5, 40 +/* 0D6380 7F0A1850 00007012 */ mflo $t6 +/* 0D6384 7F0A1854 01AE4821 */ addu $t1, $t5, $t6 +/* 0D6388 7F0A1858 A522003C */ sh $v0, 0x3c($t1) +/* 0D638C 7F0A185C 8E480000 */ lw $t0, ($s2) +/* 0D6390 7F0A1860 8E180000 */ lw $t8, ($s0) +/* 0D6394 7F0A1864 8E6A0000 */ lw $t2, ($s3) +/* 0D6398 7F0A1868 01160019 */ multu $t0, $s6 +/* 0D639C 7F0A186C 03146021 */ addu $t4, $t8, $s4 +/* 0D63A0 7F0A1870 918F0004 */ lbu $t7, 4($t4) +/* 0D63A4 7F0A1874 000F5940 */ sll $t3, $t7, 5 +/* 0D63A8 7F0A1878 0000C812 */ mflo $t9 +/* 0D63AC 7F0A187C 01596821 */ addu $t5, $t2, $t9 +/* 0D63B0 7F0A1880 A5AB0040 */ sh $t3, 0x40($t5) +/* 0D63B4 7F0A1884 8E480000 */ lw $t0, ($s2) +/* 0D63B8 7F0A1888 8E0E0000 */ lw $t6, ($s0) +/* 0D63BC 7F0A188C 8E6F0000 */ lw $t7, ($s3) +/* 0D63C0 7F0A1890 01160019 */ multu $t0, $s6 +/* 0D63C4 7F0A1894 01D44821 */ addu $t1, $t6, $s4 +/* 0D63C8 7F0A1898 91380005 */ lbu $t8, 5($t1) +/* 0D63CC 7F0A189C 241400FF */ li $s4, 255 +/* 0D63D0 7F0A18A0 00186140 */ sll $t4, $t8, 5 +/* 0D63D4 7F0A18A4 00005012 */ mflo $t2 +/* 0D63D8 7F0A18A8 01EAC821 */ addu $t9, $t7, $t2 +/* 0D63DC 7F0A18AC A72C0042 */ sh $t4, 0x42($t9) +/* 0D63E0 7F0A18B0 93A40061 */ lbu $a0, 0x61($sp) +/* 0D63E4 7F0A18B4 93A50062 */ lbu $a1, 0x62($sp) +.L7F0A18B8: +/* 0D63E8 7F0A18B8 8FAB0050 */ lw $t3, 0x50($sp) +/* 0D63EC 7F0A18BC 24010001 */ li $at, 1 +/* 0D63F0 7F0A18C0 91620008 */ lbu $v0, 8($t3) +/* 0D63F4 7F0A18C4 10400013 */ beqz $v0, .L7F0A1914 +/* 0D63F8 7F0A18C8 00000000 */ nop +/* 0D63FC 7F0A18CC 10410005 */ beq $v0, $at, .L7F0A18E4 +/* 0D6400 7F0A18D0 24010002 */ li $at, 2 +/* 0D6404 7F0A18D4 1041001A */ beq $v0, $at, .L7F0A1940 +/* 0D6408 7F0A18D8 00000000 */ nop +/* 0D640C 7F0A18DC 1000002E */ b .L7F0A1998 +/* 0D6410 7F0A18E0 00008025 */ move $s0, $zero +.L7F0A18E4: +/* 0D6414 7F0A18E4 0C002914 */ jal get_random_value +/* 0D6418 7F0A18E8 00000000 */ nop +/* 0D641C 7F0A18EC 0055001B */ divu $zero, $v0, $s5 +/* 0D6420 7F0A18F0 00006810 */ mfhi $t5 +/* 0D6424 7F0A18F4 028D1823 */ subu $v1, $s4, $t5 +/* 0D6428 7F0A18F8 16A00002 */ bnez $s5, .L7F0A1904 +/* 0D642C 7F0A18FC 00000000 */ nop +/* 0D6430 7F0A1900 0007000D */ break 7 +.L7F0A1904: +/* 0D6434 7F0A1904 306400FF */ andi $a0, $v1, 0xff +/* 0D6438 7F0A1908 306500FF */ andi $a1, $v1, 0xff +/* 0D643C 7F0A190C 10000022 */ b .L7F0A1998 +/* 0D6440 7F0A1910 307000FF */ andi $s0, $v1, 0xff +.L7F0A1914: +/* 0D6444 7F0A1914 0C002914 */ jal get_random_value +/* 0D6448 7F0A1918 00000000 */ nop +/* 0D644C 7F0A191C 0055001B */ divu $zero, $v0, $s5 +/* 0D6450 7F0A1920 00001810 */ mfhi $v1 +/* 0D6454 7F0A1924 306400FF */ andi $a0, $v1, 0xff +/* 0D6458 7F0A1928 16A00002 */ bnez $s5, .L7F0A1934 +/* 0D645C 7F0A192C 00000000 */ nop +/* 0D6460 7F0A1930 0007000D */ break 7 +.L7F0A1934: +/* 0D6464 7F0A1934 306500FF */ andi $a1, $v1, 0xff +/* 0D6468 7F0A1938 10000017 */ b .L7F0A1998 +/* 0D646C 7F0A193C 307000FF */ andi $s0, $v1, 0xff +.L7F0A1940: +/* 0D6470 7F0A1940 0C002914 */ jal get_random_value +/* 0D6474 7F0A1944 00000000 */ nop +/* 0D6478 7F0A1948 304E0001 */ andi $t6, $v0, 1 +/* 0D647C 7F0A194C 11C00003 */ beqz $t6, .L7F0A195C +/* 0D6480 7F0A1950 00008025 */ move $s0, $zero +/* 0D6484 7F0A1954 10000001 */ b .L7F0A195C +/* 0D6488 7F0A1958 329000FF */ andi $s0, $s4, 0xff +.L7F0A195C: +/* 0D648C 7F0A195C 0C002914 */ jal get_random_value +/* 0D6490 7F0A1960 00000000 */ nop +/* 0D6494 7F0A1964 30490001 */ andi $t1, $v0, 1 +/* 0D6498 7F0A1968 11200003 */ beqz $t1, .L7F0A1978 +/* 0D649C 7F0A196C 00002825 */ move $a1, $zero +/* 0D64A0 7F0A1970 10000001 */ b .L7F0A1978 +/* 0D64A4 7F0A1974 328500FF */ andi $a1, $s4, 0xff +.L7F0A1978: +/* 0D64A8 7F0A1978 0C002914 */ jal get_random_value +/* 0D64AC 7F0A197C A3A50062 */ sb $a1, 0x62($sp) +/* 0D64B0 7F0A1980 30580001 */ andi $t8, $v0, 1 +/* 0D64B4 7F0A1984 13000003 */ beqz $t8, .L7F0A1994 +/* 0D64B8 7F0A1988 93A50062 */ lbu $a1, 0x62($sp) +/* 0D64BC 7F0A198C 10000002 */ b .L7F0A1998 +/* 0D64C0 7F0A1990 328400FF */ andi $a0, $s4, 0xff +.L7F0A1994: +/* 0D64C4 7F0A1994 00002025 */ move $a0, $zero +.L7F0A1998: +/* 0D64C8 7F0A1998 8E4F0000 */ lw $t7, ($s2) +/* 0D64CC 7F0A199C 8E680000 */ lw $t0, ($s3) +/* 0D64D0 7F0A19A0 24010040 */ li $at, 64 +/* 0D64D4 7F0A19A4 000F5080 */ sll $t2, $t7, 2 +/* 0D64D8 7F0A19A8 014F5021 */ addu $t2, $t2, $t7 +/* 0D64DC 7F0A19AC 000A5100 */ sll $t2, $t2, 4 +/* 0D64E0 7F0A19B0 010A6021 */ addu $t4, $t0, $t2 +/* 0D64E4 7F0A19B4 0191C821 */ addu $t9, $t4, $s1 +/* 0D64E8 7F0A19B8 A3300014 */ sb $s0, 0x14($t9) +/* 0D64EC 7F0A19BC 8E4D0000 */ lw $t5, ($s2) +/* 0D64F0 7F0A19C0 8E6B0000 */ lw $t3, ($s3) +/* 0D64F4 7F0A19C4 000D7080 */ sll $t6, $t5, 2 +/* 0D64F8 7F0A19C8 01CD7021 */ addu $t6, $t6, $t5 +/* 0D64FC 7F0A19CC 000E7100 */ sll $t6, $t6, 4 +/* 0D6500 7F0A19D0 016E4821 */ addu $t1, $t3, $t6 +/* 0D6504 7F0A19D4 0131C021 */ addu $t8, $t1, $s1 +/* 0D6508 7F0A19D8 A3050015 */ sb $a1, 0x15($t8) +/* 0D650C 7F0A19DC 8E480000 */ lw $t0, ($s2) +/* 0D6510 7F0A19E0 8E6F0000 */ lw $t7, ($s3) +/* 0D6514 7F0A19E4 00085080 */ sll $t2, $t0, 2 +/* 0D6518 7F0A19E8 01485021 */ addu $t2, $t2, $t0 +/* 0D651C 7F0A19EC 000A5100 */ sll $t2, $t2, 4 +/* 0D6520 7F0A19F0 01EA6021 */ addu $t4, $t7, $t2 +/* 0D6524 7F0A19F4 0191C821 */ addu $t9, $t4, $s1 +/* 0D6528 7F0A19F8 A3240016 */ sb $a0, 0x16($t9) +/* 0D652C 7F0A19FC 8E4B0000 */ lw $t3, ($s2) +/* 0D6530 7F0A1A00 8E6D0000 */ lw $t5, ($s3) +/* 0D6534 7F0A1A04 000B7080 */ sll $t6, $t3, 2 +/* 0D6538 7F0A1A08 01CB7021 */ addu $t6, $t6, $t3 +/* 0D653C 7F0A1A0C 000E7100 */ sll $t6, $t6, 4 +/* 0D6540 7F0A1A10 01AE4821 */ addu $t1, $t5, $t6 +/* 0D6544 7F0A1A14 0131C021 */ addu $t8, $t1, $s1 +/* 0D6548 7F0A1A18 26310010 */ addiu $s1, $s1, 0x10 +/* 0D654C 7F0A1A1C 1621FFA6 */ bne $s1, $at, .L7F0A18B8 +/* 0D6550 7F0A1A20 A3140017 */ sb $s4, 0x17($t8) +/* 0D6554 7F0A1A24 8E480000 */ lw $t0, ($s2) +/* 0D6558 7F0A1A28 A3A40061 */ sb $a0, 0x61($sp) +/* 0D655C 7F0A1A2C A3A50062 */ sb $a1, 0x62($sp) +/* 0D6560 7F0A1A30 25040001 */ addiu $a0, $t0, 1 +/* 0D6564 7F0A1A34 28810064 */ slti $at, $a0, 0x64 +/* 0D6568 7F0A1A38 14200003 */ bnez $at, .L7F0A1A48 +/* 0D656C 7F0A1A3C AE440000 */ sw $a0, ($s2) +/* 0D6570 7F0A1A40 AE400000 */ sw $zero, ($s2) +/* 0D6574 7F0A1A44 00002025 */ move $a0, $zero +.L7F0A1A48: +/* 0D6578 7F0A1A48 0FC283A6 */ jal sub_GAME_7F0A0E98 +/* 0D657C 7F0A1A4C 00000000 */ nop +/* 0D6580 7F0A1A50 8E590000 */ lw $t9, ($s2) +/* 0D6584 7F0A1A54 8E6C0000 */ lw $t4, ($s3) +/* 0D6588 7F0A1A58 240AFFFF */ li $t2, -1 +/* 0D658C 7F0A1A5C 03360019 */ multu $t9, $s6 +/* 0D6590 7F0A1A60 00005812 */ mflo $t3 +/* 0D6594 7F0A1A64 018B6821 */ addu $t5, $t4, $t3 +/* 0D6598 7F0A1A68 A5AA0000 */ sh $t2, ($t5) +/* 0D659C 7F0A1A6C 8FBF0034 */ lw $ra, 0x34($sp) +/* 0D65A0 7F0A1A70 8FB60030 */ lw $s6, 0x30($sp) +/* 0D65A4 7F0A1A74 8FB5002C */ lw $s5, 0x2c($sp) +/* 0D65A8 7F0A1A78 8FB40028 */ lw $s4, 0x28($sp) +/* 0D65AC 7F0A1A7C 8FB30024 */ lw $s3, 0x24($sp) +/* 0D65B0 7F0A1A80 8FB20020 */ lw $s2, 0x20($sp) +/* 0D65B4 7F0A1A84 8FB1001C */ lw $s1, 0x1c($sp) +/* 0D65B8 7F0A1A88 8FB00018 */ lw $s0, 0x18($sp) +/* 0D65BC 7F0A1A8C 03E00008 */ jr $ra +/* 0D65C0 7F0A1A90 27BD00F0 */ addiu $sp, $sp, 0xf0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A1A94(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A1A94 +/* 0D65C4 7F0A1A94 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0D65C8 7F0A1A98 AFB60038 */ sw $s6, 0x38($sp) +/* 0D65CC 7F0A1A9C AFB50034 */ sw $s5, 0x34($sp) +/* 0D65D0 7F0A1AA0 240EFFFF */ li $t6, -1 +/* 0D65D4 7F0A1AA4 00A0B025 */ move $s6, $a1 +/* 0D65D8 7F0A1AA8 AFBF0044 */ sw $ra, 0x44($sp) +/* 0D65DC 7F0A1AAC AFBE0040 */ sw $fp, 0x40($sp) +/* 0D65E0 7F0A1AB0 AFB7003C */ sw $s7, 0x3c($sp) +/* 0D65E4 7F0A1AB4 AFB40030 */ sw $s4, 0x30($sp) +/* 0D65E8 7F0A1AB8 AFB3002C */ sw $s3, 0x2c($sp) +/* 0D65EC 7F0A1ABC AFB20028 */ sw $s2, 0x28($sp) +/* 0D65F0 7F0A1AC0 AFB10024 */ sw $s1, 0x24($sp) +/* 0D65F4 7F0A1AC4 AFB00020 */ sw $s0, 0x20($sp) +/* 0D65F8 7F0A1AC8 AFA40060 */ sw $a0, 0x60($sp) +/* 0D65FC 7F0A1ACC AFA60068 */ sw $a2, 0x68($sp) +/* 0D6600 7F0A1AD0 2415FFFF */ li $s5, -1 +/* 0D6604 7F0A1AD4 AFA00050 */ sw $zero, 0x50($sp) +/* 0D6608 7F0A1AD8 AFA0004C */ sw $zero, 0x4c($sp) +/* 0D660C 7F0A1ADC 10A00003 */ beqz $a1, .L7F0A1AEC +/* 0D6610 7F0A1AE0 AFAE0048 */ sw $t6, 0x48($sp) +/* 0D6614 7F0A1AE4 8CAF0004 */ lw $t7, 4($a1) +/* 0D6618 7F0A1AE8 AFAF004C */ sw $t7, 0x4c($sp) +.L7F0A1AEC: +/* 0D661C 7F0A1AEC 8FB80060 */ lw $t8, 0x60($sp) +/* 0D6620 7F0A1AF0 3C08B600 */ lui $t0, 0xb600 +/* 0D6624 7F0A1AF4 24093000 */ li $t1, 12288 +/* 0D6628 7F0A1AF8 27190008 */ addiu $t9, $t8, 8 +/* 0D662C 7F0A1AFC AFB90060 */ sw $t9, 0x60($sp) +/* 0D6630 7F0A1B00 AF090004 */ sw $t1, 4($t8) +/* 0D6634 7F0A1B04 AF080000 */ sw $t0, ($t8) +/* 0D6638 7F0A1B08 8FAA0060 */ lw $t2, 0x60($sp) +/* 0D663C 7F0A1B0C 3C0CBA00 */ lui $t4, (0xBA000602 >> 16) # lui $t4, 0xba00 +/* 0D6640 7F0A1B10 358C0602 */ ori $t4, (0xBA000602 & 0xFFFF) # ori $t4, $t4, 0x602 +/* 0D6644 7F0A1B14 254B0008 */ addiu $t3, $t2, 8 +/* 0D6648 7F0A1B18 AFAB0060 */ sw $t3, 0x60($sp) +/* 0D664C 7F0A1B1C 240D0080 */ li $t5, 128 +/* 0D6650 7F0A1B20 3C1E8004 */ lui $fp, %hi(D_8004080C) +/* 0D6654 7F0A1B24 3C178008 */ lui $s7, %hi(ptr_bullet_impact_buf) +/* 0D6658 7F0A1B28 26F7A154 */ addiu $s7, %lo(ptr_bullet_impact_buf) # addiu $s7, $s7, -0x5eac +/* 0D665C 7F0A1B2C 27DE080C */ addiu $fp, %lo(D_8004080C) # addiu $fp, $fp, 0x80c +/* 0D6660 7F0A1B30 0000A025 */ move $s4, $zero +/* 0D6664 7F0A1B34 AD4D0004 */ sw $t5, 4($t2) +/* 0D6668 7F0A1B38 AD4C0000 */ sw $t4, ($t2) +/* 0D666C 7F0A1B3C 8EEE0000 */ lw $t6, ($s7) +.L7F0A1B40: +/* 0D6670 7F0A1B40 01D41821 */ addu $v1, $t6, $s4 +/* 0D6674 7F0A1B44 8C6F0048 */ lw $t7, 0x48($v1) +/* 0D6678 7F0A1B48 56CF0068 */ bnel $s6, $t7, .L7F0A1CEC +/* 0D667C 7F0A1B4C 26940050 */ addiu $s4, $s4, 0x50 +/* 0D6680 7F0A1B50 84650000 */ lh $a1, ($v1) +/* 0D6684 7F0A1B54 04A20065 */ bltzl $a1, .L7F0A1CEC +/* 0D6688 7F0A1B58 26940050 */ addiu $s4, $s4, 0x50 +/* 0D668C 7F0A1B5C 56C00008 */ bnezl $s6, .L7F0A1B80 +/* 0D6690 7F0A1B60 8FB90068 */ lw $t9, 0x68($sp) +/* 0D6694 7F0A1B64 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 0D6698 7F0A1B68 00A02025 */ move $a0, $a1 +/* 0D669C 7F0A1B6C 5040005F */ beql $v0, $zero, .L7F0A1CEC +/* 0D66A0 7F0A1B70 26940050 */ addiu $s4, $s4, 0x50 +/* 0D66A4 7F0A1B74 8EF80000 */ lw $t8, ($s7) +/* 0D66A8 7F0A1B78 03141821 */ addu $v1, $t8, $s4 +/* 0D66AC 7F0A1B7C 8FB90068 */ lw $t9, 0x68($sp) +.L7F0A1B80: +/* 0D66B0 7F0A1B80 84730002 */ lh $s3, 2($v1) +/* 0D66B4 7F0A1B84 240C0001 */ li $t4, 1 +/* 0D66B8 7F0A1B88 1320000D */ beqz $t9, .L7F0A1BC0 +/* 0D66BC 7F0A1B8C 00139080 */ sll $s2, $s3, 2 +/* 0D66C0 7F0A1B90 00139080 */ sll $s2, $s3, 2 +/* 0D66C4 7F0A1B94 02539023 */ subu $s2, $s2, $s3 +/* 0D66C8 7F0A1B98 00129080 */ sll $s2, $s2, 2 +/* 0D66CC 7F0A1B9C 03D28021 */ addu $s0, $fp, $s2 +/* 0D66D0 7F0A1BA0 9202000A */ lbu $v0, 0xa($s0) +/* 0D66D4 7F0A1BA4 28480002 */ slti $t0, $v0, 2 +/* 0D66D8 7F0A1BA8 11000010 */ beqz $t0, .L7F0A1BEC +/* 0D66DC 7F0A1BAC 01001025 */ move $v0, $t0 +/* 0D66E0 7F0A1BB0 92020009 */ lbu $v0, 9($s0) +/* 0D66E4 7F0A1BB4 38490002 */ xori $t1, $v0, 2 +/* 0D66E8 7F0A1BB8 1000000C */ b .L7F0A1BEC +/* 0D66EC 7F0A1BBC 2D220001 */ sltiu $v0, $t1, 1 +.L7F0A1BC0: +/* 0D66F0 7F0A1BC0 02539023 */ subu $s2, $s2, $s3 +/* 0D66F4 7F0A1BC4 00129080 */ sll $s2, $s2, 2 +/* 0D66F8 7F0A1BC8 03D28021 */ addu $s0, $fp, $s2 +/* 0D66FC 7F0A1BCC 9202000A */ lbu $v0, 0xa($s0) +/* 0D6700 7F0A1BD0 284A0002 */ slti $t2, $v0, 2 +/* 0D6704 7F0A1BD4 39420001 */ xori $v0, $t2, 1 +/* 0D6708 7F0A1BD8 14400004 */ bnez $v0, .L7F0A1BEC +/* 0D670C 7F0A1BDC 00000000 */ nop +/* 0D6710 7F0A1BE0 92020009 */ lbu $v0, 9($s0) +/* 0D6714 7F0A1BE4 384B0002 */ xori $t3, $v0, 2 +/* 0D6718 7F0A1BE8 000B102B */ sltu $v0, $zero, $t3 +.L7F0A1BEC: +/* 0D671C 7F0A1BEC 5040003F */ beql $v0, $zero, .L7F0A1CEC +/* 0D6720 7F0A1BF0 26940050 */ addiu $s4, $s4, 0x50 +/* 0D6724 7F0A1BF4 12C00014 */ beqz $s6, .L7F0A1C48 +/* 0D6728 7F0A1BF8 AFAC0050 */ sw $t4, 0x50($sp) +/* 0D672C 7F0A1BFC 8062004C */ lb $v0, 0x4c($v1) +/* 0D6730 7F0A1C00 8FAE004C */ lw $t6, 0x4c($sp) +/* 0D6734 7F0A1C04 8FB10060 */ lw $s1, 0x60($sp) +/* 0D6738 7F0A1C08 12A20018 */ beq $s5, $v0, .L7F0A1C6C +/* 0D673C 7F0A1C0C 00026980 */ sll $t5, $v0, 6 +/* 0D6740 7F0A1C10 8DCF0014 */ lw $t7, 0x14($t6) +/* 0D6744 7F0A1C14 0002AC00 */ sll $s5, $v0, 0x10 +/* 0D6748 7F0A1C18 26290008 */ addiu $t1, $s1, 8 +/* 0D674C 7F0A1C1C 8DF8000C */ lw $t8, 0xc($t7) +/* 0D6750 7F0A1C20 3C0A0102 */ lui $t2, (0x01020040 >> 16) # lui $t2, 0x102 +/* 0D6754 7F0A1C24 0015CC03 */ sra $t9, $s5, 0x10 +/* 0D6758 7F0A1C28 354A0040 */ ori $t2, (0x01020040 & 0xFFFF) # ori $t2, $t2, 0x40 +/* 0D675C 7F0A1C2C AFA90060 */ sw $t1, 0x60($sp) +/* 0D6760 7F0A1C30 0320A825 */ move $s5, $t9 +/* 0D6764 7F0A1C34 AE2A0000 */ sw $t2, ($s1) +/* 0D6768 7F0A1C38 0C003A2C */ jal osVirtualToPhysical +/* 0D676C 7F0A1C3C 01B82021 */ addu $a0, $t5, $t8 +/* 0D6770 7F0A1C40 1000000A */ b .L7F0A1C6C +/* 0D6774 7F0A1C44 AE220004 */ sw $v0, 4($s1) +.L7F0A1C48: +/* 0D6778 7F0A1C48 84650000 */ lh $a1, ($v1) +/* 0D677C 7F0A1C4C 8FA40060 */ lw $a0, 0x60($sp) +/* 0D6780 7F0A1C50 52A50007 */ beql $s5, $a1, .L7F0A1C70 +/* 0D6784 7F0A1C54 8FAC0048 */ lw $t4, 0x48($sp) +/* 0D6788 7F0A1C58 0005AC00 */ sll $s5, $a1, 0x10 +/* 0D678C 7F0A1C5C 00155C03 */ sra $t3, $s5, 0x10 +/* 0D6790 7F0A1C60 0FC2F271 */ jal sub_GAME_7F0BC9C4 +/* 0D6794 7F0A1C64 0160A825 */ move $s5, $t3 +/* 0D6798 7F0A1C68 AFA20060 */ sw $v0, 0x60($sp) +.L7F0A1C6C: +/* 0D679C 7F0A1C6C 8FAC0048 */ lw $t4, 0x48($sp) +.L7F0A1C70: +/* 0D67A0 7F0A1C70 27A40060 */ addiu $a0, $sp, 0x60 +/* 0D67A4 7F0A1C74 3C0E8009 */ lui $t6, %hi(impactimages) +/* 0D67A8 7F0A1C78 11930008 */ beq $t4, $s3, .L7F0A1C9C +/* 0D67AC 7F0A1C7C 240F0002 */ li $t7, 2 +/* 0D67B0 7F0A1C80 8DCED0BC */ lw $t6, %lo(impactimages)($t6) +/* 0D67B4 7F0A1C84 92060009 */ lbu $a2, 9($s0) +/* 0D67B8 7F0A1C88 9207000A */ lbu $a3, 0xa($s0) +/* 0D67BC 7F0A1C8C AFAF0010 */ sw $t7, 0x10($sp) +/* 0D67C0 7F0A1C90 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 0D67C4 7F0A1C94 024E2821 */ addu $a1, $s2, $t6 +/* 0D67C8 7F0A1C98 AFB30048 */ sw $s3, 0x48($sp) +.L7F0A1C9C: +/* 0D67CC 7F0A1C9C 8FB00060 */ lw $s0, 0x60($sp) +/* 0D67D0 7F0A1CA0 3C190430 */ lui $t9, (0x04300040 >> 16) # lui $t9, 0x430 +/* 0D67D4 7F0A1CA4 37390040 */ ori $t9, (0x04300040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 0D67D8 7F0A1CA8 26180008 */ addiu $t8, $s0, 8 +/* 0D67DC 7F0A1CAC AFB80060 */ sw $t8, 0x60($sp) +/* 0D67E0 7F0A1CB0 AE190000 */ sw $t9, ($s0) +/* 0D67E4 7F0A1CB4 8EE80000 */ lw $t0, ($s7) +/* 0D67E8 7F0A1CB8 01142021 */ addu $a0, $t0, $s4 +/* 0D67EC 7F0A1CBC 0C003A2C */ jal osVirtualToPhysical +/* 0D67F0 7F0A1CC0 24840008 */ addiu $a0, $a0, 8 +/* 0D67F4 7F0A1CC4 AE020004 */ sw $v0, 4($s0) +/* 0D67F8 7F0A1CC8 8FA90060 */ lw $t1, 0x60($sp) +/* 0D67FC 7F0A1CCC 3C0BB100 */ lui $t3, (0xB1000032 >> 16) # lui $t3, 0xb100 +/* 0D6800 7F0A1CD0 356B0032 */ ori $t3, (0xB1000032 & 0xFFFF) # ori $t3, $t3, 0x32 +/* 0D6804 7F0A1CD4 252A0008 */ addiu $t2, $t1, 8 +/* 0D6808 7F0A1CD8 AFAA0060 */ sw $t2, 0x60($sp) +/* 0D680C 7F0A1CDC 240C2010 */ li $t4, 8208 +/* 0D6810 7F0A1CE0 AD2C0004 */ sw $t4, 4($t1) +/* 0D6814 7F0A1CE4 AD2B0000 */ sw $t3, ($t1) +/* 0D6818 7F0A1CE8 26940050 */ addiu $s4, $s4, 0x50 +.L7F0A1CEC: +/* 0D681C 7F0A1CEC 24011F40 */ li $at, 8000 +/* 0D6820 7F0A1CF0 5681FF93 */ bnel $s4, $at, .L7F0A1B40 +/* 0D6824 7F0A1CF4 8EEE0000 */ lw $t6, ($s7) +/* 0D6828 7F0A1CF8 12C0000A */ beqz $s6, .L7F0A1D24 +/* 0D682C 7F0A1CFC 8FAE0050 */ lw $t6, 0x50($sp) +/* 0D6830 7F0A1D00 15C00008 */ bnez $t6, .L7F0A1D24 +/* 0D6834 7F0A1D04 8FAF004C */ lw $t7, 0x4c($sp) +/* 0D6838 7F0A1D08 8FB80068 */ lw $t8, 0x68($sp) +/* 0D683C 7F0A1D0C 91ED0002 */ lbu $t5, 2($t7) +/* 0D6840 7F0A1D10 24190001 */ li $t9, 1 +/* 0D6844 7F0A1D14 03194004 */ sllv $t0, $t9, $t8 +/* 0D6848 7F0A1D18 01004827 */ not $t1, $t0 +/* 0D684C 7F0A1D1C 01A95024 */ and $t2, $t5, $t1 +/* 0D6850 7F0A1D20 A1EA0002 */ sb $t2, 2($t7) +.L7F0A1D24: +/* 0D6854 7F0A1D24 8FAB0060 */ lw $t3, 0x60($sp) +/* 0D6858 7F0A1D28 3C0EBA00 */ lui $t6, (0xBA000602 >> 16) # lui $t6, 0xba00 +/* 0D685C 7F0A1D2C 35CE0602 */ ori $t6, (0xBA000602 & 0xFFFF) # ori $t6, $t6, 0x602 +/* 0D6860 7F0A1D30 256C0008 */ addiu $t4, $t3, 8 +/* 0D6864 7F0A1D34 AFAC0060 */ sw $t4, 0x60($sp) +/* 0D6868 7F0A1D38 24190040 */ li $t9, 64 +/* 0D686C 7F0A1D3C AD790004 */ sw $t9, 4($t3) +/* 0D6870 7F0A1D40 AD6E0000 */ sw $t6, ($t3) +/* 0D6874 7F0A1D44 8FBF0044 */ lw $ra, 0x44($sp) +/* 0D6878 7F0A1D48 8FBE0040 */ lw $fp, 0x40($sp) +/* 0D687C 7F0A1D4C 8FB7003C */ lw $s7, 0x3c($sp) +/* 0D6880 7F0A1D50 8FB60038 */ lw $s6, 0x38($sp) +/* 0D6884 7F0A1D54 8FB50034 */ lw $s5, 0x34($sp) +/* 0D6888 7F0A1D58 8FB40030 */ lw $s4, 0x30($sp) +/* 0D688C 7F0A1D5C 8FB3002C */ lw $s3, 0x2c($sp) +/* 0D6890 7F0A1D60 8FB20028 */ lw $s2, 0x28($sp) +/* 0D6894 7F0A1D64 8FB10024 */ lw $s1, 0x24($sp) +/* 0D6898 7F0A1D68 8FB00020 */ lw $s0, 0x20($sp) +/* 0D689C 7F0A1D6C 8FA20060 */ lw $v0, 0x60($sp) +/* 0D68A0 7F0A1D70 03E00008 */ jr $ra +/* 0D68A4 7F0A1D74 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + + +void sub_GAME_7F0A1D78(u32 *param_1) +{ + sub_GAME_7F0A1A94(param_1,0,0); +} + + diff --git a/src/game/unk_09C250.h b/src/game/unk_09C250.h new file mode 100644 index 0000000..8d368e1 --- /dev/null +++ b/src/game/unk_09C250.h @@ -0,0 +1,7 @@ +#ifndef _UNK_09C250_H_ +#define _UNK_09C250_H_ +#include "ultra64.h" + +extern char dword_CODE_bss_8007A100[]; + +#endif diff --git a/src/game/unk_0A1DA0.c b/src/game/unk_0A1DA0.c new file mode 100644 index 0000000..09f4e15 --- /dev/null +++ b/src/game/unk_0A1DA0.c @@ -0,0 +1,3281 @@ +#include "ultra64.h" + +// bss +//CODE.bss:8007A160 +u32 dword_CODE_bss_8007A160; +//CODE.bss:8007A164 +u32 dword_CODE_bss_8007A164; +//CODE.bss:8007A168 +u32 dword_CODE_bss_8007A168; +//CODE.bss:8007A16C +u32 dword_CODE_bss_8007A16C; +//CODE.bss:8007A170 +u8 dword_CODE_bss_8007A170[0x370]; +//CODE.bss:8007A4E0 +u8 dword_CODE_bss_8007A4E0[0xBB8]; +//CODE.bss:8007B098 +u8 dword_CODE_bss_8007B098[8]; + + +// data +//D:80040940 +u32 D_80040940[] = { + 0, 0, 0, 0, + 0, 0, 0, 0 +}; + +//D:80040960 +u32 D_80040960[] = { + 0xFFFFFFFF, + 0xFFFFC8FF, + 0xFF0000FF, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0, 0 +}; + +u32 D_80040980 = 0; +u32 D_80040984 = 0; +u32 D_80040988 = 0; +u32 D_8004098C = 0; +u32 D_80040990 = 0; +u32 watch_screen_index = 0; +u32 D_80040998 = 0; +u32 D_8004099C = 0; + +// rodata + + + +#ifdef NONMATCHING +void sub_GAME_7F0A1DA0(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80057710 +.word 0x3dcccccd /*0.1*/ +glabel D_80057714 +.word 0x3f333333 /*0.69999999*/ +.text +glabel sub_GAME_7F0A1DA0 +/* 0D68D0 7F0A1DA0 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 0D68D4 7F0A1DA4 AFBF005C */ sw $ra, 0x5c($sp) +/* 0D68D8 7F0A1DA8 AFB50058 */ sw $s5, 0x58($sp) +/* 0D68DC 7F0A1DAC AFB40054 */ sw $s4, 0x54($sp) +/* 0D68E0 7F0A1DB0 AFB30050 */ sw $s3, 0x50($sp) +/* 0D68E4 7F0A1DB4 AFB2004C */ sw $s2, 0x4c($sp) +/* 0D68E8 7F0A1DB8 AFB10048 */ sw $s1, 0x48($sp) +/* 0D68EC 7F0A1DBC AFB00044 */ sw $s0, 0x44($sp) +/* 0D68F0 7F0A1DC0 F7BE0038 */ sdc1 $f30, 0x38($sp) +/* 0D68F4 7F0A1DC4 F7BC0030 */ sdc1 $f28, 0x30($sp) +/* 0D68F8 7F0A1DC8 F7BA0028 */ sdc1 $f26, 0x28($sp) +/* 0D68FC 7F0A1DCC F7B80020 */ sdc1 $f24, 0x20($sp) +/* 0D6900 7F0A1DD0 F7B60018 */ sdc1 $f22, 0x18($sp) +/* 0D6904 7F0A1DD4 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0D6908 7F0A1DD8 C4A40000 */ lwc1 $f4, ($a1) +/* 0D690C 7F0A1DDC 00C08025 */ move $s0, $a2 +/* 0D6910 7F0A1DE0 00808825 */ move $s1, $a0 +/* 0D6914 7F0A1DE4 E7A40090 */ swc1 $f4, 0x90($sp) +/* 0D6918 7F0A1DE8 C4A60004 */ lwc1 $f6, 4($a1) +/* 0D691C 7F0A1DEC C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 0D6920 7F0A1DF0 00E09025 */ move $s2, $a3 +/* 0D6924 7F0A1DF4 E7A60094 */ swc1 $f6, 0x94($sp) +/* 0D6928 7F0A1DF8 460A5402 */ mul.s $f16, $f10, $f10 +/* 0D692C 7F0A1DFC C4A80008 */ lwc1 $f8, 8($a1) +/* 0D6930 7F0A1E00 C7B20094 */ lwc1 $f18, 0x94($sp) +/* 0D6934 7F0A1E04 E7A80098 */ swc1 $f8, 0x98($sp) +/* 0D6938 7F0A1E08 46129102 */ mul.s $f4, $f18, $f18 +/* 0D693C 7F0A1E0C C7A80098 */ lwc1 $f8, 0x98($sp) +/* 0D6940 7F0A1E10 46084282 */ mul.s $f10, $f8, $f8 +/* 0D6944 7F0A1E14 46048180 */ add.s $f6, $f16, $f4 +/* 0D6948 7F0A1E18 0C007DF8 */ jal sqrtf +/* 0D694C 7F0A1E1C 46065300 */ add.s $f12, $f10, $f6 +/* 0D6950 7F0A1E20 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D6954 7F0A1E24 4481D000 */ mtc1 $at, $f26 +/* 0D6958 7F0A1E28 C7B20090 */ lwc1 $f18, 0x90($sp) +/* 0D695C 7F0A1E2C C7A40094 */ lwc1 $f4, 0x94($sp) +/* 0D6960 7F0A1E30 4600D503 */ div.s $f20, $f26, $f0 +/* 0D6964 7F0A1E34 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 0D6968 7F0A1E38 C7B600F0 */ lwc1 $f22, 0xf0($sp) +/* 0D696C 7F0A1E3C C7BC00F4 */ lwc1 $f28, 0xf4($sp) +/* 0D6970 7F0A1E40 46149402 */ mul.s $f16, $f18, $f20 +/* 0D6974 7F0A1E44 00000000 */ nop +/* 0D6978 7F0A1E48 46142202 */ mul.s $f8, $f4, $f20 +/* 0D697C 7F0A1E4C 00000000 */ nop +/* 0D6980 7F0A1E50 46145182 */ mul.s $f6, $f10, $f20 +/* 0D6984 7F0A1E54 E7B00090 */ swc1 $f16, 0x90($sp) +/* 0D6988 7F0A1E58 4600B582 */ mul.s $f22, $f22, $f0 +/* 0D698C 7F0A1E5C E7A80094 */ swc1 $f8, 0x94($sp) +/* 0D6990 7F0A1E60 4600E702 */ mul.s $f28, $f28, $f0 +/* 0D6994 7F0A1E64 E7A60098 */ swc1 $f6, 0x98($sp) +/* 0D6998 7F0A1E68 C6120000 */ lwc1 $f18, ($s0) +/* 0D699C 7F0A1E6C E7B20084 */ swc1 $f18, 0x84($sp) +/* 0D69A0 7F0A1E70 C6100004 */ lwc1 $f16, 4($s0) +/* 0D69A4 7F0A1E74 C7A80084 */ lwc1 $f8, 0x84($sp) +/* 0D69A8 7F0A1E78 E7B00088 */ swc1 $f16, 0x88($sp) +/* 0D69AC 7F0A1E7C 46084282 */ mul.s $f10, $f8, $f8 +/* 0D69B0 7F0A1E80 C6040008 */ lwc1 $f4, 8($s0) +/* 0D69B4 7F0A1E84 C7A60088 */ lwc1 $f6, 0x88($sp) +/* 0D69B8 7F0A1E88 E7A4008C */ swc1 $f4, 0x8c($sp) +/* 0D69BC 7F0A1E8C 46063482 */ mul.s $f18, $f6, $f6 +/* 0D69C0 7F0A1E90 C7A4008C */ lwc1 $f4, 0x8c($sp) +/* 0D69C4 7F0A1E94 46042202 */ mul.s $f8, $f4, $f4 +/* 0D69C8 7F0A1E98 46125400 */ add.s $f16, $f10, $f18 +/* 0D69CC 7F0A1E9C 0C007DF8 */ jal sqrtf +/* 0D69D0 7F0A1EA0 46104300 */ add.s $f12, $f8, $f16 +/* 0D69D4 7F0A1EA4 4600D503 */ div.s $f20, $f26, $f0 +/* 0D69D8 7F0A1EA8 C7A60084 */ lwc1 $f6, 0x84($sp) +/* 0D69DC 7F0A1EAC C7B20088 */ lwc1 $f18, 0x88($sp) +/* 0D69E0 7F0A1EB0 C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 0D69E4 7F0A1EB4 C7B800F8 */ lwc1 $f24, 0xf8($sp) +/* 0D69E8 7F0A1EB8 46143282 */ mul.s $f10, $f6, $f20 +/* 0D69EC 7F0A1EBC C7A600FC */ lwc1 $f6, 0xfc($sp) +/* 0D69F0 7F0A1EC0 46149102 */ mul.s $f4, $f18, $f20 +/* 0D69F4 7F0A1EC4 00000000 */ nop +/* 0D69F8 7F0A1EC8 46144402 */ mul.s $f16, $f8, $f20 +/* 0D69FC 7F0A1ECC E7AA0084 */ swc1 $f10, 0x84($sp) +/* 0D6A00 7F0A1ED0 4600C602 */ mul.s $f24, $f24, $f0 +/* 0D6A04 7F0A1ED4 E7A40088 */ swc1 $f4, 0x88($sp) +/* 0D6A08 7F0A1ED8 46003282 */ mul.s $f10, $f6, $f0 +/* 0D6A0C 7F0A1EDC E7B0008C */ swc1 $f16, 0x8c($sp) +/* 0D6A10 7F0A1EE0 E7AA00FC */ swc1 $f10, 0xfc($sp) +/* 0D6A14 7F0A1EE4 C64E0008 */ lwc1 $f14, 8($s2) +/* 0D6A18 7F0A1EE8 0FC16A8C */ jal atan2f +/* 0D6A1C 7F0A1EEC C64C0000 */ lwc1 $f12, ($s2) +/* 0D6A20 7F0A1EF0 C7B200FC */ lwc1 $f18, 0xfc($sp) +/* 0D6A24 7F0A1EF4 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_8007A160) +/* 0D6A28 7F0A1EF8 8DCEA160 */ lw $t6, %lo(dword_CODE_bss_8007A160)($t6) +/* 0D6A2C 7F0A1EFC 4616E501 */ sub.s $f20, $f28, $f22 +/* 0D6A30 7F0A1F00 46000786 */ mov.s $f30, $f0 +/* 0D6A34 7F0A1F04 46189681 */ sub.s $f26, $f18, $f24 +/* 0D6A38 7F0A1F08 461AA102 */ mul.s $f4, $f20, $f26 +/* 0D6A3C 7F0A1F0C 05C10003 */ bgez $t6, .L7F0A1F1C +/* 0D6A40 7F0A1F10 000E7843 */ sra $t7, $t6, 1 +/* 0D6A44 7F0A1F14 25C10001 */ addiu $at, $t6, 1 +/* 0D6A48 7F0A1F18 00017843 */ sra $t7, $at, 1 +.L7F0A1F1C: +/* 0D6A4C 7F0A1F1C 448F4000 */ mtc1 $t7, $f8 +/* 0D6A50 7F0A1F20 00000000 */ nop +/* 0D6A54 7F0A1F24 46804420 */ cvt.s.w $f16, $f8 +/* 0D6A58 7F0A1F28 0C007DF8 */ jal sqrtf +/* 0D6A5C 7F0A1F2C 46102303 */ div.s $f12, $f4, $f16 +/* 0D6A60 7F0A1F30 4600018D */ trunc.w.s $f6, $f0 +/* 0D6A64 7F0A1F34 C7A80090 */ lwc1 $f8, 0x90($sp) +/* 0D6A68 7F0A1F38 E7A000B0 */ swc1 $f0, 0xb0($sp) +/* 0D6A6C 7F0A1F3C C6320000 */ lwc1 $f18, ($s1) +/* 0D6A70 7F0A1F40 44023000 */ mfc1 $v0, $f6 +/* 0D6A74 7F0A1F44 C7A60084 */ lwc1 $f6, 0x84($sp) +/* 0D6A78 7F0A1F48 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0D6A7C 7F0A1F4C 0002C843 */ sra $t9, $v0, 1 +/* 0D6A80 7F0A1F50 44995000 */ mtc1 $t9, $f10 +/* 0D6A84 7F0A1F54 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0D6A88 7F0A1F58 24050047 */ li $a1, 71 +/* 0D6A8C 7F0A1F5C 468053A0 */ cvt.s.w $f14, $f10 +/* 0D6A90 7F0A1F60 00003025 */ move $a2, $zero +/* 0D6A94 7F0A1F64 00408025 */ move $s0, $v0 +/* 0D6A98 7F0A1F68 00409025 */ move $s2, $v0 +/* 0D6A9C 7F0A1F6C 460EB300 */ add.s $f12, $f22, $f14 +/* 0D6AA0 7F0A1F70 460EC080 */ add.s $f2, $f24, $f14 +/* 0D6AA4 7F0A1F74 46086102 */ mul.s $f4, $f12, $f8 +/* 0D6AA8 7F0A1F78 46049400 */ add.s $f16, $f18, $f4 +/* 0D6AAC 7F0A1F7C 46023282 */ mul.s $f10, $f6, $f2 +/* 0D6AB0 7F0A1F80 C7A40094 */ lwc1 $f4, 0x94($sp) +/* 0D6AB4 7F0A1F84 46046182 */ mul.s $f6, $f12, $f4 +/* 0D6AB8 7F0A1F88 46105200 */ add.s $f8, $f10, $f16 +/* 0D6ABC 7F0A1F8C C7B00088 */ lwc1 $f16, 0x88($sp) +/* 0D6AC0 7F0A1F90 E7A8009C */ swc1 $f8, 0x9c($sp) +/* 0D6AC4 7F0A1F94 46028202 */ mul.s $f8, $f16, $f2 +/* 0D6AC8 7F0A1F98 C6320004 */ lwc1 $f18, 4($s1) +/* 0D6ACC 7F0A1F9C 46069280 */ add.s $f10, $f18, $f6 +/* 0D6AD0 7F0A1FA0 C7A60098 */ lwc1 $f6, 0x98($sp) +/* 0D6AD4 7F0A1FA4 460A4100 */ add.s $f4, $f8, $f10 +/* 0D6AD8 7F0A1FA8 46066402 */ mul.s $f16, $f12, $f6 +/* 0D6ADC 7F0A1FAC C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0D6AE0 7F0A1FB0 E7A400A0 */ swc1 $f4, 0xa0($sp) +/* 0D6AE4 7F0A1FB4 46025102 */ mul.s $f4, $f10, $f2 +/* 0D6AE8 7F0A1FB8 C6320008 */ lwc1 $f18, 8($s1) +/* 0D6AEC 7F0A1FBC 46109200 */ add.s $f8, $f18, $f16 +/* 0D6AF0 7F0A1FC0 46082180 */ add.s $f6, $f4, $f8 +/* 0D6AF4 7F0A1FC4 0C002382 */ jal play_sfx_a1 +/* 0D6AF8 7F0A1FC8 E7A600A4 */ swc1 $f6, 0xa4($sp) +/* 0D6AFC 7F0A1FCC 00402025 */ move $a0, $v0 +/* 0D6B00 7F0A1FD0 0FC14E84 */ jal sub_GAME_7F053A10 +/* 0D6B04 7F0A1FD4 02202825 */ move $a1, $s1 +/* 0D6B08 7F0A1FD8 44922000 */ mtc1 $s2, $f4 +/* 0D6B0C 7F0A1FDC 44909000 */ mtc1 $s0, $f18 +/* 0D6B10 7F0A1FE0 00009825 */ move $s3, $zero +/* 0D6B14 7F0A1FE4 46802220 */ cvt.s.w $f8, $f4 +/* 0D6B18 7F0A1FE8 3C018005 */ lui $at, %hi(D_80057710) +/* 0D6B1C 7F0A1FEC 468095A0 */ cvt.s.w $f22, $f18 +/* 0D6B20 7F0A1FF0 E7A80068 */ swc1 $f8, 0x68($sp) +/* 0D6B24 7F0A1FF4 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 0D6B28 7F0A1FF8 4606D483 */ div.s $f18, $f26, $f6 +/* 0D6B2C 7F0A1FFC 4616A403 */ div.s $f16, $f20, $f22 +/* 0D6B30 7F0A2000 4600828D */ trunc.w.s $f10, $f16 +/* 0D6B34 7F0A2004 4600940D */ trunc.w.s $f16, $f18 +/* 0D6B38 7F0A2008 44145000 */ mfc1 $s4, $f10 +/* 0D6B3C 7F0A200C 44158000 */ mfc1 $s5, $f16 +/* 0D6B40 7F0A2010 02808825 */ move $s1, $s4 +/* 0D6B44 7F0A2014 5AA00044 */ blezl $s5, .L7F0A2128 +/* 0D6B48 7F0A2018 8FBF005C */ lw $ra, 0x5c($sp) +/* 0D6B4C 7F0A201C C43C7710 */ lwc1 $f28, %lo(D_80057710)($at) +/* 0D6B50 7F0A2020 3C018005 */ lui $at, %hi(D_80057714) +/* 0D6B54 7F0A2024 C43A7714 */ lwc1 $f26, %lo(D_80057714)($at) +/* 0D6B58 7F0A2028 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D6B5C 7F0A202C 4481C000 */ mtc1 $at, $f24 +/* 0D6B60 7F0A2030 27B200C0 */ addiu $s2, $sp, 0xc0 +.L7F0A2034: +/* 0D6B64 7F0A2034 1A800037 */ blez $s4, .L7F0A2114 +/* 0D6B68 7F0A2038 00008025 */ move $s0, $zero +/* 0D6B6C 7F0A203C 44935000 */ mtc1 $s3, $f10 +/* 0D6B70 7F0A2040 C7A80068 */ lwc1 $f8, 0x68($sp) +/* 0D6B74 7F0A2044 46805120 */ cvt.s.w $f4, $f10 +/* 0D6B78 7F0A2048 46082502 */ mul.s $f20, $f4, $f8 +/* 0D6B7C 7F0A204C 00000000 */ nop +/* 0D6B80 7F0A2050 44903000 */ mtc1 $s0, $f6 +.L7F0A2054: +/* 0D6B84 7F0A2054 C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 0D6B88 7F0A2058 C7B0009C */ lwc1 $f16, 0x9c($sp) +/* 0D6B8C 7F0A205C 468034A0 */ cvt.s.w $f18, $f6 +/* 0D6B90 7F0A2060 C7A60084 */ lwc1 $f6, 0x84($sp) +/* 0D6B94 7F0A2064 46169002 */ mul.s $f0, $f18, $f22 +/* 0D6B98 7F0A2068 00000000 */ nop +/* 0D6B9C 7F0A206C 460A0102 */ mul.s $f4, $f0, $f10 +/* 0D6BA0 7F0A2070 46048200 */ add.s $f8, $f16, $f4 +/* 0D6BA4 7F0A2074 46143482 */ mul.s $f18, $f6, $f20 +/* 0D6BA8 7F0A2078 C7A40094 */ lwc1 $f4, 0x94($sp) +/* 0D6BAC 7F0A207C C7B000A0 */ lwc1 $f16, 0xa0($sp) +/* 0D6BB0 7F0A2080 46040182 */ mul.s $f6, $f0, $f4 +/* 0D6BB4 7F0A2084 46089280 */ add.s $f10, $f18, $f8 +/* 0D6BB8 7F0A2088 C7A80088 */ lwc1 $f8, 0x88($sp) +/* 0D6BBC 7F0A208C 46068480 */ add.s $f18, $f16, $f6 +/* 0D6BC0 7F0A2090 E7AA00C0 */ swc1 $f10, 0xc0($sp) +/* 0D6BC4 7F0A2094 46144282 */ mul.s $f10, $f8, $f20 +/* 0D6BC8 7F0A2098 C7A60098 */ lwc1 $f6, 0x98($sp) +/* 0D6BCC 7F0A209C C7B000A4 */ lwc1 $f16, 0xa4($sp) +/* 0D6BD0 7F0A20A0 46060202 */ mul.s $f8, $f0, $f6 +/* 0D6BD4 7F0A20A4 46125100 */ add.s $f4, $f10, $f18 +/* 0D6BD8 7F0A20A8 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 0D6BDC 7F0A20AC 46088280 */ add.s $f10, $f16, $f8 +/* 0D6BE0 7F0A20B0 E7A400C4 */ swc1 $f4, 0xc4($sp) +/* 0D6BE4 7F0A20B4 46149102 */ mul.s $f4, $f18, $f20 +/* 0D6BE8 7F0A20B8 460A2180 */ add.s $f6, $f4, $f10 +/* 0D6BEC 7F0A20BC 0C002914 */ jal get_random_value +/* 0D6BF0 7F0A20C0 E7A600C8 */ swc1 $f6, 0xc8($sp) +/* 0D6BF4 7F0A20C4 44828000 */ mtc1 $v0, $f16 +/* 0D6BF8 7F0A20C8 4405F000 */ mfc1 $a1, $f30 +/* 0D6BFC 7F0A20CC 02402025 */ move $a0, $s2 +/* 0D6C00 7F0A20D0 04410005 */ bgez $v0, .L7F0A20E8 +/* 0D6C04 7F0A20D4 46808220 */ cvt.s.w $f8, $f16 +/* 0D6C08 7F0A20D8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D6C0C 7F0A20DC 44819000 */ mtc1 $at, $f18 +/* 0D6C10 7F0A20E0 00000000 */ nop +/* 0D6C14 7F0A20E4 46124200 */ add.s $f8, $f8, $f18 +.L7F0A20E8: +/* 0D6C18 7F0A20E8 46184102 */ mul.s $f4, $f8, $f24 +/* 0D6C1C 7F0A20EC C7B000B0 */ lwc1 $f16, 0xb0($sp) +/* 0D6C20 7F0A20F0 461A2282 */ mul.s $f10, $f4, $f26 +/* 0D6C24 7F0A20F4 461C5180 */ add.s $f6, $f10, $f28 +/* 0D6C28 7F0A20F8 46103482 */ mul.s $f18, $f6, $f16 +/* 0D6C2C 7F0A20FC 44069000 */ mfc1 $a2, $f18 +/* 0D6C30 7F0A2100 0FC28858 */ jal sub_GAME_7F0A2160 +/* 0D6C34 7F0A2104 00000000 */ nop +/* 0D6C38 7F0A2108 26100001 */ addiu $s0, $s0, 1 +/* 0D6C3C 7F0A210C 5611FFD1 */ bnel $s0, $s1, .L7F0A2054 +/* 0D6C40 7F0A2110 44903000 */ mtc1 $s0, $f6 +.L7F0A2114: +/* 0D6C44 7F0A2114 26730001 */ addiu $s3, $s3, 1 +/* 0D6C48 7F0A2118 0275082A */ slt $at, $s3, $s5 +/* 0D6C4C 7F0A211C 1420FFC5 */ bnez $at, .L7F0A2034 +/* 0D6C50 7F0A2120 00000000 */ nop +/* 0D6C54 7F0A2124 8FBF005C */ lw $ra, 0x5c($sp) +.L7F0A2128: +/* 0D6C58 7F0A2128 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0D6C5C 7F0A212C D7B60018 */ ldc1 $f22, 0x18($sp) +/* 0D6C60 7F0A2130 D7B80020 */ ldc1 $f24, 0x20($sp) +/* 0D6C64 7F0A2134 D7BA0028 */ ldc1 $f26, 0x28($sp) +/* 0D6C68 7F0A2138 D7BC0030 */ ldc1 $f28, 0x30($sp) +/* 0D6C6C 7F0A213C D7BE0038 */ ldc1 $f30, 0x38($sp) +/* 0D6C70 7F0A2140 8FB00044 */ lw $s0, 0x44($sp) +/* 0D6C74 7F0A2144 8FB10048 */ lw $s1, 0x48($sp) +/* 0D6C78 7F0A2148 8FB2004C */ lw $s2, 0x4c($sp) +/* 0D6C7C 7F0A214C 8FB30050 */ lw $s3, 0x50($sp) +/* 0D6C80 7F0A2150 8FB40054 */ lw $s4, 0x54($sp) +/* 0D6C84 7F0A2154 8FB50058 */ lw $s5, 0x58($sp) +/* 0D6C88 7F0A2158 03E00008 */ jr $ra +/* 0D6C8C 7F0A215C 27BD00E0 */ addiu $sp, $sp, 0xe0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A2160(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80057718 +.word 0x3f8f5c29 /*1.12*/ +glabel D_8005771C +.word 0x3df5c28f /*0.12*/ +glabel D_80057720 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80057724 +.word 0x3dcccccd /*0.1*/ +.text +glabel sub_GAME_7F0A2160 +/* 0D6C90 7F0A2160 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0D6C94 7F0A2164 AFBF003C */ sw $ra, 0x3c($sp) +/* 0D6C98 7F0A2168 AFB20038 */ sw $s2, 0x38($sp) +/* 0D6C9C 7F0A216C AFB10034 */ sw $s1, 0x34($sp) +/* 0D6CA0 7F0A2170 AFB00030 */ sw $s0, 0x30($sp) +/* 0D6CA4 7F0A2174 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0D6CA8 7F0A2178 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0D6CAC 7F0A217C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D6CB0 7F0A2180 AFA40058 */ sw $a0, 0x58($sp) +/* 0D6CB4 7F0A2184 AFA5005C */ sw $a1, 0x5c($sp) +/* 0D6CB8 7F0A2188 0C002914 */ jal get_random_value +/* 0D6CBC 7F0A218C AFA60060 */ sw $a2, 0x60($sp) +/* 0D6CC0 7F0A2190 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D6CC4 7F0A2194 4481A000 */ mtc1 $at, $f20 +/* 0D6CC8 7F0A2198 44822000 */ mtc1 $v0, $f4 +/* 0D6CCC 7F0A219C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D6CD0 7F0A21A0 4481B000 */ mtc1 $at, $f22 +/* 0D6CD4 7F0A21A4 04410005 */ bgez $v0, .L7F0A21BC +/* 0D6CD8 7F0A21A8 468021A0 */ cvt.s.w $f6, $f4 +/* 0D6CDC 7F0A21AC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D6CE0 7F0A21B0 44814000 */ mtc1 $at, $f8 +/* 0D6CE4 7F0A21B4 00000000 */ nop +/* 0D6CE8 7F0A21B8 46083180 */ add.s $f6, $f6, $f8 +.L7F0A21BC: +/* 0D6CEC 7F0A21BC 46143002 */ mul.s $f0, $f6, $f20 +/* 0D6CF0 7F0A21C0 46000280 */ add.s $f10, $f0, $f0 +/* 0D6CF4 7F0A21C4 0C002914 */ jal get_random_value +/* 0D6CF8 7F0A21C8 46165601 */ sub.s $f24, $f10, $f22 +/* 0D6CFC 7F0A21CC 44828000 */ mtc1 $v0, $f16 +/* 0D6D00 7F0A21D0 04410005 */ bgez $v0, .L7F0A21E8 +/* 0D6D04 7F0A21D4 468084A0 */ cvt.s.w $f18, $f16 +/* 0D6D08 7F0A21D8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D6D0C 7F0A21DC 44812000 */ mtc1 $at, $f4 +/* 0D6D10 7F0A21E0 00000000 */ nop +/* 0D6D14 7F0A21E4 46049480 */ add.s $f18, $f18, $f4 +.L7F0A21E8: +/* 0D6D18 7F0A21E8 46149202 */ mul.s $f8, $f18, $f20 +/* 0D6D1C 7F0A21EC 3C018005 */ lui $at, %hi(D_80057718) +/* 0D6D20 7F0A21F0 C4267718 */ lwc1 $f6, %lo(D_80057718)($at) +/* 0D6D24 7F0A21F4 3C018005 */ lui $at, %hi(D_8005771C) +/* 0D6D28 7F0A21F8 C430771C */ lwc1 $f16, %lo(D_8005771C)($at) +/* 0D6D2C 7F0A21FC 46064282 */ mul.s $f10, $f8, $f6 +/* 0D6D30 7F0A2200 46105101 */ sub.s $f4, $f10, $f16 +/* 0D6D34 7F0A2204 0C002914 */ jal get_random_value +/* 0D6D38 7F0A2208 E7A40050 */ swc1 $f4, 0x50($sp) +/* 0D6D3C 7F0A220C 3C108004 */ lui $s0, %hi(D_80040940) +/* 0D6D40 7F0A2210 26100940 */ addiu $s0, %lo(D_80040940) # addiu $s0, $s0, 0x940 +/* 0D6D44 7F0A2214 8E180000 */ lw $t8, ($s0) +/* 0D6D48 7F0A2218 24120068 */ li $s2, 104 +/* 0D6D4C 7F0A221C 3C118008 */ lui $s1, %hi(dword_CODE_bss_8007A164) +/* 0D6D50 7F0A2220 03120019 */ multu $t8, $s2 +/* 0D6D54 7F0A2224 2631A164 */ addiu $s1, %lo(dword_CODE_bss_8007A164) # addiu $s1, $s1, -0x5e9c +/* 0D6D58 7F0A2228 8E2F0000 */ lw $t7, ($s1) +/* 0D6D5C 7F0A222C 8FA30058 */ lw $v1, 0x58($sp) +/* 0D6D60 7F0A2230 240E0001 */ li $t6, 1 +/* 0D6D64 7F0A2234 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0D6D68 7F0A2238 44811000 */ mtc1 $at, $f2 +/* 0D6D6C 7F0A223C 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 0D6D70 7F0A2240 44812000 */ mtc1 $at, $f4 +/* 0D6D74 7F0A2244 4602C282 */ mul.s $f10, $f24, $f2 +/* 0D6D78 7F0A2248 0000C812 */ mflo $t9 +/* 0D6D7C 7F0A224C 01F94021 */ addu $t0, $t7, $t9 +/* 0D6D80 7F0A2250 AD0E0000 */ sw $t6, ($t0) +/* 0D6D84 7F0A2254 8E0A0000 */ lw $t2, ($s0) +/* 0D6D88 7F0A2258 8E290000 */ lw $t1, ($s1) +/* 0D6D8C 7F0A225C C4720000 */ lwc1 $f18, ($v1) +/* 0D6D90 7F0A2260 01520019 */ multu $t2, $s2 +/* 0D6D94 7F0A2264 00005812 */ mflo $t3 +/* 0D6D98 7F0A2268 012B6021 */ addu $t4, $t1, $t3 +/* 0D6D9C 7F0A226C E5920004 */ swc1 $f18, 4($t4) +/* 0D6DA0 7F0A2270 8E180000 */ lw $t8, ($s0) +/* 0D6DA4 7F0A2274 8E2D0000 */ lw $t5, ($s1) +/* 0D6DA8 7F0A2278 C4680004 */ lwc1 $f8, 4($v1) +/* 0D6DAC 7F0A227C 03120019 */ multu $t8, $s2 +/* 0D6DB0 7F0A2280 00007812 */ mflo $t7 +/* 0D6DB4 7F0A2284 01AFC821 */ addu $t9, $t5, $t7 +/* 0D6DB8 7F0A2288 E7280008 */ swc1 $f8, 8($t9) +/* 0D6DBC 7F0A228C 8E080000 */ lw $t0, ($s0) +/* 0D6DC0 7F0A2290 8E2E0000 */ lw $t6, ($s1) +/* 0D6DC4 7F0A2294 C4660008 */ lwc1 $f6, 8($v1) +/* 0D6DC8 7F0A2298 01120019 */ multu $t0, $s2 +/* 0D6DCC 7F0A229C 44824000 */ mtc1 $v0, $f8 +/* 0D6DD0 7F0A22A0 00005012 */ mflo $t2 +/* 0D6DD4 7F0A22A4 01CA4821 */ addu $t1, $t6, $t2 +/* 0D6DD8 7F0A22A8 E526000C */ swc1 $f6, 0xc($t1) +/* 0D6DDC 7F0A22AC 8E0C0000 */ lw $t4, ($s0) +/* 0D6DE0 7F0A22B0 8E2B0000 */ lw $t3, ($s1) +/* 0D6DE4 7F0A22B4 468041A0 */ cvt.s.w $f6, $f8 +/* 0D6DE8 7F0A22B8 01920019 */ multu $t4, $s2 +/* 0D6DEC 7F0A22BC 0000C012 */ mflo $t8 +/* 0D6DF0 7F0A22C0 01786821 */ addu $t5, $t3, $t8 +/* 0D6DF4 7F0A22C4 E5AA001C */ swc1 $f10, 0x1c($t5) +/* 0D6DF8 7F0A22C8 8E190000 */ lw $t9, ($s0) +/* 0D6DFC 7F0A22CC C7B00050 */ lwc1 $f16, 0x50($sp) +/* 0D6E00 7F0A22D0 8E2F0000 */ lw $t7, ($s1) +/* 0D6E04 7F0A22D4 03320019 */ multu $t9, $s2 +/* 0D6E08 7F0A22D8 46048482 */ mul.s $f18, $f16, $f4 +/* 0D6E0C 7F0A22DC 00004012 */ mflo $t0 +/* 0D6E10 7F0A22E0 01E87021 */ addu $t6, $t7, $t0 +/* 0D6E14 7F0A22E4 04410005 */ bgez $v0, .L7F0A22FC +/* 0D6E18 7F0A22E8 E5D20020 */ swc1 $f18, 0x20($t6) +/* 0D6E1C 7F0A22EC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D6E20 7F0A22F0 44815000 */ mtc1 $at, $f10 +/* 0D6E24 7F0A22F4 00000000 */ nop +/* 0D6E28 7F0A22F8 460A3180 */ add.s $f6, $f6, $f10 +.L7F0A22FC: +/* 0D6E2C 7F0A22FC 46143002 */ mul.s $f0, $f6, $f20 +/* 0D6E30 7F0A2300 8E090000 */ lw $t1, ($s0) +/* 0D6E34 7F0A2304 8E2A0000 */ lw $t2, ($s1) +/* 0D6E38 7F0A2308 01320019 */ multu $t1, $s2 +/* 0D6E3C 7F0A230C 46000400 */ add.s $f16, $f0, $f0 +/* 0D6E40 7F0A2310 46168101 */ sub.s $f4, $f16, $f22 +/* 0D6E44 7F0A2314 00006012 */ mflo $t4 +/* 0D6E48 7F0A2318 46022482 */ mul.s $f18, $f4, $f2 +/* 0D6E4C 7F0A231C 014C5821 */ addu $t3, $t2, $t4 +/* 0D6E50 7F0A2320 0C002914 */ jal get_random_value +/* 0D6E54 7F0A2324 E5720024 */ swc1 $f18, 0x24($t3) +/* 0D6E58 7F0A2328 44824000 */ mtc1 $v0, $f8 +/* 0D6E5C 7F0A232C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D6E60 7F0A2330 4481C000 */ mtc1 $at, $f24 +/* 0D6E64 7F0A2334 04410005 */ bgez $v0, .L7F0A234C +/* 0D6E68 7F0A2338 468042A0 */ cvt.s.w $f10, $f8 +/* 0D6E6C 7F0A233C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D6E70 7F0A2340 44813000 */ mtc1 $at, $f6 +/* 0D6E74 7F0A2344 00000000 */ nop +/* 0D6E78 7F0A2348 46065280 */ add.s $f10, $f10, $f6 +.L7F0A234C: +/* 0D6E7C 7F0A234C 46145402 */ mul.s $f16, $f10, $f20 +/* 0D6E80 7F0A2350 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 0D6E84 7F0A2354 8E0F0000 */ lw $t7, ($s0) +/* 0D6E88 7F0A2358 8E390000 */ lw $t9, ($s1) +/* 0D6E8C 7F0A235C 01F20019 */ multu $t7, $s2 +/* 0D6E90 7F0A2360 46188102 */ mul.s $f4, $f16, $f24 +/* 0D6E94 7F0A2364 46162480 */ add.s $f18, $f4, $f22 +/* 0D6E98 7F0A2368 00004012 */ mflo $t0 +/* 0D6E9C 7F0A236C 03287021 */ addu $t6, $t9, $t0 +/* 0D6EA0 7F0A2370 46089182 */ mul.s $f6, $f18, $f8 +/* 0D6EA4 7F0A2374 4600328D */ trunc.w.s $f10, $f6 +/* 0D6EA8 7F0A2378 440D5000 */ mfc1 $t5, $f10 +/* 0D6EAC 7F0A237C 0C002914 */ jal get_random_value +/* 0D6EB0 7F0A2380 A5CD0038 */ sh $t5, 0x38($t6) +/* 0D6EB4 7F0A2384 44828000 */ mtc1 $v0, $f16 +/* 0D6EB8 7F0A2388 04410005 */ bgez $v0, .L7F0A23A0 +/* 0D6EBC 7F0A238C 46808120 */ cvt.s.w $f4, $f16 +/* 0D6EC0 7F0A2390 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D6EC4 7F0A2394 44819000 */ mtc1 $at, $f18 +/* 0D6EC8 7F0A2398 00000000 */ nop +/* 0D6ECC 7F0A239C 46122100 */ add.s $f4, $f4, $f18 +.L7F0A23A0: +/* 0D6ED0 7F0A23A0 46142202 */ mul.s $f8, $f4, $f20 +/* 0D6ED4 7F0A23A4 C7B00060 */ lwc1 $f16, 0x60($sp) +/* 0D6ED8 7F0A23A8 8E0B0000 */ lw $t3, ($s0) +/* 0D6EDC 7F0A23AC 8E2C0000 */ lw $t4, ($s1) +/* 0D6EE0 7F0A23B0 01720019 */ multu $t3, $s2 +/* 0D6EE4 7F0A23B4 46184182 */ mul.s $f6, $f8, $f24 +/* 0D6EE8 7F0A23B8 46163280 */ add.s $f10, $f6, $f22 +/* 0D6EEC 7F0A23BC 0000C012 */ mflo $t8 +/* 0D6EF0 7F0A23C0 01987821 */ addu $t7, $t4, $t8 +/* 0D6EF4 7F0A23C4 46105482 */ mul.s $f18, $f10, $f16 +/* 0D6EF8 7F0A23C8 4600910D */ trunc.w.s $f4, $f18 +/* 0D6EFC 7F0A23CC 440A2000 */ mfc1 $t2, $f4 +/* 0D6F00 7F0A23D0 00000000 */ nop +/* 0D6F04 7F0A23D4 A5EA003A */ sh $t2, 0x3a($t7) +/* 0D6F08 7F0A23D8 8E080000 */ lw $t0, ($s0) +/* 0D6F0C 7F0A23DC 8E390000 */ lw $t9, ($s1) +/* 0D6F10 7F0A23E0 01120019 */ multu $t0, $s2 +/* 0D6F14 7F0A23E4 00006812 */ mflo $t5 +/* 0D6F18 7F0A23E8 032D7021 */ addu $t6, $t9, $t5 +/* 0D6F1C 7F0A23EC 0C002914 */ jal get_random_value +/* 0D6F20 7F0A23F0 A5C0003C */ sh $zero, 0x3c($t6) +/* 0D6F24 7F0A23F4 44824000 */ mtc1 $v0, $f8 +/* 0D6F28 7F0A23F8 04410005 */ bgez $v0, .L7F0A2410 +/* 0D6F2C 7F0A23FC 468041A0 */ cvt.s.w $f6, $f8 +/* 0D6F30 7F0A2400 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D6F34 7F0A2404 44815000 */ mtc1 $at, $f10 +/* 0D6F38 7F0A2408 00000000 */ nop +/* 0D6F3C 7F0A240C 460A3180 */ add.s $f6, $f6, $f10 +.L7F0A2410: +/* 0D6F40 7F0A2410 46143402 */ mul.s $f16, $f6, $f20 +/* 0D6F44 7F0A2414 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 0D6F48 7F0A2418 8E180000 */ lw $t8, ($s0) +/* 0D6F4C 7F0A241C 8E2C0000 */ lw $t4, ($s1) +/* 0D6F50 7F0A2420 03120019 */ multu $t8, $s2 +/* 0D6F54 7F0A2424 46188482 */ mul.s $f18, $f16, $f24 +/* 0D6F58 7F0A2428 46169100 */ add.s $f4, $f18, $f22 +/* 0D6F5C 7F0A242C 00005012 */ mflo $t2 +/* 0D6F60 7F0A2430 018A7821 */ addu $t7, $t4, $t2 +/* 0D6F64 7F0A2434 46082282 */ mul.s $f10, $f4, $f8 +/* 0D6F68 7F0A2438 4600518D */ trunc.w.s $f6, $f10 +/* 0D6F6C 7F0A243C 440B3000 */ mfc1 $t3, $f6 +/* 0D6F70 7F0A2440 0C002914 */ jal get_random_value +/* 0D6F74 7F0A2444 A5EB0048 */ sh $t3, 0x48($t7) +/* 0D6F78 7F0A2448 C7A00060 */ lwc1 $f0, 0x60($sp) +/* 0D6F7C 7F0A244C 44828000 */ mtc1 $v0, $f16 +/* 0D6F80 7F0A2450 46000007 */ neg.s $f0, $f0 +/* 0D6F84 7F0A2454 04410005 */ bgez $v0, .L7F0A246C +/* 0D6F88 7F0A2458 468084A0 */ cvt.s.w $f18, $f16 +/* 0D6F8C 7F0A245C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D6F90 7F0A2460 44812000 */ mtc1 $at, $f4 +/* 0D6F94 7F0A2464 00000000 */ nop +/* 0D6F98 7F0A2468 46049480 */ add.s $f18, $f18, $f4 +.L7F0A246C: +/* 0D6F9C 7F0A246C 46149202 */ mul.s $f8, $f18, $f20 +/* 0D6FA0 7F0A2470 8E0E0000 */ lw $t6, ($s0) +/* 0D6FA4 7F0A2474 8E2D0000 */ lw $t5, ($s1) +/* 0D6FA8 7F0A2478 01D20019 */ multu $t6, $s2 +/* 0D6FAC 7F0A247C 46184282 */ mul.s $f10, $f8, $f24 +/* 0D6FB0 7F0A2480 46165180 */ add.s $f6, $f10, $f22 +/* 0D6FB4 7F0A2484 00004812 */ mflo $t1 +/* 0D6FB8 7F0A2488 01A9C021 */ addu $t8, $t5, $t1 +/* 0D6FBC 7F0A248C 46003402 */ mul.s $f16, $f6, $f0 +/* 0D6FC0 7F0A2490 4600810D */ trunc.w.s $f4, $f16 +/* 0D6FC4 7F0A2494 44192000 */ mfc1 $t9, $f4 +/* 0D6FC8 7F0A2498 00000000 */ nop +/* 0D6FCC 7F0A249C A719004A */ sh $t9, 0x4a($t8) +/* 0D6FD0 7F0A24A0 8E0A0000 */ lw $t2, ($s0) +/* 0D6FD4 7F0A24A4 8E2C0000 */ lw $t4, ($s1) +/* 0D6FD8 7F0A24A8 01520019 */ multu $t2, $s2 +/* 0D6FDC 7F0A24AC 00005812 */ mflo $t3 +/* 0D6FE0 7F0A24B0 018B7821 */ addu $t7, $t4, $t3 +/* 0D6FE4 7F0A24B4 A5E0004C */ sh $zero, 0x4c($t7) +/* 0D6FE8 7F0A24B8 0C002914 */ jal get_random_value +/* 0D6FEC 7F0A24BC E7A00044 */ swc1 $f0, 0x44($sp) +/* 0D6FF0 7F0A24C0 44829000 */ mtc1 $v0, $f18 +/* 0D6FF4 7F0A24C4 04410005 */ bgez $v0, .L7F0A24DC +/* 0D6FF8 7F0A24C8 46809220 */ cvt.s.w $f8, $f18 +/* 0D6FFC 7F0A24CC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D7000 7F0A24D0 44815000 */ mtc1 $at, $f10 +/* 0D7004 7F0A24D4 00000000 */ nop +/* 0D7008 7F0A24D8 460A4200 */ add.s $f8, $f8, $f10 +.L7F0A24DC: +/* 0D700C 7F0A24DC 46144182 */ mul.s $f6, $f8, $f20 +/* 0D7010 7F0A24E0 C7B20044 */ lwc1 $f18, 0x44($sp) +/* 0D7014 7F0A24E4 8E090000 */ lw $t1, ($s0) +/* 0D7018 7F0A24E8 8E2D0000 */ lw $t5, ($s1) +/* 0D701C 7F0A24EC 01320019 */ multu $t1, $s2 +/* 0D7020 7F0A24F0 46183402 */ mul.s $f16, $f6, $f24 +/* 0D7024 7F0A24F4 46168100 */ add.s $f4, $f16, $f22 +/* 0D7028 7F0A24F8 0000C812 */ mflo $t9 +/* 0D702C 7F0A24FC 01B9C021 */ addu $t8, $t5, $t9 +/* 0D7030 7F0A2500 46122282 */ mul.s $f10, $f4, $f18 +/* 0D7034 7F0A2504 4600520D */ trunc.w.s $f8, $f10 +/* 0D7038 7F0A2508 440E4000 */ mfc1 $t6, $f8 +/* 0D703C 7F0A250C 0C002914 */ jal get_random_value +/* 0D7040 7F0A2510 A70E0058 */ sh $t6, 0x58($t8) +/* 0D7044 7F0A2514 44823000 */ mtc1 $v0, $f6 +/* 0D7048 7F0A2518 24050005 */ li $a1, 5 +/* 0D704C 7F0A251C 2406007E */ li $a2, 126 +/* 0D7050 7F0A2520 240700FB */ li $a3, 251 +/* 0D7054 7F0A2524 04410005 */ bgez $v0, .L7F0A253C +/* 0D7058 7F0A2528 46803420 */ cvt.s.w $f16, $f6 +/* 0D705C 7F0A252C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D7060 7F0A2530 44812000 */ mtc1 $at, $f4 +/* 0D7064 7F0A2534 00000000 */ nop +/* 0D7068 7F0A2538 46048400 */ add.s $f16, $f16, $f4 +.L7F0A253C: +/* 0D706C 7F0A253C 46148482 */ mul.s $f18, $f16, $f20 +/* 0D7070 7F0A2540 C7A60044 */ lwc1 $f6, 0x44($sp) +/* 0D7074 7F0A2544 8E0F0000 */ lw $t7, ($s0) +/* 0D7078 7F0A2548 8E2B0000 */ lw $t3, ($s1) +/* 0D707C 7F0A254C 01F20019 */ multu $t7, $s2 +/* 0D7080 7F0A2550 46189282 */ mul.s $f10, $f18, $f24 +/* 0D7084 7F0A2554 46165200 */ add.s $f8, $f10, $f22 +/* 0D7088 7F0A2558 00004012 */ mflo $t0 +/* 0D708C 7F0A255C 01684821 */ addu $t1, $t3, $t0 +/* 0D7090 7F0A2560 44805000 */ mtc1 $zero, $f10 +/* 0D7094 7F0A2564 46064102 */ mul.s $f4, $f8, $f6 +/* 0D7098 7F0A2568 4600240D */ trunc.w.s $f16, $f4 +/* 0D709C 7F0A256C 440C8000 */ mfc1 $t4, $f16 +/* 0D70A0 7F0A2570 00000000 */ nop +/* 0D70A4 7F0A2574 A52C005A */ sh $t4, 0x5a($t1) +/* 0D70A8 7F0A2578 8E190000 */ lw $t9, ($s0) +/* 0D70AC 7F0A257C 8E2D0000 */ lw $t5, ($s1) +/* 0D70B0 7F0A2580 03320019 */ multu $t9, $s2 +/* 0D70B4 7F0A2584 00007012 */ mflo $t6 +/* 0D70B8 7F0A2588 01AEC021 */ addu $t8, $t5, $t6 +/* 0D70BC 7F0A258C A700005C */ sh $zero, 0x5c($t8) +/* 0D70C0 7F0A2590 8E0F0000 */ lw $t7, ($s0) +/* 0D70C4 7F0A2594 8E2A0000 */ lw $t2, ($s1) +/* 0D70C8 7F0A2598 01F20019 */ multu $t7, $s2 +/* 0D70CC 7F0A259C 00005812 */ mflo $t3 +/* 0D70D0 7F0A25A0 014B4021 */ addu $t0, $t2, $t3 +/* 0D70D4 7F0A25A4 A5000040 */ sh $zero, 0x40($t0) +/* 0D70D8 7F0A25A8 8E090000 */ lw $t1, ($s0) +/* 0D70DC 7F0A25AC 8E2C0000 */ lw $t4, ($s1) +/* 0D70E0 7F0A25B0 01320019 */ multu $t1, $s2 +/* 0D70E4 7F0A25B4 0000C812 */ mflo $t9 +/* 0D70E8 7F0A25B8 01996821 */ addu $t5, $t4, $t9 +/* 0D70EC 7F0A25BC A5A00042 */ sh $zero, 0x42($t5) +/* 0D70F0 7F0A25C0 8E180000 */ lw $t8, ($s0) +/* 0D70F4 7F0A25C4 8E2E0000 */ lw $t6, ($s1) +/* 0D70F8 7F0A25C8 03120019 */ multu $t8, $s2 +/* 0D70FC 7F0A25CC 00007812 */ mflo $t7 +/* 0D7100 7F0A25D0 01CF5021 */ addu $t2, $t6, $t7 +/* 0D7104 7F0A25D4 A5400050 */ sh $zero, 0x50($t2) +/* 0D7108 7F0A25D8 8E080000 */ lw $t0, ($s0) +/* 0D710C 7F0A25DC 8E2B0000 */ lw $t3, ($s1) +/* 0D7110 7F0A25E0 01120019 */ multu $t0, $s2 +/* 0D7114 7F0A25E4 00004812 */ mflo $t1 +/* 0D7118 7F0A25E8 01696021 */ addu $t4, $t3, $t1 +/* 0D711C 7F0A25EC A5800052 */ sh $zero, 0x52($t4) +/* 0D7120 7F0A25F0 8E0D0000 */ lw $t5, ($s0) +/* 0D7124 7F0A25F4 8E390000 */ lw $t9, ($s1) +/* 0D7128 7F0A25F8 01B20019 */ multu $t5, $s2 +/* 0D712C 7F0A25FC 0000C012 */ mflo $t8 +/* 0D7130 7F0A2600 03387021 */ addu $t6, $t9, $t8 +/* 0D7134 7F0A2604 A5C00060 */ sh $zero, 0x60($t6) +/* 0D7138 7F0A2608 8E0A0000 */ lw $t2, ($s0) +/* 0D713C 7F0A260C 8E2F0000 */ lw $t7, ($s1) +/* 0D7140 7F0A2610 01520019 */ multu $t2, $s2 +/* 0D7144 7F0A2614 00004012 */ mflo $t0 +/* 0D7148 7F0A2618 01E85821 */ addu $t3, $t7, $t0 +/* 0D714C 7F0A261C A5600062 */ sh $zero, 0x62($t3) +/* 0D7150 7F0A2620 8E0C0000 */ lw $t4, ($s0) +/* 0D7154 7F0A2624 8E290000 */ lw $t1, ($s1) +/* 0D7158 7F0A2628 01920019 */ multu $t4, $s2 +/* 0D715C 7F0A262C 00006812 */ mflo $t5 +/* 0D7160 7F0A2630 012DC821 */ addu $t9, $t1, $t5 +/* 0D7164 7F0A2634 A3250044 */ sb $a1, 0x44($t9) +/* 0D7168 7F0A2638 8E0E0000 */ lw $t6, ($s0) +/* 0D716C 7F0A263C 8E380000 */ lw $t8, ($s1) +/* 0D7170 7F0A2640 01D20019 */ multu $t6, $s2 +/* 0D7174 7F0A2644 00005012 */ mflo $t2 +/* 0D7178 7F0A2648 030A7821 */ addu $t7, $t8, $t2 +/* 0D717C 7F0A264C A1E50045 */ sb $a1, 0x45($t7) +/* 0D7180 7F0A2650 8E0B0000 */ lw $t3, ($s0) +/* 0D7184 7F0A2654 8E280000 */ lw $t0, ($s1) +/* 0D7188 7F0A2658 01720019 */ multu $t3, $s2 +/* 0D718C 7F0A265C 00006012 */ mflo $t4 +/* 0D7190 7F0A2660 010C4821 */ addu $t1, $t0, $t4 +/* 0D7194 7F0A2664 A1260046 */ sb $a2, 0x46($t1) +/* 0D7198 7F0A2668 8E190000 */ lw $t9, ($s0) +/* 0D719C 7F0A266C 8E2D0000 */ lw $t5, ($s1) +/* 0D71A0 7F0A2670 03320019 */ multu $t9, $s2 +/* 0D71A4 7F0A2674 00007012 */ mflo $t6 +/* 0D71A8 7F0A2678 01AEC021 */ addu $t8, $t5, $t6 +/* 0D71AC 7F0A267C A3050054 */ sb $a1, 0x54($t8) +/* 0D71B0 7F0A2680 8E0F0000 */ lw $t7, ($s0) +/* 0D71B4 7F0A2684 8E2A0000 */ lw $t2, ($s1) +/* 0D71B8 7F0A2688 01F20019 */ multu $t7, $s2 +/* 0D71BC 7F0A268C 00005812 */ mflo $t3 +/* 0D71C0 7F0A2690 014B4021 */ addu $t0, $t2, $t3 +/* 0D71C4 7F0A2694 A1070055 */ sb $a3, 0x55($t0) +/* 0D71C8 7F0A2698 8E090000 */ lw $t1, ($s0) +/* 0D71CC 7F0A269C 8E2C0000 */ lw $t4, ($s1) +/* 0D71D0 7F0A26A0 01320019 */ multu $t1, $s2 +/* 0D71D4 7F0A26A4 0000C812 */ mflo $t9 +/* 0D71D8 7F0A26A8 01996821 */ addu $t5, $t4, $t9 +/* 0D71DC 7F0A26AC A1A60056 */ sb $a2, 0x56($t5) +/* 0D71E0 7F0A26B0 8E180000 */ lw $t8, ($s0) +/* 0D71E4 7F0A26B4 8E2E0000 */ lw $t6, ($s1) +/* 0D71E8 7F0A26B8 03120019 */ multu $t8, $s2 +/* 0D71EC 7F0A26BC 00007812 */ mflo $t7 +/* 0D71F0 7F0A26C0 01CF5021 */ addu $t2, $t6, $t7 +/* 0D71F4 7F0A26C4 A1470064 */ sb $a3, 0x64($t2) +/* 0D71F8 7F0A26C8 8E080000 */ lw $t0, ($s0) +/* 0D71FC 7F0A26CC 8E2B0000 */ lw $t3, ($s1) +/* 0D7200 7F0A26D0 240F00FF */ li $t7, 255 +/* 0D7204 7F0A26D4 01120019 */ multu $t0, $s2 +/* 0D7208 7F0A26D8 00004812 */ mflo $t1 +/* 0D720C 7F0A26DC 01696021 */ addu $t4, $t3, $t1 +/* 0D7210 7F0A26E0 A1870065 */ sb $a3, 0x65($t4) +/* 0D7214 7F0A26E4 8E0D0000 */ lw $t5, ($s0) +/* 0D7218 7F0A26E8 8E390000 */ lw $t9, ($s1) +/* 0D721C 7F0A26EC 01B20019 */ multu $t5, $s2 +/* 0D7220 7F0A26F0 0000C012 */ mflo $t8 +/* 0D7224 7F0A26F4 03387021 */ addu $t6, $t9, $t8 +/* 0D7228 7F0A26F8 A1C60066 */ sb $a2, 0x66($t6) +/* 0D722C 7F0A26FC 8E080000 */ lw $t0, ($s0) +/* 0D7230 7F0A2700 8E2A0000 */ lw $t2, ($s1) +/* 0D7234 7F0A2704 01120019 */ multu $t0, $s2 +/* 0D7238 7F0A2708 00005812 */ mflo $t3 +/* 0D723C 7F0A270C 014B4821 */ addu $t1, $t2, $t3 +/* 0D7240 7F0A2710 A12F0067 */ sb $t7, 0x67($t1) +/* 0D7244 7F0A2714 8E0D0000 */ lw $t5, ($s0) +/* 0D7248 7F0A2718 8E2C0000 */ lw $t4, ($s1) +/* 0D724C 7F0A271C 01B20019 */ multu $t5, $s2 +/* 0D7250 7F0A2720 0000C812 */ mflo $t9 +/* 0D7254 7F0A2724 01991821 */ addu $v1, $t4, $t9 +/* 0D7258 7F0A2728 90640067 */ lbu $a0, 0x67($v1) +/* 0D725C 7F0A272C A0640057 */ sb $a0, 0x57($v1) +/* 0D7260 7F0A2730 8E0E0000 */ lw $t6, ($s0) +/* 0D7264 7F0A2734 8E380000 */ lw $t8, ($s1) +/* 0D7268 7F0A2738 01D20019 */ multu $t6, $s2 +/* 0D726C 7F0A273C 00004012 */ mflo $t0 +/* 0D7270 7F0A2740 03085021 */ addu $t2, $t8, $t0 +/* 0D7274 7F0A2744 A1440047 */ sb $a0, 0x47($t2) +/* 0D7278 7F0A2748 8E0F0000 */ lw $t7, ($s0) +/* 0D727C 7F0A274C 8E2B0000 */ lw $t3, ($s1) +/* 0D7280 7F0A2750 C7B2005C */ lwc1 $f18, 0x5c($sp) +/* 0D7284 7F0A2754 01F20019 */ multu $t7, $s2 +/* 0D7288 7F0A2758 00004812 */ mflo $t1 +/* 0D728C 7F0A275C 01696821 */ addu $t5, $t3, $t1 +/* 0D7290 7F0A2760 E5B20010 */ swc1 $f18, 0x10($t5) +/* 0D7294 7F0A2764 8E190000 */ lw $t9, ($s0) +/* 0D7298 7F0A2768 8E2C0000 */ lw $t4, ($s1) +/* 0D729C 7F0A276C 03320019 */ multu $t9, $s2 +/* 0D72A0 7F0A2770 00007012 */ mflo $t6 +/* 0D72A4 7F0A2774 018EC021 */ addu $t8, $t4, $t6 +/* 0D72A8 7F0A2778 0C002914 */ jal get_random_value +/* 0D72AC 7F0A277C E70A0014 */ swc1 $f10, 0x14($t8) +/* 0D72B0 7F0A2780 44824000 */ mtc1 $v0, $f8 +/* 0D72B4 7F0A2784 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D72B8 7F0A2788 04410004 */ bgez $v0, .L7F0A279C +/* 0D72BC 7F0A278C 468041A0 */ cvt.s.w $f6, $f8 +/* 0D72C0 7F0A2790 44812000 */ mtc1 $at, $f4 +/* 0D72C4 7F0A2794 00000000 */ nop +/* 0D72C8 7F0A2798 46043180 */ add.s $f6, $f6, $f4 +.L7F0A279C: +/* 0D72CC 7F0A279C 8E0A0000 */ lw $t2, ($s0) +/* 0D72D0 7F0A27A0 46143402 */ mul.s $f16, $f6, $f20 +/* 0D72D4 7F0A27A4 3C018005 */ lui $at, %hi(D_80057720) +/* 0D72D8 7F0A27A8 01520019 */ multu $t2, $s2 +/* 0D72DC 7F0A27AC C4327720 */ lwc1 $f18, %lo(D_80057720)($at) +/* 0D72E0 7F0A27B0 8E280000 */ lw $t0, ($s1) +/* 0D72E4 7F0A27B4 46128282 */ mul.s $f10, $f16, $f18 +/* 0D72E8 7F0A27B8 00007812 */ mflo $t7 +/* 0D72EC 7F0A27BC 010F5821 */ addu $t3, $t0, $t7 +/* 0D72F0 7F0A27C0 0C002914 */ jal get_random_value +/* 0D72F4 7F0A27C4 E56A0018 */ swc1 $f10, 0x18($t3) +/* 0D72F8 7F0A27C8 44824000 */ mtc1 $v0, $f8 +/* 0D72FC 7F0A27CC 3C018005 */ lui $at, %hi(D_80057724) +/* 0D7300 7F0A27D0 C4367724 */ lwc1 $f22, %lo(D_80057724)($at) +/* 0D7304 7F0A27D4 04410005 */ bgez $v0, .L7F0A27EC +/* 0D7308 7F0A27D8 46804120 */ cvt.s.w $f4, $f8 +/* 0D730C 7F0A27DC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D7310 7F0A27E0 44813000 */ mtc1 $at, $f6 +/* 0D7314 7F0A27E4 00000000 */ nop +/* 0D7318 7F0A27E8 46062100 */ add.s $f4, $f4, $f6 +.L7F0A27EC: +/* 0D731C 7F0A27EC 8E0D0000 */ lw $t5, ($s0) +/* 0D7320 7F0A27F0 46142402 */ mul.s $f16, $f4, $f20 +/* 0D7324 7F0A27F4 8E290000 */ lw $t1, ($s1) +/* 0D7328 7F0A27F8 01B20019 */ multu $t5, $s2 +/* 0D732C 7F0A27FC 46168482 */ mul.s $f18, $f16, $f22 +/* 0D7330 7F0A2800 0000C812 */ mflo $t9 +/* 0D7334 7F0A2804 01396021 */ addu $t4, $t1, $t9 +/* 0D7338 7F0A2808 0C002914 */ jal get_random_value +/* 0D733C 7F0A280C E5920028 */ swc1 $f18, 0x28($t4) +/* 0D7340 7F0A2810 44825000 */ mtc1 $v0, $f10 +/* 0D7344 7F0A2814 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D7348 7F0A2818 04410004 */ bgez $v0, .L7F0A282C +/* 0D734C 7F0A281C 46805220 */ cvt.s.w $f8, $f10 +/* 0D7350 7F0A2820 44813000 */ mtc1 $at, $f6 +/* 0D7354 7F0A2824 00000000 */ nop +/* 0D7358 7F0A2828 46064200 */ add.s $f8, $f8, $f6 +.L7F0A282C: +/* 0D735C 7F0A282C 8E180000 */ lw $t8, ($s0) +/* 0D7360 7F0A2830 46144102 */ mul.s $f4, $f8, $f20 +/* 0D7364 7F0A2834 8E2E0000 */ lw $t6, ($s1) +/* 0D7368 7F0A2838 03120019 */ multu $t8, $s2 +/* 0D736C 7F0A283C 46162402 */ mul.s $f16, $f4, $f22 +/* 0D7370 7F0A2840 00005012 */ mflo $t2 +/* 0D7374 7F0A2844 01CA4021 */ addu $t0, $t6, $t2 +/* 0D7378 7F0A2848 0C002914 */ jal get_random_value +/* 0D737C 7F0A284C E510002C */ swc1 $f16, 0x2c($t0) +/* 0D7380 7F0A2850 44829000 */ mtc1 $v0, $f18 +/* 0D7384 7F0A2854 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D7388 7F0A2858 04410004 */ bgez $v0, .L7F0A286C +/* 0D738C 7F0A285C 468092A0 */ cvt.s.w $f10, $f18 +/* 0D7390 7F0A2860 44813000 */ mtc1 $at, $f6 +/* 0D7394 7F0A2864 00000000 */ nop +/* 0D7398 7F0A2868 46065280 */ add.s $f10, $f10, $f6 +.L7F0A286C: +/* 0D739C 7F0A286C 8E0B0000 */ lw $t3, ($s0) +/* 0D73A0 7F0A2870 46145202 */ mul.s $f8, $f10, $f20 +/* 0D73A4 7F0A2874 8E2F0000 */ lw $t7, ($s1) +/* 0D73A8 7F0A2878 01720019 */ multu $t3, $s2 +/* 0D73AC 7F0A287C 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_8007A160) +/* 0D73B0 7F0A2880 46164102 */ mul.s $f4, $f8, $f22 +/* 0D73B4 7F0A2884 00006812 */ mflo $t5 +/* 0D73B8 7F0A2888 01ED4821 */ addu $t1, $t7, $t5 +/* 0D73BC 7F0A288C E5240030 */ swc1 $f4, 0x30($t1) +/* 0D73C0 7F0A2890 8E190000 */ lw $t9, ($s0) +/* 0D73C4 7F0A2894 272C0001 */ addiu $t4, $t9, 1 +/* 0D73C8 7F0A2898 AE0C0000 */ sw $t4, ($s0) +/* 0D73CC 7F0A289C 8DCEA160 */ lw $t6, %lo(dword_CODE_bss_8007A160)($t6) +/* 0D73D0 7F0A28A0 018E082A */ slt $at, $t4, $t6 +/* 0D73D4 7F0A28A4 54200003 */ bnezl $at, .L7F0A28B4 +/* 0D73D8 7F0A28A8 8FBF003C */ lw $ra, 0x3c($sp) +/* 0D73DC 7F0A28AC AE000000 */ sw $zero, ($s0) +/* 0D73E0 7F0A28B0 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0A28B4: +/* 0D73E4 7F0A28B4 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D73E8 7F0A28B8 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0D73EC 7F0A28BC D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0D73F0 7F0A28C0 8FB00030 */ lw $s0, 0x30($sp) +/* 0D73F4 7F0A28C4 8FB10034 */ lw $s1, 0x34($sp) +/* 0D73F8 7F0A28C8 8FB20038 */ lw $s2, 0x38($sp) +/* 0D73FC 7F0A28CC 03E00008 */ jr $ra +/* 0D7400 7F0A28D0 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A28D4(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80057728 +.word 0x46ea6000 /*30000.0*/ +glabel D_8005772C +.word 0xc6ea6000 /*-30000.0*/ +glabel D_80057730 +.word 0x3dcccccd /*0.1*/ +glabel D_80057734 +.word 0x00000000 /*0.0*/ +glabel D_80057738 +.word 0x00000000 /*0.0*/ +glabel D_8005773C +.word 0x00000000 /*0.0*/ +.text +glabel sub_GAME_7F0A28D4 +/* 0D7404 7F0A28D4 3C028005 */ lui $v0, %hi(clock_timer) +/* 0D7408 7F0A28D8 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0D740C 7F0A28DC 3C088008 */ lui $t0, %hi(dword_CODE_bss_8007A160) +/* 0D7410 7F0A28E0 2508A160 */ addiu $t0, %lo(dword_CODE_bss_8007A160) # addiu $t0, $t0, -0x5ea0 +/* 0D7414 7F0A28E4 2841000F */ slti $at, $v0, 0xf +/* 0D7418 7F0A28E8 10200004 */ beqz $at, .L7F0A28FC +/* 0D741C 7F0A28EC 00001825 */ move $v1, $zero +/* 0D7420 7F0A28F0 44822000 */ mtc1 $v0, $f4 +/* 0D7424 7F0A28F4 10000004 */ b .L7F0A2908 +/* 0D7428 7F0A28F8 46802020 */ cvt.s.w $f0, $f4 +.L7F0A28FC: +/* 0D742C 7F0A28FC 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0D7430 7F0A2900 44810000 */ mtc1 $at, $f0 +/* 0D7434 7F0A2904 00000000 */ nop +.L7F0A2908: +/* 0D7438 7F0A2908 8D0E0000 */ lw $t6, ($t0) +/* 0D743C 7F0A290C 00001025 */ move $v0, $zero +/* 0D7440 7F0A2910 3C018005 */ lui $at, %hi(D_80057728) +/* 0D7444 7F0A2914 19C000C9 */ blez $t6, .L7F0A2C3C +/* 0D7448 7F0A2918 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007A164) +/* 0D744C 7F0A291C C4307728 */ lwc1 $f16, %lo(D_80057728)($at) +/* 0D7450 7F0A2920 3C018005 */ lui $at, %hi(D_8005772C) +/* 0D7454 7F0A2924 C42E772C */ lwc1 $f14, %lo(D_8005772C)($at) +/* 0D7458 7F0A2928 3C018005 */ lui $at, %hi(D_80057730) +/* 0D745C 7F0A292C C42C7730 */ lwc1 $f12, %lo(D_80057730)($at) +/* 0D7460 7F0A2930 2529A164 */ addiu $t1, %lo(dword_CODE_bss_8007A164) # addiu $t1, $t1, -0x5e9c +/* 0D7464 7F0A2934 8D2F0000 */ lw $t7, ($t1) +.L7F0A2938: +/* 0D7468 7F0A2938 01E32021 */ addu $a0, $t7, $v1 +/* 0D746C 7F0A293C 8C850000 */ lw $a1, ($a0) +/* 0D7470 7F0A2940 58A000B9 */ blezl $a1, .L7F0A2C28 +/* 0D7474 7F0A2944 8D0C0000 */ lw $t4, ($t0) +/* 0D7478 7F0A2948 4600018D */ trunc.w.s $f6, $f0 +/* 0D747C 7F0A294C 00003825 */ move $a3, $zero +/* 0D7480 7F0A2950 44063000 */ mfc1 $a2, $f6 +/* 0D7484 7F0A2954 00000000 */ nop +/* 0D7488 7F0A2958 00A6C821 */ addu $t9, $a1, $a2 +/* 0D748C 7F0A295C AC990000 */ sw $t9, ($a0) +/* 0D7490 7F0A2960 8D2A0000 */ lw $t2, ($t1) +/* 0D7494 7F0A2964 01432021 */ addu $a0, $t2, $v1 +/* 0D7498 7F0A2968 C48A0028 */ lwc1 $f10, 0x28($a0) +/* 0D749C 7F0A296C C4880010 */ lwc1 $f8, 0x10($a0) +/* 0D74A0 7F0A2970 46005482 */ mul.s $f18, $f10, $f0 +/* 0D74A4 7F0A2974 46124100 */ add.s $f4, $f8, $f18 +/* 0D74A8 7F0A2978 E4840010 */ swc1 $f4, 0x10($a0) +/* 0D74AC 7F0A297C 8D2B0000 */ lw $t3, ($t1) +/* 0D74B0 7F0A2980 01632021 */ addu $a0, $t3, $v1 +/* 0D74B4 7F0A2984 C48A002C */ lwc1 $f10, 0x2c($a0) +/* 0D74B8 7F0A2988 C4860014 */ lwc1 $f6, 0x14($a0) +/* 0D74BC 7F0A298C 46005202 */ mul.s $f8, $f10, $f0 +/* 0D74C0 7F0A2990 46083480 */ add.s $f18, $f6, $f8 +/* 0D74C4 7F0A2994 E4920014 */ swc1 $f18, 0x14($a0) +/* 0D74C8 7F0A2998 8D2C0000 */ lw $t4, ($t1) +/* 0D74CC 7F0A299C 01832021 */ addu $a0, $t4, $v1 +/* 0D74D0 7F0A29A0 C48A0030 */ lwc1 $f10, 0x30($a0) +/* 0D74D4 7F0A29A4 C4840018 */ lwc1 $f4, 0x18($a0) +/* 0D74D8 7F0A29A8 46005182 */ mul.s $f6, $f10, $f0 +/* 0D74DC 7F0A29AC 46062200 */ add.s $f8, $f4, $f6 +/* 0D74E0 7F0A29B0 E4880018 */ swc1 $f8, 0x18($a0) +/* 0D74E4 7F0A29B4 8D2D0000 */ lw $t5, ($t1) +/* 0D74E8 7F0A29B8 01A32021 */ addu $a0, $t5, $v1 +/* 0D74EC 7F0A29BC C48A001C */ lwc1 $f10, 0x1c($a0) +/* 0D74F0 7F0A29C0 C4920004 */ lwc1 $f18, 4($a0) +/* 0D74F4 7F0A29C4 46005102 */ mul.s $f4, $f10, $f0 +/* 0D74F8 7F0A29C8 46049180 */ add.s $f6, $f18, $f4 +/* 0D74FC 7F0A29CC E4860004 */ swc1 $f6, 4($a0) +/* 0D7500 7F0A29D0 8D2E0000 */ lw $t6, ($t1) +/* 0D7504 7F0A29D4 01C32021 */ addu $a0, $t6, $v1 +/* 0D7508 7F0A29D8 C48A0024 */ lwc1 $f10, 0x24($a0) +/* 0D750C 7F0A29DC C488000C */ lwc1 $f8, 0xc($a0) +/* 0D7510 7F0A29E0 46005482 */ mul.s $f18, $f10, $f0 +/* 0D7514 7F0A29E4 46124100 */ add.s $f4, $f8, $f18 +/* 0D7518 7F0A29E8 18C0007B */ blez $a2, .L7F0A2BD8 +/* 0D751C 7F0A29EC E484000C */ swc1 $f4, 0xc($a0) +/* 0D7520 7F0A29F0 30C40003 */ andi $a0, $a2, 3 +/* 0D7524 7F0A29F4 1080001C */ beqz $a0, .L7F0A2A68 +/* 0D7528 7F0A29F8 00802825 */ move $a1, $a0 +/* 0D752C 7F0A29FC 24E70001 */ addiu $a3, $a3, 1 +/* 0D7530 7F0A2A00 10A7000E */ beq $a1, $a3, .L7F0A2A3C +/* 0D7534 7F0A2A04 8D2F0000 */ lw $t7, ($t1) +.L7F0A2A08: +/* 0D7538 7F0A2A08 01E32021 */ addu $a0, $t7, $v1 +/* 0D753C 7F0A2A0C C4920008 */ lwc1 $f18, 8($a0) +/* 0D7540 7F0A2A10 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D7544 7F0A2A14 24E70001 */ addiu $a3, $a3, 1 +/* 0D7548 7F0A2A18 460A9280 */ add.s $f10, $f18, $f10 +/* 0D754C 7F0A2A1C E48A0008 */ swc1 $f10, 8($a0) +/* 0D7550 7F0A2A20 8D380000 */ lw $t8, ($t1) +/* 0D7554 7F0A2A24 03032021 */ addu $a0, $t8, $v1 +/* 0D7558 7F0A2A28 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D755C 7F0A2A2C 460C5281 */ sub.s $f10, $f10, $f12 +/* 0D7560 7F0A2A30 E48A0020 */ swc1 $f10, 0x20($a0) +/* 0D7564 7F0A2A34 14A7FFF4 */ bne $a1, $a3, .L7F0A2A08 +/* 0D7568 7F0A2A38 8D2F0000 */ lw $t7, ($t1) +.L7F0A2A3C: +/* 0D756C 7F0A2A3C 01E32021 */ addu $a0, $t7, $v1 +/* 0D7570 7F0A2A40 C4920008 */ lwc1 $f18, 8($a0) +/* 0D7574 7F0A2A44 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D7578 7F0A2A48 460A9280 */ add.s $f10, $f18, $f10 +/* 0D757C 7F0A2A4C E48A0008 */ swc1 $f10, 8($a0) +/* 0D7580 7F0A2A50 8D380000 */ lw $t8, ($t1) +/* 0D7584 7F0A2A54 03032021 */ addu $a0, $t8, $v1 +/* 0D7588 7F0A2A58 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D758C 7F0A2A5C 460C5281 */ sub.s $f10, $f10, $f12 +/* 0D7590 7F0A2A60 E48A0020 */ swc1 $f10, 0x20($a0) +/* 0D7594 7F0A2A64 10E6005C */ beq $a3, $a2, .L7F0A2BD8 +.L7F0A2A68: +/* 0D7598 7F0A2A68 24E70004 */ addiu $a3, $a3, 4 +/* 0D759C 7F0A2A6C 10E6002F */ beq $a3, $a2, .L7F0A2B2C +/* 0D75A0 7F0A2A70 8D390000 */ lw $t9, ($t1) +.L7F0A2A74: +/* 0D75A4 7F0A2A74 03232021 */ addu $a0, $t9, $v1 +/* 0D75A8 7F0A2A78 C4920008 */ lwc1 $f18, 8($a0) +/* 0D75AC 7F0A2A7C C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D75B0 7F0A2A80 24E70004 */ addiu $a3, $a3, 4 +/* 0D75B4 7F0A2A84 460A9280 */ add.s $f10, $f18, $f10 +/* 0D75B8 7F0A2A88 E48A0008 */ swc1 $f10, 8($a0) +/* 0D75BC 7F0A2A8C 8D2A0000 */ lw $t2, ($t1) +/* 0D75C0 7F0A2A90 01432021 */ addu $a0, $t2, $v1 +/* 0D75C4 7F0A2A94 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D75C8 7F0A2A98 460C5281 */ sub.s $f10, $f10, $f12 +/* 0D75CC 7F0A2A9C E48A0020 */ swc1 $f10, 0x20($a0) +/* 0D75D0 7F0A2AA0 8D2B0000 */ lw $t3, ($t1) +/* 0D75D4 7F0A2AA4 01632021 */ addu $a0, $t3, $v1 +/* 0D75D8 7F0A2AA8 C48A0008 */ lwc1 $f10, 8($a0) +/* 0D75DC 7F0A2AAC C4920020 */ lwc1 $f18, 0x20($a0) +/* 0D75E0 7F0A2AB0 46125480 */ add.s $f18, $f10, $f18 +/* 0D75E4 7F0A2AB4 E4920008 */ swc1 $f18, 8($a0) +/* 0D75E8 7F0A2AB8 8D2C0000 */ lw $t4, ($t1) +/* 0D75EC 7F0A2ABC 01832021 */ addu $a0, $t4, $v1 +/* 0D75F0 7F0A2AC0 C4920020 */ lwc1 $f18, 0x20($a0) +/* 0D75F4 7F0A2AC4 460C9481 */ sub.s $f18, $f18, $f12 +/* 0D75F8 7F0A2AC8 E4920020 */ swc1 $f18, 0x20($a0) +/* 0D75FC 7F0A2ACC 8D2D0000 */ lw $t5, ($t1) +/* 0D7600 7F0A2AD0 01A32021 */ addu $a0, $t5, $v1 +/* 0D7604 7F0A2AD4 C4920008 */ lwc1 $f18, 8($a0) +/* 0D7608 7F0A2AD8 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D760C 7F0A2ADC 460A9280 */ add.s $f10, $f18, $f10 +/* 0D7610 7F0A2AE0 E48A0008 */ swc1 $f10, 8($a0) +/* 0D7614 7F0A2AE4 8D2E0000 */ lw $t6, ($t1) +/* 0D7618 7F0A2AE8 01C32021 */ addu $a0, $t6, $v1 +/* 0D761C 7F0A2AEC C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D7620 7F0A2AF0 460C5281 */ sub.s $f10, $f10, $f12 +/* 0D7624 7F0A2AF4 E48A0020 */ swc1 $f10, 0x20($a0) +/* 0D7628 7F0A2AF8 8D2F0000 */ lw $t7, ($t1) +/* 0D762C 7F0A2AFC 01E32021 */ addu $a0, $t7, $v1 +/* 0D7630 7F0A2B00 C48A0008 */ lwc1 $f10, 8($a0) +/* 0D7634 7F0A2B04 C4920020 */ lwc1 $f18, 0x20($a0) +/* 0D7638 7F0A2B08 46125480 */ add.s $f18, $f10, $f18 +/* 0D763C 7F0A2B0C E4920008 */ swc1 $f18, 8($a0) +/* 0D7640 7F0A2B10 8D380000 */ lw $t8, ($t1) +/* 0D7644 7F0A2B14 03032021 */ addu $a0, $t8, $v1 +/* 0D7648 7F0A2B18 C4920020 */ lwc1 $f18, 0x20($a0) +/* 0D764C 7F0A2B1C 460C9481 */ sub.s $f18, $f18, $f12 +/* 0D7650 7F0A2B20 E4920020 */ swc1 $f18, 0x20($a0) +/* 0D7654 7F0A2B24 14E6FFD3 */ bne $a3, $a2, .L7F0A2A74 +/* 0D7658 7F0A2B28 8D390000 */ lw $t9, ($t1) +.L7F0A2B2C: +/* 0D765C 7F0A2B2C 03232021 */ addu $a0, $t9, $v1 +/* 0D7660 7F0A2B30 C4920008 */ lwc1 $f18, 8($a0) +/* 0D7664 7F0A2B34 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D7668 7F0A2B38 460A9280 */ add.s $f10, $f18, $f10 +/* 0D766C 7F0A2B3C E48A0008 */ swc1 $f10, 8($a0) +/* 0D7670 7F0A2B40 8D2A0000 */ lw $t2, ($t1) +/* 0D7674 7F0A2B44 01432021 */ addu $a0, $t2, $v1 +/* 0D7678 7F0A2B48 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D767C 7F0A2B4C 460C5281 */ sub.s $f10, $f10, $f12 +/* 0D7680 7F0A2B50 E48A0020 */ swc1 $f10, 0x20($a0) +/* 0D7684 7F0A2B54 8D2B0000 */ lw $t3, ($t1) +/* 0D7688 7F0A2B58 01632021 */ addu $a0, $t3, $v1 +/* 0D768C 7F0A2B5C C48A0008 */ lwc1 $f10, 8($a0) +/* 0D7690 7F0A2B60 C4920020 */ lwc1 $f18, 0x20($a0) +/* 0D7694 7F0A2B64 46125480 */ add.s $f18, $f10, $f18 +/* 0D7698 7F0A2B68 E4920008 */ swc1 $f18, 8($a0) +/* 0D769C 7F0A2B6C 8D2C0000 */ lw $t4, ($t1) +/* 0D76A0 7F0A2B70 01832021 */ addu $a0, $t4, $v1 +/* 0D76A4 7F0A2B74 C4920020 */ lwc1 $f18, 0x20($a0) +/* 0D76A8 7F0A2B78 460C9481 */ sub.s $f18, $f18, $f12 +/* 0D76AC 7F0A2B7C E4920020 */ swc1 $f18, 0x20($a0) +/* 0D76B0 7F0A2B80 8D2D0000 */ lw $t5, ($t1) +/* 0D76B4 7F0A2B84 01A32021 */ addu $a0, $t5, $v1 +/* 0D76B8 7F0A2B88 C4920008 */ lwc1 $f18, 8($a0) +/* 0D76BC 7F0A2B8C C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D76C0 7F0A2B90 460A9280 */ add.s $f10, $f18, $f10 +/* 0D76C4 7F0A2B94 E48A0008 */ swc1 $f10, 8($a0) +/* 0D76C8 7F0A2B98 8D2E0000 */ lw $t6, ($t1) +/* 0D76CC 7F0A2B9C 01C32021 */ addu $a0, $t6, $v1 +/* 0D76D0 7F0A2BA0 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0D76D4 7F0A2BA4 460C5281 */ sub.s $f10, $f10, $f12 +/* 0D76D8 7F0A2BA8 E48A0020 */ swc1 $f10, 0x20($a0) +/* 0D76DC 7F0A2BAC 8D2F0000 */ lw $t7, ($t1) +/* 0D76E0 7F0A2BB0 01E32021 */ addu $a0, $t7, $v1 +/* 0D76E4 7F0A2BB4 C48A0008 */ lwc1 $f10, 8($a0) +/* 0D76E8 7F0A2BB8 C4920020 */ lwc1 $f18, 0x20($a0) +/* 0D76EC 7F0A2BBC 46125480 */ add.s $f18, $f10, $f18 +/* 0D76F0 7F0A2BC0 E4920008 */ swc1 $f18, 8($a0) +/* 0D76F4 7F0A2BC4 8D380000 */ lw $t8, ($t1) +/* 0D76F8 7F0A2BC8 03032021 */ addu $a0, $t8, $v1 +/* 0D76FC 7F0A2BCC C4920020 */ lwc1 $f18, 0x20($a0) +/* 0D7700 7F0A2BD0 460C9481 */ sub.s $f18, $f18, $f12 +/* 0D7704 7F0A2BD4 E4920020 */ swc1 $f18, 0x20($a0) +.L7F0A2BD8: +/* 0D7708 7F0A2BD8 8D390000 */ lw $t9, ($t1) +/* 0D770C 7F0A2BDC 03232021 */ addu $a0, $t9, $v1 +/* 0D7710 7F0A2BE0 8C8A0000 */ lw $t2, ($a0) +/* 0D7714 7F0A2BE4 29410096 */ slti $at, $t2, 0x96 +/* 0D7718 7F0A2BE8 54200005 */ bnezl $at, .L7F0A2C00 +/* 0D771C 7F0A2BEC C4820008 */ lwc1 $f2, 8($a0) +/* 0D7720 7F0A2BF0 AC800000 */ sw $zero, ($a0) +/* 0D7724 7F0A2BF4 8D2B0000 */ lw $t3, ($t1) +/* 0D7728 7F0A2BF8 01632021 */ addu $a0, $t3, $v1 +/* 0D772C 7F0A2BFC C4820008 */ lwc1 $f2, 8($a0) +.L7F0A2C00: +/* 0D7730 7F0A2C00 460E103C */ c.lt.s $f2, $f14 +/* 0D7734 7F0A2C04 00000000 */ nop +/* 0D7738 7F0A2C08 45030006 */ bc1tl .L7F0A2C24 +/* 0D773C 7F0A2C0C AC800000 */ sw $zero, ($a0) +/* 0D7740 7F0A2C10 4602803C */ c.lt.s $f16, $f2 +/* 0D7744 7F0A2C14 00000000 */ nop +/* 0D7748 7F0A2C18 45020003 */ bc1fl .L7F0A2C28 +/* 0D774C 7F0A2C1C 8D0C0000 */ lw $t4, ($t0) +/* 0D7750 7F0A2C20 AC800000 */ sw $zero, ($a0) +.L7F0A2C24: +/* 0D7754 7F0A2C24 8D0C0000 */ lw $t4, ($t0) +.L7F0A2C28: +/* 0D7758 7F0A2C28 24420001 */ addiu $v0, $v0, 1 +/* 0D775C 7F0A2C2C 24630068 */ addiu $v1, $v1, 0x68 +/* 0D7760 7F0A2C30 004C082A */ slt $at, $v0, $t4 +/* 0D7764 7F0A2C34 5420FF40 */ bnezl $at, .L7F0A2938 +/* 0D7768 7F0A2C38 8D2F0000 */ lw $t7, ($t1) +.L7F0A2C3C: +/* 0D776C 7F0A2C3C 03E00008 */ jr $ra +/* 0D7770 7F0A2C40 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A2C44(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A2C44 +/* 0D7774 7F0A2C44 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 0D7778 7F0A2C48 3C058009 */ lui $a1, %hi(glassoverlayimage) +/* 0D777C 7F0A2C4C 8CA5D11C */ lw $a1, %lo(glassoverlayimage)($a1) +/* 0D7780 7F0A2C50 AFBF0044 */ sw $ra, 0x44($sp) +/* 0D7784 7F0A2C54 AFA400D0 */ sw $a0, 0xd0($sp) +/* 0D7788 7F0A2C58 240E0002 */ li $t6, 2 +/* 0D778C 7F0A2C5C AFBE0040 */ sw $fp, 0x40($sp) +/* 0D7790 7F0A2C60 AFB7003C */ sw $s7, 0x3c($sp) +/* 0D7794 7F0A2C64 AFB60038 */ sw $s6, 0x38($sp) +/* 0D7798 7F0A2C68 AFB50034 */ sw $s5, 0x34($sp) +/* 0D779C 7F0A2C6C AFB40030 */ sw $s4, 0x30($sp) +/* 0D77A0 7F0A2C70 AFB3002C */ sw $s3, 0x2c($sp) +/* 0D77A4 7F0A2C74 AFB20028 */ sw $s2, 0x28($sp) +/* 0D77A8 7F0A2C78 AFB10024 */ sw $s1, 0x24($sp) +/* 0D77AC 7F0A2C7C AFB00020 */ sw $s0, 0x20($sp) +/* 0D77B0 7F0A2C80 AFAE0010 */ sw $t6, 0x10($sp) +/* 0D77B4 7F0A2C84 27A400D0 */ addiu $a0, $sp, 0xd0 +/* 0D77B8 7F0A2C88 24060002 */ li $a2, 2 +/* 0D77BC 7F0A2C8C 24070001 */ li $a3, 1 +/* 0D77C0 7F0A2C90 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 0D77C4 7F0A2C94 24A5000C */ addiu $a1, $a1, 0xc +/* 0D77C8 7F0A2C98 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0D77CC 7F0A2C9C 3C19BB00 */ lui $t9, (0xBB001001 >> 16) # lui $t9, 0xbb00 +/* 0D77D0 7F0A2CA0 3C080D80 */ lui $t0, (0x0D800D80 >> 16) # lui $t0, 0xd80 +/* 0D77D4 7F0A2CA4 25F80008 */ addiu $t8, $t7, 8 +/* 0D77D8 7F0A2CA8 AFB800D0 */ sw $t8, 0xd0($sp) +/* 0D77DC 7F0A2CAC 35080D80 */ ori $t0, (0x0D800D80 & 0xFFFF) # ori $t0, $t0, 0xd80 +/* 0D77E0 7F0A2CB0 37391001 */ ori $t9, (0xBB001001 & 0xFFFF) # ori $t9, $t9, 0x1001 +/* 0D77E4 7F0A2CB4 ADF90000 */ sw $t9, ($t7) +/* 0D77E8 7F0A2CB8 ADE80004 */ sw $t0, 4($t7) +/* 0D77EC 7F0A2CBC 8FA900D0 */ lw $t1, 0xd0($sp) +/* 0D77F0 7F0A2CC0 3C0BBA00 */ lui $t3, (0xBA001402 >> 16) # lui $t3, 0xba00 +/* 0D77F4 7F0A2CC4 356B1402 */ ori $t3, (0xBA001402 & 0xFFFF) # ori $t3, $t3, 0x1402 +/* 0D77F8 7F0A2CC8 252A0008 */ addiu $t2, $t1, 8 +/* 0D77FC 7F0A2CCC AFAA00D0 */ sw $t2, 0xd0($sp) +/* 0D7800 7F0A2CD0 3C0C0010 */ lui $t4, 0x10 +/* 0D7804 7F0A2CD4 AD2C0004 */ sw $t4, 4($t1) +/* 0D7808 7F0A2CD8 AD2B0000 */ sw $t3, ($t1) +/* 0D780C 7F0A2CDC 8FAD00D0 */ lw $t5, 0xd0($sp) +/* 0D7810 7F0A2CE0 3C0FBA00 */ lui $t7, (0xBA001001 >> 16) # lui $t7, 0xba00 +/* 0D7814 7F0A2CE4 35EF1001 */ ori $t7, (0xBA001001 & 0xFFFF) # ori $t7, $t7, 0x1001 +/* 0D7818 7F0A2CE8 25AE0008 */ addiu $t6, $t5, 8 +/* 0D781C 7F0A2CEC AFAE00D0 */ sw $t6, 0xd0($sp) +/* 0D7820 7F0A2CF0 3C180001 */ lui $t8, 1 +/* 0D7824 7F0A2CF4 ADB80004 */ sw $t8, 4($t5) +/* 0D7828 7F0A2CF8 ADAF0000 */ sw $t7, ($t5) +/* 0D782C 7F0A2CFC 8FB900D0 */ lw $t9, 0xd0($sp) +/* 0D7830 7F0A2D00 3C09B600 */ lui $t1, 0xb600 +/* 0D7834 7F0A2D04 240A3000 */ li $t2, 12288 +/* 0D7838 7F0A2D08 27280008 */ addiu $t0, $t9, 8 +/* 0D783C 7F0A2D0C AFA800D0 */ sw $t0, 0xd0($sp) +/* 0D7840 7F0A2D10 AF2A0004 */ sw $t2, 4($t9) +/* 0D7844 7F0A2D14 AF290000 */ sw $t1, ($t9) +/* 0D7848 7F0A2D18 8FAB00D0 */ lw $t3, 0xd0($sp) +/* 0D784C 7F0A2D1C 3C0DBA00 */ lui $t5, (0xBA000C02 >> 16) # lui $t5, 0xba00 +/* 0D7850 7F0A2D20 35AD0C02 */ ori $t5, (0xBA000C02 & 0xFFFF) # ori $t5, $t5, 0xc02 +/* 0D7854 7F0A2D24 256C0008 */ addiu $t4, $t3, 8 +/* 0D7858 7F0A2D28 AFAC00D0 */ sw $t4, 0xd0($sp) +/* 0D785C 7F0A2D2C 240E2000 */ li $t6, 8192 +/* 0D7860 7F0A2D30 AD6E0004 */ sw $t6, 4($t3) +/* 0D7864 7F0A2D34 AD6D0000 */ sw $t5, ($t3) +/* 0D7868 7F0A2D38 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0D786C 7F0A2D3C 3C19B700 */ lui $t9, 0xb700 +/* 0D7870 7F0A2D40 3C080006 */ lui $t0, 6 +/* 0D7874 7F0A2D44 25F80008 */ addiu $t8, $t7, 8 +/* 0D7878 7F0A2D48 AFB800D0 */ sw $t8, 0xd0($sp) +/* 0D787C 7F0A2D4C ADE80004 */ sw $t0, 4($t7) +/* 0D7880 7F0A2D50 ADF90000 */ sw $t9, ($t7) +/* 0D7884 7F0A2D54 8FB000D0 */ lw $s0, 0xd0($sp) +/* 0D7888 7F0A2D58 3C0B0103 */ lui $t3, (0x01030040 >> 16) # lui $t3, 0x103 +/* 0D788C 7F0A2D5C 356B0040 */ ori $t3, (0x01030040 & 0xFFFF) # ori $t3, $t3, 0x40 +/* 0D7890 7F0A2D60 260A0008 */ addiu $t2, $s0, 8 +/* 0D7894 7F0A2D64 AFAA00D0 */ sw $t2, 0xd0($sp) +/* 0D7898 7F0A2D68 0FC1E0E5 */ jal get_BONDdata_field_10E0 +/* 0D789C 7F0A2D6C AE0B0000 */ sw $t3, ($s0) +/* 0D78A0 7F0A2D70 0C003A2C */ jal osVirtualToPhysical +/* 0D78A4 7F0A2D74 00402025 */ move $a0, $v0 +/* 0D78A8 7F0A2D78 AE020004 */ sw $v0, 4($s0) +/* 0D78AC 7F0A2D7C 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A160) +/* 0D78B0 7F0A2D80 8C84A160 */ lw $a0, %lo(dword_CODE_bss_8007A160)($a0) +/* 0D78B4 7F0A2D84 00008025 */ move $s0, $zero +/* 0D78B8 7F0A2D88 0000A025 */ move $s4, $zero +/* 0D78BC 7F0A2D8C 18800044 */ blez $a0, .L7F0A2EA0 +/* 0D78C0 7F0A2D90 3C170420 */ lui $s7, (0x04200030 >> 16) # lui $s7, 0x420 +/* 0D78C4 7F0A2D94 3C168008 */ lui $s6, %hi(pPlayer) +/* 0D78C8 7F0A2D98 3C138008 */ lui $s3, %hi(dword_CODE_bss_8007A164) +/* 0D78CC 7F0A2D9C 2673A164 */ addiu $s3, %lo(dword_CODE_bss_8007A164) # addiu $s3, $s3, -0x5e9c +/* 0D78D0 7F0A2DA0 26D6A0B0 */ addiu $s6, %lo(pPlayer) # addiu $s6, $s6, -0x5f50 +/* 0D78D4 7F0A2DA4 3C1EBF00 */ lui $fp, 0xbf00 +/* 0D78D8 7F0A2DA8 36F70030 */ ori $s7, (0x04200030 & 0xFFFF) # ori $s7, $s7, 0x30 +/* 0D78DC 7F0A2DAC 27B50090 */ addiu $s5, $sp, 0x90 +.L7F0A2DB0: +/* 0D78E0 7F0A2DB0 8E6C0000 */ lw $t4, ($s3) +/* 0D78E4 7F0A2DB4 01906821 */ addu $t5, $t4, $s0 +/* 0D78E8 7F0A2DB8 8DAE0000 */ lw $t6, ($t5) +/* 0D78EC 7F0A2DBC 59C00035 */ blezl $t6, .L7F0A2E94 +/* 0D78F0 7F0A2DC0 26940001 */ addiu $s4, $s4, 1 +/* 0D78F4 7F0A2DC4 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0D78F8 7F0A2DC8 00000000 */ nop +/* 0D78FC 7F0A2DCC 8E6F0000 */ lw $t7, ($s3) +/* 0D7900 7F0A2DD0 00408825 */ move $s1, $v0 +/* 0D7904 7F0A2DD4 02A03025 */ move $a2, $s5 +/* 0D7908 7F0A2DD8 01F01821 */ addu $v1, $t7, $s0 +/* 0D790C 7F0A2DDC 24640004 */ addiu $a0, $v1, 4 +/* 0D7910 7F0A2DE0 0FC1624B */ jal matrix_4x4_set_position_and_rotation_around_xyz +/* 0D7914 7F0A2DE4 24650010 */ addiu $a1, $v1, 0x10 +/* 0D7918 7F0A2DE8 8EC20000 */ lw $v0, ($s6) +/* 0D791C 7F0A2DEC C7A400C0 */ lwc1 $f4, 0xc0($sp) +/* 0D7920 7F0A2DF0 C7AA00C4 */ lwc1 $f10, 0xc4($sp) +/* 0D7924 7F0A2DF4 C4460038 */ lwc1 $f6, 0x38($v0) +/* 0D7928 7F0A2DF8 02A02025 */ move $a0, $s5 +/* 0D792C 7F0A2DFC 02202825 */ move $a1, $s1 +/* 0D7930 7F0A2E00 46062201 */ sub.s $f8, $f4, $f6 +/* 0D7934 7F0A2E04 C7A400C8 */ lwc1 $f4, 0xc8($sp) +/* 0D7938 7F0A2E08 E7A800C0 */ swc1 $f8, 0xc0($sp) +/* 0D793C 7F0A2E0C C450003C */ lwc1 $f16, 0x3c($v0) +/* 0D7940 7F0A2E10 46105481 */ sub.s $f18, $f10, $f16 +/* 0D7944 7F0A2E14 E7B200C4 */ swc1 $f18, 0xc4($sp) +/* 0D7948 7F0A2E18 C4460040 */ lwc1 $f6, 0x40($v0) +/* 0D794C 7F0A2E1C 46062201 */ sub.s $f8, $f4, $f6 +/* 0D7950 7F0A2E20 0FC16327 */ jal sub_GAME_7F058C9C +/* 0D7954 7F0A2E24 E7A800C8 */ swc1 $f8, 0xc8($sp) +/* 0D7958 7F0A2E28 8FB200D0 */ lw $s2, 0xd0($sp) +/* 0D795C 7F0A2E2C 3C080102 */ lui $t0, (0x01020040 >> 16) # lui $t0, 0x102 +/* 0D7960 7F0A2E30 35080040 */ ori $t0, (0x01020040 & 0xFFFF) # ori $t0, $t0, 0x40 +/* 0D7964 7F0A2E34 26590008 */ addiu $t9, $s2, 8 +/* 0D7968 7F0A2E38 AFB900D0 */ sw $t9, 0xd0($sp) +/* 0D796C 7F0A2E3C 02202025 */ move $a0, $s1 +/* 0D7970 7F0A2E40 0C003A2C */ jal osVirtualToPhysical +/* 0D7974 7F0A2E44 AE480000 */ sw $t0, ($s2) +/* 0D7978 7F0A2E48 AE420004 */ sw $v0, 4($s2) +/* 0D797C 7F0A2E4C 8FB100D0 */ lw $s1, 0xd0($sp) +/* 0D7980 7F0A2E50 262A0008 */ addiu $t2, $s1, 8 +/* 0D7984 7F0A2E54 AFAA00D0 */ sw $t2, 0xd0($sp) +/* 0D7988 7F0A2E58 AE370000 */ sw $s7, ($s1) +/* 0D798C 7F0A2E5C 8E6B0000 */ lw $t3, ($s3) +/* 0D7990 7F0A2E60 01702021 */ addu $a0, $t3, $s0 +/* 0D7994 7F0A2E64 0C003A2C */ jal osVirtualToPhysical +/* 0D7998 7F0A2E68 24840038 */ addiu $a0, $a0, 0x38 +/* 0D799C 7F0A2E6C AE220004 */ sw $v0, 4($s1) +/* 0D79A0 7F0A2E70 8FAC00D0 */ lw $t4, 0xd0($sp) +/* 0D79A4 7F0A2E74 240E0A14 */ li $t6, 2580 +/* 0D79A8 7F0A2E78 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007A160) +/* 0D79AC 7F0A2E7C 258D0008 */ addiu $t5, $t4, 8 +/* 0D79B0 7F0A2E80 AFAD00D0 */ sw $t5, 0xd0($sp) +/* 0D79B4 7F0A2E84 AD8E0004 */ sw $t6, 4($t4) +/* 0D79B8 7F0A2E88 AD9E0000 */ sw $fp, ($t4) +/* 0D79BC 7F0A2E8C 8C84A160 */ lw $a0, %lo(dword_CODE_bss_8007A160)($a0) +/* 0D79C0 7F0A2E90 26940001 */ addiu $s4, $s4, 1 +.L7F0A2E94: +/* 0D79C4 7F0A2E94 0284082A */ slt $at, $s4, $a0 +/* 0D79C8 7F0A2E98 1420FFC5 */ bnez $at, .L7F0A2DB0 +/* 0D79CC 7F0A2E9C 26100068 */ addiu $s0, $s0, 0x68 +.L7F0A2EA0: +/* 0D79D0 7F0A2EA0 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0D79D4 7F0A2EA4 3C19B600 */ lui $t9, 0xb600 +/* 0D79D8 7F0A2EA8 3C080006 */ lui $t0, 6 +/* 0D79DC 7F0A2EAC 25F80008 */ addiu $t8, $t7, 8 +/* 0D79E0 7F0A2EB0 AFB800D0 */ sw $t8, 0xd0($sp) +/* 0D79E4 7F0A2EB4 ADE80004 */ sw $t0, 4($t7) +/* 0D79E8 7F0A2EB8 ADF90000 */ sw $t9, ($t7) +/* 0D79EC 7F0A2EBC 8FB000D0 */ lw $s0, 0xd0($sp) +/* 0D79F0 7F0A2EC0 3C0B0103 */ lui $t3, (0x01030040 >> 16) # lui $t3, 0x103 +/* 0D79F4 7F0A2EC4 356B0040 */ ori $t3, (0x01030040 & 0xFFFF) # ori $t3, $t3, 0x40 +/* 0D79F8 7F0A2EC8 260A0008 */ addiu $t2, $s0, 8 +/* 0D79FC 7F0A2ECC AFAA00D0 */ sw $t2, 0xd0($sp) +/* 0D7A00 7F0A2ED0 0FC1E0DD */ jal get_BONDdata_field_10D8 +/* 0D7A04 7F0A2ED4 AE0B0000 */ sw $t3, ($s0) +/* 0D7A08 7F0A2ED8 AE020004 */ sw $v0, 4($s0) +/* 0D7A0C 7F0A2EDC 8FB100D0 */ lw $s1, 0xd0($sp) +/* 0D7A10 7F0A2EE0 3C0E0102 */ lui $t6, (0x01020040 >> 16) # lui $t6, 0x102 +/* 0D7A14 7F0A2EE4 35CE0040 */ ori $t6, (0x01020040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 0D7A18 7F0A2EE8 262D0008 */ addiu $t5, $s1, 8 +/* 0D7A1C 7F0A2EEC AFAD00D0 */ sw $t5, 0xd0($sp) +/* 0D7A20 7F0A2EF0 0FC1E0D5 */ jal get_BONDdata_field_10C8 +/* 0D7A24 7F0A2EF4 AE2E0000 */ sw $t6, ($s1) +/* 0D7A28 7F0A2EF8 AE220004 */ sw $v0, 4($s1) +/* 0D7A2C 7F0A2EFC 8FBF0044 */ lw $ra, 0x44($sp) +/* 0D7A30 7F0A2F00 8FBE0040 */ lw $fp, 0x40($sp) +/* 0D7A34 7F0A2F04 8FB7003C */ lw $s7, 0x3c($sp) +/* 0D7A38 7F0A2F08 8FB60038 */ lw $s6, 0x38($sp) +/* 0D7A3C 7F0A2F0C 8FB50034 */ lw $s5, 0x34($sp) +/* 0D7A40 7F0A2F10 8FB40030 */ lw $s4, 0x30($sp) +/* 0D7A44 7F0A2F14 8FB3002C */ lw $s3, 0x2c($sp) +/* 0D7A48 7F0A2F18 8FB20028 */ lw $s2, 0x28($sp) +/* 0D7A4C 7F0A2F1C 8FB10024 */ lw $s1, 0x24($sp) +/* 0D7A50 7F0A2F20 8FB00020 */ lw $s0, 0x20($sp) +/* 0D7A54 7F0A2F24 8FA200D0 */ lw $v0, 0xd0($sp) +/* 0D7A58 7F0A2F28 03E00008 */ jr $ra +/* 0D7A5C 7F0A2F2C 27BD00D0 */ addiu $sp, $sp, 0xd0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A2F30(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80057740 +.word 0x4061d000, 0x00000000 /*142.5*/ +glabel D_80057748 +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F0A2F30 +/* 0D7A60 7F0A2F30 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 0D7A64 7F0A2F34 AFB60060 */ sw $s6, 0x60($sp) +/* 0D7A68 7F0A2F38 00C0B025 */ move $s6, $a2 +/* 0D7A6C 7F0A2F3C 44963000 */ mtc1 $s6, $f6 +/* 0D7A70 7F0A2F40 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 0D7A74 7F0A2F44 44812000 */ mtc1 $at, $f4 +/* 0D7A78 7F0A2F48 46803220 */ cvt.s.w $f8, $f6 +/* 0D7A7C 7F0A2F4C F7BE0040 */ sdc1 $f30, 0x40($sp) +/* 0D7A80 7F0A2F50 3C014302 */ li $at, 0x43020000 # 130.000000 +/* 0D7A84 7F0A2F54 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0D7A88 7F0A2F58 4481F000 */ mtc1 $at, $f30 +/* 0D7A8C 7F0A2F5C 4487B000 */ mtc1 $a3, $f22 +/* 0D7A90 7F0A2F60 F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 0D7A94 7F0A2F64 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0D7A98 7F0A2F68 4481E000 */ mtc1 $at, $f28 +/* 0D7A9C 7F0A2F6C F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 0D7AA0 7F0A2F70 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 0D7AA4 7F0A2F74 AFBE0068 */ sw $fp, 0x68($sp) +/* 0D7AA8 7F0A2F78 AFB70064 */ sw $s7, 0x64($sp) +/* 0D7AAC 7F0A2F7C AFB5005C */ sw $s5, 0x5c($sp) +/* 0D7AB0 7F0A2F80 AFB30054 */ sw $s3, 0x54($sp) +/* 0D7AB4 7F0A2F84 AFB20050 */ sw $s2, 0x50($sp) +/* 0D7AB8 7F0A2F88 AFB00048 */ sw $s0, 0x48($sp) +/* 0D7ABC 7F0A2F8C 4481D000 */ mtc1 $at, $f26 +/* 0D7AC0 7F0A2F90 4604B582 */ mul.s $f22, $f22, $f4 +/* 0D7AC4 7F0A2F94 00808025 */ move $s0, $a0 +/* 0D7AC8 7F0A2F98 AFBF006C */ sw $ra, 0x6c($sp) +/* 0D7ACC 7F0A2F9C AFB40058 */ sw $s4, 0x58($sp) +/* 0D7AD0 7F0A2FA0 AFB1004C */ sw $s1, 0x4c($sp) +/* 0D7AD4 7F0A2FA4 F7B80028 */ sdc1 $f24, 0x28($sp) +/* 0D7AD8 7F0A2FA8 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D7ADC 7F0A2FAC AFA5009C */ sw $a1, 0x9c($sp) +/* 0D7AE0 7F0A2FB0 00009025 */ move $s2, $zero +/* 0D7AE4 7F0A2FB4 241300FF */ li $s3, 255 +/* 0D7AE8 7F0A2FB8 24150030 */ li $s5, 48 +/* 0D7AEC 7F0A2FBC 24170006 */ li $s7, 6 +/* 0D7AF0 7F0A2FC0 241E0002 */ li $fp, 2 +/* 0D7AF4 7F0A2FC4 E7A80074 */ swc1 $f8, 0x74($sp) +/* 0D7AF8 7F0A2FC8 AFA00080 */ sw $zero, 0x80($sp) +.L7F0A2FCC: +/* 0D7AFC 7F0A2FCC 8FA20080 */ lw $v0, 0x80($sp) +/* 0D7B00 7F0A2FD0 3C018005 */ lui $at, %hi(D_80057740) +/* 0D7B04 7F0A2FD4 D42A7740 */ ldc1 $f10, %lo(D_80057740)($at) +/* 0D7B08 7F0A2FD8 44828000 */ mtc1 $v0, $f16 +/* 0D7B0C 7F0A2FDC 3C018005 */ lui $at, %hi(D_80057748) +/* 0D7B10 7F0A2FE0 0000A025 */ move $s4, $zero +/* 0D7B14 7F0A2FE4 468084A1 */ cvt.d.w $f18, $f16 +/* 0D7B18 7F0A2FE8 46325101 */ sub.d $f4, $f10, $f18 +/* 0D7B1C 7F0A2FEC C42A7748 */ lwc1 $f10, %lo(D_80057748)($at) +/* 0D7B20 7F0A2FF0 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0D7B24 7F0A2FF4 4620218D */ trunc.w.d $f6, $f4 +/* 0D7B28 7F0A2FF8 44812000 */ mtc1 $at, $f4 +/* 0D7B2C 7F0A2FFC 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0D7B30 7F0A3000 440F3000 */ mfc1 $t7, $f6 +/* 0D7B34 7F0A3004 00000000 */ nop +/* 0D7B38 7F0A3008 448F4000 */ mtc1 $t7, $f8 +/* 0D7B3C 7F0A300C 00000000 */ nop +/* 0D7B40 7F0A3010 46804420 */ cvt.s.w $f16, $f8 +/* 0D7B44 7F0A3014 44814000 */ mtc1 $at, $f8 +/* 0D7B48 7F0A3018 460A8482 */ mul.s $f18, $f16, $f10 +/* 0D7B4C 7F0A301C 00000000 */ nop +/* 0D7B50 7F0A3020 46049182 */ mul.s $f6, $f18, $f4 +/* 0D7B54 7F0A3024 46083603 */ div.s $f24, $f6, $f8 +.L7F0A3028: +/* 0D7B58 7F0A3028 0FC15FAB */ jal sinf +/* 0D7B5C 7F0A302C 4600C306 */ mov.s $f12, $f24 +/* 0D7B60 7F0A3030 461C0282 */ mul.s $f10, $f0, $f28 +/* 0D7B64 7F0A3034 02F4C023 */ subu $t8, $s7, $s4 +/* 0D7B68 7F0A3038 44988000 */ mtc1 $t8, $f16 +/* 0D7B6C 7F0A303C 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0D7B70 7F0A3040 44813000 */ mtc1 $at, $f6 +/* 0D7B74 7F0A3044 4600C306 */ mov.s $f12, $f24 +/* 0D7B78 7F0A3048 46808520 */ cvt.s.w $f20, $f16 +/* 0D7B7C 7F0A304C 461E5482 */ mul.s $f18, $f10, $f30 +/* 0D7B80 7F0A3050 C7B00074 */ lwc1 $f16, 0x74($sp) +/* 0D7B84 7F0A3054 46149102 */ mul.s $f4, $f18, $f20 +/* 0D7B88 7F0A3058 46062203 */ div.s $f8, $f4, $f6 +/* 0D7B8C 7F0A305C 46104282 */ mul.s $f10, $f8, $f16 +/* 0D7B90 7F0A3060 4600548D */ trunc.w.s $f18, $f10 +/* 0D7B94 7F0A3064 44119000 */ mfc1 $s1, $f18 +/* 0D7B98 7F0A3068 00000000 */ nop +/* 0D7B9C 7F0A306C 00114400 */ sll $t0, $s1, 0x10 +/* 0D7BA0 7F0A3070 0FC15FA8 */ jal cosf +/* 0D7BA4 7F0A3074 00088C03 */ sra $s1, $t0, 0x10 +/* 0D7BA8 7F0A3078 461C0102 */ mul.s $f4, $f0, $f28 +/* 0D7BAC 7F0A307C 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0D7BB0 7F0A3080 44818000 */ mtc1 $at, $f16 +/* 0D7BB4 7F0A3084 262A0001 */ addiu $t2, $s1, 1 +/* 0D7BB8 7F0A3088 A60A0000 */ sh $t2, ($s0) +/* 0D7BBC 7F0A308C A6000002 */ sh $zero, 2($s0) +/* 0D7BC0 7F0A3090 A6000006 */ sh $zero, 6($s0) +/* 0D7BC4 7F0A3094 461E2182 */ mul.s $f6, $f4, $f30 +/* 0D7BC8 7F0A3098 A6000008 */ sh $zero, 8($s0) +/* 0D7BCC 7F0A309C A600000A */ sh $zero, 0xa($s0) +/* 0D7BD0 7F0A30A0 A213000C */ sb $s3, 0xc($s0) +/* 0D7BD4 7F0A30A4 A213000D */ sb $s3, 0xd($s0) +/* 0D7BD8 7F0A30A8 A213000E */ sb $s3, 0xe($s0) +/* 0D7BDC 7F0A30AC 46143202 */ mul.s $f8, $f6, $f20 +/* 0D7BE0 7F0A30B0 46104283 */ div.s $f10, $f8, $f16 +/* 0D7BE4 7F0A30B4 4600548D */ trunc.w.s $f18, $f10 +/* 0D7BE8 7F0A30B8 440E9000 */ mfc1 $t6, $f18 +/* 0D7BEC 7F0A30BC 00000000 */ nop +/* 0D7BF0 7F0A30C0 000E7823 */ negu $t7, $t6 +/* 0D7BF4 7F0A30C4 1AC00013 */ blez $s6, .L7F0A3114 +/* 0D7BF8 7F0A30C8 A60F0004 */ sh $t7, 4($s0) +/* 0D7BFC 7F0A30CC 0FC15FA8 */ jal cosf +/* 0D7C00 7F0A30D0 4600C306 */ mov.s $f12, $f24 +/* 0D7C04 7F0A30D4 3C0142C0 */ li $at, 0x42C00000 # 96.000000 +/* 0D7C08 7F0A30D8 44811000 */ mtc1 $at, $f2 +/* 0D7C0C 7F0A30DC 4600C306 */ mov.s $f12, $f24 +/* 0D7C10 7F0A30E0 46020102 */ mul.s $f4, $f0, $f2 +/* 0D7C14 7F0A30E4 46041181 */ sub.s $f6, $f2, $f4 +/* 0D7C18 7F0A30E8 4600320D */ trunc.w.s $f8, $f6 +/* 0D7C1C 7F0A30EC 44194000 */ mfc1 $t9, $f8 +/* 0D7C20 7F0A30F0 0FC15FA8 */ jal cosf +/* 0D7C24 7F0A30F4 A219000C */ sb $t9, 0xc($s0) +/* 0D7C28 7F0A30F8 461A0402 */ mul.s $f16, $f0, $f26 +/* 0D7C2C 7F0A30FC A213000E */ sb $s3, 0xe($s0) +/* 0D7C30 7F0A3100 4610D281 */ sub.s $f10, $f26, $f16 +/* 0D7C34 7F0A3104 4600548D */ trunc.w.s $f18, $f10 +/* 0D7C38 7F0A3108 44099000 */ mfc1 $t1, $f18 +/* 0D7C3C 7F0A310C 10000015 */ b .L7F0A3164 +/* 0D7C40 7F0A3110 A209000D */ sb $t1, 0xd($s0) +.L7F0A3114: +/* 0D7C44 7F0A3114 06C30014 */ bgezl $s6, .L7F0A3168 +/* 0D7C48 7F0A3118 2A41000A */ slti $at, $s2, 0xa +/* 0D7C4C 7F0A311C 0FC15FA8 */ jal cosf +/* 0D7C50 7F0A3120 4600C306 */ mov.s $f12, $f24 +/* 0D7C54 7F0A3124 461A0102 */ mul.s $f4, $f0, $f26 +/* 0D7C58 7F0A3128 4600C306 */ mov.s $f12, $f24 +/* 0D7C5C 7F0A312C 4604D181 */ sub.s $f6, $f26, $f4 +/* 0D7C60 7F0A3130 4600320D */ trunc.w.s $f8, $f6 +/* 0D7C64 7F0A3134 440B4000 */ mfc1 $t3, $f8 +/* 0D7C68 7F0A3138 0FC15FA8 */ jal cosf +/* 0D7C6C 7F0A313C A20B000D */ sb $t3, 0xd($s0) +/* 0D7C70 7F0A3140 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 0D7C74 7F0A3144 44815000 */ mtc1 $at, $f10 +/* 0D7C78 7F0A3148 44818000 */ mtc1 $at, $f16 +/* 0D7C7C 7F0A314C 460A0482 */ mul.s $f18, $f0, $f10 +/* 0D7C80 7F0A3150 46128101 */ sub.s $f4, $f16, $f18 +/* 0D7C84 7F0A3154 4600218D */ trunc.w.s $f6, $f4 +/* 0D7C88 7F0A3158 440D3000 */ mfc1 $t5, $f6 +/* 0D7C8C 7F0A315C 00000000 */ nop +/* 0D7C90 7F0A3160 A20D000E */ sb $t5, 0xe($s0) +.L7F0A3164: +/* 0D7C94 7F0A3164 2A41000A */ slti $at, $s2, 0xa +.L7F0A3168: +/* 0D7C98 7F0A3168 10200022 */ beqz $at, .L7F0A31F4 +/* 0D7C9C 7F0A316C 26940001 */ addiu $s4, $s4, 1 +/* 0D7CA0 7F0A3170 4600B20D */ trunc.w.s $f8, $f22 +/* 0D7CA4 7F0A3174 44024000 */ mfc1 $v0, $f8 +/* 0D7CA8 7F0A3178 00000000 */ nop +/* 0D7CAC 7F0A317C 00021840 */ sll $v1, $v0, 1 +/* 0D7CB0 7F0A3180 2463FFFF */ addiu $v1, $v1, -1 +/* 0D7CB4 7F0A3184 0072082A */ slt $at, $v1, $s2 +/* 0D7CB8 7F0A3188 54200004 */ bnezl $at, .L7F0A319C +/* 0D7CBC 7F0A318C 4616B280 */ add.s $f10, $f22, $f22 +/* 0D7CC0 7F0A3190 1000004D */ b .L7F0A32C8 +/* 0D7CC4 7F0A3194 A213000F */ sb $s3, 0xf($s0) +/* 0D7CC8 7F0A3198 4616B280 */ add.s $f10, $f22, $f22 +.L7F0A319C: +/* 0D7CCC 7F0A319C 4600540D */ trunc.w.s $f16, $f10 +/* 0D7CD0 7F0A31A0 44188000 */ mfc1 $t8, $f16 +/* 0D7CD4 7F0A31A4 00000000 */ nop +/* 0D7CD8 7F0A31A8 0258082A */ slt $at, $s2, $t8 +/* 0D7CDC 7F0A31AC 1020000F */ beqz $at, .L7F0A31EC +/* 0D7CE0 7F0A31B0 0072082A */ slt $at, $v1, $s2 +/* 0D7CE4 7F0A31B4 1020000D */ beqz $at, .L7F0A31EC +/* 0D7CE8 7F0A31B8 00000000 */ nop +/* 0D7CEC 7F0A31BC 44829000 */ mtc1 $v0, $f18 +/* 0D7CF0 7F0A31C0 3C01434F */ li $at, 0x434F0000 # 207.000000 +/* 0D7CF4 7F0A31C4 44814000 */ mtc1 $at, $f8 +/* 0D7CF8 7F0A31C8 46809120 */ cvt.s.w $f4, $f18 +/* 0D7CFC 7F0A31CC 4604B181 */ sub.s $f6, $f22, $f4 +/* 0D7D00 7F0A31D0 46083282 */ mul.s $f10, $f6, $f8 +/* 0D7D04 7F0A31D4 4600540D */ trunc.w.s $f16, $f10 +/* 0D7D08 7F0A31D8 44088000 */ mfc1 $t0, $f16 +/* 0D7D0C 7F0A31DC 00000000 */ nop +/* 0D7D10 7F0A31E0 25090030 */ addiu $t1, $t0, 0x30 +/* 0D7D14 7F0A31E4 10000038 */ b .L7F0A32C8 +/* 0D7D18 7F0A31E8 A209000F */ sb $t1, 0xf($s0) +.L7F0A31EC: +/* 0D7D1C 7F0A31EC 10000036 */ b .L7F0A32C8 +/* 0D7D20 7F0A31F0 A215000F */ sb $s5, 0xf($s0) +.L7F0A31F4: +/* 0D7D24 7F0A31F4 2A41000A */ slti $at, $s2, 0xa +/* 0D7D28 7F0A31F8 14200033 */ bnez $at, .L7F0A32C8 +/* 0D7D2C 7F0A31FC 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0D7D30 7F0A3200 44819000 */ mtc1 $at, $f18 +/* 0D7D34 7F0A3204 44924000 */ mtc1 $s2, $f8 +/* 0D7D38 7F0A3208 3C014110 */ li $at, 0x41100000 # 9.000000 +/* 0D7D3C 7F0A320C 4612B001 */ sub.s $f0, $f22, $f18 +/* 0D7D40 7F0A3210 44812000 */ mtc1 $at, $f4 +/* 0D7D44 7F0A3214 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D7D48 7F0A3218 468042A0 */ cvt.s.w $f10, $f8 +/* 0D7D4C 7F0A321C 461C0082 */ mul.s $f2, $f0, $f28 +/* 0D7D50 7F0A3220 46022180 */ add.s $f6, $f4, $f2 +/* 0D7D54 7F0A3224 4606503E */ c.le.s $f10, $f6 +/* 0D7D58 7F0A3228 00000000 */ nop +/* 0D7D5C 7F0A322C 45020004 */ bc1fl .L7F0A3240 +/* 0D7D60 7F0A3230 44818000 */ mtc1 $at, $f16 +/* 0D7D64 7F0A3234 10000024 */ b .L7F0A32C8 +/* 0D7D68 7F0A3238 A213000F */ sb $s3, 0xf($s0) +/* 0D7D6C 7F0A323C 44818000 */ mtc1 $at, $f16 +.L7F0A3240: +/* 0D7D70 7F0A3240 00000000 */ nop +/* 0D7D74 7F0A3244 46101480 */ add.s $f18, $f2, $f16 +/* 0D7D78 7F0A3248 4600910D */ trunc.w.s $f4, $f18 +/* 0D7D7C 7F0A324C 440B2000 */ mfc1 $t3, $f4 +/* 0D7D80 7F0A3250 00000000 */ nop +/* 0D7D84 7F0A3254 256C0009 */ addiu $t4, $t3, 9 +/* 0D7D88 7F0A3258 0192082A */ slt $at, $t4, $s2 +/* 0D7D8C 7F0A325C 5420001A */ bnezl $at, .L7F0A32C8 +/* 0D7D90 7F0A3260 A215000F */ sb $s5, 0xf($s0) +/* 0D7D94 7F0A3264 4600020D */ trunc.w.s $f8, $f0 +/* 0D7D98 7F0A3268 440E4000 */ mfc1 $t6, $f8 +/* 0D7D9C 7F0A326C 00000000 */ nop +/* 0D7DA0 7F0A3270 000E7840 */ sll $t7, $t6, 1 +/* 0D7DA4 7F0A3274 25F80008 */ addiu $t8, $t7, 8 +/* 0D7DA8 7F0A3278 0312082A */ slt $at, $t8, $s2 +/* 0D7DAC 7F0A327C 50200012 */ beql $at, $zero, .L7F0A32C8 +/* 0D7DB0 7F0A3280 A215000F */ sb $s5, 0xf($s0) +/* 0D7DB4 7F0A3284 4600B18D */ trunc.w.s $f6, $f22 +/* 0D7DB8 7F0A3288 3C01434F */ li $at, 0x434F0000 # 207.000000 +/* 0D7DBC 7F0A328C 44812000 */ mtc1 $at, $f4 +/* 0D7DC0 7F0A3290 44083000 */ mfc1 $t0, $f6 +/* 0D7DC4 7F0A3294 00000000 */ nop +/* 0D7DC8 7F0A3298 44885000 */ mtc1 $t0, $f10 +/* 0D7DCC 7F0A329C 00000000 */ nop +/* 0D7DD0 7F0A32A0 46805420 */ cvt.s.w $f16, $f10 +/* 0D7DD4 7F0A32A4 4610B481 */ sub.s $f18, $f22, $f16 +/* 0D7DD8 7F0A32A8 46049202 */ mul.s $f8, $f18, $f4 +/* 0D7DDC 7F0A32AC 4600418D */ trunc.w.s $f6, $f8 +/* 0D7DE0 7F0A32B0 440A3000 */ mfc1 $t2, $f6 +/* 0D7DE4 7F0A32B4 00000000 */ nop +/* 0D7DE8 7F0A32B8 254B0030 */ addiu $t3, $t2, 0x30 +/* 0D7DEC 7F0A32BC 10000002 */ b .L7F0A32C8 +/* 0D7DF0 7F0A32C0 A20B000F */ sb $t3, 0xf($s0) +/* 0D7DF4 7F0A32C4 A215000F */ sb $s5, 0xf($s0) +.L7F0A32C8: +/* 0D7DF8 7F0A32C8 169EFF57 */ bne $s4, $fp, .L7F0A3028 +/* 0D7DFC 7F0A32CC 26100010 */ addiu $s0, $s0, 0x10 +/* 0D7E00 7F0A32D0 8FAC0080 */ lw $t4, 0x80($sp) +/* 0D7E04 7F0A32D4 26520001 */ addiu $s2, $s2, 1 +/* 0D7E08 7F0A32D8 24010017 */ li $at, 23 +/* 0D7E0C 7F0A32DC 258D0005 */ addiu $t5, $t4, 5 +/* 0D7E10 7F0A32E0 1641FF3A */ bne $s2, $at, .L7F0A2FCC +/* 0D7E14 7F0A32E4 AFAD0080 */ sw $t5, 0x80($sp) +/* 0D7E18 7F0A32E8 8FBF006C */ lw $ra, 0x6c($sp) +/* 0D7E1C 7F0A32EC D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D7E20 7F0A32F0 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0D7E24 7F0A32F4 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 0D7E28 7F0A32F8 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 0D7E2C 7F0A32FC D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 0D7E30 7F0A3300 D7BE0040 */ ldc1 $f30, 0x40($sp) +/* 0D7E34 7F0A3304 8FB00048 */ lw $s0, 0x48($sp) +/* 0D7E38 7F0A3308 8FB1004C */ lw $s1, 0x4c($sp) +/* 0D7E3C 7F0A330C 8FB20050 */ lw $s2, 0x50($sp) +/* 0D7E40 7F0A3310 8FB30054 */ lw $s3, 0x54($sp) +/* 0D7E44 7F0A3314 8FB40058 */ lw $s4, 0x58($sp) +/* 0D7E48 7F0A3318 8FB5005C */ lw $s5, 0x5c($sp) +/* 0D7E4C 7F0A331C 8FB60060 */ lw $s6, 0x60($sp) +/* 0D7E50 7F0A3320 8FB70064 */ lw $s7, 0x64($sp) +/* 0D7E54 7F0A3324 8FBE0068 */ lw $fp, 0x68($sp) +/* 0D7E58 7F0A3328 03E00008 */ jr $ra +/* 0D7E5C 7F0A332C 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3330(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3330 +/* 0D7E60 7F0A3330 00803825 */ move $a3, $a0 +/* 0D7E64 7F0A3334 00001025 */ move $v0, $zero +/* 0D7E68 7F0A3338 04C10003 */ bgez $a2, .L7F0A3348 +/* 0D7E6C 7F0A333C 00061843 */ sra $v1, $a2, 1 +/* 0D7E70 7F0A3340 24C10001 */ addiu $at, $a2, 1 +/* 0D7E74 7F0A3344 00011843 */ sra $v1, $at, 1 +.L7F0A3348: +/* 0D7E78 7F0A3348 2463FFFE */ addiu $v1, $v1, -2 +/* 0D7E7C 7F0A334C 04600026 */ bltz $v1, .L7F0A33E8 +/* 0D7E80 7F0A3350 3C0BB800 */ lui $t3, 0xb800 +/* 0D7E84 7F0A3354 3C08B100 */ lui $t0, (0xB1000032 >> 16) # lui $t0, 0xb100 +/* 0D7E88 7F0A3358 3C060430 */ lui $a2, (0x04300040 >> 16) # lui $a2, 0x430 +/* 0D7E8C 7F0A335C 34C60040 */ ori $a2, (0x04300040 & 0xFFFF) # ori $a2, $a2, 0x40 +/* 0D7E90 7F0A3360 35080032 */ ori $t0, (0xB1000032 & 0xFFFF) # ori $t0, $t0, 0x32 +/* 0D7E94 7F0A3364 24092110 */ li $t1, 8464 +.L7F0A3368: +/* 0D7E98 7F0A3368 00E02025 */ move $a0, $a3 +/* 0D7E9C 7F0A336C 28410009 */ slti $at, $v0, 9 +/* 0D7EA0 7F0A3370 AC860000 */ sw $a2, ($a0) +/* 0D7EA4 7F0A3374 AC850004 */ sw $a1, 4($a0) +/* 0D7EA8 7F0A3378 1420000D */ bnez $at, .L7F0A33B0 +/* 0D7EAC 7F0A337C 24E70008 */ addiu $a3, $a3, 8 +/* 0D7EB0 7F0A3380 244E0003 */ addiu $t6, $v0, 3 +/* 0D7EB4 7F0A3384 05C10004 */ bgez $t6, .L7F0A3398 +/* 0D7EB8 7F0A3388 31CF0003 */ andi $t7, $t6, 3 +/* 0D7EBC 7F0A338C 11E00002 */ beqz $t7, .L7F0A3398 +/* 0D7EC0 7F0A3390 00000000 */ nop +/* 0D7EC4 7F0A3394 25EFFFFC */ addiu $t7, $t7, -4 +.L7F0A3398: +/* 0D7EC8 7F0A3398 11E0000D */ beqz $t7, .L7F0A33D0 +/* 0D7ECC 7F0A339C 00E02025 */ move $a0, $a3 +/* 0D7ED0 7F0A33A0 24E70008 */ addiu $a3, $a3, 8 +/* 0D7ED4 7F0A33A4 AC880000 */ sw $t0, ($a0) +/* 0D7ED8 7F0A33A8 10000009 */ b .L7F0A33D0 +/* 0D7EDC 7F0A33AC AC890004 */ sw $t1, 4($a0) +.L7F0A33B0: +/* 0D7EE0 7F0A33B0 28410009 */ slti $at, $v0, 9 +/* 0D7EE4 7F0A33B4 10200006 */ beqz $at, .L7F0A33D0 +/* 0D7EE8 7F0A33B8 30580001 */ andi $t8, $v0, 1 +/* 0D7EEC 7F0A33BC 17000004 */ bnez $t8, .L7F0A33D0 +/* 0D7EF0 7F0A33C0 00E02025 */ move $a0, $a3 +/* 0D7EF4 7F0A33C4 24E70008 */ addiu $a3, $a3, 8 +/* 0D7EF8 7F0A33C8 AC880000 */ sw $t0, ($a0) +/* 0D7EFC 7F0A33CC AC890004 */ sw $t1, 4($a0) +.L7F0A33D0: +/* 0D7F00 7F0A33D0 24420001 */ addiu $v0, $v0, 1 +/* 0D7F04 7F0A33D4 0002CE00 */ sll $t9, $v0, 0x18 +/* 0D7F08 7F0A33D8 00191603 */ sra $v0, $t9, 0x18 +/* 0D7F0C 7F0A33DC 0062082A */ slt $at, $v1, $v0 +/* 0D7F10 7F0A33E0 1020FFE1 */ beqz $at, .L7F0A3368 +/* 0D7F14 7F0A33E4 24A50020 */ addiu $a1, $a1, 0x20 +.L7F0A33E8: +/* 0D7F18 7F0A33E8 24E20008 */ addiu $v0, $a3, 8 +/* 0D7F1C 7F0A33EC ACEB0000 */ sw $t3, ($a3) +/* 0D7F20 7F0A33F0 03E00008 */ jr $ra +/* 0D7F24 7F0A33F4 ACE00004 */ sw $zero, 4($a3) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A33F8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005774C +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F0A33F8 +/* 0D7F28 7F0A33F8 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0D7F2C 7F0A33FC F7BE0038 */ sdc1 $f30, 0x38($sp) +/* 0D7F30 7F0A3400 4486F000 */ mtc1 $a2, $f30 +/* 0D7F34 7F0A3404 AFB6005C */ sw $s6, 0x5c($sp) +/* 0D7F38 7F0A3408 AFB00044 */ sw $s0, 0x44($sp) +/* 0D7F3C 7F0A340C 00808025 */ move $s0, $a0 +/* 0D7F40 7F0A3410 00A0B025 */ move $s6, $a1 +/* 0D7F44 7F0A3414 AFBF0064 */ sw $ra, 0x64($sp) +/* 0D7F48 7F0A3418 AFB70060 */ sw $s7, 0x60($sp) +/* 0D7F4C 7F0A341C AFB50058 */ sw $s5, 0x58($sp) +/* 0D7F50 7F0A3420 AFB40054 */ sw $s4, 0x54($sp) +/* 0D7F54 7F0A3424 AFB30050 */ sw $s3, 0x50($sp) +/* 0D7F58 7F0A3428 AFB2004C */ sw $s2, 0x4c($sp) +/* 0D7F5C 7F0A342C AFB10048 */ sw $s1, 0x48($sp) +/* 0D7F60 7F0A3430 F7BC0030 */ sdc1 $f28, 0x30($sp) +/* 0D7F64 7F0A3434 F7BA0028 */ sdc1 $f26, 0x28($sp) +/* 0D7F68 7F0A3438 F7B80020 */ sdc1 $f24, 0x20($sp) +/* 0D7F6C 7F0A343C F7B60018 */ sdc1 $f22, 0x18($sp) +/* 0D7F70 7F0A3440 10E0000F */ beqz $a3, .L7F0A3480 +/* 0D7F74 7F0A3444 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0D7F78 7F0A3448 241500B0 */ li $s5, 176 +/* 0D7F7C 7F0A344C 240E0001 */ li $t6, 1 +/* 0D7F80 7F0A3450 240F002C */ li $t7, 44 +/* 0D7F84 7F0A3454 A48E0000 */ sh $t6, ($a0) +/* 0D7F88 7F0A3458 A4800002 */ sh $zero, 2($a0) +/* 0D7F8C 7F0A345C A4800004 */ sh $zero, 4($a0) +/* 0D7F90 7F0A3460 A4800006 */ sh $zero, 6($a0) +/* 0D7F94 7F0A3464 A4800008 */ sh $zero, 8($a0) +/* 0D7F98 7F0A3468 A480000A */ sh $zero, 0xa($a0) +/* 0D7F9C 7F0A346C A080000C */ sb $zero, 0xc($a0) +/* 0D7FA0 7F0A3470 A08F000D */ sb $t7, 0xd($a0) +/* 0D7FA4 7F0A3474 A080000E */ sb $zero, 0xe($a0) +/* 0D7FA8 7F0A3478 A095000F */ sb $s5, 0xf($a0) +/* 0D7FAC 7F0A347C 24900010 */ addiu $s0, $a0, 0x10 +.L7F0A3480: +/* 0D7FB0 7F0A3480 26D7FFF9 */ addiu $s7, $s6, -7 +/* 0D7FB4 7F0A3484 2AE10007 */ slti $at, $s7, 7 +/* 0D7FB8 7F0A3488 241500B0 */ li $s5, 176 +/* 0D7FBC 7F0A348C 14200129 */ bnez $at, .L7F0A3934 +/* 0D7FC0 7F0A3490 24110007 */ li $s1, 7 +/* 0D7FC4 7F0A3494 44962000 */ mtc1 $s6, $f4 +/* 0D7FC8 7F0A3498 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0D7FCC 7F0A349C 4481E000 */ mtc1 $at, $f28 +/* 0D7FD0 7F0A34A0 46802020 */ cvt.s.w $f0, $f4 +/* 0D7FD4 7F0A34A4 3C014230 */ li $at, 0x42300000 # 44.000000 +/* 0D7FD8 7F0A34A8 4481D000 */ mtc1 $at, $f26 +/* 0D7FDC 7F0A34AC 3C014402 */ li $at, 0x44020000 # 520.000000 +/* 0D7FE0 7F0A34B0 4481C000 */ mtc1 $at, $f24 +/* 0D7FE4 7F0A34B4 4480B000 */ mtc1 $zero, $f22 +/* 0D7FE8 7F0A34B8 E7A0006C */ swc1 $f0, 0x6c($sp) +/* 0D7FEC 7F0A34BC 241300FF */ li $s3, 255 +/* 0D7FF0 7F0A34C0 44913000 */ mtc1 $s1, $f6 +.L7F0A34C4: +/* 0D7FF4 7F0A34C4 3C018005 */ lui $at, %hi(D_8005774C) +/* 0D7FF8 7F0A34C8 C42A774C */ lwc1 $f10, %lo(D_8005774C)($at) +/* 0D7FFC 7F0A34CC 46803220 */ cvt.s.w $f8, $f6 +/* 0D8000 7F0A34D0 C7A0006C */ lwc1 $f0, 0x6c($sp) +/* 0D8004 7F0A34D4 460A4402 */ mul.s $f16, $f8, $f10 +/* 0D8008 7F0A34D8 46008503 */ div.s $f20, $f16, $f0 +/* 0D800C 7F0A34DC 0FC15FAB */ jal sinf +/* 0D8010 7F0A34E0 4600A306 */ mov.s $f12, $f20 +/* 0D8014 7F0A34E4 46180482 */ mul.s $f18, $f0, $f24 +/* 0D8018 7F0A34E8 4600A306 */ mov.s $f12, $f20 +/* 0D801C 7F0A34EC 461E9102 */ mul.s $f4, $f18, $f30 +/* 0D8020 7F0A34F0 4600218D */ trunc.w.s $f6, $f4 +/* 0D8024 7F0A34F4 44123000 */ mfc1 $s2, $f6 +/* 0D8028 7F0A34F8 00000000 */ nop +/* 0D802C 7F0A34FC 0012CC00 */ sll $t9, $s2, 0x10 +/* 0D8030 7F0A3500 0FC15FA8 */ jal cosf +/* 0D8034 7F0A3504 00199403 */ sra $s2, $t9, 0x10 +/* 0D8038 7F0A3508 46180202 */ mul.s $f8, $f0, $f24 +/* 0D803C 7F0A350C 264B0001 */ addiu $t3, $s2, 1 +/* 0D8040 7F0A3510 A60B0000 */ sh $t3, ($s0) +/* 0D8044 7F0A3514 A6000002 */ sh $zero, 2($s0) +/* 0D8048 7F0A3518 A6000006 */ sh $zero, 6($s0) +/* 0D804C 7F0A351C A6000008 */ sh $zero, 8($s0) +/* 0D8050 7F0A3520 A600000A */ sh $zero, 0xa($s0) +/* 0D8054 7F0A3524 461E4282 */ mul.s $f10, $f8, $f30 +/* 0D8058 7F0A3528 4600A306 */ mov.s $f12, $f20 +/* 0D805C 7F0A352C 4600540D */ trunc.w.s $f16, $f10 +/* 0D8060 7F0A3530 440D8000 */ mfc1 $t5, $f16 +/* 0D8064 7F0A3534 00000000 */ nop +/* 0D8068 7F0A3538 000DA400 */ sll $s4, $t5, 0x10 +/* 0D806C 7F0A353C 00145403 */ sra $t2, $s4, 0x10 +/* 0D8070 7F0A3540 000D7023 */ negu $t6, $t5 +/* 0D8074 7F0A3544 0140A025 */ move $s4, $t2 +/* 0D8078 7F0A3548 0FC15FA8 */ jal cosf +/* 0D807C 7F0A354C A60E0004 */ sh $t6, 4($s0) +/* 0D8080 7F0A3550 46160482 */ mul.s $f18, $f0, $f22 +/* 0D8084 7F0A3554 24180001 */ li $t8, 1 +/* 0D8088 7F0A3558 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0D808C 7F0A355C 4612B101 */ sub.s $f4, $f22, $f18 +/* 0D8090 7F0A3560 444FF800 */ cfc1 $t7, $31 +/* 0D8094 7F0A3564 44D8F800 */ ctc1 $t8, $31 +/* 0D8098 7F0A3568 00000000 */ nop +/* 0D809C 7F0A356C 460021A4 */ cvt.w.s $f6, $f4 +/* 0D80A0 7F0A3570 4458F800 */ cfc1 $t8, $31 +/* 0D80A4 7F0A3574 00000000 */ nop +/* 0D80A8 7F0A3578 33180078 */ andi $t8, $t8, 0x78 +/* 0D80AC 7F0A357C 53000013 */ beql $t8, $zero, .L7F0A35CC +/* 0D80B0 7F0A3580 44183000 */ mfc1 $t8, $f6 +/* 0D80B4 7F0A3584 44813000 */ mtc1 $at, $f6 +/* 0D80B8 7F0A3588 24180001 */ li $t8, 1 +/* 0D80BC 7F0A358C 46062181 */ sub.s $f6, $f4, $f6 +/* 0D80C0 7F0A3590 44D8F800 */ ctc1 $t8, $31 +/* 0D80C4 7F0A3594 00000000 */ nop +/* 0D80C8 7F0A3598 460031A4 */ cvt.w.s $f6, $f6 +/* 0D80CC 7F0A359C 4458F800 */ cfc1 $t8, $31 +/* 0D80D0 7F0A35A0 00000000 */ nop +/* 0D80D4 7F0A35A4 33180078 */ andi $t8, $t8, 0x78 +/* 0D80D8 7F0A35A8 17000005 */ bnez $t8, .L7F0A35C0 +/* 0D80DC 7F0A35AC 00000000 */ nop +/* 0D80E0 7F0A35B0 44183000 */ mfc1 $t8, $f6 +/* 0D80E4 7F0A35B4 3C018000 */ lui $at, 0x8000 +/* 0D80E8 7F0A35B8 10000007 */ b .L7F0A35D8 +/* 0D80EC 7F0A35BC 0301C025 */ or $t8, $t8, $at +.L7F0A35C0: +/* 0D80F0 7F0A35C0 10000005 */ b .L7F0A35D8 +/* 0D80F4 7F0A35C4 2418FFFF */ li $t8, -1 +/* 0D80F8 7F0A35C8 44183000 */ mfc1 $t8, $f6 +.L7F0A35CC: +/* 0D80FC 7F0A35CC 00000000 */ nop +/* 0D8100 7F0A35D0 0700FFFB */ bltz $t8, .L7F0A35C0 +/* 0D8104 7F0A35D4 00000000 */ nop +.L7F0A35D8: +/* 0D8108 7F0A35D8 44CFF800 */ ctc1 $t7, $31 +/* 0D810C 7F0A35DC A218000C */ sb $t8, 0xc($s0) +/* 0D8110 7F0A35E0 0FC15FA8 */ jal cosf +/* 0D8114 7F0A35E4 4600A306 */ mov.s $f12, $f20 +/* 0D8118 7F0A35E8 461C0202 */ mul.s $f8, $f0, $f28 +/* 0D811C 7F0A35EC 24080001 */ li $t0, 1 +/* 0D8120 7F0A35F0 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0D8124 7F0A35F4 4608D281 */ sub.s $f10, $f26, $f8 +/* 0D8128 7F0A35F8 4459F800 */ cfc1 $t9, $31 +/* 0D812C 7F0A35FC 44C8F800 */ ctc1 $t0, $31 +/* 0D8130 7F0A3600 00000000 */ nop +/* 0D8134 7F0A3604 46005424 */ cvt.w.s $f16, $f10 +/* 0D8138 7F0A3608 4448F800 */ cfc1 $t0, $31 +/* 0D813C 7F0A360C 00000000 */ nop +/* 0D8140 7F0A3610 31080078 */ andi $t0, $t0, 0x78 +/* 0D8144 7F0A3614 51000013 */ beql $t0, $zero, .L7F0A3664 +/* 0D8148 7F0A3618 44088000 */ mfc1 $t0, $f16 +/* 0D814C 7F0A361C 44818000 */ mtc1 $at, $f16 +/* 0D8150 7F0A3620 24080001 */ li $t0, 1 +/* 0D8154 7F0A3624 46105401 */ sub.s $f16, $f10, $f16 +/* 0D8158 7F0A3628 44C8F800 */ ctc1 $t0, $31 +/* 0D815C 7F0A362C 00000000 */ nop +/* 0D8160 7F0A3630 46008424 */ cvt.w.s $f16, $f16 +/* 0D8164 7F0A3634 4448F800 */ cfc1 $t0, $31 +/* 0D8168 7F0A3638 00000000 */ nop +/* 0D816C 7F0A363C 31080078 */ andi $t0, $t0, 0x78 +/* 0D8170 7F0A3640 15000005 */ bnez $t0, .L7F0A3658 +/* 0D8174 7F0A3644 00000000 */ nop +/* 0D8178 7F0A3648 44088000 */ mfc1 $t0, $f16 +/* 0D817C 7F0A364C 3C018000 */ lui $at, 0x8000 +/* 0D8180 7F0A3650 10000007 */ b .L7F0A3670 +/* 0D8184 7F0A3654 01014025 */ or $t0, $t0, $at +.L7F0A3658: +/* 0D8188 7F0A3658 10000005 */ b .L7F0A3670 +/* 0D818C 7F0A365C 2408FFFF */ li $t0, -1 +/* 0D8190 7F0A3660 44088000 */ mfc1 $t0, $f16 +.L7F0A3664: +/* 0D8194 7F0A3664 00000000 */ nop +/* 0D8198 7F0A3668 0500FFFB */ bltz $t0, .L7F0A3658 +/* 0D819C 7F0A366C 00000000 */ nop +.L7F0A3670: +/* 0D81A0 7F0A3670 44D9F800 */ ctc1 $t9, $31 +/* 0D81A4 7F0A3674 A208000D */ sb $t0, 0xd($s0) +/* 0D81A8 7F0A3678 0FC15FA8 */ jal cosf +/* 0D81AC 7F0A367C 4600A306 */ mov.s $f12, $f20 +/* 0D81B0 7F0A3680 46160482 */ mul.s $f18, $f0, $f22 +/* 0D81B4 7F0A3684 240A0001 */ li $t2, 1 +/* 0D81B8 7F0A3688 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0D81BC 7F0A368C 4612B101 */ sub.s $f4, $f22, $f18 +/* 0D81C0 7F0A3690 4449F800 */ cfc1 $t1, $31 +/* 0D81C4 7F0A3694 44CAF800 */ ctc1 $t2, $31 +/* 0D81C8 7F0A3698 00000000 */ nop +/* 0D81CC 7F0A369C 460021A4 */ cvt.w.s $f6, $f4 +/* 0D81D0 7F0A36A0 444AF800 */ cfc1 $t2, $31 +/* 0D81D4 7F0A36A4 00000000 */ nop +/* 0D81D8 7F0A36A8 314A0078 */ andi $t2, $t2, 0x78 +/* 0D81DC 7F0A36AC 51400013 */ beql $t2, $zero, .L7F0A36FC +/* 0D81E0 7F0A36B0 440A3000 */ mfc1 $t2, $f6 +/* 0D81E4 7F0A36B4 44813000 */ mtc1 $at, $f6 +/* 0D81E8 7F0A36B8 240A0001 */ li $t2, 1 +/* 0D81EC 7F0A36BC 46062181 */ sub.s $f6, $f4, $f6 +/* 0D81F0 7F0A36C0 44CAF800 */ ctc1 $t2, $31 +/* 0D81F4 7F0A36C4 00000000 */ nop +/* 0D81F8 7F0A36C8 460031A4 */ cvt.w.s $f6, $f6 +/* 0D81FC 7F0A36CC 444AF800 */ cfc1 $t2, $31 +/* 0D8200 7F0A36D0 00000000 */ nop +/* 0D8204 7F0A36D4 314A0078 */ andi $t2, $t2, 0x78 +/* 0D8208 7F0A36D8 15400005 */ bnez $t2, .L7F0A36F0 +/* 0D820C 7F0A36DC 00000000 */ nop +/* 0D8210 7F0A36E0 440A3000 */ mfc1 $t2, $f6 +/* 0D8214 7F0A36E4 3C018000 */ lui $at, 0x8000 +/* 0D8218 7F0A36E8 10000007 */ b .L7F0A3708 +/* 0D821C 7F0A36EC 01415025 */ or $t2, $t2, $at +.L7F0A36F0: +/* 0D8220 7F0A36F0 10000005 */ b .L7F0A3708 +/* 0D8224 7F0A36F4 240AFFFF */ li $t2, -1 +/* 0D8228 7F0A36F8 440A3000 */ mfc1 $t2, $f6 +.L7F0A36FC: +/* 0D822C 7F0A36FC 00000000 */ nop +/* 0D8230 7F0A3700 0540FFFB */ bltz $t2, .L7F0A36F0 +/* 0D8234 7F0A3704 00000000 */ nop +.L7F0A3708: +/* 0D8238 7F0A3708 44C9F800 */ ctc1 $t1, $31 +/* 0D823C 7F0A370C A20A000E */ sb $t2, 0xe($s0) +/* 0D8240 7F0A3710 A215000F */ sb $s5, 0xf($s0) +/* 0D8244 7F0A3714 12200083 */ beqz $s1, .L7F0A3924 +/* 0D8248 7F0A3718 26100010 */ addiu $s0, $s0, 0x10 +/* 0D824C 7F0A371C 0236082A */ slt $at, $s1, $s6 +/* 0D8250 7F0A3720 10200080 */ beqz $at, .L7F0A3924 +/* 0D8254 7F0A3724 240B0001 */ li $t3, 1 +/* 0D8258 7F0A3728 01726023 */ subu $t4, $t3, $s2 +/* 0D825C 7F0A372C 00146823 */ negu $t5, $s4 +/* 0D8260 7F0A3730 A60C0000 */ sh $t4, ($s0) +/* 0D8264 7F0A3734 A6000002 */ sh $zero, 2($s0) +/* 0D8268 7F0A3738 A60D0004 */ sh $t5, 4($s0) +/* 0D826C 7F0A373C A6000006 */ sh $zero, 6($s0) +/* 0D8270 7F0A3740 A6000008 */ sh $zero, 8($s0) +/* 0D8274 7F0A3744 A600000A */ sh $zero, 0xa($s0) +/* 0D8278 7F0A3748 A213000C */ sb $s3, 0xc($s0) +/* 0D827C 7F0A374C A213000D */ sb $s3, 0xd($s0) +/* 0D8280 7F0A3750 A213000E */ sb $s3, 0xe($s0) +/* 0D8284 7F0A3754 0FC15FA8 */ jal cosf +/* 0D8288 7F0A3758 4600A306 */ mov.s $f12, $f20 +/* 0D828C 7F0A375C 46160202 */ mul.s $f8, $f0, $f22 +/* 0D8290 7F0A3760 240F0001 */ li $t7, 1 +/* 0D8294 7F0A3764 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0D8298 7F0A3768 4608B281 */ sub.s $f10, $f22, $f8 +/* 0D829C 7F0A376C 444EF800 */ cfc1 $t6, $31 +/* 0D82A0 7F0A3770 44CFF800 */ ctc1 $t7, $31 +/* 0D82A4 7F0A3774 00000000 */ nop +/* 0D82A8 7F0A3778 46005424 */ cvt.w.s $f16, $f10 +/* 0D82AC 7F0A377C 444FF800 */ cfc1 $t7, $31 +/* 0D82B0 7F0A3780 00000000 */ nop +/* 0D82B4 7F0A3784 31EF0078 */ andi $t7, $t7, 0x78 +/* 0D82B8 7F0A3788 51E00013 */ beql $t7, $zero, .L7F0A37D8 +/* 0D82BC 7F0A378C 440F8000 */ mfc1 $t7, $f16 +/* 0D82C0 7F0A3790 44818000 */ mtc1 $at, $f16 +/* 0D82C4 7F0A3794 240F0001 */ li $t7, 1 +/* 0D82C8 7F0A3798 46105401 */ sub.s $f16, $f10, $f16 +/* 0D82CC 7F0A379C 44CFF800 */ ctc1 $t7, $31 +/* 0D82D0 7F0A37A0 00000000 */ nop +/* 0D82D4 7F0A37A4 46008424 */ cvt.w.s $f16, $f16 +/* 0D82D8 7F0A37A8 444FF800 */ cfc1 $t7, $31 +/* 0D82DC 7F0A37AC 00000000 */ nop +/* 0D82E0 7F0A37B0 31EF0078 */ andi $t7, $t7, 0x78 +/* 0D82E4 7F0A37B4 15E00005 */ bnez $t7, .L7F0A37CC +/* 0D82E8 7F0A37B8 00000000 */ nop +/* 0D82EC 7F0A37BC 440F8000 */ mfc1 $t7, $f16 +/* 0D82F0 7F0A37C0 3C018000 */ lui $at, 0x8000 +/* 0D82F4 7F0A37C4 10000007 */ b .L7F0A37E4 +/* 0D82F8 7F0A37C8 01E17825 */ or $t7, $t7, $at +.L7F0A37CC: +/* 0D82FC 7F0A37CC 10000005 */ b .L7F0A37E4 +/* 0D8300 7F0A37D0 240FFFFF */ li $t7, -1 +/* 0D8304 7F0A37D4 440F8000 */ mfc1 $t7, $f16 +.L7F0A37D8: +/* 0D8308 7F0A37D8 00000000 */ nop +/* 0D830C 7F0A37DC 05E0FFFB */ bltz $t7, .L7F0A37CC +/* 0D8310 7F0A37E0 00000000 */ nop +.L7F0A37E4: +/* 0D8314 7F0A37E4 44CEF800 */ ctc1 $t6, $31 +/* 0D8318 7F0A37E8 A20F000C */ sb $t7, 0xc($s0) +/* 0D831C 7F0A37EC 0FC15FA8 */ jal cosf +/* 0D8320 7F0A37F0 4600A306 */ mov.s $f12, $f20 +/* 0D8324 7F0A37F4 461C0482 */ mul.s $f18, $f0, $f28 +/* 0D8328 7F0A37F8 24190001 */ li $t9, 1 +/* 0D832C 7F0A37FC 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0D8330 7F0A3800 4612D101 */ sub.s $f4, $f26, $f18 +/* 0D8334 7F0A3804 4458F800 */ cfc1 $t8, $31 +/* 0D8338 7F0A3808 44D9F800 */ ctc1 $t9, $31 +/* 0D833C 7F0A380C 00000000 */ nop +/* 0D8340 7F0A3810 460021A4 */ cvt.w.s $f6, $f4 +/* 0D8344 7F0A3814 4459F800 */ cfc1 $t9, $31 +/* 0D8348 7F0A3818 00000000 */ nop +/* 0D834C 7F0A381C 33390078 */ andi $t9, $t9, 0x78 +/* 0D8350 7F0A3820 53200013 */ beql $t9, $zero, .L7F0A3870 +/* 0D8354 7F0A3824 44193000 */ mfc1 $t9, $f6 +/* 0D8358 7F0A3828 44813000 */ mtc1 $at, $f6 +/* 0D835C 7F0A382C 24190001 */ li $t9, 1 +/* 0D8360 7F0A3830 46062181 */ sub.s $f6, $f4, $f6 +/* 0D8364 7F0A3834 44D9F800 */ ctc1 $t9, $31 +/* 0D8368 7F0A3838 00000000 */ nop +/* 0D836C 7F0A383C 460031A4 */ cvt.w.s $f6, $f6 +/* 0D8370 7F0A3840 4459F800 */ cfc1 $t9, $31 +/* 0D8374 7F0A3844 00000000 */ nop +/* 0D8378 7F0A3848 33390078 */ andi $t9, $t9, 0x78 +/* 0D837C 7F0A384C 17200005 */ bnez $t9, .L7F0A3864 +/* 0D8380 7F0A3850 00000000 */ nop +/* 0D8384 7F0A3854 44193000 */ mfc1 $t9, $f6 +/* 0D8388 7F0A3858 3C018000 */ lui $at, 0x8000 +/* 0D838C 7F0A385C 10000007 */ b .L7F0A387C +/* 0D8390 7F0A3860 0321C825 */ or $t9, $t9, $at +.L7F0A3864: +/* 0D8394 7F0A3864 10000005 */ b .L7F0A387C +/* 0D8398 7F0A3868 2419FFFF */ li $t9, -1 +/* 0D839C 7F0A386C 44193000 */ mfc1 $t9, $f6 +.L7F0A3870: +/* 0D83A0 7F0A3870 00000000 */ nop +/* 0D83A4 7F0A3874 0720FFFB */ bltz $t9, .L7F0A3864 +/* 0D83A8 7F0A3878 00000000 */ nop +.L7F0A387C: +/* 0D83AC 7F0A387C 44D8F800 */ ctc1 $t8, $31 +/* 0D83B0 7F0A3880 A219000D */ sb $t9, 0xd($s0) +/* 0D83B4 7F0A3884 0FC15FA8 */ jal cosf +/* 0D83B8 7F0A3888 4600A306 */ mov.s $f12, $f20 +/* 0D83BC 7F0A388C 46160202 */ mul.s $f8, $f0, $f22 +/* 0D83C0 7F0A3890 24090001 */ li $t1, 1 +/* 0D83C4 7F0A3894 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0D83C8 7F0A3898 4608B281 */ sub.s $f10, $f22, $f8 +/* 0D83CC 7F0A389C 4448F800 */ cfc1 $t0, $31 +/* 0D83D0 7F0A38A0 44C9F800 */ ctc1 $t1, $31 +/* 0D83D4 7F0A38A4 00000000 */ nop +/* 0D83D8 7F0A38A8 46005424 */ cvt.w.s $f16, $f10 +/* 0D83DC 7F0A38AC 4449F800 */ cfc1 $t1, $31 +/* 0D83E0 7F0A38B0 00000000 */ nop +/* 0D83E4 7F0A38B4 31290078 */ andi $t1, $t1, 0x78 +/* 0D83E8 7F0A38B8 51200013 */ beql $t1, $zero, .L7F0A3908 +/* 0D83EC 7F0A38BC 44098000 */ mfc1 $t1, $f16 +/* 0D83F0 7F0A38C0 44818000 */ mtc1 $at, $f16 +/* 0D83F4 7F0A38C4 24090001 */ li $t1, 1 +/* 0D83F8 7F0A38C8 46105401 */ sub.s $f16, $f10, $f16 +/* 0D83FC 7F0A38CC 44C9F800 */ ctc1 $t1, $31 +/* 0D8400 7F0A38D0 00000000 */ nop +/* 0D8404 7F0A38D4 46008424 */ cvt.w.s $f16, $f16 +/* 0D8408 7F0A38D8 4449F800 */ cfc1 $t1, $31 +/* 0D840C 7F0A38DC 00000000 */ nop +/* 0D8410 7F0A38E0 31290078 */ andi $t1, $t1, 0x78 +/* 0D8414 7F0A38E4 15200005 */ bnez $t1, .L7F0A38FC +/* 0D8418 7F0A38E8 00000000 */ nop +/* 0D841C 7F0A38EC 44098000 */ mfc1 $t1, $f16 +/* 0D8420 7F0A38F0 3C018000 */ lui $at, 0x8000 +/* 0D8424 7F0A38F4 10000007 */ b .L7F0A3914 +/* 0D8428 7F0A38F8 01214825 */ or $t1, $t1, $at +.L7F0A38FC: +/* 0D842C 7F0A38FC 10000005 */ b .L7F0A3914 +/* 0D8430 7F0A3900 2409FFFF */ li $t1, -1 +/* 0D8434 7F0A3904 44098000 */ mfc1 $t1, $f16 +.L7F0A3908: +/* 0D8438 7F0A3908 00000000 */ nop +/* 0D843C 7F0A390C 0520FFFB */ bltz $t1, .L7F0A38FC +/* 0D8440 7F0A3910 00000000 */ nop +.L7F0A3914: +/* 0D8444 7F0A3914 44C8F800 */ ctc1 $t0, $31 +/* 0D8448 7F0A3918 A209000E */ sb $t1, 0xe($s0) +/* 0D844C 7F0A391C A215000F */ sb $s5, 0xf($s0) +/* 0D8450 7F0A3920 26100010 */ addiu $s0, $s0, 0x10 +.L7F0A3924: +/* 0D8454 7F0A3924 26310002 */ addiu $s1, $s1, 2 +/* 0D8458 7F0A3928 02F1082A */ slt $at, $s7, $s1 +/* 0D845C 7F0A392C 5020FEE5 */ beql $at, $zero, .L7F0A34C4 +/* 0D8460 7F0A3930 44913000 */ mtc1 $s1, $f6 +.L7F0A3934: +/* 0D8464 7F0A3934 8FBF0064 */ lw $ra, 0x64($sp) +/* 0D8468 7F0A3938 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0D846C 7F0A393C D7B60018 */ ldc1 $f22, 0x18($sp) +/* 0D8470 7F0A3940 D7B80020 */ ldc1 $f24, 0x20($sp) +/* 0D8474 7F0A3944 D7BA0028 */ ldc1 $f26, 0x28($sp) +/* 0D8478 7F0A3948 D7BC0030 */ ldc1 $f28, 0x30($sp) +/* 0D847C 7F0A394C D7BE0038 */ ldc1 $f30, 0x38($sp) +/* 0D8480 7F0A3950 8FB00044 */ lw $s0, 0x44($sp) +/* 0D8484 7F0A3954 8FB10048 */ lw $s1, 0x48($sp) +/* 0D8488 7F0A3958 8FB2004C */ lw $s2, 0x4c($sp) +/* 0D848C 7F0A395C 8FB30050 */ lw $s3, 0x50($sp) +/* 0D8490 7F0A3960 8FB40054 */ lw $s4, 0x54($sp) +/* 0D8494 7F0A3964 8FB50058 */ lw $s5, 0x58($sp) +/* 0D8498 7F0A3968 8FB6005C */ lw $s6, 0x5c($sp) +/* 0D849C 7F0A396C 8FB70060 */ lw $s7, 0x60($sp) +/* 0D84A0 7F0A3970 03E00008 */ jr $ra +/* 0D84A4 7F0A3974 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3978(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3978 +/* 0D84A8 7F0A3978 10E00036 */ beqz $a3, .L7F0A3A54 +/* 0D84AC 7F0A397C AFA60008 */ sw $a2, 8($sp) +/* 0D84B0 7F0A3980 00A01025 */ move $v0, $a1 +/* 0D84B4 7F0A3984 00803025 */ move $a2, $a0 +/* 0D84B8 7F0A3988 3C090430 */ lui $t1, (0x04300040 >> 16) # lui $t1, 0x430 +/* 0D84BC 7F0A398C 24A50010 */ addiu $a1, $a1, 0x10 +/* 0D84C0 7F0A3990 24840008 */ addiu $a0, $a0, 8 +/* 0D84C4 7F0A3994 35290040 */ ori $t1, (0x04300040 & 0xFFFF) # ori $t1, $t1, 0x40 +/* 0D84C8 7F0A3998 24AE00E0 */ addiu $t6, $a1, 0xe0 +/* 0D84CC 7F0A399C 00803825 */ move $a3, $a0 +/* 0D84D0 7F0A39A0 3C0A0404 */ lui $t2, (0x04040010 >> 16) # lui $t2, 0x404 +/* 0D84D4 7F0A39A4 ACCE0004 */ sw $t6, 4($a2) +/* 0D84D8 7F0A39A8 ACC90000 */ sw $t1, ($a2) +/* 0D84DC 7F0A39AC 24840008 */ addiu $a0, $a0, 8 +/* 0D84E0 7F0A39B0 354A0010 */ ori $t2, (0x04040010 & 0xFFFF) # ori $t2, $t2, 0x10 +/* 0D84E4 7F0A39B4 00804025 */ move $t0, $a0 +/* 0D84E8 7F0A39B8 ACEA0000 */ sw $t2, ($a3) +/* 0D84EC 7F0A39BC ACE20004 */ sw $v0, 4($a3) +/* 0D84F0 7F0A39C0 3C0FB100 */ lui $t7, (0xB1000003 >> 16) # lui $t7, 0xb100 +/* 0D84F4 7F0A39C4 35EF0003 */ ori $t7, (0xB1000003 & 0xFFFF) # ori $t7, $t7, 3 +/* 0D84F8 7F0A39C8 24180042 */ li $t8, 66 +/* 0D84FC 7F0A39CC 3C0BB100 */ lui $t3, (0xB1000042 >> 16) # lui $t3, 0xb100 +/* 0D8500 7F0A39D0 24030007 */ li $v1, 7 +/* 0D8504 7F0A39D4 AD180004 */ sw $t8, 4($t0) +/* 0D8508 7F0A39D8 AD0F0000 */ sw $t7, ($t0) +/* 0D850C 7F0A39DC 24840008 */ addiu $a0, $a0, 8 +/* 0D8510 7F0A39E0 356B0042 */ ori $t3, (0xB1000042 & 0xFFFF) # ori $t3, $t3, 0x42 +/* 0D8514 7F0A39E4 240C3140 */ li $t4, 12608 +.L7F0A39E8: +/* 0D8518 7F0A39E8 00803025 */ move $a2, $a0 +/* 0D851C 7F0A39EC 0060C825 */ move $t9, $v1 +/* 0D8520 7F0A39F0 00196940 */ sll $t5, $t9, 5 +/* 0D8524 7F0A39F4 24840008 */ addiu $a0, $a0, 8 +/* 0D8528 7F0A39F8 01A57021 */ addu $t6, $t5, $a1 +/* 0D852C 7F0A39FC 00803825 */ move $a3, $a0 +/* 0D8530 7F0A3A00 2463FFFF */ addiu $v1, $v1, -1 +/* 0D8534 7F0A3A04 ACCE0004 */ sw $t6, 4($a2) +/* 0D8538 7F0A3A08 ACC90000 */ sw $t1, ($a2) +/* 0D853C 7F0A3A0C 24840008 */ addiu $a0, $a0, 8 +/* 0D8540 7F0A3A10 00037E00 */ sll $t7, $v1, 0x18 +/* 0D8544 7F0A3A14 00804025 */ move $t0, $a0 +/* 0D8548 7F0A3A18 000F1E03 */ sra $v1, $t7, 0x18 +/* 0D854C 7F0A3A1C ACE20004 */ sw $v0, 4($a3) +/* 0D8550 7F0A3A20 ACEA0000 */ sw $t2, ($a3) +/* 0D8554 7F0A3A24 AD0C0004 */ sw $t4, 4($t0) +/* 0D8558 7F0A3A28 AD0B0000 */ sw $t3, ($t0) +/* 0D855C 7F0A3A2C 0461FFEE */ bgez $v1, .L7F0A39E8 +/* 0D8560 7F0A3A30 24840008 */ addiu $a0, $a0, 8 +/* 0D8564 7F0A3A34 00801025 */ move $v0, $a0 +/* 0D8568 7F0A3A38 3C19B100 */ lui $t9, (0xB1000004 >> 16) # lui $t9, 0xb100 +/* 0D856C 7F0A3A3C 37390004 */ ori $t9, (0xB1000004 & 0xFFFF) # ori $t9, $t9, 4 +/* 0D8570 7F0A3A40 240D0010 */ li $t5, 16 +/* 0D8574 7F0A3A44 AC4D0004 */ sw $t5, 4($v0) +/* 0D8578 7F0A3A48 AC590000 */ sw $t9, ($v0) +/* 0D857C 7F0A3A4C 10000015 */ b .L7F0A3AA4 +/* 0D8580 7F0A3A50 24840008 */ addiu $a0, $a0, 8 +.L7F0A3A54: +/* 0D8584 7F0A3A54 3C090430 */ lui $t1, (0x04300040 >> 16) # lui $t1, 0x430 +/* 0D8588 7F0A3A58 3C07B100 */ lui $a3, (0xB1000032 >> 16) # lui $a3, 0xb100 +/* 0D858C 7F0A3A5C 34E70032 */ ori $a3, (0xB1000032 & 0xFFFF) # ori $a3, $a3, 0x32 +/* 0D8590 7F0A3A60 35290040 */ ori $t1, (0x04300040 & 0xFFFF) # ori $t1, $t1, 0x40 +/* 0D8594 7F0A3A64 00001825 */ move $v1, $zero +/* 0D8598 7F0A3A68 24082110 */ li $t0, 8464 +.L7F0A3A6C: +/* 0D859C 7F0A3A6C 24630001 */ addiu $v1, $v1, 1 +/* 0D85A0 7F0A3A70 00801025 */ move $v0, $a0 +/* 0D85A4 7F0A3A74 00037600 */ sll $t6, $v1, 0x18 +/* 0D85A8 7F0A3A78 24840008 */ addiu $a0, $a0, 8 +/* 0D85AC 7F0A3A7C 000E1E03 */ sra $v1, $t6, 0x18 +/* 0D85B0 7F0A3A80 AC450004 */ sw $a1, 4($v0) +/* 0D85B4 7F0A3A84 00803025 */ move $a2, $a0 +/* 0D85B8 7F0A3A88 28610008 */ slti $at, $v1, 8 +/* 0D85BC 7F0A3A8C AC490000 */ sw $t1, ($v0) +/* 0D85C0 7F0A3A90 ACC80004 */ sw $t0, 4($a2) +/* 0D85C4 7F0A3A94 ACC70000 */ sw $a3, ($a2) +/* 0D85C8 7F0A3A98 24840008 */ addiu $a0, $a0, 8 +/* 0D85CC 7F0A3A9C 1420FFF3 */ bnez $at, .L7F0A3A6C +/* 0D85D0 7F0A3AA0 24A50020 */ addiu $a1, $a1, 0x20 +.L7F0A3AA4: +/* 0D85D4 7F0A3AA4 3C18B800 */ lui $t8, 0xb800 +/* 0D85D8 7F0A3AA8 AC980000 */ sw $t8, ($a0) +/* 0D85DC 7F0A3AAC 24820008 */ addiu $v0, $a0, 8 +/* 0D85E0 7F0A3AB0 03E00008 */ jr $ra +/* 0D85E4 7F0A3AB4 AC800004 */ sw $zero, 4($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3AB8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3AB8 +/* 0D85E8 7F0A3AB8 27BDFFF8 */ addiu $sp, $sp, -8 +/* 0D85EC 7F0A3ABC 8FAE001C */ lw $t6, 0x1c($sp) +/* 0D85F0 7F0A3AC0 AFB00004 */ sw $s0, 4($sp) +/* 0D85F4 7F0A3AC4 24100002 */ li $s0, 2 +/* 0D85F8 7F0A3AC8 00AE4021 */ addu $t0, $a1, $t6 +/* 0D85FC 7F0A3ACC 8FA50018 */ lw $a1, 0x18($sp) +/* 0D8600 7F0A3AD0 8FA90020 */ lw $t1, 0x20($sp) +/* 0D8604 7F0A3AD4 00001025 */ move $v0, $zero +/* 0D8608 7F0A3AD8 240D00F0 */ li $t5, 240 +/* 0D860C 7F0A3ADC 240C0070 */ li $t4, 112 +/* 0D8610 7F0A3AE0 240B0020 */ li $t3, 32 +.L7F0A3AE4: +/* 0D8614 7F0A3AE4 00001825 */ move $v1, $zero +/* 0D8618 7F0A3AE8 00C95021 */ addu $t2, $a2, $t1 +.L7F0A3AEC: +/* 0D861C 7F0A3AEC 24630001 */ addiu $v1, $v1, 1 +/* 0D8620 7F0A3AF0 A48A0004 */ sh $t2, 4($a0) +/* 0D8624 7F0A3AF4 01455021 */ addu $t2, $t2, $a1 +/* 0D8628 7F0A3AF8 A4880000 */ sh $t0, ($a0) +/* 0D862C 7F0A3AFC A4800002 */ sh $zero, 2($a0) +/* 0D8630 7F0A3B00 A4800006 */ sh $zero, 6($a0) +/* 0D8634 7F0A3B04 A4800008 */ sh $zero, 8($a0) +/* 0D8638 7F0A3B08 A480000A */ sh $zero, 0xa($a0) +/* 0D863C 7F0A3B0C A08B000C */ sb $t3, 0xc($a0) +/* 0D8640 7F0A3B10 A08C000D */ sb $t4, 0xd($a0) +/* 0D8644 7F0A3B14 A08B000E */ sb $t3, 0xe($a0) +/* 0D8648 7F0A3B18 A08D000F */ sb $t5, 0xf($a0) +/* 0D864C 7F0A3B1C 1470FFF3 */ bne $v1, $s0, .L7F0A3AEC +/* 0D8650 7F0A3B20 24840010 */ addiu $a0, $a0, 0x10 +/* 0D8654 7F0A3B24 24420001 */ addiu $v0, $v0, 1 +/* 0D8658 7F0A3B28 1450FFEE */ bne $v0, $s0, .L7F0A3AE4 +/* 0D865C 7F0A3B2C 01074021 */ addu $t0, $t0, $a3 +/* 0D8660 7F0A3B30 8FB00004 */ lw $s0, 4($sp) +/* 0D8664 7F0A3B34 27BD0008 */ addiu $sp, $sp, 8 +/* 0D8668 7F0A3B38 03E00008 */ jr $ra +/* 0D866C 7F0A3B3C 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3B40(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3B40 +/* 0D8670 7F0A3B40 3C0E0430 */ lui $t6, (0x04300040 >> 16) # lui $t6, 0x430 +/* 0D8674 7F0A3B44 35CE0040 */ ori $t6, (0x04300040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 0D8678 7F0A3B48 24860008 */ addiu $a2, $a0, 8 +/* 0D867C 7F0A3B4C 3C0FB100 */ lui $t7, (0xB1000032 >> 16) # lui $t7, 0xb100 +/* 0D8680 7F0A3B50 AC8E0000 */ sw $t6, ($a0) +/* 0D8684 7F0A3B54 AC850004 */ sw $a1, 4($a0) +/* 0D8688 7F0A3B58 35EF0032 */ ori $t7, (0xB1000032 & 0xFFFF) # ori $t7, $t7, 0x32 +/* 0D868C 7F0A3B5C 24182110 */ li $t8, 8464 +/* 0D8690 7F0A3B60 ACD80004 */ sw $t8, 4($a2) +/* 0D8694 7F0A3B64 ACCF0000 */ sw $t7, ($a2) +/* 0D8698 7F0A3B68 03E00008 */ jr $ra +/* 0D869C 7F0A3B6C 24C20008 */ addiu $v0, $a2, 8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3B70(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3B70 +/* 0D86A0 7F0A3B70 3C0F8004 */ lui $t7, %hi(D_80040960) +/* 0D86A4 7F0A3B74 25EF0960 */ addiu $t7, %lo(D_80040960) # addiu $t7, $t7, 0x960 +/* 0D86A8 7F0A3B78 00047080 */ sll $t6, $a0, 2 +/* 0D86AC 7F0A3B7C 01CF1021 */ addu $v0, $t6, $t7 +/* 0D86B0 7F0A3B80 90580000 */ lbu $t8, ($v0) +/* 0D86B4 7F0A3B84 A0B80000 */ sb $t8, ($a1) +/* 0D86B8 7F0A3B88 90590001 */ lbu $t9, 1($v0) +/* 0D86BC 7F0A3B8C A0B90001 */ sb $t9, 1($a1) +/* 0D86C0 7F0A3B90 90480002 */ lbu $t0, 2($v0) +/* 0D86C4 7F0A3B94 A0A80002 */ sb $t0, 2($a1) +/* 0D86C8 7F0A3B98 90490003 */ lbu $t1, 3($v0) +/* 0D86CC 7F0A3B9C 03E00008 */ jr $ra +/* 0D86D0 7F0A3BA0 A0A90003 */ sb $t1, 3($a1) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3BA4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3BA4 +/* 0D86D4 7F0A3BA4 90B80000 */ lbu $t8, ($a1) +/* 0D86D8 7F0A3BA8 3C0F8004 */ lui $t7, %hi(D_80040960) +/* 0D86DC 7F0A3BAC 25EF0960 */ addiu $t7, %lo(D_80040960) # addiu $t7, $t7, 0x960 +/* 0D86E0 7F0A3BB0 00047080 */ sll $t6, $a0, 2 +/* 0D86E4 7F0A3BB4 01CF1021 */ addu $v0, $t6, $t7 +/* 0D86E8 7F0A3BB8 A0580000 */ sb $t8, ($v0) +/* 0D86EC 7F0A3BBC 90B90001 */ lbu $t9, 1($a1) +/* 0D86F0 7F0A3BC0 A0590001 */ sb $t9, 1($v0) +/* 0D86F4 7F0A3BC4 90A80002 */ lbu $t0, 2($a1) +/* 0D86F8 7F0A3BC8 A0480002 */ sb $t0, 2($v0) +/* 0D86FC 7F0A3BCC 90A90003 */ lbu $t1, 3($a1) +/* 0D8700 7F0A3BD0 03E00008 */ jr $ra +/* 0D8704 7F0A3BD4 A0490003 */ sb $t1, 3($v0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3BD8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3BD8 +/* 0D8708 7F0A3BD8 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007A170) +/* 0D870C 7F0A3BDC 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A4E0) +/* 0D8710 7F0A3BE0 2463A4E0 */ addiu $v1, %lo(dword_CODE_bss_8007A4E0) # addiu $v1, $v1, -0x5b20 +/* 0D8714 7F0A3BE4 2442A170 */ addiu $v0, %lo(dword_CODE_bss_8007A170) # addiu $v0, $v0, -0x5e90 +.L7F0A3BE8: +/* 0D8718 7F0A3BE8 2442002C */ addiu $v0, $v0, 0x2c +/* 0D871C 7F0A3BEC 0043082B */ sltu $at, $v0, $v1 +/* 0D8720 7F0A3BF0 AC40FFE0 */ sw $zero, -0x20($v0) +/* 0D8724 7F0A3BF4 A440FFD8 */ sh $zero, -0x28($v0) +/* 0D8728 7F0A3BF8 1420FFFB */ bnez $at, .L7F0A3BE8 +/* 0D872C 7F0A3BFC AC40FFD4 */ sw $zero, -0x2c($v0) +/* 0D8730 7F0A3C00 03E00008 */ jr $ra +/* 0D8734 7F0A3C04 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3C08(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80057750 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80057754 +.word 0x3fb501e2 /*1.41412*/ +.text +glabel sub_GAME_7F0A3C08 +/* 0D8738 7F0A3C08 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0D873C 7F0A3C0C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D8740 7F0A3C10 4487A000 */ mtc1 $a3, $f20 +/* 0D8744 7F0A3C14 AFBF0024 */ sw $ra, 0x24($sp) +/* 0D8748 7F0A3C18 AFB00020 */ sw $s0, 0x20($sp) +/* 0D874C 7F0A3C1C 00808025 */ move $s0, $a0 +/* 0D8750 7F0A3C20 AFA50034 */ sw $a1, 0x34($sp) +/* 0D8754 7F0A3C24 0C002914 */ jal get_random_value +/* 0D8758 7F0A3C28 AFA60038 */ sw $a2, 0x38($sp) +/* 0D875C 7F0A3C2C 44822000 */ mtc1 $v0, $f4 +/* 0D8760 7F0A3C30 8FA50034 */ lw $a1, 0x34($sp) +/* 0D8764 7F0A3C34 8FA60038 */ lw $a2, 0x38($sp) +/* 0D8768 7F0A3C38 04410005 */ bgez $v0, .L7F0A3C50 +/* 0D876C 7F0A3C3C 468021A0 */ cvt.s.w $f6, $f4 +/* 0D8770 7F0A3C40 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D8774 7F0A3C44 44814000 */ mtc1 $at, $f8 +/* 0D8778 7F0A3C48 00000000 */ nop +/* 0D877C 7F0A3C4C 46083180 */ add.s $f6, $f6, $f8 +.L7F0A3C50: +/* 0D8780 7F0A3C50 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D8784 7F0A3C54 44815000 */ mtc1 $at, $f10 +/* 0D8788 7F0A3C58 3C018005 */ lui $at, %hi(D_80057750) +/* 0D878C 7F0A3C5C C4327750 */ lwc1 $f18, %lo(D_80057750)($at) +/* 0D8790 7F0A3C60 460A3402 */ mul.s $f16, $f6, $f10 +/* 0D8794 7F0A3C64 24010004 */ li $at, 4 +/* 0D8798 7F0A3C68 240F0001 */ li $t7, 1 +/* 0D879C 7F0A3C6C 46128102 */ mul.s $f4, $f16, $f18 +/* 0D87A0 7F0A3C70 E7A4002C */ swc1 $f4, 0x2c($sp) +/* 0D87A4 7F0A3C74 AE000000 */ sw $zero, ($s0) +/* 0D87A8 7F0A3C78 87AE0042 */ lh $t6, 0x42($sp) +/* 0D87AC 7F0A3C7C 14C10009 */ bne $a2, $at, .L7F0A3CA4 +/* 0D87B0 7F0A3C80 A60E0006 */ sh $t6, 6($s0) +/* 0D87B4 7F0A3C84 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D87B8 7F0A3C88 44814000 */ mtc1 $at, $f8 +/* 0D87BC 7F0A3C8C A60F0004 */ sh $t7, 4($s0) +/* 0D87C0 7F0A3C90 3C188009 */ lui $t8, %hi(flareimage2) +/* 0D87C4 7F0A3C94 E6080008 */ swc1 $f8, 8($s0) +/* 0D87C8 7F0A3C98 8F18D0CC */ lw $t8, %lo(flareimage2)($t8) +/* 0D87CC 7F0A3C9C 10000029 */ b .L7F0A3D44 +/* 0D87D0 7F0A3CA0 AE18000C */ sw $t8, 0xc($s0) +.L7F0A3CA4: +/* 0D87D4 7F0A3CA4 24010001 */ li $at, 1 +/* 0D87D8 7F0A3CA8 14C10009 */ bne $a2, $at, .L7F0A3CD0 +/* 0D87DC 7F0A3CAC 2419000B */ li $t9, 11 +/* 0D87E0 7F0A3CB0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D87E4 7F0A3CB4 44813000 */ mtc1 $at, $f6 +/* 0D87E8 7F0A3CB8 A6190004 */ sh $t9, 4($s0) +/* 0D87EC 7F0A3CBC 3C088009 */ lui $t0, %hi(explosion_smokeimages) +/* 0D87F0 7F0A3CC0 E6060008 */ swc1 $f6, 8($s0) +/* 0D87F4 7F0A3CC4 8D08D0C0 */ lw $t0, %lo(explosion_smokeimages)($t0) +/* 0D87F8 7F0A3CC8 1000001E */ b .L7F0A3D44 +/* 0D87FC 7F0A3CCC AE08000C */ sw $t0, 0xc($s0) +.L7F0A3CD0: +/* 0D8800 7F0A3CD0 24010003 */ li $at, 3 +/* 0D8804 7F0A3CD4 14C10009 */ bne $a2, $at, .L7F0A3CFC +/* 0D8808 7F0A3CD8 24090009 */ li $t1, 9 +/* 0D880C 7F0A3CDC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D8810 7F0A3CE0 44815000 */ mtc1 $at, $f10 +/* 0D8814 7F0A3CE4 A6090004 */ sh $t1, 4($s0) +/* 0D8818 7F0A3CE8 3C0A8009 */ lui $t2, %hi(scattered_explosions) +/* 0D881C 7F0A3CEC E60A0008 */ swc1 $f10, 8($s0) +/* 0D8820 7F0A3CF0 8D4AD0C4 */ lw $t2, %lo(scattered_explosions)($t2) +/* 0D8824 7F0A3CF4 10000013 */ b .L7F0A3D44 +/* 0D8828 7F0A3CF8 AE0A000C */ sw $t2, 0xc($s0) +.L7F0A3CFC: +/* 0D882C 7F0A3CFC 24010006 */ li $at, 6 +/* 0D8830 7F0A3D00 14C10009 */ bne $a2, $at, .L7F0A3D28 +/* 0D8834 7F0A3D04 240D000B */ li $t5, 11 +/* 0D8838 7F0A3D08 44808000 */ mtc1 $zero, $f16 +/* 0D883C 7F0A3D0C 240B0064 */ li $t3, 100 +/* 0D8840 7F0A3D10 A60B0004 */ sh $t3, 4($s0) +/* 0D8844 7F0A3D14 3C0C8009 */ lui $t4, %hi(flareimage2) +/* 0D8848 7F0A3D18 E6100008 */ swc1 $f16, 8($s0) +/* 0D884C 7F0A3D1C 8D8CD0CC */ lw $t4, %lo(flareimage2)($t4) +/* 0D8850 7F0A3D20 10000008 */ b .L7F0A3D44 +/* 0D8854 7F0A3D24 AE0C000C */ sw $t4, 0xc($s0) +.L7F0A3D28: +/* 0D8858 7F0A3D28 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D885C 7F0A3D2C 44819000 */ mtc1 $at, $f18 +/* 0D8860 7F0A3D30 A60D0004 */ sh $t5, 4($s0) +/* 0D8864 7F0A3D34 3C0E8009 */ lui $t6, %hi(explosion_smokeimages) +/* 0D8868 7F0A3D38 E6120008 */ swc1 $f18, 8($s0) +/* 0D886C 7F0A3D3C 8DCED0C0 */ lw $t6, %lo(explosion_smokeimages)($t6) +/* 0D8870 7F0A3D40 AE0E000C */ sw $t6, 0xc($s0) +.L7F0A3D44: +/* 0D8874 7F0A3D44 3C188004 */ lui $t8, %hi(D_80040960) +/* 0D8878 7F0A3D48 27180960 */ addiu $t8, %lo(D_80040960) # addiu $t8, $t8, 0x960 +/* 0D887C 7F0A3D4C 00067880 */ sll $t7, $a2, 2 +/* 0D8880 7F0A3D50 01F81021 */ addu $v0, $t7, $t8 +/* 0D8884 7F0A3D54 90590000 */ lbu $t9, ($v0) +/* 0D8888 7F0A3D58 A2190028 */ sb $t9, 0x28($s0) +/* 0D888C 7F0A3D5C 90480001 */ lbu $t0, 1($v0) +/* 0D8890 7F0A3D60 A2080029 */ sb $t0, 0x29($s0) +/* 0D8894 7F0A3D64 90490002 */ lbu $t1, 2($v0) +/* 0D8898 7F0A3D68 A209002A */ sb $t1, 0x2a($s0) +/* 0D889C 7F0A3D6C 904A0003 */ lbu $t2, 3($v0) +/* 0D88A0 7F0A3D70 A20A002B */ sb $t2, 0x2b($s0) +/* 0D88A4 7F0A3D74 C4A40000 */ lwc1 $f4, ($a1) +/* 0D88A8 7F0A3D78 E6040010 */ swc1 $f4, 0x10($s0) +/* 0D88AC 7F0A3D7C C4A80004 */ lwc1 $f8, 4($a1) +/* 0D88B0 7F0A3D80 E6080014 */ swc1 $f8, 0x14($s0) +/* 0D88B4 7F0A3D84 C4A60008 */ lwc1 $f6, 8($a1) +/* 0D88B8 7F0A3D88 0C002914 */ jal get_random_value +/* 0D88BC 7F0A3D8C E6060018 */ swc1 $f6, 0x18($s0) +/* 0D88C0 7F0A3D90 44825000 */ mtc1 $v0, $f10 +/* 0D88C4 7F0A3D94 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D88C8 7F0A3D98 04410004 */ bgez $v0, .L7F0A3DAC +/* 0D88CC 7F0A3D9C 46805420 */ cvt.s.w $f16, $f10 +/* 0D88D0 7F0A3DA0 44819000 */ mtc1 $at, $f18 +/* 0D88D4 7F0A3DA4 00000000 */ nop +/* 0D88D8 7F0A3DA8 46128400 */ add.s $f16, $f16, $f18 +.L7F0A3DAC: +/* 0D88DC 7F0A3DAC 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D88E0 7F0A3DB0 44812000 */ mtc1 $at, $f4 +/* 0D88E4 7F0A3DB4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0D88E8 7F0A3DB8 44813000 */ mtc1 $at, $f6 +/* 0D88EC 7F0A3DBC 46048202 */ mul.s $f8, $f16, $f4 +/* 0D88F0 7F0A3DC0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D88F4 7F0A3DC4 44819000 */ mtc1 $at, $f18 +/* 0D88F8 7F0A3DC8 3C018005 */ lui $at, %hi(D_80057754) +/* 0D88FC 7F0A3DCC C4247754 */ lwc1 $f4, %lo(D_80057754)($at) +/* 0D8900 7F0A3DD0 46064282 */ mul.s $f10, $f8, $f6 +/* 0D8904 7F0A3DD4 460A9400 */ add.s $f16, $f18, $f10 +/* 0D8908 7F0A3DD8 4610A502 */ mul.s $f20, $f20, $f16 +/* 0D890C 7F0A3DDC 00000000 */ nop +/* 0D8910 7F0A3DE0 4604A502 */ mul.s $f20, $f20, $f4 +/* 0D8914 7F0A3DE4 E6140024 */ swc1 $f20, 0x24($s0) +/* 0D8918 7F0A3DE8 0FC15FA8 */ jal cosf +/* 0D891C 7F0A3DEC C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 0D8920 7F0A3DF0 46140202 */ mul.s $f8, $f0, $f20 +/* 0D8924 7F0A3DF4 E608001C */ swc1 $f8, 0x1c($s0) +/* 0D8928 7F0A3DF8 0FC15FAB */ jal sinf +/* 0D892C 7F0A3DFC C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 0D8930 7F0A3E00 46140182 */ mul.s $f6, $f0, $f20 +/* 0D8934 7F0A3E04 E6060020 */ swc1 $f6, 0x20($s0) +/* 0D8938 7F0A3E08 8FBF0024 */ lw $ra, 0x24($sp) +/* 0D893C 7F0A3E0C 8FB00020 */ lw $s0, 0x20($sp) +/* 0D8940 7F0A3E10 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D8944 7F0A3E14 03E00008 */ jr $ra +/* 0D8948 7F0A3E18 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3E1C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3E1C +/* 0D894C 7F0A3E1C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0D8950 7F0A3E20 AFB00020 */ sw $s0, 0x20($sp) +/* 0D8954 7F0A3E24 44866000 */ mtc1 $a2, $f12 +/* 0D8958 7F0A3E28 3C108008 */ lui $s0, %hi(dword_CODE_bss_8007A170) +/* 0D895C 7F0A3E2C 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007A4E0) +/* 0D8960 7F0A3E30 00A03025 */ move $a2, $a1 +/* 0D8964 7F0A3E34 AFBF0024 */ sw $ra, 0x24($sp) +/* 0D8968 7F0A3E38 AFA40028 */ sw $a0, 0x28($sp) +/* 0D896C 7F0A3E3C AFA5002C */ sw $a1, 0x2c($sp) +/* 0D8970 7F0A3E40 AFA70034 */ sw $a3, 0x34($sp) +/* 0D8974 7F0A3E44 2442A4E0 */ addiu $v0, %lo(dword_CODE_bss_8007A4E0) # addiu $v0, $v0, -0x5b20 +/* 0D8978 7F0A3E48 2610A170 */ addiu $s0, %lo(dword_CODE_bss_8007A170) # addiu $s0, $s0, -0x5e90 +/* 0D897C 7F0A3E4C 860E0004 */ lh $t6, 4($s0) +.L7F0A3E50: +/* 0D8980 7F0A3E50 55C0000A */ bnezl $t6, .L7F0A3E7C +/* 0D8984 7F0A3E54 2610002C */ addiu $s0, $s0, 0x2c +/* 0D8988 7F0A3E58 87AF0036 */ lh $t7, 0x36($sp) +/* 0D898C 7F0A3E5C 44076000 */ mfc1 $a3, $f12 +/* 0D8990 7F0A3E60 02002025 */ move $a0, $s0 +/* 0D8994 7F0A3E64 8FA50028 */ lw $a1, 0x28($sp) +/* 0D8998 7F0A3E68 0FC28F02 */ jal sub_GAME_7F0A3C08 +/* 0D899C 7F0A3E6C AFAF0010 */ sw $t7, 0x10($sp) +/* 0D89A0 7F0A3E70 10000006 */ b .L7F0A3E8C +/* 0D89A4 7F0A3E74 02001025 */ move $v0, $s0 +/* 0D89A8 7F0A3E78 2610002C */ addiu $s0, $s0, 0x2c +.L7F0A3E7C: +/* 0D89AC 7F0A3E7C 0202082B */ sltu $at, $s0, $v0 +/* 0D89B0 7F0A3E80 5420FFF3 */ bnezl $at, .L7F0A3E50 +/* 0D89B4 7F0A3E84 860E0004 */ lh $t6, 4($s0) +/* 0D89B8 7F0A3E88 00001025 */ move $v0, $zero +.L7F0A3E8C: +/* 0D89BC 7F0A3E8C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0D89C0 7F0A3E90 8FB00020 */ lw $s0, 0x20($sp) +/* 0D89C4 7F0A3E94 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0D89C8 7F0A3E98 03E00008 */ jr $ra +/* 0D89CC 7F0A3E9C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3EA0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3EA0 +/* 0D89D0 7F0A3EA0 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007A170) +/* 0D89D4 7F0A3EA4 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A4E0) +/* 0D89D8 7F0A3EA8 3C058005 */ lui $a1, %hi(clock_timer) +/* 0D89DC 7F0A3EAC 2463A4E0 */ addiu $v1, %lo(dword_CODE_bss_8007A4E0) # addiu $v1, $v1, -0x5b20 +/* 0D89E0 7F0A3EB0 2442A170 */ addiu $v0, %lo(dword_CODE_bss_8007A170) # addiu $v0, $v0, -0x5e90 +/* 0D89E4 7F0A3EB4 24A58374 */ addiu $a1, %lo(clock_timer) # addiu $a1, $a1, -0x7c8c +/* 0D89E8 7F0A3EB8 844E0004 */ lh $t6, 4($v0) +.L7F0A3EBC: +/* 0D89EC 7F0A3EBC 59C0000C */ blezl $t6, .L7F0A3EF0 +/* 0D89F0 7F0A3EC0 2442002C */ addiu $v0, $v0, 0x2c +/* 0D89F4 7F0A3EC4 8C4F0000 */ lw $t7, ($v0) +/* 0D89F8 7F0A3EC8 8CB80000 */ lw $t8, ($a1) +/* 0D89FC 7F0A3ECC 01F8C821 */ addu $t9, $t7, $t8 +/* 0D8A00 7F0A3ED0 07200006 */ bltz $t9, .L7F0A3EEC +/* 0D8A04 7F0A3ED4 AC590000 */ sw $t9, ($v0) +/* 0D8A08 7F0A3ED8 84480004 */ lh $t0, 4($v0) +/* 0D8A0C 7F0A3EDC 0328082A */ slt $at, $t9, $t0 +/* 0D8A10 7F0A3EE0 54200003 */ bnezl $at, .L7F0A3EF0 +/* 0D8A14 7F0A3EE4 2442002C */ addiu $v0, $v0, 0x2c +/* 0D8A18 7F0A3EE8 A4400004 */ sh $zero, 4($v0) +.L7F0A3EEC: +/* 0D8A1C 7F0A3EEC 2442002C */ addiu $v0, $v0, 0x2c +.L7F0A3EF0: +/* 0D8A20 7F0A3EF0 0043082B */ sltu $at, $v0, $v1 +/* 0D8A24 7F0A3EF4 5420FFF1 */ bnezl $at, .L7F0A3EBC +/* 0D8A28 7F0A3EF8 844E0004 */ lh $t6, 4($v0) +/* 0D8A2C 7F0A3EFC 03E00008 */ jr $ra +/* 0D8A30 7F0A3F00 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A3F04(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A3F04 +/* 0D8A34 7F0A3F04 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 0D8A38 7F0A3F08 AFBF002C */ sw $ra, 0x2c($sp) +/* 0D8A3C 7F0A3F0C AFB20028 */ sw $s2, 0x28($sp) +/* 0D8A40 7F0A3F10 AFB10024 */ sw $s1, 0x24($sp) +/* 0D8A44 7F0A3F14 AFB00020 */ sw $s0, 0x20($sp) +/* 0D8A48 7F0A3F18 AFA500BC */ sw $a1, 0xbc($sp) +/* 0D8A4C 7F0A3F1C AFA600C0 */ sw $a2, 0xc0($sp) +/* 0D8A50 7F0A3F20 848E0004 */ lh $t6, 4($a0) +/* 0D8A54 7F0A3F24 00808025 */ move $s0, $a0 +/* 0D8A58 7F0A3F28 59C0017A */ blezl $t6, .L7F0A4514 +/* 0D8A5C 7F0A3F2C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0D8A60 7F0A3F30 8C8F0000 */ lw $t7, ($a0) +/* 0D8A64 7F0A3F34 24840010 */ addiu $a0, $a0, 0x10 +/* 0D8A68 7F0A3F38 05E20176 */ bltzl $t7, .L7F0A4514 +/* 0D8A6C 7F0A3F3C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0D8A70 7F0A3F40 0FC1E296 */ jal sub_GAME_7F078A58 +/* 0D8A74 7F0A3F44 8E050024 */ lw $a1, 0x24($s0) +/* 0D8A78 7F0A3F48 10400171 */ beqz $v0, .L7F0A4510 +/* 0D8A7C 7F0A3F4C 3C198004 */ lui $t9, %hi(D_80040980) +/* 0D8A80 7F0A3F50 27390980 */ addiu $t9, %lo(D_80040980) # addiu $t9, $t9, 0x980 +/* 0D8A84 7F0A3F54 8F210000 */ lw $at, ($t9) +/* 0D8A88 7F0A3F58 8F290004 */ lw $t1, 4($t9) +/* 0D8A8C 7F0A3F5C 27B800A8 */ addiu $t8, $sp, 0xa8 +/* 0D8A90 7F0A3F60 AF010000 */ sw $at, ($t8) +/* 0D8A94 7F0A3F64 AF090004 */ sw $t1, 4($t8) +/* 0D8A98 7F0A3F68 8F29000C */ lw $t1, 0xc($t9) +/* 0D8A9C 7F0A3F6C 8F210008 */ lw $at, 8($t9) +/* 0D8AA0 7F0A3F70 AF09000C */ sw $t1, 0xc($t8) +/* 0D8AA4 7F0A3F74 0FC1E111 */ jal sub_GAME_7F078444 +/* 0D8AA8 7F0A3F78 AF010008 */ sw $at, 8($t8) +/* 0D8AAC 7F0A3F7C 8FAA00BC */ lw $t2, 0xbc($sp) +/* 0D8AB0 7F0A3F80 24040004 */ li $a0, 4 +/* 0D8AB4 7F0A3F84 8D4B0000 */ lw $t3, ($t2) +/* 0D8AB8 7F0A3F88 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0D8ABC 7F0A3F8C 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0D8AC0 7F0A3F90 AFAB00A0 */ sw $t3, 0xa0($sp) +/* 0D8AC4 7F0A3F94 86040006 */ lh $a0, 6($s0) +/* 0D8AC8 7F0A3F98 00408825 */ move $s1, $v0 +/* 0D8ACC 7F0A3F9C 0FC2F285 */ jal sub_GAME_7F0BCA14 +/* 0D8AD0 7F0A3FA0 AFA40058 */ sw $a0, 0x58($sp) +/* 0D8AD4 7F0A3FA4 920C0028 */ lbu $t4, 0x28($s0) +/* 0D8AD8 7F0A3FA8 8FA300A4 */ lw $v1, 0xa4($sp) +/* 0D8ADC 7F0A3FAC 00409025 */ move $s2, $v0 +/* 0D8AE0 7F0A3FB0 A3AC00B4 */ sb $t4, 0xb4($sp) +/* 0D8AE4 7F0A3FB4 920D0029 */ lbu $t5, 0x29($s0) +/* 0D8AE8 7F0A3FB8 27A200A8 */ addiu $v0, $sp, 0xa8 +/* 0D8AEC 7F0A3FBC A3AD00B5 */ sb $t5, 0xb5($sp) +/* 0D8AF0 7F0A3FC0 920E002A */ lbu $t6, 0x2a($s0) +/* 0D8AF4 7F0A3FC4 A3AE00B6 */ sb $t6, 0xb6($sp) +/* 0D8AF8 7F0A3FC8 920F002B */ lbu $t7, 0x2b($s0) +/* 0D8AFC 7F0A3FCC A3AF00B7 */ sb $t7, 0xb7($sp) +/* 0D8B00 7F0A3FD0 8E080000 */ lw $t0, ($s0) +/* 0D8B04 7F0A3FD4 C6080008 */ lwc1 $f8, 8($s0) +/* 0D8B08 7F0A3FD8 44882000 */ mtc1 $t0, $f4 +/* 0D8B0C 7F0A3FDC 00000000 */ nop +/* 0D8B10 7F0A3FE0 468021A0 */ cvt.s.w $f6, $f4 +/* 0D8B14 7F0A3FE4 46083282 */ mul.s $f10, $f6, $f8 +/* 0D8B18 7F0A3FE8 4600540D */ trunc.w.s $f16, $f10 +/* 0D8B1C 7F0A3FEC 44198000 */ mfc1 $t9, $f16 +/* 0D8B20 7F0A3FF0 00000000 */ nop +/* 0D8B24 7F0A3FF4 AFB9005C */ sw $t9, 0x5c($sp) +/* 0D8B28 7F0A3FF8 C6120010 */ lwc1 $f18, 0x10($s0) +/* 0D8B2C 7F0A3FFC E7B20090 */ swc1 $f18, 0x90($sp) +/* 0D8B30 7F0A4000 C6040014 */ lwc1 $f4, 0x14($s0) +/* 0D8B34 7F0A4004 E7A40094 */ swc1 $f4, 0x94($sp) +/* 0D8B38 7F0A4008 C6060018 */ lwc1 $f6, 0x18($s0) +/* 0D8B3C 7F0A400C E7A60098 */ swc1 $f6, 0x98($sp) +/* 0D8B40 7F0A4010 C60A001C */ lwc1 $f10, 0x1c($s0) +/* 0D8B44 7F0A4014 C4680000 */ lwc1 $f8, ($v1) +/* 0D8B48 7F0A4018 460A4402 */ mul.s $f16, $f8, $f10 +/* 0D8B4C 7F0A401C E7B00084 */ swc1 $f16, 0x84($sp) +/* 0D8B50 7F0A4020 C604001C */ lwc1 $f4, 0x1c($s0) +/* 0D8B54 7F0A4024 C4720004 */ lwc1 $f18, 4($v1) +/* 0D8B58 7F0A4028 46049182 */ mul.s $f6, $f18, $f4 +/* 0D8B5C 7F0A402C E7A60088 */ swc1 $f6, 0x88($sp) +/* 0D8B60 7F0A4030 C60A001C */ lwc1 $f10, 0x1c($s0) +/* 0D8B64 7F0A4034 C4680008 */ lwc1 $f8, 8($v1) +/* 0D8B68 7F0A4038 460A4402 */ mul.s $f16, $f8, $f10 +/* 0D8B6C 7F0A403C E7B0008C */ swc1 $f16, 0x8c($sp) +/* 0D8B70 7F0A4040 C6040020 */ lwc1 $f4, 0x20($s0) +/* 0D8B74 7F0A4044 C4720000 */ lwc1 $f18, ($v1) +/* 0D8B78 7F0A4048 46049182 */ mul.s $f6, $f18, $f4 +/* 0D8B7C 7F0A404C E7A60078 */ swc1 $f6, 0x78($sp) +/* 0D8B80 7F0A4050 C60A0020 */ lwc1 $f10, 0x20($s0) +/* 0D8B84 7F0A4054 C4680004 */ lwc1 $f8, 4($v1) +/* 0D8B88 7F0A4058 460A4402 */ mul.s $f16, $f8, $f10 +/* 0D8B8C 7F0A405C E7B0007C */ swc1 $f16, 0x7c($sp) +/* 0D8B90 7F0A4060 C6040020 */ lwc1 $f4, 0x20($s0) +/* 0D8B94 7F0A4064 C4720008 */ lwc1 $f18, 8($v1) +/* 0D8B98 7F0A4068 46049182 */ mul.s $f6, $f18, $f4 +/* 0D8B9C 7F0A406C E7A60080 */ swc1 $f6, 0x80($sp) +/* 0D8BA0 7F0A4070 C60A001C */ lwc1 $f10, 0x1c($s0) +/* 0D8BA4 7F0A4074 C4680010 */ lwc1 $f8, 0x10($v1) +/* 0D8BA8 7F0A4078 460A4402 */ mul.s $f16, $f8, $f10 +/* 0D8BAC 7F0A407C E7B0006C */ swc1 $f16, 0x6c($sp) +/* 0D8BB0 7F0A4080 C604001C */ lwc1 $f4, 0x1c($s0) +/* 0D8BB4 7F0A4084 C4720014 */ lwc1 $f18, 0x14($v1) +/* 0D8BB8 7F0A4088 46049182 */ mul.s $f6, $f18, $f4 +/* 0D8BBC 7F0A408C E7A60070 */ swc1 $f6, 0x70($sp) +/* 0D8BC0 7F0A4090 C60A001C */ lwc1 $f10, 0x1c($s0) +/* 0D8BC4 7F0A4094 C4680018 */ lwc1 $f8, 0x18($v1) +/* 0D8BC8 7F0A4098 460A4402 */ mul.s $f16, $f8, $f10 +/* 0D8BCC 7F0A409C E7B00074 */ swc1 $f16, 0x74($sp) +/* 0D8BD0 7F0A40A0 C6040020 */ lwc1 $f4, 0x20($s0) +/* 0D8BD4 7F0A40A4 C4720010 */ lwc1 $f18, 0x10($v1) +/* 0D8BD8 7F0A40A8 46049182 */ mul.s $f6, $f18, $f4 +/* 0D8BDC 7F0A40AC E7A60060 */ swc1 $f6, 0x60($sp) +/* 0D8BE0 7F0A40B0 C60A0020 */ lwc1 $f10, 0x20($s0) +/* 0D8BE4 7F0A40B4 C4680014 */ lwc1 $f8, 0x14($v1) +/* 0D8BE8 7F0A40B8 460A4402 */ mul.s $f16, $f8, $f10 +/* 0D8BEC 7F0A40BC E7B00064 */ swc1 $f16, 0x64($sp) +/* 0D8BF0 7F0A40C0 C6040020 */ lwc1 $f4, 0x20($s0) +/* 0D8BF4 7F0A40C4 C4720018 */ lwc1 $f18, 0x18($v1) +/* 0D8BF8 7F0A40C8 46049182 */ mul.s $f6, $f18, $f4 +/* 0D8BFC 7F0A40CC E7A60068 */ swc1 $f6, 0x68($sp) +/* 0D8C00 7F0A40D0 8C410000 */ lw $at, ($v0) +/* 0D8C04 7F0A40D4 AE210000 */ sw $at, ($s1) +/* 0D8C08 7F0A40D8 8C4B0004 */ lw $t3, 4($v0) +/* 0D8C0C 7F0A40DC AE2B0004 */ sw $t3, 4($s1) +/* 0D8C10 7F0A40E0 8C410008 */ lw $at, 8($v0) +/* 0D8C14 7F0A40E4 AE210008 */ sw $at, 8($s1) +/* 0D8C18 7F0A40E8 8C4B000C */ lw $t3, 0xc($v0) +/* 0D8C1C 7F0A40EC AE2B000C */ sw $t3, 0xc($s1) +/* 0D8C20 7F0A40F0 8C410000 */ lw $at, ($v0) +/* 0D8C24 7F0A40F4 AE210010 */ sw $at, 0x10($s1) +/* 0D8C28 7F0A40F8 8C4E0004 */ lw $t6, 4($v0) +/* 0D8C2C 7F0A40FC AE2E0014 */ sw $t6, 0x14($s1) +/* 0D8C30 7F0A4100 8C410008 */ lw $at, 8($v0) +/* 0D8C34 7F0A4104 AE210018 */ sw $at, 0x18($s1) +/* 0D8C38 7F0A4108 8C4E000C */ lw $t6, 0xc($v0) +/* 0D8C3C 7F0A410C AE2E001C */ sw $t6, 0x1c($s1) +/* 0D8C40 7F0A4110 8C410000 */ lw $at, ($v0) +/* 0D8C44 7F0A4114 AE210020 */ sw $at, 0x20($s1) +/* 0D8C48 7F0A4118 8C580004 */ lw $t8, 4($v0) +/* 0D8C4C 7F0A411C AE380024 */ sw $t8, 0x24($s1) +/* 0D8C50 7F0A4120 8C410008 */ lw $at, 8($v0) +/* 0D8C54 7F0A4124 AE210028 */ sw $at, 0x28($s1) +/* 0D8C58 7F0A4128 8C58000C */ lw $t8, 0xc($v0) +/* 0D8C5C 7F0A412C AE38002C */ sw $t8, 0x2c($s1) +/* 0D8C60 7F0A4130 8C410000 */ lw $at, ($v0) +/* 0D8C64 7F0A4134 AE210030 */ sw $at, 0x30($s1) +/* 0D8C68 7F0A4138 8C490004 */ lw $t1, 4($v0) +/* 0D8C6C 7F0A413C AE290034 */ sw $t1, 0x34($s1) +/* 0D8C70 7F0A4140 8C410008 */ lw $at, 8($v0) +/* 0D8C74 7F0A4144 AE210038 */ sw $at, 0x38($s1) +/* 0D8C78 7F0A4148 8C49000C */ lw $t1, 0xc($v0) +/* 0D8C7C 7F0A414C 0FC2D20F */ jal get_room_data_float1 +/* 0D8C80 7F0A4150 AE29003C */ sw $t1, 0x3c($s1) +/* 0D8C84 7F0A4154 C7A80090 */ lwc1 $f8, 0x90($sp) +/* 0D8C88 7F0A4158 C7AA0084 */ lwc1 $f10, 0x84($sp) +/* 0D8C8C 7F0A415C C7B20060 */ lwc1 $f18, 0x60($sp) +/* 0D8C90 7F0A4160 460A4401 */ sub.s $f16, $f8, $f10 +/* 0D8C94 7F0A4164 C6480000 */ lwc1 $f8, ($s2) +/* 0D8C98 7F0A4168 46128101 */ sub.s $f4, $f16, $f18 +/* 0D8C9C 7F0A416C 46002182 */ mul.s $f6, $f4, $f0 +/* 0D8CA0 7F0A4170 46083281 */ sub.s $f10, $f6, $f8 +/* 0D8CA4 7F0A4174 4600540D */ trunc.w.s $f16, $f10 +/* 0D8CA8 7F0A4178 440D8000 */ mfc1 $t5, $f16 +/* 0D8CAC 7F0A417C 0FC2D20F */ jal get_room_data_float1 +/* 0D8CB0 7F0A4180 A62D0000 */ sh $t5, ($s1) +/* 0D8CB4 7F0A4184 C7B20094 */ lwc1 $f18, 0x94($sp) +/* 0D8CB8 7F0A4188 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0D8CBC 7F0A418C C7A80064 */ lwc1 $f8, 0x64($sp) +/* 0D8CC0 7F0A4190 46049181 */ sub.s $f6, $f18, $f4 +/* 0D8CC4 7F0A4194 C6520004 */ lwc1 $f18, 4($s2) +/* 0D8CC8 7F0A4198 46083281 */ sub.s $f10, $f6, $f8 +/* 0D8CCC 7F0A419C 46005402 */ mul.s $f16, $f10, $f0 +/* 0D8CD0 7F0A41A0 46128101 */ sub.s $f4, $f16, $f18 +/* 0D8CD4 7F0A41A4 4600218D */ trunc.w.s $f6, $f4 +/* 0D8CD8 7F0A41A8 440E3000 */ mfc1 $t6, $f6 +/* 0D8CDC 7F0A41AC 0FC2D20F */ jal get_room_data_float1 +/* 0D8CE0 7F0A41B0 A62E0002 */ sh $t6, 2($s1) +/* 0D8CE4 7F0A41B4 C7A80098 */ lwc1 $f8, 0x98($sp) +/* 0D8CE8 7F0A41B8 C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0D8CEC 7F0A41BC C7B20068 */ lwc1 $f18, 0x68($sp) +/* 0D8CF0 7F0A41C0 460A4401 */ sub.s $f16, $f8, $f10 +/* 0D8CF4 7F0A41C4 C6480008 */ lwc1 $f8, 8($s2) +/* 0D8CF8 7F0A41C8 46128101 */ sub.s $f4, $f16, $f18 +/* 0D8CFC 7F0A41CC 46002182 */ mul.s $f6, $f4, $f0 +/* 0D8D00 7F0A41D0 46083281 */ sub.s $f10, $f6, $f8 +/* 0D8D04 7F0A41D4 4600540D */ trunc.w.s $f16, $f10 +/* 0D8D08 7F0A41D8 440F8000 */ mfc1 $t7, $f16 +/* 0D8D0C 7F0A41DC 00000000 */ nop +/* 0D8D10 7F0A41E0 A62F0004 */ sh $t7, 4($s1) +/* 0D8D14 7F0A41E4 8FA2005C */ lw $v0, 0x5c($sp) +/* 0D8D18 7F0A41E8 8E0A000C */ lw $t2, 0xc($s0) +/* 0D8D1C 7F0A41EC 0002C080 */ sll $t8, $v0, 2 +/* 0D8D20 7F0A41F0 0302C023 */ subu $t8, $t8, $v0 +/* 0D8D24 7F0A41F4 0018C080 */ sll $t8, $t8, 2 +/* 0D8D28 7F0A41F8 0158C821 */ addu $t9, $t2, $t8 +/* 0D8D2C 7F0A41FC 93290004 */ lbu $t1, 4($t9) +/* 0D8D30 7F0A4200 A620000A */ sh $zero, 0xa($s1) +/* 0D8D34 7F0A4204 00095940 */ sll $t3, $t1, 5 +/* 0D8D38 7F0A4208 A62B0008 */ sh $t3, 8($s1) +/* 0D8D3C 7F0A420C 0FC2D20F */ jal get_room_data_float1 +/* 0D8D40 7F0A4210 AFB80034 */ sw $t8, 0x34($sp) +/* 0D8D44 7F0A4214 C7B20090 */ lwc1 $f18, 0x90($sp) +/* 0D8D48 7F0A4218 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 0D8D4C 7F0A421C C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 0D8D50 7F0A4220 46049180 */ add.s $f6, $f18, $f4 +/* 0D8D54 7F0A4224 C6520000 */ lwc1 $f18, ($s2) +/* 0D8D58 7F0A4228 46083281 */ sub.s $f10, $f6, $f8 +/* 0D8D5C 7F0A422C 46005402 */ mul.s $f16, $f10, $f0 +/* 0D8D60 7F0A4230 46128101 */ sub.s $f4, $f16, $f18 +/* 0D8D64 7F0A4234 4600218D */ trunc.w.s $f6, $f4 +/* 0D8D68 7F0A4238 440C3000 */ mfc1 $t4, $f6 +/* 0D8D6C 7F0A423C 0FC2D20F */ jal get_room_data_float1 +/* 0D8D70 7F0A4240 A62C0010 */ sh $t4, 0x10($s1) +/* 0D8D74 7F0A4244 C7A80094 */ lwc1 $f8, 0x94($sp) +/* 0D8D78 7F0A4248 C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 0D8D7C 7F0A424C C7B20070 */ lwc1 $f18, 0x70($sp) +/* 0D8D80 7F0A4250 460A4400 */ add.s $f16, $f8, $f10 +/* 0D8D84 7F0A4254 C6480004 */ lwc1 $f8, 4($s2) +/* 0D8D88 7F0A4258 46128101 */ sub.s $f4, $f16, $f18 +/* 0D8D8C 7F0A425C 46002182 */ mul.s $f6, $f4, $f0 +/* 0D8D90 7F0A4260 46083281 */ sub.s $f10, $f6, $f8 +/* 0D8D94 7F0A4264 4600540D */ trunc.w.s $f16, $f10 +/* 0D8D98 7F0A4268 44088000 */ mfc1 $t0, $f16 +/* 0D8D9C 7F0A426C 0FC2D20F */ jal get_room_data_float1 +/* 0D8DA0 7F0A4270 A6280012 */ sh $t0, 0x12($s1) +/* 0D8DA4 7F0A4274 C7B20098 */ lwc1 $f18, 0x98($sp) +/* 0D8DA8 7F0A4278 C7A40080 */ lwc1 $f4, 0x80($sp) +/* 0D8DAC 7F0A427C C7A80074 */ lwc1 $f8, 0x74($sp) +/* 0D8DB0 7F0A4280 46049180 */ add.s $f6, $f18, $f4 +/* 0D8DB4 7F0A4284 C6520008 */ lwc1 $f18, 8($s2) +/* 0D8DB8 7F0A4288 A6200018 */ sh $zero, 0x18($s1) +/* 0D8DBC 7F0A428C A620001A */ sh $zero, 0x1a($s1) +/* 0D8DC0 7F0A4290 46083281 */ sub.s $f10, $f6, $f8 +/* 0D8DC4 7F0A4294 46005402 */ mul.s $f16, $f10, $f0 +/* 0D8DC8 7F0A4298 46128101 */ sub.s $f4, $f16, $f18 +/* 0D8DCC 7F0A429C 4600218D */ trunc.w.s $f6, $f4 +/* 0D8DD0 7F0A42A0 44183000 */ mfc1 $t8, $f6 +/* 0D8DD4 7F0A42A4 0FC2D20F */ jal get_room_data_float1 +/* 0D8DD8 7F0A42A8 A6380014 */ sh $t8, 0x14($s1) +/* 0D8DDC 7F0A42AC C7A80090 */ lwc1 $f8, 0x90($sp) +/* 0D8DE0 7F0A42B0 C7AA0084 */ lwc1 $f10, 0x84($sp) +/* 0D8DE4 7F0A42B4 C7B20060 */ lwc1 $f18, 0x60($sp) +/* 0D8DE8 7F0A42B8 460A4400 */ add.s $f16, $f8, $f10 +/* 0D8DEC 7F0A42BC C6480000 */ lwc1 $f8, ($s2) +/* 0D8DF0 7F0A42C0 46128100 */ add.s $f4, $f16, $f18 +/* 0D8DF4 7F0A42C4 46002182 */ mul.s $f6, $f4, $f0 +/* 0D8DF8 7F0A42C8 46083281 */ sub.s $f10, $f6, $f8 +/* 0D8DFC 7F0A42CC 4600540D */ trunc.w.s $f16, $f10 +/* 0D8E00 7F0A42D0 44198000 */ mfc1 $t9, $f16 +/* 0D8E04 7F0A42D4 0FC2D20F */ jal get_room_data_float1 +/* 0D8E08 7F0A42D8 A6390020 */ sh $t9, 0x20($s1) +/* 0D8E0C 7F0A42DC C7B20094 */ lwc1 $f18, 0x94($sp) +/* 0D8E10 7F0A42E0 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 0D8E14 7F0A42E4 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 0D8E18 7F0A42E8 46049180 */ add.s $f6, $f18, $f4 +/* 0D8E1C 7F0A42EC C6520004 */ lwc1 $f18, 4($s2) +/* 0D8E20 7F0A42F0 46083280 */ add.s $f10, $f6, $f8 +/* 0D8E24 7F0A42F4 46005402 */ mul.s $f16, $f10, $f0 +/* 0D8E28 7F0A42F8 46128101 */ sub.s $f4, $f16, $f18 +/* 0D8E2C 7F0A42FC 4600218D */ trunc.w.s $f6, $f4 +/* 0D8E30 7F0A4300 440B3000 */ mfc1 $t3, $f6 +/* 0D8E34 7F0A4304 0FC2D20F */ jal get_room_data_float1 +/* 0D8E38 7F0A4308 A62B0022 */ sh $t3, 0x22($s1) +/* 0D8E3C 7F0A430C C7A80098 */ lwc1 $f8, 0x98($sp) +/* 0D8E40 7F0A4310 C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0D8E44 7F0A4314 C7B20068 */ lwc1 $f18, 0x68($sp) +/* 0D8E48 7F0A4318 460A4400 */ add.s $f16, $f8, $f10 +/* 0D8E4C 7F0A431C C6480008 */ lwc1 $f8, 8($s2) +/* 0D8E50 7F0A4320 A6200028 */ sh $zero, 0x28($s1) +/* 0D8E54 7F0A4324 46128100 */ add.s $f4, $f16, $f18 +/* 0D8E58 7F0A4328 46002182 */ mul.s $f6, $f4, $f0 +/* 0D8E5C 7F0A432C 46083281 */ sub.s $f10, $f6, $f8 +/* 0D8E60 7F0A4330 4600540D */ trunc.w.s $f16, $f10 +/* 0D8E64 7F0A4334 440C8000 */ mfc1 $t4, $f16 +/* 0D8E68 7F0A4338 00000000 */ nop +/* 0D8E6C 7F0A433C A62C0024 */ sh $t4, 0x24($s1) +/* 0D8E70 7F0A4340 8FA80034 */ lw $t0, 0x34($sp) +/* 0D8E74 7F0A4344 8E0E000C */ lw $t6, 0xc($s0) +/* 0D8E78 7F0A4348 01C87821 */ addu $t7, $t6, $t0 +/* 0D8E7C 7F0A434C 91F80005 */ lbu $t8, 5($t7) +/* 0D8E80 7F0A4350 00185140 */ sll $t2, $t8, 5 +/* 0D8E84 7F0A4354 0FC2D20F */ jal get_room_data_float1 +/* 0D8E88 7F0A4358 A62A002A */ sh $t2, 0x2a($s1) +/* 0D8E8C 7F0A435C C7B20090 */ lwc1 $f18, 0x90($sp) +/* 0D8E90 7F0A4360 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 0D8E94 7F0A4364 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 0D8E98 7F0A4368 46049181 */ sub.s $f6, $f18, $f4 +/* 0D8E9C 7F0A436C C6520000 */ lwc1 $f18, ($s2) +/* 0D8EA0 7F0A4370 46083280 */ add.s $f10, $f6, $f8 +/* 0D8EA4 7F0A4374 46005402 */ mul.s $f16, $f10, $f0 +/* 0D8EA8 7F0A4378 46128101 */ sub.s $f4, $f16, $f18 +/* 0D8EAC 7F0A437C 4600218D */ trunc.w.s $f6, $f4 +/* 0D8EB0 7F0A4380 44093000 */ mfc1 $t1, $f6 +/* 0D8EB4 7F0A4384 0FC2D20F */ jal get_room_data_float1 +/* 0D8EB8 7F0A4388 A6290030 */ sh $t1, 0x30($s1) +/* 0D8EBC 7F0A438C C7A80094 */ lwc1 $f8, 0x94($sp) +/* 0D8EC0 7F0A4390 C7AA007C */ lwc1 $f10, 0x7c($sp) +/* 0D8EC4 7F0A4394 C7B20070 */ lwc1 $f18, 0x70($sp) +/* 0D8EC8 7F0A4398 460A4401 */ sub.s $f16, $f8, $f10 +/* 0D8ECC 7F0A439C C6480004 */ lwc1 $f8, 4($s2) +/* 0D8ED0 7F0A43A0 46128100 */ add.s $f4, $f16, $f18 +/* 0D8ED4 7F0A43A4 46002182 */ mul.s $f6, $f4, $f0 +/* 0D8ED8 7F0A43A8 46083281 */ sub.s $f10, $f6, $f8 +/* 0D8EDC 7F0A43AC 4600540D */ trunc.w.s $f16, $f10 +/* 0D8EE0 7F0A43B0 440D8000 */ mfc1 $t5, $f16 +/* 0D8EE4 7F0A43B4 0FC2D20F */ jal get_room_data_float1 +/* 0D8EE8 7F0A43B8 A62D0032 */ sh $t5, 0x32($s1) +/* 0D8EEC 7F0A43BC C7B20098 */ lwc1 $f18, 0x98($sp) +/* 0D8EF0 7F0A43C0 C7A40080 */ lwc1 $f4, 0x80($sp) +/* 0D8EF4 7F0A43C4 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 0D8EF8 7F0A43C8 8FA40034 */ lw $a0, 0x34($sp) +/* 0D8EFC 7F0A43CC 46049181 */ sub.s $f6, $f18, $f4 +/* 0D8F00 7F0A43D0 C6520008 */ lwc1 $f18, 8($s2) +/* 0D8F04 7F0A43D4 46083280 */ add.s $f10, $f6, $f8 +/* 0D8F08 7F0A43D8 46005402 */ mul.s $f16, $f10, $f0 +/* 0D8F0C 7F0A43DC 46128101 */ sub.s $f4, $f16, $f18 +/* 0D8F10 7F0A43E0 4600218D */ trunc.w.s $f6, $f4 +/* 0D8F14 7F0A43E4 440E3000 */ mfc1 $t6, $f6 +/* 0D8F18 7F0A43E8 00000000 */ nop +/* 0D8F1C 7F0A43EC A62E0034 */ sh $t6, 0x34($s1) +/* 0D8F20 7F0A43F0 8E08000C */ lw $t0, 0xc($s0) +/* 0D8F24 7F0A43F4 01047821 */ addu $t7, $t0, $a0 +/* 0D8F28 7F0A43F8 91F80004 */ lbu $t8, 4($t7) +/* 0D8F2C 7F0A43FC 240F2000 */ li $t7, 8192 +/* 0D8F30 7F0A4400 3C08B700 */ lui $t0, 0xb700 +/* 0D8F34 7F0A4404 00185140 */ sll $t2, $t8, 5 +/* 0D8F38 7F0A4408 A62A0038 */ sh $t2, 0x38($s1) +/* 0D8F3C 7F0A440C 8E19000C */ lw $t9, 0xc($s0) +/* 0D8F40 7F0A4410 03244821 */ addu $t1, $t9, $a0 +/* 0D8F44 7F0A4414 912B0005 */ lbu $t3, 5($t1) +/* 0D8F48 7F0A4418 3C190103 */ lui $t9, (0x01030040 >> 16) # lui $t9, 0x103 +/* 0D8F4C 7F0A441C 37390040 */ ori $t9, (0x01030040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 0D8F50 7F0A4420 000B6940 */ sll $t5, $t3, 5 +/* 0D8F54 7F0A4424 A62D003A */ sh $t5, 0x3a($s1) +/* 0D8F58 7F0A4428 8FAC00A0 */ lw $t4, 0xa0($sp) +/* 0D8F5C 7F0A442C 258E0008 */ addiu $t6, $t4, 8 +/* 0D8F60 7F0A4430 AFAE00A0 */ sw $t6, 0xa0($sp) +/* 0D8F64 7F0A4434 AD8F0004 */ sw $t7, 4($t4) +/* 0D8F68 7F0A4438 AD880000 */ sw $t0, ($t4) +/* 0D8F6C 7F0A443C 8FB800A0 */ lw $t8, 0xa0($sp) +/* 0D8F70 7F0A4440 270A0008 */ addiu $t2, $t8, 8 +/* 0D8F74 7F0A4444 AFAA00A0 */ sw $t2, 0xa0($sp) +/* 0D8F78 7F0A4448 AF190000 */ sw $t9, ($t8) +/* 0D8F7C 7F0A444C 0FC1E0E5 */ jal get_BONDdata_field_10E0 +/* 0D8F80 7F0A4450 AFB8004C */ sw $t8, 0x4c($sp) +/* 0D8F84 7F0A4454 0C003A2C */ jal osVirtualToPhysical +/* 0D8F88 7F0A4458 00402025 */ move $a0, $v0 +/* 0D8F8C 7F0A445C 8FA9004C */ lw $t1, 0x4c($sp) +/* 0D8F90 7F0A4460 AD220004 */ sw $v0, 4($t1) +/* 0D8F94 7F0A4464 8FA50058 */ lw $a1, 0x58($sp) +/* 0D8F98 7F0A4468 0FC2F271 */ jal sub_GAME_7F0BC9C4 +/* 0D8F9C 7F0A446C 8FA400A0 */ lw $a0, 0xa0($sp) +/* 0D8FA0 7F0A4470 AFA200A0 */ sw $v0, 0xa0($sp) +/* 0D8FA4 7F0A4474 8E0B000C */ lw $t3, 0xc($s0) +/* 0D8FA8 7F0A4478 8FAD0034 */ lw $t5, 0x34($sp) +/* 0D8FAC 7F0A447C 240C0002 */ li $t4, 2 +/* 0D8FB0 7F0A4480 AFAC0010 */ sw $t4, 0x10($sp) +/* 0D8FB4 7F0A4484 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 0D8FB8 7F0A4488 24060004 */ li $a2, 4 +/* 0D8FBC 7F0A448C 8FA700C0 */ lw $a3, 0xc0($sp) +/* 0D8FC0 7F0A4490 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 0D8FC4 7F0A4494 016D2821 */ addu $a1, $t3, $t5 +/* 0D8FC8 7F0A4498 8FB000A0 */ lw $s0, 0xa0($sp) +/* 0D8FCC 7F0A449C 3C0F0430 */ lui $t7, (0x04300040 >> 16) # lui $t7, 0x430 +/* 0D8FD0 7F0A44A0 35EF0040 */ ori $t7, (0x04300040 & 0xFFFF) # ori $t7, $t7, 0x40 +/* 0D8FD4 7F0A44A4 26080008 */ addiu $t0, $s0, 8 +/* 0D8FD8 7F0A44A8 AFA800A0 */ sw $t0, 0xa0($sp) +/* 0D8FDC 7F0A44AC 02202025 */ move $a0, $s1 +/* 0D8FE0 7F0A44B0 0C003A2C */ jal osVirtualToPhysical +/* 0D8FE4 7F0A44B4 AE0F0000 */ sw $t7, ($s0) +/* 0D8FE8 7F0A44B8 AE020004 */ sw $v0, 4($s0) +/* 0D8FEC 7F0A44BC 8FB800A0 */ lw $t8, 0xa0($sp) +/* 0D8FF0 7F0A44C0 3C19B100 */ lui $t9, (0xB1000032 >> 16) # lui $t9, 0xb100 +/* 0D8FF4 7F0A44C4 37390032 */ ori $t9, (0xB1000032 & 0xFFFF) # ori $t9, $t9, 0x32 +/* 0D8FF8 7F0A44C8 270A0008 */ addiu $t2, $t8, 8 +/* 0D8FFC 7F0A44CC AFAA00A0 */ sw $t2, 0xa0($sp) +/* 0D9000 7F0A44D0 24092010 */ li $t1, 8208 +/* 0D9004 7F0A44D4 AF090004 */ sw $t1, 4($t8) +/* 0D9008 7F0A44D8 AF190000 */ sw $t9, ($t8) +/* 0D900C 7F0A44DC 8FB100A0 */ lw $s1, 0xa0($sp) +/* 0D9010 7F0A44E0 3C0C0103 */ lui $t4, (0x01030040 >> 16) # lui $t4, 0x103 +/* 0D9014 7F0A44E4 358C0040 */ ori $t4, (0x01030040 & 0xFFFF) # ori $t4, $t4, 0x40 +/* 0D9018 7F0A44E8 262D0008 */ addiu $t5, $s1, 8 +/* 0D901C 7F0A44EC AFAD00A0 */ sw $t5, 0xa0($sp) +/* 0D9020 7F0A44F0 0FC1E0DD */ jal get_BONDdata_field_10D8 +/* 0D9024 7F0A44F4 AE2C0000 */ sw $t4, ($s1) +/* 0D9028 7F0A44F8 0C003A2C */ jal osVirtualToPhysical +/* 0D902C 7F0A44FC 00402025 */ move $a0, $v0 +/* 0D9030 7F0A4500 AE220004 */ sw $v0, 4($s1) +/* 0D9034 7F0A4504 8FA800BC */ lw $t0, 0xbc($sp) +/* 0D9038 7F0A4508 8FAE00A0 */ lw $t6, 0xa0($sp) +/* 0D903C 7F0A450C AD0E0000 */ sw $t6, ($t0) +.L7F0A4510: +/* 0D9040 7F0A4510 8FBF002C */ lw $ra, 0x2c($sp) +.L7F0A4514: +/* 0D9044 7F0A4514 8FB00020 */ lw $s0, 0x20($sp) +/* 0D9048 7F0A4518 8FB10024 */ lw $s1, 0x24($sp) +/* 0D904C 7F0A451C 8FB20028 */ lw $s2, 0x28($sp) +/* 0D9050 7F0A4520 03E00008 */ jr $ra +/* 0D9054 7F0A4524 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A4528(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A4528 +/* 0D9058 7F0A4528 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0D905C 7F0A452C AFB10018 */ sw $s1, 0x18($sp) +/* 0D9060 7F0A4530 AFB00014 */ sw $s0, 0x14($sp) +/* 0D9064 7F0A4534 AFB30020 */ sw $s3, 0x20($sp) +/* 0D9068 7F0A4538 AFB2001C */ sw $s2, 0x1c($sp) +/* 0D906C 7F0A453C 3C108008 */ lui $s0, %hi(dword_CODE_bss_8007A170) +/* 0D9070 7F0A4540 3C118008 */ lui $s1, %hi(dword_CODE_bss_8007A4E0) +/* 0D9074 7F0A4544 00809025 */ move $s2, $a0 +/* 0D9078 7F0A4548 00A09825 */ move $s3, $a1 +/* 0D907C 7F0A454C AFBF0024 */ sw $ra, 0x24($sp) +/* 0D9080 7F0A4550 2631A4E0 */ addiu $s1, %lo(dword_CODE_bss_8007A4E0) # addiu $s1, $s1, -0x5b20 +/* 0D9084 7F0A4554 2610A170 */ addiu $s0, %lo(dword_CODE_bss_8007A170) # addiu $s0, $s0, -0x5e90 +/* 0D9088 7F0A4558 02002025 */ move $a0, $s0 +.L7F0A455C: +/* 0D908C 7F0A455C 02402825 */ move $a1, $s2 +/* 0D9090 7F0A4560 0FC28FC1 */ jal sub_GAME_7F0A3F04 +/* 0D9094 7F0A4564 02603025 */ move $a2, $s3 +/* 0D9098 7F0A4568 2610002C */ addiu $s0, $s0, 0x2c +/* 0D909C 7F0A456C 0211082B */ sltu $at, $s0, $s1 +/* 0D90A0 7F0A4570 5420FFFA */ bnezl $at, .L7F0A455C +/* 0D90A4 7F0A4574 02002025 */ move $a0, $s0 +/* 0D90A8 7F0A4578 8FBF0024 */ lw $ra, 0x24($sp) +/* 0D90AC 7F0A457C 8FB00014 */ lw $s0, 0x14($sp) +/* 0D90B0 7F0A4580 8FB10018 */ lw $s1, 0x18($sp) +/* 0D90B4 7F0A4584 8FB2001C */ lw $s2, 0x1c($sp) +/* 0D90B8 7F0A4588 8FB30020 */ lw $s3, 0x20($sp) +/* 0D90BC 7F0A458C 03E00008 */ jr $ra +/* 0D90C0 7F0A4590 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A4594(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A4594 +/* 0D90C4 7F0A4594 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0D90C8 7F0A4598 AFBF0014 */ sw $ra, 0x14($sp) +/* 0D90CC 7F0A459C C4840010 */ lwc1 $f4, 0x10($a0) +/* 0D90D0 7F0A45A0 E7A4001C */ swc1 $f4, 0x1c($sp) +/* 0D90D4 7F0A45A4 C4860014 */ lwc1 $f6, 0x14($a0) +/* 0D90D8 7F0A45A8 E7A60020 */ swc1 $f6, 0x20($sp) +/* 0D90DC 7F0A45AC C4880018 */ lwc1 $f8, 0x18($a0) +/* 0D90E0 7F0A45B0 0FC1E0F1 */ jal get_BONDdata_field_10CC +/* 0D90E4 7F0A45B4 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0D90E8 7F0A45B8 00402025 */ move $a0, $v0 +/* 0D90EC 7F0A45BC 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 0D90F0 7F0A45C0 27A5001C */ addiu $a1, $sp, 0x1c +/* 0D90F4 7F0A45C4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0D90F8 7F0A45C8 C7A00024 */ lwc1 $f0, 0x24($sp) +/* 0D90FC 7F0A45CC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0D9100 7F0A45D0 03E00008 */ jr $ra +/* 0D9104 7F0A45D4 46000007 */ neg.s $f0, $f0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A45D8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A45D8 +/* 0D9108 7F0A45D8 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007A4E0) +/* 0D910C 7F0A45DC 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007B098) +/* 0D9110 7F0A45E0 2463B098 */ addiu $v1, %lo(dword_CODE_bss_8007B098) # addiu $v1, $v1, -0x4f68 +/* 0D9114 7F0A45E4 2442A4E0 */ addiu $v0, %lo(dword_CODE_bss_8007A4E0) # addiu $v0, $v0, -0x5b20 +.L7F0A45E8: +/* 0D9118 7F0A45E8 2442003C */ addiu $v0, $v0, 0x3c +/* 0D911C 7F0A45EC 0043082B */ sltu $at, $v0, $v1 +/* 0D9120 7F0A45F0 1420FFFD */ bnez $at, .L7F0A45E8 +/* 0D9124 7F0A45F4 A440FFC8 */ sh $zero, -0x38($v0) +/* 0D9128 7F0A45F8 03E00008 */ jr $ra +/* 0D912C 7F0A45FC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A4600(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A4600 +/* 0D9130 7F0A4600 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0D9134 7F0A4604 AFB00020 */ sw $s0, 0x20($sp) +/* 0D9138 7F0A4608 3C108008 */ lui $s0, %hi(dword_CODE_bss_8007A4E0) +/* 0D913C 7F0A460C 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007B098) +/* 0D9140 7F0A4610 44876000 */ mtc1 $a3, $f12 +/* 0D9144 7F0A4614 AFBF0024 */ sw $ra, 0x24($sp) +/* 0D9148 7F0A4618 AFA40028 */ sw $a0, 0x28($sp) +/* 0D914C 7F0A461C AFA5002C */ sw $a1, 0x2c($sp) +/* 0D9150 7F0A4620 2442B098 */ addiu $v0, %lo(dword_CODE_bss_8007B098) # addiu $v0, $v0, -0x4f68 +/* 0D9154 7F0A4624 2610A4E0 */ addiu $s0, %lo(dword_CODE_bss_8007A4E0) # addiu $s0, $s0, -0x5b20 +/* 0D9158 7F0A4628 860E0004 */ lh $t6, 4($s0) +.L7F0A462C: +/* 0D915C 7F0A462C 55C00013 */ bnezl $t6, .L7F0A467C +/* 0D9160 7F0A4630 2610003C */ addiu $s0, $s0, 0x3c +/* 0D9164 7F0A4634 87AF003E */ lh $t7, 0x3e($sp) +/* 0D9168 7F0A4638 44076000 */ mfc1 $a3, $f12 +/* 0D916C 7F0A463C 02002025 */ move $a0, $s0 +/* 0D9170 7F0A4640 8FA50028 */ lw $a1, 0x28($sp) +/* 0D9174 7F0A4644 0FC28F02 */ jal sub_GAME_7F0A3C08 +/* 0D9178 7F0A4648 AFAF0010 */ sw $t7, 0x10($sp) +/* 0D917C 7F0A464C 8FA3002C */ lw $v1, 0x2c($sp) +/* 0D9180 7F0A4650 02001025 */ move $v0, $s0 +/* 0D9184 7F0A4654 C4640000 */ lwc1 $f4, ($v1) +/* 0D9188 7F0A4658 E604002C */ swc1 $f4, 0x2c($s0) +/* 0D918C 7F0A465C C4660004 */ lwc1 $f6, 4($v1) +/* 0D9190 7F0A4660 E6060030 */ swc1 $f6, 0x30($s0) +/* 0D9194 7F0A4664 C4680008 */ lwc1 $f8, 8($v1) +/* 0D9198 7F0A4668 E6080034 */ swc1 $f8, 0x34($s0) +/* 0D919C 7F0A466C C7AA0038 */ lwc1 $f10, 0x38($sp) +/* 0D91A0 7F0A4670 10000006 */ b .L7F0A468C +/* 0D91A4 7F0A4674 E60A0038 */ swc1 $f10, 0x38($s0) +/* 0D91A8 7F0A4678 2610003C */ addiu $s0, $s0, 0x3c +.L7F0A467C: +/* 0D91AC 7F0A467C 0202082B */ sltu $at, $s0, $v0 +/* 0D91B0 7F0A4680 5420FFEA */ bnezl $at, .L7F0A462C +/* 0D91B4 7F0A4684 860E0004 */ lh $t6, 4($s0) +/* 0D91B8 7F0A4688 00001025 */ move $v0, $zero +.L7F0A468C: +/* 0D91BC 7F0A468C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0D91C0 7F0A4690 8FB00020 */ lw $s0, 0x20($sp) +/* 0D91C4 7F0A4694 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0D91C8 7F0A4698 03E00008 */ jr $ra +/* 0D91CC 7F0A469C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A46A0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A46A0 +/* 0D91D0 7F0A46A0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0D91D4 7F0A46A4 AFB30020 */ sw $s3, 0x20($sp) +/* 0D91D8 7F0A46A8 AFB2001C */ sw $s2, 0x1c($sp) +/* 0D91DC 7F0A46AC AFB10018 */ sw $s1, 0x18($sp) +/* 0D91E0 7F0A46B0 AFB00014 */ sw $s0, 0x14($sp) +/* 0D91E4 7F0A46B4 3C108008 */ lui $s0, %hi(dword_CODE_bss_8007A4E0) +/* 0D91E8 7F0A46B8 3C138008 */ lui $s3, %hi(dword_CODE_bss_8007B098) +/* 0D91EC 7F0A46BC 3C118005 */ lui $s1, %hi(clock_timer) +/* 0D91F0 7F0A46C0 3C128005 */ lui $s2, %hi(global_timer_delta) +/* 0D91F4 7F0A46C4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0D91F8 7F0A46C8 2673B098 */ addiu $s3, %lo(dword_CODE_bss_8007B098) # addiu $s3, $s3, -0x4f68 +/* 0D91FC 7F0A46CC 2610A4E0 */ addiu $s0, %lo(dword_CODE_bss_8007A4E0) # addiu $s0, $s0, -0x5b20 +/* 0D9200 7F0A46D0 26528378 */ addiu $s2, %lo(global_timer_delta) # addiu $s2, $s2, -0x7c88 +/* 0D9204 7F0A46D4 26318374 */ addiu $s1, %lo(clock_timer) # addiu $s1, $s1, -0x7c8c +/* 0D9208 7F0A46D8 860E0004 */ lh $t6, 4($s0) +.L7F0A46DC: +/* 0D920C 7F0A46DC 59C00018 */ blezl $t6, .L7F0A4740 +/* 0D9210 7F0A46E0 2610003C */ addiu $s0, $s0, 0x3c +/* 0D9214 7F0A46E4 8E0F0000 */ lw $t7, ($s0) +/* 0D9218 7F0A46E8 8E380000 */ lw $t8, ($s1) +/* 0D921C 7F0A46EC 01F8C821 */ addu $t9, $t7, $t8 +/* 0D9220 7F0A46F0 07200012 */ bltz $t9, .L7F0A473C +/* 0D9224 7F0A46F4 AE190000 */ sw $t9, ($s0) +/* 0D9228 7F0A46F8 86080004 */ lh $t0, 4($s0) +/* 0D922C 7F0A46FC 26040010 */ addiu $a0, $s0, 0x10 +/* 0D9230 7F0A4700 2605002C */ addiu $a1, $s0, 0x2c +/* 0D9234 7F0A4704 0328082A */ slt $at, $t9, $t0 +/* 0D9238 7F0A4708 5020000C */ beql $at, $zero, .L7F0A473C +/* 0D923C 7F0A470C A6000004 */ sh $zero, 4($s0) +/* 0D9240 7F0A4710 0FC15F62 */ jal sub_GAME_7F057D88 +/* 0D9244 7F0A4714 8E460000 */ lw $a2, ($s2) +/* 0D9248 7F0A4718 C6040014 */ lwc1 $f4, 0x14($s0) +/* 0D924C 7F0A471C C6060038 */ lwc1 $f6, 0x38($s0) +/* 0D9250 7F0A4720 4606203C */ c.lt.s $f4, $f6 +/* 0D9254 7F0A4724 00000000 */ nop +/* 0D9258 7F0A4728 45020005 */ bc1fl .L7F0A4740 +/* 0D925C 7F0A472C 2610003C */ addiu $s0, $s0, 0x3c +/* 0D9260 7F0A4730 10000002 */ b .L7F0A473C +/* 0D9264 7F0A4734 A6000004 */ sh $zero, 4($s0) +/* 0D9268 7F0A4738 A6000004 */ sh $zero, 4($s0) +.L7F0A473C: +/* 0D926C 7F0A473C 2610003C */ addiu $s0, $s0, 0x3c +.L7F0A4740: +/* 0D9270 7F0A4740 0213082B */ sltu $at, $s0, $s3 +/* 0D9274 7F0A4744 5420FFE5 */ bnezl $at, .L7F0A46DC +/* 0D9278 7F0A4748 860E0004 */ lh $t6, 4($s0) +/* 0D927C 7F0A474C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0D9280 7F0A4750 8FB00014 */ lw $s0, 0x14($sp) +/* 0D9284 7F0A4754 8FB10018 */ lw $s1, 0x18($sp) +/* 0D9288 7F0A4758 8FB2001C */ lw $s2, 0x1c($sp) +/* 0D928C 7F0A475C 8FB30020 */ lw $s3, 0x20($sp) +/* 0D9290 7F0A4760 03E00008 */ jr $ra +/* 0D9294 7F0A4764 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A4768(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A4768 +/* 0D9298 7F0A4768 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0D929C 7F0A476C AFB10018 */ sw $s1, 0x18($sp) +/* 0D92A0 7F0A4770 AFB00014 */ sw $s0, 0x14($sp) +/* 0D92A4 7F0A4774 AFB30020 */ sw $s3, 0x20($sp) +/* 0D92A8 7F0A4778 AFB2001C */ sw $s2, 0x1c($sp) +/* 0D92AC 7F0A477C 3C108008 */ lui $s0, %hi(dword_CODE_bss_8007A4E0) +/* 0D92B0 7F0A4780 3C118008 */ lui $s1, %hi(dword_CODE_bss_8007B098) +/* 0D92B4 7F0A4784 00809025 */ move $s2, $a0 +/* 0D92B8 7F0A4788 00A09825 */ move $s3, $a1 +/* 0D92BC 7F0A478C AFBF0024 */ sw $ra, 0x24($sp) +/* 0D92C0 7F0A4790 2631B098 */ addiu $s1, %lo(dword_CODE_bss_8007B098) # addiu $s1, $s1, -0x4f68 +/* 0D92C4 7F0A4794 2610A4E0 */ addiu $s0, %lo(dword_CODE_bss_8007A4E0) # addiu $s0, $s0, -0x5b20 +/* 0D92C8 7F0A4798 02002025 */ move $a0, $s0 +.L7F0A479C: +/* 0D92CC 7F0A479C 02402825 */ move $a1, $s2 +/* 0D92D0 7F0A47A0 0FC28FC1 */ jal sub_GAME_7F0A3F04 +/* 0D92D4 7F0A47A4 02603025 */ move $a2, $s3 +/* 0D92D8 7F0A47A8 2610003C */ addiu $s0, $s0, 0x3c +/* 0D92DC 7F0A47AC 0211082B */ sltu $at, $s0, $s1 +/* 0D92E0 7F0A47B0 5420FFFA */ bnezl $at, .L7F0A479C +/* 0D92E4 7F0A47B4 02002025 */ move $a0, $s0 +/* 0D92E8 7F0A47B8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0D92EC 7F0A47BC 8FB00014 */ lw $s0, 0x14($sp) +/* 0D92F0 7F0A47C0 8FB10018 */ lw $s1, 0x18($sp) +/* 0D92F4 7F0A47C4 8FB2001C */ lw $s2, 0x1c($sp) +/* 0D92F8 7F0A47C8 8FB30020 */ lw $s3, 0x20($sp) +/* 0D92FC 7F0A47CC 03E00008 */ jr $ra +/* 0D9300 7F0A47D0 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +void sub_GAME_7F0A47D4(void) { + sub_GAME_7F0A3BD8(); + sub_GAME_7F0A45D8(); +} + +void sub_GAME_7F0A47FC(void) { + sub_GAME_7F0A3EA0(); + sub_GAME_7F0A46A0(); +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A4824(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A4824 +/* 0D9354 7F0A4824 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0D9358 7F0A4828 AFBF0014 */ sw $ra, 0x14($sp) +/* 0D935C 7F0A482C AFA40018 */ sw $a0, 0x18($sp) +/* 0D9360 7F0A4830 0FC2914A */ jal sub_GAME_7F0A4528 +/* 0D9364 7F0A4834 AFA5001C */ sw $a1, 0x1c($sp) +/* 0D9368 7F0A4838 8FA40018 */ lw $a0, 0x18($sp) +/* 0D936C 7F0A483C 0FC291DA */ jal sub_GAME_7F0A4768 +/* 0D9370 7F0A4840 8FA5001C */ lw $a1, 0x1c($sp) +/* 0D9374 7F0A4844 8FBF0014 */ lw $ra, 0x14($sp) +/* 0D9378 7F0A4848 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0D937C 7F0A484C 03E00008 */ jr $ra +/* 0D9380 7F0A4850 00000000 */ nop +) +#endif + + + + diff --git a/src/game/unk_0A1DA0.h b/src/game/unk_0A1DA0.h new file mode 100644 index 0000000..c118f9d --- /dev/null +++ b/src/game/unk_0A1DA0.h @@ -0,0 +1,16 @@ +#ifndef _UNK_0A1DA0_H_ +#define _UNK_0A1DA0_H_ +#include "ultra64.h" + +extern u32 D_80040960[]; + +extern u32 D_80040980; +extern u32 D_80040984; +extern u32 D_80040988; +extern u32 D_8004098C; +extern u32 D_80040990; +extern u32 watch_screen_index; +extern u32 D_80040998; +extern u32 D_8004099C; + +#endif diff --git a/src/game/unk_0B3200.c b/src/game/unk_0B3200.c new file mode 100644 index 0000000..426bb68 --- /dev/null +++ b/src/game/unk_0B3200.c @@ -0,0 +1,476 @@ +#include "ultra64.h" + + +// rodata + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B3200(f32 *param_1,f32 *param_2,f32 *param_3,f32 *param_4) + +{ + if ((*param_2 - *param_1) * param_3[1] - param_4[1] + (param_2[1] - param_1[1]) * *param_4 - *param_3 == 0.00000000) { + return 1.00000000; + } + else { + + if ((((*param_3 - *param_1) * param_3[1] - param_4[1] + (param_3[1] - param_1[1]) * *param_4 - *param_3) / (*param_2 - *param_1) * param_3[1] - param_4[1] + (param_2[1] - param_1[1]) * *param_4 - *param_3 < 0.00000000) || (1.00000000 < ((*param_3 - *param_1) * param_3[1] - param_4[1] + (param_3[1] - param_1[1]) * *param_4 - *param_3) / (*param_2 - *param_1) * param_3[1] - param_4[1] + (param_2[1] - param_1[1]) * *param_4 - *param_3)) { + return 1.00000000; + } + } + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B3200 +/* 0E7D30 7F0B3200 C4CE0000 */ lwc1 $f14, ($a2) +/* 0E7D34 7F0B3204 C4E60000 */ lwc1 $f6, ($a3) +/* 0E7D38 7F0B3208 C4880004 */ lwc1 $f8, 4($a0) +/* 0E7D3C 7F0B320C C4C20004 */ lwc1 $f2, 4($a2) +/* 0E7D40 7F0B3210 C4E40004 */ lwc1 $f4, 4($a3) +/* 0E7D44 7F0B3214 C4920000 */ lwc1 $f18, ($a0) +/* 0E7D48 7F0B3218 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E7D4C 7F0B321C 460E3301 */ sub.s $f12, $f6, $f14 +/* 0E7D50 7F0B3220 E7A80000 */ swc1 $f8, ($sp) +/* 0E7D54 7F0B3224 C7A60000 */ lwc1 $f6, ($sp) +/* 0E7D58 7F0B3228 46041001 */ sub.s $f0, $f2, $f4 +/* 0E7D5C 7F0B322C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E7D60 7F0B3230 46127281 */ sub.s $f10, $f14, $f18 +/* 0E7D64 7F0B3234 46061201 */ sub.s $f8, $f2, $f6 +/* 0E7D68 7F0B3238 46005102 */ mul.s $f4, $f10, $f0 +/* 0E7D6C 7F0B323C 00000000 */ nop +/* 0E7D70 7F0B3240 460C4282 */ mul.s $f10, $f8, $f12 +/* 0E7D74 7F0B3244 C4A80004 */ lwc1 $f8, 4($a1) +/* 0E7D78 7F0B3248 460A2400 */ add.s $f16, $f4, $f10 +/* 0E7D7C 7F0B324C 46064101 */ sub.s $f4, $f8, $f6 +/* 0E7D80 7F0B3250 C4A80000 */ lwc1 $f8, ($a1) +/* 0E7D84 7F0B3254 46124181 */ sub.s $f6, $f8, $f18 +/* 0E7D88 7F0B3258 460C2282 */ mul.s $f10, $f4, $f12 +/* 0E7D8C 7F0B325C 00000000 */ nop +/* 0E7D90 7F0B3260 46003102 */ mul.s $f4, $f6, $f0 +/* 0E7D94 7F0B3264 44803000 */ mtc1 $zero, $f6 +/* 0E7D98 7F0B3268 460A2200 */ add.s $f8, $f4, $f10 +/* 0E7D9C 7F0B326C 46064032 */ c.eq.s $f8, $f6 +/* 0E7DA0 7F0B3270 E7A80010 */ swc1 $f8, 0x10($sp) +/* 0E7DA4 7F0B3274 C7A40010 */ lwc1 $f4, 0x10($sp) +/* 0E7DA8 7F0B3278 45000004 */ bc1f .L7F0B328C +/* 0E7DAC 7F0B327C 00000000 */ nop +/* 0E7DB0 7F0B3280 44810000 */ mtc1 $at, $f0 +/* 0E7DB4 7F0B3284 10000012 */ b .L7F0B32D0 +/* 0E7DB8 7F0B3288 00000000 */ nop +.L7F0B328C: +/* 0E7DBC 7F0B328C 46048403 */ div.s $f16, $f16, $f4 +/* 0E7DC0 7F0B3290 44805000 */ mtc1 $zero, $f10 +/* 0E7DC4 7F0B3294 3C013F80 */ lui $at, 0x3f80 +/* 0E7DC8 7F0B3298 460A803C */ c.lt.s $f16, $f10 +/* 0E7DCC 7F0B329C 00000000 */ nop +/* 0E7DD0 7F0B32A0 45030007 */ bc1tl .L7F0B32C0 +/* 0E7DD4 7F0B32A4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E7DD8 7F0B32A8 44814000 */ mtc1 $at, $f8 +/* 0E7DDC 7F0B32AC 00000000 */ nop +/* 0E7DE0 7F0B32B0 4610403C */ c.lt.s $f8, $f16 +/* 0E7DE4 7F0B32B4 00000000 */ nop +/* 0E7DE8 7F0B32B8 45000004 */ bc1f .L7F0B32CC +/* 0E7DEC 7F0B32BC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F0B32C0: +/* 0E7DF0 7F0B32C0 44810000 */ mtc1 $at, $f0 +/* 0E7DF4 7F0B32C4 10000002 */ b .L7F0B32D0 +/* 0E7DF8 7F0B32C8 00000000 */ nop +.L7F0B32CC: +/* 0E7DFC 7F0B32CC 46008006 */ mov.s $f0, $f16 +.L7F0B32D0: +/* 0E7E00 7F0B32D0 03E00008 */ jr $ra +/* 0E7E04 7F0B32D4 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0B32D8(struct xyzpoint *param_1,struct xyzpoint *param_2,struct xyzpoint *param_3) + +{ + + f32 fVar2; + float __x; + + + __x = (param_1->x - ((param_2->x) * (param_3->y - param_1->z) - (param_3->x - param_1->y) * (param_2->y))) * (param_1->x + ((param_2->x) * (param_3->y - param_1->z) - (param_3->x - param_1->y) * (param_2->y))); + if (__x < 0.00000000) + { + return 340282346638528859811704183484516925440.00000000; + } + else { + __x = sqrtf(__x); + fVar2 = (f32)(((param_2->x) * (param_3->x - param_1->y) + (param_3->y - param_1->z) * (param_2->y)) - __x); + if (fVar2 < 0.00000000) { + if (fVar2 * fVar2 + ((param_2->x) * (param_3->y - param_1->z) - (param_3->x - param_1->y) * (param_2->y)) * ((param_2->x) * (param_3->y - param_1->z) - (param_3->x - param_1->y) * (param_2->y)) <= param_1->x * param_1->x) { + fVar2 = 0.00000000; + } + else { + fVar2 = (f32)340282346638528859811704183484516925440.00000000; + } + } + } + return fVar2; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800585E0 +.word 0x7f7fffff /*3.4028235e38*/ +glabel D_800585E4 +.word 0x7f7fffff /*3.4028235e38*/ +.text +glabel sub_GAME_7F0B32D8 +/* 0E7E08 7F0B32D8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0E7E0C 7F0B32DC AFBF001C */ sw $ra, 0x1c($sp) +/* 0E7E10 7F0B32E0 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 0E7E14 7F0B32E4 C48A0008 */ lwc1 $f10, 8($a0) +/* 0E7E18 7F0B32E8 C4C80004 */ lwc1 $f8, 4($a2) +/* 0E7E1C 7F0B32EC C4860004 */ lwc1 $f6, 4($a0) +/* 0E7E20 7F0B32F0 C4C40000 */ lwc1 $f4, ($a2) +/* 0E7E24 7F0B32F4 460A4301 */ sub.s $f12, $f8, $f10 +/* 0E7E28 7F0B32F8 C4AE0000 */ lwc1 $f14, ($a1) +/* 0E7E2C 7F0B32FC C4B00004 */ lwc1 $f16, 4($a1) +/* 0E7E30 7F0B3300 46062001 */ sub.s $f0, $f4, $f6 +/* 0E7E34 7F0B3304 460C7102 */ mul.s $f4, $f14, $f12 +/* 0E7E38 7F0B3308 C4920000 */ lwc1 $f18, ($a0) +/* 0E7E3C 7F0B330C 3C018006 */ lui $at, %hi(D_800585E0) +/* 0E7E40 7F0B3310 46100182 */ mul.s $f6, $f0, $f16 +/* 0E7E44 7F0B3314 46062501 */ sub.s $f20, $f4, $f6 +/* 0E7E48 7F0B3318 46007202 */ mul.s $f8, $f14, $f0 +/* 0E7E4C 7F0B331C 00000000 */ nop +/* 0E7E50 7F0B3320 46106282 */ mul.s $f10, $f12, $f16 +/* 0E7E54 7F0B3324 46149101 */ sub.s $f4, $f18, $f20 +/* 0E7E58 7F0B3328 46149180 */ add.s $f6, $f18, $f20 +/* 0E7E5C 7F0B332C 460A4080 */ add.s $f2, $f8, $f10 +/* 0E7E60 7F0B3330 46062202 */ mul.s $f8, $f4, $f6 +/* 0E7E64 7F0B3334 44805000 */ mtc1 $zero, $f10 +/* 0E7E68 7F0B3338 00000000 */ nop +/* 0E7E6C 7F0B333C 460A403C */ c.lt.s $f8, $f10 +/* 0E7E70 7F0B3340 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0E7E74 7F0B3344 C7AC0024 */ lwc1 $f12, 0x24($sp) +/* 0E7E78 7F0B3348 45000003 */ bc1f .L7F0B3358 +/* 0E7E7C 7F0B334C 00000000 */ nop +/* 0E7E80 7F0B3350 1000001D */ b .L7F0B33C8 +/* 0E7E84 7F0B3354 C42085E0 */ lwc1 $f0, %lo(D_800585E0)($at) +.L7F0B3358: +/* 0E7E88 7F0B3358 AFA40030 */ sw $a0, 0x30($sp) +/* 0E7E8C 7F0B335C 0C007DF8 */ jal sqrtf +/* 0E7E90 7F0B3360 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 0E7E94 7F0B3364 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 0E7E98 7F0B3368 44806000 */ mtc1 $zero, $f12 +/* 0E7E9C 7F0B336C 8FA40030 */ lw $a0, 0x30($sp) +/* 0E7EA0 7F0B3370 46001081 */ sub.s $f2, $f2, $f0 +/* 0E7EA4 7F0B3374 460C103C */ c.lt.s $f2, $f12 +/* 0E7EA8 7F0B3378 00000000 */ nop +/* 0E7EAC 7F0B337C 45020012 */ bc1fl .L7F0B33C8 +/* 0E7EB0 7F0B3380 46001006 */ mov.s $f0, $f2 +/* 0E7EB4 7F0B3384 C4920000 */ lwc1 $f18, ($a0) +/* 0E7EB8 7F0B3388 3C018006 */ lui $at, %hi(D_800585E4) +/* 0E7EBC 7F0B338C 46129102 */ mul.s $f4, $f18, $f18 +/* 0E7EC0 7F0B3390 00000000 */ nop +/* 0E7EC4 7F0B3394 46021182 */ mul.s $f6, $f2, $f2 +/* 0E7EC8 7F0B3398 00000000 */ nop +/* 0E7ECC 7F0B339C 4614A202 */ mul.s $f8, $f20, $f20 +/* 0E7ED0 7F0B33A0 46083280 */ add.s $f10, $f6, $f8 +/* 0E7ED4 7F0B33A4 4604503E */ c.le.s $f10, $f4 +/* 0E7ED8 7F0B33A8 00000000 */ nop +/* 0E7EDC 7F0B33AC 45000003 */ bc1f .L7F0B33BC +/* 0E7EE0 7F0B33B0 00000000 */ nop +/* 0E7EE4 7F0B33B4 10000004 */ b .L7F0B33C8 +/* 0E7EE8 7F0B33B8 46006006 */ mov.s $f0, $f12 +.L7F0B33BC: +/* 0E7EEC 7F0B33BC 10000002 */ b .L7F0B33C8 +/* 0E7EF0 7F0B33C0 C42085E4 */ lwc1 $f0, %lo(D_800585E4)($at) +/* 0E7EF4 7F0B33C4 46001006 */ mov.s $f0, $f2 +.L7F0B33C8: +/* 0E7EF8 7F0B33C8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0E7EFC 7F0B33CC D7B40010 */ ldc1 $f20, 0x10($sp) +/* 0E7F00 7F0B33D0 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0E7F04 7F0B33D4 03E00008 */ jr $ra +/* 0E7F08 7F0B33D8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0B33DC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0B33DC +/* 0E7F0C 7F0B33DC 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 0E7F10 7F0B33E0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0E7F14 7F0B33E4 AFB00018 */ sw $s0, 0x18($sp) +/* 0E7F18 7F0B33E8 AFA600B8 */ sw $a2, 0xb8($sp) +/* 0E7F1C 7F0B33EC C4E00000 */ lwc1 $f0, ($a3) +/* 0E7F20 7F0B33F0 C4E20004 */ lwc1 $f2, 4($a3) +/* 0E7F24 7F0B33F4 00A08025 */ move $s0, $a1 +/* 0E7F28 7F0B33F8 46000102 */ mul.s $f4, $f0, $f0 +/* 0E7F2C 7F0B33FC AFA700BC */ sw $a3, 0xbc($sp) +/* 0E7F30 7F0B3400 AFA400B0 */ sw $a0, 0xb0($sp) +/* 0E7F34 7F0B3404 46021282 */ mul.s $f10, $f2, $f2 +/* 0E7F38 7F0B3408 0C007DF8 */ jal sqrtf +/* 0E7F3C 7F0B340C 460A2300 */ add.s $f12, $f4, $f10 +/* 0E7F40 7F0B3410 44803000 */ mtc1 $zero, $f6 +/* 0E7F44 7F0B3414 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0E7F48 7F0B3418 8FA700BC */ lw $a3, 0xbc($sp) +/* 0E7F4C 7F0B341C 46060032 */ c.eq.s $f0, $f6 +/* 0E7F50 7F0B3420 46000386 */ mov.s $f14, $f0 +/* 0E7F54 7F0B3424 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E7F58 7F0B3428 45020006 */ bc1fl .L7F0B3444 +/* 0E7F5C 7F0B342C 44814000 */ mtc1 $at, $f8 +/* 0E7F60 7F0B3430 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E7F64 7F0B3434 44810000 */ mtc1 $at, $f0 +/* 0E7F68 7F0B3438 100000DC */ b .L7F0B37AC +/* 0E7F6C 7F0B343C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0E7F70 7F0B3440 44814000 */ mtc1 $at, $f8 +.L7F0B3444: +/* 0E7F74 7F0B3444 C4E40000 */ lwc1 $f4, ($a3) +/* 0E7F78 7F0B3448 8FA200B8 */ lw $v0, 0xb8($sp) +/* 0E7F7C 7F0B344C 460E4403 */ div.s $f16, $f8, $f14 +/* 0E7F80 7F0B3450 46102282 */ mul.s $f10, $f4, $f16 +/* 0E7F84 7F0B3454 E7AA00A0 */ swc1 $f10, 0xa0($sp) +/* 0E7F88 7F0B3458 C4E60004 */ lwc1 $f6, 4($a3) +/* 0E7F8C 7F0B345C 46103202 */ mul.s $f8, $f6, $f16 +/* 0E7F90 7F0B3460 E7A800A4 */ swc1 $f8, 0xa4($sp) +/* 0E7F94 7F0B3464 C60A0000 */ lwc1 $f10, ($s0) +/* 0E7F98 7F0B3468 C4440000 */ lwc1 $f4, ($v0) +/* 0E7F9C 7F0B346C C6080004 */ lwc1 $f8, 4($s0) +/* 0E7FA0 7F0B3470 C4460004 */ lwc1 $f6, 4($v0) +/* 0E7FA4 7F0B3474 460A2001 */ sub.s $f0, $f4, $f10 +/* 0E7FA8 7F0B3478 E7B00044 */ swc1 $f16, 0x44($sp) +/* 0E7FAC 7F0B347C E7AE00AC */ swc1 $f14, 0xac($sp) +/* 0E7FB0 7F0B3480 46083081 */ sub.s $f2, $f6, $f8 +/* 0E7FB4 7F0B3484 46000102 */ mul.s $f4, $f0, $f0 +/* 0E7FB8 7F0B3488 E7A00098 */ swc1 $f0, 0x98($sp) +/* 0E7FBC 7F0B348C AFA700BC */ sw $a3, 0xbc($sp) +/* 0E7FC0 7F0B3490 46021282 */ mul.s $f10, $f2, $f2 +/* 0E7FC4 7F0B3494 E7A2009C */ swc1 $f2, 0x9c($sp) +/* 0E7FC8 7F0B3498 AFA400B0 */ sw $a0, 0xb0($sp) +/* 0E7FCC 7F0B349C 0C007DF8 */ jal sqrtf +/* 0E7FD0 7F0B34A0 460A2300 */ add.s $f12, $f4, $f10 +/* 0E7FD4 7F0B34A4 44803000 */ mtc1 $zero, $f6 +/* 0E7FD8 7F0B34A8 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0E7FDC 7F0B34AC 8FA700BC */ lw $a3, 0xbc($sp) +/* 0E7FE0 7F0B34B0 46060032 */ c.eq.s $f0, $f6 +/* 0E7FE4 7F0B34B4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E7FE8 7F0B34B8 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 0E7FEC 7F0B34BC 45010077 */ bc1t .L7F0B369C +/* 0E7FF0 7F0B34C0 00000000 */ nop +/* 0E7FF4 7F0B34C4 44814000 */ mtc1 $at, $f8 +/* 0E7FF8 7F0B34C8 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 0E7FFC 7F0B34CC C7A60098 */ lwc1 $f6, 0x98($sp) +/* 0E8000 7F0B34D0 46004483 */ div.s $f18, $f8, $f0 +/* 0E8004 7F0B34D4 02001025 */ move $v0, $s0 +/* 0E8008 7F0B34D8 46003207 */ neg.s $f8, $f6 +/* 0E800C 7F0B34DC 46122282 */ mul.s $f10, $f4, $f18 +/* 0E8010 7F0B34E0 00000000 */ nop +/* 0E8014 7F0B34E4 46124102 */ mul.s $f4, $f8, $f18 +/* 0E8018 7F0B34E8 E7AA002C */ swc1 $f10, 0x2c($sp) +/* 0E801C 7F0B34EC E7AA0088 */ swc1 $f10, 0x88($sp) +/* 0E8020 7F0B34F0 E7A40028 */ swc1 $f4, 0x28($sp) +/* 0E8024 7F0B34F4 E7A4008C */ swc1 $f4, 0x8c($sp) +/* 0E8028 7F0B34F8 C4860000 */ lwc1 $f6, ($a0) +/* 0E802C 7F0B34FC E7A60038 */ swc1 $f6, 0x38($sp) +/* 0E8030 7F0B3500 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0E8034 7F0B3504 C4860004 */ lwc1 $f6, 4($a0) +/* 0E8038 7F0B3508 460A4382 */ mul.s $f14, $f8, $f10 +/* 0E803C 7F0B350C E7A60034 */ swc1 $f6, 0x34($sp) +/* 0E8040 7F0B3510 C48A0008 */ lwc1 $f10, 8($a0) +/* 0E8044 7F0B3514 46044402 */ mul.s $f16, $f8, $f4 +/* 0E8048 7F0B3518 C6020000 */ lwc1 $f2, ($s0) +/* 0E804C 7F0B351C C7A80034 */ lwc1 $f8, 0x34($sp) +/* 0E8050 7F0B3520 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 0E8054 7F0B3524 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 0E8058 7F0B3528 46024101 */ sub.s $f4, $f8, $f2 +/* 0E805C 7F0B352C C60C0004 */ lwc1 $f12, 4($s0) +/* 0E8060 7F0B3530 460C5201 */ sub.s $f8, $f10, $f12 +/* 0E8064 7F0B3534 460E2182 */ mul.s $f6, $f4, $f14 +/* 0E8068 7F0B3538 00000000 */ nop +/* 0E806C 7F0B353C 46088102 */ mul.s $f4, $f16, $f8 +/* 0E8070 7F0B3540 44804000 */ mtc1 $zero, $f8 +/* 0E8074 7F0B3544 46043280 */ add.s $f10, $f6, $f4 +/* 0E8078 7F0B3548 4608503C */ c.lt.s $f10, $f8 +/* 0E807C 7F0B354C 00000000 */ nop +/* 0E8080 7F0B3550 45000003 */ bc1f .L7F0B3560 +/* 0E8084 7F0B3554 00000000 */ nop +/* 0E8088 7F0B3558 46007387 */ neg.s $f14, $f14 +/* 0E808C 7F0B355C 46008407 */ neg.s $f16, $f16 +.L7F0B3560: +/* 0E8090 7F0B3560 460E1180 */ add.s $f6, $f2, $f14 +/* 0E8094 7F0B3564 8FA300B8 */ lw $v1, 0xb8($sp) +/* 0E8098 7F0B3568 46106100 */ add.s $f4, $f12, $f16 +/* 0E809C 7F0B356C E7A60078 */ swc1 $f6, 0x78($sp) +/* 0E80A0 7F0B3570 E7A4007C */ swc1 $f4, 0x7c($sp) +/* 0E80A4 7F0B3574 C46A0000 */ lwc1 $f10, ($v1) +/* 0E80A8 7F0B3578 460E5200 */ add.s $f8, $f10, $f14 +/* 0E80AC 7F0B357C E7A80070 */ swc1 $f8, 0x70($sp) +/* 0E80B0 7F0B3580 C4660004 */ lwc1 $f6, 4($v1) +/* 0E80B4 7F0B3584 46103100 */ add.s $f4, $f6, $f16 +/* 0E80B8 7F0B3588 C7B0002C */ lwc1 $f16, 0x2c($sp) +/* 0E80BC 7F0B358C E7A40074 */ swc1 $f4, 0x74($sp) +/* 0E80C0 7F0B3590 C4EA0004 */ lwc1 $f10, 4($a3) +/* 0E80C4 7F0B3594 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 0E80C8 7F0B3598 E7AA0048 */ swc1 $f10, 0x48($sp) +/* 0E80CC 7F0B359C C4E80000 */ lwc1 $f8, ($a3) +/* 0E80D0 7F0B35A0 C7A60048 */ lwc1 $f6, 0x48($sp) +/* 0E80D4 7F0B35A4 E7A8004C */ swc1 $f8, 0x4c($sp) +/* 0E80D8 7F0B35A8 46043282 */ mul.s $f10, $f6, $f4 +/* 0E80DC 7F0B35AC C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 0E80E0 7F0B35B0 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 0E80E4 7F0B35B4 E7A40020 */ swc1 $f4, 0x20($sp) +/* 0E80E8 7F0B35B8 46044202 */ mul.s $f8, $f8, $f4 +/* 0E80EC 7F0B35BC C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0E80F0 7F0B35C0 46085281 */ sub.s $f10, $f10, $f8 +/* 0E80F4 7F0B35C4 C7A80034 */ lwc1 $f8, 0x34($sp) +/* 0E80F8 7F0B35C8 E7AA0068 */ swc1 $f10, 0x68($sp) +/* 0E80FC 7F0B35CC E7AA0024 */ swc1 $f10, 0x24($sp) +/* 0E8100 7F0B35D0 46064202 */ mul.s $f8, $f8, $f6 +/* 0E8104 7F0B35D4 C7AA0020 */ lwc1 $f10, 0x20($sp) +/* 0E8108 7F0B35D8 460A2102 */ mul.s $f4, $f4, $f10 +/* 0E810C 7F0B35DC 46044381 */ sub.s $f14, $f8, $f4 +/* 0E8110 7F0B35E0 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 0E8114 7F0B35E4 46043182 */ mul.s $f6, $f6, $f4 +/* 0E8118 7F0B35E8 C7A40074 */ lwc1 $f4, 0x74($sp) +/* 0E811C 7F0B35EC E7AE006C */ swc1 $f14, 0x6c($sp) +/* 0E8120 7F0B35F0 460A2102 */ mul.s $f4, $f4, $f10 +/* 0E8124 7F0B35F4 C7AA0024 */ lwc1 $f10, 0x24($sp) +/* 0E8128 7F0B35F8 46005306 */ mov.s $f12, $f10 +/* 0E812C 7F0B35FC 46043481 */ sub.s $f18, $f6, $f4 +/* 0E8130 7F0B3600 C7A60028 */ lwc1 $f6, 0x28($sp) +/* 0E8134 7F0B3604 460A903C */ c.lt.s $f18, $f10 +/* 0E8138 7F0B3608 00000000 */ nop +/* 0E813C 7F0B360C 4502000A */ bc1fl .L7F0B3638 +/* 0E8140 7F0B3610 460C9032 */ c.eq.s $f18, $f12 +/* 0E8144 7F0B3614 46008407 */ neg.s $f16, $f16 +/* 0E8148 7F0B3618 46003107 */ neg.s $f4, $f6 +/* 0E814C 7F0B361C 46009306 */ mov.s $f12, $f18 +/* 0E8150 7F0B3620 00608025 */ move $s0, $v1 +/* 0E8154 7F0B3624 46005486 */ mov.s $f18, $f10 +/* 0E8158 7F0B3628 00401825 */ move $v1, $v0 +/* 0E815C 7F0B362C E7A4008C */ swc1 $f4, 0x8c($sp) +/* 0E8160 7F0B3630 E7B00088 */ swc1 $f16, 0x88($sp) +/* 0E8164 7F0B3634 460C9032 */ c.eq.s $f18, $f12 +.L7F0B3638: +/* 0E8168 7F0B3638 C7B00088 */ lwc1 $f16, 0x88($sp) +/* 0E816C 7F0B363C 02003025 */ move $a2, $s0 +/* 0E8170 7F0B3640 45020012 */ bc1fl .L7F0B368C +/* 0E8174 7F0B3644 460E903C */ c.lt.s $f18, $f14 +/* 0E8178 7F0B3648 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 0E817C 7F0B364C AFA300B8 */ sw $v1, 0xb8($sp) +/* 0E8180 7F0B3650 0FC2CCB6 */ jal sub_GAME_7F0B32D8 +/* 0E8184 7F0B3654 AFA400B0 */ sw $a0, 0xb0($sp) +/* 0E8188 7F0B3658 8FA400B0 */ lw $a0, 0xb0($sp) +/* 0E818C 7F0B365C 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 0E8190 7F0B3660 8FA600B8 */ lw $a2, 0xb8($sp) +/* 0E8194 7F0B3664 0FC2CCB6 */ jal sub_GAME_7F0B32D8 +/* 0E8198 7F0B3668 E7A00060 */ swc1 $f0, 0x60($sp) +/* 0E819C 7F0B366C C7A20060 */ lwc1 $f2, 0x60($sp) +/* 0E81A0 7F0B3670 4602003C */ c.lt.s $f0, $f2 +/* 0E81A4 7F0B3674 00000000 */ nop +/* 0E81A8 7F0B3678 45020038 */ bc1fl .L7F0B375C +/* 0E81AC 7F0B367C C7A800AC */ lwc1 $f8, 0xac($sp) +/* 0E81B0 7F0B3680 10000035 */ b .L7F0B3758 +/* 0E81B4 7F0B3684 46000086 */ mov.s $f2, $f0 +/* 0E81B8 7F0B3688 460E903C */ c.lt.s $f18, $f14 +.L7F0B368C: +/* 0E81BC 7F0B368C 00000000 */ nop +/* 0E81C0 7F0B3690 45020007 */ bc1fl .L7F0B36B0 +/* 0E81C4 7F0B3694 460C703C */ c.lt.s $f14, $f12 +/* 0E81C8 7F0B3698 AFA300B8 */ sw $v1, 0xb8($sp) +.L7F0B369C: +/* 0E81CC 7F0B369C 0FC2CCB6 */ jal sub_GAME_7F0B32D8 +/* 0E81D0 7F0B36A0 8FA600B8 */ lw $a2, 0xb8($sp) +/* 0E81D4 7F0B36A4 1000002C */ b .L7F0B3758 +/* 0E81D8 7F0B36A8 46000086 */ mov.s $f2, $f0 +/* 0E81DC 7F0B36AC 460C703C */ c.lt.s $f14, $f12 +.L7F0B36B0: +/* 0E81E0 7F0B36B0 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 0E81E4 7F0B36B4 C7A80030 */ lwc1 $f8, 0x30($sp) +/* 0E81E8 7F0B36B8 45020006 */ bc1fl .L7F0B36D4 +/* 0E81EC 7F0B36BC C60C0004 */ lwc1 $f12, 4($s0) +/* 0E81F0 7F0B36C0 0FC2CCB6 */ jal sub_GAME_7F0B32D8 +/* 0E81F4 7F0B36C4 02003025 */ move $a2, $s0 +/* 0E81F8 7F0B36C8 10000023 */ b .L7F0B3758 +/* 0E81FC 7F0B36CC 46000086 */ mov.s $f2, $f0 +/* 0E8200 7F0B36D0 C60C0004 */ lwc1 $f12, 4($s0) +.L7F0B36D4: +/* 0E8204 7F0B36D4 C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0E8208 7F0B36D8 C6020000 */ lwc1 $f2, ($s0) +/* 0E820C 7F0B36DC 460C4181 */ sub.s $f6, $f8, $f12 +/* 0E8210 7F0B36E0 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 0E8214 7F0B36E4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E8218 7F0B36E8 46065102 */ mul.s $f4, $f10, $f6 +/* 0E821C 7F0B36EC C7A60034 */ lwc1 $f6, 0x34($sp) +/* 0E8220 7F0B36F0 46023281 */ sub.s $f10, $f6, $f2 +/* 0E8224 7F0B36F4 46105282 */ mul.s $f10, $f10, $f16 +/* 0E8228 7F0B36F8 46045000 */ add.s $f0, $f10, $f4 +/* 0E822C 7F0B36FC C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0E8230 7F0B3700 460A3100 */ add.s $f4, $f6, $f10 +/* 0E8234 7F0B3704 46022181 */ sub.s $f6, $f4, $f2 +/* 0E8238 7F0B3708 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 0E823C 7F0B370C 46103282 */ mul.s $f10, $f6, $f16 +/* 0E8240 7F0B3710 46044180 */ add.s $f6, $f8, $f4 +/* 0E8244 7F0B3714 C7A40024 */ lwc1 $f4, 0x24($sp) +/* 0E8248 7F0B3718 460C3201 */ sub.s $f8, $f6, $f12 +/* 0E824C 7F0B371C 46082182 */ mul.s $f6, $f4, $f8 +/* 0E8250 7F0B3720 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 0E8254 7F0B3724 46065380 */ add.s $f14, $f10, $f6 +/* 0E8258 7F0B3728 460E0032 */ c.eq.s $f0, $f14 +/* 0E825C 7F0B372C 00000000 */ nop +/* 0E8260 7F0B3730 45020005 */ bc1fl .L7F0B3748 +/* 0E8264 7F0B3734 46040201 */ sub.s $f8, $f0, $f4 +/* 0E8268 7F0B3738 44810000 */ mtc1 $at, $f0 +/* 0E826C 7F0B373C 1000001B */ b .L7F0B37AC +/* 0E8270 7F0B3740 8FBF001C */ lw $ra, 0x1c($sp) +/* 0E8274 7F0B3744 46040201 */ sub.s $f8, $f0, $f4 +.L7F0B3748: +/* 0E8278 7F0B3748 C7AA00AC */ lwc1 $f10, 0xac($sp) +/* 0E827C 7F0B374C 460E0101 */ sub.s $f4, $f0, $f14 +/* 0E8280 7F0B3750 460A4182 */ mul.s $f6, $f8, $f10 +/* 0E8284 7F0B3754 46043083 */ div.s $f2, $f6, $f4 +.L7F0B3758: +/* 0E8288 7F0B3758 C7A800AC */ lwc1 $f8, 0xac($sp) +.L7F0B375C: +/* 0E828C 7F0B375C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E8290 7F0B3760 4602403C */ c.lt.s $f8, $f2 +/* 0E8294 7F0B3764 00000000 */ nop +/* 0E8298 7F0B3768 45020005 */ bc1fl .L7F0B3780 +/* 0E829C 7F0B376C 44805000 */ mtc1 $zero, $f10 +/* 0E82A0 7F0B3770 44810000 */ mtc1 $at, $f0 +/* 0E82A4 7F0B3774 1000000D */ b .L7F0B37AC +/* 0E82A8 7F0B3778 8FBF001C */ lw $ra, 0x1c($sp) +/* 0E82AC 7F0B377C 44805000 */ mtc1 $zero, $f10 +.L7F0B3780: +/* 0E82B0 7F0B3780 C7A60044 */ lwc1 $f6, 0x44($sp) +/* 0E82B4 7F0B3784 460A103C */ c.lt.s $f2, $f10 +/* 0E82B8 7F0B3788 00000000 */ nop +/* 0E82BC 7F0B378C 45000004 */ bc1f .L7F0B37A0 +/* 0E82C0 7F0B3790 00000000 */ nop +/* 0E82C4 7F0B3794 44800000 */ mtc1 $zero, $f0 +/* 0E82C8 7F0B3798 10000004 */ b .L7F0B37AC +/* 0E82CC 7F0B379C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0B37A0: +/* 0E82D0 7F0B37A0 46061002 */ mul.s $f0, $f2, $f6 +/* 0E82D4 7F0B37A4 00000000 */ nop +/* 0E82D8 7F0B37A8 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0B37AC: +/* 0E82DC 7F0B37AC 8FB00018 */ lw $s0, 0x18($sp) +/* 0E82E0 7F0B37B0 27BD00B0 */ addiu $sp, $sp, 0xb0 +/* 0E82E4 7F0B37B4 03E00008 */ jr $ra +/* 0E82E8 7F0B37B8 00000000 */ nop +) +#endif + + diff --git a/src/game/unk_0BC530.c b/src/game/unk_0BC530.c new file mode 100644 index 0000000..d346af3 --- /dev/null +++ b/src/game/unk_0BC530.c @@ -0,0 +1,540 @@ +#include "ultra64.h" +#include "game/unk_093880.h" + +// bss +char dword_CODE_bss_80083320[0x130]; +char dword_CODE_bss_80083450[0x4B0]; +char dword_CODE_bss_80083900[0x4B0]; +char dword_CODE_bss_80083DB0[0x4B00]; + + + +#ifdef NONMATCHING +void sub_GAME_7F0BC530(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BC530 +/* 0F1060 7F0BC530 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0F1064 7F0BC534 AFBF0024 */ sw $ra, 0x24($sp) +/* 0F1068 7F0BC538 AFB00018 */ sw $s0, 0x18($sp) +/* 0F106C 7F0BC53C AFB20020 */ sw $s2, 0x20($sp) +/* 0F1070 7F0BC540 AFB1001C */ sw $s1, 0x1c($sp) +/* 0F1074 7F0BC544 0FC26919 */ jal get_num_players +/* 0F1078 7F0BC548 00008025 */ move $s0, $zero +/* 0F107C 7F0BC54C 1840000D */ blez $v0, .L7F0BC584 +/* 0F1080 7F0BC550 00107080 */ sll $t6, $s0, 2 +/* 0F1084 7F0BC554 3C0F8008 */ lui $t7, %hi(ptr_BONDdata_p1) +/* 0F1088 7F0BC558 25EF9EE0 */ addiu $t7, %lo(ptr_BONDdata_p1) # addiu $t7, $t7, -0x6120 +/* 0F108C 7F0BC55C 01CF8821 */ addu $s1, $t6, $t7 +/* 0F1090 7F0BC560 2412FFFF */ li $s2, -1 +/* 0F1094 7F0BC564 8E380000 */ lw $t8, ($s1) +.L7F0BC568: +/* 0F1098 7F0BC568 26100001 */ addiu $s0, $s0, 1 +/* 0F109C 7F0BC56C 26310004 */ addiu $s1, $s1, 4 +/* 0F10A0 7F0BC570 0FC26919 */ jal get_num_players +/* 0F10A4 7F0BC574 AF12108C */ sw $s2, 0x108c($t8) +/* 0F10A8 7F0BC578 0202082A */ slt $at, $s0, $v0 +/* 0F10AC 7F0BC57C 5420FFFA */ bnezl $at, .L7F0BC568 +/* 0F10B0 7F0BC580 8E380000 */ lw $t8, ($s1) +.L7F0BC584: +/* 0F10B4 7F0BC584 3C038008 */ lui $v1, %hi(dword_CODE_bss_80083450) +/* 0F10B8 7F0BC588 3C048008 */ lui $a0, %hi(dword_CODE_bss_80083320) +/* 0F10BC 7F0BC58C 3C028008 */ lui $v0, %hi(dword_CODE_bss_80083900) +/* 0F10C0 7F0BC590 3C068008 */ lui $a2, %hi(dword_CODE_bss_80083DB0) +/* 0F10C4 7F0BC594 2412FFFF */ li $s2, -1 +/* 0F10C8 7F0BC598 24C63DB0 */ addiu $a2, %lo(dword_CODE_bss_80083DB0) # addiu $a2, $a2, 0x3db0 +/* 0F10CC 7F0BC59C 24423900 */ addiu $v0, %lo(dword_CODE_bss_80083900) # addiu $v0, $v0, 0x3900 +/* 0F10D0 7F0BC5A0 24843320 */ addiu $a0, %lo(dword_CODE_bss_80083320) # addiu $a0, $a0, 0x3320 +/* 0F10D4 7F0BC5A4 24633450 */ addiu $v1, %lo(dword_CODE_bss_80083450) # addiu $v1, $v1, 0x3450 +/* 0F10D8 7F0BC5A8 24050002 */ li $a1, 2 +.L7F0BC5AC: +/* 0F10DC 7F0BC5AC 24420004 */ addiu $v0, $v0, 4 +/* 0F10E0 7F0BC5B0 0046082B */ sltu $at, $v0, $a2 +/* 0F10E4 7F0BC5B4 24630004 */ addiu $v1, $v1, 4 +/* 0F10E8 7F0BC5B8 24840001 */ addiu $a0, $a0, 1 +/* 0F10EC 7F0BC5BC AC72FFFC */ sw $s2, -4($v1) +/* 0F10F0 7F0BC5C0 A085FFFF */ sb $a1, -1($a0) +/* 0F10F4 7F0BC5C4 1420FFF9 */ bnez $at, .L7F0BC5AC +/* 0F10F8 7F0BC5C8 AC52FFFC */ sw $s2, -4($v0) +/* 0F10FC 7F0BC5CC 0FC2D791 */ jal getMaxNumRooms +/* 0F1100 7F0BC5D0 00008025 */ move $s0, $zero +/* 0F1104 7F0BC5D4 1840000D */ blez $v0, .L7F0BC60C +/* 0F1108 7F0BC5D8 0010C880 */ sll $t9, $s0, 2 +/* 0F110C 7F0BC5DC 0330C821 */ addu $t9, $t9, $s0 +/* 0F1110 7F0BC5E0 3C088004 */ lui $t0, %hi(array_room_info) +/* 0F1114 7F0BC5E4 25081414 */ addiu $t0, %lo(array_room_info) # addiu $t0, $t0, 0x1414 +/* 0F1118 7F0BC5E8 0019C900 */ sll $t9, $t9, 4 +/* 0F111C 7F0BC5EC 03288821 */ addu $s1, $t9, $t0 +/* 0F1120 7F0BC5F0 26100001 */ addiu $s0, $s0, 1 +.L7F0BC5F4: +/* 0F1124 7F0BC5F4 26310050 */ addiu $s1, $s1, 0x50 +/* 0F1128 7F0BC5F8 0FC2D791 */ jal getMaxNumRooms +/* 0F112C 7F0BC5FC A632FFE6 */ sh $s2, -0x1a($s1) +/* 0F1130 7F0BC600 0202082A */ slt $at, $s0, $v0 +/* 0F1134 7F0BC604 5420FFFB */ bnezl $at, .L7F0BC5F4 +/* 0F1138 7F0BC608 26100001 */ addiu $s0, $s0, 1 +.L7F0BC60C: +/* 0F113C 7F0BC60C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0F1140 7F0BC610 8FB00018 */ lw $s0, 0x18($sp) +/* 0F1144 7F0BC614 8FB1001C */ lw $s1, 0x1c($sp) +/* 0F1148 7F0BC618 8FB20020 */ lw $s2, 0x20($sp) +/* 0F114C 7F0BC61C 03E00008 */ jr $ra +/* 0F1150 7F0BC620 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + + +void sub_GAME_7F0BC624(s32 param_1) { + pPlayer->field_108C = param_1; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BC634(s16 param_1,int param_2) +{ + roominformationblock[param_2].field_36 = param_1; + (&dword_CODE_bss_80083450)[param_1] = param_2; + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BC634 +/* 0F1164 7F0BC634 00057080 */ sll $t6, $a1, 2 +/* 0F1168 7F0BC638 01C57021 */ addu $t6, $t6, $a1 +/* 0F116C 7F0BC63C 000E7100 */ sll $t6, $t6, 4 +/* 0F1170 7F0BC640 3C018004 */ lui $at, %hi(array_room_info + 0x10 +38) +/* 0F1174 7F0BC644 002E0821 */ addu $at, $at, $t6 +/* 0F1178 7F0BC648 A424144A */ sh $a0, %lo(array_room_info + 0x10 +38)($at) +/* 0F117C 7F0BC64C 3C018008 */ lui $at, %hi(dword_CODE_bss_80083450) +/* 0F1180 7F0BC650 00047880 */ sll $t7, $a0, 2 +/* 0F1184 7F0BC654 002F0821 */ addu $at, $at, $t7 +/* 0F1188 7F0BC658 03E00008 */ jr $ra +/* 0F118C 7F0BC65C AC253450 */ sw $a1, %lo(dword_CODE_bss_80083450)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BC660(int param_1,int param_2) +{ + roominformationblock[param_2].field_36 = -1; + (&dword_CODE_bss_80083450)[param_1] = 0xffffffff; + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BC660 +/* 0F1190 7F0BC660 00057080 */ sll $t6, $a1, 2 +/* 0F1194 7F0BC664 01C57021 */ addu $t6, $t6, $a1 +/* 0F1198 7F0BC668 000E7100 */ sll $t6, $t6, 4 +/* 0F119C 7F0BC66C 3C018004 */ lui $at, %hi(array_room_info + 0x10 +38) +/* 0F11A0 7F0BC670 2402FFFF */ li $v0, -1 +/* 0F11A4 7F0BC674 002E0821 */ addu $at, $at, $t6 +/* 0F11A8 7F0BC678 A422144A */ sh $v0, %lo(array_room_info + 0x10 +38)($at) +/* 0F11AC 7F0BC67C 3C018008 */ lui $at, %hi(dword_CODE_bss_80083450) +/* 0F11B0 7F0BC680 00047880 */ sll $t7, $a0, 2 +/* 0F11B4 7F0BC684 002F0821 */ addu $at, $at, $t7 +/* 0F11B8 7F0BC688 03E00008 */ jr $ra +/* 0F11BC 7F0BC68C AC223450 */ sw $v0, %lo(dword_CODE_bss_80083450)($at) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BC690(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BC690 +/* 0F11C0 7F0BC690 00041080 */ sll $v0, $a0, 2 +/* 0F11C4 7F0BC694 3C058008 */ lui $a1, %hi(dword_CODE_bss_80083450) +/* 0F11C8 7F0BC698 00A22821 */ addu $a1, $a1, $v0 +/* 0F11CC 7F0BC69C 8CA53450 */ lw $a1, %lo(dword_CODE_bss_80083450)($a1) +/* 0F11D0 7F0BC6A0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0F11D4 7F0BC6A4 2401FFFF */ li $at, -1 +/* 0F11D8 7F0BC6A8 10A10006 */ beq $a1, $at, .L7F0BC6C4 +/* 0F11DC 7F0BC6AC AFBF0014 */ sw $ra, 0x14($sp) +/* 0F11E0 7F0BC6B0 AFA2001C */ sw $v0, 0x1c($sp) +/* 0F11E4 7F0BC6B4 0FC2F198 */ jal sub_GAME_7F0BC660 +/* 0F11E8 7F0BC6B8 AFA40020 */ sw $a0, 0x20($sp) +/* 0F11EC 7F0BC6BC 8FA2001C */ lw $v0, 0x1c($sp) +/* 0F11F0 7F0BC6C0 8FA40020 */ lw $a0, 0x20($sp) +.L7F0BC6C4: +/* 0F11F4 7F0BC6C4 3C018008 */ lui $at, %hi(dword_CODE_bss_80083320) +/* 0F11F8 7F0BC6C8 00240821 */ addu $at, $at, $a0 +/* 0F11FC 7F0BC6CC 240E0002 */ li $t6, 2 +/* 0F1200 7F0BC6D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F1204 7F0BC6D4 A02E3320 */ sb $t6, %lo(dword_CODE_bss_80083320)($at) +/* 0F1208 7F0BC6D8 3C018008 */ lui $at, %hi(dword_CODE_bss_80083900) +/* 0F120C 7F0BC6DC 00220821 */ addu $at, $at, $v0 +/* 0F1210 7F0BC6E0 240FFFFF */ li $t7, -1 +/* 0F1214 7F0BC6E4 AC2F3900 */ sw $t7, %lo(dword_CODE_bss_80083900)($at) +/* 0F1218 7F0BC6E8 03E00008 */ jr $ra +/* 0F121C 7F0BC6EC 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BC6F0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BC6F0 +/* 0F1220 7F0BC6F0 3C028008 */ lui $v0, %hi(dword_CODE_bss_80083320) +/* 0F1224 7F0BC6F4 3C058008 */ lui $a1, %hi(dword_CODE_bss_80083900) +/* 0F1228 7F0BC6F8 24A53900 */ addiu $a1, %lo(dword_CODE_bss_80083900) # addiu $a1, $a1, 0x3900 +/* 0F122C 7F0BC6FC 24423320 */ addiu $v0, %lo(dword_CODE_bss_80083320) # addiu $v0, $v0, 0x3320 +/* 0F1230 7F0BC700 00001825 */ move $v1, $zero +/* 0F1234 7F0BC704 2406012C */ li $a2, 300 +/* 0F1238 7F0BC708 2404FFFF */ li $a0, -1 +.L7F0BC70C: +/* 0F123C 7F0BC70C 904E0000 */ lbu $t6, ($v0) +/* 0F1240 7F0BC710 00037880 */ sll $t7, $v1, 2 +/* 0F1244 7F0BC714 00AFC021 */ addu $t8, $a1, $t7 +/* 0F1248 7F0BC718 29C10002 */ slti $at, $t6, 2 +/* 0F124C 7F0BC71C 54200007 */ bnezl $at, .L7F0BC73C +/* 0F1250 7F0BC720 90480001 */ lbu $t0, 1($v0) +/* 0F1254 7F0BC724 8F190000 */ lw $t9, ($t8) +/* 0F1258 7F0BC728 54990004 */ bnel $a0, $t9, .L7F0BC73C +/* 0F125C 7F0BC72C 90480001 */ lbu $t0, 1($v0) +/* 0F1260 7F0BC730 03E00008 */ jr $ra +/* 0F1264 7F0BC734 00601025 */ move $v0, $v1 + +/* 0F1268 7F0BC738 90480001 */ lbu $t0, 1($v0) +.L7F0BC73C: +/* 0F126C 7F0BC73C 00034880 */ sll $t1, $v1, 2 +/* 0F1270 7F0BC740 00A95021 */ addu $t2, $a1, $t1 +/* 0F1274 7F0BC744 29010002 */ slti $at, $t0, 2 +/* 0F1278 7F0BC748 54200007 */ bnezl $at, .L7F0BC768 +/* 0F127C 7F0BC74C 904C0002 */ lbu $t4, 2($v0) +/* 0F1280 7F0BC750 8D4B0004 */ lw $t3, 4($t2) +/* 0F1284 7F0BC754 548B0004 */ bnel $a0, $t3, .L7F0BC768 +/* 0F1288 7F0BC758 904C0002 */ lbu $t4, 2($v0) +/* 0F128C 7F0BC75C 03E00008 */ jr $ra +/* 0F1290 7F0BC760 24620001 */ addiu $v0, $v1, 1 + +/* 0F1294 7F0BC764 904C0002 */ lbu $t4, 2($v0) +.L7F0BC768: +/* 0F1298 7F0BC768 00036880 */ sll $t5, $v1, 2 +/* 0F129C 7F0BC76C 00AD7021 */ addu $t6, $a1, $t5 +/* 0F12A0 7F0BC770 29810002 */ slti $at, $t4, 2 +/* 0F12A4 7F0BC774 54200007 */ bnezl $at, .L7F0BC794 +/* 0F12A8 7F0BC778 90580003 */ lbu $t8, 3($v0) +/* 0F12AC 7F0BC77C 8DCF0008 */ lw $t7, 8($t6) +/* 0F12B0 7F0BC780 548F0004 */ bnel $a0, $t7, .L7F0BC794 +/* 0F12B4 7F0BC784 90580003 */ lbu $t8, 3($v0) +/* 0F12B8 7F0BC788 03E00008 */ jr $ra +/* 0F12BC 7F0BC78C 24620002 */ addiu $v0, $v1, 2 + +/* 0F12C0 7F0BC790 90580003 */ lbu $t8, 3($v0) +.L7F0BC794: +/* 0F12C4 7F0BC794 0003C880 */ sll $t9, $v1, 2 +/* 0F12C8 7F0BC798 00B94021 */ addu $t0, $a1, $t9 +/* 0F12CC 7F0BC79C 2B010002 */ slti $at, $t8, 2 +/* 0F12D0 7F0BC7A0 54200007 */ bnezl $at, .L7F0BC7C0 +/* 0F12D4 7F0BC7A4 24630004 */ addiu $v1, $v1, 4 +/* 0F12D8 7F0BC7A8 8D09000C */ lw $t1, 0xc($t0) +/* 0F12DC 7F0BC7AC 54890004 */ bnel $a0, $t1, .L7F0BC7C0 +/* 0F12E0 7F0BC7B0 24630004 */ addiu $v1, $v1, 4 +/* 0F12E4 7F0BC7B4 03E00008 */ jr $ra +/* 0F12E8 7F0BC7B8 24620003 */ addiu $v0, $v1, 3 + +/* 0F12EC 7F0BC7BC 24630004 */ addiu $v1, $v1, 4 +.L7F0BC7C0: +/* 0F12F0 7F0BC7C0 1466FFD2 */ bne $v1, $a2, .L7F0BC70C +/* 0F12F4 7F0BC7C4 24420004 */ addiu $v0, $v0, 4 +/* 0F12F8 7F0BC7C8 00001025 */ move $v0, $zero +/* 0F12FC 7F0BC7CC 03E00008 */ jr $ra +/* 0F1300 7F0BC7D0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BC7D4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BC7D4 +/* 0F1304 7F0BC7D4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0F1308 7F0BC7D8 AFB2001C */ sw $s2, 0x1c($sp) +/* 0F130C 7F0BC7DC AFB10018 */ sw $s1, 0x18($sp) +/* 0F1310 7F0BC7E0 AFB30020 */ sw $s3, 0x20($sp) +/* 0F1314 7F0BC7E4 AFB00014 */ sw $s0, 0x14($sp) +/* 0F1318 7F0BC7E8 3C118008 */ lui $s1, %hi(dword_CODE_bss_80083900) +/* 0F131C 7F0BC7EC 3C128008 */ lui $s2, %hi(dword_CODE_bss_80083320) +/* 0F1320 7F0BC7F0 AFBF0024 */ sw $ra, 0x24($sp) +/* 0F1324 7F0BC7F4 26523320 */ addiu $s2, %lo(dword_CODE_bss_80083320) # addiu $s2, $s2, 0x3320 +/* 0F1328 7F0BC7F8 26313900 */ addiu $s1, %lo(dword_CODE_bss_80083900) # addiu $s1, $s1, 0x3900 +/* 0F132C 7F0BC7FC 00008025 */ move $s0, $zero +/* 0F1330 7F0BC800 2413012C */ li $s3, 300 +.L7F0BC804: +/* 0F1334 7F0BC804 8E2E0000 */ lw $t6, ($s1) +/* 0F1338 7F0BC808 02501021 */ addu $v0, $s2, $s0 +/* 0F133C 7F0BC80C 05C2000A */ bltzl $t6, .L7F0BC838 +/* 0F1340 7F0BC810 26100001 */ addiu $s0, $s0, 1 +/* 0F1344 7F0BC814 904F0000 */ lbu $t7, ($v0) +/* 0F1348 7F0BC818 25F80001 */ addiu $t8, $t7, 1 +/* 0F134C 7F0BC81C 331900FF */ andi $t9, $t8, 0xff +/* 0F1350 7F0BC820 2B210002 */ slti $at, $t9, 2 +/* 0F1354 7F0BC824 14200003 */ bnez $at, .L7F0BC834 +/* 0F1358 7F0BC828 A0580000 */ sb $t8, ($v0) +/* 0F135C 7F0BC82C 0FC2F1A4 */ jal sub_GAME_7F0BC690 +/* 0F1360 7F0BC830 02002025 */ move $a0, $s0 +.L7F0BC834: +/* 0F1364 7F0BC834 26100001 */ addiu $s0, $s0, 1 +.L7F0BC838: +/* 0F1368 7F0BC838 1613FFF2 */ bne $s0, $s3, .L7F0BC804 +/* 0F136C 7F0BC83C 26310004 */ addiu $s1, $s1, 4 +/* 0F1370 7F0BC840 8FBF0024 */ lw $ra, 0x24($sp) +/* 0F1374 7F0BC844 8FB00014 */ lw $s0, 0x14($sp) +/* 0F1378 7F0BC848 8FB10018 */ lw $s1, 0x18($sp) +/* 0F137C 7F0BC84C 8FB2001C */ lw $s2, 0x1c($sp) +/* 0F1380 7F0BC850 8FB30020 */ lw $s3, 0x20($sp) +/* 0F1384 7F0BC854 03E00008 */ jr $ra +/* 0F1388 7F0BC858 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BC85C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BC85C +/* 0F138C 7F0BC85C 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0F1390 7F0BC860 00047880 */ sll $t7, $a0, 2 +/* 0F1394 7F0BC864 AFB00018 */ sw $s0, 0x18($sp) +/* 0F1398 7F0BC868 01E47821 */ addu $t7, $t7, $a0 +/* 0F139C 7F0BC86C 000F7900 */ sll $t7, $t7, 4 +/* 0F13A0 7F0BC870 3C108004 */ lui $s0, %hi(array_room_info + 0x10 +38) +/* 0F13A4 7F0BC874 020F8021 */ addu $s0, $s0, $t7 +/* 0F13A8 7F0BC878 8610144A */ lh $s0, %lo(array_room_info + 0x10 +38)($s0) +/* 0F13AC 7F0BC87C 2402FFFF */ li $v0, -1 +/* 0F13B0 7F0BC880 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F13B4 7F0BC884 1202000C */ beq $s0, $v0, .L7F0BC8B8 +/* 0F13B8 7F0BC888 AFA40070 */ sw $a0, 0x70($sp) +/* 0F13BC 7F0BC88C 3C188008 */ lui $t8, %hi(pPlayer) +/* 0F13C0 7F0BC890 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0F13C4 7F0BC894 00104080 */ sll $t0, $s0, 2 +/* 0F13C8 7F0BC898 3C098008 */ lui $t1, %hi(dword_CODE_bss_80083900) +/* 0F13CC 7F0BC89C 01284821 */ addu $t1, $t1, $t0 +/* 0F13D0 7F0BC8A0 8D293900 */ lw $t1, %lo(dword_CODE_bss_80083900)($t1) +/* 0F13D4 7F0BC8A4 8F19108C */ lw $t9, 0x108c($t8) +/* 0F13D8 7F0BC8A8 3C018008 */ lui $at, %hi(dword_CODE_bss_80083320) +/* 0F13DC 7F0BC8AC 00300821 */ addu $at, $at, $s0 +/* 0F13E0 7F0BC8B0 1329000F */ beq $t9, $t1, .L7F0BC8F0 +/* 0F13E4 7F0BC8B4 00000000 */ nop +.L7F0BC8B8: +/* 0F13E8 7F0BC8B8 12020003 */ beq $s0, $v0, .L7F0BC8C8 +/* 0F13EC 7F0BC8BC 02002025 */ move $a0, $s0 +/* 0F13F0 7F0BC8C0 0FC2F198 */ jal sub_GAME_7F0BC660 +/* 0F13F4 7F0BC8C4 8FA50070 */ lw $a1, 0x70($sp) +.L7F0BC8C8: +/* 0F13F8 7F0BC8C8 0FC2F1BC */ jal sub_GAME_7F0BC6F0 +/* 0F13FC 7F0BC8CC 00000000 */ nop +/* 0F1400 7F0BC8D0 00408025 */ move $s0, $v0 +/* 0F1404 7F0BC8D4 00402025 */ move $a0, $v0 +/* 0F1408 7F0BC8D8 0FC2F18D */ jal sub_GAME_7F0BC634 +/* 0F140C 7F0BC8DC 8FA50070 */ lw $a1, 0x70($sp) +/* 0F1410 7F0BC8E0 3C018008 */ lui $at, %hi(dword_CODE_bss_80083320) +/* 0F1414 7F0BC8E4 00300821 */ addu $at, $at, $s0 +/* 0F1418 7F0BC8E8 10000004 */ b .L7F0BC8FC +/* 0F141C 7F0BC8EC A0203320 */ sb $zero, %lo(dword_CODE_bss_80083320)($at) +.L7F0BC8F0: +/* 0F1420 7F0BC8F0 A0203320 */ sb $zero, %lo(dword_CODE_bss_80083320)($at) +/* 0F1424 7F0BC8F4 1000002E */ b .L7F0BC9B0 +/* 0F1428 7F0BC8F8 02001025 */ move $v0, $s0 +.L7F0BC8FC: +/* 0F142C 7F0BC8FC 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0F1430 7F0BC900 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0F1434 7F0BC904 00106080 */ sll $t4, $s0, 2 +/* 0F1438 7F0BC908 3C018008 */ lui $at, %hi(dword_CODE_bss_80083900) +/* 0F143C 7F0BC90C 8D4B108C */ lw $t3, 0x108c($t2) +/* 0F1440 7F0BC910 002C0821 */ addu $at, $at, $t4 +/* 0F1444 7F0BC914 27A4002C */ addiu $a0, $sp, 0x2c +/* 0F1448 7F0BC918 0FC15FF4 */ jal matrix_4x4_set_identity +/* 0F144C 7F0BC91C AC2B3900 */ sw $t3, %lo(dword_CODE_bss_80083900)($at) +/* 0F1450 7F0BC920 8FAE0070 */ lw $t6, 0x70($sp) +/* 0F1454 7F0BC924 3C018004 */ lui $at, %hi(room_data_float2) +/* 0F1458 7F0BC928 C42013F8 */ lwc1 $f0, %lo(room_data_float2)($at) +/* 0F145C 7F0BC92C 3C0D8008 */ lui $t5, %hi(ptr_bgdata_room_fileposition_list) +/* 0F1460 7F0BC930 8DADFF8C */ lw $t5, %lo(ptr_bgdata_room_fileposition_list)($t5) +/* 0F1464 7F0BC934 000E7880 */ sll $t7, $t6, 2 +/* 0F1468 7F0BC938 01EE7823 */ subu $t7, $t7, $t6 +/* 0F146C 7F0BC93C 000F78C0 */ sll $t7, $t7, 3 +/* 0F1470 7F0BC940 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 0F1474 7F0BC944 E7A00040 */ swc1 $f0, 0x40($sp) +/* 0F1478 7F0BC948 E7A00054 */ swc1 $f0, 0x54($sp) +/* 0F147C 7F0BC94C 01AF1821 */ addu $v1, $t5, $t7 +/* 0F1480 7F0BC950 C464000C */ lwc1 $f4, 0xc($v1) +/* 0F1484 7F0BC954 3C028008 */ lui $v0, %hi(pPlayer) +/* 0F1488 7F0BC958 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0F148C 7F0BC95C 46002182 */ mul.s $f6, $f4, $f0 +/* 0F1490 7F0BC960 3C088008 */ lui $t0, %hi(dword_CODE_bss_80083DB0) +/* 0F1494 7F0BC964 C4480038 */ lwc1 $f8, 0x38($v0) +/* 0F1498 7F0BC968 25083DB0 */ addiu $t0, %lo(dword_CODE_bss_80083DB0) # addiu $t0, $t0, 0x3db0 +/* 0F149C 7F0BC96C 0010C180 */ sll $t8, $s0, 6 +/* 0F14A0 7F0BC970 03082821 */ addu $a1, $t8, $t0 +/* 0F14A4 7F0BC974 27A4002C */ addiu $a0, $sp, 0x2c +/* 0F14A8 7F0BC978 46083281 */ sub.s $f10, $f6, $f8 +/* 0F14AC 7F0BC97C E7AA005C */ swc1 $f10, 0x5c($sp) +/* 0F14B0 7F0BC980 C4700010 */ lwc1 $f16, 0x10($v1) +/* 0F14B4 7F0BC984 C444003C */ lwc1 $f4, 0x3c($v0) +/* 0F14B8 7F0BC988 46008482 */ mul.s $f18, $f16, $f0 +/* 0F14BC 7F0BC98C 46049181 */ sub.s $f6, $f18, $f4 +/* 0F14C0 7F0BC990 E7A60060 */ swc1 $f6, 0x60($sp) +/* 0F14C4 7F0BC994 C4680014 */ lwc1 $f8, 0x14($v1) +/* 0F14C8 7F0BC998 C4500040 */ lwc1 $f16, 0x40($v0) +/* 0F14CC 7F0BC99C 46004282 */ mul.s $f10, $f8, $f0 +/* 0F14D0 7F0BC9A0 46105481 */ sub.s $f18, $f10, $f16 +/* 0F14D4 7F0BC9A4 0FC16327 */ jal sub_GAME_7F058C9C +/* 0F14D8 7F0BC9A8 E7B20064 */ swc1 $f18, 0x64($sp) +/* 0F14DC 7F0BC9AC 02001025 */ move $v0, $s0 +.L7F0BC9B0: +/* 0F14E0 7F0BC9B0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F14E4 7F0BC9B4 8FB00018 */ lw $s0, 0x18($sp) +/* 0F14E8 7F0BC9B8 27BD0070 */ addiu $sp, $sp, 0x70 +/* 0F14EC 7F0BC9BC 03E00008 */ jr $ra +/* 0F14F0 7F0BC9C0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BC9C4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BC9C4 +/* 0F14F4 7F0BC9C4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F14F8 7F0BC9C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F14FC 7F0BC9CC 00803025 */ move $a2, $a0 +/* 0F1500 7F0BC9D0 AFA60018 */ sw $a2, 0x18($sp) +/* 0F1504 7F0BC9D4 0FC2F217 */ jal sub_GAME_7F0BC85C +/* 0F1508 7F0BC9D8 00A02025 */ move $a0, $a1 +/* 0F150C 7F0BC9DC 8FA30018 */ lw $v1, 0x18($sp) +/* 0F1510 7F0BC9E0 3C188008 */ lui $t8, %hi(dword_CODE_bss_80083DB0) +/* 0F1514 7F0BC9E4 27183DB0 */ addiu $t8, %lo(dword_CODE_bss_80083DB0) # addiu $t8, $t8, 0x3db0 +/* 0F1518 7F0BC9E8 3C0E0102 */ lui $t6, (0x01020040 >> 16) # lui $t6, 0x102 +/* 0F151C 7F0BC9EC 00027980 */ sll $t7, $v0, 6 +/* 0F1520 7F0BC9F0 01F8C821 */ addu $t9, $t7, $t8 +/* 0F1524 7F0BC9F4 35CE0040 */ ori $t6, (0x01020040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 0F1528 7F0BC9F8 AC6E0000 */ sw $t6, ($v1) +/* 0F152C 7F0BC9FC AC790004 */ sw $t9, 4($v1) +/* 0F1530 7F0BCA00 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F1534 7F0BCA04 24660008 */ addiu $a2, $v1, 8 +/* 0F1538 7F0BCA08 00C01025 */ move $v0, $a2 +/* 0F153C 7F0BCA0C 03E00008 */ jr $ra +/* 0F1540 7F0BCA10 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BCA14(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BCA14 +/* 0F1544 7F0BCA14 3C0F8008 */ lui $t7, %hi(ptr_bgdata_room_fileposition_list) +/* 0F1548 7F0BCA18 8DEFFF8C */ lw $t7, %lo(ptr_bgdata_room_fileposition_list)($t7) +/* 0F154C 7F0BCA1C 00047080 */ sll $t6, $a0, 2 +/* 0F1550 7F0BCA20 01C47023 */ subu $t6, $t6, $a0 +/* 0F1554 7F0BCA24 000E70C0 */ sll $t6, $t6, 3 +/* 0F1558 7F0BCA28 01CF1021 */ addu $v0, $t6, $t7 +/* 0F155C 7F0BCA2C 03E00008 */ jr $ra +/* 0F1560 7F0BCA30 2442000C */ addiu $v0, $v0, 0xc +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0BCA34(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BCA34 +/* 0F1564 7F0BCA34 3C038008 */ lui $v1, %hi(ptr_bgdata_room_fileposition_list) +/* 0F1568 7F0BCA38 2463FF8C */ addiu $v1, %lo(ptr_bgdata_room_fileposition_list) # addiu $v1, $v1, -0x74 +/* 0F156C 7F0BCA3C 8C6E0000 */ lw $t6, ($v1) +/* 0F1570 7F0BCA40 00041080 */ sll $v0, $a0, 2 +/* 0F1574 7F0BCA44 00441023 */ subu $v0, $v0, $a0 +/* 0F1578 7F0BCA48 3C068004 */ lui $a2, %hi(room_data_float2) +/* 0F157C 7F0BCA4C 000210C0 */ sll $v0, $v0, 3 +/* 0F1580 7F0BCA50 24C613F8 */ addiu $a2, %lo(room_data_float2) # addiu $a2, $a2, 0x13f8 +/* 0F1584 7F0BCA54 01C27821 */ addu $t7, $t6, $v0 +/* 0F1588 7F0BCA58 C5E4000C */ lwc1 $f4, 0xc($t7) +/* 0F158C 7F0BCA5C C4C60000 */ lwc1 $f6, ($a2) +/* 0F1590 7F0BCA60 46062202 */ mul.s $f8, $f4, $f6 +/* 0F1594 7F0BCA64 E4A80000 */ swc1 $f8, ($a1) +/* 0F1598 7F0BCA68 8C780000 */ lw $t8, ($v1) +/* 0F159C 7F0BCA6C C4D00000 */ lwc1 $f16, ($a2) +/* 0F15A0 7F0BCA70 0302C821 */ addu $t9, $t8, $v0 +/* 0F15A4 7F0BCA74 C72A0010 */ lwc1 $f10, 0x10($t9) +/* 0F15A8 7F0BCA78 46105482 */ mul.s $f18, $f10, $f16 +/* 0F15AC 7F0BCA7C E4B20004 */ swc1 $f18, 4($a1) +/* 0F15B0 7F0BCA80 8C680000 */ lw $t0, ($v1) +/* 0F15B4 7F0BCA84 C4C60000 */ lwc1 $f6, ($a2) +/* 0F15B8 7F0BCA88 01024821 */ addu $t1, $t0, $v0 +/* 0F15BC 7F0BCA8C C5240014 */ lwc1 $f4, 0x14($t1) +/* 0F15C0 7F0BCA90 46062202 */ mul.s $f8, $f4, $f6 +/* 0F15C4 7F0BCA94 03E00008 */ jr $ra +/* 0F15C8 7F0BCA98 E4A80008 */ swc1 $f8, 8($a1) +) +#endif + + diff --git a/src/game/unk_0C0A70.c b/src/game/unk_0C0A70.c new file mode 100644 index 0000000..2b1c671 --- /dev/null +++ b/src/game/unk_0C0A70.c @@ -0,0 +1,214 @@ +#include "ultra64.h" +#include "game/unk_0C0A70.h" + +// data +s32 D_80048490 = -1; +s32 D_80048494 = 0; +s32 D_80048498 = 1; +#ifdef VERSION_JP +f32 jpD_800484CC = 1.0f; +f32 jpD_800484D0 = 1.0f; +#endif +s32 D_8004849C = -1; +s32 D_800484A0 = 0; +s32 D_800484A4 = 0; +s32 D_800484A8 = 0; +u32 copy_of_osgetcount_value_0 = 0; +u32 copy_of_osgetcount_value_1 = 0; +s32 D_800484B4 = 1; + + + + +void store_osgetcount(void) +{ + copy_of_osgetcount_value_1 = osGetCount(); + copy_of_osgetcount_value_0 = copy_of_osgetcount_value_1; +} + + + +#ifdef NONMATCHING +void sub_GAME_7F0C0AA0(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C0AA0 +/* 0F55D0 7F0C0AA0 3C0E8005 */ lui $t6, %hi(copy_of_osgetcount_value_1) +/* 0F55D4 7F0C0AA4 8DCE84B0 */ lw $t6, %lo(copy_of_osgetcount_value_1)($t6) +/* 0F55D8 7F0C0AA8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F55DC 7F0C0AAC AFBF0014 */ sw $ra, 0x14($sp) +/* 0F55E0 7F0C0AB0 3C018005 */ lui $at, %hi(copy_of_osgetcount_value_0) +/* 0F55E4 7F0C0AB4 AFA40018 */ sw $a0, 0x18($sp) +/* 0F55E8 7F0C0AB8 0C003638 */ jal osGetCount +/* 0F55EC 7F0C0ABC AC2E84AC */ sw $t6, %lo(copy_of_osgetcount_value_0)($at) +/* 0F55F0 7F0C0AC0 3C048005 */ lui $a0, %hi(D_80048494) +/* 0F55F4 7F0C0AC4 3C018005 */ lui $at, %hi(copy_of_osgetcount_value_1) +/* 0F55F8 7F0C0AC8 AC2284B0 */ sw $v0, %lo(copy_of_osgetcount_value_1)($at) +/* 0F55FC 7F0C0ACC 24848494 */ addiu $a0, %lo(D_80048494) # addiu $a0, $a0, -0x7b6c +/* 0F5600 7F0C0AD0 8C830000 */ lw $v1, ($a0) +/* 0F5604 7F0C0AD4 8FA70018 */ lw $a3, 0x18($sp) +/* 0F5608 7F0C0AD8 3C018005 */ lui $at, %hi(D_80048490) +/* 0F560C 7F0C0ADC AC238490 */ sw $v1, %lo(D_80048490)($at) +/* 0F5610 7F0C0AE0 00677821 */ addu $t7, $v1, $a3 +/* 0F5614 7F0C0AE4 AC8F0000 */ sw $t7, ($a0) +/* 0F5618 7F0C0AE8 3C018005 */ lui $at, %hi(D_80048498) +/* 0F561C 7F0C0AEC AC278498 */ sw $a3, %lo(D_80048498)($at) +/* 0F5620 7F0C0AF0 8C830000 */ lw $v1, ($a0) +/* 0F5624 7F0C0AF4 3C058005 */ lui $a1, %hi(D_800484A0) +/* 0F5628 7F0C0AF8 24A584A0 */ addiu $a1, %lo(D_800484A0) # addiu $a1, $a1, -0x7b60 +/* 0F562C 7F0C0AFC 8CB80000 */ lw $t8, ($a1) +/* 0F5630 7F0C0B00 3C068005 */ lui $a2, %hi(D_8004849C) +/* 0F5634 7F0C0B04 24C6849C */ addiu $a2, %lo(D_8004849C) # addiu $a2, $a2, -0x7b64 +/* 0F5638 7F0C0B08 30680001 */ andi $t0, $v1, 1 +/* 0F563C 7F0C0B0C ACD80000 */ sw $t8, ($a2) +/* 0F5640 7F0C0B10 04610003 */ bgez $v1, .L7F0C0B20 +/* 0F5644 7F0C0B14 0003C843 */ sra $t9, $v1, 1 +/* 0F5648 7F0C0B18 24610001 */ addiu $at, $v1, 1 +/* 0F564C 7F0C0B1C 0001C843 */ sra $t9, $at, 1 +.L7F0C0B20: +/* 0F5650 7F0C0B20 ACB90000 */ sw $t9, ($a1) +/* 0F5654 7F0C0B24 3C018005 */ lui $at, %hi(D_800484A4) +/* 0F5658 7F0C0B28 AC2884A4 */ sw $t0, %lo(D_800484A4)($at) +/* 0F565C 7F0C0B2C 8CCA0000 */ lw $t2, ($a2) +/* 0F5660 7F0C0B30 8CA90000 */ lw $t1, ($a1) +/* 0F5664 7F0C0B34 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F5668 7F0C0B38 3C018005 */ lui $at, %hi(D_800484A8) +/* 0F566C 7F0C0B3C 012A5823 */ subu $t3, $t1, $t2 +/* 0F5670 7F0C0B40 AC2B84A8 */ sw $t3, %lo(D_800484A8)($at) +/* 0F5674 7F0C0B44 03E00008 */ jr $ra +/* 0F5678 7F0C0B48 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C0AA0 +/* 0F6280 7F0C1710 3C0E8005 */ lui $t6, %hi(copy_of_osgetcount_value_1) # $t6, 0x8005 +/* 0F6284 7F0C1714 8DCE84E8 */ lw $t6, %lo(copy_of_osgetcount_value_1)($t6) +/* 0F6288 7F0C1718 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F628C 7F0C171C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F6290 7F0C1720 3C018005 */ lui $at, %hi(copy_of_osgetcount_value_0) # $at, 0x8005 +/* 0F6294 7F0C1724 AFA40018 */ sw $a0, 0x18($sp) +/* 0F6298 7F0C1728 0C003648 */ jal osGetCount +/* 0F629C 7F0C172C AC2E84E4 */ sw $t6, %lo(copy_of_osgetcount_value_0)($at) +/* 0F62A0 7F0C1730 8FA60018 */ lw $a2, 0x18($sp) +/* 0F62A4 7F0C1734 3C048005 */ lui $a0, %hi(D_80048494) # $a0, 0x8005 +/* 0F62A8 7F0C1738 3C018005 */ lui $at, %hi(copy_of_osgetcount_value_1) # $at, 0x8005 +/* 0F62AC 7F0C173C 44862000 */ mtc1 $a2, $f4 +/* 0F62B0 7F0C1740 AC2284E8 */ sw $v0, %lo(copy_of_osgetcount_value_1)($at) +/* 0F62B4 7F0C1744 248484C4 */ addiu $a0, %lo(D_80048494) # addiu $a0, $a0, -0x7b3c +/* 0F62B8 7F0C1748 8C830000 */ lw $v1, ($a0) +/* 0F62BC 7F0C174C 468021A0 */ cvt.s.w $f6, $f4 +/* 0F62C0 7F0C1750 3C018005 */ lui $at, %hi(D_80048490) # $at, 0x8005 +/* 0F62C4 7F0C1754 AC2384C0 */ sw $v1, %lo(D_80048490)($at) +/* 0F62C8 7F0C1758 00667821 */ addu $t7, $v1, $a2 +/* 0F62CC 7F0C175C 3C078005 */ lui $a3, %hi(jpD_800484CC) # $a3, 0x8005 +/* 0F62D0 7F0C1760 AC8F0000 */ sw $t7, ($a0) +/* 0F62D4 7F0C1764 3C018005 */ lui $at, %hi(D_80048498) # $at, 0x8005 +/* 0F62D8 7F0C1768 24E784CC */ addiu $a3, %lo(jpD_800484CC) # addiu $a3, $a3, -0x7b34 +/* 0F62DC 7F0C176C AC2684C8 */ sw $a2, %lo(D_80048498)($at) +/* 0F62E0 7F0C1770 E4E60000 */ swc1 $f6, ($a3) +/* 0F62E4 7F0C1774 C4E80000 */ lwc1 $f8, ($a3) +/* 0F62E8 7F0C1778 3C018005 */ lui $at, %hi(jpD_800484D0) # $at, 0x8005 +/* 0F62EC 7F0C177C 3C058005 */ lui $a1, %hi(D_800484A0) # $a1, 0x8005 +/* 0F62F0 7F0C1780 E42884D0 */ swc1 $f8, %lo(jpD_800484D0)($at) +/* 0F62F4 7F0C1784 8C830000 */ lw $v1, ($a0) +/* 0F62F8 7F0C1788 24A584D8 */ addiu $a1, %lo(D_800484A0) # addiu $a1, $a1, -0x7b28 +/* 0F62FC 7F0C178C 8CB80000 */ lw $t8, ($a1) +/* 0F6300 7F0C1790 3C088005 */ lui $t0, %hi(D_8004849C) # $t0, 0x8005 +/* 0F6304 7F0C1794 250884D4 */ addiu $t0, %lo(D_8004849C) # addiu $t0, $t0, -0x7b2c +/* 0F6308 7F0C1798 30690001 */ andi $t1, $v1, 1 +/* 0F630C 7F0C179C AD180000 */ sw $t8, ($t0) +/* 0F6310 7F0C17A0 04610003 */ bgez $v1, .L7F0C17B0 +/* 0F6314 7F0C17A4 0003C843 */ sra $t9, $v1, 1 +/* 0F6318 7F0C17A8 24610001 */ addiu $at, $v1, 1 +/* 0F631C 7F0C17AC 0001C843 */ sra $t9, $at, 1 +.L7F0C17B0: +/* 0F6320 7F0C17B0 ACB90000 */ sw $t9, ($a1) +/* 0F6324 7F0C17B4 3C018005 */ lui $at, %hi(D_800484A4) # $at, 0x8005 +/* 0F6328 7F0C17B8 AC2984DC */ sw $t1, %lo(D_800484A4)($at) +/* 0F632C 7F0C17BC 8D0B0000 */ lw $t3, ($t0) +/* 0F6330 7F0C17C0 8CAA0000 */ lw $t2, ($a1) +/* 0F6334 7F0C17C4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F6338 7F0C17C8 3C018005 */ lui $at, %hi(D_800484A8) # $at, 0x8005 +/* 0F633C 7F0C17CC 014B6023 */ subu $t4, $t2, $t3 +/* 0F6340 7F0C17D0 AC2C84E0 */ sw $t4, %lo(D_800484A8)($at) +/* 0F6344 7F0C17D4 03E00008 */ jr $ra +/* 0F6348 7F0C17D8 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0C0B4C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C0B4C +/* 0F567C 7F0C0B4C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0F5680 7F0C0B50 AFB30020 */ sw $s3, 0x20($sp) +/* 0F5684 7F0C0B54 AFB2001C */ sw $s2, 0x1c($sp) +/* 0F5688 7F0C0B58 AFB10018 */ sw $s1, 0x18($sp) +/* 0F568C 7F0C0B5C AFB00014 */ sw $s0, 0x14($sp) +/* 0F5690 7F0C0B60 3C108005 */ lui $s0, %hi(D_800484B4) +/* 0F5694 7F0C0B64 3C118005 */ lui $s1, %hi(copy_of_osgetcount_value_1) +/* 0F5698 7F0C0B68 3C120005 */ lui $s2, (0x0005EB61 >> 16) # lui $s2, 5 +/* 0F569C 7F0C0B6C 3C13000B */ lui $s3, (0x000BD6C3 >> 16) # lui $s3, 0xb +/* 0F56A0 7F0C0B70 AFBF0024 */ sw $ra, 0x24($sp) +/* 0F56A4 7F0C0B74 3673D6C3 */ ori $s3, (0x000BD6C3 & 0xFFFF) # ori $s3, $s3, 0xd6c3 +/* 0F56A8 7F0C0B78 3652EB61 */ ori $s2, (0x0005EB61 & 0xFFFF) # ori $s2, $s2, 0xeb61 +/* 0F56AC 7F0C0B7C 263184B0 */ addiu $s1, %lo(copy_of_osgetcount_value_1) # addiu $s1, $s1, -0x7b50 +/* 0F56B0 7F0C0B80 261084B4 */ addiu $s0, %lo(D_800484B4) # addiu $s0, $s0, -0x7b4c +.L7F0C0B84: +/* 0F56B4 7F0C0B84 0C003638 */ jal osGetCount +/* 0F56B8 7F0C0B88 00000000 */ nop +/* 0F56BC 7F0C0B8C 8E2E0000 */ lw $t6, ($s1) +/* 0F56C0 7F0C0B90 8E190000 */ lw $t9, ($s0) +/* 0F56C4 7F0C0B94 004E7823 */ subu $t7, $v0, $t6 +/* 0F56C8 7F0C0B98 01F2C021 */ addu $t8, $t7, $s2 +/* 0F56CC 7F0C0B9C 0313001B */ divu $zero, $t8, $s3 +/* 0F56D0 7F0C0BA0 00002012 */ mflo $a0 +/* 0F56D4 7F0C0BA4 0099082B */ sltu $at, $a0, $t9 +/* 0F56D8 7F0C0BA8 16600002 */ bnez $s3, .L7F0C0BB4 +/* 0F56DC 7F0C0BAC 00000000 */ nop +/* 0F56E0 7F0C0BB0 0007000D */ break 7 +.L7F0C0BB4: +/* 0F56E4 7F0C0BB4 1420FFF3 */ bnez $at, .L7F0C0B84 +/* 0F56E8 7F0C0BB8 00000000 */ nop +/* 0F56EC 7F0C0BBC 24080001 */ li $t0, 1 +/* 0F56F0 7F0C0BC0 0FC302A8 */ jal sub_GAME_7F0C0AA0 +/* 0F56F4 7F0C0BC4 AE080000 */ sw $t0, ($s0) +/* 0F56F8 7F0C0BC8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0F56FC 7F0C0BCC 8FB00014 */ lw $s0, 0x14($sp) +/* 0F5700 7F0C0BD0 8FB10018 */ lw $s1, 0x18($sp) +/* 0F5704 7F0C0BD4 8FB2001C */ lw $s2, 0x1c($sp) +/* 0F5708 7F0C0BD8 8FB30020 */ lw $s3, 0x20($sp) +/* 0F570C 7F0C0BDC 03E00008 */ jr $ra +/* 0F5710 7F0C0BE0 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +void sub_GAME_7F0C0BE4(s32 arg0) { + D_800484B4 = arg0; +} + +void sub_GAME_7F0C0BF0(void) { + sub_GAME_7F0A9358(); +} + + + diff --git a/src/game/unk_0C0A70.h b/src/game/unk_0C0A70.h new file mode 100644 index 0000000..7361e49 --- /dev/null +++ b/src/game/unk_0C0A70.h @@ -0,0 +1,16 @@ +#ifndef _UNK_0C0A70_H_ +#define _UNK_0C0A70_H_ +#include "ultra64.h" + +extern s32 D_80048490; +extern s32 D_80048494; +extern s32 D_80048498; +extern s32 D_8004849C; +extern s32 D_800484A0; +extern s32 D_800484A4; +extern s32 D_800484A8; +extern u32 copy_of_osgetcount_value_0; +extern u32 copy_of_osgetcount_value_1; +extern s32 D_800484B4; + +#endif diff --git a/src/game/unk_0CC4C0.c b/src/game/unk_0CC4C0.c new file mode 100644 index 0000000..1107fdf --- /dev/null +++ b/src/game/unk_0CC4C0.c @@ -0,0 +1,3176 @@ +#include "ultra64.h" +#include "game/lvl.h" +#include "game/image.h" +#include "game/unk_0CC4C0.h" + +// bss +//8008D140 +s32 dword_CODE_bss_8008D140; +//8008D144 +s32 dword_CODE_bss_8008D144; +//8008D148 +char dword_CODE_bss_8008D148[0x160]; +//8008D2A8 +char dword_CODE_bss_8008D2A8[0xA0]; +//8008D348 +s32 dword_CODE_bss_8008D348; + + +// data +//D:8004E760 +u16 D_8004E760[] = {0xD0, 0xD1}; +//D:8004E764 +u8 D_8004E764[] = {0x7, 0x0, 0x0, 0x0}; +//D:8004E768 +struct image_sound isnd_default = {&D_8004E760, &D_8004E764, 0x0, 0x1}; + +//D:8004E774 +u16 D_8004E774[] = {0xD0, 0xD1}; +//D:8004E778 +u8 D_8004E778[] = {0x1, 0x0, 0x0, 0x0}; +//D:8004E77C +struct image_sound isnd_stone = {&D_8004E774, &D_8004E778, 0x2, 0x1}; + +//D:8004E788 +u16 D_8004E788[] = {0x4B, 0xD9}; +//D:8004E78C +u8 D_8004E78C[] = {0x1, 0x0, 0x0, 0x0}; +//D:8004E790 +struct image_sound isnd_wood = {&D_8004E788, &D_8004E78C, 0x2, 0x1}; + +//D:8004E79C +u16 D_8004E79C[] = {0x48, 0xF0, 0xEF, 0x00}; +//D:8004E7A4 +u8 D_8004E7A4[] = {0x7, 0x0, 0x0, 0x0}; +//D:8004E7A8 +struct image_sound isnd_metal = {&D_8004E79C, &D_8004E7A4, 0x3, 0x1}; + +//D:8004E7B4 +u16 D_8004E7B4[] = {0x46, 0x00}; +//D:8004E7B8 +u8 D_8004E7B8[] = {0x4, 0x5, 0x6, 0x0}; +//D:8004E7BC +struct image_sound isnd_glass = {&D_8004E7B4, &D_8004E7B8, 0x1, 0x3}; + +//D:8004E7C8 +u16 D_8004E7C8[] = {0x4C, 0x00}; +//D:8004E7CC +u8 D_8004E7CC[] = {0, 0, 0, 0}; +//D:8004E7D0 +struct image_sound isnd_water = {&D_8004E7C8, &D_8004E7CC, 0x1, 0x0}; + +//D:8004E7DC +u16 D_8004E7DC[] = {0x4A, 0x00}; +//D:8004E7E0 +u8 D_8004E7E0[] = {0x1, 0x0, 0x0, 0x0}; +//D:8004E7E4 +struct image_sound isnd_snow = {&D_8004E7DC, &D_8004E7E0, 0x1, 0x1}; + +//D:8004E7F0 +u16 D_8004E7F0[] = {0xDC, 0xB9}; +//D:8004E7F4 +u8 D_8004E7F4[] = {0x2, 0x0, 0x0, 0x0}; +//D:8004E7F8 +struct image_sound isnd_dirt = {&D_8004E7F0, &D_8004E7F4, 0x2, 0x1}; + +//D:8004E804 +u16 D_8004E804[] = {0xE7, 0xE6, 0xE0, 0x00}; +//D:8004E80C +u8 D_8004E80C[] = {0x2, 0x0, 0x0, 0x0}; +//D:8004E810 +struct image_sound isnd_mud = {&D_8004E804, &D_8004E80C, 0x3, 0x1}; + +//D:8004E81C +u16 D_8004E81C[] = {0xD4, 0x00}; +//D:8004E820 +u8 D_8004E820[] = {0x1, 0x0, 0x0, 0x0}; +//D:8004E824 +struct image_sound isnd_tile = {&D_8004E81C, &D_8004E820, 0x1, 0x1}; + +//D:8004E830 +u16 D_8004E830[] = {0x78, 0xDD}; +//D:8004E834 +u8 D_8004E834[] = {0x1, 0x7, 0x0, 0x0}; +//D:8004E838 +struct image_sound isnd_metalobj = {&D_8004E830, &D_8004E834, 0x2, 0x2}; + +//D:8004E844 +u16 D_8004E844[] = {0x45, 0x00}; +//D:8004E848 +u8 D_8004E848[] = {0x2, 0x0, 0x0, 0x0}; +//D:8004E84C +struct image_sound isnd_chr = {&D_8004E844, &D_8004E848, 0x1, 0x1}; + +//D:8004E858 +u16 D_8004E858[] = {0x46, 0x00}; +//D:8004E85C +u8 D_8004E85C[] = {0x11, 0x12, 0x13, 0x0}; +//D:8004E860 +struct image_sound isnd_glass_xlu = {&D_8004E858, &D_8004E85C, 0x1, 0x3}; + +//D:8004E86C +u32 *D_8004E86C[] = { + &isnd_default, + &isnd_stone, + &isnd_wood, + &isnd_metal, + &isnd_glass, + &isnd_water, + &isnd_snow, + &isnd_dirt, + &isnd_mud, + &isnd_tile, + &isnd_metalobj, + &isnd_chr, + &isnd_glass_xlu, + "HIT_DEFAULT", + "HIT_STONE", + "HIT_WOOD", + "HIT_METAL", + "HIT_GLASS", + "HIT_WATER", + "HIT_SNOW", + "HIT_DIRT", + "HIT_MUD", + "HIT_TILE", + "HIT_METALOBJ", + "HIT_CHR", + "HIT_GLASS_XLU" +}; + + + +void nullsub_47(void) { + return; +} + + + + + +#ifdef NONMATCHING +void *sub_GAME_7F0CC4C8(void) { + void *temp_a0; + void *temp_v1; + void *phi_v1; + void *phi_a0; + + // Node 0 + phi_v1 = &dword_CODE_bss_8008D148; + phi_a0 = &dword_CODE_bss_8008D2A8; + // Node 1 + temp_a0 = (phi_a0 + 0x50); + phi_v1->unk2C = 0; + temp_a0->unk-3C = 0; + phi_v1->unk58 = 0; + temp_a0->unk-28 = 0; + phi_v1->unk84 = 0; + temp_a0->unk-14 = 0; + temp_v1 = (phi_v1 + 0xb0); + temp_v1->unk-B0 = 0; + temp_a0->unk-50 = 0; + phi_v1 = temp_v1; + phi_a0 = temp_a0; + if (temp_a0 != &dword_CODE_bss_8008D348) + { + goto loop_1; + } + // Node 2 + (void *)0x80090000->unk-2EC0 = -1; + return &dword_CODE_bss_8008D348; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CC4C8 +/* 100FF8 7F0CC4C8 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D148) +/* 100FFC 7F0CC4CC 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008D2A8) +/* 101000 7F0CC4D0 3C028009 */ lui $v0, %hi(dword_CODE_bss_8008D348) +/* 101004 7F0CC4D4 2442D348 */ addiu $v0, %lo(dword_CODE_bss_8008D348) # addiu $v0, $v0, -0x2cb8 +/* 101008 7F0CC4D8 2484D2A8 */ addiu $a0, %lo(dword_CODE_bss_8008D2A8) # addiu $a0, $a0, -0x2d58 +/* 10100C 7F0CC4DC 2463D148 */ addiu $v1, %lo(dword_CODE_bss_8008D148) # addiu $v1, $v1, -0x2eb8 +.L7F0CC4E0: +/* 101010 7F0CC4E0 24840050 */ addiu $a0, $a0, 0x50 +/* 101014 7F0CC4E4 AC60002C */ sw $zero, 0x2c($v1) +/* 101018 7F0CC4E8 AC80FFC4 */ sw $zero, -0x3c($a0) +/* 10101C 7F0CC4EC AC600058 */ sw $zero, 0x58($v1) +/* 101020 7F0CC4F0 AC80FFD8 */ sw $zero, -0x28($a0) +/* 101024 7F0CC4F4 AC600084 */ sw $zero, 0x84($v1) +/* 101028 7F0CC4F8 AC80FFEC */ sw $zero, -0x14($a0) +/* 10102C 7F0CC4FC 246300B0 */ addiu $v1, $v1, 0xb0 +/* 101030 7F0CC500 AC60FF50 */ sw $zero, -0xb0($v1) +/* 101034 7F0CC504 1482FFF6 */ bne $a0, $v0, .L7F0CC4E0 +/* 101038 7F0CC508 AC80FFB0 */ sw $zero, -0x50($a0) +/* 10103C 7F0CC50C 240EFFFF */ li $t6, -1 +/* 101040 7F0CC510 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D140) +/* 101044 7F0CC514 03E00008 */ jr $ra +/* 101048 7F0CC518 AC2ED140 */ sw $t6, %lo(dword_CODE_bss_8008D140)($at) +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0CC51C(void *arg0, s32 arg1, void *arg2) { + s32 temp_a1; + void *temp_v1; + void *phi_v0; + void *phi_v1; + s32 phi_a1; + void *phi_v1_2; + + // Node 0 + phi_v0 = arg0; + phi_v1 = arg2; + phi_a1 = arg1; + phi_v1_2 = arg2; + if (arg1 > 0) + { + loop_1: + // Node 1 + temp_a1 = (phi_a1 + -1); + temp_v1 = (phi_v1 + 1); + temp_v1->unk-1 = (s8) *phi_v0; + phi_v0 = (phi_v0 + 1); + phi_v1 = temp_v1; + phi_a1 = temp_a1; + phi_v1_2 = temp_v1; + if (temp_a1 > 0) + { + goto loop_1; + } + } + // Node 2 + return (phi_v1_2 - arg2); +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CC51C +/* 10104C 7F0CC51C 00801025 */ move $v0, $a0 +/* 101050 7F0CC520 18A00007 */ blez $a1, .L7F0CC540 +/* 101054 7F0CC524 00C01825 */ move $v1, $a2 +.L7F0CC528: +/* 101058 7F0CC528 904E0000 */ lbu $t6, ($v0) +/* 10105C 7F0CC52C 24A5FFFF */ addiu $a1, $a1, -1 +/* 101060 7F0CC530 24630001 */ addiu $v1, $v1, 1 +/* 101064 7F0CC534 24420001 */ addiu $v0, $v0, 1 +/* 101068 7F0CC538 1CA0FFFB */ bgtz $a1, .L7F0CC528 +/* 10106C 7F0CC53C A06EFFFF */ sb $t6, -1($v1) +.L7F0CC540: +/* 101070 7F0CC540 03E00008 */ jr $ra +/* 101074 7F0CC544 00661023 */ subu $v0, $v1, $a2 +) +#endif + + + + + +u32 sub_GAME_7F0CC548(s32 arg0) { + if (arg0 == dword_CODE_bss_8008D140) { + return 0; + } + dword_CODE_bss_8008D140 = arg0; + return 1; +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CC574(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { + void *temp_v0; + ? phi_v1; + + // Node 0 + temp_v0 = ((arg0 * 0x2c) + &dword_CODE_bss_8008D148); + if (((((((((((*temp_v0 == 0) || (arg1 != temp_v0->unk4)) || (arg2 != temp_v0->unk8)) || (arg3 != temp_v0->unkC)) || (arg4 != temp_v0->unk10)) || (arg5 != temp_v0->unk14)) || (arg6 != temp_v0->unk18)) || (arg7 != temp_v0->unk1C)) || (arg8 != temp_v0->unk20)) || (arg9 != temp_v0->unk24)) || (argA != temp_v0->unk28)) + { + // Node 11 + *temp_v0 = 1; + temp_v0->unk4 = arg1; + temp_v0->unk8 = arg2; + temp_v0->unkC = arg3; + temp_v0->unk10 = arg4; + temp_v0->unk14 = arg5; + temp_v0->unk18 = arg6; + temp_v0->unk1C = arg7; + temp_v0->unk20 = arg8; + temp_v0->unk24 = arg9; + temp_v0->unk28 = argA; + phi_v1 = 1; + } + else + { + + } + // Node 12 + return phi_v1; +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CC574 +/* 1010A4 7F0CC574 00047080 */ sll $t6, $a0, 2 +/* 1010A8 7F0CC578 01C47023 */ subu $t6, $t6, $a0 +/* 1010AC 7F0CC57C 000E7080 */ sll $t6, $t6, 2 +/* 1010B0 7F0CC580 01C47023 */ subu $t6, $t6, $a0 +/* 1010B4 7F0CC584 3C0F8009 */ lui $t7, %hi(dword_CODE_bss_8008D148) +/* 1010B8 7F0CC588 25EFD148 */ addiu $t7, %lo(dword_CODE_bss_8008D148) # addiu $t7, $t7, -0x2eb8 +/* 1010BC 7F0CC58C 000E7080 */ sll $t6, $t6, 2 +/* 1010C0 7F0CC590 01CF1021 */ addu $v0, $t6, $t7 +/* 1010C4 7F0CC594 8C580000 */ lw $t8, ($v0) +/* 1010C8 7F0CC598 00001825 */ move $v1, $zero +/* 1010CC 7F0CC59C 53000027 */ beql $t8, $zero, .L7F0CC63C +/* 1010D0 7F0CC5A0 8FAF0010 */ lw $t7, 0x10($sp) +/* 1010D4 7F0CC5A4 8C590004 */ lw $t9, 4($v0) +/* 1010D8 7F0CC5A8 54B90024 */ bnel $a1, $t9, .L7F0CC63C +/* 1010DC 7F0CC5AC 8FAF0010 */ lw $t7, 0x10($sp) +/* 1010E0 7F0CC5B0 8C480008 */ lw $t0, 8($v0) +/* 1010E4 7F0CC5B4 54C80021 */ bnel $a2, $t0, .L7F0CC63C +/* 1010E8 7F0CC5B8 8FAF0010 */ lw $t7, 0x10($sp) +/* 1010EC 7F0CC5BC 8C49000C */ lw $t1, 0xc($v0) +/* 1010F0 7F0CC5C0 8FAA0010 */ lw $t2, 0x10($sp) +/* 1010F4 7F0CC5C4 54E9001D */ bnel $a3, $t1, .L7F0CC63C +/* 1010F8 7F0CC5C8 8FAF0010 */ lw $t7, 0x10($sp) +/* 1010FC 7F0CC5CC 8C4B0010 */ lw $t3, 0x10($v0) +/* 101100 7F0CC5D0 8FAC0014 */ lw $t4, 0x14($sp) +/* 101104 7F0CC5D4 554B0019 */ bnel $t2, $t3, .L7F0CC63C +/* 101108 7F0CC5D8 8FAF0010 */ lw $t7, 0x10($sp) +/* 10110C 7F0CC5DC 8C4D0014 */ lw $t5, 0x14($v0) +/* 101110 7F0CC5E0 8FAE0018 */ lw $t6, 0x18($sp) +/* 101114 7F0CC5E4 558D0015 */ bnel $t4, $t5, .L7F0CC63C +/* 101118 7F0CC5E8 8FAF0010 */ lw $t7, 0x10($sp) +/* 10111C 7F0CC5EC 8C4F0018 */ lw $t7, 0x18($v0) +/* 101120 7F0CC5F0 8FB8001C */ lw $t8, 0x1c($sp) +/* 101124 7F0CC5F4 55CF0011 */ bnel $t6, $t7, .L7F0CC63C +/* 101128 7F0CC5F8 8FAF0010 */ lw $t7, 0x10($sp) +/* 10112C 7F0CC5FC 8C59001C */ lw $t9, 0x1c($v0) +/* 101130 7F0CC600 8FA80020 */ lw $t0, 0x20($sp) +/* 101134 7F0CC604 5719000D */ bnel $t8, $t9, .L7F0CC63C +/* 101138 7F0CC608 8FAF0010 */ lw $t7, 0x10($sp) +/* 10113C 7F0CC60C 8C490020 */ lw $t1, 0x20($v0) +/* 101140 7F0CC610 8FAA0024 */ lw $t2, 0x24($sp) +/* 101144 7F0CC614 55090009 */ bnel $t0, $t1, .L7F0CC63C +/* 101148 7F0CC618 8FAF0010 */ lw $t7, 0x10($sp) +/* 10114C 7F0CC61C 8C4B0024 */ lw $t3, 0x24($v0) +/* 101150 7F0CC620 8FAC0028 */ lw $t4, 0x28($sp) +/* 101154 7F0CC624 554B0005 */ bnel $t2, $t3, .L7F0CC63C +/* 101158 7F0CC628 8FAF0010 */ lw $t7, 0x10($sp) +/* 10115C 7F0CC62C 8C4D0028 */ lw $t5, 0x28($v0) +/* 101160 7F0CC630 118D0015 */ beq $t4, $t5, .L7F0CC688 +/* 101164 7F0CC634 00000000 */ nop +/* 101168 7F0CC638 8FAF0010 */ lw $t7, 0x10($sp) +.L7F0CC63C: +/* 10116C 7F0CC63C 8FB80014 */ lw $t8, 0x14($sp) +/* 101170 7F0CC640 8FB90018 */ lw $t9, 0x18($sp) +/* 101174 7F0CC644 8FA8001C */ lw $t0, 0x1c($sp) +/* 101178 7F0CC648 8FA90020 */ lw $t1, 0x20($sp) +/* 10117C 7F0CC64C 8FAA0024 */ lw $t2, 0x24($sp) +/* 101180 7F0CC650 8FAB0028 */ lw $t3, 0x28($sp) +/* 101184 7F0CC654 240E0001 */ li $t6, 1 +/* 101188 7F0CC658 24030001 */ li $v1, 1 +/* 10118C 7F0CC65C AC4E0000 */ sw $t6, ($v0) +/* 101190 7F0CC660 AC450004 */ sw $a1, 4($v0) +/* 101194 7F0CC664 AC460008 */ sw $a2, 8($v0) +/* 101198 7F0CC668 AC47000C */ sw $a3, 0xc($v0) +/* 10119C 7F0CC66C AC4F0010 */ sw $t7, 0x10($v0) +/* 1011A0 7F0CC670 AC580014 */ sw $t8, 0x14($v0) +/* 1011A4 7F0CC674 AC590018 */ sw $t9, 0x18($v0) +/* 1011A8 7F0CC678 AC48001C */ sw $t0, 0x1c($v0) +/* 1011AC 7F0CC67C AC490020 */ sw $t1, 0x20($v0) +/* 1011B0 7F0CC680 AC4A0024 */ sw $t2, 0x24($v0) +/* 1011B4 7F0CC684 AC4B0028 */ sw $t3, 0x28($v0) +.L7F0CC688: +/* 1011B8 7F0CC688 03E00008 */ jr $ra +/* 1011BC 7F0CC68C 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CC690(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + void *temp_v0; + ? phi_v1; + + // Node 0 + temp_v0 = ((arg0 * 0x14) + &dword_CODE_bss_8008D2A8); + if (((((*temp_v0 == 0) || (arg1 != temp_v0->unk4)) || (arg2 != temp_v0->unk8)) || (arg3 != temp_v0->unkC)) || (arg4 != temp_v0->unk10)) + { + // Node 5 + *temp_v0 = 1; + temp_v0->unk4 = arg1; + temp_v0->unk8 = arg2; + temp_v0->unkC = arg3; + temp_v0->unk10 = arg4; + phi_v1 = 1; + } + else + { + + } + // Node 6 + return phi_v1; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CC690 +/* 1011C0 7F0CC690 00047080 */ sll $t6, $a0, 2 +/* 1011C4 7F0CC694 01C47021 */ addu $t6, $t6, $a0 +/* 1011C8 7F0CC698 3C0F8009 */ lui $t7, %hi(dword_CODE_bss_8008D2A8) +/* 1011CC 7F0CC69C 25EFD2A8 */ addiu $t7, %lo(dword_CODE_bss_8008D2A8) # addiu $t7, $t7, -0x2d58 +/* 1011D0 7F0CC6A0 000E7080 */ sll $t6, $t6, 2 +/* 1011D4 7F0CC6A4 01CF1021 */ addu $v0, $t6, $t7 +/* 1011D8 7F0CC6A8 8C580000 */ lw $t8, ($v0) +/* 1011DC 7F0CC6AC 00001825 */ move $v1, $zero +/* 1011E0 7F0CC6B0 240C0001 */ li $t4, 1 +/* 1011E4 7F0CC6B4 5300000F */ beql $t8, $zero, .L7F0CC6F4 +/* 1011E8 7F0CC6B8 8FAD0010 */ lw $t5, 0x10($sp) +/* 1011EC 7F0CC6BC 8C590004 */ lw $t9, 4($v0) +/* 1011F0 7F0CC6C0 54B9000C */ bnel $a1, $t9, .L7F0CC6F4 +/* 1011F4 7F0CC6C4 8FAD0010 */ lw $t5, 0x10($sp) +/* 1011F8 7F0CC6C8 8C480008 */ lw $t0, 8($v0) +/* 1011FC 7F0CC6CC 54C80009 */ bnel $a2, $t0, .L7F0CC6F4 +/* 101200 7F0CC6D0 8FAD0010 */ lw $t5, 0x10($sp) +/* 101204 7F0CC6D4 8C49000C */ lw $t1, 0xc($v0) +/* 101208 7F0CC6D8 8FAA0010 */ lw $t2, 0x10($sp) +/* 10120C 7F0CC6DC 54E90005 */ bnel $a3, $t1, .L7F0CC6F4 +/* 101210 7F0CC6E0 8FAD0010 */ lw $t5, 0x10($sp) +/* 101214 7F0CC6E4 8C4B0010 */ lw $t3, 0x10($v0) +/* 101218 7F0CC6E8 114B0008 */ beq $t2, $t3, .L7F0CC70C +/* 10121C 7F0CC6EC 00000000 */ nop +/* 101220 7F0CC6F0 8FAD0010 */ lw $t5, 0x10($sp) +.L7F0CC6F4: +/* 101224 7F0CC6F4 24030001 */ li $v1, 1 +/* 101228 7F0CC6F8 AC4C0000 */ sw $t4, ($v0) +/* 10122C 7F0CC6FC AC450004 */ sw $a1, 4($v0) +/* 101230 7F0CC700 AC460008 */ sw $a2, 8($v0) +/* 101234 7F0CC704 AC47000C */ sw $a3, 0xc($v0) +/* 101238 7F0CC708 AC4D0010 */ sw $t5, 0x10($v0) +.L7F0CC70C: +/* 10123C 7F0CC70C 03E00008 */ jr $ra +/* 101240 7F0CC710 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CC714(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CC714 +/* 101244 7F0CC714 14A00003 */ bnez $a1, .L7F0CC724 +/* 101248 7F0CC718 90830008 */ lbu $v1, 8($a0) +/* 10124C 7F0CC71C 03E00008 */ jr $ra +/* 101250 7F0CC720 00601025 */ move $v0, $v1 + +.L7F0CC724: +/* 101254 7F0CC724 8C8E000C */ lw $t6, 0xc($a0) +/* 101258 7F0CC728 3C028009 */ lui $v0, %hi(dword_CODE_bss_8008D090) +/* 10125C 7F0CC72C 000EC080 */ sll $t8, $t6, 2 +/* 101260 7F0CC730 07010018 */ bgez $t8, .L7F0CC794 +/* 101264 7F0CC734 00000000 */ nop +/* 101268 7F0CC738 8C42D090 */ lw $v0, %lo(dword_CODE_bss_8008D090)($v0) +/* 10126C 7F0CC73C 00003025 */ move $a2, $zero +/* 101270 7F0CC740 18400012 */ blez $v0, .L7F0CC78C +/* 101274 7F0CC744 00000000 */ nop +/* 101278 7F0CC748 8C830000 */ lw $v1, ($a0) +/* 10127C 7F0CC74C 3C078009 */ lui $a3, %hi(word_CODE_bss_8008C730) +/* 101280 7F0CC750 24E7C730 */ addiu $a3, %lo(word_CODE_bss_8008C730) # addiu $a3, $a3, -0x38d0 +/* 101284 7F0CC754 0003CD02 */ srl $t9, $v1, 0x14 +/* 101288 7F0CC758 03201825 */ move $v1, $t9 +.L7F0CC75C: +/* 10128C 7F0CC75C 84E80000 */ lh $t0, ($a3) +/* 101290 7F0CC760 14680006 */ bne $v1, $t0, .L7F0CC77C +/* 101294 7F0CC764 00064900 */ sll $t1, $a2, 4 +/* 101298 7F0CC768 01255021 */ addu $t2, $t1, $a1 +/* 10129C 7F0CC76C 3C028009 */ lui $v0, %hi(word_CODE_bss_8008C730+1) +/* 1012A0 7F0CC770 004A1021 */ addu $v0, $v0, $t2 +/* 1012A4 7F0CC774 03E00008 */ jr $ra +/* 1012A8 7F0CC778 9042C731 */ lbu $v0, %lo(word_CODE_bss_8008C730+1)($v0) + +.L7F0CC77C: +/* 1012AC 7F0CC77C 24C60001 */ addiu $a2, $a2, 1 +/* 1012B0 7F0CC780 00C2082A */ slt $at, $a2, $v0 +/* 1012B4 7F0CC784 1420FFF5 */ bnez $at, .L7F0CC75C +/* 1012B8 7F0CC788 24E70010 */ addiu $a3, $a3, 0x10 +.L7F0CC78C: +/* 1012BC 7F0CC78C 03E00008 */ jr $ra +/* 1012C0 7F0CC790 24020001 */ li $v0, 1 + +.L7F0CC794: +/* 1012C4 7F0CC794 18A00016 */ blez $a1, .L7F0CC7F0 +/* 1012C8 7F0CC798 00003025 */ move $a2, $zero +/* 1012CC 7F0CC79C 30A40003 */ andi $a0, $a1, 3 +/* 1012D0 7F0CC7A0 10800008 */ beqz $a0, .L7F0CC7C4 +/* 1012D4 7F0CC7A4 00801025 */ move $v0, $a0 +.L7F0CC7A8: +/* 1012D8 7F0CC7A8 24630001 */ addiu $v1, $v1, 1 +/* 1012DC 7F0CC7AC 00035843 */ sra $t3, $v1, 1 +/* 1012E0 7F0CC7B0 24C60001 */ addiu $a2, $a2, 1 +/* 1012E4 7F0CC7B4 1446FFFC */ bne $v0, $a2, .L7F0CC7A8 +/* 1012E8 7F0CC7B8 01601825 */ move $v1, $t3 +/* 1012EC 7F0CC7BC 50C5000D */ beql $a2, $a1, .L7F0CC7F4 +/* 1012F0 7F0CC7C0 00601025 */ move $v0, $v1 +.L7F0CC7C4: +/* 1012F4 7F0CC7C4 24630001 */ addiu $v1, $v1, 1 +/* 1012F8 7F0CC7C8 00036043 */ sra $t4, $v1, 1 +/* 1012FC 7F0CC7CC 25830001 */ addiu $v1, $t4, 1 +/* 101300 7F0CC7D0 00036843 */ sra $t5, $v1, 1 +/* 101304 7F0CC7D4 25A30001 */ addiu $v1, $t5, 1 +/* 101308 7F0CC7D8 00037043 */ sra $t6, $v1, 1 +/* 10130C 7F0CC7DC 25C30001 */ addiu $v1, $t6, 1 +/* 101310 7F0CC7E0 00037843 */ sra $t7, $v1, 1 +/* 101314 7F0CC7E4 24C60004 */ addiu $a2, $a2, 4 +/* 101318 7F0CC7E8 14C5FFF6 */ bne $a2, $a1, .L7F0CC7C4 +/* 10131C 7F0CC7EC 01E01825 */ move $v1, $t7 +.L7F0CC7F0: +/* 101320 7F0CC7F0 00601025 */ move $v0, $v1 +.L7F0CC7F4: +/* 101324 7F0CC7F4 03E00008 */ jr $ra +/* 101328 7F0CC7F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CC7FC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CC7FC +/* 10132C 7F0CC7FC 14A00003 */ bnez $a1, .L7F0CC80C +/* 101330 7F0CC800 90830009 */ lbu $v1, 9($a0) +/* 101334 7F0CC804 03E00008 */ jr $ra +/* 101338 7F0CC808 00601025 */ move $v0, $v1 + +.L7F0CC80C: +/* 10133C 7F0CC80C 8C8E000C */ lw $t6, 0xc($a0) +/* 101340 7F0CC810 3C028009 */ lui $v0, %hi(dword_CODE_bss_8008D090) +/* 101344 7F0CC814 000EC080 */ sll $t8, $t6, 2 +/* 101348 7F0CC818 07010018 */ bgez $t8, .L7F0CC87C +/* 10134C 7F0CC81C 00000000 */ nop +/* 101350 7F0CC820 8C42D090 */ lw $v0, %lo(dword_CODE_bss_8008D090)($v0) +/* 101354 7F0CC824 00003025 */ move $a2, $zero +/* 101358 7F0CC828 18400012 */ blez $v0, .L7F0CC874 +/* 10135C 7F0CC82C 00000000 */ nop +/* 101360 7F0CC830 8C830000 */ lw $v1, ($a0) +/* 101364 7F0CC834 3C078009 */ lui $a3, %hi(word_CODE_bss_8008C730) +/* 101368 7F0CC838 24E7C730 */ addiu $a3, %lo(word_CODE_bss_8008C730) # addiu $a3, $a3, -0x38d0 +/* 10136C 7F0CC83C 0003CD02 */ srl $t9, $v1, 0x14 +/* 101370 7F0CC840 03201825 */ move $v1, $t9 +.L7F0CC844: +/* 101374 7F0CC844 84E80000 */ lh $t0, ($a3) +/* 101378 7F0CC848 14680006 */ bne $v1, $t0, .L7F0CC864 +/* 10137C 7F0CC84C 00064900 */ sll $t1, $a2, 4 +/* 101380 7F0CC850 01255021 */ addu $t2, $t1, $a1 +/* 101384 7F0CC854 3C028009 */ lui $v0, %hi(word_CODE_bss_8008C730+8) +/* 101388 7F0CC858 004A1021 */ addu $v0, $v0, $t2 +/* 10138C 7F0CC85C 03E00008 */ jr $ra +/* 101390 7F0CC860 9042C738 */ lbu $v0, %lo(word_CODE_bss_8008C730+8)($v0) + +.L7F0CC864: +/* 101394 7F0CC864 24C60001 */ addiu $a2, $a2, 1 +/* 101398 7F0CC868 00C2082A */ slt $at, $a2, $v0 +/* 10139C 7F0CC86C 1420FFF5 */ bnez $at, .L7F0CC844 +/* 1013A0 7F0CC870 24E70010 */ addiu $a3, $a3, 0x10 +.L7F0CC874: +/* 1013A4 7F0CC874 03E00008 */ jr $ra +/* 1013A8 7F0CC878 24020001 */ li $v0, 1 + +.L7F0CC87C: +/* 1013AC 7F0CC87C 18A00016 */ blez $a1, .L7F0CC8D8 +/* 1013B0 7F0CC880 00003025 */ move $a2, $zero +/* 1013B4 7F0CC884 30A40003 */ andi $a0, $a1, 3 +/* 1013B8 7F0CC888 10800008 */ beqz $a0, .L7F0CC8AC +/* 1013BC 7F0CC88C 00801025 */ move $v0, $a0 +.L7F0CC890: +/* 1013C0 7F0CC890 24630001 */ addiu $v1, $v1, 1 +/* 1013C4 7F0CC894 00035843 */ sra $t3, $v1, 1 +/* 1013C8 7F0CC898 24C60001 */ addiu $a2, $a2, 1 +/* 1013CC 7F0CC89C 1446FFFC */ bne $v0, $a2, .L7F0CC890 +/* 1013D0 7F0CC8A0 01601825 */ move $v1, $t3 +/* 1013D4 7F0CC8A4 50C5000D */ beql $a2, $a1, .L7F0CC8DC +/* 1013D8 7F0CC8A8 00601025 */ move $v0, $v1 +.L7F0CC8AC: +/* 1013DC 7F0CC8AC 24630001 */ addiu $v1, $v1, 1 +/* 1013E0 7F0CC8B0 00036043 */ sra $t4, $v1, 1 +/* 1013E4 7F0CC8B4 25830001 */ addiu $v1, $t4, 1 +/* 1013E8 7F0CC8B8 00036843 */ sra $t5, $v1, 1 +/* 1013EC 7F0CC8BC 25A30001 */ addiu $v1, $t5, 1 +/* 1013F0 7F0CC8C0 00037043 */ sra $t6, $v1, 1 +/* 1013F4 7F0CC8C4 25C30001 */ addiu $v1, $t6, 1 +/* 1013F8 7F0CC8C8 00037843 */ sra $t7, $v1, 1 +/* 1013FC 7F0CC8CC 24C60004 */ addiu $a2, $a2, 4 +/* 101400 7F0CC8D0 14C5FFF6 */ bne $a2, $a1, .L7F0CC8AC +/* 101404 7F0CC8D4 01E01825 */ move $v1, $t7 +.L7F0CC8D8: +/* 101408 7F0CC8D8 00601025 */ move $v0, $v1 +.L7F0CC8DC: +/* 10140C 7F0CC8DC 03E00008 */ jr $ra +/* 101410 7F0CC8E0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CC8E4(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CC8E4 +/* 101414 7F0CC8E4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 101418 7F0CC8E8 AFBF0014 */ sw $ra, 0x14($sp) +/* 10141C 7F0CC8EC 8C830008 */ lw $v1, 8($a0) +/* 101420 7F0CC8F0 306E0003 */ andi $t6, $v1, 3 +/* 101424 7F0CC8F4 0FC331C5 */ jal sub_GAME_7F0CC714 +/* 101428 7F0CC8F8 AFAE001C */ sw $t6, 0x1c($sp) +/* 10142C 7F0CC8FC 8FA3001C */ lw $v1, 0x1c($sp) +/* 101430 7F0CC900 24010003 */ li $at, 3 +/* 101434 7F0CC904 00402025 */ move $a0, $v0 +/* 101438 7F0CC908 14610008 */ bne $v1, $at, .L7F0CC92C +/* 10143C 7F0CC90C 8FBF0014 */ lw $ra, 0x14($sp) +/* 101440 7F0CC910 24420003 */ addiu $v0, $v0, 3 +/* 101444 7F0CC914 04410003 */ bgez $v0, .L7F0CC924 +/* 101448 7F0CC918 00027883 */ sra $t7, $v0, 2 +/* 10144C 7F0CC91C 24410003 */ addiu $at, $v0, 3 +/* 101450 7F0CC920 00017883 */ sra $t7, $at, 2 +.L7F0CC924: +/* 101454 7F0CC924 10000019 */ b .L7F0CC98C +/* 101458 7F0CC928 01E01025 */ move $v0, $t7 +.L7F0CC92C: +/* 10145C 7F0CC92C 24010002 */ li $at, 2 +/* 101460 7F0CC930 14610007 */ bne $v1, $at, .L7F0CC950 +/* 101464 7F0CC934 24820003 */ addiu $v0, $a0, 3 +/* 101468 7F0CC938 04410003 */ bgez $v0, .L7F0CC948 +/* 10146C 7F0CC93C 0002C083 */ sra $t8, $v0, 2 +/* 101470 7F0CC940 24410003 */ addiu $at, $v0, 3 +/* 101474 7F0CC944 0001C083 */ sra $t8, $at, 2 +.L7F0CC948: +/* 101478 7F0CC948 10000010 */ b .L7F0CC98C +/* 10147C 7F0CC94C 03001025 */ move $v0, $t8 +.L7F0CC950: +/* 101480 7F0CC950 24010001 */ li $at, 1 +/* 101484 7F0CC954 14610008 */ bne $v1, $at, .L7F0CC978 +/* 101488 7F0CC958 2482000F */ addiu $v0, $a0, 0xf +/* 10148C 7F0CC95C 24820007 */ addiu $v0, $a0, 7 +/* 101490 7F0CC960 04410003 */ bgez $v0, .L7F0CC970 +/* 101494 7F0CC964 0002C8C3 */ sra $t9, $v0, 3 +/* 101498 7F0CC968 24410007 */ addiu $at, $v0, 7 +/* 10149C 7F0CC96C 0001C8C3 */ sra $t9, $at, 3 +.L7F0CC970: +/* 1014A0 7F0CC970 10000006 */ b .L7F0CC98C +/* 1014A4 7F0CC974 03201025 */ move $v0, $t9 +.L7F0CC978: +/* 1014A8 7F0CC978 04410003 */ bgez $v0, .L7F0CC988 +/* 1014AC 7F0CC97C 00024103 */ sra $t0, $v0, 4 +/* 1014B0 7F0CC980 2441000F */ addiu $at, $v0, 0xf +/* 1014B4 7F0CC984 00014103 */ sra $t0, $at, 4 +.L7F0CC988: +/* 1014B8 7F0CC988 01001025 */ move $v0, $t0 +.L7F0CC98C: +/* 1014BC 7F0CC98C 03E00008 */ jr $ra +/* 1014C0 7F0CC990 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0CC994(s32 arg0, s32 arg1) { + s32 sp1C; + + // Node 0 + sp1C = sub_GAME_7F0CC7FC(); + return (sub_GAME_7F0CC8E4(arg0, arg1) * sp1C); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CC994 +/* 1014C4 7F0CC994 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 1014C8 7F0CC998 AFBF0014 */ sw $ra, 0x14($sp) +/* 1014CC 7F0CC99C AFA40020 */ sw $a0, 0x20($sp) +/* 1014D0 7F0CC9A0 0FC331FF */ jal sub_GAME_7F0CC7FC +/* 1014D4 7F0CC9A4 AFA50024 */ sw $a1, 0x24($sp) +/* 1014D8 7F0CC9A8 AFA2001C */ sw $v0, 0x1c($sp) +/* 1014DC 7F0CC9AC 8FA40020 */ lw $a0, 0x20($sp) +/* 1014E0 7F0CC9B0 0FC33239 */ jal sub_GAME_7F0CC8E4 +/* 1014E4 7F0CC9B4 8FA50024 */ lw $a1, 0x24($sp) +/* 1014E8 7F0CC9B8 8FAE001C */ lw $t6, 0x1c($sp) +/* 1014EC 7F0CC9BC 8FBF0014 */ lw $ra, 0x14($sp) +/* 1014F0 7F0CC9C0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 1014F4 7F0CC9C4 004E0019 */ multu $v0, $t6 +/* 1014F8 7F0CC9C8 00001012 */ mflo $v0 +/* 1014FC 7F0CC9CC 03E00008 */ jr $ra +/* 101500 7F0CC9D0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0CC9D4(void *arg0, void *arg1, void *arg2) { + s32 temp_t6; + u32 temp_t7; + s32 temp_ret; + s32 temp_s0; + u32 phi_s2; + s32 phi_s0; + s32 phi_return; + + // Node 0 + temp_t6 = (arg0->unk8 & 3); + temp_t7 = ((u32) arg0->unkB >> 5); + if (temp_t7 != 0) + { + // Node 1 + phi_s2 = temp_t7; + } + else + { + // Node 2 + phi_s2 = 1U; + } + // Node 3 + *arg2 = 0; + if (temp_t6 == 3) + { + // Node 4 + *arg1 = 3; + } + else + { + // Node 5 + if (temp_t6 == 2) + { + // Node 6 + *arg1 = 2; + } + else + { + // Node 7 + if (temp_t6 == 1) + { + // Node 8 + *arg1 = 2; + } + else + { + // Node 9 + *arg1 = 2; + } + } + } + // Node 10 + phi_s0 = 0; + phi_return = 3; + if (phi_s2 > 0) + { +loop_11: + // Node 11 + temp_ret = sub_GAME_7F0CC994(arg0, phi_s0); + temp_s0 = (phi_s0 + 1); + *arg2 = (s32) (*arg2 + (temp_ret * 4)); + phi_s0 = temp_s0; + phi_return = temp_ret; + if (temp_s0 != phi_s2) + { + goto loop_11; + } + } + // Node 12 + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CC9D4 +/* 101504 7F0CC9D4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 101508 7F0CC9D8 AFBF0024 */ sw $ra, 0x24($sp) +/* 10150C 7F0CC9DC AFB30020 */ sw $s3, 0x20($sp) +/* 101510 7F0CC9E0 AFB2001C */ sw $s2, 0x1c($sp) +/* 101514 7F0CC9E4 AFB10018 */ sw $s1, 0x18($sp) +/* 101518 7F0CC9E8 AFB00014 */ sw $s0, 0x14($sp) +/* 10151C 7F0CC9EC 8C830008 */ lw $v1, 8($a0) +/* 101520 7F0CC9F0 9082000B */ lbu $v0, 0xb($a0) +/* 101524 7F0CC9F4 00C08825 */ move $s1, $a2 +/* 101528 7F0CC9F8 306E0003 */ andi $t6, $v1, 3 +/* 10152C 7F0CC9FC 00027942 */ srl $t7, $v0, 5 +/* 101530 7F0CCA00 00809825 */ move $s3, $a0 +/* 101534 7F0CCA04 11E00003 */ beqz $t7, .L7F0CCA14 +/* 101538 7F0CCA08 01C01825 */ move $v1, $t6 +/* 10153C 7F0CCA0C 10000002 */ b .L7F0CCA18 +/* 101540 7F0CCA10 01E09025 */ move $s2, $t7 +.L7F0CCA14: +/* 101544 7F0CCA14 24120001 */ li $s2, 1 +.L7F0CCA18: +/* 101548 7F0CCA18 24020003 */ li $v0, 3 +/* 10154C 7F0CCA1C 14620003 */ bne $v1, $v0, .L7F0CCA2C +/* 101550 7F0CCA20 AE200000 */ sw $zero, ($s1) +/* 101554 7F0CCA24 1000000B */ b .L7F0CCA54 +/* 101558 7F0CCA28 ACA20000 */ sw $v0, ($a1) +.L7F0CCA2C: +/* 10155C 7F0CCA2C 24020002 */ li $v0, 2 +/* 101560 7F0CCA30 14620003 */ bne $v1, $v0, .L7F0CCA40 +/* 101564 7F0CCA34 24010001 */ li $at, 1 +/* 101568 7F0CCA38 10000006 */ b .L7F0CCA54 +/* 10156C 7F0CCA3C ACA20000 */ sw $v0, ($a1) +.L7F0CCA40: +/* 101570 7F0CCA40 54610004 */ bnel $v1, $at, .L7F0CCA54 +/* 101574 7F0CCA44 ACA20000 */ sw $v0, ($a1) +/* 101578 7F0CCA48 10000002 */ b .L7F0CCA54 +/* 10157C 7F0CCA4C ACA20000 */ sw $v0, ($a1) +/* 101580 7F0CCA50 ACA20000 */ sw $v0, ($a1) +.L7F0CCA54: +/* 101584 7F0CCA54 1A40000A */ blez $s2, .L7F0CCA80 +/* 101588 7F0CCA58 00008025 */ move $s0, $zero +.L7F0CCA5C: +/* 10158C 7F0CCA5C 02602025 */ move $a0, $s3 +/* 101590 7F0CCA60 0FC33265 */ jal sub_GAME_7F0CC994 +/* 101594 7F0CCA64 02002825 */ move $a1, $s0 +/* 101598 7F0CCA68 8E380000 */ lw $t8, ($s1) +/* 10159C 7F0CCA6C 0002C880 */ sll $t9, $v0, 2 +/* 1015A0 7F0CCA70 26100001 */ addiu $s0, $s0, 1 +/* 1015A4 7F0CCA74 03194021 */ addu $t0, $t8, $t9 +/* 1015A8 7F0CCA78 1612FFF8 */ bne $s0, $s2, .L7F0CCA5C +/* 1015AC 7F0CCA7C AE280000 */ sw $t0, ($s1) +.L7F0CCA80: +/* 1015B0 7F0CCA80 8FBF0024 */ lw $ra, 0x24($sp) +/* 1015B4 7F0CCA84 8FB00014 */ lw $s0, 0x14($sp) +/* 1015B8 7F0CCA88 8FB10018 */ lw $s1, 0x18($sp) +/* 1015BC 7F0CCA8C 8FB2001C */ lw $s2, 0x1c($sp) +/* 1015C0 7F0CCA90 8FB30020 */ lw $s3, 0x20($sp) +/* 1015C4 7F0CCA94 03E00008 */ jr $ra +/* 1015C8 7F0CCA98 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0CCA9C(s32 arg0) { + s32 temp_a0; + s32 temp_t6; + s32 temp_v1; + s32 phi_a0; + s32 phi_v1; + s32 phi_v1_2; + + // Node 0 + temp_a0 = (arg0 + -1); + phi_v1_2 = 0; + if (temp_a0 > 0) + { + // Node 1 + phi_a0 = temp_a0; + phi_v1 = 0; +loop_2: + // Node 2 + temp_t6 = ((s32) phi_a0 >> 1); + temp_v1 = (phi_v1 + 1); + phi_v1_2 = temp_v1; + if (temp_t6 > 0) + { + // Node 3 + phi_a0 = temp_t6; + phi_v1 = temp_v1; + phi_v1_2 = temp_v1; + if (temp_v1 != 8) + { + goto loop_2; + } + } + } + // Node 4 + return phi_v1_2; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CCA9C +/* 1015CC 7F0CCA9C 2484FFFF */ addiu $a0, $a0, -1 +/* 1015D0 7F0CCAA0 18800008 */ blez $a0, .L7F0CCAC4 +/* 1015D4 7F0CCAA4 00001825 */ move $v1, $zero +/* 1015D8 7F0CCAA8 24020008 */ li $v0, 8 +/* 1015DC 7F0CCAAC 00047043 */ sra $t6, $a0, 1 +.L7F0CCAB0: +/* 1015E0 7F0CCAB0 01C02025 */ move $a0, $t6 +/* 1015E4 7F0CCAB4 19C00003 */ blez $t6, .L7F0CCAC4 +/* 1015E8 7F0CCAB8 24630001 */ addiu $v1, $v1, 1 +/* 1015EC 7F0CCABC 5462FFFC */ bnel $v1, $v0, .L7F0CCAB0 +/* 1015F0 7F0CCAC0 00047043 */ sra $t6, $a0, 1 +.L7F0CCAC4: +/* 1015F4 7F0CCAC4 03E00008 */ jr $ra +/* 1015F8 7F0CCAC8 00601025 */ move $v0, $v1 +) +#endif + + + + + +u32 sub_GAME_7F0CCACC(s32 arg0) { + if (arg0 == 1) { + return 2; + } + if (arg0 == 2) { + return 1; + } + return 0; +} + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0CCAFC(f32 arg0) +{ + s32 temp_f4; + + temp_f4 = (s32) arg0; + if ((f32) temp_f4 < arg0) + { + return temp_f4 + 1; + } + return temp_f4; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CCAFC +/* 10162C 7F0CCAFC 4600610D */ trunc.w.s $f4, $f12 +/* 101630 7F0CCB00 44022000 */ mfc1 $v0, $f4 +/* 101634 7F0CCB04 00000000 */ nop +/* 101638 7F0CCB08 44823000 */ mtc1 $v0, $f6 +/* 10163C 7F0CCB0C 00401825 */ move $v1, $v0 +/* 101640 7F0CCB10 46803220 */ cvt.s.w $f8, $f6 +/* 101644 7F0CCB14 460C403C */ c.lt.s $f8, $f12 +/* 101648 7F0CCB18 00000000 */ nop +/* 10164C 7F0CCB1C 45000004 */ bc1f .L7F0CCB30 +/* 101650 7F0CCB20 00000000 */ nop +/* 101654 7F0CCB24 24430001 */ addiu $v1, $v0, 1 +/* 101658 7F0CCB28 03E00008 */ jr $ra +/* 10165C 7F0CCB2C 00601025 */ move $v0, $v1 + +.L7F0CCB30: +/* 101660 7F0CCB30 03E00008 */ jr $ra +/* 101664 7F0CCB34 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CCB38(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CCB38 +/* 101668 7F0CCB38 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 10166C 7F0CCB3C AFBF0014 */ sw $ra, 0x14($sp) +/* 101670 7F0CCB40 AFA40018 */ sw $a0, 0x18($sp) +/* 101674 7F0CCB44 0FC33239 */ jal sub_GAME_7F0CC8E4 +/* 101678 7F0CCB48 00002825 */ move $a1, $zero +/* 10167C 7F0CCB4C 8FAE0018 */ lw $t6, 0x18($sp) +/* 101680 7F0CCB50 24010003 */ li $at, 3 +/* 101684 7F0CCB54 00402025 */ move $a0, $v0 +/* 101688 7F0CCB58 8DC30008 */ lw $v1, 8($t6) +/* 10168C 7F0CCB5C 0002C080 */ sll $t8, $v0, 2 +/* 101690 7F0CCB60 306F0003 */ andi $t7, $v1, 3 +/* 101694 7F0CCB64 15E1000D */ bne $t7, $at, .L7F0CCB9C +/* 101698 7F0CCB68 01E01825 */ move $v1, $t7 +/* 10169C 7F0CCB6C 44983000 */ mtc1 $t8, $f6 +/* 1016A0 7F0CCB70 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 1016A4 7F0CCB74 44812000 */ mtc1 $at, $f4 +/* 1016A8 7F0CCB78 46803220 */ cvt.s.w $f8, $f6 +/* 1016AC 7F0CCB7C 3C014500 */ li $at, 0x45000000 # 2048.000000 +/* 1016B0 7F0CCB80 44818000 */ mtc1 $at, $f16 +/* 1016B4 7F0CCB84 46082283 */ div.s $f10, $f4, $f8 +/* 1016B8 7F0CCB88 46105302 */ mul.s $f12, $f10, $f16 +/* 1016BC 7F0CCB8C 0FC332BF */ jal sub_GAME_7F0CCAFC +/* 1016C0 7F0CCB90 00000000 */ nop +/* 1016C4 7F0CCB94 1000002B */ b .L7F0CCC44 +/* 1016C8 7F0CCB98 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0CCB9C: +/* 1016CC 7F0CCB9C 24010002 */ li $at, 2 +/* 1016D0 7F0CCBA0 1461000D */ bne $v1, $at, .L7F0CCBD8 +/* 1016D4 7F0CCBA4 0004C880 */ sll $t9, $a0, 2 +/* 1016D8 7F0CCBA8 44993000 */ mtc1 $t9, $f6 +/* 1016DC 7F0CCBAC 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 1016E0 7F0CCBB0 44819000 */ mtc1 $at, $f18 +/* 1016E4 7F0CCBB4 46803120 */ cvt.s.w $f4, $f6 +/* 1016E8 7F0CCBB8 3C014500 */ li $at, 0x45000000 # 2048.000000 +/* 1016EC 7F0CCBBC 44815000 */ mtc1 $at, $f10 +/* 1016F0 7F0CCBC0 46049203 */ div.s $f8, $f18, $f4 +/* 1016F4 7F0CCBC4 460A4302 */ mul.s $f12, $f8, $f10 +/* 1016F8 7F0CCBC8 0FC332BF */ jal sub_GAME_7F0CCAFC +/* 1016FC 7F0CCBCC 00000000 */ nop +/* 101700 7F0CCBD0 1000001C */ b .L7F0CCC44 +/* 101704 7F0CCBD4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0CCBD8: +/* 101708 7F0CCBD8 24010001 */ li $at, 1 +/* 10170C 7F0CCBDC 1461000E */ bne $v1, $at, .L7F0CCC18 +/* 101710 7F0CCBE0 00044900 */ sll $t1, $a0, 4 +/* 101714 7F0CCBE4 000440C0 */ sll $t0, $a0, 3 +/* 101718 7F0CCBE8 44883000 */ mtc1 $t0, $f6 +/* 10171C 7F0CCBEC 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 101720 7F0CCBF0 44818000 */ mtc1 $at, $f16 +/* 101724 7F0CCBF4 468034A0 */ cvt.s.w $f18, $f6 +/* 101728 7F0CCBF8 3C014500 */ li $at, 0x45000000 # 2048.000000 +/* 10172C 7F0CCBFC 44814000 */ mtc1 $at, $f8 +/* 101730 7F0CCC00 46128103 */ div.s $f4, $f16, $f18 +/* 101734 7F0CCC04 46082302 */ mul.s $f12, $f4, $f8 +/* 101738 7F0CCC08 0FC332BF */ jal sub_GAME_7F0CCAFC +/* 10173C 7F0CCC0C 00000000 */ nop +/* 101740 7F0CCC10 1000000C */ b .L7F0CCC44 +/* 101744 7F0CCC14 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0CCC18: +/* 101748 7F0CCC18 44893000 */ mtc1 $t1, $f6 +/* 10174C 7F0CCC1C 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 101750 7F0CCC20 44815000 */ mtc1 $at, $f10 +/* 101754 7F0CCC24 46803420 */ cvt.s.w $f16, $f6 +/* 101758 7F0CCC28 3C014500 */ li $at, 0x45000000 # 2048.000000 +/* 10175C 7F0CCC2C 44812000 */ mtc1 $at, $f4 +/* 101760 7F0CCC30 46105483 */ div.s $f18, $f10, $f16 +/* 101764 7F0CCC34 46049302 */ mul.s $f12, $f18, $f4 +/* 101768 7F0CCC38 0FC332BF */ jal sub_GAME_7F0CCAFC +/* 10176C 7F0CCC3C 00000000 */ nop +/* 101770 7F0CCC40 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0CCC44: +/* 101774 7F0CCC44 27BD0018 */ addiu $sp, $sp, 0x18 +/* 101778 7F0CCC48 03E00008 */ jr $ra +/* 10177C 7F0CCC4C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CCC50(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CCC50 +/* 101780 7F0CCC50 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 101784 7F0CCC54 AFBF0044 */ sw $ra, 0x44($sp) +/* 101788 7F0CCC58 AFB20040 */ sw $s2, 0x40($sp) +/* 10178C 7F0CCC5C AFB1003C */ sw $s1, 0x3c($sp) +/* 101790 7F0CCC60 AFB00038 */ sw $s0, 0x38($sp) +/* 101794 7F0CCC64 AFA60098 */ sw $a2, 0x98($sp) +/* 101798 7F0CCC68 AFA7009C */ sw $a3, 0x9c($sp) +/* 10179C 7F0CCC6C 8CAE0000 */ lw $t6, ($a1) +/* 1017A0 7F0CCC70 3C198005 */ lui $t9, %hi(image_entries) +/* 1017A4 7F0CCC74 00809025 */ move $s2, $a0 +/* 1017A8 7F0CCC78 000E7D02 */ srl $t7, $t6, 0x14 +/* 1017AC 7F0CCC7C 000FC0C0 */ sll $t8, $t7, 3 +/* 1017B0 7F0CCC80 27399300 */ addiu $t9, %lo(image_entries) # addiu $t9, $t9, -0x6d00 +/* 1017B4 7F0CCC84 00A08825 */ move $s1, $a1 +/* 1017B8 7F0CCC88 03198021 */ addu $s0, $t8, $t9 +/* 1017BC 7F0CCC8C 0FC332A7 */ jal sub_GAME_7F0CCA9C +/* 1017C0 7F0CCC90 90A40008 */ lbu $a0, 8($a1) +/* 1017C4 7F0CCC94 AFA20088 */ sw $v0, 0x88($sp) +/* 1017C8 7F0CCC98 0FC332A7 */ jal sub_GAME_7F0CCA9C +/* 1017CC 7F0CCC9C 92240009 */ lbu $a0, 9($s1) +/* 1017D0 7F0CCCA0 AFA20084 */ sw $v0, 0x84($sp) +/* 1017D4 7F0CCCA4 02202025 */ move $a0, $s1 +/* 1017D8 7F0CCCA8 0FC33239 */ jal sub_GAME_7F0CC8E4 +/* 1017DC 7F0CCCAC 00002825 */ move $a1, $zero +/* 1017E0 7F0CCCB0 8FA800A4 */ lw $t0, 0xa4($sp) +/* 1017E4 7F0CCCB4 02401825 */ move $v1, $s2 +/* 1017E8 7F0CCCB8 3C01FA00 */ lui $at, 0xfa00 +/* 1017EC 7F0CCCBC 310900FF */ andi $t1, $t0, 0xff +/* 1017F0 7F0CCCC0 00095200 */ sll $t2, $t1, 8 +/* 1017F4 7F0CCCC4 01415825 */ or $t3, $t2, $at +/* 1017F8 7F0CCCC8 240CFFFF */ li $t4, -1 +/* 1017FC 7F0CCCCC AC6C0004 */ sw $t4, 4($v1) +/* 101800 7F0CCCD0 AC6B0000 */ sw $t3, ($v1) +/* 101804 7F0CCCD4 8E24000C */ lw $a0, 0xc($s1) +/* 101808 7F0CCCD8 26520008 */ addiu $s2, $s2, 8 +/* 10180C 7F0CCCDC AFA20080 */ sw $v0, 0x80($sp) +/* 101810 7F0CCCE0 00046F82 */ srl $t5, $a0, 0x1e +/* 101814 7F0CCCE4 0FC33152 */ jal sub_GAME_7F0CC548 +/* 101818 7F0CCCE8 000D2380 */ sll $a0, $t5, 0xe +/* 10181C 7F0CCCEC 1040000A */ beqz $v0, .L7F0CCD18 +/* 101820 7F0CCCF0 8FA70080 */ lw $a3, 0x80($sp) +/* 101824 7F0CCCF4 3C0FBA00 */ lui $t7, (0xBA000E02 >> 16) # lui $t7, 0xba00 +/* 101828 7F0CCCF8 35EF0E02 */ ori $t7, (0xBA000E02 & 0xFFFF) # ori $t7, $t7, 0xe02 +/* 10182C 7F0CCCFC 02401025 */ move $v0, $s2 +/* 101830 7F0CCD00 AC4F0000 */ sw $t7, ($v0) +/* 101834 7F0CCD04 8E38000C */ lw $t8, 0xc($s1) +/* 101838 7F0CCD08 26520008 */ addiu $s2, $s2, 8 +/* 10183C 7F0CCD0C 0018CF82 */ srl $t9, $t8, 0x1e +/* 101840 7F0CCD10 00194380 */ sll $t0, $t9, 0xe +/* 101844 7F0CCD14 AC480004 */ sw $t0, 4($v0) +.L7F0CCD18: +/* 101848 7F0CCD18 920C0004 */ lbu $t4, 4($s0) +/* 10184C 7F0CCD1C 8E0A0004 */ lw $t2, 4($s0) +/* 101850 7F0CCD20 8E220008 */ lw $v0, 8($s1) +/* 101854 7F0CCD24 318D000F */ andi $t5, $t4, 0xf +/* 101858 7F0CCD28 00ED0019 */ multu $a3, $t5 +/* 10185C 7F0CCD2C 000A5F02 */ srl $t3, $t2, 0x1c +/* 101860 7F0CCD30 AFA00018 */ sw $zero, 0x18($sp) +/* 101864 7F0CCD34 AFA00014 */ sw $zero, 0x14($sp) +/* 101868 7F0CCD38 8FB80088 */ lw $t8, 0x88($sp) +/* 10186C 7F0CCD3C 00022EC0 */ sll $a1, $v0, 0x1b +/* 101870 7F0CCD40 00054F42 */ srl $t1, $a1, 0x1d +/* 101874 7F0CCD44 01202825 */ move $a1, $t1 +/* 101878 7F0CCD48 8FAA0084 */ lw $t2, 0x84($sp) +/* 10187C 7F0CCD4C 00002025 */ move $a0, $zero +/* 101880 7F0CCD50 00007012 */ mflo $t6 +/* 101884 7F0CCD54 016E7821 */ addu $t7, $t3, $t6 +/* 101888 7F0CCD58 AFAF0010 */ sw $t7, 0x10($sp) +/* 10188C 7F0CCD5C 92190005 */ lbu $t9, 5($s0) +/* 101890 7F0CCD60 8FAF00A0 */ lw $t7, 0xa0($sp) +/* 101894 7F0CCD64 8FAE009C */ lw $t6, 0x9c($sp) +/* 101898 7F0CCD68 00194102 */ srl $t0, $t9, 4 +/* 10189C 7F0CCD6C 03084823 */ subu $t1, $t8, $t0 +/* 1018A0 7F0CCD70 AFA9001C */ sw $t1, 0x1c($sp) +/* 1018A4 7F0CCD74 960C0004 */ lhu $t4, 4($s0) +/* 1018A8 7F0CCD78 AFA70080 */ sw $a3, 0x80($sp) +/* 1018AC 7F0CCD7C 30460003 */ andi $a2, $v0, 3 +/* 1018B0 7F0CCD80 318D000F */ andi $t5, $t4, 0xf +/* 1018B4 7F0CCD84 014D5823 */ subu $t3, $t2, $t5 +/* 1018B8 7F0CCD88 AFAB0020 */ sw $t3, 0x20($sp) +/* 1018BC 7F0CCD8C AFAF0028 */ sw $t7, 0x28($sp) +/* 1018C0 7F0CCD90 0FC3315D */ jal sub_GAME_7F0CC574 +/* 1018C4 7F0CCD94 AFAE0024 */ sw $t6, 0x24($sp) +/* 1018C8 7F0CCD98 1040003C */ beqz $v0, .L7F0CCE8C +/* 1018CC 7F0CCD9C 8FA70080 */ lw $a3, 0x80($sp) +/* 1018D0 7F0CCDA0 8E2A0008 */ lw $t2, 8($s1) +/* 1018D4 7F0CCDA4 3C01F500 */ lui $at, 0xf500 +/* 1018D8 7F0CCDA8 30EF01FF */ andi $t7, $a3, 0x1ff +/* 1018DC 7F0CCDAC 000ACEC0 */ sll $t9, $t2, 0x1b +/* 1018E0 7F0CCDB0 314D0003 */ andi $t5, $t2, 3 +/* 1018E4 7F0CCDB4 920A0004 */ lbu $t2, 4($s0) +/* 1018E8 7F0CCDB8 000D5CC0 */ sll $t3, $t5, 0x13 +/* 1018EC 7F0CCDBC 0019C742 */ srl $t8, $t9, 0x1d +/* 1018F0 7F0CCDC0 314D000F */ andi $t5, $t2, 0xf +/* 1018F4 7F0CCDC4 00ED0019 */ multu $a3, $t5 +/* 1018F8 7F0CCDC8 33080007 */ andi $t0, $t8, 7 +/* 1018FC 7F0CCDCC 00084D40 */ sll $t1, $t0, 0x15 +/* 101900 7F0CCDD0 8E080004 */ lw $t0, 4($s0) +/* 101904 7F0CCDD4 01216025 */ or $t4, $t1, $at +/* 101908 7F0CCDD8 018B7025 */ or $t6, $t4, $t3 +/* 10190C 7F0CCDDC 000FCA40 */ sll $t9, $t7, 9 +/* 101910 7F0CCDE0 00084F02 */ srl $t1, $t0, 0x1c +/* 101914 7F0CCDE4 01D9C025 */ or $t8, $t6, $t9 +/* 101918 7F0CCDE8 02401825 */ move $v1, $s2 +/* 10191C 7F0CCDEC 00006012 */ mflo $t4 +/* 101920 7F0CCDF0 012C5821 */ addu $t3, $t1, $t4 +/* 101924 7F0CCDF4 316F01FF */ andi $t7, $t3, 0x1ff +/* 101928 7F0CCDF8 030F7025 */ or $t6, $t8, $t7 +/* 10192C 7F0CCDFC AC6E0000 */ sw $t6, ($v1) +/* 101930 7F0CCE00 AFA30054 */ sw $v1, 0x54($sp) +/* 101934 7F0CCE04 26520008 */ addiu $s2, $s2, 8 +/* 101938 7F0CCE08 0FC332B3 */ jal sub_GAME_7F0CCACC +/* 10193C 7F0CCE0C 00002025 */ move $a0, $zero +/* 101940 7F0CCE10 00002025 */ move $a0, $zero +/* 101944 7F0CCE14 0FC332B3 */ jal sub_GAME_7F0CCACC +/* 101948 7F0CCE18 AFA2004C */ sw $v0, 0x4c($sp) +/* 10194C 7F0CCE1C 8FA3004C */ lw $v1, 0x4c($sp) +/* 101950 7F0CCE20 8FAC0084 */ lw $t4, 0x84($sp) +/* 101954 7F0CCE24 96180004 */ lhu $t8, 4($s0) +/* 101958 7F0CCE28 30590003 */ andi $t9, $v0, 3 +/* 10195C 7F0CCE2C 306A0003 */ andi $t2, $v1, 3 +/* 101960 7F0CCE30 000A6C80 */ sll $t5, $t2, 0x12 +/* 101964 7F0CCE34 00194200 */ sll $t0, $t9, 8 +/* 101968 7F0CCE38 010D4825 */ or $t1, $t0, $t5 +/* 10196C 7F0CCE3C 01987823 */ subu $t7, $t4, $t8 +/* 101970 7F0CCE40 8FA800A0 */ lw $t0, 0xa0($sp) +/* 101974 7F0CCE44 31EE000F */ andi $t6, $t7, 0xf +/* 101978 7F0CCE48 920F0005 */ lbu $t7, 5($s0) +/* 10197C 7F0CCE4C 000ECB80 */ sll $t9, $t6, 0xe +/* 101980 7F0CCE50 8FB80088 */ lw $t8, 0x88($sp) +/* 101984 7F0CCE54 01395025 */ or $t2, $t1, $t9 +/* 101988 7F0CCE58 310D000F */ andi $t5, $t0, 0xf +/* 10198C 7F0CCE5C 000D5A80 */ sll $t3, $t5, 0xa +/* 101990 7F0CCE60 014B6025 */ or $t4, $t2, $t3 +/* 101994 7F0CCE64 000F7102 */ srl $t6, $t7, 4 +/* 101998 7F0CCE68 8FAA009C */ lw $t2, 0x9c($sp) +/* 10199C 7F0CCE6C 030E4823 */ subu $t1, $t8, $t6 +/* 1019A0 7F0CCE70 3139000F */ andi $t9, $t1, 0xf +/* 1019A4 7F0CCE74 8FB80054 */ lw $t8, 0x54($sp) +/* 1019A8 7F0CCE78 00194100 */ sll $t0, $t9, 4 +/* 1019AC 7F0CCE7C 01886825 */ or $t5, $t4, $t0 +/* 1019B0 7F0CCE80 314B000F */ andi $t3, $t2, 0xf +/* 1019B4 7F0CCE84 01AB7825 */ or $t7, $t5, $t3 +/* 1019B8 7F0CCE88 AF0F0004 */ sw $t7, 4($t8) +.L7F0CCE8C: +/* 1019BC 7F0CCE8C 8FA40098 */ lw $a0, 0x98($sp) +/* 1019C0 7F0CCE90 24020002 */ li $v0, 2 +/* 1019C4 7F0CCE94 00001825 */ move $v1, $zero +/* 1019C8 7F0CCE98 14820007 */ bne $a0, $v0, .L7F0CCEB8 +/* 1019CC 7F0CCE9C 00000000 */ nop +/* 1019D0 7F0CCEA0 8E2E000C */ lw $t6, 0xc($s1) +/* 1019D4 7F0CCEA4 000EC880 */ sll $t9, $t6, 2 +/* 1019D8 7F0CCEA8 07200003 */ bltz $t9, .L7F0CCEB8 +/* 1019DC 7F0CCEAC 00000000 */ nop +/* 1019E0 7F0CCEB0 10000001 */ b .L7F0CCEB8 +/* 1019E4 7F0CCEB4 00401825 */ move $v1, $v0 +.L7F0CCEB8: +/* 1019E8 7F0CCEB8 14820007 */ bne $a0, $v0, .L7F0CCED8 +/* 1019EC 7F0CCEBC 00602825 */ move $a1, $v1 +/* 1019F0 7F0CCEC0 8E2C000C */ lw $t4, 0xc($s1) +/* 1019F4 7F0CCEC4 000C5080 */ sll $t2, $t4, 2 +/* 1019F8 7F0CCEC8 05420004 */ bltzl $t2, .L7F0CCEDC +/* 1019FC 7F0CCECC 00001825 */ move $v1, $zero +/* 101A00 7F0CCED0 10000002 */ b .L7F0CCEDC +/* 101A04 7F0CCED4 00401825 */ move $v1, $v0 +.L7F0CCED8: +/* 101A08 7F0CCED8 00001825 */ move $v1, $zero +.L7F0CCEDC: +/* 101A0C 7F0CCEDC 14820007 */ bne $a0, $v0, .L7F0CCEFC +/* 101A10 7F0CCEE0 00603025 */ move $a2, $v1 +/* 101A14 7F0CCEE4 8E2D000C */ lw $t5, 0xc($s1) +/* 101A18 7F0CCEE8 000D7880 */ sll $t7, $t5, 2 +/* 101A1C 7F0CCEEC 05E20004 */ bltzl $t7, .L7F0CCF00 +/* 101A20 7F0CCEF0 00001825 */ move $v1, $zero +/* 101A24 7F0CCEF4 10000002 */ b .L7F0CCF00 +/* 101A28 7F0CCEF8 00401825 */ move $v1, $v0 +.L7F0CCEFC: +/* 101A2C 7F0CCEFC 00001825 */ move $v1, $zero +.L7F0CCF00: +/* 101A30 7F0CCF00 92380008 */ lbu $t8, 8($s1) +/* 101A34 7F0CCF04 270EFFFF */ addiu $t6, $t8, -1 +/* 101A38 7F0CCF08 000E4880 */ sll $t1, $t6, 2 +/* 101A3C 7F0CCF0C 14820007 */ bne $a0, $v0, .L7F0CCF2C +/* 101A40 7F0CCF10 00693821 */ addu $a3, $v1, $t1 +/* 101A44 7F0CCF14 8E39000C */ lw $t9, 0xc($s1) +/* 101A48 7F0CCF18 00194080 */ sll $t0, $t9, 2 +/* 101A4C 7F0CCF1C 05020004 */ bltzl $t0, .L7F0CCF30 +/* 101A50 7F0CCF20 00001825 */ move $v1, $zero +/* 101A54 7F0CCF24 10000002 */ b .L7F0CCF30 +/* 101A58 7F0CCF28 24030002 */ li $v1, 2 +.L7F0CCF2C: +/* 101A5C 7F0CCF2C 00001825 */ move $v1, $zero +.L7F0CCF30: +/* 101A60 7F0CCF30 922A0009 */ lbu $t2, 9($s1) +/* 101A64 7F0CCF34 AFA70064 */ sw $a3, 0x64($sp) +/* 101A68 7F0CCF38 AFA60068 */ sw $a2, 0x68($sp) +/* 101A6C 7F0CCF3C 254DFFFF */ addiu $t5, $t2, -1 +/* 101A70 7F0CCF40 000D5880 */ sll $t3, $t5, 2 +/* 101A74 7F0CCF44 006B8021 */ addu $s0, $v1, $t3 +/* 101A78 7F0CCF48 AFB00010 */ sw $s0, 0x10($sp) +/* 101A7C 7F0CCF4C AFA5006C */ sw $a1, 0x6c($sp) +/* 101A80 7F0CCF50 0FC331A4 */ jal sub_GAME_7F0CC690 +/* 101A84 7F0CCF54 00002025 */ move $a0, $zero +/* 101A88 7F0CCF58 8FA5006C */ lw $a1, 0x6c($sp) +/* 101A8C 7F0CCF5C 8FA60068 */ lw $a2, 0x68($sp) +/* 101A90 7F0CCF60 1040000F */ beqz $v0, .L7F0CCFA0 +/* 101A94 7F0CCF64 8FA70064 */ lw $a3, 0x64($sp) +/* 101A98 7F0CCF68 30AF0FFF */ andi $t7, $a1, 0xfff +/* 101A9C 7F0CCF6C 000FC300 */ sll $t8, $t7, 0xc +/* 101AA0 7F0CCF70 02401025 */ move $v0, $s2 +/* 101AA4 7F0CCF74 3C01F200 */ lui $at, 0xf200 +/* 101AA8 7F0CCF78 30EC0FFF */ andi $t4, $a3, 0xfff +/* 101AAC 7F0CCF7C 000C4300 */ sll $t0, $t4, 0xc +/* 101AB0 7F0CCF80 03017025 */ or $t6, $t8, $at +/* 101AB4 7F0CCF84 30C90FFF */ andi $t1, $a2, 0xfff +/* 101AB8 7F0CCF88 320A0FFF */ andi $t2, $s0, 0xfff +/* 101ABC 7F0CCF8C 010A6825 */ or $t5, $t0, $t2 +/* 101AC0 7F0CCF90 01C9C825 */ or $t9, $t6, $t1 +/* 101AC4 7F0CCF94 AC590000 */ sw $t9, ($v0) +/* 101AC8 7F0CCF98 AC4D0004 */ sw $t5, 4($v0) +/* 101ACC 7F0CCF9C 26520008 */ addiu $s2, $s2, 8 +.L7F0CCFA0: +/* 101AD0 7F0CCFA0 8FBF0044 */ lw $ra, 0x44($sp) +/* 101AD4 7F0CCFA4 02401025 */ move $v0, $s2 +/* 101AD8 7F0CCFA8 8FB20040 */ lw $s2, 0x40($sp) +/* 101ADC 7F0CCFAC 8FB00038 */ lw $s0, 0x38($sp) +/* 101AE0 7F0CCFB0 8FB1003C */ lw $s1, 0x3c($sp) +/* 101AE4 7F0CCFB4 03E00008 */ jr $ra +/* 101AE8 7F0CCFB8 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CCFBC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CCFBC +/* 101AEC 7F0CCFBC 27BDFFF8 */ addiu $sp, $sp, -8 +/* 101AF0 7F0CCFC0 AFB00004 */ sw $s0, 4($sp) +/* 101AF4 7F0CCFC4 90C2000B */ lbu $v0, 0xb($a2) +/* 101AF8 7F0CCFC8 00808025 */ move $s0, $a0 +/* 101AFC 7F0CCFCC 00001825 */ move $v1, $zero +/* 101B00 7F0CCFD0 00027142 */ srl $t6, $v0, 5 +/* 101B04 7F0CCFD4 11C00003 */ beqz $t6, .L7F0CCFE4 +/* 101B08 7F0CCFD8 00000000 */ nop +/* 101B0C 7F0CCFDC 10000001 */ b .L7F0CCFE4 +/* 101B10 7F0CCFE0 25C3FFFF */ addiu $v1, $t6, -1 +.L7F0CCFE4: +/* 101B14 7F0CCFE4 50E0001A */ beql $a3, $zero, .L7F0CD050 +/* 101B18 7F0CCFE8 8CAD0000 */ lw $t5, ($a1) +/* 101B1C 7F0CCFEC 10A0000D */ beqz $a1, .L7F0CD024 +/* 101B20 7F0CCFF0 02001025 */ move $v0, $s0 +/* 101B24 7F0CCFF4 8CA40000 */ lw $a0, ($a1) +/* 101B28 7F0CCFF8 2401C7FF */ li $at, -14337 +/* 101B2C 7F0CCFFC 0003C2C0 */ sll $t8, $v1, 0xb +/* 101B30 7F0CD000 00817824 */ and $t7, $a0, $at +/* 101B34 7F0CD004 01F81025 */ or $v0, $t7, $t8 +/* 101B38 7F0CD008 50440018 */ beql $v0, $a0, .L7F0CD06C +/* 101B3C 7F0CD00C 02001025 */ move $v0, $s0 +/* 101B40 7F0CD010 AE020000 */ sw $v0, ($s0) +/* 101B44 7F0CD014 8CB90004 */ lw $t9, 4($a1) +/* 101B48 7F0CD018 26100008 */ addiu $s0, $s0, 8 +/* 101B4C 7F0CD01C 10000012 */ b .L7F0CD068 +/* 101B50 7F0CD020 AE19FFFC */ sw $t9, -4($s0) +.L7F0CD024: +/* 101B54 7F0CD024 30680007 */ andi $t0, $v1, 7 +/* 101B58 7F0CD028 00084AC0 */ sll $t1, $t0, 0xb +/* 101B5C 7F0CD02C 3C01BB00 */ lui $at, 0xbb00 +/* 101B60 7F0CD030 01215025 */ or $t2, $t1, $at +/* 101B64 7F0CD034 354B0001 */ ori $t3, $t2, 1 +/* 101B68 7F0CD038 240CFFFF */ li $t4, -1 +/* 101B6C 7F0CD03C AC4C0004 */ sw $t4, 4($v0) +/* 101B70 7F0CD040 AC4B0000 */ sw $t3, ($v0) +/* 101B74 7F0CD044 10000008 */ b .L7F0CD068 +/* 101B78 7F0CD048 26100008 */ addiu $s0, $s0, 8 +/* 101B7C 7F0CD04C 8CAD0000 */ lw $t5, ($a1) +.L7F0CD050: +/* 101B80 7F0CD050 2401C7FF */ li $at, -14337 +/* 101B84 7F0CD054 0003C2C0 */ sll $t8, $v1, 0xb +/* 101B88 7F0CD058 01A17024 */ and $t6, $t5, $at +/* 101B8C 7F0CD05C ACAE0000 */ sw $t6, ($a1) +/* 101B90 7F0CD060 01D8C825 */ or $t9, $t6, $t8 +/* 101B94 7F0CD064 ACB90000 */ sw $t9, ($a1) +.L7F0CD068: +/* 101B98 7F0CD068 02001025 */ move $v0, $s0 +.L7F0CD06C: +/* 101B9C 7F0CD06C 8FB00004 */ lw $s0, 4($sp) +/* 101BA0 7F0CD070 03E00008 */ jr $ra +/* 101BA4 7F0CD074 27BD0008 */ addiu $sp, $sp, 8 +) +#endif + + + + + +#ifdef NONMATCHING +void expland_c0_DL_psuedocommands(void) { + +} +#else +GLOBAL_ASM( +.text +glabel expland_c0_DL_psuedocommands +/* 101BA8 7F0CD078 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 101BAC 7F0CD07C AFB00034 */ sw $s0, 0x34($sp) +/* 101BB0 7F0CD080 00808025 */ move $s0, $a0 +/* 101BB4 7F0CD084 AFB10038 */ sw $s1, 0x38($sp) +/* 101BB8 7F0CD088 00A08825 */ move $s1, $a1 +/* 101BBC 7F0CD08C AFBF003C */ sw $ra, 0x3c($sp) +/* 101BC0 7F0CD090 AFA60098 */ sw $a2, 0x98($sp) +/* 101BC4 7F0CD094 00A02025 */ move $a0, $a1 +/* 101BC8 7F0CD098 27A5008C */ addiu $a1, $sp, 0x8c +/* 101BCC 7F0CD09C 0FC33275 */ jal sub_GAME_7F0CC9D4 +/* 101BD0 7F0CD0A0 27A60088 */ addiu $a2, $sp, 0x88 +/* 101BD4 7F0CD0A4 8E2E000C */ lw $t6, 0xc($s1) +/* 101BD8 7F0CD0A8 24040007 */ li $a0, 7 +/* 101BDC 7F0CD0AC 02001025 */ move $v0, $s0 +/* 101BE0 7F0CD0B0 000E7F82 */ srl $t7, $t6, 0x1e +/* 101BE4 7F0CD0B4 15E0004E */ bnez $t7, .L7F0CD1F0 +/* 101BE8 7F0CD0B8 3C01FD00 */ lui $at, 0xfd00 +/* 101BEC 7F0CD0BC 8E380008 */ lw $t8, 8($s1) +/* 101BF0 7F0CD0C0 8FAF008C */ lw $t7, 0x8c($sp) +/* 101BF4 7F0CD0C4 3C01FD00 */ lui $at, 0xfd00 +/* 101BF8 7F0CD0C8 0018CEC0 */ sll $t9, $t8, 0x1b +/* 101BFC 7F0CD0CC 00195F42 */ srl $t3, $t9, 0x1d +/* 101C00 7F0CD0D0 316C0007 */ andi $t4, $t3, 7 +/* 101C04 7F0CD0D4 000C6D40 */ sll $t5, $t4, 0x15 +/* 101C08 7F0CD0D8 31F80003 */ andi $t8, $t7, 3 +/* 101C0C 7F0CD0DC 0018CCC0 */ sll $t9, $t8, 0x13 +/* 101C10 7F0CD0E0 01A17025 */ or $t6, $t5, $at +/* 101C14 7F0CD0E4 01D95825 */ or $t3, $t6, $t9 +/* 101C18 7F0CD0E8 02001025 */ move $v0, $s0 +/* 101C1C 7F0CD0EC AC4B0000 */ sw $t3, ($v0) +/* 101C20 7F0CD0F0 8E2C0004 */ lw $t4, 4($s1) +/* 101C24 7F0CD0F4 26100008 */ addiu $s0, $s0, 8 +/* 101C28 7F0CD0F8 00003825 */ move $a3, $zero +/* 101C2C 7F0CD0FC AC4C0004 */ sw $t4, 4($v0) +/* 101C30 7F0CD100 8E250008 */ lw $a1, 8($s1) +/* 101C34 7F0CD104 8FB80098 */ lw $t8, 0x98($sp) +/* 101C38 7F0CD108 AFA00028 */ sw $zero, 0x28($sp) +/* 101C3C 7F0CD10C 00056EC0 */ sll $t5, $a1, 0x1b +/* 101C40 7F0CD110 000D2F42 */ srl $a1, $t5, 0x1d +/* 101C44 7F0CD114 AFA00024 */ sw $zero, 0x24($sp) +/* 101C48 7F0CD118 AFA00020 */ sw $zero, 0x20($sp) +/* 101C4C 7F0CD11C AFA0001C */ sw $zero, 0x1c($sp) +/* 101C50 7F0CD120 AFA00018 */ sw $zero, 0x18($sp) +/* 101C54 7F0CD124 AFA00014 */ sw $zero, 0x14($sp) +/* 101C58 7F0CD128 8FA6008C */ lw $a2, 0x8c($sp) +/* 101C5C 7F0CD12C 0FC3315D */ jal sub_GAME_7F0CC574 +/* 101C60 7F0CD130 AFB80010 */ sw $t8, 0x10($sp) +/* 101C64 7F0CD134 10400013 */ beqz $v0, .L7F0CD184 +/* 101C68 7F0CD138 3C0A0700 */ lui $t2, 0x700 +/* 101C6C 7F0CD13C 8E2E0008 */ lw $t6, 8($s1) +/* 101C70 7F0CD140 8FB8008C */ lw $t8, 0x8c($sp) +/* 101C74 7F0CD144 3C01F500 */ lui $at, 0xf500 +/* 101C78 7F0CD148 000ECEC0 */ sll $t9, $t6, 0x1b +/* 101C7C 7F0CD14C 00195F42 */ srl $t3, $t9, 0x1d +/* 101C80 7F0CD150 316C0007 */ andi $t4, $t3, 7 +/* 101C84 7F0CD154 000C6D40 */ sll $t5, $t4, 0x15 +/* 101C88 7F0CD158 8FAC0098 */ lw $t4, 0x98($sp) +/* 101C8C 7F0CD15C 01A17825 */ or $t7, $t5, $at +/* 101C90 7F0CD160 330E0003 */ andi $t6, $t8, 3 +/* 101C94 7F0CD164 000ECCC0 */ sll $t9, $t6, 0x13 +/* 101C98 7F0CD168 02001025 */ move $v0, $s0 +/* 101C9C 7F0CD16C 01F95825 */ or $t3, $t7, $t9 +/* 101CA0 7F0CD170 318D01FF */ andi $t5, $t4, 0x1ff +/* 101CA4 7F0CD174 016DC025 */ or $t8, $t3, $t5 +/* 101CA8 7F0CD178 AC580000 */ sw $t8, ($v0) +/* 101CAC 7F0CD17C AC4A0004 */ sw $t2, 4($v0) +/* 101CB0 7F0CD180 26100008 */ addiu $s0, $s0, 8 +.L7F0CD184: /*LoadTexture(){gDPLoadSync(); gDPLoadBlock();}*/ +/* 101CB4 7F0CD184 02001025 */ move $v0, $s0 +/* 101CB8 7F0CD188 26100008 */ addiu $s0, $s0, 8 +/* 101CBC 7F0CD18C 3C0EE600 */ lui $t6, 0xe600 +/* 101CC0 7F0CD190 AC4E0000 */ sw $t6, ($v0) +/* 101CC4 7F0CD194 AC400004 */ sw $zero, 4($v0) +/* 101CC8 7F0CD198 02002825 */ move $a1, $s0 +/* 101CCC 7F0CD19C 3C0FF300 */ lui $t7, 0xf300 +/* 101CD0 7F0CD1A0 ACAF0000 */ sw $t7, ($a1) +/* 101CD4 7F0CD1A4 8FA30088 */ lw $v1, 0x88($sp) +/* 101CD8 7F0CD1A8 26100008 */ addiu $s0, $s0, 8 +/* 101CDC 7F0CD1AC 3C0A0700 */ lui $t2, 0x700 +/* 101CE0 7F0CD1B0 2463FFFF */ addiu $v1, $v1, -1 +/* 101CE4 7F0CD1B4 286107FF */ slti $at, $v1, 0x7ff +/* 101CE8 7F0CD1B8 10200003 */ beqz $at, .L7F0CD1C8 +/* 101CEC 7F0CD1BC 02001025 */ move $v0, $s0 +/* 101CF0 7F0CD1C0 10000002 */ b .L7F0CD1CC +/* 101CF4 7F0CD1C4 00602025 */ move $a0, $v1 +.L7F0CD1C8: +/* 101CF8 7F0CD1C8 240407FF */ li $a0, 2047 +.L7F0CD1CC: +/* 101CFC 7F0CD1CC 30990FFF */ andi $t9, $a0, 0xfff +/* 101D00 7F0CD1D0 00196300 */ sll $t4, $t9, 0xc +/* 101D04 7F0CD1D4 018A5825 */ or $t3, $t4, $t2 +/* 101D08 7F0CD1D8 ACAB0004 */ sw $t3, 4($a1) +/* 101D0C 7F0CD1DC 3C0DE700 */ lui $t5, 0xe700 +/* 101D10 7F0CD1E0 AC4D0000 */ sw $t5, ($v0) +/* 101D14 7F0CD1E4 AC400004 */ sw $zero, 4($v0) +/* 101D18 7F0CD1E8 1000008B */ b .L7F0CD418 +/* 101D1C 7F0CD1EC 26100008 */ addiu $s0, $s0, 8 +.L7F0CD1F0: +/* 101D20 7F0CD1F0 8E380008 */ lw $t8, 8($s1) +/* 101D24 7F0CD1F4 8FAD008C */ lw $t5, 0x8c($sp) +/* 101D28 7F0CD1F8 26100008 */ addiu $s0, $s0, 8 +/* 101D2C 7F0CD1FC 001876C0 */ sll $t6, $t8, 0x1b +/* 101D30 7F0CD200 000E7F42 */ srl $t7, $t6, 0x1d +/* 101D34 7F0CD204 31F90007 */ andi $t9, $t7, 7 +/* 101D38 7F0CD208 00196540 */ sll $t4, $t9, 0x15 +/* 101D3C 7F0CD20C 31B80003 */ andi $t8, $t5, 3 +/* 101D40 7F0CD210 001874C0 */ sll $t6, $t8, 0x13 +/* 101D44 7F0CD214 01815825 */ or $t3, $t4, $at +/* 101D48 7F0CD218 016E7825 */ or $t7, $t3, $t6 +/* 101D4C 7F0CD21C AC4F0000 */ sw $t7, ($v0) +/* 101D50 7F0CD220 8E390004 */ lw $t9, 4($s1) +/* 101D54 7F0CD224 24040007 */ li $a0, 7 +/* 101D58 7F0CD228 00003825 */ move $a3, $zero +/* 101D5C 7F0CD22C AC590004 */ sw $t9, 4($v0) +/* 101D60 7F0CD230 8E250008 */ lw $a1, 8($s1) +/* 101D64 7F0CD234 8FB80098 */ lw $t8, 0x98($sp) +/* 101D68 7F0CD238 AFA00028 */ sw $zero, 0x28($sp) +/* 101D6C 7F0CD23C 000566C0 */ sll $t4, $a1, 0x1b +/* 101D70 7F0CD240 000C2F42 */ srl $a1, $t4, 0x1d +/* 101D74 7F0CD244 AFA00024 */ sw $zero, 0x24($sp) +/* 101D78 7F0CD248 AFA00020 */ sw $zero, 0x20($sp) +/* 101D7C 7F0CD24C AFA0001C */ sw $zero, 0x1c($sp) +/* 101D80 7F0CD250 AFA00018 */ sw $zero, 0x18($sp) +/* 101D84 7F0CD254 AFA00014 */ sw $zero, 0x14($sp) +/* 101D88 7F0CD258 8FA6008C */ lw $a2, 0x8c($sp) +/* 101D8C 7F0CD25C 0FC3315D */ jal sub_GAME_7F0CC574 +/* 101D90 7F0CD260 AFB80010 */ sw $t8, 0x10($sp) +/* 101D94 7F0CD264 10400014 */ beqz $v0, .L7F0CD2B8 +/* 101D98 7F0CD268 00003025 */ move $a2, $zero +/* 101D9C 7F0CD26C 8E2B0008 */ lw $t3, 8($s1) +/* 101DA0 7F0CD270 8FB8008C */ lw $t8, 0x8c($sp) +/* 101DA4 7F0CD274 3C01F500 */ lui $at, 0xf500 +/* 101DA8 7F0CD278 000B76C0 */ sll $t6, $t3, 0x1b +/* 101DAC 7F0CD27C 000E7F42 */ srl $t7, $t6, 0x1d +/* 101DB0 7F0CD280 31F90007 */ andi $t9, $t7, 7 +/* 101DB4 7F0CD284 00196540 */ sll $t4, $t9, 0x15 +/* 101DB8 7F0CD288 8FB90098 */ lw $t9, 0x98($sp) +/* 101DBC 7F0CD28C 01816825 */ or $t5, $t4, $at +/* 101DC0 7F0CD290 330B0003 */ andi $t3, $t8, 3 +/* 101DC4 7F0CD294 000B74C0 */ sll $t6, $t3, 0x13 +/* 101DC8 7F0CD298 02001025 */ move $v0, $s0 +/* 101DCC 7F0CD29C 01AE7825 */ or $t7, $t5, $t6 +/* 101DD0 7F0CD2A0 332C01FF */ andi $t4, $t9, 0x1ff +/* 101DD4 7F0CD2A4 3C0A0700 */ lui $t2, 0x700 +/* 101DD8 7F0CD2A8 01ECC025 */ or $t8, $t7, $t4 +/* 101DDC 7F0CD2AC AC580000 */ sw $t8, ($v0) +/* 101DE0 7F0CD2B0 AC4A0004 */ sw $t2, 4($v0) +/* 101DE4 7F0CD2B4 26100008 */ addiu $s0, $s0, 8 +.L7F0CD2B8: +/* 101DE8 7F0CD2B8 02001025 */ move $v0, $s0 +/* 101DEC 7F0CD2BC 26100008 */ addiu $s0, $s0, 8 +/* 101DF0 7F0CD2C0 3C0BE600 */ lui $t3, 0xe600 +/* 101DF4 7F0CD2C4 AC4B0000 */ sw $t3, ($v0) +/* 101DF8 7F0CD2C8 AC400004 */ sw $zero, 4($v0) +/* 101DFC 7F0CD2CC 02002825 */ move $a1, $s0 +/* 101E00 7F0CD2D0 3C0DF300 */ lui $t5, 0xf300 +/* 101E04 7F0CD2D4 ACAD0000 */ sw $t5, ($a1) +/* 101E08 7F0CD2D8 8FA30088 */ lw $v1, 0x88($sp) +/* 101E0C 7F0CD2DC 26100008 */ addiu $s0, $s0, 8 +/* 101E10 7F0CD2E0 3C0A0700 */ lui $t2, 0x700 +/* 101E14 7F0CD2E4 2463FFFF */ addiu $v1, $v1, -1 +/* 101E18 7F0CD2E8 286107FF */ slti $at, $v1, 0x7ff +/* 101E1C 7F0CD2EC 10200003 */ beqz $at, .L7F0CD2FC +/* 101E20 7F0CD2F0 02001025 */ move $v0, $s0 +/* 101E24 7F0CD2F4 10000002 */ b .L7F0CD300 +/* 101E28 7F0CD2F8 00602025 */ move $a0, $v1 +.L7F0CD2FC: +/* 101E2C 7F0CD2FC 240407FF */ li $a0, 2047 +.L7F0CD300: +/* 101E30 7F0CD300 308E0FFF */ andi $t6, $a0, 0xfff +/* 101E34 7F0CD304 000ECB00 */ sll $t9, $t6, 0xc +/* 101E38 7F0CD308 032A7825 */ or $t7, $t9, $t2 +/* 101E3C 7F0CD30C ACAF0004 */ sw $t7, 4($a1) +/* 101E40 7F0CD310 3C0CE700 */ lui $t4, 0xe700 +/* 101E44 7F0CD314 AC4C0000 */ sw $t4, ($v0) +/* 101E48 7F0CD318 AC400004 */ sw $zero, 4($v0) +/* 101E4C 7F0CD31C 9238000A */ lbu $t8, 0xa($s1) +/* 101E50 7F0CD320 8FA80088 */ lw $t0, 0x88($sp) +/* 101E54 7F0CD324 240B03FF */ li $t3, 1023 +/* 101E58 7F0CD328 01781823 */ subu $v1, $t3, $t8 +/* 101E5C 7F0CD32C 0068082B */ sltu $at, $v1, $t0 +/* 101E60 7F0CD330 10200003 */ beqz $at, .L7F0CD340 +/* 101E64 7F0CD334 26100008 */ addiu $s0, $s0, 8 +/* 101E68 7F0CD338 10000002 */ b .L7F0CD344 +/* 101E6C 7F0CD33C 00604825 */ move $t1, $v1 +.L7F0CD340: +/* 101E70 7F0CD340 00004825 */ move $t1, $zero +.L7F0CD344: +/* 101E74 7F0CD344 01094023 */ subu $t0, $t0, $t1 +/* 101E78 7F0CD348 240E0100 */ li $t6, 256 +/* 101E7C 7F0CD34C AFAE0010 */ sw $t6, 0x10($sp) +/* 101E80 7F0CD350 AFA80070 */ sw $t0, 0x70($sp) +/* 101E84 7F0CD354 24040007 */ li $a0, 7 +/* 101E88 7F0CD358 00002825 */ move $a1, $zero +/* 101E8C 7F0CD35C 24070001 */ li $a3, 1 +/* 101E90 7F0CD360 AFA00014 */ sw $zero, 0x14($sp) +/* 101E94 7F0CD364 AFA00018 */ sw $zero, 0x18($sp) +/* 101E98 7F0CD368 AFA0001C */ sw $zero, 0x1c($sp) +/* 101E9C 7F0CD36C AFA00020 */ sw $zero, 0x20($sp) +/* 101EA0 7F0CD370 AFA00024 */ sw $zero, 0x24($sp) +/* 101EA4 7F0CD374 AFA00028 */ sw $zero, 0x28($sp) +/* 101EA8 7F0CD378 0FC3315D */ jal sub_GAME_7F0CC574 +/* 101EAC 7F0CD37C AFA9006C */ sw $t1, 0x6c($sp) +/* 101EB0 7F0CD380 8FA80070 */ lw $t0, 0x70($sp) +/* 101EB4 7F0CD384 8FA9006C */ lw $t1, 0x6c($sp) +/* 101EB8 7F0CD388 10400007 */ beqz $v0, .L7F0CD3A8 +/* 101EBC 7F0CD38C 3C0A0700 */ lui $t2, 0x700 +/* 101EC0 7F0CD390 02001025 */ move $v0, $s0 +/* 101EC4 7F0CD394 3C19F500 */ lui $t9, (0xF5000300 >> 16) # lui $t9, 0xf500 +/* 101EC8 7F0CD398 37390300 */ ori $t9, (0xF5000300 & 0xFFFF) # ori $t9, $t9, 0x300 +/* 101ECC 7F0CD39C AC590000 */ sw $t9, ($v0) +/* 101ED0 7F0CD3A0 AC4A0004 */ sw $t2, 4($v0) +/* 101ED4 7F0CD3A4 26100008 */ addiu $s0, $s0, 8 +.L7F0CD3A8: +/* 101ED8 7F0CD3A8 02001025 */ move $v0, $s0 +/* 101EDC 7F0CD3AC 310B03FF */ andi $t3, $t0, 0x3ff +/* 101EE0 7F0CD3B0 000BC380 */ sll $t8, $t3, 0xe +/* 101EE4 7F0CD3B4 312403FF */ andi $a0, $t1, 0x3ff +/* 101EE8 7F0CD3B8 3C01F000 */ lui $at, 0xf000 +/* 101EEC 7F0CD3BC 26100008 */ addiu $s0, $s0, 8 +/* 101EF0 7F0CD3C0 3C0FE600 */ lui $t7, 0xe600 +/* 101EF4 7F0CD3C4 03016825 */ or $t5, $t8, $at +/* 101EF8 7F0CD3C8 00046080 */ sll $t4, $a0, 2 +/* 101EFC 7F0CD3CC AC4F0000 */ sw $t7, ($v0) +/* 101F00 7F0CD3D0 AC400004 */ sw $zero, 4($v0) +/* 101F04 7F0CD3D4 01AC7025 */ or $t6, $t5, $t4 +/* 101F08 7F0CD3D8 02001825 */ move $v1, $s0 +/* 101F0C 7F0CD3DC AC6E0000 */ sw $t6, ($v1) +/* 101F10 7F0CD3E0 9239000A */ lbu $t9, 0xa($s1) +/* 101F14 7F0CD3E4 01802025 */ move $a0, $t4 +/* 101F18 7F0CD3E8 26100008 */ addiu $s0, $s0, 8 +/* 101F1C 7F0CD3EC 03287821 */ addu $t7, $t9, $t0 +/* 101F20 7F0CD3F0 31EC03FF */ andi $t4, $t7, 0x3ff +/* 101F24 7F0CD3F4 000C5B80 */ sll $t3, $t4, 0xe +/* 101F28 7F0CD3F8 016AC025 */ or $t8, $t3, $t2 +/* 101F2C 7F0CD3FC 03046825 */ or $t5, $t8, $a0 +/* 101F30 7F0CD400 02002825 */ move $a1, $s0 +/* 101F34 7F0CD404 AC6D0004 */ sw $t5, 4($v1) +/* 101F38 7F0CD408 3C0EE700 */ lui $t6, 0xe700 +/* 101F3C 7F0CD40C ACAE0000 */ sw $t6, ($a1) +/* 101F40 7F0CD410 ACA00004 */ sw $zero, 4($a1) +/* 101F44 7F0CD414 26100008 */ addiu $s0, $s0, 8 +.L7F0CD418: +/* 101F48 7F0CD418 8FBF003C */ lw $ra, 0x3c($sp) +/* 101F4C 7F0CD41C 02001025 */ move $v0, $s0 +/* 101F50 7F0CD420 8FB00034 */ lw $s0, 0x34($sp) +/* 101F54 7F0CD424 8FB10038 */ lw $s1, 0x38($sp) +/* 101F58 7F0CD428 03E00008 */ jr $ra +/* 101F5C 7F0CD42C 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CD430(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CD430 +/* 101F60 7F0CD430 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 101F64 7F0CD434 8FAE00D0 */ lw $t6, 0xd0($sp) +/* 101F68 7F0CD438 AFBF005C */ sw $ra, 0x5c($sp) +/* 101F6C 7F0CD43C AFBE0058 */ sw $fp, 0x58($sp) +/* 101F70 7F0CD440 AFB70054 */ sw $s7, 0x54($sp) +/* 101F74 7F0CD444 AFB60050 */ sw $s6, 0x50($sp) +/* 101F78 7F0CD448 AFB5004C */ sw $s5, 0x4c($sp) +/* 101F7C 7F0CD44C AFB40048 */ sw $s4, 0x48($sp) +/* 101F80 7F0CD450 AFB30044 */ sw $s3, 0x44($sp) +/* 101F84 7F0CD454 AFB20040 */ sw $s2, 0x40($sp) +/* 101F88 7F0CD458 AFB1003C */ sw $s1, 0x3c($sp) +/* 101F8C 7F0CD45C AFB00038 */ sw $s0, 0x38($sp) +/* 101F90 7F0CD460 AFA600C0 */ sw $a2, 0xc0($sp) +/* 101F94 7F0CD464 AFA700C4 */ sw $a3, 0xc4($sp) +/* 101F98 7F0CD468 AFAE00B4 */ sw $t6, 0xb4($sp) +/* 101F9C 7F0CD46C 90A2000B */ lbu $v0, 0xb($a1) +/* 101FA0 7F0CD470 8FB000CC */ lw $s0, 0xcc($sp) +/* 101FA4 7F0CD474 00A0A825 */ move $s5, $a1 +/* 101FA8 7F0CD478 00027942 */ srl $t7, $v0, 5 +/* 101FAC 7F0CD47C 01F04021 */ addu $t0, $t7, $s0 +/* 101FB0 7F0CD480 0208082A */ slt $at, $s0, $t0 +/* 101FB4 7F0CD484 102000BC */ beqz $at, .L7F0CD778 +/* 101FB8 7F0CD488 0080B025 */ move $s6, $a0 +/* 101FBC 7F0CD48C 02109023 */ subu $s2, $s0, $s0 +/* 101FC0 7F0CD490 AFB000AC */ sw $s0, 0xac($sp) +/* 101FC4 7F0CD494 AFA80064 */ sw $t0, 0x64($sp) +.L7F0CD498: +/* 101FC8 7F0CD498 02A02025 */ move $a0, $s5 +/* 101FCC 7F0CD49C 0FC331C5 */ jal sub_GAME_7F0CC714 +/* 101FD0 7F0CD4A0 02402825 */ move $a1, $s2 +/* 101FD4 7F0CD4A4 0FC332A7 */ jal sub_GAME_7F0CCA9C +/* 101FD8 7F0CD4A8 00402025 */ move $a0, $v0 +/* 101FDC 7F0CD4AC 00409825 */ move $s3, $v0 +/* 101FE0 7F0CD4B0 02A02025 */ move $a0, $s5 +/* 101FE4 7F0CD4B4 0FC331FF */ jal sub_GAME_7F0CC7FC +/* 101FE8 7F0CD4B8 02402825 */ move $a1, $s2 +/* 101FEC 7F0CD4BC 0FC332A7 */ jal sub_GAME_7F0CCA9C +/* 101FF0 7F0CD4C0 00402025 */ move $a0, $v0 +/* 101FF4 7F0CD4C4 0040A025 */ move $s4, $v0 +/* 101FF8 7F0CD4C8 02A02025 */ move $a0, $s5 +/* 101FFC 7F0CD4CC 0FC33239 */ jal sub_GAME_7F0CC8E4 +/* 102000 7F0CD4D0 02402825 */ move $a1, $s2 +/* 102004 7F0CD4D4 00408025 */ move $s0, $v0 +/* 102008 7F0CD4D8 02A02025 */ move $a0, $s5 +/* 10200C 7F0CD4DC 0FC33265 */ jal sub_GAME_7F0CC994 +/* 102010 7F0CD4E0 02402825 */ move $a1, $s2 +/* 102014 7F0CD4E4 AFA20080 */ sw $v0, 0x80($sp) +/* 102018 7F0CD4E8 8EA3000C */ lw $v1, 0xc($s5) +/* 10201C 7F0CD4EC 0003F080 */ sll $fp, $v1, 2 +/* 102020 7F0CD4F0 00032782 */ srl $a0, $v1, 0x1e +/* 102024 7F0CD4F4 001EC7C2 */ srl $t8, $fp, 0x1f +/* 102028 7F0CD4F8 0004CB80 */ sll $t9, $a0, 0xe +/* 10202C 7F0CD4FC 0300F025 */ move $fp, $t8 +/* 102030 7F0CD500 0FC33152 */ jal sub_GAME_7F0CC548 +/* 102034 7F0CD504 03202025 */ move $a0, $t9 +/* 102038 7F0CD508 1040000A */ beqz $v0, .L7F0CD534 +/* 10203C 7F0CD50C 02003825 */ move $a3, $s0 +/* 102040 7F0CD510 3C09BA00 */ lui $t1, (0xBA000E02 >> 16) # lui $t1, 0xba00 +/* 102044 7F0CD514 35290E02 */ ori $t1, (0xBA000E02 & 0xFFFF) # ori $t1, $t1, 0xe02 +/* 102048 7F0CD518 02C01025 */ move $v0, $s6 +/* 10204C 7F0CD51C AC490000 */ sw $t1, ($v0) +/* 102050 7F0CD520 8EAA000C */ lw $t2, 0xc($s5) +/* 102054 7F0CD524 26D60008 */ addiu $s6, $s6, 8 +/* 102058 7F0CD528 000A5F82 */ srl $t3, $t2, 0x1e +/* 10205C 7F0CD52C 000B6380 */ sll $t4, $t3, 0xe +/* 102060 7F0CD530 AC4C0004 */ sw $t4, 4($v0) +.L7F0CD534: +/* 102064 7F0CD534 8EA20008 */ lw $v0, 8($s5) +/* 102068 7F0CD538 8FAE00B4 */ lw $t6, 0xb4($sp) +/* 10206C 7F0CD53C 8FAF00C0 */ lw $t7, 0xc0($sp) +/* 102070 7F0CD540 8FB800C4 */ lw $t8, 0xc4($sp) +/* 102074 7F0CD544 00022EC0 */ sll $a1, $v0, 0x1b +/* 102078 7F0CD548 00056F42 */ srl $t5, $a1, 0x1d +/* 10207C 7F0CD54C 01A02825 */ move $a1, $t5 +/* 102080 7F0CD550 AFB20028 */ sw $s2, 0x28($sp) +/* 102084 7F0CD554 AFB20024 */ sw $s2, 0x24($sp) +/* 102088 7F0CD558 AFB40020 */ sw $s4, 0x20($sp) +/* 10208C 7F0CD55C AFB3001C */ sw $s3, 0x1c($sp) +/* 102090 7F0CD560 8FA400AC */ lw $a0, 0xac($sp) +/* 102094 7F0CD564 30460003 */ andi $a2, $v0, 3 +/* 102098 7F0CD568 AFAE0010 */ sw $t6, 0x10($sp) +/* 10209C 7F0CD56C AFAF0014 */ sw $t7, 0x14($sp) +/* 1020A0 7F0CD570 0FC3315D */ jal sub_GAME_7F0CC574 +/* 1020A4 7F0CD574 AFB80018 */ sw $t8, 0x18($sp) +/* 1020A8 7F0CD578 1040002D */ beqz $v0, .L7F0CD630 +/* 1020AC 7F0CD57C 02C08825 */ move $s1, $s6 +/* 1020B0 7F0CD580 8EAD0008 */ lw $t5, 8($s5) +/* 1020B4 7F0CD584 3C01F500 */ lui $at, 0xf500 +/* 1020B8 7F0CD588 26D60008 */ addiu $s6, $s6, 8 +/* 1020BC 7F0CD58C 000DCEC0 */ sll $t9, $t5, 0x1b +/* 1020C0 7F0CD590 00194F42 */ srl $t1, $t9, 0x1d +/* 1020C4 7F0CD594 312A0007 */ andi $t2, $t1, 7 +/* 1020C8 7F0CD598 000A5D40 */ sll $t3, $t2, 0x15 +/* 1020CC 7F0CD59C 01616025 */ or $t4, $t3, $at +/* 1020D0 7F0CD5A0 8FAB00B4 */ lw $t3, 0xb4($sp) +/* 1020D4 7F0CD5A4 31AE0003 */ andi $t6, $t5, 3 +/* 1020D8 7F0CD5A8 000E7CC0 */ sll $t7, $t6, 0x13 +/* 1020DC 7F0CD5AC 321901FF */ andi $t9, $s0, 0x1ff +/* 1020E0 7F0CD5B0 00194A40 */ sll $t1, $t9, 9 +/* 1020E4 7F0CD5B4 018FC025 */ or $t8, $t4, $t7 +/* 1020E8 7F0CD5B8 03095025 */ or $t2, $t8, $t1 +/* 1020EC 7F0CD5BC 316D01FF */ andi $t5, $t3, 0x1ff +/* 1020F0 7F0CD5C0 014D7025 */ or $t6, $t2, $t5 +/* 1020F4 7F0CD5C4 AE2E0000 */ sw $t6, ($s1) +/* 1020F8 7F0CD5C8 0FC332B3 */ jal sub_GAME_7F0CCACC +/* 1020FC 7F0CD5CC 8FA400C4 */ lw $a0, 0xc4($sp) +/* 102100 7F0CD5D0 00408025 */ move $s0, $v0 +/* 102104 7F0CD5D4 0FC332B3 */ jal sub_GAME_7F0CCACC +/* 102108 7F0CD5D8 8FA400C0 */ lw $a0, 0xc0($sp) +/* 10210C 7F0CD5DC 8FB900AC */ lw $t9, 0xac($sp) +/* 102110 7F0CD5E0 304C0003 */ andi $t4, $v0, 3 +/* 102114 7F0CD5E4 000C7A00 */ sll $t7, $t4, 8 +/* 102118 7F0CD5E8 33380007 */ andi $t8, $t9, 7 +/* 10211C 7F0CD5EC 00184E00 */ sll $t1, $t8, 0x18 +/* 102120 7F0CD5F0 01E95825 */ or $t3, $t7, $t1 +/* 102124 7F0CD5F4 320A0003 */ andi $t2, $s0, 3 +/* 102128 7F0CD5F8 000A6C80 */ sll $t5, $t2, 0x12 +/* 10212C 7F0CD5FC 016D7025 */ or $t6, $t3, $t5 +/* 102130 7F0CD600 328C000F */ andi $t4, $s4, 0xf +/* 102134 7F0CD604 000CCB80 */ sll $t9, $t4, 0xe +/* 102138 7F0CD608 324F000F */ andi $t7, $s2, 0xf +/* 10213C 7F0CD60C 000F4A80 */ sll $t1, $t7, 0xa +/* 102140 7F0CD610 01D9C025 */ or $t8, $t6, $t9 +/* 102144 7F0CD614 326B000F */ andi $t3, $s3, 0xf +/* 102148 7F0CD618 000B6900 */ sll $t5, $t3, 4 +/* 10214C 7F0CD61C 03095025 */ or $t2, $t8, $t1 +/* 102150 7F0CD620 014D6025 */ or $t4, $t2, $t5 +/* 102154 7F0CD624 324E000F */ andi $t6, $s2, 0xf +/* 102158 7F0CD628 018EC825 */ or $t9, $t4, $t6 +/* 10215C 7F0CD62C AE390004 */ sw $t9, 4($s1) +.L7F0CD630: +/* 102160 7F0CD630 8FA200C8 */ lw $v0, 0xc8($sp) +/* 102164 7F0CD634 24030002 */ li $v1, 2 +/* 102168 7F0CD638 02A02025 */ move $a0, $s5 +/* 10216C 7F0CD63C 14430005 */ bne $v0, $v1, .L7F0CD654 +/* 102170 7F0CD640 02402825 */ move $a1, $s2 +/* 102174 7F0CD644 57C00004 */ bnezl $fp, .L7F0CD658 +/* 102178 7F0CD648 00008025 */ move $s0, $zero +/* 10217C 7F0CD64C 10000002 */ b .L7F0CD658 +/* 102180 7F0CD650 00608025 */ move $s0, $v1 +.L7F0CD654: +/* 102184 7F0CD654 00008025 */ move $s0, $zero +.L7F0CD658: +/* 102188 7F0CD658 14430005 */ bne $v0, $v1, .L7F0CD670 +/* 10218C 7F0CD65C AFB00090 */ sw $s0, 0x90($sp) +/* 102190 7F0CD660 57C00004 */ bnezl $fp, .L7F0CD674 +/* 102194 7F0CD664 00008025 */ move $s0, $zero +/* 102198 7F0CD668 10000002 */ b .L7F0CD674 +/* 10219C 7F0CD66C 00608025 */ move $s0, $v1 +.L7F0CD670: +/* 1021A0 7F0CD670 00008025 */ move $s0, $zero +.L7F0CD674: +/* 1021A4 7F0CD674 0FC331C5 */ jal sub_GAME_7F0CC714 +/* 1021A8 7F0CD678 0200B825 */ move $s7, $s0 +/* 1021AC 7F0CD67C 8FAF00C8 */ lw $t7, 0xc8($sp) +/* 1021B0 7F0CD680 00409825 */ move $s3, $v0 +/* 1021B4 7F0CD684 24010002 */ li $at, 2 +/* 1021B8 7F0CD688 15E10005 */ bne $t7, $at, .L7F0CD6A0 +/* 1021BC 7F0CD68C 2678FFFF */ addiu $t8, $s3, -1 +/* 1021C0 7F0CD690 57C00004 */ bnezl $fp, .L7F0CD6A4 +/* 1021C4 7F0CD694 00008025 */ move $s0, $zero +/* 1021C8 7F0CD698 10000002 */ b .L7F0CD6A4 +/* 1021CC 7F0CD69C 24100002 */ li $s0, 2 +.L7F0CD6A0: +/* 1021D0 7F0CD6A0 00008025 */ move $s0, $zero +.L7F0CD6A4: +/* 1021D4 7F0CD6A4 00184880 */ sll $t1, $t8, 2 +/* 1021D8 7F0CD6A8 0209A021 */ addu $s4, $s0, $t1 +/* 1021DC 7F0CD6AC 02A02025 */ move $a0, $s5 +/* 1021E0 7F0CD6B0 0FC331FF */ jal sub_GAME_7F0CC7FC +/* 1021E4 7F0CD6B4 02402825 */ move $a1, $s2 +/* 1021E8 7F0CD6B8 8FAB00C8 */ lw $t3, 0xc8($sp) +/* 1021EC 7F0CD6BC 24010002 */ li $at, 2 +/* 1021F0 7F0CD6C0 00409825 */ move $s3, $v0 +/* 1021F4 7F0CD6C4 15610005 */ bne $t3, $at, .L7F0CD6DC +/* 1021F8 7F0CD6C8 8FA400AC */ lw $a0, 0xac($sp) +/* 1021FC 7F0CD6CC 57C00004 */ bnezl $fp, .L7F0CD6E0 +/* 102200 7F0CD6D0 00008025 */ move $s0, $zero +/* 102204 7F0CD6D4 10000002 */ b .L7F0CD6E0 +/* 102208 7F0CD6D8 24100002 */ li $s0, 2 +.L7F0CD6DC: +/* 10220C 7F0CD6DC 00008025 */ move $s0, $zero +.L7F0CD6E0: +/* 102210 7F0CD6E0 266AFFFF */ addiu $t2, $s3, -1 +/* 102214 7F0CD6E4 000A6880 */ sll $t5, $t2, 2 +/* 102218 7F0CD6E8 020D8821 */ addu $s1, $s0, $t5 +/* 10221C 7F0CD6EC AFB10010 */ sw $s1, 0x10($sp) +/* 102220 7F0CD6F0 8FA50090 */ lw $a1, 0x90($sp) +/* 102224 7F0CD6F4 02E03025 */ move $a2, $s7 +/* 102228 7F0CD6F8 0FC331A4 */ jal sub_GAME_7F0CC690 +/* 10222C 7F0CD6FC 02803825 */ move $a3, $s4 +/* 102230 7F0CD700 10400014 */ beqz $v0, .L7F0CD754 +/* 102234 7F0CD704 26520001 */ addiu $s2, $s2, 1 +/* 102238 7F0CD708 8FAC0090 */ lw $t4, 0x90($sp) +/* 10223C 7F0CD70C 3C01F200 */ lui $at, 0xf200 +/* 102240 7F0CD710 32F80FFF */ andi $t8, $s7, 0xfff +/* 102244 7F0CD714 318E0FFF */ andi $t6, $t4, 0xfff +/* 102248 7F0CD718 000ECB00 */ sll $t9, $t6, 0xc +/* 10224C 7F0CD71C 03217825 */ or $t7, $t9, $at +/* 102250 7F0CD720 01F84825 */ or $t1, $t7, $t8 +/* 102254 7F0CD724 02C01025 */ move $v0, $s6 +/* 102258 7F0CD728 AC490000 */ sw $t1, ($v0) +/* 10225C 7F0CD72C 8FAB00AC */ lw $t3, 0xac($sp) +/* 102260 7F0CD730 328C0FFF */ andi $t4, $s4, 0xfff +/* 102264 7F0CD734 000C7300 */ sll $t6, $t4, 0xc +/* 102268 7F0CD738 316A0007 */ andi $t2, $t3, 7 +/* 10226C 7F0CD73C 000A6E00 */ sll $t5, $t2, 0x18 +/* 102270 7F0CD740 01AEC825 */ or $t9, $t5, $t6 +/* 102274 7F0CD744 322F0FFF */ andi $t7, $s1, 0xfff +/* 102278 7F0CD748 032FC025 */ or $t8, $t9, $t7 +/* 10227C 7F0CD74C AC580004 */ sw $t8, 4($v0) +/* 102280 7F0CD750 26D60008 */ addiu $s6, $s6, 8 +.L7F0CD754: +/* 102284 7F0CD754 8FAC00AC */ lw $t4, 0xac($sp) +/* 102288 7F0CD758 8FA900B4 */ lw $t1, 0xb4($sp) +/* 10228C 7F0CD75C 8FAB0080 */ lw $t3, 0x80($sp) +/* 102290 7F0CD760 8FAE0064 */ lw $t6, 0x64($sp) +/* 102294 7F0CD764 258D0001 */ addiu $t5, $t4, 1 +/* 102298 7F0CD768 012B5021 */ addu $t2, $t1, $t3 +/* 10229C 7F0CD76C AFAD00AC */ sw $t5, 0xac($sp) +/* 1022A0 7F0CD770 15AEFF49 */ bne $t5, $t6, .L7F0CD498 +/* 1022A4 7F0CD774 AFAA00B4 */ sw $t2, 0xb4($sp) +.L7F0CD778: +/* 1022A8 7F0CD778 8FBF005C */ lw $ra, 0x5c($sp) +/* 1022AC 7F0CD77C 02C01025 */ move $v0, $s6 +/* 1022B0 7F0CD780 8FB60050 */ lw $s6, 0x50($sp) +/* 1022B4 7F0CD784 8FB00038 */ lw $s0, 0x38($sp) +/* 1022B8 7F0CD788 8FB1003C */ lw $s1, 0x3c($sp) +/* 1022BC 7F0CD78C 8FB20040 */ lw $s2, 0x40($sp) +/* 1022C0 7F0CD790 8FB30044 */ lw $s3, 0x44($sp) +/* 1022C4 7F0CD794 8FB40048 */ lw $s4, 0x48($sp) +/* 1022C8 7F0CD798 8FB5004C */ lw $s5, 0x4c($sp) +/* 1022CC 7F0CD79C 8FB70054 */ lw $s7, 0x54($sp) +/* 1022D0 7F0CD7A0 8FBE0058 */ lw $fp, 0x58($sp) +/* 1022D4 7F0CD7A4 03E00008 */ jr $ra +/* 1022D8 7F0CD7A8 27BD00B8 */ addiu $sp, $sp, 0xb8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CD7AC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CD7AC +/* 1022DC 7F0CD7AC 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 1022E0 7F0CD7B0 AFB00034 */ sw $s0, 0x34($sp) +/* 1022E4 7F0CD7B4 00808025 */ move $s0, $a0 +/* 1022E8 7F0CD7B8 AFBF003C */ sw $ra, 0x3c($sp) +/* 1022EC 7F0CD7BC AFB10038 */ sw $s1, 0x38($sp) +/* 1022F0 7F0CD7C0 00A08825 */ move $s1, $a1 +/* 1022F4 7F0CD7C4 0FC332CE */ jal sub_GAME_7F0CCB38 +/* 1022F8 7F0CD7C8 00A02025 */ move $a0, $a1 +/* 1022FC 7F0CD7CC AFA2008C */ sw $v0, 0x8c($sp) +/* 102300 7F0CD7D0 02202025 */ move $a0, $s1 +/* 102304 7F0CD7D4 27A50094 */ addiu $a1, $sp, 0x94 +/* 102308 7F0CD7D8 0FC33275 */ jal sub_GAME_7F0CC9D4 +/* 10230C 7F0CD7DC 27A60090 */ addiu $a2, $sp, 0x90 +/* 102310 7F0CD7E0 8E2E000C */ lw $t6, 0xc($s1) +/* 102314 7F0CD7E4 24040007 */ li $a0, 7 +/* 102318 7F0CD7E8 02001025 */ move $v0, $s0 +/* 10231C 7F0CD7EC 000E7F82 */ srl $t7, $t6, 0x1e +/* 102320 7F0CD7F0 15E0004D */ bnez $t7, .L7F0CD928 +/* 102324 7F0CD7F4 3C01FD00 */ lui $at, 0xfd00 +/* 102328 7F0CD7F8 8E380008 */ lw $t8, 8($s1) +/* 10232C 7F0CD7FC 8FAF0094 */ lw $t7, 0x94($sp) +/* 102330 7F0CD800 3C01FD00 */ lui $at, 0xfd00 +/* 102334 7F0CD804 0018CEC0 */ sll $t9, $t8, 0x1b +/* 102338 7F0CD808 00195F42 */ srl $t3, $t9, 0x1d +/* 10233C 7F0CD80C 316C0007 */ andi $t4, $t3, 7 +/* 102340 7F0CD810 000C6D40 */ sll $t5, $t4, 0x15 +/* 102344 7F0CD814 31F80003 */ andi $t8, $t7, 3 +/* 102348 7F0CD818 0018CCC0 */ sll $t9, $t8, 0x13 +/* 10234C 7F0CD81C 01A17025 */ or $t6, $t5, $at +/* 102350 7F0CD820 01D95825 */ or $t3, $t6, $t9 +/* 102354 7F0CD824 02001025 */ move $v0, $s0 +/* 102358 7F0CD828 AC4B0000 */ sw $t3, ($v0) +/* 10235C 7F0CD82C 8E2C0004 */ lw $t4, 4($s1) +/* 102360 7F0CD830 26100008 */ addiu $s0, $s0, 8 +/* 102364 7F0CD834 00003825 */ move $a3, $zero +/* 102368 7F0CD838 AC4C0004 */ sw $t4, 4($v0) +/* 10236C 7F0CD83C 8E250008 */ lw $a1, 8($s1) +/* 102370 7F0CD840 AFA00028 */ sw $zero, 0x28($sp) +/* 102374 7F0CD844 AFA00024 */ sw $zero, 0x24($sp) +/* 102378 7F0CD848 00056EC0 */ sll $t5, $a1, 0x1b +/* 10237C 7F0CD84C 000D2F42 */ srl $a1, $t5, 0x1d +/* 102380 7F0CD850 AFA00020 */ sw $zero, 0x20($sp) +/* 102384 7F0CD854 AFA0001C */ sw $zero, 0x1c($sp) +/* 102388 7F0CD858 AFA00018 */ sw $zero, 0x18($sp) +/* 10238C 7F0CD85C AFA00014 */ sw $zero, 0x14($sp) +/* 102390 7F0CD860 AFA00010 */ sw $zero, 0x10($sp) +/* 102394 7F0CD864 0FC3315D */ jal sub_GAME_7F0CC574 +/* 102398 7F0CD868 8FA60094 */ lw $a2, 0x94($sp) +/* 10239C 7F0CD86C 10400010 */ beqz $v0, .L7F0CD8B0 +/* 1023A0 7F0CD870 3C0A0700 */ lui $t2, 0x700 +/* 1023A4 7F0CD874 8E380008 */ lw $t8, 8($s1) +/* 1023A8 7F0CD878 8FAF0094 */ lw $t7, 0x94($sp) +/* 1023AC 7F0CD87C 02001025 */ move $v0, $s0 +/* 1023B0 7F0CD880 001876C0 */ sll $t6, $t8, 0x1b +/* 1023B4 7F0CD884 000ECF42 */ srl $t9, $t6, 0x1d +/* 1023B8 7F0CD888 332B0007 */ andi $t3, $t9, 7 +/* 1023BC 7F0CD88C 000B6540 */ sll $t4, $t3, 0x15 +/* 1023C0 7F0CD890 3C01F500 */ lui $at, 0xf500 +/* 1023C4 7F0CD894 31F80003 */ andi $t8, $t7, 3 +/* 1023C8 7F0CD898 001874C0 */ sll $t6, $t8, 0x13 +/* 1023CC 7F0CD89C 01816825 */ or $t5, $t4, $at +/* 1023D0 7F0CD8A0 01AEC825 */ or $t9, $t5, $t6 +/* 1023D4 7F0CD8A4 AC590000 */ sw $t9, ($v0) +/* 1023D8 7F0CD8A8 AC4A0004 */ sw $t2, 4($v0) +/* 1023DC 7F0CD8AC 26100008 */ addiu $s0, $s0, 8 +.L7F0CD8B0: +/* 1023E0 7F0CD8B0 02001025 */ move $v0, $s0 +/* 1023E4 7F0CD8B4 26100008 */ addiu $s0, $s0, 8 +/* 1023E8 7F0CD8B8 3C0BE600 */ lui $t3, 0xe600 +/* 1023EC 7F0CD8BC AC4B0000 */ sw $t3, ($v0) +/* 1023F0 7F0CD8C0 AC400004 */ sw $zero, 4($v0) +/* 1023F4 7F0CD8C4 02002825 */ move $a1, $s0 +/* 1023F8 7F0CD8C8 3C0CF300 */ lui $t4, 0xf300 +/* 1023FC 7F0CD8CC ACAC0000 */ sw $t4, ($a1) +/* 102400 7F0CD8D0 8FA30090 */ lw $v1, 0x90($sp) +/* 102404 7F0CD8D4 3C0A0700 */ lui $t2, 0x700 +/* 102408 7F0CD8D8 8FAE008C */ lw $t6, 0x8c($sp) +/* 10240C 7F0CD8DC 2463FFFF */ addiu $v1, $v1, -1 +/* 102410 7F0CD8E0 286107FF */ slti $at, $v1, 0x7ff +/* 102414 7F0CD8E4 10200003 */ beqz $at, .L7F0CD8F4 +/* 102418 7F0CD8E8 26100008 */ addiu $s0, $s0, 8 +/* 10241C 7F0CD8EC 10000002 */ b .L7F0CD8F8 +/* 102420 7F0CD8F0 00602025 */ move $a0, $v1 +.L7F0CD8F4: +/* 102424 7F0CD8F4 240407FF */ li $a0, 2047 +.L7F0CD8F8: +/* 102428 7F0CD8F8 308F0FFF */ andi $t7, $a0, 0xfff +/* 10242C 7F0CD8FC 000FC300 */ sll $t8, $t7, 0xc +/* 102430 7F0CD900 030A6825 */ or $t5, $t8, $t2 +/* 102434 7F0CD904 31D90FFF */ andi $t9, $t6, 0xfff +/* 102438 7F0CD908 01B95825 */ or $t3, $t5, $t9 +/* 10243C 7F0CD90C 02001025 */ move $v0, $s0 +/* 102440 7F0CD910 ACAB0004 */ sw $t3, 4($a1) +/* 102444 7F0CD914 3C0CE700 */ lui $t4, 0xe700 +/* 102448 7F0CD918 AC4C0000 */ sw $t4, ($v0) +/* 10244C 7F0CD91C AC400004 */ sw $zero, 4($v0) +/* 102450 7F0CD920 1000008A */ b .L7F0CDB4C +/* 102454 7F0CD924 26100008 */ addiu $s0, $s0, 8 +.L7F0CD928: +/* 102458 7F0CD928 8E2F0008 */ lw $t7, 8($s1) +/* 10245C 7F0CD92C 8FAC0094 */ lw $t4, 0x94($sp) +/* 102460 7F0CD930 26100008 */ addiu $s0, $s0, 8 +/* 102464 7F0CD934 000FC6C0 */ sll $t8, $t7, 0x1b +/* 102468 7F0CD938 00187742 */ srl $t6, $t8, 0x1d +/* 10246C 7F0CD93C 31CD0007 */ andi $t5, $t6, 7 +/* 102470 7F0CD940 000DCD40 */ sll $t9, $t5, 0x15 +/* 102474 7F0CD944 318F0003 */ andi $t7, $t4, 3 +/* 102478 7F0CD948 000FC4C0 */ sll $t8, $t7, 0x13 +/* 10247C 7F0CD94C 03215825 */ or $t3, $t9, $at +/* 102480 7F0CD950 01787025 */ or $t6, $t3, $t8 +/* 102484 7F0CD954 AC4E0000 */ sw $t6, ($v0) +/* 102488 7F0CD958 8E2D0004 */ lw $t5, 4($s1) +/* 10248C 7F0CD95C 24040007 */ li $a0, 7 +/* 102490 7F0CD960 00003825 */ move $a3, $zero +/* 102494 7F0CD964 AC4D0004 */ sw $t5, 4($v0) +/* 102498 7F0CD968 8E250008 */ lw $a1, 8($s1) +/* 10249C 7F0CD96C AFA00028 */ sw $zero, 0x28($sp) +/* 1024A0 7F0CD970 AFA00024 */ sw $zero, 0x24($sp) +/* 1024A4 7F0CD974 0005CEC0 */ sll $t9, $a1, 0x1b +/* 1024A8 7F0CD978 00192F42 */ srl $a1, $t9, 0x1d +/* 1024AC 7F0CD97C AFA00020 */ sw $zero, 0x20($sp) +/* 1024B0 7F0CD980 AFA0001C */ sw $zero, 0x1c($sp) +/* 1024B4 7F0CD984 AFA00018 */ sw $zero, 0x18($sp) +/* 1024B8 7F0CD988 AFA00014 */ sw $zero, 0x14($sp) +/* 1024BC 7F0CD98C AFA00010 */ sw $zero, 0x10($sp) +/* 1024C0 7F0CD990 0FC3315D */ jal sub_GAME_7F0CC574 +/* 1024C4 7F0CD994 8FA60094 */ lw $a2, 0x94($sp) +/* 1024C8 7F0CD998 10400011 */ beqz $v0, .L7F0CD9E0 +/* 1024CC 7F0CD99C 00003025 */ move $a2, $zero +/* 1024D0 7F0CD9A0 8E2F0008 */ lw $t7, 8($s1) +/* 1024D4 7F0CD9A4 8FAC0094 */ lw $t4, 0x94($sp) +/* 1024D8 7F0CD9A8 02001025 */ move $v0, $s0 +/* 1024DC 7F0CD9AC 000F5EC0 */ sll $t3, $t7, 0x1b +/* 1024E0 7F0CD9B0 000BC742 */ srl $t8, $t3, 0x1d +/* 1024E4 7F0CD9B4 330E0007 */ andi $t6, $t8, 7 +/* 1024E8 7F0CD9B8 000E6D40 */ sll $t5, $t6, 0x15 +/* 1024EC 7F0CD9BC 3C01F500 */ lui $at, 0xf500 +/* 1024F0 7F0CD9C0 318F0003 */ andi $t7, $t4, 3 +/* 1024F4 7F0CD9C4 000F5CC0 */ sll $t3, $t7, 0x13 +/* 1024F8 7F0CD9C8 01A1C825 */ or $t9, $t5, $at +/* 1024FC 7F0CD9CC 3C0A0700 */ lui $t2, 0x700 +/* 102500 7F0CD9D0 032BC025 */ or $t8, $t9, $t3 +/* 102504 7F0CD9D4 AC580000 */ sw $t8, ($v0) +/* 102508 7F0CD9D8 AC4A0004 */ sw $t2, 4($v0) +/* 10250C 7F0CD9DC 26100008 */ addiu $s0, $s0, 8 +.L7F0CD9E0: +/* 102510 7F0CD9E0 02001025 */ move $v0, $s0 +/* 102514 7F0CD9E4 26100008 */ addiu $s0, $s0, 8 +/* 102518 7F0CD9E8 3C0EE600 */ lui $t6, 0xe600 +/* 10251C 7F0CD9EC AC4E0000 */ sw $t6, ($v0) +/* 102520 7F0CD9F0 AC400004 */ sw $zero, 4($v0) +/* 102524 7F0CD9F4 02002825 */ move $a1, $s0 +/* 102528 7F0CD9F8 3C0DF300 */ lui $t5, 0xf300 +/* 10252C 7F0CD9FC ACAD0000 */ sw $t5, ($a1) +/* 102530 7F0CDA00 8FA30090 */ lw $v1, 0x90($sp) +/* 102534 7F0CDA04 3C0A0700 */ lui $t2, 0x700 +/* 102538 7F0CDA08 8FAB008C */ lw $t3, 0x8c($sp) +/* 10253C 7F0CDA0C 2463FFFF */ addiu $v1, $v1, -1 +/* 102540 7F0CDA10 286107FF */ slti $at, $v1, 0x7ff +/* 102544 7F0CDA14 10200003 */ beqz $at, .L7F0CDA24 +/* 102548 7F0CDA18 26100008 */ addiu $s0, $s0, 8 +/* 10254C 7F0CDA1C 10000002 */ b .L7F0CDA28 +/* 102550 7F0CDA20 00602025 */ move $a0, $v1 +.L7F0CDA24: +/* 102554 7F0CDA24 240407FF */ li $a0, 2047 +.L7F0CDA28: +/* 102558 7F0CDA28 308C0FFF */ andi $t4, $a0, 0xfff +/* 10255C 7F0CDA2C 000C7B00 */ sll $t7, $t4, 0xc +/* 102560 7F0CDA30 01EAC825 */ or $t9, $t7, $t2 +/* 102564 7F0CDA34 31780FFF */ andi $t8, $t3, 0xfff +/* 102568 7F0CDA38 03387025 */ or $t6, $t9, $t8 +/* 10256C 7F0CDA3C ACAE0004 */ sw $t6, 4($a1) +/* 102570 7F0CDA40 02001025 */ move $v0, $s0 +/* 102574 7F0CDA44 3C0DE700 */ lui $t5, 0xe700 +/* 102578 7F0CDA48 AC4D0000 */ sw $t5, ($v0) +/* 10257C 7F0CDA4C AC400004 */ sw $zero, 4($v0) +/* 102580 7F0CDA50 922C000A */ lbu $t4, 0xa($s1) +/* 102584 7F0CDA54 8FA80090 */ lw $t0, 0x90($sp) +/* 102588 7F0CDA58 240F03FF */ li $t7, 1023 +/* 10258C 7F0CDA5C 01EC1823 */ subu $v1, $t7, $t4 +/* 102590 7F0CDA60 0068082B */ sltu $at, $v1, $t0 +/* 102594 7F0CDA64 10200003 */ beqz $at, .L7F0CDA74 +/* 102598 7F0CDA68 26100008 */ addiu $s0, $s0, 8 +/* 10259C 7F0CDA6C 10000002 */ b .L7F0CDA78 +/* 1025A0 7F0CDA70 00604825 */ move $t1, $v1 +.L7F0CDA74: +/* 1025A4 7F0CDA74 00004825 */ move $t1, $zero +.L7F0CDA78: +/* 1025A8 7F0CDA78 01094023 */ subu $t0, $t0, $t1 +/* 1025AC 7F0CDA7C 24190100 */ li $t9, 256 +/* 1025B0 7F0CDA80 AFB90010 */ sw $t9, 0x10($sp) +/* 1025B4 7F0CDA84 AFA80074 */ sw $t0, 0x74($sp) +/* 1025B8 7F0CDA88 24040007 */ li $a0, 7 +/* 1025BC 7F0CDA8C 00002825 */ move $a1, $zero +/* 1025C0 7F0CDA90 24070001 */ li $a3, 1 +/* 1025C4 7F0CDA94 AFA00014 */ sw $zero, 0x14($sp) +/* 1025C8 7F0CDA98 AFA00018 */ sw $zero, 0x18($sp) +/* 1025CC 7F0CDA9C AFA0001C */ sw $zero, 0x1c($sp) +/* 1025D0 7F0CDAA0 AFA00020 */ sw $zero, 0x20($sp) +/* 1025D4 7F0CDAA4 AFA00024 */ sw $zero, 0x24($sp) +/* 1025D8 7F0CDAA8 AFA00028 */ sw $zero, 0x28($sp) +/* 1025DC 7F0CDAAC 0FC3315D */ jal sub_GAME_7F0CC574 +/* 1025E0 7F0CDAB0 AFA90070 */ sw $t1, 0x70($sp) +/* 1025E4 7F0CDAB4 8FA80074 */ lw $t0, 0x74($sp) +/* 1025E8 7F0CDAB8 8FA90070 */ lw $t1, 0x70($sp) +/* 1025EC 7F0CDABC 10400007 */ beqz $v0, .L7F0CDADC +/* 1025F0 7F0CDAC0 3C0A0700 */ lui $t2, 0x700 +/* 1025F4 7F0CDAC4 02001025 */ move $v0, $s0 +/* 1025F8 7F0CDAC8 3C18F500 */ lui $t8, (0xF5000300 >> 16) # lui $t8, 0xf500 +/* 1025FC 7F0CDACC 37180300 */ ori $t8, (0xF5000300 & 0xFFFF) # ori $t8, $t8, 0x300 +/* 102600 7F0CDAD0 AC580000 */ sw $t8, ($v0) +/* 102604 7F0CDAD4 AC4A0004 */ sw $t2, 4($v0) +/* 102608 7F0CDAD8 26100008 */ addiu $s0, $s0, 8 +.L7F0CDADC: +/* 10260C 7F0CDADC 02001025 */ move $v0, $s0 +/* 102610 7F0CDAE0 310F03FF */ andi $t7, $t0, 0x3ff +/* 102614 7F0CDAE4 000F6380 */ sll $t4, $t7, 0xe +/* 102618 7F0CDAE8 312403FF */ andi $a0, $t1, 0x3ff +/* 10261C 7F0CDAEC 3C01F000 */ lui $at, 0xf000 +/* 102620 7F0CDAF0 26100008 */ addiu $s0, $s0, 8 +/* 102624 7F0CDAF4 3C0EE600 */ lui $t6, 0xe600 +/* 102628 7F0CDAF8 01815825 */ or $t3, $t4, $at +/* 10262C 7F0CDAFC 00046880 */ sll $t5, $a0, 2 +/* 102630 7F0CDB00 AC4E0000 */ sw $t6, ($v0) +/* 102634 7F0CDB04 AC400004 */ sw $zero, 4($v0) +/* 102638 7F0CDB08 016DC825 */ or $t9, $t3, $t5 +/* 10263C 7F0CDB0C 02001825 */ move $v1, $s0 +/* 102640 7F0CDB10 AC790000 */ sw $t9, ($v1) +/* 102644 7F0CDB14 9238000A */ lbu $t8, 0xa($s1) +/* 102648 7F0CDB18 01A02025 */ move $a0, $t5 +/* 10264C 7F0CDB1C 26100008 */ addiu $s0, $s0, 8 +/* 102650 7F0CDB20 03087021 */ addu $t6, $t8, $t0 +/* 102654 7F0CDB24 31CD03FF */ andi $t5, $t6, 0x3ff +/* 102658 7F0CDB28 000D7B80 */ sll $t7, $t5, 0xe +/* 10265C 7F0CDB2C 01EA6025 */ or $t4, $t7, $t2 +/* 102660 7F0CDB30 01845825 */ or $t3, $t4, $a0 +/* 102664 7F0CDB34 02002825 */ move $a1, $s0 +/* 102668 7F0CDB38 AC6B0004 */ sw $t3, 4($v1) +/* 10266C 7F0CDB3C 3C19E700 */ lui $t9, 0xe700 +/* 102670 7F0CDB40 ACB90000 */ sw $t9, ($a1) +/* 102674 7F0CDB44 ACA00004 */ sw $zero, 4($a1) +/* 102678 7F0CDB48 26100008 */ addiu $s0, $s0, 8 +.L7F0CDB4C: +/* 10267C 7F0CDB4C 8FBF003C */ lw $ra, 0x3c($sp) +/* 102680 7F0CDB50 02001025 */ move $v0, $s0 +/* 102684 7F0CDB54 8FB00034 */ lw $s0, 0x34($sp) +/* 102688 7F0CDB58 8FB10038 */ lw $s1, 0x38($sp) +/* 10268C 7F0CDB5C 03E00008 */ jr $ra +/* 102690 7F0CDB60 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CDB64(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CDB64 +/* 102694 7F0CDB64 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 102698 7F0CDB68 AFB10038 */ sw $s1, 0x38($sp) +/* 10269C 7F0CDB6C 00808825 */ move $s1, $a0 +/* 1026A0 7F0CDB70 AFBF003C */ sw $ra, 0x3c($sp) +/* 1026A4 7F0CDB74 AFB00034 */ sw $s0, 0x34($sp) +/* 1026A8 7F0CDB78 AFA60078 */ sw $a2, 0x78($sp) +/* 1026AC 7F0CDB7C AFA7007C */ sw $a3, 0x7c($sp) +/* 1026B0 7F0CDB80 00A08025 */ move $s0, $a1 +/* 1026B4 7F0CDB84 0FC332A7 */ jal sub_GAME_7F0CCA9C +/* 1026B8 7F0CDB88 90A40008 */ lbu $a0, 8($a1) +/* 1026BC 7F0CDB8C AFA2006C */ sw $v0, 0x6c($sp) +/* 1026C0 7F0CDB90 0FC332A7 */ jal sub_GAME_7F0CCA9C +/* 1026C4 7F0CDB94 92040009 */ lbu $a0, 9($s0) +/* 1026C8 7F0CDB98 AFA20068 */ sw $v0, 0x68($sp) +/* 1026CC 7F0CDB9C 02002025 */ move $a0, $s0 +/* 1026D0 7F0CDBA0 0FC33239 */ jal sub_GAME_7F0CC8E4 +/* 1026D4 7F0CDBA4 00002825 */ move $a1, $zero +/* 1026D8 7F0CDBA8 AFA20064 */ sw $v0, 0x64($sp) +/* 1026DC 7F0CDBAC 8E03000C */ lw $v1, 0xc($s0) +/* 1026E0 7F0CDBB0 00037080 */ sll $t6, $v1, 2 +/* 1026E4 7F0CDBB4 00032782 */ srl $a0, $v1, 0x1e +/* 1026E8 7F0CDBB8 000E7FC2 */ srl $t7, $t6, 0x1f +/* 1026EC 7F0CDBBC 0004C380 */ sll $t8, $a0, 0xe +/* 1026F0 7F0CDBC0 AFAF0050 */ sw $t7, 0x50($sp) +/* 1026F4 7F0CDBC4 0FC33152 */ jal sub_GAME_7F0CC548 +/* 1026F8 7F0CDBC8 03002025 */ move $a0, $t8 +/* 1026FC 7F0CDBCC 10400009 */ beqz $v0, .L7F0CDBF4 +/* 102700 7F0CDBD0 3C19BA00 */ lui $t9, (0xBA000E02 >> 16) # lui $t9, 0xba00 +/* 102704 7F0CDBD4 02201025 */ move $v0, $s1 +/* 102708 7F0CDBD8 37390E02 */ ori $t9, (0xBA000E02 & 0xFFFF) # ori $t9, $t9, 0xe02 +/* 10270C 7F0CDBDC AC590000 */ sw $t9, ($v0) +/* 102710 7F0CDBE0 8E09000C */ lw $t1, 0xc($s0) +/* 102714 7F0CDBE4 26310008 */ addiu $s1, $s1, 8 +/* 102718 7F0CDBE8 00095782 */ srl $t2, $t1, 0x1e +/* 10271C 7F0CDBEC 000A5B80 */ sll $t3, $t2, 0xe +/* 102720 7F0CDBF0 AC4B0004 */ sw $t3, 4($v0) +.L7F0CDBF4: +/* 102724 7F0CDBF4 8E020008 */ lw $v0, 8($s0) +/* 102728 7F0CDBF8 8FAD0078 */ lw $t5, 0x78($sp) +/* 10272C 7F0CDBFC 8FAE007C */ lw $t6, 0x7c($sp) +/* 102730 7F0CDC00 8FAF006C */ lw $t7, 0x6c($sp) +/* 102734 7F0CDC04 8FB80068 */ lw $t8, 0x68($sp) +/* 102738 7F0CDC08 00022EC0 */ sll $a1, $v0, 0x1b +/* 10273C 7F0CDC0C 00056742 */ srl $t4, $a1, 0x1d +/* 102740 7F0CDC10 01802825 */ move $a1, $t4 +/* 102744 7F0CDC14 AFA00028 */ sw $zero, 0x28($sp) +/* 102748 7F0CDC18 AFA00024 */ sw $zero, 0x24($sp) +/* 10274C 7F0CDC1C AFA00010 */ sw $zero, 0x10($sp) +/* 102750 7F0CDC20 8FA40084 */ lw $a0, 0x84($sp) +/* 102754 7F0CDC24 8FA70064 */ lw $a3, 0x64($sp) +/* 102758 7F0CDC28 30460003 */ andi $a2, $v0, 3 +/* 10275C 7F0CDC2C AFAD0014 */ sw $t5, 0x14($sp) +/* 102760 7F0CDC30 AFAE0018 */ sw $t6, 0x18($sp) +/* 102764 7F0CDC34 AFAF001C */ sw $t7, 0x1c($sp) +/* 102768 7F0CDC38 0FC3315D */ jal sub_GAME_7F0CC574 +/* 10276C 7F0CDC3C AFB80020 */ sw $t8, 0x20($sp) +/* 102770 7F0CDC40 1040002B */ beqz $v0, .L7F0CDCF0 +/* 102774 7F0CDC44 02201825 */ move $v1, $s1 +/* 102778 7F0CDC48 8E0D0008 */ lw $t5, 8($s0) +/* 10277C 7F0CDC4C 3C01F500 */ lui $at, 0xf500 +/* 102780 7F0CDC50 26310008 */ addiu $s1, $s1, 8 +/* 102784 7F0CDC54 000DCEC0 */ sll $t9, $t5, 0x1b +/* 102788 7F0CDC58 00194F42 */ srl $t1, $t9, 0x1d +/* 10278C 7F0CDC5C 8FB90064 */ lw $t9, 0x64($sp) +/* 102790 7F0CDC60 312A0007 */ andi $t2, $t1, 7 +/* 102794 7F0CDC64 000A5D40 */ sll $t3, $t2, 0x15 +/* 102798 7F0CDC68 31AE0003 */ andi $t6, $t5, 3 +/* 10279C 7F0CDC6C 000E7CC0 */ sll $t7, $t6, 0x13 +/* 1027A0 7F0CDC70 01616025 */ or $t4, $t3, $at +/* 1027A4 7F0CDC74 332901FF */ andi $t1, $t9, 0x1ff +/* 1027A8 7F0CDC78 00095240 */ sll $t2, $t1, 9 +/* 1027AC 7F0CDC7C 018FC025 */ or $t8, $t4, $t7 +/* 1027B0 7F0CDC80 030A5825 */ or $t3, $t8, $t2 +/* 1027B4 7F0CDC84 AC6B0000 */ sw $t3, ($v1) +/* 1027B8 7F0CDC88 AFA30048 */ sw $v1, 0x48($sp) +/* 1027BC 7F0CDC8C 0FC332B3 */ jal sub_GAME_7F0CCACC +/* 1027C0 7F0CDC90 8FA4007C */ lw $a0, 0x7c($sp) +/* 1027C4 7F0CDC94 8FA40078 */ lw $a0, 0x78($sp) +/* 1027C8 7F0CDC98 0FC332B3 */ jal sub_GAME_7F0CCACC +/* 1027CC 7F0CDC9C AFA20040 */ sw $v0, 0x40($sp) +/* 1027D0 7F0CDCA0 8FAC0084 */ lw $t4, 0x84($sp) +/* 1027D4 7F0CDCA4 304D0003 */ andi $t5, $v0, 3 +/* 1027D8 7F0CDCA8 8FA30040 */ lw $v1, 0x40($sp) +/* 1027DC 7F0CDCAC 000D7200 */ sll $t6, $t5, 8 +/* 1027E0 7F0CDCB0 318F0007 */ andi $t7, $t4, 7 +/* 1027E4 7F0CDCB4 8FAD0068 */ lw $t5, 0x68($sp) +/* 1027E8 7F0CDCB8 000FCE00 */ sll $t9, $t7, 0x18 +/* 1027EC 7F0CDCBC 01D94825 */ or $t1, $t6, $t9 +/* 1027F0 7F0CDCC0 8FB9006C */ lw $t9, 0x6c($sp) +/* 1027F4 7F0CDCC4 30780003 */ andi $t8, $v1, 3 +/* 1027F8 7F0CDCC8 00185480 */ sll $t2, $t8, 0x12 +/* 1027FC 7F0CDCCC 31AC000F */ andi $t4, $t5, 0xf +/* 102800 7F0CDCD0 012A5825 */ or $t3, $t1, $t2 +/* 102804 7F0CDCD4 8FAD0048 */ lw $t5, 0x48($sp) +/* 102808 7F0CDCD8 000C7B80 */ sll $t7, $t4, 0xe +/* 10280C 7F0CDCDC 3338000F */ andi $t8, $t9, 0xf +/* 102810 7F0CDCE0 00184900 */ sll $t1, $t8, 4 +/* 102814 7F0CDCE4 016F7025 */ or $t6, $t3, $t7 +/* 102818 7F0CDCE8 01C95025 */ or $t2, $t6, $t1 +/* 10281C 7F0CDCEC ADAA0004 */ sw $t2, 4($t5) +.L7F0CDCF0: +/* 102820 7F0CDCF0 8FA20080 */ lw $v0, 0x80($sp) +/* 102824 7F0CDCF4 24040002 */ li $a0, 2 +/* 102828 7F0CDCF8 8FA80050 */ lw $t0, 0x50($sp) +/* 10282C 7F0CDCFC 14440005 */ bne $v0, $a0, .L7F0CDD14 +/* 102830 7F0CDD00 00001825 */ move $v1, $zero +/* 102834 7F0CDD04 55000004 */ bnezl $t0, .L7F0CDD18 +/* 102838 7F0CDD08 8FA80050 */ lw $t0, 0x50($sp) +/* 10283C 7F0CDD0C 10000002 */ b .L7F0CDD18 +/* 102840 7F0CDD10 00801825 */ move $v1, $a0 +.L7F0CDD14: +/* 102844 7F0CDD14 8FA80050 */ lw $t0, 0x50($sp) +.L7F0CDD18: +/* 102848 7F0CDD18 14440005 */ bne $v0, $a0, .L7F0CDD30 +/* 10284C 7F0CDD1C 00602825 */ move $a1, $v1 +/* 102850 7F0CDD20 55000004 */ bnezl $t0, .L7F0CDD34 +/* 102854 7F0CDD24 00001825 */ move $v1, $zero +/* 102858 7F0CDD28 10000002 */ b .L7F0CDD34 +/* 10285C 7F0CDD2C 00801825 */ move $v1, $a0 +.L7F0CDD30: +/* 102860 7F0CDD30 00001825 */ move $v1, $zero +.L7F0CDD34: +/* 102864 7F0CDD34 14440005 */ bne $v0, $a0, .L7F0CDD4C +/* 102868 7F0CDD38 00603025 */ move $a2, $v1 +/* 10286C 7F0CDD3C 55000004 */ bnezl $t0, .L7F0CDD50 +/* 102870 7F0CDD40 00001825 */ move $v1, $zero +/* 102874 7F0CDD44 10000002 */ b .L7F0CDD50 +/* 102878 7F0CDD48 00801825 */ move $v1, $a0 +.L7F0CDD4C: +/* 10287C 7F0CDD4C 00001825 */ move $v1, $zero +.L7F0CDD50: +/* 102880 7F0CDD50 920C0008 */ lbu $t4, 8($s0) +/* 102884 7F0CDD54 258BFFFF */ addiu $t3, $t4, -1 +/* 102888 7F0CDD58 000B7880 */ sll $t7, $t3, 2 +/* 10288C 7F0CDD5C 14440005 */ bne $v0, $a0, .L7F0CDD74 +/* 102890 7F0CDD60 006F3821 */ addu $a3, $v1, $t7 +/* 102894 7F0CDD64 55000004 */ bnezl $t0, .L7F0CDD78 +/* 102898 7F0CDD68 00001825 */ move $v1, $zero +/* 10289C 7F0CDD6C 10000002 */ b .L7F0CDD78 +/* 1028A0 7F0CDD70 24030002 */ li $v1, 2 +.L7F0CDD74: +/* 1028A4 7F0CDD74 00001825 */ move $v1, $zero +.L7F0CDD78: +/* 1028A8 7F0CDD78 92190009 */ lbu $t9, 9($s0) +/* 1028AC 7F0CDD7C AFA70058 */ sw $a3, 0x58($sp) +/* 1028B0 7F0CDD80 AFA6005C */ sw $a2, 0x5c($sp) +/* 1028B4 7F0CDD84 2738FFFF */ addiu $t8, $t9, -1 +/* 1028B8 7F0CDD88 00187080 */ sll $t6, $t8, 2 +/* 1028BC 7F0CDD8C 006E4021 */ addu $t0, $v1, $t6 +/* 1028C0 7F0CDD90 AFA80010 */ sw $t0, 0x10($sp) +/* 1028C4 7F0CDD94 AFA80054 */ sw $t0, 0x54($sp) +/* 1028C8 7F0CDD98 AFA50060 */ sw $a1, 0x60($sp) +/* 1028CC 7F0CDD9C 0FC331A4 */ jal sub_GAME_7F0CC690 +/* 1028D0 7F0CDDA0 8FA40084 */ lw $a0, 0x84($sp) +/* 1028D4 7F0CDDA4 8FA50060 */ lw $a1, 0x60($sp) +/* 1028D8 7F0CDDA8 8FA6005C */ lw $a2, 0x5c($sp) +/* 1028DC 7F0CDDAC 8FA70058 */ lw $a3, 0x58($sp) +/* 1028E0 7F0CDDB0 10400013 */ beqz $v0, .L7F0CDE00 +/* 1028E4 7F0CDDB4 8FA80054 */ lw $t0, 0x54($sp) +/* 1028E8 7F0CDDB8 30A90FFF */ andi $t1, $a1, 0xfff +/* 1028EC 7F0CDDBC 00095300 */ sll $t2, $t1, 0xc +/* 1028F0 7F0CDDC0 3C01F200 */ lui $at, 0xf200 +/* 1028F4 7F0CDDC4 01416825 */ or $t5, $t2, $at +/* 1028F8 7F0CDDC8 30CC0FFF */ andi $t4, $a2, 0xfff +/* 1028FC 7F0CDDCC 01AC5825 */ or $t3, $t5, $t4 +/* 102900 7F0CDDD0 02201025 */ move $v0, $s1 +/* 102904 7F0CDDD4 AC4B0000 */ sw $t3, ($v0) +/* 102908 7F0CDDD8 8FAF0084 */ lw $t7, 0x84($sp) +/* 10290C 7F0CDDDC 30EE0FFF */ andi $t6, $a3, 0xfff +/* 102910 7F0CDDE0 000E4B00 */ sll $t1, $t6, 0xc +/* 102914 7F0CDDE4 31F90007 */ andi $t9, $t7, 7 +/* 102918 7F0CDDE8 0019C600 */ sll $t8, $t9, 0x18 +/* 10291C 7F0CDDEC 03095025 */ or $t2, $t8, $t1 +/* 102920 7F0CDDF0 310D0FFF */ andi $t5, $t0, 0xfff +/* 102924 7F0CDDF4 014D6025 */ or $t4, $t2, $t5 +/* 102928 7F0CDDF8 AC4C0004 */ sw $t4, 4($v0) +/* 10292C 7F0CDDFC 26310008 */ addiu $s1, $s1, 8 +.L7F0CDE00: +/* 102930 7F0CDE00 8FBF003C */ lw $ra, 0x3c($sp) +/* 102934 7F0CDE04 02201025 */ move $v0, $s1 +/* 102938 7F0CDE08 8FB10038 */ lw $s1, 0x38($sp) +/* 10293C 7F0CDE0C 8FB00034 */ lw $s0, 0x34($sp) +/* 102940 7F0CDE10 03E00008 */ jr $ra +/* 102944 7F0CDE14 27BD0070 */ addiu $sp, $sp, 0x70 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CDE18(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CDE18 +/* 102948 7F0CDE18 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 10294C 7F0CDE1C AFBF0024 */ sw $ra, 0x24($sp) +/* 102950 7F0CDE20 AFA60030 */ sw $a2, 0x30($sp) +/* 102954 7F0CDE24 AFA5002C */ sw $a1, 0x2c($sp) +/* 102958 7F0CDE28 AFA70034 */ sw $a3, 0x34($sp) +/* 10295C 7F0CDE2C 0FC3341E */ jal expland_c0_DL_psuedocommands +/* 102960 7F0CDE30 00003025 */ move $a2, $zero +/* 102964 7F0CDE34 8FAE0038 */ lw $t6, 0x38($sp) +/* 102968 7F0CDE38 00402025 */ move $a0, $v0 +/* 10296C 7F0CDE3C 8FA5002C */ lw $a1, 0x2c($sp) +/* 102970 7F0CDE40 8FA60030 */ lw $a2, 0x30($sp) +/* 102974 7F0CDE44 8FA70034 */ lw $a3, 0x34($sp) +/* 102978 7F0CDE48 AFA00014 */ sw $zero, 0x14($sp) +/* 10297C 7F0CDE4C AFA00018 */ sw $zero, 0x18($sp) +/* 102980 7F0CDE50 0FC3350C */ jal sub_GAME_7F0CD430 +/* 102984 7F0CDE54 AFAE0010 */ sw $t6, 0x10($sp) +/* 102988 7F0CDE58 8FA5002C */ lw $a1, 0x2c($sp) +/* 10298C 7F0CDE5C 24010001 */ li $at, 1 +/* 102990 7F0CDE60 00402025 */ move $a0, $v0 +/* 102994 7F0CDE64 90AF000B */ lbu $t7, 0xb($a1) +/* 102998 7F0CDE68 8FA60030 */ lw $a2, 0x30($sp) +/* 10299C 7F0CDE6C 8FA70034 */ lw $a3, 0x34($sp) +/* 1029A0 7F0CDE70 000FC142 */ srl $t8, $t7, 5 +/* 1029A4 7F0CDE74 17010007 */ bne $t8, $at, .L7F0CDE94 +/* 1029A8 7F0CDE78 8FB90038 */ lw $t9, 0x38($sp) +/* 1029AC 7F0CDE7C 24080001 */ li $t0, 1 +/* 1029B0 7F0CDE80 AFA80014 */ sw $t0, 0x14($sp) +/* 1029B4 7F0CDE84 AFB90010 */ sw $t9, 0x10($sp) +/* 1029B8 7F0CDE88 0FC3350C */ jal sub_GAME_7F0CD430 +/* 1029BC 7F0CDE8C AFA00018 */ sw $zero, 0x18($sp) +/* 1029C0 7F0CDE90 00402025 */ move $a0, $v0 +.L7F0CDE94: +/* 1029C4 7F0CDE94 8FBF0024 */ lw $ra, 0x24($sp) +/* 1029C8 7F0CDE98 27BD0028 */ addiu $sp, $sp, 0x28 +/* 1029CC 7F0CDE9C 00801025 */ move $v0, $a0 +/* 1029D0 7F0CDEA0 03E00008 */ jr $ra +/* 1029D4 7F0CDEA4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CDEA8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CDEA8 +/* 1029D8 7F0CDEA8 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 1029DC 7F0CDEAC AFB00028 */ sw $s0, 0x28($sp) +/* 1029E0 7F0CDEB0 00808025 */ move $s0, $a0 +/* 1029E4 7F0CDEB4 AFBF002C */ sw $ra, 0x2c($sp) +/* 1029E8 7F0CDEB8 AFA5003C */ sw $a1, 0x3c($sp) +/* 1029EC 7F0CDEBC AFA60040 */ sw $a2, 0x40($sp) +/* 1029F0 7F0CDEC0 AFA70044 */ sw $a3, 0x44($sp) +/* 1029F4 7F0CDEC4 00002825 */ move $a1, $zero +/* 1029F8 7F0CDEC8 0FC33265 */ jal sub_GAME_7F0CC994 +/* 1029FC 7F0CDECC 8FA4004C */ lw $a0, 0x4c($sp) +/* 102A00 7F0CDED0 AFA20034 */ sw $v0, 0x34($sp) +/* 102A04 7F0CDED4 02002025 */ move $a0, $s0 +/* 102A08 7F0CDED8 0FC335EB */ jal sub_GAME_7F0CD7AC +/* 102A0C 7F0CDEDC 8FA5004C */ lw $a1, 0x4c($sp) +/* 102A10 7F0CDEE0 3C0EE800 */ lui $t6, 0xe800 +/* 102A14 7F0CDEE4 AC4E0000 */ sw $t6, ($v0) +/* 102A18 7F0CDEE8 AC400004 */ sw $zero, 4($v0) +/* 102A1C 7F0CDEEC 8FA60034 */ lw $a2, 0x34($sp) +/* 102A20 7F0CDEF0 8FA5003C */ lw $a1, 0x3c($sp) +/* 102A24 7F0CDEF4 0FC3341E */ jal expland_c0_DL_psuedocommands +/* 102A28 7F0CDEF8 24440008 */ addiu $a0, $v0, 8 +/* 102A2C 7F0CDEFC 8FAF0054 */ lw $t7, 0x54($sp) +/* 102A30 7F0CDF00 8FB80058 */ lw $t8, 0x58($sp) +/* 102A34 7F0CDF04 00402025 */ move $a0, $v0 +/* 102A38 7F0CDF08 8FA5004C */ lw $a1, 0x4c($sp) +/* 102A3C 7F0CDF0C 8FA60048 */ lw $a2, 0x48($sp) +/* 102A40 7F0CDF10 8FA70050 */ lw $a3, 0x50($sp) +/* 102A44 7F0CDF14 AFAF0010 */ sw $t7, 0x10($sp) +/* 102A48 7F0CDF18 0FC33314 */ jal sub_GAME_7F0CCC50 +/* 102A4C 7F0CDF1C AFB80014 */ sw $t8, 0x14($sp) +/* 102A50 7F0CDF20 8FB90048 */ lw $t9, 0x48($sp) +/* 102A54 7F0CDF24 8FA90034 */ lw $t1, 0x34($sp) +/* 102A58 7F0CDF28 24080001 */ li $t0, 1 +/* 102A5C 7F0CDF2C AFA80014 */ sw $t0, 0x14($sp) +/* 102A60 7F0CDF30 00402025 */ move $a0, $v0 +/* 102A64 7F0CDF34 8FA5003C */ lw $a1, 0x3c($sp) +/* 102A68 7F0CDF38 8FA60040 */ lw $a2, 0x40($sp) +/* 102A6C 7F0CDF3C 8FA70044 */ lw $a3, 0x44($sp) +/* 102A70 7F0CDF40 AFB90010 */ sw $t9, 0x10($sp) +/* 102A74 7F0CDF44 0FC3350C */ jal sub_GAME_7F0CD430 +/* 102A78 7F0CDF48 AFA90018 */ sw $t1, 0x18($sp) +/* 102A7C 7F0CDF4C 8FAA003C */ lw $t2, 0x3c($sp) +/* 102A80 7F0CDF50 24010001 */ li $at, 1 +/* 102A84 7F0CDF54 00408025 */ move $s0, $v0 +/* 102A88 7F0CDF58 914B000B */ lbu $t3, 0xb($t2) +/* 102A8C 7F0CDF5C 00402025 */ move $a0, $v0 +/* 102A90 7F0CDF60 8FA60040 */ lw $a2, 0x40($sp) +/* 102A94 7F0CDF64 000B6142 */ srl $t4, $t3, 5 +/* 102A98 7F0CDF68 1581000A */ bne $t4, $at, .L7F0CDF94 +/* 102A9C 7F0CDF6C 01402825 */ move $a1, $t2 +/* 102AA0 7F0CDF70 8FAD0048 */ lw $t5, 0x48($sp) +/* 102AA4 7F0CDF74 8FAF0034 */ lw $t7, 0x34($sp) +/* 102AA8 7F0CDF78 240E0002 */ li $t6, 2 +/* 102AAC 7F0CDF7C AFAE0014 */ sw $t6, 0x14($sp) +/* 102AB0 7F0CDF80 8FA70044 */ lw $a3, 0x44($sp) +/* 102AB4 7F0CDF84 AFAD0010 */ sw $t5, 0x10($sp) +/* 102AB8 7F0CDF88 0FC3350C */ jal sub_GAME_7F0CD430 +/* 102ABC 7F0CDF8C AFAF0018 */ sw $t7, 0x18($sp) +/* 102AC0 7F0CDF90 00408025 */ move $s0, $v0 +.L7F0CDF94: +/* 102AC4 7F0CDF94 8FBF002C */ lw $ra, 0x2c($sp) +/* 102AC8 7F0CDF98 02001025 */ move $v0, $s0 +/* 102ACC 7F0CDF9C 8FB00028 */ lw $s0, 0x28($sp) +/* 102AD0 7F0CDFA0 03E00008 */ jr $ra +/* 102AD4 7F0CDFA4 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CDFA8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CDFA8 +/* 102AD8 7F0CDFA8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 102ADC 7F0CDFAC AFBF002C */ sw $ra, 0x2c($sp) +/* 102AE0 7F0CDFB0 AFB00028 */ sw $s0, 0x28($sp) +/* 102AE4 7F0CDFB4 AFA60038 */ sw $a2, 0x38($sp) +/* 102AE8 7F0CDFB8 00A08025 */ move $s0, $a1 +/* 102AEC 7F0CDFBC AFA7003C */ sw $a3, 0x3c($sp) +/* 102AF0 7F0CDFC0 0FC3341E */ jal expland_c0_DL_psuedocommands +/* 102AF4 7F0CDFC4 00003025 */ move $a2, $zero +/* 102AF8 7F0CDFC8 8FAE0048 */ lw $t6, 0x48($sp) +/* 102AFC 7F0CDFCC 8FAF004C */ lw $t7, 0x4c($sp) +/* 102B00 7F0CDFD0 00402025 */ move $a0, $v0 +/* 102B04 7F0CDFD4 02002825 */ move $a1, $s0 +/* 102B08 7F0CDFD8 8FA60040 */ lw $a2, 0x40($sp) +/* 102B0C 7F0CDFDC 8FA70044 */ lw $a3, 0x44($sp) +/* 102B10 7F0CDFE0 AFAE0010 */ sw $t6, 0x10($sp) +/* 102B14 7F0CDFE4 0FC33314 */ jal sub_GAME_7F0CCC50 +/* 102B18 7F0CDFE8 AFAF0014 */ sw $t7, 0x14($sp) +/* 102B1C 7F0CDFEC 8FB80040 */ lw $t8, 0x40($sp) +/* 102B20 7F0CDFF0 24190001 */ li $t9, 1 +/* 102B24 7F0CDFF4 AFB90014 */ sw $t9, 0x14($sp) +/* 102B28 7F0CDFF8 00402025 */ move $a0, $v0 +/* 102B2C 7F0CDFFC 02002825 */ move $a1, $s0 +/* 102B30 7F0CE000 8FA60038 */ lw $a2, 0x38($sp) +/* 102B34 7F0CE004 8FA7003C */ lw $a3, 0x3c($sp) +/* 102B38 7F0CE008 AFA00018 */ sw $zero, 0x18($sp) +/* 102B3C 7F0CE00C 0FC3350C */ jal sub_GAME_7F0CD430 +/* 102B40 7F0CE010 AFB80010 */ sw $t8, 0x10($sp) +/* 102B44 7F0CE014 9208000B */ lbu $t0, 0xb($s0) +/* 102B48 7F0CE018 24010001 */ li $at, 1 +/* 102B4C 7F0CE01C 00402025 */ move $a0, $v0 +/* 102B50 7F0CE020 00084942 */ srl $t1, $t0, 5 +/* 102B54 7F0CE024 1521000A */ bne $t1, $at, .L7F0CE050 +/* 102B58 7F0CE028 02002825 */ move $a1, $s0 +/* 102B5C 7F0CE02C 8FAA0040 */ lw $t2, 0x40($sp) +/* 102B60 7F0CE030 240B0002 */ li $t3, 2 +/* 102B64 7F0CE034 AFAB0014 */ sw $t3, 0x14($sp) +/* 102B68 7F0CE038 8FA60038 */ lw $a2, 0x38($sp) +/* 102B6C 7F0CE03C 8FA7003C */ lw $a3, 0x3c($sp) +/* 102B70 7F0CE040 AFA00018 */ sw $zero, 0x18($sp) +/* 102B74 7F0CE044 0FC3350C */ jal sub_GAME_7F0CD430 +/* 102B78 7F0CE048 AFAA0010 */ sw $t2, 0x10($sp) +/* 102B7C 7F0CE04C 00402025 */ move $a0, $v0 +.L7F0CE050: +/* 102B80 7F0CE050 8FBF002C */ lw $ra, 0x2c($sp) +/* 102B84 7F0CE054 8FB00028 */ lw $s0, 0x28($sp) +/* 102B88 7F0CE058 27BD0030 */ addiu $sp, $sp, 0x30 +/* 102B8C 7F0CE05C 03E00008 */ jr $ra +/* 102B90 7F0CE060 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CE064(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CE064 +/* 102B94 7F0CE064 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 102B98 7F0CE068 AFBF001C */ sw $ra, 0x1c($sp) +/* 102B9C 7F0CE06C AFA50024 */ sw $a1, 0x24($sp) +/* 102BA0 7F0CE070 AFA60028 */ sw $a2, 0x28($sp) +/* 102BA4 7F0CE074 0FC335EB */ jal sub_GAME_7F0CD7AC +/* 102BA8 7F0CE078 AFA7002C */ sw $a3, 0x2c($sp) +/* 102BAC 7F0CE07C 8FAE0030 */ lw $t6, 0x30($sp) +/* 102BB0 7F0CE080 00402025 */ move $a0, $v0 +/* 102BB4 7F0CE084 8FA50024 */ lw $a1, 0x24($sp) +/* 102BB8 7F0CE088 8FA60028 */ lw $a2, 0x28($sp) +/* 102BBC 7F0CE08C 8FA7002C */ lw $a3, 0x2c($sp) +/* 102BC0 7F0CE090 AFA00014 */ sw $zero, 0x14($sp) +/* 102BC4 7F0CE094 0FC336D9 */ jal sub_GAME_7F0CDB64 +/* 102BC8 7F0CE098 AFAE0010 */ sw $t6, 0x10($sp) +/* 102BCC 7F0CE09C 8FBF001C */ lw $ra, 0x1c($sp) +/* 102BD0 7F0CE0A0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 102BD4 7F0CE0A4 03E00008 */ jr $ra +/* 102BD8 7F0CE0A8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CE0AC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CE0AC +/* 102BDC 7F0CE0AC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 102BE0 7F0CE0B0 AFBF001C */ sw $ra, 0x1c($sp) +/* 102BE4 7F0CE0B4 AFA50024 */ sw $a1, 0x24($sp) +/* 102BE8 7F0CE0B8 AFA60028 */ sw $a2, 0x28($sp) +/* 102BEC 7F0CE0BC 0FC335EB */ jal sub_GAME_7F0CD7AC +/* 102BF0 7F0CE0C0 AFA7002C */ sw $a3, 0x2c($sp) +/* 102BF4 7F0CE0C4 8FAE0030 */ lw $t6, 0x30($sp) +/* 102BF8 7F0CE0C8 00402025 */ move $a0, $v0 +/* 102BFC 7F0CE0CC 8FA50024 */ lw $a1, 0x24($sp) +/* 102C00 7F0CE0D0 8FA60028 */ lw $a2, 0x28($sp) +/* 102C04 7F0CE0D4 8FA7002C */ lw $a3, 0x2c($sp) +/* 102C08 7F0CE0D8 AFA00014 */ sw $zero, 0x14($sp) +/* 102C0C 7F0CE0DC 0FC336D9 */ jal sub_GAME_7F0CDB64 +/* 102C10 7F0CE0E0 AFAE0010 */ sw $t6, 0x10($sp) +/* 102C14 7F0CE0E4 8FAF0030 */ lw $t7, 0x30($sp) +/* 102C18 7F0CE0E8 24180001 */ li $t8, 1 +/* 102C1C 7F0CE0EC AFB80014 */ sw $t8, 0x14($sp) +/* 102C20 7F0CE0F0 00402025 */ move $a0, $v0 +/* 102C24 7F0CE0F4 8FA50024 */ lw $a1, 0x24($sp) +/* 102C28 7F0CE0F8 8FA60028 */ lw $a2, 0x28($sp) +/* 102C2C 7F0CE0FC 8FA7002C */ lw $a3, 0x2c($sp) +/* 102C30 7F0CE100 0FC336D9 */ jal sub_GAME_7F0CDB64 +/* 102C34 7F0CE104 AFAF0010 */ sw $t7, 0x10($sp) +/* 102C38 7F0CE108 8FBF001C */ lw $ra, 0x1c($sp) +/* 102C3C 7F0CE10C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 102C40 7F0CE110 03E00008 */ jr $ra +/* 102C44 7F0CE114 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void process_microcode_sort_display_modes_expand_image_calls(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel PADDINGHACKING +.word 0 +/*D:8005BF20*/ +glabel tlb_ptr_DL_type_B1toC0 +.word .L7F0CE66C +.word .L7F0CE720 +.word .L7F0CE720 +.word .L7F0CE720 +.word .L7F0CE720 +.word .L7F0CE720 +.word .L7F0CE720 +.word .L7F0CE720 +.word .L7F0CE720 +.word .L7F0CE6B8 +.word .L7F0CE694 +.word .L7F0CE720 +.word .L7F0CE720 +.word .L7F0CE720 +.word .L7F0CE66C +.word .L7F0CE1D8 + +/*D:8005BF60*/ +glabel tlb_ptr_C0_image_recall_types +.word .L7F0CE2BC +.word .L7F0CE428 +.word .L7F0CE4B8 +.word .L7F0CE584 +.word .L7F0CE5BC +.text +glabel process_microcode_sort_display_modes_expand_image_calls +/* 102C48 7F0CE118 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 102C4C 7F0CE11C AFB20038 */ sw $s2, 0x38($sp) +/* 102C50 7F0CE120 AFBF0054 */ sw $ra, 0x54($sp) +/* 102C54 7F0CE124 AFBE0050 */ sw $fp, 0x50($sp) +/* 102C58 7F0CE128 AFB60048 */ sw $s6, 0x48($sp) +/* 102C5C 7F0CE12C AFB40040 */ sw $s4, 0x40($sp) +/* 102C60 7F0CE130 AFB10034 */ sw $s1, 0x34($sp) +/* 102C64 7F0CE134 AFB00030 */ sw $s0, 0x30($sp) +/* 102C68 7F0CE138 240E0001 */ li $t6, 1 +/* 102C6C 7F0CE13C 000590C3 */ sra $s2, $a1, 3 +/* 102C70 7F0CE140 00E0B025 */ move $s6, $a3 +/* 102C74 7F0CE144 AFB7004C */ sw $s7, 0x4c($sp) +/* 102C78 7F0CE148 AFB50044 */ sw $s5, 0x44($sp) +/* 102C7C 7F0CE14C AFB3003C */ sw $s3, 0x3c($sp) +/* 102C80 7F0CE150 AFA600A0 */ sw $a2, 0xa0($sp) +/* 102C84 7F0CE154 AFA0008C */ sw $zero, 0x8c($sp) +/* 102C88 7F0CE158 0000A025 */ move $s4, $zero +/* 102C8C 7F0CE15C 0000F025 */ move $fp, $zero +/* 102C90 7F0CE160 AFAE005C */ sw $t6, 0x5c($sp) +/* 102C94 7F0CE164 AFA00058 */ sw $zero, 0x58($sp) +/* 102C98 7F0CE168 00808825 */ move $s1, $a0 +/* 102C9C 7F0CE16C 00C08025 */ move $s0, $a2 +/* 102CA0 7F0CE170 0FC33132 */ jal sub_GAME_7F0CC4C8 +/* 102CA4 7F0CE174 AFB20088 */ sw $s2, 0x88($sp) +/* 102CA8 7F0CE178 16C00003 */ bnez $s6, .L7F0CE188 +/* 102CAC 7F0CE17C 2417000F */ li $s7, 15 +/* 102CB0 7F0CE180 3C168009 */ lui $s6, %hi(ptr_texture_alloc_start) +/* 102CB4 7F0CE184 26D6C720 */ addiu $s6, %lo(ptr_texture_alloc_start) # addiu $s6, $s6, -0x38e0 +.L7F0CE188: +/* 102CB8 7F0CE188 1A40016F */ blez $s2, .L7F0CE748 +/* 102CBC 7F0CE18C 3C158005 */ lui $s5, %hi(D_800483C8) +/* 102CC0 7F0CE190 26B583C8 */ addiu $s5, %lo(D_800483C8) # addiu $s5, $s5, -0x7c38 +.L7F0CE194: +/* 102CC4 7F0CE194 92220000 */ lbu $v0, ($s1) +/* 102CC8 7F0CE198 284100C1 */ slti $at, $v0, 0xc1 +/* 102CCC 7F0CE19C 14200006 */ bnez $at, .L7F0CE1B8 +/* 102CD0 7F0CE1A0 244FFF4F */ addiu $t7, $v0, -0xb1 +/* 102CD4 7F0CE1A4 240100E7 */ li $at, 231 +/* 102CD8 7F0CE1A8 50410129 */ beql $v0, $at, .L7F0CE650 +/* 102CDC 7F0CE1AC 8E210000 */ lw $at, ($s1) +/* 102CE0 7F0CE1B0 1000015C */ b .L7F0CE724 +/* 102CE4 7F0CE1B4 8E210000 */ lw $at, ($s1) +.L7F0CE1B8: +/* 102CE8 7F0CE1B8 2DE10010 */ sltiu $at, $t7, 0x10 +/* 102CEC 7F0CE1BC 10200158 */ beqz $at, .L7F0CE720 +/* 102CF0 7F0CE1C0 000F7880 */ sll $t7, $t7, 2 +/* 102CF4 7F0CE1C4 3C018006 */ lui $at, %hi(tlb_ptr_DL_type_B1toC0) +/* 102CF8 7F0CE1C8 002F0821 */ addu $at, $at, $t7 +/* 102CFC 7F0CE1CC 8C2FBF20 */ lw $t7, %lo(tlb_ptr_DL_type_B1toC0)($at) +/* 102D00 7F0CE1D0 01E00008 */ jr $t7 +/* 102D04 7F0CE1D4 00000000 */ nop +.L7F0CE1D8: +/* 102D08 7F0CE1D8 17C00006 */ bnez $fp, .L7F0CE1F4 +/* 102D0C 7F0CE1DC 02001025 */ move $v0, $s0 +/* 102D10 7F0CE1E0 3C18E700 */ lui $t8, 0xe700 +/* 102D14 7F0CE1E4 AC580000 */ sw $t8, ($v0) +/* 102D18 7F0CE1E8 26100008 */ addiu $s0, $s0, 8 +/* 102D1C 7F0CE1EC AC400004 */ sw $zero, 4($v0) +/* 102D20 7F0CE1F0 241E0001 */ li $fp, 1 +.L7F0CE1F4: +/* 102D24 7F0CE1F4 8FB90058 */ lw $t9, 0x58($sp) +/* 102D28 7F0CE1F8 02002025 */ move $a0, $s0 +/* 102D2C 7F0CE1FC 53200004 */ beql $t9, $zero, .L7F0CE210 +/* 102D30 7F0CE200 8E330004 */ lw $s3, 4($s1) +/* 102D34 7F0CE204 0FC2ED80 */ jal save_ptrDL_enpoint_to_current_init_lightfixture_table +/* 102D38 7F0CE208 AFA00058 */ sw $zero, 0x58($sp) +/* 102D3C 7F0CE20C 8E330004 */ lw $s3, 4($s1) +.L7F0CE210: +/* 102D40 7F0CE210 3C0E8005 */ lui $t6, %hi(D_800483C4) +/* 102D44 7F0CE214 8DCE83C4 */ lw $t6, %lo(D_800483C4)($t6) +/* 102D48 7F0CE218 326D0FFF */ andi $t5, $s3, 0xfff +/* 102D4C 7F0CE21C 01A09825 */ move $s3, $t5 +/* 102D50 7F0CE220 15AE000D */ bne $t5, $t6, .L7F0CE258 +/* 102D54 7F0CE224 02C02825 */ move $a1, $s6 +/* 102D58 7F0CE228 8EA40000 */ lw $a0, ($s5) +/* 102D5C 7F0CE22C 000D7880 */ sll $t7, $t5, 2 +/* 102D60 7F0CE230 10800009 */ beqz $a0, .L7F0CE258 +/* 102D64 7F0CE234 008FC021 */ addu $t8, $a0, $t7 +/* 102D68 7F0CE238 93190000 */ lbu $t9, ($t8) +/* 102D6C 7F0CE23C 2F2100FF */ sltiu $at, $t9, 0xff +/* 102D70 7F0CE240 10200003 */ beqz $at, .L7F0CE250 +/* 102D74 7F0CE244 00000000 */ nop +/* 102D78 7F0CE248 10000004 */ b .L7F0CE25C +/* 102D7C 7F0CE24C 24140001 */ li $s4, 1 +.L7F0CE250: +/* 102D80 7F0CE250 10000002 */ b .L7F0CE25C +/* 102D84 7F0CE254 0000A025 */ move $s4, $zero +.L7F0CE258: +/* 102D88 7F0CE258 0000A025 */ move $s4, $zero +.L7F0CE25C: +/* 102D8C 7F0CE25C 0FC32FBA */ jal calls_load_image_to_buffer +/* 102D90 7F0CE260 02602025 */ move $a0, $s3 +/* 102D94 7F0CE264 02602025 */ move $a0, $s3 +/* 102D98 7F0CE268 0FC32EC3 */ jal sub_GAME_7F0CBB0C +/* 102D9C 7F0CE26C 02C02825 */ move $a1, $s6 +/* 102DA0 7F0CE270 104000F4 */ beqz $v0, .L7F0CE644 +/* 102DA4 7F0CE274 00409025 */ move $s2, $v0 +/* 102DA8 7F0CE278 8FA7005C */ lw $a3, 0x5c($sp) +/* 102DAC 7F0CE27C AFA0005C */ sw $zero, 0x5c($sp) +/* 102DB0 7F0CE280 02002025 */ move $a0, $s0 +/* 102DB4 7F0CE284 8FA5008C */ lw $a1, 0x8c($sp) +/* 102DB8 7F0CE288 0FC333EF */ jal sub_GAME_7F0CCFBC +/* 102DBC 7F0CE28C 00403025 */ move $a2, $v0 +/* 102DC0 7F0CE290 8E230000 */ lw $v1, ($s1) +/* 102DC4 7F0CE294 00408025 */ move $s0, $v0 +/* 102DC8 7F0CE298 306D0007 */ andi $t5, $v1, 7 +/* 102DCC 7F0CE29C 2DA10005 */ sltiu $at, $t5, 5 +/* 102DD0 7F0CE2A0 102000D3 */ beqz $at, .L7F0CE5F0 +/* 102DD4 7F0CE2A4 000D6880 */ sll $t5, $t5, 2 +/* 102DD8 7F0CE2A8 3C018006 */ lui $at, %hi(tlb_ptr_C0_image_recall_types) +/* 102DDC 7F0CE2AC 002D0821 */ addu $at, $at, $t5 +/* 102DE0 7F0CE2B0 8C2DBF60 */ lw $t5, %lo(tlb_ptr_C0_image_recall_types)($at) +/* 102DE4 7F0CE2B4 01A00008 */ jr $t5 +/* 102DE8 7F0CE2B8 00000000 */ nop +.L7F0CE2BC: +/* 102DEC 7F0CE2BC 8E290004 */ lw $t1, 4($s1) +/* 102DF0 7F0CE2C0 8EA40000 */ lw $a0, ($s5) +/* 102DF4 7F0CE2C4 00033582 */ srl $a2, $v1, 0x16 +/* 102DF8 7F0CE2C8 00097602 */ srl $t6, $t1, 0x18 +/* 102DFC 7F0CE2CC 31C900FF */ andi $t1, $t6, 0xff +/* 102E00 7F0CE2D0 00033D02 */ srl $a3, $v1, 0x14 +/* 102E04 7F0CE2D4 00034482 */ srl $t0, $v1, 0x12 +/* 102E08 7F0CE2D8 00035382 */ srl $t2, $v1, 0xe +/* 102E0C 7F0CE2DC 00035A82 */ srl $t3, $v1, 0xa +/* 102E10 7F0CE2E0 30D80003 */ andi $t8, $a2, 3 +/* 102E14 7F0CE2E4 30F90003 */ andi $t9, $a3, 3 +/* 102E18 7F0CE2E8 310D0003 */ andi $t5, $t0, 3 +/* 102E1C 7F0CE2EC 314E000F */ andi $t6, $t2, 0xf +/* 102E20 7F0CE2F0 316F000F */ andi $t7, $t3, 0xf +/* 102E24 7F0CE2F4 03003025 */ move $a2, $t8 +/* 102E28 7F0CE2F8 03203825 */ move $a3, $t9 +/* 102E2C 7F0CE2FC 01A04025 */ move $t0, $t5 +/* 102E30 7F0CE300 01C05025 */ move $t2, $t6 +/* 102E34 7F0CE304 1080001B */ beqz $a0, .L7F0CE374 +/* 102E38 7F0CE308 01E05825 */ move $t3, $t7 +/* 102E3C 7F0CE30C 00131880 */ sll $v1, $s3, 2 +/* 102E40 7F0CE310 00831021 */ addu $v0, $a0, $v1 +/* 102E44 7F0CE314 90580000 */ lbu $t8, ($v0) +/* 102E48 7F0CE318 240100FF */ li $at, 255 +/* 102E4C 7F0CE31C 17010015 */ bne $t8, $at, .L7F0CE374 +/* 102E50 7F0CE320 00000000 */ nop +/* 102E54 7F0CE324 A0490000 */ sb $t1, ($v0) +/* 102E58 7F0CE328 8EB90000 */ lw $t9, ($s5) +/* 102E5C 7F0CE32C 2404000F */ li $a0, 15 +/* 102E60 7F0CE330 008E6823 */ subu $t5, $a0, $t6 +/* 102E64 7F0CE334 03231021 */ addu $v0, $t9, $v1 +/* 102E68 7F0CE338 90590001 */ lbu $t9, 1($v0) +/* 102E6C 7F0CE33C 01A07025 */ move $t6, $t5 +/* 102E70 7F0CE340 000EC140 */ sll $t8, $t6, 5 +/* 102E74 7F0CE344 332DFF1F */ andi $t5, $t9, 0xff1f +/* 102E78 7F0CE348 030D7025 */ or $t6, $t8, $t5 +/* 102E7C 7F0CE34C A04E0001 */ sb $t6, 1($v0) +/* 102E80 7F0CE350 8EAF0000 */ lw $t7, ($s5) +/* 102E84 7F0CE354 008BC023 */ subu $t8, $a0, $t3 +/* 102E88 7F0CE358 00186880 */ sll $t5, $t8, 2 +/* 102E8C 7F0CE35C 01E31021 */ addu $v0, $t7, $v1 +/* 102E90 7F0CE360 904F0001 */ lbu $t7, 1($v0) +/* 102E94 7F0CE364 31AE001C */ andi $t6, $t5, 0x1c +/* 102E98 7F0CE368 31F9FFE3 */ andi $t9, $t7, 0xffe3 +/* 102E9C 7F0CE36C 01D9C025 */ or $t8, $t6, $t9 +/* 102EA0 7F0CE370 A0580001 */ sb $t8, 1($v0) +.L7F0CE374: +/* 102EA4 7F0CE374 12800024 */ beqz $s4, .L7F0CE408 +/* 102EA8 7F0CE378 02002025 */ move $a0, $s0 +/* 102EAC 7F0CE37C 8EAD0000 */ lw $t5, ($s5) +/* 102EB0 7F0CE380 00137880 */ sll $t7, $s3, 2 +/* 102EB4 7F0CE384 AFA80010 */ sw $t0, 0x10($sp) +/* 102EB8 7F0CE388 01AF1021 */ addu $v0, $t5, $t7 +/* 102EBC 7F0CE38C 904E0001 */ lbu $t6, 1($v0) +/* 102EC0 7F0CE390 02002025 */ move $a0, $s0 +/* 102EC4 7F0CE394 02402825 */ move $a1, $s2 +/* 102EC8 7F0CE398 000EC942 */ srl $t9, $t6, 5 +/* 102ECC 7F0CE39C 02F9C023 */ subu $t8, $s7, $t9 +/* 102ED0 7F0CE3A0 AFB80014 */ sw $t8, 0x14($sp) +/* 102ED4 7F0CE3A4 8C4D0000 */ lw $t5, ($v0) +/* 102ED8 7F0CE3A8 000D7AC0 */ sll $t7, $t5, 0xb +/* 102EDC 7F0CE3AC 000F7742 */ srl $t6, $t7, 0x1d +/* 102EE0 7F0CE3B0 02EEC823 */ subu $t9, $s7, $t6 +/* 102EE4 7F0CE3B4 AFB90018 */ sw $t9, 0x18($sp) +/* 102EE8 7F0CE3B8 90580000 */ lbu $t8, ($v0) +/* 102EEC 7F0CE3BC 0FC337EA */ jal sub_GAME_7F0CDFA8 +/* 102EF0 7F0CE3C0 AFB8001C */ sw $t8, 0x1c($sp) +/* 102EF4 7F0CE3C4 3C0DBA00 */ lui $t5, (0xBA001402 >> 16) # lui $t5, 0xba00 +/* 102EF8 7F0CE3C8 35AD1402 */ ori $t5, (0xBA001402 & 0xFFFF) # ori $t5, $t5, 0x1402 +/* 102EFC 7F0CE3CC AC4D0000 */ sw $t5, ($v0) +/* 102F00 7F0CE3D0 3C0EBA00 */ lui $t6, (0xBA001001 >> 16) # lui $t6, 0xba00 +/* 102F04 7F0CE3D4 3C18BA00 */ lui $t8, (0xBA001102 >> 16) # lui $t8, 0xba00 +/* 102F08 7F0CE3D8 3C0F0010 */ lui $t7, 0x10 +/* 102F0C 7F0CE3DC 35CE1001 */ ori $t6, (0xBA001001 & 0xFFFF) # ori $t6, $t6, 0x1001 +/* 102F10 7F0CE3E0 3C190001 */ lui $t9, 1 +/* 102F14 7F0CE3E4 37181102 */ ori $t8, (0xBA001102 & 0xFFFF) # ori $t8, $t8, 0x1102 +/* 102F18 7F0CE3E8 3C0D0004 */ lui $t5, 4 +/* 102F1C 7F0CE3EC AC4F0004 */ sw $t7, 4($v0) +/* 102F20 7F0CE3F0 AC59000C */ sw $t9, 0xc($v0) +/* 102F24 7F0CE3F4 AC4E0008 */ sw $t6, 8($v0) +/* 102F28 7F0CE3F8 AC4D0014 */ sw $t5, 0x14($v0) +/* 102F2C 7F0CE3FC AC580010 */ sw $t8, 0x10($v0) +/* 102F30 7F0CE400 1000007B */ b .L7F0CE5F0 +/* 102F34 7F0CE404 24500018 */ addiu $s0, $v0, 0x18 +.L7F0CE408: +/* 102F38 7F0CE408 02402825 */ move $a1, $s2 +/* 102F3C 7F0CE40C AFA80010 */ sw $t0, 0x10($sp) +/* 102F40 7F0CE410 AFAA0014 */ sw $t2, 0x14($sp) +/* 102F44 7F0CE414 AFAB0018 */ sw $t3, 0x18($sp) +/* 102F48 7F0CE418 0FC337EA */ jal sub_GAME_7F0CDFA8 +/* 102F4C 7F0CE41C AFA9001C */ sw $t1, 0x1c($sp) +/* 102F50 7F0CE420 10000073 */ b .L7F0CE5F0 +/* 102F54 7F0CE424 00408025 */ move $s0, $v0 +.L7F0CE428: +/* 102F58 7F0CE428 8E240004 */ lw $a0, 4($s1) +/* 102F5C 7F0CE42C 02C02825 */ move $a1, $s6 +/* 102F60 7F0CE430 00047B02 */ srl $t7, $a0, 0xc +/* 102F64 7F0CE434 31E40FFF */ andi $a0, $t7, 0xfff +/* 102F68 7F0CE438 0FC32FBA */ jal calls_load_image_to_buffer +/* 102F6C 7F0CE43C AFA40080 */ sw $a0, 0x80($sp) +/* 102F70 7F0CE440 8FA40080 */ lw $a0, 0x80($sp) +/* 102F74 7F0CE444 0FC32EC3 */ jal sub_GAME_7F0CBB0C +/* 102F78 7F0CE448 02C02825 */ move $a1, $s6 +/* 102F7C 7F0CE44C 10400068 */ beqz $v0, .L7F0CE5F0 +/* 102F80 7F0CE450 02002025 */ move $a0, $s0 +/* 102F84 7F0CE454 8E230000 */ lw $v1, ($s1) +/* 102F88 7F0CE458 8E290004 */ lw $t1, 4($s1) +/* 102F8C 7F0CE45C AFA20014 */ sw $v0, 0x14($sp) +/* 102F90 7F0CE460 00033582 */ srl $a2, $v1, 0x16 +/* 102F94 7F0CE464 0009CE02 */ srl $t9, $t1, 0x18 +/* 102F98 7F0CE468 332900FF */ andi $t1, $t9, 0xff +/* 102F9C 7F0CE46C 00033D02 */ srl $a3, $v1, 0x14 +/* 102FA0 7F0CE470 00034482 */ srl $t0, $v1, 0x12 +/* 102FA4 7F0CE474 00035382 */ srl $t2, $v1, 0xe +/* 102FA8 7F0CE478 00035A82 */ srl $t3, $v1, 0xa +/* 102FAC 7F0CE47C 30CD0003 */ andi $t5, $a2, 3 +/* 102FB0 7F0CE480 30EF0003 */ andi $t7, $a3, 3 +/* 102FB4 7F0CE484 310E0003 */ andi $t6, $t0, 3 +/* 102FB8 7F0CE488 3159000F */ andi $t9, $t2, 0xf +/* 102FBC 7F0CE48C 3178000F */ andi $t8, $t3, 0xf +/* 102FC0 7F0CE490 01A03025 */ move $a2, $t5 +/* 102FC4 7F0CE494 01E03825 */ move $a3, $t7 +/* 102FC8 7F0CE498 AFB8001C */ sw $t8, 0x1c($sp) +/* 102FCC 7F0CE49C AFB90018 */ sw $t9, 0x18($sp) +/* 102FD0 7F0CE4A0 AFAE0010 */ sw $t6, 0x10($sp) +/* 102FD4 7F0CE4A4 AFA90020 */ sw $t1, 0x20($sp) +/* 102FD8 7F0CE4A8 0FC337AA */ jal sub_GAME_7F0CDEA8 +/* 102FDC 7F0CE4AC 02402825 */ move $a1, $s2 +/* 102FE0 7F0CE4B0 1000004F */ b .L7F0CE5F0 +/* 102FE4 7F0CE4B4 00408025 */ move $s0, $v0 +.L7F0CE4B8: +/* 102FE8 7F0CE4B8 00033582 */ srl $a2, $v1, 0x16 +/* 102FEC 7F0CE4BC 00033D02 */ srl $a3, $v1, 0x14 +/* 102FF0 7F0CE4C0 00034482 */ srl $t0, $v1, 0x12 +/* 102FF4 7F0CE4C4 30CD0003 */ andi $t5, $a2, 3 +/* 102FF8 7F0CE4C8 30EF0003 */ andi $t7, $a3, 3 +/* 102FFC 7F0CE4CC 310E0003 */ andi $t6, $t0, 3 +/* 103000 7F0CE4D0 01A03025 */ move $a2, $t5 +/* 103004 7F0CE4D4 01E03825 */ move $a3, $t7 +/* 103008 7F0CE4D8 12800024 */ beqz $s4, .L7F0CE56C +/* 10300C 7F0CE4DC 01C04025 */ move $t0, $t6 +/* 103010 7F0CE4E0 8EB90000 */ lw $t9, ($s5) +/* 103014 7F0CE4E4 0013C080 */ sll $t8, $s3, 2 +/* 103018 7F0CE4E8 AFAE0010 */ sw $t6, 0x10($sp) +/* 10301C 7F0CE4EC 03381021 */ addu $v0, $t9, $t8 +/* 103020 7F0CE4F0 904D0001 */ lbu $t5, 1($v0) +/* 103024 7F0CE4F4 02002025 */ move $a0, $s0 +/* 103028 7F0CE4F8 02402825 */ move $a1, $s2 +/* 10302C 7F0CE4FC 000D7942 */ srl $t7, $t5, 5 +/* 103030 7F0CE500 02EF7023 */ subu $t6, $s7, $t7 +/* 103034 7F0CE504 AFAE0014 */ sw $t6, 0x14($sp) +/* 103038 7F0CE508 8C590000 */ lw $t9, ($v0) +/* 10303C 7F0CE50C 0019C2C0 */ sll $t8, $t9, 0xb +/* 103040 7F0CE510 00186F42 */ srl $t5, $t8, 0x1d +/* 103044 7F0CE514 02ED7823 */ subu $t7, $s7, $t5 +/* 103048 7F0CE518 AFAF0018 */ sw $t7, 0x18($sp) +/* 10304C 7F0CE51C 904E0000 */ lbu $t6, ($v0) +/* 103050 7F0CE520 0FC337EA */ jal sub_GAME_7F0CDFA8 +/* 103054 7F0CE524 AFAE001C */ sw $t6, 0x1c($sp) +/* 103058 7F0CE528 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 +/* 10305C 7F0CE52C 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 +/* 103060 7F0CE530 AC590000 */ sw $t9, ($v0) +/* 103064 7F0CE534 3C0DBA00 */ lui $t5, (0xBA001001 >> 16) # lui $t5, 0xba00 +/* 103068 7F0CE538 3C0EBA00 */ lui $t6, (0xBA001102 >> 16) # lui $t6, 0xba00 +/* 10306C 7F0CE53C 3C180010 */ lui $t8, 0x10 +/* 103070 7F0CE540 35AD1001 */ ori $t5, (0xBA001001 & 0xFFFF) # ori $t5, $t5, 0x1001 +/* 103074 7F0CE544 3C0F0001 */ lui $t7, 1 +/* 103078 7F0CE548 35CE1102 */ ori $t6, (0xBA001102 & 0xFFFF) # ori $t6, $t6, 0x1102 +/* 10307C 7F0CE54C 3C190004 */ lui $t9, 4 +/* 103080 7F0CE550 AC580004 */ sw $t8, 4($v0) +/* 103084 7F0CE554 AC4F000C */ sw $t7, 0xc($v0) +/* 103088 7F0CE558 AC4D0008 */ sw $t5, 8($v0) +/* 10308C 7F0CE55C AC590014 */ sw $t9, 0x14($v0) +/* 103090 7F0CE560 AC4E0010 */ sw $t6, 0x10($v0) +/* 103094 7F0CE564 10000022 */ b .L7F0CE5F0 +/* 103098 7F0CE568 24500018 */ addiu $s0, $v0, 0x18 +.L7F0CE56C: +/* 10309C 7F0CE56C 02002025 */ move $a0, $s0 +/* 1030A0 7F0CE570 02402825 */ move $a1, $s2 +/* 1030A4 7F0CE574 0FC33786 */ jal sub_GAME_7F0CDE18 +/* 1030A8 7F0CE578 AFA80010 */ sw $t0, 0x10($sp) +/* 1030AC 7F0CE57C 1000001C */ b .L7F0CE5F0 +/* 1030B0 7F0CE580 00408025 */ move $s0, $v0 +.L7F0CE584: +/* 1030B4 7F0CE584 00033582 */ srl $a2, $v1, 0x16 +/* 1030B8 7F0CE588 00033D02 */ srl $a3, $v1, 0x14 +/* 1030BC 7F0CE58C 00034482 */ srl $t0, $v1, 0x12 +/* 1030C0 7F0CE590 30D80003 */ andi $t8, $a2, 3 +/* 1030C4 7F0CE594 30ED0003 */ andi $t5, $a3, 3 +/* 1030C8 7F0CE598 310F0003 */ andi $t7, $t0, 3 +/* 1030CC 7F0CE59C 03003025 */ move $a2, $t8 +/* 1030D0 7F0CE5A0 01A03825 */ move $a3, $t5 +/* 1030D4 7F0CE5A4 AFAF0010 */ sw $t7, 0x10($sp) +/* 1030D8 7F0CE5A8 02002025 */ move $a0, $s0 +/* 1030DC 7F0CE5AC 0FC3382B */ jal sub_GAME_7F0CE0AC +/* 1030E0 7F0CE5B0 02402825 */ move $a1, $s2 +/* 1030E4 7F0CE5B4 1000000E */ b .L7F0CE5F0 +/* 1030E8 7F0CE5B8 00408025 */ move $s0, $v0 +.L7F0CE5BC: +/* 1030EC 7F0CE5BC 00033582 */ srl $a2, $v1, 0x16 +/* 1030F0 7F0CE5C0 00033D02 */ srl $a3, $v1, 0x14 +/* 1030F4 7F0CE5C4 00034482 */ srl $t0, $v1, 0x12 +/* 1030F8 7F0CE5C8 30CE0003 */ andi $t6, $a2, 3 +/* 1030FC 7F0CE5CC 30F90003 */ andi $t9, $a3, 3 +/* 103100 7F0CE5D0 31180003 */ andi $t8, $t0, 3 +/* 103104 7F0CE5D4 01C03025 */ move $a2, $t6 +/* 103108 7F0CE5D8 03203825 */ move $a3, $t9 +/* 10310C 7F0CE5DC AFB80010 */ sw $t8, 0x10($sp) +/* 103110 7F0CE5E0 02002025 */ move $a0, $s0 +/* 103114 7F0CE5E4 0FC33819 */ jal sub_GAME_7F0CE064 +/* 103118 7F0CE5E8 02402825 */ move $a1, $s2 +/* 10311C 7F0CE5EC 00408025 */ move $s0, $v0 +def_7F0CE2B4: +.L7F0CE5F0: +/* 103120 7F0CE5F0 240105E4 */ li $at, 1508 +/* 103124 7F0CE5F4 16610005 */ bne $s3, $at, .L7F0CE60C +/* 103128 7F0CE5F8 02002025 */ move $a0, $s0 +/* 10312C 7F0CE5FC 0FC24D0F */ jal sub_GAME_7F09343C +/* 103130 7F0CE600 24050001 */ li $a1, 1 +/* 103134 7F0CE604 0FC33132 */ jal sub_GAME_7F0CC4C8 +/* 103138 7F0CE608 00408025 */ move $s0, $v0 +.L7F0CE60C: +/* 10313C 7F0CE60C 240105E7 */ li $at, 1511 +/* 103140 7F0CE610 16610005 */ bne $s3, $at, .L7F0CE628 +/* 103144 7F0CE614 02002025 */ move $a0, $s0 +/* 103148 7F0CE618 0FC24D97 */ jal sub_GAME_7F09365C +/* 10314C 7F0CE61C 24050001 */ li $a1, 1 +/* 103150 7F0CE620 0FC33132 */ jal sub_GAME_7F0CC4C8 +/* 103154 7F0CE624 00408025 */ move $s0, $v0 +.L7F0CE628: +/* 103158 7F0CE628 0FC2ED8C */ jal check_if_imageID_is_light +/* 10315C 7F0CE62C 02602025 */ move $a0, $s3 +/* 103160 7F0CE630 10400004 */ beqz $v0, .L7F0CE644 +/* 103164 7F0CE634 02002025 */ move $a0, $s0 +/* 103168 7F0CE638 240D0001 */ li $t5, 1 +/* 10316C 7F0CE63C 0FC2ED67 */ jal add_entry_to_init_lightfixture_table +/* 103170 7F0CE640 AFAD0058 */ sw $t5, 0x58($sp) +.L7F0CE644: +/* 103174 7F0CE644 1000003C */ b .L7F0CE738 +/* 103178 7F0CE648 26310008 */ addiu $s1, $s1, 8 +/* 10317C 7F0CE64C 8E210000 */ lw $at, ($s1) +.L7F0CE650: +/* 103180 7F0CE650 241E0001 */ li $fp, 1 +/* 103184 7F0CE654 26100008 */ addiu $s0, $s0, 8 +/* 103188 7F0CE658 AE01FFF8 */ sw $at, -8($s0) +/* 10318C 7F0CE65C 8E390004 */ lw $t9, 4($s1) +/* 103190 7F0CE660 26310008 */ addiu $s1, $s1, 8 +/* 103194 7F0CE664 10000034 */ b .L7F0CE738 +/* 103198 7F0CE668 AE19FFFC */ sw $t9, -4($s0) +.L7F0CE66C: +/* 10319C 7F0CE66C 24180001 */ li $t8, 1 +/* 1031A0 7F0CE670 AFB8005C */ sw $t8, 0x5c($sp) +/* 1031A4 7F0CE674 8E210000 */ lw $at, ($s1) +/* 1031A8 7F0CE678 0000F025 */ move $fp, $zero +/* 1031AC 7F0CE67C 26100008 */ addiu $s0, $s0, 8 +/* 1031B0 7F0CE680 AE01FFF8 */ sw $at, -8($s0) +/* 1031B4 7F0CE684 8E2F0004 */ lw $t7, 4($s1) +/* 1031B8 7F0CE688 26310008 */ addiu $s1, $s1, 8 +/* 1031BC 7F0CE68C 1000002A */ b .L7F0CE738 +/* 1031C0 7F0CE690 AE0FFFFC */ sw $t7, -4($s0) +.L7F0CE694: +/* 1031C4 7F0CE694 AFB0008C */ sw $s0, 0x8c($sp) +/* 1031C8 7F0CE698 AFA0005C */ sw $zero, 0x5c($sp) +/* 1031CC 7F0CE69C 8E210000 */ lw $at, ($s1) +/* 1031D0 7F0CE6A0 26100008 */ addiu $s0, $s0, 8 +/* 1031D4 7F0CE6A4 26310008 */ addiu $s1, $s1, 8 +/* 1031D8 7F0CE6A8 AE01FFF8 */ sw $at, -8($s0) +/* 1031DC 7F0CE6AC 8E2EFFFC */ lw $t6, -4($s1) +/* 1031E0 7F0CE6B0 10000021 */ b .L7F0CE738 +/* 1031E4 7F0CE6B4 AE0EFFFC */ sw $t6, -4($s0) +.L7F0CE6B8: +/* 1031E8 7F0CE6B8 52800013 */ beql $s4, $zero, .L7F0CE708 +/* 1031EC 7F0CE6BC 8E210000 */ lw $at, ($s1) +/* 1031F0 7F0CE6C0 82220002 */ lb $v0, 2($s1) +/* 1031F4 7F0CE6C4 24010011 */ li $at, 17 +/* 1031F8 7F0CE6C8 10410005 */ beq $v0, $at, .L7F0CE6E0 +/* 1031FC 7F0CE6CC 24010014 */ li $at, 20 +/* 103200 7F0CE6D0 10410003 */ beq $v0, $at, .L7F0CE6E0 +/* 103204 7F0CE6D4 24010010 */ li $at, 16 +/* 103208 7F0CE6D8 54410004 */ bnel $v0, $at, .L7F0CE6EC +/* 10320C 7F0CE6DC 8E210000 */ lw $at, ($s1) +.L7F0CE6E0: +/* 103210 7F0CE6E0 10000015 */ b .L7F0CE738 +/* 103214 7F0CE6E4 26310008 */ addiu $s1, $s1, 8 +/* 103218 7F0CE6E8 8E210000 */ lw $at, ($s1) +.L7F0CE6EC: +/* 10321C 7F0CE6EC 26100008 */ addiu $s0, $s0, 8 +/* 103220 7F0CE6F0 26310008 */ addiu $s1, $s1, 8 +/* 103224 7F0CE6F4 AE01FFF8 */ sw $at, -8($s0) +/* 103228 7F0CE6F8 8E2FFFFC */ lw $t7, -4($s1) +/* 10322C 7F0CE6FC 1000000E */ b .L7F0CE738 +/* 103230 7F0CE700 AE0FFFFC */ sw $t7, -4($s0) +/* 103234 7F0CE704 8E210000 */ lw $at, ($s1) +.L7F0CE708: +/* 103238 7F0CE708 26100008 */ addiu $s0, $s0, 8 +/* 10323C 7F0CE70C 26310008 */ addiu $s1, $s1, 8 +/* 103240 7F0CE710 AE01FFF8 */ sw $at, -8($s0) +/* 103244 7F0CE714 8E39FFFC */ lw $t9, -4($s1) +/* 103248 7F0CE718 10000007 */ b .L7F0CE738 +/* 10324C 7F0CE71C AE19FFFC */ sw $t9, -4($s0) +.L7F0CE720: +/* 103250 7F0CE720 8E210000 */ lw $at, ($s1) +.L7F0CE724: +/* 103254 7F0CE724 26100008 */ addiu $s0, $s0, 8 +/* 103258 7F0CE728 26310008 */ addiu $s1, $s1, 8 +/* 10325C 7F0CE72C AE01FFF8 */ sw $at, -8($s0) +/* 103260 7F0CE730 8E2DFFFC */ lw $t5, -4($s1) +/* 103264 7F0CE734 AE0DFFFC */ sw $t5, -4($s0) +.L7F0CE738: +/* 103268 7F0CE738 8FAF0088 */ lw $t7, 0x88($sp) +/* 10326C 7F0CE73C 25F8FFFF */ addiu $t8, $t7, -1 +/* 103270 7F0CE740 1F00FE94 */ bgtz $t8, .L7F0CE194 +/* 103274 7F0CE744 AFB80088 */ sw $t8, 0x88($sp) +.L7F0CE748: +/* 103278 7F0CE748 8FB90058 */ lw $t9, 0x58($sp) +/* 10327C 7F0CE74C 53200004 */ beql $t9, $zero, .L7F0CE760 +/* 103280 7F0CE750 8FAE00A0 */ lw $t6, 0xa0($sp) +/* 103284 7F0CE754 0FC2ED80 */ jal save_ptrDL_enpoint_to_current_init_lightfixture_table +/* 103288 7F0CE758 02002025 */ move $a0, $s0 +/* 10328C 7F0CE75C 8FAE00A0 */ lw $t6, 0xa0($sp) +.L7F0CE760: +/* 103290 7F0CE760 8FBF0054 */ lw $ra, 0x54($sp) +/* 103294 7F0CE764 8FB10034 */ lw $s1, 0x34($sp) +/* 103298 7F0CE768 020E1023 */ subu $v0, $s0, $t6 +/* 10329C 7F0CE76C 8FB00030 */ lw $s0, 0x30($sp) +/* 1032A0 7F0CE770 8FB20038 */ lw $s2, 0x38($sp) +/* 1032A4 7F0CE774 8FB3003C */ lw $s3, 0x3c($sp) +/* 1032A8 7F0CE778 8FB40040 */ lw $s4, 0x40($sp) +/* 1032AC 7F0CE77C 8FB50044 */ lw $s5, 0x44($sp) +/* 1032B0 7F0CE780 8FB60048 */ lw $s6, 0x48($sp) +/* 1032B4 7F0CE784 8FB7004C */ lw $s7, 0x4c($sp) +/* 1032B8 7F0CE788 8FBE0050 */ lw $fp, 0x50($sp) +/* 1032BC 7F0CE78C 03E00008 */ jr $ra +/* 1032C0 7F0CE790 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CE794(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CE794 +/* 1032C4 7F0CE794 000670C3 */ sra $t6, $a2, 3 +/* 1032C8 7F0CE798 25C2FFFF */ addiu $v0, $t6, -1 +/* 1032CC 7F0CE79C 01C03025 */ move $a2, $t6 +/* 1032D0 7F0CE7A0 000218C0 */ sll $v1, $v0, 3 +/* 1032D4 7F0CE7A4 00642021 */ addu $a0, $v1, $a0 +/* 1032D8 7F0CE7A8 00652821 */ addu $a1, $v1, $a1 +/* 1032DC 7F0CE7AC 01C03825 */ move $a3, $t6 +/* 1032E0 7F0CE7B0 10C0000A */ beqz $a2, .L7F0CE7DC +/* 1032E4 7F0CE7B4 00403025 */ move $a2, $v0 +.L7F0CE7B8: +/* 1032E8 7F0CE7B8 8C980000 */ lw $t8, ($a0) +/* 1032EC 7F0CE7BC 8C990004 */ lw $t9, 4($a0) +/* 1032F0 7F0CE7C0 00C03825 */ move $a3, $a2 +/* 1032F4 7F0CE7C4 24A5FFF8 */ addiu $a1, $a1, -8 +/* 1032F8 7F0CE7C8 2484FFF8 */ addiu $a0, $a0, -8 +/* 1032FC 7F0CE7CC ACB80008 */ sw $t8, 8($a1) +/* 103300 7F0CE7D0 ACB9000C */ sw $t9, 0xc($a1) +/* 103304 7F0CE7D4 14C0FFF8 */ bnez $a2, .L7F0CE7B8 +/* 103308 7F0CE7D8 24C6FFFF */ addiu $a2, $a2, -1 +.L7F0CE7DC: +/* 10330C 7F0CE7DC 03E00008 */ jr $ra +/* 103310 7F0CE7E0 00000000 */ nop +) +#endif + + + + diff --git a/src/game/unk_0CC4C0.h b/src/game/unk_0CC4C0.h new file mode 100644 index 0000000..32719ef --- /dev/null +++ b/src/game/unk_0CC4C0.h @@ -0,0 +1,12 @@ +#ifndef _UNK_0CC4C0_H_ +#define _UNK_0CC4C0_H_ +#include "ultra64.h" + +struct image_sound { + u32 *thing1; + u32 *thing2; + u16 thing3; + u16 thing4; +}; + +#endif diff --git a/src/game/unk_0D1AC0.c b/src/game/unk_0D1AC0.c new file mode 100644 index 0000000..aab277c --- /dev/null +++ b/src/game/unk_0D1AC0.c @@ -0,0 +1,734 @@ +#include "ultra64.h" + + +// data +f32 D_8004EAF0 = 0.0; +f32 D_8004EAF4 = 0.0; + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0D1AC0(void *arg0) { + void *temp_v1; + void *temp_a1; + void *temp_a0; + void *temp_a3; + void *temp_v1_2; + void *temp_a1_2; + void *temp_a2; + + // Node 0 + D_8004EAF4 = 0.0f; + D_8004EAF0 = (f32) D_8004EAF4; + temp_v1 = (arg0 + 8); + *arg0 = 0xba000c02; + arg0->unk4 = 0; + temp_a1 = (temp_v1 + 8); + temp_v1->unk4 = 0xc0; + *temp_v1 = 0xba000602; + temp_a1->unk4 = 1; + *temp_a1 = 0xb6000000; + temp_a0 = (temp_a1 + 8); + temp_a3 = (temp_a0 + 8); + *temp_a0 = 0xe7000000; + temp_a0->unk4 = 0; + temp_v1_2 = (temp_a3 + 8); + *temp_a3 = 0xba001301; + temp_a3->unk4 = 0; + temp_a1_2 = (temp_v1_2 + 8); + temp_v1_2->unk4 = 0x300000; + *temp_v1_2 = 0xba001402; + temp_a2 = (temp_a1_2 + 8); + temp_a1_2->unk4 = 0xf0a4000; + *temp_a1_2 = 0xb900031d; + temp_a2->unk4 = 0x800000; + *temp_a2 = 0xba001701; + return; + // (possible return value: (temp_a2 + 8)) +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D1AC0 +/* 1065F0 7F0D1AC0 44802000 */ mtc1 $zero, $f4 +/* 1065F4 7F0D1AC4 3C088005 */ lui $t0, %hi(D_8004EAF4) +/* 1065F8 7F0D1AC8 2508EAF4 */ addiu $t0, %lo(D_8004EAF4) # addiu $t0, $t0, -0x150c +/* 1065FC 7F0D1ACC E5040000 */ swc1 $f4, ($t0) +/* 106600 7F0D1AD0 C5060000 */ lwc1 $f6, ($t0) +/* 106604 7F0D1AD4 3C018005 */ lui $at, %hi(D_8004EAF0) +/* 106608 7F0D1AD8 00801025 */ move $v0, $a0 +/* 10660C 7F0D1ADC 3C0EBA00 */ lui $t6, (0xBA000C02 >> 16) # lui $t6, 0xba00 +/* 106610 7F0D1AE0 E426EAF0 */ swc1 $f6, %lo(D_8004EAF0)($at) +/* 106614 7F0D1AE4 35CE0C02 */ ori $t6, (0xBA000C02 & 0xFFFF) # ori $t6, $t6, 0xc02 +/* 106618 7F0D1AE8 24830008 */ addiu $v1, $a0, 8 +/* 10661C 7F0D1AEC AC4E0000 */ sw $t6, ($v0) +/* 106620 7F0D1AF0 AC400004 */ sw $zero, 4($v0) +/* 106624 7F0D1AF4 3C0FBA00 */ lui $t7, (0xBA000602 >> 16) # lui $t7, 0xba00 +/* 106628 7F0D1AF8 35EF0602 */ ori $t7, (0xBA000602 & 0xFFFF) # ori $t7, $t7, 0x602 +/* 10662C 7F0D1AFC 24650008 */ addiu $a1, $v1, 8 +/* 106630 7F0D1B00 241800C0 */ li $t8, 192 +/* 106634 7F0D1B04 AC780004 */ sw $t8, 4($v1) +/* 106638 7F0D1B08 AC6F0000 */ sw $t7, ($v1) +/* 10663C 7F0D1B0C 3C19B600 */ lui $t9, 0xb600 +/* 106640 7F0D1B10 24090001 */ li $t1, 1 +/* 106644 7F0D1B14 ACA90004 */ sw $t1, 4($a1) +/* 106648 7F0D1B18 ACB90000 */ sw $t9, ($a1) +/* 10664C 7F0D1B1C 24A40008 */ addiu $a0, $a1, 8 +/* 106650 7F0D1B20 24870008 */ addiu $a3, $a0, 8 +/* 106654 7F0D1B24 3C0AE700 */ lui $t2, 0xe700 +/* 106658 7F0D1B28 AC8A0000 */ sw $t2, ($a0) +/* 10665C 7F0D1B2C AC800004 */ sw $zero, 4($a0) +/* 106660 7F0D1B30 3C0BBA00 */ lui $t3, (0xBA001301 >> 16) # lui $t3, 0xba00 +/* 106664 7F0D1B34 356B1301 */ ori $t3, (0xBA001301 & 0xFFFF) # ori $t3, $t3, 0x1301 +/* 106668 7F0D1B38 24E30008 */ addiu $v1, $a3, 8 +/* 10666C 7F0D1B3C ACEB0000 */ sw $t3, ($a3) +/* 106670 7F0D1B40 ACE00004 */ sw $zero, 4($a3) +/* 106674 7F0D1B44 3C0CBA00 */ lui $t4, (0xBA001402 >> 16) # lui $t4, 0xba00 +/* 106678 7F0D1B48 358C1402 */ ori $t4, (0xBA001402 & 0xFFFF) # ori $t4, $t4, 0x1402 +/* 10667C 7F0D1B4C 24650008 */ addiu $a1, $v1, 8 +/* 106680 7F0D1B50 3C0D0030 */ lui $t5, 0x30 +/* 106684 7F0D1B54 AC6D0004 */ sw $t5, 4($v1) +/* 106688 7F0D1B58 AC6C0000 */ sw $t4, ($v1) +/* 10668C 7F0D1B5C 3C0F0F0A */ lui $t7, (0x0F0A4000 >> 16) # lui $t7, 0xf0a +/* 106690 7F0D1B60 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 106694 7F0D1B64 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 106698 7F0D1B68 35EF4000 */ ori $t7, (0x0F0A4000 & 0xFFFF) # ori $t7, $t7, 0x4000 +/* 10669C 7F0D1B6C 24A60008 */ addiu $a2, $a1, 8 +/* 1066A0 7F0D1B70 3C18BA00 */ lui $t8, (0xBA001701 >> 16) # lui $t8, 0xba00 +/* 1066A4 7F0D1B74 ACAF0004 */ sw $t7, 4($a1) +/* 1066A8 7F0D1B78 ACAE0000 */ sw $t6, ($a1) +/* 1066AC 7F0D1B7C 37181701 */ ori $t8, (0xBA001701 & 0xFFFF) # ori $t8, $t8, 0x1701 +/* 1066B0 7F0D1B80 3C190080 */ lui $t9, 0x80 +/* 1066B4 7F0D1B84 ACD90004 */ sw $t9, 4($a2) +/* 1066B8 7F0D1B88 ACD80000 */ sw $t8, ($a2) +/* 1066BC 7F0D1B8C 03E00008 */ jr $ra +/* 1066C0 7F0D1B90 24C20008 */ addiu $v0, $a2, 8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D1B94(s32 arg1, ?32 argE) { + // Node 0 + sub_GAME_7F0D1BD0(arg1, arg1, argE, 2, 1); + return; + // (possible return value: sub_GAME_7F0D1BD0(arg1, arg1, argE, 2, 1)) +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D1B94 +/* 1066C4 7F0D1B94 44856000 */ mtc1 $a1, $f12 +/* 1066C8 7F0D1B98 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 1066CC 7F0D1B9C 8FAE0038 */ lw $t6, 0x38($sp) +/* 1066D0 7F0D1BA0 AFBF0024 */ sw $ra, 0x24($sp) +/* 1066D4 7F0D1BA4 240F0002 */ li $t7, 2 +/* 1066D8 7F0D1BA8 24180001 */ li $t8, 1 +/* 1066DC 7F0D1BAC 44056000 */ mfc1 $a1, $f12 +/* 1066E0 7F0D1BB0 AFB80018 */ sw $t8, 0x18($sp) +/* 1066E4 7F0D1BB4 AFAF0014 */ sw $t7, 0x14($sp) +/* 1066E8 7F0D1BB8 0FC346F4 */ jal sub_GAME_7F0D1BD0 +/* 1066EC 7F0D1BBC AFAE0010 */ sw $t6, 0x10($sp) +/* 1066F0 7F0D1BC0 8FBF0024 */ lw $ra, 0x24($sp) +/* 1066F4 7F0D1BC4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 1066F8 7F0D1BC8 03E00008 */ jr $ra +/* 1066FC 7F0D1BCC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D1BD0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D1BD0 +/* 106700 7F0D1BD0 44856000 */ mtc1 $a1, $f12 +/* 106704 7F0D1BD4 44802000 */ mtc1 $zero, $f4 +/* 106708 7F0D1BD8 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 10670C 7F0D1BDC AFB2000C */ sw $s2, 0xc($sp) +/* 106710 7F0D1BE0 460C203C */ c.lt.s $f4, $f12 +/* 106714 7F0D1BE4 AFB10008 */ sw $s1, 8($sp) +/* 106718 7F0D1BE8 AFB00004 */ sw $s0, 4($sp) +/* 10671C 7F0D1BEC AFA60018 */ sw $a2, 0x18($sp) +/* 106720 7F0D1BF0 45000070 */ bc1f .L7F0D1DB4 +/* 106724 7F0D1BF4 AFA7001C */ sw $a3, 0x1c($sp) +/* 106728 7F0D1BF8 3C058005 */ lui $a1, %hi(D_8004EAF4) +/* 10672C 7F0D1BFC 24A5EAF4 */ addiu $a1, %lo(D_8004EAF4) # addiu $a1, $a1, -0x150c +/* 106730 7F0D1C00 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 106734 7F0D1C04 44817000 */ mtc1 $at, $f14 +/* 106738 7F0D1C08 C4A00000 */ lwc1 $f0, ($a1) +/* 10673C 7F0D1C0C 3C01435B */ li $at, 0x435B0000 # 219.000000 +/* 106740 7F0D1C10 44815000 */ mtc1 $at, $f10 +/* 106744 7F0D1C14 460E0183 */ div.s $f6, $f0, $f14 +/* 106748 7F0D1C18 00804025 */ move $t0, $a0 +/* 10674C 7F0D1C1C 3C18F700 */ lui $t8, 0xf700 +/* 106750 7F0D1C20 AD180000 */ sw $t8, ($t0) +/* 106754 7F0D1C24 460A0402 */ mul.s $f16, $f0, $f10 +/* 106758 7F0D1C28 460C0080 */ add.s $f2, $f0, $f12 +/* 10675C 7F0D1C2C 8FB90018 */ lw $t9, 0x18($sp) +/* 106760 7F0D1C30 8FB8001C */ lw $t8, 0x1c($sp) +/* 106764 7F0D1C34 24840008 */ addiu $a0, $a0, 8 +/* 106768 7F0D1C38 00197200 */ sll $t6, $t9, 8 +/* 10676C 7F0D1C3C 31CFF800 */ andi $t7, $t6, 0xf800 +/* 106770 7F0D1C40 0018C8C0 */ sll $t9, $t8, 3 +/* 106774 7F0D1C44 332E07C0 */ andi $t6, $t9, 0x7c0 +/* 106778 7F0D1C48 8FB90020 */ lw $t9, 0x20($sp) +/* 10677C 7F0D1C4C 01EEC025 */ or $t8, $t7, $t6 +/* 106780 7F0D1C50 00197883 */ sra $t7, $t9, 2 +/* 106784 7F0D1C54 31EE003E */ andi $t6, $t7, 0x3e +/* 106788 7F0D1C58 030E4825 */ or $t1, $t8, $t6 +/* 10678C 7F0D1C5C 35390001 */ ori $t9, $t1, 1 +/* 106790 7F0D1C60 00197C00 */ sll $t7, $t9, 0x10 +/* 106794 7F0D1C64 01F9C025 */ or $t8, $t7, $t9 +/* 106798 7F0D1C68 460E8483 */ div.s $f18, $f16, $f14 +/* 10679C 7F0D1C6C AD180004 */ sw $t8, 4($t0) +/* 1067A0 7F0D1C70 4600320D */ trunc.w.s $f8, $f6 +/* 1067A4 7F0D1C74 44064000 */ mfc1 $a2, $f8 +/* 1067A8 7F0D1C78 00000000 */ nop +/* 1067AC 7F0D1C7C 00C01025 */ move $v0, $a2 +/* 1067B0 7F0D1C80 460E1183 */ div.s $f6, $f2, $f14 +/* 1067B4 7F0D1C84 4600910D */ trunc.w.s $f4, $f18 +/* 1067B8 7F0D1C88 44072000 */ mfc1 $a3, $f4 +/* 1067BC 7F0D1C8C 4600320D */ trunc.w.s $f8, $f6 +/* 1067C0 7F0D1C90 44034000 */ mfc1 $v1, $f8 +/* 1067C4 7F0D1C94 00000000 */ nop +/* 1067C8 7F0D1C98 0066082A */ slt $at, $v1, $a2 +/* 1067CC 7F0D1C9C 14200042 */ bnez $at, .L7F0D1DA8 +/* 1067D0 7F0D1CA0 28C10003 */ slti $at, $a2, 3 +/* 1067D4 7F0D1CA4 10200040 */ beqz $at, .L7F0D1DA8 +/* 1067D8 7F0D1CA8 3C01435B */ li $at, 0x435B0000 # 219.000000 +/* 1067DC 7F0D1CAC 44815000 */ mtc1 $at, $f10 +/* 1067E0 7F0D1CB0 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 1067E4 7F0D1CB4 44819000 */ mtc1 $at, $f18 +/* 1067E8 7F0D1CB8 460A1402 */ mul.s $f16, $f2, $f10 +/* 1067EC 7F0D1CBC 000240C0 */ sll $t0, $v0, 3 +/* 1067F0 7F0D1CC0 01024023 */ subu $t0, $t0, $v0 +/* 1067F4 7F0D1CC4 000840C0 */ sll $t0, $t0, 3 +/* 1067F8 7F0D1CC8 01024023 */ subu $t0, $t0, $v0 +/* 1067FC 7F0D1CCC 00084080 */ sll $t0, $t0, 2 +/* 106800 7F0D1CD0 01024023 */ subu $t0, $t0, $v0 +/* 106804 7F0D1CD4 46128103 */ div.s $f4, $f16, $f18 +/* 106808 7F0D1CD8 00E84823 */ subu $t1, $a3, $t0 +/* 10680C 7F0D1CDC 25290032 */ addiu $t1, $t1, 0x32 +/* 106810 7F0D1CE0 24120007 */ li $s2, 7 +/* 106814 7F0D1CE4 3C11F600 */ lui $s1, 0xf600 +/* 106818 7F0D1CE8 8FAD0028 */ lw $t5, 0x28($sp) +/* 10681C 7F0D1CEC 8FAC0024 */ lw $t4, 0x24($sp) +/* 106820 7F0D1CF0 4600218D */ trunc.w.s $f6, $f4 +/* 106824 7F0D1CF4 44063000 */ mfc1 $a2, $f6 +/* 106828 7F0D1CF8 00000000 */ nop +/* 10682C 7F0D1CFC 00C85823 */ subu $t3, $a2, $t0 +.L7F0D1D00: +/* 106830 7F0D1D00 256B0032 */ addiu $t3, $t3, 0x32 +/* 106834 7F0D1D04 29210032 */ slti $at, $t1, 0x32 +/* 106838 7F0D1D08 01203825 */ move $a3, $t1 +/* 10683C 7F0D1D0C 10200002 */ beqz $at, .L7F0D1D18 +/* 106840 7F0D1D10 01605025 */ move $t2, $t3 +/* 106844 7F0D1D14 24070032 */ li $a3, 50 +.L7F0D1D18: +/* 106848 7F0D1D18 2961010E */ slti $at, $t3, 0x10e +/* 10684C 7F0D1D1C 14200002 */ bnez $at, .L7F0D1D28 +/* 106850 7F0D1D20 250800DB */ addiu $t0, $t0, 0xdb +/* 106854 7F0D1D24 240A010D */ li $t2, 269 +.L7F0D1D28: +/* 106858 7F0D1D28 0147082A */ slt $at, $t2, $a3 +/* 10685C 7F0D1D2C 54200018 */ bnezl $at, .L7F0D1D90 +/* 106860 7F0D1D30 24420001 */ addiu $v0, $v0, 1 +/* 106864 7F0D1D34 00520019 */ multu $v0, $s2 +/* 106868 7F0D1D38 314F03FF */ andi $t7, $t2, 0x3ff +/* 10686C 7F0D1D3C 000FC380 */ sll $t8, $t7, 0xe +/* 106870 7F0D1D40 018DC821 */ addu $t9, $t4, $t5 +/* 106874 7F0D1D44 03117025 */ or $t6, $t8, $s1 +/* 106878 7F0D1D48 00805825 */ move $t3, $a0 +/* 10687C 7F0D1D4C 24840008 */ addiu $a0, $a0, 8 +/* 106880 7F0D1D50 00008012 */ mflo $s0 +/* 106884 7F0D1D54 03307821 */ addu $t7, $t9, $s0 +/* 106888 7F0D1D58 25F80011 */ addiu $t8, $t7, 0x11 +/* 10688C 7F0D1D5C 331903FF */ andi $t9, $t8, 0x3ff +/* 106890 7F0D1D60 00197880 */ sll $t7, $t9, 2 +/* 106894 7F0D1D64 01CFC025 */ or $t8, $t6, $t7 +/* 106898 7F0D1D68 AD780000 */ sw $t8, ($t3) +/* 10689C 7F0D1D6C 01B07821 */ addu $t7, $t5, $s0 +/* 1068A0 7F0D1D70 30F903FF */ andi $t9, $a3, 0x3ff +/* 1068A4 7F0D1D74 00197380 */ sll $t6, $t9, 0xe +/* 1068A8 7F0D1D78 25F80012 */ addiu $t8, $t7, 0x12 +/* 1068AC 7F0D1D7C 331903FF */ andi $t9, $t8, 0x3ff +/* 1068B0 7F0D1D80 00197880 */ sll $t7, $t9, 2 +/* 1068B4 7F0D1D84 01CFC025 */ or $t8, $t6, $t7 +/* 1068B8 7F0D1D88 AD780004 */ sw $t8, 4($t3) +/* 1068BC 7F0D1D8C 24420001 */ addiu $v0, $v0, 1 +.L7F0D1D90: +/* 1068C0 7F0D1D90 0062082A */ slt $at, $v1, $v0 +/* 1068C4 7F0D1D94 14200004 */ bnez $at, .L7F0D1DA8 +/* 1068C8 7F0D1D98 2529FF25 */ addiu $t1, $t1, -0xdb +/* 1068CC 7F0D1D9C 28410003 */ slti $at, $v0, 3 +/* 1068D0 7F0D1DA0 5420FFD7 */ bnezl $at, .L7F0D1D00 +/* 1068D4 7F0D1DA4 00C85823 */ subu $t3, $a2, $t0 +.L7F0D1DA8: +/* 1068D8 7F0D1DA8 C4A80000 */ lwc1 $f8, ($a1) +/* 1068DC 7F0D1DAC 460C4280 */ add.s $f10, $f8, $f12 +/* 1068E0 7F0D1DB0 E4AA0000 */ swc1 $f10, ($a1) +.L7F0D1DB4: +/* 1068E4 7F0D1DB4 8FB00004 */ lw $s0, 4($sp) +/* 1068E8 7F0D1DB8 8FB10008 */ lw $s1, 8($sp) +/* 1068EC 7F0D1DBC 8FB2000C */ lw $s2, 0xc($sp) +/* 1068F0 7F0D1DC0 27BD0010 */ addiu $sp, $sp, 0x10 +/* 1068F4 7F0D1DC4 03E00008 */ jr $ra +/* 1068F8 7F0D1DC8 00801025 */ move $v0, $a0 +) +#endif + + + + + +void sub_GAME_7F0D1DCC(f32 arg0) { + if (0.0f < arg0) { + D_8004EAF4 = (f32) (D_8004EAF4 + arg0); + return; + } +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D1DFC(s32 arg1, ?32 argC) { + // Node 0 + sub_GAME_7F0D1B94(arg1, ((D_8004EAF0 + arg1) - D_8004EAF4), argC); + return; + // (possible return value: sub_GAME_7F0D1B94(arg1, ((D_8004EAF0 + arg1) - D_8004EAF4), argC)) +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D1DFC +/* 10692C 7F0D1DFC 3C018005 */ lui $at, %hi(D_8004EAF0) +/* 106930 7F0D1E00 44856000 */ mtc1 $a1, $f12 +/* 106934 7F0D1E04 C424EAF0 */ lwc1 $f4, %lo(D_8004EAF0)($at) +/* 106938 7F0D1E08 3C018005 */ lui $at, %hi(D_8004EAF4) +/* 10693C 7F0D1E0C C428EAF4 */ lwc1 $f8, %lo(D_8004EAF4)($at) +/* 106940 7F0D1E10 460C2180 */ add.s $f6, $f4, $f12 +/* 106944 7F0D1E14 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 106948 7F0D1E18 8FAE0030 */ lw $t6, 0x30($sp) +/* 10694C 7F0D1E1C AFBF001C */ sw $ra, 0x1c($sp) +/* 106950 7F0D1E20 46083281 */ sub.s $f10, $f6, $f8 +/* 106954 7F0D1E24 AFAE0010 */ sw $t6, 0x10($sp) +/* 106958 7F0D1E28 44055000 */ mfc1 $a1, $f10 +/* 10695C 7F0D1E2C 0FC346E5 */ jal sub_GAME_7F0D1B94 +/* 106960 7F0D1E30 00000000 */ nop +/* 106964 7F0D1E34 8FBF001C */ lw $ra, 0x1c($sp) +/* 106968 7F0D1E38 27BD0020 */ addiu $sp, $sp, 0x20 +/* 10696C 7F0D1E3C 03E00008 */ jr $ra +/* 106970 7F0D1E40 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D1E44(s32 arg1, ?32 argE, ?32 argF, ?32 arg10) { + // Node 0 + sub_GAME_7F0D1BD0(arg1, ((D_8004EAF0 + arg1) - D_8004EAF4), argE, argF, arg10); + return; + // (possible return value: sub_GAME_7F0D1BD0(arg1, ((D_8004EAF0 + arg1) - D_8004EAF4), argE, argF, arg10)) +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D1E44 +/* 106974 7F0D1E44 3C018005 */ lui $at, %hi(D_8004EAF0) +/* 106978 7F0D1E48 44856000 */ mtc1 $a1, $f12 +/* 10697C 7F0D1E4C C424EAF0 */ lwc1 $f4, %lo(D_8004EAF0)($at) +/* 106980 7F0D1E50 3C018005 */ lui $at, %hi(D_8004EAF4) +/* 106984 7F0D1E54 C428EAF4 */ lwc1 $f8, %lo(D_8004EAF4)($at) +/* 106988 7F0D1E58 460C2180 */ add.s $f6, $f4, $f12 +/* 10698C 7F0D1E5C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 106990 7F0D1E60 8FAE0038 */ lw $t6, 0x38($sp) +/* 106994 7F0D1E64 8FAF003C */ lw $t7, 0x3c($sp) +/* 106998 7F0D1E68 46083281 */ sub.s $f10, $f6, $f8 +/* 10699C 7F0D1E6C 8FB80040 */ lw $t8, 0x40($sp) +/* 1069A0 7F0D1E70 AFBF0024 */ sw $ra, 0x24($sp) +/* 1069A4 7F0D1E74 AFAE0010 */ sw $t6, 0x10($sp) +/* 1069A8 7F0D1E78 44055000 */ mfc1 $a1, $f10 +/* 1069AC 7F0D1E7C AFAF0014 */ sw $t7, 0x14($sp) +/* 1069B0 7F0D1E80 0FC346F4 */ jal sub_GAME_7F0D1BD0 +/* 1069B4 7F0D1E84 AFB80018 */ sw $t8, 0x18($sp) +/* 1069B8 7F0D1E88 8FBF0024 */ lw $ra, 0x24($sp) +/* 1069BC 7F0D1E8C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 1069C0 7F0D1E90 03E00008 */ jr $ra +/* 1069C4 7F0D1E94 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D1E98(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D1E98 +/* 1069C8 7F0D1E98 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 1069CC 7F0D1E9C 44810000 */ mtc1 $at, $f0 +/* 1069D0 7F0D1EA0 3C018005 */ lui $at, %hi(D_8004EAF4) +/* 1069D4 7F0D1EA4 C424EAF4 */ lwc1 $f4, %lo(D_8004EAF4)($at) +/* 1069D8 7F0D1EA8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 1069DC 7F0D1EAC AFBF002C */ sw $ra, 0x2c($sp) +/* 1069E0 7F0D1EB0 46002183 */ div.s $f6, $f4, $f0 +/* 1069E4 7F0D1EB4 AFBE0028 */ sw $fp, 0x28($sp) +/* 1069E8 7F0D1EB8 AFB70024 */ sw $s7, 0x24($sp) +/* 1069EC 7F0D1EBC AFB60020 */ sw $s6, 0x20($sp) +/* 1069F0 7F0D1EC0 AFB5001C */ sw $s5, 0x1c($sp) +/* 1069F4 7F0D1EC4 AFB40018 */ sw $s4, 0x18($sp) +/* 1069F8 7F0D1EC8 AFB30014 */ sw $s3, 0x14($sp) +/* 1069FC 7F0D1ECC AFB20010 */ sw $s2, 0x10($sp) +/* 106A00 7F0D1ED0 AFB1000C */ sw $s1, 0xc($sp) +/* 106A04 7F0D1ED4 AFB00008 */ sw $s0, 8($sp) +/* 106A08 7F0D1ED8 00801025 */ move $v0, $a0 +/* 106A0C 7F0D1EDC 3C0FF700 */ lui $t7, 0xf700 +/* 106A10 7F0D1EE0 AC4F0000 */ sw $t7, ($v0) +/* 106A14 7F0D1EE4 000670C0 */ sll $t6, $a2, 3 +/* 106A18 7F0D1EE8 31CF07C0 */ andi $t7, $t6, 0x7c0 +/* 106A1C 7F0D1EEC 0005C200 */ sll $t8, $a1, 8 +/* 106A20 7F0D1EF0 3319F800 */ andi $t9, $t8, 0xf800 +/* 106A24 7F0D1EF4 032FC025 */ or $t8, $t9, $t7 +/* 106A28 7F0D1EF8 00077083 */ sra $t6, $a3, 2 +/* 106A2C 7F0D1EFC 31D9003E */ andi $t9, $t6, 0x3e +/* 106A30 7F0D1F00 03191825 */ or $v1, $t8, $t9 +/* 106A34 7F0D1F04 346F0001 */ ori $t7, $v1, 1 +/* 106A38 7F0D1F08 000F7400 */ sll $t6, $t7, 0x10 +/* 106A3C 7F0D1F0C 4600320D */ trunc.w.s $f8, $f6 +/* 106A40 7F0D1F10 01CFC025 */ or $t8, $t6, $t7 +/* 106A44 7F0D1F14 AC580004 */ sw $t8, 4($v0) +/* 106A48 7F0D1F18 24840008 */ addiu $a0, $a0, 8 +/* 106A4C 7F0D1F1C 44084000 */ mfc1 $t0, $f8 +/* 106A50 7F0D1F20 00000000 */ nop +/* 106A54 7F0D1F24 050200F2 */ bltzl $t0, .L7F0D22F0 +/* 106A58 7F0D1F28 8FBF002C */ lw $ra, 0x2c($sp) +/* 106A5C 7F0D1F2C 44805000 */ mtc1 $zero, $f10 +/* 106A60 7F0D1F30 3C01435B */ li $at, 0x435B0000 # 219.000000 +/* 106A64 7F0D1F34 44819000 */ mtc1 $at, $f18 +/* 106A68 7F0D1F38 46805420 */ cvt.s.w $f16, $f10 +/* 106A6C 7F0D1F3C 24180001 */ li $t8, 1 +/* 106A70 7F0D1F40 44985000 */ mtc1 $t8, $f10 +/* 106A74 7F0D1F44 3C01F600 */ lui $at, 0xf600 +/* 106A78 7F0D1F48 24180002 */ li $t8, 2 +/* 106A7C 7F0D1F4C 000080C0 */ sll $s0, $zero, 3 +/* 106A80 7F0D1F50 46128102 */ mul.s $f4, $f16, $f18 +/* 106A84 7F0D1F54 02008023 */ subu $s0, $s0, $zero +/* 106A88 7F0D1F58 000848C0 */ sll $t1, $t0, 3 +/* 106A8C 7F0D1F5C 01284823 */ subu $t1, $t1, $t0 +/* 106A90 7F0D1F60 25290012 */ addiu $t1, $t1, 0x12 +/* 106A94 7F0D1F64 26030015 */ addiu $v1, $s0, 0x15 +/* 106A98 7F0D1F68 46805420 */ cvt.s.w $f16, $f10 +/* 106A9C 7F0D1F6C 44985000 */ mtc1 $t8, $f10 +/* 106AA0 7F0D1F70 26020012 */ addiu $v0, $s0, 0x12 +/* 106AA4 7F0D1F74 241F0027 */ li $ra, 39 +/* 106AA8 7F0D1F78 241E000B */ li $fp, 11 +/* 106AAC 7F0D1F7C 46002183 */ div.s $f6, $f4, $f0 +/* 106AB0 7F0D1F80 3C17F600 */ lui $s7, 0xf600 +/* 106AB4 7F0D1F84 4600320D */ trunc.w.s $f8, $f6 +/* 106AB8 7F0D1F88 44054000 */ mfc1 $a1, $f8 +/* 106ABC 7F0D1F8C 00000000 */ nop +/* 106AC0 7F0D1F90 24A50032 */ addiu $a1, $a1, 0x32 +/* 106AC4 7F0D1F94 30AF03FF */ andi $t7, $a1, 0x3ff +/* 106AC8 7F0D1F98 000F2B80 */ sll $a1, $t7, 0xe +/* 106ACC 7F0D1F9C 00A15025 */ or $t2, $a1, $at +/* 106AD0 7F0D1FA0 3C01435B */ li $at, 0x435B0000 # 219.000000 +/* 106AD4 7F0D1FA4 44819000 */ mtc1 $at, $f18 +/* 106AD8 7F0D1FA8 3C01F600 */ lui $at, 0xf600 +/* 106ADC 7F0D1FAC 46128102 */ mul.s $f4, $f16, $f18 +/* 106AE0 7F0D1FB0 46805420 */ cvt.s.w $f16, $f10 +/* 106AE4 7F0D1FB4 46002183 */ div.s $f6, $f4, $f0 +/* 106AE8 7F0D1FB8 4600320D */ trunc.w.s $f8, $f6 +/* 106AEC 7F0D1FBC 44064000 */ mfc1 $a2, $f8 +/* 106AF0 7F0D1FC0 00000000 */ nop +/* 106AF4 7F0D1FC4 24C60032 */ addiu $a2, $a2, 0x32 +/* 106AF8 7F0D1FC8 30CF03FF */ andi $t7, $a2, 0x3ff +/* 106AFC 7F0D1FCC 000F3380 */ sll $a2, $t7, 0xe +/* 106B00 7F0D1FD0 00C15825 */ or $t3, $a2, $at +/* 106B04 7F0D1FD4 3C01435B */ li $at, 0x435B0000 # 219.000000 +/* 106B08 7F0D1FD8 44819000 */ mtc1 $at, $f18 +/* 106B0C 7F0D1FDC 3C01F600 */ lui $at, 0xf600 +/* 106B10 7F0D1FE0 46128102 */ mul.s $f4, $f16, $f18 +/* 106B14 7F0D1FE4 46002183 */ div.s $f6, $f4, $f0 +/* 106B18 7F0D1FE8 4600320D */ trunc.w.s $f8, $f6 +/* 106B1C 7F0D1FEC 44074000 */ mfc1 $a3, $f8 +/* 106B20 7F0D1FF0 00000000 */ nop +/* 106B24 7F0D1FF4 24E70032 */ addiu $a3, $a3, 0x32 +/* 106B28 7F0D1FF8 30EF03FF */ andi $t7, $a3, 0x3ff +/* 106B2C 7F0D1FFC 000F3B80 */ sll $a3, $t7, 0xe +/* 106B30 7F0D2000 00E16025 */ or $t4, $a3, $at +/* 106B34 7F0D2004 3C01435B */ li $at, 0x435B0000 # 219.000000 +/* 106B38 7F0D2008 44811000 */ mtc1 $at, $f2 +/* 106B3C 7F0D200C 00000000 */ nop +/* 106B40 7F0D2010 00808025 */ move $s0, $a0 +.L7F0D2014: +/* 106B44 7F0D2014 307203FF */ andi $s2, $v1, 0x3ff +/* 106B48 7F0D2018 305303FF */ andi $s3, $v0, 0x3ff +/* 106B4C 7F0D201C 00137880 */ sll $t7, $s3, 2 +/* 106B50 7F0D2020 0012C080 */ sll $t8, $s2, 2 +/* 106B54 7F0D2024 0158C825 */ or $t9, $t2, $t8 +/* 106B58 7F0D2028 00AF7025 */ or $t6, $a1, $t7 +/* 106B5C 7F0D202C AE0E0004 */ sw $t6, 4($s0) +/* 106B60 7F0D2030 AE190000 */ sw $t9, ($s0) +/* 106B64 7F0D2034 24840008 */ addiu $a0, $a0, 8 +/* 106B68 7F0D2038 00808025 */ move $s0, $a0 +/* 106B6C 7F0D203C 03009025 */ move $s2, $t8 +/* 106B70 7F0D2040 0178C025 */ or $t8, $t3, $t8 +/* 106B74 7F0D2044 00CFC825 */ or $t9, $a2, $t7 +/* 106B78 7F0D2048 AE190004 */ sw $t9, 4($s0) +/* 106B7C 7F0D204C AE180000 */ sw $t8, ($s0) +/* 106B80 7F0D2050 24840008 */ addiu $a0, $a0, 8 +/* 106B84 7F0D2054 00808025 */ move $s0, $a0 +/* 106B88 7F0D2058 01E09825 */ move $s3, $t7 +/* 106B8C 7F0D205C 00F37025 */ or $t6, $a3, $s3 +/* 106B90 7F0D2060 01927825 */ or $t7, $t4, $s2 +/* 106B94 7F0D2064 AE0F0000 */ sw $t7, ($s0) +/* 106B98 7F0D2068 AE0E0004 */ sw $t6, 4($s0) +/* 106B9C 7F0D206C 24840008 */ addiu $a0, $a0, 8 +/* 106BA0 7F0D2070 240D0003 */ li $t5, 3 +/* 106BA4 7F0D2074 448D7000 */ mtc1 $t5, $f14 +/* 106BA8 7F0D2078 27DEFFFC */ addiu $fp, $fp, -4 +/* 106BAC 7F0D207C 468073A0 */ cvt.s.w $f14, $f14 +/* 106BB0 7F0D2080 46027382 */ mul.s $f14, $f14, $f2 +/* 106BB4 7F0D2084 46007383 */ div.s $f14, $f14, $f0 +/* 106BB8 7F0D2088 4600738D */ trunc.w.s $f14, $f14 +/* 106BBC 7F0D208C 44117000 */ mfc1 $s1, $f14 +/* 106BC0 7F0D2090 00000000 */ nop +/* 106BC4 7F0D2094 26310032 */ addiu $s1, $s1, 0x32 +/* 106BC8 7F0D2098 323903FF */ andi $t9, $s1, 0x3ff +/* 106BCC 7F0D209C 00197B80 */ sll $t7, $t9, 0xe +/* 106BD0 7F0D20A0 01F77025 */ or $t6, $t7, $s7 +/* 106BD4 7F0D20A4 01F3C825 */ or $t9, $t7, $s3 +/* 106BD8 7F0D20A8 25AF0001 */ addiu $t7, $t5, 1 +/* 106BDC 7F0D20AC 448F7000 */ mtc1 $t7, $f14 +/* 106BE0 7F0D20B0 00000000 */ nop +/* 106BE4 7F0D20B4 468073A0 */ cvt.s.w $f14, $f14 +/* 106BE8 7F0D20B8 46027482 */ mul.s $f18, $f14, $f2 +/* 106BEC 7F0D20BC 51BE004D */ beql $t5, $fp, .L7F0D21F4 +/* 106BF0 7F0D20C0 46009403 */ div.s $f16, $f18, $f0 +/* 106BF4 7F0D20C4 46009403 */ div.s $f16, $f18, $f0 +.L7F0D20C8: +/* 106BF8 7F0D20C8 00808025 */ move $s0, $a0 +/* 106BFC 7F0D20CC 01D2C025 */ or $t8, $t6, $s2 +/* 106C00 7F0D20D0 AE180000 */ sw $t8, ($s0) +/* 106C04 7F0D20D4 AE190004 */ sw $t9, 4($s0) +/* 106C08 7F0D20D8 24840008 */ addiu $a0, $a0, 8 +/* 106C0C 7F0D20DC 00808025 */ move $s0, $a0 +/* 106C10 7F0D20E0 24840008 */ addiu $a0, $a0, 8 +/* 106C14 7F0D20E4 4600840D */ trunc.w.s $f16, $f16 +/* 106C18 7F0D20E8 44148000 */ mfc1 $s4, $f16 +/* 106C1C 7F0D20EC 00000000 */ nop +/* 106C20 7F0D20F0 26940032 */ addiu $s4, $s4, 0x32 +/* 106C24 7F0D20F4 329803FF */ andi $t8, $s4, 0x3ff +/* 106C28 7F0D20F8 0018CB80 */ sll $t9, $t8, 0xe +/* 106C2C 7F0D20FC 03377825 */ or $t7, $t9, $s7 +/* 106C30 7F0D2100 0333C025 */ or $t8, $t9, $s3 +/* 106C34 7F0D2104 25B90002 */ addiu $t9, $t5, 2 +/* 106C38 7F0D2108 44998000 */ mtc1 $t9, $f16 +/* 106C3C 7F0D210C 01F27025 */ or $t6, $t7, $s2 +/* 106C40 7F0D2110 AE0E0000 */ sw $t6, ($s0) +/* 106C44 7F0D2114 46808420 */ cvt.s.w $f16, $f16 +/* 106C48 7F0D2118 AE180004 */ sw $t8, 4($s0) +/* 106C4C 7F0D211C 00808025 */ move $s0, $a0 +/* 106C50 7F0D2120 24840008 */ addiu $a0, $a0, 8 +/* 106C54 7F0D2124 46028402 */ mul.s $f16, $f16, $f2 +/* 106C58 7F0D2128 46008403 */ div.s $f16, $f16, $f0 +/* 106C5C 7F0D212C 4600840D */ trunc.w.s $f16, $f16 +/* 106C60 7F0D2130 44158000 */ mfc1 $s5, $f16 +/* 106C64 7F0D2134 00000000 */ nop +/* 106C68 7F0D2138 26B50032 */ addiu $s5, $s5, 0x32 +/* 106C6C 7F0D213C 32AE03FF */ andi $t6, $s5, 0x3ff +/* 106C70 7F0D2140 000EC380 */ sll $t8, $t6, 0xe +/* 106C74 7F0D2144 0317C825 */ or $t9, $t8, $s7 +/* 106C78 7F0D2148 03137025 */ or $t6, $t8, $s3 +/* 106C7C 7F0D214C 25B80003 */ addiu $t8, $t5, 3 +/* 106C80 7F0D2150 44988000 */ mtc1 $t8, $f16 +/* 106C84 7F0D2154 25AD0004 */ addiu $t5, $t5, 4 +/* 106C88 7F0D2158 448D7000 */ mtc1 $t5, $f14 +/* 106C8C 7F0D215C 46808420 */ cvt.s.w $f16, $f16 +/* 106C90 7F0D2160 03327825 */ or $t7, $t9, $s2 +/* 106C94 7F0D2164 AE0F0000 */ sw $t7, ($s0) +/* 106C98 7F0D2168 AE0E0004 */ sw $t6, 4($s0) +/* 106C9C 7F0D216C 00808025 */ move $s0, $a0 +/* 106CA0 7F0D2170 24840008 */ addiu $a0, $a0, 8 +/* 106CA4 7F0D2174 46028402 */ mul.s $f16, $f16, $f2 +/* 106CA8 7F0D2178 46008403 */ div.s $f16, $f16, $f0 +/* 106CAC 7F0D217C 4600840D */ trunc.w.s $f16, $f16 +/* 106CB0 7F0D2180 468073A0 */ cvt.s.w $f14, $f14 +/* 106CB4 7F0D2184 44168000 */ mfc1 $s6, $f16 +/* 106CB8 7F0D2188 00000000 */ nop +/* 106CBC 7F0D218C 26D60032 */ addiu $s6, $s6, 0x32 +/* 106CC0 7F0D2190 32CF03FF */ andi $t7, $s6, 0x3ff +/* 106CC4 7F0D2194 46027382 */ mul.s $f14, $f14, $f2 +/* 106CC8 7F0D2198 000F7380 */ sll $t6, $t7, 0xe +/* 106CCC 7F0D219C 01D7C025 */ or $t8, $t6, $s7 +/* 106CD0 7F0D21A0 0312C825 */ or $t9, $t8, $s2 +/* 106CD4 7F0D21A4 AE190000 */ sw $t9, ($s0) +/* 106CD8 7F0D21A8 01D37825 */ or $t7, $t6, $s3 +/* 106CDC 7F0D21AC AE0F0004 */ sw $t7, 4($s0) +/* 106CE0 7F0D21B0 46007383 */ div.s $f14, $f14, $f0 +/* 106CE4 7F0D21B4 4600738D */ trunc.w.s $f14, $f14 +/* 106CE8 7F0D21B8 44117000 */ mfc1 $s1, $f14 +/* 106CEC 7F0D21BC 00000000 */ nop +/* 106CF0 7F0D21C0 26310032 */ addiu $s1, $s1, 0x32 +/* 106CF4 7F0D21C4 323903FF */ andi $t9, $s1, 0x3ff +/* 106CF8 7F0D21C8 00197B80 */ sll $t7, $t9, 0xe +/* 106CFC 7F0D21CC 01F77025 */ or $t6, $t7, $s7 +/* 106D00 7F0D21D0 01F3C825 */ or $t9, $t7, $s3 +/* 106D04 7F0D21D4 25AF0001 */ addiu $t7, $t5, 1 +/* 106D08 7F0D21D8 448F7000 */ mtc1 $t7, $f14 +/* 106D0C 7F0D21DC 00000000 */ nop +/* 106D10 7F0D21E0 468073A0 */ cvt.s.w $f14, $f14 +/* 106D14 7F0D21E4 46027482 */ mul.s $f18, $f14, $f2 +/* 106D18 7F0D21E8 55BEFFB7 */ bnel $t5, $fp, .L7F0D20C8 +/* 106D1C 7F0D21EC 46009403 */ div.s $f16, $f18, $f0 +/* 106D20 7F0D21F0 46009403 */ div.s $f16, $f18, $f0 +.L7F0D21F4: +/* 106D24 7F0D21F4 00808025 */ move $s0, $a0 +/* 106D28 7F0D21F8 01D2C025 */ or $t8, $t6, $s2 +/* 106D2C 7F0D21FC AE180000 */ sw $t8, ($s0) +/* 106D30 7F0D2200 AE190004 */ sw $t9, 4($s0) +/* 106D34 7F0D2204 24840008 */ addiu $a0, $a0, 8 +/* 106D38 7F0D2208 00808025 */ move $s0, $a0 +/* 106D3C 7F0D220C 24840008 */ addiu $a0, $a0, 8 +/* 106D40 7F0D2210 27DE0004 */ addiu $fp, $fp, 4 +/* 106D44 7F0D2214 4600840D */ trunc.w.s $f16, $f16 +/* 106D48 7F0D2218 44148000 */ mfc1 $s4, $f16 +/* 106D4C 7F0D221C 00000000 */ nop +/* 106D50 7F0D2220 26940032 */ addiu $s4, $s4, 0x32 +/* 106D54 7F0D2224 329803FF */ andi $t8, $s4, 0x3ff +/* 106D58 7F0D2228 0018CB80 */ sll $t9, $t8, 0xe +/* 106D5C 7F0D222C 03377825 */ or $t7, $t9, $s7 +/* 106D60 7F0D2230 0333C025 */ or $t8, $t9, $s3 +/* 106D64 7F0D2234 25B90002 */ addiu $t9, $t5, 2 +/* 106D68 7F0D2238 44998000 */ mtc1 $t9, $f16 +/* 106D6C 7F0D223C 01F27025 */ or $t6, $t7, $s2 +/* 106D70 7F0D2240 AE0E0000 */ sw $t6, ($s0) +/* 106D74 7F0D2244 46808420 */ cvt.s.w $f16, $f16 +/* 106D78 7F0D2248 AE180004 */ sw $t8, 4($s0) +/* 106D7C 7F0D224C 00808025 */ move $s0, $a0 +/* 106D80 7F0D2250 24840008 */ addiu $a0, $a0, 8 +/* 106D84 7F0D2254 46028402 */ mul.s $f16, $f16, $f2 +/* 106D88 7F0D2258 46008403 */ div.s $f16, $f16, $f0 +/* 106D8C 7F0D225C 4600840D */ trunc.w.s $f16, $f16 +/* 106D90 7F0D2260 44158000 */ mfc1 $s5, $f16 +/* 106D94 7F0D2264 00000000 */ nop +/* 106D98 7F0D2268 26B50032 */ addiu $s5, $s5, 0x32 +/* 106D9C 7F0D226C 32AE03FF */ andi $t6, $s5, 0x3ff +/* 106DA0 7F0D2270 000EC380 */ sll $t8, $t6, 0xe +/* 106DA4 7F0D2274 0317C825 */ or $t9, $t8, $s7 +/* 106DA8 7F0D2278 03137025 */ or $t6, $t8, $s3 +/* 106DAC 7F0D227C 25B80003 */ addiu $t8, $t5, 3 +/* 106DB0 7F0D2280 44988000 */ mtc1 $t8, $f16 +/* 106DB4 7F0D2284 03327825 */ or $t7, $t9, $s2 +/* 106DB8 7F0D2288 AE0F0000 */ sw $t7, ($s0) +/* 106DBC 7F0D228C 46808420 */ cvt.s.w $f16, $f16 +/* 106DC0 7F0D2290 AE0E0004 */ sw $t6, 4($s0) +/* 106DC4 7F0D2294 00808025 */ move $s0, $a0 +/* 106DC8 7F0D2298 24840008 */ addiu $a0, $a0, 8 +/* 106DCC 7F0D229C 25AD0004 */ addiu $t5, $t5, 4 +/* 106DD0 7F0D22A0 46028402 */ mul.s $f16, $f16, $f2 +/* 106DD4 7F0D22A4 46008403 */ div.s $f16, $f16, $f0 +/* 106DD8 7F0D22A8 4600840D */ trunc.w.s $f16, $f16 +/* 106DDC 7F0D22AC 44168000 */ mfc1 $s6, $f16 +/* 106DE0 7F0D22B0 00000000 */ nop +/* 106DE4 7F0D22B4 26D60032 */ addiu $s6, $s6, 0x32 +/* 106DE8 7F0D22B8 32CF03FF */ andi $t7, $s6, 0x3ff +/* 106DEC 7F0D22BC 000F7380 */ sll $t6, $t7, 0xe +/* 106DF0 7F0D22C0 01D7C025 */ or $t8, $t6, $s7 +/* 106DF4 7F0D22C4 0312C825 */ or $t9, $t8, $s2 +/* 106DF8 7F0D22C8 01D37825 */ or $t7, $t6, $s3 +/* 106DFC 7F0D22CC AE0F0004 */ sw $t7, 4($s0) +/* 106E00 7F0D22D0 AE190000 */ sw $t9, ($s0) +/* 106E04 7F0D22D4 24420007 */ addiu $v0, $v0, 7 +/* 106E08 7F0D22D8 0122082A */ slt $at, $t1, $v0 +/* 106E0C 7F0D22DC 14200003 */ bnez $at, .L7F0D22EC +/* 106E10 7F0D22E0 24630007 */ addiu $v1, $v1, 7 +/* 106E14 7F0D22E4 545FFF4B */ bnel $v0, $ra, .L7F0D2014 +/* 106E18 7F0D22E8 00808025 */ move $s0, $a0 +.L7F0D22EC: +/* 106E1C 7F0D22EC 8FBF002C */ lw $ra, 0x2c($sp) +.L7F0D22F0: +/* 106E20 7F0D22F0 8FB00008 */ lw $s0, 8($sp) +/* 106E24 7F0D22F4 8FB1000C */ lw $s1, 0xc($sp) +/* 106E28 7F0D22F8 8FB20010 */ lw $s2, 0x10($sp) +/* 106E2C 7F0D22FC 8FB30014 */ lw $s3, 0x14($sp) +/* 106E30 7F0D2300 8FB40018 */ lw $s4, 0x18($sp) +/* 106E34 7F0D2304 8FB5001C */ lw $s5, 0x1c($sp) +/* 106E38 7F0D2308 8FB60020 */ lw $s6, 0x20($sp) +/* 106E3C 7F0D230C 8FB70024 */ lw $s7, 0x24($sp) +/* 106E40 7F0D2310 8FBE0028 */ lw $fp, 0x28($sp) +/* 106E44 7F0D2314 27BD0030 */ addiu $sp, $sp, 0x30 +/* 106E48 7F0D2318 03E00008 */ jr $ra +/* 106E4C 7F0D231C 00801025 */ move $v0, $a0 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0D2320(void) { + // Node 0 + D_8004EAF4 = (f32) (((s32) (D_8004EAF4 / 10.0f) * 0xa) + 0xa); + D_8004EAF0 = (f32) D_8004EAF4; + return; + // (possible return value: (((s32) (D_8004EAF4 / 10.0f) * 0xa) + 0xa)) +} + +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D2320 +/* 106E50 7F0D2320 3C038005 */ lui $v1, %hi(D_8004EAF4) +/* 106E54 7F0D2324 2463EAF4 */ addiu $v1, %lo(D_8004EAF4) # addiu $v1, $v1, -0x150c +/* 106E58 7F0D2328 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 106E5C 7F0D232C 44813000 */ mtc1 $at, $f6 +/* 106E60 7F0D2330 C4640000 */ lwc1 $f4, ($v1) +/* 106E64 7F0D2334 3C018005 */ lui $at, %hi(D_8004EAF0) +/* 106E68 7F0D2338 46062203 */ div.s $f8, $f4, $f6 +/* 106E6C 7F0D233C 4600428D */ trunc.w.s $f10, $f8 +/* 106E70 7F0D2340 44025000 */ mfc1 $v0, $f10 +/* 106E74 7F0D2344 00000000 */ nop +/* 106E78 7F0D2348 00027880 */ sll $t7, $v0, 2 +/* 106E7C 7F0D234C 01E27821 */ addu $t7, $t7, $v0 +/* 106E80 7F0D2350 000F7840 */ sll $t7, $t7, 1 +/* 106E84 7F0D2354 25E2000A */ addiu $v0, $t7, 0xa +/* 106E88 7F0D2358 44828000 */ mtc1 $v0, $f16 +/* 106E8C 7F0D235C 00000000 */ nop +/* 106E90 7F0D2360 468084A0 */ cvt.s.w $f18, $f16 +/* 106E94 7F0D2364 E4720000 */ swc1 $f18, ($v1) +/* 106E98 7F0D2368 C4640000 */ lwc1 $f4, ($v1) +/* 106E9C 7F0D236C 03E00008 */ jr $ra +/* 106EA0 7F0D2370 E424EAF0 */ swc1 $f4, %lo(D_8004EAF0)($at) +) +#endif + + + + diff --git a/src/game/viewport.c b/src/game/viewport.c new file mode 100644 index 0000000..fd2a2c5 --- /dev/null +++ b/src/game/viewport.c @@ -0,0 +1,299 @@ +#include "ultra64.h" +#include "game/bond.h" + +// bss +s32 viewport_img_width; +s32 viewport_img_height; + + +// data +s32 viewport_img = 0; + + +void remove_viewport_buffer(void) { + viewport_img = 0; +} + + +#ifdef NONMATCHING +void allocate_viewport_buffer(void) { + +} +#else +GLOBAL_ASM( +.text +glabel allocate_viewport_buffer +/* 106EBC 7F0D238C 3C0E8003 */ lui $t6, %hi(resolution) +/* 106EC0 7F0D2390 8DCE6428 */ lw $t6, %lo(resolution)($t6) +/* 106EC4 7F0D2394 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 106EC8 7F0D2398 AFBF0014 */ sw $ra, 0x14($sp) +/* 106ECC 7F0D239C 11C00008 */ beqz $t6, .L7F0D23C0 +/* 106ED0 7F0D23A0 3C028009 */ lui $v0, %hi(viewport_img_height) +/* 106ED4 7F0D23A4 240F01B8 */ li $t7, 440 +/* 106ED8 7F0D23A8 3C018009 */ lui $at, %hi(viewport_img_width) +/* 106EDC 7F0D23AC 2442E314 */ addiu $v0, %lo(viewport_img_height) # addiu $v0, $v0, -0x1cec +/* 106EE0 7F0D23B0 AC2FE310 */ sw $t7, %lo(viewport_img_width)($at) +/* 106EE4 7F0D23B4 2418014A */ li $t8, 330 +/* 106EE8 7F0D23B8 10000010 */ b .L7F0D23FC +/* 106EEC 7F0D23BC AC580000 */ sw $t8, ($v0) +.L7F0D23C0: +/* 106EF0 7F0D23C0 24190140 */ li $t9, 320 +/* 106EF4 7F0D23C4 3C018009 */ lui $at, %hi(viewport_img_width) +/* 106EF8 7F0D23C8 0FC26919 */ jal get_num_players +/* 106EFC 7F0D23CC AC39E310 */ sw $t9, %lo(viewport_img_width)($at) +/* 106F00 7F0D23D0 24010001 */ li $at, 1 +/* 106F04 7F0D23D4 14410005 */ bne $v0, $at, .L7F0D23EC +/* 106F08 7F0D23D8 3C028009 */ lui $v0, %hi(viewport_img_height) +/* 106F0C 7F0D23DC 2442E314 */ addiu $v0, %lo(viewport_img_height) # addiu $v0, $v0, -0x1cec +/* 106F10 7F0D23E0 240800F0 */ li $t0, 240 +/* 106F14 7F0D23E4 10000005 */ b .L7F0D23FC +/* 106F18 7F0D23E8 AC480000 */ sw $t0, ($v0) +.L7F0D23EC: +/* 106F1C 7F0D23EC 3C028009 */ lui $v0, %hi(viewport_img_height) +/* 106F20 7F0D23F0 2442E314 */ addiu $v0, %lo(viewport_img_height) # addiu $v0, $v0, -0x1cec +/* 106F24 7F0D23F4 24090078 */ li $t1, 120 +/* 106F28 7F0D23F8 AC490000 */ sw $t1, ($v0) +.L7F0D23FC: +/* 106F2C 7F0D23FC 3C0A8009 */ lui $t2, %hi(viewport_img_width) +/* 106F30 7F0D2400 8D4AE310 */ lw $t2, %lo(viewport_img_width)($t2) +/* 106F34 7F0D2404 8C4B0000 */ lw $t3, ($v0) +/* 106F38 7F0D2408 24050004 */ li $a1, 4 +/* 106F3C 7F0D240C 014B0019 */ multu $t2, $t3 +/* 106F40 7F0D2410 00002012 */ mflo $a0 +/* 106F44 7F0D2414 00046040 */ sll $t4, $a0, 1 +/* 106F48 7F0D2418 0C0025C8 */ jal mempAllocBytesInBank +/* 106F4C 7F0D241C 25840040 */ addiu $a0, $t4, 0x40 +/* 106F50 7F0D2420 8FBF0014 */ lw $ra, 0x14($sp) +/* 106F54 7F0D2424 3C038005 */ lui $v1, %hi(viewport_img) +/* 106F58 7F0D2428 2463EB00 */ addiu $v1, %lo(viewport_img) # addiu $v1, $v1, -0x1500 +/* 106F5C 7F0D242C 244E003F */ addiu $t6, $v0, 0x3f +/* 106F60 7F0D2430 2401FFC0 */ li $at, -64 +/* 106F64 7F0D2434 AC620000 */ sw $v0, ($v1) +/* 106F68 7F0D2438 01C17824 */ and $t7, $t6, $at +/* 106F6C 7F0D243C AC6F0000 */ sw $t7, ($v1) +/* 106F70 7F0D2440 03E00008 */ jr $ra +/* 106F74 7F0D2444 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + +void sub_GAME_7F0D2448(s32 vp_image, s32 vp_width, s32 vp_height) { + viewport_img = vp_image; + viewport_img_width = vp_width; + viewport_img_height = vp_height; +} + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D2464(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D2464 +/* 106F94 7F0D2464 3C0E8005 */ lui $t6, %hi(viewport_img) +/* 106F98 7F0D2468 8DCEEB00 */ lw $t6, %lo(viewport_img)($t6) +/* 106F9C 7F0D246C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 106FA0 7F0D2470 AFBF0014 */ sw $ra, 0x14($sp) +/* 106FA4 7F0D2474 15C00004 */ bnez $t6, .L7F0D2488 +/* 106FA8 7F0D2478 00803025 */ move $a2, $a0 +/* 106FAC 7F0D247C 0FC348E3 */ jal allocate_viewport_buffer +/* 106FB0 7F0D2480 AFA40018 */ sw $a0, 0x18($sp) +/* 106FB4 7F0D2484 8FA60018 */ lw $a2, 0x18($sp) +.L7F0D2488: +/* 106FB8 7F0D2488 0FC26C54 */ jal get_cur_playernum +/* 106FBC 7F0D248C AFA60018 */ sw $a2, 0x18($sp) +/* 106FC0 7F0D2490 28410002 */ slti $at, $v0, 2 +/* 106FC4 7F0D2494 1020000B */ beqz $at, .L7F0D24C4 +/* 106FC8 7F0D2498 8FA60018 */ lw $a2, 0x18($sp) +/* 106FCC 7F0D249C 0FC26919 */ jal get_num_players +/* 106FD0 7F0D24A0 AFA60018 */ sw $a2, 0x18($sp) +/* 106FD4 7F0D24A4 24010002 */ li $at, 2 +/* 106FD8 7F0D24A8 14410009 */ bne $v0, $at, .L7F0D24D0 +/* 106FDC 7F0D24AC 8FA60018 */ lw $a2, 0x18($sp) +/* 106FE0 7F0D24B0 0FC26C54 */ jal get_cur_playernum +/* 106FE4 7F0D24B4 AFA60018 */ sw $a2, 0x18($sp) +/* 106FE8 7F0D24B8 24010001 */ li $at, 1 +/* 106FEC 7F0D24BC 14410004 */ bne $v0, $at, .L7F0D24D0 +/* 106FF0 7F0D24C0 8FA60018 */ lw $a2, 0x18($sp) +.L7F0D24C4: +/* 106FF4 7F0D24C4 3C070001 */ lui $a3, (0x00012C00 >> 16) # lui $a3, 1 +/* 106FF8 7F0D24C8 10000002 */ b .L7F0D24D4 +/* 106FFC 7F0D24CC 34E72C00 */ ori $a3, (0x00012C00 & 0xFFFF) # ori $a3, $a3, 0x2c00 +.L7F0D24D0: +/* 107000 7F0D24D0 00003825 */ move $a3, $zero +.L7F0D24D4: +/* 107004 7F0D24D4 3C0F8005 */ lui $t7, %hi(viewport_img) +/* 107008 7F0D24D8 8DEFEB00 */ lw $t7, %lo(viewport_img)($t7) +/* 10700C 7F0D24DC 3C19E700 */ lui $t9, 0xe700 +/* 107010 7F0D24E0 2401FFC0 */ li $at, -64 +/* 107014 7F0D24E4 ACD90000 */ sw $t9, ($a2) +/* 107018 7F0D24E8 ACC00004 */ sw $zero, 4($a2) +/* 10701C 7F0D24EC 24C50008 */ addiu $a1, $a2, 8 +/* 107020 7F0D24F0 01E71823 */ subu $v1, $t7, $a3 +/* 107024 7F0D24F4 0061C024 */ and $t8, $v1, $at +/* 107028 7F0D24F8 3C08FE00 */ lui $t0, 0xfe00 +/* 10702C 7F0D24FC ACA80000 */ sw $t0, ($a1) +/* 107030 7F0D2500 ACB80004 */ sw $t8, 4($a1) +/* 107034 7F0D2504 8FBF0014 */ lw $ra, 0x14($sp) +/* 107038 7F0D2508 24A20008 */ addiu $v0, $a1, 8 +/* 10703C 7F0D250C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 107040 7F0D2510 03E00008 */ jr $ra +/* 107044 7F0D2514 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0D2518(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0D2518 +/* 107048 7F0D2518 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 10704C 7F0D251C AFB00018 */ sw $s0, 0x18($sp) +/* 107050 7F0D2520 AFBF001C */ sw $ra, 0x1c($sp) +/* 107054 7F0D2524 24900008 */ addiu $s0, $a0, 8 +/* 107058 7F0D2528 3C0EE700 */ lui $t6, 0xe700 +/* 10705C 7F0D252C AC8E0000 */ sw $t6, ($a0) +/* 107060 7F0D2530 AC800004 */ sw $zero, 4($a0) +/* 107064 7F0D2534 02001825 */ move $v1, $s0 +/* 107068 7F0D2538 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 +/* 10706C 7F0D253C 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d +/* 107070 7F0D2540 AC6F0000 */ sw $t7, ($v1) +/* 107074 7F0D2544 AC600004 */ sw $zero, 4($v1) +/* 107078 7F0D2548 3C188009 */ lui $t8, %hi(viewport_img_width) +/* 10707C 7F0D254C 8F18E310 */ lw $t8, %lo(viewport_img_width)($t8) +/* 107080 7F0D2550 26100008 */ addiu $s0, $s0, 8 +/* 107084 7F0D2554 3C01FF10 */ lui $at, 0xff10 +/* 107088 7F0D2558 2719FFFF */ addiu $t9, $t8, -1 +/* 10708C 7F0D255C 33280FFF */ andi $t0, $t9, 0xfff +/* 107090 7F0D2560 01014825 */ or $t1, $t0, $at +/* 107094 7F0D2564 02002825 */ move $a1, $s0 +/* 107098 7F0D2568 ACA90000 */ sw $t1, ($a1) +/* 10709C 7F0D256C 3C0A8005 */ lui $t2, %hi(viewport_img) +/* 1070A0 7F0D2570 8D4AEB00 */ lw $t2, %lo(viewport_img)($t2) +/* 1070A4 7F0D2574 26100008 */ addiu $s0, $s0, 8 +/* 1070A8 7F0D2578 3C018000 */ lui $at, 0x8000 +/* 1070AC 7F0D257C 02003025 */ move $a2, $s0 +/* 1070B0 7F0D2580 01415821 */ addu $t3, $t2, $at +/* 1070B4 7F0D2584 ACAB0004 */ sw $t3, 4($a1) +/* 1070B8 7F0D2588 26100008 */ addiu $s0, $s0, 8 +/* 1070BC 7F0D258C 3C0CBA00 */ lui $t4, (0xBA001402 >> 16) # lui $t4, 0xba00 +/* 1070C0 7F0D2590 358C1402 */ ori $t4, (0xBA001402 & 0xFFFF) # ori $t4, $t4, 0x1402 +/* 1070C4 7F0D2594 3C0D0030 */ lui $t5, 0x30 +/* 1070C8 7F0D2598 02003825 */ move $a3, $s0 +/* 1070CC 7F0D259C ACCD0004 */ sw $t5, 4($a2) +/* 1070D0 7F0D25A0 ACCC0000 */ sw $t4, ($a2) +/* 1070D4 7F0D25A4 3C0FFFFC */ lui $t7, (0xFFFCFFFC >> 16) # lui $t7, 0xfffc +/* 1070D8 7F0D25A8 35EFFFFC */ ori $t7, (0xFFFCFFFC & 0xFFFF) # ori $t7, $t7, 0xfffc +/* 1070DC 7F0D25AC 26100008 */ addiu $s0, $s0, 8 +/* 1070E0 7F0D25B0 3C0EF700 */ lui $t6, 0xf700 +/* 1070E4 7F0D25B4 ACEE0000 */ sw $t6, ($a3) +/* 1070E8 7F0D25B8 ACEF0004 */ sw $t7, 4($a3) +/* 1070EC 7F0D25BC 02001025 */ move $v0, $s0 +/* 1070F0 7F0D25C0 3C18ED00 */ lui $t8, 0xed00 +/* 1070F4 7F0D25C4 AC580000 */ sw $t8, ($v0) +/* 1070F8 7F0D25C8 AFA20030 */ sw $v0, 0x30($sp) +/* 1070FC 7F0D25CC 0C001107 */ jal get_video2_settings_txtClipW +/* 107100 7F0D25D0 26100008 */ addiu $s0, $s0, 8 +/* 107104 7F0D25D4 0C00110B */ jal get_video2_settings_txtClipH +/* 107108 7F0D25D8 A7A20026 */ sh $v0, 0x26($sp) +/* 10710C 7F0D25DC 44822000 */ mtc1 $v0, $f4 +/* 107110 7F0D25E0 87AA0026 */ lh $t2, 0x26($sp) +/* 107114 7F0D25E4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 107118 7F0D25E8 468021A0 */ cvt.s.w $f6, $f4 +/* 10711C 7F0D25EC 448A8000 */ mtc1 $t2, $f16 +/* 107120 7F0D25F0 44810000 */ mtc1 $at, $f0 +/* 107124 7F0D25F4 8FB80030 */ lw $t8, 0x30($sp) +/* 107128 7F0D25F8 468084A0 */ cvt.s.w $f18, $f16 +/* 10712C 7F0D25FC 46003202 */ mul.s $f8, $f6, $f0 +/* 107130 7F0D2600 00000000 */ nop +/* 107134 7F0D2604 46009102 */ mul.s $f4, $f18, $f0 +/* 107138 7F0D2608 4600428D */ trunc.w.s $f10, $f8 +/* 10713C 7F0D260C 4600218D */ trunc.w.s $f6, $f4 +/* 107140 7F0D2610 44085000 */ mfc1 $t0, $f10 +/* 107144 7F0D2614 440C3000 */ mfc1 $t4, $f6 +/* 107148 7F0D2618 31090FFF */ andi $t1, $t0, 0xfff +/* 10714C 7F0D261C 318D0FFF */ andi $t5, $t4, 0xfff +/* 107150 7F0D2620 000D7300 */ sll $t6, $t5, 0xc +/* 107154 7F0D2624 012E7825 */ or $t7, $t1, $t6 +/* 107158 7F0D2628 0FC26919 */ jal get_num_players +/* 10715C 7F0D262C AF0F0004 */ sw $t7, 4($t8) +/* 107160 7F0D2630 28410003 */ slti $at, $v0, 3 +/* 107164 7F0D2634 10200005 */ beqz $at, .L7F0D264C +/* 107168 7F0D2638 00000000 */ nop +/* 10716C 7F0D263C 0C001107 */ jal get_video2_settings_txtClipW +/* 107170 7F0D2640 AFA0004C */ sw $zero, 0x4c($sp) +/* 107174 7F0D2644 1000001B */ b .L7F0D26B4 +/* 107178 7F0D2648 2445FFFF */ addiu $a1, $v0, -1 +.L7F0D264C: +/* 10717C 7F0D264C 0FC26C54 */ jal get_cur_playernum +/* 107180 7F0D2650 00000000 */ nop +/* 107184 7F0D2654 10400006 */ beqz $v0, .L7F0D2670 +/* 107188 7F0D2658 00000000 */ nop +/* 10718C 7F0D265C 0FC26C54 */ jal get_cur_playernum +/* 107190 7F0D2660 00000000 */ nop +/* 107194 7F0D2664 24010002 */ li $at, 2 +/* 107198 7F0D2668 14410009 */ bne $v0, $at, .L7F0D2690 +/* 10719C 7F0D266C 00000000 */ nop +.L7F0D2670: +/* 1071A0 7F0D2670 0C001107 */ jal get_video2_settings_txtClipW +/* 1071A4 7F0D2674 AFA0004C */ sw $zero, 0x4c($sp) +/* 1071A8 7F0D2678 04410003 */ bgez $v0, .L7F0D2688 +/* 1071AC 7F0D267C 00022843 */ sra $a1, $v0, 1 +/* 1071B0 7F0D2680 24410001 */ addiu $at, $v0, 1 +/* 1071B4 7F0D2684 00012843 */ sra $a1, $at, 1 +.L7F0D2688: +/* 1071B8 7F0D2688 1000000A */ b .L7F0D26B4 +/* 1071BC 7F0D268C 24A5FFFF */ addiu $a1, $a1, -1 +.L7F0D2690: +/* 1071C0 7F0D2690 0C001107 */ jal get_video2_settings_txtClipW +/* 1071C4 7F0D2694 00000000 */ nop +/* 1071C8 7F0D2698 04410003 */ bgez $v0, .L7F0D26A8 +/* 1071CC 7F0D269C 0002C843 */ sra $t9, $v0, 1 +/* 1071D0 7F0D26A0 24410001 */ addiu $at, $v0, 1 +/* 1071D4 7F0D26A4 0001C843 */ sra $t9, $at, 1 +.L7F0D26A8: +/* 1071D8 7F0D26A8 0C001107 */ jal get_video2_settings_txtClipW +/* 1071DC 7F0D26AC AFB9004C */ sw $t9, 0x4c($sp) +/* 1071E0 7F0D26B0 2445FFFF */ addiu $a1, $v0, -1 +.L7F0D26B4: +/* 1071E4 7F0D26B4 3C0C8009 */ lui $t4, %hi(viewport_img_height) +/* 1071E8 7F0D26B8 8D8CE314 */ lw $t4, %lo(viewport_img_height)($t4) +/* 1071EC 7F0D26BC 30A803FF */ andi $t0, $a1, 0x3ff +/* 1071F0 7F0D26C0 00085380 */ sll $t2, $t0, 0xe +/* 1071F4 7F0D26C4 258DFFFF */ addiu $t5, $t4, -1 +/* 1071F8 7F0D26C8 31A903FF */ andi $t1, $t5, 0x3ff +/* 1071FC 7F0D26CC 3C01F600 */ lui $at, 0xf600 +/* 107200 7F0D26D0 01415825 */ or $t3, $t2, $at +/* 107204 7F0D26D4 00097080 */ sll $t6, $t1, 2 +/* 107208 7F0D26D8 016E7825 */ or $t7, $t3, $t6 +/* 10720C 7F0D26DC 02001825 */ move $v1, $s0 +/* 107210 7F0D26E0 AC6F0000 */ sw $t7, ($v1) +/* 107214 7F0D26E4 8FB8004C */ lw $t8, 0x4c($sp) +/* 107218 7F0D26E8 26100008 */ addiu $s0, $s0, 8 +/* 10721C 7F0D26EC 02002025 */ move $a0, $s0 +/* 107220 7F0D26F0 331903FF */ andi $t9, $t8, 0x3ff +/* 107224 7F0D26F4 00194380 */ sll $t0, $t9, 0xe +/* 107228 7F0D26F8 AC680004 */ sw $t0, 4($v1) +/* 10722C 7F0D26FC 3C0AE700 */ lui $t2, 0xe700 +/* 107230 7F0D2700 AC8A0000 */ sw $t2, ($a0) +/* 107234 7F0D2704 AC800004 */ sw $zero, 4($a0) +/* 107238 7F0D2708 8FBF001C */ lw $ra, 0x1c($sp) +/* 10723C 7F0D270C 26020008 */ addiu $v0, $s0, 8 +/* 107240 7F0D2710 8FB00018 */ lw $s0, 0x18($sp) +/* 107244 7F0D2714 03E00008 */ jr $ra +/* 107248 7F0D2718 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + diff --git a/src/game/watch.c b/src/game/watch.c new file mode 100644 index 0000000..ad64232 --- /dev/null +++ b/src/game/watch.c @@ -0,0 +1,11487 @@ +#include "ultra64.h" +#include "game/watch.h" +#include "game/unk_093880.h" +#include "game/unk_0A1DA0.h" +#include "game/mainmenu.h" +#include "game/lvl_text.h" +#include "music.h" + +// bss +char dword_CODE_bss_8007B0A0[0x40]; +char dword_CODE_bss_8007B0E0[0x40]; + + +// data +//D:800409A0 +s32 D_800409A0 = 4; +//D:800409A4 +s32 D_800409A4 = 0; +//D:800409A8 +s32 watch_soundrelated_maybe = 0; +//D:800409AC +s32 D_800409AC = 0; +//D:800409B0 +s32 D_800409B0 = 0; +//D:800409B4 +s32 D_800409B4 = 0; +//D:800409B8 +s32 D_800409B8 = 0; +//D:800409BC +f32 D_800409BC = 0.0f; +//D:800409C0 +s32 D_800409C0 = 0; +//D:800409C4 +s32 D_800409C4 = 0; +//D:800409C8 +f32 D_800409C8 = 0.0f; +//D:800409CC +f32 D_800409CC = 0.0f; +//D:800409D0 +s32 D_800409D0 = -1; +//D:800409D4 +f32 D_800409D4 = 0.0f; +//D:800409D8 +s32 D_800409D8 = 8; +//D:800409DC +u16 D_800409DC[] = { + 0xAC09, 0xAC03, 0xAC02, 0xAC00, + 0xAC01, 0xAC01, 0xAC06, 0xAC06, + 0xAC04, 0xAC05, 0xAC0A, 0xAC03, + 0xAC02, 0xAC00, 0xAC01, 0xAC01, + 0xAC05, 0xAC05, 0xAC04, 0xAC06, + 0xAC0B, 0xAC00, 0xAC02, 0xAC01, + 0xAC03, 0xAC03, 0xAC06, 0xAC06, + 0xAC04, 0xAC05, 0xAC0C, 0xAC00, + 0xAC02, 0xAC01, 0xAC03, 0xAC03, + 0xAC05, 0xAC05, 0xAC04, 0xAC06, + 0xAC0D, 0xAC07, 0xAC07, 0xAC07, + 0xAC07, 0xAC07, 0xAC07, 0xAC07, + 0xAC07, 0xAC07, 0xAC0E, 0xAC07, + 0xAC07, 0xAC07, 0xAC07, 0xAC07, + 0xAC07, 0xAC07, 0xAC07, 0xAC07, + 0xAC0F, 0xAC07, 0xAC07, 0xAC07, + 0xAC07, 0xAC07, 0xAC07, 0xAC07, + 0xAC07, 0xAC07, 0xAC10, 0xAC07, + 0xAC07, 0xAC07, 0xAC07, 0xAC07, + 0xAC07, 0xAC07, 0xAC07, 0xAC07 +}; + +//D:80040A7C +u16 D_80040A7C[] = {0xAC11, 0xAC1C, 0xAC1B, 0}; +//D:80040A84 +u32 cur_player_look_vertical_inverted = 0; +//D:80040A88 +u16 D_80040A88[] = {0xAC12, 0xAC1A, 0xAC19, 0}; +//D:80040A90 +u32 cur_player_autoaim_setting = 1; +//D:80040A94 +u16 D_80040A94[] = {0xAC14, 0xAC1E, 0xAC1D, 0}; +//D:80040A9C +u32 cur_player_aim_control = 0; +//D:80040AA0 +u16 D_80040AA0[] = {0xAC15, 0xAC1A, 0xAC19, 0}; +//D:80040AA8 +u32 cur_player_sight_onscreen = 1; +//D:80040AAC +u16 D_80040AAC[] = {0xAC13, 0xAC1A, 0xAC19, 0}; +//D:80040AB4 +u32 cur_player_lookahead_setting = 1; +//D:80040AB8 +u16 D_80040AB8[] = {0xAC16, 0xAC1A, 0xAC19, 0}; +//D:80040AC0 +u32 cur_player_ammo_onscreen_setting = 1; +//D:80040AC4 +u16 D_80040AC4[] = {0xAC17, 0xAC1F, 0xAC20, 0xAC21}; +//D:80040ACC +u32 cur_player_screen_setting = 0; +//D:80040AD0 +u16 D_80040AD0[] = {0xAC18, 0xAC22, 0xAC23, 0}; +//D:80040AD8 +u32 screen_ratio = 0; +//D:80040ADC +u32 controlstick_lr_enabled = 0; +//D:80040AE0 +u32 D_80040AE0 = 0; +//D:80040AE4 +u32 D_80040AE4 = 0; +//D:80040AE8 +f32 D_80040AE8 = 0.0f; +//D:80040AEC +f32 D_80040AEC = 0.0f; +//D:80040AF0 +f32 D_80040AF0 = 45.0f; +//D:80040AF4 +u32 D_80040AF4 = 0xFF00A0; +//D:80040AF8 +u32 D_80040AF8 = 0xA; +//D:80040AFC +u32 D_80040AFC = 0xFF; +//D:80040B00 +u32 D_80040B00 = 0xA; +//D:80040B04 +u32 D_80040B04 = 0xE0; +//D:80040B08 +u32 D_80040B08 = 0; +//D:80040B0C +u32 D_80040B0C = 0xFFA0; +//D:80040B10 +u32 D_80040B10 = 0xF800; +//D:80040B14 +f32 D_80040B14 = 0.0f; +//D:80040B18 +f32 D_80040B18 = 0.0f; +//D:80040B1C +f32 D_80040B1C = 2.5f; +//D:80040B20 +f32 D_80040B20 = 0.0f; +//D:80040B24 +f32 D_80040B24 = 0.0f; +//D:80040B28 +f32 D_80040B28 = 0.0f; +//D:80040B2C +u32 D_80040B2C = 0; +//D:80040B30 +f32 D_80040B30 = 0.0f; +//D:80040B34 +f32 D_80040B34 = 0.0f; +//D:80040B38 +f32 D_80040B38 = 0.0f; +//D:80040B3C +u32 D_80040B3C = 0; +//D:80040B40 +u32 D_80040B40 = 0; +//D:80040B44 +u32 D_80040B44 = 0x10000; +//D:80040B48 +u32 D_80040B48 = 0x32; +//D:80040B4C +u32 D_80040B4C = 0x32; +//D:80040B50 +u32 D_80040B50 = 0x32; +//D:80040B54 +u32 D_80040B54 = 0x32; +//D:80040B58 +u16 mTrack2Vol = 0x7FFF; +//D:80040B5C +u32 D_80040B5C = 0; +//D:80040B60 +u32 D_80040B60 = 0x43480000; +//D:80040B64 +u32 D_80040B64 = 0xC3480000; +//D:80040B68 +u32 D_80040B68 = 0; + +//D:80040B6C +u32 D_80040B6C = 0; +//D:80040B70 +u32 D_80040B70 = 0; +//D:80040B74 +u32 D_80040B74 = 0; +//D:80040B78 +u32 D_80040B78 = 0; +//D:80040B7C +u32 D_80040B7C = 0; +//D:80040B80 +u32 D_80040B80 = 0; +//D:80040B84 +u32 D_80040B84 = 0; +//D:80040B88 +u32 D_80040B88 = 0; +//D:80040B8C +u32 D_80040B8C = 0; +//D:80040B90 +u32 D_80040B90 = 0; +//D:80040B94 +u32 D_80040B94 = 0; +//D:80040B98 +u32 D_80040B98 = 0; +//D:80040B9C +u32 D_80040B9C = 0; +//D:80040BA0 +u32 D_80040BA0 = 0; +//D:80040BA4 +u32 D_80040BA4 = 0; +//D:80040BA8 +u32 D_80040BA8 = 0; +//D:80040BAC +u32 D_80040BAC = 0; +//D:80040BB0 +u32 D_80040BB0 = 0; + +//D:80040BB4 +u32 D_80040BB4[] = { + 0xC4610000, 0x43480000, 0xC2340000, 0x4432C000, 0x43480000, 0x43C48000, + 0xC45AC000, 0x43480000, 0xC3520000, 0x44610000, 0x43480000, 0xC3820000, + 0x44610000, 0x43480000, 0xC3200000, 0x44548000, 0x43480000, 0xC3520000, + 0x446D8000, 0x43480000, 0xC3520000, 0x44610000, 0x43480000, 0x43000000, + 0x44610000, 0x43480000, 0xC2340000, 0xC44D0000, 0x43480000, 0xC3C28000, + 0x444D0000, 0x43480000, 0xC3C28000, 0xC44F8000, 0x43480000, 0x429C0000, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0xC4160000, 0x43480000, 0x43FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0xC4160000, 0x43480000, 0x43700000, 0xC4160000, 0x43480000, + 0x42DC0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0 +}; + +//D:80040D10 +u32 D_80040D10[] = { + 0x44FA0000, 0xC4160000, 0x43480000 +}; + +//D:80040D1C +u32 D_80040D1C = 0x43A00000; + +//D:80040D20 +u32 D_80040D20[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44160000, 0x43480000, 0x43FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0, + 0x44FA0000, 0x44160000, 0x43480000, 0x43700000, 0x44160000, 0x43480000, + 0x42DC0000, 0x44FA0000, 0, + 0x44FA0000, 0x44FA0000, 0 +}; + +//D:80040DEC +u32 D_80040DEC[] = {0x44FA0000, 0x44160000, 0x43480000}; +//D:80040DF8 +u32 D_80040DF8 = 0x43A00000; + +//D:80040DFC +s32 D_80040DFC[] = {0x34, 0x2F, 0x2D, 0x2A, 0x28, 0x25, 0x25, 0x28, 0x2A, 0x2D, 0x2F, 0x34, 0x37, 0x40, 0xFFFFFFFF}; + +//D:80040E38 +s32 D_80040E38 = 0x4B; +//D:80040E3C +s32 D_80040E3C = 0xFFFFFFFF; + +//D:80040E40 +s32 D_80040E40[] = {0x10E, 0x113, 0x116, 0x119, 0x11A, 0x11B, 0x11B, 0x11A, 0x119, 0x116, 0x113, 0x10E, 0x108, 0xFE, 0xFFFFFFFF}; +//D:80040E7C +s32 D_80040E7C = 0; + + + +// rodata +//D:80057760 +const char aDD[] = "%d, %d\n"; +//D:80057768 +const char aDDDF[] = "%d, %d\n%d %f\n"; +//D:80057778 +const char aA[] = "(A)\n"; +//D:80057780 +const char aB[] = "(B)\n"; +//D:80057788 +const char aZ[] = "(Z)\n"; +//D:80057790 +const char aL[] = "(L)\n"; +//D:80057798 +const char aR[] = "(R)\n"; +//D:800577A0 +const char aC[] = "(C)\n"; +//D:800577A8 +const char D_800577A8[] = "(+)\n"; +//D:800577B0 +const char aS_0[] = "(S)\n"; +//D:800577B8 +const char a3d[] = "(3D)\n"; +//D:800577C0 +const char D_800577C0[] = "\n"; + +//D:800577C4 +const u32 D_800577C4[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0 +}; +//D:80057FC0 +const u32 D_80057FC0[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +//D:80058440 +const char D_80058440[] = " \n"; +//D:80058444 +const char D_80058444[] = " \n\n"; +//D:80058448 +const char aC_2[] = "%c: "; +//D:80058450 +const char D_80058450[] = " \n"; +//D:80058454 +const char D_80058454[] = " \n\n"; + + + + +void nullsub_7F0A4860(void) { + +} + + + + + + +#ifdef NONMATCHING +void init_watch_at_start_of_stage(void) +{ + watch_screen_index = 0; + D_80040998 = 0; + D_8004099C = 0; + D_800409A0 = 4; + D_800409A4 = 0; + watch_soundrelated_maybe = 0; + D_800409AC = 0; + D_800409B0 = 0; + D_800409B4 = 0; + D_800409B8 = 0; + D_800409BC = 0.0f; + D_800409C0 = 0; + D_800409C4 = 0; + D_800409C8 = 0.0f; + D_800409CC = 0.0f; + D_800409D0 = -1; + D_800409D4 = 0.0f; + if (!j_text_trigger) + {;} + else + { + pPlayer->neg_vspacing_for_control_type_entry = 0; + pPlayer->cur_player_control_type_1 = 0; + pPlayer->cur_player_control_type_0 = 0; + pPlayer->cur_player_control_type_2 = 0.0f; + pPlayer->has_set_control_type_data = 1; + } + + + D_800409D8 = 8; + controlstick_lr_enabled = 0; + D_80040AE0 = 0; + D_80040AE4 = 0; + D_80040AE8 = 0.0f; + D_80040AEC = 0.0f; + D_80040AF0 = 45.0f; + D_80040AF4 = 0xff00a0; + D_80040AF8 = 10; + D_80040AFC = 0xff; + D_80040B00 = 10; + D_80040B04 = 0xe0; + D_80040B08 = 0; + D_80040B0C = 0xffa0; + D_80040B10 = 0xf800; + D_80040B14 = 0.0f; + D_80040B18 = 0.0f; + D_80040B1C = 2.5f; + D_80040B20 = 0.0f; + D_80040B24 = 0.0f; + D_80040B28 = 0.0f; + D_80040B2C = 0; + D_80040B30 = 0.0f; + D_80040B34 = 0.0f; + D_80040B38 = 0.0f; + D_80040B3C = 0; + D_80040B40 = 0; + D_80040B44 = 1; + D_80040B48 = 0x32; + D_80040B4C = 0x32; + D_80040B50 = 0x32; + D_80040B54 = 0x32; + sub_GAME_7F01D500(1,0xa); + mission_failed_or_aborted = FALSE; +} +#else +GLOBAL_ASM( +.text +glabel init_watch_at_start_of_stage +/* 0D9398 7F0A4868 3C018004 */ lui $at, %hi(watch_screen_index) +/* 0D939C 7F0A486C AC200994 */ sw $zero, %lo(watch_screen_index)($at) +/* 0D93A0 7F0A4870 3C018004 */ lui $at, %hi(D_80040998) +/* 0D93A4 7F0A4874 AC200998 */ sw $zero, %lo(D_80040998)($at) +/* 0D93A8 7F0A4878 3C018004 */ lui $at, %hi(D_8004099C) +/* 0D93AC 7F0A487C AC20099C */ sw $zero, %lo(D_8004099C)($at) +/* 0D93B0 7F0A4880 3C018004 */ lui $at, %hi(D_800409A0) +/* 0D93B4 7F0A4884 240E0004 */ li $t6, 4 +/* 0D93B8 7F0A4888 AC2E09A0 */ sw $t6, %lo(D_800409A0)($at) +/* 0D93BC 7F0A488C 3C018004 */ lui $at, %hi(D_800409A4) +/* 0D93C0 7F0A4890 AC2009A4 */ sw $zero, %lo(D_800409A4)($at) +/* 0D93C4 7F0A4894 3C018004 */ lui $at, %hi(watch_soundrelated_maybe) +/* 0D93C8 7F0A4898 AC2009A8 */ sw $zero, %lo(watch_soundrelated_maybe)($at) +/* 0D93CC 7F0A489C 3C018004 */ lui $at, %hi(D_800409AC) +/* 0D93D0 7F0A48A0 AC2009AC */ sw $zero, %lo(D_800409AC)($at) +/* 0D93D4 7F0A48A4 3C018004 */ lui $at, %hi(D_800409B0) +/* 0D93D8 7F0A48A8 AC2009B0 */ sw $zero, %lo(D_800409B0)($at) +/* 0D93DC 7F0A48AC 3C018004 */ lui $at, %hi(D_800409B4) +/* 0D93E0 7F0A48B0 AC2009B4 */ sw $zero, %lo(D_800409B4)($at) +/* 0D93E4 7F0A48B4 44800000 */ mtc1 $zero, $f0 +/* 0D93E8 7F0A48B8 3C018004 */ lui $at, %hi(D_800409B8) +/* 0D93EC 7F0A48BC AC2009B8 */ sw $zero, %lo(D_800409B8)($at) +/* 0D93F0 7F0A48C0 3C018004 */ lui $at, %hi(D_800409BC) +/* 0D93F4 7F0A48C4 E42009BC */ swc1 $f0, %lo(D_800409BC)($at) +/* 0D93F8 7F0A48C8 3C018004 */ lui $at, %hi(D_800409C0) +/* 0D93FC 7F0A48CC AC2009C0 */ sw $zero, %lo(D_800409C0)($at) +/* 0D9400 7F0A48D0 3C018004 */ lui $at, %hi(D_800409C4) +/* 0D9404 7F0A48D4 AC2009C4 */ sw $zero, %lo(D_800409C4)($at) +/* 0D9408 7F0A48D8 3C018004 */ lui $at, %hi(D_800409C8) +/* 0D940C 7F0A48DC E42009C8 */ swc1 $f0, %lo(D_800409C8)($at) +/* 0D9410 7F0A48E0 3C018004 */ lui $at, %hi(D_800409CC) +/* 0D9414 7F0A48E4 3C188005 */ lui $t8, %hi(j_text_trigger) +/* 0D9418 7F0A48E8 E42009CC */ swc1 $f0, %lo(D_800409CC)($at) +/* 0D941C 7F0A48EC 8F1884D0 */ lw $t8, %lo(j_text_trigger)($t8) +/* 0D9420 7F0A48F0 3C018004 */ lui $at, %hi(D_800409D0) +/* 0D9424 7F0A48F4 240FFFFF */ li $t7, -1 +/* 0D9428 7F0A48F8 AC2F09D0 */ sw $t7, %lo(D_800409D0)($at) +/* 0D942C 7F0A48FC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0D9430 7F0A4900 3C018004 */ lui $at, %hi(D_800409D4) +/* 0D9434 7F0A4904 AFBF0014 */ sw $ra, 0x14($sp) +/* 0D9438 7F0A4908 13000003 */ beqz $t8, .L7F0A4918 +/* 0D943C 7F0A490C E42009D4 */ swc1 $f0, %lo(D_800409D4)($at) +/* 0D9440 7F0A4910 10000001 */ b .L7F0A4918 +/* 0D9444 7F0A4914 00000000 */ nop +.L7F0A4918: +/* 0D9448 7F0A4918 3C028008 */ lui $v0, %hi(pPlayer) +/* 0D944C 7F0A491C 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0D9450 7F0A4920 8C590000 */ lw $t9, ($v0) +/* 0D9454 7F0A4924 24050001 */ li $a1, 1 +/* 0D9458 7F0A4928 240C0008 */ li $t4, 8 +/* 0D945C 7F0A492C AF202A64 */ sw $zero, 0x2a64($t9) +/* 0D9460 7F0A4930 8C480000 */ lw $t0, ($v0) +/* 0D9464 7F0A4934 3C018004 */ lui $at, %hi(D_800409D8) +/* 0D9468 7F0A4938 3C0D00FF */ lui $t5, (0x00FF00A0 >> 16) # lui $t5, 0xff +/* 0D946C 7F0A493C AD002A5C */ sw $zero, 0x2a5c($t0) +/* 0D9470 7F0A4940 8C490000 */ lw $t1, ($v0) +/* 0D9474 7F0A4944 35AD00A0 */ ori $t5, (0x00FF00A0 & 0xFFFF) # ori $t5, $t5, 0xa0 +/* 0D9478 7F0A4948 2406000A */ li $a2, 10 +/* 0D947C 7F0A494C AD202A58 */ sw $zero, 0x2a58($t1) +/* 0D9480 7F0A4950 8C4A0000 */ lw $t2, ($v0) +/* 0D9484 7F0A4954 240E00FF */ li $t6, 255 +/* 0D9488 7F0A4958 240F00E0 */ li $t7, 224 +/* 0D948C 7F0A495C E5402A60 */ swc1 $f0, 0x2a60($t2) +/* 0D9490 7F0A4960 8C4B0000 */ lw $t3, ($v0) +/* 0D9494 7F0A4964 3418FFA0 */ li $t8, 65440 +/* 0D9498 7F0A4968 3419F800 */ li $t9, 63488 +/* 0D949C 7F0A496C AD652A68 */ sw $a1, 0x2a68($t3) +/* 0D94A0 7F0A4970 AC2C09D8 */ sw $t4, %lo(D_800409D8)($at) +/* 0D94A4 7F0A4974 3C018004 */ lui $at, %hi(controlstick_lr_enabled) +/* 0D94A8 7F0A4978 AC200ADC */ sw $zero, %lo(controlstick_lr_enabled)($at) +/* 0D94AC 7F0A497C 3C018004 */ lui $at, %hi(D_80040AE0) +/* 0D94B0 7F0A4980 AC200AE0 */ sw $zero, %lo(D_80040AE0)($at) +/* 0D94B4 7F0A4984 3C018004 */ lui $at, %hi(D_80040AE4) +/* 0D94B8 7F0A4988 AC200AE4 */ sw $zero, %lo(D_80040AE4)($at) +/* 0D94BC 7F0A498C 3C018004 */ lui $at, %hi(D_80040AE8) +/* 0D94C0 7F0A4990 E4200AE8 */ swc1 $f0, %lo(D_80040AE8)($at) +/* 0D94C4 7F0A4994 3C018004 */ lui $at, %hi(D_80040AEC) +/* 0D94C8 7F0A4998 E4200AEC */ swc1 $f0, %lo(D_80040AEC)($at) +/* 0D94CC 7F0A499C 3C014234 */ li $at, 0x42340000 # 45.000000 +/* 0D94D0 7F0A49A0 44812000 */ mtc1 $at, $f4 +/* 0D94D4 7F0A49A4 3C018004 */ lui $at, %hi(D_80040AF0) +/* 0D94D8 7F0A49A8 24030032 */ li $v1, 50 +/* 0D94DC 7F0A49AC E4240AF0 */ swc1 $f4, %lo(D_80040AF0)($at) +/* 0D94E0 7F0A49B0 3C018004 */ lui $at, %hi(D_80040AF4) +/* 0D94E4 7F0A49B4 AC2D0AF4 */ sw $t5, %lo(D_80040AF4)($at) +/* 0D94E8 7F0A49B8 3C018004 */ lui $at, %hi(D_80040AF8) +/* 0D94EC 7F0A49BC AC260AF8 */ sw $a2, %lo(D_80040AF8)($at) +/* 0D94F0 7F0A49C0 3C018004 */ lui $at, %hi(D_80040AFC) +/* 0D94F4 7F0A49C4 AC2E0AFC */ sw $t6, %lo(D_80040AFC)($at) +/* 0D94F8 7F0A49C8 3C018004 */ lui $at, %hi(D_80040B00) +/* 0D94FC 7F0A49CC AC260B00 */ sw $a2, %lo(D_80040B00)($at) +/* 0D9500 7F0A49D0 3C018004 */ lui $at, %hi(D_80040B04) +/* 0D9504 7F0A49D4 AC2F0B04 */ sw $t7, %lo(D_80040B04)($at) +/* 0D9508 7F0A49D8 3C018004 */ lui $at, %hi(D_80040B08) +/* 0D950C 7F0A49DC AC200B08 */ sw $zero, %lo(D_80040B08)($at) +/* 0D9510 7F0A49E0 3C018004 */ lui $at, %hi(D_80040B0C) +/* 0D9514 7F0A49E4 AC380B0C */ sw $t8, %lo(D_80040B0C)($at) +/* 0D9518 7F0A49E8 3C018004 */ lui $at, %hi(D_80040B10) +/* 0D951C 7F0A49EC AC390B10 */ sw $t9, %lo(D_80040B10)($at) +/* 0D9520 7F0A49F0 3C018004 */ lui $at, %hi(D_80040B14) +/* 0D9524 7F0A49F4 E4200B14 */ swc1 $f0, %lo(D_80040B14)($at) +/* 0D9528 7F0A49F8 3C018004 */ lui $at, %hi(D_80040B18) +/* 0D952C 7F0A49FC E4200B18 */ swc1 $f0, %lo(D_80040B18)($at) +/* 0D9530 7F0A4A00 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 0D9534 7F0A4A04 44813000 */ mtc1 $at, $f6 +/* 0D9538 7F0A4A08 3C018004 */ lui $at, %hi(D_80040B1C) +/* 0D953C 7F0A4A0C E4260B1C */ swc1 $f6, %lo(D_80040B1C)($at) +/* 0D9540 7F0A4A10 3C018004 */ lui $at, %hi(D_80040B20) +/* 0D9544 7F0A4A14 E4200B20 */ swc1 $f0, %lo(D_80040B20)($at) +/* 0D9548 7F0A4A18 3C018004 */ lui $at, %hi(D_80040B24) +/* 0D954C 7F0A4A1C E4200B24 */ swc1 $f0, %lo(D_80040B24)($at) +/* 0D9550 7F0A4A20 3C018004 */ lui $at, %hi(D_80040B28) +/* 0D9554 7F0A4A24 E4200B28 */ swc1 $f0, %lo(D_80040B28)($at) +/* 0D9558 7F0A4A28 3C018004 */ lui $at, %hi(D_80040B2C) +/* 0D955C 7F0A4A2C AC200B2C */ sw $zero, %lo(D_80040B2C)($at) +/* 0D9560 7F0A4A30 3C018004 */ lui $at, %hi(D_80040B30) +/* 0D9564 7F0A4A34 E4200B30 */ swc1 $f0, %lo(D_80040B30)($at) +/* 0D9568 7F0A4A38 3C018004 */ lui $at, %hi(D_80040B34) +/* 0D956C 7F0A4A3C E4200B34 */ swc1 $f0, %lo(D_80040B34)($at) +/* 0D9570 7F0A4A40 3C018004 */ lui $at, %hi(D_80040B38) +/* 0D9574 7F0A4A44 E4200B38 */ swc1 $f0, %lo(D_80040B38)($at) +/* 0D9578 7F0A4A48 3C018004 */ lui $at, %hi(D_80040B3C) +/* 0D957C 7F0A4A4C AC200B3C */ sw $zero, %lo(D_80040B3C)($at) +/* 0D9580 7F0A4A50 3C018004 */ lui $at, %hi(D_80040B40) +/* 0D9584 7F0A4A54 AC200B40 */ sw $zero, %lo(D_80040B40)($at) +/* 0D9588 7F0A4A58 3C018004 */ lui $at, %hi(D_80040B44) +/* 0D958C 7F0A4A5C A4250B44 */ sh $a1, %lo(D_80040B44)($at) +/* 0D9590 7F0A4A60 3C018004 */ lui $at, %hi(D_80040B48) +/* 0D9594 7F0A4A64 AC230B48 */ sw $v1, %lo(D_80040B48)($at) +/* 0D9598 7F0A4A68 3C018004 */ lui $at, %hi(D_80040B4C) +/* 0D959C 7F0A4A6C AC230B4C */ sw $v1, %lo(D_80040B4C)($at) +/* 0D95A0 7F0A4A70 3C018004 */ lui $at, %hi(D_80040B50) +/* 0D95A4 7F0A4A74 AC230B50 */ sw $v1, %lo(D_80040B50)($at) +/* 0D95A8 7F0A4A78 3C018004 */ lui $at, %hi(D_80040B54) +/* 0D95AC 7F0A4A7C 0FC07540 */ jal sub_GAME_7F01D500 +/* 0D95B0 7F0A4A80 AC230B54 */ sw $v1, %lo(D_80040B54)($at) +/* 0D95B4 7F0A4A84 8FBF0014 */ lw $ra, 0x14($sp) +/* 0D95B8 7F0A4A88 3C018003 */ lui $at, %hi(mission_failed_or_aborted) +/* 0D95BC 7F0A4A8C AC20A924 */ sw $zero, %lo(mission_failed_or_aborted)($at) +/* 0D95C0 7F0A4A90 03E00008 */ jr $ra +/* 0D95C4 7F0A4A94 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + + + + +void controller_deadzone_related(void) +{ + if (10 < get_cur_controller_horz_stick_pos('\0')) + { + D_80040B50 = D_80040B50 + 1; + } + if (get_cur_controller_horz_stick_pos('\0') < -10) + { + D_80040B50 = D_80040B50 + -1; + } + if (10 < get_cur_controller_vert_stick_pos('\0')) + { + D_80040B54 = D_80040B54 + -1; + } + if (get_cur_controller_vert_stick_pos('\0') < -10) + { + D_80040B54 = D_80040B54 + 1; + } +} + + + + + +#ifdef NONMATCHING + +void proc_7F0A4B40(undefined4 *param_1) +{ + s32 sVar1; + undefined4 *puVar2; + int iStack52; + int iStack48; + int iStack44; + int *piStack40; + byte abStack36 [36]; + + sVar1 = get_cur_controller_horz_stick_pos('\0'); + if (10 < sVar1) { + D_80040B48 = D_80040B48 + 1; + } + sVar1 = get_cur_controller_horz_stick_pos('\0'); + if (sVar1 < -10) { + D_80040B48 = D_80040B48 - 1; + } + sVar1 = get_cur_controller_vert_stick_pos('\0'); + if (10 < sVar1) { + D_80040B4C = D_80040B4C - 1; + } + sVar1 = get_cur_controller_vert_stick_pos('\0'); + if (sVar1 < -10) { + D_80040B4C = D_80040B4C + 1; + } + *param_1 = 0xb900031d; + param_1[1] = 0x504240; + param_1[2] = 0xfcffffff; + param_1[3] = 0xfffdf6fb; + param_1[4] = 0xfa000000; + param_1[5] = 0xff0000ff; + param_1[6] = (D_80040B48 + 1 & 0x3ff) << 0xe | 0xf6000000 | (D_80040B4C + 1 & 0x3ff) << 2; + param_1[7] = (D_80040B48 & 0x3ff) << 0xe | (D_80040B4C & 0x3ff) << 2; + piStack40 = ptrFirstFontTableSmall; + iStack44 = ptrSecondFontTableSmall; + sprintf((char *)abStack36,"%d, %d\n",D_80040B48,D_80040B4C); + puVar2 = microcode_constructor(param_1 + 8); + proc_7F0AE98C(&iStack52,&iStack48,abStack36,iStack44,piStack40,0); + en_text_write_stuff(puVar2,&D_80040B48,&D_80040B4C,abStack36,iStack44,(int)piStack40,0xff0000ff, + iStack48,iStack52,0,0); + D_80040B4C = (D_80040B4C - *(int *)(iStack44 + 0x890)) + 1; + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A4B40 +/* 0D9670 7F0A4B40 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0D9674 7F0A4B44 AFB00038 */ sw $s0, 0x38($sp) +/* 0D9678 7F0A4B48 00808025 */ move $s0, $a0 +/* 0D967C 7F0A4B4C AFBF0044 */ sw $ra, 0x44($sp) +/* 0D9680 7F0A4B50 AFB20040 */ sw $s2, 0x40($sp) +/* 0D9684 7F0A4B54 AFB1003C */ sw $s1, 0x3c($sp) +/* 0D9688 7F0A4B58 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0D968C 7F0A4B5C 00002025 */ move $a0, $zero +/* 0D9690 7F0A4B60 2841000B */ slti $at, $v0, 0xb +/* 0D9694 7F0A4B64 14200006 */ bnez $at, .L7F0A4B80 +/* 0D9698 7F0A4B68 00002025 */ move $a0, $zero +/* 0D969C 7F0A4B6C 3C128004 */ lui $s2, %hi(D_80040B48) +/* 0D96A0 7F0A4B70 26520B48 */ addiu $s2, %lo(D_80040B48) # addiu $s2, $s2, 0xb48 +/* 0D96A4 7F0A4B74 8E4E0000 */ lw $t6, ($s2) +/* 0D96A8 7F0A4B78 25CF0001 */ addiu $t7, $t6, 1 +/* 0D96AC 7F0A4B7C AE4F0000 */ sw $t7, ($s2) +.L7F0A4B80: +/* 0D96B0 7F0A4B80 3C128004 */ lui $s2, %hi(D_80040B48) +/* 0D96B4 7F0A4B84 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0D96B8 7F0A4B88 26520B48 */ addiu $s2, %lo(D_80040B48) # addiu $s2, $s2, 0xb48 +/* 0D96BC 7F0A4B8C 2841FFF6 */ slti $at, $v0, -0xa +/* 0D96C0 7F0A4B90 10200004 */ beqz $at, .L7F0A4BA4 +/* 0D96C4 7F0A4B94 00000000 */ nop +/* 0D96C8 7F0A4B98 8E580000 */ lw $t8, ($s2) +/* 0D96CC 7F0A4B9C 2719FFFF */ addiu $t9, $t8, -1 +/* 0D96D0 7F0A4BA0 AE590000 */ sw $t9, ($s2) +.L7F0A4BA4: +/* 0D96D4 7F0A4BA4 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0D96D8 7F0A4BA8 00002025 */ move $a0, $zero +/* 0D96DC 7F0A4BAC 2841000B */ slti $at, $v0, 0xb +/* 0D96E0 7F0A4BB0 14200006 */ bnez $at, .L7F0A4BCC +/* 0D96E4 7F0A4BB4 00002025 */ move $a0, $zero +/* 0D96E8 7F0A4BB8 3C118004 */ lui $s1, %hi(D_80040B4C) +/* 0D96EC 7F0A4BBC 26310B4C */ addiu $s1, %lo(D_80040B4C) # addiu $s1, $s1, 0xb4c +/* 0D96F0 7F0A4BC0 8E2A0000 */ lw $t2, ($s1) +/* 0D96F4 7F0A4BC4 254BFFFF */ addiu $t3, $t2, -1 +/* 0D96F8 7F0A4BC8 AE2B0000 */ sw $t3, ($s1) +.L7F0A4BCC: +/* 0D96FC 7F0A4BCC 3C118004 */ lui $s1, %hi(D_80040B4C) +/* 0D9700 7F0A4BD0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0D9704 7F0A4BD4 26310B4C */ addiu $s1, %lo(D_80040B4C) # addiu $s1, $s1, 0xb4c +/* 0D9708 7F0A4BD8 2841FFF6 */ slti $at, $v0, -0xa +/* 0D970C 7F0A4BDC 10200004 */ beqz $at, .L7F0A4BF0 +/* 0D9710 7F0A4BE0 02001025 */ move $v0, $s0 +/* 0D9714 7F0A4BE4 8E2C0000 */ lw $t4, ($s1) +/* 0D9718 7F0A4BE8 258D0001 */ addiu $t5, $t4, 1 +/* 0D971C 7F0A4BEC AE2D0000 */ sw $t5, ($s1) +.L7F0A4BF0: +/* 0D9720 7F0A4BF0 26100008 */ addiu $s0, $s0, 8 +/* 0D9724 7F0A4BF4 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0D9728 7F0A4BF8 3C0F0050 */ lui $t7, (0x00504240 >> 16) # lui $t7, 0x50 +/* 0D972C 7F0A4BFC 35EF4240 */ ori $t7, (0x00504240 & 0xFFFF) # ori $t7, $t7, 0x4240 +/* 0D9730 7F0A4C00 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0D9734 7F0A4C04 02001825 */ move $v1, $s0 +/* 0D9738 7F0A4C08 AC4E0000 */ sw $t6, ($v0) +/* 0D973C 7F0A4C0C AC4F0004 */ sw $t7, 4($v0) +/* 0D9740 7F0A4C10 3C18FCFF */ lui $t8, (0xFCFFFFFF >> 16) # lui $t8, 0xfcff +/* 0D9744 7F0A4C14 3C19FFFD */ lui $t9, (0xFFFDF6FB >> 16) # lui $t9, 0xfffd +/* 0D9748 7F0A4C18 3739F6FB */ ori $t9, (0xFFFDF6FB & 0xFFFF) # ori $t9, $t9, 0xf6fb +/* 0D974C 7F0A4C1C 3718FFFF */ ori $t8, (0xFCFFFFFF & 0xFFFF) # ori $t8, $t8, 0xffff +/* 0D9750 7F0A4C20 26100008 */ addiu $s0, $s0, 8 +/* 0D9754 7F0A4C24 AC780000 */ sw $t8, ($v1) +/* 0D9758 7F0A4C28 AC790004 */ sw $t9, 4($v1) +/* 0D975C 7F0A4C2C 02004025 */ move $t0, $s0 +/* 0D9760 7F0A4C30 3C0BFF00 */ lui $t3, (0xFF0000FF >> 16) # lui $t3, 0xff00 +/* 0D9764 7F0A4C34 356B00FF */ ori $t3, (0xFF0000FF & 0xFFFF) # ori $t3, $t3, 0xff +/* 0D9768 7F0A4C38 3C0AFA00 */ lui $t2, 0xfa00 +/* 0D976C 7F0A4C3C AD0A0000 */ sw $t2, ($t0) +/* 0D9770 7F0A4C40 AD0B0004 */ sw $t3, 4($t0) +/* 0D9774 7F0A4C44 8E4C0000 */ lw $t4, ($s2) +/* 0D9778 7F0A4C48 8E390000 */ lw $t9, ($s1) +/* 0D977C 7F0A4C4C 3C01F600 */ lui $at, 0xf600 +/* 0D9780 7F0A4C50 258D0001 */ addiu $t5, $t4, 1 +/* 0D9784 7F0A4C54 31AE03FF */ andi $t6, $t5, 0x3ff +/* 0D9788 7F0A4C58 272A0001 */ addiu $t2, $t9, 1 +/* 0D978C 7F0A4C5C 314B03FF */ andi $t3, $t2, 0x3ff +/* 0D9790 7F0A4C60 000E7B80 */ sll $t7, $t6, 0xe +/* 0D9794 7F0A4C64 26100008 */ addiu $s0, $s0, 8 +/* 0D9798 7F0A4C68 01E1C025 */ or $t8, $t7, $at +/* 0D979C 7F0A4C6C 000B6080 */ sll $t4, $t3, 2 +/* 0D97A0 7F0A4C70 030C6825 */ or $t5, $t8, $t4 +/* 0D97A4 7F0A4C74 02004825 */ move $t1, $s0 +/* 0D97A8 7F0A4C78 AD2D0000 */ sw $t5, ($t1) +/* 0D97AC 7F0A4C7C 8E2A0000 */ lw $t2, ($s1) +/* 0D97B0 7F0A4C80 8E4E0000 */ lw $t6, ($s2) +/* 0D97B4 7F0A4C84 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) +/* 0D97B8 7F0A4C88 314B03FF */ andi $t3, $t2, 0x3ff +/* 0D97BC 7F0A4C8C 31CF03FF */ andi $t7, $t6, 0x3ff +/* 0D97C0 7F0A4C90 000FCB80 */ sll $t9, $t7, 0xe +/* 0D97C4 7F0A4C94 000BC080 */ sll $t8, $t3, 2 +/* 0D97C8 7F0A4C98 03386025 */ or $t4, $t9, $t8 +/* 0D97CC 7F0A4C9C AD2C0004 */ sw $t4, 4($t1) +/* 0D97D0 7F0A4CA0 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) +/* 0D97D4 7F0A4CA4 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0D97D8 7F0A4CA8 8DCE0EB0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0D97DC 7F0A4CAC 3C058005 */ lui $a1, %hi(aDD) +/* 0D97E0 7F0A4CB0 26100008 */ addiu $s0, $s0, 8 +/* 0D97E4 7F0A4CB4 24A57760 */ addiu $a1, %lo(aDD) # addiu $a1, $a1, 0x7760 +/* 0D97E8 7F0A4CB8 8E270000 */ lw $a3, ($s1) +/* 0D97EC 7F0A4CBC 8E460000 */ lw $a2, ($s2) +/* 0D97F0 7F0A4CC0 27A4005C */ addiu $a0, $sp, 0x5c +/* 0D97F4 7F0A4CC4 AFAD0058 */ sw $t5, 0x58($sp) +/* 0D97F8 7F0A4CC8 0C002B25 */ jal sprintf +/* 0D97FC 7F0A4CCC AFAE0054 */ sw $t6, 0x54($sp) +/* 0D9800 7F0A4CD0 0FC2B366 */ jal microcode_constructor +/* 0D9804 7F0A4CD4 02002025 */ move $a0, $s0 +/* 0D9808 7F0A4CD8 8FAF0058 */ lw $t7, 0x58($sp) +/* 0D980C 7F0A4CDC 00408025 */ move $s0, $v0 +/* 0D9810 7F0A4CE0 27A4004C */ addiu $a0, $sp, 0x4c +/* 0D9814 7F0A4CE4 27A50050 */ addiu $a1, $sp, 0x50 +/* 0D9818 7F0A4CE8 27A6005C */ addiu $a2, $sp, 0x5c +/* 0D981C 7F0A4CEC 8FA70054 */ lw $a3, 0x54($sp) +/* 0D9820 7F0A4CF0 AFA00014 */ sw $zero, 0x14($sp) +/* 0D9824 7F0A4CF4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0D9828 7F0A4CF8 AFAF0010 */ sw $t7, 0x10($sp) +/* 0D982C 7F0A4CFC 8FAA0054 */ lw $t2, 0x54($sp) +/* 0D9830 7F0A4D00 8FAB0058 */ lw $t3, 0x58($sp) +/* 0D9834 7F0A4D04 8FB80050 */ lw $t8, 0x50($sp) +/* 0D9838 7F0A4D08 8FAC004C */ lw $t4, 0x4c($sp) +/* 0D983C 7F0A4D0C 3C19FF00 */ lui $t9, (0xFF0000FF >> 16) # lui $t9, 0xff00 +/* 0D9840 7F0A4D10 373900FF */ ori $t9, (0xFF0000FF & 0xFFFF) # ori $t9, $t9, 0xff +/* 0D9844 7F0A4D14 AFB90018 */ sw $t9, 0x18($sp) +/* 0D9848 7F0A4D18 02002025 */ move $a0, $s0 +/* 0D984C 7F0A4D1C 02402825 */ move $a1, $s2 +/* 0D9850 7F0A4D20 02203025 */ move $a2, $s1 +/* 0D9854 7F0A4D24 27A7005C */ addiu $a3, $sp, 0x5c +/* 0D9858 7F0A4D28 AFA00024 */ sw $zero, 0x24($sp) +/* 0D985C 7F0A4D2C AFA00028 */ sw $zero, 0x28($sp) +/* 0D9860 7F0A4D30 AFAA0010 */ sw $t2, 0x10($sp) +/* 0D9864 7F0A4D34 AFAB0014 */ sw $t3, 0x14($sp) +/* 0D9868 7F0A4D38 AFB8001C */ sw $t8, 0x1c($sp) +/* 0D986C 7F0A4D3C 0FC2B6AF */ jal en_text_write_stuff +/* 0D9870 7F0A4D40 AFAC0020 */ sw $t4, 0x20($sp) +/* 0D9874 7F0A4D44 8FAE0054 */ lw $t6, 0x54($sp) +/* 0D9878 7F0A4D48 8E2D0000 */ lw $t5, ($s1) +/* 0D987C 7F0A4D4C 8FBF0044 */ lw $ra, 0x44($sp) +/* 0D9880 7F0A4D50 8DCF0890 */ lw $t7, 0x890($t6) +/* 0D9884 7F0A4D54 8FB00038 */ lw $s0, 0x38($sp) +/* 0D9888 7F0A4D58 8FB20040 */ lw $s2, 0x40($sp) +/* 0D988C 7F0A4D5C 01AF5023 */ subu $t2, $t5, $t7 +/* 0D9890 7F0A4D60 254B0001 */ addiu $t3, $t2, 1 +/* 0D9894 7F0A4D64 AE2B0000 */ sw $t3, ($s1) +/* 0D9898 7F0A4D68 8FB1003C */ lw $s1, 0x3c($sp) +/* 0D989C 7F0A4D6C 03E00008 */ jr $ra +/* 0D98A0 7F0A4D70 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + + +u32 controllerCheckDualControllerTypesAllowed(void) +{ + if (get_attached_controller_count() >= 2) + { + if (cur_player_get_control_type() >= 4) + { + return 1; + } + } + return 0; +} + +int cur_player_get_control_type(void){ + return pPlayer->cur_player_control_type_0; +} + + +void cur_player_set_control_type(int type) +{ + int langsize; + + pPlayer->cur_player_control_type_0 = type; + pPlayer->cur_player_control_type_1 = type; + pPlayer->cur_player_control_type_2 = (float)type; + + langsize = j_text_trigger ? 14 : 10; + + pPlayer->neg_vspacing_for_control_type_entry = -(langsize * type); + pPlayer->has_set_control_type_data = 1; + +} + +u32 get_cur_player_look_vertical_inverted(void) {return cur_player_look_vertical_inverted;} +void set_cur_player_look_vertical_inverted(u32 param_1) {cur_player_look_vertical_inverted = param_1;} + +u32 cur_player_get_autoaim(void) {return cur_player_autoaim_setting;} +void cur_player_set_autoaim(u32 uParm1) {cur_player_autoaim_setting = uParm1;} + +u32 cur_player_get_lookahead(void) {return cur_player_lookahead_setting;} +void cur_player_set_lookahead(u32 uParm1) {cur_player_lookahead_setting = uParm1;} + +u32 cur_player_get_aim_control(void) {return cur_player_aim_control;} +void cur_player_set_aim_control(u32 uParm1) {cur_player_aim_control = uParm1;} + +u32 cur_player_get_sight_onscreen_control(void) {return cur_player_sight_onscreen;} +void cur_player_set_sight_onscreen_control(u32 uParm1) {cur_player_sight_onscreen = uParm1;} + +u32 cur_player_get_ammo_onscreen_setting(void) {return cur_player_ammo_onscreen_setting;} +void cur_player_set_ammo_onscreen_setting(u32 uParm1) {cur_player_ammo_onscreen_setting = uParm1;} + +u32 cur_player_get_screen_setting(void) {return cur_player_screen_setting;} +void cur_player_set_screen_setting(u32 uParm1) {cur_player_screen_setting = uParm1;} + +u32 get_screen_ratio(void) {return screen_ratio;} +void set_screen_ratio(u32 uParm1) {screen_ratio = uParm1;} + + +void sub_GAME_7F0A4EF8(void) { + + if (watch_soundrelated_maybe == 1) { + watch_soundrelated_maybe = 0; + + } else { + watch_soundrelated_maybe = 1; + play_sfx_a1(ptr_sfx_buf, 0x9F, 0); + } +} + +void sub_GAME_7F0A4F44(void){ + watch_soundrelated_maybe = 0; +} + +u32 is_holding_greater_than_2E_left_on_stick(void) +{ + return (get_cur_controller_horz_stick_pos('\0') < -0x2d); +} + +u32 is_holding_greater_than_2E_right_on_stick(void) +{ + return ((get_cur_controller_horz_stick_pos('\0') < 0x2e) ^ 1); +} + +u32 get_controlstick_lr_enabled(void) { + return controlstick_lr_enabled; +} + +void set_controlstick_lr_disabled(void) { + controlstick_lr_enabled = 0; +} + +s32 sub_GAME_7F0A4FB0(void) +{ + return is_holding_greater_than_2E_left_on_stick() && get_controlstick_lr_enabled(); +} + +s32 sub_GAME_7F0A4FEC(void) +{ + return is_holding_greater_than_2E_right_on_stick() && get_controlstick_lr_enabled(); +} + +u32 is_holding_greater_than_2E_up_on_stick(void) +{ + return (get_cur_controller_vert_stick_pos('\0') < 0x2e) ^ 1; +} + +u32 is_holding_greater_than_2E_down_on_stick(void) +{ + return (get_cur_controller_vert_stick_pos('\0') < -0x2d); +} + +u32 get_D_80040AE0(void) +{ + return D_80040AE0; +} + +void set_D_80040AE0_0(void) +{ + D_80040AE0 = 0; +} + +s32 sub_GAME_7F0A5088(void) +{ + return is_holding_greater_than_2E_up_on_stick() && get_D_80040AE0(); +} + +s32 sub_GAME_7F0A50C4(void) +{ + return is_holding_greater_than_2E_down_on_stick() && get_D_80040AE0(); +} + +u32 is_holding_less_than_10_up_on_stick(void) +{ + return (get_cur_controller_vert_stick_pos('\0') < 0x10) ^ 1; +} + +u32 is_holding_less_than_10_down_on_stick(void) +{ + return (get_cur_controller_vert_stick_pos('\0') < -0xf); +} + +u32 get_D_80040AE4(void) { + return D_80040AE4; +} + +void set_D_80040AE4_0(void) { + D_80040AE4 = 0; +} + + +s32 sub_GAME_7F0A5160(void) +{ + return is_holding_less_than_10_up_on_stick() && get_D_80040AE4() == 0; +} + +s32 sub_GAME_7F0A519C(void) +{ + return is_holding_less_than_10_down_on_stick() && get_D_80040AE4() == 0; +} + +void sub_GAME_7F0A51D8(void) +{ + D_80040B04 = 0x80; + play_sfx_a1(ptr_sfx_buf,0xec,NULL); + return; +} + +void sub_GAME_7F0A5210(void) +{ + set_controlstick_lr_disabled(); + play_sfx_a1(ptr_sfx_buf,0x9f,NULL); + if ((D_80040B10 << 0x10) < get_random_value()) { + sub_GAME_7F0A51D8(); + } + return; +} + +void watch_screen0_navigation(void) +{ + s32 goto_watch_screen_index_4; + s32 goto_watch_screen_index_1; + + if (watch_soundrelated_maybe == 0) + { + goto_watch_screen_index_4 = 0; + goto_watch_screen_index_1 = 0; + + if (get_debug_gunwatchpos_flag() == 0) + { + if (get_controller_buttons_pressed(0, L_TRIG|L_CBUTTONS)) + { + goto_watch_screen_index_4 = 1; + } + if (get_controller_buttons_pressed(0, R_TRIG|R_CBUTTONS)) + { + goto_watch_screen_index_1 = 1; + } + } + + if ((get_controller_buttons_pressed(0, L_JPAD)) || (sub_GAME_7F0A4FB0())) + { + goto_watch_screen_index_4 = 1; + } + + if ((get_controller_buttons_pressed(0, R_JPAD)) || (sub_GAME_7F0A4FEC())) + { + goto_watch_screen_index_1 = 1; + } + + if (goto_watch_screen_index_4) + { + watch_screen_index = 4; + sub_GAME_7F0A5210(); + trigger_watch_zoom(4.6f, 15.0f); + } + + if (goto_watch_screen_index_1) + { + watch_screen_index = 1; + sub_GAME_7F0A5210(); + trigger_watch_zoom(4.6f, 15.0f); + return; + } + } + else if ((D_800409A4) && (get_controller_buttons_pressed(0, Z_TRIG|A_BUTTON))) + { + D_800409A4 = 0; + set_missionstate(0); + run_title_stage(); + mission_failed_or_aborted = 1; + deleteCurrentSelectedFolder(); + } +} + + +void watch_screen1_navigation(void) +{ + s32 goto_watch_screen_index_0; + s32 goto_watch_screen_index_2; + + if (watch_soundrelated_maybe == 0) + { + goto_watch_screen_index_0 = FALSE; + goto_watch_screen_index_2 = FALSE; + + if (get_debug_gunwatchpos_flag() == FALSE) + { + if (get_controller_buttons_pressed(0, L_TRIG|L_CBUTTONS)) + { + goto_watch_screen_index_0 = TRUE; + } + if (get_controller_buttons_pressed(0, R_TRIG|R_CBUTTONS)) + { + goto_watch_screen_index_2 = TRUE; + } + } + + if ((get_controller_buttons_pressed(0, L_JPAD)) || (sub_GAME_7F0A4FB0())) + { + goto_watch_screen_index_0 = TRUE; + } + + if ((get_controller_buttons_pressed(0, R_JPAD)) || (sub_GAME_7F0A4FEC())) + { + goto_watch_screen_index_2 = TRUE; + } + + if (goto_watch_screen_index_0) + { + watch_screen_index = 0; + zero_D_800409A4(); + sub_GAME_7F0A5210(); + trigger_watch_zoom(5.9f, 15.0f); + } + + if (goto_watch_screen_index_2) + { + watch_screen_index = 2; + set_controlstick_lr_disabled(); + sub_GAME_7F0A5210(); + trigger_watch_zoom(3.95f, 15.0f); + } + } +} + + +void unused_watch_screen_navigation(void) { + + if ((get_controller_buttons_pressed(0, L_CBUTTONS|L_TRIG|L_JPAD)) || (sub_GAME_7F0A4FB0())) + { + if (watch_soundrelated_maybe == 0) + { + watch_screen_index = 1; + set_controlstick_lr_disabled(); + return; + } + } + if ((get_controller_buttons_pressed(0, R_CBUTTONS|R_TRIG|R_JPAD)) || (sub_GAME_7F0A4FEC())) + { + if (watch_soundrelated_maybe == 0) + { + watch_screen_index = 2; + zero_D_80040998(); + sub_GAME_7F0A5210(); + trigger_watch_zoom(3.95f, 15.0f); + } + } +} + + +void watch_screen2_navigation(void) { + + if ((get_controller_buttons_pressed(0, L_CBUTTONS|L_TRIG|L_JPAD)) || (sub_GAME_7F0A4FB0())) + { + if ((get_controller_buttons_held(0, Z_TRIG) == 0) && (watch_soundrelated_maybe == 0)) + { + watch_screen_index = 1; + sub_GAME_7F0A5210(); + trigger_watch_zoom(4.6f, 15.0f); + return; + } + } + if ((get_controller_buttons_pressed(0, R_CBUTTONS|R_TRIG|R_JPAD)) || (sub_GAME_7F0A4FEC())) + { + if ((get_controller_buttons_held(0, Z_TRIG) == 0) && (watch_soundrelated_maybe == 0)) + { + watch_screen_index = 3; + zero_D_8004099C(); + set_controlstick_lr_disabled(); + } + } +} + + +void watch_screen3_navigation(void) { + + if ((get_controller_buttons_pressed(0, L_CBUTTONS|L_TRIG|L_JPAD)) || (sub_GAME_7F0A4FB0())) + { + if ((get_controller_buttons_held(0, Z_TRIG) == 0) && (watch_soundrelated_maybe == 0)) + { + watch_screen_index = 2; + zero_D_80040998(); + set_controlstick_lr_disabled(); + return; + } + } + if ((get_controller_buttons_pressed(0, R_CBUTTONS|R_TRIG|R_JPAD)) || (sub_GAME_7F0A4FEC())) + { + if ((get_controller_buttons_held(0, Z_TRIG) == 0) && (watch_soundrelated_maybe == 0)) + { + watch_screen_index = 4; + sub_GAME_7F0A5210(); + trigger_watch_zoom(4.6f, 15.0f); + } + } +} + + +void watch_screen4_navigation(void) { + + if ((get_controller_buttons_pressed(0, L_CBUTTONS|L_TRIG|L_JPAD)) || (sub_GAME_7F0A4FB0())) + { + if (watch_soundrelated_maybe == 0) + { + watch_screen_index = 3; + zero_D_8004099C(); + sub_GAME_7F0A5210(); + trigger_watch_zoom(3.95f, 15.0f); + return; + } + } + if ((get_controller_buttons_pressed(0, R_CBUTTONS|R_TRIG|R_JPAD)) || (sub_GAME_7F0A4FEC())) + { + if (watch_soundrelated_maybe == 0) + { + watch_screen_index = 0; + zero_D_800409A4(); + sub_GAME_7F0A5210(); + trigger_watch_zoom(5.9f, 15.0f); + } + } +} + + +void sub_GAME_7F0A5860(void) +{ + if ((get_controller_buttons_pressed(0, U_CBUTTONS|U_JPAD)) || (sub_GAME_7F0A5088())) + { + if (watch_soundrelated_maybe == 0) + { + D_80040998 = 1; + set_D_80040AE0_0(); + return; + } + } + if ((get_controller_buttons_pressed(0, D_CBUTTONS|D_JPAD)) || (sub_GAME_7F0A50C4())) + { + if (watch_soundrelated_maybe == 0) + { + D_80040998 = 1; + set_D_80040AE0_0(); + } + } +} + +void sub_GAME_7F0A5900(void) +{ + if ((get_controller_buttons_pressed(0, U_CBUTTONS|U_JPAD)) || (sub_GAME_7F0A5088())) + { + if (watch_soundrelated_maybe == 0) + { + D_80040998 = 0; + set_D_80040AE0_0(); + return; + } + } + if ((get_controller_buttons_pressed(0, D_CBUTTONS|D_JPAD)) || (sub_GAME_7F0A50C4())) + { + if (watch_soundrelated_maybe == 0) + { + D_80040998 = 0; + set_D_80040AE0_0(); + } + } +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A5998(void) +{ + if ((get_controller_buttons_pressed('\0',U_CBUTTONS|U_JPAD) != 0) || (sub_GAME_7F0A5088() != 0)) + { + D_8004099C = (s32) (D_8004099C - 1); + set_D_80040AE0_0(); + sub_GAME_7F0A4F44(); + } + else + { + if ((get_controller_buttons_pressed('\0',D_CBUTTONS|D_JPAD) != 0) || (sub_GAME_7F0A50C4() != 0)) + { + D_8004099C = (s32) (D_8004099C + 1); + set_D_80040AE0_0(); + sub_GAME_7F0A4F44(); + } + else + { + + } + } + if (D_8004099C >= 0xa) + { + D_8004099C = 0; + return; + } + if (D_8004099C < 0) + { + D_8004099C = 9; + } +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A5998 +/* 0DA4C8 7F0A5998 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DA4CC 7F0A599C AFBF0014 */ sw $ra, 0x14($sp) +/* 0DA4D0 7F0A59A0 00002025 */ move $a0, $zero +/* 0DA4D4 7F0A59A4 0C0030EB */ jal get_controller_buttons_pressed +/* 0DA4D8 7F0A59A8 24050808 */ li $a1, 2056 +/* 0DA4DC 7F0A59AC 14400005 */ bnez $v0, .L7F0A59C4 +/* 0DA4E0 7F0A59B0 00000000 */ nop +/* 0DA4E4 7F0A59B4 0FC29422 */ jal sub_GAME_7F0A5088 +/* 0DA4E8 7F0A59B8 00000000 */ nop +/* 0DA4EC 7F0A59BC 1040000B */ beqz $v0, .L7F0A59EC +/* 0DA4F0 7F0A59C0 00002025 */ move $a0, $zero +.L7F0A59C4: +/* 0DA4F4 7F0A59C4 3C028004 */ lui $v0, %hi(D_8004099C) +/* 0DA4F8 7F0A59C8 2442099C */ addiu $v0, %lo(D_8004099C) # addiu $v0, $v0, 0x99c +/* 0DA4FC 7F0A59CC 8C4E0000 */ lw $t6, ($v0) +/* 0DA500 7F0A59D0 25CFFFFF */ addiu $t7, $t6, -1 +/* 0DA504 7F0A59D4 0FC2941F */ jal set_D_80040AE0_0 +/* 0DA508 7F0A59D8 AC4F0000 */ sw $t7, ($v0) +/* 0DA50C 7F0A59DC 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DA510 7F0A59E0 00000000 */ nop +/* 0DA514 7F0A59E4 10000010 */ b .L7F0A5A28 +/* 0DA518 7F0A59E8 00000000 */ nop +.L7F0A59EC: +/* 0DA51C 7F0A59EC 0C0030EB */ jal get_controller_buttons_pressed +/* 0DA520 7F0A59F0 24050404 */ li $a1, 1028 +/* 0DA524 7F0A59F4 14400004 */ bnez $v0, .L7F0A5A08 +/* 0DA528 7F0A59F8 00000000 */ nop +/* 0DA52C 7F0A59FC 0FC29431 */ jal sub_GAME_7F0A50C4 +/* 0DA530 7F0A5A00 00000000 */ nop +/* 0DA534 7F0A5A04 10400008 */ beqz $v0, .L7F0A5A28 +.L7F0A5A08: +/* 0DA538 7F0A5A08 3C188004 */ lui $t8, %hi(D_8004099C) +/* 0DA53C 7F0A5A0C 8F18099C */ lw $t8, %lo(D_8004099C)($t8) +/* 0DA540 7F0A5A10 3C018004 */ lui $at, %hi(D_8004099C) +/* 0DA544 7F0A5A14 27190001 */ addiu $t9, $t8, 1 +/* 0DA548 7F0A5A18 0FC2941F */ jal set_D_80040AE0_0 +/* 0DA54C 7F0A5A1C AC39099C */ sw $t9, %lo(D_8004099C)($at) +/* 0DA550 7F0A5A20 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DA554 7F0A5A24 00000000 */ nop +.L7F0A5A28: +/* 0DA558 7F0A5A28 3C038004 */ lui $v1, %hi(D_8004099C) +/* 0DA55C 7F0A5A2C 2463099C */ addiu $v1, %lo(D_8004099C) # addiu $v1, $v1, 0x99c +/* 0DA560 7F0A5A30 8C620000 */ lw $v0, ($v1) +/* 0DA564 7F0A5A34 2841000A */ slti $at, $v0, 0xa +/* 0DA568 7F0A5A38 14200003 */ bnez $at, .L7F0A5A48 +/* 0DA56C 7F0A5A3C 00000000 */ nop +/* 0DA570 7F0A5A40 10000004 */ b .L7F0A5A54 +/* 0DA574 7F0A5A44 AC600000 */ sw $zero, ($v1) +.L7F0A5A48: +/* 0DA578 7F0A5A48 04410002 */ bgez $v0, .L7F0A5A54 +/* 0DA57C 7F0A5A4C 24080009 */ li $t0, 9 +/* 0DA580 7F0A5A50 AC680000 */ sw $t0, ($v1) +.L7F0A5A54: +/* 0DA584 7F0A5A54 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DA588 7F0A5A58 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DA58C 7F0A5A5C 03E00008 */ jr $ra +/* 0DA590 7F0A5A60 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A5A64(void) +{ + if ((get_controller_buttons_pressed('\0',U_CBUTTONS|U_JPAD) == 0) && (sub_GAME_7F0A5088() == 0)) { + if ((get_controller_buttons_pressed('\0',D_CBUTTONS|D_JPAD) != 0) || (sub_GAME_7F0A50C4() != 0)) { + D_8004099C = 1; + set_D_80040AE0_0(); + sub_GAME_7F0A4F44(); + } + } + else { + D_8004099C = 9; + set_D_80040AE0_0(); + sub_GAME_7F0A4F44(); + } + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A5A64 +/* 0DA594 7F0A5A64 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DA598 7F0A5A68 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DA59C 7F0A5A6C 00002025 */ move $a0, $zero +/* 0DA5A0 7F0A5A70 0C0030EB */ jal get_controller_buttons_pressed +/* 0DA5A4 7F0A5A74 24050808 */ li $a1, 2056 +/* 0DA5A8 7F0A5A78 54400006 */ bnezl $v0, .L7F0A5A94 +/* 0DA5AC 7F0A5A7C 240E0009 */ li $t6, 9 +/* 0DA5B0 7F0A5A80 0FC29422 */ jal sub_GAME_7F0A5088 +/* 0DA5B4 7F0A5A84 00000000 */ nop +/* 0DA5B8 7F0A5A88 10400009 */ beqz $v0, .L7F0A5AB0 +/* 0DA5BC 7F0A5A8C 00002025 */ move $a0, $zero +/* 0DA5C0 7F0A5A90 240E0009 */ li $t6, 9 +.L7F0A5A94: +/* 0DA5C4 7F0A5A94 3C018004 */ lui $at, %hi(D_8004099C) +/* 0DA5C8 7F0A5A98 0FC2941F */ jal set_D_80040AE0_0 +/* 0DA5CC 7F0A5A9C AC2E099C */ sw $t6, %lo(D_8004099C)($at) +/* 0DA5D0 7F0A5AA0 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DA5D4 7F0A5AA4 00000000 */ nop +/* 0DA5D8 7F0A5AA8 1000000F */ b .L7F0A5AE8 +/* 0DA5DC 7F0A5AAC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A5AB0: +/* 0DA5E0 7F0A5AB0 0C0030EB */ jal get_controller_buttons_pressed +/* 0DA5E4 7F0A5AB4 24050404 */ li $a1, 1028 +/* 0DA5E8 7F0A5AB8 54400005 */ bnezl $v0, .L7F0A5AD0 +/* 0DA5EC 7F0A5ABC 240F0001 */ li $t7, 1 +/* 0DA5F0 7F0A5AC0 0FC29431 */ jal sub_GAME_7F0A50C4 +/* 0DA5F4 7F0A5AC4 00000000 */ nop +/* 0DA5F8 7F0A5AC8 10400006 */ beqz $v0, .L7F0A5AE4 +/* 0DA5FC 7F0A5ACC 240F0001 */ li $t7, 1 +.L7F0A5AD0: +/* 0DA600 7F0A5AD0 3C018004 */ lui $at, %hi(D_8004099C) +/* 0DA604 7F0A5AD4 0FC2941F */ jal set_D_80040AE0_0 +/* 0DA608 7F0A5AD8 AC2F099C */ sw $t7, %lo(D_8004099C)($at) +/* 0DA60C 7F0A5ADC 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DA610 7F0A5AE0 00000000 */ nop +.L7F0A5AE4: +/* 0DA614 7F0A5AE4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A5AE8: +/* 0DA618 7F0A5AE8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DA61C 7F0A5AEC 03E00008 */ jr $ra +/* 0DA620 7F0A5AF0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A5AF4(void) +{ + if ((get_controller_buttons_pressed('\0',U_CBUTTONS|U_JPAD) == 0) && (sub_GAME_7F0A5088() == 0)) { + if ((get_controller_buttons_pressed('\0',D_CBUTTONS|D_JPAD) != 0) || (sub_GAME_7F0A50C4() != 0)) { + D_8004099c = 2; + set_D_80040AE0_0(); + sub_GAME_7F0A4F44(); + } + } + else { + D_8004099c = 0; + set_D_80040AE0_0(); + sub_GAME_7F0A4F44(); + } + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A5AF4 +/* 0DA624 7F0A5AF4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DA628 7F0A5AF8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DA62C 7F0A5AFC 00002025 */ move $a0, $zero +/* 0DA630 7F0A5B00 0C0030EB */ jal get_controller_buttons_pressed +/* 0DA634 7F0A5B04 24050808 */ li $a1, 2056 +/* 0DA638 7F0A5B08 14400005 */ bnez $v0, .L7F0A5B20 +/* 0DA63C 7F0A5B0C 00000000 */ nop +/* 0DA640 7F0A5B10 0FC29422 */ jal sub_GAME_7F0A5088 +/* 0DA644 7F0A5B14 00000000 */ nop +/* 0DA648 7F0A5B18 10400008 */ beqz $v0, .L7F0A5B3C +/* 0DA64C 7F0A5B1C 00002025 */ move $a0, $zero +.L7F0A5B20: +/* 0DA650 7F0A5B20 3C018004 */ lui $at, %hi(D_8004099C) +/* 0DA654 7F0A5B24 0FC2941F */ jal set_D_80040AE0_0 +/* 0DA658 7F0A5B28 AC20099C */ sw $zero, %lo(D_8004099C)($at) +/* 0DA65C 7F0A5B2C 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DA660 7F0A5B30 00000000 */ nop +/* 0DA664 7F0A5B34 1000000F */ b .L7F0A5B74 +/* 0DA668 7F0A5B38 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A5B3C: +/* 0DA66C 7F0A5B3C 0C0030EB */ jal get_controller_buttons_pressed +/* 0DA670 7F0A5B40 24050404 */ li $a1, 1028 +/* 0DA674 7F0A5B44 54400005 */ bnezl $v0, .L7F0A5B5C +/* 0DA678 7F0A5B48 240E0002 */ li $t6, 2 +/* 0DA67C 7F0A5B4C 0FC29431 */ jal sub_GAME_7F0A50C4 +/* 0DA680 7F0A5B50 00000000 */ nop +/* 0DA684 7F0A5B54 10400006 */ beqz $v0, .L7F0A5B70 +/* 0DA688 7F0A5B58 240E0002 */ li $t6, 2 +.L7F0A5B5C: +/* 0DA68C 7F0A5B5C 3C018004 */ lui $at, %hi(D_8004099C) +/* 0DA690 7F0A5B60 0FC2941F */ jal set_D_80040AE0_0 +/* 0DA694 7F0A5B64 AC2E099C */ sw $t6, %lo(D_8004099C)($at) +/* 0DA698 7F0A5B68 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DA69C 7F0A5B6C 00000000 */ nop +.L7F0A5B70: +/* 0DA6A0 7F0A5B70 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A5B74: +/* 0DA6A4 7F0A5B74 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DA6A8 7F0A5B78 03E00008 */ jr $ra +/* 0DA6AC 7F0A5B7C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A5B80(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005847C +.word 0x3dcccccd /*0.1*/ +glabel D_80058480 +.word 0x3dcccccd /*0.1*/ +glabel D_80058484 +.word 0x3f0ccccd /*0.55000001*/ +glabel D_80058488 +.word 0x3dcccccd /*0.1*/ +glabel D_8005848C +.word 0x3ee66666 /*0.44999999*/ +glabel D_80058490 +.word 0x3dcccccd /*0.1*/ +.text +glabel sub_GAME_7F0A5B80 +/* 0DA6B0 7F0A5B80 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0DA6B4 7F0A5B84 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DA6B8 7F0A5B88 0FC2340E */ jal count_total_items_in_inventory +/* 0DA6BC 7F0A5B8C 00000000 */ nop +/* 0DA6C0 7F0A5B90 0FC24415 */ jal get_debug_gunwatchpos_flag +/* 0DA6C4 7F0A5B94 AFA2001C */ sw $v0, 0x1c($sp) +/* 0DA6C8 7F0A5B98 14400067 */ bnez $v0, .L7F0A5D38 +/* 0DA6CC 7F0A5B9C 00002025 */ move $a0, $zero +/* 0DA6D0 7F0A5BA0 0C0030EB */ jal get_controller_buttons_pressed +/* 0DA6D4 7F0A5BA4 24050808 */ li $a1, 2056 +/* 0DA6D8 7F0A5BA8 14400005 */ bnez $v0, .L7F0A5BC0 +/* 0DA6DC 7F0A5BAC 00000000 */ nop +/* 0DA6E0 7F0A5BB0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA6E4 7F0A5BB4 00002025 */ move $a0, $zero +/* 0DA6E8 7F0A5BB8 28410047 */ slti $at, $v0, 0x47 +/* 0DA6EC 7F0A5BBC 14200012 */ bnez $at, .L7F0A5C08 +.L7F0A5BC0: +/* 0DA6F0 7F0A5BC0 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DA6F4 7F0A5BC4 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DA6F8 7F0A5BC8 C4C00000 */ lwc1 $f0, ($a2) +/* 0DA6FC 7F0A5BCC 3C188004 */ lui $t8, %hi(watch_soundrelated_maybe) +/* 0DA700 7F0A5BD0 4600010D */ trunc.w.s $f4, $f0 +/* 0DA704 7F0A5BD4 440F2000 */ mfc1 $t7, $f4 +/* 0DA708 7F0A5BD8 00000000 */ nop +/* 0DA70C 7F0A5BDC 59E0002B */ blezl $t7, .L7F0A5C8C +/* 0DA710 7F0A5BE0 00002025 */ move $a0, $zero +/* 0DA714 7F0A5BE4 8F1809A8 */ lw $t8, %lo(watch_soundrelated_maybe)($t8) +/* 0DA718 7F0A5BE8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DA71C 7F0A5BEC 57000027 */ bnezl $t8, .L7F0A5C8C +/* 0DA720 7F0A5BF0 00002025 */ move $a0, $zero +/* 0DA724 7F0A5BF4 44813000 */ mtc1 $at, $f6 +/* 0DA728 7F0A5BF8 00000000 */ nop +/* 0DA72C 7F0A5BFC 46060201 */ sub.s $f8, $f0, $f6 +/* 0DA730 7F0A5C00 10000021 */ b .L7F0A5C88 +/* 0DA734 7F0A5C04 E4C80000 */ swc1 $f8, ($a2) +.L7F0A5C08: +/* 0DA738 7F0A5C08 00002025 */ move $a0, $zero +/* 0DA73C 7F0A5C0C 0C0030EB */ jal get_controller_buttons_pressed +/* 0DA740 7F0A5C10 24050404 */ li $a1, 1028 +/* 0DA744 7F0A5C14 14400008 */ bnez $v0, .L7F0A5C38 +/* 0DA748 7F0A5C18 00000000 */ nop +/* 0DA74C 7F0A5C1C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA750 7F0A5C20 00002025 */ move $a0, $zero +/* 0DA754 7F0A5C24 2841FFBA */ slti $at, $v0, -0x46 +/* 0DA758 7F0A5C28 14200003 */ bnez $at, .L7F0A5C38 +/* 0DA75C 7F0A5C2C 00000000 */ nop +/* 0DA760 7F0A5C30 10000016 */ b .L7F0A5C8C +/* 0DA764 7F0A5C34 00002025 */ move $a0, $zero +.L7F0A5C38: +/* 0DA768 7F0A5C38 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DA76C 7F0A5C3C 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DA770 7F0A5C40 C4C00000 */ lwc1 $f0, ($a2) +/* 0DA774 7F0A5C44 8FAB001C */ lw $t3, 0x1c($sp) +/* 0DA778 7F0A5C48 3C0D8004 */ lui $t5, %hi(watch_soundrelated_maybe) +/* 0DA77C 7F0A5C4C 4600028D */ trunc.w.s $f10, $f0 +/* 0DA780 7F0A5C50 256CFFFF */ addiu $t4, $t3, -1 +/* 0DA784 7F0A5C54 440A5000 */ mfc1 $t2, $f10 +/* 0DA788 7F0A5C58 00000000 */ nop +/* 0DA78C 7F0A5C5C 014C082A */ slt $at, $t2, $t4 +/* 0DA790 7F0A5C60 5020000A */ beql $at, $zero, .L7F0A5C8C +/* 0DA794 7F0A5C64 00002025 */ move $a0, $zero +/* 0DA798 7F0A5C68 8DAD09A8 */ lw $t5, %lo(watch_soundrelated_maybe)($t5) +/* 0DA79C 7F0A5C6C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DA7A0 7F0A5C70 55A00006 */ bnezl $t5, .L7F0A5C8C +/* 0DA7A4 7F0A5C74 00002025 */ move $a0, $zero +/* 0DA7A8 7F0A5C78 44818000 */ mtc1 $at, $f16 +/* 0DA7AC 7F0A5C7C 00000000 */ nop +/* 0DA7B0 7F0A5C80 46100480 */ add.s $f18, $f0, $f16 +/* 0DA7B4 7F0A5C84 E4D20000 */ swc1 $f18, ($a2) +.L7F0A5C88: +/* 0DA7B8 7F0A5C88 00002025 */ move $a0, $zero +.L7F0A5C8C: +/* 0DA7BC 7F0A5C8C 0C0030C3 */ jal get_controller_buttons_held +/* 0DA7C0 7F0A5C90 24050808 */ li $a1, 2056 +/* 0DA7C4 7F0A5C94 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DA7C8 7F0A5C98 10400010 */ beqz $v0, .L7F0A5CDC +/* 0DA7CC 7F0A5C9C 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DA7D0 7F0A5CA0 C4C00000 */ lwc1 $f0, ($a2) +/* 0DA7D4 7F0A5CA4 3C188004 */ lui $t8, %hi(watch_soundrelated_maybe) +/* 0DA7D8 7F0A5CA8 4600010D */ trunc.w.s $f4, $f0 +/* 0DA7DC 7F0A5CAC 440F2000 */ mfc1 $t7, $f4 +/* 0DA7E0 7F0A5CB0 00000000 */ nop +/* 0DA7E4 7F0A5CB4 19E00020 */ blez $t7, .L7F0A5D38 +/* 0DA7E8 7F0A5CB8 00000000 */ nop +/* 0DA7EC 7F0A5CBC 8F1809A8 */ lw $t8, %lo(watch_soundrelated_maybe)($t8) +/* 0DA7F0 7F0A5CC0 3C018006 */ lui $at, %hi(D_8005847C) +/* 0DA7F4 7F0A5CC4 1700001C */ bnez $t8, .L7F0A5D38 +/* 0DA7F8 7F0A5CC8 00000000 */ nop +/* 0DA7FC 7F0A5CCC C426847C */ lwc1 $f6, %lo(D_8005847C)($at) +/* 0DA800 7F0A5CD0 46060201 */ sub.s $f8, $f0, $f6 +/* 0DA804 7F0A5CD4 10000018 */ b .L7F0A5D38 +/* 0DA808 7F0A5CD8 E4C80000 */ swc1 $f8, ($a2) +.L7F0A5CDC: +/* 0DA80C 7F0A5CDC 00002025 */ move $a0, $zero +/* 0DA810 7F0A5CE0 0C0030C3 */ jal get_controller_buttons_held +/* 0DA814 7F0A5CE4 24050404 */ li $a1, 1028 +/* 0DA818 7F0A5CE8 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DA81C 7F0A5CEC 10400012 */ beqz $v0, .L7F0A5D38 +/* 0DA820 7F0A5CF0 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DA824 7F0A5CF4 C4C00000 */ lwc1 $f0, ($a2) +/* 0DA828 7F0A5CF8 8FAA001C */ lw $t2, 0x1c($sp) +/* 0DA82C 7F0A5CFC 3C0D8004 */ lui $t5, %hi(watch_soundrelated_maybe) +/* 0DA830 7F0A5D00 4600028D */ trunc.w.s $f10, $f0 +/* 0DA834 7F0A5D04 254CFFFF */ addiu $t4, $t2, -1 +/* 0DA838 7F0A5D08 440B5000 */ mfc1 $t3, $f10 +/* 0DA83C 7F0A5D0C 00000000 */ nop +/* 0DA840 7F0A5D10 016C082A */ slt $at, $t3, $t4 +/* 0DA844 7F0A5D14 10200008 */ beqz $at, .L7F0A5D38 +/* 0DA848 7F0A5D18 00000000 */ nop +/* 0DA84C 7F0A5D1C 8DAD09A8 */ lw $t5, %lo(watch_soundrelated_maybe)($t5) +/* 0DA850 7F0A5D20 3C018006 */ lui $at, %hi(D_80058480) +/* 0DA854 7F0A5D24 15A00004 */ bnez $t5, .L7F0A5D38 +/* 0DA858 7F0A5D28 00000000 */ nop +/* 0DA85C 7F0A5D2C C4308480 */ lwc1 $f16, %lo(D_80058480)($at) +/* 0DA860 7F0A5D30 46100480 */ add.s $f18, $f0, $f16 +/* 0DA864 7F0A5D34 E4D20000 */ swc1 $f18, ($a2) +.L7F0A5D38: +/* 0DA868 7F0A5D38 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA86C 7F0A5D3C 00002025 */ move $a0, $zero +/* 0DA870 7F0A5D40 2841001F */ slti $at, $v0, 0x1f +/* 0DA874 7F0A5D44 1420001A */ bnez $at, .L7F0A5DB0 +/* 0DA878 7F0A5D48 00000000 */ nop +/* 0DA87C 7F0A5D4C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA880 7F0A5D50 00002025 */ move $a0, $zero +/* 0DA884 7F0A5D54 28410046 */ slti $at, $v0, 0x46 +/* 0DA888 7F0A5D58 10200015 */ beqz $at, .L7F0A5DB0 +/* 0DA88C 7F0A5D5C 3C0E8004 */ lui $t6, %hi(D_800409B8) +/* 0DA890 7F0A5D60 8DCE09B8 */ lw $t6, %lo(D_800409B8)($t6) +/* 0DA894 7F0A5D64 3C0F8004 */ lui $t7, %hi(watch_soundrelated_maybe) +/* 0DA898 7F0A5D68 19C00011 */ blez $t6, .L7F0A5DB0 +/* 0DA89C 7F0A5D6C 00000000 */ nop +/* 0DA8A0 7F0A5D70 8DEF09A8 */ lw $t7, %lo(watch_soundrelated_maybe)($t7) +/* 0DA8A4 7F0A5D74 15E0000E */ bnez $t7, .L7F0A5DB0 +/* 0DA8A8 7F0A5D78 00000000 */ nop +/* 0DA8AC 7F0A5D7C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA8B0 7F0A5D80 00002025 */ move $a0, $zero +/* 0DA8B4 7F0A5D84 44822000 */ mtc1 $v0, $f4 +/* 0DA8B8 7F0A5D88 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0DA8BC 7F0A5D8C 44814000 */ mtc1 $at, $f8 +/* 0DA8C0 7F0A5D90 468021A0 */ cvt.s.w $f6, $f4 +/* 0DA8C4 7F0A5D94 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DA8C8 7F0A5D98 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DA8CC 7F0A5D9C C4D00000 */ lwc1 $f16, ($a2) +/* 0DA8D0 7F0A5DA0 46083283 */ div.s $f10, $f6, $f8 +/* 0DA8D4 7F0A5DA4 460A8481 */ sub.s $f18, $f16, $f10 +/* 0DA8D8 7F0A5DA8 10000025 */ b .L7F0A5E40 +/* 0DA8DC 7F0A5DAC E4D20000 */ swc1 $f18, ($a2) +.L7F0A5DB0: +/* 0DA8E0 7F0A5DB0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA8E4 7F0A5DB4 00002025 */ move $a0, $zero +/* 0DA8E8 7F0A5DB8 2841FFE2 */ slti $at, $v0, -0x1e +/* 0DA8EC 7F0A5DBC 10200020 */ beqz $at, .L7F0A5E40 +/* 0DA8F0 7F0A5DC0 00000000 */ nop +/* 0DA8F4 7F0A5DC4 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA8F8 7F0A5DC8 00002025 */ move $a0, $zero +/* 0DA8FC 7F0A5DCC 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DA900 7F0A5DD0 2841FFBB */ slti $at, $v0, -0x45 +/* 0DA904 7F0A5DD4 1420001A */ bnez $at, .L7F0A5E40 +/* 0DA908 7F0A5DD8 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DA90C 7F0A5DDC C4C40000 */ lwc1 $f4, ($a2) +/* 0DA910 7F0A5DE0 8FAA001C */ lw $t2, 0x1c($sp) +/* 0DA914 7F0A5DE4 3C0C8004 */ lui $t4, %hi(watch_soundrelated_maybe) +/* 0DA918 7F0A5DE8 4600218D */ trunc.w.s $f6, $f4 +/* 0DA91C 7F0A5DEC 254BFFFF */ addiu $t3, $t2, -1 +/* 0DA920 7F0A5DF0 44193000 */ mfc1 $t9, $f6 +/* 0DA924 7F0A5DF4 00000000 */ nop +/* 0DA928 7F0A5DF8 032B082A */ slt $at, $t9, $t3 +/* 0DA92C 7F0A5DFC 10200010 */ beqz $at, .L7F0A5E40 +/* 0DA930 7F0A5E00 00000000 */ nop +/* 0DA934 7F0A5E04 8D8C09A8 */ lw $t4, %lo(watch_soundrelated_maybe)($t4) +/* 0DA938 7F0A5E08 1580000D */ bnez $t4, .L7F0A5E40 +/* 0DA93C 7F0A5E0C 00000000 */ nop +/* 0DA940 7F0A5E10 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA944 7F0A5E14 00002025 */ move $a0, $zero +/* 0DA948 7F0A5E18 44824000 */ mtc1 $v0, $f8 +/* 0DA94C 7F0A5E1C 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0DA950 7F0A5E20 44815000 */ mtc1 $at, $f10 +/* 0DA954 7F0A5E24 46804420 */ cvt.s.w $f16, $f8 +/* 0DA958 7F0A5E28 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DA95C 7F0A5E2C 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DA960 7F0A5E30 C4C40000 */ lwc1 $f4, ($a2) +/* 0DA964 7F0A5E34 460A8483 */ div.s $f18, $f16, $f10 +/* 0DA968 7F0A5E38 46122181 */ sub.s $f6, $f4, $f18 +/* 0DA96C 7F0A5E3C E4C60000 */ swc1 $f6, ($a2) +.L7F0A5E40: +/* 0DA970 7F0A5E40 0FC29458 */ jal sub_GAME_7F0A5160 +/* 0DA974 7F0A5E44 00000000 */ nop +/* 0DA978 7F0A5E48 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DA97C 7F0A5E4C 10400010 */ beqz $v0, .L7F0A5E90 +/* 0DA980 7F0A5E50 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DA984 7F0A5E54 3C0D8004 */ lui $t5, %hi(D_800409B8) +/* 0DA988 7F0A5E58 8DAD09B8 */ lw $t5, %lo(D_800409B8)($t5) +/* 0DA98C 7F0A5E5C 3C0E8004 */ lui $t6, %hi(watch_soundrelated_maybe) +/* 0DA990 7F0A5E60 19A0000B */ blez $t5, .L7F0A5E90 +/* 0DA994 7F0A5E64 00000000 */ nop +/* 0DA998 7F0A5E68 8DCE09A8 */ lw $t6, %lo(watch_soundrelated_maybe)($t6) +/* 0DA99C 7F0A5E6C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DA9A0 7F0A5E70 15C00007 */ bnez $t6, .L7F0A5E90 +/* 0DA9A4 7F0A5E74 00000000 */ nop +/* 0DA9A8 7F0A5E78 C4C80000 */ lwc1 $f8, ($a2) +/* 0DA9AC 7F0A5E7C 44818000 */ mtc1 $at, $f16 +/* 0DA9B0 7F0A5E80 00000000 */ nop +/* 0DA9B4 7F0A5E84 46104281 */ sub.s $f10, $f8, $f16 +/* 0DA9B8 7F0A5E88 10000017 */ b .L7F0A5EE8 +/* 0DA9BC 7F0A5E8C E4CA0000 */ swc1 $f10, ($a2) +.L7F0A5E90: +/* 0DA9C0 7F0A5E90 0FC29467 */ jal sub_GAME_7F0A519C +/* 0DA9C4 7F0A5E94 00000000 */ nop +/* 0DA9C8 7F0A5E98 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DA9CC 7F0A5E9C 10400012 */ beqz $v0, .L7F0A5EE8 +/* 0DA9D0 7F0A5EA0 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DA9D4 7F0A5EA4 8FB8001C */ lw $t8, 0x1c($sp) +/* 0DA9D8 7F0A5EA8 3C0F8004 */ lui $t7, %hi(D_800409B8) +/* 0DA9DC 7F0A5EAC 8DEF09B8 */ lw $t7, %lo(D_800409B8)($t7) +/* 0DA9E0 7F0A5EB0 270AFFFF */ addiu $t2, $t8, -1 +/* 0DA9E4 7F0A5EB4 3C198004 */ lui $t9, %hi(watch_soundrelated_maybe) +/* 0DA9E8 7F0A5EB8 01EA082A */ slt $at, $t7, $t2 +/* 0DA9EC 7F0A5EBC 1020000A */ beqz $at, .L7F0A5EE8 +/* 0DA9F0 7F0A5EC0 00000000 */ nop +/* 0DA9F4 7F0A5EC4 8F3909A8 */ lw $t9, %lo(watch_soundrelated_maybe)($t9) +/* 0DA9F8 7F0A5EC8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DA9FC 7F0A5ECC 17200006 */ bnez $t9, .L7F0A5EE8 +/* 0DAA00 7F0A5ED0 00000000 */ nop +/* 0DAA04 7F0A5ED4 C4C40000 */ lwc1 $f4, ($a2) +/* 0DAA08 7F0A5ED8 44819000 */ mtc1 $at, $f18 +/* 0DAA0C 7F0A5EDC 00000000 */ nop +/* 0DAA10 7F0A5EE0 46122180 */ add.s $f6, $f4, $f18 +/* 0DAA14 7F0A5EE4 E4C60000 */ swc1 $f6, ($a2) +.L7F0A5EE8: +/* 0DAA18 7F0A5EE8 0FC29440 */ jal is_holding_less_than_10_up_on_stick +/* 0DAA1C 7F0A5EEC 00000000 */ nop +/* 0DAA20 7F0A5EF0 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DAA24 7F0A5EF4 14400006 */ bnez $v0, .L7F0A5F10 +/* 0DAA28 7F0A5EF8 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DAA2C 7F0A5EFC 0FC29449 */ jal is_holding_less_than_10_down_on_stick +/* 0DAA30 7F0A5F00 00000000 */ nop +/* 0DAA34 7F0A5F04 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DAA38 7F0A5F08 10400005 */ beqz $v0, .L7F0A5F20 +/* 0DAA3C 7F0A5F0C 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +.L7F0A5F10: +/* 0DAA40 7F0A5F10 240B0001 */ li $t3, 1 +/* 0DAA44 7F0A5F14 3C018004 */ lui $at, %hi(D_80040AE4) +/* 0DAA48 7F0A5F18 10000003 */ b .L7F0A5F28 +/* 0DAA4C 7F0A5F1C AC2B0AE4 */ sw $t3, %lo(D_80040AE4)($at) +.L7F0A5F20: +/* 0DAA50 7F0A5F20 3C018004 */ lui $at, %hi(D_80040AE4) +/* 0DAA54 7F0A5F24 AC200AE4 */ sw $zero, %lo(D_80040AE4)($at) +.L7F0A5F28: +/* 0DAA58 7F0A5F28 8FAC001C */ lw $t4, 0x1c($sp) +/* 0DAA5C 7F0A5F2C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0DAA60 7F0A5F30 44815000 */ mtc1 $at, $f10 +/* 0DAA64 7F0A5F34 448C4000 */ mtc1 $t4, $f8 +/* 0DAA68 7F0A5F38 C4C00000 */ lwc1 $f0, ($a2) +/* 0DAA6C 7F0A5F3C 3C01BF00 */ li $at, 0xBF000000 # -0.500000 +/* 0DAA70 7F0A5F40 46804420 */ cvt.s.w $f16, $f8 +/* 0DAA74 7F0A5F44 3C058004 */ lui $a1, %hi(D_800409B8) +/* 0DAA78 7F0A5F48 460A8081 */ sub.s $f2, $f16, $f10 +/* 0DAA7C 7F0A5F4C 4600103C */ c.lt.s $f2, $f0 +/* 0DAA80 7F0A5F50 00000000 */ nop +/* 0DAA84 7F0A5F54 45020004 */ bc1fl .L7F0A5F68 +/* 0DAA88 7F0A5F58 44811000 */ mtc1 $at, $f2 +/* 0DAA8C 7F0A5F5C E4C20000 */ swc1 $f2, ($a2) +/* 0DAA90 7F0A5F60 C4C00000 */ lwc1 $f0, ($a2) +/* 0DAA94 7F0A5F64 44811000 */ mtc1 $at, $f2 +.L7F0A5F68: +/* 0DAA98 7F0A5F68 00000000 */ nop +/* 0DAA9C 7F0A5F6C 4602003C */ c.lt.s $f0, $f2 +/* 0DAAA0 7F0A5F70 00000000 */ nop +/* 0DAAA4 7F0A5F74 45020004 */ bc1fl .L7F0A5F88 +/* 0DAAA8 7F0A5F78 4600010D */ trunc.w.s $f4, $f0 +/* 0DAAAC 7F0A5F7C E4C20000 */ swc1 $f2, ($a2) +/* 0DAAB0 7F0A5F80 C4C00000 */ lwc1 $f0, ($a2) +/* 0DAAB4 7F0A5F84 4600010D */ trunc.w.s $f4, $f0 +.L7F0A5F88: +/* 0DAAB8 7F0A5F88 3C028005 */ lui $v0, %hi(j_text_trigger) +/* 0DAABC 7F0A5F8C 8C4284D0 */ lw $v0, %lo(j_text_trigger)($v0) +/* 0DAAC0 7F0A5F90 3C018004 */ lui $at, %hi(D_800409B8) +/* 0DAAC4 7F0A5F94 440E2000 */ mfc1 $t6, $f4 +/* 0DAAC8 7F0A5F98 10400003 */ beqz $v0, .L7F0A5FA8 +/* 0DAACC 7F0A5F9C AC2E09B8 */ sw $t6, %lo(D_800409B8)($at) +/* 0DAAD0 7F0A5FA0 10000002 */ b .L7F0A5FAC +/* 0DAAD4 7F0A5FA4 2407000E */ li $a3, 14 +.L7F0A5FA8: +/* 0DAAD8 7F0A5FA8 2407000C */ li $a3, 12 +.L7F0A5FAC: +/* 0DAADC 7F0A5FAC 50400004 */ beql $v0, $zero, .L7F0A5FC0 +/* 0DAAE0 7F0A5FB0 2404000C */ li $a0, 12 +/* 0DAAE4 7F0A5FB4 10000002 */ b .L7F0A5FC0 +/* 0DAAE8 7F0A5FB8 2404000E */ li $a0, 14 +/* 0DAAEC 7F0A5FBC 2404000C */ li $a0, 12 +.L7F0A5FC0: +/* 0DAAF0 7F0A5FC0 8CA509B8 */ lw $a1, %lo(D_800409B8)($a1) +/* 0DAAF4 7F0A5FC4 3C098004 */ lui $t1, %hi(D_800409B0) +/* 0DAAF8 7F0A5FC8 252909B0 */ addiu $t1, %lo(D_800409B0) # addiu $t1, $t1, 0x9b0 +/* 0DAAFC 7F0A5FCC 00057823 */ negu $t7, $a1 +/* 0DAB00 7F0A5FD0 01E70019 */ multu $t7, $a3 +/* 0DAB04 7F0A5FD4 8D220000 */ lw $v0, ($t1) +/* 0DAB08 7F0A5FD8 0004C040 */ sll $t8, $a0, 1 +/* 0DAB0C 7F0A5FDC 3C088004 */ lui $t0, %hi(D_800409B4) +/* 0DAB10 7F0A5FE0 250809B4 */ addiu $t0, %lo(D_800409B4) # addiu $t0, $t0, 0x9b4 +/* 0DAB14 7F0A5FE4 00005012 */ mflo $t2 +/* 0DAB18 7F0A5FE8 030AC821 */ addu $t9, $t8, $t2 +/* 0DAB1C 7F0A5FEC 0322082A */ slt $at, $t9, $v0 +/* 0DAB20 7F0A5FF0 AD190000 */ sw $t9, ($t0) +/* 0DAB24 7F0A5FF4 1020000B */ beqz $at, .L7F0A6024 +/* 0DAB28 7F0A5FF8 03201825 */ move $v1, $t9 +/* 0DAB2C 7F0A5FFC 00595823 */ subu $t3, $v0, $t9 +/* 0DAB30 7F0A6000 24010003 */ li $at, 3 +/* 0DAB34 7F0A6004 0161001A */ div $zero, $t3, $at +/* 0DAB38 7F0A6008 00006012 */ mflo $t4 +/* 0DAB3C 7F0A600C 004C6823 */ subu $t5, $v0, $t4 +/* 0DAB40 7F0A6010 25AEFFFF */ addiu $t6, $t5, -1 +/* 0DAB44 7F0A6014 AD2E0000 */ sw $t6, ($t1) +/* 0DAB48 7F0A6018 3C018004 */ lui $at, %hi(D_800409C0) +/* 0DAB4C 7F0A601C 10000010 */ b .L7F0A6060 +/* 0DAB50 7F0A6020 AC2009C0 */ sw $zero, %lo(D_800409C0)($at) +.L7F0A6024: +/* 0DAB54 7F0A6024 0043082A */ slt $at, $v0, $v1 +/* 0DAB58 7F0A6028 1020000A */ beqz $at, .L7F0A6054 +/* 0DAB5C 7F0A602C 00627823 */ subu $t7, $v1, $v0 +/* 0DAB60 7F0A6030 24010003 */ li $at, 3 +/* 0DAB64 7F0A6034 01E1001A */ div $zero, $t7, $at +/* 0DAB68 7F0A6038 0000C012 */ mflo $t8 +/* 0DAB6C 7F0A603C 00585021 */ addu $t2, $v0, $t8 +/* 0DAB70 7F0A6040 25590001 */ addiu $t9, $t2, 1 +/* 0DAB74 7F0A6044 AD390000 */ sw $t9, ($t1) +/* 0DAB78 7F0A6048 3C018004 */ lui $at, %hi(D_800409C0) +/* 0DAB7C 7F0A604C 10000004 */ b .L7F0A6060 +/* 0DAB80 7F0A6050 AC2009C0 */ sw $zero, %lo(D_800409C0)($at) +.L7F0A6054: +/* 0DAB84 7F0A6054 240B0001 */ li $t3, 1 +/* 0DAB88 7F0A6058 3C018004 */ lui $at, %hi(D_800409C0) +/* 0DAB8C 7F0A605C AC2B09C0 */ sw $t3, %lo(D_800409C0)($at) +.L7F0A6060: +/* 0DAB90 7F0A6060 44859000 */ mtc1 $a1, $f18 +/* 0DAB94 7F0A6064 3C018006 */ lui $at, %hi(D_80058484) +/* 0DAB98 7F0A6068 C4288484 */ lwc1 $f8, %lo(D_80058484)($at) +/* 0DAB9C 7F0A606C 468091A0 */ cvt.s.w $f6, $f18 +/* 0DABA0 7F0A6070 46083400 */ add.s $f16, $f6, $f8 +/* 0DABA4 7F0A6074 4600803C */ c.lt.s $f16, $f0 +/* 0DABA8 7F0A6078 00000000 */ nop +/* 0DABAC 7F0A607C 4500000C */ bc1f .L7F0A60B0 +/* 0DABB0 7F0A6080 00002025 */ move $a0, $zero +/* 0DABB4 7F0A6084 0C0030C3 */ jal get_controller_buttons_held +/* 0DABB8 7F0A6088 3405FFFF */ li $a1, 65535 +/* 0DABBC 7F0A608C 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DABC0 7F0A6090 14400007 */ bnez $v0, .L7F0A60B0 +/* 0DABC4 7F0A6094 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DABC8 7F0A6098 3C018006 */ lui $at, %hi(D_80058488) +/* 0DABCC 7F0A609C C4248488 */ lwc1 $f4, %lo(D_80058488)($at) +/* 0DABD0 7F0A60A0 C4CA0000 */ lwc1 $f10, ($a2) +/* 0DABD4 7F0A60A4 46045481 */ sub.s $f18, $f10, $f4 +/* 0DABD8 7F0A60A8 10000018 */ b .L7F0A610C +/* 0DABDC 7F0A60AC E4D20000 */ swc1 $f18, ($a2) +.L7F0A60B0: +/* 0DABE0 7F0A60B0 3C0C8004 */ lui $t4, %hi(D_800409B8) +/* 0DABE4 7F0A60B4 8D8C09B8 */ lw $t4, %lo(D_800409B8)($t4) +/* 0DABE8 7F0A60B8 3C018006 */ lui $at, %hi(D_8005848C) +/* 0DABEC 7F0A60BC C430848C */ lwc1 $f16, %lo(D_8005848C)($at) +/* 0DABF0 7F0A60C0 448C3000 */ mtc1 $t4, $f6 +/* 0DABF4 7F0A60C4 C4C40000 */ lwc1 $f4, ($a2) +/* 0DABF8 7F0A60C8 00002025 */ move $a0, $zero +/* 0DABFC 7F0A60CC 46803220 */ cvt.s.w $f8, $f6 +/* 0DAC00 7F0A60D0 46104280 */ add.s $f10, $f8, $f16 +/* 0DAC04 7F0A60D4 460A203E */ c.le.s $f4, $f10 +/* 0DAC08 7F0A60D8 00000000 */ nop +/* 0DAC0C 7F0A60DC 4502000C */ bc1fl .L7F0A6110 +/* 0DAC10 7F0A60E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DAC14 7F0A60E4 0C0030C3 */ jal get_controller_buttons_held +/* 0DAC18 7F0A60E8 3405FFFF */ li $a1, 65535 +/* 0DAC1C 7F0A60EC 3C068004 */ lui $a2, %hi(D_800409BC) +/* 0DAC20 7F0A60F0 14400006 */ bnez $v0, .L7F0A610C +/* 0DAC24 7F0A60F4 24C609BC */ addiu $a2, %lo(D_800409BC) # addiu $a2, $a2, 0x9bc +/* 0DAC28 7F0A60F8 3C018006 */ lui $at, %hi(D_80058490) +/* 0DAC2C 7F0A60FC C4268490 */ lwc1 $f6, %lo(D_80058490)($at) +/* 0DAC30 7F0A6100 C4D20000 */ lwc1 $f18, ($a2) +/* 0DAC34 7F0A6104 46069200 */ add.s $f8, $f18, $f6 +/* 0DAC38 7F0A6108 E4C80000 */ swc1 $f8, ($a2) +.L7F0A610C: +/* 0DAC3C 7F0A610C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6110: +/* 0DAC40 7F0A6110 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0DAC44 7F0A6114 03E00008 */ jr $ra +/* 0DAC48 7F0A6118 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A611C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058494 +.word 0x3dcccccd /*0.1*/ +glabel D_80058498 +.word 0x3dcccccd /*0.1*/ +glabel D_8005849C +.word 0x3f0ccccd /*0.55000001*/ +glabel D_800584A0 +.word 0x3dcccccd /*0.1*/ +glabel D_800584A4 +.word 0x3ee66666 /*0.44999999*/ +glabel D_800584A8 +.word 0x3dcccccd /*0.1*/ +.text +glabel sub_GAME_7F0A611C +/* 0DAC4C 7F0A611C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0DAC50 7F0A6120 AFBF001C */ sw $ra, 0x1c($sp) +/* 0DAC54 7F0A6124 AFB00018 */ sw $s0, 0x18($sp) +/* 0DAC58 7F0A6128 00808025 */ move $s0, $a0 +/* 0DAC5C 7F0A612C AFA50024 */ sw $a1, 0x24($sp) +/* 0DAC60 7F0A6130 AFA60028 */ sw $a2, 0x28($sp) +/* 0DAC64 7F0A6134 0FC24415 */ jal get_debug_gunwatchpos_flag +/* 0DAC68 7F0A6138 AFA7002C */ sw $a3, 0x2c($sp) +/* 0DAC6C 7F0A613C 14400056 */ bnez $v0, .L7F0A6298 +/* 0DAC70 7F0A6140 00002025 */ move $a0, $zero +/* 0DAC74 7F0A6144 0C0030EB */ jal get_controller_buttons_pressed +/* 0DAC78 7F0A6148 24050808 */ li $a1, 2056 +/* 0DAC7C 7F0A614C 54400007 */ bnezl $v0, .L7F0A616C +/* 0DAC80 7F0A6150 C6000000 */ lwc1 $f0, ($s0) +/* 0DAC84 7F0A6154 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DAC88 7F0A6158 00002025 */ move $a0, $zero +/* 0DAC8C 7F0A615C 28410047 */ slti $at, $v0, 0x47 +/* 0DAC90 7F0A6160 1420000F */ bnez $at, .L7F0A61A0 +/* 0DAC94 7F0A6164 00002025 */ move $a0, $zero +/* 0DAC98 7F0A6168 C6000000 */ lwc1 $f0, ($s0) +.L7F0A616C: +/* 0DAC9C 7F0A616C 8FB8003C */ lw $t8, 0x3c($sp) +/* 0DACA0 7F0A6170 4600010D */ trunc.w.s $f4, $f0 +/* 0DACA4 7F0A6174 440F2000 */ mfc1 $t7, $f4 +/* 0DACA8 7F0A6178 00000000 */ nop +/* 0DACAC 7F0A617C 59E00022 */ blezl $t7, .L7F0A6208 +/* 0DACB0 7F0A6180 00002025 */ move $a0, $zero +/* 0DACB4 7F0A6184 1300001F */ beqz $t8, .L7F0A6204 +/* 0DACB8 7F0A6188 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DACBC 7F0A618C 44813000 */ mtc1 $at, $f6 +/* 0DACC0 7F0A6190 00000000 */ nop +/* 0DACC4 7F0A6194 46060201 */ sub.s $f8, $f0, $f6 +/* 0DACC8 7F0A6198 1000001A */ b .L7F0A6204 +/* 0DACCC 7F0A619C E6080000 */ swc1 $f8, ($s0) +.L7F0A61A0: +/* 0DACD0 7F0A61A0 0C0030EB */ jal get_controller_buttons_pressed +/* 0DACD4 7F0A61A4 24050404 */ li $a1, 1028 +/* 0DACD8 7F0A61A8 54400007 */ bnezl $v0, .L7F0A61C8 +/* 0DACDC 7F0A61AC C6000000 */ lwc1 $f0, ($s0) +/* 0DACE0 7F0A61B0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DACE4 7F0A61B4 00002025 */ move $a0, $zero +/* 0DACE8 7F0A61B8 2841FFBA */ slti $at, $v0, -0x46 +/* 0DACEC 7F0A61BC 50200012 */ beql $at, $zero, .L7F0A6208 +/* 0DACF0 7F0A61C0 00002025 */ move $a0, $zero +/* 0DACF4 7F0A61C4 C6000000 */ lwc1 $f0, ($s0) +.L7F0A61C8: +/* 0DACF8 7F0A61C8 8FA90028 */ lw $t1, 0x28($sp) +/* 0DACFC 7F0A61CC 8FAB003C */ lw $t3, 0x3c($sp) +/* 0DAD00 7F0A61D0 4600028D */ trunc.w.s $f10, $f0 +/* 0DAD04 7F0A61D4 252AFFFF */ addiu $t2, $t1, -1 +/* 0DAD08 7F0A61D8 44085000 */ mfc1 $t0, $f10 +/* 0DAD0C 7F0A61DC 00000000 */ nop +/* 0DAD10 7F0A61E0 010A082A */ slt $at, $t0, $t2 +/* 0DAD14 7F0A61E4 50200008 */ beql $at, $zero, .L7F0A6208 +/* 0DAD18 7F0A61E8 00002025 */ move $a0, $zero +/* 0DAD1C 7F0A61EC 11600005 */ beqz $t3, .L7F0A6204 +/* 0DAD20 7F0A61F0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DAD24 7F0A61F4 44818000 */ mtc1 $at, $f16 +/* 0DAD28 7F0A61F8 00000000 */ nop +/* 0DAD2C 7F0A61FC 46100480 */ add.s $f18, $f0, $f16 +/* 0DAD30 7F0A6200 E6120000 */ swc1 $f18, ($s0) +.L7F0A6204: +/* 0DAD34 7F0A6204 00002025 */ move $a0, $zero +.L7F0A6208: +/* 0DAD38 7F0A6208 0C0030C3 */ jal get_controller_buttons_held +/* 0DAD3C 7F0A620C 24050808 */ li $a1, 2056 +/* 0DAD40 7F0A6210 1040000E */ beqz $v0, .L7F0A624C +/* 0DAD44 7F0A6214 00002025 */ move $a0, $zero +/* 0DAD48 7F0A6218 C6000000 */ lwc1 $f0, ($s0) +/* 0DAD4C 7F0A621C 8FAE003C */ lw $t6, 0x3c($sp) +/* 0DAD50 7F0A6220 4600010D */ trunc.w.s $f4, $f0 +/* 0DAD54 7F0A6224 440D2000 */ mfc1 $t5, $f4 +/* 0DAD58 7F0A6228 00000000 */ nop +/* 0DAD5C 7F0A622C 19A0001A */ blez $t5, .L7F0A6298 +/* 0DAD60 7F0A6230 00000000 */ nop +/* 0DAD64 7F0A6234 11C00018 */ beqz $t6, .L7F0A6298 +/* 0DAD68 7F0A6238 3C018006 */ lui $at, %hi(D_80058494) +/* 0DAD6C 7F0A623C C4268494 */ lwc1 $f6, %lo(D_80058494)($at) +/* 0DAD70 7F0A6240 46060201 */ sub.s $f8, $f0, $f6 +/* 0DAD74 7F0A6244 10000014 */ b .L7F0A6298 +/* 0DAD78 7F0A6248 E6080000 */ swc1 $f8, ($s0) +.L7F0A624C: +/* 0DAD7C 7F0A624C 0C0030C3 */ jal get_controller_buttons_held +/* 0DAD80 7F0A6250 24050404 */ li $a1, 1028 +/* 0DAD84 7F0A6254 10400010 */ beqz $v0, .L7F0A6298 +/* 0DAD88 7F0A6258 00000000 */ nop +/* 0DAD8C 7F0A625C C6000000 */ lwc1 $f0, ($s0) +/* 0DAD90 7F0A6260 8FB90028 */ lw $t9, 0x28($sp) +/* 0DAD94 7F0A6264 8FA8003C */ lw $t0, 0x3c($sp) +/* 0DAD98 7F0A6268 4600028D */ trunc.w.s $f10, $f0 +/* 0DAD9C 7F0A626C 2729FFFF */ addiu $t1, $t9, -1 +/* 0DADA0 7F0A6270 44185000 */ mfc1 $t8, $f10 +/* 0DADA4 7F0A6274 00000000 */ nop +/* 0DADA8 7F0A6278 0309082A */ slt $at, $t8, $t1 +/* 0DADAC 7F0A627C 10200006 */ beqz $at, .L7F0A6298 +/* 0DADB0 7F0A6280 00000000 */ nop +/* 0DADB4 7F0A6284 11000004 */ beqz $t0, .L7F0A6298 +/* 0DADB8 7F0A6288 3C018006 */ lui $at, %hi(D_80058498) +/* 0DADBC 7F0A628C C4308498 */ lwc1 $f16, %lo(D_80058498)($at) +/* 0DADC0 7F0A6290 46100480 */ add.s $f18, $f0, $f16 +/* 0DADC4 7F0A6294 E6120000 */ swc1 $f18, ($s0) +.L7F0A6298: +/* 0DADC8 7F0A6298 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DADCC 7F0A629C 00002025 */ move $a0, $zero +/* 0DADD0 7F0A62A0 2841001F */ slti $at, $v0, 0x1f +/* 0DADD4 7F0A62A4 14200017 */ bnez $at, .L7F0A6304 +/* 0DADD8 7F0A62A8 00000000 */ nop +/* 0DADDC 7F0A62AC 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DADE0 7F0A62B0 00002025 */ move $a0, $zero +/* 0DADE4 7F0A62B4 28410046 */ slti $at, $v0, 0x46 +/* 0DADE8 7F0A62B8 10200012 */ beqz $at, .L7F0A6304 +/* 0DADEC 7F0A62BC 8FAA0024 */ lw $t2, 0x24($sp) +/* 0DADF0 7F0A62C0 8D4B0000 */ lw $t3, ($t2) +/* 0DADF4 7F0A62C4 8FAC003C */ lw $t4, 0x3c($sp) +/* 0DADF8 7F0A62C8 1960000E */ blez $t3, .L7F0A6304 +/* 0DADFC 7F0A62CC 00000000 */ nop +/* 0DAE00 7F0A62D0 1180000C */ beqz $t4, .L7F0A6304 +/* 0DAE04 7F0A62D4 00000000 */ nop +/* 0DAE08 7F0A62D8 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DAE0C 7F0A62DC 00002025 */ move $a0, $zero +/* 0DAE10 7F0A62E0 44822000 */ mtc1 $v0, $f4 +/* 0DAE14 7F0A62E4 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0DAE18 7F0A62E8 44814000 */ mtc1 $at, $f8 +/* 0DAE1C 7F0A62EC 468021A0 */ cvt.s.w $f6, $f4 +/* 0DAE20 7F0A62F0 C6100000 */ lwc1 $f16, ($s0) +/* 0DAE24 7F0A62F4 46083283 */ div.s $f10, $f6, $f8 +/* 0DAE28 7F0A62F8 460A8481 */ sub.s $f18, $f16, $f10 +/* 0DAE2C 7F0A62FC 10000021 */ b .L7F0A6384 +/* 0DAE30 7F0A6300 E6120000 */ swc1 $f18, ($s0) +.L7F0A6304: +/* 0DAE34 7F0A6304 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DAE38 7F0A6308 00002025 */ move $a0, $zero +/* 0DAE3C 7F0A630C 2841FFE2 */ slti $at, $v0, -0x1e +/* 0DAE40 7F0A6310 1020001C */ beqz $at, .L7F0A6384 +/* 0DAE44 7F0A6314 00000000 */ nop +/* 0DAE48 7F0A6318 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DAE4C 7F0A631C 00002025 */ move $a0, $zero +/* 0DAE50 7F0A6320 2841FFBB */ slti $at, $v0, -0x45 +/* 0DAE54 7F0A6324 14200017 */ bnez $at, .L7F0A6384 +/* 0DAE58 7F0A6328 00000000 */ nop +/* 0DAE5C 7F0A632C C6040000 */ lwc1 $f4, ($s0) +/* 0DAE60 7F0A6330 8FAF0028 */ lw $t7, 0x28($sp) +/* 0DAE64 7F0A6334 8FB8003C */ lw $t8, 0x3c($sp) +/* 0DAE68 7F0A6338 4600218D */ trunc.w.s $f6, $f4 +/* 0DAE6C 7F0A633C 25F9FFFF */ addiu $t9, $t7, -1 +/* 0DAE70 7F0A6340 440E3000 */ mfc1 $t6, $f6 +/* 0DAE74 7F0A6344 00000000 */ nop +/* 0DAE78 7F0A6348 01D9082A */ slt $at, $t6, $t9 +/* 0DAE7C 7F0A634C 1020000D */ beqz $at, .L7F0A6384 +/* 0DAE80 7F0A6350 00000000 */ nop +/* 0DAE84 7F0A6354 1300000B */ beqz $t8, .L7F0A6384 +/* 0DAE88 7F0A6358 00000000 */ nop +/* 0DAE8C 7F0A635C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DAE90 7F0A6360 00002025 */ move $a0, $zero +/* 0DAE94 7F0A6364 44824000 */ mtc1 $v0, $f8 +/* 0DAE98 7F0A6368 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0DAE9C 7F0A636C 44815000 */ mtc1 $at, $f10 +/* 0DAEA0 7F0A6370 46804420 */ cvt.s.w $f16, $f8 +/* 0DAEA4 7F0A6374 C6040000 */ lwc1 $f4, ($s0) +/* 0DAEA8 7F0A6378 460A8483 */ div.s $f18, $f16, $f10 +/* 0DAEAC 7F0A637C 46122181 */ sub.s $f6, $f4, $f18 +/* 0DAEB0 7F0A6380 E6060000 */ swc1 $f6, ($s0) +.L7F0A6384: +/* 0DAEB4 7F0A6384 0FC29458 */ jal sub_GAME_7F0A5160 +/* 0DAEB8 7F0A6388 00000000 */ nop +/* 0DAEBC 7F0A638C 1040000D */ beqz $v0, .L7F0A63C4 +/* 0DAEC0 7F0A6390 8FA90024 */ lw $t1, 0x24($sp) +/* 0DAEC4 7F0A6394 8D280000 */ lw $t0, ($t1) +/* 0DAEC8 7F0A6398 8FAA003C */ lw $t2, 0x3c($sp) +/* 0DAECC 7F0A639C 19000009 */ blez $t0, .L7F0A63C4 +/* 0DAED0 7F0A63A0 00000000 */ nop +/* 0DAED4 7F0A63A4 11400007 */ beqz $t2, .L7F0A63C4 +/* 0DAED8 7F0A63A8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DAEDC 7F0A63AC C6080000 */ lwc1 $f8, ($s0) +/* 0DAEE0 7F0A63B0 44818000 */ mtc1 $at, $f16 +/* 0DAEE4 7F0A63B4 00000000 */ nop +/* 0DAEE8 7F0A63B8 46104281 */ sub.s $f10, $f8, $f16 +/* 0DAEEC 7F0A63BC 10000013 */ b .L7F0A640C +/* 0DAEF0 7F0A63C0 E60A0000 */ swc1 $f10, ($s0) +.L7F0A63C4: +/* 0DAEF4 7F0A63C4 0FC29467 */ jal sub_GAME_7F0A519C +/* 0DAEF8 7F0A63C8 00000000 */ nop +/* 0DAEFC 7F0A63CC 1040000F */ beqz $v0, .L7F0A640C +/* 0DAF00 7F0A63D0 8FAB0024 */ lw $t3, 0x24($sp) +/* 0DAF04 7F0A63D4 8FAD0028 */ lw $t5, 0x28($sp) +/* 0DAF08 7F0A63D8 8D6C0000 */ lw $t4, ($t3) +/* 0DAF0C 7F0A63DC 8FAE003C */ lw $t6, 0x3c($sp) +/* 0DAF10 7F0A63E0 25AFFFFF */ addiu $t7, $t5, -1 +/* 0DAF14 7F0A63E4 018F082A */ slt $at, $t4, $t7 +/* 0DAF18 7F0A63E8 10200008 */ beqz $at, .L7F0A640C +/* 0DAF1C 7F0A63EC 00000000 */ nop +/* 0DAF20 7F0A63F0 11C00006 */ beqz $t6, .L7F0A640C +/* 0DAF24 7F0A63F4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DAF28 7F0A63F8 C6040000 */ lwc1 $f4, ($s0) +/* 0DAF2C 7F0A63FC 44819000 */ mtc1 $at, $f18 +/* 0DAF30 7F0A6400 00000000 */ nop +/* 0DAF34 7F0A6404 46122180 */ add.s $f6, $f4, $f18 +/* 0DAF38 7F0A6408 E6060000 */ swc1 $f6, ($s0) +.L7F0A640C: +/* 0DAF3C 7F0A640C 0FC29440 */ jal is_holding_less_than_10_up_on_stick +/* 0DAF40 7F0A6410 00000000 */ nop +/* 0DAF44 7F0A6414 54400006 */ bnezl $v0, .L7F0A6430 +/* 0DAF48 7F0A6418 24190001 */ li $t9, 1 +/* 0DAF4C 7F0A641C 0FC29449 */ jal is_holding_less_than_10_down_on_stick +/* 0DAF50 7F0A6420 00000000 */ nop +/* 0DAF54 7F0A6424 10400005 */ beqz $v0, .L7F0A643C +/* 0DAF58 7F0A6428 3C018004 */ lui $at, %hi(D_80040AE4) +/* 0DAF5C 7F0A642C 24190001 */ li $t9, 1 +.L7F0A6430: +/* 0DAF60 7F0A6430 3C018004 */ lui $at, %hi(D_80040AE4) +/* 0DAF64 7F0A6434 10000002 */ b .L7F0A6440 +/* 0DAF68 7F0A6438 AC390AE4 */ sw $t9, %lo(D_80040AE4)($at) +.L7F0A643C: +/* 0DAF6C 7F0A643C AC200AE4 */ sw $zero, %lo(D_80040AE4)($at) +.L7F0A6440: +/* 0DAF70 7F0A6440 8FB80028 */ lw $t8, 0x28($sp) +/* 0DAF74 7F0A6444 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0DAF78 7F0A6448 44815000 */ mtc1 $at, $f10 +/* 0DAF7C 7F0A644C 44984000 */ mtc1 $t8, $f8 +/* 0DAF80 7F0A6450 C6000000 */ lwc1 $f0, ($s0) +/* 0DAF84 7F0A6454 3C01BF00 */ li $at, 0xBF000000 # -0.500000 +/* 0DAF88 7F0A6458 46804420 */ cvt.s.w $f16, $f8 +/* 0DAF8C 7F0A645C 460A8081 */ sub.s $f2, $f16, $f10 +/* 0DAF90 7F0A6460 4600103C */ c.lt.s $f2, $f0 +/* 0DAF94 7F0A6464 00000000 */ nop +/* 0DAF98 7F0A6468 45020004 */ bc1fl .L7F0A647C +/* 0DAF9C 7F0A646C 44811000 */ mtc1 $at, $f2 +/* 0DAFA0 7F0A6470 E6020000 */ swc1 $f2, ($s0) +/* 0DAFA4 7F0A6474 C6000000 */ lwc1 $f0, ($s0) +/* 0DAFA8 7F0A6478 44811000 */ mtc1 $at, $f2 +.L7F0A647C: +/* 0DAFAC 7F0A647C 00000000 */ nop +/* 0DAFB0 7F0A6480 4602003C */ c.lt.s $f0, $f2 +/* 0DAFB4 7F0A6484 00000000 */ nop +/* 0DAFB8 7F0A6488 45020004 */ bc1fl .L7F0A649C +/* 0DAFBC 7F0A648C 4600010D */ trunc.w.s $f4, $f0 +/* 0DAFC0 7F0A6490 E6020000 */ swc1 $f2, ($s0) +/* 0DAFC4 7F0A6494 C6000000 */ lwc1 $f0, ($s0) +/* 0DAFC8 7F0A6498 4600010D */ trunc.w.s $f4, $f0 +.L7F0A649C: +/* 0DAFCC 7F0A649C 8FA50040 */ lw $a1, 0x40($sp) +/* 0DAFD0 7F0A64A0 8FAA0024 */ lw $t2, 0x24($sp) +/* 0DAFD4 7F0A64A4 8FA40030 */ lw $a0, 0x30($sp) +/* 0DAFD8 7F0A64A8 44082000 */ mfc1 $t0, $f4 +/* 0DAFDC 7F0A64AC 8FA6002C */ lw $a2, 0x2c($sp) +/* 0DAFE0 7F0A64B0 00085823 */ negu $t3, $t0 +/* 0DAFE4 7F0A64B4 01650019 */ multu $t3, $a1 +/* 0DAFE8 7F0A64B8 AD480000 */ sw $t0, ($t2) +/* 0DAFEC 7F0A64BC 8FAC0038 */ lw $t4, 0x38($sp) +/* 0DAFF0 7F0A64C0 00006812 */ mflo $t5 +/* 0DAFF4 7F0A64C4 00000000 */ nop +/* 0DAFF8 7F0A64C8 00000000 */ nop +/* 0DAFFC 7F0A64CC 01850019 */ multu $t4, $a1 +/* 0DB000 7F0A64D0 00007812 */ mflo $t7 +/* 0DB004 7F0A64D4 01AF7021 */ addu $t6, $t5, $t7 +/* 0DB008 7F0A64D8 AC8E0000 */ sw $t6, ($a0) +/* 0DB00C 7F0A64DC 8CC20000 */ lw $v0, ($a2) +/* 0DB010 7F0A64E0 01C01825 */ move $v1, $t6 +/* 0DB014 7F0A64E4 00002025 */ move $a0, $zero +/* 0DB018 7F0A64E8 01C2082A */ slt $at, $t6, $v0 +/* 0DB01C 7F0A64EC 1020000A */ beqz $at, .L7F0A6518 +/* 0DB020 7F0A64F0 004EC823 */ subu $t9, $v0, $t6 +/* 0DB024 7F0A64F4 24010003 */ li $at, 3 +/* 0DB028 7F0A64F8 0321001A */ div $zero, $t9, $at +/* 0DB02C 7F0A64FC 0000C012 */ mflo $t8 +/* 0DB030 7F0A6500 00584823 */ subu $t1, $v0, $t8 +/* 0DB034 7F0A6504 252AFFFF */ addiu $t2, $t1, -1 +/* 0DB038 7F0A6508 ACCA0000 */ sw $t2, ($a2) +/* 0DB03C 7F0A650C 8FA80034 */ lw $t0, 0x34($sp) +/* 0DB040 7F0A6510 10000010 */ b .L7F0A6554 +/* 0DB044 7F0A6514 AD000000 */ sw $zero, ($t0) +.L7F0A6518: +/* 0DB048 7F0A6518 0043082A */ slt $at, $v0, $v1 +/* 0DB04C 7F0A651C 1020000B */ beqz $at, .L7F0A654C +/* 0DB050 7F0A6520 8FB80034 */ lw $t8, 0x34($sp) +/* 0DB054 7F0A6524 00625823 */ subu $t3, $v1, $v0 +/* 0DB058 7F0A6528 24010003 */ li $at, 3 +/* 0DB05C 7F0A652C 0161001A */ div $zero, $t3, $at +/* 0DB060 7F0A6530 00006012 */ mflo $t4 +/* 0DB064 7F0A6534 004C6821 */ addu $t5, $v0, $t4 +/* 0DB068 7F0A6538 25AF0001 */ addiu $t7, $t5, 1 +/* 0DB06C 7F0A653C ACCF0000 */ sw $t7, ($a2) +/* 0DB070 7F0A6540 8FAE0034 */ lw $t6, 0x34($sp) +/* 0DB074 7F0A6544 10000003 */ b .L7F0A6554 +/* 0DB078 7F0A6548 ADC00000 */ sw $zero, ($t6) +.L7F0A654C: +/* 0DB07C 7F0A654C 24190001 */ li $t9, 1 +/* 0DB080 7F0A6550 AF190000 */ sw $t9, ($t8) +.L7F0A6554: +/* 0DB084 7F0A6554 8FA90024 */ lw $t1, 0x24($sp) +/* 0DB088 7F0A6558 3C018006 */ lui $at, %hi(D_8005849C) +/* 0DB08C 7F0A655C C428849C */ lwc1 $f8, %lo(D_8005849C)($at) +/* 0DB090 7F0A6560 8D2A0000 */ lw $t2, ($t1) +/* 0DB094 7F0A6564 C60A0000 */ lwc1 $f10, ($s0) +/* 0DB098 7F0A6568 448A9000 */ mtc1 $t2, $f18 +/* 0DB09C 7F0A656C 00000000 */ nop +/* 0DB0A0 7F0A6570 468091A0 */ cvt.s.w $f6, $f18 +/* 0DB0A4 7F0A6574 46083400 */ add.s $f16, $f6, $f8 +/* 0DB0A8 7F0A6578 460A803C */ c.lt.s $f16, $f10 +/* 0DB0AC 7F0A657C 00000000 */ nop +/* 0DB0B0 7F0A6580 4502000B */ bc1fl .L7F0A65B0 +/* 0DB0B4 7F0A6584 8FA80024 */ lw $t0, 0x24($sp) +/* 0DB0B8 7F0A6588 0C0030C3 */ jal get_controller_buttons_held +/* 0DB0BC 7F0A658C 3405FFFF */ li $a1, 65535 +/* 0DB0C0 7F0A6590 14400006 */ bnez $v0, .L7F0A65AC +/* 0DB0C4 7F0A6594 3C018006 */ lui $at, %hi(D_800584A0) +/* 0DB0C8 7F0A6598 C6040000 */ lwc1 $f4, ($s0) +/* 0DB0CC 7F0A659C C43284A0 */ lwc1 $f18, %lo(D_800584A0)($at) +/* 0DB0D0 7F0A65A0 46122181 */ sub.s $f6, $f4, $f18 +/* 0DB0D4 7F0A65A4 10000017 */ b .L7F0A6604 +/* 0DB0D8 7F0A65A8 E6060000 */ swc1 $f6, ($s0) +.L7F0A65AC: +/* 0DB0DC 7F0A65AC 8FA80024 */ lw $t0, 0x24($sp) +.L7F0A65B0: +/* 0DB0E0 7F0A65B0 3C018006 */ lui $at, %hi(D_800584A4) +/* 0DB0E4 7F0A65B4 C42A84A4 */ lwc1 $f10, %lo(D_800584A4)($at) +/* 0DB0E8 7F0A65B8 8D0B0000 */ lw $t3, ($t0) +/* 0DB0EC 7F0A65BC C6120000 */ lwc1 $f18, ($s0) +/* 0DB0F0 7F0A65C0 00002025 */ move $a0, $zero +/* 0DB0F4 7F0A65C4 448B4000 */ mtc1 $t3, $f8 +/* 0DB0F8 7F0A65C8 00000000 */ nop +/* 0DB0FC 7F0A65CC 46804420 */ cvt.s.w $f16, $f8 +/* 0DB100 7F0A65D0 460A8100 */ add.s $f4, $f16, $f10 +/* 0DB104 7F0A65D4 4604903E */ c.le.s $f18, $f4 +/* 0DB108 7F0A65D8 00000000 */ nop +/* 0DB10C 7F0A65DC 4502000A */ bc1fl .L7F0A6608 +/* 0DB110 7F0A65E0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0DB114 7F0A65E4 0C0030C3 */ jal get_controller_buttons_held +/* 0DB118 7F0A65E8 3405FFFF */ li $a1, 65535 +/* 0DB11C 7F0A65EC 14400005 */ bnez $v0, .L7F0A6604 +/* 0DB120 7F0A65F0 3C018006 */ lui $at, %hi(D_800584A8) +/* 0DB124 7F0A65F4 C6060000 */ lwc1 $f6, ($s0) +/* 0DB128 7F0A65F8 C42884A8 */ lwc1 $f8, %lo(D_800584A8)($at) +/* 0DB12C 7F0A65FC 46083400 */ add.s $f16, $f6, $f8 +/* 0DB130 7F0A6600 E6100000 */ swc1 $f16, ($s0) +.L7F0A6604: +/* 0DB134 7F0A6604 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0A6608: +/* 0DB138 7F0A6608 8FB00018 */ lw $s0, 0x18($sp) +/* 0DB13C 7F0A660C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0DB140 7F0A6610 03E00008 */ jr $ra +/* 0DB144 7F0A6614 00000000 */ nop +) +#endif + + + + + + +void sub_GAME_7F0A6618(void) +{ + if ((get_controller_buttons_pressed(0, U_CBUTTONS|U_JPAD)) || (sub_GAME_7F0A5088())) + { + D_800409A0 = 4; + set_D_80040AE0_0(); + sub_GAME_7F0A4F44(); + } + + if ((get_controller_buttons_pressed(0, D_CBUTTONS|D_JPAD)) || (sub_GAME_7F0A50C4())) + { + D_800409A0 = 1; + set_D_80040AE0_0(); + sub_GAME_7F0A4F44(); + } +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A66A0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A66A0 +/* 0DB1D0 7F0A66A0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DB1D4 7F0A66A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DB1D8 7F0A66A8 00002025 */ move $a0, $zero +/* 0DB1DC 7F0A66AC 0C0030EB */ jal get_controller_buttons_pressed +/* 0DB1E0 7F0A66B0 24050808 */ li $a1, 2056 +/* 0DB1E4 7F0A66B4 14400005 */ bnez $v0, .L7F0A66CC +/* 0DB1E8 7F0A66B8 00000000 */ nop +/* 0DB1EC 7F0A66BC 0FC29422 */ jal sub_GAME_7F0A5088 +/* 0DB1F0 7F0A66C0 00000000 */ nop +/* 0DB1F4 7F0A66C4 10400008 */ beqz $v0, .L7F0A66E8 +/* 0DB1F8 7F0A66C8 00002025 */ move $a0, $zero +.L7F0A66CC: +/* 0DB1FC 7F0A66CC 3C018004 */ lui $at, %hi(D_800409A0) +/* 0DB200 7F0A66D0 0FC2941F */ jal set_D_80040AE0_0 +/* 0DB204 7F0A66D4 AC2009A0 */ sw $zero, %lo(D_800409A0)($at) +/* 0DB208 7F0A66D8 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DB20C 7F0A66DC 00000000 */ nop +/* 0DB210 7F0A66E0 1000000F */ b .L7F0A6720 +/* 0DB214 7F0A66E4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A66E8: +/* 0DB218 7F0A66E8 0C0030EB */ jal get_controller_buttons_pressed +/* 0DB21C 7F0A66EC 24050404 */ li $a1, 1028 +/* 0DB220 7F0A66F0 54400005 */ bnezl $v0, .L7F0A6708 +/* 0DB224 7F0A66F4 240E0002 */ li $t6, 2 +/* 0DB228 7F0A66F8 0FC29431 */ jal sub_GAME_7F0A50C4 +/* 0DB22C 7F0A66FC 00000000 */ nop +/* 0DB230 7F0A6700 10400006 */ beqz $v0, .L7F0A671C +/* 0DB234 7F0A6704 240E0002 */ li $t6, 2 +.L7F0A6708: +/* 0DB238 7F0A6708 3C018004 */ lui $at, %hi(D_800409A0) +/* 0DB23C 7F0A670C 0FC2941F */ jal set_D_80040AE0_0 +/* 0DB240 7F0A6710 AC2E09A0 */ sw $t6, %lo(D_800409A0)($at) +/* 0DB244 7F0A6714 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DB248 7F0A6718 00000000 */ nop +.L7F0A671C: +/* 0DB24C 7F0A671C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6720: +/* 0DB250 7F0A6720 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DB254 7F0A6724 03E00008 */ jr $ra +/* 0DB258 7F0A6728 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A672C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A672C +/* 0DB25C 7F0A672C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DB260 7F0A6730 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DB264 7F0A6734 00002025 */ move $a0, $zero +/* 0DB268 7F0A6738 0C0030EB */ jal get_controller_buttons_pressed +/* 0DB26C 7F0A673C 24050808 */ li $a1, 2056 +/* 0DB270 7F0A6740 54400006 */ bnezl $v0, .L7F0A675C +/* 0DB274 7F0A6744 240E0001 */ li $t6, 1 +/* 0DB278 7F0A6748 0FC29422 */ jal sub_GAME_7F0A5088 +/* 0DB27C 7F0A674C 00000000 */ nop +/* 0DB280 7F0A6750 10400009 */ beqz $v0, .L7F0A6778 +/* 0DB284 7F0A6754 00002025 */ move $a0, $zero +/* 0DB288 7F0A6758 240E0001 */ li $t6, 1 +.L7F0A675C: +/* 0DB28C 7F0A675C 3C018004 */ lui $at, %hi(D_800409A0) +/* 0DB290 7F0A6760 0FC2941F */ jal set_D_80040AE0_0 +/* 0DB294 7F0A6764 AC2E09A0 */ sw $t6, %lo(D_800409A0)($at) +/* 0DB298 7F0A6768 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DB29C 7F0A676C 00000000 */ nop +/* 0DB2A0 7F0A6770 1000000F */ b .L7F0A67B0 +/* 0DB2A4 7F0A6774 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6778: +/* 0DB2A8 7F0A6778 0C0030EB */ jal get_controller_buttons_pressed +/* 0DB2AC 7F0A677C 24050404 */ li $a1, 1028 +/* 0DB2B0 7F0A6780 54400005 */ bnezl $v0, .L7F0A6798 +/* 0DB2B4 7F0A6784 240F0003 */ li $t7, 3 +/* 0DB2B8 7F0A6788 0FC29431 */ jal sub_GAME_7F0A50C4 +/* 0DB2BC 7F0A678C 00000000 */ nop +/* 0DB2C0 7F0A6790 10400006 */ beqz $v0, .L7F0A67AC +/* 0DB2C4 7F0A6794 240F0003 */ li $t7, 3 +.L7F0A6798: +/* 0DB2C8 7F0A6798 3C018004 */ lui $at, %hi(D_800409A0) +/* 0DB2CC 7F0A679C 0FC2941F */ jal set_D_80040AE0_0 +/* 0DB2D0 7F0A67A0 AC2F09A0 */ sw $t7, %lo(D_800409A0)($at) +/* 0DB2D4 7F0A67A4 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DB2D8 7F0A67A8 00000000 */ nop +.L7F0A67AC: +/* 0DB2DC 7F0A67AC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A67B0: +/* 0DB2E0 7F0A67B0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DB2E4 7F0A67B4 03E00008 */ jr $ra +/* 0DB2E8 7F0A67B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A67BC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A67BC +/* 0DB2EC 7F0A67BC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DB2F0 7F0A67C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DB2F4 7F0A67C4 00002025 */ move $a0, $zero +/* 0DB2F8 7F0A67C8 0C0030EB */ jal get_controller_buttons_pressed +/* 0DB2FC 7F0A67CC 24050808 */ li $a1, 2056 +/* 0DB300 7F0A67D0 54400006 */ bnezl $v0, .L7F0A67EC +/* 0DB304 7F0A67D4 240E0002 */ li $t6, 2 +/* 0DB308 7F0A67D8 0FC29422 */ jal sub_GAME_7F0A5088 +/* 0DB30C 7F0A67DC 00000000 */ nop +/* 0DB310 7F0A67E0 10400009 */ beqz $v0, .L7F0A6808 +/* 0DB314 7F0A67E4 00002025 */ move $a0, $zero +/* 0DB318 7F0A67E8 240E0002 */ li $t6, 2 +.L7F0A67EC: +/* 0DB31C 7F0A67EC 3C018004 */ lui $at, %hi(D_800409A0) +/* 0DB320 7F0A67F0 0FC2941F */ jal set_D_80040AE0_0 +/* 0DB324 7F0A67F4 AC2E09A0 */ sw $t6, %lo(D_800409A0)($at) +/* 0DB328 7F0A67F8 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DB32C 7F0A67FC 00000000 */ nop +/* 0DB330 7F0A6800 1000000F */ b .L7F0A6840 +/* 0DB334 7F0A6804 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6808: +/* 0DB338 7F0A6808 0C0030EB */ jal get_controller_buttons_pressed +/* 0DB33C 7F0A680C 24050404 */ li $a1, 1028 +/* 0DB340 7F0A6810 54400005 */ bnezl $v0, .L7F0A6828 +/* 0DB344 7F0A6814 240F0004 */ li $t7, 4 +/* 0DB348 7F0A6818 0FC29431 */ jal sub_GAME_7F0A50C4 +/* 0DB34C 7F0A681C 00000000 */ nop +/* 0DB350 7F0A6820 10400006 */ beqz $v0, .L7F0A683C +/* 0DB354 7F0A6824 240F0004 */ li $t7, 4 +.L7F0A6828: +/* 0DB358 7F0A6828 3C018004 */ lui $at, %hi(D_800409A0) +/* 0DB35C 7F0A682C 0FC2941F */ jal set_D_80040AE0_0 +/* 0DB360 7F0A6830 AC2F09A0 */ sw $t7, %lo(D_800409A0)($at) +/* 0DB364 7F0A6834 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DB368 7F0A6838 00000000 */ nop +.L7F0A683C: +/* 0DB36C 7F0A683C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6840: +/* 0DB370 7F0A6840 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DB374 7F0A6844 03E00008 */ jr $ra +/* 0DB378 7F0A6848 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A684C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A684C +/* 0DB37C 7F0A684C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DB380 7F0A6850 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DB384 7F0A6854 00002025 */ move $a0, $zero +/* 0DB388 7F0A6858 0C0030EB */ jal get_controller_buttons_pressed +/* 0DB38C 7F0A685C 24050808 */ li $a1, 2056 +/* 0DB390 7F0A6860 54400006 */ bnezl $v0, .L7F0A687C +/* 0DB394 7F0A6864 240E0003 */ li $t6, 3 +/* 0DB398 7F0A6868 0FC29422 */ jal sub_GAME_7F0A5088 +/* 0DB39C 7F0A686C 00000000 */ nop +/* 0DB3A0 7F0A6870 10400009 */ beqz $v0, .L7F0A6898 +/* 0DB3A4 7F0A6874 00002025 */ move $a0, $zero +/* 0DB3A8 7F0A6878 240E0003 */ li $t6, 3 +.L7F0A687C: +/* 0DB3AC 7F0A687C 3C018004 */ lui $at, %hi(D_800409A0) +/* 0DB3B0 7F0A6880 0FC2941F */ jal set_D_80040AE0_0 +/* 0DB3B4 7F0A6884 AC2E09A0 */ sw $t6, %lo(D_800409A0)($at) +/* 0DB3B8 7F0A6888 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DB3BC 7F0A688C 00000000 */ nop +/* 0DB3C0 7F0A6890 1000000E */ b .L7F0A68CC +/* 0DB3C4 7F0A6894 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6898: +/* 0DB3C8 7F0A6898 0C0030EB */ jal get_controller_buttons_pressed +/* 0DB3CC 7F0A689C 24050404 */ li $a1, 1028 +/* 0DB3D0 7F0A68A0 14400004 */ bnez $v0, .L7F0A68B4 +/* 0DB3D4 7F0A68A4 00000000 */ nop +/* 0DB3D8 7F0A68A8 0FC29431 */ jal sub_GAME_7F0A50C4 +/* 0DB3DC 7F0A68AC 00000000 */ nop +/* 0DB3E0 7F0A68B0 10400005 */ beqz $v0, .L7F0A68C8 +.L7F0A68B4: +/* 0DB3E4 7F0A68B4 3C018004 */ lui $at, %hi(D_800409A0) +/* 0DB3E8 7F0A68B8 0FC2941F */ jal set_D_80040AE0_0 +/* 0DB3EC 7F0A68BC AC2009A0 */ sw $zero, %lo(D_800409A0)($at) +/* 0DB3F0 7F0A68C0 0FC293D1 */ jal sub_GAME_7F0A4F44 +/* 0DB3F4 7F0A68C4 00000000 */ nop +.L7F0A68C8: +/* 0DB3F8 7F0A68C8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A68CC: +/* 0DB3FC 7F0A68CC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DB400 7F0A68D0 03E00008 */ jr $ra +/* 0DB404 7F0A68D4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A68D8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800584AC +.word 0x48507100 /*213444.0*/ +.text +glabel sub_GAME_7F0A68D8 +/* 0DB408 7F0A68D8 3C098004 */ lui $t1, %hi(D_80040B40) +/* 0DB40C 7F0A68DC 25290B40 */ addiu $t1, %lo(D_80040B40) # addiu $t1, $t1, 0xb40 +/* 0DB410 7F0A68E0 8D220000 */ lw $v0, ($t1) +/* 0DB414 7F0A68E4 3C018006 */ lui $at, %hi(D_800584AC) +/* 0DB418 7F0A68E8 C42484AC */ lwc1 $f4, %lo(D_800584AC)($at) +/* 0DB41C 7F0A68EC 00420019 */ multu $v0, $v0 +/* 0DB420 7F0A68F0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DB424 7F0A68F4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DB428 7F0A68F8 AFA40018 */ sw $a0, 0x18($sp) +/* 0DB42C 7F0A68FC 00007012 */ mflo $t6 +/* 0DB430 7F0A6900 448E3000 */ mtc1 $t6, $f6 +/* 0DB434 7F0A6904 00000000 */ nop +/* 0DB438 7F0A6908 46803220 */ cvt.s.w $f8, $f6 +/* 0DB43C 7F0A690C 0C007DF8 */ jal sqrtf +/* 0DB440 7F0A6910 46082301 */ sub.s $f12, $f4, $f8 +/* 0DB444 7F0A6914 4600028D */ trunc.w.s $f10, $f0 +/* 0DB448 7F0A6918 3C098004 */ lui $t1, %hi(D_80040B40) +/* 0DB44C 7F0A691C 3C078004 */ lui $a3, %hi(D_80040B08) +/* 0DB450 7F0A6920 25290B40 */ addiu $t1, %lo(D_80040B40) # addiu $t1, $t1, 0xb40 +/* 0DB454 7F0A6924 44055000 */ mfc1 $a1, $f10 +/* 0DB458 7F0A6928 8FA40018 */ lw $a0, 0x18($sp) +/* 0DB45C 7F0A692C 24E70B08 */ addiu $a3, %lo(D_80040B08) # addiu $a3, $a3, 0xb08 +/* 0DB460 7F0A6930 00001825 */ move $v1, $zero +/* 0DB464 7F0A6934 240A0008 */ li $t2, 8 +/* 0DB468 7F0A6938 24080003 */ li $t0, 3 +/* 0DB46C 7F0A693C 240600A0 */ li $a2, 160 +/* 0DB470 7F0A6940 2402FFFF */ li $v0, -1 +.L7F0A6944: +/* 0DB474 7F0A6944 00A20019 */ multu $a1, $v0 +/* 0DB478 7F0A6948 A4800002 */ sh $zero, 2($a0) +/* 0DB47C 7F0A694C 24420002 */ addiu $v0, $v0, 2 +/* 0DB480 7F0A6950 24840010 */ addiu $a0, $a0, 0x10 +/* 0DB484 7F0A6954 0000C012 */ mflo $t8 +/* 0DB488 7F0A6958 A498FFF0 */ sh $t8, -0x10($a0) +/* 0DB48C 7F0A695C 8D390000 */ lw $t9, ($t1) +/* 0DB490 7F0A6960 A480FFF6 */ sh $zero, -0xa($a0) +/* 0DB494 7F0A6964 A480FFF8 */ sh $zero, -8($a0) +/* 0DB498 7F0A6968 00795821 */ addu $t3, $v1, $t9 +/* 0DB49C 7F0A696C A48BFFF4 */ sh $t3, -0xc($a0) +/* 0DB4A0 7F0A6970 A480FFFA */ sh $zero, -6($a0) +/* 0DB4A4 7F0A6974 A080FFFC */ sb $zero, -4($a0) +/* 0DB4A8 7F0A6978 A086FFFD */ sb $a2, -3($a0) +/* 0DB4AC 7F0A697C A080FFFE */ sb $zero, -2($a0) +/* 0DB4B0 7F0A6980 8CEC0000 */ lw $t4, ($a3) +/* 0DB4B4 7F0A6984 1448FFEF */ bne $v0, $t0, .L7F0A6944 +/* 0DB4B8 7F0A6988 A08CFFFF */ sb $t4, -1($a0) +/* 0DB4BC 7F0A698C 24630004 */ addiu $v1, $v1, 4 +/* 0DB4C0 7F0A6990 546AFFEC */ bnel $v1, $t2, .L7F0A6944 +/* 0DB4C4 7F0A6994 2402FFFF */ li $v0, -1 +/* 0DB4C8 7F0A6998 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DB4CC 7F0A699C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DB4D0 7F0A69A0 03E00008 */ jr $ra +/* 0DB4D4 7F0A69A4 00000000 */ nop +) +#endif + + + +void sub_GAME_7F0A69A8(void) +{ + if (get_attached_controller_count() < 2) + { + D_800409D8 = 4; + } + else + { + D_800409D8 = 8; + } + sub_GAME_7F0A4F44(); + watch_screen_index = 0; + D_800409A0 = 4; + D_800409C8 = 0.999f; + D_800409CC = 0.9999f; + calculate_equip_cur_item(); +} + + +#ifdef NONMATCHING +f32 sub_GAME_7F0A6A2C(f32 arg0) { + f32 phi_f12; + + if (3.1415927f < arg0) { + return arg0 - 6.2831855f; + } + + phi_f12 = arg0; + + if (-3.1415927f > arg0) { + return arg0 + 6.2831855f; + } + return phi_f12; +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_800584B8 +.word 0x40490fdb /*3.1415927*/ +glabel D_800584BC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800584C0 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_800584C4 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F0A6A2C +/* 0DB55C 7F0A6A2C 3C018006 */ lui $at, %hi(D_800584B8) +/* 0DB560 7F0A6A30 C42484B8 */ lwc1 $f4, %lo(D_800584B8)($at) +/* 0DB564 7F0A6A34 3C018006 */ lui $at, %hi(D_800584C0) +/* 0DB568 7F0A6A38 460C203C */ c.lt.s $f4, $f12 +/* 0DB56C 7F0A6A3C 00000000 */ nop +/* 0DB570 7F0A6A40 45000005 */ bc1f .L7F0A6A58 +/* 0DB574 7F0A6A44 00000000 */ nop +/* 0DB578 7F0A6A48 3C018006 */ lui $at, %hi(D_800584BC) +/* 0DB57C 7F0A6A4C C42684BC */ lwc1 $f6, %lo(D_800584BC)($at) +/* 0DB580 7F0A6A50 03E00008 */ jr $ra +/* 0DB584 7F0A6A54 46066001 */ sub.s $f0, $f12, $f6 + +.L7F0A6A58: +/* 0DB588 7F0A6A58 C42884C0 */ lwc1 $f8, %lo(D_800584C0)($at) +/* 0DB58C 7F0A6A5C 3C018006 */ lui $at, %hi(D_800584C4) +/* 0DB590 7F0A6A60 4608603C */ c.lt.s $f12, $f8 +/* 0DB594 7F0A6A64 00000000 */ nop +/* 0DB598 7F0A6A68 45000003 */ bc1f .L7F0A6A78 +/* 0DB59C 7F0A6A6C 00000000 */ nop +/* 0DB5A0 7F0A6A70 C42A84C4 */ lwc1 $f10, %lo(D_800584C4)($at) +/* 0DB5A4 7F0A6A74 460A6300 */ add.s $f12, $f12, $f10 +.L7F0A6A78: +/* 0DB5A8 7F0A6A78 03E00008 */ jr $ra +/* 0DB5AC 7F0A6A7C 46006006 */ mov.s $f0, $f12 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A6A80(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_800584C8 +.word 0x40c90fdb /*6.2831855*/ + +/*D:800584CC*/ +glabel jpt_800584CC +.word .L7F0A6E04 +.word .L7F0A6ED0 +.word .L7F0A6E14 +.word .L7F0A6E60 +.word .L7F0A6EC0 + +/*D:800584E0*/ +glabel jpt_800584E0 +.word .L7F0A6E88 +.word .L7F0A6E98 +.word .L7F0A6EA8 +.word .L7F0A6EA8 +.word .L7F0A6EA8 +.word .L7F0A6EA8 +.word .L7F0A6EA8 +.word .L7F0A6EA8 +.word .L7F0A6EA8 +.word .L7F0A6EA8 + +.text +glabel sub_GAME_7F0A6A80 +/* 0DB5B0 7F0A6A80 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0DB5B4 7F0A6A84 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DB5B8 7F0A6A88 00002025 */ move $a0, $zero +/* 0DB5BC 7F0A6A8C 0C0030EB */ jal get_controller_buttons_pressed +/* 0DB5C0 7F0A6A90 24051000 */ li $a1, 4096 +/* 0DB5C4 7F0A6A94 10400003 */ beqz $v0, .L7F0A6AA4 +/* 0DB5C8 7F0A6A98 00000000 */ nop +/* 0DB5CC 7F0A6A9C 0FC1FE18 */ jal set_open_close_solo_watch_menu_to1 +/* 0DB5D0 7F0A6AA0 00000000 */ nop +.L7F0A6AA4: +/* 0DB5D4 7F0A6AA4 3C0E8004 */ lui $t6, %hi(controlstick_lr_enabled) +/* 0DB5D8 7F0A6AA8 8DCE0ADC */ lw $t6, %lo(controlstick_lr_enabled)($t6) +/* 0DB5DC 7F0A6AAC 15C00027 */ bnez $t6, .L7F0A6B4C +/* 0DB5E0 7F0A6AB0 00000000 */ nop +/* 0DB5E4 7F0A6AB4 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DB5E8 7F0A6AB8 00002025 */ move $a0, $zero +/* 0DB5EC 7F0A6ABC 2841FFF6 */ slti $at, $v0, -0xa +/* 0DB5F0 7F0A6AC0 14200009 */ bnez $at, .L7F0A6AE8 +/* 0DB5F4 7F0A6AC4 00000000 */ nop +/* 0DB5F8 7F0A6AC8 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DB5FC 7F0A6ACC 00002025 */ move $a0, $zero +/* 0DB600 7F0A6AD0 2841000B */ slti $at, $v0, 0xb +/* 0DB604 7F0A6AD4 10200004 */ beqz $at, .L7F0A6AE8 +/* 0DB608 7F0A6AD8 240F0001 */ li $t7, 1 +/* 0DB60C 7F0A6ADC 3C018004 */ lui $at, %hi(controlstick_lr_enabled) +/* 0DB610 7F0A6AE0 1000001A */ b .L7F0A6B4C +/* 0DB614 7F0A6AE4 AC2F0ADC */ sw $t7, %lo(controlstick_lr_enabled)($at) +.L7F0A6AE8: +/* 0DB618 7F0A6AE8 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DB61C 7F0A6AEC 00002025 */ move $a0, $zero +/* 0DB620 7F0A6AF0 2841000B */ slti $at, $v0, 0xb +/* 0DB624 7F0A6AF4 10200009 */ beqz $at, .L7F0A6B1C +/* 0DB628 7F0A6AF8 00000000 */ nop +/* 0DB62C 7F0A6AFC 0C00305D */ jal controller_7000C174 +/* 0DB630 7F0A6B00 00002025 */ move $a0, $zero +/* 0DB634 7F0A6B04 2841000B */ slti $at, $v0, 0xb +/* 0DB638 7F0A6B08 14200004 */ bnez $at, .L7F0A6B1C +/* 0DB63C 7F0A6B0C 24180001 */ li $t8, 1 +/* 0DB640 7F0A6B10 3C018004 */ lui $at, %hi(controlstick_lr_enabled) +/* 0DB644 7F0A6B14 1000000D */ b .L7F0A6B4C +/* 0DB648 7F0A6B18 AC380ADC */ sw $t8, %lo(controlstick_lr_enabled)($at) +.L7F0A6B1C: +/* 0DB64C 7F0A6B1C 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DB650 7F0A6B20 00002025 */ move $a0, $zero +/* 0DB654 7F0A6B24 2841FFF6 */ slti $at, $v0, -0xa +/* 0DB658 7F0A6B28 14200008 */ bnez $at, .L7F0A6B4C +/* 0DB65C 7F0A6B2C 00000000 */ nop +/* 0DB660 7F0A6B30 0C00305D */ jal controller_7000C174 +/* 0DB664 7F0A6B34 00002025 */ move $a0, $zero +/* 0DB668 7F0A6B38 2841FFF6 */ slti $at, $v0, -0xa +/* 0DB66C 7F0A6B3C 10200003 */ beqz $at, .L7F0A6B4C +/* 0DB670 7F0A6B40 24190001 */ li $t9, 1 +/* 0DB674 7F0A6B44 3C018004 */ lui $at, %hi(controlstick_lr_enabled) +/* 0DB678 7F0A6B48 AC390ADC */ sw $t9, %lo(controlstick_lr_enabled)($at) +.L7F0A6B4C: +/* 0DB67C 7F0A6B4C 3C088004 */ lui $t0, %hi(D_80040AE0) +/* 0DB680 7F0A6B50 8D080AE0 */ lw $t0, %lo(D_80040AE0)($t0) +/* 0DB684 7F0A6B54 15000027 */ bnez $t0, .L7F0A6BF4 +/* 0DB688 7F0A6B58 00000000 */ nop +/* 0DB68C 7F0A6B5C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DB690 7F0A6B60 00002025 */ move $a0, $zero +/* 0DB694 7F0A6B64 2841FFF6 */ slti $at, $v0, -0xa +/* 0DB698 7F0A6B68 14200009 */ bnez $at, .L7F0A6B90 +/* 0DB69C 7F0A6B6C 00000000 */ nop +/* 0DB6A0 7F0A6B70 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DB6A4 7F0A6B74 00002025 */ move $a0, $zero +/* 0DB6A8 7F0A6B78 2841000B */ slti $at, $v0, 0xb +/* 0DB6AC 7F0A6B7C 10200004 */ beqz $at, .L7F0A6B90 +/* 0DB6B0 7F0A6B80 24090001 */ li $t1, 1 +/* 0DB6B4 7F0A6B84 3C018004 */ lui $at, %hi(D_80040AE0) +/* 0DB6B8 7F0A6B88 1000001A */ b .L7F0A6BF4 +/* 0DB6BC 7F0A6B8C AC290AE0 */ sw $t1, %lo(D_80040AE0)($at) +.L7F0A6B90: +/* 0DB6C0 7F0A6B90 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DB6C4 7F0A6B94 00002025 */ move $a0, $zero +/* 0DB6C8 7F0A6B98 2841000B */ slti $at, $v0, 0xb +/* 0DB6CC 7F0A6B9C 10200009 */ beqz $at, .L7F0A6BC4 +/* 0DB6D0 7F0A6BA0 00000000 */ nop +/* 0DB6D4 7F0A6BA4 0C0030A1 */ jal controller_7000C284 +/* 0DB6D8 7F0A6BA8 00002025 */ move $a0, $zero +/* 0DB6DC 7F0A6BAC 2841000B */ slti $at, $v0, 0xb +/* 0DB6E0 7F0A6BB0 14200004 */ bnez $at, .L7F0A6BC4 +/* 0DB6E4 7F0A6BB4 240A0001 */ li $t2, 1 +/* 0DB6E8 7F0A6BB8 3C018004 */ lui $at, %hi(D_80040AE0) +/* 0DB6EC 7F0A6BBC 1000000D */ b .L7F0A6BF4 +/* 0DB6F0 7F0A6BC0 AC2A0AE0 */ sw $t2, %lo(D_80040AE0)($at) +.L7F0A6BC4: +/* 0DB6F4 7F0A6BC4 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DB6F8 7F0A6BC8 00002025 */ move $a0, $zero +/* 0DB6FC 7F0A6BCC 2841FFF6 */ slti $at, $v0, -0xa +/* 0DB700 7F0A6BD0 14200008 */ bnez $at, .L7F0A6BF4 +/* 0DB704 7F0A6BD4 00000000 */ nop +/* 0DB708 7F0A6BD8 0C0030A1 */ jal controller_7000C284 +/* 0DB70C 7F0A6BDC 00002025 */ move $a0, $zero +/* 0DB710 7F0A6BE0 2841FFF6 */ slti $at, $v0, -0xa +/* 0DB714 7F0A6BE4 10200003 */ beqz $at, .L7F0A6BF4 +/* 0DB718 7F0A6BE8 240B0001 */ li $t3, 1 +/* 0DB71C 7F0A6BEC 3C018004 */ lui $at, %hi(D_80040AE0) +/* 0DB720 7F0A6BF0 AC2B0AE0 */ sw $t3, %lo(D_80040AE0)($at) +.L7F0A6BF4: +/* 0DB724 7F0A6BF4 3C038004 */ lui $v1, %hi(D_80040AF8) +/* 0DB728 7F0A6BF8 24630AF8 */ addiu $v1, %lo(D_80040AF8) # addiu $v1, $v1, 0xaf8 +/* 0DB72C 7F0A6BFC 8C620000 */ lw $v0, ($v1) +/* 0DB730 7F0A6C00 04410007 */ bgez $v0, .L7F0A6C20 +/* 0DB734 7F0A6C04 244EFFFF */ addiu $t6, $v0, -1 +/* 0DB738 7F0A6C08 3C048004 */ lui $a0, %hi(D_80040AF4) +/* 0DB73C 7F0A6C0C 24840AF4 */ addiu $a0, %lo(D_80040AF4) # addiu $a0, $a0, 0xaf4 +/* 0DB740 7F0A6C10 8C8C0000 */ lw $t4, ($a0) +/* 0DB744 7F0A6C14 3C01FFF0 */ lui $at, 0xfff0 +/* 0DB748 7F0A6C18 01816821 */ addu $t5, $t4, $at +/* 0DB74C 7F0A6C1C AC8D0000 */ sw $t5, ($a0) +.L7F0A6C20: +/* 0DB750 7F0A6C20 3C048004 */ lui $a0, %hi(D_80040AF4) +/* 0DB754 7F0A6C24 24840AF4 */ addiu $a0, %lo(D_80040AF4) # addiu $a0, $a0, 0xaf4 +/* 0DB758 7F0A6C28 8C8F0000 */ lw $t7, ($a0) +/* 0DB75C 7F0A6C2C 3C01005F */ lui $at, (0x005F00A1 >> 16) # lui $at, 0x5f +/* 0DB760 7F0A6C30 342100A1 */ ori $at, (0x005F00A1 & 0xFFFF) # ori $at, $at, 0xa1 +/* 0DB764 7F0A6C34 01E1082B */ sltu $at, $t7, $at +/* 0DB768 7F0A6C38 10200006 */ beqz $at, .L7F0A6C54 +/* 0DB76C 7F0A6C3C AC6E0000 */ sw $t6, ($v1) +/* 0DB770 7F0A6C40 3C1800FF */ lui $t8, (0x00FF00A0 >> 16) # lui $t8, 0xff +/* 0DB774 7F0A6C44 371800A0 */ ori $t8, (0x00FF00A0 & 0xFFFF) # ori $t8, $t8, 0xa0 +/* 0DB778 7F0A6C48 2419000F */ li $t9, 15 +/* 0DB77C 7F0A6C4C AC980000 */ sw $t8, ($a0) +/* 0DB780 7F0A6C50 AC790000 */ sw $t9, ($v1) +.L7F0A6C54: +/* 0DB784 7F0A6C54 3C038004 */ lui $v1, %hi(D_80040B00) +/* 0DB788 7F0A6C58 24630B00 */ addiu $v1, %lo(D_80040B00) # addiu $v1, $v1, 0xb00 +/* 0DB78C 7F0A6C5C 8C620000 */ lw $v0, ($v1) +/* 0DB790 7F0A6C60 3C048004 */ lui $a0, %hi(D_80040AFC) +/* 0DB794 7F0A6C64 24840AFC */ addiu $a0, %lo(D_80040AFC) # addiu $a0, $a0, 0xafc +/* 0DB798 7F0A6C68 04410004 */ bgez $v0, .L7F0A6C7C +/* 0DB79C 7F0A6C6C 3C0E8005 */ lui $t6, %hi(D_80048498) +/* 0DB7A0 7F0A6C70 8C880000 */ lw $t0, ($a0) +/* 0DB7A4 7F0A6C74 2509FFF0 */ addiu $t1, $t0, -0x10 +/* 0DB7A8 7F0A6C78 AC890000 */ sw $t1, ($a0) +.L7F0A6C7C: +/* 0DB7AC 7F0A6C7C 3C048004 */ lui $a0, %hi(D_80040AFC) +/* 0DB7B0 7F0A6C80 24840AFC */ addiu $a0, %lo(D_80040AFC) # addiu $a0, $a0, 0xafc +/* 0DB7B4 7F0A6C84 8C8B0000 */ lw $t3, ($a0) +/* 0DB7B8 7F0A6C88 244AFFFF */ addiu $t2, $v0, -1 +/* 0DB7BC 7F0A6C8C AC6A0000 */ sw $t2, ($v1) +/* 0DB7C0 7F0A6C90 2D610060 */ sltiu $at, $t3, 0x60 +/* 0DB7C4 7F0A6C94 10200004 */ beqz $at, .L7F0A6CA8 +/* 0DB7C8 7F0A6C98 240C00FF */ li $t4, 255 +/* 0DB7CC 7F0A6C9C 240D000F */ li $t5, 15 +/* 0DB7D0 7F0A6CA0 AC8C0000 */ sw $t4, ($a0) +/* 0DB7D4 7F0A6CA4 AC6D0000 */ sw $t5, ($v1) +.L7F0A6CA8: +/* 0DB7D8 7F0A6CA8 8DCE8498 */ lw $t6, %lo(D_80048498)($t6) +/* 0DB7DC 7F0A6CAC 3C018004 */ lui $at, %hi(D_80040B1C) +/* 0DB7E0 7F0A6CB0 C4240B1C */ lwc1 $f4, %lo(D_80040B1C)($at) +/* 0DB7E4 7F0A6CB4 448E3000 */ mtc1 $t6, $f6 +/* 0DB7E8 7F0A6CB8 3C018006 */ lui $at, %hi(D_800584C8) +/* 0DB7EC 7F0A6CBC C43084C8 */ lwc1 $f16, %lo(D_800584C8)($at) +/* 0DB7F0 7F0A6CC0 46803220 */ cvt.s.w $f8, $f6 +/* 0DB7F4 7F0A6CC4 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DB7F8 7F0A6CC8 44813000 */ mtc1 $at, $f6 +/* 0DB7FC 7F0A6CCC 3C028004 */ lui $v0, %hi(D_80040B14) +/* 0DB800 7F0A6CD0 24420B14 */ addiu $v0, %lo(D_80040B14) # addiu $v0, $v0, 0xb14 +/* 0DB804 7F0A6CD4 46082282 */ mul.s $f10, $f4, $f8 +/* 0DB808 7F0A6CD8 C4480000 */ lwc1 $f8, ($v0) +/* 0DB80C 7F0A6CDC 46105482 */ mul.s $f18, $f10, $f16 +/* 0DB810 7F0A6CE0 46069103 */ div.s $f4, $f18, $f6 +/* 0DB814 7F0A6CE4 46044280 */ add.s $f10, $f8, $f4 +/* 0DB818 7F0A6CE8 E44A0000 */ swc1 $f10, ($v0) +/* 0DB81C 7F0A6CEC 0FC29A8B */ jal sub_GAME_7F0A6A2C +/* 0DB820 7F0A6CF0 C44C0000 */ lwc1 $f12, ($v0) +/* 0DB824 7F0A6CF4 3C028004 */ lui $v0, %hi(D_80040B14) +/* 0DB828 7F0A6CF8 24420B14 */ addiu $v0, %lo(D_80040B14) # addiu $v0, $v0, 0xb14 +/* 0DB82C 7F0A6CFC E4400000 */ swc1 $f0, ($v0) +/* 0DB830 7F0A6D00 3C0F8004 */ lui $t7, %hi(D_80040B0C) +/* 0DB834 7F0A6D04 8DEF0B0C */ lw $t7, %lo(D_80040B0C)($t7) +/* 0DB838 7F0A6D08 000FC400 */ sll $t8, $t7, 0x10 +/* 0DB83C 7F0A6D0C 0C002914 */ jal get_random_value +/* 0DB840 7F0A6D10 AFB8001C */ sw $t8, 0x1c($sp) +/* 0DB844 7F0A6D14 8FB9001C */ lw $t9, 0x1c($sp) +/* 0DB848 7F0A6D18 0322082B */ sltu $at, $t9, $v0 +/* 0DB84C 7F0A6D1C 10200003 */ beqz $at, .L7F0A6D2C +/* 0DB850 7F0A6D20 00000000 */ nop +/* 0DB854 7F0A6D24 0FC29476 */ jal sub_GAME_7F0A51D8 +/* 0DB858 7F0A6D28 00000000 */ nop +.L7F0A6D2C: +/* 0DB85C 7F0A6D2C 3C048004 */ lui $a0, %hi(D_80040B04) +/* 0DB860 7F0A6D30 24840B04 */ addiu $a0, %lo(D_80040B04) # addiu $a0, $a0, 0xb04 +/* 0DB864 7F0A6D34 8C830000 */ lw $v1, ($a0) +/* 0DB868 7F0A6D38 286100E0 */ slti $at, $v1, 0xe0 +/* 0DB86C 7F0A6D3C 5020000A */ beql $at, $zero, .L7F0A6D68 +/* 0DB870 7F0A6D40 286100E1 */ slti $at, $v1, 0xe1 +/* 0DB874 7F0A6D44 0C002914 */ jal get_random_value +/* 0DB878 7F0A6D48 00000000 */ nop +/* 0DB87C 7F0A6D4C 3C048004 */ lui $a0, %hi(D_80040B04) +/* 0DB880 7F0A6D50 24840B04 */ addiu $a0, %lo(D_80040B04) # addiu $a0, $a0, 0xb04 +/* 0DB884 7F0A6D54 8C880000 */ lw $t0, ($a0) +/* 0DB888 7F0A6D58 00024F82 */ srl $t1, $v0, 0x1e +/* 0DB88C 7F0A6D5C 01091821 */ addu $v1, $t0, $t1 +/* 0DB890 7F0A6D60 AC830000 */ sw $v1, ($a0) +/* 0DB894 7F0A6D64 286100E1 */ slti $at, $v1, 0xe1 +.L7F0A6D68: +/* 0DB898 7F0A6D68 14200003 */ bnez $at, .L7F0A6D78 +/* 0DB89C 7F0A6D6C 24080156 */ li $t0, 342 +/* 0DB8A0 7F0A6D70 240300E0 */ li $v1, 224 +/* 0DB8A4 7F0A6D74 AC830000 */ sw $v1, ($a0) +.L7F0A6D78: +/* 0DB8A8 7F0A6D78 00036023 */ negu $t4, $v1 +/* 0DB8AC 7F0A6D7C 000C6880 */ sll $t5, $t4, 2 +/* 0DB8B0 7F0A6D80 3C048004 */ lui $a0, %hi(D_80040B40) +/* 0DB8B4 7F0A6D84 25AE0380 */ addiu $t6, $t5, 0x380 +/* 0DB8B8 7F0A6D88 3C018004 */ lui $at, %hi(D_80040B08) +/* 0DB8BC 7F0A6D8C 24840B40 */ addiu $a0, %lo(D_80040B40) # addiu $a0, $a0, 0xb40 +/* 0DB8C0 7F0A6D90 AC2E0B08 */ sw $t6, %lo(D_80040B08)($at) +/* 0DB8C4 7F0A6D94 8C8F0000 */ lw $t7, ($a0) +/* 0DB8C8 7F0A6D98 25E2FFFC */ addiu $v0, $t7, -4 +/* 0DB8CC 7F0A6D9C 28410157 */ slti $at, $v0, 0x157 +/* 0DB8D0 7F0A6DA0 14200003 */ bnez $at, .L7F0A6DB0 +/* 0DB8D4 7F0A6DA4 AC820000 */ sw $v0, ($a0) +/* 0DB8D8 7F0A6DA8 2402FEAA */ li $v0, -342 +/* 0DB8DC 7F0A6DAC AC820000 */ sw $v0, ($a0) +.L7F0A6DB0: +/* 0DB8E0 7F0A6DB0 2841FEAA */ slti $at, $v0, -0x156 +/* 0DB8E4 7F0A6DB4 10200002 */ beqz $at, .L7F0A6DC0 +/* 0DB8E8 7F0A6DB8 3C028004 */ lui $v0, %hi(D_80040B44) +/* 0DB8EC 7F0A6DBC AC880000 */ sw $t0, ($a0) +.L7F0A6DC0: +/* 0DB8F0 7F0A6DC0 24420B44 */ addiu $v0, %lo(D_80040B44) # addiu $v0, $v0, 0xb44 +/* 0DB8F4 7F0A6DC4 84490000 */ lh $t1, ($v0) +/* 0DB8F8 7F0A6DC8 3C0D8004 */ lui $t5, %hi(watch_screen_index) +/* 0DB8FC 7F0A6DCC 252A0001 */ addiu $t2, $t1, 1 +/* 0DB900 7F0A6DD0 A44A0000 */ sh $t2, ($v0) +/* 0DB904 7F0A6DD4 844B0000 */ lh $t3, ($v0) +/* 0DB908 7F0A6DD8 316C0001 */ andi $t4, $t3, 1 +/* 0DB90C 7F0A6DDC A44C0000 */ sh $t4, ($v0) +/* 0DB910 7F0A6DE0 8DAD0994 */ lw $t5, %lo(watch_screen_index)($t5) +/* 0DB914 7F0A6DE4 2DA10005 */ sltiu $at, $t5, 5 +/* 0DB918 7F0A6DE8 1020003B */ beqz $at, .L7F0A6ED8 +/* 0DB91C 7F0A6DEC 000D6880 */ sll $t5, $t5, 2 +/* 0DB920 7F0A6DF0 3C018006 */ lui $at, %hi(jpt_800584CC) +/* 0DB924 7F0A6DF4 002D0821 */ addu $at, $at, $t5 +/* 0DB928 7F0A6DF8 8C2D84CC */ lw $t5, %lo(jpt_800584CC)($at) +/* 0DB92C 7F0A6DFC 01A00008 */ jr $t5 +/* 0DB930 7F0A6E00 00000000 */ nop +.L7F0A6E04: +/* 0DB934 7F0A6E04 0FC2949B */ jal watch_screen0_navigation +/* 0DB938 7F0A6E08 00000000 */ nop +/* 0DB93C 7F0A6E0C 10000033 */ b .L7F0A6EDC +/* 0DB940 7F0A6E10 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6E14: +/* 0DB944 7F0A6E14 3C028004 */ lui $v0, %hi(D_80040998) +/* 0DB948 7F0A6E18 8C420998 */ lw $v0, %lo(D_80040998)($v0) +/* 0DB94C 7F0A6E1C 24010001 */ li $at, 1 +/* 0DB950 7F0A6E20 10400005 */ beqz $v0, .L7F0A6E38 +/* 0DB954 7F0A6E24 00000000 */ nop +/* 0DB958 7F0A6E28 10410007 */ beq $v0, $at, .L7F0A6E48 +/* 0DB95C 7F0A6E2C 00000000 */ nop +/* 0DB960 7F0A6E30 10000007 */ b .L7F0A6E50 +/* 0DB964 7F0A6E34 00000000 */ nop +.L7F0A6E38: +/* 0DB968 7F0A6E38 0FC29618 */ jal sub_GAME_7F0A5860 +/* 0DB96C 7F0A6E3C 00000000 */ nop +/* 0DB970 7F0A6E40 10000003 */ b .L7F0A6E50 +/* 0DB974 7F0A6E44 00000000 */ nop +.L7F0A6E48: +/* 0DB978 7F0A6E48 0FC29640 */ jal sub_GAME_7F0A5900 +/* 0DB97C 7F0A6E4C 00000000 */ nop +.L7F0A6E50: +/* 0DB980 7F0A6E50 0FC29571 */ jal watch_screen2_navigation +/* 0DB984 7F0A6E54 00000000 */ nop +/* 0DB988 7F0A6E58 10000020 */ b .L7F0A6EDC +/* 0DB98C 7F0A6E5C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6E60: +/* 0DB990 7F0A6E60 3C0E8004 */ lui $t6, %hi(D_8004099C) +/* 0DB994 7F0A6E64 8DCE099C */ lw $t6, %lo(D_8004099C)($t6) +/* 0DB998 7F0A6E68 2DC1000A */ sltiu $at, $t6, 0xa +/* 0DB99C 7F0A6E6C 10200010 */ beqz $at, .L7F0A6EB0 +/* 0DB9A0 7F0A6E70 000E7080 */ sll $t6, $t6, 2 +/* 0DB9A4 7F0A6E74 3C018006 */ lui $at, %hi(jpt_800584E0) +/* 0DB9A8 7F0A6E78 002E0821 */ addu $at, $at, $t6 +/* 0DB9AC 7F0A6E7C 8C2E84E0 */ lw $t6, %lo(jpt_800584E0)($at) +/* 0DB9B0 7F0A6E80 01C00008 */ jr $t6 +/* 0DB9B4 7F0A6E84 00000000 */ nop +.L7F0A6E88: +/* 0DB9B8 7F0A6E88 0FC29699 */ jal sub_GAME_7F0A5A64 +/* 0DB9BC 7F0A6E8C 00000000 */ nop +/* 0DB9C0 7F0A6E90 10000007 */ b .L7F0A6EB0 +/* 0DB9C4 7F0A6E94 00000000 */ nop +.L7F0A6E98: +/* 0DB9C8 7F0A6E98 0FC296BD */ jal sub_GAME_7F0A5AF4 +/* 0DB9CC 7F0A6E9C 00000000 */ nop +/* 0DB9D0 7F0A6EA0 10000003 */ b .L7F0A6EB0 +/* 0DB9D4 7F0A6EA4 00000000 */ nop +.L7F0A6EA8: +/* 0DB9D8 7F0A6EA8 0FC29666 */ jal sub_GAME_7F0A5998 +/* 0DB9DC 7F0A6EAC 00000000 */ nop +.L7F0A6EB0: +/* 0DB9E0 7F0A6EB0 0FC295A9 */ jal watch_screen3_navigation +/* 0DB9E4 7F0A6EB4 00000000 */ nop +/* 0DB9E8 7F0A6EB8 10000008 */ b .L7F0A6EDC +/* 0DB9EC 7F0A6EBC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6EC0: +/* 0DB9F0 7F0A6EC0 0FC295E1 */ jal watch_screen4_navigation +/* 0DB9F4 7F0A6EC4 00000000 */ nop +/* 0DB9F8 7F0A6EC8 10000004 */ b .L7F0A6EDC +/* 0DB9FC 7F0A6ECC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6ED0: +/* 0DBA00 7F0A6ED0 0FC294F6 */ jal watch_screen1_navigation +/* 0DBA04 7F0A6ED4 00000000 */ nop +.L7F0A6ED8: +/* 0DBA08 7F0A6ED8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A6EDC: +/* 0DBA0C 7F0A6EDC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0DBA10 7F0A6EE0 03E00008 */ jr $ra +/* 0DBA14 7F0A6EE4 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_800584C8 +.word 0x40c90fdb /*6.2831855*/ + +/*D:800584CC*/ +glabel jpt_800584CC +.word .Ljp7F0A6E04 +.word .Ljp7F0A6ED0 +.word .Ljp7F0A6E14 +.word .Ljp7F0A6E60 +.word .Ljp7F0A6EC0 + +/*D:800584E0*/ +glabel jpt_800584E0 +.word .Ljp7F0A6E88 +.word .Ljp7F0A6E98 +.word .Ljp7F0A6EA8 +.word .Ljp7F0A6EA8 +.word .Ljp7F0A6EA8 +.word .Ljp7F0A6EA8 +.word .Ljp7F0A6EA8 +.word .Ljp7F0A6EA8 +.word .Ljp7F0A6EA8 +.word .Ljp7F0A6EA8 + +.text +glabel sub_GAME_7F0A6A80 +/* 0DC190 7F0A7620 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0DC194 7F0A7624 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DC198 7F0A7628 00002025 */ move $a0, $zero +/* 0DC19C 7F0A762C 0C003104 */ jal get_controller_buttons_pressed +/* 0DC1A0 7F0A7630 24051000 */ li $a1, 4096 +/* 0DC1A4 7F0A7634 10400003 */ beqz $v0, .Ljp7F0A7644 +/* 0DC1A8 7F0A7638 00000000 */ nop +/* 0DC1AC 7F0A763C 0FC1FF9C */ jal set_open_close_solo_watch_menu_to1 +/* 0DC1B0 7F0A7640 00000000 */ nop +.Ljp7F0A7644: +/* 0DC1B4 7F0A7644 3C0E8004 */ lui $t6, %hi(controlstick_lr_enabled) # $t6, 0x8004 +/* 0DC1B8 7F0A7648 8DCE0B0C */ lw $t6, %lo(controlstick_lr_enabled)($t6) +/* 0DC1BC 7F0A764C 15C00027 */ bnez $t6, .Ljp7F0A76EC +/* 0DC1C0 7F0A7650 00000000 */ nop +/* 0DC1C4 7F0A7654 0C003054 */ jal get_cur_controller_horz_stick_pos +/* 0DC1C8 7F0A7658 00002025 */ move $a0, $zero +/* 0DC1CC 7F0A765C 2841FFF6 */ slti $at, $v0, -0xa +/* 0DC1D0 7F0A7660 14200009 */ bnez $at, .Ljp7F0A7688 +/* 0DC1D4 7F0A7664 00000000 */ nop +/* 0DC1D8 7F0A7668 0C003054 */ jal get_cur_controller_horz_stick_pos +/* 0DC1DC 7F0A766C 00002025 */ move $a0, $zero +/* 0DC1E0 7F0A7670 2841000B */ slti $at, $v0, 0xb +/* 0DC1E4 7F0A7674 10200004 */ beqz $at, .Ljp7F0A7688 +/* 0DC1E8 7F0A7678 240F0001 */ li $t7, 1 +/* 0DC1EC 7F0A767C 3C018004 */ lui $at, %hi(controlstick_lr_enabled) # $at, 0x8004 +/* 0DC1F0 7F0A7680 1000001A */ b .Ljp7F0A76EC +/* 0DC1F4 7F0A7684 AC2F0B0C */ sw $t7, %lo(controlstick_lr_enabled)($at) +.Ljp7F0A7688: +/* 0DC1F8 7F0A7688 0C003054 */ jal get_cur_controller_horz_stick_pos +/* 0DC1FC 7F0A768C 00002025 */ move $a0, $zero +/* 0DC200 7F0A7690 2841000B */ slti $at, $v0, 0xb +/* 0DC204 7F0A7694 10200009 */ beqz $at, .Ljp7F0A76BC +/* 0DC208 7F0A7698 00000000 */ nop +/* 0DC20C 7F0A769C 0C003076 */ jal controller_7000C174 +/* 0DC210 7F0A76A0 00002025 */ move $a0, $zero +/* 0DC214 7F0A76A4 2841000B */ slti $at, $v0, 0xb +/* 0DC218 7F0A76A8 14200004 */ bnez $at, .Ljp7F0A76BC +/* 0DC21C 7F0A76AC 24180001 */ li $t8, 1 +/* 0DC220 7F0A76B0 3C018004 */ lui $at, %hi(controlstick_lr_enabled) # $at, 0x8004 +/* 0DC224 7F0A76B4 1000000D */ b .Ljp7F0A76EC +/* 0DC228 7F0A76B8 AC380B0C */ sw $t8, %lo(controlstick_lr_enabled)($at) +.Ljp7F0A76BC: +/* 0DC22C 7F0A76BC 0C003054 */ jal get_cur_controller_horz_stick_pos +/* 0DC230 7F0A76C0 00002025 */ move $a0, $zero +/* 0DC234 7F0A76C4 2841FFF6 */ slti $at, $v0, -0xa +/* 0DC238 7F0A76C8 14200008 */ bnez $at, .Ljp7F0A76EC +/* 0DC23C 7F0A76CC 00000000 */ nop +/* 0DC240 7F0A76D0 0C003076 */ jal controller_7000C174 +/* 0DC244 7F0A76D4 00002025 */ move $a0, $zero +/* 0DC248 7F0A76D8 2841FFF6 */ slti $at, $v0, -0xa +/* 0DC24C 7F0A76DC 10200003 */ beqz $at, .Ljp7F0A76EC +/* 0DC250 7F0A76E0 24190001 */ li $t9, 1 +/* 0DC254 7F0A76E4 3C018004 */ lui $at, %hi(controlstick_lr_enabled) # $at, 0x8004 +/* 0DC258 7F0A76E8 AC390B0C */ sw $t9, %lo(controlstick_lr_enabled)($at) +.Ljp7F0A76EC: +/* 0DC25C 7F0A76EC 3C088004 */ lui $t0, %hi(D_80040AE0) # $t0, 0x8004 +/* 0DC260 7F0A76F0 8D080B10 */ lw $t0, %lo(D_80040AE0)($t0) +/* 0DC264 7F0A76F4 15000027 */ bnez $t0, .Ljp7F0A7794 +/* 0DC268 7F0A76F8 00000000 */ nop +/* 0DC26C 7F0A76FC 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 0DC270 7F0A7700 00002025 */ move $a0, $zero +/* 0DC274 7F0A7704 2841FFF6 */ slti $at, $v0, -0xa +/* 0DC278 7F0A7708 14200009 */ bnez $at, .Ljp7F0A7730 +/* 0DC27C 7F0A770C 00000000 */ nop +/* 0DC280 7F0A7710 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 0DC284 7F0A7714 00002025 */ move $a0, $zero +/* 0DC288 7F0A7718 2841000B */ slti $at, $v0, 0xb +/* 0DC28C 7F0A771C 10200004 */ beqz $at, .Ljp7F0A7730 +/* 0DC290 7F0A7720 24090001 */ li $t1, 1 +/* 0DC294 7F0A7724 3C018004 */ lui $at, %hi(D_80040AE0) # $at, 0x8004 +/* 0DC298 7F0A7728 1000001A */ b .Ljp7F0A7794 +/* 0DC29C 7F0A772C AC290B10 */ sw $t1, %lo(D_80040AE0)($at) +.Ljp7F0A7730: +/* 0DC2A0 7F0A7730 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 0DC2A4 7F0A7734 00002025 */ move $a0, $zero +/* 0DC2A8 7F0A7738 2841000B */ slti $at, $v0, 0xb +/* 0DC2AC 7F0A773C 10200009 */ beqz $at, .Ljp7F0A7764 +/* 0DC2B0 7F0A7740 00000000 */ nop +/* 0DC2B4 7F0A7744 0C0030BA */ jal controller_7000C284 +/* 0DC2B8 7F0A7748 00002025 */ move $a0, $zero +/* 0DC2BC 7F0A774C 2841000B */ slti $at, $v0, 0xb +/* 0DC2C0 7F0A7750 14200004 */ bnez $at, .Ljp7F0A7764 +/* 0DC2C4 7F0A7754 240A0001 */ li $t2, 1 +/* 0DC2C8 7F0A7758 3C018004 */ lui $at, %hi(D_80040AE0) # $at, 0x8004 +/* 0DC2CC 7F0A775C 1000000D */ b .Ljp7F0A7794 +/* 0DC2D0 7F0A7760 AC2A0B10 */ sw $t2, %lo(D_80040AE0)($at) +.Ljp7F0A7764: +/* 0DC2D4 7F0A7764 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 0DC2D8 7F0A7768 00002025 */ move $a0, $zero +/* 0DC2DC 7F0A776C 2841FFF6 */ slti $at, $v0, -0xa +/* 0DC2E0 7F0A7770 14200008 */ bnez $at, .Ljp7F0A7794 +/* 0DC2E4 7F0A7774 00000000 */ nop +/* 0DC2E8 7F0A7778 0C0030BA */ jal controller_7000C284 +/* 0DC2EC 7F0A777C 00002025 */ move $a0, $zero +/* 0DC2F0 7F0A7780 2841FFF6 */ slti $at, $v0, -0xa +/* 0DC2F4 7F0A7784 10200003 */ beqz $at, .Ljp7F0A7794 +/* 0DC2F8 7F0A7788 240B0001 */ li $t3, 1 +/* 0DC2FC 7F0A778C 3C018004 */ lui $at, %hi(D_80040AE0) # $at, 0x8004 +/* 0DC300 7F0A7790 AC2B0B10 */ sw $t3, %lo(D_80040AE0)($at) +.Ljp7F0A7794: +/* 0DC304 7F0A7794 3C038004 */ lui $v1, %hi(D_80040AF8) # $v1, 0x8004 +/* 0DC308 7F0A7798 24630B28 */ addiu $v1, %lo(D_80040AF8) # addiu $v1, $v1, 0xb28 +/* 0DC30C 7F0A779C 8C620000 */ lw $v0, ($v1) +/* 0DC310 7F0A77A0 04410007 */ bgez $v0, .Ljp7F0A77C0 +/* 0DC314 7F0A77A4 244EFFFF */ addiu $t6, $v0, -1 +/* 0DC318 7F0A77A8 3C048004 */ lui $a0, %hi(D_80040AF4) # $a0, 0x8004 +/* 0DC31C 7F0A77AC 24840B24 */ addiu $a0, %lo(D_80040AF4) # addiu $a0, $a0, 0xb24 +/* 0DC320 7F0A77B0 8C8C0000 */ lw $t4, ($a0) +/* 0DC324 7F0A77B4 3C01FFF0 */ lui $at, 0xfff0 +/* 0DC328 7F0A77B8 01816821 */ addu $t5, $t4, $at +/* 0DC32C 7F0A77BC AC8D0000 */ sw $t5, ($a0) +.Ljp7F0A77C0: +/* 0DC330 7F0A77C0 3C048004 */ lui $a0, %hi(D_80040AF4) # $a0, 0x8004 +/* 0DC334 7F0A77C4 24840B24 */ addiu $a0, %lo(D_80040AF4) # addiu $a0, $a0, 0xb24 +/* 0DC338 7F0A77C8 8C8F0000 */ lw $t7, ($a0) +/* 0DC33C 7F0A77CC 3C01005F */ lui $at, (0x005F00A1 >> 16) # lui $at, 0x5f +/* 0DC340 7F0A77D0 342100A1 */ ori $at, (0x005F00A1 & 0xFFFF) # ori $at, $at, 0xa1 +/* 0DC344 7F0A77D4 01E1082B */ sltu $at, $t7, $at +/* 0DC348 7F0A77D8 10200006 */ beqz $at, .Ljp7F0A77F4 +/* 0DC34C 7F0A77DC AC6E0000 */ sw $t6, ($v1) +/* 0DC350 7F0A77E0 3C1800FF */ lui $t8, (0x00FF00A0 >> 16) # lui $t8, 0xff +/* 0DC354 7F0A77E4 371800A0 */ ori $t8, (0x00FF00A0 & 0xFFFF) # ori $t8, $t8, 0xa0 +/* 0DC358 7F0A77E8 2419000F */ li $t9, 15 +/* 0DC35C 7F0A77EC AC980000 */ sw $t8, ($a0) +/* 0DC360 7F0A77F0 AC790000 */ sw $t9, ($v1) +.Ljp7F0A77F4: +/* 0DC364 7F0A77F4 3C038004 */ lui $v1, %hi(D_80040B00) # $v1, 0x8004 +/* 0DC368 7F0A77F8 24630B30 */ addiu $v1, %lo(D_80040B00) # addiu $v1, $v1, 0xb30 +/* 0DC36C 7F0A77FC 8C620000 */ lw $v0, ($v1) +/* 0DC370 7F0A7800 3C048004 */ lui $a0, %hi(D_80040AFC) # $a0, 0x8004 +/* 0DC374 7F0A7804 24840B2C */ addiu $a0, %lo(D_80040AFC) # addiu $a0, $a0, 0xb2c +/* 0DC378 7F0A7808 04410004 */ bgez $v0, .Ljp7F0A781C +/* 0DC37C 7F0A780C 240C00FF */ li $t4, 255 +/* 0DC380 7F0A7810 8C880000 */ lw $t0, ($a0) +/* 0DC384 7F0A7814 2509FFF0 */ addiu $t1, $t0, -0x10 +/* 0DC388 7F0A7818 AC890000 */ sw $t1, ($a0) +.Ljp7F0A781C: +/* 0DC38C 7F0A781C 3C048004 */ lui $a0, %hi(D_80040AFC) # $a0, 0x8004 +/* 0DC390 7F0A7820 24840B2C */ addiu $a0, %lo(D_80040AFC) # addiu $a0, $a0, 0xb2c +/* 0DC394 7F0A7824 8C8B0000 */ lw $t3, ($a0) +/* 0DC398 7F0A7828 244AFFFF */ addiu $t2, $v0, -1 +/* 0DC39C 7F0A782C AC6A0000 */ sw $t2, ($v1) +/* 0DC3A0 7F0A7830 2D610060 */ sltiu $at, $t3, 0x60 +/* 0DC3A4 7F0A7834 10200003 */ beqz $at, .Ljp7F0A7844 +/* 0DC3A8 7F0A7838 240D000F */ li $t5, 15 +/* 0DC3AC 7F0A783C AC8C0000 */ sw $t4, ($a0) +/* 0DC3B0 7F0A7840 AC6D0000 */ sw $t5, ($v1) +.Ljp7F0A7844: +/* 0DC3B4 7F0A7844 3C018004 */ lui $at, %hi(D_80040B1C) # $at, 0x8004 +/* 0DC3B8 7F0A7848 C4240B4C */ lwc1 $f4, %lo(D_80040B1C)($at) +/* 0DC3BC 7F0A784C 3C018005 */ lui $at, %hi(0x800484D0) # $at, 0x8005 #JPHARDCODE FIXME +/* 0DC3C0 7F0A7850 C42684D0 */ lwc1 $f6, %lo(0x800484D0)($at) #JPHARDCODE FIXME +/* 0DC3C4 7F0A7854 3C018006 */ lui $at, %hi(D_800584C8) # $at, 0x8006 +/* 0DC3C8 7F0A7858 C42A8508 */ lwc1 $f10, %lo(D_800584C8)($at) +/* 0DC3CC 7F0A785C 46062202 */ mul.s $f8, $f4, $f6 +/* 0DC3D0 7F0A7860 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DC3D4 7F0A7864 44819000 */ mtc1 $at, $f18 +/* 0DC3D8 7F0A7868 3C028004 */ lui $v0, %hi(D_80040B14) # $v0, 0x8004 +/* 0DC3DC 7F0A786C 24420B44 */ addiu $v0, %lo(D_80040B14) # addiu $v0, $v0, 0xb44 +/* 0DC3E0 7F0A7870 C4460000 */ lwc1 $f6, ($v0) +/* 0DC3E4 7F0A7874 460A4402 */ mul.s $f16, $f8, $f10 +/* 0DC3E8 7F0A7878 46128103 */ div.s $f4, $f16, $f18 +/* 0DC3EC 7F0A787C 46043200 */ add.s $f8, $f6, $f4 +/* 0DC3F0 7F0A7880 E4480000 */ swc1 $f8, ($v0) +/* 0DC3F4 7F0A7884 0FC29D73 */ jal sub_GAME_7F0A6A2C +/* 0DC3F8 7F0A7888 C44C0000 */ lwc1 $f12, ($v0) +/* 0DC3FC 7F0A788C 3C028004 */ lui $v0, %hi(D_80040B14) # $v0, 0x8004 +/* 0DC400 7F0A7890 24420B44 */ addiu $v0, %lo(D_80040B14) # addiu $v0, $v0, 0xb44 +/* 0DC404 7F0A7894 E4400000 */ swc1 $f0, ($v0) +/* 0DC408 7F0A7898 3C0E8004 */ lui $t6, %hi(D_80040B0C) # $t6, 0x8004 +/* 0DC40C 7F0A789C 8DCE0B3C */ lw $t6, %lo(D_80040B0C)($t6) +/* 0DC410 7F0A78A0 000E7C00 */ sll $t7, $t6, 0x10 +/* 0DC414 7F0A78A4 0C002918 */ jal get_random_value +/* 0DC418 7F0A78A8 AFAF001C */ sw $t7, 0x1c($sp) +/* 0DC41C 7F0A78AC 8FB8001C */ lw $t8, 0x1c($sp) +/* 0DC420 7F0A78B0 0302082B */ sltu $at, $t8, $v0 +/* 0DC424 7F0A78B4 10200003 */ beqz $at, .Ljp7F0A78C4 +/* 0DC428 7F0A78B8 00000000 */ nop +/* 0DC42C 7F0A78BC 0FC2975E */ jal sub_GAME_7F0A51D8 +/* 0DC430 7F0A78C0 00000000 */ nop +.Ljp7F0A78C4: +/* 0DC434 7F0A78C4 3C048004 */ lui $a0, %hi(D_80040B04) # $a0, 0x8004 +/* 0DC438 7F0A78C8 24840B34 */ addiu $a0, %lo(D_80040B04) # addiu $a0, $a0, 0xb34 +/* 0DC43C 7F0A78CC 8C830000 */ lw $v1, ($a0) +/* 0DC440 7F0A78D0 286100E0 */ slti $at, $v1, 0xe0 +/* 0DC444 7F0A78D4 5020000A */ beql $at, $zero, .Ljp7F0A7900 +/* 0DC448 7F0A78D8 286100E1 */ slti $at, $v1, 0xe1 +/* 0DC44C 7F0A78DC 0C002918 */ jal get_random_value +/* 0DC450 7F0A78E0 00000000 */ nop +/* 0DC454 7F0A78E4 3C048004 */ lui $a0, %hi(D_80040B04) # $a0, 0x8004 +/* 0DC458 7F0A78E8 24840B34 */ addiu $a0, %lo(D_80040B04) # addiu $a0, $a0, 0xb34 +/* 0DC45C 7F0A78EC 8C990000 */ lw $t9, ($a0) +/* 0DC460 7F0A78F0 00024782 */ srl $t0, $v0, 0x1e +/* 0DC464 7F0A78F4 03281821 */ addu $v1, $t9, $t0 +/* 0DC468 7F0A78F8 AC830000 */ sw $v1, ($a0) +/* 0DC46C 7F0A78FC 286100E1 */ slti $at, $v1, 0xe1 +.Ljp7F0A7900: +/* 0DC470 7F0A7900 14200003 */ bnez $at, .Ljp7F0A7910 +/* 0DC474 7F0A7904 24190156 */ li $t9, 342 +/* 0DC478 7F0A7908 240300E0 */ li $v1, 224 +/* 0DC47C 7F0A790C AC830000 */ sw $v1, ($a0) +.Ljp7F0A7910: +/* 0DC480 7F0A7910 00035823 */ negu $t3, $v1 +/* 0DC484 7F0A7914 000B6080 */ sll $t4, $t3, 2 +/* 0DC488 7F0A7918 3C048004 */ lui $a0, %hi(D_80040B40) # $a0, 0x8004 +/* 0DC48C 7F0A791C 258D0380 */ addiu $t5, $t4, 0x380 +/* 0DC490 7F0A7920 3C018004 */ lui $at, %hi(D_80040B08) # $at, 0x8004 +/* 0DC494 7F0A7924 24840B70 */ addiu $a0, %lo(D_80040B40) # addiu $a0, $a0, 0xb70 +/* 0DC498 7F0A7928 AC2D0B38 */ sw $t5, %lo(D_80040B08)($at) +/* 0DC49C 7F0A792C 8C8E0000 */ lw $t6, ($a0) +/* 0DC4A0 7F0A7930 25C2FFFC */ addiu $v0, $t6, -4 +/* 0DC4A4 7F0A7934 28410157 */ slti $at, $v0, 0x157 +/* 0DC4A8 7F0A7938 14200003 */ bnez $at, .Ljp7F0A7948 +/* 0DC4AC 7F0A793C AC820000 */ sw $v0, ($a0) +/* 0DC4B0 7F0A7940 2402FEAA */ li $v0, -342 +/* 0DC4B4 7F0A7944 AC820000 */ sw $v0, ($a0) +.Ljp7F0A7948: +/* 0DC4B8 7F0A7948 2841FEAA */ slti $at, $v0, -0x156 +/* 0DC4BC 7F0A794C 10200002 */ beqz $at, .Ljp7F0A7958 +/* 0DC4C0 7F0A7950 3C028004 */ lui $v0, %hi(D_80040B44) # $v0, 0x8004 +/* 0DC4C4 7F0A7954 AC990000 */ sw $t9, ($a0) +.Ljp7F0A7958: +/* 0DC4C8 7F0A7958 24420B74 */ addiu $v0, %lo(D_80040B44) # addiu $v0, $v0, 0xb74 +/* 0DC4CC 7F0A795C 84480000 */ lh $t0, ($v0) +/* 0DC4D0 7F0A7960 3C0C8004 */ lui $t4, %hi(watch_screen_index) # $t4, 0x8004 +/* 0DC4D4 7F0A7964 25090001 */ addiu $t1, $t0, 1 +/* 0DC4D8 7F0A7968 A4490000 */ sh $t1, ($v0) +/* 0DC4DC 7F0A796C 844A0000 */ lh $t2, ($v0) +/* 0DC4E0 7F0A7970 314B0001 */ andi $t3, $t2, 1 +/* 0DC4E4 7F0A7974 A44B0000 */ sh $t3, ($v0) +/* 0DC4E8 7F0A7978 8D8C09C4 */ lw $t4, %lo(watch_screen_index)($t4) +/* 0DC4EC 7F0A797C 2D810005 */ sltiu $at, $t4, 5 +/* 0DC4F0 7F0A7980 1020003B */ beqz $at, .Ljp7F0A7A70 +/* 0DC4F4 7F0A7984 000C6080 */ sll $t4, $t4, 2 +/* 0DC4F8 7F0A7988 3C018006 */ lui $at, %hi(jpt_800584CC) +/* 0DC4FC 7F0A798C 002C0821 */ addu $at, $at, $t4 +/* 0DC500 7F0A7990 8C2C850C */ lw $t4, %lo(jpt_800584CC)($at) +/* 0DC504 7F0A7994 01800008 */ jr $t4 +/* 0DC508 7F0A7998 00000000 */ nop +.Ljp7F0A6E04: +/* 0DC50C 7F0A799C 0FC29783 */ jal watch_screen0_navigation +/* 0DC510 7F0A79A0 00000000 */ nop +/* 0DC514 7F0A79A4 10000033 */ b .Ljp7F0A7A74 +/* 0DC518 7F0A79A8 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0A6E14: +/* 0DC51C 7F0A79AC 3C028004 */ lui $v0, %hi(D_80040998) # $v0, 0x8004 +/* 0DC520 7F0A79B0 8C4209C8 */ lw $v0, %lo(D_80040998)($v0) +/* 0DC524 7F0A79B4 24010001 */ li $at, 1 +/* 0DC528 7F0A79B8 10400005 */ beqz $v0, .Ljp7F0A79D0 +/* 0DC52C 7F0A79BC 00000000 */ nop +/* 0DC530 7F0A79C0 10410007 */ beq $v0, $at, .Ljp7F0A79E0 +/* 0DC534 7F0A79C4 00000000 */ nop +/* 0DC538 7F0A79C8 10000007 */ b .Ljp7F0A79E8 +/* 0DC53C 7F0A79CC 00000000 */ nop +.Ljp7F0A79D0: +/* 0DC540 7F0A79D0 0FC29900 */ jal sub_GAME_7F0A5860 +/* 0DC544 7F0A79D4 00000000 */ nop +/* 0DC548 7F0A79D8 10000003 */ b .Ljp7F0A79E8 +/* 0DC54C 7F0A79DC 00000000 */ nop +.Ljp7F0A79E0: +/* 0DC550 7F0A79E0 0FC29928 */ jal sub_GAME_7F0A5900 +/* 0DC554 7F0A79E4 00000000 */ nop +.Ljp7F0A79E8: +/* 0DC558 7F0A79E8 0FC29859 */ jal watch_screen2_navigation +/* 0DC55C 7F0A79EC 00000000 */ nop +/* 0DC560 7F0A79F0 10000020 */ b .Ljp7F0A7A74 +/* 0DC564 7F0A79F4 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0A6E60: +/* 0DC568 7F0A79F8 3C0D8004 */ lui $t5, %hi(D_8004099C) # $t5, 0x8004 +/* 0DC56C 7F0A79FC 8DAD09CC */ lw $t5, %lo(D_8004099C)($t5) +/* 0DC570 7F0A7A00 2DA1000A */ sltiu $at, $t5, 0xa +/* 0DC574 7F0A7A04 10200010 */ beqz $at, .Ljp7F0A7A48 +/* 0DC578 7F0A7A08 000D6880 */ sll $t5, $t5, 2 +/* 0DC57C 7F0A7A0C 3C018006 */ lui $at, %hi(jpt_800584E0) +/* 0DC580 7F0A7A10 002D0821 */ addu $at, $at, $t5 +/* 0DC584 7F0A7A14 8C2D8520 */ lw $t5, %lo(jpt_800584E0)($at) +/* 0DC588 7F0A7A18 01A00008 */ jr $t5 +/* 0DC58C 7F0A7A1C 00000000 */ nop +.Ljp7F0A6E88: +/* 0DC590 7F0A7A20 0FC29981 */ jal sub_GAME_7F0A5A64 +/* 0DC594 7F0A7A24 00000000 */ nop +/* 0DC598 7F0A7A28 10000007 */ b .Ljp7F0A7A48 +/* 0DC59C 7F0A7A2C 00000000 */ nop +.Ljp7F0A6E98: +/* 0DC5A0 7F0A7A30 0FC299A5 */ jal sub_GAME_7F0A5AF4 +/* 0DC5A4 7F0A7A34 00000000 */ nop +/* 0DC5A8 7F0A7A38 10000003 */ b .Ljp7F0A7A48 +/* 0DC5AC 7F0A7A3C 00000000 */ nop +.Ljp7F0A6EA8: +/* 0DC5B0 7F0A7A40 0FC2994E */ jal sub_GAME_7F0A5998 +/* 0DC5B4 7F0A7A44 00000000 */ nop +.Ljp7F0A7A48: +/* 0DC5B8 7F0A7A48 0FC29891 */ jal watch_screen3_navigation +/* 0DC5BC 7F0A7A4C 00000000 */ nop +/* 0DC5C0 7F0A7A50 10000008 */ b .Ljp7F0A7A74 +/* 0DC5C4 7F0A7A54 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0A6EC0: +/* 0DC5C8 7F0A7A58 0FC298C9 */ jal watch_screen4_navigation +/* 0DC5CC 7F0A7A5C 00000000 */ nop +/* 0DC5D0 7F0A7A60 10000004 */ b .Ljp7F0A7A74 +/* 0DC5D4 7F0A7A64 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0A6ED0: +/* 0DC5D8 7F0A7A68 0FC297DE */ jal watch_screen1_navigation +/* 0DC5DC 7F0A7A6C 00000000 */ nop +.Ljp7F0A7A70: +/* 0DC5E0 7F0A7A70 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0A7A74: +/* 0DC5E4 7F0A7A74 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0DC5E8 7F0A7A78 03E00008 */ jr $ra +/* 0DC5EC 7F0A7A7C 00000000 */ nop +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0A6EE8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A6EE8 +/* 0DBA18 7F0A6EE8 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0DBA1C 7F0A6EEC AFBF0014 */ sw $ra, 0x14($sp) +/* 0DBA20 7F0A6EF0 00801025 */ move $v0, $a0 +/* 0DBA24 7F0A6EF4 24830008 */ addiu $v1, $a0, 8 +/* 0DBA28 7F0A6EF8 3C0EB700 */ lui $t6, 0xb700 +/* 0DBA2C 7F0A6EFC 240F2000 */ li $t7, 8192 +/* 0DBA30 7F0A6F00 AC4F0004 */ sw $t7, 4($v0) +/* 0DBA34 7F0A6F04 AC4E0000 */ sw $t6, ($v0) +/* 0DBA38 7F0A6F08 3C18BA00 */ lui $t8, (0xBA001402 >> 16) # lui $t8, 0xba00 +/* 0DBA3C 7F0A6F0C 37181402 */ ori $t8, (0xBA001402 & 0xFFFF) # ori $t8, $t8, 0x1402 +/* 0DBA40 7F0A6F10 24650008 */ addiu $a1, $v1, 8 +/* 0DBA44 7F0A6F14 AC780000 */ sw $t8, ($v1) +/* 0DBA48 7F0A6F18 AC600004 */ sw $zero, 4($v1) +/* 0DBA4C 7F0A6F1C 3C19BA00 */ lui $t9, (0xBA001701 >> 16) # lui $t9, 0xba00 +/* 0DBA50 7F0A6F20 37391701 */ ori $t9, (0xBA001701 & 0xFFFF) # ori $t9, $t9, 0x1701 +/* 0DBA54 7F0A6F24 24A60008 */ addiu $a2, $a1, 8 +/* 0DBA58 7F0A6F28 3C090080 */ lui $t1, 0x80 +/* 0DBA5C 7F0A6F2C ACA90004 */ sw $t1, 4($a1) +/* 0DBA60 7F0A6F30 ACB90000 */ sw $t9, ($a1) +/* 0DBA64 7F0A6F34 3C0AED00 */ lui $t2, 0xed00 +/* 0DBA68 7F0A6F38 ACCA0000 */ sw $t2, ($a2) +/* 0DBA6C 7F0A6F3C 24C40008 */ addiu $a0, $a2, 8 +/* 0DBA70 7F0A6F40 AFA40058 */ sw $a0, 0x58($sp) +/* 0DBA74 7F0A6F44 0C001107 */ jal get_video2_settings_txtClipW +/* 0DBA78 7F0A6F48 AFA60048 */ sw $a2, 0x48($sp) +/* 0DBA7C 7F0A6F4C 0C00110B */ jal get_video2_settings_txtClipH +/* 0DBA80 7F0A6F50 A7A2001A */ sh $v0, 0x1a($sp) +/* 0DBA84 7F0A6F54 44822000 */ mtc1 $v0, $f4 +/* 0DBA88 7F0A6F58 87AE001A */ lh $t6, 0x1a($sp) +/* 0DBA8C 7F0A6F5C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0DBA90 7F0A6F60 468021A0 */ cvt.s.w $f6, $f4 +/* 0DBA94 7F0A6F64 448E8000 */ mtc1 $t6, $f16 +/* 0DBA98 7F0A6F68 44810000 */ mtc1 $at, $f0 +/* 0DBA9C 7F0A6F6C 8FA30058 */ lw $v1, 0x58($sp) +/* 0DBAA0 7F0A6F70 8FAB0048 */ lw $t3, 0x48($sp) +/* 0DBAA4 7F0A6F74 468084A0 */ cvt.s.w $f18, $f16 +/* 0DBAA8 7F0A6F78 46003202 */ mul.s $f8, $f6, $f0 +/* 0DBAAC 7F0A6F7C 24650008 */ addiu $a1, $v1, 8 +/* 0DBAB0 7F0A6F80 3C0EBA00 */ lui $t6, (0xBA000E02 >> 16) # lui $t6, 0xba00 +/* 0DBAB4 7F0A6F84 35CE0E02 */ ori $t6, (0xBA000E02 & 0xFFFF) # ori $t6, $t6, 0xe02 +/* 0DBAB8 7F0A6F88 24A60008 */ addiu $a2, $a1, 8 +/* 0DBABC 7F0A6F8C 46009102 */ mul.s $f4, $f18, $f0 +/* 0DBAC0 7F0A6F90 3C0FBA00 */ lui $t7, (0xBA001102 >> 16) # lui $t7, 0xba00 +/* 0DBAC4 7F0A6F94 35EF1102 */ ori $t7, (0xBA001102 & 0xFFFF) # ori $t7, $t7, 0x1102 +/* 0DBAC8 7F0A6F98 24C70008 */ addiu $a3, $a2, 8 +/* 0DBACC 7F0A6F9C 24E80008 */ addiu $t0, $a3, 8 +/* 0DBAD0 7F0A6FA0 25020008 */ addiu $v0, $t0, 8 +/* 0DBAD4 7F0A6FA4 4600428D */ trunc.w.s $f10, $f8 +/* 0DBAD8 7F0A6FA8 24440008 */ addiu $a0, $v0, 8 +/* 0DBADC 7F0A6FAC 4600218D */ trunc.w.s $f6, $f4 +/* 0DBAE0 7F0A6FB0 440C5000 */ mfc1 $t4, $f10 +/* 0DBAE4 7F0A6FB4 44183000 */ mfc1 $t8, $f6 +/* 0DBAE8 7F0A6FB8 318D0FFF */ andi $t5, $t4, 0xfff +/* 0DBAEC 7F0A6FBC 3C0CBA00 */ lui $t4, (0xBA001001 >> 16) # lui $t4, 0xba00 +/* 0DBAF0 7F0A6FC0 33190FFF */ andi $t9, $t8, 0xfff +/* 0DBAF4 7F0A6FC4 00194B00 */ sll $t1, $t9, 0xc +/* 0DBAF8 7F0A6FC8 01A95025 */ or $t2, $t5, $t1 +/* 0DBAFC 7F0A6FCC AD6A0004 */ sw $t2, 4($t3) +/* 0DBB00 7F0A6FD0 358C1001 */ ori $t4, (0xBA001001 & 0xFFFF) # ori $t4, $t4, 0x1001 +/* 0DBB04 7F0A6FD4 AC6C0000 */ sw $t4, ($v1) +/* 0DBB08 7F0A6FD8 AC600004 */ sw $zero, 4($v1) +/* 0DBB0C 7F0A6FDC ACA00004 */ sw $zero, 4($a1) +/* 0DBB10 7F0A6FE0 ACAE0000 */ sw $t6, ($a1) +/* 0DBB14 7F0A6FE4 ACC00004 */ sw $zero, 4($a2) +/* 0DBB18 7F0A6FE8 ACCF0000 */ sw $t7, ($a2) +/* 0DBB1C 7F0A6FEC 3C18BA00 */ lui $t8, (0xBA001301 >> 16) # lui $t8, 0xba00 +/* 0DBB20 7F0A6FF0 37181301 */ ori $t8, (0xBA001301 & 0xFFFF) # ori $t8, $t8, 0x1301 +/* 0DBB24 7F0A6FF4 3C190008 */ lui $t9, 8 +/* 0DBB28 7F0A6FF8 ACF90004 */ sw $t9, 4($a3) +/* 0DBB2C 7F0A6FFC ACF80000 */ sw $t8, ($a3) +/* 0DBB30 7F0A7000 3C0DBA00 */ lui $t5, (0xBA000C02 >> 16) # lui $t5, 0xba00 +/* 0DBB34 7F0A7004 35AD0C02 */ ori $t5, (0xBA000C02 & 0xFFFF) # ori $t5, $t5, 0xc02 +/* 0DBB38 7F0A7008 24092000 */ li $t1, 8192 +/* 0DBB3C 7F0A700C AD090004 */ sw $t1, 4($t0) +/* 0DBB40 7F0A7010 AD0D0000 */ sw $t5, ($t0) +/* 0DBB44 7F0A7014 3C0ABA00 */ lui $t2, (0xBA000903 >> 16) # lui $t2, 0xba00 +/* 0DBB48 7F0A7018 354A0903 */ ori $t2, (0xBA000903 & 0xFFFF) # ori $t2, $t2, 0x903 +/* 0DBB4C 7F0A701C 240B0C00 */ li $t3, 3072 +/* 0DBB50 7F0A7020 AC4B0004 */ sw $t3, 4($v0) +/* 0DBB54 7F0A7024 AC4A0000 */ sw $t2, ($v0) +/* 0DBB58 7F0A7028 3C0EFFFE */ lui $t6, (0xFFFE793C >> 16) # lui $t6, 0xfffe +/* 0DBB5C 7F0A702C 3C0CFCFF */ lui $t4, (0xFCFFFFFF >> 16) # lui $t4, 0xfcff +/* 0DBB60 7F0A7030 358CFFFF */ ori $t4, (0xFCFFFFFF & 0xFFFF) # ori $t4, $t4, 0xffff +/* 0DBB64 7F0A7034 35CE793C */ ori $t6, (0xFFFE793C & 0xFFFF) # ori $t6, $t6, 0x793c +/* 0DBB68 7F0A7038 24850008 */ addiu $a1, $a0, 8 +/* 0DBB6C 7F0A703C AC8E0004 */ sw $t6, 4($a0) +/* 0DBB70 7F0A7040 AC8C0000 */ sw $t4, ($a0) +/* 0DBB74 7F0A7044 3C0FBA00 */ lui $t7, (0xBA000801 >> 16) # lui $t7, 0xba00 +/* 0DBB78 7F0A7048 35EF0801 */ ori $t7, (0xBA000801 & 0xFFFF) # ori $t7, $t7, 0x801 +/* 0DBB7C 7F0A704C 24A60008 */ addiu $a2, $a1, 8 +/* 0DBB80 7F0A7050 ACAF0000 */ sw $t7, ($a1) +/* 0DBB84 7F0A7054 ACA00004 */ sw $zero, 4($a1) +/* 0DBB88 7F0A7058 3C18B900 */ lui $t8, (0xB9000002 >> 16) # lui $t8, 0xb900 +/* 0DBB8C 7F0A705C 37180002 */ ori $t8, (0xB9000002 & 0xFFFF) # ori $t8, $t8, 2 +/* 0DBB90 7F0A7060 24C70008 */ addiu $a3, $a2, 8 +/* 0DBB94 7F0A7064 ACD80000 */ sw $t8, ($a2) +/* 0DBB98 7F0A7068 ACC00004 */ sw $zero, 4($a2) +/* 0DBB9C 7F0A706C 3C0D0F0A */ lui $t5, (0x0F0A4000 >> 16) # lui $t5, 0xf0a +/* 0DBBA0 7F0A7070 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 +/* 0DBBA4 7F0A7074 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d +/* 0DBBA8 7F0A7078 35AD4000 */ ori $t5, (0x0F0A4000 & 0xFFFF) # ori $t5, $t5, 0x4000 +/* 0DBBAC 7F0A707C ACED0004 */ sw $t5, 4($a3) +/* 0DBBB0 7F0A7080 ACF90000 */ sw $t9, ($a3) +/* 0DBBB4 7F0A7084 24E30008 */ addiu $v1, $a3, 8 +/* 0DBBB8 7F0A7088 3C09BA00 */ lui $t1, (0xBA000602 >> 16) # lui $t1, 0xba00 +/* 0DBBBC 7F0A708C 35290602 */ ori $t1, (0xBA000602 & 0xFFFF) # ori $t1, $t1, 0x602 +/* 0DBBC0 7F0A7090 AC690000 */ sw $t1, ($v1) +/* 0DBBC4 7F0A7094 AC600004 */ sw $zero, 4($v1) +/* 0DBBC8 7F0A7098 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DBBCC 7F0A709C 24620008 */ addiu $v0, $v1, 8 +/* 0DBBD0 7F0A70A0 27BD0058 */ addiu $sp, $sp, 0x58 +/* 0DBBD4 7F0A70A4 03E00008 */ jr $ra +/* 0DBBD8 7F0A70A8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A70AC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A70AC +/* 0DBBDC 7F0A70AC 00001025 */ move $v0, $zero +/* 0DBBE0 7F0A70B0 00A01825 */ move $v1, $a1 +/* 0DBBE4 7F0A70B4 24070070 */ li $a3, 112 +/* 0DBBE8 7F0A70B8 24060020 */ li $a2, 32 +.L7F0A70BC: +/* 0DBBEC 7F0A70BC 24420001 */ addiu $v0, $v0, 1 +/* 0DBBF0 7F0A70C0 28410014 */ slti $at, $v0, 0x14 +/* 0DBBF4 7F0A70C4 24630010 */ addiu $v1, $v1, 0x10 +/* 0DBBF8 7F0A70C8 A066FFFC */ sb $a2, -4($v1) +/* 0DBBFC 7F0A70CC A067FFFD */ sb $a3, -3($v1) +/* 0DBC00 7F0A70D0 1420FFFA */ bnez $at, .L7F0A70BC +/* 0DBC04 7F0A70D4 A066FFFE */ sb $a2, -2($v1) +/* 0DBC08 7F0A70D8 00041880 */ sll $v1, $a0, 2 +/* 0DBC0C 7F0A70DC 24660003 */ addiu $a2, $v1, 3 +/* 0DBC10 7F0A70E0 00C3082A */ slt $at, $a2, $v1 +/* 0DBC14 7F0A70E4 14200017 */ bnez $at, .L7F0A7144 +/* 0DBC18 7F0A70E8 00037100 */ sll $t6, $v1, 4 +/* 0DBC1C 7F0A70EC 00067900 */ sll $t7, $a2, 4 +/* 0DBC20 7F0A70F0 01E52021 */ addu $a0, $t7, $a1 +/* 0DBC24 7F0A70F4 3C068004 */ lui $a2, %hi(watch_soundrelated_maybe) +/* 0DBC28 7F0A70F8 00AE1821 */ addu $v1, $a1, $t6 +/* 0DBC2C 7F0A70FC 240500F0 */ li $a1, 240 +/* 0DBC30 7F0A7100 24C609A8 */ addiu $a2, %lo(watch_soundrelated_maybe) # addiu $a2, $a2, 0x9a8 +/* 0DBC34 7F0A7104 240800A0 */ li $t0, 160 +/* 0DBC38 7F0A7108 24070030 */ li $a3, 48 +/* 0DBC3C 7F0A710C 24020050 */ li $v0, 80 +/* 0DBC40 7F0A7110 A062000C */ sb $v0, 0xc($v1) +.L7F0A7114: +/* 0DBC44 7F0A7114 A065000D */ sb $a1, 0xd($v1) +/* 0DBC48 7F0A7118 A062000E */ sb $v0, 0xe($v1) +/* 0DBC4C 7F0A711C 8CD80000 */ lw $t8, ($a2) +/* 0DBC50 7F0A7120 53000005 */ beql $t8, $zero, .L7F0A7138 +/* 0DBC54 7F0A7124 24630010 */ addiu $v1, $v1, 0x10 +/* 0DBC58 7F0A7128 A067000C */ sb $a3, 0xc($v1) +/* 0DBC5C 7F0A712C A068000D */ sb $t0, 0xd($v1) +/* 0DBC60 7F0A7130 A067000E */ sb $a3, 0xe($v1) +/* 0DBC64 7F0A7134 24630010 */ addiu $v1, $v1, 0x10 +.L7F0A7138: +/* 0DBC68 7F0A7138 0083082B */ sltu $at, $a0, $v1 +/* 0DBC6C 7F0A713C 5020FFF5 */ beql $at, $zero, .L7F0A7114 +/* 0DBC70 7F0A7140 A062000C */ sb $v0, 0xc($v1) +.L7F0A7144: +/* 0DBC74 7F0A7144 03E00008 */ jr $ra +/* 0DBC78 7F0A7148 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A714C(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058508 +.word 0x3d4ccccd /*0.050000001*/ +.text +glabel sub_GAME_7F0A714C +/* 0DBC7C 7F0A714C 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0DBC80 7F0A7150 AFB00018 */ sw $s0, 0x18($sp) +/* 0DBC84 7F0A7154 00808025 */ move $s0, $a0 +/* 0DBC88 7F0A7158 AFBF001C */ sw $ra, 0x1c($sp) +/* 0DBC8C 7F0A715C AFA50054 */ sw $a1, 0x54($sp) +/* 0DBC90 7F0A7160 AFA60058 */ sw $a2, 0x58($sp) +/* 0DBC94 7F0A7164 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0DBC98 7F0A7168 2404001E */ li $a0, 30 +/* 0DBC9C 7F0A716C AFA20048 */ sw $v0, 0x48($sp) +/* 0DBCA0 7F0A7170 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0DBCA4 7F0A7174 2404001E */ li $a0, 30 +/* 0DBCA8 7F0A7178 AFA20044 */ sw $v0, 0x44($sp) +/* 0DBCAC 7F0A717C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 0DBCB0 7F0A7180 240400F8 */ li $a0, 248 +/* 0DBCB4 7F0A7184 AFA20040 */ sw $v0, 0x40($sp) +/* 0DBCB8 7F0A7188 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 0DBCBC 7F0A718C 240400F8 */ li $a0, 248 +/* 0DBCC0 7F0A7190 AFA2003C */ sw $v0, 0x3c($sp) +/* 0DBCC4 7F0A7194 02001825 */ move $v1, $s0 +/* 0DBCC8 7F0A7198 26100008 */ addiu $s0, $s0, 8 +/* 0DBCCC 7F0A719C 3C0EE700 */ lui $t6, 0xe700 +/* 0DBCD0 7F0A71A0 AC6E0000 */ sw $t6, ($v1) +/* 0DBCD4 7F0A71A4 02002025 */ move $a0, $s0 +/* 0DBCD8 7F0A71A8 AC600004 */ sw $zero, 4($v1) +/* 0DBCDC 7F0A71AC 26100008 */ addiu $s0, $s0, 8 +/* 0DBCE0 7F0A71B0 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00 +/* 0DBCE4 7F0A71B4 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402 +/* 0DBCE8 7F0A71B8 02002825 */ move $a1, $s0 +/* 0DBCEC 7F0A71BC AC8F0000 */ sw $t7, ($a0) +/* 0DBCF0 7F0A71C0 AC800004 */ sw $zero, 4($a0) +/* 0DBCF4 7F0A71C4 26100008 */ addiu $s0, $s0, 8 +/* 0DBCF8 7F0A71C8 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 +/* 0DBCFC 7F0A71CC 3C190050 */ lui $t9, (0x005041C8 >> 16) # lui $t9, 0x50 +/* 0DBD00 7F0A71D0 373941C8 */ ori $t9, (0x005041C8 & 0xFFFF) # ori $t9, $t9, 0x41c8 +/* 0DBD04 7F0A71D4 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d +/* 0DBD08 7F0A71D8 02003025 */ move $a2, $s0 +/* 0DBD0C 7F0A71DC ACB80000 */ sw $t8, ($a1) +/* 0DBD10 7F0A71E0 ACB90004 */ sw $t9, 4($a1) +/* 0DBD14 7F0A71E4 26100008 */ addiu $s0, $s0, 8 +/* 0DBD18 7F0A71E8 3C0AFCFF */ lui $t2, (0xFCFFFFFF >> 16) # lui $t2, 0xfcff +/* 0DBD1C 7F0A71EC 3C0BFFFE */ lui $t3, (0xFFFE793C >> 16) # lui $t3, 0xfffe +/* 0DBD20 7F0A71F0 356B793C */ ori $t3, (0xFFFE793C & 0xFFFF) # ori $t3, $t3, 0x793c +/* 0DBD24 7F0A71F4 354AFFFF */ ori $t2, (0xFCFFFFFF & 0xFFFF) # ori $t2, $t2, 0xffff +/* 0DBD28 7F0A71F8 02003825 */ move $a3, $s0 +/* 0DBD2C 7F0A71FC ACCA0000 */ sw $t2, ($a2) +/* 0DBD30 7F0A7200 ACCB0004 */ sw $t3, 4($a2) +/* 0DBD34 7F0A7204 3C0DE6E6 */ lui $t5, (0xE6E6E600 >> 16) # lui $t5, 0xe6e6 +/* 0DBD38 7F0A7208 35ADE600 */ ori $t5, (0xE6E6E600 & 0xFFFF) # ori $t5, $t5, 0xe600 +/* 0DBD3C 7F0A720C 26100008 */ addiu $s0, $s0, 8 +/* 0DBD40 7F0A7210 3C0CFA00 */ lui $t4, 0xfa00 +/* 0DBD44 7F0A7214 3C0E0102 */ lui $t6, (0x01020040 >> 16) # lui $t6, 0x102 +/* 0DBD48 7F0A7218 ACEC0000 */ sw $t4, ($a3) +/* 0DBD4C 7F0A721C ACED0004 */ sw $t5, 4($a3) +/* 0DBD50 7F0A7220 35CE0040 */ ori $t6, (0x01020040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 0DBD54 7F0A7224 02001025 */ move $v0, $s0 +/* 0DBD58 7F0A7228 AC4E0000 */ sw $t6, ($v0) +/* 0DBD5C 7F0A722C 8FAF0054 */ lw $t7, 0x54($sp) +/* 0DBD60 7F0A7230 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DBD64 7F0A7234 44811000 */ mtc1 $at, $f2 +/* 0DBD68 7F0A7238 AC4F0004 */ sw $t7, 4($v0) +/* 0DBD6C 7F0A723C 26100008 */ addiu $s0, $s0, 8 +/* 0DBD70 7F0A7240 0FC1F97F */ jal check_watch_page_transistion_running +/* 0DBD74 7F0A7244 E7A20020 */ swc1 $f2, 0x20($sp) +/* 0DBD78 7F0A7248 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DBD7C 7F0A724C 44816000 */ mtc1 $at, $f12 +/* 0DBD80 7F0A7250 10400017 */ beqz $v0, .L7F0A72B0 +/* 0DBD84 7F0A7254 C7A20020 */ lwc1 $f2, 0x20($sp) +/* 0DBD88 7F0A7258 3C028008 */ lui $v0, %hi(pPlayer) +/* 0DBD8C 7F0A725C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0DBD90 7F0A7260 C44411CC */ lwc1 $f4, 0x11cc($v0) +/* 0DBD94 7F0A7264 C44611C8 */ lwc1 $f6, 0x11c8($v0) +/* 0DBD98 7F0A7268 C44A11BC */ lwc1 $f10, 0x11bc($v0) +/* 0DBD9C 7F0A726C C45211C0 */ lwc1 $f18, 0x11c0($v0) +/* 0DBDA0 7F0A7270 46062201 */ sub.s $f8, $f4, $f6 +/* 0DBDA4 7F0A7274 44802000 */ mtc1 $zero, $f4 +/* 0DBDA8 7F0A7278 46085402 */ mul.s $f16, $f10, $f8 +/* 0DBDAC 7F0A727C 46128083 */ div.s $f2, $f16, $f18 +/* 0DBDB0 7F0A7280 4604103C */ c.lt.s $f2, $f4 +/* 0DBDB4 7F0A7284 00000000 */ nop +/* 0DBDB8 7F0A7288 45020003 */ bc1fl .L7F0A7298 +/* 0DBDBC 7F0A728C 4602603C */ c.lt.s $f12, $f2 +/* 0DBDC0 7F0A7290 46001087 */ neg.s $f2, $f2 +/* 0DBDC4 7F0A7294 4602603C */ c.lt.s $f12, $f2 +.L7F0A7298: +/* 0DBDC8 7F0A7298 00000000 */ nop +/* 0DBDCC 7F0A729C 45000002 */ bc1f .L7F0A72A8 +/* 0DBDD0 7F0A72A0 00000000 */ nop +/* 0DBDD4 7F0A72A4 46006086 */ mov.s $f2, $f12 +.L7F0A72A8: +/* 0DBDD8 7F0A72A8 46021082 */ mul.s $f2, $f2, $f2 +/* 0DBDDC 7F0A72AC 00000000 */ nop +.L7F0A72B0: +/* 0DBDE0 7F0A72B0 8FB80058 */ lw $t8, 0x58($sp) +/* 0DBDE4 7F0A72B4 24010001 */ li $at, 1 +/* 0DBDE8 7F0A72B8 3C088004 */ lui $t0, %hi(D_80040B04) +/* 0DBDEC 7F0A72BC 17010010 */ bne $t8, $at, .L7F0A7300 +/* 0DBDF0 7F0A72C0 25080B04 */ addiu $t0, %lo(D_80040B04) # addiu $t0, $t0, 0xb04 +/* 0DBDF4 7F0A72C4 3C018006 */ lui $at, %hi(D_80058508) +/* 0DBDF8 7F0A72C8 C4228508 */ lwc1 $f2, %lo(D_80058508)($at) +/* 0DBDFC 7F0A72CC 241900E0 */ li $t9, 224 +/* 0DBE00 7F0A72D0 AD190000 */ sw $t9, ($t0) +/* 0DBE04 7F0A72D4 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0DBE08 7F0A72D8 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0DBE0C 7F0A72DC 24010004 */ li $at, 4 +/* 0DBE10 7F0A72E0 8D4201C8 */ lw $v0, 0x1c8($t2) +/* 0DBE14 7F0A72E4 10410003 */ beq $v0, $at, .L7F0A72F4 +/* 0DBE18 7F0A72E8 24010006 */ li $at, 6 +/* 0DBE1C 7F0A72EC 54410005 */ bnel $v0, $at, .L7F0A7304 +/* 0DBE20 7F0A72F0 3C013E80 */ lui $at, 0x3e80 +.L7F0A72F4: +/* 0DBE24 7F0A72F4 0FC1F9D0 */ jal sub_GAME_7F07E740 +/* 0DBE28 7F0A72F8 00000000 */ nop +/* 0DBE2C 7F0A72FC 46000086 */ mov.s $f2, $f0 +.L7F0A7300: +/* 0DBE30 7F0A7300 3C013E80 */ li $at, 0x3E800000 # 0.250000 +.L7F0A7304: +/* 0DBE34 7F0A7304 44810000 */ mtc1 $at, $f0 +/* 0DBE38 7F0A7308 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007B0A0) +/* 0DBE3C 7F0A730C 2484B0A0 */ addiu $a0, %lo(dword_CODE_bss_8007B0A0) # addiu $a0, $a0, -0x4f60 +/* 0DBE40 7F0A7310 44050000 */ mfc1 $a1, $f0 +/* 0DBE44 7F0A7314 44060000 */ mfc1 $a2, $f0 +/* 0DBE48 7F0A7318 44070000 */ mfc1 $a3, $f0 +/* 0DBE4C 7F0A731C 0C005BB9 */ jal guScale +/* 0DBE50 7F0A7320 E7A20020 */ swc1 $f2, 0x20($sp) +/* 0DBE54 7F0A7324 C7A20020 */ lwc1 $f2, 0x20($sp) +/* 0DBE58 7F0A7328 02001025 */ move $v0, $s0 +/* 0DBE5C 7F0A732C 3C0B0100 */ lui $t3, (0x01000040 >> 16) # lui $t3, 0x100 +/* 0DBE60 7F0A7330 3C0C8008 */ lui $t4, %hi(dword_CODE_bss_8007B0A0) +/* 0DBE64 7F0A7334 258CB0A0 */ addiu $t4, %lo(dword_CODE_bss_8007B0A0) # addiu $t4, $t4, -0x4f60 +/* 0DBE68 7F0A7338 356B0040 */ ori $t3, (0x01000040 & 0xFFFF) # ori $t3, $t3, 0x40 +/* 0DBE6C 7F0A733C AC4B0000 */ sw $t3, ($v0) +/* 0DBE70 7F0A7340 AC4C0004 */ sw $t4, 4($v0) +/* 0DBE74 7F0A7344 8FAD0058 */ lw $t5, 0x58($sp) +/* 0DBE78 7F0A7348 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DBE7C 7F0A734C 44816000 */ mtc1 $at, $f12 +/* 0DBE80 7F0A7350 15A0001B */ bnez $t5, .L7F0A73C0 +/* 0DBE84 7F0A7354 26100008 */ addiu $s0, $s0, 8 +/* 0DBE88 7F0A7358 02001025 */ move $v0, $s0 +/* 0DBE8C 7F0A735C 26100008 */ addiu $s0, $s0, 8 +/* 0DBE90 7F0A7360 3C0EB600 */ lui $t6, 0xb600 +/* 0DBE94 7F0A7364 240F3000 */ li $t7, 12288 +/* 0DBE98 7F0A7368 AC4F0004 */ sw $t7, 4($v0) +/* 0DBE9C 7F0A736C AC4E0000 */ sw $t6, ($v0) +/* 0DBEA0 7F0A7370 02001825 */ move $v1, $s0 +/* 0DBEA4 7F0A7374 3C180600 */ lui $t8, 0x600 +/* 0DBEA8 7F0A7378 AC780000 */ sw $t8, ($v1) +/* 0DBEAC 7F0A737C 3C198008 */ lui $t9, %hi(pPlayer) +/* 0DBEB0 7F0A7380 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0DBEB4 7F0A7384 3C018000 */ lui $at, (0x800019F8 >> 16) +/* 0DBEB8 7F0A7388 342119F8 */ ori $at, (0x800019F8 & 0xFFFF) # ori $at, $at, 0x19f8 +/* 0DBEBC 7F0A738C 26100008 */ addiu $s0, $s0, 8 +/* 0DBEC0 7F0A7390 03215021 */ addu $t2, $t9, $at +/* 0DBEC4 7F0A7394 AC6A0004 */ sw $t2, 4($v1) +/* 0DBEC8 7F0A7398 02002025 */ move $a0, $s0 +/* 0DBECC 7F0A739C 3C0B0600 */ lui $t3, 0x600 +/* 0DBED0 7F0A73A0 AC8B0000 */ sw $t3, ($a0) +/* 0DBED4 7F0A73A4 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0DBED8 7F0A73A8 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0DBEDC 7F0A73AC 3C018000 */ lui $at, (0x80002128 >> 16) +/* 0DBEE0 7F0A73B0 34212128 */ ori $at, (0x80002128 & 0xFFFF) # ori $at, $at, 0x2128 +/* 0DBEE4 7F0A73B4 01816821 */ addu $t5, $t4, $at +/* 0DBEE8 7F0A73B8 AC8D0004 */ sw $t5, 4($a0) +/* 0DBEEC 7F0A73BC 26100008 */ addiu $s0, $s0, 8 +.L7F0A73C0: +/* 0DBEF0 7F0A73C0 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007B0E0) +/* 0DBEF4 7F0A73C4 44056000 */ mfc1 $a1, $f12 +/* 0DBEF8 7F0A73C8 44066000 */ mfc1 $a2, $f12 +/* 0DBEFC 7F0A73CC 44071000 */ mfc1 $a3, $f2 +/* 0DBF00 7F0A73D0 0C005BB9 */ jal guScale +/* 0DBF04 7F0A73D4 2484B0E0 */ addiu $a0, %lo(dword_CODE_bss_8007B0E0) # addiu $a0, $a0, -0x4f20 +/* 0DBF08 7F0A73D8 02001025 */ move $v0, $s0 +/* 0DBF0C 7F0A73DC 3C0E0100 */ lui $t6, (0x01000040 >> 16) # lui $t6, 0x100 +/* 0DBF10 7F0A73E0 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_8007B0E0) +/* 0DBF14 7F0A73E4 25EFB0E0 */ addiu $t7, %lo(dword_CODE_bss_8007B0E0) # addiu $t7, $t7, -0x4f20 +/* 0DBF18 7F0A73E8 35CE0040 */ ori $t6, (0x01000040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 0DBF1C 7F0A73EC AC4E0000 */ sw $t6, ($v0) +/* 0DBF20 7F0A73F0 AC4F0004 */ sw $t7, 4($v0) +/* 0DBF24 7F0A73F4 8FB80058 */ lw $t8, 0x58($sp) +/* 0DBF28 7F0A73F8 24010001 */ li $at, 1 +/* 0DBF2C 7F0A73FC 26100008 */ addiu $s0, $s0, 8 +/* 0DBF30 7F0A7400 1701001B */ bne $t8, $at, .L7F0A7470 +/* 0DBF34 7F0A7404 2405001E */ li $a1, 30 +/* 0DBF38 7F0A7408 02001025 */ move $v0, $s0 +/* 0DBF3C 7F0A740C 26100008 */ addiu $s0, $s0, 8 +/* 0DBF40 7F0A7410 3C19B600 */ lui $t9, 0xb600 +/* 0DBF44 7F0A7414 240A3000 */ li $t2, 12288 +/* 0DBF48 7F0A7418 AC4A0004 */ sw $t2, 4($v0) +/* 0DBF4C 7F0A741C AC590000 */ sw $t9, ($v0) +/* 0DBF50 7F0A7420 02001825 */ move $v1, $s0 +/* 0DBF54 7F0A7424 3C0B0600 */ lui $t3, 0x600 +/* 0DBF58 7F0A7428 AC6B0000 */ sw $t3, ($v1) +/* 0DBF5C 7F0A742C 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0DBF60 7F0A7430 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0DBF64 7F0A7434 3C018000 */ lui $at, (0x800019F8 >> 16) +/* 0DBF68 7F0A7438 342119F8 */ ori $at, (0x800019F8 & 0xFFFF) # ori $at, $at, 0x19f8 +/* 0DBF6C 7F0A743C 26100008 */ addiu $s0, $s0, 8 +/* 0DBF70 7F0A7440 01816821 */ addu $t5, $t4, $at +/* 0DBF74 7F0A7444 AC6D0004 */ sw $t5, 4($v1) +/* 0DBF78 7F0A7448 02002025 */ move $a0, $s0 +/* 0DBF7C 7F0A744C 3C0E0600 */ lui $t6, 0x600 +/* 0DBF80 7F0A7450 AC8E0000 */ sw $t6, ($a0) +/* 0DBF84 7F0A7454 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0DBF88 7F0A7458 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0DBF8C 7F0A745C 3C018000 */ lui $at, (0x80002128 >> 16) +/* 0DBF90 7F0A7460 34212128 */ ori $at, (0x80002128 & 0xFFFF) # ori $at, $at, 0x2128 +/* 0DBF94 7F0A7464 01E1C021 */ addu $t8, $t7, $at +/* 0DBF98 7F0A7468 AC980004 */ sw $t8, 4($a0) +/* 0DBF9C 7F0A746C 26100008 */ addiu $s0, $s0, 8 +.L7F0A7470: +/* 0DBFA0 7F0A7470 3C063F6B */ lui $a2, %hi(0x3F6B0004) # $a2, 0x3f6b +/* 0DBFA4 7F0A7474 34C6851F */ ori $a2, (0x3F6B851F & 0xFFFF) # ori $a2, $a2, 0x851f +/* 0DBFA8 7F0A7478 8FA40044 */ lw $a0, 0x44($sp) +/* 0DBFAC 7F0A747C 0FC28CFE */ jal sub_GAME_7F0A33F8 +/* 0DBFB0 7F0A7480 00003825 */ move $a3, $zero +/* 0DBFB4 7F0A7484 8FA50044 */ lw $a1, 0x44($sp) +/* 0DBFB8 7F0A7488 3C018000 */ lui $at, 0x8000 +/* 0DBFBC 7F0A748C 8FA4003C */ lw $a0, 0x3c($sp) +/* 0DBFC0 7F0A7490 2406001E */ li $a2, 30 +/* 0DBFC4 7F0A7494 00003825 */ move $a3, $zero +/* 0DBFC8 7F0A7498 0FC28E5E */ jal sub_GAME_7F0A3978 +/* 0DBFCC 7F0A749C 00A12821 */ addu $a1, $a1, $at +/* 0DBFD0 7F0A74A0 02001825 */ move $v1, $s0 +/* 0DBFD4 7F0A74A4 26100008 */ addiu $s0, $s0, 8 +/* 0DBFD8 7F0A74A8 3C09E700 */ lui $t1, 0xe700 +/* 0DBFDC 7F0A74AC 02002025 */ move $a0, $s0 +/* 0DBFE0 7F0A74B0 AC690000 */ sw $t1, ($v1) +/* 0DBFE4 7F0A74B4 AC600004 */ sw $zero, 4($v1) +/* 0DBFE8 7F0A74B8 26100008 */ addiu $s0, $s0, 8 +/* 0DBFEC 7F0A74BC 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 +/* 0DBFF0 7F0A74C0 3C0A0050 */ lui $t2, (0x00504240 >> 16) # lui $t2, 0x50 +/* 0DBFF4 7F0A74C4 354A4240 */ ori $t2, (0x00504240 & 0xFFFF) # ori $t2, $t2, 0x4240 +/* 0DBFF8 7F0A74C8 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d +/* 0DBFFC 7F0A74CC 02002825 */ move $a1, $s0 +/* 0DC000 7F0A74D0 AC990000 */ sw $t9, ($a0) +/* 0DC004 7F0A74D4 AC8A0004 */ sw $t2, 4($a0) +/* 0DC008 7F0A74D8 26100008 */ addiu $s0, $s0, 8 +/* 0DC00C 7F0A74DC 3C0BFCFF */ lui $t3, (0xFCFFFFFF >> 16) # lui $t3, 0xfcff +/* 0DC010 7F0A74E0 3C0CFFFD */ lui $t4, (0xFFFDF6FB >> 16) # lui $t4, 0xfffd +/* 0DC014 7F0A74E4 358CF6FB */ ori $t4, (0xFFFDF6FB & 0xFFFF) # ori $t4, $t4, 0xf6fb +/* 0DC018 7F0A74E8 356BFFFF */ ori $t3, (0xFCFFFFFF & 0xFFFF) # ori $t3, $t3, 0xffff +/* 0DC01C 7F0A74EC 02003025 */ move $a2, $s0 +/* 0DC020 7F0A74F0 ACAB0000 */ sw $t3, ($a1) +/* 0DC024 7F0A74F4 ACAC0004 */ sw $t4, 4($a1) +/* 0DC028 7F0A74F8 26100008 */ addiu $s0, $s0, 8 +/* 0DC02C 7F0A74FC 3C0DFA00 */ lui $t5, 0xfa00 +/* 0DC030 7F0A7500 3C0E00FF */ lui $t6, 0xff +/* 0DC034 7F0A7504 ACCE0004 */ sw $t6, %lo(0x3F6B0004)($a2) +/* 0DC038 7F0A7508 ACCD0000 */ sw $t5, ($a2) +/* 0DC03C 7F0A750C 02003825 */ move $a3, $s0 +/* 0DC040 7F0A7510 3C0F0600 */ lui $t7, 0x600 +/* 0DC044 7F0A7514 ACEF0000 */ sw $t7, ($a3) +/* 0DC048 7F0A7518 8FB8003C */ lw $t8, 0x3c($sp) +/* 0DC04C 7F0A751C 3C018000 */ lui $at, 0x8000 +/* 0DC050 7F0A7520 26100008 */ addiu $s0, $s0, 8 +/* 0DC054 7F0A7524 0301C821 */ addu $t9, $t8, $at +/* 0DC058 7F0A7528 ACF90004 */ sw $t9, 4($a3) +/* 0DC05C 7F0A752C 02001025 */ move $v0, $s0 +/* 0DC060 7F0A7530 3C088004 */ lui $t0, %hi(D_80040B04) +/* 0DC064 7F0A7534 25080B04 */ addiu $t0, %lo(D_80040B04) # addiu $t0, $t0, 0xb04 +/* 0DC068 7F0A7538 AC490000 */ sw $t1, ($v0) +/* 0DC06C 7F0A753C AC400004 */ sw $zero, 4($v0) +/* 0DC070 7F0A7540 8D0A0000 */ lw $t2, ($t0) +/* 0DC074 7F0A7544 26100008 */ addiu $s0, $s0, 8 +/* 0DC078 7F0A7548 8FA40048 */ lw $a0, 0x48($sp) +/* 0DC07C 7F0A754C 294100E0 */ slti $at, $t2, 0xe0 +/* 0DC080 7F0A7550 10200019 */ beqz $at, .L7F0A75B8 +/* 0DC084 7F0A7554 2405001E */ li $a1, 30 +/* 0DC088 7F0A7558 3C063F66 */ lui $a2, (0x3F666666 >> 16) # lui $a2, 0x3f66 +/* 0DC08C 7F0A755C 34C66666 */ ori $a2, (0x3F666666 & 0xFFFF) # ori $a2, $a2, 0x6666 +/* 0DC090 7F0A7560 8FA40048 */ lw $a0, 0x48($sp) +/* 0DC094 7F0A7564 2405001E */ li $a1, 30 +/* 0DC098 7F0A7568 0FC28CFE */ jal sub_GAME_7F0A33F8 +/* 0DC09C 7F0A756C 00003825 */ move $a3, $zero +/* 0DC0A0 7F0A7570 8FA50048 */ lw $a1, 0x48($sp) +/* 0DC0A4 7F0A7574 3C018000 */ lui $at, 0x8000 +/* 0DC0A8 7F0A7578 8FA40040 */ lw $a0, 0x40($sp) +/* 0DC0AC 7F0A757C 2406001E */ li $a2, 30 +/* 0DC0B0 7F0A7580 00003825 */ move $a3, $zero +/* 0DC0B4 7F0A7584 0FC28E5E */ jal sub_GAME_7F0A3978 +/* 0DC0B8 7F0A7588 00A12821 */ addu $a1, $a1, $at +/* 0DC0BC 7F0A758C 02001825 */ move $v1, $s0 +/* 0DC0C0 7F0A7590 3C0BB900 */ lui $t3, (0xB900031D >> 16) # lui $t3, 0xb900 +/* 0DC0C4 7F0A7594 3C0C0050 */ lui $t4, (0x0050004B >> 16) # lui $t4, 0x50 +/* 0DC0C8 7F0A7598 3C088004 */ lui $t0, %hi(D_80040B04) +/* 0DC0CC 7F0A759C 358C004B */ ori $t4, (0x0050004B & 0xFFFF) # ori $t4, $t4, 0x4b +/* 0DC0D0 7F0A75A0 356B031D */ ori $t3, (0xB900031D & 0xFFFF) # ori $t3, $t3, 0x31d +/* 0DC0D4 7F0A75A4 25080B04 */ addiu $t0, %lo(D_80040B04) # addiu $t0, $t0, 0xb04 +/* 0DC0D8 7F0A75A8 AC6B0000 */ sw $t3, ($v1) +/* 0DC0DC 7F0A75AC AC6C0004 */ sw $t4, 4($v1) +/* 0DC0E0 7F0A75B0 10000016 */ b .L7F0A760C +/* 0DC0E4 7F0A75B4 26100008 */ addiu $s0, $s0, 8 +.L7F0A75B8: +/* 0DC0E8 7F0A75B8 3C063F66 */ lui $a2, %hi(0x3F660004) # $a2, 0x3f66 +/* 0DC0EC 7F0A75BC 34C66666 */ ori $a2, (0x3F666666 & 0xFFFF) # ori $a2, $a2, 0x6666 +/* 0DC0F0 7F0A75C0 0FC28CFE */ jal sub_GAME_7F0A33F8 +/* 0DC0F4 7F0A75C4 24070001 */ li $a3, 1 +/* 0DC0F8 7F0A75C8 8FA50048 */ lw $a1, 0x48($sp) +/* 0DC0FC 7F0A75CC 3C018000 */ lui $at, 0x8000 +/* 0DC100 7F0A75D0 8FA40040 */ lw $a0, 0x40($sp) +/* 0DC104 7F0A75D4 2406001E */ li $a2, 30 +/* 0DC108 7F0A75D8 24070001 */ li $a3, 1 +/* 0DC10C 7F0A75DC 0FC28E5E */ jal sub_GAME_7F0A3978 +/* 0DC110 7F0A75E0 00A12821 */ addu $a1, $a1, $at +/* 0DC114 7F0A75E4 02001825 */ move $v1, $s0 +/* 0DC118 7F0A75E8 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 +/* 0DC11C 7F0A75EC 3C0E0050 */ lui $t6, (0x005041C8 >> 16) # lui $t6, 0x50 +/* 0DC120 7F0A75F0 3C088004 */ lui $t0, %hi(D_80040B04) +/* 0DC124 7F0A75F4 35CE41C8 */ ori $t6, (0x005041C8 & 0xFFFF) # ori $t6, $t6, 0x41c8 +/* 0DC128 7F0A75F8 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d +/* 0DC12C 7F0A75FC 25080B04 */ addiu $t0, %lo(D_80040B04) # addiu $t0, $t0, 0xb04 +/* 0DC130 7F0A7600 AC6D0000 */ sw $t5, ($v1) +/* 0DC134 7F0A7604 AC6E0004 */ sw $t6, 4($v1) +/* 0DC138 7F0A7608 26100008 */ addiu $s0, $s0, 8 +.L7F0A760C: +/* 0DC13C 7F0A760C 02001025 */ move $v0, $s0 +/* 0DC140 7F0A7610 3C07FFFE */ lui $a3, (0xFFFE793C >> 16) # lui $a3, 0xfffe +/* 0DC144 7F0A7614 3C0FFCFF */ lui $t7, (0xFCFFFFFF >> 16) # lui $t7, 0xfcff +/* 0DC148 7F0A7618 34E7793C */ ori $a3, (0xFFFE793C & 0xFFFF) # ori $a3, $a3, 0x793c +/* 0DC14C 7F0A761C 35EFFFFF */ ori $t7, (0xFCFFFFFF & 0xFFFF) # ori $t7, $t7, 0xffff +/* 0DC150 7F0A7620 26100008 */ addiu $s0, $s0, 8 +/* 0DC154 7F0A7624 AC4F0000 */ sw $t7, ($v0) +/* 0DC158 7F0A7628 AC470004 */ sw $a3, 4($v0) +/* 0DC15C 7F0A762C 02001825 */ move $v1, $s0 +/* 0DC160 7F0A7630 3C180600 */ lui $t8, 0x600 +/* 0DC164 7F0A7634 AC780000 */ sw $t8, ($v1) +/* 0DC168 7F0A7638 8FB90040 */ lw $t9, 0x40($sp) +/* 0DC16C 7F0A763C 26100008 */ addiu $s0, $s0, 8 +/* 0DC170 7F0A7640 3C018000 */ lui $at, (0x80002858 >> 16) +/* 0DC174 7F0A7644 02002025 */ move $a0, $s0 +/* 0DC178 7F0A7648 03215021 */ addu $t2, $t9, $at +/* 0DC17C 7F0A764C AC6A0004 */ sw $t2, 4($v1) +/* 0DC180 7F0A7650 26100008 */ addiu $s0, $s0, 8 +/* 0DC184 7F0A7654 3C0BB900 */ lui $t3, (0xB900031D >> 16) # lui $t3, 0xb900 +/* 0DC188 7F0A7658 3C0C0050 */ lui $t4, (0x00504240 >> 16) # lui $t4, 0x50 +/* 0DC18C 7F0A765C 358C4240 */ ori $t4, (0x00504240 & 0xFFFF) # ori $t4, $t4, 0x4240 +/* 0DC190 7F0A7660 356B031D */ ori $t3, (0xB900031D & 0xFFFF) # ori $t3, $t3, 0x31d +/* 0DC194 7F0A7664 02002825 */ move $a1, $s0 +/* 0DC198 7F0A7668 AC8B0000 */ sw $t3, ($a0) +/* 0DC19C 7F0A766C AC8C0004 */ sw $t4, 4($a0) +/* 0DC1A0 7F0A7670 ACAF0000 */ sw $t7, ($a1) +/* 0DC1A4 7F0A7674 26100008 */ addiu $s0, $s0, 8 +/* 0DC1A8 7F0A7678 ACA70004 */ sw $a3, 4($a1) +/* 0DC1AC 7F0A767C 02003025 */ move $a2, $s0 +/* 0DC1B0 7F0A7680 3C0E0600 */ lui $t6, 0x600 +/* 0DC1B4 7F0A7684 ACCE0000 */ sw $t6, ($a2) +/* 0DC1B8 7F0A7688 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0DC1BC 7F0A768C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0DC1C0 7F0A7690 34212858 */ ori $at, (0x80002858 & 0xFFFF) # ori $at, $at, 0x2858 +/* 0DC1C4 7F0A7694 26100008 */ addiu $s0, $s0, 8 +/* 0DC1C8 7F0A7698 01E1C021 */ addu $t8, $t7, $at +/* 0DC1CC 7F0A769C ACD80004 */ sw $t8, %lo(0x3F660004)($a2) +/* 0DC1D0 7F0A76A0 8D190000 */ lw $t9, ($t0) +/* 0DC1D4 7F0A76A4 8FA70048 */ lw $a3, 0x48($sp) +/* 0DC1D8 7F0A76A8 2405001E */ li $a1, 30 +/* 0DC1DC 7F0A76AC 24040002 */ li $a0, 2 +/* 0DC1E0 7F0A76B0 A0F9000F */ sb $t9, 0xf($a3) +/* 0DC1E4 7F0A76B4 8FA60044 */ lw $a2, 0x44($sp) +/* 0DC1E8 7F0A76B8 8D0A0000 */ lw $t2, ($t0) +/* 0DC1EC 7F0A76BC 24E20020 */ addiu $v0, $a3, 0x20 +/* 0DC1F0 7F0A76C0 A0CA000F */ sb $t2, 0xf($a2) +/* 0DC1F4 7F0A76C4 8D0B0000 */ lw $t3, ($t0) +/* 0DC1F8 7F0A76C8 A0EB001F */ sb $t3, 0x1f($a3) +/* 0DC1FC 7F0A76CC 8D0C0000 */ lw $t4, ($t0) +/* 0DC200 7F0A76D0 A0CC001F */ sb $t4, 0x1f($a2) +/* 0DC204 7F0A76D4 8FA30044 */ lw $v1, 0x44($sp) +/* 0DC208 7F0A76D8 24630020 */ addiu $v1, $v1, 0x20 +.L7F0A76DC: +/* 0DC20C 7F0A76DC 8D0D0000 */ lw $t5, ($t0) +/* 0DC210 7F0A76E0 24840004 */ addiu $a0, $a0, 4 +/* 0DC214 7F0A76E4 24420040 */ addiu $v0, $v0, 0x40 +/* 0DC218 7F0A76E8 A04DFFCF */ sb $t5, -0x31($v0) +/* 0DC21C 7F0A76EC 8D0E0000 */ lw $t6, ($t0) +/* 0DC220 7F0A76F0 24630040 */ addiu $v1, $v1, 0x40 +/* 0DC224 7F0A76F4 A06EFFCF */ sb $t6, -0x31($v1) +/* 0DC228 7F0A76F8 8D0F0000 */ lw $t7, ($t0) +/* 0DC22C 7F0A76FC A04FFFDF */ sb $t7, -0x21($v0) +/* 0DC230 7F0A7700 8D180000 */ lw $t8, ($t0) +/* 0DC234 7F0A7704 A078FFDF */ sb $t8, -0x21($v1) +/* 0DC238 7F0A7708 8D190000 */ lw $t9, ($t0) +/* 0DC23C 7F0A770C A059FFEF */ sb $t9, -0x11($v0) +/* 0DC240 7F0A7710 8D0A0000 */ lw $t2, ($t0) +/* 0DC244 7F0A7714 A06AFFEF */ sb $t2, -0x11($v1) +/* 0DC248 7F0A7718 8D0B0000 */ lw $t3, ($t0) +/* 0DC24C 7F0A771C A04BFFFF */ sb $t3, -1($v0) +/* 0DC250 7F0A7720 8D0C0000 */ lw $t4, ($t0) +/* 0DC254 7F0A7724 1485FFED */ bne $a0, $a1, .L7F0A76DC +/* 0DC258 7F0A7728 A06CFFFF */ sb $t4, -1($v1) +/* 0DC25C 7F0A772C 8D0D0000 */ lw $t5, ($t0) +/* 0DC260 7F0A7730 3C048008 */ lui $a0, %hi(pPlayer) +/* 0DC264 7F0A7734 29A100E0 */ slti $at, $t5, 0xe0 +/* 0DC268 7F0A7738 50200017 */ beql $at, $zero, .L7F0A7798 +/* 0DC26C 7F0A773C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0DC270 7F0A7740 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0DC274 7F0A7744 0FC29A36 */ jal sub_GAME_7F0A68D8 +/* 0DC278 7F0A7748 248419B8 */ addiu $a0, $a0, 0x19b8 +/* 0DC27C 7F0A774C 02001025 */ move $v0, $s0 +/* 0DC280 7F0A7750 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 +/* 0DC284 7F0A7754 3C0F0050 */ lui $t7, (0x005041C8 >> 16) # lui $t7, 0x50 +/* 0DC288 7F0A7758 35EF41C8 */ ori $t7, (0x005041C8 & 0xFFFF) # ori $t7, $t7, 0x41c8 +/* 0DC28C 7F0A775C 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d +/* 0DC290 7F0A7760 26100008 */ addiu $s0, $s0, 8 +/* 0DC294 7F0A7764 AC4E0000 */ sw $t6, ($v0) +/* 0DC298 7F0A7768 AC4F0004 */ sw $t7, 4($v0) +/* 0DC29C 7F0A776C 02001825 */ move $v1, $s0 +/* 0DC2A0 7F0A7770 3C180600 */ lui $t8, 0x600 +/* 0DC2A4 7F0A7774 AC780000 */ sw $t8, ($v1) +/* 0DC2A8 7F0A7778 3C198008 */ lui $t9, %hi(pPlayer) +/* 0DC2AC 7F0A777C 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0DC2B0 7F0A7780 3C018000 */ lui $at, (0x80002998 >> 16) +/* 0DC2B4 7F0A7784 34212998 */ ori $at, (0x80002998 & 0xFFFF) # ori $at, $at, 0x2998 +/* 0DC2B8 7F0A7788 03215021 */ addu $t2, $t9, $at +/* 0DC2BC 7F0A778C AC6A0004 */ sw $t2, 4($v1) +/* 0DC2C0 7F0A7790 26100008 */ addiu $s0, $s0, 8 +/* 0DC2C4 7F0A7794 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0A7798: +/* 0DC2C8 7F0A7798 02001025 */ move $v0, $s0 +/* 0DC2CC 7F0A779C 8FB00018 */ lw $s0, 0x18($sp) +/* 0DC2D0 7F0A77A0 03E00008 */ jr $ra +/* 0DC2D4 7F0A77A4 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + + +void sub_GAME_7F0A77A8(u32 param_1,u32 param_2) +{ + sub_GAME_7F0A714C(param_1,param_2,1); +} + + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0A77C8(s32 arg0) +{ + ?32 sp7C; + s32 sp78; + s32 sp74; + s32 sp70; + s32 sp6C; + s32 sp68; + s32 sp64; + s32 sp60; + s32 sp5C; + s32 sp58; + s32 sp54; + s32 sp50; + s32 sp4C; + s16 sp44; + s32 temp_s0; + s32 temp_s0_2; + s32 temp_s0_3; + s32 temp_s0_4; + s32 temp_v1; + s32 phi_v0; + s32 phi_v0_2; + s32 phi_v0_3; + s32 phi_s0; + + sp5C = (s32) ptrFirstFontTableSmall; + sp58 = (s32) ptrSecondFontTableSmall; + sp54 = get_textptr_for_textID(0xac24); + sp50 = get_textptr_for_textID(0xac25); + sp4C = get_textptr_for_textID(0xac26); + sp7C = 0x51; + if (j_text_trigger != 0) + { + phi_v0 = 0xf; + } + else + { + phi_v0 = 0; + } + sp78 = (s32) (phi_v0 + 0xbd); + if (j_text_trigger != 0) + { + phi_v0_2 = 0xa; + } + else + { + phi_v0_2 = 0; + } + sp74 = (s32) (phi_v0_2 + 0x88); + if (j_text_trigger != 0) + { + phi_v0_3 = 3; + } + else + { + phi_v0_3 = 0; + } + temp_v1 = phi_v0_3 + 0x4c; + sp6C = temp_v1; + sp70 = temp_v1; + sp68 = temp_v1; + if (watch_soundrelated_maybe != 0) + { + if (D_800409A4 == 0) + { + if ((get_cur_controller_horz_stick_pos(0) >= 0x2e) || (get_controller_buttons_held(0, 0x111) != 0)) + { + D_800409A4 = 1; + } + else + { + + } + } + else + { + if (D_800409A4 != 0) + { + if ((get_cur_controller_horz_stick_pos(0) < -0x2d) || (get_controller_buttons_held(0, 0x222) != 0)) + { + D_800409A4 = 0; + } + else + { + + } + } + } + } + if (watch_soundrelated_maybe != 0) + { + sub_GAME_7F0AE98C(&sp60, &sp64, sp54, sp58, sp5C, 0); + en_text_write_stuff(arg0, &sp7C, &sp70, sp54, sp58, sp5C, 0xa0ffa0f0, sp64, sp60, 0, 0); + if (D_800409A4 != 0) + { + jp_text_write_stuff(temp_s0, &sp78, &sp6C, sp50, sp58, sp5C, -1, 0x7000a0, get_video2_settings_txtClipW(), get_video2_settings_txtClipH(), 0, 0); + en_text_write_stuff(temp_s0_2, &sp74, &sp68, sp4C, sp58, sp5C, 0xff00b0, get_video2_settings_txtClipW(), get_video2_settings_txtClipH(), 0, 0); + } + else + { + if (D_800409A4 == 0) + { + en_text_write_stuff(temp_s0, &sp78, &sp6C, sp50, sp58, sp5C, 0xff00b0, get_video2_settings_txtClipW(), get_video2_settings_txtClipH(), 0, 0); + jp_text_write_stuff(temp_s0_3, &sp74, &sp68, sp4C, sp58, sp5C, -1, 0x7000a0, get_video2_settings_txtClipW(), get_video2_settings_txtClipH(), 0, 0); + } + } + } + else + { + sub_GAME_7F0AE98C(&sp60, &sp64, sp54, sp58, sp5C, 0); + en_text_write_stuff(en_text_write_stuff(arg0, &sp7C, &sp70, sp54, sp58, sp5C, 0x800080, sp64, sp60, 0, 0), &sp78, &sp6C, sp50, sp58, sp5C, 0x800080, get_video2_settings_txtClipW(), get_video2_settings_txtClipH(), 0, 0); + en_text_write_stuff(temp_s0_4, &sp74, &sp68, sp4C, sp58, sp5C, 0x800080, get_video2_settings_txtClipW(), get_video2_settings_txtClipH(), 0, 0); + } + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A77C8 +/* 0DC2F8 7F0A77C8 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0DC2FC 7F0A77CC 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0DC300 7F0A77D0 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0DC304 7F0A77D4 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0DC308 7F0A77D8 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0DC30C 7F0A77DC AFB00038 */ sw $s0, 0x38($sp) +/* 0DC310 7F0A77E0 00808025 */ move $s0, $a0 +/* 0DC314 7F0A77E4 AFBF003C */ sw $ra, 0x3c($sp) +/* 0DC318 7F0A77E8 3404AC24 */ li $a0, 44068 +/* 0DC31C 7F0A77EC AFAE005C */ sw $t6, 0x5c($sp) +/* 0DC320 7F0A77F0 0FC30776 */ jal get_textptr_for_textID +/* 0DC324 7F0A77F4 AFAF0058 */ sw $t7, 0x58($sp) +/* 0DC328 7F0A77F8 AFA20054 */ sw $v0, 0x54($sp) +/* 0DC32C 7F0A77FC 0FC30776 */ jal get_textptr_for_textID +/* 0DC330 7F0A7800 3404AC25 */ li $a0, 44069 +/* 0DC334 7F0A7804 AFA20050 */ sw $v0, 0x50($sp) +/* 0DC338 7F0A7808 0FC30776 */ jal get_textptr_for_textID +/* 0DC33C 7F0A780C 3404AC26 */ li $a0, 44070 +/* 0DC340 7F0A7810 3C038005 */ lui $v1, %hi(j_text_trigger) +/* 0DC344 7F0A7814 8C6384D0 */ lw $v1, %lo(j_text_trigger)($v1) +/* 0DC348 7F0A7818 24180051 */ li $t8, 81 +/* 0DC34C 7F0A781C AFA2004C */ sw $v0, 0x4c($sp) +/* 0DC350 7F0A7820 10600003 */ beqz $v1, .L7F0A7830 +/* 0DC354 7F0A7824 AFB8007C */ sw $t8, 0x7c($sp) +/* 0DC358 7F0A7828 10000002 */ b .L7F0A7834 +/* 0DC35C 7F0A782C 2402000F */ li $v0, 15 +.L7F0A7830: +/* 0DC360 7F0A7830 00001025 */ move $v0, $zero +.L7F0A7834: +/* 0DC364 7F0A7834 245900BD */ addiu $t9, $v0, 0xbd +/* 0DC368 7F0A7838 10600003 */ beqz $v1, .L7F0A7848 +/* 0DC36C 7F0A783C AFB90078 */ sw $t9, 0x78($sp) +/* 0DC370 7F0A7840 10000002 */ b .L7F0A784C +/* 0DC374 7F0A7844 2402000A */ li $v0, 10 +.L7F0A7848: +/* 0DC378 7F0A7848 00001025 */ move $v0, $zero +.L7F0A784C: +/* 0DC37C 7F0A784C 24480088 */ addiu $t0, $v0, 0x88 +/* 0DC380 7F0A7850 10600003 */ beqz $v1, .L7F0A7860 +/* 0DC384 7F0A7854 AFA80074 */ sw $t0, 0x74($sp) +/* 0DC388 7F0A7858 10000002 */ b .L7F0A7864 +/* 0DC38C 7F0A785C 24020003 */ li $v0, 3 +.L7F0A7860: +/* 0DC390 7F0A7860 00001025 */ move $v0, $zero +.L7F0A7864: +/* 0DC394 7F0A7864 3C098004 */ lui $t1, %hi(watch_soundrelated_maybe) +/* 0DC398 7F0A7868 8D2909A8 */ lw $t1, %lo(watch_soundrelated_maybe)($t1) +/* 0DC39C 7F0A786C 2443004C */ addiu $v1, $v0, 0x4c +/* 0DC3A0 7F0A7870 AFA3006C */ sw $v1, 0x6c($sp) +/* 0DC3A4 7F0A7874 AFA30070 */ sw $v1, 0x70($sp) +/* 0DC3A8 7F0A7878 1120001D */ beqz $t1, .L7F0A78F0 +/* 0DC3AC 7F0A787C AFA30068 */ sw $v1, 0x68($sp) +/* 0DC3B0 7F0A7880 3C038004 */ lui $v1, %hi(D_800409A4) +/* 0DC3B4 7F0A7884 8C6309A4 */ lw $v1, %lo(D_800409A4)($v1) +/* 0DC3B8 7F0A7888 1460000D */ bnez $v1, .L7F0A78C0 +/* 0DC3BC 7F0A788C 00000000 */ nop +/* 0DC3C0 7F0A7890 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DC3C4 7F0A7894 00002025 */ move $a0, $zero +/* 0DC3C8 7F0A7898 2841002E */ slti $at, $v0, 0x2e +/* 0DC3CC 7F0A789C 10200004 */ beqz $at, .L7F0A78B0 +/* 0DC3D0 7F0A78A0 00002025 */ move $a0, $zero +/* 0DC3D4 7F0A78A4 0C0030C3 */ jal get_controller_buttons_held +/* 0DC3D8 7F0A78A8 24050111 */ li $a1, 273 +/* 0DC3DC 7F0A78AC 10400010 */ beqz $v0, .L7F0A78F0 +.L7F0A78B0: +/* 0DC3E0 7F0A78B0 240A0001 */ li $t2, 1 +/* 0DC3E4 7F0A78B4 3C018004 */ lui $at, %hi(D_800409A4) +/* 0DC3E8 7F0A78B8 1000000D */ b .L7F0A78F0 +/* 0DC3EC 7F0A78BC AC2A09A4 */ sw $t2, %lo(D_800409A4)($at) +.L7F0A78C0: +/* 0DC3F0 7F0A78C0 1060000B */ beqz $v1, .L7F0A78F0 +/* 0DC3F4 7F0A78C4 00000000 */ nop +/* 0DC3F8 7F0A78C8 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DC3FC 7F0A78CC 00002025 */ move $a0, $zero +/* 0DC400 7F0A78D0 2841FFD3 */ slti $at, $v0, -0x2d +/* 0DC404 7F0A78D4 14200004 */ bnez $at, .L7F0A78E8 +/* 0DC408 7F0A78D8 00002025 */ move $a0, $zero +/* 0DC40C 7F0A78DC 0C0030C3 */ jal get_controller_buttons_held +/* 0DC410 7F0A78E0 24050222 */ li $a1, 546 +/* 0DC414 7F0A78E4 10400002 */ beqz $v0, .L7F0A78F0 +.L7F0A78E8: +/* 0DC418 7F0A78E8 3C018004 */ lui $at, %hi(D_800409A4) +/* 0DC41C 7F0A78EC AC2009A4 */ sw $zero, %lo(D_800409A4)($at) +.L7F0A78F0: +/* 0DC420 7F0A78F0 3C0B8004 */ lui $t3, %hi(watch_soundrelated_maybe) +/* 0DC424 7F0A78F4 8D6B09A8 */ lw $t3, %lo(watch_soundrelated_maybe)($t3) +/* 0DC428 7F0A78F8 27A40060 */ addiu $a0, $sp, 0x60 +/* 0DC42C 7F0A78FC 27A50064 */ addiu $a1, $sp, 0x64 +/* 0DC430 7F0A7900 1160007E */ beqz $t3, .L7F0A7AFC +/* 0DC434 7F0A7904 8FA60054 */ lw $a2, 0x54($sp) +/* 0DC438 7F0A7908 8FAC005C */ lw $t4, 0x5c($sp) +/* 0DC43C 7F0A790C 27A40060 */ addiu $a0, $sp, 0x60 +/* 0DC440 7F0A7910 27A50064 */ addiu $a1, $sp, 0x64 +/* 0DC444 7F0A7914 8FA60054 */ lw $a2, 0x54($sp) +/* 0DC448 7F0A7918 8FA70058 */ lw $a3, 0x58($sp) +/* 0DC44C 7F0A791C AFA00014 */ sw $zero, 0x14($sp) +/* 0DC450 7F0A7920 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DC454 7F0A7924 AFAC0010 */ sw $t4, 0x10($sp) +/* 0DC458 7F0A7928 8FAD0058 */ lw $t5, 0x58($sp) +/* 0DC45C 7F0A792C 8FAE005C */ lw $t6, 0x5c($sp) +/* 0DC460 7F0A7930 8FB80064 */ lw $t8, 0x64($sp) +/* 0DC464 7F0A7934 8FB90060 */ lw $t9, 0x60($sp) +/* 0DC468 7F0A7938 3C0FA0FF */ lui $t7, (0xA0FFA0F0 >> 16) # lui $t7, 0xa0ff +/* 0DC46C 7F0A793C 35EFA0F0 */ ori $t7, (0xA0FFA0F0 & 0xFFFF) # ori $t7, $t7, 0xa0f0 +/* 0DC470 7F0A7940 AFAF0018 */ sw $t7, 0x18($sp) +/* 0DC474 7F0A7944 02002025 */ move $a0, $s0 +/* 0DC478 7F0A7948 27A5007C */ addiu $a1, $sp, 0x7c +/* 0DC47C 7F0A794C 27A60070 */ addiu $a2, $sp, 0x70 +/* 0DC480 7F0A7950 8FA70054 */ lw $a3, 0x54($sp) +/* 0DC484 7F0A7954 AFA00024 */ sw $zero, 0x24($sp) +/* 0DC488 7F0A7958 AFA00028 */ sw $zero, 0x28($sp) +/* 0DC48C 7F0A795C AFAD0010 */ sw $t5, 0x10($sp) +/* 0DC490 7F0A7960 AFAE0014 */ sw $t6, 0x14($sp) +/* 0DC494 7F0A7964 AFB8001C */ sw $t8, 0x1c($sp) +/* 0DC498 7F0A7968 0FC2B6AF */ jal en_text_write_stuff +/* 0DC49C 7F0A796C AFB90020 */ sw $t9, 0x20($sp) +/* 0DC4A0 7F0A7970 3C038004 */ lui $v1, %hi(D_800409A4) +/* 0DC4A4 7F0A7974 8C6309A4 */ lw $v1, %lo(D_800409A4)($v1) +/* 0DC4A8 7F0A7978 00408025 */ move $s0, $v0 +/* 0DC4AC 7F0A797C 1060002F */ beqz $v1, .L7F0A7A3C +/* 0DC4B0 7F0A7980 00000000 */ nop +/* 0DC4B4 7F0A7984 0C001107 */ jal get_video2_settings_txtClipW +/* 0DC4B8 7F0A7988 00000000 */ nop +/* 0DC4BC 7F0A798C 0C00110B */ jal get_video2_settings_txtClipH +/* 0DC4C0 7F0A7990 A7A20044 */ sh $v0, 0x44($sp) +/* 0DC4C4 7F0A7994 8FA80058 */ lw $t0, 0x58($sp) +/* 0DC4C8 7F0A7998 8FA9005C */ lw $t1, 0x5c($sp) +/* 0DC4CC 7F0A799C 87AC0044 */ lh $t4, 0x44($sp) +/* 0DC4D0 7F0A79A0 3C0B0070 */ lui $t3, (0x007000A0 >> 16) # lui $t3, 0x70 +/* 0DC4D4 7F0A79A4 356B00A0 */ ori $t3, (0x007000A0 & 0xFFFF) # ori $t3, $t3, 0xa0 +/* 0DC4D8 7F0A79A8 240AFFFF */ li $t2, -1 +/* 0DC4DC 7F0A79AC AFAA0018 */ sw $t2, 0x18($sp) +/* 0DC4E0 7F0A79B0 AFAB001C */ sw $t3, 0x1c($sp) +/* 0DC4E4 7F0A79B4 02002025 */ move $a0, $s0 +/* 0DC4E8 7F0A79B8 27A50078 */ addiu $a1, $sp, 0x78 +/* 0DC4EC 7F0A79BC 27A6006C */ addiu $a2, $sp, 0x6c +/* 0DC4F0 7F0A79C0 8FA70050 */ lw $a3, 0x50($sp) +/* 0DC4F4 7F0A79C4 AFA20024 */ sw $v0, 0x24($sp) +/* 0DC4F8 7F0A79C8 AFA00028 */ sw $zero, 0x28($sp) +/* 0DC4FC 7F0A79CC AFA0002C */ sw $zero, 0x2c($sp) +/* 0DC500 7F0A79D0 AFA80010 */ sw $t0, 0x10($sp) +/* 0DC504 7F0A79D4 AFA90014 */ sw $t1, 0x14($sp) +/* 0DC508 7F0A79D8 0FC2B9BB */ jal jp_text_write_stuff +/* 0DC50C 7F0A79DC AFAC0020 */ sw $t4, 0x20($sp) +/* 0DC510 7F0A79E0 0C001107 */ jal get_video2_settings_txtClipW +/* 0DC514 7F0A79E4 00408025 */ move $s0, $v0 +/* 0DC518 7F0A79E8 0C00110B */ jal get_video2_settings_txtClipH +/* 0DC51C 7F0A79EC A7A20044 */ sh $v0, 0x44($sp) +/* 0DC520 7F0A79F0 8FAD0058 */ lw $t5, 0x58($sp) +/* 0DC524 7F0A79F4 8FAE005C */ lw $t6, 0x5c($sp) +/* 0DC528 7F0A79F8 87B80044 */ lh $t8, 0x44($sp) +/* 0DC52C 7F0A79FC 3C0F00FF */ lui $t7, (0x00FF00B0 >> 16) # lui $t7, 0xff +/* 0DC530 7F0A7A00 35EF00B0 */ ori $t7, (0x00FF00B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0DC534 7F0A7A04 AFAF0018 */ sw $t7, 0x18($sp) +/* 0DC538 7F0A7A08 02002025 */ move $a0, $s0 +/* 0DC53C 7F0A7A0C 27A50074 */ addiu $a1, $sp, 0x74 +/* 0DC540 7F0A7A10 27A60068 */ addiu $a2, $sp, 0x68 +/* 0DC544 7F0A7A14 8FA7004C */ lw $a3, 0x4c($sp) +/* 0DC548 7F0A7A18 AFA20020 */ sw $v0, 0x20($sp) +/* 0DC54C 7F0A7A1C AFA00024 */ sw $zero, 0x24($sp) +/* 0DC550 7F0A7A20 AFA00028 */ sw $zero, 0x28($sp) +/* 0DC554 7F0A7A24 AFAD0010 */ sw $t5, 0x10($sp) +/* 0DC558 7F0A7A28 AFAE0014 */ sw $t6, 0x14($sp) +/* 0DC55C 7F0A7A2C 0FC2B6AF */ jal en_text_write_stuff +/* 0DC560 7F0A7A30 AFB8001C */ sw $t8, 0x1c($sp) +/* 0DC564 7F0A7A34 10000073 */ b .L7F0A7C04 +/* 0DC568 7F0A7A38 00408025 */ move $s0, $v0 +.L7F0A7A3C: +/* 0DC56C 7F0A7A3C 54600072 */ bnezl $v1, .L7F0A7C08 +/* 0DC570 7F0A7A40 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DC574 7F0A7A44 0C001107 */ jal get_video2_settings_txtClipW +/* 0DC578 7F0A7A48 00000000 */ nop +/* 0DC57C 7F0A7A4C 0C00110B */ jal get_video2_settings_txtClipH +/* 0DC580 7F0A7A50 A7A20044 */ sh $v0, 0x44($sp) +/* 0DC584 7F0A7A54 8FB90058 */ lw $t9, 0x58($sp) +/* 0DC588 7F0A7A58 8FA8005C */ lw $t0, 0x5c($sp) +/* 0DC58C 7F0A7A5C 87AA0044 */ lh $t2, 0x44($sp) +/* 0DC590 7F0A7A60 3C0900FF */ lui $t1, (0x00FF00B0 >> 16) # lui $t1, 0xff +/* 0DC594 7F0A7A64 352900B0 */ ori $t1, (0x00FF00B0 & 0xFFFF) # ori $t1, $t1, 0xb0 +/* 0DC598 7F0A7A68 AFA90018 */ sw $t1, 0x18($sp) +/* 0DC59C 7F0A7A6C 02002025 */ move $a0, $s0 +/* 0DC5A0 7F0A7A70 27A50078 */ addiu $a1, $sp, 0x78 +/* 0DC5A4 7F0A7A74 27A6006C */ addiu $a2, $sp, 0x6c +/* 0DC5A8 7F0A7A78 8FA70050 */ lw $a3, 0x50($sp) +/* 0DC5AC 7F0A7A7C AFA20020 */ sw $v0, 0x20($sp) +/* 0DC5B0 7F0A7A80 AFA00024 */ sw $zero, 0x24($sp) +/* 0DC5B4 7F0A7A84 AFA00028 */ sw $zero, 0x28($sp) +/* 0DC5B8 7F0A7A88 AFB90010 */ sw $t9, 0x10($sp) +/* 0DC5BC 7F0A7A8C AFA80014 */ sw $t0, 0x14($sp) +/* 0DC5C0 7F0A7A90 0FC2B6AF */ jal en_text_write_stuff +/* 0DC5C4 7F0A7A94 AFAA001C */ sw $t2, 0x1c($sp) +/* 0DC5C8 7F0A7A98 0C001107 */ jal get_video2_settings_txtClipW +/* 0DC5CC 7F0A7A9C 00408025 */ move $s0, $v0 +/* 0DC5D0 7F0A7AA0 0C00110B */ jal get_video2_settings_txtClipH +/* 0DC5D4 7F0A7AA4 A7A20044 */ sh $v0, 0x44($sp) +/* 0DC5D8 7F0A7AA8 8FAB0058 */ lw $t3, 0x58($sp) +/* 0DC5DC 7F0A7AAC 8FAC005C */ lw $t4, 0x5c($sp) +/* 0DC5E0 7F0A7AB0 87AF0044 */ lh $t7, 0x44($sp) +/* 0DC5E4 7F0A7AB4 3C0E0070 */ lui $t6, (0x007000A0 >> 16) # lui $t6, 0x70 +/* 0DC5E8 7F0A7AB8 35CE00A0 */ ori $t6, (0x007000A0 & 0xFFFF) # ori $t6, $t6, 0xa0 +/* 0DC5EC 7F0A7ABC 240DFFFF */ li $t5, -1 +/* 0DC5F0 7F0A7AC0 AFAD0018 */ sw $t5, 0x18($sp) +/* 0DC5F4 7F0A7AC4 AFAE001C */ sw $t6, 0x1c($sp) +/* 0DC5F8 7F0A7AC8 02002025 */ move $a0, $s0 +/* 0DC5FC 7F0A7ACC 27A50074 */ addiu $a1, $sp, 0x74 +/* 0DC600 7F0A7AD0 27A60068 */ addiu $a2, $sp, 0x68 +/* 0DC604 7F0A7AD4 8FA7004C */ lw $a3, 0x4c($sp) +/* 0DC608 7F0A7AD8 AFA20024 */ sw $v0, 0x24($sp) +/* 0DC60C 7F0A7ADC AFA00028 */ sw $zero, 0x28($sp) +/* 0DC610 7F0A7AE0 AFA0002C */ sw $zero, 0x2c($sp) +/* 0DC614 7F0A7AE4 AFAB0010 */ sw $t3, 0x10($sp) +/* 0DC618 7F0A7AE8 AFAC0014 */ sw $t4, 0x14($sp) +/* 0DC61C 7F0A7AEC 0FC2B9BB */ jal jp_text_write_stuff +/* 0DC620 7F0A7AF0 AFAF0020 */ sw $t7, 0x20($sp) +/* 0DC624 7F0A7AF4 10000043 */ b .L7F0A7C04 +/* 0DC628 7F0A7AF8 00408025 */ move $s0, $v0 +.L7F0A7AFC: +/* 0DC62C 7F0A7AFC 8FB8005C */ lw $t8, 0x5c($sp) +/* 0DC630 7F0A7B00 8FA70058 */ lw $a3, 0x58($sp) +/* 0DC634 7F0A7B04 AFA00014 */ sw $zero, 0x14($sp) +/* 0DC638 7F0A7B08 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DC63C 7F0A7B0C AFB80010 */ sw $t8, 0x10($sp) +/* 0DC640 7F0A7B10 8FB90058 */ lw $t9, 0x58($sp) +/* 0DC644 7F0A7B14 8FA8005C */ lw $t0, 0x5c($sp) +/* 0DC648 7F0A7B18 8FAA0064 */ lw $t2, 0x64($sp) +/* 0DC64C 7F0A7B1C 8FAB0060 */ lw $t3, 0x60($sp) +/* 0DC650 7F0A7B20 3C090080 */ lui $t1, (0x00800080 >> 16) # lui $t1, 0x80 +/* 0DC654 7F0A7B24 35290080 */ ori $t1, (0x00800080 & 0xFFFF) # ori $t1, $t1, 0x80 +/* 0DC658 7F0A7B28 AFA90018 */ sw $t1, 0x18($sp) +/* 0DC65C 7F0A7B2C 02002025 */ move $a0, $s0 +/* 0DC660 7F0A7B30 27A5007C */ addiu $a1, $sp, 0x7c +/* 0DC664 7F0A7B34 27A60070 */ addiu $a2, $sp, 0x70 +/* 0DC668 7F0A7B38 8FA70054 */ lw $a3, 0x54($sp) +/* 0DC66C 7F0A7B3C AFA00024 */ sw $zero, 0x24($sp) +/* 0DC670 7F0A7B40 AFA00028 */ sw $zero, 0x28($sp) +/* 0DC674 7F0A7B44 AFB90010 */ sw $t9, 0x10($sp) +/* 0DC678 7F0A7B48 AFA80014 */ sw $t0, 0x14($sp) +/* 0DC67C 7F0A7B4C AFAA001C */ sw $t2, 0x1c($sp) +/* 0DC680 7F0A7B50 0FC2B6AF */ jal en_text_write_stuff +/* 0DC684 7F0A7B54 AFAB0020 */ sw $t3, 0x20($sp) +/* 0DC688 7F0A7B58 0C001107 */ jal get_video2_settings_txtClipW +/* 0DC68C 7F0A7B5C 00408025 */ move $s0, $v0 +/* 0DC690 7F0A7B60 0C00110B */ jal get_video2_settings_txtClipH +/* 0DC694 7F0A7B64 A7A20044 */ sh $v0, 0x44($sp) +/* 0DC698 7F0A7B68 8FAC0058 */ lw $t4, 0x58($sp) +/* 0DC69C 7F0A7B6C 8FAD005C */ lw $t5, 0x5c($sp) +/* 0DC6A0 7F0A7B70 87AF0044 */ lh $t7, 0x44($sp) +/* 0DC6A4 7F0A7B74 3C0E0080 */ lui $t6, (0x00800080 >> 16) # lui $t6, 0x80 +/* 0DC6A8 7F0A7B78 35CE0080 */ ori $t6, (0x00800080 & 0xFFFF) # ori $t6, $t6, 0x80 +/* 0DC6AC 7F0A7B7C AFAE0018 */ sw $t6, 0x18($sp) +/* 0DC6B0 7F0A7B80 02002025 */ move $a0, $s0 +/* 0DC6B4 7F0A7B84 27A50078 */ addiu $a1, $sp, 0x78 +/* 0DC6B8 7F0A7B88 27A6006C */ addiu $a2, $sp, 0x6c +/* 0DC6BC 7F0A7B8C 8FA70050 */ lw $a3, 0x50($sp) +/* 0DC6C0 7F0A7B90 AFA20020 */ sw $v0, 0x20($sp) +/* 0DC6C4 7F0A7B94 AFA00024 */ sw $zero, 0x24($sp) +/* 0DC6C8 7F0A7B98 AFA00028 */ sw $zero, 0x28($sp) +/* 0DC6CC 7F0A7B9C AFAC0010 */ sw $t4, 0x10($sp) +/* 0DC6D0 7F0A7BA0 AFAD0014 */ sw $t5, 0x14($sp) +/* 0DC6D4 7F0A7BA4 0FC2B6AF */ jal en_text_write_stuff +/* 0DC6D8 7F0A7BA8 AFAF001C */ sw $t7, 0x1c($sp) +/* 0DC6DC 7F0A7BAC 0C001107 */ jal get_video2_settings_txtClipW +/* 0DC6E0 7F0A7BB0 00408025 */ move $s0, $v0 +/* 0DC6E4 7F0A7BB4 0C00110B */ jal get_video2_settings_txtClipH +/* 0DC6E8 7F0A7BB8 A7A20044 */ sh $v0, 0x44($sp) +/* 0DC6EC 7F0A7BBC 8FB80058 */ lw $t8, 0x58($sp) +/* 0DC6F0 7F0A7BC0 8FB9005C */ lw $t9, 0x5c($sp) +/* 0DC6F4 7F0A7BC4 87A90044 */ lh $t1, 0x44($sp) +/* 0DC6F8 7F0A7BC8 3C080080 */ lui $t0, (0x00800080 >> 16) # lui $t0, 0x80 +/* 0DC6FC 7F0A7BCC 35080080 */ ori $t0, (0x00800080 & 0xFFFF) # ori $t0, $t0, 0x80 +/* 0DC700 7F0A7BD0 AFA80018 */ sw $t0, 0x18($sp) +/* 0DC704 7F0A7BD4 02002025 */ move $a0, $s0 +/* 0DC708 7F0A7BD8 27A50074 */ addiu $a1, $sp, 0x74 +/* 0DC70C 7F0A7BDC 27A60068 */ addiu $a2, $sp, 0x68 +/* 0DC710 7F0A7BE0 8FA7004C */ lw $a3, 0x4c($sp) +/* 0DC714 7F0A7BE4 AFA20020 */ sw $v0, 0x20($sp) +/* 0DC718 7F0A7BE8 AFA00024 */ sw $zero, 0x24($sp) +/* 0DC71C 7F0A7BEC AFA00028 */ sw $zero, 0x28($sp) +/* 0DC720 7F0A7BF0 AFB80010 */ sw $t8, 0x10($sp) +/* 0DC724 7F0A7BF4 AFB90014 */ sw $t9, 0x14($sp) +/* 0DC728 7F0A7BF8 0FC2B6AF */ jal en_text_write_stuff +/* 0DC72C 7F0A7BFC AFA9001C */ sw $t1, 0x1c($sp) +/* 0DC730 7F0A7C00 00408025 */ move $s0, $v0 +.L7F0A7C04: +/* 0DC734 7F0A7C04 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0A7C08: +/* 0DC738 7F0A7C08 02001025 */ move $v0, $s0 +/* 0DC73C 7F0A7C0C 8FB00038 */ lw $s0, 0x38($sp) +/* 0DC740 7F0A7C10 03E00008 */ jr $ra +/* 0DC744 7F0A7C14 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A7C18(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A7C18 +/* 0DC748 7F0A7C18 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0DC74C 7F0A7C1C AFB20040 */ sw $s2, 0x40($sp) +/* 0DC750 7F0A7C20 00809025 */ move $s2, $a0 +/* 0DC754 7F0A7C24 AFBF0044 */ sw $ra, 0x44($sp) +/* 0DC758 7F0A7C28 AFB1003C */ sw $s1, 0x3c($sp) +/* 0DC75C 7F0A7C2C AFB00038 */ sw $s0, 0x38($sp) +/* 0DC760 7F0A7C30 0FC30776 */ jal get_textptr_for_textID +/* 0DC764 7F0A7C34 3404AC27 */ li $a0, 44071 +/* 0DC768 7F0A7C38 3C108004 */ lui $s0, %hi(ptrFirstFontTableSmall) +/* 0DC76C 7F0A7C3C 3C118004 */ lui $s1, %hi(ptrSecondFontTableSmall) +/* 0DC770 7F0A7C40 AFA2006C */ sw $v0, 0x6c($sp) +/* 0DC774 7F0A7C44 8E100EAC */ lw $s0, %lo(ptrFirstFontTableSmall)($s0) +/* 0DC778 7F0A7C48 0FC15D2E */ jal check_objectives_complete +/* 0DC77C 7F0A7C4C 8E310EB0 */ lw $s1, %lo(ptrSecondFontTableSmall)($s1) +/* 0DC780 7F0A7C50 10400008 */ beqz $v0, .L7F0A7C74 +/* 0DC784 7F0A7C54 3C0F8004 */ lui $t7, %hi(D_80040AF4) +/* 0DC788 7F0A7C58 3C0E00FF */ lui $t6, (0x00FF00B0 >> 16) # lui $t6, 0xff +/* 0DC78C 7F0A7C5C 35CE00B0 */ ori $t6, (0x00FF00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0DC790 7F0A7C60 AFAE004C */ sw $t6, 0x4c($sp) +/* 0DC794 7F0A7C64 0FC30776 */ jal get_textptr_for_textID +/* 0DC798 7F0A7C68 3404AC28 */ li $a0, 44072 +/* 0DC79C 7F0A7C6C 10000006 */ b .L7F0A7C88 +/* 0DC7A0 7F0A7C70 AFA20068 */ sw $v0, 0x68($sp) +.L7F0A7C74: +/* 0DC7A4 7F0A7C74 8DEF0AF4 */ lw $t7, %lo(D_80040AF4)($t7) +/* 0DC7A8 7F0A7C78 3404AC29 */ li $a0, 44073 +/* 0DC7AC 7F0A7C7C 0FC30776 */ jal get_textptr_for_textID +/* 0DC7B0 7F0A7C80 AFAF004C */ sw $t7, 0x4c($sp) +/* 0DC7B4 7F0A7C84 AFA20068 */ sw $v0, 0x68($sp) +.L7F0A7C88: +/* 0DC7B8 7F0A7C88 0FC2B366 */ jal microcode_constructor +/* 0DC7BC 7F0A7C8C 02402025 */ move $a0, $s2 +/* 0DC7C0 7F0A7C90 00409025 */ move $s2, $v0 +/* 0DC7C4 7F0A7C94 27A4005C */ addiu $a0, $sp, 0x5c +/* 0DC7C8 7F0A7C98 27A50058 */ addiu $a1, $sp, 0x58 +/* 0DC7CC 7F0A7C9C 8FA6006C */ lw $a2, 0x6c($sp) +/* 0DC7D0 7F0A7CA0 02203825 */ move $a3, $s1 +/* 0DC7D4 7F0A7CA4 AFB00010 */ sw $s0, 0x10($sp) +/* 0DC7D8 7F0A7CA8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DC7DC 7F0A7CAC AFA00014 */ sw $zero, 0x14($sp) +/* 0DC7E0 7F0A7CB0 8FA90058 */ lw $t1, 0x58($sp) +/* 0DC7E4 7F0A7CB4 8FAA005C */ lw $t2, 0x5c($sp) +/* 0DC7E8 7F0A7CB8 3C0800FF */ lui $t0, (0x00FF00B0 >> 16) # lui $t0, 0xff +/* 0DC7EC 7F0A7CBC 24180051 */ li $t8, 81 +/* 0DC7F0 7F0A7CC0 24190041 */ li $t9, 65 +/* 0DC7F4 7F0A7CC4 350800B0 */ ori $t0, (0x00FF00B0 & 0xFFFF) # ori $t0, $t0, 0xb0 +/* 0DC7F8 7F0A7CC8 AFB80064 */ sw $t8, 0x64($sp) +/* 0DC7FC 7F0A7CCC AFB90060 */ sw $t9, 0x60($sp) +/* 0DC800 7F0A7CD0 AFA80018 */ sw $t0, 0x18($sp) +/* 0DC804 7F0A7CD4 02402025 */ move $a0, $s2 +/* 0DC808 7F0A7CD8 27A50064 */ addiu $a1, $sp, 0x64 +/* 0DC80C 7F0A7CDC 27A60060 */ addiu $a2, $sp, 0x60 +/* 0DC810 7F0A7CE0 8FA7006C */ lw $a3, 0x6c($sp) +/* 0DC814 7F0A7CE4 AFB10010 */ sw $s1, 0x10($sp) +/* 0DC818 7F0A7CE8 AFB00014 */ sw $s0, 0x14($sp) +/* 0DC81C 7F0A7CEC AFA00024 */ sw $zero, 0x24($sp) +/* 0DC820 7F0A7CF0 AFA00028 */ sw $zero, 0x28($sp) +/* 0DC824 7F0A7CF4 AFA9001C */ sw $t1, 0x1c($sp) +/* 0DC828 7F0A7CF8 0FC2B6AF */ jal en_text_write_stuff +/* 0DC82C 7F0A7CFC AFAA0020 */ sw $t2, 0x20($sp) +/* 0DC830 7F0A7D00 3C0B8005 */ lui $t3, %hi(j_text_trigger) +/* 0DC834 7F0A7D04 8D6B84D0 */ lw $t3, %lo(j_text_trigger)($t3) +/* 0DC838 7F0A7D08 00409025 */ move $s2, $v0 +/* 0DC83C 7F0A7D0C 8FAC0064 */ lw $t4, 0x64($sp) +/* 0DC840 7F0A7D10 11600003 */ beqz $t3, .L7F0A7D20 +/* 0DC844 7F0A7D14 8FAD0058 */ lw $t5, 0x58($sp) +/* 0DC848 7F0A7D18 10000002 */ b .L7F0A7D24 +/* 0DC84C 7F0A7D1C 24020022 */ li $v0, 34 +.L7F0A7D20: +/* 0DC850 7F0A7D20 00001025 */ move $v0, $zero +.L7F0A7D24: +/* 0DC854 7F0A7D24 8FB90060 */ lw $t9, 0x60($sp) +/* 0DC858 7F0A7D28 8FA8005C */ lw $t0, 0x5c($sp) +/* 0DC85C 7F0A7D2C 018D7021 */ addu $t6, $t4, $t5 +/* 0DC860 7F0A7D30 01C27821 */ addu $t7, $t6, $v0 +/* 0DC864 7F0A7D34 25F80004 */ addiu $t8, $t7, 4 +/* 0DC868 7F0A7D38 03284823 */ subu $t1, $t9, $t0 +/* 0DC86C 7F0A7D3C AFB80064 */ sw $t8, 0x64($sp) +/* 0DC870 7F0A7D40 AFA90060 */ sw $t1, 0x60($sp) +/* 0DC874 7F0A7D44 27A4005C */ addiu $a0, $sp, 0x5c +/* 0DC878 7F0A7D48 27A50058 */ addiu $a1, $sp, 0x58 +/* 0DC87C 7F0A7D4C 8FA60068 */ lw $a2, 0x68($sp) +/* 0DC880 7F0A7D50 02203825 */ move $a3, $s1 +/* 0DC884 7F0A7D54 AFB00010 */ sw $s0, 0x10($sp) +/* 0DC888 7F0A7D58 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DC88C 7F0A7D5C AFA00014 */ sw $zero, 0x14($sp) +/* 0DC890 7F0A7D60 8FAA004C */ lw $t2, 0x4c($sp) +/* 0DC894 7F0A7D64 8FAB0058 */ lw $t3, 0x58($sp) +/* 0DC898 7F0A7D68 8FAC005C */ lw $t4, 0x5c($sp) +/* 0DC89C 7F0A7D6C 02402025 */ move $a0, $s2 +/* 0DC8A0 7F0A7D70 27A50064 */ addiu $a1, $sp, 0x64 +/* 0DC8A4 7F0A7D74 27A60060 */ addiu $a2, $sp, 0x60 +/* 0DC8A8 7F0A7D78 8FA70068 */ lw $a3, 0x68($sp) +/* 0DC8AC 7F0A7D7C AFB10010 */ sw $s1, 0x10($sp) +/* 0DC8B0 7F0A7D80 AFB00014 */ sw $s0, 0x14($sp) +/* 0DC8B4 7F0A7D84 AFA00024 */ sw $zero, 0x24($sp) +/* 0DC8B8 7F0A7D88 AFA00028 */ sw $zero, 0x28($sp) +/* 0DC8BC 7F0A7D8C AFAA0018 */ sw $t2, 0x18($sp) +/* 0DC8C0 7F0A7D90 AFAB001C */ sw $t3, 0x1c($sp) +/* 0DC8C4 7F0A7D94 0FC2B6AF */ jal en_text_write_stuff +/* 0DC8C8 7F0A7D98 AFAC0020 */ sw $t4, 0x20($sp) +/* 0DC8CC 7F0A7D9C 0FC29DF2 */ jal sub_GAME_7F0A77C8 +/* 0DC8D0 7F0A7DA0 00402025 */ move $a0, $v0 +/* 0DC8D4 7F0A7DA4 8FBF0044 */ lw $ra, 0x44($sp) +/* 0DC8D8 7F0A7DA8 8FB00038 */ lw $s0, 0x38($sp) +/* 0DC8DC 7F0A7DAC 8FB1003C */ lw $s1, 0x3c($sp) +/* 0DC8E0 7F0A7DB0 8FB20040 */ lw $s2, 0x40($sp) +/* 0DC8E4 7F0A7DB4 03E00008 */ jr $ra +/* 0DC8E8 7F0A7DB8 27BD0070 */ addiu $sp, $sp, 0x70 +) +#endif + + + + + +u32 sub_GAME_7F0A7DBC(u32 uParm1) { + return uParm1; +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A7DC4(s32 arg0) +{ + s32 txtptr; + s32 sp50; + ?32 sp4C; + s32 sp48; + s32 sp44; + s32 pFirstFontTable; + s32 pSecondFontTable; + s32 joffset; + + txtptr = get_textptr_for_textID(0xac2b); + if (j_text_trigger != 0) + { + joffset = -5; + } + else + { + joffset = 0; + } + sp50 = (s32) (joffset + 0x65); + sp4C = 0x31; + sp48 = 0; + sp44 = 0; + pFirstFontTable = (s32) ptrFirstFontTableSmall; + pSecondFontTable = (s32) ptrSecondFontTableSmall; + arg0 = microcode_constructor(arg0); + sub_GAME_7F0AE98C(&sp48, &sp44, txtptr, pSecondFontTable, pFirstFontTable, 0); + en_text_write_stuff(arg0, &sp50, &sp4C, txtptr, pSecondFontTable, pFirstFontTable, 0xff00b0, sp44, sp48, 0, 0); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A7DC4 +/* 0DC8F4 7F0A7DC4 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0DC8F8 7F0A7DC8 AFBF0034 */ sw $ra, 0x34($sp) +/* 0DC8FC 7F0A7DCC AFA40058 */ sw $a0, 0x58($sp) +/* 0DC900 7F0A7DD0 0FC30776 */ jal get_textptr_for_textID +/* 0DC904 7F0A7DD4 3404AC2B */ li $a0, 44075 +/* 0DC908 7F0A7DD8 3C0E8005 */ lui $t6, %hi(j_text_trigger) +/* 0DC90C 7F0A7DDC 8DCE84D0 */ lw $t6, %lo(j_text_trigger)($t6) +/* 0DC910 7F0A7DE0 AFA20054 */ sw $v0, 0x54($sp) +/* 0DC914 7F0A7DE4 24180031 */ li $t8, 49 +/* 0DC918 7F0A7DE8 11C00003 */ beqz $t6, .L7F0A7DF8 +/* 0DC91C 7F0A7DEC 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 0DC920 7F0A7DF0 10000002 */ b .L7F0A7DFC +/* 0DC924 7F0A7DF4 2402FFFB */ li $v0, -5 +.L7F0A7DF8: +/* 0DC928 7F0A7DF8 00001025 */ move $v0, $zero +.L7F0A7DFC: +/* 0DC92C 7F0A7DFC 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall) +/* 0DC930 7F0A7E00 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0DC934 7F0A7E04 8D080EB0 */ lw $t0, %lo(ptrSecondFontTableSmall)($t0) +/* 0DC938 7F0A7E08 244F0065 */ addiu $t7, $v0, 0x65 +/* 0DC93C 7F0A7E0C AFAF0050 */ sw $t7, 0x50($sp) +/* 0DC940 7F0A7E10 AFB8004C */ sw $t8, 0x4c($sp) +/* 0DC944 7F0A7E14 AFA00048 */ sw $zero, 0x48($sp) +/* 0DC948 7F0A7E18 AFA00044 */ sw $zero, 0x44($sp) +/* 0DC94C 7F0A7E1C 8FA40058 */ lw $a0, 0x58($sp) +/* 0DC950 7F0A7E20 AFB90040 */ sw $t9, 0x40($sp) +/* 0DC954 7F0A7E24 0FC2B366 */ jal microcode_constructor +/* 0DC958 7F0A7E28 AFA8003C */ sw $t0, 0x3c($sp) +/* 0DC95C 7F0A7E2C 8FA90040 */ lw $t1, 0x40($sp) +/* 0DC960 7F0A7E30 AFA20058 */ sw $v0, 0x58($sp) +/* 0DC964 7F0A7E34 27A40048 */ addiu $a0, $sp, 0x48 +/* 0DC968 7F0A7E38 27A50044 */ addiu $a1, $sp, 0x44 +/* 0DC96C 7F0A7E3C 8FA60054 */ lw $a2, 0x54($sp) +/* 0DC970 7F0A7E40 8FA7003C */ lw $a3, 0x3c($sp) +/* 0DC974 7F0A7E44 AFA00014 */ sw $zero, 0x14($sp) +/* 0DC978 7F0A7E48 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DC97C 7F0A7E4C AFA90010 */ sw $t1, 0x10($sp) +/* 0DC980 7F0A7E50 8FAA003C */ lw $t2, 0x3c($sp) +/* 0DC984 7F0A7E54 8FAB0040 */ lw $t3, 0x40($sp) +/* 0DC988 7F0A7E58 8FAD0044 */ lw $t5, 0x44($sp) +/* 0DC98C 7F0A7E5C 8FAE0048 */ lw $t6, 0x48($sp) +/* 0DC990 7F0A7E60 3C0C00FF */ lui $t4, (0x00FF00B0 >> 16) # lui $t4, 0xff +/* 0DC994 7F0A7E64 358C00B0 */ ori $t4, (0x00FF00B0 & 0xFFFF) # ori $t4, $t4, 0xb0 +/* 0DC998 7F0A7E68 AFAC0018 */ sw $t4, 0x18($sp) +/* 0DC99C 7F0A7E6C 8FA40058 */ lw $a0, 0x58($sp) +/* 0DC9A0 7F0A7E70 27A50050 */ addiu $a1, $sp, 0x50 +/* 0DC9A4 7F0A7E74 27A6004C */ addiu $a2, $sp, 0x4c +/* 0DC9A8 7F0A7E78 8FA70054 */ lw $a3, 0x54($sp) +/* 0DC9AC 7F0A7E7C AFA00024 */ sw $zero, 0x24($sp) +/* 0DC9B0 7F0A7E80 AFA00028 */ sw $zero, 0x28($sp) +/* 0DC9B4 7F0A7E84 AFAA0010 */ sw $t2, 0x10($sp) +/* 0DC9B8 7F0A7E88 AFAB0014 */ sw $t3, 0x14($sp) +/* 0DC9BC 7F0A7E8C AFAD001C */ sw $t5, 0x1c($sp) +/* 0DC9C0 7F0A7E90 0FC2B6AF */ jal en_text_write_stuff +/* 0DC9C4 7F0A7E94 AFAE0020 */ sw $t6, 0x20($sp) +/* 0DC9C8 7F0A7E98 8FBF0034 */ lw $ra, 0x34($sp) +/* 0DC9CC 7F0A7E9C 27BD0058 */ addiu $sp, $sp, 0x58 +/* 0DC9D0 7F0A7EA0 03E00008 */ jr $ra +/* 0DC9D4 7F0A7EA4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void debug_gun_watch_move_related(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005850C +.word 0x3f7ae148 /*0.98000002*/ +glabel D_80058510 +.word 0x3f829cbc /*1.0204082*/ +glabel D_80058514 +.word 0x461c4000 /*10000.0*/ +glabel D_80058518 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005851C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80058520 +.word 0x3f7ae148 /*0.98000002*/ +glabel D_80058524 +.word 0x3f829cbc /*1.0204082*/ +glabel D_80058528 +.word 0x461c4000 /*10000.0*/ +glabel D_8005852C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80058530 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel debug_gun_watch_move_related +/* 0DC9D8 7F0A7EA8 27BDFEE8 */ addiu $sp, $sp, -0x118 +/* 0DC9DC 7F0A7EAC AFBF003C */ sw $ra, 0x3c($sp) +/* 0DC9E0 7F0A7EB0 AFB00038 */ sw $s0, 0x38($sp) +/* 0DC9E4 7F0A7EB4 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0DC9E8 7F0A7EB8 00808025 */ move $s0, $a0 +/* 0DC9EC 7F0A7EBC 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0DC9F0 7F0A7EC0 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0DC9F4 7F0A7EC4 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0DC9F8 7F0A7EC8 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0DC9FC 7F0A7ECC AFA20114 */ sw $v0, 0x114($sp) +/* 0DCA00 7F0A7ED0 AFA00084 */ sw $zero, 0x84($sp) +/* 0DCA04 7F0A7ED4 AFA00080 */ sw $zero, 0x80($sp) +/* 0DCA08 7F0A7ED8 AFAE007C */ sw $t6, 0x7c($sp) +/* 0DCA0C 7F0A7EDC 0FC23630 */ jal get_BONDdata_equipcuritem +/* 0DCA10 7F0A7EE0 AFAF0078 */ sw $t7, 0x78($sp) +/* 0DCA14 7F0A7EE4 AFA20074 */ sw $v0, 0x74($sp) +/* 0DCA18 7F0A7EE8 0FC234AA */ jal get_weaponnum_by_inv_index +/* 0DCA1C 7F0A7EEC 00402025 */ move $a0, $v0 +/* 0DCA20 7F0A7EF0 AFA20070 */ sw $v0, 0x70($sp) +/* 0DCA24 7F0A7EF4 0FC235F6 */ jal sub_GAME_7F08D7D8 +/* 0DCA28 7F0A7EF8 8FA40074 */ lw $a0, 0x74($sp) +/* 0DCA2C 7F0A7EFC E7A0006C */ swc1 $f0, 0x6c($sp) +/* 0DCA30 7F0A7F00 0FC23600 */ jal sub_GAME_7F08D800 +/* 0DCA34 7F0A7F04 8FA40074 */ lw $a0, 0x74($sp) +/* 0DCA38 7F0A7F08 E7A00068 */ swc1 $f0, 0x68($sp) +/* 0DCA3C 7F0A7F0C 0FC2360A */ jal sub_GAME_7F08D828 +/* 0DCA40 7F0A7F10 8FA40074 */ lw $a0, 0x74($sp) +/* 0DCA44 7F0A7F14 E7A00064 */ swc1 $f0, 0x64($sp) +/* 0DCA48 7F0A7F18 0FC235EC */ jal sub_GAME_7F08D7B0 +/* 0DCA4C 7F0A7F1C 8FA40074 */ lw $a0, 0x74($sp) +/* 0DCA50 7F0A7F20 E7A00060 */ swc1 $f0, 0x60($sp) +/* 0DCA54 7F0A7F24 0FC23614 */ jal sub_GAME_7F08D850 +/* 0DCA58 7F0A7F28 8FA40074 */ lw $a0, 0x74($sp) +/* 0DCA5C 7F0A7F2C E7A0005C */ swc1 $f0, 0x5c($sp) +/* 0DCA60 7F0A7F30 0FC2361E */ jal sub_GAME_7F08D878 +/* 0DCA64 7F0A7F34 8FA40074 */ lw $a0, 0x74($sp) +/* 0DCA68 7F0A7F38 E7A00058 */ swc1 $f0, 0x58($sp) +/* 0DCA6C 7F0A7F3C 0FC23572 */ jal sub_GAME_7F08D5C8 +/* 0DCA70 7F0A7F40 8FA40074 */ lw $a0, 0x74($sp) +/* 0DCA74 7F0A7F44 AFA20054 */ sw $v0, 0x54($sp) +/* 0DCA78 7F0A7F48 0FC235AF */ jal sub_GAME_7F08D6BC +/* 0DCA7C 7F0A7F4C 8FA40074 */ lw $a0, 0x74($sp) +/* 0DCA80 7F0A7F50 0FC24415 */ jal get_debug_gunwatchpos_flag +/* 0DCA84 7F0A7F54 AFA20050 */ sw $v0, 0x50($sp) +/* 0DCA88 7F0A7F58 5040004C */ beql $v0, $zero, .L7F0A808C +/* 0DCA8C 7F0A7F5C 3C014120 */ lui $at, 0x4120 +/* 0DCA90 7F0A7F60 0FC17674 */ jal get_item_in_hand +/* 0DCA94 7F0A7F64 00002025 */ move $a0, $zero +/* 0DCA98 7F0A7F68 0002C0C0 */ sll $t8, $v0, 3 +/* 0DCA9C 7F0A7F6C 0302C023 */ subu $t8, $t8, $v0 +/* 0DCAA0 7F0A7F70 3C198003 */ lui $t9, %hi(gitem_structs) +/* 0DCAA4 7F0A7F74 27393924 */ addiu $t9, %lo(gitem_structs) # addiu $t9, $t9, 0x3924 +/* 0DCAA8 7F0A7F78 0018C0C0 */ sll $t8, $t8, 3 +/* 0DCAAC 7F0A7F7C 03191821 */ addu $v1, $t8, $t9 +/* 0DCAB0 7F0A7F80 AFA3004C */ sw $v1, 0x4c($sp) +/* 0DCAB4 7F0A7F84 00002025 */ move $a0, $zero +/* 0DCAB8 7F0A7F88 0C0030C3 */ jal get_controller_buttons_held +/* 0DCABC 7F0A7F8C 24050002 */ li $a1, 2 +/* 0DCAC0 7F0A7F90 10400006 */ beqz $v0, .L7F0A7FAC +/* 0DCAC4 7F0A7F94 8FA3004C */ lw $v1, 0x4c($sp) +/* 0DCAC8 7F0A7F98 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DCACC 7F0A7F9C 44813000 */ mtc1 $at, $f6 +/* 0DCAD0 7F0A7FA0 C4640018 */ lwc1 $f4, 0x18($v1) +/* 0DCAD4 7F0A7FA4 46062201 */ sub.s $f8, $f4, $f6 +/* 0DCAD8 7F0A7FA8 E4680018 */ swc1 $f8, 0x18($v1) +.L7F0A7FAC: +/* 0DCADC 7F0A7FAC 00002025 */ move $a0, $zero +/* 0DCAE0 7F0A7FB0 24050001 */ li $a1, 1 +/* 0DCAE4 7F0A7FB4 0C0030C3 */ jal get_controller_buttons_held +/* 0DCAE8 7F0A7FB8 AFA3004C */ sw $v1, 0x4c($sp) +/* 0DCAEC 7F0A7FBC 10400006 */ beqz $v0, .L7F0A7FD8 +/* 0DCAF0 7F0A7FC0 8FA3004C */ lw $v1, 0x4c($sp) +/* 0DCAF4 7F0A7FC4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DCAF8 7F0A7FC8 44818000 */ mtc1 $at, $f16 +/* 0DCAFC 7F0A7FCC C46A0018 */ lwc1 $f10, 0x18($v1) +/* 0DCB00 7F0A7FD0 46105480 */ add.s $f18, $f10, $f16 +/* 0DCB04 7F0A7FD4 E4720018 */ swc1 $f18, 0x18($v1) +.L7F0A7FD8: +/* 0DCB08 7F0A7FD8 00002025 */ move $a0, $zero +/* 0DCB0C 7F0A7FDC 24050004 */ li $a1, 4 +/* 0DCB10 7F0A7FE0 0C0030C3 */ jal get_controller_buttons_held +/* 0DCB14 7F0A7FE4 AFA3004C */ sw $v1, 0x4c($sp) +/* 0DCB18 7F0A7FE8 10400006 */ beqz $v0, .L7F0A8004 +/* 0DCB1C 7F0A7FEC 8FA3004C */ lw $v1, 0x4c($sp) +/* 0DCB20 7F0A7FF0 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DCB24 7F0A7FF4 44813000 */ mtc1 $at, $f6 +/* 0DCB28 7F0A7FF8 C4640014 */ lwc1 $f4, 0x14($v1) +/* 0DCB2C 7F0A7FFC 46062200 */ add.s $f8, $f4, $f6 +/* 0DCB30 7F0A8000 E4680014 */ swc1 $f8, 0x14($v1) +.L7F0A8004: +/* 0DCB34 7F0A8004 00002025 */ move $a0, $zero +/* 0DCB38 7F0A8008 24050008 */ li $a1, 8 +/* 0DCB3C 7F0A800C 0C0030C3 */ jal get_controller_buttons_held +/* 0DCB40 7F0A8010 AFA3004C */ sw $v1, 0x4c($sp) +/* 0DCB44 7F0A8014 10400006 */ beqz $v0, .L7F0A8030 +/* 0DCB48 7F0A8018 8FA3004C */ lw $v1, 0x4c($sp) +/* 0DCB4C 7F0A801C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DCB50 7F0A8020 44818000 */ mtc1 $at, $f16 +/* 0DCB54 7F0A8024 C46A0014 */ lwc1 $f10, 0x14($v1) +/* 0DCB58 7F0A8028 46105481 */ sub.s $f18, $f10, $f16 +/* 0DCB5C 7F0A802C E4720014 */ swc1 $f18, 0x14($v1) +.L7F0A8030: +/* 0DCB60 7F0A8030 00002025 */ move $a0, $zero +/* 0DCB64 7F0A8034 24050020 */ li $a1, 32 +/* 0DCB68 7F0A8038 0C0030C3 */ jal get_controller_buttons_held +/* 0DCB6C 7F0A803C AFA3004C */ sw $v1, 0x4c($sp) +/* 0DCB70 7F0A8040 10400006 */ beqz $v0, .L7F0A805C +/* 0DCB74 7F0A8044 8FA3004C */ lw $v1, 0x4c($sp) +/* 0DCB78 7F0A8048 3C018006 */ lui $at, %hi(D_8005850C) +/* 0DCB7C 7F0A804C C426850C */ lwc1 $f6, %lo(D_8005850C)($at) +/* 0DCB80 7F0A8050 C464001C */ lwc1 $f4, 0x1c($v1) +/* 0DCB84 7F0A8054 46062202 */ mul.s $f8, $f4, $f6 +/* 0DCB88 7F0A8058 E468001C */ swc1 $f8, 0x1c($v1) +.L7F0A805C: +/* 0DCB8C 7F0A805C 00002025 */ move $a0, $zero +/* 0DCB90 7F0A8060 24050010 */ li $a1, 16 +/* 0DCB94 7F0A8064 0C0030C3 */ jal get_controller_buttons_held +/* 0DCB98 7F0A8068 AFA3004C */ sw $v1, 0x4c($sp) +/* 0DCB9C 7F0A806C 10400006 */ beqz $v0, .L7F0A8088 +/* 0DCBA0 7F0A8070 8FA3004C */ lw $v1, 0x4c($sp) +/* 0DCBA4 7F0A8074 3C018006 */ lui $at, %hi(D_80058510) +/* 0DCBA8 7F0A8078 C4308510 */ lwc1 $f16, %lo(D_80058510)($at) +/* 0DCBAC 7F0A807C C46A001C */ lwc1 $f10, 0x1c($v1) +/* 0DCBB0 7F0A8080 46105482 */ mul.s $f18, $f10, $f16 +/* 0DCBB4 7F0A8084 E472001C */ swc1 $f18, 0x1c($v1) +.L7F0A8088: +/* 0DCBB8 7F0A8088 3C014120 */ li $at, 0x41200000 # 10.000000 +.L7F0A808C: +/* 0DCBBC 7F0A808C 44812000 */ mtc1 $at, $f4 +/* 0DCBC0 7F0A8090 3C018006 */ lui $at, %hi(D_80058514) +/* 0DCBC4 7F0A8094 C4268514 */ lwc1 $f6, %lo(D_80058514)($at) +/* 0DCBC8 7F0A8098 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DCBCC 7F0A809C 44814000 */ mtc1 $at, $f8 +/* 0DCBD0 7F0A80A0 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 0DCBD4 7F0A80A4 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 0DCBD8 7F0A80A8 8FA40114 */ lw $a0, 0x114($sp) +/* 0DCBDC 7F0A80AC 27A50112 */ addiu $a1, $sp, 0x112 +/* 0DCBE0 7F0A80B0 8FA60060 */ lw $a2, 0x60($sp) +/* 0DCBE4 7F0A80B4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0DCBE8 7F0A80B8 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0DCBEC 7F0A80BC 0C003FAC */ jal guPerspective +/* 0DCBF0 7F0A80C0 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0DCBF4 7F0A80C4 3C080103 */ lui $t0, (0x01030040 >> 16) # lui $t0, 0x103 +/* 0DCBF8 7F0A80C8 35080040 */ ori $t0, (0x01030040 & 0xFFFF) # ori $t0, $t0, 0x40 +/* 0DCBFC 7F0A80CC 02001825 */ move $v1, $s0 +/* 0DCC00 7F0A80D0 AC680000 */ sw $t0, ($v1) +/* 0DCC04 7F0A80D4 AFA30048 */ sw $v1, 0x48($sp) +/* 0DCC08 7F0A80D8 8FA40114 */ lw $a0, 0x114($sp) +/* 0DCC0C 7F0A80DC 0C003A2C */ jal osVirtualToPhysical +/* 0DCC10 7F0A80E0 26100008 */ addiu $s0, $s0, 8 +/* 0DCC14 7F0A80E4 8FA30048 */ lw $v1, 0x48($sp) +/* 0DCC18 7F0A80E8 3C018006 */ lui $at, %hi(D_80058518) +/* 0DCC1C 7F0A80EC 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0DCC20 7F0A80F0 AC620004 */ sw $v0, 4($v1) +/* 0DCC24 7F0A80F4 C4308518 */ lwc1 $f16, %lo(D_80058518)($at) +/* 0DCC28 7F0A80F8 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 0DCC2C 7F0A80FC 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DCC30 7F0A8100 44812000 */ mtc1 $at, $f4 +/* 0DCC34 7F0A8104 46105482 */ mul.s $f18, $f10, $f16 +/* 0DCC38 7F0A8108 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0DCC3C 7F0A810C 46049303 */ div.s $f12, $f18, $f4 +/* 0DCC40 7F0A8110 3C018006 */ lui $at, %hi(D_8005851C) +/* 0DCC44 7F0A8114 C420851C */ lwc1 $f0, %lo(D_8005851C)($at) +/* 0DCC48 7F0A8118 C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 0DCC4C 7F0A811C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DCC50 7F0A8120 44815000 */ mtc1 $at, $f10 +/* 0DCC54 7F0A8124 46003202 */ mul.s $f8, $f6, $f0 +/* 0DCC58 7F0A8128 27A50090 */ addiu $a1, $sp, 0x90 +/* 0DCC5C 7F0A812C 460A4403 */ div.s $f16, $f8, $f10 +/* 0DCC60 7F0A8130 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 0DCC64 7F0A8134 46100301 */ sub.s $f12, $f0, $f16 +/* 0DCC68 7F0A8138 27A40090 */ addiu $a0, $sp, 0x90 +/* 0DCC6C 7F0A813C 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0DCC70 7F0A8140 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0DCC74 7F0A8144 44800000 */ mtc1 $zero, $f0 +/* 0DCC78 7F0A8148 C7A20068 */ lwc1 $f2, 0x68($sp) +/* 0DCC7C 7F0A814C C7AC006C */ lwc1 $f12, 0x6c($sp) +/* 0DCC80 7F0A8150 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DCC84 7F0A8154 44819000 */ mtc1 $at, $f18 +/* 0DCC88 7F0A8158 44071000 */ mfc1 $a3, $f2 +/* 0DCC8C 7F0A815C 44066000 */ mfc1 $a2, $f12 +/* 0DCC90 7F0A8160 27A40090 */ addiu $a0, $sp, 0x90 +/* 0DCC94 7F0A8164 8FA50064 */ lw $a1, 0x64($sp) +/* 0DCC98 7F0A8168 E7A20018 */ swc1 $f2, 0x18($sp) +/* 0DCC9C 7F0A816C E7A00010 */ swc1 $f0, 0x10($sp) +/* 0DCCA0 7F0A8170 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0DCCA4 7F0A8174 E7A00024 */ swc1 $f0, 0x24($sp) +/* 0DCCA8 7F0A8178 E7AC0014 */ swc1 $f12, 0x14($sp) +/* 0DCCAC 7F0A817C 0FC165A5 */ jal sub_GAME_7F059694 +/* 0DCCB0 7F0A8180 E7B20020 */ swc1 $f18, 0x20($sp) +/* 0DCCB4 7F0A8184 27A40090 */ addiu $a0, $sp, 0x90 +/* 0DCCB8 7F0A8188 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0DCCBC 7F0A818C 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0DCCC0 7F0A8190 0FC29BBA */ jal sub_GAME_7F0A6EE8 +/* 0DCCC4 7F0A8194 02002025 */ move $a0, $s0 +/* 0DCCC8 7F0A8198 3C038004 */ lui $v1, %hi(D_80040B04) +/* 0DCCCC 7F0A819C 8C630B04 */ lw $v1, %lo(D_80040B04)($v1) +/* 0DCCD0 7F0A81A0 00408025 */ move $s0, $v0 +/* 0DCCD4 7F0A81A4 02002025 */ move $a0, $s0 +/* 0DCCD8 7F0A81A8 286100E0 */ slti $at, $v1, 0xe0 +/* 0DCCDC 7F0A81AC 1020000B */ beqz $at, .L7F0A81DC +/* 0DCCE0 7F0A81B0 8FA50070 */ lw $a1, 0x70($sp) +/* 0DCCE4 7F0A81B4 3C0964DC */ lui $t1, (0x64DC6428 >> 16) # lui $t1, 0x64dc +/* 0DCCE8 7F0A81B8 35296428 */ ori $t1, (0x64DC6428 & 0xFFFF) # ori $t1, $t1, 0x6428 +/* 0DCCEC 7F0A81BC AFA90010 */ sw $t1, 0x10($sp) +/* 0DCCF0 7F0A81C0 00402025 */ move $a0, $v0 +/* 0DCCF4 7F0A81C4 8FA50070 */ lw $a1, 0x70($sp) +/* 0DCCF8 7F0A81C8 27A600D0 */ addiu $a2, $sp, 0xd0 +/* 0DCCFC 7F0A81CC 0FC18C01 */ jal set_enviro_fog_for_items_in_solo_watch_menu +/* 0DCD00 7F0A81D0 24670001 */ addiu $a3, $v1, 1 +/* 0DCD04 7F0A81D4 10000008 */ b .L7F0A81F8 +/* 0DCD08 7F0A81D8 00408025 */ move $s0, $v0 +.L7F0A81DC: +/* 0DCD0C 7F0A81DC 3C0A64DC */ lui $t2, (0x64DC6428 >> 16) # lui $t2, 0x64dc +/* 0DCD10 7F0A81E0 354A6428 */ ori $t2, (0x64DC6428 & 0xFFFF) # ori $t2, $t2, 0x6428 +/* 0DCD14 7F0A81E4 AFAA0010 */ sw $t2, 0x10($sp) +/* 0DCD18 7F0A81E8 27A600D0 */ addiu $a2, $sp, 0xd0 +/* 0DCD1C 7F0A81EC 0FC18C01 */ jal set_enviro_fog_for_items_in_solo_watch_menu +/* 0DCD20 7F0A81F0 240700FF */ li $a3, 255 +/* 0DCD24 7F0A81F4 00408025 */ move $s0, $v0 +.L7F0A81F8: +/* 0DCD28 7F0A81F8 0FC1A8CD */ jal sub_GAME_7F06A334 +/* 0DCD2C 7F0A81FC 02002025 */ move $a0, $s0 +/* 0DCD30 7F0A8200 0FC2B366 */ jal microcode_constructor +/* 0DCD34 7F0A8204 00402025 */ move $a0, $v0 +/* 0DCD38 7F0A8208 8FAD007C */ lw $t5, 0x7c($sp) +/* 0DCD3C 7F0A820C 240B0060 */ li $t3, 96 +/* 0DCD40 7F0A8210 240C00A0 */ li $t4, 160 +/* 0DCD44 7F0A8214 00408025 */ move $s0, $v0 +/* 0DCD48 7F0A8218 AFAB008C */ sw $t3, 0x8c($sp) +/* 0DCD4C 7F0A821C AFAC0088 */ sw $t4, 0x88($sp) +/* 0DCD50 7F0A8220 27A40084 */ addiu $a0, $sp, 0x84 +/* 0DCD54 7F0A8224 27A50080 */ addiu $a1, $sp, 0x80 +/* 0DCD58 7F0A8228 8FA60054 */ lw $a2, 0x54($sp) +/* 0DCD5C 7F0A822C 8FA70078 */ lw $a3, 0x78($sp) +/* 0DCD60 7F0A8230 AFA00014 */ sw $zero, 0x14($sp) +/* 0DCD64 7F0A8234 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DCD68 7F0A8238 AFAD0010 */ sw $t5, 0x10($sp) +/* 0DCD6C 7F0A823C 8FAE0078 */ lw $t6, 0x78($sp) +/* 0DCD70 7F0A8240 8FAF007C */ lw $t7, 0x7c($sp) +/* 0DCD74 7F0A8244 8FB90080 */ lw $t9, 0x80($sp) +/* 0DCD78 7F0A8248 8FA80084 */ lw $t0, 0x84($sp) +/* 0DCD7C 7F0A824C 3C1800FF */ lui $t8, (0x00FF00B0 >> 16) # lui $t8, 0xff +/* 0DCD80 7F0A8250 371800B0 */ ori $t8, (0x00FF00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0DCD84 7F0A8254 AFB80018 */ sw $t8, 0x18($sp) +/* 0DCD88 7F0A8258 02002025 */ move $a0, $s0 +/* 0DCD8C 7F0A825C 27A5008C */ addiu $a1, $sp, 0x8c +/* 0DCD90 7F0A8260 27A60088 */ addiu $a2, $sp, 0x88 +/* 0DCD94 7F0A8264 8FA70054 */ lw $a3, 0x54($sp) +/* 0DCD98 7F0A8268 AFA00024 */ sw $zero, 0x24($sp) +/* 0DCD9C 7F0A826C AFA00028 */ sw $zero, 0x28($sp) +/* 0DCDA0 7F0A8270 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DCDA4 7F0A8274 AFAF0014 */ sw $t7, 0x14($sp) +/* 0DCDA8 7F0A8278 AFB9001C */ sw $t9, 0x1c($sp) +/* 0DCDAC 7F0A827C 0FC2B6AF */ jal en_text_write_stuff +/* 0DCDB0 7F0A8280 AFA80020 */ sw $t0, 0x20($sp) +/* 0DCDB4 7F0A8284 8FAA007C */ lw $t2, 0x7c($sp) +/* 0DCDB8 7F0A8288 240900AA */ li $t1, 170 +/* 0DCDBC 7F0A828C 00408025 */ move $s0, $v0 +/* 0DCDC0 7F0A8290 AFA90088 */ sw $t1, 0x88($sp) +/* 0DCDC4 7F0A8294 27A40084 */ addiu $a0, $sp, 0x84 +/* 0DCDC8 7F0A8298 27A50080 */ addiu $a1, $sp, 0x80 +/* 0DCDCC 7F0A829C 8FA60050 */ lw $a2, 0x50($sp) +/* 0DCDD0 7F0A82A0 8FA70078 */ lw $a3, 0x78($sp) +/* 0DCDD4 7F0A82A4 AFA00014 */ sw $zero, 0x14($sp) +/* 0DCDD8 7F0A82A8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DCDDC 7F0A82AC AFAA0010 */ sw $t2, 0x10($sp) +/* 0DCDE0 7F0A82B0 8FAB0078 */ lw $t3, 0x78($sp) +/* 0DCDE4 7F0A82B4 8FAC007C */ lw $t4, 0x7c($sp) +/* 0DCDE8 7F0A82B8 8FAE0080 */ lw $t6, 0x80($sp) +/* 0DCDEC 7F0A82BC 8FAF0084 */ lw $t7, 0x84($sp) +/* 0DCDF0 7F0A82C0 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0DCDF4 7F0A82C4 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0DCDF8 7F0A82C8 AFAD0018 */ sw $t5, 0x18($sp) +/* 0DCDFC 7F0A82CC 02002025 */ move $a0, $s0 +/* 0DCE00 7F0A82D0 27A5008C */ addiu $a1, $sp, 0x8c +/* 0DCE04 7F0A82D4 27A60088 */ addiu $a2, $sp, 0x88 +/* 0DCE08 7F0A82D8 8FA70050 */ lw $a3, 0x50($sp) +/* 0DCE0C 7F0A82DC AFA00024 */ sw $zero, 0x24($sp) +/* 0DCE10 7F0A82E0 AFA00028 */ sw $zero, 0x28($sp) +/* 0DCE14 7F0A82E4 AFAB0010 */ sw $t3, 0x10($sp) +/* 0DCE18 7F0A82E8 AFAC0014 */ sw $t4, 0x14($sp) +/* 0DCE1C 7F0A82EC AFAE001C */ sw $t6, 0x1c($sp) +/* 0DCE20 7F0A82F0 0FC2B6AF */ jal en_text_write_stuff +/* 0DCE24 7F0A82F4 AFAF0020 */ sw $t7, 0x20($sp) +/* 0DCE28 7F0A82F8 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DCE2C 7F0A82FC 8FB00038 */ lw $s0, 0x38($sp) +/* 0DCE30 7F0A8300 27BD0118 */ addiu $sp, $sp, 0x118 +/* 0DCE34 7F0A8304 03E00008 */ jr $ra +/* 0DCE38 7F0A8308 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 sub_GAME_7F0A830C(void) +{ + s32 temp_s0; + s32 phi_s0; + + temp_s0 = sub_GAME_7F0A714C(0); + if (check_watch_page_transistion_running() != 1) + { + phi_s0 = debug_gun_watch_move_related(sub_GAME_7F0A7DBC(sub_GAME_7F0A7C18(sub_GAME_7F0A7DC4(temp_s0)))); + } + else + { + check_watch_page_transistion_running(); + phi_s0 = temp_s0; + } + return phi_s0; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A830C +/* 0DCE3C 7F0A830C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0DCE40 7F0A8310 AFBF001C */ sw $ra, 0x1c($sp) +/* 0DCE44 7F0A8314 AFB00018 */ sw $s0, 0x18($sp) +/* 0DCE48 7F0A8318 0FC29C53 */ jal sub_GAME_7F0A714C +/* 0DCE4C 7F0A831C 00003025 */ move $a2, $zero +/* 0DCE50 7F0A8320 0FC1F97F */ jal check_watch_page_transistion_running +/* 0DCE54 7F0A8324 00408025 */ move $s0, $v0 +/* 0DCE58 7F0A8328 24010001 */ li $at, 1 +/* 0DCE5C 7F0A832C 1041000B */ beq $v0, $at, .L7F0A835C +/* 0DCE60 7F0A8330 00000000 */ nop +/* 0DCE64 7F0A8334 0FC29F71 */ jal sub_GAME_7F0A7DC4 +/* 0DCE68 7F0A8338 02002025 */ move $a0, $s0 +/* 0DCE6C 7F0A833C 0FC29F06 */ jal sub_GAME_7F0A7C18 +/* 0DCE70 7F0A8340 00402025 */ move $a0, $v0 +/* 0DCE74 7F0A8344 0FC29F6F */ jal sub_GAME_7F0A7DBC +/* 0DCE78 7F0A8348 00402025 */ move $a0, $v0 +/* 0DCE7C 7F0A834C 0FC29FAA */ jal debug_gun_watch_move_related +/* 0DCE80 7F0A8350 00402025 */ move $a0, $v0 +/* 0DCE84 7F0A8354 10000003 */ b .L7F0A8364 +/* 0DCE88 7F0A8358 00408025 */ move $s0, $v0 +.L7F0A835C: +/* 0DCE8C 7F0A835C 0FC1F97F */ jal check_watch_page_transistion_running +/* 0DCE90 7F0A8360 00000000 */ nop +.L7F0A8364: +/* 0DCE94 7F0A8364 8FBF001C */ lw $ra, 0x1c($sp) +/* 0DCE98 7F0A8368 02001025 */ move $v0, $s0 +/* 0DCE9C 7F0A836C 8FB00018 */ lw $s0, 0x18($sp) +/* 0DCEA0 7F0A8370 03E00008 */ jr $ra +/* 0DCEA4 7F0A8374 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0A8378(void) +{ + s32 sp1C; + + if ((get_controller_buttons_pressed(0, 0xa000) == 0) && (get_controller_buttons_pressed(0, 0x1000) != 0)) + { + sp1C = get_item_in_hand(0); + if (get_weaponnum_by_inv_index(D_800409B8) != sp1C) + { + remove_hands_item(0, get_weaponnum_by_inv_index(D_800409B8)); + remove_hands_item(1, 0); + set_BONDdata_equipcuritem(D_800409B8); + D_800409C4 = 0xa; + play_sfx_a1(ptr_sfx_buf, 0x9f, 0); + } + } + else + { + + } +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A8378 +/* 0DCEA8 7F0A8378 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0DCEAC 7F0A837C AFBF0014 */ sw $ra, 0x14($sp) +/* 0DCEB0 7F0A8380 00002025 */ move $a0, $zero +/* 0DCEB4 7F0A8384 0C0030EB */ jal get_controller_buttons_pressed +/* 0DCEB8 7F0A8388 3405A000 */ li $a1, 40960 +/* 0DCEBC 7F0A838C 1440000D */ bnez $v0, .L7F0A83C4 +/* 0DCEC0 7F0A8390 00002025 */ move $a0, $zero +/* 0DCEC4 7F0A8394 0C0030EB */ jal get_controller_buttons_pressed +/* 0DCEC8 7F0A8398 24051000 */ li $a1, 4096 +/* 0DCECC 7F0A839C 5040001E */ beql $v0, $zero, .L7F0A8418 +/* 0DCED0 7F0A83A0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DCED4 7F0A83A4 0FC17674 */ jal get_item_in_hand +/* 0DCED8 7F0A83A8 00002025 */ move $a0, $zero +/* 0DCEDC 7F0A83AC 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCEE0 7F0A83B0 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCEE4 7F0A83B4 0FC234AA */ jal get_weaponnum_by_inv_index +/* 0DCEE8 7F0A83B8 AFA2001C */ sw $v0, 0x1c($sp) +/* 0DCEEC 7F0A83BC 8FAE001C */ lw $t6, 0x1c($sp) +/* 0DCEF0 7F0A83C0 104E0014 */ beq $v0, $t6, .L7F0A8414 +.L7F0A83C4: +/* 0DCEF4 7F0A83C4 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCEF8 7F0A83C8 0FC234AA */ jal get_weaponnum_by_inv_index +/* 0DCEFC 7F0A83CC 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCF00 7F0A83D0 00002025 */ move $a0, $zero +/* 0DCF04 7F0A83D4 0FC176D5 */ jal remove_hands_item +/* 0DCF08 7F0A83D8 00402825 */ move $a1, $v0 +/* 0DCF0C 7F0A83DC 24040001 */ li $a0, 1 +/* 0DCF10 7F0A83E0 0FC176D5 */ jal remove_hands_item +/* 0DCF14 7F0A83E4 00002825 */ move $a1, $zero +/* 0DCF18 7F0A83E8 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCF1C 7F0A83EC 0FC23634 */ jal set_BONDdata_equipcuritem +/* 0DCF20 7F0A83F0 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCF24 7F0A83F4 240F000A */ li $t7, 10 +/* 0DCF28 7F0A83F8 3C018004 */ lui $at, %hi(D_800409C4) +/* 0DCF2C 7F0A83FC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0DCF30 7F0A8400 AC2F09C4 */ sw $t7, %lo(D_800409C4)($at) +/* 0DCF34 7F0A8404 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0DCF38 7F0A8408 2405009F */ li $a1, 159 +/* 0DCF3C 7F0A840C 0C002382 */ jal play_sfx_a1 +/* 0DCF40 7F0A8410 00003025 */ move $a2, $zero +.L7F0A8414: +/* 0DCF44 7F0A8414 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A8418: +/* 0DCF48 7F0A8418 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0DCF4C 7F0A841C 03E00008 */ jr $ra +/* 0DCF50 7F0A8420 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void debug_gun_watch_move_related2(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel debug_gun_watch_move_related2 +/* 0DCF54 7F0A8424 27BDF6D8 */ addiu $sp, $sp, -0x928 +/* 0DCF58 7F0A8428 AFBF003C */ sw $ra, 0x3c($sp) +/* 0DCF5C 7F0A842C AFB00038 */ sw $s0, 0x38($sp) +/* 0DCF60 7F0A8430 0FC29C53 */ jal sub_GAME_7F0A714C +/* 0DCF64 7F0A8434 00003025 */ move $a2, $zero +/* 0DCF68 7F0A8438 0FC1F97F */ jal check_watch_page_transistion_running +/* 0DCF6C 7F0A843C AFA20928 */ sw $v0, 0x928($sp) +/* 0DCF70 7F0A8440 24010001 */ li $at, 1 +/* 0DCF74 7F0A8444 504101AE */ beql $v0, $at, .L7F0A8B00 +/* 0DCF78 7F0A8448 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DCF7C 7F0A844C 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0DCF80 7F0A8450 00000000 */ nop +/* 0DCF84 7F0A8454 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCF88 7F0A8458 AFA20924 */ sw $v0, 0x924($sp) +/* 0DCF8C 7F0A845C 0FC2354A */ jal sub_GAME_7F08D528 +/* 0DCF90 7F0A8460 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCF94 7F0A8464 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCF98 7F0A8468 E7A00894 */ swc1 $f0, 0x894($sp) +/* 0DCF9C 7F0A846C 0FC23554 */ jal sub_GAME_7F08D550 +/* 0DCFA0 7F0A8470 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCFA4 7F0A8474 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCFA8 7F0A8478 E7A00890 */ swc1 $f0, 0x890($sp) +/* 0DCFAC 7F0A847C 0FC2355E */ jal sub_GAME_7F08D578 +/* 0DCFB0 7F0A8480 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCFB4 7F0A8484 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCFB8 7F0A8488 E7A0088C */ swc1 $f0, 0x88c($sp) +/* 0DCFBC 7F0A848C 0FC23568 */ jal sub_GAME_7F08D5A0 +/* 0DCFC0 7F0A8490 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCFC4 7F0A8494 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCFC8 7F0A8498 E7A00888 */ swc1 $f0, 0x888($sp) +/* 0DCFCC 7F0A849C 0FC234AA */ jal get_weaponnum_by_inv_index +/* 0DCFD0 7F0A84A0 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCFD4 7F0A84A4 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCFD8 7F0A84A8 AFA20884 */ sw $v0, 0x884($sp) +/* 0DCFDC 7F0A84AC 0FC23614 */ jal sub_GAME_7F08D850 +/* 0DCFE0 7F0A84B0 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCFE4 7F0A84B4 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCFE8 7F0A84B8 E7A00880 */ swc1 $f0, 0x880($sp) +/* 0DCFEC 7F0A84BC 0FC2361E */ jal sub_GAME_7F08D878 +/* 0DCFF0 7F0A84C0 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCFF4 7F0A84C4 0FC24415 */ jal get_debug_gunwatchpos_flag +/* 0DCFF8 7F0A84C8 E7A0087C */ swc1 $f0, 0x87c($sp) +/* 0DCFFC 7F0A84CC 50400040 */ beql $v0, $zero, .L7F0A85D0 +/* 0DD000 7F0A84D0 3C014120 */ lui $at, 0x4120 +/* 0DD004 7F0A84D4 0FC17674 */ jal get_item_in_hand +/* 0DD008 7F0A84D8 00002025 */ move $a0, $zero +/* 0DD00C 7F0A84DC 000270C0 */ sll $t6, $v0, 3 +/* 0DD010 7F0A84E0 01C27023 */ subu $t6, $t6, $v0 +/* 0DD014 7F0A84E4 3C0F8003 */ lui $t7, %hi(gitem_structs) +/* 0DD018 7F0A84E8 25EF3924 */ addiu $t7, %lo(gitem_structs) # addiu $t7, $t7, 0x3924 +/* 0DD01C 7F0A84EC 000E70C0 */ sll $t6, $t6, 3 +/* 0DD020 7F0A84F0 01CF8021 */ addu $s0, $t6, $t7 +/* 0DD024 7F0A84F4 00002025 */ move $a0, $zero +/* 0DD028 7F0A84F8 0C0030C3 */ jal get_controller_buttons_held +/* 0DD02C 7F0A84FC 24050002 */ li $a1, 2 +/* 0DD030 7F0A8500 10400006 */ beqz $v0, .L7F0A851C +/* 0DD034 7F0A8504 00002025 */ move $a0, $zero +/* 0DD038 7F0A8508 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DD03C 7F0A850C 44813000 */ mtc1 $at, $f6 +/* 0DD040 7F0A8510 C604002C */ lwc1 $f4, 0x2c($s0) +/* 0DD044 7F0A8514 46062201 */ sub.s $f8, $f4, $f6 +/* 0DD048 7F0A8518 E608002C */ swc1 $f8, 0x2c($s0) +.L7F0A851C: +/* 0DD04C 7F0A851C 0C0030C3 */ jal get_controller_buttons_held +/* 0DD050 7F0A8520 24050001 */ li $a1, 1 +/* 0DD054 7F0A8524 10400006 */ beqz $v0, .L7F0A8540 +/* 0DD058 7F0A8528 00002025 */ move $a0, $zero +/* 0DD05C 7F0A852C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DD060 7F0A8530 44818000 */ mtc1 $at, $f16 +/* 0DD064 7F0A8534 C60A002C */ lwc1 $f10, 0x2c($s0) +/* 0DD068 7F0A8538 46105480 */ add.s $f18, $f10, $f16 +/* 0DD06C 7F0A853C E612002C */ swc1 $f18, 0x2c($s0) +.L7F0A8540: +/* 0DD070 7F0A8540 0C0030C3 */ jal get_controller_buttons_held +/* 0DD074 7F0A8544 24050004 */ li $a1, 4 +/* 0DD078 7F0A8548 10400006 */ beqz $v0, .L7F0A8564 +/* 0DD07C 7F0A854C 00002025 */ move $a0, $zero +/* 0DD080 7F0A8550 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DD084 7F0A8554 44813000 */ mtc1 $at, $f6 +/* 0DD088 7F0A8558 C6040030 */ lwc1 $f4, 0x30($s0) +/* 0DD08C 7F0A855C 46062200 */ add.s $f8, $f4, $f6 +/* 0DD090 7F0A8560 E6080030 */ swc1 $f8, 0x30($s0) +.L7F0A8564: +/* 0DD094 7F0A8564 0C0030C3 */ jal get_controller_buttons_held +/* 0DD098 7F0A8568 24050008 */ li $a1, 8 +/* 0DD09C 7F0A856C 10400006 */ beqz $v0, .L7F0A8588 +/* 0DD0A0 7F0A8570 00002025 */ move $a0, $zero +/* 0DD0A4 7F0A8574 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DD0A8 7F0A8578 44818000 */ mtc1 $at, $f16 +/* 0DD0AC 7F0A857C C60A0030 */ lwc1 $f10, 0x30($s0) +/* 0DD0B0 7F0A8580 46105481 */ sub.s $f18, $f10, $f16 +/* 0DD0B4 7F0A8584 E6120030 */ swc1 $f18, 0x30($s0) +.L7F0A8588: +/* 0DD0B8 7F0A8588 0C0030C3 */ jal get_controller_buttons_held +/* 0DD0BC 7F0A858C 24050020 */ li $a1, 32 +/* 0DD0C0 7F0A8590 10400006 */ beqz $v0, .L7F0A85AC +/* 0DD0C4 7F0A8594 00002025 */ move $a0, $zero +/* 0DD0C8 7F0A8598 3C018006 */ lui $at, %hi(D_80058520) +/* 0DD0CC 7F0A859C C4268520 */ lwc1 $f6, %lo(D_80058520)($at) +/* 0DD0D0 7F0A85A0 C6040034 */ lwc1 $f4, 0x34($s0) +/* 0DD0D4 7F0A85A4 46062202 */ mul.s $f8, $f4, $f6 +/* 0DD0D8 7F0A85A8 E6080034 */ swc1 $f8, 0x34($s0) +.L7F0A85AC: +/* 0DD0DC 7F0A85AC 0C0030C3 */ jal get_controller_buttons_held +/* 0DD0E0 7F0A85B0 24050010 */ li $a1, 16 +/* 0DD0E4 7F0A85B4 10400005 */ beqz $v0, .L7F0A85CC +/* 0DD0E8 7F0A85B8 3C018006 */ lui $at, %hi(D_80058524) +/* 0DD0EC 7F0A85BC C60A0034 */ lwc1 $f10, 0x34($s0) +/* 0DD0F0 7F0A85C0 C4308524 */ lwc1 $f16, %lo(D_80058524)($at) +/* 0DD0F4 7F0A85C4 46105482 */ mul.s $f18, $f10, $f16 +/* 0DD0F8 7F0A85C8 E6120034 */ swc1 $f18, 0x34($s0) +.L7F0A85CC: +/* 0DD0FC 7F0A85CC 3C014120 */ li $at, 0x41200000 # 10.000000 +.L7F0A85D0: +/* 0DD100 7F0A85D0 44812000 */ mtc1 $at, $f4 +/* 0DD104 7F0A85D4 3C018006 */ lui $at, %hi(D_80058528) +/* 0DD108 7F0A85D8 C4268528 */ lwc1 $f6, %lo(D_80058528)($at) +/* 0DD10C 7F0A85DC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DD110 7F0A85E0 44814000 */ mtc1 $at, $f8 +/* 0DD114 7F0A85E4 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 0DD118 7F0A85E8 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 0DD11C 7F0A85EC 8FA40924 */ lw $a0, 0x924($sp) +/* 0DD120 7F0A85F0 27A50922 */ addiu $a1, $sp, 0x922 +/* 0DD124 7F0A85F4 8FA60894 */ lw $a2, 0x894($sp) +/* 0DD128 7F0A85F8 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0DD12C 7F0A85FC E7A60014 */ swc1 $f6, 0x14($sp) +/* 0DD130 7F0A8600 0C003FAC */ jal guPerspective +/* 0DD134 7F0A8604 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0DD138 7F0A8608 8FA20928 */ lw $v0, 0x928($sp) +/* 0DD13C 7F0A860C 3C180103 */ lui $t8, (0x01030040 >> 16) # lui $t8, 0x103 +/* 0DD140 7F0A8610 37180040 */ ori $t8, (0x01030040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 0DD144 7F0A8614 00408025 */ move $s0, $v0 +/* 0DD148 7F0A8618 AE180000 */ sw $t8, ($s0) +/* 0DD14C 7F0A861C 24420008 */ addiu $v0, $v0, 8 +/* 0DD150 7F0A8620 AFA20928 */ sw $v0, 0x928($sp) +/* 0DD154 7F0A8624 0C003A2C */ jal osVirtualToPhysical +/* 0DD158 7F0A8628 8FA40924 */ lw $a0, 0x924($sp) +/* 0DD15C 7F0A862C AE020004 */ sw $v0, 4($s0) +/* 0DD160 7F0A8630 3C018006 */ lui $at, %hi(D_8005852C) +/* 0DD164 7F0A8634 C430852C */ lwc1 $f16, %lo(D_8005852C)($at) +/* 0DD168 7F0A8638 C7AA087C */ lwc1 $f10, 0x87c($sp) +/* 0DD16C 7F0A863C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DD170 7F0A8640 44812000 */ mtc1 $at, $f4 +/* 0DD174 7F0A8644 46105482 */ mul.s $f18, $f10, $f16 +/* 0DD178 7F0A8648 27A508E0 */ addiu $a1, $sp, 0x8e0 +/* 0DD17C 7F0A864C 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0DD180 7F0A8650 46049303 */ div.s $f12, $f18, $f4 +/* 0DD184 7F0A8654 3C018006 */ lui $at, %hi(D_80058530) +/* 0DD188 7F0A8658 C4208530 */ lwc1 $f0, %lo(D_80058530)($at) +/* 0DD18C 7F0A865C C7A60880 */ lwc1 $f6, 0x880($sp) +/* 0DD190 7F0A8660 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DD194 7F0A8664 44815000 */ mtc1 $at, $f10 +/* 0DD198 7F0A8668 46003202 */ mul.s $f8, $f6, $f0 +/* 0DD19C 7F0A866C 27B008A0 */ addiu $s0, $sp, 0x8a0 +/* 0DD1A0 7F0A8670 02002825 */ move $a1, $s0 +/* 0DD1A4 7F0A8674 460A4403 */ div.s $f16, $f8, $f10 +/* 0DD1A8 7F0A8678 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 0DD1AC 7F0A867C 46100301 */ sub.s $f12, $f0, $f16 +/* 0DD1B0 7F0A8680 02002025 */ move $a0, $s0 +/* 0DD1B4 7F0A8684 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0DD1B8 7F0A8688 27A508E0 */ addiu $a1, $sp, 0x8e0 +/* 0DD1BC 7F0A868C 3C018004 */ lui $at, %hi(D_80040B14) +/* 0DD1C0 7F0A8690 0FC15FA8 */ jal cosf +/* 0DD1C4 7F0A8694 C42C0B14 */ lwc1 $f12, %lo(D_80040B14)($at) +/* 0DD1C8 7F0A8698 C7B20888 */ lwc1 $f18, 0x888($sp) +/* 0DD1CC 7F0A869C 3C018004 */ lui $at, %hi(D_80040B14) +/* 0DD1D0 7F0A86A0 C42C0B14 */ lwc1 $f12, %lo(D_80040B14)($at) +/* 0DD1D4 7F0A86A4 46120102 */ mul.s $f4, $f0, $f18 +/* 0DD1D8 7F0A86A8 0FC15FAB */ jal sinf +/* 0DD1DC 7F0A86AC E7A4089C */ swc1 $f4, 0x89c($sp) +/* 0DD1E0 7F0A86B0 C7A60888 */ lwc1 $f6, 0x888($sp) +/* 0DD1E4 7F0A86B4 C7AE0890 */ lwc1 $f14, 0x890($sp) +/* 0DD1E8 7F0A86B8 44801000 */ mtc1 $zero, $f2 +/* 0DD1EC 7F0A86BC 46060202 */ mul.s $f8, $f0, $f6 +/* 0DD1F0 7F0A86C0 C7AC088C */ lwc1 $f12, 0x88c($sp) +/* 0DD1F4 7F0A86C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DD1F8 7F0A86C8 44818000 */ mtc1 $at, $f16 +/* 0DD1FC 7F0A86CC 44066000 */ mfc1 $a2, $f12 +/* 0DD200 7F0A86D0 02002025 */ move $a0, $s0 +/* 0DD204 7F0A86D4 8FA5089C */ lw $a1, 0x89c($sp) +/* 0DD208 7F0A86D8 460E4280 */ add.s $f10, $f8, $f14 +/* 0DD20C 7F0A86DC E7AE0018 */ swc1 $f14, 0x18($sp) +/* 0DD210 7F0A86E0 E7A20010 */ swc1 $f2, 0x10($sp) +/* 0DD214 7F0A86E4 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0DD218 7F0A86E8 44075000 */ mfc1 $a3, $f10 +/* 0DD21C 7F0A86EC E7A20024 */ swc1 $f2, 0x24($sp) +/* 0DD220 7F0A86F0 E7AC0014 */ swc1 $f12, 0x14($sp) +/* 0DD224 7F0A86F4 0FC165A5 */ jal sub_GAME_7F059694 +/* 0DD228 7F0A86F8 E7B00020 */ swc1 $f16, 0x20($sp) +/* 0DD22C 7F0A86FC 02002025 */ move $a0, $s0 +/* 0DD230 7F0A8700 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0DD234 7F0A8704 27A508E0 */ addiu $a1, $sp, 0x8e0 +/* 0DD238 7F0A8708 0FC29BBA */ jal sub_GAME_7F0A6EE8 +/* 0DD23C 7F0A870C 8FA40928 */ lw $a0, 0x928($sp) +/* 0DD240 7F0A8710 3C19A0FF */ lui $t9, (0xA0FFA03C >> 16) # lui $t9, 0xa0ff +/* 0DD244 7F0A8714 3739A03C */ ori $t9, (0xA0FFA03C & 0xFFFF) # ori $t9, $t9, 0xa03c +/* 0DD248 7F0A8718 AFB90010 */ sw $t9, 0x10($sp) +/* 0DD24C 7F0A871C 00402025 */ move $a0, $v0 +/* 0DD250 7F0A8720 8FA50884 */ lw $a1, 0x884($sp) +/* 0DD254 7F0A8724 27A608E0 */ addiu $a2, $sp, 0x8e0 +/* 0DD258 7F0A8728 0FC18C01 */ jal set_enviro_fog_for_items_in_solo_watch_menu +/* 0DD25C 7F0A872C 24070040 */ li $a3, 64 +/* 0DD260 7F0A8730 3C098004 */ lui $t1, %hi(ptrFirstFontTableSmall) +/* 0DD264 7F0A8734 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) +/* 0DD268 7F0A8738 8D290EAC */ lw $t1, %lo(ptrFirstFontTableSmall)($t1) +/* 0DD26C 7F0A873C 8D4A0EB0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0DD270 7F0A8740 AFA20928 */ sw $v0, 0x928($sp) +/* 0DD274 7F0A8744 AFA00860 */ sw $zero, 0x860($sp) +/* 0DD278 7F0A8748 AFA0085C */ sw $zero, 0x85c($sp) +/* 0DD27C 7F0A874C A3A00084 */ sb $zero, 0x84($sp) +/* 0DD280 7F0A8750 00008025 */ move $s0, $zero +/* 0DD284 7F0A8754 AFA90858 */ sw $t1, 0x858($sp) +/* 0DD288 7F0A8758 0FC2340E */ jal count_total_items_in_inventory +/* 0DD28C 7F0A875C AFAA0854 */ sw $t2, 0x854($sp) +/* 0DD290 7F0A8760 1840000B */ blez $v0, .L7F0A8790 +/* 0DD294 7F0A8764 00000000 */ nop +.L7F0A8768: +/* 0DD298 7F0A8768 0FC234D0 */ jal sub_GAME_7F08D340 +/* 0DD29C 7F0A876C 02002025 */ move $a0, $s0 +/* 0DD2A0 7F0A8770 27A40084 */ addiu $a0, $sp, 0x84 +/* 0DD2A4 7F0A8774 0C0029FF */ jal string_append_from_obseg_textbank +/* 0DD2A8 7F0A8778 00402825 */ move $a1, $v0 +/* 0DD2AC 7F0A877C 0FC2340E */ jal count_total_items_in_inventory +/* 0DD2B0 7F0A8780 26100001 */ addiu $s0, $s0, 1 +/* 0DD2B4 7F0A8784 0202082A */ slt $at, $s0, $v0 +/* 0DD2B8 7F0A8788 1420FFF7 */ bnez $at, .L7F0A8768 +/* 0DD2BC 7F0A878C 00000000 */ nop +.L7F0A8790: +/* 0DD2C0 7F0A8790 3C038004 */ lui $v1, %hi(D_800409C4) +/* 0DD2C4 7F0A8794 246309C4 */ addiu $v1, %lo(D_800409C4) # addiu $v1, $v1, 0x9c4 +/* 0DD2C8 7F0A8798 8C620000 */ lw $v0, ($v1) +/* 0DD2CC 7F0A879C 18400002 */ blez $v0, .L7F0A87A8 +/* 0DD2D0 7F0A87A0 244BFFFF */ addiu $t3, $v0, -1 +/* 0DD2D4 7F0A87A4 AC6B0000 */ sw $t3, ($v1) +.L7F0A87A8: +/* 0DD2D8 7F0A87A8 0FC296E0 */ jal sub_GAME_7F0A5B80 +/* 0DD2DC 7F0A87AC 00000000 */ nop +/* 0DD2E0 7F0A87B0 3C0E8005 */ lui $t6, %hi(j_text_trigger) +/* 0DD2E4 7F0A87B4 8DCE84D0 */ lw $t6, %lo(j_text_trigger)($t6) +/* 0DD2E8 7F0A87B8 240C004E */ li $t4, 78 +/* 0DD2EC 7F0A87BC 240D008C */ li $t5, 140 +/* 0DD2F0 7F0A87C0 AFAC0870 */ sw $t4, 0x870($sp) +/* 0DD2F4 7F0A87C4 11C00003 */ beqz $t6, .L7F0A87D4 +/* 0DD2F8 7F0A87C8 AFAD086C */ sw $t5, 0x86c($sp) +/* 0DD2FC 7F0A87CC 10000002 */ b .L7F0A87D8 +/* 0DD300 7F0A87D0 2402000E */ li $v0, 14 +.L7F0A87D4: +/* 0DD304 7F0A87D4 2402000C */ li $v0, 12 +.L7F0A87D8: +/* 0DD308 7F0A87D8 00028040 */ sll $s0, $v0, 1 +/* 0DD30C 7F0A87DC 2610008D */ addiu $s0, $s0, 0x8d +/* 0DD310 7F0A87E0 0FC2B366 */ jal microcode_constructor +/* 0DD314 7F0A87E4 8FA40928 */ lw $a0, 0x928($sp) +/* 0DD318 7F0A87E8 3C0F8005 */ lui $t7, %hi(j_text_trigger) +/* 0DD31C 7F0A87EC 8DEF84D0 */ lw $t7, %lo(j_text_trigger)($t7) +/* 0DD320 7F0A87F0 AFA20928 */ sw $v0, 0x928($sp) +/* 0DD324 7F0A87F4 27A40860 */ addiu $a0, $sp, 0x860 +/* 0DD328 7F0A87F8 11E00003 */ beqz $t7, .L7F0A8808 +/* 0DD32C 7F0A87FC 27A5085C */ addiu $a1, $sp, 0x85c +/* 0DD330 7F0A8800 10000002 */ b .L7F0A880C +/* 0DD334 7F0A8804 2402000E */ li $v0, 14 +.L7F0A8808: +/* 0DD338 7F0A8808 2402000C */ li $v0, 12 +.L7F0A880C: +/* 0DD33C 7F0A880C 8FB80858 */ lw $t8, 0x858($sp) +/* 0DD340 7F0A8810 27A60084 */ addiu $a2, $sp, 0x84 +/* 0DD344 7F0A8814 8FA70854 */ lw $a3, 0x854($sp) +/* 0DD348 7F0A8818 AFA20014 */ sw $v0, 0x14($sp) +/* 0DD34C 7F0A881C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DD350 7F0A8820 AFB80010 */ sw $t8, 0x10($sp) +/* 0DD354 7F0A8824 3C198005 */ lui $t9, %hi(j_text_trigger) +/* 0DD358 7F0A8828 8F3984D0 */ lw $t9, %lo(j_text_trigger)($t9) +/* 0DD35C 7F0A882C 8FA40928 */ lw $a0, 0x928($sp) +/* 0DD360 7F0A8830 2405004E */ li $a1, 78 +/* 0DD364 7F0A8834 13200003 */ beqz $t9, .L7F0A8844 +/* 0DD368 7F0A8838 2406008C */ li $a2, 140 +/* 0DD36C 7F0A883C 10000002 */ b .L7F0A8848 +/* 0DD370 7F0A8840 2402000E */ li $v0, 14 +.L7F0A8844: +/* 0DD374 7F0A8844 2402000C */ li $v0, 12 +.L7F0A8848: +/* 0DD378 7F0A8848 00024880 */ sll $t1, $v0, 2 +/* 0DD37C 7F0A884C 8FA7085C */ lw $a3, 0x85c($sp) +/* 0DD380 7F0A8850 01224821 */ addu $t1, $t1, $v0 +/* 0DD384 7F0A8854 252A008C */ addiu $t2, $t1, 0x8c +/* 0DD388 7F0A8858 AFAA0010 */ sw $t2, 0x10($sp) +/* 0DD38C 7F0A885C AFA00014 */ sw $zero, 0x14($sp) +/* 0DD390 7F0A8860 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0DD394 7F0A8864 24E7004E */ addiu $a3, $a3, 0x4e +/* 0DD398 7F0A8868 3C038005 */ lui $v1, %hi(j_text_trigger) +/* 0DD39C 7F0A886C 8C6384D0 */ lw $v1, %lo(j_text_trigger)($v1) +/* 0DD3A0 7F0A8870 00402025 */ move $a0, $v0 +/* 0DD3A4 7F0A8874 27A50870 */ addiu $a1, $sp, 0x870 +/* 0DD3A8 7F0A8878 10600003 */ beqz $v1, .L7F0A8888 +/* 0DD3AC 7F0A887C 27A6086C */ addiu $a2, $sp, 0x86c +/* 0DD3B0 7F0A8880 10000002 */ b .L7F0A888C +/* 0DD3B4 7F0A8884 2408000E */ li $t0, 14 +.L7F0A8888: +/* 0DD3B8 7F0A8888 2408000C */ li $t0, 12 +.L7F0A888C: +/* 0DD3BC 7F0A888C 10600003 */ beqz $v1, .L7F0A889C +/* 0DD3C0 7F0A8890 27A70084 */ addiu $a3, $sp, 0x84 +/* 0DD3C4 7F0A8894 10000002 */ b .L7F0A88A0 +/* 0DD3C8 7F0A8898 2402000E */ li $v0, 14 +.L7F0A889C: +/* 0DD3CC 7F0A889C 2402000C */ li $v0, 12 +.L7F0A88A0: +/* 0DD3D0 7F0A88A0 8FAE085C */ lw $t6, 0x85c($sp) +/* 0DD3D4 7F0A88A4 3C198004 */ lui $t9, %hi(D_800409B0) +/* 0DD3D8 7F0A88A8 8F3909B0 */ lw $t9, %lo(D_800409B0)($t9) +/* 0DD3DC 7F0A88AC 8FAB0854 */ lw $t3, 0x854($sp) +/* 0DD3E0 7F0A88B0 8FAC0858 */ lw $t4, 0x858($sp) +/* 0DD3E4 7F0A88B4 3C0D00AA */ lui $t5, (0x00AA00B0 >> 16) # lui $t5, 0xaa +/* 0DD3E8 7F0A88B8 0008C080 */ sll $t8, $t0, 2 +/* 0DD3EC 7F0A88BC 0308C021 */ addu $t8, $t8, $t0 +/* 0DD3F0 7F0A88C0 35AD00B0 */ ori $t5, (0x00AA00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0DD3F4 7F0A88C4 25CF0001 */ addiu $t7, $t6, 1 +/* 0DD3F8 7F0A88C8 AFAF001C */ sw $t7, 0x1c($sp) +/* 0DD3FC 7F0A88CC AFAD0018 */ sw $t5, 0x18($sp) +/* 0DD400 7F0A88D0 AFB80020 */ sw $t8, 0x20($sp) +/* 0DD404 7F0A88D4 AFA20028 */ sw $v0, 0x28($sp) +/* 0DD408 7F0A88D8 AFB90024 */ sw $t9, 0x24($sp) +/* 0DD40C 7F0A88DC AFAB0010 */ sw $t3, 0x10($sp) +/* 0DD410 7F0A88E0 0FC2B6AF */ jal en_text_write_stuff +/* 0DD414 7F0A88E4 AFAC0014 */ sw $t4, 0x14($sp) +/* 0DD418 7F0A88E8 3C098005 */ lui $t1, %hi(j_text_trigger) +/* 0DD41C 7F0A88EC 8D2984D0 */ lw $t1, %lo(j_text_trigger)($t1) +/* 0DD420 7F0A88F0 00402025 */ move $a0, $v0 +/* 0DD424 7F0A88F4 2405004B */ li $a1, 75 +/* 0DD428 7F0A88F8 11200003 */ beqz $t1, .L7F0A8908 +/* 0DD42C 7F0A88FC 02003025 */ move $a2, $s0 +/* 0DD430 7F0A8900 10000002 */ b .L7F0A890C +/* 0DD434 7F0A8904 2402000E */ li $v0, 14 +.L7F0A8908: +/* 0DD438 7F0A8908 2402000C */ li $v0, 12 +.L7F0A890C: +/* 0DD43C 7F0A890C 8FA7085C */ lw $a3, 0x85c($sp) +/* 0DD440 7F0A8910 00505021 */ addu $t2, $v0, $s0 +/* 0DD444 7F0A8914 3C0C0080 */ lui $t4, (0x00800050 >> 16) # lui $t4, 0x80 +/* 0DD448 7F0A8918 358C0050 */ ori $t4, (0x00800050 & 0xFFFF) # ori $t4, $t4, 0x50 +/* 0DD44C 7F0A891C 254BFFFE */ addiu $t3, $t2, -2 +/* 0DD450 7F0A8920 AFAB0010 */ sw $t3, 0x10($sp) +/* 0DD454 7F0A8924 AFAC0014 */ sw $t4, 0x14($sp) +/* 0DD458 7F0A8928 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0DD45C 7F0A892C 24E70052 */ addiu $a3, $a3, 0x52 +/* 0DD460 7F0A8930 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableSmall) +/* 0DD464 7F0A8934 8DAD0EB0 */ lw $t5, %lo(ptrSecondFontTableSmall)($t5) +/* 0DD468 7F0A8938 3C108004 */ lui $s0, %hi(ptrFirstFontTableSmall) +/* 0DD46C 7F0A893C 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DD470 7F0A8940 AFA20928 */ sw $v0, 0x928($sp) +/* 0DD474 7F0A8944 8E100EAC */ lw $s0, %lo(ptrFirstFontTableSmall)($s0) +/* 0DD478 7F0A8948 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DD47C 7F0A894C 0FC234D0 */ jal sub_GAME_7F08D340 +/* 0DD480 7F0A8950 AFAD0058 */ sw $t5, 0x58($sp) +/* 0DD484 7F0A8954 3C018004 */ lui $at, %hi(D_800409BC) +/* 0DD488 7F0A8958 C43209BC */ lwc1 $f18, %lo(D_800409BC)($at) +/* 0DD48C 7F0A895C 3C0E8004 */ lui $t6, %hi(D_800409B8) +/* 0DD490 7F0A8960 8DCE09B8 */ lw $t6, %lo(D_800409B8)($t6) +/* 0DD494 7F0A8964 46009121 */ cvt.d.s $f4, $f18 +/* 0DD498 7F0A8968 3C058005 */ lui $a1, %hi(aDDDF) +/* 0DD49C 7F0A896C 3C068004 */ lui $a2, %hi(D_800409B0) +/* 0DD4A0 7F0A8970 3C078004 */ lui $a3, %hi(D_800409B4) +/* 0DD4A4 7F0A8974 AFA2004C */ sw $v0, 0x4c($sp) +/* 0DD4A8 7F0A8978 8CE709B4 */ lw $a3, %lo(D_800409B4)($a3) +/* 0DD4AC 7F0A897C 8CC609B0 */ lw $a2, %lo(D_800409B0)($a2) +/* 0DD4B0 7F0A8980 24A57768 */ addiu $a1, %lo(aDDDF) # addiu $a1, $a1, 0x7768 +/* 0DD4B4 7F0A8984 F7A40018 */ sdc1 $f4, 0x18($sp) +/* 0DD4B8 7F0A8988 27A40060 */ addiu $a0, $sp, 0x60 +/* 0DD4BC 7F0A898C 0C002B25 */ jal sprintf +/* 0DD4C0 7F0A8990 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DD4C4 7F0A8994 0FC2B366 */ jal microcode_constructor +/* 0DD4C8 7F0A8998 8FA40928 */ lw $a0, 0x928($sp) +/* 0DD4CC 7F0A899C AFA20928 */ sw $v0, 0x928($sp) +/* 0DD4D0 7F0A89A0 27A40050 */ addiu $a0, $sp, 0x50 +/* 0DD4D4 7F0A89A4 27A50054 */ addiu $a1, $sp, 0x54 +/* 0DD4D8 7F0A89A8 27A60060 */ addiu $a2, $sp, 0x60 +/* 0DD4DC 7F0A89AC 8FA70058 */ lw $a3, 0x58($sp) +/* 0DD4E0 7F0A89B0 AFB00010 */ sw $s0, 0x10($sp) +/* 0DD4E4 7F0A89B4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DD4E8 7F0A89B8 AFA00014 */ sw $zero, 0x14($sp) +/* 0DD4EC 7F0A89BC 3C0F8004 */ lui $t7, %hi(D_800409C0) +/* 0DD4F0 7F0A89C0 8DEF09C0 */ lw $t7, %lo(D_800409C0)($t7) +/* 0DD4F4 7F0A89C4 3C188005 */ lui $t8, %hi(j_text_trigger) +/* 0DD4F8 7F0A89C8 27A40050 */ addiu $a0, $sp, 0x50 +/* 0DD4FC 7F0A89CC 11E0004B */ beqz $t7, .L7F0A8AFC +/* 0DD500 7F0A89D0 27A50054 */ addiu $a1, $sp, 0x54 +/* 0DD504 7F0A89D4 8F1884D0 */ lw $t8, %lo(j_text_trigger)($t8) +/* 0DD508 7F0A89D8 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DD50C 7F0A89DC 8FA70058 */ lw $a3, 0x58($sp) +/* 0DD510 7F0A89E0 13000003 */ beqz $t8, .L7F0A89F0 +/* 0DD514 7F0A89E4 2402000C */ li $v0, 12 +/* 0DD518 7F0A89E8 10000001 */ b .L7F0A89F0 +/* 0DD51C 7F0A89EC 2402000E */ li $v0, 14 +.L7F0A89F0: +/* 0DD520 7F0A89F0 AFB00010 */ sw $s0, 0x10($sp) +/* 0DD524 7F0A89F4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DD528 7F0A89F8 AFA20014 */ sw $v0, 0x14($sp) +/* 0DD52C 7F0A89FC 3C038005 */ lui $v1, %hi(j_text_trigger) +/* 0DD530 7F0A8A00 8C6384D0 */ lw $v1, %lo(j_text_trigger)($v1) +/* 0DD534 7F0A8A04 2419004E */ li $t9, 78 +/* 0DD538 7F0A8A08 AFB90870 */ sw $t9, 0x870($sp) +/* 0DD53C 7F0A8A0C 10600003 */ beqz $v1, .L7F0A8A1C +/* 0DD540 7F0A8A10 3C0B8004 */ lui $t3, %hi(D_800409C4) +/* 0DD544 7F0A8A14 10000002 */ b .L7F0A8A20 +/* 0DD548 7F0A8A18 2402000E */ li $v0, 14 +.L7F0A8A1C: +/* 0DD54C 7F0A8A1C 2402000C */ li $v0, 12 +.L7F0A8A20: +/* 0DD550 7F0A8A20 8D6B09C4 */ lw $t3, %lo(D_800409C4)($t3) +/* 0DD554 7F0A8A24 00024840 */ sll $t1, $v0, 1 +/* 0DD558 7F0A8A28 252A008C */ addiu $t2, $t1, 0x8c +/* 0DD55C 7F0A8A2C 15600018 */ bnez $t3, .L7F0A8A90 +/* 0DD560 7F0A8A30 AFAA086C */ sw $t2, 0x86c($sp) +/* 0DD564 7F0A8A34 10600003 */ beqz $v1, .L7F0A8A44 +/* 0DD568 7F0A8A38 8FA40928 */ lw $a0, 0x928($sp) +/* 0DD56C 7F0A8A3C 10000002 */ b .L7F0A8A48 +/* 0DD570 7F0A8A40 2402000E */ li $v0, 14 +.L7F0A8A44: +/* 0DD574 7F0A8A44 2402000C */ li $v0, 12 +.L7F0A8A48: +/* 0DD578 7F0A8A48 8FAC0058 */ lw $t4, 0x58($sp) +/* 0DD57C 7F0A8A4C 8FAE0054 */ lw $t6, 0x54($sp) +/* 0DD580 7F0A8A50 3C0DA0FF */ lui $t5, (0xA0FFA0F0 >> 16) # lui $t5, 0xa0ff +/* 0DD584 7F0A8A54 35ADA0F0 */ ori $t5, (0xA0FFA0F0 & 0xFFFF) # ori $t5, $t5, 0xa0f0 +/* 0DD588 7F0A8A58 240F0064 */ li $t7, 100 +/* 0DD58C 7F0A8A5C AFAF0020 */ sw $t7, 0x20($sp) +/* 0DD590 7F0A8A60 AFAD0018 */ sw $t5, 0x18($sp) +/* 0DD594 7F0A8A64 27A50870 */ addiu $a1, $sp, 0x870 +/* 0DD598 7F0A8A68 27A6086C */ addiu $a2, $sp, 0x86c +/* 0DD59C 7F0A8A6C 8FA7004C */ lw $a3, 0x4c($sp) +/* 0DD5A0 7F0A8A70 AFB00014 */ sw $s0, 0x14($sp) +/* 0DD5A4 7F0A8A74 AFA00024 */ sw $zero, 0x24($sp) +/* 0DD5A8 7F0A8A78 AFA20028 */ sw $v0, 0x28($sp) +/* 0DD5AC 7F0A8A7C AFAC0010 */ sw $t4, 0x10($sp) +/* 0DD5B0 7F0A8A80 0FC2B6AF */ jal en_text_write_stuff +/* 0DD5B4 7F0A8A84 AFAE001C */ sw $t6, 0x1c($sp) +/* 0DD5B8 7F0A8A88 1000001A */ b .L7F0A8AF4 +/* 0DD5BC 7F0A8A8C AFA20928 */ sw $v0, 0x928($sp) +.L7F0A8A90: +/* 0DD5C0 7F0A8A90 10600003 */ beqz $v1, .L7F0A8AA0 +/* 0DD5C4 7F0A8A94 8FA40928 */ lw $a0, 0x928($sp) +/* 0DD5C8 7F0A8A98 10000002 */ b .L7F0A8AA4 +/* 0DD5CC 7F0A8A9C 2402000E */ li $v0, 14 +.L7F0A8AA0: +/* 0DD5D0 7F0A8AA0 2402000C */ li $v0, 12 +.L7F0A8AA4: +/* 0DD5D4 7F0A8AA4 8FAA0054 */ lw $t2, 0x54($sp) +/* 0DD5D8 7F0A8AA8 8FB80058 */ lw $t8, 0x58($sp) +/* 0DD5DC 7F0A8AAC 3C090070 */ lui $t1, (0x007000A0 >> 16) # lui $t1, 0x70 +/* 0DD5E0 7F0A8AB0 352900A0 */ ori $t1, (0x007000A0 & 0xFFFF) # ori $t1, $t1, 0xa0 +/* 0DD5E4 7F0A8AB4 2419FFFF */ li $t9, -1 +/* 0DD5E8 7F0A8AB8 240C0064 */ li $t4, 100 +/* 0DD5EC 7F0A8ABC 254B0001 */ addiu $t3, $t2, 1 +/* 0DD5F0 7F0A8AC0 AFAB0020 */ sw $t3, 0x20($sp) +/* 0DD5F4 7F0A8AC4 AFAC0024 */ sw $t4, 0x24($sp) +/* 0DD5F8 7F0A8AC8 AFB90018 */ sw $t9, 0x18($sp) +/* 0DD5FC 7F0A8ACC AFA9001C */ sw $t1, 0x1c($sp) +/* 0DD600 7F0A8AD0 27A50870 */ addiu $a1, $sp, 0x870 +/* 0DD604 7F0A8AD4 27A6086C */ addiu $a2, $sp, 0x86c +/* 0DD608 7F0A8AD8 8FA7004C */ lw $a3, 0x4c($sp) +/* 0DD60C 7F0A8ADC AFB00014 */ sw $s0, 0x14($sp) +/* 0DD610 7F0A8AE0 AFA00028 */ sw $zero, 0x28($sp) +/* 0DD614 7F0A8AE4 AFA2002C */ sw $v0, 0x2c($sp) +/* 0DD618 7F0A8AE8 0FC2B9BB */ jal jp_text_write_stuff +/* 0DD61C 7F0A8AEC AFB80010 */ sw $t8, 0x10($sp) +/* 0DD620 7F0A8AF0 AFA20928 */ sw $v0, 0x928($sp) +.L7F0A8AF4: +/* 0DD624 7F0A8AF4 0FC2A0DE */ jal sub_GAME_7F0A8378 +/* 0DD628 7F0A8AF8 00000000 */ nop +.L7F0A8AFC: +/* 0DD62C 7F0A8AFC 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0A8B00: +/* 0DD630 7F0A8B00 8FA20928 */ lw $v0, 0x928($sp) +/* 0DD634 7F0A8B04 8FB00038 */ lw $s0, 0x38($sp) +/* 0DD638 7F0A8B08 03E00008 */ jr $ra +/* 0DD63C 7F0A8B0C 27BD0928 */ addiu $sp, $sp, 0x928 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel debug_gun_watch_move_related2 +/* 0DDB2C 7F0A8FBC 27BDF6D0 */ addiu $sp, $sp, -0x930 +/* 0DDB30 7F0A8FC0 AFBF003C */ sw $ra, 0x3c($sp) +/* 0DDB34 7F0A8FC4 AFB00038 */ sw $s0, 0x38($sp) +/* 0DDB38 7F0A8FC8 0FC29F39 */ jal sub_GAME_7F0A714C +/* 0DDB3C 7F0A8FCC 00003025 */ move $a2, $zero +/* 0DDB40 7F0A8FD0 0FC1FB08 */ jal check_watch_page_transistion_running +/* 0DDB44 7F0A8FD4 AFA20930 */ sw $v0, 0x930($sp) +/* 0DDB48 7F0A8FD8 24010001 */ li $at, 1 +/* 0DDB4C 7F0A8FDC 504101B8 */ beql $v0, $at, .Ljp7F0A96C0 +/* 0DDB50 7F0A8FE0 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DDB54 7F0A8FE4 0FC2F8A4 */ jal sub_GAME_7F0BD6E0 +/* 0DDB58 7F0A8FE8 00000000 */ nop +/* 0DDB5C 7F0A8FEC 3C048004 */ lui $a0, %hi(D_800409B8) # $a0, 0x8004 +/* 0DDB60 7F0A8FF0 AFA2092C */ sw $v0, 0x92c($sp) +/* 0DDB64 7F0A8FF4 0FC237E4 */ jal sub_GAME_7F08D528 +/* 0DDB68 7F0A8FF8 8C8409E8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DDB6C 7F0A8FFC 3C048004 */ lui $a0, %hi(D_800409B8) # $a0, 0x8004 +/* 0DDB70 7F0A9000 E7A0089C */ swc1 $f0, 0x89c($sp) +/* 0DDB74 7F0A9004 0FC237EE */ jal sub_GAME_7F08D550 +/* 0DDB78 7F0A9008 8C8409E8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DDB7C 7F0A900C 3C048004 */ lui $a0, %hi(D_800409B8) # $a0, 0x8004 +/* 0DDB80 7F0A9010 E7A00898 */ swc1 $f0, 0x898($sp) +/* 0DDB84 7F0A9014 0FC237F8 */ jal sub_GAME_7F08D578 +/* 0DDB88 7F0A9018 8C8409E8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DDB8C 7F0A901C 3C048004 */ lui $a0, %hi(D_800409B8) # $a0, 0x8004 +/* 0DDB90 7F0A9020 E7A00894 */ swc1 $f0, 0x894($sp) +/* 0DDB94 7F0A9024 0FC23802 */ jal sub_GAME_7F08D5A0 +/* 0DDB98 7F0A9028 8C8409E8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DDB9C 7F0A902C 3C048004 */ lui $a0, %hi(D_800409B8) # $a0, 0x8004 +/* 0DDBA0 7F0A9030 E7A00890 */ swc1 $f0, 0x890($sp) +/* 0DDBA4 7F0A9034 0FC23716 */ jal get_weaponnum_by_inv_index +/* 0DDBA8 7F0A9038 8C8409E8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DDBAC 7F0A903C 3C048004 */ lui $a0, %hi(D_800409B8) # $a0, 0x8004 +/* 0DDBB0 7F0A9040 AFA2088C */ sw $v0, 0x88c($sp) +/* 0DDBB4 7F0A9044 0FC238CE */ jal sub_GAME_7F08D850 +/* 0DDBB8 7F0A9048 8C8409E8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DDBBC 7F0A904C 3C048004 */ lui $a0, %hi(D_800409B8) # $a0, 0x8004 +/* 0DDBC0 7F0A9050 E7A00888 */ swc1 $f0, 0x888($sp) +/* 0DDBC4 7F0A9054 0FC238D8 */ jal sub_GAME_7F08D878 +/* 0DDBC8 7F0A9058 8C8409E8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DDBCC 7F0A905C 0FC246CD */ jal get_debug_gunwatchpos_flag +/* 0DDBD0 7F0A9060 E7A00884 */ swc1 $f0, 0x884($sp) +/* 0DDBD4 7F0A9064 50400040 */ beql $v0, $zero, .Ljp7F0A9168 +/* 0DDBD8 7F0A9068 3C014120 */ lui $at, 0x4120 +/* 0DDBDC 7F0A906C 0FC177BC */ jal get_item_in_hand +/* 0DDBE0 7F0A9070 00002025 */ move $a0, $zero +/* 0DDBE4 7F0A9074 000270C0 */ sll $t6, $v0, 3 +/* 0DDBE8 7F0A9078 01C27023 */ subu $t6, $t6, $v0 +/* 0DDBEC 7F0A907C 3C0F8003 */ lui $t7, %hi(gitem_structs) # $t7, 0x8003 +/* 0DDBF0 7F0A9080 25EF3964 */ addiu $t7, %lo(gitem_structs) # addiu $t7, $t7, 0x3964 +/* 0DDBF4 7F0A9084 000E70C0 */ sll $t6, $t6, 3 +/* 0DDBF8 7F0A9088 01CF8021 */ addu $s0, $t6, $t7 +/* 0DDBFC 7F0A908C 00002025 */ move $a0, $zero +/* 0DDC00 7F0A9090 0C0030DC */ jal get_controller_buttons_held +/* 0DDC04 7F0A9094 24050002 */ li $a1, 2 +/* 0DDC08 7F0A9098 10400006 */ beqz $v0, .Ljp7F0A90B4 +/* 0DDC0C 7F0A909C 00002025 */ move $a0, $zero +/* 0DDC10 7F0A90A0 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DDC14 7F0A90A4 44813000 */ mtc1 $at, $f6 +/* 0DDC18 7F0A90A8 C604002C */ lwc1 $f4, 0x2c($s0) +/* 0DDC1C 7F0A90AC 46062201 */ sub.s $f8, $f4, $f6 +/* 0DDC20 7F0A90B0 E608002C */ swc1 $f8, 0x2c($s0) +.Ljp7F0A90B4: +/* 0DDC24 7F0A90B4 0C0030DC */ jal get_controller_buttons_held +/* 0DDC28 7F0A90B8 24050001 */ li $a1, 1 +/* 0DDC2C 7F0A90BC 10400006 */ beqz $v0, .Ljp7F0A90D8 +/* 0DDC30 7F0A90C0 00002025 */ move $a0, $zero +/* 0DDC34 7F0A90C4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DDC38 7F0A90C8 44818000 */ mtc1 $at, $f16 +/* 0DDC3C 7F0A90CC C60A002C */ lwc1 $f10, 0x2c($s0) +/* 0DDC40 7F0A90D0 46105480 */ add.s $f18, $f10, $f16 +/* 0DDC44 7F0A90D4 E612002C */ swc1 $f18, 0x2c($s0) +.Ljp7F0A90D8: +/* 0DDC48 7F0A90D8 0C0030DC */ jal get_controller_buttons_held +/* 0DDC4C 7F0A90DC 24050004 */ li $a1, 4 +/* 0DDC50 7F0A90E0 10400006 */ beqz $v0, .Ljp7F0A90FC +/* 0DDC54 7F0A90E4 00002025 */ move $a0, $zero +/* 0DDC58 7F0A90E8 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DDC5C 7F0A90EC 44813000 */ mtc1 $at, $f6 +/* 0DDC60 7F0A90F0 C6040030 */ lwc1 $f4, 0x30($s0) +/* 0DDC64 7F0A90F4 46062200 */ add.s $f8, $f4, $f6 +/* 0DDC68 7F0A90F8 E6080030 */ swc1 $f8, 0x30($s0) +.Ljp7F0A90FC: +/* 0DDC6C 7F0A90FC 0C0030DC */ jal get_controller_buttons_held +/* 0DDC70 7F0A9100 24050008 */ li $a1, 8 +/* 0DDC74 7F0A9104 10400006 */ beqz $v0, .Ljp7F0A9120 +/* 0DDC78 7F0A9108 00002025 */ move $a0, $zero +/* 0DDC7C 7F0A910C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DDC80 7F0A9110 44818000 */ mtc1 $at, $f16 +/* 0DDC84 7F0A9114 C60A0030 */ lwc1 $f10, 0x30($s0) +/* 0DDC88 7F0A9118 46105481 */ sub.s $f18, $f10, $f16 +/* 0DDC8C 7F0A911C E6120030 */ swc1 $f18, 0x30($s0) +.Ljp7F0A9120: +/* 0DDC90 7F0A9120 0C0030DC */ jal get_controller_buttons_held +/* 0DDC94 7F0A9124 24050020 */ li $a1, 32 +/* 0DDC98 7F0A9128 10400006 */ beqz $v0, .Ljp7F0A9144 +/* 0DDC9C 7F0A912C 00002025 */ move $a0, $zero +/* 0DDCA0 7F0A9130 3C018006 */ lui $at, %hi(D_80058520) # $at, 0x8006 +/* 0DDCA4 7F0A9134 C4268560 */ lwc1 $f6, %lo(D_80058520)($at) +/* 0DDCA8 7F0A9138 C6040034 */ lwc1 $f4, 0x34($s0) +/* 0DDCAC 7F0A913C 46062202 */ mul.s $f8, $f4, $f6 +/* 0DDCB0 7F0A9140 E6080034 */ swc1 $f8, 0x34($s0) +.Ljp7F0A9144: +/* 0DDCB4 7F0A9144 0C0030DC */ jal get_controller_buttons_held +/* 0DDCB8 7F0A9148 24050010 */ li $a1, 16 +/* 0DDCBC 7F0A914C 10400005 */ beqz $v0, .Ljp7F0A9164 +/* 0DDCC0 7F0A9150 3C018006 */ lui $at, %hi(D_80058524) # $at, 0x8006 +/* 0DDCC4 7F0A9154 C60A0034 */ lwc1 $f10, 0x34($s0) +/* 0DDCC8 7F0A9158 C4308564 */ lwc1 $f16, %lo(D_80058524)($at) +/* 0DDCCC 7F0A915C 46105482 */ mul.s $f18, $f10, $f16 +/* 0DDCD0 7F0A9160 E6120034 */ swc1 $f18, 0x34($s0) +.Ljp7F0A9164: +/* 0DDCD4 7F0A9164 3C014120 */ li $at, 0x41200000 # 10.000000 +.Ljp7F0A9168: +/* 0DDCD8 7F0A9168 44812000 */ mtc1 $at, $f4 +/* 0DDCDC 7F0A916C 3C018006 */ lui $at, %hi(D_80058528) # $at, 0x8006 +/* 0DDCE0 7F0A9170 C4268568 */ lwc1 $f6, %lo(D_80058528)($at) +/* 0DDCE4 7F0A9174 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DDCE8 7F0A9178 44814000 */ mtc1 $at, $f8 +/* 0DDCEC 7F0A917C 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 0DDCF0 7F0A9180 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 0DDCF4 7F0A9184 8FA4092C */ lw $a0, 0x92c($sp) +/* 0DDCF8 7F0A9188 27A5092A */ addiu $a1, $sp, 0x92a +/* 0DDCFC 7F0A918C 8FA6089C */ lw $a2, 0x89c($sp) +/* 0DDD00 7F0A9190 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0DDD04 7F0A9194 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0DDD08 7F0A9198 0C003FBC */ jal guPerspective +/* 0DDD0C 7F0A919C E7A80018 */ swc1 $f8, 0x18($sp) +/* 0DDD10 7F0A91A0 8FA20930 */ lw $v0, 0x930($sp) +/* 0DDD14 7F0A91A4 3C180103 */ lui $t8, (0x01030040 >> 16) # lui $t8, 0x103 +/* 0DDD18 7F0A91A8 37180040 */ ori $t8, (0x01030040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 0DDD1C 7F0A91AC 00408025 */ move $s0, $v0 +/* 0DDD20 7F0A91B0 AE180000 */ sw $t8, ($s0) +/* 0DDD24 7F0A91B4 24420008 */ addiu $v0, $v0, 8 +/* 0DDD28 7F0A91B8 AFA20930 */ sw $v0, 0x930($sp) +/* 0DDD2C 7F0A91BC 0C003A3C */ jal osVirtualToPhysical +/* 0DDD30 7F0A91C0 8FA4092C */ lw $a0, 0x92c($sp) +/* 0DDD34 7F0A91C4 AE020004 */ sw $v0, 4($s0) +/* 0DDD38 7F0A91C8 3C018006 */ lui $at, %hi(D_8005852C) # $at, 0x8006 +/* 0DDD3C 7F0A91CC C430856C */ lwc1 $f16, %lo(D_8005852C)($at) +/* 0DDD40 7F0A91D0 C7AA0884 */ lwc1 $f10, 0x884($sp) +/* 0DDD44 7F0A91D4 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DDD48 7F0A91D8 44812000 */ mtc1 $at, $f4 +/* 0DDD4C 7F0A91DC 46105482 */ mul.s $f18, $f10, $f16 +/* 0DDD50 7F0A91E0 27A508E8 */ addiu $a1, $sp, 0x8e8 +/* 0DDD54 7F0A91E4 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 0DDD58 7F0A91E8 46049303 */ div.s $f12, $f18, $f4 +/* 0DDD5C 7F0A91EC 3C018006 */ lui $at, %hi(D_80058530) # $at, 0x8006 +/* 0DDD60 7F0A91F0 C4208570 */ lwc1 $f0, %lo(D_80058530)($at) +/* 0DDD64 7F0A91F4 C7A60888 */ lwc1 $f6, 0x888($sp) +/* 0DDD68 7F0A91F8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DDD6C 7F0A91FC 44815000 */ mtc1 $at, $f10 +/* 0DDD70 7F0A9200 46003202 */ mul.s $f8, $f6, $f0 +/* 0DDD74 7F0A9204 27B008A8 */ addiu $s0, $sp, 0x8a8 +/* 0DDD78 7F0A9208 02002825 */ move $a1, $s0 +/* 0DDD7C 7F0A920C 460A4403 */ div.s $f16, $f8, $f10 +/* 0DDD80 7F0A9210 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 0DDD84 7F0A9214 46100301 */ sub.s $f12, $f0, $f16 +/* 0DDD88 7F0A9218 02002025 */ move $a0, $s0 +/* 0DDD8C 7F0A921C 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 0DDD90 7F0A9220 27A508E8 */ addiu $a1, $sp, 0x8e8 +/* 0DDD94 7F0A9224 3C018004 */ lui $at, %hi(D_80040B14) # $at, 0x8004 +/* 0DDD98 7F0A9228 0FC160F0 */ jal cosf +/* 0DDD9C 7F0A922C C42C0B44 */ lwc1 $f12, %lo(D_80040B14)($at) +/* 0DDDA0 7F0A9230 C7B20890 */ lwc1 $f18, 0x890($sp) +/* 0DDDA4 7F0A9234 3C018004 */ lui $at, %hi(D_80040B14) # $at, 0x8004 +/* 0DDDA8 7F0A9238 C42C0B44 */ lwc1 $f12, %lo(D_80040B14)($at) +/* 0DDDAC 7F0A923C 46120102 */ mul.s $f4, $f0, $f18 +/* 0DDDB0 7F0A9240 0FC160F3 */ jal sinf +/* 0DDDB4 7F0A9244 E7A408A4 */ swc1 $f4, 0x8a4($sp) +/* 0DDDB8 7F0A9248 C7A60890 */ lwc1 $f6, 0x890($sp) +/* 0DDDBC 7F0A924C C7AE0898 */ lwc1 $f14, 0x898($sp) +/* 0DDDC0 7F0A9250 44801000 */ mtc1 $zero, $f2 +/* 0DDDC4 7F0A9254 46060202 */ mul.s $f8, $f0, $f6 +/* 0DDDC8 7F0A9258 C7AC0894 */ lwc1 $f12, 0x894($sp) +/* 0DDDCC 7F0A925C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DDDD0 7F0A9260 44818000 */ mtc1 $at, $f16 +/* 0DDDD4 7F0A9264 44066000 */ mfc1 $a2, $f12 +/* 0DDDD8 7F0A9268 02002025 */ move $a0, $s0 +/* 0DDDDC 7F0A926C 8FA508A4 */ lw $a1, 0x8a4($sp) +/* 0DDDE0 7F0A9270 460E4280 */ add.s $f10, $f8, $f14 +/* 0DDDE4 7F0A9274 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 0DDDE8 7F0A9278 E7A20010 */ swc1 $f2, 0x10($sp) +/* 0DDDEC 7F0A927C E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0DDDF0 7F0A9280 44075000 */ mfc1 $a3, $f10 +/* 0DDDF4 7F0A9284 E7A20024 */ swc1 $f2, 0x24($sp) +/* 0DDDF8 7F0A9288 E7AC0014 */ swc1 $f12, 0x14($sp) +/* 0DDDFC 7F0A928C 0FC166ED */ jal sub_GAME_7F059694 +/* 0DDE00 7F0A9290 E7B00020 */ swc1 $f16, 0x20($sp) +/* 0DDE04 7F0A9294 02002025 */ move $a0, $s0 +/* 0DDE08 7F0A9298 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 0DDE0C 7F0A929C 27A508E8 */ addiu $a1, $sp, 0x8e8 +/* 0DDE10 7F0A92A0 0FC29EA0 */ jal sub_GAME_7F0A6EE8 +/* 0DDE14 7F0A92A4 8FA40930 */ lw $a0, 0x930($sp) +/* 0DDE18 7F0A92A8 3C19A0FF */ lui $t9, (0xA0FFA03C >> 16) # lui $t9, 0xa0ff +/* 0DDE1C 7F0A92AC 3739A03C */ ori $t9, (0xA0FFA03C & 0xFFFF) # ori $t9, $t9, 0xa03c +/* 0DDE20 7F0A92B0 AFB90010 */ sw $t9, 0x10($sp) +/* 0DDE24 7F0A92B4 00402025 */ move $a0, $v0 +/* 0DDE28 7F0A92B8 8FA5088C */ lw $a1, 0x88c($sp) +/* 0DDE2C 7F0A92BC 27A608E8 */ addiu $a2, $sp, 0x8e8 +/* 0DDE30 7F0A92C0 0FC18D4C */ jal set_enviro_fog_for_items_in_solo_watch_menu +/* 0DDE34 7F0A92C4 24070040 */ li $a3, 64 +/* 0DDE38 7F0A92C8 3C0B8005 */ lui $t3, %hi(j_text_trigger) # $t3, 0x8005 +/* 0DDE3C 7F0A92CC 8D6B8500 */ lw $t3, %lo(j_text_trigger)($t3) +/* 0DDE40 7F0A92D0 3C098004 */ lui $t1, %hi(ptrFirstFontTableSmall) # $t1, 0x8004 +/* 0DDE44 7F0A92D4 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) # $t2, 0x8004 +/* 0DDE48 7F0A92D8 8D290EDC */ lw $t1, %lo(ptrFirstFontTableSmall)($t1) +/* 0DDE4C 7F0A92DC 8D4A0EE0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0DDE50 7F0A92E0 AFA20930 */ sw $v0, 0x930($sp) +/* 0DDE54 7F0A92E4 AFA00868 */ sw $zero, 0x868($sp) +/* 0DDE58 7F0A92E8 AFA00864 */ sw $zero, 0x864($sp) +/* 0DDE5C 7F0A92EC AFA90860 */ sw $t1, 0x860($sp) +/* 0DDE60 7F0A92F0 11600004 */ beqz $t3, .Ljp7F0A9304 +/* 0DDE64 7F0A92F4 AFAA085C */ sw $t2, 0x85c($sp) +/* 0DDE68 7F0A92F8 240C0082 */ li $t4, 130 +/* 0DDE6C 7F0A92FC 10000003 */ b .Ljp7F0A930C +/* 0DDE70 7F0A9300 AFAC0084 */ sw $t4, 0x84($sp) +.Ljp7F0A9304: +/* 0DDE74 7F0A9304 240D008C */ li $t5, 140 +/* 0DDE78 7F0A9308 AFAD0084 */ sw $t5, 0x84($sp) +.Ljp7F0A930C: +/* 0DDE7C 7F0A930C A3A0008C */ sb $zero, 0x8c($sp) +/* 0DDE80 7F0A9310 0FC23667 */ jal count_total_items_in_inventory +/* 0DDE84 7F0A9314 00008025 */ move $s0, $zero +/* 0DDE88 7F0A9318 1840000B */ blez $v0, .Ljp7F0A9348 +/* 0DDE8C 7F0A931C 00000000 */ nop +.Ljp7F0A9320: +/* 0DDE90 7F0A9320 0FC2374A */ jal sub_GAME_7F08D340 +/* 0DDE94 7F0A9324 02002025 */ move $a0, $s0 +/* 0DDE98 7F0A9328 27A4008C */ addiu $a0, $sp, 0x8c +/* 0DDE9C 7F0A932C 0C002A03 */ jal string_append_from_obseg_textbank +/* 0DDEA0 7F0A9330 00402825 */ move $a1, $v0 +/* 0DDEA4 7F0A9334 0FC23667 */ jal count_total_items_in_inventory +/* 0DDEA8 7F0A9338 26100001 */ addiu $s0, $s0, 1 +/* 0DDEAC 7F0A933C 0202082A */ slt $at, $s0, $v0 +/* 0DDEB0 7F0A9340 1420FFF7 */ bnez $at, .Ljp7F0A9320 +/* 0DDEB4 7F0A9344 00000000 */ nop +.Ljp7F0A9348: +/* 0DDEB8 7F0A9348 3C038004 */ lui $v1, %hi(D_800409C4) # $v1, 0x8004 +/* 0DDEBC 7F0A934C 246309F4 */ addiu $v1, %lo(D_800409C4) # addiu $v1, $v1, 0x9f4 +/* 0DDEC0 7F0A9350 8C620000 */ lw $v0, ($v1) +/* 0DDEC4 7F0A9354 18400002 */ blez $v0, .Ljp7F0A9360 +/* 0DDEC8 7F0A9358 244EFFFF */ addiu $t6, $v0, -1 +/* 0DDECC 7F0A935C AC6E0000 */ sw $t6, ($v1) +.Ljp7F0A9360: +/* 0DDED0 7F0A9360 0FC299C8 */ jal sub_GAME_7F0A5B80 +/* 0DDED4 7F0A9364 00000000 */ nop +/* 0DDED8 7F0A9368 3C188005 */ lui $t8, %hi(j_text_trigger) # $t8, 0x8005 +/* 0DDEDC 7F0A936C 8F188500 */ lw $t8, %lo(j_text_trigger)($t8) +/* 0DDEE0 7F0A9370 8FA30084 */ lw $v1, 0x84($sp) +/* 0DDEE4 7F0A9374 240F004E */ li $t7, 78 +/* 0DDEE8 7F0A9378 AFAF0878 */ sw $t7, 0x878($sp) +/* 0DDEEC 7F0A937C 13000003 */ beqz $t8, .Ljp7F0A938C +/* 0DDEF0 7F0A9380 AFA30874 */ sw $v1, 0x874($sp) +/* 0DDEF4 7F0A9384 10000002 */ b .Ljp7F0A9390 +/* 0DDEF8 7F0A9388 2402000E */ li $v0, 14 +.Ljp7F0A938C: +/* 0DDEFC 7F0A938C 2402000C */ li $v0, 12 +.Ljp7F0A9390: +/* 0DDF00 7F0A9390 0002C840 */ sll $t9, $v0, 1 +/* 0DDF04 7F0A9394 03238021 */ addu $s0, $t9, $v1 +/* 0DDF08 7F0A9398 26100001 */ addiu $s0, $s0, 1 +/* 0DDF0C 7F0A939C 0FC2B652 */ jal microcode_constructor +/* 0DDF10 7F0A93A0 8FA40930 */ lw $a0, 0x930($sp) +/* 0DDF14 7F0A93A4 3C098005 */ lui $t1, %hi(j_text_trigger) # $t1, 0x8005 +/* 0DDF18 7F0A93A8 8D298500 */ lw $t1, %lo(j_text_trigger)($t1) +/* 0DDF1C 7F0A93AC AFA20930 */ sw $v0, 0x930($sp) +/* 0DDF20 7F0A93B0 27A40868 */ addiu $a0, $sp, 0x868 +/* 0DDF24 7F0A93B4 11200003 */ beqz $t1, .Ljp7F0A93C4 +/* 0DDF28 7F0A93B8 27A50864 */ addiu $a1, $sp, 0x864 +/* 0DDF2C 7F0A93BC 10000002 */ b .Ljp7F0A93C8 +/* 0DDF30 7F0A93C0 2402000E */ li $v0, 14 +.Ljp7F0A93C4: +/* 0DDF34 7F0A93C4 2402000C */ li $v0, 12 +.Ljp7F0A93C8: +/* 0DDF38 7F0A93C8 8FAA0860 */ lw $t2, 0x860($sp) +/* 0DDF3C 7F0A93CC 27A6008C */ addiu $a2, $sp, 0x8c +/* 0DDF40 7F0A93D0 8FA7085C */ lw $a3, 0x85c($sp) +/* 0DDF44 7F0A93D4 AFA20014 */ sw $v0, 0x14($sp) +/* 0DDF48 7F0A93D8 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0DDF4C 7F0A93DC AFAA0010 */ sw $t2, 0x10($sp) +/* 0DDF50 7F0A93E0 3C0B8005 */ lui $t3, %hi(j_text_trigger) # $t3, 0x8005 +/* 0DDF54 7F0A93E4 8D6B8500 */ lw $t3, %lo(j_text_trigger)($t3) +/* 0DDF58 7F0A93E8 8FA60084 */ lw $a2, 0x84($sp) +/* 0DDF5C 7F0A93EC 8FA40930 */ lw $a0, 0x930($sp) +/* 0DDF60 7F0A93F0 11600003 */ beqz $t3, .Ljp7F0A9400 +/* 0DDF64 7F0A93F4 2405004E */ li $a1, 78 +/* 0DDF68 7F0A93F8 10000002 */ b .Ljp7F0A9404 +/* 0DDF6C 7F0A93FC 2402000E */ li $v0, 14 +.Ljp7F0A9400: +/* 0DDF70 7F0A9400 2402000C */ li $v0, 12 +.Ljp7F0A9404: +/* 0DDF74 7F0A9404 00026080 */ sll $t4, $v0, 2 +/* 0DDF78 7F0A9408 8FA70864 */ lw $a3, 0x864($sp) +/* 0DDF7C 7F0A940C 01826021 */ addu $t4, $t4, $v0 +/* 0DDF80 7F0A9410 01866821 */ addu $t5, $t4, $a2 +/* 0DDF84 7F0A9414 AFAD0010 */ sw $t5, 0x10($sp) +/* 0DDF88 7F0A9418 AFA00014 */ sw $zero, 0x14($sp) +/* 0DDF8C 7F0A941C 0FC2B6F1 */ jal microcode_constructor_related_to_menus +/* 0DDF90 7F0A9420 24E7004E */ addiu $a3, $a3, 0x4e +/* 0DDF94 7F0A9424 3C038005 */ lui $v1, %hi(j_text_trigger) # $v1, 0x8005 +/* 0DDF98 7F0A9428 8C638500 */ lw $v1, %lo(j_text_trigger)($v1) +/* 0DDF9C 7F0A942C 00402025 */ move $a0, $v0 +/* 0DDFA0 7F0A9430 27A50878 */ addiu $a1, $sp, 0x878 +/* 0DDFA4 7F0A9434 10600003 */ beqz $v1, .Ljp7F0A9444 +/* 0DDFA8 7F0A9438 27A60874 */ addiu $a2, $sp, 0x874 +/* 0DDFAC 7F0A943C 10000002 */ b .Ljp7F0A9448 +/* 0DDFB0 7F0A9440 2408000E */ li $t0, 14 +.Ljp7F0A9444: +/* 0DDFB4 7F0A9444 2408000C */ li $t0, 12 +.Ljp7F0A9448: +/* 0DDFB8 7F0A9448 10600003 */ beqz $v1, .Ljp7F0A9458 +/* 0DDFBC 7F0A944C 27A7008C */ addiu $a3, $sp, 0x8c +/* 0DDFC0 7F0A9450 10000002 */ b .Ljp7F0A945C +/* 0DDFC4 7F0A9454 2402000E */ li $v0, 14 +.Ljp7F0A9458: +/* 0DDFC8 7F0A9458 2402000C */ li $v0, 12 +.Ljp7F0A945C: +/* 0DDFCC 7F0A945C 8FB90864 */ lw $t9, 0x864($sp) +/* 0DDFD0 7F0A9460 3C0B8004 */ lui $t3, %hi(D_800409B0) # $t3, 0x8004 +/* 0DDFD4 7F0A9464 8D6B09E0 */ lw $t3, %lo(D_800409B0)($t3) +/* 0DDFD8 7F0A9468 8FAE085C */ lw $t6, 0x85c($sp) +/* 0DDFDC 7F0A946C 8FAF0860 */ lw $t7, 0x860($sp) +/* 0DDFE0 7F0A9470 3C1800AA */ lui $t8, (0x00AA00B0 >> 16) # lui $t8, 0xaa +/* 0DDFE4 7F0A9474 00085080 */ sll $t2, $t0, 2 +/* 0DDFE8 7F0A9478 01485021 */ addu $t2, $t2, $t0 +/* 0DDFEC 7F0A947C 371800B0 */ ori $t8, (0x00AA00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0DDFF0 7F0A9480 27290001 */ addiu $t1, $t9, 1 +/* 0DDFF4 7F0A9484 AFA9001C */ sw $t1, 0x1c($sp) +/* 0DDFF8 7F0A9488 AFB80018 */ sw $t8, 0x18($sp) +/* 0DDFFC 7F0A948C AFAA0020 */ sw $t2, 0x20($sp) +/* 0DE000 7F0A9490 AFA20028 */ sw $v0, 0x28($sp) +/* 0DE004 7F0A9494 AFAB0024 */ sw $t3, 0x24($sp) +/* 0DE008 7F0A9498 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DE00C 7F0A949C 0FC2B99B */ jal en_text_write_stuff +/* 0DE010 7F0A94A0 AFAF0014 */ sw $t7, 0x14($sp) +/* 0DE014 7F0A94A4 3C0C8005 */ lui $t4, %hi(j_text_trigger) # $t4, 0x8005 +/* 0DE018 7F0A94A8 8D8C8500 */ lw $t4, %lo(j_text_trigger)($t4) +/* 0DE01C 7F0A94AC 00402025 */ move $a0, $v0 +/* 0DE020 7F0A94B0 2405004B */ li $a1, 75 +/* 0DE024 7F0A94B4 11800003 */ beqz $t4, .Ljp7F0A94C4 +/* 0DE028 7F0A94B8 02003025 */ move $a2, $s0 +/* 0DE02C 7F0A94BC 10000002 */ b .Ljp7F0A94C8 +/* 0DE030 7F0A94C0 2402000E */ li $v0, 14 +.Ljp7F0A94C4: +/* 0DE034 7F0A94C4 2402000C */ li $v0, 12 +.Ljp7F0A94C8: +/* 0DE038 7F0A94C8 8FA70864 */ lw $a3, 0x864($sp) +/* 0DE03C 7F0A94CC 00506821 */ addu $t5, $v0, $s0 +/* 0DE040 7F0A94D0 3C0F0080 */ lui $t7, (0x00800050 >> 16) # lui $t7, 0x80 +/* 0DE044 7F0A94D4 35EF0050 */ ori $t7, (0x00800050 & 0xFFFF) # ori $t7, $t7, 0x50 +/* 0DE048 7F0A94D8 25AEFFFE */ addiu $t6, $t5, -2 +/* 0DE04C 7F0A94DC AFAE0010 */ sw $t6, 0x10($sp) +/* 0DE050 7F0A94E0 AFAF0014 */ sw $t7, 0x14($sp) +/* 0DE054 7F0A94E4 0FC2B6F1 */ jal microcode_constructor_related_to_menus +/* 0DE058 7F0A94E8 24E70052 */ addiu $a3, $a3, 0x52 +/* 0DE05C 7F0A94EC 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) # $t8, 0x8004 +/* 0DE060 7F0A94F0 8F180EE0 */ lw $t8, %lo(ptrSecondFontTableSmall)($t8) +/* 0DE064 7F0A94F4 3C108004 */ lui $s0, %hi(ptrFirstFontTableSmall) # $s0, 0x8004 +/* 0DE068 7F0A94F8 3C048004 */ lui $a0, %hi(D_800409B8) # $a0, 0x8004 +/* 0DE06C 7F0A94FC AFA20930 */ sw $v0, 0x930($sp) +/* 0DE070 7F0A9500 8E100EDC */ lw $s0, %lo(ptrFirstFontTableSmall)($s0) +/* 0DE074 7F0A9504 8C8409E8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DE078 7F0A9508 0FC2374A */ jal sub_GAME_7F08D340 +/* 0DE07C 7F0A950C AFB8005C */ sw $t8, 0x5c($sp) +/* 0DE080 7F0A9510 3C018004 */ lui $at, %hi(D_800409BC) # $at, 0x8004 +/* 0DE084 7F0A9514 C43209EC */ lwc1 $f18, %lo(D_800409BC)($at) +/* 0DE088 7F0A9518 3C198004 */ lui $t9, %hi(D_800409B8) # $t9, 0x8004 +/* 0DE08C 7F0A951C 8F3909E8 */ lw $t9, %lo(D_800409B8)($t9) +/* 0DE090 7F0A9520 46009121 */ cvt.d.s $f4, $f18 +/* 0DE094 7F0A9524 3C058005 */ lui $a1, %hi(aDDDF) # $a1, 0x8005 +/* 0DE098 7F0A9528 3C068004 */ lui $a2, %hi(D_800409B0) # $a2, 0x8004 +/* 0DE09C 7F0A952C 3C078004 */ lui $a3, %hi(D_800409B4) # $a3, 0x8004 +/* 0DE0A0 7F0A9530 AFA20050 */ sw $v0, 0x50($sp) +/* 0DE0A4 7F0A9534 8CE709E4 */ lw $a3, %lo(D_800409B4)($a3) +/* 0DE0A8 7F0A9538 8CC609E0 */ lw $a2, %lo(D_800409B0)($a2) +/* 0DE0AC 7F0A953C 24A577A8 */ addiu $a1, %lo(aDDDF) # addiu $a1, $a1, 0x77a8 +/* 0DE0B0 7F0A9540 F7A40018 */ sdc1 $f4, 0x18($sp) +/* 0DE0B4 7F0A9544 27A40064 */ addiu $a0, $sp, 0x64 +/* 0DE0B8 7F0A9548 0C002B29 */ jal sprintf +/* 0DE0BC 7F0A954C AFB90010 */ sw $t9, 0x10($sp) +/* 0DE0C0 7F0A9550 0FC2B652 */ jal microcode_constructor +/* 0DE0C4 7F0A9554 8FA40930 */ lw $a0, 0x930($sp) +/* 0DE0C8 7F0A9558 AFA20930 */ sw $v0, 0x930($sp) +/* 0DE0CC 7F0A955C 27A40054 */ addiu $a0, $sp, 0x54 +/* 0DE0D0 7F0A9560 27A50058 */ addiu $a1, $sp, 0x58 +/* 0DE0D4 7F0A9564 27A60064 */ addiu $a2, $sp, 0x64 +/* 0DE0D8 7F0A9568 8FA7005C */ lw $a3, 0x5c($sp) +/* 0DE0DC 7F0A956C AFB00010 */ sw $s0, 0x10($sp) +/* 0DE0E0 7F0A9570 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0DE0E4 7F0A9574 AFA00014 */ sw $zero, 0x14($sp) +/* 0DE0E8 7F0A9578 3C098004 */ lui $t1, %hi(D_800409C0) # $t1, 0x8004 +/* 0DE0EC 7F0A957C 8D2909F0 */ lw $t1, %lo(D_800409C0)($t1) +/* 0DE0F0 7F0A9580 3C0A8005 */ lui $t2, %hi(j_text_trigger) # $t2, 0x8005 +/* 0DE0F4 7F0A9584 27A40054 */ addiu $a0, $sp, 0x54 +/* 0DE0F8 7F0A9588 1120004C */ beqz $t1, .Ljp7F0A96BC +/* 0DE0FC 7F0A958C 27A50058 */ addiu $a1, $sp, 0x58 +/* 0DE100 7F0A9590 8D4A8500 */ lw $t2, %lo(j_text_trigger)($t2) +/* 0DE104 7F0A9594 8FA60050 */ lw $a2, 0x50($sp) +/* 0DE108 7F0A9598 8FA7005C */ lw $a3, 0x5c($sp) +/* 0DE10C 7F0A959C 11400003 */ beqz $t2, .Ljp7F0A95AC +/* 0DE110 7F0A95A0 2402000C */ li $v0, 12 +/* 0DE114 7F0A95A4 10000001 */ b .Ljp7F0A95AC +/* 0DE118 7F0A95A8 2402000E */ li $v0, 14 +.Ljp7F0A95AC: +/* 0DE11C 7F0A95AC AFB00010 */ sw $s0, 0x10($sp) +/* 0DE120 7F0A95B0 0FC2BD4F */ jal sub_GAME_7F0AE98C +/* 0DE124 7F0A95B4 AFA20014 */ sw $v0, 0x14($sp) +/* 0DE128 7F0A95B8 3C038005 */ lui $v1, %hi(j_text_trigger) # $v1, 0x8005 +/* 0DE12C 7F0A95BC 8C638500 */ lw $v1, %lo(j_text_trigger)($v1) +/* 0DE130 7F0A95C0 240B004E */ li $t3, 78 +/* 0DE134 7F0A95C4 AFAB0878 */ sw $t3, 0x878($sp) +/* 0DE138 7F0A95C8 10600003 */ beqz $v1, .Ljp7F0A95D8 +/* 0DE13C 7F0A95CC 8FAD0084 */ lw $t5, 0x84($sp) +/* 0DE140 7F0A95D0 10000002 */ b .Ljp7F0A95DC +/* 0DE144 7F0A95D4 2402000E */ li $v0, 14 +.Ljp7F0A95D8: +/* 0DE148 7F0A95D8 2402000C */ li $v0, 12 +.Ljp7F0A95DC: +/* 0DE14C 7F0A95DC 3C0F8004 */ lui $t7, %hi(D_800409C4) # $t7, 0x8004 +/* 0DE150 7F0A95E0 8DEF09F4 */ lw $t7, %lo(D_800409C4)($t7) +/* 0DE154 7F0A95E4 00026040 */ sll $t4, $v0, 1 +/* 0DE158 7F0A95E8 018D7021 */ addu $t6, $t4, $t5 +/* 0DE15C 7F0A95EC 15E00018 */ bnez $t7, .Ljp7F0A9650 +/* 0DE160 7F0A95F0 AFAE0874 */ sw $t6, 0x874($sp) +/* 0DE164 7F0A95F4 10600003 */ beqz $v1, .Ljp7F0A9604 +/* 0DE168 7F0A95F8 8FA40930 */ lw $a0, 0x930($sp) +/* 0DE16C 7F0A95FC 10000002 */ b .Ljp7F0A9608 +/* 0DE170 7F0A9600 2402000E */ li $v0, 14 +.Ljp7F0A9604: +/* 0DE174 7F0A9604 2402000C */ li $v0, 12 +.Ljp7F0A9608: +/* 0DE178 7F0A9608 8FB8005C */ lw $t8, 0x5c($sp) +/* 0DE17C 7F0A960C 8FA90058 */ lw $t1, 0x58($sp) +/* 0DE180 7F0A9610 3C19A0FF */ lui $t9, (0xA0FFA0F0 >> 16) # lui $t9, 0xa0ff +/* 0DE184 7F0A9614 3739A0F0 */ ori $t9, (0xA0FFA0F0 & 0xFFFF) # ori $t9, $t9, 0xa0f0 +/* 0DE188 7F0A9618 240A0064 */ li $t2, 100 +/* 0DE18C 7F0A961C AFAA0020 */ sw $t2, 0x20($sp) +/* 0DE190 7F0A9620 AFB90018 */ sw $t9, 0x18($sp) +/* 0DE194 7F0A9624 27A50878 */ addiu $a1, $sp, 0x878 +/* 0DE198 7F0A9628 27A60874 */ addiu $a2, $sp, 0x874 +/* 0DE19C 7F0A962C 8FA70050 */ lw $a3, 0x50($sp) +/* 0DE1A0 7F0A9630 AFB00014 */ sw $s0, 0x14($sp) +/* 0DE1A4 7F0A9634 AFA00024 */ sw $zero, 0x24($sp) +/* 0DE1A8 7F0A9638 AFA20028 */ sw $v0, 0x28($sp) +/* 0DE1AC 7F0A963C AFB80010 */ sw $t8, 0x10($sp) +/* 0DE1B0 7F0A9640 0FC2B99B */ jal en_text_write_stuff +/* 0DE1B4 7F0A9644 AFA9001C */ sw $t1, 0x1c($sp) +/* 0DE1B8 7F0A9648 1000001A */ b .Ljp7F0A96B4 +/* 0DE1BC 7F0A964C AFA20930 */ sw $v0, 0x930($sp) +.Ljp7F0A9650: +/* 0DE1C0 7F0A9650 10600003 */ beqz $v1, .Ljp7F0A9660 +/* 0DE1C4 7F0A9654 8FA40930 */ lw $a0, 0x930($sp) +/* 0DE1C8 7F0A9658 10000002 */ b .Ljp7F0A9664 +/* 0DE1CC 7F0A965C 2402000E */ li $v0, 14 +.Ljp7F0A9660: +/* 0DE1D0 7F0A9660 2402000C */ li $v0, 12 +.Ljp7F0A9664: +/* 0DE1D4 7F0A9664 8FAE0058 */ lw $t6, 0x58($sp) +/* 0DE1D8 7F0A9668 8FAB005C */ lw $t3, 0x5c($sp) +/* 0DE1DC 7F0A966C 3C0D0070 */ lui $t5, (0x007000A0 >> 16) # lui $t5, 0x70 +/* 0DE1E0 7F0A9670 35AD00A0 */ ori $t5, (0x007000A0 & 0xFFFF) # ori $t5, $t5, 0xa0 +/* 0DE1E4 7F0A9674 240CFFFF */ li $t4, -1 +/* 0DE1E8 7F0A9678 24180064 */ li $t8, 100 +/* 0DE1EC 7F0A967C 25CF0001 */ addiu $t7, $t6, 1 +/* 0DE1F0 7F0A9680 AFAF0020 */ sw $t7, 0x20($sp) +/* 0DE1F4 7F0A9684 AFB80024 */ sw $t8, 0x24($sp) +/* 0DE1F8 7F0A9688 AFAC0018 */ sw $t4, 0x18($sp) +/* 0DE1FC 7F0A968C AFAD001C */ sw $t5, 0x1c($sp) +/* 0DE200 7F0A9690 27A50878 */ addiu $a1, $sp, 0x878 +/* 0DE204 7F0A9694 27A60874 */ addiu $a2, $sp, 0x874 +/* 0DE208 7F0A9698 8FA70050 */ lw $a3, 0x50($sp) +/* 0DE20C 7F0A969C AFB00014 */ sw $s0, 0x14($sp) +/* 0DE210 7F0A96A0 AFA00028 */ sw $zero, 0x28($sp) +/* 0DE214 7F0A96A4 AFA2002C */ sw $v0, 0x2c($sp) +/* 0DE218 7F0A96A8 0FC2BCA7 */ jal jp_text_write_stuff +/* 0DE21C 7F0A96AC AFAB0010 */ sw $t3, 0x10($sp) +/* 0DE220 7F0A96B0 AFA20930 */ sw $v0, 0x930($sp) +.Ljp7F0A96B4: +/* 0DE224 7F0A96B4 0FC2A3C4 */ jal sub_GAME_7F0A8378 +/* 0DE228 7F0A96B8 00000000 */ nop +.Ljp7F0A96BC: +/* 0DE22C 7F0A96BC 8FBF003C */ lw $ra, 0x3c($sp) +.Ljp7F0A96C0: +/* 0DE230 7F0A96C0 8FA20930 */ lw $v0, 0x930($sp) +/* 0DE234 7F0A96C4 8FB00038 */ lw $s0, 0x38($sp) +/* 0DE238 7F0A96C8 03E00008 */ jr $ra +/* 0DE23C 7F0A96CC 27BD0930 */ addiu $sp, $sp, 0x930 +) +#endif + +#endif + + + +#ifdef NONMATCHING +void sub_GAME_7F0A8B10(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A8B10 +/* 0DD640 7F0A8B10 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 0DD644 7F0A8B14 AFB00038 */ sw $s0, 0x38($sp) +/* 0DD648 7F0A8B18 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0DD64C 7F0A8B1C 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0DD650 7F0A8B20 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0DD654 7F0A8B24 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0DD658 7F0A8B28 00808025 */ move $s0, $a0 +/* 0DD65C 7F0A8B2C AFBF003C */ sw $ra, 0x3c($sp) +/* 0DD660 7F0A8B30 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DD664 7F0A8B34 AFA5007C */ sw $a1, 0x7c($sp) +/* 0DD668 7F0A8B38 AFA00058 */ sw $zero, 0x58($sp) +/* 0DD66C 7F0A8B3C AFA00054 */ sw $zero, 0x54($sp) +/* 0DD670 7F0A8B40 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DD674 7F0A8B44 AFAE0050 */ sw $t6, 0x50($sp) +/* 0DD678 7F0A8B48 0FC2350D */ jal sub_GAME_7F08D434 +/* 0DD67C 7F0A8B4C AFAF004C */ sw $t7, 0x4c($sp) +/* 0DD680 7F0A8B50 AFA20048 */ sw $v0, 0x48($sp) +/* 0DD684 7F0A8B54 02002025 */ move $a0, $s0 +/* 0DD688 7F0A8B58 8FA5007C */ lw $a1, 0x7c($sp) +/* 0DD68C 7F0A8B5C 0FC29C53 */ jal sub_GAME_7F0A714C +/* 0DD690 7F0A8B60 00003025 */ move $a2, $zero +/* 0DD694 7F0A8B64 0FC1F97F */ jal check_watch_page_transistion_running +/* 0DD698 7F0A8B68 00408025 */ move $s0, $v0 +/* 0DD69C 7F0A8B6C 24010001 */ li $at, 1 +/* 0DD6A0 7F0A8B70 1041006E */ beq $v0, $at, .L7F0A8D2C +/* 0DD6A4 7F0A8B74 3C038004 */ lui $v1, %hi(D_800409C4) +/* 0DD6A8 7F0A8B78 246309C4 */ addiu $v1, %lo(D_800409C4) # addiu $v1, $v1, 0x9c4 +/* 0DD6AC 7F0A8B7C 8C620000 */ lw $v0, ($v1) +/* 0DD6B0 7F0A8B80 18400002 */ blez $v0, .L7F0A8B8C +/* 0DD6B4 7F0A8B84 2458FFFF */ addiu $t8, $v0, -1 +/* 0DD6B8 7F0A8B88 AC780000 */ sw $t8, ($v1) +.L7F0A8B8C: +/* 0DD6BC 7F0A8B8C 0FC296E0 */ jal sub_GAME_7F0A5B80 +/* 0DD6C0 7F0A8B90 00000000 */ nop +/* 0DD6C4 7F0A8B94 0FC2B366 */ jal microcode_constructor +/* 0DD6C8 7F0A8B98 02002025 */ move $a0, $s0 +/* 0DD6CC 7F0A8B9C 8FB90050 */ lw $t9, 0x50($sp) +/* 0DD6D0 7F0A8BA0 00408025 */ move $s0, $v0 +/* 0DD6D4 7F0A8BA4 27A40058 */ addiu $a0, $sp, 0x58 +/* 0DD6D8 7F0A8BA8 27A50054 */ addiu $a1, $sp, 0x54 +/* 0DD6DC 7F0A8BAC 8FA60048 */ lw $a2, 0x48($sp) +/* 0DD6E0 7F0A8BB0 8FA7004C */ lw $a3, 0x4c($sp) +/* 0DD6E4 7F0A8BB4 AFA00014 */ sw $zero, 0x14($sp) +/* 0DD6E8 7F0A8BB8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DD6EC 7F0A8BBC AFB90010 */ sw $t9, 0x10($sp) +/* 0DD6F0 7F0A8BC0 8FA80054 */ lw $t0, 0x54($sp) +/* 0DD6F4 7F0A8BC4 240900AA */ li $t1, 170 +/* 0DD6F8 7F0A8BC8 8FAC005C */ lw $t4, 0x5c($sp) +/* 0DD6FC 7F0A8BCC 01282823 */ subu $a1, $t1, $t0 +/* 0DD700 7F0A8BD0 04A10003 */ bgez $a1, .L7F0A8BE0 +/* 0DD704 7F0A8BD4 00055043 */ sra $t2, $a1, 1 +/* 0DD708 7F0A8BD8 24A10001 */ addiu $at, $a1, 1 +/* 0DD70C 7F0A8BDC 00015043 */ sra $t2, $at, 1 +.L7F0A8BE0: +/* 0DD710 7F0A8BE0 3C0D0080 */ lui $t5, (0x00800050 >> 16) # lui $t5, 0x80 +/* 0DD714 7F0A8BE4 2545004B */ addiu $a1, $t2, 0x4b +/* 0DD718 7F0A8BE8 240B001E */ li $t3, 30 +/* 0DD71C 7F0A8BEC 35AD0050 */ ori $t5, (0x00800050 & 0xFFFF) # ori $t5, $t5, 0x50 +/* 0DD720 7F0A8BF0 AFAB006C */ sw $t3, 0x6c($sp) +/* 0DD724 7F0A8BF4 AFAD0014 */ sw $t5, 0x14($sp) +/* 0DD728 7F0A8BF8 AFA50070 */ sw $a1, 0x70($sp) +/* 0DD72C 7F0A8BFC 02002025 */ move $a0, $s0 +/* 0DD730 7F0A8C00 2406001E */ li $a2, 30 +/* 0DD734 7F0A8C04 8FA70060 */ lw $a3, 0x60($sp) +/* 0DD738 7F0A8C08 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0DD73C 7F0A8C0C AFAC0010 */ sw $t4, 0x10($sp) +/* 0DD740 7F0A8C10 3C0E8004 */ lui $t6, %hi(D_800409C0) +/* 0DD744 7F0A8C14 8DCE09C0 */ lw $t6, %lo(D_800409C0)($t6) +/* 0DD748 7F0A8C18 00408025 */ move $s0, $v0 +/* 0DD74C 7F0A8C1C 02002025 */ move $a0, $s0 +/* 0DD750 7F0A8C20 11C00031 */ beqz $t6, .L7F0A8CE8 +/* 0DD754 7F0A8C24 27A50070 */ addiu $a1, $sp, 0x70 +/* 0DD758 7F0A8C28 0FC2A0DE */ jal sub_GAME_7F0A8378 +/* 0DD75C 7F0A8C2C 00000000 */ nop +/* 0DD760 7F0A8C30 3C0F8004 */ lui $t7, %hi(D_800409C4) +/* 0DD764 7F0A8C34 8DEF09C4 */ lw $t7, %lo(D_800409C4)($t7) +/* 0DD768 7F0A8C38 02002025 */ move $a0, $s0 +/* 0DD76C 7F0A8C3C 27A50070 */ addiu $a1, $sp, 0x70 +/* 0DD770 7F0A8C40 15E00015 */ bnez $t7, .L7F0A8C98 +/* 0DD774 7F0A8C44 27A6006C */ addiu $a2, $sp, 0x6c +/* 0DD778 7F0A8C48 8FB8004C */ lw $t8, 0x4c($sp) +/* 0DD77C 7F0A8C4C 8FB90050 */ lw $t9, 0x50($sp) +/* 0DD780 7F0A8C50 8FA80054 */ lw $t0, 0x54($sp) +/* 0DD784 7F0A8C54 3C09A0FF */ lui $t1, (0xA0FFA0F0 >> 16) # lui $t1, 0xa0ff +/* 0DD788 7F0A8C58 3529A0F0 */ ori $t1, (0xA0FFA0F0 & 0xFFFF) # ori $t1, $t1, 0xa0f0 +/* 0DD78C 7F0A8C5C 240A0064 */ li $t2, 100 +/* 0DD790 7F0A8C60 AFAA0020 */ sw $t2, 0x20($sp) +/* 0DD794 7F0A8C64 AFA90018 */ sw $t1, 0x18($sp) +/* 0DD798 7F0A8C68 02002025 */ move $a0, $s0 +/* 0DD79C 7F0A8C6C 27A50070 */ addiu $a1, $sp, 0x70 +/* 0DD7A0 7F0A8C70 27A6006C */ addiu $a2, $sp, 0x6c +/* 0DD7A4 7F0A8C74 8FA70048 */ lw $a3, 0x48($sp) +/* 0DD7A8 7F0A8C78 AFA00024 */ sw $zero, 0x24($sp) +/* 0DD7AC 7F0A8C7C AFA00028 */ sw $zero, 0x28($sp) +/* 0DD7B0 7F0A8C80 AFB80010 */ sw $t8, 0x10($sp) +/* 0DD7B4 7F0A8C84 AFB90014 */ sw $t9, 0x14($sp) +/* 0DD7B8 7F0A8C88 0FC2B6AF */ jal en_text_write_stuff +/* 0DD7BC 7F0A8C8C AFA8001C */ sw $t0, 0x1c($sp) +/* 0DD7C0 7F0A8C90 10000026 */ b .L7F0A8D2C +/* 0DD7C4 7F0A8C94 00408025 */ move $s0, $v0 +.L7F0A8C98: +/* 0DD7C8 7F0A8C98 8FAF0054 */ lw $t7, 0x54($sp) +/* 0DD7CC 7F0A8C9C 8FAB004C */ lw $t3, 0x4c($sp) +/* 0DD7D0 7F0A8CA0 8FAC0050 */ lw $t4, 0x50($sp) +/* 0DD7D4 7F0A8CA4 3C0E0070 */ lui $t6, (0x007000A0 >> 16) # lui $t6, 0x70 +/* 0DD7D8 7F0A8CA8 35CE00A0 */ ori $t6, (0x007000A0 & 0xFFFF) # ori $t6, $t6, 0xa0 +/* 0DD7DC 7F0A8CAC 240DFFFF */ li $t5, -1 +/* 0DD7E0 7F0A8CB0 24190064 */ li $t9, 100 +/* 0DD7E4 7F0A8CB4 25F80001 */ addiu $t8, $t7, 1 +/* 0DD7E8 7F0A8CB8 AFB80020 */ sw $t8, 0x20($sp) +/* 0DD7EC 7F0A8CBC AFB90024 */ sw $t9, 0x24($sp) +/* 0DD7F0 7F0A8CC0 AFAD0018 */ sw $t5, 0x18($sp) +/* 0DD7F4 7F0A8CC4 AFAE001C */ sw $t6, 0x1c($sp) +/* 0DD7F8 7F0A8CC8 8FA70048 */ lw $a3, 0x48($sp) +/* 0DD7FC 7F0A8CCC AFA00028 */ sw $zero, 0x28($sp) +/* 0DD800 7F0A8CD0 AFA0002C */ sw $zero, 0x2c($sp) +/* 0DD804 7F0A8CD4 AFAB0010 */ sw $t3, 0x10($sp) +/* 0DD808 7F0A8CD8 0FC2B9BB */ jal jp_text_write_stuff +/* 0DD80C 7F0A8CDC AFAC0014 */ sw $t4, 0x14($sp) +/* 0DD810 7F0A8CE0 10000012 */ b .L7F0A8D2C +/* 0DD814 7F0A8CE4 00408025 */ move $s0, $v0 +.L7F0A8CE8: +/* 0DD818 7F0A8CE8 8FA9004C */ lw $t1, 0x4c($sp) +/* 0DD81C 7F0A8CEC 8FA80050 */ lw $t0, 0x50($sp) +/* 0DD820 7F0A8CF0 8FAB0054 */ lw $t3, 0x54($sp) +/* 0DD824 7F0A8CF4 3C0A00AA */ lui $t2, (0x00AA00B0 >> 16) # lui $t2, 0xaa +/* 0DD828 7F0A8CF8 354A00B0 */ ori $t2, (0x00AA00B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +/* 0DD82C 7F0A8CFC 240C0064 */ li $t4, 100 +/* 0DD830 7F0A8D00 AFAC0020 */ sw $t4, 0x20($sp) +/* 0DD834 7F0A8D04 AFAA0018 */ sw $t2, 0x18($sp) +/* 0DD838 7F0A8D08 27A6006C */ addiu $a2, $sp, 0x6c +/* 0DD83C 7F0A8D0C 8FA70048 */ lw $a3, 0x48($sp) +/* 0DD840 7F0A8D10 AFA00024 */ sw $zero, 0x24($sp) +/* 0DD844 7F0A8D14 AFA00028 */ sw $zero, 0x28($sp) +/* 0DD848 7F0A8D18 AFA90010 */ sw $t1, 0x10($sp) +/* 0DD84C 7F0A8D1C AFA80014 */ sw $t0, 0x14($sp) +/* 0DD850 7F0A8D20 0FC2B6AF */ jal en_text_write_stuff +/* 0DD854 7F0A8D24 AFAB001C */ sw $t3, 0x1c($sp) +/* 0DD858 7F0A8D28 00408025 */ move $s0, $v0 +.L7F0A8D2C: +/* 0DD85C 7F0A8D2C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DD860 7F0A8D30 02001025 */ move $v0, $s0 +/* 0DD864 7F0A8D34 8FB00038 */ lw $s0, 0x38($sp) +/* 0DD868 7F0A8D38 03E00008 */ jr $ra +/* 0DD86C 7F0A8D3C 27BD0078 */ addiu $sp, $sp, 0x78 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A8D40(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058534 +.word 0x3f99999a /*1.2*/ +.text +glabel sub_GAME_7F0A8D40 +/* 0DD870 7F0A8D40 44862000 */ mtc1 $a2, $f4 +/* 0DD874 7F0A8D44 3C018006 */ lui $at, %hi(D_80058534) +/* 0DD878 7F0A8D48 44856000 */ mtc1 $a1, $f12 +/* 0DD87C 7F0A8D4C C4288534 */ lwc1 $f8, %lo(D_80058534)($at) +/* 0DD880 7F0A8D50 468021A0 */ cvt.s.w $f6, $f4 +/* 0DD884 7F0A8D54 848E0020 */ lh $t6, 0x20($a0) +/* 0DD888 7F0A8D58 848F0040 */ lh $t7, 0x40($a0) +/* 0DD88C 7F0A8D5C 00002825 */ move $a1, $zero +/* 0DD890 7F0A8D60 00803825 */ move $a3, $a0 +/* 0DD894 7F0A8D64 460C4281 */ sub.s $f10, $f8, $f12 +/* 0DD898 7F0A8D68 240900E0 */ li $t1, 224 +/* 0DD89C 7F0A8D6C 24080040 */ li $t0, 64 +/* 0DD8A0 7F0A8D70 24030020 */ li $v1, 32 +/* 0DD8A4 7F0A8D74 460A3402 */ mul.s $f16, $f6, $f10 +/* 0DD8A8 7F0A8D78 01CF1023 */ subu $v0, $t6, $t7 +/* 0DD8AC 7F0A8D7C 4600848D */ trunc.w.s $f18, $f16 +/* 0DD8B0 7F0A8D80 44069000 */ mfc1 $a2, $f18 +/* 0DD8B4 7F0A8D84 00000000 */ nop +.L7F0A8D88: +/* 0DD8B8 7F0A8D88 24A50001 */ addiu $a1, $a1, 1 +/* 0DD8BC 7F0A8D8C 28A10004 */ slti $at, $a1, 4 +/* 0DD8C0 7F0A8D90 24E70010 */ addiu $a3, $a3, 0x10 +/* 0DD8C4 7F0A8D94 A0E3FFFC */ sb $v1, -4($a3) +/* 0DD8C8 7F0A8D98 A0E8FFFD */ sb $t0, -3($a3) +/* 0DD8CC 7F0A8D9C A0E3FFFE */ sb $v1, -2($a3) +/* 0DD8D0 7F0A8DA0 1420FFF9 */ bnez $at, .L7F0A8D88 +/* 0DD8D4 7F0A8DA4 A0E9FFFF */ sb $t1, -1($a3) +/* 0DD8D8 7F0A8DA8 3C0142C0 */ li $at, 0x42C00000 # 96.000000 +/* 0DD8DC 7F0A8DAC 44817000 */ mtc1 $at, $f14 +/* 0DD8E0 7F0A8DB0 3C014240 */ li $at, 0x42400000 # 48.000000 +/* 0DD8E4 7F0A8DB4 44811000 */ mtc1 $at, $f2 +/* 0DD8E8 7F0A8DB8 24050004 */ li $a1, 4 +/* 0DD8EC 7F0A8DBC 24870040 */ addiu $a3, $a0, 0x40 +/* 0DD8F0 7F0A8DC0 2408000C */ li $t0, 12 +.L7F0A8DC4: +/* 0DD8F4 7F0A8DC4 28A1000A */ slti $at, $a1, 0xa +/* 0DD8F8 7F0A8DC8 10200024 */ beqz $at, .L7F0A8E5C +/* 0DD8FC 7F0A8DCC 00465021 */ addu $t2, $v0, $a2 +/* 0DD900 7F0A8DD0 460C1102 */ mul.s $f4, $f2, $f12 +/* 0DD904 7F0A8DD4 28A10006 */ slti $at, $a1, 6 +/* 0DD908 7F0A8DD8 460C7182 */ mul.s $f6, $f14, $f12 +/* 0DD90C 7F0A8DDC 4600220D */ trunc.w.s $f8, $f4 +/* 0DD910 7F0A8DE0 4600328D */ trunc.w.s $f10, $f6 +/* 0DD914 7F0A8DE4 44034000 */ mfc1 $v1, $f8 +/* 0DD918 7F0A8DE8 440B5000 */ mfc1 $t3, $f10 +/* 0DD91C 7F0A8DEC 24630040 */ addiu $v1, $v1, 0x40 +/* 0DD920 7F0A8DF0 A0E3000C */ sb $v1, 0xc($a3) +/* 0DD924 7F0A8DF4 256C0080 */ addiu $t4, $t3, 0x80 +/* 0DD928 7F0A8DF8 A0EC000D */ sb $t4, 0xd($a3) +/* 0DD92C 7F0A8DFC 1420002D */ bnez $at, .L7F0A8EB4 +/* 0DD930 7F0A8E00 A0E3000E */ sb $v1, 0xe($a3) +/* 0DD934 7F0A8E04 44868000 */ mtc1 $a2, $f16 +/* 0DD938 7F0A8E08 44824000 */ mtc1 $v0, $f8 +/* 0DD93C 7F0A8E0C 848D0040 */ lh $t5, 0x40($a0) +/* 0DD940 7F0A8E10 46808020 */ cvt.s.w $f0, $f16 +/* 0DD944 7F0A8E14 448D9000 */ mtc1 $t5, $f18 +/* 0DD948 7F0A8E18 468041A0 */ cvt.s.w $f6, $f8 +/* 0DD94C 7F0A8E1C 46809120 */ cvt.s.w $f4, $f18 +/* 0DD950 7F0A8E20 46003280 */ add.s $f10, $f6, $f0 +/* 0DD954 7F0A8E24 460C5402 */ mul.s $f16, $f10, $f12 +/* 0DD958 7F0A8E28 46102480 */ add.s $f18, $f4, $f16 +/* 0DD95C 7F0A8E2C 46009201 */ sub.s $f8, $f18, $f0 +/* 0DD960 7F0A8E30 4600418D */ trunc.w.s $f6, $f8 +/* 0DD964 7F0A8E34 440F3000 */ mfc1 $t7, $f6 +/* 0DD968 7F0A8E38 00000000 */ nop +/* 0DD96C 7F0A8E3C A4EF0000 */ sh $t7, ($a3) +/* 0DD970 7F0A8E40 84F80000 */ lh $t8, ($a3) +/* 0DD974 7F0A8E44 84830040 */ lh $v1, 0x40($a0) +/* 0DD978 7F0A8E48 0303082A */ slt $at, $t8, $v1 +/* 0DD97C 7F0A8E4C 5020001A */ beql $at, $zero, .L7F0A8EB8 +/* 0DD980 7F0A8E50 24A50001 */ addiu $a1, $a1, 1 +/* 0DD984 7F0A8E54 10000017 */ b .L7F0A8EB4 +/* 0DD988 7F0A8E58 A4E30000 */ sh $v1, ($a3) +.L7F0A8E5C: +/* 0DD98C 7F0A8E5C 448A8000 */ mtc1 $t2, $f16 +/* 0DD990 7F0A8E60 84990040 */ lh $t9, 0x40($a0) +/* 0DD994 7F0A8E64 468084A0 */ cvt.s.w $f18, $f16 +/* 0DD998 7F0A8E68 44995000 */ mtc1 $t9, $f10 +/* 0DD99C 7F0A8E6C 00000000 */ nop +/* 0DD9A0 7F0A8E70 46805120 */ cvt.s.w $f4, $f10 +/* 0DD9A4 7F0A8E74 460C9202 */ mul.s $f8, $f18, $f12 +/* 0DD9A8 7F0A8E78 44865000 */ mtc1 $a2, $f10 +/* 0DD9AC 7F0A8E7C 00000000 */ nop +/* 0DD9B0 7F0A8E80 46805420 */ cvt.s.w $f16, $f10 +/* 0DD9B4 7F0A8E84 46082180 */ add.s $f6, $f4, $f8 +/* 0DD9B8 7F0A8E88 46103480 */ add.s $f18, $f6, $f16 +/* 0DD9BC 7F0A8E8C 4600910D */ trunc.w.s $f4, $f18 +/* 0DD9C0 7F0A8E90 440C2000 */ mfc1 $t4, $f4 +/* 0DD9C4 7F0A8E94 00000000 */ nop +/* 0DD9C8 7F0A8E98 A4EC0000 */ sh $t4, ($a3) +/* 0DD9CC 7F0A8E9C 84ED0000 */ lh $t5, ($a3) +/* 0DD9D0 7F0A8EA0 84830020 */ lh $v1, 0x20($a0) +/* 0DD9D4 7F0A8EA4 006D082A */ slt $at, $v1, $t5 +/* 0DD9D8 7F0A8EA8 50200003 */ beql $at, $zero, .L7F0A8EB8 +/* 0DD9DC 7F0A8EAC 24A50001 */ addiu $a1, $a1, 1 +/* 0DD9E0 7F0A8EB0 A4E30000 */ sh $v1, ($a3) +.L7F0A8EB4: +/* 0DD9E4 7F0A8EB4 24A50001 */ addiu $a1, $a1, 1 +.L7F0A8EB8: +/* 0DD9E8 7F0A8EB8 14A8FFC2 */ bne $a1, $t0, .L7F0A8DC4 +/* 0DD9EC 7F0A8EBC 24E70010 */ addiu $a3, $a3, 0x10 +/* 0DD9F0 7F0A8EC0 848200A0 */ lh $v0, 0xa0($a0) +/* 0DD9F4 7F0A8EC4 A4820010 */ sh $v0, 0x10($a0) +/* 0DD9F8 7F0A8EC8 03E00008 */ jr $ra +/* 0DD9FC 7F0A8ECC A4820000 */ sh $v0, ($a0) +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A8ED0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A8ED0 +/* 0DDA00 7F0A8ED0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0DDA04 7F0A8ED4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DDA08 7F0A8ED8 AFA40020 */ sw $a0, 0x20($sp) +/* 0DDA0C 7F0A8EDC 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DDA10 7F0A8EE0 00002025 */ move $a0, $zero +/* 0DDA14 7F0A8EE4 8FAE0020 */ lw $t6, 0x20($sp) +/* 0DDA18 7F0A8EE8 00002025 */ move $a0, $zero +/* 0DDA1C 7F0A8EEC 24050111 */ li $a1, 273 +/* 0DDA20 7F0A8EF0 95C30000 */ lhu $v1, ($t6) +/* 0DDA24 7F0A8EF4 AFA2001C */ sw $v0, 0x1c($sp) +/* 0DDA28 7F0A8EF8 0C0030C3 */ jal get_controller_buttons_held +/* 0DDA2C 7F0A8EFC AFA30018 */ sw $v1, 0x18($sp) +/* 0DDA30 7F0A8F00 8FA30018 */ lw $v1, 0x18($sp) +/* 0DDA34 7F0A8F04 8FA6001C */ lw $a2, 0x1c($sp) +/* 0DDA38 7F0A8F08 10400003 */ beqz $v0, .L7F0A8F18 +/* 0DDA3C 7F0A8F0C 8FA70020 */ lw $a3, 0x20($sp) +/* 0DDA40 7F0A8F10 1000000B */ b .L7F0A8F40 +/* 0DDA44 7F0A8F14 24630400 */ addiu $v1, $v1, 0x400 +.L7F0A8F18: +/* 0DDA48 7F0A8F18 00002025 */ move $a0, $zero +/* 0DDA4C 7F0A8F1C 24050222 */ li $a1, 546 +/* 0DDA50 7F0A8F20 AFA30018 */ sw $v1, 0x18($sp) +/* 0DDA54 7F0A8F24 0C0030C3 */ jal get_controller_buttons_held +/* 0DDA58 7F0A8F28 AFA6001C */ sw $a2, 0x1c($sp) +/* 0DDA5C 7F0A8F2C 8FA30018 */ lw $v1, 0x18($sp) +/* 0DDA60 7F0A8F30 8FA6001C */ lw $a2, 0x1c($sp) +/* 0DDA64 7F0A8F34 10400002 */ beqz $v0, .L7F0A8F40 +/* 0DDA68 7F0A8F38 8FA70020 */ lw $a3, 0x20($sp) +/* 0DDA6C 7F0A8F3C 2463FC00 */ addiu $v1, $v1, -0x400 +.L7F0A8F40: +/* 0DDA70 7F0A8F40 28C10047 */ slti $at, $a2, 0x47 +/* 0DDA74 7F0A8F44 14200003 */ bnez $at, .L7F0A8F54 +/* 0DDA78 7F0A8F48 240B7FFF */ li $t3, 32767 +/* 0DDA7C 7F0A8F4C 10000005 */ b .L7F0A8F64 +/* 0DDA80 7F0A8F50 24060046 */ li $a2, 70 +.L7F0A8F54: +/* 0DDA84 7F0A8F54 28C1FFBA */ slti $at, $a2, -0x46 +/* 0DDA88 7F0A8F58 50200003 */ beql $at, $zero, .L7F0A8F68 +/* 0DDA8C 7F0A8F5C 28C10008 */ slti $at, $a2, 8 +/* 0DDA90 7F0A8F60 2406FFBA */ li $a2, -70 +.L7F0A8F64: +/* 0DDA94 7F0A8F64 28C10008 */ slti $at, $a2, 8 +.L7F0A8F68: +/* 0DDA98 7F0A8F68 14200008 */ bnez $at, .L7F0A8F8C +/* 0DDA9C 7F0A8F6C 00067AC0 */ sll $t7, $a2, 0xb +/* 0DDAA0 7F0A8F70 25F8C800 */ addiu $t8, $t7, -0x3800 +/* 0DDAA4 7F0A8F74 24010046 */ li $at, 70 +/* 0DDAA8 7F0A8F78 0301001A */ div $zero, $t8, $at +/* 0DDAAC 7F0A8F7C 0000C812 */ mflo $t9 +/* 0DDAB0 7F0A8F80 00791821 */ addu $v1, $v1, $t9 +/* 0DDAB4 7F0A8F84 1000000B */ b .L7F0A8FB4 +/* 0DDAB8 7F0A8F88 34018000 */ li $at, 32768 +.L7F0A8F8C: +/* 0DDABC 7F0A8F8C 28C1FFF9 */ slti $at, $a2, -7 +/* 0DDAC0 7F0A8F90 10200007 */ beqz $at, .L7F0A8FB0 +/* 0DDAC4 7F0A8F94 000642C0 */ sll $t0, $a2, 0xb +/* 0DDAC8 7F0A8F98 25093800 */ addiu $t1, $t0, 0x3800 +/* 0DDACC 7F0A8F9C 24010046 */ li $at, 70 +/* 0DDAD0 7F0A8FA0 0121001A */ div $zero, $t1, $at +/* 0DDAD4 7F0A8FA4 00005012 */ mflo $t2 +/* 0DDAD8 7F0A8FA8 006A1821 */ addu $v1, $v1, $t2 +/* 0DDADC 7F0A8FAC 00000000 */ nop +.L7F0A8FB0: +/* 0DDAE0 7F0A8FB0 34018000 */ li $at, 32768 +.L7F0A8FB4: +/* 0DDAE4 7F0A8FB4 0061082A */ slt $at, $v1, $at +/* 0DDAE8 7F0A8FB8 14200003 */ bnez $at, .L7F0A8FC8 +/* 0DDAEC 7F0A8FBC 00000000 */ nop +/* 0DDAF0 7F0A8FC0 10000006 */ b .L7F0A8FDC +/* 0DDAF4 7F0A8FC4 A4EB0000 */ sh $t3, ($a3) +.L7F0A8FC8: +/* 0DDAF8 7F0A8FC8 04630004 */ bgezl $v1, .L7F0A8FDC +/* 0DDAFC 7F0A8FCC A4E30000 */ sh $v1, ($a3) +/* 0DDB00 7F0A8FD0 10000002 */ b .L7F0A8FDC +/* 0DDB04 7F0A8FD4 A4E00000 */ sh $zero, ($a3) +/* 0DDB08 7F0A8FD8 A4E30000 */ sh $v1, ($a3) +.L7F0A8FDC: +/* 0DDB0C 7F0A8FDC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DDB10 7F0A8FE0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0DDB14 7F0A8FE4 03E00008 */ jr $ra +/* 0DDB18 7F0A8FE8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A8FEC(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058538 +.word 0x46fffe00 /*32767.0*/ +.text +glabel sub_GAME_7F0A8FEC +/* 0DDB1C 7F0A8FEC 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0DDB20 7F0A8FF0 AFB00028 */ sw $s0, 0x28($sp) +/* 0DDB24 7F0A8FF4 00808025 */ move $s0, $a0 +/* 0DDB28 7F0A8FF8 AFBF002C */ sw $ra, 0x2c($sp) +/* 0DDB2C 7F0A8FFC 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0DDB30 7F0A9000 2404000C */ li $a0, 12 +/* 0DDB34 7F0A9004 0C002472 */ jal sfx_c_700091C8 +/* 0DDB38 7F0A9008 AFA2003C */ sw $v0, 0x3c($sp) +/* 0DDB3C 7F0A900C 3C0E8004 */ lui $t6, %hi(watch_soundrelated_maybe) +/* 0DDB40 7F0A9010 8DCE09A8 */ lw $t6, %lo(watch_soundrelated_maybe)($t6) +/* 0DDB44 7F0A9014 A7A20046 */ sh $v0, 0x46($sp) +/* 0DDB48 7F0A9018 3C0F8004 */ lui $t7, %hi(D_8004099C) +/* 0DDB4C 7F0A901C 51C00008 */ beql $t6, $zero, .L7F0A9040 +/* 0DDB50 7F0A9020 97B80046 */ lhu $t8, 0x46($sp) +/* 0DDB54 7F0A9024 8DEF099C */ lw $t7, %lo(D_8004099C)($t7) +/* 0DDB58 7F0A9028 24010001 */ li $at, 1 +/* 0DDB5C 7F0A902C 55E10004 */ bnel $t7, $at, .L7F0A9040 +/* 0DDB60 7F0A9030 97B80046 */ lhu $t8, 0x46($sp) +/* 0DDB64 7F0A9034 0FC2A3B4 */ jal sub_GAME_7F0A8ED0 +/* 0DDB68 7F0A9038 27A40046 */ addiu $a0, $sp, 0x46 +/* 0DDB6C 7F0A903C 97B80046 */ lhu $t8, 0x46($sp) +.L7F0A9040: +/* 0DDB70 7F0A9040 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0DDB74 7F0A9044 44982000 */ mtc1 $t8, $f4 +/* 0DDB78 7F0A9048 07010004 */ bgez $t8, .L7F0A905C +/* 0DDB7C 7F0A904C 468021A0 */ cvt.s.w $f6, $f4 +/* 0DDB80 7F0A9050 44814000 */ mtc1 $at, $f8 +/* 0DDB84 7F0A9054 00000000 */ nop +/* 0DDB88 7F0A9058 46083180 */ add.s $f6, $f6, $f8 +.L7F0A905C: +/* 0DDB8C 7F0A905C 3C018006 */ lui $at, %hi(D_80058538) +/* 0DDB90 7F0A9060 C42A8538 */ lwc1 $f10, %lo(D_80058538)($at) +/* 0DDB94 7F0A9064 03002025 */ move $a0, $t8 +/* 0DDB98 7F0A9068 460A3403 */ div.s $f16, $f6, $f10 +/* 0DDB9C 7F0A906C 0C00247A */ jal sfx_c_700091E8 +/* 0DDBA0 7F0A9070 E7B00040 */ swc1 $f16, 0x40($sp) +/* 0DDBA4 7F0A9074 02001025 */ move $v0, $s0 +/* 0DDBA8 7F0A9078 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 +/* 0DDBAC 7F0A907C 3C080050 */ lui $t0, (0x00504240 >> 16) # lui $t0, 0x50 +/* 0DDBB0 7F0A9080 35084240 */ ori $t0, (0x00504240 & 0xFFFF) # ori $t0, $t0, 0x4240 +/* 0DDBB4 7F0A9084 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d +/* 0DDBB8 7F0A9088 AC590000 */ sw $t9, ($v0) +/* 0DDBBC 7F0A908C AC480004 */ sw $t0, 4($v0) +/* 0DDBC0 7F0A9090 8FA5003C */ lw $a1, 0x3c($sp) +/* 0DDBC4 7F0A9094 3C018000 */ lui $at, 0x8000 +/* 0DDBC8 7F0A9098 26040008 */ addiu $a0, $s0, 8 +/* 0DDBCC 7F0A909C 0FC28ED0 */ jal sub_GAME_7F0A3B40 +/* 0DDBD0 7F0A90A0 00A12821 */ addu $a1, $a1, $at +/* 0DDBD4 7F0A90A4 24090014 */ li $t1, 20 +/* 0DDBD8 7F0A90A8 240AFED5 */ li $t2, -299 +/* 0DDBDC 7F0A90AC 240BFF33 */ li $t3, -205 +/* 0DDBE0 7F0A90B0 00408025 */ move $s0, $v0 +/* 0DDBE4 7F0A90B4 AFAB0018 */ sw $t3, 0x18($sp) +/* 0DDBE8 7F0A90B8 AFAA0014 */ sw $t2, 0x14($sp) +/* 0DDBEC 7F0A90BC AFA90010 */ sw $t1, 0x10($sp) +/* 0DDBF0 7F0A90C0 8FA4003C */ lw $a0, 0x3c($sp) +/* 0DDBF4 7F0A90C4 00002825 */ move $a1, $zero +/* 0DDBF8 7F0A90C8 00003025 */ move $a2, $zero +/* 0DDBFC 7F0A90CC 0FC28EAE */ jal sub_GAME_7F0A3AB8 +/* 0DDC00 7F0A90D0 24070258 */ li $a3, 600 +/* 0DDC04 7F0A90D4 3C018000 */ lui $at, 0x8000 +/* 0DDC08 7F0A90D8 AFA20038 */ sw $v0, 0x38($sp) +/* 0DDC0C 7F0A90DC 00412821 */ addu $a1, $v0, $at +/* 0DDC10 7F0A90E0 0FC28ED0 */ jal sub_GAME_7F0A3B40 +/* 0DDC14 7F0A90E4 02002025 */ move $a0, $s0 +/* 0DDC18 7F0A90E8 240C0014 */ li $t4, 20 +/* 0DDC1C 7F0A90EC 240DFED5 */ li $t5, -299 +/* 0DDC20 7F0A90F0 240EFF33 */ li $t6, -205 +/* 0DDC24 7F0A90F4 00408025 */ move $s0, $v0 +/* 0DDC28 7F0A90F8 AFAE0018 */ sw $t6, 0x18($sp) +/* 0DDC2C 7F0A90FC AFAD0014 */ sw $t5, 0x14($sp) +/* 0DDC30 7F0A9100 AFAC0010 */ sw $t4, 0x10($sp) +/* 0DDC34 7F0A9104 8FA40038 */ lw $a0, 0x38($sp) +/* 0DDC38 7F0A9108 00002825 */ move $a1, $zero +/* 0DDC3C 7F0A910C 00003025 */ move $a2, $zero +/* 0DDC40 7F0A9110 0FC28EAE */ jal sub_GAME_7F0A3AB8 +/* 0DDC44 7F0A9114 24070258 */ li $a3, 600 +/* 0DDC48 7F0A9118 3C018000 */ lui $at, 0x8000 +/* 0DDC4C 7F0A911C AFA20038 */ sw $v0, 0x38($sp) +/* 0DDC50 7F0A9120 00412821 */ addu $a1, $v0, $at +/* 0DDC54 7F0A9124 0FC28ED0 */ jal sub_GAME_7F0A3B40 +/* 0DDC58 7F0A9128 02002025 */ move $a0, $s0 +/* 0DDC5C 7F0A912C 240F0014 */ li $t7, 20 +/* 0DDC60 7F0A9130 2418FED5 */ li $t8, -299 +/* 0DDC64 7F0A9134 2419FF33 */ li $t9, -205 +/* 0DDC68 7F0A9138 00408025 */ move $s0, $v0 +/* 0DDC6C 7F0A913C AFB90018 */ sw $t9, 0x18($sp) +/* 0DDC70 7F0A9140 AFB80014 */ sw $t8, 0x14($sp) +/* 0DDC74 7F0A9144 AFAF0010 */ sw $t7, 0x10($sp) +/* 0DDC78 7F0A9148 8FA40038 */ lw $a0, 0x38($sp) +/* 0DDC7C 7F0A914C 00002825 */ move $a1, $zero +/* 0DDC80 7F0A9150 00003025 */ move $a2, $zero +/* 0DDC84 7F0A9154 0FC28EAE */ jal sub_GAME_7F0A3AB8 +/* 0DDC88 7F0A9158 24070258 */ li $a3, 600 +/* 0DDC8C 7F0A915C 8FA4003C */ lw $a0, 0x3c($sp) +/* 0DDC90 7F0A9160 8FA50040 */ lw $a1, 0x40($sp) +/* 0DDC94 7F0A9164 0FC2A350 */ jal sub_GAME_7F0A8D40 +/* 0DDC98 7F0A9168 2406001E */ li $a2, 30 +/* 0DDC9C 7F0A916C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0DDCA0 7F0A9170 02001025 */ move $v0, $s0 +/* 0DDCA4 7F0A9174 8FB00028 */ lw $s0, 0x28($sp) +/* 0DDCA8 7F0A9178 03E00008 */ jr $ra +/* 0DDCAC 7F0A917C 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + +void call_sfx_c_700091C8(void) { + sfx_c_700091C8(); +} + + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A91A0(u16 arg0) +{ + sfx_c_700091E8(0xffff & arg0); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A91A0 +/* 0DDCD0 7F0A91A0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DDCD4 7F0A91A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DDCD8 7F0A91A8 AFA40018 */ sw $a0, 0x18($sp) +/* 0DDCDC 7F0A91AC 308EFFFF */ andi $t6, $a0, 0xffff +/* 0DDCE0 7F0A91B0 0C00247A */ jal sfx_c_700091E8 +/* 0DDCE4 7F0A91B4 01C02025 */ move $a0, $t6 +/* 0DDCE8 7F0A91B8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DDCEC 7F0A91BC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DDCF0 7F0A91C0 03E00008 */ jr $ra +/* 0DDCF4 7F0A91C4 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A91C8(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_8005853C +.word 0x46fffe00 /*32767.0*/ +.text +glabel sub_GAME_7F0A91C8 +/* 0DDCF8 7F0A91C8 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0DDCFC 7F0A91CC AFB00028 */ sw $s0, 0x28($sp) +/* 0DDD00 7F0A91D0 00808025 */ move $s0, $a0 +/* 0DDD04 7F0A91D4 AFBF002C */ sw $ra, 0x2c($sp) +/* 0DDD08 7F0A91D8 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0DDD0C 7F0A91DC 2404000C */ li $a0, 12 +/* 0DDD10 7F0A91E0 0FC2A4D6 */ jal sub_GAME_7F0A9358 +/* 0DDD14 7F0A91E4 AFA2003C */ sw $v0, 0x3c($sp) +/* 0DDD18 7F0A91E8 3C0E8004 */ lui $t6, %hi(watch_soundrelated_maybe) +/* 0DDD1C 7F0A91EC 8DCE09A8 */ lw $t6, %lo(watch_soundrelated_maybe)($t6) +/* 0DDD20 7F0A91F0 A7A20046 */ sh $v0, 0x46($sp) +/* 0DDD24 7F0A91F4 3C0F8004 */ lui $t7, %hi(D_8004099C) +/* 0DDD28 7F0A91F8 51C00007 */ beql $t6, $zero, .L7F0A9218 +/* 0DDD2C 7F0A91FC 97B80046 */ lhu $t8, 0x46($sp) +/* 0DDD30 7F0A9200 8DEF099C */ lw $t7, %lo(D_8004099C)($t7) +/* 0DDD34 7F0A9204 55E00004 */ bnezl $t7, .L7F0A9218 +/* 0DDD38 7F0A9208 97B80046 */ lhu $t8, 0x46($sp) +/* 0DDD3C 7F0A920C 0FC2A3B4 */ jal sub_GAME_7F0A8ED0 +/* 0DDD40 7F0A9210 27A40046 */ addiu $a0, $sp, 0x46 +/* 0DDD44 7F0A9214 97B80046 */ lhu $t8, 0x46($sp) +.L7F0A9218: +/* 0DDD48 7F0A9218 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0DDD4C 7F0A921C 44982000 */ mtc1 $t8, $f4 +/* 0DDD50 7F0A9220 07010004 */ bgez $t8, .L7F0A9234 +/* 0DDD54 7F0A9224 468021A0 */ cvt.s.w $f6, $f4 +/* 0DDD58 7F0A9228 44814000 */ mtc1 $at, $f8 +/* 0DDD5C 7F0A922C 00000000 */ nop +/* 0DDD60 7F0A9230 46083180 */ add.s $f6, $f6, $f8 +.L7F0A9234: +/* 0DDD64 7F0A9234 3C018006 */ lui $at, %hi(D_8005853C) +/* 0DDD68 7F0A9238 C42A853C */ lwc1 $f10, %lo(D_8005853C)($at) +/* 0DDD6C 7F0A923C 03002025 */ move $a0, $t8 +/* 0DDD70 7F0A9240 460A3403 */ div.s $f16, $f6, $f10 +/* 0DDD74 7F0A9244 0FC2A4D9 */ jal sub_GAME_7F0A9364 +/* 0DDD78 7F0A9248 E7B00040 */ swc1 $f16, 0x40($sp) +/* 0DDD7C 7F0A924C 02001025 */ move $v0, $s0 +/* 0DDD80 7F0A9250 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 +/* 0DDD84 7F0A9254 3C080050 */ lui $t0, (0x00504240 >> 16) # lui $t0, 0x50 +/* 0DDD88 7F0A9258 35084240 */ ori $t0, (0x00504240 & 0xFFFF) # ori $t0, $t0, 0x4240 +/* 0DDD8C 7F0A925C 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d +/* 0DDD90 7F0A9260 AC590000 */ sw $t9, ($v0) +/* 0DDD94 7F0A9264 AC480004 */ sw $t0, 4($v0) +/* 0DDD98 7F0A9268 8FA5003C */ lw $a1, 0x3c($sp) +/* 0DDD9C 7F0A926C 3C018000 */ lui $at, 0x8000 +/* 0DDDA0 7F0A9270 26040008 */ addiu $a0, $s0, 8 +/* 0DDDA4 7F0A9274 0FC28ED0 */ jal sub_GAME_7F0A3B40 +/* 0DDDA8 7F0A9278 00A12821 */ addu $a1, $a1, $at +/* 0DDDAC 7F0A927C 24090014 */ li $t1, 20 +/* 0DDDB0 7F0A9280 240AFED5 */ li $t2, -299 +/* 0DDDB4 7F0A9284 240BFEED */ li $t3, -275 +/* 0DDDB8 7F0A9288 00408025 */ move $s0, $v0 +/* 0DDDBC 7F0A928C AFAB0018 */ sw $t3, 0x18($sp) +/* 0DDDC0 7F0A9290 AFAA0014 */ sw $t2, 0x14($sp) +/* 0DDDC4 7F0A9294 AFA90010 */ sw $t1, 0x10($sp) +/* 0DDDC8 7F0A9298 8FA4003C */ lw $a0, 0x3c($sp) +/* 0DDDCC 7F0A929C 00002825 */ move $a1, $zero +/* 0DDDD0 7F0A92A0 00003025 */ move $a2, $zero +/* 0DDDD4 7F0A92A4 0FC28EAE */ jal sub_GAME_7F0A3AB8 +/* 0DDDD8 7F0A92A8 24070258 */ li $a3, 600 +/* 0DDDDC 7F0A92AC 3C018000 */ lui $at, 0x8000 +/* 0DDDE0 7F0A92B0 AFA20038 */ sw $v0, 0x38($sp) +/* 0DDDE4 7F0A92B4 00412821 */ addu $a1, $v0, $at +/* 0DDDE8 7F0A92B8 0FC28ED0 */ jal sub_GAME_7F0A3B40 +/* 0DDDEC 7F0A92BC 02002025 */ move $a0, $s0 +/* 0DDDF0 7F0A92C0 240C0014 */ li $t4, 20 +/* 0DDDF4 7F0A92C4 240DFED5 */ li $t5, -299 +/* 0DDDF8 7F0A92C8 240EFEED */ li $t6, -275 +/* 0DDDFC 7F0A92CC 00408025 */ move $s0, $v0 +/* 0DDE00 7F0A92D0 AFAE0018 */ sw $t6, 0x18($sp) +/* 0DDE04 7F0A92D4 AFAD0014 */ sw $t5, 0x14($sp) +/* 0DDE08 7F0A92D8 AFAC0010 */ sw $t4, 0x10($sp) +/* 0DDE0C 7F0A92DC 8FA40038 */ lw $a0, 0x38($sp) +/* 0DDE10 7F0A92E0 00002825 */ move $a1, $zero +/* 0DDE14 7F0A92E4 00003025 */ move $a2, $zero +/* 0DDE18 7F0A92E8 0FC28EAE */ jal sub_GAME_7F0A3AB8 +/* 0DDE1C 7F0A92EC 24070258 */ li $a3, 600 +/* 0DDE20 7F0A92F0 3C018000 */ lui $at, 0x8000 +/* 0DDE24 7F0A92F4 AFA20038 */ sw $v0, 0x38($sp) +/* 0DDE28 7F0A92F8 00412821 */ addu $a1, $v0, $at +/* 0DDE2C 7F0A92FC 0FC28ED0 */ jal sub_GAME_7F0A3B40 +/* 0DDE30 7F0A9300 02002025 */ move $a0, $s0 +/* 0DDE34 7F0A9304 240F0014 */ li $t7, 20 +/* 0DDE38 7F0A9308 2418FED5 */ li $t8, -299 +/* 0DDE3C 7F0A930C 2419FEED */ li $t9, -275 +/* 0DDE40 7F0A9310 00408025 */ move $s0, $v0 +/* 0DDE44 7F0A9314 AFB90018 */ sw $t9, 0x18($sp) +/* 0DDE48 7F0A9318 AFB80014 */ sw $t8, 0x14($sp) +/* 0DDE4C 7F0A931C AFAF0010 */ sw $t7, 0x10($sp) +/* 0DDE50 7F0A9320 8FA40038 */ lw $a0, 0x38($sp) +/* 0DDE54 7F0A9324 00002825 */ move $a1, $zero +/* 0DDE58 7F0A9328 00003025 */ move $a2, $zero +/* 0DDE5C 7F0A932C 0FC28EAE */ jal sub_GAME_7F0A3AB8 +/* 0DDE60 7F0A9330 24070258 */ li $a3, 600 +/* 0DDE64 7F0A9334 8FA4003C */ lw $a0, 0x3c($sp) +/* 0DDE68 7F0A9338 8FA50040 */ lw $a1, 0x40($sp) +/* 0DDE6C 7F0A933C 0FC2A350 */ jal sub_GAME_7F0A8D40 +/* 0DDE70 7F0A9340 2406001E */ li $a2, 30 +/* 0DDE74 7F0A9344 8FBF002C */ lw $ra, 0x2c($sp) +/* 0DDE78 7F0A9348 02001025 */ move $v0, $s0 +/* 0DDE7C 7F0A934C 8FB00028 */ lw $s0, 0x28($sp) +/* 0DDE80 7F0A9350 03E00008 */ jr $ra +/* 0DDE84 7F0A9354 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + +u16 sub_GAME_7F0A9358(void) +{ + return mTrack2Vol; +} + + + +#ifdef NONMATCHING +void sub_GAME_7F0A9364(s16 param_1) + +{ + mTrack2Vol = param_1; + musicTrack2Vol(param_1); + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A9364 +/* 0DDE94 7F0A9364 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DDE98 7F0A9368 3C028004 */ lui $v0, %hi(mTrack2Vol) +/* 0DDE9C 7F0A936C 24420B58 */ addiu $v0, %lo(mTrack2Vol) # addiu $v0, $v0, 0xb58 +/* 0DDEA0 7F0A9370 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DDEA4 7F0A9374 AFA40018 */ sw $a0, 0x18($sp) +/* 0DDEA8 7F0A9378 00802825 */ move $a1, $a0 +/* 0DDEAC 7F0A937C A4450000 */ sh $a1, ($v0) +/* 0DDEB0 7F0A9380 0C001CF1 */ jal musicTrack2Vol +/* 0DDEB4 7F0A9384 30A4FFFF */ andi $a0, $a1, 0xffff +/* 0DDEB8 7F0A9388 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DDEBC 7F0A938C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DDEC0 7F0A9390 03E00008 */ jr $ra +/* 0DDEC4 7F0A9394 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A9398(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A9398 +/* 0DDEC8 7F0A9398 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0DDECC 7F0A939C AFA70074 */ sw $a3, 0x74($sp) +/* 0DDED0 7F0A93A0 3C028004 */ lui $v0, %hi(ptrFirstFontTableSmall) +/* 0DDED4 7F0A93A4 8C420EAC */ lw $v0, %lo(ptrFirstFontTableSmall)($v0) +/* 0DDED8 7F0A93A8 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0DDEDC 7F0A93AC 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0DDEE0 7F0A93B0 AFB00038 */ sw $s0, 0x38($sp) +/* 0DDEE4 7F0A93B4 00808025 */ move $s0, $a0 +/* 0DDEE8 7F0A93B8 AFBF003C */ sw $ra, 0x3c($sp) +/* 0DDEEC 7F0A93BC AFA5006C */ sw $a1, 0x6c($sp) +/* 0DDEF0 7F0A93C0 AFA60070 */ sw $a2, 0x70($sp) +/* 0DDEF4 7F0A93C4 240E000A */ li $t6, 10 +/* 0DDEF8 7F0A93C8 AFAE0014 */ sw $t6, 0x14($sp) +/* 0DDEFC 7F0A93CC 8FA60074 */ lw $a2, 0x74($sp) +/* 0DDF00 7F0A93D0 27A50058 */ addiu $a1, $sp, 0x58 +/* 0DDF04 7F0A93D4 27A40054 */ addiu $a0, $sp, 0x54 +/* 0DDF08 7F0A93D8 AFA20010 */ sw $v0, 0x10($sp) +/* 0DDF0C 7F0A93DC AFA20050 */ sw $v0, 0x50($sp) +/* 0DDF10 7F0A93E0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DDF14 7F0A93E4 AFA7004C */ sw $a3, 0x4c($sp) +/* 0DDF18 7F0A93E8 8FAF0084 */ lw $t7, 0x84($sp) +/* 0DDF1C 7F0A93EC 8FA2006C */ lw $v0, 0x6c($sp) +/* 0DDF20 7F0A93F0 8FAC0058 */ lw $t4, 0x58($sp) +/* 0DDF24 7F0A93F4 11E00008 */ beqz $t7, .L7F0A9418 +/* 0DDF28 7F0A93F8 8FAD0070 */ lw $t5, 0x70($sp) +/* 0DDF2C 7F0A93FC 8FB80058 */ lw $t8, 0x58($sp) +/* 0DDF30 7F0A9400 07010003 */ bgez $t8, .L7F0A9410 +/* 0DDF34 7F0A9404 0018C843 */ sra $t9, $t8, 1 +/* 0DDF38 7F0A9408 27010001 */ addiu $at, $t8, 1 +/* 0DDF3C 7F0A940C 0001C843 */ sra $t9, $at, 1 +.L7F0A9410: +/* 0DDF40 7F0A9410 10000008 */ b .L7F0A9434 +/* 0DDF44 7F0A9414 00594823 */ subu $t1, $v0, $t9 +.L7F0A9418: +/* 0DDF48 7F0A9418 8FAA0090 */ lw $t2, 0x90($sp) +/* 0DDF4C 7F0A941C 8FAB0058 */ lw $t3, 0x58($sp) +/* 0DDF50 7F0A9420 00404825 */ move $t1, $v0 +/* 0DDF54 7F0A9424 11400003 */ beqz $t2, .L7F0A9434 +/* 0DDF58 7F0A9428 00000000 */ nop +/* 0DDF5C 7F0A942C 10000001 */ b .L7F0A9434 +/* 0DDF60 7F0A9430 004B4823 */ subu $t1, $v0, $t3 +.L7F0A9434: +/* 0DDF64 7F0A9434 3C0F8004 */ lui $t7, %hi(D_80040B04) +/* 0DDF68 7F0A9438 8DEF0B04 */ lw $t7, %lo(D_80040B04)($t7) +/* 0DDF6C 7F0A943C 8FAE0054 */ lw $t6, 0x54($sp) +/* 0DDF70 7F0A9440 012C1821 */ addu $v1, $t1, $t4 +/* 0DDF74 7F0A9444 29E100E0 */ slti $at, $t7, 0xe0 +/* 0DDF78 7F0A9448 AFA90064 */ sw $t1, 0x64($sp) +/* 0DDF7C 7F0A944C 1020000A */ beqz $at, .L7F0A9478 +/* 0DDF80 7F0A9450 01AE4021 */ addu $t0, $t5, $t6 +/* 0DDF84 7F0A9454 02001025 */ move $v0, $s0 +/* 0DDF88 7F0A9458 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 +/* 0DDF8C 7F0A945C 3C190050 */ lui $t9, (0x0050004B >> 16) # lui $t9, 0x50 +/* 0DDF90 7F0A9460 3739004B */ ori $t9, (0x0050004B & 0xFFFF) # ori $t9, $t9, 0x4b +/* 0DDF94 7F0A9464 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d +/* 0DDF98 7F0A9468 AC580000 */ sw $t8, ($v0) +/* 0DDF9C 7F0A946C AC590004 */ sw $t9, 4($v0) +/* 0DDFA0 7F0A9470 10000009 */ b .L7F0A9498 +/* 0DDFA4 7F0A9474 26100008 */ addiu $s0, $s0, 8 +.L7F0A9478: +/* 0DDFA8 7F0A9478 02001025 */ move $v0, $s0 +/* 0DDFAC 7F0A947C 3C0AB900 */ lui $t2, (0xB900031D >> 16) # lui $t2, 0xb900 +/* 0DDFB0 7F0A9480 3C0B0050 */ lui $t3, (0x005041C8 >> 16) # lui $t3, 0x50 +/* 0DDFB4 7F0A9484 356B41C8 */ ori $t3, (0x005041C8 & 0xFFFF) # ori $t3, $t3, 0x41c8 +/* 0DDFB8 7F0A9488 354A031D */ ori $t2, (0xB900031D & 0xFFFF) # ori $t2, $t2, 0x31d +/* 0DDFBC 7F0A948C AC4A0000 */ sw $t2, ($v0) +/* 0DDFC0 7F0A9490 AC4B0004 */ sw $t3, 4($v0) +/* 0DDFC4 7F0A9494 26100008 */ addiu $s0, $s0, 8 +.L7F0A9498: +/* 0DDFC8 7F0A9498 8FAC0088 */ lw $t4, 0x88($sp) +/* 0DDFCC 7F0A949C 8FA90064 */ lw $t1, 0x64($sp) +/* 0DDFD0 7F0A94A0 02002025 */ move $a0, $s0 +/* 0DDFD4 7F0A94A4 1180000D */ beqz $t4, .L7F0A94DC +/* 0DDFD8 7F0A94A8 2525FFFF */ addiu $a1, $t1, -1 +/* 0DDFDC 7F0A94AC 8FAD0070 */ lw $t5, 0x70($sp) +/* 0DDFE0 7F0A94B0 8FAE007C */ lw $t6, 0x7c($sp) +/* 0DDFE4 7F0A94B4 8FB8008C */ lw $t8, 0x8c($sp) +/* 0DDFE8 7F0A94B8 250F0001 */ addiu $t7, $t0, 1 +/* 0DDFEC 7F0A94BC 01AE3021 */ addu $a2, $t5, $t6 +/* 0DDFF0 7F0A94C0 24C60001 */ addiu $a2, $a2, 1 +/* 0DDFF4 7F0A94C4 AFAF0010 */ sw $t7, 0x10($sp) +/* 0DDFF8 7F0A94C8 24670001 */ addiu $a3, $v1, 1 +/* 0DDFFC 7F0A94CC AFA90064 */ sw $t1, 0x64($sp) +/* 0DE000 7F0A94D0 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0DE004 7F0A94D4 AFB80014 */ sw $t8, 0x14($sp) +/* 0DE008 7F0A94D8 00408025 */ move $s0, $v0 +.L7F0A94DC: +/* 0DE00C 7F0A94DC 02001025 */ move $v0, $s0 +/* 0DE010 7F0A94E0 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 +/* 0DE014 7F0A94E4 3C0A0050 */ lui $t2, (0x005041C8 >> 16) # lui $t2, 0x50 +/* 0DE018 7F0A94E8 354A41C8 */ ori $t2, (0x005041C8 & 0xFFFF) # ori $t2, $t2, 0x41c8 +/* 0DE01C 7F0A94EC 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d +/* 0DE020 7F0A94F0 AC590000 */ sw $t9, ($v0) +/* 0DE024 7F0A94F4 AC4A0004 */ sw $t2, 4($v0) +/* 0DE028 7F0A94F8 8FAB007C */ lw $t3, 0x7c($sp) +/* 0DE02C 7F0A94FC 26100008 */ addiu $s0, $s0, 8 +/* 0DE030 7F0A9500 02002025 */ move $a0, $s0 +/* 0DE034 7F0A9504 15600012 */ bnez $t3, .L7F0A9550 +/* 0DE038 7F0A9508 27A50064 */ addiu $a1, $sp, 0x64 +/* 0DE03C 7F0A950C 8FAC004C */ lw $t4, 0x4c($sp) +/* 0DE040 7F0A9510 8FAD0050 */ lw $t5, 0x50($sp) +/* 0DE044 7F0A9514 8FAE0078 */ lw $t6, 0x78($sp) +/* 0DE048 7F0A9518 8FAF0058 */ lw $t7, 0x58($sp) +/* 0DE04C 7F0A951C 8FB80054 */ lw $t8, 0x54($sp) +/* 0DE050 7F0A9520 2419000A */ li $t9, 10 +/* 0DE054 7F0A9524 AFB90028 */ sw $t9, 0x28($sp) +/* 0DE058 7F0A9528 27A60070 */ addiu $a2, $sp, 0x70 +/* 0DE05C 7F0A952C 8FA70074 */ lw $a3, 0x74($sp) +/* 0DE060 7F0A9530 AFA00024 */ sw $zero, 0x24($sp) +/* 0DE064 7F0A9534 AFAC0010 */ sw $t4, 0x10($sp) +/* 0DE068 7F0A9538 AFAD0014 */ sw $t5, 0x14($sp) +/* 0DE06C 7F0A953C AFAE0018 */ sw $t6, 0x18($sp) +/* 0DE070 7F0A9540 AFAF001C */ sw $t7, 0x1c($sp) +/* 0DE074 7F0A9544 0FC2B6AF */ jal en_text_write_stuff +/* 0DE078 7F0A9548 AFB80020 */ sw $t8, 0x20($sp) +/* 0DE07C 7F0A954C 00408025 */ move $s0, $v0 +.L7F0A9550: +/* 0DE080 7F0A9550 8FAA007C */ lw $t2, 0x7c($sp) +/* 0DE084 7F0A9554 02002025 */ move $a0, $s0 +/* 0DE088 7F0A9558 27A50064 */ addiu $a1, $sp, 0x64 +/* 0DE08C 7F0A955C 11400014 */ beqz $t2, .L7F0A95B0 +/* 0DE090 7F0A9560 27A60070 */ addiu $a2, $sp, 0x70 +/* 0DE094 7F0A9564 8FAF0058 */ lw $t7, 0x58($sp) +/* 0DE098 7F0A9568 8FAB004C */ lw $t3, 0x4c($sp) +/* 0DE09C 7F0A956C 8FAC0050 */ lw $t4, 0x50($sp) +/* 0DE0A0 7F0A9570 8FAD0078 */ lw $t5, 0x78($sp) +/* 0DE0A4 7F0A9574 8FAE0080 */ lw $t6, 0x80($sp) +/* 0DE0A8 7F0A9578 8FB90054 */ lw $t9, 0x54($sp) +/* 0DE0AC 7F0A957C 240A000A */ li $t2, 10 +/* 0DE0B0 7F0A9580 25F80001 */ addiu $t8, $t7, 1 +/* 0DE0B4 7F0A9584 AFB80020 */ sw $t8, 0x20($sp) +/* 0DE0B8 7F0A9588 AFAA002C */ sw $t2, 0x2c($sp) +/* 0DE0BC 7F0A958C 8FA70074 */ lw $a3, 0x74($sp) +/* 0DE0C0 7F0A9590 AFA00028 */ sw $zero, 0x28($sp) +/* 0DE0C4 7F0A9594 AFAB0010 */ sw $t3, 0x10($sp) +/* 0DE0C8 7F0A9598 AFAC0014 */ sw $t4, 0x14($sp) +/* 0DE0CC 7F0A959C AFAD0018 */ sw $t5, 0x18($sp) +/* 0DE0D0 7F0A95A0 AFAE001C */ sw $t6, 0x1c($sp) +/* 0DE0D4 7F0A95A4 0FC2B9BB */ jal jp_text_write_stuff +/* 0DE0D8 7F0A95A8 AFB90024 */ sw $t9, 0x24($sp) +/* 0DE0DC 7F0A95AC 00408025 */ move $s0, $v0 +.L7F0A95B0: +/* 0DE0E0 7F0A95B0 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DE0E4 7F0A95B4 02001025 */ move $v0, $s0 +/* 0DE0E8 7F0A95B8 8FB00038 */ lw $s0, 0x38($sp) +/* 0DE0EC 7F0A95BC 03E00008 */ jr $ra +/* 0DE0F0 7F0A95C0 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + + + +#ifdef NONMATCHING +f32 sub_GAME_7F0A95C4(f32 param_1,f32 param_2,f32 param_3) +{ + if (param_1 < param_2) { + return param_1 + (param_2 - param_1) / param_3; + } + if (param_2 < param_1) { + return param_1 - (param_1 - param_2) / param_3; + } +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A95C4 +/* 0DE0F4 7F0A95C4 460E603C */ c.lt.s $f12, $f14 +/* 0DE0F8 7F0A95C8 AFA60008 */ sw $a2, 8($sp) +/* 0DE0FC 7F0A95CC 45020007 */ bc1fl .L7F0A95EC +/* 0DE100 7F0A95D0 460C703C */ c.lt.s $f14, $f12 +/* 0DE104 7F0A95D4 460C7101 */ sub.s $f4, $f14, $f12 +/* 0DE108 7F0A95D8 C7A60008 */ lwc1 $f6, 8($sp) +/* 0DE10C 7F0A95DC 46062203 */ div.s $f8, $f4, $f6 +/* 0DE110 7F0A95E0 03E00008 */ jr $ra +/* 0DE114 7F0A95E4 46086000 */ add.s $f0, $f12, $f8 + +/* 0DE118 7F0A95E8 460C703C */ c.lt.s $f14, $f12 +.L7F0A95EC: +/* 0DE11C 7F0A95EC 00000000 */ nop +/* 0DE120 7F0A95F0 45000005 */ bc1f .L7F0A9608 +/* 0DE124 7F0A95F4 00000000 */ nop +/* 0DE128 7F0A95F8 460E6281 */ sub.s $f10, $f12, $f14 +/* 0DE12C 7F0A95FC C7B00008 */ lwc1 $f16, 8($sp) +/* 0DE130 7F0A9600 46105483 */ div.s $f18, $f10, $f16 +/* 0DE134 7F0A9604 46126301 */ sub.s $f12, $f12, $f18 +.L7F0A9608: +/* 0DE138 7F0A9608 03E00008 */ jr $ra +/* 0DE13C 7F0A960C 46006006 */ mov.s $f0, $f12 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A9610(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058540 +.word 0x3dcccccd /*0.1*/ +glabel D_80058544 +.word 0xbdcccccd /*-0.1*/ +.text +glabel sub_GAME_7F0A9610 +/* 0DE140 7F0A9610 3C018006 */ lui $at, %hi(D_80058540) +/* 0DE144 7F0A9614 C4228540 */ lwc1 $f2, %lo(D_80058540)($at) +/* 0DE148 7F0A9618 3C018004 */ lui $at, %hi(D_80040B24) +/* 0DE14C 7F0A961C C4200B24 */ lwc1 $f0, %lo(D_80040B24)($at) +/* 0DE150 7F0A9620 3C018006 */ lui $at, %hi(D_80058544) +/* 0DE154 7F0A9624 00001025 */ move $v0, $zero +/* 0DE158 7F0A9628 4602003C */ c.lt.s $f0, $f2 +/* 0DE15C 7F0A962C 00000000 */ nop +/* 0DE160 7F0A9630 45000012 */ bc1f .L7F0A967C +/* 0DE164 7F0A9634 00000000 */ nop +/* 0DE168 7F0A9638 C42C8544 */ lwc1 $f12, %lo(D_80058544)($at) +/* 0DE16C 7F0A963C 3C018004 */ lui $at, %hi(D_80040B20) +/* 0DE170 7F0A9640 4600603C */ c.lt.s $f12, $f0 +/* 0DE174 7F0A9644 00000000 */ nop +/* 0DE178 7F0A9648 4500000C */ bc1f .L7F0A967C +/* 0DE17C 7F0A964C 00000000 */ nop +/* 0DE180 7F0A9650 C4200B20 */ lwc1 $f0, %lo(D_80040B20)($at) +/* 0DE184 7F0A9654 4602003C */ c.lt.s $f0, $f2 +/* 0DE188 7F0A9658 00000000 */ nop +/* 0DE18C 7F0A965C 45000007 */ bc1f .L7F0A967C +/* 0DE190 7F0A9660 00000000 */ nop +/* 0DE194 7F0A9664 4600603C */ c.lt.s $f12, $f0 +/* 0DE198 7F0A9668 00000000 */ nop +/* 0DE19C 7F0A966C 45000003 */ bc1f .L7F0A967C +/* 0DE1A0 7F0A9670 00000000 */ nop +/* 0DE1A4 7F0A9674 03E00008 */ jr $ra +/* 0DE1A8 7F0A9678 24020001 */ li $v0, 1 + +.L7F0A967C: +/* 0DE1AC 7F0A967C 03E00008 */ jr $ra +/* 0DE1B0 7F0A9680 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A9684(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel D_80058548 +.word 0x3e4ccccd /*0.2*/ +glabel D_8005854C +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F0A9684 +/* 0DE1B4 7F0A9684 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0DE1B8 7F0A9688 AFBF0014 */ sw $ra, 0x14($sp) +/* 0DE1BC 7F0A968C AFA40018 */ sw $a0, 0x18($sp) +/* 0DE1C0 7F0A9690 AFA60020 */ sw $a2, 0x20($sp) +/* 0DE1C4 7F0A9694 AFA70024 */ sw $a3, 0x24($sp) +/* 0DE1C8 7F0A9698 83A4001B */ lb $a0, 0x1b($sp) +/* 0DE1CC 7F0A969C 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DE1D0 7F0A96A0 AFA5001C */ sw $a1, 0x1c($sp) +/* 0DE1D4 7F0A96A4 2841000A */ slti $at, $v0, 0xa +/* 0DE1D8 7F0A96A8 10200007 */ beqz $at, .L7F0A96C8 +/* 0DE1DC 7F0A96AC 8FA5001C */ lw $a1, 0x1c($sp) +/* 0DE1E0 7F0A96B0 83A4001B */ lb $a0, 0x1b($sp) +/* 0DE1E4 7F0A96B4 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DE1E8 7F0A96B8 AFA5001C */ sw $a1, 0x1c($sp) +/* 0DE1EC 7F0A96BC 2841FFF7 */ slti $at, $v0, -9 +/* 0DE1F0 7F0A96C0 1020000B */ beqz $at, .L7F0A96F0 +/* 0DE1F4 7F0A96C4 8FA5001C */ lw $a1, 0x1c($sp) +.L7F0A96C8: +/* 0DE1F8 7F0A96C8 3C0E8004 */ lui $t6, %hi(watch_soundrelated_maybe) +/* 0DE1FC 7F0A96CC 8DCE09A8 */ lw $t6, %lo(watch_soundrelated_maybe)($t6) +/* 0DE200 7F0A96D0 3C0F8004 */ lui $t7, %hi(D_80040998) +/* 0DE204 7F0A96D4 51C00007 */ beql $t6, $zero, .L7F0A96F4 +/* 0DE208 7F0A96D8 8CA20000 */ lw $v0, ($a1) +/* 0DE20C 7F0A96DC 8DEF0998 */ lw $t7, %lo(D_80040998)($t7) +/* 0DE210 7F0A96E0 24010001 */ li $at, 1 +/* 0DE214 7F0A96E4 00001025 */ move $v0, $zero +/* 0DE218 7F0A96E8 51E10009 */ beql $t7, $at, .L7F0A9710 +/* 0DE21C 7F0A96EC ACA00000 */ sw $zero, ($a1) +.L7F0A96F0: +/* 0DE220 7F0A96F0 8CA20000 */ lw $v0, ($a1) +.L7F0A96F4: +/* 0DE224 7F0A96F4 28410064 */ slti $at, $v0, 0x64 +/* 0DE228 7F0A96F8 10200005 */ beqz $at, .L7F0A9710 +/* 0DE22C 7F0A96FC 24580001 */ addiu $t8, $v0, 1 +/* 0DE230 7F0A9700 ACB80000 */ sw $t8, ($a1) +/* 0DE234 7F0A9704 10000002 */ b .L7F0A9710 +/* 0DE238 7F0A9708 03001025 */ move $v0, $t8 +/* 0DE23C 7F0A970C ACA00000 */ sw $zero, ($a1) +.L7F0A9710: +/* 0DE240 7F0A9710 28410064 */ slti $at, $v0, 0x64 +/* 0DE244 7F0A9714 1420000E */ bnez $at, .L7F0A9750 +/* 0DE248 7F0A9718 3C0A8004 */ lui $t2, %hi(watch_soundrelated_maybe) +/* 0DE24C 7F0A971C 8FA80024 */ lw $t0, 0x24($sp) +/* 0DE250 7F0A9720 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0DE254 7F0A9724 44814000 */ mtc1 $at, $f8 +/* 0DE258 7F0A9728 C5040000 */ lwc1 $f4, ($t0) +/* 0DE25C 7F0A972C 8FB90020 */ lw $t9, 0x20($sp) +/* 0DE260 7F0A9730 3C064080 */ lui $a2, 0x4080 +/* 0DE264 7F0A9734 46002187 */ neg.s $f6, $f4 +/* 0DE268 7F0A9738 C72C0000 */ lwc1 $f12, ($t9) +/* 0DE26C 7F0A973C 0FC2A571 */ jal sub_GAME_7F0A95C4 +/* 0DE270 7F0A9740 46083383 */ div.s $f14, $f6, $f8 +/* 0DE274 7F0A9744 8FA90020 */ lw $t1, 0x20($sp) +/* 0DE278 7F0A9748 1000001D */ b .L7F0A97C0 +/* 0DE27C 7F0A974C E5200000 */ swc1 $f0, ($t1) +.L7F0A9750: +/* 0DE280 7F0A9750 8D4A09A8 */ lw $t2, %lo(watch_soundrelated_maybe)($t2) +/* 0DE284 7F0A9754 3C0B8004 */ lui $t3, %hi(D_80040998) +/* 0DE288 7F0A9758 5140001A */ beql $t2, $zero, .L7F0A97C4 +/* 0DE28C 7F0A975C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DE290 7F0A9760 8D6B0998 */ lw $t3, %lo(D_80040998)($t3) +/* 0DE294 7F0A9764 24010001 */ li $at, 1 +/* 0DE298 7F0A9768 55610016 */ bnel $t3, $at, .L7F0A97C4 +/* 0DE29C 7F0A976C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0DE2A0 7F0A9770 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DE2A4 7F0A9774 83A4001B */ lb $a0, 0x1b($sp) +/* 0DE2A8 7F0A9778 44825000 */ mtc1 $v0, $f10 +/* 0DE2AC 7F0A977C 3C018006 */ lui $at, %hi(D_80058548) +/* 0DE2B0 7F0A9780 C4248548 */ lwc1 $f4, %lo(D_80058548)($at) +/* 0DE2B4 7F0A9784 46805420 */ cvt.s.w $f16, $f10 +/* 0DE2B8 7F0A9788 3C018006 */ lui $at, %hi(D_8005854C) +/* 0DE2BC 7F0A978C C428854C */ lwc1 $f8, %lo(D_8005854C)($at) +/* 0DE2C0 7F0A9790 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DE2C4 7F0A9794 8FAC0020 */ lw $t4, 0x20($sp) +/* 0DE2C8 7F0A9798 3C064080 */ lui $a2, 0x4080 +/* 0DE2CC 7F0A979C 46008487 */ neg.s $f18, $f16 +/* 0DE2D0 7F0A97A0 44818000 */ mtc1 $at, $f16 +/* 0DE2D4 7F0A97A4 46049182 */ mul.s $f6, $f18, $f4 +/* 0DE2D8 7F0A97A8 C58C0000 */ lwc1 $f12, ($t4) +/* 0DE2DC 7F0A97AC 46083282 */ mul.s $f10, $f6, $f8 +/* 0DE2E0 7F0A97B0 0FC2A571 */ jal sub_GAME_7F0A95C4 +/* 0DE2E4 7F0A97B4 46105383 */ div.s $f14, $f10, $f16 +/* 0DE2E8 7F0A97B8 8FAD0020 */ lw $t5, 0x20($sp) +/* 0DE2EC 7F0A97BC E5A00000 */ swc1 $f0, ($t5) +.L7F0A97C0: +/* 0DE2F0 7F0A97C0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0A97C4: +/* 0DE2F4 7F0A97C4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0DE2F8 7F0A97C8 03E00008 */ jr $ra +/* 0DE2FC 7F0A97CC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A97D0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A97D0 +/* 0DE300 7F0A97D0 27BDF7B0 */ addiu $sp, $sp, -0x850 +/* 0DE304 7F0A97D4 3C068004 */ lui $a2, %hi(D_800409D8) +/* 0DE308 7F0A97D8 8CC609D8 */ lw $a2, %lo(D_800409D8)($a2) +/* 0DE30C 7F0A97DC 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0DE310 7F0A97E0 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0DE314 7F0A97E4 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0DE318 7F0A97E8 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0DE31C 7F0A97EC AFB00034 */ sw $s0, 0x34($sp) +/* 0DE320 7F0A97F0 AFBF003C */ sw $ra, 0x3c($sp) +/* 0DE324 7F0A97F4 AFB10038 */ sw $s1, 0x38($sp) +/* 0DE328 7F0A97F8 AFA40850 */ sw $a0, 0x850($sp) +/* 0DE32C 7F0A97FC AFA00060 */ sw $zero, 0x60($sp) +/* 0DE330 7F0A9800 AFA0005C */ sw $zero, 0x5c($sp) +/* 0DE334 7F0A9804 A3A00074 */ sb $zero, 0x74($sp) +/* 0DE338 7F0A9808 00008025 */ move $s0, $zero +/* 0DE33C 7F0A980C AFAE0058 */ sw $t6, 0x58($sp) +/* 0DE340 7F0A9810 18C0000F */ blez $a2, .L7F0A9850 +/* 0DE344 7F0A9814 AFAF0054 */ sw $t7, 0x54($sp) +/* 0DE348 7F0A9818 3C118004 */ lui $s1, %hi(D_800409DC) +/* 0DE34C 7F0A981C 263109DC */ addiu $s1, %lo(D_800409DC) # addiu $s1, $s1, 0x9dc +.L7F0A9820: +/* 0DE350 7F0A9820 0FC30776 */ jal get_textptr_for_textID +/* 0DE354 7F0A9824 96240000 */ lhu $a0, ($s1) +/* 0DE358 7F0A9828 27A40074 */ addiu $a0, $sp, 0x74 +/* 0DE35C 7F0A982C 0C0029FF */ jal string_append_from_obseg_textbank +/* 0DE360 7F0A9830 00402825 */ move $a1, $v0 +/* 0DE364 7F0A9834 3C068004 */ lui $a2, %hi(D_800409D8) +/* 0DE368 7F0A9838 8CC609D8 */ lw $a2, %lo(D_800409D8)($a2) +/* 0DE36C 7F0A983C 26100001 */ addiu $s0, $s0, 1 +/* 0DE370 7F0A9840 26310014 */ addiu $s1, $s1, 0x14 +/* 0DE374 7F0A9844 0206082A */ slt $at, $s0, $a2 +/* 0DE378 7F0A9848 1420FFF5 */ bnez $at, .L7F0A9820 +/* 0DE37C 7F0A984C 00000000 */ nop +.L7F0A9850: +/* 0DE380 7F0A9850 3C188004 */ lui $t8, %hi(watch_soundrelated_maybe) +/* 0DE384 7F0A9854 8F1809A8 */ lw $t8, %lo(watch_soundrelated_maybe)($t8) +/* 0DE388 7F0A9858 3C198004 */ lui $t9, %hi(D_80040998) +/* 0DE38C 7F0A985C 13000019 */ beqz $t8, .L7F0A98C4 +/* 0DE390 7F0A9860 00000000 */ nop +/* 0DE394 7F0A9864 8F390998 */ lw $t9, %lo(D_80040998)($t9) +/* 0DE398 7F0A9868 3C118005 */ lui $s1, %hi(j_text_trigger) +/* 0DE39C 7F0A986C 263184D0 */ addiu $s1, %lo(j_text_trigger) # addiu $s1, $s1, -0x7b30 +/* 0DE3A0 7F0A9870 17200014 */ bnez $t9, .L7F0A98C4 +/* 0DE3A4 7F0A9874 3C038008 */ lui $v1, %hi(pPlayer) +/* 0DE3A8 7F0A9878 8E280000 */ lw $t0, ($s1) +/* 0DE3AC 7F0A987C 240B0001 */ li $t3, 1 +/* 0DE3B0 7F0A9880 2402000A */ li $v0, 10 +/* 0DE3B4 7F0A9884 11000003 */ beqz $t0, .L7F0A9894 +/* 0DE3B8 7F0A9888 00000000 */ nop +/* 0DE3BC 7F0A988C 10000001 */ b .L7F0A9894 +/* 0DE3C0 7F0A9890 2402000E */ li $v0, 14 +.L7F0A9894: +/* 0DE3C4 7F0A9894 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0DE3C8 7F0A9898 AFA00018 */ sw $zero, 0x18($sp) +/* 0DE3CC 7F0A989C AFAB001C */ sw $t3, 0x1c($sp) +/* 0DE3D0 7F0A98A0 24692A5C */ addiu $t1, $v1, 0x2a5c +/* 0DE3D4 7F0A98A4 246A2A68 */ addiu $t2, $v1, 0x2a68 +/* 0DE3D8 7F0A98A8 AFAA0014 */ sw $t2, 0x14($sp) +/* 0DE3DC 7F0A98AC AFA90010 */ sw $t1, 0x10($sp) +/* 0DE3E0 7F0A98B0 AFA20020 */ sw $v0, 0x20($sp) +/* 0DE3E4 7F0A98B4 24642A60 */ addiu $a0, $v1, 0x2a60 +/* 0DE3E8 7F0A98B8 24652A58 */ addiu $a1, $v1, 0x2a58 +/* 0DE3EC 7F0A98BC 0FC29847 */ jal sub_GAME_7F0A611C +/* 0DE3F0 7F0A98C0 24672A64 */ addiu $a3, $v1, 0x2a64 +.L7F0A98C4: +/* 0DE3F4 7F0A98C4 3C118005 */ lui $s1, %hi(j_text_trigger) +/* 0DE3F8 7F0A98C8 263184D0 */ addiu $s1, %lo(j_text_trigger) # addiu $s1, $s1, -0x7b30 +/* 0DE3FC 7F0A98CC 8E220000 */ lw $v0, ($s1) +/* 0DE400 7F0A98D0 240C00AA */ li $t4, 170 +/* 0DE404 7F0A98D4 240D001A */ li $t5, 26 +/* 0DE408 7F0A98D8 AFAC0070 */ sw $t4, 0x70($sp) +/* 0DE40C 7F0A98DC 10400003 */ beqz $v0, .L7F0A98EC +/* 0DE410 7F0A98E0 AFAD006C */ sw $t5, 0x6c($sp) +/* 0DE414 7F0A98E4 10000002 */ b .L7F0A98F0 +/* 0DE418 7F0A98E8 2402000E */ li $v0, 14 +.L7F0A98EC: +/* 0DE41C 7F0A98EC 2402000A */ li $v0, 10 +.L7F0A98F0: +/* 0DE420 7F0A98F0 8FAE0058 */ lw $t6, 0x58($sp) +/* 0DE424 7F0A98F4 27A40060 */ addiu $a0, $sp, 0x60 +/* 0DE428 7F0A98F8 27A5005C */ addiu $a1, $sp, 0x5c +/* 0DE42C 7F0A98FC 27A60074 */ addiu $a2, $sp, 0x74 +/* 0DE430 7F0A9900 8FA70054 */ lw $a3, 0x54($sp) +/* 0DE434 7F0A9904 AFA20014 */ sw $v0, 0x14($sp) +/* 0DE438 7F0A9908 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DE43C 7F0A990C AFAE0010 */ sw $t6, 0x10($sp) +/* 0DE440 7F0A9910 8E220000 */ lw $v0, ($s1) +/* 0DE444 7F0A9914 8FA40850 */ lw $a0, 0x850($sp) +/* 0DE448 7F0A9918 27A50070 */ addiu $a1, $sp, 0x70 +/* 0DE44C 7F0A991C 10400003 */ beqz $v0, .L7F0A992C +/* 0DE450 7F0A9920 27A6006C */ addiu $a2, $sp, 0x6c +/* 0DE454 7F0A9924 10000002 */ b .L7F0A9930 +/* 0DE458 7F0A9928 2410000E */ li $s0, 14 +.L7F0A992C: +/* 0DE45C 7F0A992C 2410000A */ li $s0, 10 +.L7F0A9930: +/* 0DE460 7F0A9930 10400003 */ beqz $v0, .L7F0A9940 +/* 0DE464 7F0A9934 27A70074 */ addiu $a3, $sp, 0x74 +/* 0DE468 7F0A9938 10000002 */ b .L7F0A9944 +/* 0DE46C 7F0A993C 2402000E */ li $v0, 14 +.L7F0A9940: +/* 0DE470 7F0A9940 2402000A */ li $v0, 10 +.L7F0A9944: +/* 0DE474 7F0A9944 8FAF0054 */ lw $t7, 0x54($sp) +/* 0DE478 7F0A9948 8FB80058 */ lw $t8, 0x58($sp) +/* 0DE47C 7F0A994C 8FA8005C */ lw $t0, 0x5c($sp) +/* 0DE480 7F0A9950 3C098008 */ lui $t1, %hi(pPlayer) +/* 0DE484 7F0A9954 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0DE488 7F0A9958 3C1900AA */ lui $t9, (0x00AA00B0 >> 16) # lui $t9, 0xaa +/* 0DE48C 7F0A995C 373900B0 */ ori $t9, (0x00AA00B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DE490 7F0A9960 AFB90018 */ sw $t9, 0x18($sp) +/* 0DE494 7F0A9964 AFB00020 */ sw $s0, 0x20($sp) +/* 0DE498 7F0A9968 AFAF0010 */ sw $t7, 0x10($sp) +/* 0DE49C 7F0A996C AFB80014 */ sw $t8, 0x14($sp) +/* 0DE4A0 7F0A9970 AFA8001C */ sw $t0, 0x1c($sp) +/* 0DE4A4 7F0A9974 8D2A2A64 */ lw $t2, 0x2a64($t1) +/* 0DE4A8 7F0A9978 AFA20028 */ sw $v0, 0x28($sp) +/* 0DE4AC 7F0A997C 0FC2B6AF */ jal en_text_write_stuff +/* 0DE4B0 7F0A9980 AFAA0024 */ sw $t2, 0x24($sp) +/* 0DE4B4 7F0A9984 3C038008 */ lui $v1, %hi(pPlayer) +/* 0DE4B8 7F0A9988 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0DE4BC 7F0A998C AFA20850 */ sw $v0, 0x850($sp) +/* 0DE4C0 7F0A9990 8C6B2A68 */ lw $t3, 0x2a68($v1) +/* 0DE4C4 7F0A9994 51600043 */ beql $t3, $zero, .L7F0A9AA4 +/* 0DE4C8 7F0A9998 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DE4CC 7F0A999C 8C6C2A58 */ lw $t4, 0x2a58($v1) +/* 0DE4D0 7F0A99A0 3C048004 */ lui $a0, %hi(D_800409DC) +/* 0DE4D4 7F0A99A4 000C6880 */ sll $t5, $t4, 2 +/* 0DE4D8 7F0A99A8 01AC6821 */ addu $t5, $t5, $t4 +/* 0DE4DC 7F0A99AC 000D6880 */ sll $t5, $t5, 2 +/* 0DE4E0 7F0A99B0 008D2021 */ addu $a0, $a0, $t5 +/* 0DE4E4 7F0A99B4 0FC30776 */ jal get_textptr_for_textID +/* 0DE4E8 7F0A99B8 948409DC */ lhu $a0, %lo(D_800409DC)($a0) +/* 0DE4EC 7F0A99BC 8E2E0000 */ lw $t6, ($s1) +/* 0DE4F0 7F0A99C0 00408025 */ move $s0, $v0 +/* 0DE4F4 7F0A99C4 27A40060 */ addiu $a0, $sp, 0x60 +/* 0DE4F8 7F0A99C8 11C00003 */ beqz $t6, .L7F0A99D8 +/* 0DE4FC 7F0A99CC 27A5005C */ addiu $a1, $sp, 0x5c +/* 0DE500 7F0A99D0 10000002 */ b .L7F0A99DC +/* 0DE504 7F0A99D4 2402000E */ li $v0, 14 +.L7F0A99D8: +/* 0DE508 7F0A99D8 2402000A */ li $v0, 10 +.L7F0A99DC: +/* 0DE50C 7F0A99DC 8FAF0058 */ lw $t7, 0x58($sp) +/* 0DE510 7F0A99E0 02003025 */ move $a2, $s0 +/* 0DE514 7F0A99E4 8FA70054 */ lw $a3, 0x54($sp) +/* 0DE518 7F0A99E8 AFA20014 */ sw $v0, 0x14($sp) +/* 0DE51C 7F0A99EC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DE520 7F0A99F0 AFAF0010 */ sw $t7, 0x10($sp) +/* 0DE524 7F0A99F4 8E390000 */ lw $t9, ($s1) +/* 0DE528 7F0A99F8 241800AA */ li $t8, 170 +/* 0DE52C 7F0A99FC AFB80070 */ sw $t8, 0x70($sp) +/* 0DE530 7F0A9A00 13200003 */ beqz $t9, .L7F0A9A10 +/* 0DE534 7F0A9A04 3C098008 */ lui $t1, %hi(pPlayer) +/* 0DE538 7F0A9A08 10000001 */ b .L7F0A9A10 +/* 0DE53C 7F0A9A0C 00000000 */ nop +.L7F0A9A10: +/* 0DE540 7F0A9A10 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0DE544 7F0A9A14 2408001A */ li $t0, 26 +/* 0DE548 7F0A9A18 AFA8006C */ sw $t0, 0x6c($sp) +/* 0DE54C 7F0A9A1C 8D2A2A58 */ lw $t2, 0x2a58($t1) +/* 0DE550 7F0A9A20 3C048004 */ lui $a0, %hi(D_800409DC) +/* 0DE554 7F0A9A24 000A5880 */ sll $t3, $t2, 2 +/* 0DE558 7F0A9A28 016A5821 */ addu $t3, $t3, $t2 +/* 0DE55C 7F0A9A2C 000B5880 */ sll $t3, $t3, 2 +/* 0DE560 7F0A9A30 008B2021 */ addu $a0, $a0, $t3 +/* 0DE564 7F0A9A34 0FC30776 */ jal get_textptr_for_textID +/* 0DE568 7F0A9A38 948409DC */ lhu $a0, %lo(D_800409DC)($a0) +/* 0DE56C 7F0A9A3C 8E2C0000 */ lw $t4, ($s1) +/* 0DE570 7F0A9A40 00408025 */ move $s0, $v0 +/* 0DE574 7F0A9A44 8FA40850 */ lw $a0, 0x850($sp) +/* 0DE578 7F0A9A48 11800003 */ beqz $t4, .L7F0A9A58 +/* 0DE57C 7F0A9A4C 27A50070 */ addiu $a1, $sp, 0x70 +/* 0DE580 7F0A9A50 10000002 */ b .L7F0A9A5C +/* 0DE584 7F0A9A54 2402000E */ li $v0, 14 +.L7F0A9A58: +/* 0DE588 7F0A9A58 2402000A */ li $v0, 10 +.L7F0A9A5C: +/* 0DE58C 7F0A9A5C 8FAD0054 */ lw $t5, 0x54($sp) +/* 0DE590 7F0A9A60 8FAE0058 */ lw $t6, 0x58($sp) +/* 0DE594 7F0A9A64 8FB8005C */ lw $t8, 0x5c($sp) +/* 0DE598 7F0A9A68 3C0FA0FF */ lui $t7, (0xA0FFA0F0 >> 16) # lui $t7, 0xa0ff +/* 0DE59C 7F0A9A6C 35EFA0F0 */ ori $t7, (0xA0FFA0F0 & 0xFFFF) # ori $t7, $t7, 0xa0f0 +/* 0DE5A0 7F0A9A70 24190064 */ li $t9, 100 +/* 0DE5A4 7F0A9A74 AFB90020 */ sw $t9, 0x20($sp) +/* 0DE5A8 7F0A9A78 AFAF0018 */ sw $t7, 0x18($sp) +/* 0DE5AC 7F0A9A7C 27A6006C */ addiu $a2, $sp, 0x6c +/* 0DE5B0 7F0A9A80 02003825 */ move $a3, $s0 +/* 0DE5B4 7F0A9A84 AFA00024 */ sw $zero, 0x24($sp) +/* 0DE5B8 7F0A9A88 AFA20028 */ sw $v0, 0x28($sp) +/* 0DE5BC 7F0A9A8C AFAD0010 */ sw $t5, 0x10($sp) +/* 0DE5C0 7F0A9A90 AFAE0014 */ sw $t6, 0x14($sp) +/* 0DE5C4 7F0A9A94 0FC2B6AF */ jal en_text_write_stuff +/* 0DE5C8 7F0A9A98 AFB8001C */ sw $t8, 0x1c($sp) +/* 0DE5CC 7F0A9A9C AFA20850 */ sw $v0, 0x850($sp) +/* 0DE5D0 7F0A9AA0 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0A9AA4: +/* 0DE5D4 7F0A9AA4 8FA20850 */ lw $v0, 0x850($sp) +/* 0DE5D8 7F0A9AA8 8FB00034 */ lw $s0, 0x34($sp) +/* 0DE5DC 7F0A9AAC 8FB10038 */ lw $s1, 0x38($sp) +/* 0DE5E0 7F0A9AB0 03E00008 */ jr $ra +/* 0DE5E4 7F0A9AB4 27BD0850 */ addiu $sp, $sp, 0x850 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0A9AB8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0A9AB8 +/* 0DE5E8 7F0A9AB8 3C0E8004 */ lui $t6, %hi(cur_player_look_vertical_inverted) +/* 0DE5EC 7F0A9ABC 8DCE0A84 */ lw $t6, %lo(cur_player_look_vertical_inverted)($t6) +/* 0DE5F0 7F0A9AC0 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 0DE5F4 7F0A9AC4 AFB00038 */ sw $s0, 0x38($sp) +/* 0DE5F8 7F0A9AC8 24010001 */ li $at, 1 +/* 0DE5FC 7F0A9ACC 00808025 */ move $s0, $a0 +/* 0DE600 7F0A9AD0 15C10008 */ bne $t6, $at, .L7F0A9AF4 +/* 0DE604 7F0A9AD4 AFBF003C */ sw $ra, 0x3c($sp) +/* 0DE608 7F0A9AD8 0FC30776 */ jal get_textptr_for_textID +/* 0DE60C 7F0A9ADC 3404AC2D */ li $a0, 44077 +/* 0DE610 7F0A9AE0 AFA200AC */ sw $v0, 0xac($sp) +/* 0DE614 7F0A9AE4 0FC30776 */ jal get_textptr_for_textID +/* 0DE618 7F0A9AE8 3404AC2C */ li $a0, 44076 +/* 0DE61C 7F0A9AEC 10000007 */ b .L7F0A9B0C +/* 0DE620 7F0A9AF0 AFA200A8 */ sw $v0, 0xa8($sp) +.L7F0A9AF4: +/* 0DE624 7F0A9AF4 0FC30776 */ jal get_textptr_for_textID +/* 0DE628 7F0A9AF8 3404AC2C */ li $a0, 44076 +/* 0DE62C 7F0A9AFC AFA200AC */ sw $v0, 0xac($sp) +/* 0DE630 7F0A9B00 0FC30776 */ jal get_textptr_for_textID +/* 0DE634 7F0A9B04 3404AC2D */ li $a0, 44077 +/* 0DE638 7F0A9B08 AFA200A8 */ sw $v0, 0xa8($sp) +.L7F0A9B0C: +/* 0DE63C 7F0A9B0C 3C188005 */ lui $t8, %hi(aA) +/* 0DE640 7F0A9B10 27187778 */ addiu $t8, %lo(aA) # addiu $t8, $t8, 0x7778 +/* 0DE644 7F0A9B14 8F010000 */ lw $at, ($t8) +/* 0DE648 7F0A9B18 27AF00A0 */ addiu $t7, $sp, 0xa0 +/* 0DE64C 7F0A9B1C 3C0B8005 */ lui $t3, %hi(aB) +/* 0DE650 7F0A9B20 ADE10000 */ sw $at, ($t7) +/* 0DE654 7F0A9B24 93010004 */ lbu $at, 4($t8) +/* 0DE658 7F0A9B28 256B7780 */ addiu $t3, %lo(aB) # addiu $t3, $t3, 0x7780 +/* 0DE65C 7F0A9B2C 27AA0098 */ addiu $t2, $sp, 0x98 +/* 0DE660 7F0A9B30 A1E10004 */ sb $at, 4($t7) +/* 0DE664 7F0A9B34 8D610000 */ lw $at, ($t3) +/* 0DE668 7F0A9B38 3C198005 */ lui $t9, %hi(aZ) +/* 0DE66C 7F0A9B3C 27397788 */ addiu $t9, %lo(aZ) # addiu $t9, $t9, 0x7788 +/* 0DE670 7F0A9B40 AD410000 */ sw $at, ($t2) +/* 0DE674 7F0A9B44 91610004 */ lbu $at, 4($t3) +/* 0DE678 7F0A9B48 27A80090 */ addiu $t0, $sp, 0x90 +/* 0DE67C 7F0A9B4C 3C0C8005 */ lui $t4, %hi(aL) +/* 0DE680 7F0A9B50 A1410004 */ sb $at, 4($t2) +/* 0DE684 7F0A9B54 8F210000 */ lw $at, ($t9) +/* 0DE688 7F0A9B58 258C7790 */ addiu $t4, %lo(aL) # addiu $t4, $t4, 0x7790 +/* 0DE68C 7F0A9B5C 27AD0088 */ addiu $t5, $sp, 0x88 +/* 0DE690 7F0A9B60 AD010000 */ sw $at, ($t0) +/* 0DE694 7F0A9B64 93210004 */ lbu $at, 4($t9) +/* 0DE698 7F0A9B68 3C0F8005 */ lui $t7, %hi(aR) +/* 0DE69C 7F0A9B6C 25EF7798 */ addiu $t7, %lo(aR) # addiu $t7, $t7, 0x7798 +/* 0DE6A0 7F0A9B70 A1010004 */ sb $at, 4($t0) +/* 0DE6A4 7F0A9B74 8D810000 */ lw $at, ($t4) +/* 0DE6A8 7F0A9B78 27B80080 */ addiu $t8, $sp, 0x80 +/* 0DE6AC 7F0A9B7C 3C0A8005 */ lui $t2, %hi(aC) +/* 0DE6B0 7F0A9B80 ADA10000 */ sw $at, ($t5) +/* 0DE6B4 7F0A9B84 91810004 */ lbu $at, 4($t4) +/* 0DE6B8 7F0A9B88 254A77A0 */ addiu $t2, %lo(aC) # addiu $t2, $t2, 0x77a0 +/* 0DE6BC 7F0A9B8C 27AB0078 */ addiu $t3, $sp, 0x78 +/* 0DE6C0 7F0A9B90 A1A10004 */ sb $at, 4($t5) +/* 0DE6C4 7F0A9B94 8DE10000 */ lw $at, ($t7) +/* 0DE6C8 7F0A9B98 3C088005 */ lui $t0, %hi(D_800577A8) +/* 0DE6CC 7F0A9B9C 250877A8 */ addiu $t0, %lo(D_800577A8) # addiu $t0, $t0, 0x77a8 +/* 0DE6D0 7F0A9BA0 AF010000 */ sw $at, ($t8) +/* 0DE6D4 7F0A9BA4 91E10004 */ lbu $at, 4($t7) +/* 0DE6D8 7F0A9BA8 27B90070 */ addiu $t9, $sp, 0x70 +/* 0DE6DC 7F0A9BAC 3C0D8005 */ lui $t5, %hi(aS_0) +/* 0DE6E0 7F0A9BB0 A3010004 */ sb $at, 4($t8) +/* 0DE6E4 7F0A9BB4 8D410000 */ lw $at, ($t2) +/* 0DE6E8 7F0A9BB8 25AD77B0 */ addiu $t5, %lo(aS_0) # addiu $t5, $t5, 0x77b0 +/* 0DE6EC 7F0A9BBC 27AC0068 */ addiu $t4, $sp, 0x68 +/* 0DE6F0 7F0A9BC0 AD610000 */ sw $at, ($t3) +/* 0DE6F4 7F0A9BC4 91410004 */ lbu $at, 4($t2) +/* 0DE6F8 7F0A9BC8 3C188005 */ lui $t8, %hi(a3d) +/* 0DE6FC 7F0A9BCC 271877B8 */ addiu $t8, %lo(a3d) # addiu $t8, $t8, 0x77b8 +/* 0DE700 7F0A9BD0 A1610004 */ sb $at, 4($t3) +/* 0DE704 7F0A9BD4 8D010000 */ lw $at, ($t0) +/* 0DE708 7F0A9BD8 27AF0060 */ addiu $t7, $sp, 0x60 +/* 0DE70C 7F0A9BDC 02002025 */ move $a0, $s0 +/* 0DE710 7F0A9BE0 AF210000 */ sw $at, ($t9) +/* 0DE714 7F0A9BE4 91010004 */ lbu $at, 4($t0) +/* 0DE718 7F0A9BE8 A3210004 */ sb $at, 4($t9) +/* 0DE71C 7F0A9BEC 8DA10000 */ lw $at, ($t5) +/* 0DE720 7F0A9BF0 AD810000 */ sw $at, ($t4) +/* 0DE724 7F0A9BF4 91A10004 */ lbu $at, 4($t5) +/* 0DE728 7F0A9BF8 A1810004 */ sb $at, 4($t4) +/* 0DE72C 7F0A9BFC 8F010000 */ lw $at, ($t8) +/* 0DE730 7F0A9C00 ADE10000 */ sw $at, ($t7) +/* 0DE734 7F0A9C04 97010004 */ lhu $at, 4($t8) +/* 0DE738 7F0A9C08 A5E10004 */ sh $at, 4($t7) +/* 0DE73C 7F0A9C0C 0FC2B366 */ jal microcode_constructor +/* 0DE740 7F0A9C10 AFA00050 */ sw $zero, 0x50($sp) +/* 0DE744 7F0A9C14 00408025 */ move $s0, $v0 +/* 0DE748 7F0A9C18 00002025 */ move $a0, $zero +/* 0DE74C 7F0A9C1C 0C0030C3 */ jal get_controller_buttons_held +/* 0DE750 7F0A9C20 24050020 */ li $a1, 32 +/* 0DE754 7F0A9C24 1040002C */ beqz $v0, .L7F0A9CD8 +/* 0DE758 7F0A9C28 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0DE75C 7F0A9C2C 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0DE760 7F0A9C30 3C048004 */ lui $a0, %hi(D_800409DC+8) +/* 0DE764 7F0A9C34 8D4B2A58 */ lw $t3, 0x2a58($t2) +/* 0DE768 7F0A9C38 000B6080 */ sll $t4, $t3, 2 +/* 0DE76C 7F0A9C3C 018B6021 */ addu $t4, $t4, $t3 +/* 0DE770 7F0A9C40 000C6080 */ sll $t4, $t4, 2 +/* 0DE774 7F0A9C44 008C2021 */ addu $a0, $a0, $t4 +/* 0DE778 7F0A9C48 0FC30776 */ jal get_textptr_for_textID +/* 0DE77C 7F0A9C4C 948409E4 */ lhu $a0, %lo(D_800409DC+8)($a0) +/* 0DE780 7F0A9C50 3C080070 */ lui $t0, (0x007000A0 >> 16) # lui $t0, 0x70 +/* 0DE784 7F0A9C54 3C190030 */ lui $t9, (0x003000B0 >> 16) # lui $t9, 0x30 +/* 0DE788 7F0A9C58 373900B0 */ ori $t9, (0x003000B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DE78C 7F0A9C5C 350800A0 */ ori $t0, (0x007000A0 & 0xFFFF) # ori $t0, $t0, 0xa0 +/* 0DE790 7F0A9C60 240DFFFF */ li $t5, -1 +/* 0DE794 7F0A9C64 240E0001 */ li $t6, 1 +/* 0DE798 7F0A9C68 AFAE0014 */ sw $t6, 0x14($sp) +/* 0DE79C 7F0A9C6C AFAD0010 */ sw $t5, 0x10($sp) +/* 0DE7A0 7F0A9C70 AFA80018 */ sw $t0, 0x18($sp) +/* 0DE7A4 7F0A9C74 AFB90024 */ sw $t9, 0x24($sp) +/* 0DE7A8 7F0A9C78 02002025 */ move $a0, $s0 +/* 0DE7AC 7F0A9C7C 24050032 */ li $a1, 50 +/* 0DE7B0 7F0A9C80 24060052 */ li $a2, 82 +/* 0DE7B4 7F0A9C84 00403825 */ move $a3, $v0 +/* 0DE7B8 7F0A9C88 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DE7BC 7F0A9C8C AFA00020 */ sw $zero, 0x20($sp) +/* 0DE7C0 7F0A9C90 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DE7C4 7F0A9C94 AFA00028 */ sw $zero, 0x28($sp) +/* 0DE7C8 7F0A9C98 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0DE7CC 7F0A9C9C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0DE7D0 7F0A9CA0 3C0A8004 */ lui $t2, %hi(D_800409DC+9) +/* 0DE7D4 7F0A9CA4 3401AC01 */ li $at, 44033 +/* 0DE7D8 7F0A9CA8 8DF82A58 */ lw $t8, 0x2a58($t7) +/* 0DE7DC 7F0A9CAC 00408025 */ move $s0, $v0 +/* 0DE7E0 7F0A9CB0 240B0001 */ li $t3, 1 +/* 0DE7E4 7F0A9CB4 00184880 */ sll $t1, $t8, 2 +/* 0DE7E8 7F0A9CB8 01384821 */ addu $t1, $t1, $t8 +/* 0DE7EC 7F0A9CBC 00094880 */ sll $t1, $t1, 2 +/* 0DE7F0 7F0A9CC0 01495021 */ addu $t2, $t2, $t1 +/* 0DE7F4 7F0A9CC4 954A09E4 */ lhu $t2, %lo(D_800409DC+8)($t2) +/* 0DE7F8 7F0A9CC8 1541001F */ bne $t2, $at, .L7F0A9D48 +/* 0DE7FC 7F0A9CCC 00000000 */ nop +/* 0DE800 7F0A9CD0 1000001D */ b .L7F0A9D48 +/* 0DE804 7F0A9CD4 AFAB0050 */ sw $t3, 0x50($sp) +.L7F0A9CD8: +/* 0DE808 7F0A9CD8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0DE80C 7F0A9CDC 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0DE810 7F0A9CE0 3C048004 */ lui $a0, %hi(D_800409DC+8) +/* 0DE814 7F0A9CE4 8D8D2A58 */ lw $t5, 0x2a58($t4) +/* 0DE818 7F0A9CE8 000D7080 */ sll $t6, $t5, 2 +/* 0DE81C 7F0A9CEC 01CD7021 */ addu $t6, $t6, $t5 +/* 0DE820 7F0A9CF0 000E7080 */ sll $t6, $t6, 2 +/* 0DE824 7F0A9CF4 008E2021 */ addu $a0, $a0, $t6 +/* 0DE828 7F0A9CF8 0FC30776 */ jal get_textptr_for_textID +/* 0DE82C 7F0A9CFC 948409E4 */ lhu $a0, %lo(D_800409DC+8)($a0) +/* 0DE830 7F0A9D00 3C0800AA */ lui $t0, (0x00AA00B0 >> 16) # lui $t0, 0xaa +/* 0DE834 7F0A9D04 3C0F0030 */ lui $t7, (0x003000B0 >> 16) # lui $t7, 0x30 +/* 0DE838 7F0A9D08 35EF00B0 */ ori $t7, (0x003000B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0DE83C 7F0A9D0C 350800B0 */ ori $t0, (0x00AA00B0 & 0xFFFF) # ori $t0, $t0, 0xb0 +/* 0DE840 7F0A9D10 2419FFFF */ li $t9, -1 +/* 0DE844 7F0A9D14 AFB90018 */ sw $t9, 0x18($sp) +/* 0DE848 7F0A9D18 AFA80010 */ sw $t0, 0x10($sp) +/* 0DE84C 7F0A9D1C AFAF0024 */ sw $t7, 0x24($sp) +/* 0DE850 7F0A9D20 02002025 */ move $a0, $s0 +/* 0DE854 7F0A9D24 24050032 */ li $a1, 50 +/* 0DE858 7F0A9D28 24060052 */ li $a2, 82 +/* 0DE85C 7F0A9D2C 00403825 */ move $a3, $v0 +/* 0DE860 7F0A9D30 AFA00014 */ sw $zero, 0x14($sp) +/* 0DE864 7F0A9D34 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DE868 7F0A9D38 AFA00020 */ sw $zero, 0x20($sp) +/* 0DE86C 7F0A9D3C 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DE870 7F0A9D40 AFA00028 */ sw $zero, 0x28($sp) +/* 0DE874 7F0A9D44 00408025 */ move $s0, $v0 +.L7F0A9D48: +/* 0DE878 7F0A9D48 3C098004 */ lui $t1, %hi(D_80040998) +/* 0DE87C 7F0A9D4C 8D290998 */ lw $t1, %lo(D_80040998)($t1) +/* 0DE880 7F0A9D50 2418006B */ li $t8, 107 +/* 0DE884 7F0A9D54 24010001 */ li $at, 1 +/* 0DE888 7F0A9D58 1521000A */ bne $t1, $at, .L7F0A9D84 +/* 0DE88C 7F0A9D5C AFB8004C */ sw $t8, 0x4c($sp) +/* 0DE890 7F0A9D60 3C0A8004 */ lui $t2, %hi(watch_soundrelated_maybe) +/* 0DE894 7F0A9D64 8D4A09A8 */ lw $t2, %lo(watch_soundrelated_maybe)($t2) +/* 0DE898 7F0A9D68 00002025 */ move $a0, $zero +/* 0DE89C 7F0A9D6C 11400005 */ beqz $t2, .L7F0A9D84 +/* 0DE8A0 7F0A9D70 00000000 */ nop +/* 0DE8A4 7F0A9D74 0C0030C3 */ jal get_controller_buttons_held +/* 0DE8A8 7F0A9D78 24050F00 */ li $a1, 3840 +/* 0DE8AC 7F0A9D7C 1440001E */ bnez $v0, .L7F0A9DF8 +/* 0DE8B0 7F0A9D80 00002025 */ move $a0, $zero +.L7F0A9D84: +/* 0DE8B4 7F0A9D84 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0DE8B8 7F0A9D88 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0DE8BC 7F0A9D8C 3C048004 */ lui $a0, %hi(D_800409DC+14) +/* 0DE8C0 7F0A9D90 8D6C2A58 */ lw $t4, 0x2a58($t3) +/* 0DE8C4 7F0A9D94 000C6880 */ sll $t5, $t4, 2 +/* 0DE8C8 7F0A9D98 01AC6821 */ addu $t5, $t5, $t4 +/* 0DE8CC 7F0A9D9C 000D6880 */ sll $t5, $t5, 2 +/* 0DE8D0 7F0A9DA0 008D2021 */ addu $a0, $a0, $t5 +/* 0DE8D4 7F0A9DA4 0FC30776 */ jal get_textptr_for_textID +/* 0DE8D8 7F0A9DA8 948409EA */ lhu $a0, %lo(D_800409DC+14)($a0) +/* 0DE8DC 7F0A9DAC 3C0E00AA */ lui $t6, (0x00AA00B0 >> 16) # lui $t6, 0xaa +/* 0DE8E0 7F0A9DB0 3C190030 */ lui $t9, (0x003000B0 >> 16) # lui $t9, 0x30 +/* 0DE8E4 7F0A9DB4 373900B0 */ ori $t9, (0x003000B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DE8E8 7F0A9DB8 35CE00B0 */ ori $t6, (0x00AA00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0DE8EC 7F0A9DBC 2408FFFF */ li $t0, -1 +/* 0DE8F0 7F0A9DC0 AFA80018 */ sw $t0, 0x18($sp) +/* 0DE8F4 7F0A9DC4 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DE8F8 7F0A9DC8 AFB90024 */ sw $t9, 0x24($sp) +/* 0DE8FC 7F0A9DCC 02002025 */ move $a0, $s0 +/* 0DE900 7F0A9DD0 24050032 */ li $a1, 50 +/* 0DE904 7F0A9DD4 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DE908 7F0A9DD8 00403825 */ move $a3, $v0 +/* 0DE90C 7F0A9DDC AFA00014 */ sw $zero, 0x14($sp) +/* 0DE910 7F0A9DE0 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DE914 7F0A9DE4 AFA00020 */ sw $zero, 0x20($sp) +/* 0DE918 7F0A9DE8 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DE91C 7F0A9DEC AFA00028 */ sw $zero, 0x28($sp) +/* 0DE920 7F0A9DF0 10000051 */ b .L7F0A9F38 +/* 0DE924 7F0A9DF4 00408025 */ move $s0, $v0 +.L7F0A9DF8: +/* 0DE928 7F0A9DF8 0C0030C3 */ jal get_controller_buttons_held +/* 0DE92C 7F0A9DFC 24050800 */ li $a1, 2048 +/* 0DE930 7F0A9E00 10400014 */ beqz $v0, .L7F0A9E54 +/* 0DE934 7F0A9E04 00002025 */ move $a0, $zero +/* 0DE938 7F0A9E08 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0DE93C 7F0A9E0C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0DE940 7F0A9E10 3C0A8004 */ lui $t2, %hi(D_800409DC+14) +/* 0DE944 7F0A9E14 3401AC05 */ li $at, 44037 +/* 0DE948 7F0A9E18 8DF82A58 */ lw $t8, 0x2a58($t7) +/* 0DE94C 7F0A9E1C 8FA700AC */ lw $a3, 0xac($sp) +/* 0DE950 7F0A9E20 00184880 */ sll $t1, $t8, 2 +/* 0DE954 7F0A9E24 01384821 */ addu $t1, $t1, $t8 +/* 0DE958 7F0A9E28 00094880 */ sll $t1, $t1, 2 +/* 0DE95C 7F0A9E2C 01495021 */ addu $t2, $t2, $t1 +/* 0DE960 7F0A9E30 954A09EA */ lhu $t2, %lo(D_800409DC+14)($t2) +/* 0DE964 7F0A9E34 15410005 */ bne $t2, $at, .L7F0A9E4C +/* 0DE968 7F0A9E38 00000000 */ nop +/* 0DE96C 7F0A9E3C 0FC30776 */ jal get_textptr_for_textID +/* 0DE970 7F0A9E40 3404AC30 */ li $a0, 44080 +/* 0DE974 7F0A9E44 10000001 */ b .L7F0A9E4C +/* 0DE978 7F0A9E48 00403825 */ move $a3, $v0 +.L7F0A9E4C: +/* 0DE97C 7F0A9E4C 10000027 */ b .L7F0A9EEC +/* 0DE980 7F0A9E50 AFA70058 */ sw $a3, 0x58($sp) +.L7F0A9E54: +/* 0DE984 7F0A9E54 0C0030C3 */ jal get_controller_buttons_held +/* 0DE988 7F0A9E58 24050400 */ li $a1, 1024 +/* 0DE98C 7F0A9E5C 10400014 */ beqz $v0, .L7F0A9EB0 +/* 0DE990 7F0A9E60 00002025 */ move $a0, $zero +/* 0DE994 7F0A9E64 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0DE998 7F0A9E68 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0DE99C 7F0A9E6C 3C0E8004 */ lui $t6, %hi(D_800409DC+14) +/* 0DE9A0 7F0A9E70 3401AC05 */ li $at, 44037 +/* 0DE9A4 7F0A9E74 8D6C2A58 */ lw $t4, 0x2a58($t3) +/* 0DE9A8 7F0A9E78 8FA700A8 */ lw $a3, 0xa8($sp) +/* 0DE9AC 7F0A9E7C 000C6880 */ sll $t5, $t4, 2 +/* 0DE9B0 7F0A9E80 01AC6821 */ addu $t5, $t5, $t4 +/* 0DE9B4 7F0A9E84 000D6880 */ sll $t5, $t5, 2 +/* 0DE9B8 7F0A9E88 01CD7021 */ addu $t6, $t6, $t5 +/* 0DE9BC 7F0A9E8C 95CE09EA */ lhu $t6, %lo(D_800409DC+14)($t6) +/* 0DE9C0 7F0A9E90 15C10005 */ bne $t6, $at, .L7F0A9EA8 +/* 0DE9C4 7F0A9E94 00000000 */ nop +/* 0DE9C8 7F0A9E98 0FC30776 */ jal get_textptr_for_textID +/* 0DE9CC 7F0A9E9C 3404AC31 */ li $a0, 44081 +/* 0DE9D0 7F0A9EA0 10000001 */ b .L7F0A9EA8 +/* 0DE9D4 7F0A9EA4 00403825 */ move $a3, $v0 +.L7F0A9EA8: +/* 0DE9D8 7F0A9EA8 10000010 */ b .L7F0A9EEC +/* 0DE9DC 7F0A9EAC AFA70058 */ sw $a3, 0x58($sp) +.L7F0A9EB0: +/* 0DE9E0 7F0A9EB0 0C0030C3 */ jal get_controller_buttons_held +/* 0DE9E4 7F0A9EB4 24050200 */ li $a1, 512 +/* 0DE9E8 7F0A9EB8 10400005 */ beqz $v0, .L7F0A9ED0 +/* 0DE9EC 7F0A9EBC 00002025 */ move $a0, $zero +/* 0DE9F0 7F0A9EC0 0FC30776 */ jal get_textptr_for_textID +/* 0DE9F4 7F0A9EC4 3404AC2F */ li $a0, 44079 +/* 0DE9F8 7F0A9EC8 10000008 */ b .L7F0A9EEC +/* 0DE9FC 7F0A9ECC AFA20058 */ sw $v0, 0x58($sp) +.L7F0A9ED0: +/* 0DEA00 7F0A9ED0 0C0030C3 */ jal get_controller_buttons_held +/* 0DEA04 7F0A9ED4 24050100 */ li $a1, 256 +/* 0DEA08 7F0A9ED8 50400005 */ beql $v0, $zero, .L7F0A9EF0 +/* 0DEA0C 7F0A9EDC 3C0F0070 */ lui $t7, 0x70 +/* 0DEA10 7F0A9EE0 0FC30776 */ jal get_textptr_for_textID +/* 0DEA14 7F0A9EE4 3404AC2E */ li $a0, 44078 +/* 0DEA18 7F0A9EE8 AFA20058 */ sw $v0, 0x58($sp) +.L7F0A9EEC: +/* 0DEA1C 7F0A9EEC 3C0F0070 */ lui $t7, (0x007000A0 >> 16) # lui $t7, 0x70 +.L7F0A9EF0: +/* 0DEA20 7F0A9EF0 3C180030 */ lui $t8, (0x003000B0 >> 16) # lui $t8, 0x30 +/* 0DEA24 7F0A9EF4 371800B0 */ ori $t8, (0x003000B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0DEA28 7F0A9EF8 35EF00A0 */ ori $t7, (0x007000A0 & 0xFFFF) # ori $t7, $t7, 0xa0 +/* 0DEA2C 7F0A9EFC 2408FFFF */ li $t0, -1 +/* 0DEA30 7F0A9F00 24190001 */ li $t9, 1 +/* 0DEA34 7F0A9F04 8FA70058 */ lw $a3, 0x58($sp) +/* 0DEA38 7F0A9F08 AFB90014 */ sw $t9, 0x14($sp) +/* 0DEA3C 7F0A9F0C AFA80010 */ sw $t0, 0x10($sp) +/* 0DEA40 7F0A9F10 AFAF0018 */ sw $t7, 0x18($sp) +/* 0DEA44 7F0A9F14 AFB80024 */ sw $t8, 0x24($sp) +/* 0DEA48 7F0A9F18 02002025 */ move $a0, $s0 +/* 0DEA4C 7F0A9F1C 24050032 */ li $a1, 50 +/* 0DEA50 7F0A9F20 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DEA54 7F0A9F24 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DEA58 7F0A9F28 AFA00020 */ sw $zero, 0x20($sp) +/* 0DEA5C 7F0A9F2C 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DEA60 7F0A9F30 AFA00028 */ sw $zero, 0x28($sp) +/* 0DEA64 7F0A9F34 00408025 */ move $s0, $v0 +.L7F0A9F38: +/* 0DEA68 7F0A9F38 8FA9004C */ lw $t1, 0x4c($sp) +/* 0DEA6C 7F0A9F3C 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0DEA70 7F0A9F40 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0DEA74 7F0A9F44 252A0019 */ addiu $t2, $t1, 0x19 +/* 0DEA78 7F0A9F48 AFAA004C */ sw $t2, 0x4c($sp) +/* 0DEA7C 7F0A9F4C 8D6C2A58 */ lw $t4, 0x2a58($t3) +/* 0DEA80 7F0A9F50 3C048004 */ lui $a0, %hi(D_800409DC+16) +/* 0DEA84 7F0A9F54 000C6880 */ sll $t5, $t4, 2 +/* 0DEA88 7F0A9F58 01AC6821 */ addu $t5, $t5, $t4 +/* 0DEA8C 7F0A9F5C 000D6880 */ sll $t5, $t5, 2 +/* 0DEA90 7F0A9F60 008D2021 */ addu $a0, $a0, $t5 +/* 0DEA94 7F0A9F64 0FC30776 */ jal get_textptr_for_textID +/* 0DEA98 7F0A9F68 948409EC */ lhu $a0, %lo(D_800409DC+16)($a0) +/* 0DEA9C 7F0A9F6C 3C0E00AA */ lui $t6, (0x00AA00B0 >> 16) # lui $t6, 0xaa +/* 0DEAA0 7F0A9F70 3C190030 */ lui $t9, (0x003000B0 >> 16) # lui $t9, 0x30 +/* 0DEAA4 7F0A9F74 373900B0 */ ori $t9, (0x003000B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DEAA8 7F0A9F78 35CE00B0 */ ori $t6, (0x00AA00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0DEAAC 7F0A9F7C 2408FFFF */ li $t0, -1 +/* 0DEAB0 7F0A9F80 AFA80018 */ sw $t0, 0x18($sp) +/* 0DEAB4 7F0A9F84 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DEAB8 7F0A9F88 AFB90024 */ sw $t9, 0x24($sp) +/* 0DEABC 7F0A9F8C 02002025 */ move $a0, $s0 +/* 0DEAC0 7F0A9F90 24050032 */ li $a1, 50 +/* 0DEAC4 7F0A9F94 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DEAC8 7F0A9F98 00403825 */ move $a3, $v0 +/* 0DEACC 7F0A9F9C AFA00014 */ sw $zero, 0x14($sp) +/* 0DEAD0 7F0A9FA0 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DEAD4 7F0A9FA4 AFA00020 */ sw $zero, 0x20($sp) +/* 0DEAD8 7F0A9FA8 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DEADC 7F0A9FAC AFA00028 */ sw $zero, 0x28($sp) +/* 0DEAE0 7F0A9FB0 8FAF004C */ lw $t7, 0x4c($sp) +/* 0DEAE4 7F0A9FB4 00408025 */ move $s0, $v0 +/* 0DEAE8 7F0A9FB8 00002025 */ move $a0, $zero +/* 0DEAEC 7F0A9FBC 25F80019 */ addiu $t8, $t7, 0x19 +/* 0DEAF0 7F0A9FC0 AFB8004C */ sw $t8, 0x4c($sp) +/* 0DEAF4 7F0A9FC4 0C0030C3 */ jal get_controller_buttons_held +/* 0DEAF8 7F0A9FC8 24052000 */ li $a1, 8192 +/* 0DEAFC 7F0A9FCC 1040002D */ beqz $v0, .L7F0AA084 +/* 0DEB00 7F0A9FD0 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0DEB04 7F0A9FD4 3C098008 */ lui $t1, %hi(pPlayer) +/* 0DEB08 7F0A9FD8 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0DEB0C 7F0A9FDC 3C048004 */ lui $a0, %hi(D_800409DC+0x6) +/* 0DEB10 7F0A9FE0 8D2A2A58 */ lw $t2, 0x2a58($t1) +/* 0DEB14 7F0A9FE4 000A5880 */ sll $t3, $t2, 2 +/* 0DEB18 7F0A9FE8 016A5821 */ addu $t3, $t3, $t2 +/* 0DEB1C 7F0A9FEC 000B5880 */ sll $t3, $t3, 2 +/* 0DEB20 7F0A9FF0 008B2021 */ addu $a0, $a0, $t3 +/* 0DEB24 7F0A9FF4 0FC30776 */ jal get_textptr_for_textID +/* 0DEB28 7F0A9FF8 948409E2 */ lhu $a0, %lo(D_800409DC+0x6)($a0) +/* 0DEB2C 7F0A9FFC 3C0E0070 */ lui $t6, (0x007000A0 >> 16) # lui $t6, 0x70 +/* 0DEB30 7F0AA000 3C080030 */ lui $t0, (0x003000B0 >> 16) # lui $t0, 0x30 +/* 0DEB34 7F0AA004 350800B0 */ ori $t0, (0x003000B0 & 0xFFFF) # ori $t0, $t0, 0xb0 +/* 0DEB38 7F0AA008 35CE00A0 */ ori $t6, (0x007000A0 & 0xFFFF) # ori $t6, $t6, 0xa0 +/* 0DEB3C 7F0AA00C 240CFFFF */ li $t4, -1 +/* 0DEB40 7F0AA010 240D0001 */ li $t5, 1 +/* 0DEB44 7F0AA014 AFAD0014 */ sw $t5, 0x14($sp) +/* 0DEB48 7F0AA018 AFAC0010 */ sw $t4, 0x10($sp) +/* 0DEB4C 7F0AA01C AFAE0018 */ sw $t6, 0x18($sp) +/* 0DEB50 7F0AA020 AFA80024 */ sw $t0, 0x24($sp) +/* 0DEB54 7F0AA024 02002025 */ move $a0, $s0 +/* 0DEB58 7F0AA028 24050032 */ li $a1, 50 +/* 0DEB5C 7F0AA02C 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DEB60 7F0AA030 00403825 */ move $a3, $v0 +/* 0DEB64 7F0AA034 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DEB68 7F0AA038 AFA00020 */ sw $zero, 0x20($sp) +/* 0DEB6C 7F0AA03C 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DEB70 7F0AA040 AFA00028 */ sw $zero, 0x28($sp) +/* 0DEB74 7F0AA044 3C198008 */ lui $t9, %hi(pPlayer) +/* 0DEB78 7F0AA048 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0DEB7C 7F0AA04C 3C098004 */ lui $t1, %hi(D_800409DC+6) +/* 0DEB80 7F0AA050 3401AC01 */ li $at, 44033 +/* 0DEB84 7F0AA054 8F2F2A58 */ lw $t7, 0x2a58($t9) +/* 0DEB88 7F0AA058 00408025 */ move $s0, $v0 +/* 0DEB8C 7F0AA05C 240A0001 */ li $t2, 1 +/* 0DEB90 7F0AA060 000FC080 */ sll $t8, $t7, 2 +/* 0DEB94 7F0AA064 030FC021 */ addu $t8, $t8, $t7 +/* 0DEB98 7F0AA068 0018C080 */ sll $t8, $t8, 2 +/* 0DEB9C 7F0AA06C 01384821 */ addu $t1, $t1, $t8 +/* 0DEBA0 7F0AA070 952909E2 */ lhu $t1, %lo(D_800409DC+6)($t1) +/* 0DEBA4 7F0AA074 5521001F */ bnel $t1, $at, .L7F0AA0F4 +/* 0DEBA8 7F0AA078 8FAF004C */ lw $t7, 0x4c($sp) +/* 0DEBAC 7F0AA07C 1000001C */ b .L7F0AA0F0 +/* 0DEBB0 7F0AA080 AFAA0050 */ sw $t2, 0x50($sp) +.L7F0AA084: +/* 0DEBB4 7F0AA084 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0DEBB8 7F0AA088 3C048004 */ lui $a0, %hi(D_800409DC+6) +/* 0DEBBC 7F0AA08C 8D6C2A58 */ lw $t4, 0x2a58($t3) +/* 0DEBC0 7F0AA090 000C6880 */ sll $t5, $t4, 2 +/* 0DEBC4 7F0AA094 01AC6821 */ addu $t5, $t5, $t4 +/* 0DEBC8 7F0AA098 000D6880 */ sll $t5, $t5, 2 +/* 0DEBCC 7F0AA09C 008D2021 */ addu $a0, $a0, $t5 +/* 0DEBD0 7F0AA0A0 0FC30776 */ jal get_textptr_for_textID +/* 0DEBD4 7F0AA0A4 948409E2 */ lhu $a0, %lo(D_800409DC+6)($a0) +/* 0DEBD8 7F0AA0A8 3C0E00AA */ lui $t6, (0x00AA00B0 >> 16) # lui $t6, 0xaa +/* 0DEBDC 7F0AA0AC 3C190030 */ lui $t9, (0x003000B0 >> 16) # lui $t9, 0x30 +/* 0DEBE0 7F0AA0B0 373900B0 */ ori $t9, (0x003000B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DEBE4 7F0AA0B4 35CE00B0 */ ori $t6, (0x00AA00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0DEBE8 7F0AA0B8 2408FFFF */ li $t0, -1 +/* 0DEBEC 7F0AA0BC AFA80018 */ sw $t0, 0x18($sp) +/* 0DEBF0 7F0AA0C0 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DEBF4 7F0AA0C4 AFB90024 */ sw $t9, 0x24($sp) +/* 0DEBF8 7F0AA0C8 02002025 */ move $a0, $s0 +/* 0DEBFC 7F0AA0CC 24050032 */ li $a1, 50 +/* 0DEC00 7F0AA0D0 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DEC04 7F0AA0D4 00403825 */ move $a3, $v0 +/* 0DEC08 7F0AA0D8 AFA00014 */ sw $zero, 0x14($sp) +/* 0DEC0C 7F0AA0DC AFA0001C */ sw $zero, 0x1c($sp) +/* 0DEC10 7F0AA0E0 AFA00020 */ sw $zero, 0x20($sp) +/* 0DEC14 7F0AA0E4 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DEC18 7F0AA0E8 AFA00028 */ sw $zero, 0x28($sp) +/* 0DEC1C 7F0AA0EC 00408025 */ move $s0, $v0 +.L7F0AA0F0: +/* 0DEC20 7F0AA0F0 8FAF004C */ lw $t7, 0x4c($sp) +.L7F0AA0F4: +/* 0DEC24 7F0AA0F4 00002025 */ move $a0, $zero +/* 0DEC28 7F0AA0F8 24050010 */ li $a1, 16 +/* 0DEC2C 7F0AA0FC 25F8FFB5 */ addiu $t8, $t7, -0x4b +/* 0DEC30 7F0AA100 0C0030C3 */ jal get_controller_buttons_held +/* 0DEC34 7F0AA104 AFB8004C */ sw $t8, 0x4c($sp) +/* 0DEC38 7F0AA108 1040002E */ beqz $v0, .L7F0AA1C4 +/* 0DEC3C 7F0AA10C 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0DEC40 7F0AA110 3C098008 */ lui $t1, %hi(pPlayer) +/* 0DEC44 7F0AA114 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0DEC48 7F0AA118 3C048004 */ lui $a0, %hi(D_800409DC+10) +/* 0DEC4C 7F0AA11C 8D2A2A58 */ lw $t2, 0x2a58($t1) +/* 0DEC50 7F0AA120 000A5880 */ sll $t3, $t2, 2 +/* 0DEC54 7F0AA124 016A5821 */ addu $t3, $t3, $t2 +/* 0DEC58 7F0AA128 000B5880 */ sll $t3, $t3, 2 +/* 0DEC5C 7F0AA12C 008B2021 */ addu $a0, $a0, $t3 +/* 0DEC60 7F0AA130 0FC30776 */ jal get_textptr_for_textID +/* 0DEC64 7F0AA134 948409E6 */ lhu $a0, %lo(D_800409DC+10)($a0) +/* 0DEC68 7F0AA138 3C0E0070 */ lui $t6, (0x007000A0 >> 16) # lui $t6, 0x70 +/* 0DEC6C 7F0AA13C 3C080030 */ lui $t0, (0x003000B0 >> 16) # lui $t0, 0x30 +/* 0DEC70 7F0AA140 350800B0 */ ori $t0, (0x003000B0 & 0xFFFF) # ori $t0, $t0, 0xb0 +/* 0DEC74 7F0AA144 35CE00A0 */ ori $t6, (0x007000A0 & 0xFFFF) # ori $t6, $t6, 0xa0 +/* 0DEC78 7F0AA148 240CFFFF */ li $t4, -1 +/* 0DEC7C 7F0AA14C 240D0001 */ li $t5, 1 +/* 0DEC80 7F0AA150 24190001 */ li $t9, 1 +/* 0DEC84 7F0AA154 AFB90028 */ sw $t9, 0x28($sp) +/* 0DEC88 7F0AA158 AFAD0014 */ sw $t5, 0x14($sp) +/* 0DEC8C 7F0AA15C AFAC0010 */ sw $t4, 0x10($sp) +/* 0DEC90 7F0AA160 AFAE0018 */ sw $t6, 0x18($sp) +/* 0DEC94 7F0AA164 AFA80024 */ sw $t0, 0x24($sp) +/* 0DEC98 7F0AA168 02002025 */ move $a0, $s0 +/* 0DEC9C 7F0AA16C 2405010E */ li $a1, 270 +/* 0DECA0 7F0AA170 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DECA4 7F0AA174 00403825 */ move $a3, $v0 +/* 0DECA8 7F0AA178 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DECAC 7F0AA17C 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DECB0 7F0AA180 AFA00020 */ sw $zero, 0x20($sp) +/* 0DECB4 7F0AA184 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0DECB8 7F0AA188 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0DECBC 7F0AA18C 3C0A8004 */ lui $t2, %hi(D_800409DC+10) +/* 0DECC0 7F0AA190 3401AC01 */ li $at, 44033 +/* 0DECC4 7F0AA194 8DF82A58 */ lw $t8, 0x2a58($t7) +/* 0DECC8 7F0AA198 00408025 */ move $s0, $v0 +/* 0DECCC 7F0AA19C 240B0001 */ li $t3, 1 +/* 0DECD0 7F0AA1A0 00184880 */ sll $t1, $t8, 2 +/* 0DECD4 7F0AA1A4 01384821 */ addu $t1, $t1, $t8 +/* 0DECD8 7F0AA1A8 00094880 */ sll $t1, $t1, 2 +/* 0DECDC 7F0AA1AC 01495021 */ addu $t2, $t2, $t1 +/* 0DECE0 7F0AA1B0 954A09E6 */ lhu $t2, %lo(D_800409DC+10)($t2) +/* 0DECE4 7F0AA1B4 55410020 */ bnel $t2, $at, .L7F0AA238 +/* 0DECE8 7F0AA1B8 8FA9004C */ lw $t1, 0x4c($sp) +/* 0DECEC 7F0AA1BC 1000001D */ b .L7F0AA234 +/* 0DECF0 7F0AA1C0 AFAB0050 */ sw $t3, 0x50($sp) +.L7F0AA1C4: +/* 0DECF4 7F0AA1C4 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0DECF8 7F0AA1C8 3C048004 */ lui $a0, %hi(D_800409DC+10) +/* 0DECFC 7F0AA1CC 8D8D2A58 */ lw $t5, 0x2a58($t4) +/* 0DED00 7F0AA1D0 000D7080 */ sll $t6, $t5, 2 +/* 0DED04 7F0AA1D4 01CD7021 */ addu $t6, $t6, $t5 +/* 0DED08 7F0AA1D8 000E7080 */ sll $t6, $t6, 2 +/* 0DED0C 7F0AA1DC 008E2021 */ addu $a0, $a0, $t6 +/* 0DED10 7F0AA1E0 0FC30776 */ jal get_textptr_for_textID +/* 0DED14 7F0AA1E4 948409E6 */ lhu $a0, %lo(D_800409DC+10)($a0) +/* 0DED18 7F0AA1E8 3C0800AA */ lui $t0, (0x00AA00B0 >> 16) # lui $t0, 0xaa +/* 0DED1C 7F0AA1EC 3C0F0030 */ lui $t7, (0x003000B0 >> 16) # lui $t7, 0x30 +/* 0DED20 7F0AA1F0 35EF00B0 */ ori $t7, (0x003000B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0DED24 7F0AA1F4 350800B0 */ ori $t0, (0x00AA00B0 & 0xFFFF) # ori $t0, $t0, 0xb0 +/* 0DED28 7F0AA1F8 2419FFFF */ li $t9, -1 +/* 0DED2C 7F0AA1FC 24180001 */ li $t8, 1 +/* 0DED30 7F0AA200 AFB80028 */ sw $t8, 0x28($sp) +/* 0DED34 7F0AA204 AFB90018 */ sw $t9, 0x18($sp) +/* 0DED38 7F0AA208 AFA80010 */ sw $t0, 0x10($sp) +/* 0DED3C 7F0AA20C AFAF0024 */ sw $t7, 0x24($sp) +/* 0DED40 7F0AA210 02002025 */ move $a0, $s0 +/* 0DED44 7F0AA214 2405010E */ li $a1, 270 +/* 0DED48 7F0AA218 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DED4C 7F0AA21C 00403825 */ move $a3, $v0 +/* 0DED50 7F0AA220 AFA00014 */ sw $zero, 0x14($sp) +/* 0DED54 7F0AA224 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DED58 7F0AA228 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DED5C 7F0AA22C AFA00020 */ sw $zero, 0x20($sp) +/* 0DED60 7F0AA230 00408025 */ move $s0, $v0 +.L7F0AA234: +/* 0DED64 7F0AA234 8FA9004C */ lw $t1, 0x4c($sp) +.L7F0AA238: +/* 0DED68 7F0AA238 3C0B8004 */ lui $t3, %hi(D_80040998) +/* 0DED6C 7F0AA23C 8D6B0998 */ lw $t3, %lo(D_80040998)($t3) +/* 0DED70 7F0AA240 24010001 */ li $at, 1 +/* 0DED74 7F0AA244 252A0019 */ addiu $t2, $t1, 0x19 +/* 0DED78 7F0AA248 1561000A */ bne $t3, $at, .L7F0AA274 +/* 0DED7C 7F0AA24C AFAA004C */ sw $t2, 0x4c($sp) +/* 0DED80 7F0AA250 3C0C8004 */ lui $t4, %hi(watch_soundrelated_maybe) +/* 0DED84 7F0AA254 8D8C09A8 */ lw $t4, %lo(watch_soundrelated_maybe)($t4) +/* 0DED88 7F0AA258 00002025 */ move $a0, $zero +/* 0DED8C 7F0AA25C 11800005 */ beqz $t4, .L7F0AA274 +/* 0DED90 7F0AA260 00000000 */ nop +/* 0DED94 7F0AA264 0C0030C3 */ jal get_controller_buttons_held +/* 0DED98 7F0AA268 2405000F */ li $a1, 15 +/* 0DED9C 7F0AA26C 1440001F */ bnez $v0, .L7F0AA2EC +/* 0DEDA0 7F0AA270 00002025 */ move $a0, $zero +.L7F0AA274: +/* 0DEDA4 7F0AA274 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0DEDA8 7F0AA278 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0DEDAC 7F0AA27C 3C048004 */ lui $a0, %hi(D_800409DC+12) +/* 0DEDB0 7F0AA280 8DAE2A58 */ lw $t6, 0x2a58($t5) +/* 0DEDB4 7F0AA284 000E4080 */ sll $t0, $t6, 2 +/* 0DEDB8 7F0AA288 010E4021 */ addu $t0, $t0, $t6 +/* 0DEDBC 7F0AA28C 00084080 */ sll $t0, $t0, 2 +/* 0DEDC0 7F0AA290 00882021 */ addu $a0, $a0, $t0 +/* 0DEDC4 7F0AA294 0FC30776 */ jal get_textptr_for_textID +/* 0DEDC8 7F0AA298 948409E8 */ lhu $a0, %lo(D_800409DC+12)($a0) +/* 0DEDCC 7F0AA29C 3C1900AA */ lui $t9, (0x00AA00B0 >> 16) # lui $t9, 0xaa +/* 0DEDD0 7F0AA2A0 3C180030 */ lui $t8, (0x003000B0 >> 16) # lui $t8, 0x30 +/* 0DEDD4 7F0AA2A4 371800B0 */ ori $t8, (0x003000B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0DEDD8 7F0AA2A8 373900B0 */ ori $t9, (0x00AA00B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DEDDC 7F0AA2AC 240FFFFF */ li $t7, -1 +/* 0DEDE0 7F0AA2B0 24090001 */ li $t1, 1 +/* 0DEDE4 7F0AA2B4 AFA90028 */ sw $t1, 0x28($sp) +/* 0DEDE8 7F0AA2B8 AFAF0018 */ sw $t7, 0x18($sp) +/* 0DEDEC 7F0AA2BC AFB90010 */ sw $t9, 0x10($sp) +/* 0DEDF0 7F0AA2C0 AFB80024 */ sw $t8, 0x24($sp) +/* 0DEDF4 7F0AA2C4 02002025 */ move $a0, $s0 +/* 0DEDF8 7F0AA2C8 2405010E */ li $a1, 270 +/* 0DEDFC 7F0AA2CC 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DEE00 7F0AA2D0 00403825 */ move $a3, $v0 +/* 0DEE04 7F0AA2D4 AFA00014 */ sw $zero, 0x14($sp) +/* 0DEE08 7F0AA2D8 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DEE0C 7F0AA2DC 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DEE10 7F0AA2E0 AFA00020 */ sw $zero, 0x20($sp) +/* 0DEE14 7F0AA2E4 10000076 */ b .L7F0AA4C0 +/* 0DEE18 7F0AA2E8 00408025 */ move $s0, $v0 +.L7F0AA2EC: +/* 0DEE1C 7F0AA2EC 0C0030C3 */ jal get_controller_buttons_held +/* 0DEE20 7F0AA2F0 2405000F */ li $a1, 15 +/* 0DEE24 7F0AA2F4 244AFFFF */ addiu $t2, $v0, -1 +/* 0DEE28 7F0AA2F8 004A5824 */ and $t3, $v0, $t2 +/* 0DEE2C 7F0AA2FC 15600054 */ bnez $t3, .L7F0AA450 +/* 0DEE30 7F0AA300 3C088008 */ lui $t0, %hi(pPlayer) +/* 0DEE34 7F0AA304 00002025 */ move $a0, $zero +/* 0DEE38 7F0AA308 0C0030C3 */ jal get_controller_buttons_held +/* 0DEE3C 7F0AA30C 24050008 */ li $a1, 8 +/* 0DEE40 7F0AA310 10400014 */ beqz $v0, .L7F0AA364 +/* 0DEE44 7F0AA314 00002025 */ move $a0, $zero +/* 0DEE48 7F0AA318 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0DEE4C 7F0AA31C 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0DEE50 7F0AA320 3C088004 */ lui $t0, %hi(D_800409DC+12) +/* 0DEE54 7F0AA324 3401AC05 */ li $at, 44037 +/* 0DEE58 7F0AA328 8D8D2A58 */ lw $t5, 0x2a58($t4) +/* 0DEE5C 7F0AA32C 8FA700AC */ lw $a3, 0xac($sp) +/* 0DEE60 7F0AA330 000D7080 */ sll $t6, $t5, 2 +/* 0DEE64 7F0AA334 01CD7021 */ addu $t6, $t6, $t5 +/* 0DEE68 7F0AA338 000E7080 */ sll $t6, $t6, 2 +/* 0DEE6C 7F0AA33C 010E4021 */ addu $t0, $t0, $t6 +/* 0DEE70 7F0AA340 950809E8 */ lhu $t0, %lo(D_800409DC+12)($t0) +/* 0DEE74 7F0AA344 15010005 */ bne $t0, $at, .L7F0AA35C +/* 0DEE78 7F0AA348 00000000 */ nop +/* 0DEE7C 7F0AA34C 0FC30776 */ jal get_textptr_for_textID +/* 0DEE80 7F0AA350 3404AC30 */ li $a0, 44080 +/* 0DEE84 7F0AA354 10000001 */ b .L7F0AA35C +/* 0DEE88 7F0AA358 00403825 */ move $a3, $v0 +.L7F0AA35C: +/* 0DEE8C 7F0AA35C 10000027 */ b .L7F0AA3FC +/* 0DEE90 7F0AA360 AFA7005C */ sw $a3, 0x5c($sp) +.L7F0AA364: +/* 0DEE94 7F0AA364 0C0030C3 */ jal get_controller_buttons_held +/* 0DEE98 7F0AA368 24050004 */ li $a1, 4 +/* 0DEE9C 7F0AA36C 10400014 */ beqz $v0, .L7F0AA3C0 +/* 0DEEA0 7F0AA370 00002025 */ move $a0, $zero +/* 0DEEA4 7F0AA374 3C198008 */ lui $t9, %hi(pPlayer) +/* 0DEEA8 7F0AA378 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0DEEAC 7F0AA37C 3C098004 */ lui $t1, %hi(D_800409DC+12) +/* 0DEEB0 7F0AA380 3401AC05 */ li $at, 44037 +/* 0DEEB4 7F0AA384 8F2F2A58 */ lw $t7, 0x2a58($t9) +/* 0DEEB8 7F0AA388 8FA700A8 */ lw $a3, 0xa8($sp) +/* 0DEEBC 7F0AA38C 000FC080 */ sll $t8, $t7, 2 +/* 0DEEC0 7F0AA390 030FC021 */ addu $t8, $t8, $t7 +/* 0DEEC4 7F0AA394 0018C080 */ sll $t8, $t8, 2 +/* 0DEEC8 7F0AA398 01384821 */ addu $t1, $t1, $t8 +/* 0DEECC 7F0AA39C 952909E8 */ lhu $t1, %lo(D_800409DC+12)($t1) +/* 0DEED0 7F0AA3A0 15210005 */ bne $t1, $at, .L7F0AA3B8 +/* 0DEED4 7F0AA3A4 00000000 */ nop +/* 0DEED8 7F0AA3A8 0FC30776 */ jal get_textptr_for_textID +/* 0DEEDC 7F0AA3AC 3404AC31 */ li $a0, 44081 +/* 0DEEE0 7F0AA3B0 10000001 */ b .L7F0AA3B8 +/* 0DEEE4 7F0AA3B4 00403825 */ move $a3, $v0 +.L7F0AA3B8: +/* 0DEEE8 7F0AA3B8 10000010 */ b .L7F0AA3FC +/* 0DEEEC 7F0AA3BC AFA7005C */ sw $a3, 0x5c($sp) +.L7F0AA3C0: +/* 0DEEF0 7F0AA3C0 0C0030C3 */ jal get_controller_buttons_held +/* 0DEEF4 7F0AA3C4 24050002 */ li $a1, 2 +/* 0DEEF8 7F0AA3C8 10400005 */ beqz $v0, .L7F0AA3E0 +/* 0DEEFC 7F0AA3CC 00002025 */ move $a0, $zero +/* 0DEF00 7F0AA3D0 0FC30776 */ jal get_textptr_for_textID +/* 0DEF04 7F0AA3D4 3404AC2F */ li $a0, 44079 +/* 0DEF08 7F0AA3D8 10000008 */ b .L7F0AA3FC +/* 0DEF0C 7F0AA3DC AFA2005C */ sw $v0, 0x5c($sp) +.L7F0AA3E0: +/* 0DEF10 7F0AA3E0 0C0030C3 */ jal get_controller_buttons_held +/* 0DEF14 7F0AA3E4 24050001 */ li $a1, 1 +/* 0DEF18 7F0AA3E8 50400005 */ beql $v0, $zero, .L7F0AA400 +/* 0DEF1C 7F0AA3EC 3C0C0070 */ lui $t4, 0x70 +/* 0DEF20 7F0AA3F0 0FC30776 */ jal get_textptr_for_textID +/* 0DEF24 7F0AA3F4 3404AC2E */ li $a0, 44078 +/* 0DEF28 7F0AA3F8 AFA2005C */ sw $v0, 0x5c($sp) +.L7F0AA3FC: +/* 0DEF2C 7F0AA3FC 3C0C0070 */ lui $t4, (0x007000A0 >> 16) # lui $t4, 0x70 +.L7F0AA400: +/* 0DEF30 7F0AA400 3C0D0030 */ lui $t5, (0x003000B0 >> 16) # lui $t5, 0x30 +/* 0DEF34 7F0AA404 35AD00B0 */ ori $t5, (0x003000B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0DEF38 7F0AA408 358C00A0 */ ori $t4, (0x007000A0 & 0xFFFF) # ori $t4, $t4, 0xa0 +/* 0DEF3C 7F0AA40C 240AFFFF */ li $t2, -1 +/* 0DEF40 7F0AA410 240B0001 */ li $t3, 1 +/* 0DEF44 7F0AA414 240E0001 */ li $t6, 1 +/* 0DEF48 7F0AA418 8FA7005C */ lw $a3, 0x5c($sp) +/* 0DEF4C 7F0AA41C AFAE0028 */ sw $t6, 0x28($sp) +/* 0DEF50 7F0AA420 AFAB0014 */ sw $t3, 0x14($sp) +/* 0DEF54 7F0AA424 AFAA0010 */ sw $t2, 0x10($sp) +/* 0DEF58 7F0AA428 AFAC0018 */ sw $t4, 0x18($sp) +/* 0DEF5C 7F0AA42C AFAD0024 */ sw $t5, 0x24($sp) +/* 0DEF60 7F0AA430 02002025 */ move $a0, $s0 +/* 0DEF64 7F0AA434 2405010E */ li $a1, 270 +/* 0DEF68 7F0AA438 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DEF6C 7F0AA43C AFA0001C */ sw $zero, 0x1c($sp) +/* 0DEF70 7F0AA440 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DEF74 7F0AA444 AFA00020 */ sw $zero, 0x20($sp) +/* 0DEF78 7F0AA448 1000001D */ b .L7F0AA4C0 +/* 0DEF7C 7F0AA44C 00408025 */ move $s0, $v0 +.L7F0AA450: +/* 0DEF80 7F0AA450 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0DEF84 7F0AA454 3C048004 */ lui $a0, %hi(D_800409DC+12) +/* 0DEF88 7F0AA458 8D192A58 */ lw $t9, 0x2a58($t0) +/* 0DEF8C 7F0AA45C 00197880 */ sll $t7, $t9, 2 +/* 0DEF90 7F0AA460 01F97821 */ addu $t7, $t7, $t9 +/* 0DEF94 7F0AA464 000F7880 */ sll $t7, $t7, 2 +/* 0DEF98 7F0AA468 008F2021 */ addu $a0, $a0, $t7 +/* 0DEF9C 7F0AA46C 0FC30776 */ jal get_textptr_for_textID +/* 0DEFA0 7F0AA470 948409E8 */ lhu $a0, %lo(D_800409DC+12)($a0) +/* 0DEFA4 7F0AA474 3C1800AA */ lui $t8, (0x00AA00B0 >> 16) # lui $t8, 0xaa +/* 0DEFA8 7F0AA478 3C0A0030 */ lui $t2, (0x003000B0 >> 16) # lui $t2, 0x30 +/* 0DEFAC 7F0AA47C 354A00B0 */ ori $t2, (0x003000B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +/* 0DEFB0 7F0AA480 371800B0 */ ori $t8, (0x00AA00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0DEFB4 7F0AA484 2409FFFF */ li $t1, -1 +/* 0DEFB8 7F0AA488 240B0001 */ li $t3, 1 +/* 0DEFBC 7F0AA48C AFAB0028 */ sw $t3, 0x28($sp) +/* 0DEFC0 7F0AA490 AFA90018 */ sw $t1, 0x18($sp) +/* 0DEFC4 7F0AA494 AFB80010 */ sw $t8, 0x10($sp) +/* 0DEFC8 7F0AA498 AFAA0024 */ sw $t2, 0x24($sp) +/* 0DEFCC 7F0AA49C 02002025 */ move $a0, $s0 +/* 0DEFD0 7F0AA4A0 2405010E */ li $a1, 270 +/* 0DEFD4 7F0AA4A4 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DEFD8 7F0AA4A8 00403825 */ move $a3, $v0 +/* 0DEFDC 7F0AA4AC AFA00014 */ sw $zero, 0x14($sp) +/* 0DEFE0 7F0AA4B0 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DEFE4 7F0AA4B4 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DEFE8 7F0AA4B8 AFA00020 */ sw $zero, 0x20($sp) +/* 0DEFEC 7F0AA4BC 00408025 */ move $s0, $v0 +.L7F0AA4C0: +/* 0DEFF0 7F0AA4C0 8FAC004C */ lw $t4, 0x4c($sp) +/* 0DEFF4 7F0AA4C4 00002025 */ move $a0, $zero +/* 0DEFF8 7F0AA4C8 24054000 */ li $a1, 16384 +/* 0DEFFC 7F0AA4CC 258D0019 */ addiu $t5, $t4, 0x19 +/* 0DF000 7F0AA4D0 0C0030C3 */ jal get_controller_buttons_held +/* 0DF004 7F0AA4D4 AFAD004C */ sw $t5, 0x4c($sp) +/* 0DF008 7F0AA4D8 10400020 */ beqz $v0, .L7F0AA55C +/* 0DF00C 7F0AA4DC 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0DF010 7F0AA4E0 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0DF014 7F0AA4E4 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0DF018 7F0AA4E8 3C048004 */ lui $a0, %hi(D_800409DC+4) +/* 0DF01C 7F0AA4EC 8DC82A58 */ lw $t0, 0x2a58($t6) +/* 0DF020 7F0AA4F0 0008C880 */ sll $t9, $t0, 2 +/* 0DF024 7F0AA4F4 0328C821 */ addu $t9, $t9, $t0 +/* 0DF028 7F0AA4F8 0019C880 */ sll $t9, $t9, 2 +/* 0DF02C 7F0AA4FC 00992021 */ addu $a0, $a0, $t9 +/* 0DF030 7F0AA500 0FC30776 */ jal get_textptr_for_textID +/* 0DF034 7F0AA504 948409E0 */ lhu $a0, %lo(D_800409DC+4)($a0) +/* 0DF038 7F0AA508 3C090070 */ lui $t1, (0x007000A0 >> 16) # lui $t1, 0x70 +/* 0DF03C 7F0AA50C 3C0A0030 */ lui $t2, (0x003000B0 >> 16) # lui $t2, 0x30 +/* 0DF040 7F0AA510 354A00B0 */ ori $t2, (0x003000B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +/* 0DF044 7F0AA514 352900A0 */ ori $t1, (0x007000A0 & 0xFFFF) # ori $t1, $t1, 0xa0 +/* 0DF048 7F0AA518 240FFFFF */ li $t7, -1 +/* 0DF04C 7F0AA51C 24180001 */ li $t8, 1 +/* 0DF050 7F0AA520 240B0001 */ li $t3, 1 +/* 0DF054 7F0AA524 AFAB0028 */ sw $t3, 0x28($sp) +/* 0DF058 7F0AA528 AFB80014 */ sw $t8, 0x14($sp) +/* 0DF05C 7F0AA52C AFAF0010 */ sw $t7, 0x10($sp) +/* 0DF060 7F0AA530 AFA90018 */ sw $t1, 0x18($sp) +/* 0DF064 7F0AA534 AFAA0024 */ sw $t2, 0x24($sp) +/* 0DF068 7F0AA538 02002025 */ move $a0, $s0 +/* 0DF06C 7F0AA53C 2405010E */ li $a1, 270 +/* 0DF070 7F0AA540 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DF074 7F0AA544 00403825 */ move $a3, $v0 +/* 0DF078 7F0AA548 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF07C 7F0AA54C 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF080 7F0AA550 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF084 7F0AA554 1000001D */ b .L7F0AA5CC +/* 0DF088 7F0AA558 00408025 */ move $s0, $v0 +.L7F0AA55C: +/* 0DF08C 7F0AA55C 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0DF090 7F0AA560 3C048004 */ lui $a0, %hi(D_800409DC+4) +/* 0DF094 7F0AA564 8D8D2A58 */ lw $t5, 0x2a58($t4) +/* 0DF098 7F0AA568 000D7080 */ sll $t6, $t5, 2 +/* 0DF09C 7F0AA56C 01CD7021 */ addu $t6, $t6, $t5 +/* 0DF0A0 7F0AA570 000E7080 */ sll $t6, $t6, 2 +/* 0DF0A4 7F0AA574 008E2021 */ addu $a0, $a0, $t6 +/* 0DF0A8 7F0AA578 0FC30776 */ jal get_textptr_for_textID +/* 0DF0AC 7F0AA57C 948409E0 */ lhu $a0, %lo(D_800409DC+4)($a0) +/* 0DF0B0 7F0AA580 3C0800AA */ lui $t0, (0x00AA00B0 >> 16) # lui $t0, 0xaa +/* 0DF0B4 7F0AA584 3C0F0030 */ lui $t7, (0x003000B0 >> 16) # lui $t7, 0x30 +/* 0DF0B8 7F0AA588 35EF00B0 */ ori $t7, (0x003000B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0DF0BC 7F0AA58C 350800B0 */ ori $t0, (0x00AA00B0 & 0xFFFF) # ori $t0, $t0, 0xb0 +/* 0DF0C0 7F0AA590 2419FFFF */ li $t9, -1 +/* 0DF0C4 7F0AA594 24180001 */ li $t8, 1 +/* 0DF0C8 7F0AA598 AFB80028 */ sw $t8, 0x28($sp) +/* 0DF0CC 7F0AA59C AFB90018 */ sw $t9, 0x18($sp) +/* 0DF0D0 7F0AA5A0 AFA80010 */ sw $t0, 0x10($sp) +/* 0DF0D4 7F0AA5A4 AFAF0024 */ sw $t7, 0x24($sp) +/* 0DF0D8 7F0AA5A8 02002025 */ move $a0, $s0 +/* 0DF0DC 7F0AA5AC 2405010E */ li $a1, 270 +/* 0DF0E0 7F0AA5B0 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DF0E4 7F0AA5B4 00403825 */ move $a3, $v0 +/* 0DF0E8 7F0AA5B8 AFA00014 */ sw $zero, 0x14($sp) +/* 0DF0EC 7F0AA5BC AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF0F0 7F0AA5C0 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF0F4 7F0AA5C4 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF0F8 7F0AA5C8 00408025 */ move $s0, $v0 +.L7F0AA5CC: +/* 0DF0FC 7F0AA5CC 8FA9004C */ lw $t1, 0x4c($sp) +/* 0DF100 7F0AA5D0 00002025 */ move $a0, $zero +/* 0DF104 7F0AA5D4 34058000 */ li $a1, 32768 +/* 0DF108 7F0AA5D8 252A0019 */ addiu $t2, $t1, 0x19 +/* 0DF10C 7F0AA5DC 0C0030C3 */ jal get_controller_buttons_held +/* 0DF110 7F0AA5E0 AFAA004C */ sw $t2, 0x4c($sp) +/* 0DF114 7F0AA5E4 10400020 */ beqz $v0, .L7F0AA668 +/* 0DF118 7F0AA5E8 3C098008 */ lui $t1, %hi(pPlayer) +/* 0DF11C 7F0AA5EC 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0DF120 7F0AA5F0 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0DF124 7F0AA5F4 3C048004 */ lui $a0, %hi(D_800409DC+2) +/* 0DF128 7F0AA5F8 8D6C2A58 */ lw $t4, 0x2a58($t3) +/* 0DF12C 7F0AA5FC 000C6880 */ sll $t5, $t4, 2 +/* 0DF130 7F0AA600 01AC6821 */ addu $t5, $t5, $t4 +/* 0DF134 7F0AA604 000D6880 */ sll $t5, $t5, 2 +/* 0DF138 7F0AA608 008D2021 */ addu $a0, $a0, $t5 +/* 0DF13C 7F0AA60C 0FC30776 */ jal get_textptr_for_textID +/* 0DF140 7F0AA610 948409DE */ lhu $a0, %lo(D_800409DC+2)($a0) +/* 0DF144 7F0AA614 3C190070 */ lui $t9, (0x007000A0 >> 16) # lui $t9, 0x70 +/* 0DF148 7F0AA618 3C0F0030 */ lui $t7, (0x003000B0 >> 16) # lui $t7, 0x30 +/* 0DF14C 7F0AA61C 35EF00B0 */ ori $t7, (0x003000B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0DF150 7F0AA620 373900A0 */ ori $t9, (0x007000A0 & 0xFFFF) # ori $t9, $t9, 0xa0 +/* 0DF154 7F0AA624 240EFFFF */ li $t6, -1 +/* 0DF158 7F0AA628 24080001 */ li $t0, 1 +/* 0DF15C 7F0AA62C 24180001 */ li $t8, 1 +/* 0DF160 7F0AA630 AFB80028 */ sw $t8, 0x28($sp) +/* 0DF164 7F0AA634 AFA80014 */ sw $t0, 0x14($sp) +/* 0DF168 7F0AA638 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DF16C 7F0AA63C AFB90018 */ sw $t9, 0x18($sp) +/* 0DF170 7F0AA640 AFAF0024 */ sw $t7, 0x24($sp) +/* 0DF174 7F0AA644 02002025 */ move $a0, $s0 +/* 0DF178 7F0AA648 2405010E */ li $a1, 270 +/* 0DF17C 7F0AA64C 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DF180 7F0AA650 00403825 */ move $a3, $v0 +/* 0DF184 7F0AA654 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF188 7F0AA658 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF18C 7F0AA65C AFA00020 */ sw $zero, 0x20($sp) +/* 0DF190 7F0AA660 1000001D */ b .L7F0AA6D8 +/* 0DF194 7F0AA664 00408025 */ move $s0, $v0 +.L7F0AA668: +/* 0DF198 7F0AA668 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0DF19C 7F0AA66C 3C048004 */ lui $a0, %hi(D_800409DC+2) +/* 0DF1A0 7F0AA670 8D2A2A58 */ lw $t2, 0x2a58($t1) +/* 0DF1A4 7F0AA674 000A5880 */ sll $t3, $t2, 2 +/* 0DF1A8 7F0AA678 016A5821 */ addu $t3, $t3, $t2 +/* 0DF1AC 7F0AA67C 000B5880 */ sll $t3, $t3, 2 +/* 0DF1B0 7F0AA680 008B2021 */ addu $a0, $a0, $t3 +/* 0DF1B4 7F0AA684 0FC30776 */ jal get_textptr_for_textID +/* 0DF1B8 7F0AA688 948409DE */ lhu $a0, %lo(D_800409DC+2)($a0) +/* 0DF1BC 7F0AA68C 3C0C00AA */ lui $t4, (0x00AA00B0 >> 16) # lui $t4, 0xaa +/* 0DF1C0 7F0AA690 3C0E0030 */ lui $t6, (0x003000B0 >> 16) # lui $t6, 0x30 +/* 0DF1C4 7F0AA694 35CE00B0 */ ori $t6, (0x003000B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0DF1C8 7F0AA698 358C00B0 */ ori $t4, (0x00AA00B0 & 0xFFFF) # ori $t4, $t4, 0xb0 +/* 0DF1CC 7F0AA69C 240DFFFF */ li $t5, -1 +/* 0DF1D0 7F0AA6A0 24080001 */ li $t0, 1 +/* 0DF1D4 7F0AA6A4 AFA80028 */ sw $t0, 0x28($sp) +/* 0DF1D8 7F0AA6A8 AFAD0018 */ sw $t5, 0x18($sp) +/* 0DF1DC 7F0AA6AC AFAC0010 */ sw $t4, 0x10($sp) +/* 0DF1E0 7F0AA6B0 AFAE0024 */ sw $t6, 0x24($sp) +/* 0DF1E4 7F0AA6B4 02002025 */ move $a0, $s0 +/* 0DF1E8 7F0AA6B8 2405010E */ li $a1, 270 +/* 0DF1EC 7F0AA6BC 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DF1F0 7F0AA6C0 00403825 */ move $a3, $v0 +/* 0DF1F4 7F0AA6C4 AFA00014 */ sw $zero, 0x14($sp) +/* 0DF1F8 7F0AA6C8 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF1FC 7F0AA6CC 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF200 7F0AA6D0 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF204 7F0AA6D4 00408025 */ move $s0, $v0 +.L7F0AA6D8: +/* 0DF208 7F0AA6D8 8FB90050 */ lw $t9, 0x50($sp) +/* 0DF20C 7F0AA6DC 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0DF210 7F0AA6E0 13200018 */ beqz $t9, .L7F0AA744 +/* 0DF214 7F0AA6E4 00000000 */ nop +/* 0DF218 7F0AA6E8 0FC30776 */ jal get_textptr_for_textID +/* 0DF21C 7F0AA6EC 3404AC08 */ li $a0, 44040 +/* 0DF220 7F0AA6F0 3C090070 */ lui $t1, (0x007000A0 >> 16) # lui $t1, 0x70 +/* 0DF224 7F0AA6F4 3C0A0030 */ lui $t2, (0x003000B0 >> 16) # lui $t2, 0x30 +/* 0DF228 7F0AA6F8 354A00B0 */ ori $t2, (0x003000B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +/* 0DF22C 7F0AA6FC 352900A0 */ ori $t1, (0x007000A0 & 0xFFFF) # ori $t1, $t1, 0xa0 +/* 0DF230 7F0AA700 240FFFFF */ li $t7, -1 +/* 0DF234 7F0AA704 24180001 */ li $t8, 1 +/* 0DF238 7F0AA708 240B0001 */ li $t3, 1 +/* 0DF23C 7F0AA70C AFAB0028 */ sw $t3, 0x28($sp) +/* 0DF240 7F0AA710 AFB80014 */ sw $t8, 0x14($sp) +/* 0DF244 7F0AA714 AFAF0010 */ sw $t7, 0x10($sp) +/* 0DF248 7F0AA718 AFA90018 */ sw $t1, 0x18($sp) +/* 0DF24C 7F0AA71C AFAA0024 */ sw $t2, 0x24($sp) +/* 0DF250 7F0AA720 02002025 */ move $a0, $s0 +/* 0DF254 7F0AA724 240500FA */ li $a1, 250 +/* 0DF258 7F0AA728 240600C3 */ li $a2, 195 +/* 0DF25C 7F0AA72C 00403825 */ move $a3, $v0 +/* 0DF260 7F0AA730 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF264 7F0AA734 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF268 7F0AA738 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF26C 7F0AA73C 1000001D */ b .L7F0AA7B4 +/* 0DF270 7F0AA740 00408025 */ move $s0, $v0 +.L7F0AA744: +/* 0DF274 7F0AA744 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0DF278 7F0AA748 3C048004 */ lui $a0, %hi(D_800409DC+18) +/* 0DF27C 7F0AA74C 8D8D2A58 */ lw $t5, 0x2a58($t4) +/* 0DF280 7F0AA750 000D7080 */ sll $t6, $t5, 2 +/* 0DF284 7F0AA754 01CD7021 */ addu $t6, $t6, $t5 +/* 0DF288 7F0AA758 000E7080 */ sll $t6, $t6, 2 +/* 0DF28C 7F0AA75C 008E2021 */ addu $a0, $a0, $t6 +/* 0DF290 7F0AA760 0FC30776 */ jal get_textptr_for_textID +/* 0DF294 7F0AA764 948409EE */ lhu $a0, %lo(D_800409DC+18)($a0) +/* 0DF298 7F0AA768 3C0800AA */ lui $t0, (0x00AA00B0 >> 16) # lui $t0, 0xaa +/* 0DF29C 7F0AA76C 3C0F0030 */ lui $t7, (0x003000B0 >> 16) # lui $t7, 0x30 +/* 0DF2A0 7F0AA770 35EF00B0 */ ori $t7, (0x003000B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0DF2A4 7F0AA774 350800B0 */ ori $t0, (0x00AA00B0 & 0xFFFF) # ori $t0, $t0, 0xb0 +/* 0DF2A8 7F0AA778 2419FFFF */ li $t9, -1 +/* 0DF2AC 7F0AA77C 24180001 */ li $t8, 1 +/* 0DF2B0 7F0AA780 AFB80028 */ sw $t8, 0x28($sp) +/* 0DF2B4 7F0AA784 AFB90018 */ sw $t9, 0x18($sp) +/* 0DF2B8 7F0AA788 AFA80010 */ sw $t0, 0x10($sp) +/* 0DF2BC 7F0AA78C AFAF0024 */ sw $t7, 0x24($sp) +/* 0DF2C0 7F0AA790 02002025 */ move $a0, $s0 +/* 0DF2C4 7F0AA794 240500FA */ li $a1, 250 +/* 0DF2C8 7F0AA798 240600C3 */ li $a2, 195 +/* 0DF2CC 7F0AA79C 00403825 */ move $a3, $v0 +/* 0DF2D0 7F0AA7A0 AFA00014 */ sw $zero, 0x14($sp) +/* 0DF2D4 7F0AA7A4 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF2D8 7F0AA7A8 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF2DC 7F0AA7AC AFA00020 */ sw $zero, 0x20($sp) +/* 0DF2E0 7F0AA7B0 00408025 */ move $s0, $v0 +.L7F0AA7B4: +/* 0DF2E4 7F0AA7B4 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DF2E8 7F0AA7B8 02001025 */ move $v0, $s0 +/* 0DF2EC 7F0AA7BC 8FB00038 */ lw $s0, 0x38($sp) +/* 0DF2F0 7F0AA7C0 03E00008 */ jr $ra +/* 0DF2F4 7F0AA7C4 27BD00B0 */ addiu $sp, $sp, 0xb0 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AA7C8(u32 * displayList) +{ + u32 * DL; + u8 * txtptr; + + DL = microcode_constructor(displayList); + if (get_controller_buttons_held('\0',A_BUTTON) != 0) + { + sub_GAME_7F0A9398(DL, 0x5a, 0xa7, get_textptr_for_textID(0xac03), -1, 1, 0x7000a0, 0, 0, 0x3000b0, 0); + } else { + sub_GAME_7F0A9398(DL, 0x5a, 0xa7, get_textptr_for_textID(0xac03), 0xaa00b0, 0, -1, 0, 0, 0x3000b0, 0); + } + + if (get_controller_buttons_held('\0',B_BUTTON) != 0) + { + sub_GAME_7F0A9398(DL, 0x5a, 0x95, get_textptr_for_textID(0xac02), -1, 1, 0x7000a0, 0, 0, 0x3000b0, 0); + } else { + sub_GAME_7F0A9398(DL, 0x5a, 0x95, get_textptr_for_textID(0xac02), 0xaa00b0, 0, -1, 0, 0, 0x3000b0, 0); + } + + + + if ((pPlayer->cur_player_control_type_0 == 4) || (pPlayer->cur_player_control_type_0 == 5)) + { + txtptr = get_textptr_for_textID(0xac00); + } else { + txtptr = get_textptr_for_textID(0xac01); + } + + if (get_controller_buttons_held('\0',Z_TRIG) != 0) + { + sub_GAME_7F0A9398(DL, 0x5a, 0xb9, txtptr, -1, 1, 0x7000a0, 0, 0, 0x3000b0, 0); + } else { + sub_GAME_7F0A9398(DL, 0x5a, 0xb9, txtptr, 0xaa00b0, 0, -1, 0, 0, 0x3000b0, 0); + } + + + + if ((pPlayer->cur_player_control_type_0 == 4) || (pPlayer->cur_player_control_type_0 == 6)) + { + txtptr = get_textptr_for_textID(0xac05); + } else { + txtptr = get_textptr_for_textID(0xac06); + } + + sub_GAME_7F0A9398(DL, 0x5a, 0xcb, txtptr, 0xaa00b0, 0, -1, 0, 0, 0x3000b0, 0); + if (get_controller_buttons_held('\x01',A_BUTTON) != 0) + { + sub_GAME_7F0A9398(DL, 0xe6, 0xa7, get_textptr_for_textID(0xac03), -1, 1, 0x7000a0, 0, 0, 0x3000b0, 1); + } else { + sub_GAME_7F0A9398(DL, 0xe6, 0xa7, get_textptr_for_textID(0xac03), 0xaa00b0, 0, -1, 0, 0, 0x3000b0, 1); + } + + if (get_controller_buttons_held('\x01',B_BUTTON) != 0) + { + sub_GAME_7F0A9398(DL, 0xe6, 0x95, get_textptr_for_textID(0xac02), -1, 1, 0x7000a0, 0, 0, 0x3000b0, 1); + } else { + sub_GAME_7F0A9398(DL, 0xe6, 0x95, get_textptr_for_textID(0xac02), 0xaa00b0, 0, -1, 0, 0, 0x3000b0, 1); + } + + + + if ((pPlayer->cur_player_control_type_0 == 4) || (pPlayer->cur_player_control_type_0 == 5)) + { + txtptr = get_textptr_for_textID(0xac01); + } else { + txtptr = get_textptr_for_textID(0xac00); + } + + if (get_controller_buttons_held('\x01',Z_TRIG) != 0) + { + sub_GAME_7F0A9398(DL, 0xe6, 0xb9, txtptr, -1, 1, 0x7000a0, 0, 0, 0x3000b0, 1); + } else { + sub_GAME_7F0A9398(DL, 0xe6, 0xb9, txtptr, 0xaa00b0, 0, -1, 0, 0, 0x3000b0, 1); + } + + + + if ((pPlayer->cur_player_control_type_0 == 4) || (pPlayer->cur_player_control_type_0 == 6)) + { + txtptr = get_textptr_for_textID(0xac06); + } else { + txtptr = get_textptr_for_textID(0xac05); + } + + sub_GAME_7F0A9398(DL, 0xe6, 0xcb, txtptr, 0xaa00b0, 0, -1, 0, 0, 0x3000b0, 1); +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AA7C8 +/* 0DF2F8 7F0AA7C8 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0DF2FC 7F0AA7CC AFBF003C */ sw $ra, 0x3c($sp) +/* 0DF300 7F0AA7D0 0FC2B366 */ jal microcode_constructor +/* 0DF304 7F0AA7D4 AFB00038 */ sw $s0, 0x38($sp) +/* 0DF308 7F0AA7D8 00408025 */ move $s0, $v0 +/* 0DF30C 7F0AA7DC 00002025 */ move $a0, $zero +/* 0DF310 7F0AA7E0 0C0030C3 */ jal get_controller_buttons_held +/* 0DF314 7F0AA7E4 34058000 */ li $a1, 32768 +/* 0DF318 7F0AA7E8 10400017 */ beqz $v0, .L7F0AA848 +/* 0DF31C 7F0AA7EC 00000000 */ nop +/* 0DF320 7F0AA7F0 0FC30776 */ jal get_textptr_for_textID +/* 0DF324 7F0AA7F4 3404AC03 */ li $a0, 44035 +/* 0DF328 7F0AA7F8 3C180070 */ lui $t8, (0x007000A0 >> 16) # lui $t8, 0x70 +/* 0DF32C 7F0AA7FC 3C190030 */ lui $t9, (0x003000B0 >> 16) # lui $t9, 0x30 +/* 0DF330 7F0AA800 373900B0 */ ori $t9, (0x003000B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DF334 7F0AA804 371800A0 */ ori $t8, (0x007000A0 & 0xFFFF) # ori $t8, $t8, 0xa0 +/* 0DF338 7F0AA808 240EFFFF */ li $t6, -1 +/* 0DF33C 7F0AA80C 240F0001 */ li $t7, 1 +/* 0DF340 7F0AA810 AFAF0014 */ sw $t7, 0x14($sp) +/* 0DF344 7F0AA814 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DF348 7F0AA818 AFB80018 */ sw $t8, 0x18($sp) +/* 0DF34C 7F0AA81C AFB90024 */ sw $t9, 0x24($sp) +/* 0DF350 7F0AA820 02002025 */ move $a0, $s0 +/* 0DF354 7F0AA824 2405005A */ li $a1, 90 +/* 0DF358 7F0AA828 240600A7 */ li $a2, 167 +/* 0DF35C 7F0AA82C 00403825 */ move $a3, $v0 +/* 0DF360 7F0AA830 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF364 7F0AA834 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF368 7F0AA838 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF36C 7F0AA83C AFA00028 */ sw $zero, 0x28($sp) +/* 0DF370 7F0AA840 10000015 */ b .L7F0AA898 +/* 0DF374 7F0AA844 00408025 */ move $s0, $v0 +.L7F0AA848: +/* 0DF378 7F0AA848 0FC30776 */ jal get_textptr_for_textID +/* 0DF37C 7F0AA84C 3404AC03 */ li $a0, 44035 +/* 0DF380 7F0AA850 3C0800AA */ lui $t0, (0x00AA00B0 >> 16) # lui $t0, 0xaa +/* 0DF384 7F0AA854 3C0A0030 */ lui $t2, (0x003000B0 >> 16) # lui $t2, 0x30 +/* 0DF388 7F0AA858 354A00B0 */ ori $t2, (0x003000B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +/* 0DF38C 7F0AA85C 350800B0 */ ori $t0, (0x00AA00B0 & 0xFFFF) # ori $t0, $t0, 0xb0 +/* 0DF390 7F0AA860 2409FFFF */ li $t1, -1 +/* 0DF394 7F0AA864 AFA90018 */ sw $t1, 0x18($sp) +/* 0DF398 7F0AA868 AFA80010 */ sw $t0, 0x10($sp) +/* 0DF39C 7F0AA86C AFAA0024 */ sw $t2, 0x24($sp) +/* 0DF3A0 7F0AA870 02002025 */ move $a0, $s0 +/* 0DF3A4 7F0AA874 2405005A */ li $a1, 90 +/* 0DF3A8 7F0AA878 240600A7 */ li $a2, 167 +/* 0DF3AC 7F0AA87C 00403825 */ move $a3, $v0 +/* 0DF3B0 7F0AA880 AFA00014 */ sw $zero, 0x14($sp) +/* 0DF3B4 7F0AA884 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF3B8 7F0AA888 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF3BC 7F0AA88C 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF3C0 7F0AA890 AFA00028 */ sw $zero, 0x28($sp) +/* 0DF3C4 7F0AA894 00408025 */ move $s0, $v0 +.L7F0AA898: +/* 0DF3C8 7F0AA898 00002025 */ move $a0, $zero +/* 0DF3CC 7F0AA89C 0C0030C3 */ jal get_controller_buttons_held +/* 0DF3D0 7F0AA8A0 24054000 */ li $a1, 16384 +/* 0DF3D4 7F0AA8A4 10400017 */ beqz $v0, .L7F0AA904 +/* 0DF3D8 7F0AA8A8 00000000 */ nop +/* 0DF3DC 7F0AA8AC 0FC30776 */ jal get_textptr_for_textID +/* 0DF3E0 7F0AA8B0 3404AC02 */ li $a0, 44034 +/* 0DF3E4 7F0AA8B4 3C0D0070 */ lui $t5, (0x007000A0 >> 16) # lui $t5, 0x70 +/* 0DF3E8 7F0AA8B8 3C0E0030 */ lui $t6, (0x003000B0 >> 16) # lui $t6, 0x30 +/* 0DF3EC 7F0AA8BC 35CE00B0 */ ori $t6, (0x003000B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0DF3F0 7F0AA8C0 35AD00A0 */ ori $t5, (0x007000A0 & 0xFFFF) # ori $t5, $t5, 0xa0 +/* 0DF3F4 7F0AA8C4 240BFFFF */ li $t3, -1 +/* 0DF3F8 7F0AA8C8 240C0001 */ li $t4, 1 +/* 0DF3FC 7F0AA8CC AFAC0014 */ sw $t4, 0x14($sp) +/* 0DF400 7F0AA8D0 AFAB0010 */ sw $t3, 0x10($sp) +/* 0DF404 7F0AA8D4 AFAD0018 */ sw $t5, 0x18($sp) +/* 0DF408 7F0AA8D8 AFAE0024 */ sw $t6, 0x24($sp) +/* 0DF40C 7F0AA8DC 02002025 */ move $a0, $s0 +/* 0DF410 7F0AA8E0 2405005A */ li $a1, 90 +/* 0DF414 7F0AA8E4 24060095 */ li $a2, 149 +/* 0DF418 7F0AA8E8 00403825 */ move $a3, $v0 +/* 0DF41C 7F0AA8EC AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF420 7F0AA8F0 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF424 7F0AA8F4 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF428 7F0AA8F8 AFA00028 */ sw $zero, 0x28($sp) +/* 0DF42C 7F0AA8FC 10000015 */ b .L7F0AA954 +/* 0DF430 7F0AA900 00408025 */ move $s0, $v0 +.L7F0AA904: +/* 0DF434 7F0AA904 0FC30776 */ jal get_textptr_for_textID +/* 0DF438 7F0AA908 3404AC02 */ li $a0, 44034 +/* 0DF43C 7F0AA90C 3C0F00AA */ lui $t7, (0x00AA00B0 >> 16) # lui $t7, 0xaa +/* 0DF440 7F0AA910 3C190030 */ lui $t9, (0x003000B0 >> 16) # lui $t9, 0x30 +/* 0DF444 7F0AA914 373900B0 */ ori $t9, (0x003000B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DF448 7F0AA918 35EF00B0 */ ori $t7, (0x00AA00B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0DF44C 7F0AA91C 2418FFFF */ li $t8, -1 +/* 0DF450 7F0AA920 AFB80018 */ sw $t8, 0x18($sp) +/* 0DF454 7F0AA924 AFAF0010 */ sw $t7, 0x10($sp) +/* 0DF458 7F0AA928 AFB90024 */ sw $t9, 0x24($sp) +/* 0DF45C 7F0AA92C 02002025 */ move $a0, $s0 +/* 0DF460 7F0AA930 2405005A */ li $a1, 90 +/* 0DF464 7F0AA934 24060095 */ li $a2, 149 +/* 0DF468 7F0AA938 00403825 */ move $a3, $v0 +/* 0DF46C 7F0AA93C AFA00014 */ sw $zero, 0x14($sp) +/* 0DF470 7F0AA940 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF474 7F0AA944 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF478 7F0AA948 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF47C 7F0AA94C AFA00028 */ sw $zero, 0x28($sp) +/* 0DF480 7F0AA950 00408025 */ move $s0, $v0 +.L7F0AA954: +/* 0DF484 7F0AA954 3C088008 */ lui $t0, %hi(pPlayer) +/* 0DF488 7F0AA958 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0DF48C 7F0AA95C 24010004 */ li $at, 4 +/* 0DF490 7F0AA960 8D022A58 */ lw $v0, 0x2a58($t0) +/* 0DF494 7F0AA964 10410003 */ beq $v0, $at, .L7F0AA974 +/* 0DF498 7F0AA968 24010005 */ li $at, 5 +/* 0DF49C 7F0AA96C 14410005 */ bne $v0, $at, .L7F0AA984 +/* 0DF4A0 7F0AA970 00000000 */ nop +.L7F0AA974: +/* 0DF4A4 7F0AA974 0FC30776 */ jal get_textptr_for_textID +/* 0DF4A8 7F0AA978 3404AC00 */ li $a0, 44032 +/* 0DF4AC 7F0AA97C 10000004 */ b .L7F0AA990 +/* 0DF4B0 7F0AA980 00403825 */ move $a3, $v0 +.L7F0AA984: +/* 0DF4B4 7F0AA984 0FC30776 */ jal get_textptr_for_textID +/* 0DF4B8 7F0AA988 3404AC01 */ li $a0, 44033 +/* 0DF4BC 7F0AA98C 00403825 */ move $a3, $v0 +.L7F0AA990: +/* 0DF4C0 7F0AA990 00002025 */ move $a0, $zero +/* 0DF4C4 7F0AA994 24052000 */ li $a1, 8192 +/* 0DF4C8 7F0AA998 0C0030C3 */ jal get_controller_buttons_held +/* 0DF4CC 7F0AA99C AFA70044 */ sw $a3, 0x44($sp) +/* 0DF4D0 7F0AA9A0 10400014 */ beqz $v0, .L7F0AA9F4 +/* 0DF4D4 7F0AA9A4 8FA70044 */ lw $a3, 0x44($sp) +/* 0DF4D8 7F0AA9A8 3C0B0070 */ lui $t3, (0x007000A0 >> 16) # lui $t3, 0x70 +/* 0DF4DC 7F0AA9AC 3C0C0030 */ lui $t4, (0x003000B0 >> 16) # lui $t4, 0x30 +/* 0DF4E0 7F0AA9B0 358C00B0 */ ori $t4, (0x003000B0 & 0xFFFF) # ori $t4, $t4, 0xb0 +/* 0DF4E4 7F0AA9B4 356B00A0 */ ori $t3, (0x007000A0 & 0xFFFF) # ori $t3, $t3, 0xa0 +/* 0DF4E8 7F0AA9B8 2409FFFF */ li $t1, -1 +/* 0DF4EC 7F0AA9BC 240A0001 */ li $t2, 1 +/* 0DF4F0 7F0AA9C0 AFAA0014 */ sw $t2, 0x14($sp) +/* 0DF4F4 7F0AA9C4 AFA90010 */ sw $t1, 0x10($sp) +/* 0DF4F8 7F0AA9C8 AFAB0018 */ sw $t3, 0x18($sp) +/* 0DF4FC 7F0AA9CC AFAC0024 */ sw $t4, 0x24($sp) +/* 0DF500 7F0AA9D0 02002025 */ move $a0, $s0 +/* 0DF504 7F0AA9D4 2405005A */ li $a1, 90 +/* 0DF508 7F0AA9D8 240600B9 */ li $a2, 185 +/* 0DF50C 7F0AA9DC AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF510 7F0AA9E0 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF514 7F0AA9E4 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF518 7F0AA9E8 AFA00028 */ sw $zero, 0x28($sp) +/* 0DF51C 7F0AA9EC 10000012 */ b .L7F0AAA38 +/* 0DF520 7F0AA9F0 00408025 */ move $s0, $v0 +.L7F0AA9F4: +/* 0DF524 7F0AA9F4 3C0D00AA */ lui $t5, (0x00AA00B0 >> 16) # lui $t5, 0xaa +/* 0DF528 7F0AA9F8 3C0F0030 */ lui $t7, (0x003000B0 >> 16) # lui $t7, 0x30 +/* 0DF52C 7F0AA9FC 35EF00B0 */ ori $t7, (0x003000B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0DF530 7F0AAA00 35AD00B0 */ ori $t5, (0x00AA00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0DF534 7F0AAA04 240EFFFF */ li $t6, -1 +/* 0DF538 7F0AAA08 AFAE0018 */ sw $t6, 0x18($sp) +/* 0DF53C 7F0AAA0C AFAD0010 */ sw $t5, 0x10($sp) +/* 0DF540 7F0AAA10 AFAF0024 */ sw $t7, 0x24($sp) +/* 0DF544 7F0AAA14 02002025 */ move $a0, $s0 +/* 0DF548 7F0AAA18 2405005A */ li $a1, 90 +/* 0DF54C 7F0AAA1C 240600B9 */ li $a2, 185 +/* 0DF550 7F0AAA20 AFA00014 */ sw $zero, 0x14($sp) +/* 0DF554 7F0AAA24 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF558 7F0AAA28 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF55C 7F0AAA2C 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF560 7F0AAA30 AFA00028 */ sw $zero, 0x28($sp) +/* 0DF564 7F0AAA34 00408025 */ move $s0, $v0 +.L7F0AAA38: +/* 0DF568 7F0AAA38 3C188008 */ lui $t8, %hi(pPlayer) +/* 0DF56C 7F0AAA3C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0DF570 7F0AAA40 24010004 */ li $at, 4 +/* 0DF574 7F0AAA44 8F022A58 */ lw $v0, 0x2a58($t8) +/* 0DF578 7F0AAA48 10410003 */ beq $v0, $at, .L7F0AAA58 +/* 0DF57C 7F0AAA4C 24010006 */ li $at, 6 +/* 0DF580 7F0AAA50 14410005 */ bne $v0, $at, .L7F0AAA68 +/* 0DF584 7F0AAA54 00000000 */ nop +.L7F0AAA58: +/* 0DF588 7F0AAA58 0FC30776 */ jal get_textptr_for_textID +/* 0DF58C 7F0AAA5C 3404AC05 */ li $a0, 44037 +/* 0DF590 7F0AAA60 10000004 */ b .L7F0AAA74 +/* 0DF594 7F0AAA64 00403825 */ move $a3, $v0 +.L7F0AAA68: +/* 0DF598 7F0AAA68 0FC30776 */ jal get_textptr_for_textID +/* 0DF59C 7F0AAA6C 3404AC06 */ li $a0, 44038 +/* 0DF5A0 7F0AAA70 00403825 */ move $a3, $v0 +.L7F0AAA74: +/* 0DF5A4 7F0AAA74 3C1900AA */ lui $t9, (0x00AA00B0 >> 16) # lui $t9, 0xaa +/* 0DF5A8 7F0AAA78 3C090030 */ lui $t1, (0x003000B0 >> 16) # lui $t1, 0x30 +/* 0DF5AC 7F0AAA7C 352900B0 */ ori $t1, (0x003000B0 & 0xFFFF) # ori $t1, $t1, 0xb0 +/* 0DF5B0 7F0AAA80 373900B0 */ ori $t9, (0x00AA00B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DF5B4 7F0AAA84 2408FFFF */ li $t0, -1 +/* 0DF5B8 7F0AAA88 AFA80018 */ sw $t0, 0x18($sp) +/* 0DF5BC 7F0AAA8C AFB90010 */ sw $t9, 0x10($sp) +/* 0DF5C0 7F0AAA90 AFA90024 */ sw $t1, 0x24($sp) +/* 0DF5C4 7F0AAA94 02002025 */ move $a0, $s0 +/* 0DF5C8 7F0AAA98 2405005A */ li $a1, 90 +/* 0DF5CC 7F0AAA9C 240600CB */ li $a2, 203 +/* 0DF5D0 7F0AAAA0 AFA00014 */ sw $zero, 0x14($sp) +/* 0DF5D4 7F0AAAA4 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF5D8 7F0AAAA8 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF5DC 7F0AAAAC 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF5E0 7F0AAAB0 AFA00028 */ sw $zero, 0x28($sp) +/* 0DF5E4 7F0AAAB4 00408025 */ move $s0, $v0 +/* 0DF5E8 7F0AAAB8 24040001 */ li $a0, 1 +/* 0DF5EC 7F0AAABC 0C0030C3 */ jal get_controller_buttons_held +/* 0DF5F0 7F0AAAC0 34058000 */ li $a1, 32768 +/* 0DF5F4 7F0AAAC4 10400018 */ beqz $v0, .L7F0AAB28 +/* 0DF5F8 7F0AAAC8 00000000 */ nop +/* 0DF5FC 7F0AAACC 0FC30776 */ jal get_textptr_for_textID +/* 0DF600 7F0AAAD0 3404AC03 */ li $a0, 44035 +/* 0DF604 7F0AAAD4 3C0C0070 */ lui $t4, (0x007000A0 >> 16) # lui $t4, 0x70 +/* 0DF608 7F0AAAD8 3C0D0030 */ lui $t5, (0x003000B0 >> 16) # lui $t5, 0x30 +/* 0DF60C 7F0AAADC 35AD00B0 */ ori $t5, (0x003000B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0DF610 7F0AAAE0 358C00A0 */ ori $t4, (0x007000A0 & 0xFFFF) # ori $t4, $t4, 0xa0 +/* 0DF614 7F0AAAE4 240AFFFF */ li $t2, -1 +/* 0DF618 7F0AAAE8 240B0001 */ li $t3, 1 +/* 0DF61C 7F0AAAEC 240E0001 */ li $t6, 1 +/* 0DF620 7F0AAAF0 AFAE0028 */ sw $t6, 0x28($sp) +/* 0DF624 7F0AAAF4 AFAB0014 */ sw $t3, 0x14($sp) +/* 0DF628 7F0AAAF8 AFAA0010 */ sw $t2, 0x10($sp) +/* 0DF62C 7F0AAAFC AFAC0018 */ sw $t4, 0x18($sp) +/* 0DF630 7F0AAB00 AFAD0024 */ sw $t5, 0x24($sp) +/* 0DF634 7F0AAB04 02002025 */ move $a0, $s0 +/* 0DF638 7F0AAB08 240500E6 */ li $a1, 230 +/* 0DF63C 7F0AAB0C 240600A7 */ li $a2, 167 +/* 0DF640 7F0AAB10 00403825 */ move $a3, $v0 +/* 0DF644 7F0AAB14 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF648 7F0AAB18 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF64C 7F0AAB1C AFA00020 */ sw $zero, 0x20($sp) +/* 0DF650 7F0AAB20 10000016 */ b .L7F0AAB7C +/* 0DF654 7F0AAB24 00408025 */ move $s0, $v0 +.L7F0AAB28: +/* 0DF658 7F0AAB28 0FC30776 */ jal get_textptr_for_textID +/* 0DF65C 7F0AAB2C 3404AC03 */ li $a0, 44035 +/* 0DF660 7F0AAB30 3C0F00AA */ lui $t7, (0x00AA00B0 >> 16) # lui $t7, 0xaa +/* 0DF664 7F0AAB34 3C190030 */ lui $t9, (0x003000B0 >> 16) # lui $t9, 0x30 +/* 0DF668 7F0AAB38 373900B0 */ ori $t9, (0x003000B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0DF66C 7F0AAB3C 35EF00B0 */ ori $t7, (0x00AA00B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0DF670 7F0AAB40 2418FFFF */ li $t8, -1 +/* 0DF674 7F0AAB44 24080001 */ li $t0, 1 +/* 0DF678 7F0AAB48 AFA80028 */ sw $t0, 0x28($sp) +/* 0DF67C 7F0AAB4C AFB80018 */ sw $t8, 0x18($sp) +/* 0DF680 7F0AAB50 AFAF0010 */ sw $t7, 0x10($sp) +/* 0DF684 7F0AAB54 AFB90024 */ sw $t9, 0x24($sp) +/* 0DF688 7F0AAB58 02002025 */ move $a0, $s0 +/* 0DF68C 7F0AAB5C 240500E6 */ li $a1, 230 +/* 0DF690 7F0AAB60 240600A7 */ li $a2, 167 +/* 0DF694 7F0AAB64 00403825 */ move $a3, $v0 +/* 0DF698 7F0AAB68 AFA00014 */ sw $zero, 0x14($sp) +/* 0DF69C 7F0AAB6C AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF6A0 7F0AAB70 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF6A4 7F0AAB74 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF6A8 7F0AAB78 00408025 */ move $s0, $v0 +.L7F0AAB7C: +/* 0DF6AC 7F0AAB7C 24040001 */ li $a0, 1 +/* 0DF6B0 7F0AAB80 0C0030C3 */ jal get_controller_buttons_held +/* 0DF6B4 7F0AAB84 24054000 */ li $a1, 16384 +/* 0DF6B8 7F0AAB88 10400018 */ beqz $v0, .L7F0AABEC +/* 0DF6BC 7F0AAB8C 00000000 */ nop +/* 0DF6C0 7F0AAB90 0FC30776 */ jal get_textptr_for_textID +/* 0DF6C4 7F0AAB94 3404AC02 */ li $a0, 44034 +/* 0DF6C8 7F0AAB98 3C0B0070 */ lui $t3, (0x007000A0 >> 16) # lui $t3, 0x70 +/* 0DF6CC 7F0AAB9C 3C0C0030 */ lui $t4, (0x003000B0 >> 16) # lui $t4, 0x30 +/* 0DF6D0 7F0AABA0 358C00B0 */ ori $t4, (0x003000B0 & 0xFFFF) # ori $t4, $t4, 0xb0 +/* 0DF6D4 7F0AABA4 356B00A0 */ ori $t3, (0x007000A0 & 0xFFFF) # ori $t3, $t3, 0xa0 +/* 0DF6D8 7F0AABA8 2409FFFF */ li $t1, -1 +/* 0DF6DC 7F0AABAC 240A0001 */ li $t2, 1 +/* 0DF6E0 7F0AABB0 240D0001 */ li $t5, 1 +/* 0DF6E4 7F0AABB4 AFAD0028 */ sw $t5, 0x28($sp) +/* 0DF6E8 7F0AABB8 AFAA0014 */ sw $t2, 0x14($sp) +/* 0DF6EC 7F0AABBC AFA90010 */ sw $t1, 0x10($sp) +/* 0DF6F0 7F0AABC0 AFAB0018 */ sw $t3, 0x18($sp) +/* 0DF6F4 7F0AABC4 AFAC0024 */ sw $t4, 0x24($sp) +/* 0DF6F8 7F0AABC8 02002025 */ move $a0, $s0 +/* 0DF6FC 7F0AABCC 240500E6 */ li $a1, 230 +/* 0DF700 7F0AABD0 24060095 */ li $a2, 149 +/* 0DF704 7F0AABD4 00403825 */ move $a3, $v0 +/* 0DF708 7F0AABD8 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF70C 7F0AABDC 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF710 7F0AABE0 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF714 7F0AABE4 10000016 */ b .L7F0AAC40 +/* 0DF718 7F0AABE8 00408025 */ move $s0, $v0 +.L7F0AABEC: +/* 0DF71C 7F0AABEC 0FC30776 */ jal get_textptr_for_textID +/* 0DF720 7F0AABF0 3404AC02 */ li $a0, 44034 +/* 0DF724 7F0AABF4 3C0E00AA */ lui $t6, (0x00AA00B0 >> 16) # lui $t6, 0xaa +/* 0DF728 7F0AABF8 3C180030 */ lui $t8, (0x003000B0 >> 16) # lui $t8, 0x30 +/* 0DF72C 7F0AABFC 371800B0 */ ori $t8, (0x003000B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0DF730 7F0AAC00 35CE00B0 */ ori $t6, (0x00AA00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0DF734 7F0AAC04 240FFFFF */ li $t7, -1 +/* 0DF738 7F0AAC08 24190001 */ li $t9, 1 +/* 0DF73C 7F0AAC0C AFB90028 */ sw $t9, 0x28($sp) +/* 0DF740 7F0AAC10 AFAF0018 */ sw $t7, 0x18($sp) +/* 0DF744 7F0AAC14 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DF748 7F0AAC18 AFB80024 */ sw $t8, 0x24($sp) +/* 0DF74C 7F0AAC1C 02002025 */ move $a0, $s0 +/* 0DF750 7F0AAC20 240500E6 */ li $a1, 230 +/* 0DF754 7F0AAC24 24060095 */ li $a2, 149 +/* 0DF758 7F0AAC28 00403825 */ move $a3, $v0 +/* 0DF75C 7F0AAC2C AFA00014 */ sw $zero, 0x14($sp) +/* 0DF760 7F0AAC30 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF764 7F0AAC34 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF768 7F0AAC38 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF76C 7F0AAC3C 00408025 */ move $s0, $v0 +.L7F0AAC40: +/* 0DF770 7F0AAC40 3C088008 */ lui $t0, %hi(pPlayer) +/* 0DF774 7F0AAC44 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0DF778 7F0AAC48 24010004 */ li $at, 4 +/* 0DF77C 7F0AAC4C 8D022A58 */ lw $v0, 0x2a58($t0) +/* 0DF780 7F0AAC50 10410003 */ beq $v0, $at, .L7F0AAC60 +/* 0DF784 7F0AAC54 24010005 */ li $at, 5 +/* 0DF788 7F0AAC58 14410005 */ bne $v0, $at, .L7F0AAC70 +/* 0DF78C 7F0AAC5C 00000000 */ nop +.L7F0AAC60: +/* 0DF790 7F0AAC60 0FC30776 */ jal get_textptr_for_textID +/* 0DF794 7F0AAC64 3404AC01 */ li $a0, 44033 +/* 0DF798 7F0AAC68 10000004 */ b .L7F0AAC7C +/* 0DF79C 7F0AAC6C 00403825 */ move $a3, $v0 +.L7F0AAC70: +/* 0DF7A0 7F0AAC70 0FC30776 */ jal get_textptr_for_textID +/* 0DF7A4 7F0AAC74 3404AC00 */ li $a0, 44032 +/* 0DF7A8 7F0AAC78 00403825 */ move $a3, $v0 +.L7F0AAC7C: +/* 0DF7AC 7F0AAC7C 24040001 */ li $a0, 1 +/* 0DF7B0 7F0AAC80 24052000 */ li $a1, 8192 +/* 0DF7B4 7F0AAC84 0C0030C3 */ jal get_controller_buttons_held +/* 0DF7B8 7F0AAC88 AFA70044 */ sw $a3, 0x44($sp) +/* 0DF7BC 7F0AAC8C 10400015 */ beqz $v0, .L7F0AACE4 +/* 0DF7C0 7F0AAC90 8FA70044 */ lw $a3, 0x44($sp) +/* 0DF7C4 7F0AAC94 3C0B0070 */ lui $t3, (0x007000A0 >> 16) # lui $t3, 0x70 +/* 0DF7C8 7F0AAC98 3C0C0030 */ lui $t4, (0x003000B0 >> 16) # lui $t4, 0x30 +/* 0DF7CC 7F0AAC9C 358C00B0 */ ori $t4, (0x003000B0 & 0xFFFF) # ori $t4, $t4, 0xb0 +/* 0DF7D0 7F0AACA0 356B00A0 */ ori $t3, (0x007000A0 & 0xFFFF) # ori $t3, $t3, 0xa0 +/* 0DF7D4 7F0AACA4 2409FFFF */ li $t1, -1 +/* 0DF7D8 7F0AACA8 240A0001 */ li $t2, 1 +/* 0DF7DC 7F0AACAC 240D0001 */ li $t5, 1 +/* 0DF7E0 7F0AACB0 AFAD0028 */ sw $t5, 0x28($sp) +/* 0DF7E4 7F0AACB4 AFAA0014 */ sw $t2, 0x14($sp) +/* 0DF7E8 7F0AACB8 AFA90010 */ sw $t1, 0x10($sp) +/* 0DF7EC 7F0AACBC AFAB0018 */ sw $t3, 0x18($sp) +/* 0DF7F0 7F0AACC0 AFAC0024 */ sw $t4, 0x24($sp) +/* 0DF7F4 7F0AACC4 02002025 */ move $a0, $s0 +/* 0DF7F8 7F0AACC8 240500E6 */ li $a1, 230 +/* 0DF7FC 7F0AACCC 240600B9 */ li $a2, 185 +/* 0DF800 7F0AACD0 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF804 7F0AACD4 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF808 7F0AACD8 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF80C 7F0AACDC 10000013 */ b .L7F0AAD2C +/* 0DF810 7F0AACE0 00408025 */ move $s0, $v0 +.L7F0AACE4: +/* 0DF814 7F0AACE4 3C0E00AA */ lui $t6, (0x00AA00B0 >> 16) # lui $t6, 0xaa +/* 0DF818 7F0AACE8 3C180030 */ lui $t8, (0x003000B0 >> 16) # lui $t8, 0x30 +/* 0DF81C 7F0AACEC 371800B0 */ ori $t8, (0x003000B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0DF820 7F0AACF0 35CE00B0 */ ori $t6, (0x00AA00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0DF824 7F0AACF4 240FFFFF */ li $t7, -1 +/* 0DF828 7F0AACF8 24190001 */ li $t9, 1 +/* 0DF82C 7F0AACFC AFB90028 */ sw $t9, 0x28($sp) +/* 0DF830 7F0AAD00 AFAF0018 */ sw $t7, 0x18($sp) +/* 0DF834 7F0AAD04 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DF838 7F0AAD08 AFB80024 */ sw $t8, 0x24($sp) +/* 0DF83C 7F0AAD0C 02002025 */ move $a0, $s0 +/* 0DF840 7F0AAD10 240500E6 */ li $a1, 230 +/* 0DF844 7F0AAD14 240600B9 */ li $a2, 185 +/* 0DF848 7F0AAD18 AFA00014 */ sw $zero, 0x14($sp) +/* 0DF84C 7F0AAD1C AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF850 7F0AAD20 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF854 7F0AAD24 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF858 7F0AAD28 00408025 */ move $s0, $v0 +.L7F0AAD2C: +/* 0DF85C 7F0AAD2C 3C088008 */ lui $t0, %hi(pPlayer) +/* 0DF860 7F0AAD30 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0DF864 7F0AAD34 24010004 */ li $at, 4 +/* 0DF868 7F0AAD38 8D022A58 */ lw $v0, 0x2a58($t0) +/* 0DF86C 7F0AAD3C 10410003 */ beq $v0, $at, .L7F0AAD4C +/* 0DF870 7F0AAD40 24010006 */ li $at, 6 +/* 0DF874 7F0AAD44 14410005 */ bne $v0, $at, .L7F0AAD5C +/* 0DF878 7F0AAD48 00000000 */ nop +.L7F0AAD4C: +/* 0DF87C 7F0AAD4C 0FC30776 */ jal get_textptr_for_textID +/* 0DF880 7F0AAD50 3404AC06 */ li $a0, 44038 +/* 0DF884 7F0AAD54 10000004 */ b .L7F0AAD68 +/* 0DF888 7F0AAD58 00403825 */ move $a3, $v0 +.L7F0AAD5C: +/* 0DF88C 7F0AAD5C 0FC30776 */ jal get_textptr_for_textID +/* 0DF890 7F0AAD60 3404AC05 */ li $a0, 44037 +/* 0DF894 7F0AAD64 00403825 */ move $a3, $v0 +.L7F0AAD68: +/* 0DF898 7F0AAD68 3C0900AA */ lui $t1, (0x00AA00B0 >> 16) # lui $t1, 0xaa +/* 0DF89C 7F0AAD6C 3C0B0030 */ lui $t3, (0x003000B0 >> 16) # lui $t3, 0x30 +/* 0DF8A0 7F0AAD70 356B00B0 */ ori $t3, (0x003000B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0DF8A4 7F0AAD74 352900B0 */ ori $t1, (0x00AA00B0 & 0xFFFF) # ori $t1, $t1, 0xb0 +/* 0DF8A8 7F0AAD78 240AFFFF */ li $t2, -1 +/* 0DF8AC 7F0AAD7C 240C0001 */ li $t4, 1 +/* 0DF8B0 7F0AAD80 AFAC0028 */ sw $t4, 0x28($sp) +/* 0DF8B4 7F0AAD84 AFAA0018 */ sw $t2, 0x18($sp) +/* 0DF8B8 7F0AAD88 AFA90010 */ sw $t1, 0x10($sp) +/* 0DF8BC 7F0AAD8C AFAB0024 */ sw $t3, 0x24($sp) +/* 0DF8C0 7F0AAD90 02002025 */ move $a0, $s0 +/* 0DF8C4 7F0AAD94 240500E6 */ li $a1, 230 +/* 0DF8C8 7F0AAD98 240600CB */ li $a2, 203 +/* 0DF8CC 7F0AAD9C AFA00014 */ sw $zero, 0x14($sp) +/* 0DF8D0 7F0AADA0 AFA0001C */ sw $zero, 0x1c($sp) +/* 0DF8D4 7F0AADA4 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0DF8D8 7F0AADA8 AFA00020 */ sw $zero, 0x20($sp) +/* 0DF8DC 7F0AADAC 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DF8E0 7F0AADB0 8FB00038 */ lw $s0, 0x38($sp) +/* 0DF8E4 7F0AADB4 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0DF8E8 7F0AADB8 03E00008 */ jr $ra +/* 0DF8EC 7F0AADBC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AADC0(void) { + +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.late_rodata +glabel D_80058550 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80058554 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80058558 +.word 0x43f78000 /*495.0*/ +glabel D_8005855C +.word 0x453b8000 /*3000.0*/ +glabel D_80058560 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80058564 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80058568 +.word 0xc3fc8000 /*-505.0*/ +glabel D_8005856C +.word 0x453b8000 /*3000.0*/ +.text +glabel sub_GAME_7F0AADC0 +/* 0DF8F0 7F0AADC0 27BDFAC0 */ addiu $sp, $sp, -0x540 +/* 0DF8F4 7F0AADC4 AFBF0034 */ sw $ra, 0x34($sp) +/* 0DF8F8 7F0AADC8 AFB00030 */ sw $s0, 0x30($sp) +/* 0DF8FC 7F0AADCC 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0DF900 7F0AADD0 00808025 */ move $s0, $a0 +/* 0DF904 7F0AADD4 3C0F8004 */ lui $t7, %hi(D_80040B5C) +/* 0DF908 7F0AADD8 AFA2053C */ sw $v0, 0x53c($sp) +/* 0DF90C 7F0AADDC 25EF0B5C */ addiu $t7, %lo(D_80040B5C) # addiu $t7, $t7, 0xb5c +/* 0DF910 7F0AADE0 8DE10000 */ lw $at, ($t7) +/* 0DF914 7F0AADE4 27AE0370 */ addiu $t6, $sp, 0x370 +/* 0DF918 7F0AADE8 8DE80004 */ lw $t0, 4($t7) +/* 0DF91C 7F0AADEC ADC10000 */ sw $at, ($t6) +/* 0DF920 7F0AADF0 8DE10008 */ lw $at, 8($t7) +/* 0DF924 7F0AADF4 3C0B8004 */ lui $t3, %hi(D_80040B68) +/* 0DF928 7F0AADF8 ADC80004 */ sw $t0, 4($t6) +/* 0DF92C 7F0AADFC ADC10008 */ sw $at, 8($t6) +/* 0DF930 7F0AAE00 24090001 */ li $t1, 1 +/* 0DF934 7F0AAE04 256B0B68 */ addiu $t3, %lo(D_80040B68) # addiu $t3, $t3, 0xb68 +/* 0DF938 7F0AAE08 A3A002E3 */ sb $zero, 0x2e3($sp) +/* 0DF93C 7F0AAE0C A3A902E2 */ sb $t1, 0x2e2($sp) +/* 0DF940 7F0AAE10 257900D8 */ addiu $t9, $t3, 0xd8 +/* 0DF944 7F0AAE14 27AA0204 */ addiu $t2, $sp, 0x204 +.L7F0AAE18: +/* 0DF948 7F0AAE18 8D610000 */ lw $at, ($t3) +/* 0DF94C 7F0AAE1C 256B000C */ addiu $t3, $t3, 0xc +/* 0DF950 7F0AAE20 254A000C */ addiu $t2, $t2, 0xc +/* 0DF954 7F0AAE24 AD41FFF4 */ sw $at, -0xc($t2) +/* 0DF958 7F0AAE28 8D61FFF8 */ lw $at, -8($t3) +/* 0DF95C 7F0AAE2C AD41FFF8 */ sw $at, -8($t2) +/* 0DF960 7F0AAE30 8D61FFFC */ lw $at, -4($t3) +/* 0DF964 7F0AAE34 1579FFF8 */ bne $t3, $t9, .L7F0AAE18 +/* 0DF968 7F0AAE38 AD41FFFC */ sw $at, -4($t2) +/* 0DF96C 7F0AAE3C 8D610000 */ lw $at, ($t3) +/* 0DF970 7F0AAE40 3C0E8004 */ lui $t6, %hi(D_80040BB4+0x90) +/* 0DF974 7F0AAE44 25CE0C44 */ addiu $t6, %lo(D_80040BB4+0x90) # addiu $t6, $t6, 0xc44 +/* 0DF978 7F0AAE48 25C900D8 */ addiu $t1, $t6, 0xd8 +/* 0DF97C 7F0AAE4C 27B80128 */ addiu $t8, $sp, 0x128 +/* 0DF980 7F0AAE50 AD410000 */ sw $at, ($t2) +.L7F0AAE54: +/* 0DF984 7F0AAE54 8DC10000 */ lw $at, ($t6) +/* 0DF988 7F0AAE58 25CE000C */ addiu $t6, $t6, 0xc +/* 0DF98C 7F0AAE5C 2718000C */ addiu $t8, $t8, 0xc +/* 0DF990 7F0AAE60 AF01FFF4 */ sw $at, -0xc($t8) +/* 0DF994 7F0AAE64 8DC1FFF8 */ lw $at, -8($t6) +/* 0DF998 7F0AAE68 AF01FFF8 */ sw $at, -8($t8) +/* 0DF99C 7F0AAE6C 8DC1FFFC */ lw $at, -4($t6) +/* 0DF9A0 7F0AAE70 15C9FFF8 */ bne $t6, $t1, .L7F0AAE54 +/* 0DF9A4 7F0AAE74 AF01FFFC */ sw $at, -4($t8) +/* 0DF9A8 7F0AAE78 8DC10000 */ lw $at, ($t6) +/* 0DF9AC 7F0AAE7C 3C0C8004 */ lui $t4, %hi(D_80040D20) +/* 0DF9B0 7F0AAE80 258C0D20 */ addiu $t4, %lo(D_80040D20) # addiu $t4, $t4, 0xd20 +/* 0DF9B4 7F0AAE84 258A00D8 */ addiu $t2, $t4, 0xd8 +/* 0DF9B8 7F0AAE88 27AD004C */ addiu $t5, $sp, 0x4c +/* 0DF9BC 7F0AAE8C AF010000 */ sw $at, ($t8) +.L7F0AAE90: +/* 0DF9C0 7F0AAE90 8D810000 */ lw $at, ($t4) +/* 0DF9C4 7F0AAE94 258C000C */ addiu $t4, $t4, 0xc +/* 0DF9C8 7F0AAE98 25AD000C */ addiu $t5, $t5, 0xc +/* 0DF9CC 7F0AAE9C ADA1FFF4 */ sw $at, -0xc($t5) +/* 0DF9D0 7F0AAEA0 8D81FFF8 */ lw $at, -8($t4) +/* 0DF9D4 7F0AAEA4 ADA1FFF8 */ sw $at, -8($t5) +/* 0DF9D8 7F0AAEA8 8D81FFFC */ lw $at, -4($t4) +/* 0DF9DC 7F0AAEAC 158AFFF8 */ bne $t4, $t2, .L7F0AAE90 +/* 0DF9E0 7F0AAEB0 ADA1FFFC */ sw $at, -4($t5) +/* 0DF9E4 7F0AAEB4 8D810000 */ lw $at, ($t4) +/* 0DF9E8 7F0AAEB8 3C058004 */ lui $a1, %hi(D_80040B2C) +/* 0DF9EC 7F0AAEBC 3C068004 */ lui $a2, %hi(D_80040B28) +/* 0DF9F0 7F0AAEC0 3C078004 */ lui $a3, %hi(D_80040B24) +/* 0DF9F4 7F0AAEC4 24E70B24 */ addiu $a3, %lo(D_80040B24) # addiu $a3, $a3, 0xb24 +/* 0DF9F8 7F0AAEC8 24C60B28 */ addiu $a2, %lo(D_80040B28) # addiu $a2, $a2, 0xb28 +/* 0DF9FC 7F0AAECC 24A50B2C */ addiu $a1, %lo(D_80040B2C) # addiu $a1, $a1, 0xb2c +/* 0DFA00 7F0AAED0 00002025 */ move $a0, $zero +/* 0DFA04 7F0AAED4 0FC2A5A1 */ jal sub_GAME_7F0A9684 +/* 0DFA08 7F0AAED8 ADA10000 */ sw $at, ($t5) +/* 0DFA0C 7F0AAEDC 0FC15FF4 */ jal matrix_4x4_set_identity +/* 0DFA10 7F0AAEE0 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0DFA14 7F0AAEE4 3C088005 */ lui $t0, %hi(D_80048498) +/* 0DFA18 7F0AAEE8 8D088498 */ lw $t0, %lo(D_80048498)($t0) +/* 0DFA1C 7F0AAEEC 3C018004 */ lui $at, %hi(D_80040B28) +/* 0DFA20 7F0AAEF0 C4240B28 */ lwc1 $f4, %lo(D_80040B28)($at) +/* 0DFA24 7F0AAEF4 44883000 */ mtc1 $t0, $f6 +/* 0DFA28 7F0AAEF8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0DFA2C 7F0AAEFC 44818000 */ mtc1 $at, $f16 +/* 0DFA30 7F0AAF00 46803220 */ cvt.s.w $f8, $f6 +/* 0DFA34 7F0AAF04 3C028004 */ lui $v0, %hi(D_80040B24) +/* 0DFA38 7F0AAF08 24420B24 */ addiu $v0, %lo(D_80040B24) # addiu $v0, $v0, 0xb24 +/* 0DFA3C 7F0AAF0C C4460000 */ lwc1 $f6, ($v0) +/* 0DFA40 7F0AAF10 46082282 */ mul.s $f10, $f4, $f8 +/* 0DFA44 7F0AAF14 00000000 */ nop +/* 0DFA48 7F0AAF18 46105482 */ mul.s $f18, $f10, $f16 +/* 0DFA4C 7F0AAF1C 46123100 */ add.s $f4, $f6, $f18 +/* 0DFA50 7F0AAF20 E4440000 */ swc1 $f4, ($v0) +/* 0DFA54 7F0AAF24 0FC29A8B */ jal sub_GAME_7F0A6A2C +/* 0DFA58 7F0AAF28 C44C0000 */ lwc1 $f12, ($v0) +/* 0DFA5C 7F0AAF2C 3C018004 */ lui $at, %hi(D_80040B24) +/* 0DFA60 7F0AAF30 E4200B24 */ swc1 $f0, %lo(D_80040B24)($at) +/* 0DFA64 7F0AAF34 C42C0B24 */ lwc1 $f12, %lo(D_80040B24)($at) +/* 0DFA68 7F0AAF38 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 0DFA6C 7F0AAF3C 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0DFA70 7F0AAF40 3C0F8004 */ lui $t7, %hi(watch_soundrelated_maybe) +/* 0DFA74 7F0AAF44 8DEF09A8 */ lw $t7, %lo(watch_soundrelated_maybe)($t7) +/* 0DFA78 7F0AAF48 11E00016 */ beqz $t7, .L7F0AAFA4 +/* 0DFA7C 7F0AAF4C 3C098004 */ lui $t1, %hi(D_80040998) +/* 0DFA80 7F0AAF50 8D290998 */ lw $t1, %lo(D_80040998)($t1) +/* 0DFA84 7F0AAF54 24010001 */ li $at, 1 +/* 0DFA88 7F0AAF58 15210012 */ bne $t1, $at, .L7F0AAFA4 +/* 0DFA8C 7F0AAF5C 00000000 */ nop +/* 0DFA90 7F0AAF60 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DFA94 7F0AAF64 00002025 */ move $a0, $zero +/* 0DFA98 7F0AAF68 44824000 */ mtc1 $v0, $f8 +/* 0DFA9C 7F0AAF6C 3C018004 */ lui $at, %hi(D_80040B20) +/* 0DFAA0 7F0AAF70 C42C0B20 */ lwc1 $f12, %lo(D_80040B20)($at) +/* 0DFAA4 7F0AAF74 468042A0 */ cvt.s.w $f10, $f8 +/* 0DFAA8 7F0AAF78 3C018006 */ lui $at, %hi(D_80058550) +/* 0DFAAC 7F0AAF7C C4308550 */ lwc1 $f16, %lo(D_80058550)($at) +/* 0DFAB0 7F0AAF80 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DFAB4 7F0AAF84 44819000 */ mtc1 $at, $f18 +/* 0DFAB8 7F0AAF88 3C064080 */ lui $a2, 0x4080 +/* 0DFABC 7F0AAF8C 46105182 */ mul.s $f6, $f10, $f16 +/* 0DFAC0 7F0AAF90 0FC2A571 */ jal sub_GAME_7F0A95C4 +/* 0DFAC4 7F0AAF94 46123383 */ div.s $f14, $f6, $f18 +/* 0DFAC8 7F0AAF98 3C018004 */ lui $at, %hi(D_80040B20) +/* 0DFACC 7F0AAF9C 10000008 */ b .L7F0AAFC0 +/* 0DFAD0 7F0AAFA0 E4200B20 */ swc1 $f0, %lo(D_80040B20)($at) +.L7F0AAFA4: +/* 0DFAD4 7F0AAFA4 3C018004 */ lui $at, %hi(D_80040B20) +/* 0DFAD8 7F0AAFA8 44807000 */ mtc1 $zero, $f14 +/* 0DFADC 7F0AAFAC C42C0B20 */ lwc1 $f12, %lo(D_80040B20)($at) +/* 0DFAE0 7F0AAFB0 0FC2A571 */ jal sub_GAME_7F0A95C4 +/* 0DFAE4 7F0AAFB4 3C064080 */ lui $a2, 0x4080 +/* 0DFAE8 7F0AAFB8 3C018004 */ lui $at, %hi(D_80040B20) +/* 0DFAEC 7F0AAFBC E4200B20 */ swc1 $f0, %lo(D_80040B20)($at) +.L7F0AAFC0: +/* 0DFAF0 7F0AAFC0 3C018004 */ lui $at, %hi(D_80040B20) +/* 0DFAF4 7F0AAFC4 C4240B20 */ lwc1 $f4, %lo(D_80040B20)($at) +/* 0DFAF8 7F0AAFC8 3C018006 */ lui $at, %hi(D_80058554) +/* 0DFAFC 7F0AAFCC C42A8554 */ lwc1 $f10, %lo(D_80058554)($at) +/* 0DFB00 7F0AAFD0 46002207 */ neg.s $f8, $f4 +/* 0DFB04 7F0AAFD4 27A5047C */ addiu $a1, $sp, 0x47c +/* 0DFB08 7F0AAFD8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0DFB0C 7F0AAFDC 460A4301 */ sub.s $f12, $f8, $f10 +/* 0DFB10 7F0AAFE0 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0DFB14 7F0AAFE4 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0DFB18 7F0AAFE8 0FC16032 */ jal matrix_4x4_multiply +/* 0DFB1C 7F0AAFEC 27A6043C */ addiu $a2, $sp, 0x43c +/* 0DFB20 7F0AAFF0 27A4043C */ addiu $a0, $sp, 0x43c +/* 0DFB24 7F0AAFF4 27A5047C */ addiu $a1, $sp, 0x47c +/* 0DFB28 7F0AAFF8 0FC16032 */ jal matrix_4x4_multiply +/* 0DFB2C 7F0AAFFC 27A603FC */ addiu $a2, $sp, 0x3fc +/* 0DFB30 7F0AB000 27A40370 */ addiu $a0, $sp, 0x370 +/* 0DFB34 7F0AB004 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 0DFB38 7F0AB008 27A5043C */ addiu $a1, $sp, 0x43c +/* 0DFB3C 7F0AB00C 27A4043C */ addiu $a0, $sp, 0x43c +/* 0DFB40 7F0AB010 27A503FC */ addiu $a1, $sp, 0x3fc +/* 0DFB44 7F0AB014 0FC16032 */ jal matrix_4x4_multiply +/* 0DFB48 7F0AB018 27A603BC */ addiu $a2, $sp, 0x3bc +/* 0DFB4C 7F0AB01C 0FC2935D */ jal controllerCheckDualControllerTypesAllowed +/* 0DFB50 7F0AB020 00000000 */ nop +/* 0DFB54 7F0AB024 10400018 */ beqz $v0, .L7F0AB088 +/* 0DFB58 7F0AB028 3C01C0A0 */ lui $at, 0xc0a0 +/* 0DFB5C 7F0AB02C 3C018006 */ lui $at, %hi(D_80058558) +/* 0DFB60 7F0AB030 C4208558 */ lwc1 $f0, %lo(D_80058558)($at) +/* 0DFB64 7F0AB034 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 0DFB68 7F0AB038 44816000 */ mtc1 $at, $f12 +/* 0DFB6C 7F0AB03C 44801000 */ mtc1 $zero, $f2 +/* 0DFB70 7F0AB040 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0DFB74 7F0AB044 44818000 */ mtc1 $at, $f16 +/* 0DFB78 7F0AB048 27AE0128 */ addiu $t6, $sp, 0x128 +/* 0DFB7C 7F0AB04C 3C06451C */ lui $a2, (0x451C4000 >> 16) # lui $a2, 0x451c +/* 0DFB80 7F0AB050 44050000 */ mfc1 $a1, $f0 +/* 0DFB84 7F0AB054 44076000 */ mfc1 $a3, $f12 +/* 0DFB88 7F0AB058 AFAE02E8 */ sw $t6, 0x2e8($sp) +/* 0DFB8C 7F0AB05C 34C64000 */ ori $a2, (0x451C4000 & 0xFFFF) # ori $a2, $a2, 0x4000 +/* 0DFB90 7F0AB060 27A4032C */ addiu $a0, $sp, 0x32c +/* 0DFB94 7F0AB064 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0DFB98 7F0AB068 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0DFB9C 7F0AB06C E7A20014 */ swc1 $f2, 0x14($sp) +/* 0DFBA0 7F0AB070 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0DFBA4 7F0AB074 E7A20020 */ swc1 $f2, 0x20($sp) +/* 0DFBA8 7F0AB078 0FC165A5 */ jal sub_GAME_7F059694 +/* 0DFBAC 7F0AB07C E7B00024 */ swc1 $f16, 0x24($sp) +/* 0DFBB0 7F0AB080 10000017 */ b .L7F0AB0E0 +/* 0DFBB4 7F0AB084 27A4032C */ addiu $a0, $sp, 0x32c +.L7F0AB088: +/* 0DFBB8 7F0AB088 44810000 */ mtc1 $at, $f0 +/* 0DFBBC 7F0AB08C 3C01C328 */ li $at, 0xC3280000 # -168.000000 +/* 0DFBC0 7F0AB090 44811000 */ mtc1 $at, $f2 +/* 0DFBC4 7F0AB094 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0DFBC8 7F0AB098 44814000 */ mtc1 $at, $f8 +/* 0DFBCC 7F0AB09C 44803000 */ mtc1 $zero, $f6 +/* 0DFBD0 7F0AB0A0 44809000 */ mtc1 $zero, $f18 +/* 0DFBD4 7F0AB0A4 44802000 */ mtc1 $zero, $f4 +/* 0DFBD8 7F0AB0A8 27B80204 */ addiu $t8, $sp, 0x204 +/* 0DFBDC 7F0AB0AC 44050000 */ mfc1 $a1, $f0 +/* 0DFBE0 7F0AB0B0 44071000 */ mfc1 $a3, $f2 +/* 0DFBE4 7F0AB0B4 AFB802E8 */ sw $t8, 0x2e8($sp) +/* 0DFBE8 7F0AB0B8 27A4032C */ addiu $a0, $sp, 0x32c +/* 0DFBEC 7F0AB0BC 3C0644FA */ lui $a2, 0x44fa +/* 0DFBF0 7F0AB0C0 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0DFBF4 7F0AB0C4 E7A20018 */ swc1 $f2, 0x18($sp) +/* 0DFBF8 7F0AB0C8 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0DFBFC 7F0AB0CC E7A60014 */ swc1 $f6, 0x14($sp) +/* 0DFC00 7F0AB0D0 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 0DFC04 7F0AB0D4 0FC165A5 */ jal sub_GAME_7F059694 +/* 0DFC08 7F0AB0D8 E7A40020 */ swc1 $f4, 0x20($sp) +/* 0DFC0C 7F0AB0DC 27A4032C */ addiu $a0, $sp, 0x32c +.L7F0AB0E0: +/* 0DFC10 7F0AB0E0 27A503BC */ addiu $a1, $sp, 0x3bc +/* 0DFC14 7F0AB0E4 0FC16032 */ jal matrix_4x4_multiply +/* 0DFC18 7F0AB0E8 27A6037C */ addiu $a2, $sp, 0x37c +/* 0DFC1C 7F0AB0EC 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0DFC20 7F0AB0F0 44815000 */ mtc1 $at, $f10 +/* 0DFC24 7F0AB0F4 3C018006 */ lui $at, %hi(D_8005855C) +/* 0DFC28 7F0AB0F8 C430855C */ lwc1 $f16, %lo(D_8005855C)($at) +/* 0DFC2C 7F0AB0FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DFC30 7F0AB100 44813000 */ mtc1 $at, $f6 +/* 0DFC34 7F0AB104 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 0DFC38 7F0AB108 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 0DFC3C 7F0AB10C 8FA4053C */ lw $a0, 0x53c($sp) +/* 0DFC40 7F0AB110 27A5036E */ addiu $a1, $sp, 0x36e +/* 0DFC44 7F0AB114 3C06424A */ lui $a2, 0x424a +/* 0DFC48 7F0AB118 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0DFC4C 7F0AB11C E7B00014 */ swc1 $f16, 0x14($sp) +/* 0DFC50 7F0AB120 0C003FAC */ jal guPerspective +/* 0DFC54 7F0AB124 E7A60018 */ swc1 $f6, 0x18($sp) +/* 0DFC58 7F0AB128 3C0B0103 */ lui $t3, (0x01030040 >> 16) # lui $t3, 0x103 +/* 0DFC5C 7F0AB12C 356B0040 */ ori $t3, (0x01030040 & 0xFFFF) # ori $t3, $t3, 0x40 +/* 0DFC60 7F0AB130 02001825 */ move $v1, $s0 +/* 0DFC64 7F0AB134 AC6B0000 */ sw $t3, ($v1) +/* 0DFC68 7F0AB138 AFA30048 */ sw $v1, 0x48($sp) +/* 0DFC6C 7F0AB13C 8FA4053C */ lw $a0, 0x53c($sp) +/* 0DFC70 7F0AB140 0C003A2C */ jal osVirtualToPhysical +/* 0DFC74 7F0AB144 26100008 */ addiu $s0, $s0, 8 +/* 0DFC78 7F0AB148 8FA30048 */ lw $v1, 0x48($sp) +/* 0DFC7C 7F0AB14C 02002025 */ move $a0, $s0 +/* 0DFC80 7F0AB150 0FC29BBA */ jal sub_GAME_7F0A6EE8 +/* 0DFC84 7F0AB154 AC620004 */ sw $v0, 4($v1) +/* 0DFC88 7F0AB158 3C038004 */ lui $v1, %hi(D_80040B04) +/* 0DFC8C 7F0AB15C 8C630B04 */ lw $v1, %lo(D_80040B04)($v1) +/* 0DFC90 7F0AB160 00408025 */ move $s0, $v0 +/* 0DFC94 7F0AB164 02002025 */ move $a0, $s0 +/* 0DFC98 7F0AB168 286100E0 */ slti $at, $v1, 0xe0 +/* 0DFC9C 7F0AB16C 1020000C */ beqz $at, .L7F0AB1A0 +/* 0DFCA0 7F0AB170 27A5037C */ addiu $a1, $sp, 0x37c +/* 0DFCA4 7F0AB174 8FB902E8 */ lw $t9, 0x2e8($sp) +/* 0DFCA8 7F0AB178 27AA02E3 */ addiu $t2, $sp, 0x2e3 +/* 0DFCAC 7F0AB17C AFAA0014 */ sw $t2, 0x14($sp) +/* 0DFCB0 7F0AB180 00402025 */ move $a0, $v0 +/* 0DFCB4 7F0AB184 27A5037C */ addiu $a1, $sp, 0x37c +/* 0DFCB8 7F0AB188 2466FFFA */ addiu $a2, $v1, -6 +/* 0DFCBC 7F0AB18C 24070001 */ li $a3, 1 +/* 0DFCC0 7F0AB190 0FC18D67 */ jal sub_GAME_7F06359C +/* 0DFCC4 7F0AB194 AFB90010 */ sw $t9, 0x10($sp) +/* 0DFCC8 7F0AB198 10000007 */ b .L7F0AB1B8 +/* 0DFCCC 7F0AB19C 00408025 */ move $s0, $v0 +.L7F0AB1A0: +/* 0DFCD0 7F0AB1A0 27AC02E3 */ addiu $t4, $sp, 0x2e3 +/* 0DFCD4 7F0AB1A4 AFAC0010 */ sw $t4, 0x10($sp) +/* 0DFCD8 7F0AB1A8 24060001 */ li $a2, 1 +/* 0DFCDC 7F0AB1AC 0FC190D9 */ jal sub_GAME_7F064364 +/* 0DFCE0 7F0AB1B0 8FA702E8 */ lw $a3, 0x2e8($sp) +/* 0DFCE4 7F0AB1B4 00408025 */ move $s0, $v0 +.L7F0AB1B8: +/* 0DFCE8 7F0AB1B8 0FC2935D */ jal controllerCheckDualControllerTypesAllowed +/* 0DFCEC 7F0AB1BC 00000000 */ nop +/* 0DFCF0 7F0AB1C0 104000A2 */ beqz $v0, .L7F0AB44C +/* 0DFCF4 7F0AB1C4 24040001 */ li $a0, 1 +/* 0DFCF8 7F0AB1C8 3C058004 */ lui $a1, %hi(D_80040B3C) +/* 0DFCFC 7F0AB1CC 3C068004 */ lui $a2, %hi(D_80040B38) +/* 0DFD00 7F0AB1D0 3C078004 */ lui $a3, %hi(D_80040B34) +/* 0DFD04 7F0AB1D4 24E70B34 */ addiu $a3, %lo(D_80040B34) # addiu $a3, $a3, 0xb34 +/* 0DFD08 7F0AB1D8 24C60B38 */ addiu $a2, %lo(D_80040B38) # addiu $a2, $a2, 0xb38 +/* 0DFD0C 7F0AB1DC 0FC2A5A1 */ jal sub_GAME_7F0A9684 +/* 0DFD10 7F0AB1E0 24A50B3C */ addiu $a1, %lo(D_80040B3C) # addiu $a1, $a1, 0xb3c +/* 0DFD14 7F0AB1E4 0FC15FF4 */ jal matrix_4x4_set_identity +/* 0DFD18 7F0AB1E8 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0DFD1C 7F0AB1EC 3C0D8005 */ lui $t5, %hi(D_80048498) +/* 0DFD20 7F0AB1F0 8DAD8498 */ lw $t5, %lo(D_80048498)($t5) +/* 0DFD24 7F0AB1F4 3C018004 */ lui $at, %hi(D_80040B38) +/* 0DFD28 7F0AB1F8 C4320B38 */ lwc1 $f18, %lo(D_80040B38)($at) +/* 0DFD2C 7F0AB1FC 448D2000 */ mtc1 $t5, $f4 +/* 0DFD30 7F0AB200 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0DFD34 7F0AB204 44818000 */ mtc1 $at, $f16 +/* 0DFD38 7F0AB208 46802220 */ cvt.s.w $f8, $f4 +/* 0DFD3C 7F0AB20C 3C028004 */ lui $v0, %hi(D_80040B34) +/* 0DFD40 7F0AB210 24420B34 */ addiu $v0, %lo(D_80040B34) # addiu $v0, $v0, 0xb34 +/* 0DFD44 7F0AB214 C4440000 */ lwc1 $f4, ($v0) +/* 0DFD48 7F0AB218 46089282 */ mul.s $f10, $f18, $f8 +/* 0DFD4C 7F0AB21C 00000000 */ nop +/* 0DFD50 7F0AB220 46105182 */ mul.s $f6, $f10, $f16 +/* 0DFD54 7F0AB224 46062480 */ add.s $f18, $f4, $f6 +/* 0DFD58 7F0AB228 E4520000 */ swc1 $f18, ($v0) +/* 0DFD5C 7F0AB22C 0FC29A8B */ jal sub_GAME_7F0A6A2C +/* 0DFD60 7F0AB230 C44C0000 */ lwc1 $f12, ($v0) +/* 0DFD64 7F0AB234 3C018004 */ lui $at, %hi(D_80040B34) +/* 0DFD68 7F0AB238 E4200B34 */ swc1 $f0, %lo(D_80040B34)($at) +/* 0DFD6C 7F0AB23C C42C0B34 */ lwc1 $f12, %lo(D_80040B34)($at) +/* 0DFD70 7F0AB240 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 0DFD74 7F0AB244 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0DFD78 7F0AB248 3C088004 */ lui $t0, %hi(watch_soundrelated_maybe) +/* 0DFD7C 7F0AB24C 8D0809A8 */ lw $t0, %lo(watch_soundrelated_maybe)($t0) +/* 0DFD80 7F0AB250 11000016 */ beqz $t0, .L7F0AB2AC +/* 0DFD84 7F0AB254 3C0F8004 */ lui $t7, %hi(D_80040998) +/* 0DFD88 7F0AB258 8DEF0998 */ lw $t7, %lo(D_80040998)($t7) +/* 0DFD8C 7F0AB25C 24010001 */ li $at, 1 +/* 0DFD90 7F0AB260 15E10012 */ bne $t7, $at, .L7F0AB2AC +/* 0DFD94 7F0AB264 00000000 */ nop +/* 0DFD98 7F0AB268 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DFD9C 7F0AB26C 24040001 */ li $a0, 1 +/* 0DFDA0 7F0AB270 44824000 */ mtc1 $v0, $f8 +/* 0DFDA4 7F0AB274 3C018004 */ lui $at, %hi(D_80040B30) +/* 0DFDA8 7F0AB278 C42C0B30 */ lwc1 $f12, %lo(D_80040B30)($at) +/* 0DFDAC 7F0AB27C 468042A0 */ cvt.s.w $f10, $f8 +/* 0DFDB0 7F0AB280 3C018006 */ lui $at, %hi(D_80058560) +/* 0DFDB4 7F0AB284 C4308560 */ lwc1 $f16, %lo(D_80058560)($at) +/* 0DFDB8 7F0AB288 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DFDBC 7F0AB28C 44813000 */ mtc1 $at, $f6 +/* 0DFDC0 7F0AB290 3C064080 */ lui $a2, 0x4080 +/* 0DFDC4 7F0AB294 46105102 */ mul.s $f4, $f10, $f16 +/* 0DFDC8 7F0AB298 0FC2A571 */ jal sub_GAME_7F0A95C4 +/* 0DFDCC 7F0AB29C 46062383 */ div.s $f14, $f4, $f6 +/* 0DFDD0 7F0AB2A0 3C018004 */ lui $at, %hi(D_80040B30) +/* 0DFDD4 7F0AB2A4 10000008 */ b .L7F0AB2C8 +/* 0DFDD8 7F0AB2A8 E4200B30 */ swc1 $f0, %lo(D_80040B30)($at) +.L7F0AB2AC: +/* 0DFDDC 7F0AB2AC 3C018004 */ lui $at, %hi(D_80040B30) +/* 0DFDE0 7F0AB2B0 44807000 */ mtc1 $zero, $f14 +/* 0DFDE4 7F0AB2B4 C42C0B30 */ lwc1 $f12, %lo(D_80040B30)($at) +/* 0DFDE8 7F0AB2B8 0FC2A571 */ jal sub_GAME_7F0A95C4 +/* 0DFDEC 7F0AB2BC 3C064080 */ lui $a2, 0x4080 +/* 0DFDF0 7F0AB2C0 3C018004 */ lui $at, %hi(D_80040B30) +/* 0DFDF4 7F0AB2C4 E4200B30 */ swc1 $f0, %lo(D_80040B30)($at) +.L7F0AB2C8: +/* 0DFDF8 7F0AB2C8 3C018004 */ lui $at, %hi(D_80040B30) +/* 0DFDFC 7F0AB2CC C4320B30 */ lwc1 $f18, %lo(D_80040B30)($at) +/* 0DFE00 7F0AB2D0 3C018006 */ lui $at, %hi(D_80058564) +/* 0DFE04 7F0AB2D4 C42A8564 */ lwc1 $f10, %lo(D_80058564)($at) +/* 0DFE08 7F0AB2D8 46009207 */ neg.s $f8, $f18 +/* 0DFE0C 7F0AB2DC 27A5047C */ addiu $a1, $sp, 0x47c +/* 0DFE10 7F0AB2E0 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0DFE14 7F0AB2E4 460A4301 */ sub.s $f12, $f8, $f10 +/* 0DFE18 7F0AB2E8 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0DFE1C 7F0AB2EC 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0DFE20 7F0AB2F0 0FC16032 */ jal matrix_4x4_multiply +/* 0DFE24 7F0AB2F4 27A6043C */ addiu $a2, $sp, 0x43c +/* 0DFE28 7F0AB2F8 27A4043C */ addiu $a0, $sp, 0x43c +/* 0DFE2C 7F0AB2FC 27A5047C */ addiu $a1, $sp, 0x47c +/* 0DFE30 7F0AB300 0FC16032 */ jal matrix_4x4_multiply +/* 0DFE34 7F0AB304 27A603FC */ addiu $a2, $sp, 0x3fc +/* 0DFE38 7F0AB308 27A40370 */ addiu $a0, $sp, 0x370 +/* 0DFE3C 7F0AB30C 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 0DFE40 7F0AB310 27A5043C */ addiu $a1, $sp, 0x43c +/* 0DFE44 7F0AB314 27A4043C */ addiu $a0, $sp, 0x43c +/* 0DFE48 7F0AB318 27A503FC */ addiu $a1, $sp, 0x3fc +/* 0DFE4C 7F0AB31C 0FC16032 */ jal matrix_4x4_multiply +/* 0DFE50 7F0AB320 27A603BC */ addiu $a2, $sp, 0x3bc +/* 0DFE54 7F0AB324 3C018006 */ lui $at, %hi(D_80058568) +/* 0DFE58 7F0AB328 C4208568 */ lwc1 $f0, %lo(D_80058568)($at) +/* 0DFE5C 7F0AB32C 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 0DFE60 7F0AB330 44801000 */ mtc1 $zero, $f2 +/* 0DFE64 7F0AB334 44818000 */ mtc1 $at, $f16 +/* 0DFE68 7F0AB338 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0DFE6C 7F0AB33C 44812000 */ mtc1 $at, $f4 +/* 0DFE70 7F0AB340 3C06451C */ lui $a2, (0x451C4000 >> 16) # lui $a2, 0x451c +/* 0DFE74 7F0AB344 44050000 */ mfc1 $a1, $f0 +/* 0DFE78 7F0AB348 34C64000 */ ori $a2, (0x451C4000 & 0xFFFF) # ori $a2, $a2, 0x4000 +/* 0DFE7C 7F0AB34C 27A402EC */ addiu $a0, $sp, 0x2ec +/* 0DFE80 7F0AB350 3C074200 */ lui $a3, 0x4200 +/* 0DFE84 7F0AB354 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0DFE88 7F0AB358 E7A20014 */ swc1 $f2, 0x14($sp) +/* 0DFE8C 7F0AB35C E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0DFE90 7F0AB360 E7A20020 */ swc1 $f2, 0x20($sp) +/* 0DFE94 7F0AB364 E7B00018 */ swc1 $f16, 0x18($sp) +/* 0DFE98 7F0AB368 0FC165A5 */ jal sub_GAME_7F059694 +/* 0DFE9C 7F0AB36C E7A40024 */ swc1 $f4, 0x24($sp) +/* 0DFEA0 7F0AB370 27A402EC */ addiu $a0, $sp, 0x2ec +/* 0DFEA4 7F0AB374 27A503BC */ addiu $a1, $sp, 0x3bc +/* 0DFEA8 7F0AB378 0FC16032 */ jal matrix_4x4_multiply +/* 0DFEAC 7F0AB37C 27A6037C */ addiu $a2, $sp, 0x37c +/* 0DFEB0 7F0AB380 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0DFEB4 7F0AB384 44813000 */ mtc1 $at, $f6 +/* 0DFEB8 7F0AB388 3C018006 */ lui $at, %hi(D_8005856C) +/* 0DFEBC 7F0AB38C C432856C */ lwc1 $f18, %lo(D_8005856C)($at) +/* 0DFEC0 7F0AB390 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DFEC4 7F0AB394 44814000 */ mtc1 $at, $f8 +/* 0DFEC8 7F0AB398 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 0DFECC 7F0AB39C 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 0DFED0 7F0AB3A0 8FA4053C */ lw $a0, 0x53c($sp) +/* 0DFED4 7F0AB3A4 27A5036E */ addiu $a1, $sp, 0x36e +/* 0DFED8 7F0AB3A8 3C06424A */ lui $a2, 0x424a +/* 0DFEDC 7F0AB3AC E7A60010 */ swc1 $f6, 0x10($sp) +/* 0DFEE0 7F0AB3B0 E7B20014 */ swc1 $f18, 0x14($sp) +/* 0DFEE4 7F0AB3B4 0C003FAC */ jal guPerspective +/* 0DFEE8 7F0AB3B8 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0DFEEC 7F0AB3BC 3C090103 */ lui $t1, (0x01030040 >> 16) # lui $t1, 0x103 +/* 0DFEF0 7F0AB3C0 35290040 */ ori $t1, (0x01030040 & 0xFFFF) # ori $t1, $t1, 0x40 +/* 0DFEF4 7F0AB3C4 02001825 */ move $v1, $s0 +/* 0DFEF8 7F0AB3C8 AC690000 */ sw $t1, ($v1) +/* 0DFEFC 7F0AB3CC AFA30044 */ sw $v1, 0x44($sp) +/* 0DFF00 7F0AB3D0 8FA4053C */ lw $a0, 0x53c($sp) +/* 0DFF04 7F0AB3D4 0C003A2C */ jal osVirtualToPhysical +/* 0DFF08 7F0AB3D8 26100008 */ addiu $s0, $s0, 8 +/* 0DFF0C 7F0AB3DC 8FA30044 */ lw $v1, 0x44($sp) +/* 0DFF10 7F0AB3E0 02002025 */ move $a0, $s0 +/* 0DFF14 7F0AB3E4 0FC29BBA */ jal sub_GAME_7F0A6EE8 +/* 0DFF18 7F0AB3E8 AC620004 */ sw $v0, 4($v1) +/* 0DFF1C 7F0AB3EC 3C038004 */ lui $v1, %hi(D_80040B04) +/* 0DFF20 7F0AB3F0 8C630B04 */ lw $v1, %lo(D_80040B04)($v1) +/* 0DFF24 7F0AB3F4 00408025 */ move $s0, $v0 +/* 0DFF28 7F0AB3F8 02002025 */ move $a0, $s0 +/* 0DFF2C 7F0AB3FC 286100E0 */ slti $at, $v1, 0xe0 +/* 0DFF30 7F0AB400 1020000C */ beqz $at, .L7F0AB434 +/* 0DFF34 7F0AB404 27A5037C */ addiu $a1, $sp, 0x37c +/* 0DFF38 7F0AB408 27AE004C */ addiu $t6, $sp, 0x4c +/* 0DFF3C 7F0AB40C 27B802E2 */ addiu $t8, $sp, 0x2e2 +/* 0DFF40 7F0AB410 AFB80014 */ sw $t8, 0x14($sp) +/* 0DFF44 7F0AB414 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DFF48 7F0AB418 00402025 */ move $a0, $v0 +/* 0DFF4C 7F0AB41C 27A5037C */ addiu $a1, $sp, 0x37c +/* 0DFF50 7F0AB420 2466FFFA */ addiu $a2, $v1, -6 +/* 0DFF54 7F0AB424 0FC18D67 */ jal sub_GAME_7F06359C +/* 0DFF58 7F0AB428 24070001 */ li $a3, 1 +/* 0DFF5C 7F0AB42C 10000007 */ b .L7F0AB44C +/* 0DFF60 7F0AB430 00408025 */ move $s0, $v0 +.L7F0AB434: +/* 0DFF64 7F0AB434 27AB02E2 */ addiu $t3, $sp, 0x2e2 +/* 0DFF68 7F0AB438 AFAB0010 */ sw $t3, 0x10($sp) +/* 0DFF6C 7F0AB43C 24060001 */ li $a2, 1 +/* 0DFF70 7F0AB440 0FC190D9 */ jal sub_GAME_7F064364 +/* 0DFF74 7F0AB444 27A7004C */ addiu $a3, $sp, 0x4c +/* 0DFF78 7F0AB448 00408025 */ move $s0, $v0 +.L7F0AB44C: +/* 0DFF7C 7F0AB44C 0FC2935D */ jal controllerCheckDualControllerTypesAllowed +/* 0DFF80 7F0AB450 00000000 */ nop +/* 0DFF84 7F0AB454 10400005 */ beqz $v0, .L7F0AB46C +/* 0DFF88 7F0AB458 00000000 */ nop +/* 0DFF8C 7F0AB45C 0FC2A9F2 */ jal sub_GAME_7F0AA7C8 +/* 0DFF90 7F0AB460 02002025 */ move $a0, $s0 +/* 0DFF94 7F0AB464 10000004 */ b .L7F0AB478 +/* 0DFF98 7F0AB468 00408025 */ move $s0, $v0 +.L7F0AB46C: +/* 0DFF9C 7F0AB46C 0FC2A6AE */ jal sub_GAME_7F0A9AB8 +/* 0DFFA0 7F0AB470 02002025 */ move $a0, $s0 +/* 0DFFA4 7F0AB474 00408025 */ move $s0, $v0 +.L7F0AB478: +/* 0DFFA8 7F0AB478 8FBF0034 */ lw $ra, 0x34($sp) +/* 0DFFAC 7F0AB47C 02001025 */ move $v0, $s0 +/* 0DFFB0 7F0AB480 8FB00030 */ lw $s0, 0x30($sp) +/* 0DFFB4 7F0AB484 03E00008 */ jr $ra +/* 0DFFB8 7F0AB488 27BD0540 */ addiu $sp, $sp, 0x540 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_80058550 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80058554 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80058558 +.word 0x43f78000 /*495.0*/ +glabel D_8005855C +.word 0x453b8000 /*3000.0*/ +glabel D_80058560 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80058564 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80058568 +.word 0xc3fc8000 /*-505.0*/ +glabel D_8005856C +.word 0x453b8000 /*3000.0*/ +.text +glabel sub_GAME_7F0AADC0 +/* 0E04F0 7F0AB980 27BDFAC0 */ addiu $sp, $sp, -0x540 +/* 0E04F4 7F0AB984 AFBF0034 */ sw $ra, 0x34($sp) +/* 0E04F8 7F0AB988 AFB00030 */ sw $s0, 0x30($sp) +/* 0E04FC 7F0AB98C 0FC2F8A4 */ jal sub_GAME_7F0BD6E0 +/* 0E0500 7F0AB990 00808025 */ move $s0, $a0 +/* 0E0504 7F0AB994 3C0F8004 */ lui $t7, %hi(D_80040B5C) # $t7, 0x8004 +/* 0E0508 7F0AB998 AFA2053C */ sw $v0, 0x53c($sp) +/* 0E050C 7F0AB99C 25EF0B8C */ addiu $t7, %lo(D_80040B5C) # addiu $t7, $t7, 0xb8c +/* 0E0510 7F0AB9A0 8DE10000 */ lw $at, ($t7) +/* 0E0514 7F0AB9A4 27AE0370 */ addiu $t6, $sp, 0x370 +/* 0E0518 7F0AB9A8 8DE80004 */ lw $t0, 4($t7) +/* 0E051C 7F0AB9AC ADC10000 */ sw $at, ($t6) +/* 0E0520 7F0AB9B0 8DE10008 */ lw $at, 8($t7) +/* 0E0524 7F0AB9B4 3C0B8004 */ lui $t3, %hi(D_80040B68) # $t3, 0x8004 +/* 0E0528 7F0AB9B8 ADC80004 */ sw $t0, 4($t6) +/* 0E052C 7F0AB9BC ADC10008 */ sw $at, 8($t6) +/* 0E0530 7F0AB9C0 24090001 */ li $t1, 1 +/* 0E0534 7F0AB9C4 256B0B98 */ addiu $t3, %lo(D_80040B68) # addiu $t3, $t3, 0xb98 +/* 0E0538 7F0AB9C8 A3A002E3 */ sb $zero, 0x2e3($sp) +/* 0E053C 7F0AB9CC A3A902E2 */ sb $t1, 0x2e2($sp) +/* 0E0540 7F0AB9D0 257900D8 */ addiu $t9, $t3, 0xd8 +/* 0E0544 7F0AB9D4 27AA0204 */ addiu $t2, $sp, 0x204 +.Ljp7F0AB9D8: +/* 0E0548 7F0AB9D8 8D610000 */ lw $at, ($t3) +/* 0E054C 7F0AB9DC 256B000C */ addiu $t3, $t3, 0xc +/* 0E0550 7F0AB9E0 254A000C */ addiu $t2, $t2, 0xc +/* 0E0554 7F0AB9E4 AD41FFF4 */ sw $at, -0xc($t2) +/* 0E0558 7F0AB9E8 8D61FFF8 */ lw $at, -8($t3) +/* 0E055C 7F0AB9EC AD41FFF8 */ sw $at, -8($t2) +/* 0E0560 7F0AB9F0 8D61FFFC */ lw $at, -4($t3) +/* 0E0564 7F0AB9F4 1579FFF8 */ bne $t3, $t9, .Ljp7F0AB9D8 +/* 0E0568 7F0AB9F8 AD41FFFC */ sw $at, -4($t2) +/* 0E056C 7F0AB9FC 8D610000 */ lw $at, ($t3) +/* 0E0570 7F0ABA00 3C0E8004 */ lui $t6, %hi(D_80040BB4+0x90) # $t6, 0x8004 +/* 0E0574 7F0ABA04 25CE0C74 */ addiu $t6, %lo(D_80040BB4+0x90) # addiu $t6, $t6, 0xc74 +/* 0E0578 7F0ABA08 25C900D8 */ addiu $t1, $t6, 0xd8 +/* 0E057C 7F0ABA0C 27B80128 */ addiu $t8, $sp, 0x128 +/* 0E0580 7F0ABA10 AD410000 */ sw $at, ($t2) +.Ljp7F0ABA14: +/* 0E0584 7F0ABA14 8DC10000 */ lw $at, ($t6) +/* 0E0588 7F0ABA18 25CE000C */ addiu $t6, $t6, 0xc +/* 0E058C 7F0ABA1C 2718000C */ addiu $t8, $t8, 0xc +/* 0E0590 7F0ABA20 AF01FFF4 */ sw $at, -0xc($t8) +/* 0E0594 7F0ABA24 8DC1FFF8 */ lw $at, -8($t6) +/* 0E0598 7F0ABA28 AF01FFF8 */ sw $at, -8($t8) +/* 0E059C 7F0ABA2C 8DC1FFFC */ lw $at, -4($t6) +/* 0E05A0 7F0ABA30 15C9FFF8 */ bne $t6, $t1, .Ljp7F0ABA14 +/* 0E05A4 7F0ABA34 AF01FFFC */ sw $at, -4($t8) +/* 0E05A8 7F0ABA38 8DC10000 */ lw $at, ($t6) +/* 0E05AC 7F0ABA3C 3C0C8004 */ lui $t4, %hi(D_80040D20) # $t4, 0x8004 +/* 0E05B0 7F0ABA40 258C0D50 */ addiu $t4, %lo(D_80040D20) # addiu $t4, $t4, 0xd50 +/* 0E05B4 7F0ABA44 258A00D8 */ addiu $t2, $t4, 0xd8 +/* 0E05B8 7F0ABA48 27AD004C */ addiu $t5, $sp, 0x4c +/* 0E05BC 7F0ABA4C AF010000 */ sw $at, ($t8) +.Ljp7F0ABA50: +/* 0E05C0 7F0ABA50 8D810000 */ lw $at, ($t4) +/* 0E05C4 7F0ABA54 258C000C */ addiu $t4, $t4, 0xc +/* 0E05C8 7F0ABA58 25AD000C */ addiu $t5, $t5, 0xc +/* 0E05CC 7F0ABA5C ADA1FFF4 */ sw $at, -0xc($t5) +/* 0E05D0 7F0ABA60 8D81FFF8 */ lw $at, -8($t4) +/* 0E05D4 7F0ABA64 ADA1FFF8 */ sw $at, -8($t5) +/* 0E05D8 7F0ABA68 8D81FFFC */ lw $at, -4($t4) +/* 0E05DC 7F0ABA6C 158AFFF8 */ bne $t4, $t2, .Ljp7F0ABA50 +/* 0E05E0 7F0ABA70 ADA1FFFC */ sw $at, -4($t5) +/* 0E05E4 7F0ABA74 8D810000 */ lw $at, ($t4) +/* 0E05E8 7F0ABA78 3C058004 */ lui $a1, %hi(D_80040B2C) # $a1, 0x8004 +/* 0E05EC 7F0ABA7C 3C068004 */ lui $a2, %hi(D_80040B28) # $a2, 0x8004 +/* 0E05F0 7F0ABA80 3C078004 */ lui $a3, %hi(D_80040B24) # $a3, 0x8004 +/* 0E05F4 7F0ABA84 24E70B54 */ addiu $a3, %lo(D_80040B24) # addiu $a3, $a3, 0xb54 +/* 0E05F8 7F0ABA88 24C60B58 */ addiu $a2, %lo(D_80040B28) # addiu $a2, $a2, 0xb58 +/* 0E05FC 7F0ABA8C 24A50B5C */ addiu $a1, %lo(D_80040B2C) # addiu $a1, $a1, 0xb5c +/* 0E0600 7F0ABA90 00002025 */ move $a0, $zero +/* 0E0604 7F0ABA94 0FC2A891 */ jal sub_GAME_7F0A9684 +/* 0E0608 7F0ABA98 ADA10000 */ sw $at, ($t5) +/* 0E060C 7F0ABA9C 0FC1613C */ jal matrix_4x4_set_identity +/* 0E0610 7F0ABAA0 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0E0614 7F0ABAA4 3C018004 */ lui $at, %hi(D_80040B28) # $at, 0x8004 +/* 0E0618 7F0ABAA8 C4240B58 */ lwc1 $f4, %lo(D_80040B28)($at) +/* 0E061C 7F0ABAAC 3C018005 */ lui $at, %hi(jpD_800484D0) # $at, 0x8005 +/* 0E0620 7F0ABAB0 C42684D0 */ lwc1 $f6, %lo(jpD_800484D0)($at) +/* 0E0624 7F0ABAB4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0E0628 7F0ABAB8 44815000 */ mtc1 $at, $f10 +/* 0E062C 7F0ABABC 46062202 */ mul.s $f8, $f4, $f6 +/* 0E0630 7F0ABAC0 3C028004 */ lui $v0, %hi(D_80040B24) # $v0, 0x8004 +/* 0E0634 7F0ABAC4 24420B54 */ addiu $v0, %lo(D_80040B24) # addiu $v0, $v0, 0xb54 +/* 0E0638 7F0ABAC8 C4520000 */ lwc1 $f18, ($v0) +/* 0E063C 7F0ABACC 460A4402 */ mul.s $f16, $f8, $f10 +/* 0E0640 7F0ABAD0 46109100 */ add.s $f4, $f18, $f16 +/* 0E0644 7F0ABAD4 E4440000 */ swc1 $f4, ($v0) +/* 0E0648 7F0ABAD8 0FC29D73 */ jal sub_GAME_7F0A6A2C +/* 0E064C 7F0ABADC C44C0000 */ lwc1 $f12, ($v0) +/* 0E0650 7F0ABAE0 3C018004 */ lui $at, %hi(D_80040B24) # $at, 0x8004 +/* 0E0654 7F0ABAE4 E4200B54 */ swc1 $f0, %lo(D_80040B24)($at) +/* 0E0658 7F0ABAE8 C42C0B54 */ lwc1 $f12, %lo(D_80040B24)($at) +/* 0E065C 7F0ABAEC 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 0E0660 7F0ABAF0 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0E0664 7F0ABAF4 3C088004 */ lui $t0, %hi(watch_soundrelated_maybe) # $t0, 0x8004 +/* 0E0668 7F0ABAF8 8D0809D8 */ lw $t0, %lo(watch_soundrelated_maybe)($t0) +/* 0E066C 7F0ABAFC 11000016 */ beqz $t0, .Ljp7F0ABB58 +/* 0E0670 7F0ABB00 3C0F8004 */ lui $t7, %hi(D_80040998) # $t7, 0x8004 +/* 0E0674 7F0ABB04 8DEF09C8 */ lw $t7, %lo(D_80040998)($t7) +/* 0E0678 7F0ABB08 24010001 */ li $at, 1 +/* 0E067C 7F0ABB0C 15E10012 */ bne $t7, $at, .Ljp7F0ABB58 +/* 0E0680 7F0ABB10 00000000 */ nop +/* 0E0684 7F0ABB14 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 0E0688 7F0ABB18 00002025 */ move $a0, $zero +/* 0E068C 7F0ABB1C 44823000 */ mtc1 $v0, $f6 +/* 0E0690 7F0ABB20 3C018004 */ lui $at, %hi(D_80040B20) # $at, 0x8004 +/* 0E0694 7F0ABB24 C42C0B50 */ lwc1 $f12, %lo(D_80040B20)($at) +/* 0E0698 7F0ABB28 46803220 */ cvt.s.w $f8, $f6 +/* 0E069C 7F0ABB2C 3C018006 */ lui $at, %hi(D_80058550) # $at, 0x8006 +/* 0E06A0 7F0ABB30 C42A8590 */ lwc1 $f10, %lo(D_80058550)($at) +/* 0E06A4 7F0ABB34 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0E06A8 7F0ABB38 44818000 */ mtc1 $at, $f16 +/* 0E06AC 7F0ABB3C 3C064080 */ lui $a2, 0x4080 +/* 0E06B0 7F0ABB40 460A4482 */ mul.s $f18, $f8, $f10 +/* 0E06B4 7F0ABB44 0FC2A861 */ jal sub_GAME_7F0A95C4 +/* 0E06B8 7F0ABB48 46109383 */ div.s $f14, $f18, $f16 +/* 0E06BC 7F0ABB4C 3C018004 */ lui $at, %hi(D_80040B20) # $at, 0x8004 +/* 0E06C0 7F0ABB50 10000008 */ b .Ljp7F0ABB74 +/* 0E06C4 7F0ABB54 E4200B50 */ swc1 $f0, %lo(D_80040B20)($at) +.Ljp7F0ABB58: +/* 0E06C8 7F0ABB58 3C018004 */ lui $at, %hi(D_80040B20) # $at, 0x8004 +/* 0E06CC 7F0ABB5C 44807000 */ mtc1 $zero, $f14 +/* 0E06D0 7F0ABB60 C42C0B50 */ lwc1 $f12, %lo(D_80040B20)($at) +/* 0E06D4 7F0ABB64 0FC2A861 */ jal sub_GAME_7F0A95C4 +/* 0E06D8 7F0ABB68 3C064080 */ lui $a2, 0x4080 +/* 0E06DC 7F0ABB6C 3C018004 */ lui $at, %hi(D_80040B20) # $at, 0x8004 +/* 0E06E0 7F0ABB70 E4200B50 */ swc1 $f0, %lo(D_80040B20)($at) +.Ljp7F0ABB74: +/* 0E06E4 7F0ABB74 3C018004 */ lui $at, %hi(D_80040B20) # $at, 0x8004 +/* 0E06E8 7F0ABB78 C4240B50 */ lwc1 $f4, %lo(D_80040B20)($at) +/* 0E06EC 7F0ABB7C 3C018006 */ lui $at, %hi(D_80058554) # $at, 0x8006 +/* 0E06F0 7F0ABB80 C4288594 */ lwc1 $f8, %lo(D_80058554)($at) +/* 0E06F4 7F0ABB84 46002187 */ neg.s $f6, $f4 +/* 0E06F8 7F0ABB88 27A5047C */ addiu $a1, $sp, 0x47c +/* 0E06FC 7F0ABB8C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 0E0700 7F0ABB90 46083301 */ sub.s $f12, $f6, $f8 +/* 0E0704 7F0ABB94 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0E0708 7F0ABB98 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0E070C 7F0ABB9C 0FC1617A */ jal matrix_4x4_multiply +/* 0E0710 7F0ABBA0 27A6043C */ addiu $a2, $sp, 0x43c +/* 0E0714 7F0ABBA4 27A4043C */ addiu $a0, $sp, 0x43c +/* 0E0718 7F0ABBA8 27A5047C */ addiu $a1, $sp, 0x47c +/* 0E071C 7F0ABBAC 0FC1617A */ jal matrix_4x4_multiply +/* 0E0720 7F0ABBB0 27A603FC */ addiu $a2, $sp, 0x3fc +/* 0E0724 7F0ABBB4 27A40370 */ addiu $a0, $sp, 0x370 +/* 0E0728 7F0ABBB8 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 0E072C 7F0ABBBC 27A5043C */ addiu $a1, $sp, 0x43c +/* 0E0730 7F0ABBC0 27A4043C */ addiu $a0, $sp, 0x43c +/* 0E0734 7F0ABBC4 27A503FC */ addiu $a1, $sp, 0x3fc +/* 0E0738 7F0ABBC8 0FC1617A */ jal matrix_4x4_multiply +/* 0E073C 7F0ABBCC 27A603BC */ addiu $a2, $sp, 0x3bc +/* 0E0740 7F0ABBD0 0FC29645 */ jal controllerCheckDualControllerTypesAllowed +/* 0E0744 7F0ABBD4 00000000 */ nop +/* 0E0748 7F0ABBD8 10400018 */ beqz $v0, .Ljp7F0ABC3C +/* 0E074C 7F0ABBDC 3C01C0A0 */ lui $at, 0xc0a0 +/* 0E0750 7F0ABBE0 3C018006 */ lui $at, %hi(D_80058558) +/* 0E0754 7F0ABBE4 C4208598 */ lwc1 $f0, %lo(D_80058558)($at) +/* 0E0758 7F0ABBE8 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 0E075C 7F0ABBEC 44816000 */ mtc1 $at, $f12 +/* 0E0760 7F0ABBF0 44801000 */ mtc1 $zero, $f2 +/* 0E0764 7F0ABBF4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0E0768 7F0ABBF8 44815000 */ mtc1 $at, $f10 +/* 0E076C 7F0ABBFC 27A90128 */ addiu $t1, $sp, 0x128 +/* 0E0770 7F0ABC00 3C06451C */ lui $a2, (0x451C4000 >> 16) # lui $a2, 0x451c +/* 0E0774 7F0ABC04 44050000 */ mfc1 $a1, $f0 +/* 0E0778 7F0ABC08 44076000 */ mfc1 $a3, $f12 +/* 0E077C 7F0ABC0C AFA902E8 */ sw $t1, 0x2e8($sp) +/* 0E0780 7F0ABC10 34C64000 */ ori $a2, (0x451C4000 & 0xFFFF) # ori $a2, $a2, 0x4000 +/* 0E0784 7F0ABC14 27A4032C */ addiu $a0, $sp, 0x32c +/* 0E0788 7F0ABC18 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0E078C 7F0ABC1C E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0E0790 7F0ABC20 E7A20014 */ swc1 $f2, 0x14($sp) +/* 0E0794 7F0ABC24 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0E0798 7F0ABC28 E7A20020 */ swc1 $f2, 0x20($sp) +/* 0E079C 7F0ABC2C 0FC166ED */ jal sub_GAME_7F059694 +/* 0E07A0 7F0ABC30 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 0E07A4 7F0ABC34 10000017 */ b .Ljp7F0ABC94 +/* 0E07A8 7F0ABC38 27A4032C */ addiu $a0, $sp, 0x32c +.Ljp7F0ABC3C: +/* 0E07AC 7F0ABC3C 44810000 */ mtc1 $at, $f0 +/* 0E07B0 7F0ABC40 3C01C328 */ li $at, 0xC3280000 # -168.000000 +/* 0E07B4 7F0ABC44 44811000 */ mtc1 $at, $f2 +/* 0E07B8 7F0ABC48 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0E07BC 7F0ABC4C 44813000 */ mtc1 $at, $f6 +/* 0E07C0 7F0ABC50 44809000 */ mtc1 $zero, $f18 +/* 0E07C4 7F0ABC54 44808000 */ mtc1 $zero, $f16 +/* 0E07C8 7F0ABC58 44802000 */ mtc1 $zero, $f4 +/* 0E07CC 7F0ABC5C 27AE0204 */ addiu $t6, $sp, 0x204 +/* 0E07D0 7F0ABC60 44050000 */ mfc1 $a1, $f0 +/* 0E07D4 7F0ABC64 44071000 */ mfc1 $a3, $f2 +/* 0E07D8 7F0ABC68 AFAE02E8 */ sw $t6, 0x2e8($sp) +/* 0E07DC 7F0ABC6C 27A4032C */ addiu $a0, $sp, 0x32c +/* 0E07E0 7F0ABC70 3C0644FA */ lui $a2, 0x44fa +/* 0E07E4 7F0ABC74 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0E07E8 7F0ABC78 E7A20018 */ swc1 $f2, 0x18($sp) +/* 0E07EC 7F0ABC7C E7A60024 */ swc1 $f6, 0x24($sp) +/* 0E07F0 7F0ABC80 E7B20014 */ swc1 $f18, 0x14($sp) +/* 0E07F4 7F0ABC84 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 0E07F8 7F0ABC88 0FC166ED */ jal sub_GAME_7F059694 +/* 0E07FC 7F0ABC8C E7A40020 */ swc1 $f4, 0x20($sp) +/* 0E0800 7F0ABC90 27A4032C */ addiu $a0, $sp, 0x32c +.Ljp7F0ABC94: +/* 0E0804 7F0ABC94 27A503BC */ addiu $a1, $sp, 0x3bc +/* 0E0808 7F0ABC98 0FC1617A */ jal matrix_4x4_multiply +/* 0E080C 7F0ABC9C 27A6037C */ addiu $a2, $sp, 0x37c +/* 0E0810 7F0ABCA0 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0E0814 7F0ABCA4 44814000 */ mtc1 $at, $f8 +/* 0E0818 7F0ABCA8 3C018006 */ lui $at, %hi(D_8005855C) # $at, 0x8006 +/* 0E081C 7F0ABCAC C42A859C */ lwc1 $f10, %lo(D_8005855C)($at) +/* 0E0820 7F0ABCB0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E0824 7F0ABCB4 44819000 */ mtc1 $at, $f18 +/* 0E0828 7F0ABCB8 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 0E082C 7F0ABCBC 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 0E0830 7F0ABCC0 8FA4053C */ lw $a0, 0x53c($sp) +/* 0E0834 7F0ABCC4 27A5036E */ addiu $a1, $sp, 0x36e +/* 0E0838 7F0ABCC8 3C06424A */ lui $a2, 0x424a +/* 0E083C 7F0ABCCC E7A80010 */ swc1 $f8, 0x10($sp) +/* 0E0840 7F0ABCD0 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 0E0844 7F0ABCD4 0C003FBC */ jal guPerspective +/* 0E0848 7F0ABCD8 E7B20018 */ swc1 $f18, 0x18($sp) +/* 0E084C 7F0ABCDC 3C180103 */ lui $t8, (0x01030040 >> 16) # lui $t8, 0x103 +/* 0E0850 7F0ABCE0 37180040 */ ori $t8, (0x01030040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 0E0854 7F0ABCE4 02001825 */ move $v1, $s0 +/* 0E0858 7F0ABCE8 AC780000 */ sw $t8, ($v1) +/* 0E085C 7F0ABCEC AFA30048 */ sw $v1, 0x48($sp) +/* 0E0860 7F0ABCF0 8FA4053C */ lw $a0, 0x53c($sp) +/* 0E0864 7F0ABCF4 0C003A3C */ jal osVirtualToPhysical +/* 0E0868 7F0ABCF8 26100008 */ addiu $s0, $s0, 8 +/* 0E086C 7F0ABCFC 8FA30048 */ lw $v1, 0x48($sp) +/* 0E0870 7F0ABD00 02002025 */ move $a0, $s0 +/* 0E0874 7F0ABD04 0FC29EA0 */ jal sub_GAME_7F0A6EE8 +/* 0E0878 7F0ABD08 AC620004 */ sw $v0, 4($v1) +/* 0E087C 7F0ABD0C 3C038004 */ lui $v1, %hi(D_80040B04) # $v1, 0x8004 +/* 0E0880 7F0ABD10 8C630B34 */ lw $v1, %lo(D_80040B04)($v1) +/* 0E0884 7F0ABD14 00408025 */ move $s0, $v0 +/* 0E0888 7F0ABD18 02002025 */ move $a0, $s0 +/* 0E088C 7F0ABD1C 286100E0 */ slti $at, $v1, 0xe0 +/* 0E0890 7F0ABD20 1020000C */ beqz $at, .Ljp7F0ABD54 +/* 0E0894 7F0ABD24 27A5037C */ addiu $a1, $sp, 0x37c +/* 0E0898 7F0ABD28 8FAB02E8 */ lw $t3, 0x2e8($sp) +/* 0E089C 7F0ABD2C 27B902E3 */ addiu $t9, $sp, 0x2e3 +/* 0E08A0 7F0ABD30 AFB90014 */ sw $t9, 0x14($sp) +/* 0E08A4 7F0ABD34 00402025 */ move $a0, $v0 +/* 0E08A8 7F0ABD38 27A5037C */ addiu $a1, $sp, 0x37c +/* 0E08AC 7F0ABD3C 2466FFFA */ addiu $a2, $v1, -6 +/* 0E08B0 7F0ABD40 24070001 */ li $a3, 1 +/* 0E08B4 7F0ABD44 0FC18EB2 */ jal sub_GAME_7F06359C +/* 0E08B8 7F0ABD48 AFAB0010 */ sw $t3, 0x10($sp) +/* 0E08BC 7F0ABD4C 10000007 */ b .Ljp7F0ABD6C +/* 0E08C0 7F0ABD50 00408025 */ move $s0, $v0 +.Ljp7F0ABD54: +/* 0E08C4 7F0ABD54 27AA02E3 */ addiu $t2, $sp, 0x2e3 +/* 0E08C8 7F0ABD58 AFAA0010 */ sw $t2, 0x10($sp) +/* 0E08CC 7F0ABD5C 24060001 */ li $a2, 1 +/* 0E08D0 7F0ABD60 0FC19224 */ jal sub_GAME_7F064364 +/* 0E08D4 7F0ABD64 8FA702E8 */ lw $a3, 0x2e8($sp) +/* 0E08D8 7F0ABD68 00408025 */ move $s0, $v0 +.Ljp7F0ABD6C: +/* 0E08DC 7F0ABD6C 0FC29645 */ jal controllerCheckDualControllerTypesAllowed +/* 0E08E0 7F0ABD70 00000000 */ nop +/* 0E08E4 7F0ABD74 1040009F */ beqz $v0, .Ljp7F0ABFF4 +/* 0E08E8 7F0ABD78 24040001 */ li $a0, 1 +/* 0E08EC 7F0ABD7C 3C058004 */ lui $a1, %hi(D_80040B3C) # $a1, 0x8004 +/* 0E08F0 7F0ABD80 3C068004 */ lui $a2, %hi(D_80040B38) # $a2, 0x8004 +/* 0E08F4 7F0ABD84 3C078004 */ lui $a3, %hi(D_80040B34) # $a3, 0x8004 +/* 0E08F8 7F0ABD88 24E70B64 */ addiu $a3, %lo(D_80040B34) # addiu $a3, $a3, 0xb64 +/* 0E08FC 7F0ABD8C 24C60B68 */ addiu $a2, %lo(D_80040B38) # addiu $a2, $a2, 0xb68 +/* 0E0900 7F0ABD90 0FC2A891 */ jal sub_GAME_7F0A9684 +/* 0E0904 7F0ABD94 24A50B6C */ addiu $a1, %lo(D_80040B3C) # addiu $a1, $a1, 0xb6c +/* 0E0908 7F0ABD98 0FC1613C */ jal matrix_4x4_set_identity +/* 0E090C 7F0ABD9C 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0E0910 7F0ABDA0 3C018004 */ lui $at, %hi(D_80040B38) # $at, 0x8004 +/* 0E0914 7F0ABDA4 C4300B68 */ lwc1 $f16, %lo(D_80040B38)($at) +/* 0E0918 7F0ABDA8 3C018005 */ lui $at, %hi(jpD_800484D0) # $at, 0x8005 +/* 0E091C 7F0ABDAC C42484D0 */ lwc1 $f4, %lo(jpD_800484D0)($at) +/* 0E0920 7F0ABDB0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0E0924 7F0ABDB4 44814000 */ mtc1 $at, $f8 +/* 0E0928 7F0ABDB8 46048182 */ mul.s $f6, $f16, $f4 +/* 0E092C 7F0ABDBC 3C028004 */ lui $v0, %hi(D_80040B34) # $v0, 0x8004 +/* 0E0930 7F0ABDC0 24420B64 */ addiu $v0, %lo(D_80040B34) # addiu $v0, $v0, 0xb64 +/* 0E0934 7F0ABDC4 C4520000 */ lwc1 $f18, ($v0) +/* 0E0938 7F0ABDC8 46083282 */ mul.s $f10, $f6, $f8 +/* 0E093C 7F0ABDCC 460A9400 */ add.s $f16, $f18, $f10 +/* 0E0940 7F0ABDD0 E4500000 */ swc1 $f16, ($v0) +/* 0E0944 7F0ABDD4 0FC29D73 */ jal sub_GAME_7F0A6A2C +/* 0E0948 7F0ABDD8 C44C0000 */ lwc1 $f12, ($v0) +/* 0E094C 7F0ABDDC 3C018004 */ lui $at, %hi(D_80040B34) # $at, 0x8004 +/* 0E0950 7F0ABDE0 E4200B64 */ swc1 $f0, %lo(D_80040B34)($at) +/* 0E0954 7F0ABDE4 C42C0B64 */ lwc1 $f12, %lo(D_80040B34)($at) +/* 0E0958 7F0ABDE8 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 0E095C 7F0ABDEC 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0E0960 7F0ABDF0 3C0C8004 */ lui $t4, %hi(watch_soundrelated_maybe) # $t4, 0x8004 +/* 0E0964 7F0ABDF4 8D8C09D8 */ lw $t4, %lo(watch_soundrelated_maybe)($t4) +/* 0E0968 7F0ABDF8 11800016 */ beqz $t4, .Ljp7F0ABE54 +/* 0E096C 7F0ABDFC 3C0D8004 */ lui $t5, %hi(D_80040998) # $t5, 0x8004 +/* 0E0970 7F0ABE00 8DAD09C8 */ lw $t5, %lo(D_80040998)($t5) +/* 0E0974 7F0ABE04 24010001 */ li $at, 1 +/* 0E0978 7F0ABE08 15A10012 */ bne $t5, $at, .Ljp7F0ABE54 +/* 0E097C 7F0ABE0C 00000000 */ nop +/* 0E0980 7F0ABE10 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 0E0984 7F0ABE14 24040001 */ li $a0, 1 +/* 0E0988 7F0ABE18 44822000 */ mtc1 $v0, $f4 +/* 0E098C 7F0ABE1C 3C018004 */ lui $at, %hi(D_80040B30) # $at, 0x8004 +/* 0E0990 7F0ABE20 C42C0B60 */ lwc1 $f12, %lo(D_80040B30)($at) +/* 0E0994 7F0ABE24 468021A0 */ cvt.s.w $f6, $f4 +/* 0E0998 7F0ABE28 3C018006 */ lui $at, %hi(D_80058560) # $at, 0x8006 +/* 0E099C 7F0ABE2C C42885A0 */ lwc1 $f8, %lo(D_80058560)($at) +/* 0E09A0 7F0ABE30 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0E09A4 7F0ABE34 44815000 */ mtc1 $at, $f10 +/* 0E09A8 7F0ABE38 3C064080 */ lui $a2, 0x4080 +/* 0E09AC 7F0ABE3C 46083482 */ mul.s $f18, $f6, $f8 +/* 0E09B0 7F0ABE40 0FC2A861 */ jal sub_GAME_7F0A95C4 +/* 0E09B4 7F0ABE44 460A9383 */ div.s $f14, $f18, $f10 +/* 0E09B8 7F0ABE48 3C018004 */ lui $at, %hi(D_80040B30) # $at, 0x8004 +/* 0E09BC 7F0ABE4C 10000008 */ b .Ljp7F0ABE70 +/* 0E09C0 7F0ABE50 E4200B60 */ swc1 $f0, %lo(D_80040B30)($at) +.Ljp7F0ABE54: +/* 0E09C4 7F0ABE54 3C018004 */ lui $at, %hi(D_80040B30) # $at, 0x8004 +/* 0E09C8 7F0ABE58 44807000 */ mtc1 $zero, $f14 +/* 0E09CC 7F0ABE5C C42C0B60 */ lwc1 $f12, %lo(D_80040B30)($at) +/* 0E09D0 7F0ABE60 0FC2A861 */ jal sub_GAME_7F0A95C4 +/* 0E09D4 7F0ABE64 3C064080 */ lui $a2, 0x4080 +/* 0E09D8 7F0ABE68 3C018004 */ lui $at, %hi(D_80040B30) # $at, 0x8004 +/* 0E09DC 7F0ABE6C E4200B60 */ swc1 $f0, %lo(D_80040B30)($at) +.Ljp7F0ABE70: +/* 0E09E0 7F0ABE70 3C018004 */ lui $at, %hi(D_80040B30) # $at, 0x8004 +/* 0E09E4 7F0ABE74 C4300B60 */ lwc1 $f16, %lo(D_80040B30)($at) +/* 0E09E8 7F0ABE78 3C018006 */ lui $at, %hi(D_80058564) # $at, 0x8006 +/* 0E09EC 7F0ABE7C C42685A4 */ lwc1 $f6, %lo(D_80058564)($at) +/* 0E09F0 7F0ABE80 46008107 */ neg.s $f4, $f16 +/* 0E09F4 7F0ABE84 27A5047C */ addiu $a1, $sp, 0x47c +/* 0E09F8 7F0ABE88 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 0E09FC 7F0ABE8C 46062301 */ sub.s $f12, $f4, $f6 +/* 0E0A00 7F0ABE90 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0E0A04 7F0ABE94 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0E0A08 7F0ABE98 0FC1617A */ jal matrix_4x4_multiply +/* 0E0A0C 7F0ABE9C 27A6043C */ addiu $a2, $sp, 0x43c +/* 0E0A10 7F0ABEA0 27A4043C */ addiu $a0, $sp, 0x43c +/* 0E0A14 7F0ABEA4 27A5047C */ addiu $a1, $sp, 0x47c +/* 0E0A18 7F0ABEA8 0FC1617A */ jal matrix_4x4_multiply +/* 0E0A1C 7F0ABEAC 27A603FC */ addiu $a2, $sp, 0x3fc +/* 0E0A20 7F0ABEB0 27A40370 */ addiu $a0, $sp, 0x370 +/* 0E0A24 7F0ABEB4 0FC163A1 */ jal matrix_4x4_set_identity_and_position +/* 0E0A28 7F0ABEB8 27A5043C */ addiu $a1, $sp, 0x43c +/* 0E0A2C 7F0ABEBC 27A4043C */ addiu $a0, $sp, 0x43c +/* 0E0A30 7F0ABEC0 27A503FC */ addiu $a1, $sp, 0x3fc +/* 0E0A34 7F0ABEC4 0FC1617A */ jal matrix_4x4_multiply +/* 0E0A38 7F0ABEC8 27A603BC */ addiu $a2, $sp, 0x3bc +/* 0E0A3C 7F0ABECC 3C018006 */ lui $at, %hi(D_80058568) # $at, 0x8006 +/* 0E0A40 7F0ABED0 C42085A8 */ lwc1 $f0, %lo(D_80058568)($at) +/* 0E0A44 7F0ABED4 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 0E0A48 7F0ABED8 44801000 */ mtc1 $zero, $f2 +/* 0E0A4C 7F0ABEDC 44814000 */ mtc1 $at, $f8 +/* 0E0A50 7F0ABEE0 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0E0A54 7F0ABEE4 44819000 */ mtc1 $at, $f18 +/* 0E0A58 7F0ABEE8 3C06451C */ lui $a2, (0x451C4000 >> 16) # lui $a2, 0x451c +/* 0E0A5C 7F0ABEEC 44050000 */ mfc1 $a1, $f0 +/* 0E0A60 7F0ABEF0 34C64000 */ ori $a2, (0x451C4000 & 0xFFFF) # ori $a2, $a2, 0x4000 +/* 0E0A64 7F0ABEF4 27A402EC */ addiu $a0, $sp, 0x2ec +/* 0E0A68 7F0ABEF8 3C074200 */ lui $a3, 0x4200 +/* 0E0A6C 7F0ABEFC E7A00010 */ swc1 $f0, 0x10($sp) +/* 0E0A70 7F0ABF00 E7A20014 */ swc1 $f2, 0x14($sp) +/* 0E0A74 7F0ABF04 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0E0A78 7F0ABF08 E7A20020 */ swc1 $f2, 0x20($sp) +/* 0E0A7C 7F0ABF0C E7A80018 */ swc1 $f8, 0x18($sp) +/* 0E0A80 7F0ABF10 0FC166ED */ jal sub_GAME_7F059694 +/* 0E0A84 7F0ABF14 E7B20024 */ swc1 $f18, 0x24($sp) +/* 0E0A88 7F0ABF18 27A402EC */ addiu $a0, $sp, 0x2ec +/* 0E0A8C 7F0ABF1C 27A503BC */ addiu $a1, $sp, 0x3bc +/* 0E0A90 7F0ABF20 0FC1617A */ jal matrix_4x4_multiply +/* 0E0A94 7F0ABF24 27A6037C */ addiu $a2, $sp, 0x37c +/* 0E0A98 7F0ABF28 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0E0A9C 7F0ABF2C 44815000 */ mtc1 $at, $f10 +/* 0E0AA0 7F0ABF30 3C018006 */ lui $at, %hi(D_8005856C) # $at, 0x8006 +/* 0E0AA4 7F0ABF34 C43085AC */ lwc1 $f16, %lo(D_8005856C)($at) +/* 0E0AA8 7F0ABF38 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0E0AAC 7F0ABF3C 44812000 */ mtc1 $at, $f4 +/* 0E0AB0 7F0ABF40 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 0E0AB4 7F0ABF44 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 0E0AB8 7F0ABF48 8FA4053C */ lw $a0, 0x53c($sp) +/* 0E0ABC 7F0ABF4C 27A5036E */ addiu $a1, $sp, 0x36e +/* 0E0AC0 7F0ABF50 3C06424A */ lui $a2, 0x424a +/* 0E0AC4 7F0ABF54 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0E0AC8 7F0ABF58 E7B00014 */ swc1 $f16, 0x14($sp) +/* 0E0ACC 7F0ABF5C 0C003FBC */ jal guPerspective +/* 0E0AD0 7F0ABF60 E7A40018 */ swc1 $f4, 0x18($sp) +/* 0E0AD4 7F0ABF64 3C080103 */ lui $t0, (0x01030040 >> 16) # lui $t0, 0x103 +/* 0E0AD8 7F0ABF68 35080040 */ ori $t0, (0x01030040 & 0xFFFF) # ori $t0, $t0, 0x40 +/* 0E0ADC 7F0ABF6C 02001825 */ move $v1, $s0 +/* 0E0AE0 7F0ABF70 AC680000 */ sw $t0, ($v1) +/* 0E0AE4 7F0ABF74 AFA30044 */ sw $v1, 0x44($sp) +/* 0E0AE8 7F0ABF78 8FA4053C */ lw $a0, 0x53c($sp) +/* 0E0AEC 7F0ABF7C 0C003A3C */ jal osVirtualToPhysical +/* 0E0AF0 7F0ABF80 26100008 */ addiu $s0, $s0, 8 +/* 0E0AF4 7F0ABF84 8FA30044 */ lw $v1, 0x44($sp) +/* 0E0AF8 7F0ABF88 02002025 */ move $a0, $s0 +/* 0E0AFC 7F0ABF8C 0FC29EA0 */ jal sub_GAME_7F0A6EE8 +/* 0E0B00 7F0ABF90 AC620004 */ sw $v0, 4($v1) +/* 0E0B04 7F0ABF94 3C038004 */ lui $v1, %hi(D_80040B04) # $v1, 0x8004 +/* 0E0B08 7F0ABF98 8C630B34 */ lw $v1, %lo(D_80040B04)($v1) +/* 0E0B0C 7F0ABF9C 00408025 */ move $s0, $v0 +/* 0E0B10 7F0ABFA0 02002025 */ move $a0, $s0 +/* 0E0B14 7F0ABFA4 286100E0 */ slti $at, $v1, 0xe0 +/* 0E0B18 7F0ABFA8 1020000C */ beqz $at, .Ljp7F0ABFDC +/* 0E0B1C 7F0ABFAC 27A5037C */ addiu $a1, $sp, 0x37c +/* 0E0B20 7F0ABFB0 27AF004C */ addiu $t7, $sp, 0x4c +/* 0E0B24 7F0ABFB4 27A902E2 */ addiu $t1, $sp, 0x2e2 +/* 0E0B28 7F0ABFB8 AFA90014 */ sw $t1, 0x14($sp) +/* 0E0B2C 7F0ABFBC AFAF0010 */ sw $t7, 0x10($sp) +/* 0E0B30 7F0ABFC0 00402025 */ move $a0, $v0 +/* 0E0B34 7F0ABFC4 27A5037C */ addiu $a1, $sp, 0x37c +/* 0E0B38 7F0ABFC8 2466FFFA */ addiu $a2, $v1, -6 +/* 0E0B3C 7F0ABFCC 0FC18EB2 */ jal sub_GAME_7F06359C +/* 0E0B40 7F0ABFD0 24070001 */ li $a3, 1 +/* 0E0B44 7F0ABFD4 10000007 */ b .Ljp7F0ABFF4 +/* 0E0B48 7F0ABFD8 00408025 */ move $s0, $v0 +.Ljp7F0ABFDC: +/* 0E0B4C 7F0ABFDC 27AE02E2 */ addiu $t6, $sp, 0x2e2 +/* 0E0B50 7F0ABFE0 AFAE0010 */ sw $t6, 0x10($sp) +/* 0E0B54 7F0ABFE4 24060001 */ li $a2, 1 +/* 0E0B58 7F0ABFE8 0FC19224 */ jal sub_GAME_7F064364 +/* 0E0B5C 7F0ABFEC 27A7004C */ addiu $a3, $sp, 0x4c +/* 0E0B60 7F0ABFF0 00408025 */ move $s0, $v0 +.Ljp7F0ABFF4: +/* 0E0B64 7F0ABFF4 0FC29645 */ jal controllerCheckDualControllerTypesAllowed +/* 0E0B68 7F0ABFF8 00000000 */ nop +/* 0E0B6C 7F0ABFFC 10400005 */ beqz $v0, .Ljp7F0AC014 +/* 0E0B70 7F0AC000 00000000 */ nop +/* 0E0B74 7F0AC004 0FC2ACE2 */ jal sub_GAME_7F0AA7C8 +/* 0E0B78 7F0AC008 02002025 */ move $a0, $s0 +/* 0E0B7C 7F0AC00C 10000004 */ b .Ljp7F0AC020 +/* 0E0B80 7F0AC010 00408025 */ move $s0, $v0 +.Ljp7F0AC014: +/* 0E0B84 7F0AC014 0FC2A99E */ jal sub_GAME_7F0A9AB8 +/* 0E0B88 7F0AC018 02002025 */ move $a0, $s0 +/* 0E0B8C 7F0AC01C 00408025 */ move $s0, $v0 +.Ljp7F0AC020: +/* 0E0B90 7F0AC020 8FBF0034 */ lw $ra, 0x34($sp) +/* 0E0B94 7F0AC024 02001025 */ move $v0, $s0 +/* 0E0B98 7F0AC028 8FB00030 */ lw $s0, 0x30($sp) +/* 0E0B9C 7F0AC02C 03E00008 */ jr $ra +/* 0E0BA0 7F0AC030 27BD0540 */ addiu $sp, $sp, 0x540 +) +#endif + +#endif + + + + + +void zero_D_80040998(void) { + D_80040998 = 0; +} + +void zero_D_8004099C(void) { + D_8004099C = 0; +} + +void zero_D_800409A4(void) { + D_800409A4 = 0; +} + +u32 return_arg0_7F0AB4B0(u32 uParm1) { + return uParm1; +} + + + + + +#ifdef NONMATCHING +void proc_7F0AB4B8(u32 param_1,u32 param_2) +{ + ?32 sp5C; + ?32 sp58; + s32 sp54; + s32 sp50; + s32 pFirstFontTableSmall; + s32 pSecondFontTableSmall; + s32 DL; + s32 txtptr; + ?32 phi_s1; + ?32 phi_s1_2; + + + DL = sub_GAME_7F0A714C(param_1, param_2, 0); + if (check_watch_page_transistion_running() != 1) + { + pFirstFontTableSmall = (s32) ptrFirstFontTableSmall; + pSecondFontTableSmall = (s32) ptrSecondFontTableSmall; + microcode_constructor(sub_GAME_7F0AADC0(DL)); + txtptr = get_textptr_for_textID(0xac32); + sp5C = 0x40; + sp58 = 0x1a; + phi_s1 = 0xff00b0; + if (D_80040998 == 0) + { + phi_s1 = 0xa0ffa0f0; + if (watch_soundrelated_maybe != 0) + { + phi_s1 = -1; + } + } + sub_GAME_7F0AE98C(&sp50, &sp54, txtptr, pSecondFontTableSmall, pFirstFontTableSmall, 0); + if ((watch_soundrelated_maybe != 0) && (D_80040998 == 0)) + { + jp_text_write_stuff(DL, &sp5C, &sp58, txtptr, pSecondFontTableSmall, pFirstFontTableSmall, (?32) phi_s1, 0x7000a0, (s32) (sp54 + 1), sp50, 0, 0); + } + else + { + en_text_write_stuff(DL, &sp5C, &sp58, txtptr, pSecondFontTableSmall, pFirstFontTableSmall, (?32) phi_s1, sp54, sp50, 0, 0); + } + sub_GAME_7F0A97D0(DL); + txtptr = get_textptr_for_textID(0xac33); + if (controllerCheckDualControllerTypesAllowed() != 0) + { + txtptr = get_textptr_for_textID(0xac34); + } + sp5C = 0x40; + sp58 = 0x2b; + if (D_80040998 == 1) + { + phi_s1_2 = 0xa0ffa0f0; + if (watch_soundrelated_maybe != 0) + { + phi_s1_2 = -1; + } + } + sub_GAME_7F0AE98C(&sp50, &sp54, txtptr, pSecondFontTableSmall, pFirstFontTableSmall, 0); + if ((watch_soundrelated_maybe != 0) && (D_80040998 == 1)) + { + jp_text_write_stuff(DL, &sp5C, &sp58, txtptr, pSecondFontTableSmall, pFirstFontTableSmall, (?32) phi_s1_2, 0x7000a0, (s32) (sp54 + 1), sp50, 0, 0); + } + else + { + en_text_write_stuff(DL, &sp5C, &sp58, txtptr, pSecondFontTableSmall, pFirstFontTableSmall, (?32) phi_s1_2, sp54, sp50, 0, 0); + } + } + return; +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AB4B8 +/* 0DFFE8 7F0AB4B8 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0DFFEC 7F0AB4BC AFBF0044 */ sw $ra, 0x44($sp) +/* 0DFFF0 7F0AB4C0 AFB20040 */ sw $s2, 0x40($sp) +/* 0DFFF4 7F0AB4C4 AFB1003C */ sw $s1, 0x3c($sp) +/* 0DFFF8 7F0AB4C8 AFB00038 */ sw $s0, 0x38($sp) +/* 0DFFFC 7F0AB4CC 0FC29C53 */ jal sub_GAME_7F0A714C +/* 0E0000 7F0AB4D0 00003025 */ move $a2, $zero +/* 0E0004 7F0AB4D4 0FC1F97F */ jal check_watch_page_transistion_running +/* 0E0008 7F0AB4D8 00408025 */ move $s0, $v0 +/* 0E000C 7F0AB4DC 24010001 */ li $at, 1 +/* 0E0010 7F0AB4E0 504100AA */ beql $v0, $at, .L7F0AB78C +/* 0E0014 7F0AB4E4 8FBF0044 */ lw $ra, 0x44($sp) +/* 0E0018 7F0AB4E8 0FC2AB70 */ jal sub_GAME_7F0AADC0 +/* 0E001C 7F0AB4EC 02002025 */ move $a0, $s0 +/* 0E0020 7F0AB4F0 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0E0024 7F0AB4F4 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0E0028 7F0AB4F8 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0E002C 7F0AB4FC 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0E0030 7F0AB500 00402025 */ move $a0, $v0 +/* 0E0034 7F0AB504 AFAE004C */ sw $t6, 0x4c($sp) +/* 0E0038 7F0AB508 0FC2B366 */ jal microcode_constructor +/* 0E003C 7F0AB50C AFAF0048 */ sw $t7, 0x48($sp) +/* 0E0040 7F0AB510 00408025 */ move $s0, $v0 +/* 0E0044 7F0AB514 0FC30776 */ jal get_textptr_for_textID +/* 0E0048 7F0AB518 3404AC32 */ li $a0, 44082 +/* 0E004C 7F0AB51C 3C088004 */ lui $t0, %hi(D_80040998) +/* 0E0050 7F0AB520 8D080998 */ lw $t0, %lo(D_80040998)($t0) +/* 0E0054 7F0AB524 24180040 */ li $t8, 64 +/* 0E0058 7F0AB528 2419001A */ li $t9, 26 +/* 0E005C 7F0AB52C 3C1100FF */ lui $s1, (0x00FF00B0 >> 16) # lui $s1, 0xff +/* 0E0060 7F0AB530 00409025 */ move $s2, $v0 +/* 0E0064 7F0AB534 AFB8005C */ sw $t8, 0x5c($sp) +/* 0E0068 7F0AB538 AFB90058 */ sw $t9, 0x58($sp) +/* 0E006C 7F0AB53C 15000008 */ bnez $t0, .L7F0AB560 +/* 0E0070 7F0AB540 363100B0 */ ori $s1, (0x00FF00B0 & 0xFFFF) # ori $s1, $s1, 0xb0 +/* 0E0074 7F0AB544 3C098004 */ lui $t1, %hi(watch_soundrelated_maybe) +/* 0E0078 7F0AB548 8D2909A8 */ lw $t1, %lo(watch_soundrelated_maybe)($t1) +/* 0E007C 7F0AB54C 3C11A0FF */ lui $s1, (0xA0FFA0F0 >> 16) # lui $s1, 0xa0ff +/* 0E0080 7F0AB550 3631A0F0 */ ori $s1, (0xA0FFA0F0 & 0xFFFF) # ori $s1, $s1, 0xa0f0 +/* 0E0084 7F0AB554 51200003 */ beql $t1, $zero, .L7F0AB564 +/* 0E0088 7F0AB558 8FAA004C */ lw $t2, 0x4c($sp) +/* 0E008C 7F0AB55C 2411FFFF */ li $s1, -1 +.L7F0AB560: +/* 0E0090 7F0AB560 8FAA004C */ lw $t2, 0x4c($sp) +.L7F0AB564: +/* 0E0094 7F0AB564 27A40050 */ addiu $a0, $sp, 0x50 +/* 0E0098 7F0AB568 27A50054 */ addiu $a1, $sp, 0x54 +/* 0E009C 7F0AB56C 02403025 */ move $a2, $s2 +/* 0E00A0 7F0AB570 8FA70048 */ lw $a3, 0x48($sp) +/* 0E00A4 7F0AB574 AFA00014 */ sw $zero, 0x14($sp) +/* 0E00A8 7F0AB578 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E00AC 7F0AB57C AFAA0010 */ sw $t2, 0x10($sp) +/* 0E00B0 7F0AB580 3C0B8004 */ lui $t3, %hi(watch_soundrelated_maybe) +/* 0E00B4 7F0AB584 8D6B09A8 */ lw $t3, %lo(watch_soundrelated_maybe)($t3) +/* 0E00B8 7F0AB588 3C0C8004 */ lui $t4, %hi(D_80040998) +/* 0E00BC 7F0AB58C 02002025 */ move $a0, $s0 +/* 0E00C0 7F0AB590 1160001B */ beqz $t3, .L7F0AB600 +/* 0E00C4 7F0AB594 27A5005C */ addiu $a1, $sp, 0x5c +/* 0E00C8 7F0AB598 8D8C0998 */ lw $t4, %lo(D_80040998)($t4) +/* 0E00CC 7F0AB59C 27A60058 */ addiu $a2, $sp, 0x58 +/* 0E00D0 7F0AB5A0 02403825 */ move $a3, $s2 +/* 0E00D4 7F0AB5A4 15800016 */ bnez $t4, .L7F0AB600 +/* 0E00D8 7F0AB5A8 8FAD0048 */ lw $t5, 0x48($sp) +/* 0E00DC 7F0AB5AC 8FB80054 */ lw $t8, 0x54($sp) +/* 0E00E0 7F0AB5B0 8FAE004C */ lw $t6, 0x4c($sp) +/* 0E00E4 7F0AB5B4 8FA80050 */ lw $t0, 0x50($sp) +/* 0E00E8 7F0AB5B8 AFB10018 */ sw $s1, 0x18($sp) +/* 0E00EC 7F0AB5BC 3C0F0070 */ lui $t7, (0x007000A0 >> 16) # lui $t7, 0x70 +/* 0E00F0 7F0AB5C0 35EF00A0 */ ori $t7, (0x007000A0 & 0xFFFF) # ori $t7, $t7, 0xa0 +/* 0E00F4 7F0AB5C4 3C1100FF */ lui $s1, (0x00FF00B0 >> 16) # lui $s1, 0xff +/* 0E00F8 7F0AB5C8 27190001 */ addiu $t9, $t8, 1 +/* 0E00FC 7F0AB5CC AFB90020 */ sw $t9, 0x20($sp) +/* 0E0100 7F0AB5D0 363100B0 */ ori $s1, (0x00FF00B0 & 0xFFFF) # ori $s1, $s1, 0xb0 +/* 0E0104 7F0AB5D4 AFAF001C */ sw $t7, 0x1c($sp) +/* 0E0108 7F0AB5D8 02002025 */ move $a0, $s0 +/* 0E010C 7F0AB5DC 27A5005C */ addiu $a1, $sp, 0x5c +/* 0E0110 7F0AB5E0 AFAD0010 */ sw $t5, 0x10($sp) +/* 0E0114 7F0AB5E4 AFA00028 */ sw $zero, 0x28($sp) +/* 0E0118 7F0AB5E8 AFA0002C */ sw $zero, 0x2c($sp) +/* 0E011C 7F0AB5EC AFAE0014 */ sw $t6, 0x14($sp) +/* 0E0120 7F0AB5F0 0FC2B9BB */ jal jp_text_write_stuff +/* 0E0124 7F0AB5F4 AFA80024 */ sw $t0, 0x24($sp) +/* 0E0128 7F0AB5F8 10000012 */ b .L7F0AB644 +/* 0E012C 7F0AB5FC 00408025 */ move $s0, $v0 +.L7F0AB600: +/* 0E0130 7F0AB600 8FA90048 */ lw $t1, 0x48($sp) +/* 0E0134 7F0AB604 8FAA004C */ lw $t2, 0x4c($sp) +/* 0E0138 7F0AB608 8FAB0054 */ lw $t3, 0x54($sp) +/* 0E013C 7F0AB60C 8FAC0050 */ lw $t4, 0x50($sp) +/* 0E0140 7F0AB610 AFB10018 */ sw $s1, 0x18($sp) +/* 0E0144 7F0AB614 3C1100FF */ lui $s1, (0x00FF00B0 >> 16) # lui $s1, 0xff +/* 0E0148 7F0AB618 363100B0 */ ori $s1, (0x00FF00B0 & 0xFFFF) # ori $s1, $s1, 0xb0 +/* 0E014C 7F0AB61C 27A60058 */ addiu $a2, $sp, 0x58 +/* 0E0150 7F0AB620 02403825 */ move $a3, $s2 +/* 0E0154 7F0AB624 AFA00024 */ sw $zero, 0x24($sp) +/* 0E0158 7F0AB628 AFA00028 */ sw $zero, 0x28($sp) +/* 0E015C 7F0AB62C AFA90010 */ sw $t1, 0x10($sp) +/* 0E0160 7F0AB630 AFAA0014 */ sw $t2, 0x14($sp) +/* 0E0164 7F0AB634 AFAB001C */ sw $t3, 0x1c($sp) +/* 0E0168 7F0AB638 0FC2B6AF */ jal en_text_write_stuff +/* 0E016C 7F0AB63C AFAC0020 */ sw $t4, 0x20($sp) +/* 0E0170 7F0AB640 00408025 */ move $s0, $v0 +.L7F0AB644: +/* 0E0174 7F0AB644 0FC2A5F4 */ jal sub_GAME_7F0A97D0 +/* 0E0178 7F0AB648 02002025 */ move $a0, $s0 +/* 0E017C 7F0AB64C 00408025 */ move $s0, $v0 +/* 0E0180 7F0AB650 0FC30776 */ jal get_textptr_for_textID +/* 0E0184 7F0AB654 3404AC33 */ li $a0, 44083 +/* 0E0188 7F0AB658 0FC2935D */ jal controllerCheckDualControllerTypesAllowed +/* 0E018C 7F0AB65C 00409025 */ move $s2, $v0 +/* 0E0190 7F0AB660 10400004 */ beqz $v0, .L7F0AB674 +/* 0E0194 7F0AB664 00000000 */ nop +/* 0E0198 7F0AB668 0FC30776 */ jal get_textptr_for_textID +/* 0E019C 7F0AB66C 3404AC34 */ li $a0, 44084 +/* 0E01A0 7F0AB670 00409025 */ move $s2, $v0 +.L7F0AB674: +/* 0E01A4 7F0AB674 3C0F8004 */ lui $t7, %hi(D_80040998) +/* 0E01A8 7F0AB678 8DEF0998 */ lw $t7, %lo(D_80040998)($t7) +/* 0E01AC 7F0AB67C 240D0040 */ li $t5, 64 +/* 0E01B0 7F0AB680 240E002B */ li $t6, 43 +/* 0E01B4 7F0AB684 24010001 */ li $at, 1 +/* 0E01B8 7F0AB688 AFAD005C */ sw $t5, 0x5c($sp) +/* 0E01BC 7F0AB68C 15E10008 */ bne $t7, $at, .L7F0AB6B0 +/* 0E01C0 7F0AB690 AFAE0058 */ sw $t6, 0x58($sp) +/* 0E01C4 7F0AB694 3C188004 */ lui $t8, %hi(watch_soundrelated_maybe) +/* 0E01C8 7F0AB698 8F1809A8 */ lw $t8, %lo(watch_soundrelated_maybe)($t8) +/* 0E01CC 7F0AB69C 3C11A0FF */ lui $s1, (0xA0FFA0F0 >> 16) # lui $s1, 0xa0ff +/* 0E01D0 7F0AB6A0 3631A0F0 */ ori $s1, (0xA0FFA0F0 & 0xFFFF) # ori $s1, $s1, 0xa0f0 +/* 0E01D4 7F0AB6A4 53000003 */ beql $t8, $zero, .L7F0AB6B4 +/* 0E01D8 7F0AB6A8 8FB9004C */ lw $t9, 0x4c($sp) +/* 0E01DC 7F0AB6AC 2411FFFF */ li $s1, -1 +.L7F0AB6B0: +/* 0E01E0 7F0AB6B0 8FB9004C */ lw $t9, 0x4c($sp) +.L7F0AB6B4: +/* 0E01E4 7F0AB6B4 27A40050 */ addiu $a0, $sp, 0x50 +/* 0E01E8 7F0AB6B8 27A50054 */ addiu $a1, $sp, 0x54 +/* 0E01EC 7F0AB6BC 02403025 */ move $a2, $s2 +/* 0E01F0 7F0AB6C0 8FA70048 */ lw $a3, 0x48($sp) +/* 0E01F4 7F0AB6C4 AFA00014 */ sw $zero, 0x14($sp) +/* 0E01F8 7F0AB6C8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E01FC 7F0AB6CC AFB90010 */ sw $t9, 0x10($sp) +/* 0E0200 7F0AB6D0 3C088004 */ lui $t0, %hi(watch_soundrelated_maybe) +/* 0E0204 7F0AB6D4 8D0809A8 */ lw $t0, %lo(watch_soundrelated_maybe)($t0) +/* 0E0208 7F0AB6D8 3C098004 */ lui $t1, %hi(D_80040998) +/* 0E020C 7F0AB6DC 02002025 */ move $a0, $s0 +/* 0E0210 7F0AB6E0 1100001A */ beqz $t0, .L7F0AB74C +/* 0E0214 7F0AB6E4 27A5005C */ addiu $a1, $sp, 0x5c +/* 0E0218 7F0AB6E8 8D290998 */ lw $t1, %lo(D_80040998)($t1) +/* 0E021C 7F0AB6EC 24010001 */ li $at, 1 +/* 0E0220 7F0AB6F0 27A60058 */ addiu $a2, $sp, 0x58 +/* 0E0224 7F0AB6F4 15210015 */ bne $t1, $at, .L7F0AB74C +/* 0E0228 7F0AB6F8 02403825 */ move $a3, $s2 +/* 0E022C 7F0AB6FC 8FAD0054 */ lw $t5, 0x54($sp) +/* 0E0230 7F0AB700 8FAA0048 */ lw $t2, 0x48($sp) +/* 0E0234 7F0AB704 8FAB004C */ lw $t3, 0x4c($sp) +/* 0E0238 7F0AB708 8FAF0050 */ lw $t7, 0x50($sp) +/* 0E023C 7F0AB70C 3C0C0070 */ lui $t4, (0x007000A0 >> 16) # lui $t4, 0x70 +/* 0E0240 7F0AB710 358C00A0 */ ori $t4, (0x007000A0 & 0xFFFF) # ori $t4, $t4, 0xa0 +/* 0E0244 7F0AB714 25AE0001 */ addiu $t6, $t5, 1 +/* 0E0248 7F0AB718 AFAE0020 */ sw $t6, 0x20($sp) +/* 0E024C 7F0AB71C AFAC001C */ sw $t4, 0x1c($sp) +/* 0E0250 7F0AB720 02002025 */ move $a0, $s0 +/* 0E0254 7F0AB724 27A5005C */ addiu $a1, $sp, 0x5c +/* 0E0258 7F0AB728 AFB10018 */ sw $s1, 0x18($sp) +/* 0E025C 7F0AB72C AFA00028 */ sw $zero, 0x28($sp) +/* 0E0260 7F0AB730 AFA0002C */ sw $zero, 0x2c($sp) +/* 0E0264 7F0AB734 AFAA0010 */ sw $t2, 0x10($sp) +/* 0E0268 7F0AB738 AFAB0014 */ sw $t3, 0x14($sp) +/* 0E026C 7F0AB73C 0FC2B9BB */ jal jp_text_write_stuff +/* 0E0270 7F0AB740 AFAF0024 */ sw $t7, 0x24($sp) +/* 0E0274 7F0AB744 10000010 */ b .L7F0AB788 +/* 0E0278 7F0AB748 00408025 */ move $s0, $v0 +.L7F0AB74C: +/* 0E027C 7F0AB74C 8FB80048 */ lw $t8, 0x48($sp) +/* 0E0280 7F0AB750 8FB9004C */ lw $t9, 0x4c($sp) +/* 0E0284 7F0AB754 8FA80054 */ lw $t0, 0x54($sp) +/* 0E0288 7F0AB758 8FA90050 */ lw $t1, 0x50($sp) +/* 0E028C 7F0AB75C 27A60058 */ addiu $a2, $sp, 0x58 +/* 0E0290 7F0AB760 02403825 */ move $a3, $s2 +/* 0E0294 7F0AB764 AFB10018 */ sw $s1, 0x18($sp) +/* 0E0298 7F0AB768 AFA00024 */ sw $zero, 0x24($sp) +/* 0E029C 7F0AB76C AFA00028 */ sw $zero, 0x28($sp) +/* 0E02A0 7F0AB770 AFB80010 */ sw $t8, 0x10($sp) +/* 0E02A4 7F0AB774 AFB90014 */ sw $t9, 0x14($sp) +/* 0E02A8 7F0AB778 AFA8001C */ sw $t0, 0x1c($sp) +/* 0E02AC 7F0AB77C 0FC2B6AF */ jal en_text_write_stuff +/* 0E02B0 7F0AB780 AFA90020 */ sw $t1, 0x20($sp) +/* 0E02B4 7F0AB784 00408025 */ move $s0, $v0 +.L7F0AB788: +/* 0E02B8 7F0AB788 8FBF0044 */ lw $ra, 0x44($sp) +.L7F0AB78C: +/* 0E02BC 7F0AB78C 02001025 */ move $v0, $s0 +/* 0E02C0 7F0AB790 8FB00038 */ lw $s0, 0x38($sp) +/* 0E02C4 7F0AB794 8FB1003C */ lw $s1, 0x3c($sp) +/* 0E02C8 7F0AB798 8FB20040 */ lw $s2, 0x40($sp) +/* 0E02CC 7F0AB79C 03E00008 */ jr $ra +/* 0E02D0 7F0AB7A0 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + + + + + + +void set_pparam1toparam2_disablejoylr_playsfx(u32 *param_1,u32 param_2) +{ + *param_1 = param_2; + set_controlstick_lr_disabled(); + play_sfx_a1(ptr_sfx_buf,0x2b,NULL); +} + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AB7D8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AB7D8 +/* 0E0308 7F0AB7D8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0E030C 7F0AB7DC AFBF0014 */ sw $ra, 0x14($sp) +/* 0E0310 7F0AB7E0 AFA40018 */ sw $a0, 0x18($sp) +/* 0E0314 7F0AB7E4 00002025 */ move $a0, $zero +/* 0E0318 7F0AB7E8 0C0030EB */ jal get_controller_buttons_pressed +/* 0E031C 7F0AB7EC 24050222 */ li $a1, 546 +/* 0E0320 7F0AB7F0 14400004 */ bnez $v0, .L7F0AB804 +/* 0E0324 7F0AB7F4 00000000 */ nop +/* 0E0328 7F0AB7F8 0FC293EC */ jal sub_GAME_7F0A4FB0 +/* 0E032C 7F0AB7FC 00000000 */ nop +/* 0E0330 7F0AB800 1040001A */ beqz $v0, .L7F0AB86C +.L7F0AB804: +/* 0E0334 7F0AB804 3C0E8004 */ lui $t6, %hi(watch_soundrelated_maybe) +/* 0E0338 7F0AB808 8DCE09A8 */ lw $t6, %lo(watch_soundrelated_maybe)($t6) +/* 0E033C 7F0AB80C 8FAF0018 */ lw $t7, 0x18($sp) +/* 0E0340 7F0AB810 3C198004 */ lui $t9, %hi(D_80040A7C) +/* 0E0344 7F0AB814 11C00015 */ beqz $t6, .L7F0AB86C +/* 0E0348 7F0AB818 000FC080 */ sll $t8, $t7, 2 +/* 0E034C 7F0AB81C 030FC023 */ subu $t8, $t8, $t7 +/* 0E0350 7F0AB820 0018C080 */ sll $t8, $t8, 2 +/* 0E0354 7F0AB824 27390A7C */ addiu $t9, %lo(D_80040A7C) # addiu $t9, $t9, 0xa7c +/* 0E0358 7F0AB828 03191021 */ addu $v0, $t8, $t9 +/* 0E035C 7F0AB82C 8C430008 */ lw $v1, 8($v0) +/* 0E0360 7F0AB830 24010001 */ li $at, 1 +/* 0E0364 7F0AB834 24440008 */ addiu $a0, $v0, 8 +/* 0E0368 7F0AB838 54610006 */ bnel $v1, $at, .L7F0AB854 +/* 0E036C 7F0AB83C 24010002 */ li $at, 2 +/* 0E0370 7F0AB840 0FC2ADE9 */ jal set_pparam1toparam2_disablejoylr_playsfx +/* 0E0374 7F0AB844 00002825 */ move $a1, $zero +/* 0E0378 7F0AB848 1000002C */ b .L7F0AB8FC +/* 0E037C 7F0AB84C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E0380 7F0AB850 24010002 */ li $at, 2 +.L7F0AB854: +/* 0E0384 7F0AB854 14610028 */ bne $v1, $at, .L7F0AB8F8 +/* 0E0388 7F0AB858 24440008 */ addiu $a0, $v0, 8 +/* 0E038C 7F0AB85C 0FC2ADE9 */ jal set_pparam1toparam2_disablejoylr_playsfx +/* 0E0390 7F0AB860 24050001 */ li $a1, 1 +/* 0E0394 7F0AB864 10000025 */ b .L7F0AB8FC +/* 0E0398 7F0AB868 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0AB86C: +/* 0E039C 7F0AB86C 00002025 */ move $a0, $zero +/* 0E03A0 7F0AB870 0C0030EB */ jal get_controller_buttons_pressed +/* 0E03A4 7F0AB874 24050111 */ li $a1, 273 +/* 0E03A8 7F0AB878 14400004 */ bnez $v0, .L7F0AB88C +/* 0E03AC 7F0AB87C 00000000 */ nop +/* 0E03B0 7F0AB880 0FC293FB */ jal sub_GAME_7F0A4FEC +/* 0E03B4 7F0AB884 00000000 */ nop +/* 0E03B8 7F0AB888 1040001B */ beqz $v0, .L7F0AB8F8 +.L7F0AB88C: +/* 0E03BC 7F0AB88C 3C088004 */ lui $t0, %hi(watch_soundrelated_maybe) +/* 0E03C0 7F0AB890 8D0809A8 */ lw $t0, %lo(watch_soundrelated_maybe)($t0) +/* 0E03C4 7F0AB894 8FA90018 */ lw $t1, 0x18($sp) +/* 0E03C8 7F0AB898 3C0B8004 */ lui $t3, %hi(D_80040A7C) +/* 0E03CC 7F0AB89C 11000016 */ beqz $t0, .L7F0AB8F8 +/* 0E03D0 7F0AB8A0 00095080 */ sll $t2, $t1, 2 +/* 0E03D4 7F0AB8A4 01495023 */ subu $t2, $t2, $t1 +/* 0E03D8 7F0AB8A8 000A5080 */ sll $t2, $t2, 2 +/* 0E03DC 7F0AB8AC 256B0A7C */ addiu $t3, %lo(D_80040A7C) # addiu $t3, $t3, 0xa7c +/* 0E03E0 7F0AB8B0 014B1021 */ addu $v0, $t2, $t3 +/* 0E03E4 7F0AB8B4 8C430008 */ lw $v1, 8($v0) +/* 0E03E8 7F0AB8B8 24440008 */ addiu $a0, $v0, 8 +/* 0E03EC 7F0AB8BC 24010001 */ li $at, 1 +/* 0E03F0 7F0AB8C0 14600005 */ bnez $v1, .L7F0AB8D8 +/* 0E03F4 7F0AB8C4 00000000 */ nop +/* 0E03F8 7F0AB8C8 0FC2ADE9 */ jal set_pparam1toparam2_disablejoylr_playsfx +/* 0E03FC 7F0AB8CC 24050001 */ li $a1, 1 +/* 0E0400 7F0AB8D0 1000000A */ b .L7F0AB8FC +/* 0E0404 7F0AB8D4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0AB8D8: +/* 0E0408 7F0AB8D8 54610008 */ bnel $v1, $at, .L7F0AB8FC +/* 0E040C 7F0AB8DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E0410 7F0AB8E0 944C0006 */ lhu $t4, 6($v0) +/* 0E0414 7F0AB8E4 24440008 */ addiu $a0, $v0, 8 +/* 0E0418 7F0AB8E8 51800004 */ beql $t4, $zero, .L7F0AB8FC +/* 0E041C 7F0AB8EC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0E0420 7F0AB8F0 0FC2ADE9 */ jal set_pparam1toparam2_disablejoylr_playsfx +/* 0E0424 7F0AB8F4 24050002 */ li $a1, 2 +.L7F0AB8F8: +/* 0E0428 7F0AB8F8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0AB8FC: +/* 0E042C 7F0AB8FC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0E0430 7F0AB900 03E00008 */ jr $ra +/* 0E0434 7F0AB904 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AB908(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AB908 +/* 0E0438 7F0AB908 3C038005 */ lui $v1, %hi(j_text_trigger) +/* 0E043C 7F0AB90C 8C6384D0 */ lw $v1, %lo(j_text_trigger)($v1) +/* 0E0440 7F0AB910 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0E0444 7F0AB914 3C020080 */ lui $v0, 0x80 +/* 0E0448 7F0AB918 344A0080 */ ori $t2, $v0, 0x80 +/* 0E044C 7F0AB91C AFBF0034 */ sw $ra, 0x34($sp) +/* 0E0450 7F0AB920 AFA40060 */ sw $a0, 0x60($sp) +/* 0E0454 7F0AB924 AFA50064 */ sw $a1, 0x64($sp) +/* 0E0458 7F0AB928 01404825 */ move $t1, $t2 +/* 0E045C 7F0AB92C 10600003 */ beqz $v1, .L7F0AB93C +/* 0E0460 7F0AB930 AFAA0054 */ sw $t2, 0x54($sp) +/* 0E0464 7F0AB934 10000002 */ b .L7F0AB940 +/* 0E0468 7F0AB938 240500AA */ li $a1, 170 +.L7F0AB93C: +/* 0E046C 7F0AB93C 240500B4 */ li $a1, 180 +.L7F0AB940: +/* 0E0470 7F0AB940 10600004 */ beqz $v1, .L7F0AB954 +/* 0E0474 7F0AB944 240F00E1 */ li $t7, 225 +/* 0E0478 7F0AB948 240E00DC */ li $t6, 220 +/* 0E047C 7F0AB94C 10000002 */ b .L7F0AB958 +/* 0E0480 7F0AB950 AFAE004C */ sw $t6, 0x4c($sp) +.L7F0AB954: +/* 0E0484 7F0AB954 AFAF004C */ sw $t7, 0x4c($sp) +.L7F0AB958: +/* 0E0488 7F0AB958 10E0000D */ beqz $a3, .L7F0AB990 +/* 0E048C 7F0AB95C 00065880 */ sll $t3, $a2, 2 +/* 0E0490 7F0AB960 24030001 */ li $v1, 1 +/* 0E0494 7F0AB964 10E30020 */ beq $a3, $v1, .L7F0AB9E8 +/* 0E0498 7F0AB968 00067080 */ sll $t6, $a2, 2 +/* 0E049C 7F0AB96C 24010002 */ li $at, 2 +/* 0E04A0 7F0AB970 10E10032 */ beq $a3, $at, .L7F0ABA3C +/* 0E04A4 7F0AB974 0006C080 */ sll $t8, $a2, 2 +/* 0E04A8 7F0AB978 0306C023 */ subu $t8, $t8, $a2 +/* 0E04AC 7F0AB97C 3C198004 */ lui $t9, %hi(D_80040A7C) +/* 0E04B0 7F0AB980 27390A7C */ addiu $t9, %lo(D_80040A7C) # addiu $t9, $t9, 0xa7c +/* 0E04B4 7F0AB984 0018C080 */ sll $t8, $t8, 2 +/* 0E04B8 7F0AB988 1000004B */ b .L7F0ABAB8 +/* 0E04BC 7F0AB98C 03194021 */ addu $t0, $t8, $t9 +.L7F0AB990: +/* 0E04C0 7F0AB990 01665823 */ subu $t3, $t3, $a2 +/* 0E04C4 7F0AB994 3C0C8004 */ lui $t4, %hi(D_80040A7C) +/* 0E04C8 7F0AB998 258C0A7C */ addiu $t4, %lo(D_80040A7C) # addiu $t4, $t4, 0xa7c +/* 0E04CC 7F0AB99C 000B5880 */ sll $t3, $t3, 2 +/* 0E04D0 7F0AB9A0 016C4021 */ addu $t0, $t3, $t4 +/* 0E04D4 7F0AB9A4 8D020008 */ lw $v0, 8($t0) +/* 0E04D8 7F0AB9A8 24030001 */ li $v1, 1 +/* 0E04DC 7F0AB9AC 14400004 */ bnez $v0, .L7F0AB9C0 +/* 0E04E0 7F0AB9B0 00000000 */ nop +/* 0E04E4 7F0AB9B4 3C0900FF */ lui $t1, (0x00FF00B0 >> 16) # lui $t1, 0xff +/* 0E04E8 7F0AB9B8 1000003F */ b .L7F0ABAB8 +/* 0E04EC 7F0AB9BC 352900B0 */ ori $t1, (0x00FF00B0 & 0xFFFF) # ori $t1, $t1, 0xb0 +.L7F0AB9C0: +/* 0E04F0 7F0AB9C0 14620004 */ bne $v1, $v0, .L7F0AB9D4 +/* 0E04F4 7F0AB9C4 24010002 */ li $at, 2 +/* 0E04F8 7F0AB9C8 3C0A00FF */ lui $t2, (0x00FF00B0 >> 16) # lui $t2, 0xff +/* 0E04FC 7F0AB9CC 1000003A */ b .L7F0ABAB8 +/* 0E0500 7F0AB9D0 354A00B0 */ ori $t2, (0x00FF00B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +.L7F0AB9D4: +/* 0E0504 7F0AB9D4 14410038 */ bne $v0, $at, .L7F0ABAB8 +/* 0E0508 7F0AB9D8 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0E050C 7F0AB9DC 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0E0510 7F0AB9E0 10000035 */ b .L7F0ABAB8 +/* 0E0514 7F0AB9E4 AFAD0054 */ sw $t5, 0x54($sp) +.L7F0AB9E8: +/* 0E0518 7F0AB9E8 01C67023 */ subu $t6, $t6, $a2 +/* 0E051C 7F0AB9EC 3C0F8004 */ lui $t7, %hi(D_80040A7C) +/* 0E0520 7F0AB9F0 25EF0A7C */ addiu $t7, %lo(D_80040A7C) # addiu $t7, $t7, 0xa7c +/* 0E0524 7F0AB9F4 000E7080 */ sll $t6, $t6, 2 +/* 0E0528 7F0AB9F8 01CF4021 */ addu $t0, $t6, $t7 +/* 0E052C 7F0AB9FC 8D020008 */ lw $v0, 8($t0) +/* 0E0530 7F0ABA00 14400004 */ bnez $v0, .L7F0ABA14 +/* 0E0534 7F0ABA04 00000000 */ nop +/* 0E0538 7F0ABA08 3C0900FF */ lui $t1, (0x00FF00B0 >> 16) # lui $t1, 0xff +/* 0E053C 7F0ABA0C 1000002A */ b .L7F0ABAB8 +/* 0E0540 7F0ABA10 352900B0 */ ori $t1, (0x00FF00B0 & 0xFFFF) # ori $t1, $t1, 0xb0 +.L7F0ABA14: +/* 0E0544 7F0ABA14 14620004 */ bne $v1, $v0, .L7F0ABA28 +/* 0E0548 7F0ABA18 24010002 */ li $at, 2 +/* 0E054C 7F0ABA1C 3C0A00FF */ lui $t2, (0x00FF00B0 >> 16) # lui $t2, 0xff +/* 0E0550 7F0ABA20 10000025 */ b .L7F0ABAB8 +/* 0E0554 7F0ABA24 354A00B0 */ ori $t2, (0x00FF00B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +.L7F0ABA28: +/* 0E0558 7F0ABA28 14410023 */ bne $v0, $at, .L7F0ABAB8 +/* 0E055C 7F0ABA2C 3C1800FF */ lui $t8, (0x00FF00B0 >> 16) # lui $t8, 0xff +/* 0E0560 7F0ABA30 371800B0 */ ori $t8, (0x00FF00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0E0564 7F0ABA34 10000020 */ b .L7F0ABAB8 +/* 0E0568 7F0ABA38 AFB80054 */ sw $t8, 0x54($sp) +.L7F0ABA3C: +/* 0E056C 7F0ABA3C 00C02025 */ move $a0, $a2 +/* 0E0570 7F0ABA40 AFA50050 */ sw $a1, 0x50($sp) +/* 0E0574 7F0ABA44 AFA60068 */ sw $a2, 0x68($sp) +/* 0E0578 7F0ABA48 AFA9005C */ sw $t1, 0x5c($sp) +/* 0E057C 7F0ABA4C 0FC2ADF6 */ jal sub_GAME_7F0AB7D8 +/* 0E0580 7F0ABA50 AFAA0058 */ sw $t2, 0x58($sp) +/* 0E0584 7F0ABA54 8FA60068 */ lw $a2, 0x68($sp) +/* 0E0588 7F0ABA58 3C0B8004 */ lui $t3, %hi(D_80040A7C) +/* 0E058C 7F0ABA5C 256B0A7C */ addiu $t3, %lo(D_80040A7C) # addiu $t3, $t3, 0xa7c +/* 0E0590 7F0ABA60 0006C880 */ sll $t9, $a2, 2 +/* 0E0594 7F0ABA64 0326C823 */ subu $t9, $t9, $a2 +/* 0E0598 7F0ABA68 0019C880 */ sll $t9, $t9, 2 +/* 0E059C 7F0ABA6C 032B4021 */ addu $t0, $t9, $t3 +/* 0E05A0 7F0ABA70 8D020008 */ lw $v0, 8($t0) +/* 0E05A4 7F0ABA74 24030001 */ li $v1, 1 +/* 0E05A8 7F0ABA78 8FA50050 */ lw $a1, 0x50($sp) +/* 0E05AC 7F0ABA7C 8FA9005C */ lw $t1, 0x5c($sp) +/* 0E05B0 7F0ABA80 14400004 */ bnez $v0, .L7F0ABA94 +/* 0E05B4 7F0ABA84 8FAA0058 */ lw $t2, 0x58($sp) +/* 0E05B8 7F0ABA88 3C09A0FF */ lui $t1, (0xA0FFA0F0 >> 16) # lui $t1, 0xa0ff +/* 0E05BC 7F0ABA8C 1000000A */ b .L7F0ABAB8 +/* 0E05C0 7F0ABA90 3529A0F0 */ ori $t1, (0xA0FFA0F0 & 0xFFFF) # ori $t1, $t1, 0xa0f0 +.L7F0ABA94: +/* 0E05C4 7F0ABA94 14620004 */ bne $v1, $v0, .L7F0ABAA8 +/* 0E05C8 7F0ABA98 24010002 */ li $at, 2 +/* 0E05CC 7F0ABA9C 3C0AA0FF */ lui $t2, (0xA0FFA0F0 >> 16) # lui $t2, 0xa0ff +/* 0E05D0 7F0ABAA0 10000005 */ b .L7F0ABAB8 +/* 0E05D4 7F0ABAA4 354AA0F0 */ ori $t2, (0xA0FFA0F0 & 0xFFFF) # ori $t2, $t2, 0xa0f0 +.L7F0ABAA8: +/* 0E05D8 7F0ABAA8 14410003 */ bne $v0, $at, .L7F0ABAB8 +/* 0E05DC 7F0ABAAC 3C0CA0FF */ lui $t4, (0xA0FFA0F0 >> 16) # lui $t4, 0xa0ff +/* 0E05E0 7F0ABAB0 358CA0F0 */ ori $t4, (0xA0FFA0F0 & 0xFFFF) # ori $t4, $t4, 0xa0f0 +/* 0E05E4 7F0ABAB4 AFAC0054 */ sw $t4, 0x54($sp) +.L7F0ABAB8: +/* 0E05E8 7F0ABAB8 950D0006 */ lhu $t5, 6($t0) +/* 0E05EC 7F0ABABC 15A0000D */ bnez $t5, .L7F0ABAF4 +/* 0E05F0 7F0ABAC0 3C038005 */ lui $v1, %hi(j_text_trigger) +/* 0E05F4 7F0ABAC4 8C6384D0 */ lw $v1, %lo(j_text_trigger)($v1) +/* 0E05F8 7F0ABAC8 240500C8 */ li $a1, 200 +/* 0E05FC 7F0ABACC 240F00FA */ li $t7, 250 +/* 0E0600 7F0ABAD0 10600003 */ beqz $v1, .L7F0ABAE0 +/* 0E0604 7F0ABAD4 240E00FA */ li $t6, 250 +/* 0E0608 7F0ABAD8 10000001 */ b .L7F0ABAE0 +/* 0E060C 7F0ABADC 240500BE */ li $a1, 190 +.L7F0ABAE0: +/* 0E0610 7F0ABAE0 50600004 */ beql $v1, $zero, .L7F0ABAF4 +/* 0E0614 7F0ABAE4 AFAF004C */ sw $t7, 0x4c($sp) +/* 0E0618 7F0ABAE8 10000002 */ b .L7F0ABAF4 +/* 0E061C 7F0ABAEC AFAE004C */ sw $t6, 0x4c($sp) +/* 0E0620 7F0ABAF0 AFAF004C */ sw $t7, 0x4c($sp) +.L7F0ABAF4: +/* 0E0624 7F0ABAF4 95040002 */ lhu $a0, 2($t0) +/* 0E0628 7F0ABAF8 AFA50050 */ sw $a1, 0x50($sp) +/* 0E062C 7F0ABAFC AFA8003C */ sw $t0, 0x3c($sp) +/* 0E0630 7F0ABB00 AFA9005C */ sw $t1, 0x5c($sp) +/* 0E0634 7F0ABB04 0FC30776 */ jal get_textptr_for_textID +/* 0E0638 7F0ABB08 AFAA0058 */ sw $t2, 0x58($sp) +/* 0E063C 7F0ABB0C 8FA9005C */ lw $t1, 0x5c($sp) +/* 0E0640 7F0ABB10 3C0B0030 */ lui $t3, (0x003000B0 >> 16) # lui $t3, 0x30 +/* 0E0644 7F0ABB14 356B00B0 */ ori $t3, (0x003000B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0E0648 7F0ABB18 2418FFFF */ li $t8, -1 +/* 0E064C 7F0ABB1C 24190001 */ li $t9, 1 +/* 0E0650 7F0ABB20 AFB9001C */ sw $t9, 0x1c($sp) +/* 0E0654 7F0ABB24 AFB80018 */ sw $t8, 0x18($sp) +/* 0E0658 7F0ABB28 AFAB0024 */ sw $t3, 0x24($sp) +/* 0E065C 7F0ABB2C 8FA50050 */ lw $a1, 0x50($sp) +/* 0E0660 7F0ABB30 8FA40060 */ lw $a0, 0x60($sp) +/* 0E0664 7F0ABB34 8FA60064 */ lw $a2, 0x64($sp) +/* 0E0668 7F0ABB38 00403825 */ move $a3, $v0 +/* 0E066C 7F0ABB3C AFA00014 */ sw $zero, 0x14($sp) +/* 0E0670 7F0ABB40 AFA00020 */ sw $zero, 0x20($sp) +/* 0E0674 7F0ABB44 AFA00028 */ sw $zero, 0x28($sp) +/* 0E0678 7F0ABB48 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0E067C 7F0ABB4C AFA90010 */ sw $t1, 0x10($sp) +/* 0E0680 7F0ABB50 8FA8003C */ lw $t0, 0x3c($sp) +/* 0E0684 7F0ABB54 AFA20060 */ sw $v0, 0x60($sp) +/* 0E0688 7F0ABB58 0FC30776 */ jal get_textptr_for_textID +/* 0E068C 7F0ABB5C 95040004 */ lhu $a0, 4($t0) +/* 0E0690 7F0ABB60 8FAA0058 */ lw $t2, 0x58($sp) +/* 0E0694 7F0ABB64 3C0E0030 */ lui $t6, (0x003000B0 >> 16) # lui $t6, 0x30 +/* 0E0698 7F0ABB68 35CE00B0 */ ori $t6, (0x003000B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0E069C 7F0ABB6C 240CFFFF */ li $t4, -1 +/* 0E06A0 7F0ABB70 240D0001 */ li $t5, 1 +/* 0E06A4 7F0ABB74 AFAD001C */ sw $t5, 0x1c($sp) +/* 0E06A8 7F0ABB78 AFAC0018 */ sw $t4, 0x18($sp) +/* 0E06AC 7F0ABB7C AFAE0024 */ sw $t6, 0x24($sp) +/* 0E06B0 7F0ABB80 8FA40060 */ lw $a0, 0x60($sp) +/* 0E06B4 7F0ABB84 8FA5004C */ lw $a1, 0x4c($sp) +/* 0E06B8 7F0ABB88 8FA60064 */ lw $a2, 0x64($sp) +/* 0E06BC 7F0ABB8C 00403825 */ move $a3, $v0 +/* 0E06C0 7F0ABB90 AFA00014 */ sw $zero, 0x14($sp) +/* 0E06C4 7F0ABB94 AFA00020 */ sw $zero, 0x20($sp) +/* 0E06C8 7F0ABB98 AFA00028 */ sw $zero, 0x28($sp) +/* 0E06CC 7F0ABB9C 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0E06D0 7F0ABBA0 AFAA0010 */ sw $t2, 0x10($sp) +/* 0E06D4 7F0ABBA4 8FA8003C */ lw $t0, 0x3c($sp) +/* 0E06D8 7F0ABBA8 AFA20060 */ sw $v0, 0x60($sp) +/* 0E06DC 7F0ABBAC 95030006 */ lhu $v1, 6($t0) +/* 0E06E0 7F0ABBB0 50600016 */ beql $v1, $zero, .L7F0ABC0C +/* 0E06E4 7F0ABBB4 8FBF0034 */ lw $ra, 0x34($sp) +/* 0E06E8 7F0ABBB8 0FC30776 */ jal get_textptr_for_textID +/* 0E06EC 7F0ABBBC 00602025 */ move $a0, $v1 +/* 0E06F0 7F0ABBC0 8FAF0054 */ lw $t7, 0x54($sp) +/* 0E06F4 7F0ABBC4 3C0B0030 */ lui $t3, (0x003000B0 >> 16) # lui $t3, 0x30 +/* 0E06F8 7F0ABBC8 356B00B0 */ ori $t3, (0x003000B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0E06FC 7F0ABBCC 2418FFFF */ li $t8, -1 +/* 0E0700 7F0ABBD0 24190001 */ li $t9, 1 +/* 0E0704 7F0ABBD4 AFB9001C */ sw $t9, 0x1c($sp) +/* 0E0708 7F0ABBD8 AFB80018 */ sw $t8, 0x18($sp) +/* 0E070C 7F0ABBDC AFAB0024 */ sw $t3, 0x24($sp) +/* 0E0710 7F0ABBE0 8FA40060 */ lw $a0, 0x60($sp) +/* 0E0714 7F0ABBE4 2405010E */ li $a1, 270 +/* 0E0718 7F0ABBE8 8FA60064 */ lw $a2, 0x64($sp) +/* 0E071C 7F0ABBEC 00403825 */ move $a3, $v0 +/* 0E0720 7F0ABBF0 AFA00014 */ sw $zero, 0x14($sp) +/* 0E0724 7F0ABBF4 AFA00020 */ sw $zero, 0x20($sp) +/* 0E0728 7F0ABBF8 AFA00028 */ sw $zero, 0x28($sp) +/* 0E072C 7F0ABBFC 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0E0730 7F0ABC00 AFAF0010 */ sw $t7, 0x10($sp) +/* 0E0734 7F0ABC04 AFA20060 */ sw $v0, 0x60($sp) +/* 0E0738 7F0ABC08 8FBF0034 */ lw $ra, 0x34($sp) +.L7F0ABC0C: +/* 0E073C 7F0ABC0C 8FA20060 */ lw $v0, 0x60($sp) +/* 0E0740 7F0ABC10 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0E0744 7F0ABC14 03E00008 */ jr $ra +/* 0E0748 7F0ABC18 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0ABC1C(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0ABC1C +/* 0E074C 7F0ABC1C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0E0750 7F0ABC20 AFBF005C */ sw $ra, 0x5c($sp) +/* 0E0754 7F0ABC24 AFBE0058 */ sw $fp, 0x58($sp) +/* 0E0758 7F0ABC28 AFB70054 */ sw $s7, 0x54($sp) +/* 0E075C 7F0ABC2C AFB60050 */ sw $s6, 0x50($sp) +/* 0E0760 7F0ABC30 AFB5004C */ sw $s5, 0x4c($sp) +/* 0E0764 7F0ABC34 AFB40048 */ sw $s4, 0x48($sp) +/* 0E0768 7F0ABC38 AFB30044 */ sw $s3, 0x44($sp) +/* 0E076C 7F0ABC3C AFB20040 */ sw $s2, 0x40($sp) +/* 0E0770 7F0ABC40 AFB1003C */ sw $s1, 0x3c($sp) +/* 0E0774 7F0ABC44 0FC2B366 */ jal microcode_constructor +/* 0E0778 7F0ABC48 AFB00038 */ sw $s0, 0x38($sp) +/* 0E077C 7F0ABC4C 3C138004 */ lui $s3, %hi(D_80040A7C) +/* 0E0780 7F0ABC50 3C170070 */ lui $s7, (0x007000A0 >> 16) # lui $s7, 0x70 +/* 0E0784 7F0ABC54 3C168004 */ lui $s6, %hi(watch_soundrelated_maybe) +/* 0E0788 7F0ABC58 3C158004 */ lui $s5, %hi(D_8004099C) +/* 0E078C 7F0ABC5C 3C140030 */ lui $s4, (0x003000B0 >> 16) # lui $s4, 0x30 +/* 0E0790 7F0ABC60 00409025 */ move $s2, $v0 +/* 0E0794 7F0ABC64 369400B0 */ ori $s4, (0x003000B0 & 0xFFFF) # ori $s4, $s4, 0xb0 +/* 0E0798 7F0ABC68 26B5099C */ addiu $s5, %lo(D_8004099C) # addiu $s5, $s5, 0x99c +/* 0E079C 7F0ABC6C 26D609A8 */ addiu $s6, %lo(watch_soundrelated_maybe) # addiu $s6, $s6, 0x9a8 +/* 0E07A0 7F0ABC70 36F700A0 */ ori $s7, (0x007000A0 & 0xFFFF) # ori $s7, $s7, 0xa0 +/* 0E07A4 7F0ABC74 26730A7C */ addiu $s3, %lo(D_80040A7C) # addiu $s3, $s3, 0xa7c +/* 0E07A8 7F0ABC78 00008825 */ move $s1, $zero +/* 0E07AC 7F0ABC7C 24100050 */ li $s0, 80 +/* 0E07B0 7F0ABC80 241E0008 */ li $fp, 8 +.L7F0ABC84: +/* 0E07B4 7F0ABC84 8EAF0000 */ lw $t7, ($s5) +/* 0E07B8 7F0ABC88 262E0002 */ addiu $t6, $s1, 2 +/* 0E07BC 7F0ABC8C 15CF0033 */ bne $t6, $t7, .L7F0ABD5C +/* 0E07C0 7F0ABC90 00000000 */ nop +/* 0E07C4 7F0ABC94 8ED80000 */ lw $t8, ($s6) +/* 0E07C8 7F0ABC98 13000018 */ beqz $t8, .L7F0ABCFC +/* 0E07CC 7F0ABC9C 00000000 */ nop +/* 0E07D0 7F0ABCA0 0FC30776 */ jal get_textptr_for_textID +/* 0E07D4 7F0ABCA4 96640000 */ lhu $a0, ($s3) +/* 0E07D8 7F0ABCA8 2419FFFF */ li $t9, -1 +/* 0E07DC 7F0ABCAC 24080001 */ li $t0, 1 +/* 0E07E0 7F0ABCB0 AFA80014 */ sw $t0, 0x14($sp) +/* 0E07E4 7F0ABCB4 AFB90010 */ sw $t9, 0x10($sp) +/* 0E07E8 7F0ABCB8 02402025 */ move $a0, $s2 +/* 0E07EC 7F0ABCBC 24050040 */ li $a1, 64 +/* 0E07F0 7F0ABCC0 02003025 */ move $a2, $s0 +/* 0E07F4 7F0ABCC4 00403825 */ move $a3, $v0 +/* 0E07F8 7F0ABCC8 AFB70018 */ sw $s7, 0x18($sp) +/* 0E07FC 7F0ABCCC AFA0001C */ sw $zero, 0x1c($sp) +/* 0E0800 7F0ABCD0 AFA00020 */ sw $zero, 0x20($sp) +/* 0E0804 7F0ABCD4 AFB40024 */ sw $s4, 0x24($sp) +/* 0E0808 7F0ABCD8 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0E080C 7F0ABCDC AFA00028 */ sw $zero, 0x28($sp) +/* 0E0810 7F0ABCE0 00402025 */ move $a0, $v0 +/* 0E0814 7F0ABCE4 02002825 */ move $a1, $s0 +/* 0E0818 7F0ABCE8 02203025 */ move $a2, $s1 +/* 0E081C 7F0ABCEC 0FC2AE42 */ jal sub_GAME_7F0AB908 +/* 0E0820 7F0ABCF0 24070002 */ li $a3, 2 +/* 0E0824 7F0ABCF4 10000030 */ b .L7F0ABDB8 +/* 0E0828 7F0ABCF8 00409025 */ move $s2, $v0 +.L7F0ABCFC: +/* 0E082C 7F0ABCFC 0FC30776 */ jal get_textptr_for_textID +/* 0E0830 7F0ABD00 96640000 */ lhu $a0, ($s3) +/* 0E0834 7F0ABD04 3C09A0FF */ lui $t1, (0xA0FFA0F0 >> 16) # lui $t1, 0xa0ff +/* 0E0838 7F0ABD08 3529A0F0 */ ori $t1, (0xA0FFA0F0 & 0xFFFF) # ori $t1, $t1, 0xa0f0 +/* 0E083C 7F0ABD0C 240AFFFF */ li $t2, -1 +/* 0E0840 7F0ABD10 AFAA0018 */ sw $t2, 0x18($sp) +/* 0E0844 7F0ABD14 AFA90010 */ sw $t1, 0x10($sp) +/* 0E0848 7F0ABD18 02402025 */ move $a0, $s2 +/* 0E084C 7F0ABD1C 24050040 */ li $a1, 64 +/* 0E0850 7F0ABD20 02003025 */ move $a2, $s0 +/* 0E0854 7F0ABD24 00403825 */ move $a3, $v0 +/* 0E0858 7F0ABD28 AFA00014 */ sw $zero, 0x14($sp) +/* 0E085C 7F0ABD2C AFA0001C */ sw $zero, 0x1c($sp) +/* 0E0860 7F0ABD30 AFA00020 */ sw $zero, 0x20($sp) +/* 0E0864 7F0ABD34 AFB40024 */ sw $s4, 0x24($sp) +/* 0E0868 7F0ABD38 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0E086C 7F0ABD3C AFA00028 */ sw $zero, 0x28($sp) +/* 0E0870 7F0ABD40 00402025 */ move $a0, $v0 +/* 0E0874 7F0ABD44 02002825 */ move $a1, $s0 +/* 0E0878 7F0ABD48 02203025 */ move $a2, $s1 +/* 0E087C 7F0ABD4C 0FC2AE42 */ jal sub_GAME_7F0AB908 +/* 0E0880 7F0ABD50 24070001 */ li $a3, 1 +/* 0E0884 7F0ABD54 10000018 */ b .L7F0ABDB8 +/* 0E0888 7F0ABD58 00409025 */ move $s2, $v0 +.L7F0ABD5C: +/* 0E088C 7F0ABD5C 0FC30776 */ jal get_textptr_for_textID +/* 0E0890 7F0ABD60 96640000 */ lhu $a0, ($s3) +/* 0E0894 7F0ABD64 3C0B00FF */ lui $t3, (0x00FF00B0 >> 16) # lui $t3, 0xff +/* 0E0898 7F0ABD68 356B00B0 */ ori $t3, (0x00FF00B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0E089C 7F0ABD6C 240CFFFF */ li $t4, -1 +/* 0E08A0 7F0ABD70 AFAC0018 */ sw $t4, 0x18($sp) +/* 0E08A4 7F0ABD74 AFAB0010 */ sw $t3, 0x10($sp) +/* 0E08A8 7F0ABD78 02402025 */ move $a0, $s2 +/* 0E08AC 7F0ABD7C 24050040 */ li $a1, 64 +/* 0E08B0 7F0ABD80 02003025 */ move $a2, $s0 +/* 0E08B4 7F0ABD84 00403825 */ move $a3, $v0 +/* 0E08B8 7F0ABD88 AFA00014 */ sw $zero, 0x14($sp) +/* 0E08BC 7F0ABD8C AFA0001C */ sw $zero, 0x1c($sp) +/* 0E08C0 7F0ABD90 AFA00020 */ sw $zero, 0x20($sp) +/* 0E08C4 7F0ABD94 AFB40024 */ sw $s4, 0x24($sp) +/* 0E08C8 7F0ABD98 0FC2A4E6 */ jal sub_GAME_7F0A9398 +/* 0E08CC 7F0ABD9C AFA00028 */ sw $zero, 0x28($sp) +/* 0E08D0 7F0ABDA0 00402025 */ move $a0, $v0 +/* 0E08D4 7F0ABDA4 02002825 */ move $a1, $s0 +/* 0E08D8 7F0ABDA8 02203025 */ move $a2, $s1 +/* 0E08DC 7F0ABDAC 0FC2AE42 */ jal sub_GAME_7F0AB908 +/* 0E08E0 7F0ABDB0 00003825 */ move $a3, $zero +/* 0E08E4 7F0ABDB4 00409025 */ move $s2, $v0 +.L7F0ABDB8: +/* 0E08E8 7F0ABDB8 26310001 */ addiu $s1, $s1, 1 +/* 0E08EC 7F0ABDBC 2673000C */ addiu $s3, $s3, 0xc +/* 0E08F0 7F0ABDC0 163EFFB0 */ bne $s1, $fp, .L7F0ABC84 +/* 0E08F4 7F0ABDC4 2610000F */ addiu $s0, $s0, 0xf +/* 0E08F8 7F0ABDC8 8FBF005C */ lw $ra, 0x5c($sp) +/* 0E08FC 7F0ABDCC 02401025 */ move $v0, $s2 +/* 0E0900 7F0ABDD0 8FB20040 */ lw $s2, 0x40($sp) +/* 0E0904 7F0ABDD4 8FB00038 */ lw $s0, 0x38($sp) +/* 0E0908 7F0ABDD8 8FB1003C */ lw $s1, 0x3c($sp) +/* 0E090C 7F0ABDDC 8FB30044 */ lw $s3, 0x44($sp) +/* 0E0910 7F0ABDE0 8FB40048 */ lw $s4, 0x48($sp) +/* 0E0914 7F0ABDE4 8FB5004C */ lw $s5, 0x4c($sp) +/* 0E0918 7F0ABDE8 8FB60050 */ lw $s6, 0x50($sp) +/* 0E091C 7F0ABDEC 8FB70054 */ lw $s7, 0x54($sp) +/* 0E0920 7F0ABDF0 8FBE0058 */ lw $fp, 0x58($sp) +/* 0E0924 7F0ABDF4 03E00008 */ jr $ra +/* 0E0928 7F0ABDF8 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0ABDFC(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0ABDFC +/* 0E092C 7F0ABDFC 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0E0930 7F0ABE00 AFBF003C */ sw $ra, 0x3c($sp) +/* 0E0934 7F0ABE04 AFB00038 */ sw $s0, 0x38($sp) +/* 0E0938 7F0ABE08 0FC29C53 */ jal sub_GAME_7F0A714C +/* 0E093C 7F0ABE0C 00003025 */ move $a2, $zero +/* 0E0940 7F0ABE10 0FC1F97F */ jal check_watch_page_transistion_running +/* 0E0944 7F0ABE14 00408025 */ move $s0, $v0 +/* 0E0948 7F0ABE18 24010001 */ li $at, 1 +/* 0E094C 7F0ABE1C 504100AE */ beql $v0, $at, .L7F0AC0D8 +/* 0E0950 7F0ABE20 8FBF003C */ lw $ra, 0x3c($sp) +/* 0E0954 7F0ABE24 0FC2A472 */ jal sub_GAME_7F0A91C8 +/* 0E0958 7F0ABE28 02002025 */ move $a0, $s0 +/* 0E095C 7F0ABE2C 0FC2A3FB */ jal sub_GAME_7F0A8FEC +/* 0E0960 7F0ABE30 00402025 */ move $a0, $v0 +/* 0E0964 7F0ABE34 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0E0968 7F0ABE38 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0E096C 7F0ABE3C 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0E0970 7F0ABE40 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0E0974 7F0ABE44 00402025 */ move $a0, $v0 +/* 0E0978 7F0ABE48 AFAE0044 */ sw $t6, 0x44($sp) +/* 0E097C 7F0ABE4C 0FC2B366 */ jal microcode_constructor +/* 0E0980 7F0ABE50 AFAF0040 */ sw $t7, 0x40($sp) +/* 0E0984 7F0ABE54 00408025 */ move $s0, $v0 +/* 0E0988 7F0ABE58 0FC30776 */ jal get_textptr_for_textID +/* 0E098C 7F0ABE5C 3404AC35 */ li $a0, 44085 +/* 0E0990 7F0ABE60 3C088004 */ lui $t0, %hi(D_8004099C) +/* 0E0994 7F0ABE64 8D08099C */ lw $t0, %lo(D_8004099C)($t0) +/* 0E0998 7F0ABE68 24180040 */ li $t8, 64 +/* 0E099C 7F0ABE6C 24190025 */ li $t9, 37 +/* 0E09A0 7F0ABE70 3C0300FF */ lui $v1, (0x00FF00B0 >> 16) # lui $v1, 0xff +/* 0E09A4 7F0ABE74 00403025 */ move $a2, $v0 +/* 0E09A8 7F0ABE78 AFB80054 */ sw $t8, 0x54($sp) +/* 0E09AC 7F0ABE7C AFB90050 */ sw $t9, 0x50($sp) +/* 0E09B0 7F0ABE80 15000008 */ bnez $t0, .L7F0ABEA4 +/* 0E09B4 7F0ABE84 346300B0 */ ori $v1, (0x00FF00B0 & 0xFFFF) # ori $v1, $v1, 0xb0 +/* 0E09B8 7F0ABE88 3C098004 */ lui $t1, %hi(watch_soundrelated_maybe) +/* 0E09BC 7F0ABE8C 8D2909A8 */ lw $t1, %lo(watch_soundrelated_maybe)($t1) +/* 0E09C0 7F0ABE90 3C03A0FF */ lui $v1, (0xA0FFA0F0 >> 16) # lui $v1, 0xa0ff +/* 0E09C4 7F0ABE94 3463A0F0 */ ori $v1, (0xA0FFA0F0 & 0xFFFF) # ori $v1, $v1, 0xa0f0 +/* 0E09C8 7F0ABE98 51200003 */ beql $t1, $zero, .L7F0ABEA8 +/* 0E09CC 7F0ABE9C 8FAA0044 */ lw $t2, 0x44($sp) +/* 0E09D0 7F0ABEA0 2403FFFF */ li $v1, -1 +.L7F0ABEA4: +/* 0E09D4 7F0ABEA4 8FAA0044 */ lw $t2, 0x44($sp) +.L7F0ABEA8: +/* 0E09D8 7F0ABEA8 27A40048 */ addiu $a0, $sp, 0x48 +/* 0E09DC 7F0ABEAC 27A5004C */ addiu $a1, $sp, 0x4c +/* 0E09E0 7F0ABEB0 8FA70040 */ lw $a3, 0x40($sp) +/* 0E09E4 7F0ABEB4 AFA00014 */ sw $zero, 0x14($sp) +/* 0E09E8 7F0ABEB8 AFA3005C */ sw $v1, 0x5c($sp) +/* 0E09EC 7F0ABEBC AFA60058 */ sw $a2, 0x58($sp) +/* 0E09F0 7F0ABEC0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E09F4 7F0ABEC4 AFAA0010 */ sw $t2, 0x10($sp) +/* 0E09F8 7F0ABEC8 3C0B8004 */ lui $t3, %hi(watch_soundrelated_maybe) +/* 0E09FC 7F0ABECC 8D6B09A8 */ lw $t3, %lo(watch_soundrelated_maybe)($t3) +/* 0E0A00 7F0ABED0 8FA3005C */ lw $v1, 0x5c($sp) +/* 0E0A04 7F0ABED4 8FA70058 */ lw $a3, 0x58($sp) +/* 0E0A08 7F0ABED8 1160001C */ beqz $t3, .L7F0ABF4C +/* 0E0A0C 7F0ABEDC 3C0C8004 */ lui $t4, %hi(D_8004099C) +/* 0E0A10 7F0ABEE0 8D8C099C */ lw $t4, %lo(D_8004099C)($t4) +/* 0E0A14 7F0ABEE4 02002025 */ move $a0, $s0 +/* 0E0A18 7F0ABEE8 27A50054 */ addiu $a1, $sp, 0x54 +/* 0E0A1C 7F0ABEEC 15800017 */ bnez $t4, .L7F0ABF4C +/* 0E0A20 7F0ABEF0 27A60050 */ addiu $a2, $sp, 0x50 +/* 0E0A24 7F0ABEF4 8FB8004C */ lw $t8, 0x4c($sp) +/* 0E0A28 7F0ABEF8 AFA30018 */ sw $v1, 0x18($sp) +/* 0E0A2C 7F0ABEFC 8FAD0040 */ lw $t5, 0x40($sp) +/* 0E0A30 7F0ABF00 8FAE0044 */ lw $t6, 0x44($sp) +/* 0E0A34 7F0ABF04 8FA80048 */ lw $t0, 0x48($sp) +/* 0E0A38 7F0ABF08 3C0300FF */ lui $v1, (0x00FF00B0 >> 16) # lui $v1, 0xff +/* 0E0A3C 7F0ABF0C 3C0F0070 */ lui $t7, (0x007000A0 >> 16) # lui $t7, 0x70 +/* 0E0A40 7F0ABF10 35EF00A0 */ ori $t7, (0x007000A0 & 0xFFFF) # ori $t7, $t7, 0xa0 +/* 0E0A44 7F0ABF14 346300B0 */ ori $v1, (0x00FF00B0 & 0xFFFF) # ori $v1, $v1, 0xb0 +/* 0E0A48 7F0ABF18 27190001 */ addiu $t9, $t8, 1 +/* 0E0A4C 7F0ABF1C AFB90020 */ sw $t9, 0x20($sp) +/* 0E0A50 7F0ABF20 AFA3005C */ sw $v1, 0x5c($sp) +/* 0E0A54 7F0ABF24 AFAF001C */ sw $t7, 0x1c($sp) +/* 0E0A58 7F0ABF28 AFA00028 */ sw $zero, 0x28($sp) +/* 0E0A5C 7F0ABF2C AFA0002C */ sw $zero, 0x2c($sp) +/* 0E0A60 7F0ABF30 AFAD0010 */ sw $t5, 0x10($sp) +/* 0E0A64 7F0ABF34 AFAE0014 */ sw $t6, 0x14($sp) +/* 0E0A68 7F0ABF38 0FC2B9BB */ jal jp_text_write_stuff +/* 0E0A6C 7F0ABF3C AFA80024 */ sw $t0, 0x24($sp) +/* 0E0A70 7F0ABF40 8FA3005C */ lw $v1, 0x5c($sp) +/* 0E0A74 7F0ABF44 10000015 */ b .L7F0ABF9C +/* 0E0A78 7F0ABF48 00408025 */ move $s0, $v0 +.L7F0ABF4C: +/* 0E0A7C 7F0ABF4C AFA30018 */ sw $v1, 0x18($sp) +/* 0E0A80 7F0ABF50 8FA90040 */ lw $t1, 0x40($sp) +/* 0E0A84 7F0ABF54 8FAA0044 */ lw $t2, 0x44($sp) +/* 0E0A88 7F0ABF58 8FAB004C */ lw $t3, 0x4c($sp) +/* 0E0A8C 7F0ABF5C 8FAC0048 */ lw $t4, 0x48($sp) +/* 0E0A90 7F0ABF60 3C0300FF */ lui $v1, (0x00FF00B0 >> 16) # lui $v1, 0xff +/* 0E0A94 7F0ABF64 346300B0 */ ori $v1, (0x00FF00B0 & 0xFFFF) # ori $v1, $v1, 0xb0 +/* 0E0A98 7F0ABF68 AFA3005C */ sw $v1, 0x5c($sp) +/* 0E0A9C 7F0ABF6C 02002025 */ move $a0, $s0 +/* 0E0AA0 7F0ABF70 27A50054 */ addiu $a1, $sp, 0x54 +/* 0E0AA4 7F0ABF74 27A60050 */ addiu $a2, $sp, 0x50 +/* 0E0AA8 7F0ABF78 AFA00024 */ sw $zero, 0x24($sp) +/* 0E0AAC 7F0ABF7C AFA00028 */ sw $zero, 0x28($sp) +/* 0E0AB0 7F0ABF80 AFA90010 */ sw $t1, 0x10($sp) +/* 0E0AB4 7F0ABF84 AFAA0014 */ sw $t2, 0x14($sp) +/* 0E0AB8 7F0ABF88 AFAB001C */ sw $t3, 0x1c($sp) +/* 0E0ABC 7F0ABF8C 0FC2B6AF */ jal en_text_write_stuff +/* 0E0AC0 7F0ABF90 AFAC0020 */ sw $t4, 0x20($sp) +/* 0E0AC4 7F0ABF94 8FA3005C */ lw $v1, 0x5c($sp) +/* 0E0AC8 7F0ABF98 00408025 */ move $s0, $v0 +.L7F0ABF9C: +/* 0E0ACC 7F0ABF9C 3404AC36 */ li $a0, 44086 +/* 0E0AD0 7F0ABFA0 0FC30776 */ jal get_textptr_for_textID +/* 0E0AD4 7F0ABFA4 AFA3005C */ sw $v1, 0x5c($sp) +/* 0E0AD8 7F0ABFA8 3C0F8004 */ lui $t7, %hi(D_8004099C) +/* 0E0ADC 7F0ABFAC 8DEF099C */ lw $t7, %lo(D_8004099C)($t7) +/* 0E0AE0 7F0ABFB0 240D0040 */ li $t5, 64 +/* 0E0AE4 7F0ABFB4 240E003B */ li $t6, 59 +/* 0E0AE8 7F0ABFB8 24010001 */ li $at, 1 +/* 0E0AEC 7F0ABFBC 8FA3005C */ lw $v1, 0x5c($sp) +/* 0E0AF0 7F0ABFC0 00403025 */ move $a2, $v0 +/* 0E0AF4 7F0ABFC4 AFAD0054 */ sw $t5, 0x54($sp) +/* 0E0AF8 7F0ABFC8 15E10008 */ bne $t7, $at, .L7F0ABFEC +/* 0E0AFC 7F0ABFCC AFAE0050 */ sw $t6, 0x50($sp) +/* 0E0B00 7F0ABFD0 3C188004 */ lui $t8, %hi(watch_soundrelated_maybe) +/* 0E0B04 7F0ABFD4 8F1809A8 */ lw $t8, %lo(watch_soundrelated_maybe)($t8) +/* 0E0B08 7F0ABFD8 3C03A0FF */ lui $v1, (0xA0FFA0F0 >> 16) # lui $v1, 0xa0ff +/* 0E0B0C 7F0ABFDC 3463A0F0 */ ori $v1, (0xA0FFA0F0 & 0xFFFF) # ori $v1, $v1, 0xa0f0 +/* 0E0B10 7F0ABFE0 53000003 */ beql $t8, $zero, .L7F0ABFF0 +/* 0E0B14 7F0ABFE4 8FB90044 */ lw $t9, 0x44($sp) +/* 0E0B18 7F0ABFE8 2403FFFF */ li $v1, -1 +.L7F0ABFEC: +/* 0E0B1C 7F0ABFEC 8FB90044 */ lw $t9, 0x44($sp) +.L7F0ABFF0: +/* 0E0B20 7F0ABFF0 27A40048 */ addiu $a0, $sp, 0x48 +/* 0E0B24 7F0ABFF4 27A5004C */ addiu $a1, $sp, 0x4c +/* 0E0B28 7F0ABFF8 8FA70040 */ lw $a3, 0x40($sp) +/* 0E0B2C 7F0ABFFC AFA00014 */ sw $zero, 0x14($sp) +/* 0E0B30 7F0AC000 AFA3005C */ sw $v1, 0x5c($sp) +/* 0E0B34 7F0AC004 AFA60058 */ sw $a2, 0x58($sp) +/* 0E0B38 7F0AC008 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E0B3C 7F0AC00C AFB90010 */ sw $t9, 0x10($sp) +/* 0E0B40 7F0AC010 3C088004 */ lui $t0, %hi(watch_soundrelated_maybe) +/* 0E0B44 7F0AC014 8D0809A8 */ lw $t0, %lo(watch_soundrelated_maybe)($t0) +/* 0E0B48 7F0AC018 8FA3005C */ lw $v1, 0x5c($sp) +/* 0E0B4C 7F0AC01C 8FA70058 */ lw $a3, 0x58($sp) +/* 0E0B50 7F0AC020 11000019 */ beqz $t0, .L7F0AC088 +/* 0E0B54 7F0AC024 3C098004 */ lui $t1, %hi(D_8004099C) +/* 0E0B58 7F0AC028 8D29099C */ lw $t1, %lo(D_8004099C)($t1) +/* 0E0B5C 7F0AC02C 24010001 */ li $at, 1 +/* 0E0B60 7F0AC030 02002025 */ move $a0, $s0 +/* 0E0B64 7F0AC034 15210014 */ bne $t1, $at, .L7F0AC088 +/* 0E0B68 7F0AC038 27A50054 */ addiu $a1, $sp, 0x54 +/* 0E0B6C 7F0AC03C 8FAD004C */ lw $t5, 0x4c($sp) +/* 0E0B70 7F0AC040 8FAA0040 */ lw $t2, 0x40($sp) +/* 0E0B74 7F0AC044 8FAB0044 */ lw $t3, 0x44($sp) +/* 0E0B78 7F0AC048 8FAF0048 */ lw $t7, 0x48($sp) +/* 0E0B7C 7F0AC04C 3C0C0070 */ lui $t4, (0x007000A0 >> 16) # lui $t4, 0x70 +/* 0E0B80 7F0AC050 358C00A0 */ ori $t4, (0x007000A0 & 0xFFFF) # ori $t4, $t4, 0xa0 +/* 0E0B84 7F0AC054 25AE0001 */ addiu $t6, $t5, 1 +/* 0E0B88 7F0AC058 AFAE0020 */ sw $t6, 0x20($sp) +/* 0E0B8C 7F0AC05C AFAC001C */ sw $t4, 0x1c($sp) +/* 0E0B90 7F0AC060 27A60050 */ addiu $a2, $sp, 0x50 +/* 0E0B94 7F0AC064 AFA30018 */ sw $v1, 0x18($sp) +/* 0E0B98 7F0AC068 AFA00028 */ sw $zero, 0x28($sp) +/* 0E0B9C 7F0AC06C AFA0002C */ sw $zero, 0x2c($sp) +/* 0E0BA0 7F0AC070 AFAA0010 */ sw $t2, 0x10($sp) +/* 0E0BA4 7F0AC074 AFAB0014 */ sw $t3, 0x14($sp) +/* 0E0BA8 7F0AC078 0FC2B9BB */ jal jp_text_write_stuff +/* 0E0BAC 7F0AC07C AFAF0024 */ sw $t7, 0x24($sp) +/* 0E0BB0 7F0AC080 10000011 */ b .L7F0AC0C8 +/* 0E0BB4 7F0AC084 00408025 */ move $s0, $v0 +.L7F0AC088: +/* 0E0BB8 7F0AC088 8FB80040 */ lw $t8, 0x40($sp) +/* 0E0BBC 7F0AC08C 8FB90044 */ lw $t9, 0x44($sp) +/* 0E0BC0 7F0AC090 8FA8004C */ lw $t0, 0x4c($sp) +/* 0E0BC4 7F0AC094 8FA90048 */ lw $t1, 0x48($sp) +/* 0E0BC8 7F0AC098 02002025 */ move $a0, $s0 +/* 0E0BCC 7F0AC09C 27A50054 */ addiu $a1, $sp, 0x54 +/* 0E0BD0 7F0AC0A0 27A60050 */ addiu $a2, $sp, 0x50 +/* 0E0BD4 7F0AC0A4 AFA30018 */ sw $v1, 0x18($sp) +/* 0E0BD8 7F0AC0A8 AFA00024 */ sw $zero, 0x24($sp) +/* 0E0BDC 7F0AC0AC AFA00028 */ sw $zero, 0x28($sp) +/* 0E0BE0 7F0AC0B0 AFB80010 */ sw $t8, 0x10($sp) +/* 0E0BE4 7F0AC0B4 AFB90014 */ sw $t9, 0x14($sp) +/* 0E0BE8 7F0AC0B8 AFA8001C */ sw $t0, 0x1c($sp) +/* 0E0BEC 7F0AC0BC 0FC2B6AF */ jal en_text_write_stuff +/* 0E0BF0 7F0AC0C0 AFA90020 */ sw $t1, 0x20($sp) +/* 0E0BF4 7F0AC0C4 00408025 */ move $s0, $v0 +.L7F0AC0C8: +/* 0E0BF8 7F0AC0C8 0FC2AF07 */ jal sub_GAME_7F0ABC1C +/* 0E0BFC 7F0AC0CC 02002025 */ move $a0, $s0 +/* 0E0C00 7F0AC0D0 00408025 */ move $s0, $v0 +/* 0E0C04 7F0AC0D4 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0AC0D8: +/* 0E0C08 7F0AC0D8 02001025 */ move $v0, $s0 +/* 0E0C0C 7F0AC0DC 8FB00038 */ lw $s0, 0x38($sp) +/* 0E0C10 7F0AC0E0 03E00008 */ jr $ra +/* 0E0C14 7F0AC0E4 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AC0E8(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AC0E8 +/* 0E0C18 7F0AC0E8 90820000 */ lbu $v0, ($a0) +/* 0E0C1C 7F0AC0EC 00001825 */ move $v1, $zero +/* 0E0C20 7F0AC0F0 2405000A */ li $a1, 10 +/* 0E0C24 7F0AC0F4 10400008 */ beqz $v0, .L7F0AC118 +/* 0E0C28 7F0AC0F8 00000000 */ nop +.L7F0AC0FC: +/* 0E0C2C 7F0AC0FC 54A20003 */ bnel $a1, $v0, .L7F0AC10C +/* 0E0C30 7F0AC100 90820001 */ lbu $v0, 1($a0) +/* 0E0C34 7F0AC104 24630001 */ addiu $v1, $v1, 1 +/* 0E0C38 7F0AC108 90820001 */ lbu $v0, 1($a0) +.L7F0AC10C: +/* 0E0C3C 7F0AC10C 24840001 */ addiu $a0, $a0, 1 +/* 0E0C40 7F0AC110 1440FFFA */ bnez $v0, .L7F0AC0FC +/* 0E0C44 7F0AC114 00000000 */ nop +.L7F0AC118: +/* 0E0C48 7F0AC118 03E00008 */ jr $ra +/* 0E0C4C 7F0AC11C 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AC120(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0AC120 +/* 0E0C50 7F0AC120 90820000 */ lbu $v0, ($a0) +/* 0E0C54 7F0AC124 00801825 */ move $v1, $a0 +/* 0E0C58 7F0AC128 2405000A */ li $a1, 10 +/* 0E0C5C 7F0AC12C 1040000C */ beqz $v0, .L7F0AC160 +/* 0E0C60 7F0AC130 00000000 */ nop +.L7F0AC134: +/* 0E0C64 7F0AC134 54A20007 */ bnel $a1, $v0, .L7F0AC154 +/* 0E0C68 7F0AC138 90820001 */ lbu $v0, 1($a0) +/* 0E0C6C 7F0AC13C 908E0001 */ lbu $t6, 1($a0) +/* 0E0C70 7F0AC140 24840001 */ addiu $a0, $a0, 1 +/* 0E0C74 7F0AC144 51C00003 */ beql $t6, $zero, .L7F0AC154 +/* 0E0C78 7F0AC148 90820001 */ lbu $v0, 1($a0) +/* 0E0C7C 7F0AC14C 00801825 */ move $v1, $a0 +/* 0E0C80 7F0AC150 90820001 */ lbu $v0, 1($a0) +.L7F0AC154: +/* 0E0C84 7F0AC154 24840001 */ addiu $a0, $a0, 1 +/* 0E0C88 7F0AC158 1440FFF6 */ bnez $v0, .L7F0AC134 +/* 0E0C8C 7F0AC15C 00000000 */ nop +.L7F0AC160: +/* 0E0C90 7F0AC160 03E00008 */ jr $ra +/* 0E0C94 7F0AC164 00601025 */ move $v0, $v1 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0AC168(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80058570*/ +glabel jpt_80058570 +.word .L7F0AC3B8 +.word .L7F0AC400 +.word .L7F0AC448 +.word .L7F0AC490 +.word .L7F0AC4D8 + +.text +glabel sub_GAME_7F0AC168 +/* 0E0C98 7F0AC168 27BDF218 */ addiu $sp, $sp, -0xde8 +/* 0E0C9C 7F0AC16C AFBF005C */ sw $ra, 0x5c($sp) +/* 0E0CA0 7F0AC170 AFBE0058 */ sw $fp, 0x58($sp) +/* 0E0CA4 7F0AC174 AFB70054 */ sw $s7, 0x54($sp) +/* 0E0CA8 7F0AC178 AFB60050 */ sw $s6, 0x50($sp) +/* 0E0CAC 7F0AC17C AFB5004C */ sw $s5, 0x4c($sp) +/* 0E0CB0 7F0AC180 AFB40048 */ sw $s4, 0x48($sp) +/* 0E0CB4 7F0AC184 AFB30044 */ sw $s3, 0x44($sp) +/* 0E0CB8 7F0AC188 AFB20040 */ sw $s2, 0x40($sp) +/* 0E0CBC 7F0AC18C AFB1003C */ sw $s1, 0x3c($sp) +/* 0E0CC0 7F0AC190 AFB00038 */ sw $s0, 0x38($sp) +/* 0E0CC4 7F0AC194 0FC29C53 */ jal sub_GAME_7F0A714C +/* 0E0CC8 7F0AC198 00003025 */ move $a2, $zero +/* 0E0CCC 7F0AC19C 0FC1F97F */ jal check_watch_page_transistion_running +/* 0E0CD0 7F0AC1A0 AFA20DE8 */ sw $v0, 0xde8($sp) +/* 0E0CD4 7F0AC1A4 24010001 */ li $at, 1 +/* 0E0CD8 7F0AC1A8 10410212 */ beq $v0, $at, .L7F0AC9F4 +/* 0E0CDC 7F0AC1AC 27AE0DAC */ addiu $t6, $sp, 0xdac +/* 0E0CE0 7F0AC1B0 3C0F8004 */ lui $t7, %hi(D_80040DFC) +/* 0E0CE4 7F0AC1B4 25EF0DFC */ addiu $t7, %lo(D_80040DFC) # addiu $t7, $t7, 0xdfc +/* 0E0CE8 7F0AC1B8 25F9003C */ addiu $t9, $t7, 0x3c +.L7F0AC1BC: +/* 0E0CEC 7F0AC1BC 8DE10000 */ lw $at, ($t7) +/* 0E0CF0 7F0AC1C0 25EF000C */ addiu $t7, $t7, 0xc +/* 0E0CF4 7F0AC1C4 25CE000C */ addiu $t6, $t6, 0xc +/* 0E0CF8 7F0AC1C8 ADC1FFF4 */ sw $at, -0xc($t6) +/* 0E0CFC 7F0AC1CC 8DE1FFF8 */ lw $at, -8($t7) +/* 0E0D00 7F0AC1D0 ADC1FFF8 */ sw $at, -8($t6) +/* 0E0D04 7F0AC1D4 8DE1FFFC */ lw $at, -4($t7) +/* 0E0D08 7F0AC1D8 15F9FFF8 */ bne $t7, $t9, .L7F0AC1BC +/* 0E0D0C 7F0AC1DC ADC1FFFC */ sw $at, -4($t6) +/* 0E0D10 7F0AC1E0 3C098004 */ lui $t1, %hi(D_80040E38) +/* 0E0D14 7F0AC1E4 25290E38 */ addiu $t1, %lo(D_80040E38) # addiu $t1, $t1, 0xe38 +/* 0E0D18 7F0AC1E8 8D210000 */ lw $at, ($t1) +/* 0E0D1C 7F0AC1EC 8D2B0004 */ lw $t3, 4($t1) +/* 0E0D20 7F0AC1F0 27A80DA4 */ addiu $t0, $sp, 0xda4 +/* 0E0D24 7F0AC1F4 3C0D8004 */ lui $t5, %hi(D_80040E40) +/* 0E0D28 7F0AC1F8 25AD0E40 */ addiu $t5, %lo(D_80040E40) # addiu $t5, $t5, 0xe40 +/* 0E0D2C 7F0AC1FC 25B9003C */ addiu $t9, $t5, 0x3c +/* 0E0D30 7F0AC200 27AC0D68 */ addiu $t4, $sp, 0xd68 +/* 0E0D34 7F0AC204 AD010000 */ sw $at, ($t0) +/* 0E0D38 7F0AC208 AD0B0004 */ sw $t3, 4($t0) +.L7F0AC20C: +/* 0E0D3C 7F0AC20C 8DA10000 */ lw $at, ($t5) +/* 0E0D40 7F0AC210 25AD000C */ addiu $t5, $t5, 0xc +/* 0E0D44 7F0AC214 258C000C */ addiu $t4, $t4, 0xc +/* 0E0D48 7F0AC218 AD81FFF4 */ sw $at, -0xc($t4) +/* 0E0D4C 7F0AC21C 8DA1FFF8 */ lw $at, -8($t5) +/* 0E0D50 7F0AC220 AD81FFF8 */ sw $at, -8($t4) +/* 0E0D54 7F0AC224 8DA1FFFC */ lw $at, -4($t5) +/* 0E0D58 7F0AC228 15B9FFF8 */ bne $t5, $t9, .L7F0AC20C +/* 0E0D5C 7F0AC22C AD81FFFC */ sw $at, -4($t4) +/* 0E0D60 7F0AC230 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) +/* 0E0D64 7F0AC234 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) +/* 0E0D68 7F0AC238 8DEF0EAC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0E0D6C 7F0AC23C 8DCE0EB0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0E0D70 7F0AC240 3C088005 */ lui $t0, %hi(D_800577C0) +/* 0E0D74 7F0AC244 250877C0 */ addiu $t0, %lo(D_800577C0) # addiu $t0, $t0, 0x77c0 +/* 0E0D78 7F0AC248 AFA00D54 */ sw $zero, 0xd54($sp) +/* 0E0D7C 7F0AC24C AFA00D50 */ sw $zero, 0xd50($sp) +/* 0E0D80 7F0AC250 25180BB8 */ addiu $t8, $t0, 0xbb8 +/* 0E0D84 7F0AC254 27AA0190 */ addiu $t2, $sp, 0x190 +/* 0E0D88 7F0AC258 AFAF0D4C */ sw $t7, 0xd4c($sp) +/* 0E0D8C 7F0AC25C AFAE0D48 */ sw $t6, 0xd48($sp) +.L7F0AC260: +/* 0E0D90 7F0AC260 8D010000 */ lw $at, ($t0) +/* 0E0D94 7F0AC264 2508000C */ addiu $t0, $t0, 0xc +/* 0E0D98 7F0AC268 254A000C */ addiu $t2, $t2, 0xc +/* 0E0D9C 7F0AC26C AD41FFF4 */ sw $at, -0xc($t2) +/* 0E0DA0 7F0AC270 8D01FFF8 */ lw $at, -8($t0) +/* 0E0DA4 7F0AC274 AD41FFF8 */ sw $at, -8($t2) +/* 0E0DA8 7F0AC278 8D01FFFC */ lw $at, -4($t0) +/* 0E0DAC 7F0AC27C 1518FFF8 */ bne $t0, $t8, .L7F0AC260 +/* 0E0DB0 7F0AC280 AD41FFFC */ sw $at, -4($t2) +/* 0E0DB4 7F0AC284 0FC30776 */ jal get_textptr_for_textID +/* 0E0DB8 7F0AC288 3404AC28 */ li $a0, 44072 +/* 0E0DBC 7F0AC28C AFA2016C */ sw $v0, 0x16c($sp) +/* 0E0DC0 7F0AC290 0FC30776 */ jal get_textptr_for_textID +/* 0E0DC4 7F0AC294 3404AC29 */ li $a0, 44073 +/* 0E0DC8 7F0AC298 AFA20168 */ sw $v0, 0x168($sp) +/* 0E0DCC 7F0AC29C 0FC30776 */ jal get_textptr_for_textID +/* 0E0DD0 7F0AC2A0 3404AC37 */ li $a0, 44087 +/* 0E0DD4 7F0AC2A4 AFA20164 */ sw $v0, 0x164($sp) +/* 0E0DD8 7F0AC2A8 0FC15C41 */ jal get_ptr_text_for_watch_breifing_page +/* 0E0DDC 7F0AC2AC 00002025 */ move $a0, $zero +/* 0E0DE0 7F0AC2B0 00408025 */ move $s0, $v0 +/* 0E0DE4 7F0AC2B4 0FC2B366 */ jal microcode_constructor +/* 0E0DE8 7F0AC2B8 8FA40DE8 */ lw $a0, 0xde8($sp) +/* 0E0DEC 7F0AC2BC 8FB90D4C */ lw $t9, 0xd4c($sp) +/* 0E0DF0 7F0AC2C0 AFA20DE8 */ sw $v0, 0xde8($sp) +/* 0E0DF4 7F0AC2C4 27A40D54 */ addiu $a0, $sp, 0xd54 +/* 0E0DF8 7F0AC2C8 27A50D50 */ addiu $a1, $sp, 0xd50 +/* 0E0DFC 7F0AC2CC 02003025 */ move $a2, $s0 +/* 0E0E00 7F0AC2D0 8FA70D48 */ lw $a3, 0xd48($sp) +/* 0E0E04 7F0AC2D4 AFA00014 */ sw $zero, 0x14($sp) +/* 0E0E08 7F0AC2D8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E0E0C 7F0AC2DC AFB90010 */ sw $t9, 0x10($sp) +/* 0E0E10 7F0AC2E0 8FA20D50 */ lw $v0, 0xd50($sp) +/* 0E0E14 7F0AC2E4 240D00AA */ li $t5, 170 +/* 0E0E18 7F0AC2E8 8FAB0D54 */ lw $t3, 0xd54($sp) +/* 0E0E1C 7F0AC2EC 01A21823 */ subu $v1, $t5, $v0 +/* 0E0E20 7F0AC2F0 04610003 */ bgez $v1, .L7F0AC300 +/* 0E0E24 7F0AC2F4 00036043 */ sra $t4, $v1, 1 +/* 0E0E28 7F0AC2F8 24610001 */ addiu $at, $v1, 1 +/* 0E0E2C 7F0AC2FC 00016043 */ sra $t4, $at, 1 +.L7F0AC300: +/* 0E0E30 7F0AC300 2583004B */ addiu $v1, $t4, 0x4b +/* 0E0E34 7F0AC304 240F001E */ li $t7, 30 +/* 0E0E38 7F0AC308 27B80D58 */ addiu $t8, $sp, 0xd58 +/* 0E0E3C 7F0AC30C 00627021 */ addu $t6, $v1, $v0 +/* 0E0E40 7F0AC310 2569001E */ addiu $t1, $t3, 0x1e +/* 0E0E44 7F0AC314 AFAF0D60 */ sw $t7, 0xd60($sp) +/* 0E0E48 7F0AC318 AFAE0D5C */ sw $t6, 0xd5c($sp) +/* 0E0E4C 7F0AC31C AFA90D58 */ sw $t1, 0xd58($sp) +/* 0E0E50 7F0AC320 AFB80010 */ sw $t8, 0x10($sp) +/* 0E0E54 7F0AC324 AFA30D64 */ sw $v1, 0xd64($sp) +/* 0E0E58 7F0AC328 8FA40DE8 */ lw $a0, 0xde8($sp) +/* 0E0E5C 7F0AC32C 27A50D64 */ addiu $a1, $sp, 0xd64 +/* 0E0E60 7F0AC330 27A60D60 */ addiu $a2, $sp, 0xd60 +/* 0E0E64 7F0AC334 0FC2B3D3 */ jal draw_blackbox_to_screen +/* 0E0E68 7F0AC338 27A70D5C */ addiu $a3, $sp, 0xd5c +/* 0E0E6C 7F0AC33C 8FA80D48 */ lw $t0, 0xd48($sp) +/* 0E0E70 7F0AC340 8FAA0D4C */ lw $t2, 0xd4c($sp) +/* 0E0E74 7F0AC344 8FAD0D50 */ lw $t5, 0xd50($sp) +/* 0E0E78 7F0AC348 8FAC0D54 */ lw $t4, 0xd54($sp) +/* 0E0E7C 7F0AC34C 3C19A0FF */ lui $t9, (0xA0FFA0F0 >> 16) # lui $t9, 0xa0ff +/* 0E0E80 7F0AC350 3739A0F0 */ ori $t9, (0xA0FFA0F0 & 0xFFFF) # ori $t9, $t9, 0xa0f0 +/* 0E0E84 7F0AC354 AFB90018 */ sw $t9, 0x18($sp) +/* 0E0E88 7F0AC358 00402025 */ move $a0, $v0 +/* 0E0E8C 7F0AC35C 27A50D64 */ addiu $a1, $sp, 0xd64 +/* 0E0E90 7F0AC360 27A60D60 */ addiu $a2, $sp, 0xd60 +/* 0E0E94 7F0AC364 02003825 */ move $a3, $s0 +/* 0E0E98 7F0AC368 AFA00024 */ sw $zero, 0x24($sp) +/* 0E0E9C 7F0AC36C AFA00028 */ sw $zero, 0x28($sp) +/* 0E0EA0 7F0AC370 AFA80010 */ sw $t0, 0x10($sp) +/* 0E0EA4 7F0AC374 AFAA0014 */ sw $t2, 0x14($sp) +/* 0E0EA8 7F0AC378 AFAD001C */ sw $t5, 0x1c($sp) +/* 0E0EAC 7F0AC37C 0FC2B6AF */ jal en_text_write_stuff +/* 0E0EB0 7F0AC380 AFAC0020 */ sw $t4, 0x20($sp) +/* 0E0EB4 7F0AC384 3C0F8004 */ lui $t7, %hi(D_800409A0) +/* 0E0EB8 7F0AC388 8DEF09A0 */ lw $t7, %lo(D_800409A0)($t7) +/* 0E0EBC 7F0AC38C 24030041 */ li $v1, 65 +/* 0E0EC0 7F0AC390 AFA20DE8 */ sw $v0, 0xde8($sp) +/* 0E0EC4 7F0AC394 2DE10005 */ sltiu $at, $t7, 5 +/* 0E0EC8 7F0AC398 10200154 */ beqz $at, .L7F0AC8EC +/* 0E0ECC 7F0AC39C AFA30D64 */ sw $v1, 0xd64($sp) +/* 0E0ED0 7F0AC3A0 000F7880 */ sll $t7, $t7, 2 +/* 0E0ED4 7F0AC3A4 3C018006 */ lui $at, %hi(jpt_80058570) +/* 0E0ED8 7F0AC3A8 002F0821 */ addu $at, $at, $t7 +/* 0E0EDC 7F0AC3AC 8C2F8570 */ lw $t7, %lo(jpt_80058570)($at) +/* 0E0EE0 7F0AC3B0 01E00008 */ jr $t7 +/* 0E0EE4 7F0AC3B4 00000000 */ nop +.L7F0AC3B8: +/* 0E0EE8 7F0AC3B8 0FC30776 */ jal get_textptr_for_textID +/* 0E0EEC 7F0AC3BC 3404AC38 */ li $a0, 44088 +/* 0E0EF0 7F0AC3C0 27A40170 */ addiu $a0, $sp, 0x170 +/* 0E0EF4 7F0AC3C4 0C002B25 */ jal sprintf +/* 0E0EF8 7F0AC3C8 00402825 */ move $a1, $v0 +/* 0E0EFC 7F0AC3CC 0FC15C41 */ jal get_ptr_text_for_watch_breifing_page +/* 0E0F00 7F0AC3D0 24040001 */ li $a0, 1 +/* 0E0F04 7F0AC3D4 8FAE0D4C */ lw $t6, 0xd4c($sp) +/* 0E0F08 7F0AC3D8 240400D2 */ li $a0, 210 +/* 0E0F0C 7F0AC3DC 00402825 */ move $a1, $v0 +/* 0E0F10 7F0AC3E0 27A60190 */ addiu $a2, $sp, 0x190 +/* 0E0F14 7F0AC3E4 8FA70D48 */ lw $a3, 0xd48($sp) +/* 0E0F18 7F0AC3E8 0FC2BAD9 */ jal sub_GAME_7F0AEB64 +/* 0E0F1C 7F0AC3EC AFAE0010 */ sw $t6, 0x10($sp) +/* 0E0F20 7F0AC3F0 0FC29986 */ jal sub_GAME_7F0A6618 +/* 0E0F24 7F0AC3F4 00000000 */ nop +/* 0E0F28 7F0AC3F8 1000013D */ b .L7F0AC8F0 +/* 0E0F2C 7F0AC3FC 8FAA0D4C */ lw $t2, 0xd4c($sp) +.L7F0AC400: +/* 0E0F30 7F0AC400 0FC30776 */ jal get_textptr_for_textID +/* 0E0F34 7F0AC404 3404AC39 */ li $a0, 44089 +/* 0E0F38 7F0AC408 27A40170 */ addiu $a0, $sp, 0x170 +/* 0E0F3C 7F0AC40C 0C002B25 */ jal sprintf +/* 0E0F40 7F0AC410 00402825 */ move $a1, $v0 +/* 0E0F44 7F0AC414 0FC15C41 */ jal get_ptr_text_for_watch_breifing_page +/* 0E0F48 7F0AC418 24040002 */ li $a0, 2 +/* 0E0F4C 7F0AC41C 8FAB0D4C */ lw $t3, 0xd4c($sp) +/* 0E0F50 7F0AC420 240400D2 */ li $a0, 210 +/* 0E0F54 7F0AC424 00402825 */ move $a1, $v0 +/* 0E0F58 7F0AC428 27A60190 */ addiu $a2, $sp, 0x190 +/* 0E0F5C 7F0AC42C 8FA70D48 */ lw $a3, 0xd48($sp) +/* 0E0F60 7F0AC430 0FC2BAD9 */ jal sub_GAME_7F0AEB64 +/* 0E0F64 7F0AC434 AFAB0010 */ sw $t3, 0x10($sp) +/* 0E0F68 7F0AC438 0FC299A8 */ jal sub_GAME_7F0A66A0 +/* 0E0F6C 7F0AC43C 00000000 */ nop +/* 0E0F70 7F0AC440 1000012B */ b .L7F0AC8F0 +/* 0E0F74 7F0AC444 8FAA0D4C */ lw $t2, 0xd4c($sp) +.L7F0AC448: +/* 0E0F78 7F0AC448 0FC30776 */ jal get_textptr_for_textID +/* 0E0F7C 7F0AC44C 3404AC3A */ li $a0, 44090 +/* 0E0F80 7F0AC450 27A40170 */ addiu $a0, $sp, 0x170 +/* 0E0F84 7F0AC454 0C002B25 */ jal sprintf +/* 0E0F88 7F0AC458 00402825 */ move $a1, $v0 +/* 0E0F8C 7F0AC45C 0FC15C41 */ jal get_ptr_text_for_watch_breifing_page +/* 0E0F90 7F0AC460 24040003 */ li $a0, 3 +/* 0E0F94 7F0AC464 8FA90D4C */ lw $t1, 0xd4c($sp) +/* 0E0F98 7F0AC468 240400D2 */ li $a0, 210 +/* 0E0F9C 7F0AC46C 00402825 */ move $a1, $v0 +/* 0E0FA0 7F0AC470 27A60190 */ addiu $a2, $sp, 0x190 +/* 0E0FA4 7F0AC474 8FA70D48 */ lw $a3, 0xd48($sp) +/* 0E0FA8 7F0AC478 0FC2BAD9 */ jal sub_GAME_7F0AEB64 +/* 0E0FAC 7F0AC47C AFA90010 */ sw $t1, 0x10($sp) +/* 0E0FB0 7F0AC480 0FC299CB */ jal sub_GAME_7F0A672C +/* 0E0FB4 7F0AC484 00000000 */ nop +/* 0E0FB8 7F0AC488 10000119 */ b .L7F0AC8F0 +/* 0E0FBC 7F0AC48C 8FAA0D4C */ lw $t2, 0xd4c($sp) +.L7F0AC490: +/* 0E0FC0 7F0AC490 0FC30776 */ jal get_textptr_for_textID +/* 0E0FC4 7F0AC494 3404AC3B */ li $a0, 44091 +/* 0E0FC8 7F0AC498 27A40170 */ addiu $a0, $sp, 0x170 +/* 0E0FCC 7F0AC49C 0C002B25 */ jal sprintf +/* 0E0FD0 7F0AC4A0 00402825 */ move $a1, $v0 +/* 0E0FD4 7F0AC4A4 0FC15C41 */ jal get_ptr_text_for_watch_breifing_page +/* 0E0FD8 7F0AC4A8 24040004 */ li $a0, 4 +/* 0E0FDC 7F0AC4AC 8FB80D4C */ lw $t8, 0xd4c($sp) +/* 0E0FE0 7F0AC4B0 240400D2 */ li $a0, 210 +/* 0E0FE4 7F0AC4B4 00402825 */ move $a1, $v0 +/* 0E0FE8 7F0AC4B8 27A60190 */ addiu $a2, $sp, 0x190 +/* 0E0FEC 7F0AC4BC 8FA70D48 */ lw $a3, 0xd48($sp) +/* 0E0FF0 7F0AC4C0 0FC2BAD9 */ jal sub_GAME_7F0AEB64 +/* 0E0FF4 7F0AC4C4 AFB80010 */ sw $t8, 0x10($sp) +/* 0E0FF8 7F0AC4C8 0FC299EF */ jal sub_GAME_7F0A67BC +/* 0E0FFC 7F0AC4CC 00000000 */ nop +/* 0E1000 7F0AC4D0 10000107 */ b .L7F0AC8F0 +/* 0E1004 7F0AC4D4 8FAA0D4C */ lw $t2, 0xd4c($sp) +.L7F0AC4D8: +/* 0E1008 7F0AC4D8 3C088006 */ lui $t0, %hi(D_80057FC0+0x3B8) +/* 0E100C 7F0AC4DC 27B10088 */ addiu $s1, $sp, 0x88 +/* 0E1010 7F0AC4E0 25088378 */ addiu $t0, %lo(D_80057FC0+0x3B8) # addiu $t0, $t0, -0x7c88 +/* 0E1014 7F0AC4E4 250D00C0 */ addiu $t5, $t0, 0xc0 +/* 0E1018 7F0AC4E8 02206025 */ move $t4, $s1 +.L7F0AC4EC: +/* 0E101C 7F0AC4EC 8D010000 */ lw $at, ($t0) +/* 0E1020 7F0AC4F0 2508000C */ addiu $t0, $t0, 0xc +/* 0E1024 7F0AC4F4 258C000C */ addiu $t4, $t4, 0xc +/* 0E1028 7F0AC4F8 AD81FFF4 */ sw $at, -0xc($t4) +/* 0E102C 7F0AC4FC 8D01FFF8 */ lw $at, -8($t0) +/* 0E1030 7F0AC500 AD81FFF8 */ sw $at, -8($t4) +/* 0E1034 7F0AC504 8D01FFFC */ lw $at, -4($t0) +/* 0E1038 7F0AC508 150DFFF8 */ bne $t0, $t5, .L7F0AC4EC +/* 0E103C 7F0AC50C AD81FFFC */ sw $at, -4($t4) +/* 0E1040 7F0AC510 8D010000 */ lw $at, ($t0) +/* 0E1044 7F0AC514 3C0F8005 */ lui $t7, %hi(j_text_trigger) +/* 0E1048 7F0AC518 24120001 */ li $s2, 1 +/* 0E104C 7F0AC51C AD810000 */ sw $at, ($t4) +/* 0E1050 7F0AC520 8D0D0004 */ lw $t5, 4($t0) +/* 0E1054 7F0AC524 00009825 */ move $s3, $zero +/* 0E1058 7F0AC528 24040005 */ li $a0, 5 +/* 0E105C 7F0AC52C AD8D0004 */ sw $t5, 4($t4) +/* 0E1060 7F0AC530 8DEF84D0 */ lw $t7, %lo(j_text_trigger)($t7) +/* 0E1064 7F0AC534 AFA00074 */ sw $zero, 0x74($sp) +/* 0E1068 7F0AC538 11E00003 */ beqz $t7, .L7F0AC548 +/* 0E106C 7F0AC53C 00000000 */ nop +/* 0E1070 7F0AC540 10000001 */ b .L7F0AC548 +/* 0E1074 7F0AC544 24040001 */ li $a0, 1 +.L7F0AC548: +/* 0E1078 7F0AC548 0FC2B2E8 */ jal setTextOverlapCorrection +/* 0E107C 7F0AC54C 00000000 */ nop +/* 0E1080 7F0AC550 0FC30776 */ jal get_textptr_for_textID +/* 0E1084 7F0AC554 3404AC3C */ li $a0, 44092 +/* 0E1088 7F0AC558 27A40170 */ addiu $a0, $sp, 0x170 +/* 0E108C 7F0AC55C 0C002B25 */ jal sprintf +/* 0E1090 7F0AC560 00402825 */ move $a1, $v0 +/* 0E1094 7F0AC564 0FC15C6A */ jal add_objective +/* 0E1098 7F0AC568 0000F025 */ move $fp, $zero +/* 0E109C 7F0AC56C 184000DB */ blez $v0, .L7F0AC8DC +/* 0E10A0 7F0AC570 3C178006 */ lui $s7, %hi(D_80058454) +/* 0E10A4 7F0AC574 3C168006 */ lui $s6, %hi(D_80058450) +/* 0E10A8 7F0AC578 3C158006 */ lui $s5, %hi(D_80058444) +/* 0E10AC 7F0AC57C 3C148006 */ lui $s4, %hi(D_80058440) +/* 0E10B0 7F0AC580 26948440 */ addiu $s4, %lo(D_80058440) # addiu $s4, $s4, -0x7bc0 +/* 0E10B4 7F0AC584 26B58444 */ addiu $s5, %lo(D_80058444) # addiu $s5, $s5, -0x7bbc +/* 0E10B8 7F0AC588 26D68450 */ addiu $s6, %lo(D_80058450) # addiu $s6, $s6, -0x7bb0 +/* 0E10BC 7F0AC58C 26F78454 */ addiu $s7, %lo(D_80058454) # addiu $s7, $s7, -0x7bac +.L7F0AC590: +/* 0E10C0 7F0AC590 0FC15C81 */ jal get_difficulty_for_objective +/* 0E10C4 7F0AC594 03C02025 */ move $a0, $fp +/* 0E10C8 7F0AC598 0FC2FF04 */ jal get_current_difficulty +/* 0E10CC 7F0AC59C AFA20068 */ sw $v0, 0x68($sp) +/* 0E10D0 7F0AC5A0 8FA40068 */ lw $a0, 0x68($sp) +/* 0E10D4 7F0AC5A4 0044082A */ slt $at, $v0, $a0 +/* 0E10D8 7F0AC5A8 142000C7 */ bnez $at, .L7F0AC8C8 +/* 0E10DC 7F0AC5AC 03C02025 */ move $a0, $fp +/* 0E10E0 7F0AC5B0 0FC15C6E */ jal get_text_for_objective +/* 0E10E4 7F0AC5B4 00008025 */ move $s0, $zero +/* 0E10E8 7F0AC5B8 AFA20078 */ sw $v0, 0x78($sp) +/* 0E10EC 7F0AC5BC 1A400008 */ blez $s2, .L7F0AC5E0 +/* 0E10F0 7F0AC5C0 A3A00088 */ sb $zero, 0x88($sp) +/* 0E10F4 7F0AC5C4 02202025 */ move $a0, $s1 +.L7F0AC5C8: +/* 0E10F8 7F0AC5C8 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E10FC 7F0AC5CC 02802825 */ move $a1, $s4 +/* 0E1100 7F0AC5D0 26100001 */ addiu $s0, $s0, 1 +/* 0E1104 7F0AC5D4 5612FFFC */ bnel $s0, $s2, .L7F0AC5C8 +/* 0E1108 7F0AC5D8 02202025 */ move $a0, $s1 +/* 0E110C 7F0AC5DC 00008025 */ move $s0, $zero +.L7F0AC5E0: +/* 0E1110 7F0AC5E0 1A600007 */ blez $s3, .L7F0AC600 +/* 0E1114 7F0AC5E4 02202025 */ move $a0, $s1 +.L7F0AC5E8: +/* 0E1118 7F0AC5E8 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E111C 7F0AC5EC 02A02825 */ move $a1, $s5 +/* 0E1120 7F0AC5F0 26100001 */ addiu $s0, $s0, 1 +/* 0E1124 7F0AC5F4 5613FFFC */ bnel $s0, $s3, .L7F0AC5E8 +/* 0E1128 7F0AC5F8 02202025 */ move $a0, $s1 +/* 0E112C 7F0AC5FC 00008025 */ move $s0, $zero +.L7F0AC600: +/* 0E1130 7F0AC600 0C004E1F */ jal strlen +/* 0E1134 7F0AC604 02202025 */ move $a0, $s1 +/* 0E1138 7F0AC608 8FA60074 */ lw $a2, 0x74($sp) +/* 0E113C 7F0AC60C 00512021 */ addu $a0, $v0, $s1 +/* 0E1140 7F0AC610 3C058006 */ lui $a1, %hi(aC_2) +/* 0E1144 7F0AC614 AFA4006C */ sw $a0, 0x6c($sp) +/* 0E1148 7F0AC618 24A58448 */ addiu $a1, %lo(aC_2) # addiu $a1, $a1, -0x7bb8 +/* 0E114C 7F0AC61C 0C002B25 */ jal sprintf +/* 0E1150 7F0AC620 24C60061 */ addiu $a2, $a2, 0x61 +/* 0E1154 7F0AC624 02202025 */ move $a0, $s1 +/* 0E1158 7F0AC628 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E115C 7F0AC62C 8FA50078 */ lw $a1, 0x78($sp) +/* 0E1160 7F0AC630 3C0E8005 */ lui $t6, %hi(j_text_trigger) +/* 0E1164 7F0AC634 8DCE84D0 */ lw $t6, %lo(j_text_trigger)($t6) +/* 0E1168 7F0AC638 8FAB0D60 */ lw $t3, 0xd60($sp) +/* 0E116C 7F0AC63C 24040005 */ li $a0, 5 +/* 0E1170 7F0AC640 11C00003 */ beqz $t6, .L7F0AC650 +/* 0E1174 7F0AC644 2418003C */ li $t8, 60 +/* 0E1178 7F0AC648 10000001 */ b .L7F0AC650 +/* 0E117C 7F0AC64C 24040001 */ li $a0, 1 +.L7F0AC650: +/* 0E1180 7F0AC650 008B4821 */ addu $t1, $a0, $t3 +/* 0E1184 7F0AC654 AFA90154 */ sw $t1, 0x154($sp) +/* 0E1188 7F0AC658 0C001107 */ jal get_video2_settings_txtClipW +/* 0E118C 7F0AC65C AFB80150 */ sw $t8, 0x150($sp) +/* 0E1190 7F0AC660 0C00110B */ jal get_video2_settings_txtClipH +/* 0E1194 7F0AC664 A7A20064 */ sh $v0, 0x64($sp) +/* 0E1198 7F0AC668 8FB90D48 */ lw $t9, 0xd48($sp) +/* 0E119C 7F0AC66C 8FAA0D4C */ lw $t2, 0xd4c($sp) +/* 0E11A0 7F0AC670 87A80064 */ lh $t0, 0x64($sp) +/* 0E11A4 7F0AC674 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0E11A8 7F0AC678 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0E11AC 7F0AC67C 240C000A */ li $t4, 10 +/* 0E11B0 7F0AC680 AFAC0028 */ sw $t4, 0x28($sp) +/* 0E11B4 7F0AC684 AFAD0018 */ sw $t5, 0x18($sp) +/* 0E11B8 7F0AC688 8FA40DE8 */ lw $a0, 0xde8($sp) +/* 0E11BC 7F0AC68C 27A50150 */ addiu $a1, $sp, 0x150 +/* 0E11C0 7F0AC690 27A60154 */ addiu $a2, $sp, 0x154 +/* 0E11C4 7F0AC694 02203825 */ move $a3, $s1 +/* 0E11C8 7F0AC698 AFA20020 */ sw $v0, 0x20($sp) +/* 0E11CC 7F0AC69C AFA00024 */ sw $zero, 0x24($sp) +/* 0E11D0 7F0AC6A0 AFB90010 */ sw $t9, 0x10($sp) +/* 0E11D4 7F0AC6A4 AFAA0014 */ sw $t2, 0x14($sp) +/* 0E11D8 7F0AC6A8 0FC2B6AF */ jal en_text_write_stuff +/* 0E11DC 7F0AC6AC AFA8001C */ sw $t0, 0x1c($sp) +/* 0E11E0 7F0AC6B0 AFA20DE8 */ sw $v0, 0xde8($sp) +/* 0E11E4 7F0AC6B4 0FC2B03A */ jal sub_GAME_7F0AC0E8 +/* 0E11E8 7F0AC6B8 8FA4006C */ lw $a0, 0x6c($sp) +/* 0E11EC 7F0AC6BC 02429021 */ addu $s2, $s2, $v0 +/* 0E11F0 7F0AC6C0 0FC2B048 */ jal sub_GAME_7F0AC120 +/* 0E11F4 7F0AC6C4 8FA4006C */ lw $a0, 0x6c($sp) +/* 0E11F8 7F0AC6C8 8FAF0D4C */ lw $t7, 0xd4c($sp) +/* 0E11FC 7F0AC6CC 240E000A */ li $t6, 10 +/* 0E1200 7F0AC6D0 AFAE0014 */ sw $t6, 0x14($sp) +/* 0E1204 7F0AC6D4 27A40D54 */ addiu $a0, $sp, 0xd54 +/* 0E1208 7F0AC6D8 27A50D50 */ addiu $a1, $sp, 0xd50 +/* 0E120C 7F0AC6DC 00403025 */ move $a2, $v0 +/* 0E1210 7F0AC6E0 8FA70D48 */ lw $a3, 0xd48($sp) +/* 0E1214 7F0AC6E4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E1218 7F0AC6E8 AFAF0010 */ sw $t7, 0x10($sp) +/* 0E121C 7F0AC6EC 0C001107 */ jal get_video2_settings_txtClipW +/* 0E1220 7F0AC6F0 00000000 */ nop +/* 0E1224 7F0AC6F4 8FA90D50 */ lw $t1, 0xd50($sp) +/* 0E1228 7F0AC6F8 04410003 */ bgez $v0, .L7F0AC708 +/* 0E122C 7F0AC6FC 00025843 */ sra $t3, $v0, 1 +/* 0E1230 7F0AC700 24410001 */ addiu $at, $v0, 1 +/* 0E1234 7F0AC704 00015843 */ sra $t3, $at, 1 +.L7F0AC708: +/* 0E1238 7F0AC708 2538003C */ addiu $t8, $t1, 0x3c +/* 0E123C 7F0AC70C 030B082A */ slt $at, $t8, $t3 +/* 0E1240 7F0AC710 10200002 */ beqz $at, .L7F0AC71C +/* 0E1244 7F0AC714 00000000 */ nop +/* 0E1248 7F0AC718 2652FFFF */ addiu $s2, $s2, -1 +.L7F0AC71C: +/* 0E124C 7F0AC71C 1A400008 */ blez $s2, .L7F0AC740 +/* 0E1250 7F0AC720 A3A00088 */ sb $zero, 0x88($sp) +/* 0E1254 7F0AC724 02202025 */ move $a0, $s1 +.L7F0AC728: +/* 0E1258 7F0AC728 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E125C 7F0AC72C 02C02825 */ move $a1, $s6 +/* 0E1260 7F0AC730 26100001 */ addiu $s0, $s0, 1 +/* 0E1264 7F0AC734 5612FFFC */ bnel $s0, $s2, .L7F0AC728 +/* 0E1268 7F0AC738 02202025 */ move $a0, $s1 +/* 0E126C 7F0AC73C 00008025 */ move $s0, $zero +.L7F0AC740: +/* 0E1270 7F0AC740 1A600006 */ blez $s3, .L7F0AC75C +/* 0E1274 7F0AC744 02202025 */ move $a0, $s1 +.L7F0AC748: +/* 0E1278 7F0AC748 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E127C 7F0AC74C 02E02825 */ move $a1, $s7 +/* 0E1280 7F0AC750 26100001 */ addiu $s0, $s0, 1 +/* 0E1284 7F0AC754 5613FFFC */ bnel $s0, $s3, .L7F0AC748 +/* 0E1288 7F0AC758 02202025 */ move $a0, $s1 +.L7F0AC75C: +/* 0E128C 7F0AC75C 0FC15C8E */ jal get_status_of_objective +/* 0E1290 7F0AC760 03C02025 */ move $a0, $fp +/* 0E1294 7F0AC764 10400009 */ beqz $v0, .L7F0AC78C +/* 0E1298 7F0AC768 02202025 */ move $a0, $s1 +/* 0E129C 7F0AC76C 24010001 */ li $at, 1 +/* 0E12A0 7F0AC770 10410010 */ beq $v0, $at, .L7F0AC7B4 +/* 0E12A4 7F0AC774 02202025 */ move $a0, $s1 +/* 0E12A8 7F0AC778 24010002 */ li $at, 2 +/* 0E12AC 7F0AC77C 10410014 */ beq $v0, $at, .L7F0AC7D0 +/* 0E12B0 7F0AC780 02202025 */ move $a0, $s1 +/* 0E12B4 7F0AC784 1000001F */ b .L7F0AC804 +/* 0E12B8 7F0AC788 8FA90D4C */ lw $t1, 0xd4c($sp) +.L7F0AC78C: +/* 0E12BC 7F0AC78C 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E12C0 7F0AC790 8FA50168 */ lw $a1, 0x168($sp) +/* 0E12C4 7F0AC794 3C198004 */ lui $t9, %hi(D_80040AFC) +/* 0E12C8 7F0AC798 8F390AFC */ lw $t9, %lo(D_80040AFC)($t9) +/* 0E12CC 7F0AC79C 3C014000 */ lui $at, (0x400040FF >> 16) # lui $at, 0x4000 +/* 0E12D0 7F0AC7A0 342140FF */ ori $at, (0x400040FF & 0xFFFF) # ori $at, $at, 0x40ff +/* 0E12D4 7F0AC7A4 00195400 */ sll $t2, $t9, 0x10 +/* 0E12D8 7F0AC7A8 01416825 */ or $t5, $t2, $at +/* 0E12DC 7F0AC7AC 10000014 */ b .L7F0AC800 +/* 0E12E0 7F0AC7B0 AFAD0084 */ sw $t5, 0x84($sp) +.L7F0AC7B4: +/* 0E12E4 7F0AC7B4 3C08A0FF */ lui $t0, (0xA0FFA0F0 >> 16) # lui $t0, 0xa0ff +/* 0E12E8 7F0AC7B8 3508A0F0 */ ori $t0, (0xA0FFA0F0 & 0xFFFF) # ori $t0, $t0, 0xa0f0 +/* 0E12EC 7F0AC7BC AFA80084 */ sw $t0, 0x84($sp) +/* 0E12F0 7F0AC7C0 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E12F4 7F0AC7C4 8FA5016C */ lw $a1, 0x16c($sp) +/* 0E12F8 7F0AC7C8 1000000E */ b .L7F0AC804 +/* 0E12FC 7F0AC7CC 8FA90D4C */ lw $t1, 0xd4c($sp) +.L7F0AC7D0: +/* 0E1300 7F0AC7D0 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E1304 7F0AC7D4 8FA50164 */ lw $a1, 0x164($sp) +/* 0E1308 7F0AC7D8 3C0C8005 */ lui $t4, %hi(j_text_trigger) +/* 0E130C 7F0AC7DC 8D8C84D0 */ lw $t4, %lo(j_text_trigger)($t4) +/* 0E1310 7F0AC7E0 3C0E00FF */ lui $t6, (0x00FF00B0 >> 16) # lui $t6, 0xff +/* 0E1314 7F0AC7E4 3C0FA0FF */ lui $t7, (0xA0FFA0F0 >> 16) # lui $t7, 0xa0ff +/* 0E1318 7F0AC7E8 11800004 */ beqz $t4, .L7F0AC7FC +/* 0E131C 7F0AC7EC 35CE00B0 */ ori $t6, (0x00FF00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0E1320 7F0AC7F0 35EFA0F0 */ ori $t7, (0xA0FFA0F0 & 0xFFFF) # ori $t7, $t7, 0xa0f0 +/* 0E1324 7F0AC7F4 10000002 */ b .L7F0AC800 +/* 0E1328 7F0AC7F8 AFAF0084 */ sw $t7, 0x84($sp) +.L7F0AC7FC: +/* 0E132C 7F0AC7FC AFAE0084 */ sw $t6, 0x84($sp) +.L7F0AC800: +/* 0E1330 7F0AC800 8FA90D4C */ lw $t1, 0xd4c($sp) +.L7F0AC804: +/* 0E1334 7F0AC804 240B000A */ li $t3, 10 +/* 0E1338 7F0AC808 AFAB0014 */ sw $t3, 0x14($sp) +/* 0E133C 7F0AC80C 27A40D54 */ addiu $a0, $sp, 0xd54 +/* 0E1340 7F0AC810 27A50D50 */ addiu $a1, $sp, 0xd50 +/* 0E1344 7F0AC814 02203025 */ move $a2, $s1 +/* 0E1348 7F0AC818 8FA70D48 */ lw $a3, 0xd48($sp) +/* 0E134C 7F0AC81C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E1350 7F0AC820 AFA90010 */ sw $t1, 0x10($sp) +/* 0E1354 7F0AC824 3C028005 */ lui $v0, %hi(j_text_trigger) +/* 0E1358 7F0AC828 8C4284D0 */ lw $v0, %lo(j_text_trigger)($v0) +/* 0E135C 7F0AC82C 8FB80D60 */ lw $t8, 0xd60($sp) +/* 0E1360 7F0AC830 24040005 */ li $a0, 5 +/* 0E1364 7F0AC834 10400003 */ beqz $v0, .L7F0AC844 +/* 0E1368 7F0AC838 240C00AF */ li $t4, 175 +/* 0E136C 7F0AC83C 10000001 */ b .L7F0AC844 +/* 0E1370 7F0AC840 24040001 */ li $a0, 1 +.L7F0AC844: +/* 0E1374 7F0AC844 0098C821 */ addu $t9, $a0, $t8 +/* 0E1378 7F0AC848 10400006 */ beqz $v0, .L7F0AC864 +/* 0E137C 7F0AC84C AFB90154 */ sw $t9, 0x154($sp) +/* 0E1380 7F0AC850 8FAA0D50 */ lw $t2, 0xd50($sp) +/* 0E1384 7F0AC854 240D00F5 */ li $t5, 245 +/* 0E1388 7F0AC858 01AA4023 */ subu $t0, $t5, $t2 +/* 0E138C 7F0AC85C 10000002 */ b .L7F0AC868 +/* 0E1390 7F0AC860 AFA80150 */ sw $t0, 0x150($sp) +.L7F0AC864: +/* 0E1394 7F0AC864 AFAC0150 */ sw $t4, 0x150($sp) +.L7F0AC868: +/* 0E1398 7F0AC868 0C00110B */ jal get_video2_settings_txtClipH +/* 0E139C 7F0AC86C 00000000 */ nop +/* 0E13A0 7F0AC870 8FAF0D48 */ lw $t7, 0xd48($sp) +/* 0E13A4 7F0AC874 8FAE0D4C */ lw $t6, 0xd4c($sp) +/* 0E13A8 7F0AC878 8FA90084 */ lw $t1, 0x84($sp) +/* 0E13AC 7F0AC87C 240B00D2 */ li $t3, 210 +/* 0E13B0 7F0AC880 2418000A */ li $t8, 10 +/* 0E13B4 7F0AC884 AFB80028 */ sw $t8, 0x28($sp) +/* 0E13B8 7F0AC888 AFAB001C */ sw $t3, 0x1c($sp) +/* 0E13BC 7F0AC88C 8FA40DE8 */ lw $a0, 0xde8($sp) +/* 0E13C0 7F0AC890 27A50150 */ addiu $a1, $sp, 0x150 +/* 0E13C4 7F0AC894 27A60154 */ addiu $a2, $sp, 0x154 +/* 0E13C8 7F0AC898 02203825 */ move $a3, $s1 +/* 0E13CC 7F0AC89C AFA20020 */ sw $v0, 0x20($sp) +/* 0E13D0 7F0AC8A0 AFA00024 */ sw $zero, 0x24($sp) +/* 0E13D4 7F0AC8A4 AFAF0010 */ sw $t7, 0x10($sp) +/* 0E13D8 7F0AC8A8 AFAE0014 */ sw $t6, 0x14($sp) +/* 0E13DC 7F0AC8AC 0FC2B6AF */ jal en_text_write_stuff +/* 0E13E0 7F0AC8B0 AFA90018 */ sw $t1, 0x18($sp) +/* 0E13E4 7F0AC8B4 8FB90074 */ lw $t9, 0x74($sp) +/* 0E13E8 7F0AC8B8 AFA20DE8 */ sw $v0, 0xde8($sp) +/* 0E13EC 7F0AC8BC 26730001 */ addiu $s3, $s3, 1 +/* 0E13F0 7F0AC8C0 272D0001 */ addiu $t5, $t9, 1 +/* 0E13F4 7F0AC8C4 AFAD0074 */ sw $t5, 0x74($sp) +.L7F0AC8C8: +/* 0E13F8 7F0AC8C8 0FC15C6A */ jal add_objective +/* 0E13FC 7F0AC8CC 27DE0001 */ addiu $fp, $fp, 1 +/* 0E1400 7F0AC8D0 03C2082A */ slt $at, $fp, $v0 +/* 0E1404 7F0AC8D4 1420FF2E */ bnez $at, .L7F0AC590 +/* 0E1408 7F0AC8D8 00000000 */ nop +.L7F0AC8DC: +/* 0E140C 7F0AC8DC 0FC2B2E8 */ jal setTextOverlapCorrection +/* 0E1410 7F0AC8E0 2404FFFF */ li $a0, -1 +/* 0E1414 7F0AC8E4 0FC29A13 */ jal sub_GAME_7F0A684C +/* 0E1418 7F0AC8E8 00000000 */ nop +.L7F0AC8EC: +/* 0E141C 7F0AC8EC 8FAA0D4C */ lw $t2, 0xd4c($sp) +.L7F0AC8F0: +/* 0E1420 7F0AC8F0 2408000A */ li $t0, 10 +/* 0E1424 7F0AC8F4 AFA80014 */ sw $t0, 0x14($sp) +/* 0E1428 7F0AC8F8 27A40D54 */ addiu $a0, $sp, 0xd54 +/* 0E142C 7F0AC8FC 27A50D50 */ addiu $a1, $sp, 0xd50 +/* 0E1430 7F0AC900 27A60170 */ addiu $a2, $sp, 0x170 +/* 0E1434 7F0AC904 8FA70D48 */ lw $a3, 0xd48($sp) +/* 0E1438 7F0AC908 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E143C 7F0AC90C AFAA0010 */ sw $t2, 0x10($sp) +/* 0E1440 7F0AC910 8FAC0D48 */ lw $t4, 0xd48($sp) +/* 0E1444 7F0AC914 8FAF0D4C */ lw $t7, 0xd4c($sp) +/* 0E1448 7F0AC918 3C0EA0FF */ lui $t6, (0xA0FFA0F0 >> 16) # lui $t6, 0xa0ff +/* 0E144C 7F0AC91C 35CEA0F0 */ ori $t6, (0xA0FFA0F0 & 0xFFFF) # ori $t6, $t6, 0xa0f0 +/* 0E1450 7F0AC920 240900D2 */ li $t1, 210 +/* 0E1454 7F0AC924 240B0082 */ li $t3, 130 +/* 0E1458 7F0AC928 2418000A */ li $t8, 10 +/* 0E145C 7F0AC92C AFB80028 */ sw $t8, 0x28($sp) +/* 0E1460 7F0AC930 AFAB0020 */ sw $t3, 0x20($sp) +/* 0E1464 7F0AC934 AFA9001C */ sw $t1, 0x1c($sp) +/* 0E1468 7F0AC938 AFAE0018 */ sw $t6, 0x18($sp) +/* 0E146C 7F0AC93C 8FA40DE8 */ lw $a0, 0xde8($sp) +/* 0E1470 7F0AC940 27A50D64 */ addiu $a1, $sp, 0xd64 +/* 0E1474 7F0AC944 27A60D60 */ addiu $a2, $sp, 0xd60 +/* 0E1478 7F0AC948 27A70170 */ addiu $a3, $sp, 0x170 +/* 0E147C 7F0AC94C AFA00024 */ sw $zero, 0x24($sp) +/* 0E1480 7F0AC950 AFAC0010 */ sw $t4, 0x10($sp) +/* 0E1484 7F0AC954 0FC2B6AF */ jal en_text_write_stuff +/* 0E1488 7F0AC958 AFAF0014 */ sw $t7, 0x14($sp) +/* 0E148C 7F0AC95C 8FB90D60 */ lw $t9, 0xd60($sp) +/* 0E1490 7F0AC960 8FAA0D4C */ lw $t2, 0xd4c($sp) +/* 0E1494 7F0AC964 2403003C */ li $v1, 60 +/* 0E1498 7F0AC968 2408000A */ li $t0, 10 +/* 0E149C 7F0AC96C 272D0005 */ addiu $t5, $t9, 5 +/* 0E14A0 7F0AC970 AFA20DE8 */ sw $v0, 0xde8($sp) +/* 0E14A4 7F0AC974 AFAD0D60 */ sw $t5, 0xd60($sp) +/* 0E14A8 7F0AC978 AFA80014 */ sw $t0, 0x14($sp) +/* 0E14AC 7F0AC97C AFA30D64 */ sw $v1, 0xd64($sp) +/* 0E14B0 7F0AC980 27A40D54 */ addiu $a0, $sp, 0xd54 +/* 0E14B4 7F0AC984 27A50D50 */ addiu $a1, $sp, 0xd50 +/* 0E14B8 7F0AC988 27A60190 */ addiu $a2, $sp, 0x190 +/* 0E14BC 7F0AC98C 8FA70D48 */ lw $a3, 0xd48($sp) +/* 0E14C0 7F0AC990 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0E14C4 7F0AC994 AFAA0010 */ sw $t2, 0x10($sp) +/* 0E14C8 7F0AC998 0C001107 */ jal get_video2_settings_txtClipW +/* 0E14CC 7F0AC99C 00000000 */ nop +/* 0E14D0 7F0AC9A0 0C00110B */ jal get_video2_settings_txtClipH +/* 0E14D4 7F0AC9A4 A7A20064 */ sh $v0, 0x64($sp) +/* 0E14D8 7F0AC9A8 8FAC0D48 */ lw $t4, 0xd48($sp) +/* 0E14DC 7F0AC9AC 8FAF0D4C */ lw $t7, 0xd4c($sp) +/* 0E14E0 7F0AC9B0 87A90064 */ lh $t1, 0x64($sp) +/* 0E14E4 7F0AC9B4 3C0E00FF */ lui $t6, (0x00FF00B0 >> 16) # lui $t6, 0xff +/* 0E14E8 7F0AC9B8 35CE00B0 */ ori $t6, (0x00FF00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0E14EC 7F0AC9BC 240B000A */ li $t3, 10 +/* 0E14F0 7F0AC9C0 AFAB0028 */ sw $t3, 0x28($sp) +/* 0E14F4 7F0AC9C4 AFAE0018 */ sw $t6, 0x18($sp) +/* 0E14F8 7F0AC9C8 8FA40DE8 */ lw $a0, 0xde8($sp) +/* 0E14FC 7F0AC9CC 27A50D64 */ addiu $a1, $sp, 0xd64 +/* 0E1500 7F0AC9D0 27A60D60 */ addiu $a2, $sp, 0xd60 +/* 0E1504 7F0AC9D4 27A70190 */ addiu $a3, $sp, 0x190 +/* 0E1508 7F0AC9D8 AFA20020 */ sw $v0, 0x20($sp) +/* 0E150C 7F0AC9DC AFA00024 */ sw $zero, 0x24($sp) +/* 0E1510 7F0AC9E0 AFAC0010 */ sw $t4, 0x10($sp) +/* 0E1514 7F0AC9E4 AFAF0014 */ sw $t7, 0x14($sp) +/* 0E1518 7F0AC9E8 0FC2B6AF */ jal en_text_write_stuff +/* 0E151C 7F0AC9EC AFA9001C */ sw $t1, 0x1c($sp) +/* 0E1520 7F0AC9F0 AFA20DE8 */ sw $v0, 0xde8($sp) +.L7F0AC9F4: +/* 0E1524 7F0AC9F4 8FBF005C */ lw $ra, 0x5c($sp) +/* 0E1528 7F0AC9F8 8FA20DE8 */ lw $v0, 0xde8($sp) +/* 0E152C 7F0AC9FC 8FB00038 */ lw $s0, 0x38($sp) +/* 0E1530 7F0ACA00 8FB1003C */ lw $s1, 0x3c($sp) +/* 0E1534 7F0ACA04 8FB20040 */ lw $s2, 0x40($sp) +/* 0E1538 7F0ACA08 8FB30044 */ lw $s3, 0x44($sp) +/* 0E153C 7F0ACA0C 8FB40048 */ lw $s4, 0x48($sp) +/* 0E1540 7F0ACA10 8FB5004C */ lw $s5, 0x4c($sp) +/* 0E1544 7F0ACA14 8FB60050 */ lw $s6, 0x50($sp) +/* 0E1548 7F0ACA18 8FB70054 */ lw $s7, 0x54($sp) +/* 0E154C 7F0ACA1C 8FBE0058 */ lw $fp, 0x58($sp) +/* 0E1550 7F0ACA20 03E00008 */ jr $ra +/* 0E1554 7F0ACA24 27BD0DE8 */ addiu $sp, $sp, 0xde8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0ACA28(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +/*D:80058584*/ +glabel jpt_80058584 +.word .L7F0ACAD0 +.word .L7F0ACAE4 +.word .L7F0ACAF8 +.word .L7F0ACB0C +.word .L7F0ACB20 +.text +glabel sub_GAME_7F0ACA28 +/* 0E1558 7F0ACA28 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0E155C 7F0ACA2C AFA50024 */ sw $a1, 0x24($sp) +/* 0E1560 7F0ACA30 AFB00018 */ sw $s0, 0x18($sp) +/* 0E1564 7F0ACA34 3C058008 */ lui $a1, %hi(pPlayer) +/* 0E1568 7F0ACA38 8CA5A0B0 */ lw $a1, %lo(pPlayer)($a1) +/* 0E156C 7F0ACA3C 00808025 */ move $s0, $a0 +/* 0E1570 7F0ACA40 AFBF001C */ sw $ra, 0x1c($sp) +/* 0E1574 7F0ACA44 3C048004 */ lui $a0, %hi(watch_screen_index) +/* 0E1578 7F0ACA48 AFA60028 */ sw $a2, 0x28($sp) +/* 0E157C 7F0ACA4C 8C840994 */ lw $a0, %lo(watch_screen_index)($a0) +/* 0E1580 7F0ACA50 0FC29C2B */ jal sub_GAME_7F0A70AC +/* 0E1584 7F0ACA54 24A51878 */ addiu $a1, $a1, 0x1878 +/* 0E1588 7F0ACA58 8FA20028 */ lw $v0, 0x28($sp) +/* 0E158C 7F0ACA5C 24010001 */ li $at, 1 +/* 0E1590 7F0ACA60 14410034 */ bne $v0, $at, .L7F0ACB34 +/* 0E1594 7F0ACA64 00000000 */ nop +/* 0E1598 7F0ACA68 0FC1FAB4 */ jal set_BONDdata_paused_flag +/* 0E159C 7F0ACA6C 00002025 */ move $a0, $zero +/* 0E15A0 7F0ACA70 0FC2F63F */ jal sub_GAME_7F0BD8FC +/* 0E15A4 7F0ACA74 00002025 */ move $a0, $zero +/* 0E15A8 7F0ACA78 3C0E8004 */ lui $t6, %hi(watch_screen_index) +/* 0E15AC 7F0ACA7C 8DCE0994 */ lw $t6, %lo(watch_screen_index)($t6) +/* 0E15B0 7F0ACA80 24010001 */ li $at, 1 +/* 0E15B4 7F0ACA84 00002025 */ move $a0, $zero +/* 0E15B8 7F0ACA88 11C10007 */ beq $t6, $at, .L7F0ACAA8 +/* 0E15BC 7F0ACA8C 00000000 */ nop +/* 0E15C0 7F0ACA90 0C0030EB */ jal get_controller_buttons_pressed +/* 0E15C4 7F0ACA94 3405A000 */ li $a1, 40960 +/* 0E15C8 7F0ACA98 10400003 */ beqz $v0, .L7F0ACAA8 +/* 0E15CC 7F0ACA9C 00000000 */ nop +/* 0E15D0 7F0ACAA0 0FC293BE */ jal sub_GAME_7F0A4EF8 +/* 0E15D4 7F0ACAA4 00000000 */ nop +.L7F0ACAA8: +/* 0E15D8 7F0ACAA8 3C0F8004 */ lui $t7, %hi(watch_screen_index) +/* 0E15DC 7F0ACAAC 8DEF0994 */ lw $t7, %lo(watch_screen_index)($t7) +/* 0E15E0 7F0ACAB0 2DE10005 */ sltiu $at, $t7, 5 +/* 0E15E4 7F0ACAB4 10200029 */ beqz $at, .L7F0ACB5C +/* 0E15E8 7F0ACAB8 000F7880 */ sll $t7, $t7, 2 +/* 0E15EC 7F0ACABC 3C018006 */ lui $at, %hi(jpt_80058584) +/* 0E15F0 7F0ACAC0 002F0821 */ addu $at, $at, $t7 +/* 0E15F4 7F0ACAC4 8C2F8584 */ lw $t7, %lo(jpt_80058584)($at) +/* 0E15F8 7F0ACAC8 01E00008 */ jr $t7 +/* 0E15FC 7F0ACACC 00000000 */ nop +.L7F0ACAD0: +/* 0E1600 7F0ACAD0 02002025 */ move $a0, $s0 +/* 0E1604 7F0ACAD4 0FC2A0C3 */ jal sub_GAME_7F0A830C +/* 0E1608 7F0ACAD8 8FA50024 */ lw $a1, 0x24($sp) +/* 0E160C 7F0ACADC 1000001F */ b .L7F0ACB5C +/* 0E1610 7F0ACAE0 00408025 */ move $s0, $v0 +.L7F0ACAE4: +/* 0E1614 7F0ACAE4 02002025 */ move $a0, $s0 +/* 0E1618 7F0ACAE8 0FC2A109 */ jal debug_gun_watch_move_related2 +/* 0E161C 7F0ACAEC 8FA50024 */ lw $a1, 0x24($sp) +/* 0E1620 7F0ACAF0 1000001A */ b .L7F0ACB5C +/* 0E1624 7F0ACAF4 00408025 */ move $s0, $v0 +.L7F0ACAF8: +/* 0E1628 7F0ACAF8 02002025 */ move $a0, $s0 +/* 0E162C 7F0ACAFC 0FC2AD2E */ jal sub_GAME_7F0AB4B8 +/* 0E1630 7F0ACB00 8FA50024 */ lw $a1, 0x24($sp) +/* 0E1634 7F0ACB04 10000015 */ b .L7F0ACB5C +/* 0E1638 7F0ACB08 00408025 */ move $s0, $v0 +.L7F0ACB0C: +/* 0E163C 7F0ACB0C 02002025 */ move $a0, $s0 +/* 0E1640 7F0ACB10 0FC2AF7F */ jal sub_GAME_7F0ABDFC +/* 0E1644 7F0ACB14 8FA50024 */ lw $a1, 0x24($sp) +/* 0E1648 7F0ACB18 10000010 */ b .L7F0ACB5C +/* 0E164C 7F0ACB1C 00408025 */ move $s0, $v0 +.L7F0ACB20: +/* 0E1650 7F0ACB20 02002025 */ move $a0, $s0 +/* 0E1654 7F0ACB24 0FC2B05A */ jal sub_GAME_7F0AC168 +/* 0E1658 7F0ACB28 8FA50024 */ lw $a1, 0x24($sp) +/* 0E165C 7F0ACB2C 1000000B */ b .L7F0ACB5C +/* 0E1660 7F0ACB30 00408025 */ move $s0, $v0 +.L7F0ACB34: +/* 0E1664 7F0ACB34 5440000A */ bnezl $v0, .L7F0ACB60 +/* 0E1668 7F0ACB38 8FBF001C */ lw $ra, 0x1c($sp) +/* 0E166C 7F0ACB3C 0FC2F63F */ jal sub_GAME_7F0BD8FC +/* 0E1670 7F0ACB40 24040001 */ li $a0, 1 +/* 0E1674 7F0ACB44 0FC1FAB4 */ jal set_BONDdata_paused_flag +/* 0E1678 7F0ACB48 24040001 */ li $a0, 1 +/* 0E167C 7F0ACB4C 02002025 */ move $a0, $s0 +/* 0E1680 7F0ACB50 0FC29DEA */ jal sub_GAME_7F0A77A8 +/* 0E1684 7F0ACB54 8FA50024 */ lw $a1, 0x24($sp) +/* 0E1688 7F0ACB58 00408025 */ move $s0, $v0 +.L7F0ACB5C: +/* 0E168C 7F0ACB5C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F0ACB60: +/* 0E1690 7F0ACB60 02001025 */ move $v0, $s0 +/* 0E1694 7F0ACB64 8FB00018 */ lw $s0, 0x18($sp) +/* 0E1698 7F0ACB68 03E00008 */ jr $ra +/* 0E169C 7F0ACB6C 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + diff --git a/src/game/watch.h b/src/game/watch.h new file mode 100644 index 0000000..40254df --- /dev/null +++ b/src/game/watch.h @@ -0,0 +1,13 @@ +#ifndef _WATCH_H_ +#define _WATCH_H_ +#include "ultra64.h" + +void zero_D_80040998(); + +void zero_D_8004099C(); + +void zero_D_800409A4(); + +#endif + + diff --git a/src/game/zlib.c b/src/game/zlib.c new file mode 100644 index 0000000..1bca04e --- /dev/null +++ b/src/game/zlib.c @@ -0,0 +1,1854 @@ +#include "ultra64.h" +#include "zlib.h" +//.bss + +//bss:8008D350 +s32 dword_CODE_bss_8008D350; +//bss:8008D354 +s32 dword_CODE_bss_8008D354; +//bss:8008D358 +s32 dword_CODE_bss_8008D358; +//bss:8008D35C +s32 dword_CODE_bss_8008D35C; +//bss:8008D360 +s32 dword_CODE_bss_8008D360; +//bss:8008D364 +s32 dword_CODE_bss_8008D364; +//bss:8008D368 +s32 dword_CODE_bss_8008D368; +//bss:8008D36C +s32 dword_CODE_bss_8008D36C; + + +//.data +u8 D_8004E8E0[] = { + 0x10,0x11,0x12, 0, 8, 7, 9, 6, 0xA, 5, 0xB, 4, 0xC, 3, + 0xD, 2, 0xE, 1, 0xF, 0 +}; + +s16 D_8004E8F4[] = { + 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xD, + 0xF, 0x11, 0x13, 0x17, 0x1B, 0x1F, 0x23, 0x2B, 0x33, 0x3B, + 0x43, 0x53, 0x63, 0x73, 0x83, 0xA3, 0xC3, 0xE3, 0x102, 0, + 0, 0 +}; + +u32 D_8004E934[] = { + 0, 0, 0x1010101, 0x2020202, 0x3030303, 0x4040404, 0x5050505, 0x636300 +}; + +s16 D_8004E954[] = { + 1 , 2, 3, 4, 5, 7, 9, 0xD, 0x11, 0x19, 0x21, 0x31, 0x41, 0x61, + 0x81, 0xC1, 0x101, 0x181, 0x201, 0x301, 0x401, 0x601, 0x801, + 0xC01, 0x1001, 0x1801, 0x2001, 0x3001, 0x4001, 0x6001 +}; + +u16 D_8004E990[] = { + 0, 0, 0x101, 0x202, 0x303, 0x404, 0x505, 0x606, + 0x707, 0x808, 0x909, 0xA0A, 0xB0B, 0xC0C, 0xD0D, 0 +}; + +u16 D_8004E9B0[] = { + 0, 1, 3, 7, 0xF, 0x1F, 0x3F, 0x7F, 0xFF, 0x1FF, 0x3FF, 0x7FF, 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF, 0 +}; + +s32 D_8004E9D4 = 9; +s32 D_8004E9D8 = 6; + +//.rodata + + +#ifdef NONMATCHING +void sub_GAME_7F0CE8B0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CE8B0 +/* 1033E0 7F0CE8B0 27BDFA08 */ addiu $sp, $sp, -0x5f8 +/* 1033E4 7F0CE8B4 AFB20020 */ sw $s2, 0x20($sp) +/* 1033E8 7F0CE8B8 AFB1001C */ sw $s1, 0x1c($sp) +/* 1033EC 7F0CE8BC 27B105B0 */ addiu $s1, $sp, 0x5b0 +/* 1033F0 7F0CE8C0 00809025 */ move $s2, $a0 +/* 1033F4 7F0CE8C4 AFBF003C */ sw $ra, 0x3c($sp) +/* 1033F8 7F0CE8C8 AFA505FC */ sw $a1, 0x5fc($sp) +/* 1033FC 7F0CE8CC AFBE0038 */ sw $fp, 0x38($sp) +/* 103400 7F0CE8D0 AFB70034 */ sw $s7, 0x34($sp) +/* 103404 7F0CE8D4 AFB60030 */ sw $s6, 0x30($sp) +/* 103408 7F0CE8D8 AFB5002C */ sw $s5, 0x2c($sp) +/* 10340C 7F0CE8DC AFB40028 */ sw $s4, 0x28($sp) +/* 103410 7F0CE8E0 AFB30024 */ sw $s3, 0x24($sp) +/* 103414 7F0CE8E4 AFB00018 */ sw $s0, 0x18($sp) +/* 103418 7F0CE8E8 AFA60600 */ sw $a2, 0x600($sp) +/* 10341C 7F0CE8EC AFA70604 */ sw $a3, 0x604($sp) +/* 103420 7F0CE8F0 24050044 */ li $a1, 68 +/* 103424 7F0CE8F4 0C005F10 */ jal bzero +/* 103428 7F0CE8F8 02202025 */ move $a0, $s1 +/* 10342C 7F0CE8FC 8FAE05FC */ lw $t6, 0x5fc($sp) +/* 103430 7F0CE900 0240F025 */ move $fp, $s2 +/* 103434 7F0CE904 24070001 */ li $a3, 1 +/* 103438 7F0CE908 31C20003 */ andi $v0, $t6, 3 +/* 10343C 7F0CE90C 00021023 */ negu $v0, $v0 +/* 103440 7F0CE910 1040000D */ beqz $v0, .L7F0CE948 +/* 103444 7F0CE914 01C0F825 */ move $ra, $t6 +/* 103448 7F0CE918 004E1821 */ addu $v1, $v0, $t6 +.L7F0CE91C: +/* 10344C 7F0CE91C 8FCF0000 */ lw $t7, ($fp) +/* 103450 7F0CE920 27FFFFFF */ addiu $ra, $ra, -1 +/* 103454 7F0CE924 27DE0004 */ addiu $fp, $fp, 4 +/* 103458 7F0CE928 000FC080 */ sll $t8, $t7, 2 +/* 10345C 7F0CE92C 02381021 */ addu $v0, $s1, $t8 +/* 103460 7F0CE930 8C590000 */ lw $t9, ($v0) +/* 103464 7F0CE934 272E0001 */ addiu $t6, $t9, 1 +/* 103468 7F0CE938 147FFFF8 */ bne $v1, $ra, .L7F0CE91C +/* 10346C 7F0CE93C AC4E0000 */ sw $t6, ($v0) +/* 103470 7F0CE940 53E0001D */ beql $ra, $zero, .L7F0CE9B8 +/* 103474 7F0CE944 8FAF05FC */ lw $t7, 0x5fc($sp) +.L7F0CE948: +/* 103478 7F0CE948 8FCF0000 */ lw $t7, ($fp) +/* 10347C 7F0CE94C 27FFFFFC */ addiu $ra, $ra, -4 +/* 103480 7F0CE950 27DE0010 */ addiu $fp, $fp, 0x10 +/* 103484 7F0CE954 000FC080 */ sll $t8, $t7, 2 +/* 103488 7F0CE958 02381021 */ addu $v0, $s1, $t8 +/* 10348C 7F0CE95C 8C590000 */ lw $t9, ($v0) +/* 103490 7F0CE960 272E0001 */ addiu $t6, $t9, 1 +/* 103494 7F0CE964 AC4E0000 */ sw $t6, ($v0) +/* 103498 7F0CE968 8FCFFFF4 */ lw $t7, -0xc($fp) +/* 10349C 7F0CE96C 000FC080 */ sll $t8, $t7, 2 +/* 1034A0 7F0CE970 02381021 */ addu $v0, $s1, $t8 +/* 1034A4 7F0CE974 8C590000 */ lw $t9, ($v0) +/* 1034A8 7F0CE978 272E0001 */ addiu $t6, $t9, 1 +/* 1034AC 7F0CE97C AC4E0000 */ sw $t6, ($v0) +/* 1034B0 7F0CE980 8FCFFFF8 */ lw $t7, -8($fp) +/* 1034B4 7F0CE984 000FC080 */ sll $t8, $t7, 2 +/* 1034B8 7F0CE988 02381021 */ addu $v0, $s1, $t8 +/* 1034BC 7F0CE98C 8C590000 */ lw $t9, ($v0) +/* 1034C0 7F0CE990 272E0001 */ addiu $t6, $t9, 1 +/* 1034C4 7F0CE994 AC4E0000 */ sw $t6, ($v0) +/* 1034C8 7F0CE998 8FCFFFFC */ lw $t7, -4($fp) +/* 1034CC 7F0CE99C 000FC080 */ sll $t8, $t7, 2 +/* 1034D0 7F0CE9A0 02381021 */ addu $v0, $s1, $t8 +/* 1034D4 7F0CE9A4 8C590000 */ lw $t9, ($v0) +/* 1034D8 7F0CE9A8 272E0001 */ addiu $t6, $t9, 1 +/* 1034DC 7F0CE9AC 17E0FFE6 */ bnez $ra, .L7F0CE948 +/* 1034E0 7F0CE9B0 AC4E0000 */ sw $t6, ($v0) +/* 1034E4 7F0CE9B4 8FAF05FC */ lw $t7, 0x5fc($sp) +.L7F0CE9B8: +/* 1034E8 7F0CE9B8 8FB805B0 */ lw $t8, 0x5b0($sp) +/* 1034EC 7F0CE9BC 8FA50610 */ lw $a1, 0x610($sp) +/* 1034F0 7F0CE9C0 27A305B4 */ addiu $v1, $sp, 0x5b4 +/* 1034F4 7F0CE9C4 15F80007 */ bne $t7, $t8, .L7F0CE9E4 +/* 1034F8 7F0CE9C8 24020011 */ li $v0, 17 +/* 1034FC 7F0CE9CC 8FB5060C */ lw $s5, 0x60c($sp) +/* 103500 7F0CE9D0 8FA50610 */ lw $a1, 0x610($sp) +/* 103504 7F0CE9D4 00001025 */ move $v0, $zero +/* 103508 7F0CE9D8 AEA00000 */ sw $zero, ($s5) +/* 10350C 7F0CE9DC 10000138 */ b .L7F0CEEC0 +/* 103510 7F0CE9E0 ACA00000 */ sw $zero, ($a1) +.L7F0CE9E4: +/* 103514 7F0CE9E4 8CB00000 */ lw $s0, ($a1) +.L7F0CE9E8: +/* 103518 7F0CE9E8 8C790000 */ lw $t9, ($v1) +/* 10351C 7F0CE9EC 57200005 */ bnezl $t9, .L7F0CEA04 +/* 103520 7F0CE9F0 0207082B */ sltu $at, $s0, $a3 +/* 103524 7F0CE9F4 24E70001 */ addiu $a3, $a3, 1 +/* 103528 7F0CE9F8 14E2FFFB */ bne $a3, $v0, .L7F0CE9E8 +/* 10352C 7F0CE9FC 24630004 */ addiu $v1, $v1, 4 +/* 103530 7F0CEA00 0207082B */ sltu $at, $s0, $a3 +.L7F0CEA04: +/* 103534 7F0CEA04 10200002 */ beqz $at, .L7F0CEA10 +/* 103538 7F0CEA08 00E0A025 */ move $s4, $a3 +/* 10353C 7F0CEA0C 00E08025 */ move $s0, $a3 +.L7F0CEA10: +/* 103540 7F0CEA10 241F0010 */ li $ra, 16 +/* 103544 7F0CEA14 27A205F0 */ addiu $v0, $sp, 0x5f0 +.L7F0CEA18: +/* 103548 7F0CEA18 8C4E0000 */ lw $t6, ($v0) +/* 10354C 7F0CEA1C 55C00005 */ bnezl $t6, .L7F0CEA34 +/* 103550 7F0CEA20 03F0082B */ sltu $at, $ra, $s0 +/* 103554 7F0CEA24 27FFFFFF */ addiu $ra, $ra, -1 +/* 103558 7F0CEA28 17E0FFFB */ bnez $ra, .L7F0CEA18 +/* 10355C 7F0CEA2C 2442FFFC */ addiu $v0, $v0, -4 +/* 103560 7F0CEA30 03F0082B */ sltu $at, $ra, $s0 +.L7F0CEA34: +/* 103564 7F0CEA34 10200002 */ beqz $at, .L7F0CEA40 +/* 103568 7F0CEA38 AFBF05A8 */ sw $ra, 0x5a8($sp) +/* 10356C 7F0CEA3C 03E08025 */ move $s0, $ra +.L7F0CEA40: +/* 103570 7F0CEA40 240F0001 */ li $t7, 1 +/* 103574 7F0CEA44 00FF082B */ sltu $at, $a3, $ra +/* 103578 7F0CEA48 ACB00000 */ sw $s0, ($a1) +/* 10357C 7F0CEA4C 1020000B */ beqz $at, .L7F0CEA7C +/* 103580 7F0CEA50 00EF2004 */ sllv $a0, $t7, $a3 +/* 103584 7F0CEA54 001FC080 */ sll $t8, $ra, 2 +/* 103588 7F0CEA58 27B905B0 */ addiu $t9, $sp, 0x5b0 +/* 10358C 7F0CEA5C 03192821 */ addu $a1, $t8, $t9 +.L7F0CEA60: +/* 103590 7F0CEA60 8C6E0000 */ lw $t6, ($v1) +/* 103594 7F0CEA64 24630004 */ addiu $v1, $v1, 4 +/* 103598 7F0CEA68 0065082B */ sltu $at, $v1, $a1 +/* 10359C 7F0CEA6C 008E2023 */ subu $a0, $a0, $t6 +/* 1035A0 7F0CEA70 00047840 */ sll $t7, $a0, 1 +/* 1035A4 7F0CEA74 1420FFFA */ bnez $at, .L7F0CEA60 +/* 1035A8 7F0CEA78 01E02025 */ move $a0, $t7 +.L7F0CEA7C: +/* 1035AC 7F0CEA7C 8C430000 */ lw $v1, ($v0) +/* 1035B0 7F0CEA80 27FFFFFF */ addiu $ra, $ra, -1 +/* 1035B4 7F0CEA84 00003825 */ move $a3, $zero +/* 1035B8 7F0CEA88 00832023 */ subu $a0, $a0, $v1 +/* 1035BC 7F0CEA8C 0064C021 */ addu $t8, $v1, $a0 +/* 1035C0 7F0CEA90 AC580000 */ sw $t8, ($v0) +/* 1035C4 7F0CEA94 AFA00080 */ sw $zero, 0x80($sp) +/* 1035C8 7F0CEA98 27BE05B4 */ addiu $fp, $sp, 0x5b4 +/* 1035CC 7F0CEA9C 27A60084 */ addiu $a2, $sp, 0x84 +/* 1035D0 7F0CEAA0 13E00022 */ beqz $ra, .L7F0CEB2C +/* 1035D4 7F0CEAA4 2442FFFC */ addiu $v0, $v0, -4 +/* 1035D8 7F0CEAA8 33E80003 */ andi $t0, $ra, 3 +/* 1035DC 7F0CEAAC 00084023 */ negu $t0, $t0 +/* 1035E0 7F0CEAB0 1100000D */ beqz $t0, .L7F0CEAE8 +/* 1035E4 7F0CEAB4 011F1821 */ addu $v1, $t0, $ra +/* 1035E8 7F0CEAB8 0003C880 */ sll $t9, $v1, 2 +/* 1035EC 7F0CEABC 27AE05B0 */ addiu $t6, $sp, 0x5b0 +/* 1035F0 7F0CEAC0 032E2821 */ addu $a1, $t9, $t6 +.L7F0CEAC4: +/* 1035F4 7F0CEAC4 8FCF0000 */ lw $t7, ($fp) +/* 1035F8 7F0CEAC8 2442FFFC */ addiu $v0, $v0, -4 +/* 1035FC 7F0CEACC 24C60004 */ addiu $a2, $a2, 4 +/* 103600 7F0CEAD0 00EF3821 */ addu $a3, $a3, $t7 +/* 103604 7F0CEAD4 ACC7FFFC */ sw $a3, -4($a2) +/* 103608 7F0CEAD8 14A2FFFA */ bne $a1, $v0, .L7F0CEAC4 +/* 10360C 7F0CEADC 27DE0004 */ addiu $fp, $fp, 4 +/* 103610 7F0CEAE0 27B805B0 */ addiu $t8, $sp, 0x5b0 +/* 103614 7F0CEAE4 10580011 */ beq $v0, $t8, .L7F0CEB2C +.L7F0CEAE8: +/* 103618 7F0CEAE8 27A305B0 */ addiu $v1, $sp, 0x5b0 +.L7F0CEAEC: +/* 10361C 7F0CEAEC 8FD90000 */ lw $t9, ($fp) +/* 103620 7F0CEAF0 2442FFF0 */ addiu $v0, $v0, -0x10 +/* 103624 7F0CEAF4 24C60010 */ addiu $a2, $a2, 0x10 +/* 103628 7F0CEAF8 00F93821 */ addu $a3, $a3, $t9 +/* 10362C 7F0CEAFC ACC7FFF0 */ sw $a3, -0x10($a2) +/* 103630 7F0CEB00 8FCE0004 */ lw $t6, 4($fp) +/* 103634 7F0CEB04 27DE0010 */ addiu $fp, $fp, 0x10 +/* 103638 7F0CEB08 00EE3821 */ addu $a3, $a3, $t6 +/* 10363C 7F0CEB0C ACC7FFF4 */ sw $a3, -0xc($a2) +/* 103640 7F0CEB10 8FCFFFF8 */ lw $t7, -8($fp) +/* 103644 7F0CEB14 00EF3821 */ addu $a3, $a3, $t7 +/* 103648 7F0CEB18 ACC7FFF8 */ sw $a3, -8($a2) +/* 10364C 7F0CEB1C 8FD8FFFC */ lw $t8, -4($fp) +/* 103650 7F0CEB20 00F83821 */ addu $a3, $a3, $t8 +/* 103654 7F0CEB24 1443FFF1 */ bne $v0, $v1, .L7F0CEAEC +/* 103658 7F0CEB28 ACC7FFFC */ sw $a3, -4($a2) +.L7F0CEB2C: +/* 10365C 7F0CEB2C 0240F025 */ move $fp, $s2 +/* 103660 7F0CEB30 0000F825 */ move $ra, $zero +/* 103664 7F0CEB34 27A6007C */ addiu $a2, $sp, 0x7c +/* 103668 7F0CEB38 27A500C4 */ addiu $a1, $sp, 0xc4 +/* 10366C 7F0CEB3C 8FC70000 */ lw $a3, ($fp) +.L7F0CEB40: +/* 103670 7F0CEB40 27DE0004 */ addiu $fp, $fp, 4 +/* 103674 7F0CEB44 10E00008 */ beqz $a3, .L7F0CEB68 +/* 103678 7F0CEB48 0007C880 */ sll $t9, $a3, 2 +/* 10367C 7F0CEB4C 00D91021 */ addu $v0, $a2, $t9 +/* 103680 7F0CEB50 8C430000 */ lw $v1, ($v0) +/* 103684 7F0CEB54 00037080 */ sll $t6, $v1, 2 +/* 103688 7F0CEB58 00AE7821 */ addu $t7, $a1, $t6 +/* 10368C 7F0CEB5C ADFF0000 */ sw $ra, ($t7) +/* 103690 7F0CEB60 24780001 */ addiu $t8, $v1, 1 +/* 103694 7F0CEB64 AC580000 */ sw $t8, ($v0) +.L7F0CEB68: +/* 103698 7F0CEB68 8FB905FC */ lw $t9, 0x5fc($sp) +/* 10369C 7F0CEB6C 27FF0001 */ addiu $ra, $ra, 1 +/* 1036A0 7F0CEB70 03F9082B */ sltu $at, $ra, $t9 +/* 1036A4 7F0CEB74 5420FFF2 */ bnezl $at, .L7F0CEB40 +/* 1036A8 7F0CEB78 8FC70000 */ lw $a3, ($fp) +/* 1036AC 7F0CEB7C 8FAE05A8 */ lw $t6, 0x5a8($sp) +/* 1036B0 7F0CEB80 AFA40074 */ sw $a0, 0x74($sp) +/* 1036B4 7F0CEB84 0000F825 */ move $ra, $zero +/* 1036B8 7F0CEB88 01D4082A */ slt $at, $t6, $s4 +/* 1036BC 7F0CEB8C AFA0007C */ sw $zero, 0x7c($sp) +/* 1036C0 7F0CEB90 00A0F025 */ move $fp, $a1 +/* 1036C4 7F0CEB94 240CFFFF */ li $t4, -1 +/* 1036C8 7F0CEB98 00105023 */ negu $t2, $s0 +/* 1036CC 7F0CEB9C AFA00544 */ sw $zero, 0x544($sp) +/* 1036D0 7F0CEBA0 00003025 */ move $a2, $zero +/* 1036D4 7F0CEBA4 142000BF */ bnez $at, .L7F0CEEA4 +/* 1036D8 7F0CEBA8 00004025 */ move $t0, $zero +/* 1036DC 7F0CEBAC 00147880 */ sll $t7, $s4, 2 +/* 1036E0 7F0CEBB0 27B805B0 */ addiu $t8, $sp, 0x5b0 +/* 1036E4 7F0CEBB4 01F8C821 */ addu $t9, $t7, $t8 +/* 1036E8 7F0CEBB8 3C178009 */ lui $s7, %hi(dword_CODE_bss_8008D360) +/* 1036EC 7F0CEBBC 3C128009 */ lui $s2, %hi(dword_CODE_bss_8008D36C) +/* 1036F0 7F0CEBC0 2652D36C */ addiu $s2, %lo(dword_CODE_bss_8008D36C) # addiu $s2, $s2, -0x2c94 +/* 1036F4 7F0CEBC4 26F7D360 */ addiu $s7, %lo(dword_CODE_bss_8008D360) # addiu $s7, $s7, -0x2ca0 +/* 1036F8 7F0CEBC8 AFB9005C */ sw $t9, 0x5c($sp) +/* 1036FC 7F0CEBCC 8FB5060C */ lw $s5, 0x60c($sp) +/* 103700 7F0CEBD0 27B30584 */ addiu $s3, $sp, 0x584 +.L7F0CEBD4: +/* 103704 7F0CEBD4 8FAE005C */ lw $t6, 0x5c($sp) +/* 103708 7F0CEBD8 8FB805FC */ lw $t8, 0x5fc($sp) +/* 10370C 7F0CEBDC 000C6880 */ sll $t5, $t4, 2 +/* 103710 7F0CEBE0 8DD60000 */ lw $s6, ($t6) +/* 103714 7F0CEBE4 27AF007C */ addiu $t7, $sp, 0x7c +/* 103718 7F0CEBE8 0018C880 */ sll $t9, $t8, 2 +/* 10371C 7F0CEBEC 02C02825 */ move $a1, $s6 +/* 103720 7F0CEBF0 12C000A4 */ beqz $s6, .L7F0CEE84 +/* 103724 7F0CEBF4 26D6FFFF */ addiu $s6, $s6, -1 +/* 103728 7F0CEBF8 01AF5821 */ addu $t3, $t5, $t7 +/* 10372C 7F0CEBFC 27AE00C4 */ addiu $t6, $sp, 0xc4 +/* 103730 7F0CEC00 032E7821 */ addu $t7, $t9, $t6 +/* 103734 7F0CEC04 24190001 */ li $t9, 1 +/* 103738 7F0CEC08 2698001F */ addiu $t8, $s4, 0x1f +/* 10373C 7F0CEC0C 03197004 */ sllv $t6, $t9, $t8 +/* 103740 7F0CEC10 AFAE0040 */ sw $t6, 0x40($sp) +/* 103744 7F0CEC14 AFAF0044 */ sw $t7, 0x44($sp) +.L7F0CEC18: +/* 103748 7F0CEC18 01501821 */ addu $v1, $t2, $s0 +/* 10374C 7F0CEC1C 0074082A */ slt $at, $v1, $s4 +/* 103750 7F0CEC20 10200047 */ beqz $at, .L7F0CED40 +/* 103754 7F0CEC24 26D10001 */ addiu $s1, $s6, 1 +/* 103758 7F0CEC28 27AF0544 */ addiu $t7, $sp, 0x544 +/* 10375C 7F0CEC2C 01AF4821 */ addu $t1, $t5, $t7 +/* 103760 7F0CEC30 8FB905A8 */ lw $t9, 0x5a8($sp) +.L7F0CEC34: +/* 103764 7F0CEC34 258C0001 */ addiu $t4, $t4, 1 +/* 103768 7F0CEC38 25AD0004 */ addiu $t5, $t5, 4 +/* 10376C 7F0CEC3C 03234023 */ subu $t0, $t9, $v1 +/* 103770 7F0CEC40 0208082B */ sltu $at, $s0, $t0 +/* 103774 7F0CEC44 25290004 */ addiu $t1, $t1, 4 +/* 103778 7F0CEC48 256B0004 */ addiu $t3, $t3, 4 +/* 10377C 7F0CEC4C 10200002 */ beqz $at, .L7F0CEC58 +/* 103780 7F0CEC50 00605025 */ move $t2, $v1 +/* 103784 7F0CEC54 02004025 */ move $t0, $s0 +.L7F0CEC58: +/* 103788 7F0CEC58 028A1023 */ subu $v0, $s4, $t2 +/* 10378C 7F0CEC5C 24180001 */ li $t8, 1 +/* 103790 7F0CEC60 00582004 */ sllv $a0, $t8, $v0 +/* 103794 7F0CEC64 0224082B */ sltu $at, $s1, $a0 +/* 103798 7F0CEC68 10200013 */ beqz $at, .L7F0CECB8 +/* 10379C 7F0CEC6C 00403825 */ move $a3, $v0 +/* 1037A0 7F0CEC70 24470001 */ addiu $a3, $v0, 1 +/* 1037A4 7F0CEC74 00961823 */ subu $v1, $a0, $s6 +/* 1037A8 7F0CEC78 00147080 */ sll $t6, $s4, 2 +/* 1037AC 7F0CEC7C 27AF05B0 */ addiu $t7, $sp, 0x5b0 +/* 1037B0 7F0CEC80 00E8082B */ sltu $at, $a3, $t0 +/* 1037B4 7F0CEC84 2463FFFF */ addiu $v1, $v1, -1 +/* 1037B8 7F0CEC88 1020000B */ beqz $at, .L7F0CECB8 +/* 1037BC 7F0CEC8C 01CF3021 */ addu $a2, $t6, $t7 +.L7F0CEC90: +/* 1037C0 7F0CEC90 8CC40004 */ lw $a0, 4($a2) +/* 1037C4 7F0CEC94 00031040 */ sll $v0, $v1, 1 +/* 1037C8 7F0CEC98 24C60004 */ addiu $a2, $a2, 4 +/* 1037CC 7F0CEC9C 0082082B */ sltu $at, $a0, $v0 +/* 1037D0 7F0CECA0 50200006 */ beql $at, $zero, .L7F0CECBC +/* 1037D4 7F0CECA4 8E430000 */ lw $v1, ($s2) +/* 1037D8 7F0CECA8 24E70001 */ addiu $a3, $a3, 1 +/* 1037DC 7F0CECAC 00E8082B */ sltu $at, $a3, $t0 +/* 1037E0 7F0CECB0 1420FFF7 */ bnez $at, .L7F0CEC90 +/* 1037E4 7F0CECB4 00441823 */ subu $v1, $v0, $a0 +.L7F0CECB8: +/* 1037E8 7F0CECB8 8E430000 */ lw $v1, ($s2) +.L7F0CECBC: +/* 1037EC 7F0CECBC 8EEE0000 */ lw $t6, ($s7) +/* 1037F0 7F0CECC0 24190001 */ li $t9, 1 +/* 1037F4 7F0CECC4 00F94004 */ sllv $t0, $t9, $a3 +/* 1037F8 7F0CECC8 0003C0C0 */ sll $t8, $v1, 3 +/* 1037FC 7F0CECCC 00687821 */ addu $t7, $v1, $t0 +/* 103800 7F0CECD0 25F90001 */ addiu $t9, $t7, 1 +/* 103804 7F0CECD4 030E3021 */ addu $a2, $t8, $t6 +/* 103808 7F0CECD8 AE590000 */ sw $t9, ($s2) +/* 10380C 7F0CECDC 24C40008 */ addiu $a0, $a2, 8 +/* 103810 7F0CECE0 AEA40000 */ sw $a0, ($s5) +/* 103814 7F0CECE4 ACC00004 */ sw $zero, 4($a2) +/* 103818 7F0CECE8 24D50004 */ addiu $s5, $a2, 4 +/* 10381C 7F0CECEC 00803025 */ move $a2, $a0 +/* 103820 7F0CECF0 1180000F */ beqz $t4, .L7F0CED30 +/* 103824 7F0CECF4 AD240000 */ sw $a0, ($t1) +/* 103828 7F0CECF8 AD7F0000 */ sw $ra, ($t3) +/* 10382C 7F0CECFC 24F80010 */ addiu $t8, $a3, 0x10 +/* 103830 7F0CED00 A3B00585 */ sb $s0, 0x585($sp) +/* 103834 7F0CED04 A3B80584 */ sb $t8, 0x584($sp) +/* 103838 7F0CED08 AFA40588 */ sw $a0, 0x588($sp) +/* 10383C 7F0CED0C 8D2EFFFC */ lw $t6, -4($t1) +/* 103840 7F0CED10 01507823 */ subu $t7, $t2, $s0 +/* 103844 7F0CED14 8E610000 */ lw $at, ($s3) +/* 103848 7F0CED18 01FFC806 */ srlv $t9, $ra, $t7 +/* 10384C 7F0CED1C 0019C0C0 */ sll $t8, $t9, 3 +/* 103850 7F0CED20 01D87821 */ addu $t7, $t6, $t8 +/* 103854 7F0CED24 ADE10000 */ sw $at, ($t7) +/* 103858 7F0CED28 8E780004 */ lw $t8, 4($s3) +/* 10385C 7F0CED2C ADF80004 */ sw $t8, 4($t7) +.L7F0CED30: +/* 103860 7F0CED30 01501821 */ addu $v1, $t2, $s0 +/* 103864 7F0CED34 0074082A */ slt $at, $v1, $s4 +/* 103868 7F0CED38 5420FFBE */ bnezl $at, .L7F0CEC34 +/* 10386C 7F0CED3C 8FB905A8 */ lw $t9, 0x5a8($sp) +.L7F0CED40: +/* 103870 7F0CED40 8FB90044 */ lw $t9, 0x44($sp) +/* 103874 7F0CED44 240E0001 */ li $t6, 1 +/* 103878 7F0CED48 028A1823 */ subu $v1, $s4, $t2 +/* 10387C 7F0CED4C 014E2804 */ sllv $a1, $t6, $t2 +/* 103880 7F0CED50 03D9082B */ sltu $at, $fp, $t9 +/* 103884 7F0CED54 A3A30585 */ sb $v1, 0x585($sp) +/* 103888 7F0CED58 14200004 */ bnez $at, .L7F0CED6C +/* 10388C 7F0CED5C 24A5FFFF */ addiu $a1, $a1, -1 +/* 103890 7F0CED60 240F0063 */ li $t7, 99 +/* 103894 7F0CED64 10000020 */ b .L7F0CEDE8 +/* 103898 7F0CED68 A3AF0584 */ sb $t7, 0x584($sp) +.L7F0CED6C: +/* 10389C 7F0CED6C 8FC20000 */ lw $v0, ($fp) +/* 1038A0 7F0CED70 8FB80600 */ lw $t8, 0x600($sp) +/* 1038A4 7F0CED74 8FA40600 */ lw $a0, 0x600($sp) +/* 1038A8 7F0CED78 8FAE0608 */ lw $t6, 0x608($sp) +/* 1038AC 7F0CED7C 0058082B */ sltu $at, $v0, $t8 +/* 1038B0 7F0CED80 1020000B */ beqz $at, .L7F0CEDB0 +/* 1038B4 7F0CED84 2C410100 */ sltiu $at, $v0, 0x100 +/* 1038B8 7F0CED88 10200004 */ beqz $at, .L7F0CED9C +/* 1038BC 7F0CED8C 2419000F */ li $t9, 15 +/* 1038C0 7F0CED90 240E0010 */ li $t6, 16 +/* 1038C4 7F0CED94 10000002 */ b .L7F0CEDA0 +/* 1038C8 7F0CED98 A3AE0584 */ sb $t6, 0x584($sp) +.L7F0CED9C: +/* 1038CC 7F0CED9C A3B90584 */ sb $t9, 0x584($sp) +.L7F0CEDA0: +/* 1038D0 7F0CEDA0 8FCF0000 */ lw $t7, ($fp) +/* 1038D4 7F0CEDA4 27DE0004 */ addiu $fp, $fp, 4 +/* 1038D8 7F0CEDA8 1000000F */ b .L7F0CEDE8 +/* 1038DC 7F0CEDAC A7AF0588 */ sh $t7, 0x588($sp) +.L7F0CEDB0: +/* 1038E0 7F0CEDB0 0044C023 */ subu $t8, $v0, $a0 +/* 1038E4 7F0CEDB4 030EC821 */ addu $t9, $t8, $t6 +/* 1038E8 7F0CEDB8 932F0000 */ lbu $t7, ($t9) +/* 1038EC 7F0CEDBC 8FB80604 */ lw $t8, 0x604($sp) +/* 1038F0 7F0CEDC0 27DE0004 */ addiu $fp, $fp, 4 +/* 1038F4 7F0CEDC4 A3AF0584 */ sb $t7, 0x584($sp) +/* 1038F8 7F0CEDC8 8FCEFFFC */ lw $t6, -4($fp) +/* 1038FC 7F0CEDCC 000EC840 */ sll $t9, $t6, 1 +/* 103900 7F0CEDD0 00047040 */ sll $t6, $a0, 1 +/* 103904 7F0CEDD4 03197821 */ addu $t7, $t8, $t9 +/* 103908 7F0CEDD8 000EC023 */ negu $t8, $t6 +/* 10390C 7F0CEDDC 01F8C821 */ addu $t9, $t7, $t8 +/* 103910 7F0CEDE0 972E0000 */ lhu $t6, ($t9) +/* 103914 7F0CEDE4 A7AE0588 */ sh $t6, 0x588($sp) +.L7F0CEDE8: +/* 103918 7F0CEDE8 015F3806 */ srlv $a3, $ra, $t2 +/* 10391C 7F0CEDEC 00E8082B */ sltu $at, $a3, $t0 +/* 103920 7F0CEDF0 1020000B */ beqz $at, .L7F0CEE20 +/* 103924 7F0CEDF4 240F0001 */ li $t7, 1 +/* 103928 7F0CEDF8 006F1004 */ sllv $v0, $t7, $v1 +.L7F0CEDFC: +/* 10392C 7F0CEDFC 8E610000 */ lw $at, ($s3) +/* 103930 7F0CEE00 0007C0C0 */ sll $t8, $a3, 3 +/* 103934 7F0CEE04 00D8C821 */ addu $t9, $a2, $t8 +/* 103938 7F0CEE08 AF210000 */ sw $at, ($t9) +/* 10393C 7F0CEE0C 8E6F0004 */ lw $t7, 4($s3) +/* 103940 7F0CEE10 00E23821 */ addu $a3, $a3, $v0 +/* 103944 7F0CEE14 00E8082B */ sltu $at, $a3, $t0 +/* 103948 7F0CEE18 1420FFF8 */ bnez $at, .L7F0CEDFC +/* 10394C 7F0CEE1C AF2F0004 */ sw $t7, 4($t9) +.L7F0CEE20: +/* 103950 7F0CEE20 8FA70040 */ lw $a3, 0x40($sp) +/* 103954 7F0CEE24 8D620000 */ lw $v0, ($t3) +/* 103958 7F0CEE28 03E7C024 */ and $t8, $ra, $a3 +/* 10395C 7F0CEE2C 13000005 */ beqz $t8, .L7F0CEE44 +.L7F0CEE30: +/* 103960 7F0CEE30 00077042 */ srl $t6, $a3, 1 +/* 103964 7F0CEE34 03E7F826 */ xor $ra, $ra, $a3 +/* 103968 7F0CEE38 03EEC824 */ and $t9, $ra, $t6 +/* 10396C 7F0CEE3C 1720FFFC */ bnez $t9, .L7F0CEE30 +/* 103970 7F0CEE40 01C03825 */ move $a3, $t6 +.L7F0CEE44: +/* 103974 7F0CEE44 03E7F826 */ xor $ra, $ra, $a3 +/* 103978 7F0CEE48 03E57824 */ and $t7, $ra, $a1 +/* 10397C 7F0CEE4C 11E2000B */ beq $t7, $v0, .L7F0CEE7C +/* 103980 7F0CEE50 02C02825 */ move $a1, $s6 +.L7F0CEE54: +/* 103984 7F0CEE54 01505023 */ subu $t2, $t2, $s0 +/* 103988 7F0CEE58 24180001 */ li $t8, 1 +/* 10398C 7F0CEE5C 01587004 */ sllv $t6, $t8, $t2 +/* 103990 7F0CEE60 8D78FFFC */ lw $t8, -4($t3) +/* 103994 7F0CEE64 25D9FFFF */ addiu $t9, $t6, -1 +/* 103998 7F0CEE68 03F97824 */ and $t7, $ra, $t9 +/* 10399C 7F0CEE6C 258CFFFF */ addiu $t4, $t4, -1 +/* 1039A0 7F0CEE70 25ADFFFC */ addiu $t5, $t5, -4 +/* 1039A4 7F0CEE74 15F8FFF7 */ bne $t7, $t8, .L7F0CEE54 +/* 1039A8 7F0CEE78 256BFFFC */ addiu $t3, $t3, -4 +.L7F0CEE7C: +/* 1039AC 7F0CEE7C 16C0FF66 */ bnez $s6, .L7F0CEC18 +/* 1039B0 7F0CEE80 26D6FFFF */ addiu $s6, $s6, -1 +.L7F0CEE84: +/* 1039B4 7F0CEE84 8FAE005C */ lw $t6, 0x5c($sp) +/* 1039B8 7F0CEE88 8FAF05A8 */ lw $t7, 0x5a8($sp) +/* 1039BC 7F0CEE8C 26940001 */ addiu $s4, $s4, 1 +/* 1039C0 7F0CEE90 25D90004 */ addiu $t9, $t6, 4 +/* 1039C4 7F0CEE94 01F4082A */ slt $at, $t7, $s4 +/* 1039C8 7F0CEE98 1020FF4E */ beqz $at, .L7F0CEBD4 +/* 1039CC 7F0CEE9C AFB9005C */ sw $t9, 0x5c($sp) +/* 1039D0 7F0CEEA0 AFB5060C */ sw $s5, 0x60c($sp) +.L7F0CEEA4: +/* 1039D4 7F0CEEA4 8FA20074 */ lw $v0, 0x74($sp) +/* 1039D8 7F0CEEA8 0002C02B */ sltu $t8, $zero, $v0 +/* 1039DC 7F0CEEAC 13000004 */ beqz $t8, .L7F0CEEC0 +/* 1039E0 7F0CEEB0 03001025 */ move $v0, $t8 +/* 1039E4 7F0CEEB4 8FA205A8 */ lw $v0, 0x5a8($sp) +/* 1039E8 7F0CEEB8 384E0001 */ xori $t6, $v0, 1 +/* 1039EC 7F0CEEBC 000E102B */ sltu $v0, $zero, $t6 +.L7F0CEEC0: +/* 1039F0 7F0CEEC0 8FBF003C */ lw $ra, 0x3c($sp) +/* 1039F4 7F0CEEC4 8FB00018 */ lw $s0, 0x18($sp) +/* 1039F8 7F0CEEC8 8FB1001C */ lw $s1, 0x1c($sp) +/* 1039FC 7F0CEECC 8FB20020 */ lw $s2, 0x20($sp) +/* 103A00 7F0CEED0 8FB30024 */ lw $s3, 0x24($sp) +/* 103A04 7F0CEED4 8FB40028 */ lw $s4, 0x28($sp) +/* 103A08 7F0CEED8 8FB5002C */ lw $s5, 0x2c($sp) +/* 103A0C 7F0CEEDC 8FB60030 */ lw $s6, 0x30($sp) +/* 103A10 7F0CEEE0 8FB70034 */ lw $s7, 0x34($sp) +/* 103A14 7F0CEEE4 8FBE0038 */ lw $fp, 0x38($sp) +/* 103A18 7F0CEEE8 03E00008 */ jr $ra +/* 103A1C 7F0CEEEC 27BD05F8 */ addiu $sp, $sp, 0x5f8 +) +#endif + + + + + +#ifdef NONMATCHING +void sub_GAME_7F0CEEF0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sub_GAME_7F0CEEF0 +/* 103A20 7F0CEEF0 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 103A24 7F0CEEF4 3C098005 */ lui $t1, %hi(D_8004E9B0) +/* 103A28 7F0CEEF8 2529E9B0 */ addiu $t1, %lo(D_8004E9B0) # addiu $t1, $t1, -0x1650 +/* 103A2C 7F0CEEFC AFBE0038 */ sw $fp, 0x38($sp) +/* 103A30 7F0CEF00 AFB70034 */ sw $s7, 0x34($sp) +/* 103A34 7F0CEF04 AFB5002C */ sw $s5, 0x2c($sp) +/* 103A38 7F0CEF08 AFB40028 */ sw $s4, 0x28($sp) +/* 103A3C 7F0CEF0C AFB30024 */ sw $s3, 0x24($sp) +/* 103A40 7F0CEF10 AFB1001C */ sw $s1, 0x1c($sp) +/* 103A44 7F0CEF14 00067840 */ sll $t7, $a2, 1 +/* 103A48 7F0CEF18 0007C840 */ sll $t9, $a3, 1 +/* 103A4C 7F0CEF1C AFBF003C */ sw $ra, 0x3c($sp) +/* 103A50 7F0CEF20 AFA7007C */ sw $a3, 0x7c($sp) +/* 103A54 7F0CEF24 3C148009 */ lui $s4, %hi(dword_CODE_bss_8008D364) +/* 103A58 7F0CEF28 3C118009 */ lui $s1, %hi(dword_CODE_bss_8008D368) +/* 103A5C 7F0CEF2C 3C158009 */ lui $s5, %hi(dword_CODE_bss_8008D35C) +/* 103A60 7F0CEF30 012F6021 */ addu $t4, $t1, $t7 +/* 103A64 7F0CEF34 01396821 */ addu $t5, $t1, $t9 +/* 103A68 7F0CEF38 3C138009 */ lui $s3, %hi(dword_CODE_bss_8008D358) +/* 103A6C 7F0CEF3C 3C178009 */ lui $s7, %hi(dword_CODE_bss_8008D354) +/* 103A70 7F0CEF40 3C1E8009 */ lui $fp, %hi(dword_CODE_bss_8008D350) +/* 103A74 7F0CEF44 AFB60030 */ sw $s6, 0x30($sp) +/* 103A78 7F0CEF48 AFB20020 */ sw $s2, 0x20($sp) +/* 103A7C 7F0CEF4C AFB00018 */ sw $s0, 0x18($sp) +/* 103A80 7F0CEF50 AFA40070 */ sw $a0, 0x70($sp) +/* 103A84 7F0CEF54 AFA50074 */ sw $a1, 0x74($sp) +/* 103A88 7F0CEF58 AFA60078 */ sw $a2, 0x78($sp) +/* 103A8C 7F0CEF5C 8E94D364 */ lw $s4, %lo(dword_CODE_bss_8008D364)($s4) +/* 103A90 7F0CEF60 8E31D368 */ lw $s1, %lo(dword_CODE_bss_8008D368)($s1) +/* 103A94 7F0CEF64 8EB5D35C */ lw $s5, %lo(dword_CODE_bss_8008D35C)($s5) +/* 103A98 7F0CEF68 958A0000 */ lhu $t2, ($t4) +/* 103A9C 7F0CEF6C 95AB0000 */ lhu $t3, ($t5) +/* 103AA0 7F0CEF70 27DED350 */ addiu $fp, %lo(dword_CODE_bss_8008D350) # addiu $fp, $fp, -0x2cb0 +/* 103AA4 7F0CEF74 26F7D354 */ addiu $s7, %lo(dword_CODE_bss_8008D354) # addiu $s7, $s7, -0x2cac +/* 103AA8 7F0CEF78 2673D358 */ addiu $s3, %lo(dword_CODE_bss_8008D358) # addiu $s3, $s3, -0x2ca8 +/* 103AAC 7F0CEF7C 34078000 */ li $a3, 32768 +/* 103AB0 7F0CEF80 00C0F825 */ move $ra, $a2 +.L7F0CEF84: +/* 103AB4 7F0CEF84 023F082B */ sltu $at, $s1, $ra +.L7F0CEF88: +/* 103AB8 7F0CEF88 5020000D */ beql $at, $zero, .L7F0CEFC0 +/* 103ABC 7F0CEF8C 8FB90070 */ lw $t9, 0x70($sp) +/* 103AC0 7F0CEF90 8FC30000 */ lw $v1, ($fp) +.L7F0CEF94: +/* 103AC4 7F0CEF94 8E620000 */ lw $v0, ($s3) +/* 103AC8 7F0CEF98 00627821 */ addu $t7, $v1, $v0 +/* 103ACC 7F0CEF9C 91F80000 */ lbu $t8, ($t7) +/* 103AD0 7F0CEFA0 244E0001 */ addiu $t6, $v0, 1 +/* 103AD4 7F0CEFA4 AE6E0000 */ sw $t6, ($s3) +/* 103AD8 7F0CEFA8 0238C804 */ sllv $t9, $t8, $s1 +/* 103ADC 7F0CEFAC 26310008 */ addiu $s1, $s1, 8 +/* 103AE0 7F0CEFB0 023F082B */ sltu $at, $s1, $ra +/* 103AE4 7F0CEFB4 1420FFF7 */ bnez $at, .L7F0CEF94 +/* 103AE8 7F0CEFB8 0299A025 */ or $s4, $s4, $t9 +/* 103AEC 7F0CEFBC 8FB90070 */ lw $t9, 0x70($sp) +.L7F0CEFC0: +/* 103AF0 7F0CEFC0 028A7824 */ and $t7, $s4, $t2 +/* 103AF4 7F0CEFC4 000FC0C0 */ sll $t8, $t7, 3 +/* 103AF8 7F0CEFC8 03193021 */ addu $a2, $t8, $t9 +/* 103AFC 7F0CEFCC 90D20000 */ lbu $s2, ($a2) +/* 103B00 7F0CEFD0 2E410011 */ sltiu $at, $s2, 0x11 +/* 103B04 7F0CEFD4 5420001E */ bnezl $at, .L7F0CF050 +/* 103B08 7F0CEFD8 90C20001 */ lbu $v0, 1($a2) +/* 103B0C 7F0CEFDC 90C20001 */ lbu $v0, 1($a2) +.L7F0CEFE0: +/* 103B10 7F0CEFE0 2652FFF0 */ addiu $s2, $s2, -0x10 +/* 103B14 7F0CEFE4 02228823 */ subu $s1, $s1, $v0 +/* 103B18 7F0CEFE8 0232082B */ sltu $at, $s1, $s2 +/* 103B1C 7F0CEFEC 1020000C */ beqz $at, .L7F0CF020 +/* 103B20 7F0CEFF0 0054A006 */ srlv $s4, $s4, $v0 +/* 103B24 7F0CEFF4 8FC30000 */ lw $v1, ($fp) +.L7F0CEFF8: +/* 103B28 7F0CEFF8 8E620000 */ lw $v0, ($s3) +/* 103B2C 7F0CEFFC 00627021 */ addu $t6, $v1, $v0 +/* 103B30 7F0CF000 91CF0000 */ lbu $t7, ($t6) +/* 103B34 7F0CF004 24590001 */ addiu $t9, $v0, 1 +/* 103B38 7F0CF008 AE790000 */ sw $t9, ($s3) +/* 103B3C 7F0CF00C 022FC004 */ sllv $t8, $t7, $s1 +/* 103B40 7F0CF010 26310008 */ addiu $s1, $s1, 8 +/* 103B44 7F0CF014 0232082B */ sltu $at, $s1, $s2 +/* 103B48 7F0CF018 1420FFF7 */ bnez $at, .L7F0CEFF8 +/* 103B4C 7F0CF01C 0298A025 */ or $s4, $s4, $t8 +.L7F0CF020: +/* 103B50 7F0CF020 00127040 */ sll $t6, $s2, 1 +/* 103B54 7F0CF024 012E7821 */ addu $t7, $t1, $t6 +/* 103B58 7F0CF028 95F80000 */ lhu $t8, ($t7) +/* 103B5C 7F0CF02C 8CCF0004 */ lw $t7, 4($a2) +/* 103B60 7F0CF030 0314C824 */ and $t9, $t8, $s4 +/* 103B64 7F0CF034 001970C0 */ sll $t6, $t9, 3 +/* 103B68 7F0CF038 01CF3021 */ addu $a2, $t6, $t7 +/* 103B6C 7F0CF03C 90D20000 */ lbu $s2, ($a2) +/* 103B70 7F0CF040 2E410011 */ sltiu $at, $s2, 0x11 +/* 103B74 7F0CF044 5020FFE6 */ beql $at, $zero, .L7F0CEFE0 +/* 103B78 7F0CF048 90C20001 */ lbu $v0, 1($a2) +/* 103B7C 7F0CF04C 90C20001 */ lbu $v0, 1($a2) +.L7F0CF050: +/* 103B80 7F0CF050 24010010 */ li $at, 16 +/* 103B84 7F0CF054 0054A006 */ srlv $s4, $s4, $v0 +/* 103B88 7F0CF058 16410013 */ bne $s2, $at, .L7F0CF0A8 +/* 103B8C 7F0CF05C 02228823 */ subu $s1, $s1, $v0 +/* 103B90 7F0CF060 8EF80000 */ lw $t8, ($s7) +/* 103B94 7F0CF064 8FD90000 */ lw $t9, ($fp) +/* 103B98 7F0CF068 8E6E0000 */ lw $t6, ($s3) +/* 103B9C 7F0CF06C 03152821 */ addu $a1, $t8, $s5 +/* 103BA0 7F0CF070 00A01025 */ move $v0, $a1 +/* 103BA4 7F0CF074 032E2021 */ addu $a0, $t9, $t6 +/* 103BA8 7F0CF078 00A4082B */ sltu $at, $a1, $a0 +/* 103BAC 7F0CF07C 14200006 */ bnez $at, .L7F0CF098 +/* 103BB0 7F0CF080 00447823 */ subu $t7, $v0, $a0 +/* 103BB4 7F0CF084 01E7082B */ sltu $at, $t7, $a3 +/* 103BB8 7F0CF088 50200004 */ beql $at, $zero, .L7F0CF09C +/* 103BBC 7F0CF08C 94D80004 */ lhu $t8, 4($a2) +.L7F0CF090: +/* 103BC0 7F0CF090 1000FFFF */ b .L7F0CF090 +/* 103BC4 7F0CF094 00000000 */ nop +.L7F0CF098: +/* 103BC8 7F0CF098 94D80004 */ lhu $t8, 4($a2) +.L7F0CF09C: +/* 103BCC 7F0CF09C 26B50001 */ addiu $s5, $s5, 1 +/* 103BD0 7F0CF0A0 1000FFB8 */ b .L7F0CEF84 +/* 103BD4 7F0CF0A4 A0B80000 */ sb $t8, ($a1) +.L7F0CF0A8: +/* 103BD8 7F0CF0A8 2401000F */ li $at, 15 +/* 103BDC 7F0CF0AC 124100A4 */ beq $s2, $at, .L7F0CF340 +/* 103BE0 7F0CF0B0 0232082B */ sltu $at, $s1, $s2 +/* 103BE4 7F0CF0B4 5020000D */ beql $at, $zero, .L7F0CF0EC +/* 103BE8 7F0CF0B8 0012C840 */ sll $t9, $s2, 1 +/* 103BEC 7F0CF0BC 8FC30000 */ lw $v1, ($fp) +.L7F0CF0C0: +/* 103BF0 7F0CF0C0 8E620000 */ lw $v0, ($s3) +/* 103BF4 7F0CF0C4 0062C821 */ addu $t9, $v1, $v0 +/* 103BF8 7F0CF0C8 932E0000 */ lbu $t6, ($t9) +/* 103BFC 7F0CF0CC 24580001 */ addiu $t8, $v0, 1 +/* 103C00 7F0CF0D0 AE780000 */ sw $t8, ($s3) +/* 103C04 7F0CF0D4 022E7804 */ sllv $t7, $t6, $s1 +/* 103C08 7F0CF0D8 26310008 */ addiu $s1, $s1, 8 +/* 103C0C 7F0CF0DC 0232082B */ sltu $at, $s1, $s2 +/* 103C10 7F0CF0E0 1420FFF7 */ bnez $at, .L7F0CF0C0 +/* 103C14 7F0CF0E4 028FA025 */ or $s4, $s4, $t7 +/* 103C18 7F0CF0E8 0012C840 */ sll $t9, $s2, 1 +.L7F0CF0EC: +/* 103C1C 7F0CF0EC 01397021 */ addu $t6, $t1, $t9 +/* 103C20 7F0CF0F0 95CF0000 */ lhu $t7, ($t6) +/* 103C24 7F0CF0F4 8FAE007C */ lw $t6, 0x7c($sp) +/* 103C28 7F0CF0F8 94D90004 */ lhu $t9, 4($a2) +/* 103C2C 7F0CF0FC 02328823 */ subu $s1, $s1, $s2 +/* 103C30 7F0CF100 01F4C024 */ and $t8, $t7, $s4 +/* 103C34 7F0CF104 022E082B */ sltu $at, $s1, $t6 +/* 103C38 7F0CF108 0254A006 */ srlv $s4, $s4, $s2 +/* 103C3C 7F0CF10C 1020000D */ beqz $at, .L7F0CF144 +/* 103C40 7F0CF110 03194021 */ addu $t0, $t8, $t9 +/* 103C44 7F0CF114 8FC30000 */ lw $v1, ($fp) +/* 103C48 7F0CF118 01C02025 */ move $a0, $t6 +.L7F0CF11C: +/* 103C4C 7F0CF11C 8E620000 */ lw $v0, ($s3) +/* 103C50 7F0CF120 00627821 */ addu $t7, $v1, $v0 +/* 103C54 7F0CF124 91F80000 */ lbu $t8, ($t7) +/* 103C58 7F0CF128 244E0001 */ addiu $t6, $v0, 1 +/* 103C5C 7F0CF12C AE6E0000 */ sw $t6, ($s3) +/* 103C60 7F0CF130 0238C804 */ sllv $t9, $t8, $s1 +/* 103C64 7F0CF134 26310008 */ addiu $s1, $s1, 8 +/* 103C68 7F0CF138 0224082B */ sltu $at, $s1, $a0 +/* 103C6C 7F0CF13C 1420FFF7 */ bnez $at, .L7F0CF11C +/* 103C70 7F0CF140 0299A025 */ or $s4, $s4, $t9 +.L7F0CF144: +/* 103C74 7F0CF144 8FB90074 */ lw $t9, 0x74($sp) +/* 103C78 7F0CF148 028B7824 */ and $t7, $s4, $t3 +/* 103C7C 7F0CF14C 000FC0C0 */ sll $t8, $t7, 3 +/* 103C80 7F0CF150 03193021 */ addu $a2, $t8, $t9 +/* 103C84 7F0CF154 90D20000 */ lbu $s2, ($a2) +/* 103C88 7F0CF158 2E410011 */ sltiu $at, $s2, 0x11 +/* 103C8C 7F0CF15C 5420001E */ bnezl $at, .L7F0CF1D8 +/* 103C90 7F0CF160 90C20001 */ lbu $v0, 1($a2) +/* 103C94 7F0CF164 90C20001 */ lbu $v0, 1($a2) +.L7F0CF168: +/* 103C98 7F0CF168 2652FFF0 */ addiu $s2, $s2, -0x10 +/* 103C9C 7F0CF16C 02228823 */ subu $s1, $s1, $v0 +/* 103CA0 7F0CF170 0232082B */ sltu $at, $s1, $s2 +/* 103CA4 7F0CF174 1020000C */ beqz $at, .L7F0CF1A8 +/* 103CA8 7F0CF178 0054A006 */ srlv $s4, $s4, $v0 +/* 103CAC 7F0CF17C 8FC30000 */ lw $v1, ($fp) +.L7F0CF180: +/* 103CB0 7F0CF180 8E620000 */ lw $v0, ($s3) +/* 103CB4 7F0CF184 00627021 */ addu $t6, $v1, $v0 +/* 103CB8 7F0CF188 91CF0000 */ lbu $t7, ($t6) +/* 103CBC 7F0CF18C 24590001 */ addiu $t9, $v0, 1 +/* 103CC0 7F0CF190 AE790000 */ sw $t9, ($s3) +/* 103CC4 7F0CF194 022FC004 */ sllv $t8, $t7, $s1 +/* 103CC8 7F0CF198 26310008 */ addiu $s1, $s1, 8 +/* 103CCC 7F0CF19C 0232082B */ sltu $at, $s1, $s2 +/* 103CD0 7F0CF1A0 1420FFF7 */ bnez $at, .L7F0CF180 +/* 103CD4 7F0CF1A4 0298A025 */ or $s4, $s4, $t8 +.L7F0CF1A8: +/* 103CD8 7F0CF1A8 00127040 */ sll $t6, $s2, 1 +/* 103CDC 7F0CF1AC 012E7821 */ addu $t7, $t1, $t6 +/* 103CE0 7F0CF1B0 95F80000 */ lhu $t8, ($t7) +/* 103CE4 7F0CF1B4 8CCF0004 */ lw $t7, 4($a2) +/* 103CE8 7F0CF1B8 0314C824 */ and $t9, $t8, $s4 +/* 103CEC 7F0CF1BC 001970C0 */ sll $t6, $t9, 3 +/* 103CF0 7F0CF1C0 01CF3021 */ addu $a2, $t6, $t7 +/* 103CF4 7F0CF1C4 90D20000 */ lbu $s2, ($a2) +/* 103CF8 7F0CF1C8 2E410011 */ sltiu $at, $s2, 0x11 +/* 103CFC 7F0CF1CC 5020FFE6 */ beql $at, $zero, .L7F0CF168 +/* 103D00 7F0CF1D0 90C20001 */ lbu $v0, 1($a2) +/* 103D04 7F0CF1D4 90C20001 */ lbu $v0, 1($a2) +.L7F0CF1D8: +/* 103D08 7F0CF1D8 02228823 */ subu $s1, $s1, $v0 +/* 103D0C 7F0CF1DC 0232082B */ sltu $at, $s1, $s2 +/* 103D10 7F0CF1E0 1020000C */ beqz $at, .L7F0CF214 +/* 103D14 7F0CF1E4 0054A006 */ srlv $s4, $s4, $v0 +/* 103D18 7F0CF1E8 8FC30000 */ lw $v1, ($fp) +.L7F0CF1EC: +/* 103D1C 7F0CF1EC 8E620000 */ lw $v0, ($s3) +/* 103D20 7F0CF1F0 0062C021 */ addu $t8, $v1, $v0 +/* 103D24 7F0CF1F4 93190000 */ lbu $t9, ($t8) +/* 103D28 7F0CF1F8 244F0001 */ addiu $t7, $v0, 1 +/* 103D2C 7F0CF1FC AE6F0000 */ sw $t7, ($s3) +/* 103D30 7F0CF200 02397004 */ sllv $t6, $t9, $s1 +/* 103D34 7F0CF204 26310008 */ addiu $s1, $s1, 8 +/* 103D38 7F0CF208 0232082B */ sltu $at, $s1, $s2 +/* 103D3C 7F0CF20C 1420FFF7 */ bnez $at, .L7F0CF1EC +/* 103D40 7F0CF210 028EA025 */ or $s4, $s4, $t6 +.L7F0CF214: +/* 103D44 7F0CF214 94D80004 */ lhu $t8, 4($a2) +/* 103D48 7F0CF218 00127040 */ sll $t6, $s2, 1 +/* 103D4C 7F0CF21C 012E7821 */ addu $t7, $t1, $t6 +/* 103D50 7F0CF220 02B8C823 */ subu $t9, $s5, $t8 +/* 103D54 7F0CF224 95F80000 */ lhu $t8, ($t7) +/* 103D58 7F0CF228 02328823 */ subu $s1, $s1, $s2 +/* 103D5C 7F0CF22C 03147024 */ and $t6, $t8, $s4 +/* 103D60 7F0CF230 032E8023 */ subu $s0, $t9, $t6 +/* 103D64 7F0CF234 0254A006 */ srlv $s4, $s4, $s2 +/* 103D68 7F0CF238 01009025 */ move $s2, $t0 +.L7F0CF23C: +/* 103D6C 7F0CF23C 02B07823 */ subu $t7, $s5, $s0 +/* 103D70 7F0CF240 01F2082B */ sltu $at, $t7, $s2 +/* 103D74 7F0CF244 14200025 */ bnez $at, .L7F0CF2DC +/* 103D78 7F0CF248 00004025 */ move $t0, $zero +/* 103D7C 7F0CF24C 8EE30000 */ lw $v1, ($s7) +/* 103D80 7F0CF250 8FD80000 */ lw $t8, ($fp) +/* 103D84 7F0CF254 8E790000 */ lw $t9, ($s3) +/* 103D88 7F0CF258 02B2B021 */ addu $s6, $s5, $s2 +/* 103D8C 7F0CF25C 02C31021 */ addu $v0, $s6, $v1 +/* 103D90 7F0CF260 2442FFFF */ addiu $v0, $v0, -1 +/* 103D94 7F0CF264 03192021 */ addu $a0, $t8, $t9 +/* 103D98 7F0CF268 0044082B */ sltu $at, $v0, $a0 +/* 103D9C 7F0CF26C 14200006 */ bnez $at, .L7F0CF288 +/* 103DA0 7F0CF270 00447023 */ subu $t6, $v0, $a0 +/* 103DA4 7F0CF274 01C7082B */ sltu $at, $t6, $a3 +/* 103DA8 7F0CF278 50200004 */ beql $at, $zero, .L7F0CF28C +/* 103DAC 7F0CF27C 00752021 */ addu $a0, $v1, $s5 +.L7F0CF280: +/* 103DB0 7F0CF280 1000FFFF */ b .L7F0CF280 +/* 103DB4 7F0CF284 00000000 */ nop +.L7F0CF288: +/* 103DB8 7F0CF288 00752021 */ addu $a0, $v1, $s5 +.L7F0CF28C: +/* 103DBC 7F0CF28C 00702821 */ addu $a1, $v1, $s0 +/* 103DC0 7F0CF290 02403025 */ move $a2, $s2 +/* 103DC4 7F0CF294 AFA80068 */ sw $t0, 0x68($sp) +/* 103DC8 7F0CF298 AFAA0058 */ sw $t2, 0x58($sp) +/* 103DCC 7F0CF29C AFAB0054 */ sw $t3, 0x54($sp) +/* 103DD0 7F0CF2A0 AFAC0044 */ sw $t4, 0x44($sp) +/* 103DD4 7F0CF2A4 0C004E14 */ jal memcpy +/* 103DD8 7F0CF2A8 AFAD0040 */ sw $t5, 0x40($sp) +/* 103DDC 7F0CF2AC 3C098005 */ lui $t1, %hi(D_8004E9B0) +/* 103DE0 7F0CF2B0 2529E9B0 */ addiu $t1, %lo(D_8004E9B0) # addiu $t1, $t1, -0x1650 +/* 103DE4 7F0CF2B4 34078000 */ li $a3, 32768 +/* 103DE8 7F0CF2B8 8FA80068 */ lw $t0, 0x68($sp) +/* 103DEC 7F0CF2BC 8FAA0058 */ lw $t2, 0x58($sp) +/* 103DF0 7F0CF2C0 8FAB0054 */ lw $t3, 0x54($sp) +/* 103DF4 7F0CF2C4 8FAC0044 */ lw $t4, 0x44($sp) +/* 103DF8 7F0CF2C8 8FAD0040 */ lw $t5, 0x40($sp) +/* 103DFC 7F0CF2CC 8FBF0078 */ lw $ra, 0x78($sp) +/* 103E00 7F0CF2D0 02C0A825 */ move $s5, $s6 +/* 103E04 7F0CF2D4 10000016 */ b .L7F0CF330 +/* 103E08 7F0CF2D8 02128021 */ addu $s0, $s0, $s2 +.L7F0CF2DC: +/* 103E0C 7F0CF2DC 8EE30000 */ lw $v1, ($s7) +/* 103E10 7F0CF2E0 8FCF0000 */ lw $t7, ($fp) +/* 103E14 7F0CF2E4 8E780000 */ lw $t8, ($s3) +/* 103E18 7F0CF2E8 00752821 */ addu $a1, $v1, $s5 +/* 103E1C 7F0CF2EC 00A01025 */ move $v0, $a1 +/* 103E20 7F0CF2F0 01F82021 */ addu $a0, $t7, $t8 +/* 103E24 7F0CF2F4 00A4082B */ sltu $at, $a1, $a0 +/* 103E28 7F0CF2F8 14200006 */ bnez $at, .L7F0CF314 +/* 103E2C 7F0CF2FC 0044C823 */ subu $t9, $v0, $a0 +/* 103E30 7F0CF300 0327082B */ sltu $at, $t9, $a3 +/* 103E34 7F0CF304 50200004 */ beql $at, $zero, .L7F0CF318 +/* 103E38 7F0CF308 02037021 */ addu $t6, $s0, $v1 +.L7F0CF30C: +/* 103E3C 7F0CF30C 1000FFFF */ b .L7F0CF30C +/* 103E40 7F0CF310 00000000 */ nop +.L7F0CF314: +/* 103E44 7F0CF314 02037021 */ addu $t6, $s0, $v1 +.L7F0CF318: +/* 103E48 7F0CF318 91CF0000 */ lbu $t7, ($t6) +/* 103E4C 7F0CF31C 2652FFFF */ addiu $s2, $s2, -1 +/* 103E50 7F0CF320 26100001 */ addiu $s0, $s0, 1 +/* 103E54 7F0CF324 26B50001 */ addiu $s5, $s5, 1 +/* 103E58 7F0CF328 1640FFEC */ bnez $s2, .L7F0CF2DC +/* 103E5C 7F0CF32C A0AF0000 */ sb $t7, ($a1) +.L7F0CF330: +/* 103E60 7F0CF330 5500FFC2 */ bnezl $t0, .L7F0CF23C +/* 103E64 7F0CF334 01009025 */ move $s2, $t0 +/* 103E68 7F0CF338 1000FF13 */ b .L7F0CEF88 +/* 103E6C 7F0CF33C 023F082B */ sltu $at, $s1, $ra +.L7F0CF340: +/* 103E70 7F0CF340 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D35C) +/* 103E74 7F0CF344 AC35D35C */ sw $s5, %lo(dword_CODE_bss_8008D35C)($at) +/* 103E78 7F0CF348 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D364) +/* 103E7C 7F0CF34C AC34D364 */ sw $s4, %lo(dword_CODE_bss_8008D364)($at) +/* 103E80 7F0CF350 8FBF003C */ lw $ra, 0x3c($sp) +/* 103E84 7F0CF354 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D368) +/* 103E88 7F0CF358 AC31D368 */ sw $s1, %lo(dword_CODE_bss_8008D368)($at) +/* 103E8C 7F0CF35C 8FB1001C */ lw $s1, 0x1c($sp) +/* 103E90 7F0CF360 8FB40028 */ lw $s4, 0x28($sp) +/* 103E94 7F0CF364 8FB5002C */ lw $s5, 0x2c($sp) +/* 103E98 7F0CF368 8FB00018 */ lw $s0, 0x18($sp) +/* 103E9C 7F0CF36C 8FB20020 */ lw $s2, 0x20($sp) +/* 103EA0 7F0CF370 8FB30024 */ lw $s3, 0x24($sp) +/* 103EA4 7F0CF374 8FB60030 */ lw $s6, 0x30($sp) +/* 103EA8 7F0CF378 8FB70034 */ lw $s7, 0x34($sp) +/* 103EAC 7F0CF37C 8FBE0038 */ lw $fp, 0x38($sp) +/* 103EB0 7F0CF380 27BD0070 */ addiu $sp, $sp, 0x70 +/* 103EB4 7F0CF384 03E00008 */ jr $ra +/* 103EB8 7F0CF388 00001025 */ move $v0, $zero +) +#endif + + + + + +#ifdef NONMATCHING +void zlib_decompressor_type0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel zlib_decompressor_type0 +/* 103EBC 7F0CF38C 3C0B8009 */ lui $t3, %hi(dword_CODE_bss_8008D368) +/* 103EC0 7F0CF390 256BD368 */ addiu $t3, %lo(dword_CODE_bss_8008D368) # addiu $t3, $t3, -0x2c98 +/* 103EC4 7F0CF394 8D640000 */ lw $a0, ($t3) +/* 103EC8 7F0CF398 3C0A8009 */ lui $t2, %hi(dword_CODE_bss_8008D364) +/* 103ECC 7F0CF39C 254AD364 */ addiu $t2, %lo(dword_CODE_bss_8008D364) # addiu $t2, $t2, -0x2c9c +/* 103ED0 7F0CF3A0 30820007 */ andi $v0, $a0, 7 +/* 103ED4 7F0CF3A4 8D430000 */ lw $v1, ($t2) +/* 103ED8 7F0CF3A8 3C0C8009 */ lui $t4, %hi(dword_CODE_bss_8008D35C) +/* 103EDC 7F0CF3AC 00822023 */ subu $a0, $a0, $v0 +/* 103EE0 7F0CF3B0 258CD35C */ addiu $t4, %lo(dword_CODE_bss_8008D35C) # addiu $t4, $t4, -0x2ca4 +/* 103EE4 7F0CF3B4 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 103EE8 7F0CF3B8 2C810010 */ sltiu $at, $a0, 0x10 +/* 103EEC 7F0CF3BC AFB1000C */ sw $s1, 0xc($sp) +/* 103EF0 7F0CF3C0 AFB00008 */ sw $s0, 8($sp) +/* 103EF4 7F0CF3C4 8D850000 */ lw $a1, ($t4) +/* 103EF8 7F0CF3C8 1020000F */ beqz $at, .L7F0CF408 +/* 103EFC 7F0CF3CC 00431806 */ srlv $v1, $v1, $v0 +/* 103F00 7F0CF3D0 3C068009 */ lui $a2, %hi(dword_CODE_bss_8008D350) +/* 103F04 7F0CF3D4 3C0D8009 */ lui $t5, %hi(dword_CODE_bss_8008D358) +/* 103F08 7F0CF3D8 25ADD358 */ addiu $t5, %lo(dword_CODE_bss_8008D358) # addiu $t5, $t5, -0x2ca8 +/* 103F0C 7F0CF3DC 8CC6D350 */ lw $a2, %lo(dword_CODE_bss_8008D350)($a2) +.L7F0CF3E0: +/* 103F10 7F0CF3E0 8DA70000 */ lw $a3, ($t5) +/* 103F14 7F0CF3E4 00C77021 */ addu $t6, $a2, $a3 +/* 103F18 7F0CF3E8 91CF0000 */ lbu $t7, ($t6) +/* 103F1C 7F0CF3EC 24F90001 */ addiu $t9, $a3, 1 +/* 103F20 7F0CF3F0 ADB90000 */ sw $t9, ($t5) +/* 103F24 7F0CF3F4 008FC004 */ sllv $t8, $t7, $a0 +/* 103F28 7F0CF3F8 24840008 */ addiu $a0, $a0, 8 +/* 103F2C 7F0CF3FC 2C810010 */ sltiu $at, $a0, 0x10 +/* 103F30 7F0CF400 1420FFF7 */ bnez $at, .L7F0CF3E0 +/* 103F34 7F0CF404 00781825 */ or $v1, $v1, $t8 +.L7F0CF408: +/* 103F38 7F0CF408 2484FFF0 */ addiu $a0, $a0, -0x10 +/* 103F3C 7F0CF40C 3C0D8009 */ lui $t5, %hi(dword_CODE_bss_8008D358) +/* 103F40 7F0CF410 3062FFFF */ andi $v0, $v1, 0xffff +/* 103F44 7F0CF414 00037402 */ srl $t6, $v1, 0x10 +/* 103F48 7F0CF418 2C810010 */ sltiu $at, $a0, 0x10 +/* 103F4C 7F0CF41C 25ADD358 */ addiu $t5, %lo(dword_CODE_bss_8008D358) # addiu $t5, $t5, -0x2ca8 +/* 103F50 7F0CF420 1020000D */ beqz $at, .L7F0CF458 +/* 103F54 7F0CF424 01C01825 */ move $v1, $t6 +/* 103F58 7F0CF428 3C068009 */ lui $a2, %hi(dword_CODE_bss_8008D350) +/* 103F5C 7F0CF42C 8CC6D350 */ lw $a2, %lo(dword_CODE_bss_8008D350)($a2) +.L7F0CF430: +/* 103F60 7F0CF430 8DA70000 */ lw $a3, ($t5) +/* 103F64 7F0CF434 00C77821 */ addu $t7, $a2, $a3 +/* 103F68 7F0CF438 91F80000 */ lbu $t8, ($t7) +/* 103F6C 7F0CF43C 24EE0001 */ addiu $t6, $a3, 1 +/* 103F70 7F0CF440 ADAE0000 */ sw $t6, ($t5) +/* 103F74 7F0CF444 0098C804 */ sllv $t9, $t8, $a0 +/* 103F78 7F0CF448 24840008 */ addiu $a0, $a0, 8 +/* 103F7C 7F0CF44C 2C810010 */ sltiu $at, $a0, 0x10 +/* 103F80 7F0CF450 1420FFF7 */ bnez $at, .L7F0CF430 +/* 103F84 7F0CF454 00791825 */ or $v1, $v1, $t9 +.L7F0CF458: +/* 103F88 7F0CF458 00403025 */ move $a2, $v0 +/* 103F8C 7F0CF45C 00037C02 */ srl $t7, $v1, 0x10 +/* 103F90 7F0CF460 01E01825 */ move $v1, $t7 +/* 103F94 7F0CF464 2484FFF0 */ addiu $a0, $a0, -0x10 +/* 103F98 7F0CF468 10400027 */ beqz $v0, .L7F0CF508 +/* 103F9C 7F0CF46C 2442FFFF */ addiu $v0, $v0, -1 +/* 103FA0 7F0CF470 3C108009 */ lui $s0, %hi(dword_CODE_bss_8008D354) +/* 103FA4 7F0CF474 2610D354 */ addiu $s0, %lo(dword_CODE_bss_8008D354) # addiu $s0, $s0, -0x2cac +/* 103FA8 7F0CF478 34118000 */ li $s1, 32768 +.L7F0CF47C: +/* 103FAC 7F0CF47C 3C068009 */ lui $a2, %hi(dword_CODE_bss_8008D350) +/* 103FB0 7F0CF480 2C810008 */ sltiu $at, $a0, 8 +/* 103FB4 7F0CF484 1020000B */ beqz $at, .L7F0CF4B4 +/* 103FB8 7F0CF488 8CC6D350 */ lw $a2, %lo(dword_CODE_bss_8008D350)($a2) +.L7F0CF48C: +/* 103FBC 7F0CF48C 8DA70000 */ lw $a3, ($t5) +/* 103FC0 7F0CF490 00C7C021 */ addu $t8, $a2, $a3 +/* 103FC4 7F0CF494 93190000 */ lbu $t9, ($t8) +/* 103FC8 7F0CF498 24EF0001 */ addiu $t7, $a3, 1 +/* 103FCC 7F0CF49C ADAF0000 */ sw $t7, ($t5) +/* 103FD0 7F0CF4A0 00997004 */ sllv $t6, $t9, $a0 +/* 103FD4 7F0CF4A4 24840008 */ addiu $a0, $a0, 8 +/* 103FD8 7F0CF4A8 2C810008 */ sltiu $at, $a0, 8 +/* 103FDC 7F0CF4AC 1420FFF7 */ bnez $at, .L7F0CF48C +/* 103FE0 7F0CF4B0 006E1825 */ or $v1, $v1, $t6 +.L7F0CF4B4: +/* 103FE4 7F0CF4B4 8E180000 */ lw $t8, ($s0) +/* 103FE8 7F0CF4B8 8DB90000 */ lw $t9, ($t5) +/* 103FEC 7F0CF4BC 00037A02 */ srl $t7, $v1, 8 +/* 103FF0 7F0CF4C0 03053821 */ addu $a3, $t8, $a1 +/* 103FF4 7F0CF4C4 00D94821 */ addu $t1, $a2, $t9 +/* 103FF8 7F0CF4C8 00E9082B */ sltu $at, $a3, $t1 +/* 103FFC 7F0CF4CC 14200007 */ bnez $at, .L7F0CF4EC +/* 104000 7F0CF4D0 00E04025 */ move $t0, $a3 +/* 104004 7F0CF4D4 01097023 */ subu $t6, $t0, $t1 +/* 104008 7F0CF4D8 01D1082B */ sltu $at, $t6, $s1 +/* 10400C 7F0CF4DC 50200004 */ beql $at, $zero, .L7F0CF4F0 +/* 104010 7F0CF4E0 00403025 */ move $a2, $v0 +.L7F0CF4E4: +/* 104014 7F0CF4E4 1000FFFF */ b .L7F0CF4E4 +/* 104018 7F0CF4E8 00000000 */ nop +.L7F0CF4EC: +/* 10401C 7F0CF4EC 00403025 */ move $a2, $v0 +.L7F0CF4F0: +/* 104020 7F0CF4F0 A0E30000 */ sb $v1, ($a3) +/* 104024 7F0CF4F4 24A50001 */ addiu $a1, $a1, 1 +/* 104028 7F0CF4F8 01E01825 */ move $v1, $t7 +/* 10402C 7F0CF4FC 2484FFF8 */ addiu $a0, $a0, -8 +/* 104030 7F0CF500 1440FFDE */ bnez $v0, .L7F0CF47C +/* 104034 7F0CF504 2442FFFF */ addiu $v0, $v0, -1 +.L7F0CF508: +/* 104038 7F0CF508 8FB00008 */ lw $s0, 8($sp) +/* 10403C 7F0CF50C 8FB1000C */ lw $s1, 0xc($sp) +/* 104040 7F0CF510 AD850000 */ sw $a1, ($t4) +/* 104044 7F0CF514 AD430000 */ sw $v1, ($t2) +/* 104048 7F0CF518 AD640000 */ sw $a0, ($t3) +/* 10404C 7F0CF51C 27BD0010 */ addiu $sp, $sp, 0x10 +/* 104050 7F0CF520 03E00008 */ jr $ra +/* 104054 7F0CF524 00001025 */ move $v0, $zero +) +#endif + + + + + +#ifdef NONMATCHING +void zlib_decompressor_type1(void) +{ + ? sp4B8; + ? sp4B4; + ?32 sp4B0; + ?32 sp4AC; + ? sp48C; + ? sp42C; + ? sp26C; + ? spA4; + ? sp34; + ?32 sp30; + ?32 sp2C; + void *temp_v0; + u32 temp_v0_2; + u32 temp_v0_3; + u32 temp_v0_4; + void *temp_v0_5; + void *phi_v0; + u32 phi_v0_2; + u32 phi_v0_3; + u32 phi_v0_4; + u32 phi_v0_5; + u32 phi_v0_6; + void *phi_v0_7; + + phi_v0 = &sp2C; +block_1: + temp_v0 = (phi_v0 + 0x10); + temp_v0->unk-C = 8; + temp_v0->unk-8 = 8; + temp_v0->unk-4 = 8; + temp_v0->unk-10 = 8; + phi_v0 = temp_v0; + if (temp_v0 != &sp26C) + { + goto block_1; + } + phi_v0_3 = temp_v0; + if (temp_v0 < &sp42C) + { + phi_v0_2 = temp_v0; +block_4: + temp_v0_2 = (phi_v0_2 + 4); + temp_v0_2->unk-4 = 9; + phi_v0_2 = temp_v0_2; + phi_v0_3 = temp_v0_2; + if (temp_v0_2 < &sp42C) + { + goto block_4; + } + } + phi_v0_5 = phi_v0_3; + if ((u32) phi_v0_3 < &sp48C) + { + phi_v0_4 = phi_v0_3; +block_7: + temp_v0_3 = (phi_v0_4 + 4); + temp_v0_3->unk-4 = 7; + phi_v0_4 = temp_v0_3; + phi_v0_5 = temp_v0_3; + if (temp_v0_3 < &sp48C) + { + goto block_7; + } + } + if ((u32) phi_v0_5 < &sp4AC) + { + phi_v0_6 = phi_v0_5; +block_10: + temp_v0_4 = (phi_v0_6 + 4); + temp_v0_4->unk-4 = 8; + phi_v0_6 = temp_v0_4; + if (temp_v0_4 < &sp4AC) + { + goto block_10; + } + } + sp4B0 = 7; + sub_GAME_7F0CE8B0(&sp2C, 0x120, 0x101, &D_8004E8F4, &D_8004E934, &sp4B8, &sp4B0); + sp30 = 5; + sp2C = 5; + phi_v0_7 = &sp34; +block_12: + temp_v0_5 = (phi_v0_7 + 0x10); + temp_v0_5->unk-C = 5; + temp_v0_5->unk-8 = 5; + temp_v0_5->unk-4 = 5; + temp_v0_5->unk-10 = 5; + phi_v0_7 = temp_v0_5; + if (temp_v0_5 != &spA4) + { + goto block_12; + } + sp4AC = 5; + sub_GAME_7F0CE8B0(&sp2C, 0x1e, 0, &D_8004E954, &D_8004E990, &sp4B4, &sp4AC); + sub_GAME_7F0CEEF0(sp4B8, sp4B4, sp4B0, sp4AC); + return 0; +} +#else +GLOBAL_ASM( +.text +glabel zlib_decompressor_type1 +/* 104058 7F0CF528 27BDFB40 */ addiu $sp, $sp, -0x4c0 +/* 10405C 7F0CF52C AFBF0024 */ sw $ra, 0x24($sp) +/* 104060 7F0CF530 27A2002C */ addiu $v0, $sp, 0x2c +/* 104064 7F0CF534 27A4026C */ addiu $a0, $sp, 0x26c +/* 104068 7F0CF538 24030008 */ li $v1, 8 +.L7F0CF53C: +/* 10406C 7F0CF53C 24420010 */ addiu $v0, $v0, 0x10 +/* 104070 7F0CF540 AC43FFF4 */ sw $v1, -0xc($v0) +/* 104074 7F0CF544 AC43FFF8 */ sw $v1, -8($v0) +/* 104078 7F0CF548 AC43FFFC */ sw $v1, -4($v0) +/* 10407C 7F0CF54C 1444FFFB */ bne $v0, $a0, .L7F0CF53C +/* 104080 7F0CF550 AC43FFF0 */ sw $v1, -0x10($v0) +/* 104084 7F0CF554 27AE042C */ addiu $t6, $sp, 0x42c +/* 104088 7F0CF558 004E082B */ sltu $at, $v0, $t6 +/* 10408C 7F0CF55C 10200007 */ beqz $at, .L7F0CF57C +/* 104090 7F0CF560 27AF048C */ addiu $t7, $sp, 0x48c +/* 104094 7F0CF564 27A5042C */ addiu $a1, $sp, 0x42c +/* 104098 7F0CF568 24040009 */ li $a0, 9 +.L7F0CF56C: +/* 10409C 7F0CF56C 24420004 */ addiu $v0, $v0, 4 +/* 1040A0 7F0CF570 0045082B */ sltu $at, $v0, $a1 +/* 1040A4 7F0CF574 1420FFFD */ bnez $at, .L7F0CF56C +/* 1040A8 7F0CF578 AC44FFFC */ sw $a0, -4($v0) +.L7F0CF57C: +/* 1040AC 7F0CF57C 004F082B */ sltu $at, $v0, $t7 +/* 1040B0 7F0CF580 10200007 */ beqz $at, .L7F0CF5A0 +/* 1040B4 7F0CF584 27B804AC */ addiu $t8, $sp, 0x4ac +/* 1040B8 7F0CF588 27A5048C */ addiu $a1, $sp, 0x48c +/* 1040BC 7F0CF58C 24040007 */ li $a0, 7 +.L7F0CF590: +/* 1040C0 7F0CF590 24420004 */ addiu $v0, $v0, 4 +/* 1040C4 7F0CF594 0045082B */ sltu $at, $v0, $a1 +/* 1040C8 7F0CF598 1420FFFD */ bnez $at, .L7F0CF590 +/* 1040CC 7F0CF59C AC44FFFC */ sw $a0, -4($v0) +.L7F0CF5A0: +/* 1040D0 7F0CF5A0 0058082B */ sltu $at, $v0, $t8 +/* 1040D4 7F0CF5A4 10200006 */ beqz $at, .L7F0CF5C0 +/* 1040D8 7F0CF5A8 24190007 */ li $t9, 7 +/* 1040DC 7F0CF5AC 27A404AC */ addiu $a0, $sp, 0x4ac +.L7F0CF5B0: +/* 1040E0 7F0CF5B0 24420004 */ addiu $v0, $v0, 4 +/* 1040E4 7F0CF5B4 0044082B */ sltu $at, $v0, $a0 +/* 1040E8 7F0CF5B8 1420FFFD */ bnez $at, .L7F0CF5B0 +/* 1040EC 7F0CF5BC AC43FFFC */ sw $v1, -4($v0) +.L7F0CF5C0: +/* 1040F0 7F0CF5C0 3C088005 */ lui $t0, %hi(D_8004E934) +/* 1040F4 7F0CF5C4 2508E934 */ addiu $t0, %lo(D_8004E934) # addiu $t0, $t0, -0x16cc +/* 1040F8 7F0CF5C8 3C078005 */ lui $a3, %hi(D_8004E8F4) +/* 1040FC 7F0CF5CC 27A904B8 */ addiu $t1, $sp, 0x4b8 +/* 104100 7F0CF5D0 27AA04B0 */ addiu $t2, $sp, 0x4b0 +/* 104104 7F0CF5D4 AFB904B0 */ sw $t9, 0x4b0($sp) +/* 104108 7F0CF5D8 AFAA0018 */ sw $t2, 0x18($sp) +/* 10410C 7F0CF5DC AFA90014 */ sw $t1, 0x14($sp) +/* 104110 7F0CF5E0 24E7E8F4 */ addiu $a3, %lo(D_8004E8F4) # addiu $a3, $a3, -0x170c +/* 104114 7F0CF5E4 AFA80010 */ sw $t0, 0x10($sp) +/* 104118 7F0CF5E8 27A4002C */ addiu $a0, $sp, 0x2c +/* 10411C 7F0CF5EC 24050120 */ li $a1, 288 +/* 104120 7F0CF5F0 0FC33A2C */ jal sub_GAME_7F0CE8B0 +/* 104124 7F0CF5F4 24060101 */ li $a2, 257 +/* 104128 7F0CF5F8 240B0005 */ li $t3, 5 +/* 10412C 7F0CF5FC 240C0005 */ li $t4, 5 +/* 104130 7F0CF600 AFAC0030 */ sw $t4, 0x30($sp) +/* 104134 7F0CF604 AFAB002C */ sw $t3, 0x2c($sp) +/* 104138 7F0CF608 27A20034 */ addiu $v0, $sp, 0x34 +/* 10413C 7F0CF60C 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 104140 7F0CF610 24030005 */ li $v1, 5 +.L7F0CF614: +/* 104144 7F0CF614 24420010 */ addiu $v0, $v0, 0x10 +/* 104148 7F0CF618 AC43FFF4 */ sw $v1, -0xc($v0) +/* 10414C 7F0CF61C AC43FFF8 */ sw $v1, -8($v0) +/* 104150 7F0CF620 AC43FFFC */ sw $v1, -4($v0) +/* 104154 7F0CF624 1444FFFB */ bne $v0, $a0, .L7F0CF614 +/* 104158 7F0CF628 AC43FFF0 */ sw $v1, -0x10($v0) +/* 10415C 7F0CF62C 3C0E8005 */ lui $t6, %hi(D_8004E990) +/* 104160 7F0CF630 240D0005 */ li $t5, 5 +/* 104164 7F0CF634 25CEE990 */ addiu $t6, %lo(D_8004E990) # addiu $t6, $t6, -0x1670 +/* 104168 7F0CF638 3C078005 */ lui $a3, %hi(D_8004E954) +/* 10416C 7F0CF63C 27AF04B4 */ addiu $t7, $sp, 0x4b4 +/* 104170 7F0CF640 27B804AC */ addiu $t8, $sp, 0x4ac +/* 104174 7F0CF644 AFAD04AC */ sw $t5, 0x4ac($sp) +/* 104178 7F0CF648 AFB80018 */ sw $t8, 0x18($sp) +/* 10417C 7F0CF64C AFAF0014 */ sw $t7, 0x14($sp) +/* 104180 7F0CF650 24E7E954 */ addiu $a3, %lo(D_8004E954) # addiu $a3, $a3, -0x16ac +/* 104184 7F0CF654 AFAE0010 */ sw $t6, 0x10($sp) +/* 104188 7F0CF658 27A4002C */ addiu $a0, $sp, 0x2c +/* 10418C 7F0CF65C 2405001E */ li $a1, 30 +/* 104190 7F0CF660 0FC33A2C */ jal sub_GAME_7F0CE8B0 +/* 104194 7F0CF664 00003025 */ move $a2, $zero +/* 104198 7F0CF668 8FA404B8 */ lw $a0, 0x4b8($sp) +/* 10419C 7F0CF66C 8FA504B4 */ lw $a1, 0x4b4($sp) +/* 1041A0 7F0CF670 8FA604B0 */ lw $a2, 0x4b0($sp) +/* 1041A4 7F0CF674 0FC33BBC */ jal sub_GAME_7F0CEEF0 +/* 1041A8 7F0CF678 8FA704AC */ lw $a3, 0x4ac($sp) +/* 1041AC 7F0CF67C 8FBF0024 */ lw $ra, 0x24($sp) +/* 1041B0 7F0CF680 27BD04C0 */ addiu $sp, $sp, 0x4c0 +/* 1041B4 7F0CF684 00001025 */ move $v0, $zero +/* 1041B8 7F0CF688 03E00008 */ jr $ra +/* 1041BC 7F0CF68C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void zlib_decompressor_type2(void) { + +} +#else +GLOBAL_ASM( +.text +glabel zlib_decompressor_type2 +/* 1041C0 7F0CF690 3C088009 */ lui $t0, %hi(dword_CODE_bss_8008D368) +/* 1041C4 7F0CF694 8D08D368 */ lw $t0, %lo(dword_CODE_bss_8008D368)($t0) +/* 1041C8 7F0CF698 27BDFA98 */ addiu $sp, $sp, -0x568 +/* 1041CC 7F0CF69C 3C098009 */ lui $t1, %hi(dword_CODE_bss_8008D364) +/* 1041D0 7F0CF6A0 2D010005 */ sltiu $at, $t0, 5 +/* 1041D4 7F0CF6A4 AFBF002C */ sw $ra, 0x2c($sp) +/* 1041D8 7F0CF6A8 AFB00028 */ sw $s0, 0x28($sp) +/* 1041DC 7F0CF6AC 1020000F */ beqz $at, .L7F0CF6EC +/* 1041E0 7F0CF6B0 8D29D364 */ lw $t1, %lo(dword_CODE_bss_8008D364)($t1) +/* 1041E4 7F0CF6B4 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) +/* 1041E8 7F0CF6B8 3C0A8009 */ lui $t2, %hi(dword_CODE_bss_8008D358) +/* 1041EC 7F0CF6BC 254AD358 */ addiu $t2, %lo(dword_CODE_bss_8008D358) # addiu $t2, $t2, -0x2ca8 +/* 1041F0 7F0CF6C0 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +.L7F0CF6C4: +/* 1041F4 7F0CF6C4 8D420000 */ lw $v0, ($t2) +/* 1041F8 7F0CF6C8 00627021 */ addu $t6, $v1, $v0 +/* 1041FC 7F0CF6CC 91CF0000 */ lbu $t7, ($t6) +/* 104200 7F0CF6D0 24590001 */ addiu $t9, $v0, 1 +/* 104204 7F0CF6D4 AD590000 */ sw $t9, ($t2) +/* 104208 7F0CF6D8 010FC004 */ sllv $t8, $t7, $t0 +/* 10420C 7F0CF6DC 25080008 */ addiu $t0, $t0, 8 +/* 104210 7F0CF6E0 2D010005 */ sltiu $at, $t0, 5 +/* 104214 7F0CF6E4 1420FFF7 */ bnez $at, .L7F0CF6C4 +/* 104218 7F0CF6E8 01384825 */ or $t1, $t1, $t8 +.L7F0CF6EC: +/* 10421C 7F0CF6EC 312E001F */ andi $t6, $t1, 0x1f +/* 104220 7F0CF6F0 2508FFFB */ addiu $t0, $t0, -5 +/* 104224 7F0CF6F4 3C0A8009 */ lui $t2, %hi(dword_CODE_bss_8008D358) +/* 104228 7F0CF6F8 25CF0101 */ addiu $t7, $t6, 0x101 +/* 10422C 7F0CF6FC 0009C142 */ srl $t8, $t1, 5 +/* 104230 7F0CF700 2D010005 */ sltiu $at, $t0, 5 +/* 104234 7F0CF704 254AD358 */ addiu $t2, %lo(dword_CODE_bss_8008D358) # addiu $t2, $t2, -0x2ca8 +/* 104238 7F0CF708 AFAF053C */ sw $t7, 0x53c($sp) +/* 10423C 7F0CF70C 1020000D */ beqz $at, .L7F0CF744 +/* 104240 7F0CF710 03004825 */ move $t1, $t8 +/* 104244 7F0CF714 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) +/* 104248 7F0CF718 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +.L7F0CF71C: +/* 10424C 7F0CF71C 8D420000 */ lw $v0, ($t2) +/* 104250 7F0CF720 0062C821 */ addu $t9, $v1, $v0 +/* 104254 7F0CF724 932E0000 */ lbu $t6, ($t9) +/* 104258 7F0CF728 24580001 */ addiu $t8, $v0, 1 +/* 10425C 7F0CF72C AD580000 */ sw $t8, ($t2) +/* 104260 7F0CF730 010E7804 */ sllv $t7, $t6, $t0 +/* 104264 7F0CF734 25080008 */ addiu $t0, $t0, 8 +/* 104268 7F0CF738 2D010005 */ sltiu $at, $t0, 5 +/* 10426C 7F0CF73C 1420FFF7 */ bnez $at, .L7F0CF71C +/* 104270 7F0CF740 012F4825 */ or $t1, $t1, $t7 +.L7F0CF744: +/* 104274 7F0CF744 3139001F */ andi $t9, $t1, 0x1f +/* 104278 7F0CF748 2508FFFB */ addiu $t0, $t0, -5 +/* 10427C 7F0CF74C 272E0001 */ addiu $t6, $t9, 1 +/* 104280 7F0CF750 00097942 */ srl $t7, $t1, 5 +/* 104284 7F0CF754 2D010004 */ sltiu $at, $t0, 4 +/* 104288 7F0CF758 AFAE0538 */ sw $t6, 0x538($sp) +/* 10428C 7F0CF75C 1020000D */ beqz $at, .L7F0CF794 +/* 104290 7F0CF760 01E04825 */ move $t1, $t7 +/* 104294 7F0CF764 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) +/* 104298 7F0CF768 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +.L7F0CF76C: +/* 10429C 7F0CF76C 8D420000 */ lw $v0, ($t2) +/* 1042A0 7F0CF770 0062C021 */ addu $t8, $v1, $v0 +/* 1042A4 7F0CF774 93190000 */ lbu $t9, ($t8) +/* 1042A8 7F0CF778 244F0001 */ addiu $t7, $v0, 1 +/* 1042AC 7F0CF77C AD4F0000 */ sw $t7, ($t2) +/* 1042B0 7F0CF780 01197004 */ sllv $t6, $t9, $t0 +/* 1042B4 7F0CF784 25080008 */ addiu $t0, $t0, 8 +/* 1042B8 7F0CF788 2D010004 */ sltiu $at, $t0, 4 +/* 1042BC 7F0CF78C 1420FFF7 */ bnez $at, .L7F0CF76C +/* 1042C0 7F0CF790 012E4825 */ or $t1, $t1, $t6 +.L7F0CF794: +/* 1042C4 7F0CF794 3126000F */ andi $a2, $t1, 0xf +/* 1042C8 7F0CF798 24C60004 */ addiu $a2, $a2, 4 +/* 1042CC 7F0CF79C 0009C102 */ srl $t8, $t1, 4 +/* 1042D0 7F0CF7A0 03004825 */ move $t1, $t8 +/* 1042D4 7F0CF7A4 2508FFFC */ addiu $t0, $t0, -4 +/* 1042D8 7F0CF7A8 10C0001D */ beqz $a2, .L7F0CF820 +/* 1042DC 7F0CF7AC 00002025 */ move $a0, $zero +/* 1042E0 7F0CF7B0 3C058005 */ lui $a1, %hi(D_8004E8E0) +/* 1042E4 7F0CF7B4 24A5E8E0 */ addiu $a1, %lo(D_8004E8E0) # addiu $a1, $a1, -0x1720 +/* 1042E8 7F0CF7B8 27B00040 */ addiu $s0, $sp, 0x40 +.L7F0CF7BC: +/* 1042EC 7F0CF7BC 2D010003 */ sltiu $at, $t0, 3 +/* 1042F0 7F0CF7C0 1020000D */ beqz $at, .L7F0CF7F8 +/* 1042F4 7F0CF7C4 24840001 */ addiu $a0, $a0, 1 +/* 1042F8 7F0CF7C8 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) +/* 1042FC 7F0CF7CC 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +.L7F0CF7D0: +/* 104300 7F0CF7D0 8D420000 */ lw $v0, ($t2) +/* 104304 7F0CF7D4 0062C821 */ addu $t9, $v1, $v0 +/* 104308 7F0CF7D8 932E0000 */ lbu $t6, ($t9) +/* 10430C 7F0CF7DC 24580001 */ addiu $t8, $v0, 1 +/* 104310 7F0CF7E0 AD580000 */ sw $t8, ($t2) +/* 104314 7F0CF7E4 010E7804 */ sllv $t7, $t6, $t0 +/* 104318 7F0CF7E8 25080008 */ addiu $t0, $t0, 8 +/* 10431C 7F0CF7EC 2D010003 */ sltiu $at, $t0, 3 +/* 104320 7F0CF7F0 1420FFF7 */ bnez $at, .L7F0CF7D0 +/* 104324 7F0CF7F4 012F4825 */ or $t1, $t1, $t7 +.L7F0CF7F8: +/* 104328 7F0CF7F8 90AE0000 */ lbu $t6, ($a1) +/* 10432C 7F0CF7FC 31390007 */ andi $t9, $t1, 7 +/* 104330 7F0CF800 24A50001 */ addiu $a1, $a1, 1 +/* 104334 7F0CF804 000E7880 */ sll $t7, $t6, 2 +/* 104338 7F0CF808 020FC021 */ addu $t8, $s0, $t7 +/* 10433C 7F0CF80C 000970C2 */ srl $t6, $t1, 3 +/* 104340 7F0CF810 AF190000 */ sw $t9, ($t8) +/* 104344 7F0CF814 01C04825 */ move $t1, $t6 +/* 104348 7F0CF818 1486FFE8 */ bne $a0, $a2, .L7F0CF7BC +/* 10434C 7F0CF81C 2508FFFD */ addiu $t0, $t0, -3 +.L7F0CF820: +/* 104350 7F0CF820 2C810013 */ sltiu $at, $a0, 0x13 +/* 104354 7F0CF824 1020000D */ beqz $at, .L7F0CF85C +/* 104358 7F0CF828 27B00040 */ addiu $s0, $sp, 0x40 +/* 10435C 7F0CF82C 3C0F8005 */ lui $t7, %hi(D_8004E8E0) +/* 104360 7F0CF830 25EFE8E0 */ addiu $t7, %lo(D_8004E8E0) # addiu $t7, $t7, -0x1720 +/* 104364 7F0CF834 3C028005 */ lui $v0, %hi(D_8004E8E0+0x13) +/* 104368 7F0CF838 2442E8F3 */ addiu $v0, %lo(D_8004E8E0+0x13) # addiu $v0, $v0, -0x170d +/* 10436C 7F0CF83C 008F2821 */ addu $a1, $a0, $t7 +.L7F0CF840: +/* 104370 7F0CF840 90B90000 */ lbu $t9, ($a1) +/* 104374 7F0CF844 24A50001 */ addiu $a1, $a1, 1 +/* 104378 7F0CF848 00A2082B */ sltu $at, $a1, $v0 +/* 10437C 7F0CF84C 0019C080 */ sll $t8, $t9, 2 +/* 104380 7F0CF850 02187021 */ addu $t6, $s0, $t8 +/* 104384 7F0CF854 1420FFFA */ bnez $at, .L7F0CF840 +/* 104388 7F0CF858 ADC00000 */ sw $zero, ($t6) +.L7F0CF85C: +/* 10438C 7F0CF85C 240F0007 */ li $t7, 7 +/* 104390 7F0CF860 27B90550 */ addiu $t9, $sp, 0x550 +/* 104394 7F0CF864 27B80548 */ addiu $t8, $sp, 0x548 +/* 104398 7F0CF868 AFAF0548 */ sw $t7, 0x548($sp) +/* 10439C 7F0CF86C AFB80018 */ sw $t8, 0x18($sp) +/* 1043A0 7F0CF870 AFB90014 */ sw $t9, 0x14($sp) +/* 1043A4 7F0CF874 02002025 */ move $a0, $s0 +/* 1043A8 7F0CF878 24050013 */ li $a1, 19 +/* 1043AC 7F0CF87C 24060013 */ li $a2, 19 +/* 1043B0 7F0CF880 00003825 */ move $a3, $zero +/* 1043B4 7F0CF884 AFA00010 */ sw $zero, 0x10($sp) +/* 1043B8 7F0CF888 AFA80534 */ sw $t0, 0x534($sp) +/* 1043BC 7F0CF88C 0FC33A2C */ jal sub_GAME_7F0CE8B0 +/* 1043C0 7F0CF890 AFA90530 */ sw $t1, 0x530($sp) +/* 1043C4 7F0CF894 8FB90548 */ lw $t9, 0x548($sp) +/* 1043C8 7F0CF898 8FAE053C */ lw $t6, 0x53c($sp) +/* 1043CC 7F0CF89C 8FAF0538 */ lw $t7, 0x538($sp) +/* 1043D0 7F0CF8A0 3C0B8005 */ lui $t3, %hi(D_8004E9B0) +/* 1043D4 7F0CF8A4 0019C040 */ sll $t8, $t9, 1 +/* 1043D8 7F0CF8A8 3C0A8009 */ lui $t2, %hi(dword_CODE_bss_8008D358) +/* 1043DC 7F0CF8AC 01785821 */ addu $t3, $t3, $t8 +/* 1043E0 7F0CF8B0 01CF3821 */ addu $a3, $t6, $t7 +/* 1043E4 7F0CF8B4 254AD358 */ addiu $t2, %lo(dword_CODE_bss_8008D358) # addiu $t2, $t2, -0x2ca8 +/* 1043E8 7F0CF8B8 8FA80534 */ lw $t0, 0x534($sp) +/* 1043EC 7F0CF8BC 8FA90530 */ lw $t1, 0x530($sp) +/* 1043F0 7F0CF8C0 956BE9B0 */ lhu $t3, %lo(D_8004E9B0)($t3) +/* 1043F4 7F0CF8C4 00003025 */ move $a2, $zero +/* 1043F8 7F0CF8C8 10E0008A */ beqz $a3, .L7F0CFAF4 +/* 1043FC 7F0CF8CC 00002825 */ move $a1, $zero +/* 104400 7F0CF8D0 240D0011 */ li $t5, 17 +/* 104404 7F0CF8D4 240C0010 */ li $t4, 16 +/* 104408 7F0CF8D8 8FAE0548 */ lw $t6, 0x548($sp) +.L7F0CF8DC: +/* 10440C 7F0CF8DC 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) +/* 104410 7F0CF8E0 010E082B */ sltu $at, $t0, $t6 +/* 104414 7F0CF8E4 5020000E */ beql $at, $zero, .L7F0CF920 +/* 104418 7F0CF8E8 8FAE0550 */ lw $t6, 0x550($sp) +/* 10441C 7F0CF8EC 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +.L7F0CF8F0: +/* 104420 7F0CF8F0 8D420000 */ lw $v0, ($t2) +/* 104424 7F0CF8F4 00627821 */ addu $t7, $v1, $v0 +/* 104428 7F0CF8F8 91F90000 */ lbu $t9, ($t7) +/* 10442C 7F0CF8FC 8FAF0548 */ lw $t7, 0x548($sp) +/* 104430 7F0CF900 244E0001 */ addiu $t6, $v0, 1 +/* 104434 7F0CF904 0119C004 */ sllv $t8, $t9, $t0 +/* 104438 7F0CF908 25080008 */ addiu $t0, $t0, 8 +/* 10443C 7F0CF90C 010F082B */ sltu $at, $t0, $t7 +/* 104440 7F0CF910 01384825 */ or $t1, $t1, $t8 +/* 104444 7F0CF914 1420FFF6 */ bnez $at, .L7F0CF8F0 +/* 104448 7F0CF918 AD4E0000 */ sw $t6, ($t2) +/* 10444C 7F0CF91C 8FAE0550 */ lw $t6, 0x550($sp) +.L7F0CF920: +/* 104450 7F0CF920 012BC824 */ and $t9, $t1, $t3 +/* 104454 7F0CF924 0019C0C0 */ sll $t8, $t9, 3 +/* 104458 7F0CF928 030E7821 */ addu $t7, $t8, $t6 +/* 10445C 7F0CF92C AFAF054C */ sw $t7, 0x54c($sp) +/* 104460 7F0CF930 91E40001 */ lbu $a0, 1($t7) +/* 104464 7F0CF934 0005C880 */ sll $t9, $a1, 2 +/* 104468 7F0CF938 0219C021 */ addu $t8, $s0, $t9 +/* 10446C 7F0CF93C 00894806 */ srlv $t1, $t1, $a0 +/* 104470 7F0CF940 01044023 */ subu $t0, $t0, $a0 +/* 104474 7F0CF944 95E40004 */ lhu $a0, 4($t7) +/* 104478 7F0CF948 2C810010 */ sltiu $at, $a0, 0x10 +/* 10447C 7F0CF94C 10200005 */ beqz $at, .L7F0CF964 +/* 104480 7F0CF950 00000000 */ nop +/* 104484 7F0CF954 00803025 */ move $a2, $a0 +/* 104488 7F0CF958 AF040000 */ sw $a0, ($t8) +/* 10448C 7F0CF95C 10000062 */ b .L7F0CFAE8 +/* 104490 7F0CF960 24A50001 */ addiu $a1, $a1, 1 +.L7F0CF964: +/* 104494 7F0CF964 148C0020 */ bne $a0, $t4, .L7F0CF9E8 +/* 104498 7F0CF968 2D010002 */ sltiu $at, $t0, 2 +/* 10449C 7F0CF96C 1020000C */ beqz $at, .L7F0CF9A0 +/* 1044A0 7F0CF970 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) +/* 1044A4 7F0CF974 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +.L7F0CF978: +/* 1044A8 7F0CF978 8D420000 */ lw $v0, ($t2) +/* 1044AC 7F0CF97C 00627021 */ addu $t6, $v1, $v0 +/* 1044B0 7F0CF980 91CF0000 */ lbu $t7, ($t6) +/* 1044B4 7F0CF984 24580001 */ addiu $t8, $v0, 1 +/* 1044B8 7F0CF988 AD580000 */ sw $t8, ($t2) +/* 1044BC 7F0CF98C 010FC804 */ sllv $t9, $t7, $t0 +/* 1044C0 7F0CF990 25080008 */ addiu $t0, $t0, 8 +/* 1044C4 7F0CF994 2D010002 */ sltiu $at, $t0, 2 +/* 1044C8 7F0CF998 1420FFF7 */ bnez $at, .L7F0CF978 +/* 1044CC 7F0CF99C 01394825 */ or $t1, $t1, $t9 +.L7F0CF9A0: +/* 1044D0 7F0CF9A0 31240003 */ andi $a0, $t1, 3 +/* 1044D4 7F0CF9A4 24840003 */ addiu $a0, $a0, 3 +/* 1044D8 7F0CF9A8 00801825 */ move $v1, $a0 +/* 1044DC 7F0CF9AC 00097082 */ srl $t6, $t1, 2 +/* 1044E0 7F0CF9B0 01C04825 */ move $t1, $t6 +/* 1044E4 7F0CF9B4 2508FFFE */ addiu $t0, $t0, -2 +/* 1044E8 7F0CF9B8 1080004B */ beqz $a0, .L7F0CFAE8 +/* 1044EC 7F0CF9BC 2484FFFF */ addiu $a0, $a0, -1 +/* 1044F0 7F0CF9C0 00057880 */ sll $t7, $a1, 2 +/* 1044F4 7F0CF9C4 020F1021 */ addu $v0, $s0, $t7 +.L7F0CF9C8: +/* 1044F8 7F0CF9C8 00801825 */ move $v1, $a0 +/* 1044FC 7F0CF9CC AC460000 */ sw $a2, ($v0) +/* 104500 7F0CF9D0 24A50001 */ addiu $a1, $a1, 1 +/* 104504 7F0CF9D4 24420004 */ addiu $v0, $v0, 4 +/* 104508 7F0CF9D8 1480FFFB */ bnez $a0, .L7F0CF9C8 +/* 10450C 7F0CF9DC 2484FFFF */ addiu $a0, $a0, -1 +/* 104510 7F0CF9E0 10000042 */ b .L7F0CFAEC +/* 104514 7F0CF9E4 00A7082B */ sltu $at, $a1, $a3 +.L7F0CF9E8: +/* 104518 7F0CF9E8 148D0021 */ bne $a0, $t5, .L7F0CFA70 +/* 10451C 7F0CF9EC 00003025 */ move $a2, $zero +/* 104520 7F0CF9F0 2D010003 */ sltiu $at, $t0, 3 +/* 104524 7F0CF9F4 1020000C */ beqz $at, .L7F0CFA28 +/* 104528 7F0CF9F8 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) +/* 10452C 7F0CF9FC 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +.L7F0CFA00: +/* 104530 7F0CFA00 8D420000 */ lw $v0, ($t2) +/* 104534 7F0CFA04 0062C821 */ addu $t9, $v1, $v0 +/* 104538 7F0CFA08 93380000 */ lbu $t8, ($t9) +/* 10453C 7F0CFA0C 244F0001 */ addiu $t7, $v0, 1 +/* 104540 7F0CFA10 AD4F0000 */ sw $t7, ($t2) +/* 104544 7F0CFA14 01187004 */ sllv $t6, $t8, $t0 +/* 104548 7F0CFA18 25080008 */ addiu $t0, $t0, 8 +/* 10454C 7F0CFA1C 2D010003 */ sltiu $at, $t0, 3 +/* 104550 7F0CFA20 1420FFF7 */ bnez $at, .L7F0CFA00 +/* 104554 7F0CFA24 012E4825 */ or $t1, $t1, $t6 +.L7F0CFA28: +/* 104558 7F0CFA28 31240007 */ andi $a0, $t1, 7 +/* 10455C 7F0CFA2C 24840003 */ addiu $a0, $a0, 3 +/* 104560 7F0CFA30 00801825 */ move $v1, $a0 +/* 104564 7F0CFA34 0009C8C2 */ srl $t9, $t1, 3 +/* 104568 7F0CFA38 03204825 */ move $t1, $t9 +/* 10456C 7F0CFA3C 2508FFFD */ addiu $t0, $t0, -3 +/* 104570 7F0CFA40 10800029 */ beqz $a0, .L7F0CFAE8 +/* 104574 7F0CFA44 2484FFFF */ addiu $a0, $a0, -1 +/* 104578 7F0CFA48 0005C080 */ sll $t8, $a1, 2 +/* 10457C 7F0CFA4C 02181021 */ addu $v0, $s0, $t8 +.L7F0CFA50: +/* 104580 7F0CFA50 00801825 */ move $v1, $a0 +/* 104584 7F0CFA54 AC400000 */ sw $zero, ($v0) +/* 104588 7F0CFA58 24A50001 */ addiu $a1, $a1, 1 +/* 10458C 7F0CFA5C 24420004 */ addiu $v0, $v0, 4 +/* 104590 7F0CFA60 1480FFFB */ bnez $a0, .L7F0CFA50 +/* 104594 7F0CFA64 2484FFFF */ addiu $a0, $a0, -1 +/* 104598 7F0CFA68 10000020 */ b .L7F0CFAEC +/* 10459C 7F0CFA6C 00A7082B */ sltu $at, $a1, $a3 +.L7F0CFA70: +/* 1045A0 7F0CFA70 2D010007 */ sltiu $at, $t0, 7 +/* 1045A4 7F0CFA74 1020000C */ beqz $at, .L7F0CFAA8 +/* 1045A8 7F0CFA78 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) +/* 1045AC 7F0CFA7C 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +.L7F0CFA80: +/* 1045B0 7F0CFA80 8D420000 */ lw $v0, ($t2) +/* 1045B4 7F0CFA84 00627021 */ addu $t6, $v1, $v0 +/* 1045B8 7F0CFA88 91CF0000 */ lbu $t7, ($t6) +/* 1045BC 7F0CFA8C 24580001 */ addiu $t8, $v0, 1 +/* 1045C0 7F0CFA90 AD580000 */ sw $t8, ($t2) +/* 1045C4 7F0CFA94 010FC804 */ sllv $t9, $t7, $t0 +/* 1045C8 7F0CFA98 25080008 */ addiu $t0, $t0, 8 +/* 1045CC 7F0CFA9C 2D010007 */ sltiu $at, $t0, 7 +/* 1045D0 7F0CFAA0 1420FFF7 */ bnez $at, .L7F0CFA80 +/* 1045D4 7F0CFAA4 01394825 */ or $t1, $t1, $t9 +.L7F0CFAA8: +/* 1045D8 7F0CFAA8 3124007F */ andi $a0, $t1, 0x7f +/* 1045DC 7F0CFAAC 2484000B */ addiu $a0, $a0, 0xb +/* 1045E0 7F0CFAB0 00801825 */ move $v1, $a0 +/* 1045E4 7F0CFAB4 000971C2 */ srl $t6, $t1, 7 +/* 1045E8 7F0CFAB8 01C04825 */ move $t1, $t6 +/* 1045EC 7F0CFABC 2508FFF9 */ addiu $t0, $t0, -7 +/* 1045F0 7F0CFAC0 10800009 */ beqz $a0, .L7F0CFAE8 +/* 1045F4 7F0CFAC4 2484FFFF */ addiu $a0, $a0, -1 +/* 1045F8 7F0CFAC8 00057880 */ sll $t7, $a1, 2 +/* 1045FC 7F0CFACC 020F1021 */ addu $v0, $s0, $t7 +.L7F0CFAD0: +/* 104600 7F0CFAD0 00801825 */ move $v1, $a0 +/* 104604 7F0CFAD4 AC400000 */ sw $zero, ($v0) +/* 104608 7F0CFAD8 24A50001 */ addiu $a1, $a1, 1 +/* 10460C 7F0CFADC 24420004 */ addiu $v0, $v0, 4 +/* 104610 7F0CFAE0 1480FFFB */ bnez $a0, .L7F0CFAD0 +/* 104614 7F0CFAE4 2484FFFF */ addiu $a0, $a0, -1 +.L7F0CFAE8: +/* 104618 7F0CFAE8 00A7082B */ sltu $at, $a1, $a3 +.L7F0CFAEC: +/* 10461C 7F0CFAEC 5420FF7B */ bnezl $at, .L7F0CF8DC +/* 104620 7F0CFAF0 8FAE0548 */ lw $t6, 0x548($sp) +.L7F0CFAF4: +/* 104624 7F0CFAF4 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D364) +/* 104628 7F0CFAF8 3C198005 */ lui $t9, %hi(D_8004E9D4) +/* 10462C 7F0CFAFC 8F39E9D4 */ lw $t9, %lo(D_8004E9D4)($t9) +/* 104630 7F0CFB00 AC29D364 */ sw $t1, %lo(dword_CODE_bss_8008D364)($at) +/* 104634 7F0CFB04 3C188005 */ lui $t8, %hi(D_8004E934) +/* 104638 7F0CFB08 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D368) +/* 10463C 7F0CFB0C 2718E934 */ addiu $t8, %lo(D_8004E934) # addiu $t8, $t8, -0x16cc +/* 104640 7F0CFB10 3C078005 */ lui $a3, %hi(D_8004E8F4) +/* 104644 7F0CFB14 27AE0550 */ addiu $t6, $sp, 0x550 +/* 104648 7F0CFB18 27AF0548 */ addiu $t7, $sp, 0x548 +/* 10464C 7F0CFB1C AC28D368 */ sw $t0, %lo(dword_CODE_bss_8008D368)($at) +/* 104650 7F0CFB20 AFAF0018 */ sw $t7, 0x18($sp) +/* 104654 7F0CFB24 AFAE0014 */ sw $t6, 0x14($sp) +/* 104658 7F0CFB28 24E7E8F4 */ addiu $a3, %lo(D_8004E8F4) # addiu $a3, $a3, -0x170c +/* 10465C 7F0CFB2C AFB80010 */ sw $t8, 0x10($sp) +/* 104660 7F0CFB30 02002025 */ move $a0, $s0 +/* 104664 7F0CFB34 8FA5053C */ lw $a1, 0x53c($sp) +/* 104668 7F0CFB38 24060101 */ li $a2, 257 +/* 10466C 7F0CFB3C 0FC33A2C */ jal sub_GAME_7F0CE8B0 +/* 104670 7F0CFB40 AFB90548 */ sw $t9, 0x548($sp) +/* 104674 7F0CFB44 3C198005 */ lui $t9, %hi(D_8004E9D8) +/* 104678 7F0CFB48 8F39E9D8 */ lw $t9, %lo(D_8004E9D8)($t9) +/* 10467C 7F0CFB4C 8FB8053C */ lw $t8, 0x53c($sp) +/* 104680 7F0CFB50 3C0F8005 */ lui $t7, %hi(D_8004E990) +/* 104684 7F0CFB54 AFB90544 */ sw $t9, 0x544($sp) +/* 104688 7F0CFB58 00187080 */ sll $t6, $t8, 2 +/* 10468C 7F0CFB5C 27B80544 */ addiu $t8, $sp, 0x544 +/* 104690 7F0CFB60 27B9054C */ addiu $t9, $sp, 0x54c +/* 104694 7F0CFB64 25EFE990 */ addiu $t7, %lo(D_8004E990) # addiu $t7, $t7, -0x1670 +/* 104698 7F0CFB68 3C078005 */ lui $a3, %hi(D_8004E954) +/* 10469C 7F0CFB6C 24E7E954 */ addiu $a3, %lo(D_8004E954) # addiu $a3, $a3, -0x16ac +/* 1046A0 7F0CFB70 AFAF0010 */ sw $t7, 0x10($sp) +/* 1046A4 7F0CFB74 AFB90014 */ sw $t9, 0x14($sp) +/* 1046A8 7F0CFB78 AFB80018 */ sw $t8, 0x18($sp) +/* 1046AC 7F0CFB7C 020E2021 */ addu $a0, $s0, $t6 +/* 1046B0 7F0CFB80 8FA50538 */ lw $a1, 0x538($sp) +/* 1046B4 7F0CFB84 0FC33A2C */ jal sub_GAME_7F0CE8B0 +/* 1046B8 7F0CFB88 00003025 */ move $a2, $zero +/* 1046BC 7F0CFB8C 8FA40550 */ lw $a0, 0x550($sp) +/* 1046C0 7F0CFB90 8FA5054C */ lw $a1, 0x54c($sp) +/* 1046C4 7F0CFB94 8FA60548 */ lw $a2, 0x548($sp) +/* 1046C8 7F0CFB98 0FC33BBC */ jal sub_GAME_7F0CEEF0 +/* 1046CC 7F0CFB9C 8FA70544 */ lw $a3, 0x544($sp) +/* 1046D0 7F0CFBA0 8FBF002C */ lw $ra, 0x2c($sp) +/* 1046D4 7F0CFBA4 8FB00028 */ lw $s0, 0x28($sp) +/* 1046D8 7F0CFBA8 27BD0568 */ addiu $sp, $sp, 0x568 +/* 1046DC 7F0CFBAC 03E00008 */ jr $ra +/* 1046E0 7F0CFBB0 00001025 */ move $v0, $zero +) +#endif + + + + + +#ifdef NONMATCHING +void select_zlib_decompression_routine(void *arg0, s32 arg2) +{ + s32 temp_v1; + u32 temp_a1; + u32 temp_v1_2; + u32 temp_t3; + u32 temp_v1_3; + u32 temp_a1_2; + s32 temp_v0; + s32 phi_v1; + u32 phi_a1; + s32 phi_v1_2; + u32 phi_v1_3; + u32 phi_a1_2; + u32 phi_v1_4; + s32 phi_a2; + u32 phi_a1_3; + u32 phi_a1_4; + + phi_a1 = dword_CODE_bss_8008D364; + phi_v1_2 = dword_CODE_bss_8008D368; + phi_a2 = arg2; + if (dword_CODE_bss_8008D368 == 0) + { + phi_v1 = dword_CODE_bss_8008D368; + phi_a1_3 = dword_CODE_bss_8008D364; +block_2: + dword_CODE_bss_8008D358 = (s32) (dword_CODE_bss_8008D358 + 1); + temp_v1 = (phi_v1 + 8); + temp_a1 = (phi_a1_3 | (*(dword_CODE_bss_8008D350 + dword_CODE_bss_8008D358) << phi_v1)); + phi_v1 = temp_v1; + phi_a1 = temp_a1; + phi_v1_2 = temp_v1; + phi_a1_3 = temp_a1; + phi_a2 = dword_CODE_bss_8008D350; + if (temp_v1 == 0) + { + goto block_2; + } + } + temp_v1_2 = (phi_v1_2 + -1); + temp_t3 = ((u32) phi_a1 >> 1); + *arg0 = (s32) (phi_a1 & 1); + phi_a1_2 = temp_t3; + phi_v1_4 = temp_v1_2; + if (temp_v1_2 < 2U) + { + phi_v1_3 = temp_v1_2; + phi_a1_4 = temp_t3; +block_5: + dword_CODE_bss_8008D358 = (s32) (dword_CODE_bss_8008D358 + 1); + temp_v1_3 = (phi_v1_3 + 8); + temp_a1_2 = (phi_a1_4 | (*(dword_CODE_bss_8008D350 + dword_CODE_bss_8008D358) << phi_v1_3)); + phi_v1_3 = temp_v1_3; + phi_a1_2 = temp_a1_2; + phi_v1_4 = temp_v1_3; + phi_a2 = dword_CODE_bss_8008D350; + phi_a1_4 = temp_a1_2; + if (temp_v1_3 < 2U) + { + goto block_5; + } + } + temp_v0 = (phi_a1_2 & 3); + dword_CODE_bss_8008D364 = (u32) ((u32) phi_a1_2 >> 2); + dword_CODE_bss_8008D368 = (s32) (phi_v1_4 + -2); + if (temp_v0 == 2) + { + return zlib_decompressor_type2(&dword_CODE_bss_8008D358, phi_a1_2, phi_a2, arg0); + } + if (temp_v0 == 0) + { + return zlib_decompressor_type0(&dword_CODE_bss_8008D358, phi_a1_2, phi_a2, arg0); + } + if (temp_v0 == 1) + { + return zlib_decompressor_type1(&dword_CODE_bss_8008D358, phi_a1_2, phi_a2, arg0); + } + return 2; +} +#else +GLOBAL_ASM( +.text +glabel select_zlib_decompression_routine +/* 1046E4 7F0CFBB4 3C098009 */ lui $t1, %hi(dword_CODE_bss_8008D368) +/* 1046E8 7F0CFBB8 2529D368 */ addiu $t1, %lo(dword_CODE_bss_8008D368) # addiu $t1, $t1, -0x2c98 +/* 1046EC 7F0CFBBC 8D230000 */ lw $v1, ($t1) +/* 1046F0 7F0CFBC0 3C088009 */ lui $t0, %hi(dword_CODE_bss_8008D364) +/* 1046F4 7F0CFBC4 2508D364 */ addiu $t0, %lo(dword_CODE_bss_8008D364) # addiu $t0, $t0, -0x2c9c +/* 1046F8 7F0CFBC8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 1046FC 7F0CFBCC AFBF0014 */ sw $ra, 0x14($sp) +/* 104700 7F0CFBD0 00803825 */ move $a3, $a0 +/* 104704 7F0CFBD4 1460000E */ bnez $v1, .L7F0CFC10 +/* 104708 7F0CFBD8 8D050000 */ lw $a1, ($t0) +/* 10470C 7F0CFBDC 3C068009 */ lui $a2, %hi(dword_CODE_bss_8008D350) +/* 104710 7F0CFBE0 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008D358) +/* 104714 7F0CFBE4 2484D358 */ addiu $a0, %lo(dword_CODE_bss_8008D358) # addiu $a0, $a0, -0x2ca8 +/* 104718 7F0CFBE8 8CC6D350 */ lw $a2, %lo(dword_CODE_bss_8008D350)($a2) +.L7F0CFBEC: +/* 10471C 7F0CFBEC 8C820000 */ lw $v0, ($a0) +/* 104720 7F0CFBF0 00C27021 */ addu $t6, $a2, $v0 +/* 104724 7F0CFBF4 91CF0000 */ lbu $t7, ($t6) +/* 104728 7F0CFBF8 24590001 */ addiu $t9, $v0, 1 +/* 10472C 7F0CFBFC AC990000 */ sw $t9, ($a0) +/* 104730 7F0CFC00 006FC004 */ sllv $t8, $t7, $v1 +/* 104734 7F0CFC04 24630008 */ addiu $v1, $v1, 8 +/* 104738 7F0CFC08 1060FFF8 */ beqz $v1, .L7F0CFBEC +/* 10473C 7F0CFC0C 00B82825 */ or $a1, $a1, $t8 +.L7F0CFC10: +/* 104740 7F0CFC10 2463FFFF */ addiu $v1, $v1, -1 +/* 104744 7F0CFC14 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008D358) +/* 104748 7F0CFC18 30AA0001 */ andi $t2, $a1, 1 +/* 10474C 7F0CFC1C 00055842 */ srl $t3, $a1, 1 +/* 104750 7F0CFC20 2C610002 */ sltiu $at, $v1, 2 +/* 104754 7F0CFC24 2484D358 */ addiu $a0, %lo(dword_CODE_bss_8008D358) # addiu $a0, $a0, -0x2ca8 +/* 104758 7F0CFC28 ACEA0000 */ sw $t2, ($a3) +/* 10475C 7F0CFC2C 1020000D */ beqz $at, .L7F0CFC64 +/* 104760 7F0CFC30 01602825 */ move $a1, $t3 +/* 104764 7F0CFC34 3C068009 */ lui $a2, %hi(dword_CODE_bss_8008D350) +/* 104768 7F0CFC38 8CC6D350 */ lw $a2, %lo(dword_CODE_bss_8008D350)($a2) +.L7F0CFC3C: +/* 10476C 7F0CFC3C 8C820000 */ lw $v0, ($a0) +/* 104770 7F0CFC40 00C26021 */ addu $t4, $a2, $v0 +/* 104774 7F0CFC44 918D0000 */ lbu $t5, ($t4) +/* 104778 7F0CFC48 244F0001 */ addiu $t7, $v0, 1 +/* 10477C 7F0CFC4C AC8F0000 */ sw $t7, ($a0) +/* 104780 7F0CFC50 006D7004 */ sllv $t6, $t5, $v1 +/* 104784 7F0CFC54 24630008 */ addiu $v1, $v1, 8 +/* 104788 7F0CFC58 2C610002 */ sltiu $at, $v1, 2 +/* 10478C 7F0CFC5C 1420FFF7 */ bnez $at, .L7F0CFC3C +/* 104790 7F0CFC60 00AE2825 */ or $a1, $a1, $t6 +.L7F0CFC64: +/* 104794 7F0CFC64 30A20003 */ andi $v0, $a1, 3 +/* 104798 7F0CFC68 0005C082 */ srl $t8, $a1, 2 +/* 10479C 7F0CFC6C 2463FFFE */ addiu $v1, $v1, -2 +/* 1047A0 7F0CFC70 24010002 */ li $at, 2 +/* 1047A4 7F0CFC74 AD180000 */ sw $t8, ($t0) +/* 1047A8 7F0CFC78 14410005 */ bne $v0, $at, .L7F0CFC90 +/* 1047AC 7F0CFC7C AD230000 */ sw $v1, ($t1) +/* 1047B0 7F0CFC80 0FC33DA4 */ jal zlib_decompressor_type2 +/* 1047B4 7F0CFC84 00000000 */ nop +/* 1047B8 7F0CFC88 1000000F */ b .L7F0CFCC8 +/* 1047BC 7F0CFC8C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0CFC90: +/* 1047C0 7F0CFC90 14400005 */ bnez $v0, .L7F0CFCA8 +/* 1047C4 7F0CFC94 24010001 */ li $at, 1 +/* 1047C8 7F0CFC98 0FC33CE3 */ jal zlib_decompressor_type0 +/* 1047CC 7F0CFC9C 00000000 */ nop +/* 1047D0 7F0CFCA0 10000009 */ b .L7F0CFCC8 +/* 1047D4 7F0CFCA4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0CFCA8: +/* 1047D8 7F0CFCA8 54410006 */ bnel $v0, $at, .L7F0CFCC4 +/* 1047DC 7F0CFCAC 24020002 */ li $v0, 2 +/* 1047E0 7F0CFCB0 0FC33D4A */ jal zlib_decompressor_type1 +/* 1047E4 7F0CFCB4 00000000 */ nop +/* 1047E8 7F0CFCB8 10000003 */ b .L7F0CFCC8 +/* 1047EC 7F0CFCBC 8FBF0014 */ lw $ra, 0x14($sp) +/* 1047F0 7F0CFCC0 24020002 */ li $v0, 2 +.L7F0CFCC4: +/* 1047F4 7F0CFCC4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0CFCC8: +/* 1047F8 7F0CFCC8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 1047FC 7F0CFCCC 03E00008 */ jr $ra +/* 104800 7F0CFCD0 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void loop_to_decompress_entire_file(void) +{ + s32 sp34; + ? temp_ret; + u32 temp_t7; + u32 phi_s1; + u32 phi_v1; + + dword_CODE_bss_8008D35C = 0; + dword_CODE_bss_8008D368 = 0U; + dword_CODE_bss_8008D364 = 0; + phi_s1 = 0U; +block_1: + dword_CODE_bss_8008D36C = 0U; + temp_ret = select_zlib_decompression_routine(&sp34); + if (temp_ret != 0) + { + return temp_ret; + } + phi_s1 = phi_s1; + if ((u32) phi_s1 < (u32) dword_CODE_bss_8008D36C) + { + phi_s1 = dword_CODE_bss_8008D36C; + } + if (sp34 == 0) + { + goto block_1; + } + phi_v1 = dword_CODE_bss_8008D368; + if ((u32) dword_CODE_bss_8008D368 >= 8U) + { +block_7: + temp_t7 = (phi_v1 + -8); + dword_CODE_bss_8008D368 = temp_t7; + dword_CODE_bss_8008D358 = (s32) (dword_CODE_bss_8008D358 + -1); + phi_v1 = temp_t7; + if (temp_t7 >= 8U) + { + goto block_7; + } + } + return 0; +} +#else +GLOBAL_ASM( +.text +glabel loop_to_decompress_entire_file +/* 104804 7F0CFCD4 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 104808 7F0CFCD8 AFB2001C */ sw $s2, 0x1c($sp) +/* 10480C 7F0CFCDC 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D35C) +/* 104810 7F0CFCE0 3C128009 */ lui $s2, %hi(dword_CODE_bss_8008D368) +/* 104814 7F0CFCE4 AC20D35C */ sw $zero, %lo(dword_CODE_bss_8008D35C)($at) +/* 104818 7F0CFCE8 2652D368 */ addiu $s2, %lo(dword_CODE_bss_8008D368) # addiu $s2, $s2, -0x2c98 +/* 10481C 7F0CFCEC AFB00014 */ sw $s0, 0x14($sp) +/* 104820 7F0CFCF0 AFB30020 */ sw $s3, 0x20($sp) +/* 104824 7F0CFCF4 AFB10018 */ sw $s1, 0x18($sp) +/* 104828 7F0CFCF8 AE400000 */ sw $zero, ($s2) +/* 10482C 7F0CFCFC 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D364) +/* 104830 7F0CFD00 3C108009 */ lui $s0, %hi(dword_CODE_bss_8008D36C) +/* 104834 7F0CFD04 AFBF0024 */ sw $ra, 0x24($sp) +/* 104838 7F0CFD08 AC20D364 */ sw $zero, %lo(dword_CODE_bss_8008D364)($at) +/* 10483C 7F0CFD0C 00008825 */ move $s1, $zero +/* 104840 7F0CFD10 2610D36C */ addiu $s0, %lo(dword_CODE_bss_8008D36C) # addiu $s0, $s0, -0x2c94 +/* 104844 7F0CFD14 27B30034 */ addiu $s3, $sp, 0x34 +/* 104848 7F0CFD18 AE000000 */ sw $zero, ($s0) +.L7F0CFD1C: +/* 10484C 7F0CFD1C 0FC33EED */ jal select_zlib_decompression_routine +/* 104850 7F0CFD20 02602025 */ move $a0, $s3 +/* 104854 7F0CFD24 10400003 */ beqz $v0, .L7F0CFD34 +/* 104858 7F0CFD28 8FAE0034 */ lw $t6, 0x34($sp) +/* 10485C 7F0CFD2C 10000018 */ b .L7F0CFD90 +/* 104860 7F0CFD30 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0CFD34: +/* 104864 7F0CFD34 8E020000 */ lw $v0, ($s0) +/* 104868 7F0CFD38 0222082B */ sltu $at, $s1, $v0 +/* 10486C 7F0CFD3C 10200002 */ beqz $at, .L7F0CFD48 +/* 104870 7F0CFD40 00000000 */ nop +/* 104874 7F0CFD44 00408825 */ move $s1, $v0 +.L7F0CFD48: +/* 104878 7F0CFD48 51C0FFF4 */ beql $t6, $zero, .L7F0CFD1C +/* 10487C 7F0CFD4C AE000000 */ sw $zero, ($s0) +/* 104880 7F0CFD50 8E430000 */ lw $v1, ($s2) +/* 104884 7F0CFD54 3C028009 */ lui $v0, %hi(dword_CODE_bss_8008D358) +/* 104888 7F0CFD58 2442D358 */ addiu $v0, %lo(dword_CODE_bss_8008D358) # addiu $v0, $v0, -0x2ca8 +/* 10488C 7F0CFD5C 2C610008 */ sltiu $at, $v1, 8 +/* 104890 7F0CFD60 5420000A */ bnezl $at, .L7F0CFD8C +/* 104894 7F0CFD64 00001025 */ move $v0, $zero +.L7F0CFD68: +/* 104898 7F0CFD68 8C580000 */ lw $t8, ($v0) +/* 10489C 7F0CFD6C 246FFFF8 */ addiu $t7, $v1, -8 +/* 1048A0 7F0CFD70 2DE10008 */ sltiu $at, $t7, 8 +/* 1048A4 7F0CFD74 2719FFFF */ addiu $t9, $t8, -1 +/* 1048A8 7F0CFD78 AE4F0000 */ sw $t7, ($s2) +/* 1048AC 7F0CFD7C AC590000 */ sw $t9, ($v0) +/* 1048B0 7F0CFD80 1020FFF9 */ beqz $at, .L7F0CFD68 +/* 1048B4 7F0CFD84 01E01825 */ move $v1, $t7 +/* 1048B8 7F0CFD88 00001025 */ move $v0, $zero +.L7F0CFD8C: +/* 1048BC 7F0CFD8C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F0CFD90: +/* 1048C0 7F0CFD90 8FB00014 */ lw $s0, 0x14($sp) +/* 1048C4 7F0CFD94 8FB10018 */ lw $s1, 0x18($sp) +/* 1048C8 7F0CFD98 8FB2001C */ lw $s2, 0x1c($sp) +/* 1048CC 7F0CFD9C 8FB30020 */ lw $s3, 0x20($sp) +/* 1048D0 7F0CFDA0 03E00008 */ jr $ra +/* 1048D4 7F0CFDA4 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + diff --git a/src/game/zlib.h b/src/game/zlib.h new file mode 100644 index 0000000..6aa11c2 --- /dev/null +++ b/src/game/zlib.h @@ -0,0 +1,5 @@ +#ifndef _ZLIB_H_ +#define _ZLIB_H_ +#include "ultra64.h" + +#endif diff --git a/src/gspboot.s b/src/gspboot.s new file mode 100644 index 0000000..5b1f65e --- /dev/null +++ b/src/gspboot.s @@ -0,0 +1,21 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + +.section .text, "ax" +glabel gsp3DTextStart +.incbin "/bin/gspboot.text.bin" +glabel gsp3DTextEnd + +.section .data +glabel gsp3DDataStart +.incbin "/bin/gspboot.data.bin" +glabel gsp3DDataEnd +.section .rodata +.section .bss diff --git a/src/inflate/inflate.c b/src/inflate/inflate.c new file mode 100644 index 0000000..6cd0e1c --- /dev/null +++ b/src/inflate/inflate.c @@ -0,0 +1,1178 @@ +#include "ultra64.h" +#include "inflate/inflate.h" + +#define GETBYTE() (inbuf[inptr++]) +#define NEXTBYTE() (u8)GETBYTE() +#define NEEDBITS(n) {while(k<(n)){b|=((u32)NEXTBYTE())<>=(n);k-=(n);} + +#define BMAX 16 +#define N_MAX 288 + +//this file is modified from inflate.c found in gzip... +//does this create a license conflict in rare's original source tree? + +u8 *inbuf = 0; +u8 *outbuf = 0; + +u32 inptr = 0; +u32 wp = 0; + +struct huft *huftlist = NULL; +u8 border[0x14] = { + 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; + +u16 cplens[0x20] = { + 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, + 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; + +u8 cplext[0x20] = { + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, + 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99}; + +u16 cpdist[0x1E] = { + 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, + 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, + 8193, 12289, 16385, 24577}; + +u8 cpdext[0x20] = { + 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, + 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, + 12, 12, 13, 13}; + +u32 bb = 0; +u32 bk = 0; + +u16 mask_bits[0x12] = { + 0x0000, 0x0001, 0x0003, 0x0007, + 0x000F, 0x001F, 0x003F, 0x007F, + 0x00FF, 0x01FF, 0x03FF, 0x07FF, + 0x0FFF, 0x1FFF, 0x3FFF, 0x7FFF, + 0xFFFF, +}; + +u32 lbits = 9; +u32 dbits = 6; +u32 hufts = 0; + + +GLOBAL_ASM( +glabel huft_build +/* 033590 70200000 27BDFA10 */ addiu $sp, $sp, -0x5f0 +/* 033594 70200004 AFB20010 */ sw $s2, 0x10($sp) +/* 033598 70200008 00809025 */ move $s2, $a0 +/* 03359C 7020000C AFBF002C */ sw $ra, 0x2c($sp) +/* 0335A0 70200010 AFBE0028 */ sw $fp, 0x28($sp) +/* 0335A4 70200014 AFB70024 */ sw $s7, 0x24($sp) +/* 0335A8 70200018 AFB60020 */ sw $s6, 0x20($sp) +/* 0335AC 7020001C AFB5001C */ sw $s5, 0x1c($sp) +/* 0335B0 70200020 AFB40018 */ sw $s4, 0x18($sp) +/* 0335B4 70200024 AFB30014 */ sw $s3, 0x14($sp) +/* 0335B8 70200028 AFB1000C */ sw $s1, 0xc($sp) +/* 0335BC 7020002C AFB00008 */ sw $s0, 8($sp) +/* 0335C0 70200030 AFA605F8 */ sw $a2, 0x5f8($sp) +/* 0335C4 70200034 AFA705FC */ sw $a3, 0x5fc($sp) +/* 0335C8 70200038 AFA005A8 */ sw $zero, 0x5a8($sp) +/* 0335CC 7020003C 27A305AC */ addiu $v1, $sp, 0x5ac +/* 0335D0 70200040 27A205EC */ addiu $v0, $sp, 0x5ec +.L70200044: +/* 0335D4 70200044 24630010 */ addiu $v1, $v1, 0x10 +/* 0335D8 70200048 AC60FFF4 */ sw $zero, -0xc($v1) +/* 0335DC 7020004C AC60FFF8 */ sw $zero, -8($v1) +/* 0335E0 70200050 AC60FFFC */ sw $zero, -4($v1) +/* 0335E4 70200054 1462FFFB */ bne $v1, $v0, .L70200044 +/* 0335E8 70200058 AC60FFF0 */ sw $zero, -0x10($v1) +/* 0335EC 7020005C 30A20003 */ andi $v0, $a1, 3 +/* 0335F0 70200060 00021023 */ negu $v0, $v0 +/* 0335F4 70200064 0240F825 */ move $ra, $s2 +/* 0335F8 70200068 1040000D */ beqz $v0, .L702000A0 +/* 0335FC 7020006C 00A08025 */ move $s0, $a1 +/* 033600 70200070 00451821 */ addu $v1, $v0, $a1 +/* 033604 70200074 27A405A8 */ addiu $a0, $sp, 0x5a8 +.L70200078: +/* 033608 70200078 8FEE0000 */ lw $t6, ($ra) +/* 03360C 7020007C 2610FFFF */ addiu $s0, $s0, -1 +/* 033610 70200080 27FF0004 */ addiu $ra, $ra, 4 +/* 033614 70200084 000E7880 */ sll $t7, $t6, 2 +/* 033618 70200088 008F1021 */ addu $v0, $a0, $t7 +/* 03361C 7020008C 8C580000 */ lw $t8, ($v0) +/* 033620 70200090 27190001 */ addiu $t9, $t8, 1 +/* 033624 70200094 1470FFF8 */ bne $v1, $s0, .L70200078 +/* 033628 70200098 AC590000 */ sw $t9, ($v0) +/* 03362C 7020009C 1200001C */ beqz $s0, .L70200110 +.L702000A0: +/* 033630 702000A0 27A405A8 */ addiu $a0, $sp, 0x5a8 +.L702000A4: +/* 033634 702000A4 8FEE0000 */ lw $t6, ($ra) +/* 033638 702000A8 2610FFFC */ addiu $s0, $s0, -4 +/* 03363C 702000AC 27FF0010 */ addiu $ra, $ra, 0x10 +/* 033640 702000B0 000E7880 */ sll $t7, $t6, 2 +/* 033644 702000B4 008F1021 */ addu $v0, $a0, $t7 +/* 033648 702000B8 8C580000 */ lw $t8, ($v0) +/* 03364C 702000BC 27190001 */ addiu $t9, $t8, 1 +/* 033650 702000C0 AC590000 */ sw $t9, ($v0) +/* 033654 702000C4 8FEEFFF4 */ lw $t6, -0xc($ra) +/* 033658 702000C8 000E7880 */ sll $t7, $t6, 2 +/* 03365C 702000CC 008F1021 */ addu $v0, $a0, $t7 +/* 033660 702000D0 8C580000 */ lw $t8, ($v0) +/* 033664 702000D4 27190001 */ addiu $t9, $t8, 1 +/* 033668 702000D8 AC590000 */ sw $t9, ($v0) +/* 03366C 702000DC 8FEEFFF8 */ lw $t6, -8($ra) +/* 033670 702000E0 000E7880 */ sll $t7, $t6, 2 +/* 033674 702000E4 008F1021 */ addu $v0, $a0, $t7 +/* 033678 702000E8 8C580000 */ lw $t8, ($v0) +/* 03367C 702000EC 27190001 */ addiu $t9, $t8, 1 +/* 033680 702000F0 AC590000 */ sw $t9, ($v0) +/* 033684 702000F4 8FEEFFFC */ lw $t6, -4($ra) +/* 033688 702000F8 000E7880 */ sll $t7, $t6, 2 +/* 03368C 702000FC 008F1021 */ addu $v0, $a0, $t7 +/* 033690 70200100 8C580000 */ lw $t8, ($v0) +/* 033694 70200104 27190001 */ addiu $t9, $t8, 1 +/* 033698 70200108 1600FFE6 */ bnez $s0, .L702000A4 +/* 03369C 7020010C AC590000 */ sw $t9, ($v0) +.L70200110: +/* 0336A0 70200110 8FAE05A8 */ lw $t6, 0x5a8($sp) +/* 0336A4 70200114 8FA60608 */ lw $a2, 0x608($sp) +/* 0336A8 70200118 24070001 */ li $a3, 1 +/* 0336AC 7020011C 14AE0007 */ bne $a1, $t6, .L7020013C +/* 0336B0 70200120 27A805AC */ addiu $t0, $sp, 0x5ac +/* 0336B4 70200124 8FB60604 */ lw $s6, 0x604($sp) +/* 0336B8 70200128 8FA60608 */ lw $a2, 0x608($sp) +/* 0336BC 7020012C 00001025 */ move $v0, $zero +/* 0336C0 70200130 AEC00000 */ sw $zero, ($s6) +/* 0336C4 70200134 1000013B */ b .L70200624 +/* 0336C8 70200138 ACC00000 */ sw $zero, ($a2) +.L7020013C: +/* 0336CC 7020013C 8CD10000 */ lw $s1, ($a2) +/* 0336D0 70200140 24020011 */ li $v0, 17 +.L70200144: +/* 0336D4 70200144 8D0F0000 */ lw $t7, ($t0) +/* 0336D8 70200148 55E00005 */ bnezl $t7, .L70200160 +/* 0336DC 7020014C 0227082B */ sltu $at, $s1, $a3 +/* 0336E0 70200150 24E70001 */ addiu $a3, $a3, 1 +/* 0336E4 70200154 14E2FFFB */ bne $a3, $v0, .L70200144 +/* 0336E8 70200158 25080004 */ addiu $t0, $t0, 4 +/* 0336EC 7020015C 0227082B */ sltu $at, $s1, $a3 +.L70200160: +/* 0336F0 70200160 10200002 */ beqz $at, .L7020016C +/* 0336F4 70200164 00E0A825 */ move $s5, $a3 +/* 0336F8 70200168 00E08825 */ move $s1, $a3 +.L7020016C: +/* 0336FC 7020016C 24100010 */ li $s0, 16 +/* 033700 70200170 27A205E8 */ addiu $v0, $sp, 0x5e8 +.L70200174: +/* 033704 70200174 8C580000 */ lw $t8, ($v0) +/* 033708 70200178 57000005 */ bnezl $t8, .L70200190 +/* 03370C 7020017C 0211082B */ sltu $at, $s0, $s1 +/* 033710 70200180 2610FFFF */ addiu $s0, $s0, -1 +/* 033714 70200184 1600FFFB */ bnez $s0, .L70200174 +/* 033718 70200188 2442FFFC */ addiu $v0, $v0, -4 +/* 03371C 7020018C 0211082B */ sltu $at, $s0, $s1 +.L70200190: +/* 033720 70200190 10200002 */ beqz $at, .L7020019C +/* 033724 70200194 AFB005A0 */ sw $s0, 0x5a0($sp) +/* 033728 70200198 02008825 */ move $s1, $s0 +.L7020019C: +/* 03372C 7020019C 24190001 */ li $t9, 1 +/* 033730 702001A0 00F0082B */ sltu $at, $a3, $s0 +/* 033734 702001A4 ACD10000 */ sw $s1, ($a2) +/* 033738 702001A8 1020000B */ beqz $at, .L702001D8 +/* 03373C 702001AC 00F91804 */ sllv $v1, $t9, $a3 +/* 033740 702001B0 00107080 */ sll $t6, $s0, 2 +/* 033744 702001B4 27AF05A8 */ addiu $t7, $sp, 0x5a8 +/* 033748 702001B8 01CF3021 */ addu $a2, $t6, $t7 +.L702001BC: +/* 03374C 702001BC 8D180000 */ lw $t8, ($t0) +/* 033750 702001C0 25080004 */ addiu $t0, $t0, 4 +/* 033754 702001C4 0106082B */ sltu $at, $t0, $a2 +/* 033758 702001C8 00781823 */ subu $v1, $v1, $t8 +/* 03375C 702001CC 0003C840 */ sll $t9, $v1, 1 +/* 033760 702001D0 1420FFFA */ bnez $at, .L702001BC +/* 033764 702001D4 03201825 */ move $v1, $t9 +.L702001D8: +/* 033768 702001D8 8C480000 */ lw $t0, ($v0) +/* 03376C 702001DC 2610FFFF */ addiu $s0, $s0, -1 +/* 033770 702001E0 00003825 */ move $a3, $zero +/* 033774 702001E4 00681823 */ subu $v1, $v1, $t0 +/* 033778 702001E8 01037021 */ addu $t6, $t0, $v1 +/* 03377C 702001EC AC4E0000 */ sw $t6, ($v0) +/* 033780 702001F0 AFA00078 */ sw $zero, 0x78($sp) +/* 033784 702001F4 27BF05AC */ addiu $ra, $sp, 0x5ac +/* 033788 702001F8 27A6007C */ addiu $a2, $sp, 0x7c +/* 03378C 702001FC AFA505F4 */ sw $a1, 0x5f4($sp) +/* 033790 70200200 12000023 */ beqz $s0, .L70200290 +/* 033794 70200204 2442FFFC */ addiu $v0, $v0, -4 +/* 033798 70200208 32080003 */ andi $t0, $s0, 3 +/* 03379C 7020020C 00084023 */ negu $t0, $t0 +/* 0337A0 70200210 1100000E */ beqz $t0, .L7020024C +/* 0337A4 70200214 AFA505F4 */ sw $a1, 0x5f4($sp) +/* 0337A8 70200218 01104821 */ addu $t1, $t0, $s0 +/* 0337AC 7020021C 00097880 */ sll $t7, $t1, 2 +/* 0337B0 70200220 27B805A8 */ addiu $t8, $sp, 0x5a8 +/* 0337B4 70200224 01F82821 */ addu $a1, $t7, $t8 +.L70200228: +/* 0337B8 70200228 8FF90000 */ lw $t9, ($ra) +/* 0337BC 7020022C 2442FFFC */ addiu $v0, $v0, -4 +/* 0337C0 70200230 24C60004 */ addiu $a2, $a2, 4 +/* 0337C4 70200234 00F93821 */ addu $a3, $a3, $t9 +/* 0337C8 70200238 ACC7FFFC */ sw $a3, -4($a2) +/* 0337CC 7020023C 14A2FFFA */ bne $a1, $v0, .L70200228 +/* 0337D0 70200240 27FF0004 */ addiu $ra, $ra, 4 +/* 0337D4 70200244 27AE05A8 */ addiu $t6, $sp, 0x5a8 +/* 0337D8 70200248 104E0011 */ beq $v0, $t6, .L70200290 +.L7020024C: +/* 0337DC 7020024C 27A505A8 */ addiu $a1, $sp, 0x5a8 +.L70200250: +/* 0337E0 70200250 8FF80000 */ lw $t8, ($ra) +/* 0337E4 70200254 2442FFF0 */ addiu $v0, $v0, -0x10 +/* 0337E8 70200258 24C60010 */ addiu $a2, $a2, 0x10 +/* 0337EC 7020025C 00F83821 */ addu $a3, $a3, $t8 +/* 0337F0 70200260 ACC7FFF0 */ sw $a3, -0x10($a2) +/* 0337F4 70200264 8FF90004 */ lw $t9, 4($ra) +/* 0337F8 70200268 27FF0010 */ addiu $ra, $ra, 0x10 +/* 0337FC 7020026C 00F93821 */ addu $a3, $a3, $t9 +/* 033800 70200270 ACC7FFF4 */ sw $a3, -0xc($a2) +/* 033804 70200274 8FEEFFF8 */ lw $t6, -8($ra) +/* 033808 70200278 00EE3821 */ addu $a3, $a3, $t6 +/* 03380C 7020027C ACC7FFF8 */ sw $a3, -8($a2) +/* 033810 70200280 8FEFFFFC */ lw $t7, -4($ra) +/* 033814 70200284 00EF3821 */ addu $a3, $a3, $t7 +/* 033818 70200288 1445FFF1 */ bne $v0, $a1, .L70200250 +/* 03381C 7020028C ACC7FFFC */ sw $a3, -4($a2) +.L70200290: +/* 033820 70200290 8FAB05F4 */ lw $t3, 0x5f4($sp) +/* 033824 70200294 0240F825 */ move $ra, $s2 +/* 033828 70200298 00008025 */ move $s0, $zero +/* 03382C 7020029C 27A900BC */ addiu $t1, $sp, 0xbc +/* 033830 702002A0 27A60074 */ addiu $a2, $sp, 0x74 +/* 033834 702002A4 8FE70000 */ lw $a3, ($ra) +.L702002A8: +/* 033838 702002A8 27FF0004 */ addiu $ra, $ra, 4 +/* 03383C 702002AC 10E00008 */ beqz $a3, .L702002D0 +/* 033840 702002B0 0007C880 */ sll $t9, $a3, 2 +/* 033844 702002B4 00D91021 */ addu $v0, $a2, $t9 +/* 033848 702002B8 8C450000 */ lw $a1, ($v0) +/* 03384C 702002BC 00057080 */ sll $t6, $a1, 2 +/* 033850 702002C0 012E7821 */ addu $t7, $t1, $t6 +/* 033854 702002C4 ADF00000 */ sw $s0, ($t7) +/* 033858 702002C8 24B80001 */ addiu $t8, $a1, 1 +/* 03385C 702002CC AC580000 */ sw $t8, ($v0) +.L702002D0: +/* 033860 702002D0 26100001 */ addiu $s0, $s0, 1 +/* 033864 702002D4 020B082B */ sltu $at, $s0, $t3 +/* 033868 702002D8 5420FFF3 */ bnezl $at, .L702002A8 +/* 03386C 702002DC 8FE70000 */ lw $a3, ($ra) +/* 033870 702002E0 8FB905A0 */ lw $t9, 0x5a0($sp) +/* 033874 702002E4 AFA3006C */ sw $v1, 0x6c($sp) +/* 033878 702002E8 00008025 */ move $s0, $zero +/* 03387C 702002EC 0335082A */ slt $at, $t9, $s5 +/* 033880 702002F0 AFA00074 */ sw $zero, 0x74($sp) +/* 033884 702002F4 0120F825 */ move $ra, $t1 +/* 033888 702002F8 240CFFFF */ li $t4, -1 +/* 03388C 702002FC 00115023 */ negu $t2, $s1 +/* 033890 70200300 AFA0053C */ sw $zero, 0x53c($sp) +/* 033894 70200304 00003025 */ move $a2, $zero +/* 033898 70200308 142000BF */ bnez $at, .L70200608 +/* 03389C 7020030C 00004025 */ move $t0, $zero +/* 0338A0 70200310 00157080 */ sll $t6, $s5, 2 +/* 0338A4 70200314 27AF05A8 */ addiu $t7, $sp, 0x5a8 +/* 0338A8 70200318 01CFC021 */ addu $t8, $t6, $t7 +/* 0338AC 7020031C 3C1E7020 */ lui $fp, %hi(huftlist) # $fp, 0x7020 +/* 0338B0 70200320 3C137020 */ lui $s3, %hi(hufts) # $s3, 0x7020 +/* 0338B4 70200324 26731598 */ addiu $s3, %lo(hufts) # addiu $s3, $s3, 0x1598 +/* 0338B8 70200328 27DE1490 */ addiu $fp, %lo(huftlist) # addiu $fp, $fp, 0x1490 +/* 0338BC 7020032C AFB80050 */ sw $t8, 0x50($sp) +/* 0338C0 70200330 8FB60604 */ lw $s6, 0x604($sp) +/* 0338C4 70200334 27B4057C */ addiu $s4, $sp, 0x57c +.L70200338: +/* 0338C8 70200338 8FB90050 */ lw $t9, 0x50($sp) +/* 0338CC 7020033C 8FAF05F4 */ lw $t7, 0x5f4($sp) +/* 0338D0 70200340 000C6880 */ sll $t5, $t4, 2 +/* 0338D4 70200344 8F370000 */ lw $s7, ($t9) +/* 0338D8 70200348 27AE0074 */ addiu $t6, $sp, 0x74 +/* 0338DC 7020034C 000FC080 */ sll $t8, $t7, 2 +/* 0338E0 70200350 02E02825 */ move $a1, $s7 +/* 0338E4 70200354 12E000A4 */ beqz $s7, .L702005E8 +/* 0338E8 70200358 26F7FFFF */ addiu $s7, $s7, -1 +/* 0338EC 7020035C 01AE5821 */ addu $t3, $t5, $t6 +/* 0338F0 70200360 27B900BC */ addiu $t9, $sp, 0xbc +/* 0338F4 70200364 03197021 */ addu $t6, $t8, $t9 +/* 0338F8 70200368 24180001 */ li $t8, 1 +/* 0338FC 7020036C 26AF001F */ addiu $t7, $s5, 0x1f +/* 033900 70200370 01F8C804 */ sllv $t9, $t8, $t7 +/* 033904 70200374 AFB90034 */ sw $t9, 0x34($sp) +/* 033908 70200378 AFAE0038 */ sw $t6, 0x38($sp) +.L7020037C: +/* 03390C 7020037C 01511821 */ addu $v1, $t2, $s1 +/* 033910 70200380 0075082A */ slt $at, $v1, $s5 +/* 033914 70200384 10200047 */ beqz $at, .L702004A4 +/* 033918 70200388 26F20001 */ addiu $s2, $s7, 1 +/* 03391C 7020038C 27AE053C */ addiu $t6, $sp, 0x53c +/* 033920 70200390 01AE4821 */ addu $t1, $t5, $t6 +/* 033924 70200394 8FB805A0 */ lw $t8, 0x5a0($sp) +.L70200398: +/* 033928 70200398 258C0001 */ addiu $t4, $t4, 1 +/* 03392C 7020039C 25AD0004 */ addiu $t5, $t5, 4 +/* 033930 702003A0 03034023 */ subu $t0, $t8, $v1 +/* 033934 702003A4 0228082B */ sltu $at, $s1, $t0 +/* 033938 702003A8 25290004 */ addiu $t1, $t1, 4 +/* 03393C 702003AC 256B0004 */ addiu $t3, $t3, 4 +/* 033940 702003B0 10200002 */ beqz $at, .L702003BC +/* 033944 702003B4 00605025 */ move $t2, $v1 +/* 033948 702003B8 02204025 */ move $t0, $s1 +.L702003BC: +/* 03394C 702003BC 02AA1023 */ subu $v0, $s5, $t2 +/* 033950 702003C0 240F0001 */ li $t7, 1 +/* 033954 702003C4 004F2004 */ sllv $a0, $t7, $v0 +/* 033958 702003C8 0244082B */ sltu $at, $s2, $a0 +/* 03395C 702003CC 10200013 */ beqz $at, .L7020041C +/* 033960 702003D0 00403825 */ move $a3, $v0 +/* 033964 702003D4 24470001 */ addiu $a3, $v0, 1 +/* 033968 702003D8 00971823 */ subu $v1, $a0, $s7 +/* 03396C 702003DC 0015C880 */ sll $t9, $s5, 2 +/* 033970 702003E0 27AE05A8 */ addiu $t6, $sp, 0x5a8 +/* 033974 702003E4 00E8082B */ sltu $at, $a3, $t0 +/* 033978 702003E8 2463FFFF */ addiu $v1, $v1, -1 +/* 03397C 702003EC 1020000B */ beqz $at, .L7020041C +/* 033980 702003F0 032E3021 */ addu $a2, $t9, $t6 +.L702003F4: +/* 033984 702003F4 8CC40004 */ lw $a0, 4($a2) +/* 033988 702003F8 00031040 */ sll $v0, $v1, 1 +/* 03398C 702003FC 24C60004 */ addiu $a2, $a2, 4 +/* 033990 70200400 0082082B */ sltu $at, $a0, $v0 +/* 033994 70200404 50200006 */ beql $at, $zero, .L70200420 +/* 033998 70200408 8E630000 */ lw $v1, ($s3) +/* 03399C 7020040C 24E70001 */ addiu $a3, $a3, 1 +/* 0339A0 70200410 00E8082B */ sltu $at, $a3, $t0 +/* 0339A4 70200414 1420FFF7 */ bnez $at, .L702003F4 +/* 0339A8 70200418 00441823 */ subu $v1, $v0, $a0 +.L7020041C: +/* 0339AC 7020041C 8E630000 */ lw $v1, ($s3) +.L70200420: +/* 0339B0 70200420 8FD90000 */ lw $t9, ($fp) +/* 0339B4 70200424 24180001 */ li $t8, 1 +/* 0339B8 70200428 00F84004 */ sllv $t0, $t8, $a3 +/* 0339BC 7020042C 000378C0 */ sll $t7, $v1, 3 +/* 0339C0 70200430 00687021 */ addu $t6, $v1, $t0 +/* 0339C4 70200434 25D80001 */ addiu $t8, $t6, 1 +/* 0339C8 70200438 01F93021 */ addu $a2, $t7, $t9 +/* 0339CC 7020043C AE780000 */ sw $t8, ($s3) +/* 0339D0 70200440 24C40008 */ addiu $a0, $a2, 8 +/* 0339D4 70200444 AEC40000 */ sw $a0, ($s6) +/* 0339D8 70200448 ACC00004 */ sw $zero, 4($a2) +/* 0339DC 7020044C 24D60004 */ addiu $s6, $a2, 4 +/* 0339E0 70200450 00803025 */ move $a2, $a0 +/* 0339E4 70200454 1180000F */ beqz $t4, .L70200494 +/* 0339E8 70200458 AD240000 */ sw $a0, ($t1) +/* 0339EC 7020045C AD700000 */ sw $s0, ($t3) +/* 0339F0 70200460 24EF0010 */ addiu $t7, $a3, 0x10 +/* 0339F4 70200464 A3B1057D */ sb $s1, 0x57d($sp) +/* 0339F8 70200468 A3AF057C */ sb $t7, 0x57c($sp) +/* 0339FC 7020046C AFA40580 */ sw $a0, 0x580($sp) +/* 033A00 70200470 8D39FFFC */ lw $t9, -4($t1) +/* 033A04 70200474 01517023 */ subu $t6, $t2, $s1 +/* 033A08 70200478 8E810000 */ lw $at, ($s4) +/* 033A0C 7020047C 01D0C006 */ srlv $t8, $s0, $t6 +/* 033A10 70200480 001878C0 */ sll $t7, $t8, 3 +/* 033A14 70200484 032F7021 */ addu $t6, $t9, $t7 +/* 033A18 70200488 ADC10000 */ sw $at, ($t6) +/* 033A1C 7020048C 8E8F0004 */ lw $t7, 4($s4) +/* 033A20 70200490 ADCF0004 */ sw $t7, 4($t6) +.L70200494: +/* 033A24 70200494 01511821 */ addu $v1, $t2, $s1 +/* 033A28 70200498 0075082A */ slt $at, $v1, $s5 +/* 033A2C 7020049C 5420FFBE */ bnezl $at, .L70200398 +/* 033A30 702004A0 8FB805A0 */ lw $t8, 0x5a0($sp) +.L702004A4: +/* 033A34 702004A4 8FB80038 */ lw $t8, 0x38($sp) +/* 033A38 702004A8 24190001 */ li $t9, 1 +/* 033A3C 702004AC 02AA1823 */ subu $v1, $s5, $t2 +/* 033A40 702004B0 01592804 */ sllv $a1, $t9, $t2 +/* 033A44 702004B4 03F8082B */ sltu $at, $ra, $t8 +/* 033A48 702004B8 A3A3057D */ sb $v1, 0x57d($sp) +/* 033A4C 702004BC 14200004 */ bnez $at, .L702004D0 +/* 033A50 702004C0 24A5FFFF */ addiu $a1, $a1, -1 +/* 033A54 702004C4 240E0063 */ li $t6, 99 +/* 033A58 702004C8 10000020 */ b .L7020054C +/* 033A5C 702004CC A3AE057C */ sb $t6, 0x57c($sp) +.L702004D0: +/* 033A60 702004D0 8FE20000 */ lw $v0, ($ra) +/* 033A64 702004D4 8FAF05F8 */ lw $t7, 0x5f8($sp) +/* 033A68 702004D8 8FA405F8 */ lw $a0, 0x5f8($sp) +/* 033A6C 702004DC 8FB90600 */ lw $t9, 0x600($sp) +/* 033A70 702004E0 004F082B */ sltu $at, $v0, $t7 +/* 033A74 702004E4 1020000B */ beqz $at, .L70200514 +/* 033A78 702004E8 2C410100 */ sltiu $at, $v0, 0x100 +/* 033A7C 702004EC 10200004 */ beqz $at, .L70200500 +/* 033A80 702004F0 2418000F */ li $t8, 15 +/* 033A84 702004F4 24190010 */ li $t9, 16 +/* 033A88 702004F8 10000002 */ b .L70200504 +/* 033A8C 702004FC A3B9057C */ sb $t9, 0x57c($sp) +.L70200500: +/* 033A90 70200500 A3B8057C */ sb $t8, 0x57c($sp) +.L70200504: +/* 033A94 70200504 8FEE0000 */ lw $t6, ($ra) +/* 033A98 70200508 27FF0004 */ addiu $ra, $ra, 4 +/* 033A9C 7020050C 1000000F */ b .L7020054C +/* 033AA0 70200510 A7AE0580 */ sh $t6, 0x580($sp) +.L70200514: +/* 033AA4 70200514 00447823 */ subu $t7, $v0, $a0 +/* 033AA8 70200518 01F9C021 */ addu $t8, $t7, $t9 +/* 033AAC 7020051C 930E0000 */ lbu $t6, ($t8) +/* 033AB0 70200520 8FAF05FC */ lw $t7, 0x5fc($sp) +/* 033AB4 70200524 27FF0004 */ addiu $ra, $ra, 4 +/* 033AB8 70200528 A3AE057C */ sb $t6, 0x57c($sp) +/* 033ABC 7020052C 8FF9FFFC */ lw $t9, -4($ra) +/* 033AC0 70200530 0019C040 */ sll $t8, $t9, 1 +/* 033AC4 70200534 0004C840 */ sll $t9, $a0, 1 +/* 033AC8 70200538 01F87021 */ addu $t6, $t7, $t8 +/* 033ACC 7020053C 00197823 */ negu $t7, $t9 +/* 033AD0 70200540 01CFC021 */ addu $t8, $t6, $t7 +/* 033AD4 70200544 97190000 */ lhu $t9, ($t8) +/* 033AD8 70200548 A7B90580 */ sh $t9, 0x580($sp) +.L7020054C: +/* 033ADC 7020054C 01503806 */ srlv $a3, $s0, $t2 +/* 033AE0 70200550 00E8082B */ sltu $at, $a3, $t0 +/* 033AE4 70200554 1020000B */ beqz $at, .L70200584 +/* 033AE8 70200558 240E0001 */ li $t6, 1 +/* 033AEC 7020055C 006E1004 */ sllv $v0, $t6, $v1 +.L70200560: +/* 033AF0 70200560 8E810000 */ lw $at, ($s4) +/* 033AF4 70200564 000778C0 */ sll $t7, $a3, 3 +/* 033AF8 70200568 00CFC021 */ addu $t8, $a2, $t7 +/* 033AFC 7020056C AF010000 */ sw $at, ($t8) +/* 033B00 70200570 8E8E0004 */ lw $t6, 4($s4) +/* 033B04 70200574 00E23821 */ addu $a3, $a3, $v0 +/* 033B08 70200578 00E8082B */ sltu $at, $a3, $t0 +/* 033B0C 7020057C 1420FFF8 */ bnez $at, .L70200560 +/* 033B10 70200580 AF0E0004 */ sw $t6, 4($t8) +.L70200584: +/* 033B14 70200584 8FA70034 */ lw $a3, 0x34($sp) +/* 033B18 70200588 8D620000 */ lw $v0, ($t3) +/* 033B1C 7020058C 02077824 */ and $t7, $s0, $a3 +/* 033B20 70200590 11E00005 */ beqz $t7, .L702005A8 +.L70200594: +/* 033B24 70200594 0007C842 */ srl $t9, $a3, 1 +/* 033B28 70200598 02078026 */ xor $s0, $s0, $a3 +/* 033B2C 7020059C 0219C024 */ and $t8, $s0, $t9 +/* 033B30 702005A0 1700FFFC */ bnez $t8, .L70200594 +/* 033B34 702005A4 03203825 */ move $a3, $t9 +.L702005A8: +/* 033B38 702005A8 02078026 */ xor $s0, $s0, $a3 +/* 033B3C 702005AC 02057024 */ and $t6, $s0, $a1 +/* 033B40 702005B0 11C2000B */ beq $t6, $v0, .L702005E0 +/* 033B44 702005B4 02E02825 */ move $a1, $s7 +.L702005B8: +/* 033B48 702005B8 01515023 */ subu $t2, $t2, $s1 +/* 033B4C 702005BC 240F0001 */ li $t7, 1 +/* 033B50 702005C0 014FC804 */ sllv $t9, $t7, $t2 +/* 033B54 702005C4 8D6FFFFC */ lw $t7, -4($t3) +/* 033B58 702005C8 2738FFFF */ addiu $t8, $t9, -1 +/* 033B5C 702005CC 02187024 */ and $t6, $s0, $t8 +/* 033B60 702005D0 258CFFFF */ addiu $t4, $t4, -1 +/* 033B64 702005D4 25ADFFFC */ addiu $t5, $t5, -4 +/* 033B68 702005D8 15CFFFF7 */ bne $t6, $t7, .L702005B8 +/* 033B6C 702005DC 256BFFFC */ addiu $t3, $t3, -4 +.L702005E0: +/* 033B70 702005E0 16E0FF66 */ bnez $s7, .L7020037C +/* 033B74 702005E4 26F7FFFF */ addiu $s7, $s7, -1 +.L702005E8: +/* 033B78 702005E8 8FB90050 */ lw $t9, 0x50($sp) +/* 033B7C 702005EC 8FAE05A0 */ lw $t6, 0x5a0($sp) +/* 033B80 702005F0 26B50001 */ addiu $s5, $s5, 1 +/* 033B84 702005F4 27380004 */ addiu $t8, $t9, 4 +/* 033B88 702005F8 01D5082A */ slt $at, $t6, $s5 +/* 033B8C 702005FC 1020FF4E */ beqz $at, .L70200338 +/* 033B90 70200600 AFB80050 */ sw $t8, 0x50($sp) +/* 033B94 70200604 AFB60604 */ sw $s6, 0x604($sp) +.L70200608: +/* 033B98 70200608 8FA2006C */ lw $v0, 0x6c($sp) +/* 033B9C 7020060C 0002782B */ sltu $t7, $zero, $v0 +/* 033BA0 70200610 11E00004 */ beqz $t7, .L70200624 +/* 033BA4 70200614 01E01025 */ move $v0, $t7 +/* 033BA8 70200618 8FA205A0 */ lw $v0, 0x5a0($sp) +/* 033BAC 7020061C 38590001 */ xori $t9, $v0, 1 +/* 033BB0 70200620 0019102B */ sltu $v0, $zero, $t9 +.L70200624: +/* 033BB4 70200624 8FBF002C */ lw $ra, 0x2c($sp) +/* 033BB8 70200628 8FB00008 */ lw $s0, 8($sp) +/* 033BBC 7020062C 8FB1000C */ lw $s1, 0xc($sp) +/* 033BC0 70200630 8FB20010 */ lw $s2, 0x10($sp) +/* 033BC4 70200634 8FB30014 */ lw $s3, 0x14($sp) +/* 033BC8 70200638 8FB40018 */ lw $s4, 0x18($sp) +/* 033BCC 7020063C 8FB5001C */ lw $s5, 0x1c($sp) +/* 033BD0 70200640 8FB60020 */ lw $s6, 0x20($sp) +/* 033BD4 70200644 8FB70024 */ lw $s7, 0x24($sp) +/* 033BD8 70200648 8FBE0028 */ lw $fp, 0x28($sp) +/* 033BDC 7020064C 03E00008 */ jr $ra +/* 033BE0 70200650 27BD05F0 */ addiu $sp, $sp, 0x5f0 +) + +GLOBAL_ASM( +glabel inflate_codes +/* 033BE4 70200654 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 033BE8 70200658 3C0B7020 */ lui $t3, %hi(mask_bits) # $t3, 0x7020 +/* 033BEC 7020065C 256B156C */ addiu $t3, %lo(mask_bits) # addiu $t3, $t3, 0x156c +/* 033BF0 70200660 AFB10008 */ sw $s1, 8($sp) +/* 033BF4 70200664 AFB00004 */ sw $s0, 4($sp) +/* 033BF8 70200668 00067040 */ sll $t6, $a2, 1 +/* 033BFC 7020066C 0007C040 */ sll $t8, $a3, 1 +/* 033C00 70200670 00C08025 */ move $s0, $a2 +/* 033C04 70200674 00E08825 */ move $s1, $a3 +/* 033C08 70200678 3C097020 */ lui $t1, %hi(bb) # $t1, 0x7020 +/* 033C0C 7020067C 3C087020 */ lui $t0, %hi(bk) # $t0, 0x7020 +/* 033C10 70200680 3C037020 */ lui $v1, %hi(wp) # $v1, 0x7020 +/* 033C14 70200684 016E7821 */ addu $t7, $t3, $t6 +/* 033C18 70200688 0178C821 */ addu $t9, $t3, $t8 +/* 033C1C 7020068C 3C077020 */ lui $a3, %hi(inptr) # $a3, 0x7020 +/* 033C20 70200690 3C067020 */ lui $a2, %hi(outbuf) # $a2, 0x7020 +/* 033C24 70200694 AFB2000C */ sw $s2, 0xc($sp) +/* 033C28 70200698 AFA40010 */ sw $a0, 0x10($sp) +/* 033C2C 7020069C AFA50014 */ sw $a1, 0x14($sp) +/* 033C30 702006A0 8D291564 */ lw $t1, %lo(bb)($t1) +/* 033C34 702006A4 8D081568 */ lw $t0, %lo(bk)($t0) +/* 033C38 702006A8 8C63148C */ lw $v1, %lo(wp)($v1) +/* 033C3C 702006AC 95EC0000 */ lhu $t4, ($t7) +/* 033C40 702006B0 972D0000 */ lhu $t5, ($t9) +/* 033C44 702006B4 24C61484 */ addiu $a2, %lo(outbuf) # addiu $a2, $a2, 0x1484 +/* 033C48 702006B8 24E71488 */ addiu $a3, %lo(inptr) # addiu $a3, $a3, 0x1488 +.L702006BC: +/* 033C4C 702006BC 0110082B */ sltu $at, $t0, $s0 +.L702006C0: +/* 033C50 702006C0 1020000C */ beqz $at, .L702006F4 +/* 033C54 702006C4 3C027020 */ lui $v0, %hi(inbuf) # $v0, 0x7020 +/* 033C58 702006C8 8C421480 */ lw $v0, %lo(inbuf)($v0) +.L702006CC: +/* 033C5C 702006CC 8CF20000 */ lw $s2, ($a3) +/* 033C60 702006D0 00527021 */ addu $t6, $v0, $s2 +/* 033C64 702006D4 91CF0000 */ lbu $t7, ($t6) +/* 033C68 702006D8 26590001 */ addiu $t9, $s2, 1 +/* 033C6C 702006DC ACF90000 */ sw $t9, ($a3) +/* 033C70 702006E0 010FC004 */ sllv $t8, $t7, $t0 +/* 033C74 702006E4 25080008 */ addiu $t0, $t0, 8 +/* 033C78 702006E8 0110082B */ sltu $at, $t0, $s0 +/* 033C7C 702006EC 1420FFF7 */ bnez $at, .L702006CC +/* 033C80 702006F0 01384825 */ or $t1, $t1, $t8 +.L702006F4: +/* 033C84 702006F4 8FB80010 */ lw $t8, 0x10($sp) +/* 033C88 702006F8 012C7024 */ and $t6, $t1, $t4 +/* 033C8C 702006FC 000E78C0 */ sll $t7, $t6, 3 +/* 033C90 70200700 01F82821 */ addu $a1, $t7, $t8 +/* 033C94 70200704 90A40000 */ lbu $a0, ($a1) +/* 033C98 70200708 2C810011 */ sltiu $at, $a0, 0x11 +/* 033C9C 7020070C 5420001F */ bnezl $at, .L7020078C +/* 033CA0 70200710 90A20001 */ lbu $v0, 1($a1) +/* 033CA4 70200714 90A20001 */ lbu $v0, 1($a1) +.L70200718: +/* 033CA8 70200718 2484FFF0 */ addiu $a0, $a0, -0x10 +/* 033CAC 7020071C 01024023 */ subu $t0, $t0, $v0 +/* 033CB0 70200720 0104082B */ sltu $at, $t0, $a0 +/* 033CB4 70200724 1020000D */ beqz $at, .L7020075C +/* 033CB8 70200728 00494806 */ srlv $t1, $t1, $v0 +/* 033CBC 7020072C 3C027020 */ lui $v0, %hi(inbuf) # $v0, 0x7020 +/* 033CC0 70200730 8C421480 */ lw $v0, %lo(inbuf)($v0) +.L70200734: +/* 033CC4 70200734 8CF20000 */ lw $s2, ($a3) +/* 033CC8 70200738 0052C821 */ addu $t9, $v0, $s2 +/* 033CCC 7020073C 932E0000 */ lbu $t6, ($t9) +/* 033CD0 70200740 26580001 */ addiu $t8, $s2, 1 +/* 033CD4 70200744 ACF80000 */ sw $t8, ($a3) +/* 033CD8 70200748 010E7804 */ sllv $t7, $t6, $t0 +/* 033CDC 7020074C 25080008 */ addiu $t0, $t0, 8 +/* 033CE0 70200750 0104082B */ sltu $at, $t0, $a0 +/* 033CE4 70200754 1420FFF7 */ bnez $at, .L70200734 +/* 033CE8 70200758 012F4825 */ or $t1, $t1, $t7 +.L7020075C: +/* 033CEC 7020075C 0004C840 */ sll $t9, $a0, 1 +/* 033CF0 70200760 01797021 */ addu $t6, $t3, $t9 +/* 033CF4 70200764 95CF0000 */ lhu $t7, ($t6) +/* 033CF8 70200768 8CAE0004 */ lw $t6, 4($a1) +/* 033CFC 7020076C 01E9C024 */ and $t8, $t7, $t1 +/* 033D00 70200770 0018C8C0 */ sll $t9, $t8, 3 +/* 033D04 70200774 032E2821 */ addu $a1, $t9, $t6 +/* 033D08 70200778 90A40000 */ lbu $a0, ($a1) +/* 033D0C 7020077C 2C810011 */ sltiu $at, $a0, 0x11 +/* 033D10 70200780 5020FFE5 */ beql $at, $zero, .L70200718 +/* 033D14 70200784 90A20001 */ lbu $v0, 1($a1) +/* 033D18 70200788 90A20001 */ lbu $v0, 1($a1) +.L7020078C: +/* 033D1C 7020078C 24010010 */ li $at, 16 +/* 033D20 70200790 00494806 */ srlv $t1, $t1, $v0 +/* 033D24 70200794 14810007 */ bne $a0, $at, .L702007B4 +/* 033D28 70200798 01024023 */ subu $t0, $t0, $v0 +/* 033D2C 7020079C 8CD80000 */ lw $t8, ($a2) +/* 033D30 702007A0 94AF0004 */ lhu $t7, 4($a1) +/* 033D34 702007A4 0303C821 */ addu $t9, $t8, $v1 +/* 033D38 702007A8 24630001 */ addiu $v1, $v1, 1 +/* 033D3C 702007AC 1000FFC3 */ b .L702006BC +/* 033D40 702007B0 A32F0000 */ sb $t7, ($t9) +.L702007B4: +/* 033D44 702007B4 2401000F */ li $at, 15 +/* 033D48 702007B8 10810097 */ beq $a0, $at, .L70200A18 +/* 033D4C 702007BC 3C027020 */ lui $v0, %hi(inbuf) # $v0, 0x7020 +/* 033D50 702007C0 0104082B */ sltu $at, $t0, $a0 +/* 033D54 702007C4 5020000D */ beql $at, $zero, .L702007FC +/* 033D58 702007C8 00047040 */ sll $t6, $a0, 1 +/* 033D5C 702007CC 8C421480 */ lw $v0, %lo(inbuf)($v0) +.L702007D0: +/* 033D60 702007D0 8CF20000 */ lw $s2, ($a3) +/* 033D64 702007D4 00527021 */ addu $t6, $v0, $s2 +/* 033D68 702007D8 91D80000 */ lbu $t8, ($t6) +/* 033D6C 702007DC 26590001 */ addiu $t9, $s2, 1 +/* 033D70 702007E0 ACF90000 */ sw $t9, ($a3) +/* 033D74 702007E4 01187804 */ sllv $t7, $t8, $t0 +/* 033D78 702007E8 25080008 */ addiu $t0, $t0, 8 +/* 033D7C 702007EC 0104082B */ sltu $at, $t0, $a0 +/* 033D80 702007F0 1420FFF7 */ bnez $at, .L702007D0 +/* 033D84 702007F4 012F4825 */ or $t1, $t1, $t7 +/* 033D88 702007F8 00047040 */ sll $t6, $a0, 1 +.L702007FC: +/* 033D8C 702007FC 016EC021 */ addu $t8, $t3, $t6 +/* 033D90 70200800 970F0000 */ lhu $t7, ($t8) +/* 033D94 70200804 94AE0004 */ lhu $t6, 4($a1) +/* 033D98 70200808 01044023 */ subu $t0, $t0, $a0 +/* 033D9C 7020080C 0111082B */ sltu $at, $t0, $s1 +/* 033DA0 70200810 01E9C824 */ and $t9, $t7, $t1 +/* 033DA4 70200814 00894806 */ srlv $t1, $t1, $a0 +/* 033DA8 70200818 1020000D */ beqz $at, .L70200850 +/* 033DAC 7020081C 032E5021 */ addu $t2, $t9, $t6 +/* 033DB0 70200820 3C027020 */ lui $v0, %hi(inbuf) # $v0, 0x7020 +/* 033DB4 70200824 8C421480 */ lw $v0, %lo(inbuf)($v0) +.L70200828: +/* 033DB8 70200828 8CF20000 */ lw $s2, ($a3) +/* 033DBC 7020082C 0052C021 */ addu $t8, $v0, $s2 +/* 033DC0 70200830 930F0000 */ lbu $t7, ($t8) +/* 033DC4 70200834 264E0001 */ addiu $t6, $s2, 1 +/* 033DC8 70200838 ACEE0000 */ sw $t6, ($a3) +/* 033DCC 7020083C 010FC804 */ sllv $t9, $t7, $t0 +/* 033DD0 70200840 25080008 */ addiu $t0, $t0, 8 +/* 033DD4 70200844 0111082B */ sltu $at, $t0, $s1 +/* 033DD8 70200848 1420FFF7 */ bnez $at, .L70200828 +/* 033DDC 7020084C 01394825 */ or $t1, $t1, $t9 +.L70200850: +/* 033DE0 70200850 8FB90014 */ lw $t9, 0x14($sp) +/* 033DE4 70200854 012DC024 */ and $t8, $t1, $t5 +/* 033DE8 70200858 001878C0 */ sll $t7, $t8, 3 +/* 033DEC 7020085C 01F92821 */ addu $a1, $t7, $t9 +/* 033DF0 70200860 90A40000 */ lbu $a0, ($a1) +/* 033DF4 70200864 2C810011 */ sltiu $at, $a0, 0x11 +/* 033DF8 70200868 5420001F */ bnezl $at, .L702008E8 +/* 033DFC 7020086C 90A20001 */ lbu $v0, 1($a1) +/* 033E00 70200870 90A20001 */ lbu $v0, 1($a1) +.L70200874: +/* 033E04 70200874 2484FFF0 */ addiu $a0, $a0, -0x10 +/* 033E08 70200878 01024023 */ subu $t0, $t0, $v0 +/* 033E0C 7020087C 0104082B */ sltu $at, $t0, $a0 +/* 033E10 70200880 1020000D */ beqz $at, .L702008B8 +/* 033E14 70200884 00494806 */ srlv $t1, $t1, $v0 +/* 033E18 70200888 3C027020 */ lui $v0, %hi(inbuf) # $v0, 0x7020 +/* 033E1C 7020088C 8C421480 */ lw $v0, %lo(inbuf)($v0) +.L70200890: +/* 033E20 70200890 8CF20000 */ lw $s2, ($a3) +/* 033E24 70200894 00527021 */ addu $t6, $v0, $s2 +/* 033E28 70200898 91D80000 */ lbu $t8, ($t6) +/* 033E2C 7020089C 26590001 */ addiu $t9, $s2, 1 +/* 033E30 702008A0 ACF90000 */ sw $t9, ($a3) +/* 033E34 702008A4 01187804 */ sllv $t7, $t8, $t0 +/* 033E38 702008A8 25080008 */ addiu $t0, $t0, 8 +/* 033E3C 702008AC 0104082B */ sltu $at, $t0, $a0 +/* 033E40 702008B0 1420FFF7 */ bnez $at, .L70200890 +/* 033E44 702008B4 012F4825 */ or $t1, $t1, $t7 +.L702008B8: +/* 033E48 702008B8 00047040 */ sll $t6, $a0, 1 +/* 033E4C 702008BC 016EC021 */ addu $t8, $t3, $t6 +/* 033E50 702008C0 970F0000 */ lhu $t7, ($t8) +/* 033E54 702008C4 8CB80004 */ lw $t8, 4($a1) +/* 033E58 702008C8 01E9C824 */ and $t9, $t7, $t1 +/* 033E5C 702008CC 001970C0 */ sll $t6, $t9, 3 +/* 033E60 702008D0 01D82821 */ addu $a1, $t6, $t8 +/* 033E64 702008D4 90A40000 */ lbu $a0, ($a1) +/* 033E68 702008D8 2C810011 */ sltiu $at, $a0, 0x11 +/* 033E6C 702008DC 5020FFE5 */ beql $at, $zero, .L70200874 +/* 033E70 702008E0 90A20001 */ lbu $v0, 1($a1) +/* 033E74 702008E4 90A20001 */ lbu $v0, 1($a1) +.L702008E8: +/* 033E78 702008E8 01024023 */ subu $t0, $t0, $v0 +/* 033E7C 702008EC 0104082B */ sltu $at, $t0, $a0 +/* 033E80 702008F0 1020000D */ beqz $at, .L70200928 +/* 033E84 702008F4 00494806 */ srlv $t1, $t1, $v0 +/* 033E88 702008F8 3C027020 */ lui $v0, %hi(inbuf) # $v0, 0x7020 +/* 033E8C 702008FC 8C421480 */ lw $v0, %lo(inbuf)($v0) +.L70200900: +/* 033E90 70200900 8CF20000 */ lw $s2, ($a3) +/* 033E94 70200904 00527821 */ addu $t7, $v0, $s2 +/* 033E98 70200908 91F90000 */ lbu $t9, ($t7) +/* 033E9C 7020090C 26580001 */ addiu $t8, $s2, 1 +/* 033EA0 70200910 ACF80000 */ sw $t8, ($a3) +/* 033EA4 70200914 01197004 */ sllv $t6, $t9, $t0 +/* 033EA8 70200918 25080008 */ addiu $t0, $t0, 8 +/* 033EAC 7020091C 0104082B */ sltu $at, $t0, $a0 +/* 033EB0 70200920 1420FFF7 */ bnez $at, .L70200900 +/* 033EB4 70200924 012E4825 */ or $t1, $t1, $t6 +.L70200928: +/* 033EB8 70200928 94AF0004 */ lhu $t7, 4($a1) +/* 033EBC 7020092C 00047040 */ sll $t6, $a0, 1 +/* 033EC0 70200930 016EC021 */ addu $t8, $t3, $t6 +/* 033EC4 70200934 006FC823 */ subu $t9, $v1, $t7 +/* 033EC8 70200938 970F0000 */ lhu $t7, ($t8) +/* 033ECC 7020093C 01044023 */ subu $t0, $t0, $a0 +/* 033ED0 70200940 01E97024 */ and $t6, $t7, $t1 +/* 033ED4 70200944 032E1023 */ subu $v0, $t9, $t6 +/* 033ED8 70200948 00894806 */ srlv $t1, $t1, $a0 +/* 033EDC 7020094C 01402025 */ move $a0, $t2 +.L70200950: +/* 033EE0 70200950 30920003 */ andi $s2, $a0, 3 +/* 033EE4 70200954 00129023 */ negu $s2, $s2 +/* 033EE8 70200958 1240000D */ beqz $s2, .L70200990 +/* 033EEC 7020095C 00005025 */ move $t2, $zero +/* 033EF0 70200960 02442821 */ addu $a1, $s2, $a0 +.L70200964: +/* 033EF4 70200964 8CD20000 */ lw $s2, ($a2) +/* 033EF8 70200968 2484FFFF */ addiu $a0, $a0, -1 +/* 033EFC 7020096C 0052C021 */ addu $t8, $v0, $s2 +/* 033F00 70200970 930F0000 */ lbu $t7, ($t8) +/* 033F04 70200974 0243C821 */ addu $t9, $s2, $v1 +/* 033F08 70200978 24630001 */ addiu $v1, $v1, 1 +/* 033F0C 7020097C 24420001 */ addiu $v0, $v0, 1 +/* 033F10 70200980 14A4FFF8 */ bne $a1, $a0, .L70200964 +/* 033F14 70200984 A32F0000 */ sb $t7, ($t9) +/* 033F18 70200988 1080001F */ beqz $a0, .L70200A08 +/* 033F1C 7020098C 00000000 */ nop +.L70200990: +/* 033F20 70200990 8CD20000 */ lw $s2, ($a2) +/* 033F24 70200994 2484FFFC */ addiu $a0, $a0, -4 +/* 033F28 70200998 00527021 */ addu $t6, $v0, $s2 +/* 033F2C 7020099C 91D80000 */ lbu $t8, ($t6) +/* 033F30 702009A0 02437821 */ addu $t7, $s2, $v1 +/* 033F34 702009A4 24420001 */ addiu $v0, $v0, 1 +/* 033F38 702009A8 A1F80000 */ sb $t8, ($t7) +/* 033F3C 702009AC 8CD20000 */ lw $s2, ($a2) +/* 033F40 702009B0 24630001 */ addiu $v1, $v1, 1 +/* 033F44 702009B4 0052C821 */ addu $t9, $v0, $s2 +/* 033F48 702009B8 932E0000 */ lbu $t6, ($t9) +/* 033F4C 702009BC 0243C021 */ addu $t8, $s2, $v1 +/* 033F50 702009C0 24420001 */ addiu $v0, $v0, 1 +/* 033F54 702009C4 A30E0000 */ sb $t6, ($t8) +/* 033F58 702009C8 8CD20000 */ lw $s2, ($a2) +/* 033F5C 702009CC 24630001 */ addiu $v1, $v1, 1 +/* 033F60 702009D0 00527821 */ addu $t7, $v0, $s2 +/* 033F64 702009D4 91F90000 */ lbu $t9, ($t7) +/* 033F68 702009D8 02437021 */ addu $t6, $s2, $v1 +/* 033F6C 702009DC 24420001 */ addiu $v0, $v0, 1 +/* 033F70 702009E0 A1D90000 */ sb $t9, ($t6) +/* 033F74 702009E4 8CD20000 */ lw $s2, ($a2) +/* 033F78 702009E8 24630001 */ addiu $v1, $v1, 1 +/* 033F7C 702009EC 0052C021 */ addu $t8, $v0, $s2 +/* 033F80 702009F0 930F0000 */ lbu $t7, ($t8) +/* 033F84 702009F4 0243C821 */ addu $t9, $s2, $v1 +/* 033F88 702009F8 24630001 */ addiu $v1, $v1, 1 +/* 033F8C 702009FC 24420001 */ addiu $v0, $v0, 1 +/* 033F90 70200A00 1480FFE3 */ bnez $a0, .L70200990 +/* 033F94 70200A04 A32F0000 */ sb $t7, ($t9) +.L70200A08: +/* 033F98 70200A08 5540FFD1 */ bnezl $t2, .L70200950 +/* 033F9C 70200A0C 01402025 */ move $a0, $t2 +/* 033FA0 70200A10 1000FF2B */ b .L702006C0 +/* 033FA4 70200A14 0110082B */ sltu $at, $t0, $s0 +.L70200A18: +/* 033FA8 70200A18 3C017020 */ lui $at, %hi(wp) # $at, 0x7020 +/* 033FAC 70200A1C AC23148C */ sw $v1, %lo(wp)($at) +/* 033FB0 70200A20 3C017020 */ lui $at, %hi(bb) # $at, 0x7020 +/* 033FB4 70200A24 AC291564 */ sw $t1, %lo(bb)($at) +/* 033FB8 70200A28 3C017020 */ lui $at, %hi(bk) # $at, 0x7020 +/* 033FBC 70200A2C 8FB00004 */ lw $s0, 4($sp) +/* 033FC0 70200A30 8FB10008 */ lw $s1, 8($sp) +/* 033FC4 70200A34 8FB2000C */ lw $s2, 0xc($sp) +/* 033FC8 70200A38 AC281568 */ sw $t0, %lo(bk)($at) +/* 033FCC 70200A3C 27BD0010 */ addiu $sp, $sp, 0x10 +/* 033FD0 70200A40 03E00008 */ jr $ra +/* 033FD4 70200A44 00001025 */ move $v0, $zero +) + + + +s32 inflate_stored(void) +{ + s32 n; /* number of bytes in block */ + s32 w; /* current window position */ + register u32 b; /* bit buffer */ + register u32 k; /* number of bits in bit buffer */ + + /* make local copies of globals */ + b = bb; /* initialize bit buffer */ + k = bk; + w = wp; /* initialize window position */ + + /* go to byte boundary */ + n = k & 7; + DUMPBITS(n); + + /* get the length and its complement */ + NEEDBITS(16) + n = (b & 0xffff); + DUMPBITS(16) + + NEEDBITS(16) + DUMPBITS(16) + + /* read and output the compressed data */ + while (n--) { + NEEDBITS(8) + outbuf[w++] = (u8)b; + + DUMPBITS(8) + } + + /* restore the globals from the locals */ + wp = w; /* restore global window pointer */ + bb = b; /* restore global bit buffer */ + bk = k; + return 0; +} + + +#ifdef NONMATCHING +s32 inflate_fixed(void) +{ + s32 i; /* temporary variable */ + struct huft *tl; /* literal/length code table */ + struct huft *td; /* distance code table */ + s32 bl; /* lookup bits for tl */ + s32 bd; /* lookup bits for td */ + u32 l[288]; /* length list for huft_build */ + + /* set up literal table */ + for (i = 0; i < 144; i++) { + l[i] = 8; + } + for (; i < 256; i++) { + l[i] = 9; + } + for (; i < 280; i++) { + l[i] = 7; + } + for (; i < 288; i++) { + l[i] = 8; + } + + bl = 7; + + huft_build(l, 288, 257, cplens, cplext, &tl, &bl); + + /* set up distance table */ + for (i = 0; i < 30; i++) { + l[i] = 5; + } + + bd = 5; + + /* decompress until an end-of-block code */ + huft_build(l, 30, 0, cpdist, cpdext, &td, &bd); + + inflate_codes(tl, td, bl, bd); + + return 0; +} +#else +GLOBAL_ASM( +glabel inflate_fixed +/* 03412C 70200B9C 27BDFB40 */ addiu $sp, $sp, -0x4c0 +/* 034130 70200BA0 AFBF0024 */ sw $ra, 0x24($sp) +/* 034134 70200BA4 27A2002C */ addiu $v0, $sp, 0x2c +/* 034138 70200BA8 27A4026C */ addiu $a0, $sp, 0x26c +/* 03413C 70200BAC 24030008 */ li $v1, 8 +.L70200BB0: +/* 034140 70200BB0 24420010 */ addiu $v0, $v0, 0x10 +/* 034144 70200BB4 AC43FFF4 */ sw $v1, -0xc($v0) +/* 034148 70200BB8 AC43FFF8 */ sw $v1, -8($v0) +/* 03414C 70200BBC AC43FFFC */ sw $v1, -4($v0) +/* 034150 70200BC0 1444FFFB */ bne $v0, $a0, .L70200BB0 +/* 034154 70200BC4 AC43FFF0 */ sw $v1, -0x10($v0) +/* 034158 70200BC8 27AE042C */ addiu $t6, $sp, 0x42c +/* 03415C 70200BCC 004E082B */ sltu $at, $v0, $t6 +/* 034160 70200BD0 10200007 */ beqz $at, .L70200BF0 +/* 034164 70200BD4 27AF048C */ addiu $t7, $sp, 0x48c +/* 034168 70200BD8 27A5042C */ addiu $a1, $sp, 0x42c +/* 03416C 70200BDC 24040009 */ li $a0, 9 +.L70200BE0: +/* 034170 70200BE0 24420004 */ addiu $v0, $v0, 4 +/* 034174 70200BE4 0045082B */ sltu $at, $v0, $a1 +/* 034178 70200BE8 1420FFFD */ bnez $at, .L70200BE0 +/* 03417C 70200BEC AC44FFFC */ sw $a0, -4($v0) +.L70200BF0: +/* 034180 70200BF0 004F082B */ sltu $at, $v0, $t7 +/* 034184 70200BF4 10200007 */ beqz $at, .L70200C14 +/* 034188 70200BF8 27B804AC */ addiu $t8, $sp, 0x4ac +/* 03418C 70200BFC 27A5048C */ addiu $a1, $sp, 0x48c +/* 034190 70200C00 24040007 */ li $a0, 7 +.L70200C04: +/* 034194 70200C04 24420004 */ addiu $v0, $v0, 4 +/* 034198 70200C08 0045082B */ sltu $at, $v0, $a1 +/* 03419C 70200C0C 1420FFFD */ bnez $at, .L70200C04 +/* 0341A0 70200C10 AC44FFFC */ sw $a0, -4($v0) +.L70200C14: +/* 0341A4 70200C14 0058082B */ sltu $at, $v0, $t8 +/* 0341A8 70200C18 10200006 */ beqz $at, .L70200C34 +/* 0341AC 70200C1C 24190007 */ li $t9, 7 +/* 0341B0 70200C20 27A404AC */ addiu $a0, $sp, 0x4ac +.L70200C24: +/* 0341B4 70200C24 24420004 */ addiu $v0, $v0, 4 +/* 0341B8 70200C28 0044082B */ sltu $at, $v0, $a0 +/* 0341BC 70200C2C 1420FFFD */ bnez $at, .L70200C24 +/* 0341C0 70200C30 AC43FFFC */ sw $v1, -4($v0) +.L70200C34: +/* 0341C4 70200C34 3C087020 */ lui $t0, %hi(cplext) # $t0, 0x7020 +/* 0341C8 70200C38 250814E8 */ addiu $t0, %lo(cplext) # addiu $t0, $t0, 0x14e8 +/* 0341CC 70200C3C 3C077020 */ lui $a3, %hi(cplens) # $a3, 0x7020 +/* 0341D0 70200C40 27A904B8 */ addiu $t1, $sp, 0x4b8 +/* 0341D4 70200C44 27AA04B0 */ addiu $t2, $sp, 0x4b0 +/* 0341D8 70200C48 AFB904B0 */ sw $t9, 0x4b0($sp) +/* 0341DC 70200C4C AFAA0018 */ sw $t2, 0x18($sp) +/* 0341E0 70200C50 AFA90014 */ sw $t1, 0x14($sp) +/* 0341E4 70200C54 24E714A8 */ addiu $a3, %lo(cplens) # addiu $a3, $a3, 0x14a8 +/* 0341E8 70200C58 AFA80010 */ sw $t0, 0x10($sp) +/* 0341EC 70200C5C 27A4002C */ addiu $a0, $sp, 0x2c +/* 0341F0 70200C60 24050120 */ li $a1, 288 +/* 0341F4 70200C64 0C080000 */ jal huft_build +/* 0341F8 70200C68 24060101 */ li $a2, 257 +/* 0341FC 70200C6C 240B0005 */ li $t3, 5 +/* 034200 70200C70 240C0005 */ li $t4, 5 +/* 034204 70200C74 AFAC0030 */ sw $t4, 0x30($sp) +/* 034208 70200C78 AFAB002C */ sw $t3, 0x2c($sp) +/* 03420C 70200C7C 27A20034 */ addiu $v0, $sp, 0x34 +/* 034210 70200C80 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 034214 70200C84 24030005 */ li $v1, 5 +.L70200C88: +/* 034218 70200C88 24420010 */ addiu $v0, $v0, 0x10 +/* 03421C 70200C8C AC43FFF4 */ sw $v1, -0xc($v0) +/* 034220 70200C90 AC43FFF8 */ sw $v1, -8($v0) +/* 034224 70200C94 AC43FFFC */ sw $v1, -4($v0) +/* 034228 70200C98 1444FFFB */ bne $v0, $a0, .L70200C88 +/* 03422C 70200C9C AC43FFF0 */ sw $v1, -0x10($v0) +/* 034230 70200CA0 3C0E7020 */ lui $t6, %hi(cpdext) # $t6, 0x7020 +/* 034234 70200CA4 240D0005 */ li $t5, 5 +/* 034238 70200CA8 25CE1544 */ addiu $t6, %lo(cpdext) # addiu $t6, $t6, 0x1544 +/* 03423C 70200CAC 3C077020 */ lui $a3, %hi(cpdist) # $a3, 0x7020 +/* 034240 70200CB0 27AF04B4 */ addiu $t7, $sp, 0x4b4 +/* 034244 70200CB4 27B804AC */ addiu $t8, $sp, 0x4ac +/* 034248 70200CB8 AFAD04AC */ sw $t5, 0x4ac($sp) +/* 03424C 70200CBC AFB80018 */ sw $t8, 0x18($sp) +/* 034250 70200CC0 AFAF0014 */ sw $t7, 0x14($sp) +/* 034254 70200CC4 24E71508 */ addiu $a3, %lo(cpdist) # addiu $a3, $a3, 0x1508 +/* 034258 70200CC8 AFAE0010 */ sw $t6, 0x10($sp) +/* 03425C 70200CCC 27A4002C */ addiu $a0, $sp, 0x2c +/* 034260 70200CD0 2405001E */ li $a1, 30 +/* 034264 70200CD4 0C080000 */ jal huft_build +/* 034268 70200CD8 00003025 */ move $a2, $zero +/* 03426C 70200CDC 8FA404B8 */ lw $a0, 0x4b8($sp) +/* 034270 70200CE0 8FA504B4 */ lw $a1, 0x4b4($sp) +/* 034274 70200CE4 8FA604B0 */ lw $a2, 0x4b0($sp) +/* 034278 70200CE8 0C080195 */ jal inflate_codes +/* 03427C 70200CEC 8FA704AC */ lw $a3, 0x4ac($sp) +/* 034280 70200CF0 8FBF0024 */ lw $ra, 0x24($sp) +/* 034284 70200CF4 27BD04C0 */ addiu $sp, $sp, 0x4c0 +/* 034288 70200CF8 00001025 */ move $v0, $zero +/* 03428C 70200CFC 03E00008 */ jr $ra +/* 034290 70200D00 00000000 */ nop +) +#endif + +s32 inflate_dynamic(void) +{ + s32 i; /* temporary variables */ + u32 j; + u32 l; /* last length */ + u32 m; /* mask for bit lengths table */ + u32 n; /* number of lengths to get */ + struct huft *tl; /* literal/length code table */ + struct huft *td; /* distance code table */ + s32 bl; /* lookup bits for tl */ + s32 bd; /* lookup bits for td */ + u32 nb; /* number of bit length codes */ + u32 nl; /* number of literal/length codes */ + u32 nd; /* number of distance codes */ + register u32 k; /* number of bits in bit buffer */ + register u32 b; /* bit buffer */ + u32 ll[286+30]; /* literal/length and distance code lengths */ + + /* make local bit buffer */ + b = bb; + k = bk; + + /* read in table lengths */ + NEEDBITS(5) + nl = 257 + (b & 0x1f); /* number of literal/length codes */ + DUMPBITS(5) + NEEDBITS(5) + nd = 1 + (b & 0x1f); /* number of distance codes */ + DUMPBITS(5) + NEEDBITS(4) + nb = 4 + (b & 0xf); /* number of bit length codes */ + DUMPBITS(4) + + /* read in bit-length-code lengths */ + for (j = 0; j < nb; j++) { + NEEDBITS(3) + ll[border[j]] = b & 7; + DUMPBITS(3) + } + + for (; j < 19; j++) { + ll[border[j]] = 0; + } + + /* build decoding table for trees--single level, 7 bit lookup */ + bl = 7; + + huft_build(ll, 19, 19, NULL, NULL, &tl, &bl); + + /* read in literal and distance code lengths */ + n = nl + nd; + m = mask_bits[bl]; + i = l = 0; + + while (i < n) { + NEEDBITS(bl) + j = (td = tl + (b & m))->b; + DUMPBITS(j) + + j = td->v.n; + + if (j < 16) { /* length of code in bits (0..15) */ + ll[i++] = l = j; /* save last length in l */ + } else if (j == 16) { /* repeat last length 3 to 6 times */ + NEEDBITS(2) + j = 3 + (b & 3); + DUMPBITS(2) + + while (j--) { + ll[i++] = l; + } + } else if (j == 17) { /* 3 to 10 zero length codes */ + NEEDBITS(3) + j = 3 + (b & 7); + DUMPBITS(3) + + while (j--) { + ll[i++] = 0; + } + + l = 0; + } else { /* j == 18: 11 to 138 zero length codes */ + NEEDBITS(7) + j = 11 + (b & 0x7f); + DUMPBITS(7) + + while (j--) { + ll[i++] = 0; + } + + l = 0; + } + } + + /* restore the global bit buffer */ + bb = b; + bk = k; + + /* build the decoding tables for literal/length and distance codes */ + bl = lbits; + + huft_build(ll, nl, 257, cplens, cplext, &tl, &bl); + + bd = dbits; + + huft_build(ll + nl, nd, 0, cpdist, cpdext, &td, &bd); + + /* decompress until an end-of-block code */ + inflate_codes(tl, td, bl, bd); + + return 0; +} + + + +s32 inflate_block(s32 *e) +{ + u32 t; /* block type */ + register u32 b = bb; /* bit buffer */ + register u32 k = bk; /* number of bits in bit buffer */ + + /* make local bit buffer */ + b = bb; + k = bk; + + /* read in last block bit */ + NEEDBITS(1) + *e = b & 1; + DUMPBITS(1) + + /* read in last block type */ + NEEDBITS(2) + t = b & 3; + DUMPBITS(2) + + /* restore the global bit buffer */ + bb = b; + bk = k; + + /* inflate that block type */ + if (t == 2) { + return inflate_dynamic(); + } + + if (t == 0) { + return inflate_stored(); + } + + if (t == 1) { + return inflate_fixed(); + } + + /* bad block type */ + return 2; +} + + +int inflate(void) { + int e; + int r; + unsigned h; + + wp = 0; + bk = 0; + bb = 0; + + h = 0; + + do { + hufts = 0; + + if ((r = inflate_block(&e)) != 0) + return r; + if (hufts > h) + h = hufts; + } while (!e); + + while (bk >= 8) { + bk -= 8; + inptr--; + } + + return 0; +} + +u32 decompress_entry(void *src, void *dst, struct huft *hlist) +{ + + inbuf = src; + outbuf = dst; + huftlist = hlist; + inbuf = (s32) (inbuf + 2); + wp = 0; + inptr = 0; + inflate(); + return wp; +} + + diff --git a/src/inflate/inflate.h b/src/inflate/inflate.h new file mode 100644 index 0000000..bfc1ec7 --- /dev/null +++ b/src/inflate/inflate.h @@ -0,0 +1,14 @@ +#ifndef _RAREZIP_H_ +#define _RAREZIP_H_ +struct huft { + u8 e; /* number of extra bits or operation */ + u8 b; /* number of bits in this code or subcode */ + union { + u16 n; /* literal, length base, or distance base */ + struct huft *t; /* pointer to next level of table */ + } v; +}; + +u32 decompress_entry(void *src, void *dst, struct huft *hlist); + +#endif diff --git a/src/init.c b/src/init.c new file mode 100644 index 0000000..2706577 --- /dev/null +++ b/src/init.c @@ -0,0 +1,407 @@ +#include +#include "bondgame.h" +#include "boot.h" +#include "sched.h" +#include "rmon.h" +#include "tlb_resolve.h" +#include "tlb_hardwire.h" +#include "init.h" + +/** + * @file init.c + * This file contains the initial non bootstrap code ran. + * + * In particular, it: + * - unpacks main data payload + * - starts idle and rmon loops + * - starts main loop + */ + +#define NUM_FIELDS 1 + +u32 unknown_val_80023040 = 0; +/*D:80023044*/ +u32 unknown_init_val = 2; + +u32 cart_hw_address = 0x10000000; + +struct debug_handler_entry debug_handler_table[] = +{ + {sp_boot, "boot"}, + {sp_rmon, "rmon"}, + {sp_idle, "idle"}, + {sp_shed, "shed"}, + {sp_main, "main"}, + {sp_audi, "audi"}, + {0, 0}, + {0, 0}, +}; + +OSThread rmonThread; +OSThread idleThread; +OSThread mainThread; +OSThread shedThread; +OSMesgQueue gfxFrameMsgQ; +OSMesg gfxFrameMsgBuf[32]; +OSMesgQueue *sched_cmdQ; + +void mainproc(void *args); + +extern u8 * _rarezipSegmentStart; +/** + * 1110 70000510 + * ??? initializes TLB index... + * copies compressed 21990 to virtual address 701EE400, using 70200000 to decompress + */ +#ifdef NONMATCHING +void init(void) +{ + s32 *cdata_vaddr_start; + s32 cdata_rom_size; + s32 datapos; + u32 *dest; + u32 *source; + u32 i; + + cdata_vaddr_start = get_csegmentSegmentStart(); + cdata_rom_size = (get_cdataSegmentRomEnd() - get_cdataSegmentRomStart()); + + for (datapos = ((cdata_rom_size + (get_rarezipSegmentRomEnd() - get_rarezipSegmentRomStart())) + -1); datapos >= 0; datapos--) + { + _rarezipSegmentStart[-cdata_rom_size + datapos] = &cdata_vaddr_start[datapos]; + } + + jump_decompressfile((_rarezipSegmentStart - cdata_rom_size), cdata_vaddr_start, 0x80300000); + + if ((&_rarezipSegmentRomStart - &_codeSegmentRomStart) >= 0xfffb1) + { + osPiRawStartDma(0, 0x101000, 0x70100400, ((&_rarezipSegmentRomStart - &_codeSegmentRomStart) + 0xfff00050)); + while ((osPiGetStatus() & 1) != 0) {} + } + + osInitialize(); + set_hardwire_TLB_to_2(); + + + //IM BROKEN FIX ME!!!!!!! + source = (u32 *)resolve_TLBaddress_for_InvalidHit; + //UT_VEC + dest = (u32 *)0x80000000; + //XUT_VEC + while ( (u32)dest != (u32)dest + 0x80 ) { *dest = *source; dest++; source++;} + //TO HERE + + osWritebackDCacheAll(); + osInvalICache(0x80000000, 0x4000); + + for (i=2; i<32; i++) + { + osUnmapTLB(i); + } + + __osSetFpcCsr((__osGetFpcCsr() | 0xe80)); + osCreateThread(&mainThread, 3, &mainproc, 0, set_stack_entry(&sp_main, 0x8000), 0xa); + osStartThread(&mainThread); +} +#else +GLOBAL_ASM( +.section .text +glabel init +/* 001110 70000510 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 001114 70000514 AFBF0024 */ sw $ra, 0x24($sp) +/* 001118 70000518 AFB10020 */ sw $s1, 0x20($sp) +/* 00111C 7000051C 0C00012F */ jal get_csegmentSegmentStart +/* 001120 70000520 AFB0001C */ sw $s0, 0x1c($sp) +/* 001124 70000524 0C000132 */ jal get_cdataSegmentRomStart +/* 001128 70000528 00408025 */ move $s0, $v0 +/* 00112C 7000052C 0C000135 */ jal get_cdataSegmentRomEnd +/* 001130 70000530 AFA20034 */ sw $v0, 0x34($sp) +/* 001134 70000534 8FAE0034 */ lw $t6, 0x34($sp) +/* 001138 70000538 0C000138 */ jal get_rarezipSegmentRomStart +/* 00113C 7000053C 004E8823 */ subu $s1, $v0, $t6 +/* 001140 70000540 0C00013B */ jal get_rarezipSegmentRomEnd +/* 001144 70000544 AFA20028 */ sw $v0, 0x28($sp) +/* 001148 70000548 8FAF0028 */ lw $t7, 0x28($sp) +/* 00114C 7000054C 3C0A7020 */ lui $t2, 0x7020 +/* 001150 70000550 02002825 */ move $a1, $s0 +/* 001154 70000554 004FC023 */ subu $t8, $v0, $t7 +/* 001158 70000558 02382021 */ addu $a0, $s1, $t8 +/* 00115C 7000055C 2483FFFF */ addiu $v1, $a0, -1 +/* 001160 70000560 0460000A */ bltz $v1, .L7000058C +/* 001164 70000564 3C068030 */ lui $a2, 0x8030 +/* 001168 70000568 3C197020 */ lui $t9, 0x7020 +/* 00116C 7000056C 03312023 */ subu $a0, $t9, $s1 +/* 001170 70000570 02031021 */ addu $v0, $s0, $v1 +.L70000574: +/* 001174 70000574 90480000 */ lbu $t0, ($v0) +/* 001178 70000578 00834821 */ addu $t1, $a0, $v1 +/* 00117C 7000057C 2463FFFF */ addiu $v1, $v1, -1 +/* 001180 70000580 2442FFFF */ addiu $v0, $v0, -1 +/* 001184 70000584 0461FFFB */ bgez $v1, .L70000574 +/* 001188 70000588 A1280000 */ sb $t0, ($t1) +.L7000058C: +/* 00118C 7000058C 0C00013E */ jal jump_decompressfile +/* 001190 70000590 01512023 */ subu $a0, $t2, $s1 +/* 001194 70000594 3C0B0003 */ lui $t3, %hi(_rarezipSegmentRomStart) # $t3, 3 +/* 001198 70000598 3C0C0000 */ lui $t4, %hi(_codeSegmentRomStart) # $t4, 0 +/* 00119C 7000059C 258C1050 */ addiu $t4, %lo(_codeSegmentRomStart) # addiu $t4, $t4, 0x1050 +/* 0011A0 700005A0 256B3590 */ addiu $t3, %lo(_rarezipSegmentRomStart) # addiu $t3, $t3, 0x3590 +/* 0011A4 700005A4 3C01000F */ lui $at, (0x000FFFB1 >> 16) # lui $at, 0xf +/* 0011A8 700005A8 3421FFB1 */ ori $at, (0x000FFFB1 & 0xFFFF) # ori $at, $at, 0xffb1 +/* 0011AC 700005AC 016C1023 */ subu $v0, $t3, $t4 +/* 0011B0 700005B0 0041082A */ slt $at, $v0, $at +/* 0011B4 700005B4 14200013 */ bnez $at, .L70000604 +/* 0011B8 700005B8 3C01FFF0 */ lui $at, (0xFFF00050 >> 16) # lui $at, 0xfff0 +/* 0011BC 700005BC 34210050 */ ori $at, (0xFFF00050 & 0xFFFF) # ori $at, $at, 0x50 +/* 0011C0 700005C0 3C050010 */ lui $a1, %hi(0x00101000) # $a1, 0x10 +/* 0011C4 700005C4 3C067010 */ lui $a2, %hi(0x70100400) # $a2, 0x7010 +/* 0011C8 700005C8 24C60400 */ addiu $a2, %lo(0x70100400) # addiu $a2, $a2, 0x400 +/* 0011CC 700005CC 24A51000 */ addiu $a1, %lo(0x00101000) # addiu $a1, $a1, 0x1000 +/* 0011D0 700005D0 00413821 */ addu $a3, $v0, $at +/* 0011D4 700005D4 0C0033E4 */ jal osPiRawStartDma +/* 0011D8 700005D8 00002025 */ move $a0, $zero +/* 0011DC 700005DC 0C00341C */ jal osPiGetStatus +/* 0011E0 700005E0 00000000 */ nop +/* 0011E4 700005E4 304D0001 */ andi $t5, $v0, 1 +/* 0011E8 700005E8 11A00006 */ beqz $t5, .L70000604 +/* 0011EC 700005EC 00000000 */ nop +.L700005F0: +/* 0011F0 700005F0 0C00341C */ jal osPiGetStatus +/* 0011F4 700005F4 00000000 */ nop +/* 0011F8 700005F8 304E0001 */ andi $t6, $v0, 1 +/* 0011FC 700005FC 15C0FFFC */ bnez $t6, .L700005F0 +/* 001200 70000600 00000000 */ nop +.L70000604: +/* 001204 70000604 0C003420 */ jal osInitialize +/* 001208 70000608 00000000 */ nop +/* 00120C 7000060C 0C0006EC */ jal set_hardwire_TLB_to_2 +/* 001210 70000610 00000000 */ nop + + +/* 001214 70000614 3C108000 */ lui $s0, %hi(0x80000000) +/* 001218 70000618 3C027000 */ lui $v0, %hi(resolve_TLBaddress_for_InvalidHit) # $v0, 0x7000 +/* 00121C 7000061C 3C048000 */ lui $a0, (0x80000080 >> 16) # lui $a0, 0x8000 +/* 001220 70000620 24421B60 */ addiu $v0, %lo(resolve_TLBaddress_for_InvalidHit) # addiu $v0, $v0, 0x1b60 +/* 001224 70000624 02001825 */ move $v1, $s0 +/* 001228 70000628 34840080 */ ori $a0, (0x80000080 & 0xFFFF) # ori $a0, $a0, 0x80 +.L7000062C: +/* 00122C 7000062C 8C4F0000 */ lw $t7, ($v0) +/* 001230 70000630 24630010 */ addiu $v1, $v1, 0x10 +/* 001234 70000634 24420010 */ addiu $v0, $v0, 0x10 +/* 001238 70000638 AC6FFFF0 */ sw $t7, -0x10($v1) +/* 00123C 7000063C 8C58FFF4 */ lw $t8, -0xc($v0) +/* 001240 70000640 AC78FFF4 */ sw $t8, -0xc($v1) +/* 001244 70000644 8C59FFF8 */ lw $t9, -8($v0) +/* 001248 70000648 AC79FFF8 */ sw $t9, -8($v1) +/* 00124C 7000064C 8C48FFFC */ lw $t0, -4($v0) +/* 001250 70000650 1464FFF6 */ bne $v1, $a0, .L7000062C +/* 001254 70000654 AC68FFFC */ sw $t0, -4($v1) + + +/* 001258 70000658 0C0034C8 */ jal osWritebackDCacheAll +/* 00125C 7000065C 00000000 */ nop +/* 001260 70000660 02002025 */ move $a0, $s0 +/* 001264 70000664 0C0034D4 */ jal osInvalICache +/* 001268 70000668 24054000 */ li $a1, 16384 +/* 00126C 7000066C 24100002 */ li $s0, 2 +/* 001270 70000670 24110020 */ li $s1, 32 +.L70000674: +/* 001274 70000674 0C0034F4 */ jal osUnmapTLB +/* 001278 70000678 02002025 */ move $a0, $s0 +/* 00127C 7000067C 26100001 */ addiu $s0, 1 # addiu $s0, $s0, 1 +/* 001280 70000680 1611FFFC */ bne $s0, $s1, .L70000674 +/* 001284 70000684 00000000 */ nop +/* 001288 70000688 0C003504 */ jal __osGetFpcCsr +/* 00128C 7000068C 00000000 */ nop +/* 001290 70000690 0C003508 */ jal __osSetFpcCsr +/* 001294 70000694 34440E80 */ ori $a0, $v0, 0xe80 +/* 001298 70000698 3C04803B */ lui $a0, %hi(sp_main) # $a0, 0x803b +/* 00129C 7000069C 2484B950 */ addiu $a0, %lo(sp_main) # addiu $a0, $a0, -0x46b0 +/* 0012A0 700006A0 0C0001BC */ jal set_stack_entry +/* 0012A4 700006A4 34058000 */ li $a1, 32768 +/* 0012A8 700006A8 3C108006 */ lui $s0, %hi(mainThread) +/* 0012AC 700006AC 2610D640 */ addiu $s0, %lo(mainThread) # addiu $s0, $s0, -0x29c0 +/* 0012B0 700006B0 3C067000 */ lui $a2, %hi(mainproc) # $a2, 0x7000 +/* 0012B4 700006B4 240C000A */ li $t4, 10 +/* 0012B8 700006B8 AFAC0014 */ sw $t4, 0x14($sp) +/* 0012BC 700006BC 24C6089C */ addiu $a2, %lo(mainproc) # addiu $a2, $a2, 0x89c +/* 0012C0 700006C0 02002025 */ move $a0, $s0 +/* 0012C4 700006C4 24050003 */ li $a1, 3 +/* 0012C8 700006C8 00003825 */ move $a3, $zero +/* 0012CC 700006CC 0C00350C */ jal osCreateThread +/* 0012D0 700006D0 AFA20010 */ sw $v0, 0x10($sp) +/* 0012D4 700006D4 0C003560 */ jal osStartThread +/* 0012D8 700006D8 02002025 */ move $a0, $s0 +/* 0012DC 700006DC 8FBF0024 */ lw $ra, 0x24($sp) +/* 0012E0 700006E0 8FB0001C */ lw $s0, 0x1c($sp) +/* 0012E4 700006E4 8FB10020 */ lw $s1, 0x20($sp) +/* 0012E8 700006E8 03E00008 */ jr $ra +/* 0012EC 700006EC 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + +/** + * 12F0 700006F0 + * V0= new stack pointer; A0+A1-8 + * accepts: A0=base address, A1=size + */ +void *set_stack_entry(u8 *stack, u32 size) +{ + return stack+size-8; +} + +/** + * 12FC 700006FC + * 1->80023044, 10000000->80023048 + */ +void set_hw_address_and_unknown(void) +{ + unknown_init_val = 1; + cart_hw_address = 0x10000000; +} + +/** + * 1318 70000718 + * A0->SP+0, infinite loop + */ +void idleproc(void *arg) +{ + for (;;); +} + +/** + * 1338 70000738 + * Null thread; executes 70000718 + */ +void idleCreateThread(void) +{ + osCreateThread(&idleThread, (OSId)1, idleproc, 0, set_stack_entry(&sp_idle, 0x40), (OSPri)0); + osStartThread(&idleThread); +} + +/** + * 1390 70000790 + * Indi board detection thread; now forcably returns INDI_NOT_DETECTED (1) + */ +void rmonCreateThread(void) +{ + osCreateThread(&rmonThread, (OSId)0, rmonproc, 0, set_stack_entry(&sp_rmon, 0x300), (OSPri)250); + osStartThread(&rmonThread); +} + +/** + * 13EC 700007EC + */ +void schedulerInitThread(void) +{ + osCreateMesgQueue(&gfxFrameMsgQ, &gfxFrameMsgBuf, 32); + if (osTvType == 2) //OS_TV_MPAL + { + osCreateScheduler(&sc, &shedThread, OS_VI_MPAL_LAN1, NUM_FIELDS); + } + else + { + osCreateScheduler(&sc, &shedThread, OS_VI_NTSC_LAN1, NUM_FIELDS); + } + + osScAddClient(&sc, &gfxClient, &gfxFrameMsgQ, 0); + sched_cmdQ = osScGetCmdQ(&sc); +} + +/** + * 149C 7000089C start main game setup and loop + * calls command line parser, debug console setup, etc. + * called by 70000510, using 7000D430: A0=8005D640, A1=3, A2=7000089C, A3=0, SP+10=[803B3948], SP+14=0xA + * never returns; 7000601C is an infinite loop + */ +void mainproc(void *args) +{ + idleCreateThread(); + viDebugRemoved(); + piCreateManager(); + rmonCreateThread(); + if (check_boot_switches() != 0) + { + osStopThread(0); + } + + osSetThreadPri(0, 0xa); + schedulerInitThread(); + bossEntry(); +} + +/** + * 1508 70000908 V0= p->last entry in copy of debug handler code/name table; fries AT,V1,T0,T1,T6,T9 + * copies table from 8002304C-80023084 to stack + */ +#ifdef NONMATCHING +void *setuplastentryofdebughandler(void) +{ + ? sp8; + void *temp_t6; + void *temp_t0; + void *temp_v0; + void *phi_t6; + void *phi_t0; + void *phi_v0; + + phi_t6 = &debug_handler_table; + phi_t0 = &sp8; +loop_1: + temp_t6 = (phi_t6 + 0xc); + temp_t0 = (phi_t0 + 0xc); + temp_t0->unk-C = (?32) *phi_t6; + temp_t0->unk-8 = (?32) temp_t6->unk-8; + temp_t0->unk-4 = (?32) temp_t6->unk-4; + phi_t6 = temp_t6; + phi_t0 = temp_t0; + if (temp_t6 != (&debug_handler_table + 0x30)) + { + goto loop_1; + } + *temp_t0 = (?32) *temp_t6; + temp_t0->unk4 = (?32) temp_t6->unk4; + phi_v0 = &sp8; +loop_3: + temp_v0 = (phi_v0 + 8); + phi_v0 = temp_v0; + if (phi_v0->unk8 != 0) + { + goto loop_3; + } + return temp_v0; +} +#else +GLOBAL_ASM( +.section .text +glabel setuplastentryofdebughandler +/* 001508 70000908 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 00150C 7000090C 3C0E8002 */ lui $t6, %hi(debug_handler_table) +/* 001510 70000910 27A30008 */ addiu $v1, $sp, 8 +/* 001514 70000914 25CE304C */ addiu $t6, %lo(debug_handler_table) # addiu $t6, $t6, 0x304c +/* 001518 70000918 25D90030 */ addiu $t9, $t6, 0x30 +/* 00151C 7000091C 00604025 */ move $t0, $v1 +.L70000920: +/* 001520 70000920 8DC10000 */ lw $at, ($t6) +/* 001524 70000924 25CE000C */ addiu $t6, $t6, 0xc +/* 001528 70000928 2508000C */ addiu $t0, $t0, 0xc +/* 00152C 7000092C AD01FFF4 */ sw $at, -0xc($t0) +/* 001530 70000930 8DC1FFF8 */ lw $at, -8($t6) +/* 001534 70000934 AD01FFF8 */ sw $at, -8($t0) +/* 001538 70000938 8DC1FFFC */ lw $at, -4($t6) +/* 00153C 7000093C 15D9FFF8 */ bne $t6, $t9, .L70000920 +/* 001540 70000940 AD01FFFC */ sw $at, -4($t0) +/* 001544 70000944 8DC10000 */ lw $at, ($t6) +/* 001548 70000948 00601025 */ move $v0, $v1 +/* 00154C 7000094C AD010000 */ sw $at, ($t0) +/* 001550 70000950 8DD90004 */ lw $t9, 4($t6) +/* 001554 70000954 AD190004 */ sw $t9, 4($t0) +/* 001558 70000958 8C490008 */ lw $t1, 8($v0) +.L7000095C: +/* 00155C 7000095C 24420008 */ addiu $v0, $v0, 8 +/* 001560 70000960 5520FFFE */ bnezl $t1, .L7000095C +/* 001564 70000964 8C490008 */ lw $t1, 8($v0) +/* 001568 70000968 03E00008 */ jr $ra +/* 00156C 7000096C 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif diff --git a/src/init.h b/src/init.h new file mode 100644 index 0000000..1a2e598 --- /dev/null +++ b/src/init.h @@ -0,0 +1,27 @@ +#ifndef _INIT_H_ +#define _INIT_H_ +#include + +extern OSThread rmonThread; +extern OSThread idleThread; +extern OSThread mainThread; +extern OSThread shedThread; +extern OSMesgQueue gfxFrameMsgQ; +extern OSMesg gfxFrameMsgBuf[32]; +extern OSMesgQueue *sched_cmdQ; + +extern u32 unknown_init_val; +extern u32 cart_hw_address; + +struct debug_handler_entry +{ + void *address; + char *ptr_name; +}; + +void init(void); +void *set_stack_entry(u8 *stack, u32 size); +void set_hw_address_and_unknown(void); +void setuplastentryofdebughandler(void); + +#endif diff --git a/src/joy.c b/src/joy.c new file mode 100644 index 0000000..6f8661a --- /dev/null +++ b/src/joy.c @@ -0,0 +1,2766 @@ +#include "ultra64.h" +#include "joy.h" +const char aJoy_c_debug[] = "joy_c_debug"; + + +char controller_input_index[0x1E0]; +s32 dword_CODE_bss_80065110; +s32 dword_CODE_bss_80065114; +s32 dword_CODE_bss_80065118; +s32 dword_CODE_bss_8006511C; +s32 dword_CODE_bss_80065120; +s32 dword_CODE_bss_80065124; +s32 dword_CODE_bss_80065128; +s32 dword_CODE_bss_8006512C; +s32 dword_code_bss_80065130[0x76]; +s32 dword_CODE_bss_80065308; +s32 dword_CODE_bss_8006530C; +s32 dword_CODE_bss_80065310; +s32 dword_CODE_bss_80065314; +s32 dword_CODE_bss_80065318; +s32 dword_CODE_bss_8006531C; +s32 dword_CODE_bss_80065320; +s32 dword_CODE_bss_80065324; +//80065328 +char contdemoMesg[0x28]; +//80065350 +OSMesgQueue contdemoMesgMQ; + +//80065368 +OSMesg cont1Mesg; +OSMesgQueue cont1MesgMQ; + +//80065388 +OSMesg cont2Mesg; +OSMesgQueue cont2MesgMQ; + +//800653a8 +OSMesg cont3Mesg; +OSMesgQueue cont3MesgMQ; + +//800653c8 +OSMesg cont4Mesg; +OSMesgQueue cont4MesgMQ; + +//800653e8 +s32 player1_controllerstatus; +s32 player2_controllerstatus; +s32 player3_controllerstatus; +s32 player4_controllerstatus; + +char player1_controller_packet[0x1A8]; + + +s32 D_800268C0 = 0; +void *ptr_current_point_in_controller_input_index = controller_input_index; +s32 D_800268C8 = 0; +s32 D_800268CC = 0; +u8 num_controller_plugged_in_flags = 0; +s32 num_controller_plugged_in_flags_0 = 0; +s32 controller_1_rumble_inserted = 0; +s32 controller_2_rumble_inserted = 0; +s32 controller_3_rumble_inserted = 0; +s32 controller_4_rumble_inserted = 0; +s32 controller_1_rumble_state = 0; +s32 controller_2_rumble_state = 0; +s32 controller_3_rumble_state = 0; +s32 controller_4_rumble_state = 0; +s32 controller_1_rumble_duration = 0; +s32 controller_2_rumble_duration = 0; +s32 controller_3_rumble_duration = 0; +s32 controller_4_rumble_duration = 0; +s32 controller_1_rumble_pulse = 0; +s32 controller_2_rumble_pulse = 0; +s32 controller_3_rumble_pulse = 0; +s32 controller_4_rumble_pulse = 0; +s32 enableControllers = 0; +s32 D_8002691C = 0; +s32 D_80026920 = 0; +s32 disable_all_rumble = 0; +s32 ptr_to_tlb_ramrom_record = 0; +s32 D_8002692C = 1; +s32 pl1_controller_failure_lr = 0; +s32 pl2_controller_failure_lr = 0; +s32 pl3_controller_failure_lr = 0; +s32 pl4_controller_failure_lr = 0; +s32 pl1_controller_failure_ud = 0; +s32 pl2_controller_failure_ud = 0; +s32 pl3_controller_failure_ud = 0; +s32 pl4_controller_failure_ud = 0; +s32 pl1_controller_failure_held = 0; +s32 pl2_controller_failure_held = 0; +s32 pl3_controller_failure_held = 0; +s32 pl4_controller_failure_held = 0; +s32 pl1_controller_failure_pressed = 0; +s32 pl2_controller_failure_pressed = 0; +s32 pl3_controller_failure_pressed = 0; +s32 pl4_controller_failure_pressed = 0; +s32 D_80026970 = 0; + + + + + + + + +#ifdef NONMATCHING +void *joyInitDebugNoticeList(void) { + void *temp_v0; + void *temp_v0_2; + + // Node 0 + debCheckAddDebugNoticeListEntry(&D_800268C0, &aJoy_c_debug); + osCreateMesgQueue(&cont1MesgMQ, &cont1Mesg, 1); + osCreateMesgQueue(&cont2MesgMQ, &cont2Mesg, 1); + osCreateMesgQueue(&cont3MesgMQ, &cont3Mesg, 1); + osCreateMesgQueue(&cont4MesgMQ, &cont4Mesg, 1); + osCreateMesgQueue(&contdemoMesgMQ, &contdemoMesg, 0xa); + osSetEventMesg(5, &contdemoMesgMQ, 0); + enableControllers = 1; + disable_all_rumble = 0; + temp_v0 = (0x80060000 + 0x4f30); + ptr_to_tlb_ramrom_record = 0; + // Node 1 + temp_v0->unk1E0 = 0; + temp_v0->unk1E4 = 0; + temp_v0->unk1E8 = 0; + temp_v0->unk1EC = 0; + temp_v0->unk1F8 = -1; + temp_v0_2 = (temp_v0 + 0x1fc); + temp_v0_2->unk-1E6 = (u8)0; + temp_v0_2->unk-1E7 = (u8)0; + temp_v0_2->unk-1E8 = (u8)0; + temp_v0_2->unk-1EA = (u16)0; + temp_v0_2->unk-1EC = (u8)0; + temp_v0_2->unk-1ED = (u8)0; + temp_v0_2->unk-1EE = (u8)0; + temp_v0_2->unk-1F0 = (u16)0; + temp_v0_2->unk-1F2 = (u8)0; + temp_v0_2->unk-1F3 = (u8)0; + temp_v0_2->unk-1F4 = (u8)0; + temp_v0_2->unk-1F6 = (u16)0; + temp_v0_2->unk-1FC = (u16)0; + temp_v0_2->unk-1FA = (u8)0; + temp_v0_2->unk-1F9 = (u8)0; + temp_v0_2->unk-1F8 = (u8)0; + if (temp_v0_2 != &contdemoMesg) + { + goto loop_1; + } + // (possible return value: temp_v0_2) +} +#else +GLOBAL_ASM( +.text +glabel joyInitDebugNoticeList +/* 00C160 7000B560 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00C164 7000B564 AFBF0014 */ sw $ra, 0x14($sp) +/* 00C168 7000B568 3C048002 */ lui $a0, %hi(D_800268C0) +/* 00C16C 7000B56C 3C058003 */ lui $a1, %hi(aJoy_c_debug) +/* 00C170 7000B570 24A59390 */ addiu $a1, %lo(aJoy_c_debug) # addiu $a1, $a1, -0x6c70 +/* 00C174 7000B574 0C001398 */ jal debCheckAddDebugNoticeListEntry +/* 00C178 7000B578 248468C0 */ addiu $a0, %lo(D_800268C0) # addiu $a0, $a0, 0x68c0 +/* 00C17C 7000B57C 3C048006 */ lui $a0, %hi(cont1MesgMQ) +/* 00C180 7000B580 3C058006 */ lui $a1, %hi(cont1Mesg) +/* 00C184 7000B584 24A55368 */ addiu $a1, %lo(cont1Mesg) # addiu $a1, $a1, 0x5368 +/* 00C188 7000B588 24845370 */ addiu $a0, %lo(cont1MesgMQ) # addiu $a0, $a0, 0x5370 +/* 00C18C 7000B58C 0C0035B4 */ jal osCreateMesgQueue +/* 00C190 7000B590 24060001 */ li $a2, 1 +/* 00C194 7000B594 3C048006 */ lui $a0, %hi(cont2MesgMQ) +/* 00C198 7000B598 3C058006 */ lui $a1, %hi(cont2Mesg) +/* 00C19C 7000B59C 24A55388 */ addiu $a1, %lo(cont2Mesg) # addiu $a1, $a1, 0x5388 +/* 00C1A0 7000B5A0 24845390 */ addiu $a0, %lo(cont2MesgMQ) # addiu $a0, $a0, 0x5390 +/* 00C1A4 7000B5A4 0C0035B4 */ jal osCreateMesgQueue +/* 00C1A8 7000B5A8 24060001 */ li $a2, 1 +/* 00C1AC 7000B5AC 3C048006 */ lui $a0, %hi(cont3MesgMQ) +/* 00C1B0 7000B5B0 3C058006 */ lui $a1, %hi(cont3Mesg) +/* 00C1B4 7000B5B4 24A553A8 */ addiu $a1, %lo(cont3Mesg) # addiu $a1, $a1, 0x53a8 +/* 00C1B8 7000B5B8 248453B0 */ addiu $a0, %lo(cont3MesgMQ) # addiu $a0, $a0, 0x53b0 +/* 00C1BC 7000B5BC 0C0035B4 */ jal osCreateMesgQueue +/* 00C1C0 7000B5C0 24060001 */ li $a2, 1 +/* 00C1C4 7000B5C4 3C048006 */ lui $a0, %hi(cont4MesgMQ) +/* 00C1C8 7000B5C8 3C058006 */ lui $a1, %hi(cont4Mesg) +/* 00C1CC 7000B5CC 24A553C8 */ addiu $a1, %lo(cont4Mesg) # addiu $a1, $a1, 0x53c8 +/* 00C1D0 7000B5D0 248453D0 */ addiu $a0, %lo(cont4MesgMQ) # addiu $a0, $a0, 0x53d0 +/* 00C1D4 7000B5D4 0C0035B4 */ jal osCreateMesgQueue +/* 00C1D8 7000B5D8 24060001 */ li $a2, 1 +/* 00C1DC 7000B5DC 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00C1E0 7000B5E0 3C058006 */ lui $a1, %hi(contdemoMesg) +/* 00C1E4 7000B5E4 24A55328 */ addiu $a1, %lo(contdemoMesg) # addiu $a1, $a1, 0x5328 +/* 00C1E8 7000B5E8 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00C1EC 7000B5EC 0C0035B4 */ jal osCreateMesgQueue +/* 00C1F0 7000B5F0 2406000A */ li $a2, 10 +/* 00C1F4 7000B5F4 3C058006 */ lui $a1, %hi(contdemoMesgMQ) +/* 00C1F8 7000B5F8 24A55350 */ addiu $a1, %lo(contdemoMesgMQ) # addiu $a1, $a1, 0x5350 +/* 00C1FC 7000B5FC 24040005 */ li $a0, 5 +/* 00C200 7000B600 0C003714 */ jal osSetEventMesg +/* 00C204 7000B604 00003025 */ move $a2, $zero +/* 00C208 7000B608 240E0001 */ li $t6, 1 +/* 00C20C 7000B60C 3C018002 */ lui $at, %hi(enableControllers) +/* 00C210 7000B610 AC2E6918 */ sw $t6, %lo(enableControllers)($at) +/* 00C214 7000B614 3C018002 */ lui $at, %hi(disable_all_rumble) +/* 00C218 7000B618 AC206924 */ sw $zero, %lo(disable_all_rumble)($at) +/* 00C21C 7000B61C 3C0F8006 */ lui $t7, %hi(controller_input_index) +/* 00C220 7000B620 3C018002 */ lui $at, %hi(ptr_to_tlb_ramrom_record) +/* 00C224 7000B624 25E24F30 */ addiu $v0, $t7, %lo(controller_input_index) +/* 00C228 7000B628 3C058006 */ lui $a1, %hi(contdemoMesg) +/* 00C22C 7000B62C AC206928 */ sw $zero, %lo(ptr_to_tlb_ramrom_record)($at) +/* 00C230 7000B630 24A55328 */ addiu $a1, %lo(contdemoMesg) # addiu $a1, $a1, 0x5328 +/* 00C234 7000B634 00401825 */ move $v1, $v0 +/* 00C238 7000B638 2404FFFF */ li $a0, -1 +.L7000B63C: +/* 00C23C 7000B63C AC6001E0 */ sw $zero, 0x1e0($v1) +/* 00C240 7000B640 AC6001E4 */ sw $zero, 0x1e4($v1) +/* 00C244 7000B644 AC6001E8 */ sw $zero, 0x1e8($v1) +/* 00C248 7000B648 AC6001EC */ sw $zero, 0x1ec($v1) +/* 00C24C 7000B64C AC6401F8 */ sw $a0, 0x1f8($v1) +/* 00C250 7000B650 244201FC */ addiu $v0, $v0, 0x1fc +/* 00C254 7000B654 246301FC */ addiu $v1, $v1, 0x1fc +/* 00C258 7000B658 A040FE1A */ sb $zero, -0x1e6($v0) +/* 00C25C 7000B65C A040FE19 */ sb $zero, -0x1e7($v0) +/* 00C260 7000B660 A040FE18 */ sb $zero, -0x1e8($v0) +/* 00C264 7000B664 A440FE16 */ sh $zero, -0x1ea($v0) +/* 00C268 7000B668 A040FE14 */ sb $zero, -0x1ec($v0) +/* 00C26C 7000B66C A040FE13 */ sb $zero, -0x1ed($v0) +/* 00C270 7000B670 A040FE12 */ sb $zero, -0x1ee($v0) +/* 00C274 7000B674 A440FE10 */ sh $zero, -0x1f0($v0) +/* 00C278 7000B678 A040FE0E */ sb $zero, -0x1f2($v0) +/* 00C27C 7000B67C A040FE0D */ sb $zero, -0x1f3($v0) +/* 00C280 7000B680 A040FE0C */ sb $zero, -0x1f4($v0) +/* 00C284 7000B684 A440FE0A */ sh $zero, -0x1f6($v0) +/* 00C288 7000B688 A440FE04 */ sh $zero, -0x1fc($v0) +/* 00C28C 7000B68C A040FE06 */ sb $zero, -0x1fa($v0) +/* 00C290 7000B690 A040FE07 */ sb $zero, -0x1f9($v0) +/* 00C294 7000B694 1445FFE9 */ bne $v0, $a1, .L7000B63C +/* 00C298 7000B698 A040FE08 */ sb $zero, -0x1f8($v0) +/* 00C29C 7000B69C 8FBF0014 */ lw $ra, 0x14($sp) +/* 00C2A0 7000B6A0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00C2A4 7000B6A4 03E00008 */ jr $ra +/* 00C2A8 7000B6A8 00000000 */ nop +) +#endif + + + + +void test_controller_presence(void) +{ + OSMesg sp1C; + + if (enableControllers != 0) + { + osSendMesg(&cont1MesgMQ, &sp1C, 0); + osRecvMesg(&cont2MesgMQ, &sp1C, 1); + controller_check_for_rumble_maybe(); + osSendMesg(&cont3MesgMQ, &sp1C, 0); + osRecvMesg(&cont4MesgMQ, &sp1C, 1); + } +} + +s32 osPfsChecker(u32 *param_1) //OSPfs *param_1 +{ + return 3; +} + + + + + + +#ifdef NONMATCHING +s32 controller_7000B734(s32 arg0) +{ + s32 temp_ret; + s32 temp_ret_2; + s32 temp_v0; + void *temp_a3; + void *temp_v1; + s32 phi_return; + + temp_v0 = arg0 * 4; + temp_a3 = temp_v0 + &controller_1_rumble_inserted; + phi_return = temp_v0; + if (*temp_a3 >= 0) + { + temp_v1 = temp_v0 + &player1_controllerstatus; + phi_return = temp_v0; + if ((temp_v1->unk0 & 4) != 0) + { + phi_return = temp_v0; + if ((temp_v1->unk2 & 1) != 0) + { + temp_ret = osPfsInit(&contdemoMesgMQ, (arg0 * 0x68) + &player1_controller_packet, arg0, temp_a3); + if ((temp_ret == 0xa) || (temp_ret == 0xb)) + { + temp_ret_2 = osMotorInit(&contdemoMesgMQ, sp20, arg0, sp1C); + if (temp_ret_2 == 0) + { + *sp1C = 1; + return temp_ret_2; + } + *sp1C = -1; + phi_return = temp_ret_2; + } + else + { + + } + } + } + } + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel controller_7000B734 +/* 00C334 7000B734 3C0E8002 */ lui $t6, %hi(controller_1_rumble_inserted) +/* 00C338 7000B738 25CE68D8 */ addiu $t6, %lo(controller_1_rumble_inserted) # addiu $t6, $t6, 0x68d8 +/* 00C33C 7000B73C 00041080 */ sll $v0, $a0, 2 +/* 00C340 7000B740 004E3821 */ addu $a3, $v0, $t6 +/* 00C344 7000B744 8CEF0000 */ lw $t7, ($a3) +/* 00C348 7000B748 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00C34C 7000B74C AFBF0014 */ sw $ra, 0x14($sp) +/* 00C350 7000B750 05E0002B */ bltz $t7, .L7000B800 +/* 00C354 7000B754 00803025 */ move $a2, $a0 +/* 00C358 7000B758 3C188006 */ lui $t8, %hi(player1_controllerstatus) +/* 00C35C 7000B75C 271853E8 */ addiu $t8, %lo(player1_controllerstatus) # addiu $t8, $t8, 0x53e8 +/* 00C360 7000B760 00581821 */ addu $v1, $v0, $t8 +/* 00C364 7000B764 94790000 */ lhu $t9, ($v1) +/* 00C368 7000B768 33280004 */ andi $t0, $t9, 4 +/* 00C36C 7000B76C 51000025 */ beql $t0, $zero, .L7000B804 +/* 00C370 7000B770 8FBF0014 */ lw $ra, 0x14($sp) +/* 00C374 7000B774 90690002 */ lbu $t1, 2($v1) +/* 00C378 7000B778 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00C37C 7000B77C 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00C380 7000B780 312A0001 */ andi $t2, $t1, 1 +/* 00C384 7000B784 1140001E */ beqz $t2, .L7000B800 +/* 00C388 7000B788 00065880 */ sll $t3, $a2, 2 +/* 00C38C 7000B78C 01665823 */ subu $t3, $t3, $a2 +/* 00C390 7000B790 000B5880 */ sll $t3, $t3, 2 +/* 00C394 7000B794 01665821 */ addu $t3, $t3, $a2 +/* 00C398 7000B798 3C0C8006 */ lui $t4, %hi(player1_controller_packet) +/* 00C39C 7000B79C 258C53F8 */ addiu $t4, %lo(player1_controller_packet) # addiu $t4, $t4, 0x53f8 +/* 00C3A0 7000B7A0 000B58C0 */ sll $t3, $t3, 3 +/* 00C3A4 7000B7A4 016C2821 */ addu $a1, $t3, $t4 +/* 00C3A8 7000B7A8 AFA50020 */ sw $a1, 0x20($sp) +/* 00C3AC 7000B7AC AFA60028 */ sw $a2, 0x28($sp) +/* 00C3B0 7000B7B0 0C0051D0 */ jal osPfsInit +/* 00C3B4 7000B7B4 AFA7001C */ sw $a3, 0x1c($sp) +/* 00C3B8 7000B7B8 2401000A */ li $at, 10 +/* 00C3BC 7000B7BC 8FA50020 */ lw $a1, 0x20($sp) +/* 00C3C0 7000B7C0 8FA60028 */ lw $a2, 0x28($sp) +/* 00C3C4 7000B7C4 10410003 */ beq $v0, $at, .L7000B7D4 +/* 00C3C8 7000B7C8 8FA7001C */ lw $a3, 0x1c($sp) +/* 00C3CC 7000B7CC 2401000B */ li $at, 11 +/* 00C3D0 7000B7D0 1441000B */ bne $v0, $at, .L7000B800 +.L7000B7D4: +/* 00C3D4 7000B7D4 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00C3D8 7000B7D8 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00C3DC 7000B7DC 0C00334E */ jal osMotorInit +/* 00C3E0 7000B7E0 AFA7001C */ sw $a3, 0x1c($sp) +/* 00C3E4 7000B7E4 14400004 */ bnez $v0, .L7000B7F8 +/* 00C3E8 7000B7E8 8FA7001C */ lw $a3, 0x1c($sp) +/* 00C3EC 7000B7EC 240D0001 */ li $t5, 1 +/* 00C3F0 7000B7F0 10000003 */ b .L7000B800 +/* 00C3F4 7000B7F4 ACED0000 */ sw $t5, ($a3) +.L7000B7F8: +/* 00C3F8 7000B7F8 240EFFFF */ li $t6, -1 +/* 00C3FC 7000B7FC ACEE0000 */ sw $t6, ($a3) +.L7000B800: +/* 00C400 7000B800 8FBF0014 */ lw $ra, 0x14($sp) +.L7000B804: +/* 00C404 7000B804 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00C408 7000B808 03E00008 */ jr $ra +/* 00C40C 7000B80C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 controller_check_for_rumble_maybe(void) +{ + s32 temp_a0; + s32 temp_a1; + s32 temp_s0; + s32 temp_s0_2; + s32 temp_v0_2; + u32 temp_v1; + void *temp_v0; + s8 phi_s0; + s32 phi_s0_2; + s32 phi_s0_3; + void *phi_a3; + void *phi_a2; + u32 phi_v1; + s32 phi_a1; + void *phi_a3_2; + s32 phi_return; + s8 phi_s0_4; + s32 phi_return_2; + s8 phi_s0_5; + s8 phi_s0_6; + + if (D_8002692C != 0) + { + D_8002692C = 0; + D_8002691C = 1; + phi_return_2 = osContInit(&contdemoMesgMQ, &num_controller_plugged_in_flags, &player1_controllerstatus); + } + else + { + osContStartQuery(&contdemoMesgMQ); + osRecvMesg(&contdemoMesgMQ, 0, 1); + phi_s0_6 = (u8)0xf; + if ((*(player1_controllerstatus + 3) & 8) != 0) + { + phi_s0_6 = (u8)0xe; + } + phi_s0_5 = phi_s0_6; + if ((*(player2_controllerstatus + 3) & 8) != 0) + { + phi_s0_5 = phi_s0_6 + -2; + } + phi_s0_4 = phi_s0_5; + if ((*(player3_controllerstatus + 3) & 8) != 0) + { + phi_s0_4 = phi_s0_5 + -4; + } + phi_s0 = phi_s0_4; + if ((*(player4_controllerstatus + 3) & 8) != 0) + { + phi_s0 = phi_s0_4 + -8; + } + num_controller_plugged_in_flags = (s8) phi_s0; + phi_return_2 = osContGetQuery(&player1_controllerstatus); + } + phi_s0_2 = 0; +loop_12: + temp_s0 = (s32) ((phi_s0_2 + 1) << 0x18) >> 0x18; + phi_s0_2 = temp_s0; + if (temp_s0 < 4) + { + goto loop_12; + } + phi_s0_3 = 0; + phi_a3 = &num_controller_plugged_in_flags_0; + phi_a2 = &controller_1_rumble_inserted; +loop_14: + temp_a1 = 1 << phi_s0_3; + temp_v1 = *phi_a3; + if ((((num_controller_plugged_in_flags & temp_a1) != 0) && ((temp_v0->unk0 & 3) != 0)) && (temp_v0->unk3 == 0)) + { + if (((temp_v0_2 & temp_a1) != 0) || (*(phi_a2 + temp_a0) <= 0)) + { + phi_v1 = num_controller_plugged_in_flags_0; + phi_a1 = sp24; + phi_a3_2 = &num_controller_plugged_in_flags_0; + phi_return = controller_7000B734(phi_s0_3, temp_a1, phi_a2, phi_a3); + phi_a2 = &controller_1_rumble_inserted; + } + else + { + + } + *phi_a3_2 = (s8) (phi_v1 | phi_a1); + phi_a3 = phi_a3_2; + } + else + { + phi_return = phi_return_2; + phi_a3 = phi_a3; + phi_a2 = phi_a2; + if ((temp_v1 & temp_a1) != 0) + { + *phi_a3 = (s8) (temp_v1 ^ temp_a1); + *(phi_a2 + (phi_s0_3 * 4)) = 0; + phi_return = phi_return_2; + phi_a3 = phi_a3; + phi_a2 = phi_a2; + } + } + temp_s0_2 = (s32) ((phi_s0_3 + 1) << 0x18) >> 0x18; + phi_s0_3 = temp_s0_2; + phi_return_2 = phi_return; + if (temp_s0_2 < 4) + { + goto loop_14; + } + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel controller_check_for_rumble_maybe +/* 00C410 7000B810 3C028002 */ lui $v0, %hi(D_8002692C) +/* 00C414 7000B814 2442692C */ addiu $v0, %lo(D_8002692C) # addiu $v0, $v0, 0x692c +/* 00C418 7000B818 8C4E0000 */ lw $t6, ($v0) +/* 00C41C 7000B81C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 00C420 7000B820 AFBF001C */ sw $ra, 0x1c($sp) +/* 00C424 7000B824 11C0000D */ beqz $t6, .L7000B85C +/* 00C428 7000B828 AFB00018 */ sw $s0, 0x18($sp) +/* 00C42C 7000B82C 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00C430 7000B830 3C058002 */ lui $a1, %hi(num_controller_plugged_in_flags) +/* 00C434 7000B834 3C068006 */ lui $a2, %hi(player1_controllerstatus) +/* 00C438 7000B838 AC400000 */ sw $zero, ($v0) +/* 00C43C 7000B83C 24C653E8 */ addiu $a2, %lo(player1_controllerstatus) # addiu $a2, $a2, 0x53e8 +/* 00C440 7000B840 24A568D0 */ addiu $a1, %lo(num_controller_plugged_in_flags) # addiu $a1, $a1, 0x68d0 +/* 00C444 7000B844 0C005240 */ jal osContInit +/* 00C448 7000B848 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00C44C 7000B84C 240F0001 */ li $t7, 1 +/* 00C450 7000B850 3C018002 */ lui $at, %hi(D_8002691C) +/* 00C454 7000B854 10000026 */ b .L7000B8F0 +/* 00C458 7000B858 AC2F691C */ sw $t7, %lo(D_8002691C)($at) +.L7000B85C: +/* 00C45C 7000B85C 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00C460 7000B860 2410000F */ li $s0, 15 +/* 00C464 7000B864 0C005330 */ jal osContStartQuery +/* 00C468 7000B868 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00C46C 7000B86C 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00C470 7000B870 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00C474 7000B874 00002825 */ move $a1, $zero +/* 00C478 7000B878 0C003774 */ jal osRecvMesg +/* 00C47C 7000B87C 24060001 */ li $a2, 1 +/* 00C480 7000B880 3C048006 */ lui $a0, %hi(player1_controllerstatus) +/* 00C484 7000B884 0C005351 */ jal osContGetQuery +/* 00C488 7000B888 248453E8 */ addiu $a0, %lo(player1_controllerstatus) # addiu $a0, $a0, 0x53e8 +/* 00C48C 7000B88C 3C188006 */ lui $t8, %hi(player1_controllerstatus+3) +/* 00C490 7000B890 931853EB */ lbu $t8, %lo(player1_controllerstatus+3)($t8) +/* 00C494 7000B894 3C088006 */ lui $t0, %hi(player2_controllerstatus+3) +/* 00C498 7000B898 3C0A8006 */ lui $t2, %hi(player3_controllerstatus+3) +/* 00C49C 7000B89C 33190008 */ andi $t9, $t8, 8 +/* 00C4A0 7000B8A0 13200002 */ beqz $t9, .L7000B8AC +/* 00C4A4 7000B8A4 3C0C8006 */ lui $t4, %hi(player4_controllerstatus+3) +/* 00C4A8 7000B8A8 2410000E */ li $s0, 14 +.L7000B8AC: +/* 00C4AC 7000B8AC 910853EF */ lbu $t0, %lo(player2_controllerstatus+3)($t0) +/* 00C4B0 7000B8B0 3C018002 */ lui $at, %hi(num_controller_plugged_in_flags) +/* 00C4B4 7000B8B4 31090008 */ andi $t1, $t0, 8 +/* 00C4B8 7000B8B8 11200002 */ beqz $t1, .L7000B8C4 +/* 00C4BC 7000B8BC 00000000 */ nop +/* 00C4C0 7000B8C0 2610FFFE */ addiu $s0, $s0, -2 +.L7000B8C4: +/* 00C4C4 7000B8C4 914A53F3 */ lbu $t2, %lo(player3_controllerstatus+3)($t2) +/* 00C4C8 7000B8C8 314B0008 */ andi $t3, $t2, 8 +/* 00C4CC 7000B8CC 11600002 */ beqz $t3, .L7000B8D8 +/* 00C4D0 7000B8D0 00000000 */ nop +/* 00C4D4 7000B8D4 2610FFFC */ addiu $s0, $s0, -4 +.L7000B8D8: +/* 00C4D8 7000B8D8 918C53F7 */ lbu $t4, %lo(player4_controllerstatus+3)($t4) +/* 00C4DC 7000B8DC 318D0008 */ andi $t5, $t4, 8 +/* 00C4E0 7000B8E0 11A00002 */ beqz $t5, .L7000B8EC +/* 00C4E4 7000B8E4 00000000 */ nop +/* 00C4E8 7000B8E8 2610FFF8 */ addiu $s0, $s0, -8 +.L7000B8EC: +/* 00C4EC 7000B8EC A03068D0 */ sb $s0, %lo(num_controller_plugged_in_flags)($at) +.L7000B8F0: +/* 00C4F0 7000B8F0 00008025 */ move $s0, $zero +/* 00C4F4 7000B8F4 26100001 */ addiu $s0, $s0, 1 +.L7000B8F8: +/* 00C4F8 7000B8F8 00107600 */ sll $t6, $s0, 0x18 +/* 00C4FC 7000B8FC 000E8603 */ sra $s0, $t6, 0x18 +/* 00C500 7000B900 2A010004 */ slti $at, $s0, 4 +/* 00C504 7000B904 5420FFFC */ bnezl $at, .L7000B8F8 +/* 00C508 7000B908 26100001 */ addiu $s0, $s0, 1 +/* 00C50C 7000B90C 3C078002 */ lui $a3, %hi(num_controller_plugged_in_flags_0) +/* 00C510 7000B910 3C068002 */ lui $a2, %hi(controller_1_rumble_inserted) +/* 00C514 7000B914 24C668D8 */ addiu $a2, %lo(controller_1_rumble_inserted) # addiu $a2, $a2, 0x68d8 +/* 00C518 7000B918 24E768D4 */ addiu $a3, %lo(num_controller_plugged_in_flags_0) # addiu $a3, $a3, 0x68d4 +/* 00C51C 7000B91C 00008025 */ move $s0, $zero +.L7000B920: +/* 00C520 7000B920 3C198002 */ lui $t9, %hi(num_controller_plugged_in_flags) +/* 00C524 7000B924 933968D0 */ lbu $t9, %lo(num_controller_plugged_in_flags)($t9) +/* 00C528 7000B928 24180001 */ li $t8, 1 +/* 00C52C 7000B92C 02182804 */ sllv $a1, $t8, $s0 +/* 00C530 7000B930 03254024 */ and $t0, $t9, $a1 +/* 00C534 7000B934 1100001E */ beqz $t0, .L7000B9B0 +/* 00C538 7000B938 90E30000 */ lbu $v1, ($a3) +/* 00C53C 7000B93C 3C098006 */ lui $t1, %hi(player1_controllerstatus) +/* 00C540 7000B940 252953E8 */ addiu $t1, %lo(player1_controllerstatus) # addiu $t1, $t1, 0x53e8 +/* 00C544 7000B944 00102080 */ sll $a0, $s0, 2 +/* 00C548 7000B948 00891021 */ addu $v0, $a0, $t1 +/* 00C54C 7000B94C 944A0000 */ lhu $t2, ($v0) +/* 00C550 7000B950 314B0003 */ andi $t3, $t2, 3 +/* 00C554 7000B954 51600017 */ beql $t3, $zero, .L7000B9B4 +/* 00C558 7000B958 0065C824 */ and $t9, $v1, $a1 +/* 00C55C 7000B95C 904C0003 */ lbu $t4, 3($v0) +/* 00C560 7000B960 2C620001 */ sltiu $v0, $v1, 1 +/* 00C564 7000B964 00456824 */ and $t5, $v0, $a1 +/* 00C568 7000B968 55800012 */ bnezl $t4, .L7000B9B4 +/* 00C56C 7000B96C 0065C824 */ and $t9, $v1, $a1 +/* 00C570 7000B970 15A00003 */ bnez $t5, .L7000B980 +/* 00C574 7000B974 00C47021 */ addu $t6, $a2, $a0 +/* 00C578 7000B978 8DCF0000 */ lw $t7, ($t6) +/* 00C57C 7000B97C 1DE00009 */ bgtz $t7, .L7000B9A4 +.L7000B980: +/* 00C580 7000B980 02002025 */ move $a0, $s0 +/* 00C584 7000B984 0C002DCD */ jal controller_7000B734 +/* 00C588 7000B988 AFA50024 */ sw $a1, 0x24($sp) +/* 00C58C 7000B98C 3C078002 */ lui $a3, %hi(num_controller_plugged_in_flags_0) +/* 00C590 7000B990 24E768D4 */ addiu $a3, %lo(num_controller_plugged_in_flags_0) # addiu $a3, $a3, 0x68d4 +/* 00C594 7000B994 3C068002 */ lui $a2, %hi(controller_1_rumble_inserted) +/* 00C598 7000B998 24C668D8 */ addiu $a2, %lo(controller_1_rumble_inserted) # addiu $a2, $a2, 0x68d8 +/* 00C59C 7000B99C 90E30000 */ lbu $v1, ($a3) +/* 00C5A0 7000B9A0 8FA50024 */ lw $a1, 0x24($sp) +.L7000B9A4: +/* 00C5A4 7000B9A4 0065C025 */ or $t8, $v1, $a1 +/* 00C5A8 7000B9A8 10000008 */ b .L7000B9CC +/* 00C5AC 7000B9AC A0F80000 */ sb $t8, ($a3) +.L7000B9B0: +/* 00C5B0 7000B9B0 0065C824 */ and $t9, $v1, $a1 +.L7000B9B4: +/* 00C5B4 7000B9B4 13200005 */ beqz $t9, .L7000B9CC +/* 00C5B8 7000B9B8 00654026 */ xor $t0, $v1, $a1 +/* 00C5BC 7000B9BC 00104880 */ sll $t1, $s0, 2 +/* 00C5C0 7000B9C0 00C95021 */ addu $t2, $a2, $t1 +/* 00C5C4 7000B9C4 A0E80000 */ sb $t0, ($a3) +/* 00C5C8 7000B9C8 AD400000 */ sw $zero, ($t2) +.L7000B9CC: +/* 00C5CC 7000B9CC 26100001 */ addiu $s0, $s0, 1 +/* 00C5D0 7000B9D0 00105E00 */ sll $t3, $s0, 0x18 +/* 00C5D4 7000B9D4 000B8603 */ sra $s0, $t3, 0x18 +/* 00C5D8 7000B9D8 2A010004 */ slti $at, $s0, 4 +/* 00C5DC 7000B9DC 1420FFD0 */ bnez $at, .L7000B920 +/* 00C5E0 7000B9E0 00000000 */ nop +/* 00C5E4 7000B9E4 8FBF001C */ lw $ra, 0x1c($sp) +/* 00C5E8 7000B9E8 8FB00018 */ lw $s0, 0x18($sp) +/* 00C5EC 7000B9EC 27BD0038 */ addiu $sp, $sp, 0x38 +/* 00C5F0 7000B9F0 03E00008 */ jr $ra +/* 00C5F4 7000B9F4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 get_attached_controller_count(void) +{ + if (ptr_current_point_in_controller_input_index->unk1F8 >= 0) + { + return (s32) (ptr_current_point_in_controller_input_index->unk1F8 << 0x18) >> 0x18; + } + if (((void *)0x80020000->unk68D0 & 1) == 0) + { + return 0; + } + if (((void *)0x80020000->unk68D0 & 2) == 0) + { + return 1; + } + if (((void *)0x80020000->unk68D0 & 4) == 0) + { + return 2; + } + if (((void *)0x80020000->unk68D0 & 8) == 0) + { + return 3; + } + return 4; +} +#else +GLOBAL_ASM( +.text +glabel get_attached_controller_count +/* 00C5F8 7000B9F8 3C0E8002 */ lui $t6, %hi(ptr_current_point_in_controller_input_index) +/* 00C5FC 7000B9FC 8DCE68C4 */ lw $t6, %lo(ptr_current_point_in_controller_input_index)($t6) +/* 00C600 7000BA00 3C028002 */ lui $v0, %hi(num_controller_plugged_in_flags) +/* 00C604 7000BA04 8DC301F8 */ lw $v1, 0x1f8($t6) +/* 00C608 7000BA08 04600005 */ bltz $v1, .L7000BA20 +/* 00C60C 7000BA0C 00000000 */ nop +/* 00C610 7000BA10 00031600 */ sll $v0, $v1, 0x18 +/* 00C614 7000BA14 00027E03 */ sra $t7, $v0, 0x18 +/* 00C618 7000BA18 03E00008 */ jr $ra +/* 00C61C 7000BA1C 01E01025 */ move $v0, $t7 + +.L7000BA20: +/* 00C620 7000BA20 904268D0 */ lbu $v0, %lo(num_controller_plugged_in_flags)($v0) +/* 00C624 7000BA24 30580001 */ andi $t8, $v0, 1 +/* 00C628 7000BA28 17000003 */ bnez $t8, .L7000BA38 +/* 00C62C 7000BA2C 30590002 */ andi $t9, $v0, 2 +/* 00C630 7000BA30 03E00008 */ jr $ra +/* 00C634 7000BA34 00001025 */ move $v0, $zero + +.L7000BA38: +/* 00C638 7000BA38 17200003 */ bnez $t9, .L7000BA48 +/* 00C63C 7000BA3C 30480004 */ andi $t0, $v0, 4 +/* 00C640 7000BA40 03E00008 */ jr $ra +/* 00C644 7000BA44 24020001 */ li $v0, 1 + +.L7000BA48: +/* 00C648 7000BA48 15000003 */ bnez $t0, .L7000BA58 +/* 00C64C 7000BA4C 30490008 */ andi $t1, $v0, 8 +/* 00C650 7000BA50 03E00008 */ jr $ra +/* 00C654 7000BA54 24020002 */ li $v0, 2 + +.L7000BA58: +/* 00C658 7000BA58 15200003 */ bnez $t1, .L7000BA68 +/* 00C65C 7000BA5C 24020004 */ li $v0, 4 +/* 00C660 7000BA60 03E00008 */ jr $ra +/* 00C664 7000BA64 24020003 */ li $v0, 3 + +.L7000BA68: +/* 00C668 7000BA68 03E00008 */ jr $ra +/* 00C66C 7000BA6C 00000000 */ nop +) +#endif + + + + + + +u8 get_num_controllers_plugged_in(void) +{ + return num_controller_plugged_in_flags; +} + + + + + + + +#ifdef NONMATCHING +s32 controller_rumble_related(void) { + s32 temp_t1; + s32 temp_a0; + + // Node 0 + // Node 1 + if (controller_1_rumble_state != controller_1_rumble_pulse) + { + // Node 2 + temp_a0 = ((0 * 0x68) + &player1_controller_packet); + if (1 == controller_1_rumble_pulse) + { + // Node 3 + if (osMotorStart(temp_a0) == 0) + { + // Node 4 + controller_1_rumble_state = 1; + } + else + { + // Node 5 + *(0 + &controller_1_rumble_inserted) = 0; + } + } + else + { + // Node 6 + if (osMotorStop(temp_a0) == 0) + { + // Node 7 + controller_1_rumble_state = 0; + } + else + { + // Node 8 + *(0 + &controller_1_rumble_inserted) = 0; + } + } + } + // Node 9 + if (controller_1_rumble_duration <= 0) + { + // Node 10 + controller_1_rumble_duration = 0; + } + else + { + // Node 11 + temp_t1 = (controller_1_rumble_duration + -1); + controller_1_rumble_duration = temp_t1; + if (temp_t1 <= 0) + { + // Node 12 + controller_1_rumble_duration = 0; + controller_1_rumble_pulse = 0; + } + } + // Node 13 + if ((0 + 1) != 4) + { + goto loop_1; + } + // (possible return value: controller_1_rumble_duration) +} +#endif + +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel controller_rumble_related +/* 00C67C 7000BA7C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 00C680 7000BA80 AFB40028 */ sw $s4, 0x28($sp) +/* 00C684 7000BA84 AFB1001C */ sw $s1, 0x1c($sp) +/* 00C688 7000BA88 AFB00018 */ sw $s0, 0x18($sp) +/* 00C68C 7000BA8C AFB60030 */ sw $s6, 0x30($sp) +/* 00C690 7000BA90 AFB5002C */ sw $s5, 0x2c($sp) +/* 00C694 7000BA94 AFB30024 */ sw $s3, 0x24($sp) +/* 00C698 7000BA98 AFB20020 */ sw $s2, 0x20($sp) +/* 00C69C 7000BA9C 3C108002 */ lui $s0, %hi(controller_1_rumble_duration) +/* 00C6A0 7000BAA0 3C118002 */ lui $s1, %hi(controller_1_rumble_state) +/* 00C6A4 7000BAA4 3C148002 */ lui $s4, %hi(controller_1_rumble_pulse) +/* 00C6A8 7000BAA8 AFBF0034 */ sw $ra, 0x34($sp) +/* 00C6AC 7000BAAC 26946908 */ addiu $s4, %lo(controller_1_rumble_pulse) # addiu $s4, $s4, 0x6908 +/* 00C6B0 7000BAB0 263168E8 */ addiu $s1, %lo(controller_1_rumble_state) # addiu $s1, $s1, 0x68e8 +/* 00C6B4 7000BAB4 261068F8 */ addiu $s0, %lo(controller_1_rumble_duration) # addiu $s0, $s0, 0x68f8 +/* 00C6B8 7000BAB8 00009025 */ move $s2, $zero +/* 00C6BC 7000BABC 00009825 */ move $s3, $zero +/* 00C6C0 7000BAC0 24150001 */ li $s5, 1 +/* 00C6C4 7000BAC4 24160004 */ li $s6, 4 +.L7000BAC8: +/* 00C6C8 7000BAC8 8E820000 */ lw $v0, ($s4) +/* 00C6CC 7000BACC 8E2E0000 */ lw $t6, ($s1) +/* 00C6D0 7000BAD0 00127880 */ sll $t7, $s2, 2 +/* 00C6D4 7000BAD4 01F27823 */ subu $t7, $t7, $s2 +/* 00C6D8 7000BAD8 11C2001A */ beq $t6, $v0, .L7000BB44 +/* 00C6DC 7000BADC 000F7880 */ sll $t7, $t7, 2 +/* 00C6E0 7000BAE0 01F27821 */ addu $t7, $t7, $s2 +/* 00C6E4 7000BAE4 3C188006 */ lui $t8, %hi(player1_controller_packet) +/* 00C6E8 7000BAE8 271853F8 */ addiu $t8, %lo(player1_controller_packet) # addiu $t8, $t8, 0x53f8 +/* 00C6EC 7000BAEC 000F78C0 */ sll $t7, $t7, 3 +/* 00C6F0 7000BAF0 16A2000B */ bne $s5, $v0, .L7000BB20 +/* 00C6F4 7000BAF4 01F82021 */ addu $a0, $t7, $t8 +/* 00C6F8 7000BAF8 0C0032AB */ jal osMotorStart +/* 00C6FC 7000BAFC 00000000 */ nop +/* 00C700 7000BB00 14400003 */ bnez $v0, .L7000BB10 +/* 00C704 7000BB04 3C198002 */ lui $t9, %hi(controller_1_rumble_inserted) +/* 00C708 7000BB08 1000000E */ b .L7000BB44 +/* 00C70C 7000BB0C AE350000 */ sw $s5, ($s1) +.L7000BB10: +/* 00C710 7000BB10 273968D8 */ addiu $t9, %lo(controller_1_rumble_inserted) # addiu $t9, $t9, 0x68d8 +/* 00C714 7000BB14 02791021 */ addu $v0, $s3, $t9 +/* 00C718 7000BB18 1000000A */ b .L7000BB44 +/* 00C71C 7000BB1C AC400000 */ sw $zero, ($v0) +.L7000BB20: +/* 00C720 7000BB20 0C003260 */ jal osMotorStop +/* 00C724 7000BB24 00000000 */ nop +/* 00C728 7000BB28 14400003 */ bnez $v0, .L7000BB38 +/* 00C72C 7000BB2C 3C088002 */ lui $t0, %hi(controller_1_rumble_inserted) +/* 00C730 7000BB30 10000004 */ b .L7000BB44 +/* 00C734 7000BB34 AE200000 */ sw $zero, ($s1) +.L7000BB38: +/* 00C738 7000BB38 250868D8 */ addiu $t0, %lo(controller_1_rumble_inserted) # addiu $t0, $t0, 0x68d8 +/* 00C73C 7000BB3C 02681021 */ addu $v0, $s3, $t0 +/* 00C740 7000BB40 AC400000 */ sw $zero, ($v0) +.L7000BB44: +/* 00C744 7000BB44 8E020000 */ lw $v0, ($s0) +/* 00C748 7000BB48 26520001 */ addiu $s2, $s2, 1 +/* 00C74C 7000BB4C 26730004 */ addiu $s3, $s3, 4 +/* 00C750 7000BB50 1C400003 */ bgtz $v0, .L7000BB60 +/* 00C754 7000BB54 26310004 */ addiu $s1, $s1, 4 +/* 00C758 7000BB58 10000006 */ b .L7000BB74 +/* 00C75C 7000BB5C AE000000 */ sw $zero, ($s0) +.L7000BB60: +/* 00C760 7000BB60 2449FFFF */ addiu $t1, $v0, -1 +/* 00C764 7000BB64 1D200003 */ bgtz $t1, .L7000BB74 +/* 00C768 7000BB68 AE090000 */ sw $t1, ($s0) +/* 00C76C 7000BB6C AE000000 */ sw $zero, ($s0) +/* 00C770 7000BB70 AE800000 */ sw $zero, ($s4) +.L7000BB74: +/* 00C774 7000BB74 26940004 */ addiu $s4, $s4, 4 +/* 00C778 7000BB78 1656FFD3 */ bne $s2, $s6, .L7000BAC8 +/* 00C77C 7000BB7C 26100004 */ addiu $s0, $s0, 4 +/* 00C780 7000BB80 8FBF0034 */ lw $ra, 0x34($sp) +/* 00C784 7000BB84 8FB00018 */ lw $s0, 0x18($sp) +/* 00C788 7000BB88 8FB1001C */ lw $s1, 0x1c($sp) +/* 00C78C 7000BB8C 8FB20020 */ lw $s2, 0x20($sp) +/* 00C790 7000BB90 8FB30024 */ lw $s3, 0x24($sp) +/* 00C794 7000BB94 8FB40028 */ lw $s4, 0x28($sp) +/* 00C798 7000BB98 8FB5002C */ lw $s5, 0x2c($sp) +/* 00C79C 7000BB9C 8FB60030 */ lw $s6, 0x30($sp) +/* 00C7A0 7000BBA0 03E00008 */ jr $ra +/* 00C7A4 7000BBA4 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel controller_rumble_related +/* 00C68C 7000BA8C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 00C690 7000BA90 AFB5002C */ sw $s5, 0x2c($sp) +/* 00C694 7000BA94 AFB20020 */ sw $s2, 0x20($sp) +/* 00C698 7000BA98 AFB1001C */ sw $s1, 0x1c($sp) +/* 00C69C 7000BA9C AFBE0038 */ sw $fp, 0x38($sp) +/* 00C6A0 7000BAA0 AFB70034 */ sw $s7, 0x34($sp) +/* 00C6A4 7000BAA4 AFB60030 */ sw $s6, 0x30($sp) +/* 00C6A8 7000BAA8 AFB40028 */ sw $s4, 0x28($sp) +/* 00C6AC 7000BAAC AFB30024 */ sw $s3, 0x24($sp) +/* 00C6B0 7000BAB0 3C118002 */ lui $s1, %hi(controller_1_rumble_duration) # $s1, 0x8002 +/* 00C6B4 7000BAB4 3C128002 */ lui $s2, %hi(controller_1_rumble_state) # $s2, 0x8002 +/* 00C6B8 7000BAB8 3C158002 */ lui $s5, %hi(controller_1_rumble_pulse) # $s5, 0x8002 +/* 00C6BC 7000BABC AFBF003C */ sw $ra, 0x3c($sp) +/* 00C6C0 7000BAC0 AFB00018 */ sw $s0, 0x18($sp) +/* 00C6C4 7000BAC4 26B56948 */ addiu $s5, %lo(controller_1_rumble_pulse) # addiu $s5, $s5, 0x6948 +/* 00C6C8 7000BAC8 26526928 */ addiu $s2, %lo(controller_1_rumble_state) # addiu $s2, $s2, 0x6928 +/* 00C6CC 7000BACC 26316938 */ addiu $s1, %lo(controller_1_rumble_duration) # addiu $s1, $s1, 0x6938 +/* 00C6D0 7000BAD0 00009825 */ move $s3, $zero +/* 00C6D4 7000BAD4 0000A025 */ move $s4, $zero +/* 00C6D8 7000BAD8 24160001 */ li $s6, 1 +/* 00C6DC 7000BADC 24170004 */ li $s7, 4 +/* 00C6E0 7000BAE0 241E0002 */ li $fp, 2 +.Ljp7000BAE4: +/* 00C6E4 7000BAE4 8EA20000 */ lw $v0, ($s5) +/* 00C6E8 7000BAE8 8E4E0000 */ lw $t6, ($s2) +/* 00C6EC 7000BAEC 00137880 */ sll $t7, $s3, 2 +/* 00C6F0 7000BAF0 01F37823 */ subu $t7, $t7, $s3 +/* 00C6F4 7000BAF4 11C2002A */ beq $t6, $v0, .Ljp7000BBA0 +/* 00C6F8 7000BAF8 000F7880 */ sll $t7, $t7, 2 +/* 00C6FC 7000BAFC 01F37821 */ addu $t7, $t7, $s3 +/* 00C700 7000BB00 3C188006 */ lui $t8, %hi(player1_controller_packet) # $t8, 0x8006 +/* 00C704 7000BB04 27185438 */ addiu $t8, %lo(player1_controller_packet) # addiu $t8, $t8, 0x5438 +/* 00C708 7000BB08 000F78C0 */ sll $t7, $t7, 3 +/* 00C70C 7000BB0C 16C2000B */ bne $s6, $v0, .Ljp7000BB3C +/* 00C710 7000BB10 01F88021 */ addu $s0, $t7, $t8 +/* 00C714 7000BB14 0C0032BB */ jal osMotorStart +/* 00C718 7000BB18 02002025 */ move $a0, $s0 +/* 00C71C 7000BB1C 14400003 */ bnez $v0, .Ljp7000BB2C +/* 00C720 7000BB20 3C198002 */ lui $t9, %hi(controller_1_rumble_inserted) # $t9, 0x8002 +/* 00C724 7000BB24 1000001E */ b .Ljp7000BBA0 +/* 00C728 7000BB28 AE560000 */ sw $s6, ($s2) +.Ljp7000BB2C: +/* 00C72C 7000BB2C 27396918 */ addiu $t9, %lo(controller_1_rumble_inserted) # addiu $t9, $t9, 0x6918 +/* 00C730 7000BB30 02991021 */ addu $v0, $s4, $t9 +/* 00C734 7000BB34 1000001A */ b .Ljp7000BBA0 +/* 00C738 7000BB38 AC400000 */ sw $zero, ($v0) +.Ljp7000BB3C: +/* 00C73C 7000BB3C 17C2000F */ bne $fp, $v0, .Ljp7000BB7C +/* 00C740 7000BB40 3C048006 */ lui $a0, %hi(contdemoMesgMQ) # $a0, 0x8006 +/* 00C744 7000BB44 24845390 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5390 +/* 00C748 7000BB48 02002825 */ move $a1, $s0 +/* 00C74C 7000BB4C 0C00335E */ jal osMotorInit +/* 00C750 7000BB50 02603025 */ move $a2, $s3 +/* 00C754 7000BB54 10400004 */ beqz $v0, .Ljp7000BB68 +/* 00C758 7000BB58 3C088002 */ lui $t0, %hi(controller_1_rumble_inserted) # $t0, 0x8002 +/* 00C75C 7000BB5C 25086918 */ addiu $t0, %lo(controller_1_rumble_inserted) # addiu $t0, $t0, 0x6918 +/* 00C760 7000BB60 02881021 */ addu $v0, $s4, $t0 +/* 00C764 7000BB64 AC400000 */ sw $zero, ($v0) +.Ljp7000BB68: +/* 00C768 7000BB68 0C003270 */ jal osMotorStop +/* 00C76C 7000BB6C 02002025 */ move $a0, $s0 +/* 00C770 7000BB70 AE400000 */ sw $zero, ($s2) +/* 00C774 7000BB74 1000000A */ b .Ljp7000BBA0 +/* 00C778 7000BB78 AEA00000 */ sw $zero, ($s5) +.Ljp7000BB7C: +/* 00C77C 7000BB7C 0C003270 */ jal osMotorStop +/* 00C780 7000BB80 02002025 */ move $a0, $s0 +/* 00C784 7000BB84 14400003 */ bnez $v0, .Ljp7000BB94 +/* 00C788 7000BB88 3C098002 */ lui $t1, %hi(controller_1_rumble_inserted) # $t1, 0x8002 +/* 00C78C 7000BB8C 10000004 */ b .Ljp7000BBA0 +/* 00C790 7000BB90 AE400000 */ sw $zero, ($s2) +.Ljp7000BB94: +/* 00C794 7000BB94 25296918 */ addiu $t1, %lo(controller_1_rumble_inserted) # addiu $t1, $t1, 0x6918 +/* 00C798 7000BB98 02891021 */ addu $v0, $s4, $t1 +/* 00C79C 7000BB9C AC400000 */ sw $zero, ($v0) +.Ljp7000BBA0: +/* 00C7A0 7000BBA0 8E220000 */ lw $v0, ($s1) +/* 00C7A4 7000BBA4 26730001 */ addiu $s3, $s3, 1 +/* 00C7A8 7000BBA8 26940004 */ addiu $s4, $s4, 4 +/* 00C7AC 7000BBAC 1C400003 */ bgtz $v0, .Ljp7000BBBC +/* 00C7B0 7000BBB0 26520004 */ addiu $s2, $s2, 4 +/* 00C7B4 7000BBB4 10000006 */ b .Ljp7000BBD0 +/* 00C7B8 7000BBB8 AE200000 */ sw $zero, ($s1) +.Ljp7000BBBC: +/* 00C7BC 7000BBBC 244AFFFF */ addiu $t2, $v0, -1 +/* 00C7C0 7000BBC0 1D400003 */ bgtz $t2, .Ljp7000BBD0 +/* 00C7C4 7000BBC4 AE2A0000 */ sw $t2, ($s1) +/* 00C7C8 7000BBC8 AE200000 */ sw $zero, ($s1) +/* 00C7CC 7000BBCC AEA00000 */ sw $zero, ($s5) +.Ljp7000BBD0: +/* 00C7D0 7000BBD0 26B50004 */ addiu $s5, $s5, 4 +/* 00C7D4 7000BBD4 1677FFC3 */ bne $s3, $s7, .Ljp7000BAE4 +/* 00C7D8 7000BBD8 26310004 */ addiu $s1, $s1, 4 +/* 00C7DC 7000BBDC 8FBF003C */ lw $ra, 0x3c($sp) +/* 00C7E0 7000BBE0 8FB00018 */ lw $s0, 0x18($sp) +/* 00C7E4 7000BBE4 8FB1001C */ lw $s1, 0x1c($sp) +/* 00C7E8 7000BBE8 8FB20020 */ lw $s2, 0x20($sp) +/* 00C7EC 7000BBEC 8FB30024 */ lw $s3, 0x24($sp) +/* 00C7F0 7000BBF0 8FB40028 */ lw $s4, 0x28($sp) +/* 00C7F4 7000BBF4 8FB5002C */ lw $s5, 0x2c($sp) +/* 00C7F8 7000BBF8 8FB60030 */ lw $s6, 0x30($sp) +/* 00C7FC 7000BBFC 8FB70034 */ lw $s7, 0x34($sp) +/* 00C800 7000BC00 8FBE0038 */ lw $fp, 0x38($sp) +/* 00C804 7000BC04 03E00008 */ jr $ra +/* 00C808 7000BC08 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + + + + +void set_disable_all_rumble_and_something(s32 arg0, s32 arg1) { + disable_all_rumble = arg0; + dword_CODE_bss_80065324 = arg1; +} + +void set_ptr_tlb_ramrom_record(s32 arg0) +{ + ptr_to_tlb_ramrom_record = arg0; +} + + + + + + +#ifdef NONMATCHING +void probably_ramrom_related(void) { + +} +#else +GLOBAL_ASM( +.text +glabel probably_ramrom_related +/* 00C7C8 7000BBC8 8C8E01E0 */ lw $t6, 0x1e0($a0) +/* 00C7CC 7000BBCC 8C8F01E8 */ lw $t7, 0x1e8($a0) +/* 00C7D0 7000BBD0 00001025 */ move $v0, $zero +/* 00C7D4 7000BBD4 24090014 */ li $t1, 20 +/* 00C7D8 7000BBD8 AC8E01E4 */ sw $t6, 0x1e4($a0) +/* 00C7DC 7000BBDC AC8F01E0 */ sw $t7, 0x1e0($a0) +/* 00C7E0 7000BBE0 0002C040 */ sll $t8, $v0, 1 +.L7000BBE4: +/* 00C7E4 7000BBE4 00981821 */ addu $v1, $a0, $t8 +/* 00C7E8 7000BBE8 A46001F0 */ sh $zero, 0x1f0($v1) +/* 00C7EC 7000BBEC 8C9901E0 */ lw $t9, 0x1e0($a0) +/* 00C7F0 7000BBF0 8C8501E4 */ lw $a1, 0x1e4($a0) +/* 00C7F4 7000BBF4 10B9003D */ beq $a1, $t9, .L7000BCEC +/* 00C7F8 7000BBF8 24AA0001 */ addiu $t2, $a1, 1 +/* 00C7FC 7000BBFC 0149001A */ div $zero, $t2, $t1 +/* 00C800 7000BC00 00023880 */ sll $a3, $v0, 2 +/* 00C804 7000BC04 00003010 */ mfhi $a2 +/* 00C808 7000BC08 00E23823 */ subu $a3, $a3, $v0 +/* 00C80C 7000BC0C 00073840 */ sll $a3, $a3, 1 +/* 00C810 7000BC10 15200002 */ bnez $t1, .L7000BC1C +/* 00C814 7000BC14 00000000 */ nop +/* 00C818 7000BC18 0007000D */ break 7 +.L7000BC1C: +/* 00C81C 7000BC1C 2401FFFF */ li $at, -1 +/* 00C820 7000BC20 15210004 */ bne $t1, $at, .L7000BC34 +/* 00C824 7000BC24 3C018000 */ lui $at, 0x8000 +/* 00C828 7000BC28 15410002 */ bne $t2, $at, .L7000BC34 +/* 00C82C 7000BC2C 00000000 */ nop +/* 00C830 7000BC30 0006000D */ break 6 +.L7000BC34: +/* 00C834 7000BC34 24CE0013 */ addiu $t6, $a2, 0x13 +.L7000BC38: +/* 00C838 7000BC38 01C9001A */ div $zero, $t6, $t1 +/* 00C83C 7000BC3C 00007810 */ mfhi $t7 +/* 00C840 7000BC40 000FC080 */ sll $t8, $t7, 2 +/* 00C844 7000BC44 00065880 */ sll $t3, $a2, 2 +/* 00C848 7000BC48 030FC023 */ subu $t8, $t8, $t7 +/* 00C84C 7000BC4C 01665823 */ subu $t3, $t3, $a2 +/* 00C850 7000BC50 0018C0C0 */ sll $t8, $t8, 3 +/* 00C854 7000BC54 000B58C0 */ sll $t3, $t3, 3 +/* 00C858 7000BC58 0098C821 */ addu $t9, $a0, $t8 +/* 00C85C 7000BC5C 008B6021 */ addu $t4, $a0, $t3 +/* 00C860 7000BC60 03275021 */ addu $t2, $t9, $a3 +/* 00C864 7000BC64 95480000 */ lhu $t0, ($t2) +/* 00C868 7000BC68 01876821 */ addu $t5, $t4, $a3 +/* 00C86C 7000BC6C 95A50000 */ lhu $a1, ($t5) +/* 00C870 7000BC70 946B01F0 */ lhu $t3, 0x1f0($v1) +/* 00C874 7000BC74 01006027 */ not $t4, $t0 +/* 00C878 7000BC78 15200002 */ bnez $t1, .L7000BC84 +/* 00C87C 7000BC7C 00000000 */ nop +/* 00C880 7000BC80 0007000D */ break 7 +.L7000BC84: +/* 00C884 7000BC84 2401FFFF */ li $at, -1 +/* 00C888 7000BC88 15210004 */ bne $t1, $at, .L7000BC9C +/* 00C88C 7000BC8C 3C018000 */ lui $at, 0x8000 +/* 00C890 7000BC90 15C10002 */ bne $t6, $at, .L7000BC9C +/* 00C894 7000BC94 00000000 */ nop +/* 00C898 7000BC98 0006000D */ break 6 +.L7000BC9C: +/* 00C89C 7000BC9C 00AC6824 */ and $t5, $a1, $t4 +/* 00C8A0 7000BCA0 016D7025 */ or $t6, $t3, $t5 +/* 00C8A4 7000BCA4 A46E01F0 */ sh $t6, 0x1f0($v1) +/* 00C8A8 7000BCA8 8C8F01E0 */ lw $t7, 0x1e0($a0) +/* 00C8AC 7000BCAC 24D80001 */ addiu $t8, $a2, 1 +/* 00C8B0 7000BCB0 50CF000F */ beql $a2, $t7, .L7000BCF0 +/* 00C8B4 7000BCB4 24420001 */ addiu $v0, $v0, 1 +/* 00C8B8 7000BCB8 0309001A */ div $zero, $t8, $t1 +/* 00C8BC 7000BCBC 00003010 */ mfhi $a2 +/* 00C8C0 7000BCC0 15200002 */ bnez $t1, .L7000BCCC +/* 00C8C4 7000BCC4 00000000 */ nop +/* 00C8C8 7000BCC8 0007000D */ break 7 +.L7000BCCC: +/* 00C8CC 7000BCCC 2401FFFF */ li $at, -1 +/* 00C8D0 7000BCD0 15210004 */ bne $t1, $at, .L7000BCE4 +/* 00C8D4 7000BCD4 3C018000 */ lui $at, 0x8000 +/* 00C8D8 7000BCD8 17010002 */ bne $t8, $at, .L7000BCE4 +/* 00C8DC 7000BCDC 00000000 */ nop +/* 00C8E0 7000BCE0 0006000D */ break 6 +.L7000BCE4: +/* 00C8E4 7000BCE4 1000FFD4 */ b .L7000BC38 +/* 00C8E8 7000BCE8 24CE0013 */ addiu $t6, $a2, 0x13 +.L7000BCEC: +/* 00C8EC 7000BCEC 24420001 */ addiu $v0, $v0, 1 +.L7000BCF0: +/* 00C8F0 7000BCF0 0002CE00 */ sll $t9, $v0, 0x18 +/* 00C8F4 7000BCF4 00191603 */ sra $v0, $t9, 0x18 +/* 00C8F8 7000BCF8 28410004 */ slti $at, $v0, 4 +/* 00C8FC 7000BCFC 5420FFB9 */ bnezl $at, .L7000BBE4 +/* 00C900 7000BD00 0002C040 */ sll $t8, $v0, 1 +/* 00C904 7000BD04 03E00008 */ jr $ra +/* 00C908 7000BD08 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 redirect_to_ramrom_replay_and_record_handlers_if_set(void) { + // Node 0 + if (disable_all_rumble != 0) + { + // Node 1 + // Error: I don't know how to handle jalr! + } + // Node 2 + probably_ramrom_related(&controller_input_index); + if (ptr_to_tlb_ramrom_record != 0) + { + // Node 3 + // Error: I don't know how to handle jalr! + return; + // (function likely void) + } + // (possible return value: ptr_to_tlb_ramrom_record) +} +#else +GLOBAL_ASM( +.text +glabel redirect_to_ramrom_replay_and_record_handlers_if_set +/* 00C90C 7000BD0C 3C028002 */ lui $v0, %hi(disable_all_rumble) +/* 00C910 7000BD10 8C426924 */ lw $v0, %lo(disable_all_rumble)($v0) +/* 00C914 7000BD14 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00C918 7000BD18 AFBF0014 */ sw $ra, 0x14($sp) +/* 00C91C 7000BD1C 1040000A */ beqz $v0, .L7000BD48 +/* 00C920 7000BD20 3C048006 */ lui $a0, %hi(dword_CODE_bss_8006512C) +/* 00C924 7000BD24 3C058006 */ lui $a1, %hi(dword_CODE_bss_8006530C) +/* 00C928 7000BD28 8CA5530C */ lw $a1, %lo(dword_CODE_bss_8006530C)($a1) +/* 00C92C 7000BD2C 0040F809 */ jalr $v0 +/* 00C930 7000BD30 2484512C */ addiu $a0, %lo(dword_CODE_bss_8006512C) # addiu $a0, $a0, 0x512c +/* 00C934 7000BD34 3C018006 */ lui $at, %hi(dword_CODE_bss_80065314) +/* 00C938 7000BD38 3C048006 */ lui $a0, %hi(dword_CODE_bss_8006512C) +/* 00C93C 7000BD3C AC225314 */ sw $v0, %lo(dword_CODE_bss_80065314)($at) +/* 00C940 7000BD40 0C002EF2 */ jal probably_ramrom_related +/* 00C944 7000BD44 2484512C */ addiu $a0, %lo(dword_CODE_bss_8006512C) # addiu $a0, $a0, 0x512c +.L7000BD48: +/* 00C948 7000BD48 3C048006 */ lui $a0, %hi(controller_input_index) +/* 00C94C 7000BD4C 0C002EF2 */ jal probably_ramrom_related +/* 00C950 7000BD50 24844F30 */ addiu $a0, %lo(controller_input_index) # addiu $a0, $a0, 0x4f30 +/* 00C954 7000BD54 3C028002 */ lui $v0, %hi(ptr_to_tlb_ramrom_record) +/* 00C958 7000BD58 8C426928 */ lw $v0, %lo(ptr_to_tlb_ramrom_record)($v0) +/* 00C95C 7000BD5C 3C048006 */ lui $a0, %hi(controller_input_index) +/* 00C960 7000BD60 24844F30 */ addiu $a0, %lo(controller_input_index) # addiu $a0, $a0, 0x4f30 +/* 00C964 7000BD64 50400005 */ beql $v0, $zero, .L7000BD7C +/* 00C968 7000BD68 8FBF0014 */ lw $ra, 0x14($sp) +/* 00C96C 7000BD6C 8C8501E4 */ lw $a1, 0x1e4($a0) +/* 00C970 7000BD70 0040F809 */ jalr $v0 +/* 00C974 7000BD74 8C8601E0 */ lw $a2, 0x1e0($a0) +/* 00C978 7000BD78 8FBF0014 */ lw $ra, 0x14($sp) +.L7000BD7C: +/* 00C97C 7000BD7C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00C980 7000BD80 03E00008 */ jr $ra +/* 00C984 7000BD84 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void controllerSchedulerRelated(void) +{ + ? sp4C; + s32 sp40; + s32 temp_a0; + s32 temp_a0_2; + s32 temp_a2; + s32 temp_hi; + s32 temp_lo; + s32 temp_t6; + s32 temp_t8; + s32 temp_v1; + void *temp_t3; + void *temp_v1_2; + s32 phi_v1; + s32 phi_v0; + s32 phi_a0; + s32 phi_a0_2; + void *phi_t1; + void *phi_a0_3; + void *phi_a1; + void *phi_v1_2; + + if (osRecvMesg(&cont1MesgMQ, &sp4C, 0) == 0) + { + if (D_800268C8 != 0) + { + osRecvMesg(&contdemoMesgMQ, &sp4C, 1); + D_800268C8 = 0; + } + osSendMesg(&cont2MesgMQ, &sp4C, 0); + D_800268CC = (s32) (D_800268CC + 1); + return; + } + if (osRecvMesg(&cont3MesgMQ, &sp4C, 0) == 0) + { + osContStartReadData(&contdemoMesgMQ); + D_800268C8 = 1; + osSendMesg(&cont4MesgMQ, &sp4C, 0); + D_800268CC = (s32) (D_800268CC + -1); + return; + } + if (D_800268CC == 0) + { + if (D_8002691C != 0) + { + if (osRecvMesg(&contdemoMesgMQ, &sp4C, 0) == 0) + { + D_800268C8 = 0; + temp_hi = (s32) (controller_input_index.unk1E8 + 1) % 0x14; + phi_v1 = temp_hi; + if (temp_hi == controller_input_index.unk1E4) + { + phi_v1 = controller_input_index.unk1E8; + } + sp40 = (s32) phi_v1; + osContGetReadData(&controller_input_index + (((phi_v1 * 4) - phi_v1) * 8), &controller_input_index); + temp_t6 = D_80026920 + 1; + temp_t8 = temp_t6 % 0x78; + controller_input_index.unk1EC = (s32) ((s32) (sp40 + 0x13) % 0x14); + D_80026920 = temp_t6; + controller_input_index.unk1E8 = sp40; + phi_v0 = sp40; + if (temp_t8 == 0) + { + controller_check_for_rumble_maybe(&D_80026920, &controller_input_index); + phi_v0 = controller_input_index.unk1E8; + } + temp_a2 = &controller_input_index + (((phi_v0 * 4) - phi_v0) * 8); + phi_a0 = 0; +loop_14: + temp_lo = phi_a0 * 6; + temp_t3 = temp_a2 + temp_lo; + if ((temp_t3->unk4 != 0) || (((&controller_input_index + (&controller_input_index->unk1EC * 0x18)) + temp_lo)->unk4 == 0)) + { + temp_a0 = phi_a0 + 1; + if ((temp_t3->unk4 != 0) && (((&controller_input_index + (&controller_input_index->unk1EC * 0x18)) + temp_lo)->unk4 == 0)) + { +block_18: + controller_check_for_rumble_maybe(phi_a0_2, &controller_input_index, temp_a2, 6); + } + else + { + temp_a0_2 = (s32) (temp_a0 << 0x18) >> 0x18; + phi_a0 = temp_a0_2; + if (temp_a0_2 < 4) + { + goto loop_14; + } + } + } + else + { + goto block_18; + } + controller_rumble_related(); + osContStartReadData(&contdemoMesgMQ); + D_800268C8 = 1; + temp_v1 = D_80026970 + 1; + D_80026970 = temp_v1; + if (temp_v1 >= 0x3c) + { + phi_t1 = &pl1_controller_failure_lr; + phi_a0_3 = &pl1_controller_failure_ud; + phi_a1 = &pl1_controller_failure_held; + phi_v1_2 = &pl1_controller_failure_pressed; +loop_22: + if ((((phi_t1->unk0 != 0) || (phi_a0_3->unk0 != 0)) || (phi_a1->unk0 != 0)) || (phi_v1_2->unk0 != 0)) + { + phi_t1->unk0 = 0; + phi_a0_3->unk0 = 0; + phi_a1->unk0 = 0; + phi_v1_2->unk0 = 0; + } + else + { + + } + if ((((phi_t1->unk4 != 0) || (phi_a0_3->unk4 != 0)) || (phi_a1->unk4 != 0)) || (phi_v1_2->unk4 != 0)) + { + phi_t1->unk4 = 0; + phi_a0_3->unk4 = 0; + phi_a1->unk4 = 0; + phi_v1_2->unk4 = 0; + } + else + { + + } + temp_v1_2 = phi_v1_2 + 8; + phi_t1 = phi_t1 + 8; + phi_a0_3 = phi_a0_3 + 8; + phi_a1 = phi_a1 + 8; + phi_v1_2 = temp_v1_2; + if (temp_v1_2 != &D_80026970) + { + goto loop_22; + } + D_80026970 = 0; + } + } + } + } +} +#else +GLOBAL_ASM( +.text +glabel controllerSchedulerRelated +/* 00C988 7000BD88 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 00C98C 7000BD8C AFBF0014 */ sw $ra, 0x14($sp) +/* 00C990 7000BD90 3C048006 */ lui $a0, %hi(cont1MesgMQ) +/* 00C994 7000BD94 24845370 */ addiu $a0, %lo(cont1MesgMQ) # addiu $a0, $a0, 0x5370 +/* 00C998 7000BD98 27A5004C */ addiu $a1, $sp, 0x4c +/* 00C99C 7000BD9C 0C003774 */ jal osRecvMesg +/* 00C9A0 7000BDA0 00003025 */ move $a2, $zero +/* 00C9A4 7000BDA4 14400015 */ bnez $v0, .L7000BDFC +/* 00C9A8 7000BDA8 3C0E8002 */ lui $t6, %hi(D_800268C8) +/* 00C9AC 7000BDAC 8DCE68C8 */ lw $t6, %lo(D_800268C8)($t6) +/* 00C9B0 7000BDB0 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00C9B4 7000BDB4 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00C9B8 7000BDB8 11C00005 */ beqz $t6, .L7000BDD0 +/* 00C9BC 7000BDBC 27A5004C */ addiu $a1, $sp, 0x4c +/* 00C9C0 7000BDC0 0C003774 */ jal osRecvMesg +/* 00C9C4 7000BDC4 24060001 */ li $a2, 1 +/* 00C9C8 7000BDC8 3C018002 */ lui $at, %hi(D_800268C8) +/* 00C9CC 7000BDCC AC2068C8 */ sw $zero, %lo(D_800268C8)($at) +.L7000BDD0: +/* 00C9D0 7000BDD0 3C048006 */ lui $a0, %hi(cont2MesgMQ) +/* 00C9D4 7000BDD4 24845390 */ addiu $a0, %lo(cont2MesgMQ) # addiu $a0, $a0, 0x5390 +/* 00C9D8 7000BDD8 27A5004C */ addiu $a1, $sp, 0x4c +/* 00C9DC 7000BDDC 0C0037C4 */ jal osSendMesg +/* 00C9E0 7000BDE0 00003025 */ move $a2, $zero +/* 00C9E4 7000BDE4 3C038002 */ lui $v1, %hi(D_800268CC) +/* 00C9E8 7000BDE8 246368CC */ addiu $v1, %lo(D_800268CC) # addiu $v1, $v1, 0x68cc +/* 00C9EC 7000BDEC 8C6F0000 */ lw $t7, ($v1) +/* 00C9F0 7000BDF0 25F80001 */ addiu $t8, $t7, 1 +/* 00C9F4 7000BDF4 100000B9 */ b .L7000C0DC +/* 00C9F8 7000BDF8 AC780000 */ sw $t8, ($v1) +.L7000BDFC: +/* 00C9FC 7000BDFC 3C048006 */ lui $a0, %hi(cont3MesgMQ) +/* 00CA00 7000BE00 248453B0 */ addiu $a0, %lo(cont3MesgMQ) # addiu $a0, $a0, 0x53b0 +/* 00CA04 7000BE04 27A5004C */ addiu $a1, $sp, 0x4c +/* 00CA08 7000BE08 0C003774 */ jal osRecvMesg +/* 00CA0C 7000BE0C 00003025 */ move $a2, $zero +/* 00CA10 7000BE10 14400011 */ bnez $v0, .L7000BE58 +/* 00CA14 7000BE14 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00CA18 7000BE18 0C00535C */ jal osContStartReadData +/* 00CA1C 7000BE1C 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00CA20 7000BE20 24190001 */ li $t9, 1 +/* 00CA24 7000BE24 3C018002 */ lui $at, %hi(D_800268C8) +/* 00CA28 7000BE28 3C048006 */ lui $a0, %hi(cont4MesgMQ) +/* 00CA2C 7000BE2C AC3968C8 */ sw $t9, %lo(D_800268C8)($at) +/* 00CA30 7000BE30 248453D0 */ addiu $a0, %lo(cont4MesgMQ) # addiu $a0, $a0, 0x53d0 +/* 00CA34 7000BE34 27A5004C */ addiu $a1, $sp, 0x4c +/* 00CA38 7000BE38 0C0037C4 */ jal osSendMesg +/* 00CA3C 7000BE3C 00003025 */ move $a2, $zero +/* 00CA40 7000BE40 3C038002 */ lui $v1, %hi(D_800268CC) +/* 00CA44 7000BE44 246368CC */ addiu $v1, %lo(D_800268CC) # addiu $v1, $v1, 0x68cc +/* 00CA48 7000BE48 8C6B0000 */ lw $t3, ($v1) +/* 00CA4C 7000BE4C 256CFFFF */ addiu $t4, $t3, -1 +/* 00CA50 7000BE50 100000A2 */ b .L7000C0DC +/* 00CA54 7000BE54 AC6C0000 */ sw $t4, ($v1) +.L7000BE58: +/* 00CA58 7000BE58 3C038002 */ lui $v1, %hi(D_800268CC) +/* 00CA5C 7000BE5C 246368CC */ addiu $v1, %lo(D_800268CC) # addiu $v1, $v1, 0x68cc +/* 00CA60 7000BE60 8C6D0000 */ lw $t5, ($v1) +/* 00CA64 7000BE64 3C0E8002 */ lui $t6, %hi(D_8002691C) +/* 00CA68 7000BE68 55A0009D */ bnezl $t5, .L7000C0E0 +/* 00CA6C 7000BE6C 8FBF0014 */ lw $ra, 0x14($sp) +/* 00CA70 7000BE70 8DCE691C */ lw $t6, %lo(D_8002691C)($t6) +/* 00CA74 7000BE74 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00CA78 7000BE78 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00CA7C 7000BE7C 11C00097 */ beqz $t6, .L7000C0DC +/* 00CA80 7000BE80 27A5004C */ addiu $a1, $sp, 0x4c +/* 00CA84 7000BE84 0C003774 */ jal osRecvMesg +/* 00CA88 7000BE88 00003025 */ move $a2, $zero +/* 00CA8C 7000BE8C 14400093 */ bnez $v0, .L7000C0DC +/* 00CA90 7000BE90 3C058006 */ lui $a1, %hi(controller_input_index) +/* 00CA94 7000BE94 3C018002 */ lui $at, %hi(D_800268C8) +/* 00CA98 7000BE98 24A54F30 */ addiu $a1, %lo(controller_input_index) # addiu $a1, $a1, 0x4f30 +/* 00CA9C 7000BE9C AC2068C8 */ sw $zero, %lo(D_800268C8)($at) +/* 00CAA0 7000BEA0 8CA201E8 */ lw $v0, 0x1e8($a1) +/* 00CAA4 7000BEA4 24010014 */ li $at, 20 +/* 00CAA8 7000BEA8 8CB801E4 */ lw $t8, 0x1e4($a1) +/* 00CAAC 7000BEAC 24430001 */ addiu $v1, $v0, 1 +/* 00CAB0 7000BEB0 0061001A */ div $zero, $v1, $at +/* 00CAB4 7000BEB4 00001810 */ mfhi $v1 +/* 00CAB8 7000BEB8 54780003 */ bnel $v1, $t8, .L7000BEC8 +/* 00CABC 7000BEBC 0003C880 */ sll $t9, $v1, 2 +/* 00CAC0 7000BEC0 00401825 */ move $v1, $v0 +/* 00CAC4 7000BEC4 0003C880 */ sll $t9, $v1, 2 +.L7000BEC8: +/* 00CAC8 7000BEC8 0323C823 */ subu $t9, $t9, $v1 +/* 00CACC 7000BECC 0019C8C0 */ sll $t9, $t9, 3 +/* 00CAD0 7000BED0 00B92021 */ addu $a0, $a1, $t9 +/* 00CAD4 7000BED4 0C00538D */ jal osContGetReadData +/* 00CAD8 7000BED8 AFA30040 */ sw $v1, 0x40($sp) +/* 00CADC 7000BEDC 8FA20040 */ lw $v0, 0x40($sp) +/* 00CAE0 7000BEE0 24010014 */ li $at, 20 +/* 00CAE4 7000BEE4 3C048002 */ lui $a0, %hi(D_80026920) +/* 00CAE8 7000BEE8 244B0013 */ addiu $t3, $v0, 0x13 +/* 00CAEC 7000BEEC 0161001A */ div $zero, $t3, $at +/* 00CAF0 7000BEF0 24846920 */ addiu $a0, %lo(D_80026920) # addiu $a0, $a0, 0x6920 +/* 00CAF4 7000BEF4 8C8D0000 */ lw $t5, ($a0) +/* 00CAF8 7000BEF8 00006010 */ mfhi $t4 +/* 00CAFC 7000BEFC 24010078 */ li $at, 120 +/* 00CB00 7000BF00 25AE0001 */ addiu $t6, $t5, 1 +/* 00CB04 7000BF04 01C1001A */ div $zero, $t6, $at +/* 00CB08 7000BF08 3C058006 */ lui $a1, %hi(controller_input_index) +/* 00CB0C 7000BF0C 24A54F30 */ addiu $a1, %lo(controller_input_index) # addiu $a1, $a1, 0x4f30 +/* 00CB10 7000BF10 0000C010 */ mfhi $t8 +/* 00CB14 7000BF14 ACAC01EC */ sw $t4, 0x1ec($a1) +/* 00CB18 7000BF18 AC8E0000 */ sw $t6, ($a0) +/* 00CB1C 7000BF1C 17000006 */ bnez $t8, .L7000BF38 +/* 00CB20 7000BF20 ACA201E8 */ sw $v0, 0x1e8($a1) +/* 00CB24 7000BF24 0C002E04 */ jal controller_check_for_rumble_maybe +/* 00CB28 7000BF28 00000000 */ nop +/* 00CB2C 7000BF2C 3C058006 */ lui $a1, %hi(controller_input_index) +/* 00CB30 7000BF30 24A54F30 */ addiu $a1, %lo(controller_input_index) # addiu $a1, $a1, 0x4f30 +/* 00CB34 7000BF34 8CA201E8 */ lw $v0, 0x1e8($a1) +.L7000BF38: +/* 00CB38 7000BF38 0002C880 */ sll $t9, $v0, 2 +/* 00CB3C 7000BF3C 0322C823 */ subu $t9, $t9, $v0 +/* 00CB40 7000BF40 0019C8C0 */ sll $t9, $t9, 3 +/* 00CB44 7000BF44 00B93021 */ addu $a2, $a1, $t9 +/* 00CB48 7000BF48 00002025 */ move $a0, $zero +/* 00CB4C 7000BF4C 24070006 */ li $a3, 6 +.L7000BF50: +/* 00CB50 7000BF50 00870019 */ multu $a0, $a3 +/* 00CB54 7000BF54 00001012 */ mflo $v0 +/* 00CB58 7000BF58 00C25821 */ addu $t3, $a2, $v0 +/* 00CB5C 7000BF5C 91630004 */ lbu $v1, 4($t3) +/* 00CB60 7000BF60 1460000A */ bnez $v1, .L7000BF8C +/* 00CB64 7000BF64 00000000 */ nop +/* 00CB68 7000BF68 8CAC01EC */ lw $t4, 0x1ec($a1) +/* 00CB6C 7000BF6C 000C6880 */ sll $t5, $t4, 2 +/* 00CB70 7000BF70 01AC6823 */ subu $t5, $t5, $t4 +/* 00CB74 7000BF74 000D68C0 */ sll $t5, $t5, 3 +/* 00CB78 7000BF78 00AD7021 */ addu $t6, $a1, $t5 +/* 00CB7C 7000BF7C 01C27821 */ addu $t7, $t6, $v0 +/* 00CB80 7000BF80 91F80004 */ lbu $t8, 4($t7) +/* 00CB84 7000BF84 1700000C */ bnez $t8, .L7000BFB8 +/* 00CB88 7000BF88 00000000 */ nop +.L7000BF8C: +/* 00CB8C 7000BF8C 1060000E */ beqz $v1, .L7000BFC8 +/* 00CB90 7000BF90 24840001 */ addiu $a0, $a0, 1 +/* 00CB94 7000BF94 8CB901EC */ lw $t9, 0x1ec($a1) +/* 00CB98 7000BF98 00195880 */ sll $t3, $t9, 2 +/* 00CB9C 7000BF9C 01795823 */ subu $t3, $t3, $t9 +/* 00CBA0 7000BFA0 000B58C0 */ sll $t3, $t3, 3 +/* 00CBA4 7000BFA4 00AB6021 */ addu $t4, $a1, $t3 +/* 00CBA8 7000BFA8 01826821 */ addu $t5, $t4, $v0 +/* 00CBAC 7000BFAC 91AE0004 */ lbu $t6, 4($t5) +/* 00CBB0 7000BFB0 55C00006 */ bnezl $t6, .L7000BFCC +/* 00CBB4 7000BFB4 00047E00 */ sll $t7, $a0, 0x18 +.L7000BFB8: +/* 00CBB8 7000BFB8 0C002E04 */ jal controller_check_for_rumble_maybe +/* 00CBBC 7000BFBC 00000000 */ nop +/* 00CBC0 7000BFC0 10000006 */ b .L7000BFDC +/* 00CBC4 7000BFC4 00000000 */ nop +.L7000BFC8: +/* 00CBC8 7000BFC8 00047E00 */ sll $t7, $a0, 0x18 +.L7000BFCC: +/* 00CBCC 7000BFCC 000F2603 */ sra $a0, $t7, 0x18 +/* 00CBD0 7000BFD0 28810004 */ slti $at, $a0, 4 +/* 00CBD4 7000BFD4 1420FFDE */ bnez $at, .L7000BF50 +/* 00CBD8 7000BFD8 00000000 */ nop +.L7000BFDC: +/* 00CBDC 7000BFDC 0C002E9F */ jal controller_rumble_related +/* 00CBE0 7000BFE0 00000000 */ nop +/* 00CBE4 7000BFE4 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00CBE8 7000BFE8 0C00535C */ jal osContStartReadData +/* 00CBEC 7000BFEC 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00CBF0 7000BFF0 3C038002 */ lui $v1, %hi(D_80026970) +/* 00CBF4 7000BFF4 8C636970 */ lw $v1, %lo(D_80026970)($v1) +/* 00CBF8 7000BFF8 24190001 */ li $t9, 1 +/* 00CBFC 7000BFFC 3C018002 */ lui $at, %hi(D_800268C8) +/* 00CC00 7000C000 AC3968C8 */ sw $t9, %lo(D_800268C8)($at) +/* 00CC04 7000C004 3C018002 */ lui $at, %hi(D_80026970) +/* 00CC08 7000C008 24630001 */ addiu $v1, $v1, 1 +/* 00CC0C 7000C00C AC236970 */ sw $v1, %lo(D_80026970)($at) +/* 00CC10 7000C010 2861003C */ slti $at, $v1, 0x3c +/* 00CC14 7000C014 14200031 */ bnez $at, .L7000C0DC +/* 00CC18 7000C018 3C098002 */ lui $t1, %hi(pl1_controller_failure_lr) +/* 00CC1C 7000C01C 3C048002 */ lui $a0, %hi(pl1_controller_failure_ud) +/* 00CC20 7000C020 3C058002 */ lui $a1, %hi(pl1_controller_failure_held) +/* 00CC24 7000C024 3C038002 */ lui $v1, %hi(pl1_controller_failure_pressed) +/* 00CC28 7000C028 3C0A8002 */ lui $t2, %hi(D_80026970) +/* 00CC2C 7000C02C 254A6970 */ addiu $t2, %lo(D_80026970) # addiu $t2, $t2, 0x6970 +/* 00CC30 7000C030 24636960 */ addiu $v1, %lo(pl1_controller_failure_pressed) # addiu $v1, $v1, 0x6960 +/* 00CC34 7000C034 24A56950 */ addiu $a1, %lo(pl1_controller_failure_held) # addiu $a1, $a1, 0x6950 +/* 00CC38 7000C038 24846940 */ addiu $a0, %lo(pl1_controller_failure_ud) # addiu $a0, $a0, 0x6940 +/* 00CC3C 7000C03C 25296930 */ addiu $t1, %lo(pl1_controller_failure_lr) # addiu $t1, $t1, 0x6930 +.L7000C040: +/* 00CC40 7000C040 8D220000 */ lw $v0, ($t1) +/* 00CC44 7000C044 5440000B */ bnezl $v0, .L7000C074 +/* 00CC48 7000C048 AD200000 */ sw $zero, ($t1) +/* 00CC4C 7000C04C 8C8B0000 */ lw $t3, ($a0) +/* 00CC50 7000C050 55600008 */ bnezl $t3, .L7000C074 +/* 00CC54 7000C054 AD200000 */ sw $zero, ($t1) +/* 00CC58 7000C058 8CAC0000 */ lw $t4, ($a1) +/* 00CC5C 7000C05C 55800005 */ bnezl $t4, .L7000C074 +/* 00CC60 7000C060 AD200000 */ sw $zero, ($t1) +/* 00CC64 7000C064 8C6D0000 */ lw $t5, ($v1) +/* 00CC68 7000C068 51A00006 */ beql $t5, $zero, .L7000C084 +/* 00CC6C 7000C06C 8D220004 */ lw $v0, 4($t1) +/* 00CC70 7000C070 AD200000 */ sw $zero, ($t1) +.L7000C074: +/* 00CC74 7000C074 AC800000 */ sw $zero, ($a0) +/* 00CC78 7000C078 ACA00000 */ sw $zero, ($a1) +/* 00CC7C 7000C07C AC600000 */ sw $zero, ($v1) +/* 00CC80 7000C080 8D220004 */ lw $v0, 4($t1) +.L7000C084: +/* 00CC84 7000C084 5440000B */ bnezl $v0, .L7000C0B4 +/* 00CC88 7000C088 AD200004 */ sw $zero, 4($t1) +/* 00CC8C 7000C08C 8C8E0004 */ lw $t6, 4($a0) +/* 00CC90 7000C090 55C00008 */ bnezl $t6, .L7000C0B4 +/* 00CC94 7000C094 AD200004 */ sw $zero, 4($t1) +/* 00CC98 7000C098 8CAF0004 */ lw $t7, 4($a1) +/* 00CC9C 7000C09C 55E00005 */ bnezl $t7, .L7000C0B4 +/* 00CCA0 7000C0A0 AD200004 */ sw $zero, 4($t1) +/* 00CCA4 7000C0A4 8C780004 */ lw $t8, 4($v1) +/* 00CCA8 7000C0A8 53000006 */ beql $t8, $zero, .L7000C0C4 +/* 00CCAC 7000C0AC 24630008 */ addiu $v1, $v1, 8 +/* 00CCB0 7000C0B0 AD200004 */ sw $zero, 4($t1) +.L7000C0B4: +/* 00CCB4 7000C0B4 AC800004 */ sw $zero, 4($a0) +/* 00CCB8 7000C0B8 ACA00004 */ sw $zero, 4($a1) +/* 00CCBC 7000C0BC AC600004 */ sw $zero, 4($v1) +/* 00CCC0 7000C0C0 24630008 */ addiu $v1, $v1, 8 +.L7000C0C4: +/* 00CCC4 7000C0C4 25290008 */ addiu $t1, $t1, 8 +/* 00CCC8 7000C0C8 24840008 */ addiu $a0, $a0, 8 +/* 00CCCC 7000C0CC 146AFFDC */ bne $v1, $t2, .L7000C040 +/* 00CCD0 7000C0D0 24A50008 */ addiu $a1, $a1, 8 +/* 00CCD4 7000C0D4 3C018002 */ lui $at, %hi(D_80026970) +/* 00CCD8 7000C0D8 AC206970 */ sw $zero, %lo(D_80026970)($at) +.L7000C0DC: +/* 00CCDC 7000C0DC 8FBF0014 */ lw $ra, 0x14($sp) +.L7000C0E0: +/* 00CCE0 7000C0E0 27BD0050 */ addiu $sp, $sp, 0x50 +/* 00CCE4 7000C0E4 03E00008 */ jr $ra +/* 00CCE8 7000C0E8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +? get_cur_controller_horz_stick_pos(s32 arg0) +{ + s32 temp_t7; + void *temp_v1; + + temp_t7 = (s32) (arg0 << 0x18) >> 0x18; + if (ptr_current_point_in_controller_input_index->unk1F8 < 0) + { + if ((((s32) num_controller_plugged_in_flags >> temp_t7) & 1) == 0) + { + temp_v1 = (temp_t7 * 4) + &pl1_controller_failure_lr; + *temp_v1 = (s32) (*temp_v1 + 1); + return 0; + } + } + return ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E0 * 0x18)) + (temp_t7 * 6))->unk2; +} +#else +GLOBAL_ASM( +.text +glabel get_cur_controller_horz_stick_pos +/* 00CCEC 7000C0EC 3C038002 */ lui $v1, %hi(ptr_current_point_in_controller_input_index) +/* 00CCF0 7000C0F0 8C6368C4 */ lw $v1, %lo(ptr_current_point_in_controller_input_index)($v1) +/* 00CCF4 7000C0F4 AFA40000 */ sw $a0, ($sp) +/* 00CCF8 7000C0F8 00047600 */ sll $t6, $a0, 0x18 +/* 00CCFC 7000C0FC 8C7801F8 */ lw $t8, 0x1f8($v1) +/* 00CD00 7000C100 000E7E03 */ sra $t7, $t6, 0x18 +/* 00CD04 7000C104 01E02025 */ move $a0, $t7 +/* 00CD08 7000C108 0701000E */ bgez $t8, .L7000C144 +/* 00CD0C 7000C10C 3C198002 */ lui $t9, %hi(num_controller_plugged_in_flags) +/* 00CD10 7000C110 933968D0 */ lbu $t9, %lo(num_controller_plugged_in_flags)($t9) +/* 00CD14 7000C114 3C0B8002 */ lui $t3, %hi(pl1_controller_failure_lr) +/* 00CD18 7000C118 256B6930 */ addiu $t3, %lo(pl1_controller_failure_lr) # addiu $t3, $t3, 0x6930 +/* 00CD1C 7000C11C 01F94007 */ srav $t0, $t9, $t7 +/* 00CD20 7000C120 31090001 */ andi $t1, $t0, 1 +/* 00CD24 7000C124 15200007 */ bnez $t1, .L7000C144 +/* 00CD28 7000C128 000F5080 */ sll $t2, $t7, 2 +/* 00CD2C 7000C12C 014B1821 */ addu $v1, $t2, $t3 +/* 00CD30 7000C130 8C6C0000 */ lw $t4, ($v1) +/* 00CD34 7000C134 00001025 */ move $v0, $zero +/* 00CD38 7000C138 258D0001 */ addiu $t5, $t4, 1 +/* 00CD3C 7000C13C 03E00008 */ jr $ra +/* 00CD40 7000C140 AC6D0000 */ sw $t5, ($v1) + +.L7000C144: +/* 00CD44 7000C144 8C6E01E0 */ lw $t6, 0x1e0($v1) +/* 00CD48 7000C148 0004C880 */ sll $t9, $a0, 2 +/* 00CD4C 7000C14C 0324C823 */ subu $t9, $t9, $a0 +/* 00CD50 7000C150 000E7880 */ sll $t7, $t6, 2 +/* 00CD54 7000C154 01EE7823 */ subu $t7, $t7, $t6 +/* 00CD58 7000C158 000F78C0 */ sll $t7, $t7, 3 +/* 00CD5C 7000C15C 006FC021 */ addu $t8, $v1, $t7 +/* 00CD60 7000C160 0019C840 */ sll $t9, $t9, 1 +/* 00CD64 7000C164 03194021 */ addu $t0, $t8, $t9 +/* 00CD68 7000C168 81020002 */ lb $v0, 2($t0) +/* 00CD6C 7000C16C 03E00008 */ jr $ra +/* 00CD70 7000C170 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void controller_7000C174(s32 arg0) { + s32 temp_t7; + void *temp_v1; + + // Node 0 + temp_t7 = ((s32) (arg0 << 0x18) >> 0x18); + if (ptr_current_point_in_controller_input_index->unk1F8 < 0) + { + // Node 1 + if ((((s32) num_controller_plugged_in_flags >> temp_t7) & 1) == 0) + { + // Node 2 + temp_v1 = ((temp_t7 * 4) + &pl1_controller_failure_lr); + *temp_v1 = (s32) (*temp_v1 + 1); + return; + // (possible return value: ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E4 * 0x18)) + (temp_t7 * 6))->unk2) + } + } + // (possible return value: ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E4 * 0x18)) + (temp_t7 * 6))->unk2) +} +#else +GLOBAL_ASM( +.text +glabel controller_7000C174 +/* 00CD74 7000C174 3C038002 */ lui $v1, %hi(ptr_current_point_in_controller_input_index) +/* 00CD78 7000C178 8C6368C4 */ lw $v1, %lo(ptr_current_point_in_controller_input_index)($v1) +/* 00CD7C 7000C17C AFA40000 */ sw $a0, ($sp) +/* 00CD80 7000C180 00047600 */ sll $t6, $a0, 0x18 +/* 00CD84 7000C184 8C7801F8 */ lw $t8, 0x1f8($v1) +/* 00CD88 7000C188 000E7E03 */ sra $t7, $t6, 0x18 +/* 00CD8C 7000C18C 01E02025 */ move $a0, $t7 +/* 00CD90 7000C190 0701000E */ bgez $t8, .L7000C1CC +/* 00CD94 7000C194 3C198002 */ lui $t9, %hi(num_controller_plugged_in_flags) +/* 00CD98 7000C198 933968D0 */ lbu $t9, %lo(num_controller_plugged_in_flags)($t9) +/* 00CD9C 7000C19C 3C0B8002 */ lui $t3, %hi(pl1_controller_failure_lr) +/* 00CDA0 7000C1A0 256B6930 */ addiu $t3, %lo(pl1_controller_failure_lr) # addiu $t3, $t3, 0x6930 +/* 00CDA4 7000C1A4 01F94007 */ srav $t0, $t9, $t7 +/* 00CDA8 7000C1A8 31090001 */ andi $t1, $t0, 1 +/* 00CDAC 7000C1AC 15200007 */ bnez $t1, .L7000C1CC +/* 00CDB0 7000C1B0 000F5080 */ sll $t2, $t7, 2 +/* 00CDB4 7000C1B4 014B1821 */ addu $v1, $t2, $t3 +/* 00CDB8 7000C1B8 8C6C0000 */ lw $t4, ($v1) +/* 00CDBC 7000C1BC 00001025 */ move $v0, $zero +/* 00CDC0 7000C1C0 258D0001 */ addiu $t5, $t4, 1 +/* 00CDC4 7000C1C4 03E00008 */ jr $ra +/* 00CDC8 7000C1C8 AC6D0000 */ sw $t5, ($v1) + +.L7000C1CC: +/* 00CDCC 7000C1CC 8C6E01E4 */ lw $t6, 0x1e4($v1) +/* 00CDD0 7000C1D0 0004C880 */ sll $t9, $a0, 2 +/* 00CDD4 7000C1D4 0324C823 */ subu $t9, $t9, $a0 +/* 00CDD8 7000C1D8 000E7880 */ sll $t7, $t6, 2 +/* 00CDDC 7000C1DC 01EE7823 */ subu $t7, $t7, $t6 +/* 00CDE0 7000C1E0 000F78C0 */ sll $t7, $t7, 3 +/* 00CDE4 7000C1E4 006FC021 */ addu $t8, $v1, $t7 +/* 00CDE8 7000C1E8 0019C840 */ sll $t9, $t9, 1 +/* 00CDEC 7000C1EC 03194021 */ addu $t0, $t8, $t9 +/* 00CDF0 7000C1F0 81020002 */ lb $v0, 2($t0) +/* 00CDF4 7000C1F4 03E00008 */ jr $ra +/* 00CDF8 7000C1F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void get_cur_controller_vert_stick_pos(s32 arg0) { + s32 temp_t7; + void *temp_v1; + + // Node 0 + temp_t7 = ((s32) (arg0 << 0x18) >> 0x18); + if (ptr_current_point_in_controller_input_index->unk1F8 < 0) + { + // Node 1 + if ((((s32) num_controller_plugged_in_flags >> temp_t7) & 1) == 0) + { + // Node 2 + temp_v1 = ((temp_t7 * 4) + &pl1_controller_failure_ud); + *temp_v1 = (s32) (*temp_v1 + 1); + return; + // (possible return value: ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E0 * 0x18)) + (temp_t7 * 6))->unk3) + } + } + // (possible return value: ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E0 * 0x18)) + (temp_t7 * 6))->unk3) +} +#else +GLOBAL_ASM( +.text +glabel get_cur_controller_vert_stick_pos +/* 00CDFC 7000C1FC 3C038002 */ lui $v1, %hi(ptr_current_point_in_controller_input_index) +/* 00CE00 7000C200 8C6368C4 */ lw $v1, %lo(ptr_current_point_in_controller_input_index)($v1) +/* 00CE04 7000C204 AFA40000 */ sw $a0, ($sp) +/* 00CE08 7000C208 00047600 */ sll $t6, $a0, 0x18 +/* 00CE0C 7000C20C 8C7801F8 */ lw $t8, 0x1f8($v1) +/* 00CE10 7000C210 000E7E03 */ sra $t7, $t6, 0x18 +/* 00CE14 7000C214 01E02025 */ move $a0, $t7 +/* 00CE18 7000C218 0701000E */ bgez $t8, .L7000C254 +/* 00CE1C 7000C21C 3C198002 */ lui $t9, %hi(num_controller_plugged_in_flags) +/* 00CE20 7000C220 933968D0 */ lbu $t9, %lo(num_controller_plugged_in_flags)($t9) +/* 00CE24 7000C224 3C0B8002 */ lui $t3, %hi(pl1_controller_failure_ud) +/* 00CE28 7000C228 256B6940 */ addiu $t3, %lo(pl1_controller_failure_ud) # addiu $t3, $t3, 0x6940 +/* 00CE2C 7000C22C 01F94007 */ srav $t0, $t9, $t7 +/* 00CE30 7000C230 31090001 */ andi $t1, $t0, 1 +/* 00CE34 7000C234 15200007 */ bnez $t1, .L7000C254 +/* 00CE38 7000C238 000F5080 */ sll $t2, $t7, 2 +/* 00CE3C 7000C23C 014B1821 */ addu $v1, $t2, $t3 +/* 00CE40 7000C240 8C6C0000 */ lw $t4, ($v1) +/* 00CE44 7000C244 00001025 */ move $v0, $zero +/* 00CE48 7000C248 258D0001 */ addiu $t5, $t4, 1 +/* 00CE4C 7000C24C 03E00008 */ jr $ra +/* 00CE50 7000C250 AC6D0000 */ sw $t5, ($v1) + +.L7000C254: +/* 00CE54 7000C254 8C6E01E0 */ lw $t6, 0x1e0($v1) +/* 00CE58 7000C258 0004C880 */ sll $t9, $a0, 2 +/* 00CE5C 7000C25C 0324C823 */ subu $t9, $t9, $a0 +/* 00CE60 7000C260 000E7880 */ sll $t7, $t6, 2 +/* 00CE64 7000C264 01EE7823 */ subu $t7, $t7, $t6 +/* 00CE68 7000C268 000F78C0 */ sll $t7, $t7, 3 +/* 00CE6C 7000C26C 006FC021 */ addu $t8, $v1, $t7 +/* 00CE70 7000C270 0019C840 */ sll $t9, $t9, 1 +/* 00CE74 7000C274 03194021 */ addu $t0, $t8, $t9 +/* 00CE78 7000C278 81020003 */ lb $v0, 3($t0) +/* 00CE7C 7000C27C 03E00008 */ jr $ra +/* 00CE80 7000C280 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void controller_7000C284(s32 arg0) { + s32 temp_t7; + void *temp_v1; + + // Node 0 + temp_t7 = ((s32) (arg0 << 0x18) >> 0x18); + if (ptr_current_point_in_controller_input_index->unk1F8 < 0) + { + // Node 1 + if ((((s32) num_controller_plugged_in_flags >> temp_t7) & 1) == 0) + { + // Node 2 + temp_v1 = ((temp_t7 * 4) + &pl1_controller_failure_ud); + *temp_v1 = (s32) (*temp_v1 + 1); + return; + // (possible return value: ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E4 * 0x18)) + (temp_t7 * 6))->unk3) + } + } + // (possible return value: ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E4 * 0x18)) + (temp_t7 * 6))->unk3) +} +#else +GLOBAL_ASM( +.text +glabel controller_7000C284 +/* 00CE84 7000C284 3C038002 */ lui $v1, %hi(ptr_current_point_in_controller_input_index) +/* 00CE88 7000C288 8C6368C4 */ lw $v1, %lo(ptr_current_point_in_controller_input_index)($v1) +/* 00CE8C 7000C28C AFA40000 */ sw $a0, ($sp) +/* 00CE90 7000C290 00047600 */ sll $t6, $a0, 0x18 +/* 00CE94 7000C294 8C7801F8 */ lw $t8, 0x1f8($v1) +/* 00CE98 7000C298 000E7E03 */ sra $t7, $t6, 0x18 +/* 00CE9C 7000C29C 01E02025 */ move $a0, $t7 +/* 00CEA0 7000C2A0 0701000E */ bgez $t8, .L7000C2DC +/* 00CEA4 7000C2A4 3C198002 */ lui $t9, %hi(num_controller_plugged_in_flags) +/* 00CEA8 7000C2A8 933968D0 */ lbu $t9, %lo(num_controller_plugged_in_flags)($t9) +/* 00CEAC 7000C2AC 3C0B8002 */ lui $t3, %hi(pl1_controller_failure_ud) +/* 00CEB0 7000C2B0 256B6940 */ addiu $t3, %lo(pl1_controller_failure_ud) # addiu $t3, $t3, 0x6940 +/* 00CEB4 7000C2B4 01F94007 */ srav $t0, $t9, $t7 +/* 00CEB8 7000C2B8 31090001 */ andi $t1, $t0, 1 +/* 00CEBC 7000C2BC 15200007 */ bnez $t1, .L7000C2DC +/* 00CEC0 7000C2C0 000F5080 */ sll $t2, $t7, 2 +/* 00CEC4 7000C2C4 014B1821 */ addu $v1, $t2, $t3 +/* 00CEC8 7000C2C8 8C6C0000 */ lw $t4, ($v1) +/* 00CECC 7000C2CC 00001025 */ move $v0, $zero +/* 00CED0 7000C2D0 258D0001 */ addiu $t5, $t4, 1 +/* 00CED4 7000C2D4 03E00008 */ jr $ra +/* 00CED8 7000C2D8 AC6D0000 */ sw $t5, ($v1) + +.L7000C2DC: +/* 00CEDC 7000C2DC 8C6E01E4 */ lw $t6, 0x1e4($v1) +/* 00CEE0 7000C2E0 0004C880 */ sll $t9, $a0, 2 +/* 00CEE4 7000C2E4 0324C823 */ subu $t9, $t9, $a0 +/* 00CEE8 7000C2E8 000E7880 */ sll $t7, $t6, 2 +/* 00CEEC 7000C2EC 01EE7823 */ subu $t7, $t7, $t6 +/* 00CEF0 7000C2F0 000F78C0 */ sll $t7, $t7, 3 +/* 00CEF4 7000C2F4 006FC021 */ addu $t8, $v1, $t7 +/* 00CEF8 7000C2F8 0019C840 */ sll $t9, $t9, 1 +/* 00CEFC 7000C2FC 03194021 */ addu $t0, $t8, $t9 +/* 00CF00 7000C300 81020003 */ lb $v0, 3($t0) +/* 00CF04 7000C304 03E00008 */ jr $ra +/* 00CF08 7000C308 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 get_controller_buttons_held(s32 arg0, s32 arg1) { + s32 temp_t7; + void *temp_v1; + + // Node 0 + temp_t7 = ((s32) (arg0 << 0x18) >> 0x18); + if (ptr_current_point_in_controller_input_index->unk1F8 < 0) + { + // Node 1 + if ((((s32) num_controller_plugged_in_flags >> temp_t7) & 1) == 0) + { + // Node 2 + temp_v1 = ((temp_t7 * 4) + &pl1_controller_failure_held); + *temp_v1 = (s32) (*temp_v1 + 1); + return; + // (possible return value: ((*((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E0 * 0x18)) + (temp_t7 * 6)) & (arg1 & 0xffff)) & 0xffff)) + } + } + // (possible return value: ((*((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E0 * 0x18)) + (temp_t7 * 6)) & (arg1 & 0xffff)) & 0xffff)) +} +#else +GLOBAL_ASM( +.text +glabel get_controller_buttons_held +/* 00CF0C 7000C30C 3C038002 */ lui $v1, %hi(ptr_current_point_in_controller_input_index) +/* 00CF10 7000C310 8C6368C4 */ lw $v1, %lo(ptr_current_point_in_controller_input_index)($v1) +/* 00CF14 7000C314 AFA40000 */ sw $a0, ($sp) +/* 00CF18 7000C318 AFA50004 */ sw $a1, 4($sp) +/* 00CF1C 7000C31C 8C7901F8 */ lw $t9, 0x1f8($v1) +/* 00CF20 7000C320 00047600 */ sll $t6, $a0, 0x18 +/* 00CF24 7000C324 000E7E03 */ sra $t7, $t6, 0x18 +/* 00CF28 7000C328 30B8FFFF */ andi $t8, $a1, 0xffff +/* 00CF2C 7000C32C 03002825 */ move $a1, $t8 +/* 00CF30 7000C330 0721000F */ bgez $t9, .L7000C370 +/* 00CF34 7000C334 01E02025 */ move $a0, $t7 +/* 00CF38 7000C338 3C088002 */ lui $t0, %hi(num_controller_plugged_in_flags) +/* 00CF3C 7000C33C 910868D0 */ lbu $t0, %lo(num_controller_plugged_in_flags)($t0) +/* 00CF40 7000C340 3C0C8002 */ lui $t4, %hi(pl1_controller_failure_held) +/* 00CF44 7000C344 258C6950 */ addiu $t4, %lo(pl1_controller_failure_held) # addiu $t4, $t4, 0x6950 +/* 00CF48 7000C348 01E84807 */ srav $t1, $t0, $t7 +/* 00CF4C 7000C34C 312A0001 */ andi $t2, $t1, 1 +/* 00CF50 7000C350 15400007 */ bnez $t2, .L7000C370 +/* 00CF54 7000C354 000F5880 */ sll $t3, $t7, 2 +/* 00CF58 7000C358 016C1821 */ addu $v1, $t3, $t4 +/* 00CF5C 7000C35C 8C6D0000 */ lw $t5, ($v1) +/* 00CF60 7000C360 00001025 */ move $v0, $zero +/* 00CF64 7000C364 25AE0001 */ addiu $t6, $t5, 1 +/* 00CF68 7000C368 03E00008 */ jr $ra +/* 00CF6C 7000C36C AC6E0000 */ sw $t6, ($v1) + +.L7000C370: +/* 00CF70 7000C370 8C6F01E0 */ lw $t7, 0x1e0($v1) +/* 00CF74 7000C374 00044080 */ sll $t0, $a0, 2 +/* 00CF78 7000C378 01044023 */ subu $t0, $t0, $a0 +/* 00CF7C 7000C37C 000FC080 */ sll $t8, $t7, 2 +/* 00CF80 7000C380 030FC023 */ subu $t8, $t8, $t7 +/* 00CF84 7000C384 0018C0C0 */ sll $t8, $t8, 3 +/* 00CF88 7000C388 0078C821 */ addu $t9, $v1, $t8 +/* 00CF8C 7000C38C 00084040 */ sll $t0, $t0, 1 +/* 00CF90 7000C390 03284821 */ addu $t1, $t9, $t0 +/* 00CF94 7000C394 952A0000 */ lhu $t2, ($t1) +/* 00CF98 7000C398 01451024 */ and $v0, $t2, $a1 +/* 00CF9C 7000C39C 304BFFFF */ andi $t3, $v0, 0xffff +/* 00CFA0 7000C3A0 01601025 */ move $v0, $t3 +/* 00CFA4 7000C3A4 03E00008 */ jr $ra +/* 00CFA8 7000C3A8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 get_controller_buttons_pressed(s32 arg0, s32 arg1) { + s32 temp_t7; + void *temp_v1; + + // Node 0 + temp_t7 = ((s32) (arg0 << 0x18) >> 0x18); + if (ptr_current_point_in_controller_input_index->unk1F8 < 0) + { + // Node 1 + if ((((s32) num_controller_plugged_in_flags >> temp_t7) & 1) == 0) + { + // Node 2 + temp_v1 = ((temp_t7 * 4) + &pl1_controller_failure_pressed); + *temp_v1 = (s32) (*temp_v1 + 1); + return; + // (possible return value: (((ptr_current_point_in_controller_input_index + (temp_t7 * 2))->unk1F0 & (arg1 & 0xffff)) & 0xffff)) + } + } + // (possible return value: (((ptr_current_point_in_controller_input_index + (temp_t7 * 2))->unk1F0 & (arg1 & 0xffff)) & 0xffff)) +} +#else +GLOBAL_ASM( +.text +glabel get_controller_buttons_pressed +/* 00CFAC 7000C3AC 3C038002 */ lui $v1, %hi(ptr_current_point_in_controller_input_index) +/* 00CFB0 7000C3B0 8C6368C4 */ lw $v1, %lo(ptr_current_point_in_controller_input_index)($v1) +/* 00CFB4 7000C3B4 AFA40000 */ sw $a0, ($sp) +/* 00CFB8 7000C3B8 AFA50004 */ sw $a1, 4($sp) +/* 00CFBC 7000C3BC 8C7901F8 */ lw $t9, 0x1f8($v1) +/* 00CFC0 7000C3C0 00047600 */ sll $t6, $a0, 0x18 +/* 00CFC4 7000C3C4 000E7E03 */ sra $t7, $t6, 0x18 +/* 00CFC8 7000C3C8 30B8FFFF */ andi $t8, $a1, 0xffff +/* 00CFCC 7000C3CC 03002825 */ move $a1, $t8 +/* 00CFD0 7000C3D0 0721000F */ bgez $t9, .L7000C410 +/* 00CFD4 7000C3D4 01E02025 */ move $a0, $t7 +/* 00CFD8 7000C3D8 3C088002 */ lui $t0, %hi(num_controller_plugged_in_flags) +/* 00CFDC 7000C3DC 910868D0 */ lbu $t0, %lo(num_controller_plugged_in_flags)($t0) +/* 00CFE0 7000C3E0 3C0C8002 */ lui $t4, %hi(pl1_controller_failure_pressed) +/* 00CFE4 7000C3E4 258C6960 */ addiu $t4, %lo(pl1_controller_failure_pressed) # addiu $t4, $t4, 0x6960 +/* 00CFE8 7000C3E8 01E84807 */ srav $t1, $t0, $t7 +/* 00CFEC 7000C3EC 312A0001 */ andi $t2, $t1, 1 +/* 00CFF0 7000C3F0 15400007 */ bnez $t2, .L7000C410 +/* 00CFF4 7000C3F4 000F5880 */ sll $t3, $t7, 2 +/* 00CFF8 7000C3F8 016C1821 */ addu $v1, $t3, $t4 +/* 00CFFC 7000C3FC 8C6D0000 */ lw $t5, ($v1) +/* 00D000 7000C400 00001025 */ move $v0, $zero +/* 00D004 7000C404 25AE0001 */ addiu $t6, $t5, 1 +/* 00D008 7000C408 03E00008 */ jr $ra +/* 00D00C 7000C40C AC6E0000 */ sw $t6, ($v1) + +.L7000C410: +/* 00D010 7000C410 00047840 */ sll $t7, $a0, 1 +/* 00D014 7000C414 006FC021 */ addu $t8, $v1, $t7 +/* 00D018 7000C418 971901F0 */ lhu $t9, 0x1f0($t8) +/* 00D01C 7000C41C 03251024 */ and $v0, $t9, $a1 +/* 00D020 7000C420 3048FFFF */ andi $t0, $v0, 0xffff +/* 00D024 7000C424 01001025 */ move $v0, $t0 +/* 00D028 7000C428 03E00008 */ jr $ra +/* 00D02C 7000C42C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 controller_7000C430(s32 arg0, s32 arg1) { + // Node 0 + // Node 1 + (arg0 + 1)->unk-1 = (s8) (((0 < (((s32) (arg1 & 0xffff) >> 0xf) & 1)) * 0x11) + 0x20); + if ((0xf + -1) >= 0) + { + goto loop_1; + } + // (possible return value: (0xf + -1)) +} + +#else +GLOBAL_ASM( +.text +glabel controller_7000C430 +/* 00D030 7000C430 AFA50004 */ sw $a1, 4($sp) +/* 00D034 7000C434 30A3FFFF */ andi $v1, $a1, 0xffff +/* 00D038 7000C438 24050011 */ li $a1, 17 +/* 00D03C 7000C43C 2402000F */ li $v0, 15 +.L7000C440: +/* 00D040 7000C440 00437807 */ srav $t7, $v1, $v0 +/* 00D044 7000C444 31F80001 */ andi $t8, $t7, 1 +/* 00D048 7000C448 0018C82A */ slt $t9, $zero, $t8 +/* 00D04C 7000C44C 03250019 */ multu $t9, $a1 +/* 00D050 7000C450 2442FFFF */ addiu $v0, $v0, -1 +/* 00D054 7000C454 24840001 */ addiu $a0, $a0, 1 +/* 00D058 7000C458 00004012 */ mflo $t0 +/* 00D05C 7000C45C 25090020 */ addiu $t1, $t0, 0x20 +/* 00D060 7000C460 0441FFF7 */ bgez $v0, .L7000C440 +/* 00D064 7000C464 A089FFFF */ sb $t1, -1($a0) +/* 00D068 7000C468 03E00008 */ jr $ra +/* 00D06C 7000C46C 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void controller_7000C470(void) { + // Node 0 + if (get_attached_controller_count() > 0) + { + loop_1: + // Node 1 + if ((0 + 1) < get_attached_controller_count()) + { + goto loop_1; + } + } + // (possible return value: get_attached_controller_count()) +} + +#else +GLOBAL_ASM( +.text +glabel controller_7000C470 +/* 00D070 7000C470 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00D074 7000C474 AFBF001C */ sw $ra, 0x1c($sp) +/* 00D078 7000C478 AFB00018 */ sw $s0, 0x18($sp) +/* 00D07C 7000C47C 0C002E7E */ jal get_attached_controller_count +/* 00D080 7000C480 00008025 */ move $s0, $zero +/* 00D084 7000C484 58400007 */ blezl $v0, .L7000C4A4 +/* 00D088 7000C488 8FBF001C */ lw $ra, 0x1c($sp) +.L7000C48C: +/* 00D08C 7000C48C 0C002E7E */ jal get_attached_controller_count +/* 00D090 7000C490 26100001 */ addiu $s0, $s0, 1 +/* 00D094 7000C494 0202082A */ slt $at, $s0, $v0 +/* 00D098 7000C498 1420FFFC */ bnez $at, .L7000C48C +/* 00D09C 7000C49C 00000000 */ nop +/* 00D0A0 7000C4A0 8FBF001C */ lw $ra, 0x1c($sp) +.L7000C4A4: +/* 00D0A4 7000C4A4 8FB00018 */ lw $s0, 0x18($sp) +/* 00D0A8 7000C4A8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00D0AC 7000C4AC 03E00008 */ jr $ra +/* 00D0B0 7000C4B0 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 get_controller_3dstick_L_R(s32 arg0, s32 arg1, ? arg2, s32 arg7, s32 arg8) { + s32 temp_a0; + + // Node 0 + temp_a0 = (get_cur_controller_horz_stick_pos(((s32) (arg0 << 0x18) >> 0x18)) + 0x3c); + if (temp_a0 >= 0x79) + { + // Node 1 + } + // Node 2 + if (temp_a0 < 0) + { + // Node 3 + return; + // (possible return value: (((s32) (temp_a0 * (arg8 - arg7)) / 0x78) + arg7)) + } + // (possible return value: (((s32) (temp_a0 * (arg8 - arg7)) / 0x78) + arg7)) +} +#else +GLOBAL_ASM( +.text +glabel get_controller_3dstick_L_R +/* 00D0B4 7000C4B4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00D0B8 7000C4B8 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D0BC 7000C4BC AFA40018 */ sw $a0, 0x18($sp) +/* 00D0C0 7000C4C0 00047600 */ sll $t6, $a0, 0x18 +/* 00D0C4 7000C4C4 000E2603 */ sra $a0, $t6, 0x18 +/* 00D0C8 7000C4C8 AFA5001C */ sw $a1, 0x1c($sp) +/* 00D0CC 7000C4CC 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 00D0D0 7000C4D0 AFA60020 */ sw $a2, 0x20($sp) +/* 00D0D4 7000C4D4 2444003C */ addiu $a0, $v0, 0x3c +/* 00D0D8 7000C4D8 28810079 */ slti $at, $a0, 0x79 +/* 00D0DC 7000C4DC 14200002 */ bnez $at, .L7000C4E8 +/* 00D0E0 7000C4E0 8FA5001C */ lw $a1, 0x1c($sp) +/* 00D0E4 7000C4E4 24040078 */ li $a0, 120 +.L7000C4E8: +/* 00D0E8 7000C4E8 04810002 */ bgez $a0, .L7000C4F4 +/* 00D0EC 7000C4EC 8FB80020 */ lw $t8, 0x20($sp) +/* 00D0F0 7000C4F0 00002025 */ move $a0, $zero +.L7000C4F4: +/* 00D0F4 7000C4F4 0305C823 */ subu $t9, $t8, $a1 +/* 00D0F8 7000C4F8 00990019 */ multu $a0, $t9 +/* 00D0FC 7000C4FC 24010078 */ li $at, 120 +/* 00D100 7000C500 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D104 7000C504 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00D108 7000C508 00004012 */ mflo $t0 +/* 00D10C 7000C50C 00000000 */ nop +/* 00D110 7000C510 00000000 */ nop +/* 00D114 7000C514 0101001A */ div $zero, $t0, $at +/* 00D118 7000C518 00004812 */ mflo $t1 +/* 00D11C 7000C51C 01251021 */ addu $v0, $t1, $a1 +/* 00D120 7000C520 03E00008 */ jr $ra +/* 00D124 7000C524 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 get_controller_3dstick_U_D(s32 arg0, s32 arg1, ? arg2, s32 arg7, s32 arg8) { + s32 temp_a0; + + // Node 0 + temp_a0 = (get_cur_controller_vert_stick_pos(((s32) (arg0 << 0x18) >> 0x18)) + 0x3c); + if (temp_a0 >= 0x79) + { + // Node 1 + } + // Node 2 + if (temp_a0 < 0) + { + // Node 3 + return; + // (possible return value: (((s32) (temp_a0 * (arg8 - arg7)) / 0x78) + arg7)) + } + // (possible return value: (((s32) (temp_a0 * (arg8 - arg7)) / 0x78) + arg7)) +} +#else +GLOBAL_ASM( +.text +glabel get_controller_3dstick_U_D +/* 00D128 7000C528 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00D12C 7000C52C AFBF0014 */ sw $ra, 0x14($sp) +/* 00D130 7000C530 AFA40018 */ sw $a0, 0x18($sp) +/* 00D134 7000C534 00047600 */ sll $t6, $a0, 0x18 +/* 00D138 7000C538 000E2603 */ sra $a0, $t6, 0x18 +/* 00D13C 7000C53C AFA5001C */ sw $a1, 0x1c($sp) +/* 00D140 7000C540 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 00D144 7000C544 AFA60020 */ sw $a2, 0x20($sp) +/* 00D148 7000C548 2444003C */ addiu $a0, $v0, 0x3c +/* 00D14C 7000C54C 28810079 */ slti $at, $a0, 0x79 +/* 00D150 7000C550 14200002 */ bnez $at, .L7000C55C +/* 00D154 7000C554 8FA5001C */ lw $a1, 0x1c($sp) +/* 00D158 7000C558 24040078 */ li $a0, 120 +.L7000C55C: +/* 00D15C 7000C55C 04810002 */ bgez $a0, .L7000C568 +/* 00D160 7000C560 8FB80020 */ lw $t8, 0x20($sp) +/* 00D164 7000C564 00002025 */ move $a0, $zero +.L7000C568: +/* 00D168 7000C568 0305C823 */ subu $t9, $t8, $a1 +/* 00D16C 7000C56C 00990019 */ multu $a0, $t9 +/* 00D170 7000C570 24010078 */ li $at, 120 +/* 00D174 7000C574 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D178 7000C578 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00D17C 7000C57C 00004012 */ mflo $t0 +/* 00D180 7000C580 00000000 */ nop +/* 00D184 7000C584 00000000 */ nop +/* 00D188 7000C588 0101001A */ div $zero, $t0, $at +/* 00D18C 7000C58C 00004812 */ mflo $t1 +/* 00D190 7000C590 01251021 */ addu $v0, $t1, $a1 +/* 00D194 7000C594 03E00008 */ jr $ra +/* 00D198 7000C598 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +f32 controller_7000C59C(s32 arg0, s32 arg1, ? arg2, f32 arg7, f32 arg8) { + s32 temp_a0; + + // Node 0 + temp_a0 = (get_cur_controller_horz_stick_pos(((s32) (arg0 << 0x18) >> 0x18)) + 0x3c); + if (temp_a0 >= 0x79) + { + // Node 1 + } + // Node 2 + if (temp_a0 < 0) + { + // Node 3 + return; + // (possible return value: ((((f32) temp_a0 / 120.0f) * (arg8 - arg7)) + arg7)) + } + // (possible return value: ((((f32) temp_a0 / 120.0f) * (arg8 - arg7)) + arg7)) +} +#else +GLOBAL_ASM( +.text +glabel controller_7000C59C +/* 00D19C 7000C59C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00D1A0 7000C5A0 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D1A4 7000C5A4 AFA40018 */ sw $a0, 0x18($sp) +/* 00D1A8 7000C5A8 00047600 */ sll $t6, $a0, 0x18 +/* 00D1AC 7000C5AC 000E2603 */ sra $a0, $t6, 0x18 +/* 00D1B0 7000C5B0 AFA5001C */ sw $a1, 0x1c($sp) +/* 00D1B4 7000C5B4 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 00D1B8 7000C5B8 AFA60020 */ sw $a2, 0x20($sp) +/* 00D1BC 7000C5BC 2444003C */ addiu $a0, $v0, 0x3c +/* 00D1C0 7000C5C0 28810079 */ slti $at, $a0, 0x79 +/* 00D1C4 7000C5C4 14200002 */ bnez $at, .L7000C5D0 +/* 00D1C8 7000C5C8 C7A2001C */ lwc1 $f2, 0x1c($sp) +/* 00D1CC 7000C5CC 24040078 */ li $a0, 120 +.L7000C5D0: +/* 00D1D0 7000C5D0 04830003 */ bgezl $a0, .L7000C5E0 +/* 00D1D4 7000C5D4 44842000 */ mtc1 $a0, $f4 +/* 00D1D8 7000C5D8 00002025 */ move $a0, $zero +/* 00D1DC 7000C5DC 44842000 */ mtc1 $a0, $f4 +.L7000C5E0: +/* 00D1E0 7000C5E0 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 00D1E4 7000C5E4 44814000 */ mtc1 $at, $f8 +/* 00D1E8 7000C5E8 468021A0 */ cvt.s.w $f6, $f4 +/* 00D1EC 7000C5EC C7B00020 */ lwc1 $f16, 0x20($sp) +/* 00D1F0 7000C5F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D1F4 7000C5F4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00D1F8 7000C5F8 46028481 */ sub.s $f18, $f16, $f2 +/* 00D1FC 7000C5FC 46083283 */ div.s $f10, $f6, $f8 +/* 00D200 7000C600 46125102 */ mul.s $f4, $f10, $f18 +/* 00D204 7000C604 03E00008 */ jr $ra +/* 00D208 7000C608 46022000 */ add.s $f0, $f4, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +f32 controller_7000C60C(s32 arg0, s32 arg1, ? arg2, f32 arg7, f32 arg8) { + s32 temp_a0; + + // Node 0 + temp_a0 = (get_cur_controller_vert_stick_pos(((s32) (arg0 << 0x18) >> 0x18)) + 0x3c); + if (temp_a0 >= 0x79) + { + // Node 1 + } + // Node 2 + if (temp_a0 < 0) + { + // Node 3 + return; + // (possible return value: ((((f32) temp_a0 / 120.0f) * (arg8 - arg7)) + arg7)) + } + // (possible return value: ((((f32) temp_a0 / 120.0f) * (arg8 - arg7)) + arg7)) +} +#else +GLOBAL_ASM( +.text +glabel controller_7000C60C +/* 00D20C 7000C60C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00D210 7000C610 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D214 7000C614 AFA40018 */ sw $a0, 0x18($sp) +/* 00D218 7000C618 00047600 */ sll $t6, $a0, 0x18 +/* 00D21C 7000C61C 000E2603 */ sra $a0, $t6, 0x18 +/* 00D220 7000C620 AFA5001C */ sw $a1, 0x1c($sp) +/* 00D224 7000C624 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 00D228 7000C628 AFA60020 */ sw $a2, 0x20($sp) +/* 00D22C 7000C62C 2444003C */ addiu $a0, $v0, 0x3c +/* 00D230 7000C630 28810079 */ slti $at, $a0, 0x79 +/* 00D234 7000C634 14200002 */ bnez $at, .L7000C640 +/* 00D238 7000C638 C7A2001C */ lwc1 $f2, 0x1c($sp) +/* 00D23C 7000C63C 24040078 */ li $a0, 120 +.L7000C640: +/* 00D240 7000C640 04830003 */ bgezl $a0, .L7000C650 +/* 00D244 7000C644 44842000 */ mtc1 $a0, $f4 +/* 00D248 7000C648 00002025 */ move $a0, $zero +/* 00D24C 7000C64C 44842000 */ mtc1 $a0, $f4 +.L7000C650: +/* 00D250 7000C650 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 00D254 7000C654 44814000 */ mtc1 $at, $f8 +/* 00D258 7000C658 468021A0 */ cvt.s.w $f6, $f4 +/* 00D25C 7000C65C C7B00020 */ lwc1 $f16, 0x20($sp) +/* 00D260 7000C660 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D264 7000C664 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00D268 7000C668 46028481 */ sub.s $f18, $f16, $f2 +/* 00D26C 7000C66C 46083283 */ div.s $f10, $f6, $f8 +/* 00D270 7000C670 46125102 */ mul.s $f4, $f10, $f18 +/* 00D274 7000C674 03E00008 */ jr $ra +/* 00D278 7000C678 46022000 */ add.s $f0, $f4, $f2 +) +#endif + + + + + +#ifdef NONMATCHING +void controller_7000C67C(void) { + ? sp1C; + + // Node 0 + osSendMesg(&cont1MesgMQ, &sp1C, 0); + osRecvMesg(&cont2MesgMQ, &sp1C, 1); + return; + // (possible return value: osRecvMesg(&cont2MesgMQ, &sp1C, 1)) +} +#else +GLOBAL_ASM( +.text +glabel controller_7000C67C +/* 00D27C 7000C67C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00D280 7000C680 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D284 7000C684 3C048006 */ lui $a0, %hi(cont1MesgMQ) +/* 00D288 7000C688 24845370 */ addiu $a0, %lo(cont1MesgMQ) # addiu $a0, $a0, 0x5370 +/* 00D28C 7000C68C 27A5001C */ addiu $a1, $sp, 0x1c +/* 00D290 7000C690 0C0037C4 */ jal osSendMesg +/* 00D294 7000C694 00003025 */ move $a2, $zero +/* 00D298 7000C698 3C048006 */ lui $a0, %hi(cont2MesgMQ) +/* 00D29C 7000C69C 24845390 */ addiu $a0, %lo(cont2MesgMQ) # addiu $a0, $a0, 0x5390 +/* 00D2A0 7000C6A0 27A5001C */ addiu $a1, $sp, 0x1c +/* 00D2A4 7000C6A4 0C003774 */ jal osRecvMesg +/* 00D2A8 7000C6A8 24060001 */ li $a2, 1 +/* 00D2AC 7000C6AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D2B0 7000C6B0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00D2B4 7000C6B4 03E00008 */ jr $ra +/* 00D2B8 7000C6B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void controller_7000C6BC(void) { + ? sp1C; + + // Node 0 + osSendMesg(&cont3MesgMQ, &sp1C, 0); + osRecvMesg(&cont4MesgMQ, &sp1C, 1); + return; + // (possible return value: osRecvMesg(&cont4MesgMQ, &sp1C, 1)) +} +#else +GLOBAL_ASM( +.text +glabel controller_7000C6BC +/* 00D2BC 7000C6BC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00D2C0 7000C6C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D2C4 7000C6C4 3C048006 */ lui $a0, %hi(cont3MesgMQ) +/* 00D2C8 7000C6C8 248453B0 */ addiu $a0, %lo(cont3MesgMQ) # addiu $a0, $a0, 0x53b0 +/* 00D2CC 7000C6CC 27A5001C */ addiu $a1, $sp, 0x1c +/* 00D2D0 7000C6D0 0C0037C4 */ jal osSendMesg +/* 00D2D4 7000C6D4 00003025 */ move $a2, $zero +/* 00D2D8 7000C6D8 3C048006 */ lui $a0, %hi(cont4MesgMQ) +/* 00D2DC 7000C6DC 248453D0 */ addiu $a0, %lo(cont4MesgMQ) # addiu $a0, $a0, 0x53d0 +/* 00D2E0 7000C6E0 27A5001C */ addiu $a1, $sp, 0x1c +/* 00D2E4 7000C6E4 0C003774 */ jal osRecvMesg +/* 00D2E8 7000C6E8 24060001 */ li $a2, 1 +/* 00D2EC 7000C6EC 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D2F0 7000C6F0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00D2F4 7000C6F4 03E00008 */ jr $ra +/* 00D2F8 7000C6F8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 save_7000C6FC(void) { + s32 sp1C; + + // Node 0 + controller_7000C67C(); + sp1C = osEepromProbe(&contdemoMesgMQ); + controller_7000C6BC(); + return; + // (possible return value: sp1C) +} +#else +GLOBAL_ASM( +.text +glabel save_7000C6FC +/* 00D2FC 7000C6FC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00D300 7000C700 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D304 7000C704 0C00319F */ jal controller_7000C67C +/* 00D308 7000C708 00000000 */ nop +/* 00D30C 7000C70C 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00D310 7000C710 0C0053F4 */ jal osEepromProbe +/* 00D314 7000C714 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00D318 7000C718 0C0031AF */ jal controller_7000C6BC +/* 00D31C 7000C71C AFA2001C */ sw $v0, 0x1c($sp) +/* 00D320 7000C720 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D324 7000C724 8FA2001C */ lw $v0, 0x1c($sp) +/* 00D328 7000C728 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00D32C 7000C72C 03E00008 */ jr $ra +/* 00D330 7000C730 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 save_7000C734(s32 arg0, s32 arg1, ? arg8, ? arg9) { + s32 sp1C; + + // Node 0 + controller_7000C67C(); + sp1C = osEepromRead(&contdemoMesgMQ, arg8, arg9); + controller_7000C6BC(); + return; + // (possible return value: sp1C) +} +#else +GLOBAL_ASM( +.text +glabel save_7000C734 +/* 00D334 7000C734 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00D338 7000C738 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D33C 7000C73C AFA40020 */ sw $a0, 0x20($sp) +/* 00D340 7000C740 0C00319F */ jal controller_7000C67C +/* 00D344 7000C744 AFA50024 */ sw $a1, 0x24($sp) +/* 00D348 7000C748 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00D34C 7000C74C 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00D350 7000C750 93A50023 */ lbu $a1, 0x23($sp) +/* 00D354 7000C754 0C005410 */ jal osEepromRead +/* 00D358 7000C758 8FA60024 */ lw $a2, 0x24($sp) +/* 00D35C 7000C75C 0C0031AF */ jal controller_7000C6BC +/* 00D360 7000C760 AFA2001C */ sw $v0, 0x1c($sp) +/* 00D364 7000C764 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D368 7000C768 8FA2001C */ lw $v0, 0x1c($sp) +/* 00D36C 7000C76C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00D370 7000C770 03E00008 */ jr $ra +/* 00D374 7000C774 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 save_7000C778(s32 arg0, s32 arg1, ? arg8, ? arg9) { + s32 sp1C; + + // Node 0 + controller_7000C67C(); + sp1C = osEepromWrite(&contdemoMesgMQ, arg8, arg9); + controller_7000C6BC(); + return; + // (possible return value: sp1C) +} +#else +GLOBAL_ASM( +.text +glabel save_7000C778 +/* 00D378 7000C778 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00D37C 7000C77C AFBF0014 */ sw $ra, 0x14($sp) +/* 00D380 7000C780 AFA40020 */ sw $a0, 0x20($sp) +/* 00D384 7000C784 0C00319F */ jal controller_7000C67C +/* 00D388 7000C788 AFA50024 */ sw $a1, 0x24($sp) +/* 00D38C 7000C78C 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00D390 7000C790 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00D394 7000C794 93A50023 */ lbu $a1, 0x23($sp) +/* 00D398 7000C798 0C0054D0 */ jal osEepromWrite +/* 00D39C 7000C79C 8FA60024 */ lw $a2, 0x24($sp) +/* 00D3A0 7000C7A0 0C0031AF */ jal controller_7000C6BC +/* 00D3A4 7000C7A4 AFA2001C */ sw $v0, 0x1c($sp) +/* 00D3A8 7000C7A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D3AC 7000C7AC 8FA2001C */ lw $v0, 0x1c($sp) +/* 00D3B0 7000C7B0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00D3B4 7000C7B4 03E00008 */ jr $ra +/* 00D3B8 7000C7B8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 save_7000C7BC(s32 arg0, s32 arg1, ? arg2, ? arg8, ? arg9, ? argA) { + s32 sp1C; + + // Node 0 + controller_7000C67C(); + sp1C = osEepromLongRead(&contdemoMesgMQ, arg8, arg9, argA); + controller_7000C6BC(); + return; + // (possible return value: sp1C) +} +#else +GLOBAL_ASM( +.text +glabel save_7000C7BC +/* 00D3BC 7000C7BC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00D3C0 7000C7C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D3C4 7000C7C4 AFA40020 */ sw $a0, 0x20($sp) +/* 00D3C8 7000C7C8 AFA50024 */ sw $a1, 0x24($sp) +/* 00D3CC 7000C7CC 0C00319F */ jal controller_7000C67C +/* 00D3D0 7000C7D0 AFA60028 */ sw $a2, 0x28($sp) +/* 00D3D4 7000C7D4 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00D3D8 7000C7D8 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00D3DC 7000C7DC 93A50023 */ lbu $a1, 0x23($sp) +/* 00D3E0 7000C7E0 8FA60024 */ lw $a2, 0x24($sp) +/* 00D3E4 7000C7E4 0C005608 */ jal osEepromLongRead +/* 00D3E8 7000C7E8 8FA70028 */ lw $a3, 0x28($sp) +/* 00D3EC 7000C7EC 0C0031AF */ jal controller_7000C6BC +/* 00D3F0 7000C7F0 AFA2001C */ sw $v0, 0x1c($sp) +/* 00D3F4 7000C7F4 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D3F8 7000C7F8 8FA2001C */ lw $v0, 0x1c($sp) +/* 00D3FC 7000C7FC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00D400 7000C800 03E00008 */ jr $ra +/* 00D404 7000C804 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 save_7000C808(s32 arg0, s32 arg1, ? arg2, ? arg8, ? arg9, ? argA) { + s32 sp1C; + + // Node 0 + controller_7000C67C(); + sp1C = osEepromLongWrite(&contdemoMesgMQ, arg8, arg9, argA); + controller_7000C6BC(); + return; + // (possible return value: sp1C) +} +#else +GLOBAL_ASM( +.text +glabel save_7000C808 +/* 00D408 7000C808 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00D40C 7000C80C AFBF0014 */ sw $ra, 0x14($sp) +/* 00D410 7000C810 AFA40020 */ sw $a0, 0x20($sp) +/* 00D414 7000C814 AFA50024 */ sw $a1, 0x24($sp) +/* 00D418 7000C818 0C00319F */ jal controller_7000C67C +/* 00D41C 7000C81C AFA60028 */ sw $a2, 0x28($sp) +/* 00D420 7000C820 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00D424 7000C824 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00D428 7000C828 93A50023 */ lbu $a1, 0x23($sp) +/* 00D42C 7000C82C 8FA60024 */ lw $a2, 0x24($sp) +/* 00D430 7000C830 0C005658 */ jal osEepromLongWrite +/* 00D434 7000C834 8FA70028 */ lw $a3, 0x28($sp) +/* 00D438 7000C838 0C0031AF */ jal controller_7000C6BC +/* 00D43C 7000C83C AFA2001C */ sw $v0, 0x1c($sp) +/* 00D440 7000C840 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D444 7000C844 8FA2001C */ lw $v0, 0x1c($sp) +/* 00D448 7000C848 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00D44C 7000C84C 03E00008 */ jr $ra +/* 00D450 7000C850 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 controller_7000C854(s32 arg0, s32 arg1) { + s32 temp_v1; + void *temp_a0; + s32 temp_f8; + + // Node 0 + temp_v1 = (arg0 * 4); + if (disable_all_rumble == 0) + { + // Node 1 + if (*(&controller_1_rumble_inserted + temp_v1) > 0) + { + // Node 2 + temp_a0 = (temp_v1 + &controller_1_rumble_duration); + temp_f8 = (s32) (arg1 * 60.0f); + if (*temp_a0 < temp_f8) + { + // Node 3 + *temp_a0 = temp_f8; + } + // Node 4 + if (*(&controller_1_rumble_state + temp_v1) == 0) + { + // Node 5 + *(&controller_1_rumble_pulse + temp_v1) = 1; + return; + // (possible return value: temp_f8) + } + } + } + // (function likely void) +} + +#else +GLOBAL_ASM( +.text +glabel controller_7000C854 +/* 00D454 7000C854 3C0E8002 */ lui $t6, %hi(disable_all_rumble) +/* 00D458 7000C858 8DCE6924 */ lw $t6, %lo(disable_all_rumble)($t6) +/* 00D45C 7000C85C 44856000 */ mtc1 $a1, $f12 +/* 00D460 7000C860 00041880 */ sll $v1, $a0, 2 +/* 00D464 7000C864 15C0001B */ bnez $t6, .L7000C8D4 +/* 00D468 7000C868 3C0F8002 */ lui $t7, %hi(controller_1_rumble_inserted) +/* 00D46C 7000C86C 01E37821 */ addu $t7, $t7, $v1 +/* 00D470 7000C870 8DEF68D8 */ lw $t7, %lo(controller_1_rumble_inserted)($t7) +/* 00D474 7000C874 3C098002 */ lui $t1, %hi(controller_1_rumble_state) +/* 00D478 7000C878 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 00D47C 7000C87C 19E00015 */ blez $t7, .L7000C8D4 +/* 00D480 7000C880 01234821 */ addu $t1, $t1, $v1 +/* 00D484 7000C884 44812000 */ mtc1 $at, $f4 +/* 00D488 7000C888 3C188002 */ lui $t8, %hi(controller_1_rumble_duration) +/* 00D48C 7000C88C 271868F8 */ addiu $t8, %lo(controller_1_rumble_duration) # addiu $t8, $t8, 0x68f8 +/* 00D490 7000C890 46046182 */ mul.s $f6, $f12, $f4 +/* 00D494 7000C894 00782021 */ addu $a0, $v1, $t8 +/* 00D498 7000C898 8C880000 */ lw $t0, ($a0) +/* 00D49C 7000C89C 240A0001 */ li $t2, 1 +/* 00D4A0 7000C8A0 4600320D */ trunc.w.s $f8, $f6 +/* 00D4A4 7000C8A4 44024000 */ mfc1 $v0, $f8 +/* 00D4A8 7000C8A8 00000000 */ nop +/* 00D4AC 7000C8AC 0102082A */ slt $at, $t0, $v0 +/* 00D4B0 7000C8B0 10200002 */ beqz $at, .L7000C8BC +/* 00D4B4 7000C8B4 00000000 */ nop +/* 00D4B8 7000C8B8 AC820000 */ sw $v0, ($a0) +.L7000C8BC: +/* 00D4BC 7000C8BC 8D2968E8 */ lw $t1, %lo(controller_1_rumble_state)($t1) +/* 00D4C0 7000C8C0 3C018002 */ lui $at, %hi(controller_1_rumble_pulse) +/* 00D4C4 7000C8C4 00230821 */ addu $at, $at, $v1 +/* 00D4C8 7000C8C8 15200002 */ bnez $t1, .L7000C8D4 +/* 00D4CC 7000C8CC 00000000 */ nop +/* 00D4D0 7000C8D0 AC2A6908 */ sw $t2, %lo(controller_1_rumble_pulse)($at) +.L7000C8D4: +/* 00D4D4 7000C8D4 03E00008 */ jr $ra +/* 00D4D8 7000C8D8 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void reset_cont_rumble_detect(void) { + controller_1_rumble_state = 1; + controller_1_rumble_pulse = 0; + controller_2_rumble_state = 1; + controller_2_rumble_pulse = 0; + controller_3_rumble_state = 1; + controller_3_rumble_pulse = 0; + controller_4_rumble_state = 1; + controller_4_rumble_pulse = 0; +} +#else +#ifdef VERSION_US +GLOBAL_ASM( +.text +glabel reset_cont_rumble_detect +/* 00D4DC 7000C8DC 240E0001 */ li $t6, 1 +/* 00D4E0 7000C8E0 3C018002 */ lui $at, %hi(controller_1_rumble_state) +/* 00D4E4 7000C8E4 AC2E68E8 */ sw $t6, %lo(controller_1_rumble_state)($at) +/* 00D4E8 7000C8E8 3C018002 */ lui $at, %hi(controller_1_rumble_pulse) +/* 00D4EC 7000C8EC AC206908 */ sw $zero, %lo(controller_1_rumble_pulse)($at) +/* 00D4F0 7000C8F0 3C018002 */ lui $at, %hi(controller_2_rumble_state) +/* 00D4F4 7000C8F4 240F0001 */ li $t7, 1 +/* 00D4F8 7000C8F8 AC2F68EC */ sw $t7, %lo(controller_2_rumble_state)($at) +/* 00D4FC 7000C8FC 3C018002 */ lui $at, %hi(controller_2_rumble_pulse) +/* 00D500 7000C900 AC20690C */ sw $zero, %lo(controller_2_rumble_pulse)($at) +/* 00D504 7000C904 3C018002 */ lui $at, %hi(controller_3_rumble_state) +/* 00D508 7000C908 24180001 */ li $t8, 1 +/* 00D50C 7000C90C AC3868F0 */ sw $t8, %lo(controller_3_rumble_state)($at) +/* 00D510 7000C910 3C018002 */ lui $at, %hi(controller_3_rumble_pulse) +/* 00D514 7000C914 AC206910 */ sw $zero, %lo(controller_3_rumble_pulse)($at) +/* 00D518 7000C918 3C018002 */ lui $at, %hi(controller_4_rumble_state) +/* 00D51C 7000C91C 24190001 */ li $t9, 1 +/* 00D520 7000C920 AC3968F4 */ sw $t9, %lo(controller_4_rumble_state)($at) +/* 00D524 7000C924 3C018002 */ lui $at, %hi( controller_4_rumble_pulse) +/* 00D528 7000C928 03E00008 */ jr $ra +/* 00D52C 7000C92C AC206914 */ sw $zero, %lo( controller_4_rumble_pulse)($at) +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel reset_cont_rumble_detect +/* 00D4E8 7000C8E8 3C018002 */ lui $at, %hi(controller_1_rumble_pulse) +/* 00D4F4 7000C8F4 240F0001 */ li $t7, 2 +/* 00D4DC 7000C8DC 240E0001 */ li $t6, 2 +/* 00D500 7000C900 AC20690C */ sw $t7, %lo(controller_2_rumble_pulse)($at) +/* 00D4EC 7000C8EC AC206908 */ sw $t6, %lo(controller_1_rumble_pulse)($at) +/* 00D510 7000C910 3C018002 */ lui $at, %hi(controller_3_rumble_pulse) +/* 00D508 7000C908 24180001 */ li $t8, 2 +/* 00D51C 7000C91C 24190001 */ li $t9, 2 +/* 00D514 7000C914 AC206910 */ sw $t9, %lo(controller_4_rumble_pulse)($at) +/* 00D528 7000C928 03E00008 */ jr $ra +/* 00D52C 7000C92C AC206914 */ sw $t8, %lo( controller_3_rumble_pulse)($at) +) +#endif + +#endif + + + + + +#ifdef NONMATCHING +void controller_7000C930(s32 arg0) { + // Node 0 + (void *)0x80020000->unk68C4 = (s32) ((arg0 * 0x1fc) + &controller_input_index); + return; + // (function likely void) +} +#else +GLOBAL_ASM( +.text +glabel controller_7000C930 +/* 00D530 7000C930 000471C0 */ sll $t6, $a0, 7 +/* 00D534 7000C934 01C47023 */ subu $t6, $t6, $a0 +/* 00D538 7000C938 3C0F8006 */ lui $t7, %hi(controller_input_index) +/* 00D53C 7000C93C 25EF4F30 */ addiu $t7, %lo(controller_input_index) # addiu $t7, $t7, 0x4f30 +/* 00D540 7000C940 000E7080 */ sll $t6, $t6, 2 +/* 00D544 7000C944 01CFC021 */ addu $t8, $t6, $t7 +/* 00D548 7000C948 3C018002 */ lui $at, %hi(ptr_current_point_in_controller_input_index) +/* 00D54C 7000C94C 03E00008 */ jr $ra +/* 00D550 7000C950 AC3868C4 */ sw $t8, %lo(ptr_current_point_in_controller_input_index)($at) +) +#endif + + + + + +#ifdef NONMATCHING +s32 controller_7000C954(void) { + // (possible return value: ((s32) (ptr_current_point_in_controller_input_index - &controller_input_index) / 0x1fc)) +} +#else +GLOBAL_ASM( +.text +glabel controller_7000C954 +/* 00D554 7000C954 3C0E8002 */ lui $t6, %hi(ptr_current_point_in_controller_input_index) +/* 00D558 7000C958 8DCE68C4 */ lw $t6, %lo(ptr_current_point_in_controller_input_index)($t6) +/* 00D55C 7000C95C 3C0F8006 */ lui $t7, %hi(controller_input_index) +/* 00D560 7000C960 25EF4F30 */ addiu $t7, %lo(controller_input_index) # addiu $t7, $t7, 0x4f30 +/* 00D564 7000C964 240101FC */ li $at, 508 +/* 00D568 7000C968 01CF1023 */ subu $v0, $t6, $t7 +/* 00D56C 7000C96C 0041001A */ div $zero, $v0, $at +/* 00D570 7000C970 00001012 */ mflo $v0 +/* 00D574 7000C974 03E00008 */ jr $ra +/* 00D578 7000C978 00000000 */ nop +) +#endif + + + + diff --git a/src/joy.h b/src/joy.h new file mode 100644 index 0000000..69dfef8 --- /dev/null +++ b/src/joy.h @@ -0,0 +1,9 @@ +#ifndef _JOY_H_ +#define _JOY_H_ + +#include "ultra64.h" +void *joyInitDebugNoticeList(void); +s32 get_attached_controller_count(void); +s32 get_controller_buttons_pressed(s32 arg0, s32 arg1); + +#endif diff --git a/src/libultra/ai.s b/src/libultra/ai.s new file mode 100644 index 0000000..792456e --- /dev/null +++ b/src/libultra/ai.s @@ -0,0 +1,28 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osAiDeviceBusy +/* 019CF0 700190F0 3C0EA450 */ lui $t6, %hi(AI_STATUS_REG) # $t6, 0xa450 +/* 019CF4 700190F4 8DC4000C */ lw $a0, %lo(AI_STATUS_REG)($t6) +/* 019CF8 700190F8 3C018000 */ lui $at, 0x8000 +/* 019CFC 700190FC 27BDFFF8 */ addiu $sp, $sp, -8 +/* 019D00 70019100 00817824 */ and $t7, $a0, $at +/* 019D04 70019104 11E00003 */ beqz $t7, .L70019114 +/* 019D08 70019108 00000000 */ nop +/* 019D0C 7001910C 10000002 */ b .L70019118 +/* 019D10 70019110 24020001 */ li $v0, 1 +.L70019114: +/* 019D14 70019114 00001025 */ move $v0, $zero +.L70019118: +/* 019D18 70019118 03E00008 */ jr $ra +/* 019D1C 7001911C 27BD0008 */ addiu $sp, $sp, 8 diff --git a/src/libultra/aigetlen.s b/src/libultra/aigetlen.s new file mode 100644 index 0000000..f363dab --- /dev/null +++ b/src/libultra/aigetlen.s @@ -0,0 +1,15 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osAiGetLength +/* 00FBB0 7000EFB0 3C0EA450 */ lui $t6, 0xa450 +/* 00FBB4 7000EFB4 03E00008 */ jr $ra +/* 00FBB8 7000EFB8 8DC20004 */ lw $v0, 4($t6) + diff --git a/src/libultra/aisetfreq.s b/src/libultra/aisetfreq.s new file mode 100644 index 0000000..bd786cc --- /dev/null +++ b/src/libultra/aisetfreq.s @@ -0,0 +1,106 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osAiSetFrequency +/* 00F530 7000E930 3C0E8003 */ lui $t6, %hi(osViClock)#%hi(osViClock) +/* 00F534 7000E934 8DCE804C */ lw $t6, %lo(osViClock)($t6)#%lo(osViClock)($t6) +/* 00F538 7000E938 44844000 */ mtc1 $a0, $f8 +/* 00F53C 7000E93C 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 00F540 7000E940 448E2000 */ mtc1 $t6, $f4 +/* 00F544 7000E944 468042A0 */ cvt.s.w $f10, $f8 +/* 00F548 7000E948 04810005 */ bgez $a0, .L7000E960 +/* 00F54C 7000E94C 468021A0 */ cvt.s.w $f6, $f4 +/* 00F550 7000E950 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 00F554 7000E954 44818000 */ mtc1 $at, $f16 +/* 00F558 7000E958 00000000 */ nop +/* 00F55C 7000E95C 46105280 */ add.s $f10, $f10, $f16 +.L7000E960: +/* 00F560 7000E960 460A3483 */ div.s $f18, $f6, $f10 +/* 00F564 7000E964 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 00F568 7000E968 44812000 */ mtc1 $at, $f4 +/* 00F56C 7000E96C 24050001 */ li $a1, 1 +/* 00F570 7000E970 46049300 */ add.s $f12, $f18, $f4 +/* 00F574 7000E974 444FF800 */ cfc1 $t7, $31 +/* 00F578 7000E978 44C5F800 */ ctc1 $a1, $31 +/* 00F57C 7000E97C 00000000 */ nop +/* 00F580 7000E980 46006224 */ cvt.w.s $f8, $f12 +/* 00F584 7000E984 4445F800 */ cfc1 $a1, $31 +/* 00F588 7000E988 00000000 */ nop +/* 00F58C 7000E98C 30A10004 */ andi $at, $a1, 4 +/* 00F590 7000E990 30A50078 */ andi $a1, $a1, 0x78 +/* 00F594 7000E994 10A00013 */ beqz $a1, .L7000E9E4 +/* 00F598 7000E998 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 00F59C 7000E99C 44814000 */ mtc1 $at, $f8 +/* 00F5A0 7000E9A0 24050001 */ li $a1, 1 +/* 00F5A4 7000E9A4 46086201 */ sub.s $f8, $f12, $f8 +/* 00F5A8 7000E9A8 44C5F800 */ ctc1 $a1, $31 +/* 00F5AC 7000E9AC 00000000 */ nop +/* 00F5B0 7000E9B0 46004224 */ cvt.w.s $f8, $f8 +/* 00F5B4 7000E9B4 4445F800 */ cfc1 $a1, $31 +/* 00F5B8 7000E9B8 00000000 */ nop +/* 00F5BC 7000E9BC 30A10004 */ andi $at, $a1, 4 +/* 00F5C0 7000E9C0 30A50078 */ andi $a1, $a1, 0x78 +/* 00F5C4 7000E9C4 14A00005 */ bnez $a1, .L7000E9DC +/* 00F5C8 7000E9C8 00000000 */ nop +/* 00F5CC 7000E9CC 44054000 */ mfc1 $a1, $f8 +/* 00F5D0 7000E9D0 3C018000 */ lui $at, 0x8000 +/* 00F5D4 7000E9D4 10000007 */ b .L7000E9F4 +/* 00F5D8 7000E9D8 00A12825 */ or $a1, $a1, $at +.L7000E9DC: +/* 00F5DC 7000E9DC 10000005 */ b .L7000E9F4 +/* 00F5E0 7000E9E0 2405FFFF */ li $a1, -1 +.L7000E9E4: +/* 00F5E4 7000E9E4 44054000 */ mfc1 $a1, $f8 +/* 00F5E8 7000E9E8 00000000 */ nop +/* 00F5EC 7000E9EC 04A0FFFB */ bltz $a1, .L7000E9DC +/* 00F5F0 7000E9F0 00000000 */ nop +.L7000E9F4: +/* 00F5F4 7000E9F4 44CFF800 */ ctc1 $t7, $31 +/* 00F5F8 7000E9F8 2CA10084 */ sltiu $at, $a1, 0x84 +/* 00F5FC 7000E9FC 10200003 */ beqz $at, .L7000EA0C +/* 00F600 7000EA00 00000000 */ nop +/* 00F604 7000EA04 10000020 */ b .L7000EA88 +/* 00F608 7000EA08 2402FFFF */ li $v0, -1 +.L7000EA0C: +/* 00F60C 7000EA0C 24010042 */ li $at, 66 +/* 00F610 7000EA10 00A1001B */ divu $zero, $a1, $at +/* 00F614 7000EA14 00003012 */ mflo $a2 +/* 00F618 7000EA18 30D800FF */ andi $t8, $a2, 0xff +/* 00F61C 7000EA1C 03003025 */ move $a2, $t8 +/* 00F620 7000EA20 28C10011 */ slti $at, $a2, 0x11 +/* 00F624 7000EA24 14200002 */ bnez $at, .L7000EA30 +/* 00F628 7000EA28 00000000 */ nop +/* 00F62C 7000EA2C 24060010 */ li $a2, 16 +.L7000EA30: +/* 00F630 7000EA30 24B9FFFF */ addiu $t9, $a1, -1 +/* 00F634 7000EA34 3C08A450 */ lui $t0, %hi(AI_DACRATE_REG) # $t0, 0xa450 +/* 00F638 7000EA38 AD190010 */ sw $t9, %lo(AI_DACRATE_REG)($t0) +/* 00F63C 7000EA3C 24C9FFFF */ addiu $t1, $a2, -1 +/* 00F640 7000EA40 3C0AA450 */ lui $t2, %hi(AI_BITRATE_REG) # $t2, 0xa450 +/* 00F644 7000EA44 AD490014 */ sw $t1, %lo(AI_BITRATE_REG)($t2) +/* 00F648 7000EA48 240B0001 */ li $t3, 1 +/* 00F64C 7000EA4C 3C0CA450 */ lui $t4, %hi(AI_CONTROL_REG) # $t4, 0xa450 +/* 00F650 7000EA50 AD8B0008 */ sw $t3, %lo(AI_CONTROL_REG)($t4) +/* 00F654 7000EA54 3C0D8003 */ lui $t5, %hi(osViClock) #osViClock +/* 00F658 7000EA58 8DAD804C */ lw $t5, %lo(osViClock)($t5) #osViClock +/* 00F65C 7000EA5C 01A5001A */ div $zero, $t5, $a1 +/* 00F660 7000EA60 00001012 */ mflo $v0 +/* 00F664 7000EA64 14A00002 */ bnez $a1, .L7000EA70 +/* 00F668 7000EA68 00000000 */ nop +/* 00F66C 7000EA6C 0007000D */ break 7 +.L7000EA70: +/* 00F670 7000EA70 2401FFFF */ li $at, -1 +/* 00F674 7000EA74 14A10004 */ bne $a1, $at, .L7000EA88 +/* 00F678 7000EA78 3C018000 */ lui $at, 0x8000 +/* 00F67C 7000EA7C 15A10002 */ bne $t5, $at, .L7000EA88 +/* 00F680 7000EA80 00000000 */ nop +/* 00F684 7000EA84 0006000D */ break 6 +.L7000EA88: +/* 00F688 7000EA88 03E00008 */ jr $ra +/* 00F68C 7000EA8C 27BD0010 */ addiu $sp, $sp, 0x10 diff --git a/src/libultra/aisetnextbuf.s b/src/libultra/aisetnextbuf.s new file mode 100644 index 0000000..53492e4 --- /dev/null +++ b/src/libultra/aisetnextbuf.s @@ -0,0 +1,63 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osAiSetNextBuffer +/* 00FB00 7000EF00 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00FB04 7000EF04 3C0F8002 */ lui $t7, %hi(B_800276F0) +/* 00FB08 7000EF08 91EF76F0 */ lbu $t7, %lo(B_800276F0)($t7) +/* 00FB0C 7000EF0C AFA40020 */ sw $a0, 0x20($sp) +/* 00FB10 7000EF10 8FAE0020 */ lw $t6, 0x20($sp) +/* 00FB14 7000EF14 AFBF0014 */ sw $ra, 0x14($sp) +/* 00FB18 7000EF18 AFA50024 */ sw $a1, 0x24($sp) +/* 00FB1C 7000EF1C 11E00003 */ beqz $t7, .L7000EF2C +/* 00FB20 7000EF20 AFAE001C */ sw $t6, 0x1c($sp) +/* 00FB24 7000EF24 25D8E000 */ addiu $t8, $t6, -0x2000 +/* 00FB28 7000EF28 AFB8001C */ sw $t8, 0x1c($sp) +.L7000EF2C: +/* 00FB2C 7000EF2C 8FB90020 */ lw $t9, 0x20($sp) +/* 00FB30 7000EF30 8FA80024 */ lw $t0, 0x24($sp) +/* 00FB34 7000EF34 24012000 */ li $at, 8192 +/* 00FB38 7000EF38 03284821 */ addu $t1, $t9, $t0 +/* 00FB3C 7000EF3C 312A3FFF */ andi $t2, $t1, 0x3fff +/* 00FB40 7000EF40 15410005 */ bne $t2, $at, .L7000EF58 +/* 00FB44 7000EF44 00000000 */ nop +/* 00FB48 7000EF48 240B0001 */ li $t3, 1 +/* 00FB4C 7000EF4C 3C018002 */ lui $at, %hi(B_800276F0) +/* 00FB50 7000EF50 10000003 */ b .L7000EF60 +/* 00FB54 7000EF54 A02B76F0 */ sb $t3, %lo(B_800276F0)($at) +.L7000EF58: +/* 00FB58 7000EF58 3C018002 */ lui $at, %hi(B_800276F0) +/* 00FB5C 7000EF5C A02076F0 */ sb $zero, %lo(B_800276F0)($at) +.L7000EF60: +/* 00FB60 7000EF60 0C00643C */ jal __osAiDeviceBusy +/* 00FB64 7000EF64 00000000 */ nop +/* 00FB68 7000EF68 10400003 */ beqz $v0, .L7000EF78 +/* 00FB6C 7000EF6C 00000000 */ nop +/* 00FB70 7000EF70 10000009 */ b .L7000EF98 +/* 00FB74 7000EF74 2402FFFF */ li $v0, -1 +.L7000EF78: +/* 00FB78 7000EF78 0C003A2C */ jal osVirtualToPhysical +/* 00FB7C 7000EF7C 8FA4001C */ lw $a0, 0x1c($sp) +/* 00FB80 7000EF80 3C0CA450 */ lui $t4, 0xa450 +/* 00FB84 7000EF84 AD820000 */ sw $v0, ($t4) +/* 00FB88 7000EF88 8FAD0024 */ lw $t5, 0x24($sp) +/* 00FB8C 7000EF8C 3C0FA450 */ lui $t7, %hi(AI_LEN_REG) # $t7, 0xa450 +/* 00FB90 7000EF90 00001025 */ move $v0, $zero +/* 00FB94 7000EF94 ADED0004 */ sw $t5, %lo(AI_LEN_REG)($t7) +.L7000EF98: +/* 00FB98 7000EF98 8FBF0014 */ lw $ra, 0x14($sp) +/* 00FB9C 7000EF9C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00FBA0 7000EFA0 03E00008 */ jr $ra +/* 00FBA4 7000EFA4 00000000 */ nop + +/* 00FBA8 7000EFA8 00000000 */ nop +/* 00FBAC 7000EFAC 00000000 */ nop +.section .data +glabel B_800276F0 +.byte 0 diff --git a/src/libultra/align.s b/src/libultra/align.s new file mode 100644 index 0000000..a77500f --- /dev/null +++ b/src/libultra/align.s @@ -0,0 +1,159 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel guAlignF +/* 017460 70016860 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 017464 70016864 3C018003 */ lui $at, %hi(F32_800297F0) +/* 017468 70016868 C42497F0 */ lwc1 $f4, %lo(F32_800297F0)($at) +/* 01746C 7001686C AFB00018 */ sw $s0, 0x18($sp) +/* 017470 70016870 00808025 */ move $s0, $a0 +/* 017474 70016874 3C018006 */ lui $at, %hi(flt_CODE_bss_80067DD0) +/* 017478 70016878 AFBF001C */ sw $ra, 0x1c($sp) +/* 01747C 7001687C AFA50034 */ sw $a1, 0x34($sp) +/* 017480 70016880 AFA60038 */ sw $a2, 0x38($sp) +/* 017484 70016884 AFA7003C */ sw $a3, 0x3c($sp) +/* 017488 70016888 27A60040 */ addiu $a2, $sp, 0x40 +/* 01748C 7001688C 27A5003C */ addiu $a1, $sp, 0x3c +/* 017490 70016890 27A40038 */ addiu $a0, $sp, 0x38 +/* 017494 70016894 0C007DD4 */ jal guNormalize +/* 017498 70016898 E4247DD0 */ swc1 $f4, %lo(flt_CODE_bss_80067DD0)($at) +/* 01749C 7001689C 3C018006 */ lui $at, %hi(flt_CODE_bss_80067DD0) +/* 0174A0 700168A0 C7AC0034 */ lwc1 $f12, 0x34($sp) +/* 0174A4 700168A4 C4267DD0 */ lwc1 $f6, %lo(flt_CODE_bss_80067DD0)($at) +/* 0174A8 700168A8 46066302 */ mul.s $f12, $f12, $f6 +/* 0174AC 700168AC 0FC15FAB */ jal sinf +/* 0174B0 700168B0 E7AC0034 */ swc1 $f12, 0x34($sp) +/* 0174B4 700168B4 C7AC0034 */ lwc1 $f12, 0x34($sp) +/* 0174B8 700168B8 0FC15FA8 */ jal cosf +/* 0174BC 700168BC E7A0002C */ swc1 $f0, 0x2c($sp) +/* 0174C0 700168C0 C7AE0038 */ lwc1 $f14, 0x38($sp) +/* 0174C4 700168C4 C7B20040 */ lwc1 $f18, 0x40($sp) +/* 0174C8 700168C8 E7A00028 */ swc1 $f0, 0x28($sp) +/* 0174CC 700168CC 460E7202 */ mul.s $f8, $f14, $f14 +/* 0174D0 700168D0 00000000 */ nop +/* 0174D4 700168D4 46129282 */ mul.s $f10, $f18, $f18 +/* 0174D8 700168D8 0C007DF8 */ jal sqrtf +/* 0174DC 700168DC 460A4300 */ add.s $f12, $f8, $f10 +/* 0174E0 700168E0 02002025 */ move $a0, $s0 +/* 0174E4 700168E4 0C004004 */ jal guMtxIdentF +/* 0174E8 700168E8 E7A00024 */ swc1 $f0, 0x24($sp) +/* 0174EC 700168EC 44806000 */ mtc1 $zero, $f12 +/* 0174F0 700168F0 C7AE0024 */ lwc1 $f14, 0x24($sp) +/* 0174F4 700168F4 C7A20028 */ lwc1 $f2, 0x28($sp) +/* 0174F8 700168F8 C7B0002C */ lwc1 $f16, 0x2c($sp) +/* 0174FC 700168FC 460C7032 */ c.eq.s $f14, $f12 +/* 017500 70016900 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 017504 70016904 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 017508 70016908 45030041 */ bc1tl .L70016A10 +/* 01750C 7001690C 8FBF001C */ lw $ra, 0x1c($sp) +/* 017510 70016910 44812000 */ mtc1 $at, $f4 +/* 017514 70016914 46068202 */ mul.s $f8, $f16, $f6 +/* 017518 70016918 C7AA0038 */ lwc1 $f10, 0x38($sp) +/* 01751C 7001691C C7A60040 */ lwc1 $f6, 0x40($sp) +/* 017520 70016920 460E2003 */ div.s $f0, $f4, $f14 +/* 017524 70016924 460A4102 */ mul.s $f4, $f8, $f10 +/* 017528 70016928 46003207 */ neg.s $f8, $f6 +/* 01752C 7001692C 46024282 */ mul.s $f10, $f8, $f2 +/* 017530 70016930 46045181 */ sub.s $f6, $f10, $f4 +/* 017534 70016934 46003202 */ mul.s $f8, $f6, $f0 +/* 017538 70016938 E6080000 */ swc1 $f8, ($s0) +/* 01753C 7001693C C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 017540 70016940 C7A60038 */ lwc1 $f6, 0x38($sp) +/* 017544 70016944 460A1102 */ mul.s $f4, $f2, $f10 +/* 017548 70016948 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 01754C 7001694C 46062202 */ mul.s $f8, $f4, $f6 +/* 017550 70016950 00000000 */ nop +/* 017554 70016954 46105102 */ mul.s $f4, $f10, $f16 +/* 017558 70016958 46082181 */ sub.s $f6, $f4, $f8 +/* 01755C 7001695C 46003282 */ mul.s $f10, $f6, $f0 +/* 017560 70016960 E60A0010 */ swc1 $f10, 0x10($s0) +/* 017564 70016964 460E8182 */ mul.s $f6, $f16, $f14 +/* 017568 70016968 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 01756C 7001696C E60C0030 */ swc1 $f12, 0x30($s0) +/* 017570 70016970 460E1282 */ mul.s $f10, $f2, $f14 +/* 017574 70016974 46002207 */ neg.s $f8, $f4 +/* 017578 70016978 E6080020 */ swc1 $f8, 0x20($s0) +/* 01757C 7001697C E6060004 */ swc1 $f6, 4($s0) +/* 017580 70016980 E60A0014 */ swc1 $f10, 0x14($s0) +/* 017584 70016984 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 017588 70016988 E60C0034 */ swc1 $f12, 0x34($s0) +/* 01758C 7001698C 46002207 */ neg.s $f8, $f4 +/* 017590 70016990 E6080024 */ swc1 $f8, 0x24($s0) +/* 017594 70016994 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 017598 70016998 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 01759C 7001699C 46068282 */ mul.s $f10, $f16, $f6 +/* 0175A0 700169A0 C7A60038 */ lwc1 $f6, 0x38($sp) +/* 0175A4 700169A4 46045202 */ mul.s $f8, $f10, $f4 +/* 0175A8 700169A8 00000000 */ nop +/* 0175AC 700169AC 46061282 */ mul.s $f10, $f2, $f6 +/* 0175B0 700169B0 46085101 */ sub.s $f4, $f10, $f8 +/* 0175B4 700169B4 46008287 */ neg.s $f10, $f16 +/* 0175B8 700169B8 46002182 */ mul.s $f6, $f4, $f0 +/* 0175BC 700169BC E6060008 */ swc1 $f6, 8($s0) +/* 0175C0 700169C0 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 0175C4 700169C4 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0175C8 700169C8 46085102 */ mul.s $f4, $f10, $f8 +/* 0175CC 700169CC C7A80040 */ lwc1 $f8, 0x40($sp) +/* 0175D0 700169D0 46061282 */ mul.s $f10, $f2, $f6 +/* 0175D4 700169D4 00000000 */ nop +/* 0175D8 700169D8 46085182 */ mul.s $f6, $f10, $f8 +/* 0175DC 700169DC 46062281 */ sub.s $f10, $f4, $f6 +/* 0175E0 700169E0 46005202 */ mul.s $f8, $f10, $f0 +/* 0175E4 700169E4 44815000 */ mtc1 $at, $f10 +/* 0175E8 700169E8 E6080018 */ swc1 $f8, 0x18($s0) +/* 0175EC 700169EC C7A40040 */ lwc1 $f4, 0x40($sp) +/* 0175F0 700169F0 E60C0038 */ swc1 $f12, 0x38($s0) +/* 0175F4 700169F4 E60C000C */ swc1 $f12, 0xc($s0) +/* 0175F8 700169F8 46002187 */ neg.s $f6, $f4 +/* 0175FC 700169FC E60C001C */ swc1 $f12, 0x1c($s0) +/* 017600 70016A00 E6060028 */ swc1 $f6, 0x28($s0) +/* 017604 70016A04 E60C002C */ swc1 $f12, 0x2c($s0) +/* 017608 70016A08 E60A003C */ swc1 $f10, 0x3c($s0) +/* 01760C 70016A0C 8FBF001C */ lw $ra, 0x1c($sp) +.L70016A10: +/* 017610 70016A10 8FB00018 */ lw $s0, 0x18($sp) +/* 017614 70016A14 27BD0030 */ addiu $sp, $sp, 0x30 +/* 017618 70016A18 03E00008 */ jr $ra +/* 01761C 70016A1C 00000000 */ nop + +glabel guAlign +/* 017620 70016A20 44856000 */ mtc1 $a1, $f12 +/* 017624 70016A24 44867000 */ mtc1 $a2, $f14 +/* 017628 70016A28 44878000 */ mtc1 $a3, $f16 +/* 01762C 70016A2C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 017630 70016A30 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 017634 70016A34 AFBF001C */ sw $ra, 0x1c($sp) +/* 017638 70016A38 AFA40060 */ sw $a0, 0x60($sp) +/* 01763C 70016A3C 44056000 */ mfc1 $a1, $f12 +/* 017640 70016A40 44067000 */ mfc1 $a2, $f14 +/* 017644 70016A44 44078000 */ mfc1 $a3, $f16 +/* 017648 70016A48 27A40020 */ addiu $a0, $sp, 0x20 +/* 01764C 70016A4C 0C005A18 */ jal guAlignF +/* 017650 70016A50 E7A40010 */ swc1 $f4, 0x10($sp) +/* 017654 70016A54 27A40020 */ addiu $a0, $sp, 0x20 +/* 017658 70016A58 0C003FC4 */ jal guMtxF2L +/* 01765C 70016A5C 8FA50060 */ lw $a1, 0x60($sp) +/* 017660 70016A60 8FBF001C */ lw $ra, 0x1c($sp) +/* 017664 70016A64 27BD0060 */ addiu $sp, $sp, 0x60 +/* 017668 70016A68 03E00008 */ jr $ra +/* 01766C 70016A6C 00000000 */ nop + +.section .rodata +glabel F32_800297F0 +.float 0.017453292 +.align 4 + +.section .bss +glabel flt_CODE_bss_80067DD0 +.word 0 +.word 0,0,0 diff --git a/src/libultra/auxbus.s b/src/libultra/auxbus.s new file mode 100644 index 0000000..a64b1e7 --- /dev/null +++ b/src/libultra/auxbus.s @@ -0,0 +1,86 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alAuxBusParam +/* 01C0E0 7001B4E0 24010002 */ li $at, 2 +/* 01C0E4 7001B4E4 14A10008 */ bne $a1, $at, .L7001B508 +/* 01C0E8 7001B4E8 8C82001C */ lw $v0, 0x1c($a0) +/* 01C0EC 7001B4EC 8C8E0014 */ lw $t6, 0x14($a0) +/* 01C0F0 7001B4F0 000E7880 */ sll $t7, $t6, 2 +/* 01C0F4 7001B4F4 004FC021 */ addu $t8, $v0, $t7 +/* 01C0F8 7001B4F8 AF060000 */ sw $a2, ($t8) +/* 01C0FC 7001B4FC 8C990014 */ lw $t9, 0x14($a0) +/* 01C100 7001B500 27280001 */ addiu $t0, $t9, 1 +/* 01C104 7001B504 AC880014 */ sw $t0, 0x14($a0) +.L7001B508: +/* 01C108 7001B508 03E00008 */ jr $ra +/* 01C10C 7001B50C 00001025 */ move $v0, $zero + +glabel alAuxBusPull +/* 01C110 7001B510 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 01C114 7001B514 8FA80050 */ lw $t0, 0x50($sp) +/* 01C118 7001B518 AFBF003C */ sw $ra, 0x3c($sp) +/* 01C11C 7001B51C AFB60038 */ sw $s6, 0x38($sp) +/* 01C120 7001B520 AFB50034 */ sw $s5, 0x34($sp) +/* 01C124 7001B524 AFB40030 */ sw $s4, 0x30($sp) +/* 01C128 7001B528 AFB3002C */ sw $s3, 0x2c($sp) +/* 01C12C 7001B52C AFB20028 */ sw $s2, 0x28($sp) +/* 01C130 7001B530 AFB10024 */ sw $s1, 0x24($sp) +/* 01C134 7001B534 AFB00020 */ sw $s0, 0x20($sp) +/* 01C138 7001B538 8C83001C */ lw $v1, 0x1c($a0) +/* 01C13C 7001B53C 3C0E0200 */ lui $t6, (0x020006C0 >> 16) # lui $t6, 0x200 +/* 01C140 7001B540 00061040 */ sll $v0, $a2, 1 +/* 01C144 7001B544 3C0F0200 */ lui $t7, (0x02000800 >> 16) # lui $t7, 0x200 +/* 01C148 7001B548 35CE06C0 */ ori $t6, (0x020006C0 & 0xFFFF) # ori $t6, $t6, 0x6c0 +/* 01C14C 7001B54C 35EF0800 */ ori $t7, (0x02000800 & 0xFFFF) # ori $t7, $t7, 0x800 +/* 01C150 7001B550 AD0E0000 */ sw $t6, ($t0) +/* 01C154 7001B554 AD020004 */ sw $v0, 4($t0) +/* 01C158 7001B558 AD0F0008 */ sw $t7, 8($t0) +/* 01C15C 7001B55C AD02000C */ sw $v0, 0xc($t0) +/* 01C160 7001B560 8C980014 */ lw $t8, 0x14($a0) +/* 01C164 7001B564 00C0A025 */ move $s4, $a2 +/* 01C168 7001B568 00A0A825 */ move $s5, $a1 +/* 01C16C 7001B56C 00E0B025 */ move $s6, $a3 +/* 01C170 7001B570 00809825 */ move $s3, $a0 +/* 01C174 7001B574 00008025 */ move $s0, $zero +/* 01C178 7001B578 1B000010 */ blez $t8, .L7001B5BC +/* 01C17C 7001B57C 25120010 */ addiu $s2, $t0, 0x10 +/* 01C180 7001B580 00608825 */ move $s1, $v1 +.L7001B584: +/* 01C184 7001B584 8E240000 */ lw $a0, ($s1) +/* 01C188 7001B588 AFB20010 */ sw $s2, 0x10($sp) +/* 01C18C 7001B58C 02A02825 */ move $a1, $s5 +/* 01C190 7001B590 8C990004 */ lw $t9, 4($a0) +/* 01C194 7001B594 02803025 */ move $a2, $s4 +/* 01C198 7001B598 02C03825 */ move $a3, $s6 +/* 01C19C 7001B59C 0320F809 */ jalr $t9 +/* 01C1A0 7001B5A0 00000000 */ nop +/* 01C1A4 7001B5A4 8E690014 */ lw $t1, 0x14($s3) +/* 01C1A8 7001B5A8 26100001 */ addiu $s0, $s0, 1 +/* 01C1AC 7001B5AC 26310004 */ addiu $s1, $s1, 4 +/* 01C1B0 7001B5B0 0209082A */ slt $at, $s0, $t1 +/* 01C1B4 7001B5B4 1420FFF3 */ bnez $at, .L7001B584 +/* 01C1B8 7001B5B8 00409025 */ move $s2, $v0 +.L7001B5BC: +/* 01C1BC 7001B5BC 8FBF003C */ lw $ra, 0x3c($sp) +/* 01C1C0 7001B5C0 02401025 */ move $v0, $s2 +/* 01C1C4 7001B5C4 8FB20028 */ lw $s2, 0x28($sp) +/* 01C1C8 7001B5C8 8FB00020 */ lw $s0, 0x20($sp) +/* 01C1CC 7001B5CC 8FB10024 */ lw $s1, 0x24($sp) +/* 01C1D0 7001B5D0 8FB3002C */ lw $s3, 0x2c($sp) +/* 01C1D4 7001B5D4 8FB40030 */ lw $s4, 0x30($sp) +/* 01C1D8 7001B5D8 8FB50034 */ lw $s5, 0x34($sp) +/* 01C1DC 7001B5DC 8FB60038 */ lw $s6, 0x38($sp) +/* 01C1E0 7001B5E0 03E00008 */ jr $ra +/* 01C1E4 7001B5E4 27BD0040 */ addiu $sp, $sp, 0x40 + diff --git a/src/libultra/bcmp.s b/src/libultra/bcmp.s new file mode 100644 index 0000000..48c9cf5 --- /dev/null +++ b/src/libultra/bcmp.s @@ -0,0 +1,97 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel _bcmp +/* 017970 70016D70 28C10010 */ slti $at, $a2, 0x10 +/* 017974 70016D74 14200037 */ bnez $at, .L70016E54 +/* 017978 70016D78 00851026 */ xor $v0, $a0, $a1 +/* 01797C 70016D7C 30420003 */ andi $v0, $v0, 3 +/* 017980 70016D80 14400019 */ bnez $v0, .L70016DE8 +/* 017984 70016D84 0004C023 */ negu $t8, $a0 +/* 017988 70016D88 33180003 */ andi $t8, $t8, 3 +/* 01798C 70016D8C 13000007 */ beqz $t8, .L70016DAC +/* 017990 70016D90 00D83023 */ subu $a2, $a2, $t8 +/* 017994 70016D94 00601025 */ move $v0, $v1 +/* 017998 70016D98 88820000 */ lwl $v0, ($a0) +/* 01799C 70016D9C 88A30000 */ lwl $v1, ($a1) +/* 0179A0 70016DA0 00982021 */ addu $a0, $a0, $t8 +/* 0179A4 70016DA4 00B82821 */ addu $a1, $a1, $t8 +/* 0179A8 70016DA8 14430036 */ bne $v0, $v1, .L70016E84 +.L70016DAC: +/* 0179AC 70016DAC 2401FFFC */ li $at, -4 +/* 0179B0 70016DB0 00C13824 */ and $a3, $a2, $at +/* 0179B4 70016DB4 10E00027 */ beqz $a3, .L70016E54 +/* 0179B8 70016DB8 00C73023 */ subu $a2, $a2, $a3 +/* 0179BC 70016DBC 00E43821 */ addu $a3, $a3, $a0 +/* 0179C0 70016DC0 8C820000 */ lw $v0, ($a0) +.L70016DC4: +/* 0179C4 70016DC4 8CA30000 */ lw $v1, ($a1) +/* 0179C8 70016DC8 24840004 */ addiu $a0, $a0, 4 +/* 0179CC 70016DCC 24A50004 */ addiu $a1, $a1, 4 +/* 0179D0 70016DD0 1443002C */ bne $v0, $v1, .L70016E84 +/* 0179D4 70016DD4 00000000 */ nop +/* 0179D8 70016DD8 5487FFFA */ bnel $a0, $a3, .L70016DC4 +/* 0179DC 70016DDC 8C820000 */ lw $v0, ($a0) +/* 0179E0 70016DE0 1000001C */ b .L70016E54 +/* 0179E4 70016DE4 00000000 */ nop +.L70016DE8: +/* 0179E8 70016DE8 00053823 */ negu $a3, $a1 +/* 0179EC 70016DEC 30E70003 */ andi $a3, $a3, 3 +/* 0179F0 70016DF0 10E0000A */ beqz $a3, .L70016E1C +/* 0179F4 70016DF4 00C73023 */ subu $a2, $a2, $a3 +/* 0179F8 70016DF8 00E43821 */ addu $a3, $a3, $a0 +/* 0179FC 70016DFC 90820000 */ lbu $v0, ($a0) +.L70016E00: +/* 017A00 70016E00 90A30000 */ lbu $v1, ($a1) +/* 017A04 70016E04 24840001 */ addiu $a0, $a0, 1 +/* 017A08 70016E08 24A50001 */ addiu $a1, $a1, 1 +/* 017A0C 70016E0C 1443001D */ bne $v0, $v1, .L70016E84 +/* 017A10 70016E10 00000000 */ nop +/* 017A14 70016E14 5487FFFA */ bnel $a0, $a3, .L70016E00 +/* 017A18 70016E18 90820000 */ lbu $v0, ($a0) +.L70016E1C: +/* 017A1C 70016E1C 2401FFFC */ li $at, -4 +/* 017A20 70016E20 00C13824 */ and $a3, $a2, $at +/* 017A24 70016E24 10E0000B */ beqz $a3, .L70016E54 +/* 017A28 70016E28 00C73023 */ subu $a2, $a2, $a3 +/* 017A2C 70016E2C 00E43821 */ addu $a3, $a3, $a0 +/* 017A30 70016E30 88820000 */ lwl $v0, ($a0) +.L70016E34: +/* 017A34 70016E34 8CA30000 */ lw $v1, ($a1) +/* 017A38 70016E38 98820003 */ lwr $v0, 3($a0) +/* 017A3C 70016E3C 24840004 */ addiu $a0, $a0, 4 +/* 017A40 70016E40 24A50004 */ addiu $a1, $a1, 4 +/* 017A44 70016E44 1443000F */ bne $v0, $v1, .L70016E84 +/* 017A48 70016E48 00000000 */ nop +/* 017A4C 70016E4C 5487FFF9 */ bnel $a0, $a3, .L70016E34 +/* 017A50 70016E50 88820000 */ lwl $v0, ($a0) +.L70016E54: +/* 017A54 70016E54 18C00009 */ blez $a2, .L70016E7C +/* 017A58 70016E58 00C43821 */ addu $a3, $a2, $a0 +/* 017A5C 70016E5C 90820000 */ lbu $v0, ($a0) +.L70016E60: +/* 017A60 70016E60 90A30000 */ lbu $v1, ($a1) +/* 017A64 70016E64 24840001 */ addiu $a0, $a0, 1 +/* 017A68 70016E68 24A50001 */ addiu $a1, $a1, 1 +/* 017A6C 70016E6C 14430005 */ bne $v0, $v1, .L70016E84 +/* 017A70 70016E70 00000000 */ nop +/* 017A74 70016E74 5487FFFA */ bnel $a0, $a3, .L70016E60 +/* 017A78 70016E78 90820000 */ lbu $v0, ($a0) +.L70016E7C: +/* 017A7C 70016E7C 03E00008 */ jr $ra +/* 017A80 70016E80 00001025 */ move $v0, $zero + +.L70016E84: +/* 017A84 70016E84 03E00008 */ jr $ra +/* 017A88 70016E88 24020001 */ li $v0, 1 + diff --git a/src/libultra/bcopy.s b/src/libultra/bcopy.s new file mode 100644 index 0000000..98246dd --- /dev/null +++ b/src/libultra/bcopy.s @@ -0,0 +1,229 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel bcopy +/* 010570 7000F970 10C0001A */ beqz $a2, .L7000F9DC +/* 010574 7000F974 00A03825 */ move $a3, $a1 +/* 010578 7000F978 10850018 */ beq $a0, $a1, .L7000F9DC +/* 01057C 7000F97C 00A4082A */ slt $at, $a1, $a0 +/* 010580 7000F980 54200008 */ bnezl $at, .L7000F9A4 +/* 010584 7000F984 28C10010 */ slti $at, $a2, 0x10 +/* 010588 7000F988 00861020 */ add $v0, $a0, $a2 +/* 01058C 7000F98C 00A2082A */ slt $at, $a1, $v0 +/* 010590 7000F990 50200004 */ beql $at, $zero, .L7000F9A4 +/* 010594 7000F994 28C10010 */ slti $at, $a2, 0x10 +/* 010598 7000F998 1000005B */ b .L7000FB08 +/* 01059C 7000F99C 28C10010 */ slti $at, $a2, 0x10 +/* 0105A0 7000F9A0 28C10010 */ slti $at, $a2, 0x10 +.L7000F9A4: +/* 0105A4 7000F9A4 14200005 */ bnez $at, .L7000F9BC +/* 0105A8 7000F9A8 00000000 */ nop +/* 0105AC 7000F9AC 30820003 */ andi $v0, $a0, 3 +/* 0105B0 7000F9B0 30A30003 */ andi $v1, $a1, 3 +/* 0105B4 7000F9B4 1043000B */ beq $v0, $v1, .L7000F9E4 +/* 0105B8 7000F9B8 00000000 */ nop +.L7000F9BC: +/* 0105BC 7000F9BC 10C00007 */ beqz $a2, .L7000F9DC +/* 0105C0 7000F9C0 00000000 */ nop +/* 0105C4 7000F9C4 00861821 */ addu $v1, $a0, $a2 +.L7000F9C8: +/* 0105C8 7000F9C8 80820000 */ lb $v0, ($a0) +/* 0105CC 7000F9CC 24840001 */ addiu $a0, $a0, 1 +/* 0105D0 7000F9D0 24A50001 */ addiu $a1, $a1, 1 +/* 0105D4 7000F9D4 1483FFFC */ bne $a0, $v1, .L7000F9C8 +/* 0105D8 7000F9D8 A0A2FFFF */ sb $v0, -1($a1) +.L7000F9DC: +/* 0105DC 7000F9DC 03E00008 */ jr $ra +/* 0105E0 7000F9E0 00E01025 */ move $v0, $a3 + +.L7000F9E4: +/* 0105E4 7000F9E4 10400018 */ beqz $v0, .L7000FA48 +/* 0105E8 7000F9E8 24010001 */ li $at, 1 +/* 0105EC 7000F9EC 1041000F */ beq $v0, $at, .L7000FA2C +/* 0105F0 7000F9F0 24010002 */ li $at, 2 +/* 0105F4 7000F9F4 50410008 */ beql $v0, $at, .L7000FA18 +/* 0105F8 7000F9F8 84820000 */ lh $v0, ($a0) +/* 0105FC 7000F9FC 80820000 */ lb $v0, ($a0) +/* 010600 7000FA00 24840001 */ addiu $a0, $a0, 1 +/* 010604 7000FA04 24A50001 */ addiu $a1, $a1, 1 +/* 010608 7000FA08 24C6FFFF */ addiu $a2, $a2, -1 +/* 01060C 7000FA0C 1000000E */ b .L7000FA48 +/* 010610 7000FA10 A0A2FFFF */ sb $v0, -1($a1) +/* 010614 7000FA14 84820000 */ lh $v0, ($a0) +.L7000FA18: +/* 010618 7000FA18 24840002 */ addiu $a0, $a0, 2 +/* 01061C 7000FA1C 24A50002 */ addiu $a1, $a1, 2 +/* 010620 7000FA20 24C6FFFE */ addiu $a2, $a2, -2 +/* 010624 7000FA24 10000008 */ b .L7000FA48 +/* 010628 7000FA28 A4A2FFFE */ sh $v0, -2($a1) +.L7000FA2C: +/* 01062C 7000FA2C 80820000 */ lb $v0, ($a0) +/* 010630 7000FA30 84830001 */ lh $v1, 1($a0) +/* 010634 7000FA34 24840003 */ addiu $a0, $a0, 3 +/* 010638 7000FA38 24A50003 */ addiu $a1, $a1, 3 +/* 01063C 7000FA3C 24C6FFFD */ addiu $a2, $a2, -3 +/* 010640 7000FA40 A0A2FFFD */ sb $v0, -3($a1) +/* 010644 7000FA44 A4A3FFFE */ sh $v1, -2($a1) +.L7000FA48: +/* 010648 7000FA48 28C10020 */ slti $at, $a2, 0x20 +/* 01064C 7000FA4C 54200016 */ bnezl $at, .L7000FAA8 +/* 010650 7000FA50 28C10010 */ slti $at, $a2, 0x10 +/* 010654 7000FA54 8C820000 */ lw $v0, ($a0) +/* 010658 7000FA58 8C830004 */ lw $v1, 4($a0) +/* 01065C 7000FA5C 8C880008 */ lw $t0, 8($a0) +/* 010660 7000FA60 8C89000C */ lw $t1, 0xc($a0) +/* 010664 7000FA64 8C8A0010 */ lw $t2, 0x10($a0) +/* 010668 7000FA68 8C8B0014 */ lw $t3, 0x14($a0) +/* 01066C 7000FA6C 8C8C0018 */ lw $t4, 0x18($a0) +/* 010670 7000FA70 8C8D001C */ lw $t5, 0x1c($a0) +/* 010674 7000FA74 24840020 */ addiu $a0, $a0, 0x20 +/* 010678 7000FA78 24A50020 */ addiu $a1, $a1, 0x20 +/* 01067C 7000FA7C 24C6FFE0 */ addiu $a2, $a2, -0x20 +/* 010680 7000FA80 ACA2FFE0 */ sw $v0, -0x20($a1) +/* 010684 7000FA84 ACA3FFE4 */ sw $v1, -0x1c($a1) +/* 010688 7000FA88 ACA8FFE8 */ sw $t0, -0x18($a1) +/* 01068C 7000FA8C ACA9FFEC */ sw $t1, -0x14($a1) +/* 010690 7000FA90 ACAAFFF0 */ sw $t2, -0x10($a1) +/* 010694 7000FA94 ACABFFF4 */ sw $t3, -0xc($a1) +/* 010698 7000FA98 ACACFFF8 */ sw $t4, -8($a1) +/* 01069C 7000FA9C 1000FFEA */ b .L7000FA48 +/* 0106A0 7000FAA0 ACADFFFC */ sw $t5, -4($a1) +.L7000FAA4: +/* 0106A4 7000FAA4 28C10010 */ slti $at, $a2, 0x10 +.L7000FAA8: +/* 0106A8 7000FAA8 5420000E */ bnezl $at, .L7000FAE4 +/* 0106AC 7000FAAC 28C10004 */ slti $at, $a2, 4 +/* 0106B0 7000FAB0 8C820000 */ lw $v0, ($a0) +/* 0106B4 7000FAB4 8C830004 */ lw $v1, 4($a0) +/* 0106B8 7000FAB8 8C880008 */ lw $t0, 8($a0) +/* 0106BC 7000FABC 8C89000C */ lw $t1, 0xc($a0) +/* 0106C0 7000FAC0 24840010 */ addiu $a0, $a0, 0x10 +/* 0106C4 7000FAC4 24A50010 */ addiu $a1, $a1, 0x10 +/* 0106C8 7000FAC8 24C6FFF0 */ addiu $a2, $a2, -0x10 +/* 0106CC 7000FACC ACA2FFF0 */ sw $v0, -0x10($a1) +/* 0106D0 7000FAD0 ACA3FFF4 */ sw $v1, -0xc($a1) +/* 0106D4 7000FAD4 ACA8FFF8 */ sw $t0, -8($a1) +/* 0106D8 7000FAD8 1000FFF2 */ b .L7000FAA4 +/* 0106DC 7000FADC ACA9FFFC */ sw $t1, -4($a1) +.L7000FAE0: +/* 0106E0 7000FAE0 28C10004 */ slti $at, $a2, 4 +.L7000FAE4: +/* 0106E4 7000FAE4 1420FFB5 */ bnez $at, .L7000F9BC +/* 0106E8 7000FAE8 00000000 */ nop +/* 0106EC 7000FAEC 8C820000 */ lw $v0, ($a0) +/* 0106F0 7000FAF0 24840004 */ addiu $a0, $a0, 4 +/* 0106F4 7000FAF4 24A50004 */ addiu $a1, $a1, 4 +/* 0106F8 7000FAF8 24C6FFFC */ addiu $a2, $a2, -4 +/* 0106FC 7000FAFC 1000FFF8 */ b .L7000FAE0 +/* 010700 7000FB00 ACA2FFFC */ sw $v0, -4($a1) +/* 010704 7000FB04 28C10010 */ slti $at, $a2, 0x10 +.L7000FB08: +/* 010708 7000FB08 00862020 */ add $a0, $a0, $a2 +/* 01070C 7000FB0C 14200005 */ bnez $at, .L7000FB24 +/* 010710 7000FB10 00A62820 */ add $a1, $a1, $a2 +/* 010714 7000FB14 30820003 */ andi $v0, $a0, 3 +/* 010718 7000FB18 30A30003 */ andi $v1, $a1, 3 +/* 01071C 7000FB1C 1043000D */ beq $v0, $v1, .L7000FB54 +/* 010720 7000FB20 00000000 */ nop +.L7000FB24: +/* 010724 7000FB24 10C0FFAD */ beqz $a2, .L7000F9DC +/* 010728 7000FB28 00000000 */ nop +/* 01072C 7000FB2C 2484FFFF */ addiu $a0, $a0, -1 +/* 010730 7000FB30 24A5FFFF */ addiu $a1, $a1, -1 +/* 010734 7000FB34 00861823 */ subu $v1, $a0, $a2 +.L7000FB38: +/* 010738 7000FB38 80820000 */ lb $v0, ($a0) +/* 01073C 7000FB3C 2484FFFF */ addiu $a0, $a0, -1 +/* 010740 7000FB40 24A5FFFF */ addiu $a1, $a1, -1 +/* 010744 7000FB44 1483FFFC */ bne $a0, $v1, .L7000FB38 +/* 010748 7000FB48 A0A20001 */ sb $v0, 1($a1) +/* 01074C 7000FB4C 03E00008 */ jr $ra +/* 010750 7000FB50 00E01025 */ move $v0, $a3 + +.L7000FB54: +/* 010754 7000FB54 10400018 */ beqz $v0, .L7000FBB8 +/* 010758 7000FB58 24010003 */ li $at, 3 +/* 01075C 7000FB5C 1041000F */ beq $v0, $at, .L7000FB9C +/* 010760 7000FB60 24010002 */ li $at, 2 +/* 010764 7000FB64 50410008 */ beql $v0, $at, .L7000FB88 +/* 010768 7000FB68 8482FFFE */ lh $v0, -2($a0) +/* 01076C 7000FB6C 8082FFFF */ lb $v0, -1($a0) +/* 010770 7000FB70 2484FFFF */ addiu $a0, $a0, -1 +/* 010774 7000FB74 24A5FFFF */ addiu $a1, $a1, -1 +/* 010778 7000FB78 24C6FFFF */ addiu $a2, $a2, -1 +/* 01077C 7000FB7C 1000000E */ b .L7000FBB8 +/* 010780 7000FB80 A0A20000 */ sb $v0, ($a1) +/* 010784 7000FB84 8482FFFE */ lh $v0, -2($a0) +.L7000FB88: +/* 010788 7000FB88 2484FFFE */ addiu $a0, $a0, -2 +/* 01078C 7000FB8C 24A5FFFE */ addiu $a1, $a1, -2 +/* 010790 7000FB90 24C6FFFE */ addiu $a2, $a2, -2 +/* 010794 7000FB94 10000008 */ b .L7000FBB8 +/* 010798 7000FB98 A4A20000 */ sh $v0, ($a1) +.L7000FB9C: +/* 01079C 7000FB9C 8082FFFF */ lb $v0, -1($a0) +/* 0107A0 7000FBA0 8483FFFD */ lh $v1, -3($a0) +/* 0107A4 7000FBA4 2484FFFD */ addiu $a0, $a0, -3 +/* 0107A8 7000FBA8 24A5FFFD */ addiu $a1, $a1, -3 +/* 0107AC 7000FBAC 24C6FFFD */ addiu $a2, $a2, -3 +/* 0107B0 7000FBB0 A0A20002 */ sb $v0, 2($a1) +/* 0107B4 7000FBB4 A4A30000 */ sh $v1, ($a1) +.L7000FBB8: +/* 0107B8 7000FBB8 28C10020 */ slti $at, $a2, 0x20 +/* 0107BC 7000FBBC 54200016 */ bnezl $at, .L7000FC18 +/* 0107C0 7000FBC0 28C10010 */ slti $at, $a2, 0x10 +/* 0107C4 7000FBC4 8C82FFFC */ lw $v0, -4($a0) +/* 0107C8 7000FBC8 8C83FFF8 */ lw $v1, -8($a0) +/* 0107CC 7000FBCC 8C88FFF4 */ lw $t0, -0xc($a0) +/* 0107D0 7000FBD0 8C89FFF0 */ lw $t1, -0x10($a0) +/* 0107D4 7000FBD4 8C8AFFEC */ lw $t2, -0x14($a0) +/* 0107D8 7000FBD8 8C8BFFE8 */ lw $t3, -0x18($a0) +/* 0107DC 7000FBDC 8C8CFFE4 */ lw $t4, -0x1c($a0) +/* 0107E0 7000FBE0 8C8DFFE0 */ lw $t5, -0x20($a0) +/* 0107E4 7000FBE4 2484FFE0 */ addiu $a0, $a0, -0x20 +/* 0107E8 7000FBE8 24A5FFE0 */ addiu $a1, $a1, -0x20 +/* 0107EC 7000FBEC 24C6FFE0 */ addiu $a2, $a2, -0x20 +/* 0107F0 7000FBF0 ACA2001C */ sw $v0, 0x1c($a1) +/* 0107F4 7000FBF4 ACA30018 */ sw $v1, 0x18($a1) +/* 0107F8 7000FBF8 ACA80014 */ sw $t0, 0x14($a1) +/* 0107FC 7000FBFC ACA90010 */ sw $t1, 0x10($a1) +/* 010800 7000FC00 ACAA000C */ sw $t2, 0xc($a1) +/* 010804 7000FC04 ACAB0008 */ sw $t3, 8($a1) +/* 010808 7000FC08 ACAC0004 */ sw $t4, 4($a1) +/* 01080C 7000FC0C 1000FFEA */ b .L7000FBB8 +/* 010810 7000FC10 ACAD0000 */ sw $t5, ($a1) +.L7000FC14: +/* 010814 7000FC14 28C10010 */ slti $at, $a2, 0x10 +.L7000FC18: +/* 010818 7000FC18 5420000E */ bnezl $at, .L7000FC54 +/* 01081C 7000FC1C 28C10004 */ slti $at, $a2, 4 +/* 010820 7000FC20 8C82FFFC */ lw $v0, -4($a0) +/* 010824 7000FC24 8C83FFF8 */ lw $v1, -8($a0) +/* 010828 7000FC28 8C88FFF4 */ lw $t0, -0xc($a0) +/* 01082C 7000FC2C 8C89FFF0 */ lw $t1, -0x10($a0) +/* 010830 7000FC30 2484FFF0 */ addiu $a0, $a0, -0x10 +/* 010834 7000FC34 24A5FFF0 */ addiu $a1, $a1, -0x10 +/* 010838 7000FC38 24C6FFF0 */ addiu $a2, $a2, -0x10 +/* 01083C 7000FC3C ACA2000C */ sw $v0, 0xc($a1) +/* 010840 7000FC40 ACA30008 */ sw $v1, 8($a1) +/* 010844 7000FC44 ACA80004 */ sw $t0, 4($a1) +/* 010848 7000FC48 1000FFF2 */ b .L7000FC14 +/* 01084C 7000FC4C ACA90000 */ sw $t1, ($a1) +.L7000FC50: +/* 010850 7000FC50 28C10004 */ slti $at, $a2, 4 +.L7000FC54: +/* 010854 7000FC54 1420FFB3 */ bnez $at, .L7000FB24 +/* 010858 7000FC58 00000000 */ nop +/* 01085C 7000FC5C 8C82FFFC */ lw $v0, -4($a0) +/* 010860 7000FC60 2484FFFC */ addiu $a0, $a0, -4 +/* 010864 7000FC64 24A5FFFC */ addiu $a1, $a1, -4 +/* 010868 7000FC68 24C6FFFC */ addiu $a2, $a2, -4 +/* 01086C 7000FC6C 1000FFF8 */ b .L7000FC50 +/* 010870 7000FC70 ACA20000 */ sw $v0, ($a1) + diff --git a/src/libultra/bnkf.s b/src/libultra/bnkf.s new file mode 100644 index 0000000..73eefc0 --- /dev/null +++ b/src/libultra/bnkf.s @@ -0,0 +1,177 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +/* 011970 70010D70 03E00008 */ jr $ra +/* 011974 70010D74 00000000 */ nop + +/* 011978 70010D78 03E00008 */ jr $ra +/* 01197C 70010D7C 00000000 */ nop + +glabel ultra_70010D80 +/* 011980 70010D80 908E0003 */ lbu $t6, 3($a0) +/* 011984 70010D84 15C00037 */ bnez $t6, .L70010E64 +/* 011988 70010D88 00000000 */ nop +/* 01198C 70010D8C 848F000E */ lh $t7, 0xe($a0) +/* 011990 70010D90 24090001 */ li $t1, 1 +/* 011994 70010D94 A0890003 */ sb $t1, 3($a0) +/* 011998 70010D98 19E00032 */ blez $t7, .L70010E64 +/* 01199C 70010D9C 00001025 */ move $v0, $zero +/* 0119A0 70010DA0 00801825 */ move $v1, $a0 +/* 0119A4 70010DA4 240A0001 */ li $t2, 1 +/* 0119A8 70010DA8 8C780010 */ lw $t8, 0x10($v1) +.L70010DAC: +/* 0119AC 70010DAC 0305C821 */ addu $t9, $t8, $a1 +/* 0119B0 70010DB0 AC790010 */ sw $t9, 0x10($v1) +/* 0119B4 70010DB4 932E000E */ lbu $t6, 0xe($t9) +/* 0119B8 70010DB8 03203025 */ move $a2, $t9 +/* 0119BC 70010DBC 55C00024 */ bnezl $t6, .L70010E50 +/* 0119C0 70010DC0 8498000E */ lh $t8, 0xe($a0) +/* 0119C4 70010DC4 8F2F0000 */ lw $t7, ($t9) +/* 0119C8 70010DC8 A329000E */ sb $t1, 0xe($t9) +/* 0119CC 70010DCC 01E5C021 */ addu $t8, $t7, $a1 +/* 0119D0 70010DD0 AF380000 */ sw $t8, ($t9) +/* 0119D4 70010DD4 8F390004 */ lw $t9, 4($t9) +/* 0119D8 70010DD8 8CCF0008 */ lw $t7, 8($a2) +/* 0119DC 70010DDC 03257021 */ addu $t6, $t9, $a1 +/* 0119E0 70010DE0 01E5C021 */ addu $t8, $t7, $a1 +/* 0119E4 70010DE4 ACCE0004 */ sw $t6, 4($a2) +/* 0119E8 70010DE8 ACD80008 */ sw $t8, 8($a2) +/* 0119EC 70010DEC 93190009 */ lbu $t9, 9($t8) +/* 0119F0 70010DF0 03004025 */ move $t0, $t8 +/* 0119F4 70010DF4 57200016 */ bnezl $t9, .L70010E50 +/* 0119F8 70010DF8 8498000E */ lh $t8, 0xe($a0) +/* 0119FC 70010DFC 8F0E0000 */ lw $t6, ($t8) +/* 011A00 70010E00 93060008 */ lbu $a2, 8($t8) +/* 011A04 70010E04 A3090009 */ sb $t1, 9($t8) +/* 011A08 70010E08 01C77821 */ addu $t7, $t6, $a3 +/* 011A0C 70010E0C 14C00009 */ bnez $a2, .L70010E34 +/* 011A10 70010E10 AF0F0000 */ sw $t7, ($t8) +/* 011A14 70010E14 8F180010 */ lw $t8, 0x10($t8) +/* 011A18 70010E18 8D06000C */ lw $a2, 0xc($t0) +/* 011A1C 70010E1C 0305C821 */ addu $t9, $t8, $a1 +/* 011A20 70010E20 10C0000A */ beqz $a2, .L70010E4C +/* 011A24 70010E24 AD190010 */ sw $t9, 0x10($t0) +/* 011A28 70010E28 00C57021 */ addu $t6, $a2, $a1 +/* 011A2C 70010E2C 10000007 */ b .L70010E4C +/* 011A30 70010E30 AD0E000C */ sw $t6, 0xc($t0) +.L70010E34: +/* 011A34 70010E34 55460006 */ bnel $t2, $a2, .L70010E50 +/* 011A38 70010E38 8498000E */ lh $t8, 0xe($a0) +/* 011A3C 70010E3C 8D06000C */ lw $a2, 0xc($t0) +/* 011A40 70010E40 10C00002 */ beqz $a2, .L70010E4C +/* 011A44 70010E44 00C57821 */ addu $t7, $a2, $a1 +/* 011A48 70010E48 AD0F000C */ sw $t7, 0xc($t0) +.L70010E4C: +/* 011A4C 70010E4C 8498000E */ lh $t8, 0xe($a0) +.L70010E50: +/* 011A50 70010E50 24420001 */ addiu $v0, $v0, 1 +/* 011A54 70010E54 24630004 */ addiu $v1, $v1, 4 +/* 011A58 70010E58 0058082A */ slt $at, $v0, $t8 +/* 011A5C 70010E5C 5420FFD3 */ bnezl $at, .L70010DAC +/* 011A60 70010E60 8C780010 */ lw $t8, 0x10($v1) +.L70010E64: +/* 011A64 70010E64 03E00008 */ jr $ra +/* 011A68 70010E68 00000000 */ nop + +/* 011A6C 70010E6C 03E00008 */ jr $ra +/* 011A70 70010E70 00000000 */ nop + +glabel alBnkfNew +/* 011A74 70010E74 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 011A78 70010E78 AFBF002C */ sw $ra, 0x2c($sp) +/* 011A7C 70010E7C AFB40028 */ sw $s4, 0x28($sp) +/* 011A80 70010E80 AFB30024 */ sw $s3, 0x24($sp) +/* 011A84 70010E84 AFB20020 */ sw $s2, 0x20($sp) +/* 011A88 70010E88 AFB1001C */ sw $s1, 0x1c($sp) +/* 011A8C 70010E8C AFB00018 */ sw $s0, 0x18($sp) +/* 011A90 70010E90 848E0000 */ lh $t6, ($a0) +/* 011A94 70010E94 24014231 */ li $at, 16945 +/* 011A98 70010E98 00808025 */ move $s0, $a0 +/* 011A9C 70010E9C 15C1002E */ bne $t6, $at, .L70010F58 +/* 011AA0 70010EA0 00A08825 */ move $s1, $a1 +/* 011AA4 70010EA4 848F0002 */ lh $t7, 2($a0) +/* 011AA8 70010EA8 00009825 */ move $s3, $zero +/* 011AAC 70010EAC 00809025 */ move $s2, $a0 +/* 011AB0 70010EB0 19E00029 */ blez $t7, .L70010F58 +/* 011AB4 70010EB4 24140001 */ li $s4, 1 +/* 011AB8 70010EB8 8E580004 */ lw $t8, 4($s2) +.L70010EBC: +/* 011ABC 70010EBC 0310C821 */ addu $t9, $t8, $s0 +/* 011AC0 70010EC0 1320001F */ beqz $t9, .L70010F40 +/* 011AC4 70010EC4 AE590004 */ sw $t9, 4($s2) +/* 011AC8 70010EC8 932E0002 */ lbu $t6, 2($t9) +/* 011ACC 70010ECC 03206825 */ move $t5, $t9 +/* 011AD0 70010ED0 55C0001C */ bnezl $t6, .L70010F44 +/* 011AD4 70010ED4 86180002 */ lh $t8, 2($s0) +/* 011AD8 70010ED8 8F220008 */ lw $v0, 8($t9) +/* 011ADC 70010EDC A3340002 */ sb $s4, 2($t9) +/* 011AE0 70010EE0 00006025 */ move $t4, $zero +/* 011AE4 70010EE4 10400005 */ beqz $v0, .L70010EFC +/* 011AE8 70010EE8 00502021 */ addu $a0, $v0, $s0 +/* 011AEC 70010EEC AF240008 */ sw $a0, 8($t9) +/* 011AF0 70010EF0 02002825 */ move $a1, $s0 +/* 011AF4 70010EF4 0C004360 */ jal ultra_70010D80 +/* 011AF8 70010EF8 02203825 */ move $a3, $s1 +.L70010EFC: +/* 011AFC 70010EFC 85B80000 */ lh $t8, ($t5) +/* 011B00 70010F00 01A05825 */ move $t3, $t5 +/* 011B04 70010F04 5B00000F */ blezl $t8, .L70010F44 +/* 011B08 70010F08 86180002 */ lh $t8, 2($s0) +/* 011B0C 70010F0C 8D79000C */ lw $t9, 0xc($t3) +.L70010F10: +/* 011B10 70010F10 02002825 */ move $a1, $s0 +/* 011B14 70010F14 03302021 */ addu $a0, $t9, $s0 +/* 011B18 70010F18 10800003 */ beqz $a0, .L70010F28 +/* 011B1C 70010F1C AD64000C */ sw $a0, 0xc($t3) +/* 011B20 70010F20 0C004360 */ jal ultra_70010D80 +/* 011B24 70010F24 02203825 */ move $a3, $s1 +.L70010F28: +/* 011B28 70010F28 85AF0000 */ lh $t7, ($t5) +/* 011B2C 70010F2C 258C0001 */ addiu $t4, $t4, 1 +/* 011B30 70010F30 256B0004 */ addiu $t3, $t3, 4 +/* 011B34 70010F34 018F082A */ slt $at, $t4, $t7 +/* 011B38 70010F38 5420FFF5 */ bnezl $at, .L70010F10 +/* 011B3C 70010F3C 8D79000C */ lw $t9, 0xc($t3) +.L70010F40: +/* 011B40 70010F40 86180002 */ lh $t8, 2($s0) +.L70010F44: +/* 011B44 70010F44 26730001 */ addiu $s3, $s3, 1 +/* 011B48 70010F48 26520004 */ addiu $s2, $s2, 4 +/* 011B4C 70010F4C 0278082A */ slt $at, $s3, $t8 +/* 011B50 70010F50 5420FFDA */ bnezl $at, .L70010EBC +/* 011B54 70010F54 8E580004 */ lw $t8, 4($s2) +.L70010F58: +/* 011B58 70010F58 8FBF002C */ lw $ra, 0x2c($sp) +/* 011B5C 70010F5C 8FB00018 */ lw $s0, 0x18($sp) +/* 011B60 70010F60 8FB1001C */ lw $s1, 0x1c($sp) +/* 011B64 70010F64 8FB20020 */ lw $s2, 0x20($sp) +/* 011B68 70010F68 8FB30024 */ lw $s3, 0x24($sp) +/* 011B6C 70010F6C 8FB40028 */ lw $s4, 0x28($sp) +/* 011B70 70010F70 03E00008 */ jr $ra +/* 011B74 70010F74 27BD0030 */ addiu $sp, $sp, 0x30 + +glabel alSeqFileNew +/* 011B78 70010F78 848E0002 */ lh $t6, 2($a0) +/* 011B7C 70010F7C 00001025 */ move $v0, $zero +/* 011B80 70010F80 00801825 */ move $v1, $a0 +/* 011B84 70010F84 19C0000A */ blez $t6, .L70010FB0 +/* 011B88 70010F88 00000000 */ nop +/* 011B8C 70010F8C 8C6F0004 */ lw $t7, 4($v1) +.L70010F90: +/* 011B90 70010F90 24420001 */ addiu $v0, $v0, 1 +/* 011B94 70010F94 24630008 */ addiu $v1, $v1, 8 +/* 011B98 70010F98 01E5C021 */ addu $t8, $t7, $a1 +/* 011B9C 70010F9C AC78FFFC */ sw $t8, -4($v1) +/* 011BA0 70010FA0 84990002 */ lh $t9, 2($a0) +/* 011BA4 70010FA4 0059082A */ slt $at, $v0, $t9 +/* 011BA8 70010FA8 5420FFF9 */ bnezl $at, .L70010F90 +/* 011BAC 70010FAC 8C6F0004 */ lw $t7, 4($v1) +.L70010FB0: +/* 011BB0 70010FB0 03E00008 */ jr $ra +/* 011BB4 70010FB4 00000000 */ nop diff --git a/src/libultra/bzero.s b/src/libultra/bzero.s new file mode 100644 index 0000000..86b7f90 --- /dev/null +++ b/src/libultra/bzero.s @@ -0,0 +1,63 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel bzero +/* 018840 70017C40 28A1000C */ slti $at, $a1, 0xc +/* 018844 70017C44 1420001D */ bnez $at, .L70017CBC +/* 018848 70017C48 00041823 */ negu $v1, $a0 +/* 01884C 70017C4C 30630003 */ andi $v1, $v1, 3 +/* 018850 70017C50 10600003 */ beqz $v1, .L70017C60 +/* 018854 70017C54 00A32823 */ subu $a1, $a1, $v1 +/* 018858 70017C58 A8800000 */ swl $zero, ($a0) +/* 01885C 70017C5C 00832021 */ addu $a0, $a0, $v1 +.L70017C60: +/* 018860 70017C60 2401FFE0 */ li $at, -32 +/* 018864 70017C64 00A13824 */ and $a3, $a1, $at +/* 018868 70017C68 10E0000C */ beqz $a3, .L70017C9C +/* 01886C 70017C6C 00A72823 */ subu $a1, $a1, $a3 +/* 018870 70017C70 00E43821 */ addu $a3, $a3, $a0 +.L70017C74: +/* 018874 70017C74 24840020 */ addiu $a0, $a0, 0x20 +/* 018878 70017C78 AC80FFE0 */ sw $zero, -0x20($a0) +/* 01887C 70017C7C AC80FFE4 */ sw $zero, -0x1c($a0) +/* 018880 70017C80 AC80FFE8 */ sw $zero, -0x18($a0) +/* 018884 70017C84 AC80FFEC */ sw $zero, -0x14($a0) +/* 018888 70017C88 AC80FFF0 */ sw $zero, -0x10($a0) +/* 01888C 70017C8C AC80FFF4 */ sw $zero, -0xc($a0) +/* 018890 70017C90 AC80FFF8 */ sw $zero, -8($a0) +/* 018894 70017C94 1487FFF7 */ bne $a0, $a3, .L70017C74 +/* 018898 70017C98 AC80FFFC */ sw $zero, -4($a0) +.L70017C9C: +/* 01889C 70017C9C 2401FFFC */ li $at, -4 +/* 0188A0 70017CA0 00A13824 */ and $a3, $a1, $at +/* 0188A4 70017CA4 10E00005 */ beqz $a3, .L70017CBC +/* 0188A8 70017CA8 00A72823 */ subu $a1, $a1, $a3 +/* 0188AC 70017CAC 00E43821 */ addu $a3, $a3, $a0 +.L70017CB0: +/* 0188B0 70017CB0 24840004 */ addiu $a0, $a0, 4 +/* 0188B4 70017CB4 1487FFFE */ bne $a0, $a3, .L70017CB0 +/* 0188B8 70017CB8 AC80FFFC */ sw $zero, -4($a0) +.L70017CBC: +/* 0188BC 70017CBC 18A00005 */ blez $a1, .L70017CD4 +/* 0188C0 70017CC0 00000000 */ nop +/* 0188C4 70017CC4 00A42821 */ addu $a1, $a1, $a0 +.L70017CC8: +/* 0188C8 70017CC8 24840001 */ addiu $a0, $a0, 1 +/* 0188CC 70017CCC 1485FFFE */ bne $a0, $a1, .L70017CC8 +/* 0188D0 70017CD0 A080FFFF */ sb $zero, -1($a0) +.L70017CD4: +/* 0188D4 70017CD4 03E00008 */ jr $ra +/* 0188D8 70017CD8 00000000 */ nop + +/* 0188DC 70017CDC 00000000 */ nop + diff --git a/src/libultra/cents2ratio.s b/src/libultra/cents2ratio.s new file mode 100644 index 0000000..652d3fc --- /dev/null +++ b/src/libultra/cents2ratio.s @@ -0,0 +1,42 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alCents2Ratio +/* 0143C0 700137C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0143C4 700137C4 44811000 */ mtc1 $at, $f2 +/* 0143C8 700137C8 04800004 */ bltz $a0, .L700137DC +/* 0143CC 700137CC 3C018003 */ lui $at, %hi(F32_800296E4) +/* 0143D0 700137D0 3C018003 */ lui $at, %hi(F32_800296E0) +/* 0143D4 700137D4 10000003 */ b .L700137E4 +/* 0143D8 700137D8 C42096E0 */ lwc1 $f0, %lo(F32_800296E0)($at) +.L700137DC: +/* 0143DC 700137DC C42096E4 */ lwc1 $f0, %lo(F32_800296E4)($at) +/* 0143E0 700137E0 00042023 */ negu $a0, $a0 +.L700137E4: +/* 0143E4 700137E4 10800008 */ beqz $a0, .L70013808 +.L700137E8: +/* 0143E8 700137E8 308E0001 */ andi $t6, $a0, 1 +/* 0143EC 700137EC 11C00003 */ beqz $t6, .L700137FC +/* 0143F0 700137F0 00047843 */ sra $t7, $a0, 1 +/* 0143F4 700137F4 46001082 */ mul.s $f2, $f2, $f0 +/* 0143F8 700137F8 00000000 */ nop +.L700137FC: +/* 0143FC 700137FC 46000002 */ mul.s $f0, $f0, $f0 +/* 014400 70013800 15E0FFF9 */ bnez $t7, .L700137E8 +/* 014404 70013804 01E02025 */ move $a0, $t7 +.L70013808: +/* 014408 70013808 03E00008 */ jr $ra +/* 01440C 7001380C 46001006 */ mov.s $f0, $f2 + +.section .rodata +glabel F32_800296E0 +.float 1.0005778 +glabel F32_800296E4 +.float 0.99942255 + diff --git a/src/libultra/conteeplongread.s b/src/libultra/conteeplongread.s new file mode 100644 index 0000000..94bcecf --- /dev/null +++ b/src/libultra/conteeplongread.s @@ -0,0 +1,100 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osEepromLongRead +/* 016420 70015820 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 016424 70015824 AFA50044 */ sw $a1, 0x44($sp) +/* 016428 70015828 93AE0047 */ lbu $t6, 0x47($sp) +/* 01642C 7001582C AFBF0024 */ sw $ra, 0x24($sp) +/* 016430 70015830 AFA40040 */ sw $a0, 0x40($sp) +/* 016434 70015834 29C10041 */ slti $at, $t6, 0x41 +/* 016438 70015838 AFA60048 */ sw $a2, 0x48($sp) +/* 01643C 7001583C AFA7004C */ sw $a3, 0x4c($sp) +/* 016440 70015840 14200003 */ bnez $at, .L70015850 +/* 016444 70015844 AFA0003C */ sw $zero, 0x3c($sp) +/* 016448 70015848 10000040 */ b .L7001594C +/* 01644C 7001584C 2402FFFF */ li $v0, -1 +.L70015850: +/* 016450 70015850 8FAF004C */ lw $t7, 0x4c($sp) +/* 016454 70015854 19E0003C */ blez $t7, .L70015948 +/* 016458 70015858 00000000 */ nop +.L7001585C: +/* 01645C 7001585C 8FA40040 */ lw $a0, 0x40($sp) +/* 016460 70015860 93A50047 */ lbu $a1, 0x47($sp) +/* 016464 70015864 0C005410 */ jal osEepromRead +/* 016468 70015868 8FA60048 */ lw $a2, 0x48($sp) +/* 01646C 7001586C AFA2003C */ sw $v0, 0x3c($sp) +/* 016470 70015870 8FB8003C */ lw $t8, 0x3c($sp) +/* 016474 70015874 13000003 */ beqz $t8, .L70015884 +/* 016478 70015878 00000000 */ nop +/* 01647C 7001587C 10000033 */ b .L7001594C +/* 016480 70015880 03001025 */ move $v0, $t8 +.L70015884: +/* 016484 70015884 8FB9004C */ lw $t9, 0x4c($sp) +/* 016488 70015888 93A90047 */ lbu $t1, 0x47($sp) +/* 01648C 7001588C 8FAB0048 */ lw $t3, 0x48($sp) +/* 016490 70015890 3C068002 */ lui $a2, %hi(osClockRate) +/* 016494 70015894 3C078002 */ lui $a3, %hi(osClockRate+4) +/* 016498 70015898 2728FFF8 */ addiu $t0, $t9, -8 +/* 01649C 7001589C 252A0001 */ addiu $t2, $t1, 1 +/* 0164A0 700158A0 256C0008 */ addiu $t4, $t3, 8 +/* 0164A4 700158A4 AFA8004C */ sw $t0, 0x4c($sp) +/* 0164A8 700158A8 A3AA0047 */ sb $t2, 0x47($sp) +/* 0164AC 700158AC AFAC0048 */ sw $t4, 0x48($sp) +/* 0164B0 700158B0 8CE76984 */ lw $a3, %lo(osClockRate+4)($a3) +/* 0164B4 700158B4 8CC66980 */ lw $a2, %lo(osClockRate)($a2) +/* 0164B8 700158B8 24040000 */ li $a0, 0 +/* 0164BC 700158BC 0C003B6A */ jal __ll_mul +/* 0164C0 700158C0 24052EE0 */ li $a1, 12000 +/* 0164C4 700158C4 AFA20028 */ sw $v0, 0x28($sp) +/* 0164C8 700158C8 AFA3002C */ sw $v1, 0x2c($sp) +/* 0164CC 700158CC 3C07000F */ lui $a3, (0x000F4240 >> 16) # lui $a3, 0xf +/* 0164D0 700158D0 34E74240 */ ori $a3, (0x000F4240 & 0xFFFF) # ori $a3, $a3, 0x4240 +/* 0164D4 700158D4 8FA5002C */ lw $a1, 0x2c($sp) +/* 0164D8 700158D8 8FA40028 */ lw $a0, 0x28($sp) +/* 0164DC 700158DC 0C003B2A */ jal __ull_div +/* 0164E0 700158E0 24060000 */ li $a2, 0 +/* 0164E4 700158E4 3C0D8006 */ lui $t5, %hi(__osEepromTimerQ) +/* 0164E8 700158E8 3C188006 */ lui $t8, %hi(__osEepromTimerMsg) +/* 0164EC 700158EC 27187D20 */ addiu $t8, %lo(__osEepromTimerMsg) # addiu $t8, $t8, 0x7d20 +/* 0164F0 700158F0 25AD7D08 */ addiu $t5, %lo(__osEepromTimerQ) # addiu $t5, $t5, 0x7d08 +/* 0164F4 700158F4 AFA20030 */ sw $v0, 0x30($sp) +/* 0164F8 700158F8 AFA30034 */ sw $v1, 0x34($sp) +/* 0164FC 700158FC 3C048006 */ lui $a0, %hi(__osEepromTimer) +/* 016500 70015900 240E0000 */ li $t6, 0 +/* 016504 70015904 240F0000 */ li $t7, 0 +/* 016508 70015908 AFAF0014 */ sw $t7, 0x14($sp) +/* 01650C 7001590C AFAE0010 */ sw $t6, 0x10($sp) +/* 016510 70015910 24847CE8 */ addiu $a0, %lo(__osEepromTimer) # addiu $a0, $a0, 0x7ce8 +/* 016514 70015914 8FA70034 */ lw $a3, 0x34($sp) +/* 016518 70015918 8FA60030 */ lw $a2, 0x30($sp) +/* 01651C 7001591C AFAD0018 */ sw $t5, 0x18($sp) +/* 016520 70015920 0C004314 */ jal osSetTimer +/* 016524 70015924 AFB8001C */ sw $t8, 0x1c($sp) +/* 016528 70015928 3C048006 */ lui $a0, %hi(__osEepromTimerQ) +/* 01652C 7001592C 24847D08 */ addiu $a0, %lo(__osEepromTimerQ) # addiu $a0, $a0, 0x7d08 +/* 016530 70015930 00002825 */ move $a1, $zero +/* 016534 70015934 0C003774 */ jal osRecvMesg +/* 016538 70015938 24060001 */ li $a2, 1 +/* 01653C 7001593C 8FB9004C */ lw $t9, 0x4c($sp) +/* 016540 70015940 1F20FFC6 */ bgtz $t9, .L7001585C +/* 016544 70015944 00000000 */ nop +.L70015948: +/* 016548 70015948 8FA2003C */ lw $v0, 0x3c($sp) +.L7001594C: +/* 01654C 7001594C 8FBF0024 */ lw $ra, 0x24($sp) +/* 016550 70015950 27BD0040 */ addiu $sp, $sp, 0x40 +/* 016554 70015954 03E00008 */ jr $ra +/* 016558 70015958 00000000 */ nop + +/* 01655C 7001595C 00000000 */ nop diff --git a/src/libultra/conteeplongwrite.s b/src/libultra/conteeplongwrite.s new file mode 100644 index 0000000..fd5ef0d --- /dev/null +++ b/src/libultra/conteeplongwrite.s @@ -0,0 +1,100 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osEepromLongWrite +/* 016560 70015960 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 016564 70015964 AFA50044 */ sw $a1, 0x44($sp) +/* 016568 70015968 93AE0047 */ lbu $t6, 0x47($sp) +/* 01656C 7001596C AFBF0024 */ sw $ra, 0x24($sp) +/* 016570 70015970 AFA40040 */ sw $a0, 0x40($sp) +/* 016574 70015974 29C10041 */ slti $at, $t6, 0x41 +/* 016578 70015978 AFA60048 */ sw $a2, 0x48($sp) +/* 01657C 7001597C AFA7004C */ sw $a3, 0x4c($sp) +/* 016580 70015980 14200003 */ bnez $at, .L70015990 +/* 016584 70015984 AFA0003C */ sw $zero, 0x3c($sp) +/* 016588 70015988 10000040 */ b .L70015A8C +/* 01658C 7001598C 2402FFFF */ li $v0, -1 +.L70015990: +/* 016590 70015990 8FAF004C */ lw $t7, 0x4c($sp) +/* 016594 70015994 19E0003C */ blez $t7, .L70015A88 +/* 016598 70015998 00000000 */ nop +.L7001599C: +/* 01659C 7001599C 8FA40040 */ lw $a0, 0x40($sp) +/* 0165A0 700159A0 93A50047 */ lbu $a1, 0x47($sp) +/* 0165A4 700159A4 0C0054D0 */ jal osEepromWrite +/* 0165A8 700159A8 8FA60048 */ lw $a2, 0x48($sp) +/* 0165AC 700159AC AFA2003C */ sw $v0, 0x3c($sp) +/* 0165B0 700159B0 8FB8003C */ lw $t8, 0x3c($sp) +/* 0165B4 700159B4 13000003 */ beqz $t8, .L700159C4 +/* 0165B8 700159B8 00000000 */ nop +/* 0165BC 700159BC 10000033 */ b .L70015A8C +/* 0165C0 700159C0 03001025 */ move $v0, $t8 +.L700159C4: +/* 0165C4 700159C4 8FB9004C */ lw $t9, 0x4c($sp) +/* 0165C8 700159C8 93A90047 */ lbu $t1, 0x47($sp) +/* 0165CC 700159CC 8FAB0048 */ lw $t3, 0x48($sp) +/* 0165D0 700159D0 3C068002 */ lui $a2, %hi(osClockRate) +/* 0165D4 700159D4 3C078002 */ lui $a3, %hi(osClockRate+4) +/* 0165D8 700159D8 2728FFF8 */ addiu $t0, $t9, -8 +/* 0165DC 700159DC 252A0001 */ addiu $t2, $t1, 1 +/* 0165E0 700159E0 256C0008 */ addiu $t4, $t3, 8 +/* 0165E4 700159E4 AFA8004C */ sw $t0, 0x4c($sp) +/* 0165E8 700159E8 A3AA0047 */ sb $t2, 0x47($sp) +/* 0165EC 700159EC AFAC0048 */ sw $t4, 0x48($sp) +/* 0165F0 700159F0 8CE76984 */ lw $a3, %lo(osClockRate+4)($a3) +/* 0165F4 700159F4 8CC66980 */ lw $a2, %lo(osClockRate)($a2) +/* 0165F8 700159F8 24040000 */ li $a0, 0 +/* 0165FC 700159FC 0C003B6A */ jal __ll_mul +/* 016600 70015A00 24052EE0 */ li $a1, 12000 +/* 016604 70015A04 AFA20028 */ sw $v0, 0x28($sp) +/* 016608 70015A08 AFA3002C */ sw $v1, 0x2c($sp) +/* 01660C 70015A0C 3C07000F */ lui $a3, (0x000F4240 >> 16) # lui $a3, 0xf +/* 016610 70015A10 34E74240 */ ori $a3, (0x000F4240 & 0xFFFF) # ori $a3, $a3, 0x4240 +/* 016614 70015A14 8FA5002C */ lw $a1, 0x2c($sp) +/* 016618 70015A18 8FA40028 */ lw $a0, 0x28($sp) +/* 01661C 70015A1C 0C003B2A */ jal __ull_div +/* 016620 70015A20 24060000 */ li $a2, 0 +/* 016624 70015A24 3C0D8006 */ lui $t5, %hi(__osEepromTimerQ) +/* 016628 70015A28 3C188006 */ lui $t8, %hi(__osEepromTimerMsg) +/* 01662C 70015A2C 27187D20 */ addiu $t8, %lo(__osEepromTimerMsg) # addiu $t8, $t8, 0x7d20 +/* 016630 70015A30 25AD7D08 */ addiu $t5, %lo(__osEepromTimerQ) # addiu $t5, $t5, 0x7d08 +/* 016634 70015A34 AFA20030 */ sw $v0, 0x30($sp) +/* 016638 70015A38 AFA30034 */ sw $v1, 0x34($sp) +/* 01663C 70015A3C 3C048006 */ lui $a0, %hi(__osEepromTimer) +/* 016640 70015A40 240E0000 */ li $t6, 0 +/* 016644 70015A44 240F0000 */ li $t7, 0 +/* 016648 70015A48 AFAF0014 */ sw $t7, 0x14($sp) +/* 01664C 70015A4C AFAE0010 */ sw $t6, 0x10($sp) +/* 016650 70015A50 24847CE8 */ addiu $a0, %lo(__osEepromTimer) # addiu $a0, $a0, 0x7ce8 +/* 016654 70015A54 8FA70034 */ lw $a3, 0x34($sp) +/* 016658 70015A58 8FA60030 */ lw $a2, 0x30($sp) +/* 01665C 70015A5C AFAD0018 */ sw $t5, 0x18($sp) +/* 016660 70015A60 0C004314 */ jal osSetTimer +/* 016664 70015A64 AFB8001C */ sw $t8, 0x1c($sp) +/* 016668 70015A68 3C048006 */ lui $a0, %hi(__osEepromTimerQ) +/* 01666C 70015A6C 24847D08 */ addiu $a0, %lo(__osEepromTimerQ) # addiu $a0, $a0, 0x7d08 +/* 016670 70015A70 00002825 */ move $a1, $zero +/* 016674 70015A74 0C003774 */ jal osRecvMesg +/* 016678 70015A78 24060001 */ li $a2, 1 +/* 01667C 70015A7C 8FB9004C */ lw $t9, 0x4c($sp) +/* 016680 70015A80 1F20FFC6 */ bgtz $t9, .L7001599C +/* 016684 70015A84 00000000 */ nop +.L70015A88: +/* 016688 70015A88 8FA2003C */ lw $v0, 0x3c($sp) +.L70015A8C: +/* 01668C 70015A8C 8FBF0024 */ lw $ra, 0x24($sp) +/* 016690 70015A90 27BD0040 */ addiu $sp, $sp, 0x40 +/* 016694 70015A94 03E00008 */ jr $ra +/* 016698 70015A98 00000000 */ nop + +/* 01669C 70015A9C 00000000 */ nop diff --git a/src/libultra/conteepprobe.s b/src/libultra/conteepprobe.s new file mode 100644 index 0000000..a654940 --- /dev/null +++ b/src/libultra/conteepprobe.s @@ -0,0 +1,45 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osEepromProbe +/* 015BD0 70014FD0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 015BD4 70014FD4 AFBF0014 */ sw $ra, 0x14($sp) +/* 015BD8 70014FD8 AFA40020 */ sw $a0, 0x20($sp) +/* 015BDC 70014FDC 0C005798 */ jal __osSiGetAccess +/* 015BE0 70014FE0 AFA0001C */ sw $zero, 0x1c($sp) +/* 015BE4 70014FE4 8FA40020 */ lw $a0, 0x20($sp) +/* 015BE8 70014FE8 0C00557F */ jal __osEepStatus +/* 015BEC 70014FEC 27A50018 */ addiu $a1, $sp, 0x18 +/* 015BF0 70014FF0 AFA2001C */ sw $v0, 0x1c($sp) +/* 015BF4 70014FF4 8FAE001C */ lw $t6, 0x1c($sp) +/* 015BF8 70014FF8 15C00008 */ bnez $t6, .L7001501C +/* 015BFC 70014FFC 00000000 */ nop +/* 015C00 70015000 97AF0018 */ lhu $t7, 0x18($sp) +/* 015C04 70015004 31F88000 */ andi $t8, $t7, 0x8000 +/* 015C08 70015008 13000004 */ beqz $t8, .L7001501C +/* 015C0C 7001500C 00000000 */ nop +/* 015C10 70015010 24190001 */ li $t9, 1 +/* 015C14 70015014 10000002 */ b .L70015020 +/* 015C18 70015018 AFB9001C */ sw $t9, 0x1c($sp) +.L7001501C: +/* 015C1C 7001501C AFA0001C */ sw $zero, 0x1c($sp) +.L70015020: +/* 015C20 70015020 0C0057A9 */ jal __osSiRelAccess +/* 015C24 70015024 00000000 */ nop +/* 015C28 70015028 8FBF0014 */ lw $ra, 0x14($sp) +/* 015C2C 7001502C 8FA2001C */ lw $v0, 0x1c($sp) +/* 015C30 70015030 27BD0020 */ addiu $sp, $sp, 0x20 +/* 015C34 70015034 03E00008 */ jr $ra +/* 015C38 70015038 00000000 */ nop + +/* 015C3C 7001503C 00000000 */ nop diff --git a/src/libultra/conteepread.s b/src/libultra/conteepread.s new file mode 100644 index 0000000..80e9ce7 --- /dev/null +++ b/src/libultra/conteepread.s @@ -0,0 +1,289 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osEepromRead +/* 015C40 70015040 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 015C44 70015044 AFA5003C */ sw $a1, 0x3c($sp) +/* 015C48 70015048 93AF003F */ lbu $t7, 0x3f($sp) +/* 015C4C 7001504C 3C0E8006 */ lui $t6, %hi(__osEepPifRam) +/* 015C50 70015050 25CE7D30 */ addiu $t6, %lo(__osEepPifRam) # addiu $t6, $t6, 0x7d30 +/* 015C54 70015054 29E10041 */ slti $at, $t7, 0x41 +/* 015C58 70015058 AFBF0014 */ sw $ra, 0x14($sp) +/* 015C5C 7001505C AFA40038 */ sw $a0, 0x38($sp) +/* 015C60 70015060 AFA60040 */ sw $a2, 0x40($sp) +/* 015C64 70015064 AFA00034 */ sw $zero, 0x34($sp) +/* 015C68 70015068 AFA00030 */ sw $zero, 0x30($sp) +/* 015C6C 7001506C 14200003 */ bnez $at, .L7001507C +/* 015C70 70015070 AFAE002C */ sw $t6, 0x2c($sp) +/* 015C74 70015074 1000006A */ b .L70015220 +/* 015C78 70015078 2402FFFF */ li $v0, -1 +.L7001507C: +/* 015C7C 7001507C 0C005798 */ jal __osSiGetAccess +/* 015C80 70015080 00000000 */ nop +/* 015C84 70015084 8FA40038 */ lw $a0, 0x38($sp) +/* 015C88 70015088 0C00557F */ jal __osEepStatus +/* 015C8C 7001508C 27A50028 */ addiu $a1, $sp, 0x28 +/* 015C90 70015090 AFA20034 */ sw $v0, 0x34($sp) +/* 015C94 70015094 8FB80034 */ lw $t8, 0x34($sp) +/* 015C98 70015098 17000005 */ bnez $t8, .L700150B0 +/* 015C9C 7001509C 00000000 */ nop +/* 015CA0 700150A0 97B90028 */ lhu $t9, 0x28($sp) +/* 015CA4 700150A4 34018000 */ li $at, 32768 +/* 015CA8 700150A8 13210003 */ beq $t9, $at, .L700150B8 +/* 015CAC 700150AC 00000000 */ nop +.L700150B0: +/* 015CB0 700150B0 1000005B */ b .L70015220 +/* 015CB4 700150B4 24020008 */ li $v0, 8 +.L700150B8: +/* 015CB8 700150B8 93A8002A */ lbu $t0, 0x2a($sp) +/* 015CBC 700150BC 31090080 */ andi $t1, $t0, 0x80 +/* 015CC0 700150C0 11200008 */ beqz $t1, .L700150E4 +/* 015CC4 700150C4 00000000 */ nop +.L700150C8: +/* 015CC8 700150C8 8FA40038 */ lw $a0, 0x38($sp) +/* 015CCC 700150CC 0C00557F */ jal __osEepStatus +/* 015CD0 700150D0 27A50028 */ addiu $a1, $sp, 0x28 +/* 015CD4 700150D4 93AA002A */ lbu $t2, 0x2a($sp) +/* 015CD8 700150D8 314B0080 */ andi $t3, $t2, 0x80 +/* 015CDC 700150DC 1560FFFA */ bnez $t3, .L700150C8 +/* 015CE0 700150E0 00000000 */ nop +.L700150E4: +/* 015CE4 700150E4 0C00548C */ jal osEepromRead_sub +/* 015CE8 700150E8 93A4003F */ lbu $a0, 0x3f($sp) +/* 015CEC 700150EC 3C058006 */ lui $a1, %hi(__osEepPifRam) +/* 015CF0 700150F0 24A57D30 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, 0x7d30 +/* 015CF4 700150F4 0C0057B4 */ jal __osSiRawStartDma +/* 015CF8 700150F8 24040001 */ li $a0, 1 +/* 015CFC 700150FC AFA20034 */ sw $v0, 0x34($sp) +/* 015D00 70015100 8FA40038 */ lw $a0, 0x38($sp) +/* 015D04 70015104 00002825 */ move $a1, $zero +/* 015D08 70015108 0C003774 */ jal osRecvMesg +/* 015D0C 7001510C 24060001 */ li $a2, 1 +/* 015D10 70015110 AFA00030 */ sw $zero, 0x30($sp) +.L70015114: +/* 015D14 70015114 8FAD0030 */ lw $t5, 0x30($sp) +/* 015D18 70015118 8FAF0030 */ lw $t7, 0x30($sp) +/* 015D1C 7001511C 3C018006 */ lui $at, %hi(__osEepPifRam) +/* 015D20 70015120 000D7080 */ sll $t6, $t5, 2 +/* 015D24 70015124 002E0821 */ addu $at, $at, $t6 +/* 015D28 70015128 240C00FF */ li $t4, 255 +/* 015D2C 7001512C AC2C7D30 */ sw $t4, %lo(__osEepPifRam)($at) +/* 015D30 70015130 25F80001 */ addiu $t8, $t7, 1 +/* 015D34 70015134 2B010010 */ slti $at, $t8, 0x10 +/* 015D38 70015138 1420FFF6 */ bnez $at, .L70015114 +/* 015D3C 7001513C AFB80030 */ sw $t8, 0x30($sp) +/* 015D40 70015140 3C018006 */ lui $at, %hi(__osEepPifRam+0x3C) +/* 015D44 70015144 3C058006 */ lui $a1, %hi(__osEepPifRam) +/* 015D48 70015148 AC207D6C */ sw $zero, %lo(__osEepPifRam+0x3C)($at) +/* 015D4C 7001514C 24A57D30 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, 0x7d30 +/* 015D50 70015150 0C0057B4 */ jal __osSiRawStartDma +/* 015D54 70015154 00002025 */ move $a0, $zero +/* 015D58 70015158 24190004 */ li $t9, 4 +/* 015D5C 7001515C 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 015D60 70015160 AFA20034 */ sw $v0, 0x34($sp) +/* 015D64 70015164 A0397CE0 */ sb $t9, %lo(__osContLastCmd)($at) +/* 015D68 70015168 8FA40038 */ lw $a0, 0x38($sp) +/* 015D6C 7001516C 00002825 */ move $a1, $zero +/* 015D70 70015170 0C003774 */ jal osRecvMesg +/* 015D74 70015174 24060001 */ li $a2, 1 +/* 015D78 70015178 AFA00030 */ sw $zero, 0x30($sp) +.L7001517C: +/* 015D7C 7001517C 8FAA0030 */ lw $t2, 0x30($sp) +/* 015D80 70015180 8FA8002C */ lw $t0, 0x2c($sp) +/* 015D84 70015184 254B0001 */ addiu $t3, $t2, 1 +/* 015D88 70015188 29610004 */ slti $at, $t3, 4 +/* 015D8C 7001518C 25090001 */ addiu $t1, $t0, 1 +/* 015D90 70015190 AFAB0030 */ sw $t3, 0x30($sp) +/* 015D94 70015194 1420FFF9 */ bnez $at, .L7001517C +/* 015D98 70015198 AFA9002C */ sw $t1, 0x2c($sp) +/* 015D9C 7001519C 8FAC002C */ lw $t4, 0x2c($sp) +/* 015DA0 700151A0 27AD001C */ addiu $t5, $sp, 0x1c +/* 015DA4 700151A4 89810000 */ lwl $at, ($t4) +/* 015DA8 700151A8 99810003 */ lwr $at, 3($t4) +/* 015DAC 700151AC ADA10000 */ sw $at, ($t5) +/* 015DB0 700151B0 898F0004 */ lwl $t7, 4($t4) +/* 015DB4 700151B4 998F0007 */ lwr $t7, 7($t4) +/* 015DB8 700151B8 ADAF0004 */ sw $t7, 4($t5) +/* 015DBC 700151BC 89810008 */ lwl $at, 8($t4) +/* 015DC0 700151C0 9981000B */ lwr $at, 0xb($t4) +/* 015DC4 700151C4 ADA10008 */ sw $at, 8($t5) +/* 015DC8 700151C8 93B8001D */ lbu $t8, 0x1d($sp) +/* 015DCC 700151CC 331900C0 */ andi $t9, $t8, 0xc0 +/* 015DD0 700151D0 00194103 */ sra $t0, $t9, 4 +/* 015DD4 700151D4 1500000F */ bnez $t0, .L70015214 +/* 015DD8 700151D8 AFA80034 */ sw $t0, 0x34($sp) +/* 015DDC 700151DC AFA00030 */ sw $zero, 0x30($sp) +.L700151E0: +/* 015DE0 700151E0 8FA90030 */ lw $t1, 0x30($sp) +/* 015DE4 700151E4 8FAB0040 */ lw $t3, 0x40($sp) +/* 015DE8 700151E8 03A95021 */ addu $t2, $sp, $t1 +/* 015DEC 700151EC 914A0020 */ lbu $t2, 0x20($t2) +/* 015DF0 700151F0 A16A0000 */ sb $t2, ($t3) +/* 015DF4 700151F4 8FAC0030 */ lw $t4, 0x30($sp) +/* 015DF8 700151F8 8FAE0040 */ lw $t6, 0x40($sp) +/* 015DFC 700151FC 258F0001 */ addiu $t7, $t4, 1 +/* 015E00 70015200 29E10008 */ slti $at, $t7, 8 +/* 015E04 70015204 25CD0001 */ addiu $t5, $t6, 1 +/* 015E08 70015208 AFAF0030 */ sw $t7, 0x30($sp) +/* 015E0C 7001520C 1420FFF4 */ bnez $at, .L700151E0 +/* 015E10 70015210 AFAD0040 */ sw $t5, 0x40($sp) +.L70015214: +/* 015E14 70015214 0C0057A9 */ jal __osSiRelAccess +/* 015E18 70015218 00000000 */ nop +/* 015E1C 7001521C 8FA20034 */ lw $v0, 0x34($sp) +.L70015220: +/* 015E20 70015220 8FBF0014 */ lw $ra, 0x14($sp) +/* 015E24 70015224 27BD0038 */ addiu $sp, $sp, 0x38 +/* 015E28 70015228 03E00008 */ jr $ra +/* 015E2C 7001522C 00000000 */ nop + +glabel osEepromRead_sub +/* 015E30 70015230 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 015E34 70015234 3C0E8006 */ lui $t6, %hi(__osEepPifRam) +/* 015E38 70015238 25CE7D30 */ addiu $t6, %lo(__osEepPifRam) # addiu $t6, $t6, 0x7d30 +/* 015E3C 7001523C 308400FF */ andi $a0, $a0, 0xff +/* 015E40 70015240 AFAE0014 */ sw $t6, 0x14($sp) +/* 015E44 70015244 AFA00004 */ sw $zero, 4($sp) +.L70015248: +/* 015E48 70015248 8FB80004 */ lw $t8, 4($sp) +/* 015E4C 7001524C 8FA80004 */ lw $t0, 4($sp) +/* 015E50 70015250 3C018006 */ lui $at, %hi(__osEepPifRam) +/* 015E54 70015254 0018C880 */ sll $t9, $t8, 2 +/* 015E58 70015258 00390821 */ addu $at, $at, $t9 +/* 015E5C 7001525C 240F00FF */ li $t7, 255 +/* 015E60 70015260 AC2F7D30 */ sw $t7, %lo(__osEepPifRam)($at) +/* 015E64 70015264 25090001 */ addiu $t1, $t0, 1 +/* 015E68 70015268 29210010 */ slti $at, $t1, 0x10 +/* 015E6C 7001526C 1420FFF6 */ bnez $at, .L70015248 +/* 015E70 70015270 AFA90004 */ sw $t1, 4($sp) +/* 015E74 70015274 240A0001 */ li $t2, 1 +/* 015E78 70015278 3C018006 */ lui $at, %hi(__osEepPifRam+0x3C) +/* 015E7C 7001527C 240B0002 */ li $t3, 2 +/* 015E80 70015280 240C0008 */ li $t4, 8 +/* 015E84 70015284 240D0004 */ li $t5, 4 +/* 015E88 70015288 AC2A7D6C */ sw $t2, %lo(__osEepPifRam+0x3C)($at) +/* 015E8C 7001528C A3AB0008 */ sb $t3, 8($sp) +/* 015E90 70015290 A3AC0009 */ sb $t4, 9($sp) +/* 015E94 70015294 A3AD000A */ sb $t5, 0xa($sp) +/* 015E98 70015298 A3A4000B */ sb $a0, 0xb($sp) +/* 015E9C 7001529C AFA00004 */ sw $zero, 4($sp) +.L700152A0: +/* 015EA0 700152A0 8FAE0004 */ lw $t6, 4($sp) +/* 015EA4 700152A4 03AEC021 */ addu $t8, $sp, $t6 +/* 015EA8 700152A8 A300000C */ sb $zero, 0xc($t8) +/* 015EAC 700152AC 8FAF0004 */ lw $t7, 4($sp) +/* 015EB0 700152B0 25F90001 */ addiu $t9, $t7, 1 +/* 015EB4 700152B4 2B210008 */ slti $at, $t9, 8 +/* 015EB8 700152B8 1420FFF9 */ bnez $at, .L700152A0 +/* 015EBC 700152BC AFB90004 */ sw $t9, 4($sp) +/* 015EC0 700152C0 AFA00004 */ sw $zero, 4($sp) +.L700152C4: +/* 015EC4 700152C4 8FA80014 */ lw $t0, 0x14($sp) +/* 015EC8 700152C8 A1000000 */ sb $zero, ($t0) +/* 015ECC 700152CC 8FAB0004 */ lw $t3, 4($sp) +/* 015ED0 700152D0 8FA90014 */ lw $t1, 0x14($sp) +/* 015ED4 700152D4 256C0001 */ addiu $t4, $t3, 1 +/* 015ED8 700152D8 29810004 */ slti $at, $t4, 4 +/* 015EDC 700152DC 252A0001 */ addiu $t2, $t1, 1 +/* 015EE0 700152E0 AFAC0004 */ sw $t4, 4($sp) +/* 015EE4 700152E4 1420FFF7 */ bnez $at, .L700152C4 +/* 015EE8 700152E8 AFAA0014 */ sw $t2, 0x14($sp) +/* 015EEC 700152EC 27AE0008 */ addiu $t6, $sp, 8 +/* 015EF0 700152F0 8DC10000 */ lw $at, ($t6) +/* 015EF4 700152F4 8FAD0014 */ lw $t5, 0x14($sp) +/* 015EF8 700152F8 240900FE */ li $t1, 254 +/* 015EFC 700152FC A9A10000 */ swl $at, ($t5) +/* 015F00 70015300 B9A10003 */ swr $at, 3($t5) +/* 015F04 70015304 8DCF0004 */ lw $t7, 4($t6) +/* 015F08 70015308 A9AF0004 */ swl $t7, 4($t5) +/* 015F0C 7001530C B9AF0007 */ swr $t7, 7($t5) +/* 015F10 70015310 8DC10008 */ lw $at, 8($t6) +/* 015F14 70015314 A9A10008 */ swl $at, 8($t5) +/* 015F18 70015318 B9A1000B */ swr $at, 0xb($t5) +/* 015F1C 7001531C 8FB90014 */ lw $t9, 0x14($sp) +/* 015F20 70015320 2728000C */ addiu $t0, $t9, 0xc +/* 015F24 70015324 AFA80014 */ sw $t0, 0x14($sp) +/* 015F28 70015328 A1090000 */ sb $t1, ($t0) +/* 015F2C 7001532C 03E00008 */ jr $ra +/* 015F30 70015330 27BD0018 */ addiu $sp, $sp, 0x18 + +/* 015F34 70015334 00000000 */ nop +/* 015F38 70015338 00000000 */ nop +/* 015F3C 7001533C 00000000 */ nop + +.section .bss +glabel __osEepPifRam +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 diff --git a/src/libultra/conteepwrite.s b/src/libultra/conteepwrite.s new file mode 100644 index 0000000..8e67cf5 --- /dev/null +++ b/src/libultra/conteepwrite.s @@ -0,0 +1,348 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osEepromWrite +/* 015F40 70015340 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 015F44 70015344 AFA5003C */ sw $a1, 0x3c($sp) +/* 015F48 70015348 93AF003F */ lbu $t7, 0x3f($sp) +/* 015F4C 7001534C 3C0E8006 */ lui $t6, %hi(__osEepPifRam) +/* 015F50 70015350 25CE7D30 */ addiu $t6, %lo(__osEepPifRam) # addiu $t6, $t6, 0x7d30 +/* 015F54 70015354 29E10041 */ slti $at, $t7, 0x41 +/* 015F58 70015358 AFBF0014 */ sw $ra, 0x14($sp) +/* 015F5C 7001535C AFA40038 */ sw $a0, 0x38($sp) +/* 015F60 70015360 AFA60040 */ sw $a2, 0x40($sp) +/* 015F64 70015364 AFA00034 */ sw $zero, 0x34($sp) +/* 015F68 70015368 14200003 */ bnez $at, .L70015378 +/* 015F6C 7001536C AFAE002C */ sw $t6, 0x2c($sp) +/* 015F70 70015370 1000005B */ b .L700154E0 +/* 015F74 70015374 2402FFFF */ li $v0, -1 +.L70015378: +/* 015F78 70015378 0C005798 */ jal __osSiGetAccess +/* 015F7C 7001537C 00000000 */ nop +/* 015F80 70015380 8FA40038 */ lw $a0, 0x38($sp) +/* 015F84 70015384 0C00557F */ jal __osEepStatus +/* 015F88 70015388 27A5001C */ addiu $a1, $sp, 0x1c +/* 015F8C 7001538C AFA20034 */ sw $v0, 0x34($sp) +/* 015F90 70015390 8FB80034 */ lw $t8, 0x34($sp) +/* 015F94 70015394 17000005 */ bnez $t8, .L700153AC +/* 015F98 70015398 00000000 */ nop +/* 015F9C 7001539C 97B9001C */ lhu $t9, 0x1c($sp) +/* 015FA0 700153A0 34018000 */ li $at, 32768 +/* 015FA4 700153A4 13210003 */ beq $t9, $at, .L700153B4 +/* 015FA8 700153A8 00000000 */ nop +.L700153AC: +/* 015FAC 700153AC 1000004C */ b .L700154E0 +/* 015FB0 700153B0 24020008 */ li $v0, 8 +.L700153B4: +/* 015FB4 700153B4 93A8001E */ lbu $t0, 0x1e($sp) +/* 015FB8 700153B8 31090080 */ andi $t1, $t0, 0x80 +/* 015FBC 700153BC 11200008 */ beqz $t1, .L700153E0 +/* 015FC0 700153C0 00000000 */ nop +.L700153C4: +/* 015FC4 700153C4 8FA40038 */ lw $a0, 0x38($sp) +/* 015FC8 700153C8 0C00557F */ jal __osEepStatus +/* 015FCC 700153CC 27A5001C */ addiu $a1, $sp, 0x1c +/* 015FD0 700153D0 93AA001E */ lbu $t2, 0x1e($sp) +/* 015FD4 700153D4 314B0080 */ andi $t3, $t2, 0x80 +/* 015FD8 700153D8 1560FFFA */ bnez $t3, .L700153C4 +/* 015FDC 700153DC 00000000 */ nop +.L700153E0: +/* 015FE0 700153E0 93A4003F */ lbu $a0, 0x3f($sp) +/* 015FE4 700153E4 0C00553C */ jal osEepromWrite_sub +/* 015FE8 700153E8 8FA50040 */ lw $a1, 0x40($sp) +/* 015FEC 700153EC 3C058006 */ lui $a1, %hi(__osEepPifRam) +/* 015FF0 700153F0 24A57D30 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, 0x7d30 +/* 015FF4 700153F4 0C0057B4 */ jal __osSiRawStartDma +/* 015FF8 700153F8 24040001 */ li $a0, 1 +/* 015FFC 700153FC AFA20034 */ sw $v0, 0x34($sp) +/* 016000 70015400 8FA40038 */ lw $a0, 0x38($sp) +/* 016004 70015404 00002825 */ move $a1, $zero +/* 016008 70015408 0C003774 */ jal osRecvMesg +/* 01600C 7001540C 24060001 */ li $a2, 1 +/* 016010 70015410 AFA00030 */ sw $zero, 0x30($sp) +.L70015414: +/* 016014 70015414 8FAD0030 */ lw $t5, 0x30($sp) +/* 016018 70015418 8FAF0030 */ lw $t7, 0x30($sp) +/* 01601C 7001541C 3C018006 */ lui $at, %hi(__osEepPifRam) +/* 016020 70015420 000D7080 */ sll $t6, $t5, 2 +/* 016024 70015424 002E0821 */ addu $at, $at, $t6 +/* 016028 70015428 240C00FF */ li $t4, 255 +/* 01602C 7001542C AC2C7D30 */ sw $t4, %lo(__osEepPifRam)($at) +/* 016030 70015430 25F80001 */ addiu $t8, $t7, 1 +/* 016034 70015434 2B010010 */ slti $at, $t8, 0x10 +/* 016038 70015438 1420FFF6 */ bnez $at, .L70015414 +/* 01603C 7001543C AFB80030 */ sw $t8, 0x30($sp) +/* 016040 70015440 3C018006 */ lui $at, %hi(__osEepPifRam+0x3C) +/* 016044 70015444 3C058006 */ lui $a1, %hi(__osEepPifRam) +/* 016048 70015448 AC207D6C */ sw $zero, %lo(__osEepPifRam+0x3C)($at) +/* 01604C 7001544C 24A57D30 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, 0x7d30 +/* 016050 70015450 0C0057B4 */ jal __osSiRawStartDma +/* 016054 70015454 00002025 */ move $a0, $zero +/* 016058 70015458 24190005 */ li $t9, 5 +/* 01605C 7001545C 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 016060 70015460 AFA20034 */ sw $v0, 0x34($sp) +/* 016064 70015464 A0397CE0 */ sb $t9, %lo(__osContLastCmd)($at) +/* 016068 70015468 8FA40038 */ lw $a0, 0x38($sp) +/* 01606C 7001546C 00002825 */ move $a1, $zero +/* 016070 70015470 0C003774 */ jal osRecvMesg +/* 016074 70015474 24060001 */ li $a2, 1 +/* 016078 70015478 AFA00030 */ sw $zero, 0x30($sp) +.L7001547C: +/* 01607C 7001547C 8FAA0030 */ lw $t2, 0x30($sp) +/* 016080 70015480 8FA8002C */ lw $t0, 0x2c($sp) +/* 016084 70015484 254B0001 */ addiu $t3, $t2, 1 +/* 016088 70015488 29610004 */ slti $at, $t3, 4 +/* 01608C 7001548C 25090001 */ addiu $t1, $t0, 1 +/* 016090 70015490 AFAB0030 */ sw $t3, 0x30($sp) +/* 016094 70015494 1420FFF9 */ bnez $at, .L7001547C +/* 016098 70015498 AFA9002C */ sw $t1, 0x2c($sp) +/* 01609C 7001549C 8FAC002C */ lw $t4, 0x2c($sp) +/* 0160A0 700154A0 27AD0020 */ addiu $t5, $sp, 0x20 +/* 0160A4 700154A4 89810000 */ lwl $at, ($t4) +/* 0160A8 700154A8 99810003 */ lwr $at, 3($t4) +/* 0160AC 700154AC ADA10000 */ sw $at, ($t5) +/* 0160B0 700154B0 898F0004 */ lwl $t7, 4($t4) +/* 0160B4 700154B4 998F0007 */ lwr $t7, 7($t4) +/* 0160B8 700154B8 ADAF0004 */ sw $t7, 4($t5) +/* 0160BC 700154BC 89810008 */ lwl $at, 8($t4) +/* 0160C0 700154C0 9981000B */ lwr $at, 0xb($t4) +/* 0160C4 700154C4 ADA10008 */ sw $at, 8($t5) +/* 0160C8 700154C8 93B80021 */ lbu $t8, 0x21($sp) +/* 0160CC 700154CC 331900C0 */ andi $t9, $t8, 0xc0 +/* 0160D0 700154D0 00194103 */ sra $t0, $t9, 4 +/* 0160D4 700154D4 0C0057A9 */ jal __osSiRelAccess +/* 0160D8 700154D8 AFA80034 */ sw $t0, 0x34($sp) +/* 0160DC 700154DC 8FA20034 */ lw $v0, 0x34($sp) +.L700154E0: +/* 0160E0 700154E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0160E4 700154E4 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0160E8 700154E8 03E00008 */ jr $ra +/* 0160EC 700154EC 00000000 */ nop + +glabel osEepromWrite_sub +/* 0160F0 700154F0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0160F4 700154F4 3C0E8006 */ lui $t6, %hi(__osEepPifRam) +/* 0160F8 700154F8 25CE7D30 */ addiu $t6, %lo(__osEepPifRam) # addiu $t6, $t6, 0x7d30 +/* 0160FC 700154FC 308400FF */ andi $a0, $a0, 0xff +/* 016100 70015500 AFAE0014 */ sw $t6, 0x14($sp) +/* 016104 70015504 AFA00004 */ sw $zero, 4($sp) +.L70015508: +/* 016108 70015508 8FB80004 */ lw $t8, 4($sp) +/* 01610C 7001550C 8FA80004 */ lw $t0, 4($sp) +/* 016110 70015510 3C018006 */ lui $at, %hi(__osEepPifRam) +/* 016114 70015514 0018C880 */ sll $t9, $t8, 2 +/* 016118 70015518 00390821 */ addu $at, $at, $t9 +/* 01611C 7001551C 240F00FF */ li $t7, 255 +/* 016120 70015520 AC2F7D30 */ sw $t7, %lo(__osEepPifRam)($at) +/* 016124 70015524 25090001 */ addiu $t1, $t0, 1 +/* 016128 70015528 29210010 */ slti $at, $t1, 0x10 +/* 01612C 7001552C 1420FFF6 */ bnez $at, .L70015508 +/* 016130 70015530 AFA90004 */ sw $t1, 4($sp) +/* 016134 70015534 240A0001 */ li $t2, 1 +/* 016138 70015538 3C018006 */ lui $at, %hi(__osEepPifRam+0x3C) +/* 01613C 7001553C 240B000A */ li $t3, 10 +/* 016140 70015540 240C0001 */ li $t4, 1 +/* 016144 70015544 240D0005 */ li $t5, 5 +/* 016148 70015548 AC2A7D6C */ sw $t2, %lo(__osEepPifRam+0x3C)($at) +/* 01614C 7001554C A3AB0008 */ sb $t3, 8($sp) +/* 016150 70015550 A3AC0009 */ sb $t4, 9($sp) +/* 016154 70015554 A3AD000A */ sb $t5, 0xa($sp) +/* 016158 70015558 A3A4000B */ sb $a0, 0xb($sp) +/* 01615C 7001555C AFA00004 */ sw $zero, 4($sp) +.L70015560: +/* 016160 70015560 8FB80004 */ lw $t8, 4($sp) +/* 016164 70015564 90AE0000 */ lbu $t6, ($a1) +/* 016168 70015568 24A50001 */ addiu $a1, $a1, 1 +/* 01616C 7001556C 03B87821 */ addu $t7, $sp, $t8 +/* 016170 70015570 A1EE000C */ sb $t6, 0xc($t7) +/* 016174 70015574 8FB90004 */ lw $t9, 4($sp) +/* 016178 70015578 27280001 */ addiu $t0, $t9, 1 +/* 01617C 7001557C 29010008 */ slti $at, $t0, 8 +/* 016180 70015580 1420FFF7 */ bnez $at, .L70015560 +/* 016184 70015584 AFA80004 */ sw $t0, 4($sp) +/* 016188 70015588 AFA00004 */ sw $zero, 4($sp) +.L7001558C: +/* 01618C 7001558C 8FA90014 */ lw $t1, 0x14($sp) +/* 016190 70015590 A1200000 */ sb $zero, ($t1) +/* 016194 70015594 8FAC0004 */ lw $t4, 4($sp) +/* 016198 70015598 8FAA0014 */ lw $t2, 0x14($sp) +/* 01619C 7001559C 258D0001 */ addiu $t5, $t4, 1 +/* 0161A0 700155A0 29A10004 */ slti $at, $t5, 4 +/* 0161A4 700155A4 254B0001 */ addiu $t3, $t2, 1 +/* 0161A8 700155A8 AFAD0004 */ sw $t5, 4($sp) +/* 0161AC 700155AC 1420FFF7 */ bnez $at, .L7001558C +/* 0161B0 700155B0 AFAB0014 */ sw $t3, 0x14($sp) +/* 0161B4 700155B4 27B80008 */ addiu $t8, $sp, 8 +/* 0161B8 700155B8 8F010000 */ lw $at, ($t8) +/* 0161BC 700155BC 8FAE0014 */ lw $t6, 0x14($sp) +/* 0161C0 700155C0 240A00FE */ li $t2, 254 +/* 0161C4 700155C4 A9C10000 */ swl $at, ($t6) +/* 0161C8 700155C8 B9C10003 */ swr $at, 3($t6) +/* 0161CC 700155CC 8F190004 */ lw $t9, 4($t8) +/* 0161D0 700155D0 A9D90004 */ swl $t9, 4($t6) +/* 0161D4 700155D4 B9D90007 */ swr $t9, 7($t6) +/* 0161D8 700155D8 8F010008 */ lw $at, 8($t8) +/* 0161DC 700155DC A9C10008 */ swl $at, 8($t6) +/* 0161E0 700155E0 B9C1000B */ swr $at, 0xb($t6) +/* 0161E4 700155E4 8FA80014 */ lw $t0, 0x14($sp) +/* 0161E8 700155E8 2509000C */ addiu $t1, $t0, 0xc +/* 0161EC 700155EC AFA90014 */ sw $t1, 0x14($sp) +/* 0161F0 700155F0 A12A0000 */ sb $t2, ($t1) +/* 0161F4 700155F4 03E00008 */ jr $ra +/* 0161F8 700155F8 27BD0018 */ addiu $sp, $sp, 0x18 + +glabel __osEepStatus +/* 0161FC 700155FC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 016200 70015600 3C0E8006 */ lui $t6, %hi(__osEepPifRam) +/* 016204 70015604 25CE7D30 */ addiu $t6, %lo(__osEepPifRam) # addiu $t6, $t6, 0x7d30 +/* 016208 70015608 AFBF0014 */ sw $ra, 0x14($sp) +/* 01620C 7001560C AFA40030 */ sw $a0, 0x30($sp) +/* 016210 70015610 AFA50034 */ sw $a1, 0x34($sp) +/* 016214 70015614 AFA0002C */ sw $zero, 0x2c($sp) +/* 016218 70015618 AFAE0024 */ sw $t6, 0x24($sp) +/* 01621C 7001561C AFA00028 */ sw $zero, 0x28($sp) +.L70015620: +/* 016220 70015620 8FAF0028 */ lw $t7, 0x28($sp) +/* 016224 70015624 8FB90028 */ lw $t9, 0x28($sp) +/* 016228 70015628 3C018006 */ lui $at, %hi(__osEepPifRam) +/* 01622C 7001562C 000FC080 */ sll $t8, $t7, 2 +/* 016230 70015630 00380821 */ addu $at, $at, $t8 +/* 016234 70015634 AC207D30 */ sw $zero, %lo(__osEepPifRam)($at) +/* 016238 70015638 27280001 */ addiu $t0, $t9, 1 +/* 01623C 7001563C 29010010 */ slti $at, $t0, 0x10 +/* 016240 70015640 1420FFF7 */ bnez $at, .L70015620 +/* 016244 70015644 AFA80028 */ sw $t0, 0x28($sp) +/* 016248 70015648 3C0A8006 */ lui $t2, %hi(__osEepPifRam) +/* 01624C 7001564C 24090001 */ li $t1, 1 +/* 016250 70015650 3C018006 */ lui $at, %hi(__osEepPifRam+0x3C) +/* 016254 70015654 254A7D30 */ addiu $t2, %lo(__osEepPifRam) # addiu $t2, $t2, 0x7d30 +/* 016258 70015658 AC297D6C */ sw $t1, %lo(__osEepPifRam+0x3C)($at) +/* 01625C 7001565C AFAA0024 */ sw $t2, 0x24($sp) +/* 016260 70015660 AFA00028 */ sw $zero, 0x28($sp) +.L70015664: +/* 016264 70015664 8FAB0024 */ lw $t3, 0x24($sp) +/* 016268 70015668 A1600000 */ sb $zero, ($t3) +/* 01626C 7001566C 8FAE0028 */ lw $t6, 0x28($sp) +/* 016270 70015670 8FAC0024 */ lw $t4, 0x24($sp) +/* 016274 70015674 25CF0001 */ addiu $t7, $t6, 1 +/* 016278 70015678 29E10004 */ slti $at, $t7, 4 +/* 01627C 7001567C 258D0001 */ addiu $t5, $t4, 1 +/* 016280 70015680 AFAF0028 */ sw $t7, 0x28($sp) +/* 016284 70015684 1420FFF7 */ bnez $at, .L70015664 +/* 016288 70015688 AFAD0024 */ sw $t5, 0x24($sp) +/* 01628C 7001568C 241800FF */ li $t8, 255 +/* 016290 70015690 24190001 */ li $t9, 1 +/* 016294 70015694 24080003 */ li $t0, 3 +/* 016298 70015698 240900FF */ li $t1, 255 +/* 01629C 7001569C 240A00FF */ li $t2, 255 +/* 0162A0 700156A0 240B00FF */ li $t3, 255 +/* 0162A4 700156A4 240C00FF */ li $t4, 255 +/* 0162A8 700156A8 A3B8001C */ sb $t8, 0x1c($sp) +/* 0162AC 700156AC A3B9001D */ sb $t9, 0x1d($sp) +/* 0162B0 700156B0 A3A8001E */ sb $t0, 0x1e($sp) +/* 0162B4 700156B4 A3A0001F */ sb $zero, 0x1f($sp) +/* 0162B8 700156B8 A3A90020 */ sb $t1, 0x20($sp) +/* 0162BC 700156BC A3AA0021 */ sb $t2, 0x21($sp) +/* 0162C0 700156C0 A3AB0022 */ sb $t3, 0x22($sp) +/* 0162C4 700156C4 A3AC0023 */ sb $t4, 0x23($sp) +/* 0162C8 700156C8 27AE001C */ addiu $t6, $sp, 0x1c +/* 0162CC 700156CC 8DC10000 */ lw $at, ($t6) +/* 0162D0 700156D0 8FAD0024 */ lw $t5, 0x24($sp) +/* 0162D4 700156D4 240A00FE */ li $t2, 254 +/* 0162D8 700156D8 3C058006 */ lui $a1, %hi(__osEepPifRam) +/* 0162DC 700156DC A9A10000 */ swl $at, ($t5) +/* 0162E0 700156E0 B9A10003 */ swr $at, 3($t5) +/* 0162E4 700156E4 8DD90004 */ lw $t9, 4($t6) +/* 0162E8 700156E8 24A57D30 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, 0x7d30 +/* 0162EC 700156EC 24040001 */ li $a0, 1 +/* 0162F0 700156F0 A9B90004 */ swl $t9, 4($t5) +/* 0162F4 700156F4 B9B90007 */ swr $t9, 7($t5) +/* 0162F8 700156F8 8FA80024 */ lw $t0, 0x24($sp) +/* 0162FC 700156FC 25090008 */ addiu $t1, $t0, 8 +/* 016300 70015700 AFA90024 */ sw $t1, 0x24($sp) +/* 016304 70015704 0C0057B4 */ jal __osSiRawStartDma +/* 016308 70015708 A12A0000 */ sb $t2, ($t1) +/* 01630C 7001570C AFA2002C */ sw $v0, 0x2c($sp) +/* 016310 70015710 8FA40030 */ lw $a0, 0x30($sp) +/* 016314 70015714 00002825 */ move $a1, $zero +/* 016318 70015718 0C003774 */ jal osRecvMesg +/* 01631C 7001571C 24060001 */ li $a2, 1 +/* 016320 70015720 240B0005 */ li $t3, 5 +/* 016324 70015724 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 016328 70015728 3C058006 */ lui $a1, %hi(__osEepPifRam) +/* 01632C 7001572C A02B7CE0 */ sb $t3, %lo(__osContLastCmd)($at) +/* 016330 70015730 24A57D30 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, 0x7d30 +/* 016334 70015734 0C0057B4 */ jal __osSiRawStartDma +/* 016338 70015738 00002025 */ move $a0, $zero +/* 01633C 7001573C AFA2002C */ sw $v0, 0x2c($sp) +/* 016340 70015740 8FA40030 */ lw $a0, 0x30($sp) +/* 016344 70015744 00002825 */ move $a1, $zero +/* 016348 70015748 0C003774 */ jal osRecvMesg +/* 01634C 7001574C 24060001 */ li $a2, 1 +/* 016350 70015750 8FAC002C */ lw $t4, 0x2c($sp) +/* 016354 70015754 11800003 */ beqz $t4, .L70015764 +/* 016358 70015758 00000000 */ nop +/* 01635C 7001575C 1000002C */ b .L70015810 +/* 016360 70015760 01801025 */ move $v0, $t4 +.L70015764: +/* 016364 70015764 3C188006 */ lui $t8, %hi(__osEepPifRam) +/* 016368 70015768 27187D30 */ addiu $t8, %lo(__osEepPifRam) # addiu $t8, $t8, 0x7d30 +/* 01636C 7001576C AFB80024 */ sw $t8, 0x24($sp) +/* 016370 70015770 AFA00028 */ sw $zero, 0x28($sp) +.L70015774: +/* 016374 70015774 8FAF0024 */ lw $t7, 0x24($sp) +/* 016378 70015778 A1E00000 */ sb $zero, ($t7) +/* 01637C 7001577C 8FB90028 */ lw $t9, 0x28($sp) +/* 016380 70015780 8FAD0024 */ lw $t5, 0x24($sp) +/* 016384 70015784 27280001 */ addiu $t0, $t9, 1 +/* 016388 70015788 29010004 */ slti $at, $t0, 4 +/* 01638C 7001578C 25AE0001 */ addiu $t6, $t5, 1 +/* 016390 70015790 AFA80028 */ sw $t0, 0x28($sp) +/* 016394 70015794 1420FFF7 */ bnez $at, .L70015774 +/* 016398 70015798 AFAE0024 */ sw $t6, 0x24($sp) +/* 01639C 7001579C 8FA90024 */ lw $t1, 0x24($sp) +/* 0163A0 700157A0 27AA001C */ addiu $t2, $sp, 0x1c +/* 0163A4 700157A4 89210000 */ lwl $at, ($t1) +/* 0163A8 700157A8 99210003 */ lwr $at, 3($t1) +/* 0163AC 700157AC AD410000 */ sw $at, ($t2) +/* 0163B0 700157B0 892C0004 */ lwl $t4, 4($t1) +/* 0163B4 700157B4 992C0007 */ lwr $t4, 7($t1) +/* 0163B8 700157B8 AD4C0004 */ sw $t4, 4($t2) +/* 0163BC 700157BC 93B8001E */ lbu $t8, 0x1e($sp) +/* 0163C0 700157C0 8FAE0034 */ lw $t6, 0x34($sp) +/* 0163C4 700157C4 330F00C0 */ andi $t7, $t8, 0xc0 +/* 0163C8 700157C8 000F6903 */ sra $t5, $t7, 4 +/* 0163CC 700157CC A1CD0003 */ sb $t5, 3($t6) +/* 0163D0 700157D0 93B90021 */ lbu $t9, 0x21($sp) +/* 0163D4 700157D4 93AB0020 */ lbu $t3, 0x20($sp) +/* 0163D8 700157D8 8FA90034 */ lw $t1, 0x34($sp) +/* 0163DC 700157DC 00194200 */ sll $t0, $t9, 8 +/* 0163E0 700157E0 010B5025 */ or $t2, $t0, $t3 +/* 0163E4 700157E4 A52A0000 */ sh $t2, ($t1) +/* 0163E8 700157E8 8FB80034 */ lw $t8, 0x34($sp) +/* 0163EC 700157EC 93AC0022 */ lbu $t4, 0x22($sp) +/* 0163F0 700157F0 A30C0002 */ sb $t4, 2($t8) +/* 0163F4 700157F4 8FAF0034 */ lw $t7, 0x34($sp) +/* 0163F8 700157F8 91ED0003 */ lbu $t5, 3($t7) +/* 0163FC 700157FC 11A00003 */ beqz $t5, .L7001580C +/* 016400 70015800 00000000 */ nop +/* 016404 70015804 10000002 */ b .L70015810 +/* 016408 70015808 01A01025 */ move $v0, $t5 +.L7001580C: +/* 01640C 7001580C 00001025 */ move $v0, $zero +.L70015810: +/* 016410 70015810 8FBF0014 */ lw $ra, 0x14($sp) +/* 016414 70015814 27BD0030 */ addiu $sp, $sp, 0x30 +/* 016418 70015818 03E00008 */ jr $ra +/* 01641C 7001581C 00000000 */ nop + diff --git a/src/libultra/contpfs.s b/src/libultra/contpfs.s new file mode 100644 index 0000000..5ea9b00 --- /dev/null +++ b/src/libultra/contpfs.s @@ -0,0 +1,950 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSumcalc +/* 01F5C0 7001E9C0 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 01F5C4 7001E9C4 AFA00008 */ sw $zero, 8($sp) +/* 01F5C8 7001E9C8 AFA40004 */ sw $a0, 4($sp) +/* 01F5CC 7001E9CC 18A00010 */ blez $a1, .L7001EA10 +/* 01F5D0 7001E9D0 AFA0000C */ sw $zero, 0xc($sp) +.L7001E9D4: +/* 01F5D4 7001E9D4 8FAF0004 */ lw $t7, 4($sp) +/* 01F5D8 7001E9D8 8FAE0008 */ lw $t6, 8($sp) +/* 01F5DC 7001E9DC 8FAB000C */ lw $t3, 0xc($sp) +/* 01F5E0 7001E9E0 91F80000 */ lbu $t8, ($t7) +/* 01F5E4 7001E9E4 25E80001 */ addiu $t0, $t7, 1 +/* 01F5E8 7001E9E8 256C0001 */ addiu $t4, $t3, 1 +/* 01F5EC 7001E9EC 01D8C821 */ addu $t9, $t6, $t8 +/* 01F5F0 7001E9F0 AFB90008 */ sw $t9, 8($sp) +/* 01F5F4 7001E9F4 8FA90008 */ lw $t1, 8($sp) +/* 01F5F8 7001E9F8 0185082A */ slt $at, $t4, $a1 +/* 01F5FC 7001E9FC AFAC000C */ sw $t4, 0xc($sp) +/* 01F600 7001EA00 312AFFFF */ andi $t2, $t1, 0xffff +/* 01F604 7001EA04 AFA80004 */ sw $t0, 4($sp) +/* 01F608 7001EA08 1420FFF2 */ bnez $at, .L7001E9D4 +/* 01F60C 7001EA0C AFAA0008 */ sw $t2, 8($sp) +.L7001EA10: +/* 01F610 7001EA10 97A2000A */ lhu $v0, 0xa($sp) +/* 01F614 7001EA14 03E00008 */ jr $ra +/* 01F618 7001EA18 27BD0010 */ addiu $sp, $sp, 0x10 + +glabel __osIdCheckSum +/* 01F61C 7001EA1C 27BDFFF8 */ addiu $sp, $sp, -8 +/* 01F620 7001EA20 A7A00006 */ sh $zero, 6($sp) +/* 01F624 7001EA24 A4C00000 */ sh $zero, ($a2) +/* 01F628 7001EA28 94CE0000 */ lhu $t6, ($a2) +/* 01F62C 7001EA2C A4AE0000 */ sh $t6, ($a1) +/* 01F630 7001EA30 AFA00000 */ sw $zero, ($sp) +.L7001EA34: +/* 01F634 7001EA34 8FAF0000 */ lw $t7, ($sp) +/* 01F638 7001EA38 008FC021 */ addu $t8, $a0, $t7 +/* 01F63C 7001EA3C 97190000 */ lhu $t9, ($t8) +/* 01F640 7001EA40 A7B90006 */ sh $t9, 6($sp) +/* 01F644 7001EA44 94A80000 */ lhu $t0, ($a1) +/* 01F648 7001EA48 01194821 */ addu $t1, $t0, $t9 +/* 01F64C 7001EA4C A4A90000 */ sh $t1, ($a1) +/* 01F650 7001EA50 97AB0006 */ lhu $t3, 6($sp) +/* 01F654 7001EA54 94CA0000 */ lhu $t2, ($a2) +/* 01F658 7001EA58 01606027 */ not $t4, $t3 +/* 01F65C 7001EA5C 014C6821 */ addu $t5, $t2, $t4 +/* 01F660 7001EA60 A4CD0000 */ sh $t5, ($a2) +/* 01F664 7001EA64 8FAE0000 */ lw $t6, ($sp) +/* 01F668 7001EA68 25CF0002 */ addiu $t7, $t6, 2 +/* 01F66C 7001EA6C 2DE1001C */ sltiu $at, $t7, 0x1c +/* 01F670 7001EA70 1420FFF0 */ bnez $at, .L7001EA34 +/* 01F674 7001EA74 AFAF0000 */ sw $t7, ($sp) +/* 01F678 7001EA78 00001025 */ move $v0, $zero +/* 01F67C 7001EA7C 03E00008 */ jr $ra +/* 01F680 7001EA80 27BD0008 */ addiu $sp, $sp, 8 + +glabel __osRepairPackId +/* 01F684 7001EA84 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 01F688 7001EA88 AFA40078 */ sw $a0, 0x78($sp) +/* 01F68C 7001EA8C 8FAE0078 */ lw $t6, 0x78($sp) +/* 01F690 7001EA90 AFBF001C */ sw $ra, 0x1c($sp) +/* 01F694 7001EA94 AFA5007C */ sw $a1, 0x7c($sp) +/* 01F698 7001EA98 AFA60080 */ sw $a2, 0x80($sp) +/* 01F69C 7001EA9C AFA00074 */ sw $zero, 0x74($sp) +/* 01F6A0 7001EAA0 A3A00033 */ sb $zero, 0x33($sp) +/* 01F6A4 7001EAA4 91CF0065 */ lbu $t7, 0x65($t6) +/* 01F6A8 7001EAA8 11E0000A */ beqz $t7, .L7001EAD4 +/* 01F6AC 7001EAAC 00000000 */ nop +/* 01F6B0 7001EAB0 A1C00065 */ sb $zero, 0x65($t6) +/* 01F6B4 7001EAB4 0C007DAB */ jal __osPfsSelectBank +/* 01F6B8 7001EAB8 8FA40078 */ lw $a0, 0x78($sp) +/* 01F6BC 7001EABC AFA20074 */ sw $v0, 0x74($sp) +/* 01F6C0 7001EAC0 8FB80074 */ lw $t8, 0x74($sp) +/* 01F6C4 7001EAC4 13000003 */ beqz $t8, .L7001EAD4 +/* 01F6C8 7001EAC8 00000000 */ nop +/* 01F6CC 7001EACC 100000EF */ b .L7001EE8C +/* 01F6D0 7001EAD0 03001025 */ move $v0, $t8 +.L7001EAD4: +/* 01F6D4 7001EAD4 8FA80080 */ lw $t0, 0x80($sp) +/* 01F6D8 7001EAD8 2419FFFF */ li $t9, -1 +/* 01F6DC 7001EADC 0C003638 */ jal osGetCount +/* 01F6E0 7001EAE0 AD190000 */ sw $t9, ($t0) +/* 01F6E4 7001EAE4 8FA90080 */ lw $t1, 0x80($sp) +/* 01F6E8 7001EAE8 AD220004 */ sw $v0, 4($t1) +/* 01F6EC 7001EAEC 8FAA007C */ lw $t2, 0x7c($sp) +/* 01F6F0 7001EAF0 8FAB0080 */ lw $t3, 0x80($sp) +/* 01F6F4 7001EAF4 8D4C0008 */ lw $t4, 8($t2) +/* 01F6F8 7001EAF8 8D4D000C */ lw $t5, 0xc($t2) +/* 01F6FC 7001EAFC AD6C0008 */ sw $t4, 8($t3) +/* 01F700 7001EB00 AD6D000C */ sw $t5, 0xc($t3) +/* 01F704 7001EB04 8FAF007C */ lw $t7, 0x7c($sp) +/* 01F708 7001EB08 8FB80080 */ lw $t8, 0x80($sp) +/* 01F70C 7001EB0C 8DEE0010 */ lw $t6, 0x10($t7) +/* 01F710 7001EB10 8DEF0014 */ lw $t7, 0x14($t7) +/* 01F714 7001EB14 AF0E0010 */ sw $t6, 0x10($t8) +/* 01F718 7001EB18 AF0F0014 */ sw $t7, 0x14($t8) +/* 01F71C 7001EB1C AFA00028 */ sw $zero, 0x28($sp) +.L7001EB20: +/* 01F720 7001EB20 8FB90028 */ lw $t9, 0x28($sp) +/* 01F724 7001EB24 8FA80078 */ lw $t0, 0x78($sp) +/* 01F728 7001EB28 A1190065 */ sb $t9, 0x65($t0) +/* 01F72C 7001EB2C 0C007DAB */ jal __osPfsSelectBank +/* 01F730 7001EB30 8FA40078 */ lw $a0, 0x78($sp) +/* 01F734 7001EB34 AFA20074 */ sw $v0, 0x74($sp) +/* 01F738 7001EB38 8FA90074 */ lw $t1, 0x74($sp) +/* 01F73C 7001EB3C 11200003 */ beqz $t1, .L7001EB4C +/* 01F740 7001EB40 00000000 */ nop +/* 01F744 7001EB44 100000D1 */ b .L7001EE8C +/* 01F748 7001EB48 01201025 */ move $v0, $t1 +.L7001EB4C: +/* 01F74C 7001EB4C 8FAA0078 */ lw $t2, 0x78($sp) +/* 01F750 7001EB50 00003025 */ move $a2, $zero +/* 01F754 7001EB54 27A70054 */ addiu $a3, $sp, 0x54 +/* 01F758 7001EB58 8D440004 */ lw $a0, 4($t2) +/* 01F75C 7001EB5C 0C00592C */ jal __osContRamRead +/* 01F760 7001EB60 8D450008 */ lw $a1, 8($t2) +/* 01F764 7001EB64 AFA20074 */ sw $v0, 0x74($sp) +/* 01F768 7001EB68 8FAC0074 */ lw $t4, 0x74($sp) +/* 01F76C 7001EB6C 11800003 */ beqz $t4, .L7001EB7C +/* 01F770 7001EB70 00000000 */ nop +/* 01F774 7001EB74 100000C5 */ b .L7001EE8C +/* 01F778 7001EB78 01801025 */ move $v0, $t4 +.L7001EB7C: +/* 01F77C 7001EB7C 8FAD0028 */ lw $t5, 0x28($sp) +/* 01F780 7001EB80 27AE0054 */ addiu $t6, $sp, 0x54 +/* 01F784 7001EB84 240F0001 */ li $t7, 1 +/* 01F788 7001EB88 35AB0080 */ ori $t3, $t5, 0x80 +/* 01F78C 7001EB8C A1CB0000 */ sb $t3, ($t6) +/* 01F790 7001EB90 AFAF002C */ sw $t7, 0x2c($sp) +.L7001EB94: +/* 01F794 7001EB94 8FB8002C */ lw $t8, 0x2c($sp) +/* 01F798 7001EB98 27B90054 */ addiu $t9, $sp, 0x54 +/* 01F79C 7001EB9C 03194021 */ addu $t0, $t8, $t9 +/* 01F7A0 7001EBA0 91090000 */ lbu $t1, ($t0) +/* 01F7A4 7001EBA4 01205027 */ not $t2, $t1 +/* 01F7A8 7001EBA8 A10A0000 */ sb $t2, ($t0) +/* 01F7AC 7001EBAC 8FAC002C */ lw $t4, 0x2c($sp) +/* 01F7B0 7001EBB0 258D0001 */ addiu $t5, $t4, 1 +/* 01F7B4 7001EBB4 29A10020 */ slti $at, $t5, 0x20 +/* 01F7B8 7001EBB8 1420FFF6 */ bnez $at, .L7001EB94 +/* 01F7BC 7001EBBC AFAD002C */ sw $t5, 0x2c($sp) +/* 01F7C0 7001EBC0 8FAB0078 */ lw $t3, 0x78($sp) +/* 01F7C4 7001EBC4 00003025 */ move $a2, $zero +/* 01F7C8 7001EBC8 27A70054 */ addiu $a3, $sp, 0x54 +/* 01F7CC 7001EBCC 8D640004 */ lw $a0, 4($t3) +/* 01F7D0 7001EBD0 8D650008 */ lw $a1, 8($t3) +/* 01F7D4 7001EBD4 0C005840 */ jal __osContRamWrite +/* 01F7D8 7001EBD8 AFA00010 */ sw $zero, 0x10($sp) +/* 01F7DC 7001EBDC AFA20074 */ sw $v0, 0x74($sp) +/* 01F7E0 7001EBE0 8FAE0074 */ lw $t6, 0x74($sp) +/* 01F7E4 7001EBE4 11C00003 */ beqz $t6, .L7001EBF4 +/* 01F7E8 7001EBE8 00000000 */ nop +/* 01F7EC 7001EBEC 100000A7 */ b .L7001EE8C +/* 01F7F0 7001EBF0 01C01025 */ move $v0, $t6 +.L7001EBF4: +/* 01F7F4 7001EBF4 8FAF0078 */ lw $t7, 0x78($sp) +/* 01F7F8 7001EBF8 00003025 */ move $a2, $zero +/* 01F7FC 7001EBFC 27A70034 */ addiu $a3, $sp, 0x34 +/* 01F800 7001EC00 8DE40004 */ lw $a0, 4($t7) +/* 01F804 7001EC04 0C00592C */ jal __osContRamRead +/* 01F808 7001EC08 8DE50008 */ lw $a1, 8($t7) +/* 01F80C 7001EC0C AFA20074 */ sw $v0, 0x74($sp) +/* 01F810 7001EC10 8FB80074 */ lw $t8, 0x74($sp) +/* 01F814 7001EC14 13000003 */ beqz $t8, .L7001EC24 +/* 01F818 7001EC18 00000000 */ nop +/* 01F81C 7001EC1C 1000009B */ b .L7001EE8C +/* 01F820 7001EC20 03001025 */ move $v0, $t8 +.L7001EC24: +/* 01F824 7001EC24 AFA0002C */ sw $zero, 0x2c($sp) +.L7001EC28: +/* 01F828 7001EC28 8FB9002C */ lw $t9, 0x2c($sp) +/* 01F82C 7001EC2C 03B94821 */ addu $t1, $sp, $t9 +/* 01F830 7001EC30 03B95021 */ addu $t2, $sp, $t9 +/* 01F834 7001EC34 914A0034 */ lbu $t2, 0x34($t2) +/* 01F838 7001EC38 91290054 */ lbu $t1, 0x54($t1) +/* 01F83C 7001EC3C 152A0006 */ bne $t1, $t2, .L7001EC58 +/* 01F840 7001EC40 00000000 */ nop +/* 01F844 7001EC44 8FA8002C */ lw $t0, 0x2c($sp) +/* 01F848 7001EC48 250C0001 */ addiu $t4, $t0, 1 +/* 01F84C 7001EC4C 29810020 */ slti $at, $t4, 0x20 +/* 01F850 7001EC50 1420FFF5 */ bnez $at, .L7001EC28 +/* 01F854 7001EC54 AFAC002C */ sw $t4, 0x2c($sp) +.L7001EC58: +/* 01F858 7001EC58 8FAD002C */ lw $t5, 0x2c($sp) +/* 01F85C 7001EC5C 24010020 */ li $at, 32 +/* 01F860 7001EC60 15A10026 */ bne $t5, $at, .L7001ECFC +/* 01F864 7001EC64 00000000 */ nop +/* 01F868 7001EC68 8FAB0028 */ lw $t3, 0x28($sp) +/* 01F86C 7001EC6C 1960001C */ blez $t3, .L7001ECE0 +/* 01F870 7001EC70 00000000 */ nop +/* 01F874 7001EC74 8FAE0078 */ lw $t6, 0x78($sp) +/* 01F878 7001EC78 A1C00065 */ sb $zero, 0x65($t6) +/* 01F87C 7001EC7C 0C007DAB */ jal __osPfsSelectBank +/* 01F880 7001EC80 8FA40078 */ lw $a0, 0x78($sp) +/* 01F884 7001EC84 AFA20074 */ sw $v0, 0x74($sp) +/* 01F888 7001EC88 8FAF0074 */ lw $t7, 0x74($sp) +/* 01F88C 7001EC8C 11E00003 */ beqz $t7, .L7001EC9C +/* 01F890 7001EC90 00000000 */ nop +/* 01F894 7001EC94 1000007D */ b .L7001EE8C +/* 01F898 7001EC98 01E01025 */ move $v0, $t7 +.L7001EC9C: +/* 01F89C 7001EC9C 8FB80078 */ lw $t8, 0x78($sp) +/* 01F8A0 7001ECA0 00003025 */ move $a2, $zero +/* 01F8A4 7001ECA4 27A70054 */ addiu $a3, $sp, 0x54 +/* 01F8A8 7001ECA8 8F040004 */ lw $a0, 4($t8) +/* 01F8AC 7001ECAC 0C00592C */ jal __osContRamRead +/* 01F8B0 7001ECB0 8F050008 */ lw $a1, 8($t8) +/* 01F8B4 7001ECB4 AFA20074 */ sw $v0, 0x74($sp) +/* 01F8B8 7001ECB8 8FB90074 */ lw $t9, 0x74($sp) +/* 01F8BC 7001ECBC 13200003 */ beqz $t9, .L7001ECCC +/* 01F8C0 7001ECC0 00000000 */ nop +/* 01F8C4 7001ECC4 10000071 */ b .L7001EE8C +/* 01F8C8 7001ECC8 03201025 */ move $v0, $t9 +.L7001ECCC: +/* 01F8CC 7001ECCC 27A90054 */ addiu $t1, $sp, 0x54 +/* 01F8D0 7001ECD0 912A0000 */ lbu $t2, ($t1) +/* 01F8D4 7001ECD4 24010080 */ li $at, 128 +/* 01F8D8 7001ECD8 15410008 */ bne $t2, $at, .L7001ECFC +/* 01F8DC 7001ECDC 00000000 */ nop +.L7001ECE0: +/* 01F8E0 7001ECE0 8FA80028 */ lw $t0, 0x28($sp) +/* 01F8E4 7001ECE4 250C0001 */ addiu $t4, $t0, 1 +/* 01F8E8 7001ECE8 AFAC0028 */ sw $t4, 0x28($sp) +/* 01F8EC 7001ECEC 8FAD0028 */ lw $t5, 0x28($sp) +/* 01F8F0 7001ECF0 29A1003E */ slti $at, $t5, 0x3e +/* 01F8F4 7001ECF4 1420FF8A */ bnez $at, .L7001EB20 +/* 01F8F8 7001ECF8 00000000 */ nop +.L7001ECFC: +/* 01F8FC 7001ECFC 8FAB0078 */ lw $t3, 0x78($sp) +/* 01F900 7001ED00 A1600065 */ sb $zero, 0x65($t3) +/* 01F904 7001ED04 0C007DAB */ jal __osPfsSelectBank +/* 01F908 7001ED08 8FA40078 */ lw $a0, 0x78($sp) +/* 01F90C 7001ED0C AFA20074 */ sw $v0, 0x74($sp) +/* 01F910 7001ED10 8FAE0074 */ lw $t6, 0x74($sp) +/* 01F914 7001ED14 11C00003 */ beqz $t6, .L7001ED24 +/* 01F918 7001ED18 00000000 */ nop +/* 01F91C 7001ED1C 1000005B */ b .L7001EE8C +/* 01F920 7001ED20 01C01025 */ move $v0, $t6 +.L7001ED24: +/* 01F924 7001ED24 8FAF0028 */ lw $t7, 0x28($sp) +/* 01F928 7001ED28 19E00004 */ blez $t7, .L7001ED3C +/* 01F92C 7001ED2C 00000000 */ nop +/* 01F930 7001ED30 24180001 */ li $t8, 1 +/* 01F934 7001ED34 10000002 */ b .L7001ED40 +/* 01F938 7001ED38 A3B80033 */ sb $t8, 0x33($sp) +.L7001ED3C: +/* 01F93C 7001ED3C A3A00033 */ sb $zero, 0x33($sp) +.L7001ED40: +/* 01F940 7001ED40 8FB9007C */ lw $t9, 0x7c($sp) +/* 01F944 7001ED44 93A80033 */ lbu $t0, 0x33($sp) +/* 01F948 7001ED48 8FAD0080 */ lw $t5, 0x80($sp) +/* 01F94C 7001ED4C 97290018 */ lhu $t1, 0x18($t9) +/* 01F950 7001ED50 312AFFFE */ andi $t2, $t1, 0xfffe +/* 01F954 7001ED54 01486025 */ or $t4, $t2, $t0 +/* 01F958 7001ED58 A5AC0018 */ sh $t4, 0x18($t5) +/* 01F95C 7001ED5C 8FAE0080 */ lw $t6, 0x80($sp) +/* 01F960 7001ED60 8FAB0028 */ lw $t3, 0x28($sp) +/* 01F964 7001ED64 A1CB001A */ sb $t3, 0x1a($t6) +/* 01F968 7001ED68 8FAF007C */ lw $t7, 0x7c($sp) +/* 01F96C 7001ED6C 8FB90080 */ lw $t9, 0x80($sp) +/* 01F970 7001ED70 91F8001B */ lbu $t8, 0x1b($t7) +/* 01F974 7001ED74 A338001B */ sb $t8, 0x1b($t9) +/* 01F978 7001ED78 8FA90080 */ lw $t1, 0x80($sp) +/* 01F97C 7001ED7C 01202025 */ move $a0, $t1 +/* 01F980 7001ED80 2525001C */ addiu $a1, $t1, 0x1c +/* 01F984 7001ED84 0C007A87 */ jal __osIdCheckSum +/* 01F988 7001ED88 2526001E */ addiu $a2, $t1, 0x1e +/* 01F98C 7001ED8C 240A0001 */ li $t2, 1 +/* 01F990 7001ED90 27A80020 */ addiu $t0, $sp, 0x20 +/* 01F994 7001ED94 A50A0000 */ sh $t2, ($t0) +/* 01F998 7001ED98 240C0003 */ li $t4, 3 +/* 01F99C 7001ED9C 27AD0020 */ addiu $t5, $sp, 0x20 +/* 01F9A0 7001EDA0 A5AC0002 */ sh $t4, 2($t5) +/* 01F9A4 7001EDA4 240B0004 */ li $t3, 4 +/* 01F9A8 7001EDA8 27AE0020 */ addiu $t6, $sp, 0x20 +/* 01F9AC 7001EDAC A5CB0004 */ sh $t3, 4($t6) +/* 01F9B0 7001EDB0 240F0006 */ li $t7, 6 +/* 01F9B4 7001EDB4 27B80020 */ addiu $t8, $sp, 0x20 +/* 01F9B8 7001EDB8 A70F0006 */ sh $t7, 6($t8) +/* 01F9BC 7001EDBC AFA0002C */ sw $zero, 0x2c($sp) +.L7001EDC0: +/* 01F9C0 7001EDC0 8FA9002C */ lw $t1, 0x2c($sp) +/* 01F9C4 7001EDC4 8FB90078 */ lw $t9, 0x78($sp) +/* 01F9C8 7001EDC8 24080001 */ li $t0, 1 +/* 01F9CC 7001EDCC 00095040 */ sll $t2, $t1, 1 +/* 01F9D0 7001EDD0 03AA3021 */ addu $a2, $sp, $t2 +/* 01F9D4 7001EDD4 94C60020 */ lhu $a2, 0x20($a2) +/* 01F9D8 7001EDD8 8F240004 */ lw $a0, 4($t9) +/* 01F9DC 7001EDDC 8F250008 */ lw $a1, 8($t9) +/* 01F9E0 7001EDE0 AFA80010 */ sw $t0, 0x10($sp) +/* 01F9E4 7001EDE4 0C005840 */ jal __osContRamWrite +/* 01F9E8 7001EDE8 8FA70080 */ lw $a3, 0x80($sp) +/* 01F9EC 7001EDEC AFA20074 */ sw $v0, 0x74($sp) +/* 01F9F0 7001EDF0 8FAC0074 */ lw $t4, 0x74($sp) +/* 01F9F4 7001EDF4 11800003 */ beqz $t4, .L7001EE04 +/* 01F9F8 7001EDF8 00000000 */ nop +/* 01F9FC 7001EDFC 10000023 */ b .L7001EE8C +/* 01FA00 7001EE00 01801025 */ move $v0, $t4 +.L7001EE04: +/* 01FA04 7001EE04 8FAD002C */ lw $t5, 0x2c($sp) +/* 01FA08 7001EE08 25AB0001 */ addiu $t3, $t5, 1 +/* 01FA0C 7001EE0C 29610004 */ slti $at, $t3, 4 +/* 01FA10 7001EE10 1420FFEB */ bnez $at, .L7001EDC0 +/* 01FA14 7001EE14 AFAB002C */ sw $t3, 0x2c($sp) +/* 01FA18 7001EE18 8FAE0078 */ lw $t6, 0x78($sp) +/* 01FA1C 7001EE1C 24060001 */ li $a2, 1 +/* 01FA20 7001EE20 27A70054 */ addiu $a3, $sp, 0x54 +/* 01FA24 7001EE24 8DC40004 */ lw $a0, 4($t6) +/* 01FA28 7001EE28 0C00592C */ jal __osContRamRead +/* 01FA2C 7001EE2C 8DC50008 */ lw $a1, 8($t6) +/* 01FA30 7001EE30 AFA20074 */ sw $v0, 0x74($sp) +/* 01FA34 7001EE34 8FAF0074 */ lw $t7, 0x74($sp) +/* 01FA38 7001EE38 11E00003 */ beqz $t7, .L7001EE48 +/* 01FA3C 7001EE3C 00000000 */ nop +/* 01FA40 7001EE40 10000012 */ b .L7001EE8C +/* 01FA44 7001EE44 01E01025 */ move $v0, $t7 +.L7001EE48: +/* 01FA48 7001EE48 AFA0002C */ sw $zero, 0x2c($sp) +.L7001EE4C: +/* 01FA4C 7001EE4C 8FB9002C */ lw $t9, 0x2c($sp) +/* 01FA50 7001EE50 8FB80080 */ lw $t8, 0x80($sp) +/* 01FA54 7001EE54 03B94021 */ addu $t0, $sp, $t9 +/* 01FA58 7001EE58 03194821 */ addu $t1, $t8, $t9 +/* 01FA5C 7001EE5C 912A0000 */ lbu $t2, ($t1) +/* 01FA60 7001EE60 91080054 */ lbu $t0, 0x54($t0) +/* 01FA64 7001EE64 11480003 */ beq $t2, $t0, .L7001EE74 +/* 01FA68 7001EE68 00000000 */ nop +/* 01FA6C 7001EE6C 10000007 */ b .L7001EE8C +/* 01FA70 7001EE70 2402000A */ li $v0, 10 +.L7001EE74: +/* 01FA74 7001EE74 8FAC002C */ lw $t4, 0x2c($sp) +/* 01FA78 7001EE78 258D0001 */ addiu $t5, $t4, 1 +/* 01FA7C 7001EE7C 29A10020 */ slti $at, $t5, 0x20 +/* 01FA80 7001EE80 1420FFF2 */ bnez $at, .L7001EE4C +/* 01FA84 7001EE84 AFAD002C */ sw $t5, 0x2c($sp) +/* 01FA88 7001EE88 00001025 */ move $v0, $zero +.L7001EE8C: +/* 01FA8C 7001EE8C 8FBF001C */ lw $ra, 0x1c($sp) +/* 01FA90 7001EE90 27BD0078 */ addiu $sp, $sp, 0x78 +/* 01FA94 7001EE94 03E00008 */ jr $ra +/* 01FA98 7001EE98 00000000 */ nop + +glabel __osCheckPackId +/* 01FA9C 7001EE9C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 01FAA0 7001EEA0 AFA40038 */ sw $a0, 0x38($sp) +/* 01FAA4 7001EEA4 8FAE0038 */ lw $t6, 0x38($sp) +/* 01FAA8 7001EEA8 AFBF001C */ sw $ra, 0x1c($sp) +/* 01FAAC 7001EEAC AFA5003C */ sw $a1, 0x3c($sp) +/* 01FAB0 7001EEB0 AFA0002C */ sw $zero, 0x2c($sp) +/* 01FAB4 7001EEB4 91CF0065 */ lbu $t7, 0x65($t6) +/* 01FAB8 7001EEB8 11E0000A */ beqz $t7, .L7001EEE4 +/* 01FABC 7001EEBC 00000000 */ nop +/* 01FAC0 7001EEC0 A1C00065 */ sb $zero, 0x65($t6) +/* 01FAC4 7001EEC4 0C007DAB */ jal __osPfsSelectBank +/* 01FAC8 7001EEC8 8FA40038 */ lw $a0, 0x38($sp) +/* 01FACC 7001EECC AFA2002C */ sw $v0, 0x2c($sp) +/* 01FAD0 7001EED0 8FB8002C */ lw $t8, 0x2c($sp) +/* 01FAD4 7001EED4 13000003 */ beqz $t8, .L7001EEE4 +/* 01FAD8 7001EED8 00000000 */ nop +/* 01FADC 7001EEDC 10000051 */ b .L7001F024 +/* 01FAE0 7001EEE0 03001025 */ move $v0, $t8 +.L7001EEE4: +/* 01FAE4 7001EEE4 24190001 */ li $t9, 1 +/* 01FAE8 7001EEE8 27A80030 */ addiu $t0, $sp, 0x30 +/* 01FAEC 7001EEEC A5190000 */ sh $t9, ($t0) +/* 01FAF0 7001EEF0 24090003 */ li $t1, 3 +/* 01FAF4 7001EEF4 27AA0030 */ addiu $t2, $sp, 0x30 +/* 01FAF8 7001EEF8 A5490002 */ sh $t1, 2($t2) +/* 01FAFC 7001EEFC 240B0004 */ li $t3, 4 +/* 01FB00 7001EF00 27AC0030 */ addiu $t4, $sp, 0x30 +/* 01FB04 7001EF04 A58B0004 */ sh $t3, 4($t4) +/* 01FB08 7001EF08 240D0006 */ li $t5, 6 +/* 01FB0C 7001EF0C 27AF0030 */ addiu $t7, $sp, 0x30 +/* 01FB10 7001EF10 A5ED0006 */ sh $t5, 6($t7) +/* 01FB14 7001EF14 240E0001 */ li $t6, 1 +/* 01FB18 7001EF18 AFAE0024 */ sw $t6, 0x24($sp) +.L7001EF1C: +/* 01FB1C 7001EF1C 8FB90024 */ lw $t9, 0x24($sp) +/* 01FB20 7001EF20 8FB80038 */ lw $t8, 0x38($sp) +/* 01FB24 7001EF24 8FA7003C */ lw $a3, 0x3c($sp) +/* 01FB28 7001EF28 00194040 */ sll $t0, $t9, 1 +/* 01FB2C 7001EF2C 03A83021 */ addu $a2, $sp, $t0 +/* 01FB30 7001EF30 94C60030 */ lhu $a2, 0x30($a2) +/* 01FB34 7001EF34 8F040004 */ lw $a0, 4($t8) +/* 01FB38 7001EF38 0C00592C */ jal __osContRamRead +/* 01FB3C 7001EF3C 8F050008 */ lw $a1, 8($t8) +/* 01FB40 7001EF40 AFA2002C */ sw $v0, 0x2c($sp) +/* 01FB44 7001EF44 8FA9002C */ lw $t1, 0x2c($sp) +/* 01FB48 7001EF48 11200003 */ beqz $t1, .L7001EF58 +/* 01FB4C 7001EF4C 00000000 */ nop +/* 01FB50 7001EF50 10000034 */ b .L7001F024 +/* 01FB54 7001EF54 01201025 */ move $v0, $t1 +.L7001EF58: +/* 01FB58 7001EF58 8FA4003C */ lw $a0, 0x3c($sp) +/* 01FB5C 7001EF5C 27A5002A */ addiu $a1, $sp, 0x2a +/* 01FB60 7001EF60 0C007A87 */ jal __osIdCheckSum +/* 01FB64 7001EF64 27A60028 */ addiu $a2, $sp, 0x28 +/* 01FB68 7001EF68 8FAA003C */ lw $t2, 0x3c($sp) +/* 01FB6C 7001EF6C 97AC002A */ lhu $t4, 0x2a($sp) +/* 01FB70 7001EF70 954B001C */ lhu $t3, 0x1c($t2) +/* 01FB74 7001EF74 156C0005 */ bne $t3, $t4, .L7001EF8C +/* 01FB78 7001EF78 00000000 */ nop +/* 01FB7C 7001EF7C 954D001E */ lhu $t5, 0x1e($t2) +/* 01FB80 7001EF80 97AF0028 */ lhu $t7, 0x28($sp) +/* 01FB84 7001EF84 11AF0006 */ beq $t5, $t7, .L7001EFA0 +/* 01FB88 7001EF88 00000000 */ nop +.L7001EF8C: +/* 01FB8C 7001EF8C 8FAE0024 */ lw $t6, 0x24($sp) +/* 01FB90 7001EF90 25D80001 */ addiu $t8, $t6, 1 +/* 01FB94 7001EF94 2B010004 */ slti $at, $t8, 4 +/* 01FB98 7001EF98 1420FFE0 */ bnez $at, .L7001EF1C +/* 01FB9C 7001EF9C AFB80024 */ sw $t8, 0x24($sp) +.L7001EFA0: +/* 01FBA0 7001EFA0 8FB90024 */ lw $t9, 0x24($sp) +/* 01FBA4 7001EFA4 24010004 */ li $at, 4 +/* 01FBA8 7001EFA8 17210003 */ bne $t9, $at, .L7001EFB8 +/* 01FBAC 7001EFAC 00000000 */ nop +/* 01FBB0 7001EFB0 1000001C */ b .L7001F024 +/* 01FBB4 7001EFB4 2402000A */ li $v0, 10 +.L7001EFB8: +/* 01FBB8 7001EFB8 AFA00020 */ sw $zero, 0x20($sp) +.L7001EFBC: +/* 01FBBC 7001EFBC 8FA80020 */ lw $t0, 0x20($sp) +/* 01FBC0 7001EFC0 8FA90024 */ lw $t1, 0x24($sp) +/* 01FBC4 7001EFC4 11090011 */ beq $t0, $t1, .L7001F00C +/* 01FBC8 7001EFC8 00000000 */ nop +/* 01FBCC 7001EFCC 8FAB0038 */ lw $t3, 0x38($sp) +/* 01FBD0 7001EFD0 00086040 */ sll $t4, $t0, 1 +/* 01FBD4 7001EFD4 03AC3021 */ addu $a2, $sp, $t4 +/* 01FBD8 7001EFD8 94C60030 */ lhu $a2, 0x30($a2) +/* 01FBDC 7001EFDC 240A0001 */ li $t2, 1 +/* 01FBE0 7001EFE0 8D640004 */ lw $a0, 4($t3) +/* 01FBE4 7001EFE4 8D650008 */ lw $a1, 8($t3) +/* 01FBE8 7001EFE8 AFAA0010 */ sw $t2, 0x10($sp) +/* 01FBEC 7001EFEC 0C005840 */ jal __osContRamWrite +/* 01FBF0 7001EFF0 8FA7003C */ lw $a3, 0x3c($sp) +/* 01FBF4 7001EFF4 AFA2002C */ sw $v0, 0x2c($sp) +/* 01FBF8 7001EFF8 8FAD002C */ lw $t5, 0x2c($sp) +/* 01FBFC 7001EFFC 11A00003 */ beqz $t5, .L7001F00C +/* 01FC00 7001F000 00000000 */ nop +/* 01FC04 7001F004 10000007 */ b .L7001F024 +/* 01FC08 7001F008 01A01025 */ move $v0, $t5 +.L7001F00C: +/* 01FC0C 7001F00C 8FAF0020 */ lw $t7, 0x20($sp) +/* 01FC10 7001F010 25EE0001 */ addiu $t6, $t7, 1 +/* 01FC14 7001F014 29C10004 */ slti $at, $t6, 4 +/* 01FC18 7001F018 1420FFE8 */ bnez $at, .L7001EFBC +/* 01FC1C 7001F01C AFAE0020 */ sw $t6, 0x20($sp) +/* 01FC20 7001F020 00001025 */ move $v0, $zero +.L7001F024: +/* 01FC24 7001F024 8FBF001C */ lw $ra, 0x1c($sp) +/* 01FC28 7001F028 27BD0038 */ addiu $sp, $sp, 0x38 +/* 01FC2C 7001F02C 03E00008 */ jr $ra +/* 01FC30 7001F030 00000000 */ nop + +glabel __osGetId +/* 01FC34 7001F034 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 01FC38 7001F038 AFA40068 */ sw $a0, 0x68($sp) +/* 01FC3C 7001F03C 8FAE0068 */ lw $t6, 0x68($sp) +/* 01FC40 7001F040 AFBF0014 */ sw $ra, 0x14($sp) +/* 01FC44 7001F044 91CF0065 */ lbu $t7, 0x65($t6) +/* 01FC48 7001F048 11E0000A */ beqz $t7, .L7001F074 +/* 01FC4C 7001F04C 00000000 */ nop +/* 01FC50 7001F050 A1C00065 */ sb $zero, 0x65($t6) +/* 01FC54 7001F054 0C007DAB */ jal __osPfsSelectBank +/* 01FC58 7001F058 8FA40068 */ lw $a0, 0x68($sp) +/* 01FC5C 7001F05C AFA2001C */ sw $v0, 0x1c($sp) +/* 01FC60 7001F060 8FB8001C */ lw $t8, 0x1c($sp) +/* 01FC64 7001F064 13000003 */ beqz $t8, .L7001F074 +/* 01FC68 7001F068 00000000 */ nop +/* 01FC6C 7001F06C 10000084 */ b .L7001F280 +/* 01FC70 7001F070 03001025 */ move $v0, $t8 +.L7001F074: +/* 01FC74 7001F074 8FB90068 */ lw $t9, 0x68($sp) +/* 01FC78 7001F078 24060001 */ li $a2, 1 +/* 01FC7C 7001F07C 27A70040 */ addiu $a3, $sp, 0x40 +/* 01FC80 7001F080 8F240004 */ lw $a0, 4($t9) +/* 01FC84 7001F084 0C00592C */ jal __osContRamRead +/* 01FC88 7001F088 8F250008 */ lw $a1, 8($t9) +/* 01FC8C 7001F08C AFA2001C */ sw $v0, 0x1c($sp) +/* 01FC90 7001F090 8FA8001C */ lw $t0, 0x1c($sp) +/* 01FC94 7001F094 11000003 */ beqz $t0, .L7001F0A4 +/* 01FC98 7001F098 00000000 */ nop +/* 01FC9C 7001F09C 10000078 */ b .L7001F280 +/* 01FCA0 7001F0A0 01001025 */ move $v0, $t0 +.L7001F0A4: +/* 01FCA4 7001F0A4 27A40040 */ addiu $a0, $sp, 0x40 +/* 01FCA8 7001F0A8 27A50062 */ addiu $a1, $sp, 0x62 +/* 01FCAC 7001F0AC 0C007A87 */ jal __osIdCheckSum +/* 01FCB0 7001F0B0 27A60060 */ addiu $a2, $sp, 0x60 +/* 01FCB4 7001F0B4 27A90040 */ addiu $t1, $sp, 0x40 +/* 01FCB8 7001F0B8 AFA90018 */ sw $t1, 0x18($sp) +/* 01FCBC 7001F0BC 952A001C */ lhu $t2, 0x1c($t1) +/* 01FCC0 7001F0C0 97AB0062 */ lhu $t3, 0x62($sp) +/* 01FCC4 7001F0C4 154B0005 */ bne $t2, $t3, .L7001F0DC +/* 01FCC8 7001F0C8 00000000 */ nop +/* 01FCCC 7001F0CC 952C001E */ lhu $t4, 0x1e($t1) +/* 01FCD0 7001F0D0 97AD0060 */ lhu $t5, 0x60($sp) +/* 01FCD4 7001F0D4 118D001B */ beq $t4, $t5, .L7001F144 +/* 01FCD8 7001F0D8 00000000 */ nop +.L7001F0DC: +/* 01FCDC 7001F0DC 8FA40068 */ lw $a0, 0x68($sp) +/* 01FCE0 7001F0E0 0C007BA7 */ jal __osCheckPackId +/* 01FCE4 7001F0E4 8FA50018 */ lw $a1, 0x18($sp) +/* 01FCE8 7001F0E8 AFA2001C */ sw $v0, 0x1c($sp) +/* 01FCEC 7001F0EC 8FAF001C */ lw $t7, 0x1c($sp) +/* 01FCF0 7001F0F0 2401000A */ li $at, 10 +/* 01FCF4 7001F0F4 15E1000E */ bne $t7, $at, .L7001F130 +/* 01FCF8 7001F0F8 00000000 */ nop +/* 01FCFC 7001F0FC 8FA40068 */ lw $a0, 0x68($sp) +/* 01FD00 7001F100 8FA50018 */ lw $a1, 0x18($sp) +/* 01FD04 7001F104 0C007AA1 */ jal __osRepairPackId +/* 01FD08 7001F108 27A60020 */ addiu $a2, $sp, 0x20 +/* 01FD0C 7001F10C AFA2001C */ sw $v0, 0x1c($sp) +/* 01FD10 7001F110 8FAE001C */ lw $t6, 0x1c($sp) +/* 01FD14 7001F114 11C00003 */ beqz $t6, .L7001F124 +/* 01FD18 7001F118 00000000 */ nop +/* 01FD1C 7001F11C 10000058 */ b .L7001F280 +/* 01FD20 7001F120 01C01025 */ move $v0, $t6 +.L7001F124: +/* 01FD24 7001F124 27B80020 */ addiu $t8, $sp, 0x20 +/* 01FD28 7001F128 10000006 */ b .L7001F144 +/* 01FD2C 7001F12C AFB80018 */ sw $t8, 0x18($sp) +.L7001F130: +/* 01FD30 7001F130 8FB9001C */ lw $t9, 0x1c($sp) +/* 01FD34 7001F134 13200003 */ beqz $t9, .L7001F144 +/* 01FD38 7001F138 00000000 */ nop +/* 01FD3C 7001F13C 10000050 */ b .L7001F280 +/* 01FD40 7001F140 03201025 */ move $v0, $t9 +.L7001F144: +/* 01FD44 7001F144 8FA80018 */ lw $t0, 0x18($sp) +/* 01FD48 7001F148 950A0018 */ lhu $t2, 0x18($t0) +/* 01FD4C 7001F14C 314B0001 */ andi $t3, $t2, 1 +/* 01FD50 7001F150 15600013 */ bnez $t3, .L7001F1A0 +/* 01FD54 7001F154 00000000 */ nop +/* 01FD58 7001F158 8FA40068 */ lw $a0, 0x68($sp) +/* 01FD5C 7001F15C 01002825 */ move $a1, $t0 +/* 01FD60 7001F160 0C007AA1 */ jal __osRepairPackId +/* 01FD64 7001F164 27A60020 */ addiu $a2, $sp, 0x20 +/* 01FD68 7001F168 AFA2001C */ sw $v0, 0x1c($sp) +/* 01FD6C 7001F16C 8FA9001C */ lw $t1, 0x1c($sp) +/* 01FD70 7001F170 11200003 */ beqz $t1, .L7001F180 +/* 01FD74 7001F174 00000000 */ nop +/* 01FD78 7001F178 10000041 */ b .L7001F280 +/* 01FD7C 7001F17C 01201025 */ move $v0, $t1 +.L7001F180: +/* 01FD80 7001F180 27AC0020 */ addiu $t4, $sp, 0x20 +/* 01FD84 7001F184 AFAC0018 */ sw $t4, 0x18($sp) +/* 01FD88 7001F188 958D0018 */ lhu $t5, 0x18($t4) +/* 01FD8C 7001F18C 31AF0001 */ andi $t7, $t5, 1 +/* 01FD90 7001F190 15E00003 */ bnez $t7, .L7001F1A0 +/* 01FD94 7001F194 00000000 */ nop +/* 01FD98 7001F198 10000039 */ b .L7001F280 +/* 01FD9C 7001F19C 2402000B */ li $v0, 11 +.L7001F1A0: +/* 01FDA0 7001F1A0 AFA00064 */ sw $zero, 0x64($sp) +.L7001F1A4: +/* 01FDA4 7001F1A4 8FAE0018 */ lw $t6, 0x18($sp) +/* 01FDA8 7001F1A8 8FB80064 */ lw $t8, 0x64($sp) +/* 01FDAC 7001F1AC 8FAB0068 */ lw $t3, 0x68($sp) +/* 01FDB0 7001F1B0 01D8C821 */ addu $t9, $t6, $t8 +/* 01FDB4 7001F1B4 932A0000 */ lbu $t2, ($t9) +/* 01FDB8 7001F1B8 01784021 */ addu $t0, $t3, $t8 +/* 01FDBC 7001F1BC A10A000C */ sb $t2, 0xc($t0) +/* 01FDC0 7001F1C0 8FA90064 */ lw $t1, 0x64($sp) +/* 01FDC4 7001F1C4 252C0001 */ addiu $t4, $t1, 1 +/* 01FDC8 7001F1C8 29810020 */ slti $at, $t4, 0x20 +/* 01FDCC 7001F1CC 1420FFF5 */ bnez $at, .L7001F1A4 +/* 01FDD0 7001F1D0 AFAC0064 */ sw $t4, 0x64($sp) +/* 01FDD4 7001F1D4 8FAD0018 */ lw $t5, 0x18($sp) +/* 01FDD8 7001F1D8 8FAE0068 */ lw $t6, 0x68($sp) +/* 01FDDC 7001F1DC 24060007 */ li $a2, 7 +/* 01FDE0 7001F1E0 91AF001B */ lbu $t7, 0x1b($t5) +/* 01FDE4 7001F1E4 240D0010 */ li $t5, 16 +/* 01FDE8 7001F1E8 ADCF004C */ sw $t7, 0x4c($t6) +/* 01FDEC 7001F1EC 8FB90018 */ lw $t9, 0x18($sp) +/* 01FDF0 7001F1F0 8FB80068 */ lw $t8, 0x68($sp) +/* 01FDF4 7001F1F4 240E0008 */ li $t6, 8 +/* 01FDF8 7001F1F8 932B001A */ lbu $t3, 0x1a($t9) +/* 01FDFC 7001F1FC A30B0064 */ sb $t3, 0x64($t8) +/* 01FE00 7001F200 8FAA0068 */ lw $t2, 0x68($sp) +/* 01FE04 7001F204 91480064 */ lbu $t0, 0x64($t2) +/* 01FE08 7001F208 00084840 */ sll $t1, $t0, 1 +/* 01FE0C 7001F20C 252C0003 */ addiu $t4, $t1, 3 +/* 01FE10 7001F210 AD4C0060 */ sw $t4, 0x60($t2) +/* 01FE14 7001F214 8FAF0068 */ lw $t7, 0x68($sp) +/* 01FE18 7001F218 ADED0050 */ sw $t5, 0x50($t7) +/* 01FE1C 7001F21C 8FB90068 */ lw $t9, 0x68($sp) +/* 01FE20 7001F220 AF2E0054 */ sw $t6, 0x54($t9) +/* 01FE24 7001F224 8FAB0068 */ lw $t3, 0x68($sp) +/* 01FE28 7001F228 91780064 */ lbu $t8, 0x64($t3) +/* 01FE2C 7001F22C 001840C0 */ sll $t0, $t8, 3 +/* 01FE30 7001F230 25090008 */ addiu $t1, $t0, 8 +/* 01FE34 7001F234 AD690058 */ sw $t1, 0x58($t3) +/* 01FE38 7001F238 8FAC0068 */ lw $t4, 0x68($sp) +/* 01FE3C 7001F23C 918D0064 */ lbu $t5, 0x64($t4) +/* 01FE40 7001F240 8D8A0058 */ lw $t2, 0x58($t4) +/* 01FE44 7001F244 000D78C0 */ sll $t7, $t5, 3 +/* 01FE48 7001F248 014F7021 */ addu $t6, $t2, $t7 +/* 01FE4C 7001F24C AD8E005C */ sw $t6, 0x5c($t4) +/* 01FE50 7001F250 8FB90068 */ lw $t9, 0x68($sp) +/* 01FE54 7001F254 8F240004 */ lw $a0, 4($t9) +/* 01FE58 7001F258 8F250008 */ lw $a1, 8($t9) +/* 01FE5C 7001F25C 0C00592C */ jal __osContRamRead +/* 01FE60 7001F260 2727002C */ addiu $a3, $t9, 0x2c +/* 01FE64 7001F264 AFA2001C */ sw $v0, 0x1c($sp) +/* 01FE68 7001F268 8FB8001C */ lw $t8, 0x1c($sp) +/* 01FE6C 7001F26C 13000003 */ beqz $t8, .L7001F27C +/* 01FE70 7001F270 00000000 */ nop +/* 01FE74 7001F274 10000002 */ b .L7001F280 +/* 01FE78 7001F278 03001025 */ move $v0, $t8 +.L7001F27C: +/* 01FE7C 7001F27C 00001025 */ move $v0, $zero +.L7001F280: +/* 01FE80 7001F280 8FBF0014 */ lw $ra, 0x14($sp) +/* 01FE84 7001F284 27BD0068 */ addiu $sp, $sp, 0x68 +/* 01FE88 7001F288 03E00008 */ jr $ra +/* 01FE8C 7001F28C 00000000 */ nop + +glabel __osCheckId +/* 01FE90 7001F290 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 01FE94 7001F294 AFA40040 */ sw $a0, 0x40($sp) +/* 01FE98 7001F298 8FAE0040 */ lw $t6, 0x40($sp) +/* 01FE9C 7001F29C AFBF0014 */ sw $ra, 0x14($sp) +/* 01FEA0 7001F2A0 91CF0065 */ lbu $t7, 0x65($t6) +/* 01FEA4 7001F2A4 11E0000A */ beqz $t7, .L7001F2D0 +/* 01FEA8 7001F2A8 00000000 */ nop +/* 01FEAC 7001F2AC A1C00065 */ sb $zero, 0x65($t6) +/* 01FEB0 7001F2B0 0C007DAB */ jal __osPfsSelectBank +/* 01FEB4 7001F2B4 8FA40040 */ lw $a0, 0x40($sp) +/* 01FEB8 7001F2B8 AFA20018 */ sw $v0, 0x18($sp) +/* 01FEBC 7001F2BC 8FB80018 */ lw $t8, 0x18($sp) +/* 01FEC0 7001F2C0 13000003 */ beqz $t8, .L7001F2D0 +/* 01FEC4 7001F2C4 00000000 */ nop +/* 01FEC8 7001F2C8 1000002C */ b .L7001F37C +/* 01FECC 7001F2CC 03001025 */ move $v0, $t8 +.L7001F2D0: +/* 01FED0 7001F2D0 8FB90040 */ lw $t9, 0x40($sp) +/* 01FED4 7001F2D4 24060001 */ li $a2, 1 +/* 01FED8 7001F2D8 27A7001C */ addiu $a3, $sp, 0x1c +/* 01FEDC 7001F2DC 8F240004 */ lw $a0, 4($t9) +/* 01FEE0 7001F2E0 0C00592C */ jal __osContRamRead +/* 01FEE4 7001F2E4 8F250008 */ lw $a1, 8($t9) +/* 01FEE8 7001F2E8 AFA20018 */ sw $v0, 0x18($sp) +/* 01FEEC 7001F2EC 8FA80018 */ lw $t0, 0x18($sp) +/* 01FEF0 7001F2F0 11000011 */ beqz $t0, .L7001F338 +/* 01FEF4 7001F2F4 24010002 */ li $at, 2 +/* 01FEF8 7001F2F8 11010003 */ beq $t0, $at, .L7001F308 +/* 01FEFC 7001F2FC 00000000 */ nop +/* 01FF00 7001F300 1000001E */ b .L7001F37C +/* 01FF04 7001F304 01001025 */ move $v0, $t0 +.L7001F308: +/* 01FF08 7001F308 8FA90040 */ lw $t1, 0x40($sp) +/* 01FF0C 7001F30C 24060001 */ li $a2, 1 +/* 01FF10 7001F310 27A7001C */ addiu $a3, $sp, 0x1c +/* 01FF14 7001F314 8D240004 */ lw $a0, 4($t1) +/* 01FF18 7001F318 0C00592C */ jal __osContRamRead +/* 01FF1C 7001F31C 8D250008 */ lw $a1, 8($t1) +/* 01FF20 7001F320 AFA20018 */ sw $v0, 0x18($sp) +/* 01FF24 7001F324 8FAA0018 */ lw $t2, 0x18($sp) +/* 01FF28 7001F328 11400003 */ beqz $t2, .L7001F338 +/* 01FF2C 7001F32C 00000000 */ nop +/* 01FF30 7001F330 10000012 */ b .L7001F37C +/* 01FF34 7001F334 01401025 */ move $v0, $t2 +.L7001F338: +/* 01FF38 7001F338 AFA0003C */ sw $zero, 0x3c($sp) +.L7001F33C: +/* 01FF3C 7001F33C 8FAB003C */ lw $t3, 0x3c($sp) +/* 01FF40 7001F340 8FAD0040 */ lw $t5, 0x40($sp) +/* 01FF44 7001F344 03AB6021 */ addu $t4, $sp, $t3 +/* 01FF48 7001F348 01AB7821 */ addu $t7, $t5, $t3 +/* 01FF4C 7001F34C 91EE000C */ lbu $t6, 0xc($t7) +/* 01FF50 7001F350 918C001C */ lbu $t4, 0x1c($t4) +/* 01FF54 7001F354 118E0003 */ beq $t4, $t6, .L7001F364 +/* 01FF58 7001F358 00000000 */ nop +/* 01FF5C 7001F35C 10000007 */ b .L7001F37C +/* 01FF60 7001F360 24020002 */ li $v0, 2 +.L7001F364: +/* 01FF64 7001F364 8FB8003C */ lw $t8, 0x3c($sp) +/* 01FF68 7001F368 27190001 */ addiu $t9, $t8, 1 +/* 01FF6C 7001F36C 2B210020 */ slti $at, $t9, 0x20 +/* 01FF70 7001F370 1420FFF2 */ bnez $at, .L7001F33C +/* 01FF74 7001F374 AFB9003C */ sw $t9, 0x3c($sp) +/* 01FF78 7001F378 00001025 */ move $v0, $zero +.L7001F37C: +/* 01FF7C 7001F37C 8FBF0014 */ lw $ra, 0x14($sp) +/* 01FF80 7001F380 27BD0040 */ addiu $sp, $sp, 0x40 +/* 01FF84 7001F384 03E00008 */ jr $ra +/* 01FF88 7001F388 00000000 */ nop + +glabel __osPfsRWInode +/* 01FF8C 7001F38C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 01FF90 7001F390 AFA40038 */ sw $a0, 0x38($sp) +/* 01FF94 7001F394 8FAE0038 */ lw $t6, 0x38($sp) +/* 01FF98 7001F398 AFBF001C */ sw $ra, 0x1c($sp) +/* 01FF9C 7001F39C AFA5003C */ sw $a1, 0x3c($sp) +/* 01FFA0 7001F3A0 AFA60040 */ sw $a2, 0x40($sp) +/* 01FFA4 7001F3A4 AFA70044 */ sw $a3, 0x44($sp) +/* 01FFA8 7001F3A8 91CF0065 */ lbu $t7, 0x65($t6) +/* 01FFAC 7001F3AC 11E0000A */ beqz $t7, .L7001F3D8 +/* 01FFB0 7001F3B0 00000000 */ nop +/* 01FFB4 7001F3B4 A1C00065 */ sb $zero, 0x65($t6) +/* 01FFB8 7001F3B8 0C007DAB */ jal __osPfsSelectBank +/* 01FFBC 7001F3BC 8FA40038 */ lw $a0, 0x38($sp) +/* 01FFC0 7001F3C0 AFA2002C */ sw $v0, 0x2c($sp) +/* 01FFC4 7001F3C4 8FB8002C */ lw $t8, 0x2c($sp) +/* 01FFC8 7001F3C8 13000003 */ beqz $t8, .L7001F3D8 +/* 01FFCC 7001F3CC 00000000 */ nop +/* 01FFD0 7001F3D0 100000B2 */ b .L7001F69C +/* 01FFD4 7001F3D4 03001025 */ move $v0, $t8 +.L7001F3D8: +/* 01FFD8 7001F3D8 93B90047 */ lbu $t9, 0x47($sp) +/* 01FFDC 7001F3DC 1B200004 */ blez $t9, .L7001F3F0 +/* 01FFE0 7001F3E0 00000000 */ nop +/* 01FFE4 7001F3E4 24080001 */ li $t0, 1 +/* 01FFE8 7001F3E8 10000004 */ b .L7001F3FC +/* 01FFEC 7001F3EC AFA80028 */ sw $t0, 0x28($sp) +.L7001F3F0: +/* 01FFF0 7001F3F0 8FA90038 */ lw $t1, 0x38($sp) +/* 01FFF4 7001F3F4 8D2A0060 */ lw $t2, 0x60($t1) +/* 01FFF8 7001F3F8 AFAA0028 */ sw $t2, 0x28($sp) +.L7001F3FC: +/* 01FFFC 7001F3FC 93AB0043 */ lbu $t3, 0x43($sp) +/* 020000 7001F400 24010001 */ li $at, 1 +/* 020004 7001F404 1561000C */ bne $t3, $at, .L7001F438 +/* 020008 7001F408 00000000 */ nop +/* 02000C 7001F40C 8FAD0028 */ lw $t5, 0x28($sp) +/* 020010 7001F410 8FAC003C */ lw $t4, 0x3c($sp) +/* 020014 7001F414 000D2823 */ negu $a1, $t5 +/* 020018 7001F418 00057040 */ sll $t6, $a1, 1 +/* 02001C 7001F41C 01C02825 */ move $a1, $t6 +/* 020020 7001F420 000D7840 */ sll $t7, $t5, 1 +/* 020024 7001F424 24A50100 */ addiu $a1, $a1, 0x100 +/* 020028 7001F428 0C007A70 */ jal __osSumcalc +/* 02002C 7001F42C 018F2021 */ addu $a0, $t4, $t7 +/* 020030 7001F430 8FB8003C */ lw $t8, 0x3c($sp) +/* 020034 7001F434 A3020001 */ sb $v0, 1($t8) +.L7001F438: +/* 020038 7001F438 AFA00030 */ sw $zero, 0x30($sp) +.L7001F43C: +/* 02003C 7001F43C 8FA80030 */ lw $t0, 0x30($sp) +/* 020040 7001F440 8FB9003C */ lw $t9, 0x3c($sp) +/* 020044 7001F444 93AB0043 */ lbu $t3, 0x43($sp) +/* 020048 7001F448 00084940 */ sll $t1, $t0, 5 +/* 02004C 7001F44C 24010001 */ li $at, 1 +/* 020050 7001F450 03295021 */ addu $t2, $t9, $t1 +/* 020054 7001F454 1561001B */ bne $t3, $at, .L7001F4C4 +/* 020058 7001F458 AFAA0024 */ sw $t2, 0x24($sp) +/* 02005C 7001F45C 8FAC0038 */ lw $t4, 0x38($sp) +/* 020060 7001F460 93AD0047 */ lbu $t5, 0x47($sp) +/* 020064 7001F464 01403825 */ move $a3, $t2 +/* 020068 7001F468 8D8F0054 */ lw $t7, 0x54($t4) +/* 02006C 7001F46C 000D70C0 */ sll $t6, $t5, 3 +/* 020070 7001F470 8D840004 */ lw $a0, 4($t4) +/* 020074 7001F474 8D850008 */ lw $a1, 8($t4) +/* 020078 7001F478 01EEC021 */ addu $t8, $t7, $t6 +/* 02007C 7001F47C 03083021 */ addu $a2, $t8, $t0 +/* 020080 7001F480 0C005840 */ jal __osContRamWrite +/* 020084 7001F484 AFA00010 */ sw $zero, 0x10($sp) +/* 020088 7001F488 8FB90038 */ lw $t9, 0x38($sp) +/* 02008C 7001F48C 93AB0047 */ lbu $t3, 0x47($sp) +/* 020090 7001F490 AFA2002C */ sw $v0, 0x2c($sp) +/* 020094 7001F494 8F290058 */ lw $t1, 0x58($t9) +/* 020098 7001F498 8FAF0030 */ lw $t7, 0x30($sp) +/* 02009C 7001F49C 000B60C0 */ sll $t4, $t3, 3 +/* 0200A0 7001F4A0 8F250008 */ lw $a1, 8($t9) +/* 0200A4 7001F4A4 8F240004 */ lw $a0, 4($t9) +/* 0200A8 7001F4A8 012C6821 */ addu $t5, $t1, $t4 +/* 0200AC 7001F4AC AFA00010 */ sw $zero, 0x10($sp) +/* 0200B0 7001F4B0 8FA70024 */ lw $a3, 0x24($sp) +/* 0200B4 7001F4B4 0C005840 */ jal __osContRamWrite +/* 0200B8 7001F4B8 01AF3021 */ addu $a2, $t5, $t7 +/* 0200BC 7001F4BC 1000000D */ b .L7001F4F4 +/* 0200C0 7001F4C0 AFA2002C */ sw $v0, 0x2c($sp) +.L7001F4C4: +/* 0200C4 7001F4C4 8FAE0038 */ lw $t6, 0x38($sp) +/* 0200C8 7001F4C8 93A80047 */ lbu $t0, 0x47($sp) +/* 0200CC 7001F4CC 8FAB0030 */ lw $t3, 0x30($sp) +/* 0200D0 7001F4D0 8DD80054 */ lw $t8, 0x54($t6) +/* 0200D4 7001F4D4 000850C0 */ sll $t2, $t0, 3 +/* 0200D8 7001F4D8 8FA70024 */ lw $a3, 0x24($sp) +/* 0200DC 7001F4DC 030AC821 */ addu $t9, $t8, $t2 +/* 0200E0 7001F4E0 8DC40004 */ lw $a0, 4($t6) +/* 0200E4 7001F4E4 8DC50008 */ lw $a1, 8($t6) +/* 0200E8 7001F4E8 0C00592C */ jal __osContRamRead +/* 0200EC 7001F4EC 032B3021 */ addu $a2, $t9, $t3 +/* 0200F0 7001F4F0 AFA2002C */ sw $v0, 0x2c($sp) +.L7001F4F4: +/* 0200F4 7001F4F4 8FA9002C */ lw $t1, 0x2c($sp) +/* 0200F8 7001F4F8 11200003 */ beqz $t1, .L7001F508 +/* 0200FC 7001F4FC 00000000 */ nop +/* 020100 7001F500 10000066 */ b .L7001F69C +/* 020104 7001F504 01201025 */ move $v0, $t1 +.L7001F508: +/* 020108 7001F508 8FAC0030 */ lw $t4, 0x30($sp) +/* 02010C 7001F50C 258D0001 */ addiu $t5, $t4, 1 +/* 020110 7001F510 29A10008 */ slti $at, $t5, 8 +/* 020114 7001F514 1420FFC9 */ bnez $at, .L7001F43C +/* 020118 7001F518 AFAD0030 */ sw $t5, 0x30($sp) +/* 02011C 7001F51C 93AF0043 */ lbu $t7, 0x43($sp) +/* 020120 7001F520 15E0005D */ bnez $t7, .L7001F698 +/* 020124 7001F524 00000000 */ nop +/* 020128 7001F528 8FA80028 */ lw $t0, 0x28($sp) +/* 02012C 7001F52C 8FAE003C */ lw $t6, 0x3c($sp) +/* 020130 7001F530 00082823 */ negu $a1, $t0 +/* 020134 7001F534 00055040 */ sll $t2, $a1, 1 +/* 020138 7001F538 01402825 */ move $a1, $t2 +/* 02013C 7001F53C 0008C040 */ sll $t8, $t0, 1 +/* 020140 7001F540 24A50100 */ addiu $a1, $a1, 0x100 +/* 020144 7001F544 0C007A70 */ jal __osSumcalc +/* 020148 7001F548 01D82021 */ addu $a0, $t6, $t8 +/* 02014C 7001F54C 8FB9003C */ lw $t9, 0x3c($sp) +/* 020150 7001F550 A3A20037 */ sb $v0, 0x37($sp) +/* 020154 7001F554 93A90037 */ lbu $t1, 0x37($sp) +/* 020158 7001F558 932B0001 */ lbu $t3, 1($t9) +/* 02015C 7001F55C 11690037 */ beq $t3, $t1, .L7001F63C +/* 020160 7001F560 00000000 */ nop +/* 020164 7001F564 AFA00030 */ sw $zero, 0x30($sp) +.L7001F568: +/* 020168 7001F568 8FAD0030 */ lw $t5, 0x30($sp) +/* 02016C 7001F56C 8FAC003C */ lw $t4, 0x3c($sp) +/* 020170 7001F570 8FB80038 */ lw $t8, 0x38($sp) +/* 020174 7001F574 000D7940 */ sll $t7, $t5, 5 +/* 020178 7001F578 018F7021 */ addu $t6, $t4, $t7 +/* 02017C 7001F57C 93AA0047 */ lbu $t2, 0x47($sp) +/* 020180 7001F580 AFAE0024 */ sw $t6, 0x24($sp) +/* 020184 7001F584 8F080058 */ lw $t0, 0x58($t8) +/* 020188 7001F588 000AC8C0 */ sll $t9, $t2, 3 +/* 02018C 7001F58C 01C03825 */ move $a3, $t6 +/* 020190 7001F590 01195821 */ addu $t3, $t0, $t9 +/* 020194 7001F594 016D3021 */ addu $a2, $t3, $t5 +/* 020198 7001F598 8F050008 */ lw $a1, 8($t8) +/* 02019C 7001F59C 0C00592C */ jal __osContRamRead +/* 0201A0 7001F5A0 8F040004 */ lw $a0, 4($t8) +/* 0201A4 7001F5A4 8FA90030 */ lw $t1, 0x30($sp) +/* 0201A8 7001F5A8 AFA2002C */ sw $v0, 0x2c($sp) +/* 0201AC 7001F5AC 252C0001 */ addiu $t4, $t1, 1 +/* 0201B0 7001F5B0 29810008 */ slti $at, $t4, 8 +/* 0201B4 7001F5B4 1420FFEC */ bnez $at, .L7001F568 +/* 0201B8 7001F5B8 AFAC0030 */ sw $t4, 0x30($sp) +/* 0201BC 7001F5BC 8FAF003C */ lw $t7, 0x3c($sp) +/* 0201C0 7001F5C0 93AA0037 */ lbu $t2, 0x37($sp) +/* 0201C4 7001F5C4 91F80001 */ lbu $t8, 1($t7) +/* 0201C8 7001F5C8 130A0003 */ beq $t8, $t2, .L7001F5D8 +/* 0201CC 7001F5CC 00000000 */ nop +/* 0201D0 7001F5D0 10000032 */ b .L7001F69C +/* 0201D4 7001F5D4 24020003 */ li $v0, 3 +.L7001F5D8: +/* 0201D8 7001F5D8 AFA00030 */ sw $zero, 0x30($sp) +.L7001F5DC: +/* 0201DC 7001F5DC 8FB90030 */ lw $t9, 0x30($sp) +/* 0201E0 7001F5E0 8FA8003C */ lw $t0, 0x3c($sp) +/* 0201E4 7001F5E4 8FAE0038 */ lw $t6, 0x38($sp) +/* 0201E8 7001F5E8 00195940 */ sll $t3, $t9, 5 +/* 0201EC 7001F5EC 010B6821 */ addu $t5, $t0, $t3 +/* 0201F0 7001F5F0 93AC0047 */ lbu $t4, 0x47($sp) +/* 0201F4 7001F5F4 AFAD0024 */ sw $t5, 0x24($sp) +/* 0201F8 7001F5F8 8DC90054 */ lw $t1, 0x54($t6) +/* 0201FC 7001F5FC 000C78C0 */ sll $t7, $t4, 3 +/* 020200 7001F600 8DC50008 */ lw $a1, 8($t6) +/* 020204 7001F604 8DC40004 */ lw $a0, 4($t6) +/* 020208 7001F608 012FC021 */ addu $t8, $t1, $t7 +/* 02020C 7001F60C AFA00010 */ sw $zero, 0x10($sp) +/* 020210 7001F610 01A03825 */ move $a3, $t5 +/* 020214 7001F614 0C005840 */ jal __osContRamWrite +/* 020218 7001F618 03193021 */ addu $a2, $t8, $t9 +/* 02021C 7001F61C 8FAA0030 */ lw $t2, 0x30($sp) +/* 020220 7001F620 AFA2002C */ sw $v0, 0x2c($sp) +/* 020224 7001F624 25480001 */ addiu $t0, $t2, 1 +/* 020228 7001F628 29010008 */ slti $at, $t0, 8 +/* 02022C 7001F62C 1420FFEB */ bnez $at, .L7001F5DC +/* 020230 7001F630 AFA80030 */ sw $t0, 0x30($sp) +/* 020234 7001F634 10000018 */ b .L7001F698 +/* 020238 7001F638 00000000 */ nop +.L7001F63C: +/* 02023C 7001F63C AFA00030 */ sw $zero, 0x30($sp) +.L7001F640: +/* 020240 7001F640 8FAE0030 */ lw $t6, 0x30($sp) +/* 020244 7001F644 8FAB003C */ lw $t3, 0x3c($sp) +/* 020248 7001F648 8FAF0038 */ lw $t7, 0x38($sp) +/* 02024C 7001F64C 000E6140 */ sll $t4, $t6, 5 +/* 020250 7001F650 016C4821 */ addu $t1, $t3, $t4 +/* 020254 7001F654 93B90047 */ lbu $t9, 0x47($sp) +/* 020258 7001F658 AFA90024 */ sw $t1, 0x24($sp) +/* 02025C 7001F65C 8DF80058 */ lw $t8, 0x58($t7) +/* 020260 7001F660 001968C0 */ sll $t5, $t9, 3 +/* 020264 7001F664 8DE50008 */ lw $a1, 8($t7) +/* 020268 7001F668 8DE40004 */ lw $a0, 4($t7) +/* 02026C 7001F66C 030D5021 */ addu $t2, $t8, $t5 +/* 020270 7001F670 AFA00010 */ sw $zero, 0x10($sp) +/* 020274 7001F674 01203825 */ move $a3, $t1 +/* 020278 7001F678 0C005840 */ jal __osContRamWrite +/* 02027C 7001F67C 014E3021 */ addu $a2, $t2, $t6 +/* 020280 7001F680 8FA80030 */ lw $t0, 0x30($sp) +/* 020284 7001F684 AFA2002C */ sw $v0, 0x2c($sp) +/* 020288 7001F688 250B0001 */ addiu $t3, $t0, 1 +/* 02028C 7001F68C 29610008 */ slti $at, $t3, 8 +/* 020290 7001F690 1420FFEB */ bnez $at, .L7001F640 +/* 020294 7001F694 AFAB0030 */ sw $t3, 0x30($sp) +.L7001F698: +/* 020298 7001F698 00001025 */ move $v0, $zero +.L7001F69C: +/* 02029C 7001F69C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0202A0 7001F6A0 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0202A4 7001F6A4 03E00008 */ jr $ra +/* 0202A8 7001F6A8 00000000 */ nop + +glabel __osPfsSelectBank +/* 0202AC 7001F6AC 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0202B0 7001F6B0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0202B4 7001F6B4 AFA40048 */ sw $a0, 0x48($sp) +/* 0202B8 7001F6B8 AFA00020 */ sw $zero, 0x20($sp) +/* 0202BC 7001F6BC AFA00024 */ sw $zero, 0x24($sp) +.L7001F6C0: +/* 0202C0 7001F6C0 8FAE0048 */ lw $t6, 0x48($sp) +/* 0202C4 7001F6C4 8FB80024 */ lw $t8, 0x24($sp) +/* 0202C8 7001F6C8 91CF0065 */ lbu $t7, 0x65($t6) +/* 0202CC 7001F6CC 03B8C821 */ addu $t9, $sp, $t8 +/* 0202D0 7001F6D0 A32F0028 */ sb $t7, 0x28($t9) +/* 0202D4 7001F6D4 8FA80024 */ lw $t0, 0x24($sp) +/* 0202D8 7001F6D8 25090001 */ addiu $t1, $t0, 1 +/* 0202DC 7001F6DC 29210020 */ slti $at, $t1, 0x20 +/* 0202E0 7001F6E0 1420FFF7 */ bnez $at, .L7001F6C0 +/* 0202E4 7001F6E4 AFA90024 */ sw $t1, 0x24($sp) +/* 0202E8 7001F6E8 8FAA0048 */ lw $t2, 0x48($sp) +/* 0202EC 7001F6EC 24060400 */ li $a2, 1024 +/* 0202F0 7001F6F0 27A70028 */ addiu $a3, $sp, 0x28 +/* 0202F4 7001F6F4 8D440004 */ lw $a0, 4($t2) +/* 0202F8 7001F6F8 8D450008 */ lw $a1, 8($t2) +/* 0202FC 7001F6FC 0C005840 */ jal __osContRamWrite +/* 020300 7001F700 AFA00010 */ sw $zero, 0x10($sp) +/* 020304 7001F704 8FBF001C */ lw $ra, 0x1c($sp) +/* 020308 7001F708 AFA20020 */ sw $v0, 0x20($sp) +/* 02030C 7001F70C 8FA20020 */ lw $v0, 0x20($sp) +/* 020310 7001F710 03E00008 */ jr $ra +/* 020314 7001F714 27BD0048 */ addiu $sp, $sp, 0x48 + diff --git a/src/libultra/contquery.s b/src/libultra/contquery.s new file mode 100644 index 0000000..125d8f6 --- /dev/null +++ b/src/libultra/contquery.s @@ -0,0 +1,63 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osContStartQuery +/* 0158C0 70014CC0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0158C4 70014CC4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0158C8 70014CC8 AFA40020 */ sw $a0, 0x20($sp) +/* 0158CC 70014CCC 0C005798 */ jal __osSiGetAccess +/* 0158D0 70014CD0 AFA0001C */ sw $zero, 0x1c($sp) +/* 0158D4 70014CD4 3C0E8006 */ lui $t6, %hi(__osContLastCmd) +/* 0158D8 70014CD8 91CE7CE0 */ lbu $t6, %lo(__osContLastCmd)($t6) +/* 0158DC 70014CDC 11C0000C */ beqz $t6, .L70014D10 +/* 0158E0 70014CE0 00000000 */ nop +/* 0158E4 70014CE4 0C0052F2 */ jal __osPackRequestData +/* 0158E8 70014CE8 00002025 */ move $a0, $zero +/* 0158EC 70014CEC 3C058006 */ lui $a1, %hi(__osContPifRam) +/* 0158F0 70014CF0 24A57CA0 */ addiu $a1, %lo(__osContPifRam) # addiu $a1, $a1, 0x7ca0 +/* 0158F4 70014CF4 0C0057B4 */ jal __osSiRawStartDma +/* 0158F8 70014CF8 24040001 */ li $a0, 1 +/* 0158FC 70014CFC AFA2001C */ sw $v0, 0x1c($sp) +/* 015900 70014D00 8FA40020 */ lw $a0, 0x20($sp) +/* 015904 70014D04 00002825 */ move $a1, $zero +/* 015908 70014D08 0C003774 */ jal osRecvMesg +/* 01590C 70014D0C 24060001 */ li $a2, 1 +.L70014D10: +/* 015910 70014D10 3C058006 */ lui $a1, %hi(__osContPifRam) +/* 015914 70014D14 24A57CA0 */ addiu $a1, %lo(__osContPifRam) # addiu $a1, $a1, 0x7ca0 +/* 015918 70014D18 0C0057B4 */ jal __osSiRawStartDma +/* 01591C 70014D1C 00002025 */ move $a0, $zero +/* 015920 70014D20 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 015924 70014D24 AFA2001C */ sw $v0, 0x1c($sp) +/* 015928 70014D28 0C0057A9 */ jal __osSiRelAccess +/* 01592C 70014D2C A0207CE0 */ sb $zero, %lo(__osContLastCmd)($at) +/* 015930 70014D30 8FBF0014 */ lw $ra, 0x14($sp) +/* 015934 70014D34 8FA2001C */ lw $v0, 0x1c($sp) +/* 015938 70014D38 27BD0020 */ addiu $sp, $sp, 0x20 +/* 01593C 70014D3C 03E00008 */ jr $ra +/* 015940 70014D40 00000000 */ nop + +glabel osContGetQuery +/* 015944 70014D44 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 015948 70014D48 AFBF0014 */ sw $ra, 0x14($sp) +/* 01594C 70014D4C AFA40020 */ sw $a0, 0x20($sp) +/* 015950 70014D50 8FA50020 */ lw $a1, 0x20($sp) +/* 015954 70014D54 0C0052BE */ jal __osContGetInitData +/* 015958 70014D58 27A4001F */ addiu $a0, $sp, 0x1f +/* 01595C 70014D5C 8FBF0014 */ lw $ra, 0x14($sp) +/* 015960 70014D60 27BD0020 */ addiu $sp, $sp, 0x20 +/* 015964 70014D64 03E00008 */ jr $ra +/* 015968 70014D68 00000000 */ nop + + + diff --git a/src/libultra/contramread.s b/src/libultra/contramread.s new file mode 100644 index 0000000..7decb8f --- /dev/null +++ b/src/libultra/contramread.s @@ -0,0 +1,268 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osContRamRead +/* 0170B0 700164B0 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0170B4 700164B4 3C0E8006 */ lui $t6, %hi(__osPfsPifRam) +/* 0170B8 700164B8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0170BC 700164BC 25CE7D70 */ addiu $t6, %lo(__osPfsPifRam) # addiu $t6, $t6, 0x7d70 +/* 0170C0 700164C0 240F0002 */ li $t7, 2 +/* 0170C4 700164C4 AFA40060 */ sw $a0, 0x60($sp) +/* 0170C8 700164C8 AFA50064 */ sw $a1, 0x64($sp) +/* 0170CC 700164CC AFA60068 */ sw $a2, 0x68($sp) +/* 0170D0 700164D0 AFA7006C */ sw $a3, 0x6c($sp) +/* 0170D4 700164D4 AFB00018 */ sw $s0, 0x18($sp) +/* 0170D8 700164D8 AFA0005C */ sw $zero, 0x5c($sp) +/* 0170DC 700164DC AFAE0054 */ sw $t6, 0x54($sp) +/* 0170E0 700164E0 0C005798 */ jal __osSiGetAccess +/* 0170E4 700164E4 AFAF0028 */ sw $t7, 0x28($sp) +/* 0170E8 700164E8 24180002 */ li $t8, 2 +/* 0170EC 700164EC 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 0170F0 700164F0 A0387CE0 */ sb $t8, %lo(__osContLastCmd)($at) +/* 0170F4 700164F4 8FA40064 */ lw $a0, 0x64($sp) +/* 0170F8 700164F8 0C0059BD */ jal __osContRamRead_sub +/* 0170FC 700164FC 97A5006A */ lhu $a1, 0x6a($sp) +/* 017100 70016500 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 017104 70016504 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 017108 70016508 0C0057B4 */ jal __osSiRawStartDma +/* 01710C 7001650C 24040001 */ li $a0, 1 +/* 017110 70016510 AFA2005C */ sw $v0, 0x5c($sp) +/* 017114 70016514 8FA40060 */ lw $a0, 0x60($sp) +/* 017118 70016518 00002825 */ move $a1, $zero +/* 01711C 7001651C 0C003774 */ jal osRecvMesg +/* 017120 70016520 24060001 */ li $a2, 1 +.L70016524: +/* 017124 70016524 AFA00058 */ sw $zero, 0x58($sp) +.L70016528: +/* 017128 70016528 8FA80058 */ lw $t0, 0x58($sp) +/* 01712C 7001652C 8FAA0058 */ lw $t2, 0x58($sp) +/* 017130 70016530 3C018006 */ lui $at, %hi(__osPfsPifRam) +/* 017134 70016534 00084880 */ sll $t1, $t0, 2 +/* 017138 70016538 00290821 */ addu $at, $at, $t1 +/* 01713C 7001653C 241900FF */ li $t9, 255 +/* 017140 70016540 AC397D70 */ sw $t9, %lo(__osPfsPifRam)($at) +/* 017144 70016544 254B0001 */ addiu $t3, $t2, 1 +/* 017148 70016548 29610010 */ slti $at, $t3, 0x10 +/* 01714C 7001654C 1420FFF6 */ bnez $at, .L70016528 +/* 017150 70016550 AFAB0058 */ sw $t3, 0x58($sp) +/* 017154 70016554 3C018006 */ lui $at, %hi(__osPfsPifRam+0x3c) +/* 017158 70016558 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 01715C 7001655C AC207DAC */ sw $zero, %lo(__osPfsPifRam+0x3c)($at) +/* 017160 70016560 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 017164 70016564 0C0057B4 */ jal __osSiRawStartDma +/* 017168 70016568 00002025 */ move $a0, $zero +/* 01716C 7001656C AFA2005C */ sw $v0, 0x5c($sp) +/* 017170 70016570 8FA40060 */ lw $a0, 0x60($sp) +/* 017174 70016574 00002825 */ move $a1, $zero +/* 017178 70016578 0C003774 */ jal osRecvMesg +/* 01717C 7001657C 24060001 */ li $a2, 1 +/* 017180 70016580 8FAD0064 */ lw $t5, 0x64($sp) +/* 017184 70016584 3C0C8006 */ lui $t4, %hi(__osPfsPifRam) +/* 017188 70016588 258C7D70 */ addiu $t4, %lo(__osPfsPifRam) # addiu $t4, $t4, 0x7d70 +/* 01718C 7001658C 11A0000C */ beqz $t5, .L700165C0 +/* 017190 70016590 AFAC0054 */ sw $t4, 0x54($sp) +/* 017194 70016594 19A0000A */ blez $t5, .L700165C0 +/* 017198 70016598 AFA00058 */ sw $zero, 0x58($sp) +.L7001659C: +/* 01719C 7001659C 8FB80058 */ lw $t8, 0x58($sp) +/* 0171A0 700165A0 8FB90064 */ lw $t9, 0x64($sp) +/* 0171A4 700165A4 8FAE0054 */ lw $t6, 0x54($sp) +/* 0171A8 700165A8 27080001 */ addiu $t0, $t8, 1 +/* 0171AC 700165AC 0119082A */ slt $at, $t0, $t9 +/* 0171B0 700165B0 25CF0001 */ addiu $t7, $t6, 1 +/* 0171B4 700165B4 AFA80058 */ sw $t0, 0x58($sp) +/* 0171B8 700165B8 1420FFF8 */ bnez $at, .L7001659C +/* 0171BC 700165BC AFAF0054 */ sw $t7, 0x54($sp) +.L700165C0: +/* 0171C0 700165C0 8FAA0054 */ lw $t2, 0x54($sp) +/* 0171C4 700165C4 27A9002C */ addiu $t1, $sp, 0x2c +/* 0171C8 700165C8 254C0024 */ addiu $t4, $t2, 0x24 +.L700165CC: +/* 0171CC 700165CC 89410000 */ lwl $at, ($t2) +/* 0171D0 700165D0 99410003 */ lwr $at, 3($t2) +/* 0171D4 700165D4 254A000C */ addiu $t2, $t2, 0xc +/* 0171D8 700165D8 2529000C */ addiu $t1, $t1, 0xc +/* 0171DC 700165DC AD21FFF4 */ sw $at, -0xc($t1) +/* 0171E0 700165E0 8941FFF8 */ lwl $at, -8($t2) +/* 0171E4 700165E4 9941FFFB */ lwr $at, -5($t2) +/* 0171E8 700165E8 AD21FFF8 */ sw $at, -8($t1) +/* 0171EC 700165EC 8941FFFC */ lwl $at, -4($t2) +/* 0171F0 700165F0 9941FFFF */ lwr $at, -1($t2) +/* 0171F4 700165F4 154CFFF5 */ bne $t2, $t4, .L700165CC +/* 0171F8 700165F8 AD21FFFC */ sw $at, -4($t1) +/* 0171FC 700165FC 89410000 */ lwl $at, ($t2) +/* 017200 70016600 99410003 */ lwr $at, 3($t2) +/* 017204 70016604 AD210000 */ sw $at, ($t1) +/* 017208 70016608 93AD002E */ lbu $t5, 0x2e($sp) +/* 01720C 7001660C 31AE00C0 */ andi $t6, $t5, 0xc0 +/* 017210 70016610 000E7903 */ sra $t7, $t6, 4 +/* 017214 70016614 15E00025 */ bnez $t7, .L700166AC +/* 017218 70016618 AFAF005C */ sw $t7, 0x5c($sp) +/* 01721C 7001661C 27A4002C */ addiu $a0, $sp, 0x2c +/* 017220 70016620 0C00580C */ jal __osContDataCrc +/* 017224 70016624 24840006 */ addiu $a0, $a0, 6 +/* 017228 70016628 A3A20027 */ sb $v0, 0x27($sp) +/* 01722C 7001662C 93B80027 */ lbu $t8, 0x27($sp) +/* 017230 70016630 93A80052 */ lbu $t0, 0x52($sp) +/* 017234 70016634 1308000F */ beq $t8, $t0, .L70016674 +/* 017238 70016638 00000000 */ nop +/* 01723C 7001663C 8FA40060 */ lw $a0, 0x60($sp) +/* 017240 70016640 0C0051FD */ jal __osPfsGetStatus +/* 017244 70016644 8FA50064 */ lw $a1, 0x64($sp) +/* 017248 70016648 AFA2005C */ sw $v0, 0x5c($sp) +/* 01724C 7001664C 8FB9005C */ lw $t9, 0x5c($sp) +/* 017250 70016650 13200005 */ beqz $t9, .L70016668 +/* 017254 70016654 00000000 */ nop +/* 017258 70016658 0C0057A9 */ jal __osSiRelAccess +/* 01725C 7001665C 00000000 */ nop +/* 017260 70016660 1000001F */ b .L700166E0 +/* 017264 70016664 8FA2005C */ lw $v0, 0x5c($sp) +.L70016668: +/* 017268 70016668 240B0004 */ li $t3, 4 +/* 01726C 7001666C 1000000F */ b .L700166AC +/* 017270 70016670 AFAB005C */ sw $t3, 0x5c($sp) +.L70016674: +/* 017274 70016674 AFA00058 */ sw $zero, 0x58($sp) +.L70016678: +/* 017278 70016678 8FAC0058 */ lw $t4, 0x58($sp) +/* 01727C 7001667C 8FA9006C */ lw $t1, 0x6c($sp) +/* 017280 70016680 03AC5021 */ addu $t2, $sp, $t4 +/* 017284 70016684 914A0032 */ lbu $t2, 0x32($t2) +/* 017288 70016688 A12A0000 */ sb $t2, ($t1) +/* 01728C 7001668C 8FAF0058 */ lw $t7, 0x58($sp) +/* 017290 70016690 8FAD006C */ lw $t5, 0x6c($sp) +/* 017294 70016694 25F80001 */ addiu $t8, $t7, 1 +/* 017298 70016698 2B010020 */ slti $at, $t8, 0x20 +/* 01729C 7001669C 25AE0001 */ addiu $t6, $t5, 1 +/* 0172A0 700166A0 AFB80058 */ sw $t8, 0x58($sp) +/* 0172A4 700166A4 1420FFF4 */ bnez $at, .L70016678 +/* 0172A8 700166A8 AFAE006C */ sw $t6, 0x6c($sp) +.L700166AC: +/* 0172AC 700166AC 8FA8005C */ lw $t0, 0x5c($sp) +/* 0172B0 700166B0 24010004 */ li $at, 4 +/* 0172B4 700166B4 15010007 */ bne $t0, $at, .L700166D4 +/* 0172B8 700166B8 00000000 */ nop +/* 0172BC 700166BC 8FB90028 */ lw $t9, 0x28($sp) +/* 0172C0 700166C0 2B300000 */ slti $s0, $t9, 0 +/* 0172C4 700166C4 3A100001 */ xori $s0, $s0, 1 +/* 0172C8 700166C8 272BFFFF */ addiu $t3, $t9, -1 +/* 0172CC 700166CC 1600FF95 */ bnez $s0, .L70016524 +/* 0172D0 700166D0 AFAB0028 */ sw $t3, 0x28($sp) +.L700166D4: +/* 0172D4 700166D4 0C0057A9 */ jal __osSiRelAccess +/* 0172D8 700166D8 00000000 */ nop +/* 0172DC 700166DC 8FA2005C */ lw $v0, 0x5c($sp) +.L700166E0: +/* 0172E0 700166E0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0172E4 700166E4 8FB00018 */ lw $s0, 0x18($sp) +/* 0172E8 700166E8 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0172EC 700166EC 03E00008 */ jr $ra +/* 0172F0 700166F0 00000000 */ nop + +glabel __osContRamRead_sub +/* 0172F4 700166F4 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0172F8 700166F8 3C0E8006 */ lui $t6, %hi(__osPfsPifRam) +/* 0172FC 700166FC 25CE7D70 */ addiu $t6, %lo(__osPfsPifRam) # addiu $t6, $t6, 0x7d70 +/* 017300 70016700 AFBF0014 */ sw $ra, 0x14($sp) +/* 017304 70016704 AFA40048 */ sw $a0, 0x48($sp) +/* 017308 70016708 AFA5004C */ sw $a1, 0x4c($sp) +/* 01730C 7001670C AFAE0044 */ sw $t6, 0x44($sp) +/* 017310 70016710 AFA00018 */ sw $zero, 0x18($sp) +.L70016714: +/* 017314 70016714 8FAF0018 */ lw $t7, 0x18($sp) +/* 017318 70016718 8FB90018 */ lw $t9, 0x18($sp) +/* 01731C 7001671C 3C018006 */ lui $at, %hi(__osPfsPifRam) +/* 017320 70016720 000FC080 */ sll $t8, $t7, 2 +/* 017324 70016724 00380821 */ addu $at, $at, $t8 +/* 017328 70016728 AC207D70 */ sw $zero, %lo(__osPfsPifRam)($at) +/* 01732C 7001672C 27280001 */ addiu $t0, $t9, 1 +/* 017330 70016730 29010010 */ slti $at, $t0, 0x10 +/* 017334 70016734 1420FFF7 */ bnez $at, .L70016714 +/* 017338 70016738 AFA80018 */ sw $t0, 0x18($sp) +/* 01733C 7001673C 24090001 */ li $t1, 1 +/* 017340 70016740 3C018006 */ lui $at, %hi(__osPfsPifRam+0x3c) +/* 017344 70016744 240A00FF */ li $t2, 255 +/* 017348 70016748 240B0003 */ li $t3, 3 +/* 01734C 7001674C 240C0021 */ li $t4, 33 +/* 017350 70016750 240D0002 */ li $t5, 2 +/* 017354 70016754 AC297DAC */ sw $t1, %lo(__osPfsPifRam+0x3c)($at) +/* 017358 70016758 A3AA001C */ sb $t2, 0x1c($sp) +/* 01735C 7001675C A3AB001D */ sb $t3, 0x1d($sp) +/* 017360 70016760 A3AC001E */ sb $t4, 0x1e($sp) +/* 017364 70016764 A3AD001F */ sb $t5, 0x1f($sp) +/* 017368 70016768 0C0057E0 */ jal __osContAddressCrc +/* 01736C 7001676C 97A4004E */ lhu $a0, 0x4e($sp) +/* 017370 70016770 97AE004E */ lhu $t6, 0x4e($sp) +/* 017374 70016774 241900FF */ li $t9, 255 +/* 017378 70016778 A3B90042 */ sb $t9, 0x42($sp) +/* 01737C 7001677C 000E7940 */ sll $t7, $t6, 5 +/* 017380 70016780 004FC025 */ or $t8, $v0, $t7 +/* 017384 70016784 A7B80020 */ sh $t8, 0x20($sp) +/* 017388 70016788 AFA00018 */ sw $zero, 0x18($sp) +.L7001678C: +/* 01738C 7001678C 8FA90018 */ lw $t1, 0x18($sp) +/* 017390 70016790 240800FF */ li $t0, 255 +/* 017394 70016794 03A95021 */ addu $t2, $sp, $t1 +/* 017398 70016798 A1480022 */ sb $t0, 0x22($t2) +/* 01739C 7001679C 8FAB0018 */ lw $t3, 0x18($sp) +/* 0173A0 700167A0 256C0001 */ addiu $t4, $t3, 1 +/* 0173A4 700167A4 29810020 */ slti $at, $t4, 0x20 +/* 0173A8 700167A8 1420FFF8 */ bnez $at, .L7001678C +/* 0173AC 700167AC AFAC0018 */ sw $t4, 0x18($sp) +/* 0173B0 700167B0 8FAD0048 */ lw $t5, 0x48($sp) +/* 0173B4 700167B4 11A0000E */ beqz $t5, .L700167F0 +/* 0173B8 700167B8 00000000 */ nop +/* 0173BC 700167BC 19A0000C */ blez $t5, .L700167F0 +/* 0173C0 700167C0 AFA00018 */ sw $zero, 0x18($sp) +.L700167C4: +/* 0173C4 700167C4 8FAE0044 */ lw $t6, 0x44($sp) +/* 0173C8 700167C8 A1C00000 */ sb $zero, ($t6) +/* 0173CC 700167CC 8FB90018 */ lw $t9, 0x18($sp) +/* 0173D0 700167D0 8FA90048 */ lw $t1, 0x48($sp) +/* 0173D4 700167D4 8FAF0044 */ lw $t7, 0x44($sp) +/* 0173D8 700167D8 27280001 */ addiu $t0, $t9, 1 +/* 0173DC 700167DC 0109082A */ slt $at, $t0, $t1 +/* 0173E0 700167E0 25F80001 */ addiu $t8, $t7, 1 +/* 0173E4 700167E4 AFA80018 */ sw $t0, 0x18($sp) +/* 0173E8 700167E8 1420FFF6 */ bnez $at, .L700167C4 +/* 0173EC 700167EC AFB80044 */ sw $t8, 0x44($sp) +.L700167F0: +/* 0173F0 700167F0 27AB001C */ addiu $t3, $sp, 0x1c +/* 0173F4 700167F4 256D0024 */ addiu $t5, $t3, 0x24 +/* 0173F8 700167F8 8FAA0044 */ lw $t2, 0x44($sp) +.L700167FC: +/* 0173FC 700167FC 8D610000 */ lw $at, ($t3) +/* 017400 70016800 256B000C */ addiu $t3, $t3, 0xc +/* 017404 70016804 254A000C */ addiu $t2, $t2, 0xc +/* 017408 70016808 A941FFF4 */ swl $at, -0xc($t2) +/* 01740C 7001680C B941FFF7 */ swr $at, -9($t2) +/* 017410 70016810 8D61FFF8 */ lw $at, -8($t3) +/* 017414 70016814 A941FFF8 */ swl $at, -8($t2) +/* 017418 70016818 B941FFFB */ swr $at, -5($t2) +/* 01741C 7001681C 8D61FFFC */ lw $at, -4($t3) +/* 017420 70016820 A941FFFC */ swl $at, -4($t2) +/* 017424 70016824 156DFFF5 */ bne $t3, $t5, .L700167FC +/* 017428 70016828 B941FFFF */ swr $at, -1($t2) +/* 01742C 7001682C 8D610000 */ lw $at, ($t3) +/* 017430 70016830 241800FE */ li $t8, 254 +/* 017434 70016834 A9410000 */ swl $at, ($t2) +/* 017438 70016838 B9410003 */ swr $at, 3($t2) +/* 01743C 7001683C 8FAE0044 */ lw $t6, 0x44($sp) +/* 017440 70016840 25CF0028 */ addiu $t7, $t6, 0x28 +/* 017444 70016844 AFAF0044 */ sw $t7, 0x44($sp) +/* 017448 70016848 A1F80000 */ sb $t8, ($t7) +/* 01744C 7001684C 8FBF0014 */ lw $ra, 0x14($sp) +/* 017450 70016850 27BD0048 */ addiu $sp, $sp, 0x48 +/* 017454 70016854 03E00008 */ jr $ra +/* 017458 70016858 00000000 */ nop + diff --git a/src/libultra/contramwrite.s b/src/libultra/contramwrite.s new file mode 100644 index 0000000..e3bc2d8 --- /dev/null +++ b/src/libultra/contramwrite.s @@ -0,0 +1,267 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osContRamWrite +/* 016D00 70016100 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 016D04 70016104 8FB80070 */ lw $t8, 0x70($sp) +/* 016D08 70016108 3C0E8006 */ lui $t6, %hi(__osPfsPifRam) +/* 016D0C 7001610C 25CE7D70 */ addiu $t6, %lo(__osPfsPifRam) # addiu $t6, $t6, 0x7d70 +/* 016D10 70016110 240F0002 */ li $t7, 2 +/* 016D14 70016114 24010001 */ li $at, 1 +/* 016D18 70016118 AFBF001C */ sw $ra, 0x1c($sp) +/* 016D1C 7001611C AFA40060 */ sw $a0, 0x60($sp) +/* 016D20 70016120 AFA50064 */ sw $a1, 0x64($sp) +/* 016D24 70016124 AFA60068 */ sw $a2, 0x68($sp) +/* 016D28 70016128 AFA7006C */ sw $a3, 0x6c($sp) +/* 016D2C 7001612C AFB00018 */ sw $s0, 0x18($sp) +/* 016D30 70016130 AFA0005C */ sw $zero, 0x5c($sp) +/* 016D34 70016134 AFAE0054 */ sw $t6, 0x54($sp) +/* 016D38 70016138 13010009 */ beq $t8, $at, .L70016160 +/* 016D3C 7001613C AFAF0028 */ sw $t7, 0x28($sp) +/* 016D40 70016140 97B9006A */ lhu $t9, 0x6a($sp) +/* 016D44 70016144 2B210007 */ slti $at, $t9, 7 +/* 016D48 70016148 10200005 */ beqz $at, .L70016160 +/* 016D4C 7001614C 00000000 */ nop +/* 016D50 70016150 13200003 */ beqz $t9, .L70016160 +/* 016D54 70016154 00000000 */ nop +/* 016D58 70016158 10000070 */ b .L7001631C +/* 016D5C 7001615C 00001025 */ move $v0, $zero +.L70016160: +/* 016D60 70016160 0C005798 */ jal __osSiGetAccess +/* 016D64 70016164 00000000 */ nop +/* 016D68 70016168 24080003 */ li $t0, 3 +/* 016D6C 7001616C 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 016D70 70016170 A0287CE0 */ sb $t0, %lo(__osContLastCmd)($at) +/* 016D74 70016174 8FA40064 */ lw $a0, 0x64($sp) +/* 016D78 70016178 97A5006A */ lhu $a1, 0x6a($sp) +/* 016D7C 7001617C 0C0058CC */ jal __osContRamWrite_sub +/* 016D80 70016180 8FA6006C */ lw $a2, 0x6c($sp) +/* 016D84 70016184 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 016D88 70016188 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 016D8C 7001618C 0C0057B4 */ jal __osSiRawStartDma +/* 016D90 70016190 24040001 */ li $a0, 1 +/* 016D94 70016194 AFA2005C */ sw $v0, 0x5c($sp) +/* 016D98 70016198 8FA40060 */ lw $a0, 0x60($sp) +/* 016D9C 7001619C 00002825 */ move $a1, $zero +/* 016DA0 700161A0 0C003774 */ jal osRecvMesg +/* 016DA4 700161A4 24060001 */ li $a2, 1 +.L700161A8: +/* 016DA8 700161A8 AFA00058 */ sw $zero, 0x58($sp) +.L700161AC: +/* 016DAC 700161AC 8FAA0058 */ lw $t2, 0x58($sp) +/* 016DB0 700161B0 8FAC0058 */ lw $t4, 0x58($sp) +/* 016DB4 700161B4 3C018006 */ lui $at, %hi(__osPfsPifRam) +/* 016DB8 700161B8 000A5880 */ sll $t3, $t2, 2 +/* 016DBC 700161BC 002B0821 */ addu $at, $at, $t3 +/* 016DC0 700161C0 240900FF */ li $t1, 255 +/* 016DC4 700161C4 AC297D70 */ sw $t1, %lo(__osPfsPifRam)($at) +/* 016DC8 700161C8 258D0001 */ addiu $t5, $t4, 1 +/* 016DCC 700161CC 29A10010 */ slti $at, $t5, 0x10 +/* 016DD0 700161D0 1420FFF6 */ bnez $at, .L700161AC +/* 016DD4 700161D4 AFAD0058 */ sw $t5, 0x58($sp) +/* 016DD8 700161D8 3C018006 */ lui $at, %hi(__osPfsPifRam+0x3c) +/* 016DDC 700161DC 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 016DE0 700161E0 AC207DAC */ sw $zero, %lo(__osPfsPifRam+0x3c)($at) +/* 016DE4 700161E4 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 016DE8 700161E8 0C0057B4 */ jal __osSiRawStartDma +/* 016DEC 700161EC 00002025 */ move $a0, $zero +/* 016DF0 700161F0 AFA2005C */ sw $v0, 0x5c($sp) +/* 016DF4 700161F4 8FA40060 */ lw $a0, 0x60($sp) +/* 016DF8 700161F8 00002825 */ move $a1, $zero +/* 016DFC 700161FC 0C003774 */ jal osRecvMesg +/* 016E00 70016200 24060001 */ li $a2, 1 +/* 016E04 70016204 8FAF0064 */ lw $t7, 0x64($sp) +/* 016E08 70016208 3C0E8006 */ lui $t6, %hi(__osPfsPifRam) +/* 016E0C 7001620C 25CE7D70 */ addiu $t6, %lo(__osPfsPifRam) # addiu $t6, $t6, 0x7d70 +/* 016E10 70016210 11E0000C */ beqz $t7, .L70016244 +/* 016E14 70016214 AFAE0054 */ sw $t6, 0x54($sp) +/* 016E18 70016218 19E0000A */ blez $t7, .L70016244 +/* 016E1C 7001621C AFA00058 */ sw $zero, 0x58($sp) +.L70016220: +/* 016E20 70016220 8FA80058 */ lw $t0, 0x58($sp) +/* 016E24 70016224 8FA90064 */ lw $t1, 0x64($sp) +/* 016E28 70016228 8FB80054 */ lw $t8, 0x54($sp) +/* 016E2C 7001622C 250A0001 */ addiu $t2, $t0, 1 +/* 016E30 70016230 0149082A */ slt $at, $t2, $t1 +/* 016E34 70016234 27190001 */ addiu $t9, $t8, 1 +/* 016E38 70016238 AFAA0058 */ sw $t2, 0x58($sp) +/* 016E3C 7001623C 1420FFF8 */ bnez $at, .L70016220 +/* 016E40 70016240 AFB90054 */ sw $t9, 0x54($sp) +.L70016244: +/* 016E44 70016244 8FAC0054 */ lw $t4, 0x54($sp) +/* 016E48 70016248 27AB002C */ addiu $t3, $sp, 0x2c +/* 016E4C 7001624C 258E0024 */ addiu $t6, $t4, 0x24 +.L70016250: +/* 016E50 70016250 89810000 */ lwl $at, ($t4) +/* 016E54 70016254 99810003 */ lwr $at, 3($t4) +/* 016E58 70016258 258C000C */ addiu $t4, $t4, 0xc +/* 016E5C 7001625C 256B000C */ addiu $t3, $t3, 0xc +/* 016E60 70016260 AD61FFF4 */ sw $at, -0xc($t3) +/* 016E64 70016264 8981FFF8 */ lwl $at, -8($t4) +/* 016E68 70016268 9981FFFB */ lwr $at, -5($t4) +/* 016E6C 7001626C AD61FFF8 */ sw $at, -8($t3) +/* 016E70 70016270 8981FFFC */ lwl $at, -4($t4) +/* 016E74 70016274 9981FFFF */ lwr $at, -1($t4) +/* 016E78 70016278 158EFFF5 */ bne $t4, $t6, .L70016250 +/* 016E7C 7001627C AD61FFFC */ sw $at, -4($t3) +/* 016E80 70016280 89810000 */ lwl $at, ($t4) +/* 016E84 70016284 99810003 */ lwr $at, 3($t4) +/* 016E88 70016288 AD610000 */ sw $at, ($t3) +/* 016E8C 7001628C 93AF002E */ lbu $t7, 0x2e($sp) +/* 016E90 70016290 31F800C0 */ andi $t8, $t7, 0xc0 +/* 016E94 70016294 0018C903 */ sra $t9, $t8, 4 +/* 016E98 70016298 17200013 */ bnez $t9, .L700162E8 +/* 016E9C 7001629C AFB9005C */ sw $t9, 0x5c($sp) +/* 016EA0 700162A0 0C00580C */ jal __osContDataCrc +/* 016EA4 700162A4 8FA4006C */ lw $a0, 0x6c($sp) +/* 016EA8 700162A8 93A80052 */ lbu $t0, 0x52($sp) +/* 016EAC 700162AC 1048000E */ beq $v0, $t0, .L700162E8 +/* 016EB0 700162B0 00000000 */ nop +/* 016EB4 700162B4 8FA40060 */ lw $a0, 0x60($sp) +/* 016EB8 700162B8 0C0051FD */ jal __osPfsGetStatus +/* 016EBC 700162BC 8FA50064 */ lw $a1, 0x64($sp) +/* 016EC0 700162C0 AFA2005C */ sw $v0, 0x5c($sp) +/* 016EC4 700162C4 8FAA005C */ lw $t2, 0x5c($sp) +/* 016EC8 700162C8 11400005 */ beqz $t2, .L700162E0 +/* 016ECC 700162CC 00000000 */ nop +/* 016ED0 700162D0 0C0057A9 */ jal __osSiRelAccess +/* 016ED4 700162D4 00000000 */ nop +/* 016ED8 700162D8 10000010 */ b .L7001631C +/* 016EDC 700162DC 8FA2005C */ lw $v0, 0x5c($sp) +.L700162E0: +/* 016EE0 700162E0 24090004 */ li $t1, 4 +/* 016EE4 700162E4 AFA9005C */ sw $t1, 0x5c($sp) +.L700162E8: +/* 016EE8 700162E8 8FAD005C */ lw $t5, 0x5c($sp) +/* 016EEC 700162EC 24010004 */ li $at, 4 +/* 016EF0 700162F0 15A10007 */ bne $t5, $at, .L70016310 +/* 016EF4 700162F4 00000000 */ nop +/* 016EF8 700162F8 8FAE0028 */ lw $t6, 0x28($sp) +/* 016EFC 700162FC 29D00000 */ slti $s0, $t6, 0 +/* 016F00 70016300 3A100001 */ xori $s0, $s0, 1 +/* 016F04 70016304 25CCFFFF */ addiu $t4, $t6, -1 +/* 016F08 70016308 1600FFA7 */ bnez $s0, .L700161A8 +/* 016F0C 7001630C AFAC0028 */ sw $t4, 0x28($sp) +.L70016310: +/* 016F10 70016310 0C0057A9 */ jal __osSiRelAccess +/* 016F14 70016314 00000000 */ nop +/* 016F18 70016318 8FA2005C */ lw $v0, 0x5c($sp) +.L7001631C: +/* 016F1C 7001631C 8FBF001C */ lw $ra, 0x1c($sp) +/* 016F20 70016320 8FB00018 */ lw $s0, 0x18($sp) +/* 016F24 70016324 27BD0060 */ addiu $sp, $sp, 0x60 +/* 016F28 70016328 03E00008 */ jr $ra +/* 016F2C 7001632C 00000000 */ nop + +glabel __osContRamWrite_sub +/* 016F30 70016330 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 016F34 70016334 3C0E8006 */ lui $t6, %hi(__osPfsPifRam) +/* 016F38 70016338 25CE7D70 */ addiu $t6, %lo(__osPfsPifRam) # addiu $t6, $t6, 0x7d70 +/* 016F3C 7001633C AFBF0014 */ sw $ra, 0x14($sp) +/* 016F40 70016340 AFA40048 */ sw $a0, 0x48($sp) +/* 016F44 70016344 AFA5004C */ sw $a1, 0x4c($sp) +/* 016F48 70016348 AFA60050 */ sw $a2, 0x50($sp) +/* 016F4C 7001634C AFAE0044 */ sw $t6, 0x44($sp) +/* 016F50 70016350 AFA00018 */ sw $zero, 0x18($sp) +.L70016354: +/* 016F54 70016354 8FAF0018 */ lw $t7, 0x18($sp) +/* 016F58 70016358 8FB90018 */ lw $t9, 0x18($sp) +/* 016F5C 7001635C 3C018006 */ lui $at, %hi(__osPfsPifRam) +/* 016F60 70016360 000FC080 */ sll $t8, $t7, 2 +/* 016F64 70016364 00380821 */ addu $at, $at, $t8 +/* 016F68 70016368 AC207D70 */ sw $zero, %lo(__osPfsPifRam)($at) +/* 016F6C 7001636C 27280001 */ addiu $t0, $t9, 1 +/* 016F70 70016370 29010010 */ slti $at, $t0, 0x10 +/* 016F74 70016374 1420FFF7 */ bnez $at, .L70016354 +/* 016F78 70016378 AFA80018 */ sw $t0, 0x18($sp) +/* 016F7C 7001637C 24090001 */ li $t1, 1 +/* 016F80 70016380 3C018006 */ lui $at, %hi(__osPfsPifRam+0x3c) +/* 016F84 70016384 240A00FF */ li $t2, 255 +/* 016F88 70016388 240B0023 */ li $t3, 35 +/* 016F8C 7001638C 240C0001 */ li $t4, 1 +/* 016F90 70016390 240D0003 */ li $t5, 3 +/* 016F94 70016394 AC297DAC */ sw $t1, %lo(__osPfsPifRam+0x3c)($at) +/* 016F98 70016398 A3AA001C */ sb $t2, 0x1c($sp) +/* 016F9C 7001639C A3AB001D */ sb $t3, 0x1d($sp) +/* 016FA0 700163A0 A3AC001E */ sb $t4, 0x1e($sp) +/* 016FA4 700163A4 A3AD001F */ sb $t5, 0x1f($sp) +/* 016FA8 700163A8 0C0057E0 */ jal __osContAddressCrc +/* 016FAC 700163AC 97A4004E */ lhu $a0, 0x4e($sp) +/* 016FB0 700163B0 97AE004E */ lhu $t6, 0x4e($sp) +/* 016FB4 700163B4 241900FF */ li $t9, 255 +/* 016FB8 700163B8 A3B90042 */ sb $t9, 0x42($sp) +/* 016FBC 700163BC 000E7940 */ sll $t7, $t6, 5 +/* 016FC0 700163C0 004FC025 */ or $t8, $v0, $t7 +/* 016FC4 700163C4 A7B80020 */ sh $t8, 0x20($sp) +/* 016FC8 700163C8 AFA00018 */ sw $zero, 0x18($sp) +.L700163CC: +/* 016FCC 700163CC 8FA80050 */ lw $t0, 0x50($sp) +/* 016FD0 700163D0 8FAA0018 */ lw $t2, 0x18($sp) +/* 016FD4 700163D4 91090000 */ lbu $t1, ($t0) +/* 016FD8 700163D8 03AA5821 */ addu $t3, $sp, $t2 +/* 016FDC 700163DC A1690022 */ sb $t1, 0x22($t3) +/* 016FE0 700163E0 8FAE0018 */ lw $t6, 0x18($sp) +/* 016FE4 700163E4 8FAC0050 */ lw $t4, 0x50($sp) +/* 016FE8 700163E8 25CF0001 */ addiu $t7, $t6, 1 +/* 016FEC 700163EC 29E10020 */ slti $at, $t7, 0x20 +/* 016FF0 700163F0 258D0001 */ addiu $t5, $t4, 1 +/* 016FF4 700163F4 AFAF0018 */ sw $t7, 0x18($sp) +/* 016FF8 700163F8 1420FFF4 */ bnez $at, .L700163CC +/* 016FFC 700163FC AFAD0050 */ sw $t5, 0x50($sp) +/* 017000 70016400 8FB80048 */ lw $t8, 0x48($sp) +/* 017004 70016404 1300000E */ beqz $t8, .L70016440 +/* 017008 70016408 00000000 */ nop +/* 01700C 7001640C 1B00000C */ blez $t8, .L70016440 +/* 017010 70016410 AFA00018 */ sw $zero, 0x18($sp) +.L70016414: +/* 017014 70016414 8FB90044 */ lw $t9, 0x44($sp) +/* 017018 70016418 A3200000 */ sb $zero, ($t9) +/* 01701C 7001641C 8FAA0018 */ lw $t2, 0x18($sp) +/* 017020 70016420 8FAC0048 */ lw $t4, 0x48($sp) +/* 017024 70016424 8FA80044 */ lw $t0, 0x44($sp) +/* 017028 70016428 254B0001 */ addiu $t3, $t2, 1 +/* 01702C 7001642C 016C082A */ slt $at, $t3, $t4 +/* 017030 70016430 25090001 */ addiu $t1, $t0, 1 +/* 017034 70016434 AFAB0018 */ sw $t3, 0x18($sp) +/* 017038 70016438 1420FFF6 */ bnez $at, .L70016414 +/* 01703C 7001643C AFA90044 */ sw $t1, 0x44($sp) +.L70016440: +/* 017040 70016440 27AE001C */ addiu $t6, $sp, 0x1c +/* 017044 70016444 25D80024 */ addiu $t8, $t6, 0x24 +/* 017048 70016448 8FAD0044 */ lw $t5, 0x44($sp) +.L7001644C: +/* 01704C 7001644C 8DC10000 */ lw $at, ($t6) +/* 017050 70016450 25CE000C */ addiu $t6, $t6, 0xc +/* 017054 70016454 25AD000C */ addiu $t5, $t5, 0xc +/* 017058 70016458 A9A1FFF4 */ swl $at, -0xc($t5) +/* 01705C 7001645C B9A1FFF7 */ swr $at, -9($t5) +/* 017060 70016460 8DC1FFF8 */ lw $at, -8($t6) +/* 017064 70016464 A9A1FFF8 */ swl $at, -8($t5) +/* 017068 70016468 B9A1FFFB */ swr $at, -5($t5) +/* 01706C 7001646C 8DC1FFFC */ lw $at, -4($t6) +/* 017070 70016470 A9A1FFFC */ swl $at, -4($t5) +/* 017074 70016474 15D8FFF5 */ bne $t6, $t8, .L7001644C +/* 017078 70016478 B9A1FFFF */ swr $at, -1($t5) +/* 01707C 7001647C 8DC10000 */ lw $at, ($t6) +/* 017080 70016480 240900FE */ li $t1, 254 +/* 017084 70016484 A9A10000 */ swl $at, ($t5) +/* 017088 70016488 B9A10003 */ swr $at, 3($t5) +/* 01708C 7001648C 8FB90044 */ lw $t9, 0x44($sp) +/* 017090 70016490 27280028 */ addiu $t0, $t9, 0x28 +/* 017094 70016494 AFA80044 */ sw $t0, 0x44($sp) +/* 017098 70016498 A1090000 */ sb $t1, ($t0) +/* 01709C 7001649C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0170A0 700164A0 27BD0048 */ addiu $sp, $sp, 0x48 +/* 0170A4 700164A4 03E00008 */ jr $ra +/* 0170A8 700164A8 00000000 */ nop + diff --git a/src/libultra/contreaddata.s b/src/libultra/contreaddata.s new file mode 100644 index 0000000..86ccf79 --- /dev/null +++ b/src/libultra/contreaddata.s @@ -0,0 +1,180 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osContStartReadData +/* 015970 70014D70 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 015974 70014D74 AFBF0014 */ sw $ra, 0x14($sp) +/* 015978 70014D78 AFA40020 */ sw $a0, 0x20($sp) +/* 01597C 70014D7C 0C005798 */ jal __osSiGetAccess +/* 015980 70014D80 AFA0001C */ sw $zero, 0x1c($sp) +/* 015984 70014D84 3C0E8006 */ lui $t6, %hi(__osContLastCmd) +/* 015988 70014D88 91CE7CE0 */ lbu $t6, %lo(__osContLastCmd)($t6) +/* 01598C 70014D8C 24010001 */ li $at, 1 +/* 015990 70014D90 11C1000C */ beq $t6, $at, .L70014DC4 +/* 015994 70014D94 00000000 */ nop +/* 015998 70014D98 0C0053B7 */ jal osContReadData_sub +/* 01599C 70014D9C 00000000 */ nop +/* 0159A0 70014DA0 3C058006 */ lui $a1, %hi(__osContPifRam) +/* 0159A4 70014DA4 24A57CA0 */ addiu $a1, %lo(__osContPifRam) # addiu $a1, $a1, 0x7ca0 +/* 0159A8 70014DA8 0C0057B4 */ jal __osSiRawStartDma +/* 0159AC 70014DAC 24040001 */ li $a0, 1 +/* 0159B0 70014DB0 AFA2001C */ sw $v0, 0x1c($sp) +/* 0159B4 70014DB4 8FA40020 */ lw $a0, 0x20($sp) +/* 0159B8 70014DB8 00002825 */ move $a1, $zero +/* 0159BC 70014DBC 0C003774 */ jal osRecvMesg +/* 0159C0 70014DC0 24060001 */ li $a2, 1 +.L70014DC4: +/* 0159C4 70014DC4 AFA00018 */ sw $zero, 0x18($sp) +.L70014DC8: +/* 0159C8 70014DC8 8FB80018 */ lw $t8, 0x18($sp) +/* 0159CC 70014DCC 8FA80018 */ lw $t0, 0x18($sp) +/* 0159D0 70014DD0 3C018006 */ lui $at, %hi(__osContPifRam) +/* 0159D4 70014DD4 0018C880 */ sll $t9, $t8, 2 +/* 0159D8 70014DD8 00390821 */ addu $at, $at, $t9 +/* 0159DC 70014DDC 240F00FF */ li $t7, 255 +/* 0159E0 70014DE0 AC2F7CA0 */ sw $t7, %lo(__osContPifRam)($at) +/* 0159E4 70014DE4 25090001 */ addiu $t1, $t0, 1 +/* 0159E8 70014DE8 29210010 */ slti $at, $t1, 0x10 +/* 0159EC 70014DEC 1420FFF6 */ bnez $at, .L70014DC8 +/* 0159F0 70014DF0 AFA90018 */ sw $t1, 0x18($sp) +/* 0159F4 70014DF4 3C018006 */ lui $at, %hi(__osContPifRam+0x3c) +/* 0159F8 70014DF8 3C058006 */ lui $a1, %hi(__osContPifRam) +/* 0159FC 70014DFC AC207CDC */ sw $zero, %lo(__osContPifRam+0x3c)($at) +/* 015A00 70014E00 24A57CA0 */ addiu $a1, %lo(__osContPifRam) # addiu $a1, $a1, 0x7ca0 +/* 015A04 70014E04 0C0057B4 */ jal __osSiRawStartDma +/* 015A08 70014E08 00002025 */ move $a0, $zero +/* 015A0C 70014E0C 240A0001 */ li $t2, 1 +/* 015A10 70014E10 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 015A14 70014E14 AFA2001C */ sw $v0, 0x1c($sp) +/* 015A18 70014E18 0C0057A9 */ jal __osSiRelAccess +/* 015A1C 70014E1C A02A7CE0 */ sb $t2, %lo(__osContLastCmd)($at) +/* 015A20 70014E20 8FBF0014 */ lw $ra, 0x14($sp) +/* 015A24 70014E24 8FA2001C */ lw $v0, 0x1c($sp) +/* 015A28 70014E28 27BD0020 */ addiu $sp, $sp, 0x20 +/* 015A2C 70014E2C 03E00008 */ jr $ra +/* 015A30 70014E30 00000000 */ nop + +glabel osContGetReadData +/* 015A34 70014E34 3C0F8006 */ lui $t7, %hi(__osMaxControllers) +/* 015A38 70014E38 91EF7CE1 */ lbu $t7, %lo(__osMaxControllers)($t7) +/* 015A3C 70014E3C 3C0E8006 */ lui $t6, %hi(__osContPifRam) +/* 015A40 70014E40 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 015A44 70014E44 25CE7CA0 */ addiu $t6, %lo(__osContPifRam) # addiu $t6, $t6, 0x7ca0 +/* 015A48 70014E48 AFAE000C */ sw $t6, 0xc($sp) +/* 015A4C 70014E4C 19E00021 */ blez $t7, .L70014ED4 +/* 015A50 70014E50 AFA00000 */ sw $zero, ($sp) +.L70014E54: +/* 015A54 70014E54 8FB9000C */ lw $t9, 0xc($sp) +/* 015A58 70014E58 27B80004 */ addiu $t8, $sp, 4 +/* 015A5C 70014E5C 8B210000 */ lwl $at, ($t9) +/* 015A60 70014E60 9B210003 */ lwr $at, 3($t9) +/* 015A64 70014E64 AF010000 */ sw $at, ($t8) +/* 015A68 70014E68 8B290004 */ lwl $t1, 4($t9) +/* 015A6C 70014E6C 9B290007 */ lwr $t1, 7($t9) +/* 015A70 70014E70 AF090004 */ sw $t1, 4($t8) +/* 015A74 70014E74 93AA0006 */ lbu $t2, 6($sp) +/* 015A78 70014E78 314B00C0 */ andi $t3, $t2, 0xc0 +/* 015A7C 70014E7C 000B6103 */ sra $t4, $t3, 4 +/* 015A80 70014E80 A08C0004 */ sb $t4, 4($a0) +/* 015A84 70014E84 908D0004 */ lbu $t5, 4($a0) +/* 015A88 70014E88 15A00007 */ bnez $t5, .L70014EA8 +/* 015A8C 70014E8C 00000000 */ nop +/* 015A90 70014E90 97AE0008 */ lhu $t6, 8($sp) +/* 015A94 70014E94 A48E0000 */ sh $t6, ($a0) +/* 015A98 70014E98 83AF000A */ lb $t7, 0xa($sp) +/* 015A9C 70014E9C A08F0002 */ sb $t7, 2($a0) +/* 015AA0 70014EA0 83A8000B */ lb $t0, 0xb($sp) +/* 015AA4 70014EA4 A0880003 */ sb $t0, 3($a0) +.L70014EA8: +/* 015AA8 70014EA8 8FB80000 */ lw $t8, ($sp) +/* 015AAC 70014EAC 3C0B8006 */ lui $t3, %hi(__osMaxControllers) +/* 015AB0 70014EB0 916B7CE1 */ lbu $t3, %lo(__osMaxControllers)($t3) +/* 015AB4 70014EB4 8FA9000C */ lw $t1, 0xc($sp) +/* 015AB8 70014EB8 27190001 */ addiu $t9, $t8, 1 +/* 015ABC 70014EBC 032B082A */ slt $at, $t9, $t3 +/* 015AC0 70014EC0 252A0008 */ addiu $t2, $t1, 8 +/* 015AC4 70014EC4 AFAA000C */ sw $t2, 0xc($sp) +/* 015AC8 70014EC8 AFB90000 */ sw $t9, ($sp) +/* 015ACC 70014ECC 1420FFE1 */ bnez $at, .L70014E54 +/* 015AD0 70014ED0 24840006 */ addiu $a0, $a0, 6 +.L70014ED4: +/* 015AD4 70014ED4 03E00008 */ jr $ra +/* 015AD8 70014ED8 27BD0010 */ addiu $sp, $sp, 0x10 + +glabel osContReadData_sub +/* 015ADC 70014EDC 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 015AE0 70014EE0 3C0E8006 */ lui $t6, %hi(__osContPifRam) +/* 015AE4 70014EE4 25CE7CA0 */ addiu $t6, %lo(__osContPifRam) # addiu $t6, $t6, 0x7ca0 +/* 015AE8 70014EE8 AFAE000C */ sw $t6, 0xc($sp) +/* 015AEC 70014EEC AFA00000 */ sw $zero, ($sp) +.L70014EF0: +/* 015AF0 70014EF0 8FAF0000 */ lw $t7, ($sp) +/* 015AF4 70014EF4 8FB90000 */ lw $t9, ($sp) +/* 015AF8 70014EF8 3C018006 */ lui $at, %hi(__osContPifRam) +/* 015AFC 70014EFC 000FC080 */ sll $t8, $t7, 2 +/* 015B00 70014F00 00380821 */ addu $at, $at, $t8 +/* 015B04 70014F04 AC207CA0 */ sw $zero, %lo(__osContPifRam)($at) +/* 015B08 70014F08 27280001 */ addiu $t0, $t9, 1 +/* 015B0C 70014F0C 29010010 */ slti $at, $t0, 0x10 +/* 015B10 70014F10 1420FFF7 */ bnez $at, .L70014EF0 +/* 015B14 70014F14 AFA80000 */ sw $t0, ($sp) +/* 015B18 70014F18 3C198006 */ lui $t9, %hi(__osMaxControllers) +/* 015B1C 70014F1C 93397CE1 */ lbu $t9, %lo(__osMaxControllers)($t9) +/* 015B20 70014F20 24090001 */ li $t1, 1 +/* 015B24 70014F24 3C018006 */ lui $at, %hi(__osContPifRam+0x3c) +/* 015B28 70014F28 240A00FF */ li $t2, 255 +/* 015B2C 70014F2C 240B0001 */ li $t3, 1 +/* 015B30 70014F30 240C0004 */ li $t4, 4 +/* 015B34 70014F34 240D0001 */ li $t5, 1 +/* 015B38 70014F38 340EFFFF */ li $t6, 65535 +/* 015B3C 70014F3C 240FFFFF */ li $t7, -1 +/* 015B40 70014F40 2418FFFF */ li $t8, -1 +/* 015B44 70014F44 AC297CDC */ sw $t1, %lo(__osContPifRam+0x3c)($at) +/* 015B48 70014F48 A3AA0004 */ sb $t2, 4($sp) +/* 015B4C 70014F4C A3AB0005 */ sb $t3, 5($sp) +/* 015B50 70014F50 A3AC0006 */ sb $t4, 6($sp) +/* 015B54 70014F54 A3AD0007 */ sb $t5, 7($sp) +/* 015B58 70014F58 A7AE0008 */ sh $t6, 8($sp) +/* 015B5C 70014F5C A3AF000A */ sb $t7, 0xa($sp) +/* 015B60 70014F60 A3B8000B */ sb $t8, 0xb($sp) +/* 015B64 70014F64 1B200013 */ blez $t9, .L70014FB4 +/* 015B68 70014F68 AFA00000 */ sw $zero, ($sp) +.L70014F6C: +/* 015B6C 70014F6C 27A90004 */ addiu $t1, $sp, 4 +/* 015B70 70014F70 8D210000 */ lw $at, ($t1) +/* 015B74 70014F74 8FA8000C */ lw $t0, 0xc($sp) +/* 015B78 70014F78 3C188006 */ lui $t8, %hi(__osMaxControllers) +/* 015B7C 70014F7C A9010000 */ swl $at, ($t0) +/* 015B80 70014F80 B9010003 */ swr $at, 3($t0) +/* 015B84 70014F84 8D2B0004 */ lw $t3, 4($t1) +/* 015B88 70014F88 A90B0004 */ swl $t3, 4($t0) +/* 015B8C 70014F8C B90B0007 */ swr $t3, 7($t0) +/* 015B90 70014F90 8FAE0000 */ lw $t6, ($sp) +/* 015B94 70014F94 93187CE1 */ lbu $t8, %lo(__osMaxControllers)($t8) +/* 015B98 70014F98 8FAC000C */ lw $t4, 0xc($sp) +/* 015B9C 70014F9C 25CF0001 */ addiu $t7, $t6, 1 +/* 015BA0 70014FA0 01F8082A */ slt $at, $t7, $t8 +/* 015BA4 70014FA4 258D0008 */ addiu $t5, $t4, 8 +/* 015BA8 70014FA8 AFAF0000 */ sw $t7, ($sp) +/* 015BAC 70014FAC 1420FFEF */ bnez $at, .L70014F6C +/* 015BB0 70014FB0 AFAD000C */ sw $t5, 0xc($sp) +.L70014FB4: +/* 015BB4 70014FB4 8FAA000C */ lw $t2, 0xc($sp) +/* 015BB8 70014FB8 241900FE */ li $t9, 254 +/* 015BBC 70014FBC 27BD0010 */ addiu $sp, $sp, 0x10 +/* 015BC0 70014FC0 03E00008 */ jr $ra +/* 015BC4 70014FC4 A1590000 */ sb $t9, ($t2) + + + + diff --git a/src/libultra/controller.s b/src/libultra/controller.s new file mode 100644 index 0000000..a20f465 --- /dev/null +++ b/src/libultra/controller.s @@ -0,0 +1,420 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osContInit +/* 015500 70014900 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 015504 70014904 3C0E8002 */ lui $t6, %hi(__osContinitialized) +/* 015508 70014908 8DCE77B0 */ lw $t6, %lo(__osContinitialized)($t6) +/* 01550C 7001490C AFBF0024 */ sw $ra, 0x24($sp) +/* 015510 70014910 AFA40080 */ sw $a0, 0x80($sp) +/* 015514 70014914 AFA50084 */ sw $a1, 0x84($sp) +/* 015518 70014918 AFA60088 */ sw $a2, 0x88($sp) +/* 01551C 7001491C 11C00003 */ beqz $t6, .L7001492C +/* 015520 70014920 AFA00078 */ sw $zero, 0x78($sp) +/* 015524 70014924 10000070 */ b .L70014AE8 +/* 015528 70014928 00001025 */ move $v0, $zero +.L7001492C: +/* 01552C 7001492C 240F0001 */ li $t7, 1 +/* 015530 70014930 3C018002 */ lui $at, %hi(__osContinitialized) +/* 015534 70014934 0C003AEC */ jal osGetTime +/* 015538 70014938 AC2F77B0 */ sw $t7, %lo(__osContinitialized)($at) +/* 01553C 7001493C 3C050007 */ lui $a1, (0x0007A120 >> 16) # lui $a1, 7 +/* 015540 70014940 3C068002 */ lui $a2, %hi(osClockRate) +/* 015544 70014944 3C078002 */ lui $a3, %hi(osClockRate+0x4) +/* 015548 70014948 AFA20070 */ sw $v0, 0x70($sp) +/* 01554C 7001494C AFA30074 */ sw $v1, 0x74($sp) +/* 015550 70014950 8CE76984 */ lw $a3, %lo(osClockRate+0x4)($a3) +/* 015554 70014954 8CC66980 */ lw $a2, %lo(osClockRate)($a2) +/* 015558 70014958 34A5A120 */ ori $a1, (0x0007A120 & 0xFFFF) # ori $a1, $a1, 0xa120 +/* 01555C 7001495C 0C003B6A */ jal __ll_mul +/* 015560 70014960 24040000 */ li $a0, 0 +/* 015564 70014964 AFA20030 */ sw $v0, 0x30($sp) +/* 015568 70014968 AFA30034 */ sw $v1, 0x34($sp) +/* 01556C 7001496C 3C07000F */ lui $a3, (0x000F4240 >> 16) # lui $a3, 0xf +/* 015570 70014970 34E74240 */ ori $a3, (0x000F4240 & 0xFFFF) # ori $a3, $a3, 0x4240 +/* 015574 70014974 8FA50034 */ lw $a1, 0x34($sp) +/* 015578 70014978 8FA40030 */ lw $a0, 0x30($sp) +/* 01557C 7001497C 0C003B2A */ jal __ull_div +/* 015580 70014980 24060000 */ li $a2, 0 +/* 015584 70014984 8FB80070 */ lw $t8, 0x70($sp) +/* 015588 70014988 8FB90074 */ lw $t9, 0x74($sp) +/* 01558C 7001498C 0058082B */ sltu $at, $v0, $t8 +/* 015590 70014990 14200031 */ bnez $at, .L70014A58 +/* 015594 70014994 0302082B */ sltu $at, $t8, $v0 +/* 015598 70014998 14200003 */ bnez $at, .L700149A8 +/* 01559C 7001499C 0323082B */ sltu $at, $t9, $v1 +/* 0155A0 700149A0 1020002D */ beqz $at, .L70014A58 +/* 0155A4 700149A4 00000000 */ nop +.L700149A8: +/* 0155A8 700149A8 27A40038 */ addiu $a0, $sp, 0x38 +/* 0155AC 700149AC 27A5007C */ addiu $a1, $sp, 0x7c +/* 0155B0 700149B0 0C0035B4 */ jal osCreateMesgQueue +/* 0155B4 700149B4 24060001 */ li $a2, 1 +/* 0155B8 700149B8 3C050007 */ lui $a1, (0x0007A120 >> 16) # lui $a1, 7 +/* 0155BC 700149BC 3C068002 */ lui $a2, %hi(osClockRate) +/* 0155C0 700149C0 3C078002 */ lui $a3, %hi(osClockRate+4) +/* 0155C4 700149C4 8CE76984 */ lw $a3, %lo(osClockRate+4)($a3) +/* 0155C8 700149C8 8CC66980 */ lw $a2, %lo(osClockRate)($a2) +/* 0155CC 700149CC 34A5A120 */ ori $a1, (0x0007A120 & 0xFFFF) # ori $a1, $a1, 0xa120 +/* 0155D0 700149D0 0C003B6A */ jal __ll_mul +/* 0155D4 700149D4 24040000 */ li $a0, 0 +/* 0155D8 700149D8 AFA20028 */ sw $v0, 0x28($sp) +/* 0155DC 700149DC AFA3002C */ sw $v1, 0x2c($sp) +/* 0155E0 700149E0 3C07000F */ lui $a3, (0x000F4240 >> 16) # lui $a3, 0xf +/* 0155E4 700149E4 34E74240 */ ori $a3, (0x000F4240 & 0xFFFF) # ori $a3, $a3, 0x4240 +/* 0155E8 700149E8 8FA5002C */ lw $a1, 0x2c($sp) +/* 0155EC 700149EC 8FA40028 */ lw $a0, 0x28($sp) +/* 0155F0 700149F0 0C003B2A */ jal __ull_div +/* 0155F4 700149F4 24060000 */ li $a2, 0 +/* 0155F8 700149F8 AFA20030 */ sw $v0, 0x30($sp) +/* 0155FC 700149FC AFA30034 */ sw $v1, 0x34($sp) +/* 015600 70014A00 8FA90034 */ lw $t1, 0x34($sp) +/* 015604 70014A04 8FA80030 */ lw $t0, 0x30($sp) +/* 015608 70014A08 8FAA0070 */ lw $t2, 0x70($sp) +/* 01560C 70014A0C 8FAB0074 */ lw $t3, 0x74($sp) +/* 015610 70014A10 240C0000 */ li $t4, 0 +/* 015614 70014A14 240D0000 */ li $t5, 0 +/* 015618 70014A18 27AE0038 */ addiu $t6, $sp, 0x38 +/* 01561C 70014A1C 27AF007C */ addiu $t7, $sp, 0x7c +/* 015620 70014A20 010A3023 */ subu $a2, $t0, $t2 +/* 015624 70014A24 012B082B */ sltu $at, $t1, $t3 +/* 015628 70014A28 00C13023 */ subu $a2, $a2, $at +/* 01562C 70014A2C AFAF001C */ sw $t7, 0x1c($sp) +/* 015630 70014A30 AFAE0018 */ sw $t6, 0x18($sp) +/* 015634 70014A34 AFAD0014 */ sw $t5, 0x14($sp) +/* 015638 70014A38 AFAC0010 */ sw $t4, 0x10($sp) +/* 01563C 70014A3C 27A40050 */ addiu $a0, $sp, 0x50 +/* 015640 70014A40 0C004314 */ jal osSetTimer +/* 015644 70014A44 012B3823 */ subu $a3, $t1, $t3 +/* 015648 70014A48 27A40038 */ addiu $a0, $sp, 0x38 +/* 01564C 70014A4C 27A5007C */ addiu $a1, $sp, 0x7c +/* 015650 70014A50 0C003774 */ jal osRecvMesg +/* 015654 70014A54 24060001 */ li $a2, 1 +.L70014A58: +/* 015658 70014A58 24180004 */ li $t8, 4 +/* 01565C 70014A5C 3C018006 */ lui $at, %hi(__osMaxControllers) +/* 015660 70014A60 A0387CE1 */ sb $t8, %lo(__osMaxControllers)($at) +/* 015664 70014A64 0C0052F2 */ jal __osPackRequestData +/* 015668 70014A68 00002025 */ move $a0, $zero +/* 01566C 70014A6C 3C058006 */ lui $a1, %hi(__osContPifRam) +/* 015670 70014A70 24A57CA0 */ addiu $a1, %lo(__osContPifRam) # addiu $a1, $a1, 0x7ca0 +/* 015674 70014A74 0C0057B4 */ jal __osSiRawStartDma +/* 015678 70014A78 24040001 */ li $a0, 1 +/* 01567C 70014A7C AFA20078 */ sw $v0, 0x78($sp) +/* 015680 70014A80 8FA40080 */ lw $a0, 0x80($sp) +/* 015684 70014A84 27A5007C */ addiu $a1, $sp, 0x7c +/* 015688 70014A88 0C003774 */ jal osRecvMesg +/* 01568C 70014A8C 24060001 */ li $a2, 1 +/* 015690 70014A90 3C058006 */ lui $a1, %hi(__osContPifRam) +/* 015694 70014A94 24A57CA0 */ addiu $a1, %lo(__osContPifRam) # addiu $a1, $a1, 0x7ca0 +/* 015698 70014A98 0C0057B4 */ jal __osSiRawStartDma +/* 01569C 70014A9C 00002025 */ move $a0, $zero +/* 0156A0 70014AA0 AFA20078 */ sw $v0, 0x78($sp) +/* 0156A4 70014AA4 8FA40080 */ lw $a0, 0x80($sp) +/* 0156A8 70014AA8 27A5007C */ addiu $a1, $sp, 0x7c +/* 0156AC 70014AAC 0C003774 */ jal osRecvMesg +/* 0156B0 70014AB0 24060001 */ li $a2, 1 +/* 0156B4 70014AB4 8FA40084 */ lw $a0, 0x84($sp) +/* 0156B8 70014AB8 0C0052BE */ jal __osContGetInitData +/* 0156BC 70014ABC 8FA50088 */ lw $a1, 0x88($sp) +/* 0156C0 70014AC0 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 0156C4 70014AC4 0C005784 */ jal __osSiCreateAccessQueue +/* 0156C8 70014AC8 A0207CE0 */ sb $zero, %lo(__osContLastCmd)($at) +/* 0156CC 70014ACC 3C048006 */ lui $a0, %hi(__osEepromTimerQ) +/* 0156D0 70014AD0 3C058006 */ lui $a1, %hi(__osEepromTimerMsg) +/* 0156D4 70014AD4 24A57D20 */ addiu $a1, %lo(__osEepromTimerMsg) # addiu $a1, $a1, 0x7d20 +/* 0156D8 70014AD8 24847D08 */ addiu $a0, %lo(__osEepromTimerQ) # addiu $a0, $a0, 0x7d08 +/* 0156DC 70014ADC 0C0035B4 */ jal osCreateMesgQueue +/* 0156E0 70014AE0 24060001 */ li $a2, 1 +/* 0156E4 70014AE4 8FA20078 */ lw $v0, 0x78($sp) +.L70014AE8: +/* 0156E8 70014AE8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0156EC 70014AEC 27BD0080 */ addiu $sp, $sp, 0x80 +/* 0156F0 70014AF0 03E00008 */ jr $ra +/* 0156F4 70014AF4 00000000 */ nop + +glabel __osContGetInitData +/* 0156F8 70014AF8 3C0F8006 */ lui $t7, %hi(__osMaxControllers) +/* 0156FC 70014AFC 91EF7CE1 */ lbu $t7, %lo(__osMaxControllers)($t7) +/* 015700 70014B00 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 015704 70014B04 3C0E8006 */ lui $t6, %hi(__osContPifRam) +/* 015708 70014B08 25CE7CA0 */ addiu $t6, %lo(__osContPifRam) # addiu $t6, $t6, 0x7ca0 +/* 01570C 70014B0C A3A00007 */ sb $zero, 7($sp) +/* 015710 70014B10 AFAE0014 */ sw $t6, 0x14($sp) +/* 015714 70014B14 19E00028 */ blez $t7, .L70014BB8 +/* 015718 70014B18 AFA00008 */ sw $zero, 8($sp) +.L70014B1C: +/* 01571C 70014B1C 8FB90014 */ lw $t9, 0x14($sp) +/* 015720 70014B20 27B8000C */ addiu $t8, $sp, 0xc +/* 015724 70014B24 8B210000 */ lwl $at, ($t9) +/* 015728 70014B28 9B210003 */ lwr $at, 3($t9) +/* 01572C 70014B2C AF010000 */ sw $at, ($t8) +/* 015730 70014B30 8B290004 */ lwl $t1, 4($t9) +/* 015734 70014B34 9B290007 */ lwr $t1, 7($t9) +/* 015738 70014B38 AF090004 */ sw $t1, 4($t8) +/* 01573C 70014B3C 93AA000E */ lbu $t2, 0xe($sp) +/* 015740 70014B40 314B00C0 */ andi $t3, $t2, 0xc0 +/* 015744 70014B44 000B6103 */ sra $t4, $t3, 4 +/* 015748 70014B48 A0AC0003 */ sb $t4, 3($a1) +/* 01574C 70014B4C 90AD0003 */ lbu $t5, 3($a1) +/* 015750 70014B50 15A0000E */ bnez $t5, .L70014B8C +/* 015754 70014B54 00000000 */ nop +/* 015758 70014B58 93AE0011 */ lbu $t6, 0x11($sp) +/* 01575C 70014B5C 93A80010 */ lbu $t0, 0x10($sp) +/* 015760 70014B60 240B0001 */ li $t3, 1 +/* 015764 70014B64 000E7A00 */ sll $t7, $t6, 8 +/* 015768 70014B68 01E8C025 */ or $t8, $t7, $t0 +/* 01576C 70014B6C A4B80000 */ sh $t8, ($a1) +/* 015770 70014B70 93B90012 */ lbu $t9, 0x12($sp) +/* 015774 70014B74 A0B90002 */ sb $t9, 2($a1) +/* 015778 70014B78 8FAA0008 */ lw $t2, 8($sp) +/* 01577C 70014B7C 93A90007 */ lbu $t1, 7($sp) +/* 015780 70014B80 014B6004 */ sllv $t4, $t3, $t2 +/* 015784 70014B84 012C6825 */ or $t5, $t1, $t4 +/* 015788 70014B88 A3AD0007 */ sb $t5, 7($sp) +.L70014B8C: +/* 01578C 70014B8C 8FAE0008 */ lw $t6, 8($sp) +/* 015790 70014B90 3C198006 */ lui $t9, %hi(__osMaxControllers) +/* 015794 70014B94 93397CE1 */ lbu $t9, %lo(__osMaxControllers)($t9) +/* 015798 70014B98 8FA80014 */ lw $t0, 0x14($sp) +/* 01579C 70014B9C 25CF0001 */ addiu $t7, $t6, 1 +/* 0157A0 70014BA0 01F9082A */ slt $at, $t7, $t9 +/* 0157A4 70014BA4 25180008 */ addiu $t8, $t0, 8 +/* 0157A8 70014BA8 AFB80014 */ sw $t8, 0x14($sp) +/* 0157AC 70014BAC AFAF0008 */ sw $t7, 8($sp) +/* 0157B0 70014BB0 1420FFDA */ bnez $at, .L70014B1C +/* 0157B4 70014BB4 24A50004 */ addiu $a1, $a1, 4 +.L70014BB8: +/* 0157B8 70014BB8 93AB0007 */ lbu $t3, 7($sp) +/* 0157BC 70014BBC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0157C0 70014BC0 03E00008 */ jr $ra +/* 0157C4 70014BC4 A08B0000 */ sb $t3, ($a0) + +glabel __osPackRequestData +/* 0157C8 70014BC8 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 0157CC 70014BCC 308400FF */ andi $a0, $a0, 0xff +/* 0157D0 70014BD0 AFA00000 */ sw $zero, ($sp) +.L70014BD4: +/* 0157D4 70014BD4 8FAE0000 */ lw $t6, ($sp) +/* 0157D8 70014BD8 8FB80000 */ lw $t8, ($sp) +/* 0157DC 70014BDC 3C018006 */ lui $at, %hi(__osContPifRam) +/* 0157E0 70014BE0 000E7880 */ sll $t7, $t6, 2 +/* 0157E4 70014BE4 002F0821 */ addu $at, $at, $t7 +/* 0157E8 70014BE8 AC207CA0 */ sw $zero, %lo(__osContPifRam)($at) +/* 0157EC 70014BEC 27190001 */ addiu $t9, $t8, 1 +/* 0157F0 70014BF0 2B210010 */ slti $at, $t9, 0x10 +/* 0157F4 70014BF4 1420FFF7 */ bnez $at, .L70014BD4 +/* 0157F8 70014BF8 AFB90000 */ sw $t9, ($sp) +/* 0157FC 70014BFC 3C198006 */ lui $t9, %hi(__osMaxControllers) +/* 015800 70014C00 93397CE1 */ lbu $t9, %lo(__osMaxControllers)($t9) +/* 015804 70014C04 3C098006 */ lui $t1, %hi(__osContPifRam) +/* 015808 70014C08 24080001 */ li $t0, 1 +/* 01580C 70014C0C 3C018006 */ lui $at, %hi(__osContPifRam+0x3c) +/* 015810 70014C10 25297CA0 */ addiu $t1, %lo(__osContPifRam) # addiu $t1, $t1, 0x7ca0 +/* 015814 70014C14 240A00FF */ li $t2, 255 +/* 015818 70014C18 240B0001 */ li $t3, 1 +/* 01581C 70014C1C 240C0003 */ li $t4, 3 +/* 015820 70014C20 240D00FF */ li $t5, 255 +/* 015824 70014C24 240E00FF */ li $t6, 255 +/* 015828 70014C28 240F00FF */ li $t7, 255 +/* 01582C 70014C2C 241800FF */ li $t8, 255 +/* 015830 70014C30 AC287CDC */ sw $t0, %lo(__osContPifRam+0x3c)($at) +/* 015834 70014C34 AFA9000C */ sw $t1, 0xc($sp) +/* 015838 70014C38 A3AA0004 */ sb $t2, 4($sp) +/* 01583C 70014C3C A3AB0005 */ sb $t3, 5($sp) +/* 015840 70014C40 A3AC0006 */ sb $t4, 6($sp) +/* 015844 70014C44 A3A40007 */ sb $a0, 7($sp) +/* 015848 70014C48 A3AD0008 */ sb $t5, 8($sp) +/* 01584C 70014C4C A3AE0009 */ sb $t6, 9($sp) +/* 015850 70014C50 A3AF000A */ sb $t7, 0xa($sp) +/* 015854 70014C54 A3B8000B */ sb $t8, 0xb($sp) +/* 015858 70014C58 1B200013 */ blez $t9, .L70014CA8 +/* 01585C 70014C5C AFA00000 */ sw $zero, ($sp) +.L70014C60: +/* 015860 70014C60 27A90004 */ addiu $t1, $sp, 4 +/* 015864 70014C64 8D210000 */ lw $at, ($t1) +/* 015868 70014C68 8FA8000C */ lw $t0, 0xc($sp) +/* 01586C 70014C6C 3C188006 */ lui $t8, %hi(__osMaxControllers) +/* 015870 70014C70 A9010000 */ swl $at, ($t0) +/* 015874 70014C74 B9010003 */ swr $at, 3($t0) +/* 015878 70014C78 8D2B0004 */ lw $t3, 4($t1) +/* 01587C 70014C7C A90B0004 */ swl $t3, 4($t0) +/* 015880 70014C80 B90B0007 */ swr $t3, 7($t0) +/* 015884 70014C84 8FAE0000 */ lw $t6, ($sp) +/* 015888 70014C88 93187CE1 */ lbu $t8, %lo(__osMaxControllers)($t8) +/* 01588C 70014C8C 8FAC000C */ lw $t4, 0xc($sp) +/* 015890 70014C90 25CF0001 */ addiu $t7, $t6, 1 +/* 015894 70014C94 01F8082A */ slt $at, $t7, $t8 +/* 015898 70014C98 258D0008 */ addiu $t5, $t4, 8 +/* 01589C 70014C9C AFAF0000 */ sw $t7, ($sp) +/* 0158A0 70014CA0 1420FFEF */ bnez $at, .L70014C60 +/* 0158A4 70014CA4 AFAD000C */ sw $t5, 0xc($sp) +.L70014CA8: +/* 0158A8 70014CA8 8FAA000C */ lw $t2, 0xc($sp) +/* 0158AC 70014CAC 241900FE */ li $t9, 254 +/* 0158B0 70014CB0 27BD0010 */ addiu $sp, $sp, 0x10 +/* 0158B4 70014CB4 03E00008 */ jr $ra +/* 0158B8 70014CB8 A1590000 */ sb $t9, ($t2) + +/* 0158BC 70014CBC 00000000 */ nop + +.section .data +glabel __osContinitialized +.word 0 +.align 4 + +.section .bss +glabel __osContPifRam +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 + +glabel __osContLastCmd +.byte 0 + +glabel __osMaxControllers +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 + +glabel __osEepromTimer +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 + +glabel __osEepromTimerQ +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 + +glabel __osEepromTimerMsg +.word 0 +glabel padding_80067d24 +.word 0, 0, 0 + + diff --git a/src/libultra/copy.s b/src/libultra/copy.s new file mode 100644 index 0000000..f9da824 --- /dev/null +++ b/src/libultra/copy.s @@ -0,0 +1,46 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alCopy +/* 01E290 7001D690 00801025 */ move $v0, $a0 +/* 01E294 7001D694 00A01825 */ move $v1, $a1 +/* 01E298 7001D698 18C00018 */ blez $a2, .L7001D6FC +/* 01E29C 7001D69C 00003825 */ move $a3, $zero +/* 01E2A0 7001D6A0 30C50003 */ andi $a1, $a2, 3 +/* 01E2A4 7001D6A4 10A00009 */ beqz $a1, .L7001D6CC +/* 01E2A8 7001D6A8 00A02025 */ move $a0, $a1 +.L7001D6AC: +/* 01E2AC 7001D6AC 904E0000 */ lbu $t6, ($v0) +/* 01E2B0 7001D6B0 24E70001 */ addiu $a3, $a3, 1 +/* 01E2B4 7001D6B4 24630001 */ addiu $v1, $v1, 1 +/* 01E2B8 7001D6B8 24420001 */ addiu $v0, $v0, 1 +/* 01E2BC 7001D6BC 1487FFFB */ bne $a0, $a3, .L7001D6AC +/* 01E2C0 7001D6C0 A06EFFFF */ sb $t6, -1($v1) +/* 01E2C4 7001D6C4 10E6000D */ beq $a3, $a2, .L7001D6FC +/* 01E2C8 7001D6C8 00000000 */ nop +.L7001D6CC: +/* 01E2CC 7001D6CC 904F0000 */ lbu $t7, ($v0) +/* 01E2D0 7001D6D0 24E70004 */ addiu $a3, $a3, 4 +/* 01E2D4 7001D6D4 24630004 */ addiu $v1, $v1, 4 +/* 01E2D8 7001D6D8 A06FFFFC */ sb $t7, -4($v1) +/* 01E2DC 7001D6DC 90580001 */ lbu $t8, 1($v0) +/* 01E2E0 7001D6E0 24420004 */ addiu $v0, $v0, 4 +/* 01E2E4 7001D6E4 A078FFFD */ sb $t8, -3($v1) +/* 01E2E8 7001D6E8 9059FFFE */ lbu $t9, -2($v0) +/* 01E2EC 7001D6EC A079FFFE */ sb $t9, -2($v1) +/* 01E2F0 7001D6F0 9048FFFF */ lbu $t0, -1($v0) +/* 01E2F4 7001D6F4 14E6FFF5 */ bne $a3, $a2, .L7001D6CC +/* 01E2F8 7001D6F8 A068FFFF */ sb $t0, -1($v1) +.L7001D6FC: +/* 01E2FC 7001D6FC 03E00008 */ jr $ra +/* 01E300 7001D700 00000000 */ nop diff --git a/src/libultra/coss.s b/src/libultra/coss.s new file mode 100644 index 0000000..22e14a6 --- /dev/null +++ b/src/libultra/coss.s @@ -0,0 +1,26 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel coss +/* 017830 70016C30 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 017834 70016C34 AFA40018 */ sw $a0, 0x18($sp) +/* 017838 70016C38 00802825 */ move $a1, $a0 +/* 01783C 70016C3C 24A44000 */ addiu $a0, $a1, 0x4000 +/* 017840 70016C40 AFBF0014 */ sw $ra, 0x14($sp) +/* 017844 70016C44 308EFFFF */ andi $t6, $a0, 0xffff +/* 017848 70016C48 0C005B18 */ jal sins +/* 01784C 70016C4C 01C02025 */ move $a0, $t6 +/* 017850 70016C50 8FBF0014 */ lw $ra, 0x14($sp) +/* 017854 70016C54 27BD0018 */ addiu $sp, $sp, 0x18 +/* 017858 70016C58 03E00008 */ jr $ra +/* 01785C 70016C5C 00000000 */ nop diff --git a/src/libultra/crc.s b/src/libultra/crc.s new file mode 100644 index 0000000..0efbad2 --- /dev/null +++ b/src/libultra/crc.s @@ -0,0 +1,125 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osContAddressCrc +/* 016B80 70015F80 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 016B84 70015F84 3084FFFF */ andi $a0, $a0, 0xffff +/* 016B88 70015F88 A3A0000F */ sb $zero, 0xf($sp) +/* 016B8C 70015F8C AFA00008 */ sw $zero, 8($sp) +.L70015F90: +/* 016B90 70015F90 93AE000F */ lbu $t6, 0xf($sp) +/* 016B94 70015F94 31CF0010 */ andi $t7, $t6, 0x10 +/* 016B98 70015F98 11E00004 */ beqz $t7, .L70015FAC +/* 016B9C 70015F9C 00000000 */ nop +/* 016BA0 70015FA0 24180015 */ li $t8, 21 +/* 016BA4 70015FA4 10000002 */ b .L70015FB0 +/* 016BA8 70015FA8 A3B8000E */ sb $t8, 0xe($sp) +.L70015FAC: +/* 016BAC 70015FAC A3A0000E */ sb $zero, 0xe($sp) +.L70015FB0: +/* 016BB0 70015FB0 93B9000F */ lbu $t9, 0xf($sp) +/* 016BB4 70015FB4 30890400 */ andi $t1, $a0, 0x400 +/* 016BB8 70015FB8 00194040 */ sll $t0, $t9, 1 +/* 016BBC 70015FBC 11200003 */ beqz $t1, .L70015FCC +/* 016BC0 70015FC0 A3A8000F */ sb $t0, 0xf($sp) +/* 016BC4 70015FC4 10000002 */ b .L70015FD0 +/* 016BC8 70015FC8 24050001 */ li $a1, 1 +.L70015FCC: +/* 016BCC 70015FCC 00002825 */ move $a1, $zero +.L70015FD0: +/* 016BD0 70015FD0 93AA000F */ lbu $t2, 0xf($sp) +/* 016BD4 70015FD4 8FA80008 */ lw $t0, 8($sp) +/* 016BD8 70015FD8 93AF000E */ lbu $t7, 0xe($sp) +/* 016BDC 70015FDC 30AB00FF */ andi $t3, $a1, 0xff +/* 016BE0 70015FE0 00046840 */ sll $t5, $a0, 1 +/* 016BE4 70015FE4 014B6025 */ or $t4, $t2, $t3 +/* 016BE8 70015FE8 01A02025 */ move $a0, $t5 +/* 016BEC 70015FEC 319800FF */ andi $t8, $t4, 0xff +/* 016BF0 70015FF0 25090001 */ addiu $t1, $t0, 1 +/* 016BF4 70015FF4 29210010 */ slti $at, $t1, 0x10 +/* 016BF8 70015FF8 A3AC000F */ sb $t4, 0xf($sp) +/* 016BFC 70015FFC 308EFFFF */ andi $t6, $a0, 0xffff +/* 016C00 70016000 030FC826 */ xor $t9, $t8, $t7 +/* 016C04 70016004 AFA90008 */ sw $t1, 8($sp) +/* 016C08 70016008 01C02025 */ move $a0, $t6 +/* 016C0C 7001600C 1420FFE0 */ bnez $at, .L70015F90 +/* 016C10 70016010 A3B9000F */ sb $t9, 0xf($sp) +/* 016C14 70016014 93A2000F */ lbu $v0, 0xf($sp) +/* 016C18 70016018 27BD0010 */ addiu $sp, $sp, 0x10 +/* 016C1C 7001601C 304A001F */ andi $t2, $v0, 0x1f +/* 016C20 70016020 01401025 */ move $v0, $t2 +/* 016C24 70016024 304B00FF */ andi $t3, $v0, 0xff +/* 016C28 70016028 03E00008 */ jr $ra +/* 016C2C 7001602C 01601025 */ move $v0, $t3 + +glabel __osContDataCrc +/* 016C30 70016030 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 016C34 70016034 A3A0000F */ sb $zero, 0xf($sp) +/* 016C38 70016038 AFA00008 */ sw $zero, 8($sp) +.L7001603C: +/* 016C3C 7001603C 240E0007 */ li $t6, 7 +/* 016C40 70016040 AFAE0004 */ sw $t6, 4($sp) +.L70016044: +/* 016C44 70016044 93AF000F */ lbu $t7, 0xf($sp) +/* 016C48 70016048 31F80080 */ andi $t8, $t7, 0x80 +/* 016C4C 7001604C 13000004 */ beqz $t8, .L70016060 +/* 016C50 70016050 00000000 */ nop +/* 016C54 70016054 24190085 */ li $t9, 133 +/* 016C58 70016058 10000002 */ b .L70016064 +/* 016C5C 7001605C A3B9000E */ sb $t9, 0xe($sp) +.L70016060: +/* 016C60 70016060 A3A0000E */ sb $zero, 0xe($sp) +.L70016064: +/* 016C64 70016064 93A8000F */ lbu $t0, 0xf($sp) +/* 016C68 70016068 8FAA0008 */ lw $t2, 8($sp) +/* 016C6C 7001606C 24010020 */ li $at, 32 +/* 016C70 70016070 00084840 */ sll $t1, $t0, 1 +/* 016C74 70016074 15410004 */ bne $t2, $at, .L70016088 +/* 016C78 70016078 A3A9000F */ sb $t1, 0xf($sp) +/* 016C7C 7001607C 312B00FF */ andi $t3, $t1, 0xff +/* 016C80 70016080 1000000E */ b .L700160BC +/* 016C84 70016084 A3AB000F */ sb $t3, 0xf($sp) +.L70016088: +/* 016C88 70016088 8FAD0004 */ lw $t5, 4($sp) +/* 016C8C 7001608C 908C0000 */ lbu $t4, ($a0) +/* 016C90 70016090 240E0001 */ li $t6, 1 +/* 016C94 70016094 01AE7804 */ sllv $t7, $t6, $t5 +/* 016C98 70016098 018FC024 */ and $t8, $t4, $t7 +/* 016C9C 7001609C 13000003 */ beqz $t8, .L700160AC +/* 016CA0 700160A0 00000000 */ nop +/* 016CA4 700160A4 10000002 */ b .L700160B0 +/* 016CA8 700160A8 24050001 */ li $a1, 1 +.L700160AC: +/* 016CAC 700160AC 00002825 */ move $a1, $zero +.L700160B0: +/* 016CB0 700160B0 93B9000F */ lbu $t9, 0xf($sp) +/* 016CB4 700160B4 03254025 */ or $t0, $t9, $a1 +/* 016CB8 700160B8 A3A8000F */ sb $t0, 0xf($sp) +.L700160BC: +/* 016CBC 700160BC 8FAE0004 */ lw $t6, 4($sp) +/* 016CC0 700160C0 93AA000F */ lbu $t2, 0xf($sp) +/* 016CC4 700160C4 93A9000E */ lbu $t1, 0xe($sp) +/* 016CC8 700160C8 25CDFFFF */ addiu $t5, $t6, -1 +/* 016CCC 700160CC AFAD0004 */ sw $t5, 4($sp) +/* 016CD0 700160D0 01495826 */ xor $t3, $t2, $t1 +/* 016CD4 700160D4 05A1FFDB */ bgez $t5, .L70016044 +/* 016CD8 700160D8 A3AB000F */ sb $t3, 0xf($sp) +/* 016CDC 700160DC 8FAC0008 */ lw $t4, 8($sp) +/* 016CE0 700160E0 24840001 */ addiu $a0, $a0, 1 +/* 016CE4 700160E4 258F0001 */ addiu $t7, $t4, 1 +/* 016CE8 700160E8 29E10021 */ slti $at, $t7, 0x21 +/* 016CEC 700160EC 1420FFD3 */ bnez $at, .L7001603C +/* 016CF0 700160F0 AFAF0008 */ sw $t7, 8($sp) +/* 016CF4 700160F4 93A2000F */ lbu $v0, 0xf($sp) +/* 016CF8 700160F8 03E00008 */ jr $ra +/* 016CFC 700160FC 27BD0010 */ addiu $sp, $sp, 0x10 diff --git a/src/libultra/createmesgqueue.s b/src/libultra/createmesgqueue.s new file mode 100644 index 0000000..e96968b --- /dev/null +++ b/src/libultra/createmesgqueue.s @@ -0,0 +1,24 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osCreateMesgQueue +/* 00E2D0 7000D6D0 3C0E8002 */ lui $t6, %hi(__osThreadTail) +/* 00E2D4 7000D6D4 3C0F8002 */ lui $t7, %hi(__osThreadTail) +/* 00E2D8 7000D6D8 25CE7720 */ addiu $t6, %lo(__osThreadTail) # addiu $t6, $t6, 0x7720 +/* 00E2DC 7000D6DC 25EF7720 */ addiu $t7, %lo(__osThreadTail) # addiu $t7, $t7, 0x7720 +/* 00E2E0 7000D6E0 AC8E0000 */ sw $t6, ($a0) +/* 00E2E4 7000D6E4 AC8F0004 */ sw $t7, 4($a0) +/* 00E2E8 7000D6E8 AC800008 */ sw $zero, 8($a0) +/* 00E2EC 7000D6EC AC80000C */ sw $zero, 0xc($a0) +/* 00E2F0 7000D6F0 AC860010 */ sw $a2, 0x10($a0) +/* 00E2F4 7000D6F4 03E00008 */ jr $ra +/* 00E2F8 7000D6F8 AC850014 */ sw $a1, 0x14($a0) + +#wtf why do these exist, figure out diff --git a/src/libultra/createthread.s b/src/libultra/createthread.s new file mode 100644 index 0000000..ec21813 --- /dev/null +++ b/src/libultra/createthread.s @@ -0,0 +1,92 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osCreateThread +/* 00E030 7000D430 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00E034 7000D434 AFA40028 */ sw $a0, 0x28($sp) +/* 00E038 7000D438 AFA5002C */ sw $a1, 0x2c($sp) +/* 00E03C 7000D43C 8FAE002C */ lw $t6, 0x2c($sp) +/* 00E040 7000D440 8FAF0028 */ lw $t7, 0x28($sp) +/* 00E044 7000D444 AFBF001C */ sw $ra, 0x1c($sp) +/* 00E048 7000D448 AFA60030 */ sw $a2, 0x30($sp) +/* 00E04C 7000D44C AFA70034 */ sw $a3, 0x34($sp) +/* 00E050 7000D450 AFB00018 */ sw $s0, 0x18($sp) +/* 00E054 7000D454 ADEE0014 */ sw $t6, 0x14($t7) +/* 00E058 7000D458 8FB90028 */ lw $t9, 0x28($sp) +/* 00E05C 7000D45C 8FB8003C */ lw $t8, 0x3c($sp) +/* 00E060 7000D460 AF380004 */ sw $t8, 4($t9) +/* 00E064 7000D464 8FA80028 */ lw $t0, 0x28($sp) +/* 00E068 7000D468 AD000000 */ sw $zero, ($t0) +/* 00E06C 7000D46C 8FA90028 */ lw $t1, 0x28($sp) +/* 00E070 7000D470 AD200008 */ sw $zero, 8($t1) +/* 00E074 7000D474 8FAB0028 */ lw $t3, 0x28($sp) +/* 00E078 7000D478 8FAA0030 */ lw $t2, 0x30($sp) +/* 00E07C 7000D47C AD6A011C */ sw $t2, 0x11c($t3) +/* 00E080 7000D480 8FAC0034 */ lw $t4, 0x34($sp) +/* 00E084 7000D484 8FAD0028 */ lw $t5, 0x28($sp) +/* 00E088 7000D488 01807825 */ move $t7, $t4 +/* 00E08C 7000D48C 000C77C3 */ sra $t6, $t4, 0x1f +/* 00E090 7000D490 ADAE0038 */ sw $t6, 0x38($t5) +/* 00E094 7000D494 ADAF003C */ sw $t7, 0x3c($t5) +/* 00E098 7000D498 8FB80038 */ lw $t8, 0x38($sp) +/* 00E09C 7000D49C 8FB90028 */ lw $t9, 0x28($sp) +/* 00E0A0 7000D4A0 3C0C7001 */ lui $t4, %hi(__osCleanupThread) # $t4, 0x7001 +/* 00E0A4 7000D4A4 03004825 */ move $t1, $t8 +/* 00E0A8 7000D4A8 2D210010 */ sltiu $at, $t1, 0x10 +/* 00E0AC 7000D4AC 001847C3 */ sra $t0, $t8, 0x1f +/* 00E0B0 7000D4B0 01015023 */ subu $t2, $t0, $at +/* 00E0B4 7000D4B4 252BFFF0 */ addiu $t3, $t1, -0x10 +/* 00E0B8 7000D4B8 AF2B00F4 */ sw $t3, 0xf4($t9) +/* 00E0BC 7000D4BC AF2A00F0 */ sw $t2, 0xf0($t9) +/* 00E0C0 7000D4C0 8FAD0028 */ lw $t5, 0x28($sp) +/* 00E0C4 7000D4C4 258C0A80 */ addiu $t4, %lo(__osCleanupThread) # addiu $t4, $t4, 0xa80 +/* 00E0C8 7000D4C8 01807825 */ move $t7, $t4 +/* 00E0CC 7000D4CC 000C77C3 */ sra $t6, $t4, 0x1f +/* 00E0D0 7000D4D0 ADAE0100 */ sw $t6, 0x100($t5) +/* 00E0D4 7000D4D4 ADAF0104 */ sw $t7, 0x104($t5) +/* 00E0D8 7000D4D8 8FA90028 */ lw $t1, 0x28($sp) +/* 00E0DC 7000D4DC 3C18003F */ lui $t8, (0x003FFF01 >> 16) # lui $t8, 0x3f +/* 00E0E0 7000D4E0 3718FF01 */ ori $t8, (0x003FFF01 & 0xFFFF) # ori $t8, $t8, 0xff01 +/* 00E0E4 7000D4E4 AFB80020 */ sw $t8, 0x20($sp) +/* 00E0E8 7000D4E8 3408FF03 */ li $t0, 65283 +/* 00E0EC 7000D4EC AD280118 */ sw $t0, 0x118($t1) +/* 00E0F0 7000D4F0 8FAA0020 */ lw $t2, 0x20($sp) +/* 00E0F4 7000D4F4 8FAC0028 */ lw $t4, 0x28($sp) +/* 00E0F8 7000D4F8 3C01003F */ lui $at, 0x3f +/* 00E0FC 7000D4FC 01415824 */ and $t3, $t2, $at +/* 00E100 7000D500 000BCC02 */ srl $t9, $t3, 0x10 +/* 00E104 7000D504 AD990128 */ sw $t9, 0x128($t4) +/* 00E108 7000D508 8FAF0028 */ lw $t7, 0x28($sp) +/* 00E10C 7000D50C 3C0E0100 */ lui $t6, (0x01000800 >> 16) # lui $t6, 0x100 +/* 00E110 7000D510 35CE0800 */ ori $t6, (0x01000800 & 0xFFFF) # ori $t6, $t6, 0x800 +/* 00E114 7000D514 ADEE012C */ sw $t6, 0x12c($t7) +/* 00E118 7000D518 8FAD0028 */ lw $t5, 0x28($sp) +/* 00E11C 7000D51C 24180001 */ li $t8, 1 +/* 00E120 7000D520 ADA00018 */ sw $zero, 0x18($t5) +/* 00E124 7000D524 8FA80028 */ lw $t0, 0x28($sp) +/* 00E128 7000D528 A5180010 */ sh $t8, 0x10($t0) +/* 00E12C 7000D52C 8FA90028 */ lw $t1, 0x28($sp) +/* 00E130 7000D530 0C00617C */ jal __osDisableInt +/* 00E134 7000D534 A5200012 */ sh $zero, 0x12($t1) +/* 00E138 7000D538 3C0A8002 */ lui $t2, %hi(__osActiveQueue) +/* 00E13C 7000D53C 8D4A772C */ lw $t2, %lo(__osActiveQueue)($t2) +/* 00E140 7000D540 8FAB0028 */ lw $t3, 0x28($sp) +/* 00E144 7000D544 00408025 */ move $s0, $v0 +/* 00E148 7000D548 3C018002 */ lui $at, %hi(__osActiveQueue) +/* 00E14C 7000D54C AD6A000C */ sw $t2, 0xc($t3) +/* 00E150 7000D550 8FB90028 */ lw $t9, 0x28($sp) +/* 00E154 7000D554 02002025 */ move $a0, $s0 +/* 00E158 7000D558 0C006184 */ jal __osRestoreInt +/* 00E15C 7000D55C AC39772C */ sw $t9, %lo(__osActiveQueue)($at) +/* 00E160 7000D560 8FBF001C */ lw $ra, 0x1c($sp) +/* 00E164 7000D564 8FB00018 */ lw $s0, 0x18($sp) +/* 00E168 7000D568 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00E16C 7000D56C 03E00008 */ jr $ra +/* 00E170 7000D570 00000000 */ nop diff --git a/src/libultra/cseq.s b/src/libultra/cseq.s new file mode 100644 index 0000000..daf7a70 --- /dev/null +++ b/src/libultra/cseq.s @@ -0,0 +1,774 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alCSeqGetLoc +/* 012E40 70012240 8C8E0004 */ lw $t6, 4($a0) +/* 012E44 70012244 00803025 */ move $a2, $a0 +/* 012E48 70012248 00804025 */ move $t0, $a0 +/* 012E4C 7001224C ACAE0000 */ sw $t6, ($a1) +/* 012E50 70012250 8C8F000C */ lw $t7, 0xc($a0) +/* 012E54 70012254 00001025 */ move $v0, $zero +/* 012E58 70012258 00A01825 */ move $v1, $a1 +/* 012E5C 7001225C ACAF0004 */ sw $t7, 4($a1) +/* 012E60 70012260 8C980010 */ lw $t8, 0x10($a0) +/* 012E64 70012264 24040010 */ li $a0, 16 +/* 012E68 70012268 00A03825 */ move $a3, $a1 +/* 012E6C 7001226C ACB80008 */ sw $t8, 8($a1) +.L70012270: +/* 012E70 70012270 8CD90018 */ lw $t9, 0x18($a2) +/* 012E74 70012274 24420002 */ addiu $v0, $v0, 2 +/* 012E78 70012278 24630008 */ addiu $v1, $v1, 8 +/* 012E7C 7001227C AC790004 */ sw $t9, 4($v1) +/* 012E80 70012280 8CC90058 */ lw $t1, 0x58($a2) +/* 012E84 70012284 24C60008 */ addiu $a2, $a2, 8 +/* 012E88 70012288 24E70002 */ addiu $a3, $a3, 2 +/* 012E8C 7001228C AC690044 */ sw $t1, 0x44($v1) +/* 012E90 70012290 910A0098 */ lbu $t2, 0x98($t0) +/* 012E94 70012294 25080002 */ addiu $t0, $t0, 2 +/* 012E98 70012298 A0EA008A */ sb $t2, 0x8a($a3) +/* 012E9C 7001229C 910B00A6 */ lbu $t3, 0xa6($t0) +/* 012EA0 700122A0 A0EB009A */ sb $t3, 0x9a($a3) +/* 012EA4 700122A4 8CCC00B0 */ lw $t4, 0xb0($a2) +/* 012EA8 700122A8 AC6C00A4 */ sw $t4, 0xa4($v1) +/* 012EAC 700122AC 8CCD0014 */ lw $t5, 0x14($a2) +/* 012EB0 700122B0 AC6D0008 */ sw $t5, 8($v1) +/* 012EB4 700122B4 8CCE0054 */ lw $t6, 0x54($a2) +/* 012EB8 700122B8 AC6E0048 */ sw $t6, 0x48($v1) +/* 012EBC 700122BC 910F0097 */ lbu $t7, 0x97($t0) +/* 012EC0 700122C0 A0EF008B */ sb $t7, 0x8b($a3) +/* 012EC4 700122C4 911800A7 */ lbu $t8, 0xa7($t0) +/* 012EC8 700122C8 A0F8009B */ sb $t8, 0x9b($a3) +/* 012ECC 700122CC 8CD900B4 */ lw $t9, 0xb4($a2) +/* 012ED0 700122D0 1444FFE7 */ bne $v0, $a0, .L70012270 +/* 012ED4 700122D4 AC7900A8 */ sw $t9, 0xa8($v1) +/* 012ED8 700122D8 03E00008 */ jr $ra +/* 012EDC 700122DC 00000000 */ nop + +glabel alCSeqSetLoc +/* 012EE0 700122E0 8CAE0000 */ lw $t6, ($a1) +/* 012EE4 700122E4 00801825 */ move $v1, $a0 +/* 012EE8 700122E8 00803825 */ move $a3, $a0 +/* 012EEC 700122EC AC8E0004 */ sw $t6, 4($a0) +/* 012EF0 700122F0 8CAF0004 */ lw $t7, 4($a1) +/* 012EF4 700122F4 00001025 */ move $v0, $zero +/* 012EF8 700122F8 00A03025 */ move $a2, $a1 +/* 012EFC 700122FC AC8F000C */ sw $t7, 0xc($a0) +/* 012F00 70012300 8CB80008 */ lw $t8, 8($a1) +/* 012F04 70012304 00A04025 */ move $t0, $a1 +/* 012F08 70012308 AC980010 */ sw $t8, 0x10($a0) +/* 012F0C 7001230C 24040010 */ li $a0, 16 +.L70012310: +/* 012F10 70012310 8CD9000C */ lw $t9, 0xc($a2) +/* 012F14 70012314 24420002 */ addiu $v0, $v0, 2 +/* 012F18 70012318 24630008 */ addiu $v1, $v1, 8 +/* 012F1C 7001231C AC790010 */ sw $t9, 0x10($v1) +/* 012F20 70012320 8CC9004C */ lw $t1, 0x4c($a2) +/* 012F24 70012324 24C60008 */ addiu $a2, $a2, 8 +/* 012F28 70012328 24E70002 */ addiu $a3, $a3, 2 +/* 012F2C 7001232C AC690050 */ sw $t1, 0x50($v1) +/* 012F30 70012330 910A008C */ lbu $t2, 0x8c($t0) +/* 012F34 70012334 25080002 */ addiu $t0, $t0, 2 +/* 012F38 70012338 A0EA0096 */ sb $t2, 0x96($a3) +/* 012F3C 7001233C 910B009A */ lbu $t3, 0x9a($t0) +/* 012F40 70012340 A0EB00A6 */ sb $t3, 0xa6($a3) +/* 012F44 70012344 8CCC00A4 */ lw $t4, 0xa4($a2) +/* 012F48 70012348 AC6C00B0 */ sw $t4, 0xb0($v1) +/* 012F4C 7001234C 8CCD0008 */ lw $t5, 8($a2) +/* 012F50 70012350 AC6D0014 */ sw $t5, 0x14($v1) +/* 012F54 70012354 8CCE0048 */ lw $t6, 0x48($a2) +/* 012F58 70012358 AC6E0054 */ sw $t6, 0x54($v1) +/* 012F5C 7001235C 910F008B */ lbu $t7, 0x8b($t0) +/* 012F60 70012360 A0EF0097 */ sb $t7, 0x97($a3) +/* 012F64 70012364 9118009B */ lbu $t8, 0x9b($t0) +/* 012F68 70012368 A0F800A7 */ sb $t8, 0xa7($a3) +/* 012F6C 7001236C 8CD900A8 */ lw $t9, 0xa8($a2) +/* 012F70 70012370 1444FFE7 */ bne $v0, $a0, .L70012310 +/* 012F74 70012374 AC7900B4 */ sw $t9, 0xb4($v1) +/* 012F78 70012378 03E00008 */ jr $ra +/* 012F7C 7001237C 00000000 */ nop + +glabel ultra_70012380 +/* 012F80 70012380 00851021 */ addu $v0, $a0, $a1 +/* 012F84 70012384 904E0098 */ lbu $t6, 0x98($v0) +/* 012F88 70012388 00057880 */ sll $t7, $a1, 2 +/* 012F8C 7001238C 008F3021 */ addu $a2, $a0, $t7 +/* 012F90 70012390 51C0000D */ beql $t6, $zero, .L700123C8 +/* 012F94 70012394 8CC70018 */ lw $a3, 0x18($a2) +/* 012F98 70012398 00057880 */ sll $t7, $a1, 2 +/* 012F9C 7001239C 008F3021 */ addu $a2, $a0, $t7 +/* 012FA0 700123A0 8CC70058 */ lw $a3, 0x58($a2) +/* 012FA4 700123A4 90E30000 */ lbu $v1, ($a3) +/* 012FA8 700123A8 24F80001 */ addiu $t8, $a3, 1 +/* 012FAC 700123AC ACD80058 */ sw $t8, 0x58($a2) +/* 012FB0 700123B0 90590098 */ lbu $t9, 0x98($v0) +/* 012FB4 700123B4 272EFFFF */ addiu $t6, $t9, -1 +/* 012FB8 700123B8 A04E0098 */ sb $t6, 0x98($v0) +/* 012FBC 700123BC 03E00008 */ jr $ra +/* 012FC0 700123C0 00601025 */ move $v0, $v1 + +/* 012FC4 700123C4 8CC70018 */ lw $a3, 0x18($a2) +.L700123C8: +/* 012FC8 700123C8 240800FE */ li $t0, 254 +/* 012FCC 700123CC 90E30000 */ lbu $v1, ($a3) +/* 012FD0 700123D0 24F80001 */ addiu $t8, $a3, 1 +/* 012FD4 700123D4 ACD80018 */ sw $t8, 0x18($a2) +/* 012FD8 700123D8 15030018 */ bne $t0, $v1, .L7001243C +/* 012FDC 700123DC 00000000 */ nop +/* 012FE0 700123E0 93040000 */ lbu $a0, ($t8) +/* 012FE4 700123E4 27190001 */ addiu $t9, $t8, 1 +/* 012FE8 700123E8 ACD90018 */ sw $t9, 0x18($a2) +/* 012FEC 700123EC 11040013 */ beq $t0, $a0, .L7001243C +/* 012FF0 700123F0 272E0001 */ addiu $t6, $t9, 1 +/* 012FF4 700123F4 93230000 */ lbu $v1, ($t9) +/* 012FF8 700123F8 ACCE0018 */ sw $t6, 0x18($a2) +/* 012FFC 700123FC 91C50000 */ lbu $a1, ($t6) +/* 013000 70012400 25CF0001 */ addiu $t7, $t6, 1 +/* 013004 70012404 0004CA00 */ sll $t9, $a0, 8 +/* 013008 70012408 ACCF0018 */ sw $t7, 0x18($a2) +/* 01300C 7001240C 03237021 */ addu $t6, $t9, $v1 +/* 013010 70012410 01EE7823 */ subu $t7, $t7, $t6 +/* 013014 70012414 25F9FFFC */ addiu $t9, $t7, -4 +/* 013018 70012418 ACD90058 */ sw $t9, 0x58($a2) +/* 01301C 7001241C A0450098 */ sb $a1, 0x98($v0) +/* 013020 70012420 8CC70058 */ lw $a3, 0x58($a2) +/* 013024 70012424 90E30000 */ lbu $v1, ($a3) +/* 013028 70012428 24F80001 */ addiu $t8, $a3, 1 +/* 01302C 7001242C ACD80058 */ sw $t8, 0x58($a2) +/* 013030 70012430 904E0098 */ lbu $t6, 0x98($v0) +/* 013034 70012434 25CFFFFF */ addiu $t7, $t6, -1 +/* 013038 70012438 A04F0098 */ sb $t7, 0x98($v0) +.L7001243C: +/* 01303C 7001243C 03E00008 */ jr $ra +/* 013040 70012440 00601025 */ move $v0, $v1 + +glabel ultra_70012444 +/* 013044 70012444 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 013048 70012448 AFBF0014 */ sw $ra, 0x14($sp) +/* 01304C 7001244C 01402025 */ move $a0, $t2 +/* 013050 70012450 0C0048E0 */ jal ultra_70012380 +/* 013054 70012454 01602825 */ move $a1, $t3 +/* 013058 70012458 304E0080 */ andi $t6, $v0, 0x80 +/* 01305C 7001245C 11C0000A */ beqz $t6, .L70012488 +/* 013060 70012460 00404825 */ move $t1, $v0 +/* 013064 70012464 3049007F */ andi $t1, $v0, 0x7f +.L70012468: +/* 013068 70012468 01402025 */ move $a0, $t2 +/* 01306C 7001246C 0C0048E0 */ jal ultra_70012380 +/* 013070 70012470 01602825 */ move $a1, $t3 +/* 013074 70012474 000979C0 */ sll $t7, $t1, 7 +/* 013078 70012478 3058007F */ andi $t8, $v0, 0x7f +/* 01307C 7001247C 30590080 */ andi $t9, $v0, 0x80 +/* 013080 70012480 1720FFF9 */ bnez $t9, .L70012468 +/* 013084 70012484 01F84821 */ addu $t1, $t7, $t8 +.L70012488: +/* 013088 70012488 8FBF0014 */ lw $ra, 0x14($sp) +/* 01308C 7001248C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 013090 70012490 01201025 */ move $v0, $t1 +/* 013094 70012494 03E00008 */ jr $ra +/* 013098 70012498 00000000 */ nop + +/* 01309C 7001249C 03E00008 */ jr $ra +/* 0130A0 700124A0 00000000 */ nop + +glabel alCSeqNextEvent +/* 0130A4 700124A4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0130A8 700124A8 AFB00018 */ sw $s0, 0x18($sp) +/* 0130AC 700124AC 00A08025 */ move $s0, $a1 +/* 0130B0 700124B0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0130B4 700124B4 00806025 */ move $t4, $a0 +/* 0130B8 700124B8 2409FFFF */ li $t1, -1 +/* 0130BC 700124BC 8C860010 */ lw $a2, 0x10($a0) +/* 0130C0 700124C0 24050010 */ li $a1, 16 +/* 0130C4 700124C4 8FAB0024 */ lw $t3, 0x24($sp) +/* 0130C8 700124C8 00001025 */ move $v0, $zero +/* 0130CC 700124CC 8D8E0004 */ lw $t6, 4($t4) +.L700124D0: +/* 0130D0 700124D0 004E7806 */ srlv $t7, $t6, $v0 +/* 0130D4 700124D4 31F80001 */ andi $t8, $t7, 1 +/* 0130D8 700124D8 53000010 */ beql $t8, $zero, .L7001251C +/* 0130DC 700124DC 24420001 */ addiu $v0, $v0, 1 +/* 0130E0 700124E0 8D8E0014 */ lw $t6, 0x14($t4) +/* 0130E4 700124E4 0002C880 */ sll $t9, $v0, 2 +/* 0130E8 700124E8 01991821 */ addu $v1, $t4, $t9 +/* 0130EC 700124EC 51C00005 */ beql $t6, $zero, .L70012504 +/* 0130F0 700124F0 8C6400B8 */ lw $a0, 0xb8($v1) +/* 0130F4 700124F4 8C6F00B8 */ lw $t7, 0xb8($v1) +/* 0130F8 700124F8 01E6C023 */ subu $t8, $t7, $a2 +/* 0130FC 700124FC AC7800B8 */ sw $t8, 0xb8($v1) +/* 013100 70012500 8C6400B8 */ lw $a0, 0xb8($v1) +.L70012504: +/* 013104 70012504 0089082B */ sltu $at, $a0, $t1 +/* 013108 70012508 50200004 */ beql $at, $zero, .L7001251C +/* 01310C 7001250C 24420001 */ addiu $v0, $v0, 1 +/* 013110 70012510 00804825 */ move $t1, $a0 +/* 013114 70012514 00405825 */ move $t3, $v0 +/* 013118 70012518 24420001 */ addiu $v0, $v0, 1 +.L7001251C: +/* 01311C 7001251C 5445FFEC */ bnel $v0, $a1, .L700124D0 +/* 013120 70012520 8D8E0004 */ lw $t6, 4($t4) +/* 013124 70012524 01802025 */ move $a0, $t4 +/* 013128 70012528 0C0048E0 */ jal ultra_70012380 +/* 01312C 7001252C 01602825 */ move $a1, $t3 +/* 013130 70012530 240100FF */ li $at, 255 +/* 013134 70012534 304A00FF */ andi $t2, $v0, 0xff +/* 013138 70012538 1441005A */ bne $v0, $at, .L700126A4 +/* 01313C 7001253C 00401825 */ move $v1, $v0 +/* 013140 70012540 01802025 */ move $a0, $t4 +/* 013144 70012544 0C0048E0 */ jal ultra_70012380 +/* 013148 70012548 01602825 */ move $a1, $t3 +/* 01314C 7001254C 24010051 */ li $at, 81 +/* 013150 70012550 304600FF */ andi $a2, $v0, 0xff +/* 013154 70012554 14410014 */ bne $v0, $at, .L700125A8 +/* 013158 70012558 00401825 */ move $v1, $v0 +/* 01315C 7001255C 24190003 */ li $t9, 3 +/* 013160 70012560 A6190000 */ sh $t9, ($s0) +/* 013164 70012564 A20A0008 */ sb $t2, 8($s0) +/* 013168 70012568 A2060009 */ sb $a2, 9($s0) +/* 01316C 7001256C 01802025 */ move $a0, $t4 +/* 013170 70012570 0C0048E0 */ jal ultra_70012380 +/* 013174 70012574 01602825 */ move $a1, $t3 +/* 013178 70012578 A202000B */ sb $v0, 0xb($s0) +/* 01317C 7001257C 01802025 */ move $a0, $t4 +/* 013180 70012580 0C0048E0 */ jal ultra_70012380 +/* 013184 70012584 01602825 */ move $a1, $t3 +/* 013188 70012588 A202000C */ sb $v0, 0xc($s0) +/* 01318C 7001258C 01802025 */ move $a0, $t4 +/* 013190 70012590 0C0048E0 */ jal ultra_70012380 +/* 013194 70012594 01602825 */ move $a1, $t3 +/* 013198 70012598 A202000D */ sb $v0, 0xd($s0) +/* 01319C 7001259C 018B7021 */ addu $t6, $t4, $t3 +/* 0131A0 700125A0 10000067 */ b .L70012740 +/* 0131A4 700125A4 A1C000A8 */ sb $zero, 0xa8($t6) +.L700125A8: +/* 0131A8 700125A8 2401002F */ li $at, 47 +/* 0131AC 700125AC 5461000E */ bnel $v1, $at, .L700125E8 +/* 0131B0 700125B0 2401002E */ li $at, 46 +/* 0131B4 700125B4 8D8F0004 */ lw $t7, 4($t4) +/* 0131B8 700125B8 24180001 */ li $t8, 1 +/* 0131BC 700125BC 0178C804 */ sllv $t9, $t8, $t3 +/* 0131C0 700125C0 01F97026 */ xor $t6, $t7, $t9 +/* 0131C4 700125C4 11C00004 */ beqz $t6, .L700125D8 +/* 0131C8 700125C8 AD8E0004 */ sw $t6, 4($t4) +/* 0131CC 700125CC 240F0012 */ li $t7, 18 +/* 0131D0 700125D0 1000005B */ b .L70012740 +/* 0131D4 700125D4 A60F0000 */ sh $t7, ($s0) +.L700125D8: +/* 0131D8 700125D8 24190004 */ li $t9, 4 +/* 0131DC 700125DC 10000058 */ b .L70012740 +/* 0131E0 700125E0 A6190000 */ sh $t9, ($s0) +/* 0131E4 700125E4 2401002E */ li $at, 46 +.L700125E8: +/* 0131E8 700125E8 1461000B */ bne $v1, $at, .L70012618 +/* 0131EC 700125EC 01802025 */ move $a0, $t4 +/* 0131F0 700125F0 0C0048E0 */ jal ultra_70012380 +/* 0131F4 700125F4 01602825 */ move $a1, $t3 +/* 0131F8 700125F8 01802025 */ move $a0, $t4 +/* 0131FC 700125FC 0C0048E0 */ jal ultra_70012380 +/* 013200 70012600 01602825 */ move $a1, $t3 +/* 013204 70012604 018B7021 */ addu $t6, $t4, $t3 +/* 013208 70012608 A1C000A8 */ sb $zero, 0xa8($t6) +/* 01320C 7001260C 24180013 */ li $t8, 19 +/* 013210 70012610 1000004B */ b .L70012740 +/* 013214 70012614 A6180000 */ sh $t8, ($s0) +.L70012618: +/* 013218 70012618 2401002D */ li $at, 45 +/* 01321C 7001261C 14610048 */ bne $v1, $at, .L70012740 +/* 013220 70012620 000B7880 */ sll $t7, $t3, 2 +/* 013224 70012624 018F6821 */ addu $t5, $t4, $t7 +/* 013228 70012628 8DA20018 */ lw $v0, 0x18($t5) +/* 01322C 7001262C 240100FF */ li $at, 255 +/* 013230 70012630 90440001 */ lbu $a0, 1($v0) +/* 013234 70012634 24420001 */ addiu $v0, $v0, 1 +/* 013238 70012638 24590005 */ addiu $t9, $v0, 5 +/* 01323C 7001263C 14800004 */ bnez $a0, .L70012650 +/* 013240 70012640 9045FFFF */ lbu $a1, -1($v0) +/* 013244 70012644 A0450000 */ sb $a1, ($v0) +/* 013248 70012648 10000011 */ b .L70012690 +/* 01324C 7001264C ADB90018 */ sw $t9, 0x18($t5) +.L70012650: +/* 013250 70012650 10810002 */ beq $a0, $at, .L7001265C +/* 013254 70012654 248EFFFF */ addiu $t6, $a0, -1 +/* 013258 70012658 A04E0000 */ sb $t6, ($v0) +.L7001265C: +/* 01325C 7001265C 904F0002 */ lbu $t7, 2($v0) +/* 013260 70012660 90430001 */ lbu $v1, 1($v0) +/* 013264 70012664 904E0003 */ lbu $t6, 3($v0) +/* 013268 70012668 000FCC00 */ sll $t9, $t7, 0x10 +/* 01326C 7001266C 0003C600 */ sll $t8, $v1, 0x18 +/* 013270 70012670 904F0004 */ lbu $t7, 4($v0) +/* 013274 70012674 03191821 */ addu $v1, $t8, $t9 +/* 013278 70012678 000EC200 */ sll $t8, $t6, 8 +/* 01327C 7001267C 00781821 */ addu $v1, $v1, $t8 +/* 013280 70012680 24420005 */ addiu $v0, $v0, 5 +/* 013284 70012684 006F1821 */ addu $v1, $v1, $t7 +/* 013288 70012688 0043C823 */ subu $t9, $v0, $v1 +/* 01328C 7001268C ADB90018 */ sw $t9, 0x18($t5) +.L70012690: +/* 013290 70012690 018B7021 */ addu $t6, $t4, $t3 +/* 013294 70012694 A1C000A8 */ sb $zero, 0xa8($t6) +/* 013298 70012698 24180014 */ li $t8, 20 +/* 01329C 7001269C 10000028 */ b .L70012740 +/* 0132A0 700126A0 A6180000 */ sh $t8, ($s0) +.L700126A4: +/* 0132A4 700126A4 240F0001 */ li $t7, 1 +/* 0132A8 700126A8 30790080 */ andi $t9, $v1, 0x80 +/* 0132AC 700126AC 13200009 */ beqz $t9, .L700126D4 +/* 0132B0 700126B0 A60F0000 */ sh $t7, ($s0) +/* 0132B4 700126B4 A20A0008 */ sb $t2, 8($s0) +/* 0132B8 700126B8 01802025 */ move $a0, $t4 +/* 0132BC 700126BC 0C0048E0 */ jal ultra_70012380 +/* 0132C0 700126C0 01602825 */ move $a1, $t3 +/* 0132C4 700126C4 A2020009 */ sb $v0, 9($s0) +/* 0132C8 700126C8 018B7021 */ addu $t6, $t4, $t3 +/* 0132CC 700126CC 10000005 */ b .L700126E4 +/* 0132D0 700126D0 A1CA00A8 */ sb $t2, 0xa8($t6) +.L700126D4: +/* 0132D4 700126D4 018BC021 */ addu $t8, $t4, $t3 +/* 0132D8 700126D8 930F00A8 */ lbu $t7, 0xa8($t8) +/* 0132DC 700126DC A2020009 */ sb $v0, 9($s0) +/* 0132E0 700126E0 A20F0008 */ sb $t7, 8($s0) +.L700126E4: +/* 0132E4 700126E4 92020008 */ lbu $v0, 8($s0) +/* 0132E8 700126E8 240100C0 */ li $at, 192 +/* 0132EC 700126EC 305900F0 */ andi $t9, $v0, 0xf0 +/* 0132F0 700126F0 13210012 */ beq $t9, $at, .L7001273C +/* 0132F4 700126F4 240100D0 */ li $at, 208 +/* 0132F8 700126F8 13210010 */ beq $t9, $at, .L7001273C +/* 0132FC 700126FC 01802025 */ move $a0, $t4 +/* 013300 70012700 0C0048E0 */ jal ultra_70012380 +/* 013304 70012704 01602825 */ move $a1, $t3 +/* 013308 70012708 920E0008 */ lbu $t6, 8($s0) +/* 01330C 7001270C 24010090 */ li $at, 144 +/* 013310 70012710 A202000A */ sb $v0, 0xa($s0) +/* 013314 70012714 31D800F0 */ andi $t8, $t6, 0xf0 +/* 013318 70012718 17010009 */ bne $t8, $at, .L70012740 +/* 01331C 7001271C 01805025 */ move $t2, $t4 +/* 013320 70012720 AFA90028 */ sw $t1, 0x28($sp) +/* 013324 70012724 0C004911 */ jal ultra_70012444 +/* 013328 70012728 AFAB0024 */ sw $t3, 0x24($sp) +/* 01332C 7001272C 8FA90028 */ lw $t1, 0x28($sp) +/* 013330 70012730 8FAB0024 */ lw $t3, 0x24($sp) +/* 013334 70012734 10000002 */ b .L70012740 +/* 013338 70012738 AE02000C */ sw $v0, 0xc($s0) +.L7001273C: +/* 01333C 7001273C A200000A */ sb $zero, 0xa($s0) +.L70012740: +/* 013340 70012740 AE090004 */ sw $t1, 4($s0) +/* 013344 70012744 8D8F000C */ lw $t7, 0xc($t4) +/* 013348 70012748 AD890010 */ sw $t1, 0x10($t4) +/* 01334C 7001274C 24010012 */ li $at, 18 +/* 013350 70012750 01E9C821 */ addu $t9, $t7, $t1 +/* 013354 70012754 AD99000C */ sw $t9, 0xc($t4) +/* 013358 70012758 860E0000 */ lh $t6, ($s0) +/* 01335C 7001275C 01805025 */ move $t2, $t4 +/* 013360 70012760 000BC080 */ sll $t8, $t3, 2 +/* 013364 70012764 51C10007 */ beql $t6, $at, .L70012784 +/* 013368 70012768 240E0001 */ li $t6, 1 +/* 01336C 7001276C 0C004911 */ jal ultra_70012444 +/* 013370 70012770 01986821 */ addu $t5, $t4, $t8 +/* 013374 70012774 8DAF00B8 */ lw $t7, 0xb8($t5) +/* 013378 70012778 01E2C821 */ addu $t9, $t7, $v0 +/* 01337C 7001277C ADB900B8 */ sw $t9, 0xb8($t5) +/* 013380 70012780 240E0001 */ li $t6, 1 +.L70012784: +/* 013384 70012784 AD8E0014 */ sw $t6, 0x14($t4) +/* 013388 70012788 8FBF001C */ lw $ra, 0x1c($sp) +/* 01338C 7001278C 8FB00018 */ lw $s0, 0x18($sp) +/* 013390 70012790 27BD0030 */ addiu $sp, $sp, 0x30 +/* 013394 70012794 03E00008 */ jr $ra +/* 013398 70012798 00000000 */ nop + +glabel alCSeqNew +/* 01339C 7001279C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0133A0 700127A0 AFB40028 */ sw $s4, 0x28($sp) +/* 0133A4 700127A4 AFB30024 */ sw $s3, 0x24($sp) +/* 0133A8 700127A8 AFB20020 */ sw $s2, 0x20($sp) +/* 0133AC 700127AC AFB1001C */ sw $s1, 0x1c($sp) +/* 0133B0 700127B0 AFB00018 */ sw $s0, 0x18($sp) +/* 0133B4 700127B4 AFBF002C */ sw $ra, 0x2c($sp) +/* 0133B8 700127B8 240E0001 */ li $t6, 1 +/* 0133BC 700127BC 00808025 */ move $s0, $a0 +/* 0133C0 700127C0 00A0A025 */ move $s4, $a1 +/* 0133C4 700127C4 AC850000 */ sw $a1, ($a0) +/* 0133C8 700127C8 AC800004 */ sw $zero, 4($a0) +/* 0133CC 700127CC AC800010 */ sw $zero, 0x10($a0) +/* 0133D0 700127D0 AC80000C */ sw $zero, 0xc($a0) +/* 0133D4 700127D4 AC8E0014 */ sw $t6, 0x14($a0) +/* 0133D8 700127D8 00808825 */ move $s1, $a0 +/* 0133DC 700127DC 00009025 */ move $s2, $zero +/* 0133E0 700127E0 24130010 */ li $s3, 16 +/* 0133E4 700127E4 00006825 */ move $t5, $zero +/* 0133E8 700127E8 00806025 */ move $t4, $a0 +.L700127EC: +/* 0133EC 700127EC A22000A8 */ sb $zero, 0xa8($s1) +/* 0133F0 700127F0 AD800058 */ sw $zero, 0x58($t4) +/* 0133F4 700127F4 A2200098 */ sb $zero, 0x98($s1) +/* 0133F8 700127F8 8E0F0000 */ lw $t7, ($s0) +/* 0133FC 700127FC 240E0001 */ li $t6, 1 +/* 013400 70012800 01F2C021 */ addu $t8, $t7, $s2 +/* 013404 70012804 8F020000 */ lw $v0, ($t8) +/* 013408 70012808 01AE7804 */ sllv $t7, $t6, $t5 +/* 01340C 7001280C 1040000A */ beqz $v0, .L70012838 +/* 013410 70012810 02827021 */ addu $t6, $s4, $v0 +/* 013414 70012814 8E190004 */ lw $t9, 4($s0) +/* 013418 70012818 02005025 */ move $t2, $s0 +/* 01341C 7001281C 01A05825 */ move $t3, $t5 +/* 013420 70012820 032FC025 */ or $t8, $t9, $t7 +/* 013424 70012824 AE180004 */ sw $t8, 4($s0) +/* 013428 70012828 0C004911 */ jal ultra_70012444 +/* 01342C 7001282C AD8E0018 */ sw $t6, 0x18($t4) +/* 013430 70012830 10000002 */ b .L7001283C +/* 013434 70012834 AD8200B8 */ sw $v0, 0xb8($t4) +.L70012838: +/* 013438 70012838 AD800018 */ sw $zero, 0x18($t4) +.L7001283C: +/* 01343C 7001283C 25AD0001 */ addiu $t5, $t5, 1 +/* 013440 70012840 26310001 */ addiu $s1, $s1, 1 +/* 013444 70012844 26520004 */ addiu $s2, $s2, 4 +/* 013448 70012848 15B3FFE8 */ bne $t5, $s3, .L700127EC +/* 01344C 7001284C 258C0004 */ addiu $t4, $t4, 4 +/* 013450 70012850 8E190000 */ lw $t9, ($s0) +/* 013454 70012854 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 013458 70012858 44812800 */ mtc1 $at, $f5 +/* 01345C 7001285C 8F2F0040 */ lw $t7, 0x40($t9) +/* 013460 70012860 44802000 */ mtc1 $zero, $f4 +/* 013464 70012864 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 013468 70012868 448F3000 */ mtc1 $t7, $f6 +/* 01346C 7001286C 05E10004 */ bgez $t7, .L70012880 +/* 013470 70012870 46803220 */ cvt.s.w $f8, $f6 +/* 013474 70012874 44815000 */ mtc1 $at, $f10 +/* 013478 70012878 00000000 */ nop +/* 01347C 7001287C 460A4200 */ add.s $f8, $f8, $f10 +.L70012880: +/* 013480 70012880 460041A1 */ cvt.d.s $f6, $f8 +/* 013484 70012884 46262283 */ div.d $f10, $f4, $f6 +/* 013488 70012888 46205220 */ cvt.s.d $f8, $f10 +/* 01348C 7001288C E6080008 */ swc1 $f8, 8($s0) +/* 013490 70012890 8FBF002C */ lw $ra, 0x2c($sp) +/* 013494 70012894 8FB40028 */ lw $s4, 0x28($sp) +/* 013498 70012898 8FB30024 */ lw $s3, 0x24($sp) +/* 01349C 7001289C 8FB20020 */ lw $s2, 0x20($sp) +/* 0134A0 700128A0 8FB1001C */ lw $s1, 0x1c($sp) +/* 0134A4 700128A4 8FB00018 */ lw $s0, 0x18($sp) +/* 0134A8 700128A8 03E00008 */ jr $ra +/* 0134AC 700128AC 27BD0030 */ addiu $sp, $sp, 0x30 + +glabel alCSeqNewMarker +/* 0134B0 700128B0 27BDFEB0 */ addiu $sp, $sp, -0x150 +/* 0134B4 700128B4 AFB30020 */ sw $s3, 0x20($sp) +/* 0134B8 700128B8 AFB10018 */ sw $s1, 0x18($sp) +/* 0134BC 700128BC 00A08825 */ move $s1, $a1 +/* 0134C0 700128C0 27B30048 */ addiu $s3, $sp, 0x48 +/* 0134C4 700128C4 AFBF002C */ sw $ra, 0x2c($sp) +/* 0134C8 700128C8 AFB50028 */ sw $s5, 0x28($sp) +/* 0134CC 700128CC AFB40024 */ sw $s4, 0x24($sp) +/* 0134D0 700128D0 AFB2001C */ sw $s2, 0x1c($sp) +/* 0134D4 700128D4 AFB00014 */ sw $s0, 0x14($sp) +/* 0134D8 700128D8 00803825 */ move $a3, $a0 +/* 0134DC 700128DC 00C09025 */ move $s2, $a2 +/* 0134E0 700128E0 8CE50000 */ lw $a1, ($a3) +/* 0134E4 700128E4 0C0049E7 */ jal alCSeqNew +/* 0134E8 700128E8 02602025 */ move $a0, $s3 +/* 0134EC 700128EC 24150004 */ li $s5, 4 +/* 0134F0 700128F0 27B40140 */ addiu $s4, $sp, 0x140 +/* 0134F4 700128F4 27B00058 */ addiu $s0, $sp, 0x58 +/* 0134F8 700128F8 8FAE004C */ lw $t6, 0x4c($sp) +.L700128FC: +/* 0134FC 700128FC 27A40048 */ addiu $a0, $sp, 0x48 +/* 013500 70012900 00801825 */ move $v1, $a0 +/* 013504 70012904 AE2E0000 */ sw $t6, ($s1) +/* 013508 70012908 8FAF0054 */ lw $t7, 0x54($sp) +/* 01350C 7001290C 02201025 */ move $v0, $s1 +/* 013510 70012910 02202825 */ move $a1, $s1 +/* 013514 70012914 AE2F0004 */ sw $t7, 4($s1) +/* 013518 70012918 8FB80058 */ lw $t8, 0x58($sp) +/* 01351C 7001291C AE380008 */ sw $t8, 8($s1) +.L70012920: +/* 013520 70012920 8C680018 */ lw $t0, 0x18($v1) +/* 013524 70012924 24840004 */ addiu $a0, $a0, 4 +/* 013528 70012928 24420010 */ addiu $v0, $v0, 0x10 +/* 01352C 7001292C AC48FFFC */ sw $t0, -4($v0) +/* 013530 70012930 8C690058 */ lw $t1, 0x58($v1) +/* 013534 70012934 24630010 */ addiu $v1, $v1, 0x10 +/* 013538 70012938 24A50004 */ addiu $a1, $a1, 4 +/* 01353C 7001293C AC49003C */ sw $t1, 0x3c($v0) +/* 013540 70012940 908A0094 */ lbu $t2, 0x94($a0) +/* 013544 70012944 A0AA0088 */ sb $t2, 0x88($a1) +/* 013548 70012948 908B00A4 */ lbu $t3, 0xa4($a0) +/* 01354C 7001294C A0AB0098 */ sb $t3, 0x98($a1) +/* 013550 70012950 8C6C00A8 */ lw $t4, 0xa8($v1) +/* 013554 70012954 AC4C009C */ sw $t4, 0x9c($v0) +/* 013558 70012958 8C6D000C */ lw $t5, 0xc($v1) +/* 01355C 7001295C AC4D0000 */ sw $t5, ($v0) +/* 013560 70012960 8C6E004C */ lw $t6, 0x4c($v1) +/* 013564 70012964 AC4E0040 */ sw $t6, 0x40($v0) +/* 013568 70012968 908F0095 */ lbu $t7, 0x95($a0) +/* 01356C 7001296C A0AF0089 */ sb $t7, 0x89($a1) +/* 013570 70012970 909800A5 */ lbu $t8, 0xa5($a0) +/* 013574 70012974 A0B80099 */ sb $t8, 0x99($a1) +/* 013578 70012978 8C7900AC */ lw $t9, 0xac($v1) +/* 01357C 7001297C AC5900A0 */ sw $t9, 0xa0($v0) +/* 013580 70012980 8C680010 */ lw $t0, 0x10($v1) +/* 013584 70012984 AC480004 */ sw $t0, 4($v0) +/* 013588 70012988 8C690050 */ lw $t1, 0x50($v1) +/* 01358C 7001298C AC490044 */ sw $t1, 0x44($v0) +/* 013590 70012990 908A0096 */ lbu $t2, 0x96($a0) +/* 013594 70012994 A0AA008A */ sb $t2, 0x8a($a1) +/* 013598 70012998 908B00A6 */ lbu $t3, 0xa6($a0) +/* 01359C 7001299C A0AB009A */ sb $t3, 0x9a($a1) +/* 0135A0 700129A0 8C6C00B0 */ lw $t4, 0xb0($v1) +/* 0135A4 700129A4 AC4C00A4 */ sw $t4, 0xa4($v0) +/* 0135A8 700129A8 8C6D0014 */ lw $t5, 0x14($v1) +/* 0135AC 700129AC AC4D0008 */ sw $t5, 8($v0) +/* 0135B0 700129B0 8C6E0054 */ lw $t6, 0x54($v1) +/* 0135B4 700129B4 AC4E0048 */ sw $t6, 0x48($v0) +/* 0135B8 700129B8 908F0097 */ lbu $t7, 0x97($a0) +/* 0135BC 700129BC A0AF008B */ sb $t7, 0x8b($a1) +/* 0135C0 700129C0 909800A7 */ lbu $t8, 0xa7($a0) +/* 0135C4 700129C4 A0B8009B */ sb $t8, 0x9b($a1) +/* 0135C8 700129C8 8C7900B4 */ lw $t9, 0xb4($v1) +/* 0135CC 700129CC 1490FFD4 */ bne $a0, $s0, .L70012920 +/* 0135D0 700129D0 AC5900A8 */ sw $t9, 0xa8($v0) +/* 0135D4 700129D4 02602025 */ move $a0, $s3 +/* 0135D8 700129D8 0C004929 */ jal alCSeqNextEvent +/* 0135DC 700129DC 02802825 */ move $a1, $s4 +/* 0135E0 700129E0 87A80140 */ lh $t0, 0x140($sp) +/* 0135E4 700129E4 8FA90054 */ lw $t1, 0x54($sp) +/* 0135E8 700129E8 11150003 */ beq $t0, $s5, .L700129F8 +/* 0135EC 700129EC 0132082B */ sltu $at, $t1, $s2 +/* 0135F0 700129F0 5420FFC2 */ bnezl $at, .L700128FC +/* 0135F4 700129F4 8FAE004C */ lw $t6, 0x4c($sp) +.L700129F8: +/* 0135F8 700129F8 8FBF002C */ lw $ra, 0x2c($sp) +/* 0135FC 700129FC 8FB00014 */ lw $s0, 0x14($sp) +/* 013600 70012A00 8FB10018 */ lw $s1, 0x18($sp) +/* 013604 70012A04 8FB2001C */ lw $s2, 0x1c($sp) +/* 013608 70012A08 8FB30020 */ lw $s3, 0x20($sp) +/* 01360C 70012A0C 8FB40024 */ lw $s4, 0x24($sp) +/* 013610 70012A10 8FB50028 */ lw $s5, 0x28($sp) +/* 013614 70012A14 03E00008 */ jr $ra +/* 013618 70012A18 27BD0150 */ addiu $sp, $sp, 0x150 + +glabel alCSeqGetTicks +/* 01361C 70012A1C 03E00008 */ jr $ra +/* 013620 70012A20 8C82000C */ lw $v0, 0xc($a0) + +glabel alCSeqSecToTicks +/* 013624 70012A24 8C8E0000 */ lw $t6, ($a0) +/* 013628 70012A28 44856000 */ mtc1 $a1, $f12 +/* 01362C 70012A2C 3C018003 */ lui $at, %hi(F64_800296D0) +/* 013630 70012A30 8DCF0040 */ lw $t7, 0x40($t6) +/* 013634 70012A34 D42696D0 */ ldc1 $f6, %lo(F64_800296D0)($at) +/* 013638 70012A38 46006121 */ cvt.d.s $f4, $f12 +/* 01363C 70012A3C 448F5000 */ mtc1 $t7, $f10 +/* 013640 70012A40 46262202 */ mul.d $f8, $f4, $f6 +/* 013644 70012A44 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 013648 70012A48 05E10005 */ bgez $t7, .L70012A60 +/* 01364C 70012A4C 46805421 */ cvt.d.w $f16, $f10 +/* 013650 70012A50 44819800 */ mtc1 $at, $f19 +/* 013654 70012A54 44809000 */ mtc1 $zero, $f18 +/* 013658 70012A58 00000000 */ nop +/* 01365C 70012A5C 46328400 */ add.d $f16, $f16, $f18 +.L70012A60: +/* 013660 70012A60 44863000 */ mtc1 $a2, $f6 +/* 013664 70012A64 46304102 */ mul.d $f4, $f8, $f16 +/* 013668 70012A68 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 01366C 70012A6C 04C10005 */ bgez $a2, .L70012A84 +/* 013670 70012A70 468032A1 */ cvt.d.w $f10, $f6 +/* 013674 70012A74 44819800 */ mtc1 $at, $f19 +/* 013678 70012A78 44809000 */ mtc1 $zero, $f18 +/* 01367C 70012A7C 00000000 */ nop +/* 013680 70012A80 46325280 */ add.d $f10, $f10, $f18 +.L70012A84: +/* 013684 70012A84 462A2203 */ div.d $f8, $f4, $f10 +/* 013688 70012A88 24020001 */ li $v0, 1 +/* 01368C 70012A8C 3C0141E0 */ li $at, 0x41E00000 # 28.000000 +/* 013690 70012A90 4458F800 */ cfc1 $t8, $31 +/* 013694 70012A94 44C2F800 */ ctc1 $v0, $31 +/* 013698 70012A98 00000000 */ nop +/* 01369C 70012A9C 46204424 */ cvt.w.d $f16, $f8 +/* 0136A0 70012AA0 4442F800 */ cfc1 $v0, $31 +/* 0136A4 70012AA4 00000000 */ nop +/* 0136A8 70012AA8 30420078 */ andi $v0, $v0, 0x78 +/* 0136AC 70012AAC 50400016 */ beql $v0, $zero, .L70012B08 +/* 0136B0 70012AB0 44028000 */ mfc1 $v0, $f16 +/* 0136B4 70012AB4 44818800 */ mtc1 $at, $f17 +/* 0136B8 70012AB8 44808000 */ mtc1 $zero, $f16 +/* 0136BC 70012ABC 24020001 */ li $v0, 1 +/* 0136C0 70012AC0 3C018000 */ lui $at, 0x8000 +/* 0136C4 70012AC4 46304401 */ sub.d $f16, $f8, $f16 +/* 0136C8 70012AC8 44C2F800 */ ctc1 $v0, $31 +/* 0136CC 70012ACC 00000000 */ nop +/* 0136D0 70012AD0 46208424 */ cvt.w.d $f16, $f16 +/* 0136D4 70012AD4 4442F800 */ cfc1 $v0, $31 +/* 0136D8 70012AD8 00000000 */ nop +/* 0136DC 70012ADC 30420078 */ andi $v0, $v0, 0x78 +/* 0136E0 70012AE0 54400006 */ bnezl $v0, .L70012AFC +/* 0136E4 70012AE4 44D8F800 */ ctc1 $t8, $31 +/* 0136E8 70012AE8 44028000 */ mfc1 $v0, $f16 +/* 0136EC 70012AEC 44D8F800 */ ctc1 $t8, $31 +/* 0136F0 70012AF0 03E00008 */ jr $ra +/* 0136F4 70012AF4 00411025 */ or $v0, $v0, $at + +/* 0136F8 70012AF8 44D8F800 */ ctc1 $t8, $31 +.L70012AFC: +/* 0136FC 70012AFC 03E00008 */ jr $ra +/* 013700 70012B00 2402FFFF */ li $v0, -1 + +/* 013704 70012B04 44028000 */ mfc1 $v0, $f16 +.L70012B08: +/* 013708 70012B08 00000000 */ nop +/* 01370C 70012B0C 0442FFFB */ bltzl $v0, .L70012AFC +/* 013710 70012B10 44D8F800 */ ctc1 $t8, $31 +/* 013714 70012B14 44D8F800 */ ctc1 $t8, $31 +/* 013718 70012B18 03E00008 */ jr $ra +/* 01371C 70012B1C 00000000 */ nop + +glabel alCSeqTicksToSec +/* 013720 70012B20 44852000 */ mtc1 $a1, $f4 +/* 013724 70012B24 44864000 */ mtc1 $a2, $f8 +/* 013728 70012B28 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 01372C 70012B2C 468021A0 */ cvt.s.w $f6, $f4 +/* 013730 70012B30 04C10004 */ bgez $a2, .L70012B44 +/* 013734 70012B34 468042A0 */ cvt.s.w $f10, $f8 +/* 013738 70012B38 44818000 */ mtc1 $at, $f16 +/* 01373C 70012B3C 00000000 */ nop +/* 013740 70012B40 46105280 */ add.s $f10, $f10, $f16 +.L70012B44: +/* 013744 70012B44 8C8E0000 */ lw $t6, ($a0) +/* 013748 70012B48 460A3482 */ mul.s $f18, $f6, $f10 +/* 01374C 70012B4C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 013750 70012B50 8DCF0040 */ lw $t7, 0x40($t6) +/* 013754 70012B54 448F4000 */ mtc1 $t7, $f8 +/* 013758 70012B58 46009121 */ cvt.d.s $f4, $f18 +/* 01375C 70012B5C 05E10004 */ bgez $t7, .L70012B70 +/* 013760 70012B60 46804420 */ cvt.s.w $f16, $f8 +/* 013764 70012B64 44813000 */ mtc1 $at, $f6 +/* 013768 70012B68 00000000 */ nop +/* 01376C 70012B6C 46068400 */ add.s $f16, $f16, $f6 +.L70012B70: +/* 013770 70012B70 3C018003 */ lui $at, %hi(F64_800296D8) +/* 013774 70012B74 D43296D8 */ ldc1 $f18, %lo(F64_800296D8)($at) +/* 013778 70012B78 460082A1 */ cvt.d.s $f10, $f16 +/* 01377C 70012B7C 46325202 */ mul.d $f8, $f10, $f18 +/* 013780 70012B80 46282183 */ div.d $f6, $f4, $f8 +/* 013784 70012B84 03E00008 */ jr $ra +/* 013788 70012B88 46203020 */ cvt.s.d $f0, $f6 + +glabel __alCSeqNextDelta +/* 01378C 70012B8C 8C8E0004 */ lw $t6, 4($a0) +/* 013790 70012B90 00A04825 */ move $t1, $a1 +/* 013794 70012B94 2403FFFF */ li $v1, -1 +/* 013798 70012B98 15C00003 */ bnez $t6, .L70012BA8 +/* 01379C 70012B9C 8C820010 */ lw $v0, 0x10($a0) +/* 0137A0 70012BA0 03E00008 */ jr $ra +/* 0137A4 70012BA4 00001025 */ move $v0, $zero + +.L70012BA8: +/* 0137A8 70012BA8 00003025 */ move $a2, $zero +/* 0137AC 70012BAC 240A0010 */ li $t2, 16 +/* 0137B0 70012BB0 8C850004 */ lw $a1, 4($a0) +.L70012BB4: +/* 0137B4 70012BB4 24CE0001 */ addiu $t6, $a2, 1 +/* 0137B8 70012BB8 00C57806 */ srlv $t7, $a1, $a2 +/* 0137BC 70012BBC 31F80001 */ andi $t8, $t7, 1 +/* 0137C0 70012BC0 53000010 */ beql $t8, $zero, .L70012C04 +/* 0137C4 70012BC4 01C57806 */ srlv $t7, $a1, $t6 +/* 0137C8 70012BC8 8C8B0014 */ lw $t3, 0x14($a0) +/* 0137CC 70012BCC 0006C880 */ sll $t9, $a2, 2 +/* 0137D0 70012BD0 00993821 */ addu $a3, $a0, $t9 +/* 0137D4 70012BD4 51600006 */ beql $t3, $zero, .L70012BF0 +/* 0137D8 70012BD8 8CE800B8 */ lw $t0, 0xb8($a3) +/* 0137DC 70012BDC 8CEC00B8 */ lw $t4, 0xb8($a3) +/* 0137E0 70012BE0 01826823 */ subu $t5, $t4, $v0 +/* 0137E4 70012BE4 ACED00B8 */ sw $t5, 0xb8($a3) +/* 0137E8 70012BE8 8C850004 */ lw $a1, 4($a0) +/* 0137EC 70012BEC 8CE800B8 */ lw $t0, 0xb8($a3) +.L70012BF0: +/* 0137F0 70012BF0 0103082B */ sltu $at, $t0, $v1 +/* 0137F4 70012BF4 50200003 */ beql $at, $zero, .L70012C04 +/* 0137F8 70012BF8 01C57806 */ srlv $t7, $a1, $t6 +/* 0137FC 70012BFC 01001825 */ move $v1, $t0 +/* 013800 70012C00 01C57806 */ srlv $t7, $a1, $t6 +.L70012C04: +/* 013804 70012C04 31F80001 */ andi $t8, $t7, 1 +/* 013808 70012C08 1300000F */ beqz $t8, .L70012C48 +/* 01380C 70012C0C 24CE0002 */ addiu $t6, $a2, 2 +/* 013810 70012C10 8C8B0014 */ lw $t3, 0x14($a0) +/* 013814 70012C14 0006C880 */ sll $t9, $a2, 2 +/* 013818 70012C18 00993821 */ addu $a3, $a0, $t9 +/* 01381C 70012C1C 51600006 */ beql $t3, $zero, .L70012C38 +/* 013820 70012C20 8CE800BC */ lw $t0, 0xbc($a3) +/* 013824 70012C24 8CEC00BC */ lw $t4, 0xbc($a3) +/* 013828 70012C28 01826823 */ subu $t5, $t4, $v0 +/* 01382C 70012C2C ACED00BC */ sw $t5, 0xbc($a3) +/* 013830 70012C30 8C850004 */ lw $a1, 4($a0) +/* 013834 70012C34 8CE800BC */ lw $t0, 0xbc($a3) +.L70012C38: +/* 013838 70012C38 0103082B */ sltu $at, $t0, $v1 +/* 01383C 70012C3C 50200003 */ beql $at, $zero, .L70012C4C +/* 013840 70012C40 01C57806 */ srlv $t7, $a1, $t6 +/* 013844 70012C44 01001825 */ move $v1, $t0 +.L70012C48: +/* 013848 70012C48 01C57806 */ srlv $t7, $a1, $t6 +.L70012C4C: +/* 01384C 70012C4C 31F80001 */ andi $t8, $t7, 1 +/* 013850 70012C50 1300000F */ beqz $t8, .L70012C90 +/* 013854 70012C54 24CE0003 */ addiu $t6, $a2, 3 +/* 013858 70012C58 8C8B0014 */ lw $t3, 0x14($a0) +/* 01385C 70012C5C 0006C880 */ sll $t9, $a2, 2 +/* 013860 70012C60 00993821 */ addu $a3, $a0, $t9 +/* 013864 70012C64 51600006 */ beql $t3, $zero, .L70012C80 +/* 013868 70012C68 8CE800C0 */ lw $t0, 0xc0($a3) +/* 01386C 70012C6C 8CEC00C0 */ lw $t4, 0xc0($a3) +/* 013870 70012C70 01826823 */ subu $t5, $t4, $v0 +/* 013874 70012C74 ACED00C0 */ sw $t5, 0xc0($a3) +/* 013878 70012C78 8C850004 */ lw $a1, 4($a0) +/* 01387C 70012C7C 8CE800C0 */ lw $t0, 0xc0($a3) +.L70012C80: +/* 013880 70012C80 0103082B */ sltu $at, $t0, $v1 +/* 013884 70012C84 50200003 */ beql $at, $zero, .L70012C94 +/* 013888 70012C88 01C57806 */ srlv $t7, $a1, $t6 +/* 01388C 70012C8C 01001825 */ move $v1, $t0 +.L70012C90: +/* 013890 70012C90 01C57806 */ srlv $t7, $a1, $t6 +.L70012C94: +/* 013894 70012C94 31F80001 */ andi $t8, $t7, 1 +/* 013898 70012C98 5300000F */ beql $t8, $zero, .L70012CD8 +/* 01389C 70012C9C 24C60004 */ addiu $a2, $a2, 4 +/* 0138A0 70012CA0 8C8B0014 */ lw $t3, 0x14($a0) +/* 0138A4 70012CA4 0006C880 */ sll $t9, $a2, 2 +/* 0138A8 70012CA8 00993821 */ addu $a3, $a0, $t9 +/* 0138AC 70012CAC 51600005 */ beql $t3, $zero, .L70012CC4 +/* 0138B0 70012CB0 8CE500C4 */ lw $a1, 0xc4($a3) +/* 0138B4 70012CB4 8CEC00C4 */ lw $t4, 0xc4($a3) +/* 0138B8 70012CB8 01826823 */ subu $t5, $t4, $v0 +/* 0138BC 70012CBC ACED00C4 */ sw $t5, 0xc4($a3) +/* 0138C0 70012CC0 8CE500C4 */ lw $a1, 0xc4($a3) +.L70012CC4: +/* 0138C4 70012CC4 00A3082B */ sltu $at, $a1, $v1 +/* 0138C8 70012CC8 50200003 */ beql $at, $zero, .L70012CD8 +/* 0138CC 70012CCC 24C60004 */ addiu $a2, $a2, 4 +/* 0138D0 70012CD0 00A01825 */ move $v1, $a1 +/* 0138D4 70012CD4 24C60004 */ addiu $a2, $a2, 4 +.L70012CD8: +/* 0138D8 70012CD8 54CAFFB6 */ bnel $a2, $t2, .L70012BB4 +/* 0138DC 70012CDC 8C850004 */ lw $a1, 4($a0) +/* 0138E0 70012CE0 AC800014 */ sw $zero, 0x14($a0) +/* 0138E4 70012CE4 AD230000 */ sw $v1, ($t1) +/* 0138E8 70012CE8 24020001 */ li $v0, 1 +/* 0138EC 70012CEC 03E00008 */ jr $ra +/* 0138F0 70012CF0 00000000 */ nop + + +.section .rodata +glabel F64_800296D0 +.double 1000000.0 +glabel F64_800296D8 +.double 1000000.0 diff --git a/src/libultra/cspgetstate.s b/src/libultra/cspgetstate.s new file mode 100644 index 0000000..0f380ae --- /dev/null +++ b/src/libultra/cspgetstate.s @@ -0,0 +1,12 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alCSPGetState +/* 012E30 70012230 03E00008 */ jr $ra +/* 012E34 70012234 8C82002C */ lw $v0, 0x2c($a0) diff --git a/src/libultra/csplayer.s b/src/libultra/csplayer.s new file mode 100644 index 0000000..9fa282a --- /dev/null +++ b/src/libultra/csplayer.s @@ -0,0 +1,1359 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel __CSPPostNextSeqEvent +/* 011BC0 70010FC0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 011BC4 70010FC4 AFBF0014 */ sw $ra, 0x14($sp) +/* 011BC8 70010FC8 8C8E002C */ lw $t6, 0x2c($a0) +/* 011BCC 70010FCC 24010001 */ li $at, 1 +/* 011BD0 70010FD0 00803825 */ move $a3, $a0 +/* 011BD4 70010FD4 55C10013 */ bnel $t6, $at, .L70011024 +/* 011BD8 70010FD8 8FBF0014 */ lw $ra, 0x14($sp) +/* 011BDC 70010FDC 8C840018 */ lw $a0, 0x18($a0) +/* 011BE0 70010FE0 27A5001C */ addiu $a1, $sp, 0x1c +/* 011BE4 70010FE4 5080000F */ beql $a0, $zero, .L70011024 +/* 011BE8 70010FE8 8FBF0014 */ lw $ra, 0x14($sp) +/* 011BEC 70010FEC 0C004AE3 */ jal __alCSeqNextDelta +/* 011BF0 70010FF0 AFA70030 */ sw $a3, 0x30($sp) +/* 011BF4 70010FF4 1040000A */ beqz $v0, .L70011020 +/* 011BF8 70010FF8 8FA70030 */ lw $a3, 0x30($sp) +/* 011BFC 70010FFC A7A00020 */ sh $zero, 0x20($sp) +/* 011C00 70011000 8CEF0024 */ lw $t7, 0x24($a3) +/* 011C04 70011004 8FB8001C */ lw $t8, 0x1c($sp) +/* 011C08 70011008 24E40048 */ addiu $a0, $a3, 0x48 +/* 011C0C 7001100C 27A50020 */ addiu $a1, $sp, 0x20 +/* 011C10 70011010 01F80019 */ multu $t7, $t8 +/* 011C14 70011014 00003012 */ mflo $a2 +/* 011C18 70011018 0C004BBF */ jal alEvtqPostEvent +/* 011C1C 7001101C 00000000 */ nop +.L70011020: +/* 011C20 70011020 8FBF0014 */ lw $ra, 0x14($sp) +.L70011024: +/* 011C24 70011024 27BD0030 */ addiu $sp, $sp, 0x30 +/* 011C28 70011028 03E00008 */ jr $ra +/* 011C2C 7001102C 00000000 */ nop + +glabel ultra_70011030 +/* 011C30 70011030 8C820018 */ lw $v0, 0x18($a0) +/* 011C34 70011034 241801E8 */ li $t8, 488 +/* 011C38 70011038 50400008 */ beql $v0, $zero, .L7001105C +/* 011C3C 7001103C AC980024 */ sw $t8, 0x24($a0) +/* 011C40 70011040 C4440008 */ lwc1 $f4, 8($v0) +/* 011C44 70011044 46046182 */ mul.s $f6, $f12, $f4 +/* 011C48 70011048 4600320D */ trunc.w.s $f8, $f6 +/* 011C4C 7001104C 440F4000 */ mfc1 $t7, $f8 +/* 011C50 70011050 03E00008 */ jr $ra +/* 011C54 70011054 AC8F0024 */ sw $t7, 0x24($a0) + +/* 011C58 70011058 AC980024 */ sw $t8, 0x24($a0) +.L7001105C: +/* 011C5C 7001105C 03E00008 */ jr $ra +/* 011C60 70011060 00000000 */ nop + +/* 011C64 70011064 03E00008 */ jr $ra +/* 011C68 70011068 00000000 */ nop + +glabel ultra_7001106C +/* 011C6C 7001106C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 011C70 70011070 AFBF0014 */ sw $ra, 0x14($sp) +/* 011C74 70011074 90AE0008 */ lbu $t6, 8($a1) +/* 011C78 70011078 240100FF */ li $at, 255 +/* 011C7C 7001107C 00008025 */ move $s0, $zero +/* 011C80 70011080 15C1006A */ bne $t6, $at, .L7001122C +/* 011C84 70011084 00009825 */ move $s3, $zero +/* 011C88 70011088 90AF0009 */ lbu $t7, 9($a1) +/* 011C8C 7001108C 24010051 */ li $at, 81 +/* 011C90 70011090 24A20004 */ addiu $v0, $a1, 4 +/* 011C94 70011094 55E10066 */ bnel $t7, $at, .L70011230 +/* 011C98 70011098 8FBF0014 */ lw $ra, 0x14($sp) +/* 011C9C 7001109C 904E0008 */ lbu $t6, 8($v0) +/* 011CA0 700110A0 90580007 */ lbu $t8, 7($v0) +/* 011CA4 700110A4 8EFE0024 */ lw $fp, 0x24($s7) +/* 011CA8 700110A8 000E7A00 */ sll $t7, $t6, 8 +/* 011CAC 700110AC 904E0009 */ lbu $t6, 9($v0) +/* 011CB0 700110B0 0018CC00 */ sll $t9, $t8, 0x10 +/* 011CB4 700110B4 032FC025 */ or $t8, $t9, $t7 +/* 011CB8 700110B8 030E1825 */ or $v1, $t8, $t6 +/* 011CBC 700110BC 44832000 */ mtc1 $v1, $f4 +/* 011CC0 700110C0 02E02025 */ move $a0, $s7 +/* 011CC4 700110C4 0C00440C */ jal ultra_70011030 +/* 011CC8 700110C8 46802320 */ cvt.s.w $f12, $f4 +/* 011CCC 700110CC 8EF10050 */ lw $s1, 0x50($s7) +/* 011CD0 700110D0 1220001D */ beqz $s1, .L70011148 +/* 011CD4 700110D4 00000000 */ nop +/* 011CD8 700110D8 24140015 */ li $s4, 21 +.L700110DC: +/* 011CDC 700110DC 862F000C */ lh $t7, 0xc($s1) +/* 011CE0 700110E0 8E390008 */ lw $t9, 8($s1) +/* 011CE4 700110E4 8E320000 */ lw $s2, ($s1) +/* 011CE8 700110E8 168F0015 */ bne $s4, $t7, .L70011140 +/* 011CEC 700110EC 02198021 */ addu $s0, $s0, $t9 +/* 011CF0 700110F0 0C003AA4 */ jal alUnlink +/* 011CF4 700110F4 02202025 */ move $a0, $s1 +/* 011CF8 700110F8 52600007 */ beql $s3, $zero, .L70011118 +/* 011CFC 700110FC AE200000 */ sw $zero, ($s1) +/* 011D00 70011100 02202025 */ move $a0, $s1 +/* 011D04 70011104 0C003AB0 */ jal alLink +/* 011D08 70011108 02602825 */ move $a1, $s3 +/* 011D0C 7001110C 10000004 */ b .L70011120 +/* 011D10 70011110 00000000 */ nop +/* 011D14 70011114 AE200000 */ sw $zero, ($s1) +.L70011118: +/* 011D18 70011118 AE200004 */ sw $zero, 4($s1) +/* 011D1C 7001111C 02209825 */ move $s3, $s1 +.L70011120: +/* 011D20 70011120 12400006 */ beqz $s2, .L7001113C +/* 011D24 70011124 02001825 */ move $v1, $s0 +/* 011D28 70011128 8E220008 */ lw $v0, 8($s1) +/* 011D2C 7001112C 8E580008 */ lw $t8, 8($s2) +/* 011D30 70011130 02028023 */ subu $s0, $s0, $v0 +/* 011D34 70011134 03027021 */ addu $t6, $t8, $v0 +/* 011D38 70011138 AE4E0008 */ sw $t6, 8($s2) +.L7001113C: +/* 011D3C 7001113C AE230008 */ sw $v1, 8($s1) +.L70011140: +/* 011D40 70011140 1640FFE6 */ bnez $s2, .L700110DC +/* 011D44 70011144 02408825 */ move $s1, $s2 +.L70011148: +/* 011D48 70011148 12600038 */ beqz $s3, .L7001122C +/* 011D4C 7001114C 02608825 */ move $s1, $s3 +/* 011D50 70011150 26F40048 */ addiu $s4, $s7, 0x48 +/* 011D54 70011154 26950008 */ addiu $s5, $s4, 8 +/* 011D58 70011158 2416FFF8 */ li $s6, -8 +.L7001115C: +/* 011D5C 7001115C 8E390008 */ lw $t9, 8($s1) +/* 011D60 70011160 8EEF0024 */ lw $t7, 0x24($s7) +/* 011D64 70011164 8E320000 */ lw $s2, ($s1) +/* 011D68 70011168 033E001A */ div $zero, $t9, $fp +/* 011D6C 7001116C 00001012 */ mflo $v0 +/* 011D70 70011170 24040001 */ li $a0, 1 +/* 011D74 70011174 17C00002 */ bnez $fp, .L70011180 +/* 011D78 70011178 00000000 */ nop +/* 011D7C 7001117C 0007000D */ break 7 +.L70011180: +/* 011D80 70011180 2401FFFF */ li $at, -1 +/* 011D84 70011184 17C10004 */ bne $fp, $at, .L70011198 +/* 011D88 70011188 3C018000 */ lui $at, 0x8000 +/* 011D8C 7001118C 17210002 */ bne $t9, $at, .L70011198 +/* 011D90 70011190 00000000 */ nop +/* 011D94 70011194 0006000D */ break 6 +.L70011198: +/* 011D98 70011198 01E20019 */ multu $t7, $v0 +/* 011D9C 7001119C 02A08025 */ move $s0, $s5 +/* 011DA0 700111A0 0000C012 */ mflo $t8 +/* 011DA4 700111A4 AE380008 */ sw $t8, 8($s1) +/* 011DA8 700111A8 0C00374C */ jal osSetIntMask +/* 011DAC 700111AC 00000000 */ nop +/* 011DB0 700111B0 1296001A */ beq $s4, $s6, .L7001121C +/* 011DB4 700111B4 00409825 */ move $s3, $v0 +/* 011DB8 700111B8 8E040000 */ lw $a0, ($s0) +.L700111BC: +/* 011DBC 700111BC 54800007 */ bnezl $a0, .L700111DC +/* 011DC0 700111C0 8E220008 */ lw $v0, 8($s1) +/* 011DC4 700111C4 02202025 */ move $a0, $s1 +/* 011DC8 700111C8 0C003AB0 */ jal alLink +/* 011DCC 700111CC 02002825 */ move $a1, $s0 +/* 011DD0 700111D0 10000012 */ b .L7001121C +/* 011DD4 700111D4 00000000 */ nop +/* 011DD8 700111D8 8E220008 */ lw $v0, 8($s1) +.L700111DC: +/* 011DDC 700111DC 8C830008 */ lw $v1, 8($a0) +/* 011DE0 700111E0 00803025 */ move $a2, $a0 +/* 011DE4 700111E4 0043082A */ slt $at, $v0, $v1 +/* 011DE8 700111E8 10200008 */ beqz $at, .L7001120C +/* 011DEC 700111EC 0043C823 */ subu $t9, $v0, $v1 +/* 011DF0 700111F0 00627023 */ subu $t6, $v1, $v0 +/* 011DF4 700111F4 AC8E0008 */ sw $t6, 8($a0) +/* 011DF8 700111F8 02202025 */ move $a0, $s1 +/* 011DFC 700111FC 0C003AB0 */ jal alLink +/* 011E00 70011200 02002825 */ move $a1, $s0 +/* 011E04 70011204 10000005 */ b .L7001121C +/* 011E08 70011208 00000000 */ nop +.L7001120C: +/* 011E0C 7001120C AE390008 */ sw $t9, 8($s1) +/* 011E10 70011210 8E100000 */ lw $s0, ($s0) +/* 011E14 70011214 5600FFE9 */ bnezl $s0, .L700111BC +/* 011E18 70011218 8E040000 */ lw $a0, ($s0) +.L7001121C: +/* 011E1C 7001121C 0C00374C */ jal osSetIntMask +/* 011E20 70011220 02602025 */ move $a0, $s3 +/* 011E24 70011224 1640FFCD */ bnez $s2, .L7001115C +/* 011E28 70011228 02408825 */ move $s1, $s2 +.L7001122C: +/* 011E2C 7001122C 8FBF0014 */ lw $ra, 0x14($sp) +.L70011230: +/* 011E30 70011230 27BD0018 */ addiu $sp, $sp, 0x18 +/* 011E34 70011234 03E00008 */ jr $ra +/* 011E38 70011238 00000000 */ nop + +glabel __CSPHandleMIDIMsg +/* 011E3C 7001123C 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 011E40 70011240 AFBF0024 */ sw $ra, 0x24($sp) +/* 011E44 70011244 91160008 */ lbu $s6, 8($t0) +/* 011E48 70011248 91140009 */ lbu $s4, 9($t0) +/* 011E4C 7001124C 9111000A */ lbu $s1, 0xa($t0) +/* 011E50 70011250 32C300F0 */ andi $v1, $s6, 0xf0 +/* 011E54 70011254 246FFF80 */ addiu $t7, $v1, -0x80 +/* 011E58 70011258 2DE10061 */ sltiu $at, $t7, 0x61 +/* 011E5C 7001125C 32CE000F */ andi $t6, $s6, 0xf +/* 011E60 70011260 102001FC */ beqz $at, .L70011A54 +/* 011E64 70011264 01C0B025 */ move $s6, $t6 +/* 011E68 70011268 000F7880 */ sll $t7, $t7, 2 +/* 011E6C 7001126C 3C018003 */ lui $at, %hi(audio_related_jump_table_0) # 0x8003 +/* 011E70 70011270 002F0821 */ addu $at, $at, $t7 +/* 011E74 70011274 8C2F9490 */ lw $t7, %lo(audio_related_jump_table_0)($at) # -0x6b70 +/* 011E78 70011278 01E00008 */ jr $t7 +/* 011E7C 7001127C 00000000 */ nop +.L70011280: +/* 011E80 70011280 522000E8 */ beql $s1, $zero, .L70011624 +/* 011E84 70011284 02402025 */ move $a0, $s2 +/* 011E88 70011288 8E58002C */ lw $t8, 0x2c($s2) +/* 011E8C 7001128C 24010001 */ li $at, 1 +/* 011E90 70011290 02402025 */ move $a0, $s2 +/* 011E94 70011294 170101EF */ bne $t8, $at, .L70011A54 +/* 011E98 70011298 328500FF */ andi $a1, $s4, 0xff +/* 011E9C 7001129C 322600FF */ andi $a2, $s1, 0xff +/* 011EA0 700112A0 32C700FF */ andi $a3, $s6, 0xff +/* 011EA4 700112A4 0C0070D8 */ jal __lookupSoundQuick +/* 011EA8 700112A8 AFA800BC */ sw $t0, 0xbc($sp) +/* 011EAC 700112AC 104001E9 */ beqz $v0, .L70011A54 +/* 011EB0 700112B0 0040B825 */ move $s7, $v0 +/* 011EB4 700112B4 8E590060 */ lw $t9, 0x60($s2) +/* 011EB8 700112B8 0016F100 */ sll $fp, $s6, 4 +/* 011EBC 700112BC 02402025 */ move $a0, $s2 +/* 011EC0 700112C0 033E7021 */ addu $t6, $t9, $fp +/* 011EC4 700112C4 91CF0008 */ lbu $t7, 8($t6) +/* 011EC8 700112C8 A7A00076 */ sh $zero, 0x76($sp) +/* 011ECC 700112CC A3A00078 */ sb $zero, 0x78($sp) +/* 011ED0 700112D0 328500FF */ andi $a1, $s4, 0xff +/* 011ED4 700112D4 322600FF */ andi $a2, $s1, 0xff +/* 011ED8 700112D8 32C700FF */ andi $a3, $s6, 0xff +/* 011EDC 700112DC 0C0070BC */ jal __mapVoice +/* 011EE0 700112E0 A7AF0074 */ sh $t7, 0x74($sp) +/* 011EE4 700112E4 104001DB */ beqz $v0, .L70011A54 +/* 011EE8 700112E8 00408025 */ move $s0, $v0 +/* 011EEC 700112EC 8E440014 */ lw $a0, 0x14($s2) +/* 011EF0 700112F0 24450004 */ addiu $a1, $v0, 4 +/* 011EF4 700112F4 AFA50038 */ sw $a1, 0x38($sp) +/* 011EF8 700112F8 0C004C96 */ jal alSynAllocVoice +/* 011EFC 700112FC 27A60074 */ addiu $a2, $sp, 0x74 +/* 011F00 70011300 AE170020 */ sw $s7, 0x20($s0) +/* 011F04 70011304 A2000034 */ sb $zero, 0x34($s0) +/* 011F08 70011308 8E580060 */ lw $t8, 0x60($s2) +/* 011F0C 7001130C 24150002 */ li $s5, 2 +/* 011F10 70011310 031EC821 */ addu $t9, $t8, $fp +/* 011F14 70011314 932E000B */ lbu $t6, 0xb($t9) +/* 011F18 70011318 29C10040 */ slti $at, $t6, 0x40 +/* 011F1C 7001131C 54200004 */ bnezl $at, .L70011330 +/* 011F20 70011320 A2000035 */ sb $zero, 0x35($s0) +/* 011F24 70011324 10000002 */ b .L70011330 +/* 011F28 70011328 A2150035 */ sb $s5, 0x35($s0) +/* 011F2C 7001132C A2000035 */ sb $zero, 0x35($s0) +.L70011330: +/* 011F30 70011330 8EE20004 */ lw $v0, 4($s7) +/* 011F34 70011334 904F0004 */ lbu $t7, 4($v0) +/* 011F38 70011338 804E0005 */ lb $t6, 5($v0) +/* 011F3C 7001133C 028FC023 */ subu $t8, $s4, $t7 +/* 011F40 70011340 0018C880 */ sll $t9, $t8, 2 +/* 011F44 70011344 0338C823 */ subu $t9, $t9, $t8 +/* 011F48 70011348 0019C8C0 */ sll $t9, $t9, 3 +/* 011F4C 7001134C 0338C821 */ addu $t9, $t9, $t8 +/* 011F50 70011350 0019C880 */ sll $t9, $t9, 2 +/* 011F54 70011354 032E2021 */ addu $a0, $t9, $t6 +/* 011F58 70011358 00047C00 */ sll $t7, $a0, 0x10 +/* 011F5C 7001135C 0C004DF0 */ jal alCents2Ratio +/* 011F60 70011360 000F2403 */ sra $a0, $t7, 0x10 +/* 011F64 70011364 E6000028 */ swc1 $f0, 0x28($s0) +/* 011F68 70011368 8EF90000 */ lw $t9, ($s7) +/* 011F6C 7001136C 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 011F70 70011370 44812000 */ mtc1 $at, $f4 +/* 011F74 70011374 932E000C */ lbu $t6, 0xc($t9) +/* 011F78 70011378 A20E0030 */ sb $t6, 0x30($s0) +/* 011F7C 7001137C 8EF80000 */ lw $t8, ($s7) +/* 011F80 70011380 8E4F001C */ lw $t7, 0x1c($s2) +/* 011F84 70011384 8F190000 */ lw $t9, ($t8) +/* 011F88 70011388 A2000037 */ sb $zero, 0x37($s0) +/* 011F8C 7001138C 01F97021 */ addu $t6, $t7, $t9 +/* 011F90 70011390 AE0E0024 */ sw $t6, 0x24($s0) +/* 011F94 70011394 8E580060 */ lw $t8, 0x60($s2) +/* 011F98 70011398 031E7821 */ addu $t7, $t8, $fp +/* 011F9C 7001139C 8DF10000 */ lw $s1, ($t7) +/* 011FA0 700113A0 E7A40064 */ swc1 $f4, 0x64($sp) +/* 011FA4 700113A4 92260004 */ lbu $a2, 4($s1) +/* 011FA8 700113A8 50C0001A */ beql $a2, $zero, .L70011414 +/* 011FAC 700113AC 4458F800 */ cfc1 $t8, $31 +/* 011FB0 700113B0 8E420070 */ lw $v0, 0x70($s2) +/* 011FB4 700113B4 50400017 */ beql $v0, $zero, .L70011414 +/* 011FB8 700113B8 4458F800 */ cfc1 $t8, $31 +/* 011FBC 700113BC 92390006 */ lbu $t9, 6($s1) +/* 011FC0 700113C0 92270005 */ lbu $a3, 5($s1) +/* 011FC4 700113C4 27A4005C */ addiu $a0, $sp, 0x5c +/* 011FC8 700113C8 AFB90010 */ sw $t9, 0x10($sp) +/* 011FCC 700113CC 922E0007 */ lbu $t6, 7($s1) +/* 011FD0 700113D0 27A50064 */ addiu $a1, $sp, 0x64 +/* 011FD4 700113D4 0040F809 */ jalr $v0 +/* 011FD8 700113D8 AFAE0014 */ sw $t6, 0x14($sp) +/* 011FDC 700113DC 1040000C */ beqz $v0, .L70011410 +/* 011FE0 700113E0 24180016 */ li $t8, 22 +/* 011FE4 700113E4 8FAF005C */ lw $t7, 0x5c($sp) +/* 011FE8 700113E8 A7B8008C */ sh $t8, 0x8c($sp) +/* 011FEC 700113EC AFB00090 */ sw $s0, 0x90($sp) +/* 011FF0 700113F0 26440048 */ addiu $a0, $s2, 0x48 +/* 011FF4 700113F4 27A5008C */ addiu $a1, $sp, 0x8c +/* 011FF8 700113F8 00403025 */ move $a2, $v0 +/* 011FFC 700113FC 0C004BBF */ jal alEvtqPostEvent +/* 012000 70011400 AFAF0094 */ sw $t7, 0x94($sp) +/* 012004 70011404 92190037 */ lbu $t9, 0x37($s0) +/* 012008 70011408 372E0001 */ ori $t6, $t9, 1 +/* 01200C 7001140C A20E0037 */ sb $t6, 0x37($s0) +.L70011410: +/* 012010 70011410 4458F800 */ cfc1 $t8, $31 +.L70011414: +/* 012014 70011414 240F0001 */ li $t7, 1 +/* 012018 70011418 44CFF800 */ ctc1 $t7, $31 +/* 01201C 7001141C C7A60064 */ lwc1 $f6, 0x64($sp) +/* 012020 70011420 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 012024 70011424 46003224 */ cvt.w.s $f8, $f6 +/* 012028 70011428 444FF800 */ cfc1 $t7, $31 +/* 01202C 7001142C 00000000 */ nop +/* 012030 70011430 31EF0078 */ andi $t7, $t7, 0x78 +/* 012034 70011434 51E00013 */ beql $t7, $zero, .L70011484 +/* 012038 70011438 440F4000 */ mfc1 $t7, $f8 +/* 01203C 7001143C 44814000 */ mtc1 $at, $f8 +/* 012040 70011440 240F0001 */ li $t7, 1 +/* 012044 70011444 46083201 */ sub.s $f8, $f6, $f8 +/* 012048 70011448 44CFF800 */ ctc1 $t7, $31 +/* 01204C 7001144C 00000000 */ nop +/* 012050 70011450 46004224 */ cvt.w.s $f8, $f8 +/* 012054 70011454 444FF800 */ cfc1 $t7, $31 +/* 012058 70011458 00000000 */ nop +/* 01205C 7001145C 31EF0078 */ andi $t7, $t7, 0x78 +/* 012060 70011460 15E00005 */ bnez $t7, .L70011478 +/* 012064 70011464 00000000 */ nop +/* 012068 70011468 440F4000 */ mfc1 $t7, $f8 +/* 01206C 7001146C 3C018000 */ lui $at, 0x8000 +/* 012070 70011470 10000007 */ b .L70011490 +/* 012074 70011474 01E17825 */ or $t7, $t7, $at +.L70011478: +/* 012078 70011478 10000005 */ b .L70011490 +/* 01207C 7001147C 240FFFFF */ li $t7, -1 +/* 012080 70011480 440F4000 */ mfc1 $t7, $f8 +.L70011484: +/* 012084 70011484 00000000 */ nop +/* 012088 70011488 05E0FFFB */ bltz $t7, .L70011478 +/* 01208C 7001148C 00000000 */ nop +.L70011490: +/* 012090 70011490 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 012094 70011494 44815000 */ mtc1 $at, $f10 +/* 012098 70011498 A20F0036 */ sb $t7, 0x36($s0) +/* 01209C 7001149C 44D8F800 */ ctc1 $t8, $31 +/* 0120A0 700114A0 E7AA0064 */ swc1 $f10, 0x64($sp) +/* 0120A4 700114A4 92260008 */ lbu $a2, 8($s1) +/* 0120A8 700114A8 26550048 */ addiu $s5, $s2, 0x48 +/* 0120AC 700114AC 50C0001B */ beql $a2, $zero, .L7001151C +/* 0120B0 700114B0 C7A40064 */ lwc1 $f4, 0x64($sp) +/* 0120B4 700114B4 8E420070 */ lw $v0, 0x70($s2) +/* 0120B8 700114B8 50400018 */ beql $v0, $zero, .L7001151C +/* 0120BC 700114BC C7A40064 */ lwc1 $f4, 0x64($sp) +/* 0120C0 700114C0 9239000A */ lbu $t9, 0xa($s1) +/* 0120C4 700114C4 92270009 */ lbu $a3, 9($s1) +/* 0120C8 700114C8 27A4005C */ addiu $a0, $sp, 0x5c +/* 0120CC 700114CC AFB90010 */ sw $t9, 0x10($sp) +/* 0120D0 700114D0 922E000B */ lbu $t6, 0xb($s1) +/* 0120D4 700114D4 27A50064 */ addiu $a1, $sp, 0x64 +/* 0120D8 700114D8 0040F809 */ jalr $v0 +/* 0120DC 700114DC AFAE0014 */ sw $t6, 0x14($sp) +/* 0120E0 700114E0 1040000D */ beqz $v0, .L70011518 +/* 0120E4 700114E4 24180017 */ li $t8, 23 +/* 0120E8 700114E8 8FAF005C */ lw $t7, 0x5c($sp) +/* 0120EC 700114EC A7B8008C */ sh $t8, 0x8c($sp) +/* 0120F0 700114F0 AFB00090 */ sw $s0, 0x90($sp) +/* 0120F4 700114F4 A3B60098 */ sb $s6, 0x98($sp) +/* 0120F8 700114F8 02A02025 */ move $a0, $s5 +/* 0120FC 700114FC 27A5008C */ addiu $a1, $sp, 0x8c +/* 012100 70011500 00403025 */ move $a2, $v0 +/* 012104 70011504 0C004BBF */ jal alEvtqPostEvent +/* 012108 70011508 AFAF0094 */ sw $t7, 0x94($sp) +/* 01210C 7001150C 92190037 */ lbu $t9, 0x37($s0) +/* 012110 70011510 372E0002 */ ori $t6, $t9, 2 +/* 012114 70011514 A20E0037 */ sb $t6, 0x37($s0) +.L70011518: +/* 012118 70011518 C7A40064 */ lwc1 $f4, 0x64($sp) +.L7001151C: +/* 01211C 7001151C C6080028 */ lwc1 $f8, 0x28($s0) +/* 012120 70011520 02002025 */ move $a0, $s0 +/* 012124 70011524 E604002C */ swc1 $f4, 0x2c($s0) +/* 012128 70011528 8E580060 */ lw $t8, 0x60($s2) +/* 01212C 7001152C C604002C */ lwc1 $f4, 0x2c($s0) +/* 012130 70011530 02402825 */ move $a1, $s2 +/* 012134 70011534 031E1021 */ addu $v0, $t8, $fp +/* 012138 70011538 C446000C */ lwc1 $f6, 0xc($v0) +/* 01213C 7001153C 9051000A */ lbu $s1, 0xa($v0) +/* 012140 70011540 46083282 */ mul.s $f10, $f6, $f8 +/* 012144 70011544 00000000 */ nop +/* 012148 70011548 46045502 */ mul.s $f20, $f10, $f4 +/* 01214C 7001154C 0C00708D */ jal __vsPan +/* 012150 70011550 00000000 */ nop +/* 012154 70011554 305E00FF */ andi $fp, $v0, 0xff +/* 012158 70011558 02002025 */ move $a0, $s0 +/* 01215C 7001155C 0C006F85 */ jal __vsVol +/* 012160 70011560 02402825 */ move $a1, $s2 +/* 012164 70011564 8EEF0000 */ lw $t7, ($s7) +/* 012168 70011568 8E440014 */ lw $a0, 0x14($s2) +/* 01216C 7001156C 8EE60008 */ lw $a2, 8($s7) +/* 012170 70011570 8DF30000 */ lw $s3, ($t7) +/* 012174 70011574 4407A000 */ mfc1 $a3, $f20 +/* 012178 70011578 AFB10018 */ sw $s1, 0x18($sp) +/* 01217C 7001157C AFBE0014 */ sw $fp, 0x14($sp) +/* 012180 70011580 AFA20010 */ sw $v0, 0x10($sp) +/* 012184 70011584 8FA50038 */ lw $a1, 0x38($sp) +/* 012188 70011588 0C007568 */ jal alSynStartVoiceParams +/* 01218C 7001158C AFB3001C */ sw $s3, 0x1c($sp) +/* 012190 70011590 8FAE0038 */ lw $t6, 0x38($sp) +/* 012194 70011594 24190006 */ li $t9, 6 +/* 012198 70011598 A7B9008C */ sh $t9, 0x8c($sp) +/* 01219C 7001159C AFAE0090 */ sw $t6, 0x90($sp) +/* 0121A0 700115A0 8EF80000 */ lw $t8, ($s7) +/* 0121A4 700115A4 02A02025 */ move $a0, $s5 +/* 0121A8 700115A8 27A5008C */ addiu $a1, $sp, 0x8c +/* 0121AC 700115AC 930F000D */ lbu $t7, 0xd($t8) +/* 0121B0 700115B0 02603025 */ move $a2, $s3 +/* 0121B4 700115B4 A3AF0098 */ sb $t7, 0x98($sp) +/* 0121B8 700115B8 8EF90000 */ lw $t9, ($s7) +/* 0121BC 700115BC 8F2E0004 */ lw $t6, 4($t9) +/* 0121C0 700115C0 0C004BBF */ jal alEvtqPostEvent +/* 0121C4 700115C4 AFAE0094 */ sw $t6, 0x94($sp) +/* 0121C8 700115C8 8FA200BC */ lw $v0, 0xbc($sp) +/* 0121CC 700115CC 240F0015 */ li $t7, 21 +/* 0121D0 700115D0 36D90080 */ ori $t9, $s6, 0x80 +/* 0121D4 700115D4 8C58000C */ lw $t8, 0xc($v0) +/* 0121D8 700115D8 24420004 */ addiu $v0, $v0, 4 +/* 0121DC 700115DC 5300011E */ beql $t8, $zero, .L70011A58 +/* 0121E0 700115E0 8FBF0024 */ lw $ra, 0x24($sp) +/* 0121E4 700115E4 A7AF008C */ sh $t7, 0x8c($sp) +/* 0121E8 700115E8 A3B90094 */ sb $t9, 0x94($sp) +/* 0121EC 700115EC A3B40095 */ sb $s4, 0x95($sp) +/* 0121F0 700115F0 A3A00096 */ sb $zero, 0x96($sp) +/* 0121F4 700115F4 8C580008 */ lw $t8, 8($v0) +/* 0121F8 700115F8 8E4E0024 */ lw $t6, 0x24($s2) +/* 0121FC 700115FC 02A02025 */ move $a0, $s5 +/* 012200 70011600 27A5008C */ addiu $a1, $sp, 0x8c +/* 012204 70011604 01D80019 */ multu $t6, $t8 +/* 012208 70011608 00009812 */ mflo $s3 +/* 01220C 7001160C 02603025 */ move $a2, $s3 +/* 012210 70011610 0C004BBF */ jal alEvtqPostEvent +/* 012214 70011614 00000000 */ nop +/* 012218 70011618 1000010F */ b .L70011A58 +/* 01221C 7001161C 8FBF0024 */ lw $ra, 0x24($sp) +.L70011620: +/* 012220 70011620 02402025 */ move $a0, $s2 +.L70011624: +/* 012224 70011624 328500FF */ andi $a1, $s4, 0xff +/* 012228 70011628 0C00709F */ jal __lookupVoice +/* 01222C 7001162C 32C600FF */ andi $a2, $s6, 0xff +/* 012230 70011630 10400108 */ beqz $v0, .L70011A54 +/* 012234 70011634 00408025 */ move $s0, $v0 +/* 012238 70011638 904F0035 */ lbu $t7, 0x35($v0) +/* 01223C 7001163C 24160002 */ li $s6, 2 +/* 012240 70011640 24190004 */ li $t9, 4 +/* 012244 70011644 16CF0003 */ bne $s6, $t7, .L70011654 +/* 012248 70011648 02402025 */ move $a0, $s2 +/* 01224C 7001164C 10000101 */ b .L70011A54 +/* 012250 70011650 A0590035 */ sb $t9, 0x35($v0) +.L70011654: +/* 012254 70011654 8E0E0020 */ lw $t6, 0x20($s0) +/* 012258 70011658 241E0003 */ li $fp, 3 +/* 01225C 7001165C A21E0035 */ sb $fp, 0x35($s0) +/* 012260 70011660 8DD80000 */ lw $t8, ($t6) +/* 012264 70011664 26050004 */ addiu $a1, $s0, 4 +/* 012268 70011668 0C006FA7 */ jal __seqpReleaseVoice +/* 01226C 7001166C 8F060008 */ lw $a2, 8($t8) +/* 012270 70011670 100000F9 */ b .L70011A58 +/* 012274 70011674 8FBF0024 */ lw $ra, 0x24($sp) +.L70011678: +/* 012278 70011678 02402025 */ move $a0, $s2 +/* 01227C 7001167C 328500FF */ andi $a1, $s4, 0xff +/* 012280 70011680 0C00709F */ jal __lookupVoice +/* 012284 70011684 32C600FF */ andi $a2, $s6, 0xff +/* 012288 70011688 104000F2 */ beqz $v0, .L70011A54 +/* 01228C 7001168C 00408025 */ move $s0, $v0 +/* 012290 70011690 A0510033 */ sb $s1, 0x33($v0) +/* 012294 70011694 00402025 */ move $a0, $v0 +/* 012298 70011698 0C006F85 */ jal __vsVol +/* 01229C 7001169C 02402825 */ move $a1, $s2 +/* 0122A0 700116A0 00028C00 */ sll $s1, $v0, 0x10 +/* 0122A4 700116A4 00117C03 */ sra $t7, $s1, 0x10 +/* 0122A8 700116A8 01E08825 */ move $s1, $t7 +/* 0122AC 700116AC 02002025 */ move $a0, $s0 +/* 0122B0 700116B0 0C006F7C */ jal __vsDelta +/* 0122B4 700116B4 8E45001C */ lw $a1, 0x1c($s2) +/* 0122B8 700116B8 00113400 */ sll $a2, $s1, 0x10 +/* 0122BC 700116BC 0006CC03 */ sra $t9, $a2, 0x10 +/* 0122C0 700116C0 03203025 */ move $a2, $t9 +/* 0122C4 700116C4 8E440014 */ lw $a0, 0x14($s2) +/* 0122C8 700116C8 26050004 */ addiu $a1, $s0, 4 +/* 0122CC 700116CC 0C004CE8 */ jal alSynSetVol +/* 0122D0 700116D0 00403825 */ move $a3, $v0 +/* 0122D4 700116D4 100000E0 */ b .L70011A58 +/* 0122D8 700116D8 8FBF0024 */ lw $ra, 0x24($sp) +.L700116DC: +/* 0122DC 700116DC 8E500064 */ lw $s0, 0x64($s2) +/* 0122E0 700116E0 520000DD */ beql $s0, $zero, .L70011A58 +/* 0122E4 700116E4 8FBF0024 */ lw $ra, 0x24($sp) +/* 0122E8 700116E8 02C09825 */ move $s3, $s6 +/* 0122EC 700116EC 920E0031 */ lbu $t6, 0x31($s0) +.L700116F0: +/* 0122F0 700116F0 02002025 */ move $a0, $s0 +/* 0122F4 700116F4 02402825 */ move $a1, $s2 +/* 0122F8 700116F8 566E0011 */ bnel $s3, $t6, .L70011740 +/* 0122FC 700116FC 8E100000 */ lw $s0, ($s0) +/* 012300 70011700 0C006F85 */ jal __vsVol +/* 012304 70011704 A2140033 */ sb $s4, 0x33($s0) +/* 012308 70011708 00028C00 */ sll $s1, $v0, 0x10 +/* 01230C 7001170C 0011C403 */ sra $t8, $s1, 0x10 +/* 012310 70011710 03008825 */ move $s1, $t8 +/* 012314 70011714 02002025 */ move $a0, $s0 +/* 012318 70011718 0C006F7C */ jal __vsDelta +/* 01231C 7001171C 8E45001C */ lw $a1, 0x1c($s2) +/* 012320 70011720 00113400 */ sll $a2, $s1, 0x10 +/* 012324 70011724 00067C03 */ sra $t7, $a2, 0x10 +/* 012328 70011728 01E03025 */ move $a2, $t7 +/* 01232C 7001172C 8E440014 */ lw $a0, 0x14($s2) +/* 012330 70011730 26050004 */ addiu $a1, $s0, 4 +/* 012334 70011734 0C004CE8 */ jal alSynSetVol +/* 012338 70011738 00403825 */ move $a3, $v0 +/* 01233C 7001173C 8E100000 */ lw $s0, ($s0) +.L70011740: +/* 012340 70011740 5600FFEB */ bnezl $s0, .L700116F0 +/* 012344 70011744 920E0031 */ lbu $t6, 0x31($s0) +/* 012348 70011748 100000C3 */ b .L70011A58 +/* 01234C 7001174C 8FBF0024 */ lw $ra, 0x24($sp) +.L70011750: +/* 012350 70011750 24010007 */ li $at, 7 +/* 012354 70011754 12810023 */ beq $s4, $at, .L700117E4 +/* 012358 70011758 02801025 */ move $v0, $s4 +/* 01235C 7001175C 2401000A */ li $at, 10 +/* 012360 70011760 10410009 */ beq $v0, $at, .L70011788 +/* 012364 70011764 24010010 */ li $at, 16 +/* 012368 70011768 10410042 */ beq $v0, $at, .L70011874 +/* 01236C 7001176C 24010040 */ li $at, 64 +/* 012370 70011770 10410045 */ beq $v0, $at, .L70011888 +/* 012374 70011774 2401005B */ li $at, 91 +/* 012378 70011778 50410070 */ beql $v0, $at, .L7001193C +/* 01237C 7001177C 8E590060 */ lw $t9, 0x60($s2) +/* 012380 70011780 100000B5 */ b .L70011A58 +/* 012384 70011784 8FBF0024 */ lw $ra, 0x24($sp) +.L70011788: +/* 012388 70011788 8E590060 */ lw $t9, 0x60($s2) +/* 01238C 7001178C 00167100 */ sll $t6, $s6, 4 +/* 012390 70011790 032EC021 */ addu $t8, $t9, $t6 +/* 012394 70011794 A3110007 */ sb $s1, 7($t8) +/* 012398 70011798 8E500064 */ lw $s0, 0x64($s2) +/* 01239C 7001179C 520000AE */ beql $s0, $zero, .L70011A58 +/* 0123A0 700117A0 8FBF0024 */ lw $ra, 0x24($sp) +/* 0123A4 700117A4 02C09825 */ move $s3, $s6 +/* 0123A8 700117A8 920F0031 */ lbu $t7, 0x31($s0) +.L700117AC: +/* 0123AC 700117AC 02002025 */ move $a0, $s0 +/* 0123B0 700117B0 566F0008 */ bnel $s3, $t7, .L700117D4 +/* 0123B4 700117B4 8E100000 */ lw $s0, ($s0) +/* 0123B8 700117B8 0C00708D */ jal __vsPan +/* 0123BC 700117BC 02402825 */ move $a1, $s2 +/* 0123C0 700117C0 8E440014 */ lw $a0, 0x14($s2) +/* 0123C4 700117C4 26050004 */ addiu $a1, $s0, 4 +/* 0123C8 700117C8 0C004D34 */ jal alSynSetPan +/* 0123CC 700117CC 304600FF */ andi $a2, $v0, 0xff +/* 0123D0 700117D0 8E100000 */ lw $s0, ($s0) +.L700117D4: +/* 0123D4 700117D4 5600FFF5 */ bnezl $s0, .L700117AC +/* 0123D8 700117D8 920F0031 */ lbu $t7, 0x31($s0) +/* 0123DC 700117DC 1000009E */ b .L70011A58 +/* 0123E0 700117E0 8FBF0024 */ lw $ra, 0x24($sp) +.L700117E4: +/* 0123E4 700117E4 8E590060 */ lw $t9, 0x60($s2) +/* 0123E8 700117E8 00167100 */ sll $t6, $s6, 4 +/* 0123EC 700117EC 032EC021 */ addu $t8, $t9, $t6 +/* 0123F0 700117F0 A3110009 */ sb $s1, 9($t8) +/* 0123F4 700117F4 8E500064 */ lw $s0, 0x64($s2) +/* 0123F8 700117F8 52000097 */ beql $s0, $zero, .L70011A58 +/* 0123FC 700117FC 8FBF0024 */ lw $ra, 0x24($sp) +/* 012400 70011800 02C09825 */ move $s3, $s6 +/* 012404 70011804 24140003 */ li $s4, 3 +/* 012408 70011808 920F0031 */ lbu $t7, 0x31($s0) +.L7001180C: +/* 01240C 7001180C 566F0015 */ bnel $s3, $t7, .L70011864 +/* 012410 70011810 8E100000 */ lw $s0, ($s0) +/* 012414 70011814 92190034 */ lbu $t9, 0x34($s0) +/* 012418 70011818 02002025 */ move $a0, $s0 +/* 01241C 7001181C 52990011 */ beql $s4, $t9, .L70011864 +/* 012420 70011820 8E100000 */ lw $s0, ($s0) +/* 012424 70011824 0C006F85 */ jal __vsVol +/* 012428 70011828 02402825 */ move $a1, $s2 +/* 01242C 7001182C 00028C00 */ sll $s1, $v0, 0x10 +/* 012430 70011830 00117403 */ sra $t6, $s1, 0x10 +/* 012434 70011834 01C08825 */ move $s1, $t6 +/* 012438 70011838 02002025 */ move $a0, $s0 +/* 01243C 7001183C 0C006F7C */ jal __vsDelta +/* 012440 70011840 8E45001C */ lw $a1, 0x1c($s2) +/* 012444 70011844 00113400 */ sll $a2, $s1, 0x10 +/* 012448 70011848 0006C403 */ sra $t8, $a2, 0x10 +/* 01244C 7001184C 03003025 */ move $a2, $t8 +/* 012450 70011850 8E440014 */ lw $a0, 0x14($s2) +/* 012454 70011854 26050004 */ addiu $a1, $s0, 4 +/* 012458 70011858 0C004CE8 */ jal alSynSetVol +/* 01245C 7001185C 00403825 */ move $a3, $v0 +/* 012460 70011860 8E100000 */ lw $s0, ($s0) +.L70011864: +/* 012464 70011864 5600FFE9 */ bnezl $s0, .L7001180C +/* 012468 70011868 920F0031 */ lbu $t7, 0x31($s0) +/* 01246C 7001186C 1000007A */ b .L70011A58 +/* 012470 70011870 8FBF0024 */ lw $ra, 0x24($sp) +.L70011874: +/* 012474 70011874 8E4F0060 */ lw $t7, 0x60($s2) +/* 012478 70011878 0016C900 */ sll $t9, $s6, 4 +/* 01247C 7001187C 01F97021 */ addu $t6, $t7, $t9 +/* 012480 70011880 10000074 */ b .L70011A54 +/* 012484 70011884 A1D10008 */ sb $s1, 8($t6) +.L70011888: +/* 012488 70011888 8E580060 */ lw $t8, 0x60($s2) +/* 01248C 7001188C 00167900 */ sll $t7, $s6, 4 +/* 012490 70011890 030FC821 */ addu $t9, $t8, $t7 +/* 012494 70011894 A331000B */ sb $s1, 0xb($t9) +/* 012498 70011898 8E500064 */ lw $s0, 0x64($s2) +/* 01249C 7001189C 5200006E */ beql $s0, $zero, .L70011A58 +/* 0124A0 700118A0 8FBF0024 */ lw $ra, 0x24($sp) +/* 0124A4 700118A4 02C09825 */ move $s3, $s6 +/* 0124A8 700118A8 24160002 */ li $s6, 2 +/* 0124AC 700118AC 241E0003 */ li $fp, 3 +/* 0124B0 700118B0 24170004 */ li $s7, 4 +/* 0124B4 700118B4 24150002 */ li $s5, 2 +/* 0124B8 700118B8 24140003 */ li $s4, 3 +/* 0124BC 700118BC 920E0031 */ lbu $t6, 0x31($s0) +.L700118C0: +/* 0124C0 700118C0 566E0019 */ bnel $s3, $t6, .L70011928 +/* 0124C4 700118C4 8E100000 */ lw $s0, ($s0) +/* 0124C8 700118C8 92020035 */ lbu $v0, 0x35($s0) +/* 0124CC 700118CC 2A210040 */ slti $at, $s1, 0x40 +/* 0124D0 700118D0 52820015 */ beql $s4, $v0, .L70011928 +/* 0124D4 700118D4 8E100000 */ lw $s0, ($s0) +/* 0124D8 700118D8 14200005 */ bnez $at, .L700118F0 +/* 0124DC 700118DC 00000000 */ nop +/* 0124E0 700118E0 54400011 */ bnezl $v0, .L70011928 +/* 0124E4 700118E4 8E100000 */ lw $s0, ($s0) +/* 0124E8 700118E8 1000000E */ b .L70011924 +/* 0124EC 700118EC A2150035 */ sb $s5, 0x35($s0) +.L700118F0: +/* 0124F0 700118F0 16C20003 */ bne $s6, $v0, .L70011900 +/* 0124F4 700118F4 00000000 */ nop +/* 0124F8 700118F8 1000000A */ b .L70011924 +/* 0124FC 700118FC A2000035 */ sb $zero, 0x35($s0) +.L70011900: +/* 012500 70011900 56E20009 */ bnel $s7, $v0, .L70011928 +/* 012504 70011904 8E100000 */ lw $s0, ($s0) +/* 012508 70011908 8E180020 */ lw $t8, 0x20($s0) +/* 01250C 7001190C A21E0035 */ sb $fp, 0x35($s0) +/* 012510 70011910 02402025 */ move $a0, $s2 +/* 012514 70011914 8F0F0000 */ lw $t7, ($t8) +/* 012518 70011918 26050004 */ addiu $a1, $s0, 4 +/* 01251C 7001191C 0C006FA7 */ jal __seqpReleaseVoice +/* 012520 70011920 8DE60008 */ lw $a2, 8($t7) +.L70011924: +/* 012524 70011924 8E100000 */ lw $s0, ($s0) +.L70011928: +/* 012528 70011928 5600FFE5 */ bnezl $s0, .L700118C0 +/* 01252C 7001192C 920E0031 */ lbu $t6, 0x31($s0) +/* 012530 70011930 10000049 */ b .L70011A58 +/* 012534 70011934 8FBF0024 */ lw $ra, 0x24($sp) +/* 012538 70011938 8E590060 */ lw $t9, 0x60($s2) +.L7001193C: +/* 01253C 7001193C 00167100 */ sll $t6, $s6, 4 +/* 012540 70011940 032EC021 */ addu $t8, $t9, $t6 +/* 012544 70011944 A311000A */ sb $s1, 0xa($t8) +/* 012548 70011948 8E500064 */ lw $s0, 0x64($s2) +/* 01254C 7001194C 52000042 */ beql $s0, $zero, .L70011A58 +/* 012550 70011950 8FBF0024 */ lw $ra, 0x24($sp) +/* 012554 70011954 02C09825 */ move $s3, $s6 +/* 012558 70011958 920F0031 */ lbu $t7, 0x31($s0) +.L7001195C: +/* 01255C 7001195C 26050004 */ addiu $a1, $s0, 4 +/* 012560 70011960 322600FF */ andi $a2, $s1, 0xff +/* 012564 70011964 566F0004 */ bnel $s3, $t7, .L70011978 +/* 012568 70011968 8E100000 */ lw $s0, ($s0) +/* 01256C 7001196C 0C004D7C */ jal alSynSetFXMix +/* 012570 70011970 8E440014 */ lw $a0, 0x14($s2) +/* 012574 70011974 8E100000 */ lw $s0, ($s0) +.L70011978: +/* 012578 70011978 5600FFF8 */ bnezl $s0, .L7001195C +/* 01257C 7001197C 920F0031 */ lbu $t7, 0x31($s0) +/* 012580 70011980 10000035 */ b .L70011A58 +/* 012584 70011984 8FBF0024 */ lw $ra, 0x24($sp) +.L70011988: +/* 012588 70011988 8E420020 */ lw $v0, 0x20($s2) +/* 01258C 7001198C 00147080 */ sll $t6, $s4, 2 +/* 012590 70011990 02402025 */ move $a0, $s2 +/* 012594 70011994 84590000 */ lh $t9, ($v0) +/* 012598 70011998 02C03025 */ move $a2, $s6 +/* 01259C 7001199C 004EC021 */ addu $t8, $v0, $t6 +/* 0125A0 700119A0 0299082A */ slt $at, $s4, $t9 +/* 0125A4 700119A4 5020002C */ beql $at, $zero, .L70011A58 +/* 0125A8 700119A8 8FBF0024 */ lw $ra, 0x24($sp) +/* 0125AC 700119AC 0C006F18 */ jal __setInstChanState +/* 0125B0 700119B0 8F05000C */ lw $a1, 0xc($t8) +/* 0125B4 700119B4 10000028 */ b .L70011A58 +/* 0125B8 700119B8 8FBF0024 */ lw $ra, 0x24($sp) +.L700119BC: +/* 0125BC 700119BC 8E4F0060 */ lw $t7, 0x60($s2) +/* 0125C0 700119C0 0016F100 */ sll $fp, $s6, 4 +/* 0125C4 700119C4 0011C1C0 */ sll $t8, $s1, 7 +/* 0125C8 700119C8 01FEC821 */ addu $t9, $t7, $fp +/* 0125CC 700119CC 872E0004 */ lh $t6, 4($t9) +/* 0125D0 700119D0 03147821 */ addu $t7, $t8, $s4 +/* 0125D4 700119D4 25F9E000 */ addiu $t9, $t7, -0x2000 +/* 0125D8 700119D8 01D90019 */ multu $t6, $t9 +/* 0125DC 700119DC 00002012 */ mflo $a0 +/* 0125E0 700119E0 04810003 */ bgez $a0, .L700119F0 +/* 0125E4 700119E4 0004C343 */ sra $t8, $a0, 0xd +/* 0125E8 700119E8 24811FFF */ addiu $at, $a0, 0x1fff +/* 0125EC 700119EC 0001C343 */ sra $t8, $at, 0xd +.L700119F0: +/* 0125F0 700119F0 0C004DF0 */ jal alCents2Ratio +/* 0125F4 700119F4 03002025 */ move $a0, $t8 +/* 0125F8 700119F8 8E4F0060 */ lw $t7, 0x60($s2) +/* 0125FC 700119FC 46000506 */ mov.s $f20, $f0 +/* 012600 70011A00 01FE7021 */ addu $t6, $t7, $fp +/* 012604 70011A04 E5C0000C */ swc1 $f0, 0xc($t6) +/* 012608 70011A08 8E500064 */ lw $s0, 0x64($s2) +/* 01260C 70011A0C 52000012 */ beql $s0, $zero, .L70011A58 +/* 012610 70011A10 8FBF0024 */ lw $ra, 0x24($sp) +/* 012614 70011A14 02C09825 */ move $s3, $s6 +/* 012618 70011A18 92190031 */ lbu $t9, 0x31($s0) +.L70011A1C: +/* 01261C 70011A1C 5679000B */ bnel $s3, $t9, .L70011A4C +/* 012620 70011A20 8E100000 */ lw $s0, ($s0) +/* 012624 70011A24 C6060028 */ lwc1 $f6, 0x28($s0) +/* 012628 70011A28 C60A002C */ lwc1 $f10, 0x2c($s0) +/* 01262C 70011A2C 8E440014 */ lw $a0, 0x14($s2) +/* 012630 70011A30 46143202 */ mul.s $f8, $f6, $f20 +/* 012634 70011A34 26050004 */ addiu $a1, $s0, 4 +/* 012638 70011A38 460A4102 */ mul.s $f4, $f8, $f10 +/* 01263C 70011A3C 44062000 */ mfc1 $a2, $f4 +/* 012640 70011A40 0C004D58 */ jal alSynSetPitch +/* 012644 70011A44 00000000 */ nop +/* 012648 70011A48 8E100000 */ lw $s0, ($s0) +.L70011A4C: +/* 01264C 70011A4C 5600FFF3 */ bnezl $s0, .L70011A1C +/* 012650 70011A50 92190031 */ lbu $t9, 0x31($s0) +.L70011A54: +/* 012654 70011A54 8FBF0024 */ lw $ra, 0x24($sp) +.L70011A58: +/* 012658 70011A58 27BD00B8 */ addiu $sp, $sp, 0xb8 +/* 01265C 70011A5C 03E00008 */ jr $ra +/* 012660 70011A60 00000000 */ nop + +/* 012664 70011A64 03E00008 */ jr $ra +/* 012668 70011A68 00000000 */ nop + +glabel ultra_70011A6C +/* 01266C 70011A6C 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 012670 70011A70 AFB50034 */ sw $s5, 0x34($sp) +/* 012674 70011A74 AFB20028 */ sw $s2, 0x28($sp) +/* 012678 70011A78 248E0038 */ addiu $t6, $a0, 0x38 +/* 01267C 70011A7C 00809025 */ move $s2, $a0 +/* 012680 70011A80 AFBF0044 */ sw $ra, 0x44($sp) +/* 012684 70011A84 AFBE0040 */ sw $fp, 0x40($sp) +/* 012688 70011A88 AFB7003C */ sw $s7, 0x3c($sp) +/* 01268C 70011A8C AFB60038 */ sw $s6, 0x38($sp) +/* 012690 70011A90 AFB40030 */ sw $s4, 0x30($sp) +/* 012694 70011A94 AFB3002C */ sw $s3, 0x2c($sp) +/* 012698 70011A98 AFB10024 */ sw $s1, 0x24($sp) +/* 01269C 70011A9C AFB00020 */ sw $s0, 0x20($sp) +/* 0126A0 70011AA0 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0126A4 70011AA4 AFAE0050 */ sw $t6, 0x50($sp) +/* 0126A8 70011AA8 24950048 */ addiu $s5, $a0, 0x48 +.L70011AAC: +/* 0126AC 70011AAC 964F0038 */ lhu $t7, 0x38($s2) +/* 0126B0 70011AB0 2DE10018 */ sltiu $at, $t7, 0x18 +/* 0126B4 70011AB4 1020015D */ beqz $at, .L7001202C +/* 0126B8 70011AB8 000F7880 */ sll $t7, $t7, 2 +/* 0126BC 70011ABC 3C018003 */ lui $at, %hi(audio_related_jump_table_1) # 0x8003 +/* 0126C0 70011AC0 002F0821 */ addu $at, $at, $t7 +/* 0126C4 70011AC4 8C2F9614 */ lw $t7, %lo(audio_related_jump_table_1)($at) # -0x69ec +/* 0126C8 70011AC8 01E00008 */ jr $t7 +/* 0126CC 70011ACC 00000000 */ nop +.L70011AD0: +/* 0126D0 70011AD0 8E440018 */ lw $a0, 0x18($s2) +/* 0126D4 70011AD4 50800156 */ beql $a0, $zero, .L70012030 +/* 0126D8 70011AD8 02A02025 */ move $a0, $s5 +/* 0126DC 70011ADC 0C004929 */ jal alCSeqNextEvent +/* 0126E0 70011AE0 27A50058 */ addiu $a1, $sp, 0x58 +/* 0126E4 70011AE4 87B80058 */ lh $t8, 0x58($sp) +/* 0126E8 70011AE8 2719FFFF */ addiu $t9, $t8, -1 +/* 0126EC 70011AEC 2F210014 */ sltiu $at, $t9, 0x14 +/* 0126F0 70011AF0 1020014E */ beqz $at, .L7001202C +/* 0126F4 70011AF4 0019C880 */ sll $t9, $t9, 2 +/* 0126F8 70011AF8 3C018003 */ lui $at, %hi(audio_related_jump_table_2) # 0x8003 +/* 0126FC 70011AFC 00390821 */ addu $at, $at, $t9 +/* 012700 70011B00 8C399674 */ lw $t9, %lo(audio_related_jump_table_2)($at) # -0x698c +/* 012704 70011B04 03200008 */ jr $t9 +/* 012708 70011B08 00000000 */ nop +.L70011B0C: +/* 01270C 70011B0C 27A80058 */ addiu $t0, $sp, 0x58 +/* 012710 70011B10 AFB200A0 */ sw $s2, 0xa0($sp) +/* 012714 70011B14 0C00448F */ jal __CSPHandleMIDIMsg +/* 012718 70011B18 AFB5004C */ sw $s5, 0x4c($sp) +/* 01271C 70011B1C 8FB200A0 */ lw $s2, 0xa0($sp) +/* 012720 70011B20 8FB5004C */ lw $s5, 0x4c($sp) +/* 012724 70011B24 0C0043F0 */ jal __CSPPostNextSeqEvent +/* 012728 70011B28 02402025 */ move $a0, $s2 +/* 01272C 70011B2C 10000140 */ b .L70012030 +/* 012730 70011B30 02A02025 */ move $a0, $s5 +.L70011B34: +/* 012734 70011B34 0240B825 */ move $s7, $s2 +/* 012738 70011B38 27A50058 */ addiu $a1, $sp, 0x58 +/* 01273C 70011B3C AFB200A0 */ sw $s2, 0xa0($sp) +/* 012740 70011B40 0C00441B */ jal ultra_7001106C +/* 012744 70011B44 AFB5004C */ sw $s5, 0x4c($sp) +/* 012748 70011B48 8FB200A0 */ lw $s2, 0xa0($sp) +/* 01274C 70011B4C 8FB5004C */ lw $s5, 0x4c($sp) +/* 012750 70011B50 0C0043F0 */ jal __CSPPostNextSeqEvent +/* 012754 70011B54 02402025 */ move $a0, $s2 +/* 012758 70011B58 10000135 */ b .L70012030 +/* 01275C 70011B5C 02A02025 */ move $a0, $s5 +.L70011B60: +/* 012760 70011B60 240E0002 */ li $t6, 2 +/* 012764 70011B64 AE4E002C */ sw $t6, 0x2c($s2) +/* 012768 70011B68 240F0010 */ li $t7, 16 +/* 01276C 70011B6C 3C067FFF */ lui $a2, (0x7FFFFFFF >> 16) # lui $a2, 0x7fff +/* 012770 70011B70 A7AF0058 */ sh $t7, 0x58($sp) +/* 012774 70011B74 34C6FFFF */ ori $a2, (0x7FFFFFFF & 0xFFFF) # ori $a2, $a2, 0xffff +/* 012778 70011B78 02A02025 */ move $a0, $s5 +/* 01277C 70011B7C 0C004BBF */ jal alEvtqPostEvent +/* 012780 70011B80 27A50058 */ addiu $a1, $sp, 0x58 +/* 012784 70011B84 1000012A */ b .L70012030 +/* 012788 70011B88 02A02025 */ move $a0, $s5 +.L70011B8C: +/* 01278C 70011B8C 0C0043F0 */ jal __CSPPostNextSeqEvent +/* 012790 70011B90 02402025 */ move $a0, $s2 +/* 012794 70011B94 10000126 */ b .L70012030 +/* 012798 70011B98 02A02025 */ move $a0, $s5 +.L70011B9C: +/* 01279C 70011B9C 24180009 */ li $t8, 9 +/* 0127A0 70011BA0 A7B8008C */ sh $t8, 0x8c($sp) +/* 0127A4 70011BA4 8E46005C */ lw $a2, 0x5c($s2) +/* 0127A8 70011BA8 02A02025 */ move $a0, $s5 +/* 0127AC 70011BAC 0C004BBF */ jal alEvtqPostEvent +/* 0127B0 70011BB0 27A5008C */ addiu $a1, $sp, 0x8c +/* 0127B4 70011BB4 1000011E */ b .L70012030 +/* 0127B8 70011BB8 02A02025 */ move $a0, $s5 +.L70011BBC: +/* 0127BC 70011BBC 8E50003C */ lw $s0, 0x3c($s2) +/* 0127C0 70011BC0 8E440014 */ lw $a0, 0x14($s2) +/* 0127C4 70011BC4 0C004DA4 */ jal alSynStopVoice +/* 0127C8 70011BC8 02002825 */ move $a1, $s0 +/* 0127CC 70011BCC 8E440014 */ lw $a0, 0x14($s2) +/* 0127D0 70011BD0 0C004DC4 */ jal alSynFreeVoice +/* 0127D4 70011BD4 02002825 */ move $a1, $s0 +/* 0127D8 70011BD8 8E110010 */ lw $s1, 0x10($s0) +/* 0127DC 70011BDC 02402025 */ move $a0, $s2 +/* 0127E0 70011BE0 92390037 */ lbu $t9, 0x37($s1) +/* 0127E4 70011BE4 53200004 */ beql $t9, $zero, .L70011BF8 +/* 0127E8 70011BE8 02402025 */ move $a0, $s2 +/* 0127EC 70011BEC 0C0074A8 */ jal __seqpStopOsc +/* 0127F0 70011BF0 02202825 */ move $a1, $s1 +/* 0127F4 70011BF4 02402025 */ move $a0, $s2 +.L70011BF8: +/* 0127F8 70011BF8 0C00701C */ jal __unmapVoice +/* 0127FC 70011BFC 02002825 */ move $a1, $s0 +/* 012800 70011C00 1000010B */ b .L70012030 +/* 012804 70011C04 02A02025 */ move $a0, $s5 +.L70011C08: +/* 012808 70011C08 8E50003C */ lw $s0, 0x3c($s2) +/* 01280C 70011C0C 240F0001 */ li $t7, 1 +/* 012810 70011C10 8E110010 */ lw $s1, 0x10($s0) +/* 012814 70011C14 922E0034 */ lbu $t6, 0x34($s1) +/* 012818 70011C18 55C00003 */ bnezl $t6, .L70011C28 +/* 01281C 70011C1C 8E530040 */ lw $s3, 0x40($s2) +/* 012820 70011C20 A22F0034 */ sb $t7, 0x34($s1) +/* 012824 70011C24 8E530040 */ lw $s3, 0x40($s2) +.L70011C28: +/* 012828 70011C28 8E58001C */ lw $t8, 0x1c($s2) +/* 01282C 70011C2C 02202025 */ move $a0, $s1 +/* 012830 70011C30 02402825 */ move $a1, $s2 +/* 012834 70011C34 0313C821 */ addu $t9, $t8, $s3 +/* 012838 70011C38 AE390024 */ sw $t9, 0x24($s1) +/* 01283C 70011C3C 924E0044 */ lbu $t6, 0x44($s2) +/* 012840 70011C40 0C006F85 */ jal __vsVol +/* 012844 70011C44 A22E0030 */ sb $t6, 0x30($s1) +/* 012848 70011C48 00023400 */ sll $a2, $v0, 0x10 +/* 01284C 70011C4C 00067C03 */ sra $t7, $a2, 0x10 +/* 012850 70011C50 01E03025 */ move $a2, $t7 +/* 012854 70011C54 8E440014 */ lw $a0, 0x14($s2) +/* 012858 70011C58 02002825 */ move $a1, $s0 +/* 01285C 70011C5C 0C004CE8 */ jal alSynSetVol +/* 012860 70011C60 02603825 */ move $a3, $s3 +/* 012864 70011C64 100000F2 */ b .L70012030 +/* 012868 70011C68 02A02025 */ move $a0, $s5 +.L70011C6C: +/* 01286C 70011C6C 8E590074 */ lw $t9, 0x74($s2) +/* 012870 70011C70 8E540040 */ lw $s4, 0x40($s2) +/* 012874 70011C74 8E51003C */ lw $s1, 0x3c($s2) +/* 012878 70011C78 27A50078 */ addiu $a1, $sp, 0x78 +/* 01287C 70011C7C 0320F809 */ jalr $t9 +/* 012880 70011C80 02802025 */ move $a0, $s4 +/* 012884 70011C84 4458F800 */ cfc1 $t8, $31 +/* 012888 70011C88 240E0001 */ li $t6, 1 +/* 01288C 70011C8C 44CEF800 */ ctc1 $t6, $31 +/* 012890 70011C90 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 012894 70011C94 00409825 */ move $s3, $v0 +/* 012898 70011C98 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 01289C 70011C9C 460021A4 */ cvt.w.s $f6, $f4 +/* 0128A0 70011CA0 02202025 */ move $a0, $s1 +/* 0128A4 70011CA4 02402825 */ move $a1, $s2 +/* 0128A8 70011CA8 444EF800 */ cfc1 $t6, $31 +/* 0128AC 70011CAC 00000000 */ nop +/* 0128B0 70011CB0 31CE0078 */ andi $t6, $t6, 0x78 +/* 0128B4 70011CB4 51C00013 */ beql $t6, $zero, .L70011D04 +/* 0128B8 70011CB8 440E3000 */ mfc1 $t6, $f6 +/* 0128BC 70011CBC 44813000 */ mtc1 $at, $f6 +/* 0128C0 70011CC0 240E0001 */ li $t6, 1 +/* 0128C4 70011CC4 46062181 */ sub.s $f6, $f4, $f6 +/* 0128C8 70011CC8 44CEF800 */ ctc1 $t6, $31 +/* 0128CC 70011CCC 00000000 */ nop +/* 0128D0 70011CD0 460031A4 */ cvt.w.s $f6, $f6 +/* 0128D4 70011CD4 444EF800 */ cfc1 $t6, $31 +/* 0128D8 70011CD8 00000000 */ nop +/* 0128DC 70011CDC 31CE0078 */ andi $t6, $t6, 0x78 +/* 0128E0 70011CE0 15C00005 */ bnez $t6, .L70011CF8 +/* 0128E4 70011CE4 00000000 */ nop +/* 0128E8 70011CE8 440E3000 */ mfc1 $t6, $f6 +/* 0128EC 70011CEC 3C018000 */ lui $at, 0x8000 +/* 0128F0 70011CF0 10000007 */ b .L70011D10 +/* 0128F4 70011CF4 01C17025 */ or $t6, $t6, $at +.L70011CF8: +/* 0128F8 70011CF8 10000005 */ b .L70011D10 +/* 0128FC 70011CFC 240EFFFF */ li $t6, -1 +/* 012900 70011D00 440E3000 */ mfc1 $t6, $f6 +.L70011D04: +/* 012904 70011D04 00000000 */ nop +/* 012908 70011D08 05C0FFFB */ bltz $t6, .L70011CF8 +/* 01290C 70011D0C 00000000 */ nop +.L70011D10: +/* 012910 70011D10 44D8F800 */ ctc1 $t8, $31 +/* 012914 70011D14 0C006F85 */ jal __vsVol +/* 012918 70011D18 A22E0036 */ sb $t6, 0x36($s1) +/* 01291C 70011D1C 00028400 */ sll $s0, $v0, 0x10 +/* 012920 70011D20 00107C03 */ sra $t7, $s0, 0x10 +/* 012924 70011D24 01E08025 */ move $s0, $t7 +/* 012928 70011D28 02202025 */ move $a0, $s1 +/* 01292C 70011D2C 0C006F7C */ jal __vsDelta +/* 012930 70011D30 8E45001C */ lw $a1, 0x1c($s2) +/* 012934 70011D34 00103400 */ sll $a2, $s0, 0x10 +/* 012938 70011D38 0006CC03 */ sra $t9, $a2, 0x10 +/* 01293C 70011D3C 03203025 */ move $a2, $t9 +/* 012940 70011D40 8E440014 */ lw $a0, 0x14($s2) +/* 012944 70011D44 26250004 */ addiu $a1, $s1, 4 +/* 012948 70011D48 0C004CE8 */ jal alSynSetVol +/* 01294C 70011D4C 00403825 */ move $a3, $v0 +/* 012950 70011D50 24180016 */ li $t8, 22 +/* 012954 70011D54 A7B8008C */ sh $t8, 0x8c($sp) +/* 012958 70011D58 AFB10090 */ sw $s1, 0x90($sp) +/* 01295C 70011D5C AFB40094 */ sw $s4, 0x94($sp) +/* 012960 70011D60 02A02025 */ move $a0, $s5 +/* 012964 70011D64 27A5008C */ addiu $a1, $sp, 0x8c +/* 012968 70011D68 0C004BBF */ jal alEvtqPostEvent +/* 01296C 70011D6C 02603025 */ move $a2, $s3 +/* 012970 70011D70 100000AF */ b .L70012030 +/* 012974 70011D74 02A02025 */ move $a0, $s5 +.L70011D78: +/* 012978 70011D78 8E590074 */ lw $t9, 0x74($s2) +/* 01297C 70011D7C 8E540040 */ lw $s4, 0x40($s2) +/* 012980 70011D80 8E51003C */ lw $s1, 0x3c($s2) +/* 012984 70011D84 92500044 */ lbu $s0, 0x44($s2) +/* 012988 70011D88 27A50078 */ addiu $a1, $sp, 0x78 +/* 01298C 70011D8C 0320F809 */ jalr $t9 +/* 012990 70011D90 02802025 */ move $a0, $s4 +/* 012994 70011D94 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 012998 70011D98 C6240028 */ lwc1 $f4, 0x28($s1) +/* 01299C 70011D9C 00107900 */ sll $t7, $s0, 4 +/* 0129A0 70011DA0 E628002C */ swc1 $f8, 0x2c($s1) +/* 0129A4 70011DA4 C626002C */ lwc1 $f6, 0x2c($s1) +/* 0129A8 70011DA8 8E4E0060 */ lw $t6, 0x60($s2) +/* 0129AC 70011DAC 00409825 */ move $s3, $v0 +/* 0129B0 70011DB0 46062202 */ mul.s $f8, $f4, $f6 +/* 0129B4 70011DB4 01CFC021 */ addu $t8, $t6, $t7 +/* 0129B8 70011DB8 C70A000C */ lwc1 $f10, 0xc($t8) +/* 0129BC 70011DBC 8E440014 */ lw $a0, 0x14($s2) +/* 0129C0 70011DC0 26250004 */ addiu $a1, $s1, 4 +/* 0129C4 70011DC4 46085102 */ mul.s $f4, $f10, $f8 +/* 0129C8 70011DC8 44062000 */ mfc1 $a2, $f4 +/* 0129CC 70011DCC 0C004D58 */ jal alSynSetPitch +/* 0129D0 70011DD0 00000000 */ nop +/* 0129D4 70011DD4 24190017 */ li $t9, 23 +/* 0129D8 70011DD8 A7B9008C */ sh $t9, 0x8c($sp) +/* 0129DC 70011DDC AFB10090 */ sw $s1, 0x90($sp) +/* 0129E0 70011DE0 AFB40094 */ sw $s4, 0x94($sp) +/* 0129E4 70011DE4 A3B00098 */ sb $s0, 0x98($sp) +/* 0129E8 70011DE8 02A02025 */ move $a0, $s5 +/* 0129EC 70011DEC 27A5008C */ addiu $a1, $sp, 0x8c +/* 0129F0 70011DF0 0C004BBF */ jal alEvtqPostEvent +/* 0129F4 70011DF4 02603025 */ move $a2, $s3 +/* 0129F8 70011DF8 1000008D */ b .L70012030 +/* 0129FC 70011DFC 02A02025 */ move $a0, $s5 +.L70011E00: +/* 012A00 70011E00 8FA80050 */ lw $t0, 0x50($sp) +/* 012A04 70011E04 AFB200A0 */ sw $s2, 0xa0($sp) +/* 012A08 70011E08 0C00448F */ jal __CSPHandleMIDIMsg +/* 012A0C 70011E0C AFB5004C */ sw $s5, 0x4c($sp) +/* 012A10 70011E10 8FB200A0 */ lw $s2, 0xa0($sp) +/* 012A14 70011E14 10000085 */ b .L7001202C +/* 012A18 70011E18 8FB5004C */ lw $s5, 0x4c($sp) +.L70011E1C: +/* 012A1C 70011E1C 0240B825 */ move $s7, $s2 +/* 012A20 70011E20 8FA50050 */ lw $a1, 0x50($sp) +/* 012A24 70011E24 AFB200A0 */ sw $s2, 0xa0($sp) +/* 012A28 70011E28 0C00441B */ jal ultra_7001106C +/* 012A2C 70011E2C AFB5004C */ sw $s5, 0x4c($sp) +/* 012A30 70011E30 8FB200A0 */ lw $s2, 0xa0($sp) +/* 012A34 70011E34 1000007D */ b .L7001202C +/* 012A38 70011E38 8FB5004C */ lw $s5, 0x4c($sp) +.L70011E3C: +/* 012A3C 70011E3C 8E510064 */ lw $s1, 0x64($s2) +/* 012A40 70011E40 864E003C */ lh $t6, 0x3c($s2) +/* 012A44 70011E44 12200079 */ beqz $s1, .L7001202C +/* 012A48 70011E48 A64E0032 */ sh $t6, 0x32($s2) +/* 012A4C 70011E4C 02202025 */ move $a0, $s1 +.L70011E50: +/* 012A50 70011E50 0C006F85 */ jal __vsVol +/* 012A54 70011E54 02402825 */ move $a1, $s2 +/* 012A58 70011E58 00028400 */ sll $s0, $v0, 0x10 +/* 012A5C 70011E5C 00107C03 */ sra $t7, $s0, 0x10 +/* 012A60 70011E60 01E08025 */ move $s0, $t7 +/* 012A64 70011E64 02202025 */ move $a0, $s1 +/* 012A68 70011E68 0C006F7C */ jal __vsDelta +/* 012A6C 70011E6C 8E45001C */ lw $a1, 0x1c($s2) +/* 012A70 70011E70 00103400 */ sll $a2, $s0, 0x10 +/* 012A74 70011E74 0006C403 */ sra $t8, $a2, 0x10 +/* 012A78 70011E78 03003025 */ move $a2, $t8 +/* 012A7C 70011E7C 8E440014 */ lw $a0, 0x14($s2) +/* 012A80 70011E80 26250004 */ addiu $a1, $s1, 4 +/* 012A84 70011E84 0C004CE8 */ jal alSynSetVol +/* 012A88 70011E88 00403825 */ move $a3, $v0 +/* 012A8C 70011E8C 8E310000 */ lw $s1, ($s1) +/* 012A90 70011E90 5620FFEF */ bnezl $s1, .L70011E50 +/* 012A94 70011E94 02202025 */ move $a0, $s1 +/* 012A98 70011E98 10000065 */ b .L70012030 +/* 012A9C 70011E9C 02A02025 */ move $a0, $s5 +.L70011EA0: +/* 012AA0 70011EA0 8E59002C */ lw $t9, 0x2c($s2) +/* 012AA4 70011EA4 24010001 */ li $at, 1 +/* 012AA8 70011EA8 240E0001 */ li $t6, 1 +/* 012AAC 70011EAC 1321005F */ beq $t9, $at, .L7001202C +/* 012AB0 70011EB0 02402025 */ move $a0, $s2 +/* 012AB4 70011EB4 0C0043F0 */ jal __CSPPostNextSeqEvent +/* 012AB8 70011EB8 AE4E002C */ sw $t6, 0x2c($s2) +/* 012ABC 70011EBC 1000005C */ b .L70012030 +/* 012AC0 70011EC0 02A02025 */ move $a0, $s5 +.L70011EC4: +/* 012AC4 70011EC4 8E4F002C */ lw $t7, 0x2c($s2) +/* 012AC8 70011EC8 24010002 */ li $at, 2 +/* 012ACC 70011ECC 55E10058 */ bnel $t7, $at, .L70012030 +/* 012AD0 70011ED0 02A02025 */ move $a0, $s5 +/* 012AD4 70011ED4 8E510064 */ lw $s1, 0x64($s2) +/* 012AD8 70011ED8 12200013 */ beqz $s1, .L70011F28 +/* 012ADC 70011EDC 26300004 */ addiu $s0, $s1, 4 +.L70011EE0: +/* 012AE0 70011EE0 02002825 */ move $a1, $s0 +/* 012AE4 70011EE4 0C004DA4 */ jal alSynStopVoice +/* 012AE8 70011EE8 8E440014 */ lw $a0, 0x14($s2) +/* 012AEC 70011EEC 8E440014 */ lw $a0, 0x14($s2) +/* 012AF0 70011EF0 0C004DC4 */ jal alSynFreeVoice +/* 012AF4 70011EF4 02002825 */ move $a1, $s0 +/* 012AF8 70011EF8 92380037 */ lbu $t8, 0x37($s1) +/* 012AFC 70011EFC 02402025 */ move $a0, $s2 +/* 012B00 70011F00 53000004 */ beql $t8, $zero, .L70011F14 +/* 012B04 70011F04 02402025 */ move $a0, $s2 +/* 012B08 70011F08 0C0074A8 */ jal __seqpStopOsc +/* 012B0C 70011F0C 02202825 */ move $a1, $s1 +/* 012B10 70011F10 02402025 */ move $a0, $s2 +.L70011F14: +/* 012B14 70011F14 0C00701C */ jal __unmapVoice +/* 012B18 70011F18 02002825 */ move $a1, $s0 +/* 012B1C 70011F1C 8E510064 */ lw $s1, 0x64($s2) +/* 012B20 70011F20 5620FFEF */ bnezl $s1, .L70011EE0 +/* 012B24 70011F24 26300004 */ addiu $s0, $s1, 4 +.L70011F28: +/* 012B28 70011F28 10000040 */ b .L7001202C +/* 012B2C 70011F2C AE40002C */ sw $zero, 0x2c($s2) +.L70011F30: +/* 012B30 70011F30 8E59002C */ lw $t9, 0x2c($s2) +/* 012B34 70011F34 24010001 */ li $at, 1 +/* 012B38 70011F38 02A02025 */ move $a0, $s5 +/* 012B3C 70011F3C 5721003C */ bnel $t9, $at, .L70012030 +/* 012B40 70011F40 02A02025 */ move $a0, $s5 +/* 012B44 70011F44 0C004B78 */ jal alEvtqFlushType +/* 012B48 70011F48 00002825 */ move $a1, $zero +/* 012B4C 70011F4C 02A02025 */ move $a0, $s5 +/* 012B50 70011F50 0C004B78 */ jal alEvtqFlushType +/* 012B54 70011F54 24050015 */ li $a1, 21 +/* 012B58 70011F58 02A02025 */ move $a0, $s5 +/* 012B5C 70011F5C 0C004B78 */ jal alEvtqFlushType +/* 012B60 70011F60 24050002 */ li $a1, 2 +/* 012B64 70011F64 8E510064 */ lw $s1, 0x64($s2) +/* 012B68 70011F68 1220000D */ beqz $s1, .L70011FA0 +/* 012B6C 70011F6C 26300004 */ addiu $s0, $s1, 4 +.L70011F70: +/* 012B70 70011F70 02002825 */ move $a1, $s0 +/* 012B74 70011F74 02402025 */ move $a0, $s2 +/* 012B78 70011F78 0C006FF2 */ jal __voiceNeedsNoteKill +/* 012B7C 70011F7C 3406C350 */ li $a2, 50000 +/* 012B80 70011F80 10400004 */ beqz $v0, .L70011F94 +/* 012B84 70011F84 02402025 */ move $a0, $s2 +/* 012B88 70011F88 02002825 */ move $a1, $s0 +/* 012B8C 70011F8C 0C006FA7 */ jal __seqpReleaseVoice +/* 012B90 70011F90 3406C350 */ li $a2, 50000 +.L70011F94: +/* 012B94 70011F94 8E310000 */ lw $s1, ($s1) +/* 012B98 70011F98 5620FFF5 */ bnezl $s1, .L70011F70 +/* 012B9C 70011F9C 26300004 */ addiu $s0, $s1, 4 +.L70011FA0: +/* 012BA0 70011FA0 240E0002 */ li $t6, 2 +/* 012BA4 70011FA4 AE4E002C */ sw $t6, 0x2c($s2) +/* 012BA8 70011FA8 240F0010 */ li $t7, 16 +/* 012BAC 70011FAC 3C067FFF */ lui $a2, (0x7FFFFFFF >> 16) # lui $a2, 0x7fff +/* 012BB0 70011FB0 A7AF008C */ sh $t7, 0x8c($sp) +/* 012BB4 70011FB4 34C6FFFF */ ori $a2, (0x7FFFFFFF & 0xFFFF) # ori $a2, $a2, 0xffff +/* 012BB8 70011FB8 02A02025 */ move $a0, $s5 +/* 012BBC 70011FBC 0C004BBF */ jal alEvtqPostEvent +/* 012BC0 70011FC0 27A5008C */ addiu $a1, $sp, 0x8c +/* 012BC4 70011FC4 1000001A */ b .L70012030 +/* 012BC8 70011FC8 02A02025 */ move $a0, $s5 +.L70011FCC: +/* 012BCC 70011FCC 9250003C */ lbu $s0, 0x3c($s2) +/* 012BD0 70011FD0 8E590060 */ lw $t9, 0x60($s2) +/* 012BD4 70011FD4 9258003D */ lbu $t8, 0x3d($s2) +/* 012BD8 70011FD8 00107100 */ sll $t6, $s0, 4 +/* 012BDC 70011FDC 032E7821 */ addu $t7, $t9, $t6 +/* 012BE0 70011FE0 10000012 */ b .L7001202C +/* 012BE4 70011FE4 A1F80008 */ sb $t8, 8($t7) +.L70011FE8: +/* 012BE8 70011FE8 8E59003C */ lw $t9, 0x3c($s2) +/* 012BEC 70011FEC 3C018003 */ lui $at, %hi(F32_800296C4) +/* 012BF0 70011FF0 02402025 */ move $a0, $s2 +/* 012BF4 70011FF4 AE590018 */ sw $t9, 0x18($s2) +/* 012BF8 70011FF8 0C00440C */ jal ultra_70011030 +/* 012BFC 70011FFC C42C96C4 */ lwc1 $f12, %lo(F32_800296C4)($at) +/* 012C00 70012000 8E450020 */ lw $a1, 0x20($s2) +/* 012C04 70012004 50A0000A */ beql $a1, $zero, .L70012030 +/* 012C08 70012008 02A02025 */ move $a0, $s5 +/* 012C0C 7001200C 0C006F4D */ jal __initFromBank +/* 012C10 70012010 02402025 */ move $a0, $s2 +/* 012C14 70012014 10000006 */ b .L70012030 +/* 012C18 70012018 02A02025 */ move $a0, $s5 +.L7001201C: +/* 012C1C 7001201C 8E45003C */ lw $a1, 0x3c($s2) +/* 012C20 70012020 02402025 */ move $a0, $s2 +/* 012C24 70012024 0C006F4D */ jal __initFromBank +/* 012C28 70012028 AE450020 */ sw $a1, 0x20($s2) +.L7001202C: +/* 012C2C 7001202C 02A02025 */ move $a0, $s5 +.L70012030: +/* 012C30 70012030 0C004C08 */ jal alEvtqNextEvent +/* 012C34 70012034 8FA50050 */ lw $a1, 0x50($sp) +/* 012C38 70012038 1040FE9C */ beqz $v0, .L70011AAC +/* 012C3C 7001203C AE420028 */ sw $v0, 0x28($s2) +/* 012C40 70012040 8E4E001C */ lw $t6, 0x1c($s2) +/* 012C44 70012044 01C2C021 */ addu $t8, $t6, $v0 +/* 012C48 70012048 AE58001C */ sw $t8, 0x1c($s2) +/* 012C4C 7001204C 8FBF0044 */ lw $ra, 0x44($sp) +/* 012C50 70012050 8FBE0040 */ lw $fp, 0x40($sp) +/* 012C54 70012054 8FB7003C */ lw $s7, 0x3c($sp) +/* 012C58 70012058 8FB60038 */ lw $s6, 0x38($sp) +/* 012C5C 7001205C 8FB50034 */ lw $s5, 0x34($sp) +/* 012C60 70012060 8FB40030 */ lw $s4, 0x30($sp) +/* 012C64 70012064 8FB3002C */ lw $s3, 0x2c($sp) +/* 012C68 70012068 8FB20028 */ lw $s2, 0x28($sp) +/* 012C6C 7001206C 8FB10024 */ lw $s1, 0x24($sp) +/* 012C70 70012070 8FB00020 */ lw $s0, 0x20($sp) +/* 012C74 70012074 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 012C78 70012078 03E00008 */ jr $ra +/* 012C7C 7001207C 27BD00A0 */ addiu $sp, $sp, 0xa0 + +glabel alCSPNew +/* 012C80 70012080 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 012C84 70012084 AFBF0024 */ sw $ra, 0x24($sp) +/* 012C88 70012088 AFB10020 */ sw $s1, 0x20($sp) +/* 012C8C 7001208C AFB0001C */ sw $s0, 0x1c($sp) +/* 012C90 70012090 8CA6000C */ lw $a2, 0xc($a1) +/* 012C94 70012094 AC800020 */ sw $zero, 0x20($a0) +/* 012C98 70012098 AC800018 */ sw $zero, 0x18($a0) +/* 012C9C 7001209C 3C0E8002 */ lui $t6, %hi(alGlobals) +/* 012CA0 700120A0 8DCE76E0 */ lw $t6, %lo(alGlobals)($t6) +/* 012CA4 700120A4 240F00FF */ li $t7, 255 +/* 012CA8 700120A8 241801E8 */ li $t8, 488 +/* 012CAC 700120AC 24197FFF */ li $t9, 32767 +/* 012CB0 700120B0 24083E80 */ li $t0, 16000 +/* 012CB4 700120B4 A48F0030 */ sh $t7, 0x30($a0) +/* 012CB8 700120B8 AC980024 */ sw $t8, 0x24($a0) +/* 012CBC 700120BC AC800028 */ sw $zero, 0x28($a0) +/* 012CC0 700120C0 AC80002C */ sw $zero, 0x2c($a0) +/* 012CC4 700120C4 A4990032 */ sh $t9, 0x32($a0) +/* 012CC8 700120C8 AC88005C */ sw $t0, 0x5c($a0) +/* 012CCC 700120CC AC80001C */ sw $zero, 0x1c($a0) +/* 012CD0 700120D0 AC8E0014 */ sw $t6, 0x14($a0) +/* 012CD4 700120D4 8CA90010 */ lw $t1, 0x10($a1) +/* 012CD8 700120D8 240C0009 */ li $t4, 9 +/* 012CDC 700120DC 00A08825 */ move $s1, $a1 +/* 012CE0 700120E0 AC890070 */ sw $t1, 0x70($a0) +/* 012CE4 700120E4 8CAA0014 */ lw $t2, 0x14($a1) +/* 012CE8 700120E8 00808025 */ move $s0, $a0 +/* 012CEC 700120EC 240E0010 */ li $t6, 16 +/* 012CF0 700120F0 AC8A0074 */ sw $t2, 0x74($a0) +/* 012CF4 700120F4 8CAB0018 */ lw $t3, 0x18($a1) +/* 012CF8 700120F8 A48C0038 */ sh $t4, 0x38($a0) +/* 012CFC 700120FC AC8B0078 */ sw $t3, 0x78($a0) +/* 012D00 70012100 90AD0008 */ lbu $t5, 8($a1) +/* 012D04 70012104 00002825 */ move $a1, $zero +/* 012D08 70012108 A08D0034 */ sb $t5, 0x34($a0) +/* 012D0C 7001210C 92270008 */ lbu $a3, 8($s1) +/* 012D10 70012110 AFAE0010 */ sw $t6, 0x10($sp) +/* 012D14 70012114 00002025 */ move $a0, $zero +/* 012D18 70012118 0C003AD4 */ jal alHeapDBAlloc +/* 012D1C 7001211C AFA6002C */ sw $a2, 0x2c($sp) +/* 012D20 70012120 AE020060 */ sw $v0, 0x60($s0) +/* 012D24 70012124 0C0074E9 */ jal __initChanState +/* 012D28 70012128 02002025 */ move $a0, $s0 +/* 012D2C 7001212C 8E270000 */ lw $a3, ($s1) +/* 012D30 70012130 240F0038 */ li $t7, 56 +/* 012D34 70012134 AFAF0010 */ sw $t7, 0x10($sp) +/* 012D38 70012138 00002025 */ move $a0, $zero +/* 012D3C 7001213C 00002825 */ move $a1, $zero +/* 012D40 70012140 0C003AD4 */ jal alHeapDBAlloc +/* 012D44 70012144 8FA6002C */ lw $a2, 0x2c($sp) +/* 012D48 70012148 AE00006C */ sw $zero, 0x6c($s0) +/* 012D4C 7001214C 8E380000 */ lw $t8, ($s1) +/* 012D50 70012150 00002025 */ move $a0, $zero +/* 012D54 70012154 00002825 */ move $a1, $zero +/* 012D58 70012158 1B00000B */ blez $t8, .L70012188 +/* 012D5C 7001215C 2409001C */ li $t1, 28 +/* 012D60 70012160 00401825 */ move $v1, $v0 +/* 012D64 70012164 8E19006C */ lw $t9, 0x6c($s0) +.L70012168: +/* 012D68 70012168 24840001 */ addiu $a0, $a0, 1 +/* 012D6C 7001216C AC790000 */ sw $t9, ($v1) +/* 012D70 70012170 AE03006C */ sw $v1, 0x6c($s0) +/* 012D74 70012174 8E280000 */ lw $t0, ($s1) +/* 012D78 70012178 24630038 */ addiu $v1, $v1, 0x38 +/* 012D7C 7001217C 0088082A */ slt $at, $a0, $t0 +/* 012D80 70012180 5420FFF9 */ bnezl $at, .L70012168 +/* 012D84 70012184 8E19006C */ lw $t9, 0x6c($s0) +.L70012188: +/* 012D88 70012188 AE000064 */ sw $zero, 0x64($s0) +/* 012D8C 7001218C AE000068 */ sw $zero, 0x68($s0) +/* 012D90 70012190 8E270004 */ lw $a3, 4($s1) +/* 012D94 70012194 AFA90010 */ sw $t1, 0x10($sp) +/* 012D98 70012198 8FA6002C */ lw $a2, 0x2c($sp) +/* 012D9C 7001219C 0C003AD4 */ jal alHeapDBAlloc +/* 012DA0 700121A0 00002025 */ move $a0, $zero +/* 012DA4 700121A4 26040048 */ addiu $a0, $s0, 0x48 +/* 012DA8 700121A8 00402825 */ move $a1, $v0 +/* 012DAC 700121AC 0C004C2B */ jal alEvtqNew +/* 012DB0 700121B0 8E260004 */ lw $a2, 4($s1) +/* 012DB4 700121B4 3C0A7001 */ lui $t2, %hi(ultra_70011A6C) # $t2, 0x7001 +/* 012DB8 700121B8 254A1A6C */ addiu $t2, %lo(ultra_70011A6C) # addiu $t2, $t2, 0x1a6c +/* 012DBC 700121BC AE000000 */ sw $zero, ($s0) +/* 012DC0 700121C0 AE0A0008 */ sw $t2, 8($s0) +/* 012DC4 700121C4 AE100004 */ sw $s0, 4($s0) +/* 012DC8 700121C8 3C048002 */ lui $a0, %hi(alGlobals) +/* 012DCC 700121CC 8C8476E0 */ lw $a0, %lo(alGlobals)($a0) +/* 012DD0 700121D0 0C004C48 */ jal alSynAddPlayer +/* 012DD4 700121D4 02002825 */ move $a1, $s0 +/* 012DD8 700121D8 8FBF0024 */ lw $ra, 0x24($sp) +/* 012DDC 700121DC 8FB0001C */ lw $s0, 0x1c($sp) +/* 012DE0 700121E0 8FB10020 */ lw $s1, 0x20($sp) +/* 012DE4 700121E4 03E00008 */ jr $ra +/* 012DE8 700121E8 27BD0040 */ addiu $sp, $sp, 0x40 + + + +.section .rodata +glabel audio_related_jump_table_0 +.word .L70011620, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011280, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011678, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011750, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011988, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L700116DC, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L70011A54, .L70011A54, .L70011A54, .L70011A54 +.word .L700119BC +glabel audio_related_jump_table_1 +.word .L70011AD0 +.word .L7001202C +.word .L70011E00 +.word .L7001202C +.word .L7001202C +.word .L70011BBC +.word .L70011C08 +.word .L70011E1C +.word .L7001202C +.word .L70011B9C +.word .L70011E3C +.word .L7001202C +.word .L70011FCC +.word .L70011FE8 +.word .L7001201C +.word .L70011EA0 +.word .L70011EC4 +.word .L70011F30 +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L70011E00 +.word .L70011C6C +.word .L70011D78 +glabel audio_related_jump_table_2 +.word .L70011B0C +.word .L7001202C +.word .L70011B34 +.word .L70011B60 +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L7001202C +.word .L70011B8C +.word .L70011B8C +.word .L70011B8C +glabel F32_800296C4 + .float 500000.0 +.align 4 diff --git a/src/libultra/cspplay.s b/src/libultra/cspplay.s new file mode 100644 index 0000000..a1baa7a --- /dev/null +++ b/src/libultra/cspplay.s @@ -0,0 +1,22 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alCSPPlay +/* 013940 70012D40 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 013944 70012D44 AFBF0014 */ sw $ra, 0x14($sp) +/* 013948 70012D48 240E000F */ li $t6, 15 +/* 01394C 70012D4C A7AE0018 */ sh $t6, 0x18($sp) +/* 013950 70012D50 27A50018 */ addiu $a1, $sp, 0x18 +/* 013954 70012D54 24840048 */ addiu $a0, $a0, 0x48 +/* 013958 70012D58 0C004BBF */ jal alEvtqPostEvent +/* 01395C 70012D5C 00003025 */ move $a2, $zero +/* 013960 70012D60 8FBF0014 */ lw $ra, 0x14($sp) +/* 013964 70012D64 27BD0028 */ addiu $sp, $sp, 0x28 +/* 013968 70012D68 03E00008 */ jr $ra +/* 01396C 70012D6C 00000000 */ nop diff --git a/src/libultra/cspsetseq.s b/src/libultra/cspsetseq.s new file mode 100644 index 0000000..d028e49 --- /dev/null +++ b/src/libultra/cspsetseq.s @@ -0,0 +1,23 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alCSPSetSeq +/* 013900 70012D00 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 013904 70012D04 AFBF0014 */ sw $ra, 0x14($sp) +/* 013908 70012D08 240E000D */ li $t6, 13 +/* 01390C 70012D0C AFA5001C */ sw $a1, 0x1c($sp) +/* 013910 70012D10 A7AE0018 */ sh $t6, 0x18($sp) +/* 013914 70012D14 27A50018 */ addiu $a1, $sp, 0x18 +/* 013918 70012D18 24840048 */ addiu $a0, $a0, 0x48 +/* 01391C 70012D1C 0C004BBF */ jal alEvtqPostEvent +/* 013920 70012D20 00003025 */ move $a2, $zero +/* 013924 70012D24 8FBF0014 */ lw $ra, 0x14($sp) +/* 013928 70012D28 27BD0028 */ addiu $sp, $sp, 0x28 +/* 01392C 70012D2C 03E00008 */ jr $ra +/* 013930 70012D30 00000000 */ nop diff --git a/src/libultra/cspsetvol.s b/src/libultra/cspsetvol.s new file mode 100644 index 0000000..b921c28 --- /dev/null +++ b/src/libultra/cspsetvol.s @@ -0,0 +1,26 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel alCSPSetVol +/* 0139A0 70012DA0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0139A4 70012DA4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0139A8 70012DA8 AFA5002C */ sw $a1, 0x2c($sp) +/* 0139AC 70012DAC 00A07025 */ move $t6, $a1 +/* 0139B0 70012DB0 240F000A */ li $t7, 10 +/* 0139B4 70012DB4 A7AF0018 */ sh $t7, 0x18($sp) +/* 0139B8 70012DB8 A7AE001C */ sh $t6, 0x1c($sp) +/* 0139BC 70012DBC 27A50018 */ addiu $a1, $sp, 0x18 +/* 0139C0 70012DC0 24840048 */ addiu $a0, $a0, 0x48 +/* 0139C4 70012DC4 0C004BBF */ jal alEvtqPostEvent +/* 0139C8 70012DC8 00003025 */ move $a2, $zero +/* 0139CC 70012DCC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0139D0 70012DD0 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0139D4 70012DD4 03E00008 */ jr $ra +/* 0139D8 70012DD8 00000000 */ nop diff --git a/src/libultra/cspstop.s b/src/libultra/cspstop.s new file mode 100644 index 0000000..e3664ab --- /dev/null +++ b/src/libultra/cspstop.s @@ -0,0 +1,23 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel alCSPStop +/* 013970 70012D70 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 013974 70012D74 AFBF0014 */ sw $ra, 0x14($sp) +/* 013978 70012D78 240E0011 */ li $t6, 17 +/* 01397C 70012D7C A7AE0018 */ sh $t6, 0x18($sp) +/* 013980 70012D80 27A50018 */ addiu $a1, $sp, 0x18 +/* 013984 70012D84 24840048 */ addiu $a0, $a0, 0x48 +/* 013988 70012D88 0C004BBF */ jal alEvtqPostEvent +/* 01398C 70012D8C 00003025 */ move $a2, $zero +/* 013990 70012D90 8FBF0014 */ lw $ra, 0x14($sp) +/* 013994 70012D94 27BD0028 */ addiu $sp, $sp, 0x28 +/* 013998 70012D98 03E00008 */ jr $ra +/* 01399C 70012D9C 00000000 */ nop diff --git a/src/libultra/destroythread.s b/src/libultra/destroythread.s new file mode 100644 index 0000000..98d094b --- /dev/null +++ b/src/libultra/destroythread.s @@ -0,0 +1,84 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osDestroyThread +/* 01C760 7001BB60 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 01C764 7001BB64 AFBF0024 */ sw $ra, 0x24($sp) +/* 01C768 7001BB68 AFA40038 */ sw $a0, 0x38($sp) +/* 01C76C 7001BB6C AFB20020 */ sw $s2, 0x20($sp) +/* 01C770 7001BB70 AFB1001C */ sw $s1, 0x1c($sp) +/* 01C774 7001BB74 0C00617C */ jal __osDisableInt +/* 01C778 7001BB78 AFB00018 */ sw $s0, 0x18($sp) +/* 01C77C 7001BB7C 8FAE0038 */ lw $t6, 0x38($sp) +/* 01C780 7001BB80 00408025 */ move $s0, $v0 +/* 01C784 7001BB84 15C00005 */ bnez $t6, .L7001BB9C +/* 01C788 7001BB88 00000000 */ nop +/* 01C78C 7001BB8C 3C0F8002 */ lui $t7, %hi(__osRunningThread) +/* 01C790 7001BB90 8DEF7730 */ lw $t7, %lo(__osRunningThread)($t7) +/* 01C794 7001BB94 10000009 */ b .L7001BBBC +/* 01C798 7001BB98 AFAF0038 */ sw $t7, 0x38($sp) +.L7001BB9C: +/* 01C79C 7001BB9C 8FB80038 */ lw $t8, 0x38($sp) +/* 01C7A0 7001BBA0 24010001 */ li $at, 1 +/* 01C7A4 7001BBA4 97190010 */ lhu $t9, 0x10($t8) +/* 01C7A8 7001BBA8 13210004 */ beq $t9, $at, .L7001BBBC +/* 01C7AC 7001BBAC 00000000 */ nop +/* 01C7B0 7001BBB0 8F040008 */ lw $a0, 8($t8) +/* 01C7B4 7001BBB4 0C0042A4 */ jal __osDequeueThread +/* 01C7B8 7001BBB8 03002825 */ move $a1, $t8 +.L7001BBBC: +/* 01C7BC 7001BBBC 3C088002 */ lui $t0, %hi(__osActiveQueue) +/* 01C7C0 7001BBC0 8D08772C */ lw $t0, %lo(__osActiveQueue)($t0) +/* 01C7C4 7001BBC4 8FA90038 */ lw $t1, 0x38($sp) +/* 01C7C8 7001BBC8 15090005 */ bne $t0, $t1, .L7001BBE0 +/* 01C7CC 7001BBCC 00000000 */ nop +/* 01C7D0 7001BBD0 8D0A000C */ lw $t2, 0xc($t0) +/* 01C7D4 7001BBD4 3C018002 */ lui $at, %hi(__osActiveQueue) +/* 01C7D8 7001BBD8 10000010 */ b .L7001BC1C +/* 01C7DC 7001BBDC AC2A772C */ sw $t2, %lo(__osActiveQueue)($at) +.L7001BBE0: +/* 01C7E0 7001BBE0 3C118002 */ lui $s1, %hi(__osActiveQueue) +/* 01C7E4 7001BBE4 8E31772C */ lw $s1, %lo(__osActiveQueue)($s1) +/* 01C7E8 7001BBE8 8E32000C */ lw $s2, 0xc($s1) +/* 01C7EC 7001BBEC 1240000B */ beqz $s2, .L7001BC1C +/* 01C7F0 7001BBF0 00000000 */ nop +.L7001BBF4: +/* 01C7F4 7001BBF4 8FAB0038 */ lw $t3, 0x38($sp) +/* 01C7F8 7001BBF8 164B0004 */ bne $s2, $t3, .L7001BC0C +/* 01C7FC 7001BBFC 00000000 */ nop +/* 01C800 7001BC00 8D6C000C */ lw $t4, 0xc($t3) +/* 01C804 7001BC04 10000005 */ b .L7001BC1C +/* 01C808 7001BC08 AE2C000C */ sw $t4, 0xc($s1) +.L7001BC0C: +/* 01C80C 7001BC0C 02408825 */ move $s1, $s2 +/* 01C810 7001BC10 8E32000C */ lw $s2, 0xc($s1) +/* 01C814 7001BC14 1640FFF7 */ bnez $s2, .L7001BBF4 +/* 01C818 7001BC18 00000000 */ nop +.L7001BC1C: +/* 01C81C 7001BC1C 3C0E8002 */ lui $t6, %hi(__osRunningThread) +/* 01C820 7001BC20 8DCE7730 */ lw $t6, %lo(__osRunningThread)($t6) +/* 01C824 7001BC24 8FAD0038 */ lw $t5, 0x38($sp) +/* 01C828 7001BC28 15AE0003 */ bne $t5, $t6, .L7001BC38 +/* 01C82C 7001BC2C 00000000 */ nop +/* 01C830 7001BC30 0C004241 */ jal __osDispatchThread +/* 01C834 7001BC34 00000000 */ nop +.L7001BC38: +/* 01C838 7001BC38 0C006184 */ jal __osRestoreInt +/* 01C83C 7001BC3C 02002025 */ move $a0, $s0 +/* 01C840 7001BC40 8FBF0024 */ lw $ra, 0x24($sp) +/* 01C844 7001BC44 8FB00018 */ lw $s0, 0x18($sp) +/* 01C848 7001BC48 8FB1001C */ lw $s1, 0x1c($sp) +/* 01C84C 7001BC4C 8FB20020 */ lw $s2, 0x20($sp) +/* 01C850 7001BC50 03E00008 */ jr $ra +/* 01C854 7001BC54 27BD0038 */ addiu $sp, $sp, 0x38 + diff --git a/src/libultra/devmgr.s b/src/libultra/devmgr.s new file mode 100644 index 0000000..07efeca --- /dev/null +++ b/src/libultra/devmgr.s @@ -0,0 +1,275 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osDevMgrMain +/* 01F210 7001E610 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 01F214 7001E614 AFA40040 */ sw $a0, 0x40($sp) +/* 01F218 7001E618 8FAE0040 */ lw $t6, 0x40($sp) +/* 01F21C 7001E61C AFBF001C */ sw $ra, 0x1c($sp) +/* 01F220 7001E620 AFA00028 */ sw $zero, 0x28($sp) +/* 01F224 7001E624 AFA0003C */ sw $zero, 0x3c($sp) +/* 01F228 7001E628 AFA00030 */ sw $zero, 0x30($sp) +/* 01F22C 7001E62C AFAE002C */ sw $t6, 0x2c($sp) +.L7001E630: +/* 01F230 7001E630 8FAF002C */ lw $t7, 0x2c($sp) +/* 01F234 7001E634 27A5003C */ addiu $a1, $sp, 0x3c +/* 01F238 7001E638 24060001 */ li $a2, 1 +/* 01F23C 7001E63C 0C003774 */ jal osRecvMesg +/* 01F240 7001E640 8DE40008 */ lw $a0, 8($t7) +/* 01F244 7001E644 8FB8003C */ lw $t8, 0x3c($sp) +/* 01F248 7001E648 8F190014 */ lw $t9, 0x14($t8) +/* 01F24C 7001E64C 13200065 */ beqz $t9, .L7001E7E4 +/* 01F250 7001E650 00000000 */ nop +/* 01F254 7001E654 93280004 */ lbu $t0, 4($t9) +/* 01F258 7001E658 24010002 */ li $at, 2 +/* 01F25C 7001E65C 15010061 */ bne $t0, $at, .L7001E7E4 +/* 01F260 7001E660 00000000 */ nop +/* 01F264 7001E664 8F290014 */ lw $t1, 0x14($t9) +/* 01F268 7001E668 11200003 */ beqz $t1, .L7001E678 +/* 01F26C 7001E66C 24010001 */ li $at, 1 +/* 01F270 7001E670 1521005C */ bne $t1, $at, .L7001E7E4 +/* 01F274 7001E674 00000000 */ nop +.L7001E678: +/* 01F278 7001E678 8FAA003C */ lw $t2, 0x3c($sp) +/* 01F27C 7001E67C 2408FFFF */ li $t0, -1 +/* 01F280 7001E680 24010003 */ li $at, 3 +/* 01F284 7001E684 8D4B0014 */ lw $t3, 0x14($t2) +/* 01F288 7001E688 256C0014 */ addiu $t4, $t3, 0x14 +/* 01F28C 7001E68C AFAC0020 */ sw $t4, 0x20($sp) +/* 01F290 7001E690 958D0006 */ lhu $t5, 6($t4) +/* 01F294 7001E694 000D70C0 */ sll $t6, $t5, 3 +/* 01F298 7001E698 01CD7021 */ addu $t6, $t6, $t5 +/* 01F29C 7001E69C 000E7080 */ sll $t6, $t6, 2 +/* 01F2A0 7001E6A0 018E7821 */ addu $t7, $t4, $t6 +/* 01F2A4 7001E6A4 25F80018 */ addiu $t8, $t7, 0x18 +/* 01F2A8 7001E6A8 AFB80024 */ sw $t8, 0x24($sp) +/* 01F2AC 7001E6AC AD880008 */ sw $t0, 8($t4) +/* 01F2B0 7001E6B0 8FB90020 */ lw $t9, 0x20($sp) +/* 01F2B4 7001E6B4 97290004 */ lhu $t1, 4($t9) +/* 01F2B8 7001E6B8 11210006 */ beq $t1, $at, .L7001E6D4 +/* 01F2BC 7001E6BC 00000000 */ nop +/* 01F2C0 7001E6C0 8FAA0024 */ lw $t2, 0x24($sp) +/* 01F2C4 7001E6C4 8D4B0004 */ lw $t3, 4($t2) +/* 01F2C8 7001E6C8 8D4D000C */ lw $t5, 0xc($t2) +/* 01F2CC 7001E6CC 016D7023 */ subu $t6, $t3, $t5 +/* 01F2D0 7001E6D0 AD4E0004 */ sw $t6, 4($t2) +.L7001E6D4: +/* 01F2D4 7001E6D4 8FAF0020 */ lw $t7, 0x20($sp) +/* 01F2D8 7001E6D8 24010002 */ li $at, 2 +/* 01F2DC 7001E6DC 95F80004 */ lhu $t8, 4($t7) +/* 01F2E0 7001E6E0 17010009 */ bne $t8, $at, .L7001E708 +/* 01F2E4 7001E6E4 00000000 */ nop +/* 01F2E8 7001E6E8 8FA8003C */ lw $t0, 0x3c($sp) +/* 01F2EC 7001E6EC 8D0C0014 */ lw $t4, 0x14($t0) +/* 01F2F0 7001E6F0 8D990014 */ lw $t9, 0x14($t4) +/* 01F2F4 7001E6F4 17200004 */ bnez $t9, .L7001E708 +/* 01F2F8 7001E6F8 00000000 */ nop +/* 01F2FC 7001E6FC 24090001 */ li $t1, 1 +/* 01F300 7001E700 10000002 */ b .L7001E70C +/* 01F304 7001E704 AFA90028 */ sw $t1, 0x28($sp) +.L7001E708: +/* 01F308 7001E708 AFA00028 */ sw $zero, 0x28($sp) +.L7001E70C: +/* 01F30C 7001E70C 8FAB002C */ lw $t3, 0x2c($sp) +/* 01F310 7001E710 27A50034 */ addiu $a1, $sp, 0x34 +/* 01F314 7001E714 24060001 */ li $a2, 1 +/* 01F318 7001E718 0C003774 */ jal osRecvMesg +/* 01F31C 7001E71C 8D640010 */ lw $a0, 0x10($t3) +/* 01F320 7001E720 3C040010 */ lui $a0, (0x00100401 >> 16) # lui $a0, 0x10 +/* 01F324 7001E724 0C008338 */ jal __osResetGlobalIntMask +/* 01F328 7001E728 34840401 */ ori $a0, (0x00100401 & 0xFFFF) # ori $a0, $a0, 0x401 +/* 01F32C 7001E72C 8FAE0020 */ lw $t6, 0x20($sp) +/* 01F330 7001E730 8FAD003C */ lw $t5, 0x3c($sp) +/* 01F334 7001E734 3C018000 */ lui $at, 0x8000 +/* 01F338 7001E738 8DC60010 */ lw $a2, 0x10($t6) +/* 01F33C 7001E73C 3C050500 */ lui $a1, (0x05000510 >> 16) # lui $a1, 0x500 +/* 01F340 7001E740 34A50510 */ ori $a1, (0x05000510 & 0xFFFF) # ori $a1, $a1, 0x510 +/* 01F344 7001E744 00C15025 */ or $t2, $a2, $at +/* 01F348 7001E748 01403025 */ move $a2, $t2 +/* 01F34C 7001E74C 0C008350 */ jal osEPiRawWriteIo +/* 01F350 7001E750 8DA40014 */ lw $a0, 0x14($t5) +.L7001E754: +/* 01F354 7001E754 8FAF002C */ lw $t7, 0x2c($sp) +/* 01F358 7001E758 27A50038 */ addiu $a1, $sp, 0x38 +/* 01F35C 7001E75C 24060001 */ li $a2, 1 +/* 01F360 7001E760 0C003774 */ jal osRecvMesg +/* 01F364 7001E764 8DE4000C */ lw $a0, 0xc($t7) +/* 01F368 7001E768 8FB8003C */ lw $t8, 0x3c($sp) +/* 01F36C 7001E76C 00003025 */ move $a2, $zero +/* 01F370 7001E770 8F040004 */ lw $a0, 4($t8) +/* 01F374 7001E774 0C0037C4 */ jal osSendMesg +/* 01F378 7001E778 03002825 */ move $a1, $t8 +/* 01F37C 7001E77C 8FA80028 */ lw $t0, 0x28($sp) +/* 01F380 7001E780 24010001 */ li $at, 1 +/* 01F384 7001E784 15010008 */ bne $t0, $at, .L7001E7A8 +/* 01F388 7001E788 00000000 */ nop +/* 01F38C 7001E78C 8FAC003C */ lw $t4, 0x3c($sp) +/* 01F390 7001E790 8D990014 */ lw $t9, 0x14($t4) +/* 01F394 7001E794 8F29002C */ lw $t1, 0x2c($t9) +/* 01F398 7001E798 15200003 */ bnez $t1, .L7001E7A8 +/* 01F39C 7001E79C 00000000 */ nop +/* 01F3A0 7001E7A0 1000FFEC */ b .L7001E754 +/* 01F3A4 7001E7A4 AFA00028 */ sw $zero, 0x28($sp) +.L7001E7A8: +/* 01F3A8 7001E7A8 8FAB002C */ lw $t3, 0x2c($sp) +/* 01F3AC 7001E7AC 00002825 */ move $a1, $zero +/* 01F3B0 7001E7B0 00003025 */ move $a2, $zero +/* 01F3B4 7001E7B4 0C0037C4 */ jal osSendMesg +/* 01F3B8 7001E7B8 8D640010 */ lw $a0, 0x10($t3) +/* 01F3BC 7001E7BC 8FAD003C */ lw $t5, 0x3c($sp) +/* 01F3C0 7001E7C0 24010001 */ li $at, 1 +/* 01F3C4 7001E7C4 8DAE0014 */ lw $t6, 0x14($t5) +/* 01F3C8 7001E7C8 95CA001A */ lhu $t2, 0x1a($t6) +/* 01F3CC 7001E7CC 1541FF98 */ bne $t2, $at, .L7001E630 +/* 01F3D0 7001E7D0 00000000 */ nop +/* 01F3D4 7001E7D4 0C0042B4 */ jal osYieldThread +/* 01F3D8 7001E7D8 00000000 */ nop +/* 01F3DC 7001E7DC 1000FF94 */ b .L7001E630 +/* 01F3E0 7001E7E0 00000000 */ nop +.L7001E7E4: +/* 01F3E4 7001E7E4 8FAF003C */ lw $t7, 0x3c($sp) +/* 01F3E8 7001E7E8 95F80000 */ lhu $t8, ($t7) +/* 01F3EC 7001E7EC 2708FFF6 */ addiu $t0, $t8, -0xa +/* 01F3F0 7001E7F0 2D010007 */ sltiu $at, $t0, 7 +/* 01F3F4 7001E7F4 10200052 */ beqz $at, .L7001E940 +/* 01F3F8 7001E7F8 00000000 */ nop +/* 01F3FC 7001E7FC 00084080 */ sll $t0, $t0, 2 +/* 01F400 7001E800 3C018003 */ lui $at, %hi(jpt_80029CF0) +/* 01F404 7001E804 00280821 */ addu $at, $at, $t0 +/* 01F408 7001E808 8C289CF0 */ lw $t0, %lo(jpt_80029CF0)($at) +/* 01F40C 7001E80C 01000008 */ jr $t0 +/* 01F410 7001E810 00000000 */ nop +.L7001E814: +/* 01F414 7001E814 8FAC002C */ lw $t4, 0x2c($sp) +/* 01F418 7001E818 27A50034 */ addiu $a1, $sp, 0x34 +/* 01F41C 7001E81C 24060001 */ li $a2, 1 +/* 01F420 7001E820 0C003774 */ jal osRecvMesg +/* 01F424 7001E824 8D840010 */ lw $a0, 0x10($t4) +/* 01F428 7001E828 8FB9003C */ lw $t9, 0x3c($sp) +/* 01F42C 7001E82C 8FA9002C */ lw $t1, 0x2c($sp) +/* 01F430 7001E830 00002025 */ move $a0, $zero +/* 01F434 7001E834 8F25000C */ lw $a1, 0xc($t9) +/* 01F438 7001E838 8F260008 */ lw $a2, 8($t9) +/* 01F43C 7001E83C 8F270010 */ lw $a3, 0x10($t9) +/* 01F440 7001E840 8D390014 */ lw $t9, 0x14($t1) +/* 01F444 7001E844 0320F809 */ jalr $t9 +/* 01F448 7001E848 00000000 */ nop +/* 01F44C 7001E84C 1000003E */ b .L7001E948 +/* 01F450 7001E850 AFA20030 */ sw $v0, 0x30($sp) +.L7001E854: +/* 01F454 7001E854 8FAB002C */ lw $t3, 0x2c($sp) +/* 01F458 7001E858 27A50034 */ addiu $a1, $sp, 0x34 +/* 01F45C 7001E85C 24060001 */ li $a2, 1 +/* 01F460 7001E860 0C003774 */ jal osRecvMesg +/* 01F464 7001E864 8D640010 */ lw $a0, 0x10($t3) +/* 01F468 7001E868 8FAE002C */ lw $t6, 0x2c($sp) +/* 01F46C 7001E86C 8FAD003C */ lw $t5, 0x3c($sp) +/* 01F470 7001E870 24040001 */ li $a0, 1 +/* 01F474 7001E874 8DD90014 */ lw $t9, 0x14($t6) +/* 01F478 7001E878 8DA5000C */ lw $a1, 0xc($t5) +/* 01F47C 7001E87C 8DA60008 */ lw $a2, 8($t5) +/* 01F480 7001E880 0320F809 */ jalr $t9 +/* 01F484 7001E884 8DA70010 */ lw $a3, 0x10($t5) +/* 01F488 7001E888 1000002F */ b .L7001E948 +/* 01F48C 7001E88C AFA20030 */ sw $v0, 0x30($sp) +.L7001E890: +/* 01F490 7001E890 8FAA002C */ lw $t2, 0x2c($sp) +/* 01F494 7001E894 27A50034 */ addiu $a1, $sp, 0x34 +/* 01F498 7001E898 24060001 */ li $a2, 1 +/* 01F49C 7001E89C 0C003774 */ jal osRecvMesg +/* 01F4A0 7001E8A0 8D440010 */ lw $a0, 0x10($t2) +/* 01F4A4 7001E8A4 8FAF003C */ lw $t7, 0x3c($sp) +/* 01F4A8 7001E8A8 8FA8002C */ lw $t0, 0x2c($sp) +/* 01F4AC 7001E8AC 00002825 */ move $a1, $zero +/* 01F4B0 7001E8B0 8DF80010 */ lw $t8, 0x10($t7) +/* 01F4B4 7001E8B4 8DE40014 */ lw $a0, 0x14($t7) +/* 01F4B8 7001E8B8 8DE6000C */ lw $a2, 0xc($t7) +/* 01F4BC 7001E8BC 8DE70008 */ lw $a3, 8($t7) +/* 01F4C0 7001E8C0 AFB80010 */ sw $t8, 0x10($sp) +/* 01F4C4 7001E8C4 8D190018 */ lw $t9, 0x18($t0) +/* 01F4C8 7001E8C8 0320F809 */ jalr $t9 +/* 01F4CC 7001E8CC 00000000 */ nop +/* 01F4D0 7001E8D0 1000001D */ b .L7001E948 +/* 01F4D4 7001E8D4 AFA20030 */ sw $v0, 0x30($sp) +.L7001E8D8: +/* 01F4D8 7001E8D8 8FAC002C */ lw $t4, 0x2c($sp) +/* 01F4DC 7001E8DC 27A50034 */ addiu $a1, $sp, 0x34 +/* 01F4E0 7001E8E0 24060001 */ li $a2, 1 +/* 01F4E4 7001E8E4 0C003774 */ jal osRecvMesg +/* 01F4E8 7001E8E8 8D840010 */ lw $a0, 0x10($t4) +/* 01F4EC 7001E8EC 8FA9003C */ lw $t1, 0x3c($sp) +/* 01F4F0 7001E8F0 8FAD002C */ lw $t5, 0x2c($sp) +/* 01F4F4 7001E8F4 24050001 */ li $a1, 1 +/* 01F4F8 7001E8F8 8D2B0010 */ lw $t3, 0x10($t1) +/* 01F4FC 7001E8FC 8D240014 */ lw $a0, 0x14($t1) +/* 01F500 7001E900 8D26000C */ lw $a2, 0xc($t1) +/* 01F504 7001E904 8D270008 */ lw $a3, 8($t1) +/* 01F508 7001E908 AFAB0010 */ sw $t3, 0x10($sp) +/* 01F50C 7001E90C 8DB90018 */ lw $t9, 0x18($t5) +/* 01F510 7001E910 0320F809 */ jalr $t9 +/* 01F514 7001E914 00000000 */ nop +/* 01F518 7001E918 1000000B */ b .L7001E948 +/* 01F51C 7001E91C AFA20030 */ sw $v0, 0x30($sp) +.L7001E920: +/* 01F520 7001E920 8FAE003C */ lw $t6, 0x3c($sp) +/* 01F524 7001E924 00003025 */ move $a2, $zero +/* 01F528 7001E928 8DC40004 */ lw $a0, 4($t6) +/* 01F52C 7001E92C 0C0037C4 */ jal osSendMesg +/* 01F530 7001E930 01C02825 */ move $a1, $t6 +/* 01F534 7001E934 240AFFFF */ li $t2, -1 +/* 01F538 7001E938 10000003 */ b .L7001E948 +/* 01F53C 7001E93C AFAA0030 */ sw $t2, 0x30($sp) +.L7001E940: +/* 01F540 7001E940 240FFFFF */ li $t7, -1 +/* 01F544 7001E944 AFAF0030 */ sw $t7, 0x30($sp) +.L7001E948: +/* 01F548 7001E948 8FB80030 */ lw $t8, 0x30($sp) +/* 01F54C 7001E94C 1700FF38 */ bnez $t8, .L7001E630 +/* 01F550 7001E950 00000000 */ nop +/* 01F554 7001E954 8FA8002C */ lw $t0, 0x2c($sp) +/* 01F558 7001E958 27A50038 */ addiu $a1, $sp, 0x38 +/* 01F55C 7001E95C 24060001 */ li $a2, 1 +/* 01F560 7001E960 0C003774 */ jal osRecvMesg +/* 01F564 7001E964 8D04000C */ lw $a0, 0xc($t0) +/* 01F568 7001E968 8FAC003C */ lw $t4, 0x3c($sp) +/* 01F56C 7001E96C 00003025 */ move $a2, $zero +/* 01F570 7001E970 8D840004 */ lw $a0, 4($t4) +/* 01F574 7001E974 0C0037C4 */ jal osSendMesg +/* 01F578 7001E978 01802825 */ move $a1, $t4 +/* 01F57C 7001E97C 8FA9002C */ lw $t1, 0x2c($sp) +/* 01F580 7001E980 00002825 */ move $a1, $zero +/* 01F584 7001E984 00003025 */ move $a2, $zero +/* 01F588 7001E988 0C0037C4 */ jal osSendMesg +/* 01F58C 7001E98C 8D240010 */ lw $a0, 0x10($t1) +/* 01F590 7001E990 1000FF27 */ b .L7001E630 +/* 01F594 7001E994 00000000 */ nop +/* 01F598 7001E998 00000000 */ nop +/* 01F59C 7001E99C 00000000 */ nop +/* 01F5A0 7001E9A0 00000000 */ nop +/* 01F5A4 7001E9A4 00000000 */ nop +/* 01F5A8 7001E9A8 00000000 */ nop +/* 01F5AC 7001E9AC 00000000 */ nop +/* 01F5B0 7001E9B0 8FBF001C */ lw $ra, 0x1c($sp) +/* 01F5B4 7001E9B4 27BD0040 */ addiu $sp, $sp, 0x40 +/* 01F5B8 7001E9B8 03E00008 */ jr $ra +/* 01F5BC 7001E9BC 00000000 */ nop +.section .rodata +glabel jpt_80029CF0 + .word .L7001E920 + .word .L7001E814 + .word .L7001E854 + .word .L7001E940 + .word .L7001E940 + .word .L7001E890 + .word .L7001E8D8 +.align 4 diff --git a/src/libultra/dp.s b/src/libultra/dp.s new file mode 100644 index 0000000..547dab2 --- /dev/null +++ b/src/libultra/dp.s @@ -0,0 +1,29 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +.section .text +glabel __osDpDeviceBusy +/* 019BF0 70018FF0 3C0EA410 */ lui $t6, %hi(DPC_STATUS_REG) # $t6, 0xa410 +/* 019BF4 70018FF4 8DC4000C */ lw $a0, %lo(DPC_STATUS_REG)($t6) +/* 019BF8 70018FF8 27BDFFF8 */ addiu $sp, $sp, -8 +/* 019BFC 70018FFC 308F0100 */ andi $t7, $a0, 0x100 +/* 019C00 70019000 11E00003 */ beqz $t7, .L70019010 +/* 019C04 70019004 00000000 */ nop +/* 019C08 70019008 10000002 */ b .L70019014 +/* 019C0C 7001900C 24020001 */ li $v0, 1 +.L70019010: +/* 019C10 70019010 00001025 */ move $v0, $zero +.L70019014: +/* 019C14 70019014 03E00008 */ jr $ra +/* 019C18 70019018 27BD0008 */ addiu $sp, $sp, 8 + diff --git a/src/libultra/dpctr.s b/src/libultra/dpctr.s new file mode 100644 index 0000000..577721d --- /dev/null +++ b/src/libultra/dpctr.s @@ -0,0 +1,29 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osDpGetCounters +/* 00EFC0 7000E3C0 3C0EA410 */ lui $t6, %hi(DPC_CLOCK_REG) # $t6, 0xa410 +/* 00EFC4 7000E3C4 8DCF0010 */ lw $t7, %lo(DPC_CLOCK_REG)($t6) +/* 00EFC8 7000E3C8 3C18A410 */ lui $t8, %hi(DPC_BUFBUSY_REG) # $t8, 0xa410 +/* 00EFCC 7000E3CC 3C08A410 */ lui $t0, %hi(DPC_PIPEBUSY_REG) # $t0, 0xa410 +/* 00EFD0 7000E3D0 AC8F0000 */ sw $t7, ($a0) +/* 00EFD4 7000E3D4 8F190014 */ lw $t9, %lo(DPC_BUFBUSY_REG)($t8) +/* 00EFD8 7000E3D8 24840004 */ addiu $a0, $a0, 4 +/* 00EFDC 7000E3DC 3C0AA410 */ lui $t2, %hi(DPC_TMEM_REG) # $t2, 0xa410 +/* 00EFE0 7000E3E0 AC990000 */ sw $t9, ($a0) +/* 00EFE4 7000E3E4 8D090018 */ lw $t1, %lo(DPC_PIPEBUSY_REG)($t0) +/* 00EFE8 7000E3E8 24840004 */ addiu $a0, $a0, 4 +/* 00EFEC 7000E3EC 24840004 */ addiu $a0, $a0, 4 +/* 00EFF0 7000E3F0 AC89FFFC */ sw $t1, -4($a0) +/* 00EFF4 7000E3F4 8D4B001C */ lw $t3, %lo(DPC_TMEM_REG)($t2) +/* 00EFF8 7000E3F8 24840004 */ addiu $a0, $a0, 4 +/* 00EFFC 7000E3FC 03E00008 */ jr $ra +/* 00F000 7000E400 AC8BFFFC */ sw $t3, -4($a0) + diff --git a/src/libultra/dpsetnextbuf.s b/src/libultra/dpsetnextbuf.s new file mode 100644 index 0000000..56e2b62 --- /dev/null +++ b/src/libultra/dpsetnextbuf.s @@ -0,0 +1,55 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osDpSetNextBuffer +/* 00F3B0 7000E7B0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00F3B4 7000E7B4 AFBF001C */ sw $ra, 0x1c($sp) +/* 00F3B8 7000E7B8 AFA40028 */ sw $a0, 0x28($sp) +/* 00F3BC 7000E7BC AFA60030 */ sw $a2, 0x30($sp) +/* 00F3C0 7000E7C0 AFA70034 */ sw $a3, 0x34($sp) +/* 00F3C4 7000E7C4 0C0063FC */ jal __osDpDeviceBusy +/* 00F3C8 7000E7C8 AFB00018 */ sw $s0, 0x18($sp) +/* 00F3CC 7000E7CC 10400003 */ beqz $v0, .L7000E7DC +/* 00F3D0 7000E7D0 00000000 */ nop +/* 00F3D4 7000E7D4 1000001B */ b .L7000E844 +/* 00F3D8 7000E7D8 2402FFFF */ li $v0, -1 +.L7000E7DC: +/* 00F3DC 7000E7DC 240E0001 */ li $t6, 1 +/* 00F3E0 7000E7E0 3C0FA410 */ lui $t7, %hi(DPC_STATUS_REG) # $t7, 0xa410 +/* 00F3E4 7000E7E4 ADEE000C */ sw $t6, %lo(DPC_STATUS_REG)($t7) +.L7000E7E8: +/* 00F3E8 7000E7E8 3C18A410 */ lui $t8, %hi(DPC_STATUS_REG) # $t8, 0xa410 +/* 00F3EC 7000E7EC 8F10000C */ lw $s0, %lo(DPC_STATUS_REG)($t8) +/* 00F3F0 7000E7F0 32190001 */ andi $t9, $s0, 1 +/* 00F3F4 7000E7F4 1720FFFC */ bnez $t9, .L7000E7E8 +/* 00F3F8 7000E7F8 00000000 */ nop +/* 00F3FC 7000E7FC 0C003A2C */ jal osVirtualToPhysical +/* 00F400 7000E800 8FA40028 */ lw $a0, 0x28($sp) +/* 00F404 7000E804 3C08A410 */ lui $t0, 0xa410 +/* 00F408 7000E808 AD020000 */ sw $v0, ($t0) +/* 00F40C 7000E80C 0C003A2C */ jal osVirtualToPhysical +/* 00F410 7000E810 8FA40028 */ lw $a0, 0x28($sp) +/* 00F414 7000E814 8FAD0034 */ lw $t5, 0x34($sp) +/* 00F418 7000E818 00405825 */ move $t3, $v0 +/* 00F41C 7000E81C 8FAC0030 */ lw $t4, 0x30($sp) +/* 00F420 7000E820 016D7821 */ addu $t7, $t3, $t5 +/* 00F424 7000E824 240A0000 */ li $t2, 0 +/* 00F428 7000E828 01ED082B */ sltu $at, $t7, $t5 +/* 00F42C 7000E82C 002A7021 */ addu $t6, $at, $t2 +/* 00F430 7000E830 01E04825 */ move $t1, $t7 +/* 00F434 7000E834 3C18A410 */ lui $t8, %hi(DPC_END_REG) # $t8, 0xa410 +/* 00F438 7000E838 AF090004 */ sw $t1, %lo(DPC_END_REG)($t8) +/* 00F43C 7000E83C 00001025 */ move $v0, $zero +/* 00F440 7000E840 01CC7021 */ addu $t6, $t6, $t4 +.L7000E844: +/* 00F444 7000E844 8FBF001C */ lw $ra, 0x1c($sp) +/* 00F448 7000E848 8FB00018 */ lw $s0, 0x18($sp) +/* 00F44C 7000E84C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00F450 7000E850 03E00008 */ jr $ra +/* 00F454 7000E854 00000000 */ nop diff --git a/src/libultra/dpsetstat.s b/src/libultra/dpsetstat.s new file mode 100644 index 0000000..d898e0d --- /dev/null +++ b/src/libultra/dpsetstat.s @@ -0,0 +1,14 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osDpSetStatus +/* 00F0E0 7000E4E0 3C0EA410 */ lui $t6, 0xa410 +/* 00F0E4 7000E4E4 03E00008 */ jr $ra +/* 00F0E8 7000E4E8 ADC4000C */ sw $a0, 0xc($t6) diff --git a/src/libultra/drvrNew.s b/src/libultra/drvrNew.s new file mode 100644 index 0000000..ccf7724 --- /dev/null +++ b/src/libultra/drvrNew.s @@ -0,0 +1,571 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alSaveNew +/* 019D20 70019120 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 019D24 70019124 AFBF0014 */ sw $ra, 0x14($sp) +/* 019D28 70019128 3C057002 */ lui $a1, %hi(alSavePull) # $a1, 0x7002 +/* 019D2C 7001912C 3C067002 */ lui $a2, %hi(alSaveParam) # $a2, 0x7002 +/* 019D30 70019130 24C6B5F0 */ addiu $a2, %lo(alSaveParam) # addiu $a2, $a2, -0x4a10 +/* 019D34 70019134 24A5B624 */ addiu $a1, %lo(alSavePull) # addiu $a1, $a1, -0x49dc +/* 019D38 70019138 AFA40018 */ sw $a0, 0x18($sp) +/* 019D3C 7001913C 0C007E3C */ jal alFilterNew +/* 019D40 70019140 24070003 */ li $a3, 3 +/* 019D44 70019144 8FA40018 */ lw $a0, 0x18($sp) +/* 019D48 70019148 240E0001 */ li $t6, 1 +/* 019D4C 7001914C AC800014 */ sw $zero, 0x14($a0) +/* 019D50 70019150 AC8E0018 */ sw $t6, 0x18($a0) +/* 019D54 70019154 8FBF0014 */ lw $ra, 0x14($sp) +/* 019D58 70019158 27BD0018 */ addiu $sp, $sp, 0x18 +/* 019D5C 7001915C 03E00008 */ jr $ra +/* 019D60 70019160 00000000 */ nop + +glabel alMainBusNew +/* 019D64 70019164 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 019D68 70019168 AFA5001C */ sw $a1, 0x1c($sp) +/* 019D6C 7001916C AFA60020 */ sw $a2, 0x20($sp) +/* 019D70 70019170 AFBF0014 */ sw $ra, 0x14($sp) +/* 019D74 70019174 3C067002 */ lui $a2, %hi(alMainBusParam) # $a2, 0x7002 +/* 019D78 70019178 3C057002 */ lui $a1, %hi(alMainBusPull) # $a1, 0x7002 +/* 019D7C 7001917C 24A59990 */ addiu $a1, %lo(alMainBusPull) # addiu $a1, $a1, -0x6670 +/* 019D80 70019180 24C69960 */ addiu $a2, %lo(alMainBusParam) # addiu $a2, $a2, -0x66a0 +/* 019D84 70019184 AFA40018 */ sw $a0, 0x18($sp) +/* 019D88 70019188 0C007E3C */ jal alFilterNew +/* 019D8C 7001918C 24070007 */ li $a3, 7 +/* 019D90 70019190 8FA40018 */ lw $a0, 0x18($sp) +/* 019D94 70019194 AC800014 */ sw $zero, 0x14($a0) +/* 019D98 70019198 8FAE0020 */ lw $t6, 0x20($sp) +/* 019D9C 7001919C AC8E0018 */ sw $t6, 0x18($a0) +/* 019DA0 700191A0 8FAF001C */ lw $t7, 0x1c($sp) +/* 019DA4 700191A4 AC8F001C */ sw $t7, 0x1c($a0) +/* 019DA8 700191A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 019DAC 700191AC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 019DB0 700191B0 03E00008 */ jr $ra +/* 019DB4 700191B4 00000000 */ nop + +glabel alAuxBusNew +/* 019DB8 700191B8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 019DBC 700191BC AFA5001C */ sw $a1, 0x1c($sp) +/* 019DC0 700191C0 AFA60020 */ sw $a2, 0x20($sp) +/* 019DC4 700191C4 AFBF0014 */ sw $ra, 0x14($sp) +/* 019DC8 700191C8 3C067002 */ lui $a2, %hi(alAuxBusParam) # $a2, 0x7002 +/* 019DCC 700191CC 3C057002 */ lui $a1, %hi(alAuxBusPull) # $a1, 0x7002 +/* 019DD0 700191D0 24A5B510 */ addiu $a1, %lo(alAuxBusPull) # addiu $a1, $a1, -0x4af0 +/* 019DD4 700191D4 24C6B4E0 */ addiu $a2, %lo(alAuxBusParam) # addiu $a2, $a2, -0x4b20 +/* 019DD8 700191D8 AFA40018 */ sw $a0, 0x18($sp) +/* 019DDC 700191DC 0C007E3C */ jal alFilterNew +/* 019DE0 700191E0 24070006 */ li $a3, 6 +/* 019DE4 700191E4 8FA40018 */ lw $a0, 0x18($sp) +/* 019DE8 700191E8 AC800014 */ sw $zero, 0x14($a0) +/* 019DEC 700191EC 8FAE0020 */ lw $t6, 0x20($sp) +/* 019DF0 700191F0 AC8E0018 */ sw $t6, 0x18($a0) +/* 019DF4 700191F4 8FAF001C */ lw $t7, 0x1c($sp) +/* 019DF8 700191F8 AC8F001C */ sw $t7, 0x1c($a0) +/* 019DFC 700191FC 8FBF0014 */ lw $ra, 0x14($sp) +/* 019E00 70019200 27BD0018 */ addiu $sp, $sp, 0x18 +/* 019E04 70019204 03E00008 */ jr $ra +/* 019E08 70019208 00000000 */ nop + +glabel alResampleNew +/* 019E0C 7001920C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 019E10 70019210 AFA50024 */ sw $a1, 0x24($sp) +/* 019E14 70019214 AFBF001C */ sw $ra, 0x1c($sp) +/* 019E18 70019218 3C057002 */ lui $a1, %hi(alResamplePull) # $a1, 0x7002 +/* 019E1C 7001921C 3C067002 */ lui $a2, %hi(alResampleParam) # $a2, 0x7002 +/* 019E20 70019220 24C6A600 */ addiu $a2, %lo(alResampleParam) # addiu $a2, $a2, -0x5a00 +/* 019E24 70019224 24A5A6EC */ addiu $a1, %lo(alResamplePull) # addiu $a1, $a1, -0x5914 +/* 019E28 70019228 AFA40020 */ sw $a0, 0x20($sp) +/* 019E2C 7001922C 0C007E3C */ jal alFilterNew +/* 019E30 70019230 24070001 */ li $a3, 1 +/* 019E34 70019234 240E0020 */ li $t6, 32 +/* 019E38 70019238 AFAE0010 */ sw $t6, 0x10($sp) +/* 019E3C 7001923C 00002025 */ move $a0, $zero +/* 019E40 70019240 00002825 */ move $a1, $zero +/* 019E44 70019244 8FA60024 */ lw $a2, 0x24($sp) +/* 019E48 70019248 0C003AD4 */ jal alHeapDBAlloc +/* 019E4C 7001924C 24070001 */ li $a3, 1 +/* 019E50 70019250 8FA80020 */ lw $t0, 0x20($sp) +/* 019E54 70019254 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 019E58 70019258 44802000 */ mtc1 $zero, $f4 +/* 019E5C 7001925C 44813000 */ mtc1 $at, $f6 +/* 019E60 70019260 240F0001 */ li $t7, 1 +/* 019E64 70019264 AD020014 */ sw $v0, 0x14($t0) +/* 019E68 70019268 AD0F0024 */ sw $t7, 0x24($t0) +/* 019E6C 7001926C AD000030 */ sw $zero, 0x30($t0) +/* 019E70 70019270 AD00001C */ sw $zero, 0x1c($t0) +/* 019E74 70019274 AD000028 */ sw $zero, 0x28($t0) +/* 019E78 70019278 AD00002C */ sw $zero, 0x2c($t0) +/* 019E7C 7001927C E5040020 */ swc1 $f4, 0x20($t0) +/* 019E80 70019280 E5060018 */ swc1 $f6, 0x18($t0) +/* 019E84 70019284 8FBF001C */ lw $ra, 0x1c($sp) +/* 019E88 70019288 27BD0020 */ addiu $sp, $sp, 0x20 +/* 019E8C 7001928C 03E00008 */ jr $ra +/* 019E90 70019290 00000000 */ nop + +glabel alLoadNew +/* 019E94 70019294 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 019E98 70019298 AFA5002C */ sw $a1, 0x2c($sp) +/* 019E9C 7001929C AFA60030 */ sw $a2, 0x30($sp) +/* 019EA0 700192A0 AFBF0024 */ sw $ra, 0x24($sp) +/* 019EA4 700192A4 AFB00020 */ sw $s0, 0x20($sp) +/* 019EA8 700192A8 3C067002 */ lui $a2, %hi(alLoadParam) # $a2, 0x7002 +/* 019EAC 700192AC 3C057002 */ lui $a1, %hi(alAdpcmPull) # $a1, 0x7002 +/* 019EB0 700192B0 00808025 */ move $s0, $a0 +/* 019EB4 700192B4 24A5A15C */ addiu $a1, %lo(alAdpcmPull) # addiu $a1, $a1, -0x5ea4 +/* 019EB8 700192B8 24C69AB0 */ addiu $a2, %lo(alLoadParam) # addiu $a2, $a2, -0x6550 +/* 019EBC 700192BC 0C007E3C */ jal alFilterNew +/* 019EC0 700192C0 00003825 */ move $a3, $zero +/* 019EC4 700192C4 240E0020 */ li $t6, 32 +/* 019EC8 700192C8 AFAE0010 */ sw $t6, 0x10($sp) +/* 019ECC 700192CC 00002025 */ move $a0, $zero +/* 019ED0 700192D0 00002825 */ move $a1, $zero +/* 019ED4 700192D4 8FA60030 */ lw $a2, 0x30($sp) +/* 019ED8 700192D8 0C003AD4 */ jal alHeapDBAlloc +/* 019EDC 700192DC 24070001 */ li $a3, 1 +/* 019EE0 700192E0 AE020014 */ sw $v0, 0x14($s0) +/* 019EE4 700192E4 240F0020 */ li $t7, 32 +/* 019EE8 700192E8 AFAF0010 */ sw $t7, 0x10($sp) +/* 019EEC 700192EC 8FA60030 */ lw $a2, 0x30($sp) +/* 019EF0 700192F0 00002025 */ move $a0, $zero +/* 019EF4 700192F4 00002825 */ move $a1, $zero +/* 019EF8 700192F8 0C003AD4 */ jal alHeapDBAlloc +/* 019EFC 700192FC 24070001 */ li $a3, 1 +/* 019F00 70019300 AE020018 */ sw $v0, 0x18($s0) +/* 019F04 70019304 8FB9002C */ lw $t9, 0x2c($sp) +/* 019F08 70019308 26040034 */ addiu $a0, $s0, 0x34 +/* 019F0C 7001930C 0320F809 */ jalr $t9 +/* 019F10 70019310 00000000 */ nop +/* 019F14 70019314 24180001 */ li $t8, 1 +/* 019F18 70019318 AE020030 */ sw $v0, 0x30($s0) +/* 019F1C 7001931C AE00003C */ sw $zero, 0x3c($s0) +/* 019F20 70019320 AE180040 */ sw $t8, 0x40($s0) +/* 019F24 70019324 AE000044 */ sw $zero, 0x44($s0) +/* 019F28 70019328 8FBF0024 */ lw $ra, 0x24($sp) +/* 019F2C 7001932C 8FB00020 */ lw $s0, 0x20($sp) +/* 019F30 70019330 27BD0028 */ addiu $sp, $sp, 0x28 +/* 019F34 70019334 03E00008 */ jr $ra +/* 019F38 70019338 00000000 */ nop + +glabel alEnvmixerNew +/* 019F3C 7001933C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 019F40 70019340 AFA50024 */ sw $a1, 0x24($sp) +/* 019F44 70019344 AFBF001C */ sw $ra, 0x1c($sp) +/* 019F48 70019348 3C057002 */ lui $a1, %hi(alEnvmixerPull) # $a1, 0x7002 +/* 019F4C 7001934C 3C067002 */ lui $a2, %hi(alEnvmixerParam) # $a2, 0x7002 +/* 019F50 70019350 24C6AA14 */ addiu $a2, %lo(alEnvmixerParam) # addiu $a2, $a2, -0x55ec +/* 019F54 70019354 24A5AE5C */ addiu $a1, %lo(alEnvmixerPull) # addiu $a1, $a1, -0x51a4 +/* 019F58 70019358 AFA40020 */ sw $a0, 0x20($sp) +/* 019F5C 7001935C 0C007E3C */ jal alFilterNew +/* 019F60 70019360 24070004 */ li $a3, 4 +/* 019F64 70019364 240E0050 */ li $t6, 80 +/* 019F68 70019368 AFAE0010 */ sw $t6, 0x10($sp) +/* 019F6C 7001936C 00002025 */ move $a0, $zero +/* 019F70 70019370 00002825 */ move $a1, $zero +/* 019F74 70019374 8FA60024 */ lw $a2, 0x24($sp) +/* 019F78 70019378 0C003AD4 */ jal alHeapDBAlloc +/* 019F7C 7001937C 24070001 */ li $a3, 1 +/* 019F80 70019380 8FA80020 */ lw $t0, 0x20($sp) +/* 019F84 70019384 24030001 */ li $v1, 1 +/* 019F88 70019388 AD020014 */ sw $v0, 0x14($t0) +/* 019F8C 7001938C AD030038 */ sw $v1, 0x38($t0) +/* 019F90 70019390 AD000048 */ sw $zero, 0x48($t0) +/* 019F94 70019394 A503001A */ sh $v1, 0x1a($t0) +/* 019F98 70019398 A5030028 */ sh $v1, 0x28($t0) +/* 019F9C 7001939C A503002E */ sh $v1, 0x2e($t0) +/* 019FA0 700193A0 A503001C */ sh $v1, 0x1c($t0) +/* 019FA4 700193A4 A503001E */ sh $v1, 0x1e($t0) +/* 019FA8 700193A8 A5000020 */ sh $zero, 0x20($t0) +/* 019FAC 700193AC A5000022 */ sh $zero, 0x22($t0) +/* 019FB0 700193B0 A5030026 */ sh $v1, 0x26($t0) +/* 019FB4 700193B4 A5000024 */ sh $zero, 0x24($t0) +/* 019FB8 700193B8 AD000030 */ sw $zero, 0x30($t0) +/* 019FBC 700193BC AD000034 */ sw $zero, 0x34($t0) +/* 019FC0 700193C0 A5000018 */ sh $zero, 0x18($t0) +/* 019FC4 700193C4 AD00003C */ sw $zero, 0x3c($t0) +/* 019FC8 700193C8 AD000040 */ sw $zero, 0x40($t0) +/* 019FCC 700193CC AD000044 */ sw $zero, 0x44($t0) +/* 019FD0 700193D0 8FBF001C */ lw $ra, 0x1c($sp) +/* 019FD4 700193D4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 019FD8 700193D8 03E00008 */ jr $ra +/* 019FDC 700193DC 00000000 */ nop + +glabel init_lpfilter +/* 019FE0 700193E0 84820000 */ lh $v0, ($a0) +/* 019FE4 700193E4 24194000 */ li $t9, 16384 +/* 019FE8 700193E8 24090001 */ li $t1, 1 +/* 019FEC 700193EC 00027380 */ sll $t6, $v0, 0xe +/* 019FF0 700193F0 000E1BC3 */ sra $v1, $t6, 0xf +/* 019FF4 700193F4 00037C00 */ sll $t7, $v1, 0x10 +/* 019FF8 700193F8 000F1C03 */ sra $v1, $t7, 0x10 +/* 019FFC 700193FC 03234023 */ subu $t0, $t9, $v1 +/* 01A000 70019400 A4880002 */ sh $t0, 2($a0) +/* 01A004 70019404 AC89002C */ sw $t1, 0x2c($a0) +/* 01A008 70019408 00002825 */ move $a1, $zero +/* 01A00C 7001940C 00803025 */ move $a2, $a0 +.L70019410: +/* 01A010 70019410 24A50001 */ addiu $a1, $a1, 1 +/* 01A014 70019414 28A10008 */ slti $at, $a1, 8 +/* 01A018 70019418 24C60002 */ addiu $a2, $a2, 2 +/* 01A01C 7001941C 1420FFFC */ bnez $at, .L70019410 +/* 01A020 70019420 A4C00006 */ sh $zero, 6($a2) +/* 01A024 70019424 44832000 */ mtc1 $v1, $f4 +/* 01A028 70019428 3C0140D0 */ li $at, 0x40D00000 # 6.500000 +/* 01A02C 7001942C 44816800 */ mtc1 $at, $f13 +/* 01A030 70019430 468021A1 */ cvt.d.w $f6, $f4 +/* 01A034 70019434 44806000 */ mtc1 $zero, $f12 +/* 01A038 70019438 24A50001 */ addiu $a1, $a1, 1 +/* 01A03C 7001943C 28A10010 */ slti $at, $a1, 0x10 +/* 01A040 70019440 A4C30008 */ sh $v1, 8($a2) +/* 01A044 70019444 462C3083 */ div.d $f2, $f6, $f12 +/* 01A048 70019448 24C60002 */ addiu $a2, $a2, 2 +/* 01A04C 7001944C 1020000A */ beqz $at, .L70019478 +/* 01A050 70019450 46201006 */ mov.d $f0, $f2 +.L70019454: +/* 01A054 70019454 46220002 */ mul.d $f0, $f0, $f2 +/* 01A058 70019458 24A50001 */ addiu $a1, $a1, 1 +/* 01A05C 7001945C 28A10010 */ slti $at, $a1, 0x10 +/* 01A060 70019460 24C60002 */ addiu $a2, $a2, 2 +/* 01A064 70019464 462C0202 */ mul.d $f8, $f0, $f12 +/* 01A068 70019468 4620428D */ trunc.w.d $f10, $f8 +/* 01A06C 7001946C 440B5000 */ mfc1 $t3, $f10 +/* 01A070 70019470 1420FFF8 */ bnez $at, .L70019454 +/* 01A074 70019474 A4CB0006 */ sh $t3, 6($a2) +.L70019478: +/* 01A078 70019478 03E00008 */ jr $ra +/* 01A07C 7001947C 00000000 */ nop + +glabel alFxNew +/* 01A080 70019480 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 01A084 70019484 AFB60058 */ sw $s6, 0x58($sp) +/* 01A088 70019488 00C0B025 */ move $s6, $a2 +/* 01A08C 7001948C AFBF0064 */ sw $ra, 0x64($sp) +/* 01A090 70019490 AFB50054 */ sw $s5, 0x54($sp) +/* 01A094 70019494 AFA5006C */ sw $a1, 0x6c($sp) +/* 01A098 70019498 3C067002 */ lui $a2, %hi(alFxParam) # $a2, 0x7002 +/* 01A09C 7001949C 0080A825 */ move $s5, $a0 +/* 01A0A0 700194A0 AFBE0060 */ sw $fp, 0x60($sp) +/* 01A0A4 700194A4 AFB7005C */ sw $s7, 0x5c($sp) +/* 01A0A8 700194A8 AFB40050 */ sw $s4, 0x50($sp) +/* 01A0AC 700194AC AFB3004C */ sw $s3, 0x4c($sp) +/* 01A0B0 700194B0 AFB20048 */ sw $s2, 0x48($sp) +/* 01A0B4 700194B4 AFB10044 */ sw $s1, 0x44($sp) +/* 01A0B8 700194B8 AFB00040 */ sw $s0, 0x40($sp) +/* 01A0BC 700194BC F7BA0038 */ sdc1 $f26, 0x38($sp) +/* 01A0C0 700194C0 F7B80030 */ sdc1 $f24, 0x30($sp) +/* 01A0C4 700194C4 F7B60028 */ sdc1 $f22, 0x28($sp) +/* 01A0C8 700194C8 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 01A0CC 700194CC 24C601C0 */ addiu $a2, %lo(alFxParam) # addiu $a2, $a2, 0x1c0 +/* 01A0D0 700194D0 00002825 */ move $a1, $zero +/* 01A0D4 700194D4 0C007E3C */ jal alFilterNew +/* 01A0D8 700194D8 24070005 */ li $a3, 5 +/* 01A0DC 700194DC 8FA2006C */ lw $v0, 0x6c($sp) +/* 01A0E0 700194E0 3C0E7002 */ lui $t6, %hi(alFxPull) # $t6, 0x7002 +/* 01A0E4 700194E4 3C0F7002 */ lui $t7, %hi(alFxParamHdl) # $t7, 0x7002 +/* 01A0E8 700194E8 25CE01D8 */ addiu $t6, %lo(alFxPull) # addiu $t6, $t6, 0x1d8 +/* 01A0EC 700194EC 25EFFFA8 */ addiu $t7, %lo(alFxParamHdl) # addiu $t7, $t7, -0x58 +/* 01A0F0 700194F0 AEAE0004 */ sw $t6, 4($s5) +/* 01A0F4 700194F4 AEAF0028 */ sw $t7, 0x28($s5) +/* 01A0F8 700194F8 9058001C */ lbu $t8, 0x1c($v0) +/* 01A0FC 700194FC 3C138003 */ lui $s3, %hi(NULL_PARAMS) +/* 01A100 70019500 267381B8 */ addiu $s3, %lo(NULL_PARAMS) # addiu $s3, $s3, -0x7e48 +/* 01A104 70019504 2719FFFF */ addiu $t9, $t8, -1 +/* 01A108 70019508 2F210006 */ sltiu $at, $t9, 6 +/* 01A10C 7001950C 10200017 */ beqz $at, .L7001956C +/* 01A110 70019510 0019C880 */ sll $t9, $t9, 2 +/* 01A114 70019514 3C018003 */ lui $at, %hi(jpt_80029830) +/* 01A118 70019518 00390821 */ addu $at, $at, $t9 +/* 01A11C 7001951C 8C399830 */ lw $t9, %lo(jpt_80029830)($at) +/* 01A120 70019520 03200008 */ jr $t9 +/* 01A124 70019524 00000000 */ nop +.L70019528: +/* 01A128 70019528 3C138003 */ lui $s3, %hi(SMALLROOM_PARAMS) +/* 01A12C 7001952C 1000000F */ b .L7001956C +/* 01A130 70019530 26738050 */ addiu $s3, %lo(SMALLROOM_PARAMS) # addiu $s3, $s3, -0x7fb0 +.L70019534: +/* 01A134 70019534 3C138003 */ lui $s3, %hi(BIGROOM_PARAMS) +/* 01A138 70019538 1000000C */ b .L7001956C +/* 01A13C 7001953C 267380B8 */ addiu $s3, %lo(BIGROOM_PARAMS) # addiu $s3, $s3, -0x7f48 +.L70019540: +/* 01A140 70019540 3C138003 */ lui $s3, %hi(ECHO_PARAMS) +/* 01A144 70019544 10000009 */ b .L7001956C +/* 01A148 70019548 26738140 */ addiu $s3, %lo(ECHO_PARAMS) # addiu $s3, $s3, -0x7ec0 +.L7001954C: +/* 01A14C 7001954C 3C138003 */ lui $s3, %hi(CHORUS_PARAMS) +/* 01A150 70019550 10000006 */ b .L7001956C +/* 01A154 70019554 26738168 */ addiu $s3, %lo(CHORUS_PARAMS) # addiu $s3, $s3, -0x7e98 +.L70019558: +/* 01A158 70019558 3C138003 */ lui $s3, %hi(FLANGE_PARAMS) +/* 01A15C 7001955C 10000003 */ b .L7001956C +/* 01A160 70019560 26738190 */ addiu $s3, %lo(FLANGE_PARAMS) # addiu $s3, $s3, -0x7e70 +.L70019564: +/* 01A164 70019564 10000001 */ b .L7001956C +/* 01A168 70019568 8C530020 */ lw $s3, 0x20($v0) +.L7001956C: +/* 01A16C 7001956C 8E680000 */ lw $t0, ($s3) +/* 01A170 70019570 240A0028 */ li $t2, 40 +/* 01A174 70019574 24110002 */ li $s1, 2 +/* 01A178 70019578 A2A80024 */ sb $t0, 0x24($s5) +/* 01A17C 7001957C 8E690004 */ lw $t1, 4($s3) +/* 01A180 70019580 00002025 */ move $a0, $zero +/* 01A184 70019584 00002825 */ move $a1, $zero +/* 01A188 70019588 AEA9001C */ sw $t1, 0x1c($s5) +/* 01A18C 7001958C AFAA0010 */ sw $t2, 0x10($sp) +/* 01A190 70019590 02C03025 */ move $a2, $s6 +/* 01A194 70019594 0C003AD4 */ jal alHeapDBAlloc +/* 01A198 70019598 310700FF */ andi $a3, $t0, 0xff +/* 01A19C 7001959C AEA20020 */ sw $v0, 0x20($s5) +/* 01A1A0 700195A0 8EA7001C */ lw $a3, 0x1c($s5) +/* 01A1A4 700195A4 240B0002 */ li $t3, 2 +/* 01A1A8 700195A8 AFAB0010 */ sw $t3, 0x10($sp) +/* 01A1AC 700195AC 00002025 */ move $a0, $zero +/* 01A1B0 700195B0 00002825 */ move $a1, $zero +/* 01A1B4 700195B4 0C003AD4 */ jal alHeapDBAlloc +/* 01A1B8 700195B8 02C03025 */ move $a2, $s6 +/* 01A1BC 700195BC 8EAC001C */ lw $t4, 0x1c($s5) +/* 01A1C0 700195C0 AEA20014 */ sw $v0, 0x14($s5) +/* 01A1C4 700195C4 AEA20018 */ sw $v0, 0x18($s5) +/* 01A1C8 700195C8 1180000C */ beqz $t4, .L700195FC +/* 01A1CC 700195CC 00001825 */ move $v1, $zero +/* 01A1D0 700195D0 8EAD0014 */ lw $t5, 0x14($s5) +.L700195D4: +/* 01A1D4 700195D4 00037040 */ sll $t6, $v1, 1 +/* 01A1D8 700195D8 24630001 */ addiu $v1, $v1, 1 +/* 01A1DC 700195DC 01AE7821 */ addu $t7, $t5, $t6 +/* 01A1E0 700195E0 A5E00000 */ sh $zero, ($t7) +/* 01A1E4 700195E4 8EB9001C */ lw $t9, 0x1c($s5) +/* 01A1E8 700195E8 3078FFFF */ andi $t8, $v1, 0xffff +/* 01A1EC 700195EC 03001825 */ move $v1, $t8 +/* 01A1F0 700195F0 0319082B */ sltu $at, $t8, $t9 +/* 01A1F4 700195F4 5420FFF7 */ bnezl $at, .L700195D4 +/* 01A1F8 700195F8 8EAD0014 */ lw $t5, 0x14($s5) +.L700195FC: +/* 01A1FC 700195FC 92A80024 */ lbu $t0, 0x24($s5) +/* 01A200 70019600 0000A025 */ move $s4, $zero +/* 01A204 70019604 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 01A208 70019608 1900009C */ blez $t0, .L7001987C +/* 01A20C 7001960C 241E0001 */ li $fp, 1 +/* 01A210 70019610 4481C000 */ mtc1 $at, $f24 +/* 01A214 70019614 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 01A218 70019618 4481B000 */ mtc1 $at, $f22 +/* 01A21C 7001961C 3C018003 */ lui $at, %hi(F64_80029848) +/* 01A220 70019620 4480D000 */ mtc1 $zero, $f26 +/* 01A224 70019624 D4349848 */ ldc1 $f20, %lo(F64_80029848)($at) +/* 01A228 70019628 24170028 */ li $s7, 40 +.L7001962C: +/* 01A22C 7001962C 02970019 */ multu $s4, $s7 +/* 01A230 70019630 00115880 */ sll $t3, $s1, 2 +/* 01A234 70019634 8EA90020 */ lw $t1, 0x20($s5) +/* 01A238 70019638 026B6021 */ addu $t4, $s3, $t3 +/* 01A23C 7001963C 8D8D0000 */ lw $t5, ($t4) +/* 01A240 70019640 26310001 */ addiu $s1, $s1, 1 +/* 01A244 70019644 322EFFFF */ andi $t6, $s1, 0xffff +/* 01A248 70019648 000E7880 */ sll $t7, $t6, 2 +/* 01A24C 7001964C 026FC021 */ addu $t8, $s3, $t7 +/* 01A250 70019650 25D10001 */ addiu $s1, $t6, 1 +/* 01A254 70019654 00005012 */ mflo $t2 +/* 01A258 70019658 012A8021 */ addu $s0, $t1, $t2 +/* 01A25C 7001965C AE0D0000 */ sw $t5, ($s0) +/* 01A260 70019660 8F190000 */ lw $t9, ($t8) +/* 01A264 70019664 3228FFFF */ andi $t0, $s1, 0xffff +/* 01A268 70019668 00084880 */ sll $t1, $t0, 2 +/* 01A26C 7001966C 02695021 */ addu $t2, $s3, $t1 +/* 01A270 70019670 AE190004 */ sw $t9, 4($s0) +/* 01A274 70019674 8D4B0000 */ lw $t3, ($t2) +/* 01A278 70019678 25110001 */ addiu $s1, $t0, 1 +/* 01A27C 7001967C 322CFFFF */ andi $t4, $s1, 0xffff +/* 01A280 70019680 000C6880 */ sll $t5, $t4, 2 +/* 01A284 70019684 026D7021 */ addu $t6, $s3, $t5 +/* 01A288 70019688 A60B000A */ sh $t3, 0xa($s0) +/* 01A28C 7001968C 8DCF0000 */ lw $t7, ($t6) +/* 01A290 70019690 25910001 */ addiu $s1, $t4, 1 +/* 01A294 70019694 3238FFFF */ andi $t8, $s1, 0xffff +/* 01A298 70019698 0018C880 */ sll $t9, $t8, 2 +/* 01A29C 7001969C 02794021 */ addu $t0, $s3, $t9 +/* 01A2A0 700196A0 A60F0008 */ sh $t7, 8($s0) +/* 01A2A4 700196A4 8D090000 */ lw $t1, ($t0) +/* 01A2A8 700196A8 27110001 */ addiu $s1, $t8, 1 +/* 01A2AC 700196AC 322AFFFF */ andi $t2, $s1, 0xffff +/* 01A2B0 700196B0 000A5880 */ sll $t3, $t2, 2 +/* 01A2B4 700196B4 026B6021 */ addu $t4, $s3, $t3 +/* 01A2B8 700196B8 A609000C */ sh $t1, 0xc($s0) +/* 01A2BC 700196BC 8D820000 */ lw $v0, ($t4) +/* 01A2C0 700196C0 01408825 */ move $s1, $t2 +/* 01A2C4 700196C4 02204025 */ move $t0, $s1 +/* 01A2C8 700196C8 10400040 */ beqz $v0, .L700197CC +/* 01A2CC 700196CC 25110002 */ addiu $s1, $t0, 2 +/* 01A2D0 700196D0 44822000 */ mtc1 $v0, $f4 +/* 01A2D4 700196D4 8FAD006C */ lw $t5, 0x6c($sp) +/* 01A2D8 700196D8 8E180004 */ lw $t8, 4($s0) +/* 01A2DC 700196DC 468021A0 */ cvt.s.w $f6, $f4 +/* 01A2E0 700196E0 8DAE0018 */ lw $t6, 0x18($t5) +/* 01A2E4 700196E4 8E190000 */ lw $t9, ($s0) +/* 01A2E8 700196E8 25510001 */ addiu $s1, $t2, 1 +/* 01A2EC 700196EC 448E8000 */ mtc1 $t6, $f16 +/* 01A2F0 700196F0 322FFFFF */ andi $t7, $s1, 0xffff +/* 01A2F4 700196F4 46163203 */ div.s $f8, $f6, $f22 +/* 01A2F8 700196F8 03194023 */ subu $t0, $t8, $t9 +/* 01A2FC 700196FC 01E08825 */ move $s1, $t7 +/* 01A300 70019700 00114880 */ sll $t1, $s1, 2 +/* 01A304 70019704 468084A1 */ cvt.d.w $f18, $f16 +/* 01A308 70019708 02695021 */ addu $t2, $s3, $t1 +/* 01A30C 7001970C 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 01A310 70019710 46004021 */ cvt.d.s $f0, $f8 +/* 01A314 70019714 44884000 */ mtc1 $t0, $f8 +/* 01A318 70019718 46200280 */ add.d $f10, $f0, $f0 +/* 01A31C 7001971C 46804421 */ cvt.d.w $f16, $f8 +/* 01A320 70019720 46325103 */ div.d $f4, $f10, $f18 +/* 01A324 70019724 462021A0 */ cvt.s.d $f6, $f4 +/* 01A328 70019728 05010005 */ bgez $t0, .L70019740 +/* 01A32C 7001972C E6060010 */ swc1 $f6, 0x10($s0) +/* 01A330 70019730 44815800 */ mtc1 $at, $f11 +/* 01A334 70019734 44805000 */ mtc1 $zero, $f10 +/* 01A338 70019738 00000000 */ nop +/* 01A33C 7001973C 462A8400 */ add.d $f16, $f16, $f10 +.L70019740: +/* 01A340 70019740 8D4B0000 */ lw $t3, ($t2) +/* 01A344 70019744 26310001 */ addiu $s1, $s1, 1 +/* 01A348 70019748 322CFFFF */ andi $t4, $s1, 0xffff +/* 01A34C 7001974C 448B9000 */ mtc1 $t3, $f18 +/* 01A350 70019750 E6180014 */ swc1 $f24, 0x14($s0) +/* 01A354 70019754 AE000018 */ sw $zero, 0x18($s0) +/* 01A358 70019758 46809120 */ cvt.s.w $f4, $f18 +/* 01A35C 7001975C 240D0034 */ li $t5, 52 +/* 01A360 70019760 01808825 */ move $s1, $t4 +/* 01A364 70019764 00002025 */ move $a0, $zero +/* 01A368 70019768 00002825 */ move $a1, $zero +/* 01A36C 7001976C 02C03025 */ move $a2, $s6 +/* 01A370 70019770 460021A1 */ cvt.d.s $f6, $f4 +/* 01A374 70019774 03C03825 */ move $a3, $fp +/* 01A378 70019778 46343203 */ div.d $f8, $f6, $f20 +/* 01A37C 7001977C 46304282 */ mul.d $f10, $f8, $f16 +/* 01A380 70019780 462054A0 */ cvt.s.d $f18, $f10 +/* 01A384 70019784 E612001C */ swc1 $f18, 0x1c($s0) +/* 01A388 70019788 0C003AD4 */ jal alHeapDBAlloc +/* 01A38C 7001978C AFAD0010 */ sw $t5, 0x10($sp) +/* 01A390 70019790 AE020024 */ sw $v0, 0x24($s0) +/* 01A394 70019794 240E0020 */ li $t6, 32 +/* 01A398 70019798 AFAE0010 */ sw $t6, 0x10($sp) +/* 01A39C 7001979C 00002025 */ move $a0, $zero +/* 01A3A0 700197A0 00002825 */ move $a1, $zero +/* 01A3A4 700197A4 02C03025 */ move $a2, $s6 +/* 01A3A8 700197A8 0C003AD4 */ jal alHeapDBAlloc +/* 01A3AC 700197AC 03C03825 */ move $a3, $fp +/* 01A3B0 700197B0 8E0F0024 */ lw $t7, 0x24($s0) +/* 01A3B4 700197B4 ADE20014 */ sw $v0, 0x14($t7) +/* 01A3B8 700197B8 8E180024 */ lw $t8, 0x24($s0) +/* 01A3BC 700197BC E71A0020 */ swc1 $f26, 0x20($t8) +/* 01A3C0 700197C0 8E190024 */ lw $t9, 0x24($s0) +/* 01A3C4 700197C4 10000004 */ b .L700197D8 +/* 01A3C8 700197C8 AF3E0024 */ sw $fp, 0x24($t9) +.L700197CC: +/* 01A3CC 700197CC 3229FFFF */ andi $t1, $s1, 0xffff +/* 01A3D0 700197D0 AE000024 */ sw $zero, 0x24($s0) +/* 01A3D4 700197D4 01208825 */ move $s1, $t1 +.L700197D8: +/* 01A3D8 700197D8 00115080 */ sll $t2, $s1, 2 +/* 01A3DC 700197DC 026A9021 */ addu $s2, $s3, $t2 +/* 01A3E0 700197E0 8E4B0000 */ lw $t3, ($s2) +/* 01A3E4 700197E4 00002025 */ move $a0, $zero +/* 01A3E8 700197E8 00002825 */ move $a1, $zero +/* 01A3EC 700197EC 11600019 */ beqz $t3, .L70019854 +/* 01A3F0 700197F0 02C03025 */ move $a2, $s6 +/* 01A3F4 700197F4 240C0030 */ li $t4, 48 +/* 01A3F8 700197F8 AFAC0010 */ sw $t4, 0x10($sp) +/* 01A3FC 700197FC 0C003AD4 */ jal alHeapDBAlloc +/* 01A400 70019800 03C03825 */ move $a3, $fp +/* 01A404 70019804 AE020020 */ sw $v0, 0x20($s0) +/* 01A408 70019808 240D0008 */ li $t5, 8 +/* 01A40C 7001980C AFAD0010 */ sw $t5, 0x10($sp) +/* 01A410 70019810 00002025 */ move $a0, $zero +/* 01A414 70019814 00002825 */ move $a1, $zero +/* 01A418 70019818 02C03025 */ move $a2, $s6 +/* 01A41C 7001981C 0C003AD4 */ jal alHeapDBAlloc +/* 01A420 70019820 03C03825 */ move $a3, $fp +/* 01A424 70019824 8E0E0020 */ lw $t6, 0x20($s0) +/* 01A428 70019828 26310001 */ addiu $s1, $s1, 1 +/* 01A42C 7001982C 3239FFFF */ andi $t9, $s1, 0xffff +/* 01A430 70019830 ADC20028 */ sw $v0, 0x28($t6) +/* 01A434 70019834 8E180020 */ lw $t8, 0x20($s0) +/* 01A438 70019838 8E4F0000 */ lw $t7, ($s2) +/* 01A43C 7001983C 03208825 */ move $s1, $t9 +/* 01A440 70019840 A70F0000 */ sh $t7, ($t8) +/* 01A444 70019844 0C0064F8 */ jal init_lpfilter +/* 01A448 70019848 8E040020 */ lw $a0, 0x20($s0) +/* 01A44C 7001984C 10000006 */ b .L70019868 +/* 01A450 70019850 92AA0024 */ lbu $t2, 0x24($s5) +.L70019854: +/* 01A454 70019854 26310001 */ addiu $s1, $s1, 1 +/* 01A458 70019858 3228FFFF */ andi $t0, $s1, 0xffff +/* 01A45C 7001985C AE000020 */ sw $zero, 0x20($s0) +/* 01A460 70019860 01008825 */ move $s1, $t0 +/* 01A464 70019864 92AA0024 */ lbu $t2, 0x24($s5) +.L70019868: +/* 01A468 70019868 26940001 */ addiu $s4, $s4, 1 +/* 01A46C 7001986C 3289FFFF */ andi $t1, $s4, 0xffff +/* 01A470 70019870 012A082A */ slt $at, $t1, $t2 +/* 01A474 70019874 1420FF6D */ bnez $at, .L7001962C +/* 01A478 70019878 0120A025 */ move $s4, $t1 +.L7001987C: +/* 01A47C 7001987C 8FBF0064 */ lw $ra, 0x64($sp) +/* 01A480 70019880 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 01A484 70019884 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 01A488 70019888 D7B80030 */ ldc1 $f24, 0x30($sp) +/* 01A48C 7001988C D7BA0038 */ ldc1 $f26, 0x38($sp) +/* 01A490 70019890 8FB00040 */ lw $s0, 0x40($sp) +/* 01A494 70019894 8FB10044 */ lw $s1, 0x44($sp) +/* 01A498 70019898 8FB20048 */ lw $s2, 0x48($sp) +/* 01A49C 7001989C 8FB3004C */ lw $s3, 0x4c($sp) +/* 01A4A0 700198A0 8FB40050 */ lw $s4, 0x50($sp) +/* 01A4A4 700198A4 8FB50054 */ lw $s5, 0x54($sp) +/* 01A4A8 700198A8 8FB60058 */ lw $s6, 0x58($sp) +/* 01A4AC 700198AC 8FB7005C */ lw $s7, 0x5c($sp) +/* 01A4B0 700198B0 8FBE0060 */ lw $fp, 0x60($sp) +/* 01A4B4 700198B4 03E00008 */ jr $ra +/* 01A4B8 700198B8 27BD0068 */ addiu $sp, $sp, 0x68 + + + +.section .data +glabel SMALLROOM_PARAMS +.word 3, 0xFA0, 0, 0x870, 0x2666,0xFFFFD99A, 0, 0 +.word 0, 0, 0x2F8, 0x5F0, 0xCCC,0xFFFFF334, 0x3FFF, 0 +.word 0, 0, 0, 0x960, 0x1388, 0, 0, 0 +.word 0, 0x5000 +glabel BIGROOM_PARAMS +.word 4, 0xFA0, 0, 0xA50, 0x2666,0xFFFFD99A, 0, 0 +.word 0, 0, 0x370, 0x870, 0xCCC,0xFFFFF334, 0x3FFF, 0 +.word 0, 0, 0xA50, 0xE38, 0xCCC,0xFFFFF334, 0x3FFF, 0 +.word 0, 0, 0, 0xEB0, 0x1F40, 0, 0, 0 +.word 0, 0x5000 +glabel ECHO_PARAMS +.word 1, 0x1F40, 0, 0x1BF8, 0x2EE0, 0, 0x7FFF, 0 +.word 0, 0 +glabel CHORUS_PARAMS +.word 1, 0x320, 0, 0xC8, 0x4000, 0, 0x7FFF, 0x1DB0 +.word 0x2BC, 0 +glabel FLANGE_PARAMS +.word 1, 0x320, 0, 0xC8, 0, 0x5FFF, 0x7FFF, 0x17C +.word 0x1F4, 0 +glabel NULL_PARAMS +.word 0, 0, 0, 0, 0, 0, 0, 0 +.word 0, 0 +.section .rodata +glabel jpt_80029830 +.word .L70019528 +.word .L70019534 +.word .L7001954C +.word .L70019558 +.word .L70019540 +.word .L70019564 +glabel F64_80029848 +.double 173123.404906676 diff --git a/src/libultra/env.s b/src/libultra/env.s new file mode 100644 index 0000000..15d6b6f --- /dev/null +++ b/src/libultra/env.s @@ -0,0 +1,911 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel _ldexpf +/* 01B500 7001A900 10C00007 */ beqz $a2, .L7001A920 +/* 01B504 7001A904 240E0001 */ li $t6, 1 +/* 01B508 7001A908 00CE7804 */ sllv $t7, $t6, $a2 +/* 01B50C 7001A90C 448F2000 */ mtc1 $t7, $f4 +/* 01B510 7001A910 00000000 */ nop +/* 01B514 7001A914 468021A1 */ cvt.d.w $f6, $f4 +/* 01B518 7001A918 46266302 */ mul.d $f12, $f12, $f6 +/* 01B51C 7001A91C 00000000 */ nop +.L7001A920: +/* 01B520 7001A920 03E00008 */ jr $ra +/* 01B524 7001A924 46206006 */ mov.d $f0, $f12 + +glabel _frexpf +/* 01B528 7001A928 44801800 */ mtc1 $zero, $f3 +/* 01B52C 7001A92C 44801000 */ mtc1 $zero, $f2 +/* 01B530 7001A930 ACC00000 */ sw $zero, ($a2) +/* 01B534 7001A934 3C013FF0 */ lui $at, 0x3ff0 +/* 01B538 7001A938 46226032 */ c.eq.d $f12, $f2 +/* 01B53C 7001A93C 00000000 */ nop +/* 01B540 7001A940 45020004 */ bc1fl .L7001A954 +/* 01B544 7001A944 462C103C */ c.lt.d $f2, $f12 +/* 01B548 7001A948 03E00008 */ jr $ra +/* 01B54C 7001A94C 46206006 */ mov.d $f0, $f12 + +/* 01B550 7001A950 462C103C */ c.lt.d $f2, $f12 +.L7001A954: +/* 01B554 7001A954 44817800 */ mtc1 $at, $f15 +/* 01B558 7001A958 44807000 */ mtc1 $zero, $f14 +/* 01B55C 7001A95C 3C013FE0 */ lui $at, 0x3fe0 +/* 01B560 7001A960 45020004 */ bc1fl .L7001A974 +/* 01B564 7001A964 46206007 */ neg.d $f0, $f12 +/* 01B568 7001A968 10000002 */ b .L7001A974 +/* 01B56C 7001A96C 46206006 */ mov.d $f0, $f12 +/* 01B570 7001A970 46206007 */ neg.d $f0, $f12 +.L7001A974: +/* 01B574 7001A974 4620703E */ c.le.d $f14, $f0 +/* 01B578 7001A978 00000000 */ nop +/* 01B57C 7001A97C 4502000D */ bc1fl .L7001A9B4 +/* 01B580 7001A980 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 01B584 7001A984 44818800 */ mtc1 $at, $f17 +/* 01B588 7001A988 44808000 */ mtc1 $zero, $f16 +/* 01B58C 7001A98C 00000000 */ nop +.L7001A990: +/* 01B590 7001A990 46300002 */ mul.d $f0, $f0, $f16 +/* 01B594 7001A994 8CCE0000 */ lw $t6, ($a2) +/* 01B598 7001A998 25CF0001 */ addiu $t7, $t6, 1 +/* 01B59C 7001A99C ACCF0000 */ sw $t7, ($a2) +/* 01B5A0 7001A9A0 4620703E */ c.le.d $f14, $f0 +/* 01B5A4 7001A9A4 00000000 */ nop +/* 01B5A8 7001A9A8 4501FFF9 */ bc1t .L7001A990 +/* 01B5AC 7001A9AC 00000000 */ nop +/* 01B5B0 7001A9B0 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +.L7001A9B4: +/* 01B5B4 7001A9B4 44818800 */ mtc1 $at, $f17 +/* 01B5B8 7001A9B8 44808000 */ mtc1 $zero, $f16 +/* 01B5BC 7001A9BC 00000000 */ nop +/* 01B5C0 7001A9C0 4630003C */ c.lt.d $f0, $f16 +/* 01B5C4 7001A9C4 00000000 */ nop +/* 01B5C8 7001A9C8 45020009 */ bc1fl .L7001A9F0 +/* 01B5CC 7001A9CC 462C103C */ c.lt.d $f2, $f12 +/* 01B5D0 7001A9D0 46200000 */ add.d $f0, $f0, $f0 +.L7001A9D4: +/* 01B5D4 7001A9D4 8CD80000 */ lw $t8, ($a2) +/* 01B5D8 7001A9D8 4630003C */ c.lt.d $f0, $f16 +/* 01B5DC 7001A9DC 2719FFFF */ addiu $t9, $t8, -1 +/* 01B5E0 7001A9E0 ACD90000 */ sw $t9, ($a2) +/* 01B5E4 7001A9E4 4503FFFB */ bc1tl .L7001A9D4 +/* 01B5E8 7001A9E8 46200000 */ add.d $f0, $f0, $f0 +/* 01B5EC 7001A9EC 462C103C */ c.lt.d $f2, $f12 +.L7001A9F0: +/* 01B5F0 7001A9F0 00000000 */ nop +/* 01B5F4 7001A9F4 45020004 */ bc1fl .L7001AA08 +/* 01B5F8 7001A9F8 46200087 */ neg.d $f2, $f0 +/* 01B5FC 7001A9FC 10000002 */ b .L7001AA08 +/* 01B600 7001AA00 46200086 */ mov.d $f2, $f0 +/* 01B604 7001AA04 46200087 */ neg.d $f2, $f0 +.L7001AA08: +/* 01B608 7001AA08 46201006 */ mov.d $f0, $f2 +/* 01B60C 7001AA0C 03E00008 */ jr $ra +/* 01B610 7001AA10 00000000 */ nop + +glabel alEnvmixerParam +/* 01B614 7001AA14 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 01B618 7001AA18 24020001 */ li $v0, 1 +/* 01B61C 7001AA1C AFBF0014 */ sw $ra, 0x14($sp) +/* 01B620 7001AA20 10A20027 */ beq $a1, $v0, .L7001AAC0 +/* 01B624 7001AA24 00803825 */ move $a3, $a0 +/* 01B628 7001AA28 24010003 */ li $at, 3 +/* 01B62C 7001AA2C 10A10007 */ beq $a1, $at, .L7001AA4C +/* 01B630 7001AA30 24010004 */ li $at, 4 +/* 01B634 7001AA34 10A1000D */ beq $a1, $at, .L7001AA6C +/* 01B638 7001AA38 24010009 */ li $at, 9 +/* 01B63C 7001AA3C 50A10017 */ beql $a1, $at, .L7001AA9C +/* 01B640 7001AA40 8CE40000 */ lw $a0, ($a3) +/* 01B644 7001AA44 10000021 */ b .L7001AACC +/* 01B648 7001AA48 8CE40000 */ lw $a0, ($a3) +.L7001AA4C: +/* 01B64C 7001AA4C 8CE20040 */ lw $v0, 0x40($a3) +/* 01B650 7001AA50 50400004 */ beql $v0, $zero, .L7001AA64 +/* 01B654 7001AA54 ACE6003C */ sw $a2, 0x3c($a3) +/* 01B658 7001AA58 10000002 */ b .L7001AA64 +/* 01B65C 7001AA5C AC460000 */ sw $a2, ($v0) +/* 01B660 7001AA60 ACE6003C */ sw $a2, 0x3c($a3) +.L7001AA64: +/* 01B664 7001AA64 1000001E */ b .L7001AAE0 +/* 01B668 7001AA68 ACE60040 */ sw $a2, 0x40($a3) +.L7001AA6C: +/* 01B66C 7001AA6C 8CE40000 */ lw $a0, ($a3) +/* 01B670 7001AA70 ACE20038 */ sw $v0, 0x38($a3) +/* 01B674 7001AA74 ACE00048 */ sw $zero, 0x48($a3) +/* 01B678 7001AA78 10800019 */ beqz $a0, .L7001AAE0 +/* 01B67C 7001AA7C A4E2001A */ sh $v0, 0x1a($a3) +/* 01B680 7001AA80 8C990008 */ lw $t9, 8($a0) +/* 01B684 7001AA84 24050004 */ li $a1, 4 +/* 01B688 7001AA88 0320F809 */ jalr $t9 +/* 01B68C 7001AA8C 00000000 */ nop +/* 01B690 7001AA90 10000014 */ b .L7001AAE4 +/* 01B694 7001AA94 8FBF0014 */ lw $ra, 0x14($sp) +/* 01B698 7001AA98 8CE40000 */ lw $a0, ($a3) +.L7001AA9C: +/* 01B69C 7001AA9C ACE20048 */ sw $v0, 0x48($a3) +/* 01B6A0 7001AAA0 50800010 */ beql $a0, $zero, .L7001AAE4 +/* 01B6A4 7001AAA4 8FBF0014 */ lw $ra, 0x14($sp) +/* 01B6A8 7001AAA8 8C990008 */ lw $t9, 8($a0) +/* 01B6AC 7001AAAC 24050009 */ li $a1, 9 +/* 01B6B0 7001AAB0 0320F809 */ jalr $t9 +/* 01B6B4 7001AAB4 00000000 */ nop +/* 01B6B8 7001AAB8 1000000A */ b .L7001AAE4 +/* 01B6BC 7001AABC 8FBF0014 */ lw $ra, 0x14($sp) +.L7001AAC0: +/* 01B6C0 7001AAC0 10000007 */ b .L7001AAE0 +/* 01B6C4 7001AAC4 ACE60000 */ sw $a2, ($a3) +/* 01B6C8 7001AAC8 8CE40000 */ lw $a0, ($a3) +.L7001AACC: +/* 01B6CC 7001AACC 50800005 */ beql $a0, $zero, .L7001AAE4 +/* 01B6D0 7001AAD0 8FBF0014 */ lw $ra, 0x14($sp) +/* 01B6D4 7001AAD4 8C990008 */ lw $t9, 8($a0) +/* 01B6D8 7001AAD8 0320F809 */ jalr $t9 +/* 01B6DC 7001AADC 00000000 */ nop +.L7001AAE0: +/* 01B6E0 7001AAE0 8FBF0014 */ lw $ra, 0x14($sp) +.L7001AAE4: +/* 01B6E4 7001AAE4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 01B6E8 7001AAE8 00001025 */ move $v0, $zero +/* 01B6EC 7001AAEC 03E00008 */ jr $ra +/* 01B6F0 7001AAF0 00000000 */ nop + +glabel ultra_7001AAF4 +/* 01B6F4 7001AAF4 5480000C */ bnezl $a0, .L7001AB28 +/* 01B6F8 7001AAF8 44843000 */ mtc1 $a0, $f6 +/* 01B6FC 7001AAFC 460C703E */ c.le.s $f14, $f12 +/* 01B700 7001AB00 340EFFFF */ li $t6, 65535 +/* 01B704 7001AB04 24028000 */ li $v0, -32768 +/* 01B708 7001AB08 45000004 */ bc1f .L7001AB1C +/* 01B70C 7001AB0C 00000000 */ nop +/* 01B710 7001AB10 A4AE0000 */ sh $t6, ($a1) +/* 01B714 7001AB14 03E00008 */ jr $ra +/* 01B718 7001AB18 24027FFF */ li $v0, 32767 + +.L7001AB1C: +/* 01B71C 7001AB1C 03E00008 */ jr $ra +/* 01B720 7001AB20 A4A00000 */ sh $zero, ($a1) + +/* 01B724 7001AB24 44843000 */ mtc1 $a0, $f6 +.L7001AB28: +/* 01B728 7001AB28 460E6101 */ sub.s $f4, $f12, $f14 +/* 01B72C 7001AB2C 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 01B730 7001AB30 44812800 */ mtc1 $at, $f5 +/* 01B734 7001AB34 46803220 */ cvt.s.w $f8, $f6 +/* 01B738 7001AB38 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 01B73C 7001AB3C 46082283 */ div.s $f10, $f4, $f8 +/* 01B740 7001AB40 44802000 */ mtc1 $zero, $f4 +/* 01B744 7001AB44 460051A1 */ cvt.d.s $f6, $f10 +/* 01B748 7001AB48 44805000 */ mtc1 $zero, $f10 +/* 01B74C 7001AB4C 46243202 */ mul.d $f8, $f6, $f4 +/* 01B750 7001AB50 462040A0 */ cvt.s.d $f2, $f8 +/* 01B754 7001AB54 460A103C */ c.lt.s $f2, $f10 +/* 01B758 7001AB58 46001006 */ mov.s $f0, $f2 +/* 01B75C 7001AB5C 45020005 */ bc1fl .L7001AB74 +/* 01B760 7001AB60 4600010D */ trunc.w.s $f4, $f0 +/* 01B764 7001AB64 44813000 */ mtc1 $at, $f6 +/* 01B768 7001AB68 00000000 */ nop +/* 01B76C 7001AB6C 46061001 */ sub.s $f0, $f2, $f6 +/* 01B770 7001AB70 4600010D */ trunc.w.s $f4, $f0 +.L7001AB74: +/* 01B774 7001AB74 3C018003 */ lui $at, %hi(F32_80029964) +/* 01B778 7001AB78 44032000 */ mfc1 $v1, $f4 +/* 01B77C 7001AB7C C4249964 */ lwc1 $f4, %lo(F32_80029964)($at) +/* 01B780 7001AB80 0003C400 */ sll $t8, $v1, 0x10 +/* 01B784 7001AB84 00181403 */ sra $v0, $t8, 0x10 +/* 01B788 7001AB88 44824000 */ mtc1 $v0, $f8 +/* 01B78C 7001AB8C 00000000 */ nop +/* 01B790 7001AB90 468042A0 */ cvt.s.w $f10, $f8 +/* 01B794 7001AB94 460A0181 */ sub.s $f6, $f0, $f10 +/* 01B798 7001AB98 46043202 */ mul.s $f8, $f6, $f4 +/* 01B79C 7001AB9C 4600428D */ trunc.w.s $f10, $f8 +/* 01B7A0 7001ABA0 440F5000 */ mfc1 $t7, $f10 +/* 01B7A4 7001ABA4 00000000 */ nop +/* 01B7A8 7001ABA8 A4AF0000 */ sh $t7, ($a1) +/* 01B7AC 7001ABAC 03E00008 */ jr $ra +/* 01B7B0 7001ABB0 00000000 */ nop + +glabel ultra_7001ABB4 +/* 01B7B4 7001ABB4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 01B7B8 7001ABB8 AFBF001C */ sw $ra, 0x1c($sp) +/* 01B7BC 7001ABBC 16400003 */ bnez $s2, .L7001ABCC +/* 01B7C0 7001ABC0 8E110000 */ lw $s1, ($s0) +/* 01B7C4 7001ABC4 1000009F */ b .L7001AE44 +/* 01B7C8 7001ABC8 02801025 */ move $v0, $s4 +.L7001ABCC: +/* 01B7CC 7001ABCC 16200008 */ bnez $s1, .L7001ABF0 +/* 01B7D0 7001ABD0 3C048003 */ lui $a0, %hi(aAssertionFaultSSLineD_1) +/* 01B7D4 7001ABD4 3C058003 */ lui $a1, %hi(aSource) +/* 01B7D8 7001ABD8 3C068003 */ lui $a2, %hi(aEnv_c_1) +/* 01B7DC 7001ABDC 24C6995C */ addiu $a2, %lo(aEnv_c_1) # addiu $a2, $a2, -0x66a4 +/* 01B7E0 7001ABE0 24A59954 */ addiu $a1, %lo(aSource) # addiu $a1, $a1, -0x66ac +/* 01B7E4 7001ABE4 24849928 */ addiu $a0, %lo(aAssertionFaultSSLineD_1) # addiu $a0, $a0, -0x66d8 +/* 01B7E8 7001ABE8 0C0033D1 */ jal osSyncPrintf +/* 01B7EC 7001ABEC 24070175 */ li $a3, 373 +.L7001ABF0: +/* 01B7F0 7001ABF0 AFB40010 */ sw $s4, 0x10($sp) +/* 01B7F4 7001ABF4 8E390004 */ lw $t9, 4($s1) +/* 01B7F8 7001ABF8 02202025 */ move $a0, $s1 +/* 01B7FC 7001ABFC 02A02825 */ move $a1, $s5 +/* 01B800 7001AC00 02403025 */ move $a2, $s2 +/* 01B804 7001AC04 0320F809 */ jalr $t9 +/* 01B808 7001AC08 02C03825 */ move $a3, $s6 +/* 01B80C 7001AC0C 86AE0000 */ lh $t6, ($s5) +/* 01B810 7001AC10 3C010800 */ lui $at, 0x800 +/* 01B814 7001AC14 0012A040 */ sll $s4, $s2, 1 +/* 01B818 7001AC18 31CFFFFF */ andi $t7, $t6, 0xffff +/* 01B81C 7001AC1C 01E1C025 */ or $t8, $t7, $at +/* 01B820 7001AC20 AC580000 */ sw $t8, ($v0) +/* 01B824 7001AC24 86790000 */ lh $t9, ($s3) +/* 01B828 7001AC28 3C010808 */ lui $at, 0x808 +/* 01B82C 7001AC2C 24510010 */ addiu $s1, $v0, 0x10 +/* 01B830 7001AC30 272F0440 */ addiu $t7, $t9, 0x440 +/* 01B834 7001AC34 000FC400 */ sll $t8, $t7, 0x10 +/* 01B838 7001AC38 3299FFFF */ andi $t9, $s4, 0xffff +/* 01B83C 7001AC3C 03197025 */ or $t6, $t8, $t9 +/* 01B840 7001AC40 AC4E0004 */ sw $t6, 4($v0) +/* 01B844 7001AC44 866F0000 */ lh $t7, ($s3) +/* 01B848 7001AC48 02209025 */ move $s2, $s1 +/* 01B84C 7001AC4C 25F80580 */ addiu $t8, $t7, 0x580 +/* 01B850 7001AC50 3319FFFF */ andi $t9, $t8, 0xffff +/* 01B854 7001AC54 03217025 */ or $t6, $t9, $at +/* 01B858 7001AC58 AC4E0008 */ sw $t6, 8($v0) +/* 01B85C 7001AC5C 86630000 */ lh $v1, ($s3) +/* 01B860 7001AC60 246F0800 */ addiu $t7, $v1, 0x800 +/* 01B864 7001AC64 31F8FFFF */ andi $t8, $t7, 0xffff +/* 01B868 7001AC68 246E06C0 */ addiu $t6, $v1, 0x6c0 +/* 01B86C 7001AC6C 000E7C00 */ sll $t7, $t6, 0x10 +/* 01B870 7001AC70 030FC825 */ or $t9, $t8, $t7 +/* 01B874 7001AC74 AC59000C */ sw $t9, 0xc($v0) +/* 01B878 7001AC78 8E0E0038 */ lw $t6, 0x38($s0) +/* 01B87C 7001AC7C 3C198003 */ lui $t9, %hi(eqpower) +/* 01B880 7001AC80 51C00067 */ beql $t6, $zero, .L7001AE20 +/* 01B884 7001AC84 3C0E0308 */ lui $t6, 0x308 +/* 01B888 7001AC88 86180018 */ lh $t8, 0x18($s0) +/* 01B88C 7001AC8C AE000038 */ sw $zero, 0x38($s0) +/* 01B890 7001AC90 860E001A */ lh $t6, 0x1a($s0) +/* 01B894 7001AC94 00187840 */ sll $t7, $t8, 1 +/* 01B898 7001AC98 032FC821 */ addu $t9, $t9, $t7 +/* 01B89C 7001AC9C 873981E0 */ lh $t9, %lo(eqpower)($t9) +/* 01B8A0 7001ACA0 8E040034 */ lw $a0, 0x34($s0) +/* 01B8A4 7001ACA4 26050024 */ addiu $a1, $s0, 0x24 +/* 01B8A8 7001ACA8 032E0019 */ multu $t9, $t6 +/* 01B8AC 7001ACAC 8619001C */ lh $t9, 0x1c($s0) +/* 01B8B0 7001ACB0 44992000 */ mtc1 $t9, $f4 +/* 01B8B4 7001ACB4 00000000 */ nop +/* 01B8B8 7001ACB8 468023A0 */ cvt.s.w $f14, $f4 +/* 01B8BC 7001ACBC 0000C012 */ mflo $t8 +/* 01B8C0 7001ACC0 00187BC3 */ sra $t7, $t8, 0xf +/* 01B8C4 7001ACC4 A60F0028 */ sh $t7, 0x28($s0) +/* 01B8C8 7001ACC8 860E0028 */ lh $t6, 0x28($s0) +/* 01B8CC 7001ACCC 448E3000 */ mtc1 $t6, $f6 +/* 01B8D0 7001ACD0 0C006ABD */ jal ultra_7001AAF4 +/* 01B8D4 7001ACD4 46803320 */ cvt.s.w $f12, $f6 +/* 01B8D8 7001ACD8 86180018 */ lh $t8, 0x18($s0) +/* 01B8DC 7001ACDC 3C0E8003 */ lui $t6, %hi(eqpower+0xFE) +/* 01B8E0 7001ACE0 A6020026 */ sh $v0, 0x26($s0) +/* 01B8E4 7001ACE4 00187840 */ sll $t7, $t8, 1 +/* 01B8E8 7001ACE8 000FC823 */ negu $t9, $t7 +/* 01B8EC 7001ACEC 01D97021 */ addu $t6, $t6, $t9 +/* 01B8F0 7001ACF0 85CE82DE */ lh $t6, %lo(eqpower+0xFE)($t6) +/* 01B8F4 7001ACF4 8618001A */ lh $t8, 0x1a($s0) +/* 01B8F8 7001ACF8 8E040034 */ lw $a0, 0x34($s0) +/* 01B8FC 7001ACFC 2605002A */ addiu $a1, $s0, 0x2a +/* 01B900 7001AD00 01D80019 */ multu $t6, $t8 +/* 01B904 7001AD04 860E001E */ lh $t6, 0x1e($s0) +/* 01B908 7001AD08 448E4000 */ mtc1 $t6, $f8 +/* 01B90C 7001AD0C 00000000 */ nop +/* 01B910 7001AD10 468043A0 */ cvt.s.w $f14, $f8 +/* 01B914 7001AD14 00007812 */ mflo $t7 +/* 01B918 7001AD18 000FCBC3 */ sra $t9, $t7, 0xf +/* 01B91C 7001AD1C A619002E */ sh $t9, 0x2e($s0) +/* 01B920 7001AD20 8618002E */ lh $t8, 0x2e($s0) +/* 01B924 7001AD24 44985000 */ mtc1 $t8, $f10 +/* 01B928 7001AD28 0C006ABD */ jal ultra_7001AAF4 +/* 01B92C 7001AD2C 46805320 */ cvt.s.w $f12, $f10 +/* 01B930 7001AD30 860F001C */ lh $t7, 0x1c($s0) +/* 01B934 7001AD34 A602002C */ sh $v0, 0x2c($s0) +/* 01B938 7001AD38 02201825 */ move $v1, $s1 +/* 01B93C 7001AD3C 3C010906 */ lui $at, 0x906 +/* 01B940 7001AD40 31F9FFFF */ andi $t9, $t7, 0xffff +/* 01B944 7001AD44 03217025 */ or $t6, $t9, $at +/* 01B948 7001AD48 AC6E0000 */ sw $t6, ($v1) +/* 01B94C 7001AD4C AC600004 */ sw $zero, 4($v1) +/* 01B950 7001AD50 8618001E */ lh $t8, 0x1e($s0) +/* 01B954 7001AD54 26310008 */ addiu $s1, $s1, 8 +/* 01B958 7001AD58 02202025 */ move $a0, $s1 +/* 01B95C 7001AD5C 3C010904 */ lui $at, 0x904 +/* 01B960 7001AD60 330FFFFF */ andi $t7, $t8, 0xffff +/* 01B964 7001AD64 01E1C825 */ or $t9, $t7, $at +/* 01B968 7001AD68 AC990000 */ sw $t9, ($a0) +/* 01B96C 7001AD6C AC800004 */ sw $zero, 4($a0) +/* 01B970 7001AD70 860E0028 */ lh $t6, 0x28($s0) +/* 01B974 7001AD74 26310008 */ addiu $s1, $s1, 8 +/* 01B978 7001AD78 3C010902 */ lui $at, 0x902 +/* 01B97C 7001AD7C 31D8FFFF */ andi $t8, $t6, 0xffff +/* 01B980 7001AD80 03017825 */ or $t7, $t8, $at +/* 01B984 7001AD84 02202825 */ move $a1, $s1 +/* 01B988 7001AD88 ACAF0000 */ sw $t7, ($a1) +/* 01B98C 7001AD8C 860E0026 */ lh $t6, 0x26($s0) +/* 01B990 7001AD90 96190024 */ lhu $t9, 0x24($s0) +/* 01B994 7001AD94 26310008 */ addiu $s1, $s1, 8 +/* 01B998 7001AD98 000EC400 */ sll $t8, $t6, 0x10 +/* 01B99C 7001AD9C 03197025 */ or $t6, $t8, $t9 +/* 01B9A0 7001ADA0 ACAE0004 */ sw $t6, 4($a1) +/* 01B9A4 7001ADA4 860F002E */ lh $t7, 0x2e($s0) +/* 01B9A8 7001ADA8 3C010900 */ lui $at, 0x900 +/* 01B9AC 7001ADAC 02203025 */ move $a2, $s1 +/* 01B9B0 7001ADB0 31F8FFFF */ andi $t8, $t7, 0xffff +/* 01B9B4 7001ADB4 0301C825 */ or $t9, $t8, $at +/* 01B9B8 7001ADB8 ACD90000 */ sw $t9, ($a2) +/* 01B9BC 7001ADBC 860F002C */ lh $t7, 0x2c($s0) +/* 01B9C0 7001ADC0 960E002A */ lhu $t6, 0x2a($s0) +/* 01B9C4 7001ADC4 26310008 */ addiu $s1, $s1, 8 +/* 01B9C8 7001ADC8 000FC400 */ sll $t8, $t7, 0x10 +/* 01B9CC 7001ADCC 030E7825 */ or $t7, $t8, $t6 +/* 01B9D0 7001ADD0 ACCF0004 */ sw $t7, 4($a2) +/* 01B9D4 7001ADD4 86190020 */ lh $t9, 0x20($s0) +/* 01B9D8 7001ADD8 3C010908 */ lui $at, 0x908 +/* 01B9DC 7001ADDC 02201025 */ move $v0, $s1 +/* 01B9E0 7001ADE0 3338FFFF */ andi $t8, $t9, 0xffff +/* 01B9E4 7001ADE4 03017025 */ or $t6, $t8, $at +/* 01B9E8 7001ADE8 AC4E0000 */ sw $t6, ($v0) +/* 01B9EC 7001ADEC 860F0022 */ lh $t7, 0x22($s0) +/* 01B9F0 7001ADF0 26310008 */ addiu $s1, $s1, 8 +/* 01B9F4 7001ADF4 02209025 */ move $s2, $s1 +/* 01B9F8 7001ADF8 31F9FFFF */ andi $t9, $t7, 0xffff +/* 01B9FC 7001ADFC AC590004 */ sw $t9, 4($v0) +/* 01BA00 7001AE00 3C180309 */ lui $t8, 0x309 +/* 01BA04 7001AE04 AE580000 */ sw $t8, ($s2) +/* 01BA08 7001AE08 8E040014 */ lw $a0, 0x14($s0) +/* 01BA0C 7001AE0C 0C003A2C */ jal osVirtualToPhysical +/* 01BA10 7001AE10 26310008 */ addiu $s1, $s1, 8 +/* 01BA14 7001AE14 10000007 */ b .L7001AE34 +/* 01BA18 7001AE18 AE420004 */ sw $v0, 4($s2) +/* 01BA1C 7001AE1C 3C0E0308 */ lui $t6, 0x308 +.L7001AE20: +/* 01BA20 7001AE20 AE4E0000 */ sw $t6, ($s2) +/* 01BA24 7001AE24 8E040014 */ lw $a0, 0x14($s0) +/* 01BA28 7001AE28 0C003A2C */ jal osVirtualToPhysical +/* 01BA2C 7001AE2C 26310008 */ addiu $s1, $s1, 8 +/* 01BA30 7001AE30 AE420004 */ sw $v0, 4($s2) +.L7001AE34: +/* 01BA34 7001AE34 86AF0000 */ lh $t7, ($s5) +/* 01BA38 7001AE38 02201025 */ move $v0, $s1 +/* 01BA3C 7001AE3C 01F4C821 */ addu $t9, $t7, $s4 +/* 01BA40 7001AE40 A6B90000 */ sh $t9, ($s5) +.L7001AE44: +/* 01BA44 7001AE44 8FBF001C */ lw $ra, 0x1c($sp) +/* 01BA48 7001AE48 27BD0020 */ addiu $sp, $sp, 0x20 +/* 01BA4C 7001AE4C 03E00008 */ jr $ra +/* 01BA50 7001AE50 00000000 */ nop + +/* 01BA54 7001AE54 03E00008 */ jr $ra +/* 01BA58 7001AE58 00000000 */ nop + +glabel alEnvmixerPull +/* 01BA5C 7001AE5C 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 01BA60 7001AE60 8FAE00E8 */ lw $t6, 0xe8($sp) +/* 01BA64 7001AE64 AFBF0054 */ sw $ra, 0x54($sp) +/* 01BA68 7001AE68 AFBE0050 */ sw $fp, 0x50($sp) +/* 01BA6C 7001AE6C AFB7004C */ sw $s7, 0x4c($sp) +/* 01BA70 7001AE70 AFB60048 */ sw $s6, 0x48($sp) +/* 01BA74 7001AE74 AFB50044 */ sw $s5, 0x44($sp) +/* 01BA78 7001AE78 AFB40040 */ sw $s4, 0x40($sp) +/* 01BA7C 7001AE7C AFB3003C */ sw $s3, 0x3c($sp) +/* 01BA80 7001AE80 AFB20038 */ sw $s2, 0x38($sp) +/* 01BA84 7001AE84 AFB10034 */ sw $s1, 0x34($sp) +/* 01BA88 7001AE88 AFB00030 */ sw $s0, 0x30($sp) +/* 01BA8C 7001AE8C F7B60028 */ sdc1 $f22, 0x28($sp) +/* 01BA90 7001AE90 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 01BA94 7001AE94 AFA500DC */ sw $a1, 0xdc($sp) +/* 01BA98 7001AE98 AFA600E0 */ sw $a2, 0xe0($sp) +/* 01BA9C 7001AE9C AFA700E4 */ sw $a3, 0xe4($sp) +/* 01BAA0 7001AEA0 AFA400D0 */ sw $a0, 0xd0($sp) +/* 01BAA4 7001AEA4 AFA700C4 */ sw $a3, 0xc4($sp) +/* 01BAA8 7001AEA8 A7A000BE */ sh $zero, 0xbe($sp) +/* 01BAAC 7001AEAC A7A000CE */ sh $zero, 0xce($sp) +/* 01BAB0 7001AEB0 AFAE00D4 */ sw $t6, 0xd4($sp) +/* 01BAB4 7001AEB4 8C98003C */ lw $t8, 0x3c($a0) +/* 01BAB8 7001AEB8 0080B825 */ move $s7, $a0 +/* 01BABC 7001AEBC 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 01BAC0 7001AEC0 53000162 */ beql $t8, $zero, .L7001B44C +/* 01BAC4 7001AEC4 8EEE0048 */ lw $t6, 0x48($s7) +/* 01BAC8 7001AEC8 4481B800 */ mtc1 $at, $f23 +/* 01BACC 7001AECC 3C0140F0 */ li $at, 0x40F00000 # 7.500000 +/* 01BAD0 7001AED0 4481A800 */ mtc1 $at, $f21 +/* 01BAD4 7001AED4 4480B000 */ mtc1 $zero, $f22 +/* 01BAD8 7001AED8 4480A000 */ mtc1 $zero, $f20 +/* 01BADC 7001AEDC 24110001 */ li $s1, 1 +/* 01BAE0 7001AEE0 8EF9003C */ lw $t9, 0x3c($s7) +.L7001AEE4: +/* 01BAE4 7001AEE4 8FA200C4 */ lw $v0, 0xc4($sp) +/* 01BAE8 7001AEE8 8FB800E0 */ lw $t8, 0xe0($sp) +/* 01BAEC 7001AEEC 8F2E0004 */ lw $t6, 4($t9) +/* 01BAF0 7001AEF0 3C048003 */ lui $a0, %hi(aAssertionFaultSSLineD) +/* 01BAF4 7001AEF4 24849890 */ addiu $a0, %lo(aAssertionFaultSSLineD) # addiu $a0, $a0, -0x6770 +/* 01BAF8 7001AEF8 01C2F023 */ subu $fp, $t6, $v0 +/* 01BAFC 7001AEFC 031E082A */ slt $at, $t8, $fp +/* 01BB00 7001AF00 14200151 */ bnez $at, .L7001B448 +/* 01BB04 7001AF04 AFAE00C4 */ sw $t6, 0xc4($sp) +/* 01BB08 7001AF08 07C10006 */ bgez $fp, .L7001AF24 +/* 01BB0C 7001AF0C 3C058003 */ lui $a1, %hi(aSamples0) +/* 01BB10 7001AF10 3C068003 */ lui $a2, %hi(aEnv_c) +/* 01BB14 7001AF14 24C698CC */ addiu $a2, %lo(aEnv_c) # addiu $a2, $a2, -0x6734 +/* 01BB18 7001AF18 24A598BC */ addiu $a1, %lo(aSamples0) # addiu $a1, $a1, -0x6744 +/* 01BB1C 7001AF1C 0C0033D1 */ jal osSyncPrintf +/* 01BB20 7001AF20 24070068 */ li $a3, 104 +.L7001AF24: +/* 01BB24 7001AF24 2BC100A1 */ slti $at, $fp, 0xa1 +/* 01BB28 7001AF28 14200008 */ bnez $at, .L7001AF4C +/* 01BB2C 7001AF2C 3C048003 */ lui $a0, %hi(aAssertionFaultSSLineD_0) +/* 01BB30 7001AF30 3C058003 */ lui $a1, %hi(aSamplesAl_max_rsp_samples) +/* 01BB34 7001AF34 3C068003 */ lui $a2, %hi(aEnv_c_0) +/* 01BB38 7001AF38 24C69920 */ addiu $a2, %lo(aEnv_c_0) # addiu $a2, $a2, -0x66e0 +/* 01BB3C 7001AF3C 24A59900 */ addiu $a1, %lo(aSamplesAl_max_rsp_samples) # addiu $a1, $a1, -0x6700 +/* 01BB40 7001AF40 248498D4 */ addiu $a0, %lo(aAssertionFaultSSLineD_0) # addiu $a0, $a0, -0x672c +/* 01BB44 7001AF44 0C0033D1 */ jal osSyncPrintf +/* 01BB48 7001AF48 24070069 */ li $a3, 105 +.L7001AF4C: +/* 01BB4C 7001AF4C 8EE3003C */ lw $v1, 0x3c($s7) +/* 01BB50 7001AF50 94790008 */ lhu $t9, 8($v1) +/* 01BB54 7001AF54 2F210011 */ sltiu $at, $t9, 0x11 +/* 01BB58 7001AF58 10200117 */ beqz $at, .L7001B3B8 +/* 01BB5C 7001AF5C 0019C880 */ sll $t9, $t9, 2 +/* 01BB60 7001AF60 3C018003 */ lui $at, %hi(jpt_80029968) +/* 01BB64 7001AF64 00390821 */ addu $at, $at, $t9 +/* 01BB68 7001AF68 8C399968 */ lw $t9, %lo(jpt_80029968)($at) +/* 01BB6C 7001AF6C 03200008 */ jr $t9 +/* 01BB70 7001AF70 00000000 */ nop +.L7001AF74: +/* 01BB74 7001AF74 846E000A */ lh $t6, 0xa($v1) +/* 01BB78 7001AF78 00608025 */ move $s0, $v1 +/* 01BB7C 7001AF7C 51C00007 */ beql $t6, $zero, .L7001AF9C +/* 01BB80 7001AF80 8EF90008 */ lw $t9, 8($s7) +/* 01BB84 7001AF84 8EF90008 */ lw $t9, 8($s7) +/* 01BB88 7001AF88 02E02025 */ move $a0, $s7 +/* 01BB8C 7001AF8C 24050008 */ li $a1, 8 +/* 01BB90 7001AF90 0320F809 */ jalr $t9 +/* 01BB94 7001AF94 00003025 */ move $a2, $zero +/* 01BB98 7001AF98 8EF90008 */ lw $t9, 8($s7) +.L7001AF9C: +/* 01BB9C 7001AF9C 02E02025 */ move $a0, $s7 +/* 01BBA0 7001AFA0 24050005 */ li $a1, 5 +/* 01BBA4 7001AFA4 0320F809 */ jalr $t9 +/* 01BBA8 7001AFA8 8E060018 */ lw $a2, 0x18($s0) +/* 01BBAC 7001AFAC 8EF90008 */ lw $t9, 8($s7) +/* 01BBB0 7001AFB0 02E02025 */ move $a0, $s7 +/* 01BBB4 7001AFB4 24050009 */ li $a1, 9 +/* 01BBB8 7001AFB8 0320F809 */ jalr $t9 +/* 01BBBC 7001AFBC 00003025 */ move $a2, $zero +/* 01BBC0 7001AFC0 AEF10038 */ sw $s1, 0x38($s7) +/* 01BBC4 7001AFC4 AEE00030 */ sw $zero, 0x30($s7) +/* 01BBC8 7001AFC8 8E0F0014 */ lw $t7, 0x14($s0) +/* 01BBCC 7001AFCC AEEF0034 */ sw $t7, 0x34($s7) +/* 01BBD0 7001AFD0 86030010 */ lh $v1, 0x10($s0) +/* 01BBD4 7001AFD4 00630019 */ multu $v1, $v1 +/* 01BBD8 7001AFD8 00002012 */ mflo $a0 +/* 01BBDC 7001AFDC 0004C3C3 */ sra $t8, $a0, 0xf +/* 01BBE0 7001AFE0 A6F8001A */ sh $t8, 0x1a($s7) +/* 01BBE4 7001AFE4 920E0012 */ lbu $t6, 0x12($s0) +/* 01BBE8 7001AFE8 3C188003 */ lui $t8, %hi(eqpower) +/* 01BBEC 7001AFEC A6EE0018 */ sh $t6, 0x18($s7) +/* 01BBF0 7001AFF0 92190013 */ lbu $t9, 0x13($s0) +/* 01BBF4 7001AFF4 00197840 */ sll $t7, $t9, 1 +/* 01BBF8 7001AFF8 030FC021 */ addu $t8, $t8, $t7 +/* 01BBFC 7001AFFC 871881E0 */ lh $t8, %lo(eqpower)($t8) +/* 01BC00 7001B000 A6F80020 */ sh $t8, 0x20($s7) +/* 01BC04 7001B004 920E0013 */ lbu $t6, 0x13($s0) +/* 01BC08 7001B008 3C188003 */ lui $t8, %hi(eqpower+0xFE) +/* 01BC0C 7001B00C 000EC840 */ sll $t9, $t6, 1 +/* 01BC10 7001B010 00197823 */ negu $t7, $t9 +/* 01BC14 7001B014 030FC021 */ addu $t8, $t8, $t7 +/* 01BC18 7001B018 871882DE */ lh $t8, %lo(eqpower+0xFE)($t8) +/* 01BC1C 7001B01C A6F80022 */ sh $t8, 0x22($s7) +/* 01BC20 7001B020 8E0E0014 */ lw $t6, 0x14($s0) +/* 01BC24 7001B024 51C00005 */ beql $t6, $zero, .L7001B03C +/* 01BC28 7001B028 86E20018 */ lh $v0, 0x18($s7) +/* 01BC2C 7001B02C A6F1001C */ sh $s1, 0x1c($s7) +/* 01BC30 7001B030 10000013 */ b .L7001B080 +/* 01BC34 7001B034 A6F1001E */ sh $s1, 0x1e($s7) +/* 01BC38 7001B038 86E20018 */ lh $v0, 0x18($s7) +.L7001B03C: +/* 01BC3C 7001B03C 3C0F8003 */ lui $t7, %hi(eqpower) +/* 01BC40 7001B040 86E3001A */ lh $v1, 0x1a($s7) +/* 01BC44 7001B044 0002C840 */ sll $t9, $v0, 1 +/* 01BC48 7001B048 01F97821 */ addu $t7, $t7, $t9 +/* 01BC4C 7001B04C 85EF81E0 */ lh $t7, %lo(eqpower)($t7) +/* 01BC50 7001B050 0019C823 */ negu $t9, $t9 +/* 01BC54 7001B054 01E30019 */ multu $t7, $v1 +/* 01BC58 7001B058 3C0F8003 */ lui $t7, %hi(eqpower+0xFE) +/* 01BC5C 7001B05C 01F97821 */ addu $t7, $t7, $t9 +/* 01BC60 7001B060 0000C012 */ mflo $t8 +/* 01BC64 7001B064 001873C3 */ sra $t6, $t8, 0xf +/* 01BC68 7001B068 A6EE001C */ sh $t6, 0x1c($s7) +/* 01BC6C 7001B06C 85EF82DE */ lh $t7, %lo(eqpower+0xFE)($t7) +/* 01BC70 7001B070 01E30019 */ multu $t7, $v1 +/* 01BC74 7001B074 0000C012 */ mflo $t8 +/* 01BC78 7001B078 001873C3 */ sra $t6, $t8, 0xf +/* 01BC7C 7001B07C A6EE001E */ sh $t6, 0x1e($s7) +.L7001B080: +/* 01BC80 7001B080 8EF90000 */ lw $t9, ($s7) +/* 01BC84 7001B084 532000DF */ beql $t9, $zero, .L7001B404 +/* 01BC88 7001B088 87B800BE */ lh $t8, 0xbe($sp) +/* 01BC8C 7001B08C C604000C */ lwc1 $f4, 0xc($s0) +/* 01BC90 7001B090 24050007 */ li $a1, 7 +/* 01BC94 7001B094 E7A400A4 */ swc1 $f4, 0xa4($sp) +/* 01BC98 7001B098 8EE40000 */ lw $a0, ($s7) +/* 01BC9C 7001B09C 8FA600A4 */ lw $a2, 0xa4($sp) +/* 01BCA0 7001B0A0 8C990008 */ lw $t9, 8($a0) +/* 01BCA4 7001B0A4 0320F809 */ jalr $t9 +/* 01BCA8 7001B0A8 00000000 */ nop +/* 01BCAC 7001B0AC 100000D5 */ b .L7001B404 +/* 01BCB0 7001B0B0 87B800BE */ lh $t8, 0xbe($sp) +.L7001B0B4: +/* 01BCB4 7001B0B4 02E08025 */ move $s0, $s7 +/* 01BCB8 7001B0B8 27B500CE */ addiu $s5, $sp, 0xce +/* 01BCBC 7001B0BC 27B300BE */ addiu $s3, $sp, 0xbe +/* 01BCC0 7001B0C0 03C09025 */ move $s2, $fp +/* 01BCC4 7001B0C4 8FB600E4 */ lw $s6, 0xe4($sp) +/* 01BCC8 7001B0C8 0C006AED */ jal ultra_7001ABB4 +/* 01BCCC 7001B0CC 8FB400D4 */ lw $s4, 0xd4($sp) +/* 01BCD0 7001B0D0 AFA200D4 */ sw $v0, 0xd4($sp) +/* 01BCD4 7001B0D4 8EEF0030 */ lw $t7, 0x30($s7) +/* 01BCD8 7001B0D8 8EE40034 */ lw $a0, 0x34($s7) +/* 01BCDC 7001B0DC 24110001 */ li $s1, 1 +/* 01BCE0 7001B0E0 01FE2821 */ addu $a1, $t7, $fp +/* 01BCE4 7001B0E4 00A4082A */ slt $at, $a1, $a0 +/* 01BCE8 7001B0E8 14200019 */ bnez $at, .L7001B150 +/* 01BCEC 7001B0EC AEE50030 */ sw $a1, 0x30($s7) +/* 01BCF0 7001B0F0 86E20018 */ lh $v0, 0x18($s7) +/* 01BCF4 7001B0F4 3C198003 */ lui $t9, %hi(eqpower) +/* 01BCF8 7001B0F8 86E3001A */ lh $v1, 0x1a($s7) +/* 01BCFC 7001B0FC 00027040 */ sll $t6, $v0, 1 +/* 01BD00 7001B100 032EC821 */ addu $t9, $t9, $t6 +/* 01BD04 7001B104 873981E0 */ lh $t9, %lo(eqpower)($t9) +/* 01BD08 7001B108 000E7023 */ negu $t6, $t6 +/* 01BD0C 7001B10C 03230019 */ multu $t9, $v1 +/* 01BD10 7001B110 3C198003 */ lui $t9, %hi(eqpower+0xFE) +/* 01BD14 7001B114 032EC821 */ addu $t9, $t9, $t6 +/* 01BD18 7001B118 00007812 */ mflo $t7 +/* 01BD1C 7001B11C 000FC3C3 */ sra $t8, $t7, 0xf +/* 01BD20 7001B120 A6F80028 */ sh $t8, 0x28($s7) +/* 01BD24 7001B124 873982DE */ lh $t9, %lo(eqpower+0xFE)($t9) +/* 01BD28 7001B128 86EE0028 */ lh $t6, 0x28($s7) +/* 01BD2C 7001B12C AEE40030 */ sw $a0, 0x30($s7) +/* 01BD30 7001B130 03230019 */ multu $t9, $v1 +/* 01BD34 7001B134 A6EE001C */ sh $t6, 0x1c($s7) +/* 01BD38 7001B138 00007812 */ mflo $t7 +/* 01BD3C 7001B13C 000FC3C3 */ sra $t8, $t7, 0xf +/* 01BD40 7001B140 A6F8002E */ sh $t8, 0x2e($s7) +/* 01BD44 7001B144 86F9002E */ lh $t9, 0x2e($s7) +/* 01BD48 7001B148 10000040 */ b .L7001B24C +/* 01BD4C 7001B14C A6F9001E */ sh $t9, 0x1e($s7) +.L7001B150: +/* 01BD50 7001B150 86EF001C */ lh $t7, 0x1c($s7) +/* 01BD54 7001B154 86E30026 */ lh $v1, 0x26($s7) +/* 01BD58 7001B158 96E40024 */ lhu $a0, 0x24($s7) +/* 01BD5C 7001B15C 448F3000 */ mtc1 $t7, $f6 +/* 01BD60 7001B160 0003C400 */ sll $t8, $v1, 0x10 +/* 01BD64 7001B164 44984000 */ mtc1 $t8, $f8 +/* 01BD68 7001B168 44842000 */ mtc1 $a0, $f4 +/* 01BD6C 7001B16C 46803320 */ cvt.s.w $f12, $f6 +/* 01BD70 7001B170 00A01025 */ move $v0, $a1 +/* 01BD74 7001B174 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 01BD78 7001B178 468042A0 */ cvt.s.w $f10, $f8 +/* 01BD7C 7001B17C 04810004 */ bgez $a0, .L7001B190 +/* 01BD80 7001B180 468021A0 */ cvt.s.w $f6, $f4 +/* 01BD84 7001B184 44814000 */ mtc1 $at, $f8 +/* 01BD88 7001B188 00000000 */ nop +/* 01BD8C 7001B18C 46083180 */ add.s $f6, $f6, $f8 +.L7001B190: +/* 01BD90 7001B190 46065100 */ add.s $f4, $f10, $f6 +/* 01BD94 7001B194 86EF001E */ lh $t7, 0x1e($s7) +/* 01BD98 7001B198 86E3002C */ lh $v1, 0x2c($s7) +/* 01BD9C 7001B19C 96E4002A */ lhu $a0, 0x2a($s7) +/* 01BDA0 7001B1A0 46002221 */ cvt.d.s $f8, $f4 +/* 01BDA4 7001B1A4 44822000 */ mtc1 $v0, $f4 +/* 01BDA8 7001B1A8 46344283 */ div.d $f10, $f8, $f20 +/* 01BDAC 7001B1AC 0003C400 */ sll $t8, $v1, 0x10 +/* 01BDB0 7001B1B0 00A01025 */ move $v0, $a1 +/* 01BDB4 7001B1B4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 01BDB8 7001B1B8 46802220 */ cvt.s.w $f8, $f4 +/* 01BDBC 7001B1BC 462051A0 */ cvt.s.d $f6, $f10 +/* 01BDC0 7001B1C0 46083282 */ mul.s $f10, $f6, $f8 +/* 01BDC4 7001B1C4 46006221 */ cvt.d.s $f8, $f12 +/* 01BDC8 7001B1C8 46005121 */ cvt.d.s $f4, $f10 +/* 01BDCC 7001B1CC 46362182 */ mul.d $f6, $f4, $f22 +/* 01BDD0 7001B1D0 46264280 */ add.d $f10, $f8, $f6 +/* 01BDD4 7001B1D4 448F4000 */ mtc1 $t7, $f8 +/* 01BDD8 7001B1D8 44983000 */ mtc1 $t8, $f6 +/* 01BDDC 7001B1DC 46205320 */ cvt.s.d $f12, $f10 +/* 01BDE0 7001B1E0 468040A0 */ cvt.s.w $f2, $f8 +/* 01BDE4 7001B1E4 4600610D */ trunc.w.s $f4, $f12 +/* 01BDE8 7001B1E8 468032A0 */ cvt.s.w $f10, $f6 +/* 01BDEC 7001B1EC 44192000 */ mfc1 $t9, $f4 +/* 01BDF0 7001B1F0 44842000 */ mtc1 $a0, $f4 +/* 01BDF4 7001B1F4 A6F9001C */ sh $t9, 0x1c($s7) +/* 01BDF8 7001B1F8 04810004 */ bgez $a0, .L7001B20C +/* 01BDFC 7001B1FC 46802220 */ cvt.s.w $f8, $f4 +/* 01BE00 7001B200 44813000 */ mtc1 $at, $f6 +/* 01BE04 7001B204 00000000 */ nop +/* 01BE08 7001B208 46064200 */ add.s $f8, $f8, $f6 +.L7001B20C: +/* 01BE0C 7001B20C 46085100 */ add.s $f4, $f10, $f8 +/* 01BE10 7001B210 460021A1 */ cvt.d.s $f6, $f4 +/* 01BE14 7001B214 44822000 */ mtc1 $v0, $f4 +/* 01BE18 7001B218 46343283 */ div.d $f10, $f6, $f20 +/* 01BE1C 7001B21C 468021A0 */ cvt.s.w $f6, $f4 +/* 01BE20 7001B220 46205220 */ cvt.s.d $f8, $f10 +/* 01BE24 7001B224 46064282 */ mul.s $f10, $f8, $f6 +/* 01BE28 7001B228 460011A1 */ cvt.d.s $f6, $f2 +/* 01BE2C 7001B22C 46005121 */ cvt.d.s $f4, $f10 +/* 01BE30 7001B230 46362202 */ mul.d $f8, $f4, $f22 +/* 01BE34 7001B234 46283280 */ add.d $f10, $f6, $f8 +/* 01BE38 7001B238 462050A0 */ cvt.s.d $f2, $f10 +/* 01BE3C 7001B23C 4600110D */ trunc.w.s $f4, $f2 +/* 01BE40 7001B240 44192000 */ mfc1 $t9, $f4 +/* 01BE44 7001B244 00000000 */ nop +/* 01BE48 7001B248 A6F9001E */ sh $t9, 0x1e($s7) +.L7001B24C: +/* 01BE4C 7001B24C 86EF001C */ lh $t7, 0x1c($s7) +/* 01BE50 7001B250 55E00003 */ bnezl $t7, .L7001B260 +/* 01BE54 7001B254 86F8001E */ lh $t8, 0x1e($s7) +/* 01BE58 7001B258 A6F1001C */ sh $s1, 0x1c($s7) +/* 01BE5C 7001B25C 86F8001E */ lh $t8, 0x1e($s7) +.L7001B260: +/* 01BE60 7001B260 57000003 */ bnezl $t8, .L7001B270 +/* 01BE64 7001B264 8EE3003C */ lw $v1, 0x3c($s7) +/* 01BE68 7001B268 A6F1001E */ sh $s1, 0x1e($s7) +/* 01BE6C 7001B26C 8EE3003C */ lw $v1, 0x3c($s7) +.L7001B270: +/* 01BE70 7001B270 2401000C */ li $at, 12 +/* 01BE74 7001B274 84640008 */ lh $a0, 8($v1) +/* 01BE78 7001B278 54810005 */ bnel $a0, $at, .L7001B290 +/* 01BE7C 7001B27C 2401000B */ li $at, 11 +/* 01BE80 7001B280 8C6E000C */ lw $t6, 0xc($v1) +/* 01BE84 7001B284 A6EE0018 */ sh $t6, 0x18($s7) +/* 01BE88 7001B288 84640008 */ lh $a0, 8($v1) +/* 01BE8C 7001B28C 2401000B */ li $at, 11 +.L7001B290: +/* 01BE90 7001B290 5481000B */ bnel $a0, $at, .L7001B2C0 +/* 01BE94 7001B294 24010010 */ li $at, 16 +/* 01BE98 7001B298 AEE00030 */ sw $zero, 0x30($s7) +/* 01BE9C 7001B29C 8C62000C */ lw $v0, 0xc($v1) +/* 01BEA0 7001B2A0 00420019 */ multu $v0, $v0 +/* 01BEA4 7001B2A4 00001012 */ mflo $v0 +/* 01BEA8 7001B2A8 0002CBC3 */ sra $t9, $v0, 0xf +/* 01BEAC 7001B2AC A6F9001A */ sh $t9, 0x1a($s7) +/* 01BEB0 7001B2B0 8C6F0010 */ lw $t7, 0x10($v1) +/* 01BEB4 7001B2B4 AEEF0034 */ sw $t7, 0x34($s7) +/* 01BEB8 7001B2B8 84640008 */ lh $a0, 8($v1) +/* 01BEBC 7001B2BC 24010010 */ li $at, 16 +.L7001B2C0: +/* 01BEC0 7001B2C0 1481000E */ bne $a0, $at, .L7001B2FC +/* 01BEC4 7001B2C4 00000000 */ nop +/* 01BEC8 7001B2C8 8C78000C */ lw $t8, 0xc($v1) +/* 01BECC 7001B2CC 3C198003 */ lui $t9, %hi(eqpower) +/* 01BED0 7001B2D0 00187040 */ sll $t6, $t8, 1 +/* 01BED4 7001B2D4 032EC821 */ addu $t9, $t9, $t6 +/* 01BED8 7001B2D8 873981E0 */ lh $t9, %lo(eqpower)($t9) +/* 01BEDC 7001B2DC A6F90020 */ sh $t9, 0x20($s7) +/* 01BEE0 7001B2E0 8C6F000C */ lw $t7, 0xc($v1) +/* 01BEE4 7001B2E4 3C198003 */ lui $t9, %hi(eqpower+0xFE) +/* 01BEE8 7001B2E8 000FC040 */ sll $t8, $t7, 1 +/* 01BEEC 7001B2EC 00187023 */ negu $t6, $t8 +/* 01BEF0 7001B2F0 032EC821 */ addu $t9, $t9, $t6 +/* 01BEF4 7001B2F4 873982DE */ lh $t9, %lo(eqpower+0xFE)($t9) +/* 01BEF8 7001B2F8 A6F90022 */ sh $t9, 0x22($s7) +.L7001B2FC: +/* 01BEFC 7001B2FC 10000040 */ b .L7001B400 +/* 01BF00 7001B300 AEF10038 */ sw $s1, 0x38($s7) +.L7001B304: +/* 01BF04 7001B304 846F000A */ lh $t7, 0xa($v1) +/* 01BF08 7001B308 00608025 */ move $s0, $v1 +/* 01BF0C 7001B30C 51E00007 */ beql $t7, $zero, .L7001B32C +/* 01BF10 7001B310 8EF90008 */ lw $t9, 8($s7) +/* 01BF14 7001B314 8EF90008 */ lw $t9, 8($s7) +/* 01BF18 7001B318 02E02025 */ move $a0, $s7 +/* 01BF1C 7001B31C 24050008 */ li $a1, 8 +/* 01BF20 7001B320 0320F809 */ jalr $t9 +/* 01BF24 7001B324 00003025 */ move $a2, $zero +/* 01BF28 7001B328 8EF90008 */ lw $t9, 8($s7) +.L7001B32C: +/* 01BF2C 7001B32C 02E02025 */ move $a0, $s7 +/* 01BF30 7001B330 24050005 */ li $a1, 5 +/* 01BF34 7001B334 0320F809 */ jalr $t9 +/* 01BF38 7001B338 8E06000C */ lw $a2, 0xc($s0) +/* 01BF3C 7001B33C 8EF90008 */ lw $t9, 8($s7) +/* 01BF40 7001B340 02E02025 */ move $a0, $s7 +/* 01BF44 7001B344 24050009 */ li $a1, 9 +/* 01BF48 7001B348 0320F809 */ jalr $t9 +/* 01BF4C 7001B34C 00003025 */ move $a2, $zero +/* 01BF50 7001B350 1000002C */ b .L7001B404 +/* 01BF54 7001B354 87B800BE */ lh $t8, 0xbe($sp) +.L7001B358: +/* 01BF58 7001B358 02E08025 */ move $s0, $s7 +/* 01BF5C 7001B35C 27B500CE */ addiu $s5, $sp, 0xce +/* 01BF60 7001B360 27B300BE */ addiu $s3, $sp, 0xbe +/* 01BF64 7001B364 03C09025 */ move $s2, $fp +/* 01BF68 7001B368 8FB600E4 */ lw $s6, 0xe4($sp) +/* 01BF6C 7001B36C 0C006AED */ jal ultra_7001ABB4 +/* 01BF70 7001B370 8FB400D4 */ lw $s4, 0xd4($sp) +/* 01BF74 7001B374 AFA200D4 */ sw $v0, 0xd4($sp) +/* 01BF78 7001B378 8EF90008 */ lw $t9, 8($s7) +/* 01BF7C 7001B37C 24110001 */ li $s1, 1 +/* 01BF80 7001B380 02E02025 */ move $a0, $s7 +/* 01BF84 7001B384 24050004 */ li $a1, 4 +/* 01BF88 7001B388 0320F809 */ jalr $t9 +/* 01BF8C 7001B38C 00003025 */ move $a2, $zero +/* 01BF90 7001B390 1000001C */ b .L7001B404 +/* 01BF94 7001B394 87B800BE */ lh $t8, 0xbe($sp) +.L7001B398: +/* 01BF98 7001B398 8C78000C */ lw $t8, 0xc($v1) +/* 01BF9C 7001B39C 3C048002 */ lui $a0, %hi(alGlobals) +/* 01BFA0 7001B3A0 8C8476E0 */ lw $a0, %lo(alGlobals)($a0) +/* 01BFA4 7001B3A4 AF0000D8 */ sw $zero, 0xd8($t8) +/* 01BFA8 7001B3A8 0C003C08 */ jal _freePVoice +/* 01BFAC 7001B3AC 8C65000C */ lw $a1, 0xc($v1) +/* 01BFB0 7001B3B0 10000014 */ b .L7001B404 +/* 01BFB4 7001B3B4 87B800BE */ lh $t8, 0xbe($sp) +.L7001B3B8: +/* 01BFB8 7001B3B8 02E08025 */ move $s0, $s7 +/* 01BFBC 7001B3BC 27B500CE */ addiu $s5, $sp, 0xce +/* 01BFC0 7001B3C0 27B300BE */ addiu $s3, $sp, 0xbe +/* 01BFC4 7001B3C4 03C09025 */ move $s2, $fp +/* 01BFC8 7001B3C8 8FB600E4 */ lw $s6, 0xe4($sp) +/* 01BFCC 7001B3CC 0C006AED */ jal ultra_7001ABB4 +/* 01BFD0 7001B3D0 8FB400D4 */ lw $s4, 0xd4($sp) +/* 01BFD4 7001B3D4 AFA200D4 */ sw $v0, 0xd4($sp) +/* 01BFD8 7001B3D8 8EEE0030 */ lw $t6, 0x30($s7) +/* 01BFDC 7001B3DC 8EF90008 */ lw $t9, 8($s7) +/* 01BFE0 7001B3E0 8EE3003C */ lw $v1, 0x3c($s7) +/* 01BFE4 7001B3E4 01DE7821 */ addu $t7, $t6, $fp +/* 01BFE8 7001B3E8 AEEF0030 */ sw $t7, 0x30($s7) +/* 01BFEC 7001B3EC 24110001 */ li $s1, 1 +/* 01BFF0 7001B3F0 02E02025 */ move $a0, $s7 +/* 01BFF4 7001B3F4 8C66000C */ lw $a2, 0xc($v1) +/* 01BFF8 7001B3F8 0320F809 */ jalr $t9 +/* 01BFFC 7001B3FC 84650008 */ lh $a1, 8($v1) +.L7001B400: +/* 01C000 7001B400 87B800BE */ lh $t8, 0xbe($sp) +.L7001B404: +/* 01C004 7001B404 8FB900E0 */ lw $t9, 0xe0($sp) +/* 01C008 7001B408 001E7040 */ sll $t6, $fp, 1 +/* 01C00C 7001B40C 030E7821 */ addu $t7, $t8, $t6 +/* 01C010 7001B410 033EC023 */ subu $t8, $t9, $fp +/* 01C014 7001B414 A7AF00BE */ sh $t7, 0xbe($sp) +/* 01C018 7001B418 AFB800E0 */ sw $t8, 0xe0($sp) +/* 01C01C 7001B41C 8EE4003C */ lw $a0, 0x3c($s7) +/* 01C020 7001B420 8C8E0000 */ lw $t6, ($a0) +/* 01C024 7001B424 15C00002 */ bnez $t6, .L7001B430 +/* 01C028 7001B428 AEEE003C */ sw $t6, 0x3c($s7) +/* 01C02C 7001B42C AEE00040 */ sw $zero, 0x40($s7) +.L7001B430: +/* 01C030 7001B430 0C003C2E */ jal __freeParam +/* 01C034 7001B434 00000000 */ nop +/* 01C038 7001B438 8FB900D0 */ lw $t9, 0xd0($sp) +/* 01C03C 7001B43C 8F38003C */ lw $t8, 0x3c($t9) +/* 01C040 7001B440 5700FEA8 */ bnezl $t8, .L7001AEE4 +/* 01C044 7001B444 8EF9003C */ lw $t9, 0x3c($s7) +.L7001B448: +/* 01C048 7001B448 8EEE0048 */ lw $t6, 0x48($s7) +.L7001B44C: +/* 01C04C 7001B44C 24110001 */ li $s1, 1 +/* 01C050 7001B450 02E08025 */ move $s0, $s7 +/* 01C054 7001B454 162E000B */ bne $s1, $t6, .L7001B484 +/* 01C058 7001B458 27B500CE */ addiu $s5, $sp, 0xce +/* 01C05C 7001B45C 27B300BE */ addiu $s3, $sp, 0xbe +/* 01C060 7001B460 8FB200E0 */ lw $s2, 0xe0($sp) +/* 01C064 7001B464 8FB600E4 */ lw $s6, 0xe4($sp) +/* 01C068 7001B468 0C006AED */ jal ultra_7001ABB4 +/* 01C06C 7001B46C 8FB400D4 */ lw $s4, 0xd4($sp) +/* 01C070 7001B470 AFA200D4 */ sw $v0, 0xd4($sp) +/* 01C074 7001B474 8EEF0030 */ lw $t7, 0x30($s7) +/* 01C078 7001B478 8FB900E0 */ lw $t9, 0xe0($sp) +/* 01C07C 7001B47C 01F9C021 */ addu $t8, $t7, $t9 +/* 01C080 7001B480 AEF80030 */ sw $t8, 0x30($s7) +.L7001B484: +/* 01C084 7001B484 8EE40034 */ lw $a0, 0x34($s7) +/* 01C088 7001B488 8EEE0030 */ lw $t6, 0x30($s7) +/* 01C08C 7001B48C 008E082A */ slt $at, $a0, $t6 +/* 01C090 7001B490 50200003 */ beql $at, $zero, .L7001B4A0 +/* 01C094 7001B494 8FBF0054 */ lw $ra, 0x54($sp) +/* 01C098 7001B498 AEE40030 */ sw $a0, 0x30($s7) +/* 01C09C 7001B49C 8FBF0054 */ lw $ra, 0x54($sp) +.L7001B4A0: +/* 01C0A0 7001B4A0 8FA200D4 */ lw $v0, 0xd4($sp) +/* 01C0A4 7001B4A4 D7B40020 */ ldc1 $f20, 0x20($sp) +/* 01C0A8 7001B4A8 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 01C0AC 7001B4AC 8FB00030 */ lw $s0, 0x30($sp) +/* 01C0B0 7001B4B0 8FB10034 */ lw $s1, 0x34($sp) +/* 01C0B4 7001B4B4 8FB20038 */ lw $s2, 0x38($sp) +/* 01C0B8 7001B4B8 8FB3003C */ lw $s3, 0x3c($sp) +/* 01C0BC 7001B4BC 8FB40040 */ lw $s4, 0x40($sp) +/* 01C0C0 7001B4C0 8FB50044 */ lw $s5, 0x44($sp) +/* 01C0C4 7001B4C4 8FB60048 */ lw $s6, 0x48($sp) +/* 01C0C8 7001B4C8 8FB7004C */ lw $s7, 0x4c($sp) +/* 01C0CC 7001B4CC 8FBE0050 */ lw $fp, 0x50($sp) +/* 01C0D0 7001B4D0 03E00008 */ jr $ra +/* 01C0D4 7001B4D4 27BD00D8 */ addiu $sp, $sp, 0xd8 + +/* 01C0D8 7001B4D8 00000000 */ nop +/* 01C0DC 7001B4DC 00000000 */ nop + +.section .data +glabel eqpower +.half 32767,32764,32757,32744,32727,32704,32677,32644 +.half 32607,32564,32517,32464,32407,32344,32277,32205 +.half 32127,32045,31958,31866,31770,31668,31561,31450 +.half 31334,31213,31087,30957,30822,30682,30537,30388 +.half 30234,30075,29912,29744,29572,29395,29214,29028 +.half 28838,28643,28444,28241,28033,27821,27605,27385 +.half 27160,26931,26698,26461,26220,25975,25726,25473 +.half 25216,24956,24691,24423,24151,23875,23596,23313 +.half 23026,22736,22442,22145,21845,21541,21234,20924 +.half 20610,20294,19974,19651,19325,18997,18665,18331 +.half 17993,17653,17310,16965,16617,16266,15913,15558 +.half 15200,14840,14477,14113,13746,13377,13006,12633 +.half 12258,11881,11503,11122,10740,10357, 9971, 9584 +.half 9196, 8806, 8415, 8023, 7630, 7235, 6839, 6442 +.half 6044, 5646, 5246, 4845, 4444, 4042, 3640, 3237 +.half 2833, 2429, 2025, 1620, 1216, 810, 405, 0 + +.section .rodata +glabel aAssertionFaultSSLineD +.asciiz "\n--- ASSERTION FAULT - %s - %s, line %d\n\n" +.align 2 +glabel aSamples0 +.asciiz "samples >= 0" +.align 2 +glabel aEnv_c +.asciiz "env.c" +.align 2 +glabel aAssertionFaultSSLineD_0 +.asciiz "\n--- ASSERTION FAULT - %s - %s, line %d\n\n" +.align 4 +glabel aSamplesAl_max_rsp_samples +.asciiz "samples <= AL_MAX_RSP_SAMPLES" +.align 4 +glabel aEnv_c_0 +.asciiz "env.c" +.align 2 +glabel aAssertionFaultSSLineD_1 +.asciiz "\n--- ASSERTION FAULT - %s - %s, line %d\n\n" +.align 2 +glabel aSource +.asciiz "source" +.align 2 +glabel aEnv_c_1 +.asciiz "env.c" +.align 2 +glabel F32_80029964 +.float 65535.0 +glabel jpt_80029968 +.word .L7001B398 +.word .L7001B3B8 +.word .L7001B3B8 +.word .L7001B3B8 +.word .L7001B3B8 +.word .L7001B3B8 +.word .L7001B3B8 +.word .L7001B3B8 +.word .L7001B3B8 +.word .L7001B3B8 +.word .L7001B3B8 +.word .L7001B0B4 +.word .L7001B0B4 +.word .L7001AF74 +.word .L7001B304 +.word .L7001B358 +.word .L7001B0B4 +.align 4 diff --git a/src/libultra/epirawdma.s b/src/libultra/epirawdma.s new file mode 100644 index 0000000..6d6567c --- /dev/null +++ b/src/libultra/epirawdma.s @@ -0,0 +1,77 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osEPiRawStartDma +/* 01F130 7001E530 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 01F134 7001E534 AFBF001C */ sw $ra, 0x1c($sp) +/* 01F138 7001E538 AFA40028 */ sw $a0, 0x28($sp) +/* 01F13C 7001E53C AFA5002C */ sw $a1, 0x2c($sp) +/* 01F140 7001E540 AFA60030 */ sw $a2, 0x30($sp) +/* 01F144 7001E544 AFA70034 */ sw $a3, 0x34($sp) +/* 01F148 7001E548 AFB10018 */ sw $s1, 0x18($sp) +/* 01F14C 7001E54C AFB00014 */ sw $s0, 0x14($sp) +/* 01F150 7001E550 3C0EA460 */ lui $t6, %hi(PI_STATUS_REG) # $t6, 0xa460 +/* 01F154 7001E554 8DD00010 */ lw $s0, %lo(PI_STATUS_REG)($t6) +/* 01F158 7001E558 320F0003 */ andi $t7, $s0, 3 +/* 01F15C 7001E55C 11E00006 */ beqz $t7, .L7001E578 +/* 01F160 7001E560 00000000 */ nop +.L7001E564: +/* 01F164 7001E564 3C18A460 */ lui $t8, %hi(PI_STATUS_REG) # $t8, 0xa460 +/* 01F168 7001E568 8F100010 */ lw $s0, %lo(PI_STATUS_REG)($t8) +/* 01F16C 7001E56C 32190003 */ andi $t9, $s0, 3 +/* 01F170 7001E570 1720FFFC */ bnez $t9, .L7001E564 +/* 01F174 7001E574 00000000 */ nop +.L7001E578: +/* 01F178 7001E578 0C003A2C */ jal osVirtualToPhysical +/* 01F17C 7001E57C 8FA40034 */ lw $a0, 0x34($sp) +/* 01F180 7001E580 3C08A460 */ lui $t0, 0xa460 +/* 01F184 7001E584 AD020000 */ sw $v0, ($t0) +/* 01F188 7001E588 8FA90028 */ lw $t1, 0x28($sp) +/* 01F18C 7001E58C 8FAB0030 */ lw $t3, 0x30($sp) +/* 01F190 7001E590 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff +/* 01F194 7001E594 8D2A000C */ lw $t2, 0xc($t1) +/* 01F198 7001E598 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01F19C 7001E59C 3C0EA460 */ lui $t6, %hi(PI_CART_ADDR_REG) # $t6, 0xa460 +/* 01F1A0 7001E5A0 014B6025 */ or $t4, $t2, $t3 +/* 01F1A4 7001E5A4 01816824 */ and $t5, $t4, $at +/* 01F1A8 7001E5A8 ADCD0004 */ sw $t5, %lo(PI_CART_ADDR_REG)($t6) +/* 01F1AC 7001E5AC 8FB1002C */ lw $s1, 0x2c($sp) +/* 01F1B0 7001E5B0 12200005 */ beqz $s1, .L7001E5C8 +/* 01F1B4 7001E5B4 24010001 */ li $at, 1 +/* 01F1B8 7001E5B8 12210008 */ beq $s1, $at, .L7001E5DC +/* 01F1BC 7001E5BC 00000000 */ nop +/* 01F1C0 7001E5C0 1000000B */ b .L7001E5F0 +/* 01F1C4 7001E5C4 00000000 */ nop +.L7001E5C8: +/* 01F1C8 7001E5C8 8FAF0038 */ lw $t7, 0x38($sp) +/* 01F1CC 7001E5CC 3C19A460 */ lui $t9, %hi(PI_WR_LEN_REG) # $t9, 0xa460 +/* 01F1D0 7001E5D0 25F8FFFF */ addiu $t8, $t7, -1 +/* 01F1D4 7001E5D4 10000008 */ b .L7001E5F8 +/* 01F1D8 7001E5D8 AF38000C */ sw $t8, %lo(PI_WR_LEN_REG)($t9) +.L7001E5DC: +/* 01F1DC 7001E5DC 8FA80038 */ lw $t0, 0x38($sp) +/* 01F1E0 7001E5E0 3C0AA460 */ lui $t2, %hi(PI_RD_LEN_REG) # $t2, 0xa460 +/* 01F1E4 7001E5E4 2509FFFF */ addiu $t1, $t0, -1 +/* 01F1E8 7001E5E8 10000003 */ b .L7001E5F8 +/* 01F1EC 7001E5EC AD490008 */ sw $t1, %lo(PI_RD_LEN_REG)($t2) +.L7001E5F0: +/* 01F1F0 7001E5F0 10000002 */ b .L7001E5FC +/* 01F1F4 7001E5F4 2402FFFF */ li $v0, -1 +.L7001E5F8: +/* 01F1F8 7001E5F8 00001025 */ move $v0, $zero +.L7001E5FC: +/* 01F1FC 7001E5FC 8FBF001C */ lw $ra, 0x1c($sp) +/* 01F200 7001E600 8FB00014 */ lw $s0, 0x14($sp) +/* 01F204 7001E604 8FB10018 */ lw $s1, 0x18($sp) +/* 01F208 7001E608 03E00008 */ jr $ra +/* 01F20C 7001E60C 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/epirawwrite.s b/src/libultra/epirawwrite.s new file mode 100644 index 0000000..9bf099a --- /dev/null +++ b/src/libultra/epirawwrite.s @@ -0,0 +1,36 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osEPiRawWriteIo +/* 021940 70020D40 3C0EA460 */ lui $t6, %hi(PI_STATUS_REG) # $t6, 0xa460 +/* 021944 70020D44 8DC70010 */ lw $a3, %lo(PI_STATUS_REG)($t6) +/* 021948 70020D48 27BDFFF8 */ addiu $sp, $sp, -8 +/* 02194C 70020D4C 30EF0003 */ andi $t7, $a3, 3 +/* 021950 70020D50 11E00006 */ beqz $t7, .L70020D6C +/* 021954 70020D54 00000000 */ nop +.L70020D58: +/* 021958 70020D58 3C18A460 */ lui $t8, %hi(PI_STATUS_REG) # $t8, 0xa460 +/* 02195C 70020D5C 8F070010 */ lw $a3, %lo(PI_STATUS_REG)($t8) +/* 021960 70020D60 30F90003 */ andi $t9, $a3, 3 +/* 021964 70020D64 1720FFFC */ bnez $t9, .L70020D58 +/* 021968 70020D68 00000000 */ nop +.L70020D6C: +/* 02196C 70020D6C 8C88000C */ lw $t0, 0xc($a0) +/* 021970 70020D70 3C01A000 */ lui $at, 0xa000 +/* 021974 70020D74 27BD0008 */ addiu $sp, $sp, 8 +/* 021978 70020D78 01054825 */ or $t1, $t0, $a1 +/* 02197C 70020D7C 01215025 */ or $t2, $t1, $at +/* 021980 70020D80 AD460000 */ sw $a2, ($t2) +/* 021984 70020D84 03E00008 */ jr $ra +/* 021988 70020D88 00001025 */ move $v0, $zero + diff --git a/src/libultra/event.s b/src/libultra/event.s new file mode 100644 index 0000000..af9e72b --- /dev/null +++ b/src/libultra/event.s @@ -0,0 +1,244 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alEvtqFlushType +/* 0139E0 70012DE0 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0139E4 70012DE4 AFB30020 */ sw $s3, 0x20($sp) +/* 0139E8 70012DE8 00059C00 */ sll $s3, $a1, 0x10 +/* 0139EC 70012DEC AFB2001C */ sw $s2, 0x1c($sp) +/* 0139F0 70012DF0 00809025 */ move $s2, $a0 +/* 0139F4 70012DF4 00137403 */ sra $t6, $s3, 0x10 +/* 0139F8 70012DF8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0139FC 70012DFC 01C09825 */ move $s3, $t6 +/* 013A00 70012E00 AFB10018 */ sw $s1, 0x18($sp) +/* 013A04 70012E04 AFB00014 */ sw $s0, 0x14($sp) +/* 013A08 70012E08 AFA50044 */ sw $a1, 0x44($sp) +/* 013A0C 70012E0C 0C00374C */ jal osSetIntMask +/* 013A10 70012E10 24040001 */ li $a0, 1 +/* 013A14 70012E14 AFA2002C */ sw $v0, 0x2c($sp) +/* 013A18 70012E18 8E500008 */ lw $s0, 8($s2) +/* 013A1C 70012E1C 12000012 */ beqz $s0, .L70012E68 +/* 013A20 70012E20 00000000 */ nop +.L70012E24: +/* 013A24 70012E24 860F000C */ lh $t7, 0xc($s0) +/* 013A28 70012E28 8E110000 */ lw $s1, ($s0) +/* 013A2C 70012E2C 166F000C */ bne $s3, $t7, .L70012E60 +/* 013A30 70012E30 00000000 */ nop +/* 013A34 70012E34 12200005 */ beqz $s1, .L70012E4C +/* 013A38 70012E38 00000000 */ nop +/* 013A3C 70012E3C 8E380008 */ lw $t8, 8($s1) +/* 013A40 70012E40 8E190008 */ lw $t9, 8($s0) +/* 013A44 70012E44 03194021 */ addu $t0, $t8, $t9 +/* 013A48 70012E48 AE280008 */ sw $t0, 8($s1) +.L70012E4C: +/* 013A4C 70012E4C 0C003AA4 */ jal alUnlink +/* 013A50 70012E50 02002025 */ move $a0, $s0 +/* 013A54 70012E54 02002025 */ move $a0, $s0 +/* 013A58 70012E58 0C003AB0 */ jal alLink +/* 013A5C 70012E5C 02402825 */ move $a1, $s2 +.L70012E60: +/* 013A60 70012E60 1620FFF0 */ bnez $s1, .L70012E24 +/* 013A64 70012E64 02208025 */ move $s0, $s1 +.L70012E68: +/* 013A68 70012E68 0C00374C */ jal osSetIntMask +/* 013A6C 70012E6C 8FA4002C */ lw $a0, 0x2c($sp) +/* 013A70 70012E70 8FBF0024 */ lw $ra, 0x24($sp) +/* 013A74 70012E74 8FB00014 */ lw $s0, 0x14($sp) +/* 013A78 70012E78 8FB10018 */ lw $s1, 0x18($sp) +/* 013A7C 70012E7C 8FB2001C */ lw $s2, 0x1c($sp) +/* 013A80 70012E80 8FB30020 */ lw $s3, 0x20($sp) +/* 013A84 70012E84 03E00008 */ jr $ra +/* 013A88 70012E88 27BD0040 */ addiu $sp, $sp, 0x40 + +glabel alEvtqFlush +/* 013A8C 70012E8C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 013A90 70012E90 AFB20020 */ sw $s2, 0x20($sp) +/* 013A94 70012E94 00809025 */ move $s2, $a0 +/* 013A98 70012E98 AFBF0024 */ sw $ra, 0x24($sp) +/* 013A9C 70012E9C AFB1001C */ sw $s1, 0x1c($sp) +/* 013AA0 70012EA0 AFB00018 */ sw $s0, 0x18($sp) +/* 013AA4 70012EA4 0C00374C */ jal osSetIntMask +/* 013AA8 70012EA8 24040001 */ li $a0, 1 +/* 013AAC 70012EAC AFA2002C */ sw $v0, 0x2c($sp) +/* 013AB0 70012EB0 8E500008 */ lw $s0, 8($s2) +/* 013AB4 70012EB4 12000009 */ beqz $s0, .L70012EDC +/* 013AB8 70012EB8 00000000 */ nop +.L70012EBC: +/* 013ABC 70012EBC 8E110000 */ lw $s1, ($s0) +/* 013AC0 70012EC0 0C003AA4 */ jal alUnlink +/* 013AC4 70012EC4 02002025 */ move $a0, $s0 +/* 013AC8 70012EC8 02002025 */ move $a0, $s0 +/* 013ACC 70012ECC 0C003AB0 */ jal alLink +/* 013AD0 70012ED0 02402825 */ move $a1, $s2 +/* 013AD4 70012ED4 1620FFF9 */ bnez $s1, .L70012EBC +/* 013AD8 70012ED8 02208025 */ move $s0, $s1 +.L70012EDC: +/* 013ADC 70012EDC 0C00374C */ jal osSetIntMask +/* 013AE0 70012EE0 8FA4002C */ lw $a0, 0x2c($sp) +/* 013AE4 70012EE4 8FBF0024 */ lw $ra, 0x24($sp) +/* 013AE8 70012EE8 8FB00018 */ lw $s0, 0x18($sp) +/* 013AEC 70012EEC 8FB1001C */ lw $s1, 0x1c($sp) +/* 013AF0 70012EF0 8FB20020 */ lw $s2, 0x20($sp) +/* 013AF4 70012EF4 03E00008 */ jr $ra +/* 013AF8 70012EF8 27BD0038 */ addiu $sp, $sp, 0x38 + +glabel alEvtqPostEvent +/* 013AFC 70012EFC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 013B00 70012F00 AFBF0014 */ sw $ra, 0x14($sp) +/* 013B04 70012F04 AFA40030 */ sw $a0, 0x30($sp) +/* 013B08 70012F08 AFA50034 */ sw $a1, 0x34($sp) +/* 013B0C 70012F0C AFA00020 */ sw $zero, 0x20($sp) +/* 013B10 70012F10 24040001 */ li $a0, 1 +/* 013B14 70012F14 0C00374C */ jal osSetIntMask +/* 013B18 70012F18 AFA60038 */ sw $a2, 0x38($sp) +/* 013B1C 70012F1C 8FAE0030 */ lw $t6, 0x30($sp) +/* 013B20 70012F20 8FA70038 */ lw $a3, 0x38($sp) +/* 013B24 70012F24 00402825 */ move $a1, $v0 +/* 013B28 70012F28 8DC80000 */ lw $t0, ($t6) +/* 013B2C 70012F2C 15000005 */ bnez $t0, .L70012F44 +/* 013B30 70012F30 01002025 */ move $a0, $t0 +/* 013B34 70012F34 0C00374C */ jal osSetIntMask +/* 013B38 70012F38 00402025 */ move $a0, $v0 +/* 013B3C 70012F3C 10000035 */ b .L70013014 +/* 013B40 70012F40 8FBF0014 */ lw $ra, 0x14($sp) +.L70012F44: +/* 013B44 70012F44 AFA5001C */ sw $a1, 0x1c($sp) +/* 013B48 70012F48 AFA70038 */ sw $a3, 0x38($sp) +/* 013B4C 70012F4C 0C003AA4 */ jal alUnlink +/* 013B50 70012F50 AFA8002C */ sw $t0, 0x2c($sp) +/* 013B54 70012F54 8FA8002C */ lw $t0, 0x2c($sp) +/* 013B58 70012F58 8FA40034 */ lw $a0, 0x34($sp) +/* 013B5C 70012F5C 24060010 */ li $a2, 16 +/* 013B60 70012F60 0C0075A4 */ jal alCopy +/* 013B64 70012F64 2505000C */ addiu $a1, $t0, 0xc +/* 013B68 70012F68 8FA70038 */ lw $a3, 0x38($sp) +/* 013B6C 70012F6C 3C017FFF */ lui $at, (0x7FFFFFFF >> 16) # lui $at, 0x7fff +/* 013B70 70012F70 3421FFFF */ ori $at, (0x7FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 013B74 70012F74 14E10003 */ bne $a3, $at, .L70012F84 +/* 013B78 70012F78 8FA8002C */ lw $t0, 0x2c($sp) +/* 013B7C 70012F7C 240FFFFF */ li $t7, -1 +/* 013B80 70012F80 AFAF0020 */ sw $t7, 0x20($sp) +.L70012F84: +/* 013B84 70012F84 8FA20030 */ lw $v0, 0x30($sp) +/* 013B88 70012F88 2401FFF8 */ li $at, -8 +/* 013B8C 70012F8C 8FB80020 */ lw $t8, 0x20($sp) +/* 013B90 70012F90 1041001D */ beq $v0, $at, .L70013008 +/* 013B94 70012F94 24450008 */ addiu $a1, $v0, 8 +.L70012F98: +/* 013B98 70012F98 8CA20000 */ lw $v0, ($a1) +/* 013B9C 70012F9C 5440000B */ bnezl $v0, .L70012FCC +/* 013BA0 70012FA0 8C430008 */ lw $v1, 8($v0) +/* 013BA4 70012FA4 53000004 */ beql $t8, $zero, .L70012FB8 +/* 013BA8 70012FA8 AD070008 */ sw $a3, 8($t0) +/* 013BAC 70012FAC 10000002 */ b .L70012FB8 +/* 013BB0 70012FB0 AD000008 */ sw $zero, 8($t0) +/* 013BB4 70012FB4 AD070008 */ sw $a3, 8($t0) +.L70012FB8: +/* 013BB8 70012FB8 0C003AB0 */ jal alLink +/* 013BBC 70012FBC 01002025 */ move $a0, $t0 +/* 013BC0 70012FC0 10000011 */ b .L70013008 +/* 013BC4 70012FC4 00000000 */ nop +/* 013BC8 70012FC8 8C430008 */ lw $v1, 8($v0) +.L70012FCC: +/* 013BCC 70012FCC 00403025 */ move $a2, $v0 +/* 013BD0 70012FD0 00E3082A */ slt $at, $a3, $v1 +/* 013BD4 70012FD4 5020000A */ beql $at, $zero, .L70013000 +/* 013BD8 70012FD8 00402825 */ move $a1, $v0 +/* 013BDC 70012FDC AD070008 */ sw $a3, 8($t0) +/* 013BE0 70012FE0 8CD90008 */ lw $t9, 8($a2) +/* 013BE4 70012FE4 01002025 */ move $a0, $t0 +/* 013BE8 70012FE8 03274823 */ subu $t1, $t9, $a3 +/* 013BEC 70012FEC 0C003AB0 */ jal alLink +/* 013BF0 70012FF0 ACC90008 */ sw $t1, 8($a2) +/* 013BF4 70012FF4 10000004 */ b .L70013008 +/* 013BF8 70012FF8 00000000 */ nop +/* 013BFC 70012FFC 00402825 */ move $a1, $v0 +.L70013000: +/* 013C00 70013000 1440FFE5 */ bnez $v0, .L70012F98 +/* 013C04 70013004 00E33823 */ subu $a3, $a3, $v1 +.L70013008: +/* 013C08 70013008 0C00374C */ jal osSetIntMask +/* 013C0C 7001300C 8FA4001C */ lw $a0, 0x1c($sp) +/* 013C10 70013010 8FBF0014 */ lw $ra, 0x14($sp) +.L70013014: +/* 013C14 70013014 27BD0030 */ addiu $sp, $sp, 0x30 +/* 013C18 70013018 03E00008 */ jr $ra +/* 013C1C 7001301C 00000000 */ nop + +glabel alEvtqNextEvent +/* 013C20 70013020 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 013C24 70013024 AFBF001C */ sw $ra, 0x1c($sp) +/* 013C28 70013028 AFA40030 */ sw $a0, 0x30($sp) +/* 013C2C 7001302C AFB00018 */ sw $s0, 0x18($sp) +/* 013C30 70013030 AFA50034 */ sw $a1, 0x34($sp) +/* 013C34 70013034 0C00374C */ jal osSetIntMask +/* 013C38 70013038 24040001 */ li $a0, 1 +/* 013C3C 7001303C 8FAE0030 */ lw $t6, 0x30($sp) +/* 013C40 70013040 AFA20024 */ sw $v0, 0x24($sp) +/* 013C44 70013044 8FB80034 */ lw $t8, 0x34($sp) +/* 013C48 70013048 8DD00008 */ lw $s0, 8($t6) +/* 013C4C 7001304C 00001825 */ move $v1, $zero +/* 013C50 70013050 5200000D */ beql $s0, $zero, .L70013088 +/* 013C54 70013054 240FFFFF */ li $t7, -1 +/* 013C58 70013058 0C003AA4 */ jal alUnlink +/* 013C5C 7001305C 02002025 */ move $a0, $s0 +/* 013C60 70013060 2604000C */ addiu $a0, $s0, 0xc +/* 013C64 70013064 8FA50034 */ lw $a1, 0x34($sp) +/* 013C68 70013068 0C0075A4 */ jal alCopy +/* 013C6C 7001306C 24060010 */ li $a2, 16 +/* 013C70 70013070 02002025 */ move $a0, $s0 +/* 013C74 70013074 0C003AB0 */ jal alLink +/* 013C78 70013078 8FA50030 */ lw $a1, 0x30($sp) +/* 013C7C 7001307C 10000003 */ b .L7001308C +/* 013C80 70013080 8E030008 */ lw $v1, 8($s0) +/* 013C84 70013084 240FFFFF */ li $t7, -1 +.L70013088: +/* 013C88 70013088 A70F0000 */ sh $t7, ($t8) +.L7001308C: +/* 013C8C 7001308C 8FA40024 */ lw $a0, 0x24($sp) +/* 013C90 70013090 0C00374C */ jal osSetIntMask +/* 013C94 70013094 AFA30028 */ sw $v1, 0x28($sp) +/* 013C98 70013098 8FBF001C */ lw $ra, 0x1c($sp) +/* 013C9C 7001309C 8FA20028 */ lw $v0, 0x28($sp) +/* 013CA0 700130A0 8FB00018 */ lw $s0, 0x18($sp) +/* 013CA4 700130A4 03E00008 */ jr $ra +/* 013CA8 700130A8 27BD0030 */ addiu $sp, $sp, 0x30 + +glabel alEvtqNew +/* 013CAC 700130AC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 013CB0 700130B0 AFB30020 */ sw $s3, 0x20($sp) +/* 013CB4 700130B4 AFB2001C */ sw $s2, 0x1c($sp) +/* 013CB8 700130B8 AFB00014 */ sw $s0, 0x14($sp) +/* 013CBC 700130BC AFBF0024 */ sw $ra, 0x24($sp) +/* 013CC0 700130C0 AFB10018 */ sw $s1, 0x18($sp) +/* 013CC4 700130C4 00809025 */ move $s2, $a0 +/* 013CC8 700130C8 00C09825 */ move $s3, $a2 +/* 013CCC 700130CC AC800010 */ sw $zero, 0x10($a0) +/* 013CD0 700130D0 AC800008 */ sw $zero, 8($a0) +/* 013CD4 700130D4 AC80000C */ sw $zero, 0xc($a0) +/* 013CD8 700130D8 AC800000 */ sw $zero, ($a0) +/* 013CDC 700130DC AC800004 */ sw $zero, 4($a0) +/* 013CE0 700130E0 18C00008 */ blez $a2, .L70013104 +/* 013CE4 700130E4 00008025 */ move $s0, $zero +/* 013CE8 700130E8 00A08825 */ move $s1, $a1 +.L700130EC: +/* 013CEC 700130EC 02202025 */ move $a0, $s1 +/* 013CF0 700130F0 0C003AB0 */ jal alLink +/* 013CF4 700130F4 02402825 */ move $a1, $s2 +/* 013CF8 700130F8 26100001 */ addiu $s0, $s0, 1 +/* 013CFC 700130FC 1613FFFB */ bne $s0, $s3, .L700130EC +/* 013D00 70013100 2631001C */ addiu $s1, $s1, 0x1c +.L70013104: +/* 013D04 70013104 8FBF0024 */ lw $ra, 0x24($sp) +/* 013D08 70013108 8FB00014 */ lw $s0, 0x14($sp) +/* 013D0C 7001310C 8FB10018 */ lw $s1, 0x18($sp) +/* 013D10 70013110 8FB2001C */ lw $s2, 0x1c($sp) +/* 013D14 70013114 8FB30020 */ lw $s3, 0x20($sp) +/* 013D18 70013118 03E00008 */ jr $ra +/* 013D1C 7001311C 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/exception.s b/src/libultra/exception.s new file mode 100644 index 0000000..de436cf --- /dev/null +++ b/src/libultra/exception.s @@ -0,0 +1,666 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel __osExceptionPreamble +/* 010D90 70010190 3C1A7001 */ lui $k0, %hi(__osException) # $k0, 0x7001 +/* 010D94 70010194 275A01A0 */ addiu $k0, %lo(__osException) # addiu $k0, $k0, 0x1a0 +/* 010D98 70010198 03400008 */ jr $k0 +/* 010D9C 7001019C 00000000 */ nop +glabel __osException +/* 010DA0 700101A0 3C1A8007 */ lui $k0, %hi(__osThreadSave) # $k0, 0x8007 +/* 010DA4 700101A4 275A8E30 */ addiu $k0, %lo(__osThreadSave) # addiu $k0, $k0, -0x71d0 +/* 010DA8 700101A8 FF410020 */ sd $at, 0x20($k0) +/* 010DAC 700101AC 401B6000 */ mfc0 $k1, $12 +/* 010DB0 700101B0 AF5B0118 */ sw $k1, 0x118($k0) +/* 010DB4 700101B4 2401FFFC */ li $at, -4 +/* 010DB8 700101B8 0361D824 */ and $k1, $k1, $at +/* 010DBC 700101BC 409B6000 */ mtc0 $k1, $12 +/* 010DC0 700101C0 FF480058 */ sd $t0, 0x58($k0) +/* 010DC4 700101C4 FF490060 */ sd $t1, 0x60($k0) +/* 010DC8 700101C8 FF4A0068 */ sd $t2, 0x68($k0) +/* 010DCC 700101CC AF400018 */ sw $zero, 0x18($k0) +/* 010DD0 700101D0 40086800 */ mfc0 $t0, $13 +/* 010DD4 700101D4 03404025 */ move $t0, $k0 +/* 010DD8 700101D8 3C1A8002 */ lui $k0, %hi(__osRunningThread) # $k0, 0x8002 +/* 010DDC 700101DC 8F5A7730 */ lw $k0, %lo(__osRunningThread)($k0) +/* 010DE0 700101E0 DD090020 */ ld $t1, 0x20($t0) +/* 010DE4 700101E4 FF490020 */ sd $t1, 0x20($k0) +/* 010DE8 700101E8 DD090118 */ ld $t1, 0x118($t0) +/* 010DEC 700101EC FF490118 */ sd $t1, 0x118($k0) +/* 010DF0 700101F0 DD090058 */ ld $t1, 0x58($t0) +/* 010DF4 700101F4 FF490058 */ sd $t1, 0x58($k0) +/* 010DF8 700101F8 DD090060 */ ld $t1, 0x60($t0) +/* 010DFC 700101FC FF490060 */ sd $t1, 0x60($k0) +/* 010E00 70010200 DD090068 */ ld $t1, 0x68($t0) +/* 010E04 70010204 FF490068 */ sd $t1, 0x68($k0) +/* 010E08 70010208 8F5B0118 */ lw $k1, 0x118($k0) +/* 010E0C 7001020C 00004012 */ mflo $t0 +/* 010E10 70010210 FF480108 */ sd $t0, 0x108($k0) +/* 010E14 70010214 00004010 */ mfhi $t0 +/* 010E18 70010218 3369FF00 */ andi $t1, $k1, 0xff00 +/* 010E1C 7001021C FF420028 */ sd $v0, 0x28($k0) +/* 010E20 70010220 FF430030 */ sd $v1, 0x30($k0) +/* 010E24 70010224 FF440038 */ sd $a0, 0x38($k0) +/* 010E28 70010228 FF450040 */ sd $a1, 0x40($k0) +/* 010E2C 7001022C FF460048 */ sd $a2, 0x48($k0) +/* 010E30 70010230 FF470050 */ sd $a3, 0x50($k0) +/* 010E34 70010234 FF4B0070 */ sd $t3, 0x70($k0) +/* 010E38 70010238 FF4C0078 */ sd $t4, 0x78($k0) +/* 010E3C 7001023C FF4D0080 */ sd $t5, 0x80($k0) +/* 010E40 70010240 FF4E0088 */ sd $t6, 0x88($k0) +/* 010E44 70010244 FF4F0090 */ sd $t7, 0x90($k0) +/* 010E48 70010248 FF500098 */ sd $s0, 0x98($k0) +/* 010E4C 7001024C FF5100A0 */ sd $s1, 0xa0($k0) +/* 010E50 70010250 FF5200A8 */ sd $s2, 0xa8($k0) +/* 010E54 70010254 FF5300B0 */ sd $s3, 0xb0($k0) +/* 010E58 70010258 FF5400B8 */ sd $s4, 0xb8($k0) +/* 010E5C 7001025C FF5500C0 */ sd $s5, 0xc0($k0) +/* 010E60 70010260 FF5600C8 */ sd $s6, 0xc8($k0) +/* 010E64 70010264 FF5700D0 */ sd $s7, 0xd0($k0) +/* 010E68 70010268 FF5800D8 */ sd $t8, 0xd8($k0) +/* 010E6C 7001026C FF5900E0 */ sd $t9, 0xe0($k0) +/* 010E70 70010270 FF5C00E8 */ sd $gp, 0xe8($k0) +/* 010E74 70010274 FF5D00F0 */ sd $sp, 0xf0($k0) +/* 010E78 70010278 FF5E00F8 */ sd $fp, 0xf8($k0) +/* 010E7C 7001027C FF5F0100 */ sd $ra, 0x100($k0) +/* 010E80 70010280 1120000D */ beqz $t1, .L700102B8 +/* 010E84 70010284 FF480110 */ sd $t0, 0x110($k0) +/* 010E88 70010288 3C088002 */ lui $t0, %hi(__OSGlobalIntMask) +/* 010E8C 7001028C 2508698C */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x698c +/* 010E90 70010290 8D080000 */ lw $t0, ($t0) +/* 010E94 70010294 2401FFFF */ li $at, -1 +/* 010E98 70010298 01014026 */ xor $t0, $t0, $at +/* 010E9C 7001029C 3C01FFFF */ lui $at, (0xFFFF00FF >> 16) # lui $at, 0xffff +/* 010EA0 700102A0 3108FF00 */ andi $t0, $t0, 0xff00 +/* 010EA4 700102A4 342100FF */ ori $at, (0xFFFF00FF & 0xFFFF) # ori $at, $at, 0xff +/* 010EA8 700102A8 01284825 */ or $t1, $t1, $t0 +/* 010EAC 700102AC 0361D824 */ and $k1, $k1, $at +/* 010EB0 700102B0 0369D825 */ or $k1, $k1, $t1 +/* 010EB4 700102B4 AF5B0118 */ sw $k1, 0x118($k0) +.L700102B8: +/* 010EB8 700102B8 3C09A430 */ lui $t1, %hi(MI_INTR_MASK_REG) # $t1, 0xa430 +/* 010EBC 700102BC 8D29000C */ lw $t1, %lo(MI_INTR_MASK_REG)($t1) +/* 010EC0 700102C0 1120000B */ beqz $t1, .L700102F0 +/* 010EC4 700102C4 00000000 */ nop +/* 010EC8 700102C8 3C088002 */ lui $t0, %hi(__OSGlobalIntMask) +/* 010ECC 700102CC 2508698C */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x698c +/* 010ED0 700102D0 8D080000 */ lw $t0, ($t0) +/* 010ED4 700102D4 8F4C0128 */ lw $t4, 0x128($k0) +/* 010ED8 700102D8 2401FFFF */ li $at, -1 +/* 010EDC 700102DC 00084402 */ srl $t0, $t0, 0x10 +/* 010EE0 700102E0 01014026 */ xor $t0, $t0, $at +/* 010EE4 700102E4 3108003F */ andi $t0, $t0, 0x3f +/* 010EE8 700102E8 010C4024 */ and $t0, $t0, $t4 +/* 010EEC 700102EC 01284825 */ or $t1, $t1, $t0 +.L700102F0: +/* 010EF0 700102F0 AF490128 */ sw $t1, 0x128($k0) +/* 010EF4 700102F4 40087000 */ mfc0 $t0, $14 +/* 010EF8 700102F8 AF48011C */ sw $t0, 0x11c($k0) +/* 010EFC 700102FC 8F480018 */ lw $t0, 0x18($k0) +/* 010F00 70010300 11000014 */ beqz $t0, .L70010354 +/* 010F04 70010304 00000000 */ nop +/* 010F08 70010308 4448F800 */ cfc1 $t0, $31 +/* 010F0C 7001030C 00000000 */ nop +/* 010F10 70010310 AF48012C */ sw $t0, 0x12c($k0) +/* 010F14 70010314 F7400130 */ sdc1 $f0, 0x130($k0) +/* 010F18 70010318 F7420138 */ sdc1 $f2, 0x138($k0) +/* 010F1C 7001031C F7440140 */ sdc1 $f4, 0x140($k0) +/* 010F20 70010320 F7460148 */ sdc1 $f6, 0x148($k0) +/* 010F24 70010324 F7480150 */ sdc1 $f8, 0x150($k0) +/* 010F28 70010328 F74A0158 */ sdc1 $f10, 0x158($k0) +/* 010F2C 7001032C F74C0160 */ sdc1 $f12, 0x160($k0) +/* 010F30 70010330 F74E0168 */ sdc1 $f14, 0x168($k0) +/* 010F34 70010334 F7500170 */ sdc1 $f16, 0x170($k0) +/* 010F38 70010338 F7520178 */ sdc1 $f18, 0x178($k0) +/* 010F3C 7001033C F7540180 */ sdc1 $f20, 0x180($k0) +/* 010F40 70010340 F7560188 */ sdc1 $f22, 0x188($k0) +/* 010F44 70010344 F7580190 */ sdc1 $f24, 0x190($k0) +/* 010F48 70010348 F75A0198 */ sdc1 $f26, 0x198($k0) +/* 010F4C 7001034C F75C01A0 */ sdc1 $f28, 0x1a0($k0) +/* 010F50 70010350 F75E01A8 */ sdc1 $f30, 0x1a8($k0) +.L70010354: +/* 010F54 70010354 40086800 */ mfc0 $t0, $13 +/* 010F58 70010358 AF480120 */ sw $t0, 0x120($k0) +/* 010F5C 7001035C 24090002 */ li $t1, 2 +/* 010F60 70010360 A7490010 */ sh $t1, 0x10($k0) +/* 010F64 70010364 3109007C */ andi $t1, $t0, 0x7c +/* 010F68 70010368 240A0024 */ li $t2, 36 +/* 010F6C 7001036C 112A00B0 */ beq $t1, $t2, .L70010630 +/* 010F70 70010370 00000000 */ nop +/* 010F74 70010374 240A002C */ li $t2, 44 +/* 010F78 70010378 112A00FF */ beq $t1, $t2, .L70010778 +/* 010F7C 7001037C 00000000 */ nop +/* 010F80 70010380 240A0000 */ li $t2, 0 +/* 010F84 70010384 152A00C3 */ bne $t1, $t2, .L70010694 +/* 010F88 70010388 00000000 */ nop +/* 010F8C 7001038C 03688024 */ and $s0, $k1, $t0 +glabel next_interrupt +.L70010390: +/* 010F90 70010390 3209FF00 */ andi $t1, $s0, 0xff00 +/* 010F94 70010394 00095302 */ srl $t2, $t1, 0xc +/* 010F98 70010398 15400003 */ bnez $t2, .L700103A8 +/* 010F9C 7001039C 00000000 */ nop +/* 010FA0 700103A0 00095202 */ srl $t2, $t1, 8 +/* 010FA4 700103A4 214A0010 */ addi $t2, $t2, 0x10 +.L700103A8: +/* 010FA8 700103A8 3C018003 */ lui $at, %hi(__osIntOffTable) +/* 010FAC 700103AC 002A0821 */ addu $at, $at, $t2 +/* 010FB0 700103B0 902A9440 */ lbu $t2, %lo(__osIntOffTable)($at) +/* 010FB4 700103B4 3C018003 */ lui $at, %hi(__osIntTable) +/* 010FB8 700103B8 002A0821 */ addu $at, $at, $t2 +/* 010FBC 700103BC 8C2A9460 */ lw $t2, %lo(__osIntTable)($at) +/* 010FC0 700103C0 01400008 */ jr $t2 +/* 010FC4 700103C4 00000000 */ nop +glabel IP6_Hdlr +/* 010FC8 700103C8 2401DFFF */ li $at, -8193 +/* 010FCC 700103CC 1000FFF0 */ b .L70010390 +/* 010FD0 700103D0 02018024 */ and $s0, $s0, $at +glabel IP7_Hdlr +/* 010FD4 700103D4 2401BFFF */ li $at, -16385 +/* 010FD8 700103D8 1000FFED */ b .L70010390 +/* 010FDC 700103DC 02018024 */ and $s0, $s0, $at +glabel counter +/* 010FE0 700103E0 40095800 */ mfc0 $t1, $11 +/* 010FE4 700103E4 40895800 */ mtc0 $t1, $11 +/* 010FE8 700103E8 0C0041B1 */ jal send_mesg +/* 010FEC 700103EC 24040018 */ li $a0, 24 +/* 010FF0 700103F0 3C01FFFF */ lui $at, (0xFFFF7FFF >> 16) # lui $at, 0xffff +/* 010FF4 700103F4 34217FFF */ ori $at, (0xFFFF7FFF & 0xFFFF) # ori $at, $at, 0x7fff +/* 010FF8 700103F8 1000FFE5 */ b .L70010390 +/* 010FFC 700103FC 02018024 */ and $s0, $s0, $at +glabel cart +/* 011000 70010400 2401F7FF */ li $at, -2049 +/* 011004 70010404 02018024 */ and $s0, $s0, $at +/* 011008 70010408 240A0004 */ li $t2, 4 +/* 01100C 7001040C 3C018002 */ lui $at, %hi(__osHwIntTable) +/* 011010 70010410 002A0821 */ addu $at, $at, $t2 +/* 011014 70010414 8C2A7700 */ lw $t2, %lo(__osHwIntTable)($at) +/* 011018 70010418 3C1D8006 */ lui $sp, %hi(leoDiskStack) # $sp, 0x8006 +/* 01101C 7001041C 27BD7DF0 */ addiu $sp, %lo(leoDiskStack) # addiu $sp, $sp, 0x7df0 +/* 011020 70010420 24040010 */ li $a0, 16 +/* 011024 70010424 11400007 */ beqz $t2, .L70010444 +/* 011028 70010428 27BD0FF0 */ addiu $sp, $sp, 0xff0 +/* 01102C 7001042C 0140F809 */ jalr $t2 +/* 011030 70010430 00000000 */ nop +/* 011034 70010434 10400003 */ beqz $v0, .L70010444 +/* 011038 70010438 00000000 */ nop +/* 01103C 7001043C 10000082 */ b .L70010648 +/* 011040 70010440 00000000 */ nop +.L70010444: +/* 011044 70010444 0C0041B1 */ jal send_mesg +/* 011048 70010448 00000000 */ nop +/* 01104C 7001044C 1000FFD0 */ b .L70010390 +/* 011050 70010450 00000000 */ nop +glabel rcp +/* 011054 70010454 3C088002 */ lui $t0, %hi(__OSGlobalIntMask) +/* 011058 70010458 2508698C */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x698c +/* 01105C 7001045C 8D080000 */ lw $t0, ($t0) +/* 011060 70010460 3C11A430 */ lui $s1, %hi(MI_INTR_REG) # $s1, 0xa430 +/* 011064 70010464 8E310008 */ lw $s1, %lo(MI_INTR_REG)($s1) +/* 011068 70010468 00084402 */ srl $t0, $t0, 0x10 +/* 01106C 7001046C 02288824 */ and $s1, $s1, $t0 +/* 011070 70010470 32290001 */ andi $t1, $s1, 1 +/* 011074 70010474 11200013 */ beqz $t1, .L700104C4 +/* 011078 70010478 00000000 */ nop +/* 01107C 7001047C 3C0CA404 */ lui $t4, %hi(SP_STATUS_REG) # $t4, 0xa404 +/* 011080 70010480 8D8C0010 */ lw $t4, %lo(SP_STATUS_REG)($t4) +/* 011084 70010484 24090008 */ li $t1, 8 +/* 011088 70010488 3C01A404 */ lui $at, %hi(SP_STATUS_REG) # $at, 0xa404 +/* 01108C 7001048C 318C0300 */ andi $t4, $t4, 0x300 +/* 011090 70010490 3231003E */ andi $s1, $s1, 0x3e +/* 011094 70010494 11800007 */ beqz $t4, .L700104B4 +/* 011098 70010498 AC290010 */ sw $t1, %lo(SP_STATUS_REG)($at) +/* 01109C 7001049C 0C0041B1 */ jal send_mesg +/* 0110A0 700104A0 24040020 */ li $a0, 32 +/* 0110A4 700104A4 12200038 */ beqz $s1, .L70010588 +/* 0110A8 700104A8 00000000 */ nop +/* 0110AC 700104AC 10000005 */ b .L700104C4 +/* 0110B0 700104B0 00000000 */ nop +.L700104B4: +/* 0110B4 700104B4 0C0041B1 */ jal send_mesg +/* 0110B8 700104B8 24040058 */ li $a0, 88 +/* 0110BC 700104BC 12200032 */ beqz $s1, .L70010588 +/* 0110C0 700104C0 00000000 */ nop +.L700104C4: +/* 0110C4 700104C4 32290008 */ andi $t1, $s1, 8 +/* 0110C8 700104C8 11200007 */ beqz $t1, .L700104E8 +/* 0110CC 700104CC 3C01A440 */ lui $at, %hi(VI_CURRENT_REG) # $at, 0xa440 +/* 0110D0 700104D0 32310037 */ andi $s1, $s1, 0x37 +/* 0110D4 700104D4 AC200010 */ sw $zero, %lo(VI_CURRENT_REG)($at) +/* 0110D8 700104D8 0C0041B1 */ jal send_mesg +/* 0110DC 700104DC 24040038 */ li $a0, 56 +/* 0110E0 700104E0 12200029 */ beqz $s1, .L70010588 +/* 0110E4 700104E4 00000000 */ nop +.L700104E8: +/* 0110E8 700104E8 32290004 */ andi $t1, $s1, 4 +/* 0110EC 700104EC 11200009 */ beqz $t1, .L70010514 +/* 0110F0 700104F0 00000000 */ nop +/* 0110F4 700104F4 24090001 */ li $t1, 1 +/* 0110F8 700104F8 3C01A450 */ lui $at, %hi(AI_STATUS_REG) # $at, 0xa450 +/* 0110FC 700104FC 3231003B */ andi $s1, $s1, 0x3b +/* 011100 70010500 AC29000C */ sw $t1, %lo(AI_STATUS_REG)($at) +/* 011104 70010504 0C0041B1 */ jal send_mesg +/* 011108 70010508 24040030 */ li $a0, 48 +/* 01110C 7001050C 1220001E */ beqz $s1, .L70010588 +/* 011110 70010510 00000000 */ nop +.L70010514: +/* 011114 70010514 32290002 */ andi $t1, $s1, 2 +/* 011118 70010518 11200007 */ beqz $t1, .L70010538 +/* 01111C 7001051C 3C01A480 */ lui $at, %hi(SI_STATUS_REG) # $at, 0xa480 +/* 011120 70010520 3231003D */ andi $s1, $s1, 0x3d +/* 011124 70010524 AC200018 */ sw $zero, %lo(SI_STATUS_REG)($at) +/* 011128 70010528 0C0041B1 */ jal send_mesg +/* 01112C 7001052C 24040028 */ li $a0, 40 +/* 011130 70010530 12200015 */ beqz $s1, .L70010588 +/* 011134 70010534 00000000 */ nop +.L70010538: +/* 011138 70010538 32290010 */ andi $t1, $s1, 0x10 +/* 01113C 7001053C 11200009 */ beqz $t1, .L70010564 +/* 011140 70010540 00000000 */ nop +/* 011144 70010544 24090002 */ li $t1, 2 +/* 011148 70010548 3C01A460 */ lui $at, %hi(PI_STATUS_REG) # $at, 0xa460 +/* 01114C 7001054C 3231002F */ andi $s1, $s1, 0x2f +/* 011150 70010550 AC290010 */ sw $t1, %lo(PI_STATUS_REG)($at) +/* 011154 70010554 0C0041B1 */ jal send_mesg +/* 011158 70010558 24040040 */ li $a0, 64 +/* 01115C 7001055C 1220000A */ beqz $s1, .L70010588 +/* 011160 70010560 00000000 */ nop +.L70010564: +/* 011164 70010564 32290020 */ andi $t1, $s1, 0x20 +/* 011168 70010568 11200007 */ beqz $t1, .L70010588 +/* 01116C 7001056C 00000000 */ nop +/* 011170 70010570 24090800 */ li $t1, 2048 +/* 011174 70010574 3C01A430 */ lui $at, 0xa430 +/* 011178 70010578 3231001F */ andi $s1, $s1, 0x1f +/* 01117C 7001057C AC290000 */ sw $t1, ($at) +/* 011180 70010580 0C0041B1 */ jal send_mesg +/* 011184 70010584 24040048 */ li $a0, 72 +.L70010588: +/* 011188 70010588 2401FBFF */ li $at, -1025 +/* 01118C 7001058C 1000FF80 */ b .L70010390 +/* 011190 70010590 02018024 */ and $s0, $s0, $at +glabel prenmi +/* 011194 70010594 8F5B0118 */ lw $k1, 0x118($k0) +/* 011198 70010598 2401EFFF */ li $at, -4097 +/* 01119C 7001059C 3C098002 */ lui $t1, %hi(__osShutdown) +/* 0111A0 700105A0 0361D824 */ and $k1, $k1, $at +/* 0111A4 700105A4 AF5B0118 */ sw $k1, 0x118($k0) +/* 0111A8 700105A8 25296988 */ addiu $t1, %lo(__osShutdown) # addiu $t1, $t1, 0x6988 +/* 0111AC 700105AC 8D2A0000 */ lw $t2, ($t1) +/* 0111B0 700105B0 11400003 */ beqz $t2, .L700105C0 +/* 0111B4 700105B4 2401EFFF */ li $at, -4097 +/* 0111B8 700105B8 10000023 */ b .L70010648 +/* 0111BC 700105BC 02018024 */ and $s0, $s0, $at +.L700105C0: +/* 0111C0 700105C0 240A0001 */ li $t2, 1 +/* 0111C4 700105C4 AD2A0000 */ sw $t2, ($t1) +/* 0111C8 700105C8 0C0041B1 */ jal send_mesg +/* 0111CC 700105CC 24040070 */ li $a0, 112 +/* 0111D0 700105D0 3C0A8002 */ lui $t2, %hi(__osRunQueue) +/* 0111D4 700105D4 8D4A7728 */ lw $t2, %lo(__osRunQueue)($t2) +/* 0111D8 700105D8 2401EFFF */ li $at, -4097 +/* 0111DC 700105DC 02018024 */ and $s0, $s0, $at +/* 0111E0 700105E0 8D5B0118 */ lw $k1, 0x118($t2) +/* 0111E4 700105E4 0361D824 */ and $k1, $k1, $at +/* 0111E8 700105E8 10000017 */ b .L70010648 +/* 0111EC 700105EC AD5B0118 */ sw $k1, 0x118($t2) +glabel sw2 +/* 0111F0 700105F0 2401FDFF */ li $at, -513 +/* 0111F4 700105F4 01014024 */ and $t0, $t0, $at +/* 0111F8 700105F8 40886800 */ mtc0 $t0, $13 +/* 0111FC 700105FC 0C0041B1 */ jal send_mesg +/* 011200 70010600 24040008 */ li $a0, 8 +/* 011204 70010604 2401FDFF */ li $at, -513 +/* 011208 70010608 1000FF61 */ b .L70010390 +/* 01120C 7001060C 02018024 */ and $s0, $s0, $at +glabel swl +/* 011210 70010610 2401FEFF */ li $at, -257 +/* 011214 70010614 01014024 */ and $t0, $t0, $at +/* 011218 70010618 40886800 */ mtc0 $t0, $13 +/* 01121C 7001061C 0C0041B1 */ jal send_mesg +/* 011220 70010620 24040000 */ li $a0, 0 +/* 011224 70010624 2401FEFF */ li $at, -257 +/* 011228 70010628 1000FF59 */ b .L70010390 +/* 01122C 7001062C 02018024 */ and $s0, $s0, $at +.L70010630: +/* 011230 70010630 24090001 */ li $t1, 1 +/* 011234 70010634 A7490012 */ sh $t1, 0x12($k0) +/* 011238 70010638 0C0041B1 */ jal send_mesg +/* 01123C 7001063C 24040050 */ li $a0, 80 +/* 011240 70010640 10000001 */ b .L70010648 +/* 011244 70010644 00000000 */ nop +glabel redispatch +.L70010648: +/* 011248 70010648 3C0A8002 */ lui $t2, %hi(__osRunQueue) +/* 01124C 7001064C 8D4A7728 */ lw $t2, %lo(__osRunQueue)($t2) +/* 011250 70010650 8F490004 */ lw $t1, 4($k0) +/* 011254 70010654 8D4B0004 */ lw $t3, 4($t2) +/* 011258 70010658 012B082A */ slt $at, $t1, $t3 +/* 01125C 7001065C 10200007 */ beqz $at, .L7001067C +/* 011260 70010660 00000000 */ nop +/* 011264 70010664 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 011268 70010668 03402825 */ move $a1, $k0 +/* 01126C 7001066C 0C00422B */ jal __osEnqueueThread +/* 011270 70010670 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +/* 011274 70010674 08004241 */ j __osDispatchThread +/* 011278 70010678 00000000 */ nop + +glabel enqueueRunning +.L7001067C: +/* 01127C 7001067C 3C098002 */ lui $t1, %hi(__osRunQueue) +/* 011280 70010680 25297728 */ addiu $t1, %lo(__osRunQueue) # addiu $t1, $t1, 0x7728 +/* 011284 70010684 8D2A0000 */ lw $t2, ($t1) +/* 011288 70010688 AF4A0000 */ sw $t2, ($k0) +/* 01128C 7001068C 08004241 */ j __osDispatchThread +/* 011290 70010690 AD3A0000 */ sw $k0, ($t1) + +.L70010694: +/* 011294 70010694 3C018002 */ lui $at, %hi(__osFaultedThread) +/* 011298 70010698 AC3A7734 */ sw $k0, %lo(__osFaultedThread)($at) +/* 01129C 7001069C 24090001 */ li $t1, 1 +/* 0112A0 700106A0 A7490010 */ sh $t1, 0x10($k0) +/* 0112A4 700106A4 24090002 */ li $t1, 2 +/* 0112A8 700106A8 A7490012 */ sh $t1, 0x12($k0) +/* 0112AC 700106AC 400A4000 */ mfc0 $t2, $8 +/* 0112B0 700106B0 AF4A0124 */ sw $t2, 0x124($k0) +/* 0112B4 700106B4 0C0041B1 */ jal send_mesg +/* 0112B8 700106B8 24040060 */ li $a0, 96 +/* 0112BC 700106BC 08004241 */ j __osDispatchThread +/* 0112C0 700106C0 00000000 */ nop + +glabel send_mesg +/* 0112C4 700106C4 3C0A8006 */ lui $t2, %hi(__osEventStateTab) +/* 0112C8 700106C8 254A6A10 */ addiu $t2, %lo(__osEventStateTab) # addiu $t2, $t2, 0x6a10 +/* 0112CC 700106CC 01445021 */ addu $t2, $t2, $a0 +/* 0112D0 700106D0 8D490000 */ lw $t1, ($t2) +/* 0112D4 700106D4 03E09025 */ move $s2, $ra +/* 0112D8 700106D8 11200025 */ beqz $t1, .L70010770 +/* 0112DC 700106DC 00000000 */ nop +/* 0112E0 700106E0 8D2B0008 */ lw $t3, 8($t1) +/* 0112E4 700106E4 8D2C0010 */ lw $t4, 0x10($t1) +/* 0112E8 700106E8 016C082A */ slt $at, $t3, $t4 +/* 0112EC 700106EC 10200020 */ beqz $at, .L70010770 +/* 0112F0 700106F0 00000000 */ nop +/* 0112F4 700106F4 8D2D000C */ lw $t5, 0xc($t1) +/* 0112F8 700106F8 01AB6821 */ addu $t5, $t5, $t3 +/* 0112FC 700106FC 01AC001A */ div $zero, $t5, $t4 +/* 011300 70010700 15800002 */ bnez $t4, .L7001070C +/* 011304 70010704 00000000 */ nop +/* 011308 70010708 0007000D */ break 7 +.L7001070C: +/* 01130C 7001070C 2401FFFF */ li $at, -1 +/* 011310 70010710 15810004 */ bne $t4, $at, .L70010724 +/* 011314 70010714 3C018000 */ lui $at, 0x8000 +/* 011318 70010718 15A10002 */ bne $t5, $at, .L70010724 +/* 01131C 7001071C 00000000 */ nop +/* 011320 70010720 0006000D */ break 6 +.L70010724: +/* 011324 70010724 8D2C0014 */ lw $t4, 0x14($t1) +/* 011328 70010728 00006810 */ mfhi $t5 +/* 01132C 7001072C 000D6880 */ sll $t5, $t5, 2 +/* 011330 70010730 018D6021 */ addu $t4, $t4, $t5 +/* 011334 70010734 8D4D0004 */ lw $t5, 4($t2) +/* 011338 70010738 256A0001 */ addiu $t2, $t3, 1 +/* 01133C 7001073C AD8D0000 */ sw $t5, ($t4) +/* 011340 70010740 AD2A0008 */ sw $t2, 8($t1) +/* 011344 70010744 8D2A0000 */ lw $t2, ($t1) +/* 011348 70010748 8D4B0000 */ lw $t3, ($t2) +/* 01134C 7001074C 11600008 */ beqz $t3, .L70010770 +/* 011350 70010750 00000000 */ nop +/* 011354 70010754 0C00423D */ jal __osPopThread +/* 011358 70010758 01202025 */ move $a0, $t1 +/* 01135C 7001075C 00405025 */ move $t2, $v0 +/* 011360 70010760 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 011364 70010764 01402825 */ move $a1, $t2 +/* 011368 70010768 0C00422B */ jal __osEnqueueThread +/* 01136C 7001076C 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +.L70010770: +/* 011370 70010770 02400008 */ jr $s2 +/* 011374 70010774 00000000 */ nop +glabel handle_CpU +.L70010778: +/* 011378 70010778 3C013000 */ lui $at, 0x3000 +/* 01137C 7001077C 01014824 */ and $t1, $t0, $at +/* 011380 70010780 00094F02 */ srl $t1, $t1, 0x1c +/* 011384 70010784 240A0001 */ li $t2, 1 +/* 011388 70010788 152AFFC2 */ bne $t1, $t2, .L70010694 +/* 01138C 7001078C 00000000 */ nop +/* 011390 70010790 8F5B0118 */ lw $k1, 0x118($k0) +/* 011394 70010794 3C012000 */ lui $at, 0x2000 +/* 011398 70010798 24090001 */ li $t1, 1 +/* 01139C 7001079C 0361D825 */ or $k1, $k1, $at +/* 0113A0 700107A0 AF490018 */ sw $t1, 0x18($k0) +/* 0113A4 700107A4 1000FFB5 */ b .L7001067C +/* 0113A8 700107A8 AF5B0118 */ sw $k1, 0x118($k0) +glabel __osEnqueueAndYield +/* 0113AC 700107AC 3C058002 */ lui $a1, %hi(__osRunningThread) +/* 0113B0 700107B0 8CA57730 */ lw $a1, %lo(__osRunningThread)($a1) +/* 0113B4 700107B4 40086000 */ mfc0 $t0, $12 +/* 0113B8 700107B8 8CBB0018 */ lw $k1, 0x18($a1) +/* 0113BC 700107BC 35080002 */ ori $t0, $t0, 2 +/* 0113C0 700107C0 ACA80118 */ sw $t0, 0x118($a1) +/* 0113C4 700107C4 FCB00098 */ sd $s0, 0x98($a1) +/* 0113C8 700107C8 FCB100A0 */ sd $s1, 0xa0($a1) +/* 0113CC 700107CC FCB200A8 */ sd $s2, 0xa8($a1) +/* 0113D0 700107D0 FCB300B0 */ sd $s3, 0xb0($a1) +/* 0113D4 700107D4 FCB400B8 */ sd $s4, 0xb8($a1) +/* 0113D8 700107D8 FCB500C0 */ sd $s5, 0xc0($a1) +/* 0113DC 700107DC FCB600C8 */ sd $s6, 0xc8($a1) +/* 0113E0 700107E0 FCB700D0 */ sd $s7, 0xd0($a1) +/* 0113E4 700107E4 FCBC00E8 */ sd $gp, 0xe8($a1) +/* 0113E8 700107E8 FCBD00F0 */ sd $sp, 0xf0($a1) +/* 0113EC 700107EC FCBE00F8 */ sd $fp, 0xf8($a1) +/* 0113F0 700107F0 FCBF0100 */ sd $ra, 0x100($a1) +/* 0113F4 700107F4 13600009 */ beqz $k1, .L7001081C +/* 0113F8 700107F8 ACBF011C */ sw $ra, 0x11c($a1) +/* 0113FC 700107FC 445BF800 */ cfc1 $k1, $31 +/* 011400 70010800 F4B40180 */ sdc1 $f20, 0x180($a1) +/* 011404 70010804 F4B60188 */ sdc1 $f22, 0x188($a1) +/* 011408 70010808 F4B80190 */ sdc1 $f24, 0x190($a1) +/* 01140C 7001080C F4BA0198 */ sdc1 $f26, 0x198($a1) +/* 011410 70010810 F4BC01A0 */ sdc1 $f28, 0x1a0($a1) +/* 011414 70010814 F4BE01A8 */ sdc1 $f30, 0x1a8($a1) +/* 011418 70010818 ACBB012C */ sw $k1, 0x12c($a1) +.L7001081C: +/* 01141C 7001081C 8CBB0118 */ lw $k1, 0x118($a1) +/* 011420 70010820 3369FF00 */ andi $t1, $k1, 0xff00 +/* 011424 70010824 1120000D */ beqz $t1, .L7001085C +/* 011428 70010828 00000000 */ nop +/* 01142C 7001082C 3C088002 */ lui $t0, %hi(__OSGlobalIntMask) +/* 011430 70010830 2508698C */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x698c +/* 011434 70010834 8D080000 */ lw $t0, ($t0) +/* 011438 70010838 2401FFFF */ li $at, -1 +/* 01143C 7001083C 01014026 */ xor $t0, $t0, $at +/* 011440 70010840 3C01FFFF */ lui $at, (0xFFFF00FF >> 16) # lui $at, 0xffff +/* 011444 70010844 3108FF00 */ andi $t0, $t0, 0xff00 +/* 011448 70010848 342100FF */ ori $at, (0xFFFF00FF & 0xFFFF) # ori $at, $at, 0xff +/* 01144C 7001084C 01284825 */ or $t1, $t1, $t0 +/* 011450 70010850 0361D824 */ and $k1, $k1, $at +/* 011454 70010854 0369D825 */ or $k1, $k1, $t1 +/* 011458 70010858 ACBB0118 */ sw $k1, 0x118($a1) +.L7001085C: +/* 01145C 7001085C 3C1BA430 */ lui $k1, %hi(MI_INTR_MASK_REG) # $k1, 0xa430 +/* 011460 70010860 8F7B000C */ lw $k1, %lo(MI_INTR_MASK_REG)($k1) +/* 011464 70010864 1360000B */ beqz $k1, .L70010894 +/* 011468 70010868 00000000 */ nop +/* 01146C 7001086C 3C1A8002 */ lui $k0, %hi(__OSGlobalIntMask) # $k0, 0x8002 +/* 011470 70010870 275A698C */ addiu $k0, %lo(__OSGlobalIntMask) # addiu $k0, $k0, 0x698c +/* 011474 70010874 8F5A0000 */ lw $k0, ($k0) +/* 011478 70010878 8CA80128 */ lw $t0, 0x128($a1) +/* 01147C 7001087C 2401FFFF */ li $at, -1 +/* 011480 70010880 001AD402 */ srl $k0, $k0, 0x10 +/* 011484 70010884 0341D026 */ xor $k0, $k0, $at +/* 011488 70010888 335A003F */ andi $k0, $k0, 0x3f +/* 01148C 7001088C 0348D024 */ and $k0, $k0, $t0 +/* 011490 70010890 037AD825 */ or $k1, $k1, $k0 +.L70010894: +/* 011494 70010894 10800003 */ beqz $a0, .L700108A4 +/* 011498 70010898 ACBB0128 */ sw $k1, 0x128($a1) +/* 01149C 7001089C 0C00422B */ jal __osEnqueueThread +/* 0114A0 700108A0 00000000 */ nop +.L700108A4: +/* 0114A4 700108A4 08004241 */ j __osDispatchThread +/* 0114A8 700108A8 00000000 */ nop + +glabel __osEnqueueThread +/* 0114AC 700108AC 8C980000 */ lw $t8, ($a0) +/* 0114B0 700108B0 8CAF0004 */ lw $t7, 4($a1) +/* 0114B4 700108B4 0080C825 */ move $t9, $a0 +/* 0114B8 700108B8 8F0E0004 */ lw $t6, 4($t8) +/* 0114BC 700108BC 01CF082A */ slt $at, $t6, $t7 +/* 0114C0 700108C0 14200007 */ bnez $at, .L700108E0 +/* 0114C4 700108C4 00000000 */ nop +.L700108C8: +/* 0114C8 700108C8 0300C825 */ move $t9, $t8 +/* 0114CC 700108CC 8F180000 */ lw $t8, ($t8) +/* 0114D0 700108D0 8F0E0004 */ lw $t6, 4($t8) +/* 0114D4 700108D4 01CF082A */ slt $at, $t6, $t7 +/* 0114D8 700108D8 1020FFFB */ beqz $at, .L700108C8 +/* 0114DC 700108DC 00000000 */ nop +.L700108E0: +/* 0114E0 700108E0 8F380000 */ lw $t8, ($t9) +/* 0114E4 700108E4 ACB80000 */ sw $t8, ($a1) +/* 0114E8 700108E8 AF250000 */ sw $a1, ($t9) +/* 0114EC 700108EC 03E00008 */ jr $ra +/* 0114F0 700108F0 ACA40008 */ sw $a0, 8($a1) + +glabel __osPopThread +/* 0114F4 700108F4 8C820000 */ lw $v0, ($a0) +/* 0114F8 700108F8 8C590000 */ lw $t9, ($v0) +/* 0114FC 700108FC 03E00008 */ jr $ra +/* 011500 70010900 AC990000 */ sw $t9, ($a0) + +glabel __osDispatchThread +/* 011504 70010904 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 011508 70010908 0C00423D */ jal __osPopThread +/* 01150C 7001090C 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +/* 011510 70010910 3C018002 */ lui $at, %hi(__osRunningThread) +/* 011514 70010914 AC227730 */ sw $v0, %lo(__osRunningThread)($at) +/* 011518 70010918 24080004 */ li $t0, 4 +/* 01151C 7001091C A4480010 */ sh $t0, 0x10($v0) +/* 011520 70010920 0040D025 */ move $k0, $v0 +glabel __osDispatchThreadSave +/* 011524 70010924 3C088002 */ lui $t0, %hi(__OSGlobalIntMask) +/* 011528 70010928 8F5B0118 */ lw $k1, 0x118($k0) +/* 01152C 7001092C 2508698C */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x698c +/* 011530 70010930 8D080000 */ lw $t0, ($t0) +/* 011534 70010934 3C01FFFF */ lui $at, (0xFFFF00FF >> 16) # lui $at, 0xffff +/* 011538 70010938 3369FF00 */ andi $t1, $k1, 0xff00 +/* 01153C 7001093C 342100FF */ ori $at, (0xFFFF00FF & 0xFFFF) # ori $at, $at, 0xff +/* 011540 70010940 3108FF00 */ andi $t0, $t0, 0xff00 +/* 011544 70010944 01284824 */ and $t1, $t1, $t0 +/* 011548 70010948 0361D824 */ and $k1, $k1, $at +/* 01154C 7001094C 0369D825 */ or $k1, $k1, $t1 +/* 011550 70010950 409B6000 */ mtc0 $k1, $12 +/* 011554 70010954 DF5B0108 */ ld $k1, 0x108($k0) +/* 011558 70010958 DF410020 */ ld $at, 0x20($k0) +/* 01155C 7001095C DF420028 */ ld $v0, 0x28($k0) +/* 011560 70010960 03600013 */ mtlo $k1 +/* 011564 70010964 DF5B0110 */ ld $k1, 0x110($k0) +/* 011568 70010968 DF430030 */ ld $v1, 0x30($k0) +/* 01156C 7001096C DF440038 */ ld $a0, 0x38($k0) +/* 011570 70010970 DF450040 */ ld $a1, 0x40($k0) +/* 011574 70010974 DF460048 */ ld $a2, 0x48($k0) +/* 011578 70010978 DF470050 */ ld $a3, 0x50($k0) +/* 01157C 7001097C DF480058 */ ld $t0, 0x58($k0) +/* 011580 70010980 DF490060 */ ld $t1, 0x60($k0) +/* 011584 70010984 DF4A0068 */ ld $t2, 0x68($k0) +/* 011588 70010988 DF4B0070 */ ld $t3, 0x70($k0) +/* 01158C 7001098C DF4C0078 */ ld $t4, 0x78($k0) +/* 011590 70010990 DF4D0080 */ ld $t5, 0x80($k0) +/* 011594 70010994 DF4E0088 */ ld $t6, 0x88($k0) +/* 011598 70010998 DF4F0090 */ ld $t7, 0x90($k0) +/* 01159C 7001099C DF500098 */ ld $s0, 0x98($k0) +/* 0115A0 700109A0 DF5100A0 */ ld $s1, 0xa0($k0) +/* 0115A4 700109A4 DF5200A8 */ ld $s2, 0xa8($k0) +/* 0115A8 700109A8 DF5300B0 */ ld $s3, 0xb0($k0) +/* 0115AC 700109AC DF5400B8 */ ld $s4, 0xb8($k0) +/* 0115B0 700109B0 DF5500C0 */ ld $s5, 0xc0($k0) +/* 0115B4 700109B4 DF5600C8 */ ld $s6, 0xc8($k0) +/* 0115B8 700109B8 DF5700D0 */ ld $s7, 0xd0($k0) +/* 0115BC 700109BC DF5800D8 */ ld $t8, 0xd8($k0) +/* 0115C0 700109C0 DF5900E0 */ ld $t9, 0xe0($k0) +/* 0115C4 700109C4 DF5C00E8 */ ld $gp, 0xe8($k0) +/* 0115C8 700109C8 03600011 */ mthi $k1 +/* 0115CC 700109CC DF5D00F0 */ ld $sp, 0xf0($k0) +/* 0115D0 700109D0 DF5E00F8 */ ld $fp, 0xf8($k0) +/* 0115D4 700109D4 DF5F0100 */ ld $ra, 0x100($k0) +/* 0115D8 700109D8 8F5B011C */ lw $k1, 0x11c($k0) +/* 0115DC 700109DC 409B7000 */ mtc0 $k1, $14 +/* 0115E0 700109E0 8F5B0018 */ lw $k1, 0x18($k0) +/* 0115E4 700109E4 13600013 */ beqz $k1, .L70010A34 +/* 0115E8 700109E8 00000000 */ nop +/* 0115EC 700109EC 8F5B012C */ lw $k1, 0x12c($k0) +/* 0115F0 700109F0 44DBF800 */ ctc1 $k1, $31 +/* 0115F4 700109F4 D7400130 */ ldc1 $f0, 0x130($k0) +/* 0115F8 700109F8 D7420138 */ ldc1 $f2, 0x138($k0) +/* 0115FC 700109FC D7440140 */ ldc1 $f4, 0x140($k0) +/* 011600 70010A00 D7460148 */ ldc1 $f6, 0x148($k0) +/* 011604 70010A04 D7480150 */ ldc1 $f8, 0x150($k0) +/* 011608 70010A08 D74A0158 */ ldc1 $f10, 0x158($k0) +/* 01160C 70010A0C D74C0160 */ ldc1 $f12, 0x160($k0) +/* 011610 70010A10 D74E0168 */ ldc1 $f14, 0x168($k0) +/* 011614 70010A14 D7500170 */ ldc1 $f16, 0x170($k0) +/* 011618 70010A18 D7520178 */ ldc1 $f18, 0x178($k0) +/* 01161C 70010A1C D7540180 */ ldc1 $f20, 0x180($k0) +/* 011620 70010A20 D7560188 */ ldc1 $f22, 0x188($k0) +/* 011624 70010A24 D7580190 */ ldc1 $f24, 0x190($k0) +/* 011628 70010A28 D75A0198 */ ldc1 $f26, 0x198($k0) +/* 01162C 70010A2C D75C01A0 */ ldc1 $f28, 0x1a0($k0) +/* 011630 70010A30 D75E01A8 */ ldc1 $f30, 0x1a8($k0) +.L70010A34: +/* 011634 70010A34 8F5B0128 */ lw $k1, 0x128($k0) +/* 011638 70010A38 3C1A8002 */ lui $k0, %hi(__OSGlobalIntMask) # $k0, 0x8002 +/* 01163C 70010A3C 275A698C */ addiu $k0, %lo(__OSGlobalIntMask) # addiu $k0, $k0, 0x698c +/* 011640 70010A40 8F5A0000 */ lw $k0, ($k0) +/* 011644 70010A44 001AD402 */ srl $k0, $k0, 0x10 +/* 011648 70010A48 037AD824 */ and $k1, $k1, $k0 +/* 01164C 70010A4C 001BD840 */ sll $k1, $k1, 1 +/* 011650 70010A50 3C1A8003 */ lui $k0, %hi(__osRcpImTable) # $k0, 0x8003 +/* 011654 70010A54 275A93A0 */ addiu $k0, %lo(__osRcpImTable) # addiu $k0, $k0, -0x6c60 +/* 011658 70010A58 037AD821 */ addu $k1, $k1, $k0 +/* 01165C 70010A5C 977B0000 */ lhu $k1, ($k1) +/* 011660 70010A60 3C1AA430 */ lui $k0, %hi(MI_INTR_MASK_REG) # $k0, 0xa430 +/* 011664 70010A64 275A000C */ addiu $k0, %lo(MI_INTR_MASK_REG) # addiu $k0, $k0, 0xc +/* 011668 70010A68 AF5B0000 */ sw $k1, ($k0) +/* 01166C 70010A6C 00000000 */ nop +/* 011670 70010A70 00000000 */ nop +/* 011674 70010A74 00000000 */ nop +/* 011678 70010A78 00000000 */ nop +/* 01167C 70010A7C 42000018 */ eret +glabel __osCleanupThread +/* 011680 70010A80 0C006ED8 */ jal osDestroyThread +/* 011684 70010A84 00002025 */ move $a0, $zero + + +.section .data +/*80027704*/ +glabel __osHwIntTable +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 + +.section .rodata +/*80029440*/ +glabel __osIntOffTable +.byte 0,0x14,0x18,0x18,0x1C,0x1C,0x1C,0x1C +.byte 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +.byte 0, 4, 8, 8, 0xC, 0xC, 0xC, 0xC +.byte 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10 + +/*80029460*/ +glabel __osIntTable +.word redispatch +.word swl +.word sw2 +.word rcp +.word cart +.word prenmi +.word IP6_Hdlr +.word IP7_Hdlr +.word counter diff --git a/src/libultra/filter.s b/src/libultra/filter.s new file mode 100644 index 0000000..c7cf94f --- /dev/null +++ b/src/libultra/filter.s @@ -0,0 +1,23 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alFilterNew +/* 0204F0 7001F8F0 AC800000 */ sw $zero, ($a0) +/* 0204F4 7001F8F4 AC850004 */ sw $a1, 4($a0) +/* 0204F8 7001F8F8 AC860008 */ sw $a2, 8($a0) +/* 0204FC 7001F8FC A480000C */ sh $zero, 0xc($a0) +/* 020500 7001F900 A480000E */ sh $zero, 0xe($a0) +/* 020504 7001F904 03E00008 */ jr $ra +/* 020508 7001F908 AC870010 */ sw $a3, 0x10($a0) + + diff --git a/src/libultra/getcount.s b/src/libultra/getcount.s new file mode 100644 index 0000000..0798a2e --- /dev/null +++ b/src/libultra/getcount.s @@ -0,0 +1,13 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osGetCount +/* 00E4E0 7000D8E0 40024800 */ mfc0 $v0, $9 +/* 00E4E4 7000D8E4 03E00008 */ jr $ra +/* 00E4E8 7000D8E8 00000000 */ nop diff --git a/src/libultra/getcurrfaultthread.s b/src/libultra/getcurrfaultthread.s new file mode 100644 index 0000000..d5f44e8 --- /dev/null +++ b/src/libultra/getcurrfaultthread.s @@ -0,0 +1,14 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel __osGetCurrFaultedThread +/* 010D80 70010180 3C028002 */ lui $v0, %hi(__osFaultedThread) +/* 010D84 70010184 03E00008 */ jr $ra +/* 010D88 70010188 8C427734 */ lw $v0, %lo(__osFaultedThread)($v0) + diff --git a/src/libultra/getfpccsr.s b/src/libultra/getfpccsr.s new file mode 100644 index 0000000..91e1883 --- /dev/null +++ b/src/libultra/getfpccsr.s @@ -0,0 +1,14 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel __osGetFpcCsr +/* 00E010 7000D410 4442F800 */ cfc1 $v0, $31 +/* 00E014 7000D414 03E00008 */ jr $ra +/* 00E018 7000D418 00000000 */ nop + \ No newline at end of file diff --git a/src/libultra/getsr.s b/src/libultra/getsr.s new file mode 100644 index 0000000..fe7e2d5 --- /dev/null +++ b/src/libultra/getsr.s @@ -0,0 +1,19 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osGetSR +/* 018730 70017B30 40026000 */ mfc0 $v0, $12 +/* 018734 70017B34 03E00008 */ jr $ra +/* 018738 70017B38 00000000 */ nop + +/* 01873C 70017B3C 00000000 */ nop diff --git a/src/libultra/getthreadpri.s b/src/libultra/getthreadpri.s new file mode 100644 index 0000000..bd8c5db --- /dev/null +++ b/src/libultra/getthreadpri.s @@ -0,0 +1,24 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osGetThreadPri +/* 019630 70018A30 14800003 */ bnez $a0, .L70018A40 +/* 019634 70018A34 00000000 */ nop +/* 019638 70018A38 3C048002 */ lui $a0, %hi(__osRunningThread) +/* 01963C 70018A3C 8C847730 */ lw $a0, %lo(__osRunningThread)($a0) +.L70018A40: +/* 019640 70018A40 03E00008 */ jr $ra +/* 019644 70018A44 8C820004 */ lw $v0, 4($a0) + +/* 019648 70018A48 00000000 */ nop +/* 01964C 70018A4C 00000000 */ nop diff --git a/src/libultra/gettime.s b/src/libultra/gettime.s new file mode 100644 index 0000000..a50e133 --- /dev/null +++ b/src/libultra/gettime.s @@ -0,0 +1,43 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osGetTime +/* 00F7B0 7000EBB0 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 00F7B4 7000EBB4 AFBF001C */ sw $ra, 0x1c($sp) +/* 00F7B8 7000EBB8 0C00617C */ jal __osDisableInt +/* 00F7BC 7000EBBC AFB00018 */ sw $s0, 0x18($sp) +/* 00F7C0 7000EBC0 0C003638 */ jal osGetCount +/* 00F7C4 7000EBC4 00408025 */ move $s0, $v0 +/* 00F7C8 7000EBC8 AFA20034 */ sw $v0, 0x34($sp) +/* 00F7CC 7000EBCC 3C0F8007 */ lui $t7, %hi(__osBaseCounter) +/* 00F7D0 7000EBD0 8DEF8E18 */ lw $t7, %lo(__osBaseCounter)($t7) +/* 00F7D4 7000EBD4 8FAE0034 */ lw $t6, 0x34($sp) +/* 00F7D8 7000EBD8 3C088007 */ lui $t0, %hi(__osCurrentTime) +/* 00F7DC 7000EBDC 3C098007 */ lui $t1, %hi(__osCurrentTime+4) +/* 00F7E0 7000EBE0 8D298E14 */ lw $t1, %lo(__osCurrentTime+4)($t1) +/* 00F7E4 7000EBE4 8D088E10 */ lw $t0, %lo(__osCurrentTime)($t0) +/* 00F7E8 7000EBE8 01CFC023 */ subu $t8, $t6, $t7 +/* 00F7EC 7000EBEC AFB80030 */ sw $t8, 0x30($sp) +/* 00F7F0 7000EBF0 02002025 */ move $a0, $s0 +/* 00F7F4 7000EBF4 AFA9002C */ sw $t1, 0x2c($sp) +/* 00F7F8 7000EBF8 0C006184 */ jal __osRestoreInt +/* 00F7FC 7000EBFC AFA80028 */ sw $t0, 0x28($sp) +/* 00F800 7000EC00 8FB90030 */ lw $t9, 0x30($sp) +/* 00F804 7000EC04 8FAD002C */ lw $t5, 0x2c($sp) +/* 00F808 7000EC08 8FBF001C */ lw $ra, 0x1c($sp) +/* 00F80C 7000EC0C 03205825 */ move $t3, $t9 +/* 00F810 7000EC10 016D1821 */ addu $v1, $t3, $t5 +/* 00F814 7000EC14 8FAC0028 */ lw $t4, 0x28($sp) +/* 00F818 7000EC18 240A0000 */ li $t2, 0 +/* 00F81C 7000EC1C 006D082B */ sltu $at, $v1, $t5 +/* 00F820 7000EC20 002A1021 */ addu $v0, $at, $t2 +/* 00F824 7000EC24 8FB00018 */ lw $s0, 0x18($sp) +/* 00F828 7000EC28 27BD0038 */ addiu $sp, $sp, 0x38 +/* 00F82C 7000EC2C 03E00008 */ jr $ra +/* 00F830 7000EC30 004C1021 */ addu $v0, $v0, $t4 diff --git a/src/libultra/gettlbhi.s b/src/libultra/gettlbhi.s new file mode 100644 index 0000000..0beac9a --- /dev/null +++ b/src/libultra/gettlbhi.s @@ -0,0 +1,21 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel __osGetTLBHi +/* 00F480 7000E880 40840000 */ mtc0 $a0, $0 +/* 00F484 7000E884 00000000 */ nop +/* 00F488 7000E888 42000001 */ tlbr +/* 00F48C 7000E88C 00000000 */ nop +/* 00F490 7000E890 00000000 */ nop +/* 00F494 7000E894 00000000 */ nop +/* 00F498 7000E898 40025000 */ mfc0 $v0, $10 +/* 00F49C 7000E89C 03E00008 */ jr $ra +/* 00F4A0 7000E8A0 00000000 */ nop + diff --git a/src/libultra/heapalloc.s b/src/libultra/heapalloc.s new file mode 100644 index 0000000..e74a0b2 --- /dev/null +++ b/src/libultra/heapalloc.s @@ -0,0 +1,32 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alHeapDBAlloc +/* 00F750 7000EB50 8FAE0010 */ lw $t6, 0x10($sp) +/* 00F754 7000EB54 AFA40000 */ sw $a0, ($sp) +/* 00F758 7000EB58 AFA50004 */ sw $a1, 4($sp) +/* 00F75C 7000EB5C 00EE0019 */ multu $a3, $t6 +/* 00F760 7000EB60 8CD90008 */ lw $t9, 8($a2) +/* 00F764 7000EB64 8CD80000 */ lw $t8, ($a2) +/* 00F768 7000EB68 8CC40004 */ lw $a0, 4($a2) +/* 00F76C 7000EB6C 2401FFF0 */ li $at, -16 +/* 00F770 7000EB70 03194021 */ addu $t0, $t8, $t9 +/* 00F774 7000EB74 00001825 */ move $v1, $zero +/* 00F778 7000EB78 00001012 */ mflo $v0 +/* 00F77C 7000EB7C 2442000F */ addiu $v0, $v0, 0xf +/* 00F780 7000EB80 00417824 */ and $t7, $v0, $at +/* 00F784 7000EB84 008F4821 */ addu $t1, $a0, $t7 +/* 00F788 7000EB88 0109082B */ sltu $at, $t0, $t1 +/* 00F78C 7000EB8C 14200003 */ bnez $at, .L7000EB9C +/* 00F790 7000EB90 008F5021 */ addu $t2, $a0, $t7 +/* 00F794 7000EB94 00801825 */ move $v1, $a0 +/* 00F798 7000EB98 ACCA0004 */ sw $t2, 4($a2) +.L7000EB9C: +/* 00F79C 7000EB9C 03E00008 */ jr $ra +/* 00F7A0 7000EBA0 00601025 */ move $v0, $v1 diff --git a/src/libultra/heapinit.s b/src/libultra/heapinit.s new file mode 100644 index 0000000..4902b32 --- /dev/null +++ b/src/libultra/heapinit.s @@ -0,0 +1,25 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alHeapInit +/* 011930 70010D30 24030010 */ li $v1, 16 +/* 011934 70010D34 30AE000F */ andi $t6, $a1, 0xf +/* 011938 70010D38 006E1023 */ subu $v0, $v1, $t6 +/* 01193C 70010D3C 10620003 */ beq $v1, $v0, .L70010D4C +/* 011940 70010D40 00A27821 */ addu $t7, $a1, $v0 +/* 011944 70010D44 10000002 */ b .L70010D50 +/* 011948 70010D48 AC8F0000 */ sw $t7, ($a0) +.L70010D4C: +/* 01194C 70010D4C AC850000 */ sw $a1, ($a0) +.L70010D50: +/* 011950 70010D50 8C980000 */ lw $t8, ($a0) +/* 011954 70010D54 AC860008 */ sw $a2, 8($a0) +/* 011958 70010D58 AC80000C */ sw $zero, 0xc($a0) +/* 01195C 70010D5C 03E00008 */ jr $ra +/* 011960 70010D60 AC980004 */ sw $t8, 4($a0) diff --git a/src/libultra/initialize.s b/src/libultra/initialize.s new file mode 100644 index 0000000..fb5fdba --- /dev/null +++ b/src/libultra/initialize.s @@ -0,0 +1,207 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + +.section .data +glabel osClockRate +.dword 62500000 +glabel __osShutdown + .word 0 +glabel __OSGlobalIntMask + .word 0x3FFF01 +glabel osDiskExist + .word 0 +.align 4 +.section .rodata +.section .bss +glabel __osFinalRom +.word 0 + +.section .text, "ax" +glabel osInitialize +/* 00DC80 7000D080 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 00DC84 7000D084 AFBF001C */ sw $ra, 0x1c($sp) +/* 00DC88 7000D088 240E0001 */ li $t6, 1 +/* 00DC8C 7000D08C 3C018006 */ lui $at, %hi(__osFinalRom) +/* 00DC90 7000D090 AFB00018 */ sw $s0, 0x18($sp) +/* 00DC94 7000D094 AFA00038 */ sw $zero, 0x38($sp) +/* 00DC98 7000D098 0C005ECC */ jal __osGetSR +/* 00DC9C 7000D09C AC2E57E0 */ sw $t6, %lo(__osFinalRom)($at) +/* 00DCA0 7000D0A0 00408025 */ move $s0, $v0 +/* 00DCA4 7000D0A4 3C012000 */ lui $at, 0x2000 +/* 00DCA8 7000D0A8 0C005EC8 */ jal __osSetSR +/* 00DCAC 7000D0AC 02012025 */ or $a0, $s0, $at +/* 00DCB0 7000D0B0 3C040100 */ lui $a0, (0x01000800 >> 16) # lui $a0, 0x100 +/* 00DCB4 7000D0B4 0C003508 */ jal __osSetFpcCsr +/* 00DCB8 7000D0B8 34840800 */ ori $a0, (0x01000800 & 0xFFFF) # ori $a0, $a0, 0x800 +/* 00DCBC 7000D0BC 3C041FC0 */ lui $a0, (0x1FC007FC >> 16) # lui $a0, 0x1fc0 +/* 00DCC0 7000D0C0 348407FC */ ori $a0, (0x1FC007FC & 0xFFFF) # ori $a0, $a0, 0x7fc +/* 00DCC4 7000D0C4 0C005ED0 */ jal __osSiRawReadIo +/* 00DCC8 7000D0C8 27A5003C */ addiu $a1, $sp, 0x3c +/* 00DCCC 7000D0CC 10400007 */ beqz $v0, .L7000D0EC +/* 00DCD0 7000D0D0 00000000 */ nop +.L7000D0D4: +/* 00DCD4 7000D0D4 3C041FC0 */ lui $a0, (0x1FC007FC >> 16) # lui $a0, 0x1fc0 +/* 00DCD8 7000D0D8 348407FC */ ori $a0, (0x1FC007FC & 0xFFFF) # ori $a0, $a0, 0x7fc +/* 00DCDC 7000D0DC 0C005ED0 */ jal __osSiRawReadIo +/* 00DCE0 7000D0E0 27A5003C */ addiu $a1, $sp, 0x3c +/* 00DCE4 7000D0E4 1440FFFB */ bnez $v0, .L7000D0D4 +/* 00DCE8 7000D0E8 00000000 */ nop +.L7000D0EC: +/* 00DCEC 7000D0EC 8FA5003C */ lw $a1, 0x3c($sp) +/* 00DCF0 7000D0F0 3C041FC0 */ lui $a0, (0x1FC007FC >> 16) # lui $a0, 0x1fc0 +/* 00DCF4 7000D0F4 348407FC */ ori $a0, (0x1FC007FC & 0xFFFF) # ori $a0, $a0, 0x7fc +/* 00DCF8 7000D0F8 34AF0008 */ ori $t7, $a1, 8 +/* 00DCFC 7000D0FC 0C005EE4 */ jal __osSiRawWriteIo +/* 00DD00 7000D100 01E02825 */ move $a1, $t7 +/* 00DD04 7000D104 10400009 */ beqz $v0, .L7000D12C +/* 00DD08 7000D108 00000000 */ nop +.L7000D10C: +/* 00DD0C 7000D10C 8FA5003C */ lw $a1, 0x3c($sp) +/* 00DD10 7000D110 3C041FC0 */ lui $a0, (0x1FC007FC >> 16) # lui $a0, 0x1fc0 +/* 00DD14 7000D114 348407FC */ ori $a0, (0x1FC007FC & 0xFFFF) # ori $a0, $a0, 0x7fc +/* 00DD18 7000D118 34B80008 */ ori $t8, $a1, 8 +/* 00DD1C 7000D11C 0C005EE4 */ jal __osSiRawWriteIo +/* 00DD20 7000D120 03002825 */ move $a1, $t8 +/* 00DD24 7000D124 1440FFF9 */ bnez $v0, .L7000D10C +/* 00DD28 7000D128 00000000 */ nop +.L7000D12C: +/* 00DD2C 7000D12C 3C087001 */ lui $t0, %hi(__osExceptionPreamble) # $t0, 0x7001 +/* 00DD30 7000D130 25080190 */ addiu $t0, %lo(__osExceptionPreamble) # addiu $t0, $t0, 0x190 +/* 00DD34 7000D134 8D010000 */ lw $at, ($t0) +/* 00DD38 7000D138 3C198000 */ lui $t9, 0x8000 +/* 00DD3C 7000D13C 3C0D7001 */ lui $t5, %hi(__osExceptionPreamble) # $t5, 0x7001 +/* 00DD40 7000D140 AF210000 */ sw $at, ($t9) +/* 00DD44 7000D144 8D0B0004 */ lw $t3, 4($t0) +/* 00DD48 7000D148 25AD0190 */ addiu $t5, %lo(__osExceptionPreamble) # addiu $t5, $t5, 0x190 +/* 00DD4C 7000D14C 3C0C8000 */ lui $t4, 0x8000 +/* 00DD50 7000D150 AF2B0004 */ sw $t3, 4($t9) +/* 00DD54 7000D154 8D010008 */ lw $at, 8($t0) +/* 00DD58 7000D158 358C0080 */ ori $t4, (0x80000080 & 0xFFFF) # ori $t4, $t4, 0x80 +/* 00DD5C 7000D15C 3C097001 */ lui $t1, %hi(__osExceptionPreamble) # $t1, 0x7001 +/* 00DD60 7000D160 AF210008 */ sw $at, 8($t9) +/* 00DD64 7000D164 8D0B000C */ lw $t3, 0xc($t0) +/* 00DD68 7000D168 25290190 */ addiu $t1, %lo(__osExceptionPreamble) # addiu $t1, $t1, 0x190 +/* 00DD6C 7000D16C 3C0A8000 */ lui $t2, 0x8000 +/* 00DD70 7000D170 AF2B000C */ sw $t3, 0xC($t9) +/* 00DD74 7000D174 8DA10000 */ lw $at, 0($t5) +/* 00DD78 7000D178 354A0100 */ ori $t2, (0x80000100 & 0xFFFF) # ori $t2, $t2, 0x100 +/* 00DD7C 7000D17C 3C0E7001 */ lui $t6, %hi(__osExceptionPreamble) # $t6, 0x7001 +/* 00DD80 7000D180 AD810000 */ sw $at, 0($t4) +/* 00DD84 7000D184 8DB80004 */ lw $t8, 4($t5) +/* 00DD88 7000D188 25CE0190 */ addiu $t6, %lo(__osExceptionPreamble) # addiu $t6, $t6, 0x190 +/* 00DD8C 7000D18C 3C0F8000 */ lui $t7, 0x8000 +/* 00DD90 7000D190 AD980004 */ sw $t8, 4($t4) +/* 00DD94 7000D194 8DA10008 */ lw $at, 8($t5) +/* 00DD98 7000D198 35EF0180 */ ori $t7, (0x80000180 & 0xFFFF) # ori $t7, $t7, 0x180 +/* 00DD9C 7000D19C 3C048000 */ lui $a0, 0x8000 +/* 00DDA0 7000D1A0 AD810008 */ sw $at, 8($t4) +/* 00DDA4 7000D1A4 8DB8000C */ lw $t8, 0xc($t5) +/* 00DDA8 7000D1A8 24050190 */ li $a1, 400 +/* 00DDAC 7000D1AC AD98000C */ sw $t8, 0xC($t4) +/* 00DDB0 7000D1B0 8D210000 */ lw $at, 0($t1) +/* 00DDB4 7000D1B4 AD410000 */ sw $at, 0($t2) +/* 00DDB8 7000D1B8 8D2B0004 */ lw $t3, 4($t1) +/* 00DDBC 7000D1BC AD4B0004 */ sw $t3, 4($t2) +/* 00DDC0 7000D1C0 8D210008 */ lw $at, 8($t1) +/* 00DDC4 7000D1C4 AD410008 */ sw $at, 8($t2) +/* 00DDC8 7000D1C8 8D2B000C */ lw $t3, 0xc($t1) +/* 00DDCC 7000D1CC AD4B000C */ sw $t3, 0xC($t2) +/* 00DDD0 7000D1D0 8DC10000 */ lw $at, 0($t6) +/* 00DDD4 7000D1D4 ADE10000 */ sw $at, 0($t7) +/* 00DDD8 7000D1D8 8DD80004 */ lw $t8, 4($t6) +/* 00DDDC 7000D1DC ADF80004 */ sw $t8, 4($t7) +/* 00DDE0 7000D1E0 8DC10008 */ lw $at, 8($t6) +/* 00DDE4 7000D1E4 ADE10008 */ sw $at, 8($t7) +/* 00DDE8 7000D1E8 8DD8000C */ lw $t8, 0xc($t6) +/* 00DDEC 7000D1EC 0C0042F4 */ jal osWritebackDCache +/* 00DDF0 7000D1F0 ADF8000C */ sw $t8, 0xC($t7) +/* 00DDF4 7000D1F4 3C048000 */ lui $a0, 0x8000 +/* 00DDF8 7000D1F8 0C0034D4 */ jal osInvalICache +/* 00DDFC 7000D1FC 24050190 */ li $a1, 400 +/* 00DE00 7000D200 0C0005E0 */ jal osMapTLBRdb +/* 00DE04 7000D204 00000000 */ nop +/* 00DE08 7000D208 24040004 */ li $a0, 4 +/* 00DE0C 7000D20C 0C005EF8 */ jal osPiRawReadIo +/* 00DE10 7000D210 27A50038 */ addiu $a1, $sp, 0x38 +/* 00DE14 7000D214 8FA80038 */ lw $t0, 0x38($sp) +/* 00DE18 7000D218 2401FFF0 */ li $at, -16 +/* 00DE1C 7000D21C 0101C824 */ and $t9, $t0, $at +/* 00DE20 7000D220 13200006 */ beqz $t9, .L7000D23C +/* 00DE24 7000D224 AFB90038 */ sw $t9, 0x38($sp) +/* 00DE28 7000D228 3C018002 */ lui $at, %hi(osClockRate) +/* 00DE2C 7000D22C 03205825 */ move $t3, $t9 +/* 00DE30 7000D230 240A0000 */ li $t2, 0 +/* 00DE34 7000D234 AC2A6980 */ sw $t2, %lo(osClockRate)($at) +/* 00DE38 7000D238 AC2B6984 */ sw $t3, %lo(osClockRate+4)($at) +.L7000D23C: +/* 00DE3C 7000D23C 3C048002 */ lui $a0, %hi(osClockRate) +/* 00DE40 7000D240 3C058002 */ lui $a1, %hi(osClockRate) +/* 00DE44 7000D244 8CA56984 */ lw $a1, %lo(osClockRate+4)($a1) +/* 00DE48 7000D248 8C846980 */ lw $a0, %lo(osClockRate)($a0) +/* 00DE4C 7000D24C 24060000 */ li $a2, 0 +/* 00DE50 7000D250 0C003B6A */ jal __ll_mul +/* 00DE54 7000D254 24070003 */ li $a3, 3 +/* 00DE58 7000D258 AFA20020 */ sw $v0, 0x20($sp) +/* 00DE5C 7000D25C AFA30024 */ sw $v1, 0x24($sp) +/* 00DE60 7000D260 8FA50024 */ lw $a1, 0x24($sp) +/* 00DE64 7000D264 8FA40020 */ lw $a0, 0x20($sp) +/* 00DE68 7000D268 24060000 */ li $a2, 0 +/* 00DE6C 7000D26C 0C003B2A */ jal __ull_div +/* 00DE70 7000D270 24070004 */ li $a3, 4 +/* 00DE74 7000D274 3C098000 */ lui $t1, %hi(osResetType) +/* 00DE78 7000D278 8D29030C */ lw $t1, %lo(osResetType)($t1) +/* 00DE7C 7000D27C 3C018002 */ lui $at, %hi(osClockRate) +/* 00DE80 7000D280 AC226980 */ sw $v0, %lo(osClockRate)($at) +/* 00DE84 7000D284 15200005 */ bnez $t1, .L7000D29C +/* 00DE88 7000D288 AC236984 */ sw $v1, %lo(osClockRate+4)($at) +/* 00DE8C 7000D28C 3C048000 */ lui $a0, %hi(osAppNMIBuffer) +/* 00DE90 7000D290 2484031C */ addiu $a0, %lo(osAppNMIBuffer) # addiu $a0, $a0, 0x31c +/* 00DE94 7000D294 0C005F10 */ jal bzero +/* 00DE98 7000D298 24050040 */ li $a1, 64 +.L7000D29C: +/* 00DE9C 7000D29C 3C0DA460 */ lui $t5, %hi(PI_STATUS_REG) # $t5, 0xa460 +/* 00DEA0 7000D2A0 8DAC0010 */ lw $t4, %lo(PI_STATUS_REG)($t5) +/* 00DEA4 7000D2A4 318F0003 */ andi $t7, $t4, 3 +/* 00DEA8 7000D2A8 11E00008 */ beqz $t7, .L7000D2CC +/* 00DEAC 7000D2AC AFAC0030 */ sw $t4, 0x30($sp) +.L7000D2B0: +/* 00DEB0 7000D2B0 3C0EA460 */ lui $t6, %hi(PI_STATUS_REG) # $t6, 0xa460 +/* 00DEB4 7000D2B4 8DD80010 */ lw $t8, %lo(PI_STATUS_REG)($t6) +/* 00DEB8 7000D2B8 AFB80030 */ sw $t8, 0x30($sp) +/* 00DEBC 7000D2BC 8FA80030 */ lw $t0, 0x30($sp) +/* 00DEC0 7000D2C0 31190003 */ andi $t9, $t0, 3 +/* 00DEC4 7000D2C4 1720FFFA */ bnez $t9, .L7000D2B0 +/* 00DEC8 7000D2C8 00000000 */ nop +.L7000D2CC: +/* 00DECC 7000D2CC 3C0AA500 */ lui $t2, %hi(ASIC_STATUS) # $t2, 0xa500 +/* 00DED0 7000D2D0 8D4B0508 */ lw $t3, %lo(ASIC_STATUS)($t2) +/* 00DED4 7000D2D4 3169FFFF */ andi $t1, $t3, 0xffff +/* 00DED8 7000D2D8 1520000A */ bnez $t1, .L7000D304 +/* 00DEDC 7000D2DC AFAB0034 */ sw $t3, 0x34($sp) +/* 00DEE0 7000D2E0 240D0001 */ li $t5, 1 +/* 00DEE4 7000D2E4 3C018002 */ lui $at, %hi(osDiskExist) +/* 00DEE8 7000D2E8 3C057001 */ lui $a1, %hi(__osLeoInterrupt) # $a1, 0x7001 +/* 00DEEC 7000D2EC AC2D6990 */ sw $t5, %lo(osDiskExist)($at) +/* 00DEF0 7000D2F0 24A57D30 */ addiu $a1, %lo(__osLeoInterrupt) # addiu $a1, $a1, 0x7d30 +/* 00DEF4 7000D2F4 0C005F38 */ jal __osSetHWIntrRoutine +/* 00DEF8 7000D2F8 24040001 */ li $a0, 1 +/* 00DEFC 7000D2FC 10000003 */ b .L7000D30C +/* 00DF00 7000D300 00000000 */ nop +.L7000D304: +/* 00DF04 7000D304 3C018002 */ lui $at, %hi(osDiskExist) +/* 00DF08 7000D308 AC206990 */ sw $zero, %lo(osDiskExist)($at) +.L7000D30C: +/* 00DF0C 7000D30C 8FBF001C */ lw $ra, 0x1c($sp) +/* 00DF10 7000D310 8FB00018 */ lw $s0, 0x18($sp) +/* 00DF14 7000D314 27BD0040 */ addiu $sp, $sp, 0x40 +/* 00DF18 7000D318 03E00008 */ jr $ra +/* 00DF1C 7000D31C 00000000 */ nop + + + + + diff --git a/src/libultra/interrupt.s b/src/libultra/interrupt.s new file mode 100644 index 0000000..28ade9b --- /dev/null +++ b/src/libultra/interrupt.s @@ -0,0 +1,32 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osDisableInt +/* 0191F0 700185F0 40086000 */ mfc0 $t0, $12 +/* 0191F4 700185F4 2401FFFE */ li $at, -2 +/* 0191F8 700185F8 01014824 */ and $t1, $t0, $at +/* 0191FC 700185FC 40896000 */ mtc0 $t1, $12 +/* 019200 70018600 31020001 */ andi $v0, $t0, 1 +/* 019204 70018604 00000000 */ nop +/* 019208 70018608 03E00008 */ jr $ra +/* 01920C 7001860C 00000000 */ nop + +glabel __osRestoreInt +/* 019210 70018610 40086000 */ mfc0 $t0, $12 +/* 019214 70018614 01044025 */ or $t0, $t0, $a0 +/* 019218 70018618 40886000 */ mtc0 $t0, $12 +/* 01921C 7001861C 00000000 */ nop +/* 019220 70018620 00000000 */ nop +/* 019224 70018624 03E00008 */ jr $ra +/* 019228 70018628 00000000 */ nop + diff --git a/src/libultra/invaldcache.s b/src/libultra/invaldcache.s new file mode 100644 index 0000000..57a8301 --- /dev/null +++ b/src/libultra/invaldcache.s @@ -0,0 +1,59 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osInvalDCache +/* 011720 70010B20 18A0001F */ blez $a1, .L70010BA0 +/* 011724 70010B24 00000000 */ nop +/* 011728 70010B28 240B2000 */ li $t3, 8192 +/* 01172C 70010B2C 00AB082B */ sltu $at, $a1, $t3 +/* 011730 70010B30 1020001D */ beqz $at, .L70010BA8 +/* 011734 70010B34 00000000 */ nop +/* 011738 70010B38 00804025 */ move $t0, $a0 +/* 01173C 70010B3C 00854821 */ addu $t1, $a0, $a1 +/* 011740 70010B40 0109082B */ sltu $at, $t0, $t1 +/* 011744 70010B44 10200016 */ beqz $at, .L70010BA0 +/* 011748 70010B48 00000000 */ nop +/* 01174C 70010B4C 310A000F */ andi $t2, $t0, 0xf +/* 011750 70010B50 11400007 */ beqz $t2, .L70010B70 +/* 011754 70010B54 2529FFF0 */ addiu $t1, $t1, -0x10 +/* 011758 70010B58 010A4023 */ subu $t0, $t0, $t2 +/* 01175C 70010B5C BD150000 */ cache 0x15, ($t0) +/* 011760 70010B60 0109082B */ sltu $at, $t0, $t1 +/* 011764 70010B64 1020000E */ beqz $at, .L70010BA0 +/* 011768 70010B68 00000000 */ nop +/* 01176C 70010B6C 25080010 */ addiu $t0, $t0, 0x10 +.L70010B70: +/* 011770 70010B70 312A000F */ andi $t2, $t1, 0xf +/* 011774 70010B74 11400006 */ beqz $t2, .L70010B90 +/* 011778 70010B78 00000000 */ nop +/* 01177C 70010B7C 012A4823 */ subu $t1, $t1, $t2 +/* 011780 70010B80 BD350010 */ cache 0x15, 0x10($t1) +/* 011784 70010B84 0128082B */ sltu $at, $t1, $t0 +/* 011788 70010B88 14200005 */ bnez $at, .L70010BA0 +/* 01178C 70010B8C 00000000 */ nop +.L70010B90: +/* 011790 70010B90 BD110000 */ cache 0x11, ($t0) +/* 011794 70010B94 0109082B */ sltu $at, $t0, $t1 +/* 011798 70010B98 1420FFFD */ bnez $at, .L70010B90 +/* 01179C 70010B9C 25080010 */ addiu $t0, $t0, 0x10 +.L70010BA0: +/* 0117A0 70010BA0 03E00008 */ jr $ra +/* 0117A4 70010BA4 00000000 */ nop + +.L70010BA8: +/* 0117A8 70010BA8 3C088000 */ lui $t0, 0x8000 +/* 0117AC 70010BAC 010B4821 */ addu $t1, $t0, $t3 +/* 0117B0 70010BB0 2529FFF0 */ addiu $t1, $t1, -0x10 +.L70010BB4: +/* 0117B4 70010BB4 BD010000 */ cache 1, ($t0) +/* 0117B8 70010BB8 0109082B */ sltu $at, $t0, $t1 +/* 0117BC 70010BBC 1420FFFD */ bnez $at, .L70010BB4 +/* 0117C0 70010BC0 25080010 */ addiu $t0, $t0, 0x10 +/* 0117C4 70010BC4 03E00008 */ jr $ra +/* 0117C8 70010BC8 00000000 */ nop diff --git a/src/libultra/invalicache.s b/src/libultra/invalicache.s new file mode 100644 index 0000000..2bac877 --- /dev/null +++ b/src/libultra/invalicache.s @@ -0,0 +1,44 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osInvalICache +/* 00DF50 7000D350 18A00011 */ blez $a1, .L7000D398 +/* 00DF54 7000D354 00000000 */ nop +/* 00DF58 7000D358 240B4000 */ li $t3, 16384 +/* 00DF5C 7000D35C 00AB082B */ sltu $at, $a1, $t3 +/* 00DF60 7000D360 1020000F */ beqz $at, .L7000D3A0 +/* 00DF64 7000D364 00000000 */ nop +/* 00DF68 7000D368 00804025 */ move $t0, $a0 +/* 00DF6C 7000D36C 00854821 */ addu $t1, $a0, $a1 +/* 00DF70 7000D370 0109082B */ sltu $at, $t0, $t1 +/* 00DF74 7000D374 10200008 */ beqz $at, .L7000D398 +/* 00DF78 7000D378 00000000 */ nop +/* 00DF7C 7000D37C 310A001F */ andi $t2, $t0, 0x1f +/* 00DF80 7000D380 2529FFE0 */ addiu $t1, $t1, -0x20 +/* 00DF84 7000D384 010A4023 */ subu $t0, $t0, $t2 +.L7000D388: +/* 00DF88 7000D388 BD100000 */ cache 0x10, ($t0) +/* 00DF8C 7000D38C 0109082B */ sltu $at, $t0, $t1 +/* 00DF90 7000D390 1420FFFD */ bnez $at, .L7000D388 +/* 00DF94 7000D394 25080020 */ addiu $t0, $t0, 0x20 +.L7000D398: +/* 00DF98 7000D398 03E00008 */ jr $ra +/* 00DF9C 7000D39C 00000000 */ nop + +.L7000D3A0: +/* 00DFA0 7000D3A0 3C088000 */ lui $t0, 0x8000 +/* 00DFA4 7000D3A4 010B4821 */ addu $t1, $t0, $t3 +/* 00DFA8 7000D3A8 2529FFE0 */ addiu $t1, $t1, -0x20 +.L7000D3AC: +/* 00DFAC 7000D3AC BD000000 */ cache 0, ($t0) +/* 00DFB0 7000D3B0 0109082B */ sltu $at, $t0, $t1 +/* 00DFB4 7000D3B4 1420FFFD */ bnez $at, .L7000D3AC +/* 00DFB8 7000D3B8 25080020 */ addiu $t0, $t0, 0x20 +/* 00DFBC 7000D3BC 03E00008 */ jr $ra +/* 00DFC0 7000D3C0 00000000 */ nop diff --git a/src/libultra/jammesg.s b/src/libultra/jammesg.s new file mode 100644 index 0000000..b459386 --- /dev/null +++ b/src/libultra/jammesg.s @@ -0,0 +1,106 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osJamMesg +/* 01C2B0 7001B6B0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 01C2B4 7001B6B4 AFBF001C */ sw $ra, 0x1c($sp) +/* 01C2B8 7001B6B8 AFA40028 */ sw $a0, 0x28($sp) +/* 01C2BC 7001B6BC AFA5002C */ sw $a1, 0x2c($sp) +/* 01C2C0 7001B6C0 AFA60030 */ sw $a2, 0x30($sp) +/* 01C2C4 7001B6C4 AFB10018 */ sw $s1, 0x18($sp) +/* 01C2C8 7001B6C8 0C00617C */ jal __osDisableInt +/* 01C2CC 7001B6CC AFB00014 */ sw $s0, 0x14($sp) +/* 01C2D0 7001B6D0 8FAE0028 */ lw $t6, 0x28($sp) +/* 01C2D4 7001B6D4 00408025 */ move $s0, $v0 +/* 01C2D8 7001B6D8 8DCF0008 */ lw $t7, 8($t6) +/* 01C2DC 7001B6DC 8DD80010 */ lw $t8, 0x10($t6) +/* 01C2E0 7001B6E0 01F8082A */ slt $at, $t7, $t8 +/* 01C2E4 7001B6E4 14200018 */ bnez $at, .L7001B748 +/* 01C2E8 7001B6E8 00000000 */ nop +.L7001B6EC: +/* 01C2EC 7001B6EC 8FB90030 */ lw $t9, 0x30($sp) +/* 01C2F0 7001B6F0 24010001 */ li $at, 1 +/* 01C2F4 7001B6F4 1721000A */ bne $t9, $at, .L7001B720 +/* 01C2F8 7001B6F8 00000000 */ nop +/* 01C2FC 7001B6FC 3C098002 */ lui $t1, %hi(__osRunningThread) +/* 01C300 7001B700 8D297730 */ lw $t1, %lo(__osRunningThread)($t1) +/* 01C304 7001B704 24080008 */ li $t0, 8 +/* 01C308 7001B708 A5280010 */ sh $t0, 0x10($t1) +/* 01C30C 7001B70C 8FA40028 */ lw $a0, 0x28($sp) +/* 01C310 7001B710 0C0041EB */ jal __osEnqueueAndYield +/* 01C314 7001B714 24840004 */ addiu $a0, $a0, 4 +/* 01C318 7001B718 10000005 */ b .L7001B730 +/* 01C31C 7001B71C 00000000 */ nop +.L7001B720: +/* 01C320 7001B720 0C006184 */ jal __osRestoreInt +/* 01C324 7001B724 02002025 */ move $a0, $s0 +/* 01C328 7001B728 10000030 */ b .L7001B7EC +/* 01C32C 7001B72C 2402FFFF */ li $v0, -1 +.L7001B730: +/* 01C330 7001B730 8FAA0028 */ lw $t2, 0x28($sp) +/* 01C334 7001B734 8D4B0008 */ lw $t3, 8($t2) +/* 01C338 7001B738 8D4C0010 */ lw $t4, 0x10($t2) +/* 01C33C 7001B73C 016C082A */ slt $at, $t3, $t4 +/* 01C340 7001B740 1020FFEA */ beqz $at, .L7001B6EC +/* 01C344 7001B744 00000000 */ nop +.L7001B748: +/* 01C348 7001B748 8FAD0028 */ lw $t5, 0x28($sp) +/* 01C34C 7001B74C 8DAE000C */ lw $t6, 0xc($t5) +/* 01C350 7001B750 8DAF0010 */ lw $t7, 0x10($t5) +/* 01C354 7001B754 01CFC021 */ addu $t8, $t6, $t7 +/* 01C358 7001B758 2719FFFF */ addiu $t9, $t8, -1 +/* 01C35C 7001B75C 032F001A */ div $zero, $t9, $t7 +/* 01C360 7001B760 00004010 */ mfhi $t0 +/* 01C364 7001B764 ADA8000C */ sw $t0, 0xc($t5) +/* 01C368 7001B768 8FAA0028 */ lw $t2, 0x28($sp) +/* 01C36C 7001B76C 8FA9002C */ lw $t1, 0x2c($sp) +/* 01C370 7001B770 15E00002 */ bnez $t7, .L7001B77C +/* 01C374 7001B774 00000000 */ nop +/* 01C378 7001B778 0007000D */ break 7 +.L7001B77C: +/* 01C37C 7001B77C 2401FFFF */ li $at, -1 +/* 01C380 7001B780 15E10004 */ bne $t7, $at, .L7001B794 +/* 01C384 7001B784 3C018000 */ lui $at, 0x8000 +/* 01C388 7001B788 17210002 */ bne $t9, $at, .L7001B794 +/* 01C38C 7001B78C 00000000 */ nop +/* 01C390 7001B790 0006000D */ break 6 +.L7001B794: +/* 01C394 7001B794 8D4C000C */ lw $t4, 0xc($t2) +/* 01C398 7001B798 8D4B0014 */ lw $t3, 0x14($t2) +/* 01C39C 7001B79C 000C7080 */ sll $t6, $t4, 2 +/* 01C3A0 7001B7A0 016EC021 */ addu $t8, $t3, $t6 +/* 01C3A4 7001B7A4 AF090000 */ sw $t1, ($t8) +/* 01C3A8 7001B7A8 8FB90028 */ lw $t9, 0x28($sp) +/* 01C3AC 7001B7AC 8F2F0008 */ lw $t7, 8($t9) +/* 01C3B0 7001B7B0 25E80001 */ addiu $t0, $t7, 1 +/* 01C3B4 7001B7B4 AF280008 */ sw $t0, 8($t9) +/* 01C3B8 7001B7B8 8FAD0028 */ lw $t5, 0x28($sp) +/* 01C3BC 7001B7BC 8DAA0000 */ lw $t2, ($t5) +/* 01C3C0 7001B7C0 8D4C0000 */ lw $t4, ($t2) +/* 01C3C4 7001B7C4 11800006 */ beqz $t4, .L7001B7E0 +/* 01C3C8 7001B7C8 00000000 */ nop +/* 01C3CC 7001B7CC 0C00423D */ jal __osPopThread +/* 01C3D0 7001B7D0 01A02025 */ move $a0, $t5 +/* 01C3D4 7001B7D4 00408825 */ move $s1, $v0 +/* 01C3D8 7001B7D8 0C003560 */ jal osStartThread +/* 01C3DC 7001B7DC 02202025 */ move $a0, $s1 +.L7001B7E0: +/* 01C3E0 7001B7E0 0C006184 */ jal __osRestoreInt +/* 01C3E4 7001B7E4 02002025 */ move $a0, $s0 +/* 01C3E8 7001B7E8 00001025 */ move $v0, $zero +.L7001B7EC: +/* 01C3EC 7001B7EC 8FBF001C */ lw $ra, 0x1c($sp) +/* 01C3F0 7001B7F0 8FB00014 */ lw $s0, 0x14($sp) +/* 01C3F4 7001B7F4 8FB10018 */ lw $s1, 0x18($sp) +/* 01C3F8 7001B7F8 03E00008 */ jr $ra +/* 01C3FC 7001B7FC 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/kdebugserver.s b/src/libultra/kdebugserver.s new file mode 100644 index 0000000..39b34ae --- /dev/null +++ b/src/libultra/kdebugserver.s @@ -0,0 +1,448 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +#needs a proper home but works +.section .bss +glabel __osThreadSave +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 diff --git a/src/libultra/ldiv.s b/src/libultra/ldiv.s new file mode 100644 index 0000000..8f6f41f --- /dev/null +++ b/src/libultra/ldiv.s @@ -0,0 +1,121 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel lldiv +/* 021750 70020B50 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 021754 70020B54 AFA40030 */ sw $a0, 0x30($sp) +/* 021758 70020B58 AFBF0014 */ sw $ra, 0x14($sp) +/* 02175C 70020B5C AFA60038 */ sw $a2, 0x38($sp) +/* 021760 70020B60 AFA7003C */ sw $a3, 0x3c($sp) +/* 021764 70020B64 00C02025 */ move $a0, $a2 +/* 021768 70020B68 00E02825 */ move $a1, $a3 +/* 02176C 70020B6C 8FA70044 */ lw $a3, 0x44($sp) +/* 021770 70020B70 0C003B53 */ jal __ll_div +/* 021774 70020B74 8FA60040 */ lw $a2, 0x40($sp) +/* 021778 70020B78 AFA20020 */ sw $v0, 0x20($sp) +/* 02177C 70020B7C AFA30024 */ sw $v1, 0x24($sp) +/* 021780 70020B80 8FA40040 */ lw $a0, 0x40($sp) +/* 021784 70020B84 8FA50044 */ lw $a1, 0x44($sp) +/* 021788 70020B88 00403025 */ move $a2, $v0 +/* 02178C 70020B8C 0C003B6A */ jal __ll_mul +/* 021790 70020B90 00603825 */ move $a3, $v1 +/* 021794 70020B94 8FAE0038 */ lw $t6, 0x38($sp) +/* 021798 70020B98 8FAF003C */ lw $t7, 0x3c($sp) +/* 02179C 70020B9C 8FA80020 */ lw $t0, 0x20($sp) +/* 0217A0 70020BA0 01C2C023 */ subu $t8, $t6, $v0 +/* 0217A4 70020BA4 01E3082B */ sltu $at, $t7, $v1 +/* 0217A8 70020BA8 0301C023 */ subu $t8, $t8, $at +/* 0217AC 70020BAC 01E3C823 */ subu $t9, $t7, $v1 +/* 0217B0 70020BB0 AFB9002C */ sw $t9, 0x2c($sp) +/* 0217B4 70020BB4 AFB80028 */ sw $t8, 0x28($sp) +/* 0217B8 70020BB8 1D000017 */ bgtz $t0, .L70020C18 +/* 0217BC 70020BBC 8FA90024 */ lw $t1, 0x24($sp) +/* 0217C0 70020BC0 05000003 */ bltz $t0, .L70020BD0 +/* 0217C4 70020BC4 00000000 */ nop +/* 0217C8 70020BC8 10000014 */ b .L70020C1C +/* 0217CC 70020BCC 27A80020 */ addiu $t0, $sp, 0x20 +.L70020BD0: +/* 0217D0 70020BD0 07020012 */ bltzl $t8, .L70020C1C +/* 0217D4 70020BD4 27A80020 */ addiu $t0, $sp, 0x20 +/* 0217D8 70020BD8 1F000003 */ bgtz $t8, .L70020BE8 +/* 0217DC 70020BDC 252B0001 */ addiu $t3, $t1, 1 +/* 0217E0 70020BE0 5320000E */ beql $t9, $zero, .L70020C1C +/* 0217E4 70020BE4 27A80020 */ addiu $t0, $sp, 0x20 +.L70020BE8: +/* 0217E8 70020BE8 8FAC0040 */ lw $t4, 0x40($sp) +/* 0217EC 70020BEC 8FAD0044 */ lw $t5, 0x44($sp) +/* 0217F0 70020BF0 2D610001 */ sltiu $at, $t3, 1 +/* 0217F4 70020BF4 01015021 */ addu $t2, $t0, $at +/* 0217F8 70020BF8 030C7023 */ subu $t6, $t8, $t4 +/* 0217FC 70020BFC 032D082B */ sltu $at, $t9, $t5 +/* 021800 70020C00 01C17023 */ subu $t6, $t6, $at +/* 021804 70020C04 032D7823 */ subu $t7, $t9, $t5 +/* 021808 70020C08 AFAA0020 */ sw $t2, 0x20($sp) +/* 02180C 70020C0C AFAB0024 */ sw $t3, 0x24($sp) +/* 021810 70020C10 AFAF002C */ sw $t7, 0x2c($sp) +/* 021814 70020C14 AFAE0028 */ sw $t6, 0x28($sp) +.L70020C18: +/* 021818 70020C18 27A80020 */ addiu $t0, $sp, 0x20 +.L70020C1C: +/* 02181C 70020C1C 8FA20030 */ lw $v0, 0x30($sp) +/* 021820 70020C20 8D010000 */ lw $at, ($t0) +/* 021824 70020C24 AC410000 */ sw $at, ($v0) +/* 021828 70020C28 8D0B0004 */ lw $t3, 4($t0) +/* 02182C 70020C2C AC4B0004 */ sw $t3, 4($v0) +/* 021830 70020C30 8D010008 */ lw $at, 8($t0) +/* 021834 70020C34 AC410008 */ sw $at, 8($v0) +/* 021838 70020C38 8D0B000C */ lw $t3, 0xc($t0) +/* 02183C 70020C3C AC4B000C */ sw $t3, 0xc($v0) +/* 021840 70020C40 8FBF0014 */ lw $ra, 0x14($sp) +/* 021844 70020C44 27BD0030 */ addiu $sp, $sp, 0x30 +/* 021848 70020C48 03E00008 */ jr $ra +/* 02184C 70020C4C 00000000 */ nop + +glabel ldiv +/* 021850 70020C50 00A6001A */ div $zero, $a1, $a2 +/* 021854 70020C54 00001012 */ mflo $v0 +/* 021858 70020C58 27BDFFF8 */ addiu $sp, $sp, -8 +/* 02185C 70020C5C 14C00002 */ bnez $a2, .L70020C68 +/* 021860 70020C60 00000000 */ nop +/* 021864 70020C64 0007000D */ break 7 +.L70020C68: +/* 021868 70020C68 2401FFFF */ li $at, -1 +/* 02186C 70020C6C 14C10004 */ bne $a2, $at, .L70020C80 +/* 021870 70020C70 3C018000 */ lui $at, 0x8000 +/* 021874 70020C74 14A10002 */ bne $a1, $at, .L70020C80 +/* 021878 70020C78 00000000 */ nop +/* 02187C 70020C7C 0006000D */ break 6 +.L70020C80: +/* 021880 70020C80 00C20019 */ multu $a2, $v0 +/* 021884 70020C84 AFA20000 */ sw $v0, ($sp) +/* 021888 70020C88 27AF0000 */ addiu $t7, $sp, 0 +/* 02188C 70020C8C 00007012 */ mflo $t6 +/* 021890 70020C90 00AE1823 */ subu $v1, $a1, $t6 +/* 021894 70020C94 04410008 */ bgez $v0, .L70020CB8 +/* 021898 70020C98 AFA30004 */ sw $v1, 4($sp) +/* 02189C 70020C9C AFA20000 */ sw $v0, ($sp) +/* 0218A0 70020CA0 18600005 */ blez $v1, .L70020CB8 +/* 0218A4 70020CA4 AFA30004 */ sw $v1, 4($sp) +/* 0218A8 70020CA8 24420001 */ addiu $v0, $v0, 1 +/* 0218AC 70020CAC 00661823 */ subu $v1, $v1, $a2 +/* 0218B0 70020CB0 AFA30004 */ sw $v1, 4($sp) +/* 0218B4 70020CB4 AFA20000 */ sw $v0, ($sp) +.L70020CB8: +/* 0218B8 70020CB8 8DE10000 */ lw $at, ($t7) +/* 0218BC 70020CBC 00801025 */ move $v0, $a0 +/* 0218C0 70020CC0 AC810000 */ sw $at, ($a0) +/* 0218C4 70020CC4 8DE80004 */ lw $t0, 4($t7) +/* 0218C8 70020CC8 27BD0008 */ addiu $sp, $sp, 8 +/* 0218CC 70020CCC 03E00008 */ jr $ra +/* 0218D0 70020CD0 AC880004 */ sw $t0, 4($a0) + diff --git a/src/libultra/leodiskinit.s b/src/libultra/leodiskinit.s new file mode 100644 index 0000000..3315cdc --- /dev/null +++ b/src/libultra/leodiskinit.s @@ -0,0 +1,198 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osLeoDiskInit +/* 0203F0 7001F7F0 240E0002 */ li $t6, 2 +/* 0203F4 7001F7F4 3C018007 */ lui $at, %hi(LeoDiskHandle+0x4) +/* 0203F8 7001F7F8 A02E9004 */ sb $t6, %lo(LeoDiskHandle+0x4)($at) +/* 0203FC 7001F7FC 3C018007 */ lui $at, %hi(LeoDiskHandle+0xC) +/* 020400 7001F800 3C0FA500 */ lui $t7, 0xa500 +/* 020404 7001F804 AC2F900C */ sw $t7, %lo(LeoDiskHandle+0xC)($at) +/* 020408 7001F808 3C018007 */ lui $at, %hi(LeoDiskHandle+0x5) +/* 02040C 7001F80C 24180003 */ li $t8, 3 +/* 020410 7001F810 A0389005 */ sb $t8, %lo(LeoDiskHandle+0x5)($at) +/* 020414 7001F814 3C018007 */ lui $at, %hi(LeoDiskHandle+0x8) +/* 020418 7001F818 24190006 */ li $t9, 6 +/* 02041C 7001F81C A0399008 */ sb $t9, %lo(LeoDiskHandle+0x8)($at) +/* 020420 7001F820 3C018007 */ lui $at, %hi(LeoDiskHandle+0x7) +/* 020424 7001F824 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 020428 7001F828 24080006 */ li $t0, 6 +/* 02042C 7001F82C 24090002 */ li $t1, 2 +/* 020430 7001F830 AFBF0014 */ sw $ra, 0x14($sp) +/* 020434 7001F834 A0289006 */ sb $t0, %lo(LeoDiskHandle+0x6)($at) +/* 020438 7001F838 A0299007 */ sb $t1, %lo(LeoDiskHandle+0x7)($at) +/* 02043C 7001F83C 240A0003 */ li $t2, 3 +/* 020440 7001F840 3C0BA460 */ lui $t3, %hi(PI_BSD_DOM2_LAT_REG) # $t3, 0xa460 +/* 020444 7001F844 AD6A0024 */ sw $t2, %lo(PI_BSD_DOM2_LAT_REG)($t3) +/* 020448 7001F848 3C0C8007 */ lui $t4, %hi(LeoDiskHandle+0x8) +/* 02044C 7001F84C 918C9008 */ lbu $t4, %lo(LeoDiskHandle+0x8)($t4) +/* 020450 7001F850 3C0DA460 */ lui $t5, %hi(PI_BSD_DOM2_PWD_REG) # $t5, 0xa460 +/* 020454 7001F854 3C0E8007 */ lui $t6, %hi(LeoDiskHandle+0x6) +/* 020458 7001F858 ADAC0028 */ sw $t4, %lo(PI_BSD_DOM2_PWD_REG)($t5) +/* 02045C 7001F85C 91CE9006 */ lbu $t6, %lo(LeoDiskHandle+0x6)($t6) +/* 020460 7001F860 3C0FA460 */ lui $t7, %hi(PI_BSD_DOM2_PGS_REG) # $t7, 0xa460 +/* 020464 7001F864 3C188007 */ lui $t8, %hi(LeoDiskHandle+0x7) +/* 020468 7001F868 ADEE002C */ sw $t6, %lo(PI_BSD_DOM2_PGS_REG)($t7) +/* 02046C 7001F86C 93189007 */ lbu $t8, %lo(LeoDiskHandle+0x7)($t8) +/* 020470 7001F870 3C048007 */ lui $a0, %hi(LeoDiskHandle) +/* 020474 7001F874 3C19A460 */ lui $t9, %hi(PI_BSD_DOM2_RLS_REG) # $t9, 0xa460 +/* 020478 7001F878 24849000 */ addiu $a0, %lo(LeoDiskHandle) # addiu $a0, $a0, -0x7000 +/* 02047C 7001F87C 24840014 */ addiu $a0, $a0, 0x14 +/* 020480 7001F880 24050060 */ li $a1, 96 +/* 020484 7001F884 0C005F10 */ jal bzero +/* 020488 7001F888 AF380030 */ sw $t8, %lo(PI_BSD_DOM2_RLS_REG)($t9) +/* 02048C 7001F88C 0C00617C */ jal __osDisableInt +/* 020490 7001F890 00000000 */ nop +/* 020494 7001F894 3C088002 */ lui $t0, %hi(__osPiTable) +/* 020498 7001F898 8D0877AC */ lw $t0, %lo(__osPiTable)($t0) +/* 02049C 7001F89C 3C018007 */ lui $at, %hi(LeoDiskHandle) +/* 0204A0 7001F8A0 3C098007 */ lui $t1, %hi(LeoDiskHandle) +/* 0204A4 7001F8A4 AC289000 */ sw $t0, %lo(LeoDiskHandle)($at) +/* 0204A8 7001F8A8 3C018002 */ lui $at, %hi(__osPiTable) +/* 0204AC 7001F8AC 25299000 */ addiu $t1, %lo(LeoDiskHandle) # addiu $t1, $t1, -0x7000 +/* 0204B0 7001F8B0 AC2977AC */ sw $t1, %lo(__osPiTable)($at) +/* 0204B4 7001F8B4 AFA2001C */ sw $v0, 0x1c($sp) +/* 0204B8 7001F8B8 3C018007 */ lui $at, %hi(__osDiskHandle) +/* 0204BC 7001F8BC AC299074 */ sw $t1, %lo(__osDiskHandle)($at) +/* 0204C0 7001F8C0 0C006184 */ jal __osRestoreInt +/* 0204C4 7001F8C4 8FA4001C */ lw $a0, 0x1c($sp) +/* 0204C8 7001F8C8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0204CC 7001F8CC 3C028007 */ lui $v0, %hi(LeoDiskHandle) +/* 0204D0 7001F8D0 24429000 */ addiu $v0, %lo(LeoDiskHandle) # addiu $v0, $v0, -0x7000 +/* 0204D4 7001F8D4 03E00008 */ jr $ra +/* 0204D8 7001F8D8 27BD0020 */ addiu $sp, $sp, 0x20 + +/* 0204DC 7001F8DC 00000000 */ nop +.section .bss +glabel LeoDiskHandle +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 + +glabel __osDiskHandle +.word 0 +.word 0, 0 + diff --git a/src/libultra/leointerrupt.s b/src/libultra/leointerrupt.s new file mode 100644 index 0000000..7799080 --- /dev/null +++ b/src/libultra/leointerrupt.s @@ -0,0 +1,4722 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .bss +glabel leoDiskStack +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 + + +.section .text +glabel __osLeoInterrupt +/* 018930 70017D30 3C0E8002 */ lui $t6, %hi(osDiskExist) +/* 018934 70017D34 8DCE6990 */ lw $t6, %lo(osDiskExist)($t6) +/* 018938 70017D38 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 01893C 70017D3C AFBF001C */ sw $ra, 0x1c($sp) +/* 018940 70017D40 15C00003 */ bnez $t6, .L70017D50 +/* 018944 70017D44 00000000 */ nop +/* 018948 70017D48 100001AE */ b .L70018404 +/* 01894C 70017D4C 00001025 */ move $v0, $zero +.L70017D50: +/* 018950 70017D50 3C0F8007 */ lui $t7, %hi(__osDiskHandle) +/* 018954 70017D54 8DEF9074 */ lw $t7, %lo(__osDiskHandle)($t7) +/* 018958 70017D58 3C0BA460 */ lui $t3, %hi(PI_STATUS_REG) # $t3, 0xa460 +/* 01895C 70017D5C 25F80014 */ addiu $t8, $t7, 0x14 +/* 018960 70017D60 AFB80030 */ sw $t8, 0x30($sp) +/* 018964 70017D64 95F9001A */ lhu $t9, 0x1a($t7) +/* 018968 70017D68 001940C0 */ sll $t0, $t9, 3 +/* 01896C 70017D6C 01194021 */ addu $t0, $t0, $t9 +/* 018970 70017D70 00084080 */ sll $t0, $t0, 2 +/* 018974 70017D74 03084821 */ addu $t1, $t8, $t0 +/* 018978 70017D78 252A0018 */ addiu $t2, $t1, 0x18 +/* 01897C 70017D7C AFAA002C */ sw $t2, 0x2c($sp) +/* 018980 70017D80 8D6C0010 */ lw $t4, %lo(PI_STATUS_REG)($t3) +/* 018984 70017D84 AFAC0038 */ sw $t4, 0x38($sp) +/* 018988 70017D88 8FAD0038 */ lw $t5, 0x38($sp) +/* 01898C 70017D8C 31AE0001 */ andi $t6, $t5, 1 +/* 018990 70017D90 11C00034 */ beqz $t6, .L70017E64 +/* 018994 70017D94 00000000 */ nop +/* 018998 70017D98 240F0003 */ li $t7, 3 +/* 01899C 70017D9C 3C19A460 */ lui $t9, %hi(PI_STATUS_REG) # $t9, 0xa460 +/* 0189A0 70017DA0 AF2F0010 */ sw $t7, %lo(PI_STATUS_REG)($t9) +/* 0189A4 70017DA4 3C18A460 */ lui $t8, %hi(PI_STATUS_REG) # $t8, 0xa460 +/* 0189A8 70017DA8 8F080010 */ lw $t0, %lo(PI_STATUS_REG)($t8) +/* 0189AC 70017DAC AFA80038 */ sw $t0, 0x38($sp) +/* 0189B0 70017DB0 8FA90038 */ lw $t1, 0x38($sp) +/* 0189B4 70017DB4 312A0002 */ andi $t2, $t1, 2 +/* 0189B8 70017DB8 11400008 */ beqz $t2, .L70017DDC +/* 0189BC 70017DBC 00000000 */ nop +.L70017DC0: +/* 0189C0 70017DC0 3C0BA460 */ lui $t3, %hi(PI_STATUS_REG) # $t3, 0xa460 +/* 0189C4 70017DC4 8D6C0010 */ lw $t4, %lo(PI_STATUS_REG)($t3) +/* 0189C8 70017DC8 AFAC0038 */ sw $t4, 0x38($sp) +/* 0189CC 70017DCC 8FAD0038 */ lw $t5, 0x38($sp) +/* 0189D0 70017DD0 31AE0002 */ andi $t6, $t5, 2 +/* 0189D4 70017DD4 15C0FFFA */ bnez $t6, .L70017DC0 +/* 0189D8 70017DD8 00000000 */ nop +.L70017DDC: +/* 0189DC 70017DDC 3C0FA500 */ lui $t7, %hi(ASIC_STATUS) # $t7, 0xa500 +/* 0189E0 70017DE0 8DF90508 */ lw $t9, %lo(ASIC_STATUS)($t7) +/* 0189E4 70017DE4 3C010200 */ lui $at, 0x200 +/* 0189E8 70017DE8 AFB9003C */ sw $t9, 0x3c($sp) +/* 0189EC 70017DEC 8FB8003C */ lw $t8, 0x3c($sp) +/* 0189F0 70017DF0 03014024 */ and $t0, $t8, $at +/* 0189F4 70017DF4 11000015 */ beqz $t0, .L70017E4C +/* 0189F8 70017DF8 00000000 */ nop +/* 0189FC 70017DFC 3C09A460 */ lui $t1, %hi(PI_STATUS_REG) # $t1, 0xa460 +/* 018A00 70017E00 8D2A0010 */ lw $t2, %lo(PI_STATUS_REG)($t1) +/* 018A04 70017E04 AFAA0038 */ sw $t2, 0x38($sp) +/* 018A08 70017E08 8FAB0038 */ lw $t3, 0x38($sp) +/* 018A0C 70017E0C 316C0002 */ andi $t4, $t3, 2 +/* 018A10 70017E10 11800008 */ beqz $t4, .L70017E34 +/* 018A14 70017E14 00000000 */ nop +.L70017E18: +/* 018A18 70017E18 3C0DA460 */ lui $t5, %hi(PI_STATUS_REG) # $t5, 0xa460 +/* 018A1C 70017E1C 8DAE0010 */ lw $t6, %lo(PI_STATUS_REG)($t5) +/* 018A20 70017E20 AFAE0038 */ sw $t6, 0x38($sp) +/* 018A24 70017E24 8FAF0038 */ lw $t7, 0x38($sp) +/* 018A28 70017E28 31F90002 */ andi $t9, $t7, 2 +/* 018A2C 70017E2C 1720FFFA */ bnez $t9, .L70017E18 +/* 018A30 70017E30 00000000 */ nop +.L70017E34: +/* 018A34 70017E34 8FB80030 */ lw $t8, 0x30($sp) +/* 018A38 70017E38 3C010100 */ lui $at, 0x100 +/* 018A3C 70017E3C 3C0AA500 */ lui $t2, %hi(ASIC_BM_STATUS) # $t2, 0xa500 +/* 018A40 70017E40 8F080010 */ lw $t0, 0x10($t8) +/* 018A44 70017E44 01014825 */ or $t1, $t0, $at +/* 018A48 70017E48 AD490510 */ sw $t1, %lo(ASIC_BM_STATUS)($t2) +.L70017E4C: +/* 018A4C 70017E4C 8FAC002C */ lw $t4, 0x2c($sp) +/* 018A50 70017E50 240B004B */ li $t3, 75 +/* 018A54 70017E54 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018A58 70017E58 AD8B0000 */ sw $t3, ($t4) +/* 018A5C 70017E5C 10000169 */ b .L70018404 +/* 018A60 70017E60 24020001 */ li $v0, 1 +.L70017E64: +/* 018A64 70017E64 3C0DA460 */ lui $t5, %hi(PI_STATUS_REG) # $t5, 0xa460 +/* 018A68 70017E68 8DAE0010 */ lw $t6, %lo(PI_STATUS_REG)($t5) +/* 018A6C 70017E6C AFAE0038 */ sw $t6, 0x38($sp) +/* 018A70 70017E70 8FAF0038 */ lw $t7, 0x38($sp) +/* 018A74 70017E74 31F90002 */ andi $t9, $t7, 2 +/* 018A78 70017E78 13200008 */ beqz $t9, .L70017E9C +/* 018A7C 70017E7C 00000000 */ nop +.L70017E80: +/* 018A80 70017E80 3C18A460 */ lui $t8, %hi(PI_STATUS_REG) # $t8, 0xa460 +/* 018A84 70017E84 8F080010 */ lw $t0, %lo(PI_STATUS_REG)($t8) +/* 018A88 70017E88 AFA80038 */ sw $t0, 0x38($sp) +/* 018A8C 70017E8C 8FA90038 */ lw $t1, 0x38($sp) +/* 018A90 70017E90 312A0002 */ andi $t2, $t1, 2 +/* 018A94 70017E94 1540FFFA */ bnez $t2, .L70017E80 +/* 018A98 70017E98 00000000 */ nop +.L70017E9C: +/* 018A9C 70017E9C 3C0BA500 */ lui $t3, %hi(ASIC_STATUS) # $t3, 0xa500 +/* 018AA0 70017EA0 8D6C0508 */ lw $t4, %lo(ASIC_STATUS)($t3) +/* 018AA4 70017EA4 3C010200 */ lui $at, 0x200 +/* 018AA8 70017EA8 AFAC003C */ sw $t4, 0x3c($sp) +/* 018AAC 70017EAC 8FAD003C */ lw $t5, 0x3c($sp) +/* 018AB0 70017EB0 01A17024 */ and $t6, $t5, $at +/* 018AB4 70017EB4 11C00019 */ beqz $t6, .L70017F1C +/* 018AB8 70017EB8 00000000 */ nop +/* 018ABC 70017EBC 3C0FA460 */ lui $t7, %hi(PI_STATUS_REG) # $t7, 0xa460 +/* 018AC0 70017EC0 8DF90010 */ lw $t9, %lo(PI_STATUS_REG)($t7) +/* 018AC4 70017EC4 AFB90038 */ sw $t9, 0x38($sp) +/* 018AC8 70017EC8 8FB80038 */ lw $t8, 0x38($sp) +/* 018ACC 70017ECC 33080002 */ andi $t0, $t8, 2 +/* 018AD0 70017ED0 11000008 */ beqz $t0, .L70017EF4 +/* 018AD4 70017ED4 00000000 */ nop +.L70017ED8: +/* 018AD8 70017ED8 3C09A460 */ lui $t1, %hi(PI_STATUS_REG) # $t1, 0xa460 +/* 018ADC 70017EDC 8D2A0010 */ lw $t2, %lo(PI_STATUS_REG)($t1) +/* 018AE0 70017EE0 AFAA0038 */ sw $t2, 0x38($sp) +/* 018AE4 70017EE4 8FAB0038 */ lw $t3, 0x38($sp) +/* 018AE8 70017EE8 316C0002 */ andi $t4, $t3, 2 +/* 018AEC 70017EEC 1580FFFA */ bnez $t4, .L70017ED8 +/* 018AF0 70017EF0 00000000 */ nop +.L70017EF4: +/* 018AF4 70017EF4 8FAD0030 */ lw $t5, 0x30($sp) +/* 018AF8 70017EF8 3C010100 */ lui $at, 0x100 +/* 018AFC 70017EFC 3C19A500 */ lui $t9, %hi(ASIC_BM_STATUS) # $t9, 0xa500 +/* 018B00 70017F00 8DAE0010 */ lw $t6, 0x10($t5) +/* 018B04 70017F04 00001025 */ move $v0, $zero +/* 018B08 70017F08 01C17825 */ or $t7, $t6, $at +/* 018B0C 70017F0C AF2F0510 */ sw $t7, %lo(ASIC_BM_STATUS)($t9) +/* 018B10 70017F10 8FB8002C */ lw $t8, 0x2c($sp) +/* 018B14 70017F14 1000013B */ b .L70018404 +/* 018B18 70017F18 AF000000 */ sw $zero, ($t8) +.L70017F1C: +/* 018B1C 70017F1C 8FA8003C */ lw $t0, 0x3c($sp) +/* 018B20 70017F20 3C010800 */ lui $at, 0x800 +/* 018B24 70017F24 01014824 */ and $t1, $t0, $at +/* 018B28 70017F28 11200011 */ beqz $t1, .L70017F70 +/* 018B2C 70017F2C 00000000 */ nop +/* 018B30 70017F30 8FAB002C */ lw $t3, 0x2c($sp) +/* 018B34 70017F34 240A0003 */ li $t2, 3 +/* 018B38 70017F38 0C00613F */ jal __osLeoInterrupt_sub2 +/* 018B3C 70017F3C AD6A0000 */ sw $t2, ($t3) +/* 018B40 70017F40 240C0002 */ li $t4, 2 +/* 018B44 70017F44 3C0DA460 */ lui $t5, %hi(PI_STATUS_REG) # $t5, 0xa460 +/* 018B48 70017F48 ADAC0010 */ sw $t4, %lo(PI_STATUS_REG)($t5) +/* 018B4C 70017F4C 3C0E8002 */ lui $t6, %hi(__OSGlobalIntMask) +/* 018B50 70017F50 8DCE698C */ lw $t6, %lo(__OSGlobalIntMask)($t6) +/* 018B54 70017F54 3C010010 */ lui $at, (0x00100401 >> 16) # lui $at, 0x10 +/* 018B58 70017F58 34210401 */ ori $at, (0x00100401 & 0xFFFF) # ori $at, $at, 0x401 +/* 018B5C 70017F5C 01C17825 */ or $t7, $t6, $at +/* 018B60 70017F60 3C018002 */ lui $at, %hi(__OSGlobalIntMask) +/* 018B64 70017F64 AC2F698C */ sw $t7, %lo(__OSGlobalIntMask)($at) +/* 018B68 70017F68 10000126 */ b .L70018404 +/* 018B6C 70017F6C 24020001 */ li $v0, 1 +.L70017F70: +/* 018B70 70017F70 8FB90030 */ lw $t9, 0x30($sp) +/* 018B74 70017F74 24010001 */ li $at, 1 +/* 018B78 70017F78 8F380000 */ lw $t8, ($t9) +/* 018B7C 70017F7C 1701003B */ bne $t8, $at, .L7001806C +/* 018B80 70017F80 00000000 */ nop +/* 018B84 70017F84 8FA8003C */ lw $t0, 0x3c($sp) +/* 018B88 70017F88 3C014000 */ lui $at, 0x4000 +/* 018B8C 70017F8C 01014824 */ and $t1, $t0, $at +/* 018B90 70017F90 15200021 */ bnez $t1, .L70018018 +/* 018B94 70017F94 00000000 */ nop +/* 018B98 70017F98 972C0004 */ lhu $t4, 4($t9) +/* 018B9C 70017F9C 8F2A0008 */ lw $t2, 8($t9) +/* 018BA0 70017FA0 000C6880 */ sll $t5, $t4, 2 +/* 018BA4 70017FA4 01AC6821 */ addu $t5, $t5, $t4 +/* 018BA8 70017FA8 000D6880 */ sll $t5, $t5, 2 +/* 018BAC 70017FAC 01AC6821 */ addu $t5, $t5, $t4 +/* 018BB0 70017FB0 000D6880 */ sll $t5, $t5, 2 +/* 018BB4 70017FB4 01AC6821 */ addu $t5, $t5, $t4 +/* 018BB8 70017FB8 254B0001 */ addiu $t3, $t2, 1 +/* 018BBC 70017FBC 116D0007 */ beq $t3, $t5, .L70017FDC +/* 018BC0 70017FC0 00000000 */ nop +/* 018BC4 70017FC4 8FAF002C */ lw $t7, 0x2c($sp) +/* 018BC8 70017FC8 240E0006 */ li $t6, 6 +/* 018BCC 70017FCC 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018BD0 70017FD0 ADEE0000 */ sw $t6, ($t7) +/* 018BD4 70017FD4 1000010B */ b .L70018404 +/* 018BD8 70017FD8 24020001 */ li $v0, 1 +.L70017FDC: +/* 018BDC 70017FDC 24180002 */ li $t8, 2 +/* 018BE0 70017FE0 3C08A460 */ lui $t0, %hi(PI_STATUS_REG) # $t0, 0xa460 +/* 018BE4 70017FE4 AD180010 */ sw $t8, %lo(PI_STATUS_REG)($t0) +/* 018BE8 70017FE8 3C098002 */ lui $t1, %hi(__OSGlobalIntMask) +/* 018BEC 70017FEC 8D29698C */ lw $t1, %lo(__OSGlobalIntMask)($t1) +/* 018BF0 70017FF0 3C010010 */ lui $at, (0x00100401 >> 16) # lui $at, 0x10 +/* 018BF4 70017FF4 34210401 */ ori $at, (0x00100401 & 0xFFFF) # ori $at, $at, 0x401 +/* 018BF8 70017FF8 01215025 */ or $t2, $t1, $at +/* 018BFC 70017FFC 8FB9002C */ lw $t9, 0x2c($sp) +/* 018C00 70018000 3C018002 */ lui $at, %hi(__OSGlobalIntMask) +/* 018C04 70018004 AC2A698C */ sw $t2, %lo(__OSGlobalIntMask)($at) +/* 018C08 70018008 0C00613F */ jal __osLeoInterrupt_sub2 +/* 018C0C 7001800C AF200000 */ sw $zero, ($t9) +/* 018C10 70018010 100000FC */ b .L70018404 +/* 018C14 70018014 24020001 */ li $v0, 1 +.L70018018: +/* 018C18 70018018 8FAC002C */ lw $t4, 0x2c($sp) +/* 018C1C 7001801C 3C048007 */ lui $a0, %hi(__osDiskHandle) +/* 018C20 70018020 3C060500 */ lui $a2, (0x05000400 >> 16) # lui $a2, 0x500 +/* 018C24 70018024 8D8B0004 */ lw $t3, 4($t4) +/* 018C28 70018028 8D8D000C */ lw $t5, 0xc($t4) +/* 018C2C 7001802C 34C60400 */ ori $a2, (0x05000400 & 0xFFFF) # ori $a2, $a2, 0x400 +/* 018C30 70018030 24050001 */ li $a1, 1 +/* 018C34 70018034 016D7021 */ addu $t6, $t3, $t5 +/* 018C38 70018038 AD8E0004 */ sw $t6, 4($t4) +/* 018C3C 7001803C 8FAF0030 */ lw $t7, 0x30($sp) +/* 018C40 70018040 8DF80008 */ lw $t8, 8($t7) +/* 018C44 70018044 27080001 */ addiu $t0, $t8, 1 +/* 018C48 70018048 ADE80008 */ sw $t0, 8($t7) +/* 018C4C 7001804C 8FA9002C */ lw $t1, 0x2c($sp) +/* 018C50 70018050 8C849074 */ lw $a0, %lo(__osDiskHandle)($a0) +/* 018C54 70018054 8D2A000C */ lw $t2, 0xc($t1) +/* 018C58 70018058 8D270004 */ lw $a3, 4($t1) +/* 018C5C 7001805C 0C00794C */ jal osEPiRawStartDma +/* 018C60 70018060 AFAA0010 */ sw $t2, 0x10($sp) +/* 018C64 70018064 100000E7 */ b .L70018404 +/* 018C68 70018068 24020001 */ li $v0, 1 +.L7001806C: +/* 018C6C 7001806C 8FB90030 */ lw $t9, 0x30($sp) +/* 018C70 70018070 8F2B0000 */ lw $t3, ($t9) +/* 018C74 70018074 156000DE */ bnez $t3, .L700183F0 +/* 018C78 70018078 00000000 */ nop +/* 018C7C 7001807C 972D0004 */ lhu $t5, 4($t9) +/* 018C80 70018080 24010003 */ li $at, 3 +/* 018C84 70018084 15A10017 */ bne $t5, $at, .L700180E4 +/* 018C88 70018088 00000000 */ nop +/* 018C8C 7001808C 8FAC002C */ lw $t4, 0x2c($sp) +/* 018C90 70018090 8F2E0008 */ lw $t6, 8($t9) +/* 018C94 70018094 8D980010 */ lw $t8, 0x10($t4) +/* 018C98 70018098 27080011 */ addiu $t0, $t8, 0x11 +/* 018C9C 7001809C 010E082A */ slt $at, $t0, $t6 +/* 018CA0 700180A0 10200005 */ beqz $at, .L700180B8 +/* 018CA4 700180A4 00000000 */ nop +/* 018CA8 700180A8 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018CAC 700180AC AD800000 */ sw $zero, ($t4) +/* 018CB0 700180B0 100000D4 */ b .L70018404 +/* 018CB4 700180B4 24020001 */ li $v0, 1 +.L700180B8: +/* 018CB8 700180B8 8FAF003C */ lw $t7, 0x3c($sp) +/* 018CBC 700180BC 3C014000 */ lui $at, 0x4000 +/* 018CC0 700180C0 01E14824 */ and $t1, $t7, $at +/* 018CC4 700180C4 1520000C */ bnez $t1, .L700180F8 +/* 018CC8 700180C8 00000000 */ nop +/* 018CCC 700180CC 8FAB002C */ lw $t3, 0x2c($sp) +/* 018CD0 700180D0 240A0011 */ li $t2, 17 +/* 018CD4 700180D4 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018CD8 700180D8 AD6A0000 */ sw $t2, ($t3) +/* 018CDC 700180DC 100000C9 */ b .L70018404 +/* 018CE0 700180E0 24020001 */ li $v0, 1 +.L700180E4: +/* 018CE4 700180E4 8FAD002C */ lw $t5, 0x2c($sp) +/* 018CE8 700180E8 8DB90004 */ lw $t9, 4($t5) +/* 018CEC 700180EC 8DB8000C */ lw $t8, 0xc($t5) +/* 018CF0 700180F0 03387021 */ addu $t6, $t9, $t8 +/* 018CF4 700180F4 ADAE0004 */ sw $t6, 4($t5) +.L700180F8: +/* 018CF8 700180F8 3C08A500 */ lui $t0, %hi(ASIC_BM_STATUS) # $t0, 0xa500 +/* 018CFC 700180FC 8D0C0510 */ lw $t4, %lo(ASIC_BM_STATUS)($t0) +/* 018D00 70018100 3C010020 */ lui $at, 0x20 +/* 018D04 70018104 AFAC0034 */ sw $t4, 0x34($sp) +/* 018D08 70018108 8FAF0034 */ lw $t7, 0x34($sp) +/* 018D0C 7001810C 01E14824 */ and $t1, $t7, $at +/* 018D10 70018110 11200004 */ beqz $t1, .L70018124 +/* 018D14 70018114 3C010040 */ lui $at, 0x40 +/* 018D18 70018118 01E15024 */ and $t2, $t7, $at +/* 018D1C 7001811C 15400006 */ bnez $t2, .L70018138 +/* 018D20 70018120 00000000 */ nop +.L70018124: +/* 018D24 70018124 8FAB0034 */ lw $t3, 0x34($sp) +/* 018D28 70018128 3C010200 */ lui $at, 0x200 +/* 018D2C 7001812C 0161C824 */ and $t9, $t3, $at +/* 018D30 70018130 13200022 */ beqz $t9, .L700181BC +/* 018D34 70018134 00000000 */ nop +.L70018138: +/* 018D38 70018138 8FB8002C */ lw $t8, 0x2c($sp) +/* 018D3C 7001813C 8F0E0010 */ lw $t6, 0x10($t8) +/* 018D40 70018140 2DC10004 */ sltiu $at, $t6, 4 +/* 018D44 70018144 14200010 */ bnez $at, .L70018188 +/* 018D48 70018148 00000000 */ nop +/* 018D4C 7001814C 8FAD0030 */ lw $t5, 0x30($sp) +/* 018D50 70018150 24010003 */ li $at, 3 +/* 018D54 70018154 95A80004 */ lhu $t0, 4($t5) +/* 018D58 70018158 15010005 */ bne $t0, $at, .L70018170 +/* 018D5C 7001815C 00000000 */ nop +/* 018D60 70018160 8DAC0008 */ lw $t4, 8($t5) +/* 018D64 70018164 29810053 */ slti $at, $t4, 0x53 +/* 018D68 70018168 14200010 */ bnez $at, .L700181AC +/* 018D6C 7001816C 00000000 */ nop +.L70018170: +/* 018D70 70018170 8FAF002C */ lw $t7, 0x2c($sp) +/* 018D74 70018174 24090011 */ li $t1, 17 +/* 018D78 70018178 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018D7C 7001817C ADE90000 */ sw $t1, ($t7) +/* 018D80 70018180 100000A0 */ b .L70018404 +/* 018D84 70018184 24020001 */ li $v0, 1 +.L70018188: +/* 018D88 70018188 8FAA002C */ lw $t2, 0x2c($sp) +/* 018D8C 7001818C 8FB90030 */ lw $t9, 0x30($sp) +/* 018D90 70018190 8D4B0010 */ lw $t3, 0x10($t2) +/* 018D94 70018194 AFAB0028 */ sw $t3, 0x28($sp) +/* 018D98 70018198 8F380008 */ lw $t8, 8($t9) +/* 018D9C 7001819C 000B4080 */ sll $t0, $t3, 2 +/* 018DA0 700181A0 01486821 */ addu $t5, $t2, $t0 +/* 018DA4 700181A4 270E0001 */ addiu $t6, $t8, 1 +/* 018DA8 700181A8 ADAE0014 */ sw $t6, 0x14($t5) +.L700181AC: +/* 018DAC 700181AC 8FAC002C */ lw $t4, 0x2c($sp) +/* 018DB0 700181B0 8D890010 */ lw $t1, 0x10($t4) +/* 018DB4 700181B4 252F0001 */ addiu $t7, $t1, 1 +/* 018DB8 700181B8 AD8F0010 */ sw $t7, 0x10($t4) +.L700181BC: +/* 018DBC 700181BC 8FB9003C */ lw $t9, 0x3c($sp) +/* 018DC0 700181C0 3C011000 */ lui $at, 0x1000 +/* 018DC4 700181C4 0321C024 */ and $t8, $t9, $at +/* 018DC8 700181C8 13000035 */ beqz $t8, .L700182A0 +/* 018DCC 700181CC 00000000 */ nop +/* 018DD0 700181D0 8FAB0030 */ lw $t3, 0x30($sp) +/* 018DD4 700181D4 24010057 */ li $at, 87 +/* 018DD8 700181D8 8D6A0008 */ lw $t2, 8($t3) +/* 018DDC 700181DC 11410005 */ beq $t2, $at, .L700181F4 +/* 018DE0 700181E0 00000000 */ nop +/* 018DE4 700181E4 8FAE002C */ lw $t6, 0x2c($sp) +/* 018DE8 700181E8 24080006 */ li $t0, 6 +/* 018DEC 700181EC 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018DF0 700181F0 ADC80000 */ sw $t0, ($t6) +.L700181F4: +/* 018DF4 700181F4 8FAD0030 */ lw $t5, 0x30($sp) +/* 018DF8 700181F8 24010002 */ li $at, 2 +/* 018DFC 700181FC 95A90004 */ lhu $t1, 4($t5) +/* 018E00 70018200 1521000F */ bne $t1, $at, .L70018240 +/* 018E04 70018204 00000000 */ nop +/* 018E08 70018208 95AF0006 */ lhu $t7, 6($t5) +/* 018E0C 7001820C 15E0000C */ bnez $t7, .L70018240 +/* 018E10 70018210 00000000 */ nop +/* 018E14 70018214 240C0001 */ li $t4, 1 +/* 018E18 70018218 A5AC0006 */ sh $t4, 6($t5) +/* 018E1C 7001821C 8FB80030 */ lw $t8, 0x30($sp) +/* 018E20 70018220 2419FFFF */ li $t9, -1 +/* 018E24 70018224 AF190008 */ sw $t9, 8($t8) +/* 018E28 70018228 8FAB0030 */ lw $t3, 0x30($sp) +/* 018E2C 7001822C 8D6A0040 */ lw $t2, 0x40($t3) +/* 018E30 70018230 8D680048 */ lw $t0, 0x48($t3) +/* 018E34 70018234 01487023 */ subu $t6, $t2, $t0 +/* 018E38 70018238 1000000B */ b .L70018268 +/* 018E3C 7001823C AD6E0040 */ sw $t6, 0x40($t3) +.L70018240: +/* 018E40 70018240 24090002 */ li $t1, 2 +/* 018E44 70018244 3C0FA460 */ lui $t7, %hi(PI_STATUS_REG) # $t7, 0xa460 +/* 018E48 70018248 ADE90010 */ sw $t1, %lo(PI_STATUS_REG)($t7) +/* 018E4C 7001824C 3C0C8002 */ lui $t4, %hi(__OSGlobalIntMask) +/* 018E50 70018250 8D8C698C */ lw $t4, %lo(__OSGlobalIntMask)($t4) +/* 018E54 70018254 3C010010 */ lui $at, (0x00100401 >> 16) # lui $at, 0x10 +/* 018E58 70018258 34210401 */ ori $at, (0x00100401 & 0xFFFF) # ori $at, $at, 0x401 +/* 018E5C 7001825C 01816825 */ or $t5, $t4, $at +/* 018E60 70018260 3C018002 */ lui $at, %hi(__OSGlobalIntMask) +/* 018E64 70018264 AC2D698C */ sw $t5, %lo(__OSGlobalIntMask)($at) +.L70018268: +/* 018E68 70018268 8FB9002C */ lw $t9, 0x2c($sp) +/* 018E6C 7001826C 3C048007 */ lui $a0, %hi(__osDiskHandle) +/* 018E70 70018270 8C849074 */ lw $a0, %lo(__osDiskHandle)($a0) +/* 018E74 70018274 8F38000C */ lw $t8, 0xc($t9) +/* 018E78 70018278 8F270008 */ lw $a3, 8($t9) +/* 018E7C 7001827C 00002825 */ move $a1, $zero +/* 018E80 70018280 00185080 */ sll $t2, $t8, 2 +/* 018E84 70018284 AFAA0010 */ sw $t2, 0x10($sp) +/* 018E88 70018288 0C00794C */ jal osEPiRawStartDma +/* 018E8C 7001828C 3C060500 */ lui $a2, 0x500 +/* 018E90 70018290 8FA8002C */ lw $t0, 0x2c($sp) +/* 018E94 70018294 24020001 */ li $v0, 1 +/* 018E98 70018298 1000005A */ b .L70018404 +/* 018E9C 7001829C AD000000 */ sw $zero, ($t0) +.L700182A0: +/* 018EA0 700182A0 8FAE0030 */ lw $t6, 0x30($sp) +/* 018EA4 700182A4 2401FFFF */ li $at, -1 +/* 018EA8 700182A8 8DCB0008 */ lw $t3, 8($t6) +/* 018EAC 700182AC 15610021 */ bne $t3, $at, .L70018334 +/* 018EB0 700182B0 00000000 */ nop +/* 018EB4 700182B4 95C90004 */ lhu $t1, 4($t6) +/* 018EB8 700182B8 24010002 */ li $at, 2 +/* 018EBC 700182BC 1521001D */ bne $t1, $at, .L70018334 +/* 018EC0 700182C0 00000000 */ nop +/* 018EC4 700182C4 95CF0006 */ lhu $t7, 6($t6) +/* 018EC8 700182C8 24010001 */ li $at, 1 +/* 018ECC 700182CC 15E10019 */ bne $t7, $at, .L70018334 +/* 018ED0 700182D0 00000000 */ nop +/* 018ED4 700182D4 25CC0018 */ addiu $t4, $t6, 0x18 +/* 018ED8 700182D8 AFAC0024 */ sw $t4, 0x24($sp) +/* 018EDC 700182DC 8DCD0028 */ lw $t5, 0x28($t6) +/* 018EE0 700182E0 15A00011 */ bnez $t5, .L70018328 +/* 018EE4 700182E4 00000000 */ nop +/* 018EE8 700182E8 8DD90020 */ lw $t9, 0x20($t6) +/* 018EEC 700182EC 8F380000 */ lw $t8, ($t9) +/* 018EF0 700182F0 8F2A0004 */ lw $t2, 4($t9) +/* 018EF4 700182F4 8F2B0008 */ lw $t3, 8($t9) +/* 018EF8 700182F8 8F2F000C */ lw $t7, 0xc($t9) +/* 018EFC 700182FC 030A4025 */ or $t0, $t8, $t2 +/* 018F00 70018300 010B4825 */ or $t1, $t0, $t3 +/* 018F04 70018304 01E96025 */ or $t4, $t7, $t1 +/* 018F08 70018308 11800007 */ beqz $t4, .L70018328 +/* 018F0C 7001830C 00000000 */ nop +/* 018F10 70018310 8FAE002C */ lw $t6, 0x2c($sp) +/* 018F14 70018314 240D0006 */ li $t5, 6 +/* 018F18 70018318 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018F1C 7001831C ADCD0000 */ sw $t5, ($t6) +/* 018F20 70018320 10000038 */ b .L70018404 +/* 018F24 70018324 24020001 */ li $v0, 1 +.L70018328: +/* 018F28 70018328 8FB8002C */ lw $t8, 0x2c($sp) +/* 018F2C 7001832C 0C00613F */ jal __osLeoInterrupt_sub2 +/* 018F30 70018330 AF000000 */ sw $zero, ($t8) +.L70018334: +/* 018F34 70018334 8FAA0030 */ lw $t2, 0x30($sp) +/* 018F38 70018338 3C014000 */ lui $at, 0x4000 +/* 018F3C 7001833C 8D480008 */ lw $t0, 8($t2) +/* 018F40 70018340 250B0001 */ addiu $t3, $t0, 1 +/* 018F44 70018344 AD4B0008 */ sw $t3, 8($t2) +/* 018F48 70018348 8FB9003C */ lw $t9, 0x3c($sp) +/* 018F4C 7001834C 03217824 */ and $t7, $t9, $at +/* 018F50 70018350 11E0001A */ beqz $t7, .L700183BC +/* 018F54 70018354 00000000 */ nop +/* 018F58 70018358 8FA90030 */ lw $t1, 0x30($sp) +/* 018F5C 7001835C 8D2C0008 */ lw $t4, 8($t1) +/* 018F60 70018360 29810055 */ slti $at, $t4, 0x55 +/* 018F64 70018364 14200007 */ bnez $at, .L70018384 +/* 018F68 70018368 00000000 */ nop +/* 018F6C 7001836C 8FAE002C */ lw $t6, 0x2c($sp) +/* 018F70 70018370 240D0006 */ li $t5, 6 +/* 018F74 70018374 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018F78 70018378 ADCD0000 */ sw $t5, ($t6) +/* 018F7C 7001837C 10000021 */ b .L70018404 +/* 018F80 70018380 24020001 */ li $v0, 1 +.L70018384: +/* 018F84 70018384 8FB8002C */ lw $t8, 0x2c($sp) +/* 018F88 70018388 3C048007 */ lui $a0, %hi(__osDiskHandle) +/* 018F8C 7001838C 3C060500 */ lui $a2, (0x05000400 >> 16) # lui $a2, 0x500 +/* 018F90 70018390 8F08000C */ lw $t0, 0xc($t8) +/* 018F94 70018394 8F070004 */ lw $a3, 4($t8) +/* 018F98 70018398 34C60400 */ ori $a2, (0x05000400 & 0xFFFF) # ori $a2, $a2, 0x400 +/* 018F9C 7001839C 8C849074 */ lw $a0, %lo(__osDiskHandle)($a0) +/* 018FA0 700183A0 00002825 */ move $a1, $zero +/* 018FA4 700183A4 0C00794C */ jal osEPiRawStartDma +/* 018FA8 700183A8 AFA80010 */ sw $t0, 0x10($sp) +/* 018FAC 700183AC 8FAB002C */ lw $t3, 0x2c($sp) +/* 018FB0 700183B0 24020001 */ li $v0, 1 +/* 018FB4 700183B4 10000013 */ b .L70018404 +/* 018FB8 700183B8 AD600000 */ sw $zero, ($t3) +.L700183BC: +/* 018FBC 700183BC 8FAA0030 */ lw $t2, 0x30($sp) +/* 018FC0 700183C0 8D590008 */ lw $t9, 8($t2) +/* 018FC4 700183C4 2B210055 */ slti $at, $t9, 0x55 +/* 018FC8 700183C8 10200007 */ beqz $at, .L700183E8 +/* 018FCC 700183CC 00000000 */ nop +/* 018FD0 700183D0 8FA9002C */ lw $t1, 0x2c($sp) +/* 018FD4 700183D4 240F0006 */ li $t7, 6 +/* 018FD8 700183D8 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018FDC 700183DC AD2F0000 */ sw $t7, ($t1) +/* 018FE0 700183E0 10000008 */ b .L70018404 +/* 018FE4 700183E4 24020001 */ li $v0, 1 +.L700183E8: +/* 018FE8 700183E8 10000006 */ b .L70018404 +/* 018FEC 700183EC 24020001 */ li $v0, 1 +.L700183F0: +/* 018FF0 700183F0 8FAD002C */ lw $t5, 0x2c($sp) +/* 018FF4 700183F4 240C004B */ li $t4, 75 +/* 018FF8 700183F8 0C006105 */ jal __osLeoInterrupt_sub1 +/* 018FFC 700183FC ADAC0000 */ sw $t4, ($t5) +/* 019000 70018400 24020001 */ li $v0, 1 +.L70018404: +/* 019004 70018404 8FBF001C */ lw $ra, 0x1c($sp) +/* 019008 70018408 27BD0040 */ addiu $sp, $sp, 0x40 +/* 01900C 7001840C 03E00008 */ jr $ra +/* 019010 70018410 00000000 */ nop + +glabel __osLeoInterrupt_sub1 +/* 019014 70018414 3C0E8007 */ lui $t6, %hi(__osDiskHandle) +/* 019018 70018418 8DCE9074 */ lw $t6, %lo(__osDiskHandle)($t6) +/* 01901C 7001841C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 019020 70018420 AFBF0014 */ sw $ra, 0x14($sp) +/* 019024 70018424 25CF0014 */ addiu $t7, $t6, 0x14 +/* 019028 70018428 AFAF001C */ sw $t7, 0x1c($sp) +/* 01902C 7001842C 3C18A460 */ lui $t8, %hi(PI_STATUS_REG) # $t8, 0xa460 +/* 019030 70018430 8F190010 */ lw $t9, %lo(PI_STATUS_REG)($t8) +/* 019034 70018434 AFB90018 */ sw $t9, 0x18($sp) +/* 019038 70018438 8FA80018 */ lw $t0, 0x18($sp) +/* 01903C 7001843C 31090002 */ andi $t1, $t0, 2 +/* 019040 70018440 11200008 */ beqz $t1, .L70018464 +/* 019044 70018444 00000000 */ nop +.L70018448: +/* 019048 70018448 3C0AA460 */ lui $t2, %hi(PI_STATUS_REG) # $t2, 0xa460 +/* 01904C 7001844C 8D4B0010 */ lw $t3, %lo(PI_STATUS_REG)($t2) +/* 019050 70018450 AFAB0018 */ sw $t3, 0x18($sp) +/* 019054 70018454 8FAC0018 */ lw $t4, 0x18($sp) +/* 019058 70018458 318D0002 */ andi $t5, $t4, 2 +/* 01905C 7001845C 15A0FFFA */ bnez $t5, .L70018448 +/* 019060 70018460 00000000 */ nop +.L70018464: +/* 019064 70018464 8FAE001C */ lw $t6, 0x1c($sp) +/* 019068 70018468 3C011000 */ lui $at, 0x1000 +/* 01906C 7001846C 3C19A500 */ lui $t9, %hi(ASIC_BM_STATUS) # $t9, 0xa500 +/* 019070 70018470 8DCF0010 */ lw $t7, 0x10($t6) +/* 019074 70018474 3C08A460 */ lui $t0, %hi(PI_STATUS_REG) # $t0, 0xa460 +/* 019078 70018478 01E1C025 */ or $t8, $t7, $at +/* 01907C 7001847C AF380510 */ sw $t8, %lo(ASIC_BM_STATUS)($t9) +/* 019080 70018480 8D090010 */ lw $t1, %lo(PI_STATUS_REG)($t0) +/* 019084 70018484 AFA90018 */ sw $t1, 0x18($sp) +/* 019088 70018488 8FAA0018 */ lw $t2, 0x18($sp) +/* 01908C 7001848C 314B0002 */ andi $t3, $t2, 2 +/* 019090 70018490 11600008 */ beqz $t3, .L700184B4 +/* 019094 70018494 00000000 */ nop +.L70018498: +/* 019098 70018498 3C0CA460 */ lui $t4, %hi(PI_STATUS_REG) # $t4, 0xa460 +/* 01909C 7001849C 8D8D0010 */ lw $t5, %lo(PI_STATUS_REG)($t4) +/* 0190A0 700184A0 AFAD0018 */ sw $t5, 0x18($sp) +/* 0190A4 700184A4 8FAE0018 */ lw $t6, 0x18($sp) +/* 0190A8 700184A8 31CF0002 */ andi $t7, $t6, 2 +/* 0190AC 700184AC 15E0FFFA */ bnez $t7, .L70018498 +/* 0190B0 700184B0 00000000 */ nop +.L700184B4: +/* 0190B4 700184B4 8FB8001C */ lw $t8, 0x1c($sp) +/* 0190B8 700184B8 3C08A500 */ lui $t0, %hi(ASIC_BM_STATUS) # $t0, 0xa500 +/* 0190BC 700184BC 8F190010 */ lw $t9, 0x10($t8) +/* 0190C0 700184C0 0C00613F */ jal __osLeoInterrupt_sub2 +/* 0190C4 700184C4 AD190510 */ sw $t9, %lo(ASIC_BM_STATUS)($t0) +/* 0190C8 700184C8 24090002 */ li $t1, 2 +/* 0190CC 700184CC 3C0AA460 */ lui $t2, %hi(PI_STATUS_REG) # $t2, 0xa460 +/* 0190D0 700184D0 AD490010 */ sw $t1, %lo(PI_STATUS_REG)($t2) +/* 0190D4 700184D4 3C0B8002 */ lui $t3, %hi(__OSGlobalIntMask) +/* 0190D8 700184D8 8D6B698C */ lw $t3, %lo(__OSGlobalIntMask)($t3) +/* 0190DC 700184DC 3C010010 */ lui $at, (0x00100401 >> 16) # lui $at, 0x10 +/* 0190E0 700184E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0190E4 700184E4 34210401 */ ori $at, (0x00100401 & 0xFFFF) # ori $at, $at, 0x401 +/* 0190E8 700184E8 01616025 */ or $t4, $t3, $at +/* 0190EC 700184EC 3C018002 */ lui $at, %hi(__OSGlobalIntMask) +/* 0190F0 700184F0 AC2C698C */ sw $t4, %lo(__OSGlobalIntMask)($at) +/* 0190F4 700184F4 03E00008 */ jr $ra +/* 0190F8 700184F8 27BD0020 */ addiu $sp, $sp, 0x20 + +glabel __osLeoInterrupt_sub2 +/* 0190FC 700184FC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 019100 70018500 3C0E8006 */ lui $t6, %hi(__osEventStateTab) +/* 019104 70018504 25CE6A10 */ addiu $t6, %lo(__osEventStateTab) # addiu $t6, $t6, 0x6a10 +/* 019108 70018508 25CF0040 */ addiu $t7, $t6, 0x40 +/* 01910C 7001850C AFBF001C */ sw $ra, 0x1c($sp) +/* 019110 70018510 AFB00018 */ sw $s0, 0x18($sp) +/* 019114 70018514 AFAF002C */ sw $t7, 0x2c($sp) +/* 019118 70018518 8DD80040 */ lw $t8, 0x40($t6) +/* 01911C 7001851C 1300002D */ beqz $t8, .L700185D4 +/* 019120 70018520 AFB80028 */ sw $t8, 0x28($sp) +/* 019124 70018524 8F190008 */ lw $t9, 8($t8) +/* 019128 70018528 8F080010 */ lw $t0, 0x10($t8) +/* 01912C 7001852C 0328082A */ slt $at, $t9, $t0 +/* 019130 70018530 10200028 */ beqz $at, .L700185D4 +/* 019134 70018534 00000000 */ nop +/* 019138 70018538 8FA90028 */ lw $t1, 0x28($sp) +/* 01913C 7001853C 8FAE002C */ lw $t6, 0x2c($sp) +/* 019140 70018540 8D2A000C */ lw $t2, 0xc($t1) +/* 019144 70018544 8D2B0008 */ lw $t3, 8($t1) +/* 019148 70018548 8D2D0010 */ lw $t5, 0x10($t1) +/* 01914C 7001854C 014B6021 */ addu $t4, $t2, $t3 +/* 019150 70018550 018D001A */ div $zero, $t4, $t5 +/* 019154 70018554 00007810 */ mfhi $t7 +/* 019158 70018558 AFAF0024 */ sw $t7, 0x24($sp) +/* 01915C 7001855C 8D280014 */ lw $t0, 0x14($t1) +/* 019160 70018560 8DD80004 */ lw $t8, 4($t6) +/* 019164 70018564 000FC880 */ sll $t9, $t7, 2 +/* 019168 70018568 01195021 */ addu $t2, $t0, $t9 +/* 01916C 7001856C AD580000 */ sw $t8, ($t2) +/* 019170 70018570 8FAB0028 */ lw $t3, 0x28($sp) +/* 019174 70018574 15A00002 */ bnez $t5, .L70018580 +/* 019178 70018578 00000000 */ nop +/* 01917C 7001857C 0007000D */ break 7 +.L70018580: +/* 019180 70018580 2401FFFF */ li $at, -1 +/* 019184 70018584 15A10004 */ bne $t5, $at, .L70018598 +/* 019188 70018588 3C018000 */ lui $at, 0x8000 +/* 01918C 7001858C 15810002 */ bne $t4, $at, .L70018598 +/* 019190 70018590 00000000 */ nop +/* 019194 70018594 0006000D */ break 6 +.L70018598: +/* 019198 70018598 8D6C0008 */ lw $t4, 8($t3) +/* 01919C 7001859C 258D0001 */ addiu $t5, $t4, 1 +/* 0191A0 700185A0 AD6D0008 */ sw $t5, 8($t3) +/* 0191A4 700185A4 8FAE0028 */ lw $t6, 0x28($sp) +/* 0191A8 700185A8 8DCF0000 */ lw $t7, ($t6) +/* 0191AC 700185AC 8DE90000 */ lw $t1, ($t7) +/* 0191B0 700185B0 11200008 */ beqz $t1, .L700185D4 +/* 0191B4 700185B4 00000000 */ nop +/* 0191B8 700185B8 0C00423D */ jal __osPopThread +/* 0191BC 700185BC 01C02025 */ move $a0, $t6 +/* 0191C0 700185C0 00408025 */ move $s0, $v0 +/* 0191C4 700185C4 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 0191C8 700185C8 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +/* 0191CC 700185CC 0C00422B */ jal __osEnqueueThread +/* 0191D0 700185D0 02002825 */ move $a1, $s0 +.L700185D4: +/* 0191D4 700185D4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0191D8 700185D8 8FB00018 */ lw $s0, 0x18($sp) +/* 0191DC 700185DC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0191E0 700185E0 03E00008 */ jr $ra +/* 0191E4 700185E4 00000000 */ nop + +/* 0191E8 700185E8 00000000 */ nop +/* 0191EC 700185EC 00000000 */ nop diff --git a/src/libultra/libm_vals.s b/src/libultra/libm_vals.s new file mode 100644 index 0000000..ef08bed --- /dev/null +++ b/src/libultra/libm_vals.s @@ -0,0 +1,16 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .rodata +glabel __libm_qnan_f +.word 0x7F810000, 0 +.word 0 + diff --git a/src/libultra/ll.s b/src/libultra/ll.s new file mode 100644 index 0000000..979325c --- /dev/null +++ b/src/libultra/ll.s @@ -0,0 +1,218 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel __ull_rshift +/* 00F840 7000EC40 AFA40000 */ sw $a0, ($sp) +/* 00F844 7000EC44 AFA50004 */ sw $a1, 4($sp) +/* 00F848 7000EC48 AFA60008 */ sw $a2, 8($sp) +/* 00F84C 7000EC4C AFA7000C */ sw $a3, 0xc($sp) +/* 00F850 7000EC50 DFAF0008 */ ld $t7, 8($sp) +/* 00F854 7000EC54 DFAE0000 */ ld $t6, ($sp) +/* 00F858 7000EC58 01EE1016 */ dsrlv $v0, $t6, $t7 +/* 00F85C 7000EC5C 0002183C */ dsll32 $v1, $v0, 0 +/* 00F860 7000EC60 0003183F */ dsra32 $v1, $v1, 0 +/* 00F864 7000EC64 03E00008 */ jr $ra +/* 00F868 7000EC68 0002103F */ dsra32 $v0, $v0, 0 + +glabel __ull_rem +/* 00F86C 7000EC6C AFA40000 */ sw $a0, ($sp) +/* 00F870 7000EC70 AFA50004 */ sw $a1, 4($sp) +/* 00F874 7000EC74 AFA60008 */ sw $a2, 8($sp) +/* 00F878 7000EC78 AFA7000C */ sw $a3, 0xc($sp) +/* 00F87C 7000EC7C DFAF0008 */ ld $t7, 8($sp) +/* 00F880 7000EC80 DFAE0000 */ ld $t6, ($sp) +/* 00F884 7000EC84 01CF001F */ ddivu $zero, $t6, $t7 +/* 00F888 7000EC88 15E00002 */ bnez $t7, .L7000EC94 +/* 00F88C 7000EC8C 00000000 */ nop +/* 00F890 7000EC90 0007000D */ break 7 +.L7000EC94: +/* 00F894 7000EC94 00001010 */ mfhi $v0 +/* 00F898 7000EC98 0002183C */ dsll32 $v1, $v0, 0 +/* 00F89C 7000EC9C 0003183F */ dsra32 $v1, $v1, 0 +/* 00F8A0 7000ECA0 03E00008 */ jr $ra +/* 00F8A4 7000ECA4 0002103F */ dsra32 $v0, $v0, 0 + +glabel __ull_div +/* 00F8A8 7000ECA8 AFA40000 */ sw $a0, ($sp) +/* 00F8AC 7000ECAC AFA50004 */ sw $a1, 4($sp) +/* 00F8B0 7000ECB0 AFA60008 */ sw $a2, 8($sp) +/* 00F8B4 7000ECB4 AFA7000C */ sw $a3, 0xc($sp) +/* 00F8B8 7000ECB8 DFAF0008 */ ld $t7, 8($sp) +/* 00F8BC 7000ECBC DFAE0000 */ ld $t6, ($sp) +/* 00F8C0 7000ECC0 01CF001F */ ddivu $zero, $t6, $t7 +/* 00F8C4 7000ECC4 15E00002 */ bnez $t7, .L7000ECD0 +/* 00F8C8 7000ECC8 00000000 */ nop +/* 00F8CC 7000ECCC 0007000D */ break 7 +.L7000ECD0: +/* 00F8D0 7000ECD0 00001012 */ mflo $v0 +/* 00F8D4 7000ECD4 0002183C */ dsll32 $v1, $v0, 0 +/* 00F8D8 7000ECD8 0003183F */ dsra32 $v1, $v1, 0 +/* 00F8DC 7000ECDC 03E00008 */ jr $ra +/* 00F8E0 7000ECE0 0002103F */ dsra32 $v0, $v0, 0 + +glabel __ll_lshift +/* 00F8E4 7000ECE4 AFA40000 */ sw $a0, ($sp) +/* 00F8E8 7000ECE8 AFA50004 */ sw $a1, 4($sp) +/* 00F8EC 7000ECEC AFA60008 */ sw $a2, 8($sp) +/* 00F8F0 7000ECF0 AFA7000C */ sw $a3, 0xc($sp) +/* 00F8F4 7000ECF4 DFAF0008 */ ld $t7, 8($sp) +/* 00F8F8 7000ECF8 DFAE0000 */ ld $t6, ($sp) +/* 00F8FC 7000ECFC 01EE1014 */ dsllv $v0, $t6, $t7 +/* 00F900 7000ED00 0002183C */ dsll32 $v1, $v0, 0 +/* 00F904 7000ED04 0003183F */ dsra32 $v1, $v1, 0 +/* 00F908 7000ED08 03E00008 */ jr $ra +/* 00F90C 7000ED0C 0002103F */ dsra32 $v0, $v0, 0 + +glabel __ll_rem +/* 00F910 7000ED10 AFA40000 */ sw $a0, ($sp) +/* 00F914 7000ED14 AFA50004 */ sw $a1, 4($sp) +/* 00F918 7000ED18 AFA60008 */ sw $a2, 8($sp) +/* 00F91C 7000ED1C AFA7000C */ sw $a3, 0xc($sp) +/* 00F920 7000ED20 DFAF0008 */ ld $t7, 8($sp) +/* 00F924 7000ED24 DFAE0000 */ ld $t6, ($sp) +/* 00F928 7000ED28 01CF001F */ ddivu $zero, $t6, $t7 +/* 00F92C 7000ED2C 15E00002 */ bnez $t7, .L7000ED38 +/* 00F930 7000ED30 00000000 */ nop +/* 00F934 7000ED34 0007000D */ break 7 +.L7000ED38: +/* 00F938 7000ED38 00001010 */ mfhi $v0 +/* 00F93C 7000ED3C 0002183C */ dsll32 $v1, $v0, 0 +/* 00F940 7000ED40 0003183F */ dsra32 $v1, $v1, 0 +/* 00F944 7000ED44 03E00008 */ jr $ra +/* 00F948 7000ED48 0002103F */ dsra32 $v0, $v0, 0 + +glabel __ll_div +/* 00F94C 7000ED4C AFA40000 */ sw $a0, ($sp) +/* 00F950 7000ED50 AFA50004 */ sw $a1, 4($sp) +/* 00F954 7000ED54 AFA60008 */ sw $a2, 8($sp) +/* 00F958 7000ED58 AFA7000C */ sw $a3, 0xc($sp) +/* 00F95C 7000ED5C DFAF0008 */ ld $t7, 8($sp) +/* 00F960 7000ED60 DFAE0000 */ ld $t6, ($sp) +/* 00F964 7000ED64 01CF001E */ ddiv $zero, $t6, $t7 +/* 00F968 7000ED68 00000000 */ nop +/* 00F96C 7000ED6C 15E00002 */ bnez $t7, .L7000ED78 +/* 00F970 7000ED70 00000000 */ nop +/* 00F974 7000ED74 0007000D */ break 7 +.L7000ED78: +/* 00F978 7000ED78 6401FFFF */ daddiu $at, $zero, -1 +/* 00F97C 7000ED7C 15E10005 */ bne $t7, $at, .L7000ED94 +/* 00F980 7000ED80 64010001 */ daddiu $at, $zero, 1 +/* 00F984 7000ED84 00010FFC */ dsll32 $at, $at, 0x1f +/* 00F988 7000ED88 15C10002 */ bne $t6, $at, .L7000ED94 +/* 00F98C 7000ED8C 00000000 */ nop +/* 00F990 7000ED90 0006000D */ break 6 +.L7000ED94: +/* 00F994 7000ED94 00001012 */ mflo $v0 +/* 00F998 7000ED98 0002183C */ dsll32 $v1, $v0, 0 +/* 00F99C 7000ED9C 0003183F */ dsra32 $v1, $v1, 0 +/* 00F9A0 7000EDA0 03E00008 */ jr $ra +/* 00F9A4 7000EDA4 0002103F */ dsra32 $v0, $v0, 0 + +glabel __ll_mul +/* 00F9A8 7000EDA8 AFA40000 */ sw $a0, ($sp) +/* 00F9AC 7000EDAC AFA50004 */ sw $a1, 4($sp) +/* 00F9B0 7000EDB0 AFA60008 */ sw $a2, 8($sp) +/* 00F9B4 7000EDB4 AFA7000C */ sw $a3, 0xc($sp) +/* 00F9B8 7000EDB8 DFAF0008 */ ld $t7, 8($sp) +/* 00F9BC 7000EDBC DFAE0000 */ ld $t6, ($sp) +/* 00F9C0 7000EDC0 01CF001D */ dmultu $t6, $t7 +/* 00F9C4 7000EDC4 00001012 */ mflo $v0 +/* 00F9C8 7000EDC8 0002183C */ dsll32 $v1, $v0, 0 +/* 00F9CC 7000EDCC 0003183F */ dsra32 $v1, $v1, 0 +/* 00F9D0 7000EDD0 03E00008 */ jr $ra +/* 00F9D4 7000EDD4 0002103F */ dsra32 $v0, $v0, 0 + +glabel __ull_divremi +/* 00F9D8 7000EDD8 87AF0012 */ lh $t7, 0x12($sp) +/* 00F9DC 7000EDDC AFA60008 */ sw $a2, 8($sp) +/* 00F9E0 7000EDE0 AFA7000C */ sw $a3, 0xc($sp) +/* 00F9E4 7000EDE4 DFAE0008 */ ld $t6, 8($sp) +/* 00F9E8 7000EDE8 01E0C025 */ move $t8, $t7 +/* 00F9EC 7000EDEC 0300C825 */ move $t9, $t8 +/* 00F9F0 7000EDF0 01D9001F */ ddivu $zero, $t6, $t9 +/* 00F9F4 7000EDF4 17200002 */ bnez $t9, .L7000EE00 +/* 00F9F8 7000EDF8 00000000 */ nop +/* 00F9FC 7000EDFC 0007000D */ break 7 +.L7000EE00: +/* 00FA00 7000EE00 00004012 */ mflo $t0 +/* 00FA04 7000EE04 FC880000 */ sd $t0, ($a0) +/* 00FA08 7000EE08 87AA0012 */ lh $t2, 0x12($sp) +/* 00FA0C 7000EE0C DFA90008 */ ld $t1, 8($sp) +/* 00FA10 7000EE10 01405825 */ move $t3, $t2 +/* 00FA14 7000EE14 01606025 */ move $t4, $t3 +/* 00FA18 7000EE18 012C001F */ ddivu $zero, $t1, $t4 +/* 00FA1C 7000EE1C 15800002 */ bnez $t4, .L7000EE28 +/* 00FA20 7000EE20 00000000 */ nop +/* 00FA24 7000EE24 0007000D */ break 7 +.L7000EE28: +/* 00FA28 7000EE28 00006810 */ mfhi $t5 +/* 00FA2C 7000EE2C FCAD0000 */ sd $t5, ($a1) +/* 00FA30 7000EE30 03E00008 */ jr $ra +/* 00FA34 7000EE34 00000000 */ nop + +glabel __ll_mod +/* 00FA38 7000EE38 27BDFFF8 */ addiu $sp, $sp, -8 +/* 00FA3C 7000EE3C AFA40008 */ sw $a0, 8($sp) +/* 00FA40 7000EE40 AFA5000C */ sw $a1, 0xc($sp) +/* 00FA44 7000EE44 AFA60010 */ sw $a2, 0x10($sp) +/* 00FA48 7000EE48 AFA70014 */ sw $a3, 0x14($sp) +/* 00FA4C 7000EE4C DFAF0010 */ ld $t7, 0x10($sp) +/* 00FA50 7000EE50 DFAE0008 */ ld $t6, 8($sp) +/* 00FA54 7000EE54 01CF001E */ ddiv $zero, $t6, $t7 +/* 00FA58 7000EE58 00000000 */ nop +/* 00FA5C 7000EE5C 15E00002 */ bnez $t7, .L7000EE68 +/* 00FA60 7000EE60 00000000 */ nop +/* 00FA64 7000EE64 0007000D */ break 7 +.L7000EE68: +/* 00FA68 7000EE68 6401FFFF */ daddiu $at, $zero, -1 +/* 00FA6C 7000EE6C 15E10005 */ bne $t7, $at, .L7000EE84 +/* 00FA70 7000EE70 64010001 */ daddiu $at, $zero, 1 +/* 00FA74 7000EE74 00010FFC */ dsll32 $at, $at, 0x1f +/* 00FA78 7000EE78 15C10002 */ bne $t6, $at, .L7000EE84 +/* 00FA7C 7000EE7C 00000000 */ nop +/* 00FA80 7000EE80 0006000D */ break 6 +.L7000EE84: +/* 00FA84 7000EE84 0000C010 */ mfhi $t8 +/* 00FA88 7000EE88 FFB80000 */ sd $t8, ($sp) +/* 00FA8C 7000EE8C 07010003 */ bgez $t8, .L7000EE9C +/* 00FA90 7000EE90 00000000 */ nop +/* 00FA94 7000EE94 1DE00007 */ bgtz $t7, .L7000EEB4 +/* 00FA98 7000EE98 00000000 */ nop +.L7000EE9C: +/* 00FA9C 7000EE9C DFB90000 */ ld $t9, ($sp) +/* 00FAA0 7000EEA0 1B200008 */ blez $t9, .L7000EEC4 +/* 00FAA4 7000EEA4 00000000 */ nop +/* 00FAA8 7000EEA8 DFA80010 */ ld $t0, 0x10($sp) +/* 00FAAC 7000EEAC 05010005 */ bgez $t0, .L7000EEC4 +/* 00FAB0 7000EEB0 00000000 */ nop +.L7000EEB4: +/* 00FAB4 7000EEB4 DFA90000 */ ld $t1, ($sp) +/* 00FAB8 7000EEB8 DFAA0010 */ ld $t2, 0x10($sp) +/* 00FABC 7000EEBC 012A582D */ daddu $t3, $t1, $t2 +/* 00FAC0 7000EEC0 FFAB0000 */ sd $t3, ($sp) +.L7000EEC4: +/* 00FAC4 7000EEC4 8FA20000 */ lw $v0, ($sp) +/* 00FAC8 7000EEC8 8FA30004 */ lw $v1, 4($sp) +/* 00FACC 7000EECC 03E00008 */ jr $ra +/* 00FAD0 7000EED0 27BD0008 */ addiu $sp, $sp, 8 + +glabel __ll_rshift +/* 00FAD4 7000EED4 AFA40000 */ sw $a0, ($sp) +/* 00FAD8 7000EED8 AFA50004 */ sw $a1, 4($sp) +/* 00FADC 7000EEDC AFA60008 */ sw $a2, 8($sp) +/* 00FAE0 7000EEE0 AFA7000C */ sw $a3, 0xc($sp) +/* 00FAE4 7000EEE4 DFAF0008 */ ld $t7, 8($sp) +/* 00FAE8 7000EEE8 DFAE0000 */ ld $t6, ($sp) +/* 00FAEC 7000EEEC 01EE1017 */ dsrav $v0, $t6, $t7 +/* 00FAF0 7000EEF0 0002183C */ dsll32 $v1, $v0, 0 +/* 00FAF4 7000EEF4 0003183F */ dsra32 $v1, $v1, 0 +/* 00FAF8 7000EEF8 03E00008 */ jr $ra +/* 00FAFC 7000EEFC 0002103F */ dsra32 $v0, $v0, 0 + + diff --git a/src/libultra/llcvt.s b/src/libultra/llcvt.s new file mode 100644 index 0000000..71f6b9d --- /dev/null +++ b/src/libultra/llcvt.s @@ -0,0 +1,172 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __d_to_ll +/* 018510 70017910 46206109 */ trunc.l.d $f4, $f12 +/* 018514 70017914 44222000 */ dmfc1 $v0, $f4 +/* 018518 70017918 00000000 */ nop +/* 01851C 7001791C 0002183C */ dsll32 $v1, $v0, 0 +/* 018520 70017920 0003183F */ dsra32 $v1, $v1, 0 +/* 018524 70017924 03E00008 */ jr $ra +/* 018528 70017928 0002103F */ dsra32 $v0, $v0, 0 + +glabel __f_to_ll +/* 01852C 7001792C 46006109 */ trunc.l.s $f4, $f12 +/* 018530 70017930 44222000 */ dmfc1 $v0, $f4 +/* 018534 70017934 00000000 */ nop +/* 018538 70017938 0002183C */ dsll32 $v1, $v0, 0 +/* 01853C 7001793C 0003183F */ dsra32 $v1, $v1, 0 +/* 018540 70017940 03E00008 */ jr $ra +/* 018544 70017944 0002103F */ dsra32 $v0, $v0, 0 + +glabel __d_to_ull +/* 018548 70017948 444EF800 */ cfc1 $t6, $31 +/* 01854C 7001794C 24020001 */ li $v0, 1 +/* 018550 70017950 44C2F800 */ ctc1 $v0, $31 +/* 018554 70017954 00000000 */ nop +/* 018558 70017958 46206125 */ cvt.l.d $f4, $f12 +/* 01855C 7001795C 4442F800 */ cfc1 $v0, $31 +/* 018560 70017960 00000000 */ nop +/* 018564 70017964 30410004 */ andi $at, $v0, 4 +/* 018568 70017968 30420078 */ andi $v0, $v0, 0x78 +/* 01856C 7001796C 10400015 */ beqz $v0, .L700179C4 +/* 018570 70017970 3C0143E0 */ li $at, 0x43E00000 # 448.000000 +/* 018574 70017974 44812800 */ mtc1 $at, $f5 +/* 018578 70017978 44802000 */ mtc1 $zero, $f4 +/* 01857C 7001797C 24020001 */ li $v0, 1 +/* 018580 70017980 46246101 */ sub.d $f4, $f12, $f4 +/* 018584 70017984 44C2F800 */ ctc1 $v0, $31 +/* 018588 70017988 00000000 */ nop +/* 01858C 7001798C 46202125 */ cvt.l.d $f4, $f4 +/* 018590 70017990 4442F800 */ cfc1 $v0, $31 +/* 018594 70017994 00000000 */ nop +/* 018598 70017998 30410004 */ andi $at, $v0, 4 +/* 01859C 7001799C 30420078 */ andi $v0, $v0, 0x78 +/* 0185A0 700179A0 14400006 */ bnez $v0, .L700179BC +/* 0185A4 700179A4 00000000 */ nop +/* 0185A8 700179A8 3C0F8003 */ lui $t7, %hi(D_80029820) +/* 0185AC 700179AC DDEF9820 */ ld $t7, %lo(D_80029820)($t7) +/* 0185B0 700179B0 44222000 */ dmfc1 $v0, $f4 +/* 0185B4 700179B4 10000007 */ b .L700179D4 +/* 0185B8 700179B8 004F1025 */ or $v0, $v0, $t7 +.L700179BC: +/* 0185BC 700179BC 10000005 */ b .L700179D4 +/* 0185C0 700179C0 2402FFFF */ li $v0, -1 +.L700179C4: +/* 0185C4 700179C4 44222000 */ dmfc1 $v0, $f4 +/* 0185C8 700179C8 00000000 */ nop +/* 0185CC 700179CC 0440FFFB */ bltz $v0, .L700179BC +/* 0185D0 700179D0 00000000 */ nop +.L700179D4: +/* 0185D4 700179D4 44CEF800 */ ctc1 $t6, $31 +/* 0185D8 700179D8 0002183C */ dsll32 $v1, $v0, 0 +/* 0185DC 700179DC 0003183F */ dsra32 $v1, $v1, 0 +/* 0185E0 700179E0 03E00008 */ jr $ra +/* 0185E4 700179E4 0002103F */ dsra32 $v0, $v0, 0 + +glabel __f_to_ull +/* 0185E8 700179E8 444EF800 */ cfc1 $t6, $31 +/* 0185EC 700179EC 24020001 */ li $v0, 1 +/* 0185F0 700179F0 44C2F800 */ ctc1 $v0, $31 +/* 0185F4 700179F4 00000000 */ nop +/* 0185F8 700179F8 46006125 */ cvt.l.s $f4, $f12 +/* 0185FC 700179FC 4442F800 */ cfc1 $v0, $31 +/* 018600 70017A00 00000000 */ nop +/* 018604 70017A04 30410004 */ andi $at, $v0, 4 +/* 018608 70017A08 30420078 */ andi $v0, $v0, 0x78 +/* 01860C 70017A0C 10400014 */ beqz $v0, .L70017A60 +/* 018610 70017A10 3C015F00 */ li $at, 0x5F000000 # 9223372036854775808.000000 +/* 018614 70017A14 44812000 */ mtc1 $at, $f4 +/* 018618 70017A18 24020001 */ li $v0, 1 +/* 01861C 70017A1C 46046101 */ sub.s $f4, $f12, $f4 +/* 018620 70017A20 44C2F800 */ ctc1 $v0, $31 +/* 018624 70017A24 00000000 */ nop +/* 018628 70017A28 46002125 */ cvt.l.s $f4, $f4 +/* 01862C 70017A2C 4442F800 */ cfc1 $v0, $31 +/* 018630 70017A30 00000000 */ nop +/* 018634 70017A34 30410004 */ andi $at, $v0, 4 +/* 018638 70017A38 30420078 */ andi $v0, $v0, 0x78 +/* 01863C 70017A3C 14400006 */ bnez $v0, .L70017A58 +/* 018640 70017A40 00000000 */ nop +/* 018644 70017A44 3C0F8003 */ lui $t7, %hi(D_80029828) +/* 018648 70017A48 DDEF9828 */ ld $t7, %lo(D_80029828)($t7) +/* 01864C 70017A4C 44222000 */ dmfc1 $v0, $f4 +/* 018650 70017A50 10000007 */ b .L70017A70 +/* 018654 70017A54 004F1025 */ or $v0, $v0, $t7 +.L70017A58: +/* 018658 70017A58 10000005 */ b .L70017A70 +/* 01865C 70017A5C 2402FFFF */ li $v0, -1 +.L70017A60: +/* 018660 70017A60 44222000 */ dmfc1 $v0, $f4 +/* 018664 70017A64 00000000 */ nop +/* 018668 70017A68 0440FFFB */ bltz $v0, .L70017A58 +/* 01866C 70017A6C 00000000 */ nop +.L70017A70: +/* 018670 70017A70 44CEF800 */ ctc1 $t6, $31 +/* 018674 70017A74 0002183C */ dsll32 $v1, $v0, 0 +/* 018678 70017A78 0003183F */ dsra32 $v1, $v1, 0 +/* 01867C 70017A7C 03E00008 */ jr $ra +/* 018680 70017A80 0002103F */ dsra32 $v0, $v0, 0 + +glabel __ll_to_d +/* 018684 70017A84 AFA40000 */ sw $a0, ($sp) +/* 018688 70017A88 AFA50004 */ sw $a1, 4($sp) +/* 01868C 70017A8C DFAE0000 */ ld $t6, ($sp) +/* 018690 70017A90 44AE2000 */ dmtc1 $t6, $f4 +/* 018694 70017A94 03E00008 */ jr $ra +/* 018698 70017A98 46A02021 */ cvt.d.l $f0, $f4 + +glabel __ll_to_f +/* 01869C 70017A9C AFA40000 */ sw $a0, ($sp) +/* 0186A0 70017AA0 AFA50004 */ sw $a1, 4($sp) +/* 0186A4 70017AA4 DFAE0000 */ ld $t6, ($sp) +/* 0186A8 70017AA8 44AE2000 */ dmtc1 $t6, $f4 +/* 0186AC 70017AAC 03E00008 */ jr $ra +/* 0186B0 70017AB0 46A02020 */ cvt.s.l $f0, $f4 + +glabel __ull_to_d +/* 0186B4 70017AB4 AFA40000 */ sw $a0, ($sp) +/* 0186B8 70017AB8 AFA50004 */ sw $a1, 4($sp) +/* 0186BC 70017ABC DFAE0000 */ ld $t6, ($sp) +/* 0186C0 70017AC0 44AE2000 */ dmtc1 $t6, $f4 +/* 0186C4 70017AC4 05C10006 */ bgez $t6, .L70017AE0 +/* 0186C8 70017AC8 46A02021 */ cvt.d.l $f0, $f4 +/* 0186CC 70017ACC 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0186D0 70017AD0 44813800 */ mtc1 $at, $f7 +/* 0186D4 70017AD4 44803000 */ mtc1 $zero, $f6 +/* 0186D8 70017AD8 00000000 */ nop +/* 0186DC 70017ADC 46260000 */ add.d $f0, $f0, $f6 +.L70017AE0: +/* 0186E0 70017AE0 03E00008 */ jr $ra +/* 0186E4 70017AE4 00000000 */ nop + +glabel __ull_to_f +/* 0186E8 70017AE8 AFA40000 */ sw $a0, ($sp) +/* 0186EC 70017AEC AFA50004 */ sw $a1, 4($sp) +/* 0186F0 70017AF0 DFAE0000 */ ld $t6, ($sp) +/* 0186F4 70017AF4 44AE2000 */ dmtc1 $t6, $f4 +/* 0186F8 70017AF8 05C10005 */ bgez $t6, .L70017B10 +/* 0186FC 70017AFC 46A02020 */ cvt.s.l $f0, $f4 +/* 018700 70017B00 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 018704 70017B04 44813000 */ mtc1 $at, $f6 +/* 018708 70017B08 00000000 */ nop +/* 01870C 70017B0C 46060000 */ add.s $f0, $f0, $f6 +.L70017B10: +/* 018710 70017B10 03E00008 */ jr $ra +/* 018714 70017B14 00000000 */ nop +.align 4 +.section .rodata +glabel D_80029820 +.word 0x80000000, 0 +glabel D_80029828 +.word 0x80000000, 0 diff --git a/src/libultra/load.s b/src/libultra/load.s new file mode 100644 index 0000000..02837aa --- /dev/null +++ b/src/libultra/load.s @@ -0,0 +1,800 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alLoadParam +/* 01A6B0 70019AB0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 01A6B4 70019AB4 24010004 */ li $at, 4 +/* 01A6B8 70019AB8 AFBF0014 */ sw $ra, 0x14($sp) +/* 01A6BC 70019ABC 10A10055 */ beq $a1, $at, .L70019C14 +/* 01A6C0 70019AC0 00803825 */ move $a3, $a0 +/* 01A6C4 70019AC4 24010005 */ li $at, 5 +/* 01A6C8 70019AC8 54A1006B */ bnel $a1, $at, .L70019C78 +/* 01A6CC 70019ACC 8FBF0014 */ lw $ra, 0x14($sp) +/* 01A6D0 70019AD0 AC860028 */ sw $a2, 0x28($a0) +/* 01A6D4 70019AD4 8CCE0000 */ lw $t6, ($a2) +/* 01A6D8 70019AD8 AC800038 */ sw $zero, 0x38($a0) +/* 01A6DC 70019ADC 3C0F7002 */ lui $t7, %hi(alAdpcmPull) # $t7, 0x7002 +/* 01A6E0 70019AE0 AC8E0044 */ sw $t6, 0x44($a0) +/* 01A6E4 70019AE4 90C20008 */ lbu $v0, 8($a2) +/* 01A6E8 70019AE8 50400007 */ beql $v0, $zero, .L70019B08 +/* 01A6EC 70019AEC 8CE20028 */ lw $v0, 0x28($a3) +/* 01A6F0 70019AF0 24040001 */ li $a0, 1 +/* 01A6F4 70019AF4 10440034 */ beq $v0, $a0, .L70019BC8 +/* 01A6F8 70019AF8 3C087002 */ lui $t0, %hi(alRaw16Pull) # $t0, 0x7002 +/* 01A6FC 70019AFC 1000005E */ b .L70019C78 +/* 01A700 70019B00 8FBF0014 */ lw $ra, 0x14($sp) +/* 01A704 70019B04 8CE20028 */ lw $v0, 0x28($a3) +.L70019B08: +/* 01A708 70019B08 25EFA15C */ addiu $t7, %lo(alAdpcmPull) # addiu $t7, $t7, -0x5ea4 +/* 01A70C 70019B0C ACEF0004 */ sw $t7, 4($a3) +/* 01A710 70019B10 8C580004 */ lw $t8, 4($v0) +/* 01A714 70019B14 24050009 */ li $a1, 9 +/* 01A718 70019B18 0305001A */ div $zero, $t8, $a1 +/* 01A71C 70019B1C 0000C812 */ mflo $t9 +/* 01A720 70019B20 14A00002 */ bnez $a1, .L70019B2C +/* 01A724 70019B24 00000000 */ nop +/* 01A728 70019B28 0007000D */ break 7 +.L70019B2C: +/* 01A72C 70019B2C 2401FFFF */ li $at, -1 +/* 01A730 70019B30 14A10004 */ bne $a1, $at, .L70019B44 +/* 01A734 70019B34 3C018000 */ lui $at, 0x8000 +/* 01A738 70019B38 17010002 */ bne $t8, $at, .L70019B44 +/* 01A73C 70019B3C 00000000 */ nop +/* 01A740 70019B40 0006000D */ break 6 +.L70019B44: +/* 01A744 70019B44 03250019 */ multu $t9, $a1 +/* 01A748 70019B48 00004012 */ mflo $t0 +/* 01A74C 70019B4C AC480004 */ sw $t0, 4($v0) +/* 01A750 70019B50 8CE20028 */ lw $v0, 0x28($a3) +/* 01A754 70019B54 8C440010 */ lw $a0, 0x10($v0) +/* 01A758 70019B58 8C890000 */ lw $t1, ($a0) +/* 01A75C 70019B5C 8C8B0004 */ lw $t3, 4($a0) +/* 01A760 70019B60 00095100 */ sll $t2, $t1, 4 +/* 01A764 70019B64 014B0019 */ multu $t2, $t3 +/* 01A768 70019B68 00006012 */ mflo $t4 +/* 01A76C 70019B6C ACEC002C */ sw $t4, 0x2c($a3) +/* 01A770 70019B70 8C43000C */ lw $v1, 0xc($v0) +/* 01A774 70019B74 50600011 */ beql $v1, $zero, .L70019BBC +/* 01A778 70019B78 ACE00024 */ sw $zero, 0x24($a3) +/* 01A77C 70019B7C 8C6D0000 */ lw $t5, ($v1) +/* 01A780 70019B80 8CE50018 */ lw $a1, 0x18($a3) +/* 01A784 70019B84 24060020 */ li $a2, 32 +/* 01A788 70019B88 ACED001C */ sw $t5, 0x1c($a3) +/* 01A78C 70019B8C 8C4E000C */ lw $t6, 0xc($v0) +/* 01A790 70019B90 8DCF0004 */ lw $t7, 4($t6) +/* 01A794 70019B94 ACEF0020 */ sw $t7, 0x20($a3) +/* 01A798 70019B98 8C58000C */ lw $t8, 0xc($v0) +/* 01A79C 70019B9C 8F190008 */ lw $t9, 8($t8) +/* 01A7A0 70019BA0 ACF90024 */ sw $t9, 0x24($a3) +/* 01A7A4 70019BA4 8C44000C */ lw $a0, 0xc($v0) +/* 01A7A8 70019BA8 0C0075A4 */ jal alCopy +/* 01A7AC 70019BAC 2484000C */ addiu $a0, $a0, 0xc +/* 01A7B0 70019BB0 10000031 */ b .L70019C78 +/* 01A7B4 70019BB4 8FBF0014 */ lw $ra, 0x14($sp) +/* 01A7B8 70019BB8 ACE00024 */ sw $zero, 0x24($a3) +.L70019BBC: +/* 01A7BC 70019BBC ACE00020 */ sw $zero, 0x20($a3) +/* 01A7C0 70019BC0 1000002C */ b .L70019C74 +/* 01A7C4 70019BC4 ACE0001C */ sw $zero, 0x1c($a3) +.L70019BC8: +/* 01A7C8 70019BC8 8CE20028 */ lw $v0, 0x28($a3) +/* 01A7CC 70019BCC 25089C84 */ addiu $t0, %lo(alRaw16Pull) # addiu $t0, $t0, -0x637c +/* 01A7D0 70019BD0 ACE80004 */ sw $t0, 4($a3) +/* 01A7D4 70019BD4 8C43000C */ lw $v1, 0xc($v0) +/* 01A7D8 70019BD8 5060000B */ beql $v1, $zero, .L70019C08 +/* 01A7DC 70019BDC ACE00024 */ sw $zero, 0x24($a3) +/* 01A7E0 70019BE0 8C690000 */ lw $t1, ($v1) +/* 01A7E4 70019BE4 ACE9001C */ sw $t1, 0x1c($a3) +/* 01A7E8 70019BE8 8C4A000C */ lw $t2, 0xc($v0) +/* 01A7EC 70019BEC 8D4B0004 */ lw $t3, 4($t2) +/* 01A7F0 70019BF0 ACEB0020 */ sw $t3, 0x20($a3) +/* 01A7F4 70019BF4 8C4C000C */ lw $t4, 0xc($v0) +/* 01A7F8 70019BF8 8D8D0008 */ lw $t5, 8($t4) +/* 01A7FC 70019BFC 1000001D */ b .L70019C74 +/* 01A800 70019C00 ACED0024 */ sw $t5, 0x24($a3) +/* 01A804 70019C04 ACE00024 */ sw $zero, 0x24($a3) +.L70019C08: +/* 01A808 70019C08 ACE00020 */ sw $zero, 0x20($a3) +/* 01A80C 70019C0C 10000019 */ b .L70019C74 +/* 01A810 70019C10 ACE0001C */ sw $zero, 0x1c($a3) +.L70019C14: +/* 01A814 70019C14 8CE20028 */ lw $v0, 0x28($a3) +/* 01A818 70019C18 24040001 */ li $a0, 1 +/* 01A81C 70019C1C ACE0003C */ sw $zero, 0x3c($a3) +/* 01A820 70019C20 ACE40040 */ sw $a0, 0x40($a3) +/* 01A824 70019C24 10400013 */ beqz $v0, .L70019C74 +/* 01A828 70019C28 ACE00038 */ sw $zero, 0x38($a3) +/* 01A82C 70019C2C 8C4E0000 */ lw $t6, ($v0) +/* 01A830 70019C30 ACEE0044 */ sw $t6, 0x44($a3) +/* 01A834 70019C34 90430008 */ lbu $v1, 8($v0) +/* 01A838 70019C38 14600007 */ bnez $v1, .L70019C58 +/* 01A83C 70019C3C 00000000 */ nop +/* 01A840 70019C40 8C43000C */ lw $v1, 0xc($v0) +/* 01A844 70019C44 5060000C */ beql $v1, $zero, .L70019C78 +/* 01A848 70019C48 8FBF0014 */ lw $ra, 0x14($sp) +/* 01A84C 70019C4C 8C6F0008 */ lw $t7, 8($v1) +/* 01A850 70019C50 10000008 */ b .L70019C74 +/* 01A854 70019C54 ACEF0024 */ sw $t7, 0x24($a3) +.L70019C58: +/* 01A858 70019C58 54830007 */ bnel $a0, $v1, .L70019C78 +/* 01A85C 70019C5C 8FBF0014 */ lw $ra, 0x14($sp) +/* 01A860 70019C60 8C43000C */ lw $v1, 0xc($v0) +/* 01A864 70019C64 50600004 */ beql $v1, $zero, .L70019C78 +/* 01A868 70019C68 8FBF0014 */ lw $ra, 0x14($sp) +/* 01A86C 70019C6C 8C780008 */ lw $t8, 8($v1) +/* 01A870 70019C70 ACF80024 */ sw $t8, 0x24($a3) +.L70019C74: +/* 01A874 70019C74 8FBF0014 */ lw $ra, 0x14($sp) +.L70019C78: +/* 01A878 70019C78 27BD0018 */ addiu $sp, $sp, 0x18 +/* 01A87C 70019C7C 03E00008 */ jr $ra +/* 01A880 70019C80 00000000 */ nop + +glabel alRaw16Pull +/* 01A884 70019C84 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 01A888 70019C88 8FA80060 */ lw $t0, 0x60($sp) +/* 01A88C 70019C8C AFB30020 */ sw $s3, 0x20($sp) +/* 01A890 70019C90 AFB00014 */ sw $s0, 0x14($sp) +/* 01A894 70019C94 00808025 */ move $s0, $a0 +/* 01A898 70019C98 00C09825 */ move $s3, $a2 +/* 01A89C 70019C9C AFBF0024 */ sw $ra, 0x24($sp) +/* 01A8A0 70019CA0 AFB2001C */ sw $s2, 0x1c($sp) +/* 01A8A4 70019CA4 AFB10018 */ sw $s1, 0x18($sp) +/* 01A8A8 70019CA8 AFA7005C */ sw $a3, 0x5c($sp) +/* 01A8AC 70019CAC 00A05025 */ move $t2, $a1 +/* 01A8B0 70019CB0 14C00003 */ bnez $a2, .L70019CC0 +/* 01A8B4 70019CB4 01004825 */ move $t1, $t0 +/* 01A8B8 70019CB8 100000D6 */ b .L7001A014 +/* 01A8BC 70019CBC 01001025 */ move $v0, $t0 +.L70019CC0: +/* 01A8C0 70019CC0 8E020038 */ lw $v0, 0x38($s0) +/* 01A8C4 70019CC4 8E030020 */ lw $v1, 0x20($s0) +/* 01A8C8 70019CC8 00537021 */ addu $t6, $v0, $s3 +/* 01A8CC 70019CCC 006E082B */ sltu $at, $v1, $t6 +/* 01A8D0 70019CD0 50200084 */ beql $at, $zero, .L70019EE4 +/* 01A8D4 70019CD4 8E020028 */ lw $v0, 0x28($s0) +/* 01A8D8 70019CD8 8E0F0024 */ lw $t7, 0x24($s0) +/* 01A8DC 70019CDC 00629023 */ subu $s2, $v1, $v0 +/* 01A8E0 70019CE0 51E00080 */ beql $t7, $zero, .L70019EE4 +/* 01A8E4 70019CE4 8E020028 */ lw $v0, 0x28($s0) +/* 01A8E8 70019CE8 1A40001E */ blez $s2, .L70019D64 +/* 01A8EC 70019CEC 00128840 */ sll $s1, $s2, 1 +/* 01A8F0 70019CF0 8E040044 */ lw $a0, 0x44($s0) +/* 01A8F4 70019CF4 8E060034 */ lw $a2, 0x34($s0) +/* 01A8F8 70019CF8 AFAA0054 */ sw $t2, 0x54($sp) +/* 01A8FC 70019CFC 8E190030 */ lw $t9, 0x30($s0) +/* 01A900 70019D00 02202825 */ move $a1, $s1 +/* 01A904 70019D04 0320F809 */ jalr $t9 +/* 01A908 70019D08 00000000 */ nop +/* 01A90C 70019D0C 8FAA0054 */ lw $t2, 0x54($sp) +/* 01A910 70019D10 30460007 */ andi $a2, $v0, 7 +/* 01A914 70019D14 8FA80060 */ lw $t0, 0x60($sp) +/* 01A918 70019D18 85580000 */ lh $t8, ($t2) +/* 01A91C 70019D1C 02263821 */ addu $a3, $s1, $a2 +/* 01A920 70019D20 30ED0007 */ andi $t5, $a3, 7 +/* 01A924 70019D24 00ED7023 */ subu $t6, $a3, $t5 +/* 01A928 70019D28 3C010800 */ lui $at, 0x800 +/* 01A92C 70019D2C 330BFFFF */ andi $t3, $t8, 0xffff +/* 01A930 70019D30 01616025 */ or $t4, $t3, $at +/* 01A934 70019D34 25CF0008 */ addiu $t7, $t6, 8 +/* 01A938 70019D38 25090008 */ addiu $t1, $t0, 8 +/* 01A93C 70019D3C 31F9FFFF */ andi $t9, $t7, 0xffff +/* 01A940 70019D40 01202025 */ move $a0, $t1 +/* 01A944 70019D44 00465823 */ subu $t3, $v0, $a2 +/* 01A948 70019D48 3C180400 */ lui $t8, 0x400 +/* 01A94C 70019D4C AD190004 */ sw $t9, 4($t0) +/* 01A950 70019D50 AD0C0000 */ sw $t4, ($t0) +/* 01A954 70019D54 AC8B0004 */ sw $t3, 4($a0) +/* 01A958 70019D58 AC980000 */ sw $t8, ($a0) +/* 01A95C 70019D5C 10000002 */ b .L70019D68 +/* 01A960 70019D60 25290008 */ addiu $t1, $t1, 8 +.L70019D64: +/* 01A964 70019D64 00003025 */ move $a2, $zero +.L70019D68: +/* 01A968 70019D68 854C0000 */ lh $t4, ($t2) +/* 01A96C 70019D6C 0253082A */ slt $at, $s2, $s3 +/* 01A970 70019D70 01866821 */ addu $t5, $t4, $a2 +/* 01A974 70019D74 A54D0000 */ sh $t5, ($t2) +/* 01A978 70019D78 8E0E0028 */ lw $t6, 0x28($s0) +/* 01A97C 70019D7C 8E02001C */ lw $v0, 0x1c($s0) +/* 01A980 70019D80 8DCF0000 */ lw $t7, ($t6) +/* 01A984 70019D84 0002C840 */ sll $t9, $v0, 1 +/* 01A988 70019D88 AE020038 */ sw $v0, 0x38($s0) +/* 01A98C 70019D8C 01F9C021 */ addu $t8, $t7, $t9 +/* 01A990 70019D90 AE180044 */ sw $t8, 0x44($s0) +/* 01A994 70019D94 10200049 */ beqz $at, .L70019EBC +/* 01A998 70019D98 85480000 */ lh $t0, ($t2) +/* 01A99C 70019D9C 8E020024 */ lw $v0, 0x24($s0) +.L70019DA0: +/* 01A9A0 70019DA0 2401FFFF */ li $at, -1 +/* 01A9A4 70019DA4 01114021 */ addu $t0, $t0, $s1 +/* 01A9A8 70019DA8 10410004 */ beq $v0, $at, .L70019DBC +/* 01A9AC 70019DAC 02729823 */ subu $s3, $s3, $s2 +/* 01A9B0 70019DB0 10400002 */ beqz $v0, .L70019DBC +/* 01A9B4 70019DB4 244BFFFF */ addiu $t3, $v0, -1 +/* 01A9B8 70019DB8 AE0B0024 */ sw $t3, 0x24($s0) +.L70019DBC: +/* 01A9BC 70019DBC 8E0C0020 */ lw $t4, 0x20($s0) +/* 01A9C0 70019DC0 8E0D001C */ lw $t5, 0x1c($s0) +/* 01A9C4 70019DC4 018D1023 */ subu $v0, $t4, $t5 +/* 01A9C8 70019DC8 0262082B */ sltu $at, $s3, $v0 +/* 01A9CC 70019DCC 10200003 */ beqz $at, .L70019DDC +/* 01A9D0 70019DD0 00409025 */ move $s2, $v0 +/* 01A9D4 70019DD4 10000001 */ b .L70019DDC +/* 01A9D8 70019DD8 02609025 */ move $s2, $s3 +.L70019DDC: +/* 01A9DC 70019DDC 8E040044 */ lw $a0, 0x44($s0) +/* 01A9E0 70019DE0 8E060034 */ lw $a2, 0x34($s0) +/* 01A9E4 70019DE4 AFA9004C */ sw $t1, 0x4c($sp) +/* 01A9E8 70019DE8 AFA8002C */ sw $t0, 0x2c($sp) +/* 01A9EC 70019DEC 8E190030 */ lw $t9, 0x30($s0) +/* 01A9F0 70019DF0 00128840 */ sll $s1, $s2, 1 +/* 01A9F4 70019DF4 02202825 */ move $a1, $s1 +/* 01A9F8 70019DF8 0320F809 */ jalr $t9 +/* 01A9FC 70019DFC 00000000 */ nop +/* 01AA00 70019E00 8FA8002C */ lw $t0, 0x2c($sp) +/* 01AA04 70019E04 30450007 */ andi $a1, $v0, 7 +/* 01AA08 70019E08 8FA9004C */ lw $t1, 0x4c($sp) +/* 01AA0C 70019E0C 31030007 */ andi $v1, $t0, 7 +/* 01AA10 70019E10 10600004 */ beqz $v1, .L70019E24 +/* 01AA14 70019E14 02253821 */ addu $a3, $s1, $a1 +/* 01AA18 70019E18 240E0008 */ li $t6, 8 +/* 01AA1C 70019E1C 10000002 */ b .L70019E28 +/* 01AA20 70019E20 01C33023 */ subu $a2, $t6, $v1 +.L70019E24: +/* 01AA24 70019E24 00003025 */ move $a2, $zero +.L70019E28: +/* 01AA28 70019E28 01067821 */ addu $t7, $t0, $a2 +/* 01AA2C 70019E2C 30EC0007 */ andi $t4, $a3, 7 +/* 01AA30 70019E30 00EC6823 */ subu $t5, $a3, $t4 +/* 01AA34 70019E34 31F8FFFF */ andi $t8, $t7, 0xffff +/* 01AA38 70019E38 01201825 */ move $v1, $t1 +/* 01AA3C 70019E3C 3C010800 */ lui $at, 0x800 +/* 01AA40 70019E40 03015825 */ or $t3, $t8, $at +/* 01AA44 70019E44 25290008 */ addiu $t1, $t1, 8 +/* 01AA48 70019E48 25B90008 */ addiu $t9, $t5, 8 +/* 01AA4C 70019E4C 332EFFFF */ andi $t6, $t9, 0xffff +/* 01AA50 70019E50 01202025 */ move $a0, $t1 +/* 01AA54 70019E54 AC6E0004 */ sw $t6, 4($v1) +/* 01AA58 70019E58 AC6B0000 */ sw $t3, ($v1) +/* 01AA5C 70019E5C 0045C023 */ subu $t8, $v0, $a1 +/* 01AA60 70019E60 3C0F0400 */ lui $t7, 0x400 +/* 01AA64 70019E64 AC8F0000 */ sw $t7, ($a0) +/* 01AA68 70019E68 AC980004 */ sw $t8, 4($a0) +/* 01AA6C 70019E6C 14A00002 */ bnez $a1, .L70019E78 +/* 01AA70 70019E70 25290008 */ addiu $t1, $t1, 8 +/* 01AA74 70019E74 10C0000E */ beqz $a2, .L70019EB0 +.L70019E78: +/* 01AA78 70019E78 01055821 */ addu $t3, $t0, $a1 +/* 01AA7C 70019E7C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 01AA80 70019E80 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01AA84 70019E84 01666021 */ addu $t4, $t3, $a2 +/* 01AA88 70019E88 01816824 */ and $t5, $t4, $at +/* 01AA8C 70019E8C 01201025 */ move $v0, $t1 +/* 01AA90 70019E90 3C010A00 */ lui $at, 0xa00 +/* 01AA94 70019E94 00087C00 */ sll $t7, $t0, 0x10 +/* 01AA98 70019E98 3238FFFF */ andi $t8, $s1, 0xffff +/* 01AA9C 70019E9C 01F85825 */ or $t3, $t7, $t8 +/* 01AAA0 70019EA0 01A1C825 */ or $t9, $t5, $at +/* 01AAA4 70019EA4 AC590000 */ sw $t9, ($v0) +/* 01AAA8 70019EA8 AC4B0004 */ sw $t3, 4($v0) +/* 01AAAC 70019EAC 25290008 */ addiu $t1, $t1, 8 +.L70019EB0: +/* 01AAB0 70019EB0 0253082A */ slt $at, $s2, $s3 +/* 01AAB4 70019EB4 5420FFBA */ bnezl $at, .L70019DA0 +/* 01AAB8 70019EB8 8E020024 */ lw $v0, 0x24($s0) +.L70019EBC: +/* 01AABC 70019EBC 8E0C0038 */ lw $t4, 0x38($s0) +/* 01AAC0 70019EC0 8E190044 */ lw $t9, 0x44($s0) +/* 01AAC4 70019EC4 00137040 */ sll $t6, $s3, 1 +/* 01AAC8 70019EC8 01936821 */ addu $t5, $t4, $s3 +/* 01AACC 70019ECC 032E7821 */ addu $t7, $t9, $t6 +/* 01AAD0 70019ED0 AE0D0038 */ sw $t5, 0x38($s0) +/* 01AAD4 70019ED4 AE0F0044 */ sw $t7, 0x44($s0) +/* 01AAD8 70019ED8 1000004E */ b .L7001A014 +/* 01AADC 70019EDC 01201025 */ move $v0, $t1 +/* 01AAE0 70019EE0 8E020028 */ lw $v0, 0x28($s0) +.L70019EE4: +/* 01AAE4 70019EE4 8E040044 */ lw $a0, 0x44($s0) +/* 01AAE8 70019EE8 00138840 */ sll $s1, $s3, 1 +/* 01AAEC 70019EEC 8C580000 */ lw $t8, ($v0) +/* 01AAF0 70019EF0 8C4C0004 */ lw $t4, 4($v0) +/* 01AAF4 70019EF4 00911821 */ addu $v1, $a0, $s1 +/* 01AAF8 70019EF8 00785823 */ subu $t3, $v1, $t8 +/* 01AAFC 70019EFC 016C9023 */ subu $s2, $t3, $t4 +/* 01AB00 70019F00 06430003 */ bgezl $s2, .L70019F10 +/* 01AB04 70019F04 0232082A */ slt $at, $s1, $s2 +/* 01AB08 70019F08 00009025 */ move $s2, $zero +/* 01AB0C 70019F0C 0232082A */ slt $at, $s1, $s2 +.L70019F10: +/* 01AB10 70019F10 50200003 */ beql $at, $zero, .L70019F20 +/* 01AB14 70019F14 0251082A */ slt $at, $s2, $s1 +/* 01AB18 70019F18 02209025 */ move $s2, $s1 +/* 01AB1C 70019F1C 0251082A */ slt $at, $s2, $s1 +.L70019F20: +/* 01AB20 70019F20 5020002C */ beql $at, $zero, .L70019FD4 +/* 01AB24 70019F24 AE030044 */ sw $v1, 0x44($s0) +/* 01AB28 70019F28 1A60001F */ blez $s3, .L70019FA8 +/* 01AB2C 70019F2C 00003025 */ move $a2, $zero +/* 01AB30 70019F30 8E060034 */ lw $a2, 0x34($s0) +/* 01AB34 70019F34 02322823 */ subu $a1, $s1, $s2 +/* 01AB38 70019F38 AFA50048 */ sw $a1, 0x48($sp) +/* 01AB3C 70019F3C AFAA0054 */ sw $t2, 0x54($sp) +/* 01AB40 70019F40 8E190030 */ lw $t9, 0x30($s0) +/* 01AB44 70019F44 0320F809 */ jalr $t9 +/* 01AB48 70019F48 00000000 */ nop +/* 01AB4C 70019F4C 8FAA0054 */ lw $t2, 0x54($sp) +/* 01AB50 70019F50 8FA70048 */ lw $a3, 0x48($sp) +/* 01AB54 70019F54 30460007 */ andi $a2, $v0, 7 +/* 01AB58 70019F58 854D0000 */ lh $t5, ($t2) +/* 01AB5C 70019F5C 8FA80060 */ lw $t0, 0x60($sp) +/* 01AB60 70019F60 00E63821 */ addu $a3, $a3, $a2 +/* 01AB64 70019F64 30F80007 */ andi $t8, $a3, 7 +/* 01AB68 70019F68 00F85823 */ subu $t3, $a3, $t8 +/* 01AB6C 70019F6C 3C010800 */ lui $at, 0x800 +/* 01AB70 70019F70 31AEFFFF */ andi $t6, $t5, 0xffff +/* 01AB74 70019F74 01C17825 */ or $t7, $t6, $at +/* 01AB78 70019F78 256C0008 */ addiu $t4, $t3, 8 +/* 01AB7C 70019F7C 25090008 */ addiu $t1, $t0, 8 +/* 01AB80 70019F80 3199FFFF */ andi $t9, $t4, 0xffff +/* 01AB84 70019F84 01202025 */ move $a0, $t1 +/* 01AB88 70019F88 00467023 */ subu $t6, $v0, $a2 +/* 01AB8C 70019F8C 3C0D0400 */ lui $t5, 0x400 +/* 01AB90 70019F90 AD190004 */ sw $t9, 4($t0) +/* 01AB94 70019F94 AD0F0000 */ sw $t7, ($t0) +/* 01AB98 70019F98 AC8E0004 */ sw $t6, 4($a0) +/* 01AB9C 70019F9C AC8D0000 */ sw $t5, ($a0) +/* 01ABA0 70019FA0 10000001 */ b .L70019FA8 +/* 01ABA4 70019FA4 25290008 */ addiu $t1, $t1, 8 +.L70019FA8: +/* 01ABA8 70019FA8 854F0000 */ lh $t7, ($t2) +/* 01ABAC 70019FAC 01E6C021 */ addu $t8, $t7, $a2 +/* 01ABB0 70019FB0 A5580000 */ sh $t8, ($t2) +/* 01ABB4 70019FB4 8E0B0038 */ lw $t3, 0x38($s0) +/* 01ABB8 70019FB8 8E190044 */ lw $t9, 0x44($s0) +/* 01ABBC 70019FBC 01736021 */ addu $t4, $t3, $s3 +/* 01ABC0 70019FC0 03316821 */ addu $t5, $t9, $s1 +/* 01ABC4 70019FC4 AE0C0038 */ sw $t4, 0x38($s0) +/* 01ABC8 70019FC8 10000002 */ b .L70019FD4 +/* 01ABCC 70019FCC AE0D0044 */ sw $t5, 0x44($s0) +/* 01ABD0 70019FD0 AE030044 */ sw $v1, 0x44($s0) +.L70019FD4: +/* 01ABD4 70019FD4 1240000E */ beqz $s2, .L7001A010 +/* 01ABD8 70019FD8 02321823 */ subu $v1, $s1, $s2 +/* 01ABDC 70019FDC 04610002 */ bgez $v1, .L70019FE8 +/* 01ABE0 70019FE0 01201025 */ move $v0, $t1 +/* 01ABE4 70019FE4 00001825 */ move $v1, $zero +.L70019FE8: +/* 01ABE8 70019FE8 854E0000 */ lh $t6, ($t2) +/* 01ABEC 70019FEC 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 01ABF0 70019FF0 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01ABF4 70019FF4 01C37821 */ addu $t7, $t6, $v1 +/* 01ABF8 70019FF8 01E1C024 */ and $t8, $t7, $at +/* 01ABFC 70019FFC 3C010200 */ lui $at, 0x200 +/* 01AC00 7001A000 03015825 */ or $t3, $t8, $at +/* 01AC04 7001A004 AC4B0000 */ sw $t3, ($v0) +/* 01AC08 7001A008 AC520004 */ sw $s2, 4($v0) +/* 01AC0C 7001A00C 25290008 */ addiu $t1, $t1, 8 +.L7001A010: +/* 01AC10 7001A010 01201025 */ move $v0, $t1 +.L7001A014: +/* 01AC14 7001A014 8FBF0024 */ lw $ra, 0x24($sp) +/* 01AC18 7001A018 8FB00014 */ lw $s0, 0x14($sp) +/* 01AC1C 7001A01C 8FB10018 */ lw $s1, 0x18($sp) +/* 01AC20 7001A020 8FB2001C */ lw $s2, 0x1c($sp) +/* 01AC24 7001A024 8FB30020 */ lw $s3, 0x20($sp) +/* 01AC28 7001A028 03E00008 */ jr $ra +/* 01AC2C 7001A02C 27BD0050 */ addiu $sp, $sp, 0x50 + +glabel ultra_7001A030 +/* 01AC30 7001A030 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 01AC34 7001A034 AFB3002C */ sw $s3, 0x2c($sp) +/* 01AC38 7001A038 AFB50028 */ sw $s5, 0x28($sp) +/* 01AC3C 7001A03C 00137400 */ sll $t6, $s3, 0x10 +/* 01AC40 7001A040 0015C400 */ sll $t8, $s5, 0x10 +/* 01AC44 7001A044 0018AC03 */ sra $s5, $t8, 0x10 +/* 01AC48 7001A048 000E9C03 */ sra $s3, $t6, 0x10 +/* 01AC4C 7001A04C 1A20001A */ blez $s1, .L7001A0B8 +/* 01AC50 7001A050 AFBF0014 */ sw $ra, 0x14($sp) +/* 01AC54 7001A054 8E590030 */ lw $t9, 0x30($s2) +/* 01AC58 7001A058 8E440044 */ lw $a0, 0x44($s2) +/* 01AC5C 7001A05C 02202825 */ move $a1, $s1 +/* 01AC60 7001A060 0320F809 */ jalr $t9 +/* 01AC64 7001A064 8E460034 */ lw $a2, 0x34($s2) +/* 01AC68 7001A068 30460007 */ andi $a2, $v0, 7 +/* 01AC6C 7001A06C 02268821 */ addu $s1, $s1, $a2 +/* 01AC70 7001A070 326EFFFF */ andi $t6, $s3, 0xffff +/* 01AC74 7001A074 3C010800 */ lui $at, 0x800 +/* 01AC78 7001A078 01C17825 */ or $t7, $t6, $at +/* 01AC7C 7001A07C 32380007 */ andi $t8, $s1, 7 +/* 01AC80 7001A080 02002025 */ move $a0, $s0 +/* 01AC84 7001A084 0238C823 */ subu $t9, $s1, $t8 +/* 01AC88 7001A088 272E0008 */ addiu $t6, $t9, 8 +/* 01AC8C 7001A08C AC8F0000 */ sw $t7, ($a0) +/* 01AC90 7001A090 26100008 */ addiu $s0, $s0, 8 +/* 01AC94 7001A094 31CFFFFF */ andi $t7, $t6, 0xffff +/* 01AC98 7001A098 02002825 */ move $a1, $s0 +/* 01AC9C 7001A09C AC8F0004 */ sw $t7, 4($a0) +/* 01ACA0 7001A0A0 0046C823 */ subu $t9, $v0, $a2 +/* 01ACA4 7001A0A4 3C180400 */ lui $t8, 0x400 +/* 01ACA8 7001A0A8 ACB80000 */ sw $t8, ($a1) +/* 01ACAC 7001A0AC ACB90004 */ sw $t9, 4($a1) +/* 01ACB0 7001A0B0 10000002 */ b .L7001A0BC +/* 01ACB4 7001A0B4 26100008 */ addiu $s0, $s0, 8 +.L7001A0B8: +/* 01ACB8 7001A0B8 00003025 */ move $a2, $zero +.L7001A0BC: +/* 01ACBC 7001A0BC 328E0002 */ andi $t6, $s4, 2 +/* 01ACC0 7001A0C0 11C00009 */ beqz $t6, .L7001A0E8 +/* 01ACC4 7001A0C4 02001025 */ move $v0, $s0 +/* 01ACC8 7001A0C8 3C0F0F00 */ lui $t7, 0xf00 +/* 01ACCC 7001A0CC AC4F0000 */ sw $t7, ($v0) +/* 01ACD0 7001A0D0 8E580018 */ lw $t8, 0x18($s2) +/* 01ACD4 7001A0D4 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff +/* 01ACD8 7001A0D8 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01ACDC 7001A0DC 0301C824 */ and $t9, $t8, $at +/* 01ACE0 7001A0E0 AC590004 */ sw $t9, 4($v0) +/* 01ACE4 7001A0E4 26100008 */ addiu $s0, $s0, 8 +.L7001A0E8: +/* 01ACE8 7001A0E8 02667021 */ addu $t6, $s3, $a2 +/* 01ACEC 7001A0EC 31CFFFFF */ andi $t7, $t6, 0xffff +/* 01ACF0 7001A0F0 3C010800 */ lui $at, 0x800 +/* 01ACF4 7001A0F4 01E1C025 */ or $t8, $t7, $at +/* 01ACF8 7001A0F8 02001825 */ move $v1, $s0 +/* 01ACFC 7001A0FC AC780000 */ sw $t8, ($v1) +/* 01AD00 7001A100 00167840 */ sll $t7, $s6, 1 +/* 01AD04 7001A104 31F8FFFF */ andi $t8, $t7, 0xffff +/* 01AD08 7001A108 00157400 */ sll $t6, $s5, 0x10 +/* 01AD0C 7001A10C 01D8C825 */ or $t9, $t6, $t8 +/* 01AD10 7001A110 328F00FF */ andi $t7, $s4, 0xff +/* 01AD14 7001A114 26100008 */ addiu $s0, $s0, 8 +/* 01AD18 7001A118 000F7400 */ sll $t6, $t7, 0x10 +/* 01AD1C 7001A11C 3C010100 */ lui $at, 0x100 +/* 01AD20 7001A120 AC790004 */ sw $t9, 4($v1) +/* 01AD24 7001A124 01C1C025 */ or $t8, $t6, $at +/* 01AD28 7001A128 02002025 */ move $a0, $s0 +/* 01AD2C 7001A12C AC980000 */ sw $t8, ($a0) +/* 01AD30 7001A130 8E590014 */ lw $t9, 0x14($s2) +/* 01AD34 7001A134 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff +/* 01AD38 7001A138 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01AD3C 7001A13C 03217824 */ and $t7, $t9, $at +/* 01AD40 7001A140 AC8F0004 */ sw $t7, 4($a0) +/* 01AD44 7001A144 AE400040 */ sw $zero, 0x40($s2) +/* 01AD48 7001A148 8FBF0014 */ lw $ra, 0x14($sp) +/* 01AD4C 7001A14C 26100008 */ addiu $s0, $s0, 8 +/* 01AD50 7001A150 02001025 */ move $v0, $s0 +/* 01AD54 7001A154 03E00008 */ jr $ra +/* 01AD58 7001A158 27BD0018 */ addiu $sp, $sp, 0x18 + +glabel alAdpcmPull +/* 01AD5C 7001A15C 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 01AD60 7001A160 AFB70044 */ sw $s7, 0x44($sp) +/* 01AD64 7001A164 AFA700BC */ sw $a3, 0xbc($sp) +/* 01AD68 7001A168 00A03825 */ move $a3, $a1 +/* 01AD6C 7001A16C 0080B825 */ move $s7, $a0 +/* 01AD70 7001A170 AFBF004C */ sw $ra, 0x4c($sp) +/* 01AD74 7001A174 AFBE0048 */ sw $fp, 0x48($sp) +/* 01AD78 7001A178 AFB60040 */ sw $s6, 0x40($sp) +/* 01AD7C 7001A17C AFB5003C */ sw $s5, 0x3c($sp) +/* 01AD80 7001A180 AFB40038 */ sw $s4, 0x38($sp) +/* 01AD84 7001A184 AFB30034 */ sw $s3, 0x34($sp) +/* 01AD88 7001A188 AFB20030 */ sw $s2, 0x30($sp) +/* 01AD8C 7001A18C AFB1002C */ sw $s1, 0x2c($sp) +/* 01AD90 7001A190 AFB00028 */ sw $s0, 0x28($sp) +/* 01AD94 7001A194 AFA500B4 */ sw $a1, 0xb4($sp) +/* 01AD98 7001A198 00C04025 */ move $t0, $a2 +/* 01AD9C 7001A19C 14C00003 */ bnez $a2, .L7001A1AC +/* 01ADA0 7001A1A0 00006825 */ move $t5, $zero +/* 01ADA4 7001A1A4 10000109 */ b .L7001A5CC +/* 01ADA8 7001A1A8 8FA200C0 */ lw $v0, 0xc0($sp) +.L7001A1AC: +/* 01ADAC 7001A1AC 8EEE002C */ lw $t6, 0x2c($s7) +/* 01ADB0 7001A1B0 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 01ADB4 7001A1B4 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01ADB8 7001A1B8 8FA500C0 */ lw $a1, 0xc0($sp) +/* 01ADBC 7001A1BC 01C17824 */ and $t7, $t6, $at +/* 01ADC0 7001A1C0 3C010B00 */ lui $at, 0xb00 +/* 01ADC4 7001A1C4 01E1C025 */ or $t8, $t7, $at +/* 01ADC8 7001A1C8 ACB80000 */ sw $t8, ($a1) +/* 01ADCC 7001A1CC 8EF90028 */ lw $t9, 0x28($s7) +/* 01ADD0 7001A1D0 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff +/* 01ADD4 7001A1D4 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01ADD8 7001A1D8 8F2E0010 */ lw $t6, 0x10($t9) +/* 01ADDC 7001A1DC 24AA0008 */ addiu $t2, $a1, 8 +/* 01ADE0 7001A1E0 00003025 */ move $a2, $zero +/* 01ADE4 7001A1E4 25CF0008 */ addiu $t7, $t6, 8 +/* 01ADE8 7001A1E8 01E1C024 */ and $t8, $t7, $at +/* 01ADEC 7001A1EC ACB80004 */ sw $t8, 4($a1) +/* 01ADF0 7001A1F0 8EE30038 */ lw $v1, 0x38($s7) +/* 01ADF4 7001A1F4 8EE40020 */ lw $a0, 0x20($s7) +/* 01ADF8 7001A1F8 01002825 */ move $a1, $t0 +/* 01ADFC 7001A1FC 0068C821 */ addu $t9, $v1, $t0 +/* 01AE00 7001A200 0099482B */ sltu $t1, $a0, $t9 +/* 01AE04 7001A204 11200004 */ beqz $t1, .L7001A218 +/* 01AE08 7001A208 240F0010 */ li $t7, 16 +/* 01AE0C 7001A20C 8EE90024 */ lw $t1, 0x24($s7) +/* 01AE10 7001A210 0009702B */ sltu $t6, $zero, $t1 +/* 01AE14 7001A214 01C04825 */ move $t1, $t6 +.L7001A218: +/* 01AE18 7001A218 11200003 */ beqz $t1, .L7001A228 +/* 01AE1C 7001A21C 24010009 */ li $at, 9 +/* 01AE20 7001A220 10000001 */ b .L7001A228 +/* 01AE24 7001A224 00832823 */ subu $a1, $a0, $v1 +.L7001A228: +/* 01AE28 7001A228 8EE3003C */ lw $v1, 0x3c($s7) +/* 01AE2C 7001A22C 01408025 */ move $s0, $t2 +/* 01AE30 7001A230 02E09025 */ move $s2, $s7 +/* 01AE34 7001A234 10600003 */ beqz $v1, .L7001A244 +/* 01AE38 7001A238 00009825 */ move $s3, $zero +/* 01AE3C 7001A23C 10000001 */ b .L7001A244 +/* 01AE40 7001A240 01E33023 */ subu $a2, $t7, $v1 +.L7001A244: +/* 01AE44 7001A244 00A62023 */ subu $a0, $a1, $a2 +/* 01AE48 7001A248 04810002 */ bgez $a0, .L7001A254 +/* 01AE4C 7001A24C 00000000 */ nop +/* 01AE50 7001A250 00002025 */ move $a0, $zero +.L7001A254: +/* 01AE54 7001A254 11200081 */ beqz $t1, .L7001A45C +/* 01AE58 7001A258 249E000F */ addiu $fp, $a0, 0xf +/* 01AE5C 7001A25C 249E000F */ addiu $fp, $a0, 0xf +/* 01AE60 7001A260 001EC103 */ sra $t8, $fp, 4 +/* 01AE64 7001A264 84F50000 */ lh $s5, ($a3) +/* 01AE68 7001A268 8EF40040 */ lw $s4, 0x40($s7) +/* 01AE6C 7001A26C 001848C0 */ sll $t1, $t8, 3 +/* 01AE70 7001A270 01384821 */ addu $t1, $t1, $t8 +/* 01AE74 7001A274 01208825 */ move $s1, $t1 +/* 01AE78 7001A278 AFA9005C */ sw $t1, 0x5c($sp) +/* 01AE7C 7001A27C AFA800B8 */ sw $t0, 0xb8($sp) +/* 01AE80 7001A280 AFA700B4 */ sw $a3, 0xb4($sp) +/* 01AE84 7001A284 AFA5008C */ sw $a1, 0x8c($sp) +/* 01AE88 7001A288 0300F025 */ move $fp, $t8 +/* 01AE8C 7001A28C 0C00680C */ jal ultra_7001A030 +/* 01AE90 7001A290 0080B025 */ move $s6, $a0 +/* 01AE94 7001A294 8EE3003C */ lw $v1, 0x3c($s7) +/* 01AE98 7001A298 8FA5008C */ lw $a1, 0x8c($sp) +/* 01AE9C 7001A29C 8FA700B4 */ lw $a3, 0xb4($sp) +/* 01AEA0 7001A2A0 8FA800B8 */ lw $t0, 0xb8($sp) +/* 01AEA4 7001A2A4 8FA9005C */ lw $t1, 0x5c($sp) +/* 01AEA8 7001A2A8 10600006 */ beqz $v1, .L7001A2C4 +/* 01AEAC 7001A2AC 00405025 */ move $t2, $v0 +/* 01AEB0 7001A2B0 84F90000 */ lh $t9, ($a3) +/* 01AEB4 7001A2B4 00037040 */ sll $t6, $v1, 1 +/* 01AEB8 7001A2B8 032E7821 */ addu $t7, $t9, $t6 +/* 01AEBC 7001A2BC 10000004 */ b .L7001A2D0 +/* 01AEC0 7001A2C0 A4EF0000 */ sh $t7, ($a3) +.L7001A2C4: +/* 01AEC4 7001A2C4 84F80000 */ lh $t8, ($a3) +/* 01AEC8 7001A2C8 27190020 */ addiu $t9, $t8, 0x20 +/* 01AECC 7001A2CC A4F90000 */ sh $t9, ($a3) +.L7001A2D0: +/* 01AED0 7001A2D0 8EE2001C */ lw $v0, 0x1c($s7) +/* 01AED4 7001A2D4 8EEF0028 */ lw $t7, 0x28($s7) +/* 01AED8 7001A2D8 00A8082A */ slt $at, $a1, $t0 +/* 01AEDC 7001A2DC 304E000F */ andi $t6, $v0, 0xf +/* 01AEE0 7001A2E0 AEEE003C */ sw $t6, 0x3c($s7) +/* 01AEE4 7001A2E4 8DF80000 */ lw $t8, ($t7) +/* 01AEE8 7001A2E8 0002C902 */ srl $t9, $v0, 4 +/* 01AEEC 7001A2EC 001970C0 */ sll $t6, $t9, 3 +/* 01AEF0 7001A2F0 01D97021 */ addu $t6, $t6, $t9 +/* 01AEF4 7001A2F4 030E7821 */ addu $t7, $t8, $t6 +/* 01AEF8 7001A2F8 25F90009 */ addiu $t9, $t7, 9 +/* 01AEFC 7001A2FC AEF90044 */ sw $t9, 0x44($s7) +/* 01AF00 7001A300 AEE20038 */ sw $v0, 0x38($s7) +/* 01AF04 7001A304 10200049 */ beqz $at, .L7001A42C +/* 01AF08 7001A308 84E60000 */ lh $a2, ($a3) +/* 01AF0C 7001A30C 00051840 */ sll $v1, $a1, 1 +.L7001A310: +/* 01AF10 7001A310 27D80001 */ addiu $t8, $fp, 1 +/* 01AF14 7001A314 00187140 */ sll $t6, $t8, 5 +/* 01AF18 7001A318 8EE20024 */ lw $v0, 0x24($s7) +/* 01AF1C 7001A31C 01C63821 */ addu $a3, $t6, $a2 +/* 01AF20 7001A320 2401FFE0 */ li $at, -32 +/* 01AF24 7001A324 00E17824 */ and $t7, $a3, $at +/* 01AF28 7001A328 2401FFFF */ li $at, -1 +/* 01AF2C 7001A32C 01054023 */ subu $t0, $t0, $a1 +/* 01AF30 7001A330 01E03825 */ move $a3, $t7 +/* 01AF34 7001A334 10410004 */ beq $v0, $at, .L7001A348 +/* 01AF38 7001A338 00C33021 */ addu $a2, $a2, $v1 +/* 01AF3C 7001A33C 10400002 */ beqz $v0, .L7001A348 +/* 01AF40 7001A340 2459FFFF */ addiu $t9, $v0, -1 +/* 01AF44 7001A344 AEF90024 */ sw $t9, 0x24($s7) +.L7001A348: +/* 01AF48 7001A348 8EF80020 */ lw $t8, 0x20($s7) +/* 01AF4C 7001A34C 8EEE001C */ lw $t6, 0x1c($s7) +/* 01AF50 7001A350 01408025 */ move $s0, $t2 +/* 01AF54 7001A354 02E09025 */ move $s2, $s7 +/* 01AF58 7001A358 030E1023 */ subu $v0, $t8, $t6 +/* 01AF5C 7001A35C 0102082B */ sltu $at, $t0, $v0 +/* 01AF60 7001A360 10200003 */ beqz $at, .L7001A370 +/* 01AF64 7001A364 0007AC00 */ sll $s5, $a3, 0x10 +/* 01AF68 7001A368 10000002 */ b .L7001A374 +/* 01AF6C 7001A36C 01002825 */ move $a1, $t0 +.L7001A370: +/* 01AF70 7001A370 00402825 */ move $a1, $v0 +.L7001A374: +/* 01AF74 7001A374 8EEF003C */ lw $t7, 0x3c($s7) +/* 01AF78 7001A378 0015C403 */ sra $t8, $s5, 0x10 +/* 01AF7C 7001A37C 0300A825 */ move $s5, $t8 +/* 01AF80 7001A380 00AF2021 */ addu $a0, $a1, $t7 +/* 01AF84 7001A384 2484FFF0 */ addiu $a0, $a0, -0x10 +/* 01AF88 7001A388 04810002 */ bgez $a0, .L7001A394 +/* 01AF8C 7001A38C 00009825 */ move $s3, $zero +/* 01AF90 7001A390 00002025 */ move $a0, $zero +.L7001A394: +/* 01AF94 7001A394 8EF40040 */ lw $s4, 0x40($s7) +/* 01AF98 7001A398 249E000F */ addiu $fp, $a0, 0xf +/* 01AF9C 7001A39C 001EC903 */ sra $t9, $fp, 4 +/* 01AFA0 7001A3A0 001948C0 */ sll $t1, $t9, 3 +/* 01AFA4 7001A3A4 01394821 */ addu $t1, $t1, $t9 +/* 01AFA8 7001A3A8 368E0002 */ ori $t6, $s4, 2 +/* 01AFAC 7001A3AC 01C0A025 */ move $s4, $t6 +/* 01AFB0 7001A3B0 01208825 */ move $s1, $t1 +/* 01AFB4 7001A3B4 AFA9005C */ sw $t1, 0x5c($sp) +/* 01AFB8 7001A3B8 0320F025 */ move $fp, $t9 +/* 01AFBC 7001A3BC AFA800B8 */ sw $t0, 0xb8($sp) +/* 01AFC0 7001A3C0 AFA70088 */ sw $a3, 0x88($sp) +/* 01AFC4 7001A3C4 AFA60080 */ sw $a2, 0x80($sp) +/* 01AFC8 7001A3C8 AFA5008C */ sw $a1, 0x8c($sp) +/* 01AFCC 7001A3CC 0C00680C */ jal ultra_7001A030 +/* 01AFD0 7001A3D0 0080B025 */ move $s6, $a0 +/* 01AFD4 7001A3D4 8EEF003C */ lw $t7, 0x3c($s7) +/* 01AFD8 7001A3D8 8FA70088 */ lw $a3, 0x88($sp) +/* 01AFDC 7001A3DC 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 01AFE0 7001A3E0 000FC840 */ sll $t9, $t7, 1 +/* 01AFE4 7001A3E4 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01AFE8 7001A3E8 0327C021 */ addu $t8, $t9, $a3 +/* 01AFEC 7001A3EC 03017024 */ and $t6, $t8, $at +/* 01AFF0 7001A3F0 8FA5008C */ lw $a1, 0x8c($sp) +/* 01AFF4 7001A3F4 3C010A00 */ lui $at, 0xa00 +/* 01AFF8 7001A3F8 8FA60080 */ lw $a2, 0x80($sp) +/* 01AFFC 7001A3FC 01C17825 */ or $t7, $t6, $at +/* 01B000 7001A400 8FA800B8 */ lw $t0, 0xb8($sp) +/* 01B004 7001A404 8FA9005C */ lw $t1, 0x5c($sp) +/* 01B008 7001A408 00051840 */ sll $v1, $a1, 1 +/* 01B00C 7001A40C 306EFFFF */ andi $t6, $v1, 0xffff +/* 01B010 7001A410 AC4F0000 */ sw $t7, ($v0) +/* 01B014 7001A414 0006C400 */ sll $t8, $a2, 0x10 +/* 01B018 7001A418 030E7825 */ or $t7, $t8, $t6 +/* 01B01C 7001A41C 00A8082A */ slt $at, $a1, $t0 +/* 01B020 7001A420 AC4F0004 */ sw $t7, 4($v0) +/* 01B024 7001A424 1420FFBA */ bnez $at, .L7001A310 +/* 01B028 7001A428 244A0008 */ addiu $t2, $v0, 8 +.L7001A42C: +/* 01B02C 7001A42C 8EF9003C */ lw $t9, 0x3c($s7) +/* 01B030 7001A430 8EEF0038 */ lw $t7, 0x38($s7) +/* 01B034 7001A434 01401025 */ move $v0, $t2 +/* 01B038 7001A438 0328C021 */ addu $t8, $t9, $t0 +/* 01B03C 7001A43C 330E000F */ andi $t6, $t8, 0xf +/* 01B040 7001A440 8EF80044 */ lw $t8, 0x44($s7) +/* 01B044 7001A444 AEEE003C */ sw $t6, 0x3c($s7) +/* 01B048 7001A448 01E8C821 */ addu $t9, $t7, $t0 +/* 01B04C 7001A44C 03097021 */ addu $t6, $t8, $t1 +/* 01B050 7001A450 AEF90038 */ sw $t9, 0x38($s7) +/* 01B054 7001A454 1000005D */ b .L7001A5CC +/* 01B058 7001A458 AEEE0044 */ sw $t6, 0x44($s7) +.L7001A45C: +/* 01B05C 7001A45C 8EE20028 */ lw $v0, 0x28($s7) +/* 01B060 7001A460 001E7903 */ sra $t7, $fp, 4 +/* 01B064 7001A464 8EF90044 */ lw $t9, 0x44($s7) +/* 01B068 7001A468 000F48C0 */ sll $t1, $t7, 3 +/* 01B06C 7001A46C 8C580000 */ lw $t8, ($v0) +/* 01B070 7001A470 012F4821 */ addu $t1, $t1, $t7 +/* 01B074 7001A474 01E0F025 */ move $fp, $t7 +/* 01B078 7001A478 8C4F0004 */ lw $t7, 4($v0) +/* 01B07C 7001A47C 03295821 */ addu $t3, $t9, $t1 +/* 01B080 7001A480 01787023 */ subu $t6, $t3, $t8 +/* 01B084 7001A484 01CF1823 */ subu $v1, $t6, $t7 +/* 01B088 7001A488 04610002 */ bgez $v1, .L7001A494 +/* 01B08C 7001A48C 001E2900 */ sll $a1, $fp, 4 +/* 01B090 7001A490 00001825 */ move $v1, $zero +.L7001A494: +/* 01B094 7001A494 0061001A */ div $zero, $v1, $at +/* 01B098 7001A498 00001012 */ mflo $v0 +/* 01B09C 7001A49C 00022100 */ sll $a0, $v0, 4 +/* 01B0A0 7001A4A0 00A66021 */ addu $t4, $a1, $a2 +/* 01B0A4 7001A4A4 0184082A */ slt $at, $t4, $a0 +/* 01B0A8 7001A4A8 10200002 */ beqz $at, .L7001A4B4 +/* 01B0AC 7001A4AC 01408025 */ move $s0, $t2 +/* 01B0B0 7001A4B0 01802025 */ move $a0, $t4 +.L7001A4B4: +/* 01B0B4 7001A4B4 3098000F */ andi $t8, $a0, 0xf +/* 01B0B8 7001A4B8 00987023 */ subu $t6, $a0, $t8 +/* 01B0BC 7001A4BC 01C8082A */ slt $at, $t6, $t0 +/* 01B0C0 7001A4C0 1020002B */ beqz $at, .L7001A570 +/* 01B0C4 7001A4C4 01233023 */ subu $a2, $t1, $v1 +/* 01B0C8 7001A4C8 84F50000 */ lh $s5, ($a3) +/* 01B0CC 7001A4CC 8EF40040 */ lw $s4, 0x40($s7) +/* 01B0D0 7001A4D0 240D0001 */ li $t5, 1 +/* 01B0D4 7001A4D4 AFAD007C */ sw $t5, 0x7c($sp) +/* 01B0D8 7001A4D8 AFAC0050 */ sw $t4, 0x50($sp) +/* 01B0DC 7001A4DC AFA9005C */ sw $t1, 0x5c($sp) +/* 01B0E0 7001A4E0 AFA800B8 */ sw $t0, 0xb8($sp) +/* 01B0E4 7001A4E4 AFA700B4 */ sw $a3, 0xb4($sp) +/* 01B0E8 7001A4E8 AFA40090 */ sw $a0, 0x90($sp) +/* 01B0EC 7001A4EC 02E09025 */ move $s2, $s7 +/* 01B0F0 7001A4F0 00A4B023 */ subu $s6, $a1, $a0 +/* 01B0F4 7001A4F4 00C08825 */ move $s1, $a2 +/* 01B0F8 7001A4F8 0C00680C */ jal ultra_7001A030 +/* 01B0FC 7001A4FC 00009825 */ move $s3, $zero +/* 01B100 7001A500 8EE3003C */ lw $v1, 0x3c($s7) +/* 01B104 7001A504 8FA40090 */ lw $a0, 0x90($sp) +/* 01B108 7001A508 8FA700B4 */ lw $a3, 0xb4($sp) +/* 01B10C 7001A50C 8FA800B8 */ lw $t0, 0xb8($sp) +/* 01B110 7001A510 8FA9005C */ lw $t1, 0x5c($sp) +/* 01B114 7001A514 8FAC0050 */ lw $t4, 0x50($sp) +/* 01B118 7001A518 8FAD007C */ lw $t5, 0x7c($sp) +/* 01B11C 7001A51C 10600006 */ beqz $v1, .L7001A538 +/* 01B120 7001A520 00405025 */ move $t2, $v0 +/* 01B124 7001A524 84EF0000 */ lh $t7, ($a3) +/* 01B128 7001A528 0003C840 */ sll $t9, $v1, 1 +/* 01B12C 7001A52C 01F9C021 */ addu $t8, $t7, $t9 +/* 01B130 7001A530 10000004 */ b .L7001A544 +/* 01B134 7001A534 A4F80000 */ sh $t8, ($a3) +.L7001A538: +/* 01B138 7001A538 84EE0000 */ lh $t6, ($a3) +/* 01B13C 7001A53C 25CF0020 */ addiu $t7, $t6, 0x20 +/* 01B140 7001A540 A4EF0000 */ sh $t7, ($a3) +.L7001A544: +/* 01B144 7001A544 8EF9003C */ lw $t9, 0x3c($s7) +/* 01B148 7001A548 8EEF0038 */ lw $t7, 0x38($s7) +/* 01B14C 7001A54C 0328C021 */ addu $t8, $t9, $t0 +/* 01B150 7001A550 330E000F */ andi $t6, $t8, 0xf +/* 01B154 7001A554 8EF80044 */ lw $t8, 0x44($s7) +/* 01B158 7001A558 AEEE003C */ sw $t6, 0x3c($s7) +/* 01B15C 7001A55C 01E8C821 */ addu $t9, $t7, $t0 +/* 01B160 7001A560 03097021 */ addu $t6, $t8, $t1 +/* 01B164 7001A564 AEF90038 */ sw $t9, 0x38($s7) +/* 01B168 7001A568 10000003 */ b .L7001A578 +/* 01B16C 7001A56C AEEE0044 */ sw $t6, 0x44($s7) +.L7001A570: +/* 01B170 7001A570 AEE0003C */ sw $zero, 0x3c($s7) +/* 01B174 7001A574 AEEB0044 */ sw $t3, 0x44($s7) +.L7001A578: +/* 01B178 7001A578 10800013 */ beqz $a0, .L7001A5C8 +/* 01B17C 7001A57C 01401025 */ move $v0, $t2 +/* 01B180 7001A580 11A00005 */ beqz $t5, .L7001A598 +/* 01B184 7001A584 AEE0003C */ sw $zero, 0x3c($s7) +/* 01B188 7001A588 01841823 */ subu $v1, $t4, $a0 +/* 01B18C 7001A58C 00037840 */ sll $t7, $v1, 1 +/* 01B190 7001A590 10000002 */ b .L7001A59C +/* 01B194 7001A594 01E01825 */ move $v1, $t7 +.L7001A598: +/* 01B198 7001A598 00001825 */ move $v1, $zero +.L7001A59C: +/* 01B19C 7001A59C 84F90000 */ lh $t9, ($a3) +/* 01B1A0 7001A5A0 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 01B1A4 7001A5A4 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01B1A8 7001A5A8 0323C021 */ addu $t8, $t9, $v1 +/* 01B1AC 7001A5AC 03017024 */ and $t6, $t8, $at +/* 01B1B0 7001A5B0 3C010200 */ lui $at, 0x200 +/* 01B1B4 7001A5B4 01C17825 */ or $t7, $t6, $at +/* 01B1B8 7001A5B8 0004C840 */ sll $t9, $a0, 1 +/* 01B1BC 7001A5BC AC590004 */ sw $t9, 4($v0) +/* 01B1C0 7001A5C0 AC4F0000 */ sw $t7, ($v0) +/* 01B1C4 7001A5C4 254A0008 */ addiu $t2, $t2, 8 +.L7001A5C8: +/* 01B1C8 7001A5C8 01401025 */ move $v0, $t2 +.L7001A5CC: +/* 01B1CC 7001A5CC 8FBF004C */ lw $ra, 0x4c($sp) +/* 01B1D0 7001A5D0 8FB00028 */ lw $s0, 0x28($sp) +/* 01B1D4 7001A5D4 8FB1002C */ lw $s1, 0x2c($sp) +/* 01B1D8 7001A5D8 8FB20030 */ lw $s2, 0x30($sp) +/* 01B1DC 7001A5DC 8FB30034 */ lw $s3, 0x34($sp) +/* 01B1E0 7001A5E0 8FB40038 */ lw $s4, 0x38($sp) +/* 01B1E4 7001A5E4 8FB5003C */ lw $s5, 0x3c($sp) +/* 01B1E8 7001A5E8 8FB60040 */ lw $s6, 0x40($sp) +/* 01B1EC 7001A5EC 8FB70044 */ lw $s7, 0x44($sp) +/* 01B1F0 7001A5F0 8FBE0048 */ lw $fp, 0x48($sp) +/* 01B1F4 7001A5F4 03E00008 */ jr $ra +/* 01B1F8 7001A5F8 27BD00B0 */ addiu $sp, $sp, 0xb0 + diff --git a/src/libultra/lookat.s b/src/libultra/lookat.s new file mode 100644 index 0000000..a4a1220 --- /dev/null +++ b/src/libultra/lookat.s @@ -0,0 +1,220 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel guLookAtF +/* 017FF0 700173F0 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 017FF4 700173F4 AFBF004C */ sw $ra, 0x4c($sp) +/* 017FF8 700173F8 AFB00048 */ sw $s0, 0x48($sp) +/* 017FFC 700173FC 00808025 */ move $s0, $a0 +/* 018000 70017400 F7BE0040 */ sdc1 $f30, 0x40($sp) +/* 018004 70017404 F7BC0038 */ sdc1 $f28, 0x38($sp) +/* 018008 70017408 F7BA0030 */ sdc1 $f26, 0x30($sp) +/* 01800C 7001740C F7B80028 */ sdc1 $f24, 0x28($sp) +/* 018010 70017410 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 018014 70017414 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 018018 70017418 AFA50054 */ sw $a1, 0x54($sp) +/* 01801C 7001741C AFA60058 */ sw $a2, 0x58($sp) +/* 018020 70017420 0C004004 */ jal guMtxIdentF +/* 018024 70017424 AFA7005C */ sw $a3, 0x5c($sp) +/* 018028 70017428 C7A40060 */ lwc1 $f4, 0x60($sp) +/* 01802C 7001742C C7A60054 */ lwc1 $f6, 0x54($sp) +/* 018030 70017430 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 018034 70017434 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 018038 70017438 46062001 */ sub.s $f0, $f4, $f6 +/* 01803C 7001743C C7A6005C */ lwc1 $f6, 0x5c($sp) +/* 018040 70017440 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 018044 70017444 460A4581 */ sub.s $f22, $f8, $f10 +/* 018048 70017448 46000202 */ mul.s $f8, $f0, $f0 +/* 01804C 7001744C 46000506 */ mov.s $f20, $f0 +/* 018050 70017450 46062601 */ sub.s $f24, $f4, $f6 +/* 018054 70017454 4616B282 */ mul.s $f10, $f22, $f22 +/* 018058 70017458 460A4100 */ add.s $f4, $f8, $f10 +/* 01805C 7001745C 4618C182 */ mul.s $f6, $f24, $f24 +/* 018060 70017460 0C007DF8 */ jal sqrtf +/* 018064 70017464 46062300 */ add.s $f12, $f4, $f6 +/* 018068 70017468 3C01BFF0 */ li $at, 0xBFF00000 # -1.875000 +/* 01806C 7001746C 44814800 */ mtc1 $at, $f9 +/* 018070 70017470 44804000 */ mtc1 $zero, $f8 +/* 018074 70017474 460002A1 */ cvt.d.s $f10, $f0 +/* 018078 70017478 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 01807C 7001747C 462A4103 */ div.d $f4, $f8, $f10 +/* 018080 70017480 C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 018084 70017484 462020A0 */ cvt.s.d $f2, $f4 +/* 018088 70017488 4602A502 */ mul.s $f20, $f20, $f2 +/* 01808C 7001748C 00000000 */ nop +/* 018090 70017490 4602B582 */ mul.s $f22, $f22, $f2 +/* 018094 70017494 00000000 */ nop +/* 018098 70017498 4602C602 */ mul.s $f24, $f24, $f2 +/* 01809C 7001749C 00000000 */ nop +/* 0180A0 700174A0 46183202 */ mul.s $f8, $f6, $f24 +/* 0180A4 700174A4 00000000 */ nop +/* 0180A8 700174A8 46165102 */ mul.s $f4, $f10, $f22 +/* 0180AC 700174AC 46044681 */ sub.s $f26, $f8, $f4 +/* 0180B0 700174B0 46145202 */ mul.s $f8, $f10, $f20 +/* 0180B4 700174B4 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 0180B8 700174B8 46182282 */ mul.s $f10, $f4, $f24 +/* 0180BC 700174BC 460A4701 */ sub.s $f28, $f8, $f10 +/* 0180C0 700174C0 46162202 */ mul.s $f8, $f4, $f22 +/* 0180C4 700174C4 00000000 */ nop +/* 0180C8 700174C8 46143282 */ mul.s $f10, $f6, $f20 +/* 0180CC 700174CC 460A4781 */ sub.s $f30, $f8, $f10 +/* 0180D0 700174D0 461AD102 */ mul.s $f4, $f26, $f26 +/* 0180D4 700174D4 00000000 */ nop +/* 0180D8 700174D8 461CE182 */ mul.s $f6, $f28, $f28 +/* 0180DC 700174DC 46062200 */ add.s $f8, $f4, $f6 +/* 0180E0 700174E0 461EF282 */ mul.s $f10, $f30, $f30 +/* 0180E4 700174E4 0C007DF8 */ jal sqrtf +/* 0180E8 700174E8 460A4300 */ add.s $f12, $f8, $f10 +/* 0180EC 700174EC 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 0180F0 700174F0 44812800 */ mtc1 $at, $f5 +/* 0180F4 700174F4 44802000 */ mtc1 $zero, $f4 +/* 0180F8 700174F8 460001A1 */ cvt.d.s $f6, $f0 +/* 0180FC 700174FC 46262203 */ div.d $f8, $f4, $f6 +/* 018100 70017500 462040A0 */ cvt.s.d $f2, $f8 +/* 018104 70017504 4602D682 */ mul.s $f26, $f26, $f2 +/* 018108 70017508 00000000 */ nop +/* 01810C 7001750C 4602E702 */ mul.s $f28, $f28, $f2 +/* 018110 70017510 00000000 */ nop +/* 018114 70017514 4602F782 */ mul.s $f30, $f30, $f2 +/* 018118 70017518 00000000 */ nop +/* 01811C 7001751C 461EB282 */ mul.s $f10, $f22, $f30 +/* 018120 70017520 00000000 */ nop +/* 018124 70017524 461CC102 */ mul.s $f4, $f24, $f28 +/* 018128 70017528 00000000 */ nop +/* 01812C 7001752C 461AC182 */ mul.s $f6, $f24, $f26 +/* 018130 70017530 00000000 */ nop +/* 018134 70017534 461EA202 */ mul.s $f8, $f20, $f30 +/* 018138 70017538 46045381 */ sub.s $f14, $f10, $f4 +/* 01813C 7001753C 461CA282 */ mul.s $f10, $f20, $f28 +/* 018140 70017540 00000000 */ nop +/* 018144 70017544 461AB102 */ mul.s $f4, $f22, $f26 +/* 018148 70017548 E7AE006C */ swc1 $f14, 0x6c($sp) +/* 01814C 7001754C 46083401 */ sub.s $f16, $f6, $f8 +/* 018150 70017550 460E7182 */ mul.s $f6, $f14, $f14 +/* 018154 70017554 00000000 */ nop +/* 018158 70017558 46108202 */ mul.s $f8, $f16, $f16 +/* 01815C 7001755C E7B00070 */ swc1 $f16, 0x70($sp) +/* 018160 70017560 46045481 */ sub.s $f18, $f10, $f4 +/* 018164 70017564 46129102 */ mul.s $f4, $f18, $f18 +/* 018168 70017568 46083280 */ add.s $f10, $f6, $f8 +/* 01816C 7001756C E7B20074 */ swc1 $f18, 0x74($sp) +/* 018170 70017570 0C007DF8 */ jal sqrtf +/* 018174 70017574 46045300 */ add.s $f12, $f10, $f4 +/* 018178 70017578 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 01817C 7001757C 44813800 */ mtc1 $at, $f7 +/* 018180 70017580 44803000 */ mtc1 $zero, $f6 +/* 018184 70017584 46000221 */ cvt.d.s $f8, $f0 +/* 018188 70017588 C7AE006C */ lwc1 $f14, 0x6c($sp) +/* 01818C 7001758C 46283283 */ div.d $f10, $f6, $f8 +/* 018190 70017590 C7AC0070 */ lwc1 $f12, 0x70($sp) +/* 018194 70017594 C7A40074 */ lwc1 $f4, 0x74($sp) +/* 018198 70017598 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 01819C 7001759C 462050A0 */ cvt.s.d $f2, $f10 +/* 0181A0 700175A0 46027382 */ mul.s $f14, $f14, $f2 +/* 0181A4 700175A4 00000000 */ nop +/* 0181A8 700175A8 46026302 */ mul.s $f12, $f12, $f2 +/* 0181AC 700175AC 00000000 */ nop +/* 0181B0 700175B0 46022182 */ mul.s $f6, $f4, $f2 +/* 0181B4 700175B4 E7A60074 */ swc1 $f6, 0x74($sp) +/* 0181B8 700175B8 E61A0000 */ swc1 $f26, ($s0) +/* 0181BC 700175BC E61C0010 */ swc1 $f28, 0x10($s0) +/* 0181C0 700175C0 E61E0020 */ swc1 $f30, 0x20($s0) +/* 0181C4 700175C4 C7A80054 */ lwc1 $f8, 0x54($sp) +/* 0181C8 700175C8 C7A40058 */ lwc1 $f4, 0x58($sp) +/* 0181CC 700175CC 461A4282 */ mul.s $f10, $f8, $f26 +/* 0181D0 700175D0 00000000 */ nop +/* 0181D4 700175D4 461C2182 */ mul.s $f6, $f4, $f28 +/* 0181D8 700175D8 C7A4005C */ lwc1 $f4, 0x5c($sp) +/* 0181DC 700175DC E60E0004 */ swc1 $f14, 4($s0) +/* 0181E0 700175E0 E60C0014 */ swc1 $f12, 0x14($s0) +/* 0181E4 700175E4 46065200 */ add.s $f8, $f10, $f6 +/* 0181E8 700175E8 461E2282 */ mul.s $f10, $f4, $f30 +/* 0181EC 700175EC 460A4180 */ add.s $f6, $f8, $f10 +/* 0181F0 700175F0 46003107 */ neg.s $f4, $f6 +/* 0181F4 700175F4 E6040030 */ swc1 $f4, 0x30($s0) +/* 0181F8 700175F8 C7A00074 */ lwc1 $f0, 0x74($sp) +/* 0181FC 700175FC E7AC0070 */ swc1 $f12, 0x70($sp) +/* 018200 70017600 E7AE006C */ swc1 $f14, 0x6c($sp) +/* 018204 70017604 C7AE0054 */ lwc1 $f14, 0x54($sp) +/* 018208 70017608 C7AC0058 */ lwc1 $f12, 0x58($sp) +/* 01820C 7001760C C7A2005C */ lwc1 $f2, 0x5c($sp) +/* 018210 70017610 E6000024 */ swc1 $f0, 0x24($s0) +/* 018214 70017614 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 018218 70017618 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 01821C 7001761C E6140008 */ swc1 $f20, 8($s0) +/* 018220 70017620 46087282 */ mul.s $f10, $f14, $f8 +/* 018224 70017624 E6160018 */ swc1 $f22, 0x18($s0) +/* 018228 70017628 E6180028 */ swc1 $f24, 0x28($s0) +/* 01822C 7001762C 46066102 */ mul.s $f4, $f12, $f6 +/* 018230 70017630 46045200 */ add.s $f8, $f10, $f4 +/* 018234 70017634 46001182 */ mul.s $f6, $f2, $f0 +/* 018238 70017638 44800000 */ mtc1 $zero, $f0 +/* 01823C 7001763C 00000000 */ nop +/* 018240 70017640 E600000C */ swc1 $f0, 0xc($s0) +/* 018244 70017644 E600001C */ swc1 $f0, 0x1c($s0) +/* 018248 70017648 E600002C */ swc1 $f0, 0x2c($s0) +/* 01824C 7001764C 46064280 */ add.s $f10, $f8, $f6 +/* 018250 70017650 46147202 */ mul.s $f8, $f14, $f20 +/* 018254 70017654 00000000 */ nop +/* 018258 70017658 46166182 */ mul.s $f6, $f12, $f22 +/* 01825C 7001765C 46005107 */ neg.s $f4, $f10 +/* 018260 70017660 E6040034 */ swc1 $f4, 0x34($s0) +/* 018264 70017664 46181102 */ mul.s $f4, $f2, $f24 +/* 018268 70017668 46064280 */ add.s $f10, $f8, $f6 +/* 01826C 7001766C 46045200 */ add.s $f8, $f10, $f4 +/* 018270 70017670 44815000 */ mtc1 $at, $f10 +/* 018274 70017674 46004187 */ neg.s $f6, $f8 +/* 018278 70017678 E60A003C */ swc1 $f10, 0x3c($s0) +/* 01827C 7001767C E6060038 */ swc1 $f6, 0x38($s0) +/* 018280 70017680 8FBF004C */ lw $ra, 0x4c($sp) +/* 018284 70017684 8FB00048 */ lw $s0, 0x48($sp) +/* 018288 70017688 D7BE0040 */ ldc1 $f30, 0x40($sp) +/* 01828C 7001768C D7BC0038 */ ldc1 $f28, 0x38($sp) +/* 018290 70017690 D7BA0030 */ ldc1 $f26, 0x30($sp) +/* 018294 70017694 D7B80028 */ ldc1 $f24, 0x28($sp) +/* 018298 70017698 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 01829C 7001769C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0182A0 700176A0 03E00008 */ jr $ra +/* 0182A4 700176A4 27BD0050 */ addiu $sp, $sp, 0x50 + +glabel guLookAt +/* 0182A8 700176A8 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0182AC 700176AC C7A40080 */ lwc1 $f4, 0x80($sp) +/* 0182B0 700176B0 44856000 */ mtc1 $a1, $f12 +/* 0182B4 700176B4 44867000 */ mtc1 $a2, $f14 +/* 0182B8 700176B8 44878000 */ mtc1 $a3, $f16 +/* 0182BC 700176BC E7A40010 */ swc1 $f4, 0x10($sp) +/* 0182C0 700176C0 C7A40094 */ lwc1 $f4, 0x94($sp) +/* 0182C4 700176C4 C7A60084 */ lwc1 $f6, 0x84($sp) +/* 0182C8 700176C8 C7A80088 */ lwc1 $f8, 0x88($sp) +/* 0182CC 700176CC C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 0182D0 700176D0 C7B20090 */ lwc1 $f18, 0x90($sp) +/* 0182D4 700176D4 AFBF002C */ sw $ra, 0x2c($sp) +/* 0182D8 700176D8 AFA40070 */ sw $a0, 0x70($sp) +/* 0182DC 700176DC 44056000 */ mfc1 $a1, $f12 +/* 0182E0 700176E0 44067000 */ mfc1 $a2, $f14 +/* 0182E4 700176E4 44078000 */ mfc1 $a3, $f16 +/* 0182E8 700176E8 27A40030 */ addiu $a0, $sp, 0x30 +/* 0182EC 700176EC E7A40024 */ swc1 $f4, 0x24($sp) +/* 0182F0 700176F0 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0182F4 700176F4 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0182F8 700176F8 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 0182FC 700176FC 0C005CFC */ jal guLookAtF +/* 018300 70017700 E7B20020 */ swc1 $f18, 0x20($sp) +/* 018304 70017704 27A40030 */ addiu $a0, $sp, 0x30 +/* 018308 70017708 0C003FC4 */ jal guMtxF2L +/* 01830C 7001770C 8FA50070 */ lw $a1, 0x70($sp) +/* 018310 70017710 8FBF002C */ lw $ra, 0x2c($sp) +/* 018314 70017714 27BD0070 */ addiu $sp, $sp, 0x70 +/* 018318 70017718 03E00008 */ jr $ra +/* 01831C 7001771C 00000000 */ nop diff --git a/src/libultra/lookatref.s b/src/libultra/lookatref.s new file mode 100644 index 0000000..1d0cc6c --- /dev/null +++ b/src/libultra/lookatref.s @@ -0,0 +1,331 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel guLookAtReflectF +/* 017B30 70016F30 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 017B34 70016F34 AFBF0044 */ sw $ra, 0x44($sp) +/* 017B38 70016F38 F7BE0038 */ sdc1 $f30, 0x38($sp) +/* 017B3C 70016F3C F7BC0030 */ sdc1 $f28, 0x30($sp) +/* 017B40 70016F40 F7BA0028 */ sdc1 $f26, 0x28($sp) +/* 017B44 70016F44 F7B80020 */ sdc1 $f24, 0x20($sp) +/* 017B48 70016F48 F7B60018 */ sdc1 $f22, 0x18($sp) +/* 017B4C 70016F4C F7B40010 */ sdc1 $f20, 0x10($sp) +/* 017B50 70016F50 AFA60050 */ sw $a2, 0x50($sp) +/* 017B54 70016F54 AFA70054 */ sw $a3, 0x54($sp) +/* 017B58 70016F58 AFA40048 */ sw $a0, 0x48($sp) +/* 017B5C 70016F5C 0C004004 */ jal guMtxIdentF +/* 017B60 70016F60 AFA5004C */ sw $a1, 0x4c($sp) +/* 017B64 70016F64 C7A4005C */ lwc1 $f4, 0x5c($sp) +/* 017B68 70016F68 C7A60050 */ lwc1 $f6, 0x50($sp) +/* 017B6C 70016F6C C7A80060 */ lwc1 $f8, 0x60($sp) +/* 017B70 70016F70 C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 017B74 70016F74 46062001 */ sub.s $f0, $f4, $f6 +/* 017B78 70016F78 C7A60058 */ lwc1 $f6, 0x58($sp) +/* 017B7C 70016F7C C7A40064 */ lwc1 $f4, 0x64($sp) +/* 017B80 70016F80 460A4581 */ sub.s $f22, $f8, $f10 +/* 017B84 70016F84 46000202 */ mul.s $f8, $f0, $f0 +/* 017B88 70016F88 46000506 */ mov.s $f20, $f0 +/* 017B8C 70016F8C 46062601 */ sub.s $f24, $f4, $f6 +/* 017B90 70016F90 4616B282 */ mul.s $f10, $f22, $f22 +/* 017B94 70016F94 460A4100 */ add.s $f4, $f8, $f10 +/* 017B98 70016F98 4618C182 */ mul.s $f6, $f24, $f24 +/* 017B9C 70016F9C 0C007DF8 */ jal sqrtf +/* 017BA0 70016FA0 46062300 */ add.s $f12, $f4, $f6 +/* 017BA4 70016FA4 3C01BFF0 */ li $at, 0xBFF00000 # -1.875000 +/* 017BA8 70016FA8 44814800 */ mtc1 $at, $f9 +/* 017BAC 70016FAC 44804000 */ mtc1 $zero, $f8 +/* 017BB0 70016FB0 460002A1 */ cvt.d.s $f10, $f0 +/* 017BB4 70016FB4 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 017BB8 70016FB8 462A4103 */ div.d $f4, $f8, $f10 +/* 017BBC 70016FBC C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 017BC0 70016FC0 462020A0 */ cvt.s.d $f2, $f4 +/* 017BC4 70016FC4 4602A502 */ mul.s $f20, $f20, $f2 +/* 017BC8 70016FC8 00000000 */ nop +/* 017BCC 70016FCC 4602B582 */ mul.s $f22, $f22, $f2 +/* 017BD0 70016FD0 00000000 */ nop +/* 017BD4 70016FD4 4602C602 */ mul.s $f24, $f24, $f2 +/* 017BD8 70016FD8 00000000 */ nop +/* 017BDC 70016FDC 46183202 */ mul.s $f8, $f6, $f24 +/* 017BE0 70016FE0 00000000 */ nop +/* 017BE4 70016FE4 46165102 */ mul.s $f4, $f10, $f22 +/* 017BE8 70016FE8 46044681 */ sub.s $f26, $f8, $f4 +/* 017BEC 70016FEC 46145202 */ mul.s $f8, $f10, $f20 +/* 017BF0 70016FF0 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 017BF4 70016FF4 46182282 */ mul.s $f10, $f4, $f24 +/* 017BF8 70016FF8 460A4701 */ sub.s $f28, $f8, $f10 +/* 017BFC 70016FFC 46162202 */ mul.s $f8, $f4, $f22 +/* 017C00 70017000 00000000 */ nop +/* 017C04 70017004 46143282 */ mul.s $f10, $f6, $f20 +/* 017C08 70017008 460A4781 */ sub.s $f30, $f8, $f10 +/* 017C0C 7001700C 461AD102 */ mul.s $f4, $f26, $f26 +/* 017C10 70017010 00000000 */ nop +/* 017C14 70017014 461CE182 */ mul.s $f6, $f28, $f28 +/* 017C18 70017018 46062200 */ add.s $f8, $f4, $f6 +/* 017C1C 7001701C 461EF282 */ mul.s $f10, $f30, $f30 +/* 017C20 70017020 0C007DF8 */ jal sqrtf +/* 017C24 70017024 460A4300 */ add.s $f12, $f8, $f10 +/* 017C28 70017028 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 017C2C 7001702C 44812800 */ mtc1 $at, $f5 +/* 017C30 70017030 44802000 */ mtc1 $zero, $f4 +/* 017C34 70017034 460001A1 */ cvt.d.s $f6, $f0 +/* 017C38 70017038 46262203 */ div.d $f8, $f4, $f6 +/* 017C3C 7001703C 462043A0 */ cvt.s.d $f14, $f8 +/* 017C40 70017040 460ED682 */ mul.s $f26, $f26, $f14 +/* 017C44 70017044 00000000 */ nop +/* 017C48 70017048 460EE702 */ mul.s $f28, $f28, $f14 +/* 017C4C 7001704C 00000000 */ nop +/* 017C50 70017050 460EF782 */ mul.s $f30, $f30, $f14 +/* 017C54 70017054 00000000 */ nop +/* 017C58 70017058 461EB282 */ mul.s $f10, $f22, $f30 +/* 017C5C 7001705C 00000000 */ nop +/* 017C60 70017060 461CC102 */ mul.s $f4, $f24, $f28 +/* 017C64 70017064 00000000 */ nop +/* 017C68 70017068 461AC182 */ mul.s $f6, $f24, $f26 +/* 017C6C 7001706C 00000000 */ nop +/* 017C70 70017070 461EA202 */ mul.s $f8, $f20, $f30 +/* 017C74 70017074 46045081 */ sub.s $f2, $f10, $f4 +/* 017C78 70017078 461CA282 */ mul.s $f10, $f20, $f28 +/* 017C7C 7001707C 00000000 */ nop +/* 017C80 70017080 461AB102 */ mul.s $f4, $f22, $f26 +/* 017C84 70017084 E7A20068 */ swc1 $f2, 0x68($sp) +/* 017C88 70017088 46083401 */ sub.s $f16, $f6, $f8 +/* 017C8C 7001708C 46021182 */ mul.s $f6, $f2, $f2 +/* 017C90 70017090 00000000 */ nop +/* 017C94 70017094 46108202 */ mul.s $f8, $f16, $f16 +/* 017C98 70017098 E7B0006C */ swc1 $f16, 0x6c($sp) +/* 017C9C 7001709C 46045481 */ sub.s $f18, $f10, $f4 +/* 017CA0 700170A0 46129102 */ mul.s $f4, $f18, $f18 +/* 017CA4 700170A4 46083280 */ add.s $f10, $f6, $f8 +/* 017CA8 700170A8 E7B20070 */ swc1 $f18, 0x70($sp) +/* 017CAC 700170AC 0C007DF8 */ jal sqrtf +/* 017CB0 700170B0 46045300 */ add.s $f12, $f10, $f4 +/* 017CB4 700170B4 3C018003 */ lui $at, %hi(F64_80029800) # 0x8003 +/* 017CB8 700170B8 D4229800 */ ldc1 $f2, %lo(F64_80029800)($at) # -0x6800 +/* 017CBC 700170BC 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 017CC0 700170C0 44818800 */ mtc1 $at, $f17 +/* 017CC4 700170C4 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 017CC8 700170C8 44813800 */ mtc1 $at, $f7 +/* 017CCC 700170CC 44803000 */ mtc1 $zero, $f6 +/* 017CD0 700170D0 46000221 */ cvt.d.s $f8, $f0 +/* 017CD4 700170D4 C7A40068 */ lwc1 $f4, 0x68($sp) +/* 017CD8 700170D8 46283283 */ div.d $f10, $f6, $f8 +/* 017CDC 700170DC C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 017CE0 700170E0 44808000 */ mtc1 $zero, $f16 +/* 017CE4 700170E4 8FA40048 */ lw $a0, 0x48($sp) +/* 017CE8 700170E8 8FA5004C */ lw $a1, 0x4c($sp) +/* 017CEC 700170EC 24020080 */ li $v0, 128 +/* 017CF0 700170F0 462053A0 */ cvt.s.d $f14, $f10 +/* 017CF4 700170F4 460E2182 */ mul.s $f6, $f4, $f14 +/* 017CF8 700170F8 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 017CFC 700170FC 460E4282 */ mul.s $f10, $f8, $f14 +/* 017D00 70017100 4600D221 */ cvt.d.s $f8, $f26 +/* 017D04 70017104 E7A60068 */ swc1 $f6, 0x68($sp) +/* 017D08 70017108 460E2182 */ mul.s $f6, $f4, $f14 +/* 017D0C 7001710C E7AA006C */ swc1 $f10, 0x6c($sp) +/* 017D10 70017110 46304302 */ mul.d $f12, $f8, $f16 +/* 017D14 70017114 E7A60070 */ swc1 $f6, 0x70($sp) +/* 017D18 70017118 4622603C */ c.lt.d $f12, $f2 +/* 017D1C 7001711C 00000000 */ nop +/* 017D20 70017120 45020004 */ bc1fl .L70017134 +/* 017D24 70017124 46201006 */ mov.d $f0, $f2 +/* 017D28 70017128 10000002 */ b .L70017134 +/* 017D2C 7001712C 46206006 */ mov.d $f0, $f12 +/* 017D30 70017130 46201006 */ mov.d $f0, $f2 +.L70017134: +/* 017D34 70017134 4600E121 */ cvt.d.s $f4, $f28 +/* 017D38 70017138 4620028D */ trunc.w.d $f10, $f0 +/* 017D3C 7001713C 46302302 */ mul.d $f12, $f4, $f16 +/* 017D40 70017140 44185000 */ mfc1 $t8, $f10 +/* 017D44 70017144 00000000 */ nop +/* 017D48 70017148 A0B80008 */ sb $t8, 8($a1) +/* 017D4C 7001714C 4622603C */ c.lt.d $f12, $f2 +/* 017D50 70017150 00000000 */ nop +/* 017D54 70017154 45020004 */ bc1fl .L70017168 +/* 017D58 70017158 46201006 */ mov.d $f0, $f2 +/* 017D5C 7001715C 10000002 */ b .L70017168 +/* 017D60 70017160 46206006 */ mov.d $f0, $f12 +/* 017D64 70017164 46201006 */ mov.d $f0, $f2 +.L70017168: +/* 017D68 70017168 4600F221 */ cvt.d.s $f8, $f30 +/* 017D6C 7001716C 4620018D */ trunc.w.d $f6, $f0 +/* 017D70 70017170 46304302 */ mul.d $f12, $f8, $f16 +/* 017D74 70017174 44093000 */ mfc1 $t1, $f6 +/* 017D78 70017178 00000000 */ nop +/* 017D7C 7001717C A0A90009 */ sb $t1, 9($a1) +/* 017D80 70017180 4622603C */ c.lt.d $f12, $f2 +/* 017D84 70017184 00000000 */ nop +/* 017D88 70017188 45020004 */ bc1fl .L7001719C +/* 017D8C 7001718C 46201006 */ mov.d $f0, $f2 +/* 017D90 70017190 10000002 */ b .L7001719C +/* 017D94 70017194 46206006 */ mov.d $f0, $f12 +/* 017D98 70017198 46201006 */ mov.d $f0, $f2 +.L7001719C: +/* 017D9C 7001719C 4620028D */ trunc.w.d $f10, $f0 +/* 017DA0 700171A0 440C5000 */ mfc1 $t4, $f10 +/* 017DA4 700171A4 00000000 */ nop +/* 017DA8 700171A8 A0AC000A */ sb $t4, 0xa($a1) +/* 017DAC 700171AC C7A40068 */ lwc1 $f4, 0x68($sp) +/* 017DB0 700171B0 460021A1 */ cvt.d.s $f6, $f4 +/* 017DB4 700171B4 46303302 */ mul.d $f12, $f6, $f16 +/* 017DB8 700171B8 4622603C */ c.lt.d $f12, $f2 +/* 017DBC 700171BC 00000000 */ nop +/* 017DC0 700171C0 45020004 */ bc1fl .L700171D4 +/* 017DC4 700171C4 46201006 */ mov.d $f0, $f2 +/* 017DC8 700171C8 10000002 */ b .L700171D4 +/* 017DCC 700171CC 46206006 */ mov.d $f0, $f12 +/* 017DD0 700171D0 46201006 */ mov.d $f0, $f2 +.L700171D4: +/* 017DD4 700171D4 4620020D */ trunc.w.d $f8, $f0 +/* 017DD8 700171D8 440F4000 */ mfc1 $t7, $f8 +/* 017DDC 700171DC 00000000 */ nop +/* 017DE0 700171E0 A0AF0018 */ sb $t7, 0x18($a1) +/* 017DE4 700171E4 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 017DE8 700171E8 46005121 */ cvt.d.s $f4, $f10 +/* 017DEC 700171EC 46302302 */ mul.d $f12, $f4, $f16 +/* 017DF0 700171F0 4622603C */ c.lt.d $f12, $f2 +/* 017DF4 700171F4 00000000 */ nop +/* 017DF8 700171F8 45020004 */ bc1fl .L7001720C +/* 017DFC 700171FC 46201006 */ mov.d $f0, $f2 +/* 017E00 70017200 10000002 */ b .L7001720C +/* 017E04 70017204 46206006 */ mov.d $f0, $f12 +/* 017E08 70017208 46201006 */ mov.d $f0, $f2 +.L7001720C: +/* 017E0C 7001720C 4620018D */ trunc.w.d $f6, $f0 +/* 017E10 70017210 44083000 */ mfc1 $t0, $f6 +/* 017E14 70017214 00000000 */ nop +/* 017E18 70017218 A0A80019 */ sb $t0, 0x19($a1) +/* 017E1C 7001721C C7A80070 */ lwc1 $f8, 0x70($sp) +/* 017E20 70017220 460042A1 */ cvt.d.s $f10, $f8 +/* 017E24 70017224 46305302 */ mul.d $f12, $f10, $f16 +/* 017E28 70017228 4622603C */ c.lt.d $f12, $f2 +/* 017E2C 7001722C 00000000 */ nop +/* 017E30 70017230 45020004 */ bc1fl .L70017244 +/* 017E34 70017234 46201006 */ mov.d $f0, $f2 +/* 017E38 70017238 10000002 */ b .L70017244 +/* 017E3C 7001723C 46206006 */ mov.d $f0, $f12 +/* 017E40 70017240 46201006 */ mov.d $f0, $f2 +.L70017244: +/* 017E44 70017244 4620010D */ trunc.w.d $f4, $f0 +/* 017E48 70017248 A0A00000 */ sb $zero, ($a1) +/* 017E4C 7001724C A0A00001 */ sb $zero, 1($a1) +/* 017E50 70017250 A0A00002 */ sb $zero, 2($a1) +/* 017E54 70017254 440B2000 */ mfc1 $t3, $f4 +/* 017E58 70017258 A0A00003 */ sb $zero, 3($a1) +/* 017E5C 7001725C A0A00004 */ sb $zero, 4($a1) +/* 017E60 70017260 A0A00005 */ sb $zero, 5($a1) +/* 017E64 70017264 A0A00006 */ sb $zero, 6($a1) +/* 017E68 70017268 A0A00007 */ sb $zero, 7($a1) +/* 017E6C 7001726C A0A00010 */ sb $zero, 0x10($a1) +/* 017E70 70017270 A0A20011 */ sb $v0, 0x11($a1) +/* 017E74 70017274 A0A00012 */ sb $zero, 0x12($a1) +/* 017E78 70017278 A0A00013 */ sb $zero, 0x13($a1) +/* 017E7C 7001727C A0A00014 */ sb $zero, 0x14($a1) +/* 017E80 70017280 A0A20015 */ sb $v0, 0x15($a1) +/* 017E84 70017284 A0A00016 */ sb $zero, 0x16($a1) +/* 017E88 70017288 A0A00017 */ sb $zero, 0x17($a1) +/* 017E8C 7001728C A0AB001A */ sb $t3, 0x1a($a1) +/* 017E90 70017290 E49A0000 */ swc1 $f26, ($a0) +/* 017E94 70017294 C7B20050 */ lwc1 $f18, 0x50($sp) +/* 017E98 70017298 C7B00054 */ lwc1 $f16, 0x54($sp) +/* 017E9C 7001729C C7AE0058 */ lwc1 $f14, 0x58($sp) +/* 017EA0 700172A0 461A9182 */ mul.s $f6, $f18, $f26 +/* 017EA4 700172A4 C7A00068 */ lwc1 $f0, 0x68($sp) +/* 017EA8 700172A8 C7AC006C */ lwc1 $f12, 0x6c($sp) +/* 017EAC 700172AC 461C8202 */ mul.s $f8, $f16, $f28 +/* 017EB0 700172B0 C7A20070 */ lwc1 $f2, 0x70($sp) +/* 017EB4 700172B4 E49C0010 */ swc1 $f28, 0x10($a0) +/* 017EB8 700172B8 461E7102 */ mul.s $f4, $f14, $f30 +/* 017EBC 700172BC E49E0020 */ swc1 $f30, 0x20($a0) +/* 017EC0 700172C0 E4940008 */ swc1 $f20, 8($a0) +/* 017EC4 700172C4 E4960018 */ swc1 $f22, 0x18($a0) +/* 017EC8 700172C8 E4980028 */ swc1 $f24, 0x28($a0) +/* 017ECC 700172CC 46083280 */ add.s $f10, $f6, $f8 +/* 017ED0 700172D0 E4800004 */ swc1 $f0, 4($a0) +/* 017ED4 700172D4 E48C0014 */ swc1 $f12, 0x14($a0) +/* 017ED8 700172D8 E4820024 */ swc1 $f2, 0x24($a0) +/* 017EDC 700172DC 46045180 */ add.s $f6, $f10, $f4 +/* 017EE0 700172E0 46009282 */ mul.s $f10, $f18, $f0 +/* 017EE4 700172E4 44800000 */ mtc1 $zero, $f0 +/* 017EE8 700172E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 017EEC 700172EC 460C8102 */ mul.s $f4, $f16, $f12 +/* 017EF0 700172F0 46003207 */ neg.s $f8, $f6 +/* 017EF4 700172F4 E4880030 */ swc1 $f8, 0x30($a0) +/* 017EF8 700172F8 46027202 */ mul.s $f8, $f14, $f2 +/* 017EFC 700172FC 46045180 */ add.s $f6, $f10, $f4 +/* 017F00 70017300 46083280 */ add.s $f10, $f6, $f8 +/* 017F04 70017304 46005107 */ neg.s $f4, $f10 +/* 017F08 70017308 E4840034 */ swc1 $f4, 0x34($a0) +/* 017F0C 7001730C C7A60050 */ lwc1 $f6, 0x50($sp) +/* 017F10 70017310 C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 017F14 70017314 46143202 */ mul.s $f8, $f6, $f20 +/* 017F18 70017318 00000000 */ nop +/* 017F1C 7001731C 46165102 */ mul.s $f4, $f10, $f22 +/* 017F20 70017320 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 017F24 70017324 E480000C */ swc1 $f0, 0xc($a0) +/* 017F28 70017328 E480001C */ swc1 $f0, 0x1c($a0) +/* 017F2C 7001732C E480002C */ swc1 $f0, 0x2c($a0) +/* 017F30 70017330 46044180 */ add.s $f6, $f8, $f4 +/* 017F34 70017334 46185202 */ mul.s $f8, $f10, $f24 +/* 017F38 70017338 46083100 */ add.s $f4, $f6, $f8 +/* 017F3C 7001733C 44813000 */ mtc1 $at, $f6 +/* 017F40 70017340 46002287 */ neg.s $f10, $f4 +/* 017F44 70017344 E486003C */ swc1 $f6, 0x3c($a0) +/* 017F48 70017348 E48A0038 */ swc1 $f10, 0x38($a0) +/* 017F4C 7001734C 8FBF0044 */ lw $ra, 0x44($sp) +/* 017F50 70017350 D7BE0038 */ ldc1 $f30, 0x38($sp) +/* 017F54 70017354 D7BC0030 */ ldc1 $f28, 0x30($sp) +/* 017F58 70017358 D7BA0028 */ ldc1 $f26, 0x28($sp) +/* 017F5C 7001735C D7B80020 */ ldc1 $f24, 0x20($sp) +/* 017F60 70017360 D7B60018 */ ldc1 $f22, 0x18($sp) +/* 017F64 70017364 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 017F68 70017368 03E00008 */ jr $ra +/* 017F6C 7001736C 27BD0048 */ addiu $sp, $sp, 0x48 + +glabel guLookAtReflect +/* 017F70 70017370 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 017F74 70017374 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 017F78 70017378 44866000 */ mtc1 $a2, $f12 +/* 017F7C 7001737C 44877000 */ mtc1 $a3, $f14 +/* 017F80 70017380 E7A40010 */ swc1 $f4, 0x10($sp) +/* 017F84 70017384 C7A400A0 */ lwc1 $f4, 0xa0($sp) +/* 017F88 70017388 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 017F8C 7001738C C7A80090 */ lwc1 $f8, 0x90($sp) +/* 017F90 70017390 C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 017F94 70017394 C7B00098 */ lwc1 $f16, 0x98($sp) +/* 017F98 70017398 C7B2009C */ lwc1 $f18, 0x9c($sp) +/* 017F9C 7001739C AFBF0034 */ sw $ra, 0x34($sp) +/* 017FA0 700173A0 AFA40078 */ sw $a0, 0x78($sp) +/* 017FA4 700173A4 44066000 */ mfc1 $a2, $f12 +/* 017FA8 700173A8 44077000 */ mfc1 $a3, $f14 +/* 017FAC 700173AC 27A40038 */ addiu $a0, $sp, 0x38 +/* 017FB0 700173B0 E7A40028 */ swc1 $f4, 0x28($sp) +/* 017FB4 700173B4 E7A60014 */ swc1 $f6, 0x14($sp) +/* 017FB8 700173B8 E7A80018 */ swc1 $f8, 0x18($sp) +/* 017FBC 700173BC E7AA001C */ swc1 $f10, 0x1c($sp) +/* 017FC0 700173C0 E7B00020 */ swc1 $f16, 0x20($sp) +/* 017FC4 700173C4 0C005BCC */ jal guLookAtReflectF +/* 017FC8 700173C8 E7B20024 */ swc1 $f18, 0x24($sp) +/* 017FCC 700173CC 27A40038 */ addiu $a0, $sp, 0x38 +/* 017FD0 700173D0 0C003FC4 */ jal guMtxF2L +/* 017FD4 700173D4 8FA50078 */ lw $a1, 0x78($sp) +/* 017FD8 700173D8 8FBF0034 */ lw $ra, 0x34($sp) +/* 017FDC 700173DC 27BD0078 */ addiu $sp, $sp, 0x78 +/* 017FE0 700173E0 03E00008 */ jr $ra +/* 017FE4 700173E4 00000000 */ nop + +.align 4 + +.section .rodata +glabel F64_80029800 +.double 127.0 +.align 4 diff --git a/src/libultra/mainbus.s b/src/libultra/mainbus.s new file mode 100644 index 0000000..767cc79 --- /dev/null +++ b/src/libultra/mainbus.s @@ -0,0 +1,103 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alMainBusParam +/* 01A560 70019960 24010002 */ li $at, 2 +/* 01A564 70019964 14A10008 */ bne $a1, $at, .L70019988 +/* 01A568 70019968 8C82001C */ lw $v0, 0x1c($a0) +/* 01A56C 7001996C 8C8E0014 */ lw $t6, 0x14($a0) +/* 01A570 70019970 000E7880 */ sll $t7, $t6, 2 +/* 01A574 70019974 004FC021 */ addu $t8, $v0, $t7 +/* 01A578 70019978 AF060000 */ sw $a2, ($t8) +/* 01A57C 7001997C 8C990014 */ lw $t9, 0x14($a0) +/* 01A580 70019980 27280001 */ addiu $t0, $t9, 1 +/* 01A584 70019984 AC880014 */ sw $t0, 0x14($a0) +.L70019988: +/* 01A588 70019988 03E00008 */ jr $ra +/* 01A58C 7001998C 00001025 */ move $v0, $zero + +glabel alMainBusPull +/* 01A590 70019990 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 01A594 70019994 8FA80058 */ lw $t0, 0x58($sp) +/* 01A598 70019998 AFBF0044 */ sw $ra, 0x44($sp) +/* 01A59C 7001999C AFBE0040 */ sw $fp, 0x40($sp) +/* 01A5A0 700199A0 AFB7003C */ sw $s7, 0x3c($sp) +/* 01A5A4 700199A4 AFB60038 */ sw $s6, 0x38($sp) +/* 01A5A8 700199A8 AFB50034 */ sw $s5, 0x34($sp) +/* 01A5AC 700199AC AFB40030 */ sw $s4, 0x30($sp) +/* 01A5B0 700199B0 AFB3002C */ sw $s3, 0x2c($sp) +/* 01A5B4 700199B4 AFB20028 */ sw $s2, 0x28($sp) +/* 01A5B8 700199B8 AFB10024 */ sw $s1, 0x24($sp) +/* 01A5BC 700199BC AFB00020 */ sw $s0, 0x20($sp) +/* 01A5C0 700199C0 8C83001C */ lw $v1, 0x1c($a0) +/* 01A5C4 700199C4 3C0E0200 */ lui $t6, (0x02000440 >> 16) # lui $t6, 0x200 +/* 01A5C8 700199C8 00061040 */ sll $v0, $a2, 1 +/* 01A5CC 700199CC 3C0F0200 */ lui $t7, (0x02000580 >> 16) # lui $t7, 0x200 +/* 01A5D0 700199D0 35CE0440 */ ori $t6, (0x02000440 & 0xFFFF) # ori $t6, $t6, 0x440 +/* 01A5D4 700199D4 35EF0580 */ ori $t7, (0x02000580 & 0xFFFF) # ori $t7, $t7, 0x580 +/* 01A5D8 700199D8 AD0E0000 */ sw $t6, ($t0) +/* 01A5DC 700199DC AD020004 */ sw $v0, 4($t0) +/* 01A5E0 700199E0 AD0F0008 */ sw $t7, 8($t0) +/* 01A5E4 700199E4 AD02000C */ sw $v0, 0xc($t0) +/* 01A5E8 700199E8 8C980014 */ lw $t8, 0x14($a0) +/* 01A5EC 700199EC 00C0A825 */ move $s5, $a2 +/* 01A5F0 700199F0 00A0B825 */ move $s7, $a1 +/* 01A5F4 700199F4 00E0F025 */ move $fp, $a3 +/* 01A5F8 700199F8 0080A025 */ move $s4, $a0 +/* 01A5FC 700199FC 00008025 */ move $s0, $zero +/* 01A600 70019A00 1B00001E */ blez $t8, .L70019A7C +/* 01A604 70019A04 25130010 */ addiu $s3, $t0, 0x10 +/* 01A608 70019A08 3C120C00 */ lui $s2, (0x0C007FFF >> 16) # lui $s2, 0xc00 +/* 01A60C 70019A0C 36527FFF */ ori $s2, (0x0C007FFF & 0xFFFF) # ori $s2, $s2, 0x7fff +/* 01A610 70019A10 00608825 */ move $s1, $v1 +/* 01A614 70019A14 3056FFFF */ andi $s6, $v0, 0xffff +.L70019A18: +/* 01A618 70019A18 8E240000 */ lw $a0, ($s1) +/* 01A61C 70019A1C AFB30010 */ sw $s3, 0x10($sp) +/* 01A620 70019A20 02E02825 */ move $a1, $s7 +/* 01A624 70019A24 8C990004 */ lw $t9, 4($a0) +/* 01A628 70019A28 02A03025 */ move $a2, $s5 +/* 01A62C 70019A2C 03C03825 */ move $a3, $fp +/* 01A630 70019A30 0320F809 */ jalr $t9 +/* 01A634 70019A34 00000000 */ nop +/* 01A638 70019A38 3C0A06C0 */ lui $t2, (0x06C00440 >> 16) # lui $t2, 0x6c0 +/* 01A63C 70019A3C 3C0B0800 */ lui $t3, (0x08000580 >> 16) # lui $t3, 0x800 +/* 01A640 70019A40 3C090800 */ lui $t1, 0x800 +/* 01A644 70019A44 354A0440 */ ori $t2, (0x06C00440 & 0xFFFF) # ori $t2, $t2, 0x440 +/* 01A648 70019A48 356B0580 */ ori $t3, (0x08000580 & 0xFFFF) # ori $t3, $t3, 0x580 +/* 01A64C 70019A4C AC490000 */ sw $t1, ($v0) +/* 01A650 70019A50 AC560004 */ sw $s6, 4($v0) +/* 01A654 70019A54 AC4A000C */ sw $t2, 0xc($v0) +/* 01A658 70019A58 AC520008 */ sw $s2, 8($v0) +/* 01A65C 70019A5C AC4B0014 */ sw $t3, 0x14($v0) +/* 01A660 70019A60 AC520010 */ sw $s2, 0x10($v0) +/* 01A664 70019A64 8E8C0014 */ lw $t4, 0x14($s4) +/* 01A668 70019A68 26100001 */ addiu $s0, $s0, 1 +/* 01A66C 70019A6C 26310004 */ addiu $s1, $s1, 4 +/* 01A670 70019A70 020C082A */ slt $at, $s0, $t4 +/* 01A674 70019A74 1420FFE8 */ bnez $at, .L70019A18 +/* 01A678 70019A78 24530018 */ addiu $s3, $v0, 0x18 +.L70019A7C: +/* 01A67C 70019A7C 8FBF0044 */ lw $ra, 0x44($sp) +/* 01A680 70019A80 02601025 */ move $v0, $s3 +/* 01A684 70019A84 8FB3002C */ lw $s3, 0x2c($sp) +/* 01A688 70019A88 8FB00020 */ lw $s0, 0x20($sp) +/* 01A68C 70019A8C 8FB10024 */ lw $s1, 0x24($sp) +/* 01A690 70019A90 8FB20028 */ lw $s2, 0x28($sp) +/* 01A694 70019A94 8FB40030 */ lw $s4, 0x30($sp) +/* 01A698 70019A98 8FB50034 */ lw $s5, 0x34($sp) +/* 01A69C 70019A9C 8FB60038 */ lw $s6, 0x38($sp) +/* 01A6A0 70019AA0 8FB7003C */ lw $s7, 0x3c($sp) +/* 01A6A4 70019AA4 8FBE0040 */ lw $fp, 0x40($sp) +/* 01A6A8 70019AA8 03E00008 */ jr $ra +/* 01A6AC 70019AAC 27BD0048 */ addiu $sp, $sp, 0x48 diff --git a/src/libultra/mtxutil.s b/src/libultra/mtxutil.s new file mode 100644 index 0000000..243c791 --- /dev/null +++ b/src/libultra/mtxutil.s @@ -0,0 +1,183 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel guMtxF2L +/* 010B10 7000FF10 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 010B14 7000FF14 44810000 */ mtc1 $at, $f0 +/* 010B18 7000FF18 00A01025 */ move $v0, $a1 +/* 010B1C 7000FF1C 24A30020 */ addiu $v1, $a1, 0x20 +/* 010B20 7000FF20 00003025 */ move $a2, $zero +/* 010B24 7000FF24 00803825 */ move $a3, $a0 +/* 010B28 7000FF28 240C0004 */ li $t4, 4 +/* 010B2C 7000FF2C 240B0002 */ li $t3, 2 +/* 010B30 7000FF30 3C0AFFFF */ lui $t2, 0xffff +.L7000FF34: +/* 010B34 7000FF34 00002025 */ move $a0, $zero +/* 010B38 7000FF38 00E04025 */ move $t0, $a3 +/* 010B3C 7000FF3C C50E0004 */ lwc1 $f14, 4($t0) +/* 010B40 7000FF40 24840001 */ addiu $a0, $a0, 1 +/* 010B44 7000FF44 C5120000 */ lwc1 $f18, ($t0) +/* 010B48 7000FF48 46007402 */ mul.s $f16, $f14, $f0 +/* 010B4C 7000FF4C 108B0019 */ beq $a0, $t3, .L7000FFB4 +/* 010B50 7000FF50 00000000 */ nop +.L7000FF54: +/* 010B54 7000FF54 46009382 */ mul.s $f14, $f18, $f0 +/* 010B58 7000FF58 24840001 */ addiu $a0, $a0, 1 +/* 010B5C 7000FF5C 24420004 */ addiu $v0, $v0, 4 +/* 010B60 7000FF60 24630004 */ addiu $v1, $v1, 4 +/* 010B64 7000FF64 25080008 */ addiu $t0, $t0, 8 +/* 010B68 7000FF68 4600830D */ trunc.w.s $f12, $f16 +/* 010B6C 7000FF6C 4600738D */ trunc.w.s $f14, $f14 +/* 010B70 7000FF70 44096000 */ mfc1 $t1, $f12 +/* 010B74 7000FF74 44057000 */ mfc1 $a1, $f14 +/* 010B78 7000FF78 0009CC03 */ sra $t9, $t1, 0x10 +/* 010B7C 7000FF7C 332DFFFF */ andi $t5, $t9, 0xffff +/* 010B80 7000FF80 00AAC024 */ and $t8, $a1, $t2 +/* 010B84 7000FF84 030D7025 */ or $t6, $t8, $t5 +/* 010B88 7000FF88 00057C00 */ sll $t7, $a1, 0x10 +/* 010B8C 7000FF8C 01EAC824 */ and $t9, $t7, $t2 +/* 010B90 7000FF90 AC4EFFFC */ sw $t6, -4($v0) +/* 010B94 7000FF94 3138FFFF */ andi $t8, $t1, 0xffff +/* 010B98 7000FF98 03386825 */ or $t5, $t9, $t8 +/* 010B9C 7000FF9C AC6DFFFC */ sw $t5, -4($v1) +/* 010BA0 7000FFA0 C50E0004 */ lwc1 $f14, 4($t0) +/* 010BA4 7000FFA4 C5120000 */ lwc1 $f18, ($t0) +/* 010BA8 7000FFA8 46007402 */ mul.s $f16, $f14, $f0 +/* 010BAC 7000FFAC 148BFFE9 */ bne $a0, $t3, .L7000FF54 +/* 010BB0 7000FFB0 00000000 */ nop +.L7000FFB4: +/* 010BB4 7000FFB4 46009382 */ mul.s $f14, $f18, $f0 +/* 010BB8 7000FFB8 25080008 */ addiu $t0, $t0, 8 +/* 010BBC 7000FFBC 24420004 */ addiu $v0, $v0, 4 +/* 010BC0 7000FFC0 24630004 */ addiu $v1, $v1, 4 +/* 010BC4 7000FFC4 4600830D */ trunc.w.s $f12, $f16 +/* 010BC8 7000FFC8 4600738D */ trunc.w.s $f14, $f14 +/* 010BCC 7000FFCC 44096000 */ mfc1 $t1, $f12 +/* 010BD0 7000FFD0 44057000 */ mfc1 $a1, $f14 +/* 010BD4 7000FFD4 0009CC03 */ sra $t9, $t1, 0x10 +/* 010BD8 7000FFD8 332DFFFF */ andi $t5, $t9, 0xffff +/* 010BDC 7000FFDC 00AAC024 */ and $t8, $a1, $t2 +/* 010BE0 7000FFE0 030D7025 */ or $t6, $t8, $t5 +/* 010BE4 7000FFE4 00057C00 */ sll $t7, $a1, 0x10 +/* 010BE8 7000FFE8 01EAC824 */ and $t9, $t7, $t2 +/* 010BEC 7000FFEC 3138FFFF */ andi $t8, $t1, 0xffff +/* 010BF0 7000FFF0 AC4EFFFC */ sw $t6, -4($v0) +/* 010BF4 7000FFF4 03386825 */ or $t5, $t9, $t8 +/* 010BF8 7000FFF8 AC6DFFFC */ sw $t5, -4($v1) +/* 010BFC 7000FFFC 24C60001 */ addiu $a2, $a2, 1 +/* 010C00 70010000 14CCFFCC */ bne $a2, $t4, .L7000FF34 +/* 010C04 70010004 24E70010 */ addiu $a3, $a3, 0x10 +/* 010C08 70010008 03E00008 */ jr $ra +/* 010C0C 7001000C 00000000 */ nop + + +.section .text +glabel guMtxIdentF +/* 010C10 70010010 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 010C14 70010014 00801825 */ move $v1, $a0 +/* 010C18 70010018 44810000 */ mtc1 $at, $f0 +/* 010C1C 7001001C 44801000 */ mtc1 $zero, $f2 +/* 010C20 70010020 24040001 */ li $a0, 1 +/* 010C24 70010024 00001025 */ move $v0, $zero +/* 010C28 70010028 24070004 */ li $a3, 4 +/* 010C2C 7001002C 24060003 */ li $a2, 3 +/* 010C30 70010030 24050002 */ li $a1, 2 +.L70010034: +/* 010C34 70010034 54400004 */ bnezl $v0, .L70010048 +/* 010C38 70010038 E4620000 */ swc1 $f2, ($v1) +/* 010C3C 7001003C 10000002 */ b .L70010048 +/* 010C40 70010040 E4600000 */ swc1 $f0, ($v1) +/* 010C44 70010044 E4620000 */ swc1 $f2, ($v1) +.L70010048: +/* 010C48 70010048 54440004 */ bnel $v0, $a0, .L7001005C +/* 010C4C 7001004C E4620004 */ swc1 $f2, 4($v1) +/* 010C50 70010050 10000002 */ b .L7001005C +/* 010C54 70010054 E4600004 */ swc1 $f0, 4($v1) +/* 010C58 70010058 E4620004 */ swc1 $f2, 4($v1) +.L7001005C: +/* 010C5C 7001005C 54450004 */ bnel $v0, $a1, .L70010070 +/* 010C60 70010060 E4620008 */ swc1 $f2, 8($v1) +/* 010C64 70010064 10000002 */ b .L70010070 +/* 010C68 70010068 E4600008 */ swc1 $f0, 8($v1) +/* 010C6C 7001006C E4620008 */ swc1 $f2, 8($v1) +.L70010070: +/* 010C70 70010070 54460004 */ bnel $v0, $a2, .L70010084 +/* 010C74 70010074 E462000C */ swc1 $f2, 0xc($v1) +/* 010C78 70010078 10000002 */ b .L70010084 +/* 010C7C 7001007C E460000C */ swc1 $f0, 0xc($v1) +/* 010C80 70010080 E462000C */ swc1 $f2, 0xc($v1) +.L70010084: +/* 010C84 70010084 24420001 */ addiu $v0, $v0, 1 +/* 010C88 70010088 1447FFEA */ bne $v0, $a3, .L70010034 +/* 010C8C 7001008C 24630010 */ addiu $v1, $v1, 0x10 +/* 010C90 70010090 03E00008 */ jr $ra +/* 010C94 70010094 00000000 */ nop + +glabel guMtxIdent +/* 010C98 70010098 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 010C9C 7001009C AFBF0014 */ sw $ra, 0x14($sp) +/* 010CA0 700100A0 AFA40058 */ sw $a0, 0x58($sp) +/* 010CA4 700100A4 0C004004 */ jal guMtxIdentF +/* 010CA8 700100A8 27A40018 */ addiu $a0, $sp, 0x18 +/* 010CAC 700100AC 27A40018 */ addiu $a0, $sp, 0x18 +/* 010CB0 700100B0 0C003FC4 */ jal guMtxF2L +/* 010CB4 700100B4 8FA50058 */ lw $a1, 0x58($sp) +/* 010CB8 700100B8 8FBF0014 */ lw $ra, 0x14($sp) +/* 010CBC 700100BC 27BD0058 */ addiu $sp, $sp, 0x58 +/* 010CC0 700100C0 03E00008 */ jr $ra +/* 010CC4 700100C4 00000000 */ nop + +glabel guMtxL2F +/* 010CC8 700100C8 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 010CCC 700100CC 44810000 */ mtc1 $at, $f0 +/* 010CD0 700100D0 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 010CD4 700100D4 00A01025 */ move $v0, $a1 +/* 010CD8 700100D8 24A30020 */ addiu $v1, $a1, 0x20 +/* 010CDC 700100DC 00003025 */ move $a2, $zero +/* 010CE0 700100E0 00804025 */ move $t0, $a0 +/* 010CE4 700100E4 240C0004 */ li $t4, 4 +/* 010CE8 700100E8 240B0002 */ li $t3, 2 +/* 010CEC 700100EC 3C0AFFFF */ lui $t2, 0xffff +.L700100F0: +/* 010CF0 700100F0 00002025 */ move $a0, $zero +/* 010CF4 700100F4 01004825 */ move $t1, $t0 +.L700100F8: +/* 010CF8 700100F8 8C6E0000 */ lw $t6, ($v1) +/* 010CFC 700100FC 8C590000 */ lw $t9, ($v0) +/* 010D00 70010100 24840001 */ addiu $a0, $a0, 1 +/* 010D04 70010104 000E7C02 */ srl $t7, $t6, 0x10 +/* 010D08 70010108 31F8FFFF */ andi $t8, $t7, 0xffff +/* 010D0C 7001010C 032A6824 */ and $t5, $t9, $t2 +/* 010D10 70010110 030D7025 */ or $t6, $t8, $t5 +/* 010D14 70010114 AFAE0004 */ sw $t6, 4($sp) +/* 010D18 70010118 8C6F0000 */ lw $t7, ($v1) +/* 010D1C 7001011C 8C580000 */ lw $t8, ($v0) +/* 010D20 70010120 8FA50004 */ lw $a1, 4($sp) +/* 010D24 70010124 31F9FFFF */ andi $t9, $t7, 0xffff +/* 010D28 70010128 00186C00 */ sll $t5, $t8, 0x10 +/* 010D2C 7001012C 44859000 */ mtc1 $a1, $f18 +/* 010D30 70010130 01AA7024 */ and $t6, $t5, $t2 +/* 010D34 70010134 032E3825 */ or $a3, $t9, $t6 +/* 010D38 70010138 468094A0 */ cvt.s.w $f18, $f18 +/* 010D3C 7001013C 44878000 */ mtc1 $a3, $f16 +/* 010D40 70010140 AFA70000 */ sw $a3, ($sp) +/* 010D44 70010144 24420004 */ addiu $v0, $v0, 4 +/* 010D48 70010148 24630004 */ addiu $v1, $v1, 4 +/* 010D4C 7001014C 46808420 */ cvt.s.w $f16, $f16 +/* 010D50 70010150 25290008 */ addiu $t1, $t1, 8 +/* 010D54 70010154 46009483 */ div.s $f18, $f18, $f0 +/* 010D58 70010158 46008403 */ div.s $f16, $f16, $f0 +/* 010D5C 7001015C E532FFF8 */ swc1 $f18, -8($t1) +/* 010D60 70010160 148BFFE5 */ bne $a0, $t3, .L700100F8 +/* 010D64 70010164 E530FFFC */ swc1 $f16, -4($t1) +/* 010D68 70010168 24C60001 */ addiu $a2, $a2, 1 +/* 010D6C 7001016C 14CCFFE0 */ bne $a2, $t4, .L700100F0 +/* 010D70 70010170 25080010 */ addiu $t0, $t0, 0x10 +/* 010D74 70010174 03E00008 */ jr $ra +/* 010D78 70010178 27BD0010 */ addiu $sp, $sp, 0x10 diff --git a/src/libultra/normalize.s b/src/libultra/normalize.s new file mode 100644 index 0000000..632ad5c --- /dev/null +++ b/src/libultra/normalize.s @@ -0,0 +1,47 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel guNormalize +/* 020350 7001F750 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 020354 7001F754 AFBF0014 */ sw $ra, 0x14($sp) +/* 020358 7001F758 C4820000 */ lwc1 $f2, ($a0) +/* 02035C 7001F75C C4AE0000 */ lwc1 $f14, ($a1) +/* 020360 7001F760 C4C00000 */ lwc1 $f0, ($a2) +/* 020364 7001F764 46021102 */ mul.s $f4, $f2, $f2 +/* 020368 7001F768 AFA60020 */ sw $a2, 0x20($sp) +/* 02036C 7001F76C AFA5001C */ sw $a1, 0x1c($sp) +/* 020370 7001F770 460E7182 */ mul.s $f6, $f14, $f14 +/* 020374 7001F774 AFA40018 */ sw $a0, 0x18($sp) +/* 020378 7001F778 46000282 */ mul.s $f10, $f0, $f0 +/* 02037C 7001F77C 46062200 */ add.s $f8, $f4, $f6 +/* 020380 7001F780 0C007DF8 */ jal sqrtf +/* 020384 7001F784 46085300 */ add.s $f12, $f10, $f8 +/* 020388 7001F788 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 02038C 7001F78C 44818000 */ mtc1 $at, $f16 +/* 020390 7001F790 8FA40018 */ lw $a0, 0x18($sp) +/* 020394 7001F794 8FA5001C */ lw $a1, 0x1c($sp) +/* 020398 7001F798 46008083 */ div.s $f2, $f16, $f0 +/* 02039C 7001F79C C4920000 */ lwc1 $f18, ($a0) +/* 0203A0 7001F7A0 8FA60020 */ lw $a2, 0x20($sp) +/* 0203A4 7001F7A4 46029102 */ mul.s $f4, $f18, $f2 +/* 0203A8 7001F7A8 E4840000 */ swc1 $f4, ($a0) +/* 0203AC 7001F7AC C4A60000 */ lwc1 $f6, ($a1) +/* 0203B0 7001F7B0 46023282 */ mul.s $f10, $f6, $f2 +/* 0203B4 7001F7B4 E4AA0000 */ swc1 $f10, ($a1) +/* 0203B8 7001F7B8 C4C80000 */ lwc1 $f8, ($a2) +/* 0203BC 7001F7BC 46024402 */ mul.s $f16, $f8, $f2 +/* 0203C0 7001F7C0 E4D00000 */ swc1 $f16, ($a2) +/* 0203C4 7001F7C4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0203C8 7001F7C8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0203CC 7001F7CC 03E00008 */ jr $ra +/* 0203D0 7001F7D0 00000000 */ nop diff --git a/src/libultra/ortho.s b/src/libultra/ortho.s new file mode 100644 index 0000000..4ef27f6 --- /dev/null +++ b/src/libultra/ortho.s @@ -0,0 +1,130 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel guOrthoF +/* 017670 70016A70 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 017674 70016A74 AFBF0014 */ sw $ra, 0x14($sp) +/* 017678 70016A78 AFA5001C */ sw $a1, 0x1c($sp) +/* 01767C 70016A7C AFA60020 */ sw $a2, 0x20($sp) +/* 017680 70016A80 AFA70024 */ sw $a3, 0x24($sp) +/* 017684 70016A84 0C004004 */ jal guMtxIdentF +/* 017688 70016A88 AFA40018 */ sw $a0, 0x18($sp) +/* 01768C 70016A8C C7A40020 */ lwc1 $f4, 0x20($sp) +/* 017690 70016A90 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 017694 70016A94 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 017698 70016A98 44814000 */ mtc1 $at, $f8 +/* 01769C 70016A9C 46062001 */ sub.s $f0, $f4, $f6 +/* 0176A0 70016AA0 8FA20018 */ lw $v0, 0x18($sp) +/* 0176A4 70016AA4 C7AE0028 */ lwc1 $f14, 0x28($sp) +/* 0176A8 70016AA8 C7B00030 */ lwc1 $f16, 0x30($sp) +/* 0176AC 70016AAC 46004283 */ div.s $f10, $f8, $f0 +/* 0176B0 70016AB0 C7B2002C */ lwc1 $f18, 0x2c($sp) +/* 0176B4 70016AB4 44813000 */ mtc1 $at, $f6 +/* 0176B8 70016AB8 3C01C000 */ li $at, 0xC0000000 # -2.000000 +/* 0176BC 70016ABC 46128301 */ sub.s $f12, $f16, $f18 +/* 0176C0 70016AC0 00001825 */ move $v1, $zero +/* 0176C4 70016AC4 24040004 */ li $a0, 4 +/* 0176C8 70016AC8 E44A0000 */ swc1 $f10, ($v0) +/* 0176CC 70016ACC C7A40024 */ lwc1 $f4, 0x24($sp) +/* 0176D0 70016AD0 44815000 */ mtc1 $at, $f10 +/* 0176D4 70016AD4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0176D8 70016AD8 46047081 */ sub.s $f2, $f14, $f4 +/* 0176DC 70016ADC 460C5103 */ div.s $f4, $f10, $f12 +/* 0176E0 70016AE0 46023203 */ div.s $f8, $f6, $f2 +/* 0176E4 70016AE4 E4440028 */ swc1 $f4, 0x28($v0) +/* 0176E8 70016AE8 E4480014 */ swc1 $f8, 0x14($v0) +/* 0176EC 70016AEC C7A8001C */ lwc1 $f8, 0x1c($sp) +/* 0176F0 70016AF0 C7A60020 */ lwc1 $f6, 0x20($sp) +/* 0176F4 70016AF4 46083280 */ add.s $f10, $f6, $f8 +/* 0176F8 70016AF8 46005107 */ neg.s $f4, $f10 +/* 0176FC 70016AFC 46002183 */ div.s $f6, $f4, $f0 +/* 017700 70016B00 E4460030 */ swc1 $f6, 0x30($v0) +/* 017704 70016B04 C7A80024 */ lwc1 $f8, 0x24($sp) +/* 017708 70016B08 46087280 */ add.s $f10, $f14, $f8 +/* 01770C 70016B0C 46128200 */ add.s $f8, $f16, $f18 +/* 017710 70016B10 46005107 */ neg.s $f4, $f10 +/* 017714 70016B14 46004287 */ neg.s $f10, $f8 +/* 017718 70016B18 46022183 */ div.s $f6, $f4, $f2 +/* 01771C 70016B1C 460C5103 */ div.s $f4, $f10, $f12 +/* 017720 70016B20 E4460034 */ swc1 $f6, 0x34($v0) +/* 017724 70016B24 44813000 */ mtc1 $at, $f6 +/* 017728 70016B28 00000000 */ nop +/* 01772C 70016B2C E446003C */ swc1 $f6, 0x3c($v0) +/* 017730 70016B30 E4440038 */ swc1 $f4, 0x38($v0) +/* 017734 70016B34 C7A00034 */ lwc1 $f0, 0x34($sp) +/* 017738 70016B38 C4480000 */ lwc1 $f8, ($v0) +/* 01773C 70016B3C 24630001 */ addiu $v1, $v1, 1 +/* 017740 70016B40 C4520004 */ lwc1 $f18, 4($v0) +/* 017744 70016B44 46004302 */ mul.s $f12, $f8, $f0 +/* 017748 70016B48 C44E0008 */ lwc1 $f14, 8($v0) +/* 01774C 70016B4C 10640010 */ beq $v1, $a0, .L70016B90 +/* 017750 70016B50 C450000C */ lwc1 $f16, 0xc($v0) +.L70016B54: +/* 017754 70016B54 46009282 */ mul.s $f10, $f18, $f0 +/* 017758 70016B58 C4480010 */ lwc1 $f8, 0x10($v0) +/* 01775C 70016B5C C4520014 */ lwc1 $f18, 0x14($v0) +/* 017760 70016B60 46007182 */ mul.s $f6, $f14, $f0 +/* 017764 70016B64 C44E0018 */ lwc1 $f14, 0x18($v0) +/* 017768 70016B68 24630001 */ addiu $v1, $v1, 1 +/* 01776C 70016B6C 46008102 */ mul.s $f4, $f16, $f0 +/* 017770 70016B70 C450001C */ lwc1 $f16, 0x1c($v0) +/* 017774 70016B74 E44C0000 */ swc1 $f12, ($v0) +/* 017778 70016B78 46004302 */ mul.s $f12, $f8, $f0 +/* 01777C 70016B7C E44A0004 */ swc1 $f10, 4($v0) +/* 017780 70016B80 E4460008 */ swc1 $f6, 8($v0) +/* 017784 70016B84 24420010 */ addiu $v0, $v0, 0x10 +/* 017788 70016B88 1464FFF2 */ bne $v1, $a0, .L70016B54 +/* 01778C 70016B8C E444FFFC */ swc1 $f4, -4($v0) +.L70016B90: +/* 017790 70016B90 46009282 */ mul.s $f10, $f18, $f0 +/* 017794 70016B94 24420010 */ addiu $v0, $v0, 0x10 +/* 017798 70016B98 E44CFFF0 */ swc1 $f12, -0x10($v0) +/* 01779C 70016B9C 46007182 */ mul.s $f6, $f14, $f0 +/* 0177A0 70016BA0 00000000 */ nop +/* 0177A4 70016BA4 46008102 */ mul.s $f4, $f16, $f0 +/* 0177A8 70016BA8 E44AFFF4 */ swc1 $f10, -0xc($v0) +/* 0177AC 70016BAC E446FFF8 */ swc1 $f6, -8($v0) +/* 0177B0 70016BB0 E444FFFC */ swc1 $f4, -4($v0) +/* 0177B4 70016BB4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0177B8 70016BB8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0177BC 70016BBC 03E00008 */ jr $ra +/* 0177C0 70016BC0 00000000 */ nop + +glabel guOrtho +/* 0177C4 70016BC4 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0177C8 70016BC8 44856000 */ mtc1 $a1, $f12 +/* 0177CC 70016BCC 44867000 */ mtc1 $a2, $f14 +/* 0177D0 70016BD0 44878000 */ mtc1 $a3, $f16 +/* 0177D4 70016BD4 C7A40078 */ lwc1 $f4, 0x78($sp) +/* 0177D8 70016BD8 C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 0177DC 70016BDC C7A80080 */ lwc1 $f8, 0x80($sp) +/* 0177E0 70016BE0 C7AA0084 */ lwc1 $f10, 0x84($sp) +/* 0177E4 70016BE4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0177E8 70016BE8 AFA40068 */ sw $a0, 0x68($sp) +/* 0177EC 70016BEC 44056000 */ mfc1 $a1, $f12 +/* 0177F0 70016BF0 44067000 */ mfc1 $a2, $f14 +/* 0177F4 70016BF4 44078000 */ mfc1 $a3, $f16 +/* 0177F8 70016BF8 27A40028 */ addiu $a0, $sp, 0x28 +/* 0177FC 70016BFC E7A40010 */ swc1 $f4, 0x10($sp) +/* 017800 70016C00 E7A60014 */ swc1 $f6, 0x14($sp) +/* 017804 70016C04 E7A80018 */ swc1 $f8, 0x18($sp) +/* 017808 70016C08 0C005A9C */ jal guOrthoF +/* 01780C 70016C0C E7AA001C */ swc1 $f10, 0x1c($sp) +/* 017810 70016C10 27A40028 */ addiu $a0, $sp, 0x28 +/* 017814 70016C14 0C003FC4 */ jal guMtxF2L +/* 017818 70016C18 8FA50068 */ lw $a1, 0x68($sp) +/* 01781C 70016C1C 8FBF0024 */ lw $ra, 0x24($sp) +/* 017820 70016C20 27BD0068 */ addiu $sp, $sp, 0x68 +/* 017824 70016C24 03E00008 */ jr $ra +/* 017828 70016C28 00000000 */ nop + diff --git a/src/libultra/parameters.s b/src/libultra/parameters.s new file mode 100644 index 0000000..fcfbcd3 --- /dev/null +++ b/src/libultra/parameters.s @@ -0,0 +1,27 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +#wtf why do these exist, figure out +#/* 00E2FC 7000D6FC 00000000 */ nop +/* 00E300 7000D700 00000000 */ nop +/* 00E304 7000D704 00000000 */ nop +/* 00E308 7000D708 00000000 */ nop +/* 00E30C 7000D70C 00000000 */ nop +/* 00E310 7000D710 00000000 */ nop +/* 00E314 7000D714 00000000 */ nop +/* 00E318 7000D718 00000000 */ nop +/* 00E31C 7000D71C 00000000 */ nop +/* 00E320 7000D720 00000000 */ nop +/* 00E324 7000D724 00000000 */ nop +/* 00E328 7000D728 00000000 */ nop +/* 00E32C 7000D72C 00000000 */ nop +/* 00E330 7000D730 00000000 */ nop +/* 00E334 7000D734 00000000 */ nop +/* 00E338 7000D738 00000000 */ nop +/* 00E33C 7000D73C 00000000 */ nop diff --git a/src/libultra/perspective.s b/src/libultra/perspective.s new file mode 100644 index 0000000..903468f --- /dev/null +++ b/src/libultra/perspective.s @@ -0,0 +1,186 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + +.section .rodata +glabel F64_80029430 +.word 0x3f91df46, 0x9d353918 +.align 4 + +.section .text, "ax" +glabel guPerspectiveF +/* 010880 7000FC80 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 010884 7000FC84 44867000 */ mtc1 $a2, $f14 +/* 010888 7000FC88 AFBF0014 */ sw $ra, 0x14($sp) +/* 01088C 7000FC8C AFA7003C */ sw $a3, 0x3c($sp) +/* 010890 7000FC90 AFA40030 */ sw $a0, 0x30($sp) +/* 010894 7000FC94 AFA50034 */ sw $a1, 0x34($sp) +/* 010898 7000FC98 0C004004 */ jal guMtxIdentF +/* 01089C 7000FC9C E7AE0038 */ swc1 $f14, 0x38($sp) +/* 0108A0 7000FCA0 C7AE0038 */ lwc1 $f14, 0x38($sp) +/* 0108A4 7000FCA4 3C018003 */ lui $at, %hi(F64_80029430) #0x80030000 +/* 0108A8 7000FCA8 D4269430 */ ldc1 $f6, %lo(F64_80029430)($at) # -0x6bd0($at) +/* 0108AC 7000FCAC 46007121 */ cvt.d.s $f4, $f14 +/* 0108B0 7000FCB0 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0108B4 7000FCB4 46262202 */ mul.d $f8, $f4, $f6 +/* 0108B8 7000FCB8 44815000 */ mtc1 $at, $f10 +/* 0108BC 7000FCBC 462043A0 */ cvt.s.d $f14, $f8 +/* 0108C0 7000FCC0 460A7303 */ div.s $f12, $f14, $f10 +/* 0108C4 7000FCC4 0FC15FA8 */ jal cosf +/* 0108C8 7000FCC8 E7AC001C */ swc1 $f12, 0x1c($sp) +/* 0108CC 7000FCCC C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 0108D0 7000FCD0 0FC15FAB */ jal sinf +/* 0108D4 7000FCD4 E7A00020 */ swc1 $f0, 0x20($sp) +/* 0108D8 7000FCD8 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0108DC 7000FCDC C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0108E0 7000FCE0 C7AE0040 */ lwc1 $f14, 0x40($sp) +/* 0108E4 7000FCE4 46002083 */ div.s $f2, $f4, $f0 +/* 0108E8 7000FCE8 C7B00044 */ lwc1 $f16, 0x44($sp) +/* 0108EC 7000FCEC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0108F0 7000FCF0 44812000 */ mtc1 $at, $f4 +/* 0108F4 7000FCF4 46107480 */ add.s $f18, $f14, $f16 +/* 0108F8 7000FCF8 8FA20030 */ lw $v0, 0x30($sp) +/* 0108FC 7000FCFC 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 010900 7000FD00 46107301 */ sub.s $f12, $f14, $f16 +/* 010904 7000FD04 8FA50034 */ lw $a1, 0x34($sp) +/* 010908 7000FD08 E444002C */ swc1 $f4, 0x2c($v0) +/* 01090C 7000FD0C 00001825 */ move $v1, $zero +/* 010910 7000FD10 24040004 */ li $a0, 4 +/* 010914 7000FD14 460C9283 */ div.s $f10, $f18, $f12 +/* 010918 7000FD18 E4420014 */ swc1 $f2, 0x14($v0) +/* 01091C 7000FD1C 46061203 */ div.s $f8, $f2, $f6 +/* 010920 7000FD20 44813000 */ mtc1 $at, $f6 +/* 010924 7000FD24 E44A0028 */ swc1 $f10, 0x28($v0) +/* 010928 7000FD28 E4480000 */ swc1 $f8, ($v0) +/* 01092C 7000FD2C 460E3202 */ mul.s $f8, $f6, $f14 +/* 010930 7000FD30 44803000 */ mtc1 $zero, $f6 +/* 010934 7000FD34 00000000 */ nop +/* 010938 7000FD38 E446003C */ swc1 $f6, 0x3c($v0) +/* 01093C 7000FD3C 46104282 */ mul.s $f10, $f8, $f16 +/* 010940 7000FD40 460C5103 */ div.s $f4, $f10, $f12 +/* 010944 7000FD44 E4440038 */ swc1 $f4, 0x38($v0) +/* 010948 7000FD48 C7A00048 */ lwc1 $f0, 0x48($sp) +/* 01094C 7000FD4C C4460000 */ lwc1 $f6, ($v0) +/* 010950 7000FD50 24630001 */ addiu $v1, $v1, 1 +/* 010954 7000FD54 C4500004 */ lwc1 $f16, 4($v0) +/* 010958 7000FD58 46003282 */ mul.s $f10, $f6, $f0 +/* 01095C 7000FD5C C44C0008 */ lwc1 $f12, 8($v0) +/* 010960 7000FD60 10640010 */ beq $v1, $a0, .L7000FDA4 +/* 010964 7000FD64 C44E000C */ lwc1 $f14, 0xc($v0) +.L7000FD68: +/* 010968 7000FD68 46008202 */ mul.s $f8, $f16, $f0 +/* 01096C 7000FD6C C4460010 */ lwc1 $f6, 0x10($v0) +/* 010970 7000FD70 C4500014 */ lwc1 $f16, 0x14($v0) +/* 010974 7000FD74 46006102 */ mul.s $f4, $f12, $f0 +/* 010978 7000FD78 C44C0018 */ lwc1 $f12, 0x18($v0) +/* 01097C 7000FD7C 24630001 */ addiu $v1, $v1, 1 +/* 010980 7000FD80 46007082 */ mul.s $f2, $f14, $f0 +/* 010984 7000FD84 C44E001C */ lwc1 $f14, 0x1c($v0) +/* 010988 7000FD88 E44A0000 */ swc1 $f10, ($v0) +/* 01098C 7000FD8C 46003282 */ mul.s $f10, $f6, $f0 +/* 010990 7000FD90 E4480004 */ swc1 $f8, 4($v0) +/* 010994 7000FD94 E4440008 */ swc1 $f4, 8($v0) +/* 010998 7000FD98 24420010 */ addiu $v0, $v0, 0x10 +/* 01099C 7000FD9C 1464FFF2 */ bne $v1, $a0, .L7000FD68 +/* 0109A0 7000FDA0 E442FFFC */ swc1 $f2, -4($v0) +.L7000FDA4: +/* 0109A4 7000FDA4 46008202 */ mul.s $f8, $f16, $f0 +/* 0109A8 7000FDA8 24420010 */ addiu $v0, $v0, 0x10 +/* 0109AC 7000FDAC E44AFFF0 */ swc1 $f10, -0x10($v0) +/* 0109B0 7000FDB0 46006102 */ mul.s $f4, $f12, $f0 +/* 0109B4 7000FDB4 00000000 */ nop +/* 0109B8 7000FDB8 46007082 */ mul.s $f2, $f14, $f0 +/* 0109BC 7000FDBC E448FFF4 */ swc1 $f8, -0xc($v0) +/* 0109C0 7000FDC0 E444FFF8 */ swc1 $f4, -8($v0) +/* 0109C4 7000FDC4 E442FFFC */ swc1 $f2, -4($v0) +/* 0109C8 7000FDC8 10A00035 */ beqz $a1, .L7000FEA0 +/* 0109CC 7000FDCC 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0109D0 7000FDD0 44814800 */ mtc1 $at, $f9 +/* 0109D4 7000FDD4 44804000 */ mtc1 $zero, $f8 +/* 0109D8 7000FDD8 46009021 */ cvt.d.s $f0, $f18 +/* 0109DC 7000FDDC 340EFFFF */ li $t6, 65535 +/* 0109E0 7000FDE0 4628003E */ c.le.d $f0, $f8 +/* 0109E4 7000FDE4 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 0109E8 7000FDE8 45020004 */ bc1fl .L7000FDFC +/* 0109EC 7000FDEC 44815800 */ mtc1 $at, $f11 +/* 0109F0 7000FDF0 1000002B */ b .L7000FEA0 +/* 0109F4 7000FDF4 A4AE0000 */ sh $t6, ($a1) +/* 0109F8 7000FDF8 44815800 */ mtc1 $at, $f11 +.L7000FDFC: +/* 0109FC 7000FDFC 44805000 */ mtc1 $zero, $f10 +/* 010A00 7000FE00 24180001 */ li $t8, 1 +/* 010A04 7000FE04 3C0141E0 */ li $at, 0x41E00000 # 28.000000 +/* 010A08 7000FE08 46205103 */ div.d $f4, $f10, $f0 +/* 010A0C 7000FE0C 24080001 */ li $t0, 1 +/* 010A10 7000FE10 444FF800 */ cfc1 $t7, $31 +/* 010A14 7000FE14 44D8F800 */ ctc1 $t8, $31 +/* 010A18 7000FE18 00000000 */ nop +/* 010A1C 7000FE1C 462021A4 */ cvt.w.d $f6, $f4 +/* 010A20 7000FE20 4458F800 */ cfc1 $t8, $31 +/* 010A24 7000FE24 00000000 */ nop +/* 010A28 7000FE28 33180078 */ andi $t8, $t8, 0x78 +/* 010A2C 7000FE2C 53000014 */ beql $t8, $zero, .L7000FE80 +/* 010A30 7000FE30 44183000 */ mfc1 $t8, $f6 +/* 010A34 7000FE34 44813800 */ mtc1 $at, $f7 +/* 010A38 7000FE38 44803000 */ mtc1 $zero, $f6 +/* 010A3C 7000FE3C 24180001 */ li $t8, 1 +/* 010A40 7000FE40 46262181 */ sub.d $f6, $f4, $f6 +/* 010A44 7000FE44 44D8F800 */ ctc1 $t8, $31 +/* 010A48 7000FE48 00000000 */ nop +/* 010A4C 7000FE4C 462031A4 */ cvt.w.d $f6, $f6 +/* 010A50 7000FE50 4458F800 */ cfc1 $t8, $31 +/* 010A54 7000FE54 00000000 */ nop +/* 010A58 7000FE58 33180078 */ andi $t8, $t8, 0x78 +/* 010A5C 7000FE5C 17000005 */ bnez $t8, .L7000FE74 +/* 010A60 7000FE60 00000000 */ nop +/* 010A64 7000FE64 44183000 */ mfc1 $t8, $f6 +/* 010A68 7000FE68 3C018000 */ lui $at, 0x8000 +/* 010A6C 7000FE6C 10000007 */ b .L7000FE8C +/* 010A70 7000FE70 0301C025 */ or $t8, $t8, $at +.L7000FE74: +/* 010A74 7000FE74 10000005 */ b .L7000FE8C +/* 010A78 7000FE78 2418FFFF */ li $t8, -1 +/* 010A7C 7000FE7C 44183000 */ mfc1 $t8, $f6 +.L7000FE80: +/* 010A80 7000FE80 00000000 */ nop +/* 010A84 7000FE84 0700FFFB */ bltz $t8, .L7000FE74 +/* 010A88 7000FE88 00000000 */ nop +.L7000FE8C: +/* 010A8C 7000FE8C 44CFF800 */ ctc1 $t7, $31 +/* 010A90 7000FE90 3319FFFF */ andi $t9, $t8, 0xffff +/* 010A94 7000FE94 1F200002 */ bgtz $t9, .L7000FEA0 +/* 010A98 7000FE98 A4B80000 */ sh $t8, ($a1) +/* 010A9C 7000FE9C A4A80000 */ sh $t0, ($a1) +.L7000FEA0: +/* 010AA0 7000FEA0 8FBF0014 */ lw $ra, 0x14($sp) +/* 010AA4 7000FEA4 27BD0030 */ addiu $sp, $sp, 0x30 +/* 010AA8 7000FEA8 03E00008 */ jr $ra +/* 010AAC 7000FEAC 00000000 */ nop + +glabel guPerspective +/* 010AB0 7000FEB0 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 010AB4 7000FEB4 44866000 */ mtc1 $a2, $f12 +/* 010AB8 7000FEB8 44877000 */ mtc1 $a3, $f14 +/* 010ABC 7000FEBC C7A40078 */ lwc1 $f4, 0x78($sp) +/* 010AC0 7000FEC0 C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 010AC4 7000FEC4 C7A80080 */ lwc1 $f8, 0x80($sp) +/* 010AC8 7000FEC8 AFBF0024 */ sw $ra, 0x24($sp) +/* 010ACC 7000FECC AFA40068 */ sw $a0, 0x68($sp) +/* 010AD0 7000FED0 44066000 */ mfc1 $a2, $f12 +/* 010AD4 7000FED4 44077000 */ mfc1 $a3, $f14 +/* 010AD8 7000FED8 27A40028 */ addiu $a0, $sp, 0x28 +/* 010ADC 7000FEDC E7A40010 */ swc1 $f4, 0x10($sp) +/* 010AE0 7000FEE0 E7A60014 */ swc1 $f6, 0x14($sp) +/* 010AE4 7000FEE4 0C003F20 */ jal guPerspectiveF +/* 010AE8 7000FEE8 E7A80018 */ swc1 $f8, 0x18($sp) +/* 010AEC 7000FEEC 27A40028 */ addiu $a0, $sp, 0x28 +/* 010AF0 7000FEF0 0C003FC4 */ jal guMtxF2L +/* 010AF4 7000FEF4 8FA50068 */ lw $a1, 0x68($sp) +/* 010AF8 7000FEF8 8FBF0024 */ lw $ra, 0x24($sp) +/* 010AFC 7000FEFC 27BD0068 */ addiu $sp, $sp, 0x68 +/* 010B00 7000FF00 03E00008 */ jr $ra +/* 010B04 7000FF04 00000000 */ nop + diff --git a/src/libultra/pfsinit.s b/src/libultra/pfsinit.s new file mode 100644 index 0000000..a1b6e59 --- /dev/null +++ b/src/libultra/pfsinit.s @@ -0,0 +1,136 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osPfsInit +/* 015340 70014740 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 015344 70014744 AFBF0014 */ sw $ra, 0x14($sp) +/* 015348 70014748 AFA40020 */ sw $a0, 0x20($sp) +/* 01534C 7001474C AFA50024 */ sw $a1, 0x24($sp) +/* 015350 70014750 AFA60028 */ sw $a2, 0x28($sp) +/* 015354 70014754 0C005798 */ jal __osSiGetAccess +/* 015358 70014758 AFA0001C */ sw $zero, 0x1c($sp) +/* 01535C 7001475C 8FA40020 */ lw $a0, 0x20($sp) +/* 015360 70014760 0C0051FD */ jal __osPfsGetStatus +/* 015364 70014764 8FA50028 */ lw $a1, 0x28($sp) +/* 015368 70014768 0C0057A9 */ jal __osSiRelAccess +/* 01536C 7001476C AFA2001C */ sw $v0, 0x1c($sp) +/* 015370 70014770 8FAE001C */ lw $t6, 0x1c($sp) +/* 015374 70014774 11C00003 */ beqz $t6, .L70014784 +/* 015378 70014778 00000000 */ nop +/* 01537C 7001477C 10000019 */ b .L700147E4 +/* 015380 70014780 01C01025 */ move $v0, $t6 +.L70014784: +/* 015384 70014784 8FAF0020 */ lw $t7, 0x20($sp) +/* 015388 70014788 8FB80024 */ lw $t8, 0x24($sp) +/* 01538C 7001478C AF0F0004 */ sw $t7, 4($t8) +/* 015390 70014790 8FA80024 */ lw $t0, 0x24($sp) +/* 015394 70014794 8FB90028 */ lw $t9, 0x28($sp) +/* 015398 70014798 AD190008 */ sw $t9, 8($t0) +/* 01539C 7001479C 8FA90024 */ lw $t1, 0x24($sp) +/* 0153A0 700147A0 AD200000 */ sw $zero, ($t1) +/* 0153A4 700147A4 0C007C0D */ jal __osGetId +/* 0153A8 700147A8 8FA40024 */ lw $a0, 0x24($sp) +/* 0153AC 700147AC AFA2001C */ sw $v0, 0x1c($sp) +/* 0153B0 700147B0 8FAA001C */ lw $t2, 0x1c($sp) +/* 0153B4 700147B4 11400003 */ beqz $t2, .L700147C4 +/* 0153B8 700147B8 00000000 */ nop +/* 0153BC 700147BC 10000009 */ b .L700147E4 +/* 0153C0 700147C0 01401025 */ move $v0, $t2 +.L700147C4: +/* 0153C4 700147C4 0C002DCA */ jal osPfsChecker +/* 0153C8 700147C8 8FA40024 */ lw $a0, 0x24($sp) +/* 0153CC 700147CC 8FAB0024 */ lw $t3, 0x24($sp) +/* 0153D0 700147D0 AFA2001C */ sw $v0, 0x1c($sp) +/* 0153D4 700147D4 8D6C0000 */ lw $t4, ($t3) +/* 0153D8 700147D8 358D0001 */ ori $t5, $t4, 1 +/* 0153DC 700147DC AD6D0000 */ sw $t5, ($t3) +/* 0153E0 700147E0 8FA2001C */ lw $v0, 0x1c($sp) +.L700147E4: +/* 0153E4 700147E4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0153E8 700147E8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0153EC 700147EC 03E00008 */ jr $ra +/* 0153F0 700147F0 00000000 */ nop + +glabel __osPfsGetStatus +/* 0153F4 700147F4 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0153F8 700147F8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0153FC 700147FC AFA40038 */ sw $a0, 0x38($sp) +/* 015400 70014800 AFA5003C */ sw $a1, 0x3c($sp) +/* 015404 70014804 AFA00034 */ sw $zero, 0x34($sp) +/* 015408 70014808 0C005710 */ jal __osPfsRequestData +/* 01540C 7001480C 00002025 */ move $a0, $zero +/* 015410 70014810 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 015414 70014814 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 015418 70014818 0C0057B4 */ jal __osSiRawStartDma +/* 01541C 7001481C 24040001 */ li $a0, 1 +/* 015420 70014820 AFA20034 */ sw $v0, 0x34($sp) +/* 015424 70014824 8FA40038 */ lw $a0, 0x38($sp) +/* 015428 70014828 27A50030 */ addiu $a1, $sp, 0x30 +/* 01542C 7001482C 0C003774 */ jal osRecvMesg +/* 015430 70014830 24060001 */ li $a2, 1 +/* 015434 70014834 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 015438 70014838 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 01543C 7001483C 0C0057B4 */ jal __osSiRawStartDma +/* 015440 70014840 00002025 */ move $a0, $zero +/* 015444 70014844 AFA20034 */ sw $v0, 0x34($sp) +/* 015448 70014848 8FA40038 */ lw $a0, 0x38($sp) +/* 01544C 7001484C 27A50030 */ addiu $a1, $sp, 0x30 +/* 015450 70014850 0C003774 */ jal osRecvMesg +/* 015454 70014854 24060001 */ li $a2, 1 +/* 015458 70014858 27A4002F */ addiu $a0, $sp, 0x2f +/* 01545C 7001485C 0C00574F */ jal __osPfsGetInitData +/* 015460 70014860 27A5001C */ addiu $a1, $sp, 0x1c +/* 015464 70014864 8FAE003C */ lw $t6, 0x3c($sp) +/* 015468 70014868 000E7880 */ sll $t7, $t6, 2 +/* 01546C 7001486C 03AFC021 */ addu $t8, $sp, $t7 +/* 015470 70014870 9318001E */ lbu $t8, 0x1e($t8) +/* 015474 70014874 33190001 */ andi $t9, $t8, 1 +/* 015478 70014878 13200006 */ beqz $t9, .L70014894 +/* 01547C 7001487C 00000000 */ nop +/* 015480 70014880 33080002 */ andi $t0, $t8, 2 +/* 015484 70014884 11000003 */ beqz $t0, .L70014894 +/* 015488 70014888 00000000 */ nop +/* 01548C 7001488C 10000018 */ b .L700148F0 +/* 015490 70014890 24020002 */ li $v0, 2 +.L70014894: +/* 015494 70014894 8FA9003C */ lw $t1, 0x3c($sp) +/* 015498 70014898 27AB001C */ addiu $t3, $sp, 0x1c +/* 01549C 7001489C 00095080 */ sll $t2, $t1, 2 +/* 0154A0 700148A0 014B6021 */ addu $t4, $t2, $t3 +/* 0154A4 700148A4 918D0003 */ lbu $t5, 3($t4) +/* 0154A8 700148A8 15A00005 */ bnez $t5, .L700148C0 +/* 0154AC 700148AC 00000000 */ nop +/* 0154B0 700148B0 918E0002 */ lbu $t6, 2($t4) +/* 0154B4 700148B4 31CF0001 */ andi $t7, $t6, 1 +/* 0154B8 700148B8 15E00003 */ bnez $t7, .L700148C8 +/* 0154BC 700148BC 00000000 */ nop +.L700148C0: +/* 0154C0 700148C0 1000000B */ b .L700148F0 +/* 0154C4 700148C4 24020001 */ li $v0, 1 +.L700148C8: +/* 0154C8 700148C8 8FB9003C */ lw $t9, 0x3c($sp) +/* 0154CC 700148CC 0019C080 */ sll $t8, $t9, 2 +/* 0154D0 700148D0 03B84021 */ addu $t0, $sp, $t8 +/* 0154D4 700148D4 9108001E */ lbu $t0, 0x1e($t0) +/* 0154D8 700148D8 31090004 */ andi $t1, $t0, 4 +/* 0154DC 700148DC 11200003 */ beqz $t1, .L700148EC +/* 0154E0 700148E0 00000000 */ nop +/* 0154E4 700148E4 10000002 */ b .L700148F0 +/* 0154E8 700148E8 24020004 */ li $v0, 4 +.L700148EC: +/* 0154EC 700148EC 8FA20034 */ lw $v0, 0x34($sp) +.L700148F0: +/* 0154F0 700148F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0154F4 700148F4 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0154F8 700148F8 03E00008 */ jr $ra +/* 0154FC 700148FC 00000000 */ nop diff --git a/src/libultra/pfsisplug.s b/src/libultra/pfsisplug.s new file mode 100644 index 0000000..3d7822a --- /dev/null +++ b/src/libultra/pfsisplug.s @@ -0,0 +1,273 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osPfsIsPlug +/* 0166A0 70015AA0 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0166A4 70015AA4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0166A8 70015AA8 240E0003 */ li $t6, 3 +/* 0166AC 70015AAC AFA40040 */ sw $a0, 0x40($sp) +/* 0166B0 70015AB0 AFA50044 */ sw $a1, 0x44($sp) +/* 0166B4 70015AB4 AFA0003C */ sw $zero, 0x3c($sp) +/* 0166B8 70015AB8 A3A0001F */ sb $zero, 0x1f($sp) +/* 0166BC 70015ABC 0C005798 */ jal __osSiGetAccess +/* 0166C0 70015AC0 AFAE0018 */ sw $t6, 0x18($sp) +.L70015AC4: +/* 0166C4 70015AC4 0C005710 */ jal __osPfsRequestData +/* 0166C8 70015AC8 00002025 */ move $a0, $zero +/* 0166CC 70015ACC 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 0166D0 70015AD0 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 0166D4 70015AD4 0C0057B4 */ jal __osSiRawStartDma +/* 0166D8 70015AD8 24040001 */ li $a0, 1 +/* 0166DC 70015ADC AFA2003C */ sw $v0, 0x3c($sp) +/* 0166E0 70015AE0 8FA40040 */ lw $a0, 0x40($sp) +/* 0166E4 70015AE4 27A50038 */ addiu $a1, $sp, 0x38 +/* 0166E8 70015AE8 0C003774 */ jal osRecvMesg +/* 0166EC 70015AEC 24060001 */ li $a2, 1 +/* 0166F0 70015AF0 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 0166F4 70015AF4 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 0166F8 70015AF8 0C0057B4 */ jal __osSiRawStartDma +/* 0166FC 70015AFC 00002025 */ move $a0, $zero +/* 016700 70015B00 AFA2003C */ sw $v0, 0x3c($sp) +/* 016704 70015B04 8FA40040 */ lw $a0, 0x40($sp) +/* 016708 70015B08 27A50038 */ addiu $a1, $sp, 0x38 +/* 01670C 70015B0C 0C003774 */ jal osRecvMesg +/* 016710 70015B10 24060001 */ li $a2, 1 +/* 016714 70015B14 27A40037 */ addiu $a0, $sp, 0x37 +/* 016718 70015B18 0C00574F */ jal __osPfsGetInitData +/* 01671C 70015B1C 27A50024 */ addiu $a1, $sp, 0x24 +/* 016720 70015B20 3C0F8006 */ lui $t7, %hi(__osMaxControllers) +/* 016724 70015B24 91EF7CE1 */ lbu $t7, %lo(__osMaxControllers)($t7) +/* 016728 70015B28 AFA00020 */ sw $zero, 0x20($sp) +/* 01672C 70015B2C 19E00014 */ blez $t7, .L70015B80 +/* 016730 70015B30 00000000 */ nop +.L70015B34: +/* 016734 70015B34 8FB80020 */ lw $t8, 0x20($sp) +/* 016738 70015B38 0018C880 */ sll $t9, $t8, 2 +/* 01673C 70015B3C 03B94021 */ addu $t0, $sp, $t9 +/* 016740 70015B40 91080026 */ lbu $t0, 0x26($t0) +/* 016744 70015B44 31090004 */ andi $t1, $t0, 4 +/* 016748 70015B48 15200005 */ bnez $t1, .L70015B60 +/* 01674C 70015B4C 00000000 */ nop +/* 016750 70015B50 8FAA0018 */ lw $t2, 0x18($sp) +/* 016754 70015B54 254BFFFF */ addiu $t3, $t2, -1 +/* 016758 70015B58 10000009 */ b .L70015B80 +/* 01675C 70015B5C AFAB0018 */ sw $t3, 0x18($sp) +.L70015B60: +/* 016760 70015B60 8FAC0020 */ lw $t4, 0x20($sp) +/* 016764 70015B64 3C0E8006 */ lui $t6, %hi(__osMaxControllers) +/* 016768 70015B68 91CE7CE1 */ lbu $t6, %lo(__osMaxControllers)($t6) +/* 01676C 70015B6C 258D0001 */ addiu $t5, $t4, 1 +/* 016770 70015B70 AFAD0020 */ sw $t5, 0x20($sp) +/* 016774 70015B74 01AE082A */ slt $at, $t5, $t6 +/* 016778 70015B78 1420FFEE */ bnez $at, .L70015B34 +/* 01677C 70015B7C 00000000 */ nop +.L70015B80: +/* 016780 70015B80 3C0F8006 */ lui $t7, %hi(__osMaxControllers) +/* 016784 70015B84 91EF7CE1 */ lbu $t7, %lo(__osMaxControllers)($t7) +/* 016788 70015B88 8FB80020 */ lw $t8, 0x20($sp) +/* 01678C 70015B8C 15F80002 */ bne $t7, $t8, .L70015B98 +/* 016790 70015B90 00000000 */ nop +/* 016794 70015B94 AFA00018 */ sw $zero, 0x18($sp) +.L70015B98: +/* 016798 70015B98 8FB90018 */ lw $t9, 0x18($sp) +/* 01679C 70015B9C 1F20FFC9 */ bgtz $t9, .L70015AC4 +/* 0167A0 70015BA0 00000000 */ nop +/* 0167A4 70015BA4 3C088006 */ lui $t0, %hi(__osMaxControllers) +/* 0167A8 70015BA8 91087CE1 */ lbu $t0, %lo(__osMaxControllers)($t0) +/* 0167AC 70015BAC AFA00020 */ sw $zero, 0x20($sp) +/* 0167B0 70015BB0 19000019 */ blez $t0, .L70015C18 +/* 0167B4 70015BB4 00000000 */ nop +.L70015BB8: +/* 0167B8 70015BB8 8FA90020 */ lw $t1, 0x20($sp) +/* 0167BC 70015BBC 27AB0024 */ addiu $t3, $sp, 0x24 +/* 0167C0 70015BC0 00095080 */ sll $t2, $t1, 2 +/* 0167C4 70015BC4 014B6021 */ addu $t4, $t2, $t3 +/* 0167C8 70015BC8 918D0003 */ lbu $t5, 3($t4) +/* 0167CC 70015BCC 15A0000A */ bnez $t5, .L70015BF8 +/* 0167D0 70015BD0 00000000 */ nop +/* 0167D4 70015BD4 918E0002 */ lbu $t6, 2($t4) +/* 0167D8 70015BD8 31CF0001 */ andi $t7, $t6, 1 +/* 0167DC 70015BDC 11E00006 */ beqz $t7, .L70015BF8 +/* 0167E0 70015BE0 00000000 */ nop +/* 0167E4 70015BE4 93B8001F */ lbu $t8, 0x1f($sp) +/* 0167E8 70015BE8 24190001 */ li $t9, 1 +/* 0167EC 70015BEC 01394004 */ sllv $t0, $t9, $t1 +/* 0167F0 70015BF0 03085025 */ or $t2, $t8, $t0 +/* 0167F4 70015BF4 A3AA001F */ sb $t2, 0x1f($sp) +.L70015BF8: +/* 0167F8 70015BF8 8FAB0020 */ lw $t3, 0x20($sp) +/* 0167FC 70015BFC 3C0C8006 */ lui $t4, %hi(__osMaxControllers) +/* 016800 70015C00 918C7CE1 */ lbu $t4, %lo(__osMaxControllers)($t4) +/* 016804 70015C04 256D0001 */ addiu $t5, $t3, 1 +/* 016808 70015C08 AFAD0020 */ sw $t5, 0x20($sp) +/* 01680C 70015C0C 01AC082A */ slt $at, $t5, $t4 +/* 016810 70015C10 1420FFE9 */ bnez $at, .L70015BB8 +/* 016814 70015C14 00000000 */ nop +.L70015C18: +/* 016818 70015C18 0C0057A9 */ jal __osSiRelAccess +/* 01681C 70015C1C 00000000 */ nop +/* 016820 70015C20 93AE001F */ lbu $t6, 0x1f($sp) +/* 016824 70015C24 8FAF0044 */ lw $t7, 0x44($sp) +/* 016828 70015C28 A1EE0000 */ sb $t6, ($t7) +/* 01682C 70015C2C 8FBF0014 */ lw $ra, 0x14($sp) +/* 016830 70015C30 8FA2003C */ lw $v0, 0x3c($sp) +/* 016834 70015C34 27BD0040 */ addiu $sp, $sp, 0x40 +/* 016838 70015C38 03E00008 */ jr $ra +/* 01683C 70015C3C 00000000 */ nop + +glabel __osPfsRequestData +/* 016840 70015C40 27BDFFF0 */ addiu $sp, $sp, -0x10 +/* 016844 70015C44 308400FF */ andi $a0, $a0, 0xff +/* 016848 70015C48 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 01684C 70015C4C A0247CE0 */ sb $a0, %lo(__osContLastCmd)($at) +/* 016850 70015C50 AFA00000 */ sw $zero, ($sp) +.L70015C54: +/* 016854 70015C54 8FAE0000 */ lw $t6, ($sp) +/* 016858 70015C58 8FB80000 */ lw $t8, ($sp) +/* 01685C 70015C5C 3C018006 */ lui $at, %hi(__osPfsPifRam) +/* 016860 70015C60 000E7880 */ sll $t7, $t6, 2 +/* 016864 70015C64 002F0821 */ addu $at, $at, $t7 +/* 016868 70015C68 AC207D70 */ sw $zero, %lo(__osPfsPifRam)($at) +/* 01686C 70015C6C 27190001 */ addiu $t9, $t8, 1 +/* 016870 70015C70 2B210010 */ slti $at, $t9, 0x10 +/* 016874 70015C74 1420FFF7 */ bnez $at, .L70015C54 +/* 016878 70015C78 AFB90000 */ sw $t9, ($sp) +/* 01687C 70015C7C 3C198006 */ lui $t9, %hi(__osMaxControllers) +/* 016880 70015C80 93397CE1 */ lbu $t9, %lo(__osMaxControllers)($t9) +/* 016884 70015C84 3C098006 */ lui $t1, %hi(__osPfsPifRam) +/* 016888 70015C88 24080001 */ li $t0, 1 +/* 01688C 70015C8C 3C018006 */ lui $at, %hi(__osPfsPifRam+0x3c) +/* 016890 70015C90 25297D70 */ addiu $t1, %lo(__osPfsPifRam) # addiu $t1, $t1, 0x7d70 +/* 016894 70015C94 240A00FF */ li $t2, 255 +/* 016898 70015C98 240B0001 */ li $t3, 1 +/* 01689C 70015C9C 240C0003 */ li $t4, 3 +/* 0168A0 70015CA0 240D00FF */ li $t5, 255 +/* 0168A4 70015CA4 240E00FF */ li $t6, 255 +/* 0168A8 70015CA8 240F00FF */ li $t7, 255 +/* 0168AC 70015CAC 241800FF */ li $t8, 255 +/* 0168B0 70015CB0 AC287DAC */ sw $t0, %lo(__osPfsPifRam+0x3c)($at) +/* 0168B4 70015CB4 AFA9000C */ sw $t1, 0xc($sp) +/* 0168B8 70015CB8 A3AA0004 */ sb $t2, 4($sp) +/* 0168BC 70015CBC A3AB0005 */ sb $t3, 5($sp) +/* 0168C0 70015CC0 A3AC0006 */ sb $t4, 6($sp) +/* 0168C4 70015CC4 A3A40007 */ sb $a0, 7($sp) +/* 0168C8 70015CC8 A3AD0008 */ sb $t5, 8($sp) +/* 0168CC 70015CCC A3AE0009 */ sb $t6, 9($sp) +/* 0168D0 70015CD0 A3AF000A */ sb $t7, 0xa($sp) +/* 0168D4 70015CD4 A3B8000B */ sb $t8, 0xb($sp) +/* 0168D8 70015CD8 1B200013 */ blez $t9, .L70015D28 +/* 0168DC 70015CDC AFA00000 */ sw $zero, ($sp) +.L70015CE0: +/* 0168E0 70015CE0 27A90004 */ addiu $t1, $sp, 4 +/* 0168E4 70015CE4 8D210000 */ lw $at, ($t1) +/* 0168E8 70015CE8 8FA8000C */ lw $t0, 0xc($sp) +/* 0168EC 70015CEC 3C188006 */ lui $t8, %hi(__osMaxControllers) +/* 0168F0 70015CF0 A9010000 */ swl $at, ($t0) +/* 0168F4 70015CF4 B9010003 */ swr $at, 3($t0) +/* 0168F8 70015CF8 8D2B0004 */ lw $t3, 4($t1) +/* 0168FC 70015CFC A90B0004 */ swl $t3, 4($t0) +/* 016900 70015D00 B90B0007 */ swr $t3, 7($t0) +/* 016904 70015D04 8FAE0000 */ lw $t6, ($sp) +/* 016908 70015D08 93187CE1 */ lbu $t8, %lo(__osMaxControllers)($t8) +/* 01690C 70015D0C 8FAC000C */ lw $t4, 0xc($sp) +/* 016910 70015D10 25CF0001 */ addiu $t7, $t6, 1 +/* 016914 70015D14 01F8082A */ slt $at, $t7, $t8 +/* 016918 70015D18 258D0008 */ addiu $t5, $t4, 8 +/* 01691C 70015D1C AFAF0000 */ sw $t7, ($sp) +/* 016920 70015D20 1420FFEF */ bnez $at, .L70015CE0 +/* 016924 70015D24 AFAD000C */ sw $t5, 0xc($sp) +.L70015D28: +/* 016928 70015D28 8FAA000C */ lw $t2, 0xc($sp) +/* 01692C 70015D2C 241900FE */ li $t9, 254 +/* 016930 70015D30 27BD0010 */ addiu $sp, $sp, 0x10 +/* 016934 70015D34 03E00008 */ jr $ra +/* 016938 70015D38 A1590000 */ sb $t9, ($t2) + +glabel __osPfsGetInitData +/* 01693C 70015D3C 3C0F8006 */ lui $t7, %hi(__osMaxControllers) +/* 016940 70015D40 91EF7CE1 */ lbu $t7, %lo(__osMaxControllers)($t7) +/* 016944 70015D44 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 016948 70015D48 3C0E8006 */ lui $t6, %hi(__osPfsPifRam) +/* 01694C 70015D4C 25CE7D70 */ addiu $t6, %lo(__osPfsPifRam) # addiu $t6, $t6, 0x7d70 +/* 016950 70015D50 A3A00007 */ sb $zero, 7($sp) +/* 016954 70015D54 AFAE0014 */ sw $t6, 0x14($sp) +/* 016958 70015D58 19E00028 */ blez $t7, .L70015DFC +/* 01695C 70015D5C AFA00008 */ sw $zero, 8($sp) +.L70015D60: +/* 016960 70015D60 8FB90014 */ lw $t9, 0x14($sp) +/* 016964 70015D64 27B8000C */ addiu $t8, $sp, 0xc +/* 016968 70015D68 8B210000 */ lwl $at, ($t9) +/* 01696C 70015D6C 9B210003 */ lwr $at, 3($t9) +/* 016970 70015D70 AF010000 */ sw $at, ($t8) +/* 016974 70015D74 8B290004 */ lwl $t1, 4($t9) +/* 016978 70015D78 9B290007 */ lwr $t1, 7($t9) +/* 01697C 70015D7C AF090004 */ sw $t1, 4($t8) +/* 016980 70015D80 93AA000E */ lbu $t2, 0xe($sp) +/* 016984 70015D84 314B00C0 */ andi $t3, $t2, 0xc0 +/* 016988 70015D88 000B6103 */ sra $t4, $t3, 4 +/* 01698C 70015D8C A0AC0003 */ sb $t4, 3($a1) +/* 016990 70015D90 90AD0003 */ lbu $t5, 3($a1) +/* 016994 70015D94 15A0000E */ bnez $t5, .L70015DD0 +/* 016998 70015D98 00000000 */ nop +/* 01699C 70015D9C 93AE0011 */ lbu $t6, 0x11($sp) +/* 0169A0 70015DA0 93A80010 */ lbu $t0, 0x10($sp) +/* 0169A4 70015DA4 240B0001 */ li $t3, 1 +/* 0169A8 70015DA8 000E7A00 */ sll $t7, $t6, 8 +/* 0169AC 70015DAC 01E8C025 */ or $t8, $t7, $t0 +/* 0169B0 70015DB0 A4B80000 */ sh $t8, ($a1) +/* 0169B4 70015DB4 93B90012 */ lbu $t9, 0x12($sp) +/* 0169B8 70015DB8 A0B90002 */ sb $t9, 2($a1) +/* 0169BC 70015DBC 8FAA0008 */ lw $t2, 8($sp) +/* 0169C0 70015DC0 93A90007 */ lbu $t1, 7($sp) +/* 0169C4 70015DC4 014B6004 */ sllv $t4, $t3, $t2 +/* 0169C8 70015DC8 012C6825 */ or $t5, $t1, $t4 +/* 0169CC 70015DCC A3AD0007 */ sb $t5, 7($sp) +.L70015DD0: +/* 0169D0 70015DD0 8FAE0008 */ lw $t6, 8($sp) +/* 0169D4 70015DD4 3C198006 */ lui $t9, %hi(__osMaxControllers) +/* 0169D8 70015DD8 93397CE1 */ lbu $t9, %lo(__osMaxControllers)($t9) +/* 0169DC 70015DDC 8FA80014 */ lw $t0, 0x14($sp) +/* 0169E0 70015DE0 25CF0001 */ addiu $t7, $t6, 1 +/* 0169E4 70015DE4 01F9082A */ slt $at, $t7, $t9 +/* 0169E8 70015DE8 25180008 */ addiu $t8, $t0, 8 +/* 0169EC 70015DEC AFB80014 */ sw $t8, 0x14($sp) +/* 0169F0 70015DF0 AFAF0008 */ sw $t7, 8($sp) +/* 0169F4 70015DF4 1420FFDA */ bnez $at, .L70015D60 +/* 0169F8 70015DF8 24A50004 */ addiu $a1, $a1, 4 +.L70015DFC: +/* 0169FC 70015DFC 93AB0007 */ lbu $t3, 7($sp) +/* 016A00 70015E00 27BD0018 */ addiu $sp, $sp, 0x18 +/* 016A04 70015E04 03E00008 */ jr $ra +/* 016A08 70015E08 A08B0000 */ sb $t3, ($a0) + +/* 016A0C 70015E0C 00000000 */ nop +.section .bss +glabel __osPfsPifRam +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 + + diff --git a/src/libultra/piacs.s b/src/libultra/piacs.s new file mode 100644 index 0000000..b19efd8 --- /dev/null +++ b/src/libultra/piacs.s @@ -0,0 +1,84 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osPiCreateAccessQueue +/* 01E310 7001D710 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 01E314 7001D714 AFBF0014 */ sw $ra, 0x14($sp) +/* 01E318 7001D718 240E0001 */ li $t6, 1 +/* 01E31C 7001D71C 3C018003 */ lui $at, %hi(__osPiAccessQueueEnabled) +/* 01E320 7001D720 3C048007 */ lui $a0, %hi(__osPiAccessQueue) +/* 01E324 7001D724 3C058007 */ lui $a1, %hi(piAccessBuf) +/* 01E328 7001D728 AC2E82E0 */ sw $t6, %lo(__osPiAccessQueueEnabled)($at) +/* 01E32C 7001D72C 24A58FE0 */ addiu $a1, %lo(piAccessBuf) # addiu $a1, $a1, -0x7020 +/* 01E330 7001D730 24848FE8 */ addiu $a0, %lo(__osPiAccessQueue) # addiu $a0, $a0, -0x7018 +/* 01E334 7001D734 0C0035B4 */ jal osCreateMesgQueue +/* 01E338 7001D738 24060001 */ li $a2, 1 +/* 01E33C 7001D73C 3C048007 */ lui $a0, %hi(__osPiAccessQueue) +/* 01E340 7001D740 24848FE8 */ addiu $a0, %lo(__osPiAccessQueue) # addiu $a0, $a0, -0x7018 +/* 01E344 7001D744 00002825 */ move $a1, $zero +/* 01E348 7001D748 0C0037C4 */ jal osSendMesg +/* 01E34C 7001D74C 00003025 */ move $a2, $zero +/* 01E350 7001D750 8FBF0014 */ lw $ra, 0x14($sp) +/* 01E354 7001D754 27BD0018 */ addiu $sp, $sp, 0x18 +/* 01E358 7001D758 03E00008 */ jr $ra +/* 01E35C 7001D75C 00000000 */ nop + +glabel __osPiGetAccess +/* 01E360 7001D760 3C0E8003 */ lui $t6, %hi(__osPiAccessQueueEnabled) +/* 01E364 7001D764 8DCE82E0 */ lw $t6, %lo(__osPiAccessQueueEnabled)($t6) +/* 01E368 7001D768 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 01E36C 7001D76C AFBF0014 */ sw $ra, 0x14($sp) +/* 01E370 7001D770 15C00003 */ bnez $t6, .L7001D780 +/* 01E374 7001D774 00000000 */ nop +/* 01E378 7001D778 0C0075C4 */ jal __osPiCreateAccessQueue +/* 01E37C 7001D77C 00000000 */ nop +.L7001D780: +/* 01E380 7001D780 3C048007 */ lui $a0, %hi(__osPiAccessQueue) +/* 01E384 7001D784 24848FE8 */ addiu $a0, %lo(__osPiAccessQueue) # addiu $a0, $a0, -0x7018 +/* 01E388 7001D788 27A5001C */ addiu $a1, $sp, 0x1c +/* 01E38C 7001D78C 0C003774 */ jal osRecvMesg +/* 01E390 7001D790 24060001 */ li $a2, 1 +/* 01E394 7001D794 8FBF0014 */ lw $ra, 0x14($sp) +/* 01E398 7001D798 27BD0020 */ addiu $sp, $sp, 0x20 +/* 01E39C 7001D79C 03E00008 */ jr $ra +/* 01E3A0 7001D7A0 00000000 */ nop + +glabel __osPiRelAccess +/* 01E3A4 7001D7A4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 01E3A8 7001D7A8 AFBF0014 */ sw $ra, 0x14($sp) +/* 01E3AC 7001D7AC 3C048007 */ lui $a0, %hi(__osPiAccessQueue) +/* 01E3B0 7001D7B0 24848FE8 */ addiu $a0, %lo(__osPiAccessQueue) # addiu $a0, $a0, -0x7018 +/* 01E3B4 7001D7B4 00002825 */ move $a1, $zero +/* 01E3B8 7001D7B8 0C0037C4 */ jal osSendMesg +/* 01E3BC 7001D7BC 00003025 */ move $a2, $zero +/* 01E3C0 7001D7C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 01E3C4 7001D7C4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 01E3C8 7001D7C8 03E00008 */ jr $ra +/* 01E3CC 7001D7CC 00000000 */ nop + +.section .data +glabel __osPiAccessQueueEnabled +.word 0 +.align 4 + +.section .bss +glabel piAccessBuf +.word 0 +.word 0 +glabel __osPiAccessQueue +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 diff --git a/src/libultra/pidma.s b/src/libultra/pidma.s new file mode 100644 index 0000000..f0a0a54 --- /dev/null +++ b/src/libultra/pidma.s @@ -0,0 +1,83 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osPiStartDma +/* 0102A0 7000F6A0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0102A4 7000F6A4 3C0E8002 */ lui $t6, %hi(__osPiDevMgr) +/* 0102A8 7000F6A8 8DCE7790 */ lw $t6, %lo(__osPiDevMgr)($t6) +/* 0102AC 7000F6AC AFBF001C */ sw $ra, 0x1c($sp) +/* 0102B0 7000F6B0 AFA40028 */ sw $a0, 0x28($sp) +/* 0102B4 7000F6B4 AFA5002C */ sw $a1, 0x2c($sp) +/* 0102B8 7000F6B8 AFA60030 */ sw $a2, 0x30($sp) +/* 0102BC 7000F6BC AFA70034 */ sw $a3, 0x34($sp) +/* 0102C0 7000F6C0 AFB10018 */ sw $s1, 0x18($sp) +/* 0102C4 7000F6C4 15C00003 */ bnez $t6, .L7000F6D4 +/* 0102C8 7000F6C8 AFB00014 */ sw $s0, 0x14($sp) +/* 0102CC 7000F6CC 10000032 */ b .L7000F798 +/* 0102D0 7000F6D0 2402FFFF */ li $v0, -1 +.L7000F6D4: +/* 0102D4 7000F6D4 8FAF0030 */ lw $t7, 0x30($sp) +/* 0102D8 7000F6D8 15E00005 */ bnez $t7, .L7000F6F0 +/* 0102DC 7000F6DC 00000000 */ nop +/* 0102E0 7000F6E0 8FB90028 */ lw $t9, 0x28($sp) +/* 0102E4 7000F6E4 2418000B */ li $t8, 11 +/* 0102E8 7000F6E8 10000004 */ b .L7000F6FC +/* 0102EC 7000F6EC A7380000 */ sh $t8, ($t9) +.L7000F6F0: +/* 0102F0 7000F6F0 8FA90028 */ lw $t1, 0x28($sp) +/* 0102F4 7000F6F4 2408000C */ li $t0, 12 +/* 0102F8 7000F6F8 A5280000 */ sh $t0, ($t1) +.L7000F6FC: +/* 0102FC 7000F6FC 8FAA002C */ lw $t2, 0x2c($sp) +/* 010300 7000F700 8FAB0028 */ lw $t3, 0x28($sp) +/* 010304 7000F704 24010001 */ li $at, 1 +/* 010308 7000F708 A16A0002 */ sb $t2, 2($t3) +/* 01030C 7000F70C 8FAD0028 */ lw $t5, 0x28($sp) +/* 010310 7000F710 8FAC0040 */ lw $t4, 0x40($sp) +/* 010314 7000F714 ADAC0004 */ sw $t4, 4($t5) +/* 010318 7000F718 8FAF0028 */ lw $t7, 0x28($sp) +/* 01031C 7000F71C 8FAE0038 */ lw $t6, 0x38($sp) +/* 010320 7000F720 ADEE0008 */ sw $t6, 8($t7) +/* 010324 7000F724 8FB90028 */ lw $t9, 0x28($sp) +/* 010328 7000F728 8FB80034 */ lw $t8, 0x34($sp) +/* 01032C 7000F72C AF38000C */ sw $t8, 0xc($t9) +/* 010330 7000F730 8FA90028 */ lw $t1, 0x28($sp) +/* 010334 7000F734 8FA8003C */ lw $t0, 0x3c($sp) +/* 010338 7000F738 AD280010 */ sw $t0, 0x10($t1) +/* 01033C 7000F73C 8FAA0028 */ lw $t2, 0x28($sp) +/* 010340 7000F740 AD400014 */ sw $zero, 0x14($t2) +/* 010344 7000F744 8FAB002C */ lw $t3, 0x2c($sp) +/* 010348 7000F748 1561000A */ bne $t3, $at, .L7000F774 +/* 01034C 7000F74C 00000000 */ nop +/* 010350 7000F750 0C006E00 */ jal osPiGetCmdQueue +/* 010354 7000F754 00000000 */ nop +/* 010358 7000F758 00408825 */ move $s1, $v0 +/* 01035C 7000F75C 02202025 */ move $a0, $s1 +/* 010360 7000F760 8FA50028 */ lw $a1, 0x28($sp) +/* 010364 7000F764 0C006DAC */ jal osJamMesg +/* 010368 7000F768 00003025 */ move $a2, $zero +/* 01036C 7000F76C 10000009 */ b .L7000F794 +/* 010370 7000F770 00408025 */ move $s0, $v0 +.L7000F774: +/* 010374 7000F774 0C006E00 */ jal osPiGetCmdQueue +/* 010378 7000F778 00000000 */ nop +/* 01037C 7000F77C 00408825 */ move $s1, $v0 +/* 010380 7000F780 02202025 */ move $a0, $s1 +/* 010384 7000F784 8FA50028 */ lw $a1, 0x28($sp) +/* 010388 7000F788 0C0037C4 */ jal osSendMesg +/* 01038C 7000F78C 00003025 */ move $a2, $zero +/* 010390 7000F790 00408025 */ move $s0, $v0 +.L7000F794: +/* 010394 7000F794 02001025 */ move $v0, $s0 +.L7000F798: +/* 010398 7000F798 8FBF001C */ lw $ra, 0x1c($sp) +/* 01039C 7000F79C 8FB00014 */ lw $s0, 0x14($sp) +/* 0103A0 7000F7A0 8FB10018 */ lw $s1, 0x18($sp) +/* 0103A4 7000F7A4 03E00008 */ jr $ra +/* 0103A8 7000F7A8 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/pigetcmdq.s b/src/libultra/pigetcmdq.s new file mode 100644 index 0000000..d710670 --- /dev/null +++ b/src/libultra/pigetcmdq.s @@ -0,0 +1,27 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osPiGetCmdQueue +/* 01C400 7001B800 3C0E8002 */ lui $t6, %hi(__osPiDevMgr) +/* 01C404 7001B804 8DCE7790 */ lw $t6, %lo(__osPiDevMgr)($t6) +/* 01C408 7001B808 15C00003 */ bnez $t6, .L7001B818 +/* 01C40C 7001B80C 00000000 */ nop +/* 01C410 7001B810 03E00008 */ jr $ra +/* 01C414 7001B814 00001025 */ move $v0, $zero + +.L7001B818: +/* 01C418 7001B818 3C028002 */ lui $v0, %hi(__osPiDevMgr+0x8) +/* 01C41C 7001B81C 8C427798 */ lw $v0, %lo(__osPiDevMgr+0x8)($v0) +/* 01C420 7001B820 03E00008 */ jr $ra +/* 01C424 7001B824 00000000 */ nop + diff --git a/src/libultra/pigetstat.s b/src/libultra/pigetstat.s new file mode 100644 index 0000000..d39850f --- /dev/null +++ b/src/libultra/pigetstat.s @@ -0,0 +1,14 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osPiGetStatus +/* 00DC70 7000D070 3C0EA460 */ lui $t6, 0xa460 +/* 00DC74 7000D074 03E00008 */ jr $ra +/* 00DC78 7000D078 8DC20010 */ lw $v0, 0x10($t6) diff --git a/src/libultra/pimgr.s b/src/libultra/pimgr.s new file mode 100644 index 0000000..6e3d608 --- /dev/null +++ b/src/libultra/pimgr.s @@ -0,0 +1,528 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.ifndef VERSION_EU +glabel osCreatePiManager +/* 0151B0 700145B0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0151B4 700145B4 3C0E8002 */ lui $t6, %hi(__osPiDevMgr) +/* 0151B8 700145B8 8DCE7790 */ lw $t6, %lo(__osPiDevMgr)($t6) +/* 0151BC 700145BC AFBF001C */ sw $ra, 0x1c($sp) +/* 0151C0 700145C0 AFA40030 */ sw $a0, 0x30($sp) +/* 0151C4 700145C4 AFA50034 */ sw $a1, 0x34($sp) +/* 0151C8 700145C8 AFA60038 */ sw $a2, 0x38($sp) +/* 0151CC 700145CC 15C00056 */ bnez $t6, .L70014728 +/* 0151D0 700145D0 AFA7003C */ sw $a3, 0x3c($sp) +/* 0151D4 700145D4 8FA40034 */ lw $a0, 0x34($sp) +/* 0151D8 700145D8 8FA50038 */ lw $a1, 0x38($sp) +/* 0151DC 700145DC 0C0035B4 */ jal osCreateMesgQueue +/* 0151E0 700145E0 8FA6003C */ lw $a2, 0x3c($sp) +/* 0151E4 700145E4 3C048006 */ lui $a0, %hi(pieventQueue) +/* 0151E8 700145E8 3C058006 */ lui $a1, %hi(piEventBuf) +/* 0151EC 700145EC 24A57C98 */ addiu $a1, %lo(piEventBuf) # addiu $a1, $a1, 0x7c98 +/* 0151F0 700145F0 24847C80 */ addiu $a0, %lo(pieventQueue) # addiu $a0, $a0, 0x7c80 +/* 0151F4 700145F4 0C0035B4 */ jal osCreateMesgQueue +/* 0151F8 700145F8 24060001 */ li $a2, 1 +/* 0151FC 700145FC 3C0F8003 */ lui $t7, %hi(__osPiAccessQueueEnabled) +/* 015200 70014600 8DEF82E0 */ lw $t7, %lo(__osPiAccessQueueEnabled)($t7) +/* 015204 70014604 15E00003 */ bnez $t7, .L70014614 +/* 015208 70014608 00000000 */ nop +/* 01520C 7001460C 0C0075C4 */ jal __osPiCreateAccessQueue +/* 015210 70014610 00000000 */ nop +.L70014614: +/* 015214 70014614 3C058006 */ lui $a1, %hi(pieventQueue) +/* 015218 70014618 3C062222 */ lui $a2, (0x22222222 >> 16) # lui $a2, 0x2222 +/* 01521C 7001461C 34C62222 */ ori $a2, (0x22222222 & 0xFFFF) # ori $a2, $a2, 0x2222 +/* 015220 70014620 24A57C80 */ addiu $a1, %lo(pieventQueue) # addiu $a1, $a1, 0x7c80 +/* 015224 70014624 0C003714 */ jal osSetEventMesg +/* 015228 70014628 24040008 */ li $a0, 8 +/* 01522C 7001462C 2418FFFF */ li $t8, -1 +/* 015230 70014630 AFB80028 */ sw $t8, 0x28($sp) +/* 015234 70014634 0C00628C */ jal osGetThreadPri +/* 015238 70014638 00002025 */ move $a0, $zero +/* 01523C 7001463C AFA20024 */ sw $v0, 0x24($sp) +/* 015240 70014640 8FB90024 */ lw $t9, 0x24($sp) +/* 015244 70014644 8FA80030 */ lw $t0, 0x30($sp) +/* 015248 70014648 0328082A */ slt $at, $t9, $t0 +/* 01524C 7001464C 10200005 */ beqz $at, .L70014664 +/* 015250 70014650 00000000 */ nop +/* 015254 70014654 AFB90028 */ sw $t9, 0x28($sp) +/* 015258 70014658 00002025 */ move $a0, $zero +/* 01525C 7001465C 0C003600 */ jal osSetThreadPri +/* 015260 70014660 01002825 */ move $a1, $t0 +.L70014664: +/* 015264 70014664 0C00617C */ jal __osDisableInt +/* 015268 70014668 00000000 */ nop +/* 01526C 7001466C 3C018002 */ lui $at, %hi(__osPiDevMgr.cmdQueue) +/* 015270 70014670 8FAB0034 */ lw $t3, 0x34($sp) +/* 015274 70014674 3C0A8006 */ lui $t2, %hi(piThread) +/* 015278 70014678 3C0C8006 */ lui $t4, %hi(pieventQueue) +/* 01527C 7001467C 24090001 */ li $t1, 1 +/* 015280 70014680 254A6AD0 */ addiu $t2, %lo(piThread) # addiu $t2, $t2, 0x6ad0 +/* 015284 70014684 258C7C80 */ addiu $t4, %lo(pieventQueue) # addiu $t4, $t4, 0x7c80 +/* 015288 70014688 AC297790 */ sw $t1, %lo(__osPiDevMgr)($at) +/* 01528C 7001468C AC2A7794 */ sw $t2, %lo(__osPiDevMgr.thread)($at) +/* 015290 70014690 AC2C779C */ sw $t4, %lo(__osPiDevMgr.evtQueue)($at) +/* 015294 70014694 3C188006 */ lui $t8, %hi(piThreadStack) +/* 015298 70014698 AC2B7798 */ sw $t3, %lo(__osPiDevMgr.cmdQueue)($at) +/* 01529C 7001469C 8FA80030 */ lw $t0, 0x30($sp) +/* 0152A0 700146A0 3C018002 */ lui $at, %hi(__osPiDevMgr.edma) +/* 0152A4 700146A4 3C0D8007 */ lui $t5, %hi(__osPiAccessQueue) +/* 0152A8 700146A8 3C0E7001 */ lui $t6, %hi(osPiRawStartDma) # $t6, 0x7001 +/* 0152AC 700146AC 3C0F7002 */ lui $t7, %hi(osEPiRawStartDma) # $t7, 0x7002 +/* 0152B0 700146B0 27186C80 */ addiu $t8, $t8, %lo(piThreadStack) +/* 0152B4 700146B4 25AD8FE8 */ addiu $t5, %lo(__osPiAccessQueue) # addiu $t5, $t5, -0x7018 +/* 0152B8 700146B8 25CECF90 */ addiu $t6, %lo(osPiRawStartDma) # addiu $t6, $t6, -0x3070 +/* 0152BC 700146BC 25EFE530 */ addiu $t7, %lo(osEPiRawStartDma) # addiu $t7, $t7, -0x1ad0 +/* 0152C0 700146C0 27191000 */ addiu $t9, $t8, 0x1000 +/* 0152C4 700146C4 3C067002 */ lui $a2, %hi(__osDevMgrMain) # $a2, 0x7002 +/* 0152C8 700146C8 3C078002 */ lui $a3, %hi(__osPiDevMgr) +/* 0152CC 700146CC AFA2002C */ sw $v0, 0x2c($sp) +/* 0152D0 700146D0 AC2D77A0 */ sw $t5, %lo(__osPiDevMgr.acsQueue)($at) +/* 0152D4 700146D4 AC2E77A4 */ sw $t6, %lo(__osPiDevMgr.dma)($at) +/* 0152D8 700146D8 AC2F77A8 */ sw $t7, %lo(__osPiDevMgr.edma)($at) +/* 0152DC 700146DC 24E77790 */ addiu $a3, %lo(__osPiDevMgr) # addiu $a3, $a3, 0x7790 +/* 0152E0 700146E0 24C6E610 */ addiu $a2, %lo(__osDevMgrMain) # addiu $a2, $a2, -0x19f0 +/* 0152E4 700146E4 AFB90010 */ sw $t9, 0x10($sp) +/* 0152E8 700146E8 01402025 */ move $a0, $t2 +/* 0152EC 700146EC 00002825 */ move $a1, $zero +/* 0152F0 700146F0 0C00350C */ jal osCreateThread +/* 0152F4 700146F4 AFA80014 */ sw $t0, 0x14($sp) +/* 0152F8 700146F8 3C048006 */ lui $a0, %hi(piThread) +/* 0152FC 700146FC 0C003560 */ jal osStartThread +/* 015300 70014700 24846AD0 */ addiu $a0, %lo(piThread) # addiu $a0, $a0, 0x6ad0 +/* 015304 70014704 0C006184 */ jal __osRestoreInt +/* 015308 70014708 8FA4002C */ lw $a0, 0x2c($sp) +/* 01530C 7001470C 8FA90028 */ lw $t1, 0x28($sp) +/* 015310 70014710 2401FFFF */ li $at, -1 +/* 015314 70014714 11210004 */ beq $t1, $at, .L70014728 +/* 015318 70014718 00000000 */ nop +/* 01531C 7001471C 00002025 */ move $a0, $zero +/* 015320 70014720 0C003600 */ jal osSetThreadPri +/* 015324 70014724 01202825 */ move $a1, $t1 +.L70014728: +/* 015328 70014728 8FBF001C */ lw $ra, 0x1c($sp) +/* 01532C 7001472C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 015330 70014730 03E00008 */ jr $ra +/* 015334 70014734 00000000 */ nop +.endif +.ifdef VERSION_EU +glabel osCreatePiManager +/* 0026F0 70001AF0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0026F4 70001AF4 AFB00020 */ sw $s0, 0x20($sp) +/* 0026F8 70001AF8 3C108002 */ lui $s0, %hi(__osPiDevMgr) # $s0, 0x8002 +/* 0026FC 70001AFC 26100FB0 */ addiu $s0, %lo(__osPiDevMgr) # addiu $s0, $s0, 0xfb0 +/* 002700 70001B00 8E0E0000 */ lw $t6, ($s0) +/* 002704 70001B04 AFBF0024 */ sw $ra, 0x24($sp) +/* 002708 70001B08 AFA40030 */ sw $a0, 0x30($sp) +/* 00270C 70001B0C AFA50034 */ sw $a1, 0x34($sp) +/* 002710 70001B10 15C0004E */ bnez $t6, .L70001C4C +/* 002714 70001B14 AFA60038 */ sw $a2, 0x38($sp) +/* 002718 70001B18 00A02025 */ move $a0, $a1 +/* 00271C 70001B1C 00C02825 */ move $a1, $a2 +/* 002720 70001B20 0C00310C */ jal osCreateMesgQueue +/* 002724 70001B24 00E03025 */ move $a2, $a3 +/* 002728 70001B28 3C048005 */ lui $a0, %hi(pieventQueue) # $a0, 0x8005 +/* 00272C 70001B2C 3C058005 */ lui $a1, %hi(piEventBuf) # $a1, 0x8005 +/* 002730 70001B30 24A52598 */ addiu $a1, %lo(piEventBuf) # addiu $a1, $a1, 0x2598 +/* 002734 70001B34 24842580 */ addiu $a0, %lo(pieventQueue) # addiu $a0, $a0, 0x2580 +/* 002738 70001B38 0C00310C */ jal osCreateMesgQueue +/* 00273C 70001B3C 24060001 */ li $a2, 1 +/* 002740 70001B40 3C0F8002 */ lui $t7, %hi(__osPiAccessQueueEnabled) # $t7, 0x8002 +/* 002744 70001B44 8DEF31D0 */ lw $t7, %lo(__osPiAccessQueueEnabled)($t7) +/* 002748 70001B48 15E00003 */ bnez $t7, .L70001B58 +/* 00274C 70001B4C 00000000 */ nop +/* 002750 70001B50 0C0036D8 */ jal __osPiCreateAccessQueue +/* 002754 70001B54 00000000 */ nop +.L70001B58: +/* 002758 70001B58 3C058005 */ lui $a1, %hi(pieventQueue) # $a1, 0x8005 +/* 00275C 70001B5C 3C062222 */ lui $a2, (0x22222222 >> 16) # lui $a2, 0x2222 +/* 002760 70001B60 34C62222 */ ori $a2, (0x22222222 & 0xFFFF) # ori $a2, $a2, 0x2222 +/* 002764 70001B64 24A52580 */ addiu $a1, %lo(pieventQueue) # addiu $a1, $a1, 0x2580 +/* 002768 70001B68 0C003194 */ jal osSetEventMesg +/* 00276C 70001B6C 24040008 */ li $a0, 8 +/* 002770 70001B70 2418FFFF */ li $t8, -1 +/* 002774 70001B74 AFB80028 */ sw $t8, 0x28($sp) +/* 002778 70001B78 0C0035A0 */ jal osGetThreadPri +/* 00277C 70001B7C 00002025 */ move $a0, $zero +/* 002780 70001B80 8FB90030 */ lw $t9, 0x30($sp) +/* 002784 70001B84 00002025 */ move $a0, $zero +/* 002788 70001B88 0059082A */ slt $at, $v0, $t9 +/* 00278C 70001B8C 10200003 */ beqz $at, .L70001B9C +/* 002790 70001B90 03202825 */ move $a1, $t9 +/* 002794 70001B94 0C003158 */ jal osSetThreadPri +/* 002798 70001B98 AFA20028 */ sw $v0, 0x28($sp) +.L70001B9C: +/* 00279C 70001B9C 0C0035A8 */ jal __osDisableInt +/* 0027A0 70001BA0 00000000 */ nop +/* 0027A4 70001BA4 8FA90034 */ lw $t1, 0x34($sp) +/* 0027A8 70001BA8 8FAF0030 */ lw $t7, 0x30($sp) +/* 0027AC 70001BAC 3C048005 */ lui $a0, %hi(piThread) # $a0, 0x8005 +/* 0027B0 70001BB0 3C0A8005 */ lui $t2, %hi(pieventQueue) # $t2, 0x8005 +/* 0027B4 70001BB4 3C0B8005 */ lui $t3, %hi(__osPiAccessQueue) # $t3, 0x8005 +/* 0027B8 70001BB8 3C0C7001 */ lui $t4, %hi(osPiRawStartDma) # $t4, 0x7001 +/* 0027BC 70001BBC 3C0D7001 */ lui $t5, %hi(osEPiRawStartDma) # $t5, 0x7001 +/* 0027C0 70001BC0 3C0E8005 */ lui $t6, %hi(pieventQueue) # $t6, 0x8005 +/* 0027C4 70001BC4 248422D0 */ addiu $a0, %lo(piThread) # addiu $a0, $a0, 0x22d0 +/* 0027C8 70001BC8 24080001 */ li $t0, 1 +/* 0027CC 70001BCC 254A2580 */ addiu $t2, %lo(pieventQueue) # addiu $t2, $t2, 0x2580 +/* 0027D0 70001BD0 256B7CA8 */ addiu $t3, %lo(__osPiAccessQueue) # addiu $t3, $t3, 0x7ca8 +/* 0027D4 70001BD4 258CBCF0 */ addiu $t4, %lo(osPiRawStartDma) # addiu $t4, $t4, -0x4310 +/* 0027D8 70001BD8 25ADDC20 */ addiu $t5, %lo(osEPiRawStartDma) # addiu $t5, $t5, -0x23e0 +/* 0027DC 70001BDC 25CE2580 */ addiu $t6, %lo(pieventQueue) # addiu $t6, $t6, 0x2580 +/* 0027E0 70001BE0 3C067001 */ lui $a2, %hi(__osDevMgrMain) # $a2, 0x7001 +/* 0027E4 70001BE4 AFA2002C */ sw $v0, 0x2c($sp) +/* 0027E8 70001BE8 AE080000 */ sw $t0, ($s0) +/* 0027EC 70001BEC AE040004 */ sw $a0, 4($s0) +/* 0027F0 70001BF0 AE0A000C */ sw $t2, 0xc($s0) +/* 0027F4 70001BF4 AE0B0010 */ sw $t3, 0x10($s0) +/* 0027F8 70001BF8 AE0C0014 */ sw $t4, 0x14($s0) +/* 0027FC 70001BFC AE0D0018 */ sw $t5, 0x18($s0) +/* 002800 70001C00 24C6DD00 */ addiu $a2, %lo(__osDevMgrMain) # addiu $a2, $a2, -0x2300 +/* 002804 70001C04 AFAE0010 */ sw $t6, 0x10($sp) +/* 002808 70001C08 00002825 */ move $a1, $zero +/* 00280C 70001C0C 02003825 */ move $a3, $s0 +/* 002810 70001C10 AE090008 */ sw $t1, 8($s0) +/* 002814 70001C14 0C003064 */ jal osCreateThread +/* 002818 70001C18 AFAF0014 */ sw $t7, 0x14($sp) +/* 00281C 70001C1C 3C048005 */ lui $a0, %hi(piThread) # $a0, 0x8005 +/* 002820 70001C20 0C0030B8 */ jal osStartThread +/* 002824 70001C24 248422D0 */ addiu $a0, %lo(piThread) # addiu $a0, $a0, 0x22d0 +/* 002828 70001C28 0C0035B0 */ jal __osRestoreInt +/* 00282C 70001C2C 8FA4002C */ lw $a0, 0x2c($sp) +/* 002830 70001C30 8FB80028 */ lw $t8, 0x28($sp) +/* 002834 70001C34 2401FFFF */ li $at, -1 +/* 002838 70001C38 00002025 */ move $a0, $zero +/* 00283C 70001C3C 53010004 */ beql $t8, $at, .L70001C50 +/* 002840 70001C40 8FBF0024 */ lw $ra, 0x24($sp) +/* 002844 70001C44 0C003158 */ jal osSetThreadPri +/* 002848 70001C48 03002825 */ move $a1, $t8 +.L70001C4C: +/* 00284C 70001C4C 8FBF0024 */ lw $ra, 0x24($sp) +.L70001C50: +/* 002850 70001C50 8FB00020 */ lw $s0, 0x20($sp) +/* 002854 70001C54 27BD0030 */ addiu $sp, $sp, 0x30 +/* 002858 70001C58 03E00008 */ jr $ra +/* 00285C 70001C5C 00000000 */ nop +.endif + + +.section .data +glabel __osPiDevMgr +glabel __osPiDevMgr.active +.word 0 +glabel __osPiDevMgr.thread +.word 0 +glabel __osPiDevMgr.cmdQueue +.word 0 +glabel __osPiDevMgr.evtQueue +.word 0 +glabel __osPiDevMgr.acsQueue +.word 0 +glabel __osPiDevMgr.dma +.word 0 +glabel __osPiDevMgr.edma +.word 0 + + +glabel __osPiTable +.word 0 + +.section .bss +glabel piThread +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 +.word 0,0,0,0 + +glabel piThreadStack +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 +.word 0, 0, 0, 0 + +glabel pieventQueue +.word 0, 0, 0, 0, 0, 0 + +glabel piEventBuf +.word 0, 0 diff --git a/src/libultra/pirawdma.s b/src/libultra/pirawdma.s new file mode 100644 index 0000000..24d5732 --- /dev/null +++ b/src/libultra/pirawdma.s @@ -0,0 +1,75 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + + +glabel osPiRawStartDma +/* 00DB90 7000CF90 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00DB94 7000CF94 AFBF001C */ sw $ra, 0x1c($sp) +/* 00DB98 7000CF98 AFA40028 */ sw $a0, 0x28($sp) +/* 00DB9C 7000CF9C AFA5002C */ sw $a1, 0x2c($sp) +/* 00DBA0 7000CFA0 AFA60030 */ sw $a2, 0x30($sp) +/* 00DBA4 7000CFA4 AFA70034 */ sw $a3, 0x34($sp) +/* 00DBA8 7000CFA8 AFB10018 */ sw $s1, 0x18($sp) +/* 00DBAC 7000CFAC AFB00014 */ sw $s0, 0x14($sp) +/* 00DBB0 7000CFB0 3C0EA460 */ lui $t6, %hi(PI_STATUS_REG) # $t6, 0xa460 +/* 00DBB4 7000CFB4 8DD00010 */ lw $s0, %lo(PI_STATUS_REG)($t6) +/* 00DBB8 7000CFB8 320F0003 */ andi $t7, $s0, 3 +/* 00DBBC 7000CFBC 11E00006 */ beqz $t7, .L7000CFD8 +/* 00DBC0 7000CFC0 00000000 */ nop +.L7000CFC4: +/* 00DBC4 7000CFC4 3C18A460 */ lui $t8, %hi(PI_STATUS_REG) # $t8, 0xa460 +/* 00DBC8 7000CFC8 8F100010 */ lw $s0, %lo(PI_STATUS_REG)($t8) +/* 00DBCC 7000CFCC 32190003 */ andi $t9, $s0, 3 +/* 00DBD0 7000CFD0 1720FFFC */ bnez $t9, .L7000CFC4 +/* 00DBD4 7000CFD4 00000000 */ nop +.L7000CFD8: +/* 00DBD8 7000CFD8 0C003A2C */ jal osVirtualToPhysical +/* 00DBDC 7000CFDC 8FA40030 */ lw $a0, 0x30($sp) +/* 00DBE0 7000CFE0 3C08A460 */ lui $t0, 0xa460 +/* 00DBE4 7000CFE4 AD020000 */ sw $v0, ($t0) +/* 00DBE8 7000CFE8 3C098000 */ lui $t1, %hi(osRomBase) +/* 00DBEC 7000CFEC 8D290308 */ lw $t1, %lo(osRomBase)($t1) +/* 00DBF0 7000CFF0 8FAA002C */ lw $t2, 0x2c($sp) +/* 00DBF4 7000CFF4 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff +/* 00DBF8 7000CFF8 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 00DBFC 7000CFFC 012A5825 */ or $t3, $t1, $t2 +/* 00DC00 7000D000 01616024 */ and $t4, $t3, $at +/* 00DC04 7000D004 3C0DA460 */ lui $t5, %hi(PI_CART_ADDR_REG) # $t5, 0xa460 +/* 00DC08 7000D008 ADAC0004 */ sw $t4, %lo(PI_CART_ADDR_REG)($t5) +/* 00DC0C 7000D00C 8FB10028 */ lw $s1, 0x28($sp) +/* 00DC10 7000D010 12200005 */ beqz $s1, .L7000D028 +/* 00DC14 7000D014 24010001 */ li $at, 1 +/* 00DC18 7000D018 12210008 */ beq $s1, $at, .L7000D03C +/* 00DC1C 7000D01C 00000000 */ nop +/* 00DC20 7000D020 1000000B */ b .L7000D050 +/* 00DC24 7000D024 00000000 */ nop +.L7000D028: +/* 00DC28 7000D028 8FAE0034 */ lw $t6, 0x34($sp) +/* 00DC2C 7000D02C 3C18A460 */ lui $t8, %hi(PI_WR_LEN_REG) # $t8, 0xa460 +/* 00DC30 7000D030 25CFFFFF */ addiu $t7, $t6, -1 +/* 00DC34 7000D034 10000008 */ b .L7000D058 +/* 00DC38 7000D038 AF0F000C */ sw $t7, %lo(PI_WR_LEN_REG)($t8) +.L7000D03C: +/* 00DC3C 7000D03C 8FB90034 */ lw $t9, 0x34($sp) +/* 00DC40 7000D040 3C09A460 */ lui $t1, %hi(PI_RD_LEN_REG) # $t1, 0xa460 +/* 00DC44 7000D044 2728FFFF */ addiu $t0, $t9, -1 +/* 00DC48 7000D048 10000003 */ b .L7000D058 +/* 00DC4C 7000D04C AD280008 */ sw $t0, %lo(PI_RD_LEN_REG)($t1) +.L7000D050: +/* 00DC50 7000D050 10000002 */ b .L7000D05C +/* 00DC54 7000D054 2402FFFF */ li $v0, -1 +.L7000D058: +/* 00DC58 7000D058 00001025 */ move $v0, $zero +.L7000D05C: +/* 00DC5C 7000D05C 8FBF001C */ lw $ra, 0x1c($sp) +/* 00DC60 7000D060 8FB00014 */ lw $s0, 0x14($sp) +/* 00DC64 7000D064 8FB10018 */ lw $s1, 0x18($sp) +/* 00DC68 7000D068 03E00008 */ jr $ra +/* 00DC6C 7000D06C 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/pirawread.s b/src/libultra/pirawread.s new file mode 100644 index 0000000..c423d2d --- /dev/null +++ b/src/libultra/pirawread.s @@ -0,0 +1,41 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel osPiRawReadIo +/* 0187E0 70017BE0 3C0EA460 */ lui $t6, %hi(PI_STATUS_REG) # $t6, 0xa460 +/* 0187E4 70017BE4 8DC60010 */ lw $a2, %lo(PI_STATUS_REG)($t6) +/* 0187E8 70017BE8 27BDFFF8 */ addiu $sp, $sp, -8 +/* 0187EC 70017BEC 30CF0003 */ andi $t7, $a2, 3 +/* 0187F0 70017BF0 11E00006 */ beqz $t7, .L70017C0C +/* 0187F4 70017BF4 00000000 */ nop +.L70017BF8: +/* 0187F8 70017BF8 3C18A460 */ lui $t8, %hi(PI_STATUS_REG) # $t8, 0xa460 +/* 0187FC 70017BFC 8F060010 */ lw $a2, %lo(PI_STATUS_REG)($t8) +/* 018800 70017C00 30D90003 */ andi $t9, $a2, 3 +/* 018804 70017C04 1720FFFC */ bnez $t9, .L70017BF8 +/* 018808 70017C08 00000000 */ nop +.L70017C0C: +/* 01880C 70017C0C 3C088000 */ lui $t0, %hi(osRomBase) +/* 018810 70017C10 8D080308 */ lw $t0, %lo(osRomBase)($t0) +/* 018814 70017C14 3C01A000 */ lui $at, 0xa000 +/* 018818 70017C18 00001025 */ move $v0, $zero +/* 01881C 70017C1C 01044825 */ or $t1, $t0, $a0 +/* 018820 70017C20 01215025 */ or $t2, $t1, $at +/* 018824 70017C24 8D4B0000 */ lw $t3, ($t2) +/* 018828 70017C28 27BD0008 */ addiu $sp, $sp, 8 +/* 01882C 70017C2C 03E00008 */ jr $ra +/* 018830 70017C30 ACAB0000 */ sw $t3, ($a1) + +/* 018834 70017C34 00000000 */ nop +/* 018838 70017C38 00000000 */ nop +/* 01883C 70017C3C 00000000 */ nop diff --git a/src/libultra/piread.s b/src/libultra/piread.s new file mode 100644 index 0000000..75545a1 --- /dev/null +++ b/src/libultra/piread.s @@ -0,0 +1,26 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osPiReadIo +/* 014410 70013810 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 014414 70013814 AFBF001C */ sw $ra, 0x1c($sp) +/* 014418 70013818 AFA40028 */ sw $a0, 0x28($sp) +/* 01441C 7001381C AFA5002C */ sw $a1, 0x2c($sp) +/* 014420 70013820 0C0075D8 */ jal __osPiGetAccess +/* 014424 70013824 AFB00018 */ sw $s0, 0x18($sp) +/* 014428 70013828 8FA40028 */ lw $a0, 0x28($sp) +/* 01442C 7001382C 0C005EF8 */ jal osPiRawReadIo +/* 014430 70013830 8FA5002C */ lw $a1, 0x2c($sp) +/* 014434 70013834 0C0075E9 */ jal __osPiRelAccess +/* 014438 70013838 00408025 */ move $s0, $v0 +/* 01443C 7001383C 8FBF001C */ lw $ra, 0x1c($sp) +/* 014440 70013840 02001025 */ move $v0, $s0 +/* 014444 70013844 8FB00018 */ lw $s0, 0x18($sp) +/* 014448 70013848 03E00008 */ jr $ra +/* 01444C 7001384C 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/probetlb.s b/src/libultra/probetlb.s new file mode 100644 index 0000000..5c32573 --- /dev/null +++ b/src/libultra/probetlb.s @@ -0,0 +1,67 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osProbeTLB +/* 019C20 70019020 40085000 */ mfc0 $t0, $10 +/* 019C24 70019024 310900FF */ andi $t1, $t0, 0xff +/* 019C28 70019028 2401E000 */ li $at, -8192 +/* 019C2C 7001902C 00815024 */ and $t2, $a0, $at +/* 019C30 70019030 012A4825 */ or $t1, $t1, $t2 +/* 019C34 70019034 40895000 */ mtc0 $t1, $10 +/* 019C38 70019038 00000000 */ nop +/* 019C3C 7001903C 00000000 */ nop +/* 019C40 70019040 00000000 */ nop +/* 019C44 70019044 42000008 */ tlbp +/* 019C48 70019048 00000000 */ nop +/* 019C4C 7001904C 00000000 */ nop +/* 019C50 70019050 400B0000 */ mfc0 $t3, $0 +/* 019C54 70019054 3C018000 */ lui $at, 0x8000 +/* 019C58 70019058 01615824 */ and $t3, $t3, $at +/* 019C5C 7001905C 1560001A */ bnez $t3, .L700190C8 +/* 019C60 70019060 00000000 */ nop +/* 019C64 70019064 42000001 */ tlbr +/* 019C68 70019068 00000000 */ nop +/* 019C6C 7001906C 00000000 */ nop +/* 019C70 70019070 00000000 */ nop +/* 019C74 70019074 400B2800 */ mfc0 $t3, $5 +/* 019C78 70019078 216B2000 */ addi $t3, $t3, 0x2000 +/* 019C7C 7001907C 000B5842 */ srl $t3, $t3, 1 +/* 019C80 70019080 01646024 */ and $t4, $t3, $a0 +/* 019C84 70019084 15800004 */ bnez $t4, .L70019098 +/* 019C88 70019088 216BFFFF */ addi $t3, $t3, -1 +/* 019C8C 7001908C 40021000 */ mfc0 $v0, $2 +/* 019C90 70019090 10000002 */ b .L7001909C +/* 019C94 70019094 00000000 */ nop +.L70019098: +/* 019C98 70019098 40021800 */ mfc0 $v0, $3 +.L7001909C: +/* 019C9C 7001909C 304D0002 */ andi $t5, $v0, 2 +/* 019CA0 700190A0 11A00009 */ beqz $t5, .L700190C8 +/* 019CA4 700190A4 00000000 */ nop +/* 019CA8 700190A8 3C013FFF */ lui $at, (0x3FFFFFC0 >> 16) # lui $at, 0x3fff +/* 019CAC 700190AC 3421FFC0 */ ori $at, (0x3FFFFFC0 & 0xFFFF) # ori $at, $at, 0xffc0 +/* 019CB0 700190B0 00411024 */ and $v0, $v0, $at +/* 019CB4 700190B4 00021180 */ sll $v0, $v0, 6 +/* 019CB8 700190B8 008B6824 */ and $t5, $a0, $t3 +/* 019CBC 700190BC 004D1020 */ add $v0, $v0, $t5 +/* 019CC0 700190C0 10000002 */ b .L700190CC +/* 019CC4 700190C4 00000000 */ nop +.L700190C8: +/* 019CC8 700190C8 2402FFFF */ li $v0, -1 +.L700190CC: +/* 019CCC 700190CC 40885000 */ mtc0 $t0, $10 +/* 019CD0 700190D0 03E00008 */ jr $ra +/* 019CD4 700190D4 00000000 */ nop + + + diff --git a/src/libultra/recvmesg.s b/src/libultra/recvmesg.s new file mode 100644 index 0000000..2506b75 --- /dev/null +++ b/src/libultra/recvmesg.s @@ -0,0 +1,96 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osRecvMesg +/* 00E9D0 7000DDD0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00E9D4 7000DDD4 AFBF001C */ sw $ra, 0x1c($sp) +/* 00E9D8 7000DDD8 AFA40028 */ sw $a0, 0x28($sp) +/* 00E9DC 7000DDDC AFA5002C */ sw $a1, 0x2c($sp) +/* 00E9E0 7000DDE0 AFA60030 */ sw $a2, 0x30($sp) +/* 00E9E4 7000DDE4 AFB10018 */ sw $s1, 0x18($sp) +/* 00E9E8 7000DDE8 0C00617C */ jal __osDisableInt +/* 00E9EC 7000DDEC AFB00014 */ sw $s0, 0x14($sp) +/* 00E9F0 7000DDF0 8FAE0028 */ lw $t6, 0x28($sp) +/* 00E9F4 7000DDF4 00408025 */ move $s0, $v0 +/* 00E9F8 7000DDF8 8DCF0008 */ lw $t7, 8($t6) +/* 00E9FC 7000DDFC 15E00012 */ bnez $t7, .L7000DE48 +/* 00EA00 7000DE00 00000000 */ nop +.L7000DE04: +/* 00EA04 7000DE04 8FB80030 */ lw $t8, 0x30($sp) +/* 00EA08 7000DE08 17000005 */ bnez $t8, .L7000DE20 +/* 00EA0C 7000DE0C 00000000 */ nop +/* 00EA10 7000DE10 0C006184 */ jal __osRestoreInt +/* 00EA14 7000DE14 02002025 */ move $a0, $s0 +/* 00EA18 7000DE18 10000036 */ b .L7000DEF4 +/* 00EA1C 7000DE1C 2402FFFF */ li $v0, -1 +.L7000DE20: +/* 00EA20 7000DE20 3C088002 */ lui $t0, %hi(__osRunningThread) +/* 00EA24 7000DE24 8D087730 */ lw $t0, %lo(__osRunningThread)($t0) +/* 00EA28 7000DE28 24190008 */ li $t9, 8 +/* 00EA2C 7000DE2C A5190010 */ sh $t9, 0x10($t0) +/* 00EA30 7000DE30 0C0041EB */ jal __osEnqueueAndYield +/* 00EA34 7000DE34 8FA40028 */ lw $a0, 0x28($sp) +/* 00EA38 7000DE38 8FA90028 */ lw $t1, 0x28($sp) +/* 00EA3C 7000DE3C 8D2A0008 */ lw $t2, 8($t1) +/* 00EA40 7000DE40 1140FFF0 */ beqz $t2, .L7000DE04 +/* 00EA44 7000DE44 00000000 */ nop +.L7000DE48: +/* 00EA48 7000DE48 8FAB002C */ lw $t3, 0x2c($sp) +/* 00EA4C 7000DE4C 11600008 */ beqz $t3, .L7000DE70 +/* 00EA50 7000DE50 00000000 */ nop +/* 00EA54 7000DE54 8FAC0028 */ lw $t4, 0x28($sp) +/* 00EA58 7000DE58 8D8E000C */ lw $t6, 0xc($t4) +/* 00EA5C 7000DE5C 8D8D0014 */ lw $t5, 0x14($t4) +/* 00EA60 7000DE60 000E7880 */ sll $t7, $t6, 2 +/* 00EA64 7000DE64 01AFC021 */ addu $t8, $t5, $t7 +/* 00EA68 7000DE68 8F190000 */ lw $t9, ($t8) +/* 00EA6C 7000DE6C AD790000 */ sw $t9, ($t3) +.L7000DE70: +/* 00EA70 7000DE70 8FA80028 */ lw $t0, 0x28($sp) +/* 00EA74 7000DE74 8D09000C */ lw $t1, 0xc($t0) +/* 00EA78 7000DE78 8D0C0010 */ lw $t4, 0x10($t0) +/* 00EA7C 7000DE7C 252A0001 */ addiu $t2, $t1, 1 +/* 00EA80 7000DE80 014C001A */ div $zero, $t2, $t4 +/* 00EA84 7000DE84 00007010 */ mfhi $t6 +/* 00EA88 7000DE88 AD0E000C */ sw $t6, 0xc($t0) +/* 00EA8C 7000DE8C 8FAD0028 */ lw $t5, 0x28($sp) +/* 00EA90 7000DE90 15800002 */ bnez $t4, .L7000DE9C +/* 00EA94 7000DE94 00000000 */ nop +/* 00EA98 7000DE98 0007000D */ break 7 +.L7000DE9C: +/* 00EA9C 7000DE9C 2401FFFF */ li $at, -1 +/* 00EAA0 7000DEA0 15810004 */ bne $t4, $at, .L7000DEB4 +/* 00EAA4 7000DEA4 3C018000 */ lui $at, 0x8000 +/* 00EAA8 7000DEA8 15410002 */ bne $t2, $at, .L7000DEB4 +/* 00EAAC 7000DEAC 00000000 */ nop +/* 00EAB0 7000DEB0 0006000D */ break 6 +.L7000DEB4: +/* 00EAB4 7000DEB4 8DAF0008 */ lw $t7, 8($t5) +/* 00EAB8 7000DEB8 25F8FFFF */ addiu $t8, $t7, -1 +/* 00EABC 7000DEBC ADB80008 */ sw $t8, 8($t5) +/* 00EAC0 7000DEC0 8FB90028 */ lw $t9, 0x28($sp) +/* 00EAC4 7000DEC4 8F2B0004 */ lw $t3, 4($t9) +/* 00EAC8 7000DEC8 8D690000 */ lw $t1, ($t3) +/* 00EACC 7000DECC 11200006 */ beqz $t1, .L7000DEE8 +/* 00EAD0 7000DED0 00000000 */ nop +/* 00EAD4 7000DED4 0C00423D */ jal __osPopThread +/* 00EAD8 7000DED8 27240004 */ addiu $a0, $t9, 4 +/* 00EADC 7000DEDC 00408825 */ move $s1, $v0 +/* 00EAE0 7000DEE0 0C003560 */ jal osStartThread +/* 00EAE4 7000DEE4 02202025 */ move $a0, $s1 +.L7000DEE8: +/* 00EAE8 7000DEE8 0C006184 */ jal __osRestoreInt +/* 00EAEC 7000DEEC 02002025 */ move $a0, $s0 +/* 00EAF0 7000DEF0 00001025 */ move $v0, $zero +.L7000DEF4: +/* 00EAF4 7000DEF4 8FBF001C */ lw $ra, 0x1c($sp) +/* 00EAF8 7000DEF8 8FB00014 */ lw $s0, 0x14($sp) +/* 00EAFC 7000DEFC 8FB10018 */ lw $s1, 0x18($sp) +/* 00EB00 7000DF00 03E00008 */ jr $ra +/* 00EB04 7000DF04 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/resample.s b/src/libultra/resample.s new file mode 100644 index 0000000..1729d58 --- /dev/null +++ b/src/libultra/resample.s @@ -0,0 +1,239 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alResampleParam +/* 01B200 7001A600 24AEFFFF */ addiu $t6, $a1, -1 +/* 01B204 7001A604 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 01B208 7001A608 2DC10009 */ sltiu $at, $t6, 9 +/* 01B20C 7001A60C AFBF0014 */ sw $ra, 0x14($sp) +/* 01B210 7001A610 1020002B */ beqz $at, .L7001A6C0 +/* 01B214 7001A614 00803825 */ move $a3, $a0 +/* 01B218 7001A618 000E7080 */ sll $t6, $t6, 2 +/* 01B21C 7001A61C 3C018003 */ lui $at, %hi(jpt_80029850) +/* 01B220 7001A620 002E0821 */ addu $at, $at, $t6 +/* 01B224 7001A624 8C2E9850 */ lw $t6, %lo(jpt_80029850)($at) +/* 01B228 7001A628 01C00008 */ jr $t6 +/* 01B22C 7001A62C 00000000 */ nop +.L7001A630: +/* 01B230 7001A630 10000029 */ b .L7001A6D8 +/* 01B234 7001A634 ACE60000 */ sw $a2, ($a3) +.L7001A638: +/* 01B238 7001A638 8CE40000 */ lw $a0, ($a3) +/* 01B23C 7001A63C 44802000 */ mtc1 $zero, $f4 +/* 01B240 7001A640 240F0001 */ li $t7, 1 +/* 01B244 7001A644 ACEF0024 */ sw $t7, 0x24($a3) +/* 01B248 7001A648 ACE00030 */ sw $zero, 0x30($a3) +/* 01B24C 7001A64C ACE0001C */ sw $zero, 0x1c($a3) +/* 01B250 7001A650 10800021 */ beqz $a0, .L7001A6D8 +/* 01B254 7001A654 E4E40020 */ swc1 $f4, 0x20($a3) +/* 01B258 7001A658 8C990008 */ lw $t9, 8($a0) +/* 01B25C 7001A65C 24050004 */ li $a1, 4 +/* 01B260 7001A660 00003025 */ move $a2, $zero +/* 01B264 7001A664 0320F809 */ jalr $t9 +/* 01B268 7001A668 00000000 */ nop +/* 01B26C 7001A66C 1000001B */ b .L7001A6DC +/* 01B270 7001A670 8FBF0014 */ lw $ra, 0x14($sp) +.L7001A674: +/* 01B274 7001A674 8CE40000 */ lw $a0, ($a3) +/* 01B278 7001A678 24180001 */ li $t8, 1 +/* 01B27C 7001A67C ACF80030 */ sw $t8, 0x30($a3) +/* 01B280 7001A680 50800016 */ beql $a0, $zero, .L7001A6DC +/* 01B284 7001A684 8FBF0014 */ lw $ra, 0x14($sp) +/* 01B288 7001A688 8C990008 */ lw $t9, 8($a0) +/* 01B28C 7001A68C 24050009 */ li $a1, 9 +/* 01B290 7001A690 00003025 */ move $a2, $zero +/* 01B294 7001A694 0320F809 */ jalr $t9 +/* 01B298 7001A698 00000000 */ nop +/* 01B29C 7001A69C 1000000F */ b .L7001A6DC +/* 01B2A0 7001A6A0 8FBF0014 */ lw $ra, 0x14($sp) +.L7001A6A4: +/* 01B2A4 7001A6A4 AFA6001C */ sw $a2, 0x1c($sp) +/* 01B2A8 7001A6A8 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 01B2AC 7001A6AC 1000000A */ b .L7001A6D8 +/* 01B2B0 7001A6B0 E4E60018 */ swc1 $f6, 0x18($a3) +.L7001A6B4: +/* 01B2B4 7001A6B4 24080001 */ li $t0, 1 +/* 01B2B8 7001A6B8 10000007 */ b .L7001A6D8 +/* 01B2BC 7001A6BC ACE8001C */ sw $t0, 0x1c($a3) +.L7001A6C0: +/* 01B2C0 7001A6C0 8CE40000 */ lw $a0, ($a3) +/* 01B2C4 7001A6C4 50800005 */ beql $a0, $zero, .L7001A6DC +/* 01B2C8 7001A6C8 8FBF0014 */ lw $ra, 0x14($sp) +/* 01B2CC 7001A6CC 8C990008 */ lw $t9, 8($a0) +/* 01B2D0 7001A6D0 0320F809 */ jalr $t9 +/* 01B2D4 7001A6D4 00000000 */ nop +.L7001A6D8: +/* 01B2D8 7001A6D8 8FBF0014 */ lw $ra, 0x14($sp) +.L7001A6DC: +/* 01B2DC 7001A6DC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 01B2E0 7001A6E0 00001025 */ move $v0, $zero +/* 01B2E4 7001A6E4 03E00008 */ jr $ra +/* 01B2E8 7001A6E8 00000000 */ nop + +glabel alResamplePull +/* 01B2EC 7001A6EC 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 01B2F0 7001A6F0 AFBF001C */ sw $ra, 0x1c($sp) +/* 01B2F4 7001A6F4 AFA50054 */ sw $a1, 0x54($sp) +/* 01B2F8 7001A6F8 8C890000 */ lw $t1, ($a0) +/* 01B2FC 7001A6FC 240E0140 */ li $t6, 320 +/* 01B300 7001A700 00804025 */ move $t0, $a0 +/* 01B304 7001A704 00C05025 */ move $t2, $a2 +/* 01B308 7001A708 14C00003 */ bnez $a2, .L7001A718 +/* 01B30C 7001A70C A7AE0046 */ sh $t6, 0x46($sp) +/* 01B310 7001A710 10000074 */ b .L7001A8E4 +/* 01B314 7001A714 8FA20060 */ lw $v0, 0x60($sp) +.L7001A718: +/* 01B318 7001A718 8D0F001C */ lw $t7, 0x1c($t0) +/* 01B31C 7001A71C 8FB80060 */ lw $t8, 0x60($sp) +/* 01B320 7001A720 51E0001A */ beql $t7, $zero, .L7001A78C +/* 01B324 7001A724 C5020018 */ lwc1 $f2, 0x18($t0) +/* 01B328 7001A728 AFB80010 */ sw $t8, 0x10($sp) +/* 01B32C 7001A72C AFAA0058 */ sw $t2, 0x58($sp) +/* 01B330 7001A730 8D390004 */ lw $t9, 4($t1) +/* 01B334 7001A734 01202025 */ move $a0, $t1 +/* 01B338 7001A738 27A50046 */ addiu $a1, $sp, 0x46 +/* 01B33C 7001A73C 0320F809 */ jalr $t9 +/* 01B340 7001A740 01403025 */ move $a2, $t2 +/* 01B344 7001A744 87AB0046 */ lh $t3, 0x46($sp) +/* 01B348 7001A748 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 01B34C 7001A74C 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01B350 7001A750 01616024 */ and $t4, $t3, $at +/* 01B354 7001A754 3C010A00 */ lui $at, 0xa00 +/* 01B358 7001A758 8FAA0058 */ lw $t2, 0x58($sp) +/* 01B35C 7001A75C 01816825 */ or $t5, $t4, $at +/* 01B360 7001A760 AC4D0000 */ sw $t5, ($v0) +/* 01B364 7001A764 8FAE0054 */ lw $t6, 0x54($sp) +/* 01B368 7001A768 000A5840 */ sll $t3, $t2, 1 +/* 01B36C 7001A76C 316CFFFF */ andi $t4, $t3, 0xffff +/* 01B370 7001A770 85D80000 */ lh $t8, ($t6) +/* 01B374 7001A774 24450008 */ addiu $a1, $v0, 8 +/* 01B378 7001A778 0018CC00 */ sll $t9, $t8, 0x10 +/* 01B37C 7001A77C 032C6825 */ or $t5, $t9, $t4 +/* 01B380 7001A780 10000057 */ b .L7001A8E0 +/* 01B384 7001A784 AC4D0004 */ sw $t5, 4($v0) +/* 01B388 7001A788 C5020018 */ lwc1 $f2, 0x18($t0) +.L7001A78C: +/* 01B38C 7001A78C 3C018003 */ lui $at, %hi(F64_80029878) +/* 01B390 7001A790 D4249878 */ ldc1 $f4, %lo(F64_80029878)($at) +/* 01B394 7001A794 460011A1 */ cvt.d.s $f6, $f2 +/* 01B398 7001A798 3C018003 */ lui $at, %hi(F64_80029880) +/* 01B39C 7001A79C 4626203C */ c.lt.d $f4, $f6 +/* 01B3A0 7001A7A0 00000000 */ nop +/* 01B3A4 7001A7A4 45020005 */ bc1fl .L7001A7BC +/* 01B3A8 7001A7A8 3C014700 */ lui $at, 0x4700 +/* 01B3AC 7001A7AC C4289880 */ lwc1 $f8, %lo(F64_80029880)($at) +/* 01B3B0 7001A7B0 E5080018 */ swc1 $f8, 0x18($t0) +/* 01B3B4 7001A7B4 C5020018 */ lwc1 $f2, 0x18($t0) +/* 01B3B8 7001A7B8 3C014700 */ li $at, 0x47000000 # 32768.000000 +.L7001A7BC: +/* 01B3BC 7001A7BC 44816000 */ mtc1 $at, $f12 +/* 01B3C0 7001A7C0 01202025 */ move $a0, $t1 +/* 01B3C4 7001A7C4 27A50046 */ addiu $a1, $sp, 0x46 +/* 01B3C8 7001A7C8 460C1282 */ mul.s $f10, $f2, $f12 +/* 01B3CC 7001A7CC 4600540D */ trunc.w.s $f16, $f10 +/* 01B3D0 7001A7D0 440F8000 */ mfc1 $t7, $f16 +/* 01B3D4 7001A7D4 448A8000 */ mtc1 $t2, $f16 +/* 01B3D8 7001A7D8 448F9000 */ mtc1 $t7, $f18 +/* 01B3DC 7001A7DC 00000000 */ nop +/* 01B3E0 7001A7E0 46809120 */ cvt.s.w $f4, $f18 +/* 01B3E4 7001A7E4 468084A0 */ cvt.s.w $f18, $f16 +/* 01B3E8 7001A7E8 E5040018 */ swc1 $f4, 0x18($t0) +/* 01B3EC 7001A7EC C5060018 */ lwc1 $f6, 0x18($t0) +/* 01B3F0 7001A7F0 460C3203 */ div.s $f8, $f6, $f12 +/* 01B3F4 7001A7F4 C5060020 */ lwc1 $f6, 0x20($t0) +/* 01B3F8 7001A7F8 E5080018 */ swc1 $f8, 0x18($t0) +/* 01B3FC 7001A7FC C50A0018 */ lwc1 $f10, 0x18($t0) +/* 01B400 7001A800 46125102 */ mul.s $f4, $f10, $f18 +/* 01B404 7001A804 46043000 */ add.s $f0, $f6, $f4 +/* 01B408 7001A808 4600020D */ trunc.w.s $f8, $f0 +/* 01B40C 7001A80C 44064000 */ mfc1 $a2, $f8 +/* 01B410 7001A810 00000000 */ nop +/* 01B414 7001A814 44868000 */ mtc1 $a2, $f16 +/* 01B418 7001A818 00000000 */ nop +/* 01B41C 7001A81C 468082A0 */ cvt.s.w $f10, $f16 +/* 01B420 7001A820 460A0481 */ sub.s $f18, $f0, $f10 +/* 01B424 7001A824 E5120020 */ swc1 $f18, 0x20($t0) +/* 01B428 7001A828 8FAB0060 */ lw $t3, 0x60($sp) +/* 01B42C 7001A82C AFAA0058 */ sw $t2, 0x58($sp) +/* 01B430 7001A830 AFA80050 */ sw $t0, 0x50($sp) +/* 01B434 7001A834 AFAB0010 */ sw $t3, 0x10($sp) +/* 01B438 7001A838 8D390004 */ lw $t9, 4($t1) +/* 01B43C 7001A83C 0320F809 */ jalr $t9 +/* 01B440 7001A840 00000000 */ nop +/* 01B444 7001A844 8FA80050 */ lw $t0, 0x50($sp) +/* 01B448 7001A848 87AD0046 */ lh $t5, 0x46($sp) +/* 01B44C 7001A84C 3C014700 */ li $at, 0x47000000 # 32768.000000 +/* 01B450 7001A850 44812000 */ mtc1 $at, $f4 +/* 01B454 7001A854 C5060018 */ lwc1 $f6, 0x18($t0) +/* 01B458 7001A858 3C010800 */ lui $at, 0x800 +/* 01B45C 7001A85C 31AEFFFF */ andi $t6, $t5, 0xffff +/* 01B460 7001A860 8FAA0058 */ lw $t2, 0x58($sp) +/* 01B464 7001A864 01C17825 */ or $t7, $t6, $at +/* 01B468 7001A868 AC4F0000 */ sw $t7, ($v0) +/* 01B46C 7001A86C 8FB80054 */ lw $t8, 0x54($sp) +/* 01B470 7001A870 46043202 */ mul.s $f8, $f6, $f4 +/* 01B474 7001A874 000A6840 */ sll $t5, $t2, 1 +/* 01B478 7001A878 87190000 */ lh $t9, ($t8) +/* 01B47C 7001A87C 31AEFFFF */ andi $t6, $t5, 0xffff +/* 01B480 7001A880 24580008 */ addiu $t8, $v0, 8 +/* 01B484 7001A884 00196400 */ sll $t4, $t9, 0x10 +/* 01B488 7001A888 018E7825 */ or $t7, $t4, $t6 +/* 01B48C 7001A88C 4600440D */ trunc.w.s $f16, $f8 +/* 01B490 7001A890 AC4F0004 */ sw $t7, 4($v0) +/* 01B494 7001A894 AFB80028 */ sw $t8, 0x28($sp) +/* 01B498 7001A898 8D0B0024 */ lw $t3, 0x24($t0) +/* 01B49C 7001A89C 44038000 */ mfc1 $v1, $f16 +/* 01B4A0 7001A8A0 3C010500 */ lui $at, 0x500 +/* 01B4A4 7001A8A4 317900FF */ andi $t9, $t3, 0xff +/* 01B4A8 7001A8A8 00196C00 */ sll $t5, $t9, 0x10 +/* 01B4AC 7001A8AC 01A16025 */ or $t4, $t5, $at +/* 01B4B0 7001A8B0 306EFFFF */ andi $t6, $v1, 0xffff +/* 01B4B4 7001A8B4 018E7825 */ or $t7, $t4, $t6 +/* 01B4B8 7001A8B8 AC4F0008 */ sw $t7, 8($v0) +/* 01B4BC 7001A8BC 24450010 */ addiu $a1, $v0, 0x10 +/* 01B4C0 7001A8C0 8D040014 */ lw $a0, 0x14($t0) +/* 01B4C4 7001A8C4 0C003A2C */ jal osVirtualToPhysical +/* 01B4C8 7001A8C8 AFA50048 */ sw $a1, 0x48($sp) +/* 01B4CC 7001A8CC 8FB80028 */ lw $t8, 0x28($sp) +/* 01B4D0 7001A8D0 8FA80050 */ lw $t0, 0x50($sp) +/* 01B4D4 7001A8D4 8FA50048 */ lw $a1, 0x48($sp) +/* 01B4D8 7001A8D8 AF020004 */ sw $v0, 4($t8) +/* 01B4DC 7001A8DC AD000024 */ sw $zero, 0x24($t0) +.L7001A8E0: +/* 01B4E0 7001A8E0 00A01025 */ move $v0, $a1 +.L7001A8E4: +/* 01B4E4 7001A8E4 8FBF001C */ lw $ra, 0x1c($sp) +/* 01B4E8 7001A8E8 27BD0050 */ addiu $sp, $sp, 0x50 +/* 01B4EC 7001A8EC 03E00008 */ jr $ra +/* 01B4F0 7001A8F0 00000000 */ nop +.align 4 + +.section .rodata +glabel jpt_80029850 +.word .L7001A630 +.word .L7001A6C0 +.word .L7001A6C0 +.word .L7001A638 +.word .L7001A6C0 +.word .L7001A6C0 +.word .L7001A6A4 +.word .L7001A6B4 +.word .L7001A674 +.align 3 +glabel F64_80029878 +.double 1.99996 +glabel F64_80029880 +.float 1.9999599 +.word 0 +.word 0 +.word 0 diff --git a/src/libultra/resetglobalintmask.s b/src/libultra/resetglobalintmask.s new file mode 100644 index 0000000..25d73a4 --- /dev/null +++ b/src/libultra/resetglobalintmask.s @@ -0,0 +1,36 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osResetGlobalIntMask +/* 0218E0 70020CE0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0218E4 70020CE4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0218E8 70020CE8 AFA40028 */ sw $a0, 0x28($sp) +/* 0218EC 70020CEC 0C00617C */ jal __osDisableInt +/* 0218F0 70020CF0 AFB00018 */ sw $s0, 0x18($sp) +/* 0218F4 70020CF4 8FAF0028 */ lw $t7, 0x28($sp) +/* 0218F8 70020CF8 3C0E8002 */ lui $t6, %hi(__OSGlobalIntMask) +/* 0218FC 70020CFC 8DCE698C */ lw $t6, %lo(__OSGlobalIntMask)($t6) +/* 021900 70020D00 2401FBFE */ li $at, -1026 +/* 021904 70020D04 01E1C024 */ and $t8, $t7, $at +/* 021908 70020D08 0300C827 */ not $t9, $t8 +/* 02190C 70020D0C 00408025 */ move $s0, $v0 +/* 021910 70020D10 3C018002 */ lui $at, %hi(__OSGlobalIntMask) +/* 021914 70020D14 01D94024 */ and $t0, $t6, $t9 +/* 021918 70020D18 AC28698C */ sw $t0, %lo(__OSGlobalIntMask)($at) +/* 02191C 70020D1C 0C006184 */ jal __osRestoreInt +/* 021920 70020D20 02002025 */ move $a0, $s0 +/* 021924 70020D24 8FBF001C */ lw $ra, 0x1c($sp) +/* 021928 70020D28 8FB00018 */ lw $s0, 0x18($sp) +/* 02192C 70020D2C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 021930 70020D30 03E00008 */ jr $ra +/* 021934 70020D34 00000000 */ nop diff --git a/src/libultra/reverb.s b/src/libultra/reverb.s new file mode 100644 index 0000000..4d0b2d4 --- /dev/null +++ b/src/libultra/reverb.s @@ -0,0 +1,855 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel _doModFunc +/* 020510 7001F910 44853000 */ mtc1 $a1, $f6 +/* 020514 7001F914 C4840010 */ lwc1 $f4, 0x10($a0) +/* 020518 7001F918 C4900014 */ lwc1 $f16, 0x14($a0) +/* 02051C 7001F91C 46803220 */ cvt.s.w $f8, $f6 +/* 020520 7001F920 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 020524 7001F924 44812800 */ mtc1 $at, $f5 +/* 020528 7001F928 3C014010 */ li $at, 0x40100000 # 2.250000 +/* 02052C 7001F92C 46082282 */ mul.s $f10, $f4, $f8 +/* 020530 7001F930 44802000 */ mtc1 $zero, $f4 +/* 020534 7001F934 460A8480 */ add.s $f18, $f16, $f10 +/* 020538 7001F938 E4920014 */ swc1 $f18, 0x14($a0) +/* 02053C 7001F93C C4860014 */ lwc1 $f6, 0x14($a0) +/* 020540 7001F940 46003021 */ cvt.d.s $f0, $f6 +/* 020544 7001F944 44803000 */ mtc1 $zero, $f6 +/* 020548 7001F948 4620203C */ c.lt.d $f4, $f0 +/* 02054C 7001F94C 00000000 */ nop +/* 020550 7001F950 45020009 */ bc1fl .L7001F978 +/* 020554 7001F954 462004A0 */ cvt.s.d $f18, $f0 +/* 020558 7001F958 44814800 */ mtc1 $at, $f9 +/* 02055C 7001F95C 44804000 */ mtc1 $zero, $f8 +/* 020560 7001F960 00000000 */ nop +/* 020564 7001F964 46280401 */ sub.d $f16, $f0, $f8 +/* 020568 7001F968 462082A0 */ cvt.s.d $f10, $f16 +/* 02056C 7001F96C 10000003 */ b .L7001F97C +/* 020570 7001F970 E48A0014 */ swc1 $f10, 0x14($a0) +/* 020574 7001F974 462004A0 */ cvt.s.d $f18, $f0 +.L7001F978: +/* 020578 7001F978 E4920014 */ swc1 $f18, 0x14($a0) +.L7001F97C: +/* 02057C 7001F97C C4820014 */ lwc1 $f2, 0x14($a0) +/* 020580 7001F980 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 020584 7001F984 44814800 */ mtc1 $at, $f9 +/* 020588 7001F988 4606103C */ c.lt.s $f2, $f6 +/* 02058C 7001F98C 44804000 */ mtc1 $zero, $f8 +/* 020590 7001F990 45020003 */ bc1fl .L7001F9A0 +/* 020594 7001F994 46001121 */ cvt.d.s $f4, $f2 +/* 020598 7001F998 46001087 */ neg.s $f2, $f2 +/* 02059C 7001F99C 46001121 */ cvt.d.s $f4, $f2 +.L7001F9A0: +/* 0205A0 7001F9A0 C48A001C */ lwc1 $f10, 0x1c($a0) +/* 0205A4 7001F9A4 46282401 */ sub.d $f16, $f4, $f8 +/* 0205A8 7001F9A8 462080A0 */ cvt.s.d $f2, $f16 +/* 0205AC 7001F9AC 46025002 */ mul.s $f0, $f10, $f2 +/* 0205B0 7001F9B0 03E00008 */ jr $ra +/* 0205B4 7001F9B4 00000000 */ nop + +glabel _filterBuffer +/* 0205B8 7001F9B8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0205BC 7001F9BC AFBF0014 */ sw $ra, 0x14($sp) +/* 0205C0 7001F9C0 30A2FFFF */ andi $v0, $a1, 0xffff +/* 0205C4 7001F9C4 0006C040 */ sll $t8, $a2, 1 +/* 0205C8 7001F9C8 3319FFFF */ andi $t9, $t8, 0xffff +/* 0205CC 7001F9CC 00027C00 */ sll $t7, $v0, 0x10 +/* 0205D0 7001F9D0 3C010800 */ lui $at, 0x800 +/* 0205D4 7001F9D4 3C0A0B00 */ lui $t2, (0x0B000020 >> 16) # lui $t2, 0xb00 +/* 0205D8 7001F9D8 00417025 */ or $t6, $v0, $at +/* 0205DC 7001F9DC 01F94825 */ or $t1, $t7, $t9 +/* 0205E0 7001F9E0 354A0020 */ ori $t2, (0x0B000020 & 0xFFFF) # ori $t2, $t2, 0x20 +/* 0205E4 7001F9E4 00804025 */ move $t0, $a0 +/* 0205E8 7001F9E8 ACE90004 */ sw $t1, 4($a3) +/* 0205EC 7001F9EC ACEE0000 */ sw $t6, ($a3) +/* 0205F0 7001F9F0 ACEA0008 */ sw $t2, 8($a3) +/* 0205F4 7001F9F4 AFA80028 */ sw $t0, 0x28($sp) +/* 0205F8 7001F9F8 AFA70034 */ sw $a3, 0x34($sp) +/* 0205FC 7001F9FC 0C003A2C */ jal osVirtualToPhysical +/* 020600 7001FA00 24840008 */ addiu $a0, $a0, 8 +/* 020604 7001FA04 8FA70034 */ lw $a3, 0x34($sp) +/* 020608 7001FA08 8FA80028 */ lw $t0, 0x28($sp) +/* 02060C 7001FA0C 3C010E00 */ lui $at, 0xe00 +/* 020610 7001FA10 24E30010 */ addiu $v1, $a3, 0x10 +/* 020614 7001FA14 246B0008 */ addiu $t3, $v1, 8 +/* 020618 7001FA18 ACE2000C */ sw $v0, 0xc($a3) +/* 02061C 7001FA1C AFAB0024 */ sw $t3, 0x24($sp) +/* 020620 7001FA20 8D0C002C */ lw $t4, 0x2c($t0) +/* 020624 7001FA24 850F0002 */ lh $t7, 2($t0) +/* 020628 7001FA28 318D00FF */ andi $t5, $t4, 0xff +/* 02062C 7001FA2C 000D7400 */ sll $t6, $t5, 0x10 +/* 020630 7001FA30 01C1C025 */ or $t8, $t6, $at +/* 020634 7001FA34 31F9FFFF */ andi $t9, $t7, 0xffff +/* 020638 7001FA38 03194825 */ or $t1, $t8, $t9 +/* 02063C 7001FA3C AC690000 */ sw $t1, ($v1) +/* 020640 7001FA40 8D040028 */ lw $a0, 0x28($t0) +/* 020644 7001FA44 0C003A2C */ jal osVirtualToPhysical +/* 020648 7001FA48 AFA30018 */ sw $v1, 0x18($sp) +/* 02064C 7001FA4C 8FA50018 */ lw $a1, 0x18($sp) +/* 020650 7001FA50 8FA80028 */ lw $t0, 0x28($sp) +/* 020654 7001FA54 ACA20004 */ sw $v0, 4($a1) +/* 020658 7001FA58 AD00002C */ sw $zero, 0x2c($t0) +/* 02065C 7001FA5C 8FBF0014 */ lw $ra, 0x14($sp) +/* 020660 7001FA60 8FA20024 */ lw $v0, 0x24($sp) +/* 020664 7001FA64 27BD0028 */ addiu $sp, $sp, 0x28 +/* 020668 7001FA68 03E00008 */ jr $ra +/* 02066C 7001FA6C 00000000 */ nop + +glabel _saveBuffer +/* 020670 7001FA70 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 020674 7001FA74 AFBF001C */ sw $ra, 0x1c($sp) +/* 020678 7001FA78 AFB00018 */ sw $s0, 0x18($sp) +/* 02067C 7001FA7C 8C83001C */ lw $v1, 0x1c($a0) +/* 020680 7001FA80 8C820014 */ lw $v0, 0x14($a0) +/* 020684 7001FA84 8FA80070 */ lw $t0, 0x70($sp) +/* 020688 7001FA88 00037040 */ sll $t6, $v1, 1 +/* 02068C 7001FA8C 00A2082B */ sltu $at, $a1, $v0 +/* 020690 7001FA90 00805025 */ move $t2, $a0 +/* 020694 7001FA94 00C06825 */ move $t5, $a2 +/* 020698 7001FA98 00E05825 */ move $t3, $a3 +/* 02069C 7001FA9C 10200002 */ beqz $at, .L7001FAA8 +/* 0206A0 7001FAA0 004E4821 */ addu $t1, $v0, $t6 +/* 0206A4 7001FAA4 00AE2821 */ addu $a1, $a1, $t6 +.L7001FAA8: +/* 0206A8 7001FAA8 000B3040 */ sll $a2, $t3, 1 +/* 0206AC 7001FAAC 00C53821 */ addu $a3, $a2, $a1 +/* 0206B0 7001FAB0 0127082B */ sltu $at, $t1, $a3 +/* 0206B4 7001FAB4 1020003C */ beqz $at, .L7001FBA8 +/* 0206B8 7001FAB8 25100008 */ addiu $s0, $t0, 8 +/* 0206BC 7001FABC 01255823 */ subu $t3, $t1, $a1 +/* 0206C0 7001FAC0 000BC043 */ sra $t8, $t3, 1 +/* 0206C4 7001FAC4 3C0F0800 */ lui $t7, 0x800 +/* 0206C8 7001FAC8 AD0F0000 */ sw $t7, ($t0) +/* 0206CC 7001FACC 00185840 */ sll $t3, $t8, 1 +/* 0206D0 7001FAD0 3178FFFF */ andi $t8, $t3, 0xffff +/* 0206D4 7001FAD4 000D7C00 */ sll $t7, $t5, 0x10 +/* 0206D8 7001FAD8 01F8C825 */ or $t9, $t7, $t8 +/* 0206DC 7001FADC 25100008 */ addiu $s0, $t0, 8 +/* 0206E0 7001FAE0 AD190004 */ sw $t9, 4($t0) +/* 0206E4 7001FAE4 02006025 */ move $t4, $s0 +/* 0206E8 7001FAE8 3C0E0600 */ lui $t6, 0x600 +/* 0206EC 7001FAEC AD8E0000 */ sw $t6, ($t4) +/* 0206F0 7001FAF0 AFAD0068 */ sw $t5, 0x68($sp) +/* 0206F4 7001FAF4 AFAC0044 */ sw $t4, 0x44($sp) +/* 0206F8 7001FAF8 AFAB0024 */ sw $t3, 0x24($sp) +/* 0206FC 7001FAFC AFAA0060 */ sw $t2, 0x60($sp) +/* 020700 7001FB00 AFA9004C */ sw $t1, 0x4c($sp) +/* 020704 7001FB04 AFA70028 */ sw $a3, 0x28($sp) +/* 020708 7001FB08 AFA6002C */ sw $a2, 0x2c($sp) +/* 02070C 7001FB0C 26100008 */ addiu $s0, $s0, 8 +/* 020710 7001FB10 0C003A2C */ jal osVirtualToPhysical +/* 020714 7001FB14 00A02025 */ move $a0, $a1 +/* 020718 7001FB18 8FAC0044 */ lw $t4, 0x44($sp) +/* 02071C 7001FB1C 8FA70028 */ lw $a3, 0x28($sp) +/* 020720 7001FB20 8FA9004C */ lw $t1, 0x4c($sp) +/* 020724 7001FB24 8FAB0024 */ lw $t3, 0x24($sp) +/* 020728 7001FB28 8FAD0068 */ lw $t5, 0x68($sp) +/* 02072C 7001FB2C 8FAA0060 */ lw $t2, 0x60($sp) +/* 020730 7001FB30 02001825 */ move $v1, $s0 +/* 020734 7001FB34 3C0F0800 */ lui $t7, 0x800 +/* 020738 7001FB38 AD820004 */ sw $v0, 4($t4) +/* 02073C 7001FB3C AC6F0000 */ sw $t7, ($v1) +/* 020740 7001FB40 00E97823 */ subu $t7, $a3, $t1 +/* 020744 7001FB44 016DC821 */ addu $t9, $t3, $t5 +/* 020748 7001FB48 00197400 */ sll $t6, $t9, 0x10 +/* 02074C 7001FB4C 000FC043 */ sra $t8, $t7, 1 +/* 020750 7001FB50 0018C840 */ sll $t9, $t8, 1 +/* 020754 7001FB54 332FFFFF */ andi $t7, $t9, 0xffff +/* 020758 7001FB58 01CFC025 */ or $t8, $t6, $t7 +/* 02075C 7001FB5C 26100008 */ addiu $s0, $s0, 8 +/* 020760 7001FB60 AC780004 */ sw $t8, 4($v1) +/* 020764 7001FB64 02002825 */ move $a1, $s0 +/* 020768 7001FB68 3C190600 */ lui $t9, 0x600 +/* 02076C 7001FB6C ACB90000 */ sw $t9, ($a1) +/* 020770 7001FB70 8D440014 */ lw $a0, 0x14($t2) +/* 020774 7001FB74 AFA5003C */ sw $a1, 0x3c($sp) +/* 020778 7001FB78 0C003A2C */ jal osVirtualToPhysical +/* 02077C 7001FB7C 26100008 */ addiu $s0, $s0, 8 +/* 020780 7001FB80 8FA5003C */ lw $a1, 0x3c($sp) +/* 020784 7001FB84 8FA6002C */ lw $a2, 0x2c($sp) +/* 020788 7001FB88 02001825 */ move $v1, $s0 +/* 02078C 7001FB8C 3C0E0800 */ lui $t6, 0x800 +/* 020790 7001FB90 ACA20004 */ sw $v0, 4($a1) +/* 020794 7001FB94 30CFFFFF */ andi $t7, $a2, 0xffff +/* 020798 7001FB98 AC6F0004 */ sw $t7, 4($v1) +/* 02079C 7001FB9C AC6E0000 */ sw $t6, ($v1) +/* 0207A0 7001FBA0 10000010 */ b .L7001FBE4 +/* 0207A4 7001FBA4 26100008 */ addiu $s0, $s0, 8 +.L7001FBA8: +/* 0207A8 7001FBA8 3C180800 */ lui $t8, 0x800 +/* 0207AC 7001FBAC AD180000 */ sw $t8, ($t0) +/* 0207B0 7001FBB0 000D7400 */ sll $t6, $t5, 0x10 +/* 0207B4 7001FBB4 30CFFFFF */ andi $t7, $a2, 0xffff +/* 0207B8 7001FBB8 01CFC025 */ or $t8, $t6, $t7 +/* 0207BC 7001FBBC AD180004 */ sw $t8, 4($t0) +/* 0207C0 7001FBC0 02001825 */ move $v1, $s0 +/* 0207C4 7001FBC4 3C190600 */ lui $t9, 0x600 +/* 0207C8 7001FBC8 AC790000 */ sw $t9, ($v1) +/* 0207CC 7001FBCC AFA30030 */ sw $v1, 0x30($sp) +/* 0207D0 7001FBD0 26100008 */ addiu $s0, $s0, 8 +/* 0207D4 7001FBD4 0C003A2C */ jal osVirtualToPhysical +/* 0207D8 7001FBD8 00A02025 */ move $a0, $a1 +/* 0207DC 7001FBDC 8FA30030 */ lw $v1, 0x30($sp) +/* 0207E0 7001FBE0 AC620004 */ sw $v0, 4($v1) +.L7001FBE4: +/* 0207E4 7001FBE4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0207E8 7001FBE8 02001025 */ move $v0, $s0 +/* 0207EC 7001FBEC 8FB00018 */ lw $s0, 0x18($sp) +/* 0207F0 7001FBF0 03E00008 */ jr $ra +/* 0207F4 7001FBF4 27BD0060 */ addiu $sp, $sp, 0x60 + +glabel _loadBuffer +/* 0207F8 7001FBF8 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0207FC 7001FBFC AFBF001C */ sw $ra, 0x1c($sp) +/* 020800 7001FC00 AFB00018 */ sw $s0, 0x18($sp) +/* 020804 7001FC04 8C83001C */ lw $v1, 0x1c($a0) +/* 020808 7001FC08 8C820014 */ lw $v0, 0x14($a0) +/* 02080C 7001FC0C 8FA80070 */ lw $t0, 0x70($sp) +/* 020810 7001FC10 00037040 */ sll $t6, $v1, 1 +/* 020814 7001FC14 00A2082B */ sltu $at, $a1, $v0 +/* 020818 7001FC18 00805025 */ move $t2, $a0 +/* 02081C 7001FC1C 00C06825 */ move $t5, $a2 +/* 020820 7001FC20 00E05825 */ move $t3, $a3 +/* 020824 7001FC24 10200002 */ beqz $at, .L7001FC30 +/* 020828 7001FC28 004E4821 */ addu $t1, $v0, $t6 +/* 02082C 7001FC2C 00AE2821 */ addu $a1, $a1, $t6 +.L7001FC30: +/* 020830 7001FC30 000B3040 */ sll $a2, $t3, 1 +/* 020834 7001FC34 00C53821 */ addu $a3, $a2, $a1 +/* 020838 7001FC38 0127082B */ sltu $at, $t1, $a3 +/* 02083C 7001FC3C 10200037 */ beqz $at, .L7001FD1C +/* 020840 7001FC40 25100008 */ addiu $s0, $t0, 8 +/* 020844 7001FC44 31AFFFFF */ andi $t7, $t5, 0xffff +/* 020848 7001FC48 3C010800 */ lui $at, 0x800 +/* 02084C 7001FC4C 01255823 */ subu $t3, $t1, $a1 +/* 020850 7001FC50 000BC843 */ sra $t9, $t3, 1 +/* 020854 7001FC54 01E1C025 */ or $t8, $t7, $at +/* 020858 7001FC58 00197040 */ sll $t6, $t9, 1 +/* 02085C 7001FC5C 31CFFFFF */ andi $t7, $t6, 0xffff +/* 020860 7001FC60 AD180000 */ sw $t8, ($t0) +/* 020864 7001FC64 25100008 */ addiu $s0, $t0, 8 +/* 020868 7001FC68 AD0F0004 */ sw $t7, 4($t0) +/* 02086C 7001FC6C 02006025 */ move $t4, $s0 +/* 020870 7001FC70 3C180400 */ lui $t8, 0x400 +/* 020874 7001FC74 AD980000 */ sw $t8, ($t4) +/* 020878 7001FC78 AFAD0068 */ sw $t5, 0x68($sp) +/* 02087C 7001FC7C AFAC0044 */ sw $t4, 0x44($sp) +/* 020880 7001FC80 AFAE0024 */ sw $t6, 0x24($sp) +/* 020884 7001FC84 AFAA0060 */ sw $t2, 0x60($sp) +/* 020888 7001FC88 AFA9004C */ sw $t1, 0x4c($sp) +/* 02088C 7001FC8C AFA70028 */ sw $a3, 0x28($sp) +/* 020890 7001FC90 AFA6002C */ sw $a2, 0x2c($sp) +/* 020894 7001FC94 26100008 */ addiu $s0, $s0, 8 +/* 020898 7001FC98 0C003A2C */ jal osVirtualToPhysical +/* 02089C 7001FC9C 00A02025 */ move $a0, $a1 +/* 0208A0 7001FCA0 8FAB0024 */ lw $t3, 0x24($sp) +/* 0208A4 7001FCA4 8FAD0068 */ lw $t5, 0x68($sp) +/* 0208A8 7001FCA8 8FA70028 */ lw $a3, 0x28($sp) +/* 0208AC 7001FCAC 8FA9004C */ lw $t1, 0x4c($sp) +/* 0208B0 7001FCB0 8FAC0044 */ lw $t4, 0x44($sp) +/* 0208B4 7001FCB4 016DC821 */ addu $t9, $t3, $t5 +/* 0208B8 7001FCB8 332EFFFF */ andi $t6, $t9, 0xffff +/* 0208BC 7001FCBC 3C010800 */ lui $at, 0x800 +/* 0208C0 7001FCC0 8FAA0060 */ lw $t2, 0x60($sp) +/* 0208C4 7001FCC4 01C17825 */ or $t7, $t6, $at +/* 0208C8 7001FCC8 00E9C023 */ subu $t8, $a3, $t1 +/* 0208CC 7001FCCC 0018C843 */ sra $t9, $t8, 1 +/* 0208D0 7001FCD0 02001825 */ move $v1, $s0 +/* 0208D4 7001FCD4 AD820004 */ sw $v0, 4($t4) +/* 0208D8 7001FCD8 AC6F0000 */ sw $t7, ($v1) +/* 0208DC 7001FCDC 00197040 */ sll $t6, $t9, 1 +/* 0208E0 7001FCE0 31CFFFFF */ andi $t7, $t6, 0xffff +/* 0208E4 7001FCE4 26100008 */ addiu $s0, $s0, 8 +/* 0208E8 7001FCE8 AC6F0004 */ sw $t7, 4($v1) +/* 0208EC 7001FCEC 02002825 */ move $a1, $s0 +/* 0208F0 7001FCF0 3C180400 */ lui $t8, 0x400 +/* 0208F4 7001FCF4 ACB80000 */ sw $t8, ($a1) +/* 0208F8 7001FCF8 8D440014 */ lw $a0, 0x14($t2) +/* 0208FC 7001FCFC AFA5003C */ sw $a1, 0x3c($sp) +/* 020900 7001FD00 0C003A2C */ jal osVirtualToPhysical +/* 020904 7001FD04 26100008 */ addiu $s0, $s0, 8 +/* 020908 7001FD08 8FA5003C */ lw $a1, 0x3c($sp) +/* 02090C 7001FD0C 8FA6002C */ lw $a2, 0x2c($sp) +/* 020910 7001FD10 ACA20004 */ sw $v0, 4($a1) +/* 020914 7001FD14 10000012 */ b .L7001FD60 +/* 020918 7001FD18 30C7FFFF */ andi $a3, $a2, 0xffff +.L7001FD1C: +/* 02091C 7001FD1C 31B9FFFF */ andi $t9, $t5, 0xffff +/* 020920 7001FD20 3C010800 */ lui $at, 0x800 +/* 020924 7001FD24 03217025 */ or $t6, $t9, $at +/* 020928 7001FD28 30C7FFFF */ andi $a3, $a2, 0xffff +/* 02092C 7001FD2C AD070004 */ sw $a3, 4($t0) +/* 020930 7001FD30 AD0E0000 */ sw $t6, ($t0) +/* 020934 7001FD34 02001825 */ move $v1, $s0 +/* 020938 7001FD38 3C0F0400 */ lui $t7, 0x400 +/* 02093C 7001FD3C AC6F0000 */ sw $t7, ($v1) +/* 020940 7001FD40 AFA70028 */ sw $a3, 0x28($sp) +/* 020944 7001FD44 AFA30034 */ sw $v1, 0x34($sp) +/* 020948 7001FD48 26100008 */ addiu $s0, $s0, 8 +/* 02094C 7001FD4C 0C003A2C */ jal osVirtualToPhysical +/* 020950 7001FD50 00A02025 */ move $a0, $a1 +/* 020954 7001FD54 8FA30034 */ lw $v1, 0x34($sp) +/* 020958 7001FD58 8FA70028 */ lw $a3, 0x28($sp) +/* 02095C 7001FD5C AC620004 */ sw $v0, 4($v1) +.L7001FD60: +/* 020960 7001FD60 02001825 */ move $v1, $s0 +/* 020964 7001FD64 3C180800 */ lui $t8, 0x800 +/* 020968 7001FD68 AC780000 */ sw $t8, ($v1) +/* 02096C 7001FD6C AC670004 */ sw $a3, 4($v1) +/* 020970 7001FD70 8FBF001C */ lw $ra, 0x1c($sp) +/* 020974 7001FD74 26020008 */ addiu $v0, $s0, 8 +/* 020978 7001FD78 8FB00018 */ lw $s0, 0x18($sp) +/* 02097C 7001FD7C 03E00008 */ jr $ra +/* 020980 7001FD80 27BD0060 */ addiu $sp, $sp, 0x60 + +glabel _loadOutputBuffer +/* 020984 7001FD84 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 020988 7001FD88 AFBF0024 */ sw $ra, 0x24($sp) +/* 02098C 7001FD8C AFB10020 */ sw $s1, 0x20($sp) +/* 020990 7001FD90 AFB0001C */ sw $s0, 0x1c($sp) +/* 020994 7001FD94 AFA60068 */ sw $a2, 0x68($sp) +/* 020998 7001FD98 8CAE0024 */ lw $t6, 0x24($a1) +/* 02099C 7001FD9C 00A08025 */ move $s0, $a1 +/* 0209A0 7001FDA0 00E08825 */ move $s1, $a3 +/* 0209A4 7001FDA4 11C0006E */ beqz $t6, .L7001FF60 +/* 0209A8 7001FDA8 00805025 */ move $t2, $a0 +/* 0209AC 7001FDAC 8CAF0004 */ lw $t7, 4($a1) +/* 0209B0 7001FDB0 8CB80000 */ lw $t8, ($a1) +/* 0209B4 7001FDB4 00A02025 */ move $a0, $a1 +/* 0209B8 7001FDB8 00E02825 */ move $a1, $a3 +/* 0209BC 7001FDBC 01F8C823 */ subu $t9, $t7, $t8 +/* 0209C0 7001FDC0 AFB90038 */ sw $t9, 0x38($sp) +/* 0209C4 7001FDC4 0C007E44 */ jal _doModFunc +/* 0209C8 7001FDC8 AFAA0060 */ sw $t2, 0x60($sp) +/* 0209CC 7001FDCC 8FAC0038 */ lw $t4, 0x38($sp) +/* 0209D0 7001FDD0 3C014700 */ li $at, 0x47000000 # 32768.000000 +/* 0209D4 7001FDD4 44817000 */ mtc1 $at, $f14 +/* 0209D8 7001FDD8 448C3000 */ mtc1 $t4, $f6 +/* 0209DC 7001FDDC 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 0209E0 7001FDE0 44812800 */ mtc1 $at, $f5 +/* 0209E4 7001FDE4 46803220 */ cvt.s.w $f8, $f6 +/* 0209E8 7001FDE8 44802000 */ mtc1 $zero, $f4 +/* 0209EC 7001FDEC 8FA40060 */ lw $a0, 0x60($sp) +/* 0209F0 7001FDF0 24060280 */ li $a2, 640 +/* 0209F4 7001FDF4 46080283 */ div.s $f10, $f0, $f8 +/* 0209F8 7001FDF8 460E5402 */ mul.s $f16, $f10, $f14 +/* 0209FC 7001FDFC 4600848D */ trunc.w.s $f18, $f16 +/* 020A00 7001FE00 440E9000 */ mfc1 $t6, $f18 +/* 020A04 7001FE04 00000000 */ nop +/* 020A08 7001FE08 448E3000 */ mtc1 $t6, $f6 +/* 020A0C 7001FE0C 00000000 */ nop +/* 020A10 7001FE10 46803220 */ cvt.s.w $f8, $f6 +/* 020A14 7001FE14 460E4283 */ div.s $f10, $f8, $f14 +/* 020A18 7001FE18 44914000 */ mtc1 $s1, $f8 +/* 020A1C 7001FE1C 46005421 */ cvt.d.s $f16, $f10 +/* 020A20 7001FE20 468042A0 */ cvt.s.w $f10, $f8 +/* 020A24 7001FE24 46302481 */ sub.d $f18, $f4, $f16 +/* 020A28 7001FE28 462090A0 */ cvt.s.d $f2, $f18 +/* 020A2C 7001FE2C 460A1102 */ mul.s $f4, $f2, $f10 +/* 020A30 7001FE30 E7A20044 */ swc1 $f2, 0x44($sp) +/* 020A34 7001FE34 8E020024 */ lw $v0, 0x24($s0) +/* 020A38 7001FE38 C4460020 */ lwc1 $f6, 0x20($v0) +/* 020A3C 7001FE3C 46043300 */ add.s $f12, $f6, $f4 +/* 020A40 7001FE40 4600640D */ trunc.w.s $f16, $f12 +/* 020A44 7001FE44 44098000 */ mfc1 $t1, $f16 +/* 020A48 7001FE48 00000000 */ nop +/* 020A4C 7001FE4C 44899000 */ mtc1 $t1, $f18 +/* 020A50 7001FE50 00000000 */ nop +/* 020A54 7001FE54 46809220 */ cvt.s.w $f8, $f18 +/* 020A58 7001FE58 46086281 */ sub.s $f10, $f12, $f8 +/* 020A5C 7001FE5C E44A0020 */ swc1 $f10, 0x20($v0) +/* 020A60 7001FE60 8E190018 */ lw $t9, 0x18($s0) +/* 020A64 7001FE64 8E180004 */ lw $t8, 4($s0) +/* 020A68 7001FE68 8C8F0018 */ lw $t7, 0x18($a0) +/* 020A6C 7001FE6C AFA9002C */ sw $t1, 0x2c($sp) +/* 020A70 7001FE70 03196023 */ subu $t4, $t8, $t9 +/* 020A74 7001FE74 000C6823 */ negu $t5, $t4 +/* 020A78 7001FE78 000D7040 */ sll $t6, $t5, 1 +/* 020A7C 7001FE7C 01EE4021 */ addu $t0, $t7, $t6 +/* 020A80 7001FE80 31030007 */ andi $v1, $t0, 7 +/* 020A84 7001FE84 8FB90070 */ lw $t9, 0x70($sp) +/* 020A88 7001FE88 0003C043 */ sra $t8, $v1, 1 +/* 020A8C 7001FE8C 00185840 */ sll $t3, $t8, 1 +/* 020A90 7001FE90 010B2823 */ subu $a1, $t0, $t3 +/* 020A94 7001FE94 AFAB0028 */ sw $t3, 0x28($sp) +/* 020A98 7001FE98 03001825 */ move $v1, $t8 +/* 020A9C 7001FE9C 01383821 */ addu $a3, $t1, $t8 +/* 020AA0 7001FEA0 0C007EFE */ jal _loadBuffer +/* 020AA4 7001FEA4 AFB90010 */ sw $t9, 0x10($sp) +/* 020AA8 7001FEA8 8FAB0028 */ lw $t3, 0x28($sp) +/* 020AAC 7001FEAC 3C010800 */ lui $at, 0x800 +/* 020AB0 7001FEB0 244E0008 */ addiu $t6, $v0, 8 +/* 020AB4 7001FEB4 256C0280 */ addiu $t4, $t3, 0x280 +/* 020AB8 7001FEB8 318DFFFF */ andi $t5, $t4, 0xffff +/* 020ABC 7001FEBC 01A17825 */ or $t7, $t5, $at +/* 020AC0 7001FEC0 AC4F0000 */ sw $t7, ($v0) +/* 020AC4 7001FEC4 8FB80068 */ lw $t8, 0x68($sp) +/* 020AC8 7001FEC8 00116040 */ sll $t4, $s1, 1 +/* 020ACC 7001FECC 318DFFFF */ andi $t5, $t4, 0xffff +/* 020AD0 7001FED0 0018CC00 */ sll $t9, $t8, 0x10 +/* 020AD4 7001FED4 032D7825 */ or $t7, $t9, $t5 +/* 020AD8 7001FED8 AC4F0004 */ sw $t7, 4($v0) +/* 020ADC 7001FEDC 3C014700 */ li $at, 0x47000000 # 32768.000000 +/* 020AE0 7001FEE0 44812000 */ mtc1 $at, $f4 +/* 020AE4 7001FEE4 C7A60044 */ lwc1 $f6, 0x44($sp) +/* 020AE8 7001FEE8 AFAE0030 */ sw $t6, 0x30($sp) +/* 020AEC 7001FEEC 8E0D0024 */ lw $t5, 0x24($s0) +/* 020AF0 7001FEF0 46043402 */ mul.s $f16, $f6, $f4 +/* 020AF4 7001FEF4 3C010500 */ lui $at, 0x500 +/* 020AF8 7001FEF8 8DAF0024 */ lw $t7, 0x24($t5) +/* 020AFC 7001FEFC 24430010 */ addiu $v1, $v0, 0x10 +/* 020B00 7001FF00 31EE00FF */ andi $t6, $t7, 0xff +/* 020B04 7001FF04 000EC400 */ sll $t8, $t6, 0x10 +/* 020B08 7001FF08 4600848D */ trunc.w.s $f18, $f16 +/* 020B0C 7001FF0C 440C9000 */ mfc1 $t4, $f18 +/* 020B10 7001FF10 00000000 */ nop +/* 020B14 7001FF14 3199FFFF */ andi $t9, $t4, 0xffff +/* 020B18 7001FF18 03016025 */ or $t4, $t8, $at +/* 020B1C 7001FF1C 01996825 */ or $t5, $t4, $t9 +/* 020B20 7001FF20 AC4D0008 */ sw $t5, 8($v0) +/* 020B24 7001FF24 8E0F0024 */ lw $t7, 0x24($s0) +/* 020B28 7001FF28 8DE40014 */ lw $a0, 0x14($t7) +/* 020B2C 7001FF2C 0C003A2C */ jal osVirtualToPhysical +/* 020B30 7001FF30 AFA3005C */ sw $v1, 0x5c($sp) +/* 020B34 7001FF34 8FAE0030 */ lw $t6, 0x30($sp) +/* 020B38 7001FF38 8FA9002C */ lw $t1, 0x2c($sp) +/* 020B3C 7001FF3C 8FA3005C */ lw $v1, 0x5c($sp) +/* 020B40 7001FF40 ADC20004 */ sw $v0, 4($t6) +/* 020B44 7001FF44 8E180024 */ lw $t8, 0x24($s0) +/* 020B48 7001FF48 AF000024 */ sw $zero, 0x24($t8) +/* 020B4C 7001FF4C 8E0C0018 */ lw $t4, 0x18($s0) +/* 020B50 7001FF50 0189C821 */ addu $t9, $t4, $t1 +/* 020B54 7001FF54 03316823 */ subu $t5, $t9, $s1 +/* 020B58 7001FF58 1000000D */ b .L7001FF90 +/* 020B5C 7001FF5C AE0D0018 */ sw $t5, 0x18($s0) +.L7001FF60: +/* 020B60 7001FF60 8E0E0004 */ lw $t6, 4($s0) +/* 020B64 7001FF64 8D4F0018 */ lw $t7, 0x18($t2) +/* 020B68 7001FF68 8FB90070 */ lw $t9, 0x70($sp) +/* 020B6C 7001FF6C 000EC023 */ negu $t8, $t6 +/* 020B70 7001FF70 00186040 */ sll $t4, $t8, 1 +/* 020B74 7001FF74 01402025 */ move $a0, $t2 +/* 020B78 7001FF78 8FA60068 */ lw $a2, 0x68($sp) +/* 020B7C 7001FF7C 02203825 */ move $a3, $s1 +/* 020B80 7001FF80 01EC2821 */ addu $a1, $t7, $t4 +/* 020B84 7001FF84 0C007EFE */ jal _loadBuffer +/* 020B88 7001FF88 AFB90010 */ sw $t9, 0x10($sp) +/* 020B8C 7001FF8C 00401825 */ move $v1, $v0 +.L7001FF90: +/* 020B90 7001FF90 8FBF0024 */ lw $ra, 0x24($sp) +/* 020B94 7001FF94 8FB0001C */ lw $s0, 0x1c($sp) +/* 020B98 7001FF98 8FB10020 */ lw $s1, 0x20($sp) +/* 020B9C 7001FF9C 27BD0060 */ addiu $sp, $sp, 0x60 +/* 020BA0 7001FFA0 03E00008 */ jr $ra +/* 020BA4 7001FFA4 00601025 */ move $v0, $v1 + +glabel alFxParamHdl +/* 020BA8 7001FFA8 24A2FFFE */ addiu $v0, $a1, -2 +/* 020BAC 7001FFAC 304E0007 */ andi $t6, $v0, 7 +/* 020BB0 7001FFB0 2DC10008 */ sltiu $at, $t6, 8 +/* 020BB4 7001FFB4 10200080 */ beqz $at, .L700201B8 +/* 020BB8 7001FFB8 8CC30000 */ lw $v1, ($a2) +/* 020BBC 7001FFBC 000E7080 */ sll $t6, $t6, 2 +/* 020BC0 7001FFC0 3C018003 */ lui $at, %hi(jpt_80029D10) +/* 020BC4 7001FFC4 002E0821 */ addu $at, $at, $t6 +/* 020BC8 7001FFC8 8C2E9D10 */ lw $t6, %lo(jpt_80029D10)($at) +/* 020BCC 7001FFCC 01C00008 */ jr $t6 +/* 020BD0 7001FFD0 00000000 */ nop +.L7001FFD4: +/* 020BD4 7001FFD4 8C8F0020 */ lw $t7, 0x20($a0) +/* 020BD8 7001FFD8 04410003 */ bgez $v0, .L7001FFE8 +/* 020BDC 7001FFDC 0002C0C3 */ sra $t8, $v0, 3 +/* 020BE0 7001FFE0 24410007 */ addiu $at, $v0, 7 +/* 020BE4 7001FFE4 0001C0C3 */ sra $t8, $at, 3 +.L7001FFE8: +/* 020BE8 7001FFE8 0018C880 */ sll $t9, $t8, 2 +/* 020BEC 7001FFEC 0338C821 */ addu $t9, $t9, $t8 +/* 020BF0 7001FFF0 0019C8C0 */ sll $t9, $t9, 3 +/* 020BF4 7001FFF4 01F94021 */ addu $t0, $t7, $t9 +/* 020BF8 7001FFF8 AD030000 */ sw $v1, ($t0) +/* 020BFC 7001FFFC 03E00008 */ jr $ra +/* 020C00 70020000 00001025 */ move $v0, $zero +.L70020004: +/* 020C04 70020004 8C890020 */ lw $t1, 0x20($a0) +/* 020C08 70020008 04410003 */ bgez $v0, .L70020018 +/* 020C0C 7002000C 000250C3 */ sra $t2, $v0, 3 +/* 020C10 70020010 24410007 */ addiu $at, $v0, 7 +/* 020C14 70020014 000150C3 */ sra $t2, $at, 3 +.L70020018: +/* 020C18 70020018 000A5880 */ sll $t3, $t2, 2 +/* 020C1C 7002001C 016A5821 */ addu $t3, $t3, $t2 +/* 020C20 70020020 000B58C0 */ sll $t3, $t3, 3 +/* 020C24 70020024 012B6021 */ addu $t4, $t1, $t3 +/* 020C28 70020028 AD830004 */ sw $v1, 4($t4) +/* 020C2C 7002002C 03E00008 */ jr $ra +/* 020C30 70020030 00001025 */ move $v0, $zero +.L70020034: +/* 020C34 70020034 8C8D0020 */ lw $t5, 0x20($a0) +/* 020C38 70020038 04410003 */ bgez $v0, .L70020048 +/* 020C3C 7002003C 000270C3 */ sra $t6, $v0, 3 +/* 020C40 70020040 24410007 */ addiu $at, $v0, 7 +/* 020C44 70020044 000170C3 */ sra $t6, $at, 3 +.L70020048: +/* 020C48 70020048 000EC080 */ sll $t8, $t6, 2 +/* 020C4C 7002004C 030EC021 */ addu $t8, $t8, $t6 +/* 020C50 70020050 0018C0C0 */ sll $t8, $t8, 3 +/* 020C54 70020054 01B87821 */ addu $t7, $t5, $t8 +/* 020C58 70020058 A5E30008 */ sh $v1, 8($t7) +/* 020C5C 7002005C 03E00008 */ jr $ra +/* 020C60 70020060 00001025 */ move $v0, $zero +.L70020064: +/* 020C64 70020064 8C990020 */ lw $t9, 0x20($a0) +/* 020C68 70020068 04410003 */ bgez $v0, .L70020078 +/* 020C6C 7002006C 000240C3 */ sra $t0, $v0, 3 +/* 020C70 70020070 24410007 */ addiu $at, $v0, 7 +/* 020C74 70020074 000140C3 */ sra $t0, $at, 3 +.L70020078: +/* 020C78 70020078 00085080 */ sll $t2, $t0, 2 +/* 020C7C 7002007C 01485021 */ addu $t2, $t2, $t0 +/* 020C80 70020080 000A50C0 */ sll $t2, $t2, 3 +/* 020C84 70020084 032A4821 */ addu $t1, $t9, $t2 +/* 020C88 70020088 A523000A */ sh $v1, 0xa($t1) +/* 020C8C 7002008C 03E00008 */ jr $ra +/* 020C90 70020090 00001025 */ move $v0, $zero +.L70020094: +/* 020C94 70020094 8C8B0020 */ lw $t3, 0x20($a0) +/* 020C98 70020098 04410003 */ bgez $v0, .L700200A8 +/* 020C9C 7002009C 000260C3 */ sra $t4, $v0, 3 +/* 020CA0 700200A0 24410007 */ addiu $at, $v0, 7 +/* 020CA4 700200A4 000160C3 */ sra $t4, $at, 3 +.L700200A8: +/* 020CA8 700200A8 000C7080 */ sll $t6, $t4, 2 +/* 020CAC 700200AC 01CC7021 */ addu $t6, $t6, $t4 +/* 020CB0 700200B0 000E70C0 */ sll $t6, $t6, 3 +/* 020CB4 700200B4 016E6821 */ addu $t5, $t3, $t6 +/* 020CB8 700200B8 A5A3000C */ sh $v1, 0xc($t5) +/* 020CBC 700200BC 03E00008 */ jr $ra +/* 020CC0 700200C0 00001025 */ move $v0, $zero +.L700200C4: +/* 020CC4 700200C4 44832000 */ mtc1 $v1, $f4 +/* 020CC8 700200C8 3C018003 */ lui $at, %hi(F64_80029D30) +/* 020CCC 700200CC C4289D30 */ lwc1 $f8, %lo(F64_80029D30)($at) +/* 020CD0 700200D0 468021A0 */ cvt.s.w $f6, $f4 +/* 020CD4 700200D4 8C980020 */ lw $t8, 0x20($a0) +/* 020CD8 700200D8 46083283 */ div.s $f10, $f6, $f8 +/* 020CDC 700200DC 04410003 */ bgez $v0, .L700200EC +/* 020CE0 700200E0 000278C3 */ sra $t7, $v0, 3 +/* 020CE4 700200E4 24410007 */ addiu $at, $v0, 7 +/* 020CE8 700200E8 000178C3 */ sra $t7, $at, 3 +.L700200EC: +/* 020CEC 700200EC 000F4080 */ sll $t0, $t7, 2 +/* 020CF0 700200F0 010F4021 */ addu $t0, $t0, $t7 +/* 020CF4 700200F4 000840C0 */ sll $t0, $t0, 3 +/* 020CF8 700200F8 0308C821 */ addu $t9, $t8, $t0 +/* 020CFC 700200FC 00001025 */ move $v0, $zero +/* 020D00 70020100 03E00008 */ jr $ra +/* 020D04 70020104 E72A0010 */ swc1 $f10, 0x10($t9) +.L70020108: +/* 020D08 70020108 8C8A0020 */ lw $t2, 0x20($a0) +/* 020D0C 7002010C 04410003 */ bgez $v0, .L7002011C +/* 020D10 70020110 000248C3 */ sra $t1, $v0, 3 +/* 020D14 70020114 24410007 */ addiu $at, $v0, 7 +/* 020D18 70020118 000148C3 */ sra $t1, $at, 3 +.L7002011C: +/* 020D1C 7002011C 00096080 */ sll $t4, $t1, 2 +/* 020D20 70020120 01896021 */ addu $t4, $t4, $t1 +/* 020D24 70020124 000C60C0 */ sll $t4, $t4, 3 +/* 020D28 70020128 014C2821 */ addu $a1, $t2, $t4 +/* 020D2C 7002012C 8CAB0004 */ lw $t3, 4($a1) +/* 020D30 70020130 8CAE0000 */ lw $t6, ($a1) +/* 020D34 70020134 44833000 */ mtc1 $v1, $f6 +/* 020D38 70020138 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 020D3C 7002013C 016E6823 */ subu $t5, $t3, $t6 +/* 020D40 70020140 448D8000 */ mtc1 $t5, $f16 +/* 020D44 70020144 46803220 */ cvt.s.w $f8, $f6 +/* 020D48 70020148 05A10005 */ bgez $t5, .L70020160 +/* 020D4C 7002014C 468084A1 */ cvt.d.w $f18, $f16 +/* 020D50 70020150 44812800 */ mtc1 $at, $f5 +/* 020D54 70020154 44802000 */ mtc1 $zero, $f4 +/* 020D58 70020158 00000000 */ nop +/* 020D5C 7002015C 46249480 */ add.d $f18, $f18, $f4 +.L70020160: +/* 020D60 70020160 3C018003 */ lui $at, %hi(F64_80029D38) +/* 020D64 70020164 D4309D38 */ ldc1 $f16, %lo(F64_80029D38)($at) +/* 020D68 70020168 460042A1 */ cvt.d.s $f10, $f8 +/* 020D6C 7002016C 00001025 */ move $v0, $zero +/* 020D70 70020170 46305103 */ div.d $f4, $f10, $f16 +/* 020D74 70020174 46249182 */ mul.d $f6, $f18, $f4 +/* 020D78 70020178 46203220 */ cvt.s.d $f8, $f6 +/* 020D7C 7002017C 03E00008 */ jr $ra +/* 020D80 70020180 E4A8001C */ swc1 $f8, 0x1c($a1) +.L70020184: +/* 020D84 70020184 8C8F0020 */ lw $t7, 0x20($a0) +/* 020D88 70020188 04410003 */ bgez $v0, .L70020198 +/* 020D8C 7002018C 0002C0C3 */ sra $t8, $v0, 3 +/* 020D90 70020190 24410007 */ addiu $at, $v0, 7 +/* 020D94 70020194 0001C0C3 */ sra $t8, $at, 3 +.L70020198: +/* 020D98 70020198 00184080 */ sll $t0, $t8, 2 +/* 020D9C 7002019C 01184021 */ addu $t0, $t0, $t8 +/* 020DA0 700201A0 000840C0 */ sll $t0, $t0, 3 +/* 020DA4 700201A4 01E8C821 */ addu $t9, $t7, $t0 +/* 020DA8 700201A8 8F250020 */ lw $a1, 0x20($t9) +/* 020DAC 700201AC 10A00002 */ beqz $a1, .L700201B8 +/* 020DB0 700201B0 00000000 */ nop +/* 020DB4 700201B4 A4A30000 */ sh $v1, ($a1) +.L700201B8: +/* 020DB8 700201B8 03E00008 */ jr $ra +/* 020DBC 700201BC 00001025 */ move $v0, $zero + +glabel alFxParam +/* 020DC0 700201C0 24010001 */ li $at, 1 +/* 020DC4 700201C4 14A10002 */ bne $a1, $at, .L700201D0 +/* 020DC8 700201C8 00000000 */ nop +/* 020DCC 700201CC AC860000 */ sw $a2, ($a0) +.L700201D0: +/* 020DD0 700201D0 03E00008 */ jr $ra +/* 020DD4 700201D4 00001025 */ move $v0, $zero + +glabel alFxPull +/* 020DD8 700201D8 27BDFF58 */ addiu $sp, $sp, -0xa8 +/* 020DDC 700201DC AFB3002C */ sw $s3, 0x2c($sp) +/* 020DE0 700201E0 00809825 */ move $s3, $a0 +/* 020DE4 700201E4 AFBF0044 */ sw $ra, 0x44($sp) +/* 020DE8 700201E8 AFBE0040 */ sw $fp, 0x40($sp) +/* 020DEC 700201EC AFB7003C */ sw $s7, 0x3c($sp) +/* 020DF0 700201F0 AFB60038 */ sw $s6, 0x38($sp) +/* 020DF4 700201F4 AFB50034 */ sw $s5, 0x34($sp) +/* 020DF8 700201F8 AFB40030 */ sw $s4, 0x30($sp) +/* 020DFC 700201FC AFB20028 */ sw $s2, 0x28($sp) +/* 020E00 70020200 AFB10024 */ sw $s1, 0x24($sp) +/* 020E04 70020204 AFB00020 */ sw $s0, 0x20($sp) +/* 020E08 70020208 8C840000 */ lw $a0, ($a0) +/* 020E0C 7002020C 8FAE00B8 */ lw $t6, 0xb8($sp) +/* 020E10 70020210 AFA00080 */ sw $zero, 0x80($sp) +/* 020E14 70020214 00C0B025 */ move $s6, $a2 +/* 020E18 70020218 AFAE0010 */ sw $t6, 0x10($sp) +/* 020E1C 7002021C 8C990004 */ lw $t9, 4($a0) +/* 020E20 70020220 0320F809 */ jalr $t9 +/* 020E24 70020224 00000000 */ nop +/* 020E28 70020228 00168840 */ sll $s1, $s6, 1 +/* 020E2C 7002022C 3C180C00 */ lui $t8, (0x0C00DA83 >> 16) # lui $t8, 0xc00 +/* 020E30 70020230 3C0A06C0 */ lui $t2, (0x06C006C0 >> 16) # lui $t2, 0x6c0 +/* 020E34 70020234 3C0B0C00 */ lui $t3, (0x0C005A82 >> 16) # lui $t3, 0xc00 +/* 020E38 70020238 3C0C0800 */ lui $t4, (0x080006C0 >> 16) # lui $t4, 0x800 +/* 020E3C 7002023C 3229FFFF */ andi $t1, $s1, 0xffff +/* 020E40 70020240 3C0F0800 */ lui $t7, 0x800 +/* 020E44 70020244 354A06C0 */ ori $t2, (0x06C006C0 & 0xFFFF) # ori $t2, $t2, 0x6c0 +/* 020E48 70020248 3718DA83 */ ori $t8, (0x0C00DA83 & 0xFFFF) # ori $t8, $t8, 0xda83 +/* 020E4C 7002024C 358C06C0 */ ori $t4, (0x080006C0 & 0xFFFF) # ori $t4, $t4, 0x6c0 +/* 020E50 70020250 356B5A82 */ ori $t3, (0x0C005A82 & 0xFFFF) # ori $t3, $t3, 0x5a82 +/* 020E54 70020254 AC4F0000 */ sw $t7, ($v0) +/* 020E58 70020258 AC490004 */ sw $t1, 4($v0) +/* 020E5C 7002025C AC580008 */ sw $t8, 8($v0) +/* 020E60 70020260 AC4A000C */ sw $t2, 0xc($v0) +/* 020E64 70020264 AC4B0010 */ sw $t3, 0x10($v0) +/* 020E68 70020268 AC4C0014 */ sw $t4, 0x14($v0) +/* 020E6C 7002026C 8E650018 */ lw $a1, 0x18($s3) +/* 020E70 70020270 244D0018 */ addiu $t5, $v0, 0x18 +/* 020E74 70020274 0000A825 */ move $s5, $zero +/* 020E78 70020278 24120140 */ li $s2, 320 +/* 020E7C 7002027C AFAD0010 */ sw $t5, 0x10($sp) +/* 020E80 70020280 AFA90048 */ sw $t1, 0x48($sp) +/* 020E84 70020284 AFB10050 */ sw $s1, 0x50($sp) +/* 020E88 70020288 02602025 */ move $a0, $s3 +/* 020E8C 7002028C 240606C0 */ li $a2, 1728 +/* 020E90 70020290 0C007E9C */ jal _saveBuffer +/* 020E94 70020294 02C03825 */ move $a3, $s6 +/* 020E98 70020298 8FA30080 */ lw $v1, 0x80($sp) +/* 020E9C 7002029C 3C0E0200 */ lui $t6, (0x02000800 >> 16) # lui $t6, 0x200 +/* 020EA0 700202A0 35CE0800 */ ori $t6, (0x02000800 & 0xFFFF) # ori $t6, $t6, 0x800 +/* 020EA4 700202A4 AC4E0000 */ sw $t6, ($v0) +/* 020EA8 700202A8 AC510004 */ sw $s1, 4($v0) +/* 020EAC 700202AC 92790024 */ lbu $t9, 0x24($s3) +/* 020EB0 700202B0 24500008 */ addiu $s0, $v0, 8 +/* 020EB4 700202B4 0000B825 */ move $s7, $zero +/* 020EB8 700202B8 5B200077 */ blezl $t9, .L70020498 +/* 020EBC 700202BC 8E63001C */ lw $v1, 0x1c($s3) +/* 020EC0 700202C0 8E620018 */ lw $v0, 0x18($s3) +.L700202C4: +/* 020EC4 700202C4 8E6F0020 */ lw $t7, 0x20($s3) +/* 020EC8 700202C8 0017C080 */ sll $t8, $s7, 2 +/* 020ECC 700202CC 0317C021 */ addu $t8, $t8, $s7 +/* 020ED0 700202D0 0018C0C0 */ sll $t8, $t8, 3 +/* 020ED4 700202D4 01F88821 */ addu $s1, $t7, $t8 +/* 020ED8 700202D8 8E2A0000 */ lw $t2, ($s1) +/* 020EDC 700202DC 8E2D0004 */ lw $t5, 4($s1) +/* 020EE0 700202E0 02602025 */ move $a0, $s3 +/* 020EE4 700202E4 000A5823 */ negu $t3, $t2 +/* 020EE8 700202E8 000B6040 */ sll $t4, $t3, 1 +/* 020EEC 700202EC 000D7023 */ negu $t6, $t5 +/* 020EF0 700202F0 004CA021 */ addu $s4, $v0, $t4 +/* 020EF4 700202F4 000EC840 */ sll $t9, $t6, 1 +/* 020EF8 700202F8 16830009 */ bne $s4, $v1, .L70020320 +/* 020EFC 700202FC 0059F021 */ addu $fp, $v0, $t9 +/* 020F00 70020300 02407825 */ move $t7, $s2 +/* 020F04 70020304 00159400 */ sll $s2, $s5, 0x10 +/* 020F08 70020308 000FAC00 */ sll $s5, $t7, 0x10 +/* 020F0C 7002030C 00155403 */ sra $t2, $s5, 0x10 +/* 020F10 70020310 0012C403 */ sra $t8, $s2, 0x10 +/* 020F14 70020314 03009025 */ move $s2, $t8 +/* 020F18 70020318 10000007 */ b .L70020338 +/* 020F1C 7002031C 0140A825 */ move $s5, $t2 +.L70020320: +/* 020F20 70020320 02802825 */ move $a1, $s4 +/* 020F24 70020324 02A03025 */ move $a2, $s5 +/* 020F28 70020328 02C03825 */ move $a3, $s6 +/* 020F2C 7002032C 0C007EFE */ jal _loadBuffer +/* 020F30 70020330 AFB00010 */ sw $s0, 0x10($sp) +/* 020F34 70020334 00408025 */ move $s0, $v0 +.L70020338: +/* 020F38 70020338 02602025 */ move $a0, $s3 +/* 020F3C 7002033C 02202825 */ move $a1, $s1 +/* 020F40 70020340 02403025 */ move $a2, $s2 +/* 020F44 70020344 02C03825 */ move $a3, $s6 +/* 020F48 70020348 0C007F61 */ jal _loadOutputBuffer +/* 020F4C 7002034C AFB00010 */ sw $s0, 0x10($sp) +/* 020F50 70020350 86240008 */ lh $a0, 8($s1) +/* 020F54 70020354 00408025 */ move $s0, $v0 +/* 020F58 70020358 3C010C00 */ lui $at, 0xc00 +/* 020F5C 7002035C 10800014 */ beqz $a0, .L700203B0 +/* 020F60 70020360 308CFFFF */ andi $t4, $a0, 0xffff +/* 020F64 70020364 0015CC00 */ sll $t9, $s5, 0x10 +/* 020F68 70020368 324FFFFF */ andi $t7, $s2, 0xffff +/* 020F6C 7002036C 032FC025 */ or $t8, $t9, $t7 +/* 020F70 70020370 01816825 */ or $t5, $t4, $at +/* 020F74 70020374 AC4D0000 */ sw $t5, ($v0) +/* 020F78 70020378 AC580004 */ sw $t8, 4($v0) +/* 020F7C 7002037C 8E2A0024 */ lw $t2, 0x24($s1) +/* 020F80 70020380 24500008 */ addiu $s0, $v0, 8 +/* 020F84 70020384 5540000B */ bnezl $t2, .L700203B4 +/* 020F88 70020388 8623000A */ lh $v1, 0xa($s1) +/* 020F8C 7002038C 8E2B0020 */ lw $t3, 0x20($s1) +/* 020F90 70020390 02602025 */ move $a0, $s3 +/* 020F94 70020394 03C02825 */ move $a1, $fp +/* 020F98 70020398 15600005 */ bnez $t3, .L700203B0 +/* 020F9C 7002039C 02403025 */ move $a2, $s2 +/* 020FA0 700203A0 02C03825 */ move $a3, $s6 +/* 020FA4 700203A4 0C007E9C */ jal _saveBuffer +/* 020FA8 700203A8 AFB00010 */ sw $s0, 0x10($sp) +/* 020FAC 700203AC 00408025 */ move $s0, $v0 +.L700203B0: +/* 020FB0 700203B0 8623000A */ lh $v1, 0xa($s1) +.L700203B4: +/* 020FB4 700203B4 02001025 */ move $v0, $s0 +/* 020FB8 700203B8 3C010C00 */ lui $at, 0xc00 +/* 020FBC 700203BC 1060000F */ beqz $v1, .L700203FC +/* 020FC0 700203C0 306DFFFF */ andi $t5, $v1, 0xffff +/* 020FC4 700203C4 00127C00 */ sll $t7, $s2, 0x10 +/* 020FC8 700203C8 32B8FFFF */ andi $t8, $s5, 0xffff +/* 020FCC 700203CC 01F85025 */ or $t2, $t7, $t8 +/* 020FD0 700203D0 01A17025 */ or $t6, $t5, $at +/* 020FD4 700203D4 AC4E0000 */ sw $t6, ($v0) +/* 020FD8 700203D8 AC4A0004 */ sw $t2, 4($v0) +/* 020FDC 700203DC 26100008 */ addiu $s0, $s0, 8 +/* 020FE0 700203E0 AFB00010 */ sw $s0, 0x10($sp) +/* 020FE4 700203E4 02602025 */ move $a0, $s3 +/* 020FE8 700203E8 02802825 */ move $a1, $s4 +/* 020FEC 700203EC 02A03025 */ move $a2, $s5 +/* 020FF0 700203F0 0C007E9C */ jal _saveBuffer +/* 020FF4 700203F4 02C03825 */ move $a3, $s6 +/* 020FF8 700203F8 00408025 */ move $s0, $v0 +.L700203FC: +/* 020FFC 700203FC 8E240020 */ lw $a0, 0x20($s1) +/* 021000 70020400 02402825 */ move $a1, $s2 +/* 021004 70020404 02C03025 */ move $a2, $s6 +/* 021008 70020408 50800005 */ beql $a0, $zero, .L70020420 +/* 02100C 7002040C 8E2B0024 */ lw $t3, 0x24($s1) +/* 021010 70020410 0C007E6E */ jal _filterBuffer +/* 021014 70020414 02003825 */ move $a3, $s0 +/* 021018 70020418 00408025 */ move $s0, $v0 +/* 02101C 7002041C 8E2B0024 */ lw $t3, 0x24($s1) +.L70020420: +/* 021020 70020420 02602025 */ move $a0, $s3 +/* 021024 70020424 03C02825 */ move $a1, $fp +/* 021028 70020428 15600005 */ bnez $t3, .L70020440 +/* 02102C 7002042C 02403025 */ move $a2, $s2 +/* 021030 70020430 02C03825 */ move $a3, $s6 +/* 021034 70020434 0C007E9C */ jal _saveBuffer +/* 021038 70020438 AFB00010 */ sw $s0, 0x10($sp) +/* 02103C 7002043C 00408025 */ move $s0, $v0 +.L70020440: +/* 021040 70020440 8623000C */ lh $v1, 0xc($s1) +/* 021044 70020444 26F70001 */ addiu $s7, $s7, 1 +/* 021048 70020448 00176400 */ sll $t4, $s7, 0x10 +/* 02104C 7002044C 1060000A */ beqz $v1, .L70020478 +/* 021050 70020450 000CBC03 */ sra $s7, $t4, 0x10 +/* 021054 70020454 02001025 */ move $v0, $s0 +/* 021058 70020458 306DFFFF */ andi $t5, $v1, 0xffff +/* 02105C 7002045C 3C010C00 */ lui $at, 0xc00 +/* 021060 70020460 00127C00 */ sll $t7, $s2, 0x10 +/* 021064 70020464 35F80800 */ ori $t8, $t7, 0x800 +/* 021068 70020468 01A17025 */ or $t6, $t5, $at +/* 02106C 7002046C AC4E0000 */ sw $t6, ($v0) +/* 021070 70020470 AC580004 */ sw $t8, 4($v0) +/* 021074 70020474 26100008 */ addiu $s0, $s0, 8 +.L70020478: +/* 021078 70020478 926E0024 */ lbu $t6, 0x24($s3) +/* 02107C 7002047C 8E2A0004 */ lw $t2, 4($s1) +/* 021080 70020480 8E620018 */ lw $v0, 0x18($s3) +/* 021084 70020484 02EE082A */ slt $at, $s7, $t6 +/* 021088 70020488 000A5840 */ sll $t3, $t2, 1 +/* 02108C 7002048C 1420FF8D */ bnez $at, .L700202C4 +/* 021090 70020490 004B1821 */ addu $v1, $v0, $t3 +/* 021094 70020494 8E63001C */ lw $v1, 0x1c($s3) +.L70020498: +/* 021098 70020498 8E790018 */ lw $t9, 0x18($s3) +/* 02109C 7002049C 8FAF0050 */ lw $t7, 0x50($sp) +/* 0210A0 700204A0 8E6B0014 */ lw $t3, 0x14($s3) +/* 0210A4 700204A4 00035040 */ sll $t2, $v1, 1 +/* 0210A8 700204A8 032FC021 */ addu $t8, $t9, $t7 +/* 0210AC 700204AC 016A6021 */ addu $t4, $t3, $t2 +/* 0210B0 700204B0 0198082B */ sltu $at, $t4, $t8 +/* 0210B4 700204B4 10200003 */ beqz $at, .L700204C4 +/* 0210B8 700204B8 AE780018 */ sw $t8, 0x18($s3) +/* 0210BC 700204BC 030A6823 */ subu $t5, $t8, $t2 +/* 0210C0 700204C0 AE6D0018 */ sw $t5, 0x18($s3) +.L700204C4: +/* 0210C4 700204C4 3C0E0A00 */ lui $t6, (0x0A000800 >> 16) # lui $t6, 0xa00 +/* 0210C8 700204C8 35CE0800 */ ori $t6, (0x0A000800 & 0xFFFF) # ori $t6, $t6, 0x800 +/* 0210CC 700204CC 02001825 */ move $v1, $s0 +/* 0210D0 700204D0 AC6E0000 */ sw $t6, ($v1) +/* 0210D4 700204D4 8FB90048 */ lw $t9, 0x48($sp) +/* 0210D8 700204D8 3C0106C0 */ lui $at, 0x6c0 +/* 0210DC 700204DC 26020008 */ addiu $v0, $s0, 8 +/* 0210E0 700204E0 03217825 */ or $t7, $t9, $at +/* 0210E4 700204E4 AC6F0004 */ sw $t7, 4($v1) +/* 0210E8 700204E8 8FBF0044 */ lw $ra, 0x44($sp) +/* 0210EC 700204EC 8FBE0040 */ lw $fp, 0x40($sp) +/* 0210F0 700204F0 8FB7003C */ lw $s7, 0x3c($sp) +/* 0210F4 700204F4 8FB60038 */ lw $s6, 0x38($sp) +/* 0210F8 700204F8 8FB50034 */ lw $s5, 0x34($sp) +/* 0210FC 700204FC 8FB40030 */ lw $s4, 0x30($sp) +/* 021100 70020500 8FB3002C */ lw $s3, 0x2c($sp) +/* 021104 70020504 8FB20028 */ lw $s2, 0x28($sp) +/* 021108 70020508 8FB10024 */ lw $s1, 0x24($sp) +/* 02110C 7002050C 8FB00020 */ lw $s0, 0x20($sp) +/* 021110 70020510 03E00008 */ jr $ra +/* 021114 70020514 27BD00A8 */ addiu $sp, $sp, 0xa8 + +.section .rodata +glabel jpt_80029D10 + .word .L7001FFD4 + .word .L70020004 + .word .L70020064 + .word .L70020034 + .word .L70020094 + .word .L700200C4 + .word .L70020108 + .word .L70020184 +glabel F64_80029D30 + .double 4.9039833923682246e55 +glabel F64_80029D38 + .double 173123.404906676 + diff --git a/src/libultra/rotate.s b/src/libultra/rotate.s new file mode 100644 index 0000000..dcbe14a --- /dev/null +++ b/src/libultra/rotate.s @@ -0,0 +1,148 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel guRotateF +/* 018320 70017720 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 018324 70017724 3C018003 */ lui $at, %hi(F32_80029810) +/* 018328 70017728 C4249810 */ lwc1 $f4, %lo(F32_80029810)($at) +/* 01832C 7001772C AFB00018 */ sw $s0, 0x18($sp) +/* 018330 70017730 00808025 */ move $s0, $a0 +/* 018334 70017734 3C018006 */ lui $at, %hi(flt_CODE_bss_80067DE0) +/* 018338 70017738 AFBF001C */ sw $ra, 0x1c($sp) +/* 01833C 7001773C AFA5003C */ sw $a1, 0x3c($sp) +/* 018340 70017740 AFA60040 */ sw $a2, 0x40($sp) +/* 018344 70017744 AFA70044 */ sw $a3, 0x44($sp) +/* 018348 70017748 27A60048 */ addiu $a2, $sp, 0x48 +/* 01834C 7001774C 27A50044 */ addiu $a1, $sp, 0x44 +/* 018350 70017750 27A40040 */ addiu $a0, $sp, 0x40 +/* 018354 70017754 0C007DD4 */ jal guNormalize +/* 018358 70017758 E4247DE0 */ swc1 $f4, %lo(flt_CODE_bss_80067DE0)($at) +/* 01835C 7001775C 3C018006 */ lui $at, %hi(flt_CODE_bss_80067DE0) +/* 018360 70017760 C7AC003C */ lwc1 $f12, 0x3c($sp) +/* 018364 70017764 C4267DE0 */ lwc1 $f6, %lo(flt_CODE_bss_80067DE0)($at) +/* 018368 70017768 46066302 */ mul.s $f12, $f12, $f6 +/* 01836C 7001776C 0FC15FAB */ jal sinf +/* 018370 70017770 E7AC003C */ swc1 $f12, 0x3c($sp) +/* 018374 70017774 C7AC003C */ lwc1 $f12, 0x3c($sp) +/* 018378 70017778 0FC15FA8 */ jal cosf +/* 01837C 7001777C E7A00034 */ swc1 $f0, 0x34($sp) +/* 018380 70017780 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 018384 70017784 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 018388 70017788 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 01838C 7001778C 44814000 */ mtc1 $at, $f8 +/* 018390 70017790 46045182 */ mul.s $f6, $f10, $f4 +/* 018394 70017794 02002025 */ move $a0, $s0 +/* 018398 70017798 46004081 */ sub.s $f2, $f8, $f0 +/* 01839C 7001779C C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0183A0 700177A0 E7A00030 */ swc1 $f0, 0x30($sp) +/* 0183A4 700177A4 46023402 */ mul.s $f16, $f6, $f2 +/* 0183A8 700177A8 00000000 */ nop +/* 0183AC 700177AC 46082182 */ mul.s $f6, $f4, $f8 +/* 0183B0 700177B0 E7B0002C */ swc1 $f16, 0x2c($sp) +/* 0183B4 700177B4 46023482 */ mul.s $f18, $f6, $f2 +/* 0183B8 700177B8 00000000 */ nop +/* 0183BC 700177BC 460A4102 */ mul.s $f4, $f8, $f10 +/* 0183C0 700177C0 E7B20028 */ swc1 $f18, 0x28($sp) +/* 0183C4 700177C4 46022182 */ mul.s $f6, $f4, $f2 +/* 0183C8 700177C8 0C004004 */ jal guMtxIdentF +/* 0183CC 700177CC E7A60024 */ swc1 $f6, 0x24($sp) +/* 0183D0 700177D0 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 0183D4 700177D4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0183D8 700177D8 44815000 */ mtc1 $at, $f10 +/* 0183DC 700177DC 46084002 */ mul.s $f0, $f8, $f8 +/* 0183E0 700177E0 C7AC0030 */ lwc1 $f12, 0x30($sp) +/* 0183E4 700177E4 C7AE0034 */ lwc1 $f14, 0x34($sp) +/* 0183E8 700177E8 C7B0002C */ lwc1 $f16, 0x2c($sp) +/* 0183EC 700177EC C7B20028 */ lwc1 $f18, 0x28($sp) +/* 0183F0 700177F0 46005101 */ sub.s $f4, $f10, $f0 +/* 0183F4 700177F4 460C2182 */ mul.s $f6, $f4, $f12 +/* 0183F8 700177F8 46003200 */ add.s $f8, $f6, $f0 +/* 0183FC 700177FC E6080000 */ swc1 $f8, ($s0) +/* 018400 70017800 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 018404 70017804 460E5102 */ mul.s $f4, $f10, $f14 +/* 018408 70017808 46049181 */ sub.s $f6, $f18, $f4 +/* 01840C 7001780C E6060024 */ swc1 $f6, 0x24($s0) +/* 018410 70017810 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 018414 70017814 460E4282 */ mul.s $f10, $f8, $f14 +/* 018418 70017818 44814000 */ mtc1 $at, $f8 +/* 01841C 7001781C 46125100 */ add.s $f4, $f10, $f18 +/* 018420 70017820 E6040018 */ swc1 $f4, 0x18($s0) +/* 018424 70017824 C7A60044 */ lwc1 $f6, 0x44($sp) +/* 018428 70017828 46063082 */ mul.s $f2, $f6, $f6 +/* 01842C 7001782C 46024281 */ sub.s $f10, $f8, $f2 +/* 018430 70017830 460C5102 */ mul.s $f4, $f10, $f12 +/* 018434 70017834 46022180 */ add.s $f6, $f4, $f2 +/* 018438 70017838 E6060014 */ swc1 $f6, 0x14($s0) +/* 01843C 7001783C C7A80044 */ lwc1 $f8, 0x44($sp) +/* 018440 70017840 C7A40024 */ lwc1 $f4, 0x24($sp) +/* 018444 70017844 460E4282 */ mul.s $f10, $f8, $f14 +/* 018448 70017848 46045180 */ add.s $f6, $f10, $f4 +/* 01844C 7001784C E6060020 */ swc1 $f6, 0x20($s0) +/* 018450 70017850 C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 018454 70017854 C7A80024 */ lwc1 $f8, 0x24($sp) +/* 018458 70017858 460E5102 */ mul.s $f4, $f10, $f14 +/* 01845C 7001785C 46044181 */ sub.s $f6, $f8, $f4 +/* 018460 70017860 44814000 */ mtc1 $at, $f8 +/* 018464 70017864 E6060008 */ swc1 $f6, 8($s0) +/* 018468 70017868 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 01846C 7001786C 460A5002 */ mul.s $f0, $f10, $f10 +/* 018470 70017870 46004101 */ sub.s $f4, $f8, $f0 +/* 018474 70017874 460C2182 */ mul.s $f6, $f4, $f12 +/* 018478 70017878 46003280 */ add.s $f10, $f6, $f0 +/* 01847C 7001787C E60A0028 */ swc1 $f10, 0x28($s0) +/* 018480 70017880 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 018484 70017884 460E4102 */ mul.s $f4, $f8, $f14 +/* 018488 70017888 46048181 */ sub.s $f6, $f16, $f4 +/* 01848C 7001788C E6060010 */ swc1 $f6, 0x10($s0) +/* 018490 70017890 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 018494 70017894 460E5202 */ mul.s $f8, $f10, $f14 +/* 018498 70017898 46104100 */ add.s $f4, $f8, $f16 +/* 01849C 7001789C E6040004 */ swc1 $f4, 4($s0) +/* 0184A0 700178A0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0184A4 700178A4 8FB00018 */ lw $s0, 0x18($sp) +/* 0184A8 700178A8 27BD0038 */ addiu $sp, $sp, 0x38 +/* 0184AC 700178AC 03E00008 */ jr $ra +/* 0184B0 700178B0 00000000 */ nop + +glabel guRotate +/* 0184B4 700178B4 44856000 */ mtc1 $a1, $f12 +/* 0184B8 700178B8 44867000 */ mtc1 $a2, $f14 +/* 0184BC 700178BC 44878000 */ mtc1 $a3, $f16 +/* 0184C0 700178C0 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0184C4 700178C4 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 0184C8 700178C8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0184CC 700178CC AFA40060 */ sw $a0, 0x60($sp) +/* 0184D0 700178D0 44056000 */ mfc1 $a1, $f12 +/* 0184D4 700178D4 44067000 */ mfc1 $a2, $f14 +/* 0184D8 700178D8 44078000 */ mfc1 $a3, $f16 +/* 0184DC 700178DC 27A40020 */ addiu $a0, $sp, 0x20 +/* 0184E0 700178E0 0C005DC8 */ jal guRotateF +/* 0184E4 700178E4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0184E8 700178E8 27A40020 */ addiu $a0, $sp, 0x20 +/* 0184EC 700178EC 0C003FC4 */ jal guMtxF2L +/* 0184F0 700178F0 8FA50060 */ lw $a1, 0x60($sp) +/* 0184F4 700178F4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0184F8 700178F8 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0184FC 700178FC 03E00008 */ jr $ra +/* 018500 70017900 00000000 */ nop +.align 4 + +.section .rodata +glabel F32_80029810 +.float 0.017453292 +.align 4 + +.section .bss +glabel flt_CODE_bss_80067DE0 +.word 0 +.word 0,0,0 diff --git a/src/libultra/save.s b/src/libultra/save.s new file mode 100644 index 0000000..c61e488 --- /dev/null +++ b/src/libultra/save.s @@ -0,0 +1,68 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alSaveParam +/* 01C1F0 7001B5F0 24010001 */ li $at, 1 +/* 01C1F4 7001B5F4 10A10006 */ beq $a1, $at, .L7001B610 +/* 01C1F8 7001B5F8 00001025 */ move $v0, $zero +/* 01C1FC 7001B5FC 24010006 */ li $at, 6 +/* 01C200 7001B600 50A10006 */ beql $a1, $at, .L7001B61C +/* 01C204 7001B604 AC860014 */ sw $a2, 0x14($a0) +/* 01C208 7001B608 03E00008 */ jr $ra +/* 01C20C 7001B60C 00001025 */ move $v0, $zero + +.L7001B610: +/* 01C210 7001B610 03E00008 */ jr $ra +/* 01C214 7001B614 AC860000 */ sw $a2, ($a0) + +/* 01C218 7001B618 AC860014 */ sw $a2, 0x14($a0) +.L7001B61C: +/* 01C21C 7001B61C 03E00008 */ jr $ra +/* 01C220 7001B620 00001025 */ move $v0, $zero + +glabel alSavePull +/* 01C224 7001B624 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 01C228 7001B628 AFBF001C */ sw $ra, 0x1c($sp) +/* 01C22C 7001B62C AFA40020 */ sw $a0, 0x20($sp) +/* 01C230 7001B630 8C840000 */ lw $a0, ($a0) +/* 01C234 7001B634 8FAF0030 */ lw $t7, 0x30($sp) +/* 01C238 7001B638 AFA60028 */ sw $a2, 0x28($sp) +/* 01C23C 7001B63C AFAF0010 */ sw $t7, 0x10($sp) +/* 01C240 7001B640 8C990004 */ lw $t9, 4($a0) +/* 01C244 7001B644 0320F809 */ jalr $t9 +/* 01C248 7001B648 00000000 */ nop +/* 01C24C 7001B64C 8FA60028 */ lw $a2, 0x28($sp) +/* 01C250 7001B650 3C030800 */ lui $v1, 0x800 +/* 01C254 7001B654 3C0A0440 */ lui $t2, (0x04400580 >> 16) # lui $t2, 0x440 +/* 01C258 7001B658 0006C040 */ sll $t8, $a2, 1 +/* 01C25C 7001B65C 00065880 */ sll $t3, $a2, 2 +/* 01C260 7001B660 3308FFFF */ andi $t0, $t8, 0xffff +/* 01C264 7001B664 354A0580 */ ori $t2, (0x04400580 & 0xFFFF) # ori $t2, $t2, 0x580 +/* 01C268 7001B668 3C090D00 */ lui $t1, 0xd00 +/* 01C26C 7001B66C 316CFFFF */ andi $t4, $t3, 0xffff +/* 01C270 7001B670 3C0D0600 */ lui $t5, 0x600 +/* 01C274 7001B674 AC480004 */ sw $t0, 4($v0) +/* 01C278 7001B678 AC430000 */ sw $v1, ($v0) +/* 01C27C 7001B67C AC490008 */ sw $t1, 8($v0) +/* 01C280 7001B680 AC4A000C */ sw $t2, 0xc($v0) +/* 01C284 7001B684 AC4C0014 */ sw $t4, 0x14($v0) +/* 01C288 7001B688 AC430010 */ sw $v1, 0x10($v0) +/* 01C28C 7001B68C AC4D0018 */ sw $t5, 0x18($v0) +/* 01C290 7001B690 8FAE0020 */ lw $t6, 0x20($sp) +/* 01C294 7001B694 24420020 */ addiu $v0, $v0, 0x20 +/* 01C298 7001B698 8DCF0014 */ lw $t7, 0x14($t6) +/* 01C29C 7001B69C AC4FFFFC */ sw $t7, -4($v0) +/* 01C2A0 7001B6A0 8FBF001C */ lw $ra, 0x1c($sp) +/* 01C2A4 7001B6A4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 01C2A8 7001B6A8 03E00008 */ jr $ra +/* 01C2AC 7001B6AC 00000000 */ nop diff --git a/src/libultra/scale.s b/src/libultra/scale.s new file mode 100644 index 0000000..47f7e8b --- /dev/null +++ b/src/libultra/scale.s @@ -0,0 +1,56 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel guScaleF +/* 017A90 70016E90 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 017A94 70016E94 AFBF0014 */ sw $ra, 0x14($sp) +/* 017A98 70016E98 AFA5001C */ sw $a1, 0x1c($sp) +/* 017A9C 70016E9C AFA60020 */ sw $a2, 0x20($sp) +/* 017AA0 70016EA0 AFA70024 */ sw $a3, 0x24($sp) +/* 017AA4 70016EA4 0C004004 */ jal guMtxIdentF +/* 017AA8 70016EA8 AFA40018 */ sw $a0, 0x18($sp) +/* 017AAC 70016EAC 8FA40018 */ lw $a0, 0x18($sp) +/* 017AB0 70016EB0 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 017AB4 70016EB4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 017AB8 70016EB8 44815000 */ mtc1 $at, $f10 +/* 017ABC 70016EBC E4840000 */ swc1 $f4, ($a0) +/* 017AC0 70016EC0 C7A60020 */ lwc1 $f6, 0x20($sp) +/* 017AC4 70016EC4 E4860014 */ swc1 $f6, 0x14($a0) +/* 017AC8 70016EC8 C7A80024 */ lwc1 $f8, 0x24($sp) +/* 017ACC 70016ECC E48A003C */ swc1 $f10, 0x3c($a0) +/* 017AD0 70016ED0 E4880028 */ swc1 $f8, 0x28($a0) +/* 017AD4 70016ED4 8FBF0014 */ lw $ra, 0x14($sp) +/* 017AD8 70016ED8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 017ADC 70016EDC 03E00008 */ jr $ra +/* 017AE0 70016EE0 00000000 */ nop + +glabel guScale +/* 017AE4 70016EE4 44856000 */ mtc1 $a1, $f12 +/* 017AE8 70016EE8 44867000 */ mtc1 $a2, $f14 +/* 017AEC 70016EEC 44878000 */ mtc1 $a3, $f16 +/* 017AF0 70016EF0 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 017AF4 70016EF4 AFBF0014 */ sw $ra, 0x14($sp) +/* 017AF8 70016EF8 AFA40058 */ sw $a0, 0x58($sp) +/* 017AFC 70016EFC 44056000 */ mfc1 $a1, $f12 +/* 017B00 70016F00 44067000 */ mfc1 $a2, $f14 +/* 017B04 70016F04 44078000 */ mfc1 $a3, $f16 +/* 017B08 70016F08 0C005BA4 */ jal guScaleF +/* 017B0C 70016F0C 27A40018 */ addiu $a0, $sp, 0x18 +/* 017B10 70016F10 27A40018 */ addiu $a0, $sp, 0x18 +/* 017B14 70016F14 0C003FC4 */ jal guMtxF2L +/* 017B18 70016F18 8FA50058 */ lw $a1, 0x58($sp) +/* 017B1C 70016F1C 8FBF0014 */ lw $ra, 0x14($sp) +/* 017B20 70016F20 27BD0058 */ addiu $sp, $sp, 0x58 +/* 017B24 70016F24 03E00008 */ jr $ra +/* 017B28 70016F28 00000000 */ nop + diff --git a/src/libultra/sendmesg.s b/src/libultra/sendmesg.s new file mode 100644 index 0000000..8446501 --- /dev/null +++ b/src/libultra/sendmesg.s @@ -0,0 +1,101 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osSendMesg +/* 00EB10 7000DF10 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 00EB14 7000DF14 AFBF0024 */ sw $ra, 0x24($sp) +/* 00EB18 7000DF18 AFA40038 */ sw $a0, 0x38($sp) +/* 00EB1C 7000DF1C AFA5003C */ sw $a1, 0x3c($sp) +/* 00EB20 7000DF20 AFA60040 */ sw $a2, 0x40($sp) +/* 00EB24 7000DF24 AFB20020 */ sw $s2, 0x20($sp) +/* 00EB28 7000DF28 AFB1001C */ sw $s1, 0x1c($sp) +/* 00EB2C 7000DF2C 0C00617C */ jal __osDisableInt +/* 00EB30 7000DF30 AFB00018 */ sw $s0, 0x18($sp) +/* 00EB34 7000DF34 8FAE0038 */ lw $t6, 0x38($sp) +/* 00EB38 7000DF38 00408025 */ move $s0, $v0 +/* 00EB3C 7000DF3C 8DCF0008 */ lw $t7, 8($t6) +/* 00EB40 7000DF40 8DD80010 */ lw $t8, 0x10($t6) +/* 00EB44 7000DF44 01F8082A */ slt $at, $t7, $t8 +/* 00EB48 7000DF48 14200018 */ bnez $at, .L7000DFAC +/* 00EB4C 7000DF4C 00000000 */ nop +.L7000DF50: +/* 00EB50 7000DF50 8FB90040 */ lw $t9, 0x40($sp) +/* 00EB54 7000DF54 24010001 */ li $at, 1 +/* 00EB58 7000DF58 1721000A */ bne $t9, $at, .L7000DF84 +/* 00EB5C 7000DF5C 00000000 */ nop +/* 00EB60 7000DF60 3C098002 */ lui $t1, %hi(__osRunningThread) +/* 00EB64 7000DF64 8D297730 */ lw $t1, %lo(__osRunningThread)($t1) +/* 00EB68 7000DF68 24080008 */ li $t0, 8 +/* 00EB6C 7000DF6C A5280010 */ sh $t0, 0x10($t1) +/* 00EB70 7000DF70 8FA40038 */ lw $a0, 0x38($sp) +/* 00EB74 7000DF74 0C0041EB */ jal __osEnqueueAndYield +/* 00EB78 7000DF78 24840004 */ addiu $a0, $a0, 4 +/* 00EB7C 7000DF7C 10000005 */ b .L7000DF94 +/* 00EB80 7000DF80 00000000 */ nop +.L7000DF84: +/* 00EB84 7000DF84 0C006184 */ jal __osRestoreInt +/* 00EB88 7000DF88 02002025 */ move $a0, $s0 +/* 00EB8C 7000DF8C 1000002D */ b .L7000E044 +/* 00EB90 7000DF90 2402FFFF */ li $v0, -1 +.L7000DF94: +/* 00EB94 7000DF94 8FAA0038 */ lw $t2, 0x38($sp) +/* 00EB98 7000DF98 8D4B0008 */ lw $t3, 8($t2) +/* 00EB9C 7000DF9C 8D4C0010 */ lw $t4, 0x10($t2) +/* 00EBA0 7000DFA0 016C082A */ slt $at, $t3, $t4 +/* 00EBA4 7000DFA4 1020FFEA */ beqz $at, .L7000DF50 +/* 00EBA8 7000DFA8 00000000 */ nop +.L7000DFAC: +/* 00EBAC 7000DFAC 8FAD0038 */ lw $t5, 0x38($sp) +/* 00EBB0 7000DFB0 8FA8003C */ lw $t0, 0x3c($sp) +/* 00EBB4 7000DFB4 8DAE000C */ lw $t6, 0xc($t5) +/* 00EBB8 7000DFB8 8DAF0008 */ lw $t7, 8($t5) +/* 00EBBC 7000DFBC 8DB90010 */ lw $t9, 0x10($t5) +/* 00EBC0 7000DFC0 8DA90014 */ lw $t1, 0x14($t5) +/* 00EBC4 7000DFC4 01CFC021 */ addu $t8, $t6, $t7 +/* 00EBC8 7000DFC8 0319001A */ div $zero, $t8, $t9 +/* 00EBCC 7000DFCC 00008810 */ mfhi $s1 +/* 00EBD0 7000DFD0 00115080 */ sll $t2, $s1, 2 +/* 00EBD4 7000DFD4 012A5821 */ addu $t3, $t1, $t2 +/* 00EBD8 7000DFD8 AD680000 */ sw $t0, ($t3) +/* 00EBDC 7000DFDC 8FAC0038 */ lw $t4, 0x38($sp) +/* 00EBE0 7000DFE0 17200002 */ bnez $t9, .L7000DFEC +/* 00EBE4 7000DFE4 00000000 */ nop +/* 00EBE8 7000DFE8 0007000D */ break 7 +.L7000DFEC: +/* 00EBEC 7000DFEC 2401FFFF */ li $at, -1 +/* 00EBF0 7000DFF0 17210004 */ bne $t9, $at, .L7000E004 +/* 00EBF4 7000DFF4 3C018000 */ lui $at, 0x8000 +/* 00EBF8 7000DFF8 17010002 */ bne $t8, $at, .L7000E004 +/* 00EBFC 7000DFFC 00000000 */ nop +/* 00EC00 7000E000 0006000D */ break 6 +.L7000E004: +/* 00EC04 7000E004 8D8E0008 */ lw $t6, 8($t4) +/* 00EC08 7000E008 25CF0001 */ addiu $t7, $t6, 1 +/* 00EC0C 7000E00C AD8F0008 */ sw $t7, 8($t4) +/* 00EC10 7000E010 8FB80038 */ lw $t8, 0x38($sp) +/* 00EC14 7000E014 8F190000 */ lw $t9, ($t8) +/* 00EC18 7000E018 8F2D0000 */ lw $t5, ($t9) +/* 00EC1C 7000E01C 11A00006 */ beqz $t5, .L7000E038 +/* 00EC20 7000E020 00000000 */ nop +/* 00EC24 7000E024 0C00423D */ jal __osPopThread +/* 00EC28 7000E028 03002025 */ move $a0, $t8 +/* 00EC2C 7000E02C 00409025 */ move $s2, $v0 +/* 00EC30 7000E030 0C003560 */ jal osStartThread +/* 00EC34 7000E034 02402025 */ move $a0, $s2 +.L7000E038: +/* 00EC38 7000E038 0C006184 */ jal __osRestoreInt +/* 00EC3C 7000E03C 02002025 */ move $a0, $s0 +/* 00EC40 7000E040 00001025 */ move $v0, $zero +.L7000E044: +/* 00EC44 7000E044 8FBF0024 */ lw $ra, 0x24($sp) +/* 00EC48 7000E048 8FB00018 */ lw $s0, 0x18($sp) +/* 00EC4C 7000E04C 8FB1001C */ lw $s1, 0x1c($sp) +/* 00EC50 7000E050 8FB20020 */ lw $s2, 0x20($sp) +/* 00EC54 7000E054 03E00008 */ jr $ra +/* 00EC58 7000E058 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/src/libultra/seq.s b/src/libultra/seq.s new file mode 100644 index 0000000..c17d9b8 --- /dev/null +++ b/src/libultra/seq.s @@ -0,0 +1,458 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alSeqGetLoc +/* 021120 70020520 8C8E0008 */ lw $t6, 8($a0) +/* 021124 70020524 ACAE0000 */ sw $t6, ($a1) +/* 021128 70020528 848F001A */ lh $t7, 0x1a($a0) +/* 02112C 7002052C A4AF000C */ sh $t7, 0xc($a1) +/* 021130 70020530 8C98000C */ lw $t8, 0xc($a0) +/* 021134 70020534 03E00008 */ jr $ra +/* 021138 70020538 ACB80004 */ sw $t8, 4($a1) + +glabel alSeqSetLoc +/* 02113C 7002053C 8CAE0000 */ lw $t6, ($a1) +/* 021140 70020540 AC8E0008 */ sw $t6, 8($a0) +/* 021144 70020544 84AF000C */ lh $t7, 0xc($a1) +/* 021148 70020548 A48F001A */ sh $t7, 0x1a($a0) +/* 02114C 7002054C 8CB80004 */ lw $t8, 4($a1) +/* 021150 70020550 03E00008 */ jr $ra +/* 021154 70020554 AC98000C */ sw $t8, 0xc($a0) + +glabel alSeqGetTicks +/* 021158 70020558 03E00008 */ jr $ra +/* 02115C 7002055C 8C82000C */ lw $v0, 0xc($a0) + +/* 021160 70020560 03E00008 */ jr $ra +/* 021164 70020564 00000000 */ nop + +glabel readVarLen +/* 021168 70020568 8C830008 */ lw $v1, 8($a0) +/* 02116C 7002056C 90620000 */ lbu $v0, ($v1) +/* 021170 70020570 246E0001 */ addiu $t6, $v1, 1 +/* 021174 70020574 AC8E0008 */ sw $t6, 8($a0) +/* 021178 70020578 304F0080 */ andi $t7, $v0, 0x80 +/* 02117C 7002057C 11E0000B */ beqz $t7, .L700205AC +/* 021180 70020580 00402825 */ move $a1, $v0 +/* 021184 70020584 3045007F */ andi $a1, $v0, 0x7f +.L70020588: +/* 021188 70020588 8C830008 */ lw $v1, 8($a0) +/* 02118C 7002058C 0005C9C0 */ sll $t9, $a1, 7 +/* 021190 70020590 90620000 */ lbu $v0, ($v1) +/* 021194 70020594 24780001 */ addiu $t8, $v1, 1 +/* 021198 70020598 AC980008 */ sw $t8, 8($a0) +/* 02119C 7002059C 304E007F */ andi $t6, $v0, 0x7f +/* 0211A0 700205A0 304F0080 */ andi $t7, $v0, 0x80 +/* 0211A4 700205A4 15E0FFF8 */ bnez $t7, .L70020588 +/* 0211A8 700205A8 032E2821 */ addu $a1, $t9, $t6 +.L700205AC: +/* 0211AC 700205AC 03E00008 */ jr $ra +/* 0211B0 700205B0 00A01025 */ move $v0, $a1 + +glabel alSeqNextEvent +/* 0211B4 700205B4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0211B8 700205B8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0211BC 700205BC 00803025 */ move $a2, $a0 +/* 0211C0 700205C0 0C00815A */ jal readVarLen +/* 0211C4 700205C4 00A03825 */ move $a3, $a1 +/* 0211C8 700205C8 8CCE000C */ lw $t6, 0xc($a2) +/* 0211CC 700205CC 8CC30008 */ lw $v1, 8($a2) +/* 0211D0 700205D0 00404825 */ move $t1, $v0 +/* 0211D4 700205D4 01C27821 */ addu $t7, $t6, $v0 +/* 0211D8 700205D8 ACCF000C */ sw $t7, 0xc($a2) +/* 0211DC 700205DC 90640000 */ lbu $a0, ($v1) +/* 0211E0 700205E0 240100FF */ li $at, 255 +/* 0211E4 700205E4 24780001 */ addiu $t8, $v1, 1 +/* 0211E8 700205E8 ACD80008 */ sw $t8, 8($a2) +/* 0211EC 700205EC 00801025 */ move $v0, $a0 +/* 0211F0 700205F0 1481002F */ bne $a0, $at, .L700206B0 +/* 0211F4 700205F4 308500FF */ andi $a1, $a0, 0xff +/* 0211F8 700205F8 93020000 */ lbu $v0, ($t8) +/* 0211FC 700205FC 27190001 */ addiu $t9, $t8, 1 +/* 021200 70020600 24010051 */ li $at, 81 +/* 021204 70020604 ACD90008 */ sw $t9, 8($a2) +/* 021208 70020608 1441001B */ bne $v0, $at, .L70020678 +/* 02120C 7002060C 00404025 */ move $t0, $v0 +/* 021210 70020610 240E0003 */ li $t6, 3 +/* 021214 70020614 A4EE0000 */ sh $t6, ($a3) +/* 021218 70020618 ACE90004 */ sw $t1, 4($a3) +/* 02121C 7002061C A0E50008 */ sb $a1, 8($a3) +/* 021220 70020620 A0E80009 */ sb $t0, 9($a3) +/* 021224 70020624 8CC30008 */ lw $v1, 8($a2) +/* 021228 70020628 90620000 */ lbu $v0, ($v1) +/* 02122C 7002062C 246F0001 */ addiu $t7, $v1, 1 +/* 021230 70020630 ACCF0008 */ sw $t7, 8($a2) +/* 021234 70020634 A0E2000A */ sb $v0, 0xa($a3) +/* 021238 70020638 8CC30008 */ lw $v1, 8($a2) +/* 02123C 7002063C 90640000 */ lbu $a0, ($v1) +/* 021240 70020640 24780001 */ addiu $t8, $v1, 1 +/* 021244 70020644 ACD80008 */ sw $t8, 8($a2) +/* 021248 70020648 A0E4000B */ sb $a0, 0xb($a3) +/* 02124C 7002064C 8CC30008 */ lw $v1, 8($a2) +/* 021250 70020650 90650000 */ lbu $a1, ($v1) +/* 021254 70020654 24790001 */ addiu $t9, $v1, 1 +/* 021258 70020658 ACD90008 */ sw $t9, 8($a2) +/* 02125C 7002065C A0E5000C */ sb $a1, 0xc($a3) +/* 021260 70020660 8CC30008 */ lw $v1, 8($a2) +/* 021264 70020664 90640000 */ lbu $a0, ($v1) +/* 021268 70020668 246E0001 */ addiu $t6, $v1, 1 +/* 02126C 7002066C ACCE0008 */ sw $t6, 8($a2) +/* 021270 70020670 1000000D */ b .L700206A8 +/* 021274 70020674 A0E4000D */ sb $a0, 0xd($a3) +.L70020678: +/* 021278 70020678 2401002F */ li $at, 47 +/* 02127C 7002067C 1441000A */ bne $v0, $at, .L700206A8 +/* 021280 70020680 240F0004 */ li $t7, 4 +/* 021284 70020684 A4EF0000 */ sh $t7, ($a3) +/* 021288 70020688 ACE90004 */ sw $t1, 4($a3) +/* 02128C 7002068C A0E50008 */ sb $a1, 8($a3) +/* 021290 70020690 A0E80009 */ sb $t0, 9($a3) +/* 021294 70020694 8CC30008 */ lw $v1, 8($a2) +/* 021298 70020698 90640000 */ lbu $a0, ($v1) +/* 02129C 7002069C 24780001 */ addiu $t8, $v1, 1 +/* 0212A0 700206A0 ACD80008 */ sw $t8, 8($a2) +/* 0212A4 700206A4 A0E4000A */ sb $a0, 0xa($a3) +.L700206A8: +/* 0212A8 700206A8 1000001F */ b .L70020728 +/* 0212AC 700206AC A4C0001A */ sh $zero, 0x1a($a2) +.L700206B0: +/* 0212B0 700206B0 24190001 */ li $t9, 1 +/* 0212B4 700206B4 304E0080 */ andi $t6, $v0, 0x80 +/* 0212B8 700206B8 A4F90000 */ sh $t9, ($a3) +/* 0212BC 700206BC 11C00009 */ beqz $t6, .L700206E4 +/* 0212C0 700206C0 ACE90004 */ sw $t1, 4($a3) +/* 0212C4 700206C4 A0E50008 */ sb $a1, 8($a3) +/* 0212C8 700206C8 8CC30008 */ lw $v1, 8($a2) +/* 0212CC 700206CC 90640000 */ lbu $a0, ($v1) +/* 0212D0 700206D0 246F0001 */ addiu $t7, $v1, 1 +/* 0212D4 700206D4 ACCF0008 */ sw $t7, 8($a2) +/* 0212D8 700206D8 A0E40009 */ sb $a0, 9($a3) +/* 0212DC 700206DC 10000004 */ b .L700206F0 +/* 0212E0 700206E0 A4C5001A */ sh $a1, 0x1a($a2) +.L700206E4: +/* 0212E4 700206E4 84D8001A */ lh $t8, 0x1a($a2) +/* 0212E8 700206E8 A0E40009 */ sb $a0, 9($a3) +/* 0212EC 700206EC A0F80008 */ sb $t8, 8($a3) +.L700206F0: +/* 0212F0 700206F0 90E20008 */ lbu $v0, 8($a3) +/* 0212F4 700206F4 240100C0 */ li $at, 192 +/* 0212F8 700206F8 305900F0 */ andi $t9, $v0, 0xf0 +/* 0212FC 700206FC 13210009 */ beq $t9, $at, .L70020724 +/* 021300 70020700 240100D0 */ li $at, 208 +/* 021304 70020704 53210008 */ beql $t9, $at, .L70020728 +/* 021308 70020708 A0E0000A */ sb $zero, 0xa($a3) +/* 02130C 7002070C 8CC30008 */ lw $v1, 8($a2) +/* 021310 70020710 90640000 */ lbu $a0, ($v1) +/* 021314 70020714 246E0001 */ addiu $t6, $v1, 1 +/* 021318 70020718 ACCE0008 */ sw $t6, 8($a2) +/* 02131C 7002071C 10000002 */ b .L70020728 +/* 021320 70020720 A0E4000A */ sb $a0, 0xa($a3) +.L70020724: +/* 021324 70020724 A0E0000A */ sb $zero, 0xa($a3) +.L70020728: +/* 021328 70020728 8FBF0014 */ lw $ra, 0x14($sp) +/* 02132C 7002072C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 021330 70020730 03E00008 */ jr $ra +/* 021334 70020734 00000000 */ nop + +glabel alSeqNewMarker +/* 021338 70020738 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 02133C 7002073C AFB70030 */ sw $s7, 0x30($sp) +/* 021340 70020740 AFB10018 */ sw $s1, 0x18($sp) +/* 021344 70020744 AFB00014 */ sw $s0, 0x14($sp) +/* 021348 70020748 00808025 */ move $s0, $a0 +/* 02134C 7002074C 00C08825 */ move $s1, $a2 +/* 021350 70020750 00A0B825 */ move $s7, $a1 +/* 021354 70020754 AFBF0034 */ sw $ra, 0x34($sp) +/* 021358 70020758 AFB6002C */ sw $s6, 0x2c($sp) +/* 02135C 7002075C AFB50028 */ sw $s5, 0x28($sp) +/* 021360 70020760 AFB40024 */ sw $s4, 0x24($sp) +/* 021364 70020764 AFB30020 */ sw $s3, 0x20($sp) +/* 021368 70020768 14C00007 */ bnez $a2, .L70020788 +/* 02136C 7002076C AFB2001C */ sw $s2, 0x1c($sp) +/* 021370 70020770 8C8E0004 */ lw $t6, 4($a0) +/* 021374 70020774 A4A0000C */ sh $zero, 0xc($a1) +/* 021378 70020778 ACA00004 */ sw $zero, 4($a1) +/* 02137C 7002077C ACA00008 */ sw $zero, 8($a1) +/* 021380 70020780 1000002A */ b .L7002082C +/* 021384 70020784 ACAE0000 */ sw $t6, ($a1) +.L70020788: +/* 021388 70020788 8E0F0008 */ lw $t7, 8($s0) +/* 02138C 7002078C 00001025 */ move $v0, $zero +/* 021390 70020790 24130004 */ li $s3, 4 +/* 021394 70020794 AFAF004C */ sw $t7, 0x4c($sp) +/* 021398 70020798 8618001A */ lh $t8, 0x1a($s0) +/* 02139C 7002079C 27B20050 */ addiu $s2, $sp, 0x50 +/* 0213A0 700207A0 A7B8003E */ sh $t8, 0x3e($sp) +/* 0213A4 700207A4 8E19000C */ lw $t9, 0xc($s0) +/* 0213A8 700207A8 AFB90044 */ sw $t9, 0x44($sp) +/* 0213AC 700207AC 8E080004 */ lw $t0, 4($s0) +/* 0213B0 700207B0 A600001A */ sh $zero, 0x1a($s0) +/* 0213B4 700207B4 AE00000C */ sw $zero, 0xc($s0) +/* 0213B8 700207B8 AE080008 */ sw $t0, 8($s0) +/* 0213BC 700207BC 8E140008 */ lw $s4, 8($s0) +.L700207C0: +/* 0213C0 700207C0 8615001A */ lh $s5, 0x1a($s0) +/* 0213C4 700207C4 0040B025 */ move $s6, $v0 +/* 0213C8 700207C8 02002025 */ move $a0, $s0 +/* 0213CC 700207CC 0C00816D */ jal alSeqNextEvent +/* 0213D0 700207D0 02402825 */ move $a1, $s2 +/* 0213D4 700207D4 87A90050 */ lh $t1, 0x50($sp) +/* 0213D8 700207D8 55330006 */ bnel $t1, $s3, .L700207F4 +/* 0213DC 700207DC 8E02000C */ lw $v0, 0xc($s0) +/* 0213E0 700207E0 8E140008 */ lw $s4, 8($s0) +/* 0213E4 700207E4 8615001A */ lh $s5, 0x1a($s0) +/* 0213E8 700207E8 10000005 */ b .L70020800 +/* 0213EC 700207EC 8E16000C */ lw $s6, 0xc($s0) +/* 0213F0 700207F0 8E02000C */ lw $v0, 0xc($s0) +.L700207F4: +/* 0213F4 700207F4 0051082B */ sltu $at, $v0, $s1 +/* 0213F8 700207F8 5420FFF1 */ bnezl $at, .L700207C0 +/* 0213FC 700207FC 8E140008 */ lw $s4, 8($s0) +.L70020800: +/* 021400 70020800 AEF40000 */ sw $s4, ($s7) +/* 021404 70020804 A6F5000C */ sh $s5, 0xc($s7) +/* 021408 70020808 AEF60004 */ sw $s6, 4($s7) +/* 02140C 7002080C 8E0A000C */ lw $t2, 0xc($s0) +/* 021410 70020810 AEEA0008 */ sw $t2, 8($s7) +/* 021414 70020814 8FAB004C */ lw $t3, 0x4c($sp) +/* 021418 70020818 AE0B0008 */ sw $t3, 8($s0) +/* 02141C 7002081C 87AC003E */ lh $t4, 0x3e($sp) +/* 021420 70020820 A60C001A */ sh $t4, 0x1a($s0) +/* 021424 70020824 8FAD0044 */ lw $t5, 0x44($sp) +/* 021428 70020828 AE0D000C */ sw $t5, 0xc($s0) +.L7002082C: +/* 02142C 7002082C 8FBF0034 */ lw $ra, 0x34($sp) +/* 021430 70020830 8FB00014 */ lw $s0, 0x14($sp) +/* 021434 70020834 8FB10018 */ lw $s1, 0x18($sp) +/* 021438 70020838 8FB2001C */ lw $s2, 0x1c($sp) +/* 02143C 7002083C 8FB30020 */ lw $s3, 0x20($sp) +/* 021440 70020840 8FB40024 */ lw $s4, 0x24($sp) +/* 021444 70020844 8FB50028 */ lw $s5, 0x28($sp) +/* 021448 70020848 8FB6002C */ lw $s6, 0x2c($sp) +/* 02144C 7002084C 8FB70030 */ lw $s7, 0x30($sp) +/* 021450 70020850 03E00008 */ jr $ra +/* 021454 70020854 27BD0060 */ addiu $sp, $sp, 0x60 + +glabel alSeqSecToTicks +/* 021458 70020858 44856000 */ mtc1 $a1, $f12 +/* 02145C 7002085C 3C018003 */ lui $at, %hi(F64_80029D50) +/* 021460 70020860 D4269D50 */ ldc1 $f6, %lo(F64_80029D50)($at) +/* 021464 70020864 848E0018 */ lh $t6, 0x18($a0) +/* 021468 70020868 46006121 */ cvt.d.s $f4, $f12 +/* 02146C 7002086C 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 021470 70020870 46262202 */ mul.d $f8, $f4, $f6 +/* 021474 70020874 448E5000 */ mtc1 $t6, $f10 +/* 021478 70020878 44862000 */ mtc1 $a2, $f4 +/* 02147C 7002087C 46805421 */ cvt.d.w $f16, $f10 +/* 021480 70020880 468021A1 */ cvt.d.w $f6, $f4 +/* 021484 70020884 46304482 */ mul.d $f18, $f8, $f16 +/* 021488 70020888 04C30006 */ bgezl $a2, .L700208A4 +/* 02148C 7002088C 46269203 */ div.d $f8, $f18, $f6 +/* 021490 70020890 44815800 */ mtc1 $at, $f11 +/* 021494 70020894 44805000 */ mtc1 $zero, $f10 +/* 021498 70020898 00000000 */ nop +/* 02149C 7002089C 462A3180 */ add.d $f6, $f6, $f10 +/* 0214A0 700208A0 46269203 */ div.d $f8, $f18, $f6 +.L700208A4: +/* 0214A4 700208A4 24020001 */ li $v0, 1 +/* 0214A8 700208A8 3C0141E0 */ li $at, 0x41E00000 # 28.000000 +/* 0214AC 700208AC 444FF800 */ cfc1 $t7, $31 +/* 0214B0 700208B0 44C2F800 */ ctc1 $v0, $31 +/* 0214B4 700208B4 00000000 */ nop +/* 0214B8 700208B8 46204424 */ cvt.w.d $f16, $f8 +/* 0214BC 700208BC 4442F800 */ cfc1 $v0, $31 +/* 0214C0 700208C0 00000000 */ nop +/* 0214C4 700208C4 30420078 */ andi $v0, $v0, 0x78 +/* 0214C8 700208C8 50400016 */ beql $v0, $zero, .L70020924 +/* 0214CC 700208CC 44028000 */ mfc1 $v0, $f16 +/* 0214D0 700208D0 44818800 */ mtc1 $at, $f17 +/* 0214D4 700208D4 44808000 */ mtc1 $zero, $f16 +/* 0214D8 700208D8 24020001 */ li $v0, 1 +/* 0214DC 700208DC 3C018000 */ lui $at, 0x8000 +/* 0214E0 700208E0 46304401 */ sub.d $f16, $f8, $f16 +/* 0214E4 700208E4 44C2F800 */ ctc1 $v0, $31 +/* 0214E8 700208E8 00000000 */ nop +/* 0214EC 700208EC 46208424 */ cvt.w.d $f16, $f16 +/* 0214F0 700208F0 4442F800 */ cfc1 $v0, $31 +/* 0214F4 700208F4 00000000 */ nop +/* 0214F8 700208F8 30420078 */ andi $v0, $v0, 0x78 +/* 0214FC 700208FC 54400006 */ bnezl $v0, .L70020918 +/* 021500 70020900 44CFF800 */ ctc1 $t7, $31 +/* 021504 70020904 44028000 */ mfc1 $v0, $f16 +/* 021508 70020908 44CFF800 */ ctc1 $t7, $31 +/* 02150C 7002090C 03E00008 */ jr $ra +/* 021510 70020910 00411025 */ or $v0, $v0, $at + +/* 021514 70020914 44CFF800 */ ctc1 $t7, $31 +.L70020918: +/* 021518 70020918 03E00008 */ jr $ra +/* 02151C 7002091C 2402FFFF */ li $v0, -1 + +/* 021520 70020920 44028000 */ mfc1 $v0, $f16 +.L70020924: +/* 021524 70020924 00000000 */ nop +/* 021528 70020928 0442FFFB */ bltzl $v0, .L70020918 +/* 02152C 7002092C 44CFF800 */ ctc1 $t7, $31 +/* 021530 70020930 44CFF800 */ ctc1 $t7, $31 +/* 021534 70020934 03E00008 */ jr $ra +/* 021538 70020938 00000000 */ nop + +glabel alSeqTicksToSec +/* 02153C 7002093C 44852000 */ mtc1 $a1, $f4 +/* 021540 70020940 44864000 */ mtc1 $a2, $f8 +/* 021544 70020944 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 021548 70020948 468021A0 */ cvt.s.w $f6, $f4 +/* 02154C 7002094C 04C10004 */ bgez $a2, .L70020960 +/* 021550 70020950 468042A0 */ cvt.s.w $f10, $f8 +/* 021554 70020954 44818000 */ mtc1 $at, $f16 +/* 021558 70020958 00000000 */ nop +/* 02155C 7002095C 46105280 */ add.s $f10, $f10, $f16 +.L70020960: +/* 021560 70020960 848E0018 */ lh $t6, 0x18($a0) +/* 021564 70020964 460A3482 */ mul.s $f18, $f6, $f10 +/* 021568 70020968 3C018003 */ lui $at, %hi(F64_80029D58) +/* 02156C 7002096C 448E4000 */ mtc1 $t6, $f8 +/* 021570 70020970 D42A9D58 */ ldc1 $f10, %lo(F64_80029D58)($at) +/* 021574 70020974 46804420 */ cvt.s.w $f16, $f8 +/* 021578 70020978 46009121 */ cvt.d.s $f4, $f18 +/* 02157C 7002097C 460081A1 */ cvt.d.s $f6, $f16 +/* 021580 70020980 462A3482 */ mul.d $f18, $f6, $f10 +/* 021584 70020984 46322203 */ div.d $f8, $f4, $f18 +/* 021588 70020988 03E00008 */ jr $ra +/* 02158C 7002098C 46204020 */ cvt.s.d $f0, $f8 +.section .rodata +glabel F64_80029D50 + .double 1000000.0 +glabel F64_80029D58 + .double 1000000.0 + +.section .text +glabel __alSeqNextDelta +/* 021590 70020990 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 021594 70020994 AFBF0014 */ sw $ra, 0x14($sp) +/* 021598 70020998 8C8F0010 */ lw $t7, 0x10($a0) +/* 02159C 7002099C 8C8E0000 */ lw $t6, ($a0) +/* 0215A0 700209A0 8C820008 */ lw $v0, 8($a0) +/* 0215A4 700209A4 00803025 */ move $a2, $a0 +/* 0215A8 700209A8 01CFC021 */ addu $t8, $t6, $t7 +/* 0215AC 700209AC 0058082B */ sltu $at, $v0, $t8 +/* 0215B0 700209B0 14200003 */ bnez $at, .L700209C0 +/* 0215B4 700209B4 00A04025 */ move $t0, $a1 +/* 0215B8 700209B8 10000007 */ b .L700209D8 +/* 0215BC 700209BC 00001025 */ move $v0, $zero +.L700209C0: +/* 0215C0 700209C0 00403825 */ move $a3, $v0 +/* 0215C4 700209C4 0C00815A */ jal readVarLen +/* 0215C8 700209C8 00C02025 */ move $a0, $a2 +/* 0215CC 700209CC AD020000 */ sw $v0, ($t0) +/* 0215D0 700209D0 ACC70008 */ sw $a3, 8($a2) +/* 0215D4 700209D4 24020001 */ li $v0, 1 +.L700209D8: +/* 0215D8 700209D8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0215DC 700209DC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0215E0 700209E0 03E00008 */ jr $ra +/* 0215E4 700209E4 00000000 */ nop + +glabel read32 +/* 0215E8 700209E8 8C850008 */ lw $a1, 8($a0) +/* 0215EC 700209EC 90A30000 */ lbu $v1, ($a1) +/* 0215F0 700209F0 24AF0001 */ addiu $t7, $a1, 1 +/* 0215F4 700209F4 AC8F0008 */ sw $t7, 8($a0) +/* 0215F8 700209F8 91F80000 */ lbu $t8, ($t7) +/* 0215FC 700209FC 00037600 */ sll $t6, $v1, 0x18 +/* 021600 70020A00 0018CC00 */ sll $t9, $t8, 0x10 +/* 021604 70020A04 01D91825 */ or $v1, $t6, $t9 +/* 021608 70020A08 25EE0001 */ addiu $t6, $t7, 1 +/* 02160C 70020A0C AC8E0008 */ sw $t6, 8($a0) +/* 021610 70020A10 91CF0000 */ lbu $t7, ($t6) +/* 021614 70020A14 25D90001 */ addiu $t9, $t6, 1 +/* 021618 70020A18 AC990008 */ sw $t9, 8($a0) +/* 02161C 70020A1C 000FC200 */ sll $t8, $t7, 8 +/* 021620 70020A20 932E0000 */ lbu $t6, ($t9) +/* 021624 70020A24 00781825 */ or $v1, $v1, $t8 +/* 021628 70020A28 272F0001 */ addiu $t7, $t9, 1 +/* 02162C 70020A2C AC8F0008 */ sw $t7, 8($a0) +/* 021630 70020A30 03E00008 */ jr $ra +/* 021634 70020A34 006E1025 */ or $v0, $v1, $t6 + +glabel read16 +/* 021638 70020A38 8C850008 */ lw $a1, 8($a0) +/* 02163C 70020A3C 90A30000 */ lbu $v1, ($a1) +/* 021640 70020A40 24B90001 */ addiu $t9, $a1, 1 +/* 021644 70020A44 AC990008 */ sw $t9, 8($a0) +/* 021648 70020A48 932E0000 */ lbu $t6, ($t9) +/* 02164C 70020A4C 0003C200 */ sll $t8, $v1, 8 +/* 021650 70020A50 27390001 */ addiu $t9, $t9, 1 +/* 021654 70020A54 030E1825 */ or $v1, $t8, $t6 +/* 021658 70020A58 00037C00 */ sll $t7, $v1, 0x10 +/* 02165C 70020A5C 000F1403 */ sra $v0, $t7, 0x10 +/* 021660 70020A60 03E00008 */ jr $ra +/* 021664 70020A64 AC990008 */ sw $t9, 8($a0) + +glabel alSeqNew +/* 021668 70020A68 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 02166C 70020A6C AFBF0014 */ sw $ra, 0x14($sp) +/* 021670 70020A70 00803825 */ move $a3, $a0 +/* 021674 70020A74 AC850000 */ sw $a1, ($a0) +/* 021678 70020A78 AC860010 */ sw $a2, 0x10($a0) +/* 02167C 70020A7C A480001A */ sh $zero, 0x1a($a0) +/* 021680 70020A80 AC80000C */ sw $zero, 0xc($a0) +/* 021684 70020A84 0C00827A */ jal read32 +/* 021688 70020A88 AC850008 */ sw $a1, 8($a0) +/* 02168C 70020A8C 3C014D54 */ lui $at, (0x4D546864 >> 16) # lui $at, 0x4d54 +/* 021690 70020A90 34216864 */ ori $at, (0x4D546864 & 0xFFFF) # ori $at, $at, 0x6864 +/* 021694 70020A94 54410027 */ bnel $v0, $at, .L70020B34 +/* 021698 70020A98 8FBF0014 */ lw $ra, 0x14($sp) +/* 02169C 70020A9C 0C00827A */ jal read32 +/* 0216A0 70020AA0 00E02025 */ move $a0, $a3 +/* 0216A4 70020AA4 0C00828E */ jal read16 +/* 0216A8 70020AA8 00E02025 */ move $a0, $a3 +/* 0216AC 70020AAC 54400021 */ bnezl $v0, .L70020B34 +/* 0216B0 70020AB0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0216B4 70020AB4 0C00828E */ jal read16 +/* 0216B8 70020AB8 00E02025 */ move $a0, $a3 +/* 0216BC 70020ABC 24010001 */ li $at, 1 +/* 0216C0 70020AC0 5441001C */ bnel $v0, $at, .L70020B34 +/* 0216C4 70020AC4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0216C8 70020AC8 0C00828E */ jal read16 +/* 0216CC 70020ACC 00E02025 */ move $a0, $a3 +/* 0216D0 70020AD0 A4E20018 */ sh $v0, 0x18($a3) +/* 0216D4 70020AD4 84E30018 */ lh $v1, 0x18($a3) +/* 0216D8 70020AD8 306E8000 */ andi $t6, $v1, 0x8000 +/* 0216DC 70020ADC 55C00015 */ bnezl $t6, .L70020B34 +/* 0216E0 70020AE0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0216E4 70020AE4 44833000 */ mtc1 $v1, $f6 +/* 0216E8 70020AE8 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 0216EC 70020AEC 44812800 */ mtc1 $at, $f5 +/* 0216F0 70020AF0 46803220 */ cvt.s.w $f8, $f6 +/* 0216F4 70020AF4 44802000 */ mtc1 $zero, $f4 +/* 0216F8 70020AF8 00E02025 */ move $a0, $a3 +/* 0216FC 70020AFC 460042A1 */ cvt.d.s $f10, $f8 +/* 021700 70020B00 462A2183 */ div.d $f6, $f4, $f10 +/* 021704 70020B04 46203220 */ cvt.s.d $f8, $f6 +/* 021708 70020B08 0C00827A */ jal read32 +/* 02170C 70020B0C E4E80014 */ swc1 $f8, 0x14($a3) +/* 021710 70020B10 3C014D54 */ lui $at, (0x4D54726B >> 16) # lui $at, 0x4d54 +/* 021714 70020B14 3421726B */ ori $at, (0x4D54726B & 0xFFFF) # ori $at, $at, 0x726b +/* 021718 70020B18 54410006 */ bnel $v0, $at, .L70020B34 +/* 02171C 70020B1C 8FBF0014 */ lw $ra, 0x14($sp) +/* 021720 70020B20 0C00827A */ jal read32 +/* 021724 70020B24 00E02025 */ move $a0, $a3 +/* 021728 70020B28 8CEF0008 */ lw $t7, 8($a3) +/* 02172C 70020B2C ACEF0004 */ sw $t7, 4($a3) +/* 021730 70020B30 8FBF0014 */ lw $ra, 0x14($sp) +.L70020B34: +/* 021734 70020B34 27BD0018 */ addiu $sp, $sp, 0x18 +/* 021738 70020B38 03E00008 */ jr $ra +/* 02173C 70020B3C 00000000 */ nop diff --git a/src/libultra/seqplayer.s b/src/libultra/seqplayer.s new file mode 100644 index 0000000..fcf4ca3 --- /dev/null +++ b/src/libultra/seqplayer.s @@ -0,0 +1,1864 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __setInstChanState +/* 01C860 7001BC60 8C8E0060 */ lw $t6, 0x60($a0) +/* 01C864 7001BC64 00061100 */ sll $v0, $a2, 4 +/* 01C868 7001BC68 01C27821 */ addu $t7, $t6, $v0 +/* 01C86C 7001BC6C ADE50000 */ sw $a1, ($t7) +/* 01C870 7001BC70 8C990060 */ lw $t9, 0x60($a0) +/* 01C874 7001BC74 90B80001 */ lbu $t8, 1($a1) +/* 01C878 7001BC78 03224021 */ addu $t0, $t9, $v0 +/* 01C87C 7001BC7C A1180007 */ sb $t8, 7($t0) +/* 01C880 7001BC80 8C8A0060 */ lw $t2, 0x60($a0) +/* 01C884 7001BC84 90A90000 */ lbu $t1, ($a1) +/* 01C888 7001BC88 01425821 */ addu $t3, $t2, $v0 +/* 01C88C 7001BC8C A1690009 */ sb $t1, 9($t3) +/* 01C890 7001BC90 8C8D0060 */ lw $t5, 0x60($a0) +/* 01C894 7001BC94 90AC0002 */ lbu $t4, 2($a1) +/* 01C898 7001BC98 01A27021 */ addu $t6, $t5, $v0 +/* 01C89C 7001BC9C A1CC0008 */ sb $t4, 8($t6) +/* 01C8A0 7001BCA0 8C990060 */ lw $t9, 0x60($a0) +/* 01C8A4 7001BCA4 84AF000C */ lh $t7, 0xc($a1) +/* 01C8A8 7001BCA8 0322C021 */ addu $t8, $t9, $v0 +/* 01C8AC 7001BCAC 03E00008 */ jr $ra +/* 01C8B0 7001BCB0 A70F0004 */ sh $t7, 4($t8) + +glabel __resetPerfChanState +/* 01C8B4 7001BCB4 8C8E0060 */ lw $t6, 0x60($a0) +/* 01C8B8 7001BCB8 00051100 */ sll $v0, $a1, 4 +/* 01C8BC 7001BCBC 24080040 */ li $t0, 64 +/* 01C8C0 7001BCC0 01C27821 */ addu $t7, $t6, $v0 +/* 01C8C4 7001BCC4 A1E00006 */ sb $zero, 6($t7) +/* 01C8C8 7001BCC8 8C980060 */ lw $t8, 0x60($a0) +/* 01C8CC 7001BCCC 240B007F */ li $t3, 127 +/* 01C8D0 7001BCD0 240E0005 */ li $t6, 5 +/* 01C8D4 7001BCD4 0302C821 */ addu $t9, $t8, $v0 +/* 01C8D8 7001BCD8 A320000A */ sb $zero, 0xa($t9) +/* 01C8DC 7001BCDC 8C890060 */ lw $t1, 0x60($a0) +/* 01C8E0 7001BCE0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 01C8E4 7001BCE4 44812000 */ mtc1 $at, $f4 +/* 01C8E8 7001BCE8 01225021 */ addu $t2, $t1, $v0 +/* 01C8EC 7001BCEC A1480007 */ sb $t0, 7($t2) +/* 01C8F0 7001BCF0 8C8C0060 */ lw $t4, 0x60($a0) +/* 01C8F4 7001BCF4 240800C8 */ li $t0, 200 +/* 01C8F8 7001BCF8 01826821 */ addu $t5, $t4, $v0 +/* 01C8FC 7001BCFC A1AB0009 */ sb $t3, 9($t5) +/* 01C900 7001BD00 8C8F0060 */ lw $t7, 0x60($a0) +/* 01C904 7001BD04 01E2C021 */ addu $t8, $t7, $v0 +/* 01C908 7001BD08 A30E0008 */ sb $t6, 8($t8) +/* 01C90C 7001BD0C 8C990060 */ lw $t9, 0x60($a0) +/* 01C910 7001BD10 03224821 */ addu $t1, $t9, $v0 +/* 01C914 7001BD14 A120000B */ sb $zero, 0xb($t1) +/* 01C918 7001BD18 8C8A0060 */ lw $t2, 0x60($a0) +/* 01C91C 7001BD1C 01426021 */ addu $t4, $t2, $v0 +/* 01C920 7001BD20 A5880004 */ sh $t0, 4($t4) +/* 01C924 7001BD24 8C8B0060 */ lw $t3, 0x60($a0) +/* 01C928 7001BD28 01626821 */ addu $t5, $t3, $v0 +/* 01C92C 7001BD2C 03E00008 */ jr $ra +/* 01C930 7001BD30 E5A4000C */ swc1 $f4, 0xc($t5) + +glabel __initFromBank +/* 01C934 7001BD34 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 01C938 7001BD38 AFB20020 */ sw $s2, 0x20($sp) +/* 01C93C 7001BD3C 00809025 */ move $s2, $a0 +/* 01C940 7001BD40 AFBF0024 */ sw $ra, 0x24($sp) +/* 01C944 7001BD44 AFB1001C */ sw $s1, 0x1c($sp) +/* 01C948 7001BD48 AFB00018 */ sw $s0, 0x18($sp) +/* 01C94C 7001BD4C AFA5002C */ sw $a1, 0x2c($sp) +/* 01C950 7001BD50 00A01025 */ move $v0, $a1 +/* 01C954 7001BD54 8C51000C */ lw $s1, 0xc($v0) +.L7001BD58: +/* 01C958 7001BD58 24420004 */ addiu $v0, $v0, 4 +/* 01C95C 7001BD5C 5220FFFE */ beql $s1, $zero, .L7001BD58 +/* 01C960 7001BD60 8C51000C */ lw $s1, 0xc($v0) +/* 01C964 7001BD64 924E0034 */ lbu $t6, 0x34($s2) +/* 01C968 7001BD68 00008025 */ move $s0, $zero +/* 01C96C 7001BD6C 19C0000C */ blez $t6, .L7001BDA0 +/* 01C970 7001BD70 02402025 */ move $a0, $s2 +.L7001BD74: +/* 01C974 7001BD74 0C006F2D */ jal __resetPerfChanState +/* 01C978 7001BD78 02002825 */ move $a1, $s0 +/* 01C97C 7001BD7C 02402025 */ move $a0, $s2 +/* 01C980 7001BD80 02202825 */ move $a1, $s1 +/* 01C984 7001BD84 0C006F18 */ jal __setInstChanState +/* 01C988 7001BD88 02003025 */ move $a2, $s0 +/* 01C98C 7001BD8C 924F0034 */ lbu $t7, 0x34($s2) +/* 01C990 7001BD90 26100001 */ addiu $s0, $s0, 1 +/* 01C994 7001BD94 020F082A */ slt $at, $s0, $t7 +/* 01C998 7001BD98 5420FFF6 */ bnezl $at, .L7001BD74 +/* 01C99C 7001BD9C 02402025 */ move $a0, $s2 +.L7001BDA0: +/* 01C9A0 7001BDA0 8FB8002C */ lw $t8, 0x2c($sp) +/* 01C9A4 7001BDA4 02402025 */ move $a0, $s2 +/* 01C9A8 7001BDA8 8F190008 */ lw $t9, 8($t8) +/* 01C9AC 7001BDAC 53200009 */ beql $t9, $zero, .L7001BDD4 +/* 01C9B0 7001BDB0 8FBF0024 */ lw $ra, 0x24($sp) +/* 01C9B4 7001BDB4 0C006F2D */ jal __resetPerfChanState +/* 01C9B8 7001BDB8 02002825 */ move $a1, $s0 +/* 01C9BC 7001BDBC 8FA8002C */ lw $t0, 0x2c($sp) +/* 01C9C0 7001BDC0 02402025 */ move $a0, $s2 +/* 01C9C4 7001BDC4 24060009 */ li $a2, 9 +/* 01C9C8 7001BDC8 0C006F18 */ jal __setInstChanState +/* 01C9CC 7001BDCC 8D050008 */ lw $a1, 8($t0) +/* 01C9D0 7001BDD0 8FBF0024 */ lw $ra, 0x24($sp) +.L7001BDD4: +/* 01C9D4 7001BDD4 8FB00018 */ lw $s0, 0x18($sp) +/* 01C9D8 7001BDD8 8FB1001C */ lw $s1, 0x1c($sp) +/* 01C9DC 7001BDDC 8FB20020 */ lw $s2, 0x20($sp) +/* 01C9E0 7001BDE0 03E00008 */ jr $ra +/* 01C9E4 7001BDE4 27BD0028 */ addiu $sp, $sp, 0x28 + +/* 01C9E8 7001BDE8 03E00008 */ jr $ra +/* 01C9EC 7001BDEC 00000000 */ nop + +glabel __vsDelta +/* 01C9F0 7001BDF0 8C8E0024 */ lw $t6, 0x24($a0) +/* 01C9F4 7001BDF4 240203E8 */ li $v0, 1000 +/* 01C9F8 7001BDF8 01C51823 */ subu $v1, $t6, $a1 +/* 01C9FC 7001BDFC 04600003 */ bltz $v1, .L7001BE0C +/* 01CA00 7001BE00 00000000 */ nop +/* 01CA04 7001BE04 03E00008 */ jr $ra +/* 01CA08 7001BE08 00601025 */ move $v0, $v1 + +.L7001BE0C: +/* 01CA0C 7001BE0C 03E00008 */ jr $ra +/* 01CA10 7001BE10 00000000 */ nop + +glabel __vsVol +/* 01CA14 7001BE14 908E0036 */ lbu $t6, 0x36($a0) +/* 01CA18 7001BE18 908F0033 */ lbu $t7, 0x33($a0) +/* 01CA1C 7001BE1C 90990030 */ lbu $t9, 0x30($a0) +/* 01CA20 7001BE20 908A0031 */ lbu $t2, 0x31($a0) +/* 01CA24 7001BE24 01CF0019 */ multu $t6, $t7 +/* 01CA28 7001BE28 8CA90060 */ lw $t1, 0x60($a1) +/* 01CA2C 7001BE2C 8C8E0020 */ lw $t6, 0x20($a0) +/* 01CA30 7001BE30 000A5900 */ sll $t3, $t2, 4 +/* 01CA34 7001BE34 012B6021 */ addu $t4, $t1, $t3 +/* 01CA38 7001BE38 918D0009 */ lbu $t5, 9($t4) +/* 01CA3C 7001BE3C 91CF000D */ lbu $t7, 0xd($t6) +/* 01CA40 7001BE40 0000C012 */ mflo $t8 +/* 01CA44 7001BE44 00000000 */ nop +/* 01CA48 7001BE48 00000000 */ nop +/* 01CA4C 7001BE4C 03190019 */ multu $t8, $t9 +/* 01CA50 7001BE50 84B90032 */ lh $t9, 0x32($a1) +/* 01CA54 7001BE54 00001812 */ mflo $v1 +/* 01CA58 7001BE58 00034183 */ sra $t0, $v1, 6 +/* 01CA5C 7001BE5C 01001825 */ move $v1, $t0 +/* 01CA60 7001BE60 01AF0019 */ multu $t5, $t7 +/* 01CA64 7001BE64 0000C012 */ mflo $t8 +/* 01CA68 7001BE68 00000000 */ nop +/* 01CA6C 7001BE6C 00000000 */ nop +/* 01CA70 7001BE70 03190019 */ multu $t8, $t9 +/* 01CA74 7001BE74 00003012 */ mflo $a2 +/* 01CA78 7001BE78 00064383 */ sra $t0, $a2, 0xe +/* 01CA7C 7001BE7C 00000000 */ nop +/* 01CA80 7001BE80 00680019 */ multu $v1, $t0 +/* 01CA84 7001BE84 00001812 */ mflo $v1 +/* 01CA88 7001BE88 000353C2 */ srl $t2, $v1, 0xf +/* 01CA8C 7001BE8C 000A1400 */ sll $v0, $t2, 0x10 +/* 01CA90 7001BE90 00024C03 */ sra $t1, $v0, 0x10 +/* 01CA94 7001BE94 03E00008 */ jr $ra +/* 01CA98 7001BE98 01201025 */ move $v0, $t1 + +glabel __seqpReleaseVoice +/* 01CA9C 7001BE9C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 01CAA0 7001BEA0 AFBF0034 */ sw $ra, 0x34($sp) +/* 01CAA4 7001BEA4 AFB60030 */ sw $s6, 0x30($sp) +/* 01CAA8 7001BEA8 AFB5002C */ sw $s5, 0x2c($sp) +/* 01CAAC 7001BEAC AFB40028 */ sw $s4, 0x28($sp) +/* 01CAB0 7001BEB0 AFB30024 */ sw $s3, 0x24($sp) +/* 01CAB4 7001BEB4 AFB20020 */ sw $s2, 0x20($sp) +/* 01CAB8 7001BEB8 AFB1001C */ sw $s1, 0x1c($sp) +/* 01CABC 7001BEBC AFB00018 */ sw $s0, 0x18($sp) +/* 01CAC0 7001BEC0 AFA60068 */ sw $a2, 0x68($sp) +/* 01CAC4 7001BEC4 8CB60010 */ lw $s6, 0x10($a1) +/* 01CAC8 7001BEC8 0080A025 */ move $s4, $a0 +/* 01CACC 7001BECC 00A0A825 */ move $s5, $a1 +/* 01CAD0 7001BED0 92CE0034 */ lbu $t6, 0x34($s6) +/* 01CAD4 7001BED4 55C0001A */ bnezl $t6, .L7001BF40 +/* 01CAD8 7001BED8 240A0003 */ li $t2, 3 +/* 01CADC 7001BEDC 8C900050 */ lw $s0, 0x50($a0) +/* 01CAE0 7001BEE0 24130006 */ li $s3, 6 +/* 01CAE4 7001BEE4 52000016 */ beql $s0, $zero, .L7001BF40 +/* 01CAE8 7001BEE8 240A0003 */ li $t2, 3 +.L7001BEEC: +/* 01CAEC 7001BEEC 860F000C */ lh $t7, 0xc($s0) +/* 01CAF0 7001BEF0 8E110000 */ lw $s1, ($s0) +/* 01CAF4 7001BEF4 166F000F */ bne $s3, $t7, .L7001BF34 +/* 01CAF8 7001BEF8 00000000 */ nop +/* 01CAFC 7001BEFC 8E180010 */ lw $t8, 0x10($s0) +/* 01CB00 7001BF00 16B8000C */ bne $s5, $t8, .L7001BF34 +/* 01CB04 7001BF04 00000000 */ nop +/* 01CB08 7001BF08 12200005 */ beqz $s1, .L7001BF20 +/* 01CB0C 7001BF0C 26920048 */ addiu $s2, $s4, 0x48 +/* 01CB10 7001BF10 8E390008 */ lw $t9, 8($s1) +/* 01CB14 7001BF14 8E080008 */ lw $t0, 8($s0) +/* 01CB18 7001BF18 03284821 */ addu $t1, $t9, $t0 +/* 01CB1C 7001BF1C AE290008 */ sw $t1, 8($s1) +.L7001BF20: +/* 01CB20 7001BF20 0C003AA4 */ jal alUnlink +/* 01CB24 7001BF24 02002025 */ move $a0, $s0 +/* 01CB28 7001BF28 02002025 */ move $a0, $s0 +/* 01CB2C 7001BF2C 0C003AB0 */ jal alLink +/* 01CB30 7001BF30 02402825 */ move $a1, $s2 +.L7001BF34: +/* 01CB34 7001BF34 1620FFED */ bnez $s1, .L7001BEEC +/* 01CB38 7001BF38 02208025 */ move $s0, $s1 +/* 01CB3C 7001BF3C 240A0003 */ li $t2, 3 +.L7001BF40: +/* 01CB40 7001BF40 A2C00033 */ sb $zero, 0x33($s6) +/* 01CB44 7001BF44 A2CA0034 */ sb $t2, 0x34($s6) +/* 01CB48 7001BF48 A2C00030 */ sb $zero, 0x30($s6) +/* 01CB4C 7001BF4C 8FAC0068 */ lw $t4, 0x68($sp) +/* 01CB50 7001BF50 8E8B001C */ lw $t3, 0x1c($s4) +/* 01CB54 7001BF54 02A02825 */ move $a1, $s5 +/* 01CB58 7001BF58 00003025 */ move $a2, $zero +/* 01CB5C 7001BF5C 016C6821 */ addu $t5, $t3, $t4 +/* 01CB60 7001BF60 AECD0024 */ sw $t5, 0x24($s6) +/* 01CB64 7001BF64 8E840014 */ lw $a0, 0x14($s4) +/* 01CB68 7001BF68 0C0082D0 */ jal alSynSetPriority +/* 01CB6C 7001BF6C 26920048 */ addiu $s2, $s4, 0x48 +/* 01CB70 7001BF70 8E840014 */ lw $a0, 0x14($s4) +/* 01CB74 7001BF74 02A02825 */ move $a1, $s5 +/* 01CB78 7001BF78 00003025 */ move $a2, $zero +/* 01CB7C 7001BF7C 0C004CE8 */ jal alSynSetVol +/* 01CB80 7001BF80 8FA70068 */ lw $a3, 0x68($sp) +/* 01CB84 7001BF84 240E0005 */ li $t6, 5 +/* 01CB88 7001BF88 A7AE0050 */ sh $t6, 0x50($sp) +/* 01CB8C 7001BF8C AFB50054 */ sw $s5, 0x54($sp) +/* 01CB90 7001BF90 02402025 */ move $a0, $s2 +/* 01CB94 7001BF94 27A50050 */ addiu $a1, $sp, 0x50 +/* 01CB98 7001BF98 0C004BBF */ jal alEvtqPostEvent +/* 01CB9C 7001BF9C 8FA60068 */ lw $a2, 0x68($sp) +/* 01CBA0 7001BFA0 8FBF0034 */ lw $ra, 0x34($sp) +/* 01CBA4 7001BFA4 8FB00018 */ lw $s0, 0x18($sp) +/* 01CBA8 7001BFA8 8FB1001C */ lw $s1, 0x1c($sp) +/* 01CBAC 7001BFAC 8FB20020 */ lw $s2, 0x20($sp) +/* 01CBB0 7001BFB0 8FB30024 */ lw $s3, 0x24($sp) +/* 01CBB4 7001BFB4 8FB40028 */ lw $s4, 0x28($sp) +/* 01CBB8 7001BFB8 8FB5002C */ lw $s5, 0x2c($sp) +/* 01CBBC 7001BFBC 8FB60030 */ lw $s6, 0x30($sp) +/* 01CBC0 7001BFC0 03E00008 */ jr $ra +/* 01CBC4 7001BFC4 27BD0060 */ addiu $sp, $sp, 0x60 + +glabel __voiceNeedsNoteKill +/* 01CBC8 7001BFC8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 01CBCC 7001BFCC AFBF0014 */ sw $ra, 0x14($sp) +/* 01CBD0 7001BFD0 8C870050 */ lw $a3, 0x50($a0) +/* 01CBD4 7001BFD4 00805025 */ move $t2, $a0 +/* 01CBD8 7001BFD8 00004025 */ move $t0, $zero +/* 01CBDC 7001BFDC 10E0001F */ beqz $a3, .L7001C05C +/* 01CBE0 7001BFE0 24090001 */ li $t1, 1 +/* 01CBE4 7001BFE4 24040005 */ li $a0, 5 +.L7001BFE8: +/* 01CBE8 7001BFE8 84EE000C */ lh $t6, 0xc($a3) +/* 01CBEC 7001BFEC 8CE30008 */ lw $v1, 8($a3) +/* 01CBF0 7001BFF0 8CE20000 */ lw $v0, ($a3) +/* 01CBF4 7001BFF4 148E0017 */ bne $a0, $t6, .L7001C054 +/* 01CBF8 7001BFF8 01034021 */ addu $t0, $t0, $v1 +/* 01CBFC 7001BFFC 8CEF0010 */ lw $t7, 0x10($a3) +/* 01CC00 7001C000 14AF0014 */ bne $a1, $t7, .L7001C054 +/* 01CC04 7001C004 00C8082A */ slt $at, $a2, $t0 +/* 01CC08 7001C008 10200010 */ beqz $at, .L7001C04C +/* 01CC0C 7001C00C 00E02025 */ move $a0, $a3 +/* 01CC10 7001C010 50400005 */ beql $v0, $zero, .L7001C028 +/* 01CC14 7001C014 AFA7002C */ sw $a3, 0x2c($sp) +/* 01CC18 7001C018 8C580008 */ lw $t8, 8($v0) +/* 01CC1C 7001C01C 0303C821 */ addu $t9, $t8, $v1 +/* 01CC20 7001C020 AC590008 */ sw $t9, 8($v0) +/* 01CC24 7001C024 AFA7002C */ sw $a3, 0x2c($sp) +.L7001C028: +/* 01CC28 7001C028 A3A9001F */ sb $t1, 0x1f($sp) +/* 01CC2C 7001C02C 0C003AA4 */ jal alUnlink +/* 01CC30 7001C030 AFAA0030 */ sw $t2, 0x30($sp) +/* 01CC34 7001C034 8FAA0030 */ lw $t2, 0x30($sp) +/* 01CC38 7001C038 8FA4002C */ lw $a0, 0x2c($sp) +/* 01CC3C 7001C03C 0C003AB0 */ jal alLink +/* 01CC40 7001C040 25450048 */ addiu $a1, $t2, 0x48 +/* 01CC44 7001C044 10000005 */ b .L7001C05C +/* 01CC48 7001C048 93A9001F */ lbu $t1, 0x1f($sp) +.L7001C04C: +/* 01CC4C 7001C04C 10000003 */ b .L7001C05C +/* 01CC50 7001C050 00004825 */ move $t1, $zero +.L7001C054: +/* 01CC54 7001C054 1440FFE4 */ bnez $v0, .L7001BFE8 +/* 01CC58 7001C058 00403825 */ move $a3, $v0 +.L7001C05C: +/* 01CC5C 7001C05C 8FBF0014 */ lw $ra, 0x14($sp) +/* 01CC60 7001C060 27BD0030 */ addiu $sp, $sp, 0x30 +/* 01CC64 7001C064 01201025 */ move $v0, $t1 +/* 01CC68 7001C068 03E00008 */ jr $ra +/* 01CC6C 7001C06C 00000000 */ nop + +glabel __unmapVoice +/* 01CC70 7001C070 8C830064 */ lw $v1, 0x64($a0) +/* 01CC74 7001C074 00001025 */ move $v0, $zero +/* 01CC78 7001C078 24A6FFFC */ addiu $a2, $a1, -4 +/* 01CC7C 7001C07C 10600016 */ beqz $v1, .L7001C0D8 +/* 01CC80 7001C080 00000000 */ nop +.L7001C084: +/* 01CC84 7001C084 54660011 */ bnel $v1, $a2, .L7001C0CC +/* 01CC88 7001C088 00601025 */ move $v0, $v1 +/* 01CC8C 7001C08C 50400005 */ beql $v0, $zero, .L7001C0A4 +/* 01CC90 7001C090 8C6F0000 */ lw $t7, ($v1) +/* 01CC94 7001C094 8C6E0000 */ lw $t6, ($v1) +/* 01CC98 7001C098 10000003 */ b .L7001C0A8 +/* 01CC9C 7001C09C AC4E0000 */ sw $t6, ($v0) +/* 01CCA0 7001C0A0 8C6F0000 */ lw $t7, ($v1) +.L7001C0A4: +/* 01CCA4 7001C0A4 AC8F0064 */ sw $t7, 0x64($a0) +.L7001C0A8: +/* 01CCA8 7001C0A8 8C980068 */ lw $t8, 0x68($a0) +/* 01CCAC 7001C0AC 54780003 */ bnel $v1, $t8, .L7001C0BC +/* 01CCB0 7001C0B0 8C99006C */ lw $t9, 0x6c($a0) +/* 01CCB4 7001C0B4 AC820068 */ sw $v0, 0x68($a0) +/* 01CCB8 7001C0B8 8C99006C */ lw $t9, 0x6c($a0) +.L7001C0BC: +/* 01CCBC 7001C0BC AC790000 */ sw $t9, ($v1) +/* 01CCC0 7001C0C0 03E00008 */ jr $ra +/* 01CCC4 7001C0C4 AC83006C */ sw $v1, 0x6c($a0) + +/* 01CCC8 7001C0C8 00601025 */ move $v0, $v1 +.L7001C0CC: +/* 01CCCC 7001C0CC 8C630000 */ lw $v1, ($v1) +/* 01CCD0 7001C0D0 1460FFEC */ bnez $v1, .L7001C084 +/* 01CCD4 7001C0D4 00000000 */ nop +.L7001C0D8: +/* 01CCD8 7001C0D8 03E00008 */ jr $ra +/* 01CCDC 7001C0DC 00000000 */ nop + +glabel __postNextSeqEvent +/* 01CCE0 7001C0E0 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 01CCE4 7001C0E4 AFBF0014 */ sw $ra, 0x14($sp) +/* 01CCE8 7001C0E8 8C8E002C */ lw $t6, 0x2c($a0) +/* 01CCEC 7001C0EC 24010001 */ li $at, 1 +/* 01CCF0 7001C0F0 00803825 */ move $a3, $a0 +/* 01CCF4 7001C0F4 15C1002D */ bne $t6, $at, .L7001C1AC +/* 01CCF8 7001C0F8 8C860018 */ lw $a2, 0x18($a0) +/* 01CCFC 7001C0FC 10C0002B */ beqz $a2, .L7001C1AC +/* 01CD00 7001C100 00C02025 */ move $a0, $a2 +/* 01CD04 7001C104 27A50024 */ addiu $a1, $sp, 0x24 +/* 01CD08 7001C108 AFA60020 */ sw $a2, 0x20($sp) +/* 01CD0C 7001C10C 0C008264 */ jal __alSeqNextDelta +/* 01CD10 7001C110 AFA70038 */ sw $a3, 0x38($sp) +/* 01CD14 7001C114 8FA60020 */ lw $a2, 0x20($sp) +/* 01CD18 7001C118 10400024 */ beqz $v0, .L7001C1AC +/* 01CD1C 7001C11C 8FA70038 */ lw $a3, 0x38($sp) +/* 01CD20 7001C120 8CEF0084 */ lw $t7, 0x84($a3) +/* 01CD24 7001C124 00C02025 */ move $a0, $a2 +/* 01CD28 7001C128 51E00018 */ beql $t7, $zero, .L7001C18C +/* 01CD2C 7001C12C A7A00028 */ sh $zero, 0x28($sp) +/* 01CD30 7001C130 AFA60020 */ sw $a2, 0x20($sp) +/* 01CD34 7001C134 0C008156 */ jal alSeqGetTicks +/* 01CD38 7001C138 AFA70038 */ sw $a3, 0x38($sp) +/* 01CD3C 7001C13C 8FA70038 */ lw $a3, 0x38($sp) +/* 01CD40 7001C140 8FB80024 */ lw $t8, 0x24($sp) +/* 01CD44 7001C144 8FA60020 */ lw $a2, 0x20($sp) +/* 01CD48 7001C148 8CE80080 */ lw $t0, 0x80($a3) +/* 01CD4C 7001C14C 0058C821 */ addu $t9, $v0, $t8 +/* 01CD50 7001C150 00C02025 */ move $a0, $a2 +/* 01CD54 7001C154 8D090008 */ lw $t1, 8($t0) +/* 01CD58 7001C158 0329082A */ slt $at, $t9, $t1 +/* 01CD5C 7001C15C 5420000B */ bnezl $at, .L7001C18C +/* 01CD60 7001C160 A7A00028 */ sh $zero, 0x28($sp) +/* 01CD64 7001C164 8CE5007C */ lw $a1, 0x7c($a3) +/* 01CD68 7001C168 0C00814F */ jal alSeqSetLoc +/* 01CD6C 7001C16C AFA70038 */ sw $a3, 0x38($sp) +/* 01CD70 7001C170 8FA70038 */ lw $a3, 0x38($sp) +/* 01CD74 7001C174 2401FFFF */ li $at, -1 +/* 01CD78 7001C178 8CE20084 */ lw $v0, 0x84($a3) +/* 01CD7C 7001C17C 10410002 */ beq $v0, $at, .L7001C188 +/* 01CD80 7001C180 244AFFFF */ addiu $t2, $v0, -1 +/* 01CD84 7001C184 ACEA0084 */ sw $t2, 0x84($a3) +.L7001C188: +/* 01CD88 7001C188 A7A00028 */ sh $zero, 0x28($sp) +.L7001C18C: +/* 01CD8C 7001C18C 8CEB0024 */ lw $t3, 0x24($a3) +/* 01CD90 7001C190 8FAC0024 */ lw $t4, 0x24($sp) +/* 01CD94 7001C194 24E40048 */ addiu $a0, $a3, 0x48 +/* 01CD98 7001C198 27A50028 */ addiu $a1, $sp, 0x28 +/* 01CD9C 7001C19C 016C0019 */ multu $t3, $t4 +/* 01CDA0 7001C1A0 00003012 */ mflo $a2 +/* 01CDA4 7001C1A4 0C004BBF */ jal alEvtqPostEvent +/* 01CDA8 7001C1A8 00000000 */ nop +.L7001C1AC: +/* 01CDAC 7001C1AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 01CDB0 7001C1B0 27BD0038 */ addiu $sp, $sp, 0x38 +/* 01CDB4 7001C1B4 03E00008 */ jr $ra +/* 01CDB8 7001C1B8 00000000 */ nop + +glabel __handleMetaMsg +/* 01CDBC 7001C1BC 908E0008 */ lbu $t6, 8($a0) +/* 01CDC0 7001C1C0 240100FF */ li $at, 255 +/* 01CDC4 7001C1C4 15C10019 */ bne $t6, $at, .L7001C22C +/* 01CDC8 7001C1C8 00000000 */ nop +/* 01CDCC 7001C1CC 908F0009 */ lbu $t7, 9($a0) +/* 01CDD0 7001C1D0 24010051 */ li $at, 81 +/* 01CDD4 7001C1D4 24820004 */ addiu $v0, $a0, 4 +/* 01CDD8 7001C1D8 15E10014 */ bne $t7, $at, .L7001C22C +/* 01CDDC 7001C1DC 00000000 */ nop +/* 01CDE0 7001C1E0 904E0008 */ lbu $t6, 8($v0) +/* 01CDE4 7001C1E4 90580007 */ lbu $t8, 7($v0) +/* 01CDE8 7001C1E8 8CA60018 */ lw $a2, 0x18($a1) +/* 01CDEC 7001C1EC 000E7A00 */ sll $t7, $t6, 8 +/* 01CDF0 7001C1F0 904E0009 */ lbu $t6, 9($v0) +/* 01CDF4 7001C1F4 0018CC00 */ sll $t9, $t8, 0x10 +/* 01CDF8 7001C1F8 032FC025 */ or $t8, $t9, $t7 +/* 01CDFC 7001C1FC 030E1825 */ or $v1, $t8, $t6 +/* 01CE00 7001C200 44832000 */ mtc1 $v1, $f4 +/* 01CE04 7001C204 241801E8 */ li $t8, 488 +/* 01CE08 7001C208 10C00007 */ beqz $a2, .L7001C228 +/* 01CE0C 7001C20C 46802020 */ cvt.s.w $f0, $f4 +/* 01CE10 7001C210 C4C60014 */ lwc1 $f6, 0x14($a2) +/* 01CE14 7001C214 46060202 */ mul.s $f8, $f0, $f6 +/* 01CE18 7001C218 4600428D */ trunc.w.s $f10, $f8 +/* 01CE1C 7001C21C 440F5000 */ mfc1 $t7, $f10 +/* 01CE20 7001C220 03E00008 */ jr $ra +/* 01CE24 7001C224 ACAF0024 */ sw $t7, 0x24($a1) + +.L7001C228: +/* 01CE28 7001C228 ACB80024 */ sw $t8, 0x24($a1) +.L7001C22C: +/* 01CE2C 7001C22C 03E00008 */ jr $ra +/* 01CE30 7001C230 00000000 */ nop + +glabel __vsPan +/* 01CE34 7001C234 908F0031 */ lbu $t7, 0x31($a0) +/* 01CE38 7001C238 8CAE0060 */ lw $t6, 0x60($a1) +/* 01CE3C 7001C23C 8C890020 */ lw $t1, 0x20($a0) +/* 01CE40 7001C240 000FC100 */ sll $t8, $t7, 4 +/* 01CE44 7001C244 01D8C821 */ addu $t9, $t6, $t8 +/* 01CE48 7001C248 93280007 */ lbu $t0, 7($t9) +/* 01CE4C 7001C24C 912A000C */ lbu $t2, 0xc($t1) +/* 01CE50 7001C250 010A1821 */ addu $v1, $t0, $t2 +/* 01CE54 7001C254 2463FFC0 */ addiu $v1, $v1, -0x40 +/* 01CE58 7001C258 5C600003 */ bgtzl $v1, .L7001C268 +/* 01CE5C 7001C25C 2861007F */ slti $at, $v1, 0x7f +/* 01CE60 7001C260 00001825 */ move $v1, $zero +/* 01CE64 7001C264 2861007F */ slti $at, $v1, 0x7f +.L7001C268: +/* 01CE68 7001C268 14200002 */ bnez $at, .L7001C274 +/* 01CE6C 7001C26C 00000000 */ nop +/* 01CE70 7001C270 2403007F */ li $v1, 127 +.L7001C274: +/* 01CE74 7001C274 03E00008 */ jr $ra +/* 01CE78 7001C278 306200FF */ andi $v0, $v1, 0xff + +glabel __lookupVoice +/* 01CE7C 7001C27C AFA50004 */ sw $a1, 4($sp) +/* 01CE80 7001C280 AFA60008 */ sw $a2, 8($sp) +/* 01CE84 7001C284 8C830064 */ lw $v1, 0x64($a0) +/* 01CE88 7001C288 30CF00FF */ andi $t7, $a2, 0xff +/* 01CE8C 7001C28C 01E03025 */ move $a2, $t7 +/* 01CE90 7001C290 10600014 */ beqz $v1, .L7001C2E4 +/* 01CE94 7001C294 30AE00FF */ andi $t6, $a1, 0xff +/* 01CE98 7001C298 01C01025 */ move $v0, $t6 +/* 01CE9C 7001C29C 24070004 */ li $a3, 4 +/* 01CEA0 7001C2A0 24050003 */ li $a1, 3 +/* 01CEA4 7001C2A4 90780032 */ lbu $t8, 0x32($v1) +.L7001C2A8: +/* 01CEA8 7001C2A8 5458000C */ bnel $v0, $t8, .L7001C2DC +/* 01CEAC 7001C2AC 8C630000 */ lw $v1, ($v1) +/* 01CEB0 7001C2B0 90790031 */ lbu $t9, 0x31($v1) +/* 01CEB4 7001C2B4 54D90009 */ bnel $a2, $t9, .L7001C2DC +/* 01CEB8 7001C2B8 8C630000 */ lw $v1, ($v1) +/* 01CEBC 7001C2BC 90640035 */ lbu $a0, 0x35($v1) +/* 01CEC0 7001C2C0 50A40006 */ beql $a1, $a0, .L7001C2DC +/* 01CEC4 7001C2C4 8C630000 */ lw $v1, ($v1) +/* 01CEC8 7001C2C8 50E40004 */ beql $a3, $a0, .L7001C2DC +/* 01CECC 7001C2CC 8C630000 */ lw $v1, ($v1) +/* 01CED0 7001C2D0 03E00008 */ jr $ra +/* 01CED4 7001C2D4 00601025 */ move $v0, $v1 + +/* 01CED8 7001C2D8 8C630000 */ lw $v1, ($v1) +.L7001C2DC: +/* 01CEDC 7001C2DC 5460FFF2 */ bnezl $v1, .L7001C2A8 +/* 01CEE0 7001C2E0 90780032 */ lbu $t8, 0x32($v1) +.L7001C2E4: +/* 01CEE4 7001C2E4 00001025 */ move $v0, $zero +/* 01CEE8 7001C2E8 03E00008 */ jr $ra +/* 01CEEC 7001C2EC 00000000 */ nop + +glabel __mapVoice +/* 01CEF0 7001C2F0 AFA50004 */ sw $a1, 4($sp) +/* 01CEF4 7001C2F4 AFA60008 */ sw $a2, 8($sp) +/* 01CEF8 7001C2F8 AFA7000C */ sw $a3, 0xc($sp) +/* 01CEFC 7001C2FC 8C83006C */ lw $v1, 0x6c($a0) +/* 01CF00 7001C300 30AE00FF */ andi $t6, $a1, 0xff +/* 01CF04 7001C304 30CF00FF */ andi $t7, $a2, 0xff +/* 01CF08 7001C308 30F800FF */ andi $t8, $a3, 0xff +/* 01CF0C 7001C30C 03003825 */ move $a3, $t8 +/* 01CF10 7001C310 01E03025 */ move $a2, $t7 +/* 01CF14 7001C314 10600010 */ beqz $v1, .L7001C358 +/* 01CF18 7001C318 01C02825 */ move $a1, $t6 +/* 01CF1C 7001C31C 8C790000 */ lw $t9, ($v1) +/* 01CF20 7001C320 AC99006C */ sw $t9, 0x6c($a0) +/* 01CF24 7001C324 AC600000 */ sw $zero, ($v1) +/* 01CF28 7001C328 8C880064 */ lw $t0, 0x64($a0) +/* 01CF2C 7001C32C 55000004 */ bnezl $t0, .L7001C340 +/* 01CF30 7001C330 8C890068 */ lw $t1, 0x68($a0) +/* 01CF34 7001C334 10000003 */ b .L7001C344 +/* 01CF38 7001C338 AC830064 */ sw $v1, 0x64($a0) +/* 01CF3C 7001C33C 8C890068 */ lw $t1, 0x68($a0) +.L7001C340: +/* 01CF40 7001C340 AD230000 */ sw $v1, ($t1) +.L7001C344: +/* 01CF44 7001C344 AC830068 */ sw $v1, 0x68($a0) +/* 01CF48 7001C348 A0670031 */ sb $a3, 0x31($v1) +/* 01CF4C 7001C34C A0650032 */ sb $a1, 0x32($v1) +/* 01CF50 7001C350 A0660033 */ sb $a2, 0x33($v1) +/* 01CF54 7001C354 AC630014 */ sw $v1, 0x14($v1) +.L7001C358: +/* 01CF58 7001C358 03E00008 */ jr $ra +/* 01CF5C 7001C35C 00601025 */ move $v0, $v1 + +glabel __lookupSoundQuick +/* 01CF60 7001C360 AFA50004 */ sw $a1, 4($sp) +/* 01CF64 7001C364 AFA60008 */ sw $a2, 8($sp) +/* 01CF68 7001C368 AFA7000C */ sw $a3, 0xc($sp) +/* 01CF6C 7001C36C 8C980060 */ lw $t8, 0x60($a0) +/* 01CF70 7001C370 30EF00FF */ andi $t7, $a3, 0xff +/* 01CF74 7001C374 000FC900 */ sll $t9, $t7, 4 +/* 01CF78 7001C378 03196021 */ addu $t4, $t8, $t9 +/* 01CF7C 7001C37C 8D820000 */ lw $v0, ($t4) +/* 01CF80 7001C380 30AE00FF */ andi $t6, $a1, 0xff +/* 01CF84 7001C384 30CB00FF */ andi $t3, $a2, 0xff +/* 01CF88 7001C388 8448000E */ lh $t0, 0xe($v0) +/* 01CF8C 7001C38C 24030001 */ li $v1, 1 +/* 01CF90 7001C390 01C04825 */ move $t1, $t6 +/* 01CF94 7001C394 1900002E */ blez $t0, .L7001C450 +/* 01CF98 7001C398 00682821 */ addu $a1, $v1, $t0 +.L7001C39C: +/* 01CF9C 7001C39C 04A10003 */ bgez $a1, .L7001C3AC +/* 01CFA0 7001C3A0 00056843 */ sra $t5, $a1, 1 +/* 01CFA4 7001C3A4 24A10001 */ addiu $at, $a1, 1 +/* 01CFA8 7001C3A8 00016843 */ sra $t5, $at, 1 +.L7001C3AC: +/* 01CFAC 7001C3AC 000D7080 */ sll $t6, $t5, 2 +/* 01CFB0 7001C3B0 004E7821 */ addu $t7, $v0, $t6 +/* 01CFB4 7001C3B4 8DE7000C */ lw $a3, 0xc($t7) +/* 01CFB8 7001C3B8 01A02025 */ move $a0, $t5 +/* 01CFBC 7001C3BC 8CE60004 */ lw $a2, 4($a3) +/* 01CFC0 7001C3C0 90CA0002 */ lbu $t2, 2($a2) +/* 01CFC4 7001C3C4 012A082A */ slt $at, $t1, $t2 +/* 01CFC8 7001C3C8 54200011 */ bnezl $at, .L7001C410 +/* 01CFCC 7001C3CC 012A082A */ slt $at, $t1, $t2 +/* 01CFD0 7001C3D0 90D80003 */ lbu $t8, 3($a2) +/* 01CFD4 7001C3D4 0309082A */ slt $at, $t8, $t1 +/* 01CFD8 7001C3D8 5420000D */ bnezl $at, .L7001C410 +/* 01CFDC 7001C3DC 012A082A */ slt $at, $t1, $t2 +/* 01CFE0 7001C3E0 90D90000 */ lbu $t9, ($a2) +/* 01CFE4 7001C3E4 01602825 */ move $a1, $t3 +/* 01CFE8 7001C3E8 0179082A */ slt $at, $t3, $t9 +/* 01CFEC 7001C3EC 54200008 */ bnezl $at, .L7001C410 +/* 01CFF0 7001C3F0 012A082A */ slt $at, $t1, $t2 +/* 01CFF4 7001C3F4 90CC0001 */ lbu $t4, 1($a2) +/* 01CFF8 7001C3F8 0185082A */ slt $at, $t4, $a1 +/* 01CFFC 7001C3FC 54200004 */ bnezl $at, .L7001C410 +/* 01D000 7001C400 012A082A */ slt $at, $t1, $t2 +/* 01D004 7001C404 03E00008 */ jr $ra +/* 01D008 7001C408 00E01025 */ move $v0, $a3 + +/* 01D00C 7001C40C 012A082A */ slt $at, $t1, $t2 +.L7001C410: +/* 01D010 7001C410 14200009 */ bnez $at, .L7001C438 +/* 01D014 7001C414 00000000 */ nop +/* 01D018 7001C418 90CD0000 */ lbu $t5, ($a2) +/* 01D01C 7001C41C 016D082A */ slt $at, $t3, $t5 +/* 01D020 7001C420 50200008 */ beql $at, $zero, .L7001C444 +/* 01D024 7001C424 24830001 */ addiu $v1, $a0, 1 +/* 01D028 7001C428 90CE0003 */ lbu $t6, 3($a2) +/* 01D02C 7001C42C 01C9082A */ slt $at, $t6, $t1 +/* 01D030 7001C430 54200004 */ bnezl $at, .L7001C444 +/* 01D034 7001C434 24830001 */ addiu $v1, $a0, 1 +.L7001C438: +/* 01D038 7001C438 10000002 */ b .L7001C444 +/* 01D03C 7001C43C 2488FFFF */ addiu $t0, $a0, -1 +/* 01D040 7001C440 24830001 */ addiu $v1, $a0, 1 +.L7001C444: +/* 01D044 7001C444 0103082A */ slt $at, $t0, $v1 +/* 01D048 7001C448 5020FFD4 */ beql $at, $zero, .L7001C39C +/* 01D04C 7001C44C 00682821 */ addu $a1, $v1, $t0 +.L7001C450: +/* 01D050 7001C450 00001025 */ move $v0, $zero +/* 01D054 7001C454 03E00008 */ jr $ra +/* 01D058 7001C458 00000000 */ nop + +glabel __handleMIDIMsg +/* 01D05C 7001C45C 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 01D060 7001C460 AFBF0024 */ sw $ra, 0x24($sp) +/* 01D064 7001C464 90960008 */ lbu $s6, 8($a0) +/* 01D068 7001C468 90930009 */ lbu $s3, 9($a0) +/* 01D06C 7001C46C 9094000A */ lbu $s4, 0xa($a0) +/* 01D070 7001C470 32C300F0 */ andi $v1, $s6, 0xf0 +/* 01D074 7001C474 246FFF80 */ addiu $t7, $v1, -0x80 +/* 01D078 7001C478 2DE10061 */ sltiu $at, $t7, 0x61 +/* 01D07C 7001C47C 32CE000F */ andi $t6, $s6, 0xf +/* 01D080 7001C480 102001F8 */ beqz $at, .L7001CC64 +/* 01D084 7001C484 01C0B025 */ move $s6, $t6 +/* 01D088 7001C488 000F7880 */ sll $t7, $t7, 2 +/* 01D08C 7001C48C 3C018003 */ lui $at, %hi(jpt_80029A50) +/* 01D090 7001C490 002F0821 */ addu $at, $at, $t7 +/* 01D094 7001C494 8C2F9A50 */ lw $t7, %lo(jpt_80029A50)($at) +/* 01D098 7001C498 01E00008 */ jr $t7 +/* 01D09C 7001C49C 00000000 */ nop +.L7001C4A0: +/* 01D0A0 7001C4A0 528000D5 */ beql $s4, $zero, .L7001C7F8 +/* 01D0A4 7001C4A4 02202025 */ move $a0, $s1 +/* 01D0A8 7001C4A8 8E38002C */ lw $t8, 0x2c($s1) +/* 01D0AC 7001C4AC 24010001 */ li $at, 1 +/* 01D0B0 7001C4B0 02202025 */ move $a0, $s1 +/* 01D0B4 7001C4B4 170101EB */ bne $t8, $at, .L7001CC64 +/* 01D0B8 7001C4B8 326500FF */ andi $a1, $s3, 0xff +/* 01D0BC 7001C4BC 328600FF */ andi $a2, $s4, 0xff +/* 01D0C0 7001C4C0 0C0070D8 */ jal __lookupSoundQuick +/* 01D0C4 7001C4C4 32C700FF */ andi $a3, $s6, 0xff +/* 01D0C8 7001C4C8 104001E6 */ beqz $v0, .L7001CC64 +/* 01D0CC 7001C4CC 0040B825 */ move $s7, $v0 +/* 01D0D0 7001C4D0 8E390060 */ lw $t9, 0x60($s1) +/* 01D0D4 7001C4D4 0016F100 */ sll $fp, $s6, 4 +/* 01D0D8 7001C4D8 02202025 */ move $a0, $s1 +/* 01D0DC 7001C4DC 033E7021 */ addu $t6, $t9, $fp +/* 01D0E0 7001C4E0 91CF0008 */ lbu $t7, 8($t6) +/* 01D0E4 7001C4E4 A7A0009E */ sh $zero, 0x9e($sp) +/* 01D0E8 7001C4E8 A3A000A0 */ sb $zero, 0xa0($sp) +/* 01D0EC 7001C4EC 326500FF */ andi $a1, $s3, 0xff +/* 01D0F0 7001C4F0 328600FF */ andi $a2, $s4, 0xff +/* 01D0F4 7001C4F4 32C700FF */ andi $a3, $s6, 0xff +/* 01D0F8 7001C4F8 0C0070BC */ jal __mapVoice +/* 01D0FC 7001C4FC A7AF009C */ sh $t7, 0x9c($sp) +/* 01D100 7001C500 104001D8 */ beqz $v0, .L7001CC64 +/* 01D104 7001C504 00408025 */ move $s0, $v0 +/* 01D108 7001C508 8E240014 */ lw $a0, 0x14($s1) +/* 01D10C 7001C50C 24450004 */ addiu $a1, $v0, 4 +/* 01D110 7001C510 AFA50034 */ sw $a1, 0x34($sp) +/* 01D114 7001C514 0C004C96 */ jal alSynAllocVoice +/* 01D118 7001C518 27A6009C */ addiu $a2, $sp, 0x9c +/* 01D11C 7001C51C AE170020 */ sw $s7, 0x20($s0) +/* 01D120 7001C520 A2000034 */ sb $zero, 0x34($s0) +/* 01D124 7001C524 8E380060 */ lw $t8, 0x60($s1) +/* 01D128 7001C528 24150002 */ li $s5, 2 +/* 01D12C 7001C52C 031EC821 */ addu $t9, $t8, $fp +/* 01D130 7001C530 932E000B */ lbu $t6, 0xb($t9) +/* 01D134 7001C534 29C10040 */ slti $at, $t6, 0x40 +/* 01D138 7001C538 54200004 */ bnezl $at, .L7001C54C +/* 01D13C 7001C53C A2000035 */ sb $zero, 0x35($s0) +/* 01D140 7001C540 10000002 */ b .L7001C54C +/* 01D144 7001C544 A2150035 */ sb $s5, 0x35($s0) +/* 01D148 7001C548 A2000035 */ sb $zero, 0x35($s0) +.L7001C54C: +/* 01D14C 7001C54C 8EE20004 */ lw $v0, 4($s7) +/* 01D150 7001C550 904F0004 */ lbu $t7, 4($v0) +/* 01D154 7001C554 804E0005 */ lb $t6, 5($v0) +/* 01D158 7001C558 026FC023 */ subu $t8, $s3, $t7 +/* 01D15C 7001C55C 0018C880 */ sll $t9, $t8, 2 +/* 01D160 7001C560 0338C823 */ subu $t9, $t9, $t8 +/* 01D164 7001C564 0019C8C0 */ sll $t9, $t9, 3 +/* 01D168 7001C568 0338C821 */ addu $t9, $t9, $t8 +/* 01D16C 7001C56C 0019C880 */ sll $t9, $t9, 2 +/* 01D170 7001C570 032E2021 */ addu $a0, $t9, $t6 +/* 01D174 7001C574 00047C00 */ sll $t7, $a0, 0x10 +/* 01D178 7001C578 0C004DF0 */ jal alCents2Ratio +/* 01D17C 7001C57C 000F2403 */ sra $a0, $t7, 0x10 +/* 01D180 7001C580 E6000028 */ swc1 $f0, 0x28($s0) +/* 01D184 7001C584 8EF90000 */ lw $t9, ($s7) +/* 01D188 7001C588 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 01D18C 7001C58C 44812000 */ mtc1 $at, $f4 +/* 01D190 7001C590 932E000C */ lbu $t6, 0xc($t9) +/* 01D194 7001C594 A20E0030 */ sb $t6, 0x30($s0) +/* 01D198 7001C598 8EF80000 */ lw $t8, ($s7) +/* 01D19C 7001C59C 8E2F001C */ lw $t7, 0x1c($s1) +/* 01D1A0 7001C5A0 8F190000 */ lw $t9, ($t8) +/* 01D1A4 7001C5A4 A2000037 */ sb $zero, 0x37($s0) +/* 01D1A8 7001C5A8 01F97021 */ addu $t6, $t7, $t9 +/* 01D1AC 7001C5AC AE0E0024 */ sw $t6, 0x24($s0) +/* 01D1B0 7001C5B0 8E380060 */ lw $t8, 0x60($s1) +/* 01D1B4 7001C5B4 031E7821 */ addu $t7, $t8, $fp +/* 01D1B8 7001C5B8 8DF20000 */ lw $s2, ($t7) +/* 01D1BC 7001C5BC E7A4008C */ swc1 $f4, 0x8c($sp) +/* 01D1C0 7001C5C0 92460004 */ lbu $a2, 4($s2) +/* 01D1C4 7001C5C4 50C0001A */ beql $a2, $zero, .L7001C630 +/* 01D1C8 7001C5C8 4458F800 */ cfc1 $t8, $31 +/* 01D1CC 7001C5CC 8E220070 */ lw $v0, 0x70($s1) +/* 01D1D0 7001C5D0 50400017 */ beql $v0, $zero, .L7001C630 +/* 01D1D4 7001C5D4 4458F800 */ cfc1 $t8, $31 +/* 01D1D8 7001C5D8 92590006 */ lbu $t9, 6($s2) +/* 01D1DC 7001C5DC 92470005 */ lbu $a3, 5($s2) +/* 01D1E0 7001C5E0 27A40084 */ addiu $a0, $sp, 0x84 +/* 01D1E4 7001C5E4 AFB90010 */ sw $t9, 0x10($sp) +/* 01D1E8 7001C5E8 924E0007 */ lbu $t6, 7($s2) +/* 01D1EC 7001C5EC 27A5008C */ addiu $a1, $sp, 0x8c +/* 01D1F0 7001C5F0 0040F809 */ jalr $v0 +/* 01D1F4 7001C5F4 AFAE0014 */ sw $t6, 0x14($sp) +/* 01D1F8 7001C5F8 1040000C */ beqz $v0, .L7001C62C +/* 01D1FC 7001C5FC 24180016 */ li $t8, 22 +/* 01D200 7001C600 8FAF0084 */ lw $t7, 0x84($sp) +/* 01D204 7001C604 A7B800B4 */ sh $t8, 0xb4($sp) +/* 01D208 7001C608 AFB000B8 */ sw $s0, 0xb8($sp) +/* 01D20C 7001C60C 26240048 */ addiu $a0, $s1, 0x48 +/* 01D210 7001C610 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 01D214 7001C614 00403025 */ move $a2, $v0 +/* 01D218 7001C618 0C004BBF */ jal alEvtqPostEvent +/* 01D21C 7001C61C AFAF00BC */ sw $t7, 0xbc($sp) +/* 01D220 7001C620 92190037 */ lbu $t9, 0x37($s0) +/* 01D224 7001C624 372E0001 */ ori $t6, $t9, 1 +/* 01D228 7001C628 A20E0037 */ sb $t6, 0x37($s0) +.L7001C62C: +/* 01D22C 7001C62C 4458F800 */ cfc1 $t8, $31 +.L7001C630: +/* 01D230 7001C630 240F0001 */ li $t7, 1 +/* 01D234 7001C634 44CFF800 */ ctc1 $t7, $31 +/* 01D238 7001C638 C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 01D23C 7001C63C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 01D240 7001C640 46003224 */ cvt.w.s $f8, $f6 +/* 01D244 7001C644 444FF800 */ cfc1 $t7, $31 +/* 01D248 7001C648 00000000 */ nop +/* 01D24C 7001C64C 31EF0078 */ andi $t7, $t7, 0x78 +/* 01D250 7001C650 51E00013 */ beql $t7, $zero, .L7001C6A0 +/* 01D254 7001C654 440F4000 */ mfc1 $t7, $f8 +/* 01D258 7001C658 44814000 */ mtc1 $at, $f8 +/* 01D25C 7001C65C 240F0001 */ li $t7, 1 +/* 01D260 7001C660 46083201 */ sub.s $f8, $f6, $f8 +/* 01D264 7001C664 44CFF800 */ ctc1 $t7, $31 +/* 01D268 7001C668 00000000 */ nop +/* 01D26C 7001C66C 46004224 */ cvt.w.s $f8, $f8 +/* 01D270 7001C670 444FF800 */ cfc1 $t7, $31 +/* 01D274 7001C674 00000000 */ nop +/* 01D278 7001C678 31EF0078 */ andi $t7, $t7, 0x78 +/* 01D27C 7001C67C 15E00005 */ bnez $t7, .L7001C694 +/* 01D280 7001C680 00000000 */ nop +/* 01D284 7001C684 440F4000 */ mfc1 $t7, $f8 +/* 01D288 7001C688 3C018000 */ lui $at, 0x8000 +/* 01D28C 7001C68C 10000007 */ b .L7001C6AC +/* 01D290 7001C690 01E17825 */ or $t7, $t7, $at +.L7001C694: +/* 01D294 7001C694 10000005 */ b .L7001C6AC +/* 01D298 7001C698 240FFFFF */ li $t7, -1 +/* 01D29C 7001C69C 440F4000 */ mfc1 $t7, $f8 +.L7001C6A0: +/* 01D2A0 7001C6A0 00000000 */ nop +/* 01D2A4 7001C6A4 05E0FFFB */ bltz $t7, .L7001C694 +/* 01D2A8 7001C6A8 00000000 */ nop +.L7001C6AC: +/* 01D2AC 7001C6AC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 01D2B0 7001C6B0 44815000 */ mtc1 $at, $f10 +/* 01D2B4 7001C6B4 A20F0036 */ sb $t7, 0x36($s0) +/* 01D2B8 7001C6B8 44D8F800 */ ctc1 $t8, $31 +/* 01D2BC 7001C6BC E7AA008C */ swc1 $f10, 0x8c($sp) +/* 01D2C0 7001C6C0 92460008 */ lbu $a2, 8($s2) +/* 01D2C4 7001C6C4 26350048 */ addiu $s5, $s1, 0x48 +/* 01D2C8 7001C6C8 50C0001B */ beql $a2, $zero, .L7001C738 +/* 01D2CC 7001C6CC C7A4008C */ lwc1 $f4, 0x8c($sp) +/* 01D2D0 7001C6D0 8E220070 */ lw $v0, 0x70($s1) +/* 01D2D4 7001C6D4 50400018 */ beql $v0, $zero, .L7001C738 +/* 01D2D8 7001C6D8 C7A4008C */ lwc1 $f4, 0x8c($sp) +/* 01D2DC 7001C6DC 9259000A */ lbu $t9, 0xa($s2) +/* 01D2E0 7001C6E0 92470009 */ lbu $a3, 9($s2) +/* 01D2E4 7001C6E4 27A40084 */ addiu $a0, $sp, 0x84 +/* 01D2E8 7001C6E8 AFB90010 */ sw $t9, 0x10($sp) +/* 01D2EC 7001C6EC 924E000B */ lbu $t6, 0xb($s2) +/* 01D2F0 7001C6F0 27A5008C */ addiu $a1, $sp, 0x8c +/* 01D2F4 7001C6F4 0040F809 */ jalr $v0 +/* 01D2F8 7001C6F8 AFAE0014 */ sw $t6, 0x14($sp) +/* 01D2FC 7001C6FC 1040000D */ beqz $v0, .L7001C734 +/* 01D300 7001C700 24180017 */ li $t8, 23 +/* 01D304 7001C704 8FAF0084 */ lw $t7, 0x84($sp) +/* 01D308 7001C708 A7B800B4 */ sh $t8, 0xb4($sp) +/* 01D30C 7001C70C AFB000B8 */ sw $s0, 0xb8($sp) +/* 01D310 7001C710 A3B600C0 */ sb $s6, 0xc0($sp) +/* 01D314 7001C714 02A02025 */ move $a0, $s5 +/* 01D318 7001C718 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 01D31C 7001C71C 00403025 */ move $a2, $v0 +/* 01D320 7001C720 0C004BBF */ jal alEvtqPostEvent +/* 01D324 7001C724 AFAF00BC */ sw $t7, 0xbc($sp) +/* 01D328 7001C728 92190037 */ lbu $t9, 0x37($s0) +/* 01D32C 7001C72C 372E0002 */ ori $t6, $t9, 2 +/* 01D330 7001C730 A20E0037 */ sb $t6, 0x37($s0) +.L7001C734: +/* 01D334 7001C734 C7A4008C */ lwc1 $f4, 0x8c($sp) +.L7001C738: +/* 01D338 7001C738 C6080028 */ lwc1 $f8, 0x28($s0) +/* 01D33C 7001C73C 02002025 */ move $a0, $s0 +/* 01D340 7001C740 E604002C */ swc1 $f4, 0x2c($s0) +/* 01D344 7001C744 8E380060 */ lw $t8, 0x60($s1) +/* 01D348 7001C748 C604002C */ lwc1 $f4, 0x2c($s0) +/* 01D34C 7001C74C 02202825 */ move $a1, $s1 +/* 01D350 7001C750 031E1021 */ addu $v0, $t8, $fp +/* 01D354 7001C754 C446000C */ lwc1 $f6, 0xc($v0) +/* 01D358 7001C758 9052000A */ lbu $s2, 0xa($v0) +/* 01D35C 7001C75C 46083282 */ mul.s $f10, $f6, $f8 +/* 01D360 7001C760 00000000 */ nop +/* 01D364 7001C764 46045502 */ mul.s $f20, $f10, $f4 +/* 01D368 7001C768 0C00708D */ jal __vsPan +/* 01D36C 7001C76C 00000000 */ nop +/* 01D370 7001C770 305400FF */ andi $s4, $v0, 0xff +/* 01D374 7001C774 02002025 */ move $a0, $s0 +/* 01D378 7001C778 0C006F85 */ jal __vsVol +/* 01D37C 7001C77C 02202825 */ move $a1, $s1 +/* 01D380 7001C780 8EEF0000 */ lw $t7, ($s7) +/* 01D384 7001C784 8E240014 */ lw $a0, 0x14($s1) +/* 01D388 7001C788 8EE60008 */ lw $a2, 8($s7) +/* 01D38C 7001C78C 8DF30000 */ lw $s3, ($t7) +/* 01D390 7001C790 4407A000 */ mfc1 $a3, $f20 +/* 01D394 7001C794 AFB20018 */ sw $s2, 0x18($sp) +/* 01D398 7001C798 AFB40014 */ sw $s4, 0x14($sp) +/* 01D39C 7001C79C AFA20010 */ sw $v0, 0x10($sp) +/* 01D3A0 7001C7A0 8FA50034 */ lw $a1, 0x34($sp) +/* 01D3A4 7001C7A4 0C007568 */ jal alSynStartVoiceParams +/* 01D3A8 7001C7A8 AFB3001C */ sw $s3, 0x1c($sp) +/* 01D3AC 7001C7AC 8FAE0034 */ lw $t6, 0x34($sp) +/* 01D3B0 7001C7B0 24190006 */ li $t9, 6 +/* 01D3B4 7001C7B4 A7B900B4 */ sh $t9, 0xb4($sp) +/* 01D3B8 7001C7B8 AFAE00B8 */ sw $t6, 0xb8($sp) +/* 01D3BC 7001C7BC 8EF80000 */ lw $t8, ($s7) +/* 01D3C0 7001C7C0 02A02025 */ move $a0, $s5 +/* 01D3C4 7001C7C4 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 01D3C8 7001C7C8 930F000D */ lbu $t7, 0xd($t8) +/* 01D3CC 7001C7CC A3AF00C0 */ sb $t7, 0xc0($sp) +/* 01D3D0 7001C7D0 8EF90000 */ lw $t9, ($s7) +/* 01D3D4 7001C7D4 8F2E0004 */ lw $t6, 4($t9) +/* 01D3D8 7001C7D8 AFAE00BC */ sw $t6, 0xbc($sp) +/* 01D3DC 7001C7DC 8EF80000 */ lw $t8, ($s7) +/* 01D3E0 7001C7E0 8F130000 */ lw $s3, ($t8) +/* 01D3E4 7001C7E4 0C004BBF */ jal alEvtqPostEvent +/* 01D3E8 7001C7E8 02603025 */ move $a2, $s3 +/* 01D3EC 7001C7EC 1000011E */ b .L7001CC68 +/* 01D3F0 7001C7F0 8FBF0024 */ lw $ra, 0x24($sp) +.L7001C7F4: +/* 01D3F4 7001C7F4 02202025 */ move $a0, $s1 +.L7001C7F8: +/* 01D3F8 7001C7F8 326500FF */ andi $a1, $s3, 0xff +/* 01D3FC 7001C7FC 0C00709F */ jal __lookupVoice +/* 01D400 7001C800 32C600FF */ andi $a2, $s6, 0xff +/* 01D404 7001C804 10400117 */ beqz $v0, .L7001CC64 +/* 01D408 7001C808 00408025 */ move $s0, $v0 +/* 01D40C 7001C80C 904F0035 */ lbu $t7, 0x35($v0) +/* 01D410 7001C810 24160002 */ li $s6, 2 +/* 01D414 7001C814 24190004 */ li $t9, 4 +/* 01D418 7001C818 16CF0003 */ bne $s6, $t7, .L7001C828 +/* 01D41C 7001C81C 02202025 */ move $a0, $s1 +/* 01D420 7001C820 10000110 */ b .L7001CC64 +/* 01D424 7001C824 A0590035 */ sb $t9, 0x35($v0) +.L7001C828: +/* 01D428 7001C828 8E0E0020 */ lw $t6, 0x20($s0) +/* 01D42C 7001C82C 241E0003 */ li $fp, 3 +/* 01D430 7001C830 A21E0035 */ sb $fp, 0x35($s0) +/* 01D434 7001C834 8DD80000 */ lw $t8, ($t6) +/* 01D438 7001C838 26050004 */ addiu $a1, $s0, 4 +/* 01D43C 7001C83C 0C006FA7 */ jal __seqpReleaseVoice +/* 01D440 7001C840 8F060008 */ lw $a2, 8($t8) +/* 01D444 7001C844 10000108 */ b .L7001CC68 +/* 01D448 7001C848 8FBF0024 */ lw $ra, 0x24($sp) +.L7001C84C: +/* 01D44C 7001C84C 02202025 */ move $a0, $s1 +/* 01D450 7001C850 326500FF */ andi $a1, $s3, 0xff +/* 01D454 7001C854 0C00709F */ jal __lookupVoice +/* 01D458 7001C858 32C600FF */ andi $a2, $s6, 0xff +/* 01D45C 7001C85C 10400101 */ beqz $v0, .L7001CC64 +/* 01D460 7001C860 00408025 */ move $s0, $v0 +/* 01D464 7001C864 A0540033 */ sb $s4, 0x33($v0) +/* 01D468 7001C868 00402025 */ move $a0, $v0 +/* 01D46C 7001C86C 0C006F85 */ jal __vsVol +/* 01D470 7001C870 02202825 */ move $a1, $s1 +/* 01D474 7001C874 8E23001C */ lw $v1, 0x1c($s1) +/* 01D478 7001C878 8E190024 */ lw $t9, 0x24($s0) +/* 01D47C 7001C87C 00023400 */ sll $a2, $v0, 0x10 +/* 01D480 7001C880 00067C03 */ sra $t7, $a2, 0x10 +/* 01D484 7001C884 03232023 */ subu $a0, $t9, $v1 +/* 01D488 7001C888 04800003 */ bltz $a0, .L7001C898 +/* 01D48C 7001C88C 01E03025 */ move $a2, $t7 +/* 01D490 7001C890 10000002 */ b .L7001C89C +/* 01D494 7001C894 00801025 */ move $v0, $a0 +.L7001C898: +/* 01D498 7001C898 240203E8 */ li $v0, 1000 +.L7001C89C: +/* 01D49C 7001C89C 8E240014 */ lw $a0, 0x14($s1) +/* 01D4A0 7001C8A0 26050004 */ addiu $a1, $s0, 4 +/* 01D4A4 7001C8A4 0C004CE8 */ jal alSynSetVol +/* 01D4A8 7001C8A8 00403825 */ move $a3, $v0 +/* 01D4AC 7001C8AC 100000EE */ b .L7001CC68 +/* 01D4B0 7001C8B0 8FBF0024 */ lw $ra, 0x24($sp) +.L7001C8B4: +/* 01D4B4 7001C8B4 8E300064 */ lw $s0, 0x64($s1) +/* 01D4B8 7001C8B8 520000EB */ beql $s0, $zero, .L7001CC68 +/* 01D4BC 7001C8BC 8FBF0024 */ lw $ra, 0x24($sp) +/* 01D4C0 7001C8C0 02C09025 */ move $s2, $s6 +/* 01D4C4 7001C8C4 920E0031 */ lbu $t6, 0x31($s0) +.L7001C8C8: +/* 01D4C8 7001C8C8 02002025 */ move $a0, $s0 +/* 01D4CC 7001C8CC 02202825 */ move $a1, $s1 +/* 01D4D0 7001C8D0 564E0012 */ bnel $s2, $t6, .L7001C91C +/* 01D4D4 7001C8D4 8E100000 */ lw $s0, ($s0) +/* 01D4D8 7001C8D8 0C006F85 */ jal __vsVol +/* 01D4DC 7001C8DC A2130033 */ sb $s3, 0x33($s0) +/* 01D4E0 7001C8E0 8E23001C */ lw $v1, 0x1c($s1) +/* 01D4E4 7001C8E4 8E0F0024 */ lw $t7, 0x24($s0) +/* 01D4E8 7001C8E8 00023400 */ sll $a2, $v0, 0x10 +/* 01D4EC 7001C8EC 0006C403 */ sra $t8, $a2, 0x10 +/* 01D4F0 7001C8F0 01E32023 */ subu $a0, $t7, $v1 +/* 01D4F4 7001C8F4 04800003 */ bltz $a0, .L7001C904 +/* 01D4F8 7001C8F8 03003025 */ move $a2, $t8 +/* 01D4FC 7001C8FC 10000002 */ b .L7001C908 +/* 01D500 7001C900 00801025 */ move $v0, $a0 +.L7001C904: +/* 01D504 7001C904 240203E8 */ li $v0, 1000 +.L7001C908: +/* 01D508 7001C908 8E240014 */ lw $a0, 0x14($s1) +/* 01D50C 7001C90C 26050004 */ addiu $a1, $s0, 4 +/* 01D510 7001C910 0C004CE8 */ jal alSynSetVol +/* 01D514 7001C914 00403825 */ move $a3, $v0 +/* 01D518 7001C918 8E100000 */ lw $s0, ($s0) +.L7001C91C: +/* 01D51C 7001C91C 5600FFEA */ bnezl $s0, .L7001C8C8 +/* 01D520 7001C920 920E0031 */ lbu $t6, 0x31($s0) +/* 01D524 7001C924 100000D0 */ b .L7001CC68 +/* 01D528 7001C928 8FBF0024 */ lw $ra, 0x24($sp) +.L7001C92C: +/* 01D52C 7001C92C 2A610041 */ slti $at, $s3, 0x41 +/* 01D530 7001C930 14200008 */ bnez $at, .L7001C954 +/* 01D534 7001C934 02601025 */ move $v0, $s3 +/* 01D538 7001C938 2401005B */ li $at, 91 +/* 01D53C 7001C93C 10410082 */ beq $v0, $at, .L7001CB48 +/* 01D540 7001C940 2401005D */ li $at, 93 +/* 01D544 7001C944 504100C8 */ beql $v0, $at, .L7001CC68 +/* 01D548 7001C948 8FBF0024 */ lw $ra, 0x24($sp) +/* 01D54C 7001C94C 100000C6 */ b .L7001CC68 +/* 01D550 7001C950 8FBF0024 */ lw $ra, 0x24($sp) +.L7001C954: +/* 01D554 7001C954 2841001C */ slti $at, $v0, 0x1c +/* 01D558 7001C958 14200006 */ bnez $at, .L7001C974 +/* 01D55C 7001C95C 2459FFF9 */ addiu $t9, $v0, -7 +/* 01D560 7001C960 24010040 */ li $at, 64 +/* 01D564 7001C964 5041004D */ beql $v0, $at, .L7001CA9C +/* 01D568 7001C968 8E2F0060 */ lw $t7, 0x60($s1) +/* 01D56C 7001C96C 100000BE */ b .L7001CC68 +/* 01D570 7001C970 8FBF0024 */ lw $ra, 0x24($sp) +.L7001C974: +/* 01D574 7001C974 2F210015 */ sltiu $at, $t9, 0x15 +/* 01D578 7001C978 102000BA */ beqz $at, .L7001CC64 +/* 01D57C 7001C97C 0019C880 */ sll $t9, $t9, 2 +/* 01D580 7001C980 3C018003 */ lui $at, %hi(jpt_80029BD4) +/* 01D584 7001C984 00390821 */ addu $at, $at, $t9 +/* 01D588 7001C988 8C399BD4 */ lw $t9, %lo(jpt_80029BD4)($at) +/* 01D58C 7001C98C 03200008 */ jr $t9 +/* 01D590 7001C990 00000000 */ nop +.L7001C994: +/* 01D594 7001C994 8E2E0060 */ lw $t6, 0x60($s1) +/* 01D598 7001C998 0016C100 */ sll $t8, $s6, 4 +/* 01D59C 7001C99C 01D87821 */ addu $t7, $t6, $t8 +/* 01D5A0 7001C9A0 A1F40007 */ sb $s4, 7($t7) +/* 01D5A4 7001C9A4 8E300064 */ lw $s0, 0x64($s1) +/* 01D5A8 7001C9A8 520000AF */ beql $s0, $zero, .L7001CC68 +/* 01D5AC 7001C9AC 8FBF0024 */ lw $ra, 0x24($sp) +/* 01D5B0 7001C9B0 02C09025 */ move $s2, $s6 +/* 01D5B4 7001C9B4 92190031 */ lbu $t9, 0x31($s0) +.L7001C9B8: +/* 01D5B8 7001C9B8 02002025 */ move $a0, $s0 +/* 01D5BC 7001C9BC 56590008 */ bnel $s2, $t9, .L7001C9E0 +/* 01D5C0 7001C9C0 8E100000 */ lw $s0, ($s0) +/* 01D5C4 7001C9C4 0C00708D */ jal __vsPan +/* 01D5C8 7001C9C8 02202825 */ move $a1, $s1 +/* 01D5CC 7001C9CC 8E240014 */ lw $a0, 0x14($s1) +/* 01D5D0 7001C9D0 26050004 */ addiu $a1, $s0, 4 +/* 01D5D4 7001C9D4 0C004D34 */ jal alSynSetPan +/* 01D5D8 7001C9D8 304600FF */ andi $a2, $v0, 0xff +/* 01D5DC 7001C9DC 8E100000 */ lw $s0, ($s0) +.L7001C9E0: +/* 01D5E0 7001C9E0 5600FFF5 */ bnezl $s0, .L7001C9B8 +/* 01D5E4 7001C9E4 92190031 */ lbu $t9, 0x31($s0) +/* 01D5E8 7001C9E8 1000009F */ b .L7001CC68 +/* 01D5EC 7001C9EC 8FBF0024 */ lw $ra, 0x24($sp) +.L7001C9F0: +/* 01D5F0 7001C9F0 8E2E0060 */ lw $t6, 0x60($s1) +/* 01D5F4 7001C9F4 0016C100 */ sll $t8, $s6, 4 +/* 01D5F8 7001C9F8 01D87821 */ addu $t7, $t6, $t8 +/* 01D5FC 7001C9FC A1F40009 */ sb $s4, 9($t7) +/* 01D600 7001CA00 8E300064 */ lw $s0, 0x64($s1) +/* 01D604 7001CA04 52000098 */ beql $s0, $zero, .L7001CC68 +/* 01D608 7001CA08 8FBF0024 */ lw $ra, 0x24($sp) +/* 01D60C 7001CA0C 02C09025 */ move $s2, $s6 +/* 01D610 7001CA10 24130003 */ li $s3, 3 +/* 01D614 7001CA14 92190031 */ lbu $t9, 0x31($s0) +.L7001CA18: +/* 01D618 7001CA18 56590016 */ bnel $s2, $t9, .L7001CA74 +/* 01D61C 7001CA1C 8E100000 */ lw $s0, ($s0) +/* 01D620 7001CA20 920E0034 */ lbu $t6, 0x34($s0) +/* 01D624 7001CA24 02002025 */ move $a0, $s0 +/* 01D628 7001CA28 526E0012 */ beql $s3, $t6, .L7001CA74 +/* 01D62C 7001CA2C 8E100000 */ lw $s0, ($s0) +/* 01D630 7001CA30 0C006F85 */ jal __vsVol +/* 01D634 7001CA34 02202825 */ move $a1, $s1 +/* 01D638 7001CA38 8E23001C */ lw $v1, 0x1c($s1) +/* 01D63C 7001CA3C 8E0F0024 */ lw $t7, 0x24($s0) +/* 01D640 7001CA40 00023400 */ sll $a2, $v0, 0x10 +/* 01D644 7001CA44 0006C403 */ sra $t8, $a2, 0x10 +/* 01D648 7001CA48 01E32023 */ subu $a0, $t7, $v1 +/* 01D64C 7001CA4C 04800003 */ bltz $a0, .L7001CA5C +/* 01D650 7001CA50 03003025 */ move $a2, $t8 +/* 01D654 7001CA54 10000002 */ b .L7001CA60 +/* 01D658 7001CA58 00801025 */ move $v0, $a0 +.L7001CA5C: +/* 01D65C 7001CA5C 240203E8 */ li $v0, 1000 +.L7001CA60: +/* 01D660 7001CA60 8E240014 */ lw $a0, 0x14($s1) +/* 01D664 7001CA64 26050004 */ addiu $a1, $s0, 4 +/* 01D668 7001CA68 0C004CE8 */ jal alSynSetVol +/* 01D66C 7001CA6C 00403825 */ move $a3, $v0 +/* 01D670 7001CA70 8E100000 */ lw $s0, ($s0) +.L7001CA74: +/* 01D674 7001CA74 5600FFE8 */ bnezl $s0, .L7001CA18 +/* 01D678 7001CA78 92190031 */ lbu $t9, 0x31($s0) +/* 01D67C 7001CA7C 1000007A */ b .L7001CC68 +/* 01D680 7001CA80 8FBF0024 */ lw $ra, 0x24($sp) +.L7001CA84: +/* 01D684 7001CA84 8E390060 */ lw $t9, 0x60($s1) +/* 01D688 7001CA88 00167100 */ sll $t6, $s6, 4 +/* 01D68C 7001CA8C 032EC021 */ addu $t8, $t9, $t6 +/* 01D690 7001CA90 10000074 */ b .L7001CC64 +/* 01D694 7001CA94 A3140008 */ sb $s4, 8($t8) +/* 01D698 7001CA98 8E2F0060 */ lw $t7, 0x60($s1) +.L7001CA9C: +/* 01D69C 7001CA9C 0016C900 */ sll $t9, $s6, 4 +/* 01D6A0 7001CAA0 01F97021 */ addu $t6, $t7, $t9 +/* 01D6A4 7001CAA4 A1D4000B */ sb $s4, 0xb($t6) +/* 01D6A8 7001CAA8 8E300064 */ lw $s0, 0x64($s1) +/* 01D6AC 7001CAAC 5200006E */ beql $s0, $zero, .L7001CC68 +/* 01D6B0 7001CAB0 8FBF0024 */ lw $ra, 0x24($sp) +/* 01D6B4 7001CAB4 02C09025 */ move $s2, $s6 +/* 01D6B8 7001CAB8 24160002 */ li $s6, 2 +/* 01D6BC 7001CABC 241E0003 */ li $fp, 3 +/* 01D6C0 7001CAC0 24170004 */ li $s7, 4 +/* 01D6C4 7001CAC4 24150002 */ li $s5, 2 +/* 01D6C8 7001CAC8 24130003 */ li $s3, 3 +/* 01D6CC 7001CACC 92180031 */ lbu $t8, 0x31($s0) +.L7001CAD0: +/* 01D6D0 7001CAD0 56580019 */ bnel $s2, $t8, .L7001CB38 +/* 01D6D4 7001CAD4 8E100000 */ lw $s0, ($s0) +/* 01D6D8 7001CAD8 92020035 */ lbu $v0, 0x35($s0) +/* 01D6DC 7001CADC 2A810040 */ slti $at, $s4, 0x40 +/* 01D6E0 7001CAE0 52620015 */ beql $s3, $v0, .L7001CB38 +/* 01D6E4 7001CAE4 8E100000 */ lw $s0, ($s0) +/* 01D6E8 7001CAE8 14200005 */ bnez $at, .L7001CB00 +/* 01D6EC 7001CAEC 00000000 */ nop +/* 01D6F0 7001CAF0 54400011 */ bnezl $v0, .L7001CB38 +/* 01D6F4 7001CAF4 8E100000 */ lw $s0, ($s0) +/* 01D6F8 7001CAF8 1000000E */ b .L7001CB34 +/* 01D6FC 7001CAFC A2150035 */ sb $s5, 0x35($s0) +.L7001CB00: +/* 01D700 7001CB00 16C20003 */ bne $s6, $v0, .L7001CB10 +/* 01D704 7001CB04 00000000 */ nop +/* 01D708 7001CB08 1000000A */ b .L7001CB34 +/* 01D70C 7001CB0C A2000035 */ sb $zero, 0x35($s0) +.L7001CB10: +/* 01D710 7001CB10 56E20009 */ bnel $s7, $v0, .L7001CB38 +/* 01D714 7001CB14 8E100000 */ lw $s0, ($s0) +/* 01D718 7001CB18 8E0F0020 */ lw $t7, 0x20($s0) +/* 01D71C 7001CB1C A21E0035 */ sb $fp, 0x35($s0) +/* 01D720 7001CB20 02202025 */ move $a0, $s1 +/* 01D724 7001CB24 8DF90000 */ lw $t9, ($t7) +/* 01D728 7001CB28 26050004 */ addiu $a1, $s0, 4 +/* 01D72C 7001CB2C 0C006FA7 */ jal __seqpReleaseVoice +/* 01D730 7001CB30 8F260008 */ lw $a2, 8($t9) +.L7001CB34: +/* 01D734 7001CB34 8E100000 */ lw $s0, ($s0) +.L7001CB38: +/* 01D738 7001CB38 5600FFE5 */ bnezl $s0, .L7001CAD0 +/* 01D73C 7001CB3C 92180031 */ lbu $t8, 0x31($s0) +/* 01D740 7001CB40 10000049 */ b .L7001CC68 +/* 01D744 7001CB44 8FBF0024 */ lw $ra, 0x24($sp) +.L7001CB48: +/* 01D748 7001CB48 8E2E0060 */ lw $t6, 0x60($s1) +/* 01D74C 7001CB4C 0016C100 */ sll $t8, $s6, 4 +/* 01D750 7001CB50 01D87821 */ addu $t7, $t6, $t8 +/* 01D754 7001CB54 A1F4000A */ sb $s4, 0xa($t7) +/* 01D758 7001CB58 8E300064 */ lw $s0, 0x64($s1) +/* 01D75C 7001CB5C 52000042 */ beql $s0, $zero, .L7001CC68 +/* 01D760 7001CB60 8FBF0024 */ lw $ra, 0x24($sp) +/* 01D764 7001CB64 02C09025 */ move $s2, $s6 +/* 01D768 7001CB68 92190031 */ lbu $t9, 0x31($s0) +.L7001CB6C: +/* 01D76C 7001CB6C 26050004 */ addiu $a1, $s0, 4 +/* 01D770 7001CB70 328600FF */ andi $a2, $s4, 0xff +/* 01D774 7001CB74 56590004 */ bnel $s2, $t9, .L7001CB88 +/* 01D778 7001CB78 8E100000 */ lw $s0, ($s0) +/* 01D77C 7001CB7C 0C004D7C */ jal alSynSetFXMix +/* 01D780 7001CB80 8E240014 */ lw $a0, 0x14($s1) +/* 01D784 7001CB84 8E100000 */ lw $s0, ($s0) +.L7001CB88: +/* 01D788 7001CB88 5600FFF8 */ bnezl $s0, .L7001CB6C +/* 01D78C 7001CB8C 92190031 */ lbu $t9, 0x31($s0) +/* 01D790 7001CB90 10000035 */ b .L7001CC68 +/* 01D794 7001CB94 8FBF0024 */ lw $ra, 0x24($sp) +.L7001CB98: +/* 01D798 7001CB98 8E220020 */ lw $v0, 0x20($s1) +/* 01D79C 7001CB9C 0013C080 */ sll $t8, $s3, 2 +/* 01D7A0 7001CBA0 02202025 */ move $a0, $s1 +/* 01D7A4 7001CBA4 844E0000 */ lh $t6, ($v0) +/* 01D7A8 7001CBA8 02C03025 */ move $a2, $s6 +/* 01D7AC 7001CBAC 00587821 */ addu $t7, $v0, $t8 +/* 01D7B0 7001CBB0 026E082A */ slt $at, $s3, $t6 +/* 01D7B4 7001CBB4 5020002C */ beql $at, $zero, .L7001CC68 +/* 01D7B8 7001CBB8 8FBF0024 */ lw $ra, 0x24($sp) +/* 01D7BC 7001CBBC 0C006F18 */ jal __setInstChanState +/* 01D7C0 7001CBC0 8DE5000C */ lw $a1, 0xc($t7) +/* 01D7C4 7001CBC4 10000028 */ b .L7001CC68 +/* 01D7C8 7001CBC8 8FBF0024 */ lw $ra, 0x24($sp) +.L7001CBCC: +/* 01D7CC 7001CBCC 8E390060 */ lw $t9, 0x60($s1) +/* 01D7D0 7001CBD0 0016F100 */ sll $fp, $s6, 4 +/* 01D7D4 7001CBD4 001479C0 */ sll $t7, $s4, 7 +/* 01D7D8 7001CBD8 033E7021 */ addu $t6, $t9, $fp +/* 01D7DC 7001CBDC 85D80004 */ lh $t8, 4($t6) +/* 01D7E0 7001CBE0 01F3C821 */ addu $t9, $t7, $s3 +/* 01D7E4 7001CBE4 272EE000 */ addiu $t6, $t9, -0x2000 +/* 01D7E8 7001CBE8 030E0019 */ multu $t8, $t6 +/* 01D7EC 7001CBEC 00002012 */ mflo $a0 +/* 01D7F0 7001CBF0 04810003 */ bgez $a0, .L7001CC00 +/* 01D7F4 7001CBF4 00047B43 */ sra $t7, $a0, 0xd +/* 01D7F8 7001CBF8 24811FFF */ addiu $at, $a0, 0x1fff +/* 01D7FC 7001CBFC 00017B43 */ sra $t7, $at, 0xd +.L7001CC00: +/* 01D800 7001CC00 0C004DF0 */ jal alCents2Ratio +/* 01D804 7001CC04 01E02025 */ move $a0, $t7 +/* 01D808 7001CC08 8E390060 */ lw $t9, 0x60($s1) +/* 01D80C 7001CC0C 46000506 */ mov.s $f20, $f0 +/* 01D810 7001CC10 033EC021 */ addu $t8, $t9, $fp +/* 01D814 7001CC14 E700000C */ swc1 $f0, 0xc($t8) +/* 01D818 7001CC18 8E300064 */ lw $s0, 0x64($s1) +/* 01D81C 7001CC1C 52000012 */ beql $s0, $zero, .L7001CC68 +/* 01D820 7001CC20 8FBF0024 */ lw $ra, 0x24($sp) +/* 01D824 7001CC24 02C09025 */ move $s2, $s6 +/* 01D828 7001CC28 920E0031 */ lbu $t6, 0x31($s0) +.L7001CC2C: +/* 01D82C 7001CC2C 564E000B */ bnel $s2, $t6, .L7001CC5C +/* 01D830 7001CC30 8E100000 */ lw $s0, ($s0) +/* 01D834 7001CC34 C6060028 */ lwc1 $f6, 0x28($s0) +/* 01D838 7001CC38 C60A002C */ lwc1 $f10, 0x2c($s0) +/* 01D83C 7001CC3C 8E240014 */ lw $a0, 0x14($s1) +/* 01D840 7001CC40 46143202 */ mul.s $f8, $f6, $f20 +/* 01D844 7001CC44 26050004 */ addiu $a1, $s0, 4 +/* 01D848 7001CC48 460A4102 */ mul.s $f4, $f8, $f10 +/* 01D84C 7001CC4C 44062000 */ mfc1 $a2, $f4 +/* 01D850 7001CC50 0C004D58 */ jal alSynSetPitch +/* 01D854 7001CC54 00000000 */ nop +/* 01D858 7001CC58 8E100000 */ lw $s0, ($s0) +.L7001CC5C: +/* 01D85C 7001CC5C 5600FFF3 */ bnezl $s0, .L7001CC2C +/* 01D860 7001CC60 920E0031 */ lbu $t6, 0x31($s0) +.L7001CC64: +/* 01D864 7001CC64 8FBF0024 */ lw $ra, 0x24($sp) +.L7001CC68: +/* 01D868 7001CC68 27BD00E0 */ addiu $sp, $sp, 0xe0 +/* 01D86C 7001CC6C 03E00008 */ jr $ra +/* 01D870 7001CC70 00000000 */ nop + +/* 01D874 7001CC74 03E00008 */ jr $ra +/* 01D878 7001CC78 00000000 */ nop + +glabel __seqpVoiceHandler +/* 01D87C 7001CC7C 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 01D880 7001CC80 AFB50034 */ sw $s5, 0x34($sp) +/* 01D884 7001CC84 AFB20028 */ sw $s2, 0x28($sp) +/* 01D888 7001CC88 248E0038 */ addiu $t6, $a0, 0x38 +/* 01D88C 7001CC8C 00809025 */ move $s2, $a0 +/* 01D890 7001CC90 AFBF0044 */ sw $ra, 0x44($sp) +/* 01D894 7001CC94 AFBE0040 */ sw $fp, 0x40($sp) +/* 01D898 7001CC98 AFB7003C */ sw $s7, 0x3c($sp) +/* 01D89C 7001CC9C AFB60038 */ sw $s6, 0x38($sp) +/* 01D8A0 7001CCA0 AFB40030 */ sw $s4, 0x30($sp) +/* 01D8A4 7001CCA4 AFB3002C */ sw $s3, 0x2c($sp) +/* 01D8A8 7001CCA8 AFB10024 */ sw $s1, 0x24($sp) +/* 01D8AC 7001CCAC AFB00020 */ sw $s0, 0x20($sp) +/* 01D8B0 7001CCB0 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 01D8B4 7001CCB4 AFAE0050 */ sw $t6, 0x50($sp) +/* 01D8B8 7001CCB8 24950048 */ addiu $s5, $a0, 0x48 +.L7001CCBC: +/* 01D8BC 7001CCBC 964F0038 */ lhu $t7, 0x38($s2) +/* 01D8C0 7001CCC0 2DE10018 */ sltiu $at, $t7, 0x18 +/* 01D8C4 7001CCC4 10200161 */ beqz $at, .L7001D24C +/* 01D8C8 7001CCC8 000F7880 */ sll $t7, $t7, 2 +/* 01D8CC 7001CCCC 3C018003 */ lui $at, %hi(jpt_80029C28) +/* 01D8D0 7001CCD0 002F0821 */ addu $at, $at, $t7 +/* 01D8D4 7001CCD4 8C2F9C28 */ lw $t7, %lo(jpt_80029C28)($at) +/* 01D8D8 7001CCD8 01E00008 */ jr $t7 +/* 01D8DC 7001CCDC 00000000 */ nop +.L7001CCE0: +/* 01D8E0 7001CCE0 8E440018 */ lw $a0, 0x18($s2) +/* 01D8E4 7001CCE4 5080015A */ beql $a0, $zero, .L7001D250 +/* 01D8E8 7001CCE8 02A02025 */ move $a0, $s5 +/* 01D8EC 7001CCEC 0C00816D */ jal alSeqNextEvent +/* 01D8F0 7001CCF0 27A50088 */ addiu $a1, $sp, 0x88 +/* 01D8F4 7001CCF4 87A20088 */ lh $v0, 0x88($sp) +/* 01D8F8 7001CCF8 24010001 */ li $at, 1 +/* 01D8FC 7001CCFC 02408825 */ move $s1, $s2 +/* 01D900 7001CD00 10410009 */ beq $v0, $at, .L7001CD28 +/* 01D904 7001CD04 27A40088 */ addiu $a0, $sp, 0x88 +/* 01D908 7001CD08 24010003 */ li $at, 3 +/* 01D90C 7001CD0C 1041000F */ beq $v0, $at, .L7001CD4C +/* 01D910 7001CD10 02402825 */ move $a1, $s2 +/* 01D914 7001CD14 24010004 */ li $at, 4 +/* 01D918 7001CD18 10410012 */ beq $v0, $at, .L7001CD64 +/* 01D91C 7001CD1C 24180002 */ li $t8, 2 +/* 01D920 7001CD20 1000014B */ b .L7001D250 +/* 01D924 7001CD24 02A02025 */ move $a0, $s5 +.L7001CD28: +/* 01D928 7001CD28 AFB200D0 */ sw $s2, 0xd0($sp) +/* 01D92C 7001CD2C 0C007117 */ jal __handleMIDIMsg +/* 01D930 7001CD30 AFB5004C */ sw $s5, 0x4c($sp) +/* 01D934 7001CD34 8FB200D0 */ lw $s2, 0xd0($sp) +/* 01D938 7001CD38 8FB5004C */ lw $s5, 0x4c($sp) +/* 01D93C 7001CD3C 0C007038 */ jal __postNextSeqEvent +/* 01D940 7001CD40 02402025 */ move $a0, $s2 +/* 01D944 7001CD44 10000142 */ b .L7001D250 +/* 01D948 7001CD48 02A02025 */ move $a0, $s5 +.L7001CD4C: +/* 01D94C 7001CD4C 0C00706F */ jal __handleMetaMsg +/* 01D950 7001CD50 27A40088 */ addiu $a0, $sp, 0x88 +/* 01D954 7001CD54 0C007038 */ jal __postNextSeqEvent +/* 01D958 7001CD58 02402025 */ move $a0, $s2 +/* 01D95C 7001CD5C 1000013C */ b .L7001D250 +/* 01D960 7001CD60 02A02025 */ move $a0, $s5 +.L7001CD64: +/* 01D964 7001CD64 AE58002C */ sw $t8, 0x2c($s2) +/* 01D968 7001CD68 24190010 */ li $t9, 16 +/* 01D96C 7001CD6C 3C067FFF */ lui $a2, (0x7FFFFFFF >> 16) # lui $a2, 0x7fff +/* 01D970 7001CD70 A7B90088 */ sh $t9, 0x88($sp) +/* 01D974 7001CD74 34C6FFFF */ ori $a2, (0x7FFFFFFF & 0xFFFF) # ori $a2, $a2, 0xffff +/* 01D978 7001CD78 02A02025 */ move $a0, $s5 +/* 01D97C 7001CD7C 0C004BBF */ jal alEvtqPostEvent +/* 01D980 7001CD80 27A50088 */ addiu $a1, $sp, 0x88 +/* 01D984 7001CD84 10000132 */ b .L7001D250 +/* 01D988 7001CD88 02A02025 */ move $a0, $s5 +.L7001CD8C: +/* 01D98C 7001CD8C 240E0009 */ li $t6, 9 +/* 01D990 7001CD90 A7AE00BC */ sh $t6, 0xbc($sp) +/* 01D994 7001CD94 8E46005C */ lw $a2, 0x5c($s2) +/* 01D998 7001CD98 02A02025 */ move $a0, $s5 +/* 01D99C 7001CD9C 0C004BBF */ jal alEvtqPostEvent +/* 01D9A0 7001CDA0 27A500BC */ addiu $a1, $sp, 0xbc +/* 01D9A4 7001CDA4 1000012A */ b .L7001D250 +/* 01D9A8 7001CDA8 02A02025 */ move $a0, $s5 +.L7001CDAC: +/* 01D9AC 7001CDAC 8E50003C */ lw $s0, 0x3c($s2) +/* 01D9B0 7001CDB0 8E440014 */ lw $a0, 0x14($s2) +/* 01D9B4 7001CDB4 0C004DA4 */ jal alSynStopVoice +/* 01D9B8 7001CDB8 02002825 */ move $a1, $s0 +/* 01D9BC 7001CDBC 8E440014 */ lw $a0, 0x14($s2) +/* 01D9C0 7001CDC0 0C004DC4 */ jal alSynFreeVoice +/* 01D9C4 7001CDC4 02002825 */ move $a1, $s0 +/* 01D9C8 7001CDC8 8E110010 */ lw $s1, 0x10($s0) +/* 01D9CC 7001CDCC 02402025 */ move $a0, $s2 +/* 01D9D0 7001CDD0 922F0037 */ lbu $t7, 0x37($s1) +/* 01D9D4 7001CDD4 51E00004 */ beql $t7, $zero, .L7001CDE8 +/* 01D9D8 7001CDD8 02402025 */ move $a0, $s2 +/* 01D9DC 7001CDDC 0C0074A8 */ jal __seqpStopOsc +/* 01D9E0 7001CDE0 02202825 */ move $a1, $s1 +/* 01D9E4 7001CDE4 02402025 */ move $a0, $s2 +.L7001CDE8: +/* 01D9E8 7001CDE8 0C00701C */ jal __unmapVoice +/* 01D9EC 7001CDEC 02002825 */ move $a1, $s0 +/* 01D9F0 7001CDF0 10000117 */ b .L7001D250 +/* 01D9F4 7001CDF4 02A02025 */ move $a0, $s5 +.L7001CDF8: +/* 01D9F8 7001CDF8 8E50003C */ lw $s0, 0x3c($s2) +/* 01D9FC 7001CDFC 24190001 */ li $t9, 1 +/* 01DA00 7001CE00 8E110010 */ lw $s1, 0x10($s0) +/* 01DA04 7001CE04 92380034 */ lbu $t8, 0x34($s1) +/* 01DA08 7001CE08 57000003 */ bnezl $t8, .L7001CE18 +/* 01DA0C 7001CE0C 924E0044 */ lbu $t6, 0x44($s2) +/* 01DA10 7001CE10 A2390034 */ sb $t9, 0x34($s1) +/* 01DA14 7001CE14 924E0044 */ lbu $t6, 0x44($s2) +.L7001CE18: +/* 01DA18 7001CE18 8E530040 */ lw $s3, 0x40($s2) +/* 01DA1C 7001CE1C 02202025 */ move $a0, $s1 +/* 01DA20 7001CE20 A22E0030 */ sb $t6, 0x30($s1) +/* 01DA24 7001CE24 8E4F001C */ lw $t7, 0x1c($s2) +/* 01DA28 7001CE28 02402825 */ move $a1, $s2 +/* 01DA2C 7001CE2C 01F3C021 */ addu $t8, $t7, $s3 +/* 01DA30 7001CE30 0C006F85 */ jal __vsVol +/* 01DA34 7001CE34 AE380024 */ sw $t8, 0x24($s1) +/* 01DA38 7001CE38 00023400 */ sll $a2, $v0, 0x10 +/* 01DA3C 7001CE3C 0006CC03 */ sra $t9, $a2, 0x10 +/* 01DA40 7001CE40 03203025 */ move $a2, $t9 +/* 01DA44 7001CE44 8E440014 */ lw $a0, 0x14($s2) +/* 01DA48 7001CE48 02002825 */ move $a1, $s0 +/* 01DA4C 7001CE4C 0C004CE8 */ jal alSynSetVol +/* 01DA50 7001CE50 02603825 */ move $a3, $s3 +/* 01DA54 7001CE54 100000FE */ b .L7001D250 +/* 01DA58 7001CE58 02A02025 */ move $a0, $s5 +.L7001CE5C: +/* 01DA5C 7001CE5C 8E590074 */ lw $t9, 0x74($s2) +/* 01DA60 7001CE60 8E540040 */ lw $s4, 0x40($s2) +/* 01DA64 7001CE64 8E51003C */ lw $s1, 0x3c($s2) +/* 01DA68 7001CE68 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 01DA6C 7001CE6C 0320F809 */ jalr $t9 +/* 01DA70 7001CE70 02802025 */ move $a0, $s4 +/* 01DA74 7001CE74 444EF800 */ cfc1 $t6, $31 +/* 01DA78 7001CE78 240F0001 */ li $t7, 1 +/* 01DA7C 7001CE7C 44CFF800 */ ctc1 $t7, $31 +/* 01DA80 7001CE80 C7A400A8 */ lwc1 $f4, 0xa8($sp) +/* 01DA84 7001CE84 00409825 */ move $s3, $v0 +/* 01DA88 7001CE88 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 01DA8C 7001CE8C 460021A4 */ cvt.w.s $f6, $f4 +/* 01DA90 7001CE90 02202025 */ move $a0, $s1 +/* 01DA94 7001CE94 02402825 */ move $a1, $s2 +/* 01DA98 7001CE98 444FF800 */ cfc1 $t7, $31 +/* 01DA9C 7001CE9C 00000000 */ nop +/* 01DAA0 7001CEA0 31EF0078 */ andi $t7, $t7, 0x78 +/* 01DAA4 7001CEA4 51E00013 */ beql $t7, $zero, .L7001CEF4 +/* 01DAA8 7001CEA8 440F3000 */ mfc1 $t7, $f6 +/* 01DAAC 7001CEAC 44813000 */ mtc1 $at, $f6 +/* 01DAB0 7001CEB0 240F0001 */ li $t7, 1 +/* 01DAB4 7001CEB4 46062181 */ sub.s $f6, $f4, $f6 +/* 01DAB8 7001CEB8 44CFF800 */ ctc1 $t7, $31 +/* 01DABC 7001CEBC 00000000 */ nop +/* 01DAC0 7001CEC0 460031A4 */ cvt.w.s $f6, $f6 +/* 01DAC4 7001CEC4 444FF800 */ cfc1 $t7, $31 +/* 01DAC8 7001CEC8 00000000 */ nop +/* 01DACC 7001CECC 31EF0078 */ andi $t7, $t7, 0x78 +/* 01DAD0 7001CED0 15E00005 */ bnez $t7, .L7001CEE8 +/* 01DAD4 7001CED4 00000000 */ nop +/* 01DAD8 7001CED8 440F3000 */ mfc1 $t7, $f6 +/* 01DADC 7001CEDC 3C018000 */ lui $at, 0x8000 +/* 01DAE0 7001CEE0 10000007 */ b .L7001CF00 +/* 01DAE4 7001CEE4 01E17825 */ or $t7, $t7, $at +.L7001CEE8: +/* 01DAE8 7001CEE8 10000005 */ b .L7001CF00 +/* 01DAEC 7001CEEC 240FFFFF */ li $t7, -1 +/* 01DAF0 7001CEF0 440F3000 */ mfc1 $t7, $f6 +.L7001CEF4: +/* 01DAF4 7001CEF4 00000000 */ nop +/* 01DAF8 7001CEF8 05E0FFFB */ bltz $t7, .L7001CEE8 +/* 01DAFC 7001CEFC 00000000 */ nop +.L7001CF00: +/* 01DB00 7001CF00 44CEF800 */ ctc1 $t6, $31 +/* 01DB04 7001CF04 0C006F85 */ jal __vsVol +/* 01DB08 7001CF08 A22F0036 */ sb $t7, 0x36($s1) +/* 01DB0C 7001CF0C 8E43001C */ lw $v1, 0x1c($s2) +/* 01DB10 7001CF10 8E390024 */ lw $t9, 0x24($s1) +/* 01DB14 7001CF14 00023400 */ sll $a2, $v0, 0x10 +/* 01DB18 7001CF18 0006C403 */ sra $t8, $a2, 0x10 +/* 01DB1C 7001CF1C 03232023 */ subu $a0, $t9, $v1 +/* 01DB20 7001CF20 04800003 */ bltz $a0, .L7001CF30 +/* 01DB24 7001CF24 03003025 */ move $a2, $t8 +/* 01DB28 7001CF28 10000002 */ b .L7001CF34 +/* 01DB2C 7001CF2C 00801025 */ move $v0, $a0 +.L7001CF30: +/* 01DB30 7001CF30 240203E8 */ li $v0, 1000 +.L7001CF34: +/* 01DB34 7001CF34 8E440014 */ lw $a0, 0x14($s2) +/* 01DB38 7001CF38 26250004 */ addiu $a1, $s1, 4 +/* 01DB3C 7001CF3C 0C004CE8 */ jal alSynSetVol +/* 01DB40 7001CF40 00403825 */ move $a3, $v0 +/* 01DB44 7001CF44 240E0016 */ li $t6, 22 +/* 01DB48 7001CF48 A7AE00BC */ sh $t6, 0xbc($sp) +/* 01DB4C 7001CF4C AFB100C0 */ sw $s1, 0xc0($sp) +/* 01DB50 7001CF50 AFB400C4 */ sw $s4, 0xc4($sp) +/* 01DB54 7001CF54 02A02025 */ move $a0, $s5 +/* 01DB58 7001CF58 27A500BC */ addiu $a1, $sp, 0xbc +/* 01DB5C 7001CF5C 0C004BBF */ jal alEvtqPostEvent +/* 01DB60 7001CF60 02603025 */ move $a2, $s3 +/* 01DB64 7001CF64 100000BA */ b .L7001D250 +/* 01DB68 7001CF68 02A02025 */ move $a0, $s5 +.L7001CF6C: +/* 01DB6C 7001CF6C 8E590074 */ lw $t9, 0x74($s2) +/* 01DB70 7001CF70 8E540040 */ lw $s4, 0x40($s2) +/* 01DB74 7001CF74 8E51003C */ lw $s1, 0x3c($s2) +/* 01DB78 7001CF78 92500044 */ lbu $s0, 0x44($s2) +/* 01DB7C 7001CF7C 27A500A8 */ addiu $a1, $sp, 0xa8 +/* 01DB80 7001CF80 0320F809 */ jalr $t9 +/* 01DB84 7001CF84 02802025 */ move $a0, $s4 +/* 01DB88 7001CF88 C7A800A8 */ lwc1 $f8, 0xa8($sp) +/* 01DB8C 7001CF8C C6240028 */ lwc1 $f4, 0x28($s1) +/* 01DB90 7001CF90 0010C100 */ sll $t8, $s0, 4 +/* 01DB94 7001CF94 E628002C */ swc1 $f8, 0x2c($s1) +/* 01DB98 7001CF98 C626002C */ lwc1 $f6, 0x2c($s1) +/* 01DB9C 7001CF9C 8E4F0060 */ lw $t7, 0x60($s2) +/* 01DBA0 7001CFA0 00409825 */ move $s3, $v0 +/* 01DBA4 7001CFA4 46062202 */ mul.s $f8, $f4, $f6 +/* 01DBA8 7001CFA8 01F87021 */ addu $t6, $t7, $t8 +/* 01DBAC 7001CFAC C5CA000C */ lwc1 $f10, 0xc($t6) +/* 01DBB0 7001CFB0 8E440014 */ lw $a0, 0x14($s2) +/* 01DBB4 7001CFB4 26250004 */ addiu $a1, $s1, 4 +/* 01DBB8 7001CFB8 46085102 */ mul.s $f4, $f10, $f8 +/* 01DBBC 7001CFBC 44062000 */ mfc1 $a2, $f4 +/* 01DBC0 7001CFC0 0C004D58 */ jal alSynSetPitch +/* 01DBC4 7001CFC4 00000000 */ nop +/* 01DBC8 7001CFC8 24190017 */ li $t9, 23 +/* 01DBCC 7001CFCC A7B900BC */ sh $t9, 0xbc($sp) +/* 01DBD0 7001CFD0 AFB100C0 */ sw $s1, 0xc0($sp) +/* 01DBD4 7001CFD4 AFB400C4 */ sw $s4, 0xc4($sp) +/* 01DBD8 7001CFD8 A3B000C8 */ sb $s0, 0xc8($sp) +/* 01DBDC 7001CFDC 02A02025 */ move $a0, $s5 +/* 01DBE0 7001CFE0 27A500BC */ addiu $a1, $sp, 0xbc +/* 01DBE4 7001CFE4 0C004BBF */ jal alEvtqPostEvent +/* 01DBE8 7001CFE8 02603025 */ move $a2, $s3 +/* 01DBEC 7001CFEC 10000098 */ b .L7001D250 +/* 01DBF0 7001CFF0 02A02025 */ move $a0, $s5 +.L7001CFF4: +/* 01DBF4 7001CFF4 02408825 */ move $s1, $s2 +/* 01DBF8 7001CFF8 8FA40050 */ lw $a0, 0x50($sp) +/* 01DBFC 7001CFFC AFB200D0 */ sw $s2, 0xd0($sp) +/* 01DC00 7001D000 0C007117 */ jal __handleMIDIMsg +/* 01DC04 7001D004 AFB5004C */ sw $s5, 0x4c($sp) +/* 01DC08 7001D008 8FB200D0 */ lw $s2, 0xd0($sp) +/* 01DC0C 7001D00C 1000008F */ b .L7001D24C +/* 01DC10 7001D010 8FB5004C */ lw $s5, 0x4c($sp) +.L7001D014: +/* 01DC14 7001D014 02402825 */ move $a1, $s2 +/* 01DC18 7001D018 0C00706F */ jal __handleMetaMsg +/* 01DC1C 7001D01C 8FA40050 */ lw $a0, 0x50($sp) +/* 01DC20 7001D020 1000008B */ b .L7001D250 +/* 01DC24 7001D024 02A02025 */ move $a0, $s5 +.L7001D028: +/* 01DC28 7001D028 8E4F002C */ lw $t7, 0x2c($s2) +/* 01DC2C 7001D02C 24010001 */ li $at, 1 +/* 01DC30 7001D030 24180001 */ li $t8, 1 +/* 01DC34 7001D034 11E10085 */ beq $t7, $at, .L7001D24C +/* 01DC38 7001D038 02402025 */ move $a0, $s2 +/* 01DC3C 7001D03C 0C007038 */ jal __postNextSeqEvent +/* 01DC40 7001D040 AE58002C */ sw $t8, 0x2c($s2) +/* 01DC44 7001D044 10000082 */ b .L7001D250 +/* 01DC48 7001D048 02A02025 */ move $a0, $s5 +.L7001D04C: +/* 01DC4C 7001D04C 8E4E002C */ lw $t6, 0x2c($s2) +/* 01DC50 7001D050 24010002 */ li $at, 2 +/* 01DC54 7001D054 55C1007E */ bnel $t6, $at, .L7001D250 +/* 01DC58 7001D058 02A02025 */ move $a0, $s5 +/* 01DC5C 7001D05C 8E510064 */ lw $s1, 0x64($s2) +/* 01DC60 7001D060 12200013 */ beqz $s1, .L7001D0B0 +/* 01DC64 7001D064 26300004 */ addiu $s0, $s1, 4 +.L7001D068: +/* 01DC68 7001D068 02002825 */ move $a1, $s0 +/* 01DC6C 7001D06C 0C004DA4 */ jal alSynStopVoice +/* 01DC70 7001D070 8E440014 */ lw $a0, 0x14($s2) +/* 01DC74 7001D074 8E440014 */ lw $a0, 0x14($s2) +/* 01DC78 7001D078 0C004DC4 */ jal alSynFreeVoice +/* 01DC7C 7001D07C 02002825 */ move $a1, $s0 +/* 01DC80 7001D080 92390037 */ lbu $t9, 0x37($s1) +/* 01DC84 7001D084 02402025 */ move $a0, $s2 +/* 01DC88 7001D088 53200004 */ beql $t9, $zero, .L7001D09C +/* 01DC8C 7001D08C 02402025 */ move $a0, $s2 +/* 01DC90 7001D090 0C0074A8 */ jal __seqpStopOsc +/* 01DC94 7001D094 02202825 */ move $a1, $s1 +/* 01DC98 7001D098 02402025 */ move $a0, $s2 +.L7001D09C: +/* 01DC9C 7001D09C 0C00701C */ jal __unmapVoice +/* 01DCA0 7001D0A0 02002825 */ move $a1, $s0 +/* 01DCA4 7001D0A4 8E510064 */ lw $s1, 0x64($s2) +/* 01DCA8 7001D0A8 5620FFEF */ bnezl $s1, .L7001D068 +/* 01DCAC 7001D0AC 26300004 */ addiu $s0, $s1, 4 +.L7001D0B0: +/* 01DCB0 7001D0B0 AE40001C */ sw $zero, 0x1c($s2) +/* 01DCB4 7001D0B4 10000065 */ b .L7001D24C +/* 01DCB8 7001D0B8 AE40002C */ sw $zero, 0x2c($s2) +.L7001D0BC: +/* 01DCBC 7001D0BC 8E4F002C */ lw $t7, 0x2c($s2) +/* 01DCC0 7001D0C0 24010001 */ li $at, 1 +/* 01DCC4 7001D0C4 02A02025 */ move $a0, $s5 +/* 01DCC8 7001D0C8 55E10061 */ bnel $t7, $at, .L7001D250 +/* 01DCCC 7001D0CC 02A02025 */ move $a0, $s5 +/* 01DCD0 7001D0D0 0C004B78 */ jal alEvtqFlushType +/* 01DCD4 7001D0D4 00002825 */ move $a1, $zero +/* 01DCD8 7001D0D8 02A02025 */ move $a0, $s5 +/* 01DCDC 7001D0DC 0C004B78 */ jal alEvtqFlushType +/* 01DCE0 7001D0E0 24050002 */ li $a1, 2 +/* 01DCE4 7001D0E4 8E510064 */ lw $s1, 0x64($s2) +/* 01DCE8 7001D0E8 1220000D */ beqz $s1, .L7001D120 +/* 01DCEC 7001D0EC 26300004 */ addiu $s0, $s1, 4 +.L7001D0F0: +/* 01DCF0 7001D0F0 02002825 */ move $a1, $s0 +/* 01DCF4 7001D0F4 02402025 */ move $a0, $s2 +/* 01DCF8 7001D0F8 0C006FF2 */ jal __voiceNeedsNoteKill +/* 01DCFC 7001D0FC 3406C350 */ li $a2, 50000 +/* 01DD00 7001D100 10400004 */ beqz $v0, .L7001D114 +/* 01DD04 7001D104 02402025 */ move $a0, $s2 +/* 01DD08 7001D108 02002825 */ move $a1, $s0 +/* 01DD0C 7001D10C 0C006FA7 */ jal __seqpReleaseVoice +/* 01DD10 7001D110 3406C350 */ li $a2, 50000 +.L7001D114: +/* 01DD14 7001D114 8E310000 */ lw $s1, ($s1) +/* 01DD18 7001D118 5620FFF5 */ bnezl $s1, .L7001D0F0 +/* 01DD1C 7001D11C 26300004 */ addiu $s0, $s1, 4 +.L7001D120: +/* 01DD20 7001D120 24180002 */ li $t8, 2 +/* 01DD24 7001D124 AE58002C */ sw $t8, 0x2c($s2) +/* 01DD28 7001D128 240E0010 */ li $t6, 16 +/* 01DD2C 7001D12C 3C067FFF */ lui $a2, (0x7FFFFFFF >> 16) # lui $a2, 0x7fff +/* 01DD30 7001D130 A7AE00BC */ sh $t6, 0xbc($sp) +/* 01DD34 7001D134 34C6FFFF */ ori $a2, (0x7FFFFFFF & 0xFFFF) # ori $a2, $a2, 0xffff +/* 01DD38 7001D138 02A02025 */ move $a0, $s5 +/* 01DD3C 7001D13C 0C004BBF */ jal alEvtqPostEvent +/* 01DD40 7001D140 27A500BC */ addiu $a1, $sp, 0xbc +/* 01DD44 7001D144 10000042 */ b .L7001D250 +/* 01DD48 7001D148 02A02025 */ move $a0, $s5 +.L7001D14C: +/* 01DD4C 7001D14C 8E510064 */ lw $s1, 0x64($s2) +/* 01DD50 7001D150 8659003C */ lh $t9, 0x3c($s2) +/* 01DD54 7001D154 1220003D */ beqz $s1, .L7001D24C +/* 01DD58 7001D158 A6590032 */ sh $t9, 0x32($s2) +/* 01DD5C 7001D15C 02202025 */ move $a0, $s1 +.L7001D160: +/* 01DD60 7001D160 0C006F85 */ jal __vsVol +/* 01DD64 7001D164 02402825 */ move $a1, $s2 +/* 01DD68 7001D168 8E43001C */ lw $v1, 0x1c($s2) +/* 01DD6C 7001D16C 8E380024 */ lw $t8, 0x24($s1) +/* 01DD70 7001D170 00023400 */ sll $a2, $v0, 0x10 +/* 01DD74 7001D174 00067C03 */ sra $t7, $a2, 0x10 +/* 01DD78 7001D178 03032023 */ subu $a0, $t8, $v1 +/* 01DD7C 7001D17C 04800003 */ bltz $a0, .L7001D18C +/* 01DD80 7001D180 01E03025 */ move $a2, $t7 +/* 01DD84 7001D184 10000002 */ b .L7001D190 +/* 01DD88 7001D188 00801025 */ move $v0, $a0 +.L7001D18C: +/* 01DD8C 7001D18C 240203E8 */ li $v0, 1000 +.L7001D190: +/* 01DD90 7001D190 8E440014 */ lw $a0, 0x14($s2) +/* 01DD94 7001D194 26250004 */ addiu $a1, $s1, 4 +/* 01DD98 7001D198 0C004CE8 */ jal alSynSetVol +/* 01DD9C 7001D19C 00403825 */ move $a3, $v0 +/* 01DDA0 7001D1A0 8E310000 */ lw $s1, ($s1) +/* 01DDA4 7001D1A4 5620FFEE */ bnezl $s1, .L7001D160 +/* 01DDA8 7001D1A8 02202025 */ move $a0, $s1 +/* 01DDAC 7001D1AC 10000028 */ b .L7001D250 +/* 01DDB0 7001D1B0 02A02025 */ move $a0, $s5 +.L7001D1B4: +/* 01DDB4 7001D1B4 8E4E003C */ lw $t6, 0x3c($s2) +/* 01DDB8 7001D1B8 8E590040 */ lw $t9, 0x40($s2) +/* 01DDBC 7001D1BC 8E4F0044 */ lw $t7, 0x44($s2) +/* 01DDC0 7001D1C0 AE4E007C */ sw $t6, 0x7c($s2) +/* 01DDC4 7001D1C4 AE590080 */ sw $t9, 0x80($s2) +/* 01DDC8 7001D1C8 10000020 */ b .L7001D24C +/* 01DDCC 7001D1CC AE4F0084 */ sw $t7, 0x84($s2) +.L7001D1D0: +/* 01DDD0 7001D1D0 9250003C */ lbu $s0, 0x3c($s2) +/* 01DDD4 7001D1D4 8E4E0060 */ lw $t6, 0x60($s2) +/* 01DDD8 7001D1D8 9258003D */ lbu $t8, 0x3d($s2) +/* 01DDDC 7001D1DC 0010C900 */ sll $t9, $s0, 4 +/* 01DDE0 7001D1E0 01D97821 */ addu $t7, $t6, $t9 +/* 01DDE4 7001D1E4 10000019 */ b .L7001D24C +/* 01DDE8 7001D1E8 A1F80008 */ sb $t8, 8($t7) +.L7001D1EC: +/* 01DDEC 7001D1EC 8E45003C */ lw $a1, 0x3c($s2) +/* 01DDF0 7001D1F0 240F01E8 */ li $t7, 488 +/* 01DDF4 7001D1F4 3C018003 */ lui $at, %hi(F32_80029C88) +/* 01DDF8 7001D1F8 10A00008 */ beqz $a1, .L7001D21C +/* 01DDFC 7001D1FC AE450018 */ sw $a1, 0x18($s2) +/* 01DE00 7001D200 C4269C88 */ lwc1 $f6, %lo(F32_80029C88)($at) +/* 01DE04 7001D204 C4AA0014 */ lwc1 $f10, 0x14($a1) +/* 01DE08 7001D208 460A3202 */ mul.s $f8, $f6, $f10 +/* 01DE0C 7001D20C 4600410D */ trunc.w.s $f4, $f8 +/* 01DE10 7001D210 44182000 */ mfc1 $t8, $f4 +/* 01DE14 7001D214 10000002 */ b .L7001D220 +/* 01DE18 7001D218 AE580024 */ sw $t8, 0x24($s2) +.L7001D21C: +/* 01DE1C 7001D21C AE4F0024 */ sw $t7, 0x24($s2) +.L7001D220: +/* 01DE20 7001D220 8E450020 */ lw $a1, 0x20($s2) +/* 01DE24 7001D224 50A0000A */ beql $a1, $zero, .L7001D250 +/* 01DE28 7001D228 02A02025 */ move $a0, $s5 +/* 01DE2C 7001D22C 0C006F4D */ jal __initFromBank +/* 01DE30 7001D230 02402025 */ move $a0, $s2 +/* 01DE34 7001D234 10000006 */ b .L7001D250 +/* 01DE38 7001D238 02A02025 */ move $a0, $s5 +.L7001D23C: +/* 01DE3C 7001D23C 8E45003C */ lw $a1, 0x3c($s2) +/* 01DE40 7001D240 02402025 */ move $a0, $s2 +/* 01DE44 7001D244 0C006F4D */ jal __initFromBank +/* 01DE48 7001D248 AE450020 */ sw $a1, 0x20($s2) +.L7001D24C: +/* 01DE4C 7001D24C 02A02025 */ move $a0, $s5 +.L7001D250: +/* 01DE50 7001D250 0C004C08 */ jal alEvtqNextEvent +/* 01DE54 7001D254 8FA50050 */ lw $a1, 0x50($sp) +/* 01DE58 7001D258 1040FE98 */ beqz $v0, .L7001CCBC +/* 01DE5C 7001D25C AE420028 */ sw $v0, 0x28($s2) +/* 01DE60 7001D260 8E4E001C */ lw $t6, 0x1c($s2) +/* 01DE64 7001D264 01C2C821 */ addu $t9, $t6, $v0 +/* 01DE68 7001D268 AE59001C */ sw $t9, 0x1c($s2) +/* 01DE6C 7001D26C 8FBF0044 */ lw $ra, 0x44($sp) +/* 01DE70 7001D270 8FBE0040 */ lw $fp, 0x40($sp) +/* 01DE74 7001D274 8FB7003C */ lw $s7, 0x3c($sp) +/* 01DE78 7001D278 8FB60038 */ lw $s6, 0x38($sp) +/* 01DE7C 7001D27C 8FB50034 */ lw $s5, 0x34($sp) +/* 01DE80 7001D280 8FB40030 */ lw $s4, 0x30($sp) +/* 01DE84 7001D284 8FB3002C */ lw $s3, 0x2c($sp) +/* 01DE88 7001D288 8FB20028 */ lw $s2, 0x28($sp) +/* 01DE8C 7001D28C 8FB10024 */ lw $s1, 0x24($sp) +/* 01DE90 7001D290 8FB00020 */ lw $s0, 0x20($sp) +/* 01DE94 7001D294 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 01DE98 7001D298 03E00008 */ jr $ra +/* 01DE9C 7001D29C 27BD00D0 */ addiu $sp, $sp, 0xd0 + +glabel __seqpStopOsc +/* 01DEA0 7001D2A0 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 01DEA4 7001D2A4 AFBF0034 */ sw $ra, 0x34($sp) +/* 01DEA8 7001D2A8 AFB70030 */ sw $s7, 0x30($sp) +/* 01DEAC 7001D2AC AFB6002C */ sw $s6, 0x2c($sp) +/* 01DEB0 7001D2B0 AFB50028 */ sw $s5, 0x28($sp) +/* 01DEB4 7001D2B4 AFB40024 */ sw $s4, 0x24($sp) +/* 01DEB8 7001D2B8 AFB30020 */ sw $s3, 0x20($sp) +/* 01DEBC 7001D2BC AFB2001C */ sw $s2, 0x1c($sp) +/* 01DEC0 7001D2C0 AFB10018 */ sw $s1, 0x18($sp) +/* 01DEC4 7001D2C4 AFB00014 */ sw $s0, 0x14($sp) +/* 01DEC8 7001D2C8 8C900050 */ lw $s0, 0x50($a0) +/* 01DECC 7001D2CC 00A09025 */ move $s2, $a1 +/* 01DED0 7001D2D0 0080A825 */ move $s5, $a0 +/* 01DED4 7001D2D4 12000028 */ beqz $s0, .L7001D378 +/* 01DED8 7001D2D8 24170017 */ li $s7, 23 +/* 01DEDC 7001D2DC 24160016 */ li $s6, 22 +.L7001D2E0: +/* 01DEE0 7001D2E0 8613000C */ lh $s3, 0xc($s0) +/* 01DEE4 7001D2E4 8E110000 */ lw $s1, ($s0) +/* 01DEE8 7001D2E8 52760004 */ beql $s3, $s6, .L7001D2FC +/* 01DEEC 7001D2EC 8E0E0010 */ lw $t6, 0x10($s0) +/* 01DEF0 7001D2F0 1677001F */ bne $s3, $s7, .L7001D370 +/* 01DEF4 7001D2F4 00000000 */ nop +/* 01DEF8 7001D2F8 8E0E0010 */ lw $t6, 0x10($s0) +.L7001D2FC: +/* 01DEFC 7001D2FC 164E001C */ bne $s2, $t6, .L7001D370 +glabel unknown_libname_37 +/* 01DF00 7001D300 00000000 */ nop +/* 01DF04 7001D304 8EB90078 */ lw $t9, 0x78($s5) +/* 01DF08 7001D308 8E040014 */ lw $a0, 0x14($s0) +/* 01DF0C 7001D30C 26B40048 */ addiu $s4, $s5, 0x48 +/* 01DF10 7001D310 0320F809 */ jalr $t9 +/* 01DF14 7001D314 00000000 */ nop +/* 01DF18 7001D318 0C003AA4 */ jal alUnlink +/* 01DF1C 7001D31C 02002025 */ move $a0, $s0 +/* 01DF20 7001D320 12200005 */ beqz $s1, .L7001D338 +/* 01DF24 7001D324 02002025 */ move $a0, $s0 +/* 01DF28 7001D328 8E2F0008 */ lw $t7, 8($s1) +glabel unknown_libname_38 +/* 01DF2C 7001D32C 8E180008 */ lw $t8, 8($s0) +/* 01DF30 7001D330 01F84021 */ addu $t0, $t7, $t8 +/* 01DF34 7001D334 AE280008 */ sw $t0, 8($s1) +glabel unknown_libname_39 +.L7001D338: +/* 01DF38 7001D338 0C003AB0 */ jal alLink +/* 01DF3C 7001D33C 02802825 */ move $a1, $s4 +/* 01DF40 7001D340 56760006 */ bnel $s3, $s6, .L7001D35C +/* 01DF44 7001D344 924B0037 */ lbu $t3, 0x37($s2) +/* 01DF48 7001D348 92490037 */ lbu $t1, 0x37($s2) +/* 01DF4C 7001D34C 312A00FE */ andi $t2, $t1, 0xfe +/* 01DF50 7001D350 10000004 */ b .L7001D364 +/* 01DF54 7001D354 A24A0037 */ sb $t2, 0x37($s2) +/* 01DF58 7001D358 924B0037 */ lbu $t3, 0x37($s2) +glabel unknown_libname_40 +.L7001D35C: +/* 01DF5C 7001D35C 316C00FD */ andi $t4, $t3, 0xfd +/* 01DF60 7001D360 A24C0037 */ sb $t4, 0x37($s2) +.L7001D364: +/* 01DF64 7001D364 924D0037 */ lbu $t5, 0x37($s2) +/* 01DF68 7001D368 51A00004 */ beql $t5, $zero, .L7001D37C +/* 01DF6C 7001D36C 8FBF0034 */ lw $ra, 0x34($sp) +.L7001D370: +/* 01DF70 7001D370 1620FFDB */ bnez $s1, .L7001D2E0 +/* 01DF74 7001D374 02208025 */ move $s0, $s1 +.L7001D378: +/* 01DF78 7001D378 8FBF0034 */ lw $ra, 0x34($sp) +.L7001D37C: +/* 01DF7C 7001D37C 8FB00014 */ lw $s0, 0x14($sp) +/* 01DF80 7001D380 8FB10018 */ lw $s1, 0x18($sp) +/* 01DF84 7001D384 8FB2001C */ lw $s2, 0x1c($sp) +/* 01DF88 7001D388 8FB30020 */ lw $s3, 0x20($sp) +glabel unknown_libname_41 +/* 01DF8C 7001D38C 8FB40024 */ lw $s4, 0x24($sp) +/* 01DF90 7001D390 8FB50028 */ lw $s5, 0x28($sp) +/* 01DF94 7001D394 8FB6002C */ lw $s6, 0x2c($sp) +/* 01DF98 7001D398 8FB70030 */ lw $s7, 0x30($sp) +/* 01DF9C 7001D39C 03E00008 */ jr $ra +glabel unknown_libname_42 +/* 01DFA0 7001D3A0 27BD0038 */ addiu $sp, $sp, 0x38 + +glabel __initChanState +/* 01DFA4 7001D3A4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 01DFA8 7001D3A8 AFBF0024 */ sw $ra, 0x24($sp) +/* 01DFAC 7001D3AC AFB20020 */ sw $s2, 0x20($sp) +/* 01DFB0 7001D3B0 AFB1001C */ sw $s1, 0x1c($sp) +/* 01DFB4 7001D3B4 AFB00018 */ sw $s0, 0x18($sp) +/* 01DFB8 7001D3B8 908E0034 */ lbu $t6, 0x34($a0) +/* 01DFBC 7001D3BC 00808825 */ move $s1, $a0 +/* 01DFC0 7001D3C0 00008025 */ move $s0, $zero +/* 01DFC4 7001D3C4 19C0000D */ blez $t6, .L7001D3FC +/* 01DFC8 7001D3C8 00009025 */ move $s2, $zero +/* 01DFCC 7001D3CC 8E2F0060 */ lw $t7, 0x60($s1) +.L7001D3D0: +/* 01DFD0 7001D3D0 02202025 */ move $a0, $s1 +/* 01DFD4 7001D3D4 02002825 */ move $a1, $s0 +/* 01DFD8 7001D3D8 01F2C021 */ addu $t8, $t7, $s2 +/* 01DFDC 7001D3DC 0C006F2D */ jal __resetPerfChanState +/* 01DFE0 7001D3E0 AF000000 */ sw $zero, ($t8) +/* 01DFE4 7001D3E4 92390034 */ lbu $t9, 0x34($s1) +/* 01DFE8 7001D3E8 26100001 */ addiu $s0, $s0, 1 +/* 01DFEC 7001D3EC 26520010 */ addiu $s2, $s2, 0x10 +/* 01DFF0 7001D3F0 0219082A */ slt $at, $s0, $t9 +/* 01DFF4 7001D3F4 5420FFF6 */ bnezl $at, .L7001D3D0 +/* 01DFF8 7001D3F8 8E2F0060 */ lw $t7, 0x60($s1) +.L7001D3FC: +/* 01DFFC 7001D3FC 8FBF0024 */ lw $ra, 0x24($sp) +/* 01E000 7001D400 8FB00018 */ lw $s0, 0x18($sp) +/* 01E004 7001D404 8FB1001C */ lw $s1, 0x1c($sp) +/* 01E008 7001D408 8FB20020 */ lw $s2, 0x20($sp) +/* 01E00C 7001D40C 03E00008 */ jr $ra +/* 01E010 7001D410 27BD0028 */ addiu $sp, $sp, 0x28 + +glabel alSeqpNew +/* 01E014 7001D414 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 01E018 7001D418 AFBF0024 */ sw $ra, 0x24($sp) +/* 01E01C 7001D41C AFB10020 */ sw $s1, 0x20($sp) +/* 01E020 7001D420 AFB0001C */ sw $s0, 0x1c($sp) +/* 01E024 7001D424 8CA6000C */ lw $a2, 0xc($a1) +/* 01E028 7001D428 AC800020 */ sw $zero, 0x20($a0) +/* 01E02C 7001D42C AC800018 */ sw $zero, 0x18($a0) +/* 01E030 7001D430 3C0E8002 */ lui $t6, %hi(alGlobals) +/* 01E034 7001D434 8DCE76E0 */ lw $t6, %lo(alGlobals)($t6) +/* 01E038 7001D438 240F00FF */ li $t7, 255 +/* 01E03C 7001D43C 241801E8 */ li $t8, 488 +/* 01E040 7001D440 24197FFF */ li $t9, 32767 +/* 01E044 7001D444 A48F0030 */ sh $t7, 0x30($a0) +/* 01E048 7001D448 AC980024 */ sw $t8, 0x24($a0) +/* 01E04C 7001D44C AC800028 */ sw $zero, 0x28($a0) +/* 01E050 7001D450 AC80002C */ sw $zero, 0x2c($a0) +/* 01E054 7001D454 A4990032 */ sh $t9, 0x32($a0) +/* 01E058 7001D458 AC8E0014 */ sw $t6, 0x14($a0) +/* 01E05C 7001D45C 90A80009 */ lbu $t0, 9($a1) +/* 01E060 7001D460 24093E80 */ li $t1, 16000 +/* 01E064 7001D464 AC89005C */ sw $t1, 0x5c($a0) +/* 01E068 7001D468 AC80001C */ sw $zero, 0x1c($a0) +/* 01E06C 7001D46C A0880035 */ sb $t0, 0x35($a0) +/* 01E070 7001D470 8CAA0010 */ lw $t2, 0x10($a1) +/* 01E074 7001D474 240D0009 */ li $t5, 9 +/* 01E078 7001D478 00A08825 */ move $s1, $a1 +/* 01E07C 7001D47C AC8A0070 */ sw $t2, 0x70($a0) +/* 01E080 7001D480 8CAB0014 */ lw $t3, 0x14($a1) +/* 01E084 7001D484 00808025 */ move $s0, $a0 +/* 01E088 7001D488 240F0010 */ li $t7, 16 +/* 01E08C 7001D48C AC8B0074 */ sw $t3, 0x74($a0) +/* 01E090 7001D490 8CAC0018 */ lw $t4, 0x18($a1) +/* 01E094 7001D494 AC80007C */ sw $zero, 0x7c($a0) +/* 01E098 7001D498 AC800080 */ sw $zero, 0x80($a0) +/* 01E09C 7001D49C AC800084 */ sw $zero, 0x84($a0) +/* 01E0A0 7001D4A0 A48D0038 */ sh $t5, 0x38($a0) +/* 01E0A4 7001D4A4 AC8C0078 */ sw $t4, 0x78($a0) +/* 01E0A8 7001D4A8 90AE0008 */ lbu $t6, 8($a1) +/* 01E0AC 7001D4AC 00002825 */ move $a1, $zero +/* 01E0B0 7001D4B0 A08E0034 */ sb $t6, 0x34($a0) +/* 01E0B4 7001D4B4 92270008 */ lbu $a3, 8($s1) +/* 01E0B8 7001D4B8 AFAF0010 */ sw $t7, 0x10($sp) +/* 01E0BC 7001D4BC 00002025 */ move $a0, $zero +/* 01E0C0 7001D4C0 0C003AD4 */ jal alHeapDBAlloc +/* 01E0C4 7001D4C4 AFA6002C */ sw $a2, 0x2c($sp) +/* 01E0C8 7001D4C8 AE020060 */ sw $v0, 0x60($s0) +/* 01E0CC 7001D4CC 0C0074E9 */ jal __initChanState +/* 01E0D0 7001D4D0 02002025 */ move $a0, $s0 +/* 01E0D4 7001D4D4 8E270000 */ lw $a3, ($s1) +/* 01E0D8 7001D4D8 24180038 */ li $t8, 56 +/* 01E0DC 7001D4DC AFB80010 */ sw $t8, 0x10($sp) +/* 01E0E0 7001D4E0 00002025 */ move $a0, $zero +/* 01E0E4 7001D4E4 00002825 */ move $a1, $zero +/* 01E0E8 7001D4E8 0C003AD4 */ jal alHeapDBAlloc +/* 01E0EC 7001D4EC 8FA6002C */ lw $a2, 0x2c($sp) +/* 01E0F0 7001D4F0 AE00006C */ sw $zero, 0x6c($s0) +/* 01E0F4 7001D4F4 8E390000 */ lw $t9, ($s1) +/* 01E0F8 7001D4F8 00002025 */ move $a0, $zero +/* 01E0FC 7001D4FC 00002825 */ move $a1, $zero +/* 01E100 7001D500 1B20000B */ blez $t9, .L7001D530 +/* 01E104 7001D504 240A001C */ li $t2, 28 +/* 01E108 7001D508 00401825 */ move $v1, $v0 +/* 01E10C 7001D50C 8E08006C */ lw $t0, 0x6c($s0) +.L7001D510: +/* 01E110 7001D510 24840001 */ addiu $a0, $a0, 1 +/* 01E114 7001D514 AC680000 */ sw $t0, ($v1) +/* 01E118 7001D518 AE03006C */ sw $v1, 0x6c($s0) +/* 01E11C 7001D51C 8E290000 */ lw $t1, ($s1) +/* 01E120 7001D520 24630038 */ addiu $v1, $v1, 0x38 +/* 01E124 7001D524 0089082A */ slt $at, $a0, $t1 +/* 01E128 7001D528 5420FFF9 */ bnezl $at, .L7001D510 +/* 01E12C 7001D52C 8E08006C */ lw $t0, 0x6c($s0) +.L7001D530: +/* 01E130 7001D530 AE000064 */ sw $zero, 0x64($s0) +/* 01E134 7001D534 AE000068 */ sw $zero, 0x68($s0) +/* 01E138 7001D538 8E270004 */ lw $a3, 4($s1) +/* 01E13C 7001D53C AFAA0010 */ sw $t2, 0x10($sp) +/* 01E140 7001D540 8FA6002C */ lw $a2, 0x2c($sp) +/* 01E144 7001D544 0C003AD4 */ jal alHeapDBAlloc +/* 01E148 7001D548 00002025 */ move $a0, $zero +/* 01E14C 7001D54C 26040048 */ addiu $a0, $s0, 0x48 +/* 01E150 7001D550 00402825 */ move $a1, $v0 +/* 01E154 7001D554 0C004C2B */ jal alEvtqNew +/* 01E158 7001D558 8E260004 */ lw $a2, 4($s1) +/* 01E15C 7001D55C 3C0B7002 */ lui $t3, %hi(__seqpVoiceHandler) # $t3, 0x7002 +/* 01E160 7001D560 256BCC7C */ addiu $t3, %lo(__seqpVoiceHandler) # addiu $t3, $t3, -0x3384 +/* 01E164 7001D564 AE000000 */ sw $zero, ($s0) +/* 01E168 7001D568 AE0B0008 */ sw $t3, 8($s0) +/* 01E16C 7001D56C AE100004 */ sw $s0, 4($s0) +/* 01E170 7001D570 3C048002 */ lui $a0, %hi(alGlobals) +/* 01E174 7001D574 8C8476E0 */ lw $a0, %lo(alGlobals)($a0) +/* 01E178 7001D578 0C004C48 */ jal alSynAddPlayer +/* 01E17C 7001D57C 02002825 */ move $a1, $s0 +/* 01E180 7001D580 8FBF0024 */ lw $ra, 0x24($sp) +/* 01E184 7001D584 8FB0001C */ lw $s0, 0x1c($sp) +/* 01E188 7001D588 8FB10020 */ lw $s1, 0x20($sp) +/* 01E18C 7001D58C 03E00008 */ jr $ra +/* 01E190 7001D590 27BD0040 */ addiu $sp, $sp, 0x40 + + +.section .rodata + + +.section .rodata +glabel jpt_80029A50 + .word .L7001C7F4, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001C4A0, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001C84C, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001C92C, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CB98, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001C8B4, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CBCC +glabel jpt_80029BD4 + .word .L7001C9F0, .L7001CC64, .L7001CC64, .L7001C994 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CA84, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64, .L7001CC64, .L7001CC64, .L7001CC64 + .word .L7001CC64 +glabel jpt_80029C28 + .word .L7001CCE0, .L7001D24C, .L7001CFF4, .L7001D24C + .word .L7001D24C, .L7001CDAC, .L7001CDF8, .L7001D014 + .word .L7001D24C, .L7001CD8C, .L7001D14C, .L7001D1B4 + .word .L7001D1D0, .L7001D1EC, .L7001D23C, .L7001D028 + .word .L7001D04C, .L7001D0BC, .L7001D24C, .L7001D24C + .word .L7001D24C, .L7001D24C, .L7001CE5C, .L7001CF6C +glabel F32_80029C88 +.float 500000.0 + .align 4 diff --git a/src/libultra/seqpsetbank.s b/src/libultra/seqpsetbank.s new file mode 100644 index 0000000..d01eba0 --- /dev/null +++ b/src/libultra/seqpsetbank.s @@ -0,0 +1,23 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alSeqpSetBank +/* 012DF0 700121F0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 012DF4 700121F4 AFBF0014 */ sw $ra, 0x14($sp) +/* 012DF8 700121F8 240E000E */ li $t6, 14 +/* 012DFC 700121FC AFA5001C */ sw $a1, 0x1c($sp) +/* 012E00 70012200 A7AE0018 */ sh $t6, 0x18($sp) +/* 012E04 70012204 27A50018 */ addiu $a1, $sp, 0x18 +/* 012E08 70012208 24840048 */ addiu $a0, $a0, 0x48 +/* 012E0C 7001220C 0C004BBF */ jal alEvtqPostEvent +/* 012E10 70012210 00003025 */ move $a2, $zero +/* 012E14 70012214 8FBF0014 */ lw $ra, 0x14($sp) +/* 012E18 70012218 27BD0028 */ addiu $sp, $sp, 0x28 +/* 012E1C 7001221C 03E00008 */ jr $ra +/* 012E20 70012220 00000000 */ nop diff --git a/src/libultra/setcompare.s b/src/libultra/setcompare.s new file mode 100644 index 0000000..907af67 --- /dev/null +++ b/src/libultra/setcompare.s @@ -0,0 +1,18 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSetCompare +/* 0204E0 7001F8E0 40845800 */ mtc0 $a0, $11 +/* 0204E4 7001F8E4 03E00008 */ jr $ra +/* 0204E8 7001F8E8 00000000 */ nop + diff --git a/src/libultra/seteventmesg.s b/src/libultra/seteventmesg.s new file mode 100644 index 0000000..ad7ad44 --- /dev/null +++ b/src/libultra/seteventmesg.s @@ -0,0 +1,162 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osSetEventMesg +/* 00E850 7000DC50 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00E854 7000DC54 AFBF001C */ sw $ra, 0x1c($sp) +/* 00E858 7000DC58 AFA40028 */ sw $a0, 0x28($sp) +/* 00E85C 7000DC5C AFA5002C */ sw $a1, 0x2c($sp) +/* 00E860 7000DC60 AFA60030 */ sw $a2, 0x30($sp) +/* 00E864 7000DC64 0C00617C */ jal __osDisableInt +/* 00E868 7000DC68 AFB00018 */ sw $s0, 0x18($sp) +/* 00E86C 7000DC6C 8FAE0028 */ lw $t6, 0x28($sp) +/* 00E870 7000DC70 3C188006 */ lui $t8, %hi(__osEventStateTab) +/* 00E874 7000DC74 8FA8002C */ lw $t0, 0x2c($sp) +/* 00E878 7000DC78 27186A10 */ addiu $t8, %lo(__osEventStateTab) # addiu $t8, $t8, 0x6a10 +/* 00E87C 7000DC7C 000E78C0 */ sll $t7, $t6, 3 +/* 00E880 7000DC80 01F8C821 */ addu $t9, $t7, $t8 +/* 00E884 7000DC84 AFB90020 */ sw $t9, 0x20($sp) +/* 00E888 7000DC88 AF280000 */ sw $t0, ($t9) +/* 00E88C 7000DC8C 8FAA0020 */ lw $t2, 0x20($sp) +/* 00E890 7000DC90 8FA90030 */ lw $t1, 0x30($sp) +/* 00E894 7000DC94 00408025 */ move $s0, $v0 +/* 00E898 7000DC98 02002025 */ move $a0, $s0 +/* 00E89C 7000DC9C 0C006184 */ jal __osRestoreInt +/* 00E8A0 7000DCA0 AD490004 */ sw $t1, 4($t2) +/* 00E8A4 7000DCA4 8FBF001C */ lw $ra, 0x1c($sp) +/* 00E8A8 7000DCA8 8FB00018 */ lw $s0, 0x18($sp) +/* 00E8AC 7000DCAC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00E8B0 7000DCB0 03E00008 */ jr $ra +/* 00E8B4 7000DCB4 00000000 */ nop + +.section .bss +glabel __osEventStateTab +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 + + + diff --git a/src/libultra/setfpccsr.s b/src/libultra/setfpccsr.s new file mode 100644 index 0000000..5dff282 --- /dev/null +++ b/src/libultra/setfpccsr.s @@ -0,0 +1,14 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel __osSetFpcCsr +/* 00E020 7000D420 4442F800 */ cfc1 $v0, $31 +/* 00E024 7000D424 44C4F800 */ ctc1 $a0, $31 +/* 00E028 7000D428 03E00008 */ jr $ra +/* 00E02C 7000D42C 00000000 */ nop diff --git a/src/libultra/sethwinterrupt.s b/src/libultra/sethwinterrupt.s new file mode 100644 index 0000000..6df9f6f --- /dev/null +++ b/src/libultra/sethwinterrupt.s @@ -0,0 +1,34 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSetHWIntrRoutine +/* 0188E0 70017CE0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0188E4 70017CE4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0188E8 70017CE8 AFA40028 */ sw $a0, 0x28($sp) +/* 0188EC 70017CEC AFA5002C */ sw $a1, 0x2c($sp) +/* 0188F0 70017CF0 0C00617C */ jal __osDisableInt +/* 0188F4 70017CF4 AFB00018 */ sw $s0, 0x18($sp) +/* 0188F8 70017CF8 8FAF0028 */ lw $t7, 0x28($sp) +/* 0188FC 70017CFC 8FAE002C */ lw $t6, 0x2c($sp) +/* 018900 70017D00 3C018002 */ lui $at, %hi(__osHwIntTable) +/* 018904 70017D04 000FC080 */ sll $t8, $t7, 2 +/* 018908 70017D08 00408025 */ move $s0, $v0 +/* 01890C 70017D0C 00380821 */ addu $at, $at, $t8 +/* 018910 70017D10 02002025 */ move $a0, $s0 +/* 018914 70017D14 0C006184 */ jal __osRestoreInt +/* 018918 70017D18 AC2E7700 */ sw $t6, %lo(__osHwIntTable)($at) +/* 01891C 70017D1C 8FBF001C */ lw $ra, 0x1c($sp) +/* 018920 70017D20 8FB00018 */ lw $s0, 0x18($sp) +/* 018924 70017D24 27BD0028 */ addiu $sp, $sp, 0x28 +/* 018928 70017D28 03E00008 */ jr $ra +/* 01892C 70017D2C 00000000 */ nop diff --git a/src/libultra/setintmask.s b/src/libultra/setintmask.s new file mode 100644 index 0000000..9b73eb9 --- /dev/null +++ b/src/libultra/setintmask.s @@ -0,0 +1,62 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osSetIntMask +/* 00E930 7000DD30 400C6000 */ mfc0 $t4, $12 +/* 00E934 7000DD34 3182FF01 */ andi $v0, $t4, 0xff01 +/* 00E938 7000DD38 3C088002 */ lui $t0, %hi(__OSGlobalIntMask) +/* 00E93C 7000DD3C 2508698C */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x698c +/* 00E940 7000DD40 8D0B0000 */ lw $t3, ($t0) +/* 00E944 7000DD44 2401FFFF */ li $at, -1 +/* 00E948 7000DD48 01614026 */ xor $t0, $t3, $at +/* 00E94C 7000DD4C 3108FF00 */ andi $t0, $t0, 0xff00 +/* 00E950 7000DD50 00481025 */ or $v0, $v0, $t0 +/* 00E954 7000DD54 3C0AA430 */ lui $t2, %hi(MI_INTR_MASK_REG) # $t2, 0xa430 +/* 00E958 7000DD58 8D4A000C */ lw $t2, %lo(MI_INTR_MASK_REG)($t2) +/* 00E95C 7000DD5C 11400005 */ beqz $t2, .L7000DD74 +/* 00E960 7000DD60 000B4C02 */ srl $t1, $t3, 0x10 +/* 00E964 7000DD64 2401FFFF */ li $at, -1 +/* 00E968 7000DD68 01214826 */ xor $t1, $t1, $at +/* 00E96C 7000DD6C 3129003F */ andi $t1, $t1, 0x3f +/* 00E970 7000DD70 01495025 */ or $t2, $t2, $t1 +.L7000DD74: +/* 00E974 7000DD74 000A5400 */ sll $t2, $t2, 0x10 +/* 00E978 7000DD78 004A1025 */ or $v0, $v0, $t2 +/* 00E97C 7000DD7C 3C01003F */ lui $at, 0x3f +/* 00E980 7000DD80 00814024 */ and $t0, $a0, $at +/* 00E984 7000DD84 010B4024 */ and $t0, $t0, $t3 +/* 00E988 7000DD88 000843C2 */ srl $t0, $t0, 0xf +/* 00E98C 7000DD8C 3C0A8003 */ lui $t2, %hi(__osRcpImTable) +/* 00E990 7000DD90 01485021 */ addu $t2, $t2, $t0 +/* 00E994 7000DD94 954A93A0 */ lhu $t2, %lo(__osRcpImTable)($t2) +/* 00E998 7000DD98 3C01A430 */ lui $at, %hi(MI_INTR_MASK_REG) # $at, 0xa430 +/* 00E99C 7000DD9C AC2A000C */ sw $t2, %lo(MI_INTR_MASK_REG)($at) +/* 00E9A0 7000DDA0 3088FF01 */ andi $t0, $a0, 0xff01 +/* 00E9A4 7000DDA4 3169FF00 */ andi $t1, $t3, 0xff00 +/* 00E9A8 7000DDA8 01094024 */ and $t0, $t0, $t1 +/* 00E9AC 7000DDAC 3C01FFFF */ lui $at, (0xFFFF00FF >> 16) # lui $at, 0xffff +/* 00E9B0 7000DDB0 342100FF */ ori $at, (0xFFFF00FF & 0xFFFF) # ori $at, $at, 0xff +/* 00E9B4 7000DDB4 01816024 */ and $t4, $t4, $at +/* 00E9B8 7000DDB8 01886025 */ or $t4, $t4, $t0 +/* 00E9BC 7000DDBC 408C6000 */ mtc0 $t4, $12 +/* 00E9C0 7000DDC0 00000000 */ nop +/* 00E9C4 7000DDC4 00000000 */ nop +/* 00E9C8 7000DDC8 03E00008 */ jr $ra +/* 00E9CC 7000DDCC 00000000 */ nop + +.section .rodata +glabel __osRcpImTable + .half 0x555, 0x556, 0x559, 0x55a, 0x565, 0x566, 0x569, 0x56a + .half 0x595, 0x596, 0x599, 0x59a, 0x5a5, 0x5a6, 0x5a9, 0x5aa + .half 0x655, 0x656, 0x659, 0x65a, 0x665, 0x666, 0x669, 0x66a + .half 0x695, 0x696, 0x699, 0x69a, 0x6a5, 0x6a6, 0x6a9, 0x6aa + .half 0x955, 0x956, 0x959, 0x95a, 0x965, 0x966, 0x969, 0x96a + .half 0x995, 0x996, 0x999, 0x99a, 0x9a5, 0x9a6, 0x9a9, 0x9aa + .half 0xa55, 0xa56, 0xa59, 0xa5a, 0xa65, 0xa66, 0xa69, 0xa6a + .half 0xa95, 0xa96, 0xa99, 0xa9a, 0xaa5, 0xaa6, 0xaa9, 0xaaa diff --git a/src/libultra/setsr.s b/src/libultra/setsr.s new file mode 100644 index 0000000..78d6b38 --- /dev/null +++ b/src/libultra/setsr.s @@ -0,0 +1,18 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSetSR +/* 018720 70017B20 40846000 */ mtc0 $a0, $12 +/* 018724 70017B24 00000000 */ nop +/* 018728 70017B28 03E00008 */ jr $ra +/* 01872C 70017B2C 00000000 */ nop diff --git a/src/libultra/setthreadpri.s b/src/libultra/setthreadpri.s new file mode 100644 index 0000000..e015c47 --- /dev/null +++ b/src/libultra/setthreadpri.s @@ -0,0 +1,70 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osSetThreadPri +/* 00E400 7000D800 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00E404 7000D804 AFBF001C */ sw $ra, 0x1c($sp) +/* 00E408 7000D808 AFA40028 */ sw $a0, 0x28($sp) +/* 00E40C 7000D80C AFA5002C */ sw $a1, 0x2c($sp) +/* 00E410 7000D810 0C00617C */ jal __osDisableInt +/* 00E414 7000D814 AFB00018 */ sw $s0, 0x18($sp) +/* 00E418 7000D818 8FAE0028 */ lw $t6, 0x28($sp) +/* 00E41C 7000D81C 00408025 */ move $s0, $v0 +/* 00E420 7000D820 15C00004 */ bnez $t6, .L7000D834 +/* 00E424 7000D824 00000000 */ nop +/* 00E428 7000D828 3C0F8002 */ lui $t7, %hi(__osRunningThread) +/* 00E42C 7000D82C 8DEF7730 */ lw $t7, %lo(__osRunningThread)($t7) +/* 00E430 7000D830 AFAF0028 */ sw $t7, 0x28($sp) +.L7000D834: +/* 00E434 7000D834 8FB80028 */ lw $t8, 0x28($sp) +/* 00E438 7000D838 8FA8002C */ lw $t0, 0x2c($sp) +/* 00E43C 7000D83C 8F190004 */ lw $t9, 4($t8) +/* 00E440 7000D840 13280020 */ beq $t9, $t0, .L7000D8C4 +/* 00E444 7000D844 00000000 */ nop +/* 00E448 7000D848 AF080004 */ sw $t0, 4($t8) +/* 00E44C 7000D84C 3C0A8002 */ lui $t2, %hi(__osRunningThread) +/* 00E450 7000D850 8D4A7730 */ lw $t2, %lo(__osRunningThread)($t2) +/* 00E454 7000D854 8FA90028 */ lw $t1, 0x28($sp) +/* 00E458 7000D858 112A000C */ beq $t1, $t2, .L7000D88C +/* 00E45C 7000D85C 00000000 */ nop +/* 00E460 7000D860 952B0010 */ lhu $t3, 0x10($t1) +/* 00E464 7000D864 24010001 */ li $at, 1 +/* 00E468 7000D868 11610008 */ beq $t3, $at, .L7000D88C +/* 00E46C 7000D86C 00000000 */ nop +/* 00E470 7000D870 8D240008 */ lw $a0, 8($t1) +/* 00E474 7000D874 0C0042A4 */ jal __osDequeueThread +/* 00E478 7000D878 01202825 */ move $a1, $t1 +/* 00E47C 7000D87C 8FAC0028 */ lw $t4, 0x28($sp) +/* 00E480 7000D880 8D840008 */ lw $a0, 8($t4) +/* 00E484 7000D884 0C00422B */ jal __osEnqueueThread +/* 00E488 7000D888 01802825 */ move $a1, $t4 +.L7000D88C: +/* 00E48C 7000D88C 3C0D8002 */ lui $t5, %hi(__osRunningThread) +/* 00E490 7000D890 3C0F8002 */ lui $t7, %hi(__osRunQueue) +/* 00E494 7000D894 8DEF7728 */ lw $t7, %lo(__osRunQueue)($t7) +/* 00E498 7000D898 8DAD7730 */ lw $t5, %lo(__osRunningThread)($t5) +/* 00E49C 7000D89C 8DF90004 */ lw $t9, 4($t7) +/* 00E4A0 7000D8A0 8DAE0004 */ lw $t6, 4($t5) +/* 00E4A4 7000D8A4 01D9082A */ slt $at, $t6, $t9 +/* 00E4A8 7000D8A8 10200006 */ beqz $at, .L7000D8C4 +/* 00E4AC 7000D8AC 00000000 */ nop +/* 00E4B0 7000D8B0 24080002 */ li $t0, 2 +/* 00E4B4 7000D8B4 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 00E4B8 7000D8B8 A5A80010 */ sh $t0, 0x10($t5) +/* 00E4BC 7000D8BC 0C0041EB */ jal __osEnqueueAndYield +/* 00E4C0 7000D8C0 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +.L7000D8C4: +/* 00E4C4 7000D8C4 0C006184 */ jal __osRestoreInt +/* 00E4C8 7000D8C8 02002025 */ move $a0, $s0 +/* 00E4CC 7000D8CC 8FBF001C */ lw $ra, 0x1c($sp) +/* 00E4D0 7000D8D0 8FB00018 */ lw $s0, 0x18($sp) +/* 00E4D4 7000D8D4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00E4D8 7000D8D8 03E00008 */ jr $ra +/* 00E4DC 7000D8DC 00000000 */ nop diff --git a/src/libultra/settimer.s b/src/libultra/settimer.s new file mode 100644 index 0000000..5b04978 --- /dev/null +++ b/src/libultra/settimer.s @@ -0,0 +1,67 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osSetTimer +/* 011850 70010C50 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 011854 70010C54 AFA40020 */ sw $a0, 0x20($sp) +/* 011858 70010C58 8FAE0020 */ lw $t6, 0x20($sp) +/* 01185C 70010C5C AFBF0014 */ sw $ra, 0x14($sp) +/* 011860 70010C60 AFA60028 */ sw $a2, 0x28($sp) +/* 011864 70010C64 AFA7002C */ sw $a3, 0x2c($sp) +/* 011868 70010C68 ADC00000 */ sw $zero, ($t6) +/* 01186C 70010C6C 8FAF0020 */ lw $t7, 0x20($sp) +/* 011870 70010C70 ADE00004 */ sw $zero, 4($t7) +/* 011874 70010C74 8FA80020 */ lw $t0, 0x20($sp) +/* 011878 70010C78 8FB90034 */ lw $t9, 0x34($sp) +/* 01187C 70010C7C 8FB80030 */ lw $t8, 0x30($sp) +/* 011880 70010C80 AD19000C */ sw $t9, 0xc($t0) +/* 011884 70010C84 AD180008 */ sw $t8, 8($t0) +/* 011888 70010C88 8FAA0028 */ lw $t2, 0x28($sp) +/* 01188C 70010C8C 8FAB002C */ lw $t3, 0x2c($sp) +/* 011890 70010C90 15400003 */ bnez $t2, .L70010CA0 +/* 011894 70010C94 00000000 */ nop +/* 011898 70010C98 11600005 */ beqz $t3, .L70010CB0 +/* 01189C 70010C9C 00000000 */ nop +.L70010CA0: +/* 0118A0 70010CA0 8FA90020 */ lw $t1, 0x20($sp) +/* 0118A4 70010CA4 AD2A0010 */ sw $t2, 0x10($t1) +/* 0118A8 70010CA8 10000006 */ b .L70010CC4 +/* 0118AC 70010CAC AD2B0014 */ sw $t3, 0x14($t1) +.L70010CB0: +/* 0118B0 70010CB0 8FAE0020 */ lw $t6, 0x20($sp) +/* 0118B4 70010CB4 8FAC0030 */ lw $t4, 0x30($sp) +/* 0118B8 70010CB8 8FAD0034 */ lw $t5, 0x34($sp) +/* 0118BC 70010CBC ADCC0010 */ sw $t4, 0x10($t6) +/* 0118C0 70010CC0 ADCD0014 */ sw $t5, 0x14($t6) +.L70010CC4: +/* 0118C4 70010CC4 8FAF0038 */ lw $t7, 0x38($sp) +/* 0118C8 70010CC8 8FB80020 */ lw $t8, 0x20($sp) +/* 0118CC 70010CCC AF0F0018 */ sw $t7, 0x18($t8) +/* 0118D0 70010CD0 8FA80020 */ lw $t0, 0x20($sp) +/* 0118D4 70010CD4 8FB9003C */ lw $t9, 0x3c($sp) +/* 0118D8 70010CD8 AD19001C */ sw $t9, 0x1c($t0) +/* 0118DC 70010CDC 0C00622A */ jal __osInsertTimer +/* 0118E0 70010CE0 8FA40020 */ lw $a0, 0x20($sp) +/* 0118E4 70010CE4 3C0A8002 */ lui $t2, %hi(__osTimerList) +/* 0118E8 70010CE8 8D4A7FD0 */ lw $t2, %lo(__osTimerList)($t2) +/* 0118EC 70010CEC AFA20018 */ sw $v0, 0x18($sp) +/* 0118F0 70010CF0 AFA3001C */ sw $v1, 0x1c($sp) +/* 0118F4 70010CF4 8FA90020 */ lw $t1, 0x20($sp) +/* 0118F8 70010CF8 8D4B0000 */ lw $t3, ($t2) +/* 0118FC 70010CFC 15690004 */ bne $t3, $t1, .L70010D10 +/* 011900 70010D00 00000000 */ nop +/* 011904 70010D04 8FA40018 */ lw $a0, 0x18($sp) +/* 011908 70010D08 0C00620D */ jal __osSetTimerIntr +/* 01190C 70010D0C 8FA5001C */ lw $a1, 0x1c($sp) +.L70010D10: +/* 011910 70010D10 8FBF0014 */ lw $ra, 0x14($sp) +/* 011914 70010D14 27BD0020 */ addiu $sp, $sp, 0x20 +/* 011918 70010D18 00001025 */ move $v0, $zero +/* 01191C 70010D1C 03E00008 */ jr $ra +/* 011920 70010D20 00000000 */ nop diff --git a/src/libultra/si.s b/src/libultra/si.s new file mode 100644 index 0000000..c0ad602 --- /dev/null +++ b/src/libultra/si.s @@ -0,0 +1,28 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSiDeviceBusy +/* 020320 7001F720 3C0EA480 */ lui $t6, %hi(SI_STATUS_REG) # $t6, 0xa480 +/* 020324 7001F724 8DC40018 */ lw $a0, %lo(SI_STATUS_REG)($t6) +/* 020328 7001F728 27BDFFF8 */ addiu $sp, $sp, -8 +/* 02032C 7001F72C 308F0003 */ andi $t7, $a0, 3 +/* 020330 7001F730 11E00003 */ beqz $t7, .L7001F740 +/* 020334 7001F734 00000000 */ nop +/* 020338 7001F738 10000002 */ b .L7001F744 +/* 02033C 7001F73C 24020001 */ li $v0, 1 +.L7001F740: +/* 020340 7001F740 00001025 */ move $v0, $zero +.L7001F744: +/* 020344 7001F744 03E00008 */ jr $ra +/* 020348 7001F748 27BD0008 */ addiu $sp, $sp, 8 + diff --git a/src/libultra/siacs.s b/src/libultra/siacs.s new file mode 100644 index 0000000..03e5128 --- /dev/null +++ b/src/libultra/siacs.s @@ -0,0 +1,85 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSiCreateAccessQueue +/* 016A10 70015E10 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 016A14 70015E14 AFBF0014 */ sw $ra, 0x14($sp) +/* 016A18 70015E18 240E0001 */ li $t6, 1 +/* 016A1C 70015E1C 3C018002 */ lui $at, %hi(__osSiAccessQueueEnabled) +/* 016A20 70015E20 3C048006 */ lui $a0, %hi(__osSiAccessQueue) +/* 016A24 70015E24 3C058006 */ lui $a1, %hi(__osSiAccessBuf) +/* 016A28 70015E28 AC2E77C0 */ sw $t6, %lo(__osSiAccessQueueEnabled)($at) +/* 016A2C 70015E2C 24A57DB0 */ addiu $a1, %lo(__osSiAccessBuf) # addiu $a1, $a1, 0x7db0 +/* 016A30 70015E30 24847DB8 */ addiu $a0, %lo(__osSiAccessQueue) # addiu $a0, $a0, 0x7db8 +/* 016A34 70015E34 0C0035B4 */ jal osCreateMesgQueue +/* 016A38 70015E38 24060001 */ li $a2, 1 +/* 016A3C 70015E3C 3C048006 */ lui $a0, %hi(__osSiAccessQueue) +/* 016A40 70015E40 24847DB8 */ addiu $a0, %lo(__osSiAccessQueue) # addiu $a0, $a0, 0x7db8 +/* 016A44 70015E44 00002825 */ move $a1, $zero +/* 016A48 70015E48 0C0037C4 */ jal osSendMesg +/* 016A4C 70015E4C 00003025 */ move $a2, $zero +/* 016A50 70015E50 8FBF0014 */ lw $ra, 0x14($sp) +/* 016A54 70015E54 27BD0018 */ addiu $sp, $sp, 0x18 +/* 016A58 70015E58 03E00008 */ jr $ra +/* 016A5C 70015E5C 00000000 */ nop + +glabel __osSiGetAccess +/* 016A60 70015E60 3C0E8002 */ lui $t6, %hi(__osSiAccessQueueEnabled) +/* 016A64 70015E64 8DCE77C0 */ lw $t6, %lo(__osSiAccessQueueEnabled)($t6) +/* 016A68 70015E68 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 016A6C 70015E6C AFBF0014 */ sw $ra, 0x14($sp) +/* 016A70 70015E70 15C00003 */ bnez $t6, .L70015E80 +/* 016A74 70015E74 00000000 */ nop +/* 016A78 70015E78 0C005784 */ jal __osSiCreateAccessQueue +/* 016A7C 70015E7C 00000000 */ nop +.L70015E80: +/* 016A80 70015E80 3C048006 */ lui $a0, %hi(__osSiAccessQueue) +/* 016A84 70015E84 24847DB8 */ addiu $a0, %lo(__osSiAccessQueue) # addiu $a0, $a0, 0x7db8 +/* 016A88 70015E88 27A5001C */ addiu $a1, $sp, 0x1c +/* 016A8C 70015E8C 0C003774 */ jal osRecvMesg +/* 016A90 70015E90 24060001 */ li $a2, 1 +/* 016A94 70015E94 8FBF0014 */ lw $ra, 0x14($sp) +/* 016A98 70015E98 27BD0020 */ addiu $sp, $sp, 0x20 +/* 016A9C 70015E9C 03E00008 */ jr $ra +/* 016AA0 70015EA0 00000000 */ nop + +glabel __osSiRelAccess +/* 016AA4 70015EA4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 016AA8 70015EA8 AFBF0014 */ sw $ra, 0x14($sp) +/* 016AAC 70015EAC 3C048006 */ lui $a0, %hi(__osSiAccessQueue) +/* 016AB0 70015EB0 24847DB8 */ addiu $a0, %lo(__osSiAccessQueue) # addiu $a0, $a0, 0x7db8 +/* 016AB4 70015EB4 00002825 */ move $a1, $zero +/* 016AB8 70015EB8 0C0037C4 */ jal osSendMesg +/* 016ABC 70015EBC 00003025 */ move $a2, $zero +/* 016AC0 70015EC0 8FBF0014 */ lw $ra, 0x14($sp) +/* 016AC4 70015EC4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 016AC8 70015EC8 03E00008 */ jr $ra +/* 016ACC 70015ECC 00000000 */ nop + +.section .data +__osSiAccessQueueEnabled: +glabel __osSiAccessQueueEnabled +.word 0 + +.align 4 +.section .bss +glabel __osSiAccessBuf +.word 0, 0 +glabel __osSiAccessQueue +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 +.byte 0, 0, 0, 0 + diff --git a/src/libultra/sins.s b/src/libultra/sins.s new file mode 100644 index 0000000..6e50e2d --- /dev/null +++ b/src/libultra/sins.s @@ -0,0 +1,305 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel sins +/* 017860 70016C60 308EFFFF */ andi $t6, $a0, 0xffff +/* 017864 70016C64 000E7902 */ srl $t7, $t6, 4 +/* 017868 70016C68 31F8FFFF */ andi $t8, $t7, 0xffff +/* 01786C 70016C6C 33190400 */ andi $t9, $t8, 0x400 +/* 017870 70016C70 AFA40000 */ sw $a0, ($sp) +/* 017874 70016C74 13200008 */ beqz $t9, .L70016C98 +/* 017878 70016C78 03001025 */ move $v0, $t8 +/* 01787C 70016C7C 330803FF */ andi $t0, $t8, 0x3ff +/* 017880 70016C80 00084840 */ sll $t1, $t0, 1 +/* 017884 70016C84 00095023 */ negu $t2, $t1 +/* 017888 70016C88 3C038002 */ lui $v1, %hi(sin_table + 0x7FE) # 0x8002 +/* 01788C 70016C8C 006A1821 */ addu $v1, $v1, $t2 +/* 017890 70016C90 10000006 */ b .L70016CAC +/* 017894 70016C94 84637FCE */ lh $v1, %lo(sin_table + 0x7FE)($v1) # 0x7fce($v1) +.L70016C98: +/* 017898 70016C98 304B03FF */ andi $t3, $v0, 0x3ff +/* 01789C 70016C9C 000B6040 */ sll $t4, $t3, 1 +/* 0178A0 70016CA0 3C038002 */ lui $v1, %hi(sin_table) # 0x8002 +/* 0178A4 70016CA4 006C1821 */ addu $v1, $v1, $t4 +/* 0178A8 70016CA8 846377D0 */ lh $v1, %lo(sin_table)($v1) # 0x77d0($v1) +.L70016CAC: +/* 0178AC 70016CAC 304D0800 */ andi $t5, $v0, 0x800 +/* 0178B0 70016CB0 11A00005 */ beqz $t5, .L70016CC8 +/* 0178B4 70016CB4 00601025 */ move $v0, $v1 +/* 0178B8 70016CB8 00031023 */ negu $v0, $v1 +/* 0178BC 70016CBC 00027400 */ sll $t6, $v0, 0x10 +/* 0178C0 70016CC0 03E00008 */ jr $ra +/* 0178C4 70016CC4 000E1403 */ sra $v0, $t6, 0x10 + +.L70016CC8: +/* 0178C8 70016CC8 03E00008 */ jr $ra +/* 0178CC 70016CCC 00000000 */ nop + + .section .data +glabel sin_table +.half 0, 0x32, 0x64, 0x96 +.half 0xC9, 0xFB, 0x12D, 0x160 +.half 0x192, 0x1C4, 0x1F7, 0x229 +.half 0x25B, 0x28E, 0x2C0, 0x2F2 +.half 0x324, 0x357, 0x389, 0x3BB +.half 0x3EE, 0x420, 0x452, 0x484 +.half 0x4B7, 0x4E9, 0x51B, 0x54E +.half 0x580, 0x5B2, 0x5E4, 0x617 +.half 0x649, 0x67B, 0x6AD, 0x6E0 +.half 0x712, 0x744, 0x776, 0x7A9 +.half 0x7DB, 0x80D, 0x83F, 0x871 +.half 0x8A4, 0x8D6, 0x908, 0x93A +.half 0x96C, 0x99F, 0x9D1, 0xA03 +.half 0xA35, 0xA67, 0xA99, 0xACB +.half 0xAFE, 0xB30, 0xB62, 0xB94 +.half 0xBC6, 0xBF8, 0xC2A, 0xC5C +.half 0xC8E, 0xCC0, 0xCF2, 0xD25 +.half 0xD57, 0xD89, 0xDBB, 0xDED +.half 0xE1F, 0xE51, 0xE83, 0xEB5 +.half 0xEE7, 0xF19, 0xF4B, 0xF7C +.half 0xFAE, 0xFE0,0x1012,0x1044 +.half 0x1076,0x10A8,0x10DA,0x110C +.half 0x113E,0x116F,0x11A1,0x11D3 +.half 0x1205,0x1237,0x1269,0x129A +.half 0x12CC,0x12FE,0x1330,0x1361 +.half 0x1393,0x13C5,0x13F6,0x1428 +.half 0x145A,0x148C,0x14BD,0x14EF +.half 0x1520,0x1552,0x1584,0x15B5 +.half 0x15E7,0x1618,0x164A,0x167B +.half 0x16AD,0x16DF,0x1710,0x1741 +.half 0x1773,0x17A4,0x17D6,0x1807 +.half 0x1839,0x186A,0x189B,0x18CD +.half 0x18FE,0x1930,0x1961,0x1992 +.half 0x19C3,0x19F5,0x1A26,0x1A57 +.half 0x1A88,0x1ABA,0x1AEB,0x1B1C +.half 0x1B4D,0x1B7E,0x1BAF,0x1BE1 +.half 0x1C12,0x1C43,0x1C74,0x1CA5 +.half 0x1CD6,0x1D07,0x1D38,0x1D69 +.half 0x1D9A,0x1DCB,0x1DFC,0x1E2D +.half 0x1E5D,0x1E8E,0x1EBF,0x1EF0 +.half 0x1F21,0x1F52,0x1F82,0x1FB3 +.half 0x1FE4,0x2015,0x2045,0x2076 +.half 0x20A7,0x20D7,0x2108,0x2139 +.half 0x2169,0x219A,0x21CA,0x21FB +.half 0x222B,0x225C,0x228C,0x22BD +.half 0x22ED,0x231D,0x234E,0x237E +.half 0x23AE,0x23DF,0x240F,0x243F +.half 0x2470,0x24A0,0x24D0,0x2500 +.half 0x2530,0x2560,0x2591,0x25C1 +.half 0x25F1,0x2621,0x2651,0x2681 +.half 0x26B1,0x26E1,0x2711,0x2740 +.half 0x2770,0x27A0,0x27D0,0x2800 +.half 0x2830,0x285F,0x288F,0x28BF +.half 0x28EE,0x291E,0x294E,0x297D +.half 0x29AD,0x29DD,0x2A0C,0x2A3C +.half 0x2A6B,0x2A9B,0x2ACA,0x2AF9 +.half 0x2B29,0x2B58,0x2B87,0x2BB7 +.half 0x2BE6,0x2C15,0x2C44,0x2C74 +.half 0x2CA3,0x2CD2,0x2D01,0x2D30 +.half 0x2D5F,0x2D8E,0x2DBD,0x2DEC +.half 0x2E1B,0x2E4A,0x2E79,0x2EA8 +.half 0x2ED7,0x2F06,0x2F34,0x2F63 +.half 0x2F92,0x2FC0,0x2FEF,0x301E +.half 0x304C,0x307B,0x30A9,0x30D8 +.half 0x3107,0x3135,0x3163,0x3192 +.half 0x31C0,0x31EF,0x321D,0x324B +.half 0x3279,0x32A8,0x32D6,0x3304 +.half 0x3332,0x3360,0x338E,0x33BC +.half 0x33EA,0x3418,0x3446,0x3474 +.half 0x34A2,0x34D0,0x34FE,0x352B +.half 0x3559,0x3587,0x35B5,0x35E2 +.half 0x3610,0x363D,0x366B,0x3698 +.half 0x36C6,0x36F3,0x3721,0x374E +.half 0x377C,0x37A9,0x37D6,0x3803 +.half 0x3831,0x385E,0x388B,0x38B8 +.half 0x38E5,0x3912,0x393F,0x396C +.half 0x3999,0x39C6,0x39F3,0x3A20 +.half 0x3A4D,0x3A79,0x3AA6,0x3AD3 +.half 0x3B00,0x3B2C,0x3B59,0x3B85 +.half 0x3BB2,0x3BDE,0x3C0B,0x3C37 +.half 0x3C64,0x3C90,0x3CBC,0x3CE9 +.half 0x3D15,0x3D41,0x3D6D,0x3D99 +.half 0x3DC5,0x3DF1,0x3E1D,0x3E49 +.half 0x3E75,0x3EA1,0x3ECD,0x3EF9 +.half 0x3F25,0x3F50,0x3F7C,0x3FA8 +.half 0x3FD3,0x3FFF,0x402B,0x4056 +.half 0x4082,0x40AD,0x40D8,0x4104 +.half 0x412F,0x415A,0x4186,0x41B1 +.half 0x41DC,0x4207,0x4232,0x425D +.half 0x4288,0x42B3,0x42DE,0x4309 +.half 0x4334,0x435F,0x4389,0x43B4 +.half 0x43DF,0x4409,0x4434,0x445F +.half 0x4489,0x44B4,0x44DE,0x4508 +.half 0x4533,0x455D,0x4587,0x45B1 +.half 0x45DC,0x4606,0x4630,0x465A +.half 0x4684,0x46AE,0x46D8,0x4702 +.half 0x472C,0x4755,0x477F,0x47A9 +.half 0x47D2,0x47FC,0x4826,0x484F +.half 0x4879,0x48A2,0x48CC,0x48F5 +.half 0x491E,0x4948,0x4971,0x499A +.half 0x49C3,0x49EC,0x4A15,0x4A3E +.half 0x4A67,0x4A90,0x4AB9,0x4AE2 +.half 0x4B0B,0x4B33,0x4B5C,0x4B85 +.half 0x4BAD,0x4BD6,0x4BFE,0x4C27 +.half 0x4C4F,0x4C78,0x4CA0,0x4CC8 +.half 0x4CF0,0x4D19,0x4D41,0x4D69 +.half 0x4D91,0x4DB9,0x4DE1,0x4E09 +.half 0x4E31,0x4E58,0x4E80,0x4EA8 +.half 0x4ED0,0x4EF7,0x4F1F,0x4F46 +.half 0x4F6E,0x4F95,0x4FBD,0x4FE4 +.half 0x500B,0x5032,0x505A,0x5081 +.half 0x50A8,0x50CF,0x50F6,0x511D +.half 0x5144,0x516B,0x5191,0x51B8 +.half 0x51DF,0x5205,0x522C,0x5253 +.half 0x5279,0x52A0,0x52C6,0x52EC +.half 0x5313,0x5339,0x535F,0x5385 +.half 0x53AB,0x53D1,0x53F7,0x541D +.half 0x5443,0x5469,0x548F,0x54B5 +.half 0x54DA,0x5500,0x5525,0x554B +.half 0x5571,0x5596,0x55BB,0x55E1 +.half 0x5606,0x562B,0x5650,0x5675 +.half 0x569B,0x56C0,0x56E5,0x5709 +.half 0x572E,0x5753,0x5778,0x579D +.half 0x57C1,0x57E6,0x580A,0x582F +.half 0x5853,0x5878,0x589C,0x58C0 +.half 0x58E5,0x5909,0x592D,0x5951 +.half 0x5975,0x5999,0x59BD,0x59E1 +.half 0x5A04,0x5A28,0x5A4C,0x5A6F +.half 0x5A93,0x5AB7,0x5ADA,0x5AFD +.half 0x5B21,0x5B44,0x5B67,0x5B8B +.half 0x5BAE,0x5BD1,0x5BF4,0x5C17 +.half 0x5C3A,0x5C5D,0x5C7F,0x5CA2 +.half 0x5CC5,0x5CE7,0x5D0A,0x5D2D +.half 0x5D4F,0x5D71,0x5D94,0x5DB6 +.half 0x5DD8,0x5DFA,0x5E1D,0x5E3F +.half 0x5E61,0x5E83,0x5EA5,0x5EC6 +.half 0x5EE8,0x5F0A,0x5F2C,0x5F4D +.half 0x5F6F,0x5F90,0x5FB2,0x5FD3 +.half 0x5FF4,0x6016,0x6037,0x6058 +.half 0x6079,0x609A,0x60BB,0x60DC +.half 0x60FD,0x611E,0x613E,0x615F +.half 0x6180,0x61A0,0x61C1,0x61E1 +.half 0x6202,0x6222,0x6242,0x6263 +.half 0x6283,0x62A3,0x62C3,0x62E3 +.half 0x6303,0x6323,0x6342,0x6362 +.half 0x6382,0x63A1,0x63C1,0x63E0 +.half 0x6400,0x641F,0x643F,0x645E +.half 0x647D,0x649C,0x64BB,0x64DA +.half 0x64F9,0x6518,0x6537,0x6556 +.half 0x6574,0x6593,0x65B2,0x65D0 +.half 0x65EF,0x660D,0x662B,0x664A +.half 0x6668,0x6686,0x66A4,0x66C2 +.half 0x66E0,0x66FE,0x671C,0x673A +.half 0x6757,0x6775,0x6792,0x67B0 +.half 0x67CD,0x67EB,0x6808,0x6825 +.half 0x6843,0x6860,0x687D,0x689A +.half 0x68B7,0x68D4,0x68F1,0x690D +.half 0x692A,0x6947,0x6963,0x6980 +.half 0x699C,0x69B9,0x69D5,0x69F1 +.half 0x6A0E,0x6A2A,0x6A46,0x6A62 +.half 0x6A7E,0x6A9A,0x6AB5,0x6AD1 +.half 0x6AED,0x6B08,0x6B24,0x6B40 +.half 0x6B5B,0x6B76,0x6B92,0x6BAD +.half 0x6BC8,0x6BE3,0x6BFE,0x6C19 +.half 0x6C34,0x6C4F,0x6C6A,0x6C84 +.half 0x6C9F,0x6CBA,0x6CD4,0x6CEF +.half 0x6D09,0x6D23,0x6D3E,0x6D58 +.half 0x6D72,0x6D8C,0x6DA6,0x6DC0 +.half 0x6DDA,0x6DF3,0x6E0D,0x6E27 +.half 0x6E40,0x6E5A,0x6E73,0x6E8D +.half 0x6EA6,0x6EBF,0x6ED9,0x6EF2 +.half 0x6F0B,0x6F24,0x6F3D,0x6F55 +.half 0x6F6E,0x6F87,0x6FA0,0x6FB8 +.half 0x6FD1,0x6FE9,0x7002,0x701A +.half 0x7032,0x704A,0x7062,0x707A +.half 0x7092,0x70AA,0x70C2,0x70DA +.half 0x70F2,0x7109,0x7121,0x7138 +.half 0x7150,0x7167,0x717E,0x7196 +.half 0x71AD,0x71C4,0x71DB,0x71F2 +.half 0x7209,0x7220,0x7236,0x724D +.half 0x7264,0x727A,0x7291,0x72A7 +.half 0x72BD,0x72D4,0x72EA,0x7300 +.half 0x7316,0x732C,0x7342,0x7358 +.half 0x736E,0x7383,0x7399,0x73AE +.half 0x73C4,0x73D9,0x73EF,0x7404 +.half 0x7419,0x742E,0x7443,0x7458 +.half 0x746D,0x7482,0x7497,0x74AC +.half 0x74C0,0x74D5,0x74EA,0x74FE +.half 0x7512,0x7527,0x753B,0x754F +.half 0x7563,0x7577,0x758B,0x759F +.half 0x75B3,0x75C7,0x75DA,0x75EE +.half 0x7601,0x7615,0x7628,0x763B +.half 0x764F,0x7662,0x7675,0x7688 +.half 0x769B,0x76AE,0x76C1,0x76D3 +.half 0x76E6,0x76F9,0x770B,0x771E +.half 0x7730,0x7742,0x7754,0x7767 +.half 0x7779,0x778B,0x779D,0x77AF +.half 0x77C0,0x77D2,0x77E4,0x77F5 +.half 0x7807,0x7818,0x782A,0x783B +.half 0x784C,0x785D,0x786E,0x787F +.half 0x7890,0x78A1,0x78B2,0x78C3 +.half 0x78D3,0x78E4,0x78F4,0x7905 +.half 0x7915,0x7925,0x7936,0x7946 +.half 0x7956,0x7966,0x7976,0x7985 +.half 0x7995,0x79A5,0x79B5,0x79C4 +.half 0x79D4,0x79E3,0x79F2,0x7A02 +.half 0x7A11,0x7A20,0x7A2F,0x7A3E +.half 0x7A4D,0x7A5B,0x7A6A,0x7A79 +.half 0x7A87,0x7A96,0x7AA4,0x7AB3 +.half 0x7AC1,0x7ACF,0x7ADD,0x7AEB +.half 0x7AF9,0x7B07,0x7B15,0x7B23 +.half 0x7B31,0x7B3E,0x7B4C,0x7B59 +.half 0x7B67,0x7B74,0x7B81,0x7B8E +.half 0x7B9B,0x7BA8,0x7BB5,0x7BC2 +.half 0x7BCF,0x7BDC,0x7BE8,0x7BF5 +.half 0x7C02,0x7C0E,0x7C1A,0x7C27 +.half 0x7C33,0x7C3F,0x7C4B,0x7C57 +.half 0x7C63,0x7C6F,0x7C7A,0x7C86 +.half 0x7C92,0x7C9D,0x7CA9,0x7CB4 +.half 0x7CBF,0x7CCB,0x7CD6,0x7CE1 +.half 0x7CEC,0x7CF7,0x7D02,0x7D0C +.half 0x7D17,0x7D22,0x7D2C,0x7D37 +.half 0x7D41,0x7D4B,0x7D56,0x7D60 +.half 0x7D6A,0x7D74,0x7D7E,0x7D88 +.half 0x7D91,0x7D9B,0x7DA5,0x7DAE +.half 0x7DB8,0x7DC1,0x7DCB,0x7DD4 +.half 0x7DDD,0x7DE6,0x7DEF,0x7DF8 +.half 0x7E01,0x7E0A,0x7E13,0x7E1B +.half 0x7E24,0x7E2C,0x7E35,0x7E3D +.half 0x7E45,0x7E4D,0x7E56,0x7E5E +.half 0x7E66,0x7E6D,0x7E75,0x7E7D +.half 0x7E85,0x7E8C,0x7E94,0x7E9B +.half 0x7EA3,0x7EAA,0x7EB1,0x7EB8 +.half 0x7EBF,0x7EC6,0x7ECD,0x7ED4 +.half 0x7EDB,0x7EE1,0x7EE8,0x7EEE +.half 0x7EF5,0x7EFB,0x7F01,0x7F08 +.half 0x7F0E,0x7F14,0x7F1A,0x7F20 +.half 0x7F25,0x7F2B,0x7F31,0x7F36 +.half 0x7F3C,0x7F41,0x7F47,0x7F4C +.half 0x7F51,0x7F56,0x7F5B,0x7F60 +.half 0x7F65,0x7F6A,0x7F6F,0x7F74 +.half 0x7F78,0x7F7D,0x7F81,0x7F85 +.half 0x7F8A,0x7F8E,0x7F92,0x7F96 +.half 0x7F9A,0x7F9E,0x7FA2,0x7FA6 +.half 0x7FA9,0x7FAD,0x7FB0,0x7FB4 +.half 0x7FB7,0x7FBA,0x7FBE,0x7FC1 +.half 0x7FC4,0x7FC7,0x7FCA,0x7FCC +.half 0x7FCF,0x7FD2,0x7FD4,0x7FD7 +.half 0x7FD9,0x7FDC,0x7FDE,0x7FE0 +.half 0x7FE2,0x7FE4,0x7FE6,0x7FE8 +.half 0x7FEA,0x7FEC,0x7FED,0x7FEF +.half 0x7FF1,0x7FF2,0x7FF3,0x7FF5 +.half 0x7FF6,0x7FF7,0x7FF8,0x7FF9 +.half 0x7FFA,0x7FFB,0x7FFB,0x7FFC +.half 0x7FFD,0x7FFD,0x7FFE,0x7FFE +.half 0x7FFE,0x7FFE,0x7FFE,0x7FFF diff --git a/src/libultra/sirawdma.s b/src/libultra/sirawdma.s new file mode 100644 index 0000000..2c1df0a --- /dev/null +++ b/src/libultra/sirawdma.s @@ -0,0 +1,65 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSiRawStartDma +/* 016AD0 70015ED0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 016AD4 70015ED4 AFBF0014 */ sw $ra, 0x14($sp) +/* 016AD8 70015ED8 AFA40018 */ sw $a0, 0x18($sp) +/* 016ADC 70015EDC 0C007DC8 */ jal __osSiDeviceBusy +/* 016AE0 70015EE0 AFA5001C */ sw $a1, 0x1c($sp) +/* 016AE4 70015EE4 10400003 */ beqz $v0, .L70015EF4 +/* 016AE8 70015EE8 00000000 */ nop +/* 016AEC 70015EEC 1000001F */ b .L70015F6C +/* 016AF0 70015EF0 2402FFFF */ li $v0, -1 +.L70015EF4: +/* 016AF4 70015EF4 8FAE0018 */ lw $t6, 0x18($sp) +/* 016AF8 70015EF8 24010001 */ li $at, 1 +/* 016AFC 70015EFC 15C10004 */ bne $t6, $at, .L70015F10 +/* 016B00 70015F00 00000000 */ nop +/* 016B04 70015F04 8FA4001C */ lw $a0, 0x1c($sp) +/* 016B08 70015F08 0C0042F4 */ jal osWritebackDCache +/* 016B0C 70015F0C 24050040 */ li $a1, 64 +.L70015F10: +/* 016B10 70015F10 0C003A2C */ jal osVirtualToPhysical +/* 016B14 70015F14 8FA4001C */ lw $a0, 0x1c($sp) +/* 016B18 70015F18 3C0FA480 */ lui $t7, 0xa480 +/* 016B1C 70015F1C ADE20000 */ sw $v0, ($t7) +/* 016B20 70015F20 8FB80018 */ lw $t8, 0x18($sp) +/* 016B24 70015F24 17000006 */ bnez $t8, .L70015F40 +/* 016B28 70015F28 00000000 */ nop +/* 016B2C 70015F2C 3C191FC0 */ lui $t9, (0x1FC007C0 >> 16) # lui $t9, 0x1fc0 +/* 016B30 70015F30 373907C0 */ ori $t9, (0x1FC007C0 & 0xFFFF) # ori $t9, $t9, 0x7c0 +/* 016B34 70015F34 3C08A480 */ lui $t0, %hi(SI_PIF_ADDR_RD64B_REG) # $t0, 0xa480 +/* 016B38 70015F38 10000005 */ b .L70015F50 +/* 016B3C 70015F3C AD190004 */ sw $t9, %lo(SI_PIF_ADDR_RD64B_REG)($t0) +.L70015F40: +/* 016B40 70015F40 3C091FC0 */ lui $t1, (0x1FC007C0 >> 16) # lui $t1, 0x1fc0 +/* 016B44 70015F44 352907C0 */ ori $t1, (0x1FC007C0 & 0xFFFF) # ori $t1, $t1, 0x7c0 +/* 016B48 70015F48 3C0AA480 */ lui $t2, %hi(SI_PIF_ADDR_WR64B_REG) # $t2, 0xa480 +/* 016B4C 70015F4C AD490010 */ sw $t1, %lo(SI_PIF_ADDR_WR64B_REG)($t2) +.L70015F50: +/* 016B50 70015F50 8FAB0018 */ lw $t3, 0x18($sp) +/* 016B54 70015F54 15600004 */ bnez $t3, .L70015F68 +/* 016B58 70015F58 00000000 */ nop +/* 016B5C 70015F5C 8FA4001C */ lw $a0, 0x1c($sp) +/* 016B60 70015F60 0C0042C8 */ jal osInvalDCache +/* 016B64 70015F64 24050040 */ li $a1, 64 +.L70015F68: +/* 016B68 70015F68 00001025 */ move $v0, $zero +.L70015F6C: +/* 016B6C 70015F6C 8FBF0014 */ lw $ra, 0x14($sp) +/* 016B70 70015F70 27BD0018 */ addiu $sp, $sp, 0x18 +/* 016B74 70015F74 03E00008 */ jr $ra +/* 016B78 70015F78 00000000 */ nop + +/* 016B7C 70015F7C 00000000 */ nop diff --git a/src/libultra/sirawread.s b/src/libultra/sirawread.s new file mode 100644 index 0000000..ab7a7e2 --- /dev/null +++ b/src/libultra/sirawread.s @@ -0,0 +1,36 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSiRawReadIo +/* 018740 70017B40 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 018744 70017B44 AFBF0014 */ sw $ra, 0x14($sp) +/* 018748 70017B48 AFA40018 */ sw $a0, 0x18($sp) +/* 01874C 70017B4C 0C007DC8 */ jal __osSiDeviceBusy +/* 018750 70017B50 AFA5001C */ sw $a1, 0x1c($sp) +/* 018754 70017B54 10400003 */ beqz $v0, .L70017B64 +/* 018758 70017B58 00000000 */ nop +/* 01875C 70017B5C 10000008 */ b .L70017B80 +/* 018760 70017B60 2402FFFF */ li $v0, -1 +.L70017B64: +/* 018764 70017B64 8FAE0018 */ lw $t6, 0x18($sp) +/* 018768 70017B68 3C01A000 */ lui $at, 0xa000 +/* 01876C 70017B6C 8FB9001C */ lw $t9, 0x1c($sp) +/* 018770 70017B70 01C17825 */ or $t7, $t6, $at +/* 018774 70017B74 8DF80000 */ lw $t8, ($t7) +/* 018778 70017B78 00001025 */ move $v0, $zero +/* 01877C 70017B7C AF380000 */ sw $t8, ($t9) +.L70017B80: +/* 018780 70017B80 8FBF0014 */ lw $ra, 0x14($sp) +/* 018784 70017B84 27BD0018 */ addiu $sp, $sp, 0x18 +/* 018788 70017B88 03E00008 */ jr $ra +/* 01878C 70017B8C 00000000 */ nop diff --git a/src/libultra/sirawwrite.s b/src/libultra/sirawwrite.s new file mode 100644 index 0000000..447701b --- /dev/null +++ b/src/libultra/sirawwrite.s @@ -0,0 +1,37 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSiRawWriteIo +/* 018790 70017B90 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 018794 70017B94 AFBF0014 */ sw $ra, 0x14($sp) +/* 018798 70017B98 AFA40018 */ sw $a0, 0x18($sp) +/* 01879C 70017B9C 0C007DC8 */ jal __osSiDeviceBusy +/* 0187A0 70017BA0 AFA5001C */ sw $a1, 0x1c($sp) +/* 0187A4 70017BA4 10400003 */ beqz $v0, .L70017BB4 +/* 0187A8 70017BA8 00000000 */ nop +/* 0187AC 70017BAC 10000007 */ b .L70017BCC +/* 0187B0 70017BB0 2402FFFF */ li $v0, -1 +.L70017BB4: +/* 0187B4 70017BB4 8FAF0018 */ lw $t7, 0x18($sp) +/* 0187B8 70017BB8 8FAE001C */ lw $t6, 0x1c($sp) +/* 0187BC 70017BBC 3C01A000 */ lui $at, 0xa000 +/* 0187C0 70017BC0 01E1C025 */ or $t8, $t7, $at +/* 0187C4 70017BC4 00001025 */ move $v0, $zero +/* 0187C8 70017BC8 AF0E0000 */ sw $t6, ($t8) +.L70017BCC: +/* 0187CC 70017BCC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0187D0 70017BD0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0187D4 70017BD4 03E00008 */ jr $ra +/* 0187D8 70017BD8 00000000 */ nop + +/* 0187DC 70017BDC 00000000 */ nop diff --git a/src/libultra/sl.s b/src/libultra/sl.s new file mode 100644 index 0000000..e7fe731 --- /dev/null +++ b/src/libultra/sl.s @@ -0,0 +1,78 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel alUnlink +/* 00F690 7000EA90 8C820000 */ lw $v0, ($a0) +/* 00F694 7000EA94 50400004 */ beql $v0, $zero, .L7000EAA8 +/* 00F698 7000EA98 8C820004 */ lw $v0, 4($a0) +/* 00F69C 7000EA9C 8C8E0004 */ lw $t6, 4($a0) +/* 00F6A0 7000EAA0 AC4E0004 */ sw $t6, 4($v0) +/* 00F6A4 7000EAA4 8C820004 */ lw $v0, 4($a0) +.L7000EAA8: +/* 00F6A8 7000EAA8 10400003 */ beqz $v0, .L7000EAB8 +/* 00F6AC 7000EAAC 00000000 */ nop +/* 00F6B0 7000EAB0 8C8F0000 */ lw $t7, ($a0) +/* 00F6B4 7000EAB4 AC4F0000 */ sw $t7, ($v0) +.L7000EAB8: +/* 00F6B8 7000EAB8 03E00008 */ jr $ra +/* 00F6BC 7000EABC 00000000 */ nop + +glabel alLink +/* 00F6C0 7000EAC0 8CAE0000 */ lw $t6, ($a1) +/* 00F6C4 7000EAC4 AC850004 */ sw $a1, 4($a0) +/* 00F6C8 7000EAC8 AC8E0000 */ sw $t6, ($a0) +/* 00F6CC 7000EACC 8CA20000 */ lw $v0, ($a1) +/* 00F6D0 7000EAD0 10400002 */ beqz $v0, .L7000EADC +/* 00F6D4 7000EAD4 00000000 */ nop +/* 00F6D8 7000EAD8 AC440004 */ sw $a0, 4($v0) +.L7000EADC: +/* 00F6DC 7000EADC 03E00008 */ jr $ra +/* 00F6E0 7000EAE0 ACA40000 */ sw $a0, ($a1) + +glabel alClose +/* 00F6E4 7000EAE4 3C0E8002 */ lui $t6, %hi(alGlobals) +/* 00F6E8 7000EAE8 8DCE76E0 */ lw $t6, %lo(alGlobals)($t6) +/* 00F6EC 7000EAEC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00F6F0 7000EAF0 AFBF0014 */ sw $ra, 0x14($sp) +/* 00F6F4 7000EAF4 51C00006 */ beql $t6, $zero, .L7000EB10 +/* 00F6F8 7000EAF8 8FBF0014 */ lw $ra, 0x14($sp) +/* 00F6FC 7000EAFC 0C006438 */ jal alSynDelete +/* 00F700 7000EB00 00000000 */ nop +/* 00F704 7000EB04 3C018002 */ lui $at, %hi(alGlobals) +/* 00F708 7000EB08 AC2076E0 */ sw $zero, %lo(alGlobals)($at) +/* 00F70C 7000EB0C 8FBF0014 */ lw $ra, 0x14($sp) +.L7000EB10: +/* 00F710 7000EB10 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00F714 7000EB14 03E00008 */ jr $ra +/* 00F718 7000EB18 00000000 */ nop + +glabel alInit +/* 00F71C 7000EB1C 3C028002 */ lui $v0, %hi(alGlobals) +/* 00F720 7000EB20 244276E0 */ addiu $v0, %lo(alGlobals) # addiu $v0, $v0, 0x76e0 +/* 00F724 7000EB24 8C4E0000 */ lw $t6, ($v0) +/* 00F728 7000EB28 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00F72C 7000EB2C AFBF0014 */ sw $ra, 0x14($sp) +/* 00F730 7000EB30 55C00004 */ bnezl $t6, .L7000EB44 +/* 00F734 7000EB34 8FBF0014 */ lw $ra, 0x14($sp) +/* 00F738 7000EB38 0C003CE8 */ jal alSynNew +/* 00F73C 7000EB3C AC440000 */ sw $a0, ($v0) +/* 00F740 7000EB40 8FBF0014 */ lw $ra, 0x14($sp) +.L7000EB44: +/* 00F744 7000EB44 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00F748 7000EB48 03E00008 */ jr $ra +/* 00F74C 7000EB4C 00000000 */ nop + +.section .data +glabel alGlobals + .word 0 +.align 4 + + + diff --git a/src/libultra/sp.s b/src/libultra/sp.s new file mode 100644 index 0000000..048a37d --- /dev/null +++ b/src/libultra/sp.s @@ -0,0 +1,28 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSpDeviceBusy +/* 019BC0 70018FC0 3C0EA404 */ lui $t6, %hi(SP_STATUS_REG) # $t6, 0xa404 +/* 019BC4 70018FC4 8DC40010 */ lw $a0, %lo(SP_STATUS_REG)($t6) +/* 019BC8 70018FC8 27BDFFF8 */ addiu $sp, $sp, -8 +/* 019BCC 70018FCC 308F001C */ andi $t7, $a0, 0x1c +/* 019BD0 70018FD0 11E00003 */ beqz $t7, .L70018FE0 +/* 019BD4 70018FD4 00000000 */ nop +/* 019BD8 70018FD8 10000002 */ b .L70018FE4 +/* 019BDC 70018FDC 24020001 */ li $v0, 1 +.L70018FE0: +/* 019BE0 70018FE0 00001025 */ move $v0, $zero +.L70018FE4: +/* 019BE4 70018FE4 03E00008 */ jr $ra +/* 019BE8 70018FE8 27BD0008 */ addiu $sp, $sp, 8 + diff --git a/src/libultra/spgetstat.s b/src/libultra/spgetstat.s new file mode 100644 index 0000000..91534ab --- /dev/null +++ b/src/libultra/spgetstat.s @@ -0,0 +1,19 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSpGetStatus +/* 019AD0 70018ED0 3C0EA404 */ lui $t6, 0xa404 +/* 019AD4 70018ED4 03E00008 */ jr $ra +/* 019AD8 70018ED8 8DC20010 */ lw $v0, 0x10($t6) + + diff --git a/src/libultra/sprawdma.s b/src/libultra/sprawdma.s new file mode 100644 index 0000000..f7fe54e --- /dev/null +++ b/src/libultra/sprawdma.s @@ -0,0 +1,54 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSpRawStartDma +/* 019B30 70018F30 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 019B34 70018F34 AFBF0014 */ sw $ra, 0x14($sp) +/* 019B38 70018F38 AFA40018 */ sw $a0, 0x18($sp) +/* 019B3C 70018F3C AFA5001C */ sw $a1, 0x1c($sp) +/* 019B40 70018F40 AFA60020 */ sw $a2, 0x20($sp) +/* 019B44 70018F44 0C0063F0 */ jal __osSpDeviceBusy +/* 019B48 70018F48 AFA70024 */ sw $a3, 0x24($sp) +/* 019B4C 70018F4C 10400003 */ beqz $v0, .L70018F5C +/* 019B50 70018F50 00000000 */ nop +/* 019B54 70018F54 10000015 */ b .L70018FAC +/* 019B58 70018F58 2402FFFF */ li $v0, -1 +.L70018F5C: +/* 019B5C 70018F5C 8FAE001C */ lw $t6, 0x1c($sp) +/* 019B60 70018F60 3C0FA404 */ lui $t7, 0xa404 +/* 019B64 70018F64 ADEE0000 */ sw $t6, ($t7) +/* 019B68 70018F68 0C003A2C */ jal osVirtualToPhysical +/* 019B6C 70018F6C 8FA40020 */ lw $a0, 0x20($sp) +/* 019B70 70018F70 3C18A404 */ lui $t8, %hi(SP_DRAM_ADDR_REG) # $t8, 0xa404 +/* 019B74 70018F74 AF020004 */ sw $v0, %lo(SP_DRAM_ADDR_REG)($t8) +/* 019B78 70018F78 8FB90018 */ lw $t9, 0x18($sp) +/* 019B7C 70018F7C 17200006 */ bnez $t9, .L70018F98 +/* 019B80 70018F80 00000000 */ nop +/* 019B84 70018F84 8FA80024 */ lw $t0, 0x24($sp) +/* 019B88 70018F88 3C0AA404 */ lui $t2, %hi(SP_WR_LEN_REG) # $t2, 0xa404 +/* 019B8C 70018F8C 2509FFFF */ addiu $t1, $t0, -1 +/* 019B90 70018F90 10000005 */ b .L70018FA8 +/* 019B94 70018F94 AD49000C */ sw $t1, %lo(SP_WR_LEN_REG)($t2) +.L70018F98: +/* 019B98 70018F98 8FAB0024 */ lw $t3, 0x24($sp) +/* 019B9C 70018F9C 3C0DA404 */ lui $t5, %hi(SP_RD_LEN_REG) # $t5, 0xa404 +/* 019BA0 70018FA0 256CFFFF */ addiu $t4, $t3, -1 +/* 019BA4 70018FA4 ADAC0008 */ sw $t4, %lo(SP_RD_LEN_REG)($t5) +.L70018FA8: +/* 019BA8 70018FA8 00001025 */ move $v0, $zero +.L70018FAC: +/* 019BAC 70018FAC 8FBF0014 */ lw $ra, 0x14($sp) +/* 019BB0 70018FB0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 019BB4 70018FB4 03E00008 */ jr $ra +/* 019BB8 70018FB8 00000000 */ nop + diff --git a/src/libultra/spsetpc.s b/src/libultra/spsetpc.s new file mode 100644 index 0000000..3f2fd56 --- /dev/null +++ b/src/libultra/spsetpc.s @@ -0,0 +1,30 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSpSetPc +/* 019AF0 70018EF0 3C0EA404 */ lui $t6, %hi(SP_STATUS_REG) # $t6, 0xa404 +/* 019AF4 70018EF4 8DC50010 */ lw $a1, %lo(SP_STATUS_REG)($t6) +/* 019AF8 70018EF8 27BDFFF8 */ addiu $sp, $sp, -8 +/* 019AFC 70018EFC 30AF0001 */ andi $t7, $a1, 1 +/* 019B00 70018F00 15E00003 */ bnez $t7, .L70018F10 +/* 019B04 70018F04 00000000 */ nop +/* 019B08 70018F08 10000004 */ b .L70018F1C +/* 019B0C 70018F0C 2402FFFF */ li $v0, -1 +.L70018F10: +/* 019B10 70018F10 3C18A408 */ lui $t8, 0xa408 +/* 019B14 70018F14 AF040000 */ sw $a0, ($t8) +/* 019B18 70018F18 00001025 */ move $v0, $zero +.L70018F1C: +/* 019B1C 70018F1C 03E00008 */ jr $ra +/* 019B20 70018F20 27BD0008 */ addiu $sp, $sp, 8 + diff --git a/src/libultra/spsetstat.s b/src/libultra/spsetstat.s new file mode 100644 index 0000000..bcad11d --- /dev/null +++ b/src/libultra/spsetstat.s @@ -0,0 +1,18 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osSpSetStatus +/* 019AE0 70018EE0 3C0EA404 */ lui $t6, 0xa404 +/* 019AE4 70018EE4 03E00008 */ jr $ra +/* 019AE8 70018EE8 ADC40010 */ sw $a0, 0x10($t6) + diff --git a/src/libultra/sptask.s b/src/libultra/sptask.s new file mode 100644 index 0000000..a780917 --- /dev/null +++ b/src/libultra/sptask.s @@ -0,0 +1,248 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +.section .bss + +glabel tp +glabel type +.word 0 +glabel flags +.word 0 +glabel t_ucode_boot +.word 0 +glabel t_ucode_boot_size +.word 0 +glabel t_ucode +.word 0 +glabel t_ucode_size +.word 0 +glabel t_ucode_data +.word 0 +glabel t_ucode_data_size +.word 0 +glabel t_dram_stack +.word 0 +glabel t_dram_stack_size +.word 0 +glabel t_output_buff +.word 0 +glabel t_output_buff_size +.word 0 +glabel t_data_ptr +.word 0 +glabel t_data_size +.word 0 +glabel t_yield_data_ptr +.word 0 +glabel t_yield_data_size +.word 0 + + + + +.section .text +glabel _VirtualToPhysicalTask +/* 00F0F0 7000E4F0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00F0F4 7000E4F4 3C0E8006 */ lui $t6, %hi(tp) +/* 00F0F8 7000E4F8 AFBF0014 */ sw $ra, 0x14($sp) +/* 00F0FC 7000E4FC AFA40020 */ sw $a0, 0x20($sp) +/* 00F100 7000E500 25CE6A90 */ addiu $t6, %lo(tp) # addiu $t6, $t6, 0x6a90 +/* 00F104 7000E504 AFAE001C */ sw $t6, 0x1c($sp) +/* 00F108 7000E508 01C02825 */ move $a1, $t6 +/* 00F10C 7000E50C 8FA40020 */ lw $a0, 0x20($sp) +/* 00F110 7000E510 0C003E5C */ jal bcopy +/* 00F114 7000E514 24060040 */ li $a2, 64 +/* 00F118 7000E518 8FAF001C */ lw $t7, 0x1c($sp) +/* 00F11C 7000E51C 8DF80010 */ lw $t8, 0x10($t7) +/* 00F120 7000E520 13000005 */ beqz $t8, .L7000E538 +/* 00F124 7000E524 00000000 */ nop +/* 00F128 7000E528 0C003A2C */ jal osVirtualToPhysical +/* 00F12C 7000E52C 03002025 */ move $a0, $t8 +/* 00F130 7000E530 8FB9001C */ lw $t9, 0x1c($sp) +/* 00F134 7000E534 AF220010 */ sw $v0, 0x10($t9) +.L7000E538: +/* 00F138 7000E538 8FA8001C */ lw $t0, 0x1c($sp) +/* 00F13C 7000E53C 8D090018 */ lw $t1, 0x18($t0) +/* 00F140 7000E540 11200005 */ beqz $t1, .L7000E558 +/* 00F144 7000E544 00000000 */ nop +/* 00F148 7000E548 0C003A2C */ jal osVirtualToPhysical +/* 00F14C 7000E54C 01202025 */ move $a0, $t1 +/* 00F150 7000E550 8FAA001C */ lw $t2, 0x1c($sp) +/* 00F154 7000E554 AD420018 */ sw $v0, 0x18($t2) +.L7000E558: +/* 00F158 7000E558 8FAB001C */ lw $t3, 0x1c($sp) +/* 00F15C 7000E55C 8D6C0020 */ lw $t4, 0x20($t3) +/* 00F160 7000E560 11800005 */ beqz $t4, .L7000E578 +/* 00F164 7000E564 00000000 */ nop +/* 00F168 7000E568 0C003A2C */ jal osVirtualToPhysical +/* 00F16C 7000E56C 01802025 */ move $a0, $t4 +/* 00F170 7000E570 8FAD001C */ lw $t5, 0x1c($sp) +/* 00F174 7000E574 ADA20020 */ sw $v0, 0x20($t5) +.L7000E578: +/* 00F178 7000E578 8FAE001C */ lw $t6, 0x1c($sp) +/* 00F17C 7000E57C 8DCF0028 */ lw $t7, 0x28($t6) +/* 00F180 7000E580 11E00005 */ beqz $t7, .L7000E598 +/* 00F184 7000E584 00000000 */ nop +/* 00F188 7000E588 0C003A2C */ jal osVirtualToPhysical +/* 00F18C 7000E58C 01E02025 */ move $a0, $t7 +/* 00F190 7000E590 8FB8001C */ lw $t8, 0x1c($sp) +/* 00F194 7000E594 AF020028 */ sw $v0, 0x28($t8) +.L7000E598: +/* 00F198 7000E598 8FB9001C */ lw $t9, 0x1c($sp) +/* 00F19C 7000E59C 8F28002C */ lw $t0, 0x2c($t9) +/* 00F1A0 7000E5A0 11000005 */ beqz $t0, .L7000E5B8 +/* 00F1A4 7000E5A4 00000000 */ nop +/* 00F1A8 7000E5A8 0C003A2C */ jal osVirtualToPhysical +/* 00F1AC 7000E5AC 01002025 */ move $a0, $t0 +/* 00F1B0 7000E5B0 8FA9001C */ lw $t1, 0x1c($sp) +/* 00F1B4 7000E5B4 AD22002C */ sw $v0, 0x2c($t1) +.L7000E5B8: +/* 00F1B8 7000E5B8 8FAA001C */ lw $t2, 0x1c($sp) +/* 00F1BC 7000E5BC 8D4B0030 */ lw $t3, 0x30($t2) +/* 00F1C0 7000E5C0 11600005 */ beqz $t3, .L7000E5D8 +/* 00F1C4 7000E5C4 00000000 */ nop +/* 00F1C8 7000E5C8 0C003A2C */ jal osVirtualToPhysical +/* 00F1CC 7000E5CC 01602025 */ move $a0, $t3 +/* 00F1D0 7000E5D0 8FAC001C */ lw $t4, 0x1c($sp) +/* 00F1D4 7000E5D4 AD820030 */ sw $v0, 0x30($t4) +.L7000E5D8: +/* 00F1D8 7000E5D8 8FAD001C */ lw $t5, 0x1c($sp) +/* 00F1DC 7000E5DC 8DAE0038 */ lw $t6, 0x38($t5) +/* 00F1E0 7000E5E0 11C00005 */ beqz $t6, .L7000E5F8 +/* 00F1E4 7000E5E4 00000000 */ nop +/* 00F1E8 7000E5E8 0C003A2C */ jal osVirtualToPhysical +/* 00F1EC 7000E5EC 01C02025 */ move $a0, $t6 +/* 00F1F0 7000E5F0 8FAF001C */ lw $t7, 0x1c($sp) +/* 00F1F4 7000E5F4 ADE20038 */ sw $v0, 0x38($t7) +.L7000E5F8: +/* 00F1F8 7000E5F8 8FBF0014 */ lw $ra, 0x14($sp) +/* 00F1FC 7000E5FC 8FA2001C */ lw $v0, 0x1c($sp) +/* 00F200 7000E600 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00F204 7000E604 03E00008 */ jr $ra +/* 00F208 7000E608 00000000 */ nop + +glabel osSpTaskLoad +/* 00F20C 7000E60C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00F210 7000E610 AFBF0014 */ sw $ra, 0x14($sp) +/* 00F214 7000E614 AFA40020 */ sw $a0, 0x20($sp) +/* 00F218 7000E618 0C00393C */ jal _VirtualToPhysicalTask +/* 00F21C 7000E61C 8FA40020 */ lw $a0, 0x20($sp) +/* 00F220 7000E620 AFA2001C */ sw $v0, 0x1c($sp) +/* 00F224 7000E624 8FAE001C */ lw $t6, 0x1c($sp) +/* 00F228 7000E628 8DCF0004 */ lw $t7, 4($t6) +/* 00F22C 7000E62C 31F80001 */ andi $t8, $t7, 1 +/* 00F230 7000E630 1300000B */ beqz $t8, .L7000E660 +/* 00F234 7000E634 00000000 */ nop +/* 00F238 7000E638 8DD90038 */ lw $t9, 0x38($t6) +/* 00F23C 7000E63C 2401FFFE */ li $at, -2 +/* 00F240 7000E640 ADD90018 */ sw $t9, 0x18($t6) +/* 00F244 7000E644 8FA8001C */ lw $t0, 0x1c($sp) +/* 00F248 7000E648 8D09003C */ lw $t1, 0x3c($t0) +/* 00F24C 7000E64C AD09001C */ sw $t1, 0x1c($t0) +/* 00F250 7000E650 8FAA0020 */ lw $t2, 0x20($sp) +/* 00F254 7000E654 8D4B0004 */ lw $t3, 4($t2) +/* 00F258 7000E658 01616024 */ and $t4, $t3, $at +/* 00F25C 7000E65C AD4C0004 */ sw $t4, 4($t2) +.L7000E660: +/* 00F260 7000E660 8FA4001C */ lw $a0, 0x1c($sp) +/* 00F264 7000E664 0C0042F4 */ jal osWritebackDCache +/* 00F268 7000E668 24050040 */ li $a1, 64 +/* 00F26C 7000E66C 0C0063B8 */ jal __osSpSetStatus +/* 00F270 7000E670 24042B00 */ li $a0, 11008 +/* 00F274 7000E674 3C040400 */ lui $a0, (0x04001000 >> 16) # lui $a0, 0x400 +/* 00F278 7000E678 0C0063BC */ jal __osSpSetPc +/* 00F27C 7000E67C 34841000 */ ori $a0, (0x04001000 & 0xFFFF) # ori $a0, $a0, 0x1000 +/* 00F280 7000E680 2401FFFF */ li $at, -1 +/* 00F284 7000E684 14410007 */ bne $v0, $at, .L7000E6A4 +/* 00F288 7000E688 00000000 */ nop +.L7000E68C: +/* 00F28C 7000E68C 3C040400 */ lui $a0, (0x04001000 >> 16) # lui $a0, 0x400 +/* 00F290 7000E690 0C0063BC */ jal __osSpSetPc +/* 00F294 7000E694 34841000 */ ori $a0, (0x04001000 & 0xFFFF) # ori $a0, $a0, 0x1000 +/* 00F298 7000E698 2401FFFF */ li $at, -1 +/* 00F29C 7000E69C 1041FFFB */ beq $v0, $at, .L7000E68C +/* 00F2A0 7000E6A0 00000000 */ nop +.L7000E6A4: +/* 00F2A4 7000E6A4 3C050400 */ lui $a1, (0x04000FC0 >> 16) # lui $a1, 0x400 +/* 00F2A8 7000E6A8 34A50FC0 */ ori $a1, (0x04000FC0 & 0xFFFF) # ori $a1, $a1, 0xfc0 +/* 00F2AC 7000E6AC 24040001 */ li $a0, 1 +/* 00F2B0 7000E6B0 8FA6001C */ lw $a2, 0x1c($sp) +/* 00F2B4 7000E6B4 0C0063CC */ jal __osSpRawStartDma +/* 00F2B8 7000E6B8 24070040 */ li $a3, 64 +/* 00F2BC 7000E6BC 2401FFFF */ li $at, -1 +/* 00F2C0 7000E6C0 1441000A */ bne $v0, $at, .L7000E6EC +/* 00F2C4 7000E6C4 00000000 */ nop +.L7000E6C8: +/* 00F2C8 7000E6C8 3C050400 */ lui $a1, (0x04000FC0 >> 16) # lui $a1, 0x400 +/* 00F2CC 7000E6CC 34A50FC0 */ ori $a1, (0x04000FC0 & 0xFFFF) # ori $a1, $a1, 0xfc0 +/* 00F2D0 7000E6D0 24040001 */ li $a0, 1 +/* 00F2D4 7000E6D4 8FA6001C */ lw $a2, 0x1c($sp) +/* 00F2D8 7000E6D8 0C0063CC */ jal __osSpRawStartDma +/* 00F2DC 7000E6DC 24070040 */ li $a3, 64 +/* 00F2E0 7000E6E0 2401FFFF */ li $at, -1 +/* 00F2E4 7000E6E4 1041FFF8 */ beq $v0, $at, .L7000E6C8 +/* 00F2E8 7000E6E8 00000000 */ nop +.L7000E6EC: +/* 00F2EC 7000E6EC 0C0063F0 */ jal __osSpDeviceBusy +/* 00F2F0 7000E6F0 00000000 */ nop +/* 00F2F4 7000E6F4 10400005 */ beqz $v0, .L7000E70C +/* 00F2F8 7000E6F8 00000000 */ nop +.L7000E6FC: +/* 00F2FC 7000E6FC 0C0063F0 */ jal __osSpDeviceBusy +/* 00F300 7000E700 00000000 */ nop +/* 00F304 7000E704 1440FFFD */ bnez $v0, .L7000E6FC +/* 00F308 7000E708 00000000 */ nop +.L7000E70C: +/* 00F30C 7000E70C 8FAD001C */ lw $t5, 0x1c($sp) +/* 00F310 7000E710 3C050400 */ lui $a1, (0x04001000 >> 16) # lui $a1, 0x400 +/* 00F314 7000E714 34A51000 */ ori $a1, (0x04001000 & 0xFFFF) # ori $a1, $a1, 0x1000 +/* 00F318 7000E718 24040001 */ li $a0, 1 +/* 00F31C 7000E71C 8DA60008 */ lw $a2, 8($t5) +/* 00F320 7000E720 0C0063CC */ jal __osSpRawStartDma +/* 00F324 7000E724 8DA7000C */ lw $a3, 0xc($t5) +/* 00F328 7000E728 2401FFFF */ li $at, -1 +/* 00F32C 7000E72C 1441000B */ bne $v0, $at, .L7000E75C +/* 00F330 7000E730 00000000 */ nop +.L7000E734: +/* 00F334 7000E734 8FAF001C */ lw $t7, 0x1c($sp) +/* 00F338 7000E738 3C050400 */ lui $a1, (0x04001000 >> 16) # lui $a1, 0x400 +/* 00F33C 7000E73C 34A51000 */ ori $a1, (0x04001000 & 0xFFFF) # ori $a1, $a1, 0x1000 +/* 00F340 7000E740 24040001 */ li $a0, 1 +/* 00F344 7000E744 8DE60008 */ lw $a2, 8($t7) +/* 00F348 7000E748 0C0063CC */ jal __osSpRawStartDma +/* 00F34C 7000E74C 8DE7000C */ lw $a3, 0xc($t7) +/* 00F350 7000E750 2401FFFF */ li $at, -1 +/* 00F354 7000E754 1041FFF7 */ beq $v0, $at, .L7000E734 +/* 00F358 7000E758 00000000 */ nop +.L7000E75C: +/* 00F35C 7000E75C 8FBF0014 */ lw $ra, 0x14($sp) +/* 00F360 7000E760 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00F364 7000E764 03E00008 */ jr $ra +/* 00F368 7000E768 00000000 */ nop + +glabel osSpTaskStartGo +/* 00F36C 7000E76C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00F370 7000E770 AFBF0014 */ sw $ra, 0x14($sp) +/* 00F374 7000E774 0C0063F0 */ jal __osSpDeviceBusy +/* 00F378 7000E778 AFA40018 */ sw $a0, 0x18($sp) +/* 00F37C 7000E77C 10400005 */ beqz $v0, .L7000E794 +/* 00F380 7000E780 00000000 */ nop +.L7000E784: +/* 00F384 7000E784 0C0063F0 */ jal __osSpDeviceBusy +/* 00F388 7000E788 00000000 */ nop +/* 00F38C 7000E78C 1440FFFD */ bnez $v0, .L7000E784 +/* 00F390 7000E790 00000000 */ nop +.L7000E794: +/* 00F394 7000E794 0C0063B8 */ jal __osSpSetStatus +/* 00F398 7000E798 24040125 */ li $a0, 293 +/* 00F39C 7000E79C 8FBF0014 */ lw $ra, 0x14($sp) +/* 00F3A0 7000E7A0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00F3A4 7000E7A4 03E00008 */ jr $ra +/* 00F3A8 7000E7A8 00000000 */ nop diff --git a/src/libultra/sptaskyield.s b/src/libultra/sptaskyield.s new file mode 100644 index 0000000..1721c3c --- /dev/null +++ b/src/libultra/sptaskyield.s @@ -0,0 +1,18 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osSpTaskYield +/* 00F460 7000E860 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00F464 7000E864 AFBF0014 */ sw $ra, 0x14($sp) +/* 00F468 7000E868 0C0063B8 */ jal __osSpSetStatus +/* 00F46C 7000E86C 24040400 */ li $a0, 1024 +/* 00F470 7000E870 8FBF0014 */ lw $ra, 0x14($sp) +/* 00F474 7000E874 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00F478 7000E878 03E00008 */ jr $ra +/* 00F47C 7000E87C 00000000 */ nop diff --git a/src/libultra/sptaskyielded.s b/src/libultra/sptaskyielded.s new file mode 100644 index 0000000..7ba8d94 --- /dev/null +++ b/src/libultra/sptaskyielded.s @@ -0,0 +1,46 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osSpTaskYielded +/* 00EF40 7000E340 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00EF44 7000E344 AFBF0014 */ sw $ra, 0x14($sp) +/* 00EF48 7000E348 0C0063B4 */ jal __osSpGetStatus +/* 00EF4C 7000E34C AFA40020 */ sw $a0, 0x20($sp) +/* 00EF50 7000E350 AFA2001C */ sw $v0, 0x1c($sp) +/* 00EF54 7000E354 8FAE001C */ lw $t6, 0x1c($sp) +/* 00EF58 7000E358 31CF0100 */ andi $t7, $t6, 0x100 +/* 00EF5C 7000E35C 11E00004 */ beqz $t7, .L7000E370 +/* 00EF60 7000E360 00000000 */ nop +/* 00EF64 7000E364 24180001 */ li $t8, 1 +/* 00EF68 7000E368 10000002 */ b .L7000E374 +/* 00EF6C 7000E36C AFB80018 */ sw $t8, 0x18($sp) +.L7000E370: +/* 00EF70 7000E370 AFA00018 */ sw $zero, 0x18($sp) +.L7000E374: +/* 00EF74 7000E374 8FB9001C */ lw $t9, 0x1c($sp) +/* 00EF78 7000E378 33280080 */ andi $t0, $t9, 0x80 +/* 00EF7C 7000E37C 1100000B */ beqz $t0, .L7000E3AC +/* 00EF80 7000E380 00000000 */ nop +/* 00EF84 7000E384 8FA90020 */ lw $t1, 0x20($sp) +/* 00EF88 7000E388 8FAB0018 */ lw $t3, 0x18($sp) +/* 00EF8C 7000E38C 2401FFFD */ li $at, -3 +/* 00EF90 7000E390 8D2A0004 */ lw $t2, 4($t1) +/* 00EF94 7000E394 014B6025 */ or $t4, $t2, $t3 +/* 00EF98 7000E398 AD2C0004 */ sw $t4, 4($t1) +/* 00EF9C 7000E39C 8FAD0020 */ lw $t5, 0x20($sp) +/* 00EFA0 7000E3A0 8DAE0004 */ lw $t6, 4($t5) +/* 00EFA4 7000E3A4 01C17824 */ and $t7, $t6, $at +/* 00EFA8 7000E3A8 ADAF0004 */ sw $t7, 4($t5) +.L7000E3AC: +/* 00EFAC 7000E3AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 00EFB0 7000E3B0 8FA20018 */ lw $v0, 0x18($sp) +/* 00EFB4 7000E3B4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00EFB8 7000E3B8 03E00008 */ jr $ra +/* 00EFBC 7000E3BC 00000000 */ nop diff --git a/src/libultra/sqrtf.s b/src/libultra/sqrtf.s new file mode 100644 index 0000000..61ce882 --- /dev/null +++ b/src/libultra/sqrtf.s @@ -0,0 +1,17 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel sqrtf +/* 0203E0 7001F7E0 03E00008 */ jr $ra +/* 0203E4 7001F7E4 46006004 */ sqrt.s $f0, $f12 + diff --git a/src/libultra/startthread.s b/src/libultra/startthread.s new file mode 100644 index 0000000..0cc8be4 --- /dev/null +++ b/src/libultra/startthread.s @@ -0,0 +1,100 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osStartThread +/* 00E180 7000D580 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00E184 7000D584 AFBF001C */ sw $ra, 0x1c($sp) +/* 00E188 7000D588 AFA40028 */ sw $a0, 0x28($sp) +/* 00E18C 7000D58C AFB10018 */ sw $s1, 0x18($sp) +/* 00E190 7000D590 0C00617C */ jal __osDisableInt +/* 00E194 7000D594 AFB00014 */ sw $s0, 0x14($sp) +/* 00E198 7000D598 8FAE0028 */ lw $t6, 0x28($sp) +/* 00E19C 7000D59C 24010001 */ li $at, 1 +/* 00E1A0 7000D5A0 00408025 */ move $s0, $v0 +/* 00E1A4 7000D5A4 95D10010 */ lhu $s1, 0x10($t6) +/* 00E1A8 7000D5A8 1221000C */ beq $s1, $at, .L7000D5DC +/* 00E1AC 7000D5AC 24010008 */ li $at, 8 +/* 00E1B0 7000D5B0 1621002A */ bne $s1, $at, .L7000D65C +/* 00E1B4 7000D5B4 00000000 */ nop +/* 00E1B8 7000D5B8 8FB80028 */ lw $t8, 0x28($sp) +/* 00E1BC 7000D5BC 240F0002 */ li $t7, 2 +/* 00E1C0 7000D5C0 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 00E1C4 7000D5C4 A70F0010 */ sh $t7, 0x10($t8) +/* 00E1C8 7000D5C8 8FA50028 */ lw $a1, 0x28($sp) +/* 00E1CC 7000D5CC 0C00422B */ jal __osEnqueueThread +/* 00E1D0 7000D5D0 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +/* 00E1D4 7000D5D4 10000021 */ b .L7000D65C +/* 00E1D8 7000D5D8 00000000 */ nop +.L7000D5DC: +/* 00E1DC 7000D5DC 8FB90028 */ lw $t9, 0x28($sp) +/* 00E1E0 7000D5E0 8F280008 */ lw $t0, 8($t9) +/* 00E1E4 7000D5E4 11000005 */ beqz $t0, .L7000D5FC +/* 00E1E8 7000D5E8 00000000 */ nop +/* 00E1EC 7000D5EC 3C098002 */ lui $t1, %hi(__osRunQueue) +/* 00E1F0 7000D5F0 25297728 */ addiu $t1, %lo(__osRunQueue) # addiu $t1, $t1, 0x7728 +/* 00E1F4 7000D5F4 1509000A */ bne $t0, $t1, .L7000D620 +/* 00E1F8 7000D5F8 00000000 */ nop +.L7000D5FC: +/* 00E1FC 7000D5FC 8FAB0028 */ lw $t3, 0x28($sp) +/* 00E200 7000D600 240A0002 */ li $t2, 2 +/* 00E204 7000D604 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 00E208 7000D608 A56A0010 */ sh $t2, 0x10($t3) +/* 00E20C 7000D60C 8FA50028 */ lw $a1, 0x28($sp) +/* 00E210 7000D610 0C00422B */ jal __osEnqueueThread +/* 00E214 7000D614 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +/* 00E218 7000D618 10000010 */ b .L7000D65C +/* 00E21C 7000D61C 00000000 */ nop +.L7000D620: +/* 00E220 7000D620 8FAD0028 */ lw $t5, 0x28($sp) +/* 00E224 7000D624 240C0008 */ li $t4, 8 +/* 00E228 7000D628 A5AC0010 */ sh $t4, 0x10($t5) +/* 00E22C 7000D62C 8FAE0028 */ lw $t6, 0x28($sp) +/* 00E230 7000D630 8DC40008 */ lw $a0, 8($t6) +/* 00E234 7000D634 0C00422B */ jal __osEnqueueThread +/* 00E238 7000D638 01C02825 */ move $a1, $t6 +/* 00E23C 7000D63C 8FAF0028 */ lw $t7, 0x28($sp) +/* 00E240 7000D640 0C00423D */ jal __osPopThread +/* 00E244 7000D644 8DE40008 */ lw $a0, 8($t7) +/* 00E248 7000D648 00408825 */ move $s1, $v0 +/* 00E24C 7000D64C 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 00E250 7000D650 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +/* 00E254 7000D654 0C00422B */ jal __osEnqueueThread +/* 00E258 7000D658 02202825 */ move $a1, $s1 +.L7000D65C: +/* 00E25C 7000D65C 3C188002 */ lui $t8, %hi(__osRunningThread) +/* 00E260 7000D660 8F187730 */ lw $t8, %lo(__osRunningThread)($t8) +/* 00E264 7000D664 17000005 */ bnez $t8, .L7000D67C +/* 00E268 7000D668 00000000 */ nop +/* 00E26C 7000D66C 0C004241 */ jal __osDispatchThread +/* 00E270 7000D670 00000000 */ nop +/* 00E274 7000D674 1000000F */ b .L7000D6B4 +/* 00E278 7000D678 00000000 */ nop +.L7000D67C: +/* 00E27C 7000D67C 3C198002 */ lui $t9, %hi(__osRunningThread) +/* 00E280 7000D680 3C098002 */ lui $t1, %hi(__osRunQueue) +/* 00E284 7000D684 8D297728 */ lw $t1, %lo(__osRunQueue)($t1) +/* 00E288 7000D688 8F397730 */ lw $t9, %lo(__osRunningThread)($t9) +/* 00E28C 7000D68C 8D2A0004 */ lw $t2, 4($t1) +/* 00E290 7000D690 8F280004 */ lw $t0, 4($t9) +/* 00E294 7000D694 010A082A */ slt $at, $t0, $t2 +/* 00E298 7000D698 10200006 */ beqz $at, .L7000D6B4 +/* 00E29C 7000D69C 00000000 */ nop +/* 00E2A0 7000D6A0 240B0002 */ li $t3, 2 +/* 00E2A4 7000D6A4 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 00E2A8 7000D6A8 A72B0010 */ sh $t3, 0x10($t9) +/* 00E2AC 7000D6AC 0C0041EB */ jal __osEnqueueAndYield +/* 00E2B0 7000D6B0 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +.L7000D6B4: +/* 00E2B4 7000D6B4 0C006184 */ jal __osRestoreInt +/* 00E2B8 7000D6B8 02002025 */ move $a0, $s0 +/* 00E2BC 7000D6BC 8FBF001C */ lw $ra, 0x1c($sp) +/* 00E2C0 7000D6C0 8FB00014 */ lw $s0, 0x14($sp) +/* 00E2C4 7000D6C4 8FB10018 */ lw $s1, 0x18($sp) +/* 00E2C8 7000D6C8 03E00008 */ jr $ra +/* 00E2CC 7000D6CC 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/stopthread.s b/src/libultra/stopthread.s new file mode 100644 index 0000000..e2ac2eb --- /dev/null +++ b/src/libultra/stopthread.s @@ -0,0 +1,63 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osStopThread +/* 00E340 7000D740 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 00E344 7000D744 AFBF0024 */ sw $ra, 0x24($sp) +/* 00E348 7000D748 AFA40038 */ sw $a0, 0x38($sp) +/* 00E34C 7000D74C AFB20020 */ sw $s2, 0x20($sp) +/* 00E350 7000D750 AFB1001C */ sw $s1, 0x1c($sp) +/* 00E354 7000D754 0C00617C */ jal __osDisableInt +/* 00E358 7000D758 AFB00018 */ sw $s0, 0x18($sp) +/* 00E35C 7000D75C 8FAE0038 */ lw $t6, 0x38($sp) +/* 00E360 7000D760 00408025 */ move $s0, $v0 +/* 00E364 7000D764 15C00003 */ bnez $t6, .L7000D774 +/* 00E368 7000D768 00000000 */ nop +/* 00E36C 7000D76C 10000003 */ b .L7000D77C +/* 00E370 7000D770 24110004 */ li $s1, 4 +.L7000D774: +/* 00E374 7000D774 8FAF0038 */ lw $t7, 0x38($sp) +/* 00E378 7000D778 95F10010 */ lhu $s1, 0x10($t7) +.L7000D77C: +/* 00E37C 7000D77C 02209025 */ move $s2, $s1 +/* 00E380 7000D780 24010002 */ li $at, 2 +/* 00E384 7000D784 1241000F */ beq $s2, $at, .L7000D7C4 +/* 00E388 7000D788 24010004 */ li $at, 4 +/* 00E38C 7000D78C 12410005 */ beq $s2, $at, .L7000D7A4 +/* 00E390 7000D790 24010008 */ li $at, 8 +/* 00E394 7000D794 1241000B */ beq $s2, $at, .L7000D7C4 +/* 00E398 7000D798 00000000 */ nop +/* 00E39C 7000D79C 10000010 */ b .L7000D7E0 +/* 00E3A0 7000D7A0 00000000 */ nop +.L7000D7A4: +/* 00E3A4 7000D7A4 3C198002 */ lui $t9, %hi(__osRunningThread) +/* 00E3A8 7000D7A8 8F397730 */ lw $t9, %lo(__osRunningThread)($t9) +/* 00E3AC 7000D7AC 24180001 */ li $t8, 1 +/* 00E3B0 7000D7B0 00002025 */ move $a0, $zero +/* 00E3B4 7000D7B4 0C0041EB */ jal __osEnqueueAndYield +/* 00E3B8 7000D7B8 A7380010 */ sh $t8, 0x10($t9) +/* 00E3BC 7000D7BC 10000008 */ b .L7000D7E0 +/* 00E3C0 7000D7C0 00000000 */ nop +.L7000D7C4: +/* 00E3C4 7000D7C4 8FA90038 */ lw $t1, 0x38($sp) +/* 00E3C8 7000D7C8 24080001 */ li $t0, 1 +/* 00E3CC 7000D7CC A5280010 */ sh $t0, 0x10($t1) +/* 00E3D0 7000D7D0 8FAA0038 */ lw $t2, 0x38($sp) +/* 00E3D4 7000D7D4 8D440008 */ lw $a0, 8($t2) +/* 00E3D8 7000D7D8 0C0042A4 */ jal __osDequeueThread +/* 00E3DC 7000D7DC 01402825 */ move $a1, $t2 +.L7000D7E0: +/* 00E3E0 7000D7E0 0C006184 */ jal __osRestoreInt +/* 00E3E4 7000D7E4 02002025 */ move $a0, $s0 +/* 00E3E8 7000D7E8 8FBF0024 */ lw $ra, 0x24($sp) +/* 00E3EC 7000D7EC 8FB00018 */ lw $s0, 0x18($sp) +/* 00E3F0 7000D7F0 8FB1001C */ lw $s1, 0x1c($sp) +/* 00E3F4 7000D7F4 8FB20020 */ lw $s2, 0x20($sp) +/* 00E3F8 7000D7F8 03E00008 */ jr $ra +/* 00E3FC 7000D7FC 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/src/libultra/string.s b/src/libultra/string.s new file mode 100644 index 0000000..bef06d1 --- /dev/null +++ b/src/libultra/string.s @@ -0,0 +1,59 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel memcpy +/* 014450 70013850 00801025 */ move $v0, $a0 +/* 014454 70013854 10C00007 */ beqz $a2, .L70013874 +/* 014458 70013858 00A01825 */ move $v1, $a1 +.L7001385C: +/* 01445C 7001385C 906E0000 */ lbu $t6, ($v1) +/* 014460 70013860 24C6FFFF */ addiu $a2, $a2, -1 +/* 014464 70013864 24420001 */ addiu $v0, $v0, 1 +/* 014468 70013868 24630001 */ addiu $v1, $v1, 1 +/* 01446C 7001386C 14C0FFFB */ bnez $a2, .L7001385C +/* 014470 70013870 A04EFFFF */ sb $t6, -1($v0) +.L70013874: +/* 014474 70013874 03E00008 */ jr $ra +/* 014478 70013878 00801025 */ move $v0, $a0 + +glabel strlen +/* 01447C 7001387C 908E0000 */ lbu $t6, ($a0) +/* 014480 70013880 00801825 */ move $v1, $a0 +/* 014484 70013884 11C00005 */ beqz $t6, .L7001389C +/* 014488 70013888 00000000 */ nop +/* 01448C 7001388C 906F0001 */ lbu $t7, 1($v1) +.L70013890: +/* 014490 70013890 24630001 */ addiu $v1, $v1, 1 +/* 014494 70013894 55E0FFFE */ bnezl $t7, .L70013890 +/* 014498 70013898 906F0001 */ lbu $t7, 1($v1) +.L7001389C: +/* 01449C 7001389C 03E00008 */ jr $ra +/* 0144A0 700138A0 00641023 */ subu $v0, $v1, $a0 + +glabel strchr +/* 0144A4 700138A4 90830000 */ lbu $v1, ($a0) +/* 0144A8 700138A8 30AE00FF */ andi $t6, $a1, 0xff +/* 0144AC 700138AC 30A200FF */ andi $v0, $a1, 0xff +/* 0144B0 700138B0 51C3000A */ beql $t6, $v1, .L700138DC +/* 0144B4 700138B4 00801025 */ move $v0, $a0 +.L700138B8: +/* 0144B8 700138B8 54600004 */ bnezl $v1, .L700138CC +/* 0144BC 700138BC 90830001 */ lbu $v1, 1($a0) +/* 0144C0 700138C0 03E00008 */ jr $ra +/* 0144C4 700138C4 00001025 */ move $v0, $zero + +/* 0144C8 700138C8 90830001 */ lbu $v1, 1($a0) +.L700138CC: +/* 0144CC 700138CC 24840001 */ addiu $a0, $a0, 1 +/* 0144D0 700138D0 1443FFF9 */ bne $v0, $v1, .L700138B8 +/* 0144D4 700138D4 00000000 */ nop +/* 0144D8 700138D8 00801025 */ move $v0, $a0 +.L700138DC: +/* 0144DC 700138DC 03E00008 */ jr $ra +/* 0144E0 700138E0 00000000 */ nop diff --git a/src/libultra/synaddplayer.s b/src/libultra/synaddplayer.s new file mode 100644 index 0000000..f385877 --- /dev/null +++ b/src/libultra/synaddplayer.s @@ -0,0 +1,30 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alSynAddPlayer +/* 013D20 70013120 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 013D24 70013124 AFBF0014 */ sw $ra, 0x14($sp) +/* 013D28 70013128 00803025 */ move $a2, $a0 +/* 013D2C 7001312C AFA60018 */ sw $a2, 0x18($sp) +/* 013D30 70013130 24040001 */ li $a0, 1 +/* 013D34 70013134 0C00374C */ jal osSetIntMask +/* 013D38 70013138 AFA5001C */ sw $a1, 0x1c($sp) +/* 013D3C 7001313C 8FA60018 */ lw $a2, 0x18($sp) +/* 013D40 70013140 8FA5001C */ lw $a1, 0x1c($sp) +/* 013D44 70013144 00402025 */ move $a0, $v0 +/* 013D48 70013148 8CCE0020 */ lw $t6, 0x20($a2) +/* 013D4C 7001314C ACAE0010 */ sw $t6, 0x10($a1) +/* 013D50 70013150 8CCF0000 */ lw $t7, ($a2) +/* 013D54 70013154 ACAF0000 */ sw $t7, ($a1) +/* 013D58 70013158 0C00374C */ jal osSetIntMask +/* 013D5C 7001315C ACC50000 */ sw $a1, ($a2) +/* 013D60 70013160 8FBF0014 */ lw $ra, 0x14($sp) +/* 013D64 70013164 27BD0018 */ addiu $sp, $sp, 0x18 +/* 013D68 70013168 03E00008 */ jr $ra +/* 013D6C 7001316C 00000000 */ nop diff --git a/src/libultra/synallocfx.s b/src/libultra/synallocfx.s new file mode 100644 index 0000000..d7b7cef --- /dev/null +++ b/src/libultra/synallocfx.s @@ -0,0 +1,53 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alSynAllocFX +/* 01A4C0 700198C0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 01A4C4 700198C4 00054400 */ sll $t0, $a1, 0x10 +/* 01A4C8 700198C8 00087403 */ sra $t6, $t0, 0x10 +/* 01A4CC 700198CC AFB10018 */ sw $s1, 0x18($sp) +/* 01A4D0 700198D0 000E8880 */ sll $s1, $t6, 2 +/* 01A4D4 700198D4 AFBF001C */ sw $ra, 0x1c($sp) +/* 01A4D8 700198D8 AFB00014 */ sw $s0, 0x14($sp) +/* 01A4DC 700198DC AFA50024 */ sw $a1, 0x24($sp) +/* 01A4E0 700198E0 022E8821 */ addu $s1, $s1, $t6 +/* 01A4E4 700198E4 8C8F0034 */ lw $t7, 0x34($a0) +/* 01A4E8 700198E8 00118880 */ sll $s1, $s1, 2 +/* 01A4EC 700198EC 022E8823 */ subu $s1, $s1, $t6 +/* 01A4F0 700198F0 00808025 */ move $s0, $a0 +/* 01A4F4 700198F4 00118880 */ sll $s1, $s1, 2 +/* 01A4F8 700198F8 00C02825 */ move $a1, $a2 +/* 01A4FC 700198FC 01F12021 */ addu $a0, $t7, $s1 +/* 01A500 70019900 24840020 */ addiu $a0, $a0, 0x20 +/* 01A504 70019904 0C006520 */ jal alFxNew +/* 01A508 70019908 00E03025 */ move $a2, $a3 +/* 01A50C 7001990C 8E180034 */ lw $t8, 0x34($s0) +/* 01A510 70019910 24050001 */ li $a1, 1 +/* 01A514 70019914 03113021 */ addu $a2, $t8, $s1 +/* 01A518 70019918 0C008070 */ jal alFxParam +/* 01A51C 7001991C 24C40020 */ addiu $a0, $a2, 0x20 +/* 01A520 70019920 8E190034 */ lw $t9, 0x34($s0) +/* 01A524 70019924 8E040030 */ lw $a0, 0x30($s0) +/* 01A528 70019928 24050002 */ li $a1, 2 +/* 01A52C 7001992C 03313021 */ addu $a2, $t9, $s1 +/* 01A530 70019930 0C006658 */ jal alMainBusParam +/* 01A534 70019934 24C60020 */ addiu $a2, $a2, 0x20 +/* 01A538 70019938 8E0A0034 */ lw $t2, 0x34($s0) +/* 01A53C 7001993C 8FBF001C */ lw $ra, 0x1c($sp) +/* 01A540 70019940 8FB00014 */ lw $s0, 0x14($sp) +/* 01A544 70019944 01511021 */ addu $v0, $t2, $s1 +/* 01A548 70019948 8FB10018 */ lw $s1, 0x18($sp) +/* 01A54C 7001994C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 01A550 70019950 03E00008 */ jr $ra +/* 01A554 70019954 24420020 */ addiu $v0, $v0, 0x20 + diff --git a/src/libultra/synallocvoice.s b/src/libultra/synallocvoice.s new file mode 100644 index 0000000..2a27082 --- /dev/null +++ b/src/libultra/synallocvoice.s @@ -0,0 +1,160 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel _allocatePVoice +/* 013D70 70013170 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 013D74 70013174 AFBF0014 */ sw $ra, 0x14($sp) +/* 013D78 70013178 AFA60030 */ sw $a2, 0x30($sp) +/* 013D7C 7001317C 8C870014 */ lw $a3, 0x14($a0) +/* 013D80 70013180 00067400 */ sll $t6, $a2, 0x10 +/* 013D84 70013184 000E3403 */ sra $a2, $t6, 0x10 +/* 013D88 70013188 00804025 */ move $t0, $a0 +/* 013D8C 7001318C 10E0000D */ beqz $a3, .L700131C4 +/* 013D90 70013190 00001825 */ move $v1, $zero +/* 013D94 70013194 ACA70000 */ sw $a3, ($a1) +/* 013D98 70013198 AFA80028 */ sw $t0, 0x28($sp) +/* 013D9C 7001319C AFA70024 */ sw $a3, 0x24($sp) +/* 013DA0 700131A0 AFA0001C */ sw $zero, 0x1c($sp) +/* 013DA4 700131A4 0C003AA4 */ jal alUnlink +/* 013DA8 700131A8 00E02025 */ move $a0, $a3 +/* 013DAC 700131AC 8FA80028 */ lw $t0, 0x28($sp) +/* 013DB0 700131B0 8FA40024 */ lw $a0, 0x24($sp) +/* 013DB4 700131B4 0C003AB0 */ jal alLink +/* 013DB8 700131B8 2505000C */ addiu $a1, $t0, 0xc +/* 013DBC 700131BC 10000021 */ b .L70013244 +/* 013DC0 700131C0 8FA3001C */ lw $v1, 0x1c($sp) +.L700131C4: +/* 013DC4 700131C4 8D070004 */ lw $a3, 4($t0) +/* 013DC8 700131C8 10E0000C */ beqz $a3, .L700131FC +/* 013DCC 700131CC 00E02025 */ move $a0, $a3 +/* 013DD0 700131D0 ACA70000 */ sw $a3, ($a1) +/* 013DD4 700131D4 AFA80028 */ sw $t0, 0x28($sp) +/* 013DD8 700131D8 AFA70024 */ sw $a3, 0x24($sp) +/* 013DDC 700131DC 0C003AA4 */ jal alUnlink +/* 013DE0 700131E0 AFA3001C */ sw $v1, 0x1c($sp) +/* 013DE4 700131E4 8FA80028 */ lw $t0, 0x28($sp) +/* 013DE8 700131E8 8FA40024 */ lw $a0, 0x24($sp) +/* 013DEC 700131EC 0C003AB0 */ jal alLink +/* 013DF0 700131F0 2505000C */ addiu $a1, $t0, 0xc +/* 013DF4 700131F4 10000013 */ b .L70013244 +/* 013DF8 700131F8 8FA3001C */ lw $v1, 0x1c($sp) +.L700131FC: +/* 013DFC 700131FC 8D07000C */ lw $a3, 0xc($t0) +/* 013E00 70013200 50E00011 */ beql $a3, $zero, .L70013248 +/* 013E04 70013204 8FBF0014 */ lw $ra, 0x14($sp) +/* 013E08 70013208 8CF80008 */ lw $t8, 8($a3) +.L7001320C: +/* 013E0C 7001320C 87190016 */ lh $t9, 0x16($t8) +/* 013E10 70013210 00D9082A */ slt $at, $a2, $t9 +/* 013E14 70013214 54200009 */ bnezl $at, .L7001323C +/* 013E18 70013218 8CE70000 */ lw $a3, ($a3) +/* 013E1C 7001321C 8CE900D8 */ lw $t1, 0xd8($a3) +/* 013E20 70013220 55200006 */ bnezl $t1, .L7001323C +/* 013E24 70013224 8CE70000 */ lw $a3, ($a3) +/* 013E28 70013228 ACA70000 */ sw $a3, ($a1) +/* 013E2C 7001322C 8CEA0008 */ lw $t2, 8($a3) +/* 013E30 70013230 24030001 */ li $v1, 1 +/* 013E34 70013234 85460016 */ lh $a2, 0x16($t2) +/* 013E38 70013238 8CE70000 */ lw $a3, ($a3) +.L7001323C: +/* 013E3C 7001323C 54E0FFF3 */ bnezl $a3, .L7001320C +/* 013E40 70013240 8CF80008 */ lw $t8, 8($a3) +.L70013244: +/* 013E44 70013244 8FBF0014 */ lw $ra, 0x14($sp) +.L70013248: +/* 013E48 70013248 27BD0028 */ addiu $sp, $sp, 0x28 +/* 013E4C 7001324C 00601025 */ move $v0, $v1 +/* 013E50 70013250 03E00008 */ jr $ra +/* 013E54 70013254 00000000 */ nop + +glabel alSynAllocVoice +/* 013E58 70013258 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 013E5C 7001325C AFBF001C */ sw $ra, 0x1c($sp) +/* 013E60 70013260 AFB00018 */ sw $s0, 0x18($sp) +/* 013E64 70013264 AFA40030 */ sw $a0, 0x30($sp) +/* 013E68 70013268 AFA0002C */ sw $zero, 0x2c($sp) +/* 013E6C 7001326C 84CE0000 */ lh $t6, ($a2) +/* 013E70 70013270 00A08025 */ move $s0, $a1 +/* 013E74 70013274 A4AE0016 */ sh $t6, 0x16($a1) +/* 013E78 70013278 90CF0004 */ lbu $t7, 4($a2) +/* 013E7C 7001327C ACA0000C */ sw $zero, 0xc($a1) +/* 013E80 70013280 A4AF001A */ sh $t7, 0x1a($a1) +/* 013E84 70013284 84D80002 */ lh $t8, 2($a2) +/* 013E88 70013288 A4A00014 */ sh $zero, 0x14($a1) +/* 013E8C 7001328C ACA00008 */ sw $zero, 8($a1) +/* 013E90 70013290 A4B80018 */ sh $t8, 0x18($a1) +/* 013E94 70013294 84C60000 */ lh $a2, ($a2) +/* 013E98 70013298 8FA40030 */ lw $a0, 0x30($sp) +/* 013E9C 7001329C 0C004C5C */ jal _allocatePVoice +/* 013EA0 700132A0 27A5002C */ addiu $a1, $sp, 0x2c +/* 013EA4 700132A4 8FB9002C */ lw $t9, 0x2c($sp) +/* 013EA8 700132A8 53200035 */ beql $t9, $zero, .L70013380 +/* 013EAC 700132AC 8FA2002C */ lw $v0, 0x2c($sp) +/* 013EB0 700132B0 1040002C */ beqz $v0, .L70013364 +/* 013EB4 700132B4 8F24000C */ lw $a0, 0xc($t9) +/* 013EB8 700132B8 24080200 */ li $t0, 512 +/* 013EBC 700132BC AF2800D8 */ sw $t0, 0xd8($t9) +/* 013EC0 700132C0 8FA9002C */ lw $t1, 0x2c($sp) +/* 013EC4 700132C4 8D2A0008 */ lw $t2, 8($t1) +/* 013EC8 700132C8 AD400008 */ sw $zero, 8($t2) +/* 013ECC 700132CC 0C003C34 */ jal __allocParam +/* 013ED0 700132D0 AFA40028 */ sw $a0, 0x28($sp) +/* 013ED4 700132D4 8FAB0030 */ lw $t3, 0x30($sp) +/* 013ED8 700132D8 8FA40028 */ lw $a0, 0x28($sp) +/* 013EDC 700132DC 240D000B */ li $t5, 11 +/* 013EE0 700132E0 8D6C001C */ lw $t4, 0x1c($t3) +/* 013EE4 700132E4 A44D0008 */ sh $t5, 8($v0) +/* 013EE8 700132E8 AC40000C */ sw $zero, 0xc($v0) +/* 013EEC 700132EC AC4C0004 */ sw $t4, 4($v0) +/* 013EF0 700132F0 8FAE002C */ lw $t6, 0x2c($sp) +/* 013EF4 700132F4 24050003 */ li $a1, 3 +/* 013EF8 700132F8 00403025 */ move $a2, $v0 +/* 013EFC 700132FC 8DCF00D8 */ lw $t7, 0xd8($t6) +/* 013F00 70013300 25F8FFC0 */ addiu $t8, $t7, -0x40 +/* 013F04 70013304 AC580010 */ sw $t8, 0x10($v0) +/* 013F08 70013308 8C990008 */ lw $t9, 8($a0) +/* 013F0C 7001330C 0320F809 */ jalr $t9 +/* 013F10 70013310 00000000 */ nop +/* 013F14 70013314 0C003C34 */ jal __allocParam +/* 013F18 70013318 00000000 */ nop +/* 013F1C 7001331C 8FA40028 */ lw $a0, 0x28($sp) +/* 013F20 70013320 10400012 */ beqz $v0, .L7001336C +/* 013F24 70013324 00403025 */ move $a2, $v0 +/* 013F28 70013328 8FA80030 */ lw $t0, 0x30($sp) +/* 013F2C 7001332C 8FAA002C */ lw $t2, 0x2c($sp) +/* 013F30 70013330 240D000F */ li $t5, 15 +/* 013F34 70013334 8D09001C */ lw $t1, 0x1c($t0) +/* 013F38 70013338 8D4B00D8 */ lw $t3, 0xd8($t2) +/* 013F3C 7001333C A44D0008 */ sh $t5, 8($v0) +/* 013F40 70013340 AC400000 */ sw $zero, ($v0) +/* 013F44 70013344 012B6021 */ addu $t4, $t1, $t3 +/* 013F48 70013348 AC4C0004 */ sw $t4, 4($v0) +/* 013F4C 7001334C 8C990008 */ lw $t9, 8($a0) +/* 013F50 70013350 24050003 */ li $a1, 3 +/* 013F54 70013354 0320F809 */ jalr $t9 +/* 013F58 70013358 00000000 */ nop +/* 013F5C 7001335C 10000004 */ b .L70013370 +/* 013F60 70013360 8FAF002C */ lw $t7, 0x2c($sp) +.L70013364: +/* 013F64 70013364 8FAE002C */ lw $t6, 0x2c($sp) +/* 013F68 70013368 ADC000D8 */ sw $zero, 0xd8($t6) +.L7001336C: +/* 013F6C 7001336C 8FAF002C */ lw $t7, 0x2c($sp) +.L70013370: +/* 013F70 70013370 ADF00008 */ sw $s0, 8($t7) +/* 013F74 70013374 8FB8002C */ lw $t8, 0x2c($sp) +/* 013F78 70013378 AE180008 */ sw $t8, 8($s0) +/* 013F7C 7001337C 8FA2002C */ lw $v0, 0x2c($sp) +.L70013380: +/* 013F80 70013380 8FBF001C */ lw $ra, 0x1c($sp) +/* 013F84 70013384 8FB00018 */ lw $s0, 0x18($sp) +/* 013F88 70013388 0002402B */ sltu $t0, $zero, $v0 +/* 013F8C 7001338C 01001025 */ move $v0, $t0 +/* 013F90 70013390 03E00008 */ jr $ra +/* 013F94 70013394 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/src/libultra/syndelete.s b/src/libultra/syndelete.s new file mode 100644 index 0000000..275755d --- /dev/null +++ b/src/libultra/syndelete.s @@ -0,0 +1,17 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alSynDelete +/* 019CE0 700190E0 03E00008 */ jr $ra +/* 019CE4 700190E4 AC800000 */ sw $zero, ($a0) + diff --git a/src/libultra/synfreevoice.s b/src/libultra/synfreevoice.s new file mode 100644 index 0000000..40b7d92 --- /dev/null +++ b/src/libultra/synfreevoice.s @@ -0,0 +1,58 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alSynFreeVoice +/* 014310 70013710 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 014314 70013714 AFBF0014 */ sw $ra, 0x14($sp) +/* 014318 70013718 8CA60008 */ lw $a2, 8($a1) +/* 01431C 7001371C 00804025 */ move $t0, $a0 +/* 014320 70013720 00A03825 */ move $a3, $a1 +/* 014324 70013724 50C00023 */ beql $a2, $zero, .L700137B4 +/* 014328 70013728 8FBF0014 */ lw $ra, 0x14($sp) +/* 01432C 7001372C 8CCE00D8 */ lw $t6, 0xd8($a2) +/* 014330 70013730 51C0001A */ beql $t6, $zero, .L7001379C +/* 014334 70013734 01002025 */ move $a0, $t0 +/* 014338 70013738 AFA5001C */ sw $a1, 0x1c($sp) +/* 01433C 7001373C 0C003C34 */ jal __allocParam +/* 014340 70013740 AFA40018 */ sw $a0, 0x18($sp) +/* 014344 70013744 8FA7001C */ lw $a3, 0x1c($sp) +/* 014348 70013748 8FA80018 */ lw $t0, 0x18($sp) +/* 01434C 7001374C 10400018 */ beqz $v0, .L700137B0 +/* 014350 70013750 00403025 */ move $a2, $v0 +/* 014354 70013754 8CF80008 */ lw $t8, 8($a3) +/* 014358 70013758 8D0F001C */ lw $t7, 0x1c($t0) +/* 01435C 7001375C 24050003 */ li $a1, 3 +/* 014360 70013760 8F1900D8 */ lw $t9, 0xd8($t8) +/* 014364 70013764 A4400008 */ sh $zero, 8($v0) +/* 014368 70013768 01F94821 */ addu $t1, $t7, $t9 +/* 01436C 7001376C AC490004 */ sw $t1, 4($v0) +/* 014370 70013770 8CEA0008 */ lw $t2, 8($a3) +/* 014374 70013774 AC4A000C */ sw $t2, 0xc($v0) +/* 014378 70013778 8CEB0008 */ lw $t3, 8($a3) +/* 01437C 7001377C 8D64000C */ lw $a0, 0xc($t3) +/* 014380 70013780 AFA7001C */ sw $a3, 0x1c($sp) +/* 014384 70013784 8C990008 */ lw $t9, 8($a0) +/* 014388 70013788 0320F809 */ jalr $t9 +/* 01438C 7001378C 00000000 */ nop +/* 014390 70013790 10000006 */ b .L700137AC +/* 014394 70013794 8FA7001C */ lw $a3, 0x1c($sp) +/* 014398 70013798 01002025 */ move $a0, $t0 +.L7001379C: +/* 01439C 7001379C 00C02825 */ move $a1, $a2 +/* 0143A0 700137A0 0C003C08 */ jal _freePVoice +/* 0143A4 700137A4 AFA7001C */ sw $a3, 0x1c($sp) +/* 0143A8 700137A8 8FA7001C */ lw $a3, 0x1c($sp) +.L700137AC: +/* 0143AC 700137AC ACE00008 */ sw $zero, 8($a3) +.L700137B0: +/* 0143B0 700137B0 8FBF0014 */ lw $ra, 0x14($sp) +.L700137B4: +/* 0143B4 700137B4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0143B8 700137B8 03E00008 */ jr $ra +/* 0143BC 700137BC 00000000 */ nop diff --git a/src/libultra/synsetfxmix.s b/src/libultra/synsetfxmix.s new file mode 100644 index 0000000..66b9f1b --- /dev/null +++ b/src/libultra/synsetfxmix.s @@ -0,0 +1,51 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alSynSetFXMix +/* 0141F0 700135F0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0141F4 700135F4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0141F8 700135F8 AFA40018 */ sw $a0, 0x18($sp) +/* 0141FC 700135FC AFA60020 */ sw $a2, 0x20($sp) +/* 014200 70013600 8CAE0008 */ lw $t6, 8($a1) +/* 014204 70013604 51C0001C */ beql $t6, $zero, .L70013678 +/* 014208 70013608 8FBF0014 */ lw $ra, 0x14($sp) +/* 01420C 7001360C 0C003C34 */ jal __allocParam +/* 014210 70013610 AFA5001C */ sw $a1, 0x1c($sp) +/* 014214 70013614 8FA7001C */ lw $a3, 0x1c($sp) +/* 014218 70013618 10400016 */ beqz $v0, .L70013674 +/* 01421C 7001361C 00403025 */ move $a2, $v0 +/* 014220 70013620 8FAF0018 */ lw $t7, 0x18($sp) +/* 014224 70013624 8CF90008 */ lw $t9, 8($a3) +/* 014228 70013628 240A0010 */ li $t2, 16 +/* 01422C 7001362C 8DF8001C */ lw $t8, 0x1c($t7) +/* 014230 70013630 8F2800D8 */ lw $t0, 0xd8($t9) +/* 014234 70013634 A44A0008 */ sh $t2, 8($v0) +/* 014238 70013638 03084821 */ addu $t1, $t8, $t0 +/* 01423C 7001363C AC490004 */ sw $t1, 4($v0) +/* 014240 70013640 93A30023 */ lbu $v1, 0x23($sp) +/* 014244 70013644 04610003 */ bgez $v1, .L70013654 +/* 014248 70013648 00035823 */ negu $t3, $v1 +/* 01424C 7001364C 10000002 */ b .L70013658 +/* 014250 70013650 AC4B000C */ sw $t3, 0xc($v0) +.L70013654: +/* 014254 70013654 AC43000C */ sw $v1, 0xc($v0) +.L70013658: +/* 014258 70013658 ACC00000 */ sw $zero, ($a2) +/* 01425C 7001365C 8CEC0008 */ lw $t4, 8($a3) +/* 014260 70013660 24050003 */ li $a1, 3 +/* 014264 70013664 8D84000C */ lw $a0, 0xc($t4) +/* 014268 70013668 8C990008 */ lw $t9, 8($a0) +/* 01426C 7001366C 0320F809 */ jalr $t9 +/* 014270 70013670 00000000 */ nop +.L70013674: +/* 014274 70013674 8FBF0014 */ lw $ra, 0x14($sp) +.L70013678: +/* 014278 70013678 27BD0018 */ addiu $sp, $sp, 0x18 +/* 01427C 7001367C 03E00008 */ jr $ra +/* 014280 70013680 00000000 */ nop diff --git a/src/libultra/synsetpan.s b/src/libultra/synsetpan.s new file mode 100644 index 0000000..11b2318 --- /dev/null +++ b/src/libultra/synsetpan.s @@ -0,0 +1,45 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alSynSetPan +/* 0140D0 700134D0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0140D4 700134D4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0140D8 700134D8 AFA40018 */ sw $a0, 0x18($sp) +/* 0140DC 700134DC AFA60020 */ sw $a2, 0x20($sp) +/* 0140E0 700134E0 8CAE0008 */ lw $t6, 8($a1) +/* 0140E4 700134E4 51C00018 */ beql $t6, $zero, .L70013548 +/* 0140E8 700134E8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0140EC 700134EC 0C003C34 */ jal __allocParam +/* 0140F0 700134F0 AFA5001C */ sw $a1, 0x1c($sp) +/* 0140F4 700134F4 8FA7001C */ lw $a3, 0x1c($sp) +/* 0140F8 700134F8 10400012 */ beqz $v0, .L70013544 +/* 0140FC 700134FC 00403025 */ move $a2, $v0 +/* 014100 70013500 8FAF0018 */ lw $t7, 0x18($sp) +/* 014104 70013504 8CF90008 */ lw $t9, 8($a3) +/* 014108 70013508 240A000C */ li $t2, 12 +/* 01410C 7001350C 8DF8001C */ lw $t8, 0x1c($t7) +/* 014110 70013510 8F2800D8 */ lw $t0, 0xd8($t9) +/* 014114 70013514 A44A0008 */ sh $t2, 8($v0) +/* 014118 70013518 24050003 */ li $a1, 3 +/* 01411C 7001351C 03084821 */ addu $t1, $t8, $t0 +/* 014120 70013520 AC490004 */ sw $t1, 4($v0) +/* 014124 70013524 93AB0023 */ lbu $t3, 0x23($sp) +/* 014128 70013528 AC400000 */ sw $zero, ($v0) +/* 01412C 7001352C AC4B000C */ sw $t3, 0xc($v0) +/* 014130 70013530 8CEC0008 */ lw $t4, 8($a3) +/* 014134 70013534 8D84000C */ lw $a0, 0xc($t4) +/* 014138 70013538 8C990008 */ lw $t9, 8($a0) +/* 01413C 7001353C 0320F809 */ jalr $t9 +/* 014140 70013540 00000000 */ nop +.L70013544: +/* 014144 70013544 8FBF0014 */ lw $ra, 0x14($sp) +.L70013548: +/* 014148 70013548 27BD0018 */ addiu $sp, $sp, 0x18 +/* 01414C 7001354C 03E00008 */ jr $ra +/* 014150 70013550 00000000 */ nop diff --git a/src/libultra/synsetpitch.s b/src/libultra/synsetpitch.s new file mode 100644 index 0000000..4c2a977 --- /dev/null +++ b/src/libultra/synsetpitch.s @@ -0,0 +1,45 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alSynSetPitch +/* 014160 70013560 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 014164 70013564 AFBF0014 */ sw $ra, 0x14($sp) +/* 014168 70013568 AFA40018 */ sw $a0, 0x18($sp) +/* 01416C 7001356C AFA60020 */ sw $a2, 0x20($sp) +/* 014170 70013570 8CAE0008 */ lw $t6, 8($a1) +/* 014174 70013574 51C00018 */ beql $t6, $zero, .L700135D8 +/* 014178 70013578 8FBF0014 */ lw $ra, 0x14($sp) +/* 01417C 7001357C 0C003C34 */ jal __allocParam +/* 014180 70013580 AFA5001C */ sw $a1, 0x1c($sp) +/* 014184 70013584 8FA7001C */ lw $a3, 0x1c($sp) +/* 014188 70013588 10400012 */ beqz $v0, .L700135D4 +/* 01418C 7001358C 00403025 */ move $a2, $v0 +/* 014190 70013590 8FAF0018 */ lw $t7, 0x18($sp) +/* 014194 70013594 8CF90008 */ lw $t9, 8($a3) +/* 014198 70013598 240A0007 */ li $t2, 7 +/* 01419C 7001359C 8DF8001C */ lw $t8, 0x1c($t7) +/* 0141A0 700135A0 8F2800D8 */ lw $t0, 0xd8($t9) +/* 0141A4 700135A4 A44A0008 */ sh $t2, 8($v0) +/* 0141A8 700135A8 24050003 */ li $a1, 3 +/* 0141AC 700135AC 03084821 */ addu $t1, $t8, $t0 +/* 0141B0 700135B0 AC490004 */ sw $t1, 4($v0) +/* 0141B4 700135B4 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0141B8 700135B8 AC400000 */ sw $zero, ($v0) +/* 0141BC 700135BC E444000C */ swc1 $f4, 0xc($v0) +/* 0141C0 700135C0 8CEB0008 */ lw $t3, 8($a3) +/* 0141C4 700135C4 8D64000C */ lw $a0, 0xc($t3) +/* 0141C8 700135C8 8C990008 */ lw $t9, 8($a0) +/* 0141CC 700135CC 0320F809 */ jalr $t9 +/* 0141D0 700135D0 00000000 */ nop +.L700135D4: +/* 0141D4 700135D4 8FBF0014 */ lw $ra, 0x14($sp) +.L700135D8: +/* 0141D8 700135D8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0141DC 700135DC 03E00008 */ jr $ra +/* 0141E0 700135E0 00000000 */ nop diff --git a/src/libultra/synsetpriority.s b/src/libultra/synsetpriority.s new file mode 100644 index 0000000..238dced --- /dev/null +++ b/src/libultra/synsetpriority.s @@ -0,0 +1,18 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alSynSetPriority +/* 021740 70020B40 AFA40000 */ sw $a0, ($sp) +/* 021744 70020B44 AFA60008 */ sw $a2, 8($sp) +/* 021748 70020B48 03E00008 */ jr $ra +/* 02174C 70020B4C A4A60016 */ sh $a2, 0x16($a1) diff --git a/src/libultra/synsetvol.s b/src/libultra/synsetvol.s new file mode 100644 index 0000000..2f53d51 --- /dev/null +++ b/src/libultra/synsetvol.s @@ -0,0 +1,51 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alSynSetVol +/* 013FA0 700133A0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 013FA4 700133A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 013FA8 700133A8 AFA50024 */ sw $a1, 0x24($sp) +/* 013FAC 700133AC AFA60028 */ sw $a2, 0x28($sp) +/* 013FB0 700133B0 AFA7002C */ sw $a3, 0x2c($sp) +/* 013FB4 700133B4 8CAF0008 */ lw $t7, 8($a1) +/* 013FB8 700133B8 51E0001D */ beql $t7, $zero, .L70013430 +/* 013FBC 700133BC 8FBF0014 */ lw $ra, 0x14($sp) +/* 013FC0 700133C0 0C003C34 */ jal __allocParam +/* 013FC4 700133C4 AFA40020 */ sw $a0, 0x20($sp) +/* 013FC8 700133C8 10400018 */ beqz $v0, .L7001342C +/* 013FCC 700133CC 8FA40020 */ lw $a0, 0x20($sp) +/* 013FD0 700133D0 8FB90024 */ lw $t9, 0x24($sp) +/* 013FD4 700133D4 8C98001C */ lw $t8, 0x1c($a0) +/* 013FD8 700133D8 240B000B */ li $t3, 11 +/* 013FDC 700133DC 8F280008 */ lw $t0, 8($t9) +/* 013FE0 700133E0 8D0900D8 */ lw $t1, 0xd8($t0) +/* 013FE4 700133E4 A44B0008 */ sh $t3, 8($v0) +/* 013FE8 700133E8 03095021 */ addu $t2, $t8, $t1 +/* 013FEC 700133EC AC4A0004 */ sw $t2, 4($v0) +/* 013FF0 700133F0 87AC002A */ lh $t4, 0x2a($sp) +/* 013FF4 700133F4 AC4C000C */ sw $t4, 0xc($v0) +/* 013FF8 700133F8 AFA2001C */ sw $v0, 0x1c($sp) +/* 013FFC 700133FC 0C003BF2 */ jal _timeToSamples +/* 014000 70013400 8FA5002C */ lw $a1, 0x2c($sp) +/* 014004 70013404 8FA6001C */ lw $a2, 0x1c($sp) +/* 014008 70013408 24050003 */ li $a1, 3 +/* 01400C 7001340C ACC20010 */ sw $v0, 0x10($a2) +/* 014010 70013410 ACC00000 */ sw $zero, ($a2) +/* 014014 70013414 8FAD0024 */ lw $t5, 0x24($sp) +/* 014018 70013418 8DAE0008 */ lw $t6, 8($t5) +/* 01401C 7001341C 8DC4000C */ lw $a0, 0xc($t6) +/* 014020 70013420 8C990008 */ lw $t9, 8($a0) +/* 014024 70013424 0320F809 */ jalr $t9 +/* 014028 70013428 00000000 */ nop +.L7001342C: +/* 01402C 7001342C 8FBF0014 */ lw $ra, 0x14($sp) +.L70013430: +/* 014030 70013430 27BD0020 */ addiu $sp, $sp, 0x20 +/* 014034 70013434 03E00008 */ jr $ra +/* 014038 70013438 00000000 */ nop diff --git a/src/libultra/synstartvoice.s b/src/libultra/synstartvoice.s new file mode 100644 index 0000000..9922f3b --- /dev/null +++ b/src/libultra/synstartvoice.s @@ -0,0 +1,47 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alSynStartVoice +/* 014040 70013440 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 014044 70013444 AFBF0014 */ sw $ra, 0x14($sp) +/* 014048 70013448 AFA40018 */ sw $a0, 0x18($sp) +/* 01404C 7001344C AFA60020 */ sw $a2, 0x20($sp) +/* 014050 70013450 8CAE0008 */ lw $t6, 8($a1) +/* 014054 70013454 51C0001A */ beql $t6, $zero, .L700134C0 +/* 014058 70013458 8FBF0014 */ lw $ra, 0x14($sp) +/* 01405C 7001345C 0C003C34 */ jal __allocParam +/* 014060 70013460 AFA5001C */ sw $a1, 0x1c($sp) +/* 014064 70013464 8FA7001C */ lw $a3, 0x1c($sp) +/* 014068 70013468 10400014 */ beqz $v0, .L700134BC +/* 01406C 7001346C 00403025 */ move $a2, $v0 +/* 014070 70013470 8FAF0018 */ lw $t7, 0x18($sp) +/* 014074 70013474 8CF90008 */ lw $t9, 8($a3) +/* 014078 70013478 240A000E */ li $t2, 14 +/* 01407C 7001347C 8DF8001C */ lw $t8, 0x1c($t7) +/* 014080 70013480 8F2800D8 */ lw $t0, 0xd8($t9) +/* 014084 70013484 A44A0008 */ sh $t2, 8($v0) +/* 014088 70013488 24050003 */ li $a1, 3 +/* 01408C 7001348C 03084821 */ addu $t1, $t8, $t0 +/* 014090 70013490 AC490004 */ sw $t1, 4($v0) +/* 014094 70013494 8FAB0020 */ lw $t3, 0x20($sp) +/* 014098 70013498 AC400000 */ sw $zero, ($v0) +/* 01409C 7001349C AC4B000C */ sw $t3, 0xc($v0) +/* 0140A0 700134A0 84EC001A */ lh $t4, 0x1a($a3) +/* 0140A4 700134A4 A44C000A */ sh $t4, 0xa($v0) +/* 0140A8 700134A8 8CED0008 */ lw $t5, 8($a3) +/* 0140AC 700134AC 8DA4000C */ lw $a0, 0xc($t5) +/* 0140B0 700134B0 8C990008 */ lw $t9, 8($a0) +/* 0140B4 700134B4 0320F809 */ jalr $t9 +/* 0140B8 700134B8 00000000 */ nop +.L700134BC: +/* 0140BC 700134BC 8FBF0014 */ lw $ra, 0x14($sp) +.L700134C0: +/* 0140C0 700134C0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0140C4 700134C4 03E00008 */ jr $ra +/* 0140C8 700134C8 00000000 */ nop diff --git a/src/libultra/synstartvoiceparam.s b/src/libultra/synstartvoiceparam.s new file mode 100644 index 0000000..94461d4 --- /dev/null +++ b/src/libultra/synstartvoiceparam.s @@ -0,0 +1,75 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel alSynStartVoiceParams +/* 01E1A0 7001D5A0 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 01E1A4 7001D5A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 01E1A8 7001D5A8 AFA50024 */ sw $a1, 0x24($sp) +/* 01E1AC 7001D5AC AFA60028 */ sw $a2, 0x28($sp) +/* 01E1B0 7001D5B0 AFA7002C */ sw $a3, 0x2c($sp) +/* 01E1B4 7001D5B4 8CAE0008 */ lw $t6, 8($a1) +/* 01E1B8 7001D5B8 51C0002F */ beql $t6, $zero, .L7001D678 +/* 01E1BC 7001D5BC 8FBF0014 */ lw $ra, 0x14($sp) +/* 01E1C0 7001D5C0 AFA40020 */ sw $a0, 0x20($sp) +/* 01E1C4 7001D5C4 0C003C34 */ jal __allocParam +/* 01E1C8 7001D5C8 AFA50024 */ sw $a1, 0x24($sp) +/* 01E1CC 7001D5CC 8FA40020 */ lw $a0, 0x20($sp) +/* 01E1D0 7001D5D0 8FA70024 */ lw $a3, 0x24($sp) +/* 01E1D4 7001D5D4 10400027 */ beqz $v0, .L7001D674 +/* 01E1D8 7001D5D8 00403025 */ move $a2, $v0 +/* 01E1DC 7001D5DC 93A3003B */ lbu $v1, 0x3b($sp) +/* 01E1E0 7001D5E0 04610004 */ bgez $v1, .L7001D5F4 +/* 01E1E4 7001D5E4 00601025 */ move $v0, $v1 +/* 01E1E8 7001D5E8 00021823 */ negu $v1, $v0 +/* 01E1EC 7001D5EC 306F00FF */ andi $t7, $v1, 0xff +/* 01E1F0 7001D5F0 01E01825 */ move $v1, $t7 +.L7001D5F4: +/* 01E1F4 7001D5F4 8CF90008 */ lw $t9, 8($a3) +/* 01E1F8 7001D5F8 8C98001C */ lw $t8, 0x1c($a0) +/* 01E1FC 7001D5FC 240A000D */ li $t2, 13 +/* 01E200 7001D600 8F2800D8 */ lw $t0, 0xd8($t9) +/* 01E204 7001D604 ACC00000 */ sw $zero, ($a2) +/* 01E208 7001D608 A4CA0008 */ sh $t2, 8($a2) +/* 01E20C 7001D60C 03084821 */ addu $t1, $t8, $t0 +/* 01E210 7001D610 ACC90004 */ sw $t1, 4($a2) +/* 01E214 7001D614 84EB001A */ lh $t3, 0x1a($a3) +/* 01E218 7001D618 A4CB000A */ sh $t3, 0xa($a2) +/* 01E21C 7001D61C 93AC0037 */ lbu $t4, 0x37($sp) +/* 01E220 7001D620 A0CC0012 */ sb $t4, 0x12($a2) +/* 01E224 7001D624 87AD0032 */ lh $t5, 0x32($sp) +/* 01E228 7001D628 A0C30013 */ sb $v1, 0x13($a2) +/* 01E22C 7001D62C A4CD0010 */ sh $t5, 0x10($a2) +/* 01E230 7001D630 C7A4002C */ lwc1 $f4, 0x2c($sp) +/* 01E234 7001D634 E4C4000C */ swc1 $f4, 0xc($a2) +/* 01E238 7001D638 AFA70024 */ sw $a3, 0x24($sp) +/* 01E23C 7001D63C AFA6001C */ sw $a2, 0x1c($sp) +/* 01E240 7001D640 0C003BF2 */ jal _timeToSamples +/* 01E244 7001D644 8FA5003C */ lw $a1, 0x3c($sp) +/* 01E248 7001D648 8FA6001C */ lw $a2, 0x1c($sp) +/* 01E24C 7001D64C 8FA70024 */ lw $a3, 0x24($sp) +/* 01E250 7001D650 24050003 */ li $a1, 3 +/* 01E254 7001D654 ACC20014 */ sw $v0, 0x14($a2) +/* 01E258 7001D658 8FAE0028 */ lw $t6, 0x28($sp) +/* 01E25C 7001D65C ACCE0018 */ sw $t6, 0x18($a2) +/* 01E260 7001D660 8CEF0008 */ lw $t7, 8($a3) +/* 01E264 7001D664 8DE4000C */ lw $a0, 0xc($t7) +/* 01E268 7001D668 8C990008 */ lw $t9, 8($a0) +/* 01E26C 7001D66C 0320F809 */ jalr $t9 +/* 01E270 7001D670 00000000 */ nop +.L7001D674: +/* 01E274 7001D674 8FBF0014 */ lw $ra, 0x14($sp) +.L7001D678: +/* 01E278 7001D678 27BD0020 */ addiu $sp, $sp, 0x20 +/* 01E27C 7001D67C 03E00008 */ jr $ra +/* 01E280 7001D680 00000000 */ nop + diff --git a/src/libultra/synstopvoice.s b/src/libultra/synstopvoice.s new file mode 100644 index 0000000..f0e8d19 --- /dev/null +++ b/src/libultra/synstopvoice.s @@ -0,0 +1,42 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel alSynStopVoice +/* 014290 70013690 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 014294 70013694 AFBF0014 */ sw $ra, 0x14($sp) +/* 014298 70013698 AFA40018 */ sw $a0, 0x18($sp) +/* 01429C 7001369C 8CAE0008 */ lw $t6, 8($a1) +/* 0142A0 700136A0 51C00016 */ beql $t6, $zero, .L700136FC +/* 0142A4 700136A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0142A8 700136A8 0C003C34 */ jal __allocParam +/* 0142AC 700136AC AFA5001C */ sw $a1, 0x1c($sp) +/* 0142B0 700136B0 8FA7001C */ lw $a3, 0x1c($sp) +/* 0142B4 700136B4 10400010 */ beqz $v0, .L700136F8 +/* 0142B8 700136B8 00403025 */ move $a2, $v0 +/* 0142BC 700136BC 8FAF0018 */ lw $t7, 0x18($sp) +/* 0142C0 700136C0 8CF90008 */ lw $t9, 8($a3) +/* 0142C4 700136C4 240A000F */ li $t2, 15 +/* 0142C8 700136C8 8DF8001C */ lw $t8, 0x1c($t7) +/* 0142CC 700136CC 8F2800D8 */ lw $t0, 0xd8($t9) +/* 0142D0 700136D0 A44A0008 */ sh $t2, 8($v0) +/* 0142D4 700136D4 AC400000 */ sw $zero, ($v0) +/* 0142D8 700136D8 03084821 */ addu $t1, $t8, $t0 +/* 0142DC 700136DC AC490004 */ sw $t1, 4($v0) +/* 0142E0 700136E0 8CEB0008 */ lw $t3, 8($a3) +/* 0142E4 700136E4 24050003 */ li $a1, 3 +/* 0142E8 700136E8 8D64000C */ lw $a0, 0xc($t3) +/* 0142EC 700136EC 8C990008 */ lw $t9, 8($a0) +/* 0142F0 700136F0 0320F809 */ jalr $t9 +/* 0142F4 700136F4 00000000 */ nop +.L700136F8: +/* 0142F8 700136F8 8FBF0014 */ lw $ra, 0x14($sp) +.L700136FC: +/* 0142FC 700136FC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 014300 70013700 03E00008 */ jr $ra +/* 014304 70013704 00000000 */ nop diff --git a/src/libultra/synthesizer.s b/src/libultra/synthesizer.s new file mode 100644 index 0000000..ddce156 --- /dev/null +++ b/src/libultra/synthesizer.s @@ -0,0 +1,493 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +/* 00FBC0 7000EFC0 03E00008 */ jr $ra +/* 00FBC4 7000EFC4 00000000 */ nop + +glabel _timeToSamples +/* 00FBC8 7000EFC8 8C8E0044 */ lw $t6, 0x44($a0) +/* 00FBCC 7000EFCC 44852000 */ mtc1 $a1, $f4 +/* 00FBD0 7000EFD0 3C018003 */ lui $at, %hi(F64_80029420) +/* 00FBD4 7000EFD4 448E4000 */ mtc1 $t6, $f8 +/* 00FBD8 7000EFD8 468021A0 */ cvt.s.w $f6, $f4 +/* 00FBDC 7000EFDC D4249420 */ ldc1 $f4, %lo(F64_80029420)($at) +/* 00FBE0 7000EFE0 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 00FBE4 7000EFE4 44813800 */ mtc1 $at, $f7 +/* 00FBE8 7000EFE8 2401FFF0 */ li $at, -16 +/* 00FBEC 7000EFEC 468042A0 */ cvt.s.w $f10, $f8 +/* 00FBF0 7000EFF0 460A3402 */ mul.s $f16, $f6, $f10 +/* 00FBF4 7000EFF4 44803000 */ mtc1 $zero, $f6 +/* 00FBF8 7000EFF8 460084A1 */ cvt.d.s $f18, $f16 +/* 00FBFC 7000EFFC 46249203 */ div.d $f8, $f18, $f4 +/* 00FC00 7000F000 46264280 */ add.d $f10, $f8, $f6 +/* 00FC04 7000F004 46205020 */ cvt.s.d $f0, $f10 +/* 00FC08 7000F008 4600040D */ trunc.w.s $f16, $f0 +/* 00FC0C 7000F00C 44028000 */ mfc1 $v0, $f16 +/* 00FC10 7000F010 00000000 */ nop +/* 00FC14 7000F014 0041C024 */ and $t8, $v0, $at +/* 00FC18 7000F018 03E00008 */ jr $ra +/* 00FC1C 7000F01C 03001025 */ move $v0, $t8 + +glabel _freePVoice +/* 00FC20 7000F020 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00FC24 7000F024 AFBF0014 */ sw $ra, 0x14($sp) +/* 00FC28 7000F028 AFA40018 */ sw $a0, 0x18($sp) +/* 00FC2C 7000F02C AFA5001C */ sw $a1, 0x1c($sp) +/* 00FC30 7000F030 0C003AA4 */ jal alUnlink +/* 00FC34 7000F034 00A02025 */ move $a0, $a1 +/* 00FC38 7000F038 8FA50018 */ lw $a1, 0x18($sp) +/* 00FC3C 7000F03C 8FA4001C */ lw $a0, 0x1c($sp) +/* 00FC40 7000F040 0C003AB0 */ jal alLink +/* 00FC44 7000F044 24A50014 */ addiu $a1, $a1, 0x14 +/* 00FC48 7000F048 8FBF0014 */ lw $ra, 0x14($sp) +/* 00FC4C 7000F04C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00FC50 7000F050 03E00008 */ jr $ra +/* 00FC54 7000F054 00000000 */ nop + +glabel _collectPVoices +/* 00FC58 7000F058 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00FC5C 7000F05C AFBF0024 */ sw $ra, 0x24($sp) +/* 00FC60 7000F060 AFB20020 */ sw $s2, 0x20($sp) +/* 00FC64 7000F064 AFB1001C */ sw $s1, 0x1c($sp) +/* 00FC68 7000F068 AFB00018 */ sw $s0, 0x18($sp) +/* 00FC6C 7000F06C 8C900014 */ lw $s0, 0x14($a0) +/* 00FC70 7000F070 00808825 */ move $s1, $a0 +/* 00FC74 7000F074 24920004 */ addiu $s2, $a0, 4 +/* 00FC78 7000F078 5200000A */ beql $s0, $zero, .L7000F0A4 +/* 00FC7C 7000F07C 8FBF0024 */ lw $ra, 0x24($sp) +.L7000F080: +/* 00FC80 7000F080 0C003AA4 */ jal alUnlink +/* 00FC84 7000F084 02002025 */ move $a0, $s0 +/* 00FC88 7000F088 02002025 */ move $a0, $s0 +/* 00FC8C 7000F08C 0C003AB0 */ jal alLink +/* 00FC90 7000F090 02402825 */ move $a1, $s2 +/* 00FC94 7000F094 8E300014 */ lw $s0, 0x14($s1) +/* 00FC98 7000F098 1600FFF9 */ bnez $s0, .L7000F080 +/* 00FC9C 7000F09C 00000000 */ nop +/* 00FCA0 7000F0A0 8FBF0024 */ lw $ra, 0x24($sp) +.L7000F0A4: +/* 00FCA4 7000F0A4 8FB00018 */ lw $s0, 0x18($sp) +/* 00FCA8 7000F0A8 8FB1001C */ lw $s1, 0x1c($sp) +/* 00FCAC 7000F0AC 8FB20020 */ lw $s2, 0x20($sp) +/* 00FCB0 7000F0B0 03E00008 */ jr $ra +/* 00FCB4 7000F0B4 27BD0028 */ addiu $sp, $sp, 0x28 + +glabel __freeParam +/* 00FCB8 7000F0B8 3C028002 */ lui $v0, %hi(alGlobals) +/* 00FCBC 7000F0BC 8C4276E0 */ lw $v0, %lo(alGlobals)($v0) +/* 00FCC0 7000F0C0 8C4E002C */ lw $t6, 0x2c($v0) +/* 00FCC4 7000F0C4 AC8E0000 */ sw $t6, ($a0) +/* 00FCC8 7000F0C8 03E00008 */ jr $ra +/* 00FCCC 7000F0CC AC44002C */ sw $a0, 0x2c($v0) + +glabel __allocParam +/* 00FCD0 7000F0D0 3C028002 */ lui $v0, %hi(alGlobals) +/* 00FCD4 7000F0D4 8C4276E0 */ lw $v0, %lo(alGlobals)($v0) +/* 00FCD8 7000F0D8 00001825 */ move $v1, $zero +/* 00FCDC 7000F0DC 8C44002C */ lw $a0, 0x2c($v0) +/* 00FCE0 7000F0E0 10800005 */ beqz $a0, .L7000F0F8 +/* 00FCE4 7000F0E4 00000000 */ nop +/* 00FCE8 7000F0E8 8C8E0000 */ lw $t6, ($a0) +/* 00FCEC 7000F0EC 00801825 */ move $v1, $a0 +/* 00FCF0 7000F0F0 AC4E002C */ sw $t6, 0x2c($v0) +/* 00FCF4 7000F0F4 AC800000 */ sw $zero, ($a0) +.L7000F0F8: +/* 00FCF8 7000F0F8 03E00008 */ jr $ra +/* 00FCFC 7000F0FC 00601025 */ move $v0, $v1 + +/* 00FD00 7000F100 03E00008 */ jr $ra +/* 00FD04 7000F104 00000000 */ nop + +glabel alAudioFrame +/* 00FD08 7000F108 27BDFF48 */ addiu $sp, $sp, -0xb8 +/* 00FD0C 7000F10C AFB10030 */ sw $s1, 0x30($sp) +/* 00FD10 7000F110 3C118002 */ lui $s1, %hi(alGlobals) +/* 00FD14 7000F114 8E3176E0 */ lw $s1, %lo(alGlobals)($s1) +/* 00FD18 7000F118 AFBF004C */ sw $ra, 0x4c($sp) +/* 00FD1C 7000F11C AFB70048 */ sw $s7, 0x48($sp) +/* 00FD20 7000F120 AFB60044 */ sw $s6, 0x44($sp) +/* 00FD24 7000F124 AFB50040 */ sw $s5, 0x40($sp) +/* 00FD28 7000F128 AFB4003C */ sw $s4, 0x3c($sp) +/* 00FD2C 7000F12C AFB30038 */ sw $s3, 0x38($sp) +/* 00FD30 7000F130 AFB20034 */ sw $s2, 0x34($sp) +/* 00FD34 7000F134 AFB0002C */ sw $s0, 0x2c($sp) +/* 00FD38 7000F138 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 00FD3C 7000F13C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 00FD40 7000F140 AFA400B8 */ sw $a0, 0xb8($sp) +/* 00FD44 7000F144 AFA500BC */ sw $a1, 0xbc($sp) +/* 00FD48 7000F148 A7A000AA */ sh $zero, 0xaa($sp) +/* 00FD4C 7000F14C 8E2F0000 */ lw $t7, ($s1) +/* 00FD50 7000F150 00E09825 */ move $s3, $a3 +/* 00FD54 7000F154 0080A025 */ move $s4, $a0 +/* 00FD58 7000F158 15E00004 */ bnez $t7, .L7000F16C +/* 00FD5C 7000F15C 00C0A825 */ move $s5, $a2 +/* 00FD60 7000F160 ACA00000 */ sw $zero, ($a1) +/* 00FD64 7000F164 10000081 */ b .L7000F36C +/* 00FD68 7000F168 00801025 */ move $v0, $a0 +.L7000F16C: +/* 00FD6C 7000F16C AFA000B4 */ sw $zero, 0xb4($sp) +/* 00FD70 7000F170 8E220000 */ lw $v0, ($s1) +/* 00FD74 7000F174 3C037FFF */ lui $v1, (0x7FFFFFFF >> 16) # lui $v1, 0x7fff +/* 00FD78 7000F178 3463FFFF */ ori $v1, (0x7FFFFFFF & 0xFFFF) # ori $v1, $v1, 0xffff +/* 00FD7C 7000F17C 1040000E */ beqz $v0, .L7000F1B8 +/* 00FD80 7000F180 2412FFF0 */ li $s2, -16 +/* 00FD84 7000F184 8E240020 */ lw $a0, 0x20($s1) +/* 00FD88 7000F188 8C590010 */ lw $t9, 0x10($v0) +.L7000F18C: +/* 00FD8C 7000F18C 03244023 */ subu $t0, $t9, $a0 +/* 00FD90 7000F190 0103082A */ slt $at, $t0, $v1 +/* 00FD94 7000F194 50200006 */ beql $at, $zero, .L7000F1B0 +/* 00FD98 7000F198 8C420000 */ lw $v0, ($v0) +/* 00FD9C 7000F19C AFA200B4 */ sw $v0, 0xb4($sp) +/* 00FDA0 7000F1A0 8C490010 */ lw $t1, 0x10($v0) +/* 00FDA4 7000F1A4 8E240020 */ lw $a0, 0x20($s1) +/* 00FDA8 7000F1A8 01241823 */ subu $v1, $t1, $a0 +/* 00FDAC 7000F1AC 8C420000 */ lw $v0, ($v0) +.L7000F1B0: +/* 00FDB0 7000F1B0 5440FFF6 */ bnezl $v0, .L7000F18C +/* 00FDB4 7000F1B4 8C590010 */ lw $t9, 0x10($v0) +.L7000F1B8: +/* 00FDB8 7000F1B8 8FAA00B4 */ lw $t2, 0xb4($sp) +/* 00FDBC 7000F1BC 8E240020 */ lw $a0, 0x20($s1) +/* 00FDC0 7000F1C0 8D420010 */ lw $v0, 0x10($t2) +/* 00FDC4 7000F1C4 00445823 */ subu $t3, $v0, $a0 +/* 00FDC8 7000F1C8 0173082A */ slt $at, $t3, $s3 +/* 00FDCC 7000F1CC 10200038 */ beqz $at, .L7000F2B0 +/* 00FDD0 7000F1D0 AE22001C */ sw $v0, 0x1c($s1) +/* 00FDD4 7000F1D4 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 00FDD8 7000F1D8 4481B800 */ mtc1 $at, $f23 +/* 00FDDC 7000F1DC 3C018003 */ lui $at, %hi(F64_80029428) +/* 00FDE0 7000F1E0 4480B000 */ mtc1 $zero, $f22 +/* 00FDE4 7000F1E4 D4349428 */ ldc1 $f20, %lo(F64_80029428)($at) +.L7000F1E8: +/* 00FDE8 7000F1E8 8E2C001C */ lw $t4, 0x1c($s1) +/* 00FDEC 7000F1EC 3C107FFF */ lui $s0, (0x7FFFFFFF >> 16) # lui $s0, 0x7fff +/* 00FDF0 7000F1F0 3610FFFF */ ori $s0, (0x7FFFFFFF & 0xFFFF) # ori $s0, $s0, 0xffff +/* 00FDF4 7000F1F4 01926824 */ and $t5, $t4, $s2 +/* 00FDF8 7000F1F8 AE2D001C */ sw $t5, 0x1c($s1) +/* 00FDFC 7000F1FC 8FA400B4 */ lw $a0, 0xb4($sp) +/* 00FE00 7000F200 8C990008 */ lw $t9, 8($a0) +/* 00FE04 7000F204 0320F809 */ jalr $t9 +/* 00FE08 7000F208 00000000 */ nop +/* 00FE0C 7000F20C 8E380044 */ lw $t8, 0x44($s1) +/* 00FE10 7000F210 44822000 */ mtc1 $v0, $f4 +/* 00FE14 7000F214 8FA800B4 */ lw $t0, 0xb4($sp) +/* 00FE18 7000F218 44984000 */ mtc1 $t8, $f8 +/* 00FE1C 7000F21C 468021A0 */ cvt.s.w $f6, $f4 +/* 00FE20 7000F220 8D090010 */ lw $t1, 0x10($t0) +/* 00FE24 7000F224 468042A0 */ cvt.s.w $f10, $f8 +/* 00FE28 7000F228 460A3402 */ mul.s $f16, $f6, $f10 +/* 00FE2C 7000F22C 460084A1 */ cvt.d.s $f18, $f16 +/* 00FE30 7000F230 46349103 */ div.d $f4, $f18, $f20 +/* 00FE34 7000F234 46362200 */ add.d $f8, $f4, $f22 +/* 00FE38 7000F238 46204020 */ cvt.s.d $f0, $f8 +/* 00FE3C 7000F23C 4600018D */ trunc.w.s $f6, $f0 +/* 00FE40 7000F240 44023000 */ mfc1 $v0, $f6 +/* 00FE44 7000F244 00000000 */ nop +/* 00FE48 7000F248 01225021 */ addu $t2, $t1, $v0 +/* 00FE4C 7000F24C AD0A0010 */ sw $t2, 0x10($t0) +/* 00FE50 7000F250 AFA000B4 */ sw $zero, 0xb4($sp) +/* 00FE54 7000F254 8E230000 */ lw $v1, ($s1) +/* 00FE58 7000F258 5060000F */ beql $v1, $zero, .L7000F298 +/* 00FE5C 7000F25C 8FAF00B4 */ lw $t7, 0xb4($sp) +/* 00FE60 7000F260 8E240020 */ lw $a0, 0x20($s1) +/* 00FE64 7000F264 8C6B0010 */ lw $t3, 0x10($v1) +.L7000F268: +/* 00FE68 7000F268 01646023 */ subu $t4, $t3, $a0 +/* 00FE6C 7000F26C 0190082A */ slt $at, $t4, $s0 +/* 00FE70 7000F270 50200006 */ beql $at, $zero, .L7000F28C +/* 00FE74 7000F274 8C630000 */ lw $v1, ($v1) +/* 00FE78 7000F278 AFA300B4 */ sw $v1, 0xb4($sp) +/* 00FE7C 7000F27C 8C6D0010 */ lw $t5, 0x10($v1) +/* 00FE80 7000F280 8E240020 */ lw $a0, 0x20($s1) +/* 00FE84 7000F284 01A48023 */ subu $s0, $t5, $a0 +/* 00FE88 7000F288 8C630000 */ lw $v1, ($v1) +.L7000F28C: +/* 00FE8C 7000F28C 5460FFF6 */ bnezl $v1, .L7000F268 +/* 00FE90 7000F290 8C6B0010 */ lw $t3, 0x10($v1) +/* 00FE94 7000F294 8FAF00B4 */ lw $t7, 0xb4($sp) +.L7000F298: +/* 00FE98 7000F298 8E240020 */ lw $a0, 0x20($s1) +/* 00FE9C 7000F29C 8DE20010 */ lw $v0, 0x10($t7) +/* 00FEA0 7000F2A0 0044C823 */ subu $t9, $v0, $a0 +/* 00FEA4 7000F2A4 0333082A */ slt $at, $t9, $s3 +/* 00FEA8 7000F2A8 1420FFCF */ bnez $at, .L7000F1E8 +/* 00FEAC 7000F2AC AE22001C */ sw $v0, 0x1c($s1) +.L7000F2B0: +/* 00FEB0 7000F2B0 8E38001C */ lw $t8, 0x1c($s1) +/* 00FEB4 7000F2B4 2412FFF0 */ li $s2, -16 +/* 00FEB8 7000F2B8 27B700AA */ addiu $s7, $sp, 0xaa +/* 00FEBC 7000F2BC 03127024 */ and $t6, $t8, $s2 +/* 00FEC0 7000F2C0 1A600022 */ blez $s3, .L7000F34C +/* 00FEC4 7000F2C4 AE2E001C */ sw $t6, 0x1c($s1) +/* 00FEC8 7000F2C8 3C160700 */ lui $s6, 0x700 +.L7000F2CC: +/* 00FECC 7000F2CC 8E220048 */ lw $v0, 0x48($s1) +/* 00FED0 7000F2D0 02608025 */ move $s0, $s3 +/* 00FED4 7000F2D4 0053082A */ slt $at, $v0, $s3 +/* 00FED8 7000F2D8 10200003 */ beqz $at, .L7000F2E8 +/* 00FEDC 7000F2DC 00000000 */ nop +/* 00FEE0 7000F2E0 10000001 */ b .L7000F2E8 +/* 00FEE4 7000F2E4 00408025 */ move $s0, $v0 +.L7000F2E8: +/* 00FEE8 7000F2E8 AE960000 */ sw $s6, ($s4) +/* 00FEEC 7000F2EC AE800004 */ sw $zero, 4($s4) +/* 00FEF0 7000F2F0 8E320038 */ lw $s2, 0x38($s1) +/* 00FEF4 7000F2F4 24050006 */ li $a1, 6 +/* 00FEF8 7000F2F8 02A03025 */ move $a2, $s5 +/* 00FEFC 7000F2FC 8E590008 */ lw $t9, 8($s2) +/* 00FF00 7000F300 02402025 */ move $a0, $s2 +/* 00FF04 7000F304 0320F809 */ jalr $t9 +/* 00FF08 7000F308 00000000 */ nop +/* 00FF0C 7000F30C 8E270020 */ lw $a3, 0x20($s1) +/* 00FF10 7000F310 26890008 */ addiu $t1, $s4, 8 +/* 00FF14 7000F314 AFA90010 */ sw $t1, 0x10($sp) +/* 00FF18 7000F318 8E590004 */ lw $t9, 4($s2) +/* 00FF1C 7000F31C 02402025 */ move $a0, $s2 +/* 00FF20 7000F320 02E02825 */ move $a1, $s7 +/* 00FF24 7000F324 0320F809 */ jalr $t9 +/* 00FF28 7000F328 02003025 */ move $a2, $s0 +/* 00FF2C 7000F32C 8E2B0020 */ lw $t3, 0x20($s1) +/* 00FF30 7000F330 02709823 */ subu $s3, $s3, $s0 +/* 00FF34 7000F334 00104080 */ sll $t0, $s0, 2 +/* 00FF38 7000F338 01706021 */ addu $t4, $t3, $s0 +/* 00FF3C 7000F33C 0040A025 */ move $s4, $v0 +/* 00FF40 7000F340 02A8A821 */ addu $s5, $s5, $t0 +/* 00FF44 7000F344 1E60FFE1 */ bgtz $s3, .L7000F2CC +/* 00FF48 7000F348 AE2C0020 */ sw $t4, 0x20($s1) +.L7000F34C: +/* 00FF4C 7000F34C 8FAD00B8 */ lw $t5, 0xb8($sp) +/* 00FF50 7000F350 8FAE00BC */ lw $t6, 0xbc($sp) +/* 00FF54 7000F354 02202025 */ move $a0, $s1 +/* 00FF58 7000F358 028D7823 */ subu $t7, $s4, $t5 +/* 00FF5C 7000F35C 000FC0C3 */ sra $t8, $t7, 3 +/* 00FF60 7000F360 0C003C16 */ jal _collectPVoices +/* 00FF64 7000F364 ADD80000 */ sw $t8, ($t6) +/* 00FF68 7000F368 02801025 */ move $v0, $s4 +.L7000F36C: +/* 00FF6C 7000F36C 8FBF004C */ lw $ra, 0x4c($sp) +/* 00FF70 7000F370 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 00FF74 7000F374 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 00FF78 7000F378 8FB0002C */ lw $s0, 0x2c($sp) +/* 00FF7C 7000F37C 8FB10030 */ lw $s1, 0x30($sp) +/* 00FF80 7000F380 8FB20034 */ lw $s2, 0x34($sp) +/* 00FF84 7000F384 8FB30038 */ lw $s3, 0x38($sp) +/* 00FF88 7000F388 8FB4003C */ lw $s4, 0x3c($sp) +/* 00FF8C 7000F38C 8FB50040 */ lw $s5, 0x40($sp) +/* 00FF90 7000F390 8FB60044 */ lw $s6, 0x44($sp) +/* 00FF94 7000F394 8FB70048 */ lw $s7, 0x48($sp) +/* 00FF98 7000F398 03E00008 */ jr $ra +/* 00FF9C 7000F39C 27BD00B8 */ addiu $sp, $sp, 0xb8 + +glabel alSynNew +/* 00FFA0 7000F3A0 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 00FFA4 7000F3A4 AFBF0044 */ sw $ra, 0x44($sp) +/* 00FFA8 7000F3A8 AFBE0040 */ sw $fp, 0x40($sp) +/* 00FFAC 7000F3AC AFB7003C */ sw $s7, 0x3c($sp) +/* 00FFB0 7000F3B0 AFB60038 */ sw $s6, 0x38($sp) +/* 00FFB4 7000F3B4 AFB50034 */ sw $s5, 0x34($sp) +/* 00FFB8 7000F3B8 AFB40030 */ sw $s4, 0x30($sp) +/* 00FFBC 7000F3BC AFB3002C */ sw $s3, 0x2c($sp) +/* 00FFC0 7000F3C0 AFB20028 */ sw $s2, 0x28($sp) +/* 00FFC4 7000F3C4 AFB10024 */ sw $s1, 0x24($sp) +/* 00FFC8 7000F3C8 AFB00020 */ sw $s0, 0x20($sp) +/* 00FFCC 7000F3CC 8CB70014 */ lw $s7, 0x14($a1) +/* 00FFD0 7000F3D0 AC800000 */ sw $zero, ($a0) +/* 00FFD4 7000F3D4 8CAE0004 */ lw $t6, 4($a1) +/* 00FFD8 7000F3D8 AC800020 */ sw $zero, 0x20($a0) +/* 00FFDC 7000F3DC AC80001C */ sw $zero, 0x1c($a0) +/* 00FFE0 7000F3E0 AC8E003C */ sw $t6, 0x3c($a0) +/* 00FFE4 7000F3E4 8CAF0018 */ lw $t7, 0x18($a1) +/* 00FFE8 7000F3E8 241800A0 */ li $t8, 160 +/* 00FFEC 7000F3EC AC980048 */ sw $t8, 0x48($a0) +/* 00FFF0 7000F3F0 AC8F0044 */ sw $t7, 0x44($a0) +/* 00FFF4 7000F3F4 8CB90010 */ lw $t9, 0x10($a1) +/* 00FFF8 7000F3F8 0080B025 */ move $s6, $a0 +/* 00FFFC 7000F3FC 00A0F025 */ move $fp, $a1 +/* 010000 7000F400 2408001C */ li $t0, 28 +/* 010004 7000F404 AC990024 */ sw $t9, 0x24($a0) +/* 010008 7000F408 AFA80010 */ sw $t0, 0x10($sp) +/* 01000C 7000F40C 00002025 */ move $a0, $zero +/* 010010 7000F410 00002825 */ move $a1, $zero +/* 010014 7000F414 24070001 */ li $a3, 1 +/* 010018 7000F418 0C003AD4 */ jal alHeapDBAlloc +/* 01001C 7000F41C 02E03025 */ move $a2, $s7 +/* 010020 7000F420 AFA2005C */ sw $v0, 0x5c($sp) +/* 010024 7000F424 0C006448 */ jal alSaveNew +/* 010028 7000F428 00402025 */ move $a0, $v0 +/* 01002C 7000F42C 8FA9005C */ lw $t1, 0x5c($sp) +/* 010030 7000F430 240A004C */ li $t2, 76 +/* 010034 7000F434 00002025 */ move $a0, $zero +/* 010038 7000F438 AEC90038 */ sw $t1, 0x38($s6) +/* 01003C 7000F43C AFAA0010 */ sw $t2, 0x10($sp) +/* 010040 7000F440 00002825 */ move $a1, $zero +/* 010044 7000F444 02E03025 */ move $a2, $s7 +/* 010048 7000F448 0C003AD4 */ jal alHeapDBAlloc +/* 01004C 7000F44C 24070001 */ li $a3, 1 +/* 010050 7000F450 240B0001 */ li $t3, 1 +/* 010054 7000F454 AEC20034 */ sw $v0, 0x34($s6) +/* 010058 7000F458 AECB0040 */ sw $t3, 0x40($s6) +/* 01005C 7000F45C 8FC70004 */ lw $a3, 4($fp) +/* 010060 7000F460 240C0004 */ li $t4, 4 +/* 010064 7000F464 AFAC0010 */ sw $t4, 0x10($sp) +/* 010068 7000F468 00002025 */ move $a0, $zero +/* 01006C 7000F46C 00002825 */ move $a1, $zero +/* 010070 7000F470 0C003AD4 */ jal alHeapDBAlloc +/* 010074 7000F474 02E03025 */ move $a2, $s7 +/* 010078 7000F478 8EC40034 */ lw $a0, 0x34($s6) +/* 01007C 7000F47C 00402825 */ move $a1, $v0 +/* 010080 7000F480 0C00646E */ jal alAuxBusNew +/* 010084 7000F484 8FC60004 */ lw $a2, 4($fp) +/* 010088 7000F488 240D0020 */ li $t5, 32 +/* 01008C 7000F48C AFAD0010 */ sw $t5, 0x10($sp) +/* 010090 7000F490 00002025 */ move $a0, $zero +/* 010094 7000F494 00002825 */ move $a1, $zero +/* 010098 7000F498 02E03025 */ move $a2, $s7 +/* 01009C 7000F49C 0C003AD4 */ jal alHeapDBAlloc +/* 0100A0 7000F4A0 24070001 */ li $a3, 1 +/* 0100A4 7000F4A4 AEC20030 */ sw $v0, 0x30($s6) +/* 0100A8 7000F4A8 8FC70004 */ lw $a3, 4($fp) +/* 0100AC 7000F4AC 240E0004 */ li $t6, 4 +/* 0100B0 7000F4B0 AFAE0010 */ sw $t6, 0x10($sp) +/* 0100B4 7000F4B4 00002025 */ move $a0, $zero +/* 0100B8 7000F4B8 00002825 */ move $a1, $zero +/* 0100BC 7000F4BC 0C003AD4 */ jal alHeapDBAlloc +/* 0100C0 7000F4C0 02E03025 */ move $a2, $s7 +/* 0100C4 7000F4C4 8EC40030 */ lw $a0, 0x30($s6) +/* 0100C8 7000F4C8 00402825 */ move $a1, $v0 +/* 0100CC 7000F4CC 0C006459 */ jal alMainBusNew +/* 0100D0 7000F4D0 8FC60004 */ lw $a2, 4($fp) +/* 0100D4 7000F4D4 93CF001C */ lbu $t7, 0x1c($fp) +/* 0100D8 7000F4D8 02C02025 */ move $a0, $s6 +/* 0100DC 7000F4DC 03C03025 */ move $a2, $fp +/* 0100E0 7000F4E0 11E00006 */ beqz $t7, .L7000F4FC +/* 0100E4 7000F4E4 24050002 */ li $a1, 2 +/* 0100E8 7000F4E8 00002825 */ move $a1, $zero +/* 0100EC 7000F4EC 0C006630 */ jal alSynAllocFX +/* 0100F0 7000F4F0 02E03825 */ move $a3, $s7 +/* 0100F4 7000F4F4 10000005 */ b .L7000F50C +/* 0100F8 7000F4F8 AEC00004 */ sw $zero, 4($s6) +.L7000F4FC: +/* 0100FC 7000F4FC 8EC40030 */ lw $a0, 0x30($s6) +/* 010100 7000F500 0C006658 */ jal alMainBusParam +/* 010104 7000F504 8EC60034 */ lw $a2, 0x34($s6) +/* 010108 7000F508 AEC00004 */ sw $zero, 4($s6) +.L7000F50C: +/* 01010C 7000F50C AEC00008 */ sw $zero, 8($s6) +/* 010110 7000F510 AEC00014 */ sw $zero, 0x14($s6) +/* 010114 7000F514 AEC00018 */ sw $zero, 0x18($s6) +/* 010118 7000F518 AEC0000C */ sw $zero, 0xc($s6) +/* 01011C 7000F51C AEC00010 */ sw $zero, 0x10($s6) +/* 010120 7000F520 8FC70004 */ lw $a3, 4($fp) +/* 010124 7000F524 241800DC */ li $t8, 220 +/* 010128 7000F528 AFB80010 */ sw $t8, 0x10($sp) +/* 01012C 7000F52C 00002025 */ move $a0, $zero +/* 010130 7000F530 00002825 */ move $a1, $zero +/* 010134 7000F534 0C003AD4 */ jal alHeapDBAlloc +/* 010138 7000F538 02E03025 */ move $a2, $s7 +/* 01013C 7000F53C 8FD90004 */ lw $t9, 4($fp) +/* 010140 7000F540 0000A025 */ move $s4, $zero +/* 010144 7000F544 00408025 */ move $s0, $v0 +/* 010148 7000F548 1B20002F */ blez $t9, .L7000F608 +/* 01014C 7000F54C 26C50004 */ addiu $a1, $s6, 4 +/* 010150 7000F550 2451008C */ addiu $s1, $v0, 0x8c +/* 010154 7000F554 24520058 */ addiu $s2, $v0, 0x58 +/* 010158 7000F558 24530010 */ addiu $s3, $v0, 0x10 +/* 01015C 7000F55C AFA50048 */ sw $a1, 0x48($sp) +.L7000F560: +/* 010160 7000F560 8FA50048 */ lw $a1, 0x48($sp) +/* 010164 7000F564 0200A825 */ move $s5, $s0 +/* 010168 7000F568 0C003AB0 */ jal alLink +/* 01016C 7000F56C 02002025 */ move $a0, $s0 +/* 010170 7000F570 AE000008 */ sw $zero, 8($s0) +/* 010174 7000F574 8EC50024 */ lw $a1, 0x24($s6) +/* 010178 7000F578 02602025 */ move $a0, $s3 +/* 01017C 7000F57C 0C0064A5 */ jal alLoadNew +/* 010180 7000F580 02E03025 */ move $a2, $s7 +/* 010184 7000F584 02602025 */ move $a0, $s3 +/* 010188 7000F588 24050001 */ li $a1, 1 +/* 01018C 7000F58C 0C0066AC */ jal alLoadParam +/* 010190 7000F590 00003025 */ move $a2, $zero +/* 010194 7000F594 02402025 */ move $a0, $s2 +/* 010198 7000F598 0C006483 */ jal alResampleNew +/* 01019C 7000F59C 02E02825 */ move $a1, $s7 +/* 0101A0 7000F5A0 02402025 */ move $a0, $s2 +/* 0101A4 7000F5A4 24050001 */ li $a1, 1 +/* 0101A8 7000F5A8 0C006980 */ jal alResampleParam +/* 0101AC 7000F5AC 02603025 */ move $a2, $s3 +/* 0101B0 7000F5B0 02202025 */ move $a0, $s1 +/* 0101B4 7000F5B4 0C0064CF */ jal alEnvmixerNew +/* 0101B8 7000F5B8 02E02825 */ move $a1, $s7 +/* 0101BC 7000F5BC 02202025 */ move $a0, $s1 +/* 0101C0 7000F5C0 24050001 */ li $a1, 1 +/* 0101C4 7000F5C4 0C006A85 */ jal alEnvmixerParam +/* 0101C8 7000F5C8 02403025 */ move $a2, $s2 +/* 0101CC 7000F5CC 8EC40034 */ lw $a0, 0x34($s6) +/* 0101D0 7000F5D0 24050002 */ li $a1, 2 +/* 0101D4 7000F5D4 0C006D38 */ jal alAuxBusParam +/* 0101D8 7000F5D8 02203025 */ move $a2, $s1 +/* 0101DC 7000F5DC 26A8008C */ addiu $t0, $s5, 0x8c +/* 0101E0 7000F5E0 AEA8000C */ sw $t0, 0xc($s5) +/* 0101E4 7000F5E4 8FC90004 */ lw $t1, 4($fp) +/* 0101E8 7000F5E8 26940001 */ addiu $s4, $s4, 1 +/* 0101EC 7000F5EC 261000DC */ addiu $s0, $s0, 0xdc +/* 0101F0 7000F5F0 0289082A */ slt $at, $s4, $t1 +/* 0101F4 7000F5F4 263100DC */ addiu $s1, $s1, 0xdc +/* 0101F8 7000F5F8 265200DC */ addiu $s2, $s2, 0xdc +/* 0101FC 7000F5FC 1420FFD8 */ bnez $at, .L7000F560 +/* 010200 7000F600 267300DC */ addiu $s3, $s3, 0xdc +/* 010204 7000F604 0000A025 */ move $s4, $zero +.L7000F608: +/* 010208 7000F608 8FA4005C */ lw $a0, 0x5c($sp) +/* 01020C 7000F60C 24050001 */ li $a1, 1 +/* 010210 7000F610 0C006D7C */ jal alSaveParam +/* 010214 7000F614 8EC60030 */ lw $a2, 0x30($s6) +/* 010218 7000F618 8FC70008 */ lw $a3, 8($fp) +/* 01021C 7000F61C 240A001C */ li $t2, 28 +/* 010220 7000F620 AFAA0010 */ sw $t2, 0x10($sp) +/* 010224 7000F624 00002025 */ move $a0, $zero +/* 010228 7000F628 00002825 */ move $a1, $zero +/* 01022C 7000F62C 0C003AD4 */ jal alHeapDBAlloc +/* 010230 7000F630 02E03025 */ move $a2, $s7 +/* 010234 7000F634 AEC0002C */ sw $zero, 0x2c($s6) +/* 010238 7000F638 8FCB0008 */ lw $t3, 8($fp) +/* 01023C 7000F63C 00401825 */ move $v1, $v0 +/* 010240 7000F640 5960000B */ blezl $t3, .L7000F670 +/* 010244 7000F644 AED70028 */ sw $s7, 0x28($s6) +/* 010248 7000F648 8ECC002C */ lw $t4, 0x2c($s6) +.L7000F64C: +/* 01024C 7000F64C 26940001 */ addiu $s4, $s4, 1 +/* 010250 7000F650 AC6C0000 */ sw $t4, ($v1) +/* 010254 7000F654 AEC3002C */ sw $v1, 0x2c($s6) +/* 010258 7000F658 8FCD0008 */ lw $t5, 8($fp) +/* 01025C 7000F65C 2463001C */ addiu $v1, $v1, 0x1c +/* 010260 7000F660 028D082A */ slt $at, $s4, $t5 +/* 010264 7000F664 5420FFF9 */ bnezl $at, .L7000F64C +/* 010268 7000F668 8ECC002C */ lw $t4, 0x2c($s6) +/* 01026C 7000F66C AED70028 */ sw $s7, 0x28($s6) +.L7000F670: +/* 010270 7000F670 8FBF0044 */ lw $ra, 0x44($sp) +/* 010274 7000F674 8FBE0040 */ lw $fp, 0x40($sp) +/* 010278 7000F678 8FB7003C */ lw $s7, 0x3c($sp) +/* 01027C 7000F67C 8FB60038 */ lw $s6, 0x38($sp) +/* 010280 7000F680 8FB50034 */ lw $s5, 0x34($sp) +/* 010284 7000F684 8FB40030 */ lw $s4, 0x30($sp) +/* 010288 7000F688 8FB3002C */ lw $s3, 0x2c($sp) +/* 01028C 7000F68C 8FB20028 */ lw $s2, 0x28($sp) +/* 010290 7000F690 8FB10024 */ lw $s1, 0x24($sp) +/* 010294 7000F694 8FB00020 */ lw $s0, 0x20($sp) +/* 010298 7000F698 03E00008 */ jr $ra +/* 01029C 7000F69C 27BD0078 */ addiu $sp, $sp, 0x78 + +.section .rodata +glabel F64_80029420 +.double 1000000.0 +glabel F64_80029428 +.double 1000000.0 diff --git a/src/libultra/thread.s b/src/libultra/thread.s new file mode 100644 index 0000000..5efe1de --- /dev/null +++ b/src/libultra/thread.s @@ -0,0 +1,41 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel __osDequeueThread +/* 011690 70010A90 00803025 */ move $a2, $a0 +/* 011694 70010A94 8CC70000 */ lw $a3, ($a2) +/* 011698 70010A98 27BDFFF8 */ addiu $sp, $sp, -8 +/* 01169C 70010A9C 10E0000A */ beqz $a3, .L70010AC8 +/* 0116A0 70010AA0 00000000 */ nop +.L70010AA4: +/* 0116A4 70010AA4 14E50004 */ bne $a3, $a1, .L70010AB8 +/* 0116A8 70010AA8 00000000 */ nop +/* 0116AC 70010AAC 8CAE0000 */ lw $t6, ($a1) +/* 0116B0 70010AB0 10000005 */ b .L70010AC8 +/* 0116B4 70010AB4 ACCE0000 */ sw $t6, ($a2) +.L70010AB8: +/* 0116B8 70010AB8 00E03025 */ move $a2, $a3 +/* 0116BC 70010ABC 8CC70000 */ lw $a3, ($a2) +/* 0116C0 70010AC0 14E0FFF8 */ bnez $a3, .L70010AA4 +/* 0116C4 70010AC4 00000000 */ nop +.L70010AC8: +/* 0116C8 70010AC8 03E00008 */ jr $ra +/* 0116CC 70010ACC 27BD0008 */ addiu $sp, $sp, 8 + +.section .data +glabel __osThreadTail +.word 0, 0xFFFFFFFF +glabel __osRunQueue + .word __osThreadTail +glabel __osActiveQueue +.word __osThreadTail +glabel __osRunningThread +.word 0 +glabel __osFaultedThread +.word 0 diff --git a/src/libultra/timerintr.s b/src/libultra/timerintr.s new file mode 100644 index 0000000..0a75a34 --- /dev/null +++ b/src/libultra/timerintr.s @@ -0,0 +1,334 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osTimerServicesInit +/* 019230 70018630 3C018007 */ lui $at, %hi(__osCurrentTime) +/* 019234 70018634 240E0000 */ li $t6, 0 +/* 019238 70018638 240F0000 */ li $t7, 0 +/* 01923C 7001863C AC2F8E14 */ sw $t7, %lo(__osCurrentTime+4)($at) +/* 019240 70018640 AC2E8E10 */ sw $t6, %lo(__osCurrentTime)($at) +/* 019244 70018644 3C018007 */ lui $at, %hi(__osBaseCounter) +/* 019248 70018648 3C188002 */ lui $t8, %hi(__osTimerList) +/* 01924C 7001864C 8F187FD0 */ lw $t8, %lo(__osTimerList)($t8) +/* 019250 70018650 AC208E18 */ sw $zero, %lo(__osBaseCounter)($at) +/* 019254 70018654 3C018007 */ lui $at, %hi(__osViIntrCount) +/* 019258 70018658 AC208E1C */ sw $zero, %lo(__osViIntrCount)($at) +/* 01925C 7001865C 3C198002 */ lui $t9, %hi(__osTimerList) +/* 019260 70018660 AF180004 */ sw $t8, 4($t8) +/* 019264 70018664 8F397FD0 */ lw $t9, %lo(__osTimerList)($t9) +/* 019268 70018668 3C098002 */ lui $t1, %hi(__osTimerList) +/* 01926C 7001866C 240A0000 */ li $t2, 0 +/* 019270 70018670 8F280004 */ lw $t0, 4($t9) +/* 019274 70018674 240B0000 */ li $t3, 0 +/* 019278 70018678 3C0C8002 */ lui $t4, %hi(__osTimerList) +/* 01927C 7001867C AF280000 */ sw $t0, ($t9) +/* 019280 70018680 8D297FD0 */ lw $t1, %lo(__osTimerList)($t1) +/* 019284 70018684 3C0D8002 */ lui $t5, %hi(__osTimerList) +/* 019288 70018688 3C188002 */ lui $t8, %hi(__osTimerList) +/* 01928C 7001868C AD2A0010 */ sw $t2, 0x10($t1) +/* 019290 70018690 AD2B0014 */ sw $t3, 0x14($t1) +/* 019294 70018694 8D8C7FD0 */ lw $t4, %lo(__osTimerList)($t4) +/* 019298 70018698 8D8E0010 */ lw $t6, 0x10($t4) +/* 01929C 7001869C 8D8F0014 */ lw $t7, 0x14($t4) +/* 0192A0 700186A0 AD8E0008 */ sw $t6, 8($t4) +/* 0192A4 700186A4 AD8F000C */ sw $t7, 0xc($t4) +/* 0192A8 700186A8 8DAD7FD0 */ lw $t5, %lo(__osTimerList)($t5) +/* 0192AC 700186AC ADA00018 */ sw $zero, 0x18($t5) +/* 0192B0 700186B0 8F187FD0 */ lw $t8, %lo(__osTimerList)($t8) +/* 0192B4 700186B4 03E00008 */ jr $ra +/* 0192B8 700186B8 AF00001C */ sw $zero, 0x1c($t8) + +glabel __osTimerInterrupt +/* 0192BC 700186BC 3C0E8002 */ lui $t6, %hi(__osTimerList) +/* 0192C0 700186C0 8DCE7FD0 */ lw $t6, %lo(__osTimerList)($t6) +/* 0192C4 700186C4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0192C8 700186C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0192CC 700186CC 8DCF0000 */ lw $t7, ($t6) +/* 0192D0 700186D0 11EE0054 */ beq $t7, $t6, .L70018824 +/* 0192D4 700186D4 00000000 */ nop +.L700186D8: +/* 0192D8 700186D8 3C188002 */ lui $t8, %hi(__osTimerList) +/* 0192DC 700186DC 8F187FD0 */ lw $t8, %lo(__osTimerList)($t8) +/* 0192E0 700186E0 8F190000 */ lw $t9, ($t8) +/* 0192E4 700186E4 17380006 */ bne $t9, $t8, .L70018700 +/* 0192E8 700186E8 AFB90024 */ sw $t9, 0x24($sp) +/* 0192EC 700186EC 0C007E38 */ jal __osSetCompare +/* 0192F0 700186F0 00002025 */ move $a0, $zero +/* 0192F4 700186F4 3C018007 */ lui $at, %hi(__osTimerCounter) +/* 0192F8 700186F8 1000004A */ b .L70018824 +/* 0192FC 700186FC AC208E20 */ sw $zero, %lo(__osTimerCounter)($at) +.L70018700: +/* 019300 70018700 0C003638 */ jal osGetCount +/* 019304 70018704 00000000 */ nop +/* 019308 70018708 AFA20020 */ sw $v0, 0x20($sp) +/* 01930C 7001870C 3C098007 */ lui $t1, %hi(__osTimerCounter) +/* 019310 70018710 8D298E20 */ lw $t1, %lo(__osTimerCounter)($t1) +/* 019314 70018714 8FA80020 */ lw $t0, 0x20($sp) +/* 019318 70018718 8FAF0024 */ lw $t7, 0x24($sp) +/* 01931C 7001871C 3C018007 */ lui $at, %hi(__osTimerCounter) +/* 019320 70018720 01095023 */ subu $t2, $t0, $t1 +/* 019324 70018724 AFAA001C */ sw $t2, 0x1c($sp) +/* 019328 70018728 AC288E20 */ sw $t0, %lo(__osTimerCounter)($at) +/* 01932C 7001872C 8DEE0010 */ lw $t6, 0x10($t7) +/* 019330 70018730 8FAB001C */ lw $t3, 0x1c($sp) +/* 019334 70018734 240C0000 */ li $t4, 0 +/* 019338 70018738 01E0C825 */ move $t9, $t7 +/* 01933C 7001873C 01CC082B */ sltu $at, $t6, $t4 +/* 019340 70018740 8DEF0014 */ lw $t7, 0x14($t7) +/* 019344 70018744 14200016 */ bnez $at, .L700187A0 +/* 019348 70018748 01606825 */ move $t5, $t3 +/* 01934C 7001874C 018E082B */ sltu $at, $t4, $t6 +/* 019350 70018750 14200003 */ bnez $at, .L70018760 +/* 019354 70018754 01AF082B */ sltu $at, $t5, $t7 +/* 019358 70018758 10200011 */ beqz $at, .L700187A0 +/* 01935C 7001875C 00000000 */ nop +.L70018760: +/* 019360 70018760 27380010 */ addiu $t8, $t9, 0x10 +/* 019364 70018764 AFB80018 */ sw $t8, 0x18($sp) +/* 019368 70018768 8F2B0014 */ lw $t3, 0x14($t9) +/* 01936C 7001876C 8F2A0010 */ lw $t2, 0x10($t9) +/* 019370 70018770 016D082B */ sltu $at, $t3, $t5 +/* 019374 70018774 014C4023 */ subu $t0, $t2, $t4 +/* 019378 70018778 01014023 */ subu $t0, $t0, $at +/* 01937C 7001877C 016D4823 */ subu $t1, $t3, $t5 +/* 019380 70018780 AF290014 */ sw $t1, 0x14($t9) +/* 019384 70018784 AF280010 */ sw $t0, 0x10($t9) +/* 019388 70018788 8FAE0024 */ lw $t6, 0x24($sp) +/* 01938C 7001878C 8DC40010 */ lw $a0, 0x10($t6) +/* 019390 70018790 0C00620D */ jal __osSetTimerIntr +/* 019394 70018794 8DC50014 */ lw $a1, 0x14($t6) +/* 019398 70018798 10000022 */ b .L70018824 +/* 01939C 7001879C 00000000 */ nop +.L700187A0: +/* 0193A0 700187A0 8FAF0024 */ lw $t7, 0x24($sp) +/* 0193A4 700187A4 8DF80000 */ lw $t8, ($t7) +/* 0193A8 700187A8 8DEA0004 */ lw $t2, 4($t7) +/* 0193AC 700187AC AD580000 */ sw $t8, ($t2) +/* 0193B0 700187B0 8FAB0024 */ lw $t3, 0x24($sp) +/* 0193B4 700187B4 8D6C0004 */ lw $t4, 4($t3) +/* 0193B8 700187B8 8D6D0000 */ lw $t5, ($t3) +/* 0193BC 700187BC ADAC0004 */ sw $t4, 4($t5) +/* 0193C0 700187C0 8FA80024 */ lw $t0, 0x24($sp) +/* 0193C4 700187C4 AD000000 */ sw $zero, ($t0) +/* 0193C8 700187C8 8FA90024 */ lw $t1, 0x24($sp) +/* 0193CC 700187CC AD200004 */ sw $zero, 4($t1) +/* 0193D0 700187D0 8FB90024 */ lw $t9, 0x24($sp) +/* 0193D4 700187D4 8F2E0018 */ lw $t6, 0x18($t9) +/* 0193D8 700187D8 11C00005 */ beqz $t6, .L700187F0 +/* 0193DC 700187DC 00000000 */ nop +/* 0193E0 700187E0 01C02025 */ move $a0, $t6 +/* 0193E4 700187E4 8F25001C */ lw $a1, 0x1c($t9) +/* 0193E8 700187E8 0C0037C4 */ jal osSendMesg +/* 0193EC 700187EC 00003025 */ move $a2, $zero +.L700187F0: +/* 0193F0 700187F0 8FAF0024 */ lw $t7, 0x24($sp) +/* 0193F4 700187F4 8DF80008 */ lw $t8, 8($t7) +/* 0193F8 700187F8 8DF9000C */ lw $t9, 0xc($t7) +/* 0193FC 700187FC 17000003 */ bnez $t8, .L7001880C +/* 019400 70018800 00000000 */ nop +/* 019404 70018804 1320FFB4 */ beqz $t9, .L700186D8 +/* 019408 70018808 00000000 */ nop +.L7001880C: +/* 01940C 7001880C ADF80010 */ sw $t8, 0x10($t7) +/* 019410 70018810 ADF90014 */ sw $t9, 0x14($t7) +/* 019414 70018814 0C00622A */ jal __osInsertTimer +/* 019418 70018818 8FA40024 */ lw $a0, 0x24($sp) +/* 01941C 7001881C 1000FFAE */ b .L700186D8 +/* 019420 70018820 00000000 */ nop +.L70018824: +/* 019424 70018824 8FBF0014 */ lw $ra, 0x14($sp) +/* 019428 70018828 27BD0028 */ addiu $sp, $sp, 0x28 +/* 01942C 7001882C 03E00008 */ jr $ra +/* 019430 70018830 00000000 */ nop + +glabel __osSetTimerIntr +/* 019434 70018834 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 019438 70018838 AFBF0014 */ sw $ra, 0x14($sp) +/* 01943C 7001883C AFA40028 */ sw $a0, 0x28($sp) +/* 019440 70018840 0C00617C */ jal __osDisableInt +/* 019444 70018844 AFA5002C */ sw $a1, 0x2c($sp) +/* 019448 70018848 0C003638 */ jal osGetCount +/* 01944C 7001884C AFA2001C */ sw $v0, 0x1c($sp) +/* 019450 70018850 3C018007 */ lui $at, %hi(__osTimerCounter) +/* 019454 70018854 AC228E20 */ sw $v0, %lo(__osTimerCounter)($at) +/* 019458 70018858 3C0E8007 */ lui $t6, %hi(__osTimerCounter) +/* 01945C 7001885C 8DCE8E20 */ lw $t6, %lo(__osTimerCounter)($t6) +/* 019460 70018860 8FA9002C */ lw $t1, 0x2c($sp) +/* 019464 70018864 8FA80028 */ lw $t0, 0x28($sp) +/* 019468 70018868 01C0C825 */ move $t9, $t6 +/* 01946C 7001886C 03295821 */ addu $t3, $t9, $t1 +/* 019470 70018870 24180000 */ li $t8, 0 +/* 019474 70018874 0169082B */ sltu $at, $t3, $t1 +/* 019478 70018878 00385021 */ addu $t2, $at, $t8 +/* 01947C 7001887C 01485021 */ addu $t2, $t2, $t0 +/* 019480 70018880 AFAA0020 */ sw $t2, 0x20($sp) +/* 019484 70018884 AFAB0024 */ sw $t3, 0x24($sp) +/* 019488 70018888 0C007E38 */ jal __osSetCompare +/* 01948C 7001888C 01602025 */ move $a0, $t3 +/* 019490 70018890 0C006184 */ jal __osRestoreInt +/* 019494 70018894 8FA4001C */ lw $a0, 0x1c($sp) +/* 019498 70018898 8FBF0014 */ lw $ra, 0x14($sp) +/* 01949C 7001889C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0194A0 700188A0 03E00008 */ jr $ra +/* 0194A4 700188A4 00000000 */ nop + +glabel __osInsertTimer +/* 0194A8 700188A8 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0194AC 700188AC AFBF0014 */ sw $ra, 0x14($sp) +/* 0194B0 700188B0 0C00617C */ jal __osDisableInt +/* 0194B4 700188B4 AFA40038 */ sw $a0, 0x38($sp) +/* 0194B8 700188B8 3C0E8002 */ lui $t6, %hi(__osTimerList) +/* 0194BC 700188BC 8DCE7FD0 */ lw $t6, %lo(__osTimerList)($t6) +/* 0194C0 700188C0 AFA20024 */ sw $v0, 0x24($sp) +/* 0194C4 700188C4 8FB80038 */ lw $t8, 0x38($sp) +/* 0194C8 700188C8 8DCF0000 */ lw $t7, ($t6) +/* 0194CC 700188CC AFAF0034 */ sw $t7, 0x34($sp) +/* 0194D0 700188D0 8F090014 */ lw $t1, 0x14($t8) +/* 0194D4 700188D4 8F080010 */ lw $t0, 0x10($t8) +/* 0194D8 700188D8 AFA9002C */ sw $t1, 0x2c($sp) +/* 0194DC 700188DC 11EE0029 */ beq $t7, $t6, .L70018984 +/* 0194E0 700188E0 AFA80028 */ sw $t0, 0x28($sp) +/* 0194E4 700188E4 8DEA0010 */ lw $t2, 0x10($t7) +/* 0194E8 700188E8 8DEB0014 */ lw $t3, 0x14($t7) +/* 0194EC 700188EC 010A082B */ sltu $at, $t0, $t2 +/* 0194F0 700188F0 14200024 */ bnez $at, .L70018984 +/* 0194F4 700188F4 0148082B */ sltu $at, $t2, $t0 +/* 0194F8 700188F8 14200003 */ bnez $at, .L70018908 +/* 0194FC 700188FC 0169082B */ sltu $at, $t3, $t1 +/* 019500 70018900 10200020 */ beqz $at, .L70018984 +/* 019504 70018904 00000000 */ nop +.L70018908: +/* 019508 70018908 27B90028 */ addiu $t9, $sp, 0x28 +/* 01950C 7001890C 8FB80034 */ lw $t8, 0x34($sp) +/* 019510 70018910 AFB90020 */ sw $t9, 0x20($sp) +/* 019514 70018914 8F2D0004 */ lw $t5, 4($t9) +/* 019518 70018918 8F2C0000 */ lw $t4, ($t9) +/* 01951C 7001891C 8F0F0014 */ lw $t7, 0x14($t8) +/* 019520 70018920 8F0E0010 */ lw $t6, 0x10($t8) +/* 019524 70018924 3C188002 */ lui $t8, %hi(__osTimerList) +/* 019528 70018928 01AF082B */ sltu $at, $t5, $t7 +/* 01952C 7001892C 018E4023 */ subu $t0, $t4, $t6 +/* 019530 70018930 01014023 */ subu $t0, $t0, $at +/* 019534 70018934 01AF4823 */ subu $t1, $t5, $t7 +/* 019538 70018938 AF290004 */ sw $t1, 4($t9) +/* 01953C 7001893C AF280000 */ sw $t0, ($t9) +/* 019540 70018940 8FAA0034 */ lw $t2, 0x34($sp) +/* 019544 70018944 8F187FD0 */ lw $t8, %lo(__osTimerList)($t8) +/* 019548 70018948 8D4B0000 */ lw $t3, ($t2) +/* 01954C 7001894C 1178000D */ beq $t3, $t8, .L70018984 +/* 019550 70018950 AFAB0034 */ sw $t3, 0x34($sp) +/* 019554 70018954 8FAC0028 */ lw $t4, 0x28($sp) +/* 019558 70018958 8D6E0010 */ lw $t6, 0x10($t3) +/* 01955C 7001895C 8FAD002C */ lw $t5, 0x2c($sp) +/* 019560 70018960 8D6F0014 */ lw $t7, 0x14($t3) +/* 019564 70018964 01CC082B */ sltu $at, $t6, $t4 +/* 019568 70018968 1420FFE7 */ bnez $at, .L70018908 +/* 01956C 7001896C 00000000 */ nop +/* 019570 70018970 018E082B */ sltu $at, $t4, $t6 +/* 019574 70018974 14200003 */ bnez $at, .L70018984 +/* 019578 70018978 01ED082B */ sltu $at, $t7, $t5 +/* 01957C 7001897C 1420FFE2 */ bnez $at, .L70018908 +/* 019580 70018980 00000000 */ nop +.L70018984: +/* 019584 70018984 8FB90038 */ lw $t9, 0x38($sp) +/* 019588 70018988 8FA80028 */ lw $t0, 0x28($sp) +/* 01958C 7001898C 8FA9002C */ lw $t1, 0x2c($sp) +/* 019590 70018990 3C188002 */ lui $t8, %hi(__osTimerList) +/* 019594 70018994 AF280010 */ sw $t0, 0x10($t9) +/* 019598 70018998 AF290014 */ sw $t1, 0x14($t9) +/* 01959C 7001899C 8F187FD0 */ lw $t8, %lo(__osTimerList)($t8) +/* 0195A0 700189A0 8FAA0034 */ lw $t2, 0x34($sp) +/* 0195A4 700189A4 1158000D */ beq $t2, $t8, .L700189DC +/* 0195A8 700189A8 00000000 */ nop +/* 0195AC 700189AC 254B0010 */ addiu $t3, $t2, 0x10 +/* 0195B0 700189B0 AFAB001C */ sw $t3, 0x1c($sp) +/* 0195B4 700189B4 8D4D0014 */ lw $t5, 0x14($t2) +/* 0195B8 700189B8 8D4C0010 */ lw $t4, 0x10($t2) +/* 0195BC 700189BC 8FAE0028 */ lw $t6, 0x28($sp) +/* 0195C0 700189C0 8FAF002C */ lw $t7, 0x2c($sp) +/* 0195C4 700189C4 018E4023 */ subu $t0, $t4, $t6 +/* 0195C8 700189C8 01AF082B */ sltu $at, $t5, $t7 +/* 0195CC 700189CC 01014023 */ subu $t0, $t0, $at +/* 0195D0 700189D0 01AF4823 */ subu $t1, $t5, $t7 +/* 0195D4 700189D4 AD490014 */ sw $t1, 0x14($t2) +/* 0195D8 700189D8 AD480010 */ sw $t0, 0x10($t2) +.L700189DC: +/* 0195DC 700189DC 8FB90034 */ lw $t9, 0x34($sp) +/* 0195E0 700189E0 8FB80038 */ lw $t8, 0x38($sp) +/* 0195E4 700189E4 AF190000 */ sw $t9, ($t8) +/* 0195E8 700189E8 8FAB0034 */ lw $t3, 0x34($sp) +/* 0195EC 700189EC 8FAD0038 */ lw $t5, 0x38($sp) +/* 0195F0 700189F0 8D6C0004 */ lw $t4, 4($t3) +/* 0195F4 700189F4 ADAC0004 */ sw $t4, 4($t5) +/* 0195F8 700189F8 8FAF0034 */ lw $t7, 0x34($sp) +/* 0195FC 700189FC 8FAE0038 */ lw $t6, 0x38($sp) +/* 019600 70018A00 8DE80004 */ lw $t0, 4($t7) +/* 019604 70018A04 AD0E0000 */ sw $t6, ($t0) +/* 019608 70018A08 8FAA0034 */ lw $t2, 0x34($sp) +/* 01960C 70018A0C 8FA90038 */ lw $t1, 0x38($sp) +/* 019610 70018A10 AD490004 */ sw $t1, 4($t2) +/* 019614 70018A14 0C006184 */ jal __osRestoreInt +/* 019618 70018A18 8FA40024 */ lw $a0, 0x24($sp) +/* 01961C 70018A1C 8FBF0014 */ lw $ra, 0x14($sp) +/* 019620 70018A20 8FA20028 */ lw $v0, 0x28($sp) +/* 019624 70018A24 8FA3002C */ lw $v1, 0x2c($sp) +/* 019628 70018A28 03E00008 */ jr $ra +/* 01962C 70018A2C 27BD0038 */ addiu $sp, $sp, 0x38 + +.section .data +glabel __osTimerList +.word __osBaseTimer +.align 4 +.section .bss +glabel __osBaseTimer +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +glabel __osCurrentTime +.word 0,0 +glabel __osBaseCounter +.word 0 +glabel __osViIntrCount +.word 0 +glabel __osTimerCounter +.word 0 +.word 0,0,0 diff --git a/src/libultra/translate.s b/src/libultra/translate.s new file mode 100644 index 0000000..6679807 --- /dev/null +++ b/src/libultra/translate.s @@ -0,0 +1,56 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel guTranslateF +/* 0178D0 70016CD0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0178D4 70016CD4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0178D8 70016CD8 AFA5001C */ sw $a1, 0x1c($sp) +/* 0178DC 70016CDC AFA60020 */ sw $a2, 0x20($sp) +/* 0178E0 70016CE0 AFA70024 */ sw $a3, 0x24($sp) +/* 0178E4 70016CE4 0C004004 */ jal guMtxIdentF +/* 0178E8 70016CE8 AFA40018 */ sw $a0, 0x18($sp) +/* 0178EC 70016CEC 8FA40018 */ lw $a0, 0x18($sp) +/* 0178F0 70016CF0 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0178F4 70016CF4 E4840030 */ swc1 $f4, 0x30($a0) +/* 0178F8 70016CF8 C7A60020 */ lwc1 $f6, 0x20($sp) +/* 0178FC 70016CFC E4860034 */ swc1 $f6, 0x34($a0) +/* 017900 70016D00 C7A80024 */ lwc1 $f8, 0x24($sp) +/* 017904 70016D04 E4880038 */ swc1 $f8, 0x38($a0) +/* 017908 70016D08 8FBF0014 */ lw $ra, 0x14($sp) +/* 01790C 70016D0C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 017910 70016D10 03E00008 */ jr $ra +/* 017914 70016D14 00000000 */ nop + +glabel guTranslate +/* 017918 70016D18 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 01791C 70016D1C AFBF0014 */ sw $ra, 0x14($sp) +/* 017920 70016D20 AFA40068 */ sw $a0, 0x68($sp) +/* 017924 70016D24 AFA5006C */ sw $a1, 0x6c($sp) +/* 017928 70016D28 AFA60070 */ sw $a2, 0x70($sp) +/* 01792C 70016D2C AFA70074 */ sw $a3, 0x74($sp) +/* 017930 70016D30 0C004004 */ jal guMtxIdentF +/* 017934 70016D34 27A40028 */ addiu $a0, $sp, 0x28 +/* 017938 70016D38 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 01793C 70016D3C C7A60070 */ lwc1 $f6, 0x70($sp) +/* 017940 70016D40 C7A80074 */ lwc1 $f8, 0x74($sp) +/* 017944 70016D44 27A40028 */ addiu $a0, $sp, 0x28 +/* 017948 70016D48 8FA50068 */ lw $a1, 0x68($sp) +/* 01794C 70016D4C E7A40058 */ swc1 $f4, 0x58($sp) +/* 017950 70016D50 E7A6005C */ swc1 $f6, 0x5c($sp) +/* 017954 70016D54 0C003FC4 */ jal guMtxF2L +/* 017958 70016D58 E7A80060 */ swc1 $f8, 0x60($sp) +/* 01795C 70016D5C 8FBF0014 */ lw $ra, 0x14($sp) +/* 017960 70016D60 27BD0068 */ addiu $sp, $sp, 0x68 +/* 017964 70016D64 03E00008 */ jr $ra +/* 017968 70016D68 00000000 */ nop + diff --git a/src/libultra/ultra7001B830.s b/src/libultra/ultra7001B830.s new file mode 100644 index 0000000..de7c131 --- /dev/null +++ b/src/libultra/ultra7001B830.s @@ -0,0 +1,139 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + +#float cosf(float) +.section .text, "ax" +.section .text +glabel __cosf +/* 01C430 7001B830 E7AC0000 */ swc1 $f12, ($sp) +/* 01C434 7001B834 8FA20000 */ lw $v0, ($sp) +/* 01C438 7001B838 C7A60000 */ lwc1 $f6, ($sp) +/* 01C43C 7001B83C C7AA0000 */ lwc1 $f10, ($sp) +/* 01C440 7001B840 00027583 */ sra $t6, $v0, 0x16 +/* 01C444 7001B844 31CF01FF */ andi $t7, $t6, 0x1ff +/* 01C448 7001B848 29E10136 */ slti $at, $t7, 0x136 +/* 01C44C 7001B84C 50200049 */ beql $at, $zero, .L7001B974 +/* 01C450 7001B850 460A5032 */ c.eq.s $f10, $f10 +/* 01C454 7001B854 44802000 */ mtc1 $zero, $f4 +/* 01C458 7001B858 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 01C45C 7001B85C 44819800 */ mtc1 $at, $f19 +/* 01C460 7001B860 4606203C */ c.lt.s $f4, $f6 +/* 01C464 7001B864 C7A00000 */ lwc1 $f0, ($sp) +/* 01C468 7001B868 3C018003 */ lui $at, %hi(F64_800299D8) +/* 01C46C 7001B86C 45020004 */ bc1fl .L7001B880 +/* 01C470 7001B870 46000007 */ neg.s $f0, $f0 +/* 01C474 7001B874 10000002 */ b .L7001B880 +/* 01C478 7001B878 46003006 */ mov.s $f0, $f6 +/* 01C47C 7001B87C 46000007 */ neg.s $f0, $f0 +.L7001B880: +/* 01C480 7001B880 D42899D8 */ ldc1 $f8, %lo(F64_800299D8)($at) +/* 01C484 7001B884 46000321 */ cvt.d.s $f12, $f0 +/* 01C488 7001B888 44809000 */ mtc1 $zero, $f18 +/* 01C48C 7001B88C 46286282 */ mul.d $f10, $f12, $f8 +/* 01C490 7001B890 44802800 */ mtc1 $zero, $f5 +/* 01C494 7001B894 44802000 */ mtc1 $zero, $f4 +/* 01C498 7001B898 46325380 */ add.d $f14, $f10, $f18 +/* 01C49C 7001B89C 462E203E */ c.le.d $f4, $f14 +/* 01C4A0 7001B8A0 00000000 */ nop +/* 01C4A4 7001B8A4 45020007 */ bc1fl .L7001B8C4 +/* 01C4A8 7001B8A8 46327281 */ sub.d $f10, $f14, $f18 +/* 01C4AC 7001B8AC 46327180 */ add.d $f6, $f14, $f18 +/* 01C4B0 7001B8B0 4620320D */ trunc.w.d $f8, $f6 +/* 01C4B4 7001B8B4 44024000 */ mfc1 $v0, $f8 +/* 01C4B8 7001B8B8 10000006 */ b .L7001B8D4 +/* 01C4BC 7001B8BC 44823000 */ mtc1 $v0, $f6 +/* 01C4C0 7001B8C0 46327281 */ sub.d $f10, $f14, $f18 +.L7001B8C4: +/* 01C4C4 7001B8C4 4620510D */ trunc.w.d $f4, $f10 +/* 01C4C8 7001B8C8 44022000 */ mfc1 $v0, $f4 +/* 01C4CC 7001B8CC 00000000 */ nop +/* 01C4D0 7001B8D0 44823000 */ mtc1 $v0, $f6 +.L7001B8D4: +/* 01C4D4 7001B8D4 3C018003 */ lui $at, %hi(F64_800299E0) +/* 01C4D8 7001B8D8 D42A99E0 */ ldc1 $f10, %lo(F64_800299E0)($at) +/* 01C4DC 7001B8DC 46803221 */ cvt.d.w $f8, $f6 +/* 01C4E0 7001B8E0 3C018003 */ lui $at, %hi(F64_800299E8) +/* 01C4E4 7001B8E4 D42699E8 */ ldc1 $f6, %lo(F64_800299E8)($at) +/* 01C4E8 7001B8E8 3C038003 */ lui $v1, %hi(F64_800299B0) +/* 01C4EC 7001B8EC 246399B0 */ addiu $v1, %lo(F64_800299B0) # addiu $v1, $v1, -0x6650 +/* 01C4F0 7001B8F0 46324001 */ sub.d $f0, $f8, $f18 +/* 01C4F4 7001B8F4 30480001 */ andi $t0, $v0, 1 +/* 01C4F8 7001B8F8 462A0102 */ mul.d $f4, $f0, $f10 +/* 01C4FC 7001B8FC D46A0020 */ ldc1 $f10, 0x20($v1) +/* 01C500 7001B900 46260202 */ mul.d $f8, $f0, $f6 +/* 01C504 7001B904 D4660018 */ ldc1 $f6, 0x18($v1) +/* 01C508 7001B908 46246081 */ sub.d $f2, $f12, $f4 +/* 01C50C 7001B90C 46281081 */ sub.d $f2, $f2, $f8 +/* 01C510 7001B910 46221382 */ mul.d $f14, $f2, $f2 +/* 01C514 7001B914 00000000 */ nop +/* 01C518 7001B918 462E5102 */ mul.d $f4, $f10, $f14 +/* 01C51C 7001B91C 46262200 */ add.d $f8, $f4, $f6 +/* 01C520 7001B920 D4640010 */ ldc1 $f4, 0x10($v1) +/* 01C524 7001B924 462E4282 */ mul.d $f10, $f8, $f14 +/* 01C528 7001B928 46245180 */ add.d $f6, $f10, $f4 +/* 01C52C 7001B92C D46A0008 */ ldc1 $f10, 8($v1) +/* 01C530 7001B930 462E3202 */ mul.d $f8, $f6, $f14 +/* 01C534 7001B934 15000007 */ bnez $t0, .L7001B954 +/* 01C538 7001B938 46285400 */ add.d $f16, $f10, $f8 +/* 01C53C 7001B93C 462E1102 */ mul.d $f4, $f2, $f14 +/* 01C540 7001B940 00000000 */ nop +/* 01C544 7001B944 46302182 */ mul.d $f6, $f4, $f16 +/* 01C548 7001B948 46223280 */ add.d $f10, $f6, $f2 +/* 01C54C 7001B94C 03E00008 */ jr $ra +/* 01C550 7001B950 46205020 */ cvt.s.d $f0, $f10 + +.L7001B954: +/* 01C554 7001B954 462E1202 */ mul.d $f8, $f2, $f14 +/* 01C558 7001B958 00000000 */ nop +/* 01C55C 7001B95C 46304102 */ mul.d $f4, $f8, $f16 +/* 01C560 7001B960 46222180 */ add.d $f6, $f4, $f2 +/* 01C564 7001B964 46203020 */ cvt.s.d $f0, $f6 +/* 01C568 7001B968 03E00008 */ jr $ra +/* 01C56C 7001B96C 46000007 */ neg.s $f0, $f0 + +/* 01C570 7001B970 460A5032 */ c.eq.s $f10, $f10 +.L7001B974: +/* 01C574 7001B974 3C018003 */ lui $at, %hi(F64_800299F0) +/* 01C578 7001B978 45010004 */ bc1t .L7001B98C +/* 01C57C 7001B97C 00000000 */ nop +/* 01C580 7001B980 3C018003 */ lui $at, %hi(__libm_qnan_f) +/* 01C584 7001B984 03E00008 */ jr $ra +/* 01C588 7001B988 C4209D40 */ lwc1 $f0, %lo(__libm_qnan_f)($at) + +.L7001B98C: +/* 01C58C 7001B98C C42099F0 */ lwc1 $f0, %lo(F64_800299F0)($at) +/* 01C590 7001B990 03E00008 */ jr $ra +/* 01C594 7001B994 00000000 */ nop + +/* 01C598 7001B998 00000000 */ nop +/* 01C59C 7001B99C 00000000 */ nop + +.section .rodata +glabel F64_800299B0 +.double 1.0 +glabel F64_800299B8 +.word 0xbfc55554, 0xbc83656d #-0.16666659550427756 +glabel F64_800299C0 +.double 0.008333066246082155 +glabel F64_800299C8 +.double -0.0001980960290193795 +glabel F64_800299D0 +.double 0.000002605780637968037 +glabel F64_800299D8 +.double 0.3183098861837907 +glabel F64_800299E0 +.double 3.1415926218032837 +glabel F64_800299E8 +.double 3.178650954705639e-8 +glabel F64_800299F0 +.double 0.0 + .word 0 + .word 0 + diff --git a/src/libultra/ultra7001B9A0.s b/src/libultra/ultra7001B9A0.s new file mode 100644 index 0000000..54026b2 --- /dev/null +++ b/src/libultra/ultra7001B9A0.s @@ -0,0 +1,161 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __sinf +/* 01C5A0 7001B9A0 E7AC0000 */ swc1 $f12, ($sp) +/* 01C5A4 7001B9A4 8FA20000 */ lw $v0, ($sp) +/* 01C5A8 7001B9A8 C7A40000 */ lwc1 $f4, ($sp) +/* 01C5AC 7001B9AC 00021D83 */ sra $v1, $v0, 0x16 +/* 01C5B0 7001B9B0 306E01FF */ andi $t6, $v1, 0x1ff +/* 01C5B4 7001B9B4 29C100FF */ slti $at, $t6, 0xff +/* 01C5B8 7001B9B8 10200019 */ beqz $at, .L7001BA20 +/* 01C5BC 7001B9BC 01C01825 */ move $v1, $t6 +/* 01C5C0 7001B9C0 29C100E6 */ slti $at, $t6, 0xe6 +/* 01C5C4 7001B9C4 14200014 */ bnez $at, .L7001BA18 +/* 01C5C8 7001B9C8 460020A1 */ cvt.d.s $f2, $f4 +/* 01C5CC 7001B9CC 46221302 */ mul.d $f12, $f2, $f2 +/* 01C5D0 7001B9D0 3C038003 */ lui $v1, %hi(F64_80029A00) +/* 01C5D4 7001B9D4 24639A00 */ addiu $v1, %lo(F64_80029A00) # addiu $v1, $v1, -0x6600 +/* 01C5D8 7001B9D8 D4660020 */ ldc1 $f6, 0x20($v1) +/* 01C5DC 7001B9DC D46A0018 */ ldc1 $f10, 0x18($v1) +/* 01C5E0 7001B9E0 D4640010 */ ldc1 $f4, 0x10($v1) +/* 01C5E4 7001B9E4 462C3202 */ mul.d $f8, $f6, $f12 +/* 01C5E8 7001B9E8 462A4400 */ add.d $f16, $f8, $f10 +/* 01C5EC 7001B9EC D46A0008 */ ldc1 $f10, 8($v1) +/* 01C5F0 7001B9F0 462C8482 */ mul.d $f18, $f16, $f12 +/* 01C5F4 7001B9F4 46249180 */ add.d $f6, $f18, $f4 +/* 01C5F8 7001B9F8 462C3202 */ mul.d $f8, $f6, $f12 +/* 01C5FC 7001B9FC 46285380 */ add.d $f14, $f10, $f8 +/* 01C600 7001BA00 462C1402 */ mul.d $f16, $f2, $f12 +/* 01C604 7001BA04 00000000 */ nop +/* 01C608 7001BA08 462E8482 */ mul.d $f18, $f16, $f14 +/* 01C60C 7001BA0C 46229100 */ add.d $f4, $f18, $f2 +/* 01C610 7001BA10 03E00008 */ jr $ra +/* 01C614 7001BA14 46202020 */ cvt.s.d $f0, $f4 + +.L7001BA18: +/* 01C618 7001BA18 03E00008 */ jr $ra +/* 01C61C 7001BA1C C7A00000 */ lwc1 $f0, ($sp) + +.L7001BA20: +/* 01C620 7001BA20 28610136 */ slti $at, $v1, 0x136 +/* 01C624 7001BA24 10200044 */ beqz $at, .L7001BB38 +/* 01C628 7001BA28 C7A40000 */ lwc1 $f4, ($sp) +/* 01C62C 7001BA2C C7A60000 */ lwc1 $f6, ($sp) +/* 01C630 7001BA30 3C018003 */ lui $at, %hi(F64_80029A28) +/* 01C634 7001BA34 D42A9A28 */ ldc1 $f10, %lo(F64_80029A28)($at) +/* 01C638 7001BA38 460030A1 */ cvt.d.s $f2, $f6 +/* 01C63C 7001BA3C 44804800 */ mtc1 $zero, $f9 +/* 01C640 7001BA40 462A1002 */ mul.d $f0, $f2, $f10 +/* 01C644 7001BA44 44804000 */ mtc1 $zero, $f8 +/* 01C648 7001BA48 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 01C64C 7001BA4C 4620403E */ c.le.d $f8, $f0 +/* 01C650 7001BA50 00000000 */ nop +/* 01C654 7001BA54 4502000B */ bc1fl .L7001BA84 +/* 01C658 7001BA58 44813800 */ mtc1 $at, $f7 +/* 01C65C 7001BA5C 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 01C660 7001BA60 44818800 */ mtc1 $at, $f17 +/* 01C664 7001BA64 44808000 */ mtc1 $zero, $f16 +/* 01C668 7001BA68 00000000 */ nop +/* 01C66C 7001BA6C 46300480 */ add.d $f18, $f0, $f16 +/* 01C670 7001BA70 4620910D */ trunc.w.d $f4, $f18 +/* 01C674 7001BA74 44022000 */ mfc1 $v0, $f4 +/* 01C678 7001BA78 10000009 */ b .L7001BAA0 +/* 01C67C 7001BA7C 44828000 */ mtc1 $v0, $f16 +/* 01C680 7001BA80 44813800 */ mtc1 $at, $f7 +.L7001BA84: +/* 01C684 7001BA84 44803000 */ mtc1 $zero, $f6 +/* 01C688 7001BA88 00000000 */ nop +/* 01C68C 7001BA8C 46260281 */ sub.d $f10, $f0, $f6 +/* 01C690 7001BA90 4620520D */ trunc.w.d $f8, $f10 +/* 01C694 7001BA94 44024000 */ mfc1 $v0, $f8 +/* 01C698 7001BA98 00000000 */ nop +/* 01C69C 7001BA9C 44828000 */ mtc1 $v0, $f16 +.L7001BAA0: +/* 01C6A0 7001BAA0 3C018003 */ lui $at, %hi(F64_80029A30) +/* 01C6A4 7001BAA4 D4329A30 */ ldc1 $f18, %lo(F64_80029A30)($at) +/* 01C6A8 7001BAA8 46808021 */ cvt.d.w $f0, $f16 +/* 01C6AC 7001BAAC 3C018003 */ lui $at, %hi(F64_80029A38) +/* 01C6B0 7001BAB0 D4269A38 */ ldc1 $f6, %lo(F64_80029A38)($at) +/* 01C6B4 7001BAB4 3C038003 */ lui $v1, %hi(F64_80029A00) +/* 01C6B8 7001BAB8 24639A00 */ addiu $v1, %lo(F64_80029A00) # addiu $v1, $v1, -0x6600 +/* 01C6BC 7001BABC 46320102 */ mul.d $f4, $f0, $f18 +/* 01C6C0 7001BAC0 D4680020 */ ldc1 $f8, 0x20($v1) +/* 01C6C4 7001BAC4 D4720018 */ ldc1 $f18, 0x18($v1) +/* 01C6C8 7001BAC8 30590001 */ andi $t9, $v0, 1 +/* 01C6CC 7001BACC 46260282 */ mul.d $f10, $f0, $f6 +/* 01C6D0 7001BAD0 46241081 */ sub.d $f2, $f2, $f4 +/* 01C6D4 7001BAD4 462A1081 */ sub.d $f2, $f2, $f10 +/* 01C6D8 7001BAD8 D46A0010 */ ldc1 $f10, 0x10($v1) +/* 01C6DC 7001BADC 46221302 */ mul.d $f12, $f2, $f2 +/* 01C6E0 7001BAE0 00000000 */ nop +/* 01C6E4 7001BAE4 462C4402 */ mul.d $f16, $f8, $f12 +/* 01C6E8 7001BAE8 46328100 */ add.d $f4, $f16, $f18 +/* 01C6EC 7001BAEC D4720008 */ ldc1 $f18, 8($v1) +/* 01C6F0 7001BAF0 462C2182 */ mul.d $f6, $f4, $f12 +/* 01C6F4 7001BAF4 462A3200 */ add.d $f8, $f6, $f10 +/* 01C6F8 7001BAF8 462C4402 */ mul.d $f16, $f8, $f12 +/* 01C6FC 7001BAFC 17200007 */ bnez $t9, .L7001BB1C +/* 01C700 7001BB00 46309380 */ add.d $f14, $f18, $f16 +/* 01C704 7001BB04 462C1102 */ mul.d $f4, $f2, $f12 +/* 01C708 7001BB08 00000000 */ nop +/* 01C70C 7001BB0C 462E2182 */ mul.d $f6, $f4, $f14 +/* 01C710 7001BB10 46223280 */ add.d $f10, $f6, $f2 +/* 01C714 7001BB14 03E00008 */ jr $ra +/* 01C718 7001BB18 46205020 */ cvt.s.d $f0, $f10 + +.L7001BB1C: +/* 01C71C 7001BB1C 462C1202 */ mul.d $f8, $f2, $f12 +/* 01C720 7001BB20 00000000 */ nop +/* 01C724 7001BB24 462E4482 */ mul.d $f18, $f8, $f14 +/* 01C728 7001BB28 46229400 */ add.d $f16, $f18, $f2 +/* 01C72C 7001BB2C 46208020 */ cvt.s.d $f0, $f16 +/* 01C730 7001BB30 03E00008 */ jr $ra +/* 01C734 7001BB34 46000007 */ neg.s $f0, $f0 + +.L7001BB38: +/* 01C738 7001BB38 46042032 */ c.eq.s $f4, $f4 +/* 01C73C 7001BB3C 3C018003 */ lui $at, %hi(F64_80029A40) +/* 01C740 7001BB40 45010004 */ bc1t .L7001BB54 +/* 01C744 7001BB44 00000000 */ nop +/* 01C748 7001BB48 3C018003 */ lui $at, %hi(__libm_qnan_f) +/* 01C74C 7001BB4C 03E00008 */ jr $ra +/* 01C750 7001BB50 C4209D40 */ lwc1 $f0, %lo(__libm_qnan_f)($at) + +.L7001BB54: +/* 01C754 7001BB54 C4209A40 */ lwc1 $f0, %lo(F64_80029A40)($at) +/* 01C758 7001BB58 03E00008 */ jr $ra +/* 01C75C 7001BB5C 00000000 */ nop + +.section .rodata +glabel F64_80029A00 +.double 1.0 +glabel F64_80029A08 +.double -0.16666659550427756 +glabel F64_80029A10 +.double 0.008333066246082155 +glabel F64_80029A18 +.double -0.0001980960290193795 +glabel F64_80029A20 +.double 0.000002605780637968037 +glabel F64_80029A28 +.double 0.3183098861837907 +glabel F64_80029A30 +.double 3.1415926218032837 +glabel F64_80029A38 +.double 3.178650954705639e-8 +glabel F64_80029A40 +.double 0.0 + .word 0 + .word 0 + diff --git a/src/libultra/ultra80069080.s b/src/libultra/ultra80069080.s new file mode 100644 index 0000000..dc1ef96 --- /dev/null +++ b/src/libultra/ultra80069080.s @@ -0,0 +1,117 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + + +.include "macros.inc" +.section .data +.word 0x10,0x10,0x20,0 + +.section .bss +glabel D_80069080 +.word 0 +glabel D_80069084 +.word 0 +glabel D_80069088 +.word 0 +glabel D_8006908C +.word 0 +glabel D_80069090 +.word 0 +glabel D_80069094 +.word 0 +glabel D_80069098 +.word 0 +glabel D_8006909C +.word 0 +glabel D_800690a0 +.word 0 +glabel D_800690a4 +.word 0 +glabel D_800690a8 +.word 0 +glabel D_800690ac +.word 0 +glabel D_800690b0 +.word 0 +glabel D_800690b4 +.word 0 +glabel D_800690b8 +.word 0 +glabel D_800690BC +.word 0 +glabel D_800690c0 +.word 0 +glabel D_800690C4 +.word 0 +glabel D_800690c8 +.word 0 +glabel D_800690cc +.word 0 +glabel D_800690D0 +.word 0 +glabel D_800690D4 +.word 0 +glabel D_800690D8 +.word 0 +glabel D_800690DC +.word 0 +glabel D_800690E0 +.word 0 +.word 0 +glabel D_800690E8 +.word 0 +glabel D_800690EC +.word 0 +glabel D_800690F0 +.word 0 +glabel D_800690F4 +.word 0 +glabel D_800690F8 +.word 0 +glabel D_800690FC +.word 0 +glabel D_80069100 +.word 0 +glabel D_80069104 +.word 0 +glabel D_80069108 +.word 0 +glabel D_8006910C +.word 0 +glabel D_80069110 +.word 0 +glabel D_80069114 +.word 0 +glabel D_80069118 +.word 0 +glabel D_8006911C +.word 0 +glabel D_80069120 +.word 0 +glabel D_80069124 +.word 0 +glabel D_80069128 +.word 0 +.word 0 +glabel D_80069130 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 diff --git a/src/libultra/unmaptlb.s b/src/libultra/unmaptlb.s new file mode 100644 index 0000000..9eb7696 --- /dev/null +++ b/src/libultra/unmaptlb.s @@ -0,0 +1,26 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osUnmapTLB +/* 00DFD0 7000D3D0 40085000 */ mfc0 $t0, $10 +/* 00DFD4 7000D3D4 40840000 */ mtc0 $a0, $0 +/* 00DFD8 7000D3D8 3C098000 */ lui $t1, 0x8000 +/* 00DFDC 7000D3DC 40895000 */ mtc0 $t1, $10 +/* 00DFE0 7000D3E0 40801000 */ mtc0 $zero, $2 +/* 00DFE4 7000D3E4 40801800 */ mtc0 $zero, $3 +/* 00DFE8 7000D3E8 00000000 */ nop +/* 00DFEC 7000D3EC 42000002 */ tlbwi +/* 00DFF0 7000D3F0 00000000 */ nop +/* 00DFF4 7000D3F4 00000000 */ nop +/* 00DFF8 7000D3F8 00000000 */ nop +/* 00DFFC 7000D3FC 00000000 */ nop +/* 00E000 7000D400 40885000 */ mtc0 $t0, $10 +/* 00E004 7000D404 03E00008 */ jr $ra +/* 00E008 7000D408 00000000 */ nop + diff --git a/src/libultra/vi.s b/src/libultra/vi.s new file mode 100644 index 0000000..601dd51 --- /dev/null +++ b/src/libultra/vi.s @@ -0,0 +1,122 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osViInit +/* 019650 70018A50 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 019654 70018A54 AFBF0014 */ sw $ra, 0x14($sp) +/* 019658 70018A58 3C048002 */ lui $a0, %hi(vi) +/* 01965C 70018A5C 24847FE0 */ addiu $a0, %lo(vi) # addiu $a0, $a0, 0x7fe0 +/* 019660 70018A60 0C005F10 */ jal bzero +/* 019664 70018A64 24050060 */ li $a1, 96 +/* 019668 70018A68 3C0E8002 */ lui $t6, %hi(vi) +/* 01966C 70018A6C 25CE7FE0 */ addiu $t6, %lo(vi) # addiu $t6, $t6, 0x7fe0 +/* 019670 70018A70 3C018003 */ lui $at, %hi(__osViCurr) +/* 019674 70018A74 AC2E8040 */ sw $t6, %lo(__osViCurr)($at) +/* 019678 70018A78 3C018003 */ lui $at, %hi(__osViNext) +/* 01967C 70018A7C 25CF0030 */ addiu $t7, $t6, 0x30 +/* 019680 70018A80 AC2F8044 */ sw $t7, %lo(__osViNext)($at) +/* 019684 70018A84 24180001 */ li $t8, 1 +/* 019688 70018A88 A5D80032 */ sh $t8, 0x32($t6) +/* 01968C 70018A8C 3C088003 */ lui $t0, %hi(__osViCurr) +/* 019690 70018A90 8D088040 */ lw $t0, %lo(__osViCurr)($t0) +/* 019694 70018A94 24190001 */ li $t9, 1 +/* 019698 70018A98 3C098003 */ lui $t1, %hi(copy_osTvType) +/* 01969C 70018A9C A5190002 */ sh $t9, 2($t0) +/* 0196A0 70018AA0 8D298048 */ lw $t1, %lo(copy_osTvType)($t1) +/* 0196A4 70018AA4 1120000B */ beqz $t1, .L70018AD4 +/* 0196A8 70018AA8 00000000 */ nop +/* 0196AC 70018AAC 3C0B8003 */ lui $t3, %hi(__osViNext) +/* 0196B0 70018AB0 8D6B8044 */ lw $t3, %lo(__osViNext)($t3) +/* 0196B4 70018AB4 3C0A8003 */ lui $t2, %hi(osViModeNtscLan1) +/* 0196B8 70018AB8 254A8320 */ addiu $t2, %lo(osViModeNtscLan1) # addiu $t2, $t2, -0x7ce0 +/* 0196BC 70018ABC 3C0C02E6 */ lui $t4, (0x02E6D354 >> 16) # lui $t4, 0x2e6 +/* 0196C0 70018AC0 358CD354 */ ori $t4, (0x02E6D354 & 0xFFFF) # ori $t4, $t4, 0xd354 +/* 0196C4 70018AC4 3C018003 */ lui $at, %hi(osViClock) +/* 0196C8 70018AC8 AD6A0008 */ sw $t2, 8($t3) +/* 0196CC 70018ACC 1000000A */ b .L70018AF8 +/* 0196D0 70018AD0 AC2C804C */ sw $t4, %lo(osViClock)($at) +.L70018AD4: +/* 0196D4 70018AD4 3C0F8003 */ lui $t7, %hi(__osViNext) +/* 0196D8 70018AD8 8DEF8044 */ lw $t7, %lo(__osViNext)($t7) +/* 0196DC 70018ADC 3C0D8003 */ lui $t5, %hi(osViModePalLan1) +/* 0196E0 70018AE0 25AD8370 */ addiu $t5, %lo(osViModePalLan1) # addiu $t5, $t5, -0x7c90 +/* 0196E4 70018AE4 3C1802F5 */ lui $t8, (0x02F5B2D2 >> 16) # lui $t8, 0x2f5 +/* 0196E8 70018AE8 3718B2D2 */ ori $t8, (0x02F5B2D2 & 0xFFFF) # ori $t8, $t8, 0xb2d2 +/* 0196EC 70018AEC 3C018003 */ lui $at, %hi(osViClock) +/* 0196F0 70018AF0 ADED0008 */ sw $t5, 8($t7) +/* 0196F4 70018AF4 AC38804C */ sw $t8, %lo(osViClock)($at) +.L70018AF8: +/* 0196F8 70018AF8 3C198003 */ lui $t9, %hi(__osViNext) +/* 0196FC 70018AFC 8F398044 */ lw $t9, %lo(__osViNext)($t9) +/* 019700 70018B00 240E0020 */ li $t6, 32 +/* 019704 70018B04 3C088003 */ lui $t0, %hi(__osViNext) +/* 019708 70018B08 A72E0000 */ sh $t6, ($t9) +/* 01970C 70018B0C 8D088044 */ lw $t0, %lo(__osViNext)($t0) +/* 019710 70018B10 3C0BA440 */ lui $t3, %hi(VI_CURRENT_REG) # $t3, 0xa440 +/* 019714 70018B14 8D090008 */ lw $t1, 8($t0) +/* 019718 70018B18 8D2A0004 */ lw $t2, 4($t1) +/* 01971C 70018B1C AD0A000C */ sw $t2, 0xc($t0) +/* 019720 70018B20 8D6C0010 */ lw $t4, %lo(VI_CURRENT_REG)($t3) +/* 019724 70018B24 2D81000B */ sltiu $at, $t4, 0xb +/* 019728 70018B28 14200006 */ bnez $at, .L70018B44 +/* 01972C 70018B2C 00000000 */ nop +.L70018B30: +/* 019730 70018B30 3C0DA440 */ lui $t5, %hi(VI_CURRENT_REG) # $t5, 0xa440 +/* 019734 70018B34 8DAF0010 */ lw $t7, %lo(VI_CURRENT_REG)($t5) +/* 019738 70018B38 2DE1000B */ sltiu $at, $t7, 0xb +/* 01973C 70018B3C 1020FFFC */ beqz $at, .L70018B30 +/* 019740 70018B40 00000000 */ nop +.L70018B44: +/* 019744 70018B44 3C18A440 */ lui $t8, 0xa440 +/* 019748 70018B48 0C0062DC */ jal __osViSwapContext +/* 01974C 70018B4C AF000000 */ sw $zero, ($t8) +/* 019750 70018B50 8FBF0014 */ lw $ra, 0x14($sp) +/* 019754 70018B54 27BD0018 */ addiu $sp, $sp, 0x18 +/* 019758 70018B58 03E00008 */ jr $ra +/* 01975C 70018B5C 00000000 */ nop + + +.section .data +glabel _libultraosviSegmentDataStart + +glabel vi +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 + +glabel vi_buffer_next +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 +.byte 0, 0, 0, 0, 0, 0, 0, 0 + +glabel __osViCurr +.word vi + +glabel __osViNext +.word vi_buffer_next + +glabel copy_osTvType +.word 1 + +glabel osViClock +.word 48681812 + +glabel _libultraosviSegmentDataEnd +.align 4 + diff --git a/src/libultra/viblack.s b/src/libultra/viblack.s new file mode 100644 index 0000000..c3c1a99 --- /dev/null +++ b/src/libultra/viblack.s @@ -0,0 +1,40 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osViBlack +/* 00EED0 7000E2D0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00EED4 7000E2D4 AFBF001C */ sw $ra, 0x1c($sp) +/* 00EED8 7000E2D8 AFA40028 */ sw $a0, 0x28($sp) +/* 00EEDC 7000E2DC 0C00617C */ jal __osDisableInt +/* 00EEE0 7000E2E0 AFB00018 */ sw $s0, 0x18($sp) +/* 00EEE4 7000E2E4 93AE002B */ lbu $t6, 0x2b($sp) +/* 00EEE8 7000E2E8 00408025 */ move $s0, $v0 +/* 00EEEC 7000E2EC 11C00007 */ beqz $t6, .L7000E30C +/* 00EEF0 7000E2F0 00000000 */ nop +/* 00EEF4 7000E2F4 3C0F8003 */ lui $t7, %hi(__osViNext) +/* 00EEF8 7000E2F8 8DEF8044 */ lw $t7, %lo(__osViNext)($t7) +/* 00EEFC 7000E2FC 95F80000 */ lhu $t8, ($t7) +/* 00EF00 7000E300 37190020 */ ori $t9, $t8, 0x20 +/* 00EF04 7000E304 10000007 */ b .L7000E324 +/* 00EF08 7000E308 A5F90000 */ sh $t9, ($t7) +.L7000E30C: +/* 00EF0C 7000E30C 3C088003 */ lui $t0, %hi(__osViNext) +/* 00EF10 7000E310 8D088044 */ lw $t0, %lo(__osViNext)($t0) +/* 00EF14 7000E314 2401FFDF */ li $at, -33 +/* 00EF18 7000E318 95090000 */ lhu $t1, ($t0) +/* 00EF1C 7000E31C 01215024 */ and $t2, $t1, $at +/* 00EF20 7000E320 A50A0000 */ sh $t2, ($t0) +.L7000E324: +/* 00EF24 7000E324 0C006184 */ jal __osRestoreInt +/* 00EF28 7000E328 02002025 */ move $a0, $s0 +/* 00EF2C 7000E32C 8FBF001C */ lw $ra, 0x1c($sp) +/* 00EF30 7000E330 8FB00018 */ lw $s0, 0x18($sp) +/* 00EF34 7000E334 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00EF38 7000E338 03E00008 */ jr $ra +/* 00EF3C 7000E33C 00000000 */ nop diff --git a/src/libultra/vigetcurrcontext.s b/src/libultra/vigetcurrcontext.s new file mode 100644 index 0000000..39c715f --- /dev/null +++ b/src/libultra/vigetcurrcontext.s @@ -0,0 +1,18 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osViGetCurrentContext +/* 019760 70018B60 3C028003 */ lui $v0, %hi(__osViCurr) +/* 019764 70018B64 03E00008 */ jr $ra +/* 019768 70018B68 8C428040 */ lw $v0, %lo(__osViCurr)($v0) + diff --git a/src/libultra/vigetcurrframebuf.s b/src/libultra/vigetcurrframebuf.s new file mode 100644 index 0000000..8c23b8f --- /dev/null +++ b/src/libultra/vigetcurrframebuf.s @@ -0,0 +1,27 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osViGetCurrentFramebuffer +/* 00F010 7000E410 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00F014 7000E414 AFBF001C */ sw $ra, 0x1c($sp) +/* 00F018 7000E418 0C00617C */ jal __osDisableInt +/* 00F01C 7000E41C AFB00018 */ sw $s0, 0x18($sp) +/* 00F020 7000E420 3C0E8003 */ lui $t6, %hi(__osViCurr) +/* 00F024 7000E424 8DCE8040 */ lw $t6, %lo(__osViCurr)($t6) +/* 00F028 7000E428 00408025 */ move $s0, $v0 +/* 00F02C 7000E42C 02002025 */ move $a0, $s0 +/* 00F030 7000E430 8DCF0004 */ lw $t7, 4($t6) +/* 00F034 7000E434 0C006184 */ jal __osRestoreInt +/* 00F038 7000E438 AFAF0020 */ sw $t7, 0x20($sp) +/* 00F03C 7000E43C 8FBF001C */ lw $ra, 0x1c($sp) +/* 00F040 7000E440 8FA20020 */ lw $v0, 0x20($sp) +/* 00F044 7000E444 8FB00018 */ lw $s0, 0x18($sp) +/* 00F048 7000E448 03E00008 */ jr $ra +/* 00F04C 7000E44C 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/vigetnextframebuf.s b/src/libultra/vigetnextframebuf.s new file mode 100644 index 0000000..1b339c2 --- /dev/null +++ b/src/libultra/vigetnextframebuf.s @@ -0,0 +1,27 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osViGetNextFramebuffer +/* 00F050 7000E450 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00F054 7000E454 AFBF001C */ sw $ra, 0x1c($sp) +/* 00F058 7000E458 0C00617C */ jal __osDisableInt +/* 00F05C 7000E45C AFB00018 */ sw $s0, 0x18($sp) +/* 00F060 7000E460 3C0E8003 */ lui $t6, %hi(__osViNext) +/* 00F064 7000E464 8DCE8044 */ lw $t6, %lo(__osViNext)($t6) +/* 00F068 7000E468 00408025 */ move $s0, $v0 +/* 00F06C 7000E46C 02002025 */ move $a0, $s0 +/* 00F070 7000E470 8DCF0004 */ lw $t7, 4($t6) +/* 00F074 7000E474 0C006184 */ jal __osRestoreInt +/* 00F078 7000E478 AFAF0020 */ sw $t7, 0x20($sp) +/* 00F07C 7000E47C 8FBF001C */ lw $ra, 0x1c($sp) +/* 00F080 7000E480 8FA20020 */ lw $v0, 0x20($sp) +/* 00F084 7000E484 8FB00018 */ lw $s0, 0x18($sp) +/* 00F088 7000E488 03E00008 */ jr $ra +/* 00F08C 7000E48C 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/vimgr.s b/src/libultra/vimgr.s new file mode 100644 index 0000000..8573492 --- /dev/null +++ b/src/libultra/vimgr.s @@ -0,0 +1,1625 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +.ifndef VERSION_EU +glabel osCreateViManager +/* 00E4F0 7000D8F0 3C0E8002 */ lui $t6, %hi(__osViDevMgr) +/* 00E4F4 7000D8F4 8DCE69A0 */ lw $t6, %lo(__osViDevMgr)($t6) +/* 00E4F8 7000D8F8 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 00E4FC 7000D8FC AFBF001C */ sw $ra, 0x1c($sp) +/* 00E500 7000D900 15C00059 */ bnez $t6, .L7000DA68 +/* 00E504 7000D904 AFA40030 */ sw $a0, 0x30($sp) +/* 00E508 7000D908 0C00618C */ jal __osTimerServicesInit +/* 00E50C 7000D90C 00000000 */ nop +/* 00E510 7000D910 3C048006 */ lui $a0, %hi(viEventQueue) +/* 00E514 7000D914 3C058006 */ lui $a1, %hi(viEventBuf) +/* 00E518 7000D918 24A569B8 */ addiu $a1, %lo(viEventBuf) # addiu $a1, $a1, 0x69b8 +/* 00E51C 7000D91C 248469A0 */ addiu $a0, %lo(viEventQueue) # addiu $a0, $a0, 0x69a0 +/* 00E520 7000D920 0C0035B4 */ jal osCreateMesgQueue +/* 00E524 7000D924 24060005 */ li $a2, 5 +/* 00E528 7000D928 3C018006 */ lui $at, %hi(viRetraceMsg+0x4) +/* 00E52C 7000D92C 240F000D */ li $t7, 13 +/* 00E530 7000D930 A42F69D0 */ sh $t7, %lo(viRetraceMsg)($at) +/* 00E534 7000D934 A02069D2 */ sb $zero, %lo(viRetraceMsg+0x2)($at) +/* 00E538 7000D938 AC2069D4 */ sw $zero, %lo(viRetraceMsg+0x4)($at) +/* 00E53C 7000D93C 3C018006 */ lui $at, %hi(viCounterMsg+0x4) +/* 00E540 7000D940 2418000E */ li $t8, 14 +/* 00E544 7000D944 3C058006 */ lui $a1, %hi(viEventQueue) +/* 00E548 7000D948 3C068006 */ lui $a2, %hi(viRetraceMsg) +/* 00E54C 7000D94C A43869E8 */ sh $t8, %lo(viCounterMsg)($at) +/* 00E550 7000D950 A02069EA */ sb $zero, %lo(viCounterMsg+0x2)($at) +/* 00E554 7000D954 AC2069EC */ sw $zero, %lo(viCounterMsg+0x4)($at) +/* 00E558 7000D958 24C669D0 */ addiu $a2, %lo(viRetraceMsg) # addiu $a2, $a2, 0x69d0 +/* 00E55C 7000D95C 24A569A0 */ addiu $a1, %lo(viEventQueue) # addiu $a1, $a1, 0x69a0 +/* 00E560 7000D960 0C003714 */ jal osSetEventMesg +/* 00E564 7000D964 24040007 */ li $a0, 7 +/* 00E568 7000D968 3C058006 */ lui $a1, %hi(viEventQueue) +/* 00E56C 7000D96C 3C068006 */ lui $a2, %hi(viCounterMsg) +/* 00E570 7000D970 24C669E8 */ addiu $a2, %lo(viCounterMsg) # addiu $a2, $a2, 0x69e8 +/* 00E574 7000D974 24A569A0 */ addiu $a1, %lo(viEventQueue) # addiu $a1, $a1, 0x69a0 +/* 00E578 7000D978 0C003714 */ jal osSetEventMesg +/* 00E57C 7000D97C 24040003 */ li $a0, 3 +/* 00E580 7000D980 2419FFFF */ li $t9, -1 +/* 00E584 7000D984 AFB90028 */ sw $t9, 0x28($sp) +/* 00E588 7000D988 0C00628C */ jal osGetThreadPri +/* 00E58C 7000D98C 00002025 */ move $a0, $zero +/* 00E590 7000D990 AFA20024 */ sw $v0, 0x24($sp) +/* 00E594 7000D994 8FA80024 */ lw $t0, 0x24($sp) +/* 00E598 7000D998 8FA90030 */ lw $t1, 0x30($sp) +/* 00E59C 7000D99C 0109082A */ slt $at, $t0, $t1 +/* 00E5A0 7000D9A0 10200005 */ beqz $at, .L7000D9B8 +/* 00E5A4 7000D9A4 00000000 */ nop +/* 00E5A8 7000D9A8 AFA80028 */ sw $t0, 0x28($sp) +/* 00E5AC 7000D9AC 00002025 */ move $a0, $zero +/* 00E5B0 7000D9B0 0C003600 */ jal osSetThreadPri +/* 00E5B4 7000D9B4 01202825 */ move $a1, $t1 +.L7000D9B8: +/* 00E5B8 7000D9B8 0C00617C */ jal __osDisableInt +/* 00E5BC 7000D9BC 00000000 */ nop +/* 00E5C0 7000D9C0 3C018002 */ lui $at, %hi(D_800269AC) +/* 00E5C4 7000D9C4 3C0C8006 */ lui $t4, %hi(viEventQueue) +/* 00E5C8 7000D9C8 3C0B8006 */ lui $t3, %hi(viThread) +/* 00E5CC 7000D9CC 258C69A0 */ addiu $t4, %lo(viEventQueue) # addiu $t4, $t4, 0x69a0 +/* 00E5D0 7000D9D0 240A0001 */ li $t2, 1 +/* 00E5D4 7000D9D4 256B57F0 */ addiu $t3, %lo(viThread) # addiu $t3, $t3, 0x57f0 +/* 00E5D8 7000D9D8 AC2A69A0 */ sw $t2, %lo(__osViDevMgr)($at) +/* 00E5DC 7000D9DC AC2B69A4 */ sw $t3, %lo(D_800269A4)($at) +/* 00E5E0 7000D9E0 AC2C69A8 */ sw $t4, %lo(D_800269A8)($at) +/* 00E5E4 7000D9E4 AC2C69AC */ sw $t4, %lo(D_800269AC)($at) +/* 00E5E8 7000D9E8 3C0D8006 */ lui $t5, %hi(viThreadStack) +/* 00E5EC 7000D9EC 8FAF0030 */ lw $t7, 0x30($sp) +/* 00E5F0 7000D9F0 3C018002 */ lui $at, %hi(D_800269B8) +/* 00E5F4 7000D9F4 25AD59A0 */ addiu $t5, %lo(viThreadStack) # addiu $t5, $t5, 0x59a0 +/* 00E5F8 7000D9F8 25AE1000 */ addiu $t6, $t5, 0x1000 +/* 00E5FC 7000D9FC 3C067001 */ lui $a2, %hi(viMgrMain) # $a2, 0x7001 +/* 00E600 7000DA00 3C078002 */ lui $a3, %hi(__osViDevMgr) +/* 00E604 7000DA04 AFA2002C */ sw $v0, 0x2c($sp) +/* 00E608 7000DA08 AC2069B0 */ sw $zero, %lo(D_800269B0)($at) +/* 00E60C 7000DA0C AC2069B4 */ sw $zero, %lo(D_800269B4)($at) +/* 00E610 7000DA10 AC2069B8 */ sw $zero, %lo(D_800269B8)($at) +/* 00E614 7000DA14 24E769A0 */ addiu $a3, %lo(__osViDevMgr) # addiu $a3, $a3, 0x69a0 +/* 00E618 7000DA18 24C6DA78 */ addiu $a2, %lo(viMgrMain) # addiu $a2, $a2, -0x2588 +/* 00E61C 7000DA1C AFAE0010 */ sw $t6, 0x10($sp) +/* 00E620 7000DA20 01602025 */ move $a0, $t3 +/* 00E624 7000DA24 00002825 */ move $a1, $zero +/* 00E628 7000DA28 0C00350C */ jal osCreateThread +/* 00E62C 7000DA2C AFAF0014 */ sw $t7, 0x14($sp) +/* 00E630 7000DA30 0C006294 */ jal __osViInit +/* 00E634 7000DA34 00000000 */ nop +/* 00E638 7000DA38 3C048006 */ lui $a0, %hi(viThread) +/* 00E63C 7000DA3C 0C003560 */ jal osStartThread +/* 00E640 7000DA40 248457F0 */ addiu $a0, %lo(viThread) # addiu $a0, $a0, 0x57f0 +/* 00E644 7000DA44 0C006184 */ jal __osRestoreInt +/* 00E648 7000DA48 8FA4002C */ lw $a0, 0x2c($sp) +/* 00E64C 7000DA4C 8FB80028 */ lw $t8, 0x28($sp) +/* 00E650 7000DA50 2401FFFF */ li $at, -1 +/* 00E654 7000DA54 13010004 */ beq $t8, $at, .L7000DA68 +/* 00E658 7000DA58 00000000 */ nop +/* 00E65C 7000DA5C 00002025 */ move $a0, $zero +/* 00E660 7000DA60 0C003600 */ jal osSetThreadPri +/* 00E664 7000DA64 03002825 */ move $a1, $t8 +.L7000DA68: +/* 00E668 7000DA68 8FBF001C */ lw $ra, 0x1c($sp) +/* 00E66C 7000DA6C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 00E670 7000DA70 03E00008 */ jr $ra +/* 00E674 7000DA74 00000000 */ nop +.endif +.ifdef VERSION_EU +glabel osCreateViManager +/* 0023E0 700017E0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0023E4 700017E4 AFB00020 */ sw $s0, 0x20($sp) +/* 0023E8 700017E8 3C108002 */ lui $s0, %hi(__osViDevMgr) # $s0, 0x8002 +/* 0023EC 700017EC 26100F90 */ addiu $s0, %lo(__osViDevMgr) # addiu $s0, $s0, 0xf90 +/* 0023F0 700017F0 8E0E0000 */ lw $t6, ($s0) +/* 0023F4 700017F4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0023F8 700017F8 AFA40030 */ sw $a0, 0x30($sp) +/* 0023FC 700017FC 55C00052 */ bnezl $t6, .L70001948 +/* 002400 70001800 8FBF0024 */ lw $ra, 0x24($sp) +/* 002404 70001804 0C0034A0 */ jal __osTimerServicesInit +/* 002408 70001808 00000000 */ nop +/* 00240C 7000180C 3C048005 */ lui $a0, %hi(viEventQueue) # $a0, 0x8005 +/* 002410 70001810 3C058005 */ lui $a1, %hi(viEventBuf) # $a1, 0x8005 +/* 002414 70001814 24A52278 */ addiu $a1, %lo(viEventBuf) # addiu $a1, $a1, 0x2278 +/* 002418 70001818 24842260 */ addiu $a0, %lo(viEventQueue) # addiu $a0, $a0, 0x2260 +/* 00241C 7000181C 0C00310C */ jal osCreateMesgQueue +/* 002420 70001820 24060005 */ li $a2, 5 +/* 002424 70001824 3C068005 */ lui $a2, %hi(viRetraceMsg) # $a2, 0x8005 +/* 002428 70001828 3C078005 */ lui $a3, %hi(viCounterMsg) # $a3, 0x8005 +/* 00242C 7000182C 24E722A8 */ addiu $a3, %lo(viCounterMsg) # addiu $a3, $a3, 0x22a8 +/* 002430 70001830 24C62290 */ addiu $a2, %lo(viRetraceMsg) # addiu $a2, $a2, 0x2290 +/* 002434 70001834 240F000D */ li $t7, 13 +/* 002438 70001838 2418000E */ li $t8, 14 +/* 00243C 7000183C 3C058005 */ lui $a1, %hi(viEventQueue) # $a1, 0x8005 +/* 002440 70001840 A4CF0000 */ sh $t7, ($a2) +/* 002444 70001844 A0C00002 */ sb $zero, 2($a2) +/* 002448 70001848 ACC00004 */ sw $zero, 4($a2) +/* 00244C 7000184C A4F80000 */ sh $t8, ($a3) +/* 002450 70001850 A0E00002 */ sb $zero, 2($a3) +/* 002454 70001854 ACE00004 */ sw $zero, 4($a3) +/* 002458 70001858 24A52260 */ addiu $a1, %lo(viEventQueue) # addiu $a1, $a1, 0x2260 +/* 00245C 7000185C 0C003194 */ jal osSetEventMesg +/* 002460 70001860 24040007 */ li $a0, 7 +/* 002464 70001864 3C078005 */ lui $a3, %hi(viCounterMsg) +/* 002468 70001868 3C058005 */ lui $a1, %hi(viEventQueue) # $a1, 0x8005 +/* 00246C 7000186C 24E622A8 */ addiu $a2, $a3, %lo(viCounterMsg) +/* 002470 70001870 24A52260 */ addiu $a1, %lo(viEventQueue) # addiu $a1, $a1, 0x2260 +/* 002474 70001874 0C003194 */ jal osSetEventMesg +/* 002478 70001878 24040003 */ li $a0, 3 +/* 00247C 7000187C 2419FFFF */ li $t9, -1 +/* 002480 70001880 AFB90028 */ sw $t9, 0x28($sp) +/* 002484 70001884 0C0035A0 */ jal osGetThreadPri +/* 002488 70001888 00002025 */ move $a0, $zero +/* 00248C 7000188C 8FA80030 */ lw $t0, 0x30($sp) +/* 002490 70001890 00002025 */ move $a0, $zero +/* 002494 70001894 0048082A */ slt $at, $v0, $t0 +/* 002498 70001898 10200003 */ beqz $at, .L700018A8 +/* 00249C 7000189C 01002825 */ move $a1, $t0 +/* 0024A0 700018A0 0C003158 */ jal osSetThreadPri +/* 0024A4 700018A4 AFA20028 */ sw $v0, 0x28($sp) +.L700018A8: +/* 0024A8 700018A8 0C0035A8 */ jal __osDisableInt +/* 0024AC 700018AC 00000000 */ nop +/* 0024B0 700018B0 8FAB0030 */ lw $t3, 0x30($sp) +/* 0024B4 700018B4 3C038005 */ lui $v1, %hi(viEventQueue) # $v1, 0x8005 +/* 0024B8 700018B8 3C048005 */ lui $a0, %hi(viThread) # $a0, 0x8005 +/* 0024BC 700018BC 3C0A8005 */ lui $t2, %hi(viEventQueue) # $t2, 0x8005 +/* 0024C0 700018C0 24841FB0 */ addiu $a0, %lo(viThread) # addiu $a0, $a0, 0x1fb0 +/* 0024C4 700018C4 24632260 */ addiu $v1, %lo(viEventQueue) # addiu $v1, $v1, 0x2260 +/* 0024C8 700018C8 24090001 */ li $t1, 1 +/* 0024CC 700018CC 254A2260 */ addiu $t2, %lo(viEventQueue) # addiu $t2, $t2, 0x2260 +/* 0024D0 700018D0 3C067000 */ lui $a2, %hi(viMgrMain) # $a2, 0x7000 +/* 0024D4 700018D4 AFA2002C */ sw $v0, 0x2c($sp) +/* 0024D8 700018D8 AE090000 */ sw $t1, ($s0) +/* 0024DC 700018DC AE040004 */ sw $a0, 4($s0) +/* 0024E0 700018E0 AE030008 */ sw $v1, 8($s0) +/* 0024E4 700018E4 AE03000C */ sw $v1, 0xc($s0) +/* 0024E8 700018E8 AE000010 */ sw $zero, 0x10($s0) +/* 0024EC 700018EC AE000014 */ sw $zero, 0x14($s0) +/* 0024F0 700018F0 AE000018 */ sw $zero, 0x18($s0) +/* 0024F4 700018F4 24C61958 */ addiu $a2, %lo(viMgrMain) # addiu $a2, $a2, 0x1958 +/* 0024F8 700018F8 AFAA0010 */ sw $t2, 0x10($sp) +/* 0024FC 700018FC 00002825 */ move $a1, $zero +/* 002500 70001900 02003825 */ move $a3, $s0 +/* 002504 70001904 0C003064 */ jal osCreateThread +/* 002508 70001908 AFAB0014 */ sw $t3, 0x14($sp) +/* 00250C 7000190C 0C0035B8 */ jal __osViInit +/* 002510 70001910 00000000 */ nop +/* 002514 70001914 3C048005 */ lui $a0, %hi(viThread) # $a0, 0x8005 +/* 002518 70001918 0C0030B8 */ jal osStartThread +/* 00251C 7000191C 24841FB0 */ addiu $a0, %lo(viThread) # addiu $a0, $a0, 0x1fb0 +/* 002520 70001920 0C0035B0 */ jal __osRestoreInt +/* 002524 70001924 8FA4002C */ lw $a0, 0x2c($sp) +/* 002528 70001928 8FAC0028 */ lw $t4, 0x28($sp) +/* 00252C 7000192C 2401FFFF */ li $at, -1 +/* 002530 70001930 00002025 */ move $a0, $zero +/* 002534 70001934 51810004 */ beql $t4, $at, .L70001948 +/* 002538 70001938 8FBF0024 */ lw $ra, 0x24($sp) +/* 00253C 7000193C 0C003158 */ jal osSetThreadPri +/* 002540 70001940 01802825 */ move $a1, $t4 +/* 002544 70001944 8FBF0024 */ lw $ra, 0x24($sp) +.L70001948: +/* 002548 70001948 8FB00020 */ lw $s0, 0x20($sp) +/* 00254C 7000194C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 002550 70001950 03E00008 */ jr $ra +/* 002554 70001954 00000000 */ nop +.endif + +.ifndef VERSION_EU +glabel viMgrMain +/* 00E678 7000DA78 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 00E67C 7000DA7C AFBF001C */ sw $ra, 0x1c($sp) +/* 00E680 7000DA80 AFA40038 */ sw $a0, 0x38($sp) +/* 00E684 7000DA84 AFB00018 */ sw $s0, 0x18($sp) +/* 00E688 7000DA88 AFA0002C */ sw $zero, 0x2c($sp) +/* 00E68C 7000DA8C 0C0062D8 */ jal __osViGetCurrentContext +/* 00E690 7000DA90 AFA00028 */ sw $zero, 0x28($sp) +/* 00E694 7000DA94 AFA20034 */ sw $v0, 0x34($sp) +/* 00E698 7000DA98 8FAE0034 */ lw $t6, 0x34($sp) +/* 00E69C 7000DA9C 3C018006 */ lui $at, %hi(retrace) +/* 00E6A0 7000DAA0 95CF0002 */ lhu $t7, 2($t6) +/* 00E6A4 7000DAA4 15E00004 */ bnez $t7, .L7000DAB8 +/* 00E6A8 7000DAA8 A42F6A00 */ sh $t7, %lo(retrace)($at) +/* 00E6AC 7000DAAC 24180001 */ li $t8, 1 +/* 00E6B0 7000DAB0 3C018006 */ lui $at, %hi(retrace) +/* 00E6B4 7000DAB4 A4386A00 */ sh $t8, %lo(retrace)($at) +.L7000DAB8: +/* 00E6B8 7000DAB8 8FB90038 */ lw $t9, 0x38($sp) +/* 00E6BC 7000DABC AFB90030 */ sw $t9, 0x30($sp) +.L7000DAC0: +/* 00E6C0 7000DAC0 8FA80030 */ lw $t0, 0x30($sp) +/* 00E6C4 7000DAC4 27A5002C */ addiu $a1, $sp, 0x2c +/* 00E6C8 7000DAC8 24060001 */ li $a2, 1 +/* 00E6CC 7000DACC 0C003774 */ jal osRecvMesg +/* 00E6D0 7000DAD0 8D04000C */ lw $a0, 0xc($t0) +/* 00E6D4 7000DAD4 8FA9002C */ lw $t1, 0x2c($sp) +/* 00E6D8 7000DAD8 2401000D */ li $at, 13 +/* 00E6DC 7000DADC 95300000 */ lhu $s0, ($t1) +/* 00E6E0 7000DAE0 12010005 */ beq $s0, $at, .L7000DAF8 +/* 00E6E4 7000DAE4 2401000E */ li $at, 14 +/* 00E6E8 7000DAE8 12010047 */ beq $s0, $at, .L7000DC08 +/* 00E6EC 7000DAEC 00000000 */ nop +/* 00E6F0 7000DAF0 1000FFF3 */ b .L7000DAC0 +/* 00E6F4 7000DAF4 00000000 */ nop +.L7000DAF8: +/* 00E6F8 7000DAF8 0C0062DC */ jal __osViSwapContext +/* 00E6FC 7000DAFC 00000000 */ nop +/* 00E700 7000DB00 3C0A8006 */ lui $t2, %hi(retrace) +/* 00E704 7000DB04 954A6A00 */ lhu $t2, %lo(retrace)($t2) +/* 00E708 7000DB08 3C018006 */ lui $at, %hi(retrace) +/* 00E70C 7000DB0C 254BFFFF */ addiu $t3, $t2, -1 +/* 00E710 7000DB10 316CFFFF */ andi $t4, $t3, 0xffff +/* 00E714 7000DB14 15800010 */ bnez $t4, .L7000DB58 +/* 00E718 7000DB18 A42B6A00 */ sh $t3, %lo(retrace)($at) +/* 00E71C 7000DB1C 0C0062D8 */ jal __osViGetCurrentContext +/* 00E720 7000DB20 00000000 */ nop +/* 00E724 7000DB24 AFA20034 */ sw $v0, 0x34($sp) +/* 00E728 7000DB28 8FAD0034 */ lw $t5, 0x34($sp) +/* 00E72C 7000DB2C 8DAE0010 */ lw $t6, 0x10($t5) +/* 00E730 7000DB30 11C00005 */ beqz $t6, .L7000DB48 +/* 00E734 7000DB34 00000000 */ nop +/* 00E738 7000DB38 01C02025 */ move $a0, $t6 +/* 00E73C 7000DB3C 8DA50014 */ lw $a1, 0x14($t5) +/* 00E740 7000DB40 0C0037C4 */ jal osSendMesg +/* 00E744 7000DB44 00003025 */ move $a2, $zero +.L7000DB48: +/* 00E748 7000DB48 8FAF0034 */ lw $t7, 0x34($sp) +/* 00E74C 7000DB4C 3C018006 */ lui $at, %hi(retrace) +/* 00E750 7000DB50 95F80002 */ lhu $t8, 2($t7) +/* 00E754 7000DB54 A4386A00 */ sh $t8, %lo(retrace)($at) +.L7000DB58: +/* 00E758 7000DB58 3C198007 */ lui $t9, %hi(__osViIntrCount) +/* 00E75C 7000DB5C 8F398E1C */ lw $t9, %lo(__osViIntrCount)($t9) +/* 00E760 7000DB60 8FA90028 */ lw $t1, 0x28($sp) +/* 00E764 7000DB64 3C018007 */ lui $at, %hi(__osViIntrCount) +/* 00E768 7000DB68 27280001 */ addiu $t0, $t9, 1 +/* 00E76C 7000DB6C 1120000C */ beqz $t1, .L7000DBA0 +/* 00E770 7000DB70 AC288E1C */ sw $t0, %lo(__osViIntrCount)($at) +/* 00E774 7000DB74 0C003638 */ jal osGetCount +/* 00E778 7000DB78 00000000 */ nop +/* 00E77C 7000DB7C AFA20024 */ sw $v0, 0x24($sp) +/* 00E780 7000DB80 8FAA0024 */ lw $t2, 0x24($sp) +/* 00E784 7000DB84 240C0000 */ li $t4, 0 +/* 00E788 7000DB88 3C018007 */ lui $at, %hi(__osCurrentTime) +/* 00E78C 7000DB8C AC2C8E10 */ sw $t4, %lo(__osCurrentTime)($at) +/* 00E790 7000DB90 3C018007 */ lui $at, %hi(__osCurrentTime+4) +/* 00E794 7000DB94 01406825 */ move $t5, $t2 +/* 00E798 7000DB98 AC2D8E14 */ sw $t5, %lo(__osCurrentTime+4)($at) +/* 00E79C 7000DB9C AFA00028 */ sw $zero, 0x28($sp) +.L7000DBA0: +/* 00E7A0 7000DBA0 3C0B8007 */ lui $t3, %hi(__osBaseCounter) +/* 00E7A4 7000DBA4 8D6B8E18 */ lw $t3, %lo(__osBaseCounter)($t3) +/* 00E7A8 7000DBA8 0C003638 */ jal osGetCount +/* 00E7AC 7000DBAC AFAB0024 */ sw $t3, 0x24($sp) +/* 00E7B0 7000DBB0 3C018007 */ lui $at, %hi(__osBaseCounter) +/* 00E7B4 7000DBB4 AC228E18 */ sw $v0, %lo(__osBaseCounter)($at) +/* 00E7B8 7000DBB8 3C0E8007 */ lui $t6, %hi(__osBaseCounter) +/* 00E7BC 7000DBBC 8DCE8E18 */ lw $t6, %lo(__osBaseCounter)($t6) +/* 00E7C0 7000DBC0 8FAF0024 */ lw $t7, 0x24($sp) +/* 00E7C4 7000DBC4 3C0B8007 */ lui $t3, %hi(__osCurrentTime+4) +/* 00E7C8 7000DBC8 8D6B8E14 */ lw $t3, %lo(__osCurrentTime+4)($t3) +/* 00E7CC 7000DBCC 01CFC023 */ subu $t8, $t6, $t7 +/* 00E7D0 7000DBD0 03004825 */ move $t1, $t8 +/* 00E7D4 7000DBD4 3C0A8007 */ lui $t2, %hi(__osCurrentTime) +/* 00E7D8 7000DBD8 012B6821 */ addu $t5, $t1, $t3 +/* 00E7DC 7000DBDC 8D4A8E10 */ lw $t2, %lo(__osCurrentTime)($t2) +/* 00E7E0 7000DBE0 24080000 */ li $t0, 0 +/* 00E7E4 7000DBE4 01AB082B */ sltu $at, $t5, $t3 +/* 00E7E8 7000DBE8 00286021 */ addu $t4, $at, $t0 +/* 00E7EC 7000DBEC 3C018007 */ lui $at, %hi(__osCurrentTime) +/* 00E7F0 7000DBF0 018A6021 */ addu $t4, $t4, $t2 +/* 00E7F4 7000DBF4 AC2C8E10 */ sw $t4, %lo(__osCurrentTime)($at) +/* 00E7F8 7000DBF8 3C018007 */ lui $at, %hi(__osCurrentTime+4) +/* 00E7FC 7000DBFC AFB80024 */ sw $t8, 0x24($sp) +/* 00E800 7000DC00 1000FFAF */ b .L7000DAC0 +/* 00E804 7000DC04 AC2D8E14 */ sw $t5, %lo(__osCurrentTime+4)($at) +.L7000DC08: +/* 00E808 7000DC08 0C0061AF */ jal __osTimerInterrupt +/* 00E80C 7000DC0C 00000000 */ nop +/* 00E810 7000DC10 1000FFAB */ b .L7000DAC0 +/* 00E814 7000DC14 00000000 */ nop +/* 00E818 7000DC18 00000000 */ nop +/* 00E81C 7000DC1C 00000000 */ nop +/* 00E820 7000DC20 00000000 */ nop +/* 00E824 7000DC24 00000000 */ nop +/* 00E828 7000DC28 00000000 */ nop +/* 00E82C 7000DC2C 00000000 */ nop +/* 00E830 7000DC30 8FBF001C */ lw $ra, 0x1c($sp) +/* 00E834 7000DC34 8FB00018 */ lw $s0, 0x18($sp) +/* 00E838 7000DC38 27BD0038 */ addiu $sp, $sp, 0x38 +/* 00E83C 7000DC3C 03E00008 */ jr $ra +/* 00E840 7000DC40 00000000 */ nop +.endif +.ifdef VERSION_EU +glabel viMgrMain +/* 002558 70001958 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 00255C 7000195C AFBF0034 */ sw $ra, 0x34($sp) +/* 002560 70001960 AFB70030 */ sw $s7, 0x30($sp) +/* 002564 70001964 0080B825 */ move $s7, $a0 +/* 002568 70001968 AFB6002C */ sw $s6, 0x2c($sp) +/* 00256C 7000196C AFB50028 */ sw $s5, 0x28($sp) +/* 002570 70001970 AFB40024 */ sw $s4, 0x24($sp) +/* 002574 70001974 AFB30020 */ sw $s3, 0x20($sp) +/* 002578 70001978 AFB2001C */ sw $s2, 0x1c($sp) +/* 00257C 7000197C AFB10018 */ sw $s1, 0x18($sp) +/* 002580 70001980 AFB00014 */ sw $s0, 0x14($sp) +/* 002584 70001984 0C0035FC */ jal __osViGetCurrentContext +/* 002588 70001988 AFA00044 */ sw $zero, 0x44($sp) +/* 00258C 7000198C 94430002 */ lhu $v1, 2($v0) +/* 002590 70001990 3C018005 */ lui $at, %hi(retrace) # $at, 0x8005 +/* 002594 70001994 2416000E */ li $s6, 14 +/* 002598 70001998 14600004 */ bnez $v1, .L700019AC +/* 00259C 7000199C A42322C0 */ sh $v1, %lo(retrace)($at) +/* 0025A0 700019A0 24030001 */ li $v1, 1 +/* 0025A4 700019A4 3C018005 */ lui $at, %hi(retrace) # $at, 0x8005 +/* 0025A8 700019A8 A42322C0 */ sh $v1, %lo(retrace)($at) +.L700019AC: +/* 0025AC 700019AC 3C138005 */ lui $s3, %hi(__osViIntrCount) # $s3, 0x8005 +/* 0025B0 700019B0 3C128005 */ lui $s2, %hi(__osBaseCounter) # $s2, 0x8005 +/* 0025B4 700019B4 3C118005 */ lui $s1, %hi(__osCurrentTime) # $s1, 0x8005 +/* 0025B8 700019B8 26317C80 */ addiu $s1, %lo(__osCurrentTime) # addiu $s1, $s1, 0x7c80 +/* 0025BC 700019BC 26527C88 */ addiu $s2, %lo(__osBaseCounter) # addiu $s2, $s2, 0x7c88 +/* 0025C0 700019C0 26737C8C */ addiu $s3, %lo(__osViIntrCount) # addiu $s3, $s3, 0x7c8c +/* 0025C4 700019C4 2415000D */ li $s5, 13 +/* 0025C8 700019C8 27B40044 */ addiu $s4, $sp, 0x44 +.L700019CC: +/* 0025CC 700019CC 8EE4000C */ lw $a0, 0xc($s7) +.L700019D0: +/* 0025D0 700019D0 02802825 */ move $a1, $s4 +/* 0025D4 700019D4 0C0031F4 */ jal osRecvMesg +/* 0025D8 700019D8 24060001 */ li $a2, 1 +/* 0025DC 700019DC 8FAE0044 */ lw $t6, 0x44($sp) +/* 0025E0 700019E0 95C30000 */ lhu $v1, ($t6) +/* 0025E4 700019E4 10750005 */ beq $v1, $s5, .L700019FC +/* 0025E8 700019E8 00000000 */ nop +/* 0025EC 700019EC 1076002A */ beq $v1, $s6, .L70001A98 +/* 0025F0 700019F0 00000000 */ nop +/* 0025F4 700019F4 1000FFF6 */ b .L700019D0 +/* 0025F8 700019F8 8EE4000C */ lw $a0, 0xc($s7) +.L700019FC: +/* 0025FC 700019FC 0C003600 */ jal __osViSwapContext +/* 002600 70001A00 00000000 */ nop +/* 002604 70001A04 3C038005 */ lui $v1, %hi(retrace) # $v1, 0x8005 +/* 002608 70001A08 946322C0 */ lhu $v1, %lo(retrace)($v1) +/* 00260C 70001A0C 3C018005 */ lui $at, %hi(retrace) # $at, 0x8005 +/* 002610 70001A10 2463FFFF */ addiu $v1, $v1, -1 +/* 002614 70001A14 306FFFFF */ andi $t7, $v1, 0xffff +/* 002618 70001A18 15E0000E */ bnez $t7, .L70001A54 +/* 00261C 70001A1C A42F22C0 */ sh $t7, %lo(retrace)($at) +/* 002620 70001A20 0C0035FC */ jal __osViGetCurrentContext +/* 002624 70001A24 00000000 */ nop +/* 002628 70001A28 8C580010 */ lw $t8, 0x10($v0) +/* 00262C 70001A2C 00408025 */ move $s0, $v0 +/* 002630 70001A30 00003025 */ move $a2, $zero +/* 002634 70001A34 53000005 */ beql $t8, $zero, .L70001A4C +/* 002638 70001A38 96030002 */ lhu $v1, 2($s0) +/* 00263C 70001A3C 8C440010 */ lw $a0, 0x10($v0) +/* 002640 70001A40 0C003244 */ jal osSendMesg +/* 002644 70001A44 8C450014 */ lw $a1, 0x14($v0) +/* 002648 70001A48 96030002 */ lhu $v1, 2($s0) +.L70001A4C: +/* 00264C 70001A4C 3C018005 */ lui $at, %hi(retrace) # $at, 0x8005 +/* 002650 70001A50 A42322C0 */ sh $v1, %lo(retrace)($at) +.L70001A54: +/* 002654 70001A54 8E790000 */ lw $t9, ($s3) +/* 002658 70001A58 8E500000 */ lw $s0, ($s2) +/* 00265C 70001A5C 27280001 */ addiu $t0, $t9, 1 +/* 002660 70001A60 0C003190 */ jal osGetCount +/* 002664 70001A64 AE680000 */ sw $t0, ($s3) +/* 002668 70001A68 8E2D0004 */ lw $t5, 4($s1) +/* 00266C 70001A6C 00508023 */ subu $s0, $v0, $s0 +/* 002670 70001A70 8E2C0000 */ lw $t4, ($s1) +/* 002674 70001A74 020D7821 */ addu $t7, $s0, $t5 +/* 002678 70001A78 240A0000 */ li $t2, 0 +/* 00267C 70001A7C 01ED082B */ sltu $at, $t7, $t5 +/* 002680 70001A80 002A7021 */ addu $t6, $at, $t2 +/* 002684 70001A84 01CC7021 */ addu $t6, $t6, $t4 +/* 002688 70001A88 AE420000 */ sw $v0, ($s2) +/* 00268C 70001A8C AE2E0000 */ sw $t6, ($s1) +/* 002690 70001A90 1000FFCE */ b .L700019CC +/* 002694 70001A94 AE2F0004 */ sw $t7, 4($s1) +.L70001A98: +/* 002698 70001A98 0C0034C3 */ jal __osTimerInterrupt +/* 00269C 70001A9C 00000000 */ nop +/* 0026A0 70001AA0 1000FFCB */ b .L700019D0 +/* 0026A4 70001AA4 8EE4000C */ lw $a0, 0xc($s7) +/* 0026A8 70001AA8 00000000 */ nop +/* 0026AC 70001AAC 00000000 */ nop +/* 0026B0 70001AB0 00000000 */ nop +/* 0026B4 70001AB4 00000000 */ nop +/* 0026B8 70001AB8 00000000 */ nop +/* 0026BC 70001ABC 00000000 */ nop +/* 0026C0 70001AC0 8FBF0034 */ lw $ra, 0x34($sp) +/* 0026C4 70001AC4 8FB00014 */ lw $s0, 0x14($sp) +/* 0026C8 70001AC8 8FB10018 */ lw $s1, 0x18($sp) +/* 0026CC 70001ACC 8FB2001C */ lw $s2, 0x1c($sp) +/* 0026D0 70001AD0 8FB30020 */ lw $s3, 0x20($sp) +/* 0026D4 70001AD4 8FB40024 */ lw $s4, 0x24($sp) +/* 0026D8 70001AD8 8FB50028 */ lw $s5, 0x28($sp) +/* 0026DC 70001ADC 8FB6002C */ lw $s6, 0x2c($sp) +/* 0026E0 70001AE0 8FB70030 */ lw $s7, 0x30($sp) +/* 0026E4 70001AE4 03E00008 */ jr $ra +/* 0026E8 70001AE8 27BD0050 */ addiu $sp, $sp, 0x50 +.endif + +.section .data +glabel __osViDevMgr +.word 0 +glabel D_800269A4 +.word 0 +glabel D_800269A8 +.word 0 +glabel D_800269AC +.word 0 +glabel D_800269B0 +.word 0 +glabel D_800269B4 +.word 0 +glabel D_800269B8 +.word 0 + + + + +.section .rodata + + +.section .bss +glabel viThread +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 + +glabel viThreadStack + #[4096] +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.section .bss +glabel viEventQueue +.word 0, 0, 0, 0, 0, 0 + +glabel viEventBuf +.word 0, 0, 0, 0, 0, 0 + +glabel viRetraceMsg +.word 0, 0, 0, 0, 0, 0 + +glabel viCounterMsg +.word 0, 0, 0, 0, 0, 0 + +glabel retrace +.half 0 + diff --git a/src/libultra/vimodentsclan1.s b/src/libultra/vimodentsclan1.s new file mode 100644 index 0000000..e5c96ed --- /dev/null +++ b/src/libultra/vimodentsclan1.s @@ -0,0 +1,19 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .data +glabel osViModeNtscLan1 +.word 0x2000000, 0x311E, 0x140, 0x3E52239 +.word 0x20D, 0xC15, 0xC150C15, 0x6C02EC +.word 0x200, 0, 0x280, 0x400 +.word 0x2501FF, 0xE0204, 2, 0x280 +.word 0x400, 0x2501FF, 0xE0204, 2 diff --git a/src/libultra/vimodepallan1.s b/src/libultra/vimodepallan1.s new file mode 100644 index 0000000..a88a4a6 --- /dev/null +++ b/src/libultra/vimodepallan1.s @@ -0,0 +1,21 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .data +glabel osViModePalLan1 +.word 0x10000000, 0x311E, 0x140, 0x404233A +.word 0x271, 0x150C69, 0xC6F0C6E, 0x800300 +.word 0x200, 0, 0x280, 0x400 +.word 0x5F0239, 0x9026B, 2, 0x280 +.word 0x400, 0x5F0239, 0x9026B, 2 + + diff --git a/src/libultra/virepeatline.s b/src/libultra/virepeatline.s new file mode 100644 index 0000000..7bea1f4 --- /dev/null +++ b/src/libultra/virepeatline.s @@ -0,0 +1,40 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osViRepeatLine +/* 00EE60 7000E260 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00EE64 7000E264 AFBF001C */ sw $ra, 0x1c($sp) +/* 00EE68 7000E268 AFA40028 */ sw $a0, 0x28($sp) +/* 00EE6C 7000E26C 0C00617C */ jal __osDisableInt +/* 00EE70 7000E270 AFB00018 */ sw $s0, 0x18($sp) +/* 00EE74 7000E274 93AE002B */ lbu $t6, 0x2b($sp) +/* 00EE78 7000E278 00408025 */ move $s0, $v0 +/* 00EE7C 7000E27C 11C00007 */ beqz $t6, .L7000E29C +/* 00EE80 7000E280 00000000 */ nop +/* 00EE84 7000E284 3C0F8003 */ lui $t7, %hi(__osViNext) +/* 00EE88 7000E288 8DEF8044 */ lw $t7, %lo(__osViNext)($t7) +/* 00EE8C 7000E28C 95F80000 */ lhu $t8, ($t7) +/* 00EE90 7000E290 37190040 */ ori $t9, $t8, 0x40 +/* 00EE94 7000E294 10000007 */ b .L7000E2B4 +/* 00EE98 7000E298 A5F90000 */ sh $t9, ($t7) +.L7000E29C: +/* 00EE9C 7000E29C 3C088003 */ lui $t0, %hi(__osViNext) +/* 00EEA0 7000E2A0 8D088044 */ lw $t0, %lo(__osViNext)($t0) +/* 00EEA4 7000E2A4 2401FFBF */ li $at, -65 +/* 00EEA8 7000E2A8 95090000 */ lhu $t1, ($t0) +/* 00EEAC 7000E2AC 01215024 */ and $t2, $t1, $at +/* 00EEB0 7000E2B0 A50A0000 */ sh $t2, ($t0) +.L7000E2B4: +/* 00EEB4 7000E2B4 0C006184 */ jal __osRestoreInt +/* 00EEB8 7000E2B8 02002025 */ move $a0, $s0 +/* 00EEBC 7000E2BC 8FBF001C */ lw $ra, 0x1c($sp) +/* 00EEC0 7000E2C0 8FB00018 */ lw $s0, 0x18($sp) +/* 00EEC4 7000E2C4 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00EEC8 7000E2C8 03E00008 */ jr $ra +/* 00EECC 7000E2CC 00000000 */ nop diff --git a/src/libultra/virtualtophysical.s b/src/libultra/virtualtophysical.s new file mode 100644 index 0000000..f558646 --- /dev/null +++ b/src/libultra/virtualtophysical.s @@ -0,0 +1,44 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osVirtualToPhysical +/* 00F4B0 7000E8B0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00F4B4 7000E8B4 AFA40018 */ sw $a0, 0x18($sp) +/* 00F4B8 7000E8B8 8FAE0018 */ lw $t6, 0x18($sp) +/* 00F4BC 7000E8BC 3C018000 */ lui $at, 0x8000 +/* 00F4C0 7000E8C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 00F4C4 7000E8C4 01C1082B */ sltu $at, $t6, $at +/* 00F4C8 7000E8C8 14200007 */ bnez $at, .L7000E8E8 +/* 00F4CC 7000E8CC 3C01A000 */ lui $at, 0xa000 +/* 00F4D0 7000E8D0 01C1082B */ sltu $at, $t6, $at +/* 00F4D4 7000E8D4 10200004 */ beqz $at, .L7000E8E8 +/* 00F4D8 7000E8D8 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff +/* 00F4DC 7000E8DC 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 00F4E0 7000E8E0 1000000E */ b .L7000E91C +/* 00F4E4 7000E8E4 01C11024 */ and $v0, $t6, $at +.L7000E8E8: +/* 00F4E8 7000E8E8 8FAF0018 */ lw $t7, 0x18($sp) +/* 00F4EC 7000E8EC 3C01A000 */ lui $at, 0xa000 +/* 00F4F0 7000E8F0 01E1082B */ sltu $at, $t7, $at +/* 00F4F4 7000E8F4 14200007 */ bnez $at, .L7000E914 +/* 00F4F8 7000E8F8 3C01C000 */ lui $at, 0xc000 +/* 00F4FC 7000E8FC 01E1082B */ sltu $at, $t7, $at +/* 00F500 7000E900 10200004 */ beqz $at, .L7000E914 +/* 00F504 7000E904 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff +/* 00F508 7000E908 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 00F50C 7000E90C 10000003 */ b .L7000E91C +/* 00F510 7000E910 01E11024 */ and $v0, $t7, $at +.L7000E914: +/* 00F514 7000E914 0C006408 */ jal __osProbeTLB +/* 00F518 7000E918 8FA40018 */ lw $a0, 0x18($sp) +.L7000E91C: +/* 00F51C 7000E91C 8FBF0014 */ lw $ra, 0x14($sp) +/* 00F520 7000E920 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00F524 7000E924 03E00008 */ jr $ra +/* 00F528 7000E928 00000000 */ nop diff --git a/src/libultra/visetevent.s b/src/libultra/visetevent.s new file mode 100644 index 0000000..e0ae7cd --- /dev/null +++ b/src/libultra/visetevent.s @@ -0,0 +1,40 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osViSetEvent +/* 00E8C0 7000DCC0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00E8C4 7000DCC4 AFBF001C */ sw $ra, 0x1c($sp) +/* 00E8C8 7000DCC8 AFA40028 */ sw $a0, 0x28($sp) +/* 00E8CC 7000DCCC AFA5002C */ sw $a1, 0x2c($sp) +/* 00E8D0 7000DCD0 AFA60030 */ sw $a2, 0x30($sp) +/* 00E8D4 7000DCD4 0C00617C */ jal __osDisableInt +/* 00E8D8 7000DCD8 AFB00018 */ sw $s0, 0x18($sp) +/* 00E8DC 7000DCDC 3C0F8003 */ lui $t7, %hi(__osViNext) +/* 00E8E0 7000DCE0 8DEF8044 */ lw $t7, %lo(__osViNext)($t7) +/* 00E8E4 7000DCE4 8FAE0028 */ lw $t6, 0x28($sp) +/* 00E8E8 7000DCE8 3C198003 */ lui $t9, %hi(__osViNext) +/* 00E8EC 7000DCEC 3C098003 */ lui $t1, %hi(__osViNext) +/* 00E8F0 7000DCF0 ADEE0010 */ sw $t6, 0x10($t7) +/* 00E8F4 7000DCF4 8F398044 */ lw $t9, %lo(__osViNext)($t9) +/* 00E8F8 7000DCF8 8FB8002C */ lw $t8, 0x2c($sp) +/* 00E8FC 7000DCFC 00408025 */ move $s0, $v0 +/* 00E900 7000DD00 02002025 */ move $a0, $s0 +/* 00E904 7000DD04 AF380014 */ sw $t8, 0x14($t9) +/* 00E908 7000DD08 8D298044 */ lw $t1, %lo(__osViNext)($t1) +/* 00E90C 7000DD0C 8FA80030 */ lw $t0, 0x30($sp) +/* 00E910 7000DD10 0C006184 */ jal __osRestoreInt +/* 00E914 7000DD14 A5280002 */ sh $t0, 2($t1) +/* 00E918 7000DD18 8FBF001C */ lw $ra, 0x1c($sp) +/* 00E91C 7000DD1C 8FB00018 */ lw $s0, 0x18($sp) +/* 00E920 7000DD20 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00E924 7000DD24 03E00008 */ jr $ra +/* 00E928 7000DD28 00000000 */ nop + + \ No newline at end of file diff --git a/src/libultra/visetmode.s b/src/libultra/visetmode.s new file mode 100644 index 0000000..86ab2bf --- /dev/null +++ b/src/libultra/visetmode.s @@ -0,0 +1,36 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osViSetMode +/* 00EC60 7000E060 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00EC64 7000E064 AFBF001C */ sw $ra, 0x1c($sp) +/* 00EC68 7000E068 AFA40028 */ sw $a0, 0x28($sp) +/* 00EC6C 7000E06C 0C00617C */ jal __osDisableInt +/* 00EC70 7000E070 AFB00018 */ sw $s0, 0x18($sp) +/* 00EC74 7000E074 3C0F8003 */ lui $t7, %hi(__osViNext) +/* 00EC78 7000E078 8DEF8044 */ lw $t7, %lo(__osViNext)($t7) +/* 00EC7C 7000E07C 8FAE0028 */ lw $t6, 0x28($sp) +/* 00EC80 7000E080 3C198003 */ lui $t9, %hi(__osViNext) +/* 00EC84 7000E084 24180001 */ li $t8, 1 +/* 00EC88 7000E088 ADEE0008 */ sw $t6, 8($t7) +/* 00EC8C 7000E08C 8F398044 */ lw $t9, %lo(__osViNext)($t9) +/* 00EC90 7000E090 3C088003 */ lui $t0, %hi(__osViNext) +/* 00EC94 7000E094 00408025 */ move $s0, $v0 +/* 00EC98 7000E098 A7380000 */ sh $t8, ($t9) +/* 00EC9C 7000E09C 8D088044 */ lw $t0, %lo(__osViNext)($t0) +/* 00ECA0 7000E0A0 02002025 */ move $a0, $s0 +/* 00ECA4 7000E0A4 8D090008 */ lw $t1, 8($t0) +/* 00ECA8 7000E0A8 8D2A0004 */ lw $t2, 4($t1) +/* 00ECAC 7000E0AC 0C006184 */ jal __osRestoreInt +/* 00ECB0 7000E0B0 AD0A000C */ sw $t2, 0xc($t0) +/* 00ECB4 7000E0B4 8FBF001C */ lw $ra, 0x1c($sp) +/* 00ECB8 7000E0B8 8FB00018 */ lw $s0, 0x18($sp) +/* 00ECBC 7000E0BC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00ECC0 7000E0C0 03E00008 */ jr $ra +/* 00ECC4 7000E0C4 00000000 */ nop diff --git a/src/libultra/visetspecial.s b/src/libultra/visetspecial.s new file mode 100644 index 0000000..712198d --- /dev/null +++ b/src/libultra/visetspecial.s @@ -0,0 +1,128 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osViSetSpecialFeatures +/* 0103B0 7000F7B0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0103B4 7000F7B4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0103B8 7000F7B8 AFA40028 */ sw $a0, 0x28($sp) +/* 0103BC 7000F7BC 0C00617C */ jal __osDisableInt +/* 0103C0 7000F7C0 AFB00018 */ sw $s0, 0x18($sp) +/* 0103C4 7000F7C4 8FAE0028 */ lw $t6, 0x28($sp) +/* 0103C8 7000F7C8 00408025 */ move $s0, $v0 +/* 0103CC 7000F7CC 31CF0001 */ andi $t7, $t6, 1 +/* 0103D0 7000F7D0 11E00006 */ beqz $t7, .L7000F7EC +/* 0103D4 7000F7D4 00000000 */ nop +/* 0103D8 7000F7D8 3C188003 */ lui $t8, %hi(__osViNext) +/* 0103DC 7000F7DC 8F188044 */ lw $t8, %lo(__osViNext)($t8) +/* 0103E0 7000F7E0 8F19000C */ lw $t9, 0xc($t8) +/* 0103E4 7000F7E4 37280008 */ ori $t0, $t9, 8 +/* 0103E8 7000F7E8 AF08000C */ sw $t0, 0xc($t8) +.L7000F7EC: +/* 0103EC 7000F7EC 8FA90028 */ lw $t1, 0x28($sp) +/* 0103F0 7000F7F0 312A0002 */ andi $t2, $t1, 2 +/* 0103F4 7000F7F4 11400007 */ beqz $t2, .L7000F814 +/* 0103F8 7000F7F8 00000000 */ nop +/* 0103FC 7000F7FC 3C0B8003 */ lui $t3, %hi(__osViNext) +/* 010400 7000F800 8D6B8044 */ lw $t3, %lo(__osViNext)($t3) +/* 010404 7000F804 2401FFF7 */ li $at, -9 +/* 010408 7000F808 8D6C000C */ lw $t4, 0xc($t3) +/* 01040C 7000F80C 01816824 */ and $t5, $t4, $at +/* 010410 7000F810 AD6D000C */ sw $t5, 0xc($t3) +.L7000F814: +/* 010414 7000F814 8FAE0028 */ lw $t6, 0x28($sp) +/* 010418 7000F818 31CF0004 */ andi $t7, $t6, 4 +/* 01041C 7000F81C 11E00006 */ beqz $t7, .L7000F838 +/* 010420 7000F820 00000000 */ nop +/* 010424 7000F824 3C198003 */ lui $t9, %hi(__osViNext) +/* 010428 7000F828 8F398044 */ lw $t9, %lo(__osViNext)($t9) +/* 01042C 7000F82C 8F28000C */ lw $t0, 0xc($t9) +/* 010430 7000F830 35180004 */ ori $t8, $t0, 4 +/* 010434 7000F834 AF38000C */ sw $t8, 0xc($t9) +.L7000F838: +/* 010438 7000F838 8FA90028 */ lw $t1, 0x28($sp) +/* 01043C 7000F83C 312A0008 */ andi $t2, $t1, 8 +/* 010440 7000F840 11400007 */ beqz $t2, .L7000F860 +/* 010444 7000F844 00000000 */ nop +/* 010448 7000F848 3C0C8003 */ lui $t4, %hi(__osViNext) +/* 01044C 7000F84C 8D8C8044 */ lw $t4, %lo(__osViNext)($t4) +/* 010450 7000F850 2401FFFB */ li $at, -5 +/* 010454 7000F854 8D8D000C */ lw $t5, 0xc($t4) +/* 010458 7000F858 01A15824 */ and $t3, $t5, $at +/* 01045C 7000F85C AD8B000C */ sw $t3, 0xc($t4) +.L7000F860: +/* 010460 7000F860 8FAE0028 */ lw $t6, 0x28($sp) +/* 010464 7000F864 31CF0010 */ andi $t7, $t6, 0x10 +/* 010468 7000F868 11E00006 */ beqz $t7, .L7000F884 +/* 01046C 7000F86C 00000000 */ nop +/* 010470 7000F870 3C088003 */ lui $t0, %hi(__osViNext) +/* 010474 7000F874 8D088044 */ lw $t0, %lo(__osViNext)($t0) +/* 010478 7000F878 8D18000C */ lw $t8, 0xc($t0) +/* 01047C 7000F87C 37190010 */ ori $t9, $t8, 0x10 +/* 010480 7000F880 AD19000C */ sw $t9, 0xc($t0) +.L7000F884: +/* 010484 7000F884 8FA90028 */ lw $t1, 0x28($sp) +/* 010488 7000F888 312A0020 */ andi $t2, $t1, 0x20 +/* 01048C 7000F88C 11400007 */ beqz $t2, .L7000F8AC +/* 010490 7000F890 00000000 */ nop +/* 010494 7000F894 3C0D8003 */ lui $t5, %hi(__osViNext) +/* 010498 7000F898 8DAD8044 */ lw $t5, %lo(__osViNext)($t5) +/* 01049C 7000F89C 2401FFEF */ li $at, -17 +/* 0104A0 7000F8A0 8DAB000C */ lw $t3, 0xc($t5) +/* 0104A4 7000F8A4 01616024 */ and $t4, $t3, $at +/* 0104A8 7000F8A8 ADAC000C */ sw $t4, 0xc($t5) +.L7000F8AC: +/* 0104AC 7000F8AC 8FAE0028 */ lw $t6, 0x28($sp) +/* 0104B0 7000F8B0 31CF0040 */ andi $t7, $t6, 0x40 +/* 0104B4 7000F8B4 11E0000D */ beqz $t7, .L7000F8EC +/* 0104B8 7000F8B8 00000000 */ nop +/* 0104BC 7000F8BC 3C188003 */ lui $t8, %hi(__osViNext) +/* 0104C0 7000F8C0 8F188044 */ lw $t8, %lo(__osViNext)($t8) +/* 0104C4 7000F8C4 3C010001 */ lui $at, 1 +/* 0104C8 7000F8C8 3C098003 */ lui $t1, %hi(__osViNext) +/* 0104CC 7000F8CC 8F19000C */ lw $t9, 0xc($t8) +/* 0104D0 7000F8D0 03214025 */ or $t0, $t9, $at +/* 0104D4 7000F8D4 AF08000C */ sw $t0, 0xc($t8) +/* 0104D8 7000F8D8 8D298044 */ lw $t1, %lo(__osViNext)($t1) +/* 0104DC 7000F8DC 2401FCFF */ li $at, -769 +/* 0104E0 7000F8E0 8D2A000C */ lw $t2, 0xc($t1) +/* 0104E4 7000F8E4 01415824 */ and $t3, $t2, $at +/* 0104E8 7000F8E8 AD2B000C */ sw $t3, 0xc($t1) +.L7000F8EC: +/* 0104EC 7000F8EC 8FAC0028 */ lw $t4, 0x28($sp) +/* 0104F0 7000F8F0 318D0080 */ andi $t5, $t4, 0x80 +/* 0104F4 7000F8F4 11A00010 */ beqz $t5, .L7000F938 +/* 0104F8 7000F8F8 00000000 */ nop +/* 0104FC 7000F8FC 3C0E8003 */ lui $t6, %hi(__osViNext) +/* 010500 7000F900 8DCE8044 */ lw $t6, %lo(__osViNext)($t6) +/* 010504 7000F904 3C01FFFE */ lui $at, (0xFFFEFFFF >> 16) # lui $at, 0xfffe +/* 010508 7000F908 3421FFFF */ ori $at, (0xFFFEFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 01050C 7000F90C 8DCF000C */ lw $t7, 0xc($t6) +/* 010510 7000F910 3C088003 */ lui $t0, %hi(__osViNext) +/* 010514 7000F914 01E1C824 */ and $t9, $t7, $at +/* 010518 7000F918 ADD9000C */ sw $t9, 0xc($t6) +/* 01051C 7000F91C 8D088044 */ lw $t0, %lo(__osViNext)($t0) +/* 010520 7000F920 8D0A0008 */ lw $t2, 8($t0) +/* 010524 7000F924 8D18000C */ lw $t8, 0xc($t0) +/* 010528 7000F928 8D4B0004 */ lw $t3, 4($t2) +/* 01052C 7000F92C 31690300 */ andi $t1, $t3, 0x300 +/* 010530 7000F930 03096025 */ or $t4, $t8, $t1 +/* 010534 7000F934 AD0C000C */ sw $t4, 0xc($t0) +.L7000F938: +/* 010538 7000F938 3C0D8003 */ lui $t5, %hi(__osViNext) +/* 01053C 7000F93C 8DAD8044 */ lw $t5, %lo(__osViNext)($t5) +/* 010540 7000F940 02002025 */ move $a0, $s0 +/* 010544 7000F944 95AF0000 */ lhu $t7, ($t5) +/* 010548 7000F948 35F90008 */ ori $t9, $t7, 8 +/* 01054C 7000F94C 0C006184 */ jal __osRestoreInt +/* 010550 7000F950 A5B90000 */ sh $t9, ($t5) +/* 010554 7000F954 8FBF001C */ lw $ra, 0x1c($sp) +/* 010558 7000F958 8FB00018 */ lw $s0, 0x18($sp) +/* 01055C 7000F95C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 010560 7000F960 03E00008 */ jr $ra +/* 010564 7000F964 00000000 */ nop diff --git a/src/libultra/visetxscale.s b/src/libultra/visetxscale.s new file mode 100644 index 0000000..9b21623 --- /dev/null +++ b/src/libultra/visetxscale.s @@ -0,0 +1,88 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osViSetXScale +/* 00ECD0 7000E0D0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00ECD4 7000E0D4 AFBF001C */ sw $ra, 0x1c($sp) +/* 00ECD8 7000E0D8 E7AC0028 */ swc1 $f12, 0x28($sp) +/* 00ECDC 7000E0DC AFB10018 */ sw $s1, 0x18($sp) +/* 00ECE0 7000E0E0 0C00617C */ jal __osDisableInt +/* 00ECE4 7000E0E4 AFB00014 */ sw $s0, 0x14($sp) +/* 00ECE8 7000E0E8 3C0E8003 */ lui $t6, %hi(__osViNext) +/* 00ECEC 7000E0EC 8DCE8044 */ lw $t6, %lo(__osViNext)($t6) +/* 00ECF0 7000E0F0 C7A40028 */ lwc1 $f4, 0x28($sp) +/* 00ECF4 7000E0F4 3C0F8003 */ lui $t7, %hi(__osViNext) +/* 00ECF8 7000E0F8 3C088003 */ lui $t0, %hi(__osViNext) +/* 00ECFC 7000E0FC E5C40018 */ swc1 $f4, 0x18($t6) +/* 00ED00 7000E100 8DEF8044 */ lw $t7, %lo(__osViNext)($t7) +/* 00ED04 7000E104 00408825 */ move $s1, $v0 +/* 00ED08 7000E108 95F80000 */ lhu $t8, ($t7) +/* 00ED0C 7000E10C 37190002 */ ori $t9, $t8, 2 +/* 00ED10 7000E110 A5F90000 */ sh $t9, ($t7) +/* 00ED14 7000E114 8D088044 */ lw $t0, %lo(__osViNext)($t0) +/* 00ED18 7000E118 8D090008 */ lw $t1, 8($t0) +/* 00ED1C 7000E11C C5060018 */ lwc1 $f6, 0x18($t0) +/* 00ED20 7000E120 8D300020 */ lw $s0, 0x20($t1) +/* 00ED24 7000E124 320A0FFF */ andi $t2, $s0, 0xfff +/* 00ED28 7000E128 01408025 */ move $s0, $t2 +/* 00ED2C 7000E12C 44904000 */ mtc1 $s0, $f8 +/* 00ED30 7000E130 06010005 */ bgez $s0, .L7000E148 +/* 00ED34 7000E134 468042A0 */ cvt.s.w $f10, $f8 +/* 00ED38 7000E138 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 00ED3C 7000E13C 44818000 */ mtc1 $at, $f16 +/* 00ED40 7000E140 00000000 */ nop +/* 00ED44 7000E144 46105280 */ add.s $f10, $f10, $f16 +.L7000E148: +/* 00ED48 7000E148 460A3482 */ mul.s $f18, $f6, $f10 +/* 00ED4C 7000E14C 240C0001 */ li $t4, 1 +/* 00ED50 7000E150 444BF800 */ cfc1 $t3, $31 +/* 00ED54 7000E154 44CCF800 */ ctc1 $t4, $31 +/* 00ED58 7000E158 00000000 */ nop +/* 00ED5C 7000E15C 46009124 */ cvt.w.s $f4, $f18 +/* 00ED60 7000E160 444CF800 */ cfc1 $t4, $31 +/* 00ED64 7000E164 00000000 */ nop +/* 00ED68 7000E168 31810004 */ andi $at, $t4, 4 +/* 00ED6C 7000E16C 318C0078 */ andi $t4, $t4, 0x78 +/* 00ED70 7000E170 11800013 */ beqz $t4, .L7000E1C0 +/* 00ED74 7000E174 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 00ED78 7000E178 44812000 */ mtc1 $at, $f4 +/* 00ED7C 7000E17C 240C0001 */ li $t4, 1 +/* 00ED80 7000E180 46049101 */ sub.s $f4, $f18, $f4 +/* 00ED84 7000E184 44CCF800 */ ctc1 $t4, $31 +/* 00ED88 7000E188 00000000 */ nop +/* 00ED8C 7000E18C 46002124 */ cvt.w.s $f4, $f4 +/* 00ED90 7000E190 444CF800 */ cfc1 $t4, $31 +/* 00ED94 7000E194 00000000 */ nop +/* 00ED98 7000E198 31810004 */ andi $at, $t4, 4 +/* 00ED9C 7000E19C 318C0078 */ andi $t4, $t4, 0x78 +/* 00EDA0 7000E1A0 15800005 */ bnez $t4, .L7000E1B8 +/* 00EDA4 7000E1A4 00000000 */ nop +/* 00EDA8 7000E1A8 440C2000 */ mfc1 $t4, $f4 +/* 00EDAC 7000E1AC 3C018000 */ lui $at, 0x8000 +/* 00EDB0 7000E1B0 10000007 */ b .L7000E1D0 +/* 00EDB4 7000E1B4 01816025 */ or $t4, $t4, $at +.L7000E1B8: +/* 00EDB8 7000E1B8 10000005 */ b .L7000E1D0 +/* 00EDBC 7000E1BC 240CFFFF */ li $t4, -1 +.L7000E1C0: +/* 00EDC0 7000E1C0 440C2000 */ mfc1 $t4, $f4 +/* 00EDC4 7000E1C4 00000000 */ nop +/* 00EDC8 7000E1C8 0580FFFB */ bltz $t4, .L7000E1B8 +/* 00EDCC 7000E1CC 00000000 */ nop +.L7000E1D0: +/* 00EDD0 7000E1D0 44CBF800 */ ctc1 $t3, $31 +/* 00EDD4 7000E1D4 318D0FFF */ andi $t5, $t4, 0xfff +/* 00EDD8 7000E1D8 AD0D0020 */ sw $t5, 0x20($t0) +/* 00EDDC 7000E1DC 0C006184 */ jal __osRestoreInt +/* 00EDE0 7000E1E0 02202025 */ move $a0, $s1 +/* 00EDE4 7000E1E4 8FBF001C */ lw $ra, 0x1c($sp) +/* 00EDE8 7000E1E8 8FB00014 */ lw $s0, 0x14($sp) +/* 00EDEC 7000E1EC 8FB10018 */ lw $s1, 0x18($sp) +/* 00EDF0 7000E1F0 03E00008 */ jr $ra +/* 00EDF4 7000E1F4 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/libultra/visetyscale.s b/src/libultra/visetyscale.s new file mode 100644 index 0000000..dada628 --- /dev/null +++ b/src/libultra/visetyscale.s @@ -0,0 +1,32 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osViSetYScale +/* 00EE00 7000E200 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00EE04 7000E204 AFBF001C */ sw $ra, 0x1c($sp) +/* 00EE08 7000E208 E7AC0028 */ swc1 $f12, 0x28($sp) +/* 00EE0C 7000E20C 0C00617C */ jal __osDisableInt +/* 00EE10 7000E210 AFB00018 */ sw $s0, 0x18($sp) +/* 00EE14 7000E214 3C0E8003 */ lui $t6, %hi(__osViNext) +/* 00EE18 7000E218 8DCE8044 */ lw $t6, %lo(__osViNext)($t6) +/* 00EE1C 7000E21C C7A40028 */ lwc1 $f4, 0x28($sp) +/* 00EE20 7000E220 3C0F8003 */ lui $t7, %hi(__osViNext) +/* 00EE24 7000E224 00408025 */ move $s0, $v0 +/* 00EE28 7000E228 E5C40024 */ swc1 $f4, 0x24($t6) +/* 00EE2C 7000E22C 8DEF8044 */ lw $t7, %lo(__osViNext)($t7) +/* 00EE30 7000E230 02002025 */ move $a0, $s0 +/* 00EE34 7000E234 95F80000 */ lhu $t8, ($t7) +/* 00EE38 7000E238 37190004 */ ori $t9, $t8, 4 +/* 00EE3C 7000E23C 0C006184 */ jal __osRestoreInt +/* 00EE40 7000E240 A5F90000 */ sh $t9, ($t7) +/* 00EE44 7000E244 8FBF001C */ lw $ra, 0x1c($sp) +/* 00EE48 7000E248 8FB00018 */ lw $s0, 0x18($sp) +/* 00EE4C 7000E24C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00EE50 7000E250 03E00008 */ jr $ra +/* 00EE54 7000E254 00000000 */ nop diff --git a/src/libultra/viswapbuf.s b/src/libultra/viswapbuf.s new file mode 100644 index 0000000..46b439b --- /dev/null +++ b/src/libultra/viswapbuf.s @@ -0,0 +1,31 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +glabel osViSwapBuffer +/* 00F090 7000E490 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00F094 7000E494 AFBF0014 */ sw $ra, 0x14($sp) +/* 00F098 7000E498 0C00617C */ jal __osDisableInt +/* 00F09C 7000E49C AFA40020 */ sw $a0, 0x20($sp) +/* 00F0A0 7000E4A0 3C0F8003 */ lui $t7, %hi(__osViNext) +/* 00F0A4 7000E4A4 8DEF8044 */ lw $t7, %lo(__osViNext)($t7) +/* 00F0A8 7000E4A8 8FAE0020 */ lw $t6, 0x20($sp) +/* 00F0AC 7000E4AC AFA2001C */ sw $v0, 0x1c($sp) +/* 00F0B0 7000E4B0 3C188003 */ lui $t8, %hi(__osViNext) +/* 00F0B4 7000E4B4 ADEE0004 */ sw $t6, 4($t7) +/* 00F0B8 7000E4B8 8F188044 */ lw $t8, %lo(__osViNext)($t8) +/* 00F0BC 7000E4BC 97190000 */ lhu $t9, ($t8) +/* 00F0C0 7000E4C0 37280010 */ ori $t0, $t9, 0x10 +/* 00F0C4 7000E4C4 A7080000 */ sh $t0, ($t8) +/* 00F0C8 7000E4C8 0C006184 */ jal __osRestoreInt +/* 00F0CC 7000E4CC 8FA4001C */ lw $a0, 0x1c($sp) +/* 00F0D0 7000E4D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 00F0D4 7000E4D4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00F0D8 7000E4D8 03E00008 */ jr $ra +/* 00F0DC 7000E4DC 00000000 */ nop diff --git a/src/libultra/viswapcontext.s b/src/libultra/viswapcontext.s new file mode 100644 index 0000000..1902863 --- /dev/null +++ b/src/libultra/viswapcontext.s @@ -0,0 +1,243 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel __osViSwapContext +/* 019770 70018B70 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 019774 70018B74 AFB1001C */ sw $s1, 0x1c($sp) +/* 019778 70018B78 AFBF0024 */ sw $ra, 0x24($sp) +/* 01977C 70018B7C AFB20020 */ sw $s2, 0x20($sp) +/* 019780 70018B80 AFB00018 */ sw $s0, 0x18($sp) +/* 019784 70018B84 AFA00030 */ sw $zero, 0x30($sp) +/* 019788 70018B88 3C118003 */ lui $s1, %hi(__osViNext) +/* 01978C 70018B8C 3C0EA440 */ lui $t6, %hi(VI_CURRENT_REG) # $t6, 0xa440 +/* 019790 70018B90 8E318044 */ lw $s1, %lo(__osViNext)($s1) +/* 019794 70018B94 8DCF0010 */ lw $t7, %lo(VI_CURRENT_REG)($t6) +/* 019798 70018B98 8E300008 */ lw $s0, 8($s1) +/* 01979C 70018B9C 31F80001 */ andi $t8, $t7, 1 +/* 0197A0 70018BA0 AFB80030 */ sw $t8, 0x30($sp) +/* 0197A4 70018BA4 0C003A2C */ jal osVirtualToPhysical +/* 0197A8 70018BA8 8E240004 */ lw $a0, 4($s1) +/* 0197AC 70018BAC 8FB90030 */ lw $t9, 0x30($sp) +/* 0197B0 70018BB0 00409025 */ move $s2, $v0 +/* 0197B4 70018BB4 00194080 */ sll $t0, $t9, 2 +/* 0197B8 70018BB8 01194021 */ addu $t0, $t0, $t9 +/* 0197BC 70018BBC 00084080 */ sll $t0, $t0, 2 +/* 0197C0 70018BC0 02084821 */ addu $t1, $s0, $t0 +/* 0197C4 70018BC4 8D2A0028 */ lw $t2, 0x28($t1) +/* 0197C8 70018BC8 01525821 */ addu $t3, $t2, $s2 +/* 0197CC 70018BCC AFAB003C */ sw $t3, 0x3c($sp) +/* 0197D0 70018BD0 962C0000 */ lhu $t4, ($s1) +/* 0197D4 70018BD4 318D0002 */ andi $t5, $t4, 2 +/* 0197D8 70018BD8 11A00008 */ beqz $t5, .L70018BFC +/* 0197DC 70018BDC 00000000 */ nop +/* 0197E0 70018BE0 8E0F0020 */ lw $t7, 0x20($s0) +/* 0197E4 70018BE4 8E2E0020 */ lw $t6, 0x20($s1) +/* 0197E8 70018BE8 2401F000 */ li $at, -4096 +/* 0197EC 70018BEC 01E1C024 */ and $t8, $t7, $at +/* 0197F0 70018BF0 01D8C825 */ or $t9, $t6, $t8 +/* 0197F4 70018BF4 10000003 */ b .L70018C04 +/* 0197F8 70018BF8 AE390020 */ sw $t9, 0x20($s1) +.L70018BFC: +/* 0197FC 70018BFC 8E080020 */ lw $t0, 0x20($s0) +/* 019800 70018C00 AE280020 */ sw $t0, 0x20($s1) +.L70018C04: +/* 019804 70018C04 96290000 */ lhu $t1, ($s1) +/* 019808 70018C08 312A0004 */ andi $t2, $t1, 4 +/* 01980C 70018C0C 11400041 */ beqz $t2, .L70018D14 +/* 019810 70018C10 00000000 */ nop +/* 019814 70018C14 8FAB0030 */ lw $t3, 0x30($sp) +/* 019818 70018C18 000B6080 */ sll $t4, $t3, 2 +/* 01981C 70018C1C 018B6021 */ addu $t4, $t4, $t3 +/* 019820 70018C20 000C6080 */ sll $t4, $t4, 2 +/* 019824 70018C24 020C6821 */ addu $t5, $s0, $t4 +/* 019828 70018C28 8DAF002C */ lw $t7, 0x2c($t5) +/* 01982C 70018C2C 31EE0FFF */ andi $t6, $t7, 0xfff +/* 019830 70018C30 448E3000 */ mtc1 $t6, $f6 +/* 019834 70018C34 AFAE0034 */ sw $t6, 0x34($sp) +/* 019838 70018C38 C6240024 */ lwc1 $f4, 0x24($s1) +/* 01983C 70018C3C 05C10005 */ bgez $t6, .L70018C54 +/* 019840 70018C40 46803220 */ cvt.s.w $f8, $f6 +/* 019844 70018C44 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 019848 70018C48 44815000 */ mtc1 $at, $f10 +/* 01984C 70018C4C 00000000 */ nop +/* 019850 70018C50 460A4200 */ add.s $f8, $f8, $f10 +.L70018C54: +/* 019854 70018C54 46082402 */ mul.s $f16, $f4, $f8 +/* 019858 70018C58 24190001 */ li $t9, 1 +/* 01985C 70018C5C 4458F800 */ cfc1 $t8, $31 +/* 019860 70018C60 44D9F800 */ ctc1 $t9, $31 +/* 019864 70018C64 00000000 */ nop +/* 019868 70018C68 460084A4 */ cvt.w.s $f18, $f16 +/* 01986C 70018C6C 4459F800 */ cfc1 $t9, $31 +/* 019870 70018C70 00000000 */ nop +/* 019874 70018C74 33210004 */ andi $at, $t9, 4 +/* 019878 70018C78 33390078 */ andi $t9, $t9, 0x78 +/* 01987C 70018C7C 13200013 */ beqz $t9, .L70018CCC +/* 019880 70018C80 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 019884 70018C84 44819000 */ mtc1 $at, $f18 +/* 019888 70018C88 24190001 */ li $t9, 1 +/* 01988C 70018C8C 46128481 */ sub.s $f18, $f16, $f18 +/* 019890 70018C90 44D9F800 */ ctc1 $t9, $31 +/* 019894 70018C94 00000000 */ nop +/* 019898 70018C98 460094A4 */ cvt.w.s $f18, $f18 +/* 01989C 70018C9C 4459F800 */ cfc1 $t9, $31 +/* 0198A0 70018CA0 00000000 */ nop +/* 0198A4 70018CA4 33210004 */ andi $at, $t9, 4 +/* 0198A8 70018CA8 33390078 */ andi $t9, $t9, 0x78 +/* 0198AC 70018CAC 17200005 */ bnez $t9, .L70018CC4 +/* 0198B0 70018CB0 00000000 */ nop +/* 0198B4 70018CB4 44199000 */ mfc1 $t9, $f18 +/* 0198B8 70018CB8 3C018000 */ lui $at, 0x8000 +/* 0198BC 70018CBC 10000007 */ b .L70018CDC +/* 0198C0 70018CC0 0321C825 */ or $t9, $t9, $at +.L70018CC4: +/* 0198C4 70018CC4 10000005 */ b .L70018CDC +/* 0198C8 70018CC8 2419FFFF */ li $t9, -1 +.L70018CCC: +/* 0198CC 70018CCC 44199000 */ mfc1 $t9, $f18 +/* 0198D0 70018CD0 00000000 */ nop +/* 0198D4 70018CD4 0720FFFB */ bltz $t9, .L70018CC4 +/* 0198D8 70018CD8 00000000 */ nop +.L70018CDC: +/* 0198DC 70018CDC AE39002C */ sw $t9, 0x2c($s1) +/* 0198E0 70018CE0 8FA90030 */ lw $t1, 0x30($sp) +/* 0198E4 70018CE4 8E28002C */ lw $t0, 0x2c($s1) +/* 0198E8 70018CE8 2401F000 */ li $at, -4096 +/* 0198EC 70018CEC 00095080 */ sll $t2, $t1, 2 +/* 0198F0 70018CF0 01495021 */ addu $t2, $t2, $t1 +/* 0198F4 70018CF4 000A5080 */ sll $t2, $t2, 2 +/* 0198F8 70018CF8 020A5821 */ addu $t3, $s0, $t2 +/* 0198FC 70018CFC 8D6C002C */ lw $t4, 0x2c($t3) +/* 019900 70018D00 44D8F800 */ ctc1 $t8, $31 +/* 019904 70018D04 01816824 */ and $t5, $t4, $at +/* 019908 70018D08 010D7825 */ or $t7, $t0, $t5 +/* 01990C 70018D0C 10000008 */ b .L70018D30 +/* 019910 70018D10 AE2F002C */ sw $t7, 0x2c($s1) +.L70018D14: +/* 019914 70018D14 8FAE0030 */ lw $t6, 0x30($sp) +/* 019918 70018D18 000EC080 */ sll $t8, $t6, 2 +/* 01991C 70018D1C 030EC021 */ addu $t8, $t8, $t6 +/* 019920 70018D20 0018C080 */ sll $t8, $t8, 2 +/* 019924 70018D24 0218C821 */ addu $t9, $s0, $t8 +/* 019928 70018D28 8F29002C */ lw $t1, 0x2c($t9) +/* 01992C 70018D2C AE29002C */ sw $t1, 0x2c($s1) +.L70018D30: +/* 019930 70018D30 8E0A001C */ lw $t2, 0x1c($s0) +/* 019934 70018D34 AFAA0038 */ sw $t2, 0x38($sp) +/* 019938 70018D38 962B0000 */ lhu $t3, ($s1) +/* 01993C 70018D3C 316C0020 */ andi $t4, $t3, 0x20 +/* 019940 70018D40 11800002 */ beqz $t4, .L70018D4C +/* 019944 70018D44 00000000 */ nop +/* 019948 70018D48 AFA00038 */ sw $zero, 0x38($sp) +.L70018D4C: +/* 01994C 70018D4C 96280000 */ lhu $t0, ($s1) +/* 019950 70018D50 310D0040 */ andi $t5, $t0, 0x40 +/* 019954 70018D54 11A00005 */ beqz $t5, .L70018D6C +/* 019958 70018D58 00000000 */ nop +/* 01995C 70018D5C AE20002C */ sw $zero, 0x2c($s1) +/* 019960 70018D60 0C003A2C */ jal osVirtualToPhysical +/* 019964 70018D64 8E240004 */ lw $a0, 4($s1) +/* 019968 70018D68 AFA2003C */ sw $v0, 0x3c($sp) +.L70018D6C: +/* 01996C 70018D6C 962F0000 */ lhu $t7, ($s1) +/* 019970 70018D70 31EE0080 */ andi $t6, $t7, 0x80 +/* 019974 70018D74 11C00009 */ beqz $t6, .L70018D9C +/* 019978 70018D78 00000000 */ nop +/* 01997C 70018D7C 96380028 */ lhu $t8, 0x28($s1) +/* 019980 70018D80 3C0103FF */ lui $at, 0x3ff +/* 019984 70018D84 8E240004 */ lw $a0, 4($s1) +/* 019988 70018D88 0018CC00 */ sll $t9, $t8, 0x10 +/* 01998C 70018D8C 03214824 */ and $t1, $t9, $at +/* 019990 70018D90 0C003A2C */ jal osVirtualToPhysical +/* 019994 70018D94 AE29002C */ sw $t1, 0x2c($s1) +/* 019998 70018D98 AFA2003C */ sw $v0, 0x3c($sp) +.L70018D9C: +/* 01999C 70018D9C 8FAA003C */ lw $t2, 0x3c($sp) +/* 0199A0 70018DA0 3C0BA440 */ lui $t3, %hi(VI_LEAP_REG) # $t3, 0xa440 +/* 0199A4 70018DA4 3C08A440 */ lui $t0, %hi(VI_V_BURST_REG) # $t0, 0xa440 +/* 0199A8 70018DA8 AD6A0004 */ sw $t2, %lo(VI_ORIGIN_REG)($t3) +/* 0199AC 70018DAC 8E0C0008 */ lw $t4, 8($s0) +/* 0199B0 70018DB0 3C0FA440 */ lui $t7, %hi(VI_BURST_REG) # $t7, 0xa440 +/* 0199B4 70018DB4 3C18A440 */ lui $t8, %hi(VI_V_SYNC_REG) # $t8, 0xa440 +/* 0199B8 70018DB8 AD0C0008 */ sw $t4, %lo(VI_WIDTH_REG)($t0) +/* 0199BC 70018DBC 8E0D000C */ lw $t5, 0xc($s0) +/* 0199C0 70018DC0 3C09A440 */ lui $t1, %hi(VI_H_SYNC_REG) # $t1, 0xa440 +/* 0199C4 70018DC4 3C018003 */ lui $at, %hi(__osViNext) +/* 0199C8 70018DC8 ADED0014 */ sw $t5, %lo(VI_BURST_REG)($t7) +/* 0199CC 70018DCC 8E0E0010 */ lw $t6, 0x10($s0) +/* 0199D0 70018DD0 AF0E0018 */ sw $t6, %lo(VI_V_SYNC_REG)($t8) +/* 0199D4 70018DD4 8E190014 */ lw $t9, 0x14($s0) +/* 0199D8 70018DD8 AD39001C */ sw $t9, %lo(VI_H_SYNC_REG)($t1) +/* 0199DC 70018DDC 8E0A0018 */ lw $t2, 0x18($s0) +/* 0199E0 70018DE0 3C19A440 */ lui $t9, %hi(VI_INTR_REG) # $t9, 0xa440 +/* 0199E4 70018DE4 AD6A0020 */ sw $t2, %lo(VI_LEAP_REG)($t3) +/* 0199E8 70018DE8 8FAC0038 */ lw $t4, 0x38($sp) +/* 0199EC 70018DEC AD0C0024 */ sw $t4, %lo(VI_H_START_REG)($t0) +/* 0199F0 70018DF0 8FAD0030 */ lw $t5, 0x30($sp) +/* 0199F4 70018DF4 000D7880 */ sll $t7, $t5, 2 +/* 0199F8 70018DF8 01ED7821 */ addu $t7, $t7, $t5 +/* 0199FC 70018DFC 000F7880 */ sll $t7, $t7, 2 +/* 019A00 70018E00 020F7021 */ addu $t6, $s0, $t7 +/* 019A04 70018E04 8DD80030 */ lw $t8, 0x30($t6) +/* 019A08 70018E08 AF380028 */ sw $t8, %lo(VI_V_START_REG)($t9) +/* 019A0C 70018E0C 8FA90030 */ lw $t1, 0x30($sp) +/* 019A10 70018E10 00095080 */ sll $t2, $t1, 2 +/* 019A14 70018E14 01495021 */ addu $t2, $t2, $t1 +/* 019A18 70018E18 000A5080 */ sll $t2, $t2, 2 +/* 019A1C 70018E1C 020A5821 */ addu $t3, $s0, $t2 +/* 019A20 70018E20 8D6C0034 */ lw $t4, 0x34($t3) +/* 019A24 70018E24 3C0AA440 */ lui $t2, %hi(VI_X_SCALE_REG) # $t2, 0xa440 +/* 019A28 70018E28 AD0C002C */ sw $t4, %lo(VI_V_BURST_REG)($t0) +/* 019A2C 70018E2C 8FAD0030 */ lw $t5, 0x30($sp) +/* 019A30 70018E30 3C0CA440 */ lui $t4, %hi(VI_Y_SCALE_REG) # $t4, 0xa440 +/* 019A34 70018E34 000D7880 */ sll $t7, $t5, 2 +/* 019A38 70018E38 01ED7821 */ addu $t7, $t7, $t5 +/* 019A3C 70018E3C 000F7880 */ sll $t7, $t7, 2 +/* 019A40 70018E40 020F7021 */ addu $t6, $s0, $t7 +/* 019A44 70018E44 8DD80038 */ lw $t8, 0x38($t6) +/* 019A48 70018E48 3C0DA440 */ lui $t5, 0xa440 +/* 019A4C 70018E4C 3C0F8003 */ lui $t7, %hi(__osViCurr) +/* 019A50 70018E50 AF38000C */ sw $t8, %lo(VI_INTR_REG)($t9) +/* 019A54 70018E54 8E290020 */ lw $t1, 0x20($s1) +/* 019A58 70018E58 3C188003 */ lui $t8, %hi(__osViCurr) +/* 019A5C 70018E5C 3C0E8003 */ lui $t6, %hi(__osViNext) +/* 019A60 70018E60 AD490030 */ sw $t1, %lo(VI_X_SCALE_REG)($t2) +/* 019A64 70018E64 8E2B002C */ lw $t3, 0x2c($s1) +/* 019A68 70018E68 AD8B0034 */ sw $t3, %lo(VI_Y_SCALE_REG)($t4) +/* 019A6C 70018E6C 8E28000C */ lw $t0, 0xc($s1) +/* 019A70 70018E70 ADA80000 */ sw $t0, ($t5) +/* 019A74 70018E74 8DEF8040 */ lw $t7, %lo(__osViCurr)($t7) +/* 019A78 70018E78 AC2F8044 */ sw $t7, %lo(__osViNext)($at) +/* 019A7C 70018E7C 3C018003 */ lui $at, %hi(__osViCurr) +/* 019A80 70018E80 AC318040 */ sw $s1, %lo(__osViCurr)($at) +/* 019A84 70018E84 8F188040 */ lw $t8, %lo(__osViCurr)($t8) +/* 019A88 70018E88 8DCE8044 */ lw $t6, %lo(__osViNext)($t6) +/* 019A8C 70018E8C 270A0030 */ addiu $t2, $t8, 0x30 +.L70018E90: +/* 019A90 70018E90 8F010000 */ lw $at, ($t8) +/* 019A94 70018E94 2718000C */ addiu $t8, $t8, 0xc +/* 019A98 70018E98 25CE000C */ addiu $t6, $t6, 0xc +/* 019A9C 70018E9C ADC1FFF4 */ sw $at, -0xc($t6) +/* 019AA0 70018EA0 8F01FFF8 */ lw $at, -8($t8) +/* 019AA4 70018EA4 ADC1FFF8 */ sw $at, -8($t6) +/* 019AA8 70018EA8 8F01FFFC */ lw $at, -4($t8) +/* 019AAC 70018EAC 170AFFF8 */ bne $t8, $t2, .L70018E90 +/* 019AB0 70018EB0 ADC1FFFC */ sw $at, -4($t6) +/* 019AB4 70018EB4 8FBF0024 */ lw $ra, 0x24($sp) +/* 019AB8 70018EB8 8FB00018 */ lw $s0, 0x18($sp) +/* 019ABC 70018EBC 8FB1001C */ lw $s1, 0x1c($sp) +/* 019AC0 70018EC0 8FB20020 */ lw $s2, 0x20($sp) +/* 019AC4 70018EC4 03E00008 */ jr $ra +/* 019AC8 70018EC8 27BD0048 */ addiu $sp, $sp, 0x48 + +/* 019ACC 70018ECC 00000000 */ nop diff --git a/src/libultra/vitbl.s b/src/libultra/vitbl.s new file mode 100644 index 0000000..17862fc --- /dev/null +++ b/src/libultra/vitbl.s @@ -0,0 +1,224 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" + +.section .data +glabel osViModeTable +D_800269C0: +glabel osViModeTable_osViModeNtscLpn1 +.word 0, 0x320E, 0x140, 0x3E52239, 0x20D +.word 0xC15, 0xC150C15, 0x6C02EC, 0x200, 0 +.word 0x280, 0x400, 0x2501FF, 0xE0204, 2 +.word 0x280, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscLpf1 +.word 0x1000000, 0x324E, 0x140, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x200, 0 +.word 0x280, 0x1000400, 0x2301FD, 0xE0204, 2 +.word 0x280, 0x3000400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscLan1 +.word 0x2000000, 0x311E, 0x140, 0x3E52239, 0x20D +.word 0xC15, 0xC150C15, 0x6C02EC, 0x200, 0 +.word 0x280, 0x400, 0x2501FF, 0xE0204, 2 +.word 0x280, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscLaf1 +.word 0x3000000, 0x305E, 0x140, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x200, 0 +.word 0x280, 0x1000400, 0x2301FD, 0xE0204, 2 +.word 0x280, 0x3000400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscLpn2 +.word 0x4000000, 0x330F, 0x140, 0x3E52239, 0x20D +.word 0xC15, 0xC150C15, 0x6C02EC, 0x200, 0 +.word 0x500, 0x400, 0x2501FF, 0xE0204, 2 +.word 0x500, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscLpf2 +.word 0x5000000, 0x324F, 0x140, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x200, 0 +.word 0x500, 0x1000400, 0x2301FD, 0xE0204, 2 +.word 0x500, 0x3000400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscLan2 +.word 0x6000000, 0x301F, 0x140, 0x3E52239, 0x20D +.word 0xC15, 0xC150C15, 0x6C02EC, 0x200, 0 +.word 0x500, 0x400, 0x2501FF, 0xE0204, 2 +.word 0x500, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscLaf2 +.word 0x7000000, 0x305F, 0x140, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x200, 0 +.word 0x500, 0x1000400, 0x2301FD, 0xE0204, 2 +.word 0x500, 0x3000400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscHpn1 +.word 0x8000000, 0x324E, 0x500, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x400, 0 +.word 0x500, 0x400, 0x2301FD, 0xE0204, 2 +.word 0xA00, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscHpf1 +.word 0x9000000, 0x324E, 0x280, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x400, 0 +.word 0x500, 0x2000800, 0x2301FD, 0xE0204, 2 +.word 0xA00, 0x2000800, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscHan1 +.word 0xA000000, 0x305E, 0x500, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x400, 0 +.word 0x500, 0x400, 0x2301FD, 0xE0204, 2 +.word 0xA00, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscHaf1 +.word 0xB000000, 0x305E, 0x280, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x400, 0 +.word 0x500, 0x2000800, 0x2301FD, 0xE0204, 2 +.word 0xA00, 0x2000800, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscHpn2 +.word 0xC000000, 0x334F, 0x500, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x400, 0 +.word 0xA00, 0x400, 0x2301FD, 0xE0204, 2 +.word 0x1400, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeNtscHpf2 +.word 0xD000000, 0x324F, 0x280, 0x3E52239, 0x20C +.word 0xC15, 0xC150C15, 0x6C02EC, 0x400, 0 +.word 0xA00, 0x2000800, 0x2301FD, 0xE0204, 2 +.word 0x1400, 0x2000800, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModePalLpn1 +.word 0xE000000, 0x320E, 0x140, 0x404233A, 0x271 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x200, 0 +.word 0x280, 0x400, 0x5F0239, 0x9026B, 2 +.word 0x280, 0x400, 0x5F0239, 0x9026B, 2 +glabel osViModeTable_osViModePalLpf1 +.word 0xF000000, 0x324E, 0x140, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x200, 0 +.word 0x280, 0x1000400, 0x5D0237, 0x9026B, 2 +.word 0x280, 0x3000400, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModePalLan1 +.word 0x10000000, 0x311E, 0x140, 0x404233A, 0x271 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x200, 0 +.word 0x280, 0x400, 0x5F0239, 0x9026B, 2 +.word 0x280, 0x400, 0x5F0239, 0x9026B, 2 +glabel osViModeTable_osViModePalLaf1 +.word 0x11000000, 0x305E, 0x140, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x200, 0 +.word 0x280, 0x1000400, 0x5D0237, 0x9026B, 2 +.word 0x280, 0x3000400, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModePalLpn2 +.word 0x12000000, 0x330F, 0x140, 0x404233A, 0x271 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x200, 0 +.word 0x500, 0x400, 0x5F0239, 0x9026B, 2 +.word 0x500, 0x400, 0x5F0239, 0x9026B, 2 +glabel osViModeTable_osViModePalLpf2 +.word 0x13000000, 0x324F, 0x140, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x200, 0 +.word 0x500, 0x1000400, 0x5D0237, 0x9026B, 2 +.word 0x500, 0x3000400, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModePalLan2 +.word 0x14000000, 0x301F, 0x140, 0x404233A, 0x271 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x200, 0 +.word 0x500, 0x400, 0x5F0239, 0x9026B, 2 +.word 0x500, 0x400, 0x5F0239, 0x9026B, 2 +glabel osViModeTable_osViModePalLaf2 +.word 0x15000000, 0x305F, 0x140, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x200, 0 +.word 0x500, 0x1000400, 0x5D0237, 0x9026B, 2 +.word 0x500, 0x3000400, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModePalHpn1 +.word 0x16000000, 0x324E, 0x500, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x400, 0 +.word 0x500, 0x400, 0x5D0237, 0x9026B, 2 +.word 0xA00, 0x400, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModePalHpf1 +.word 0x17000000, 0x324E, 0x280, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x400, 0 +.word 0x500, 0x2000800, 0x5D0237, 0x9026B, 2 +.word 0xA00, 0x2000800, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModePalHan1 +.word 0x18000000, 0x305E, 0x500, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x400, 0 +.word 0x500, 0x400, 0x5D0237, 0x9026B, 2 +.word 0xA00, 0x400, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModePalHaf1 +.word 0x19000000, 0x305E, 0x280, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x400, 0 +.word 0x500, 0x2000800, 0x5D0237, 0x9026B, 2 +.word 0xA00, 0x2000800, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModePalHpn2 +.word 0x1A000000, 0x334F, 0x500, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x400, 0 +.word 0xA00, 0x400, 0x5D0237, 0x9026B, 2 +.word 0x1400, 0x400, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModePalHpf2 +.word 0x1B000000, 0x324F, 0x280, 0x404233A, 0x270 +.word 0x150C69, 0xC6F0C6E, 0x800300, 0x400, 0 +.word 0xA00, 0x2000800, 0x5D0237, 0x9026B, 2 +.word 0x1400, 0x2000800, 0x5F0239, 0xD0269, 2 +glabel osViModeTable_osViModeMpalLpn1 +.word 0x1C000000, 0x320E, 0x140, 0x4651E39, 0x20D +.word 0x40C11, 0xC190C1A, 0x6C02EC, 0x200, 0 +.word 0x280, 0x400, 0x2501FF, 0xE0204, 2 +.word 0x280, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalLpf1 +.word 0x1D000000, 0x324E, 0x140, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x200, 0 +.word 0x280, 0x1000400, 0x2301FD, 0xB0202, 2 +.word 0x280, 0x3000400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalLan1 +.word 0x1E000000, 0x311E, 0x140, 0x4651E39, 0x20D +.word 0x40C11, 0xC190C1A, 0x6C02EC, 0x200, 0 +.word 0x280, 0x400, 0x2501FF, 0xE0204, 2 +.word 0x280, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalLaf1 +.word 0x1F000000, 0x305E, 0x140, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x200, 0 +.word 0x280, 0x1000400, 0x2301FD, 0xB0202, 2 +.word 0x280, 0x3000400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalLpn2 +.word 0x20000000, 0x330F, 0x140, 0x4651E39, 0x20D +.word 0x40C11, 0xC190C1A, 0x6C02EC, 0x200, 0 +.word 0x500, 0x400, 0x2501FF, 0xE0204, 2 +.word 0x500, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalLpf2 +.word 0x21000000, 0x324F, 0x140, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x200, 0 +.word 0x500, 0x1000400, 0x2301FD, 0xB0202, 2 +.word 0x500, 0x3000400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalLan2 +.word 0x22000000, 0x301F, 0x140, 0x4651E39, 0x20D +.word 0x40C11, 0xC190C1A, 0x6C02EC, 0x200, 0 +.word 0x500, 0x400, 0x2501FF, 0xE0204, 2 +.word 0x500, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalLaf2 +.word 0x23000000, 0x305F, 0x140, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x200, 0 +.word 0x500, 0x1000400, 0x2301FD, 0xB0202, 2 +.word 0x500, 0x3000400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalHpn1 +.word 0x24000000, 0x324E, 0x500, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x400, 0 +.word 0x500, 0x400, 0x2301FD, 0xB0202, 2 +.word 0xA00, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalHpf1 +.word 0x25000000, 0x324E, 0x280, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x400, 0 +.word 0x500, 0x2000800, 0x2301FD, 0xB0202, 2 +.word 0xA00, 0x2000800, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalHan1 +.word 0x26000000, 0x305E, 0x500, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x400, 0 +.word 0x500, 0x400, 0x2301FD, 0xB0202, 2 +.word 0xA00, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalHaf1 +.word 0x27000000, 0x305E, 0x280, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x400, 0 +.word 0x500, 0x2000800, 0x2301FD, 0xB0202, 2 +.word 0xA00, 0x2000800, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalHpn2 +.word 0x28000000, 0x334F, 0x500, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x400, 0 +.word 0xA00, 0x400, 0x2301FD, 0xB0202, 2 +.word 0x1400, 0x400, 0x2501FF, 0xE0204, 2 +glabel osViModeTable_osViModeMpalHpf2 +.word 0x29000000, 0x324F, 0x280, 0x4651E39, 0x20C +.word 0xC10, 0xC1C0C1C, 0x6C02EC, 0x400, 0 +.word 0xA00, 0x2000800, 0x2301FD, 0xB0202, 2 +.word 0x1400, 0x2000800, 0x2501FF, 0xE0204, 2 + diff --git a/src/libultra/writebackdcache.s b/src/libultra/writebackdcache.s new file mode 100644 index 0000000..3cba7d8 --- /dev/null +++ b/src/libultra/writebackdcache.s @@ -0,0 +1,44 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osWritebackDCache +/* 0117D0 70010BD0 18A00011 */ blez $a1, .L70010C18 +/* 0117D4 70010BD4 00000000 */ nop +/* 0117D8 70010BD8 240B2000 */ li $t3, 8192 +/* 0117DC 70010BDC 00AB082B */ sltu $at, $a1, $t3 +/* 0117E0 70010BE0 1020000F */ beqz $at, .L70010C20 +/* 0117E4 70010BE4 00000000 */ nop +/* 0117E8 70010BE8 00804025 */ move $t0, $a0 +/* 0117EC 70010BEC 00854821 */ addu $t1, $a0, $a1 +/* 0117F0 70010BF0 0109082B */ sltu $at, $t0, $t1 +/* 0117F4 70010BF4 10200008 */ beqz $at, .L70010C18 +/* 0117F8 70010BF8 00000000 */ nop +/* 0117FC 70010BFC 310A000F */ andi $t2, $t0, 0xf +/* 011800 70010C00 2529FFF0 */ addiu $t1, $t1, -0x10 +/* 011804 70010C04 010A4023 */ subu $t0, $t0, $t2 +.L70010C08: +/* 011808 70010C08 BD190000 */ cache 0x19, ($t0) +/* 01180C 70010C0C 0109082B */ sltu $at, $t0, $t1 +/* 011810 70010C10 1420FFFD */ bnez $at, .L70010C08 +/* 011814 70010C14 25080010 */ addiu $t0, $t0, 0x10 +.L70010C18: +/* 011818 70010C18 03E00008 */ jr $ra +/* 01181C 70010C1C 00000000 */ nop + +.L70010C20: +/* 011820 70010C20 3C088000 */ lui $t0, 0x8000 +/* 011824 70010C24 010B4821 */ addu $t1, $t0, $t3 +/* 011828 70010C28 2529FFF0 */ addiu $t1, $t1, -0x10 +.L70010C2C: +/* 01182C 70010C2C BD010000 */ cache 1, ($t0) +/* 011830 70010C30 0109082B */ sltu $at, $t0, $t1 +/* 011834 70010C34 1420FFFD */ bnez $at, .L70010C2C +/* 011838 70010C38 25080010 */ addiu $t0, $t0, 0x10 +/* 01183C 70010C3C 03E00008 */ jr $ra +/* 011840 70010C40 00000000 */ nop diff --git a/src/libultra/writebackdcacheall.s b/src/libultra/writebackdcacheall.s new file mode 100644 index 0000000..14aafbb --- /dev/null +++ b/src/libultra/writebackdcacheall.s @@ -0,0 +1,21 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osWritebackDCacheAll +/* 00DF20 7000D320 3C088000 */ lui $t0, 0x8000 +/* 00DF24 7000D324 240A2000 */ li $t2, 8192 +/* 00DF28 7000D328 010A4821 */ addu $t1, $t0, $t2 +/* 00DF2C 7000D32C 2529FFF0 */ addiu $t1, $t1, -0x10 +.L7000D330: +/* 00DF30 7000D330 BD010000 */ cache 1, ($t0) +/* 00DF34 7000D334 0109082B */ sltu $at, $t0, $t1 +/* 00DF38 7000D338 1420FFFD */ bnez $at, .L7000D330 +/* 00DF3C 7000D33C 25080010 */ addiu $t0, $t0, 0x10 +/* 00DF40 7000D340 03E00008 */ jr $ra +/* 00DF44 7000D344 00000000 */ nop diff --git a/src/libultra/xldtob.s b/src/libultra/xldtob.s new file mode 100644 index 0000000..f5ab0c7 --- /dev/null +++ b/src/libultra/xldtob.s @@ -0,0 +1,817 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .rodata +glabel digits + .double 10.0 + .double 100.0 + .double 10000.0 + .double 1.0e8 + .double 1.0e16 + .double 1.0e32 + .double 1.0e64 + .double 1.0e128 + .double 1.0e256 +glabel aNan + .asciiz "NaN" +glabel aInf + .asciiz "Inf" + +.section .text +glabel xldtob_sub0 +/* 01E670 7001DA70 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 01E674 7001DA74 AFB20028 */ sw $s2, 0x28($sp) +/* 01E678 7001DA78 00127400 */ sll $t6, $s2, 0x10 +/* 01E67C 7001DA7C 000E9403 */ sra $s2, $t6, 0x10 +/* 01E680 7001DA80 AFB30024 */ sw $s3, 0x24($sp) +/* 01E684 7001DA84 0013C400 */ sll $t8, $s3, 0x10 +/* 01E688 7001DA88 00189C03 */ sra $s3, $t8, 0x10 +/* 01E68C 7001DA8C 328E00FF */ andi $t6, $s4, 0xff +/* 01E690 7001DA90 AFB4001C */ sw $s4, 0x1c($sp) +/* 01E694 7001DA94 01C0A025 */ move $s4, $t6 +/* 01E698 7001DA98 1E600004 */ bgtz $s3, .L7001DAAC +/* 01E69C 7001DA9C AFBF0014 */ sw $ra, 0x14($sp) +/* 01E6A0 7001DAA0 3C118003 */ lui $s1, %hi(asc_D_80029CE0) +/* 01E6A4 7001DAA4 26319CE0 */ addiu $s1, %lo(asc_D_80029CE0) # addiu $s1, $s1, -0x6320 +/* 01E6A8 7001DAA8 24130001 */ li $s3, 1 +.L7001DAAC: +/* 01E6AC 7001DAAC 24020066 */ li $v0, 102 +/* 01E6B0 7001DAB0 1054000C */ beq $v0, $s4, .L7001DAE4 +/* 01E6B4 7001DAB4 02801825 */ move $v1, $s4 +/* 01E6B8 7001DAB8 24040067 */ li $a0, 103 +/* 01E6BC 7001DABC 10830002 */ beq $a0, $v1, .L7001DAC8 +/* 01E6C0 7001DAC0 24010047 */ li $at, 71 +/* 01E6C4 7001DAC4 14610096 */ bne $v1, $at, .L7001DD20 +.L7001DAC8: +/* 01E6C8 7001DAC8 2A41FFFC */ slti $at, $s2, -4 +/* 01E6CC 7001DACC 14200094 */ bnez $at, .L7001DD20 +/* 01E6D0 7001DAD0 00000000 */ nop +/* 01E6D4 7001DAD4 8E0F0024 */ lw $t7, 0x24($s0) +/* 01E6D8 7001DAD8 024F082A */ slt $at, $s2, $t7 +/* 01E6DC 7001DADC 10200090 */ beqz $at, .L7001DD20 +/* 01E6E0 7001DAE0 00000000 */ nop +.L7001DAE4: +/* 01E6E4 7001DAE4 26520001 */ addiu $s2, $s2, 1 +/* 01E6E8 7001DAE8 0012C400 */ sll $t8, $s2, 0x10 +/* 01E6EC 7001DAEC 1043000E */ beq $v0, $v1, .L7001DB28 +/* 01E6F0 7001DAF0 00189403 */ sra $s2, $t8, 0x10 +/* 01E6F4 7001DAF4 8E0E0030 */ lw $t6, 0x30($s0) +/* 01E6F8 7001DAF8 8E020024 */ lw $v0, 0x24($s0) +/* 01E6FC 7001DAFC 31CF0008 */ andi $t7, $t6, 8 +/* 01E700 7001DB00 15E00005 */ bnez $t7, .L7001DB18 +/* 01E704 7001DB04 0262082A */ slt $at, $s3, $v0 +/* 01E708 7001DB08 50200004 */ beql $at, $zero, .L7001DB1C +/* 01E70C 7001DB0C 0052C023 */ subu $t8, $v0, $s2 +/* 01E710 7001DB10 AE130024 */ sw $s3, 0x24($s0) +/* 01E714 7001DB14 02601025 */ move $v0, $s3 +.L7001DB18: +/* 01E718 7001DB18 0052C023 */ subu $t8, $v0, $s2 +.L7001DB1C: +/* 01E71C 7001DB1C 07010002 */ bgez $t8, .L7001DB28 +/* 01E720 7001DB20 AE180024 */ sw $t8, 0x24($s0) +/* 01E724 7001DB24 AE000024 */ sw $zero, 0x24($s0) +.L7001DB28: +/* 01E728 7001DB28 1E400033 */ bgtz $s2, .L7001DBF8 +/* 01E72C 7001DB2C 0272082A */ slt $at, $s3, $s2 +/* 01E730 7001DB30 8E0F0008 */ lw $t7, 8($s0) +/* 01E734 7001DB34 8E180014 */ lw $t8, 0x14($s0) +/* 01E738 7001DB38 240E0030 */ li $t6, 48 +/* 01E73C 7001DB3C 00121823 */ negu $v1, $s2 +/* 01E740 7001DB40 01F8C821 */ addu $t9, $t7, $t8 +/* 01E744 7001DB44 A32E0000 */ sb $t6, ($t9) +/* 01E748 7001DB48 8E0F0014 */ lw $t7, 0x14($s0) +/* 01E74C 7001DB4C 8E020024 */ lw $v0, 0x24($s0) +/* 01E750 7001DB50 02202825 */ move $a1, $s1 +/* 01E754 7001DB54 25F80001 */ addiu $t8, $t7, 1 +/* 01E758 7001DB58 1C400005 */ bgtz $v0, .L7001DB70 +/* 01E75C 7001DB5C AE180014 */ sw $t8, 0x14($s0) +/* 01E760 7001DB60 8E0E0030 */ lw $t6, 0x30($s0) +/* 01E764 7001DB64 31D90008 */ andi $t9, $t6, 8 +/* 01E768 7001DB68 5320000B */ beql $t9, $zero, .L7001DB98 +/* 01E76C 7001DB6C 0043082A */ slt $at, $v0, $v1 +.L7001DB70: +/* 01E770 7001DB70 8E180008 */ lw $t8, 8($s0) +/* 01E774 7001DB74 8E0E0014 */ lw $t6, 0x14($s0) +/* 01E778 7001DB78 240F002E */ li $t7, 46 +/* 01E77C 7001DB7C 030EC821 */ addu $t9, $t8, $t6 +/* 01E780 7001DB80 A32F0000 */ sb $t7, ($t9) +/* 01E784 7001DB84 8E180014 */ lw $t8, 0x14($s0) +/* 01E788 7001DB88 8E020024 */ lw $v0, 0x24($s0) +/* 01E78C 7001DB8C 270E0001 */ addiu $t6, $t8, 1 +/* 01E790 7001DB90 AE0E0014 */ sw $t6, 0x14($s0) +/* 01E794 7001DB94 0043082A */ slt $at, $v0, $v1 +.L7001DB98: +/* 01E798 7001DB98 50200006 */ beql $at, $zero, .L7001DBB4 +/* 01E79C 7001DB9C 0052C021 */ addu $t8, $v0, $s2 +/* 01E7A0 7001DBA0 00029023 */ negu $s2, $v0 +/* 01E7A4 7001DBA4 00127C00 */ sll $t7, $s2, 0x10 +/* 01E7A8 7001DBA8 000F9403 */ sra $s2, $t7, 0x10 +/* 01E7AC 7001DBAC 00121823 */ negu $v1, $s2 +/* 01E7B0 7001DBB0 0052C021 */ addu $t8, $v0, $s2 +.L7001DBB4: +/* 01E7B4 7001DBB4 0313082A */ slt $at, $t8, $s3 +/* 01E7B8 7001DBB8 AE030018 */ sw $v1, 0x18($s0) +/* 01E7BC 7001DBBC 10200004 */ beqz $at, .L7001DBD0 +/* 01E7C0 7001DBC0 AE180024 */ sw $t8, 0x24($s0) +/* 01E7C4 7001DBC4 00189C00 */ sll $s3, $t8, 0x10 +/* 01E7C8 7001DBC8 00137403 */ sra $t6, $s3, 0x10 +/* 01E7CC 7001DBCC 01C09825 */ move $s3, $t6 +.L7001DBD0: +/* 01E7D0 7001DBD0 8E0F0008 */ lw $t7, 8($s0) +/* 01E7D4 7001DBD4 8E190014 */ lw $t9, 0x14($s0) +/* 01E7D8 7001DBD8 AE13001C */ sw $s3, 0x1c($s0) +/* 01E7DC 7001DBDC 02603025 */ move $a2, $s3 +/* 01E7E0 7001DBE0 0C004E14 */ jal memcpy +/* 01E7E4 7001DBE4 01F92021 */ addu $a0, $t7, $t9 +/* 01E7E8 7001DBE8 8E180024 */ lw $t8, 0x24($s0) +/* 01E7EC 7001DBEC 03137023 */ subu $t6, $t8, $s3 +/* 01E7F0 7001DBF0 100000E2 */ b .L7001DF7C +/* 01E7F4 7001DBF4 AE0E0020 */ sw $t6, 0x20($s0) +.L7001DBF8: +/* 01E7F8 7001DBF8 1020001D */ beqz $at, .L7001DC70 +/* 01E7FC 7001DBFC 02202825 */ move $a1, $s1 +/* 01E800 7001DC00 8E0F0008 */ lw $t7, 8($s0) +/* 01E804 7001DC04 8E190014 */ lw $t9, 0x14($s0) +/* 01E808 7001DC08 02202825 */ move $a1, $s1 +/* 01E80C 7001DC0C 02603025 */ move $a2, $s3 +/* 01E810 7001DC10 0C004E14 */ jal memcpy +/* 01E814 7001DC14 01F92021 */ addu $a0, $t7, $t9 +/* 01E818 7001DC18 8E180014 */ lw $t8, 0x14($s0) +/* 01E81C 7001DC1C 8E020024 */ lw $v0, 0x24($s0) +/* 01E820 7001DC20 02537823 */ subu $t7, $s2, $s3 +/* 01E824 7001DC24 03137021 */ addu $t6, $t8, $s3 +/* 01E828 7001DC28 AE0E0014 */ sw $t6, 0x14($s0) +/* 01E82C 7001DC2C 1C400005 */ bgtz $v0, .L7001DC44 +/* 01E830 7001DC30 AE0F0018 */ sw $t7, 0x18($s0) +/* 01E834 7001DC34 8E190030 */ lw $t9, 0x30($s0) +/* 01E838 7001DC38 33380008 */ andi $t8, $t9, 8 +/* 01E83C 7001DC3C 1300000A */ beqz $t8, .L7001DC68 +/* 01E840 7001DC40 00000000 */ nop +.L7001DC44: +/* 01E844 7001DC44 8E0F0008 */ lw $t7, 8($s0) +/* 01E848 7001DC48 8E190014 */ lw $t9, 0x14($s0) +/* 01E84C 7001DC4C 240E002E */ li $t6, 46 +/* 01E850 7001DC50 01F9C021 */ addu $t8, $t7, $t9 +/* 01E854 7001DC54 A30E0000 */ sb $t6, ($t8) +/* 01E858 7001DC58 8E0F001C */ lw $t7, 0x1c($s0) +/* 01E85C 7001DC5C 8E020024 */ lw $v0, 0x24($s0) +/* 01E860 7001DC60 25F90001 */ addiu $t9, $t7, 1 +/* 01E864 7001DC64 AE19001C */ sw $t9, 0x1c($s0) +.L7001DC68: +/* 01E868 7001DC68 100000C4 */ b .L7001DF7C +/* 01E86C 7001DC6C AE020020 */ sw $v0, 0x20($s0) +.L7001DC70: +/* 01E870 7001DC70 8E0E0008 */ lw $t6, 8($s0) +/* 01E874 7001DC74 8E180014 */ lw $t8, 0x14($s0) +/* 01E878 7001DC78 02403025 */ move $a2, $s2 +/* 01E87C 7001DC7C 0C004E14 */ jal memcpy +/* 01E880 7001DC80 01D82021 */ addu $a0, $t6, $t8 +/* 01E884 7001DC84 8E0F0014 */ lw $t7, 0x14($s0) +/* 01E888 7001DC88 8E020024 */ lw $v0, 0x24($s0) +/* 01E88C 7001DC8C 02729823 */ subu $s3, $s3, $s2 +/* 01E890 7001DC90 00137400 */ sll $t6, $s3, 0x10 +/* 01E894 7001DC94 01F2C821 */ addu $t9, $t7, $s2 +/* 01E898 7001DC98 AE190014 */ sw $t9, 0x14($s0) +/* 01E89C 7001DC9C 1C400005 */ bgtz $v0, .L7001DCB4 +/* 01E8A0 7001DCA0 000E9C03 */ sra $s3, $t6, 0x10 +/* 01E8A4 7001DCA4 8E0F0030 */ lw $t7, 0x30($s0) +/* 01E8A8 7001DCA8 31F90008 */ andi $t9, $t7, 8 +/* 01E8AC 7001DCAC 5320000B */ beql $t9, $zero, .L7001DCDC +/* 01E8B0 7001DCB0 0053082A */ slt $at, $v0, $s3 +.L7001DCB4: +/* 01E8B4 7001DCB4 8E180008 */ lw $t8, 8($s0) +/* 01E8B8 7001DCB8 8E0F0014 */ lw $t7, 0x14($s0) +/* 01E8BC 7001DCBC 240E002E */ li $t6, 46 +/* 01E8C0 7001DCC0 030FC821 */ addu $t9, $t8, $t7 +/* 01E8C4 7001DCC4 A32E0000 */ sb $t6, ($t9) +/* 01E8C8 7001DCC8 8E180014 */ lw $t8, 0x14($s0) +/* 01E8CC 7001DCCC 8E020024 */ lw $v0, 0x24($s0) +/* 01E8D0 7001DCD0 270F0001 */ addiu $t7, $t8, 1 +/* 01E8D4 7001DCD4 AE0F0014 */ sw $t7, 0x14($s0) +/* 01E8D8 7001DCD8 0053082A */ slt $at, $v0, $s3 +.L7001DCDC: +/* 01E8DC 7001DCDC 10200004 */ beqz $at, .L7001DCF0 +/* 01E8E0 7001DCE0 02512821 */ addu $a1, $s2, $s1 +/* 01E8E4 7001DCE4 00029C00 */ sll $s3, $v0, 0x10 +/* 01E8E8 7001DCE8 00137403 */ sra $t6, $s3, 0x10 +/* 01E8EC 7001DCEC 01C09825 */ move $s3, $t6 +.L7001DCF0: +/* 01E8F0 7001DCF0 8E190008 */ lw $t9, 8($s0) +/* 01E8F4 7001DCF4 8E180014 */ lw $t8, 0x14($s0) +/* 01E8F8 7001DCF8 02603025 */ move $a2, $s3 +/* 01E8FC 7001DCFC 0C004E14 */ jal memcpy +/* 01E900 7001DD00 03382021 */ addu $a0, $t9, $t8 +/* 01E904 7001DD04 8E0F0014 */ lw $t7, 0x14($s0) +/* 01E908 7001DD08 8E190024 */ lw $t9, 0x24($s0) +/* 01E90C 7001DD0C 01F37021 */ addu $t6, $t7, $s3 +/* 01E910 7001DD10 0333C023 */ subu $t8, $t9, $s3 +/* 01E914 7001DD14 AE0E0014 */ sw $t6, 0x14($s0) +/* 01E918 7001DD18 10000098 */ b .L7001DF7C +/* 01E91C 7001DD1C AE180018 */ sw $t8, 0x18($s0) +.L7001DD20: +/* 01E920 7001DD20 10830003 */ beq $a0, $v1, .L7001DD30 +/* 01E924 7001DD24 24010047 */ li $at, 71 +/* 01E928 7001DD28 54610011 */ bnel $v1, $at, .L7001DD70 +/* 01E92C 7001DD2C 8E180008 */ lw $t8, 8($s0) +.L7001DD30: +/* 01E930 7001DD30 8E020024 */ lw $v0, 0x24($s0) +/* 01E934 7001DD34 24140045 */ li $s4, 69 +/* 01E938 7001DD38 0262082A */ slt $at, $s3, $v0 +/* 01E93C 7001DD3C 50200004 */ beql $at, $zero, .L7001DD50 +/* 01E940 7001DD40 244FFFFF */ addiu $t7, $v0, -1 +/* 01E944 7001DD44 AE130024 */ sw $s3, 0x24($s0) +/* 01E948 7001DD48 02601025 */ move $v0, $s3 +/* 01E94C 7001DD4C 244FFFFF */ addiu $t7, $v0, -1 +.L7001DD50: +/* 01E950 7001DD50 05E10002 */ bgez $t7, .L7001DD5C +/* 01E954 7001DD54 AE0F0024 */ sw $t7, 0x24($s0) +/* 01E958 7001DD58 AE000024 */ sw $zero, 0x24($s0) +.L7001DD5C: +/* 01E95C 7001DD5C 14830003 */ bne $a0, $v1, .L7001DD6C +/* 01E960 7001DD60 00000000 */ nop +/* 01E964 7001DD64 10000001 */ b .L7001DD6C +/* 01E968 7001DD68 24140065 */ li $s4, 101 +.L7001DD6C: +/* 01E96C 7001DD6C 8E180008 */ lw $t8, 8($s0) +.L7001DD70: +/* 01E970 7001DD70 8E0F0014 */ lw $t7, 0x14($s0) +/* 01E974 7001DD74 92390000 */ lbu $t9, ($s1) +/* 01E978 7001DD78 26310001 */ addiu $s1, $s1, 1 +/* 01E97C 7001DD7C 030F7021 */ addu $t6, $t8, $t7 +/* 01E980 7001DD80 A1D90000 */ sb $t9, ($t6) +/* 01E984 7001DD84 8E180014 */ lw $t8, 0x14($s0) +/* 01E988 7001DD88 8E020024 */ lw $v0, 0x24($s0) +/* 01E98C 7001DD8C 270F0001 */ addiu $t7, $t8, 1 +/* 01E990 7001DD90 1C400005 */ bgtz $v0, .L7001DDA8 +/* 01E994 7001DD94 AE0F0014 */ sw $t7, 0x14($s0) +/* 01E998 7001DD98 8E190030 */ lw $t9, 0x30($s0) +/* 01E99C 7001DD9C 332E0008 */ andi $t6, $t9, 8 +/* 01E9A0 7001DDA0 11C0000A */ beqz $t6, .L7001DDCC +/* 01E9A4 7001DDA4 00000000 */ nop +.L7001DDA8: +/* 01E9A8 7001DDA8 8E0F0008 */ lw $t7, 8($s0) +/* 01E9AC 7001DDAC 8E190014 */ lw $t9, 0x14($s0) +/* 01E9B0 7001DDB0 2418002E */ li $t8, 46 +/* 01E9B4 7001DDB4 01F97021 */ addu $t6, $t7, $t9 +/* 01E9B8 7001DDB8 A1D80000 */ sb $t8, ($t6) +/* 01E9BC 7001DDBC 8E0F0014 */ lw $t7, 0x14($s0) +/* 01E9C0 7001DDC0 8E020024 */ lw $v0, 0x24($s0) +/* 01E9C4 7001DDC4 25F90001 */ addiu $t9, $t7, 1 +/* 01E9C8 7001DDC8 AE190014 */ sw $t9, 0x14($s0) +.L7001DDCC: +/* 01E9CC 7001DDCC 58400016 */ blezl $v0, .L7001DE28 +/* 01E9D0 7001DDD0 8E0E0008 */ lw $t6, 8($s0) +/* 01E9D4 7001DDD4 2673FFFF */ addiu $s3, $s3, -1 +/* 01E9D8 7001DDD8 0013C400 */ sll $t8, $s3, 0x10 +/* 01E9DC 7001DDDC 00189C03 */ sra $s3, $t8, 0x10 +/* 01E9E0 7001DDE0 0053082A */ slt $at, $v0, $s3 +/* 01E9E4 7001DDE4 10200004 */ beqz $at, .L7001DDF8 +/* 01E9E8 7001DDE8 02202825 */ move $a1, $s1 +/* 01E9EC 7001DDEC 00029C00 */ sll $s3, $v0, 0x10 +/* 01E9F0 7001DDF0 00137C03 */ sra $t7, $s3, 0x10 +/* 01E9F4 7001DDF4 01E09825 */ move $s3, $t7 +.L7001DDF8: +/* 01E9F8 7001DDF8 8E190008 */ lw $t9, 8($s0) +/* 01E9FC 7001DDFC 8E180014 */ lw $t8, 0x14($s0) +/* 01EA00 7001DE00 02603025 */ move $a2, $s3 +/* 01EA04 7001DE04 0C004E14 */ jal memcpy +/* 01EA08 7001DE08 03382021 */ addu $a0, $t9, $t8 +/* 01EA0C 7001DE0C 8E0E0014 */ lw $t6, 0x14($s0) +/* 01EA10 7001DE10 8E190024 */ lw $t9, 0x24($s0) +/* 01EA14 7001DE14 01D37821 */ addu $t7, $t6, $s3 +/* 01EA18 7001DE18 0333C023 */ subu $t8, $t9, $s3 +/* 01EA1C 7001DE1C AE0F0014 */ sw $t7, 0x14($s0) +/* 01EA20 7001DE20 AE180018 */ sw $t8, 0x18($s0) +/* 01EA24 7001DE24 8E0E0008 */ lw $t6, 8($s0) +.L7001DE28: +/* 01EA28 7001DE28 8E0F0014 */ lw $t7, 0x14($s0) +/* 01EA2C 7001DE2C 01CF8821 */ addu $s1, $t6, $t7 +/* 01EA30 7001DE30 26310001 */ addiu $s1, $s1, 1 +/* 01EA34 7001DE34 06400005 */ bltz $s2, .L7001DE4C +/* 01EA38 7001DE38 A234FFFF */ sb $s4, -1($s1) +/* 01EA3C 7001DE3C 2419002B */ li $t9, 43 +/* 01EA40 7001DE40 A2390000 */ sb $t9, ($s1) +/* 01EA44 7001DE44 10000008 */ b .L7001DE68 +/* 01EA48 7001DE48 26310001 */ addiu $s1, $s1, 1 +.L7001DE4C: +/* 01EA4C 7001DE4C 00129023 */ negu $s2, $s2 +/* 01EA50 7001DE50 00127400 */ sll $t6, $s2, 0x10 +/* 01EA54 7001DE54 2418002D */ li $t8, 45 +/* 01EA58 7001DE58 000E7C03 */ sra $t7, $t6, 0x10 +/* 01EA5C 7001DE5C A2380000 */ sb $t8, ($s1) +/* 01EA60 7001DE60 26310001 */ addiu $s1, $s1, 1 +/* 01EA64 7001DE64 01E09025 */ move $s2, $t7 +.L7001DE68: +/* 01EA68 7001DE68 2A410064 */ slti $at, $s2, 0x64 +/* 01EA6C 7001DE6C 5420002A */ bnezl $at, .L7001DF18 +/* 01EA70 7001DE70 2402000A */ li $v0, 10 +/* 01EA74 7001DE74 2A4103E8 */ slti $at, $s2, 0x3e8 +/* 01EA78 7001DE78 14200013 */ bnez $at, .L7001DEC8 +/* 01EA7C 7001DE7C 240203E8 */ li $v0, 1000 +/* 01EA80 7001DE80 0242001A */ div $zero, $s2, $v0 +/* 01EA84 7001DE84 14400002 */ bnez $v0, .L7001DE90 +/* 01EA88 7001DE88 00000000 */ nop +/* 01EA8C 7001DE8C 0007000D */ break 7 +.L7001DE90: +/* 01EA90 7001DE90 2401FFFF */ li $at, -1 +/* 01EA94 7001DE94 14410004 */ bne $v0, $at, .L7001DEA8 +/* 01EA98 7001DE98 3C018000 */ lui $at, 0x8000 +/* 01EA9C 7001DE9C 16410002 */ bne $s2, $at, .L7001DEA8 +/* 01EAA0 7001DEA0 00000000 */ nop +/* 01EAA4 7001DEA4 0006000D */ break 6 +.L7001DEA8: +/* 01EAA8 7001DEA8 00009010 */ mfhi $s2 +/* 01EAAC 7001DEAC 00127400 */ sll $t6, $s2, 0x10 +/* 01EAB0 7001DEB0 0000C812 */ mflo $t9 +/* 01EAB4 7001DEB4 27380030 */ addiu $t8, $t9, 0x30 +/* 01EAB8 7001DEB8 000E7C03 */ sra $t7, $t6, 0x10 +/* 01EABC 7001DEBC 01E09025 */ move $s2, $t7 +/* 01EAC0 7001DEC0 A2380000 */ sb $t8, ($s1) +/* 01EAC4 7001DEC4 26310001 */ addiu $s1, $s1, 1 +.L7001DEC8: +/* 01EAC8 7001DEC8 24020064 */ li $v0, 100 +/* 01EACC 7001DECC 0242001A */ div $zero, $s2, $v0 +/* 01EAD0 7001DED0 14400002 */ bnez $v0, .L7001DEDC +/* 01EAD4 7001DED4 00000000 */ nop +/* 01EAD8 7001DED8 0007000D */ break 7 +.L7001DEDC: +/* 01EADC 7001DEDC 2401FFFF */ li $at, -1 +/* 01EAE0 7001DEE0 14410004 */ bne $v0, $at, .L7001DEF4 +/* 01EAE4 7001DEE4 3C018000 */ lui $at, 0x8000 +/* 01EAE8 7001DEE8 16410002 */ bne $s2, $at, .L7001DEF4 +/* 01EAEC 7001DEEC 00000000 */ nop +/* 01EAF0 7001DEF0 0006000D */ break 6 +.L7001DEF4: +/* 01EAF4 7001DEF4 00009010 */ mfhi $s2 +/* 01EAF8 7001DEF8 00127400 */ sll $t6, $s2, 0x10 +/* 01EAFC 7001DEFC 0000C812 */ mflo $t9 +/* 01EB00 7001DF00 27380030 */ addiu $t8, $t9, 0x30 +/* 01EB04 7001DF04 000E7C03 */ sra $t7, $t6, 0x10 +/* 01EB08 7001DF08 01E09025 */ move $s2, $t7 +/* 01EB0C 7001DF0C A2380000 */ sb $t8, ($s1) +/* 01EB10 7001DF10 26310001 */ addiu $s1, $s1, 1 +/* 01EB14 7001DF14 2402000A */ li $v0, 10 +.L7001DF18: +/* 01EB18 7001DF18 0242001A */ div $zero, $s2, $v0 +/* 01EB1C 7001DF1C 14400002 */ bnez $v0, .L7001DF28 +/* 01EB20 7001DF20 00000000 */ nop +/* 01EB24 7001DF24 0007000D */ break 7 +.L7001DF28: +/* 01EB28 7001DF28 2401FFFF */ li $at, -1 +/* 01EB2C 7001DF2C 14410004 */ bne $v0, $at, .L7001DF40 +/* 01EB30 7001DF30 3C018000 */ lui $at, 0x8000 +/* 01EB34 7001DF34 16410002 */ bne $s2, $at, .L7001DF40 +/* 01EB38 7001DF38 00000000 */ nop +/* 01EB3C 7001DF3C 0006000D */ break 6 +.L7001DF40: +/* 01EB40 7001DF40 00009010 */ mfhi $s2 +/* 01EB44 7001DF44 00127400 */ sll $t6, $s2, 0x10 +/* 01EB48 7001DF48 0000C812 */ mflo $t9 +/* 01EB4C 7001DF4C 27380030 */ addiu $t8, $t9, 0x30 +/* 01EB50 7001DF50 000E7C03 */ sra $t7, $t6, 0x10 +/* 01EB54 7001DF54 25F90030 */ addiu $t9, $t7, 0x30 +/* 01EB58 7001DF58 A2380000 */ sb $t8, ($s1) +/* 01EB5C 7001DF5C A2390001 */ sb $t9, 1($s1) +/* 01EB60 7001DF60 8E180008 */ lw $t8, 8($s0) +/* 01EB64 7001DF64 01E09025 */ move $s2, $t7 +/* 01EB68 7001DF68 8E0F0014 */ lw $t7, 0x14($s0) +/* 01EB6C 7001DF6C 26310002 */ addiu $s1, $s1, 2 +/* 01EB70 7001DF70 02387023 */ subu $t6, $s1, $t8 +/* 01EB74 7001DF74 01CFC823 */ subu $t9, $t6, $t7 +/* 01EB78 7001DF78 AE19001C */ sw $t9, 0x1c($s0) +.L7001DF7C: +/* 01EB7C 7001DF7C 8E180030 */ lw $t8, 0x30($s0) +/* 01EB80 7001DF80 24010010 */ li $at, 16 +/* 01EB84 7001DF84 330E0014 */ andi $t6, $t8, 0x14 +/* 01EB88 7001DF88 55C10010 */ bnel $t6, $at, .L7001DFCC +/* 01EB8C 7001DF8C 8FBF0014 */ lw $ra, 0x14($sp) +/* 01EB90 7001DF90 8E0F000C */ lw $t7, 0xc($s0) +/* 01EB94 7001DF94 8E190014 */ lw $t9, 0x14($s0) +/* 01EB98 7001DF98 8E0E0018 */ lw $t6, 0x18($s0) +/* 01EB9C 7001DF9C 8E030028 */ lw $v1, 0x28($s0) +/* 01EBA0 7001DFA0 01F9C021 */ addu $t8, $t7, $t9 +/* 01EBA4 7001DFA4 8E19001C */ lw $t9, 0x1c($s0) +/* 01EBA8 7001DFA8 030E7821 */ addu $t7, $t8, $t6 +/* 01EBAC 7001DFAC 8E0E0020 */ lw $t6, 0x20($s0) +/* 01EBB0 7001DFB0 01F9C021 */ addu $t8, $t7, $t9 +/* 01EBB4 7001DFB4 030E1021 */ addu $v0, $t8, $t6 +/* 01EBB8 7001DFB8 0043082A */ slt $at, $v0, $v1 +/* 01EBBC 7001DFBC 10200002 */ beqz $at, .L7001DFC8 +/* 01EBC0 7001DFC0 00627823 */ subu $t7, $v1, $v0 +/* 01EBC4 7001DFC4 AE0F0010 */ sw $t7, 0x10($s0) +.L7001DFC8: +/* 01EBC8 7001DFC8 8FBF0014 */ lw $ra, 0x14($sp) +.L7001DFCC: +/* 01EBCC 7001DFCC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 01EBD0 7001DFD0 03E00008 */ jr $ra +/* 01EBD4 7001DFD4 00000000 */ nop + +/* 01EBD8 7001DFD8 03E00008 */ jr $ra +/* 01EBDC 7001DFDC 00000000 */ nop + +glabel _Ldtob +/* 01EBE0 7001DFE0 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 01EBE4 7001DFE4 AFBF003C */ sw $ra, 0x3c($sp) +/* 01EBE8 7001DFE8 AFB50038 */ sw $s5, 0x38($sp) +/* 01EBEC 7001DFEC AFB40034 */ sw $s4, 0x34($sp) +/* 01EBF0 7001DFF0 AFB30030 */ sw $s3, 0x30($sp) +/* 01EBF4 7001DFF4 AFB2002C */ sw $s2, 0x2c($sp) +/* 01EBF8 7001DFF8 AFB10028 */ sw $s1, 0x28($sp) +/* 01EBFC 7001DFFC AFB00024 */ sw $s0, 0x24($sp) +/* 01EC00 7001E000 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 01EC04 7001E004 AFA400D0 */ sw $a0, 0xd0($sp) +/* 01EC08 7001E008 AFA500D4 */ sw $a1, 0xd4($sp) +/* 01EC0C 7001E00C 8C820024 */ lw $v0, 0x24($a0) +/* 01EC10 7001E010 27B500B0 */ addiu $s5, $sp, 0xb0 +/* 01EC14 7001E014 D4940000 */ ldc1 $f20, ($a0) +/* 01EC18 7001E018 04410003 */ bgez $v0, .L7001E028 +/* 01EC1C 7001E01C 240F0006 */ li $t7, 6 +/* 01EC20 7001E020 1000000C */ b .L7001E054 +/* 01EC24 7001E024 AC8F0024 */ sw $t7, 0x24($a0) +.L7001E028: +/* 01EC28 7001E028 1440000A */ bnez $v0, .L7001E054 +/* 01EC2C 7001E02C 93B800D7 */ lbu $t8, 0xd7($sp) +/* 01EC30 7001E030 24010067 */ li $at, 103 +/* 01EC34 7001E034 13010004 */ beq $t8, $at, .L7001E048 +/* 01EC38 7001E038 AFB80048 */ sw $t8, 0x48($sp) +/* 01EC3C 7001E03C 24010047 */ li $at, 71 +/* 01EC40 7001E040 57010005 */ bnel $t8, $at, .L7001E058 +/* 01EC44 7001E044 8FAE00D0 */ lw $t6, 0xd0($sp) +.L7001E048: +/* 01EC48 7001E048 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 01EC4C 7001E04C 24190001 */ li $t9, 1 +/* 01EC50 7001E050 ADF90024 */ sw $t9, 0x24($t7) +.L7001E054: +/* 01EC54 7001E054 8FAE00D0 */ lw $t6, 0xd0($sp) +.L7001E058: +/* 01EC58 7001E058 240107FF */ li $at, 2047 +/* 01EC5C 7001E05C 95C40000 */ lhu $a0, ($t6) +/* 01EC60 7001E060 30837FF0 */ andi $v1, $a0, 0x7ff0 +/* 01EC64 7001E064 0003C103 */ sra $t8, $v1, 4 +/* 01EC68 7001E068 0018CC00 */ sll $t9, $t8, 0x10 +/* 01EC6C 7001E06C 00191C03 */ sra $v1, $t9, 0x10 +/* 01EC70 7001E070 14610018 */ bne $v1, $at, .L7001E0D4 +/* 01EC74 7001E074 00000000 */ nop +/* 01EC78 7001E078 A7A0009A */ sh $zero, 0x9a($sp) +/* 01EC7C 7001E07C 95D80000 */ lhu $t8, ($t6) +/* 01EC80 7001E080 24030002 */ li $v1, 2 +/* 01EC84 7001E084 00031400 */ sll $v0, $v1, 0x10 +/* 01EC88 7001E088 3319000F */ andi $t9, $t8, 0xf +/* 01EC8C 7001E08C 5720000A */ bnezl $t9, .L7001E0B8 +/* 01EC90 7001E090 00027C03 */ sra $t7, $v0, 0x10 +/* 01EC94 7001E094 95CF0002 */ lhu $t7, 2($t6) +/* 01EC98 7001E098 55E00007 */ bnezl $t7, .L7001E0B8 +/* 01EC9C 7001E09C 00027C03 */ sra $t7, $v0, 0x10 +/* 01ECA0 7001E0A0 95D80004 */ lhu $t8, 4($t6) +/* 01ECA4 7001E0A4 57000004 */ bnezl $t8, .L7001E0B8 +/* 01ECA8 7001E0A8 00027C03 */ sra $t7, $v0, 0x10 +/* 01ECAC 7001E0AC 95D90006 */ lhu $t9, 6($t6) +/* 01ECB0 7001E0B0 13200003 */ beqz $t9, .L7001E0C0 +/* 01ECB4 7001E0B4 00027C03 */ sra $t7, $v0, 0x10 +.L7001E0B8: +/* 01ECB8 7001E0B8 10000014 */ b .L7001E10C +/* 01ECBC 7001E0BC 01E01025 */ move $v0, $t7 +.L7001E0C0: +/* 01ECC0 7001E0C0 24030001 */ li $v1, 1 +/* 01ECC4 7001E0C4 00031400 */ sll $v0, $v1, 0x10 +/* 01ECC8 7001E0C8 00027C03 */ sra $t7, $v0, 0x10 +/* 01ECCC 7001E0CC 1000000F */ b .L7001E10C +/* 01ECD0 7001E0D0 01E01025 */ move $v0, $t7 +.L7001E0D4: +/* 01ECD4 7001E0D4 18600008 */ blez $v1, .L7001E0F8 +/* 01ECD8 7001E0D8 3098800F */ andi $t8, $a0, 0x800f +/* 01ECDC 7001E0DC 8FB900D0 */ lw $t9, 0xd0($sp) +/* 01ECE0 7001E0E0 370E3FF0 */ ori $t6, $t8, 0x3ff0 +/* 01ECE4 7001E0E4 246FFC02 */ addiu $t7, $v1, -0x3fe +/* 01ECE8 7001E0E8 A72E0000 */ sh $t6, ($t9) +/* 01ECEC 7001E0EC A7AF009A */ sh $t7, 0x9a($sp) +/* 01ECF0 7001E0F0 10000006 */ b .L7001E10C +/* 01ECF4 7001E0F4 2402FFFF */ li $v0, -1 +.L7001E0F8: +/* 01ECF8 7001E0F8 04610003 */ bgez $v1, .L7001E108 +/* 01ECFC 7001E0FC 00001025 */ move $v0, $zero +/* 01ED00 7001E100 10000002 */ b .L7001E10C +/* 01ED04 7001E104 24020002 */ li $v0, 2 +.L7001E108: +/* 01ED08 7001E108 A7A0009A */ sh $zero, 0x9a($sp) +.L7001E10C: +/* 01ED0C 7001E10C 18400012 */ blez $v0, .L7001E158 +/* 01ED10 7001E110 0002C400 */ sll $t8, $v0, 0x10 +/* 01ED14 7001E114 0002C400 */ sll $t8, $v0, 0x10 +/* 01ED18 7001E118 00187403 */ sra $t6, $t8, 0x10 +/* 01ED1C 7001E11C 24010002 */ li $at, 2 +/* 01ED20 7001E120 15C10004 */ bne $t6, $at, .L7001E134 +/* 01ED24 7001E124 8FB900D0 */ lw $t9, 0xd0($sp) +/* 01ED28 7001E128 3C058003 */ lui $a1, %hi(aNan) +/* 01ED2C 7001E12C 10000003 */ b .L7001E13C +/* 01ED30 7001E130 24A59CD8 */ addiu $a1, %lo(aNan) # addiu $a1, $a1, -0x6328 +.L7001E134: +/* 01ED34 7001E134 3C058003 */ lui $a1, %hi(aInf) +/* 01ED38 7001E138 24A59CDC */ addiu $a1, %lo(aInf) # addiu $a1, $a1, -0x6324 +.L7001E13C: +/* 01ED3C 7001E13C 240F0003 */ li $t7, 3 +/* 01ED40 7001E140 AF2F0014 */ sw $t7, 0x14($t9) +/* 01ED44 7001E144 8F240008 */ lw $a0, 8($t9) +/* 01ED48 7001E148 0C004E14 */ jal memcpy +/* 01ED4C 7001E14C 24060003 */ li $a2, 3 +/* 01ED50 7001E150 100000ED */ b .L7001E508 +/* 01ED54 7001E154 8FBF003C */ lw $ra, 0x3c($sp) +.L7001E158: +/* 01ED58 7001E158 00187403 */ sra $t6, $t8, 0x10 +/* 01ED5C 7001E15C 15C00003 */ bnez $t6, .L7001E16C +/* 01ED60 7001E160 00009825 */ move $s3, $zero +/* 01ED64 7001E164 100000E2 */ b .L7001E4F0 +/* 01ED68 7001E168 A7A0009A */ sh $zero, 0x9a($sp) +.L7001E16C: +/* 01ED6C 7001E16C 44801800 */ mtc1 $zero, $f3 +/* 01ED70 7001E170 44801000 */ mtc1 $zero, $f2 +/* 01ED74 7001E174 93AF00D7 */ lbu $t7, 0xd7($sp) +/* 01ED78 7001E178 87B9009A */ lh $t9, 0x9a($sp) +/* 01ED7C 7001E17C 4622A03C */ c.lt.d $f20, $f2 +/* 01ED80 7001E180 24017597 */ li $at, 30103 +/* 01ED84 7001E184 00001825 */ move $v1, $zero +/* 01ED88 7001E188 27B500B1 */ addiu $s5, $sp, 0xb1 +/* 01ED8C 7001E18C 45000002 */ bc1f .L7001E198 +/* 01ED90 7001E190 AFAF0048 */ sw $t7, 0x48($sp) +/* 01ED94 7001E194 4620A507 */ neg.d $f20, $f20 +.L7001E198: +/* 01ED98 7001E198 03210019 */ multu $t9, $at +/* 01ED9C 7001E19C 3C010001 */ lui $at, (0x000186A0 >> 16) # lui $at, 1 +/* 01EDA0 7001E1A0 342186A0 */ ori $at, (0x000186A0 & 0xFFFF) # ori $at, $at, 0x86a0 +/* 01EDA4 7001E1A4 24050006 */ li $a1, 6 +/* 01EDA8 7001E1A8 0000C012 */ mflo $t8 +/* 01EDAC 7001E1AC 00000000 */ nop +/* 01EDB0 7001E1B0 00000000 */ nop +/* 01EDB4 7001E1B4 0301001A */ div $zero, $t8, $at +/* 01EDB8 7001E1B8 00007012 */ mflo $t6 +/* 01EDBC 7001E1BC 25CFFFFC */ addiu $t7, $t6, -4 +/* 01EDC0 7001E1C0 000FCC00 */ sll $t9, $t7, 0x10 +/* 01EDC4 7001E1C4 0019C403 */ sra $t8, $t9, 0x10 +/* 01EDC8 7001E1C8 07010019 */ bgez $t8, .L7001E230 +/* 01EDCC 7001E1CC A7AF009A */ sh $t7, 0x9a($sp) +/* 01EDD0 7001E1D0 000FCC00 */ sll $t9, $t7, 0x10 +/* 01EDD4 7001E1D4 0019C403 */ sra $t8, $t9, 0x10 +/* 01EDD8 7001E1D8 240E0003 */ li $t6, 3 +/* 01EDDC 7001E1DC 01D82023 */ subu $a0, $t6, $t8 +/* 01EDE0 7001E1E0 2401FFFC */ li $at, -4 +/* 01EDE4 7001E1E4 00811024 */ and $v0, $a0, $at +/* 01EDE8 7001E1E8 0002C823 */ negu $t9, $v0 +/* 01EDEC 7001E1EC 1840002C */ blez $v0, .L7001E2A0 +/* 01EDF0 7001E1F0 A7B9009A */ sh $t9, 0x9a($sp) +/* 01EDF4 7001E1F4 3C048003 */ lui $a0, %hi(digits) +/* 01EDF8 7001E1F8 24849C90 */ addiu $a0, %lo(digits) # addiu $a0, $a0, -0x6370 +.L7001E1FC: +/* 01EDFC 7001E1FC 304E0001 */ andi $t6, $v0, 1 +/* 01EE00 7001E200 11C00006 */ beqz $t6, .L7001E21C +/* 01EE04 7001E204 0002C843 */ sra $t9, $v0, 1 +/* 01EE08 7001E208 0003C0C0 */ sll $t8, $v1, 3 +/* 01EE0C 7001E20C 00987821 */ addu $t7, $a0, $t8 +/* 01EE10 7001E210 D5E40000 */ ldc1 $f4, ($t7) +/* 01EE14 7001E214 4624A502 */ mul.d $f20, $f20, $f4 +/* 01EE18 7001E218 00000000 */ nop +.L7001E21C: +/* 01EE1C 7001E21C 03201025 */ move $v0, $t9 +/* 01EE20 7001E220 1F20FFF6 */ bgtz $t9, .L7001E1FC +/* 01EE24 7001E224 24630001 */ addiu $v1, $v1, 1 +/* 01EE28 7001E228 1000001E */ b .L7001E2A4 +/* 01EE2C 7001E22C 8FAF0048 */ lw $t7, 0x48($sp) +.L7001E230: +/* 01EE30 7001E230 87AE009A */ lh $t6, 0x9a($sp) +/* 01EE34 7001E234 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 01EE38 7001E238 00001825 */ move $v1, $zero +/* 01EE3C 7001E23C 19C00018 */ blez $t6, .L7001E2A0 +/* 01EE40 7001E240 31D8FFFC */ andi $t8, $t6, 0xfffc +/* 01EE44 7001E244 00181400 */ sll $v0, $t8, 0x10 +/* 01EE48 7001E248 0018CC00 */ sll $t9, $t8, 0x10 +/* 01EE4C 7001E24C 44810800 */ mtc1 $at, $f1 +/* 01EE50 7001E250 44800000 */ mtc1 $zero, $f0 +/* 01EE54 7001E254 00197403 */ sra $t6, $t9, 0x10 +/* 01EE58 7001E258 00027C03 */ sra $t7, $v0, 0x10 +/* 01EE5C 7001E25C A7B8009A */ sh $t8, 0x9a($sp) +/* 01EE60 7001E260 19C0000E */ blez $t6, .L7001E29C +/* 01EE64 7001E264 01E01025 */ move $v0, $t7 +/* 01EE68 7001E268 3C048003 */ lui $a0, %hi(digits) +/* 01EE6C 7001E26C 24849C90 */ addiu $a0, %lo(digits) # addiu $a0, $a0, -0x6370 +.L7001E270: +/* 01EE70 7001E270 304F0001 */ andi $t7, $v0, 1 +/* 01EE74 7001E274 11E00006 */ beqz $t7, .L7001E290 +/* 01EE78 7001E278 00027043 */ sra $t6, $v0, 1 +/* 01EE7C 7001E27C 0003C0C0 */ sll $t8, $v1, 3 +/* 01EE80 7001E280 0098C821 */ addu $t9, $a0, $t8 +/* 01EE84 7001E284 D7260000 */ ldc1 $f6, ($t9) +/* 01EE88 7001E288 46260002 */ mul.d $f0, $f0, $f6 +/* 01EE8C 7001E28C 00000000 */ nop +.L7001E290: +/* 01EE90 7001E290 01C01025 */ move $v0, $t6 +/* 01EE94 7001E294 1DC0FFF6 */ bgtz $t6, .L7001E270 +/* 01EE98 7001E298 24630001 */ addiu $v1, $v1, 1 +.L7001E29C: +/* 01EE9C 7001E29C 4620A503 */ div.d $f20, $f20, $f0 +.L7001E2A0: +/* 01EEA0 7001E2A0 8FAF0048 */ lw $t7, 0x48($sp) +.L7001E2A4: +/* 01EEA4 7001E2A4 24010066 */ li $at, 102 +/* 01EEA8 7001E2A8 8FB800D0 */ lw $t8, 0xd0($sp) +/* 01EEAC 7001E2AC 15E10004 */ bne $t7, $at, .L7001E2C0 +/* 01EEB0 7001E2B0 240E0030 */ li $t6, 48 +/* 01EEB4 7001E2B4 87A5009A */ lh $a1, 0x9a($sp) +/* 01EEB8 7001E2B8 10000001 */ b .L7001E2C0 +/* 01EEBC 7001E2BC 24A5000A */ addiu $a1, $a1, 0xa +.L7001E2C0: +/* 01EEC0 7001E2C0 8F190024 */ lw $t9, 0x24($t8) +/* 01EEC4 7001E2C4 00B9A021 */ addu $s4, $a1, $t9 +/* 01EEC8 7001E2C8 2A810014 */ slti $at, $s4, 0x14 +/* 01EECC 7001E2CC 14200002 */ bnez $at, .L7001E2D8 +/* 01EED0 7001E2D0 00000000 */ nop +/* 01EED4 7001E2D4 24140013 */ li $s4, 19 +.L7001E2D8: +/* 01EED8 7001E2D8 1A800033 */ blez $s4, .L7001E3A8 +/* 01EEDC 7001E2DC A3AE00B0 */ sb $t6, 0xb0($sp) +/* 01EEE0 7001E2E0 4634103C */ c.lt.d $f2, $f20 +/* 01EEE4 7001E2E4 24130030 */ li $s3, 48 +/* 01EEE8 7001E2E8 27B20074 */ addiu $s2, $sp, 0x74 +/* 01EEEC 7001E2EC 4502002F */ bc1fl .L7001E3AC +/* 01EEF0 7001E2F0 87B8009A */ lh $t8, 0x9a($sp) +/* 01EEF4 7001E2F4 4620A20D */ trunc.w.d $f8, $f20 +.L7001E2F8: +/* 01EEF8 7001E2F8 2694FFF8 */ addiu $s4, $s4, -8 +/* 01EEFC 7001E2FC 26B50008 */ addiu $s5, $s5, 8 +/* 01EF00 7001E300 44114000 */ mfc1 $s1, $f8 +/* 01EF04 7001E304 1A800008 */ blez $s4, .L7001E328 +/* 01EF08 7001E308 00000000 */ nop +/* 01EF0C 7001E30C 44915000 */ mtc1 $s1, $f10 +/* 01EF10 7001E310 3C018003 */ lui $at, %hi(F64_80029CE8) +/* 01EF14 7001E314 D4289CE8 */ ldc1 $f8, %lo(F64_80029CE8)($at) +/* 01EF18 7001E318 46805121 */ cvt.d.w $f4, $f10 +/* 01EF1C 7001E31C 4624A181 */ sub.d $f6, $f20, $f4 +/* 01EF20 7001E320 46283502 */ mul.d $f20, $f6, $f8 +/* 01EF24 7001E324 00000000 */ nop +.L7001E328: +/* 01EF28 7001E328 1A200011 */ blez $s1, .L7001E370 +/* 01EF2C 7001E32C 24100008 */ li $s0, 8 +/* 01EF30 7001E330 24100007 */ li $s0, 7 +/* 01EF34 7001E334 0600000E */ bltz $s0, .L7001E370 +/* 01EF38 7001E338 02402025 */ move $a0, $s2 +.L7001E33C: +/* 01EF3C 7001E33C 02202825 */ move $a1, $s1 +/* 01EF40 7001E340 0C008314 */ jal ldiv +/* 01EF44 7001E344 2406000A */ li $a2, 10 +/* 01EF48 7001E348 8FB80078 */ lw $t8, 0x78($sp) +/* 01EF4C 7001E34C 26B5FFFF */ addiu $s5, $s5, -1 +/* 01EF50 7001E350 27190030 */ addiu $t9, $t8, 0x30 +/* 01EF54 7001E354 A2B90000 */ sb $t9, ($s5) +/* 01EF58 7001E358 8FB10074 */ lw $s1, 0x74($sp) +/* 01EF5C 7001E35C 5A200005 */ blezl $s1, .L7001E374 +/* 01EF60 7001E360 44801800 */ mtc1 $zero, $f3 +/* 01EF64 7001E364 2610FFFF */ addiu $s0, $s0, -1 +/* 01EF68 7001E368 0603FFF4 */ bgezl $s0, .L7001E33C +/* 01EF6C 7001E36C 02402025 */ move $a0, $s2 +.L7001E370: +/* 01EF70 7001E370 44801800 */ mtc1 $zero, $f3 +.L7001E374: +/* 01EF74 7001E374 44801000 */ mtc1 $zero, $f2 +/* 01EF78 7001E378 2610FFFF */ addiu $s0, $s0, -1 +/* 01EF7C 7001E37C 06000004 */ bltz $s0, .L7001E390 +.L7001E380: +/* 01EF80 7001E380 2610FFFF */ addiu $s0, $s0, -1 +/* 01EF84 7001E384 26B5FFFF */ addiu $s5, $s5, -1 +/* 01EF88 7001E388 0601FFFD */ bgez $s0, .L7001E380 +/* 01EF8C 7001E38C A2B30000 */ sb $s3, ($s5) +.L7001E390: +/* 01EF90 7001E390 1A800005 */ blez $s4, .L7001E3A8 +/* 01EF94 7001E394 26B50008 */ addiu $s5, $s5, 8 +/* 01EF98 7001E398 4634103C */ c.lt.d $f2, $f20 +/* 01EF9C 7001E39C 00000000 */ nop +/* 01EFA0 7001E3A0 4503FFD5 */ bc1tl .L7001E2F8 +/* 01EFA4 7001E3A4 4620A20D */ trunc.w.d $f8, $f20 +.L7001E3A8: +/* 01EFA8 7001E3A8 87B8009A */ lh $t8, 0x9a($sp) +.L7001E3AC: +/* 01EFAC 7001E3AC 93AE00B1 */ lbu $t6, 0xb1($sp) +/* 01EFB0 7001E3B0 27AF00B0 */ addiu $t7, $sp, 0xb0 +/* 01EFB4 7001E3B4 24020030 */ li $v0, 48 +/* 01EFB8 7001E3B8 02AFA023 */ subu $s4, $s5, $t7 +/* 01EFBC 7001E3BC 27190007 */ addiu $t9, $t8, 7 +/* 01EFC0 7001E3C0 2694FFFF */ addiu $s4, $s4, -1 +/* 01EFC4 7001E3C4 A7B9009A */ sh $t9, 0x9a($sp) +/* 01EFC8 7001E3C8 144E0009 */ bne $v0, $t6, .L7001E3F0 +/* 01EFCC 7001E3CC 27B500B1 */ addiu $s5, $sp, 0xb1 +/* 01EFD0 7001E3D0 87AF009A */ lh $t7, 0x9a($sp) +.L7001E3D4: +/* 01EFD4 7001E3D4 26B50001 */ addiu $s5, $s5, 1 +/* 01EFD8 7001E3D8 2694FFFF */ addiu $s4, $s4, -1 +/* 01EFDC 7001E3DC 25F8FFFF */ addiu $t8, $t7, -1 +/* 01EFE0 7001E3E0 A7B8009A */ sh $t8, 0x9a($sp) +/* 01EFE4 7001E3E4 92B90000 */ lbu $t9, ($s5) +/* 01EFE8 7001E3E8 5059FFFA */ beql $v0, $t9, .L7001E3D4 +/* 01EFEC 7001E3EC 87AF009A */ lh $t7, 0x9a($sp) +.L7001E3F0: +/* 01EFF0 7001E3F0 8FAE0048 */ lw $t6, 0x48($sp) +/* 01EFF4 7001E3F4 24010066 */ li $at, 102 +/* 01EFF8 7001E3F8 8FB800D0 */ lw $t8, 0xd0($sp) +/* 01EFFC 7001E3FC 15C10004 */ bne $t6, $at, .L7001E410 +/* 01F000 7001E400 8FAF0048 */ lw $t7, 0x48($sp) +/* 01F004 7001E404 87A5009A */ lh $a1, 0x9a($sp) +/* 01F008 7001E408 10000009 */ b .L7001E430 +/* 01F00C 7001E40C 24A50001 */ addiu $a1, $a1, 1 +.L7001E410: +/* 01F010 7001E410 24010065 */ li $at, 101 +/* 01F014 7001E414 11E10003 */ beq $t7, $at, .L7001E424 +/* 01F018 7001E418 24010045 */ li $at, 69 +/* 01F01C 7001E41C 15E10003 */ bne $t7, $at, .L7001E42C +/* 01F020 7001E420 00001025 */ move $v0, $zero +.L7001E424: +/* 01F024 7001E424 10000001 */ b .L7001E42C +/* 01F028 7001E428 24020001 */ li $v0, 1 +.L7001E42C: +/* 01F02C 7001E42C 00402825 */ move $a1, $v0 +.L7001E430: +/* 01F030 7001E430 8F190024 */ lw $t9, 0x24($t8) +/* 01F034 7001E434 00B99821 */ addu $s3, $a1, $t9 +/* 01F038 7001E438 00137400 */ sll $t6, $s3, 0x10 +/* 01F03C 7001E43C 000E9C03 */ sra $s3, $t6, 0x10 +/* 01F040 7001E440 0293082A */ slt $at, $s4, $s3 +/* 01F044 7001E444 10200004 */ beqz $at, .L7001E458 +/* 01F048 7001E448 00000000 */ nop +/* 01F04C 7001E44C 00149C00 */ sll $s3, $s4, 0x10 +/* 01F050 7001E450 0013C403 */ sra $t8, $s3, 0x10 +/* 01F054 7001E454 03009825 */ move $s3, $t8 +.L7001E458: +/* 01F058 7001E458 1A600025 */ blez $s3, .L7001E4F0 +/* 01F05C 7001E45C 0274082A */ slt $at, $s3, $s4 +/* 01F060 7001E460 10200007 */ beqz $at, .L7001E480 +/* 01F064 7001E464 02751021 */ addu $v0, $s3, $s5 +/* 01F068 7001E468 90590000 */ lbu $t9, ($v0) +/* 01F06C 7001E46C 2B210035 */ slti $at, $t9, 0x35 +/* 01F070 7001E470 54200004 */ bnezl $at, .L7001E484 +/* 01F074 7001E474 24050030 */ li $a1, 48 +/* 01F078 7001E478 10000003 */ b .L7001E488 +/* 01F07C 7001E47C 24050039 */ li $a1, 57 +.L7001E480: +/* 01F080 7001E480 24050030 */ li $a1, 48 +.L7001E484: +/* 01F084 7001E484 02751021 */ addu $v0, $s3, $s5 +.L7001E488: +/* 01F088 7001E488 904EFFFF */ lbu $t6, -1($v0) +/* 01F08C 7001E48C 2663FFFF */ addiu $v1, $s3, -1 +/* 01F090 7001E490 00A02025 */ move $a0, $a1 +/* 01F094 7001E494 14AE0009 */ bne $a1, $t6, .L7001E4BC +/* 01F098 7001E498 24010039 */ li $at, 57 +/* 01F09C 7001E49C 00751021 */ addu $v0, $v1, $s5 +.L7001E4A0: +/* 01F0A0 7001E4A0 9059FFFF */ lbu $t9, -1($v0) +/* 01F0A4 7001E4A4 2673FFFF */ addiu $s3, $s3, -1 +/* 01F0A8 7001E4A8 00137C00 */ sll $t7, $s3, 0x10 +/* 01F0AC 7001E4AC 2463FFFF */ addiu $v1, $v1, -1 +/* 01F0B0 7001E4B0 2442FFFF */ addiu $v0, $v0, -1 +/* 01F0B4 7001E4B4 1099FFFA */ beq $a0, $t9, .L7001E4A0 +/* 01F0B8 7001E4B8 000F9C03 */ sra $s3, $t7, 0x10 +.L7001E4BC: +/* 01F0BC 7001E4BC 14810004 */ bne $a0, $at, .L7001E4D0 +/* 01F0C0 7001E4C0 02A31021 */ addu $v0, $s5, $v1 +/* 01F0C4 7001E4C4 904E0000 */ lbu $t6, ($v0) +/* 01F0C8 7001E4C8 25CF0001 */ addiu $t7, $t6, 1 +/* 01F0CC 7001E4CC A04F0000 */ sb $t7, ($v0) +.L7001E4D0: +/* 01F0D0 7001E4D0 04610007 */ bgez $v1, .L7001E4F0 +/* 01F0D4 7001E4D4 87AE009A */ lh $t6, 0x9a($sp) +/* 01F0D8 7001E4D8 26730001 */ addiu $s3, $s3, 1 +/* 01F0DC 7001E4DC 0013C400 */ sll $t8, $s3, 0x10 +/* 01F0E0 7001E4E0 25CF0001 */ addiu $t7, $t6, 1 +/* 01F0E4 7001E4E4 A7AF009A */ sh $t7, 0x9a($sp) +/* 01F0E8 7001E4E8 00189C03 */ sra $s3, $t8, 0x10 +/* 01F0EC 7001E4EC 26B5FFFF */ addiu $s5, $s5, -1 +.L7001E4F0: +/* 01F0F0 7001E4F0 8FB000D0 */ lw $s0, 0xd0($sp) +/* 01F0F4 7001E4F4 93B400D7 */ lbu $s4, 0xd7($sp) +/* 01F0F8 7001E4F8 02A08825 */ move $s1, $s5 +/* 01F0FC 7001E4FC 0C00769C */ jal xldtob_sub0 +/* 01F100 7001E500 87B2009A */ lh $s2, 0x9a($sp) +/* 01F104 7001E504 8FBF003C */ lw $ra, 0x3c($sp) +.L7001E508: +/* 01F108 7001E508 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 01F10C 7001E50C 8FB00024 */ lw $s0, 0x24($sp) +/* 01F110 7001E510 8FB10028 */ lw $s1, 0x28($sp) +/* 01F114 7001E514 8FB2002C */ lw $s2, 0x2c($sp) +/* 01F118 7001E518 8FB30030 */ lw $s3, 0x30($sp) +/* 01F11C 7001E51C 8FB40034 */ lw $s4, 0x34($sp) +/* 01F120 7001E520 8FB50038 */ lw $s5, 0x38($sp) +/* 01F124 7001E524 03E00008 */ jr $ra +/* 01F128 7001E528 27BD00D0 */ addiu $sp, $sp, 0xd0 + +.section .rodata +glabel asc_D_80029CE0 + .ascii "0"<0> + .align 3 +glabel F64_80029CE8 + .double 1.0e8 + \ No newline at end of file diff --git a/src/libultra/xlitob.s b/src/libultra/xlitob.s new file mode 100644 index 0000000..f1a6ab6 --- /dev/null +++ b/src/libultra/xlitob.s @@ -0,0 +1,208 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +.section .text +glabel _Litob +/* 01E3D0 7001D7D0 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 01E3D4 7001D7D4 AFB10020 */ sw $s1, 0x20($sp) +/* 01E3D8 7001D7D8 30A200FF */ andi $v0, $a1, 0xff +/* 01E3DC 7001D7DC 24030058 */ li $v1, 88 +/* 01E3E0 7001D7E0 00808825 */ move $s1, $a0 +/* 01E3E4 7001D7E4 AFBF002C */ sw $ra, 0x2c($sp) +/* 01E3E8 7001D7E8 AFB30028 */ sw $s3, 0x28($sp) +/* 01E3EC 7001D7EC AFB20024 */ sw $s2, 0x24($sp) +/* 01E3F0 7001D7F0 AFB0001C */ sw $s0, 0x1c($sp) +/* 01E3F4 7001D7F4 14620004 */ bne $v1, $v0, .L7001D808 +/* 01E3F8 7001D7F8 AFA50094 */ sw $a1, 0x94($sp) +/* 01E3FC 7001D7FC 3C138003 */ lui $s3, %hi(auppercase_hex_char) +/* 01E400 7001D800 10000003 */ b .L7001D810 +/* 01E404 7001D804 26738304 */ addiu $s3, %lo(auppercase_hex_char) # addiu $s3, $s3, -0x7cfc +.L7001D808: +/* 01E408 7001D808 3C138003 */ lui $s3, %hi(alowercase_hex_char) +/* 01E40C 7001D80C 267382F0 */ addiu $s3, %lo(alowercase_hex_char) # addiu $s3, $s3, -0x7d10 +.L7001D810: +/* 01E410 7001D810 2401006F */ li $at, 111 +/* 01E414 7001D814 14410003 */ bne $v0, $at, .L7001D824 +/* 01E418 7001D818 24100018 */ li $s0, 24 +/* 01E41C 7001D81C 10000009 */ b .L7001D844 +/* 01E420 7001D820 24090008 */ li $t1, 8 +.L7001D824: +/* 01E424 7001D824 24010078 */ li $at, 120 +/* 01E428 7001D828 10410005 */ beq $v0, $at, .L7001D840 +/* 01E42C 7001D82C 24080010 */ li $t0, 16 +/* 01E430 7001D830 10620003 */ beq $v1, $v0, .L7001D840 +/* 01E434 7001D834 00000000 */ nop +/* 01E438 7001D838 10000001 */ b .L7001D840 +/* 01E43C 7001D83C 2408000A */ li $t0, 10 +.L7001D840: +/* 01E440 7001D840 01004825 */ move $t1, $t0 +.L7001D844: +/* 01E444 7001D844 8E380000 */ lw $t8, ($s1) +/* 01E448 7001D848 8E390004 */ lw $t9, 4($s1) +/* 01E44C 7001D84C 24010064 */ li $at, 100 +/* 01E450 7001D850 AFB80060 */ sw $t8, 0x60($sp) +/* 01E454 7001D854 AFB80040 */ sw $t8, 0x40($sp) +/* 01E458 7001D858 AFB90044 */ sw $t9, 0x44($sp) +/* 01E45C 7001D85C 10410004 */ beq $v0, $at, .L7001D870 +/* 01E460 7001D860 AFB90064 */ sw $t9, 0x64($sp) +/* 01E464 7001D864 24010069 */ li $at, 105 +/* 01E468 7001D868 54410010 */ bnel $v0, $at, .L7001D8AC +/* 01E46C 7001D86C 8FAA0060 */ lw $t2, 0x60($sp) +.L7001D870: +/* 01E470 7001D870 8FAC0040 */ lw $t4, 0x40($sp) +/* 01E474 7001D874 5D80000D */ bgtzl $t4, .L7001D8AC +/* 01E478 7001D878 8FAA0060 */ lw $t2, 0x60($sp) +/* 01E47C 7001D87C 05800003 */ bltz $t4, .L7001D88C +/* 01E480 7001D880 8FAE0060 */ lw $t6, 0x60($sp) +/* 01E484 7001D884 10000009 */ b .L7001D8AC +/* 01E488 7001D888 8FAA0060 */ lw $t2, 0x60($sp) +.L7001D88C: +/* 01E48C 7001D88C 8FAF0064 */ lw $t7, 0x64($sp) +/* 01E490 7001D890 01C0C027 */ not $t8, $t6 +/* 01E494 7001D894 2DE10001 */ sltiu $at, $t7, 1 +/* 01E498 7001D898 0301C021 */ addu $t8, $t8, $at +/* 01E49C 7001D89C 000FC823 */ negu $t9, $t7 +/* 01E4A0 7001D8A0 AFB90064 */ sw $t9, 0x64($sp) +/* 01E4A4 7001D8A4 AFB80060 */ sw $t8, 0x60($sp) +/* 01E4A8 7001D8A8 8FAA0060 */ lw $t2, 0x60($sp) +.L7001D8AC: +/* 01E4AC 7001D8AC 8FAB0064 */ lw $t3, 0x64($sp) +/* 01E4B0 7001D8B0 24080017 */ li $t0, 23 +/* 01E4B4 7001D8B4 15400006 */ bnez $t2, .L7001D8D0 +/* 01E4B8 7001D8B8 8FA40060 */ lw $a0, 0x60($sp) +/* 01E4BC 7001D8BC 55600005 */ bnezl $t3, .L7001D8D4 +/* 01E4C0 7001D8C0 24100017 */ li $s0, 23 +/* 01E4C4 7001D8C4 8E2C0024 */ lw $t4, 0x24($s1) +/* 01E4C8 7001D8C8 51800010 */ beql $t4, $zero, .L7001D90C +/* 01E4CC 7001D8CC 27B20078 */ addiu $s2, $sp, 0x78 +.L7001D8D0: +/* 01E4D0 7001D8D0 24100017 */ li $s0, 23 +.L7001D8D4: +/* 01E4D4 7001D8D4 8FA50064 */ lw $a1, 0x64($sp) +/* 01E4D8 7001D8D8 01203825 */ move $a3, $t1 +/* 01E4DC 7001D8DC 000937C3 */ sra $a2, $t1, 0x1f +/* 01E4E0 7001D8E0 AFA8004C */ sw $t0, 0x4c($sp) +/* 01E4E4 7001D8E4 0C003B1B */ jal __ull_rem +/* 01E4E8 7001D8E8 AFA90070 */ sw $t1, 0x70($sp) +/* 01E4EC 7001D8EC 8FA8004C */ lw $t0, 0x4c($sp) +/* 01E4F0 7001D8F0 00737021 */ addu $t6, $v1, $s3 +/* 01E4F4 7001D8F4 91CF0000 */ lbu $t7, ($t6) +/* 01E4F8 7001D8F8 27B20078 */ addiu $s2, $sp, 0x78 +/* 01E4FC 7001D8FC 8FA90070 */ lw $t1, 0x70($sp) +/* 01E500 7001D900 0248C021 */ addu $t8, $s2, $t0 +/* 01E504 7001D904 A30F0000 */ sb $t7, ($t8) +/* 01E508 7001D908 27B20078 */ addiu $s2, $sp, 0x78 +.L7001D90C: +/* 01E50C 7001D90C 8FA40060 */ lw $a0, 0x60($sp) +/* 01E510 7001D910 8FA50064 */ lw $a1, 0x64($sp) +/* 01E514 7001D914 01203825 */ move $a3, $t1 +/* 01E518 7001D918 000937C3 */ sra $a2, $t1, 0x1f +/* 01E51C 7001D91C 0C003B2A */ jal __ull_div +/* 01E520 7001D920 AFA90070 */ sw $t1, 0x70($sp) +/* 01E524 7001D924 8FA90070 */ lw $t1, 0x70($sp) +/* 01E528 7001D928 AE230004 */ sw $v1, 4($s1) +/* 01E52C 7001D92C 0440002B */ bltz $v0, .L7001D9DC +/* 01E530 7001D930 AE220000 */ sw $v0, ($s1) +/* 01E534 7001D934 1C400003 */ bgtz $v0, .L7001D944 +/* 01E538 7001D938 00000000 */ nop +/* 01E53C 7001D93C 50600028 */ beql $v1, $zero, .L7001D9E0 +/* 01E540 7001D940 240C0018 */ li $t4, 24 +.L7001D944: +/* 01E544 7001D944 1A000025 */ blez $s0, .L7001D9DC +/* 01E548 7001D948 000967C3 */ sra $t4, $t1, 0x1f +/* 01E54C 7001D94C 8E2A0000 */ lw $t2, ($s1) +/* 01E550 7001D950 8E2B0004 */ lw $t3, 4($s1) +/* 01E554 7001D954 AFA9003C */ sw $t1, 0x3c($sp) +/* 01E558 7001D958 AFAC0038 */ sw $t4, 0x38($sp) +/* 01E55C 7001D95C AFAA0040 */ sw $t2, 0x40($sp) +/* 01E560 7001D960 AFAB0044 */ sw $t3, 0x44($sp) +/* 01E564 7001D964 8FAE0038 */ lw $t6, 0x38($sp) +.L7001D968: +/* 01E568 7001D968 8FAF003C */ lw $t7, 0x3c($sp) +/* 01E56C 7001D96C 27A40050 */ addiu $a0, $sp, 0x50 +/* 01E570 7001D970 8FA60040 */ lw $a2, 0x40($sp) +/* 01E574 7001D974 8FA70044 */ lw $a3, 0x44($sp) +/* 01E578 7001D978 AFAE0010 */ sw $t6, 0x10($sp) +/* 01E57C 7001D97C 0C0082D4 */ jal lldiv +/* 01E580 7001D980 AFAF0014 */ sw $t7, 0x14($sp) +/* 01E584 7001D984 8FB80050 */ lw $t8, 0x50($sp) +/* 01E588 7001D988 8FB90054 */ lw $t9, 0x54($sp) +/* 01E58C 7001D98C 2604FFFF */ addiu $a0, $s0, -1 +/* 01E590 7001D990 AE380000 */ sw $t8, ($s1) +/* 01E594 7001D994 AE390004 */ sw $t9, 4($s1) +/* 01E598 7001D998 8FAB005C */ lw $t3, 0x5c($sp) +/* 01E59C 7001D99C 02447821 */ addu $t7, $s2, $a0 +/* 01E5A0 7001D9A0 00808025 */ move $s0, $a0 +/* 01E5A4 7001D9A4 01736821 */ addu $t5, $t3, $s3 +/* 01E5A8 7001D9A8 91AE0000 */ lbu $t6, ($t5) +/* 01E5AC 7001D9AC A1EE0000 */ sb $t6, ($t7) +/* 01E5B0 7001D9B0 8E380000 */ lw $t8, ($s1) +/* 01E5B4 7001D9B4 8E390004 */ lw $t9, 4($s1) +/* 01E5B8 7001D9B8 AFB80040 */ sw $t8, 0x40($sp) +/* 01E5BC 7001D9BC 07000007 */ bltz $t8, .L7001D9DC +/* 01E5C0 7001D9C0 AFB90044 */ sw $t9, 0x44($sp) +/* 01E5C4 7001D9C4 1F000003 */ bgtz $t8, .L7001D9D4 +/* 01E5C8 7001D9C8 00000000 */ nop +/* 01E5CC 7001D9CC 53200004 */ beql $t9, $zero, .L7001D9E0 +/* 01E5D0 7001D9D0 240C0018 */ li $t4, 24 +.L7001D9D4: +/* 01E5D4 7001D9D4 5E00FFE4 */ bgtzl $s0, .L7001D968 +/* 01E5D8 7001D9D8 8FAE0038 */ lw $t6, 0x38($sp) +.L7001D9DC: +/* 01E5DC 7001D9DC 240C0018 */ li $t4, 24 +.L7001D9E0: +/* 01E5E0 7001D9E0 01903023 */ subu $a2, $t4, $s0 +/* 01E5E4 7001D9E4 AE260014 */ sw $a2, 0x14($s1) +/* 01E5E8 7001D9E8 8E240008 */ lw $a0, 8($s1) +/* 01E5EC 7001D9EC 0C004E14 */ jal memcpy +/* 01E5F0 7001D9F0 02502821 */ addu $a1, $s2, $s0 +/* 01E5F4 7001D9F4 8E250014 */ lw $a1, 0x14($s1) +/* 01E5F8 7001D9F8 8E240024 */ lw $a0, 0x24($s1) +/* 01E5FC 7001D9FC 00A4082A */ slt $at, $a1, $a0 +/* 01E600 7001DA00 10200002 */ beqz $at, .L7001DA0C +/* 01E604 7001DA04 00856823 */ subu $t5, $a0, $a1 +/* 01E608 7001DA08 AE2D0010 */ sw $t5, 0x10($s1) +.L7001DA0C: +/* 01E60C 7001DA0C 04830010 */ bgezl $a0, .L7001DA50 +/* 01E610 7001DA10 8FBF002C */ lw $ra, 0x2c($sp) +/* 01E614 7001DA14 8E2E0030 */ lw $t6, 0x30($s1) +/* 01E618 7001DA18 24010010 */ li $at, 16 +/* 01E61C 7001DA1C 31CF0014 */ andi $t7, $t6, 0x14 +/* 01E620 7001DA20 55E1000B */ bnel $t7, $at, .L7001DA50 +/* 01E624 7001DA24 8FBF002C */ lw $ra, 0x2c($sp) +/* 01E628 7001DA28 8E380028 */ lw $t8, 0x28($s1) +/* 01E62C 7001DA2C 8E39000C */ lw $t9, 0xc($s1) +/* 01E630 7001DA30 8E220010 */ lw $v0, 0x10($s1) +/* 01E634 7001DA34 03195023 */ subu $t2, $t8, $t9 +/* 01E638 7001DA38 01425823 */ subu $t3, $t2, $v0 +/* 01E63C 7001DA3C 01658023 */ subu $s0, $t3, $a1 +/* 01E640 7001DA40 1A000002 */ blez $s0, .L7001DA4C +/* 01E644 7001DA44 00506021 */ addu $t4, $v0, $s0 +/* 01E648 7001DA48 AE2C0010 */ sw $t4, 0x10($s1) +.L7001DA4C: +/* 01E64C 7001DA4C 8FBF002C */ lw $ra, 0x2c($sp) +.L7001DA50: +/* 01E650 7001DA50 8FB0001C */ lw $s0, 0x1c($sp) +/* 01E654 7001DA54 8FB10020 */ lw $s1, 0x20($sp) +/* 01E658 7001DA58 8FB20024 */ lw $s2, 0x24($sp) +/* 01E65C 7001DA5C 8FB30028 */ lw $s3, 0x28($sp) +/* 01E660 7001DA60 03E00008 */ jr $ra +/* 01E664 7001DA64 27BD0090 */ addiu $sp, $sp, 0x90 + + +.section .data +glabel alowercase_hex_char +.asciiz "0123456789abcdef" +.align 2 +glabel auppercase_hex_char +.asciiz "0123456789ABCDEF" +.align 4 diff --git a/src/libultra/xprintf.s b/src/libultra/xprintf.s new file mode 100644 index 0000000..0f7ac68 --- /dev/null +++ b/src/libultra/xprintf.s @@ -0,0 +1,966 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel _Putfld +/* 0144F0 700138F0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0144F4 700138F4 AFA50020 */ sw $a1, 0x20($sp) +/* 0144F8 700138F8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0144FC 700138FC 30AE00FF */ andi $t6, $a1, 0xff +/* 014500 70013900 29C10026 */ slti $at, $t6, 0x26 +/* 014504 70013904 01C02825 */ move $a1, $t6 +/* 014508 70013908 AE00000C */ sw $zero, 0xc($s0) +/* 01450C 7001390C AE000010 */ sw $zero, 0x10($s0) +/* 014510 70013910 AE000014 */ sw $zero, 0x14($s0) +/* 014514 70013914 AE000018 */ sw $zero, 0x18($s0) +/* 014518 70013918 AE00001C */ sw $zero, 0x1c($s0) +/* 01451C 7001391C AE000020 */ sw $zero, 0x20($s0) +/* 014520 70013920 1420000A */ bnez $at, .L7001394C +/* 014524 70013924 01C01825 */ move $v1, $t6 +/* 014528 70013928 25CFFFBB */ addiu $t7, $t6, -0x45 +/* 01452C 7001392C 2DE10034 */ sltiu $at, $t7, 0x34 +/* 014530 70013930 10200181 */ beqz $at, .L70013F38 +/* 014534 70013934 000F7880 */ sll $t7, $t7, 2 +/* 014538 70013938 3C018003 */ lui $at, %hi(jpt_80029714) +/* 01453C 7001393C 002F0821 */ addu $at, $at, $t7 +/* 014540 70013940 8C2F9714 */ lw $t7, %lo(jpt_80029714)($at) +/* 014544 70013944 01E00008 */ jr $t7 +/* 014548 70013948 00000000 */ nop +.L7001394C: +/* 01454C 7001394C 24010025 */ li $at, 37 +/* 014550 70013950 50610172 */ beql $v1, $at, .L70013F1C +/* 014554 70013954 8E18000C */ lw $t8, 0xc($s0) +/* 014558 70013958 10000178 */ b .L70013F3C +/* 01455C 7001395C 8E0E000C */ lw $t6, 0xc($s0) +.L70013960: +/* 014560 70013960 8CD80000 */ lw $t8, ($a2) +/* 014564 70013964 2401FFFC */ li $at, -4 +/* 014568 70013968 27190003 */ addiu $t9, $t8, 3 +/* 01456C 7001396C 03217024 */ and $t6, $t9, $at +/* 014570 70013970 25CF0004 */ addiu $t7, $t6, 4 +/* 014574 70013974 ACCF0000 */ sw $t7, ($a2) +/* 014578 70013978 8E0E000C */ lw $t6, 0xc($s0) +/* 01457C 7001397C 8DF9FFFC */ lw $t9, -4($t7) +/* 014580 70013980 00EE7821 */ addu $t7, $a3, $t6 +/* 014584 70013984 A1F90000 */ sb $t9, ($t7) +/* 014588 70013988 8E18000C */ lw $t8, 0xc($s0) +/* 01458C 7001398C 270E0001 */ addiu $t6, $t8, 1 +/* 014590 70013990 1000016F */ b .L70013F50 +/* 014594 70013994 AE0E000C */ sw $t6, 0xc($s0) +.L70013998: +/* 014598 70013998 92020034 */ lbu $v0, 0x34($s0) +/* 01459C 7001399C 2401006C */ li $at, 108 +/* 0145A0 700139A0 5441000D */ bnel $v0, $at, .L700139D8 +/* 0145A4 700139A4 2401004C */ li $at, 76 +/* 0145A8 700139A8 8CD90000 */ lw $t9, ($a2) +/* 0145AC 700139AC 2401FFFC */ li $at, -4 +/* 0145B0 700139B0 272F0003 */ addiu $t7, $t9, 3 +/* 0145B4 700139B4 01E1C024 */ and $t8, $t7, $at +/* 0145B8 700139B8 270E0004 */ addiu $t6, $t8, 4 +/* 0145BC 700139BC ACCE0000 */ sw $t6, ($a2) +/* 0145C0 700139C0 8DCFFFFC */ lw $t7, -4($t6) +/* 0145C4 700139C4 000FC7C3 */ sra $t8, $t7, 0x1f +/* 0145C8 700139C8 AE180000 */ sw $t8, ($s0) +/* 0145CC 700139CC 10000019 */ b .L70013A34 +/* 0145D0 700139D0 AE0F0004 */ sw $t7, 4($s0) +/* 0145D4 700139D4 2401004C */ li $at, 76 +.L700139D8: +/* 0145D8 700139D8 5441000D */ bnel $v0, $at, .L70013A10 +/* 0145DC 700139DC 8CCF0000 */ lw $t7, ($a2) +/* 0145E0 700139E0 8CCE0000 */ lw $t6, ($a2) +/* 0145E4 700139E4 2401FFF8 */ li $at, -8 +/* 0145E8 700139E8 25CF0007 */ addiu $t7, $t6, 7 +/* 0145EC 700139EC 01E1C024 */ and $t8, $t7, $at +/* 0145F0 700139F0 27190008 */ addiu $t9, $t8, 8 +/* 0145F4 700139F4 ACD90000 */ sw $t9, ($a2) +/* 0145F8 700139F8 8F38FFF8 */ lw $t8, -8($t9) +/* 0145FC 700139FC 8F39FFFC */ lw $t9, -4($t9) +/* 014600 70013A00 AE180000 */ sw $t8, ($s0) +/* 014604 70013A04 1000000B */ b .L70013A34 +/* 014608 70013A08 AE190004 */ sw $t9, 4($s0) +/* 01460C 70013A0C 8CCF0000 */ lw $t7, ($a2) +.L70013A10: +/* 014610 70013A10 2401FFFC */ li $at, -4 +/* 014614 70013A14 25EE0003 */ addiu $t6, $t7, 3 +/* 014618 70013A18 01C1C024 */ and $t8, $t6, $at +/* 01461C 70013A1C 27190004 */ addiu $t9, $t8, 4 +/* 014620 70013A20 ACD90000 */ sw $t9, ($a2) +/* 014624 70013A24 8F2EFFFC */ lw $t6, -4($t9) +/* 014628 70013A28 000EC7C3 */ sra $t8, $t6, 0x1f +/* 01462C 70013A2C AE180000 */ sw $t8, ($s0) +/* 014630 70013A30 AE0E0004 */ sw $t6, 4($s0) +.L70013A34: +/* 014634 70013A34 920F0034 */ lbu $t7, 0x34($s0) +/* 014638 70013A38 24010068 */ li $at, 104 +/* 01463C 70013A3C 55E10008 */ bnel $t7, $at, .L70013A60 +/* 014640 70013A40 8E0E0000 */ lw $t6, ($s0) +/* 014644 70013A44 8E0F0004 */ lw $t7, 4($s0) +/* 014648 70013A48 000FCC00 */ sll $t9, $t7, 0x10 +/* 01464C 70013A4C 00197403 */ sra $t6, $t9, 0x10 +/* 014650 70013A50 000EC7C3 */ sra $t8, $t6, 0x1f +/* 014654 70013A54 AE180000 */ sw $t8, ($s0) +/* 014658 70013A58 AE0E0004 */ sw $t6, 4($s0) +/* 01465C 70013A5C 8E0E0000 */ lw $t6, ($s0) +.L70013A60: +/* 014660 70013A60 5DC0000E */ bgtzl $t6, .L70013A9C +/* 014664 70013A64 8E020030 */ lw $v0, 0x30($s0) +/* 014668 70013A68 05C20004 */ bltzl $t6, .L70013A7C +/* 01466C 70013A6C 8E19000C */ lw $t9, 0xc($s0) +/* 014670 70013A70 1000000A */ b .L70013A9C +/* 014674 70013A74 8E020030 */ lw $v0, 0x30($s0) +/* 014678 70013A78 8E19000C */ lw $t9, 0xc($s0) +.L70013A7C: +/* 01467C 70013A7C 2418002D */ li $t8, 45 +/* 014680 70013A80 00F97021 */ addu $t6, $a3, $t9 +/* 014684 70013A84 A1D80000 */ sb $t8, ($t6) +/* 014688 70013A88 8E0F000C */ lw $t7, 0xc($s0) +/* 01468C 70013A8C 25F90001 */ addiu $t9, $t7, 1 +/* 014690 70013A90 10000016 */ b .L70013AEC +/* 014694 70013A94 AE19000C */ sw $t9, 0xc($s0) +/* 014698 70013A98 8E020030 */ lw $v0, 0x30($s0) +.L70013A9C: +/* 01469C 70013A9C 30580002 */ andi $t8, $v0, 2 +/* 0146A0 70013AA0 13000009 */ beqz $t8, .L70013AC8 +/* 0146A4 70013AA4 304E0001 */ andi $t6, $v0, 1 +/* 0146A8 70013AA8 8E0F000C */ lw $t7, 0xc($s0) +/* 0146AC 70013AAC 240E002B */ li $t6, 43 +/* 0146B0 70013AB0 00EFC821 */ addu $t9, $a3, $t7 +/* 0146B4 70013AB4 A32E0000 */ sb $t6, ($t9) +/* 0146B8 70013AB8 8E18000C */ lw $t8, 0xc($s0) +/* 0146BC 70013ABC 270F0001 */ addiu $t7, $t8, 1 +/* 0146C0 70013AC0 1000000A */ b .L70013AEC +/* 0146C4 70013AC4 AE0F000C */ sw $t7, 0xc($s0) +.L70013AC8: +/* 0146C8 70013AC8 51C00009 */ beql $t6, $zero, .L70013AF0 +/* 0146CC 70013ACC 8E19000C */ lw $t9, 0xc($s0) +/* 0146D0 70013AD0 8E18000C */ lw $t8, 0xc($s0) +/* 0146D4 70013AD4 24190020 */ li $t9, 32 +/* 0146D8 70013AD8 00F87821 */ addu $t7, $a3, $t8 +/* 0146DC 70013ADC A1F90000 */ sb $t9, ($t7) +/* 0146E0 70013AE0 8E0E000C */ lw $t6, 0xc($s0) +/* 0146E4 70013AE4 25D80001 */ addiu $t8, $t6, 1 +/* 0146E8 70013AE8 AE18000C */ sw $t8, 0xc($s0) +.L70013AEC: +/* 0146EC 70013AEC 8E19000C */ lw $t9, 0xc($s0) +.L70013AF0: +/* 0146F0 70013AF0 02002025 */ move $a0, $s0 +/* 0146F4 70013AF4 03277821 */ addu $t7, $t9, $a3 +/* 0146F8 70013AF8 0C0075F4 */ jal _Litob +/* 0146FC 70013AFC AE0F0008 */ sw $t7, 8($s0) +/* 014700 70013B00 10000114 */ b .L70013F54 +/* 014704 70013B04 8FBF0014 */ lw $ra, 0x14($sp) +.L70013B08: +/* 014708 70013B08 92020034 */ lbu $v0, 0x34($s0) +/* 01470C 70013B0C 2401006C */ li $at, 108 +/* 014710 70013B10 5441000D */ bnel $v0, $at, .L70013B48 +/* 014714 70013B14 2401004C */ li $at, 76 +/* 014718 70013B18 8CCE0000 */ lw $t6, ($a2) +/* 01471C 70013B1C 2401FFFC */ li $at, -4 +/* 014720 70013B20 25D80003 */ addiu $t8, $t6, 3 +/* 014724 70013B24 0301C824 */ and $t9, $t8, $at +/* 014728 70013B28 272F0004 */ addiu $t7, $t9, 4 +/* 01472C 70013B2C ACCF0000 */ sw $t7, ($a2) +/* 014730 70013B30 8DF8FFFC */ lw $t8, -4($t7) +/* 014734 70013B34 001877C3 */ sra $t6, $t8, 0x1f +/* 014738 70013B38 AE0E0000 */ sw $t6, ($s0) +/* 01473C 70013B3C 10000019 */ b .L70013BA4 +/* 014740 70013B40 AE180004 */ sw $t8, 4($s0) +/* 014744 70013B44 2401004C */ li $at, 76 +.L70013B48: +/* 014748 70013B48 5441000D */ bnel $v0, $at, .L70013B80 +/* 01474C 70013B4C 8CCE0000 */ lw $t6, ($a2) +/* 014750 70013B50 8CD90000 */ lw $t9, ($a2) +/* 014754 70013B54 2401FFF8 */ li $at, -8 +/* 014758 70013B58 27380007 */ addiu $t8, $t9, 7 +/* 01475C 70013B5C 03017024 */ and $t6, $t8, $at +/* 014760 70013B60 25CF0008 */ addiu $t7, $t6, 8 +/* 014764 70013B64 ACCF0000 */ sw $t7, ($a2) +/* 014768 70013B68 8DF9FFFC */ lw $t9, -4($t7) +/* 01476C 70013B6C 8DF8FFF8 */ lw $t8, -8($t7) +/* 014770 70013B70 AE190004 */ sw $t9, 4($s0) +/* 014774 70013B74 1000000B */ b .L70013BA4 +/* 014778 70013B78 AE180000 */ sw $t8, ($s0) +/* 01477C 70013B7C 8CCE0000 */ lw $t6, ($a2) +.L70013B80: +/* 014780 70013B80 2401FFFC */ li $at, -4 +/* 014784 70013B84 25CF0003 */ addiu $t7, $t6, 3 +/* 014788 70013B88 01E1C024 */ and $t8, $t7, $at +/* 01478C 70013B8C 27190004 */ addiu $t9, $t8, 4 +/* 014790 70013B90 ACD90000 */ sw $t9, ($a2) +/* 014794 70013B94 8F2FFFFC */ lw $t7, -4($t9) +/* 014798 70013B98 000FC7C3 */ sra $t8, $t7, 0x1f +/* 01479C 70013B9C AE180000 */ sw $t8, ($s0) +/* 0147A0 70013BA0 AE0F0004 */ sw $t7, 4($s0) +.L70013BA4: +/* 0147A4 70013BA4 92020034 */ lbu $v0, 0x34($s0) +/* 0147A8 70013BA8 24010068 */ li $at, 104 +/* 0147AC 70013BAC 14410007 */ bne $v0, $at, .L70013BCC +/* 0147B0 70013BB0 00000000 */ nop +/* 0147B4 70013BB4 8E0F0004 */ lw $t7, 4($s0) +/* 0147B8 70013BB8 240E0000 */ li $t6, 0 +/* 0147BC 70013BBC AE0E0000 */ sw $t6, ($s0) +/* 0147C0 70013BC0 31F9FFFF */ andi $t9, $t7, 0xffff +/* 0147C4 70013BC4 10000007 */ b .L70013BE4 +/* 0147C8 70013BC8 AE190004 */ sw $t9, 4($s0) +.L70013BCC: +/* 0147CC 70013BCC 54400006 */ bnezl $v0, .L70013BE8 +/* 0147D0 70013BD0 8E0F0030 */ lw $t7, 0x30($s0) +/* 0147D4 70013BD4 8E190004 */ lw $t9, 4($s0) +/* 0147D8 70013BD8 24180000 */ li $t8, 0 +/* 0147DC 70013BDC AE180000 */ sw $t8, ($s0) +/* 0147E0 70013BE0 AE190004 */ sw $t9, 4($s0) +.L70013BE4: +/* 0147E4 70013BE4 8E0F0030 */ lw $t7, 0x30($s0) +.L70013BE8: +/* 0147E8 70013BE8 31EE0008 */ andi $t6, $t7, 8 +/* 0147EC 70013BEC 51C00014 */ beql $t6, $zero, .L70013C40 +/* 0147F0 70013BF0 8E18000C */ lw $t8, 0xc($s0) +/* 0147F4 70013BF4 8E19000C */ lw $t9, 0xc($s0) +/* 0147F8 70013BF8 24180030 */ li $t8, 48 +/* 0147FC 70013BFC 24010078 */ li $at, 120 +/* 014800 70013C00 00F97821 */ addu $t7, $a3, $t9 +/* 014804 70013C04 A1F80000 */ sb $t8, ($t7) +/* 014808 70013C08 8E0E000C */ lw $t6, 0xc($s0) +/* 01480C 70013C0C 25D90001 */ addiu $t9, $t6, 1 +/* 014810 70013C10 10610004 */ beq $v1, $at, .L70013C24 +/* 014814 70013C14 AE19000C */ sw $t9, 0xc($s0) +/* 014818 70013C18 24010058 */ li $at, 88 +/* 01481C 70013C1C 54610008 */ bnel $v1, $at, .L70013C40 +/* 014820 70013C20 8E18000C */ lw $t8, 0xc($s0) +.L70013C24: +/* 014824 70013C24 8E18000C */ lw $t8, 0xc($s0) +/* 014828 70013C28 00F87821 */ addu $t7, $a3, $t8 +/* 01482C 70013C2C A1E50000 */ sb $a1, ($t7) +/* 014830 70013C30 8E0E000C */ lw $t6, 0xc($s0) +/* 014834 70013C34 25D90001 */ addiu $t9, $t6, 1 +/* 014838 70013C38 AE19000C */ sw $t9, 0xc($s0) +/* 01483C 70013C3C 8E18000C */ lw $t8, 0xc($s0) +.L70013C40: +/* 014840 70013C40 02002025 */ move $a0, $s0 +/* 014844 70013C44 03077821 */ addu $t7, $t8, $a3 +/* 014848 70013C48 0C0075F4 */ jal _Litob +/* 01484C 70013C4C AE0F0008 */ sw $t7, 8($s0) +/* 014850 70013C50 100000C0 */ b .L70013F54 +/* 014854 70013C54 8FBF0014 */ lw $ra, 0x14($sp) +.L70013C58: +/* 014858 70013C58 920E0034 */ lbu $t6, 0x34($s0) +/* 01485C 70013C5C 2401004C */ li $at, 76 +/* 014860 70013C60 55C10019 */ bnel $t6, $at, .L70013CC8 +/* 014864 70013C64 8CC20000 */ lw $v0, ($a2) +/* 014868 70013C68 8CC20000 */ lw $v0, ($a2) +/* 01486C 70013C6C 30590001 */ andi $t9, $v0, 1 +/* 014870 70013C70 13200005 */ beqz $t9, .L70013C88 +/* 014874 70013C74 00401825 */ move $v1, $v0 +/* 014878 70013C78 24780007 */ addiu $t8, $v1, 7 +/* 01487C 70013C7C ACD80000 */ sw $t8, ($a2) +/* 014880 70013C80 1000000D */ b .L70013CB8 +/* 014884 70013C84 2702FFEA */ addiu $v0, $t8, -0x16 +.L70013C88: +/* 014888 70013C88 306F0002 */ andi $t7, $v1, 2 +/* 01488C 70013C8C 11E00005 */ beqz $t7, .L70013CA4 +/* 014890 70013C90 24590007 */ addiu $t9, $v0, 7 +/* 014894 70013C94 246E000A */ addiu $t6, $v1, 0xa +/* 014898 70013C98 ACCE0000 */ sw $t6, ($a2) +/* 01489C 70013C9C 10000005 */ b .L70013CB4 +/* 0148A0 70013CA0 25C4FFD8 */ addiu $a0, $t6, -0x28 +.L70013CA4: +/* 0148A4 70013CA4 2401FFF8 */ li $at, -8 +/* 0148A8 70013CA8 0321C024 */ and $t8, $t9, $at +/* 0148AC 70013CAC 27040008 */ addiu $a0, $t8, 8 +/* 0148B0 70013CB0 ACC40000 */ sw $a0, ($a2) +.L70013CB4: +/* 0148B4 70013CB4 00801025 */ move $v0, $a0 +.L70013CB8: +/* 0148B8 70013CB8 D444FFF8 */ ldc1 $f4, -8($v0) +/* 0148BC 70013CBC 10000017 */ b .L70013D1C +/* 0148C0 70013CC0 F6040000 */ sdc1 $f4, ($s0) +/* 0148C4 70013CC4 8CC20000 */ lw $v0, ($a2) +.L70013CC8: +/* 0148C8 70013CC8 304E0001 */ andi $t6, $v0, 1 +/* 0148CC 70013CCC 11C00005 */ beqz $t6, .L70013CE4 +/* 0148D0 70013CD0 00401825 */ move $v1, $v0 +/* 0148D4 70013CD4 24790007 */ addiu $t9, $v1, 7 +/* 0148D8 70013CD8 ACD90000 */ sw $t9, ($a2) +/* 0148DC 70013CDC 1000000D */ b .L70013D14 +/* 0148E0 70013CE0 2722FFEA */ addiu $v0, $t9, -0x16 +.L70013CE4: +/* 0148E4 70013CE4 30780002 */ andi $t8, $v1, 2 +/* 0148E8 70013CE8 13000005 */ beqz $t8, .L70013D00 +/* 0148EC 70013CEC 244E0007 */ addiu $t6, $v0, 7 +/* 0148F0 70013CF0 246F000A */ addiu $t7, $v1, 0xa +/* 0148F4 70013CF4 ACCF0000 */ sw $t7, ($a2) +/* 0148F8 70013CF8 10000005 */ b .L70013D10 +/* 0148FC 70013CFC 25E4FFD8 */ addiu $a0, $t7, -0x28 +.L70013D00: +/* 014900 70013D00 2401FFF8 */ li $at, -8 +/* 014904 70013D04 01C1C824 */ and $t9, $t6, $at +/* 014908 70013D08 27240008 */ addiu $a0, $t9, 8 +/* 01490C 70013D0C ACC40000 */ sw $a0, ($a2) +.L70013D10: +/* 014910 70013D10 00801025 */ move $v0, $a0 +.L70013D14: +/* 014914 70013D14 D446FFF8 */ ldc1 $f6, -8($v0) +/* 014918 70013D18 F6060000 */ sdc1 $f6, ($s0) +.L70013D1C: +/* 01491C 70013D1C 960F0000 */ lhu $t7, ($s0) +/* 014920 70013D20 31EE8000 */ andi $t6, $t7, 0x8000 +/* 014924 70013D24 51C0000A */ beql $t6, $zero, .L70013D50 +/* 014928 70013D28 8E020030 */ lw $v0, 0x30($s0) +/* 01492C 70013D2C 8E18000C */ lw $t8, 0xc($s0) +/* 014930 70013D30 2419002D */ li $t9, 45 +/* 014934 70013D34 00F87821 */ addu $t7, $a3, $t8 +/* 014938 70013D38 A1F90000 */ sb $t9, ($t7) +/* 01493C 70013D3C 8E0E000C */ lw $t6, 0xc($s0) +/* 014940 70013D40 25D80001 */ addiu $t8, $t6, 1 +/* 014944 70013D44 10000016 */ b .L70013DA0 +/* 014948 70013D48 AE18000C */ sw $t8, 0xc($s0) +/* 01494C 70013D4C 8E020030 */ lw $v0, 0x30($s0) +.L70013D50: +/* 014950 70013D50 30590002 */ andi $t9, $v0, 2 +/* 014954 70013D54 13200009 */ beqz $t9, .L70013D7C +/* 014958 70013D58 304F0001 */ andi $t7, $v0, 1 +/* 01495C 70013D5C 8E0E000C */ lw $t6, 0xc($s0) +/* 014960 70013D60 240F002B */ li $t7, 43 +/* 014964 70013D64 00EEC021 */ addu $t8, $a3, $t6 +/* 014968 70013D68 A30F0000 */ sb $t7, ($t8) +/* 01496C 70013D6C 8E19000C */ lw $t9, 0xc($s0) +/* 014970 70013D70 272E0001 */ addiu $t6, $t9, 1 +/* 014974 70013D74 1000000A */ b .L70013DA0 +/* 014978 70013D78 AE0E000C */ sw $t6, 0xc($s0) +.L70013D7C: +/* 01497C 70013D7C 51E00009 */ beql $t7, $zero, .L70013DA4 +/* 014980 70013D80 8E18000C */ lw $t8, 0xc($s0) +/* 014984 70013D84 8E19000C */ lw $t9, 0xc($s0) +/* 014988 70013D88 24180020 */ li $t8, 32 +/* 01498C 70013D8C 00F97021 */ addu $t6, $a3, $t9 +/* 014990 70013D90 A1D80000 */ sb $t8, ($t6) +/* 014994 70013D94 8E0F000C */ lw $t7, 0xc($s0) +/* 014998 70013D98 25F90001 */ addiu $t9, $t7, 1 +/* 01499C 70013D9C AE19000C */ sw $t9, 0xc($s0) +.L70013DA0: +/* 0149A0 70013DA0 8E18000C */ lw $t8, 0xc($s0) +.L70013DA4: +/* 0149A4 70013DA4 02002025 */ move $a0, $s0 +/* 0149A8 70013DA8 03077021 */ addu $t6, $t8, $a3 +/* 0149AC 70013DAC 0C0077F8 */ jal _Ldtob +/* 0149B0 70013DB0 AE0E0008 */ sw $t6, 8($s0) +/* 0149B4 70013DB4 10000067 */ b .L70013F54 +/* 0149B8 70013DB8 8FBF0014 */ lw $ra, 0x14($sp) +.L70013DBC: +/* 0149BC 70013DBC 92020034 */ lbu $v0, 0x34($s0) +/* 0149C0 70013DC0 24010068 */ li $at, 104 +/* 0149C4 70013DC4 5441000C */ bnel $v0, $at, .L70013DF8 +/* 0149C8 70013DC8 2401006C */ li $at, 108 +/* 0149CC 70013DCC 8CCF0000 */ lw $t7, ($a2) +/* 0149D0 70013DD0 2401FFFC */ li $at, -4 +/* 0149D4 70013DD4 25F90003 */ addiu $t9, $t7, 3 +/* 0149D8 70013DD8 0321C024 */ and $t8, $t9, $at +/* 0149DC 70013DDC 270E0004 */ addiu $t6, $t8, 4 +/* 0149E0 70013DE0 ACCE0000 */ sw $t6, ($a2) +/* 0149E4 70013DE4 8DD9FFFC */ lw $t9, -4($t6) +/* 0149E8 70013DE8 8E0F002C */ lw $t7, 0x2c($s0) +/* 0149EC 70013DEC 10000058 */ b .L70013F50 +/* 0149F0 70013DF0 A72F0000 */ sh $t7, ($t9) +/* 0149F4 70013DF4 2401006C */ li $at, 108 +.L70013DF8: +/* 0149F8 70013DF8 5441000C */ bnel $v0, $at, .L70013E2C +/* 0149FC 70013DFC 2401004C */ li $at, 76 +/* 014A00 70013E00 8CD80000 */ lw $t8, ($a2) +/* 014A04 70013E04 2401FFFC */ li $at, -4 +/* 014A08 70013E08 270E0003 */ addiu $t6, $t8, 3 +/* 014A0C 70013E0C 01C17824 */ and $t7, $t6, $at +/* 014A10 70013E10 25F90004 */ addiu $t9, $t7, 4 +/* 014A14 70013E14 ACD90000 */ sw $t9, ($a2) +/* 014A18 70013E18 8F2EFFFC */ lw $t6, -4($t9) +/* 014A1C 70013E1C 8E18002C */ lw $t8, 0x2c($s0) +/* 014A20 70013E20 1000004B */ b .L70013F50 +/* 014A24 70013E24 ADD80000 */ sw $t8, ($t6) +/* 014A28 70013E28 2401004C */ li $at, 76 +.L70013E2C: +/* 014A2C 70013E2C 5441000E */ bnel $v0, $at, .L70013E68 +/* 014A30 70013E30 8CCF0000 */ lw $t7, ($a2) +/* 014A34 70013E34 8CCF0000 */ lw $t7, ($a2) +/* 014A38 70013E38 2401FFFC */ li $at, -4 +/* 014A3C 70013E3C 25F90003 */ addiu $t9, $t7, 3 +/* 014A40 70013E40 0321C024 */ and $t8, $t9, $at +/* 014A44 70013E44 270E0004 */ addiu $t6, $t8, 4 +/* 014A48 70013E48 ACCE0000 */ sw $t6, ($a2) +/* 014A4C 70013E4C 8DCEFFFC */ lw $t6, -4($t6) +/* 014A50 70013E50 8E0F002C */ lw $t7, 0x2c($s0) +/* 014A54 70013E54 24180000 */ li $t8, 0 +/* 014A58 70013E58 ADD80000 */ sw $t8, ($t6) +/* 014A5C 70013E5C 1000003C */ b .L70013F50 +/* 014A60 70013E60 ADCF0004 */ sw $t7, 4($t6) +/* 014A64 70013E64 8CCF0000 */ lw $t7, ($a2) +.L70013E68: +/* 014A68 70013E68 2401FFFC */ li $at, -4 +/* 014A6C 70013E6C 25F80003 */ addiu $t8, $t7, 3 +/* 014A70 70013E70 0301C824 */ and $t9, $t8, $at +/* 014A74 70013E74 272E0004 */ addiu $t6, $t9, 4 +/* 014A78 70013E78 ACCE0000 */ sw $t6, ($a2) +/* 014A7C 70013E7C 8DD8FFFC */ lw $t8, -4($t6) +/* 014A80 70013E80 8E0F002C */ lw $t7, 0x2c($s0) +/* 014A84 70013E84 10000032 */ b .L70013F50 +/* 014A88 70013E88 AF0F0000 */ sw $t7, ($t8) +.L70013E8C: +/* 014A8C 70013E8C 8CD90000 */ lw $t9, ($a2) +/* 014A90 70013E90 2401FFFC */ li $at, -4 +/* 014A94 70013E94 02002025 */ move $a0, $s0 +/* 014A98 70013E98 272E0003 */ addiu $t6, $t9, 3 +/* 014A9C 70013E9C 01C17824 */ and $t7, $t6, $at +/* 014AA0 70013EA0 25F80004 */ addiu $t8, $t7, 4 +/* 014AA4 70013EA4 ACD80000 */ sw $t8, ($a2) +/* 014AA8 70013EA8 8F0EFFFC */ lw $t6, -4($t8) +/* 014AAC 70013EAC 8E0F000C */ lw $t7, 0xc($s0) +/* 014AB0 70013EB0 24050078 */ li $a1, 120 +/* 014AB4 70013EB4 000EC7C3 */ sra $t8, $t6, 0x1f +/* 014AB8 70013EB8 AE0E0004 */ sw $t6, 4($s0) +/* 014ABC 70013EBC 01E77021 */ addu $t6, $t7, $a3 +/* 014AC0 70013EC0 AE180000 */ sw $t8, ($s0) +/* 014AC4 70013EC4 0C0075F4 */ jal _Litob +/* 014AC8 70013EC8 AE0E0008 */ sw $t6, 8($s0) +/* 014ACC 70013ECC 10000021 */ b .L70013F54 +/* 014AD0 70013ED0 8FBF0014 */ lw $ra, 0x14($sp) +.L70013ED4: +/* 014AD4 70013ED4 8CD80000 */ lw $t8, ($a2) +/* 014AD8 70013ED8 2401FFFC */ li $at, -4 +/* 014ADC 70013EDC 27190003 */ addiu $t9, $t8, 3 +/* 014AE0 70013EE0 03217824 */ and $t7, $t9, $at +/* 014AE4 70013EE4 25EE0004 */ addiu $t6, $t7, 4 +/* 014AE8 70013EE8 ACCE0000 */ sw $t6, ($a2) +/* 014AEC 70013EEC 8DC4FFFC */ lw $a0, -4($t6) +/* 014AF0 70013EF0 0C004E1F */ jal strlen +/* 014AF4 70013EF4 AE040008 */ sw $a0, 8($s0) +/* 014AF8 70013EF8 8E030024 */ lw $v1, 0x24($s0) +/* 014AFC 70013EFC AE020014 */ sw $v0, 0x14($s0) +/* 014B00 70013F00 04600013 */ bltz $v1, .L70013F50 +/* 014B04 70013F04 0062082A */ slt $at, $v1, $v0 +/* 014B08 70013F08 50200012 */ beql $at, $zero, .L70013F54 +/* 014B0C 70013F0C 8FBF0014 */ lw $ra, 0x14($sp) +/* 014B10 70013F10 1000000F */ b .L70013F50 +/* 014B14 70013F14 AE030014 */ sw $v1, 0x14($s0) +/* 014B18 70013F18 8E18000C */ lw $t8, 0xc($s0) +.L70013F1C: +/* 014B1C 70013F1C 240E0025 */ li $t6, 37 +/* 014B20 70013F20 00F8C821 */ addu $t9, $a3, $t8 +/* 014B24 70013F24 A32E0000 */ sb $t6, ($t9) +/* 014B28 70013F28 8E0F000C */ lw $t7, 0xc($s0) +/* 014B2C 70013F2C 25F80001 */ addiu $t8, $t7, 1 +/* 014B30 70013F30 10000007 */ b .L70013F50 +/* 014B34 70013F34 AE18000C */ sw $t8, 0xc($s0) +.L70013F38: +/* 014B38 70013F38 8E0E000C */ lw $t6, 0xc($s0) +.L70013F3C: +/* 014B3C 70013F3C 00EEC821 */ addu $t9, $a3, $t6 +/* 014B40 70013F40 A3250000 */ sb $a1, ($t9) +/* 014B44 70013F44 8E0F000C */ lw $t7, 0xc($s0) +/* 014B48 70013F48 25F80001 */ addiu $t8, $t7, 1 +/* 014B4C 70013F4C AE18000C */ sw $t8, 0xc($s0) +.L70013F50: +/* 014B50 70013F50 8FBF0014 */ lw $ra, 0x14($sp) +.L70013F54: +/* 014B54 70013F54 27BD0018 */ addiu $sp, $sp, 0x18 +/* 014B58 70013F58 03E00008 */ jr $ra +/* 014B5C 70013F5C 00000000 */ nop + +glabel _Printf +/* 014B60 70013F60 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 014B64 70013F64 AFB70034 */ sw $s7, 0x34($sp) +/* 014B68 70013F68 AFB60030 */ sw $s6, 0x30($sp) +/* 014B6C 70013F6C AFB5002C */ sw $s5, 0x2c($sp) +/* 014B70 70013F70 AFBE0038 */ sw $fp, 0x38($sp) +/* 014B74 70013F74 AFB40028 */ sw $s4, 0x28($sp) +/* 014B78 70013F78 AFB30024 */ sw $s3, 0x24($sp) +/* 014B7C 70013F7C AFA700EC */ sw $a3, 0xec($sp) +/* 014B80 70013F80 3C158002 */ lui $s5, %hi(zeros) +/* 014B84 70013F84 3C168003 */ lui $s6, %hi(printf_symbols) +/* 014B88 70013F88 3C178002 */ lui $s7, %hi(spaces) +/* 014B8C 70013F8C 00C03825 */ move $a3, $a2 +/* 014B90 70013F90 00A09825 */ move $s3, $a1 +/* 014B94 70013F94 0080A025 */ move $s4, $a0 +/* 014B98 70013F98 AFBF003C */ sw $ra, 0x3c($sp) +/* 014B9C 70013F9C AFB20020 */ sw $s2, 0x20($sp) +/* 014BA0 70013FA0 AFB1001C */ sw $s1, 0x1c($sp) +/* 014BA4 70013FA4 AFB00018 */ sw $s0, 0x18($sp) +/* 014BA8 70013FA8 AFA600E8 */ sw $a2, 0xe8($sp) +/* 014BAC 70013FAC AFA000D4 */ sw $zero, 0xd4($sp) +/* 014BB0 70013FB0 26F77740 */ addiu $s7, %lo(spaces) # addiu $s7, $s7, 0x7740 +/* 014BB4 70013FB4 26D696F4 */ addiu $s6, %lo(printf_symbols) # addiu $s6, $s6, -0x690c +/* 014BB8 70013FB8 26B57764 */ addiu $s5, %lo(zeros) # addiu $s5, $s5, 0x7764 +/* 014BBC 70013FBC 241E000A */ li $fp, 10 +.L70013FC0: +/* 014BC0 70013FC0 90F00000 */ lbu $s0, ($a3) +/* 014BC4 70013FC4 24F20001 */ addiu $s2, $a3, 1 +/* 014BC8 70013FC8 24030025 */ li $v1, 37 +/* 014BCC 70013FCC 1A000009 */ blez $s0, .L70013FF4 +/* 014BD0 70013FD0 02602025 */ move $a0, $s3 +.L70013FD4: +/* 014BD4 70013FD4 54700004 */ bnel $v1, $s0, .L70013FE8 +/* 014BD8 70013FD8 92500000 */ lbu $s0, ($s2) +/* 014BDC 70013FDC 10000005 */ b .L70013FF4 +/* 014BE0 70013FE0 2652FFFF */ addiu $s2, $s2, -1 +/* 014BE4 70013FE4 92500000 */ lbu $s0, ($s2) +.L70013FE8: +/* 014BE8 70013FE8 26520001 */ addiu $s2, $s2, 1 +/* 014BEC 70013FEC 1E00FFF9 */ bgtz $s0, .L70013FD4 +/* 014BF0 70013FF0 00000000 */ nop +.L70013FF4: +/* 014BF4 70013FF4 02471023 */ subu $v0, $s2, $a3 +/* 014BF8 70013FF8 1840000C */ blez $v0, .L7001402C +/* 014BFC 70013FFC 00E02825 */ move $a1, $a3 +/* 014C00 70014000 00408825 */ move $s1, $v0 +/* 014C04 70014004 0280F809 */ jalr $s4 +/* 014C08 70014008 00403025 */ move $a2, $v0 +/* 014C0C 7001400C 10400005 */ beqz $v0, .L70014024 +/* 014C10 70014010 00409825 */ move $s3, $v0 +/* 014C14 70014014 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 014C18 70014018 01D17821 */ addu $t7, $t6, $s1 +/* 014C1C 7001401C 10000003 */ b .L7001402C +/* 014C20 70014020 AFAF00D4 */ sw $t7, 0xd4($sp) +.L70014024: +/* 014C24 70014024 10000153 */ b .L70014574 +/* 014C28 70014028 8FA200D4 */ lw $v0, 0xd4($sp) +.L7001402C: +/* 014C2C 7001402C 16000003 */ bnez $s0, .L7001403C +/* 014C30 70014030 26520001 */ addiu $s2, $s2, 1 +/* 014C34 70014034 1000014F */ b .L70014574 +/* 014C38 70014038 8FA200D4 */ lw $v0, 0xd4($sp) +.L7001403C: +/* 014C3C 7001403C AFA000D8 */ sw $zero, 0xd8($sp) +/* 014C40 70014040 92450000 */ lbu $a1, ($s2) +/* 014C44 70014044 0C004E29 */ jal strchr +/* 014C48 70014048 02C02025 */ move $a0, $s6 +/* 014C4C 7001404C 1040000F */ beqz $v0, .L7001408C +/* 014C50 70014050 00408025 */ move $s0, $v0 +.L70014054: +/* 014C54 70014054 0216C823 */ subu $t9, $s0, $s6 +/* 014C58 70014058 00197080 */ sll $t6, $t9, 2 +/* 014C5C 7001405C 3C0F8003 */ lui $t7, %hi(byteshiftleft_lookup) +/* 014C60 70014060 01EE7821 */ addu $t7, $t7, $t6 +/* 014C64 70014064 8DEF96FC */ lw $t7, %lo(byteshiftleft_lookup)($t7) +/* 014C68 70014068 8FB800D8 */ lw $t8, 0xd8($sp) +/* 014C6C 7001406C 26520001 */ addiu $s2, $s2, 1 +/* 014C70 70014070 02C02025 */ move $a0, $s6 +/* 014C74 70014074 030FC825 */ or $t9, $t8, $t7 +/* 014C78 70014078 AFB900D8 */ sw $t9, 0xd8($sp) +/* 014C7C 7001407C 0C004E29 */ jal strchr +/* 014C80 70014080 92450000 */ lbu $a1, ($s2) +/* 014C84 70014084 1440FFF3 */ bnez $v0, .L70014054 +/* 014C88 70014088 00408025 */ move $s0, $v0 +.L7001408C: +/* 014C8C 7001408C 924E0000 */ lbu $t6, ($s2) +/* 014C90 70014090 2402002A */ li $v0, 42 +/* 014C94 70014094 8FB800EC */ lw $t8, 0xec($sp) +/* 014C98 70014098 144E0011 */ bne $v0, $t6, .L700140E0 +/* 014C9C 7001409C 3C048003 */ lui $a0, %hi(aHll) +/* 014CA0 700140A0 270F0003 */ addiu $t7, $t8, 3 +/* 014CA4 700140A4 2401FFFC */ li $at, -4 +/* 014CA8 700140A8 01E1C824 */ and $t9, $t7, $at +/* 014CAC 700140AC 272E0004 */ addiu $t6, $t9, 4 +/* 014CB0 700140B0 AFAE00EC */ sw $t6, 0xec($sp) +/* 014CB4 700140B4 8F380000 */ lw $t8, ($t9) +/* 014CB8 700140B8 26520001 */ addiu $s2, $s2, 1 +/* 014CBC 700140BC 07010006 */ bgez $t8, .L700140D8 +/* 014CC0 700140C0 AFB800D0 */ sw $t8, 0xd0($sp) +/* 014CC4 700140C4 8FAE00D8 */ lw $t6, 0xd8($sp) +/* 014CC8 700140C8 00187823 */ negu $t7, $t8 +/* 014CCC 700140CC AFAF00D0 */ sw $t7, 0xd0($sp) +/* 014CD0 700140D0 35D90004 */ ori $t9, $t6, 4 +/* 014CD4 700140D4 AFB900D8 */ sw $t9, 0xd8($sp) +.L700140D8: +/* 014CD8 700140D8 10000018 */ b .L7001413C +/* 014CDC 700140DC 92450000 */ lbu $a1, ($s2) +.L700140E0: +/* 014CE0 700140E0 AFA000D0 */ sw $zero, 0xd0($sp) +/* 014CE4 700140E4 92450000 */ lbu $a1, ($s2) +/* 014CE8 700140E8 28A10030 */ slti $at, $a1, 0x30 +/* 014CEC 700140EC 14200013 */ bnez $at, .L7001413C +/* 014CF0 700140F0 28A1003A */ slti $at, $a1, 0x3a +/* 014CF4 700140F4 50200012 */ beql $at, $zero, .L70014140 +/* 014CF8 700140F8 2401002E */ li $at, 46 +/* 014CFC 700140FC 8FB800D0 */ lw $t8, 0xd0($sp) +.L70014100: +/* 014D00 70014100 2B0103E7 */ slti $at, $t8, 0x3e7 +/* 014D04 70014104 50200007 */ beql $at, $zero, .L70014124 +/* 014D08 70014108 92450001 */ lbu $a1, 1($s2) +/* 014D0C 7001410C 031E0019 */ multu $t8, $fp +/* 014D10 70014110 00007812 */ mflo $t7 +/* 014D14 70014114 00AF7021 */ addu $t6, $a1, $t7 +/* 014D18 70014118 25D9FFD0 */ addiu $t9, $t6, -0x30 +/* 014D1C 7001411C AFB900D0 */ sw $t9, 0xd0($sp) +/* 014D20 70014120 92450001 */ lbu $a1, 1($s2) +.L70014124: +/* 014D24 70014124 26520001 */ addiu $s2, $s2, 1 +/* 014D28 70014128 28A10030 */ slti $at, $a1, 0x30 +/* 014D2C 7001412C 14200003 */ bnez $at, .L7001413C +/* 014D30 70014130 28A1003A */ slti $at, $a1, 0x3a +/* 014D34 70014134 5420FFF2 */ bnezl $at, .L70014100 +/* 014D38 70014138 8FB800D0 */ lw $t8, 0xd0($sp) +.L7001413C: +/* 014D3C 7001413C 2401002E */ li $at, 46 +.L70014140: +/* 014D40 70014140 10A10004 */ beq $a1, $at, .L70014154 +/* 014D44 70014144 2418FFFF */ li $t8, -1 +/* 014D48 70014148 AFB800CC */ sw $t8, 0xcc($sp) +/* 014D4C 7001414C 10000026 */ b .L700141E8 +/* 014D50 70014150 92450000 */ lbu $a1, ($s2) +.L70014154: +/* 014D54 70014154 924F0001 */ lbu $t7, 1($s2) +/* 014D58 70014158 8FAE00EC */ lw $t6, 0xec($sp) +/* 014D5C 7001415C 26520001 */ addiu $s2, $s2, 1 +/* 014D60 70014160 144F000A */ bne $v0, $t7, .L7001418C +/* 014D64 70014164 25D90003 */ addiu $t9, $t6, 3 +/* 014D68 70014168 2401FFFC */ li $at, -4 +/* 014D6C 7001416C 0321C024 */ and $t8, $t9, $at +/* 014D70 70014170 270F0004 */ addiu $t7, $t8, 4 +/* 014D74 70014174 AFAF00EC */ sw $t7, 0xec($sp) +/* 014D78 70014178 8F0E0000 */ lw $t6, ($t8) +/* 014D7C 7001417C 26520001 */ addiu $s2, $s2, 1 +/* 014D80 70014180 AFAE00CC */ sw $t6, 0xcc($sp) +/* 014D84 70014184 10000018 */ b .L700141E8 +/* 014D88 70014188 92450000 */ lbu $a1, ($s2) +.L7001418C: +/* 014D8C 7001418C AFA000CC */ sw $zero, 0xcc($sp) +/* 014D90 70014190 92450000 */ lbu $a1, ($s2) +/* 014D94 70014194 28A10030 */ slti $at, $a1, 0x30 +/* 014D98 70014198 14200013 */ bnez $at, .L700141E8 +/* 014D9C 7001419C 28A1003A */ slti $at, $a1, 0x3a +/* 014DA0 700141A0 10200011 */ beqz $at, .L700141E8 +/* 014DA4 700141A4 00000000 */ nop +/* 014DA8 700141A8 8FB900CC */ lw $t9, 0xcc($sp) +.L700141AC: +/* 014DAC 700141AC 2B2103E7 */ slti $at, $t9, 0x3e7 +/* 014DB0 700141B0 50200007 */ beql $at, $zero, .L700141D0 +/* 014DB4 700141B4 92450001 */ lbu $a1, 1($s2) +/* 014DB8 700141B8 033E0019 */ multu $t9, $fp +/* 014DBC 700141BC 00007812 */ mflo $t7 +/* 014DC0 700141C0 00AFC021 */ addu $t8, $a1, $t7 +/* 014DC4 700141C4 270EFFD0 */ addiu $t6, $t8, -0x30 +/* 014DC8 700141C8 AFAE00CC */ sw $t6, 0xcc($sp) +/* 014DCC 700141CC 92450001 */ lbu $a1, 1($s2) +.L700141D0: +/* 014DD0 700141D0 26520001 */ addiu $s2, $s2, 1 +/* 014DD4 700141D4 28A10030 */ slti $at, $a1, 0x30 +/* 014DD8 700141D8 14200003 */ bnez $at, .L700141E8 +/* 014DDC 700141DC 28A1003A */ slti $at, $a1, 0x3a +/* 014DE0 700141E0 5420FFF2 */ bnezl $at, .L700141AC +/* 014DE4 700141E4 8FB900CC */ lw $t9, 0xcc($sp) +.L700141E8: +/* 014DE8 700141E8 0C004E29 */ jal strchr +/* 014DEC 700141EC 248496F0 */ addiu $a0, %lo(aHll) # addiu $a0, $a0, -0x6910 +/* 014DF0 700141F0 10400005 */ beqz $v0, .L70014208 +/* 014DF4 700141F4 27B000A8 */ addiu $s0, $sp, 0xa8 +/* 014DF8 700141F8 92590000 */ lbu $t9, ($s2) +/* 014DFC 700141FC 26520001 */ addiu $s2, $s2, 1 +/* 014E00 70014200 10000002 */ b .L7001420C +/* 014E04 70014204 A3B900DC */ sb $t9, 0xdc($sp) +.L70014208: +/* 014E08 70014208 A3A000DC */ sb $zero, 0xdc($sp) +.L7001420C: +/* 014E0C 7001420C 93AF00DC */ lbu $t7, 0xdc($sp) +/* 014E10 70014210 2402006C */ li $v0, 108 +/* 014E14 70014214 27A600EC */ addiu $a2, $sp, 0xec +/* 014E18 70014218 144F0007 */ bne $v0, $t7, .L70014238 +/* 014E1C 7001421C 27A7007C */ addiu $a3, $sp, 0x7c +/* 014E20 70014220 92580000 */ lbu $t8, ($s2) +/* 014E24 70014224 240E004C */ li $t6, 76 +/* 014E28 70014228 14580003 */ bne $v0, $t8, .L70014238 +/* 014E2C 7001422C 00000000 */ nop +/* 014E30 70014230 A3AE00DC */ sb $t6, 0xdc($sp) +/* 014E34 70014234 26520001 */ addiu $s2, $s2, 1 +.L70014238: +/* 014E38 70014238 0C004E3C */ jal _Putfld +/* 014E3C 7001423C 92450000 */ lbu $a1, ($s2) +/* 014E40 70014240 8FB900D0 */ lw $t9, 0xd0($sp) +/* 014E44 70014244 8FAF00B4 */ lw $t7, 0xb4($sp) +/* 014E48 70014248 8FAE00B8 */ lw $t6, 0xb8($sp) +/* 014E4C 7001424C 032FC023 */ subu $t8, $t9, $t7 +/* 014E50 70014250 8FAF00BC */ lw $t7, 0xbc($sp) +/* 014E54 70014254 030EC823 */ subu $t9, $t8, $t6 +/* 014E58 70014258 8FAE00C0 */ lw $t6, 0xc0($sp) +/* 014E5C 7001425C 032FC023 */ subu $t8, $t9, $t7 +/* 014E60 70014260 8FAF00C4 */ lw $t7, 0xc4($sp) +/* 014E64 70014264 030EC823 */ subu $t9, $t8, $t6 +/* 014E68 70014268 8FAE00C8 */ lw $t6, 0xc8($sp) +/* 014E6C 7001426C 032FC023 */ subu $t8, $t9, $t7 +/* 014E70 70014270 8FAF00D8 */ lw $t7, 0xd8($sp) +/* 014E74 70014274 030EC823 */ subu $t9, $t8, $t6 +/* 014E78 70014278 AFB900D0 */ sw $t9, 0xd0($sp) +/* 014E7C 7001427C 31F80004 */ andi $t8, $t7, 4 +/* 014E80 70014280 1700001A */ bnez $t8, .L700142EC +/* 014E84 70014284 0019702A */ slt $t6, $zero, $t9 +/* 014E88 70014288 51C00019 */ beql $t6, $zero, .L700142F0 +/* 014E8C 7001428C 8FB900B4 */ lw $t9, 0xb4($sp) +/* 014E90 70014290 11C00016 */ beqz $t6, .L700142EC +/* 014E94 70014294 03208825 */ move $s1, $t9 +/* 014E98 70014298 2E210021 */ sltiu $at, $s1, 0x21 +.L7001429C: +/* 014E9C 7001429C 14200003 */ bnez $at, .L700142AC +/* 014EA0 700142A0 02208025 */ move $s0, $s1 +/* 014EA4 700142A4 10000001 */ b .L700142AC +/* 014EA8 700142A8 24100020 */ li $s0, 32 +.L700142AC: +/* 014EAC 700142AC 1A00000C */ blez $s0, .L700142E0 +/* 014EB0 700142B0 02602025 */ move $a0, $s3 +/* 014EB4 700142B4 02E02825 */ move $a1, $s7 +/* 014EB8 700142B8 0280F809 */ jalr $s4 +/* 014EBC 700142BC 02003025 */ move $a2, $s0 +/* 014EC0 700142C0 10400005 */ beqz $v0, .L700142D8 +/* 014EC4 700142C4 00409825 */ move $s3, $v0 +/* 014EC8 700142C8 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 014ECC 700142CC 01F0C021 */ addu $t8, $t7, $s0 +/* 014ED0 700142D0 10000003 */ b .L700142E0 +/* 014ED4 700142D4 AFB800D4 */ sw $t8, 0xd4($sp) +.L700142D8: +/* 014ED8 700142D8 100000A6 */ b .L70014574 +/* 014EDC 700142DC 8FA200D4 */ lw $v0, 0xd4($sp) +.L700142E0: +/* 014EE0 700142E0 02308823 */ subu $s1, $s1, $s0 +/* 014EE4 700142E4 5E20FFED */ bgtzl $s1, .L7001429C +/* 014EE8 700142E8 2E210021 */ sltiu $at, $s1, 0x21 +.L700142EC: +/* 014EEC 700142EC 8FB900B4 */ lw $t9, 0xb4($sp) +.L700142F0: +/* 014EF0 700142F0 02602025 */ move $a0, $s3 +/* 014EF4 700142F4 27A5007C */ addiu $a1, $sp, 0x7c +/* 014EF8 700142F8 5B20000D */ blezl $t9, .L70014330 +/* 014EFC 700142FC 8FB900B8 */ lw $t9, 0xb8($sp) +/* 014F00 70014300 0280F809 */ jalr $s4 +/* 014F04 70014304 03203025 */ move $a2, $t9 +/* 014F08 70014308 10400006 */ beqz $v0, .L70014324 +/* 014F0C 7001430C 00409825 */ move $s3, $v0 +/* 014F10 70014310 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 014F14 70014314 8FAF00B4 */ lw $t7, 0xb4($sp) +/* 014F18 70014318 01CFC021 */ addu $t8, $t6, $t7 +/* 014F1C 7001431C 10000003 */ b .L7001432C +/* 014F20 70014320 AFB800D4 */ sw $t8, 0xd4($sp) +.L70014324: +/* 014F24 70014324 10000093 */ b .L70014574 +/* 014F28 70014328 8FA200D4 */ lw $v0, 0xd4($sp) +.L7001432C: +/* 014F2C 7001432C 8FB900B8 */ lw $t9, 0xb8($sp) +.L70014330: +/* 014F30 70014330 0019702A */ slt $t6, $zero, $t9 +/* 014F34 70014334 51C00019 */ beql $t6, $zero, .L7001439C +/* 014F38 70014338 8FB900BC */ lw $t9, 0xbc($sp) +/* 014F3C 7001433C 11C00016 */ beqz $t6, .L70014398 +/* 014F40 70014340 03208825 */ move $s1, $t9 +/* 014F44 70014344 2E210021 */ sltiu $at, $s1, 0x21 +.L70014348: +/* 014F48 70014348 14200003 */ bnez $at, .L70014358 +/* 014F4C 7001434C 02208025 */ move $s0, $s1 +/* 014F50 70014350 10000001 */ b .L70014358 +/* 014F54 70014354 24100020 */ li $s0, 32 +.L70014358: +/* 014F58 70014358 1A00000C */ blez $s0, .L7001438C +/* 014F5C 7001435C 02602025 */ move $a0, $s3 +/* 014F60 70014360 02A02825 */ move $a1, $s5 +/* 014F64 70014364 0280F809 */ jalr $s4 +/* 014F68 70014368 02003025 */ move $a2, $s0 +/* 014F6C 7001436C 10400005 */ beqz $v0, .L70014384 +/* 014F70 70014370 00409825 */ move $s3, $v0 +/* 014F74 70014374 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 014F78 70014378 01F0C021 */ addu $t8, $t7, $s0 +/* 014F7C 7001437C 10000003 */ b .L7001438C +/* 014F80 70014380 AFB800D4 */ sw $t8, 0xd4($sp) +.L70014384: +/* 014F84 70014384 1000007B */ b .L70014574 +/* 014F88 70014388 8FA200D4 */ lw $v0, 0xd4($sp) +.L7001438C: +/* 014F8C 7001438C 02308823 */ subu $s1, $s1, $s0 +/* 014F90 70014390 5E20FFED */ bgtzl $s1, .L70014348 +/* 014F94 70014394 2E210021 */ sltiu $at, $s1, 0x21 +.L70014398: +/* 014F98 70014398 8FB900BC */ lw $t9, 0xbc($sp) +.L7001439C: +/* 014F9C 7001439C 02602025 */ move $a0, $s3 +/* 014FA0 700143A0 8FA500B0 */ lw $a1, 0xb0($sp) +/* 014FA4 700143A4 5B20000D */ blezl $t9, .L700143DC +/* 014FA8 700143A8 8FB900C0 */ lw $t9, 0xc0($sp) +/* 014FAC 700143AC 0280F809 */ jalr $s4 +/* 014FB0 700143B0 03203025 */ move $a2, $t9 +/* 014FB4 700143B4 10400006 */ beqz $v0, .L700143D0 +/* 014FB8 700143B8 00409825 */ move $s3, $v0 +/* 014FBC 700143BC 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 014FC0 700143C0 8FAF00BC */ lw $t7, 0xbc($sp) +/* 014FC4 700143C4 01CFC021 */ addu $t8, $t6, $t7 +/* 014FC8 700143C8 10000003 */ b .L700143D8 +/* 014FCC 700143CC AFB800D4 */ sw $t8, 0xd4($sp) +.L700143D0: +/* 014FD0 700143D0 10000068 */ b .L70014574 +/* 014FD4 700143D4 8FA200D4 */ lw $v0, 0xd4($sp) +.L700143D8: +/* 014FD8 700143D8 8FB900C0 */ lw $t9, 0xc0($sp) +.L700143DC: +/* 014FDC 700143DC 0019702A */ slt $t6, $zero, $t9 +/* 014FE0 700143E0 51C00019 */ beql $t6, $zero, .L70014448 +/* 014FE4 700143E4 8FB900C4 */ lw $t9, 0xc4($sp) +/* 014FE8 700143E8 11C00016 */ beqz $t6, .L70014444 +/* 014FEC 700143EC 03208825 */ move $s1, $t9 +/* 014FF0 700143F0 2E210021 */ sltiu $at, $s1, 0x21 +.L700143F4: +/* 014FF4 700143F4 14200003 */ bnez $at, .L70014404 +/* 014FF8 700143F8 02208025 */ move $s0, $s1 +/* 014FFC 700143FC 10000001 */ b .L70014404 +/* 015000 70014400 24100020 */ li $s0, 32 +.L70014404: +/* 015004 70014404 1A00000C */ blez $s0, .L70014438 +/* 015008 70014408 02602025 */ move $a0, $s3 +/* 01500C 7001440C 02A02825 */ move $a1, $s5 +/* 015010 70014410 0280F809 */ jalr $s4 +/* 015014 70014414 02003025 */ move $a2, $s0 +/* 015018 70014418 10400005 */ beqz $v0, .L70014430 +/* 01501C 7001441C 00409825 */ move $s3, $v0 +/* 015020 70014420 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 015024 70014424 01F0C021 */ addu $t8, $t7, $s0 +/* 015028 70014428 10000003 */ b .L70014438 +/* 01502C 7001442C AFB800D4 */ sw $t8, 0xd4($sp) +.L70014430: +/* 015030 70014430 10000050 */ b .L70014574 +/* 015034 70014434 8FA200D4 */ lw $v0, 0xd4($sp) +.L70014438: +/* 015038 70014438 02308823 */ subu $s1, $s1, $s0 +/* 01503C 7001443C 5E20FFED */ bgtzl $s1, .L700143F4 +/* 015040 70014440 2E210021 */ sltiu $at, $s1, 0x21 +.L70014444: +/* 015044 70014444 8FB900C4 */ lw $t9, 0xc4($sp) +.L70014448: +/* 015048 70014448 02602025 */ move $a0, $s3 +/* 01504C 7001444C 8FAE00B0 */ lw $t6, 0xb0($sp) +/* 015050 70014450 1B20000D */ blez $t9, .L70014488 +/* 015054 70014454 8FAF00BC */ lw $t7, 0xbc($sp) +/* 015058 70014458 01CF2821 */ addu $a1, $t6, $t7 +/* 01505C 7001445C 0280F809 */ jalr $s4 +/* 015060 70014460 03203025 */ move $a2, $t9 +/* 015064 70014464 10400006 */ beqz $v0, .L70014480 +/* 015068 70014468 00409825 */ move $s3, $v0 +/* 01506C 7001446C 8FB800D4 */ lw $t8, 0xd4($sp) +/* 015070 70014470 8FAE00C4 */ lw $t6, 0xc4($sp) +/* 015074 70014474 030E7821 */ addu $t7, $t8, $t6 +/* 015078 70014478 10000003 */ b .L70014488 +/* 01507C 7001447C AFAF00D4 */ sw $t7, 0xd4($sp) +.L70014480: +/* 015080 70014480 1000003C */ b .L70014574 +/* 015084 70014484 8FA200D4 */ lw $v0, 0xd4($sp) +.L70014488: +/* 015088 70014488 8FB900C8 */ lw $t9, 0xc8($sp) +/* 01508C 7001448C 0019C02A */ slt $t8, $zero, $t9 +/* 015090 70014490 53000019 */ beql $t8, $zero, .L700144F8 +/* 015094 70014494 8FB900D8 */ lw $t9, 0xd8($sp) +/* 015098 70014498 13000016 */ beqz $t8, .L700144F4 +/* 01509C 7001449C 03208825 */ move $s1, $t9 +/* 0150A0 700144A0 2E210021 */ sltiu $at, $s1, 0x21 +.L700144A4: +/* 0150A4 700144A4 14200003 */ bnez $at, .L700144B4 +/* 0150A8 700144A8 02208025 */ move $s0, $s1 +/* 0150AC 700144AC 10000001 */ b .L700144B4 +/* 0150B0 700144B0 24100020 */ li $s0, 32 +.L700144B4: +/* 0150B4 700144B4 1A00000C */ blez $s0, .L700144E8 +/* 0150B8 700144B8 02602025 */ move $a0, $s3 +/* 0150BC 700144BC 02A02825 */ move $a1, $s5 +/* 0150C0 700144C0 0280F809 */ jalr $s4 +/* 0150C4 700144C4 02003025 */ move $a2, $s0 +/* 0150C8 700144C8 10400005 */ beqz $v0, .L700144E0 +/* 0150CC 700144CC 00409825 */ move $s3, $v0 +/* 0150D0 700144D0 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0150D4 700144D4 01D07821 */ addu $t7, $t6, $s0 +/* 0150D8 700144D8 10000003 */ b .L700144E8 +/* 0150DC 700144DC AFAF00D4 */ sw $t7, 0xd4($sp) +.L700144E0: +/* 0150E0 700144E0 10000024 */ b .L70014574 +/* 0150E4 700144E4 8FA200D4 */ lw $v0, 0xd4($sp) +.L700144E8: +/* 0150E8 700144E8 02308823 */ subu $s1, $s1, $s0 +/* 0150EC 700144EC 5E20FFED */ bgtzl $s1, .L700144A4 +/* 0150F0 700144F0 2E210021 */ sltiu $at, $s1, 0x21 +.L700144F4: +/* 0150F4 700144F4 8FB900D8 */ lw $t9, 0xd8($sp) +.L700144F8: +/* 0150F8 700144F8 8FAE00D0 */ lw $t6, 0xd0($sp) +/* 0150FC 700144FC 33380004 */ andi $t8, $t9, 4 +/* 015100 70014500 1300001A */ beqz $t8, .L7001456C +/* 015104 70014504 000E782A */ slt $t7, $zero, $t6 +/* 015108 70014508 11E00018 */ beqz $t7, .L7001456C +/* 01510C 7001450C 00000000 */ nop +/* 015110 70014510 11E00016 */ beqz $t7, .L7001456C +/* 015114 70014514 01C08825 */ move $s1, $t6 +/* 015118 70014518 2E210021 */ sltiu $at, $s1, 0x21 +.L7001451C: +/* 01511C 7001451C 14200003 */ bnez $at, .L7001452C +/* 015120 70014520 02208025 */ move $s0, $s1 +/* 015124 70014524 10000001 */ b .L7001452C +/* 015128 70014528 24100020 */ li $s0, 32 +.L7001452C: +/* 01512C 7001452C 1A00000C */ blez $s0, .L70014560 +/* 015130 70014530 02602025 */ move $a0, $s3 +/* 015134 70014534 02E02825 */ move $a1, $s7 +/* 015138 70014538 0280F809 */ jalr $s4 +/* 01513C 7001453C 02003025 */ move $a2, $s0 +/* 015140 70014540 10400005 */ beqz $v0, .L70014558 +/* 015144 70014544 00409825 */ move $s3, $v0 +/* 015148 70014548 8FB900D4 */ lw $t9, 0xd4($sp) +/* 01514C 7001454C 0330C021 */ addu $t8, $t9, $s0 +/* 015150 70014550 10000003 */ b .L70014560 +/* 015154 70014554 AFB800D4 */ sw $t8, 0xd4($sp) +.L70014558: +/* 015158 70014558 10000006 */ b .L70014574 +/* 01515C 7001455C 8FA200D4 */ lw $v0, 0xd4($sp) +.L70014560: +/* 015160 70014560 02308823 */ subu $s1, $s1, $s0 +/* 015164 70014564 5E20FFED */ bgtzl $s1, .L7001451C +/* 015168 70014568 2E210021 */ sltiu $at, $s1, 0x21 +.L7001456C: +/* 01516C 7001456C 1000FE94 */ b .L70013FC0 +/* 015170 70014570 26470001 */ addiu $a3, $s2, 1 +.L70014574: +/* 015174 70014574 8FBF003C */ lw $ra, 0x3c($sp) +/* 015178 70014578 8FB00018 */ lw $s0, 0x18($sp) +/* 01517C 7001457C 8FB1001C */ lw $s1, 0x1c($sp) +/* 015180 70014580 8FB20020 */ lw $s2, 0x20($sp) +/* 015184 70014584 8FB30024 */ lw $s3, 0x24($sp) +/* 015188 70014588 8FB40028 */ lw $s4, 0x28($sp) +/* 01518C 7001458C 8FB5002C */ lw $s5, 0x2c($sp) +/* 015190 70014590 8FB60030 */ lw $s6, 0x30($sp) +/* 015194 70014594 8FB70034 */ lw $s7, 0x34($sp) +/* 015198 70014598 8FBE0038 */ lw $fp, 0x38($sp) +/* 01519C 7001459C 03E00008 */ jr $ra +/* 0151A0 700145A0 27BD00E0 */ addiu $sp, $sp, 0xe0 + +.section .data +glabel spaces +.asciiz " " +.align 2 +glabel zeros +.asciiz "00000000000000000000000000000000" +.align 2 + +.section .rodata +glabel aHll +.ascii "hlL"<0> +glabel printf_symbols +.ascii " +-#0"<0> +.align 2 +glabel byteshiftleft_lookup +.word 1, 2, 4, 8, 0x10, 0 + +glabel jpt_80029714 +.word .L70013C58, .L70013F38, .L70013C58, .L70013F38 +.word .L70013F38, .L70013F38, .L70013F38, .L70013F38 +.word .L70013F38, .L70013F38, .L70013F38, .L70013F38 +.word .L70013F38, .L70013F38, .L70013F38, .L70013F38 +.word .L70013F38, .L70013F38, .L70013F38, .L70013B08 +.word .L70013F38, .L70013F38, .L70013F38, .L70013F38 +.word .L70013F38, .L70013F38, .L70013F38, .L70013F38 +.word .L70013F38, .L70013F38, .L70013960, .L70013998 +.word .L70013C58, .L70013C58, .L70013C58, .L70013F38 +.word .L70013998, .L70013F38, .L70013F38, .L70013F38 +.word .L70013F38, .L70013DBC, .L70013B08, .L70013E8C +.word .L70013F38, .L70013F38, .L70013ED4, .L70013F38 +.word .L70013B08, .L70013F38, .L70013F38, .L70013B08 +.align 4 diff --git a/src/libultra/yieldthread.s b/src/libultra/yieldthread.s new file mode 100644 index 0000000..55e4616 --- /dev/null +++ b/src/libultra/yieldthread.s @@ -0,0 +1,29 @@ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + + +.section .text, "ax" +glabel osYieldThread +/* 0116D0 70010AD0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0116D4 70010AD4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0116D8 70010AD8 0C00617C */ jal __osDisableInt +/* 0116DC 70010ADC AFB00018 */ sw $s0, 0x18($sp) +/* 0116E0 70010AE0 3C0F8002 */ lui $t7, %hi(__osRunningThread) +/* 0116E4 70010AE4 8DEF7730 */ lw $t7, %lo(__osRunningThread)($t7) +/* 0116E8 70010AE8 240E0002 */ li $t6, 2 +/* 0116EC 70010AEC 3C048002 */ lui $a0, %hi(__osRunQueue) +/* 0116F0 70010AF0 00408025 */ move $s0, $v0 +/* 0116F4 70010AF4 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728 +/* 0116F8 70010AF8 0C0041EB */ jal __osEnqueueAndYield +/* 0116FC 70010AFC A5EE0010 */ sh $t6, 0x10($t7) +/* 011700 70010B00 0C006184 */ jal __osRestoreInt +/* 011704 70010B04 02002025 */ move $a0, $s0 +/* 011708 70010B08 8FBF001C */ lw $ra, 0x1c($sp) +/* 01170C 70010B0C 8FB00018 */ lw $s0, 0x18($sp) +/* 011710 70010B10 27BD0028 */ addiu $sp, $sp, 0x28 +/* 011714 70010B14 03E00008 */ jr $ra +/* 011718 70010B18 00000000 */ nop diff --git a/src/mema.c b/src/mema.c new file mode 100644 index 0000000..8bb4b3d --- /dev/null +++ b/src/mema.c @@ -0,0 +1,1288 @@ +#include "ultra64.h" +#include "mema.h" +#include "deb.h" + +/** + * @file mema.c + * This file contains memory allocation code. + * + */ + +//bss +void *ptr_model_room_buf_secondary; +u32 size_modelroom_buf; +struct s_mem_alloc_table ptr_table_allocated_mem_blocks; + +//data +void *ptr_mema_c_debug_notice_list = 0; + + + + + + +void memaSwap(s_mem_alloc_entry *a, s_mem_alloc_entry *b) { + s32 temp_v0; + s32 temp_v1; + + temp_v0 = a->addr; + temp_v1 = a->size; + a->addr = (s32) b->addr; + a->size = (s32) b->size; + b->addr = temp_v0; + b->size = temp_v1; +} + +void memaMerge(s_mem_alloc_entry *a, s_mem_alloc_entry *b) { + a->size = (s32) (a->size + b->size); + b->addr = 0; + b->size = 0; +} + + + + + + +#ifdef NONMATCHING +u32 memaSortMergeEntries(s_mem_alloc_table *param_1) +{ + u32 temp_s0; + u32 temp_s0_2; + u32 temp_s4; + void *phi_s0; + u32 phi_s2; + void *phi_s1; + void *phi_s0_2; + ? phi_s3; + void *phi_s0_3; + ? phi_s3_2; + u32 phi_v0; + ? phi_s3_3; + + temp_s0 = arg0 + 0x10; + temp_s4 = arg0 + 0xfe8; + phi_s0 = temp_s0; + phi_s2 = 0U; + phi_s1 = arg0 + 8; + phi_s3 = 0; + phi_s3_3 = 0; + if (temp_s4 >= temp_s0) + { +loop_1: + phi_s0_2 = phi_s0; + phi_s2 = phi_s2; + phi_s1 = phi_s1; + phi_s3_2 = phi_s3_3; + if (phi_s0->unk4 != 0) + { + if ((u32) phi_s0->unk0 < (u32) phi_s2) + { + memaSwap(phi_s0, phi_s1); + } + phi_s0_3 = phi_s0; + phi_v0 = phi_s0->unk0; + phi_s3_2 = phi_s3_3; + if (phi_s0->unk0 == (phi_s1->unk4 + phi_s2)) + { + memaMerge(phi_s1, phi_s0); + phi_s0_3 = phi_s1; + phi_v0 = phi_s1->unk0; + phi_s3_2 = 1; + } + phi_s0_2 = phi_s0_3; + phi_s2 = phi_v0; + phi_s1 = phi_s0_3; + } + temp_s0_2 = phi_s0_2 + 8; + phi_s0 = temp_s0_2; + phi_s3 = phi_s3_2; + phi_s3_3 = phi_s3_2; + if (temp_s4 >= temp_s0_2) + { + goto loop_1; + } + } + return phi_s3; +} +#else +GLOBAL_ASM( +.text +glabel memaSortMergeEntries +/* 00A650 70009A50 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 00A654 70009A54 AFB40028 */ sw $s4, 0x28($sp) +/* 00A658 70009A58 AFB00018 */ sw $s0, 0x18($sp) +/* 00A65C 70009A5C 24900010 */ addiu $s0, $a0, 0x10 +/* 00A660 70009A60 24940FE8 */ addiu $s4, $a0, 0xfe8 +/* 00A664 70009A64 AFB30024 */ sw $s3, 0x24($sp) +/* 00A668 70009A68 AFB20020 */ sw $s2, 0x20($sp) +/* 00A66C 70009A6C AFB1001C */ sw $s1, 0x1c($sp) +/* 00A670 70009A70 0290082B */ sltu $at, $s4, $s0 +/* 00A674 70009A74 AFBF002C */ sw $ra, 0x2c($sp) +/* 00A678 70009A78 00009825 */ move $s3, $zero +/* 00A67C 70009A7C 24910008 */ addiu $s1, $a0, 8 +/* 00A680 70009A80 1420001C */ bnez $at, .L70009AF4 +/* 00A684 70009A84 00009025 */ move $s2, $zero +/* 00A688 70009A88 8E0E0004 */ lw $t6, 4($s0) +.L70009A8C: +/* 00A68C 70009A8C 51C00016 */ beql $t6, $zero, .L70009AE8 +/* 00A690 70009A90 26100008 */ addiu $s0, $s0, 8 +/* 00A694 70009A94 8E020000 */ lw $v0, ($s0) +/* 00A698 70009A98 02002025 */ move $a0, $s0 +/* 00A69C 70009A9C 0052082B */ sltu $at, $v0, $s2 +/* 00A6A0 70009AA0 50200005 */ beql $at, $zero, .L70009AB8 +/* 00A6A4 70009AA4 8E2F0004 */ lw $t7, 4($s1) +/* 00A6A8 70009AA8 0C002684 */ jal memaSwap +/* 00A6AC 70009AAC 02202825 */ move $a1, $s1 +/* 00A6B0 70009AB0 8E020000 */ lw $v0, ($s0) +/* 00A6B4 70009AB4 8E2F0004 */ lw $t7, 4($s1) +.L70009AB8: +/* 00A6B8 70009AB8 02202025 */ move $a0, $s1 +/* 00A6BC 70009ABC 02002825 */ move $a1, $s0 +/* 00A6C0 70009AC0 01F2C021 */ addu $t8, $t7, $s2 +/* 00A6C4 70009AC4 54580006 */ bnel $v0, $t8, .L70009AE0 +/* 00A6C8 70009AC8 02008825 */ move $s1, $s0 +/* 00A6CC 70009ACC 0C00268D */ jal memaMerge +/* 00A6D0 70009AD0 24130001 */ li $s3, 1 +/* 00A6D4 70009AD4 02208025 */ move $s0, $s1 +/* 00A6D8 70009AD8 8E220000 */ lw $v0, ($s1) +/* 00A6DC 70009ADC 02008825 */ move $s1, $s0 +.L70009AE0: +/* 00A6E0 70009AE0 00409025 */ move $s2, $v0 +/* 00A6E4 70009AE4 26100008 */ addiu $s0, $s0, 8 +.L70009AE8: +/* 00A6E8 70009AE8 0290082B */ sltu $at, $s4, $s0 +/* 00A6EC 70009AEC 5020FFE7 */ beql $at, $zero, .L70009A8C +/* 00A6F0 70009AF0 8E0E0004 */ lw $t6, 4($s0) +.L70009AF4: +/* 00A6F4 70009AF4 8FBF002C */ lw $ra, 0x2c($sp) +/* 00A6F8 70009AF8 02601025 */ move $v0, $s3 +/* 00A6FC 70009AFC 8FB30024 */ lw $s3, 0x24($sp) +/* 00A700 70009B00 8FB00018 */ lw $s0, 0x18($sp) +/* 00A704 70009B04 8FB1001C */ lw $s1, 0x1c($sp) +/* 00A708 70009B08 8FB20020 */ lw $s2, 0x20($sp) +/* 00A70C 70009B0C 8FB40028 */ lw $s4, 0x28($sp) +/* 00A710 70009B10 03E00008 */ jr $ra +/* 00A714 70009B14 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + + +void memaSortMergeAllEntries(void) +{ + while (memaSortMergeEntries(&ptr_table_allocated_mem_blocks) != 0) { + ; + } +} + + + +#ifdef NONMATCHING +s_mem_alloc_entry * memaFindOpening(s_mem_alloc_table *param_1) +{ + u32 entrySize; + s_mem_alloc_entry *pAStart; + s_mem_alloc_entry *a; + int iVar1; + u32 invalidSize; + s_mem_alloc_entry *pStart; + s_mem_alloc_entry *pEnd; + int count; + + pStart = param_1->entries + 2; + pEnd = param_1->entries + 0x1fd; + count = 0; + pAStart = pStart; + while( 1 ) { + while (a = pAStart, pEnd < a) { + count = count + 1; + pAStart = pStart; + if (0x1fb < count) { + if (pEnd < pStart) { + return pStart; + } + invalidSize = 0xffffffff; + entrySize = param_1->entries[2].size; + while( 1 ) { + a = pStart; + if (invalidSize <= entrySize) { + entrySize = invalidSize; + a = pAStart; + } + if (pEnd < pStart + 1) break; + invalidSize = entrySize; + entrySize = pStart[1].size; + pStart = pStart + 1; + pAStart = a; + } + return a; + } + } + iVar1 = a->size; + if (iVar1 == 0) break; + entrySize = a[1].addr; + if (entrySize < (u32)a->addr) { + memaSwap((u8 *)a,(u8 *)(a + 1)); + iVar1 = a->size; + entrySize = a[1].addr; + invalidSize = a->addr + iVar1; + } + else { + invalidSize = a->addr + iVar1; + } + pAStart = a + 1; + if (entrySize == invalidSize) { + count = a[1].size; + a[1].addr = 0; + a[1].size = 0; + a->size = iVar1 + count; + return a + 1; + } + } + return a; +} +#else +GLOBAL_ASM( +.text +glabel memaFindOpening +/* 00A760 70009B60 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00A764 70009B64 AFB2001C */ sw $s2, 0x1c($sp) +/* 00A768 70009B68 AFB30020 */ sw $s3, 0x20($sp) +/* 00A76C 70009B6C AFB10018 */ sw $s1, 0x18($sp) +/* 00A770 70009B70 AFB00014 */ sw $s0, 0x14($sp) +/* 00A774 70009B74 24920010 */ addiu $s2, $a0, 0x10 +/* 00A778 70009B78 AFBF0024 */ sw $ra, 0x24($sp) +/* 00A77C 70009B7C 02408025 */ move $s0, $s2 +/* 00A780 70009B80 24910FE8 */ addiu $s1, $a0, 0xfe8 +/* 00A784 70009B84 00009825 */ move $s3, $zero +/* 00A788 70009B88 0232082B */ sltu $at, $s1, $s2 +.L70009B8C: +/* 00A78C 70009B8C 54200020 */ bnezl $at, .L70009C10 +/* 00A790 70009B90 26730001 */ addiu $s3, $s3, 1 +.L70009B94: +/* 00A794 70009B94 8E040004 */ lw $a0, 4($s0) +/* 00A798 70009B98 26050008 */ addiu $a1, $s0, 8 +/* 00A79C 70009B9C 54800004 */ bnezl $a0, .L70009BB0 +/* 00A7A0 70009BA0 8E020008 */ lw $v0, 8($s0) +/* 00A7A4 70009BA4 1000002C */ b .L70009C58 +/* 00A7A8 70009BA8 02001025 */ move $v0, $s0 +/* 00A7AC 70009BAC 8E020008 */ lw $v0, 8($s0) +.L70009BB0: +/* 00A7B0 70009BB0 8E030000 */ lw $v1, ($s0) +/* 00A7B4 70009BB4 0043082B */ sltu $at, $v0, $v1 +/* 00A7B8 70009BB8 50200007 */ beql $at, $zero, .L70009BD8 +/* 00A7BC 70009BBC 00647021 */ addu $t6, $v1, $a0 +/* 00A7C0 70009BC0 0C002684 */ jal memaSwap +/* 00A7C4 70009BC4 02002025 */ move $a0, $s0 +/* 00A7C8 70009BC8 8E040004 */ lw $a0, 4($s0) +/* 00A7CC 70009BCC 8E020008 */ lw $v0, 8($s0) +/* 00A7D0 70009BD0 8E030000 */ lw $v1, ($s0) +/* 00A7D4 70009BD4 00647021 */ addu $t6, $v1, $a0 +.L70009BD8: +/* 00A7D8 70009BD8 144E0008 */ bne $v0, $t6, .L70009BFC +/* 00A7DC 70009BDC 26050008 */ addiu $a1, $s0, 8 +/* 00A7E0 70009BE0 8E0F000C */ lw $t7, 0xc($s0) +/* 00A7E4 70009BE4 AE000008 */ sw $zero, 8($s0) +/* 00A7E8 70009BE8 AE00000C */ sw $zero, 0xc($s0) +/* 00A7EC 70009BEC 008FC021 */ addu $t8, $a0, $t7 +/* 00A7F0 70009BF0 AE180004 */ sw $t8, 4($s0) +/* 00A7F4 70009BF4 10000018 */ b .L70009C58 +/* 00A7F8 70009BF8 00A01025 */ move $v0, $a1 +.L70009BFC: +/* 00A7FC 70009BFC 0225082B */ sltu $at, $s1, $a1 +/* 00A800 70009C00 1020FFE4 */ beqz $at, .L70009B94 +/* 00A804 70009C04 00A08025 */ move $s0, $a1 +/* 00A808 70009C08 02408025 */ move $s0, $s2 +/* 00A80C 70009C0C 26730001 */ addiu $s3, $s3, 1 +.L70009C10: +/* 00A810 70009C10 2A6101FC */ slti $at, $s3, 0x1fc +/* 00A814 70009C14 5420FFDD */ bnezl $at, .L70009B8C +/* 00A818 70009C18 0232082B */ sltu $at, $s1, $s2 +/* 00A81C 70009C1C 0232082B */ sltu $at, $s1, $s2 +/* 00A820 70009C20 2402FFFF */ li $v0, -1 +/* 00A824 70009C24 1420000B */ bnez $at, .L70009C54 +/* 00A828 70009C28 02401825 */ move $v1, $s2 +/* 00A82C 70009C2C 8E040004 */ lw $a0, 4($s0) +.L70009C30: +/* 00A830 70009C30 0082082B */ sltu $at, $a0, $v0 +/* 00A834 70009C34 50200004 */ beql $at, $zero, .L70009C48 +/* 00A838 70009C38 26100008 */ addiu $s0, $s0, 8 +/* 00A83C 70009C3C 02001825 */ move $v1, $s0 +/* 00A840 70009C40 00801025 */ move $v0, $a0 +/* 00A844 70009C44 26100008 */ addiu $s0, $s0, 8 +.L70009C48: +/* 00A848 70009C48 0230082B */ sltu $at, $s1, $s0 +/* 00A84C 70009C4C 5020FFF8 */ beql $at, $zero, .L70009C30 +/* 00A850 70009C50 8E040004 */ lw $a0, 4($s0) +.L70009C54: +/* 00A854 70009C54 00601025 */ move $v0, $v1 +.L70009C58: +/* 00A858 70009C58 8FBF0024 */ lw $ra, 0x24($sp) +/* 00A85C 70009C5C 8FB00014 */ lw $s0, 0x14($sp) +/* 00A860 70009C60 8FB10018 */ lw $s1, 0x18($sp) +/* 00A864 70009C64 8FB2001C */ lw $s2, 0x1c($sp) +/* 00A868 70009C68 8FB30020 */ lw $s3, 0x20($sp) +/* 00A86C 70009C6C 03E00008 */ jr $ra +/* 00A870 70009C70 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +void memaAllocRoomBuffer(uint addr,uint size) +{ + int iVar1; + int iVar2; + s_mem_alloc_entry *psVar3; + s_mem_alloc_entry *psVar4; + s_mem_alloc_entry *psVar5; + s32 sVar6; + int iVar7; + + iVar7 = (addr - ptr_model_room_buf_secondary) * 0x1fc; + iVar2 = iVar7 / size_modelroom_buf; + iVar1 = ptr_table_allocated_mem_blocks.entries[iVar2 + 2].size; + psVar4 = ptr_table_allocated_mem_blocks.entries + iVar2 + 2; + if (size_modelroom_buf == 0) { + trap(0x1c00); + } + if ((size_modelroom_buf == -1) && (iVar7 == -0x80000000)) { + trap(0x1800); + } + if (iVar1 == 0) { + sVar6 = psVar4->addr; + psVar5 = psVar4; + } + else { + sVar6 = ptr_table_allocated_mem_blocks.entries[iVar2 + 3].size; + psVar3 = psVar4; + while (psVar5 = psVar3 + 1, sVar6 != 0) { + sVar6 = psVar3[2].size; + psVar3 = psVar5; + } + sVar6 = psVar5->addr; + } + if (sVar6 == -1) { + psVar5 = psVar4; + if (iVar1 != 0) { + sVar6 = ptr_table_allocated_mem_blocks.entries[iVar2 + 1].size; + while (psVar5 = psVar4 + -1, sVar6 != 0) { + sVar6 = psVar4[-2].size; + psVar4 = psVar5; + } + } + if (psVar5->addr == 0) { + psVar5 = (s_mem_alloc_entry *)memaFindOpening(&ptr_table_allocated_mem_blocks); + } + } + psVar5->addr = addr; + psVar5->size = size; + return; +} +#else +GLOBAL_ASM( +.text +glabel memaAllocRoomBuffer +/* 00A874 70009C74 3C0F8006 */ lui $t7, %hi(ptr_model_room_buf_secondary) +/* 00A878 70009C78 8DEF3C20 */ lw $t7, %lo(ptr_model_room_buf_secondary)($t7) +/* 00A87C 70009C7C 3C098006 */ lui $t1, %hi(size_modelroom_buf) +/* 00A880 70009C80 8D293C24 */ lw $t1, %lo(size_modelroom_buf)($t1) +/* 00A884 70009C84 008FC023 */ subu $t8, $a0, $t7 +/* 00A888 70009C88 0018C9C0 */ sll $t9, $t8, 7 +/* 00A88C 70009C8C 0338C823 */ subu $t9, $t9, $t8 +/* 00A890 70009C90 0019C880 */ sll $t9, $t9, 2 +/* 00A894 70009C94 0329001A */ div $zero, $t9, $t1 +/* 00A898 70009C98 00003012 */ mflo $a2 +/* 00A89C 70009C9C 3C0B8006 */ lui $t3, %hi(ptr_table_allocated_mem_blocks) +/* 00A8A0 70009CA0 256B3C28 */ addiu $t3, %lo(ptr_table_allocated_mem_blocks) # addiu $t3, $t3, 0x3c28 +/* 00A8A4 70009CA4 000650C0 */ sll $t2, $a2, 3 +/* 00A8A8 70009CA8 014B1021 */ addu $v0, $t2, $t3 +/* 00A8AC 70009CAC 8C480014 */ lw $t0, 0x14($v0) +/* 00A8B0 70009CB0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00A8B4 70009CB4 24470010 */ addiu $a3, $v0, 0x10 +/* 00A8B8 70009CB8 AFBF0014 */ sw $ra, 0x14($sp) +/* 00A8BC 70009CBC AFA40018 */ sw $a0, 0x18($sp) +/* 00A8C0 70009CC0 AFA5001C */ sw $a1, 0x1c($sp) +/* 00A8C4 70009CC4 00807025 */ move $t6, $a0 +/* 00A8C8 70009CC8 15200002 */ bnez $t1, .L70009CD4 +/* 00A8CC 70009CCC 00000000 */ nop +/* 00A8D0 70009CD0 0007000D */ break 7 +.L70009CD4: +/* 00A8D4 70009CD4 2401FFFF */ li $at, -1 +/* 00A8D8 70009CD8 15210004 */ bne $t1, $at, .L70009CEC +/* 00A8DC 70009CDC 3C018000 */ lui $at, 0x8000 +/* 00A8E0 70009CE0 17210002 */ bne $t9, $at, .L70009CEC +/* 00A8E4 70009CE4 00000000 */ nop +/* 00A8E8 70009CE8 0006000D */ break 6 +.L70009CEC: +/* 00A8EC 70009CEC 00E01825 */ move $v1, $a3 +/* 00A8F0 70009CF0 51000006 */ beql $t0, $zero, .L70009D0C +/* 00A8F4 70009CF4 8C6D0000 */ lw $t5, ($v1) +/* 00A8F8 70009CF8 8C6C000C */ lw $t4, 0xc($v1) +.L70009CFC: +/* 00A8FC 70009CFC 24630008 */ addiu $v1, $v1, 8 +/* 00A900 70009D00 5580FFFE */ bnezl $t4, .L70009CFC +/* 00A904 70009D04 8C6C000C */ lw $t4, 0xc($v1) +/* 00A908 70009D08 8C6D0000 */ lw $t5, ($v1) +.L70009D0C: +/* 00A90C 70009D0C 2401FFFF */ li $at, -1 +/* 00A910 70009D10 55A1000F */ bnel $t5, $at, .L70009D50 +/* 00A914 70009D14 8FB80018 */ lw $t8, 0x18($sp) +/* 00A918 70009D18 11000005 */ beqz $t0, .L70009D30 +/* 00A91C 70009D1C 00E01825 */ move $v1, $a3 +/* 00A920 70009D20 8C6EFFFC */ lw $t6, -4($v1) +.L70009D24: +/* 00A924 70009D24 2463FFF8 */ addiu $v1, $v1, -8 +/* 00A928 70009D28 55C0FFFE */ bnezl $t6, .L70009D24 +/* 00A92C 70009D2C 8C6EFFFC */ lw $t6, -4($v1) +.L70009D30: +/* 00A930 70009D30 8C6F0000 */ lw $t7, ($v1) +/* 00A934 70009D34 3C048006 */ lui $a0, %hi(ptr_table_allocated_mem_blocks) +/* 00A938 70009D38 55E00005 */ bnezl $t7, .L70009D50 +/* 00A93C 70009D3C 8FB80018 */ lw $t8, 0x18($sp) +/* 00A940 70009D40 0C0026D8 */ jal memaFindOpening +/* 00A944 70009D44 24843C28 */ addiu $a0, %lo(ptr_table_allocated_mem_blocks) # addiu $a0, $a0, 0x3c28 +/* 00A948 70009D48 00401825 */ move $v1, $v0 +/* 00A94C 70009D4C 8FB80018 */ lw $t8, 0x18($sp) +.L70009D50: +/* 00A950 70009D50 AC780000 */ sw $t8, ($v1) +/* 00A954 70009D54 8FB9001C */ lw $t9, 0x1c($sp) +/* 00A958 70009D58 AC790004 */ sw $t9, 4($v1) +/* 00A95C 70009D5C 8FBF0014 */ lw $ra, 0x14($sp) +/* 00A960 70009D60 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00A964 70009D64 03E00008 */ jr $ra +/* 00A968 70009D68 00000000 */ nop +) +#endif + + + +void memaInitDebugNoticeList(void) { + debCheckAddDebugNoticeListEntry(&ptr_mema_c_debug_notice_list, "mema_c_debug"); +} + + + + +#ifdef NONMATCHING +void mempInitMallocTable(void *ptr_allocmem,u32 size) +{ + s_mem_alloc_entry *entry; + + ptr_table_allocated_mem_blocks.entries[510].addr = -1; + ptr_table_allocated_mem_blocks.entries[511].addr = -1; + ptr_table_allocated_mem_blocks.entries[0].addr = 0; + ptr_table_allocated_mem_blocks.entries[0].size = 0; + ptr_table_allocated_mem_blocks.entries[1].addr = 0; + ptr_table_allocated_mem_blocks.entries[1].size = 0; + ptr_table_allocated_mem_blocks.entries[510].size = 0; + ptr_table_allocated_mem_blocks.entries[511].size = -1; + for (entry = ptr_table_allocated_mem_blocks.entries[2]; (entry < (s_mem_alloc_entry *)(&ptr_table_allocated_mem_blocks.entries[0x1fd].addr+1)); ++entry) + { + entry->addr = 0; + entry->size = 0; + }; + ptr_model_room_buf_secondary = ptr_allocmem; + size_modelroom_buf = size; + ptr_table_allocated_mem_blocks.entries[2].addr = (s32)ptr_allocmem; + ptr_table_allocated_mem_blocks.entries[2].size = size; +} +#else +GLOBAL_ASM( +.text +glabel mempInitMallocTable +/* 00A998 70009D98 3C038006 */ lui $v1, %hi(ptr_table_allocated_mem_blocks) +/* 00A99C 70009D9C 24633C28 */ addiu $v1, %lo(ptr_table_allocated_mem_blocks) # addiu $v1, $v1, 0x3c28 +/* 00A9A0 70009DA0 2406FFFF */ li $a2, -1 +/* 00A9A4 70009DA4 AC660FF0 */ sw $a2, 0xff0($v1) +/* 00A9A8 70009DA8 AC660FF8 */ sw $a2, 0xff8($v1) +/* 00A9AC 70009DAC 240EFFFF */ li $t6, -1 +/* 00A9B0 70009DB0 3C068006 */ lui $a2, %hi(ptr_table_allocated_mem_blocks + 0xFE8) +/* 00A9B4 70009DB4 3C028006 */ lui $v0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00A9B8 70009DB8 AC600000 */ sw $zero, ($v1) +/* 00A9BC 70009DBC AC600004 */ sw $zero, 4($v1) +/* 00A9C0 70009DC0 AC600008 */ sw $zero, 8($v1) +/* 00A9C4 70009DC4 AC60000C */ sw $zero, 0xc($v1) +/* 00A9C8 70009DC8 AC600FF4 */ sw $zero, 0xff4($v1) +/* 00A9CC 70009DCC AC6E0FFC */ sw $t6, 0xffc($v1) +/* 00A9D0 70009DD0 24423C38 */ addiu $v0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $v0, $v0, 0x3c38 +/* 00A9D4 70009DD4 24C64C10 */ addiu $a2, %lo(ptr_table_allocated_mem_blocks + 0xFE8) # addiu $a2, $a2, 0x4c10 +.L70009DD8: +/* 00A9D8 70009DD8 24420008 */ addiu $v0, $v0, 8 +/* 00A9DC 70009DDC 00C2082B */ sltu $at, $a2, $v0 +/* 00A9E0 70009DE0 AC40FFF8 */ sw $zero, -8($v0) +/* 00A9E4 70009DE4 1020FFFC */ beqz $at, .L70009DD8 +/* 00A9E8 70009DE8 AC40FFFC */ sw $zero, -4($v0) +/* 00A9EC 70009DEC 3C028006 */ lui $v0, %hi(ptr_model_room_buf_secondary) +/* 00A9F0 70009DF0 3C068006 */ lui $a2, %hi(size_modelroom_buf) +/* 00A9F4 70009DF4 24C63C24 */ addiu $a2, %lo(size_modelroom_buf) # addiu $a2, $a2, 0x3c24 +/* 00A9F8 70009DF8 24423C20 */ addiu $v0, %lo(ptr_model_room_buf_secondary) # addiu $v0, $v0, 0x3c20 +/* 00A9FC 70009DFC AC440000 */ sw $a0, ($v0) +/* 00AA00 70009E00 AC640010 */ sw $a0, 0x10($v1) +/* 00AA04 70009E04 ACC50000 */ sw $a1, ($a2) +/* 00AA08 70009E08 03E00008 */ jr $ra +/* 00AA0C 70009E0C AC650014 */ sw $a1, 0x14($v1) +) +#endif + + +void mem_related_calls_sort_merge_entries(void) { + memaSortMergeEntries(&ptr_table_allocated_mem_blocks); +} + + + +#ifdef NONMATCHING +int mem_related_something_find_first(uint size) + +{ + uint uVar1; + s_mem_alloc_entry *psVar2; + uint uVar3; + s32 sVar4; + int iVar5; + int iVar6; + s_mem_alloc_entry *psVar7; + + psVar7 = ptr_table_allocated_mem_blocks.entries + 2; + uVar3 = 0xffffffff; + psVar2 = (s_mem_alloc_entry *)0x0; + iVar6 = 0; + do { + iVar6 = iVar6 + 1; + uVar1 = psVar7->size - size; + if (size <= (uint)psVar7->size) { + if ((psVar7->addr == -1) || + ((uVar1 < uVar3 && ((psVar2 = psVar7, uVar1 < 0x40 || (uVar3 = uVar1, uVar1 < size >> 2)))) + )) break; + } + psVar7 = psVar7 + 1; + } while (iVar6 != 0x10); + if (psVar2 == (s_mem_alloc_entry *)0x0) { + iVar6 = 0; + psVar2 = psVar7; + if ((uint)psVar7->size < size) { + uVar3 = psVar7[1].size; + while (psVar2 = psVar7 + 1, uVar3 < size) { + uVar3 = psVar7[2].size; + psVar7 = psVar2; + } + } + if (psVar2->addr == -1) { + psVar2 = ptr_table_allocated_mem_blocks.entries + 2; + do { + memaSortMergeEntries(&ptr_table_allocated_mem_blocks); + iVar6 = iVar6 + 1; + } while (iVar6 != 8); + uVar3 = ptr_table_allocated_mem_blocks.entries[3].size; + sVar4 = ptr_table_allocated_mem_blocks.entries[2].addr; + psVar7 = psVar2; + if ((uint)ptr_table_allocated_mem_blocks.entries[2].size < size) { + while (psVar2 = psVar7 + 1, uVar3 < size) { + uVar3 = psVar7[2].size; + psVar7 = psVar2; + } + sVar4 = psVar2->addr; + } + if (sVar4 == -1) { + return 0; + } + } + iVar6 = psVar2->addr; + } + else { + iVar6 = psVar2->addr; + } + iVar5 = psVar2->size - size; + psVar2->addr = iVar6 + size; + psVar2->size = iVar5; + if (iVar5 == 0) { + psVar2->addr = 0; + } + return iVar6; +} +#else +GLOBAL_ASM( +.text +glabel mem_related_something_find_first +/* 00AA34 70009E34 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 00AA38 70009E38 AFB2001C */ sw $s2, 0x1c($sp) +/* 00AA3C 70009E3C AFB10018 */ sw $s1, 0x18($sp) +/* 00AA40 70009E40 00809025 */ move $s2, $a0 +/* 00AA44 70009E44 AFB50028 */ sw $s5, 0x28($sp) +/* 00AA48 70009E48 AFB00014 */ sw $s0, 0x14($sp) +/* 00AA4C 70009E4C 3C118006 */ lui $s1, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AA50 70009E50 AFBF002C */ sw $ra, 0x2c($sp) +/* 00AA54 70009E54 AFB40024 */ sw $s4, 0x24($sp) +/* 00AA58 70009E58 AFB30020 */ sw $s3, 0x20($sp) +/* 00AA5C 70009E5C 26313C38 */ addiu $s1, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $s1, $s1, 0x3c38 +/* 00AA60 70009E60 2404FFFF */ li $a0, -1 +/* 00AA64 70009E64 00002825 */ move $a1, $zero +/* 00AA68 70009E68 00008025 */ move $s0, $zero +/* 00AA6C 70009E6C 2415FFFF */ li $s5, -1 +/* 00AA70 70009E70 24060010 */ li $a2, 16 +.L70009E74: +/* 00AA74 70009E74 8E230004 */ lw $v1, 4($s1) +/* 00AA78 70009E78 26100001 */ addiu $s0, $s0, 1 +/* 00AA7C 70009E7C 0072082B */ sltu $at, $v1, $s2 +/* 00AA80 70009E80 1420000E */ bnez $at, .L70009EBC +/* 00AA84 70009E84 00721023 */ subu $v0, $v1, $s2 +/* 00AA88 70009E88 8E2E0000 */ lw $t6, ($s1) +/* 00AA8C 70009E8C 0044082B */ sltu $at, $v0, $a0 +/* 00AA90 70009E90 00127882 */ srl $t7, $s2, 2 +/* 00AA94 70009E94 12AE000B */ beq $s5, $t6, .L70009EC4 +/* 00AA98 70009E98 00000000 */ nop +/* 00AA9C 70009E9C 10200007 */ beqz $at, .L70009EBC +/* 00AAA0 70009EA0 2C410040 */ sltiu $at, $v0, 0x40 +/* 00AAA4 70009EA4 00402025 */ move $a0, $v0 +/* 00AAA8 70009EA8 14200006 */ bnez $at, .L70009EC4 +/* 00AAAC 70009EAC 02202825 */ move $a1, $s1 +/* 00AAB0 70009EB0 004F082B */ sltu $at, $v0, $t7 +/* 00AAB4 70009EB4 14200003 */ bnez $at, .L70009EC4 +/* 00AAB8 70009EB8 00000000 */ nop +.L70009EBC: +/* 00AABC 70009EBC 1606FFED */ bne $s0, $a2, .L70009E74 +/* 00AAC0 70009EC0 26310008 */ addiu $s1, $s1, 8 +.L70009EC4: +/* 00AAC4 70009EC4 54A00027 */ bnezl $a1, .L70009F64 +/* 00AAC8 70009EC8 8CA30000 */ lw $v1, ($a1) +/* 00AACC 70009ECC 8E380004 */ lw $t8, 4($s1) +/* 00AAD0 70009ED0 00008025 */ move $s0, $zero +/* 00AAD4 70009ED4 24140008 */ li $s4, 8 +/* 00AAD8 70009ED8 0312082B */ sltu $at, $t8, $s2 +/* 00AADC 70009EDC 10200006 */ beqz $at, .L70009EF8 +/* 00AAE0 70009EE0 3C138006 */ lui $s3, %hi(ptr_table_allocated_mem_blocks) +/* 00AAE4 70009EE4 8E39000C */ lw $t9, 0xc($s1) +.L70009EE8: +/* 00AAE8 70009EE8 26310008 */ addiu $s1, $s1, 8 +/* 00AAEC 70009EEC 0332082B */ sltu $at, $t9, $s2 +/* 00AAF0 70009EF0 5420FFFD */ bnezl $at, .L70009EE8 +/* 00AAF4 70009EF4 8E39000C */ lw $t9, 0xc($s1) +.L70009EF8: +/* 00AAF8 70009EF8 8E280000 */ lw $t0, ($s1) +/* 00AAFC 70009EFC 26733C28 */ addiu $s3, %lo(ptr_table_allocated_mem_blocks) # addiu $s3, $s3, 0x3c28 +/* 00AB00 70009F00 56A80017 */ bnel $s5, $t0, .L70009F60 +/* 00AB04 70009F04 02202825 */ move $a1, $s1 +/* 00AB08 70009F08 3C118006 */ lui $s1, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AB0C 70009F0C 26313C38 */ addiu $s1, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $s1, $s1, 0x3c38 +.L70009F10: +/* 00AB10 70009F10 0C002694 */ jal memaSortMergeEntries +/* 00AB14 70009F14 02602025 */ move $a0, $s3 +/* 00AB18 70009F18 26100001 */ addiu $s0, $s0, 1 +/* 00AB1C 70009F1C 1614FFFC */ bne $s0, $s4, .L70009F10 +/* 00AB20 70009F20 00000000 */ nop +/* 00AB24 70009F24 8E690014 */ lw $t1, 0x14($s3) +/* 00AB28 70009F28 0132082B */ sltu $at, $t1, $s2 +/* 00AB2C 70009F2C 50200007 */ beql $at, $zero, .L70009F4C +/* 00AB30 70009F30 8E2B0000 */ lw $t3, ($s1) +/* 00AB34 70009F34 8E2A000C */ lw $t2, 0xc($s1) +.L70009F38: +/* 00AB38 70009F38 26310008 */ addiu $s1, $s1, 8 +/* 00AB3C 70009F3C 0152082B */ sltu $at, $t2, $s2 +/* 00AB40 70009F40 5420FFFD */ bnezl $at, .L70009F38 +/* 00AB44 70009F44 8E2A000C */ lw $t2, 0xc($s1) +/* 00AB48 70009F48 8E2B0000 */ lw $t3, ($s1) +.L70009F4C: +/* 00AB4C 70009F4C 56AB0004 */ bnel $s5, $t3, .L70009F60 +/* 00AB50 70009F50 02202825 */ move $a1, $s1 +/* 00AB54 70009F54 1000000B */ b .L70009F84 +/* 00AB58 70009F58 00001025 */ move $v0, $zero +/* 00AB5C 70009F5C 02202825 */ move $a1, $s1 +.L70009F60: +/* 00AB60 70009F60 8CA30000 */ lw $v1, ($a1) +.L70009F64: +/* 00AB64 70009F64 8CAD0004 */ lw $t5, 4($a1) +/* 00AB68 70009F68 00726021 */ addu $t4, $v1, $s2 +/* 00AB6C 70009F6C 01B27023 */ subu $t6, $t5, $s2 +/* 00AB70 70009F70 ACAC0000 */ sw $t4, ($a1) +/* 00AB74 70009F74 15C00002 */ bnez $t6, .L70009F80 +/* 00AB78 70009F78 ACAE0004 */ sw $t6, 4($a1) +/* 00AB7C 70009F7C ACA00000 */ sw $zero, ($a1) +.L70009F80: +/* 00AB80 70009F80 00601025 */ move $v0, $v1 +.L70009F84: +/* 00AB84 70009F84 8FBF002C */ lw $ra, 0x2c($sp) +/* 00AB88 70009F88 8FB00014 */ lw $s0, 0x14($sp) +/* 00AB8C 70009F8C 8FB10018 */ lw $s1, 0x18($sp) +/* 00AB90 70009F90 8FB2001C */ lw $s2, 0x1c($sp) +/* 00AB94 70009F94 8FB30020 */ lw $s3, 0x20($sp) +/* 00AB98 70009F98 8FB40024 */ lw $s4, 0x24($sp) +/* 00AB9C 70009F9C 8FB50028 */ lw $s5, 0x28($sp) +/* 00ABA0 70009FA0 03E00008 */ jr $ra +/* 00ABA4 70009FA4 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +#ifdef NONMATCHING +s32 mem_related_something_find_first_0(s32 arg0, u32 arg1) +{ + s32 temp_a1; + u32 temp_a2; + u32 temp_t4; + s32 phi_a1; + void *phi_v1; + + if (-1 == ptr_table_allocated_mem_blocks + 0x10) + { + return 0; + } + phi_a1 = ptr_table_allocated_mem_blocks + 0x10; + phi_v1 = &ptr_table_allocated_mem_blocks + 0x10; +loop_2: + if (arg0 != phi_a1) + { +block_4: + temp_a1 = phi_v1->unk8; + phi_a1 = temp_a1; + phi_v1 = phi_v1 + 8; + if (-1 != temp_a1) + { + goto loop_2; + } + return 0; + } + temp_a2 = phi_v1->unk4; + if (temp_a2 < arg1) + { + goto block_4; + } + temp_t4 = temp_a2 - arg1; + phi_v1->unk0 = (s32) (phi_a1 + arg1); + phi_v1->unk4 = temp_t4; + if (temp_t4 == 0) + { + phi_v1->unk0 = 0; + } + return arg0; +} +#else +GLOBAL_ASM( +.text +glabel mem_related_something_find_first_0 +/* 00ABA8 70009FA8 3C198006 */ lui $t9, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00ABAC 70009FAC 8F393C38 */ lw $t9, %lo(ptr_table_allocated_mem_blocks + 0x10)($t9) +/* 00ABB0 70009FB0 3C188006 */ lui $t8, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00ABB4 70009FB4 240AFFFF */ li $t2, -1 +/* 00ABB8 70009FB8 27183C38 */ addiu $t8, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $t8, $t8, 0x3c38 +/* 00ABBC 70009FBC 00A03825 */ move $a3, $a1 +/* 00ABC0 70009FC0 1159000C */ beq $t2, $t9, .L70009FF4 +/* 00ABC4 70009FC4 03001825 */ move $v1, $t8 +/* 00ABC8 70009FC8 8F050000 */ lw $a1, ($t8) +.L70009FCC: +/* 00ABCC 70009FCC 54850006 */ bnel $a0, $a1, .L70009FE8 +/* 00ABD0 70009FD0 8C650008 */ lw $a1, 8($v1) +/* 00ABD4 70009FD4 8C660004 */ lw $a2, 4($v1) +/* 00ABD8 70009FD8 00C7082B */ sltu $at, $a2, $a3 +/* 00ABDC 70009FDC 50200008 */ beql $at, $zero, .L7000A000 +/* 00ABE0 70009FE0 00A75821 */ addu $t3, $a1, $a3 +/* 00ABE4 70009FE4 8C650008 */ lw $a1, 8($v1) +.L70009FE8: +/* 00ABE8 70009FE8 24630008 */ addiu $v1, $v1, 8 +/* 00ABEC 70009FEC 1545FFF7 */ bne $t2, $a1, .L70009FCC +/* 00ABF0 70009FF0 00000000 */ nop +.L70009FF4: +/* 00ABF4 70009FF4 03E00008 */ jr $ra +/* 00ABF8 70009FF8 00001025 */ move $v0, $zero + +/* 00ABFC 70009FFC 00A75821 */ addu $t3, $a1, $a3 +.L7000A000: +/* 00AC00 7000A000 00C76023 */ subu $t4, $a2, $a3 +/* 00AC04 7000A004 AC6B0000 */ sw $t3, ($v1) +/* 00AC08 7000A008 15800002 */ bnez $t4, .L7000A014 +/* 00AC0C 7000A00C AC6C0004 */ sw $t4, 4($v1) +/* 00AC10 7000A010 AC600000 */ sw $zero, ($v1) +.L7000A014: +/* 00AC14 7000A014 00801025 */ move $v0, $a0 +/* 00AC18 7000A018 03E00008 */ jr $ra +/* 00AC1C 7000A01C 00000000 */ nop +) +#endif + + + + +void mem_related_model_room_buffers_0(u32 addr,u32 size) { + memaAllocRoomBuffer(addr, size); +} + + + + + +#ifdef NONMATCHING +void *mem_related_allocated_table_related(void) +{ + void *temp_v1; + void *phi_v1; + + phi_v1 = &ptr_table_allocated_mem_blocks; +loop_1: + temp_v1 = phi_v1 + 0x20; + phi_v1 = temp_v1; + if (temp_v1 != &ptr_table_allocated_mem_blocks + 0xFE0) + { + goto loop_1; + } + return &ptr_table_allocated_mem_blocks + 0xFE0; +} +#else +GLOBAL_ASM( +.text +glabel mem_related_allocated_table_related +/* 00AC40 7000A040 3C038006 */ lui $v1, %hi(ptr_table_allocated_mem_blocks) +/* 00AC44 7000A044 3C028006 */ lui $v0, %hi(ptr_table_allocated_mem_blocks + 0xFE0) +/* 00AC48 7000A048 24424C08 */ addiu $v0, %lo(ptr_table_allocated_mem_blocks + 0xFE0) # addiu $v0, $v0, 0x4c08 +/* 00AC4C 7000A04C 24633C28 */ addiu $v1, %lo(ptr_table_allocated_mem_blocks) # addiu $v1, $v1, 0x3c28 +/* 00AC50 7000A050 24630020 */ addiu $v1, $v1, 0x20 +.L7000A054: +/* 00AC54 7000A054 5462FFFF */ bnel $v1, $v0, .L7000A054 +/* 00AC58 7000A058 24630020 */ addiu $v1, $v1, 0x20 +/* 00AC5C 7000A05C 03E00008 */ jr $ra +/* 00AC60 7000A060 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +f32 mem_related_something_first_related(void) +{ + u32 temp_a1; + u32 temp_v0; + u32 phi_v1; + void *phi_a0; + u32 phi_v0; + u32 phi_v1_2; + u32 phi_v1_3; + u32 phi_v0_2; + + phi_v1 = 0U; + phi_a0 = &ptr_table_allocated_mem_blocks + 0x10; + phi_v0 = 0U; + phi_v1_2 = 0U; + phi_v0_2 = 0U; + if (-1 != ptr_table_allocated_mem_blocks + 0x10) + { +loop_1: + temp_a1 = phi_a0->unk4; + temp_v0 = phi_v0_2 + temp_a1; + phi_v1_3 = phi_v1; + if ((u32) phi_v1 < temp_a1) + { + phi_v1_3 = temp_a1; + } + phi_v1 = phi_v1_3; + phi_a0 = phi_a0 + 8; + phi_v0 = temp_v0; + phi_v1_2 = phi_v1_3; + phi_v0_2 = temp_v0; + if (-1 != phi_a0->unk8) + { + goto loop_1; + } + } + if (phi_v0 == 0) + { + return 0; + } + return (f32) (u32) (phi_v0 - phi_v1_2) / (f32) (u32) phi_v0; +} +#else +GLOBAL_ASM( +.text +glabel mem_related_something_first_related +/* 00AC64 7000A064 3C0E8006 */ lui $t6, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AC68 7000A068 8DCE3C38 */ lw $t6, %lo(ptr_table_allocated_mem_blocks + 0x10)($t6) +/* 00AC6C 7000A06C 2406FFFF */ li $a2, -1 +/* 00AC70 7000A070 3C048006 */ lui $a0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AC74 7000A074 00001025 */ move $v0, $zero +/* 00AC78 7000A078 00001825 */ move $v1, $zero +/* 00AC7C 7000A07C 10CE000A */ beq $a2, $t6, .L7000A0A8 +/* 00AC80 7000A080 24843C38 */ addiu $a0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $a0, $a0, 0x3c38 +/* 00AC84 7000A084 8C850004 */ lw $a1, 4($a0) +.L7000A088: +/* 00AC88 7000A088 0065082B */ sltu $at, $v1, $a1 +/* 00AC8C 7000A08C 10200002 */ beqz $at, .L7000A098 +/* 00AC90 7000A090 00451021 */ addu $v0, $v0, $a1 +/* 00AC94 7000A094 00A01825 */ move $v1, $a1 +.L7000A098: +/* 00AC98 7000A098 8C8F0008 */ lw $t7, 8($a0) +/* 00AC9C 7000A09C 24840008 */ addiu $a0, $a0, 8 +/* 00ACA0 7000A0A0 54CFFFF9 */ bnel $a2, $t7, .L7000A088 +/* 00ACA4 7000A0A4 8C850004 */ lw $a1, 4($a0) +.L7000A0A8: +/* 00ACA8 7000A0A8 14400004 */ bnez $v0, .L7000A0BC +/* 00ACAC 7000A0AC 0043C023 */ subu $t8, $v0, $v1 +/* 00ACB0 7000A0B0 44800000 */ mtc1 $zero, $f0 +/* 00ACB4 7000A0B4 03E00008 */ jr $ra +/* 00ACB8 7000A0B8 00000000 */ nop + +.L7000A0BC: +/* 00ACBC 7000A0BC 44982000 */ mtc1 $t8, $f4 +/* 00ACC0 7000A0C0 44825000 */ mtc1 $v0, $f10 +/* 00ACC4 7000A0C4 07010005 */ bgez $t8, .L7000A0DC +/* 00ACC8 7000A0C8 468021A0 */ cvt.s.w $f6, $f4 +/* 00ACCC 7000A0CC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 00ACD0 7000A0D0 44814000 */ mtc1 $at, $f8 +/* 00ACD4 7000A0D4 00000000 */ nop +/* 00ACD8 7000A0D8 46083180 */ add.s $f6, $f6, $f8 +.L7000A0DC: +/* 00ACDC 7000A0DC 04410005 */ bgez $v0, .L7000A0F4 +/* 00ACE0 7000A0E0 46805420 */ cvt.s.w $f16, $f10 +/* 00ACE4 7000A0E4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 00ACE8 7000A0E8 44819000 */ mtc1 $at, $f18 +/* 00ACEC 7000A0EC 00000000 */ nop +/* 00ACF0 7000A0F0 46128400 */ add.s $f16, $f16, $f18 +.L7000A0F4: +/* 00ACF4 7000A0F4 46103003 */ div.s $f0, $f6, $f16 +/* 00ACF8 7000A0F8 03E00008 */ jr $ra +/* 00ACFC 7000A0FC 00000000 */ nop +) +#endif + +const char aD_3[] = "%d "; +const char a___[] = "..."; +const char aD_5[] = "[%d]"; + +#ifdef NONMATCHING +void generate_list_alloc_mem(void) { + +} +#else +GLOBAL_ASM( +.text +glabel generate_list_alloc_mem +/* 00AD00 7000A100 27BDEF98 */ addiu $sp, $sp, -0x1068 +/* 00AD04 7000A104 3C048006 */ lui $a0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AD08 7000A108 8C843C38 */ lw $a0, %lo(ptr_table_allocated_mem_blocks + 0x10)($a0) +/* 00AD0C 7000A10C AFB5002C */ sw $s5, 0x2c($sp) +/* 00AD10 7000A110 AFB00018 */ sw $s0, 0x18($sp) +/* 00AD14 7000A114 2415FFFF */ li $s5, -1 +/* 00AD18 7000A118 AFB20020 */ sw $s2, 0x20($sp) +/* 00AD1C 7000A11C 3C108006 */ lui $s0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AD20 7000A120 AFBF003C */ sw $ra, 0x3c($sp) +/* 00AD24 7000A124 AFBE0038 */ sw $fp, 0x38($sp) +/* 00AD28 7000A128 AFB70034 */ sw $s7, 0x34($sp) +/* 00AD2C 7000A12C AFB60030 */ sw $s6, 0x30($sp) +/* 00AD30 7000A130 AFB40028 */ sw $s4, 0x28($sp) +/* 00AD34 7000A134 AFB30024 */ sw $s3, 0x24($sp) +/* 00AD38 7000A138 AFB1001C */ sw $s1, 0x1c($sp) +/* 00AD3C 7000A13C 3C038000 */ lui $v1, 0x8000 +/* 00AD40 7000A140 00009025 */ move $s2, $zero +/* 00AD44 7000A144 26103C38 */ addiu $s0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $s0, $s0, 0x3c38 +/* 00AD48 7000A148 12A40008 */ beq $s5, $a0, .L7000A16C +/* 00AD4C 7000A14C 00001025 */ move $v0, $zero +.L7000A150: +/* 00AD50 7000A150 8E0F0008 */ lw $t7, 8($s0) +/* 00AD54 7000A154 8E0E0004 */ lw $t6, 4($s0) +/* 00AD58 7000A158 26100008 */ addiu $s0, $s0, 8 +/* 00AD5C 7000A15C 16AFFFFC */ bne $s5, $t7, .L7000A150 +/* 00AD60 7000A160 004E1021 */ addu $v0, $v0, $t6 +/* 00AD64 7000A164 3C108006 */ lui $s0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AD68 7000A168 26103C38 */ addiu $s0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $s0, $s0, 0x3c38 +.L7000A16C: +/* 00AD6C 7000A16C 3C1E8003 */ lui $fp, %hi(a___) +/* 00AD70 7000A170 3C168003 */ lui $s6, %hi(aD_3) +/* 00AD74 7000A174 27B10054 */ addiu $s1, $sp, 0x54 +/* 00AD78 7000A178 26D691E0 */ addiu $s6, %lo(aD_3) # addiu $s6, $s6, -0x6e20 +/* 00AD7C 7000A17C 27DE91E4 */ addiu $fp, %lo(a___) # addiu $fp, $fp, -0x6e1c +/* 00AD80 7000A180 00009825 */ move $s3, $zero +/* 00AD84 7000A184 0000A025 */ move $s4, $zero +/* 00AD88 7000A188 241700C8 */ li $s7, 200 +.L7000A18C: +/* 00AD8C 7000A18C 12A4000D */ beq $s5, $a0, .L7000A1C4 +/* 00AD90 7000A190 00000000 */ nop +/* 00AD94 7000A194 8E020004 */ lw $v0, 4($s0) +.L7000A198: +/* 00AD98 7000A198 0043082B */ sltu $at, $v0, $v1 +/* 00AD9C 7000A19C 10200005 */ beqz $at, .L7000A1B4 +/* 00ADA0 7000A1A0 0262082B */ sltu $at, $s3, $v0 +/* 00ADA4 7000A1A4 50200004 */ beql $at, $zero, .L7000A1B8 +/* 00ADA8 7000A1A8 8E180008 */ lw $t8, 8($s0) +/* 00ADAC 7000A1AC 00409825 */ move $s3, $v0 +/* 00ADB0 7000A1B0 26940001 */ addiu $s4, $s4, 1 +.L7000A1B4: +/* 00ADB4 7000A1B4 8E180008 */ lw $t8, 8($s0) +.L7000A1B8: +/* 00ADB8 7000A1B8 26100008 */ addiu $s0, $s0, 8 +/* 00ADBC 7000A1BC 56B8FFF6 */ bnel $s5, $t8, .L7000A198 +/* 00ADC0 7000A1C0 8E020004 */ lw $v0, 4($s0) +.L7000A1C4: +/* 00ADC4 7000A1C4 12800022 */ beqz $s4, .L7000A250 +/* 00ADC8 7000A1C8 3C108006 */ lui $s0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00ADCC 7000A1CC 26103C38 */ addiu $s0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $s0, $s0, 0x3c38 +/* 00ADD0 7000A1D0 12A4001C */ beq $s5, $a0, .L7000A244 +/* 00ADD4 7000A1D4 0000A025 */ move $s4, $zero +/* 00ADD8 7000A1D8 8E020004 */ lw $v0, 4($s0) +.L7000A1DC: +/* 00ADDC 7000A1DC 2A4100C8 */ slti $at, $s2, 0xc8 +/* 00ADE0 7000A1E0 56620011 */ bnel $s3, $v0, .L7000A228 +/* 00ADE4 7000A1E4 8E080008 */ lw $t0, 8($s0) +/* 00ADE8 7000A1E8 10200008 */ beqz $at, .L7000A20C +/* 00ADEC 7000A1EC 02202025 */ move $a0, $s1 +/* 00ADF0 7000A1F0 24460200 */ addiu $a2, $v0, 0x200 +/* 00ADF4 7000A1F4 0006CA82 */ srl $t9, $a2, 0xa +/* 00ADF8 7000A1F8 03203025 */ move $a2, $t9 +/* 00ADFC 7000A1FC 0C002B25 */ jal sprintf +/* 00AE00 7000A200 02C02825 */ move $a1, $s6 +/* 00AE04 7000A204 10000006 */ b .L7000A220 +/* 00AE08 7000A208 02228821 */ addu $s1, $s1, $v0 +.L7000A20C: +/* 00AE0C 7000A20C 16570004 */ bne $s2, $s7, .L7000A220 +/* 00AE10 7000A210 02202025 */ move $a0, $s1 +/* 00AE14 7000A214 0C002B25 */ jal sprintf +/* 00AE18 7000A218 03C02825 */ move $a1, $fp +/* 00AE1C 7000A21C 02228821 */ addu $s1, $s1, $v0 +.L7000A220: +/* 00AE20 7000A220 26520001 */ addiu $s2, $s2, 1 +/* 00AE24 7000A224 8E080008 */ lw $t0, 8($s0) +.L7000A228: +/* 00AE28 7000A228 26100008 */ addiu $s0, $s0, 8 +/* 00AE2C 7000A22C 56A8FFEB */ bnel $s5, $t0, .L7000A1DC +/* 00AE30 7000A230 8E020004 */ lw $v0, 4($s0) +/* 00AE34 7000A234 3C108006 */ lui $s0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AE38 7000A238 3C048006 */ lui $a0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AE3C 7000A23C 8C843C38 */ lw $a0, %lo(ptr_table_allocated_mem_blocks + 0x10)($a0) +/* 00AE40 7000A240 26103C38 */ addiu $s0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $s0, $s0, 0x3c38 +.L7000A244: +/* 00AE44 7000A244 02601825 */ move $v1, $s3 +/* 00AE48 7000A248 1000FFD0 */ b .L7000A18C +/* 00AE4C 7000A24C 00009825 */ move $s3, $zero +.L7000A250: +/* 00AE50 7000A250 2A4100C9 */ slti $at, $s2, 0xc9 +/* 00AE54 7000A254 14200005 */ bnez $at, .L7000A26C +/* 00AE58 7000A258 02202025 */ move $a0, $s1 +/* 00AE5C 7000A25C 3C058003 */ lui $a1, %hi(aD_5) +/* 00AE60 7000A260 24A591E8 */ addiu $a1, %lo(aD_5) # addiu $a1, $a1, -0x6e18 +/* 00AE64 7000A264 0C002B25 */ jal sprintf +/* 00AE68 7000A268 02403025 */ move $a2, $s2 +.L7000A26C: +/* 00AE6C 7000A26C 8FBF003C */ lw $ra, 0x3c($sp) +/* 00AE70 7000A270 8FB00018 */ lw $s0, 0x18($sp) +/* 00AE74 7000A274 8FB1001C */ lw $s1, 0x1c($sp) +/* 00AE78 7000A278 8FB20020 */ lw $s2, 0x20($sp) +/* 00AE7C 7000A27C 8FB30024 */ lw $s3, 0x24($sp) +/* 00AE80 7000A280 8FB40028 */ lw $s4, 0x28($sp) +/* 00AE84 7000A284 8FB5002C */ lw $s5, 0x2c($sp) +/* 00AE88 7000A288 8FB60030 */ lw $s6, 0x30($sp) +/* 00AE8C 7000A28C 8FB70034 */ lw $s7, 0x34($sp) +/* 00AE90 7000A290 8FBE0038 */ lw $fp, 0x38($sp) +/* 00AE94 7000A294 03E00008 */ jr $ra +/* 00AE98 7000A298 27BD1068 */ addiu $sp, $sp, 0x1068 +) +#endif + + + + +void memaGenerateListsBeforeAfterMerge(void) +{ + s32 count; + + generate_list_alloc_mem(); + for (count = 0; count != 0x1fc; count +=1) + { + memaSortMergeEntries(&ptr_table_allocated_mem_blocks); + } + generate_list_alloc_mem(); +} + + + +#ifdef NONMATCHING +void mem_related_something_first_related_0(void *arg0) +{ + s32 temp_s1; + s32 phi_s1; + void *phi_s0; + + if (-1 != ptr_table_allocated_mem_blocks + 0x10) + { + phi_s1 = ptr_table_allocated_mem_blocks + 0x10; + phi_s0 = &ptr_table_allocated_mem_blocks + 0x10; +loop_2: + arg0(phi_s1 + phi_s0->unk4, phi_s0); + temp_s1 = phi_s0->unk8; + phi_s1 = temp_s1; + phi_s0 = phi_s0 + 8; + if (-1 != temp_s1) + { + goto loop_2; + } + } +} +#else +GLOBAL_ASM( +.text +glabel mem_related_something_first_related_0 +/* 00AEF8 7000A2F8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00AEFC 7000A2FC 3C0F8006 */ lui $t7, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AF00 7000A300 8DEF3C38 */ lw $t7, %lo(ptr_table_allocated_mem_blocks + 0x10)($t7) +/* 00AF04 7000A304 AFB30020 */ sw $s3, 0x20($sp) +/* 00AF08 7000A308 3C0E8006 */ lui $t6, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AF0C 7000A30C 2413FFFF */ li $s3, -1 +/* 00AF10 7000A310 AFB2001C */ sw $s2, 0x1c($sp) +/* 00AF14 7000A314 AFB00014 */ sw $s0, 0x14($sp) +/* 00AF18 7000A318 25CE3C38 */ addiu $t6, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $t6, $t6, 0x3c38 +/* 00AF1C 7000A31C 00809025 */ move $s2, $a0 +/* 00AF20 7000A320 AFBF0024 */ sw $ra, 0x24($sp) +/* 00AF24 7000A324 AFB10018 */ sw $s1, 0x18($sp) +/* 00AF28 7000A328 126F000A */ beq $s3, $t7, .L7000A354 +/* 00AF2C 7000A32C 01C08025 */ move $s0, $t6 +/* 00AF30 7000A330 8DD10000 */ lw $s1, ($t6) +/* 00AF34 7000A334 8E180004 */ lw $t8, 4($s0) +.L7000A338: +/* 00AF38 7000A338 02002825 */ move $a1, $s0 +/* 00AF3C 7000A33C 0240F809 */ jalr $s2 +/* 00AF40 7000A340 02382021 */ addu $a0, $s1, $t8 +/* 00AF44 7000A344 8E110008 */ lw $s1, 8($s0) +/* 00AF48 7000A348 26100008 */ addiu $s0, $s0, 8 +/* 00AF4C 7000A34C 5671FFFA */ bnel $s3, $s1, .L7000A338 +/* 00AF50 7000A350 8E180004 */ lw $t8, 4($s0) +.L7000A354: +/* 00AF54 7000A354 8FBF0024 */ lw $ra, 0x24($sp) +/* 00AF58 7000A358 8FB00014 */ lw $s0, 0x14($sp) +/* 00AF5C 7000A35C 8FB10018 */ lw $s1, 0x18($sp) +/* 00AF60 7000A360 8FB2001C */ lw $s2, 0x1c($sp) +/* 00AF64 7000A364 8FB30020 */ lw $s3, 0x20($sp) +/* 00AF68 7000A368 03E00008 */ jr $ra +/* 00AF6C 7000A36C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + + +#ifdef NONMATCHING +u32 mem_related_0(void) { + u32 sp18; + + // Node 0 + sp18 = 0U; + memaSortMergeAllEntries(); + if (-1 != ptr_table_allocated_mem_blocks + 0x10) + { + loop_1: + // Node 1 + if (sp18 < (u32) ptr_table_allocated_mem_blocks + 0x10.unk4) + { + // Node 2 + } + // Node 3 + if (-1 != ptr_table_allocated_mem_blocks + 0x10.unk8) + { + goto loop_1; + } + } + // Node 4 + if (sp18 != 0) + { + // Node 5 + return; + // (possible return value: sp18) + } + // Node 6 + return; + // (possible return value: 0U) +} + +#else +GLOBAL_ASM( +.text +glabel mem_related_0 +/* 00AF70 7000A370 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00AF74 7000A374 AFBF0014 */ sw $ra, 0x14($sp) +/* 00AF78 7000A378 0C0026C6 */ jal memaSortMergeAllEntries +/* 00AF7C 7000A37C AFA00018 */ sw $zero, 0x18($sp) +/* 00AF80 7000A380 3C0E8006 */ lui $t6, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AF84 7000A384 8DCE3C38 */ lw $t6, %lo(ptr_table_allocated_mem_blocks + 0x10)($t6) +/* 00AF88 7000A388 2405FFFF */ li $a1, -1 +/* 00AF8C 7000A38C 3C028006 */ lui $v0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AF90 7000A390 8FA40018 */ lw $a0, 0x18($sp) +/* 00AF94 7000A394 10AE000A */ beq $a1, $t6, .L7000A3C0 +/* 00AF98 7000A398 24423C38 */ addiu $v0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $v0, $v0, 0x3c38 +/* 00AF9C 7000A39C 8C430004 */ lw $v1, 4($v0) +.L7000A3A0: +/* 00AFA0 7000A3A0 0083082B */ sltu $at, $a0, $v1 +/* 00AFA4 7000A3A4 50200003 */ beql $at, $zero, .L7000A3B4 +/* 00AFA8 7000A3A8 8C4F0008 */ lw $t7, 8($v0) +/* 00AFAC 7000A3AC 00602025 */ move $a0, $v1 +/* 00AFB0 7000A3B0 8C4F0008 */ lw $t7, 8($v0) +.L7000A3B4: +/* 00AFB4 7000A3B4 24420008 */ addiu $v0, $v0, 8 +/* 00AFB8 7000A3B8 54AFFFF9 */ bnel $a1, $t7, .L7000A3A0 +/* 00AFBC 7000A3BC 8C430004 */ lw $v1, 4($v0) +.L7000A3C0: +/* 00AFC0 7000A3C0 10800003 */ beqz $a0, .L7000A3D0 +/* 00AFC4 7000A3C4 8FBF0014 */ lw $ra, 0x14($sp) +/* 00AFC8 7000A3C8 10000002 */ b .L7000A3D4 +/* 00AFCC 7000A3CC 00801025 */ move $v0, $a0 +.L7000A3D0: +/* 00AFD0 7000A3D0 00001025 */ move $v0, $zero +.L7000A3D4: +/* 00AFD4 7000A3D4 03E00008 */ jr $ra +/* 00AFD8 7000A3D8 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + +#ifdef NONMATCHING +//close C, regalloc +u32 mem_related_1(u32 addr,u32 length,u32 maxsize) +{ + if (length < maxsize) { + if (mem_related_something_find_first_0((addr + length), (maxsize - length)) == 0) { + return 0; + } + else { + return 1; + } + } + else { + if (maxsize < length) { + mem_related_model_room_buffers_0((addr + maxsize), (length - maxsize)); + } + return 1; + } +} +#else +GLOBAL_ASM( +.text +glabel mem_related_1 +/* 00AFDC 7000A3DC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00AFE0 7000A3E0 00A6082B */ sltu $at, $a1, $a2 +/* 00AFE4 7000A3E4 AFBF0014 */ sw $ra, 0x14($sp) +/* 00AFE8 7000A3E8 AFA40018 */ sw $a0, 0x18($sp) +/* 00AFEC 7000A3EC 1020000A */ beqz $at, .L7000A418 +/* 00AFF0 7000A3F0 00A03825 */ move $a3, $a1 +/* 00AFF4 7000A3F4 00852021 */ addu $a0, $a0, $a1 +/* 00AFF8 7000A3F8 0C0027EA */ jal mem_related_something_find_first_0 +/* 00AFFC 7000A3FC 00C52823 */ subu $a1, $a2, $a1 +/* 00B000 7000A400 14400003 */ bnez $v0, .L7000A410 +/* 00B004 7000A404 00000000 */ nop +/* 00B008 7000A408 1000000A */ b .L7000A434 +/* 00B00C 7000A40C 00001025 */ move $v0, $zero +.L7000A410: +/* 00B010 7000A410 10000008 */ b .L7000A434 +/* 00B014 7000A414 24020001 */ li $v0, 1 +.L7000A418: +/* 00B018 7000A418 00C7082B */ sltu $at, $a2, $a3 +/* 00B01C 7000A41C 10200004 */ beqz $at, .L7000A430 +/* 00B020 7000A420 8FA90018 */ lw $t1, 0x18($sp) +/* 00B024 7000A424 01262021 */ addu $a0, $t1, $a2 +/* 00B028 7000A428 0C002808 */ jal mem_related_model_room_buffers_0 +/* 00B02C 7000A42C 00E62823 */ subu $a1, $a3, $a2 +.L7000A430: +/* 00B030 7000A430 24020001 */ li $v0, 1 +.L7000A434: +/* 00B034 7000A434 8FBF0014 */ lw $ra, 0x14($sp) +/* 00B038 7000A438 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00B03C 7000A43C 03E00008 */ jr $ra +/* 00B040 7000A440 00000000 */ nop +) +#endif diff --git a/src/mema.h b/src/mema.h new file mode 100644 index 0000000..5c2cb39 --- /dev/null +++ b/src/mema.h @@ -0,0 +1,39 @@ +#ifndef _MEMA_H_ +#define _MEMA_H_ + +#include "ultra64.h" + + +typedef struct s_mem_alloc_entry { + s32 addr; + s32 size; +} s_mem_alloc_entry; + +typedef struct s_mem_alloc_table { + struct s_mem_alloc_entry entries[0x200]; +} s_mem_alloc_table; + +extern struct s_mem_alloc_table ptr_table_allocated_mem_blocks; + +void memaSwap(s_mem_alloc_entry *a,s_mem_alloc_entry *b); +void memaMerge(s_mem_alloc_entry *a, s_mem_alloc_entry *b); +u32 memaSortMergeEntries(struct s_mem_alloc_table *param_1); +void memaSortMergeAllEntries(void); +s_mem_alloc_entry * memaFindOpening(s_mem_alloc_table *param_1); +void memaAllocRoomBuffer(u32 addr,u32 size); +void memaInitDebugNoticeList(void); +void mempInitMallocTable(void *ptr_allocmem,u32 size); +void mem_related_calls_sort_merge_entries(void); +s32 mem_related_something_find_first(u32 arg0); +s32 mem_related_something_find_first_0(s32 arg0, u32 arg1); +void mem_related_model_room_buffers_0(u32 addr,u32 size) ; +void mem_related_allocated_table_related(void); +f32 mem_related_something_first_related(void); +void generate_list_alloc_mem(void); +void memaGenerateListsBeforeAfterMerge(void); +void mem_related_something_first_related_0(void *arg0); +u32 mem_related_0(void); +u32 mem_related_1(u32 addr,u32 length,u32 maxsize); + + +#endif diff --git a/src/memp.c b/src/memp.c new file mode 100644 index 0000000..ff9ee1e --- /dev/null +++ b/src/memp.c @@ -0,0 +1,770 @@ +#include "ultra64.h" +#include "memp.h" +#include "game/lvl_text.h" +/** + * @file memp.c + * This file contains code for memp. + */ + +//bss +struct s_mempBANK memory_bank_ptrs[0x7]; + +//data +void *ptr_memp_c_debug_debug_notice_list = 0; +s32 needmemallocation = 0; +s32 D_80024408 = 0; +s32 D_8002440C = 0; + +struct s_mempMVALS sdefaultmvals = { + 0, //D_80024410 + 2, //D_80024414 + 0, //mf + 4, //D_8002441C + 0x52, //ml + 6, //D_80024424 + 0xF, //me + 0, //D_8002442C + 0 //D_80024430 +}; + +struct s_mempMEMSTARTS sdefaultmemstarts = { + 0, //bank1start + 0, //bank2start + 0, //bank3start + 0, //bank4start + 0, //bank5start + 0, //bank6start + 0 //bank7start +}; + + + + + + +/** + * 9F80 70009380 + * V0=p->debug.notice.list entry for memp_c_debug + */ +void mempInitDebugNoticeList(void) +{ + debCheckAddDebugNoticeListEntry(&ptr_memp_c_debug_debug_notice_list, "memp_c_debug"); //should be "memp_c_debug" +} + +/** + * 9FAC 700093AC + * initialize memory allocation table and set font and text bank sizes + * accepts: A0=p->buffer, A1=size + * uses "-mf", "-ml", "-me" strings + */ +#ifdef NONMATCHING// +void mempCheckMemflagTokens(int bstart,int bsize) +{ + u32 iVar1; + u32 local_20; + u32 mfval; + u32 local_18; + u32 mlval; + u32 local_10; + u32 meval; + u32 local_8; + u32 local_4; + + memory_bank_ptrs[0].bankend = bstart + bsize; + local_20 = sdefaultmvals.D_80024414; + mfval = sdefaultmvals.mf; + mlval = sdefaultmvals.ml; + local_18 = sdefaultmvals.D_8002441C; + local_10 = sdefaultmvals.D_80024424; + meval = sdefaultmvals.me; + local_4 = sdefaultmvals.D_80024430; + local_8 = sdefaultmvals.D_8002442C; + memory_bank_ptrs[0].bankstart = bstart; + + if (check_token(1,"-mf") != 0) { + mfval = strtol(check_token(1,"-mf"),NULL,0); + } + + if (check_token(1,"-ml") != 0) { + mlval = strtol(check_token(1,"-ml"),NULL,0); + } + + if (check_token(1,"-me") != 0) { + meval = strtol(check_token(1,"-me"),NULL,0); + } + + if (meval == 0) { + mfval = 0; + iVar1 = 0x128; + if (j_text_trigger != 0) { + iVar1 = 0x134; + } + meval = iVar1 * 0x400; + mlval = bsize + iVar1 * -0x400; + } + mempSetBankStarts(&local_20); +} +#else +GLOBAL_ASM( +.rdata +glabel aMf +.word 0x2d6d6600 /*"-mf"*/ +glabel aMf_0 +.word 0x2d6d6600 /*"-mf"*/ +glabel aMl +.word 0x2d6d6c00 /*"-ml"*/ +glabel aMl_0 +.word 0x2d6d6c00 /*"-ml"*/ +glabel aMe +.word 0x2d6d6500 /*"-me"*/ +glabel aMe_0 +.word 0x2d6d6500 /*"-me"*/ + +.text +glabel mempCheckMemflagTokens +/* 009FAC 700093AC 3C028006 */ lui $v0, %hi(memory_bank_ptrs) +/* 009FB0 700093B0 24423BB0 */ addiu $v0, %lo(memory_bank_ptrs) # addiu $v0, $v0, 0x3bb0 +/* 009FB4 700093B4 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 009FB8 700093B8 00857821 */ addu $t7, $a0, $a1 +/* 009FBC 700093BC 3C198002 */ lui $t9, %hi(sdefaultmvals +0x4) +/* 009FC0 700093C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 009FC4 700093C4 AFA50044 */ sw $a1, 0x44($sp) +/* 009FC8 700093C8 AC440000 */ sw $a0, ($v0) +/* 009FCC 700093CC AC4F0008 */ sw $t7, 8($v0) +/* 009FD0 700093D0 27394414 */ addiu $t9, %lo(sdefaultmvals +0x4) # addiu $t9, $t9, 0x4414 +/* 009FD4 700093D4 8F210000 */ lw $at, ($t9) +/* 009FD8 700093D8 8F290004 */ lw $t1, 4($t9) +/* 009FDC 700093DC 27B80020 */ addiu $t8, $sp, 0x20 +/* 009FE0 700093E0 AF010000 */ sw $at, ($t8) +/* 009FE4 700093E4 AF090004 */ sw $t1, 4($t8) +/* 009FE8 700093E8 8F29000C */ lw $t1, 0xc($t9) +/* 009FEC 700093EC 8F210008 */ lw $at, 8($t9) +/* 009FF0 700093F0 3C058003 */ lui $a1, %hi(aMf) +/* 009FF4 700093F4 AF09000C */ sw $t1, 0xc($t8) +/* 009FF8 700093F8 AF010008 */ sw $at, 8($t8) +/* 009FFC 700093FC 8F210010 */ lw $at, 0x10($t9) +/* 00A000 70009400 8F290014 */ lw $t1, 0x14($t9) +/* 00A004 70009404 24A591B0 */ addiu $a1, %lo(aMf) # addiu $a1, $a1, -0x6e50 +/* 00A008 70009408 AF010010 */ sw $at, 0x10($t8) +/* 00A00C 7000940C AF090014 */ sw $t1, 0x14($t8) +/* 00A010 70009410 8F29001C */ lw $t1, 0x1c($t9) +/* 00A014 70009414 8F210018 */ lw $at, 0x18($t9) +/* 00A018 70009418 24040001 */ li $a0, 1 +/* 00A01C 7000941C AF09001C */ sw $t1, 0x1c($t8) +/* 00A020 70009420 0C0029A8 */ jal check_token +/* 00A024 70009424 AF010018 */ sw $at, 0x18($t8) +/* 00A028 70009428 10400009 */ beqz $v0, .L70009450 +/* 00A02C 7000942C 24040001 */ li $a0, 1 +/* 00A030 70009430 3C058003 */ lui $a1, %hi(aMf_0) +/* 00A034 70009434 0C0029A8 */ jal check_token +/* 00A038 70009438 24A591B4 */ addiu $a1, %lo(aMf_0) # addiu $a1, $a1, -0x6e4c +/* 00A03C 7000943C 00402025 */ move $a0, $v0 +/* 00A040 70009440 00002825 */ move $a1, $zero +/* 00A044 70009444 0C002A78 */ jal strtol +/* 00A048 70009448 00003025 */ move $a2, $zero +/* 00A04C 7000944C AFA20024 */ sw $v0, 0x24($sp) +.L70009450: +/* 00A050 70009450 3C058003 */ lui $a1, %hi(aMl) +/* 00A054 70009454 24A591B8 */ addiu $a1, %lo(aMl) # addiu $a1, $a1, -0x6e48 +/* 00A058 70009458 0C0029A8 */ jal check_token +/* 00A05C 7000945C 24040001 */ li $a0, 1 +/* 00A060 70009460 10400009 */ beqz $v0, .L70009488 +/* 00A064 70009464 24040001 */ li $a0, 1 +/* 00A068 70009468 3C058003 */ lui $a1, %hi(aMl_0) +/* 00A06C 7000946C 0C0029A8 */ jal check_token +/* 00A070 70009470 24A591BC */ addiu $a1, %lo(aMl_0) # addiu $a1, $a1, -0x6e44 +/* 00A074 70009474 00402025 */ move $a0, $v0 +/* 00A078 70009478 00002825 */ move $a1, $zero +/* 00A07C 7000947C 0C002A78 */ jal strtol +/* 00A080 70009480 00003025 */ move $a2, $zero +/* 00A084 70009484 AFA2002C */ sw $v0, 0x2c($sp) +.L70009488: +/* 00A088 70009488 3C058003 */ lui $a1, %hi(aMe) +/* 00A08C 7000948C 24A591C0 */ addiu $a1, %lo(aMe) # addiu $a1, $a1, -0x6e40 +/* 00A090 70009490 0C0029A8 */ jal check_token +/* 00A094 70009494 24040001 */ li $a0, 1 +/* 00A098 70009498 10400009 */ beqz $v0, .L700094C0 +/* 00A09C 7000949C 24040001 */ li $a0, 1 +/* 00A0A0 700094A0 3C058003 */ lui $a1, %hi(aMe_0) +/* 00A0A4 700094A4 0C0029A8 */ jal check_token +/* 00A0A8 700094A8 24A591C4 */ addiu $a1, %lo(aMe_0) # addiu $a1, $a1, -0x6e3c +/* 00A0AC 700094AC 00402025 */ move $a0, $v0 +/* 00A0B0 700094B0 00002825 */ move $a1, $zero +/* 00A0B4 700094B4 0C002A78 */ jal strtol +/* 00A0B8 700094B8 00003025 */ move $a2, $zero +/* 00A0BC 700094BC AFA20034 */ sw $v0, 0x34($sp) +.L700094C0: +/* 00A0C0 700094C0 8FA30034 */ lw $v1, 0x34($sp) +/* 00A0C4 700094C4 3C0A8005 */ lui $t2, %hi(j_text_trigger) +/* 00A0C8 700094C8 1460000C */ bnez $v1, .L700094FC +/* 00A0CC 700094CC 00000000 */ nop +/* 00A0D0 700094D0 8D4A84D0 */ lw $t2, %lo(j_text_trigger)($t2) +/* 00A0D4 700094D4 AFA00024 */ sw $zero, 0x24($sp) +/* 00A0D8 700094D8 24020128 */ li $v0, 296 +/* 00A0DC 700094DC 11400003 */ beqz $t2, .L700094EC +/* 00A0E0 700094E0 8FAB0044 */ lw $t3, 0x44($sp) +/* 00A0E4 700094E4 10000001 */ b .L700094EC +/* 00A0E8 700094E8 24020134 */ li $v0, 308 +.L700094EC: +/* 00A0EC 700094EC 00021A80 */ sll $v1, $v0, 0xa +/* 00A0F0 700094F0 01636023 */ subu $t4, $t3, $v1 +/* 00A0F4 700094F4 AFAC002C */ sw $t4, 0x2c($sp) +/* 00A0F8 700094F8 AFA30034 */ sw $v1, 0x34($sp) +.L700094FC: +/* 00A0FC 700094FC 0C002545 */ jal mempSetBankStarts +/* 00A100 70009500 27A40020 */ addiu $a0, $sp, 0x20 +/* 00A104 70009504 8FBF0014 */ lw $ra, 0x14($sp) +/* 00A108 70009508 27BD0040 */ addiu $sp, $sp, 0x40 +/* 00A10C 7000950C 03E00008 */ jr $ra +/* 00A110 70009510 00000000 */ nop +) +#endif + + + + + +/** + * A114 70009514 + * initialize allocations using table A0 + * accepts: A0=p->allocation sizes + */ +#ifdef NONMATCHING +void mempSetBankStarts(int *banks) +{ + int *piVar1; + int right_l; + longlong lVar2; + longlong lVar3; + int iVar4; + int iVar5; + s_memstarts *psVar6; + s_memstarts *psVar7; + s_memstarts bankstarts; + undefined auStack4 [4]; + + bankstarts.bank1start = sdefaultmemstarts.bank1start; + bankstarts.bank2start = sdefaultmemstarts.bank2start; + psVar6 = &bankstarts; + bankstarts.bank3start = sdefaultmemstarts.bank3start; + bankstarts.bank4start = sdefaultmemstarts.bank4start; + bankstarts.bank5start = sdefaultmemstarts.bank5start; + bankstarts.bank6start = sdefaultmemstarts.bank6start; + bankstarts.bank7start = sdefaultmemstarts.bank7start; + right_l = *banks; + iVar4 = banks[1]; + while( true ) { + (&bankstarts.bank1start)[right_l] = iVar4; + right_l = banks[2]; + if (right_l == 0) break; + iVar4 = banks[3]; + banks = banks + 2; + } + right_l = bankstarts.bank1start; + do { + piVar1 = &psVar6->bank2start; + psVar6 = (s_memstarts *)&psVar6->bank2start; + right_l = *piVar1 + right_l; + psVar6->bank1start = right_l; + iVar4 = bankstarts.bank7start; + } while (psVar6 < (s_memstarts *)&bankstarts.bank7start); + right_l = memory_bank_ptrs[0].bankend - memory_bank_ptrs[0].bankstart; + lVar3 = (longlong)right_l; + iVar5 = bankstarts.bank7start >> 0x1f; + psVar6 = &bankstarts; + do { + lVar2 = __ll_mul((int)psVar6->bank1start >> 0x1f,psVar6->bank1start,right_l >> 0x1f,right_l) + ; + __ll_div((int)lVar2,(int)lVar3,iVar5,iVar4); + psVar7 = (s_memstarts *)&psVar6->bank2start; + psVar6->bank1start = (int)lVar3; + psVar6 = psVar7; + } while (psVar7 < (s_memstarts *)auStack4); + psVar6 = &bankstarts; + do { + psVar7 = (s_memstarts *)&psVar6->bank2start; + psVar6->bank1start = (psVar6->bank1start | 0xf) ^ 0xf; + psVar6 = psVar7; + } while (psVar7 < (s_memstarts *)auStack4); + memory_bank_ptrs[1].bankstart = bankstarts.bank1start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[1].nextentry = 0; + memory_bank_ptrs[1].bankend = bankstarts.bank2start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[2].bankstart = bankstarts.bank2start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[2].nextentry = 0; + memory_bank_ptrs[2].bankend = bankstarts.bank3start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[3].bankstart = bankstarts.bank3start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[3].nextentry = 0; + memory_bank_ptrs[3].bankend = bankstarts.bank4start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[4].bankstart = bankstarts.bank4start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[4].nextentry = 0; + memory_bank_ptrs[4].bankend = bankstarts.bank5start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[5].bankstart = bankstarts.bank5start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[5].nextentry = 0; + memory_bank_ptrs[5].bankend = bankstarts.bank6start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[6].bankstart = bankstarts.bank6start + memory_bank_ptrs[0].bankstart; + memory_bank_ptrs[6].nextentry = 0; + memory_bank_ptrs[6].bankend = bankstarts.bank7start + memory_bank_ptrs[0].bankstart; +} +#else +GLOBAL_ASM( +.text +glabel mempSetBankStarts +/* 00A114 70009514 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 00A118 70009518 3C0E8002 */ lui $t6, %hi(sdefaultmemstarts) +/* 00A11C 7000951C AFBF0024 */ sw $ra, 0x24($sp) +/* 00A120 70009520 AFB30020 */ sw $s3, 0x20($sp) +/* 00A124 70009524 AFB2001C */ sw $s2, 0x1c($sp) +/* 00A128 70009528 AFB10018 */ sw $s1, 0x18($sp) +/* 00A12C 7000952C AFB00014 */ sw $s0, 0x14($sp) +/* 00A130 70009530 25CE4434 */ addiu $t6, %lo(sdefaultmemstarts) # addiu $t6, $t6, 0x4434 +/* 00A134 70009534 8DC10000 */ lw $at, ($t6) +/* 00A138 70009538 27B20060 */ addiu $s2, $sp, 0x60 +/* 00A13C 7000953C 3C138006 */ lui $s3, %hi(memory_bank_ptrs) +/* 00A140 70009540 AE410000 */ sw $at, ($s2) +/* 00A144 70009544 8DD90004 */ lw $t9, 4($t6) +/* 00A148 70009548 00801025 */ move $v0, $a0 +/* 00A14C 7000954C 26733BB0 */ addiu $s3, %lo(memory_bank_ptrs) # addiu $s3, $s3, 0x3bb0 +/* 00A150 70009550 AE590004 */ sw $t9, 4($s2) +/* 00A154 70009554 8DC10008 */ lw $at, 8($t6) +/* 00A158 70009558 27B00060 */ addiu $s0, $sp, 0x60 +/* 00A15C 7000955C 27B1007C */ addiu $s1, $sp, 0x7c +/* 00A160 70009560 AE410008 */ sw $at, 8($s2) +/* 00A164 70009564 8DD9000C */ lw $t9, 0xc($t6) +/* 00A168 70009568 AE59000C */ sw $t9, 0xc($s2) +/* 00A16C 7000956C 8DC10010 */ lw $at, 0x10($t6) +/* 00A170 70009570 AE410010 */ sw $at, 0x10($s2) +/* 00A174 70009574 8DD90014 */ lw $t9, 0x14($t6) +/* 00A178 70009578 AE590014 */ sw $t9, 0x14($s2) +/* 00A17C 7000957C 8DC10018 */ lw $at, 0x18($t6) +/* 00A180 70009580 AE410018 */ sw $at, 0x18($s2) +/* 00A184 70009584 8C830000 */ lw $v1, ($a0) +/* 00A188 70009588 8C480004 */ lw $t0, 4($v0) +.L7000958C: +/* 00A18C 7000958C 00034880 */ sll $t1, $v1, 2 +/* 00A190 70009590 02495021 */ addu $t2, $s2, $t1 +/* 00A194 70009594 AD480000 */ sw $t0, ($t2) +/* 00A198 70009598 8C430008 */ lw $v1, 8($v0) +/* 00A19C 7000959C 24420008 */ addiu $v0, $v0, 8 +/* 00A1A0 700095A0 5460FFFA */ bnezl $v1, .L7000958C +/* 00A1A4 700095A4 8C480004 */ lw $t0, 4($v0) +/* 00A1A8 700095A8 8E030000 */ lw $v1, ($s0) +/* 00A1AC 700095AC 27A40078 */ addiu $a0, $sp, 0x78 +.L700095B0: +/* 00A1B0 700095B0 8E0C0004 */ lw $t4, 4($s0) +/* 00A1B4 700095B4 26100004 */ addiu $s0, $s0, 4 +/* 00A1B8 700095B8 0204082B */ sltu $at, $s0, $a0 +/* 00A1BC 700095BC 01831021 */ addu $v0, $t4, $v1 +/* 00A1C0 700095C0 00401825 */ move $v1, $v0 +/* 00A1C4 700095C4 1420FFFA */ bnez $at, .L700095B0 +/* 00A1C8 700095C8 AE020000 */ sw $v0, ($s0) +/* 00A1CC 700095CC 8E6D0008 */ lw $t5, 8($s3) +/* 00A1D0 700095D0 8E780000 */ lw $t8, ($s3) +/* 00A1D4 700095D4 8FA20078 */ lw $v0, 0x78($sp) +/* 00A1D8 700095D8 27B00060 */ addiu $s0, $sp, 0x60 +/* 00A1DC 700095DC 01B81823 */ subu $v1, $t5, $t8 +/* 00A1E0 700095E0 000377C3 */ sra $t6, $v1, 0x1f +/* 00A1E4 700095E4 000247C3 */ sra $t0, $v0, 0x1f +/* 00A1E8 700095E8 AFA80030 */ sw $t0, 0x30($sp) +/* 00A1EC 700095EC AFAE0038 */ sw $t6, 0x38($sp) +/* 00A1F0 700095F0 AFA3003C */ sw $v1, 0x3c($sp) +/* 00A1F4 700095F4 AFA20034 */ sw $v0, 0x34($sp) +.L700095F8: +/* 00A1F8 700095F8 8E050000 */ lw $a1, ($s0) +/* 00A1FC 700095FC 8FA60038 */ lw $a2, 0x38($sp) +/* 00A200 70009600 8FA7003C */ lw $a3, 0x3c($sp) +/* 00A204 70009604 0C003B6A */ jal __ll_mul +/* 00A208 70009608 000527C3 */ sra $a0, $a1, 0x1f +/* 00A20C 7000960C 00402025 */ move $a0, $v0 +/* 00A210 70009610 00602825 */ move $a1, $v1 +/* 00A214 70009614 8FA60030 */ lw $a2, 0x30($sp) +/* 00A218 70009618 0C003B53 */ jal __ll_div +/* 00A21C 7000961C 8FA70034 */ lw $a3, 0x34($sp) +/* 00A220 70009620 26100004 */ addiu $s0, $s0, 4 +/* 00A224 70009624 0211082B */ sltu $at, $s0, $s1 +/* 00A228 70009628 1420FFF3 */ bnez $at, .L700095F8 +/* 00A22C 7000962C AE03FFFC */ sw $v1, -4($s0) +/* 00A230 70009630 27B00060 */ addiu $s0, $sp, 0x60 +/* 00A234 70009634 27A2007C */ addiu $v0, $sp, 0x7c +.L70009638: +/* 00A238 70009638 8E0B0000 */ lw $t3, ($s0) +/* 00A23C 7000963C 26100004 */ addiu $s0, $s0, 4 +/* 00A240 70009640 0202082B */ sltu $at, $s0, $v0 +/* 00A244 70009644 356C000F */ ori $t4, $t3, 0xf +/* 00A248 70009648 398D000F */ xori $t5, $t4, 0xf +/* 00A24C 7000964C 1420FFFA */ bnez $at, .L70009638 +/* 00A250 70009650 AE0DFFFC */ sw $t5, -4($s0) +/* 00A254 70009654 8E660000 */ lw $a2, ($s3) +/* 00A258 70009658 8FB80060 */ lw $t8, 0x60($sp) +/* 00A25C 7000965C 8FAF0064 */ lw $t7, 0x64($sp) +/* 00A260 70009660 3C018006 */ lui $at, %hi(memory_bank_ptrs+0x14) +/* 00A264 70009664 03067021 */ addu $t6, $t8, $a2 +/* 00A268 70009668 AC2E3BC0 */ sw $t6, %lo(memory_bank_ptrs+0x10)($at) +/* 00A26C 7000966C AC203BC4 */ sw $zero, %lo(memory_bank_ptrs+0x14)($at) +/* 00A270 70009670 3C018006 */ lui $at, %hi(memory_bank_ptrs+0x18) +/* 00A274 70009674 01E61021 */ addu $v0, $t7, $a2 +/* 00A278 70009678 AC223BC8 */ sw $v0, %lo(memory_bank_ptrs+0x18)($at) +/* 00A27C 7000967C 8FA80068 */ lw $t0, 0x68($sp) +/* 00A280 70009680 3C018006 */ lui $at, %hi(memory_bank_ptrs+0x24) +/* 00A284 70009684 AC223BD0 */ sw $v0, %lo(memory_bank_ptrs+0x20)($at) +/* 00A288 70009688 AC203BD4 */ sw $zero, %lo(memory_bank_ptrs+0x24)($at) +/* 00A28C 7000968C 3C018006 */ lui $at, %hi(memory_bank_ptrs+0x28) +/* 00A290 70009690 01064821 */ addu $t1, $t0, $a2 +/* 00A294 70009694 AC293BD8 */ sw $t1, %lo(memory_bank_ptrs+0x28)($at) +/* 00A298 70009698 24070002 */ li $a3, 2 +/* 00A29C 7000969C 0007C900 */ sll $t9, $a3, 4 +/* 00A2A0 700096A0 02791021 */ addu $v0, $s3, $t9 +/* 00A2A4 700096A4 00075080 */ sll $t2, $a3, 2 +/* 00A2A8 700096A8 024A8021 */ addu $s0, $s2, $t2 +/* 00A2AC 700096AC 8E180008 */ lw $t8, 8($s0) +/* 00A2B0 700096B0 8E0E000C */ lw $t6, 0xc($s0) +/* 00A2B4 700096B4 8E0D0004 */ lw $t5, 4($s0) +/* 00A2B8 700096B8 8E0F0010 */ lw $t7, 0x10($s0) +/* 00A2BC 700096BC 8E0B0000 */ lw $t3, ($s0) +/* 00A2C0 700096C0 03062021 */ addu $a0, $t8, $a2 +/* 00A2C4 700096C4 01C62821 */ addu $a1, $t6, $a2 +/* 00A2C8 700096C8 01A61821 */ addu $v1, $t5, $a2 +/* 00A2CC 700096CC 01E64021 */ addu $t0, $t7, $a2 +/* 00A2D0 700096D0 01666021 */ addu $t4, $t3, $a2 +/* 00A2D4 700096D4 AC480048 */ sw $t0, 0x48($v0) +/* 00A2D8 700096D8 AC430020 */ sw $v1, 0x20($v0) +/* 00A2DC 700096DC AC450038 */ sw $a1, 0x38($v0) +/* 00A2E0 700096E0 AC450040 */ sw $a1, 0x40($v0) +/* 00A2E4 700096E4 AC440028 */ sw $a0, 0x28($v0) +/* 00A2E8 700096E8 AC440030 */ sw $a0, 0x30($v0) +/* 00A2EC 700096EC AC400024 */ sw $zero, 0x24($v0) +/* 00A2F0 700096F0 AC400034 */ sw $zero, 0x34($v0) +/* 00A2F4 700096F4 AC400044 */ sw $zero, 0x44($v0) +/* 00A2F8 700096F8 AC4C0010 */ sw $t4, 0x10($v0) +/* 00A2FC 700096FC AC400014 */ sw $zero, 0x14($v0) +/* 00A300 70009700 AC430018 */ sw $v1, 0x18($v0) +/* 00A304 70009704 8FBF0024 */ lw $ra, 0x24($sp) +/* 00A308 70009708 8FB30020 */ lw $s3, 0x20($sp) +/* 00A30C 7000970C 8FB2001C */ lw $s2, 0x1c($sp) +/* 00A310 70009710 8FB10018 */ lw $s1, 0x18($sp) +/* 00A314 70009714 8FB00014 */ lw $s0, 0x14($sp) +/* 00A318 70009718 03E00008 */ jr $ra +/* 00A31C 7000971C 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + +/** + * A320 70009720 + * V0=p->A0 bytes of memory allocated in bank A1; fries: AT,V0,V1,A0,A1,A2,A3,T0,T2,T5,T6,T7,T8,T9 + * accepts: A0=size, A1=bank + */ +#ifdef NONMATCHING +u32 mempAllocBytesInBank(u32 bytes,u8 bank) +{ + uint next; + uint end; + int domemalloc; + int bankmask; + + bankmask = (bank & 0xff) << 4; + while( true ) { + domemalloc = needmemallocation; + next = *(uint *)((int)&memory_bank_ptrs[0].nextentry + bankmask); + if (next == 0) { + do { + /* WARNING: Do nothing block with infinite loop */ + } while( true ); + } + end = *(uint *)((int)&memory_bank_ptrs[0].bankend + bankmask); + if (end < next) { + nulled_mempLoopAllMemBanks(); + do { + /* WARNING: Do nothing block with infinite loop */ + } while( true ); + } + if (next + bytes <= end) { + *(int *)((int)&memory_bank_ptrs[0].nextentry + bankmask) = next + bytes; + *(uint *)((int)&memory_bank_ptrs[0].data2 + bankmask) = next; + return next; + } + if ((uint)memory_bank_ptrs[6].bankend < memory_bank_ptrs[6].nextentry + bytes) break; + needmemallocation = 1; + if (domemalloc == 0) { + bankmask = 0x60; + } + else { + bankmask = 0x60; + } + } + nulled_mempLoopAllMemBanks(); + do { + /* WARNING: Do nothing block with infinite loop */ + } while( true ); +} +#else +GLOBAL_ASM( +.text +glabel mempAllocBytesInBank +/* 00A320 70009720 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00A324 70009724 AFA5001C */ sw $a1, 0x1c($sp) +/* 00A328 70009728 30A700FF */ andi $a3, $a1, 0xff +/* 00A32C 7000972C 3C058006 */ lui $a1, %hi(memory_bank_ptrs) +/* 00A330 70009730 3C0A8002 */ lui $t2, %hi(needmemallocation) +/* 00A334 70009734 254A4404 */ addiu $t2, %lo(needmemallocation) # addiu $t2, $t2, 0x4404 +/* 00A338 70009738 24A53BB0 */ addiu $a1, %lo(memory_bank_ptrs) # addiu $a1, $a1, 0x3bb0 +/* 00A33C 7000973C AFBF0014 */ sw $ra, 0x14($sp) +/* 00A340 70009740 00803025 */ move $a2, $a0 +/* 00A344 70009744 0007C100 */ sll $t8, $a3, 4 +.L70009748: +/* 00A348 70009748 00B81821 */ addu $v1, $a1, $t8 +/* 00A34C 7000974C 8C620004 */ lw $v0, 4($v1) +/* 00A350 70009750 14400006 */ bnez $v0, .L7000976C +/* 00A354 70009754 00404025 */ move $t0, $v0 +/* 00A358 70009758 24190001 */ li $t9, 1 +/* 00A35C 7000975C 3C018002 */ lui $at, %hi(needmemallocation) +/* 00A360 70009760 AC394404 */ sw $t9, %lo(needmemallocation)($at) +.L70009764: +/* 00A364 70009764 1000FFFF */ b .L70009764 +/* 00A368 70009768 00000000 */ nop +.L7000976C: +/* 00A36C 7000976C 8C640008 */ lw $a0, 8($v1) +/* 00A370 70009770 00466821 */ addu $t5, $v0, $a2 +/* 00A374 70009774 0082082B */ sltu $at, $a0, $v0 +/* 00A378 70009778 50200006 */ beql $at, $zero, .L70009794 +/* 00A37C 7000977C 008D082B */ sltu $at, $a0, $t5 +/* 00A380 70009780 0C00263C */ jal nulled_mempLoopAllMemBanks +/* 00A384 70009784 24070006 */ li $a3, 6 +.L70009788: +/* 00A388 70009788 1000FFFF */ b .L70009788 +/* 00A38C 7000978C 00000000 */ nop +/* 00A390 70009790 008D082B */ sltu $at, $a0, $t5 +.L70009794: +/* 00A394 70009794 50200014 */ beql $at, $zero, .L700097E8 +/* 00A398 70009798 00466821 */ addu $t5, $v0, $a2 +/* 00A39C 7000979C 8CAF0064 */ lw $t7, 0x64($a1) +/* 00A3A0 700097A0 8CAE0068 */ lw $t6, 0x68($a1) +/* 00A3A4 700097A4 24070006 */ li $a3, 6 +/* 00A3A8 700097A8 01E6C021 */ addu $t8, $t7, $a2 +/* 00A3AC 700097AC 01D8082B */ sltu $at, $t6, $t8 +/* 00A3B0 700097B0 14200008 */ bnez $at, .L700097D4 +/* 00A3B4 700097B4 00000000 */ nop +/* 00A3B8 700097B8 8D420000 */ lw $v0, ($t2) +/* 00A3BC 700097BC 24190001 */ li $t9, 1 +/* 00A3C0 700097C0 AD590000 */ sw $t9, ($t2) +/* 00A3C4 700097C4 5440FFE0 */ bnezl $v0, .L70009748 +/* 00A3C8 700097C8 0007C100 */ sll $t8, $a3, 4 +/* 00A3CC 700097CC 1000FFDE */ b .L70009748 +/* 00A3D0 700097D0 0007C100 */ sll $t8, $a3, 4 +.L700097D4: +/* 00A3D4 700097D4 0C00263C */ jal nulled_mempLoopAllMemBanks +/* 00A3D8 700097D8 00000000 */ nop +.L700097DC: +/* 00A3DC 700097DC 1000FFFF */ b .L700097DC +/* 00A3E0 700097E0 00000000 */ nop +/* 00A3E4 700097E4 00466821 */ addu $t5, $v0, $a2 +.L700097E8: +/* 00A3E8 700097E8 AC6D0004 */ sw $t5, 4($v1) +/* 00A3EC 700097EC AC68000C */ sw $t0, 0xc($v1) +/* 00A3F0 700097F0 8FBF0014 */ lw $ra, 0x14($sp) +/* 00A3F4 700097F4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00A3F8 700097F8 01001025 */ move $v0, $t0 +/* 00A3FC 700097FC 03E00008 */ jr $ra +/* 00A400 70009800 00000000 */ nop +) +#endif + + + +/** + * A404 70009804 + * ???; updates bank A2 size registry in light of entry at A0 of size A1 + * accepts: A0=p->allocated data, A1=size of data, A2=bank# + */ +#ifdef NONMATCHING +u32 mempAddEntryOfSizeToBank(u8* ptrdata,u32 size,u8 bank) +{ + u32 entry; + u32 retval; + + if ((needmemallocation != 0) && (ptrdata == memory_bank_ptrs[6].data2)) { + bank = 6; + } + entry = memory_bank_ptrs[bank].nextentry; + if (entry == 0) { + do { + /* WARNING: Do nothing block with infinite loop */ + } while( 1 ); + } + if (ptrdata == memory_bank_ptrs[bank].data2) { + size = size - (entry - (int)memory_bank_ptrs[bank].data2); + if (size < 1) { + memory_bank_ptrs[bank].nextentry = entry + size; + retval = 1; + } + else { + if (memory_bank_ptrs[bank].bankend < entry) { + nulled_mempLoopAllMemBanks(); + do { + /* WARNING: Do nothing block with infinite loop */ + } while( 1 ); + } + if (memory_bank_ptrs[bank].bankend < entry + size) { + nulled_mempLoopAllMemBanks(); + do { + /* WARNING: Do nothing block with infinite loop */ + } while( 1 ); + } + memory_bank_ptrs[bank].nextentry = entry + size; + retval = 1; + } + } + else { + retval = 2; + } + return retval; +} +#else +GLOBAL_ASM( +.text +glabel mempAddEntryOfSizeToBank +/* 00A404 70009804 3C0F8002 */ lui $t7, %hi(needmemallocation) +/* 00A408 70009808 8DEF4404 */ lw $t7, %lo(needmemallocation)($t7) +/* 00A40C 7000980C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00A410 70009810 AFA60020 */ sw $a2, 0x20($sp) +/* 00A414 70009814 30CE00FF */ andi $t6, $a2, 0xff +/* 00A418 70009818 01C03025 */ move $a2, $t6 +/* 00A41C 7000981C AFBF0014 */ sw $ra, 0x14($sp) +/* 00A420 70009820 AFA5001C */ sw $a1, 0x1c($sp) +/* 00A424 70009824 11E00006 */ beqz $t7, .L70009840 +/* 00A428 70009828 00803825 */ move $a3, $a0 +/* 00A42C 7000982C 3C188006 */ lui $t8, %hi(memory_bank_ptrs+0x6C) +/* 00A430 70009830 8F183C1C */ lw $t8, %lo(memory_bank_ptrs+0x6C)($t8) +/* 00A434 70009834 14980002 */ bne $a0, $t8, .L70009840 +/* 00A438 70009838 00000000 */ nop +/* 00A43C 7000983C 24060006 */ li $a2, 6 +.L70009840: +/* 00A440 70009840 3C0A8006 */ lui $t2, %hi(memory_bank_ptrs) +/* 00A444 70009844 254A3BB0 */ addiu $t2, %lo(memory_bank_ptrs) # addiu $t2, $t2, 0x3bb0 +/* 00A448 70009848 0006C900 */ sll $t9, $a2, 4 +/* 00A44C 7000984C 032A2821 */ addu $a1, $t9, $t2 +/* 00A450 70009850 8CA40004 */ lw $a0, 4($a1) +/* 00A454 70009854 54800004 */ bnezl $a0, .L70009868 +/* 00A458 70009858 8CA6000C */ lw $a2, 0xc($a1) +.L7000985C: +/* 00A45C 7000985C 1000FFFF */ b .L7000985C +/* 00A460 70009860 00000000 */ nop +/* 00A464 70009864 8CA6000C */ lw $a2, 0xc($a1) +.L70009868: +/* 00A468 70009868 8FAB001C */ lw $t3, 0x1c($sp) +/* 00A46C 7000986C 50E60004 */ beql $a3, $a2, .L70009880 +/* 00A470 70009870 00861023 */ subu $v0, $a0, $a2 +/* 00A474 70009874 1000001A */ b .L700098E0 +/* 00A478 70009878 24020002 */ li $v0, 2 +/* 00A47C 7000987C 00861023 */ subu $v0, $a0, $a2 +.L70009880: +/* 00A480 70009880 01621823 */ subu $v1, $t3, $v0 +/* 00A484 70009884 1C600004 */ bgtz $v1, .L70009898 +/* 00A488 70009888 00836021 */ addu $t4, $a0, $v1 +/* 00A48C 7000988C ACAC0004 */ sw $t4, 4($a1) +/* 00A490 70009890 10000013 */ b .L700098E0 +/* 00A494 70009894 24020001 */ li $v0, 1 +.L70009898: +/* 00A498 70009898 8CA20008 */ lw $v0, 8($a1) +/* 00A49C 7000989C 00836821 */ addu $t5, $a0, $v1 +/* 00A4A0 700098A0 0044082B */ sltu $at, $v0, $a0 +/* 00A4A4 700098A4 50200006 */ beql $at, $zero, .L700098C0 +/* 00A4A8 700098A8 004D082B */ sltu $at, $v0, $t5 +/* 00A4AC 700098AC 0C00263C */ jal nulled_mempLoopAllMemBanks +/* 00A4B0 700098B0 24060006 */ li $a2, 6 +.L700098B4: +/* 00A4B4 700098B4 1000FFFF */ b .L700098B4 +/* 00A4B8 700098B8 00000000 */ nop +/* 00A4BC 700098BC 004D082B */ sltu $at, $v0, $t5 +.L700098C0: +/* 00A4C0 700098C0 10200005 */ beqz $at, .L700098D8 +/* 00A4C4 700098C4 00837021 */ addu $t6, $a0, $v1 +/* 00A4C8 700098C8 0C00263C */ jal nulled_mempLoopAllMemBanks +/* 00A4CC 700098CC 24060006 */ li $a2, 6 +.L700098D0: +/* 00A4D0 700098D0 1000FFFF */ b .L700098D0 +/* 00A4D4 700098D4 00000000 */ nop +.L700098D8: +/* 00A4D8 700098D8 ACAE0004 */ sw $t6, 4($a1) +/* 00A4DC 700098DC 24020001 */ li $v0, 1 +.L700098E0: +/* 00A4E0 700098E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 00A4E4 700098E4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00A4E8 700098E8 03E00008 */ jr $ra +/* 00A4EC 700098EC 00000000 */ nop +) +#endif + + + +/** + * A4F0 700098F0 + * V0=8 -- loop eight times, needlessly; fries AT,T6 + * used by "show mem use", step 1; probably originally listed all eight memory allocations + */ + +void nulled_mempLoopAllMemBanks(void) +{ + s32 bank; + for (bank = 1; bank < 7; bank = (bank + 1) & 0xff) + { + ; + }; +} + +/** + * A510 70009910 + * V0= total allocated size of bank A0 + * accepts: A0=bank# + */ +s32 mempGetBankSizeLeft(u8 bank) +{ + if (needmemallocation != 0) { + bank = 6; + } + if ((bank == 4) && (memory_bank_ptrs[4].bankstart == memory_bank_ptrs[4].bankend)) { + bank = 6; + } + return memory_bank_ptrs[bank].bankend - memory_bank_ptrs[bank].nextentry; +} + + + + + +/** + * A570 70009970 + * allocate A0 coded #bytes in bank + * accepts: A0=size/bank# entry (ssssssss ssssssss sssssssss sssssbbb) + */ + +u32 mempAllocPackedBytesInBank(u32 param_1) +{ + return mempAllocBytesInBank((param_1 >> 3),(param_1 & 7)); +} + + + + +/** + * A59C 7000999C + * reset memory bank A0 [0-6] + * copies base address for memory bank A0 to +4, fry +C + */ +void mempResetBank(u8 bank) +{ + memory_bank_ptrs[bank].data2 = 0; + memory_bank_ptrs[bank].nextentry = memory_bank_ptrs[bank].bankstart; +} + +/** + * A5C4 700099C4 + * accepts: A0=bank# + */ +void mempNullNextEntryInBank(u8 bank) +{ + nulled_mempLoopAllMemBanks(); + if (memory_bank_ptrs[bank].nextentry != 0) { + memory_bank_ptrs[bank].nextentry = 0; + } +} diff --git a/src/memp.h b/src/memp.h new file mode 100644 index 0000000..480d0fd --- /dev/null +++ b/src/memp.h @@ -0,0 +1,46 @@ +#ifndef _MEMP_H_ +#define _MEMP_H_ + +#include "ultra64.h" + +typedef struct s_mempBANK { + s32 bankstart; + s32 nextentry; + s32 bankend; + s32 data2; +} s_mempBANK; + +typedef struct s_mempMVALS { + u32 D_80024410; + u32 D_80024414; + u32 mf; + u32 D_8002441C; + u32 ml; + u32 D_80024424; + u32 me; + u32 D_8002442C; + u32 D_80024430; +} s_mempMVALS; + +typedef struct s_mempMEMSTARTS { + s32 bank1start; + s32 bank2start; + s32 bank3start; + s32 bank4start; + s32 bank5start; + s32 bank6start; + s32 bank7start; +} s_mempMEMSTARTS; + +void mempInitDebugNoticeList(void); +void mempCheckMemflagTokens(int bstart,int bsize); +void mempSetBankStarts(int *banks); +u32 mempAllocBytesInBank(u32 bytes,u8 bank); +u32 mempAddEntryOfSizeToBank(u8* ptrdata,u32 size,u8 bank); +void nulled_mempLoopAllMemBanks(void); +s32 mempGetBankSizeLeft(u8 bank); +u32 mempAllocPackedBytesInBank(u32 param_1); +void mempResetBank(u8 bank); +void mempNullNextEntryInBank(u8 bank); + +#endif diff --git a/src/motor.c b/src/motor.c new file mode 100644 index 0000000..436cd0b --- /dev/null +++ b/src/motor.c @@ -0,0 +1,489 @@ +#include "ultra64.h" +//0x800655a0 +char _MotorStopData[256]; +//800656a0 +char _MotorStartData[256]; +//800657a0 +u8 _motorstopbuf[32]; +//800657c0 +u8 _motorstartbuf[32]; + + + + +#ifdef NONMATCHING +s32 osMotorStop(OSPfs *pfs) +{ + +} +#else +GLOBAL_ASM( +.text +glabel osMotorStop +/* 00D580 7000C980 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 00D584 7000C984 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D588 7000C988 0C005798 */ jal __osSiGetAccess +/* 00D58C 7000C98C AFA40050 */ sw $a0, 0x50($sp) +/* 00D590 7000C990 8FAF0050 */ lw $t7, 0x50($sp) +/* 00D594 7000C994 240E0003 */ li $t6, 3 +/* 00D598 7000C998 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 00D59C 7000C99C A02E7CE0 */ sb $t6, %lo(__osContLastCmd)($at) +/* 00D5A0 7000C9A0 8DF80008 */ lw $t8, 8($t7) +/* 00D5A4 7000C9A4 3C088006 */ lui $t0, %hi(_MotorStopData) +/* 00D5A8 7000C9A8 250855A0 */ addiu $t0, %lo(_MotorStopData) # addiu $t0, $t0, 0x55a0 +/* 00D5AC 7000C9AC 0018C980 */ sll $t9, $t8, 6 +/* 00D5B0 7000C9B0 03282821 */ addu $a1, $t9, $t0 +/* 00D5B4 7000C9B4 0C0057B4 */ jal __osSiRawStartDma +/* 00D5B8 7000C9B8 24040001 */ li $a0, 1 +/* 00D5BC 7000C9BC 8FA90050 */ lw $t1, 0x50($sp) +/* 00D5C0 7000C9C0 00002825 */ move $a1, $zero +/* 00D5C4 7000C9C4 24060001 */ li $a2, 1 +/* 00D5C8 7000C9C8 0C003774 */ jal osRecvMesg +/* 00D5CC 7000C9CC 8D240004 */ lw $a0, 4($t1) +/* 00D5D0 7000C9D0 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 00D5D4 7000C9D4 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 00D5D8 7000C9D8 0C0057B4 */ jal __osSiRawStartDma +/* 00D5DC 7000C9DC 00002025 */ move $a0, $zero +/* 00D5E0 7000C9E0 8FAA0050 */ lw $t2, 0x50($sp) +/* 00D5E4 7000C9E4 00002825 */ move $a1, $zero +/* 00D5E8 7000C9E8 24060001 */ li $a2, 1 +/* 00D5EC 7000C9EC 0C003774 */ jal osRecvMesg +/* 00D5F0 7000C9F0 8D440004 */ lw $a0, 4($t2) +/* 00D5F4 7000C9F4 8FAB0050 */ lw $t3, 0x50($sp) +/* 00D5F8 7000C9F8 3C038006 */ lui $v1, %hi(__osPfsPifRam) +/* 00D5FC 7000C9FC 24637D70 */ addiu $v1, %lo(__osPfsPifRam) # addiu $v1, $v1, 0x7d70 +/* 00D600 7000CA00 8D640008 */ lw $a0, 8($t3) +/* 00D604 7000CA04 27AC001C */ addiu $t4, $sp, 0x1c +/* 00D608 7000CA08 50800008 */ beql $a0, $zero, .L7000CA2C +/* 00D60C 7000CA0C 00607825 */ move $t7, $v1 +/* 00D610 7000CA10 18800005 */ blez $a0, .L7000CA28 +/* 00D614 7000CA14 00001025 */ move $v0, $zero +.L7000CA18: +/* 00D618 7000CA18 24420001 */ addiu $v0, $v0, 1 +/* 00D61C 7000CA1C 0044082A */ slt $at, $v0, $a0 +/* 00D620 7000CA20 1420FFFD */ bnez $at, .L7000CA18 +/* 00D624 7000CA24 24630001 */ addiu $v1, $v1, 1 +.L7000CA28: +/* 00D628 7000CA28 00607825 */ move $t7, $v1 +.L7000CA2C: +/* 00D62C 7000CA2C 246E0024 */ addiu $t6, $v1, 0x24 +.L7000CA30: +/* 00D630 7000CA30 89E10000 */ lwl $at, ($t7) +/* 00D634 7000CA34 99E10003 */ lwr $at, 3($t7) +/* 00D638 7000CA38 25EF000C */ addiu $t7, $t7, 0xc +/* 00D63C 7000CA3C 258C000C */ addiu $t4, $t4, 0xc +/* 00D640 7000CA40 AD81FFF4 */ sw $at, -0xc($t4) +/* 00D644 7000CA44 89E1FFF8 */ lwl $at, -8($t7) +/* 00D648 7000CA48 99E1FFFB */ lwr $at, -5($t7) +/* 00D64C 7000CA4C AD81FFF8 */ sw $at, -8($t4) +/* 00D650 7000CA50 89E1FFFC */ lwl $at, -4($t7) +/* 00D654 7000CA54 99E1FFFF */ lwr $at, -1($t7) +/* 00D658 7000CA58 15EEFFF5 */ bne $t7, $t6, .L7000CA30 +/* 00D65C 7000CA5C AD81FFFC */ sw $at, -4($t4) +/* 00D660 7000CA60 89E10000 */ lwl $at, ($t7) +/* 00D664 7000CA64 99E10003 */ lwr $at, 3($t7) +/* 00D668 7000CA68 AD810000 */ sw $at, ($t4) +/* 00D66C 7000CA6C 93A2001E */ lbu $v0, 0x1e($sp) +/* 00D670 7000CA70 93A80042 */ lbu $t0, 0x42($sp) +/* 00D674 7000CA74 305800C0 */ andi $t8, $v0, 0xc0 +/* 00D678 7000CA78 00182103 */ sra $a0, $t8, 4 +/* 00D67C 7000CA7C 14800004 */ bnez $a0, .L7000CA90 +/* 00D680 7000CA80 00000000 */ nop +/* 00D684 7000CA84 11000002 */ beqz $t0, .L7000CA90 +/* 00D688 7000CA88 00000000 */ nop +/* 00D68C 7000CA8C 24040004 */ li $a0, 4 +.L7000CA90: +/* 00D690 7000CA90 0C0057A9 */ jal __osSiRelAccess +/* 00D694 7000CA94 AFA40048 */ sw $a0, 0x48($sp) +/* 00D698 7000CA98 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D69C 7000CA9C 8FA20048 */ lw $v0, 0x48($sp) +/* 00D6A0 7000CAA0 27BD0050 */ addiu $sp, $sp, 0x50 +/* 00D6A4 7000CAA4 03E00008 */ jr $ra +/* 00D6A8 7000CAA8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 osMotorStart(OSPfs *pfs) +{ + +} +#else +GLOBAL_ASM( +.text +glabel osMotorStart +/* 00D6AC 7000CAAC 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 00D6B0 7000CAB0 AFBF0014 */ sw $ra, 0x14($sp) +/* 00D6B4 7000CAB4 0C005798 */ jal __osSiGetAccess +/* 00D6B8 7000CAB8 AFA40050 */ sw $a0, 0x50($sp) +/* 00D6BC 7000CABC 8FAF0050 */ lw $t7, 0x50($sp) +/* 00D6C0 7000CAC0 240E0003 */ li $t6, 3 +/* 00D6C4 7000CAC4 3C018006 */ lui $at, %hi(__osContLastCmd) +/* 00D6C8 7000CAC8 A02E7CE0 */ sb $t6, %lo(__osContLastCmd)($at) +/* 00D6CC 7000CACC 8DF80008 */ lw $t8, 8($t7) +/* 00D6D0 7000CAD0 3C088006 */ lui $t0, %hi(_MotorStartData) +/* 00D6D4 7000CAD4 250856A0 */ addiu $t0, %lo(_MotorStartData) # addiu $t0, $t0, 0x56a0 +/* 00D6D8 7000CAD8 0018C980 */ sll $t9, $t8, 6 +/* 00D6DC 7000CADC 03282821 */ addu $a1, $t9, $t0 +/* 00D6E0 7000CAE0 0C0057B4 */ jal __osSiRawStartDma +/* 00D6E4 7000CAE4 24040001 */ li $a0, 1 +/* 00D6E8 7000CAE8 8FA90050 */ lw $t1, 0x50($sp) +/* 00D6EC 7000CAEC 00002825 */ move $a1, $zero +/* 00D6F0 7000CAF0 24060001 */ li $a2, 1 +/* 00D6F4 7000CAF4 0C003774 */ jal osRecvMesg +/* 00D6F8 7000CAF8 8D240004 */ lw $a0, 4($t1) +/* 00D6FC 7000CAFC 3C058006 */ lui $a1, %hi(__osPfsPifRam) +/* 00D700 7000CB00 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 +/* 00D704 7000CB04 0C0057B4 */ jal __osSiRawStartDma +/* 00D708 7000CB08 00002025 */ move $a0, $zero +/* 00D70C 7000CB0C 8FAA0050 */ lw $t2, 0x50($sp) +/* 00D710 7000CB10 00002825 */ move $a1, $zero +/* 00D714 7000CB14 24060001 */ li $a2, 1 +/* 00D718 7000CB18 0C003774 */ jal osRecvMesg +/* 00D71C 7000CB1C 8D440004 */ lw $a0, 4($t2) +/* 00D720 7000CB20 8FAB0050 */ lw $t3, 0x50($sp) +/* 00D724 7000CB24 3C038006 */ lui $v1, %hi(__osPfsPifRam) +/* 00D728 7000CB28 24637D70 */ addiu $v1, %lo(__osPfsPifRam) # addiu $v1, $v1, 0x7d70 +/* 00D72C 7000CB2C 8D640008 */ lw $a0, 8($t3) +/* 00D730 7000CB30 27AC001C */ addiu $t4, $sp, 0x1c +/* 00D734 7000CB34 50800008 */ beql $a0, $zero, .L7000CB58 +/* 00D738 7000CB38 00607825 */ move $t7, $v1 +/* 00D73C 7000CB3C 18800005 */ blez $a0, .L7000CB54 +/* 00D740 7000CB40 00001025 */ move $v0, $zero +.L7000CB44: +/* 00D744 7000CB44 24420001 */ addiu $v0, $v0, 1 +/* 00D748 7000CB48 0044082A */ slt $at, $v0, $a0 +/* 00D74C 7000CB4C 1420FFFD */ bnez $at, .L7000CB44 +/* 00D750 7000CB50 24630001 */ addiu $v1, $v1, 1 +.L7000CB54: +/* 00D754 7000CB54 00607825 */ move $t7, $v1 +.L7000CB58: +/* 00D758 7000CB58 246E0024 */ addiu $t6, $v1, 0x24 +.L7000CB5C: +/* 00D75C 7000CB5C 89E10000 */ lwl $at, ($t7) +/* 00D760 7000CB60 99E10003 */ lwr $at, 3($t7) +/* 00D764 7000CB64 25EF000C */ addiu $t7, $t7, 0xc +/* 00D768 7000CB68 258C000C */ addiu $t4, $t4, 0xc +/* 00D76C 7000CB6C AD81FFF4 */ sw $at, -0xc($t4) +/* 00D770 7000CB70 89E1FFF8 */ lwl $at, -8($t7) +/* 00D774 7000CB74 99E1FFFB */ lwr $at, -5($t7) +/* 00D778 7000CB78 AD81FFF8 */ sw $at, -8($t4) +/* 00D77C 7000CB7C 89E1FFFC */ lwl $at, -4($t7) +/* 00D780 7000CB80 99E1FFFF */ lwr $at, -1($t7) +/* 00D784 7000CB84 15EEFFF5 */ bne $t7, $t6, .L7000CB5C +/* 00D788 7000CB88 AD81FFFC */ sw $at, -4($t4) +/* 00D78C 7000CB8C 89E10000 */ lwl $at, ($t7) +/* 00D790 7000CB90 99E10003 */ lwr $at, 3($t7) +/* 00D794 7000CB94 AD810000 */ sw $at, ($t4) +/* 00D798 7000CB98 93A2001E */ lbu $v0, 0x1e($sp) +/* 00D79C 7000CB9C 93A80042 */ lbu $t0, 0x42($sp) +/* 00D7A0 7000CBA0 240100EB */ li $at, 235 +/* 00D7A4 7000CBA4 305800C0 */ andi $t8, $v0, 0xc0 +/* 00D7A8 7000CBA8 00182103 */ sra $a0, $t8, 4 +/* 00D7AC 7000CBAC 14800004 */ bnez $a0, .L7000CBC0 +/* 00D7B0 7000CBB0 00000000 */ nop +/* 00D7B4 7000CBB4 11010002 */ beq $t0, $at, .L7000CBC0 +/* 00D7B8 7000CBB8 00000000 */ nop +/* 00D7BC 7000CBBC 24040004 */ li $a0, 4 +.L7000CBC0: +/* 00D7C0 7000CBC0 0C0057A9 */ jal __osSiRelAccess +/* 00D7C4 7000CBC4 AFA40048 */ sw $a0, 0x48($sp) +/* 00D7C8 7000CBC8 8FBF0014 */ lw $ra, 0x14($sp) +/* 00D7CC 7000CBCC 8FA20048 */ lw $v0, 0x48($sp) +/* 00D7D0 7000CBD0 27BD0050 */ addiu $sp, $sp, 0x50 +/* 00D7D4 7000CBD4 03E00008 */ jr $ra +/* 00D7D8 7000CBD8 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void _MakeMotorData(int channel,u16 address,u8 *buffer,OSPifRam *mdata) +{ + +} +#else +GLOBAL_ASM( +.text +glabel _MakeMotorData +/* 00D7DC 7000CBDC 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 00D7E0 7000CBE0 AFB00018 */ sw $s0, 0x18($sp) +/* 00D7E4 7000CBE4 00808025 */ move $s0, $a0 +/* 00D7E8 7000CBE8 AFBF001C */ sw $ra, 0x1c($sp) +/* 00D7EC 7000CBEC AFA5005C */ sw $a1, 0x5c($sp) +/* 00D7F0 7000CBF0 00E01825 */ move $v1, $a3 +/* 00D7F4 7000CBF4 00004025 */ move $t0, $zero +/* 00D7F8 7000CBF8 00E01025 */ move $v0, $a3 +.L7000CBFC: +/* 00D7FC 7000CBFC 25080001 */ addiu $t0, $t0, 1 +/* 00D800 7000CC00 2901000F */ slti $at, $t0, 0xf +/* 00D804 7000CC04 24420004 */ addiu $v0, $v0, 4 +/* 00D808 7000CC08 1420FFFC */ bnez $at, .L7000CBFC +/* 00D80C 7000CC0C AC40FFFC */ sw $zero, -4($v0) +/* 00D810 7000CC10 240E0001 */ li $t6, 1 +/* 00D814 7000CC14 ACEE003C */ sw $t6, 0x3c($a3) +/* 00D818 7000CC18 240F00FF */ li $t7, 255 +/* 00D81C 7000CC1C 24180023 */ li $t8, 35 +/* 00D820 7000CC20 24190001 */ li $t9, 1 +/* 00D824 7000CC24 24090003 */ li $t1, 3 +/* 00D828 7000CC28 A3AF002C */ sb $t7, 0x2c($sp) +/* 00D82C 7000CC2C A3B8002D */ sb $t8, 0x2d($sp) +/* 00D830 7000CC30 A3B9002E */ sb $t9, 0x2e($sp) +/* 00D834 7000CC34 A3A9002F */ sb $t1, 0x2f($sp) +/* 00D838 7000CC38 AFA60060 */ sw $a2, 0x60($sp) +/* 00D83C 7000CC3C AFA30054 */ sw $v1, 0x54($sp) +/* 00D840 7000CC40 0C0057E0 */ jal __osContAddressCrc +/* 00D844 7000CC44 97A4005E */ lhu $a0, 0x5e($sp) +/* 00D848 7000CC48 97AA005E */ lhu $t2, 0x5e($sp) +/* 00D84C 7000CC4C 240D00FF */ li $t5, 255 +/* 00D850 7000CC50 8FA30054 */ lw $v1, 0x54($sp) +/* 00D854 7000CC54 000A5940 */ sll $t3, $t2, 5 +/* 00D858 7000CC58 004B6025 */ or $t4, $v0, $t3 +/* 00D85C 7000CC5C A7AC0030 */ sh $t4, 0x30($sp) +/* 00D860 7000CC60 8FA60060 */ lw $a2, 0x60($sp) +/* 00D864 7000CC64 A3AD0052 */ sb $t5, 0x52($sp) +/* 00D868 7000CC68 27A2004C */ addiu $v0, $sp, 0x4c +/* 00D86C 7000CC6C 27A4002C */ addiu $a0, $sp, 0x2c +.L7000CC70: +/* 00D870 7000CC70 90CE0000 */ lbu $t6, ($a2) +/* 00D874 7000CC74 24840001 */ addiu $a0, $a0, 1 +/* 00D878 7000CC78 0082082B */ sltu $at, $a0, $v0 +/* 00D87C 7000CC7C 24C60001 */ addiu $a2, $a2, 1 +/* 00D880 7000CC80 1420FFFB */ bnez $at, .L7000CC70 +/* 00D884 7000CC84 A08E0005 */ sb $t6, 5($a0) +/* 00D888 7000CC88 12000012 */ beqz $s0, .L7000CCD4 +/* 00D88C 7000CC8C 27AF002C */ addiu $t7, $sp, 0x2c +/* 00D890 7000CC90 1A000010 */ blez $s0, .L7000CCD4 +/* 00D894 7000CC94 00004025 */ move $t0, $zero +/* 00D898 7000CC98 32040003 */ andi $a0, $s0, 3 +/* 00D89C 7000CC9C 10800006 */ beqz $a0, .L7000CCB8 +/* 00D8A0 7000CCA0 00801025 */ move $v0, $a0 +.L7000CCA4: +/* 00D8A4 7000CCA4 25080001 */ addiu $t0, $t0, 1 +/* 00D8A8 7000CCA8 A0600000 */ sb $zero, ($v1) +/* 00D8AC 7000CCAC 1448FFFD */ bne $v0, $t0, .L7000CCA4 +/* 00D8B0 7000CCB0 24630001 */ addiu $v1, $v1, 1 +/* 00D8B4 7000CCB4 11100007 */ beq $t0, $s0, .L7000CCD4 +.L7000CCB8: +/* 00D8B8 7000CCB8 25080004 */ addiu $t0, $t0, 4 +/* 00D8BC 7000CCBC A0600001 */ sb $zero, 1($v1) +/* 00D8C0 7000CCC0 A0600002 */ sb $zero, 2($v1) +/* 00D8C4 7000CCC4 A0600003 */ sb $zero, 3($v1) +/* 00D8C8 7000CCC8 24630004 */ addiu $v1, $v1, 4 +/* 00D8CC 7000CCCC 1510FFFA */ bne $t0, $s0, .L7000CCB8 +/* 00D8D0 7000CCD0 A060FFFC */ sb $zero, -4($v1) +.L7000CCD4: +/* 00D8D4 7000CCD4 00604825 */ move $t1, $v1 +/* 00D8D8 7000CCD8 25F90024 */ addiu $t9, $t7, 0x24 +.L7000CCDC: +/* 00D8DC 7000CCDC 8DE10000 */ lw $at, ($t7) +/* 00D8E0 7000CCE0 25EF000C */ addiu $t7, $t7, 0xc +/* 00D8E4 7000CCE4 2529000C */ addiu $t1, $t1, 0xc +/* 00D8E8 7000CCE8 A921FFF4 */ swl $at, -0xc($t1) +/* 00D8EC 7000CCEC B921FFF7 */ swr $at, -9($t1) +/* 00D8F0 7000CCF0 8DE1FFF8 */ lw $at, -8($t7) +/* 00D8F4 7000CCF4 A921FFF8 */ swl $at, -8($t1) +/* 00D8F8 7000CCF8 B921FFFB */ swr $at, -5($t1) +/* 00D8FC 7000CCFC 8DE1FFFC */ lw $at, -4($t7) +/* 00D900 7000CD00 A921FFFC */ swl $at, -4($t1) +/* 00D904 7000CD04 15F9FFF5 */ bne $t7, $t9, .L7000CCDC +/* 00D908 7000CD08 B921FFFF */ swr $at, -1($t1) +/* 00D90C 7000CD0C 8DE10000 */ lw $at, ($t7) +/* 00D910 7000CD10 240A00FE */ li $t2, 254 +/* 00D914 7000CD14 24630028 */ addiu $v1, $v1, 0x28 +/* 00D918 7000CD18 A9210000 */ swl $at, ($t1) +/* 00D91C 7000CD1C B9210003 */ swr $at, 3($t1) +/* 00D920 7000CD20 A06A0000 */ sb $t2, ($v1) +/* 00D924 7000CD24 8FBF001C */ lw $ra, 0x1c($sp) +/* 00D928 7000CD28 8FB00018 */ lw $s0, 0x18($sp) +/* 00D92C 7000CD2C 27BD0058 */ addiu $sp, $sp, 0x58 +/* 00D930 7000CD30 03E00008 */ jr $ra +/* 00D934 7000CD34 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 osMotorInit(OSMesgQueue *mq,OSPfs *pfs,int channel) { + s32 sp2C; + ? sp30; + ? sp50; + u32 temp_v0; + ? temp_ret; + void *temp_v1; + s32 temp_v0_2; + + // Node 0 + arg1->unk4 = arg0; + arg1->unk8 = arg2; + *arg1 = 0; + arg1->unk65 = (u8)0x80; + // Node 1 + temp_v0 = (&sp30 + 1); + temp_v0->unk-1 = (u8)0x80; + if (temp_v0 < &sp50) + { + goto loop_1; + } + // Node 2 + temp_ret = __osContRamWrite(arg2, 0x400, &sp30, 0); + if (temp_ret == 2) + { + // Node 3 + __osContRamWrite(arg16, arg2, 0x400, &sp30, 0); + } + // Node 4 + if (temp_ret != 0) + { + // Node 5 + } + else + { + // Node 6 + if (__osContRamRead(arg16, arg2, 0x400, &sp30) != 0) + { + // Node 7 + return; + // (possible return value: __osContRamRead(arg16, arg2, 0x400, &sp30)) + } + // Node 8 + if (sp4F != 0x80) + { + // Node 9 + } + else + { + // Node 10 + // Node 11 + temp_v1 = (&_motorstopbuf + 4); + _motorstartbuf.unk1 = (u8)1; + temp_v1->unk-3 = (u8)0; + _motorstartbuf.unk2 = (u8)1; + temp_v1->unk-2 = (u8)0; + _motorstartbuf.unk3 = (u8)1; + temp_v1->unk-1 = (u8)0; + (&_motorstartbuf + 4)->unk-4 = (u8)1; + temp_v1->unk-4 = (u8)0; + if (temp_v1 != &_motorstartbuf) + { + goto loop_11; + } + // Node 12 + temp_v0_2 = (arg2 << 6); + sp2C = temp_v0_2; + _MakeMotorData(arg2, 0x600, &_motorstartbuf, (temp_v0_2 + &_MotorStartData)); + _MakeMotorData(arg2, 0x600, &_motorstopbuf, (sp2C + &_MotorStopData)); + } + } + // Node 13 + return; + // (possible return value: 0) +} +#else +GLOBAL_ASM( +.text +glabel osMotorInit +/* 00D938 7000CD38 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 00D93C 7000CD3C AFB00020 */ sw $s0, 0x20($sp) +/* 00D940 7000CD40 AFBF0024 */ sw $ra, 0x24($sp) +/* 00D944 7000CD44 24070080 */ li $a3, 128 +/* 00D948 7000CD48 00C08025 */ move $s0, $a2 +/* 00D94C 7000CD4C ACA40004 */ sw $a0, 4($a1) +/* 00D950 7000CD50 ACA60008 */ sw $a2, 8($a1) +/* 00D954 7000CD54 ACA00000 */ sw $zero, ($a1) +/* 00D958 7000CD58 A0A70065 */ sb $a3, 0x65($a1) +/* 00D95C 7000CD5C 27A20030 */ addiu $v0, $sp, 0x30 +/* 00D960 7000CD60 27A30050 */ addiu $v1, $sp, 0x50 +.L7000CD64: +/* 00D964 7000CD64 24420001 */ addiu $v0, $v0, 1 +/* 00D968 7000CD68 0043082B */ sltu $at, $v0, $v1 +/* 00D96C 7000CD6C 1420FFFD */ bnez $at, .L7000CD64 +/* 00D970 7000CD70 A047FFFF */ sb $a3, -1($v0) +/* 00D974 7000CD74 02002825 */ move $a1, $s0 +/* 00D978 7000CD78 24060400 */ li $a2, 1024 +/* 00D97C 7000CD7C 27A70030 */ addiu $a3, $sp, 0x30 +/* 00D980 7000CD80 AFA00010 */ sw $zero, 0x10($sp) +/* 00D984 7000CD84 0C005840 */ jal __osContRamWrite +/* 00D988 7000CD88 AFA40058 */ sw $a0, 0x58($sp) +/* 00D98C 7000CD8C 24010002 */ li $at, 2 +/* 00D990 7000CD90 14410008 */ bne $v0, $at, .L7000CDB4 +/* 00D994 7000CD94 00401825 */ move $v1, $v0 +/* 00D998 7000CD98 8FA40058 */ lw $a0, 0x58($sp) +/* 00D99C 7000CD9C 02002825 */ move $a1, $s0 +/* 00D9A0 7000CDA0 24060400 */ li $a2, 1024 +/* 00D9A4 7000CDA4 27A70030 */ addiu $a3, $sp, 0x30 +/* 00D9A8 7000CDA8 0C005840 */ jal __osContRamWrite +/* 00D9AC 7000CDAC AFA00010 */ sw $zero, 0x10($sp) +/* 00D9B0 7000CDB0 00401825 */ move $v1, $v0 +.L7000CDB4: +/* 00D9B4 7000CDB4 10400003 */ beqz $v0, .L7000CDC4 +/* 00D9B8 7000CDB8 8FA40058 */ lw $a0, 0x58($sp) +/* 00D9BC 7000CDBC 10000033 */ b .L7000CE8C +/* 00D9C0 7000CDC0 00601025 */ move $v0, $v1 +.L7000CDC4: +/* 00D9C4 7000CDC4 02002825 */ move $a1, $s0 +/* 00D9C8 7000CDC8 24060400 */ li $a2, 1024 +/* 00D9CC 7000CDCC 0C00592C */ jal __osContRamRead +/* 00D9D0 7000CDD0 27A70030 */ addiu $a3, $sp, 0x30 +/* 00D9D4 7000CDD4 10400003 */ beqz $v0, .L7000CDE4 +/* 00D9D8 7000CDD8 93AE004F */ lbu $t6, 0x4f($sp) +/* 00D9DC 7000CDDC 1000002C */ b .L7000CE90 +/* 00D9E0 7000CDE0 8FBF0024 */ lw $ra, 0x24($sp) +.L7000CDE4: +/* 00D9E4 7000CDE4 24010080 */ li $at, 128 +/* 00D9E8 7000CDE8 11C10003 */ beq $t6, $at, .L7000CDF8 +/* 00D9EC 7000CDEC 3C048006 */ lui $a0, %hi(_motorstartbuf) +/* 00D9F0 7000CDF0 10000026 */ b .L7000CE8C +/* 00D9F4 7000CDF4 2402000B */ li $v0, 11 +.L7000CDF8: +/* 00D9F8 7000CDF8 3C038006 */ lui $v1, %hi(_motorstopbuf) +/* 00D9FC 7000CDFC 3C058006 */ lui $a1, %hi(_motorstartbuf) +/* 00DA00 7000CE00 24A557C0 */ addiu $a1, %lo(_motorstartbuf) # addiu $a1, $a1, 0x57c0 +/* 00DA04 7000CE04 246357A0 */ addiu $v1, %lo(_motorstopbuf) # addiu $v1, $v1, 0x57a0 +/* 00DA08 7000CE08 248457C0 */ addiu $a0, %lo(_motorstartbuf) # addiu $a0, $a0, 0x57c0 +/* 00DA0C 7000CE0C 24020001 */ li $v0, 1 +.L7000CE10: +/* 00DA10 7000CE10 24630004 */ addiu $v1, $v1, 4 +/* 00DA14 7000CE14 A0820001 */ sb $v0, 1($a0) +/* 00DA18 7000CE18 A060FFFD */ sb $zero, -3($v1) +/* 00DA1C 7000CE1C A0820002 */ sb $v0, 2($a0) +/* 00DA20 7000CE20 A060FFFE */ sb $zero, -2($v1) +/* 00DA24 7000CE24 A0820003 */ sb $v0, 3($a0) +/* 00DA28 7000CE28 A060FFFF */ sb $zero, -1($v1) +/* 00DA2C 7000CE2C 24840004 */ addiu $a0, $a0, 4 +/* 00DA30 7000CE30 A082FFFC */ sb $v0, -4($a0) +/* 00DA34 7000CE34 1465FFF6 */ bne $v1, $a1, .L7000CE10 +/* 00DA38 7000CE38 A060FFFC */ sb $zero, -4($v1) +/* 00DA3C 7000CE3C 3C0F8006 */ lui $t7, %hi(_MotorStartData) +/* 00DA40 7000CE40 25EF56A0 */ addiu $t7, %lo(_MotorStartData) # addiu $t7, $t7, 0x56a0 +/* 00DA44 7000CE44 3C068006 */ lui $a2, %hi(_motorstartbuf) +/* 00DA48 7000CE48 00101180 */ sll $v0, $s0, 6 +/* 00DA4C 7000CE4C 004F3821 */ addu $a3, $v0, $t7 +/* 00DA50 7000CE50 AFA2002C */ sw $v0, 0x2c($sp) +/* 00DA54 7000CE54 24C657C0 */ addiu $a2, %lo(_motorstartbuf) # addiu $a2, $a2, 0x57c0 +/* 00DA58 7000CE58 02002025 */ move $a0, $s0 +/* 00DA5C 7000CE5C 0C0032F7 */ jal _MakeMotorData +/* 00DA60 7000CE60 24050600 */ li $a1, 1536 +/* 00DA64 7000CE64 8FA2002C */ lw $v0, 0x2c($sp) +/* 00DA68 7000CE68 3C188006 */ lui $t8, %hi(_MotorStopData) +/* 00DA6C 7000CE6C 271855A0 */ addiu $t8, %lo(_MotorStopData) # addiu $t8, $t8, 0x55a0 +/* 00DA70 7000CE70 3C068006 */ lui $a2, %hi(_motorstopbuf) +/* 00DA74 7000CE74 24C657A0 */ addiu $a2, %lo(_motorstopbuf) # addiu $a2, $a2, 0x57a0 +/* 00DA78 7000CE78 02002025 */ move $a0, $s0 +/* 00DA7C 7000CE7C 24050600 */ li $a1, 1536 +/* 00DA80 7000CE80 0C0032F7 */ jal _MakeMotorData +/* 00DA84 7000CE84 00583821 */ addu $a3, $v0, $t8 +/* 00DA88 7000CE88 00001025 */ move $v0, $zero +.L7000CE8C: +/* 00DA8C 7000CE8C 8FBF0024 */ lw $ra, 0x24($sp) +.L7000CE90: +/* 00DA90 7000CE90 8FB00020 */ lw $s0, 0x20($sp) +/* 00DA94 7000CE94 27BD0058 */ addiu $sp, $sp, 0x58 +/* 00DA98 7000CE98 03E00008 */ jr $ra +/* 00DA9C 7000CE9C 00000000 */ nop +) +#endif diff --git a/src/music.c b/src/music.c new file mode 100644 index 0000000..b68f55d --- /dev/null +++ b/src/music.c @@ -0,0 +1,2138 @@ +#include "ultra64.h" +#include "ramrom.h" +#include "snd.h" + +/** + * @file music.c + * This file contains code to handle music. + */ + +s32 music_unused = 0; +s32 music1_track_num = 0; +u16 music1len = 0x7FFF; +s32 music2_track_num = 0; +u16 music2len = 0x7FFF; +s32 music3_track_num = 0; +u16 music3len = 0x7FFF; +s32 music1_playing = 0; +s32 music2_playing = 0; +s32 music3_playing = 0; +s16 music_tempo_array[] = { +0x6665,0x7332,0x7332,0x7998,0x7332,0x5998,0x6665,0x6665,0x6665,0x6665,0x7332, +0x6665,0x7332,0x6665,0x6665,0x7332,0x7332,0x6665,0x3FFF,0x6665,0x6665, +0x3FFF,0x6665,0x6665,0x6665,0x6665,0x6665,0x7998,0x6665,0x5998,0x6665, +0x6665,0x6665,0x6665,0x6665,0x6665,0x6665,0x5998,0x6665,0x3332,0x6665, +0x7332,0x7332,0x5998,0x7332,0x6665,0x6665,0x6665,0x6665,0x6665,0x6665, +0x6665,0x6CCB,0x6665,0x6665,0x6665,0x6665,0x6665,0x6665,0x6665,0x7332, +0x6665,0x7332,0x7998,0xFFFF }; + + + + +/*not sure why this is called hp, maybe for heap? */ +u32 hp[4]; +u32 *ptr_sfx_buf; +s32 D_80063724; +s32 seqp_1; +s32 seqp_2; +s32 seqp_3; +void *ptr_musicdatatable; + +char D_80063738[0x80]; +char D_800637B8[0x7E]; +s16 D_80063836; +s32 D_80063838; +s32 D_8006383C; +s32 D_80063840; +s16 musicTrack1_length; +s16 D_80063846; +s16 D_80063848; +s16 music1_length; +s16 music2_length; +s16 music3_length; +s32 music1_rate; +s32 music2_rate; +s32 music3_rate; +s32 D_8006385C; +char D_80063860[0xF8]; +char D_80063958[0xF8]; +char D_80063A50[0x100]; +char D_80063B50[0x54]; +s32 D_80063BA4; +s32 D_80063BA8; + + + + +/** + * 75F0 700069F0 + */ +#ifdef NONMATCHING +s32 audio_related(void *arg0, s32 arg1) { + // Node 0 + if (*arg0 > 0) + { + loop_1: + // Node 1 + (arg0 + 8)->unk-4 = (s32) (arg0->unk4 + arg1); + if ((0 + 1) < *arg0) + { + goto loop_1; + } + } + // (possible return value: 0) +} + +#else +GLOBAL_ASM( +.text +glabel audio_related +/* 0075F0 700069F0 948E0000 */ lhu $t6, ($a0) +/* 0075F4 700069F4 00001025 */ move $v0, $zero +/* 0075F8 700069F8 00801825 */ move $v1, $a0 +/* 0075FC 700069FC 19C0000A */ blez $t6, .L70006A28 +/* 007600 70006A00 00000000 */ nop +/* 007604 70006A04 8C6F0004 */ lw $t7, 4($v1) +.L70006A08: +/* 007608 70006A08 24420001 */ addiu $v0, $v0, 1 +/* 00760C 70006A0C 24630008 */ addiu $v1, $v1, 8 +/* 007610 70006A10 01E5C021 */ addu $t8, $t7, $a1 +/* 007614 70006A14 AC78FFFC */ sw $t8, -4($v1) +/* 007618 70006A18 94990000 */ lhu $t9, ($a0) +/* 00761C 70006A1C 0059082A */ slt $at, $v0, $t9 +/* 007620 70006A20 5420FFF9 */ bnezl $at, .L70006A08 +/* 007624 70006A24 8C6F0004 */ lw $t7, 4($v1) +.L70006A28: +/* 007628 70006A28 03E00008 */ jr $ra +/* 00762C 70006A2C 00000000 */ nop +) +#endif + + +/** + * 7630 70006A30 + * loads sound and music banks into memory segment 6 + */ +#ifdef NONMATCHING +void setupaudio(void) { + s32 sp38; + s32 sp40; + ?32 sp50; + ?32 sp54; + s8 sp58; + ?32 sp60; + ?32 sp64; + ?32 sp68; + ?32 sp6C; + ?32 sp70; + s8 sp74; + ?32 sp7C; + ?32 sp80; + ?32 sp84; + ?32 sp88; + ?32 sp8C; + s8 sp90; + ?32 sp98; + ?32 sp9C; + ?32 spA0; + ?32 spA4; + ?32 spA8; + ?32 spAC; + ?32 spB4; + ?32 spBC; + s8 spC0; + s32 spCC; + s32 spD4; + ?32 spD8; + ?32 spDC; + ?32 spE0; + ? temp_ret; + u32 temp_v1; + s32 temp_v0; + ? temp_ret_2; + s32 temp_v0_2; + ? temp_ret_3; + ? temp_ret_4; + s32 temp_v1_2; + ? temp_ret_5; + ? temp_ret_6; + s16 temp_t4; + void *temp_a0; + void *temp_a1; + s32 temp_v0_3; + u32 phi_v1; + void *phi_a0; + void *phi_v1_2; + void *phi_a1; + + // Node 0 + if (bootswitch_sound == 0) + { + // Node 1 + temp_ret = mempAllocBytesInBank(0x2e000, 6); + phi_v1 = temp_ret; +loop_2: + // Node 2 + temp_v1 = (phi_v1 + 1); + temp_v1->unk-1 = (u8)0; + phi_v1 = temp_v1; + if (temp_v1 < (u32) (temp_ret + 0x2e000)) + { + goto loop_2; + } + // Node 3 + alHeapInit(&hp, temp_ret, 0x2e000); + temp_v0 = (&_sfxtblSegmentRomStart - &_sfxctlSegmentRomStart); + sp38 = temp_v0; + temp_ret_2 = alHeapDBAlloc(0, 0, &hp, 1, temp_v0); + spD4 = temp_ret_2; + romCopy(temp_ret_2, &_sfxctlSegmentRomStart, sp38); + alBnkfNew(spD4, &_sfxtblSegmentRomStart); + temp_v0_2 = (&_instrumentstblSegmentRomStart - &_instrumentsctlSegmentRomStart); + sp38 = temp_v0_2; + ptr_sfx_buf = (?32) spD4->unk4; + temp_ret_3 = alHeapDBAlloc(0, 0, &hp, 1, temp_v0_2); + spCC = temp_ret_3; + romCopy(temp_ret_3, &_instrumentsctlSegmentRomStart, sp38); + alBnkfNew(spCC, &_instrumentstblSegmentRomStart); + D_80063724 = (?32) spCC->unk4; + temp_ret_4 = alHeapDBAlloc(0, 0, &hp, 1, 0x10); + ptr_musicdatatable = temp_ret_4; + romCopy(temp_ret_4, &_musicsampletblSegmentRomStart, 0x10); + temp_v1_2 = ((*ptr_musicdatatable * 8) + 4); + sp40 = temp_v1_2; + temp_ret_5 = alHeapDBAlloc(0, 0, &hp, 1, temp_v1_2); + ptr_musicdatatable = temp_ret_5; + romCopy(temp_ret_5, sp38, (((temp_v1_2 + 0xf) | 0xf) ^ 0xf), &ptr_musicdatatable); + audio_related(ptr_musicdatatable, &_musicsampletblSegmentRomStart); + D_80063838 = alHeapDBAlloc(0, 0, &hp, 1, 0x18c8); + temp_ret_6 = alHeapDBAlloc(0, 0, &hp, 1, 0x1770); + D_8006383C = temp_ret_6; + D_80063840 = (s32) (temp_ret_6 + 0x7d0); + phi_a0 = (void *) ptr_musicdatatable; + phi_v1_2 = &D_80063738; + phi_a1 = &D_800637B8; +loop_4: + // Node 4 + temp_t4 = phi_a0->unk8; + temp_a0 = (phi_a0 + 8); + temp_a1 = (phi_a1 + 2); + *phi_v1_2 = temp_t4; + temp_v0_3 = (temp_t4 & 0xffff); + temp_a1->unk-2 = (s16) temp_a0->unk2; + if ((temp_v0_3 & 1) != 0) + { + // Node 5 + *phi_v1_2 = (s16) (temp_v0_3 + 1); + } + // Node 6 + phi_a0 = temp_a0; + phi_v1_2 = (phi_v1_2 + 2); + phi_a1 = temp_a1; + if (temp_a1 != &D_80063836) + { + goto loop_4; + } + // Node 7 + spA4 = 0; + spA8 = 0x18; + spAC = 0x80; + spB4 = 0; + spC0 = (u8)6; + spBC = 0; + amCreateAudioMgr(&spA4, temp_a1, &D_80063836, &D_8006383C); + + sp88 = 0x10; + sp8C = 0x40; + sp90 = (u8)0x10; + sp98 = 0; + sp9C = 0; + spA0 = 0; + + sp6C = 0x10; + sp70 = 0x40; + sp74 = (u8)0x10; + sp7C = 0; + sp80 = 0; + sp84 = 0; + + sp50 = 0x10; + sp54 = 0x40; + sp58 = (u8)0x10; + sp60 = 0; + sp64 = 0; + sp68 = 0; + seqp_1 = alHeapDBAlloc(0, 0, &hp, 1, 0x7c); + seqp_2 = alHeapDBAlloc(0, 0, &hp, 1, 0x7c); + seqp_3 = alHeapDBAlloc(0, 0, &hp, 1, 0x7c); + alCSPNew(seqp_1, &sp88); + alSeqpSetBank(seqp_1, D_80063724); + alCSPNew(seqp_2, &sp6C); + alSeqpSetBank(seqp_2, D_80063724); + alCSPNew(seqp_3, &sp50); + alSeqpSetBank(seqp_3, D_80063724); + spDC = 0x40; + spD8 = 0x40; + spE0 = 8; + sfx_c_70007B20(&spD8); + startaudiThread(); + } + // Node 8 + return; +} +#else +GLOBAL_ASM( +.text +glabel setupaudio +/* 007630 70006A30 3C0E8002 */ lui $t6, %hi(bootswitch_sound) +/* 007634 70006A34 81CE43F8 */ lb $t6, %lo(bootswitch_sound)($t6) +/* 007638 70006A38 27BDFF18 */ addiu $sp, $sp, -0xe8 +/* 00763C 70006A3C AFBF0024 */ sw $ra, 0x24($sp) +/* 007640 70006A40 15C00109 */ bnez $t6, .L70006E68 +/* 007644 70006A44 AFB00020 */ sw $s0, 0x20($sp) +/* 007648 70006A48 3C040002 */ lui $a0, (0x0002E000 >> 16) # lui $a0, 2 +/* 00764C 70006A4C 3484E000 */ ori $a0, (0x0002E000 & 0xFFFF) # ori $a0, $a0, 0xe000 +/* 007650 70006A50 0C0025C8 */ jal mempAllocBytesInBank +/* 007654 70006A54 24050006 */ li $a1, 6 +/* 007658 70006A58 3C010002 */ lui $at, (0x0002E000 >> 16) # lui $at, 2 +/* 00765C 70006A5C 3421E000 */ ori $at, (0x0002E000 & 0xFFFF) # ori $at, $at, 0xe000 +/* 007660 70006A60 00401825 */ move $v1, $v0 +/* 007664 70006A64 00402825 */ move $a1, $v0 +/* 007668 70006A68 00412021 */ addu $a0, $v0, $at +.L70006A6C: +/* 00766C 70006A6C 24630001 */ addiu $v1, $v1, 1 +/* 007670 70006A70 0064082B */ sltu $at, $v1, $a0 +/* 007674 70006A74 1420FFFD */ bnez $at, .L70006A6C +/* 007678 70006A78 A060FFFF */ sb $zero, -1($v1) +/* 00767C 70006A7C 3C108006 */ lui $s0, %hi(hp) +/* 007680 70006A80 26103710 */ addiu $s0, %lo(hp) # addiu $s0, $s0, 0x3710 +/* 007684 70006A84 3C060002 */ lui $a2, (0x0002E000 >> 16) # lui $a2, 2 +/* 007688 70006A88 34C6E000 */ ori $a2, (0x0002E000 & 0xFFFF) # ori $a2, $a2, 0xe000 +/* 00768C 70006A8C 0C00434C */ jal alHeapInit +/* 007690 70006A90 02002025 */ move $a0, $s0 +/* 007694 70006A94 3C0F002F */ lui $t7, %hi(_sfxtblSegmentRomStart) # $t7, 0x2f +/* 007698 70006A98 3C18002F */ lui $t8, %hi(_sfxctlSegmentRomStart) # $t8, 0x2f +/* 00769C 70006A9C 2718BDE0 */ addiu $t8, %lo(_sfxctlSegmentRomStart) # addiu $t8, $t8, -0x4220 +/* 0076A0 70006AA0 25EF19A0 */ addiu $t7, %lo(_sfxtblSegmentRomStart) # addiu $t7, $t7, 0x19a0 +/* 0076A4 70006AA4 01F81023 */ subu $v0, $t7, $t8 +/* 0076A8 70006AA8 AFA20010 */ sw $v0, 0x10($sp) +/* 0076AC 70006AAC AFA20038 */ sw $v0, 0x38($sp) +/* 0076B0 70006AB0 00002025 */ move $a0, $zero +/* 0076B4 70006AB4 00002825 */ move $a1, $zero +/* 0076B8 70006AB8 02003025 */ move $a2, $s0 +/* 0076BC 70006ABC 0C003AD4 */ jal alHeapDBAlloc +/* 0076C0 70006AC0 24070001 */ li $a3, 1 +/* 0076C4 70006AC4 3C05002F */ lui $a1, %hi(_sfxctlSegmentRomStart) # $a1, 0x2f +/* 0076C8 70006AC8 AFA200D4 */ sw $v0, 0xd4($sp) +/* 0076CC 70006ACC 24A5BDE0 */ addiu $a1, %lo(_sfxctlSegmentRomStart) # addiu $a1, $a1, -0x4220 +/* 0076D0 70006AD0 00402025 */ move $a0, $v0 +/* 0076D4 70006AD4 0C001707 */ jal romCopy +/* 0076D8 70006AD8 8FA60038 */ lw $a2, 0x38($sp) +/* 0076DC 70006ADC 3C05002F */ lui $a1, %hi(_sfxtblSegmentRomStart) # $a1, 0x2f +/* 0076E0 70006AE0 24A519A0 */ addiu $a1, %lo(_sfxtblSegmentRomStart) # addiu $a1, $a1, 0x19a0 +/* 0076E4 70006AE4 0C00439D */ jal alBnkfNew +/* 0076E8 70006AE8 8FA400D4 */ lw $a0, 0xd4($sp) +/* 0076EC 70006AEC 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0076F0 70006AF0 3C09003C */ lui $t1, %hi(_instrumentstblSegmentRomStart) # $t1, 0x3c +/* 0076F4 70006AF4 3C0A003B */ lui $t2, %hi(_instrumentsctlSegmentRomStart) # $t2, 0x3b +/* 0076F8 70006AF8 8F280004 */ lw $t0, 4($t9) +/* 0076FC 70006AFC 254A4450 */ addiu $t2, %lo(_instrumentsctlSegmentRomStart) # addiu $t2, $t2, 0x4450 +/* 007700 70006B00 252987F0 */ addiu $t1, %lo(_instrumentstblSegmentRomStart) # addiu $t1, $t1, -0x7810 +/* 007704 70006B04 3C018006 */ lui $at, %hi(ptr_sfx_buf) +/* 007708 70006B08 012A1023 */ subu $v0, $t1, $t2 +/* 00770C 70006B0C AFA20010 */ sw $v0, 0x10($sp) +/* 007710 70006B10 AFA20038 */ sw $v0, 0x38($sp) +/* 007714 70006B14 00002025 */ move $a0, $zero +/* 007718 70006B18 00002825 */ move $a1, $zero +/* 00771C 70006B1C 02003025 */ move $a2, $s0 +/* 007720 70006B20 24070001 */ li $a3, 1 +/* 007724 70006B24 0C003AD4 */ jal alHeapDBAlloc +/* 007728 70006B28 AC283720 */ sw $t0, %lo(ptr_sfx_buf)($at) +/* 00772C 70006B2C 3C05003B */ lui $a1, %hi(_instrumentsctlSegmentRomStart) # $a1, 0x3b +/* 007730 70006B30 AFA200CC */ sw $v0, 0xcc($sp) +/* 007734 70006B34 24A54450 */ addiu $a1, %lo(_instrumentsctlSegmentRomStart) # addiu $a1, $a1, 0x4450 +/* 007738 70006B38 00402025 */ move $a0, $v0 +/* 00773C 70006B3C 0C001707 */ jal romCopy +/* 007740 70006B40 8FA60038 */ lw $a2, 0x38($sp) +/* 007744 70006B44 3C05003C */ lui $a1, %hi(_instrumentstblSegmentRomStart) # $a1, 0x3c +/* 007748 70006B48 24A587F0 */ addiu $a1, %lo(_instrumentstblSegmentRomStart) # addiu $a1, $a1, -0x7810 +/* 00774C 70006B4C 0C00439D */ jal alBnkfNew +/* 007750 70006B50 8FA400CC */ lw $a0, 0xcc($sp) +/* 007754 70006B54 8FAB00CC */ lw $t3, 0xcc($sp) +/* 007758 70006B58 3C018006 */ lui $at, %hi(D_80063724) +/* 00775C 70006B5C 240D0010 */ li $t5, 16 +/* 007760 70006B60 8D6C0004 */ lw $t4, 4($t3) +/* 007764 70006B64 AFAD0010 */ sw $t5, 0x10($sp) +/* 007768 70006B68 00002025 */ move $a0, $zero +/* 00776C 70006B6C 00002825 */ move $a1, $zero +/* 007770 70006B70 02003025 */ move $a2, $s0 +/* 007774 70006B74 24070001 */ li $a3, 1 +/* 007778 70006B78 0C003AD4 */ jal alHeapDBAlloc +/* 00777C 70006B7C AC2C3724 */ sw $t4, %lo(D_80063724)($at) +/* 007780 70006B80 3C038006 */ lui $v1, %hi(ptr_musicdatatable) +/* 007784 70006B84 3C050042 */ lui $a1, %hi(_musicsampletblSegmentRomStart) # $a1, 0x42 +/* 007788 70006B88 24633734 */ addiu $v1, %lo(ptr_musicdatatable) # addiu $v1, $v1, 0x3734 +/* 00778C 70006B8C 24A59790 */ addiu $a1, %lo(_musicsampletblSegmentRomStart) # addiu $a1, $a1, -0x6870 +/* 007790 70006B90 AC620000 */ sw $v0, ($v1) +/* 007794 70006B94 AFA50038 */ sw $a1, 0x38($sp) +/* 007798 70006B98 00402025 */ move $a0, $v0 +/* 00779C 70006B9C 0C001707 */ jal romCopy +/* 0077A0 70006BA0 24060010 */ li $a2, 16 +/* 0077A4 70006BA4 3C0E8006 */ lui $t6, %hi(ptr_musicdatatable) +/* 0077A8 70006BA8 8DCE3734 */ lw $t6, %lo(ptr_musicdatatable)($t6) +/* 0077AC 70006BAC 00002025 */ move $a0, $zero +/* 0077B0 70006BB0 00002825 */ move $a1, $zero +/* 0077B4 70006BB4 95C30000 */ lhu $v1, ($t6) +/* 0077B8 70006BB8 02003025 */ move $a2, $s0 +/* 0077BC 70006BBC 24070001 */ li $a3, 1 +/* 0077C0 70006BC0 000378C0 */ sll $t7, $v1, 3 +/* 0077C4 70006BC4 25E30004 */ addiu $v1, $t7, 4 +/* 0077C8 70006BC8 AFA30010 */ sw $v1, 0x10($sp) +/* 0077CC 70006BCC 0C003AD4 */ jal alHeapDBAlloc +/* 0077D0 70006BD0 AFA30040 */ sw $v1, 0x40($sp) +/* 0077D4 70006BD4 8FA30040 */ lw $v1, 0x40($sp) +/* 0077D8 70006BD8 3C078006 */ lui $a3, %hi(ptr_musicdatatable) +/* 0077DC 70006BDC 24E73734 */ addiu $a3, %lo(ptr_musicdatatable) # addiu $a3, $a3, 0x3734 +/* 0077E0 70006BE0 2466000F */ addiu $a2, $v1, 0xf +/* 0077E4 70006BE4 34D8000F */ ori $t8, $a2, 0xf +/* 0077E8 70006BE8 ACE20000 */ sw $v0, ($a3) +/* 0077EC 70006BEC 3B06000F */ xori $a2, $t8, 0xf +/* 0077F0 70006BF0 00402025 */ move $a0, $v0 +/* 0077F4 70006BF4 0C001707 */ jal romCopy +/* 0077F8 70006BF8 8FA50038 */ lw $a1, 0x38($sp) +/* 0077FC 70006BFC 3C048006 */ lui $a0, %hi(ptr_musicdatatable) +/* 007800 70006C00 3C050042 */ lui $a1, %hi(_musicsampletblSegmentRomStart) # $a1, 0x42 +/* 007804 70006C04 24A59790 */ addiu $a1, %lo(_musicsampletblSegmentRomStart) # addiu $a1, $a1, -0x6870 +/* 007808 70006C08 0C001A7C */ jal audio_related +/* 00780C 70006C0C 8C843734 */ lw $a0, %lo(ptr_musicdatatable)($a0) +/* 007810 70006C10 240818C8 */ li $t0, 6344 +/* 007814 70006C14 AFA80010 */ sw $t0, 0x10($sp) +/* 007818 70006C18 00002025 */ move $a0, $zero +/* 00781C 70006C1C 00002825 */ move $a1, $zero +/* 007820 70006C20 02003025 */ move $a2, $s0 +/* 007824 70006C24 0C003AD4 */ jal alHeapDBAlloc +/* 007828 70006C28 24070001 */ li $a3, 1 +/* 00782C 70006C2C 3C018006 */ lui $at, %hi(D_80063838) +/* 007830 70006C30 24091770 */ li $t1, 6000 +/* 007834 70006C34 AC223838 */ sw $v0, %lo(D_80063838)($at) +/* 007838 70006C38 AFA90010 */ sw $t1, 0x10($sp) +/* 00783C 70006C3C 00002025 */ move $a0, $zero +/* 007840 70006C40 00002825 */ move $a1, $zero +/* 007844 70006C44 02003025 */ move $a2, $s0 +/* 007848 70006C48 0C003AD4 */ jal alHeapDBAlloc +/* 00784C 70006C4C 24070001 */ li $a3, 1 +/* 007850 70006C50 3C078006 */ lui $a3, %hi(D_8006383C) +/* 007854 70006C54 24E7383C */ addiu $a3, %lo(D_8006383C) # addiu $a3, $a3, 0x383c +/* 007858 70006C58 ACE20000 */ sw $v0, ($a3) +/* 00785C 70006C5C 244B07D0 */ addiu $t3, $v0, 0x7d0 +/* 007860 70006C60 3C018006 */ lui $at, %hi(D_80063840) +/* 007864 70006C64 3C038006 */ lui $v1, %hi(D_80063738) +/* 007868 70006C68 3C048006 */ lui $a0, %hi(ptr_musicdatatable) +/* 00786C 70006C6C 3C058006 */ lui $a1, %hi(D_800637B8) +/* 007870 70006C70 3C068006 */ lui $a2, %hi(D_80063836) +/* 007874 70006C74 AC2B3840 */ sw $t3, %lo(D_80063840)($at) +/* 007878 70006C78 24C63836 */ addiu $a2, %lo(D_80063836) # addiu $a2, $a2, 0x3836 +/* 00787C 70006C7C 24A537B8 */ addiu $a1, %lo(D_800637B8) # addiu $a1, $a1, 0x37b8 +/* 007880 70006C80 8C843734 */ lw $a0, %lo(ptr_musicdatatable)($a0) +/* 007884 70006C84 24633738 */ addiu $v1, %lo(D_80063738) # addiu $v1, $v1, 0x3738 +.L70006C88: +/* 007888 70006C88 948C0008 */ lhu $t4, 8($a0) +/* 00788C 70006C8C 24840008 */ addiu $a0, $a0, 8 +/* 007890 70006C90 24A50002 */ addiu $a1, $a1, 2 +/* 007894 70006C94 A46C0000 */ sh $t4, ($v1) +/* 007898 70006C98 948D0002 */ lhu $t5, 2($a0) +/* 00789C 70006C9C 3182FFFF */ andi $v0, $t4, 0xffff +/* 0078A0 70006CA0 304E0001 */ andi $t6, $v0, 1 +/* 0078A4 70006CA4 11C00003 */ beqz $t6, .L70006CB4 +/* 0078A8 70006CA8 A4ADFFFE */ sh $t5, -2($a1) +/* 0078AC 70006CAC 244F0001 */ addiu $t7, $v0, 1 +/* 0078B0 70006CB0 A46F0000 */ sh $t7, ($v1) +.L70006CB4: +/* 0078B4 70006CB4 14A6FFF4 */ bne $a1, $a2, .L70006C88 +/* 0078B8 70006CB8 24630002 */ addiu $v1, $v1, 2 +/* 0078BC 70006CBC 24180018 */ li $t8, 24 +/* 0078C0 70006CC0 24190080 */ li $t9, 128 +/* 0078C4 70006CC4 24080006 */ li $t0, 6 +/* 0078C8 70006CC8 AFA000A4 */ sw $zero, 0xa4($sp) +/* 0078CC 70006CCC AFB800A8 */ sw $t8, 0xa8($sp) +/* 0078D0 70006CD0 AFB900AC */ sw $t9, 0xac($sp) +/* 0078D4 70006CD4 AFA000B4 */ sw $zero, 0xb4($sp) +/* 0078D8 70006CD8 A3A800C0 */ sb $t0, 0xc0($sp) +/* 0078DC 70006CDC AFA000BC */ sw $zero, 0xbc($sp) +/* 0078E0 70006CE0 AFB000B8 */ sw $s0, 0xb8($sp) +/* 0078E4 70006CE4 0C0006F4 */ jal amCreateAudioMgr +/* 0078E8 70006CE8 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 0078EC 70006CEC 24090010 */ li $t1, 16 +/* 0078F0 70006CF0 240A0040 */ li $t2, 64 +/* 0078F4 70006CF4 240B0010 */ li $t3, 16 +/* 0078F8 70006CF8 240C0010 */ li $t4, 16 +/* 0078FC 70006CFC 240D0040 */ li $t5, 64 +/* 007900 70006D00 240E0010 */ li $t6, 16 +/* 007904 70006D04 240F0010 */ li $t7, 16 +/* 007908 70006D08 24180040 */ li $t8, 64 +/* 00790C 70006D0C 24190010 */ li $t9, 16 +/* 007910 70006D10 2408007C */ li $t0, 124 +/* 007914 70006D14 AFA90088 */ sw $t1, 0x88($sp) +/* 007918 70006D18 AFAA008C */ sw $t2, 0x8c($sp) +/* 00791C 70006D1C A3AB0090 */ sb $t3, 0x90($sp) +/* 007920 70006D20 AFB00094 */ sw $s0, 0x94($sp) +/* 007924 70006D24 AFA00098 */ sw $zero, 0x98($sp) +/* 007928 70006D28 AFA0009C */ sw $zero, 0x9c($sp) +/* 00792C 70006D2C AFA000A0 */ sw $zero, 0xa0($sp) +/* 007930 70006D30 AFAC006C */ sw $t4, 0x6c($sp) +/* 007934 70006D34 AFAD0070 */ sw $t5, 0x70($sp) +/* 007938 70006D38 A3AE0074 */ sb $t6, 0x74($sp) +/* 00793C 70006D3C AFB00078 */ sw $s0, 0x78($sp) +/* 007940 70006D40 AFA0007C */ sw $zero, 0x7c($sp) +/* 007944 70006D44 AFA00080 */ sw $zero, 0x80($sp) +/* 007948 70006D48 AFA00084 */ sw $zero, 0x84($sp) +/* 00794C 70006D4C AFAF0050 */ sw $t7, 0x50($sp) +/* 007950 70006D50 AFB80054 */ sw $t8, 0x54($sp) +/* 007954 70006D54 A3B90058 */ sb $t9, 0x58($sp) +/* 007958 70006D58 AFB0005C */ sw $s0, 0x5c($sp) +/* 00795C 70006D5C AFA00060 */ sw $zero, 0x60($sp) +/* 007960 70006D60 AFA00064 */ sw $zero, 0x64($sp) +/* 007964 70006D64 AFA00068 */ sw $zero, 0x68($sp) +/* 007968 70006D68 AFA80010 */ sw $t0, 0x10($sp) +/* 00796C 70006D6C 00002025 */ move $a0, $zero +/* 007970 70006D70 00002825 */ move $a1, $zero +/* 007974 70006D74 02003025 */ move $a2, $s0 +/* 007978 70006D78 0C003AD4 */ jal alHeapDBAlloc +/* 00797C 70006D7C 24070001 */ li $a3, 1 +/* 007980 70006D80 3C018006 */ lui $at, %hi(seqp_1) +/* 007984 70006D84 2409007C */ li $t1, 124 +/* 007988 70006D88 AC223728 */ sw $v0, %lo(seqp_1)($at) +/* 00798C 70006D8C AFA90010 */ sw $t1, 0x10($sp) +/* 007990 70006D90 00002025 */ move $a0, $zero +/* 007994 70006D94 00002825 */ move $a1, $zero +/* 007998 70006D98 02003025 */ move $a2, $s0 +/* 00799C 70006D9C 0C003AD4 */ jal alHeapDBAlloc +/* 0079A0 70006DA0 24070001 */ li $a3, 1 +/* 0079A4 70006DA4 3C018006 */ lui $at, %hi(seqp_2) +/* 0079A8 70006DA8 240A007C */ li $t2, 124 +/* 0079AC 70006DAC AC22372C */ sw $v0, %lo(seqp_2)($at) +/* 0079B0 70006DB0 AFAA0010 */ sw $t2, 0x10($sp) +/* 0079B4 70006DB4 00002025 */ move $a0, $zero +/* 0079B8 70006DB8 00002825 */ move $a1, $zero +/* 0079BC 70006DBC 02003025 */ move $a2, $s0 +/* 0079C0 70006DC0 0C003AD4 */ jal alHeapDBAlloc +/* 0079C4 70006DC4 24070001 */ li $a3, 1 +/* 0079C8 70006DC8 3C018006 */ lui $at, %hi(seqp_3) +/* 0079CC 70006DCC 3C048006 */ lui $a0, %hi(seqp_1) +/* 0079D0 70006DD0 AC223730 */ sw $v0, %lo(seqp_3)($at) +/* 0079D4 70006DD4 8C843728 */ lw $a0, %lo(seqp_1)($a0) +/* 0079D8 70006DD8 0C004820 */ jal alCSPNew +/* 0079DC 70006DDC 27A50088 */ addiu $a1, $sp, 0x88 +/* 0079E0 70006DE0 3C048006 */ lui $a0, %hi(seqp_1) +/* 0079E4 70006DE4 3C058006 */ lui $a1, %hi(D_80063724) +/* 0079E8 70006DE8 8CA53724 */ lw $a1, %lo(D_80063724)($a1) +/* 0079EC 70006DEC 0C00487C */ jal alSeqpSetBank +/* 0079F0 70006DF0 8C843728 */ lw $a0, %lo(seqp_1)($a0) +/* 0079F4 70006DF4 3C048006 */ lui $a0, %hi(seqp_2) +/* 0079F8 70006DF8 8C84372C */ lw $a0, %lo(seqp_2)($a0) +/* 0079FC 70006DFC 0C004820 */ jal alCSPNew +/* 007A00 70006E00 27A5006C */ addiu $a1, $sp, 0x6c +/* 007A04 70006E04 3C048006 */ lui $a0, %hi(seqp_2) +/* 007A08 70006E08 3C058006 */ lui $a1, %hi(D_80063724) +/* 007A0C 70006E0C 8CA53724 */ lw $a1, %lo(D_80063724)($a1) +/* 007A10 70006E10 0C00487C */ jal alSeqpSetBank +/* 007A14 70006E14 8C84372C */ lw $a0, %lo(seqp_2)($a0) +/* 007A18 70006E18 3C048006 */ lui $a0, %hi(seqp_3) +/* 007A1C 70006E1C 8C843730 */ lw $a0, %lo(seqp_3)($a0) +/* 007A20 70006E20 0C004820 */ jal alCSPNew +/* 007A24 70006E24 27A50050 */ addiu $a1, $sp, 0x50 +/* 007A28 70006E28 3C048006 */ lui $a0, %hi(seqp_3) +/* 007A2C 70006E2C 3C058006 */ lui $a1, %hi(D_80063724) +/* 007A30 70006E30 8CA53724 */ lw $a1, %lo(D_80063724)($a1) +/* 007A34 70006E34 0C00487C */ jal alSeqpSetBank +/* 007A38 70006E38 8C843730 */ lw $a0, %lo(seqp_3)($a0) +/* 007A3C 70006E3C 240B0040 */ li $t3, 64 +/* 007A40 70006E40 240C0040 */ li $t4, 64 +/* 007A44 70006E44 240D0008 */ li $t5, 8 +/* 007A48 70006E48 AFAB00DC */ sw $t3, 0xdc($sp) +/* 007A4C 70006E4C AFAC00D8 */ sw $t4, 0xd8($sp) +/* 007A50 70006E50 AFAD00E0 */ sw $t5, 0xe0($sp) +/* 007A54 70006E54 AFB000E4 */ sw $s0, 0xe4($sp) +/* 007A58 70006E58 0C001EC8 */ jal sfx_c_70007B20 +/* 007A5C 70006E5C 27A400D8 */ addiu $a0, $sp, 0xd8 +/* 007A60 70006E60 0C0007D6 */ jal startaudiThread +/* 007A64 70006E64 00000000 */ nop +.L70006E68: +/* 007A68 70006E68 8FBF0024 */ lw $ra, 0x24($sp) +/* 007A6C 70006E6C 8FB00020 */ lw $s0, 0x20($sp) +/* 007A70 70006E70 27BD00E8 */ addiu $sp, $sp, 0xe8 +/* 007A74 70006E74 03E00008 */ jr $ra +/* 007A78 70006E78 00000000 */ nop +) +#endif + + +/** + * 7A7C 70006E7C + * play first music track A0 + */ +#ifdef NONMATCHING +void musicTrack1Play(s32 arg0, s32 arg852) { + ? sp34; + s32 sp2140; + void *temp_t2; + s32 temp_v0; + s32 temp_a2; + + // Node 0 + if (bootswitch_sound == 0) + { + // Node 1 + if (music1_track_num != 0) + { + // Node 2 + musicTrack1Stop(); + } + // Node 3 + music1_track_num = arg852; + if (alCSPGetState(seqp_1) != 0) + { + loop_4: + // Node 4 + if (alCSPGetState(seqp_1) != 0) + { + goto loop_4; + } + } + // Node 5 + temp_t2 = (ptr_musicdatatable + (music1_track_num * 8)); + temp_v0 = (music1_track_num * 2); + if ((u32) temp_t2->unk4 < 0x10000U) + { + // Node 6 + musicTrack1Play(1, temp_t2->unk4, music1_track_num); + return; + // (possible return value: musicTrack1Play(1, temp_t2->unk4, music1_track_num)) + } + // Node 7 + temp_a2 = (((*(&D_800637B8 + temp_v0) + 0xf) | 0xf) ^ 0xf); + sp2140 = (s32) D_80063838; + romCopy(((D_80063838 + (((((0x80060000 + temp_v0)->unk3738 + 0xf) | 0xf) ^ 0xf) + 0x40)) - temp_a2), temp_t2->unk4, temp_a2, music1_track_num); + decompressdata(sp28, sp2140, &sp34); + alCSeqNew(&D_80063860, D_80063838); + alCSPSetSeq(seqp_1, &D_80063860); + musicTrack1Vol((musicTrack1Length() & 0xffff)); + alCSPPlay(seqp_1); + } + // Node 8 + return; + // (function likely void) +} + +#else +GLOBAL_ASM( +.text +glabel musicTrack1Play +/* 007A7C 70006E7C 3C0E8002 */ lui $t6, %hi(bootswitch_sound) +/* 007A80 70006E80 81CE43F8 */ lb $t6, %lo(bootswitch_sound)($t6) +/* 007A84 70006E84 27BDDEB8 */ addiu $sp, $sp, -0x2148 +/* 007A88 70006E88 AFBF001C */ sw $ra, 0x1c($sp) +/* 007A8C 70006E8C AFB00018 */ sw $s0, 0x18($sp) +/* 007A90 70006E90 15C0004A */ bnez $t6, .L70006FBC +/* 007A94 70006E94 AFA42148 */ sw $a0, 0x2148($sp) +/* 007A98 70006E98 3C0F8002 */ lui $t7, %hi(music1_track_num) +/* 007A9C 70006E9C 8DEF4334 */ lw $t7, %lo(music1_track_num)($t7) +/* 007AA0 70006EA0 51E00004 */ beql $t7, $zero, .L70006EB4 +/* 007AA4 70006EA4 8FB82148 */ lw $t8, 0x2148($sp) +/* 007AA8 70006EA8 0C001BF4 */ jal musicTrack1Stop +/* 007AAC 70006EAC 00000000 */ nop +/* 007AB0 70006EB0 8FB82148 */ lw $t8, 0x2148($sp) +.L70006EB4: +/* 007AB4 70006EB4 3C108006 */ lui $s0, %hi(seqp_1) +/* 007AB8 70006EB8 3C018002 */ lui $at, %hi(music1_track_num) +/* 007ABC 70006EBC 26103728 */ addiu $s0, %lo(seqp_1) # addiu $s0, $s0, 0x3728 +/* 007AC0 70006EC0 AC384334 */ sw $t8, %lo(music1_track_num)($at) +/* 007AC4 70006EC4 0C00488C */ jal alCSPGetState +/* 007AC8 70006EC8 8E040000 */ lw $a0, ($s0) +/* 007ACC 70006ECC 10400005 */ beqz $v0, .L70006EE4 +/* 007AD0 70006ED0 00000000 */ nop +.L70006ED4: +/* 007AD4 70006ED4 0C00488C */ jal alCSPGetState +/* 007AD8 70006ED8 8E040000 */ lw $a0, ($s0) +/* 007ADC 70006EDC 1440FFFD */ bnez $v0, .L70006ED4 +/* 007AE0 70006EE0 00000000 */ nop +.L70006EE4: +/* 007AE4 70006EE4 3C078002 */ lui $a3, %hi(music1_track_num) +/* 007AE8 70006EE8 8CE74334 */ lw $a3, %lo(music1_track_num)($a3) +/* 007AEC 70006EEC 3C198006 */ lui $t9, %hi(ptr_musicdatatable) +/* 007AF0 70006EF0 8F393734 */ lw $t9, %lo(ptr_musicdatatable)($t9) +/* 007AF4 70006EF4 000748C0 */ sll $t1, $a3, 3 +/* 007AF8 70006EF8 3C010001 */ lui $at, 1 +/* 007AFC 70006EFC 03295021 */ addu $t2, $t9, $t1 +/* 007B00 70006F00 8D450004 */ lw $a1, 4($t2) +/* 007B04 70006F04 3C038006 */ lui $v1, %hi(D_80063738) +/* 007B08 70006F08 00071040 */ sll $v0, $a3, 1 +/* 007B0C 70006F0C 00A1082B */ sltu $at, $a1, $at +/* 007B10 70006F10 10200005 */ beqz $at, .L70006F28 +/* 007B14 70006F14 00621821 */ addu $v1, $v1, $v0 +/* 007B18 70006F18 0C001B9F */ jal musicTrack1Play +/* 007B1C 70006F1C 24040001 */ li $a0, 1 +/* 007B20 70006F20 10000027 */ b .L70006FC0 +/* 007B24 70006F24 8FBF001C */ lw $ra, 0x1c($sp) +.L70006F28: +/* 007B28 70006F28 94633738 */ lhu $v1, %lo(D_80063738)($v1) +/* 007B2C 70006F2C 3C068006 */ lui $a2, %hi(D_800637B8) +/* 007B30 70006F30 00C23021 */ addu $a2, $a2, $v0 +/* 007B34 70006F34 94C637B8 */ lhu $a2, %lo(D_800637B8)($a2) +/* 007B38 70006F38 3C088006 */ lui $t0, %hi(D_80063838) +/* 007B3C 70006F3C 2463000F */ addiu $v1, $v1, 0xf +/* 007B40 70006F40 8D083838 */ lw $t0, %lo(D_80063838)($t0) +/* 007B44 70006F44 346B000F */ ori $t3, $v1, 0xf +/* 007B48 70006F48 396C000F */ xori $t4, $t3, 0xf +/* 007B4C 70006F4C 24C6000F */ addiu $a2, $a2, 0xf +/* 007B50 70006F50 25830040 */ addiu $v1, $t4, 0x40 +/* 007B54 70006F54 34CD000F */ ori $t5, $a2, 0xf +/* 007B58 70006F58 39A6000F */ xori $a2, $t5, 0xf +/* 007B5C 70006F5C 01037821 */ addu $t7, $t0, $v1 +/* 007B60 70006F60 01E62023 */ subu $a0, $t7, $a2 +/* 007B64 70006F64 AFA40028 */ sw $a0, 0x28($sp) +/* 007B68 70006F68 0C001707 */ jal romCopy +/* 007B6C 70006F6C AFA82140 */ sw $t0, 0x2140($sp) +/* 007B70 70006F70 8FA40028 */ lw $a0, 0x28($sp) +/* 007B74 70006F74 8FA52140 */ lw $a1, 0x2140($sp) +/* 007B78 70006F78 0FC339FC */ jal decompressdata +/* 007B7C 70006F7C 27A60034 */ addiu $a2, $sp, 0x34 +/* 007B80 70006F80 3C048006 */ lui $a0, %hi(D_80063860) +/* 007B84 70006F84 3C058006 */ lui $a1, %hi(D_80063838) +/* 007B88 70006F88 8CA53838 */ lw $a1, %lo(D_80063838)($a1) +/* 007B8C 70006F8C 0C0049E7 */ jal alCSeqNew +/* 007B90 70006F90 24843860 */ addiu $a0, %lo(D_80063860) # addiu $a0, $a0, 0x3860 +/* 007B94 70006F94 3C058006 */ lui $a1, %hi(D_80063860) +/* 007B98 70006F98 24A53860 */ addiu $a1, %lo(D_80063860) # addiu $a1, $a1, 0x3860 +/* 007B9C 70006F9C 0C004B40 */ jal alCSPSetSeq +/* 007BA0 70006FA0 8E040000 */ lw $a0, ($s0) +/* 007BA4 70006FA4 0C001C0C */ jal musicTrack1Length +/* 007BA8 70006FA8 00000000 */ nop +/* 007BAC 70006FAC 0C001C0F */ jal musicTrack1Vol +/* 007BB0 70006FB0 3044FFFF */ andi $a0, $v0, 0xffff +/* 007BB4 70006FB4 0C004B50 */ jal alCSPPlay +/* 007BB8 70006FB8 8E040000 */ lw $a0, ($s0) +.L70006FBC: +/* 007BBC 70006FBC 8FBF001C */ lw $ra, 0x1c($sp) +.L70006FC0: +/* 007BC0 70006FC0 8FB00018 */ lw $s0, 0x18($sp) +/* 007BC4 70006FC4 27BD2148 */ addiu $sp, $sp, 0x2148 +/* 007BC8 70006FC8 03E00008 */ jr $ra +/* 007BCC 70006FCC 00000000 */ nop +) +#endif + +/** + * 7BD0 70006FD0 + * stop playing first music track + */ +void musicTrack1Stop(void) { + if (bootswitch_sound == 0) + { + music1_playing = 0; + if (music1_track_num != 0) + { + if (alCSPGetState(seqp_1) == 1) + { + alCSPStop(seqp_1); + } + } + music1_track_num = 0; + } +} + +/** + * 7C30 70007030 + * V0= [80024338] + */ +u16 musicTrack1Length(void) { + return music1len; +} + + + + + + +/** + * 7C3C 7000703C + * ??? - sets something for currently running music track... + * accepts: A0=value + */ +#ifdef NONMATCHING +void musicTrack1Vol(s32 arg0) { + s16 temp_a2; + + // Node 0 + temp_a2 = (arg0 & 0xffff); + music1len = temp_a2; + alCSPSetVol(seqp_1, ((s32) (((u32) (temp_a2 * *(&music_tempo_array + (music1_track_num * 2))) >> 0xf) << 0x10) >> 0x10), temp_a2); + return; + // (possible return value: alCSPSetVol(seqp_1, ((s32) (((u32) (temp_a2 * *(&music_tempo_array + (music1_track_num * 2))) >> 0xf) << 0x10) >> 0x10), temp_a2)) +} + +#else +GLOBAL_ASM( +.text +glabel musicTrack1Vol +/* 007C3C 7000703C 3C0E8002 */ lui $t6, %hi(music1_track_num) +/* 007C40 70007040 8DCE4334 */ lw $t6, %lo(music1_track_num)($t6) +/* 007C44 70007044 3C188002 */ lui $t8, %hi(music_tempo_array) +/* 007C48 70007048 3086FFFF */ andi $a2, $a0, 0xffff +/* 007C4C 7000704C 000E7840 */ sll $t7, $t6, 1 +/* 007C50 70007050 030FC021 */ addu $t8, $t8, $t7 +/* 007C54 70007054 87184358 */ lh $t8, %lo(music_tempo_array)($t8) +/* 007C58 70007058 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 007C5C 7000705C AFA40018 */ sw $a0, 0x18($sp) +/* 007C60 70007060 00D80019 */ multu $a2, $t8 +/* 007C64 70007064 AFBF0014 */ sw $ra, 0x14($sp) +/* 007C68 70007068 3C018002 */ lui $at, %hi(music1len) +/* 007C6C 7000706C 3C048006 */ lui $a0, %hi(seqp_1) +/* 007C70 70007070 A4264338 */ sh $a2, %lo(music1len)($at) +/* 007C74 70007074 8C843728 */ lw $a0, %lo(seqp_1)($a0) +/* 007C78 70007078 00001012 */ mflo $v0 +/* 007C7C 7000707C 0002CBC2 */ srl $t9, $v0, 0xf +/* 007C80 70007080 00192C00 */ sll $a1, $t9, 0x10 +/* 007C84 70007084 00054403 */ sra $t0, $a1, 0x10 +/* 007C88 70007088 0C004B68 */ jal alCSPSetVol +/* 007C8C 7000708C 01002825 */ move $a1, $t0 +/* 007C90 70007090 8FBF0014 */ lw $ra, 0x14($sp) +/* 007C94 70007094 27BD0018 */ addiu $sp, $sp, 0x18 +/* 007C98 70007098 03E00008 */ jr $ra +/* 007C9C 7000709C 00000000 */ nop +) +#endif + + + + + + + +/** + * 7CA0 700070A0 + */ +#ifdef NONMATCHING +void *musicTrack1Tempo(void) { + // Node 0 + *(&music_tempo_array + (music1_track_num * 2)) = musicTrack1Length(); + if (music_tempo_array >= 0) + { + loop_1: + // Node 1 + if (music_tempo_array.unk2 >= 0) + { + goto loop_1; + } + } + // (possible return value: &music_tempo_array) +} + +#else +GLOBAL_ASM( +.text +glabel musicTrack1Tempo +/* 007CA0 700070A0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 007CA4 700070A4 AFBF0014 */ sw $ra, 0x14($sp) +/* 007CA8 700070A8 0C001C0C */ jal musicTrack1Length +/* 007CAC 700070AC 00000000 */ nop +/* 007CB0 700070B0 3C0E8002 */ lui $t6, %hi(music1_track_num) +/* 007CB4 700070B4 8DCE4334 */ lw $t6, %lo(music1_track_num)($t6) +/* 007CB8 700070B8 3C048002 */ lui $a0, %hi(music_tempo_array) +/* 007CBC 700070BC 24844358 */ addiu $a0, %lo(music_tempo_array) # addiu $a0, $a0, 0x4358 +/* 007CC0 700070C0 000E7840 */ sll $t7, $t6, 1 +/* 007CC4 700070C4 008FC021 */ addu $t8, $a0, $t7 +/* 007CC8 700070C8 A7020000 */ sh $v0, ($t8) +/* 007CCC 700070CC 84990000 */ lh $t9, ($a0) +/* 007CD0 700070D0 3C028002 */ lui $v0, %hi(music_tempo_array) +/* 007CD4 700070D4 24424358 */ addiu $v0, %lo(music_tempo_array) # addiu $v0, $v0, 0x4358 +/* 007CD8 700070D8 07200005 */ bltz $t9, .L700070F0 +/* 007CDC 700070DC 8FBF0014 */ lw $ra, 0x14($sp) +/* 007CE0 700070E0 84480002 */ lh $t0, 2($v0) +.L700070E4: +/* 007CE4 700070E4 24420002 */ addiu $v0, $v0, 2 +/* 007CE8 700070E8 0503FFFE */ bgezl $t0, .L700070E4 +/* 007CEC 700070EC 84480002 */ lh $t0, 2($v0) +.L700070F0: +/* 007CF0 700070F0 03E00008 */ jr $ra +/* 007CF4 700070F4 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + + +/** + * 7CF8 700070F8 + */ +void music_related_1(f32 rate) { + if (music1_playing >= 0) + { + musicTrack1_length = musicTrack1Length(); + music1_length = 0; + music1_rate = (s32) (rate * 60.0f); + music1_playing = -1; + } +} + + + + + + +/** + * 7D68 70007168 + */ +#ifdef NONMATCHING +s16 music_related_3(f32 arg0, s32 arg1, f32 rate, s16 length) { + if (music1_playing <= 0) + { + alCSPPlay(seqp_1); + if (length == 0xffff) + { + music1_length = musicTrack1_length; + } + else + { + music1_length = length; + } + musicTrack1_length = (u16)0; + music1_rate = (s32) (rate * 60.0f); + music1_playing = 1; + } +} +#else +GLOBAL_ASM( +.text +glabel music_related_3 +/* 007D68 70007168 3C0E8002 */ lui $t6, %hi(music1_playing) +/* 007D6C 7000716C 8DCE434C */ lw $t6, %lo(music1_playing)($t6) +/* 007D70 70007170 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 007D74 70007174 AFBF0014 */ sw $ra, 0x14($sp) +/* 007D78 70007178 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 007D7C 7000717C 1DC0001D */ bgtz $t6, .L700071F4 +/* 007D80 70007180 AFA5001C */ sw $a1, 0x1c($sp) +/* 007D84 70007184 3C048006 */ lui $a0, %hi(seqp_1) +/* 007D88 70007188 0C004B50 */ jal alCSPPlay +/* 007D8C 7000718C 8C843728 */ lw $a0, %lo(seqp_1)($a0) +/* 007D90 70007190 97A2001E */ lhu $v0, 0x1e($sp) +/* 007D94 70007194 3401FFFF */ li $at, 65535 +/* 007D98 70007198 3C0F8006 */ lui $t7, %hi(musicTrack1_length) +/* 007D9C 7000719C 14410005 */ bne $v0, $at, .L700071B4 +/* 007DA0 700071A0 00000000 */ nop +/* 007DA4 700071A4 95EF3844 */ lhu $t7, %lo(musicTrack1_length)($t7) +/* 007DA8 700071A8 3C018006 */ lui $at, %hi(music1_length) +/* 007DAC 700071AC 10000003 */ b .L700071BC +/* 007DB0 700071B0 A42F384A */ sh $t7, %lo(music1_length)($at) +.L700071B4: +/* 007DB4 700071B4 3C018006 */ lui $at, %hi(music1_length) +/* 007DB8 700071B8 A422384A */ sh $v0, %lo(music1_length)($at) +.L700071BC: +/* 007DBC 700071BC 3C018006 */ lui $at, %hi(musicTrack1_length) +/* 007DC0 700071C0 A4203844 */ sh $zero, %lo(musicTrack1_length)($at) +/* 007DC4 700071C4 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 007DC8 700071C8 44813000 */ mtc1 $at, $f6 +/* 007DCC 700071CC C7A40018 */ lwc1 $f4, 0x18($sp) +/* 007DD0 700071D0 3C018006 */ lui $at, %hi(music1_rate) +/* 007DD4 700071D4 24080001 */ li $t0, 1 +/* 007DD8 700071D8 46062202 */ mul.s $f8, $f4, $f6 +/* 007DDC 700071DC 4600428D */ trunc.w.s $f10, $f8 +/* 007DE0 700071E0 44195000 */ mfc1 $t9, $f10 +/* 007DE4 700071E4 00000000 */ nop +/* 007DE8 700071E8 AC393850 */ sw $t9, %lo(music1_rate)($at) +/* 007DEC 700071EC 3C018002 */ lui $at, %hi(music1_playing) +/* 007DF0 700071F0 AC28434C */ sw $t0, %lo(music1_playing)($at) +.L700071F4: +/* 007DF4 700071F4 8FBF0014 */ lw $ra, 0x14($sp) +/* 007DF8 700071F8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 007DFC 700071FC 03E00008 */ jr $ra +/* 007E00 70007200 00000000 */ nop +) +#endif + + + + + + +/** + * 7E04 70007204 + */ +#ifdef NONMATCHING +void musicTrack2Play(s32 arg0, s32 arg852) { + ? sp34; + s32 sp2140; + void *temp_t2; + s32 temp_v0; + s32 temp_a2; + + // Node 0 + if (bootswitch_sound == 0) + { + // Node 1 + if (music2_track_num != 0) + { + // Node 2 + musicTrack2Stop(); + } + // Node 3 + music2_track_num = arg852; + if (alCSPGetState(seqp_2) != 0) + { + loop_4: + // Node 4 + if (alCSPGetState(seqp_2) != 0) + { + goto loop_4; + } + } + // Node 5 + temp_t2 = (ptr_musicdatatable + (music2_track_num * 8)); + temp_v0 = (music2_track_num * 2); + if ((u32) temp_t2->unk4 < 0x10000U) + { + // Node 6 + musicTrack2Play(1, temp_t2->unk4, music2_track_num); + return; + // (possible return value: musicTrack2Play(1, temp_t2->unk4, music2_track_num)) + } + // Node 7 + temp_a2 = (((*(&D_800637B8 + temp_v0) + 0xf) | 0xf) ^ 0xf); + sp2140 = (s32) D_8006383C; + romCopy(((D_8006383C + (((((0x80060000 + temp_v0)->unk3738 + 0xf) | 0xf) ^ 0xf) + 0x40)) - temp_a2), temp_t2->unk4, temp_a2, music2_track_num); + decompressdata(sp28, sp2140, &sp34); + alCSeqNew(&D_80063958, D_8006383C); + alCSPSetSeq(seqp_2, &D_80063958); + musicTrack2Vol((musicTrack2Length() & 0xffff)); + alCSPPlay(seqp_2); + } + // Node 8 + return; + // (function likely void) +} + +#else +GLOBAL_ASM( +.text +glabel musicTrack2Play +/* 007E04 70007204 3C0E8002 */ lui $t6, %hi(bootswitch_sound) +/* 007E08 70007208 81CE43F8 */ lb $t6, %lo(bootswitch_sound)($t6) +/* 007E0C 7000720C 27BDDEB8 */ addiu $sp, $sp, -0x2148 +/* 007E10 70007210 AFBF001C */ sw $ra, 0x1c($sp) +/* 007E14 70007214 AFB00018 */ sw $s0, 0x18($sp) +/* 007E18 70007218 15C0004A */ bnez $t6, .L70007344 +/* 007E1C 7000721C AFA42148 */ sw $a0, 0x2148($sp) +/* 007E20 70007220 3C0F8002 */ lui $t7, %hi(music2_track_num) +/* 007E24 70007224 8DEF433C */ lw $t7, %lo(music2_track_num)($t7) +/* 007E28 70007228 51E00004 */ beql $t7, $zero, .L7000723C +/* 007E2C 7000722C 8FB82148 */ lw $t8, 0x2148($sp) +/* 007E30 70007230 0C001CD6 */ jal musicTrack2Stop +/* 007E34 70007234 00000000 */ nop +/* 007E38 70007238 8FB82148 */ lw $t8, 0x2148($sp) +.L7000723C: +/* 007E3C 7000723C 3C108006 */ lui $s0, %hi(seqp_2) +/* 007E40 70007240 3C018002 */ lui $at, %hi(music2_track_num) +/* 007E44 70007244 2610372C */ addiu $s0, %lo(seqp_2) # addiu $s0, $s0, 0x372c +/* 007E48 70007248 AC38433C */ sw $t8, %lo(music2_track_num)($at) +/* 007E4C 7000724C 0C00488C */ jal alCSPGetState +/* 007E50 70007250 8E040000 */ lw $a0, ($s0) +/* 007E54 70007254 10400005 */ beqz $v0, .L7000726C +/* 007E58 70007258 00000000 */ nop +.L7000725C: +/* 007E5C 7000725C 0C00488C */ jal alCSPGetState +/* 007E60 70007260 8E040000 */ lw $a0, ($s0) +/* 007E64 70007264 1440FFFD */ bnez $v0, .L7000725C +/* 007E68 70007268 00000000 */ nop +.L7000726C: +/* 007E6C 7000726C 3C078002 */ lui $a3, %hi(music2_track_num) +/* 007E70 70007270 8CE7433C */ lw $a3, %lo(music2_track_num)($a3) +/* 007E74 70007274 3C198006 */ lui $t9, %hi(ptr_musicdatatable) +/* 007E78 70007278 8F393734 */ lw $t9, %lo(ptr_musicdatatable)($t9) +/* 007E7C 7000727C 000748C0 */ sll $t1, $a3, 3 +/* 007E80 70007280 3C010001 */ lui $at, 1 +/* 007E84 70007284 03295021 */ addu $t2, $t9, $t1 +/* 007E88 70007288 8D450004 */ lw $a1, 4($t2) +/* 007E8C 7000728C 3C038006 */ lui $v1, %hi(D_80063738) +/* 007E90 70007290 00071040 */ sll $v0, $a3, 1 +/* 007E94 70007294 00A1082B */ sltu $at, $a1, $at +/* 007E98 70007298 10200005 */ beqz $at, .L700072B0 +/* 007E9C 7000729C 00621821 */ addu $v1, $v1, $v0 +/* 007EA0 700072A0 0C001C81 */ jal musicTrack2Play +/* 007EA4 700072A4 24040001 */ li $a0, 1 +/* 007EA8 700072A8 10000027 */ b .L70007348 +/* 007EAC 700072AC 8FBF001C */ lw $ra, 0x1c($sp) +.L700072B0: +/* 007EB0 700072B0 94633738 */ lhu $v1, %lo(D_80063738)($v1) +/* 007EB4 700072B4 3C068006 */ lui $a2, %hi(D_800637B8) +/* 007EB8 700072B8 00C23021 */ addu $a2, $a2, $v0 +/* 007EBC 700072BC 94C637B8 */ lhu $a2, %lo(D_800637B8)($a2) +/* 007EC0 700072C0 3C088006 */ lui $t0, %hi(D_8006383C) +/* 007EC4 700072C4 2463000F */ addiu $v1, $v1, 0xf +/* 007EC8 700072C8 8D08383C */ lw $t0, %lo(D_8006383C)($t0) +/* 007ECC 700072CC 346B000F */ ori $t3, $v1, 0xf +/* 007ED0 700072D0 396C000F */ xori $t4, $t3, 0xf +/* 007ED4 700072D4 24C6000F */ addiu $a2, $a2, 0xf +/* 007ED8 700072D8 25830040 */ addiu $v1, $t4, 0x40 +/* 007EDC 700072DC 34CD000F */ ori $t5, $a2, 0xf +/* 007EE0 700072E0 39A6000F */ xori $a2, $t5, 0xf +/* 007EE4 700072E4 01037821 */ addu $t7, $t0, $v1 +/* 007EE8 700072E8 01E62023 */ subu $a0, $t7, $a2 +/* 007EEC 700072EC AFA40028 */ sw $a0, 0x28($sp) +/* 007EF0 700072F0 0C001707 */ jal romCopy +/* 007EF4 700072F4 AFA82140 */ sw $t0, 0x2140($sp) +/* 007EF8 700072F8 8FA40028 */ lw $a0, 0x28($sp) +/* 007EFC 700072FC 8FA52140 */ lw $a1, 0x2140($sp) +/* 007F00 70007300 0FC339FC */ jal decompressdata +/* 007F04 70007304 27A60034 */ addiu $a2, $sp, 0x34 +/* 007F08 70007308 3C048006 */ lui $a0, %hi(D_80063958) +/* 007F0C 7000730C 3C058006 */ lui $a1, %hi(D_8006383C) +/* 007F10 70007310 8CA5383C */ lw $a1, %lo(D_8006383C)($a1) +/* 007F14 70007314 0C0049E7 */ jal alCSeqNew +/* 007F18 70007318 24843958 */ addiu $a0, %lo(D_80063958) # addiu $a0, $a0, 0x3958 +/* 007F1C 7000731C 3C058006 */ lui $a1, %hi(D_80063958) +/* 007F20 70007320 24A53958 */ addiu $a1, %lo(D_80063958) # addiu $a1, $a1, 0x3958 +/* 007F24 70007324 0C004B40 */ jal alCSPSetSeq +/* 007F28 70007328 8E040000 */ lw $a0, ($s0) +/* 007F2C 7000732C 0C001CEE */ jal musicTrack2Length +/* 007F30 70007330 00000000 */ nop +/* 007F34 70007334 0C001CF1 */ jal musicTrack2Vol +/* 007F38 70007338 3044FFFF */ andi $a0, $v0, 0xffff +/* 007F3C 7000733C 0C004B50 */ jal alCSPPlay +/* 007F40 70007340 8E040000 */ lw $a0, ($s0) +.L70007344: +/* 007F44 70007344 8FBF001C */ lw $ra, 0x1c($sp) +.L70007348: +/* 007F48 70007348 8FB00018 */ lw $s0, 0x18($sp) +/* 007F4C 7000734C 27BD2148 */ addiu $sp, $sp, 0x2148 +/* 007F50 70007350 03E00008 */ jr $ra +/* 007F54 70007354 00000000 */ nop +) +#endif + + +/** + * 7F58 70007358 + */ +#ifdef NONMATCHING +void musicTrack2Stop(void) { + // Node 0 + if (bootswitch_sound == 0) + { + // Node 1 + music2_playing = 0; + if (music2_track_num != 0) + { + // Node 2 + if (alCSPGetState(seqp_2) == 1) + { + // Node 3 + alCSPStop(seqp_2); + } + } + // Node 4 + music2_track_num = 0; + return; + // (function likely void) + } + // (function likely void) +} +#else +GLOBAL_ASM( +.text +glabel musicTrack2Stop +/* 007F58 70007358 3C0E8002 */ lui $t6, %hi(bootswitch_sound) +/* 007F5C 7000735C 81CE43F8 */ lb $t6, %lo(bootswitch_sound)($t6) +/* 007F60 70007360 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 007F64 70007364 AFBF0014 */ sw $ra, 0x14($sp) +/* 007F68 70007368 15C0000F */ bnez $t6, .L700073A8 +/* 007F6C 7000736C 3C0F8002 */ lui $t7, %hi(music2_track_num) +/* 007F70 70007370 8DEF433C */ lw $t7, %lo(music2_track_num)($t7) +/* 007F74 70007374 3C018002 */ lui $at, %hi(music2_playing) +/* 007F78 70007378 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 007F7C 7000737C 11E00008 */ beqz $t7, .L700073A0 +/* 007F80 70007380 3C048006 */ lui $a0, %hi(seqp_2) +/* 007F84 70007384 0C00488C */ jal alCSPGetState +/* 007F88 70007388 8C84372C */ lw $a0, %lo(seqp_2)($a0) +/* 007F8C 7000738C 24010001 */ li $at, 1 +/* 007F90 70007390 14410003 */ bne $v0, $at, .L700073A0 +/* 007F94 70007394 3C048006 */ lui $a0, %hi(seqp_2) +/* 007F98 70007398 0C004B5C */ jal alCSPStop +/* 007F9C 7000739C 8C84372C */ lw $a0, %lo(seqp_2)($a0) +.L700073A0: +/* 007FA0 700073A0 3C018002 */ lui $at, %hi(music2_track_num) +/* 007FA4 700073A4 AC20433C */ sw $zero, %lo(music2_track_num)($at) +.L700073A8: +/* 007FA8 700073A8 8FBF0014 */ lw $ra, 0x14($sp) +/* 007FAC 700073AC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 007FB0 700073B0 03E00008 */ jr $ra +/* 007FB4 700073B4 00000000 */ nop +) +#endif + + + + + + + + +/** + * 7FB8 700073B8 + * V0= [80024340] + */ +u16 musicTrack2Length(void) { + return music2len; +} + + + + + + + +/** + * 7FC4 700073C4 + */ +#ifdef NONMATCHING +void musicTrack2Vol(s32 arg0) { + s16 temp_a2; + + // Node 0 + temp_a2 = (arg0 & 0xffff); + music2len = temp_a2; + return alCSPSetVol(seqp_2, ((s32) (((u32) (temp_a2 * *(&music_tempo_array + (music2_track_num * 2))) >> 0xf) << 0x10) >> 0x10), temp_a2); +} + +#else +GLOBAL_ASM( +.text +glabel musicTrack2Vol +/* 007FC4 700073C4 3C0E8002 */ lui $t6, %hi(music2_track_num) +/* 007FC8 700073C8 8DCE433C */ lw $t6, %lo(music2_track_num)($t6) +/* 007FCC 700073CC 3C188002 */ lui $t8, %hi(music_tempo_array) +/* 007FD0 700073D0 3086FFFF */ andi $a2, $a0, 0xffff +/* 007FD4 700073D4 000E7840 */ sll $t7, $t6, 1 +/* 007FD8 700073D8 030FC021 */ addu $t8, $t8, $t7 +/* 007FDC 700073DC 87184358 */ lh $t8, %lo(music_tempo_array)($t8) +/* 007FE0 700073E0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 007FE4 700073E4 AFA40018 */ sw $a0, 0x18($sp) +/* 007FE8 700073E8 00D80019 */ multu $a2, $t8 +/* 007FEC 700073EC AFBF0014 */ sw $ra, 0x14($sp) +/* 007FF0 700073F0 3C018002 */ lui $at, %hi(music2len) +/* 007FF4 700073F4 3C048006 */ lui $a0, %hi(seqp_2) +/* 007FF8 700073F8 A4264340 */ sh $a2, %lo(music2len)($at) +/* 007FFC 700073FC 8C84372C */ lw $a0, %lo(seqp_2)($a0) +/* 008000 70007400 00001012 */ mflo $v0 +/* 008004 70007404 0002CBC2 */ srl $t9, $v0, 0xf +/* 008008 70007408 00192C00 */ sll $a1, $t9, 0x10 +/* 00800C 7000740C 00054403 */ sra $t0, $a1, 0x10 +/* 008010 70007410 0C004B68 */ jal alCSPSetVol +/* 008014 70007414 01002825 */ move $a1, $t0 +/* 008018 70007418 8FBF0014 */ lw $ra, 0x14($sp) +/* 00801C 7000741C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 008020 70007420 03E00008 */ jr $ra +/* 008024 70007424 00000000 */ nop +) +#endif + + + + + + + +/** + * 8028 70007428 + */ +#ifdef NONMATCHING +void *musicTrack2Tempo(void) { + void *phi_v0; + + // Node 0 + *(&music_tempo_array + (music2_track_num * 2)) = musicTrack2Length(); + phi_v0 = &music_tempo_array; + if (music_tempo_array >= 0) + { + loop_1: + // Node 1 + phi_v0 = (phi_v0 + 2); + if (phi_v0->unk2 >= 0) + { + goto loop_1; + } + } + // Node 2 + return &music_tempo_array; +} +#else +GLOBAL_ASM( +.text +glabel musicTrack2Tempo +/* 008028 70007428 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00802C 7000742C AFBF0014 */ sw $ra, 0x14($sp) +/* 008030 70007430 0C001CEE */ jal musicTrack2Length +/* 008034 70007434 00000000 */ nop +/* 008038 70007438 3C0E8002 */ lui $t6, %hi(music2_track_num) +/* 00803C 7000743C 8DCE433C */ lw $t6, %lo(music2_track_num)($t6) +/* 008040 70007440 3C048002 */ lui $a0, %hi(music_tempo_array) +/* 008044 70007444 24844358 */ addiu $a0, %lo(music_tempo_array) # addiu $a0, $a0, 0x4358 +/* 008048 70007448 000E7840 */ sll $t7, $t6, 1 +/* 00804C 7000744C 008FC021 */ addu $t8, $a0, $t7 +/* 008050 70007450 A7020000 */ sh $v0, ($t8) +/* 008054 70007454 84990000 */ lh $t9, ($a0) +/* 008058 70007458 3C028002 */ lui $v0, %hi(music_tempo_array) +/* 00805C 7000745C 24424358 */ addiu $v0, %lo(music_tempo_array) # addiu $v0, $v0, 0x4358 +/* 008060 70007460 07200005 */ bltz $t9, .L70007478 +/* 008064 70007464 8FBF0014 */ lw $ra, 0x14($sp) +/* 008068 70007468 84480002 */ lh $t0, 2($v0) +.L7000746C: +/* 00806C 7000746C 24420002 */ addiu $v0, $v0, 2 +/* 008070 70007470 0503FFFE */ bgezl $t0, .L7000746C +/* 008074 70007474 84480002 */ lh $t0, 2($v0) +.L70007478: +/* 008078 70007478 03E00008 */ jr $ra +/* 00807C 7000747C 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + +/** + * 8080 70007480 + */ +#ifdef NONMATCHING +void music_related_6(f32 arg0) { + // Node 0 + if (music2_playing >= 0) + { + // Node 1 + D_80063846 = musicTrack2Length(); + music2_length = (u16)0; + music2_rate = (s32) (arg0 * 60.0f); + music2_playing = -1; + } + // Node 2 + return; +} +#else +GLOBAL_ASM( +.text +glabel music_related_6 +/* 008080 70007480 3C0E8002 */ lui $t6, %hi(music2_playing) +/* 008084 70007484 8DCE4350 */ lw $t6, %lo(music2_playing)($t6) +/* 008088 70007488 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00808C 7000748C AFBF0014 */ sw $ra, 0x14($sp) +/* 008090 70007490 05C00013 */ bltz $t6, .L700074E0 +/* 008094 70007494 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 008098 70007498 0C001CEE */ jal musicTrack2Length +/* 00809C 7000749C 00000000 */ nop +/* 0080A0 700074A0 3C018006 */ lui $at, %hi(D_80063846) +/* 0080A4 700074A4 A4223846 */ sh $v0, %lo(D_80063846)($at) +/* 0080A8 700074A8 3C018006 */ lui $at, %hi(music2_length) +/* 0080AC 700074AC A420384C */ sh $zero, %lo(music2_length)($at) +/* 0080B0 700074B0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0080B4 700074B4 44813000 */ mtc1 $at, $f6 +/* 0080B8 700074B8 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 0080BC 700074BC 3C018006 */ lui $at, %hi(music2_rate) +/* 0080C0 700074C0 2419FFFF */ li $t9, -1 +/* 0080C4 700074C4 46062202 */ mul.s $f8, $f4, $f6 +/* 0080C8 700074C8 4600428D */ trunc.w.s $f10, $f8 +/* 0080CC 700074CC 44185000 */ mfc1 $t8, $f10 +/* 0080D0 700074D0 00000000 */ nop +/* 0080D4 700074D4 AC383854 */ sw $t8, %lo(music2_rate)($at) +/* 0080D8 700074D8 3C018002 */ lui $at, %hi(music2_playing) +/* 0080DC 700074DC AC394350 */ sw $t9, %lo(music2_playing)($at) +.L700074E0: +/* 0080E0 700074E0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0080E4 700074E4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0080E8 700074E8 03E00008 */ jr $ra +/* 0080EC 700074EC 00000000 */ nop +) +#endif + + + + + + +/** + * 80F0 700074F0 + */ +#ifdef NONMATCHING +void music_related_8(f32 arg0, s32 arg1, s16 arg_unaligned6) { + // Node 0 + if (music2_playing <= 0) + { + // Node 1 + alCSPPlay(seqp_2); + if (arg_unaligned6 == 0xffff) + { + // Node 2 + music2_length = (s16) D_80063846; + } + else + { + // Node 3 + music2_length = arg_unaligned6; + } + // Node 4 + D_80063846 = (u16)0; + music2_rate = (s32) (arg0 * 60.0f); + music2_playing = 1; + } + // Node 5 + return; +} +#else +GLOBAL_ASM( +.text +glabel music_related_8 +/* 0080F0 700074F0 3C0E8002 */ lui $t6, %hi(music2_playing) +/* 0080F4 700074F4 8DCE4350 */ lw $t6, %lo(music2_playing)($t6) +/* 0080F8 700074F8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0080FC 700074FC AFBF0014 */ sw $ra, 0x14($sp) +/* 008100 70007500 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 008104 70007504 1DC0001D */ bgtz $t6, .L7000757C +/* 008108 70007508 AFA5001C */ sw $a1, 0x1c($sp) +/* 00810C 7000750C 3C048006 */ lui $a0, %hi(seqp_2) +/* 008110 70007510 0C004B50 */ jal alCSPPlay +/* 008114 70007514 8C84372C */ lw $a0, %lo(seqp_2)($a0) +/* 008118 70007518 97A2001E */ lhu $v0, 0x1e($sp) +/* 00811C 7000751C 3401FFFF */ li $at, 65535 +/* 008120 70007520 3C0F8006 */ lui $t7, %hi(D_80063846) +/* 008124 70007524 14410005 */ bne $v0, $at, .L7000753C +/* 008128 70007528 00000000 */ nop +/* 00812C 7000752C 95EF3846 */ lhu $t7, %lo(D_80063846)($t7) +/* 008130 70007530 3C018006 */ lui $at, %hi(music2_length) +/* 008134 70007534 10000003 */ b .L70007544 +/* 008138 70007538 A42F384C */ sh $t7, %lo(music2_length)($at) +.L7000753C: +/* 00813C 7000753C 3C018006 */ lui $at, %hi(music2_length) +/* 008140 70007540 A422384C */ sh $v0, %lo(music2_length)($at) +.L70007544: +/* 008144 70007544 3C018006 */ lui $at, %hi(D_80063846) +/* 008148 70007548 A4203846 */ sh $zero, %lo(D_80063846)($at) +/* 00814C 7000754C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 008150 70007550 44813000 */ mtc1 $at, $f6 +/* 008154 70007554 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 008158 70007558 3C018006 */ lui $at, %hi(music2_rate) +/* 00815C 7000755C 24080001 */ li $t0, 1 +/* 008160 70007560 46062202 */ mul.s $f8, $f4, $f6 +/* 008164 70007564 4600428D */ trunc.w.s $f10, $f8 +/* 008168 70007568 44195000 */ mfc1 $t9, $f10 +/* 00816C 7000756C 00000000 */ nop +/* 008170 70007570 AC393854 */ sw $t9, %lo(music2_rate)($at) +/* 008174 70007574 3C018002 */ lui $at, %hi(music2_playing) +/* 008178 70007578 AC284350 */ sw $t0, %lo(music2_playing)($at) +.L7000757C: +/* 00817C 7000757C 8FBF0014 */ lw $ra, 0x14($sp) +/* 008180 70007580 27BD0018 */ addiu $sp, $sp, 0x18 +/* 008184 70007584 03E00008 */ jr $ra +/* 008188 70007588 00000000 */ nop +) +#endif + + + + + + +/** + * 818C 7000758C + */ +#ifdef NONMATCHING +void music_related_3rd_block(s32 arg0, s32 arg852) { + ? sp34; + s32 sp2140; + void *temp_t2; + s32 temp_v0; + s32 temp_a2; + + // Node 0 + if (bootswitch_sound == 0) + { + // Node 1 + if (music3_track_num != 0) + { + // Node 2 + musicTrack3Stop(); + } + // Node 3 + music3_track_num = arg852; + if (alCSPGetState(seqp_3) != 0) + { + loop_4: + // Node 4 + if (alCSPGetState(seqp_3) != 0) + { + goto loop_4; + } + } + // Node 5 + temp_t2 = (ptr_musicdatatable + (music3_track_num * 8)); + temp_v0 = (music3_track_num * 2); + if ((u32) temp_t2->unk4 < 0x10000U) + { + // Node 6 + music_related_3rd_block(1, temp_t2->unk4, music3_track_num); + return; + // (possible return value: music_related_3rd_block(1, temp_t2->unk4, music3_track_num)) + } + // Node 7 + temp_a2 = ((((0x80060000 + temp_v0)->unk37B8 + 0xf) | 0xf) ^ 0xf); + sp2140 = (s32) D_80063840; + romCopy(((D_80063840 + (((((0x80060000 + temp_v0)->unk3738 + 0xf) | 0xf) ^ 0xf) + 0x40)) - temp_a2), temp_t2->unk4, temp_a2, music3_track_num); + decompressdata(sp28, sp2140, &sp34); + alCSeqNew(&D_80063A50, D_80063840); + alCSPSetSeq(seqp_3, &D_80063A50); + musicTrack3Vol((get_music3len() & 0xffff)); + alCSPPlay(seqp_3); + } + // Node 8 + return; + // (function likely void) +} + +#else +GLOBAL_ASM( +.text +glabel music_related_3rd_block +/* 00818C 7000758C 3C0E8002 */ lui $t6, %hi(bootswitch_sound) +/* 008190 70007590 81CE43F8 */ lb $t6, %lo(bootswitch_sound)($t6) +/* 008194 70007594 27BDDEB8 */ addiu $sp, $sp, -0x2148 +/* 008198 70007598 AFBF001C */ sw $ra, 0x1c($sp) +/* 00819C 7000759C AFB00018 */ sw $s0, 0x18($sp) +/* 0081A0 700075A0 15C0004A */ bnez $t6, .L700076CC +/* 0081A4 700075A4 AFA42148 */ sw $a0, 0x2148($sp) +/* 0081A8 700075A8 3C0F8002 */ lui $t7, %hi(music3_track_num) +/* 0081AC 700075AC 8DEF4344 */ lw $t7, %lo(music3_track_num)($t7) +/* 0081B0 700075B0 51E00004 */ beql $t7, $zero, .L700075C4 +/* 0081B4 700075B4 8FB82148 */ lw $t8, 0x2148($sp) +/* 0081B8 700075B8 0C001DB8 */ jal musicTrack3Stop +/* 0081BC 700075BC 00000000 */ nop +/* 0081C0 700075C0 8FB82148 */ lw $t8, 0x2148($sp) +.L700075C4: +/* 0081C4 700075C4 3C108006 */ lui $s0, %hi(seqp_3) +/* 0081C8 700075C8 3C018002 */ lui $at, %hi(music3_track_num) +/* 0081CC 700075CC 26103730 */ addiu $s0, %lo(seqp_3) # addiu $s0, $s0, 0x3730 +/* 0081D0 700075D0 AC384344 */ sw $t8, %lo(music3_track_num)($at) +/* 0081D4 700075D4 0C00488C */ jal alCSPGetState +/* 0081D8 700075D8 8E040000 */ lw $a0, ($s0) +/* 0081DC 700075DC 10400005 */ beqz $v0, .L700075F4 +/* 0081E0 700075E0 00000000 */ nop +.L700075E4: +/* 0081E4 700075E4 0C00488C */ jal alCSPGetState +/* 0081E8 700075E8 8E040000 */ lw $a0, ($s0) +/* 0081EC 700075EC 1440FFFD */ bnez $v0, .L700075E4 +/* 0081F0 700075F0 00000000 */ nop +.L700075F4: +/* 0081F4 700075F4 3C078002 */ lui $a3, %hi(music3_track_num) +/* 0081F8 700075F8 8CE74344 */ lw $a3, %lo(music3_track_num)($a3) +/* 0081FC 700075FC 3C198006 */ lui $t9, %hi(ptr_musicdatatable) +/* 008200 70007600 8F393734 */ lw $t9, %lo(ptr_musicdatatable)($t9) +/* 008204 70007604 000748C0 */ sll $t1, $a3, 3 +/* 008208 70007608 3C010001 */ lui $at, 1 +/* 00820C 7000760C 03295021 */ addu $t2, $t9, $t1 +/* 008210 70007610 8D450004 */ lw $a1, 4($t2) +/* 008214 70007614 3C038006 */ lui $v1, %hi(D_80063738) +/* 008218 70007618 00071040 */ sll $v0, $a3, 1 +/* 00821C 7000761C 00A1082B */ sltu $at, $a1, $at +/* 008220 70007620 10200005 */ beqz $at, .L70007638 +/* 008224 70007624 00621821 */ addu $v1, $v1, $v0 +/* 008228 70007628 0C001D63 */ jal music_related_3rd_block +/* 00822C 7000762C 24040001 */ li $a0, 1 +/* 008230 70007630 10000027 */ b .L700076D0 +/* 008234 70007634 8FBF001C */ lw $ra, 0x1c($sp) +.L70007638: +/* 008238 70007638 94633738 */ lhu $v1, %lo(D_80063738)($v1) +/* 00823C 7000763C 3C068006 */ lui $a2, %hi(D_800637B8) +/* 008240 70007640 00C23021 */ addu $a2, $a2, $v0 +/* 008244 70007644 94C637B8 */ lhu $a2, %lo(D_800637B8)($a2) +/* 008248 70007648 3C088006 */ lui $t0, %hi(D_80063840) +/* 00824C 7000764C 2463000F */ addiu $v1, $v1, 0xf +/* 008250 70007650 8D083840 */ lw $t0, %lo(D_80063840)($t0) +/* 008254 70007654 346B000F */ ori $t3, $v1, 0xf +/* 008258 70007658 396C000F */ xori $t4, $t3, 0xf +/* 00825C 7000765C 24C6000F */ addiu $a2, $a2, 0xf +/* 008260 70007660 25830040 */ addiu $v1, $t4, 0x40 +/* 008264 70007664 34CD000F */ ori $t5, $a2, 0xf +/* 008268 70007668 39A6000F */ xori $a2, $t5, 0xf +/* 00826C 7000766C 01037821 */ addu $t7, $t0, $v1 +/* 008270 70007670 01E62023 */ subu $a0, $t7, $a2 +/* 008274 70007674 AFA40028 */ sw $a0, 0x28($sp) +/* 008278 70007678 0C001707 */ jal romCopy +/* 00827C 7000767C AFA82140 */ sw $t0, 0x2140($sp) +/* 008280 70007680 8FA40028 */ lw $a0, 0x28($sp) +/* 008284 70007684 8FA52140 */ lw $a1, 0x2140($sp) +/* 008288 70007688 0FC339FC */ jal decompressdata +/* 00828C 7000768C 27A60034 */ addiu $a2, $sp, 0x34 +/* 008290 70007690 3C048006 */ lui $a0, %hi(D_80063A50) +/* 008294 70007694 3C058006 */ lui $a1, %hi(D_80063840) +/* 008298 70007698 8CA53840 */ lw $a1, %lo(D_80063840)($a1) +/* 00829C 7000769C 0C0049E7 */ jal alCSeqNew +/* 0082A0 700076A0 24843A50 */ addiu $a0, %lo(D_80063A50) # addiu $a0, $a0, 0x3a50 +/* 0082A4 700076A4 3C058006 */ lui $a1, %hi(D_80063A50) +/* 0082A8 700076A8 24A53A50 */ addiu $a1, %lo(D_80063A50) # addiu $a1, $a1, 0x3a50 +/* 0082AC 700076AC 0C004B40 */ jal alCSPSetSeq +/* 0082B0 700076B0 8E040000 */ lw $a0, ($s0) +/* 0082B4 700076B4 0C001DD0 */ jal get_music3len +/* 0082B8 700076B8 00000000 */ nop +/* 0082BC 700076BC 0C001DD3 */ jal musicTrack3Vol +/* 0082C0 700076C0 3044FFFF */ andi $a0, $v0, 0xffff +/* 0082C4 700076C4 0C004B50 */ jal alCSPPlay +/* 0082C8 700076C8 8E040000 */ lw $a0, ($s0) +.L700076CC: +/* 0082CC 700076CC 8FBF001C */ lw $ra, 0x1c($sp) +.L700076D0: +/* 0082D0 700076D0 8FB00018 */ lw $s0, 0x18($sp) +/* 0082D4 700076D4 27BD2148 */ addiu $sp, $sp, 0x2148 +/* 0082D8 700076D8 03E00008 */ jr $ra +/* 0082DC 700076DC 00000000 */ nop +) +#endif + + +/** + * 82E0 700076E0 + */ +#ifdef NONMATCHING +void musicTrack3Stop(void) { + // Node 0 + if (bootswitch_sound == 0) + { + // Node 1 + music3_playing = 0; + if (music3_track_num != 0) + { + // Node 2 + if (alCSPGetState(seqp_3) == 1) + { + // Node 3 + alCSPStop(seqp_3); + } + } + // Node 4 + music3_track_num = 0; + return; + // (function likely void) + } + // (function likely void) +} +#else +GLOBAL_ASM( +.text +glabel musicTrack3Stop +/* 0082E0 700076E0 3C0E8002 */ lui $t6, %hi(bootswitch_sound) +/* 0082E4 700076E4 81CE43F8 */ lb $t6, %lo(bootswitch_sound)($t6) +/* 0082E8 700076E8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0082EC 700076EC AFBF0014 */ sw $ra, 0x14($sp) +/* 0082F0 700076F0 15C0000F */ bnez $t6, .L70007730 +/* 0082F4 700076F4 3C0F8002 */ lui $t7, %hi(music3_track_num) +/* 0082F8 700076F8 8DEF4344 */ lw $t7, %lo(music3_track_num)($t7) +/* 0082FC 700076FC 3C018002 */ lui $at, %hi(music3_playing) +/* 008300 70007700 AC204354 */ sw $zero, %lo(music3_playing)($at) +/* 008304 70007704 11E00008 */ beqz $t7, .L70007728 +/* 008308 70007708 3C048006 */ lui $a0, %hi(seqp_3) +/* 00830C 7000770C 0C00488C */ jal alCSPGetState +/* 008310 70007710 8C843730 */ lw $a0, %lo(seqp_3)($a0) +/* 008314 70007714 24010001 */ li $at, 1 +/* 008318 70007718 14410003 */ bne $v0, $at, .L70007728 +/* 00831C 7000771C 3C048006 */ lui $a0, %hi(seqp_3) +/* 008320 70007720 0C004B5C */ jal alCSPStop +/* 008324 70007724 8C843730 */ lw $a0, %lo(seqp_3)($a0) +.L70007728: +/* 008328 70007728 3C018002 */ lui $at, %hi(music3_track_num) +/* 00832C 7000772C AC204344 */ sw $zero, %lo(music3_track_num)($at) +.L70007730: +/* 008330 70007730 8FBF0014 */ lw $ra, 0x14($sp) +/* 008334 70007734 27BD0018 */ addiu $sp, $sp, 0x18 +/* 008338 70007738 03E00008 */ jr $ra +/* 00833C 7000773C 00000000 */ nop +) +#endif + + + + + + +/** + * 8340 70007740 + * V0= 7FFF [80024348] + */ +u16 get_music3len(void) { + return music3len; +} + + + + + + + +/** + * 834C 7000774C + */ +#ifdef NONMATCHING +void musicTrack3Vol(s32 arg0) { + s16 temp_a2; + + // Node 0 + temp_a2 = (arg0 & 0xffff); + music3len = temp_a2; + alCSPSetVol(seqp_3, ((s32) (((u32) (temp_a2 * (0x80020000 + (music3_track_num * 2))->unk4358) >> 0xf) << 0x10) >> 0x10), temp_a2); + return; + // (possible return value: alCSPSetVol(seqp_3, ((s32) (((u32) (temp_a2 * (0x80020000 + (music3_track_num * 2))->unk4358) >> 0xf) << 0x10) >> 0x10), temp_a2)) +} +#else +GLOBAL_ASM( +.text +glabel musicTrack3Vol +/* 00834C 7000774C 3C0E8002 */ lui $t6, %hi(music3_track_num) +/* 008350 70007750 8DCE4344 */ lw $t6, %lo(music3_track_num)($t6) +/* 008354 70007754 3C188002 */ lui $t8, %hi(music_tempo_array) +/* 008358 70007758 3086FFFF */ andi $a2, $a0, 0xffff +/* 00835C 7000775C 000E7840 */ sll $t7, $t6, 1 +/* 008360 70007760 030FC021 */ addu $t8, $t8, $t7 +/* 008364 70007764 87184358 */ lh $t8, %lo(music_tempo_array)($t8) +/* 008368 70007768 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00836C 7000776C AFA40018 */ sw $a0, 0x18($sp) +/* 008370 70007770 00D80019 */ multu $a2, $t8 +/* 008374 70007774 AFBF0014 */ sw $ra, 0x14($sp) +/* 008378 70007778 3C018002 */ lui $at, %hi(music3len) +/* 00837C 7000777C 3C048006 */ lui $a0, %hi(seqp_3) +/* 008380 70007780 A4264348 */ sh $a2, %lo(music3len)($at) +/* 008384 70007784 8C843730 */ lw $a0, %lo(seqp_3)($a0) +/* 008388 70007788 00001012 */ mflo $v0 +/* 00838C 7000778C 0002CBC2 */ srl $t9, $v0, 0xf +/* 008390 70007790 00192C00 */ sll $a1, $t9, 0x10 +/* 008394 70007794 00054403 */ sra $t0, $a1, 0x10 +/* 008398 70007798 0C004B68 */ jal alCSPSetVol +/* 00839C 7000779C 01002825 */ move $a1, $t0 +/* 0083A0 700077A0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0083A4 700077A4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0083A8 700077A8 03E00008 */ jr $ra +/* 0083AC 700077AC 00000000 */ nop +) +#endif + + + + + + + +/** + * 83B0 700077B0 + */ +#ifdef NONMATCHING +void *music_related_10(void) { + // Node 0 + *(&music_tempo_array + (music3_track_num * 2)) = get_music3len(); + if (music_tempo_array >= 0) + { + loop_1: + // Node 1 + if (music_tempo_array.unk2 >= 0) + { + goto loop_1; + } + } + // (possible return value: &music_tempo_array) +} + +#else +GLOBAL_ASM( +.text +glabel music_related_10 +/* 0083B0 700077B0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0083B4 700077B4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0083B8 700077B8 0C001DD0 */ jal get_music3len +/* 0083BC 700077BC 00000000 */ nop +/* 0083C0 700077C0 3C0E8002 */ lui $t6, %hi(music3_track_num) +/* 0083C4 700077C4 8DCE4344 */ lw $t6, %lo(music3_track_num)($t6) +/* 0083C8 700077C8 3C048002 */ lui $a0, %hi(music_tempo_array) +/* 0083CC 700077CC 24844358 */ addiu $a0, %lo(music_tempo_array) # addiu $a0, $a0, 0x4358 +/* 0083D0 700077D0 000E7840 */ sll $t7, $t6, 1 +/* 0083D4 700077D4 008FC021 */ addu $t8, $a0, $t7 +/* 0083D8 700077D8 A7020000 */ sh $v0, ($t8) +/* 0083DC 700077DC 84990000 */ lh $t9, ($a0) +/* 0083E0 700077E0 3C028002 */ lui $v0, %hi(music_tempo_array) +/* 0083E4 700077E4 24424358 */ addiu $v0, %lo(music_tempo_array) # addiu $v0, $v0, 0x4358 +/* 0083E8 700077E8 07200005 */ bltz $t9, .L70007800 +/* 0083EC 700077EC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0083F0 700077F0 84480002 */ lh $t0, 2($v0) +.L700077F4: +/* 0083F4 700077F4 24420002 */ addiu $v0, $v0, 2 +/* 0083F8 700077F8 0503FFFE */ bgezl $t0, .L700077F4 +/* 0083FC 700077FC 84480002 */ lh $t0, 2($v0) +.L70007800: +/* 008400 70007800 03E00008 */ jr $ra +/* 008404 70007804 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + + +/** + * 8408 70007808 + */ +#ifdef NONMATCHING +void music_related_11(f32 arg0, f32 arg6) { + // Node 0 + if (music3_playing >= 0) + { + // Node 1 + D_80063848 = get_music3len(); + music3_length = (u16)0; + music3_rate = (s32) (arg6 * 60.0f); + music3_playing = -1; + return; + // (possible return value: get_music3len()) + } + // (function likely void) +} +#else +GLOBAL_ASM( +.text +glabel music_related_11 +/* 008408 70007808 3C0E8002 */ lui $t6, %hi(music3_playing) +/* 00840C 7000780C 8DCE4354 */ lw $t6, %lo(music3_playing)($t6) +/* 008410 70007810 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 008414 70007814 AFBF0014 */ sw $ra, 0x14($sp) +/* 008418 70007818 05C00013 */ bltz $t6, .L70007868 +/* 00841C 7000781C E7AC0018 */ swc1 $f12, 0x18($sp) +/* 008420 70007820 0C001DD0 */ jal get_music3len +/* 008424 70007824 00000000 */ nop +/* 008428 70007828 3C018006 */ lui $at, %hi(D_80063848) +/* 00842C 7000782C A4223848 */ sh $v0, %lo(D_80063848)($at) +/* 008430 70007830 3C018006 */ lui $at, %hi(music3_length) +/* 008434 70007834 A420384E */ sh $zero, %lo(music3_length)($at) +/* 008438 70007838 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 00843C 7000783C 44813000 */ mtc1 $at, $f6 +/* 008440 70007840 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 008444 70007844 3C018006 */ lui $at, %hi(music3_rate) +/* 008448 70007848 2419FFFF */ li $t9, -1 +/* 00844C 7000784C 46062202 */ mul.s $f8, $f4, $f6 +/* 008450 70007850 4600428D */ trunc.w.s $f10, $f8 +/* 008454 70007854 44185000 */ mfc1 $t8, $f10 +/* 008458 70007858 00000000 */ nop +/* 00845C 7000785C AC383858 */ sw $t8, %lo(music3_rate)($at) +/* 008460 70007860 3C018002 */ lui $at, %hi(music3_playing) +/* 008464 70007864 AC394354 */ sw $t9, %lo(music3_playing)($at) +.L70007868: +/* 008468 70007868 8FBF0014 */ lw $ra, 0x14($sp) +/* 00846C 7000786C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 008470 70007870 03E00008 */ jr $ra +/* 008474 70007874 00000000 */ nop +) +#endif + + + + + +/** + * 8478 70007878 + */ +#ifdef NONMATCHING +s16 music_related_13(f32 arg0, s32 arg1, f32 arg6, s16 arg7) { + // Node 0 + if (music3_playing <= 0) + { + // Node 1 + alCSPPlay(seqp_3); + if (arg7 == 0xffff) + { + // Node 2 + music3_length = (s16) D_80063848; + } + else + { + // Node 3 + music3_length = arg7; + } + // Node 4 + D_80063848 = (u16)0; + music3_rate = (s32) (arg6 * 60.0f); + music3_playing = 1; + return; + // (possible return value: arg7) + } + // (function likely void) +} +#else +GLOBAL_ASM( +.text +glabel music_related_13 +/* 008478 70007878 3C0E8002 */ lui $t6, %hi(music3_playing) +/* 00847C 7000787C 8DCE4354 */ lw $t6, %lo(music3_playing)($t6) +/* 008480 70007880 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 008484 70007884 AFBF0014 */ sw $ra, 0x14($sp) +/* 008488 70007888 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 00848C 7000788C 1DC0001D */ bgtz $t6, .L70007904 +/* 008490 70007890 AFA5001C */ sw $a1, 0x1c($sp) +/* 008494 70007894 3C048006 */ lui $a0, %hi(seqp_3) +/* 008498 70007898 0C004B50 */ jal alCSPPlay +/* 00849C 7000789C 8C843730 */ lw $a0, %lo(seqp_3)($a0) +/* 0084A0 700078A0 97A2001E */ lhu $v0, 0x1e($sp) +/* 0084A4 700078A4 3401FFFF */ li $at, 65535 +/* 0084A8 700078A8 3C0F8006 */ lui $t7, %hi(D_80063848) +/* 0084AC 700078AC 14410005 */ bne $v0, $at, .L700078C4 +/* 0084B0 700078B0 00000000 */ nop +/* 0084B4 700078B4 95EF3848 */ lhu $t7, %lo(D_80063848)($t7) +/* 0084B8 700078B8 3C018006 */ lui $at, %hi(music3_length) +/* 0084BC 700078BC 10000003 */ b .L700078CC +/* 0084C0 700078C0 A42F384E */ sh $t7, %lo(music3_length)($at) +.L700078C4: +/* 0084C4 700078C4 3C018006 */ lui $at, %hi(music3_length) +/* 0084C8 700078C8 A422384E */ sh $v0, %lo(music3_length)($at) +.L700078CC: +/* 0084CC 700078CC 3C018006 */ lui $at, %hi(D_80063848) +/* 0084D0 700078D0 A4203848 */ sh $zero, %lo(D_80063848)($at) +/* 0084D4 700078D4 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0084D8 700078D8 44813000 */ mtc1 $at, $f6 +/* 0084DC 700078DC C7A40018 */ lwc1 $f4, 0x18($sp) +/* 0084E0 700078E0 3C018006 */ lui $at, %hi(music3_rate) +/* 0084E4 700078E4 24080001 */ li $t0, 1 +/* 0084E8 700078E8 46062202 */ mul.s $f8, $f4, $f6 +/* 0084EC 700078EC 4600428D */ trunc.w.s $f10, $f8 +/* 0084F0 700078F0 44195000 */ mfc1 $t9, $f10 +/* 0084F4 700078F4 00000000 */ nop +/* 0084F8 700078F8 AC393858 */ sw $t9, %lo(music3_rate)($at) +/* 0084FC 700078FC 3C018002 */ lui $at, %hi(music3_playing) +/* 008500 70007900 AC284354 */ sw $t0, %lo(music3_playing)($at) +.L70007904: +/* 008504 70007904 8FBF0014 */ lw $ra, 0x14($sp) +/* 008508 70007908 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00850C 7000790C 03E00008 */ jr $ra +/* 008510 70007910 00000000 */ nop +) +#endif + + + + + + +/** + * 8514 70007914 + */ +#ifdef NONMATCHING +void music_related_15(void) { + s16 sp1E; + s16 sp26; + s16 sp2E; + ? temp_ret; + s32 temp_a1; + s16 temp_t9; + s32 temp_t1; + ? temp_ret_2; + s32 temp_a1_2; + s16 temp_t0; + s32 temp_t2; + ? temp_ret_3; + s32 temp_a1_3; + s16 temp_t1_2; + s32 temp_t3; + + if (music1_playing != 0) + { + temp_ret_3 = musicTrack1Length(); + temp_a1_3 = (music1_length - temp_ret_3); + temp_t1_2 = ((temp_ret_3 + (s32) ((f32) temp_a1_3 / (f32) music1_rate)) & 0xffff); + sp2E = temp_t1_2; + musicTrack1Vol(temp_t1_2, temp_a1_3, &music1_rate); + temp_t3 = (music1_rate + -1); + music1_rate = temp_t3; + if (temp_t3 <= 0) + { + if (&seqp_1 == 0) + { + alCSPStop(seqp_1, &music1_rate); + } + music1_rate = 0; + music1_playing = 0; + } + } + if (music2_playing != 0) + { + temp_ret_2 = musicTrack2Length(); + temp_a1_2 = (music2_length - temp_ret_2); + temp_t0 = ((temp_ret_2 + (s32) ((f32) temp_a1_2 / (f32) music2_rate)) & 0xffff); + sp26 = temp_t0; + musicTrack2Vol(temp_t0, temp_a1_2, &music2_rate); + temp_t2 = (music2_rate + -1); + music2_rate = temp_t2; + if (temp_t2 <= 0) + { + if (&seqp_2 == 0) + { + alCSPStop(seqp_2, &music2_rate); + } + music2_rate = 0; + music2_playing = 0; + } + } + if (music3_playing != 0) + { + temp_ret = get_music3len(); + temp_a1 = (music3_length - temp_ret); + temp_t9 = ((temp_ret + (s32) ((f32) temp_a1 / (f32) music3_rate)) & 0xffff); + sp1E = temp_t9; + musicTrack3Vol(temp_t9, temp_a1, &music3_rate); + temp_t1 = (music3_rate + -1); + music3_rate = temp_t1; + if (temp_t1 <= 0) + { + if (&seqp_3 == 0) + { + alCSPStop(seqp_3, &music3_rate); + } + music3_rate = 0; + music3_playing = 0; + } + } +} +#else +GLOBAL_ASM( +.text +glabel music_related_15 +/* 008514 70007914 3C0E8002 */ lui $t6, %hi(music1_playing) +/* 008518 70007918 8DCE434C */ lw $t6, %lo(music1_playing)($t6) +/* 00851C 7000791C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 008520 70007920 AFBF0014 */ sw $ra, 0x14($sp) +/* 008524 70007924 11C00026 */ beqz $t6, .L700079C0 +/* 008528 70007928 00000000 */ nop +/* 00852C 7000792C 0C001C0C */ jal musicTrack1Length +/* 008530 70007930 00000000 */ nop +/* 008534 70007934 3C068006 */ lui $a2, %hi(music1_rate) +/* 008538 70007938 3C0F8006 */ lui $t7, %hi(music1_length) +/* 00853C 7000793C 95EF384A */ lhu $t7, %lo(music1_length)($t7) +/* 008540 70007940 24C63850 */ addiu $a2, %lo(music1_rate) # addiu $a2, $a2, 0x3850 +/* 008544 70007944 8CD80000 */ lw $t8, ($a2) +/* 008548 70007948 01E22823 */ subu $a1, $t7, $v0 +/* 00854C 7000794C 44852000 */ mtc1 $a1, $f4 +/* 008550 70007950 44984000 */ mtc1 $t8, $f8 +/* 008554 70007954 468021A0 */ cvt.s.w $f6, $f4 +/* 008558 70007958 468042A0 */ cvt.s.w $f10, $f8 +/* 00855C 7000795C 460A3403 */ div.s $f16, $f6, $f10 +/* 008560 70007960 4600848D */ trunc.w.s $f18, $f16 +/* 008564 70007964 44089000 */ mfc1 $t0, $f18 +/* 008568 70007968 00000000 */ nop +/* 00856C 7000796C 00482021 */ addu $a0, $v0, $t0 +/* 008570 70007970 3089FFFF */ andi $t1, $a0, 0xffff +/* 008574 70007974 01202025 */ move $a0, $t1 +/* 008578 70007978 0C001C0F */ jal musicTrack1Vol +/* 00857C 7000797C A7A9002E */ sh $t1, 0x2e($sp) +/* 008580 70007980 3C068006 */ lui $a2, %hi(music1_rate) +/* 008584 70007984 24C63850 */ addiu $a2, %lo(music1_rate) # addiu $a2, $a2, 0x3850 +/* 008588 70007988 8CCA0000 */ lw $t2, ($a2) +/* 00858C 7000798C 97A4002E */ lhu $a0, 0x2e($sp) +/* 008590 70007990 254BFFFF */ addiu $t3, $t2, -1 +/* 008594 70007994 1D60000A */ bgtz $t3, .L700079C0 +/* 008598 70007998 ACCB0000 */ sw $t3, ($a2) +/* 00859C 7000799C 14800005 */ bnez $a0, .L700079B4 +/* 0085A0 700079A0 3C048006 */ lui $a0, %hi(seqp_1) +/* 0085A4 700079A4 0C004B5C */ jal alCSPStop +/* 0085A8 700079A8 8C843728 */ lw $a0, %lo(seqp_1)($a0) +/* 0085AC 700079AC 3C068006 */ lui $a2, %hi(music1_rate) +/* 0085B0 700079B0 24C63850 */ addiu $a2, %lo(music1_rate) # addiu $a2, $a2, 0x3850 +.L700079B4: +/* 0085B4 700079B4 ACC00000 */ sw $zero, ($a2) +/* 0085B8 700079B8 3C018002 */ lui $at, %hi(music1_playing) +/* 0085BC 700079BC AC20434C */ sw $zero, %lo(music1_playing)($at) +.L700079C0: +/* 0085C0 700079C0 3C0D8002 */ lui $t5, %hi(music2_playing) +/* 0085C4 700079C4 8DAD4350 */ lw $t5, %lo(music2_playing)($t5) +/* 0085C8 700079C8 11A00026 */ beqz $t5, .L70007A64 +/* 0085CC 700079CC 00000000 */ nop +/* 0085D0 700079D0 0C001CEE */ jal musicTrack2Length +/* 0085D4 700079D4 00000000 */ nop +/* 0085D8 700079D8 3C068006 */ lui $a2, %hi(music2_rate) +/* 0085DC 700079DC 3C0E8006 */ lui $t6, %hi(music2_length) +/* 0085E0 700079E0 95CE384C */ lhu $t6, %lo(music2_length)($t6) +/* 0085E4 700079E4 24C63854 */ addiu $a2, %lo(music2_rate) # addiu $a2, $a2, 0x3854 +/* 0085E8 700079E8 8CCF0000 */ lw $t7, ($a2) +/* 0085EC 700079EC 01C22823 */ subu $a1, $t6, $v0 +/* 0085F0 700079F0 44852000 */ mtc1 $a1, $f4 +/* 0085F4 700079F4 448F3000 */ mtc1 $t7, $f6 +/* 0085F8 700079F8 46802220 */ cvt.s.w $f8, $f4 +/* 0085FC 700079FC 468032A0 */ cvt.s.w $f10, $f6 +/* 008600 70007A00 460A4403 */ div.s $f16, $f8, $f10 +/* 008604 70007A04 4600848D */ trunc.w.s $f18, $f16 +/* 008608 70007A08 44199000 */ mfc1 $t9, $f18 +/* 00860C 70007A0C 00000000 */ nop +/* 008610 70007A10 00592021 */ addu $a0, $v0, $t9 +/* 008614 70007A14 3088FFFF */ andi $t0, $a0, 0xffff +/* 008618 70007A18 01002025 */ move $a0, $t0 +/* 00861C 70007A1C 0C001CF1 */ jal musicTrack2Vol +/* 008620 70007A20 A7A80026 */ sh $t0, 0x26($sp) +/* 008624 70007A24 3C068006 */ lui $a2, %hi(music2_rate) +/* 008628 70007A28 24C63854 */ addiu $a2, %lo(music2_rate) # addiu $a2, $a2, 0x3854 +/* 00862C 70007A2C 8CC90000 */ lw $t1, ($a2) +/* 008630 70007A30 97A40026 */ lhu $a0, 0x26($sp) +/* 008634 70007A34 252AFFFF */ addiu $t2, $t1, -1 +/* 008638 70007A38 1D40000A */ bgtz $t2, .L70007A64 +/* 00863C 70007A3C ACCA0000 */ sw $t2, ($a2) +/* 008640 70007A40 14800005 */ bnez $a0, .L70007A58 +/* 008644 70007A44 3C048006 */ lui $a0, %hi(seqp_2) +/* 008648 70007A48 0C004B5C */ jal alCSPStop +/* 00864C 70007A4C 8C84372C */ lw $a0, %lo(seqp_2)($a0) +/* 008650 70007A50 3C068006 */ lui $a2, %hi(music2_rate) +/* 008654 70007A54 24C63854 */ addiu $a2, %lo(music2_rate) # addiu $a2, $a2, 0x3854 +.L70007A58: +/* 008658 70007A58 ACC00000 */ sw $zero, ($a2) +/* 00865C 70007A5C 3C018002 */ lui $at, %hi(music2_playing) +/* 008660 70007A60 AC204350 */ sw $zero, %lo(music2_playing)($at) +.L70007A64: +/* 008664 70007A64 3C0C8002 */ lui $t4, %hi(music3_playing) +/* 008668 70007A68 8D8C4354 */ lw $t4, %lo(music3_playing)($t4) +/* 00866C 70007A6C 51800027 */ beql $t4, $zero, .L70007B0C +/* 008670 70007A70 8FBF0014 */ lw $ra, 0x14($sp) +/* 008674 70007A74 0C001DD0 */ jal get_music3len +/* 008678 70007A78 00000000 */ nop +/* 00867C 70007A7C 3C068006 */ lui $a2, %hi(music3_rate) +/* 008680 70007A80 3C0D8006 */ lui $t5, %hi(music3_length) +/* 008684 70007A84 95AD384E */ lhu $t5, %lo(music3_length)($t5) +/* 008688 70007A88 24C63858 */ addiu $a2, %lo(music3_rate) # addiu $a2, $a2, 0x3858 +/* 00868C 70007A8C 8CCE0000 */ lw $t6, ($a2) +/* 008690 70007A90 01A22823 */ subu $a1, $t5, $v0 +/* 008694 70007A94 44852000 */ mtc1 $a1, $f4 +/* 008698 70007A98 448E4000 */ mtc1 $t6, $f8 +/* 00869C 70007A9C 468021A0 */ cvt.s.w $f6, $f4 +/* 0086A0 70007AA0 468042A0 */ cvt.s.w $f10, $f8 +/* 0086A4 70007AA4 460A3403 */ div.s $f16, $f6, $f10 +/* 0086A8 70007AA8 4600848D */ trunc.w.s $f18, $f16 +/* 0086AC 70007AAC 44189000 */ mfc1 $t8, $f18 +/* 0086B0 70007AB0 00000000 */ nop +/* 0086B4 70007AB4 00582021 */ addu $a0, $v0, $t8 +/* 0086B8 70007AB8 3099FFFF */ andi $t9, $a0, 0xffff +/* 0086BC 70007ABC 03202025 */ move $a0, $t9 +/* 0086C0 70007AC0 0C001DD3 */ jal musicTrack3Vol +/* 0086C4 70007AC4 A7B9001E */ sh $t9, 0x1e($sp) +/* 0086C8 70007AC8 3C068006 */ lui $a2, %hi(music3_rate) +/* 0086CC 70007ACC 24C63858 */ addiu $a2, %lo(music3_rate) # addiu $a2, $a2, 0x3858 +/* 0086D0 70007AD0 8CC80000 */ lw $t0, ($a2) +/* 0086D4 70007AD4 97A4001E */ lhu $a0, 0x1e($sp) +/* 0086D8 70007AD8 2509FFFF */ addiu $t1, $t0, -1 +/* 0086DC 70007ADC 1D20000A */ bgtz $t1, .L70007B08 +/* 0086E0 70007AE0 ACC90000 */ sw $t1, ($a2) +/* 0086E4 70007AE4 14800005 */ bnez $a0, .L70007AFC +/* 0086E8 70007AE8 3C048006 */ lui $a0, %hi(seqp_3) +/* 0086EC 70007AEC 0C004B5C */ jal alCSPStop +/* 0086F0 70007AF0 8C843730 */ lw $a0, %lo(seqp_3)($a0) +/* 0086F4 70007AF4 3C068006 */ lui $a2, %hi(music3_rate) +/* 0086F8 70007AF8 24C63858 */ addiu $a2, %lo(music3_rate) # addiu $a2, $a2, 0x3858 +.L70007AFC: +/* 0086FC 70007AFC ACC00000 */ sw $zero, ($a2) +/* 008700 70007B00 3C018002 */ lui $at, %hi(music3_playing) +/* 008704 70007B04 AC204354 */ sw $zero, %lo(music3_playing)($at) +.L70007B08: +/* 008708 70007B08 8FBF0014 */ lw $ra, 0x14($sp) +.L70007B0C: +/* 00870C 70007B0C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 008710 70007B10 03E00008 */ jr $ra +/* 008714 70007B14 00000000 */ nop +) +#endif + + + diff --git a/src/music.h b/src/music.h new file mode 100644 index 0000000..5894af6 --- /dev/null +++ b/src/music.h @@ -0,0 +1,48 @@ +#ifndef _MUSIC_H_ +#define _MUSIC_H_ +#include "ultra64.h" +#include "bondgame.h" + +extern s32 music_unused; +extern s32 music1_track_num; +extern s32 music1len; +extern s32 music2_track_num; +extern s32 music2len; +extern s32 music3_track_num; +extern s32 music3len; +extern s32 music1_playing; +extern s32 music2_playing; +extern s32 music3_playing; + +extern u32 hp[4]; +extern u32 *ptr_sfx_buf; +extern s32 D_80063724; +extern s32 seqp_1; +extern s32 seqp_2; +extern s32 seqp_3; +extern void *ptr_musicdatatable; + +extern char D_80063738[0x80]; +extern char D_800637B8[0x7E]; +extern s16 D_80063836; +extern s32 D_80063838; +extern s32 D_8006383C; +extern s32 D_80063840; +extern s16 musicTrack1_length; +extern s16 D_80063846; +extern s16 D_80063848; +extern s16 music1_length; +extern s16 music2_length; +extern s16 music3_length; +extern s32 music1_rate; +extern s32 music2_rate; +extern s32 music3_rate; +extern s32 D_8006385C; +extern char D_80063860[0xF8]; +extern char D_80063958[0xF8]; +extern char D_80063A50[0x100]; +extern char D_80063B50[0x54]; +extern s32 D_80063BA4; +extern s32 D_80063BA8; + +#endif diff --git a/src/osMapTLB.c b/src/osMapTLB.c new file mode 100644 index 0000000..6f908d6 --- /dev/null +++ b/src/osMapTLB.c @@ -0,0 +1,47 @@ +#include "ultra64.h" + +/** + * @file osMapTLB.c + * This file contains code thatsets TLB indexed entry 0 to mirror 1KB of rdram from 80000000 to C0000000. + * + * In particular, it: + * - should be made into an assembly file + */ + +/** + * 2380 70001780 + * sets TLB indexed entry 0 to mirror 1KB of rdram from 80000000 to C0000000 + * uncached, dirty, valid, global + */ +#ifdef NONMATCHING +void osMapTLBRdb(void) { + //i should probably remain as assembly, maybe even moved to a .s +} +#else +GLOBAL_ASM( +.text +glabel osMapTLBRdb +/* 002380 70001780 40085000 */ mfc0 $t0, $10 +/* 002384 70001784 24090000 */ li $t1, 0 +/* 002388 70001788 40890000 */ mtc0 $t1, $0 +/* 00238C 7000178C 40802800 */ mtc0 $zero, $5 +/* 002390 70001790 240A0017 */ li $t2, 23 +/* 002394 70001794 3C09C000 */ lui $t1, 0xc000 +/* 002398 70001798 40895000 */ mtc0 $t1, $10 +/* 00239C 7000179C 3C098000 */ lui $t1, 0x8000 +/* 0023A0 700017A0 00095982 */ srl $t3, $t1, 6 +/* 0023A4 700017A4 016A5825 */ or $t3, $t3, $t2 +/* 0023A8 700017A8 408B1000 */ mtc0 $t3, $2 +/* 0023AC 700017AC 24090001 */ li $t1, 1 +/* 0023B0 700017B0 40891800 */ mtc0 $t1, $3 +/* 0023B4 700017B4 00000000 */ nop +/* 0023B8 700017B8 42000002 */ tlbwi +/* 0023BC 700017BC 00000000 */ nop +/* 0023C0 700017C0 00000000 */ nop +/* 0023C4 700017C4 00000000 */ nop +/* 0023C8 700017C8 00000000 */ nop +/* 0023CC 700017CC 40885000 */ mtc0 $t0, $10 +/* 0023D0 700017D0 03E00008 */ jr $ra +/* 0023D4 700017D4 00000000 */ nop +) +#endif diff --git a/src/pi.c b/src/pi.c new file mode 100644 index 0000000..7e31117 --- /dev/null +++ b/src/pi.c @@ -0,0 +1,9 @@ +#include "ultra64.h" + + +OSMesg piCmdBuf[0x8]; +OSMesgQueue piCmdQ; + +void piCreateManager(void) { + osCreatePiManager(0x96, &piCmdQ, &piCmdBuf, 8); +} diff --git a/src/pi.h b/src/pi.h new file mode 100644 index 0000000..1071755 --- /dev/null +++ b/src/pi.h @@ -0,0 +1,10 @@ +#ifndef _PI_H_ +#define _PI_H_ +#include + +extern OSMesg piCmdBuf[0x8]; +extern OSMesgQueue piCmdQ; + +void piCreateManager(void); + +#endif \ No newline at end of file diff --git a/src/ramrom.c b/src/ramrom.c new file mode 100644 index 0000000..8dd72c8 --- /dev/null +++ b/src/ramrom.c @@ -0,0 +1,95 @@ +#include "ultra64.h" +#include "ramrom.h" + +/** + * @file ramrom.c + * This file contains code to handle reading and writing rom addresses. + */ + +#define align_addr_zero(X) ((((X) + 0xF) | 0xF) ^ 0xF) +#define align_addr_even(X) (((X) | 1) ^ 1) + +OSIoMesg memoryMesgMB; +OSMesg memoryMesg; +OSMesgQueue memoryMesgQueue; + +/** + * 6760 70005B60 + * external + * romCreateMesgQueue + * creates a message queue + */ +void romCreateMesgQueue(void) { + osCreateMesgQueue(&memoryMesgQueue, &memoryMesg, 1); +} + +/** + * 6790 70005B90 + * doRomCopy + * invalidate cache and do pi dma + */ +void doRomCopy(void *target, void *source, u32 size) { + osInvalDCache(target, size); + osPiStartDma(&memoryMesgMB, 0, 0, source, target, size, &memoryMesgQueue); +} + +/** + * 67F0 70005BF0 + * romReceiveMesg + * receives a message queue + */ +void romReceiveMesg(void) { + osRecvMesg(&memoryMesgQueue, 0, 1); +} + +/** + * 681C 70005C1C + * external + * romCopy + * copy from rom to ram + */ +void romCopy(void *target, void *source, u32 size) { + doRomCopy(target, source, size); + romReceiveMesg(); +} + +/** + * 6844 70005C44 + * external + * romCopyAligned + * aligns data, does a romCopy(), then returns aligned pointer to target + */ +s32 romCopyAligned(void *target, void *source, s32 length) { + s32 target_offset; + s32 *target_aligned; + s32 *source_aligned; + s32 *source_offset; + + source_aligned = align_addr_even((s32)source); + source_offset = (s32)source - (s32)source_aligned; + target_aligned = align_addr_zero((s32)target); + target_offset = source_offset; + romCopy(target_aligned, source_aligned, align_addr_zero((s32)source_offset + length)); + return ((s32)target_aligned + target_offset); +} + +/** + * 68A8 70005CA8 + * doRomWrite + * actually writes to rom (buffer on Indy) + */ +void doRomWrite(void *source, void *target, u32 size) { + osWritebackDCache(source, size); + osPiStartDma(&memoryMesgMB, 0, 1, target, source, size, &memoryMesgQueue); +} + +/** + * 6908 70005D08 + * external + * romWrite + * let's write to the rom (buffer on Indy) + */ +void romWrite(void *source, void *target, u32 size) { + doRomWrite(source, target, size); + romReceiveMesg(); +} diff --git a/src/ramrom.h b/src/ramrom.h new file mode 100644 index 0000000..ea79684 --- /dev/null +++ b/src/ramrom.h @@ -0,0 +1,10 @@ +#ifndef _RAMROM_H_ +#define _RAMROM_H_ +#include + +void romCreateMesgQueue(void); +void romCopy(void *target, void *source, u32 size); +s32 romCopyAligned(void *target, void *source, s32 length); +void romWrite(void *source, void *target, u32 size); + +#endif diff --git a/src/random.c b/src/random.c new file mode 100644 index 0000000..779ba1d --- /dev/null +++ b/src/random.c @@ -0,0 +1,96 @@ +#include "ultra64.h" + + +u64 randseed = 0xAB8D9F7781280783; + + + +#ifdef NONMATCHING +u32 get_random_value(void) { + ulonglong uVar1; + + uVar1 = ((randseed << 0x3f) >> 0x1f | (randseed << 0x1f) >> 0x20) ^ (randseed << 0x2c) >> 0x20; + randseed = uVar1 >> 0x14 & 0xfff ^ uVar1; + return (u32)randseed; +} +#else +GLOBAL_ASM( +.text +glabel get_random_value +/* 00B050 7000A450 3C048002 */ lui $a0, %hi(randseed) +/* 00B054 7000A454 DC844460 */ ld $a0, %lo(randseed)($a0) +/* 00B058 7000A458 3C018002 */ lui $at, %hi(randseed) +/* 00B05C 7000A45C 000437FC */ dsll32 $a2, $a0, 0x1f +/* 00B060 7000A460 00042FF8 */ dsll $a1, $a0, 0x1f +/* 00B064 7000A464 000637FA */ dsrl $a2, $a2, 0x1f +/* 00B068 7000A468 0005283E */ dsrl32 $a1, $a1, 0 +/* 00B06C 7000A46C 0004233C */ dsll32 $a0, $a0, 0xc +/* 00B070 7000A470 00C53025 */ or $a2, $a2, $a1 +/* 00B074 7000A474 0004203E */ dsrl32 $a0, $a0, 0 +/* 00B078 7000A478 00C43026 */ xor $a2, $a2, $a0 +/* 00B07C 7000A47C 0006253A */ dsrl $a0, $a2, 0x14 +/* 00B080 7000A480 30840FFF */ andi $a0, $a0, 0xfff +/* 00B084 7000A484 00862026 */ xor $a0, $a0, $a2 +/* 00B088 7000A488 0004103C */ dsll32 $v0, $a0, 0 +/* 00B08C 7000A48C FC244460 */ sd $a0, %lo(randseed)($at) +/* 00B090 7000A490 03E00008 */ jr $ra +/* 00B094 7000A494 0002103F */ dsra32 $v0, $v0, 0 +) +#endif + + + +#ifdef NONMATCHING +void increment_random_num(u64 param_1) { + randseed = param_1 + 1; + return; +} +#else +GLOBAL_ASM( +.text +glabel increment_random_num +/* 00B098 7000A498 64840001 */ daddiu $a0, $a0, 1 +/* 00B09C 7000A49C 3C018002 */ lui $at, %hi(randseed) +/* 00B0A0 7000A4A0 FC244460 */ sd $a0, %lo(randseed)($at) +/* 00B0A4 7000A4A4 03E00008 */ jr $ra +/* 00B0A8 7000A4A8 24040000 */ li $a0, 0 +) +#endif + + + +#ifdef NONMATCHING +u32 lotsa_shifting_random_related(ulonglong *param_1) { + ulonglong uVar1; + + uVar1 = *param_1; + uVar1 = ((uVar1 << 0x3f) >> 0x1f | (uVar1 << 0x1f) >> 0x20) ^ (uVar1 << 0x2c) >> 0x20; + uVar1 = uVar1 >> 0x14 & 0xfff ^ uVar1; + *param_1 = uVar1; + return (u32)uVar1; +} +#else +GLOBAL_ASM( +.text +glabel lotsa_shifting_randomizer_related +/* 00B0AC 7000A4AC DC870000 */ ld $a3, ($a0) +/* 00B0B0 7000A4B0 000737FC */ dsll32 $a2, $a3, 0x1f +/* 00B0B4 7000A4B4 00072FF8 */ dsll $a1, $a3, 0x1f +/* 00B0B8 7000A4B8 000637FA */ dsrl $a2, $a2, 0x1f +/* 00B0BC 7000A4BC 0005283E */ dsrl32 $a1, $a1, 0 +/* 00B0C0 7000A4C0 00073B3C */ dsll32 $a3, $a3, 0xc +/* 00B0C4 7000A4C4 00C53025 */ or $a2, $a2, $a1 +/* 00B0C8 7000A4C8 0007383E */ dsrl32 $a3, $a3, 0 +/* 00B0CC 7000A4CC 00C73026 */ xor $a2, $a2, $a3 +/* 00B0D0 7000A4D0 00063D3A */ dsrl $a3, $a2, 0x14 +/* 00B0D4 7000A4D4 30E70FFF */ andi $a3, $a3, 0xfff +/* 00B0D8 7000A4D8 00E63826 */ xor $a3, $a3, $a2 +/* 00B0DC 7000A4DC 0007103C */ dsll32 $v0, $a3, 0 +/* 00B0E0 7000A4E0 FC870000 */ sd $a3, ($a0) +/* 00B0E4 7000A4E4 03E00008 */ jr $ra +/* 00B0E8 7000A4E8 0002103F */ dsra32 $v0, $v0, 0 +) +#endif + + + diff --git a/src/rmon.c b/src/rmon.c new file mode 100644 index 0000000..1d7930e --- /dev/null +++ b/src/rmon.c @@ -0,0 +1,131 @@ +#include "ultra64.h" + + +void rmonproc(void) { + // (function likely void) +} + +s32 rmon_debug_is_final_build(void) { + return 1; +} + +s32 rmon_debug_returns_neg_1(void) { + return -1; +} + + +void rmon_debug_stub(void) { + // (function likely void) +} + + +void rmon_debug_stub_0(void) { + // (function likely void) +} + +void rmon_debug_stub_1(void) { + // (function likely void) +} + +void rmon_debug_stub_2(void) { + // (function likely void) +} + +void rmon_debug_stub_3(void) { + // (function likely void) +} + +void rmon_debug_stub_4(void) { + // (function likely void) +} + + + +#ifdef NONMATCHING +? proutSyncPrintf(s32 arg0, void *arg1, s32 arg2) +{ + s32 temp_s0; + void *phi_s1; + s32 phi_s0; + + if (arg2 != 0) + { + phi_s1 = arg1; + phi_s0 = 0; +loop_2: + temp_s0 = phi_s0 + 1; + __osRdbSend(*phi_s1); + phi_s1 = phi_s1 + 1; + phi_s0 = temp_s0; + if (temp_s0 != arg2) + { + goto loop_2; + } + } + return 1; +} +#else +GLOBAL_ASM( +.text +glabel proutSyncPrintf +/* 00DAE8 7000CEE8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 00DAEC 7000CEEC AFB20020 */ sw $s2, 0x20($sp) +/* 00DAF0 7000CEF0 AFB00018 */ sw $s0, 0x18($sp) +/* 00DAF4 7000CEF4 00C09025 */ move $s2, $a2 +/* 00DAF8 7000CEF8 AFBF0024 */ sw $ra, 0x24($sp) +/* 00DAFC 7000CEFC AFB1001C */ sw $s1, 0x1c($sp) +/* 00DB00 7000CF00 AFA40028 */ sw $a0, 0x28($sp) +/* 00DB04 7000CF04 10C00008 */ beqz $a2, .L7000CF28 +/* 00DB08 7000CF08 00008025 */ move $s0, $zero +/* 00DB0C 7000CF0C 00A08825 */ move $s1, $a1 +/* 00DB10 7000CF10 92240000 */ lbu $a0, ($s1) +.L7000CF14: +/* 00DB14 7000CF14 26100001 */ addiu $s0, $s0, 1 +/* 00DB18 7000CF18 0C0015AF */ jal __osRdbSend +/* 00DB1C 7000CF1C 26310001 */ addiu $s1, $s1, 1 +/* 00DB20 7000CF20 5612FFFC */ bnel $s0, $s2, .L7000CF14 +/* 00DB24 7000CF24 92240000 */ lbu $a0, ($s1) +.L7000CF28: +/* 00DB28 7000CF28 8FBF0024 */ lw $ra, 0x24($sp) +/* 00DB2C 7000CF2C 8FB00018 */ lw $s0, 0x18($sp) +/* 00DB30 7000CF30 8FB1001C */ lw $s1, 0x1c($sp) +/* 00DB34 7000CF34 8FB20020 */ lw $s2, 0x20($sp) +/* 00DB38 7000CF38 27BD0028 */ addiu $sp, $sp, 0x28 +/* 00DB3C 7000CF3C 03E00008 */ jr $ra +/* 00DB40 7000CF40 24020001 */ li $v0, 1 +) +#endif + + + +#ifdef NONMATCHING +void osSyncPrintf(s32 arg0, s32 arg1, ? arg2, ? arg3) +{ + _Printf(&proutSyncPrintf, 0, arg0, &arg1); +} +#else +GLOBAL_ASM( +.text +glabel osSyncPrintf +/* 00DB44 7000CF44 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00DB48 7000CF48 AFA40020 */ sw $a0, 0x20($sp) +/* 00DB4C 7000CF4C AFBF0014 */ sw $ra, 0x14($sp) +/* 00DB50 7000CF50 AFA50024 */ sw $a1, 0x24($sp) +/* 00DB54 7000CF54 AFA60028 */ sw $a2, 0x28($sp) +/* 00DB58 7000CF58 AFA7002C */ sw $a3, 0x2c($sp) +/* 00DB5C 7000CF5C 3C047001 */ lui $a0, %hi(proutSyncPrintf) # $a0, 0x7001 +/* 00DB60 7000CF60 2484CEE8 */ addiu $a0, %lo(proutSyncPrintf) # addiu $a0, $a0, -0x3118 +/* 00DB64 7000CF64 27A70024 */ addiu $a3, $sp, 0x24 +/* 00DB68 7000CF68 8FA60020 */ lw $a2, 0x20($sp) +/* 00DB6C 7000CF6C 0C004FD8 */ jal _Printf +/* 00DB70 7000CF70 00002825 */ move $a1, $zero +/* 00DB74 7000CF74 8FBF0014 */ lw $ra, 0x14($sp) +/* 00DB78 7000CF78 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00DB7C 7000CF7C 03E00008 */ jr $ra +/* 00DB80 7000CF80 00000000 */ nop +) +#endif + + + + diff --git a/src/rmon.h b/src/rmon.h new file mode 100644 index 0000000..90be18d --- /dev/null +++ b/src/rmon.h @@ -0,0 +1,8 @@ +#ifndef _RMON_H_ +#define _RMON_H_ +#include + +void rmonproc(void); + + +#endif diff --git a/src/rom_header.s b/src/rom_header.s new file mode 100644 index 0000000..d16b1ed --- /dev/null +++ b/src/rom_header.s @@ -0,0 +1,24 @@ + +.section .data +.byte 0x80, 0x37, 0x12, 0x40 # PI BSD Domain 1 register +.word 0x0000000F # clock rate setting +.word 0x80000400 # entry point +.word 0x00001447 # release +.word 0xDCBC50D1 # checksum1 +.word 0x09FD1AA3 # checksum2 +.word 0x00000000 # unknown +.word 0x00000000 # unknown +.ascii "GOLDENEYE " # ROM name: 20 bytes +.word 0x00000000 # unknown +.word 0x0000004E # cartridge +.ascii "GE" # cartridge ID +.ifdef VERSION_US +.ascii "E" # country +.endif +.ifdef VERSION_JP +.ascii "J" # country +.endif +.ifdef VERSION_EU +.ascii "P" # country +.endif +.byte 0x00 # version diff --git a/src/rspboot.s b/src/rspboot.s new file mode 100644 index 0000000..20d272a --- /dev/null +++ b/src/rspboot.s @@ -0,0 +1,25 @@ +# Goldeneye 007 (U) disassembly and split file +# generated by n64split v0.4a - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 + +.include "macros.inc" + +.section .text, "ax" +glabel rspbootTextStart +.ifdef VERSION_US +.incbin "build/u/rsp/rspboot.bin" +.endif +.ifdef VERSION_JP +.incbin "build/j/rsp/rspboot.bin" +.endif +.ifdef VERSION_EU +.incbin "build/e/rsp/rspboot.bin" +.endif +glabel rspbootTextEnd +.section .data +.section .rodata +.section .bss diff --git a/src/sched.c b/src/sched.c new file mode 100644 index 0000000..357edeb --- /dev/null +++ b/src/sched.c @@ -0,0 +1,1394 @@ +#include +#include "init.h" +#include "sched.h" +#include "bondgame.h" +#include "deb_print.h" + +/** + * @file sched.c + * This file contains the scheduler. + * + * In particular, it: + * - is based on but modified by rare from code included in sdk + * - + * - + */ + +u32 stderr_unused = 0; +u32 stderr_enabled = 0; +u32 stderr_active = 0; +u32 stderr_permitted = 0; +u32 userCompareValue = 45000000; +u32 currentcount = 0; +u32 setby_DPCfill_0 = 0; +u32 setby_DPCfill_1 = 0; +//800230b0 +f32 something_with_osVI_0 = 0.0; +f32 something_with_osVI_4 = 1.0; +f32 something_with_osVI_8 = 1.0; +f32 something_with_osVI_C = 1.0; +f32 something_with_osVI_10 = 1.0; +f32 something_with_osVI_14 = 0.0; +f32 something_with_osVI_18 = 0.0; + +u32 D_800230CC = 1; + + +OSSched sc; +//temporary until i get proper sized structs +OSScClient gfxClient[3]; +//char gfxClient[0x18]; + +char target_for_counters_maybe[0x10]; +char dword_CODE_bss_8005DB40[0xB0]; + + +/** + * 1570 70000970 + * A0-> stderr.activated [80023098]; fry AT + */ +void activate_stderr(u32 flag) +{ + stderr_active = flag; +} + +/** + * 157C 7000097C + * A0-> stderr.enable [80023094]; fry AT + */ +void enable_stderr(u32 flag) +{ + stderr_enabled = flag; +} + +/** + * 1588 70000988 + * A0-> stderr.permitted [8002309C]; fry AT + */ +void permit_stderr(u32 flag) +{ + stderr_permitted = flag; +} + +/** + * 1594 70000994 + * A0-> user.Compare [800230A0]; fry AT + */ +void setUserCompareValue(u32 value) +{ + userCompareValue = value; +} + +/** + * 15A0 700009A0 + * test to display stderr and update Count + */ +void CheckDisplayErrorBuffer(u32 *buffer) +{ + if ((stderr_permitted && stderr_active) || stderr_enabled ) + { + write_stderr_to_buffer(buffer); + currentcount = osGetCount(); + } +} + +/** + * 15F8 700009F8 + * test to display stderr every 16th frame + */ + +void CheckDisplayErrorBufferEvery16Frames(u32 framecount) +{ + if (!(framecount & 0xf)) + { + if ((stderr_permitted && stderr_active) || stderr_enabled) + { + if (userCompareValue < (osGetCount() - currentcount)) + { + write_stderr_to_buffer((u32*)cfb_16_a); + write_stderr_to_buffer((u32*)cfb_16_b); + } + } + } +} + +/** + * Not 100% on name, came from osInitialize's call to function + * 1688 70000A88 + * store current Count to 800230A4 + */ +void osCreateLog(void){ + currentcount=osGetCount(); +} + +/** + * 16AC 70000AAC + * (thread management) + */ +#ifdef NONMATCHING +void osCreateScheduler (OSSched * sc, void * stack, u8 mode, u8 numFields) +{ + sc->curRSPTask = 0; + sc->curRDPTask = 0; + sc->clientList = 0; + sc->frameCount = 0; + sc->audioListHead = 0; + sc->gfxListHead = 0; + sc->audioListTail = 0; + sc->gfxListTail = 0; + sc->retraceMsg.type = 1; + sc->prenmiMsg.type = 5; + sc->thread = stack; + osCreateMesgQueue(&sc->interruptQ, sc->intBuf, 8); + osCreateMesgQueue(&sc->cmdQ, sc->cmdMsgBuf, 8); + osCreateViManager(0xfe); + + viMode = osViModeTable[mode]; + viMode.comRegs.ctrl = osViModeTable[mode].comRegs.hStart; + viMode.comRegs.width = osViModeTable[mode].fldRegs[0].vStart; + viMode.comRegs.burst = osViModeTable[mode].fldRegs[1].vStart; + + osSetEventMesg(4, &sc->interruptQ, 0x29b); + osSetEventMesg(9, &sc->interruptQ, 0x29c); + osSetEventMesg(0xe, &sc->interruptQ, 0x29d); + osViSetEvent(&sc->interruptQ, 0x29a, numFields); + osCreateLog(); + osCreateThread(sc->thread, 2, &__scMain, sc, set_stack_entry(&sp_shed, 0x200), 0x1e); + osStartThread(sc->thread); +} +#else +GLOBAL_ASM( +glabel osCreateScheduler +/* 0016AC 70000AAC 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0016B0 70000AB0 AFBF0024 */ sw $ra, 0x24($sp) +/* 0016B4 70000AB4 AFB10020 */ sw $s1, 0x20($sp) +/* 0016B8 70000AB8 AFB0001C */ sw $s0, 0x1c($sp) +/* 0016BC 70000ABC AFA5002C */ sw $a1, 0x2c($sp) +/* 0016C0 70000AC0 AFA60030 */ sw $a2, 0x30($sp) +/* 0016C4 70000AC4 AFA70034 */ sw $a3, 0x34($sp) +/* 0016C8 70000AC8 240E0001 */ li $t6, 1 +/* 0016CC 70000ACC 240F0005 */ li $t7, 5 +/* 0016D0 70000AD0 AC8000C8 */ sw $zero, 0xc8($a0) +/* 0016D4 70000AD4 AC8000CC */ sw $zero, 0xcc($a0) +/* 0016D8 70000AD8 AC8000B4 */ sw $zero, 0xb4($a0) +/* 0016DC 70000ADC AC8000D0 */ sw $zero, 0xd0($a0) +/* 0016E0 70000AE0 AC8000B8 */ sw $zero, 0xb8($a0) +/* 0016E4 70000AE4 AC8000BC */ sw $zero, 0xbc($a0) +/* 0016E8 70000AE8 AC8000C0 */ sw $zero, 0xc0($a0) +/* 0016EC 70000AEC AC8000C4 */ sw $zero, 0xc4($a0) +/* 0016F0 70000AF0 A48E0000 */ sh $t6, ($a0) +/* 0016F4 70000AF4 A48F0020 */ sh $t7, 0x20($a0) +/* 0016F8 70000AF8 8FB8002C */ lw $t8, 0x2c($sp) +/* 0016FC 70000AFC 00808025 */ move $s0, $a0 +/* 001700 70000B00 24910040 */ addiu $s1, $a0, 0x40 +/* 001704 70000B04 AC9800B0 */ sw $t8, 0xb0($a0) +/* 001708 70000B08 02202025 */ move $a0, $s1 +/* 00170C 70000B0C 26050058 */ addiu $a1, $s0, 0x58 +/* 001710 70000B10 0C0035B4 */ jal osCreateMesgQueue +/* 001714 70000B14 24060008 */ li $a2, 8 +/* 001718 70000B18 26040078 */ addiu $a0, $s0, 0x78 +/* 00171C 70000B1C 26050090 */ addiu $a1, $s0, 0x90 +/* 001720 70000B20 0C0035B4 */ jal osCreateMesgQueue +/* 001724 70000B24 24060008 */ li $a2, 8 +/* 001728 70000B28 0C00363C */ jal osCreateViManager +/* 00172C 70000B2C 240400FE */ li $a0, 254 +/* 001730 70000B30 93B90033 */ lbu $t9, 0x33($sp) +/* 001734 70000B34 3C098002 */ lui $t1, %hi(osViModeTable) +/* 001738 70000B38 3C038006 */ lui $v1, %hi(viMode) +/* 00173C 70000B3C 00194080 */ sll $t0, $t9, 2 +/* 001740 70000B40 01194021 */ addu $t0, $t0, $t9 +/* 001744 70000B44 00084100 */ sll $t0, $t0, 4 +/* 001748 70000B48 252969C0 */ addiu $t1, %lo(osViModeTable) # addiu $t1, $t1, 0x69c0 +/* 00174C 70000B4C 2463087C */ addiu $v1, %lo(viMode) # addiu $v1, $v1, 0x87c +/* 001750 70000B50 01095021 */ addu $t2, $t0, $t1 +/* 001754 70000B54 AC6A0000 */ sw $t2, ($v1) +/* 001758 70000B58 8D4B001C */ lw $t3, 0x1c($t2) +/* 00175C 70000B5C 3C018006 */ lui $at, %hi(viMode+0x4) +/* 001760 70000B60 24040004 */ li $a0, 4 +/* 001764 70000B64 AC2B0880 */ sw $t3, %lo(viMode+0x4)($at) +/* 001768 70000B68 8D4C0030 */ lw $t4, 0x30($t2) +/* 00176C 70000B6C 3C018006 */ lui $at, %hi(viMode+0x8) +/* 001770 70000B70 02202825 */ move $a1, $s1 +/* 001774 70000B74 AC2C0884 */ sw $t4, %lo(viMode+0x8)($at) +/* 001778 70000B78 8D4D0044 */ lw $t5, 0x44($t2) +/* 00177C 70000B7C 3C018006 */ lui $at, %hi(viMode+0xC) +/* 001780 70000B80 2406029B */ li $a2, 667 +/* 001784 70000B84 0C003714 */ jal osSetEventMesg +/* 001788 70000B88 AC2D0888 */ sw $t5, %lo(viMode+0xC)($at) +/* 00178C 70000B8C 24040009 */ li $a0, 9 +/* 001790 70000B90 02202825 */ move $a1, $s1 +/* 001794 70000B94 0C003714 */ jal osSetEventMesg +/* 001798 70000B98 2406029C */ li $a2, 668 +/* 00179C 70000B9C 2404000E */ li $a0, 14 +/* 0017A0 70000BA0 02202825 */ move $a1, $s1 +/* 0017A4 70000BA4 0C003714 */ jal osSetEventMesg +/* 0017A8 70000BA8 2406029D */ li $a2, 669 +/* 0017AC 70000BAC 02202025 */ move $a0, $s1 +/* 0017B0 70000BB0 2405029A */ li $a1, 666 +/* 0017B4 70000BB4 0C003730 */ jal osViSetEvent +/* 0017B8 70000BB8 8FA60034 */ lw $a2, 0x34($sp) +/* 0017BC 70000BBC 0C0002A2 */ jal osCreateLog +/* 0017C0 70000BC0 00000000 */ nop +/* 0017C4 70000BC4 3C04803B */ lui $a0, %hi(sp_shed) # $a0, 0x803b +/* 0017C8 70000BC8 2484B750 */ addiu $a0, %lo(sp_shed) # addiu $a0, $a0, -0x48b0 +/* 0017CC 70000BCC 0C0001BC */ jal set_stack_entry +/* 0017D0 70000BD0 24050200 */ li $a1, 512 +/* 0017D4 70000BD4 8E0400B0 */ lw $a0, 0xb0($s0) +/* 0017D8 70000BD8 3C067000 */ lui $a2, %hi(__scMain) # $a2, 0x7000 +/* 0017DC 70000BDC 240E001E */ li $t6, 30 +/* 0017E0 70000BE0 AFAE0014 */ sw $t6, 0x14($sp) +/* 0017E4 70000BE4 24C60D00 */ addiu $a2, %lo(__scMain) # addiu $a2, $a2, 0xd00 +/* 0017E8 70000BE8 AFA20010 */ sw $v0, 0x10($sp) +/* 0017EC 70000BEC 24050002 */ li $a1, 2 +/* 0017F0 70000BF0 0C00350C */ jal osCreateThread +/* 0017F4 70000BF4 02003825 */ move $a3, $s0 +/* 0017F8 70000BF8 0C003560 */ jal osStartThread +/* 0017FC 70000BFC 8E0400B0 */ lw $a0, 0xb0($s0) +/* 001800 70000C00 8FBF0024 */ lw $ra, 0x24($sp) +/* 001804 70000C04 8FB0001C */ lw $s0, 0x1c($sp) +/* 001808 70000C08 8FB10020 */ lw $s1, 0x20($sp) +/* 00180C 70000C0C 03E00008 */ jr $ra +/* 001810 70000C10 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + +/** + * 1814 70000C14 + */ +void osScAddClient(OSSched *sc, OSScClient *c, OSMesgQueue *msgQ, OSScClient *next) +{ + OSIntMask mask; + + mask = osSetIntMask(1); + + c->msgQ = msgQ; + c[1].next = next; + c->next = sc->clientList; + sc->clientList = c; + + osSetIntMask(mask); +} + + +/** + * 1870 70000C70 + */ +void osScRemoveClient(OSSched *sc, OSScClient *c) +{ + OSScClient *client = sc->clientList; + OSScClient *prev = 0; + OSIntMask mask; + + mask = osSetIntMask(1); + + while (client != 0) + { + if (client == c) + { + if(prev) + prev->next = c->next; + else + sc->clientList = c->next; + break; + } + prev = client; + client = client->next; + } + + osSetIntMask(mask); +} + + +/** + * 18F8 70000CF8 + * V0= A0+78 + */ +OSMesgQueue *osScGetCmdQ(OSSched *sc) +{ + return &sc->cmdQ; +} + +/** + * 1900 70000D00 + */ +#ifdef NONMATCHING +void __scMain(void *arg) +{ + OSMesg msg; + OSSched *sc = (OSSched *)arg; + OSScClient *client; + static int count = 0; + + while (1) { + + osRecvMesg(&sc->interruptQ, (OSMesg *)&msg, OS_MESG_BLOCK); + + switch ((int) msg) { + case (0x29a): + __scHandleRetrace(sc); + break; + + case (0x29b): + __scHandleRSP(sc); + break; + + case (0x29c): + __scHandleRDP(sc); + break; + + case (0x29d): + reset_cont_rumble_detect(); + for (client = sc->clientList;client != 0;client = client->next) { + osSendMesg(client->msgQ, (OSMesg) &sc->prenmiMsg, OS_MESG_NOBLOCK); + } + break; + } + } + if (osTvType == 2) + { + osViSetMode(0x80027320); + } + else + { + osViSetMode(0x80026a60); + } + osViSetXScale(1.00000000); + osViSetYScale(1.00000000); + osViRepeatLine(0); + osViBlack(1); + + while (1) { + while ((u32)msg != 0x29a) { + osRecvMesg(&sc->interruptQ,&msg,1); + } + controllerSchedulerRelated(); + } + +} +#else +GLOBAL_ASM( +glabel __scMain +/* 001900 70000D00 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 001904 70000D04 AFB50028 */ sw $s5, 0x28($sp) +/* 001908 70000D08 AFB40024 */ sw $s4, 0x24($sp) +/* 00190C 70000D0C AFB30020 */ sw $s3, 0x20($sp) +/* 001910 70000D10 AFB2001C */ sw $s2, 0x1c($sp) +/* 001914 70000D14 AFB00014 */ sw $s0, 0x14($sp) +/* 001918 70000D18 00809025 */ move $s2, $a0 +/* 00191C 70000D1C AFBF002C */ sw $ra, 0x2c($sp) +/* 001920 70000D20 AFB10018 */ sw $s1, 0x18($sp) +/* 001924 70000D24 AFA0004C */ sw $zero, 0x4c($sp) +/* 001928 70000D28 00008025 */ move $s0, $zero +/* 00192C 70000D2C 24930040 */ addiu $s3, $a0, 0x40 +/* 001930 70000D30 27B4004C */ addiu $s4, $sp, 0x4c +/* 001934 70000D34 2415029A */ li $s5, 666 +/* 001938 70000D38 02602025 */ move $a0, $s3 +.L70000D3C: +/* 00193C 70000D3C 02802825 */ move $a1, $s4 +/* 001940 70000D40 0C003774 */ jal osRecvMesg +/* 001944 70000D44 24060001 */ li $a2, 1 +/* 001948 70000D48 8FAE004C */ lw $t6, 0x4c($sp) +/* 00194C 70000D4C 2401029B */ li $at, 667 +/* 001950 70000D50 11D50009 */ beq $t6, $s5, .L70000D78 +/* 001954 70000D54 00000000 */ nop +/* 001958 70000D58 11C1000B */ beq $t6, $at, .L70000D88 +/* 00195C 70000D5C 2401029C */ li $at, 668 +/* 001960 70000D60 11C1000D */ beq $t6, $at, .L70000D98 +/* 001964 70000D64 2401029D */ li $at, 669 +/* 001968 70000D68 11C1000F */ beq $t6, $at, .L70000DA8 +/* 00196C 70000D6C 00000000 */ nop +/* 001970 70000D70 1000001B */ b .L70000DE0 +/* 001974 70000D74 00000000 */ nop +.L70000D78: +/* 001978 70000D78 0C0003AD */ jal __scHandleRetrace +/* 00197C 70000D7C 02402025 */ move $a0, $s2 +/* 001980 70000D80 10000017 */ b .L70000DE0 +/* 001984 70000D84 00000000 */ nop +.L70000D88: +/* 001988 70000D88 0C000405 */ jal __scHandleRSP +/* 00198C 70000D8C 02402025 */ move $a0, $s2 +/* 001990 70000D90 10000013 */ b .L70000DE0 +/* 001994 70000D94 00000000 */ nop +.L70000D98: +/* 001998 70000D98 0C00044A */ jal __scHandleRDP +/* 00199C 70000D9C 02402025 */ move $a0, $s2 +/* 0019A0 70000DA0 1000000F */ b .L70000DE0 +/* 0019A4 70000DA4 00000000 */ nop +.L70000DA8: +/* 0019A8 70000DA8 0C003237 */ jal reset_cont_rumble_detect +/* 0019AC 70000DAC 00000000 */ nop +/* 0019B0 70000DB0 8E5000B4 */ lw $s0, 0xb4($s2) +/* 0019B4 70000DB4 26510020 */ addiu $s1, $s2, 0x20 +/* 0019B8 70000DB8 52000009 */ beql $s0, $zero, .L70000DE0 +/* 0019BC 70000DBC 24100001 */ li $s0, 1 +/* 0019C0 70000DC0 8E040004 */ lw $a0, 4($s0) +.L70000DC4: +/* 0019C4 70000DC4 02202825 */ move $a1, $s1 +/* 0019C8 70000DC8 0C0037C4 */ jal osSendMesg +/* 0019CC 70000DCC 00003025 */ move $a2, $zero +/* 0019D0 70000DD0 8E100000 */ lw $s0, ($s0) +/* 0019D4 70000DD4 5600FFFB */ bnezl $s0, .L70000DC4 +/* 0019D8 70000DD8 8E040004 */ lw $a0, 4($s0) +/* 0019DC 70000DDC 24100001 */ li $s0, 1 +.L70000DE0: +/* 0019E0 70000DE0 5200FFD6 */ beql $s0, $zero, .L70000D3C +/* 0019E4 70000DE4 02602025 */ move $a0, $s3 +/* 0019E8 70000DE8 3C0F8000 */ lui $t7, %hi(osTvType) +/* 0019EC 70000DEC 8DEF0300 */ lw $t7, %lo(osTvType)($t7) +/* 0019F0 70000DF0 24010002 */ li $at, 2 +/* 0019F4 70000DF4 3C048002 */ lui $a0, %hi(osViModeTable_osViModeNtscLan1) +/* 0019F8 70000DF8 15E10006 */ bne $t7, $at, .L70000E14 +/* 0019FC 70000DFC 00000000 */ nop +/* 001A00 70000E00 3C048002 */ lui $a0, %hi(osViModeTable_osViModeMpalLan1) +/* 001A04 70000E04 0C003818 */ jal osViSetMode +/* 001A08 70000E08 24847320 */ addiu $a0, %lo(osViModeTable_osViModeMpalLan1) # addiu $a0, $a0, 0x7320 +/* 001A0C 70000E0C 10000004 */ b .L70000E20 +/* 001A10 70000E10 3C013F80 */ lui $at, 0x3f80 +.L70000E14: +/* 001A14 70000E14 0C003818 */ jal osViSetMode +/* 001A18 70000E18 24846A60 */ addiu $a0, $a0, %lo(osViModeTable_osViModeNtscLan1) +/* 001A1C 70000E1C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L70000E20: +/* 001A20 70000E20 44816000 */ mtc1 $at, $f12 +/* 001A24 70000E24 0C003834 */ jal osViSetXScale +/* 001A28 70000E28 00000000 */ nop +/* 001A2C 70000E2C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 001A30 70000E30 44816000 */ mtc1 $at, $f12 +/* 001A34 70000E34 0C003880 */ jal osViSetYScale +/* 001A38 70000E38 00000000 */ nop +/* 001A3C 70000E3C 0C003898 */ jal osViRepeatLine +/* 001A40 70000E40 00002025 */ move $a0, $zero +/* 001A44 70000E44 0C0038B4 */ jal osViBlack +/* 001A48 70000E48 24040001 */ li $a0, 1 +/* 001A4C 70000E4C 02602025 */ move $a0, $s3 +.L70000E50: +/* 001A50 70000E50 02802825 */ move $a1, $s4 +/* 001A54 70000E54 0C003774 */ jal osRecvMesg +/* 001A58 70000E58 24060001 */ li $a2, 1 +/* 001A5C 70000E5C 8FB8004C */ lw $t8, 0x4c($sp) +/* 001A60 70000E60 5715FFFB */ bnel $t8, $s5, .L70000E50 +/* 001A64 70000E64 02602025 */ move $a0, $s3 +/* 001A68 70000E68 0C002F62 */ jal controllerSchedulerRelated +/* 001A6C 70000E6C 00000000 */ nop +/* 001A70 70000E70 1000FFF7 */ b .L70000E50 +/* 001A74 70000E74 02602025 */ move $a0, $s3 +/* 001A78 70000E78 00000000 */ nop +/* 001A7C 70000E7C 00000000 */ nop +/* 001A80 70000E80 00000000 */ nop +/* 001A84 70000E84 00000000 */ nop +/* 001A88 70000E88 00000000 */ nop +/* 001A8C 70000E8C 00000000 */ nop +/* 001A90 70000E90 8FBF002C */ lw $ra, 0x2c($sp) +/* 001A94 70000E94 8FB00014 */ lw $s0, 0x14($sp) +/* 001A98 70000E98 8FB10018 */ lw $s1, 0x18($sp) +/* 001A9C 70000E9C 8FB2001C */ lw $s2, 0x1c($sp) +/* 001AA0 70000EA0 8FB30020 */ lw $s3, 0x20($sp) +/* 001AA4 70000EA4 8FB40024 */ lw $s4, 0x24($sp) +/* 001AA8 70000EA8 8FB50028 */ lw $s5, 0x28($sp) +/* 001AAC 70000EAC 03E00008 */ jr $ra +/* 001AB0 70000EB0 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + +/** + * 1AB4 70000EB4 + */ +#ifdef NONMATCHING +void __scHandleRetrace(OSSched *sc) +{ + OSScTask *rspTask = 0; + + OSScClient *client; + //s32 i; + s32 state; + OSScTask *sp = 0; + OSScTask *dp = 0; + + + video_related_1(); + sc->frameCount++; + video_related_7(); + controllerSchedulerRelated(); + music_related_15(); + while (osRecvMesg(&sc->cmdQ, (OSMesg *)&rspTask, OS_MESG_NOBLOCK) != -1) { + __scAppendList(sc, rspTask); + } + if (sc->doAudio && sc->curRSPTask) { + __scYield(sc); + } else { + state = ((sc->curRSPTask == 0) << 1) | (sc->curRDPTask == 0); + if ( __scSchedule (sc, &sp, &dp, state) != state) + __scExec(sc, sp, dp); + } + + for (client = sc->clientList; client != 0; client = client->next) { + osSendMesg(client->msgQ, (OSMesg) &sc->retraceMsg, OS_MESG_NOBLOCK); + } + + CheckDisplayErrorBufferEvery16Frames(sc->frameCount); +} +#else +GLOBAL_ASM( +glabel __scHandleRetrace +/* 001AB4 70000EB4 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 001AB8 70000EB8 AFBF0024 */ sw $ra, 0x24($sp) +/* 001ABC 70000EBC AFB10018 */ sw $s1, 0x18($sp) +/* 001AC0 70000EC0 00808825 */ move $s1, $a0 +/* 001AC4 70000EC4 AFB30020 */ sw $s3, 0x20($sp) +/* 001AC8 70000EC8 AFB2001C */ sw $s2, 0x1c($sp) +/* 001ACC 70000ECC AFB00014 */ sw $s0, 0x14($sp) +/* 001AD0 70000ED0 AFA0003C */ sw $zero, 0x3c($sp) +/* 001AD4 70000ED4 AFA00030 */ sw $zero, 0x30($sp) +/* 001AD8 70000ED8 0C0009E9 */ jal video_related_1 +/* 001ADC 70000EDC AFA0002C */ sw $zero, 0x2c($sp) +/* 001AE0 70000EE0 8E2E00D0 */ lw $t6, 0xd0($s1) +/* 001AE4 70000EE4 25CF0001 */ addiu $t7, $t6, 1 +/* 001AE8 70000EE8 0C000C68 */ jal video_related_7 +/* 001AEC 70000EEC AE2F00D0 */ sw $t7, 0xd0($s1) +/* 001AF0 70000EF0 0C002F62 */ jal controllerSchedulerRelated +/* 001AF4 70000EF4 00000000 */ nop +/* 001AF8 70000EF8 0C001E45 */ jal music_related_15 +/* 001AFC 70000EFC 00000000 */ nop +/* 001B00 70000F00 27B3003C */ addiu $s3, $sp, 0x3c +/* 001B04 70000F04 26320078 */ addiu $s2, $s1, 0x78 +/* 001B08 70000F08 02402025 */ move $a0, $s2 +/* 001B0C 70000F0C 02602825 */ move $a1, $s3 +/* 001B10 70000F10 0C003774 */ jal osRecvMesg +/* 001B14 70000F14 00003025 */ move $a2, $zero +/* 001B18 70000F18 2410FFFF */ li $s0, -1 +/* 001B1C 70000F1C 10500009 */ beq $v0, $s0, .L70000F44 +/* 001B20 70000F20 02202025 */ move $a0, $s1 +.L70000F24: +/* 001B24 70000F24 0C0004F6 */ jal __scAppendList +/* 001B28 70000F28 8FA5003C */ lw $a1, 0x3c($sp) +/* 001B2C 70000F2C 02402025 */ move $a0, $s2 +/* 001B30 70000F30 02602825 */ move $a1, $s3 +/* 001B34 70000F34 0C003774 */ jal osRecvMesg +/* 001B38 70000F38 00003025 */ move $a2, $zero +/* 001B3C 70000F3C 5450FFF9 */ bnel $v0, $s0, .L70000F24 +/* 001B40 70000F40 02202025 */ move $a0, $s1 +.L70000F44: +/* 001B44 70000F44 8E3800D4 */ lw $t8, 0xd4($s1) +/* 001B48 70000F48 02202025 */ move $a0, $s1 +/* 001B4C 70000F4C 27A50030 */ addiu $a1, $sp, 0x30 +/* 001B50 70000F50 53000009 */ beql $t8, $zero, .L70000F78 +/* 001B54 70000F54 8E2800C8 */ lw $t0, 0xc8($s1) +/* 001B58 70000F58 8E3900C8 */ lw $t9, 0xc8($s1) +/* 001B5C 70000F5C 53200006 */ beql $t9, $zero, .L70000F78 +/* 001B60 70000F60 8E2800C8 */ lw $t0, 0xc8($s1) +/* 001B64 70000F64 0C000558 */ jal __scYield +/* 001B68 70000F68 02202025 */ move $a0, $s1 +/* 001B6C 70000F6C 10000010 */ b .L70000FB0 +/* 001B70 70000F70 8E3000B4 */ lw $s0, 0xb4($s1) +/* 001B74 70000F74 8E2800C8 */ lw $t0, 0xc8($s1) +.L70000F78: +/* 001B78 70000F78 8E2B00CC */ lw $t3, 0xcc($s1) +/* 001B7C 70000F7C 27A6002C */ addiu $a2, $sp, 0x2c +/* 001B80 70000F80 2D090001 */ sltiu $t1, $t0, 1 +/* 001B84 70000F84 00095040 */ sll $t2, $t1, 1 +/* 001B88 70000F88 2D6C0001 */ sltiu $t4, $t3, 1 +/* 001B8C 70000F8C 014C8025 */ or $s0, $t2, $t4 +/* 001B90 70000F90 0C000567 */ jal __scSchedule +/* 001B94 70000F94 02003825 */ move $a3, $s0 +/* 001B98 70000F98 10500004 */ beq $v0, $s0, .L70000FAC +/* 001B9C 70000F9C 02202025 */ move $a0, $s1 +/* 001BA0 70000FA0 8FA50030 */ lw $a1, 0x30($sp) +/* 001BA4 70000FA4 0C000510 */ jal __scExec +/* 001BA8 70000FA8 8FA6002C */ lw $a2, 0x2c($sp) +.L70000FAC: +/* 001BAC 70000FAC 8E3000B4 */ lw $s0, 0xb4($s1) +.L70000FB0: +/* 001BB0 70000FB0 1200000F */ beqz $s0, .L70000FF0 +/* 001BB4 70000FB4 00000000 */ nop +/* 001BB8 70000FB8 8E0D0008 */ lw $t5, 8($s0) +.L70000FBC: +/* 001BBC 70000FBC 02202825 */ move $a1, $s1 +/* 001BC0 70000FC0 00003025 */ move $a2, $zero +/* 001BC4 70000FC4 11A00005 */ beqz $t5, .L70000FDC +/* 001BC8 70000FC8 00000000 */ nop +/* 001BCC 70000FCC 8E2E00D0 */ lw $t6, 0xd0($s1) +/* 001BD0 70000FD0 31CF0001 */ andi $t7, $t6, 1 +/* 001BD4 70000FD4 55E00004 */ bnezl $t7, .L70000FE8 +/* 001BD8 70000FD8 8E100000 */ lw $s0, ($s0) +.L70000FDC: +/* 001BDC 70000FDC 0C0037C4 */ jal osSendMesg +/* 001BE0 70000FE0 8E040004 */ lw $a0, 4($s0) +/* 001BE4 70000FE4 8E100000 */ lw $s0, ($s0) +.L70000FE8: +/* 001BE8 70000FE8 5600FFF4 */ bnezl $s0, .L70000FBC +/* 001BEC 70000FEC 8E0D0008 */ lw $t5, 8($s0) +.L70000FF0: +/* 001BF0 70000FF0 0C00027E */ jal CheckDisplayErrorBufferEvery16Frames +/* 001BF4 70000FF4 8E2400D0 */ lw $a0, 0xd0($s1) +/* 001BF8 70000FF8 8FBF0024 */ lw $ra, 0x24($sp) +/* 001BFC 70000FFC 8FB00014 */ lw $s0, 0x14($sp) +/* 001C00 70001000 8FB10018 */ lw $s1, 0x18($sp) +/* 001C04 70001004 8FB2001C */ lw $s2, 0x1c($sp) +/* 001C08 70001008 8FB30020 */ lw $s3, 0x20($sp) +/* 001C0C 7000100C 03E00008 */ jr $ra +/* 001C10 70001010 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + +/** + * 1C14 70001014 + */ +#ifdef NONMATCHING +void __scHandleRSP(OSSched *sc) +{ + OSScTask *t, *sp = 0, *dp = 0; + s32 state; + + t = sc->curRSPTask; + sc->curRSPTask = 0; + video_related_3(0x10001); + if (((t->state & 0x10) != 0) && (osSpTaskYielded(t->list) != 0)) + { + t->state = (s32) (t->state | 0x20); + if ((t->flags & 7) == 3) + { + *t = (void *) sc->gfxListHead; + sc->gfxListHead = t; + if (sc->gfxListTail == 0) + { + sc->gfxListTail = t; + } + } + } + else + { + t->state = (s32) (t->state & -3); + __scTaskComplete(sc, t); + } + if (__scSchedule(sc, &sp, &dp, ((((u32) sc->curRSPTask < 1U) * 2) | ((u32) sc->curRDPTask < 1U)))) + { + __scExec(sc, sp, dp); + } +} + +#else +GLOBAL_ASM( +glabel __scHandleRSP +/* 001C14 70001014 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 001C18 70001018 AFBF001C */ sw $ra, 0x1c($sp) +/* 001C1C 7000101C AFB00018 */ sw $s0, 0x18($sp) +/* 001C20 70001020 AFA00028 */ sw $zero, 0x28($sp) +/* 001C24 70001024 AFA00024 */ sw $zero, 0x24($sp) +/* 001C28 70001028 8C8500C8 */ lw $a1, 0xc8($a0) +/* 001C2C 7000102C 00808025 */ move $s0, $a0 +/* 001C30 70001030 AC8000C8 */ sw $zero, 0xc8($a0) +/* 001C34 70001034 3C040001 */ lui $a0, (0x00010001 >> 16) # lui $a0, 1 +/* 001C38 70001038 34840001 */ ori $a0, (0x00010001 & 0xFFFF) # ori $a0, $a0, 1 +/* 001C3C 7000103C 0C000A15 */ jal video_related_3 +/* 001C40 70001040 AFA5002C */ sw $a1, 0x2c($sp) +/* 001C44 70001044 8FA5002C */ lw $a1, 0x2c($sp) +/* 001C48 70001048 8CAE0004 */ lw $t6, 4($a1) +/* 001C4C 7000104C 24A40010 */ addiu $a0, $a1, 0x10 +/* 001C50 70001050 31CF0010 */ andi $t7, $t6, 0x10 +/* 001C54 70001054 51E00015 */ beql $t7, $zero, .L700010AC +/* 001C58 70001058 8CAC0004 */ lw $t4, 4($a1) +/* 001C5C 7000105C 0C0038D0 */ jal osSpTaskYielded +/* 001C60 70001060 AFA5002C */ sw $a1, 0x2c($sp) +/* 001C64 70001064 10400010 */ beqz $v0, .L700010A8 +/* 001C68 70001068 8FA5002C */ lw $a1, 0x2c($sp) +/* 001C6C 7000106C 8CB80004 */ lw $t8, 4($a1) +/* 001C70 70001070 8CA80008 */ lw $t0, 8($a1) +/* 001C74 70001074 24010003 */ li $at, 3 +/* 001C78 70001078 37190020 */ ori $t9, $t8, 0x20 +/* 001C7C 7000107C 31090007 */ andi $t1, $t0, 7 +/* 001C80 70001080 1521000F */ bne $t1, $at, .L700010C0 +/* 001C84 70001084 ACB90004 */ sw $t9, 4($a1) +/* 001C88 70001088 8E0A00BC */ lw $t2, 0xbc($s0) +/* 001C8C 7000108C ACAA0000 */ sw $t2, ($a1) +/* 001C90 70001090 8E0B00C4 */ lw $t3, 0xc4($s0) +/* 001C94 70001094 AE0500BC */ sw $a1, 0xbc($s0) +/* 001C98 70001098 5560000A */ bnezl $t3, .L700010C4 +/* 001C9C 7000109C 8E0E00C8 */ lw $t6, 0xc8($s0) +/* 001CA0 700010A0 10000007 */ b .L700010C0 +/* 001CA4 700010A4 AE0500C4 */ sw $a1, 0xc4($s0) +.L700010A8: +/* 001CA8 700010A8 8CAC0004 */ lw $t4, 4($a1) +.L700010AC: +/* 001CAC 700010AC 2401FFFD */ li $at, -3 +/* 001CB0 700010B0 02002025 */ move $a0, $s0 +/* 001CB4 700010B4 01816824 */ and $t5, $t4, $at +/* 001CB8 700010B8 0C00048C */ jal __scTaskComplete +/* 001CBC 700010BC ACAD0004 */ sw $t5, 4($a1) +.L700010C0: +/* 001CC0 700010C0 8E0E00C8 */ lw $t6, 0xc8($s0) +.L700010C4: +/* 001CC4 700010C4 8E1900CC */ lw $t9, 0xcc($s0) +/* 001CC8 700010C8 02002025 */ move $a0, $s0 +/* 001CCC 700010CC 2DCF0001 */ sltiu $t7, $t6, 1 +/* 001CD0 700010D0 000FC040 */ sll $t8, $t7, 1 +/* 001CD4 700010D4 2F280001 */ sltiu $t0, $t9, 1 +/* 001CD8 700010D8 03083825 */ or $a3, $t8, $t0 +/* 001CDC 700010DC AFA70020 */ sw $a3, 0x20($sp) +/* 001CE0 700010E0 27A50028 */ addiu $a1, $sp, 0x28 +/* 001CE4 700010E4 0C000567 */ jal __scSchedule +/* 001CE8 700010E8 27A60024 */ addiu $a2, $sp, 0x24 +/* 001CEC 700010EC 8FA70020 */ lw $a3, 0x20($sp) +/* 001CF0 700010F0 02002025 */ move $a0, $s0 +/* 001CF4 700010F4 8FA50028 */ lw $a1, 0x28($sp) +/* 001CF8 700010F8 50470004 */ beql $v0, $a3, .L7000110C +/* 001CFC 700010FC 8FBF001C */ lw $ra, 0x1c($sp) +/* 001D00 70001100 0C000510 */ jal __scExec +/* 001D04 70001104 8FA60024 */ lw $a2, 0x24($sp) +/* 001D08 70001108 8FBF001C */ lw $ra, 0x1c($sp) +.L7000110C: +/* 001D0C 7000110C 8FB00018 */ lw $s0, 0x18($sp) +/* 001D10 70001110 27BD0030 */ addiu $sp, $sp, 0x30 +/* 001D14 70001114 03E00008 */ jr $ra +/* 001D18 70001118 00000000 */ nop +) +#endif + +/** + * 1D1C 7000111C + * V0= 8005DB30: target for DP Cmd clock, buffer counter, pipe counter, and tmem counter + */ +char *get_counters(void) +{ + return &target_for_counters_maybe; +} + +/** + * 1D28 70001128 + */ +#ifdef NONMATCHING +void __scHandleRDP(void *arg0) +{ + ?32 sp28; + ?32 sp24; + + sp28 = 0; + sp24 = 0; + if (arg0->unkCC != 0) + { + video_related_3(0x10002); + osDpGetCounters(&target_for_counters_maybe); + arg0->unkCC = NULL; + arg0->unkCC->unk4 = (s32) (arg0->unkCC->unk4 & -2); + __scTaskComplete(arg0, arg0->unkCC); + if (__scSchedule(arg0, &sp28, &sp24, ((((u32) arg0->unkC8 < 1U) * 2) | ((u32) arg0->unkCC < 1U))) != sp20) + { + __scExec(arg0, sp28, sp24, sp20); + } + } +} + +#else +GLOBAL_ASM( +glabel __scHandleRDP +/* 001D28 70001128 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 001D2C 7000112C AFBF001C */ sw $ra, 0x1c($sp) +/* 001D30 70001130 AFB00018 */ sw $s0, 0x18($sp) +/* 001D34 70001134 AFA00028 */ sw $zero, 0x28($sp) +/* 001D38 70001138 AFA00024 */ sw $zero, 0x24($sp) +/* 001D3C 7000113C 8C8E00CC */ lw $t6, 0xcc($a0) +/* 001D40 70001140 00808025 */ move $s0, $a0 +/* 001D44 70001144 3C040001 */ lui $a0, (0x00010002 >> 16) # lui $a0, 1 +/* 001D48 70001148 51C00021 */ beql $t6, $zero, .L700011D0 +/* 001D4C 7000114C 8FBF001C */ lw $ra, 0x1c($sp) +/* 001D50 70001150 0C000A15 */ jal video_related_3 +/* 001D54 70001154 34840002 */ ori $a0, (0x00010002 & 0xFFFF) # ori $a0, $a0, 2 +/* 001D58 70001158 3C048006 */ lui $a0, %hi(target_for_counters_maybe) +/* 001D5C 7000115C 0C0038F0 */ jal osDpGetCounters +/* 001D60 70001160 2484DB30 */ addiu $a0, %lo(target_for_counters_maybe) # addiu $a0, $a0, -0x24d0 +/* 001D64 70001164 8E0500CC */ lw $a1, 0xcc($s0) +/* 001D68 70001168 AE0000CC */ sw $zero, 0xcc($s0) +/* 001D6C 7000116C 2401FFFE */ li $at, -2 +/* 001D70 70001170 8CAF0004 */ lw $t7, 4($a1) +/* 001D74 70001174 02002025 */ move $a0, $s0 +/* 001D78 70001178 01E1C024 */ and $t8, $t7, $at +/* 001D7C 7000117C 0C00048C */ jal __scTaskComplete +/* 001D80 70001180 ACB80004 */ sw $t8, 4($a1) +/* 001D84 70001184 8E1900C8 */ lw $t9, 0xc8($s0) +/* 001D88 70001188 8E0A00CC */ lw $t2, 0xcc($s0) +/* 001D8C 7000118C 02002025 */ move $a0, $s0 +/* 001D90 70001190 2F280001 */ sltiu $t0, $t9, 1 +/* 001D94 70001194 00084840 */ sll $t1, $t0, 1 +/* 001D98 70001198 2D4B0001 */ sltiu $t3, $t2, 1 +/* 001D9C 7000119C 012B3825 */ or $a3, $t1, $t3 +/* 001DA0 700011A0 AFA70020 */ sw $a3, 0x20($sp) +/* 001DA4 700011A4 27A50028 */ addiu $a1, $sp, 0x28 +/* 001DA8 700011A8 0C000567 */ jal __scSchedule +/* 001DAC 700011AC 27A60024 */ addiu $a2, $sp, 0x24 +/* 001DB0 700011B0 8FA70020 */ lw $a3, 0x20($sp) +/* 001DB4 700011B4 02002025 */ move $a0, $s0 +/* 001DB8 700011B8 8FA50028 */ lw $a1, 0x28($sp) +/* 001DBC 700011BC 50470004 */ beql $v0, $a3, .L700011D0 +/* 001DC0 700011C0 8FBF001C */ lw $ra, 0x1c($sp) +/* 001DC4 700011C4 0C000510 */ jal __scExec +/* 001DC8 700011C8 8FA60024 */ lw $a2, 0x24($sp) +/* 001DCC 700011CC 8FBF001C */ lw $ra, 0x1c($sp) +.L700011D0: +/* 001DD0 700011D0 8FB00018 */ lw $s0, 0x18($sp) +/* 001DD4 700011D4 27BD0030 */ addiu $sp, $sp, 0x30 +/* 001DD8 700011D8 03E00008 */ jr $ra +/* 001DDC 700011DC 00000000 */ nop +) +#endif + +/** + * 1DE0 700011E0 + * + */ +OSScTask *__scTaskReady(OSScTask *t) +{ + void *a; + void *b; + + if (t) { + if ((a=osViGetCurrentFramebuffer()) != (b=osViGetNextFramebuffer())) { + return 0; + } + + return t; + } + + return 0; +} + +/** + * 1E30 70001230 + */ +#ifdef NONMATCHING +void __scTaskComplete(s32 arg0, void *arg1) +{ + s32 temp_t2; + void *temp_t8; + void *temp_t8_2; + void *temp_t5; + s32 temp_t7; + s32 temp_t0; + void *phi_t8; + void *phi_t5; + s32 phi_v1; + s32 phi_t0; + ? phi_return; + + phi_return = 0; + if ((arg1->unk4 & 3) == 0) + { + osSendMesg(arg1->unk50, arg1->unk54, 1); + if (arg1->unk10 == 1) + { + if ((arg1->unk8 & 0x40) != 0) + { + if ((arg1->unk8 & 0x20) != 0) + { + if (D_800230CC != 0) + { + osViBlack(0); + D_800230CC = 0; + } + temp_t2 = (something_with_osVI * 4); + phi_v1 = temp_t2; + if ((0x80020000 + temp_t2)->unk30C4 != 0) + { + temp_t8 = ((something_with_osVI * 0x50) + &dword_CODE_bss_8005DB40); + phi_t8 = temp_t8; + phi_t5 = (0x80060000 + (something_with_osVI * 4))->unk-2420; +block_8: + temp_t8_2 = (phi_t8 + 0xc); + temp_t5 = (phi_t5 + 0xc); + temp_t5->unk-C = (?32) *phi_t8; + temp_t5->unk-8 = (?32) temp_t8_2->unk-8; + temp_t5->unk-4 = (?32) temp_t8_2->unk-4; + phi_t8 = temp_t8_2; + phi_t5 = temp_t5; + if (temp_t8_2 != (temp_t8 + 0x48)) + { + goto block_8; + } + *temp_t5 = (?32) *temp_t8_2; + temp_t5->unk4 = (?32) temp_t8_2->unk4; + osSetIntMask(osSetIntMask(0x80401)); + phi_v1 = (something_with_osVI * 4); + } + osViSetXScale((0x80020000 + phi_v1)->unk30B4); + osViSetYScale((0x80020000 + (something_with_osVI * 4))->unk30BC); + temp_t7 = (something_with_osVI + 1); + temp_t0 = (temp_t7 & 1); + phi_t0 = temp_t0; + if (temp_t7 < 0) + { + phi_t0 = temp_t0; + if (temp_t0 != 0) + { + phi_t0 = (temp_t0 + -2); + } + } + something_with_osVI = (s32) phi_t0; + CheckDisplayErrorBuffer(arg1->unkC); + osViSwapBuffer(arg1->unkC); + } + } + } + phi_return = 1; + } + return phi_return; +} +#else +GLOBAL_ASM( +glabel __scTaskComplete +/* 001E30 70001230 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 001E34 70001234 AFBF001C */ sw $ra, 0x1c($sp) +/* 001E38 70001238 AFB00018 */ sw $s0, 0x18($sp) +/* 001E3C 7000123C AFA40020 */ sw $a0, 0x20($sp) +/* 001E40 70001240 8CAE0004 */ lw $t6, 4($a1) +/* 001E44 70001244 00A08025 */ move $s0, $a1 +/* 001E48 70001248 24060001 */ li $a2, 1 +/* 001E4C 7000124C 31CF0003 */ andi $t7, $t6, 3 +/* 001E50 70001250 15E0005C */ bnez $t7, .L700013C4 +/* 001E54 70001254 00001025 */ move $v0, $zero +/* 001E58 70001258 8CA40050 */ lw $a0, 0x50($a1) +/* 001E5C 7000125C 0C0037C4 */ jal osSendMesg +/* 001E60 70001260 8CA50054 */ lw $a1, 0x54($a1) +/* 001E64 70001264 8E180010 */ lw $t8, 0x10($s0) +/* 001E68 70001268 24010001 */ li $at, 1 +/* 001E6C 7000126C 17010053 */ bne $t8, $at, .L700013BC +/* 001E70 70001270 00000000 */ nop +/* 001E74 70001274 8E020008 */ lw $v0, 8($s0) +/* 001E78 70001278 30590040 */ andi $t9, $v0, 0x40 +/* 001E7C 7000127C 1320004F */ beqz $t9, .L700013BC +/* 001E80 70001280 30480020 */ andi $t0, $v0, 0x20 +/* 001E84 70001284 1100004D */ beqz $t0, .L700013BC +/* 001E88 70001288 3C098002 */ lui $t1, %hi(D_800230CC) +/* 001E8C 7000128C 8D2930CC */ lw $t1, %lo(D_800230CC)($t1) +/* 001E90 70001290 11200005 */ beqz $t1, .L700012A8 +/* 001E94 70001294 00000000 */ nop +/* 001E98 70001298 0C0038B4 */ jal osViBlack +/* 001E9C 7000129C 00002025 */ move $a0, $zero +/* 001EA0 700012A0 3C018002 */ lui $at, %hi(D_800230CC) +/* 001EA4 700012A4 AC2030CC */ sw $zero, %lo(D_800230CC)($at) +.L700012A8: +/* 001EA8 700012A8 3C038002 */ lui $v1, %hi(something_with_osVI_0) +/* 001EAC 700012AC 8C6330B0 */ lw $v1, %lo(something_with_osVI_0)($v1) +/* 001EB0 700012B0 3C0B8002 */ lui $t3, %hi(something_with_osVI_14) +/* 001EB4 700012B4 3C040008 */ lui $a0, (0x00080401 >> 16) # lui $a0, 8 +/* 001EB8 700012B8 00035080 */ sll $t2, $v1, 2 +/* 001EBC 700012BC 016A5821 */ addu $t3, $t3, $t2 +/* 001EC0 700012C0 8D6B30C4 */ lw $t3, %lo(something_with_osVI_14)($t3) +/* 001EC4 700012C4 01401825 */ move $v1, $t2 +/* 001EC8 700012C8 11600023 */ beqz $t3, .L70001358 +/* 001ECC 700012CC 00000000 */ nop +/* 001ED0 700012D0 0C00374C */ jal osSetIntMask +/* 001ED4 700012D4 34840401 */ ori $a0, (0x00080401 & 0xFFFF) # ori $a0, $a0, 0x401 +/* 001ED8 700012D8 3C038002 */ lui $v1, %hi(something_with_osVI_0) +/* 001EDC 700012DC 8C6330B0 */ lw $v1, %lo(something_with_osVI_0)($v1) +/* 001EE0 700012E0 3C0F8006 */ lui $t7, %hi(dword_CODE_bss_8005DB40) +/* 001EE4 700012E4 25EFDB40 */ addiu $t7, %lo(dword_CODE_bss_8005DB40) # addiu $t7, $t7, -0x24c0 +/* 001EE8 700012E8 00037080 */ sll $t6, $v1, 2 +/* 001EEC 700012EC 01C37021 */ addu $t6, $t6, $v1 +/* 001EF0 700012F0 000E7100 */ sll $t6, $t6, 4 +/* 001EF4 700012F4 3C0D8006 */ lui $t5, %hi(sc+416) +/* 001EF8 700012F8 00036080 */ sll $t4, $v1, 2 +/* 001EFC 700012FC 01AC6821 */ addu $t5, $t5, $t4 +/* 001F00 70001300 01CFC021 */ addu $t8, $t6, $t7 +/* 001F04 70001304 27090048 */ addiu $t1, $t8, 0x48 +/* 001F08 70001308 8DADDBE0 */ lw $t5, %lo(sc+416)($t5) +.L7000130C: +/* 001F0C 7000130C 8F010000 */ lw $at, ($t8) +/* 001F10 70001310 2718000C */ addiu $t8, $t8, 0xc +/* 001F14 70001314 25AD000C */ addiu $t5, $t5, 0xc +/* 001F18 70001318 ADA1FFF4 */ sw $at, -0xc($t5) +/* 001F1C 7000131C 8F01FFF8 */ lw $at, -8($t8) +/* 001F20 70001320 ADA1FFF8 */ sw $at, -8($t5) +/* 001F24 70001324 8F01FFFC */ lw $at, -4($t8) +/* 001F28 70001328 1709FFF8 */ bne $t8, $t1, .L7000130C +/* 001F2C 7000132C ADA1FFFC */ sw $at, -4($t5) +/* 001F30 70001330 8F010000 */ lw $at, ($t8) +/* 001F34 70001334 00402025 */ move $a0, $v0 +/* 001F38 70001338 ADA10000 */ sw $at, ($t5) +/* 001F3C 7000133C 8F090004 */ lw $t1, 4($t8) +/* 001F40 70001340 0C00374C */ jal osSetIntMask +/* 001F44 70001344 ADA90004 */ sw $t1, 4($t5) +/* 001F48 70001348 3C038002 */ lui $v1, %hi(something_with_osVI_0) +/* 001F4C 7000134C 8C6330B0 */ lw $v1, %lo(something_with_osVI_0)($v1) +/* 001F50 70001350 00035080 */ sll $t2, $v1, 2 +/* 001F54 70001354 01401825 */ move $v1, $t2 +.L70001358: +/* 001F58 70001358 3C018002 */ lui $at, %hi(something_with_osVI_4) +/* 001F5C 7000135C 00230821 */ addu $at, $at, $v1 +/* 001F60 70001360 0C003834 */ jal osViSetXScale +/* 001F64 70001364 C42C30B4 */ lwc1 $f12, %lo(something_with_osVI_4)($at) +/* 001F68 70001368 3C0B8002 */ lui $t3, %hi(something_with_osVI_0) +/* 001F6C 7000136C 8D6B30B0 */ lw $t3, %lo(something_with_osVI_0)($t3) +/* 001F70 70001370 3C018002 */ lui $at, %hi(something_with_osVI_C) +/* 001F74 70001374 000B6080 */ sll $t4, $t3, 2 +/* 001F78 70001378 002C0821 */ addu $at, $at, $t4 +/* 001F7C 7000137C 0C003880 */ jal osViSetYScale +/* 001F80 70001380 C42C30BC */ lwc1 $f12, %lo(something_with_osVI_C)($at) +/* 001F84 70001384 3C0E8002 */ lui $t6, %hi(something_with_osVI_0) +/* 001F88 70001388 8DCE30B0 */ lw $t6, %lo(something_with_osVI_0)($t6) +/* 001F8C 7000138C 3C018002 */ lui $at, %hi(something_with_osVI_0) +/* 001F90 70001390 25CF0001 */ addiu $t7, $t6, 1 +/* 001F94 70001394 05E10004 */ bgez $t7, .L700013A8 +/* 001F98 70001398 31E80001 */ andi $t0, $t7, 1 +/* 001F9C 7000139C 11000002 */ beqz $t0, .L700013A8 +/* 001FA0 700013A0 00000000 */ nop +/* 001FA4 700013A4 2508FFFE */ addiu $t0, $t0, -2 +.L700013A8: +/* 001FA8 700013A8 AC2830B0 */ sw $t0, %lo(something_with_osVI_0)($at) +/* 001FAC 700013AC 0C000268 */ jal CheckDisplayErrorBuffer +/* 001FB0 700013B0 8E04000C */ lw $a0, 0xc($s0) +/* 001FB4 700013B4 0C003924 */ jal osViSwapBuffer +/* 001FB8 700013B8 8E04000C */ lw $a0, 0xc($s0) +.L700013BC: +/* 001FBC 700013BC 10000001 */ b .L700013C4 +/* 001FC0 700013C0 24020001 */ li $v0, 1 +.L700013C4: +/* 001FC4 700013C4 8FBF001C */ lw $ra, 0x1c($sp) +/* 001FC8 700013C8 8FB00018 */ lw $s0, 0x18($sp) +/* 001FCC 700013CC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 001FD0 700013D0 03E00008 */ jr $ra +/* 001FD4 700013D4 00000000 */ nop +) +#endif + +/** + * 1FD8 700013D8 + */ + +void __scAppendList(OSSched *sc, OSScTask *t) +{ + long type = t->list.t.type; + + if (type == M_AUDTASK) { + if (sc->audioListTail) + sc->audioListTail->next = t; + else + sc->audioListHead = t; + + sc->audioListTail = t; + sc->doAudio = 1; + } else { + if (sc->gfxListTail) + sc->gfxListTail->next = t; + else + sc->gfxListHead = t; + + sc->gfxListTail = t; + } + + t->next = NULL; + t->state = t->flags & OS_SC_RCP_MASK; +} + + +/** + * 2040 70001440 + * (DPC fill) + */ +#ifdef NONMATCHING +void __scExec(void *arg0, void *arg1, void *arg2) +{ + s32 phi_v0; + + if (arg1 != 0) + { + if (arg1->unk10 == 2) + { + osWritebackDCacheAll(); + } + phi_v0 = arg1->unk10; + if (arg1->unk10 != 2) + { + phi_v0 = arg1->unk10; + if ((arg1->unk4 & 0x10) == 0) + { + osDpSetStatus(0x3c0); + phi_v0 = arg1->unk10; + } + } + if (phi_v0 == 2) + { + video_related_3(0x30001); + } + else + { + video_related_3(0x30001); + video_related_3(0x20002); + } + arg1->unk4 = (s32) (arg1->unk4 & -0x31); + osSpTaskLoad((arg1 + 0x10)); + osSpTaskStartGo(sp20); + arg0->unkC8 = arg1; + if (arg1 == arg2) + { + arg0->unkCC = arg2; + } + } + if (arg2 != 0) + { + if (arg2 != arg1) + { + osDpSetNextBuffer(arg2->unk38, *arg2->unk3C, arg2->unk3C->unk4); + setby_DPCfill_0 = 1; + setby_DPCfill_1 = 0; + arg0->unkCC = arg2; + } + } +} +#else +GLOBAL_ASM( +glabel __scExec +/* 002040 70001440 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 002044 70001444 AFB10018 */ sw $s1, 0x18($sp) +/* 002048 70001448 AFB00014 */ sw $s0, 0x14($sp) +/* 00204C 7000144C 00A08025 */ move $s0, $a1 +/* 002050 70001450 00C08825 */ move $s1, $a2 +/* 002054 70001454 AFBF001C */ sw $ra, 0x1c($sp) +/* 002058 70001458 10A0002C */ beqz $a1, .L7000150C +/* 00205C 7000145C AFA40028 */ sw $a0, 0x28($sp) +/* 002060 70001460 8CA20010 */ lw $v0, 0x10($a1) +/* 002064 70001464 24010002 */ li $at, 2 +/* 002068 70001468 54410005 */ bnel $v0, $at, .L70001480 +/* 00206C 7000146C 24010002 */ li $at, 2 +/* 002070 70001470 0C0034C8 */ jal osWritebackDCacheAll +/* 002074 70001474 00000000 */ nop +/* 002078 70001478 8E020010 */ lw $v0, 0x10($s0) +/* 00207C 7000147C 24010002 */ li $at, 2 +.L70001480: +/* 002080 70001480 50410009 */ beql $v0, $at, .L700014A8 +/* 002084 70001484 24010002 */ li $at, 2 +/* 002088 70001488 8E0E0004 */ lw $t6, 4($s0) +/* 00208C 7000148C 31CF0010 */ andi $t7, $t6, 0x10 +/* 002090 70001490 55E00005 */ bnezl $t7, .L700014A8 +/* 002094 70001494 24010002 */ li $at, 2 +/* 002098 70001498 0C003938 */ jal osDpSetStatus +/* 00209C 7000149C 240403C0 */ li $a0, 960 +/* 0020A0 700014A0 8E020010 */ lw $v0, 0x10($s0) +/* 0020A4 700014A4 24010002 */ li $at, 2 +.L700014A8: +/* 0020A8 700014A8 14410006 */ bne $v0, $at, .L700014C4 +/* 0020AC 700014AC 3C040004 */ lui $a0, 4 +/* 0020B0 700014B0 3C040003 */ lui $a0, (0x00030001 >> 16) # lui $a0, 3 +/* 0020B4 700014B4 0C000A15 */ jal video_related_3 +/* 0020B8 700014B8 34840001 */ ori $a0, (0x00030001 & 0xFFFF) # ori $a0, $a0, 1 +/* 0020BC 700014BC 10000007 */ b .L700014DC +/* 0020C0 700014C0 8E180004 */ lw $t8, 4($s0) +.L700014C4: +/* 0020C4 700014C4 0C000A15 */ jal video_related_3 +/* 0020C8 700014C8 34840001 */ ori $a0, (0x00030001 & 0xFFFF) # ori $a0, $a0, 1 +/* 0020CC 700014CC 3C040002 */ lui $a0, (0x00020002 >> 16) # lui $a0, 2 +/* 0020D0 700014D0 0C000A15 */ jal video_related_3 +/* 0020D4 700014D4 34840002 */ ori $a0, (0x00020002 & 0xFFFF) # ori $a0, $a0, 2 +/* 0020D8 700014D8 8E180004 */ lw $t8, 4($s0) +.L700014DC: +/* 0020DC 700014DC 2401FFCF */ li $at, -49 +/* 0020E0 700014E0 26040010 */ addiu $a0, $s0, 0x10 +/* 0020E4 700014E4 0301C824 */ and $t9, $t8, $at +/* 0020E8 700014E8 AE190004 */ sw $t9, 4($s0) +/* 0020EC 700014EC 0C003983 */ jal osSpTaskLoad +/* 0020F0 700014F0 AFA40020 */ sw $a0, 0x20($sp) +/* 0020F4 700014F4 0C0039DB */ jal osSpTaskStartGo +/* 0020F8 700014F8 8FA40020 */ lw $a0, 0x20($sp) +/* 0020FC 700014FC 8FA80028 */ lw $t0, 0x28($sp) +/* 002100 70001500 16110002 */ bne $s0, $s1, .L7000150C +/* 002104 70001504 AD1000C8 */ sw $s0, 0xc8($t0) +/* 002108 70001508 AD1100CC */ sw $s1, 0xcc($t0) +.L7000150C: +/* 00210C 7000150C 52200010 */ beql $s1, $zero, .L70001550 +/* 002110 70001510 8FBF001C */ lw $ra, 0x1c($sp) +/* 002114 70001514 5230000E */ beql $s1, $s0, .L70001550 +/* 002118 70001518 8FBF001C */ lw $ra, 0x1c($sp) +/* 00211C 7000151C 8E29003C */ lw $t1, 0x3c($s1) +/* 002120 70001520 8E240038 */ lw $a0, 0x38($s1) +/* 002124 70001524 8D260000 */ lw $a2, ($t1) +/* 002128 70001528 0C0039EC */ jal osDpSetNextBuffer +/* 00212C 7000152C 8D270004 */ lw $a3, 4($t1) +/* 002130 70001530 240A0001 */ li $t2, 1 +/* 002134 70001534 3C018002 */ lui $at, %hi(setby_DPCfill_0) +/* 002138 70001538 8FAB0028 */ lw $t3, 0x28($sp) +/* 00213C 7000153C AC2A30A8 */ sw $t2, %lo(setby_DPCfill_0)($at) +/* 002140 70001540 3C018002 */ lui $at, %hi(setby_DPCfill_1) +/* 002144 70001544 AC2030AC */ sw $zero, %lo(setby_DPCfill_1)($at) +/* 002148 70001548 AD7100CC */ sw $s1, 0xcc($t3) +/* 00214C 7000154C 8FBF001C */ lw $ra, 0x1c($sp) +.L70001550: +/* 002150 70001550 8FB00014 */ lw $s0, 0x14($sp) +/* 002154 70001554 8FB10018 */ lw $s1, 0x18($sp) +/* 002158 70001558 03E00008 */ jr $ra +/* 00215C 7000155C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + +/** + * 2160 70001560 + */ + +void __scYield(OSSched *sc) +{ + if (sc->curRSPTask->list.t.type == M_GFXTASK) { + sc->curRSPTask->state |= 0x0010; + osSpTaskYield(); + } else { + + } +} + + +/** + * 219C 7000159C + * ??? + * uses TLB pointers at 80028400 + * 7000167C 3 + * 70001704 2,6,7 + * 70001758 default; 1,4,5 + */ +#ifdef NONMATCHING +void __scSchedule(void) { + +} +#else +GLOBAL_ASM( +.late_rodata +glabel jpt_80028400 + .word .L70001758 + .word .L70001704 + .word .L7000167C + .word .L70001758 + .word .L70001758 + .word .L70001704 + .word .L70001704 + +.text +glabel __scSchedule +/* 00219C 7000159C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0021A0 700015A0 AFB10018 */ sw $s1, 0x18($sp) +/* 0021A4 700015A4 00808825 */ move $s1, $a0 +/* 0021A8 700015A8 AFBF001C */ sw $ra, 0x1c($sp) +/* 0021AC 700015AC AFB00014 */ sw $s0, 0x14($sp) +/* 0021B0 700015B0 2408FFFD */ li $t0, -3 +.L700015B4: +/* 0021B4 700015B4 8E2E00D4 */ lw $t6, 0xd4($s1) +/* 0021B8 700015B8 00E01825 */ move $v1, $a3 +/* 0021BC 700015BC 8E3000BC */ lw $s0, 0xbc($s1) +/* 0021C0 700015C0 11C00016 */ beqz $t6, .L7000161C +/* 0021C4 700015C4 8E2200B8 */ lw $v0, 0xb8($s1) +/* 0021C8 700015C8 30EF0002 */ andi $t7, $a3, 2 +/* 0021CC 700015CC 51E00014 */ beql $t7, $zero, .L70001620 +/* 0021D0 700015D0 02002025 */ move $a0, $s0 +/* 0021D4 700015D4 52000009 */ beql $s0, $zero, .L700015FC +/* 0021D8 700015D8 ACA20000 */ sw $v0, ($a1) +/* 0021DC 700015DC 8E180008 */ lw $t8, 8($s0) +/* 0021E0 700015E0 00E81824 */ and $v1, $a3, $t0 +/* 0021E4 700015E4 33190010 */ andi $t9, $t8, 0x10 +/* 0021E8 700015E8 53200004 */ beql $t9, $zero, .L700015FC +/* 0021EC 700015EC ACA20000 */ sw $v0, ($a1) +/* 0021F0 700015F0 10000059 */ b .L70001758 +/* 0021F4 700015F4 ACB00000 */ sw $s0, ($a1) +/* 0021F8 700015F8 ACA20000 */ sw $v0, ($a1) +.L700015FC: +/* 0021FC 700015FC 8E2A00B8 */ lw $t2, 0xb8($s1) +/* 002200 70001600 AE2000D4 */ sw $zero, 0xd4($s1) +/* 002204 70001604 00E81824 */ and $v1, $a3, $t0 +/* 002208 70001608 8D4B0000 */ lw $t3, ($t2) +/* 00220C 7000160C 15600052 */ bnez $t3, .L70001758 +/* 002210 70001610 AE2B00B8 */ sw $t3, 0xb8($s1) +/* 002214 70001614 10000050 */ b .L70001758 +/* 002218 70001618 AE2000C0 */ sw $zero, 0xc0($s1) +.L7000161C: +/* 00221C 7000161C 02002025 */ move $a0, $s0 +.L70001620: +/* 002220 70001620 AFA30024 */ sw $v1, 0x24($sp) +/* 002224 70001624 AFA5002C */ sw $a1, 0x2c($sp) +/* 002228 70001628 AFA60030 */ sw $a2, 0x30($sp) +/* 00222C 7000162C 0C000478 */ jal __scTaskReady +/* 002230 70001630 AFA70034 */ sw $a3, 0x34($sp) +/* 002234 70001634 8FA30024 */ lw $v1, 0x24($sp) +/* 002238 70001638 8FA5002C */ lw $a1, 0x2c($sp) +/* 00223C 7000163C 8FA60030 */ lw $a2, 0x30($sp) +/* 002240 70001640 8FA70034 */ lw $a3, 0x34($sp) +/* 002244 70001644 2408FFFD */ li $t0, -3 +/* 002248 70001648 10400043 */ beqz $v0, .L70001758 +/* 00224C 7000164C 2409FFFE */ li $t1, -2 +/* 002250 70001650 8E0D0008 */ lw $t5, 8($s0) +/* 002254 70001654 31AE0007 */ andi $t6, $t5, 7 +/* 002258 70001658 25CFFFFF */ addiu $t7, $t6, -1 +/* 00225C 7000165C 2DE10007 */ sltiu $at, $t7, 7 +/* 002260 70001660 1020003D */ beqz $at, .L70001758 +/* 002264 70001664 000F7880 */ sll $t7, $t7, 2 +/* 002268 70001668 3C018003 */ lui $at, %hi(jpt_80028400) +/* 00226C 7000166C 002F0821 */ addu $at, $at, $t7 +/* 002270 70001670 8C2F8400 */ lw $t7, %lo(jpt_80028400)($at) # lw $t7, -0x7c00($at) +/* 002274 70001674 01E00008 */ jr $t7 +/* 002278 70001678 00000000 */ nop +.L7000167C: +/* 00227C 7000167C 8E180004 */ lw $t8, 4($s0) +/* 002280 70001680 30EA0002 */ andi $t2, $a3, 2 +/* 002284 70001684 24010003 */ li $at, 3 +/* 002288 70001688 33190020 */ andi $t9, $t8, 0x20 +/* 00228C 7000168C 13200011 */ beqz $t9, .L700016D4 +/* 002290 70001690 00000000 */ nop +/* 002294 70001694 11400030 */ beqz $t2, .L70001758 +/* 002298 70001698 00000000 */ nop +/* 00229C 7000169C ACB00000 */ sw $s0, ($a1) +/* 0022A0 700016A0 8E0B0004 */ lw $t3, 4($s0) +/* 0022A4 700016A4 00E81824 */ and $v1, $a3, $t0 +/* 0022A8 700016A8 316C0001 */ andi $t4, $t3, 1 +/* 0022AC 700016AC 51800004 */ beql $t4, $zero, .L700016C0 +/* 0022B0 700016B0 8E2D00BC */ lw $t5, 0xbc($s1) +/* 0022B4 700016B4 ACD00000 */ sw $s0, ($a2) +/* 0022B8 700016B8 00691824 */ and $v1, $v1, $t1 +/* 0022BC 700016BC 8E2D00BC */ lw $t5, 0xbc($s1) +.L700016C0: +/* 0022C0 700016C0 8DAE0000 */ lw $t6, ($t5) +/* 0022C4 700016C4 15C00024 */ bnez $t6, .L70001758 +/* 0022C8 700016C8 AE2E00BC */ sw $t6, 0xbc($s1) +/* 0022CC 700016CC 10000022 */ b .L70001758 +/* 0022D0 700016D0 AE2000C4 */ sw $zero, 0xc4($s1) +.L700016D4: +/* 0022D4 700016D4 14E10020 */ bne $a3, $at, .L70001758 +/* 0022D8 700016D8 00000000 */ nop +/* 0022DC 700016DC ACD00000 */ sw $s0, ($a2) +/* 0022E0 700016E0 ACB00000 */ sw $s0, ($a1) +/* 0022E4 700016E4 8E3800BC */ lw $t8, 0xbc($s1) +/* 0022E8 700016E8 2401FFFC */ li $at, -4 +/* 0022EC 700016EC 00E11824 */ and $v1, $a3, $at +/* 0022F0 700016F0 8F190000 */ lw $t9, ($t8) +/* 0022F4 700016F4 17200018 */ bnez $t9, .L70001758 +/* 0022F8 700016F8 AE3900BC */ sw $t9, 0xbc($s1) +/* 0022FC 700016FC 10000016 */ b .L70001758 +/* 002300 70001700 AE2000C4 */ sw $zero, 0xc4($s1) +.L70001704: +/* 002304 70001704 8E020004 */ lw $v0, 4($s0) +/* 002308 70001708 30EC0002 */ andi $t4, $a3, 2 +/* 00230C 7000170C 304B0002 */ andi $t3, $v0, 2 +/* 002310 70001710 11600006 */ beqz $t3, .L7000172C +/* 002314 70001714 304D0001 */ andi $t5, $v0, 1 +/* 002318 70001718 1180000F */ beqz $t4, .L70001758 +/* 00231C 7000171C 00000000 */ nop +/* 002320 70001720 ACB00000 */ sw $s0, ($a1) +/* 002324 70001724 1000000C */ b .L70001758 +/* 002328 70001728 00E81824 */ and $v1, $a3, $t0 +.L7000172C: +/* 00232C 7000172C 11A0000A */ beqz $t5, .L70001758 +/* 002330 70001730 30EE0001 */ andi $t6, $a3, 1 +/* 002334 70001734 11C00008 */ beqz $t6, .L70001758 +/* 002338 70001738 00000000 */ nop +/* 00233C 7000173C ACD00000 */ sw $s0, ($a2) +/* 002340 70001740 8E2F00BC */ lw $t7, 0xbc($s1) +/* 002344 70001744 00E91824 */ and $v1, $a3, $t1 +/* 002348 70001748 8DF80000 */ lw $t8, ($t7) +/* 00234C 7000174C 17000002 */ bnez $t8, .L70001758 +/* 002350 70001750 AE3800BC */ sw $t8, 0xbc($s1) +/* 002354 70001754 AE2000C4 */ sw $zero, 0xc4($s1) +.L70001758: +/* 002358 70001758 50670004 */ beql $v1, $a3, .L7000176C +/* 00235C 7000175C 8FBF001C */ lw $ra, 0x1c($sp) +/* 002360 70001760 1000FF94 */ b .L700015B4 +/* 002364 70001764 00603825 */ move $a3, $v1 +/* 002368 70001768 8FBF001C */ lw $ra, 0x1c($sp) +.L7000176C: +/* 00236C 7000176C 8FB00014 */ lw $s0, 0x14($sp) +/* 002370 70001770 8FB10018 */ lw $s1, 0x18($sp) +/* 002374 70001774 27BD0028 */ addiu $sp, $sp, 0x28 +/* 002378 70001778 03E00008 */ jr $ra +/* 00237C 7000177C 00601025 */ move $v0, $v1 +) +#endif + diff --git a/src/sched.h b/src/sched.h new file mode 100644 index 0000000..4e07fff --- /dev/null +++ b/src/sched.h @@ -0,0 +1,85 @@ +#ifndef _scheduler_h_ +#define _scheduler_h_ + +#include "ultra64.h" + +#define OS_SC_STACKSIZE 0x2000 + +#define OS_SC_RETRACE_MSG 1 +#define OS_SC_DONE_MSG 2 +#define OS_SC_RDP_DONE_MSG 3 +#define OS_SC_PRE_NMI_MSG 4 +#define OS_SC_LAST_MSG 4 /* this should have highest number */ +#define OS_SC_MAX_MESGS 8 + +typedef struct { + short type; + char misc[30]; +} OSScMsg; + +typedef struct OSScTask_s { + struct OSScTask_s *next; + u32 state; + u32 flags; + void *framebuffer; + OSTask list; + OSMesgQueue *msgQ; + OSMesg msg; +} OSScTask; + +#define OS_SC_NEEDS_RDP 0x0001 +#define OS_SC_NEEDS_RSP 0x0002 +#define OS_SC_DRAM_DLIST 0x0004 +#define OS_SC_PARALLEL_TASK 0x0010 +#define OS_SC_LAST_TASK 0x0020 +#define OS_SC_SWAPBUFFER 0x0040 + +#define OS_SC_RCP_MASK 0x0003 +#define OS_SC_TYPE_MASK 0x0007 + +typedef struct SCClient_s { + struct SCClient_s *next; + OSMesgQueue *msgQ; +} OSScClient; + +//fixme im wrong size, shouldn't copy paste from sample code anyway +typedef struct { + OSScMsg retraceMsg; + OSScMsg prenmiMsg; + OSMesgQueue interruptQ; + OSMesg intBuf[OS_SC_MAX_MESGS]; + OSMesgQueue cmdQ; + OSMesg cmdMsgBuf[OS_SC_MAX_MESGS]; + OSThread *thread; + OSScClient *clientList; + OSScTask *audioListHead; + OSScTask *gfxListHead; + OSScTask *audioListTail; + OSScTask *gfxListTail; + OSScTask *curRSPTask; + OSScTask *curRDPTask; + u32 frameCount; + s32 doAudio; +} OSSched; + +extern OSSched sc; +extern OSScClient gfxClient[3]; +//extern char gfxClient[0x18]; + +void activate_stderr(u32 flag); +void enable_stderr(u32 flag); +void permit_stderr(u32 flag); +void setUserCompareValue(u32 value); +void CheckDisplayErrorBuffer(u32 *buffer); +void CheckDisplayErrorBufferEvery16Frames(u32 framecount); +void osCreateLog(void); +void __scMain(void *arg); +void __scYield(OSSched *sc) ; +void __scAppendList(OSSched *sc, OSScTask *t); +void osCreateScheduler(OSSched *s, void *stack, u8 mode, u8 numFields); +void osScAddClient(OSSched *s, OSScClient *c, OSMesgQueue *msgQ, OSScClient *next); +void osScRemoveClient(OSSched *s, OSScClient *c); +OSMesgQueue *osScGetCmdQ(OSSched *s); + +#endif + diff --git a/src/snd.c b/src/snd.c new file mode 100644 index 0000000..7954b95 --- /dev/null +++ b/src/snd.c @@ -0,0 +1,2607 @@ +#include "ultra64.h" +#include "music.h" +#include "snd.h" + + +/** + * @file snd.c + * This file contains code to deal with snd. + */ + +s32 sfx_unused = 0; +s32 D_800243E4 = 0; +s32 D_800243E8 = 0; +s32 D_800243EC = 0; +void *D_800243F0 = &D_80063B50; +s32 D_800243F4 = 0; +s8 bootswitch_sound = 0; +f32 F32_800243FC = 1.0; + + + + + + + +/** + * 8720 70007B20 + */ + +#ifdef NONMATCHING +void sfx_c_70007B20(void *arg0) +{ + s16 sp38; + s32 temp_a0; + u32 temp_s0; + s32 temp_v0; + u32 phi_s0; + + D_800243F0->unk44 = (?32) arg0->unk8; + D_800243F0->unk3C = 0; + D_800243F0->unk48 = 0x80e8; + D_800243F0->unk40 = alHeapDBAlloc(0, 0, arg0->unkC, 1, (s32) (*arg0 << 6)); + alEvtqNew((D_800243F0 + 0x14), alHeapDBAlloc(0, 0, arg0->unkC, 1, (s32) (arg0->unk4 * 0x1c)), arg0->unk4); + D_800243EC = (s32) D_800243F0->unk40; + phi_s0 = 1U; + if ((u32) *arg0 >= 2U) + { +block_1: + temp_a0 = ((phi_s0 << 6) + D_800243F0->unk40); + alLink(temp_a0, (temp_a0 + -0x40)); + temp_s0 = (phi_s0 + 1); + phi_s0 = temp_s0; + if (temp_s0 < (u32) *arg0) + { + goto block_1; + } + } + D_80063BA4 = alHeapDBAlloc(0, 0, arg0->unkC, 2, 7); + D_80063BA8 = alHeapDBAlloc(0, 0, arg0->unkC, 2, 7); + *D_80063BA4 = (u16)0x7fff; + temp_v0 = (3 * 2); + *D_80063BA8 = (s16) *D_80063BA4; + D_80063BA4->unk2 = (u16)0x7fff; + D_80063BA8->unk2 = (s16) D_80063BA4->unk2; + D_80063BA4->unk4 = (u16)0x7fff; + D_80063BA8->unk4 = (s16) D_80063BA4->unk4; + *(D_80063BA4 + temp_v0) = (u16)0x7fff; + *(D_80063BA8 + temp_v0) = (s16) *(D_80063BA4 + temp_v0); + (D_80063BA4 + temp_v0)->unk2 = (u16)0x7fff; + (D_80063BA8 + temp_v0)->unk2 = (s16) (D_80063BA4 + temp_v0)->unk2; + (D_80063BA4 + temp_v0)->unk4 = (u16)0x7fff; + (D_80063BA8 + temp_v0)->unk4 = (s16) (D_80063BA4 + temp_v0)->unk4; + (D_80063BA4 + temp_v0)->unk6 = (u16)0x7fff; + (D_80063BA8 + temp_v0)->unk6 = (s16) (D_80063BA4 + temp_v0)->unk6; + D_800243F0->unk38 = (?32) alGlobals; + *D_800243F0 = 0; + D_800243F0->unk8 = &sfx_c_70007DDC; + D_800243F0->unk4 = (void *) D_800243F0; + alSynAddPlayer(D_800243F0->unk38, D_800243F0); + sp38 = (u16)0x20; + alEvtqPostEvent((D_800243F0 + 0x14), &sp38, D_800243F0->unk48); + D_800243F0->unk4C = alEvtqNextEvent((D_800243F0 + 0x14), (D_800243F0 + 0x28)); +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70007B20 +/* 008720 70007B20 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 008724 70007B24 AFB20028 */ sw $s2, 0x28($sp) +/* 008728 70007B28 3C128002 */ lui $s2, %hi(D_800243F0) +/* 00872C 70007B2C 265243F0 */ addiu $s2, %lo(D_800243F0) # addiu $s2, $s2, 0x43f0 +/* 008730 70007B30 AFBF002C */ sw $ra, 0x2c($sp) +/* 008734 70007B34 AFB10024 */ sw $s1, 0x24($sp) +/* 008738 70007B38 AFB00020 */ sw $s0, 0x20($sp) +/* 00873C 70007B3C 8C8E0008 */ lw $t6, 8($a0) +/* 008740 70007B40 8E4F0000 */ lw $t7, ($s2) +/* 008744 70007B44 341980E8 */ li $t9, 33000 +/* 008748 70007B48 00808825 */ move $s1, $a0 +/* 00874C 70007B4C ADEE0044 */ sw $t6, 0x44($t7) +/* 008750 70007B50 8E580000 */ lw $t8, ($s2) +/* 008754 70007B54 00002025 */ move $a0, $zero +/* 008758 70007B58 00002825 */ move $a1, $zero +/* 00875C 70007B5C AF00003C */ sw $zero, 0x3c($t8) +/* 008760 70007B60 8E480000 */ lw $t0, ($s2) +/* 008764 70007B64 24070001 */ li $a3, 1 +/* 008768 70007B68 AD190048 */ sw $t9, 0x48($t0) +/* 00876C 70007B6C 8E290000 */ lw $t1, ($s1) +/* 008770 70007B70 8E26000C */ lw $a2, 0xc($s1) +/* 008774 70007B74 00095180 */ sll $t2, $t1, 6 +/* 008778 70007B78 0C003AD4 */ jal alHeapDBAlloc +/* 00877C 70007B7C AFAA0010 */ sw $t2, 0x10($sp) +/* 008780 70007B80 8E4B0000 */ lw $t3, ($s2) +/* 008784 70007B84 00002025 */ move $a0, $zero +/* 008788 70007B88 00002825 */ move $a1, $zero +/* 00878C 70007B8C AD620040 */ sw $v0, 0x40($t3) +/* 008790 70007B90 8E2C0004 */ lw $t4, 4($s1) +/* 008794 70007B94 8E26000C */ lw $a2, 0xc($s1) +/* 008798 70007B98 24070001 */ li $a3, 1 +/* 00879C 70007B9C 000C68C0 */ sll $t5, $t4, 3 +/* 0087A0 70007BA0 01AC6823 */ subu $t5, $t5, $t4 +/* 0087A4 70007BA4 000D6880 */ sll $t5, $t5, 2 +/* 0087A8 70007BA8 0C003AD4 */ jal alHeapDBAlloc +/* 0087AC 70007BAC AFAD0010 */ sw $t5, 0x10($sp) +/* 0087B0 70007BB0 8E440000 */ lw $a0, ($s2) +/* 0087B4 70007BB4 00402825 */ move $a1, $v0 +/* 0087B8 70007BB8 8E260004 */ lw $a2, 4($s1) +/* 0087BC 70007BBC 0C004C2B */ jal alEvtqNew +/* 0087C0 70007BC0 24840014 */ addiu $a0, $a0, 0x14 +/* 0087C4 70007BC4 8E4E0000 */ lw $t6, ($s2) +/* 0087C8 70007BC8 3C018002 */ lui $at, %hi(D_800243EC) +/* 0087CC 70007BCC 24100001 */ li $s0, 1 +/* 0087D0 70007BD0 8DCF0040 */ lw $t7, 0x40($t6) +/* 0087D4 70007BD4 AC2F43EC */ sw $t7, %lo(D_800243EC)($at) +/* 0087D8 70007BD8 8E380000 */ lw $t8, ($s1) +/* 0087DC 70007BDC 2F010002 */ sltiu $at, $t8, 2 +/* 0087E0 70007BE0 5420000D */ bnezl $at, .L70007C18 +/* 0087E4 70007BE4 8E26000C */ lw $a2, 0xc($s1) +/* 0087E8 70007BE8 8E590000 */ lw $t9, ($s2) +.L70007BEC: +/* 0087EC 70007BEC 00104180 */ sll $t0, $s0, 6 +/* 0087F0 70007BF0 8F220040 */ lw $v0, 0x40($t9) +/* 0087F4 70007BF4 01022021 */ addu $a0, $t0, $v0 +/* 0087F8 70007BF8 0C003AB0 */ jal alLink +/* 0087FC 70007BFC 2485FFC0 */ addiu $a1, $a0, -0x40 +/* 008800 70007C00 8E290000 */ lw $t1, ($s1) +/* 008804 70007C04 26100001 */ addiu $s0, $s0, 1 +/* 008808 70007C08 0209082B */ sltu $at, $s0, $t1 +/* 00880C 70007C0C 5420FFF7 */ bnezl $at, .L70007BEC +/* 008810 70007C10 8E590000 */ lw $t9, ($s2) +/* 008814 70007C14 8E26000C */ lw $a2, 0xc($s1) +.L70007C18: +/* 008818 70007C18 240A0007 */ li $t2, 7 +/* 00881C 70007C1C AFAA0010 */ sw $t2, 0x10($sp) +/* 008820 70007C20 00002025 */ move $a0, $zero +/* 008824 70007C24 00002825 */ move $a1, $zero +/* 008828 70007C28 0C003AD4 */ jal alHeapDBAlloc +/* 00882C 70007C2C 24070002 */ li $a3, 2 +/* 008830 70007C30 3C038006 */ lui $v1, %hi(D_80063BA4) +/* 008834 70007C34 24633BA4 */ addiu $v1, %lo(D_80063BA4) # addiu $v1, $v1, 0x3ba4 +/* 008838 70007C38 AC620000 */ sw $v0, ($v1) +/* 00883C 70007C3C 8E26000C */ lw $a2, 0xc($s1) +/* 008840 70007C40 240B0007 */ li $t3, 7 +/* 008844 70007C44 AFAB0010 */ sw $t3, 0x10($sp) +/* 008848 70007C48 00002025 */ move $a0, $zero +/* 00884C 70007C4C 00002825 */ move $a1, $zero +/* 008850 70007C50 0C003AD4 */ jal alHeapDBAlloc +/* 008854 70007C54 24070002 */ li $a3, 2 +/* 008858 70007C58 3C038006 */ lui $v1, %hi(D_80063BA4) +/* 00885C 70007C5C 24633BA4 */ addiu $v1, %lo(D_80063BA4) # addiu $v1, $v1, 0x3ba4 +/* 008860 70007C60 8C6C0000 */ lw $t4, ($v1) +/* 008864 70007C64 3C048006 */ lui $a0, %hi(D_80063BA8) +/* 008868 70007C68 24843BA8 */ addiu $a0, %lo(D_80063BA8) # addiu $a0, $a0, 0x3ba8 +/* 00886C 70007C6C AC820000 */ sw $v0, ($a0) +/* 008870 70007C70 24057FFF */ li $a1, 32767 +/* 008874 70007C74 A5850000 */ sh $a1, ($t4) +/* 008878 70007C78 8C6D0000 */ lw $t5, ($v1) +/* 00887C 70007C7C 8C8F0000 */ lw $t7, ($a0) +/* 008880 70007C80 24100003 */ li $s0, 3 +/* 008884 70007C84 85AE0000 */ lh $t6, ($t5) +/* 008888 70007C88 00101040 */ sll $v0, $s0, 1 +/* 00888C 70007C8C A5EE0000 */ sh $t6, ($t7) +/* 008890 70007C90 8C780000 */ lw $t8, ($v1) +/* 008894 70007C94 A7050002 */ sh $a1, 2($t8) +/* 008898 70007C98 8C790000 */ lw $t9, ($v1) +/* 00889C 70007C9C 8C890000 */ lw $t1, ($a0) +/* 0088A0 70007CA0 87280002 */ lh $t0, 2($t9) +/* 0088A4 70007CA4 A5280002 */ sh $t0, 2($t1) +/* 0088A8 70007CA8 8C6A0000 */ lw $t2, ($v1) +/* 0088AC 70007CAC A5450004 */ sh $a1, 4($t2) +/* 0088B0 70007CB0 8C6B0000 */ lw $t3, ($v1) +/* 0088B4 70007CB4 8C8D0000 */ lw $t5, ($a0) +/* 0088B8 70007CB8 856C0004 */ lh $t4, 4($t3) +/* 0088BC 70007CBC A5AC0004 */ sh $t4, 4($t5) +/* 0088C0 70007CC0 8C6E0000 */ lw $t6, ($v1) +/* 0088C4 70007CC4 01C27821 */ addu $t7, $t6, $v0 +/* 0088C8 70007CC8 A5E50000 */ sh $a1, ($t7) +/* 0088CC 70007CCC 8C780000 */ lw $t8, ($v1) +/* 0088D0 70007CD0 8C890000 */ lw $t1, ($a0) +/* 0088D4 70007CD4 0302C821 */ addu $t9, $t8, $v0 +/* 0088D8 70007CD8 87280000 */ lh $t0, ($t9) +/* 0088DC 70007CDC 01225021 */ addu $t2, $t1, $v0 +/* 0088E0 70007CE0 A5480000 */ sh $t0, ($t2) +/* 0088E4 70007CE4 8C6B0000 */ lw $t3, ($v1) +/* 0088E8 70007CE8 01626021 */ addu $t4, $t3, $v0 +/* 0088EC 70007CEC A5850002 */ sh $a1, 2($t4) +/* 0088F0 70007CF0 8C6D0000 */ lw $t5, ($v1) +/* 0088F4 70007CF4 8C980000 */ lw $t8, ($a0) +/* 0088F8 70007CF8 01A27021 */ addu $t6, $t5, $v0 +/* 0088FC 70007CFC 85CF0002 */ lh $t7, 2($t6) +/* 008900 70007D00 0302C821 */ addu $t9, $t8, $v0 +/* 008904 70007D04 A72F0002 */ sh $t7, 2($t9) +/* 008908 70007D08 8C690000 */ lw $t1, ($v1) +/* 00890C 70007D0C 01224021 */ addu $t0, $t1, $v0 +/* 008910 70007D10 A5050004 */ sh $a1, 4($t0) +/* 008914 70007D14 8C6A0000 */ lw $t2, ($v1) +/* 008918 70007D18 8C8D0000 */ lw $t5, ($a0) +/* 00891C 70007D1C 01425821 */ addu $t3, $t2, $v0 +/* 008920 70007D20 856C0004 */ lh $t4, 4($t3) +/* 008924 70007D24 01A27021 */ addu $t6, $t5, $v0 +/* 008928 70007D28 3C0D8002 */ lui $t5, %hi(alGlobals) +/* 00892C 70007D2C A5CC0004 */ sh $t4, 4($t6) +/* 008930 70007D30 8C780000 */ lw $t8, ($v1) +/* 008934 70007D34 03027821 */ addu $t7, $t8, $v0 +/* 008938 70007D38 A5E50006 */ sh $a1, 6($t7) +/* 00893C 70007D3C 8C790000 */ lw $t9, ($v1) +/* 008940 70007D40 8C8A0000 */ lw $t2, ($a0) +/* 008944 70007D44 3C187000 */ lui $t8, %hi(sfx_c_70007DDC) # $t8, 0x7000 +/* 008948 70007D48 03224821 */ addu $t1, $t9, $v0 +/* 00894C 70007D4C 85280006 */ lh $t0, 6($t1) +/* 008950 70007D50 01425821 */ addu $t3, $t2, $v0 +/* 008954 70007D54 27187DDC */ addiu $t8, %lo(sfx_c_70007DDC) # addiu $t8, $t8, 0x7ddc +/* 008958 70007D58 A5680006 */ sh $t0, 6($t3) +/* 00895C 70007D5C 8E4C0000 */ lw $t4, ($s2) +/* 008960 70007D60 8DAD76E0 */ lw $t5, %lo(alGlobals)($t5) +/* 008964 70007D64 AD8D0038 */ sw $t5, 0x38($t4) +/* 008968 70007D68 8E4E0000 */ lw $t6, ($s2) +/* 00896C 70007D6C ADC00000 */ sw $zero, ($t6) +/* 008970 70007D70 8E4F0000 */ lw $t7, ($s2) +/* 008974 70007D74 ADF80008 */ sw $t8, 8($t7) +/* 008978 70007D78 8E500000 */ lw $s0, ($s2) +/* 00897C 70007D7C AE100004 */ sw $s0, 4($s0) +/* 008980 70007D80 8E500000 */ lw $s0, ($s2) +/* 008984 70007D84 8E040038 */ lw $a0, 0x38($s0) +/* 008988 70007D88 0C004C48 */ jal alSynAddPlayer +/* 00898C 70007D8C 02002825 */ move $a1, $s0 +/* 008990 70007D90 8E500000 */ lw $s0, ($s2) +/* 008994 70007D94 24190020 */ li $t9, 32 +/* 008998 70007D98 A7B90038 */ sh $t9, 0x38($sp) +/* 00899C 70007D9C 27A50038 */ addiu $a1, $sp, 0x38 +/* 0089A0 70007DA0 8E060048 */ lw $a2, 0x48($s0) +/* 0089A4 70007DA4 0C004BBF */ jal alEvtqPostEvent +/* 0089A8 70007DA8 26040014 */ addiu $a0, $s0, 0x14 +/* 0089AC 70007DAC 8E500000 */ lw $s0, ($s2) +/* 0089B0 70007DB0 26040014 */ addiu $a0, $s0, 0x14 +/* 0089B4 70007DB4 0C004C08 */ jal alEvtqNextEvent +/* 0089B8 70007DB8 26050028 */ addiu $a1, $s0, 0x28 +/* 0089BC 70007DBC 8E490000 */ lw $t1, ($s2) +/* 0089C0 70007DC0 AD22004C */ sw $v0, 0x4c($t1) +/* 0089C4 70007DC4 8FBF002C */ lw $ra, 0x2c($sp) +/* 0089C8 70007DC8 8FB20028 */ lw $s2, 0x28($sp) +/* 0089CC 70007DCC 8FB10024 */ lw $s1, 0x24($sp) +/* 0089D0 70007DD0 8FB00020 */ lw $s0, 0x20($sp) +/* 0089D4 70007DD4 03E00008 */ jr $ra +/* 0089D8 70007DD8 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + + +/** + * 89DC 70007DDC + */ +#ifdef NONMATCHING +void sfx_c_70007DDC(void *arg0) +{ + s16 sp3C; + s32 temp_s1; + s32 temp_s2; + ? temp_ret; + + temp_s1 = (arg0 + 0x28); + temp_s2 = (arg0 + 0x14); +block_1: + if (0x20 == arg0->unk28) + { + sp3C = (u16)0x20; + alEvtqPostEvent(temp_s2, &sp3C, arg0->unk48); + } + else + { + sfx_c_70007E80(arg0, temp_s1); + } + temp_ret = alEvtqNextEvent(temp_s2, temp_s1); + arg0->unk4C = temp_ret; + if (temp_ret == 0) + { + goto block_1; + } + arg0->unk50 = (s32) (arg0->unk50 + temp_ret); +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70007DDC +/* 0089DC 70007DDC 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0089E0 70007DE0 AFB40028 */ sw $s4, 0x28($sp) +/* 0089E4 70007DE4 AFB30024 */ sw $s3, 0x24($sp) +/* 0089E8 70007DE8 AFB20020 */ sw $s2, 0x20($sp) +/* 0089EC 70007DEC AFB1001C */ sw $s1, 0x1c($sp) +/* 0089F0 70007DF0 AFB00018 */ sw $s0, 0x18($sp) +/* 0089F4 70007DF4 00808025 */ move $s0, $a0 +/* 0089F8 70007DF8 AFBF002C */ sw $ra, 0x2c($sp) +/* 0089FC 70007DFC 24910028 */ addiu $s1, $a0, 0x28 +/* 008A00 70007E00 24920014 */ addiu $s2, $a0, 0x14 +/* 008A04 70007E04 24130020 */ li $s3, 32 +/* 008A08 70007E08 27B4003C */ addiu $s4, $sp, 0x3c +.L70007E0C: +/* 008A0C 70007E0C 860E0028 */ lh $t6, 0x28($s0) +/* 008A10 70007E10 240F0020 */ li $t7, 32 +/* 008A14 70007E14 02802825 */ move $a1, $s4 +/* 008A18 70007E18 166E0007 */ bne $s3, $t6, .L70007E38 +/* 008A1C 70007E1C 02002025 */ move $a0, $s0 +/* 008A20 70007E20 A7AF003C */ sh $t7, 0x3c($sp) +/* 008A24 70007E24 8E060048 */ lw $a2, 0x48($s0) +/* 008A28 70007E28 0C004BBF */ jal alEvtqPostEvent +/* 008A2C 70007E2C 02402025 */ move $a0, $s2 +/* 008A30 70007E30 10000004 */ b .L70007E44 +/* 008A34 70007E34 02402025 */ move $a0, $s2 +.L70007E38: +/* 008A38 70007E38 0C001FA0 */ jal sfx_c_70007E80 +/* 008A3C 70007E3C 02202825 */ move $a1, $s1 +/* 008A40 70007E40 02402025 */ move $a0, $s2 +.L70007E44: +/* 008A44 70007E44 0C004C08 */ jal alEvtqNextEvent +/* 008A48 70007E48 02202825 */ move $a1, $s1 +/* 008A4C 70007E4C 1040FFEF */ beqz $v0, .L70007E0C +/* 008A50 70007E50 AE02004C */ sw $v0, 0x4c($s0) +/* 008A54 70007E54 8E180050 */ lw $t8, 0x50($s0) +/* 008A58 70007E58 0302C821 */ addu $t9, $t8, $v0 +/* 008A5C 70007E5C AE190050 */ sw $t9, 0x50($s0) +/* 008A60 70007E60 8FBF002C */ lw $ra, 0x2c($sp) +/* 008A64 70007E64 8FB40028 */ lw $s4, 0x28($sp) +/* 008A68 70007E68 8FB30024 */ lw $s3, 0x24($sp) +/* 008A6C 70007E6C 8FB20020 */ lw $s2, 0x20($sp) +/* 008A70 70007E70 8FB1001C */ lw $s1, 0x1c($sp) +/* 008A74 70007E74 8FB00018 */ lw $s0, 0x18($sp) +/* 008A78 70007E78 03E00008 */ jr $ra +/* 008A7C 70007E7C 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + + +/** + * 8A80 70007E80 + * ??? + * accepts: A0=???, A1=??? + * uses TLB pointer table at 80029160 + * 70007FBC entry 0 + * 70008388 entry 1 + * 7000847C entry 3 + * 700084F0 entry F + * 700085C8 entry 7 + * 700088D4 default: entries 2,4,5,6,8,9,A,B,C,D,E + */ + +#ifdef NONMATCHING +void sfx_c_70007E80(void) { + +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70007E80 +/* 008A80 70007E80 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 008A84 70007E84 AFBE0038 */ sw $fp, 0x38($sp) +/* 008A88 70007E88 AFB70034 */ sw $s7, 0x34($sp) +/* 008A8C 70007E8C AFB5002C */ sw $s5, 0x2c($sp) +/* 008A90 70007E90 AFB1001C */ sw $s1, 0x1c($sp) +/* 008A94 70007E94 240E0001 */ li $t6, 1 +/* 008A98 70007E98 00A0A825 */ move $s5, $a1 +/* 008A9C 70007E9C 0080B825 */ move $s7, $a0 +/* 008AA0 70007EA0 AFBF003C */ sw $ra, 0x3c($sp) +/* 008AA4 70007EA4 AFB60030 */ sw $s6, 0x30($sp) +/* 008AA8 70007EA8 AFB40028 */ sw $s4, 0x28($sp) +/* 008AAC 70007EAC AFB30024 */ sw $s3, 0x24($sp) +/* 008AB0 70007EB0 AFB20020 */ sw $s2, 0x20($sp) +/* 008AB4 70007EB4 AFB00018 */ sw $s0, 0x18($sp) +/* 008AB8 70007EB8 AFAE0080 */ sw $t6, 0x80($sp) +/* 008ABC 70007EBC AFA0007C */ sw $zero, 0x7c($sp) +/* 008AC0 70007EC0 AFA00074 */ sw $zero, 0x74($sp) +/* 008AC4 70007EC4 8FB10078 */ lw $s1, 0x78($sp) +/* 008AC8 70007EC8 241E0001 */ li $fp, 1 +/* 008ACC 70007ECC 8FAF0074 */ lw $t7, 0x74($sp) +.L70007ED0: +/* 008AD0 70007ED0 51E00008 */ beql $t7, $zero, .L70007EF4 +/* 008AD4 70007ED4 8EB10004 */ lw $s1, 4($s5) +/* 008AD8 70007ED8 AFB100A0 */ sw $s1, 0xa0($sp) +/* 008ADC 70007EDC 96B80000 */ lhu $t8, ($s5) +/* 008AE0 70007EE0 A7B8009C */ sh $t8, 0x9c($sp) +/* 008AE4 70007EE4 8EB90008 */ lw $t9, 8($s5) +/* 008AE8 70007EE8 27B5009C */ addiu $s5, $sp, 0x9c +/* 008AEC 70007EEC AFB900A4 */ sw $t9, 0xa4($sp) +/* 008AF0 70007EF0 8EB10004 */ lw $s1, 4($s5) +.L70007EF4: +/* 008AF4 70007EF4 8E320008 */ lw $s2, 8($s1) +/* 008AF8 70007EF8 16400005 */ bnez $s2, .L70007F10 +/* 008AFC 70007EFC 27A40072 */ addiu $a0, $sp, 0x72 +/* 008B00 70007F00 0C0022BC */ jal sfx_c_70008AF0 +/* 008B04 70007F04 27A50070 */ addiu $a1, $sp, 0x70 +/* 008B08 70007F08 10000284 */ b .L7000891C +/* 008B0C 70007F0C 8FBF003C */ lw $ra, 0x3c($sp) +.L70007F10: +/* 008B10 70007F10 8E280000 */ lw $t0, ($s1) +/* 008B14 70007F14 8E560004 */ lw $s6, 4($s2) +/* 008B18 70007F18 AFA80074 */ sw $t0, 0x74($sp) +/* 008B1C 70007F1C 96A30000 */ lhu $v1, ($s5) +/* 008B20 70007F20 28610101 */ slti $at, $v1, 0x101 +/* 008B24 70007F24 1420000C */ bnez $at, .L70007F58 +/* 008B28 70007F28 00601025 */ move $v0, $v1 +/* 008B2C 70007F2C 24010200 */ li $at, 512 +/* 008B30 70007F30 1041025D */ beq $v0, $at, .L700088A8 +/* 008B34 70007F34 24010400 */ li $at, 1024 +/* 008B38 70007F38 10410113 */ beq $v0, $at, .L70008388 +/* 008B3C 70007F3C 24010800 */ li $at, 2048 +/* 008B40 70007F40 104101D3 */ beq $v0, $at, .L70008690 +/* 008B44 70007F44 24011000 */ li $at, 4096 +/* 008B48 70007F48 50410110 */ beql $v0, $at, .L7000838C +/* 008B4C 70007F4C 24011000 */ li $at, 4096 +/* 008B50 70007F50 10000261 */ b .L700088D8 +/* 008B54 70007F54 306202D1 */ andi $v0, $v1, 0x2d1 +.L70007F58: +/* 008B58 70007F58 28410041 */ slti $at, $v0, 0x41 +/* 008B5C 70007F5C 14200007 */ bnez $at, .L70007F7C +/* 008B60 70007F60 24010080 */ li $at, 128 +/* 008B64 70007F64 1041024A */ beq $v0, $at, .L70008890 +/* 008B68 70007F68 24010100 */ li $at, 256 +/* 008B6C 70007F6C 50410177 */ beql $v0, $at, .L7000854C +/* 008B70 70007F70 922E003F */ lbu $t6, 0x3f($s1) +/* 008B74 70007F74 10000258 */ b .L700088D8 +/* 008B78 70007F78 306202D1 */ andi $v0, $v1, 0x2d1 +.L70007F7C: +/* 008B7C 70007F7C 28410011 */ slti $at, $v0, 0x11 +/* 008B80 70007F80 14200006 */ bnez $at, .L70007F9C +/* 008B84 70007F84 2449FFFF */ addiu $t1, $v0, -1 +/* 008B88 70007F88 24010040 */ li $at, 64 +/* 008B8C 70007F8C 504101F8 */ beql $v0, $at, .L70008770 +/* 008B90 70007F90 9239003E */ lbu $t9, 0x3e($s1) +/* 008B94 70007F94 10000250 */ b .L700088D8 +/* 008B98 70007F98 306202D1 */ andi $v0, $v1, 0x2d1 +.L70007F9C: +/* 008B9C 70007F9C 2D210010 */ sltiu $at, $t1, 0x10 +/* 008BA0 70007FA0 1020024C */ beqz $at, .L700088D4 +/* 008BA4 70007FA4 00094880 */ sll $t1, $t1, 2 +/* 008BA8 70007FA8 3C018003 */ lui $at, %hi(jpt_80029160) +/* 008BAC 70007FAC 00290821 */ addu $at, $at, $t1 +/* 008BB0 70007FB0 8C299160 */ lw $t1, %lo(jpt_80029160)($at) # lw $t1, -0x6ea0($at) +/* 008BB4 70007FB4 01200008 */ jr $t1 +/* 008BB8 70007FB8 00000000 */ nop +glabel .L70007FBC +/* 008BBC 70007FBC 9222003F */ lbu $v0, 0x3f($s1) +/* 008BC0 70007FC0 24010005 */ li $at, 5 +/* 008BC4 70007FC4 3C0B8002 */ lui $t3, %hi(D_800243F4) +/* 008BC8 70007FC8 10410003 */ beq $v0, $at, .L70007FD8 +/* 008BCC 70007FCC 24010004 */ li $at, 4 +/* 008BD0 70007FD0 54410252 */ bnel $v0, $at, .L7000891C +/* 008BD4 70007FD4 8FBF003C */ lw $ra, 0x3c($sp) +.L70007FD8: +/* 008BD8 70007FD8 A7A000CA */ sh $zero, 0xca($sp) +/* 008BDC 70007FDC 922A0036 */ lbu $t2, 0x36($s1) +/* 008BE0 70007FE0 A3A000CC */ sb $zero, 0xcc($sp) +/* 008BE4 70007FE4 856B43F4 */ lh $t3, %lo(D_800243F4)($t3) +/* 008BE8 70007FE8 A7AA00C8 */ sh $t2, 0xc8($sp) +/* 008BEC 70007FEC 8EEC0044 */ lw $t4, 0x44($s7) +/* 008BF0 70007FF0 2625000C */ addiu $a1, $s1, 0xc +/* 008BF4 70007FF4 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 008BF8 70007FF8 016C802A */ slt $s0, $t3, $t4 +/* 008BFC 70007FFC 3A100001 */ xori $s0, $s0, 1 +/* 008C00 70008000 12000005 */ beqz $s0, .L70008018 +/* 008C04 70008004 00000000 */ nop +/* 008C08 70008008 9223003E */ lbu $v1, 0x3e($s1) +/* 008C0C 7000800C 306D0010 */ andi $t5, $v1, 0x10 +/* 008C10 70008010 51A00006 */ beql $t5, $zero, .L7000802C +/* 008C14 70008014 8FAE007C */ lw $t6, 0x7c($sp) +.L70008018: +/* 008C18 70008018 0C004C96 */ jal alSynAllocVoice +/* 008C1C 7000801C 8EE40038 */ lw $a0, 0x38($s7) +/* 008C20 70008020 AFA2007C */ sw $v0, 0x7c($sp) +/* 008C24 70008024 9223003E */ lbu $v1, 0x3e($s1) +/* 008C28 70008028 8FAE007C */ lw $t6, 0x7c($sp) +.L7000802C: +/* 008C2C 7000802C 2633000C */ addiu $s3, $s1, 0xc +/* 008C30 70008030 346F0004 */ ori $t7, $v1, 4 +/* 008C34 70008034 15C00045 */ bnez $t6, .L7000814C +/* 008C38 70008038 02602825 */ move $a1, $s3 +/* 008C3C 7000803C 306F0012 */ andi $t7, $v1, 0x12 +/* 008C40 70008040 15E00004 */ bnez $t7, .L70008054 +/* 008C44 70008044 24190004 */ li $t9, 4 +/* 008C48 70008048 8E380038 */ lw $t8, 0x38($s1) +/* 008C4C 7000804C 1B00000B */ blez $t8, .L7000807C +/* 008C50 70008050 00000000 */ nop +.L70008054: +/* 008C54 70008054 8E280038 */ lw $t0, 0x38($s1) +/* 008C58 70008058 A239003F */ sb $t9, 0x3f($s1) +/* 008C5C 7000805C 26E40014 */ addiu $a0, $s7, 0x14 +/* 008C60 70008060 2509FFFF */ addiu $t1, $t0, -1 +/* 008C64 70008064 AE290038 */ sw $t1, 0x38($s1) +/* 008C68 70008068 02A02825 */ move $a1, $s5 +/* 008C6C 7000806C 0C004BBF */ jal alEvtqPostEvent +/* 008C70 70008070 34068235 */ li $a2, 33333 +/* 008C74 70008074 10000229 */ b .L7000891C +/* 008C78 70008078 8FBF003C */ lw $ra, 0x3c($sp) +.L7000807C: +/* 008C7C 7000807C 1200002F */ beqz $s0, .L7000813C +/* 008C80 70008080 3C028002 */ lui $v0, %hi(D_800243E8) +/* 008C84 70008084 8C4243E8 */ lw $v0, %lo(D_800243E8)($v0) +/* 008C88 70008088 27B4005C */ addiu $s4, $sp, 0x5c +/* 008C8C 7000808C 24130003 */ li $s3, 3 +/* 008C90 70008090 24120003 */ li $s2, 3 +/* 008C94 70008094 9043003E */ lbu $v1, 0x3e($v0) +.L70008098: +/* 008C98 70008098 306A0012 */ andi $t2, $v1, 0x12 +/* 008C9C 7000809C 15400016 */ bnez $t2, .L700080F8 +/* 008CA0 700080A0 306B0004 */ andi $t3, $v1, 4 +/* 008CA4 700080A4 11600014 */ beqz $t3, .L700080F8 +/* 008CA8 700080A8 00000000 */ nop +/* 008CAC 700080AC 904C003F */ lbu $t4, 0x3f($v0) +/* 008CB0 700080B0 240D0080 */ li $t5, 128 +/* 008CB4 700080B4 26E40014 */ addiu $a0, $s7, 0x14 +/* 008CB8 700080B8 124C000F */ beq $s2, $t4, .L700080F8 +/* 008CBC 700080BC 02802825 */ move $a1, $s4 +/* 008CC0 700080C0 A7AD005C */ sh $t5, 0x5c($sp) +/* 008CC4 700080C4 AFA20060 */ sw $v0, 0x60($sp) +/* 008CC8 700080C8 A053003F */ sb $s3, 0x3f($v0) +/* 008CCC 700080CC 00008025 */ move $s0, $zero +/* 008CD0 700080D0 AFA2006C */ sw $v0, 0x6c($sp) +/* 008CD4 700080D4 0C004BBF */ jal alEvtqPostEvent +/* 008CD8 700080D8 240603E8 */ li $a2, 1000 +/* 008CDC 700080DC 8FA2006C */ lw $v0, 0x6c($sp) +/* 008CE0 700080E0 8EE40038 */ lw $a0, 0x38($s7) +/* 008CE4 700080E4 00003025 */ move $a2, $zero +/* 008CE8 700080E8 240703E8 */ li $a3, 1000 +/* 008CEC 700080EC 0C004CE8 */ jal alSynSetVol +/* 008CF0 700080F0 2445000C */ addiu $a1, $v0, 0xc +/* 008CF4 700080F4 8FA2006C */ lw $v0, 0x6c($sp) +.L700080F8: +/* 008CF8 700080F8 12000003 */ beqz $s0, .L70008108 +/* 008CFC 700080FC 8C420004 */ lw $v0, 4($v0) +/* 008D00 70008100 5440FFE5 */ bnezl $v0, .L70008098 +/* 008D04 70008104 9043003E */ lbu $v1, 0x3e($v0) +.L70008108: +/* 008D08 70008108 16000008 */ bnez $s0, .L7000812C +/* 008D0C 7000810C 240E0002 */ li $t6, 2 +/* 008D10 70008110 AE2E0038 */ sw $t6, 0x38($s1) +/* 008D14 70008114 26E40014 */ addiu $a0, $s7, 0x14 +/* 008D18 70008118 02A02825 */ move $a1, $s5 +/* 008D1C 7000811C 0C004BBF */ jal alEvtqPostEvent +/* 008D20 70008120 240603E9 */ li $a2, 1001 +/* 008D24 70008124 100001FD */ b .L7000891C +/* 008D28 70008128 8FBF003C */ lw $ra, 0x3c($sp) +.L7000812C: +/* 008D2C 7000812C 0C002252 */ jal sfx_c_70008948 +/* 008D30 70008130 02202025 */ move $a0, $s1 +/* 008D34 70008134 100001F9 */ b .L7000891C +/* 008D38 70008138 8FBF003C */ lw $ra, 0x3c($sp) +.L7000813C: +/* 008D3C 7000813C 0C002252 */ jal sfx_c_70008948 +/* 008D40 70008140 02202025 */ move $a0, $s1 +/* 008D44 70008144 100001F5 */ b .L7000891C +/* 008D48 70008148 8FBF003C */ lw $ra, 0x3c($sp) +.L7000814C: +/* 008D4C 7000814C A22F003E */ sb $t7, 0x3e($s1) +/* 008D50 70008150 8E460008 */ lw $a2, 8($s2) +/* 008D54 70008154 8EE40038 */ lw $a0, 0x38($s7) +/* 008D58 70008158 0C004D10 */ jal alSynStartVoice +/* 008D5C 7000815C 26F40014 */ addiu $s4, $s7, 0x14 +/* 008D60 70008160 24180001 */ li $t8, 1 +/* 008D64 70008164 A238003F */ sb $t8, 0x3f($s1) +/* 008D68 70008168 3C198002 */ lui $t9, %hi(D_800243F4) +/* 008D6C 7000816C 873943F4 */ lh $t9, %lo(D_800243F4)($t9) +/* 008D70 70008170 3C018002 */ lui $at, %hi(D_800243F4) +/* 008D74 70008174 3C0B8006 */ lui $t3, %hi(D_80063BA4) +/* 008D78 70008178 27280001 */ addiu $t0, $t9, 1 +/* 008D7C 7000817C A42843F4 */ sh $t0, %lo(D_800243F4)($at) +/* 008D80 70008180 8E420000 */ lw $v0, ($s2) +/* 008D84 70008184 86280034 */ lh $t0, 0x34($s1) +/* 008D88 70008188 924A000D */ lbu $t2, 0xd($s2) +/* 008D8C 7000818C 9059000C */ lbu $t9, 0xc($v0) +/* 008D90 70008190 8C490000 */ lw $t1, ($v0) +/* 008D94 70008194 92CC0002 */ lbu $t4, 2($s6) +/* 008D98 70008198 03280019 */ multu $t9, $t0 +/* 008D9C 7000819C 44892000 */ mtc1 $t1, $f4 +/* 008DA0 700081A0 318D003F */ andi $t5, $t4, 0x3f +/* 008DA4 700081A4 24013F01 */ li $at, 16129 +/* 008DA8 700081A8 8D6B3BA4 */ lw $t3, %lo(D_80063BA4)($t3) +/* 008DAC 700081AC 000D7040 */ sll $t6, $t5, 1 +/* 008DB0 700081B0 468021A0 */ cvt.s.w $f6, $f4 +/* 008DB4 700081B4 016E7821 */ addu $t7, $t3, $t6 +/* 008DB8 700081B8 85F80000 */ lh $t8, ($t7) +/* 008DBC 700081BC C628002C */ lwc1 $f8, 0x2c($s1) +/* 008DC0 700081C0 00004812 */ mflo $t1 +/* 008DC4 700081C4 C6300028 */ lwc1 $f16, 0x28($s1) +/* 008DC8 700081C8 46083283 */ div.s $f10, $f6, $f8 +/* 008DCC 700081CC 012A0019 */ multu $t1, $t2 +/* 008DD0 700081D0 02602825 */ move $a1, $s3 +/* 008DD4 700081D4 00003025 */ move $a2, $zero +/* 008DD8 700081D8 00003825 */ move $a3, $zero +/* 008DDC 700081DC 00006012 */ mflo $t4 +/* 008DE0 700081E0 00000000 */ nop +/* 008DE4 700081E4 00000000 */ nop +/* 008DE8 700081E8 0181001A */ div $zero, $t4, $at +/* 008DEC 700081EC 00006812 */ mflo $t5 +/* 008DF0 700081F0 24017FFF */ li $at, 32767 +/* 008DF4 700081F4 46105483 */ div.s $f18, $f10, $f16 +/* 008DF8 700081F8 030D0019 */ multu $t8, $t5 +/* 008DFC 700081FC 00002012 */ mflo $a0 +/* 008E00 70008200 00000000 */ nop +/* 008E04 70008204 00000000 */ nop +/* 008E08 70008208 0081001A */ div $zero, $a0, $at +/* 008E0C 7000820C 4600910D */ trunc.w.s $f4, $f18 +/* 008E10 70008210 00005812 */ mflo $t3 +/* 008E14 70008214 2564FFFF */ addiu $a0, $t3, -1 +/* 008E18 70008218 00801825 */ move $v1, $a0 +/* 008E1C 7000821C 44102000 */ mfc1 $s0, $f4 +/* 008E20 70008220 04810003 */ bgez $a0, .L70008230 +/* 008E24 70008224 00000000 */ nop +/* 008E28 70008228 10000001 */ b .L70008230 +/* 008E2C 7000822C 00001825 */ move $v1, $zero +.L70008230: +/* 008E30 70008230 8EE40038 */ lw $a0, 0x38($s7) +/* 008E34 70008234 0C004CE8 */ jal alSynSetVol +/* 008E38 70008238 AFA30090 */ sw $v1, 0x90($sp) +/* 008E3C 7000823C 8FA30090 */ lw $v1, 0x90($sp) +/* 008E40 70008240 8EE40038 */ lw $a0, 0x38($s7) +/* 008E44 70008244 02602825 */ move $a1, $s3 +/* 008E48 70008248 00033400 */ sll $a2, $v1, 0x10 +/* 008E4C 7000824C 00067403 */ sra $t6, $a2, 0x10 +/* 008E50 70008250 01C03025 */ move $a2, $t6 +/* 008E54 70008254 0C004CE8 */ jal alSynSetVol +/* 008E58 70008258 02003825 */ move $a3, $s0 +/* 008E5C 7000825C 922F003C */ lbu $t7, 0x3c($s1) +/* 008E60 70008260 9259000C */ lbu $t9, 0xc($s2) +/* 008E64 70008264 00001025 */ move $v0, $zero +/* 008E68 70008268 2406007F */ li $a2, 127 +/* 008E6C 7000826C 01F91821 */ addu $v1, $t7, $t9 +/* 008E70 70008270 2463FFC0 */ addiu $v1, $v1, -0x40 +/* 008E74 70008274 18600003 */ blez $v1, .L70008284 +/* 008E78 70008278 02602825 */ move $a1, $s3 +/* 008E7C 7000827C 10000001 */ b .L70008284 +/* 008E80 70008280 00601025 */ move $v0, $v1 +.L70008284: +/* 008E84 70008284 2841007F */ slti $at, $v0, 0x7f +/* 008E88 70008288 10200007 */ beqz $at, .L700082A8 +/* 008E8C 7000828C 00000000 */ nop +/* 008E90 70008290 18600003 */ blez $v1, .L700082A0 +/* 008E94 70008294 00001025 */ move $v0, $zero +/* 008E98 70008298 10000003 */ b .L700082A8 +/* 008E9C 7000829C 306600FF */ andi $a2, $v1, 0xff +.L700082A0: +/* 008EA0 700082A0 10000001 */ b .L700082A8 +/* 008EA4 700082A4 304600FF */ andi $a2, $v0, 0xff +.L700082A8: +/* 008EA8 700082A8 0C004D34 */ jal alSynSetPan +/* 008EAC 700082AC 8EE40038 */ lw $a0, 0x38($s7) +/* 008EB0 700082B0 C626002C */ lwc1 $f6, 0x2c($s1) +/* 008EB4 700082B4 C6280028 */ lwc1 $f8, 0x28($s1) +/* 008EB8 700082B8 8EE40038 */ lw $a0, 0x38($s7) +/* 008EBC 700082BC 02602825 */ move $a1, $s3 +/* 008EC0 700082C0 46083282 */ mul.s $f10, $f6, $f8 +/* 008EC4 700082C4 44065000 */ mfc1 $a2, $f10 +/* 008EC8 700082C8 0C004D58 */ jal alSynSetPitch +/* 008ECC 700082CC 00000000 */ nop +/* 008ED0 700082D0 92C90003 */ lbu $t1, 3($s6) +/* 008ED4 700082D4 9228003D */ lbu $t0, 0x3d($s1) +/* 008ED8 700082D8 02602825 */ move $a1, $s3 +/* 008EDC 700082DC 312A000F */ andi $t2, $t1, 0xf +/* 008EE0 700082E0 010A1821 */ addu $v1, $t0, $t2 +/* 008EE4 700082E4 000360C0 */ sll $t4, $v1, 3 +/* 008EE8 700082E8 05810003 */ bgez $t4, .L700082F8 +/* 008EEC 700082EC 01801825 */ move $v1, $t4 +/* 008EF0 700082F0 10000002 */ b .L700082FC +/* 008EF4 700082F4 00001025 */ move $v0, $zero +.L700082F8: +/* 008EF8 700082F8 00601025 */ move $v0, $v1 +.L700082FC: +/* 008EFC 700082FC 28410080 */ slti $at, $v0, 0x80 +/* 008F00 70008300 14200003 */ bnez $at, .L70008310 +/* 008F04 70008304 00000000 */ nop +/* 008F08 70008308 10000006 */ b .L70008324 +/* 008F0C 7000830C 2403007F */ li $v1, 127 +.L70008310: +/* 008F10 70008310 04610003 */ bgez $v1, .L70008320 +/* 008F14 70008314 00601025 */ move $v0, $v1 +/* 008F18 70008318 10000001 */ b .L70008320 +/* 008F1C 7000831C 00001025 */ move $v0, $zero +.L70008320: +/* 008F20 70008320 00401825 */ move $v1, $v0 +.L70008324: +/* 008F24 70008324 8EE40038 */ lw $a0, 0x38($s7) +/* 008F28 70008328 0C004D7C */ jal alSynSetFXMix +/* 008F2C 7000832C 306600FF */ andi $a2, $v1, 0xff +/* 008F30 70008330 24180040 */ li $t8, 64 +/* 008F34 70008334 A7B800AC */ sh $t8, 0xac($sp) +/* 008F38 70008338 AFB100B0 */ sw $s1, 0xb0($sp) +/* 008F3C 7000833C 8E4D0000 */ lw $t5, ($s2) +/* 008F40 70008340 C624002C */ lwc1 $f4, 0x2c($s1) +/* 008F44 70008344 C6280028 */ lwc1 $f8, 0x28($s1) +/* 008F48 70008348 8DAB0000 */ lw $t3, ($t5) +/* 008F4C 7000834C 02802025 */ move $a0, $s4 +/* 008F50 70008350 27A500AC */ addiu $a1, $sp, 0xac +/* 008F54 70008354 448B8000 */ mtc1 $t3, $f16 +/* 008F58 70008358 00000000 */ nop +/* 008F5C 7000835C 468084A0 */ cvt.s.w $f18, $f16 +/* 008F60 70008360 46049183 */ div.s $f6, $f18, $f4 +/* 008F64 70008364 46083283 */ div.s $f10, $f6, $f8 +/* 008F68 70008368 4600540D */ trunc.w.s $f16, $f10 +/* 008F6C 7000836C 44068000 */ mfc1 $a2, $f16 +/* 008F70 70008370 0C004BBF */ jal alEvtqPostEvent +/* 008F74 70008374 00000000 */ nop +/* 008F78 70008378 96A20000 */ lhu $v0, ($s5) +/* 008F7C 7000837C 304F02D1 */ andi $t7, $v0, 0x2d1 +/* 008F80 70008380 10000155 */ b .L700088D8 +/* 008F84 70008384 01E01025 */ move $v0, $t7 +glabel .L70008388 +/* 008F88 70008388 24011000 */ li $at, 4096 +.L7000838C: +/* 008F8C 7000838C 54610006 */ bnel $v1, $at, .L700083A8 +/* 008F90 70008390 9222003F */ lbu $v0, 0x3f($s1) +/* 008F94 70008394 9239003E */ lbu $t9, 0x3e($s1) +/* 008F98 70008398 33290002 */ andi $t1, $t9, 2 +/* 008F9C 7000839C 11200035 */ beqz $t1, .L70008474 +/* 008FA0 700083A0 00000000 */ nop +/* 008FA4 700083A4 9222003F */ lbu $v0, 0x3f($s1) +.L700083A8: +/* 008FA8 700083A8 26F40014 */ addiu $s4, $s7, 0x14 +/* 008FAC 700083AC 02802025 */ move $a0, $s4 +/* 008FB0 700083B0 105E0008 */ beq $v0, $fp, .L700083D4 +/* 008FB4 700083B4 02202825 */ move $a1, $s1 +/* 008FB8 700083B8 24010004 */ li $at, 4 +/* 008FBC 700083BC 10410025 */ beq $v0, $at, .L70008454 +/* 008FC0 700083C0 24010005 */ li $at, 5 +/* 008FC4 700083C4 10410023 */ beq $v0, $at, .L70008454 +/* 008FC8 700083C8 00000000 */ nop +/* 008FCC 700083CC 10000025 */ b .L70008464 +/* 008FD0 700083D0 24010002 */ li $at, 2 +.L700083D4: +/* 008FD4 700083D4 0C00228C */ jal sfx_c_70008A30 +/* 008FD8 700083D8 24060040 */ li $a2, 64 +/* 008FDC 700083DC 8E480000 */ lw $t0, ($s2) +/* 008FE0 700083E0 C6260028 */ lwc1 $f6, 0x28($s1) +/* 008FE4 700083E4 C62A002C */ lwc1 $f10, 0x2c($s1) +/* 008FE8 700083E8 8D0A0008 */ lw $t2, 8($t0) +/* 008FEC 700083EC 8EE40038 */ lw $a0, 0x38($s7) +/* 008FF0 700083F0 2625000C */ addiu $a1, $s1, 0xc +/* 008FF4 700083F4 448A9000 */ mtc1 $t2, $f18 +/* 008FF8 700083F8 00003025 */ move $a2, $zero +/* 008FFC 700083FC 46809120 */ cvt.s.w $f4, $f18 +/* 009000 70008400 46062203 */ div.s $f8, $f4, $f6 +/* 009004 70008404 460A4403 */ div.s $f16, $f8, $f10 +/* 009008 70008408 4600848D */ trunc.w.s $f18, $f16 +/* 00900C 7000840C 44109000 */ mfc1 $s0, $f18 +/* 009010 70008410 0C004CE8 */ jal alSynSetVol +/* 009014 70008414 02003825 */ move $a3, $s0 +/* 009018 70008418 1200000A */ beqz $s0, .L70008444 +/* 00901C 7000841C 24180080 */ li $t8, 128 +/* 009020 70008420 A7B800AC */ sh $t8, 0xac($sp) +/* 009024 70008424 AFB100B0 */ sw $s1, 0xb0($sp) +/* 009028 70008428 02802025 */ move $a0, $s4 +/* 00902C 7000842C 27A500AC */ addiu $a1, $sp, 0xac +/* 009030 70008430 0C004BBF */ jal alEvtqPostEvent +/* 009034 70008434 02003025 */ move $a2, $s0 +/* 009038 70008438 240D0002 */ li $t5, 2 +/* 00903C 7000843C 10000003 */ b .L7000844C +/* 009040 70008440 A22D003F */ sb $t5, 0x3f($s1) +.L70008444: +/* 009044 70008444 0C002252 */ jal sfx_c_70008948 +/* 009048 70008448 02202025 */ move $a0, $s1 +.L7000844C: +/* 00904C 7000844C 10000004 */ b .L70008460 +/* 009050 70008450 96A30000 */ lhu $v1, ($s5) +.L70008454: +/* 009054 70008454 0C002252 */ jal sfx_c_70008948 +/* 009058 70008458 02202025 */ move $a0, $s1 +/* 00905C 7000845C 96A30000 */ lhu $v1, ($s5) +.L70008460: +/* 009060 70008460 24010002 */ li $at, 2 +.L70008464: +/* 009064 70008464 14610003 */ bne $v1, $at, .L70008474 +/* 009068 70008468 240B1000 */ li $t3, 4096 +/* 00906C 7000846C A6AB0000 */ sh $t3, ($s5) +/* 009070 70008470 3163FFFF */ andi $v1, $t3, 0xffff +.L70008474: +/* 009074 70008474 10000118 */ b .L700088D8 +/* 009078 70008478 306202D1 */ andi $v0, $v1, 0x2d1 +glabel .L7000847C +/* 00907C 7000847C 922F003F */ lbu $t7, 0x3f($s1) +/* 009080 70008480 8EAE0008 */ lw $t6, 8($s5) +/* 009084 70008484 2625000C */ addiu $a1, $s1, 0xc +/* 009088 70008488 17CF0015 */ bne $fp, $t7, .L700084E0 +/* 00908C 7000848C A22E003C */ sb $t6, 0x3c($s1) +/* 009090 70008490 9249000C */ lbu $t1, 0xc($s2) +/* 009094 70008494 31D900FF */ andi $t9, $t6, 0xff +/* 009098 70008498 00001025 */ move $v0, $zero +/* 00909C 7000849C 03291821 */ addu $v1, $t9, $t1 +/* 0090A0 700084A0 2463FFC0 */ addiu $v1, $v1, -0x40 +/* 0090A4 700084A4 18600003 */ blez $v1, .L700084B4 +/* 0090A8 700084A8 2406007F */ li $a2, 127 +/* 0090AC 700084AC 10000001 */ b .L700084B4 +/* 0090B0 700084B0 00601025 */ move $v0, $v1 +.L700084B4: +/* 0090B4 700084B4 2841007F */ slti $at, $v0, 0x7f +/* 0090B8 700084B8 10200007 */ beqz $at, .L700084D8 +/* 0090BC 700084BC 00000000 */ nop +/* 0090C0 700084C0 18600003 */ blez $v1, .L700084D0 +/* 0090C4 700084C4 00001025 */ move $v0, $zero +/* 0090C8 700084C8 10000003 */ b .L700084D8 +/* 0090CC 700084CC 306600FF */ andi $a2, $v1, 0xff +.L700084D0: +/* 0090D0 700084D0 10000001 */ b .L700084D8 +/* 0090D4 700084D4 304600FF */ andi $a2, $v0, 0xff +.L700084D8: +/* 0090D8 700084D8 0C004D34 */ jal alSynSetPan +/* 0090DC 700084DC 8EE40038 */ lw $a0, 0x38($s7) +.L700084E0: +/* 0090E0 700084E0 96A20000 */ lhu $v0, ($s5) +/* 0090E4 700084E4 304802D1 */ andi $t0, $v0, 0x2d1 +/* 0090E8 700084E8 100000FB */ b .L700088D8 +/* 0090EC 700084EC 01001025 */ move $v0, $t0 +glabel .L700084F0 +/* 0090F0 700084F0 922A003F */ lbu $t2, 0x3f($s1) +/* 0090F4 700084F4 C6A40008 */ lwc1 $f4, 8($s5) +/* 0090F8 700084F8 17CA000F */ bne $fp, $t2, .L70008538 +/* 0090FC 700084FC E624002C */ swc1 $f4, 0x2c($s1) +/* 009100 70008500 C626002C */ lwc1 $f6, 0x2c($s1) +/* 009104 70008504 C6280028 */ lwc1 $f8, 0x28($s1) +/* 009108 70008508 8EE40038 */ lw $a0, 0x38($s7) +/* 00910C 7000850C 2625000C */ addiu $a1, $s1, 0xc +/* 009110 70008510 46083282 */ mul.s $f10, $f6, $f8 +/* 009114 70008514 44065000 */ mfc1 $a2, $f10 +/* 009118 70008518 0C004D58 */ jal alSynSetPitch +/* 00911C 7000851C 00000000 */ nop +/* 009120 70008520 922C003E */ lbu $t4, 0x3e($s1) +/* 009124 70008524 31980020 */ andi $t8, $t4, 0x20 +/* 009128 70008528 53000004 */ beql $t8, $zero, .L7000853C +/* 00912C 7000852C 96A20000 */ lhu $v0, ($s5) +/* 009130 70008530 0C002271 */ jal sfx_c_700089C4 +/* 009134 70008534 02202025 */ move $a0, $s1 +.L70008538: +/* 009138 70008538 96A20000 */ lhu $v0, ($s5) +.L7000853C: +/* 00913C 7000853C 304D02D1 */ andi $t5, $v0, 0x2d1 +/* 009140 70008540 100000E5 */ b .L700088D8 +/* 009144 70008544 01A01025 */ move $v0, $t5 +/* 009148 70008548 922E003F */ lbu $t6, 0x3f($s1) +.L7000854C: +/* 00914C 7000854C 8EAB0008 */ lw $t3, 8($s5) +/* 009150 70008550 2625000C */ addiu $a1, $s1, 0xc +/* 009154 70008554 17CE0018 */ bne $fp, $t6, .L700085B8 +/* 009158 70008558 A22B003D */ sb $t3, 0x3d($s1) +/* 00915C 7000855C 92D90003 */ lbu $t9, 3($s6) +/* 009160 70008560 316F00FF */ andi $t7, $t3, 0xff +/* 009164 70008564 3329000F */ andi $t1, $t9, 0xf +/* 009168 70008568 01E91821 */ addu $v1, $t7, $t1 +/* 00916C 7000856C 000340C0 */ sll $t0, $v1, 3 +/* 009170 70008570 05010003 */ bgez $t0, .L70008580 +/* 009174 70008574 01001825 */ move $v1, $t0 +/* 009178 70008578 10000002 */ b .L70008584 +/* 00917C 7000857C 00001025 */ move $v0, $zero +.L70008580: +/* 009180 70008580 00601025 */ move $v0, $v1 +.L70008584: +/* 009184 70008584 28410080 */ slti $at, $v0, 0x80 +/* 009188 70008588 14200003 */ bnez $at, .L70008598 +/* 00918C 7000858C 00000000 */ nop +/* 009190 70008590 10000006 */ b .L700085AC +/* 009194 70008594 2403007F */ li $v1, 127 +.L70008598: +/* 009198 70008598 04610003 */ bgez $v1, .L700085A8 +/* 00919C 7000859C 00601025 */ move $v0, $v1 +/* 0091A0 700085A0 10000001 */ b .L700085A8 +/* 0091A4 700085A4 00001025 */ move $v0, $zero +.L700085A8: +/* 0091A8 700085A8 00401825 */ move $v1, $v0 +.L700085AC: +/* 0091AC 700085AC 8EE40038 */ lw $a0, 0x38($s7) +/* 0091B0 700085B0 0C004D7C */ jal alSynSetFXMix +/* 0091B4 700085B4 306600FF */ andi $a2, $v1, 0xff +.L700085B8: +/* 0091B8 700085B8 96A20000 */ lhu $v0, ($s5) +/* 0091BC 700085BC 304A02D1 */ andi $t2, $v0, 0x2d1 +/* 0091C0 700085C0 100000C5 */ b .L700088D8 +/* 0091C4 700085C4 01401025 */ move $v0, $t2 +glabel .L700085C8 +/* 0091C8 700085C8 9238003F */ lbu $t8, 0x3f($s1) +/* 0091CC 700085CC 8EAC0008 */ lw $t4, 8($s5) +/* 0091D0 700085D0 2625000C */ addiu $a1, $s1, 0xc +/* 0091D4 700085D4 17D8002A */ bne $fp, $t8, .L70008680 +/* 0091D8 700085D8 A62C0034 */ sh $t4, 0x34($s1) +/* 0091DC 700085DC 8E480000 */ lw $t0, ($s2) +/* 0091E0 700085E0 862C0034 */ lh $t4, 0x34($s1) +/* 0091E4 700085E4 92CB0002 */ lbu $t3, 2($s6) +/* 0091E8 700085E8 910A000D */ lbu $t2, 0xd($t0) +/* 0091EC 700085EC 24013F01 */ li $at, 16129 +/* 0091F0 700085F0 316E003F */ andi $t6, $t3, 0x3f +/* 0091F4 700085F4 014C0019 */ multu $t2, $t4 +/* 0091F8 700085F8 924B000D */ lbu $t3, 0xd($s2) +/* 0091FC 700085FC 000EC840 */ sll $t9, $t6, 1 +/* 009200 70008600 3C0D8006 */ lui $t5, %hi(D_80063BA4) +/* 009204 70008604 8DAD3BA4 */ lw $t5, %lo(D_80063BA4)($t5) +/* 009208 70008608 240703E8 */ li $a3, 1000 +/* 00920C 7000860C 01B97821 */ addu $t7, $t5, $t9 +/* 009210 70008610 85E90000 */ lh $t1, ($t7) +/* 009214 70008614 0000C012 */ mflo $t8 +/* 009218 70008618 00000000 */ nop +/* 00921C 7000861C 00000000 */ nop +/* 009220 70008620 030B0019 */ multu $t8, $t3 +/* 009224 70008624 00007012 */ mflo $t6 +/* 009228 70008628 00000000 */ nop +/* 00922C 7000862C 00000000 */ nop +/* 009230 70008630 01C1001A */ div $zero, $t6, $at +/* 009234 70008634 00006812 */ mflo $t5 +/* 009238 70008638 24017FFF */ li $at, 32767 +/* 00923C 7000863C 00000000 */ nop +/* 009240 70008640 012D0019 */ multu $t1, $t5 +/* 009244 70008644 00002012 */ mflo $a0 +/* 009248 70008648 00000000 */ nop +/* 00924C 7000864C 00000000 */ nop +/* 009250 70008650 0081001A */ div $zero, $a0, $at +/* 009254 70008654 0000C812 */ mflo $t9 +/* 009258 70008658 2724FFFF */ addiu $a0, $t9, -1 +/* 00925C 7000865C 04810003 */ bgez $a0, .L7000866C +/* 009260 70008660 00801825 */ move $v1, $a0 +/* 009264 70008664 10000001 */ b .L7000866C +/* 009268 70008668 00001825 */ move $v1, $zero +.L7000866C: +/* 00926C 7000866C 00033400 */ sll $a2, $v1, 0x10 +/* 009270 70008670 00067C03 */ sra $t7, $a2, 0x10 +/* 009274 70008674 01E03025 */ move $a2, $t7 +/* 009278 70008678 0C004CE8 */ jal alSynSetVol +/* 00927C 7000867C 8EE40038 */ lw $a0, 0x38($s7) +.L70008680: +/* 009280 70008680 96A20000 */ lhu $v0, ($s5) +/* 009284 70008684 304802D1 */ andi $t0, $v0, 0x2d1 +/* 009288 70008688 10000093 */ b .L700088D8 +/* 00928C 7000868C 01001025 */ move $v0, $t0 +.L70008690: +/* 009290 70008690 922A003F */ lbu $t2, 0x3f($s1) +/* 009294 70008694 2625000C */ addiu $a1, $s1, 0xc +/* 009298 70008698 17CA0032 */ bne $fp, $t2, .L70008764 +/* 00929C 7000869C 00000000 */ nop +/* 0092A0 700086A0 8E420000 */ lw $v0, ($s2) +/* 0092A4 700086A4 862A0034 */ lh $t2, 0x34($s1) +/* 0092A8 700086A8 9258000D */ lbu $t8, 0xd($s2) +/* 0092AC 700086AC 9048000D */ lbu $t0, 0xd($v0) +/* 0092B0 700086B0 8C4C0008 */ lw $t4, 8($v0) +/* 0092B4 700086B4 92CE0002 */ lbu $t6, 2($s6) +/* 0092B8 700086B8 010A0019 */ multu $t0, $t2 +/* 0092BC 700086BC 448C8000 */ mtc1 $t4, $f16 +/* 0092C0 700086C0 31C9003F */ andi $t1, $t6, 0x3f +/* 0092C4 700086C4 24013F01 */ li $at, 16129 +/* 0092C8 700086C8 3C0B8006 */ lui $t3, %hi(D_80063BA4) +/* 0092CC 700086CC 8D6B3BA4 */ lw $t3, %lo(D_80063BA4)($t3) +/* 0092D0 700086D0 00096840 */ sll $t5, $t1, 1 +/* 0092D4 700086D4 468084A0 */ cvt.s.w $f18, $f16 +/* 0092D8 700086D8 016DC821 */ addu $t9, $t3, $t5 +/* 0092DC 700086DC 872F0000 */ lh $t7, ($t9) +/* 0092E0 700086E0 00006012 */ mflo $t4 +/* 0092E4 700086E4 C6240028 */ lwc1 $f4, 0x28($s1) +/* 0092E8 700086E8 C628002C */ lwc1 $f8, 0x2c($s1) +/* 0092EC 700086EC 01980019 */ multu $t4, $t8 +/* 0092F0 700086F0 46049183 */ div.s $f6, $f18, $f4 +/* 0092F4 700086F4 00007012 */ mflo $t6 +/* 0092F8 700086F8 00000000 */ nop +/* 0092FC 700086FC 00000000 */ nop +/* 009300 70008700 01C1001A */ div $zero, $t6, $at +/* 009304 70008704 00004812 */ mflo $t1 +/* 009308 70008708 24017FFF */ li $at, 32767 +/* 00930C 7000870C 46083283 */ div.s $f10, $f6, $f8 +/* 009310 70008710 01E90019 */ multu $t7, $t1 +/* 009314 70008714 00002012 */ mflo $a0 +/* 009318 70008718 00000000 */ nop +/* 00931C 7000871C 00000000 */ nop +/* 009320 70008720 0081001A */ div $zero, $a0, $at +/* 009324 70008724 4600540D */ trunc.w.s $f16, $f10 +/* 009328 70008728 00005812 */ mflo $t3 +/* 00932C 7000872C 2564FFFF */ addiu $a0, $t3, -1 +/* 009330 70008730 00801825 */ move $v1, $a0 +/* 009334 70008734 44108000 */ mfc1 $s0, $f16 +/* 009338 70008738 04810003 */ bgez $a0, .L70008748 +/* 00933C 7000873C 00000000 */ nop +/* 009340 70008740 10000001 */ b .L70008748 +/* 009344 70008744 00001825 */ move $v1, $zero +.L70008748: +/* 009348 70008748 00033400 */ sll $a2, $v1, 0x10 +/* 00934C 7000874C 00066C03 */ sra $t5, $a2, 0x10 +/* 009350 70008750 01A03025 */ move $a2, $t5 +/* 009354 70008754 8EE40038 */ lw $a0, 0x38($s7) +/* 009358 70008758 0C004CE8 */ jal alSynSetVol +/* 00935C 7000875C 02003825 */ move $a3, $s0 +/* 009360 70008760 96A30000 */ lhu $v1, ($s5) +.L70008764: +/* 009364 70008764 1000005C */ b .L700088D8 +/* 009368 70008768 306202D1 */ andi $v0, $v1, 0x2d1 +/* 00936C 7000876C 9239003E */ lbu $t9, 0x3e($s1) +.L70008770: +/* 009370 70008770 33280002 */ andi $t0, $t9, 2 +/* 009374 70008774 55000043 */ bnezl $t0, .L70008884 +/* 009378 70008778 96A20000 */ lhu $v0, ($s5) +/* 00937C 7000877C 8E420000 */ lw $v0, ($s2) +/* 009380 70008780 862D0034 */ lh $t5, 0x34($s1) +/* 009384 70008784 9248000D */ lbu $t0, 0xd($s2) +/* 009388 70008788 904B000D */ lbu $t3, 0xd($v0) +/* 00938C 7000878C 92CC0002 */ lbu $t4, 2($s6) +/* 009390 70008790 24013F01 */ li $at, 16129 +/* 009394 70008794 016D0019 */ multu $t3, $t5 +/* 009398 70008798 3198003F */ andi $t8, $t4, 0x3f +/* 00939C 7000879C 3C0A8006 */ lui $t2, %hi(D_80063BA4) +/* 0093A0 700087A0 8D4A3BA4 */ lw $t2, %lo(D_80063BA4)($t2) +/* 0093A4 700087A4 00187040 */ sll $t6, $t8, 1 +/* 0093A8 700087A8 26F40014 */ addiu $s4, $s7, 0x14 +/* 0093AC 700087AC 014E7821 */ addu $t7, $t2, $t6 +/* 0093B0 700087B0 85E90000 */ lh $t1, ($t7) +/* 0093B4 700087B4 0000C812 */ mflo $t9 +/* 0093B8 700087B8 00000000 */ nop +/* 0093BC 700087BC 00000000 */ nop +/* 0093C0 700087C0 03280019 */ multu $t9, $t0 +/* 0093C4 700087C4 00006012 */ mflo $t4 +/* 0093C8 700087C8 00000000 */ nop +/* 0093CC 700087CC 00000000 */ nop +/* 0093D0 700087D0 0181001A */ div $zero, $t4, $at +/* 0093D4 700087D4 0000C012 */ mflo $t8 +/* 0093D8 700087D8 24017FFF */ li $at, 32767 +/* 0093DC 700087DC 00000000 */ nop +/* 0093E0 700087E0 01380019 */ multu $t1, $t8 +/* 0093E4 700087E4 00002012 */ mflo $a0 +/* 0093E8 700087E8 00000000 */ nop +/* 0093EC 700087EC 00000000 */ nop +/* 0093F0 700087F0 0081001A */ div $zero, $a0, $at +/* 0093F4 700087F4 00005012 */ mflo $t2 +/* 0093F8 700087F8 2544FFFF */ addiu $a0, $t2, -1 +/* 0093FC 700087FC 04810003 */ bgez $a0, .L7000880C +/* 009400 70008800 00801825 */ move $v1, $a0 +/* 009404 70008804 10000001 */ b .L7000880C +/* 009408 70008808 00001825 */ move $v1, $zero +.L7000880C: +/* 00940C 7000880C 8C4E0004 */ lw $t6, 4($v0) +/* 009410 70008810 C6260028 */ lwc1 $f6, 0x28($s1) +/* 009414 70008814 C62A002C */ lwc1 $f10, 0x2c($s1) +/* 009418 70008818 448E9000 */ mtc1 $t6, $f18 +/* 00941C 7000881C 00033400 */ sll $a2, $v1, 0x10 +/* 009420 70008820 00065C03 */ sra $t3, $a2, 0x10 +/* 009424 70008824 46809120 */ cvt.s.w $f4, $f18 +/* 009428 70008828 01603025 */ move $a2, $t3 +/* 00942C 7000882C 8EE40038 */ lw $a0, 0x38($s7) +/* 009430 70008830 2625000C */ addiu $a1, $s1, 0xc +/* 009434 70008834 46062203 */ div.s $f8, $f4, $f6 +/* 009438 70008838 460A4403 */ div.s $f16, $f8, $f10 +/* 00943C 7000883C 4600848D */ trunc.w.s $f18, $f16 +/* 009440 70008840 44109000 */ mfc1 $s0, $f18 +/* 009444 70008844 0C004CE8 */ jal alSynSetVol +/* 009448 70008848 02003825 */ move $a3, $s0 +/* 00944C 7000884C 240D0002 */ li $t5, 2 +/* 009450 70008850 A7AD00AC */ sh $t5, 0xac($sp) +/* 009454 70008854 AFB100B0 */ sw $s1, 0xb0($sp) +/* 009458 70008858 02802025 */ move $a0, $s4 +/* 00945C 7000885C 27A500AC */ addiu $a1, $sp, 0xac +/* 009460 70008860 0C004BBF */ jal alEvtqPostEvent +/* 009464 70008864 02003025 */ move $a2, $s0 +/* 009468 70008868 9239003E */ lbu $t9, 0x3e($s1) +/* 00946C 7000886C 33280020 */ andi $t0, $t9, 0x20 +/* 009470 70008870 51000004 */ beql $t0, $zero, .L70008884 +/* 009474 70008874 96A20000 */ lhu $v0, ($s5) +/* 009478 70008878 0C002271 */ jal sfx_c_700089C4 +/* 00947C 7000887C 02202025 */ move $a0, $s1 +/* 009480 70008880 96A20000 */ lhu $v0, ($s5) +.L70008884: +/* 009484 70008884 304C02D1 */ andi $t4, $v0, 0x2d1 +/* 009488 70008888 10000013 */ b .L700088D8 +/* 00948C 7000888C 01801025 */ move $v0, $t4 +.L70008890: +/* 009490 70008890 0C002252 */ jal sfx_c_70008948 +/* 009494 70008894 02202025 */ move $a0, $s1 +/* 009498 70008898 96A20000 */ lhu $v0, ($s5) +/* 00949C 7000889C 304902D1 */ andi $t1, $v0, 0x2d1 +/* 0094A0 700088A0 1000000D */ b .L700088D8 +/* 0094A4 700088A4 01201025 */ move $v0, $t1 +.L700088A8: +/* 0094A8 700088A8 9238003E */ lbu $t8, 0x3e($s1) +/* 0094AC 700088AC 330A0010 */ andi $t2, $t8, 0x10 +/* 0094B0 700088B0 11400006 */ beqz $t2, .L700088CC +/* 0094B4 700088B4 00000000 */ nop +/* 0094B8 700088B8 8EA4000C */ lw $a0, 0xc($s5) +/* 0094BC 700088BC 86A5000A */ lh $a1, 0xa($s5) +/* 0094C0 700088C0 0C002382 */ jal play_sfx_a1 +/* 0094C4 700088C4 8E260030 */ lw $a2, 0x30($s1) +/* 0094C8 700088C8 96A30000 */ lhu $v1, ($s5) +.L700088CC: +/* 0094CC 700088CC 10000002 */ b .L700088D8 +/* 0094D0 700088D0 306202D1 */ andi $v0, $v1, 0x2d1 +glabel .L700088D4 +/* 0094D4 700088D4 306202D1 */ andi $v0, $v1, 0x2d1 +.L700088D8: +/* 0094D8 700088D8 8FA30074 */ lw $v1, 0x74($sp) +/* 0094DC 700088DC 10600006 */ beqz $v1, .L700088F8 +/* 0094E0 700088E0 00608825 */ move $s1, $v1 +/* 0094E4 700088E4 54400005 */ bnezl $v0, .L700088FC +/* 0094E8 700088E8 8FAB0080 */ lw $t3, 0x80($sp) +/* 0094EC 700088EC 906E003E */ lbu $t6, 0x3e($v1) +/* 0094F0 700088F0 31CF0001 */ andi $t7, $t6, 1 +/* 0094F4 700088F4 AFAF0080 */ sw $t7, 0x80($sp) +.L700088F8: +/* 0094F8 700088F8 8FAB0080 */ lw $t3, 0x80($sp) +.L700088FC: +/* 0094FC 700088FC 55600007 */ bnezl $t3, .L7000891C +/* 009500 70008900 8FBF003C */ lw $ra, 0x3c($sp) +/* 009504 70008904 50600005 */ beql $v1, $zero, .L7000891C +/* 009508 70008908 8FBF003C */ lw $ra, 0x3c($sp) +/* 00950C 7000890C 5040FD70 */ beql $v0, $zero, .L70007ED0 +/* 009510 70008910 8FAF0074 */ lw $t7, 0x74($sp) +/* 009514 70008914 AFB10078 */ sw $s1, 0x78($sp) +/* 009518 70008918 8FBF003C */ lw $ra, 0x3c($sp) +.L7000891C: +/* 00951C 7000891C 8FB00018 */ lw $s0, 0x18($sp) +/* 009520 70008920 8FB1001C */ lw $s1, 0x1c($sp) +/* 009524 70008924 8FB20020 */ lw $s2, 0x20($sp) +/* 009528 70008928 8FB30024 */ lw $s3, 0x24($sp) +/* 00952C 7000892C 8FB40028 */ lw $s4, 0x28($sp) +/* 009530 70008930 8FB5002C */ lw $s5, 0x2c($sp) +/* 009534 70008934 8FB60030 */ lw $s6, 0x30($sp) +/* 009538 70008938 8FB70034 */ lw $s7, 0x34($sp) +/* 00953C 7000893C 8FBE0038 */ lw $fp, 0x38($sp) +/* 009540 70008940 03E00008 */ jr $ra +/* 009544 70008944 27BD00D0 */ addiu $sp, $sp, 0xd0 + +.late_rodata +glabel jpt_80029160 + .word .L70007FBC + .word .L70008388 + .word .L700088D4 + .word .L7000847C + .word .L700088D4 + .word .L700088D4 + .word .L700088D4 + .word .L700085C8 + .word .L700088D4 + .word .L700088D4 + .word .L700088D4 + .word .L700088D4 + .word .L700088D4 + .word .L700088D4 + .word .L700088D4 + .word .L700084F0 + +) +#endif + + + + + + +/** + * 9548 70008948 + */ + +#ifdef NONMATCHING +void sfx_c_70008948(void *arg0) +{ + if ((arg0->unk3E & 4) != 0) + { + alSynStopVoice(D_800243F0->unk38, (arg0 + 0xc)); + alSynFreeVoice(D_800243F0->unk38, sp1C); + } + sfx_c_70008D04(arg0); + sfx_c_70008A30((D_800243F0 + 0x14), arg0, 0xffff); +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70008948 +/* 009548 70008948 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00954C 7000894C AFBF0014 */ sw $ra, 0x14($sp) +/* 009550 70008950 AFA40020 */ sw $a0, 0x20($sp) +/* 009554 70008954 908F003E */ lbu $t7, 0x3e($a0) +/* 009558 70008958 00807025 */ move $t6, $a0 +/* 00955C 7000895C 3C198002 */ lui $t9, %hi(D_800243F0) +/* 009560 70008960 31F80004 */ andi $t8, $t7, 4 +/* 009564 70008964 1300000B */ beqz $t8, .L70008994 +/* 009568 70008968 00000000 */ nop +/* 00956C 7000896C 8F3943F0 */ lw $t9, %lo(D_800243F0)($t9) +/* 009570 70008970 25C5000C */ addiu $a1, $t6, 0xc +/* 009574 70008974 8F240038 */ lw $a0, 0x38($t9) +/* 009578 70008978 0C004DA4 */ jal alSynStopVoice +/* 00957C 7000897C AFA5001C */ sw $a1, 0x1c($sp) +/* 009580 70008980 3C088002 */ lui $t0, %hi(D_800243F0) +/* 009584 70008984 8D0843F0 */ lw $t0, %lo(D_800243F0)($t0) +/* 009588 70008988 8FA5001C */ lw $a1, 0x1c($sp) +/* 00958C 7000898C 0C004DC4 */ jal alSynFreeVoice +/* 009590 70008990 8D040038 */ lw $a0, 0x38($t0) +.L70008994: +/* 009594 70008994 0C002341 */ jal sfx_c_70008D04 +/* 009598 70008998 8FA40020 */ lw $a0, 0x20($sp) +/* 00959C 7000899C 3C048002 */ lui $a0, %hi(D_800243F0) +/* 0095A0 700089A0 8C8443F0 */ lw $a0, %lo(D_800243F0)($a0) +/* 0095A4 700089A4 8FA50020 */ lw $a1, 0x20($sp) +/* 0095A8 700089A8 3406FFFF */ li $a2, 65535 +/* 0095AC 700089AC 0C00228C */ jal sfx_c_70008A30 +/* 0095B0 700089B0 24840014 */ addiu $a0, $a0, 0x14 +/* 0095B4 700089B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0095B8 700089B8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0095BC 700089BC 03E00008 */ jr $ra +/* 0095C0 700089C0 00000000 */ nop +) +#endif + + + + + + + + + + +/** + * 95C4 700089C4 + */ + +#ifdef NONMATCHING +void sfx_c_700089C4(void *arg0) +{ + f32 sp28; + s16 sp20; + f32 sp1C; + + sp20 = (u16)0x10; + sp1C = (f32) (alCents2Ratio(arg0->unk8->unk4->unk5, arg0) * arg0->unk2C); + sp28 = sp1C; + alEvtqPostEvent((D_800243F0 + 0x14), &sp20, 0x8235, arg0); +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_700089C4 +/* 0095C4 700089C4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0095C8 700089C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0095CC 700089CC 8C8E0008 */ lw $t6, 8($a0) +/* 0095D0 700089D0 00803825 */ move $a3, $a0 +/* 0095D4 700089D4 8DCF0004 */ lw $t7, 4($t6) +/* 0095D8 700089D8 81E40005 */ lb $a0, 5($t7) +/* 0095DC 700089DC 0C004DF0 */ jal alCents2Ratio +/* 0095E0 700089E0 AFA70030 */ sw $a3, 0x30($sp) +/* 0095E4 700089E4 8FA70030 */ lw $a3, 0x30($sp) +/* 0095E8 700089E8 3C048002 */ lui $a0, %hi(D_800243F0) +/* 0095EC 700089EC 8C8443F0 */ lw $a0, %lo(D_800243F0)($a0) +/* 0095F0 700089F0 C4E4002C */ lwc1 $f4, 0x2c($a3) +/* 0095F4 700089F4 24180010 */ li $t8, 16 +/* 0095F8 700089F8 A7B80020 */ sh $t8, 0x20($sp) +/* 0095FC 700089FC 46040182 */ mul.s $f6, $f0, $f4 +/* 009600 70008A00 27A50020 */ addiu $a1, $sp, 0x20 +/* 009604 70008A04 34068235 */ li $a2, 33333 +/* 009608 70008A08 AFA70024 */ sw $a3, 0x24($sp) +/* 00960C 70008A0C 24840014 */ addiu $a0, $a0, 0x14 +/* 009610 70008A10 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 009614 70008A14 8FB9001C */ lw $t9, 0x1c($sp) +/* 009618 70008A18 0C004BBF */ jal alEvtqPostEvent +/* 00961C 70008A1C AFB90028 */ sw $t9, 0x28($sp) +/* 009620 70008A20 8FBF0014 */ lw $ra, 0x14($sp) +/* 009624 70008A24 27BD0030 */ addiu $sp, $sp, 0x30 +/* 009628 70008A28 03E00008 */ jr $ra +/* 00962C 70008A2C 00000000 */ nop +) +#endif + + + + + + + + + + +/** + * 9630 70008A30 + */ + +#ifdef NONMATCHING +void sfx_c_70008A30(void *arg0, s32 arg1, s32 arg2) +{ + s32 sp30; + void *temp_s1; + void *phi_s0; + + sp30 = osSetIntMask(1); + phi_s0 = arg0->unk8; + if (arg0->unk8 != 0) + { +block_1: + temp_s1 = *phi_s0; + if (arg1 == phi_s0->unk10) + { + if ((phi_s0->unkC & (arg2 & 0xffff)) != 0) + { + if (temp_s1 != 0) + { + temp_s1->unk8 = (s32) (temp_s1->unk8 + phi_s0->unk8); + } + alUnlink(phi_s0); + alLink(phi_s0, arg0); + } + } + phi_s0 = temp_s1; + if (temp_s1 != 0) + { + goto block_1; + } + } + osSetIntMask(sp30); +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70008A30 +/* 009630 70008A30 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 009634 70008A34 AFB20020 */ sw $s2, 0x20($sp) +/* 009638 70008A38 00809025 */ move $s2, $a0 +/* 00963C 70008A3C AFBF002C */ sw $ra, 0x2c($sp) +/* 009640 70008A40 AFB40028 */ sw $s4, 0x28($sp) +/* 009644 70008A44 AFB30024 */ sw $s3, 0x24($sp) +/* 009648 70008A48 00A09825 */ move $s3, $a1 +/* 00964C 70008A4C 30D4FFFF */ andi $s4, $a2, 0xffff +/* 009650 70008A50 AFB1001C */ sw $s1, 0x1c($sp) +/* 009654 70008A54 AFB00018 */ sw $s0, 0x18($sp) +/* 009658 70008A58 AFA60050 */ sw $a2, 0x50($sp) +/* 00965C 70008A5C 0C00374C */ jal osSetIntMask +/* 009660 70008A60 24040001 */ li $a0, 1 +/* 009664 70008A64 AFA20030 */ sw $v0, 0x30($sp) +/* 009668 70008A68 8E500008 */ lw $s0, 8($s2) +/* 00966C 70008A6C 12000016 */ beqz $s0, .L70008AC8 +/* 009670 70008A70 00000000 */ nop +.L70008A74: +/* 009674 70008A74 8E0E0010 */ lw $t6, 0x10($s0) +/* 009678 70008A78 8E110000 */ lw $s1, ($s0) +/* 00967C 70008A7C 166E0010 */ bne $s3, $t6, .L70008AC0 +/* 009680 70008A80 00000000 */ nop +/* 009684 70008A84 960F000C */ lhu $t7, 0xc($s0) +/* 009688 70008A88 01F4C024 */ and $t8, $t7, $s4 +/* 00968C 70008A8C 1300000C */ beqz $t8, .L70008AC0 +/* 009690 70008A90 00000000 */ nop +/* 009694 70008A94 12200005 */ beqz $s1, .L70008AAC +/* 009698 70008A98 00000000 */ nop +/* 00969C 70008A9C 8E390008 */ lw $t9, 8($s1) +/* 0096A0 70008AA0 8E080008 */ lw $t0, 8($s0) +/* 0096A4 70008AA4 03284821 */ addu $t1, $t9, $t0 +/* 0096A8 70008AA8 AE290008 */ sw $t1, 8($s1) +.L70008AAC: +/* 0096AC 70008AAC 0C003AA4 */ jal alUnlink +/* 0096B0 70008AB0 02002025 */ move $a0, $s0 +/* 0096B4 70008AB4 02002025 */ move $a0, $s0 +/* 0096B8 70008AB8 0C003AB0 */ jal alLink +/* 0096BC 70008ABC 02402825 */ move $a1, $s2 +.L70008AC0: +/* 0096C0 70008AC0 1620FFEC */ bnez $s1, .L70008A74 +/* 0096C4 70008AC4 02208025 */ move $s0, $s1 +.L70008AC8: +/* 0096C8 70008AC8 0C00374C */ jal osSetIntMask +/* 0096CC 70008ACC 8FA40030 */ lw $a0, 0x30($sp) +/* 0096D0 70008AD0 8FBF002C */ lw $ra, 0x2c($sp) +/* 0096D4 70008AD4 8FB00018 */ lw $s0, 0x18($sp) +/* 0096D8 70008AD8 8FB1001C */ lw $s1, 0x1c($sp) +/* 0096DC 70008ADC 8FB20020 */ lw $s2, 0x20($sp) +/* 0096E0 70008AE0 8FB30024 */ lw $s3, 0x24($sp) +/* 0096E4 70008AE4 8FB40028 */ lw $s4, 0x28($sp) +/* 0096E8 70008AE8 03E00008 */ jr $ra +/* 0096EC 70008AEC 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + + + + + +/** + * 96F0 70008AF0 + */ + +#ifdef NONMATCHING +s32 sfx_c_70008AF0(void *arg0, void *arg1) +{ + void *temp_v0; + s16 temp_t6; + void *temp_v1; + s16 temp_t7; + void *temp_a2; + s32 temp_t8; + void *phi_v0; + void *phi_v1; + void *phi_a2; + s16 phi_a0; + s16 phi_a3; + s32 phi_v1_2; + s16 phi_a0_2; + s16 phi_a3_2; + s32 phi_v1_3; + + phi_v0 = D_800243E4; + phi_a3 = (u16)0; + phi_a3_2 = (u16)0; + if (D_800243E4 != 0) + { +block_1: + temp_v0 = *phi_v0; + temp_t6 = ((phi_a3_2 + 1) & 0xffff); + phi_v0 = temp_v0; + phi_a3 = temp_t6; + phi_a3_2 = temp_t6; + if (temp_v0 != 0) + { + goto block_1; + } + } + phi_v1 = D_800243E4.unk8; + phi_a0 = (u16)0; + phi_a0_2 = (u16)0; + if (D_800243E4.unk8 != 0) + { +block_3: + temp_v1 = *phi_v1; + temp_t7 = ((phi_a0_2 + 1) & 0xffff); + phi_v1 = temp_v1; + phi_a0 = temp_t7; + phi_a0_2 = temp_t7; + if (temp_v1 != 0) + { + goto block_3; + } + } + phi_a2 = D_800243E4.unk4; + phi_v1_2 = 0; + phi_v1_3 = 0; + if (D_800243E4.unk4 != 0) + { +block_5: + temp_a2 = phi_a2->unk4; + temp_t8 = ((phi_v1_3 + 1) & 0xffff); + phi_a2 = temp_a2; + phi_v1_2 = temp_t8; + phi_v1_3 = temp_t8; + if (temp_a2 != 0) + { + goto block_5; + } + } + *arg0 = (s16) phi_a0; + *arg1 = (s16) phi_a3; + return phi_v1_2; +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70008AF0 +/* 0096F0 70008AF0 3C088002 */ lui $t0, %hi(D_800243E4) +/* 0096F4 70008AF4 250843E4 */ addiu $t0, %lo(D_800243E4) # addiu $t0, $t0, 0x43e4 +/* 0096F8 70008AF8 8D020000 */ lw $v0, ($t0) +/* 0096FC 70008AFC AFA40000 */ sw $a0, ($sp) +/* 009700 70008B00 8D030008 */ lw $v1, 8($t0) +/* 009704 70008B04 8D060004 */ lw $a2, 4($t0) +/* 009708 70008B08 10400006 */ beqz $v0, .L70008B24 +/* 00970C 70008B0C 00003825 */ move $a3, $zero +.L70008B10: +/* 009710 70008B10 8C420000 */ lw $v0, ($v0) +/* 009714 70008B14 24E70001 */ addiu $a3, $a3, 1 +/* 009718 70008B18 30EEFFFF */ andi $t6, $a3, 0xffff +/* 00971C 70008B1C 1440FFFC */ bnez $v0, .L70008B10 +/* 009720 70008B20 01C03825 */ move $a3, $t6 +.L70008B24: +/* 009724 70008B24 10600006 */ beqz $v1, .L70008B40 +/* 009728 70008B28 00002025 */ move $a0, $zero +.L70008B2C: +/* 00972C 70008B2C 8C630000 */ lw $v1, ($v1) +/* 009730 70008B30 24840001 */ addiu $a0, $a0, 1 +/* 009734 70008B34 308FFFFF */ andi $t7, $a0, 0xffff +/* 009738 70008B38 1460FFFC */ bnez $v1, .L70008B2C +/* 00973C 70008B3C 01E02025 */ move $a0, $t7 +.L70008B40: +/* 009740 70008B40 10C00006 */ beqz $a2, .L70008B5C +/* 009744 70008B44 00001825 */ move $v1, $zero +.L70008B48: +/* 009748 70008B48 8CC60004 */ lw $a2, 4($a2) +/* 00974C 70008B4C 24630001 */ addiu $v1, $v1, 1 +/* 009750 70008B50 3078FFFF */ andi $t8, $v1, 0xffff +/* 009754 70008B54 14C0FFFC */ bnez $a2, .L70008B48 +/* 009758 70008B58 03001825 */ move $v1, $t8 +.L70008B5C: +/* 00975C 70008B5C 8FB90000 */ lw $t9, ($sp) +/* 009760 70008B60 00601025 */ move $v0, $v1 +/* 009764 70008B64 A7240000 */ sh $a0, ($t9) +/* 009768 70008B68 03E00008 */ jr $ra +/* 00976C 70008B6C A4A70000 */ sh $a3, ($a1) +) +#endif + + + + + + +/** + * 9770 70008B70 + * accepts: A0=sound data offset?, A1=sample address? + */ + +#ifdef NONMATCHING +void *sfx_c_70008B70(s32 arg0, void *arg1) +{ + s32 sp28; + s8 temp_a1; + s8 temp_t5; + + if (D_800243E4.unk8 != 0) + { + sp28 = osSetIntMask(1, arg1->unk4); + D_800243E4.unk8 = (void *) *D_800243E4.unk8; + alUnlink(D_800243E4.unk8); + if (D_800243E4 != 0) + { + *D_800243E4.unk8 = (void *) D_800243E4; + D_800243E4.unk8->unk4 = 0; + D_800243E4->unk4 = (void *) D_800243E4.unk8; + D_800243E4 = (void *) D_800243E4.unk8; + } + else + { + D_800243E4.unk8->unk4 = 0; + *D_800243E4.unk8 = NULL; + D_800243E4 = (void *) D_800243E4.unk8; + D_800243E4.unk4 = (void *) D_800243E4.unk8; + } + osSetIntMask(sp28, sp30); + D_800243E4.unk8->unk3F = (u8)5; + temp_a1 = (((u32) ((*arg1)->unk4 + 1) < 1U) + 0x40); + D_800243E4.unk8->unk36 = temp_a1; + D_800243E4.unk8->unk38 = 2; + D_800243E4.unk8->unk8 = arg1; + D_800243E4.unk8->unk2C = 1.0f; + D_800243E4.unk8->unk30 = 0; + temp_t5 = (sp30->unk3 & 0xf0); + D_800243E4.unk8->unk3E = temp_t5; + if ((temp_t5 & 0x20) != 0) + { + D_800243E4.unk8->unk28 = alCents2Ratio(((sp30->unk4 * 0x64) + -0x1770), temp_a1, sp30); + } + else + { + D_800243E4.unk8->unk28 = alCents2Ratio((((sp30->unk4 * 0x64) + sp30->unk5) + -0x1770), temp_a1, sp30); + } + if (sp24 != 0x40) + { + D_800243E4.unk8->unk3E = (s8) (D_800243E4.unk8->unk3E | 2); + } + D_800243E4.unk8->unk3D = (u8)0; + D_800243E4.unk8->unk3C = (u8)0x40; + D_800243E4.unk8->unk34 = (u16)0x7fff; + } + return D_800243E4.unk8; +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70008B70 +/* 009770 70008B70 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 009774 70008B74 3C038002 */ lui $v1, %hi(D_800243E4) +/* 009778 70008B78 246343E4 */ addiu $v1, %lo(D_800243E4) # addiu $v1, $v1, 0x43e4 +/* 00977C 70008B7C AFB00018 */ sw $s0, 0x18($sp) +/* 009780 70008B80 8C700008 */ lw $s0, 8($v1) +/* 009784 70008B84 AFBF001C */ sw $ra, 0x1c($sp) +/* 009788 70008B88 AFA40038 */ sw $a0, 0x38($sp) +/* 00978C 70008B8C AFA5003C */ sw $a1, 0x3c($sp) +/* 009790 70008B90 12000057 */ beqz $s0, .L70008CF0 +/* 009794 70008B94 8CA60004 */ lw $a2, 4($a1) +/* 009798 70008B98 24040001 */ li $a0, 1 +/* 00979C 70008B9C 0C00374C */ jal osSetIntMask +/* 0097A0 70008BA0 AFA60030 */ sw $a2, 0x30($sp) +/* 0097A4 70008BA4 AFA20028 */ sw $v0, 0x28($sp) +/* 0097A8 70008BA8 8E0F0000 */ lw $t7, ($s0) +/* 0097AC 70008BAC 3C038002 */ lui $v1, %hi(D_800243E4) +/* 0097B0 70008BB0 246343E4 */ addiu $v1, %lo(D_800243E4) # addiu $v1, $v1, 0x43e4 +/* 0097B4 70008BB4 02002025 */ move $a0, $s0 +/* 0097B8 70008BB8 0C003AA4 */ jal alUnlink +/* 0097BC 70008BBC AC6F0008 */ sw $t7, 8($v1) +/* 0097C0 70008BC0 3C038002 */ lui $v1, %hi(D_800243E4) +/* 0097C4 70008BC4 246343E4 */ addiu $v1, %lo(D_800243E4) # addiu $v1, $v1, 0x43e4 +/* 0097C8 70008BC8 8C620000 */ lw $v0, ($v1) +/* 0097CC 70008BCC 8FA60030 */ lw $a2, 0x30($sp) +/* 0097D0 70008BD0 50400008 */ beql $v0, $zero, .L70008BF4 +/* 0097D4 70008BD4 AE000004 */ sw $zero, 4($s0) +/* 0097D8 70008BD8 AE020000 */ sw $v0, ($s0) +/* 0097DC 70008BDC AE000004 */ sw $zero, 4($s0) +/* 0097E0 70008BE0 8C780000 */ lw $t8, ($v1) +/* 0097E4 70008BE4 AF100004 */ sw $s0, 4($t8) +/* 0097E8 70008BE8 10000005 */ b .L70008C00 +/* 0097EC 70008BEC AC700000 */ sw $s0, ($v1) +/* 0097F0 70008BF0 AE000004 */ sw $zero, 4($s0) +.L70008BF4: +/* 0097F4 70008BF4 AE000000 */ sw $zero, ($s0) +/* 0097F8 70008BF8 AC700000 */ sw $s0, ($v1) +/* 0097FC 70008BFC AC700004 */ sw $s0, 4($v1) +.L70008C00: +/* 009800 70008C00 8FA40028 */ lw $a0, 0x28($sp) +/* 009804 70008C04 0C00374C */ jal osSetIntMask +/* 009808 70008C08 AFA60030 */ sw $a2, 0x30($sp) +/* 00980C 70008C0C 8FA4003C */ lw $a0, 0x3c($sp) +/* 009810 70008C10 8FA60030 */ lw $a2, 0x30($sp) +/* 009814 70008C14 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 009818 70008C18 8C990000 */ lw $t9, ($a0) +/* 00981C 70008C1C 44812000 */ mtc1 $at, $f4 +/* 009820 70008C20 24090005 */ li $t1, 5 +/* 009824 70008C24 8F230004 */ lw $v1, 4($t9) +/* 009828 70008C28 240A0002 */ li $t2, 2 +/* 00982C 70008C2C A209003F */ sb $t1, 0x3f($s0) +/* 009830 70008C30 24680001 */ addiu $t0, $v1, 1 +/* 009834 70008C34 2D080001 */ sltiu $t0, $t0, 1 +/* 009838 70008C38 25050040 */ addiu $a1, $t0, 0x40 +/* 00983C 70008C3C A2050036 */ sb $a1, 0x36($s0) +/* 009840 70008C40 AE0A0038 */ sw $t2, 0x38($s0) +/* 009844 70008C44 AE040008 */ sw $a0, 8($s0) +/* 009848 70008C48 E604002C */ swc1 $f4, 0x2c($s0) +/* 00984C 70008C4C 90CB0003 */ lbu $t3, 3($a2) +/* 009850 70008C50 AE000030 */ sw $zero, 0x30($s0) +/* 009854 70008C54 316D00F0 */ andi $t5, $t3, 0xf0 +/* 009858 70008C58 31AE0020 */ andi $t6, $t5, 0x20 +/* 00985C 70008C5C 11C0000D */ beqz $t6, .L70008C94 +/* 009860 70008C60 A20D003E */ sb $t5, 0x3e($s0) +/* 009864 70008C64 90C40004 */ lbu $a0, 4($a2) +/* 009868 70008C68 AFA50024 */ sw $a1, 0x24($sp) +/* 00986C 70008C6C 00047880 */ sll $t7, $a0, 2 +/* 009870 70008C70 01E47823 */ subu $t7, $t7, $a0 +/* 009874 70008C74 000F78C0 */ sll $t7, $t7, 3 +/* 009878 70008C78 01E47821 */ addu $t7, $t7, $a0 +/* 00987C 70008C7C 000F7880 */ sll $t7, $t7, 2 +/* 009880 70008C80 0C004DF0 */ jal alCents2Ratio +/* 009884 70008C84 25E4E890 */ addiu $a0, $t7, -0x1770 +/* 009888 70008C88 8FA50024 */ lw $a1, 0x24($sp) +/* 00988C 70008C8C 1000000E */ b .L70008CC8 +/* 009890 70008C90 E6000028 */ swc1 $f0, 0x28($s0) +.L70008C94: +/* 009894 70008C94 90D80004 */ lbu $t8, 4($a2) +/* 009898 70008C98 80C80005 */ lb $t0, 5($a2) +/* 00989C 70008C9C AFA50024 */ sw $a1, 0x24($sp) +/* 0098A0 70008CA0 0018C880 */ sll $t9, $t8, 2 +/* 0098A4 70008CA4 0338C823 */ subu $t9, $t9, $t8 +/* 0098A8 70008CA8 0019C8C0 */ sll $t9, $t9, 3 +/* 0098AC 70008CAC 0338C821 */ addu $t9, $t9, $t8 +/* 0098B0 70008CB0 0019C880 */ sll $t9, $t9, 2 +/* 0098B4 70008CB4 03282021 */ addu $a0, $t9, $t0 +/* 0098B8 70008CB8 0C004DF0 */ jal alCents2Ratio +/* 0098BC 70008CBC 2484E890 */ addiu $a0, $a0, -0x1770 +/* 0098C0 70008CC0 8FA50024 */ lw $a1, 0x24($sp) +/* 0098C4 70008CC4 E6000028 */ swc1 $f0, 0x28($s0) +.L70008CC8: +/* 0098C8 70008CC8 24010040 */ li $at, 64 +/* 0098CC 70008CCC 10A10004 */ beq $a1, $at, .L70008CE0 +/* 0098D0 70008CD0 240B0040 */ li $t3, 64 +/* 0098D4 70008CD4 9209003E */ lbu $t1, 0x3e($s0) +/* 0098D8 70008CD8 352A0002 */ ori $t2, $t1, 2 +/* 0098DC 70008CDC A20A003E */ sb $t2, 0x3e($s0) +.L70008CE0: +/* 0098E0 70008CE0 240C7FFF */ li $t4, 32767 +/* 0098E4 70008CE4 A200003D */ sb $zero, 0x3d($s0) +/* 0098E8 70008CE8 A20B003C */ sb $t3, 0x3c($s0) +/* 0098EC 70008CEC A60C0034 */ sh $t4, 0x34($s0) +.L70008CF0: +/* 0098F0 70008CF0 8FBF001C */ lw $ra, 0x1c($sp) +/* 0098F4 70008CF4 02001025 */ move $v0, $s0 +/* 0098F8 70008CF8 8FB00018 */ lw $s0, 0x18($sp) +/* 0098FC 70008CFC 03E00008 */ jr $ra +/* 009900 70008D00 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + + + + + + + + +/** + * 9904 70008D04 + */ + +#ifdef NONMATCHING +void *sfx_c_70008D04(void *arg0) +{ + if (arg0 == D_800243E4) + { + D_800243E4 = (void *) *arg0; + } + if (arg0 == D_800243E4.unk4) + { + D_800243E4.unk4 = (s32) arg0->unk4; + } + alUnlink(); + if (D_800243E4.unk8 != 0) + { + *arg0 = (void *) D_800243E4.unk8; + arg0->unk4 = 0; + D_800243E4.unk8->unk4 = arg0; + D_800243E4.unk8 = arg0; + } + else + { + arg0->unk4 = 0; + *arg0 = NULL; + D_800243E4.unk8 = arg0; + } + if ((arg0->unk3E & 4) != 0) + { + D_800243F4 = (s16) (D_800243F4 + -1); + } + arg0->unk3F = (u8)0; + if (arg0->unk30 != 0) + { + if (arg0 == *arg0->unk30) + { + *arg0->unk30 = 0; + } + arg0->unk30 = NULL; + } + return arg0->unk30; +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70008D04 +/* 009904 70008D04 3C028002 */ lui $v0, %hi(D_800243E4) +/* 009908 70008D08 244243E4 */ addiu $v0, %lo(D_800243E4) # addiu $v0, $v0, 0x43e4 +/* 00990C 70008D0C 8C4E0000 */ lw $t6, ($v0) +/* 009910 70008D10 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 009914 70008D14 AFBF0014 */ sw $ra, 0x14($sp) +/* 009918 70008D18 548E0004 */ bnel $a0, $t6, .L70008D2C +/* 00991C 70008D1C 8C580004 */ lw $t8, 4($v0) +/* 009920 70008D20 8C8F0000 */ lw $t7, ($a0) +/* 009924 70008D24 AC4F0000 */ sw $t7, ($v0) +/* 009928 70008D28 8C580004 */ lw $t8, 4($v0) +.L70008D2C: +/* 00992C 70008D2C 14980003 */ bne $a0, $t8, .L70008D3C +/* 009930 70008D30 00000000 */ nop +/* 009934 70008D34 8C990004 */ lw $t9, 4($a0) +/* 009938 70008D38 AC590004 */ sw $t9, 4($v0) +.L70008D3C: +/* 00993C 70008D3C 0C003AA4 */ jal alUnlink +/* 009940 70008D40 AFA40018 */ sw $a0, 0x18($sp) +/* 009944 70008D44 3C028002 */ lui $v0, %hi(D_800243E4) +/* 009948 70008D48 244243E4 */ addiu $v0, %lo(D_800243E4) # addiu $v0, $v0, 0x43e4 +/* 00994C 70008D4C 8C430008 */ lw $v1, 8($v0) +/* 009950 70008D50 8FA40018 */ lw $a0, 0x18($sp) +/* 009954 70008D54 50600008 */ beql $v1, $zero, .L70008D78 +/* 009958 70008D58 AC800004 */ sw $zero, 4($a0) +/* 00995C 70008D5C AC830000 */ sw $v1, ($a0) +/* 009960 70008D60 AC800004 */ sw $zero, 4($a0) +/* 009964 70008D64 8C480008 */ lw $t0, 8($v0) +/* 009968 70008D68 AD040004 */ sw $a0, 4($t0) +/* 00996C 70008D6C 10000004 */ b .L70008D80 +/* 009970 70008D70 AC440008 */ sw $a0, 8($v0) +/* 009974 70008D74 AC800004 */ sw $zero, 4($a0) +.L70008D78: +/* 009978 70008D78 AC800000 */ sw $zero, ($a0) +/* 00997C 70008D7C AC440008 */ sw $a0, 8($v0) +.L70008D80: +/* 009980 70008D80 9089003E */ lbu $t1, 0x3e($a0) +/* 009984 70008D84 3C028002 */ lui $v0, %hi(D_800243F4) +/* 009988 70008D88 244243F4 */ addiu $v0, %lo(D_800243F4) # addiu $v0, $v0, 0x43f4 +/* 00998C 70008D8C 312A0004 */ andi $t2, $t1, 4 +/* 009990 70008D90 51400005 */ beql $t2, $zero, .L70008DA8 +/* 009994 70008D94 8C820030 */ lw $v0, 0x30($a0) +/* 009998 70008D98 844B0000 */ lh $t3, ($v0) +/* 00999C 70008D9C 256CFFFF */ addiu $t4, $t3, -1 +/* 0099A0 70008DA0 A44C0000 */ sh $t4, ($v0) +/* 0099A4 70008DA4 8C820030 */ lw $v0, 0x30($a0) +.L70008DA8: +/* 0099A8 70008DA8 A080003F */ sb $zero, 0x3f($a0) +/* 0099AC 70008DAC 50400007 */ beql $v0, $zero, .L70008DCC +/* 0099B0 70008DB0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0099B4 70008DB4 8C4D0000 */ lw $t5, ($v0) +/* 0099B8 70008DB8 548D0003 */ bnel $a0, $t5, .L70008DC8 +/* 0099BC 70008DBC AC800030 */ sw $zero, 0x30($a0) +/* 0099C0 70008DC0 AC400000 */ sw $zero, ($v0) +/* 0099C4 70008DC4 AC800030 */ sw $zero, 0x30($a0) +.L70008DC8: +/* 0099C8 70008DC8 8FBF0014 */ lw $ra, 0x14($sp) +.L70008DCC: +/* 0099CC 70008DCC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0099D0 70008DD0 03E00008 */ jr $ra +/* 0099D4 70008DD4 00000000 */ nop +) +#endif + + + + + + + + + +/** + * 99D8 70008DD8 + * A1->A0+0x36. value is set in sound effect buffer? + * accepts: A0=p->SE buffer?, A1=value truncated to byte + */ + +#ifdef NONMATCHING +void sfx_c_70008DD8(void *arg0, s32 arg1) +{ + if (arg0 != 0) + { + arg0->unk36 = (s8) (arg1 & 0xff); + } +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70008DD8 +/* 0099D8 70008DD8 AFA50004 */ sw $a1, 4($sp) +/* 0099DC 70008DDC 10800002 */ beqz $a0, .L70008DE8 +/* 0099E0 70008DE0 30AE00FF */ andi $t6, $a1, 0xff +/* 0099E4 70008DE4 A08E0036 */ sb $t6, 0x36($a0) +.L70008DE8: +/* 0099E8 70008DE8 03E00008 */ jr $ra +/* 0099EC 70008DEC 00000000 */ nop +) +#endif + + + + + + + + + +/** + * 99F0 70008DF0 + * V0= TRUE if SE playing flag set [A0+0x3F] + * value is set only when sound defaults have been set + * accepts: A0=p->SE buffer + */ + +#ifdef NONMATCHING +void sfxGetArg0Unk3F(void *arg0) +{ + if (arg0 != 0) + { + return arg0->unk3F; + } + return 0; +} +#else +GLOBAL_ASM( +.text +glabel sfxGetArg0Unk3F +/* 0099F0 70008DF0 10800003 */ beqz $a0, .L70008E00 +/* 0099F4 70008DF4 00001025 */ move $v0, $zero +/* 0099F8 70008DF8 03E00008 */ jr $ra +/* 0099FC 70008DFC 9082003F */ lbu $v0, 0x3f($a0) + +.L70008E00: +/* 009A00 70008E00 03E00008 */ jr $ra +/* 009A04 70008E04 00000000 */ nop +) +#endif + + + + + + + + +/** + * 9A08 70008E08 + * sets sound effect; used by sound effect routines + * accepts: A0=p->SE buffer, A1=SE #, A2=p->data + * data: 0x0 4 p->SE entry + * 0x4 4 target volume + * 0x8 4 audible range (timer) + * 0xC 4 initial volume + * 0x10 4 p->preset emitting sound + * 0x14 4 p->object emitting sound + */ + +#ifdef NONMATCHING +void *play_sfx_a1(s32 arg0, s32 arg1, void *arg2) +{ + s16 sp6E; + s32 sp68; + s32 sp54; + s16 sp50; + ?32 sp48; + s16 sp40; + s32 temp_t6; + void *temp_t0; + ? temp_ret; + s32 temp_s0; + s32 temp_t4; + s32 temp_s1; + s8 temp_t7; + s32 phi_s1; + s32 phi_s4; + void *phi_s7; + s32 phi_s3; + + temp_t6 = ((s32) (arg1 << 0x10) >> 0x10); + sp6E = (u16)0; + if (bootswitch_sound != 0) + { + return 0; + } + if (temp_t6 == 0) + { + return 0; + } + phi_s1 = temp_t6; + phi_s4 = 0; + phi_s7 = NULL; + phi_s3 = sp64; +block_5: + temp_t0 = (subroutine_arg3 + (phi_s1 * 4)); + temp_ret = sfx_c_70008B70(arg0, temp_t0->unkC); + temp_s0 = temp_ret; + if (temp_ret != 0) + { + D_800243F0->unk3C = temp_ret; + sp50 = (u16)1; + sp54 = temp_ret; + temp_t4 = (temp_t0->unkC->unk4->unk1 * 0x8235); + if ((temp_ret->unk3E & 0x10) != 0) + { + temp_ret->unk3E = (s8) (temp_ret->unk3E & 0xffef); + alEvtqPostEvent((D_800243F0 + 0x14), &sp50, (phi_s4 + 1)); + sp68 = (s32) (temp_t4 + 1); + } + else + { + alEvtqPostEvent((D_800243F0 + 0x14), &sp50, (temp_t4 + 1)); + } + phi_s7 = temp_s0; + phi_s3 = temp_t4; + } + temp_s1 = ((s32) ((*temp_t0->unkC->unk4 + ((temp_t0->unkC->unk4->unk2 & 0xc0) * 4)) << 0x10) >> 0x10); + if (temp_s1 != 0) + { + phi_s1 = temp_s1; + phi_s4 = (phi_s4 + phi_s3); + phi_s7 = phi_s7; + phi_s3 = phi_s3; + if (temp_s0 != 0) + { + goto block_5; + } + } + if (phi_s7 != 0) + { + temp_t7 = (phi_s7->unk3E | 1); + phi_s7->unk3E = temp_t7; + phi_s7->unk30 = arg2; + if (sp6E != 0) + { + phi_s7->unk3E = (s8) (temp_t7 | 0x10); + sp40 = (u16)0x200; + sp48 = sp6E; + alEvtqPostEvent((D_800243F0 + 0x14), &sp40, sp68); + } + } + if (arg2 != 0) + { + *arg2 = (void *) phi_s7; + } + return phi_s7; +} +#else +GLOBAL_ASM( +.text +glabel play_sfx_a1 +/* 009A08 70008E08 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 009A0C 70008E0C 3C0F8002 */ lui $t7, %hi(bootswitch_sound) +/* 009A10 70008E10 81EF43F8 */ lb $t7, %lo(bootswitch_sound)($t7) +/* 009A14 70008E14 AFB1001C */ sw $s1, 0x1c($sp) +/* 009A18 70008E18 00058C00 */ sll $s1, $a1, 0x10 +/* 009A1C 70008E1C 00117403 */ sra $t6, $s1, 0x10 +/* 009A20 70008E20 AFBE0038 */ sw $fp, 0x38($sp) +/* 009A24 70008E24 AFB70034 */ sw $s7, 0x34($sp) +/* 009A28 70008E28 AFB40028 */ sw $s4, 0x28($sp) +/* 009A2C 70008E2C 0080F025 */ move $fp, $a0 +/* 009A30 70008E30 01C08825 */ move $s1, $t6 +/* 009A34 70008E34 AFBF003C */ sw $ra, 0x3c($sp) +/* 009A38 70008E38 AFB60030 */ sw $s6, 0x30($sp) +/* 009A3C 70008E3C AFB5002C */ sw $s5, 0x2c($sp) +/* 009A40 70008E40 AFB30024 */ sw $s3, 0x24($sp) +/* 009A44 70008E44 AFB20020 */ sw $s2, 0x20($sp) +/* 009A48 70008E48 AFB00018 */ sw $s0, 0x18($sp) +/* 009A4C 70008E4C AFA50084 */ sw $a1, 0x84($sp) +/* 009A50 70008E50 AFA60088 */ sw $a2, 0x88($sp) +/* 009A54 70008E54 0000B825 */ move $s7, $zero +/* 009A58 70008E58 A7A0006E */ sh $zero, 0x6e($sp) +/* 009A5C 70008E5C 11E00003 */ beqz $t7, .L70008E6C +/* 009A60 70008E60 0000A025 */ move $s4, $zero +/* 009A64 70008E64 10000062 */ b .L70008FF0 +/* 009A68 70008E68 00001025 */ move $v0, $zero +.L70008E6C: +/* 009A6C 70008E6C 16200003 */ bnez $s1, .L70008E7C +/* 009A70 70008E70 27B60050 */ addiu $s6, $sp, 0x50 +/* 009A74 70008E74 1000005E */ b .L70008FF0 +/* 009A78 70008E78 00001025 */ move $v0, $zero +.L70008E7C: +/* 009A7C 70008E7C 3C158002 */ lui $s5, %hi(D_800243F0) +/* 009A80 70008E80 26B543F0 */ addiu $s5, %lo(D_800243F0) # addiu $s5, $s5, 0x43f0 +/* 009A84 70008E84 8FB30064 */ lw $s3, 0x64($sp) +/* 009A88 70008E88 8FD8000C */ lw $t8, 0xc($fp) +.L70008E8C: +/* 009A8C 70008E8C 0011C880 */ sll $t9, $s1, 2 +/* 009A90 70008E90 03C02025 */ move $a0, $fp +/* 009A94 70008E94 03194021 */ addu $t0, $t8, $t9 +/* 009A98 70008E98 8D12000C */ lw $s2, 0xc($t0) +/* 009A9C 70008E9C 0C0022DC */ jal sfx_c_70008B70 +/* 009AA0 70008EA0 02402825 */ move $a1, $s2 +/* 009AA4 70008EA4 10400028 */ beqz $v0, .L70008F48 +/* 009AA8 70008EA8 00408025 */ move $s0, $v0 +/* 009AAC 70008EAC 8EA90000 */ lw $t1, ($s5) +/* 009AB0 70008EB0 240A0001 */ li $t2, 1 +/* 009AB4 70008EB4 02C02825 */ move $a1, $s6 +/* 009AB8 70008EB8 AD22003C */ sw $v0, 0x3c($t1) +/* 009ABC 70008EBC A7AA0050 */ sh $t2, 0x50($sp) +/* 009AC0 70008EC0 AFA20054 */ sw $v0, 0x54($sp) +/* 009AC4 70008EC4 8E4B0004 */ lw $t3, 4($s2) +/* 009AC8 70008EC8 904D003E */ lbu $t5, 0x3e($v0) +/* 009ACC 70008ECC 91730001 */ lbu $s3, 1($t3) +/* 009AD0 70008ED0 31AE0010 */ andi $t6, $t5, 0x10 +/* 009AD4 70008ED4 00136180 */ sll $t4, $s3, 6 +/* 009AD8 70008ED8 01936021 */ addu $t4, $t4, $s3 +/* 009ADC 70008EDC 000C60C0 */ sll $t4, $t4, 3 +/* 009AE0 70008EE0 01936021 */ addu $t4, $t4, $s3 +/* 009AE4 70008EE4 000C6080 */ sll $t4, $t4, 2 +/* 009AE8 70008EE8 01936023 */ subu $t4, $t4, $s3 +/* 009AEC 70008EEC 000C6080 */ sll $t4, $t4, 2 +/* 009AF0 70008EF0 01936021 */ addu $t4, $t4, $s3 +/* 009AF4 70008EF4 000C6080 */ sll $t4, $t4, 2 +/* 009AF8 70008EF8 01936021 */ addu $t4, $t4, $s3 +/* 009AFC 70008EFC 11C0000D */ beqz $t6, .L70008F34 +/* 009B00 70008F00 01809825 */ move $s3, $t4 +/* 009B04 70008F04 904F003E */ lbu $t7, 0x3e($v0) +/* 009B08 70008F08 02C02825 */ move $a1, $s6 +/* 009B0C 70008F0C 26860001 */ addiu $a2, $s4, 1 +/* 009B10 70008F10 31F8FFEF */ andi $t8, $t7, 0xffef +/* 009B14 70008F14 A058003E */ sb $t8, 0x3e($v0) +/* 009B18 70008F18 8EA40000 */ lw $a0, ($s5) +/* 009B1C 70008F1C 0C004BBF */ jal alEvtqPostEvent +/* 009B20 70008F20 24840014 */ addiu $a0, $a0, 0x14 +/* 009B24 70008F24 26790001 */ addiu $t9, $s3, 1 +/* 009B28 70008F28 AFB90068 */ sw $t9, 0x68($sp) +/* 009B2C 70008F2C 10000005 */ b .L70008F44 +/* 009B30 70008F30 A7B1006E */ sh $s1, 0x6e($sp) +.L70008F34: +/* 009B34 70008F34 8EA40000 */ lw $a0, ($s5) +/* 009B38 70008F38 26660001 */ addiu $a2, $s3, 1 +/* 009B3C 70008F3C 0C004BBF */ jal alEvtqPostEvent +/* 009B40 70008F40 24840014 */ addiu $a0, $a0, 0x14 +.L70008F44: +/* 009B44 70008F44 0200B825 */ move $s7, $s0 +.L70008F48: +/* 009B48 70008F48 8E420004 */ lw $v0, 4($s2) +/* 009B4C 70008F4C 0293A021 */ addu $s4, $s4, $s3 +/* 009B50 70008F50 90490002 */ lbu $t1, 2($v0) +/* 009B54 70008F54 90480000 */ lbu $t0, ($v0) +/* 009B58 70008F58 312A00C0 */ andi $t2, $t1, 0xc0 +/* 009B5C 70008F5C 000A5880 */ sll $t3, $t2, 2 +/* 009B60 70008F60 010B8821 */ addu $s1, $t0, $t3 +/* 009B64 70008F64 00116400 */ sll $t4, $s1, 0x10 +/* 009B68 70008F68 000C8C03 */ sra $s1, $t4, 0x10 +/* 009B6C 70008F6C 12200004 */ beqz $s1, .L70008F80 +/* 009B70 70008F70 00000000 */ nop +/* 009B74 70008F74 5600FFC5 */ bnezl $s0, .L70008E8C +/* 009B78 70008F78 8FD8000C */ lw $t8, 0xc($fp) +/* 009B7C 70008F7C AFB30064 */ sw $s3, 0x64($sp) +.L70008F80: +/* 009B80 70008F80 52E00017 */ beql $s7, $zero, .L70008FE0 +/* 009B84 70008F84 8FAC0088 */ lw $t4, 0x88($sp) +/* 009B88 70008F88 92EE003E */ lbu $t6, 0x3e($s7) +/* 009B8C 70008F8C 24080200 */ li $t0, 512 +/* 009B90 70008F90 27A50040 */ addiu $a1, $sp, 0x40 +/* 009B94 70008F94 35CF0001 */ ori $t7, $t6, 1 +/* 009B98 70008F98 A2EF003E */ sb $t7, 0x3e($s7) +/* 009B9C 70008F9C 8FB80088 */ lw $t8, 0x88($sp) +/* 009BA0 70008FA0 35EA0010 */ ori $t2, $t7, 0x10 +/* 009BA4 70008FA4 AEF80030 */ sw $t8, 0x30($s7) +/* 009BA8 70008FA8 87B9006E */ lh $t9, 0x6e($sp) +/* 009BAC 70008FAC 5320000C */ beql $t9, $zero, .L70008FE0 +/* 009BB0 70008FB0 8FAC0088 */ lw $t4, 0x88($sp) +/* 009BB4 70008FB4 A2EA003E */ sb $t2, 0x3e($s7) +/* 009BB8 70008FB8 87AB006E */ lh $t3, 0x6e($sp) +/* 009BBC 70008FBC 8EA40000 */ lw $a0, ($s5) +/* 009BC0 70008FC0 A7A80040 */ sh $t0, 0x40($sp) +/* 009BC4 70008FC4 AFB70044 */ sw $s7, 0x44($sp) +/* 009BC8 70008FC8 AFBE004C */ sw $fp, 0x4c($sp) +/* 009BCC 70008FCC 8FA60068 */ lw $a2, 0x68($sp) +/* 009BD0 70008FD0 AFAB0048 */ sw $t3, 0x48($sp) +/* 009BD4 70008FD4 0C004BBF */ jal alEvtqPostEvent +/* 009BD8 70008FD8 24840014 */ addiu $a0, $a0, 0x14 +/* 009BDC 70008FDC 8FAC0088 */ lw $t4, 0x88($sp) +.L70008FE0: +/* 009BE0 70008FE0 02E01025 */ move $v0, $s7 +/* 009BE4 70008FE4 11800002 */ beqz $t4, .L70008FF0 +/* 009BE8 70008FE8 00000000 */ nop +/* 009BEC 70008FEC AD970000 */ sw $s7, ($t4) +.L70008FF0: +/* 009BF0 70008FF0 8FBF003C */ lw $ra, 0x3c($sp) +/* 009BF4 70008FF4 8FB00018 */ lw $s0, 0x18($sp) +/* 009BF8 70008FF8 8FB1001C */ lw $s1, 0x1c($sp) +/* 009BFC 70008FFC 8FB20020 */ lw $s2, 0x20($sp) +/* 009C00 70009000 8FB30024 */ lw $s3, 0x24($sp) +/* 009C04 70009004 8FB40028 */ lw $s4, 0x28($sp) +/* 009C08 70009008 8FB5002C */ lw $s5, 0x2c($sp) +/* 009C0C 7000900C 8FB60030 */ lw $s6, 0x30($sp) +/* 009C10 70009010 8FB70034 */ lw $s7, 0x34($sp) +/* 009C14 70009014 8FBE0038 */ lw $fp, 0x38($sp) +/* 009C18 70009018 03E00008 */ jr $ra +/* 009C1C 7000901C 27BD0080 */ addiu $sp, $sp, 0x80 +) +#endif + + + + + + +/** + * 9C20 70009020 + * decativates sound effect + * accepts: A0=p->SE buffer + */ + +#ifdef NONMATCHING +void sfxDeactivate(void *arg0) +{ + s16 sp18; + + sp18 = (u16)0x400; + if (arg0 != 0) + { + arg0->unk3E = (s8) (arg0->unk3E & 0xffef); + alEvtqPostEvent((D_800243F0 + 0x14), &sp18, 0); + } +} +#else +GLOBAL_ASM( +.text +glabel sfxDeactivate +/* 009C20 70009020 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 009C24 70009024 240E0400 */ li $t6, 1024 +/* 009C28 70009028 AFBF0014 */ sw $ra, 0x14($sp) +/* 009C2C 7000902C A7AE0018 */ sh $t6, 0x18($sp) +/* 009C30 70009030 1080000A */ beqz $a0, .L7000905C +/* 009C34 70009034 AFA4001C */ sw $a0, 0x1c($sp) +/* 009C38 70009038 908F003E */ lbu $t7, 0x3e($a0) +/* 009C3C 7000903C 27A50018 */ addiu $a1, $sp, 0x18 +/* 009C40 70009040 00003025 */ move $a2, $zero +/* 009C44 70009044 31F8FFEF */ andi $t8, $t7, 0xffef +/* 009C48 70009048 A098003E */ sb $t8, 0x3e($a0) +/* 009C4C 7000904C 3C048002 */ lui $a0, %hi(D_800243F0) +/* 009C50 70009050 8C8443F0 */ lw $a0, %lo(D_800243F0)($a0) +/* 009C54 70009054 0C004BBF */ jal alEvtqPostEvent +/* 009C58 70009058 24840014 */ addiu $a0, $a0, 0x14 +.L7000905C: +/* 009C5C 7000905C 8FBF0014 */ lw $ra, 0x14($sp) +/* 009C60 70009060 27BD0028 */ addiu $sp, $sp, 0x28 +/* 009C64 70009064 03E00008 */ jr $ra +/* 009C68 70009068 00000000 */ nop +) +#endif + + + + + + + + +/** + * 9C6C 7000906C + */ + +#ifdef NONMATCHING +void sfx_c_7000906C(s32 arg0) +{ + s32 sp4C; + s16 sp3C; + s32 temp_s2; + s8 temp_v0; + void *temp_s0; + void *phi_s0; + + temp_s2 = (arg0 & 0xff); + sp4C = osSetIntMask(1); + if (D_800243E4 != 0) + { + phi_s0 = D_800243E4; +block_2: + sp3C = (u16)0x400; + temp_v0 = phi_s0->unk3E; + if (temp_s2 == (temp_v0 & temp_s2)) + { + phi_s0->unk3E = (s8) (temp_v0 & -0x11); + alEvtqPostEvent((D_800243F0 + 0x14), &sp3C, 0); + } + temp_s0 = *phi_s0; + phi_s0 = temp_s0; + if (temp_s0 != 0) + { + goto block_2; + } + } + osSetIntMask(sp4C); +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_7000906C +/* 009C6C 7000906C 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 009C70 70009070 AFB20020 */ sw $s2, 0x20($sp) +/* 009C74 70009074 309200FF */ andi $s2, $a0, 0xff +/* 009C78 70009078 AFBF002C */ sw $ra, 0x2c($sp) +/* 009C7C 7000907C AFA40050 */ sw $a0, 0x50($sp) +/* 009C80 70009080 AFB40028 */ sw $s4, 0x28($sp) +/* 009C84 70009084 AFB30024 */ sw $s3, 0x24($sp) +/* 009C88 70009088 AFB1001C */ sw $s1, 0x1c($sp) +/* 009C8C 7000908C AFB00018 */ sw $s0, 0x18($sp) +/* 009C90 70009090 0C00374C */ jal osSetIntMask +/* 009C94 70009094 24040001 */ li $a0, 1 +/* 009C98 70009098 3C108002 */ lui $s0, %hi(D_800243E4) +/* 009C9C 7000909C 8E1043E4 */ lw $s0, %lo(D_800243E4)($s0) +/* 009CA0 700090A0 AFA2004C */ sw $v0, 0x4c($sp) +/* 009CA4 700090A4 02408825 */ move $s1, $s2 +/* 009CA8 700090A8 12000014 */ beqz $s0, .L700090FC +/* 009CAC 700090AC 27B4003C */ addiu $s4, $sp, 0x3c +/* 009CB0 700090B0 3C138002 */ lui $s3, %hi(D_800243F0) +/* 009CB4 700090B4 267343F0 */ addiu $s3, %lo(D_800243F0) # addiu $s3, $s3, 0x43f0 +/* 009CB8 700090B8 2412FFEF */ li $s2, -17 +/* 009CBC 700090BC 240E0400 */ li $t6, 1024 +.L700090C0: +/* 009CC0 700090C0 A7AE003C */ sh $t6, 0x3c($sp) +/* 009CC4 700090C4 AFB00040 */ sw $s0, 0x40($sp) +/* 009CC8 700090C8 9202003E */ lbu $v0, 0x3e($s0) +/* 009CCC 700090CC 02802825 */ move $a1, $s4 +/* 009CD0 700090D0 00517824 */ and $t7, $v0, $s1 +/* 009CD4 700090D4 162F0006 */ bne $s1, $t7, .L700090F0 +/* 009CD8 700090D8 0052C024 */ and $t8, $v0, $s2 +/* 009CDC 700090DC A218003E */ sb $t8, 0x3e($s0) +/* 009CE0 700090E0 8E640000 */ lw $a0, ($s3) +/* 009CE4 700090E4 00003025 */ move $a2, $zero +/* 009CE8 700090E8 0C004BBF */ jal alEvtqPostEvent +/* 009CEC 700090EC 24840014 */ addiu $a0, $a0, 0x14 +.L700090F0: +/* 009CF0 700090F0 8E100000 */ lw $s0, ($s0) +/* 009CF4 700090F4 5600FFF2 */ bnezl $s0, .L700090C0 +/* 009CF8 700090F8 240E0400 */ li $t6, 1024 +.L700090FC: +/* 009CFC 700090FC 0C00374C */ jal osSetIntMask +/* 009D00 70009100 8FA4004C */ lw $a0, 0x4c($sp) +/* 009D04 70009104 8FBF002C */ lw $ra, 0x2c($sp) +/* 009D08 70009108 8FB00018 */ lw $s0, 0x18($sp) +/* 009D0C 7000910C 8FB1001C */ lw $s1, 0x1c($sp) +/* 009D10 70009110 8FB20020 */ lw $s2, 0x20($sp) +/* 009D14 70009114 8FB30024 */ lw $s3, 0x24($sp) +/* 009D18 70009118 8FB40028 */ lw $s4, 0x28($sp) +/* 009D1C 7000911C 03E00008 */ jr $ra +/* 009D20 70009120 27BD0050 */ addiu $sp, $sp, 0x50 +) +#endif + + + + + + + +/** + * 9D24 70009124 + * redirect to 7000906C: A0=1 + */ +void sfx_c_70009124(void) +{ + sfx_c_7000906C(1); +} + +/** + * 9D44 70009144 + * redirect to 7000906C: A0=11 + */ +void sfx_c_70009144(void) +{ + sfx_c_7000906C(0x11); +} + +/** + * 9D64 70009164 + * redirect to 7000906C: A0=3 + */ +void sfx_c_70009164(void) +{ + sfx_c_7000906C(3); +} + + + + +/** + * 9D84 70009184 + */ +#ifdef NONMATCHING +void sfx_c_70009184(s32 arg0, s32 arg1, ? arg2) +{ + ? sp18; + + if (arg0 != 0) + { + alEvtqPostEvent((D_800243F0 + 0x14), &sp18, 0); + } +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70009184 +/* 009D84 70009184 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 009D88 70009188 AFBF0014 */ sw $ra, 0x14($sp) +/* 009D8C 7000918C AFA5002C */ sw $a1, 0x2c($sp) +/* 009D90 70009190 A7A50018 */ sh $a1, 0x18($sp) +/* 009D94 70009194 AFA4001C */ sw $a0, 0x1c($sp) +/* 009D98 70009198 10800007 */ beqz $a0, .L700091B8 +/* 009D9C 7000919C AFA60020 */ sw $a2, 0x20($sp) +/* 009DA0 700091A0 3C048002 */ lui $a0, %hi(D_800243F0) +/* 009DA4 700091A4 8C8443F0 */ lw $a0, %lo(D_800243F0)($a0) +/* 009DA8 700091A8 27A50018 */ addiu $a1, $sp, 0x18 +/* 009DAC 700091AC 00003025 */ move $a2, $zero +/* 009DB0 700091B0 0C004BBF */ jal alEvtqPostEvent +/* 009DB4 700091B4 24840014 */ addiu $a0, $a0, 0x14 +.L700091B8: +/* 009DB8 700091B8 8FBF0014 */ lw $ra, 0x14($sp) +/* 009DBC 700091BC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 009DC0 700091C0 03E00008 */ jr $ra +/* 009DC4 700091C4 00000000 */ nop +) +#endif + + + +/** + * 9DC8 700091C8 + * redirect to 70009264: A0=0 + */ +u32 sfx_c_700091C8(void) +{ + return sfx_c_70009264(0); +} + + + + + + + + + +/** + * 9DE8 700091E8 + */ +#ifdef NONMATCHING +void sfx_c_700091E8(s32 arg0) +{ + s32 temp_t6; + s32 phi_s0; + + phi_s0 = 0; +block_1: + sfx_c_70009284((phi_s0 & 0xff), ((arg0 & 0xffff) & 0xffff)); + temp_t6 = ((phi_s0 + 1) & 0xff); + phi_s0 = temp_t6; + if (temp_t6 < 7) + { + goto block_1; + } +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_700091E8 +/* 009DE8 700091E8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 009DEC 700091EC AFB10018 */ sw $s1, 0x18($sp) +/* 009DF0 700091F0 AFB00014 */ sw $s0, 0x14($sp) +/* 009DF4 700091F4 3091FFFF */ andi $s1, $a0, 0xffff +/* 009DF8 700091F8 AFBF001C */ sw $ra, 0x1c($sp) +/* 009DFC 700091FC AFA40020 */ sw $a0, 0x20($sp) +/* 009E00 70009200 00008025 */ move $s0, $zero +.L70009204: +/* 009E04 70009204 320400FF */ andi $a0, $s0, 0xff +/* 009E08 70009208 0C0024A1 */ jal sfx_c_70009284 +/* 009E0C 7000920C 3225FFFF */ andi $a1, $s1, 0xffff +/* 009E10 70009210 26100001 */ addiu $s0, $s0, 1 +/* 009E14 70009214 320E00FF */ andi $t6, $s0, 0xff +/* 009E18 70009218 29C10007 */ slti $at, $t6, 7 +/* 009E1C 7000921C 1420FFF9 */ bnez $at, .L70009204 +/* 009E20 70009220 01C08025 */ move $s0, $t6 +/* 009E24 70009224 8FBF001C */ lw $ra, 0x1c($sp) +/* 009E28 70009228 8FB00014 */ lw $s0, 0x14($sp) +/* 009E2C 7000922C 8FB10018 */ lw $s1, 0x18($sp) +/* 009E30 70009230 03E00008 */ jr $ra +/* 009E34 70009234 27BD0020 */ addiu $sp, $sp, 0x20 +) +#endif + + + + + + + +/** + * 9E38 70009238 + */ + +void sfx_c_70009238(f32 arg0) +{ + F32_800243FC = arg0; + sfx_c_700091E8((sfx_c_700091C8() & 0xffff)); +} + + + + + + + + + + +/** + * 9E64 70009264 + * V0= halfword A0 in table at [80063BA8]; fries T6,T7,T8,T9 + */ +#ifdef NONMATCHING +void sfx_c_70009264(s32 arg0) +{ + return (D_80063BA8 + ((arg0 & 0xff) * 2)); +} + +#else +GLOBAL_ASM( +.text +glabel sfx_c_70009264 +/* 009E64 70009264 3C0F8006 */ lui $t7, %hi(D_80063BA8) +/* 009E68 70009268 8DEF3BA8 */ lw $t7, %lo(D_80063BA8)($t7) +/* 009E6C 7000926C 308E00FF */ andi $t6, $a0, 0xff +/* 009E70 70009270 000EC040 */ sll $t8, $t6, 1 +/* 009E74 70009274 AFA40000 */ sw $a0, ($sp) +/* 009E78 70009278 01F8C821 */ addu $t9, $t7, $t8 +/* 009E7C 7000927C 03E00008 */ jr $ra +/* 009E80 70009280 97220000 */ lhu $v0, ($t9) +) +#endif + + + + + + + + + +/** + * 9E84 70009284 + */ +#ifdef NONMATCHING +s32 sfx_c_70009284(s32 arg0, s32 arg1) +{ + s16 sp30; + s32 temp_s3; + s16 temp_t6; + s32 temp_v0; + void *temp_v0_2; + void *temp_s0; + void *phi_s0; + s32 phi_return; + + temp_s3 = (arg0 & 0xff); + temp_t6 = (arg1 & 0xffff); + temp_v0 = (temp_s3 * 2); + *(D_80063BA8 + temp_v0) = temp_t6; + *(D_80063BA4 + temp_v0) = (s32) ((f32) temp_t6 * F32_800243FC); + phi_s0 = D_800243E4; + phi_return = temp_v0; + if (D_800243E4 != 0) + { +block_1: + temp_v0_2 = phi_s0->unk8; + phi_return = temp_v0_2; + if (temp_v0_2 != 0) + { + phi_return = temp_v0_2; + if (temp_s3 == (temp_v0_2->unk4->unk2 & 0x3f)) + { + sp30 = (u16)0x800; + phi_return = alEvtqPostEvent((D_800243F0 + 0x14), &sp30, 0); + } + } + temp_s0 = *phi_s0; + phi_s0 = temp_s0; + if (temp_s0 != 0) + { + goto block_1; + } + } + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel sfx_c_70009284 +/* 009E84 70009284 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 009E88 70009288 3C0F8006 */ lui $t7, %hi(D_80063BA8) +/* 009E8C 7000928C 8DEF3BA8 */ lw $t7, %lo(D_80063BA8)($t7) +/* 009E90 70009290 AFB30020 */ sw $s3, 0x20($sp) +/* 009E94 70009294 309300FF */ andi $s3, $a0, 0xff +/* 009E98 70009298 AFB00014 */ sw $s0, 0x14($sp) +/* 009E9C 7000929C 30AEFFFF */ andi $t6, $a1, 0xffff +/* 009EA0 700092A0 448E2000 */ mtc1 $t6, $f4 +/* 009EA4 700092A4 3C108002 */ lui $s0, %hi(D_800243E4) +/* 009EA8 700092A8 00131040 */ sll $v0, $s3, 1 +/* 009EAC 700092AC AFBF0024 */ sw $ra, 0x24($sp) +/* 009EB0 700092B0 AFB2001C */ sw $s2, 0x1c($sp) +/* 009EB4 700092B4 AFB10018 */ sw $s1, 0x18($sp) +/* 009EB8 700092B8 AFA40048 */ sw $a0, 0x48($sp) +/* 009EBC 700092BC AFA5004C */ sw $a1, 0x4c($sp) +/* 009EC0 700092C0 8E1043E4 */ lw $s0, %lo(D_800243E4)($s0) +/* 009EC4 700092C4 01E2C021 */ addu $t8, $t7, $v0 +/* 009EC8 700092C8 A70E0000 */ sh $t6, ($t8) +/* 009ECC 700092CC 05C10005 */ bgez $t6, .L700092E4 +/* 009ED0 700092D0 468021A0 */ cvt.s.w $f6, $f4 +/* 009ED4 700092D4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 009ED8 700092D8 44814000 */ mtc1 $at, $f8 +/* 009EDC 700092DC 00000000 */ nop +/* 009EE0 700092E0 46083180 */ add.s $f6, $f6, $f8 +.L700092E4: +/* 009EE4 700092E4 3C018002 */ lui $at, %hi(F32_800243FC) +/* 009EE8 700092E8 C42A43FC */ lwc1 $f10, %lo(F32_800243FC)($at) +/* 009EEC 700092EC 3C098006 */ lui $t1, %hi(D_80063BA4) +/* 009EF0 700092F0 8D293BA4 */ lw $t1, %lo(D_80063BA4)($t1) +/* 009EF4 700092F4 460A3402 */ mul.s $f16, $f6, $f10 +/* 009EF8 700092F8 3C118002 */ lui $s1, %hi(D_800243F0) +/* 009EFC 700092FC 01225021 */ addu $t2, $t1, $v0 +/* 009F00 70009300 263143F0 */ addiu $s1, %lo(D_800243F0) # addiu $s1, $s1, 0x43f0 +/* 009F04 70009304 27B20030 */ addiu $s2, $sp, 0x30 +/* 009F08 70009308 4600848D */ trunc.w.s $f18, $f16 +/* 009F0C 7000930C 44089000 */ mfc1 $t0, $f18 +/* 009F10 70009310 12000014 */ beqz $s0, .L70009364 +/* 009F14 70009314 A5480000 */ sh $t0, ($t2) +/* 009F18 70009318 8E020008 */ lw $v0, 8($s0) +.L7000931C: +/* 009F1C 7000931C 5040000F */ beql $v0, $zero, .L7000935C +/* 009F20 70009320 8E100000 */ lw $s0, ($s0) +/* 009F24 70009324 8C4B0004 */ lw $t3, 4($v0) +/* 009F28 70009328 240E0800 */ li $t6, 2048 +/* 009F2C 7000932C 02402825 */ move $a1, $s2 +/* 009F30 70009330 916C0002 */ lbu $t4, 2($t3) +/* 009F34 70009334 00003025 */ move $a2, $zero +/* 009F38 70009338 318D003F */ andi $t5, $t4, 0x3f +/* 009F3C 7000933C 566D0007 */ bnel $s3, $t5, .L7000935C +/* 009F40 70009340 8E100000 */ lw $s0, ($s0) +/* 009F44 70009344 8E240000 */ lw $a0, ($s1) +/* 009F48 70009348 A7AE0030 */ sh $t6, 0x30($sp) +/* 009F4C 7000934C AFB00034 */ sw $s0, 0x34($sp) +/* 009F50 70009350 0C004BBF */ jal alEvtqPostEvent +/* 009F54 70009354 24840014 */ addiu $a0, $a0, 0x14 +/* 009F58 70009358 8E100000 */ lw $s0, ($s0) +.L7000935C: +/* 009F5C 7000935C 5600FFEF */ bnezl $s0, .L7000931C +/* 009F60 70009360 8E020008 */ lw $v0, 8($s0) +.L70009364: +/* 009F64 70009364 8FBF0024 */ lw $ra, 0x24($sp) +/* 009F68 70009368 8FB00014 */ lw $s0, 0x14($sp) +/* 009F6C 7000936C 8FB10018 */ lw $s1, 0x18($sp) +/* 009F70 70009370 8FB2001C */ lw $s2, 0x1c($sp) +/* 009F74 70009374 8FB30020 */ lw $s3, 0x20($sp) +/* 009F78 70009378 03E00008 */ jr $ra +/* 009F7C 7000937C 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + diff --git a/src/snd.h b/src/snd.h new file mode 100644 index 0000000..36c0e91 --- /dev/null +++ b/src/snd.h @@ -0,0 +1,7 @@ +#ifndef _SND_H_ +#define _SND_H_ +#include "ultra64.h" + +extern s8 bootswitch_sound; +void play_sfx_a1 (void * buffer, short entry, void * data); +#endif diff --git a/src/speed_graph.c b/src/speed_graph.c new file mode 100644 index 0000000..267818b --- /dev/null +++ b/src/speed_graph.c @@ -0,0 +1,1119 @@ +#include "ultra64.h" +/** + * @file speed_graph.c + * This file contains code to draw speedgraph. + * + */ + + +/* _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + | Snippet of building glist buffers | + |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _| + +== H file == +#define GLIST_LEN 2048 // GE seems to be 266 + +/* + * Layout of dynamic data. + * + * This structure holds the things which change per frame. It is advantageous + * to keep dynamic data together so that we may selectively write back dirty + * data cache lines to DRAM prior to processing by the RCP. + * + * / +typedef struct { + Mtx projection; + Mtx modeling; + Mtx modeling2; + Mtx viewing; + LookAt lookat; + Hilite hilite; + Lightsn light; //Oh interesting, since we found this and LookAt, it seems dynamic gfx should astart right after. + Gfx glist[GLIST_LEN]; +} Dynamic; + +extern Dynamic dynamic; + +== H file End == + +/* + * global variables + * +Gfx *glistp; /* RSP display list pointer * / +//Dynamic dynamic; /* dynamic data * / +/ * + * Double-buffered dynamic segments + * / +Dynamic dynamic[2]; +... + +// some function() +{ + ... + int current = 0; + dynamicp = &dynamic[current]; + glistp = dynamicp->glist; + //example gfx build + gSPSegment(glistp++, 0, 0x0); // glist++ ready for next instruction (held in dynamic 1 or 2) +} +*/ + +/* tempory types confirm me */ +s32 dword_CODE_bss_8005F3F0[4]; //Gfx Tiles_Setup? oh... unless thats what the next 2 are... the first command I recognised did start at 8005f400... +// dynamic glist, though it lacks the format above... +Gfx displaylist_0[266]; +Gfx displaylist_1[266]; +s32 displaylist_bank; //0 or 1? current? +s32 dword_CODE_bss_800604A4; +u32 dword_CODE_bss_800604A8; +u32 dword_CODE_bss_800604AC; +s32 dword_CODE_bss_800604B0[0xC0]; +s32 dword_CODE_bss_800607B0; +s32 dword_CODE_bss_800607B4; +s32 dword_CODE_bss_800607B8; +s32 dword_CODE_bss_800607BC; +s32 dword_CODE_bss_800607C0; +s32 dword_CODE_bss_800607C4; +s32 dword_CODE_bss_800607C8; +s32 dword_CODE_bss_800607CC; +s32 dword_CODE_bss_800607D0; +s32 dword_CODE_bss_800607D4; +s32 dword_CODE_bss_800607D8; +s32 dword_CODE_bss_800607DC; + +s32 D_800231D0 = 0; +s32 D_800231D4[] = { 0, 0, 2, 0, 1, 0, 2, 0, 2, 0xFF000000, 2, 0, 3, 0x9200, 4, 0xFFFFFFFF, 4, 0xDB000000, 4, 0xFFFFFFFF }; + +s32 D_80023224 = 0; +s32 D_80023228 = 0; +s32 D_8002322C = 0; +s32 counterforframes = 0; +s32 D_80023234 = 1; + + +//GLOBAL_ASM( +/* .rodata*/ +const char aUtz2_0f[] = "utz %2.0f%%\n"; +const char aRsp2_0f[] = "rsp %2.0f%%\n"; +const char aTex2_0f[] = "tex %2.0f%%"; +const char a2dHz[] = "%2d hz"; +const char a2dFrames[] = "%2d frames"; +const char a2d[] = " [%2d]"; +const char asc_D_80028468[] = " "; +const char aIL0[] = "I=l0"; +//) + + +/** + * 3330 70002730 (DL generator) + */ +#ifdef NONMATCHING +void displaylist_related(void) +{ + void *temp_v0; + void *temp_v1; + void *phi_v1; + void *phi_v0; + + gSPEndDisplayList(displaylist_0++); + displaylist_0.unk850 = 0xb800000000000000; //? is this not dlist2? + displaylist_bank = 0; + phi_v1 = &dword_CODE_bss_800607B0; + phi_v0 = &dword_CODE_bss_800607D0; +block_1: + temp_v0 = (phi_v0 + 4); + temp_v1 = (phi_v1 + 4); + temp_v1->unk-4 = 0; + temp_v0->unk-4 = 1; + phi_v1 = temp_v1; + phi_v0 = temp_v0; + if (temp_v0 != &dword_CODE_bss_800607DC) + { + goto block_1; + } + video_related_2(1, &dword_CODE_bss_800607DC, 0xb8000000); +} +#else +GLOBAL_ASM( +.text +glabel displaylist_related +/* 003330 70002730 3C048006 */ lui $a0, %hi(displaylist_0) +/* 003334 70002734 2484F400 */ addiu $a0, %lo(displaylist_0) # addiu $a0, $a0, -0xc00 +/* 003338 70002738 3C06B800 */ lui $a2, 0xb800 +/* 00333C 7000273C AC860000 */ sw $a2, ($a0) +/* 003340 70002740 AC800004 */ sw $zero, 4($a0) +/* 003344 70002744 AC860850 */ sw $a2, 0x850($a0) +/* 003348 70002748 AC800854 */ sw $zero, 0x854($a0) +/* 00334C 7000274C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 003350 70002750 3C018006 */ lui $at, %hi(displaylist_bank) +/* 003354 70002754 3C038006 */ lui $v1, %hi(dword_CODE_bss_800607B0) +/* 003358 70002758 3C028006 */ lui $v0, %hi(dword_CODE_bss_800607D0) +/* 00335C 7000275C 3C058006 */ lui $a1, %hi(dword_CODE_bss_800607DC) +/* 003360 70002760 AFBF0014 */ sw $ra, 0x14($sp) +/* 003364 70002764 AC2004A0 */ sw $zero, %lo(displaylist_bank)($at) +/* 003368 70002768 24A507DC */ addiu $a1, %lo(dword_CODE_bss_800607DC) # addiu $a1, $a1, 0x7dc +/* 00336C 7000276C 244207D0 */ addiu $v0, %lo(dword_CODE_bss_800607D0) # addiu $v0, $v0, 0x7d0 +/* 003370 70002770 246307B0 */ addiu $v1, %lo(dword_CODE_bss_800607B0) # addiu $v1, $v1, 0x7b0 +/* 003374 70002774 24040001 */ li $a0, 1 +.L70002778: +/* 003378 70002778 24420004 */ addiu $v0, $v0, 4 +/* 00337C 7000277C 24630004 */ addiu $v1, $v1, 4 +/* 003380 70002780 AC60FFFC */ sw $zero, -4($v1) +/* 003384 70002784 1445FFFC */ bne $v0, $a1, .L70002778 +/* 003388 70002788 AC44FFFC */ sw $a0, -4($v0) +/* 00338C 7000278C 0C000A04 */ jal video_related_2 +/* 003390 70002790 00000000 */ nop +/* 003394 70002794 8FBF0014 */ lw $ra, 0x14($sp) +/* 003398 70002798 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00339C 7000279C 03E00008 */ jr $ra +/* 0033A0 700027A0 00000000 */ nop +) +#endif + + + +/** + * 33A4 700027A4 + */ +#ifdef NONMATCHING +void *video_related_1(void) +{ + void *temp_v1; + void *temp_a0; + s32 temp_t7; + s32 temp_t8; + void *phi_v1; + s32 phi_t8; + void *phi_a0; + + dword_CODE_bss_800604A8 = osGetCount(); + phi_v1 = &dword_CODE_bss_800607D0; + phi_a0 = &dword_CODE_bss_800607C0; +block_1: + temp_v1 = (phi_v1 + 4); + temp_a0 = (phi_a0 + 4); + temp_t7 = (*phi_v1 + 0x1f); + temp_t8 = (temp_t7 & 0x1f); + phi_t8 = temp_t8; + if (temp_t7 < 0) + { + phi_t8 = temp_t8; + if (temp_t8 != 0) + { + phi_t8 = (temp_t8 + -0x20); + } + } + temp_a0->unk-4 = (s32) phi_t8; + phi_v1 = temp_v1; + phi_a0 = temp_a0; + if (temp_v1 != &dword_CODE_bss_800607DC) + { + goto block_1; + } + return &dword_CODE_bss_800607DC; +} +#else +GLOBAL_ASM( +.text +glabel video_related_1 +/* 0033A4 700027A4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0033A8 700027A8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0033AC 700027AC 0C003638 */ jal osGetCount +/* 0033B0 700027B0 00000000 */ nop +/* 0033B4 700027B4 3C018006 */ lui $at, %hi(dword_CODE_bss_800604A8) +/* 0033B8 700027B8 AC2204A8 */ sw $v0, %lo(dword_CODE_bss_800604A8)($at) +/* 0033BC 700027BC 3C028006 */ lui $v0, %hi(dword_CODE_bss_800607DC) +/* 0033C0 700027C0 3C048006 */ lui $a0, %hi(dword_CODE_bss_800607C0) +/* 0033C4 700027C4 3C038006 */ lui $v1, %hi(dword_CODE_bss_800607D0) +/* 0033C8 700027C8 246307D0 */ addiu $v1, %lo(dword_CODE_bss_800607D0) # addiu $v1, $v1, 0x7d0 +/* 0033CC 700027CC 248407C0 */ addiu $a0, %lo(dword_CODE_bss_800607C0) # addiu $a0, $a0, 0x7c0 +/* 0033D0 700027D0 244207DC */ addiu $v0, %lo(dword_CODE_bss_800607DC) # addiu $v0, $v0, 0x7dc +.L700027D4: +/* 0033D4 700027D4 8C6E0000 */ lw $t6, ($v1) +/* 0033D8 700027D8 24630004 */ addiu $v1, $v1, 4 +/* 0033DC 700027DC 24840004 */ addiu $a0, $a0, 4 +/* 0033E0 700027E0 25CF001F */ addiu $t7, $t6, 0x1f +/* 0033E4 700027E4 05E10004 */ bgez $t7, .L700027F8 +/* 0033E8 700027E8 31F8001F */ andi $t8, $t7, 0x1f +/* 0033EC 700027EC 13000002 */ beqz $t8, .L700027F8 +/* 0033F0 700027F0 00000000 */ nop +/* 0033F4 700027F4 2718FFE0 */ addiu $t8, $t8, -0x20 +.L700027F8: +/* 0033F8 700027F8 1462FFF6 */ bne $v1, $v0, .L700027D4 +/* 0033FC 700027FC AC98FFFC */ sw $t8, -4($a0) +/* 003400 70002800 8FBF0014 */ lw $ra, 0x14($sp) +/* 003404 70002804 27BD0018 */ addiu $sp, $sp, 0x18 +/* 003408 70002808 03E00008 */ jr $ra +/* 00340C 7000280C 00000000 */ nop +) +#endif + + +/** + * 3410 70002810 + */ +#ifdef NONMATCHING +void *video_related_2(void) +{ + void *temp_a0; + void *temp_v1; + void *phi_a0; + void *phi_v1; + + dword_CODE_bss_800604A4 = (?32) dword_CODE_bss_800604A8; + phi_a0 = &dword_CODE_bss_800607C0; + phi_v1 = &dword_CODE_bss_800607B0; +block_1: + temp_a0 = (phi_a0 + 4); + temp_v1 = (phi_v1 + 4); + temp_v1->unk-4 = (?32) *phi_a0; + phi_a0 = temp_a0; + phi_v1 = temp_v1; + if (temp_a0 != &dword_CODE_bss_800607CC) + { + goto block_1; + } + return &dword_CODE_bss_800607CC; +} +#else +GLOBAL_ASM( +.text +glabel video_related_2 +/* 003410 70002810 3C0E8006 */ lui $t6, %hi(dword_CODE_bss_800604A8) +/* 003414 70002814 8DCE04A8 */ lw $t6, %lo(dword_CODE_bss_800604A8)($t6) +/* 003418 70002818 3C018006 */ lui $at, %hi(dword_CODE_bss_800604A4) +/* 00341C 7000281C 3C038006 */ lui $v1, %hi(dword_CODE_bss_800607B0) +/* 003420 70002820 3C048006 */ lui $a0, %hi(dword_CODE_bss_800607C0) +/* 003424 70002824 3C028006 */ lui $v0, %hi(dword_CODE_bss_800607CC) +/* 003428 70002828 244207CC */ addiu $v0, %lo(dword_CODE_bss_800607CC) # addiu $v0, $v0, 0x7cc +/* 00342C 7000282C 248407C0 */ addiu $a0, %lo(dword_CODE_bss_800607C0) # addiu $a0, $a0, 0x7c0 +/* 003430 70002830 246307B0 */ addiu $v1, %lo(dword_CODE_bss_800607B0) # addiu $v1, $v1, 0x7b0 +/* 003434 70002834 AC2E04A4 */ sw $t6, %lo(dword_CODE_bss_800604A4)($at) +.L70002838: +/* 003438 70002838 8C8F0000 */ lw $t7, ($a0) +/* 00343C 7000283C 24840004 */ addiu $a0, $a0, 4 +/* 003440 70002840 24630004 */ addiu $v1, $v1, 4 +/* 003444 70002844 1482FFFC */ bne $a0, $v0, .L70002838 +/* 003448 70002848 AC6FFFFC */ sw $t7, -4($v1) +/* 00344C 7000284C 03E00008 */ jr $ra +/* 003450 70002850 00000000 */ nop +) +#endif + + +/** + * 3454 70002854 + */ +#ifdef NONMATCHING +void video_related_3(s32 arg0) +{ + s32 sp34; + void *sp2C; + void *sp24; + void *sp1C; + s32 temp_a3; + s32 temp_v1; + void *temp_t0; + s32 temp_a0; + void *temp_v0; + s32 temp_a1; + s32 phi_a2; + s32 phi_a1; + + temp_a3 = (arg0 & 0xffff); + temp_v1 = (temp_a3 * 4); + temp_t0 = (temp_v1 + &dword_CODE_bss_800607D0); + temp_a0 = (arg0 >> 0x10); + sp34 = osSetIntMask(1); + if (temp_a0 == 3) + { + phi_a2 = ((0x80060000 + temp_v1)->unk-C10 | 0x8000); + } + else + { + phi_a2 = temp_a0; + if (temp_a0 == 6) + { + phi_a2 = ((0x80060000 + temp_v1)->unk-C10 & 0x7fff); + } + } + temp_v0 = (((temp_a3 << 8) + (*temp_t0 * 8)) + &dword_CODE_bss_800604B0); + sp2C = temp_v0; + *temp_v0 = (s32) phi_a2; + sp24 = (void *) (temp_v1 + &dword_CODE_bss_8005F3F0); + sp1C = temp_t0; + sp2C->unk4 = osGetCount(temp_a0, *temp_t0, phi_a2, temp_a3); + temp_a1 = (sp30 + 1); + *sp24 = sp38; + phi_a1 = temp_a1; + if (temp_a1 >= 0x20) + { + phi_a1 = 0; + } + *temp_t0 = (s32) phi_a1; + osSetIntMask(sp34, phi_a1, sp38); +} +#else +GLOBAL_ASM( +.text +glabel video_related_3 +/* 003454 70002854 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 003458 70002858 AFBF0014 */ sw $ra, 0x14($sp) +/* 00345C 7000285C AFA40040 */ sw $a0, 0x40($sp) +/* 003460 70002860 0C00374C */ jal osSetIntMask +/* 003464 70002864 24040001 */ li $a0, 1 +/* 003468 70002868 8FA90040 */ lw $t1, 0x40($sp) +/* 00346C 7000286C 3C0E8006 */ lui $t6, %hi(dword_CODE_bss_800607D0) +/* 003470 70002870 25CE07D0 */ addiu $t6, %lo(dword_CODE_bss_800607D0) # addiu $t6, $t6, 0x7d0 +/* 003474 70002874 3127FFFF */ andi $a3, $t1, 0xffff +/* 003478 70002878 00071880 */ sll $v1, $a3, 2 +/* 00347C 7000287C 006E4021 */ addu $t0, $v1, $t6 +/* 003480 70002880 24010003 */ li $at, 3 +/* 003484 70002884 00092403 */ sra $a0, $t1, 0x10 +/* 003488 70002888 AFA20034 */ sw $v0, 0x34($sp) +/* 00348C 7000288C 00803025 */ move $a2, $a0 +/* 003490 70002890 14810007 */ bne $a0, $at, .L700028B0 +/* 003494 70002894 8D050000 */ lw $a1, ($t0) +/* 003498 70002898 3C068006 */ lui $a2, %hi(dword_CODE_bss_8005F3F0) +/* 00349C 7000289C 00C33021 */ addu $a2, $a2, $v1 +/* 0034A0 700028A0 8CC6F3F0 */ lw $a2, %lo(dword_CODE_bss_8005F3F0)($a2) +/* 0034A4 700028A4 34CF8000 */ ori $t7, $a2, 0x8000 +/* 0034A8 700028A8 10000009 */ b .L700028D0 +/* 0034AC 700028AC 01E03025 */ move $a2, $t7 +.L700028B0: +/* 0034B0 700028B0 24010006 */ li $at, 6 +/* 0034B4 700028B4 54810007 */ bnel $a0, $at, .L700028D4 +/* 0034B8 700028B8 0007CA00 */ sll $t9, $a3, 8 +/* 0034BC 700028BC 3C068006 */ lui $a2, %hi(dword_CODE_bss_8005F3F0) +/* 0034C0 700028C0 00C33021 */ addu $a2, $a2, $v1 +/* 0034C4 700028C4 8CC6F3F0 */ lw $a2, %lo(dword_CODE_bss_8005F3F0)($a2) +/* 0034C8 700028C8 30D87FFF */ andi $t8, $a2, 0x7fff +/* 0034CC 700028CC 03003025 */ move $a2, $t8 +.L700028D0: +/* 0034D0 700028D0 0007CA00 */ sll $t9, $a3, 8 +.L700028D4: +/* 0034D4 700028D4 000550C0 */ sll $t2, $a1, 3 +/* 0034D8 700028D8 3C0C8006 */ lui $t4, %hi(dword_CODE_bss_800604B0) +/* 0034DC 700028DC 3C0D8006 */ lui $t5, %hi(dword_CODE_bss_8005F3F0) +/* 0034E0 700028E0 258C04B0 */ addiu $t4, %lo(dword_CODE_bss_800604B0) # addiu $t4, $t4, 0x4b0 +/* 0034E4 700028E4 032A5821 */ addu $t3, $t9, $t2 +/* 0034E8 700028E8 25ADF3F0 */ addiu $t5, %lo(dword_CODE_bss_8005F3F0) # addiu $t5, $t5, -0xc10 +/* 0034EC 700028EC 016C1021 */ addu $v0, $t3, $t4 +/* 0034F0 700028F0 006D7021 */ addu $t6, $v1, $t5 +/* 0034F4 700028F4 AFA2002C */ sw $v0, 0x2c($sp) +/* 0034F8 700028F8 AC460000 */ sw $a2, ($v0) +/* 0034FC 700028FC AFAE0024 */ sw $t6, 0x24($sp) +/* 003500 70002900 AFA50030 */ sw $a1, 0x30($sp) +/* 003504 70002904 AFA60038 */ sw $a2, 0x38($sp) +/* 003508 70002908 0C003638 */ jal osGetCount +/* 00350C 7000290C AFA8001C */ sw $t0, 0x1c($sp) +/* 003510 70002910 8FAF002C */ lw $t7, 0x2c($sp) +/* 003514 70002914 8FA50030 */ lw $a1, 0x30($sp) +/* 003518 70002918 8FA60038 */ lw $a2, 0x38($sp) +/* 00351C 7000291C 8FA8001C */ lw $t0, 0x1c($sp) +/* 003520 70002920 ADE20004 */ sw $v0, 4($t7) +/* 003524 70002924 8FB80024 */ lw $t8, 0x24($sp) +/* 003528 70002928 24A50001 */ addiu $a1, $a1, 1 +/* 00352C 7000292C 28A10020 */ slti $at, $a1, 0x20 +/* 003530 70002930 14200002 */ bnez $at, .L7000293C +/* 003534 70002934 AF060000 */ sw $a2, ($t8) +/* 003538 70002938 00002825 */ move $a1, $zero +.L7000293C: +/* 00353C 7000293C AD050000 */ sw $a1, ($t0) +/* 003540 70002940 0C00374C */ jal osSetIntMask +/* 003544 70002944 8FA40034 */ lw $a0, 0x34($sp) +/* 003548 70002948 8FBF0014 */ lw $ra, 0x14($sp) +/* 00354C 7000294C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 003550 70002950 03E00008 */ jr $ra +/* 003554 70002954 00000000 */ nop +) +#endif + + +/** + * 3558 70002958 draw "display speed" display + * accepts: A0=p->display list + */ +#ifdef NONMATCHING +void display_speed_graph(void) { + +} +#else +GLOBAL_ASM( +.text +glabel display_speed_graph +/* 003558 70002958 3C038005 */ lui $v1, %hi(D_80048498) +/* 00355C 7000295C 3C0E8002 */ lui $t6, %hi(D_80023228) +/* 003560 70002960 8C638498 */ lw $v1, %lo(D_80048498)($v1) +/* 003564 70002964 8DCE3228 */ lw $t6, %lo(D_80023228)($t6) +/* 003568 70002968 3C028002 */ lui $v0, %hi(D_80023224) +/* 00356C 7000296C 8C423224 */ lw $v0, %lo(D_80023224)($v0) +/* 003570 70002970 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 003574 70002974 01C3082A */ slt $at, $t6, $v1 +/* 003578 70002978 AFBF001C */ sw $ra, 0x1c($sp) +/* 00357C 7000297C AFB00018 */ sw $s0, 0x18($sp) +/* 003580 70002980 10200003 */ beqz $at, .L70002990 +/* 003584 70002984 00431021 */ addu $v0, $v0, $v1 +/* 003588 70002988 3C018002 */ lui $at, %hi(D_80023228) +/* 00358C 7000298C AC233228 */ sw $v1, %lo(D_80023228)($at) +.L70002990: +/* 003590 70002990 3C018002 */ lui $at, %hi(D_80023224) +/* 003594 70002994 AC223224 */ sw $v0, %lo(D_80023224)($at) +/* 003598 70002998 2C410015 */ sltiu $at, $v0, 0x15 +/* 00359C 7000299C 142000BB */ bnez $at, .L70002C8C +/* 0035A0 700029A0 3C018002 */ lui $at, %hi(D_80023224) +/* 0035A4 700029A4 AC223224 */ sw $v0, %lo(D_80023224)($at) +/* 0035A8 700029A8 2C410015 */ sltiu $at, $v0, 0x15 +/* 0035AC 700029AC 14200006 */ bnez $at, .L700029C8 +/* 0035B0 700029B0 2442FFEC */ addiu $v0, $v0, -0x14 +.L700029B4: +/* 0035B4 700029B4 2C410015 */ sltiu $at, $v0, 0x15 +/* 0035B8 700029B8 5020FFFE */ beql $at, $zero, .L700029B4 +/* 0035BC 700029BC 2442FFEC */ addiu $v0, $v0, -0x14 +/* 0035C0 700029C0 3C018002 */ lui $at, %hi(D_80023224) +/* 0035C4 700029C4 AC223224 */ sw $v0, %lo(D_80023224)($at) +.L700029C8: +/* 0035C8 700029C8 0C000447 */ jal get_counters +/* 0035CC 700029CC AFA40048 */ sw $a0, 0x48($sp) +/* 0035D0 700029D0 AFA20044 */ sw $v0, 0x44($sp) +/* 0035D4 700029D4 240400FF */ li $a0, 255 +/* 0035D8 700029D8 240500FF */ li $a1, 255 +/* 0035DC 700029DC 240600FF */ li $a2, 255 +/* 0035E0 700029E0 0C002C1B */ jal set_debug_text_color +/* 0035E4 700029E4 240700FF */ li $a3, 255 +/* 0035E8 700029E8 00002025 */ move $a0, $zero +/* 0035EC 700029EC 00002825 */ move $a1, $zero +/* 0035F0 700029F0 00003025 */ move $a2, $zero +/* 0035F4 700029F4 0C002C26 */ jal set_color_speedgraph +/* 0035F8 700029F8 240700FF */ li $a3, 255 +/* 0035FC 700029FC 24040008 */ li $a0, 8 +/* 003600 70002A00 0C002C10 */ jal set_final_debug_text_positions +/* 003604 70002A04 24050005 */ li $a1, 5 +/* 003608 70002A08 8FA20044 */ lw $v0, 0x44($sp) +/* 00360C 70002A0C 27B00030 */ addiu $s0, $sp, 0x30 +/* 003610 70002A10 3C058003 */ lui $a1, %hi(aUtz2_0f) +/* 003614 70002A14 8C4F0004 */ lw $t7, 4($v0) +/* 003618 70002A18 8C58000C */ lw $t8, 0xc($v0) +/* 00361C 70002A1C 24A58420 */ addiu $a1, %lo(aUtz2_0f) # addiu $a1, $a1, -0x7be0 +/* 003620 70002A20 02002025 */ move $a0, $s0 +/* 003624 70002A24 01F8C823 */ subu $t9, $t7, $t8 +/* 003628 70002A28 44992000 */ mtc1 $t9, $f4 +/* 00362C 70002A2C 07210005 */ bgez $t9, .L70002A44 +/* 003630 70002A30 468021A0 */ cvt.s.w $f6, $f4 +/* 003634 70002A34 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 003638 70002A38 44814000 */ mtc1 $at, $f8 +/* 00363C 70002A3C 00000000 */ nop +/* 003640 70002A40 46083180 */ add.s $f6, $f6, $f8 +.L70002A44: +/* 003644 70002A44 8C480000 */ lw $t0, ($v0) +/* 003648 70002A48 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 00364C 70002A4C 44815000 */ mtc1 $at, $f10 +/* 003650 70002A50 44889000 */ mtc1 $t0, $f18 +/* 003654 70002A54 460A3402 */ mul.s $f16, $f6, $f10 +/* 003658 70002A58 05010005 */ bgez $t0, .L70002A70 +/* 00365C 70002A5C 46809120 */ cvt.s.w $f4, $f18 +/* 003660 70002A60 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 003664 70002A64 44814000 */ mtc1 $at, $f8 +/* 003668 70002A68 00000000 */ nop +/* 00366C 70002A6C 46082100 */ add.s $f4, $f4, $f8 +.L70002A70: +/* 003670 70002A70 46048183 */ div.s $f6, $f16, $f4 +/* 003674 70002A74 460032A1 */ cvt.d.s $f10, $f6 +/* 003678 70002A78 44075000 */ mfc1 $a3, $f10 +/* 00367C 70002A7C 44065800 */ mfc1 $a2, $f11 +/* 003680 70002A80 0C002B25 */ jal sprintf +/* 003684 70002A84 00000000 */ nop +/* 003688 70002A88 0C002C7A */ jal write_string_stdout +/* 00368C 70002A8C 02002025 */ move $a0, $s0 +/* 003690 70002A90 24040008 */ li $a0, 8 +/* 003694 70002A94 0C002C10 */ jal set_final_debug_text_positions +/* 003698 70002A98 24050006 */ li $a1, 6 +/* 00369C 70002A9C 8FA30044 */ lw $v1, 0x44($sp) +/* 0036A0 70002AA0 3C058003 */ lui $a1, %hi(aRsp2_0f) +/* 0036A4 70002AA4 24A58430 */ addiu $a1, %lo(aRsp2_0f) # addiu $a1, $a1, -0x7bd0 +/* 0036A8 70002AA8 8C620000 */ lw $v0, ($v1) +/* 0036AC 70002AAC 8C690004 */ lw $t1, 4($v1) +/* 0036B0 70002AB0 02002025 */ move $a0, $s0 +/* 0036B4 70002AB4 44825000 */ mtc1 $v0, $f10 +/* 0036B8 70002AB8 00495023 */ subu $t2, $v0, $t1 +/* 0036BC 70002ABC 448A9000 */ mtc1 $t2, $f18 +/* 0036C0 70002AC0 05410005 */ bgez $t2, .L70002AD8 +/* 0036C4 70002AC4 46809220 */ cvt.s.w $f8, $f18 +/* 0036C8 70002AC8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0036CC 70002ACC 44818000 */ mtc1 $at, $f16 +/* 0036D0 70002AD0 00000000 */ nop +/* 0036D4 70002AD4 46104200 */ add.s $f8, $f8, $f16 +.L70002AD8: +/* 0036D8 70002AD8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0036DC 70002ADC 44812000 */ mtc1 $at, $f4 +/* 0036E0 70002AE0 468054A0 */ cvt.s.w $f18, $f10 +/* 0036E4 70002AE4 46044182 */ mul.s $f6, $f8, $f4 +/* 0036E8 70002AE8 04410004 */ bgez $v0, .L70002AFC +/* 0036EC 70002AEC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0036F0 70002AF0 44818000 */ mtc1 $at, $f16 +/* 0036F4 70002AF4 00000000 */ nop +/* 0036F8 70002AF8 46109480 */ add.s $f18, $f18, $f16 +.L70002AFC: +/* 0036FC 70002AFC 46123203 */ div.s $f8, $f6, $f18 +/* 003700 70002B00 46004121 */ cvt.d.s $f4, $f8 +/* 003704 70002B04 44072000 */ mfc1 $a3, $f4 +/* 003708 70002B08 44062800 */ mfc1 $a2, $f5 +/* 00370C 70002B0C 0C002B25 */ jal sprintf +/* 003710 70002B10 00000000 */ nop +/* 003714 70002B14 0C002C7A */ jal write_string_stdout +/* 003718 70002B18 02002025 */ move $a0, $s0 +/* 00371C 70002B1C 24040008 */ li $a0, 8 +/* 003720 70002B20 0C002C10 */ jal set_final_debug_text_positions +/* 003724 70002B24 24050007 */ li $a1, 7 +/* 003728 70002B28 8FAB0044 */ lw $t3, 0x44($sp) +/* 00372C 70002B2C 3C058003 */ lui $a1, %hi(aTex2_0f) +/* 003730 70002B30 24A58440 */ addiu $a1, %lo(aTex2_0f) # addiu $a1, $a1, -0x7bc0 +/* 003734 70002B34 8D6C000C */ lw $t4, 0xc($t3) +/* 003738 70002B38 02002025 */ move $a0, $s0 +/* 00373C 70002B3C 448C5000 */ mtc1 $t4, $f10 +/* 003740 70002B40 05810005 */ bgez $t4, .L70002B58 +/* 003744 70002B44 46805420 */ cvt.s.w $f16, $f10 +/* 003748 70002B48 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 00374C 70002B4C 44813000 */ mtc1 $at, $f6 +/* 003750 70002B50 00000000 */ nop +/* 003754 70002B54 46068400 */ add.s $f16, $f16, $f6 +.L70002B58: +/* 003758 70002B58 8D6D0000 */ lw $t5, ($t3) +/* 00375C 70002B5C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 003760 70002B60 44819000 */ mtc1 $at, $f18 +/* 003764 70002B64 448D2000 */ mtc1 $t5, $f4 +/* 003768 70002B68 46128202 */ mul.s $f8, $f16, $f18 +/* 00376C 70002B6C 05A10005 */ bgez $t5, .L70002B84 +/* 003770 70002B70 468022A0 */ cvt.s.w $f10, $f4 +/* 003774 70002B74 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 003778 70002B78 44813000 */ mtc1 $at, $f6 +/* 00377C 70002B7C 00000000 */ nop +/* 003780 70002B80 46065280 */ add.s $f10, $f10, $f6 +.L70002B84: +/* 003784 70002B84 460A4403 */ div.s $f16, $f8, $f10 +/* 003788 70002B88 460084A1 */ cvt.d.s $f18, $f16 +/* 00378C 70002B8C 44079000 */ mfc1 $a3, $f18 +/* 003790 70002B90 44069800 */ mfc1 $a2, $f19 +/* 003794 70002B94 0C002B25 */ jal sprintf +/* 003798 70002B98 00000000 */ nop +/* 00379C 70002B9C 0C002C7A */ jal write_string_stdout +/* 0037A0 70002BA0 02002025 */ move $a0, $s0 +/* 0037A4 70002BA4 2404001C */ li $a0, 28 +/* 0037A8 70002BA8 0C002C10 */ jal set_final_debug_text_positions +/* 0037AC 70002BAC 24050005 */ li $a1, 5 +/* 0037B0 70002BB0 3C038005 */ lui $v1, %hi(D_80048498) +/* 0037B4 70002BB4 8C638498 */ lw $v1, %lo(D_80048498)($v1) +/* 0037B8 70002BB8 02002025 */ move $a0, $s0 +/* 0037BC 70002BBC 3C058003 */ lui $a1, %hi(a2dHz) +/* 0037C0 70002BC0 14600003 */ bnez $v1, .L70002BD0 +/* 0037C4 70002BC4 240E003C */ li $t6, 60 +/* 0037C8 70002BC8 1000000C */ b .L70002BFC +/* 0037CC 70002BCC 00003025 */ move $a2, $zero +.L70002BD0: +/* 0037D0 70002BD0 01C3001A */ div $zero, $t6, $v1 +/* 0037D4 70002BD4 00003012 */ mflo $a2 +/* 0037D8 70002BD8 14600002 */ bnez $v1, .L70002BE4 +/* 0037DC 70002BDC 00000000 */ nop +/* 0037E0 70002BE0 0007000D */ break 7 +.L70002BE4: +/* 0037E4 70002BE4 2401FFFF */ li $at, -1 +/* 0037E8 70002BE8 14610004 */ bne $v1, $at, .L70002BFC +/* 0037EC 70002BEC 3C018000 */ lui $at, 0x8000 +/* 0037F0 70002BF0 15C10002 */ bne $t6, $at, .L70002BFC +/* 0037F4 70002BF4 00000000 */ nop +/* 0037F8 70002BF8 0006000D */ break 6 +.L70002BFC: +/* 0037FC 70002BFC 0C002B25 */ jal sprintf +/* 003800 70002C00 24A5844C */ addiu $a1, %lo(a2dHz) # addiu $a1, $a1, -0x7bb4 +/* 003804 70002C04 0C002C7A */ jal write_string_stdout +/* 003808 70002C08 02002025 */ move $a0, $s0 +/* 00380C 70002C0C 2404001C */ li $a0, 28 +/* 003810 70002C10 0C002C10 */ jal set_final_debug_text_positions +/* 003814 70002C14 24050006 */ li $a1, 6 +/* 003818 70002C18 3C058003 */ lui $a1, %hi(a2dFrames) +/* 00381C 70002C1C 3C068005 */ lui $a2, %hi(D_80048498) +/* 003820 70002C20 8CC68498 */ lw $a2, %lo(D_80048498)($a2) +/* 003824 70002C24 24A58454 */ addiu $a1, %lo(a2dFrames) # addiu $a1, $a1, -0x7bac +/* 003828 70002C28 0C002B25 */ jal sprintf +/* 00382C 70002C2C 02002025 */ move $a0, $s0 +/* 003830 70002C30 0C002C7A */ jal write_string_stdout +/* 003834 70002C34 02002025 */ move $a0, $s0 +/* 003838 70002C38 3C0F8002 */ lui $t7, %hi(D_80023228) +/* 00383C 70002C3C 3C188005 */ lui $t8, %hi(D_80048498) +/* 003840 70002C40 8F188498 */ lw $t8, %lo(D_80048498)($t8) +/* 003844 70002C44 8DEF3228 */ lw $t7, %lo(D_80023228)($t7) +/* 003848 70002C48 02002025 */ move $a0, $s0 +/* 00384C 70002C4C 3C058003 */ lui $a1, %hi(asc_D_80028468) +/* 003850 70002C50 11F80007 */ beq $t7, $t8, .L70002C70 +/* 003854 70002C54 01E03025 */ move $a2, $t7 +/* 003858 70002C58 3C058003 */ lui $a1, %hi(a2d) +/* 00385C 70002C5C 24A58460 */ addiu $a1, %lo(a2d) # addiu $a1, $a1, -0x7ba0 +/* 003860 70002C60 0C002B25 */ jal sprintf +/* 003864 70002C64 02002025 */ move $a0, $s0 +/* 003868 70002C68 10000003 */ b .L70002C78 +/* 00386C 70002C6C 00000000 */ nop +.L70002C70: +/* 003870 70002C70 0C002B25 */ jal sprintf +/* 003874 70002C74 24A58468 */ addiu $a1, $a1, %lo(asc_D_80028468) +.L70002C78: +/* 003878 70002C78 0C002C7A */ jal write_string_stdout +/* 00387C 70002C7C 02002025 */ move $a0, $s0 +/* 003880 70002C80 3C018002 */ lui $at, %hi(D_80023228) +/* 003884 70002C84 AC203228 */ sw $zero, %lo(D_80023228)($at) +/* 003888 70002C88 8FA40048 */ lw $a0, 0x48($sp) +.L70002C8C: +/* 00388C 70002C8C 3C190600 */ lui $t9, 0x600 +/* 003890 70002C90 AC990000 */ sw $t9, ($a0) +/* 003894 70002C94 3C088006 */ lui $t0, %hi(displaylist_bank) +/* 003898 70002C98 8D0804A0 */ lw $t0, %lo(displaylist_bank)($t0) +/* 00389C 70002C9C 3C0C8006 */ lui $t4, %hi(displaylist_0) +/* 0038A0 70002CA0 258CF400 */ addiu $t4, %lo(displaylist_0) # addiu $t4, $t4, -0xc00 +/* 0038A4 70002CA4 39090001 */ xori $t1, $t0, 1 +/* 0038A8 70002CA8 00095140 */ sll $t2, $t1, 5 +/* 0038AC 70002CAC 01495021 */ addu $t2, $t2, $t1 +/* 0038B0 70002CB0 000A5080 */ sll $t2, $t2, 2 +/* 0038B4 70002CB4 01495021 */ addu $t2, $t2, $t1 +/* 0038B8 70002CB8 000A5100 */ sll $t2, $t2, 4 +/* 0038BC 70002CBC 014C5821 */ addu $t3, $t2, $t4 +/* 0038C0 70002CC0 AC8B0004 */ sw $t3, 4($a0) +/* 0038C4 70002CC4 8FBF001C */ lw $ra, 0x1c($sp) +/* 0038C8 70002CC8 8FB00018 */ lw $s0, 0x18($sp) +/* 0038CC 70002CCC 24820008 */ addiu $v0, $a0, 8 +/* 0038D0 70002CD0 03E00008 */ jr $ra +/* 0038D4 70002CD4 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + +/** + * 38D8 70002CD8 + */ +#ifdef NONMATCHING +u32 video_DL_related_4(void) +{ + s32 spC8; + ? spB8; + ? spAC; + ? spA0; + s32 sp80; + void *sp70; + u32 temp_v0; + u32 temp_s4; + u32 temp_s5; + void *temp_s4_2; + void *temp_s5_2; + void *temp_v0_2; + void *temp_t0; + f32 temp_f12; + s32 temp_s3; + s32 temp_s1; + s32 temp_t9; + s32 temp_t3; + u32 temp_ret; + u32 phi_s4; + u32 phi_s5; + s32 phi_s1; + u32 phi_v1; + s32 phi_a1; + void *phi_s3; + void *phi_v0; + s32 phi_s2; + s32 phi_t9; + s32 phi_a1_2; + s32 phi_a1_3; + void *phi_s3_2; + u32 phi_return; + void *phi_s3_3; + void *phi_s3_4; + s32 phi_s3_5; + + temp_v0 = (counterforframes + D_80048498); + counterforframes = temp_v0; + if (temp_v0 >= 0xc9U) + { + D_80023234 = (s32) (D_80023234 ^ 1); + counterforframes = (u32) (temp_v0 + -0xc8); + } + D_8002322C = (s32) (D_8002322C + 1); + phi_return = temp_v0; + if (D_80023234 != (D_8002322C & 1)) + { + phi_s4 = &spAC; +block_4: + temp_s4 = (phi_s4 + 4); + temp_s4->unk-4 = 0; + phi_s4 = temp_s4; + if (temp_s4 < &spB8) + { + goto block_4; + } + phi_s5 = &spA0; +block_6: + temp_s5 = (phi_s5 + 4); + temp_s5->unk-4 = (u32) dword_CODE_bss_800604A4; + phi_s5 = temp_s5; + if (temp_s5 < &spAC) + { + goto block_6; + } + sp70 = &dword_CODE_bss_800607B0; + spC8 = 0; + sp80 = 0; + phi_s3_4 = sub_GAME_7F0D1AC0(((displaylist_bank * 0x850) + &displaylist_0)); +block_8: + temp_s4_2 = (sp80 + &spAC); + phi_a1_3 = subroutine_arg0; + phi_s3_2 = phi_s3_4; + if (*sp70 != subroutine_arg0) + { + temp_s5_2 = (sp80 + &spA0); + phi_s1 = *sp70; + phi_a1 = subroutine_arg0; + phi_s3 = phi_s3_4; +block_10: + temp_v0_2 = (((spC8 << 8) + &dword_CODE_bss_800604B0) + (phi_s1 * 8)); + phi_s2 = *temp_v0_2; + if ((*temp_v0_2 & 0x8000) != 0) + { + phi_s2 = 3; + } + phi_v1 = *temp_s5_2; + if ((u32) *temp_s5_2 < (u32) dword_CODE_bss_800604A4) + { + phi_v1 = dword_CODE_bss_800604A4; + } + phi_a1_2 = phi_a1; + phi_s3_3 = phi_s3; + if ((u32) temp_v0_2->unk4 >= (u32) dword_CODE_bss_800604A4) + { + phi_a1_2 = phi_a1; + phi_s3_3 = phi_s3; + if ((u32) temp_v0_2->unk4 >= (u32) phi_v1) + { + if (1 != *temp_s4_2) + { + if (*temp_s4_2 != 3) + { + if ((*temp_s4_2 & 0x8000) == 0) + { + if ((temp_v0_2->unk4 - phi_v1) < 0) + { + + } + } + } + } + temp_t0 = ((*temp_s4_2 * 0x10) + &D_800231D4+4); + temp_f12 = ((f32) (u32) (temp_v0_2->unk4 - phi_v1) / aIL0); + if (1 == *temp_s4_2) + { + sub_GAME_7F0D1DCC(temp_f12, dword_CODE_bss_800604A4, phi_a1); + phi_v0 = phi_s3; + phi_s3_5 = (s32) phi_s3; + } + else + { + temp_s3 = sub_GAME_7F0D1BD0(temp_f12, phi_s3, temp_f12, (((s32) temp_t0->unk4 >> 0x18) & 0xff), (((s32) temp_t0->unk4 >> 0x10) & 0xff), (s32) (((s32) temp_t0->unk4 >> 8) & 0xff), (?32) temp_t0->unk8, (?32) temp_t0->unkC); + phi_v0 = temp_s3; + phi_s3_5 = temp_s3; + } + *phi_v0 = 0xe7000000; + phi_v0->unk4 = 0; + phi_a1_2 = subroutine_arg0; + phi_s3_3 = (phi_s3_5 + 8); + } + } + temp_s1 = (phi_s1 + 1); + *temp_s4_2 = (s32) phi_s2; + *temp_s5_2 = (u32) temp_v0_2->unk4; + temp_t9 = (temp_s1 & 0x1f); + phi_t9 = temp_t9; + if (temp_s1 < 0) + { + phi_t9 = temp_t9; + if (temp_t9 != 0) + { + phi_t9 = (temp_t9 + -0x20); + } + } + phi_s1 = phi_t9; + phi_a1 = phi_a1_2; + phi_s3 = phi_s3_3; + phi_a1_3 = phi_a1_2; + phi_s3_2 = phi_s3_3; + if (phi_t9 != phi_a1_2) + { + goto block_10; + } + } + if (spC8 < 2) + { + sub_GAME_7F0D2320(phi_a1_3); + } + temp_t3 = (spC8 + 1); + sp70 = (void *) (sp70 + 4); + sp80 = (s32) (sp80 + 4); + spC8 = temp_t3; + phi_s3_4 = phi_s3_2; + if (temp_t3 != 3) + { + goto block_8; + } + temp_ret = sub_GAME_7F0D1E98(phi_s3_2, 0, 0, 0); + *temp_ret = 0xe7000000; + temp_ret->unk4 = 0; + temp_ret->unk8 = 0xb8000000; + temp_ret->unkC = 0; + displaylist_bank = (s32) (displaylist_bank ^ 1); + phi_return = temp_ret; + } + return phi_return; +} +#else +GLOBAL_ASM( +.text +glabel video_DL_related_4 +/* 0038D8 70002CD8 27BDFF30 */ addiu $sp, $sp, -0xd0 +/* 0038DC 70002CDC 3C028002 */ lui $v0, %hi(counterforframes) +/* 0038E0 70002CE0 3C0E8005 */ lui $t6, %hi(D_80048498) +/* 0038E4 70002CE4 8C423230 */ lw $v0, %lo(counterforframes)($v0) +/* 0038E8 70002CE8 8DCE8498 */ lw $t6, %lo(D_80048498)($t6) +/* 0038EC 70002CEC 3C018002 */ lui $at, %hi(counterforframes) +/* 0038F0 70002CF0 AFBF005C */ sw $ra, 0x5c($sp) +/* 0038F4 70002CF4 004E1021 */ addu $v0, $v0, $t6 +/* 0038F8 70002CF8 AC223230 */ sw $v0, %lo(counterforframes)($at) +/* 0038FC 70002CFC 2C4100C9 */ sltiu $at, $v0, 0xc9 +/* 003900 70002D00 AFBE0058 */ sw $fp, 0x58($sp) +/* 003904 70002D04 AFB70054 */ sw $s7, 0x54($sp) +/* 003908 70002D08 AFB60050 */ sw $s6, 0x50($sp) +/* 00390C 70002D0C AFB5004C */ sw $s5, 0x4c($sp) +/* 003910 70002D10 AFB40048 */ sw $s4, 0x48($sp) +/* 003914 70002D14 AFB30044 */ sw $s3, 0x44($sp) +/* 003918 70002D18 AFB20040 */ sw $s2, 0x40($sp) +/* 00391C 70002D1C AFB1003C */ sw $s1, 0x3c($sp) +/* 003920 70002D20 AFB00038 */ sw $s0, 0x38($sp) +/* 003924 70002D24 F7B60030 */ sdc1 $f22, 0x30($sp) +/* 003928 70002D28 14200009 */ bnez $at, .L70002D50 +/* 00392C 70002D2C F7B40028 */ sdc1 $f20, 0x28($sp) +/* 003930 70002D30 3C0F8002 */ lui $t7, %hi(D_80023234) +/* 003934 70002D34 8DEF3234 */ lw $t7, %lo(D_80023234)($t7) +/* 003938 70002D38 3C018002 */ lui $at, %hi(D_80023234) +/* 00393C 70002D3C 2442FF38 */ addiu $v0, $v0, -0xc8 +/* 003940 70002D40 39F80001 */ xori $t8, $t7, 1 +/* 003944 70002D44 AC383234 */ sw $t8, %lo(D_80023234)($at) +/* 003948 70002D48 3C018002 */ lui $at, %hi(counterforframes) +/* 00394C 70002D4C AC223230 */ sw $v0, %lo(counterforframes)($at) +.L70002D50: +/* 003950 70002D50 3C038002 */ lui $v1, %hi(D_8002322C) +/* 003954 70002D54 8C63322C */ lw $v1, %lo(D_8002322C)($v1) +/* 003958 70002D58 3C198002 */ lui $t9, %hi(D_80023234) +/* 00395C 70002D5C 8F393234 */ lw $t9, %lo(D_80023234)($t9) +/* 003960 70002D60 30690001 */ andi $t1, $v1, 1 +/* 003964 70002D64 3C018002 */ lui $at, %hi(D_8002322C) +/* 003968 70002D68 24630001 */ addiu $v1, $v1, 1 +/* 00396C 70002D6C 132900AD */ beq $t9, $t1, .L70003024 +/* 003970 70002D70 AC23322C */ sw $v1, %lo(D_8002322C)($at) +/* 003974 70002D74 3C0A8006 */ lui $t2, %hi(displaylist_bank) +/* 003978 70002D78 8D4A04A0 */ lw $t2, %lo(displaylist_bank)($t2) +/* 00397C 70002D7C 3C0C8006 */ lui $t4, %hi(displaylist_0) +/* 003980 70002D80 258CF400 */ addiu $t4, %lo(displaylist_0) # addiu $t4, $t4, -0xc00 +/* 003984 70002D84 000A5940 */ sll $t3, $t2, 5 +/* 003988 70002D88 016A5821 */ addu $t3, $t3, $t2 +/* 00398C 70002D8C 000B5880 */ sll $t3, $t3, 2 +/* 003990 70002D90 016A5821 */ addu $t3, $t3, $t2 +/* 003994 70002D94 000B5900 */ sll $t3, $t3, 4 +/* 003998 70002D98 0FC346B0 */ jal sub_GAME_7F0D1AC0 +/* 00399C 70002D9C 016C2021 */ addu $a0, $t3, $t4 +/* 0039A0 70002DA0 00409825 */ move $s3, $v0 +/* 0039A4 70002DA4 27A200B8 */ addiu $v0, $sp, 0xb8 +/* 0039A8 70002DA8 27B400AC */ addiu $s4, $sp, 0xac +.L70002DAC: +/* 0039AC 70002DAC 26940004 */ addiu $s4, $s4, 4 +/* 0039B0 70002DB0 0282082B */ sltu $at, $s4, $v0 +/* 0039B4 70002DB4 1420FFFD */ bnez $at, .L70002DAC +/* 0039B8 70002DB8 AE80FFFC */ sw $zero, -4($s4) +/* 0039BC 70002DBC 3C048006 */ lui $a0, %hi(dword_CODE_bss_800604A4) +/* 0039C0 70002DC0 8C8404A4 */ lw $a0, %lo(dword_CODE_bss_800604A4)($a0) +/* 0039C4 70002DC4 27B500A0 */ addiu $s5, $sp, 0xa0 +/* 0039C8 70002DC8 27A200AC */ addiu $v0, $sp, 0xac +.L70002DCC: +/* 0039CC 70002DCC 26B50004 */ addiu $s5, $s5, 4 +/* 0039D0 70002DD0 02A2082B */ sltu $at, $s5, $v0 +/* 0039D4 70002DD4 1420FFFD */ bnez $at, .L70002DCC +/* 0039D8 70002DD8 AEA4FFFC */ sw $a0, -4($s5) +/* 0039DC 70002DDC 3C0D8006 */ lui $t5, %hi(dword_CODE_bss_800607B0) +/* 0039E0 70002DE0 25AD07B0 */ addiu $t5, %lo(dword_CODE_bss_800607B0) # addiu $t5, $t5, 0x7b0 +/* 0039E4 70002DE4 3C1E8006 */ lui $fp, %hi(dword_CODE_bss_800607D0) +/* 0039E8 70002DE8 3C018003 */ lui $at, %hi(aIL0) +/* 0039EC 70002DEC C4368470 */ lwc1 $f22, %lo(aIL0)($at) +/* 0039F0 70002DF0 27DE07D0 */ addiu $fp, %lo(dword_CODE_bss_800607D0) # addiu $fp, $fp, 0x7d0 +/* 0039F4 70002DF4 AFAD0070 */ sw $t5, 0x70($sp) +/* 0039F8 70002DF8 AFA000C8 */ sw $zero, 0xc8($sp) +/* 0039FC 70002DFC AFA00080 */ sw $zero, 0x80($sp) +/* 003A00 70002E00 24160001 */ li $s6, 1 +.L70002E04: +/* 003A04 70002E04 8FAE0070 */ lw $t6, 0x70($sp) +/* 003A08 70002E08 8FC50000 */ lw $a1, ($fp) +/* 003A0C 70002E0C 8FAF0080 */ lw $t7, 0x80($sp) +/* 003A10 70002E10 8DD10000 */ lw $s1, ($t6) +/* 003A14 70002E14 4480A000 */ mtc1 $zero, $f20 +/* 003A18 70002E18 27B800AC */ addiu $t8, $sp, 0xac +/* 003A1C 70002E1C 1225005F */ beq $s1, $a1, .L70002F9C +/* 003A20 70002E20 01F8A021 */ addu $s4, $t7, $t8 +/* 003A24 70002E24 8FA900C8 */ lw $t1, 0xc8($sp) +/* 003A28 70002E28 3C0B8006 */ lui $t3, %hi(dword_CODE_bss_800604B0) +/* 003A2C 70002E2C 256B04B0 */ addiu $t3, %lo(dword_CODE_bss_800604B0) # addiu $t3, $t3, 0x4b0 +/* 003A30 70002E30 27B900A0 */ addiu $t9, $sp, 0xa0 +/* 003A34 70002E34 00095200 */ sll $t2, $t1, 8 +/* 003A38 70002E38 014BB821 */ addu $s7, $t2, $t3 +/* 003A3C 70002E3C 01F9A821 */ addu $s5, $t7, $t9 +.L70002E40: +/* 003A40 70002E40 001160C0 */ sll $t4, $s1, 3 +/* 003A44 70002E44 02EC1021 */ addu $v0, $s7, $t4 +/* 003A48 70002E48 8C520000 */ lw $s2, ($v0) +/* 003A4C 70002E4C 3C048006 */ lui $a0, %hi(dword_CODE_bss_800604A4) +/* 003A50 70002E50 8C8404A4 */ lw $a0, %lo(dword_CODE_bss_800604A4)($a0) +/* 003A54 70002E54 324D8000 */ andi $t5, $s2, 0x8000 +/* 003A58 70002E58 51A00003 */ beql $t5, $zero, .L70002E68 +/* 003A5C 70002E5C 8EA30000 */ lw $v1, ($s5) +/* 003A60 70002E60 24120003 */ li $s2, 3 +/* 003A64 70002E64 8EA30000 */ lw $v1, ($s5) +.L70002E68: +/* 003A68 70002E68 8C500004 */ lw $s0, 4($v0) +/* 003A6C 70002E6C 0064082B */ sltu $at, $v1, $a0 +/* 003A70 70002E70 50200003 */ beql $at, $zero, .L70002E80 +/* 003A74 70002E74 0204082B */ sltu $at, $s0, $a0 +/* 003A78 70002E78 00801825 */ move $v1, $a0 +/* 003A7C 70002E7C 0204082B */ sltu $at, $s0, $a0 +.L70002E80: +/* 003A80 70002E80 1420003C */ bnez $at, .L70002F74 +/* 003A84 70002E84 0203082B */ sltu $at, $s0, $v1 +/* 003A88 70002E88 1420003A */ bnez $at, .L70002F74 +/* 003A8C 70002E8C 3C198002 */ lui $t9, %hi(D_800231D4) +/* 003A90 70002E90 8E820000 */ lw $v0, ($s4) +/* 003A94 70002E94 273931D4 */ addiu $t9, %lo(D_800231D4) # addiu $t9, $t9, 0x31d4 +/* 003A98 70002E98 02034823 */ subu $t1, $s0, $v1 +/* 003A9C 70002E9C 12C2000F */ beq $s6, $v0, .L70002EDC +/* 003AA0 70002EA0 00027900 */ sll $t7, $v0, 4 +/* 003AA4 70002EA4 24010003 */ li $at, 3 +/* 003AA8 70002EA8 1041000C */ beq $v0, $at, .L70002EDC +/* 003AAC 70002EAC 304E8000 */ andi $t6, $v0, 0x8000 +/* 003AB0 70002EB0 15C0000A */ bnez $t6, .L70002EDC +/* 003AB4 70002EB4 0203C023 */ subu $t8, $s0, $v1 +/* 003AB8 70002EB8 44982000 */ mtc1 $t8, $f4 +/* 003ABC 70002EBC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 003AC0 70002EC0 07010004 */ bgez $t8, .L70002ED4 +/* 003AC4 70002EC4 468021A0 */ cvt.s.w $f6, $f4 +/* 003AC8 70002EC8 44814000 */ mtc1 $at, $f8 +/* 003ACC 70002ECC 00000000 */ nop +/* 003AD0 70002ED0 46083180 */ add.s $f6, $f6, $f8 +.L70002ED4: +/* 003AD4 70002ED4 46163283 */ div.s $f10, $f6, $f22 +/* 003AD8 70002ED8 460AA500 */ add.s $f20, $f20, $f10 +.L70002EDC: +/* 003ADC 70002EDC 44898000 */ mtc1 $t1, $f16 +/* 003AE0 70002EE0 01F94021 */ addu $t0, $t7, $t9 +/* 003AE4 70002EE4 05210005 */ bgez $t1, .L70002EFC +/* 003AE8 70002EE8 468084A0 */ cvt.s.w $f18, $f16 +/* 003AEC 70002EEC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 003AF0 70002EF0 44812000 */ mtc1 $at, $f4 +/* 003AF4 70002EF4 00000000 */ nop +/* 003AF8 70002EF8 46049480 */ add.s $f18, $f18, $f4 +.L70002EFC: +/* 003AFC 70002EFC 16C20005 */ bne $s6, $v0, .L70002F14 +/* 003B00 70002F00 46169303 */ div.s $f12, $f18, $f22 +/* 003B04 70002F04 0FC34773 */ jal sub_GAME_7F0D1DCC +/* 003B08 70002F08 00000000 */ nop +/* 003B0C 70002F0C 10000014 */ b .L70002F60 +/* 003B10 70002F10 02601025 */ move $v0, $s3 +.L70002F14: +/* 003B14 70002F14 8D020004 */ lw $v0, 4($t0) +/* 003B18 70002F18 44056000 */ mfc1 $a1, $f12 +/* 003B1C 70002F1C 02602025 */ move $a0, $s3 +/* 003B20 70002F20 00026203 */ sra $t4, $v0, 8 +/* 003B24 70002F24 318D00FF */ andi $t5, $t4, 0xff +/* 003B28 70002F28 AFAD0010 */ sw $t5, 0x10($sp) +/* 003B2C 70002F2C 8D0E0008 */ lw $t6, 8($t0) +/* 003B30 70002F30 00023603 */ sra $a2, $v0, 0x18 +/* 003B34 70002F34 00023C03 */ sra $a3, $v0, 0x10 +/* 003B38 70002F38 AFAE0014 */ sw $t6, 0x14($sp) +/* 003B3C 70002F3C 8D18000C */ lw $t8, 0xc($t0) +/* 003B40 70002F40 30EB00FF */ andi $t3, $a3, 0xff +/* 003B44 70002F44 30CA00FF */ andi $t2, $a2, 0xff +/* 003B48 70002F48 01403025 */ move $a2, $t2 +/* 003B4C 70002F4C 01603825 */ move $a3, $t3 +/* 003B50 70002F50 0FC346F4 */ jal sub_GAME_7F0D1BD0 +/* 003B54 70002F54 AFB80018 */ sw $t8, 0x18($sp) +/* 003B58 70002F58 00409825 */ move $s3, $v0 +/* 003B5C 70002F5C 02601025 */ move $v0, $s3 +.L70002F60: +/* 003B60 70002F60 3C0FE700 */ lui $t7, 0xe700 +/* 003B64 70002F64 AC4F0000 */ sw $t7, ($v0) +/* 003B68 70002F68 AC400004 */ sw $zero, 4($v0) +/* 003B6C 70002F6C 26730008 */ addiu $s3, $s3, 8 +/* 003B70 70002F70 8FC50000 */ lw $a1, ($fp) +.L70002F74: +/* 003B74 70002F74 26310001 */ addiu $s1, $s1, 1 +/* 003B78 70002F78 AE920000 */ sw $s2, ($s4) +/* 003B7C 70002F7C AEB00000 */ sw $s0, ($s5) +/* 003B80 70002F80 06210004 */ bgez $s1, .L70002F94 +/* 003B84 70002F84 3239001F */ andi $t9, $s1, 0x1f +/* 003B88 70002F88 13200002 */ beqz $t9, .L70002F94 +/* 003B8C 70002F8C 00000000 */ nop +/* 003B90 70002F90 2739FFE0 */ addiu $t9, $t9, -0x20 +.L70002F94: +/* 003B94 70002F94 1725FFAA */ bne $t9, $a1, .L70002E40 +/* 003B98 70002F98 03208825 */ move $s1, $t9 +.L70002F9C: +/* 003B9C 70002F9C 8FA900C8 */ lw $t1, 0xc8($sp) +/* 003BA0 70002FA0 29210002 */ slti $at, $t1, 2 +/* 003BA4 70002FA4 50200004 */ beql $at, $zero, .L70002FB8 +/* 003BA8 70002FA8 8FAA00C8 */ lw $t2, 0xc8($sp) +/* 003BAC 70002FAC 0FC348C8 */ jal sub_GAME_7F0D2320 +/* 003BB0 70002FB0 00000000 */ nop +/* 003BB4 70002FB4 8FAA00C8 */ lw $t2, 0xc8($sp) +.L70002FB8: +/* 003BB8 70002FB8 8FAC0080 */ lw $t4, 0x80($sp) +/* 003BBC 70002FBC 8FAE0070 */ lw $t6, 0x70($sp) +/* 003BC0 70002FC0 24010003 */ li $at, 3 +/* 003BC4 70002FC4 254B0001 */ addiu $t3, $t2, 1 +/* 003BC8 70002FC8 258D0004 */ addiu $t5, $t4, 4 +/* 003BCC 70002FCC 25D80004 */ addiu $t8, $t6, 4 +/* 003BD0 70002FD0 AFB80070 */ sw $t8, 0x70($sp) +/* 003BD4 70002FD4 AFAD0080 */ sw $t5, 0x80($sp) +/* 003BD8 70002FD8 AFAB00C8 */ sw $t3, 0xc8($sp) +/* 003BDC 70002FDC 1561FF89 */ bne $t3, $at, .L70002E04 +/* 003BE0 70002FE0 27DE0004 */ addiu $fp, $fp, 4 +/* 003BE4 70002FE4 02602025 */ move $a0, $s3 +/* 003BE8 70002FE8 00002825 */ move $a1, $zero +/* 003BEC 70002FEC 00003025 */ move $a2, $zero +/* 003BF0 70002FF0 0FC347A6 */ jal sub_GAME_7F0D1E98 +/* 003BF4 70002FF4 00003825 */ move $a3, $zero +/* 003BF8 70002FF8 3C038006 */ lui $v1, %hi(displaylist_bank) +/* 003BFC 70002FFC 3C0FE700 */ lui $t7, 0xe700 +/* 003C00 70003000 3C19B800 */ lui $t9, 0xb800 +/* 003C04 70003004 246304A0 */ addiu $v1, %lo(displaylist_bank) # addiu $v1, $v1, 0x4a0 +/* 003C08 70003008 AC4F0000 */ sw $t7, ($v0) +/* 003C0C 7000300C AC400004 */ sw $zero, 4($v0) +/* 003C10 70003010 AC590008 */ sw $t9, 8($v0) +/* 003C14 70003014 AC40000C */ sw $zero, 0xc($v0) +/* 003C18 70003018 8C690000 */ lw $t1, ($v1) +/* 003C1C 7000301C 392A0001 */ xori $t2, $t1, 1 +/* 003C20 70003020 AC6A0000 */ sw $t2, ($v1) +.L70003024: +/* 003C24 70003024 8FBF005C */ lw $ra, 0x5c($sp) +/* 003C28 70003028 D7B40028 */ ldc1 $f20, 0x28($sp) +/* 003C2C 7000302C D7B60030 */ ldc1 $f22, 0x30($sp) +/* 003C30 70003030 8FB00038 */ lw $s0, 0x38($sp) +/* 003C34 70003034 8FB1003C */ lw $s1, 0x3c($sp) +/* 003C38 70003038 8FB20040 */ lw $s2, 0x40($sp) +/* 003C3C 7000303C 8FB30044 */ lw $s3, 0x44($sp) +/* 003C40 70003040 8FB40048 */ lw $s4, 0x48($sp) +/* 003C44 70003044 8FB5004C */ lw $s5, 0x4c($sp) +/* 003C48 70003048 8FB60050 */ lw $s6, 0x50($sp) +/* 003C4C 7000304C 8FB70054 */ lw $s7, 0x54($sp) +/* 003C50 70003050 8FBE0058 */ lw $fp, 0x58($sp) +/* 003C54 70003054 03E00008 */ jr $ra +/* 003C58 70003058 27BD00D0 */ addiu $sp, $sp, 0xd0 +) +#endif diff --git a/src/sprintf.c b/src/sprintf.c new file mode 100644 index 0000000..71db221 --- /dev/null +++ b/src/sprintf.c @@ -0,0 +1,74 @@ +#include "ultra64.h" + + + + +#ifdef NONMATCHING +s32 proutSprintf(s32 arg2) +{ + return memcpy() + arg2; +} +#else +GLOBAL_ASM( +.text +glabel proutSprintf +/* 00B870 7000AC70 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00B874 7000AC74 AFBF0014 */ sw $ra, 0x14($sp) +/* 00B878 7000AC78 0C004E14 */ jal memcpy +/* 00B87C 7000AC7C AFA60020 */ sw $a2, 0x20($sp) +/* 00B880 7000AC80 8FBF0014 */ lw $ra, 0x14($sp) +/* 00B884 7000AC84 8FAE0020 */ lw $t6, 0x20($sp) +/* 00B888 7000AC88 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00B88C 7000AC8C 03E00008 */ jr $ra +/* 00B890 7000AC90 004E1021 */ addu $v0, $v0, $t6 +) +#endif + + + + + +#ifdef NONMATCHING +s32 sprintf(s32 arg0, s32 arg1, ? arg2, ? arg3) +{ + s32 temp_ret; + + temp_ret = _Printf(&proutSprintf, arg0, arg1, &arg2); + if (temp_ret >= 0) + { + *(arg0 + temp_ret) = (u8)0; + } + return temp_ret + -1; +} +#else +GLOBAL_ASM( +.text +glabel sprintf +/* 00B894 7000AC94 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00B898 7000AC98 AFA40020 */ sw $a0, 0x20($sp) +/* 00B89C 7000AC9C AFBF0014 */ sw $ra, 0x14($sp) +/* 00B8A0 7000ACA0 AFA50024 */ sw $a1, 0x24($sp) +/* 00B8A4 7000ACA4 AFA60028 */ sw $a2, 0x28($sp) +/* 00B8A8 7000ACA8 AFA7002C */ sw $a3, 0x2c($sp) +/* 00B8AC 7000ACAC 3C047001 */ lui $a0, %hi(proutSprintf) # $a0, 0x7001 +/* 00B8B0 7000ACB0 2484AC70 */ addiu $a0, %lo(proutSprintf) # addiu $a0, $a0, -0x5390 +/* 00B8B4 7000ACB4 27A70028 */ addiu $a3, $sp, 0x28 +/* 00B8B8 7000ACB8 8FA60024 */ lw $a2, 0x24($sp) +/* 00B8BC 7000ACBC 0C004FD8 */ jal _Printf +/* 00B8C0 7000ACC0 8FA50020 */ lw $a1, 0x20($sp) +/* 00B8C4 7000ACC4 04400004 */ bltz $v0, .L7000ACD8 +/* 00B8C8 7000ACC8 00401825 */ move $v1, $v0 +/* 00B8CC 7000ACCC 8FAE0020 */ lw $t6, 0x20($sp) +/* 00B8D0 7000ACD0 01C27821 */ addu $t7, $t6, $v0 +/* 00B8D4 7000ACD4 A1E00000 */ sb $zero, ($t7) +.L7000ACD8: +/* 00B8D8 7000ACD8 8FBF0014 */ lw $ra, 0x14($sp) +/* 00B8DC 7000ACDC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 00B8E0 7000ACE0 2462FFFF */ addiu $v0, $v1, -1 +/* 00B8E4 7000ACE4 03E00008 */ jr $ra +/* 00B8E8 7000ACE8 00000000 */ nop +) +#endif + + + diff --git a/src/stacks.c b/src/stacks.c new file mode 100644 index 0000000..91d9264 --- /dev/null +++ b/src/stacks.c @@ -0,0 +1,9 @@ +#include "ultra64.h" + +u8 sp_boot[0x10]; +u8 sp_rmon[0x300]; +u8 sp_idle[0x40]; +u8 sp_shed[0x200]; +u8 sp_main[0x8000]; +u8 sp_audi[0x1000]; +u8 sp_debug[0x6B0]; diff --git a/src/str.c b/src/str.c new file mode 100644 index 0000000..fab0aee --- /dev/null +++ b/src/str.c @@ -0,0 +1,655 @@ +#include "ultra64.h" + + + + + +#ifdef NONMATCHING +void *textpointer_load_parse_something(void *arg0, void *arg1) { + void *temp_a1; + + // Node 0 + temp_a1 = (arg1 + 1); + *arg0 = (s8) *arg1; + if (*arg1 != 0) + { + loop_1: + // Node 1 + ((arg0 + 1) + 1)->unk-1 = (s8) *temp_a1; + if (*temp_a1 != 0) + { + goto loop_1; + } + } + // (possible return value: arg0) +} + +#else +GLOBAL_ASM( +.text +glabel textpointer_load_parse_something +/* 00B370 7000A770 90A20000 */ lbu $v0, ($a1) +/* 00B374 7000A774 24830001 */ addiu $v1, $a0, 1 +/* 00B378 7000A778 24A50001 */ addiu $a1, $a1, 1 +/* 00B37C 7000A77C 10400006 */ beqz $v0, .L7000A798 +/* 00B380 7000A780 A0820000 */ sb $v0, ($a0) +.L7000A784: +/* 00B384 7000A784 90A20000 */ lbu $v0, ($a1) +/* 00B388 7000A788 24630001 */ addiu $v1, $v1, 1 +/* 00B38C 7000A78C 24A50001 */ addiu $a1, $a1, 1 +/* 00B390 7000A790 1440FFFC */ bnez $v0, .L7000A784 +/* 00B394 7000A794 A062FFFF */ sb $v0, -1($v1) +.L7000A798: +/* 00B398 7000A798 03E00008 */ jr $ra +/* 00B39C 7000A79C 00801025 */ move $v0, $a0 +) +#endif + + + +#ifdef NONMATCHING +void *something_with_strings(void *arg0, void *arg1, s32 arg2) { + void *temp_v1; + void *temp_a1; + s32 temp_a2; + + // Node 0 + temp_v1 = (arg0 + 1); + temp_a1 = (arg1 + 1); + *arg0 = (s8) *arg1; + if (*arg1 != 0) + { + loop_1: + // Node 1 + if ((arg2 + -1) != 0) + { + // Node 2 + (temp_v1 + 1)->unk-1 = (s8) *temp_a1; + if (*temp_a1 != 0) + { + goto loop_1; + } + } + } + // Node 3 + temp_a2 = (arg2 + -1); + if (temp_a2 != 0) + { + loop_4: + // Node 4 + *temp_v1 = (u8)0; + if ((temp_a2 + -1) != 0) + { + goto loop_4; + } + } + // (possible return value: arg0) +} + +#else +GLOBAL_ASM( +.text +glabel something_with_strings +/* 00B3A0 7000A7A0 90A20000 */ lbu $v0, ($a1) +/* 00B3A4 7000A7A4 24830001 */ addiu $v1, $a0, 1 +/* 00B3A8 7000A7A8 24A50001 */ addiu $a1, $a1, 1 +/* 00B3AC 7000A7AC 10400009 */ beqz $v0, .L7000A7D4 +/* 00B3B0 7000A7B0 A0820000 */ sb $v0, ($a0) +.L7000A7B4: +/* 00B3B4 7000A7B4 24C6FFFF */ addiu $a2, $a2, -1 +/* 00B3B8 7000A7B8 50C00007 */ beql $a2, $zero, .L7000A7D8 +/* 00B3BC 7000A7BC 00C01025 */ move $v0, $a2 +/* 00B3C0 7000A7C0 90A20000 */ lbu $v0, ($a1) +/* 00B3C4 7000A7C4 24630001 */ addiu $v1, $v1, 1 +/* 00B3C8 7000A7C8 24A50001 */ addiu $a1, $a1, 1 +/* 00B3CC 7000A7CC 1440FFF9 */ bnez $v0, .L7000A7B4 +/* 00B3D0 7000A7D0 A062FFFF */ sb $v0, -1($v1) +.L7000A7D4: +/* 00B3D4 7000A7D4 00C01025 */ move $v0, $a2 +.L7000A7D8: +/* 00B3D8 7000A7D8 10C00006 */ beqz $a2, .L7000A7F4 +/* 00B3DC 7000A7DC 24C6FFFF */ addiu $a2, $a2, -1 +.L7000A7E0: +/* 00B3E0 7000A7E0 00C01025 */ move $v0, $a2 +/* 00B3E4 7000A7E4 A0600000 */ sb $zero, ($v1) +/* 00B3E8 7000A7E8 24630001 */ addiu $v1, $v1, 1 +/* 00B3EC 7000A7EC 14C0FFFC */ bnez $a2, .L7000A7E0 +/* 00B3F0 7000A7F0 24C6FFFF */ addiu $a2, $a2, -1 +.L7000A7F4: +/* 00B3F4 7000A7F4 03E00008 */ jr $ra +/* 00B3F8 7000A7F8 00801025 */ move $v0, $a0 +) +#endif + + + +#ifdef NONMATCHING +void *string_append_from_obseg_textbank(void *arg0, void *arg1) { + void *temp_v0; + void *temp_a1; + + // Node 0 + if (*arg0 != 0) + { + loop_1: + // Node 1 + if (arg0->unk1 != 0) + { + goto loop_1; + } + } + // Node 2 + temp_v0 = (arg0 + 1); + temp_a1 = (arg1 + 1); + temp_v0->unk-1 = (s8) *arg1; + if (*arg1 != 0) + { + loop_3: + // Node 3 + (temp_v0 + 1)->unk-1 = (s8) *temp_a1; + if (*temp_a1 != 0) + { + goto loop_3; + } + } + // (possible return value: arg0) +} + +#else +GLOBAL_ASM( +.text +glabel string_append_from_obseg_textbank +/* 00B3FC 7000A7FC 908E0000 */ lbu $t6, ($a0) +/* 00B400 7000A800 00801025 */ move $v0, $a0 +/* 00B404 7000A804 51C00006 */ beql $t6, $zero, .L7000A820 +/* 00B408 7000A808 90A30000 */ lbu $v1, ($a1) +/* 00B40C 7000A80C 904F0001 */ lbu $t7, 1($v0) +.L7000A810: +/* 00B410 7000A810 24420001 */ addiu $v0, $v0, 1 +/* 00B414 7000A814 55E0FFFE */ bnezl $t7, .L7000A810 +/* 00B418 7000A818 904F0001 */ lbu $t7, 1($v0) +/* 00B41C 7000A81C 90A30000 */ lbu $v1, ($a1) +.L7000A820: +/* 00B420 7000A820 24420001 */ addiu $v0, $v0, 1 +/* 00B424 7000A824 24A50001 */ addiu $a1, $a1, 1 +/* 00B428 7000A828 10600006 */ beqz $v1, .L7000A844 +/* 00B42C 7000A82C A043FFFF */ sb $v1, -1($v0) +.L7000A830: +/* 00B430 7000A830 90A30000 */ lbu $v1, ($a1) +/* 00B434 7000A834 24420001 */ addiu $v0, $v0, 1 +/* 00B438 7000A838 24A50001 */ addiu $a1, $a1, 1 +/* 00B43C 7000A83C 1460FFFC */ bnez $v1, .L7000A830 +/* 00B440 7000A840 A043FFFF */ sb $v1, -1($v0) +.L7000A844: +/* 00B444 7000A844 03E00008 */ jr $ra +/* 00B448 7000A848 00801025 */ move $v0, $a0 +) +#endif + + + +#ifdef NONMATCHING +void something_with_strings_0(void) { + +} +#else +GLOBAL_ASM( +.text +glabel something_with_strings_0 +.L7000A84C: +/* 00B44C 7000A84C 90820000 */ lbu $v0, ($a0) +/* 00B450 7000A850 90A30000 */ lbu $v1, ($a1) +/* 00B454 7000A854 24840001 */ addiu $a0, $a0, 1 +/* 00B458 7000A858 10430007 */ beq $v0, $v1, .L7000A878 +/* 00B45C 7000A85C 0043082A */ slt $at, $v0, $v1 +/* 00B460 7000A860 10200003 */ beqz $at, .L7000A870 +/* 00B464 7000A864 00000000 */ nop +/* 00B468 7000A868 03E00008 */ jr $ra +/* 00B46C 7000A86C 2402FFFF */ li $v0, -1 + +.L7000A870: +/* 00B470 7000A870 03E00008 */ jr $ra +/* 00B474 7000A874 24020001 */ li $v0, 1 + +.L7000A878: +/* 00B478 7000A878 14400003 */ bnez $v0, .L7000A888 +/* 00B47C 7000A87C 00000000 */ nop +/* 00B480 7000A880 03E00008 */ jr $ra +/* 00B484 7000A884 00001025 */ move $v0, $zero + +.L7000A888: +/* 00B488 7000A888 1000FFF0 */ b .L7000A84C +/* 00B48C 7000A88C 24A50001 */ addiu $a1, $a1, 1 +/* 00B490 7000A890 03E00008 */ jr $ra +/* 00B494 7000A894 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +void string_related(void) { + +} +#else +GLOBAL_ASM( +.text +glabel string_related +.L7000A898: +/* 00B498 7000A898 54C00004 */ bnezl $a2, .L7000A8AC +/* 00B49C 7000A89C 90820000 */ lbu $v0, ($a0) +/* 00B4A0 7000A8A0 03E00008 */ jr $ra +/* 00B4A4 7000A8A4 00001025 */ move $v0, $zero + +/* 00B4A8 7000A8A8 90820000 */ lbu $v0, ($a0) +.L7000A8AC: +/* 00B4AC 7000A8AC 90A30000 */ lbu $v1, ($a1) +/* 00B4B0 7000A8B0 24C6FFFF */ addiu $a2, $a2, -1 +/* 00B4B4 7000A8B4 24840001 */ addiu $a0, $a0, 1 +/* 00B4B8 7000A8B8 10430007 */ beq $v0, $v1, .L7000A8D8 +/* 00B4BC 7000A8BC 0043082A */ slt $at, $v0, $v1 +/* 00B4C0 7000A8C0 10200003 */ beqz $at, .L7000A8D0 +/* 00B4C4 7000A8C4 00000000 */ nop +/* 00B4C8 7000A8C8 03E00008 */ jr $ra +/* 00B4CC 7000A8CC 2402FFFF */ li $v0, -1 + +.L7000A8D0: +/* 00B4D0 7000A8D0 03E00008 */ jr $ra +/* 00B4D4 7000A8D4 24020001 */ li $v0, 1 + +.L7000A8D8: +/* 00B4D8 7000A8D8 14400003 */ bnez $v0, .L7000A8E8 +/* 00B4DC 7000A8DC 00000000 */ nop +/* 00B4E0 7000A8E0 03E00008 */ jr $ra +/* 00B4E4 7000A8E4 00001025 */ move $v0, $zero + +.L7000A8E8: +/* 00B4E8 7000A8E8 1000FFEB */ b .L7000A898 +/* 00B4EC 7000A8EC 24A50001 */ addiu $a1, $a1, 1 +/* 00B4F0 7000A8F0 03E00008 */ jr $ra +/* 00B4F4 7000A8F4 00000000 */ nop +) +#endif + + + +#ifdef NONMATCHING +s32 strtol_related(s32 arg0) { + s32 temp_t6; + + // Node 0 + temp_t6 = (arg0 & 0xff); + if (temp_t6 >= 0x61) + { + // Node 1 + if (temp_t6 < 0x7b) + { + // Node 2 + return; + // (possible return value: temp_t6) + } + } + // (possible return value: temp_t6) +} +#else +GLOBAL_ASM( +.text +glabel strtol_related +/* 00B4F8 7000A8F8 308E00FF */ andi $t6, $a0, 0xff +/* 00B4FC 7000A8FC AFA40000 */ sw $a0, ($sp) +/* 00B500 7000A900 29C10061 */ slti $at, $t6, 0x61 +/* 00B504 7000A904 14200007 */ bnez $at, .L7000A924 +/* 00B508 7000A908 01C02025 */ move $a0, $t6 +/* 00B50C 7000A90C 29C1007B */ slti $at, $t6, 0x7b +/* 00B510 7000A910 10200004 */ beqz $at, .L7000A924 +/* 00B514 7000A914 25C2FFE0 */ addiu $v0, $t6, -0x20 +/* 00B518 7000A918 304F00FF */ andi $t7, $v0, 0xff +/* 00B51C 7000A91C 03E00008 */ jr $ra +/* 00B520 7000A920 01E01025 */ move $v0, $t7 + +.L7000A924: +/* 00B524 7000A924 00801025 */ move $v0, $a0 +/* 00B528 7000A928 03E00008 */ jr $ra +/* 00B52C 7000A92C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 strtol_related_0(s32 arg0) { + // Node 0 + if ((((arg0 & 0xff) < 0x30) ^ 1) != 0) + { + // Node 1 + return; + // (possible return value: ((arg0 & 0xff) < 0x3a)) + } + // (possible return value: (((arg0 & 0xff) < 0x30) ^ 1)) +} +#else +GLOBAL_ASM( +.text +glabel strtol_related_0 +/* 00B530 7000A930 308E00FF */ andi $t6, $a0, 0xff +/* 00B534 7000A934 29C20030 */ slti $v0, $t6, 0x30 +/* 00B538 7000A938 38420001 */ xori $v0, $v0, 1 +/* 00B53C 7000A93C 10400002 */ beqz $v0, .L7000A948 +/* 00B540 7000A940 AFA40000 */ sw $a0, ($sp) +/* 00B544 7000A944 29C2003A */ slti $v0, $t6, 0x3a +.L7000A948: +/* 00B548 7000A948 03E00008 */ jr $ra +/* 00B54C 7000A94C 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 strtol_related_1(s32 arg0) { + s32 temp_t6; + + // Node 0 + temp_t6 = (arg0 & 0xff); + if ((temp_t6 < 0x61) || (temp_t6 >= 0x7b)) + { + // Node 2 + if (((temp_t6 < 0x41) ^ 1) != 0) + { + // Node 3 + return; + // (possible return value: (temp_t6 < 0x5b)) + } + } + else + { + + } + // (possible return value: ((temp_t6 < 0x41) ^ 1)) +} +#else +GLOBAL_ASM( +.text +glabel strtol_related_1 +/* 00B550 7000A950 308E00FF */ andi $t6, $a0, 0xff +/* 00B554 7000A954 29C20061 */ slti $v0, $t6, 0x61 +/* 00B558 7000A958 AFA40000 */ sw $a0, ($sp) +/* 00B55C 7000A95C 14400004 */ bnez $v0, .L7000A970 +/* 00B560 7000A960 01C01825 */ move $v1, $t6 +/* 00B564 7000A964 29C2007B */ slti $v0, $t6, 0x7b +/* 00B568 7000A968 14400006 */ bnez $v0, .L7000A984 +/* 00B56C 7000A96C 00000000 */ nop +.L7000A970: +/* 00B570 7000A970 28620041 */ slti $v0, $v1, 0x41 +/* 00B574 7000A974 38420001 */ xori $v0, $v0, 1 +/* 00B578 7000A978 10400002 */ beqz $v0, .L7000A984 +/* 00B57C 7000A97C 00000000 */ nop +/* 00B580 7000A980 2862005B */ slti $v0, $v1, 0x5b +.L7000A984: +/* 00B584 7000A984 03E00008 */ jr $ra +/* 00B588 7000A988 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +s32 strtol_related_2(s32 arg0) { + s32 temp_t6; + + // Node 0 + temp_t6 = (arg0 & 0xff); + if ((u32) (temp_t6 ^ 0x20) >= 1U) + { + // Node 1 + if ((u32) (temp_t6 ^ 9) >= 1U) + { + // Node 2 + if ((u32) (temp_t6 ^ 0xa) >= 1U) + { + // Node 3 + if ((u32) (temp_t6 ^ 0xc) >= 1U) + { + // Node 4 + return; + // (possible return value: ((u32) (temp_t6 ^ 0xb) < 1U)) + } + } + } + } + // (possible return value: ((u32) (temp_t6 ^ 0x20) < 1U)) +} +#else +GLOBAL_ASM( +.text +glabel strtol_related_2 +/* 00B58C 7000A98C 308E00FF */ andi $t6, $a0, 0xff +/* 00B590 7000A990 39C20020 */ xori $v0, $t6, 0x20 +/* 00B594 7000A994 2C420001 */ sltiu $v0, $v0, 1 +/* 00B598 7000A998 1440000F */ bnez $v0, .L7000A9D8 +/* 00B59C 7000A99C AFA40000 */ sw $a0, ($sp) +/* 00B5A0 7000A9A0 39C20009 */ xori $v0, $t6, 9 +/* 00B5A4 7000A9A4 2C420001 */ sltiu $v0, $v0, 1 +/* 00B5A8 7000A9A8 1440000B */ bnez $v0, .L7000A9D8 +/* 00B5AC 7000A9AC 00000000 */ nop +/* 00B5B0 7000A9B0 39C2000A */ xori $v0, $t6, 0xa +/* 00B5B4 7000A9B4 2C420001 */ sltiu $v0, $v0, 1 +/* 00B5B8 7000A9B8 14400007 */ bnez $v0, .L7000A9D8 +/* 00B5BC 7000A9BC 00000000 */ nop +/* 00B5C0 7000A9C0 39C2000C */ xori $v0, $t6, 0xc +/* 00B5C4 7000A9C4 2C420001 */ sltiu $v0, $v0, 1 +/* 00B5C8 7000A9C8 14400003 */ bnez $v0, .L7000A9D8 +/* 00B5CC 7000A9CC 00000000 */ nop +/* 00B5D0 7000A9D0 39C2000B */ xori $v0, $t6, 0xb +/* 00B5D4 7000A9D4 2C420001 */ sltiu $v0, $v0, 1 +.L7000A9D8: +/* 00B5D8 7000A9D8 03E00008 */ jr $ra +/* 00B5DC 7000A9DC 00000000 */ nop +) +#endif + + + + + +#ifdef NONMATCHING +void strtol(void) { + +} +#else +GLOBAL_ASM( +.text +glabel strtol +/* 00B5E0 7000A9E0 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 00B5E4 7000A9E4 AFB30024 */ sw $s3, 0x24($sp) +/* 00B5E8 7000A9E8 00C09825 */ move $s3, $a2 +/* 00B5EC 7000A9EC AFBF002C */ sw $ra, 0x2c($sp) +/* 00B5F0 7000A9F0 AFB40028 */ sw $s4, 0x28($sp) +/* 00B5F4 7000A9F4 AFB20020 */ sw $s2, 0x20($sp) +/* 00B5F8 7000A9F8 AFB1001C */ sw $s1, 0x1c($sp) +/* 00B5FC 7000A9FC AFB00018 */ sw $s0, 0x18($sp) +/* 00B600 7000AA00 AFA50064 */ sw $a1, 0x64($sp) +/* 00B604 7000AA04 04C00006 */ bltz $a2, .L7000AA20 +/* 00B608 7000AA08 00803825 */ move $a3, $a0 +/* 00B60C 7000AA0C 24010001 */ li $at, 1 +/* 00B610 7000AA10 10C10003 */ beq $a2, $at, .L7000AA20 +/* 00B614 7000AA14 28C10025 */ slti $at, $a2, 0x25 +/* 00B618 7000AA18 54200003 */ bnezl $at, .L7000AA28 +/* 00B61C 7000AA1C 90E40000 */ lbu $a0, ($a3) +.L7000AA20: +/* 00B620 7000AA20 2413000A */ li $s3, 10 +/* 00B624 7000AA24 90E40000 */ lbu $a0, ($a3) +.L7000AA28: +/* 00B628 7000AA28 00E09025 */ move $s2, $a3 +/* 00B62C 7000AA2C 0C002A63 */ jal strtol_related_2 +/* 00B630 7000AA30 AFA70060 */ sw $a3, 0x60($sp) +/* 00B634 7000AA34 50400007 */ beql $v0, $zero, .L7000AA54 +/* 00B638 7000AA38 92420000 */ lbu $v0, ($s2) +/* 00B63C 7000AA3C 26520001 */ addiu $s2, $s2, 1 +.L7000AA40: +/* 00B640 7000AA40 0C002A63 */ jal strtol_related_2 +/* 00B644 7000AA44 92440000 */ lbu $a0, ($s2) +/* 00B648 7000AA48 5440FFFD */ bnezl $v0, .L7000AA40 +/* 00B64C 7000AA4C 26520001 */ addiu $s2, $s2, 1 +/* 00B650 7000AA50 92420000 */ lbu $v0, ($s2) +.L7000AA54: +/* 00B654 7000AA54 2401002D */ li $at, 45 +/* 00B658 7000AA58 50400075 */ beql $v0, $zero, .L7000AC30 +/* 00B65C 7000AA5C 8FA20064 */ lw $v0, 0x64($sp) +/* 00B660 7000AA60 14410004 */ bne $v0, $at, .L7000AA74 +/* 00B664 7000AA64 240E0001 */ li $t6, 1 +/* 00B668 7000AA68 AFAE005C */ sw $t6, 0x5c($sp) +/* 00B66C 7000AA6C 10000008 */ b .L7000AA90 +/* 00B670 7000AA70 26520001 */ addiu $s2, $s2, 1 +.L7000AA74: +/* 00B674 7000AA74 2401002B */ li $at, 43 +/* 00B678 7000AA78 54410005 */ bnel $v0, $at, .L7000AA90 +/* 00B67C 7000AA7C AFA0005C */ sw $zero, 0x5c($sp) +/* 00B680 7000AA80 AFA0005C */ sw $zero, 0x5c($sp) +/* 00B684 7000AA84 10000002 */ b .L7000AA90 +/* 00B688 7000AA88 26520001 */ addiu $s2, $s2, 1 +/* 00B68C 7000AA8C AFA0005C */ sw $zero, 0x5c($sp) +.L7000AA90: +/* 00B690 7000AA90 24010010 */ li $at, 16 +/* 00B694 7000AA94 1661000B */ bne $s3, $at, .L7000AAC4 +/* 00B698 7000AA98 00000000 */ nop +/* 00B69C 7000AA9C 924F0000 */ lbu $t7, ($s2) +/* 00B6A0 7000AAA0 24010030 */ li $at, 48 +/* 00B6A4 7000AAA4 15E10007 */ bne $t7, $at, .L7000AAC4 +/* 00B6A8 7000AAA8 00000000 */ nop +/* 00B6AC 7000AAAC 0C002A3E */ jal strtol_related +/* 00B6B0 7000AAB0 92440001 */ lbu $a0, 1($s2) +/* 00B6B4 7000AAB4 24010058 */ li $at, 88 +/* 00B6B8 7000AAB8 14410002 */ bne $v0, $at, .L7000AAC4 +/* 00B6BC 7000AABC 00000000 */ nop +/* 00B6C0 7000AAC0 26520002 */ addiu $s2, $s2, 2 +.L7000AAC4: +/* 00B6C4 7000AAC4 1660000E */ bnez $s3, .L7000AB00 +/* 00B6C8 7000AAC8 92420000 */ lbu $v0, ($s2) +/* 00B6CC 7000AACC 24010030 */ li $at, 48 +/* 00B6D0 7000AAD0 1441000B */ bne $v0, $at, .L7000AB00 +/* 00B6D4 7000AAD4 2413000A */ li $s3, 10 +/* 00B6D8 7000AAD8 0C002A3E */ jal strtol_related +/* 00B6DC 7000AADC 92440001 */ lbu $a0, 1($s2) +/* 00B6E0 7000AAE0 24010058 */ li $at, 88 +/* 00B6E4 7000AAE4 14410004 */ bne $v0, $at, .L7000AAF8 +/* 00B6E8 7000AAE8 24130008 */ li $s3, 8 +/* 00B6EC 7000AAEC 26520002 */ addiu $s2, $s2, 2 +/* 00B6F0 7000AAF0 10000001 */ b .L7000AAF8 +/* 00B6F4 7000AAF4 24130010 */ li $s3, 16 +.L7000AAF8: +/* 00B6F8 7000AAF8 10000001 */ b .L7000AB00 +/* 00B6FC 7000AAFC 92420000 */ lbu $v0, ($s2) +.L7000AB00: +/* 00B700 7000AB00 305000FF */ andi $s0, $v0, 0xff +/* 00B704 7000AB04 AFB20044 */ sw $s2, 0x44($sp) +/* 00B708 7000AB08 AFA00040 */ sw $zero, 0x40($sp) +/* 00B70C 7000AB0C 00008825 */ move $s1, $zero +/* 00B710 7000AB10 12000033 */ beqz $s0, .L7000ABE0 +/* 00B714 7000AB14 02001825 */ move $v1, $s0 +/* 00B718 7000AB18 2414FFFF */ li $s4, -1 +.L7000AB1C: +/* 00B71C 7000AB1C 320400FF */ andi $a0, $s0, 0xff +/* 00B720 7000AB20 0C002A4C */ jal strtol_related_0 +/* 00B724 7000AB24 AFA30034 */ sw $v1, 0x34($sp) +/* 00B728 7000AB28 10400005 */ beqz $v0, .L7000AB40 +/* 00B72C 7000AB2C 8FA30034 */ lw $v1, 0x34($sp) +/* 00B730 7000AB30 2470FFD0 */ addiu $s0, $v1, -0x30 +/* 00B734 7000AB34 321800FF */ andi $t8, $s0, 0xff +/* 00B738 7000AB38 1000000A */ b .L7000AB64 +/* 00B73C 7000AB3C 03008025 */ move $s0, $t8 +.L7000AB40: +/* 00B740 7000AB40 0C002A54 */ jal strtol_related_1 +/* 00B744 7000AB44 320400FF */ andi $a0, $s0, 0xff +/* 00B748 7000AB48 50400026 */ beql $v0, $zero, .L7000ABE4 +/* 00B74C 7000AB4C 8FAA0044 */ lw $t2, 0x44($sp) +/* 00B750 7000AB50 0C002A3E */ jal strtol_related +/* 00B754 7000AB54 320400FF */ andi $a0, $s0, 0xff +/* 00B758 7000AB58 2450FFC9 */ addiu $s0, $v0, -0x37 +/* 00B75C 7000AB5C 321900FF */ andi $t9, $s0, 0xff +/* 00B760 7000AB60 03208025 */ move $s0, $t9 +.L7000AB64: +/* 00B764 7000AB64 0213082A */ slt $at, $s0, $s3 +/* 00B768 7000AB68 1020001D */ beqz $at, .L7000ABE0 +/* 00B76C 7000AB6C 24090001 */ li $t1, 1 +/* 00B770 7000AB70 0293001B */ divu $zero, $s4, $s3 +/* 00B774 7000AB74 00001012 */ mflo $v0 +/* 00B778 7000AB78 0051082B */ sltu $at, $v0, $s1 +/* 00B77C 7000AB7C 16600002 */ bnez $s3, .L7000AB88 +/* 00B780 7000AB80 00000000 */ nop +/* 00B784 7000AB84 0007000D */ break 7 +.L7000AB88: +/* 00B788 7000AB88 1420000B */ bnez $at, .L7000ABB8 +/* 00B78C 7000AB8C 00000000 */ nop +/* 00B790 7000AB90 1622000B */ bne $s1, $v0, .L7000ABC0 +/* 00B794 7000AB94 00000000 */ nop +/* 00B798 7000AB98 0293001B */ divu $zero, $s4, $s3 +/* 00B79C 7000AB9C 00004010 */ mfhi $t0 +/* 00B7A0 7000ABA0 0110082B */ sltu $at, $t0, $s0 +/* 00B7A4 7000ABA4 16600002 */ bnez $s3, .L7000ABB0 +/* 00B7A8 7000ABA8 00000000 */ nop +/* 00B7AC 7000ABAC 0007000D */ break 7 +.L7000ABB0: +/* 00B7B0 7000ABB0 10200003 */ beqz $at, .L7000ABC0 +/* 00B7B4 7000ABB4 00000000 */ nop +.L7000ABB8: +/* 00B7B8 7000ABB8 10000005 */ b .L7000ABD0 +/* 00B7BC 7000ABBC AFA90040 */ sw $t1, 0x40($sp) +.L7000ABC0: +/* 00B7C0 7000ABC0 02330019 */ multu $s1, $s3 +/* 00B7C4 7000ABC4 00008812 */ mflo $s1 +/* 00B7C8 7000ABC8 02308821 */ addu $s1, $s1, $s0 +/* 00B7CC 7000ABCC 00000000 */ nop +.L7000ABD0: +/* 00B7D0 7000ABD0 92500001 */ lbu $s0, 1($s2) +/* 00B7D4 7000ABD4 26520001 */ addiu $s2, $s2, 1 +/* 00B7D8 7000ABD8 1600FFD0 */ bnez $s0, .L7000AB1C +/* 00B7DC 7000ABDC 02001825 */ move $v1, $s0 +.L7000ABE0: +/* 00B7E0 7000ABE0 8FAA0044 */ lw $t2, 0x44($sp) +.L7000ABE4: +/* 00B7E4 7000ABE4 8FA20064 */ lw $v0, 0x64($sp) +/* 00B7E8 7000ABE8 524A0011 */ beql $s2, $t2, .L7000AC30 +/* 00B7EC 7000ABEC 8FA20064 */ lw $v0, 0x64($sp) +/* 00B7F0 7000ABF0 50400003 */ beql $v0, $zero, .L7000AC00 +/* 00B7F4 7000ABF4 8FAB0040 */ lw $t3, 0x40($sp) +/* 00B7F8 7000ABF8 AC520000 */ sw $s2, ($v0) +/* 00B7FC 7000ABFC 8FAB0040 */ lw $t3, 0x40($sp) +.L7000AC00: +/* 00B800 7000AC00 8FAC005C */ lw $t4, 0x5c($sp) +/* 00B804 7000AC04 11600003 */ beqz $t3, .L7000AC14 +/* 00B808 7000AC08 00000000 */ nop +/* 00B80C 7000AC0C 1000000D */ b .L7000AC44 +/* 00B810 7000AC10 2402FFFF */ li $v0, -1 +.L7000AC14: +/* 00B814 7000AC14 11800003 */ beqz $t4, .L7000AC24 +/* 00B818 7000AC18 02201825 */ move $v1, $s1 +/* 00B81C 7000AC1C 10000009 */ b .L7000AC44 +/* 00B820 7000AC20 00111023 */ negu $v0, $s1 +.L7000AC24: +/* 00B824 7000AC24 10000007 */ b .L7000AC44 +/* 00B828 7000AC28 00601025 */ move $v0, $v1 +/* 00B82C 7000AC2C 8FA20064 */ lw $v0, 0x64($sp) +.L7000AC30: +/* 00B830 7000AC30 8FAD0060 */ lw $t5, 0x60($sp) +/* 00B834 7000AC34 50400003 */ beql $v0, $zero, .L7000AC44 +/* 00B838 7000AC38 00001025 */ move $v0, $zero +/* 00B83C 7000AC3C AC4D0000 */ sw $t5, ($v0) +/* 00B840 7000AC40 00001025 */ move $v0, $zero +.L7000AC44: +/* 00B844 7000AC44 8FBF002C */ lw $ra, 0x2c($sp) +/* 00B848 7000AC48 8FB00018 */ lw $s0, 0x18($sp) +/* 00B84C 7000AC4C 8FB1001C */ lw $s1, 0x1c($sp) +/* 00B850 7000AC50 8FB20020 */ lw $s2, 0x20($sp) +/* 00B854 7000AC54 8FB30024 */ lw $s3, 0x24($sp) +/* 00B858 7000AC58 8FB40028 */ lw $s4, 0x28($sp) +/* 00B85C 7000AC5C 03E00008 */ jr $ra +/* 00B860 7000AC60 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif diff --git a/src/tlb_buffer.c b/src/tlb_buffer.c new file mode 100644 index 0000000..0145cc4 --- /dev/null +++ b/src/tlb_buffer.c @@ -0,0 +1,3 @@ +#include "ultra64.h" + +u8 tlb_buffer[0x8192]; diff --git a/src/tlb_buffer.h b/src/tlb_buffer.h new file mode 100644 index 0000000..c6a02e9 --- /dev/null +++ b/src/tlb_buffer.h @@ -0,0 +1,7 @@ +#ifndef _TLB_BUFFER_H_ +#define _TLB_BUFFER_H_ +#include "ultra64.h" + +extern u8 tlbbuffer[]; + +#endif diff --git a/src/tlb_hardwire.c b/src/tlb_hardwire.c new file mode 100644 index 0000000..c9c2b5e --- /dev/null +++ b/src/tlb_hardwire.c @@ -0,0 +1,31 @@ +#include "ultra64.h" +#include "tlb_hardwire.h" + +/** + * @file tlb_hardwire.c + * This file contains code to set tlb entries to 2 + * -it should become an assembly file + */ + + +/** + * 29B0 70001BB0 + * sets #hardwired TLB entries to 2 + */ +#ifdef NONMATCHING +void set_hardwire_TLB_to_2(void) { + setCopReg(0,Wired,2,0); + setCopReg(0,Context,0,0); +} +#else +GLOBAL_ASM( +.text +glabel set_hardwire_TLB_to_2 +/* 0027B0 70001BB0 24080002 */ li $t0, 2 +/* 0027B4 70001BB4 40883000 */ mtc0 $t0, $6 +/* 0027B8 70001BB8 24080000 */ li $t0, 0 +/* 0027BC 70001BBC 40882000 */ mtc0 $t0, $4 +/* 0027C0 70001BC0 03E00008 */ jr $ra +/* 0027C4 70001BC4 00000000 */ nop +) +#endif \ No newline at end of file diff --git a/src/tlb_hardwire.h b/src/tlb_hardwire.h new file mode 100644 index 0000000..9d59486 --- /dev/null +++ b/src/tlb_hardwire.h @@ -0,0 +1,10 @@ +#ifndef _TLB_HARDWIRE_H_ +#define _TLB_HARDWIRE_H_ +#include "ultra64.h" + + +extern void set_hardwire_TLB_to_2(void); + +#endif + + diff --git a/src/tlb_manage.c b/src/tlb_manage.c new file mode 100644 index 0000000..8e03956 --- /dev/null +++ b/src/tlb_manage.c @@ -0,0 +1,364 @@ +#include "ultra64.h" +#include "ramrom.h" +#include "tlb_manage.h" + +/** + * @file tlb_manage.c + * This file contains tlb management code. + * + * In particular, it: + * - + * - + * - + */ + +u32 maybe_cur_TLB_entries = 0; +u32 tlb_segment_num = 0; + +struct s_tlbmanage_table_entry TLB_managment_table[128]; +struct s_tlbmapping_table_entry TLB_manager_mapping_table[90]; +u32 TLB_manager_mapping_table_end; + u8 (*ptr_TLBallocatedblock) [8192]; + + +extern u8 *_gameSegmentRomStart; +extern u8 *_tlbbufSegmentStart; + + +/** + * 23E0 700017E0 + * establishes 7F- TLB buffer and management table + */ +#ifdef NONMATCHING +void establish_TLB_buffer_management_table(void) + +{ + s32 i; + + for (i=0;i<128;i++) + { + TLB_managment_table[i]->context_value = 1; + TLB_managment_table[i]->pagenum = 0; + } + + for (i=0;i<90;i++) + { + TLB_manager_mapping_table[i].entry1 = '\0'; + TLB_manager_mapping_table[i].entry0 = '\x01'; + } + + TLB_manager_mapping_table_end = 0x7fc65bf0; + ptr_TLBallocatedblock = (u8 (*) [8192])&_tlbbufSegmentStart; +} + +#else +GLOBAL_ASM( +glabel establish_TLB_buffer_management_table +/* 0023E0 700017E0 3C038006 */ lui $v1, %hi(TLB_managment_table) +/* 0023E4 700017E4 3C028006 */ lui $v0, %hi(TLB_manager_mapping_table) +/* 0023E8 700017E8 2442E3F0 */ addiu $v0, %lo(TLB_manager_mapping_table) # addiu $v0, $v0, -0x1c10 +/* 0023EC 700017EC 2463DBF0 */ addiu $v1, %lo(TLB_managment_table) # addiu $v1, $v1, -0x2410 +/* 0023F0 700017F0 24040001 */ li $a0, 1 +.L700017F4: +/* 0023F4 700017F4 24630010 */ addiu $v1, $v1, 0x10 +/* 0023F8 700017F8 0062082B */ sltu $at, $v1, $v0 +/* 0023FC 700017FC AC64FFF0 */ sw $a0, -0x10($v1) +/* 002400 70001800 1420FFFC */ bnez $at, .L700017F4 +/* 002404 70001804 AC60FFF4 */ sw $zero, -0xc($v1) +/* 002408 70001808 3C018006 */ lui $at, %hi(TLB_manager_mapping_table + 2) +/* 00240C 7000180C 3C038006 */ lui $v1, %hi(TLB_manager_mapping_table + 4) +/* 002410 70001810 3C028006 */ lui $v0, %hi(TLB_manager_mapping_table_end) +/* 002414 70001814 2442E4A4 */ addiu $v0, %lo(TLB_manager_mapping_table_end) # addiu $v0, $v0, -0x1b5c +/* 002418 70001818 2463E3F4 */ addiu $v1, %lo(TLB_manager_mapping_table + 4) # addiu $v1, $v1, -0x1c0c +/* 00241C 7000181C A020E3F1 */ sb $zero, %lo(TLB_manager_mapping_table + 1)($at) +/* 002420 70001820 A024E3F0 */ sb $a0, %lo(TLB_manager_mapping_table)($at) +/* 002424 70001824 A020E3F3 */ sb $zero, %lo(TLB_manager_mapping_table + 3)($at) +/* 002428 70001828 A024E3F2 */ sb $a0, %lo(TLB_manager_mapping_table + 2)($at) +.L7000182C: +/* 00242C 7000182C 24630008 */ addiu $v1, $v1, 8 +/* 002430 70001830 A060FFFB */ sb $zero, -5($v1) +/* 002434 70001834 A064FFFA */ sb $a0, -6($v1) +/* 002438 70001838 A060FFFD */ sb $zero, -3($v1) +/* 00243C 7000183C A064FFFC */ sb $a0, -4($v1) +/* 002440 70001840 A060FFFF */ sb $zero, -1($v1) +/* 002444 70001844 A064FFFE */ sb $a0, -2($v1) +/* 002448 70001848 A060FFF9 */ sb $zero, -7($v1) +/* 00244C 7000184C 1462FFF7 */ bne $v1, $v0, .L7000182C +/* 002450 70001850 A064FFF8 */ sb $a0, -8($v1) +/* 002454 70001854 3C0E803B */ lui $t6, %hi(sp_boot) # $t6, 0x803b +/* 002458 70001858 25CEB400 */ addiu $t6, %lo(sp_boot) # addiu $t6, $t6, -0x4c00 +/* 00245C 7000185C 2401E000 */ li $at, -8192 +/* 002460 70001860 01C17824 */ and $t7, $t6, $at +/* 002464 70001864 3C01FFF4 */ lui $at, (0xFFF4C000 >> 16) # lui $at, 0xfff4 +/* 002468 70001868 3421C000 */ ori $at, (0xFFF4C000 & 0xFFFF) # ori $at, $at, 0xc000 +/* 00246C 7000186C 01E1C021 */ addu $t8, $t7, $at +/* 002470 70001870 3C018006 */ lui $at, %hi(ptr_TLBallocatedblock) +/* 002474 70001874 AC38E4A8 */ sw $t8, %lo(ptr_TLBallocatedblock)($at) +/* 002478 70001878 3C01FFC0 */ lui $at, (0xFFC08000 >> 16) # lui $at, 0xffc0 +/* 00247C 7000187C 3C198006 */ lui $t9, %hi(TLB_managment_table) +/* 002480 70001880 2739DBF0 */ addiu $t9, %lo(TLB_managment_table) # addiu $t9, $t9, -0x2410 +/* 002484 70001884 34218000 */ ori $at, (0xFFC08000 & 0xFFFF) # ori $at, $at, 0x8000 +/* 002488 70001888 03214021 */ addu $t0, $t9, $at +/* 00248C 7000188C 3C018006 */ lui $at, %hi(TLB_manager_mapping_table_end) +/* 002490 70001890 03E00008 */ jr $ra +/* 002494 70001894 AC28E4A4 */ sw $t0, %lo(TLB_manager_mapping_table_end)($at) +) +#endif + +/** + * 2498 70001898 + * ???; pointless conditional tests, will reset 800230D0 + */ +#ifdef NONMATCHING +s32 mp_tlb_related(void) +{ + s32 temp_v0; + + temp_v0 = maybe_cur_TLB_entries; + if ((temp_v0 >= 0x33) || (temp_v0 < 0x1A)) + { + + } + maybe_cur_TLB_entries = 0; + return temp_v0; +} + +#else +GLOBAL_ASM( +glabel mp_tlb_related +/* 002498 70001898 3C038002 */ lui $v1, %hi(maybe_cur_TLB_entries) +/* 00249C 7000189C 246330D0 */ addiu $v1, %lo(maybe_cur_TLB_entries) # addiu $v1, $v1, 0x30d0 +/* 0024A0 700018A0 8C620000 */ lw $v0, ($v1) +/* 0024A4 700018A4 28410033 */ slti $at, $v0, 0x33 +/* 0024A8 700018A8 10200003 */ beqz $at, .L700018B8 +/* 0024AC 700018AC 2841001A */ slti $at, $v0, 0x1a +/* 0024B0 700018B0 10200001 */ beqz $at, .L700018B8 +/* 0024B4 700018B4 00000000 */ nop +.L700018B8: +/* 0024B8 700018B8 03E00008 */ jr $ra +/* 0024BC 700018BC AC600000 */ sw $zero, ($v1) +) +#endif + +/** + * 24C0 700018C0 + * searches TLB index for an entry matching A0 + * V0=index of match or 80000000 if not found + * accepts: A0=TLB pointer + */ +s32 return_TLB_index_for_entry(int entry) { + s32 index = 0; + while (index != 0x20) { + if (__osGetTLBHi(index) == entry) { + return index; + } + index++; + }; + return -0x80000000; +} + +/** + * 2520 70001920 + * find and remove TLB entry A0 + * accepts: A0=TLB pointer + * redirects to 700018C0, 7000D3D0 + */ +void find_remove_TLB_entry(u32 entry) { + s32 index = return_TLB_index_for_entry(entry); + + if ((index & 0x80000000)) + return; + + osUnmapTLB(index); +} + +/** + * 2554 70001954 + * remove index A0 TLB entry from table at 8005E3F0 + * table format: + * 0x0 1 if dirty + * 0x1 chunk # (7F000000 | chunk<unk1 << 0xd) | 0x7f000000)); + if ((temp_ret << 0) >= 0) + { + sp18 = temp_v1; + osUnmapTLB(temp_ret); + } + (0x80060000 + (temp_v1->unk1 * 0x10))->unk-2410 = 1; + *temp_v1 = 1; + } +} +#else +GLOBAL_ASM( +glabel remove_TLB_entry_from_table +/* 002554 70001954 3C0F8006 */ lui $t7, %hi(TLB_manager_mapping_table) +/* 002558 70001958 25EFE3F0 */ addiu $t7, %lo(TLB_manager_mapping_table) # addiu $t7, $t7, -0x1c10 +/* 00255C 7000195C 00047040 */ sll $t6, $a0, 1 +/* 002560 70001960 01CF1821 */ addu $v1, $t6, $t7 +/* 002564 70001964 90780000 */ lbu $t8, ($v1) +/* 002568 70001968 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 00256C 7000196C AFBF0014 */ sw $ra, 0x14($sp) +/* 002570 70001970 57000016 */ bnezl $t8, .L700019CC +/* 002574 70001974 8FBF0014 */ lw $ra, 0x14($sp) +/* 002578 70001978 90640001 */ lbu $a0, 1($v1) +/* 00257C 7000197C 3C017F00 */ lui $at, 0x7f00 +/* 002580 70001980 AFA30018 */ sw $v1, 0x18($sp) +/* 002584 70001984 0004CB40 */ sll $t9, $a0, 0xd +/* 002588 70001988 0C000630 */ jal return_TLB_index_for_entry +/* 00258C 7000198C 03212025 */ or $a0, $t9, $at +/* 002590 70001990 00024800 */ sll $t1, $v0, 0 +/* 002594 70001994 8FA30018 */ lw $v1, 0x18($sp) +/* 002598 70001998 05200004 */ bltz $t1, .L700019AC +/* 00259C 7000199C 00402025 */ move $a0, $v0 +/* 0025A0 700019A0 0C0034F4 */ jal osUnmapTLB +/* 0025A4 700019A4 AFA30018 */ sw $v1, 0x18($sp) +/* 0025A8 700019A8 8FA30018 */ lw $v1, 0x18($sp) +.L700019AC: +/* 0025AC 700019AC 906A0001 */ lbu $t2, 1($v1) +/* 0025B0 700019B0 3C018006 */ lui $at, %hi(TLB_managment_table) +/* 0025B4 700019B4 24020001 */ li $v0, 1 +/* 0025B8 700019B8 000A5900 */ sll $t3, $t2, 4 +/* 0025BC 700019BC 002B0821 */ addu $at, $at, $t3 +/* 0025C0 700019C0 AC22DBF0 */ sw $v0, %lo(TLB_managment_table)($at) +/* 0025C4 700019C4 A0620000 */ sb $v0, ($v1) +/* 0025C8 700019C8 8FBF0014 */ lw $ra, 0x14($sp) +.L700019CC: +/* 0025CC 700019CC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0025D0 700019D0 03E00008 */ jr $ra +/* 0025D4 700019D4 00000000 */ nop +) +#endif + +/** + * 25D8 700019D8 + * loads ROM range for 7F- TLB entries + */ +#ifdef NONMATCHING +void translate_load_rom_from_TLBaddress(u32 address) +{ + //uint randval; + //u32 uVar1; + //u8 (*src) [8192]; + //u32 uVar2; + u32 tlbnum; + + maybe_cur_TLB_entries += 1; + find_remove_TLB_entry(address & 0x7fffe000); + + tlbnum = return_tlb_random_value() % 0x5a; + tlb_segment_num = tlbnum; + remove_TLB_entry_from_table(tlbnum); + + romCopy(ptr_TLBallocatedblock[tlbnum], ((address & 0xffe000) + &_gameSegmentRomStart), 0x2000); + osInvalICache(0x40000000, 0x40000000); + osInvalICache(0x80000000, 0x10000000); + + TLB_managment_table[(address & 0xffe000) >> 0xd].pagenum = tlbnum; + TLB_manager_mapping_table[tlbnum].entry0 = '\0'; + TLB_manager_mapping_table[tlbnum].entry1 = (address & 0xffe000) >> 0xd; + TLB_managment_table[(address & 0xffe000) >> 0xd].context_value = (osVirtualToPhysical(ptr_TLBallocatedblock[tlbnum]) >> 0xc) << 6 | 0x1f; +} +#else +GLOBAL_ASM( +glabel translate_load_rom_from_TLBaddress +/* 0025D8 700019D8 3C028002 */ lui $v0, %hi(maybe_cur_TLB_entries) +/* 0025DC 700019DC 244230D0 */ addiu $v0, %lo(maybe_cur_TLB_entries) # addiu $v0, $v0, 0x30d0 +/* 0025E0 700019E0 8C4E0000 */ lw $t6, ($v0) +/* 0025E4 700019E4 3C017FFF */ lui $at, (0x7FFFE000 >> 16) # lui $at, 0x7fff +/* 0025E8 700019E8 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 0025EC 700019EC 3421E000 */ ori $at, (0x7FFFE000 & 0xFFFF) # ori $at, $at, 0xe000 +/* 0025F0 700019F0 AFBF001C */ sw $ra, 0x1c($sp) +/* 0025F4 700019F4 00812024 */ and $a0, $a0, $at +/* 0025F8 700019F8 25CF0001 */ addiu $t7, $t6, 1 +/* 0025FC 700019FC AFB00018 */ sw $s0, 0x18($sp) +/* 002600 70001A00 AC4F0000 */ sw $t7, ($v0) +/* 002604 70001A04 0C000648 */ jal find_remove_TLB_entry +/* 002608 70001A08 AFA40028 */ sw $a0, 0x28($sp) +/* 00260C 70001A0C 0C0006C4 */ jal return_tlb_random_value +/* 002610 70001A10 00000000 */ nop +/* 002614 70001A14 2401005A */ li $at, 90 +/* 002618 70001A18 0041001B */ divu $zero, $v0, $at +/* 00261C 70001A1C 00002010 */ mfhi $a0 +/* 002620 70001A20 3C038002 */ lui $v1, %hi(tlb_segment_num) +/* 002624 70001A24 246330D4 */ addiu $v1, %lo(tlb_segment_num) # addiu $v1, $v1, 0x30d4 +/* 002628 70001A28 AC640000 */ sw $a0, ($v1) +/* 00262C 70001A2C 0C000655 */ jal remove_TLB_entry_from_table +/* 002630 70001A30 00808025 */ move $s0, $a0 +/* 002634 70001A34 8FA20028 */ lw $v0, 0x28($sp) +/* 002638 70001A38 3C198006 */ lui $t9, %hi(ptr_TLBallocatedblock) +/* 00263C 70001A3C 8F39E4A8 */ lw $t9, %lo(ptr_TLBallocatedblock)($t9) +/* 002640 70001A40 3C0100FF */ lui $at, (0x00FFE000 >> 16) # lui $at, 0xff +/* 002644 70001A44 3421E000 */ ori $at, (0x00FFE000 & 0xFFFF) # ori $at, $at, 0xe000 +/* 002648 70001A48 00104340 */ sll $t0, $s0, 0xd +/* 00264C 70001A4C 3C0A0003 */ lui $t2, %hi(_gameSegmentRomStart) # $t2, 3 +/* 002650 70001A50 00414824 */ and $t1, $v0, $at +/* 002654 70001A54 254A4B30 */ addiu $t2, %lo(_gameSegmentRomStart) # addiu $t2, $t2, 0x4b30 +/* 002658 70001A58 03282021 */ addu $a0, $t9, $t0 +/* 00265C 70001A5C AFA40034 */ sw $a0, 0x34($sp) +/* 002660 70001A60 012A2821 */ addu $a1, $t1, $t2 +/* 002664 70001A64 01201025 */ move $v0, $t1 +/* 002668 70001A68 AFA90024 */ sw $t1, 0x24($sp) +/* 00266C 70001A6C 0C001707 */ jal romCopy +/* 002670 70001A70 24062000 */ li $a2, 8192 +/* 002674 70001A74 3C044000 */ lui $a0, 0x4000 +/* 002678 70001A78 0C0034D4 */ jal osInvalICache +/* 00267C 70001A7C 3C054000 */ lui $a1, 0x4000 +/* 002680 70001A80 3C048000 */ lui $a0, 0x8000 +/* 002684 70001A84 0C0034D4 */ jal osInvalICache +/* 002688 70001A88 3C051000 */ lui $a1, 0x1000 +/* 00268C 70001A8C 8FA50024 */ lw $a1, 0x24($sp) +/* 002690 70001A90 3C0D8006 */ lui $t5, %hi(TLB_managment_table) +/* 002694 70001A94 25ADDBF0 */ addiu $t5, %lo(TLB_managment_table) # addiu $t5, $t5, -0x2410 +/* 002698 70001A98 00055B42 */ srl $t3, $a1, 0xd +/* 00269C 70001A9C 000B6100 */ sll $t4, $t3, 4 +/* 0026A0 70001AA0 018D3021 */ addu $a2, $t4, $t5 +/* 0026A4 70001AA4 ACD00004 */ sw $s0, 4($a2) +/* 0026A8 70001AA8 AFA60020 */ sw $a2, 0x20($sp) +/* 0026AC 70001AAC AFAB0028 */ sw $t3, 0x28($sp) +/* 0026B0 70001AB0 0C003A2C */ jal osVirtualToPhysical +/* 0026B4 70001AB4 8FA40034 */ lw $a0, 0x34($sp) +/* 0026B8 70001AB8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0026BC 70001ABC 00027302 */ srl $t6, $v0, 0xc +/* 0026C0 70001AC0 0010C840 */ sll $t9, $s0, 1 +/* 0026C4 70001AC4 3C088006 */ lui $t0, %hi(TLB_manager_mapping_table) +/* 0026C8 70001AC8 8FA50028 */ lw $a1, 0x28($sp) +/* 0026CC 70001ACC 8FA60020 */ lw $a2, 0x20($sp) +/* 0026D0 70001AD0 000E7980 */ sll $t7, $t6, 6 +/* 0026D4 70001AD4 2508E3F0 */ addiu $t0, %lo(TLB_manager_mapping_table) # addiu $t0, $t0, -0x1c10 +/* 0026D8 70001AD8 35F8001F */ ori $t8, $t7, 0x1f +/* 0026DC 70001ADC 03281821 */ addu $v1, $t9, $t0 +/* 0026E0 70001AE0 8FB00018 */ lw $s0, 0x18($sp) +/* 0026E4 70001AE4 A0600000 */ sb $zero, ($v1) +/* 0026E8 70001AE8 27BD0050 */ addiu $sp, $sp, 0x50 +/* 0026EC 70001AEC A0650001 */ sb $a1, 1($v1) +/* 0026F0 70001AF0 03E00008 */ jr $ra +/* 0026F4 70001AF4 ACD80000 */ sw $t8, ($a2) +) +#endif + +/** + * 26F8 70001AF8 + * V0=p->TLB memory, or alternately end of free memory [8005E4A8] + */ +u8 * return_ptr_TLBallocatedblock(void) +{ + return ptr_TLBallocatedblock; +} + + + + + + diff --git a/src/tlb_manage.h b/src/tlb_manage.h new file mode 100644 index 0000000..de5bf66 --- /dev/null +++ b/src/tlb_manage.h @@ -0,0 +1,18 @@ +#ifndef _TLB_MANAGE_H_ +#define _TLB_MANAGE_H_ +#include "ultra64.h" + +struct s_tlbmanage_table_entry +{ + s32 context_value; + s32 pagenum; + s64 RESERVED; +}; + +struct s_tlbmapping_table_entry +{ + u8 entry0; + u8 entry1; +}; + +#endif diff --git a/src/tlb_random.c b/src/tlb_random.c new file mode 100644 index 0000000..5d84f4e --- /dev/null +++ b/src/tlb_random.c @@ -0,0 +1,47 @@ +#include "ultra64.h" + +/** + * @file tlb_random.c + * This file contains code to get a random tlb value. + * + */ + +u64 tlb_random_seed = 0xAB8D9F7781280783; + +/** + * 2710 70001B10 + * V0= random value for TLB random entries [800230E0] + */ +#ifdef NONMATCHING +u32 return_tlb_random_value(void) +{ + tlb_random_seed = + ((tlb_random_seed << 0x3f) >> 0x1f | (tlb_random_seed << 0x1f) >> 0x20) ^ + (tlb_random_seed << 0x2c) >> 0x20; + tlb_random_seed = tlb_random_seed >> 0x14 & 0xfff ^ tlb_random_seed; + return (u32)tlb_random_seed; +} +#else +GLOBAL_ASM( +.text +glabel return_tlb_random_value +/* 002710 70001B10 3C048002 */ lui $a0, %hi(tlb_random_seed) +/* 002714 70001B14 DC8430E0 */ ld $a0, %lo(tlb_random_seed)($a0) +/* 002718 70001B18 3C018002 */ lui $at, %hi(tlb_random_seed) +/* 00271C 70001B1C 000437FC */ dsll32 $a2, $a0, 0x1f +/* 002720 70001B20 00042FF8 */ dsll $a1, $a0, 0x1f +/* 002724 70001B24 000637FA */ dsrl $a2, $a2, 0x1f +/* 002728 70001B28 0005283E */ dsrl32 $a1, $a1, 0 +/* 00272C 70001B2C 0004233C */ dsll32 $a0, $a0, 0xc +/* 002730 70001B30 00C53025 */ or $a2, $a2, $a1 +/* 002734 70001B34 0004203E */ dsrl32 $a0, $a0, 0 +/* 002738 70001B38 00C43026 */ xor $a2, $a2, $a0 +/* 00273C 70001B3C 0006253A */ dsrl $a0, $a2, 0x14 +/* 002740 70001B40 30840FFF */ andi $a0, $a0, 0xfff +/* 002744 70001B44 00862026 */ xor $a0, $a0, $a2 +/* 002748 70001B48 0004103C */ dsll32 $v0, $a0, 0 +/* 00274C 70001B4C FC2430E0 */ sd $a0, %lo(tlb_random_seed)($at) +/* 002750 70001B50 03E00008 */ jr $ra +/* 002754 70001B54 0002103F */ dsra32 $v0, $v0, 0 +) +#endif diff --git a/src/tlb_random.h b/src/tlb_random.h new file mode 100644 index 0000000..1f196ca --- /dev/null +++ b/src/tlb_random.h @@ -0,0 +1,10 @@ +#ifndef _TLB_RANDOM_H_ +#define _TLB_RANDOM_H_ +#include "ultra64.h" + + +extern u32 return_tlb_random_value(void); + +#endif + + diff --git a/src/tlb_resolve.c b/src/tlb_resolve.c new file mode 100644 index 0000000..b00d91d --- /dev/null +++ b/src/tlb_resolve.c @@ -0,0 +1,53 @@ +#include "ultra64.h" +#include "tlb_resolve.h" + +/** + * @file tlb_resolve.c + * This file contains code to load/resolve TLBaddress. + */ + + +/** + * 2760 70001B60 + * loads/resolves TLB address, writting random entry + */ +#ifdef NONMATCHING +//i should probably remain as assembly, maybe even moved to a .s +void resolve_TLBaddress_for_InvalidHit(void) +{ + setCopReg(0,PageMask,0,0); + setCopReg(0,EntryLo0,(longlong)*(int *)(Context + TLB_manager_mapping_table_end),0); + setCopReg(0,EntryLo1,(longlong)(*(int *)(Context + TLB_manager_mapping_table_end) + 0x40),0); + TLB_write_random_entry(Random,EntryHi,EntryLo0,EntryLo1,PageMask); + return; +} +#else +GLOBAL_ASM( +.text +glabel resolve_TLBaddress_for_InvalidHit +/* 002760 70001B60 40802800 */ mtc0 $zero, $5 +/* 002764 70001B64 00000000 */ nop +/* 002768 70001B68 401A2000 */ mfc0 $k0, $4 +/* 00276C 70001B6C 3C1B8006 */ lui $k1, %hi(TLB_manager_mapping_table_end) # $k1, 0x8006 +/* 002770 70001B70 277BE4A4 */ addiu $k1, %lo(TLB_manager_mapping_table_end) # addiu $k1, $k1, -0x1b5c +/* 002774 70001B74 8F7B0000 */ lw $k1, ($k1) +/* 002778 70001B78 035BD021 */ addu $k0, $k0, $k1 +/* 00277C 70001B7C 8F5B0000 */ lw $k1, ($k0) +/* 002780 70001B80 409B1000 */ mtc0 $k1, $2 +/* 002784 70001B84 00000000 */ nop +/* 002788 70001B88 277B0040 */ addiu $k1, $k1, 0x40 +/* 00278C 70001B8C 409B1800 */ mtc0 $k1, $3 +/* 002790 70001B90 00000000 */ nop +/* 002794 70001B94 42000006 */ tlbwr +/* 002798 70001B98 00000000 */ nop +/* 00279C 70001B9C 00000000 */ nop +/* 0027A0 70001BA0 00000000 */ nop +/* 0027A4 70001BA4 00000000 */ nop +/* 0027A8 70001BA8 42000018 */ eret +) +#endif + + + + + diff --git a/src/tlb_resolve.h b/src/tlb_resolve.h new file mode 100644 index 0000000..846574d --- /dev/null +++ b/src/tlb_resolve.h @@ -0,0 +1,10 @@ +#ifndef _TLB_RESOLVE_H_ +#define _TLB_RESOLVE_H_ +#include "ultra64.h" + + +extern void resolve_TLBaddress_for_InvalidHit(void); + +#endif + + diff --git a/src/token.c b/src/token.c new file mode 100644 index 0000000..6507dbc --- /dev/null +++ b/src/token.c @@ -0,0 +1,361 @@ +#include "ultra64.h" +#include "pi.h" +#include "snd.h" +#include "game/lvl_text.h" + + +//OSMesg boot_token_from_indy[160]; +char boot_token_from_indy[0x280]; +s32 strstr_numstings = 1; +s32 strstr_ptrcurrent_string = 0; +u32 D_80024478[34] = {0}; + + +//const char str_empty[] = ""; + + + + + + +#ifdef NONMATCHING +void *check_string_something(void *arg0) +{ + s32 temp_v0; + s32 temp_v0_2; + void *temp_a0; + void *temp_a0_2; + s32 phi_v0; + void *phi_a0; + void *phi_a0_2; + void *phi_a0_3; + s32 phi_v0_2; + void *phi_a0_4; + void *phi_a0_5; + void *phi_a0_6; + + strstr_ptrcurrent_string = &str_empty; + strstr_numstings = 1; + phi_v0 = *arg0; + phi_a0_4 = arg0; + phi_a0_5 = arg0; + if (*arg0 != 0) + { +loop_1: + phi_a0 = phi_a0_5; + phi_a0_2 = phi_a0_5; + if (0x20 == phi_v0) + { +loop_2: + phi_a0->unk0 = (u8)0; + temp_a0 = phi_a0 + 1; + phi_a0 = temp_a0; + phi_a0_2 = temp_a0; + if (0x20 == phi_a0->unk1) + { + goto loop_2; + } + } + *(&strstr_ptrcurrent_string + (strstr_numstings * 4)) = (void *) phi_a0_2; + strstr_numstings = (s32) (strstr_numstings + 1); + temp_v0 = *phi_a0_2; + phi_a0_3 = phi_a0_2; + phi_v0_2 = temp_v0; + phi_a0_6 = phi_a0_2; + if (temp_v0 >= 0x21) + { +loop_4: + temp_v0_2 = phi_a0_3->unk1; + temp_a0_2 = phi_a0_3 + 1; + phi_a0_3 = temp_a0_2; + phi_v0_2 = temp_v0_2; + phi_a0_6 = temp_a0_2; + if (temp_v0_2 >= 0x21) + { + goto loop_4; + } + } + phi_v0 = phi_v0_2; + phi_a0_4 = phi_a0_6; + phi_a0_5 = phi_a0_6; + if (phi_v0_2 != 0) + { + goto loop_1; + } + } + return phi_a0_4; +} +#else +GLOBAL_ASM( +.late_rodata +glabel str_empty +.word 0x0 +.text +glabel check_string_something +/* 00B0F0 7000A4F0 3C058002 */ lui $a1, %hi(strstr_ptrcurrent_string) +/* 00B0F4 7000A4F4 3C068002 */ lui $a2, %hi(strstr_numstings) +/* 00B0F8 7000A4F8 3C0E8003 */ lui $t6, %hi(str_empty) +/* 00B0FC 7000A4FC 24C64470 */ addiu $a2, %lo(strstr_numstings) # addiu $a2, $a2, 0x4470 +/* 00B100 7000A500 24A54474 */ addiu $a1, %lo(strstr_ptrcurrent_string) # addiu $a1, $a1, 0x4474 +/* 00B104 7000A504 25CE91F0 */ addiu $t6, %lo(str_empty) # addiu $t6, $t6, -0x6e10 +/* 00B108 7000A508 240F0001 */ li $t7, 1 +/* 00B10C 7000A50C ACAE0000 */ sw $t6, ($a1) +/* 00B110 7000A510 ACCF0000 */ sw $t7, ($a2) +/* 00B114 7000A514 90820000 */ lbu $v0, ($a0) +/* 00B118 7000A518 24070020 */ li $a3, 32 +/* 00B11C 7000A51C 10400019 */ beqz $v0, .L7000A584 +/* 00B120 7000A520 00000000 */ nop +.L7000A524: +/* 00B124 7000A524 54E20007 */ bnel $a3, $v0, .L7000A544 +/* 00B128 7000A528 8CC30000 */ lw $v1, ($a2) +/* 00B12C 7000A52C 90980001 */ lbu $t8, 1($a0) +.L7000A530: +/* 00B130 7000A530 A0800000 */ sb $zero, ($a0) +/* 00B134 7000A534 24840001 */ addiu $a0, $a0, 1 +/* 00B138 7000A538 50F8FFFD */ beql $a3, $t8, .L7000A530 +/* 00B13C 7000A53C 90980001 */ lbu $t8, 1($a0) +/* 00B140 7000A540 8CC30000 */ lw $v1, ($a2) +.L7000A544: +/* 00B144 7000A544 0003C880 */ sll $t9, $v1, 2 +/* 00B148 7000A548 00B94021 */ addu $t0, $a1, $t9 +/* 00B14C 7000A54C AD040000 */ sw $a0, ($t0) +/* 00B150 7000A550 24690001 */ addiu $t1, $v1, 1 +/* 00B154 7000A554 ACC90000 */ sw $t1, ($a2) +/* 00B158 7000A558 90820000 */ lbu $v0, ($a0) +/* 00B15C 7000A55C 28410021 */ slti $at, $v0, 0x21 +/* 00B160 7000A560 14200006 */ bnez $at, .L7000A57C +/* 00B164 7000A564 00000000 */ nop +/* 00B168 7000A568 90820001 */ lbu $v0, 1($a0) +.L7000A56C: +/* 00B16C 7000A56C 24840001 */ addiu $a0, $a0, 1 +/* 00B170 7000A570 28410021 */ slti $at, $v0, 0x21 +/* 00B174 7000A574 5020FFFD */ beql $at, $zero, .L7000A56C +/* 00B178 7000A578 90820001 */ lbu $v0, 1($a0) +.L7000A57C: +/* 00B17C 7000A57C 1440FFE9 */ bnez $v0, .L7000A524 +/* 00B180 7000A580 00000000 */ nop +.L7000A584: +/* 00B184 7000A584 03E00008 */ jr $ra +/* 00B188 7000A588 00801025 */ move $v0, $a0 +) +#endif + + +void strtok(s32 arg0) { + textpointer_load_parse_something(&boot_token_from_indy, arg0); + check_string_something(&boot_token_from_indy); +} + +//const char aD_6[] = "-d"; +//const char aS_2[] = "-s"; +//const char aJ[] = "-j"; + +#ifdef NONMATCHING +s32 check_boot_switches(void) +{ + s32 is_debug; + s32 devAddr; + u32 *data; + + is_debug = 0; + if (rmon_debug_is_final_build() != 0) + { + boot_token_from_indy[0] = 0; + } + else + { + for (devAddr = 0xffb000, data = &boot_token_from_indy; data != &piCmdBuf; data += 4, devAddr += 4) + { + osPiReadIo(devAddr, data); + } + } + check_string_something(&boot_token_from_indy); + + is_debug = (check_token(1, "-d") != 0); + + if (check_token(1, "-s") != 0) { + bootswitch_sound = 1; + } + + if (check_token(1, "-j") != 0) { + j_text_trigger = 1; + } + + return is_debug; +} +#else +GLOBAL_ASM( +.late_rodata +glabel aD_6 +.word 0x2d640000 +glabel aS_2 +.word 0x2d730000 +glabel aJ +.word 0x2d6a0000 +.text +glabel check_boot_switches +/* 00B1C0 7000A5C0 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 00B1C4 7000A5C4 AFB1001C */ sw $s1, 0x1c($sp) +/* 00B1C8 7000A5C8 AFBF0024 */ sw $ra, 0x24($sp) +/* 00B1CC 7000A5CC 3C1100FF */ lui $s1, 0xff +/* 00B1D0 7000A5D0 AFB20020 */ sw $s2, 0x20($sp) +/* 00B1D4 7000A5D4 AFB00018 */ sw $s0, 0x18($sp) +/* 00B1D8 7000A5D8 AFA00028 */ sw $zero, 0x28($sp) +/* 00B1DC 7000A5DC 0C0033AA */ jal rmon_debug_is_final_build +/* 00B1E0 7000A5E0 3631B000 */ ori $s1, $s1, 0xb000 +/* 00B1E4 7000A5E4 10400004 */ beqz $v0, .L7000A5F8 +/* 00B1E8 7000A5E8 3C108006 */ lui $s0, %hi(boot_token_from_indy) +/* 00B1EC 7000A5EC 3C018006 */ lui $at, %hi(boot_token_from_indy) +/* 00B1F0 7000A5F0 1000000A */ b .L7000A61C +/* 00B1F4 7000A5F4 AC204C30 */ sw $zero, %lo(boot_token_from_indy)($at) +.L7000A5F8: +/* 00B1F8 7000A5F8 3C128006 */ lui $s2, %hi(piCmdBuf) +/* 00B1FC 7000A5FC 26524EB0 */ addiu $s2, %lo(piCmdBuf) # addiu $s2, $s2, 0x4eb0 +/* 00B200 7000A600 26104C30 */ addiu $s0, %lo(boot_token_from_indy) # addiu $s0, $s0, 0x4c30 +.L7000A604: +/* 00B204 7000A604 02202025 */ move $a0, $s1 +/* 00B208 7000A608 0C004E04 */ jal osPiReadIo +/* 00B20C 7000A60C 02002825 */ move $a1, $s0 +/* 00B210 7000A610 26100004 */ addiu $s0, $s0, 4 +/* 00B214 7000A614 1612FFFB */ bne $s0, $s2, .L7000A604 +/* 00B218 7000A618 26310004 */ addiu $s1, $s1, 4 +.L7000A61C: +/* 00B21C 7000A61C 3C048006 */ lui $a0, %hi(boot_token_from_indy) +/* 00B220 7000A620 0C00293C */ jal check_string_something +/* 00B224 7000A624 24844C30 */ addiu $a0, %lo(boot_token_from_indy) # addiu $a0, $a0, 0x4c30 +/* 00B228 7000A628 3C058003 */ lui $a1, %hi(aD_6) +/* 00B22C 7000A62C 24A591F4 */ addiu $a1, %lo(aD_6) # addiu $a1, $a1, -0x6e0c +/* 00B230 7000A630 0C0029A8 */ jal check_token +/* 00B234 7000A634 24040001 */ li $a0, 1 +/* 00B238 7000A638 10400003 */ beqz $v0, .L7000A648 +/* 00B23C 7000A63C 24040001 */ li $a0, 1 +/* 00B240 7000A640 240E0001 */ li $t6, 1 +/* 00B244 7000A644 AFAE0028 */ sw $t6, 0x28($sp) +.L7000A648: +/* 00B248 7000A648 3C058003 */ lui $a1, %hi(aS_2) +/* 00B24C 7000A64C 0C0029A8 */ jal check_token +/* 00B250 7000A650 24A591F8 */ addiu $a1, %lo(aS_2) # addiu $a1, $a1, -0x6e08 +/* 00B254 7000A654 10400004 */ beqz $v0, .L7000A668 +/* 00B258 7000A658 24040001 */ li $a0, 1 +/* 00B25C 7000A65C 240F0001 */ li $t7, 1 +/* 00B260 7000A660 3C018002 */ lui $at, %hi(bootswitch_sound) +/* 00B264 7000A664 A02F43F8 */ sb $t7, %lo(bootswitch_sound)($at) +.L7000A668: +/* 00B268 7000A668 3C058003 */ lui $a1, %hi(aJ) +/* 00B26C 7000A66C 0C0029A8 */ jal check_token +/* 00B270 7000A670 24A591FC */ addiu $a1, %lo(aJ) # addiu $a1, $a1, -0x6e04 +/* 00B274 7000A674 10400003 */ beqz $v0, .L7000A684 +/* 00B278 7000A678 24180001 */ li $t8, 1 +/* 00B27C 7000A67C 3C018005 */ lui $at, %hi(j_text_trigger) +/* 00B280 7000A680 AC3884D0 */ sw $t8, %lo(j_text_trigger)($at) +.L7000A684: +/* 00B284 7000A684 8FBF0024 */ lw $ra, 0x24($sp) +/* 00B288 7000A688 8FA20028 */ lw $v0, 0x28($sp) +/* 00B28C 7000A68C 8FB00018 */ lw $s0, 0x18($sp) +/* 00B290 7000A690 8FB1001C */ lw $s1, 0x1c($sp) +/* 00B294 7000A694 8FB20020 */ lw $s2, 0x20($sp) +/* 00B298 7000A698 03E00008 */ jr $ra +/* 00B29C 7000A69C 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + + +#ifdef NONMATCHING +s32 check_token(s32 arg0, s32 arg1) +{ + s32 temp_s1; + s32 temp_s2; + s32 temp_s3; + void *phi_s0; + s32 phi_s2; + s32 phi_s1; + + temp_s3 = strlen(arg1); + if (strstr_numstings >= 2) + { + phi_s0 = &D_80024478; + phi_s2 = arg0; + phi_s1 = 1; +loop_2: + phi_s2 = phi_s2; + if (string_related(arg1, *phi_s0, temp_s3) == 0) + { + temp_s2 = phi_s2 + -1; + phi_s2 = temp_s2; + if (temp_s2 == 0) + { + return *phi_s0 + temp_s3; + } + } + temp_s1 = phi_s1 + 1; + phi_s0 = phi_s0 + 4; + phi_s1 = temp_s1; + if (temp_s1 < strstr_numstings) + { + goto loop_2; + } + } + return 0; +} +#else +GLOBAL_ASM( +.text +glabel check_token +/* 00B2A0 7000A6A0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 00B2A4 7000A6A4 AFB2001C */ sw $s2, 0x1c($sp) +/* 00B2A8 7000A6A8 00809025 */ move $s2, $a0 +/* 00B2AC 7000A6AC AFBF002C */ sw $ra, 0x2c($sp) +/* 00B2B0 7000A6B0 AFB40024 */ sw $s4, 0x24($sp) +/* 00B2B4 7000A6B4 00A0A025 */ move $s4, $a1 +/* 00B2B8 7000A6B8 AFB50028 */ sw $s5, 0x28($sp) +/* 00B2BC 7000A6BC AFB30020 */ sw $s3, 0x20($sp) +/* 00B2C0 7000A6C0 AFB10018 */ sw $s1, 0x18($sp) +/* 00B2C4 7000A6C4 AFB00014 */ sw $s0, 0x14($sp) +/* 00B2C8 7000A6C8 0C004E1F */ jal strlen +/* 00B2CC 7000A6CC 00A02025 */ move $a0, $a1 +/* 00B2D0 7000A6D0 3C158002 */ lui $s5, %hi(strstr_numstings) +/* 00B2D4 7000A6D4 26B54470 */ addiu $s5, %lo(strstr_numstings) # addiu $s5, $s5, 0x4470 +/* 00B2D8 7000A6D8 8EAE0000 */ lw $t6, ($s5) +/* 00B2DC 7000A6DC 00409825 */ move $s3, $v0 +/* 00B2E0 7000A6E0 24110001 */ li $s1, 1 +/* 00B2E4 7000A6E4 29C10002 */ slti $at, $t6, 2 +/* 00B2E8 7000A6E8 14200014 */ bnez $at, .L7000A73C +/* 00B2EC 7000A6EC 3C108002 */ lui $s0, %hi(D_80024478) +/* 00B2F0 7000A6F0 26104478 */ addiu $s0, %lo(D_80024478) # addiu $s0, $s0, 0x4478 +/* 00B2F4 7000A6F4 02802025 */ move $a0, $s4 +.L7000A6F8: +/* 00B2F8 7000A6F8 8E050000 */ lw $a1, ($s0) +/* 00B2FC 7000A6FC 0C002A26 */ jal string_related +/* 00B300 7000A700 02603025 */ move $a2, $s3 +/* 00B304 7000A704 54400008 */ bnezl $v0, .L7000A728 +/* 00B308 7000A708 8EB80000 */ lw $t8, ($s5) +/* 00B30C 7000A70C 2652FFFF */ addiu $s2, $s2, -1 +/* 00B310 7000A710 56400005 */ bnezl $s2, .L7000A728 +/* 00B314 7000A714 8EB80000 */ lw $t8, ($s5) +/* 00B318 7000A718 8E0F0000 */ lw $t7, ($s0) +/* 00B31C 7000A71C 10000008 */ b .L7000A740 +/* 00B320 7000A720 01F31021 */ addu $v0, $t7, $s3 +/* 00B324 7000A724 8EB80000 */ lw $t8, ($s5) +.L7000A728: +/* 00B328 7000A728 26310001 */ addiu $s1, $s1, 1 +/* 00B32C 7000A72C 26100004 */ addiu $s0, $s0, 4 +/* 00B330 7000A730 0238082A */ slt $at, $s1, $t8 +/* 00B334 7000A734 5420FFF0 */ bnezl $at, .L7000A6F8 +/* 00B338 7000A738 02802025 */ move $a0, $s4 +.L7000A73C: +/* 00B33C 7000A73C 00001025 */ move $v0, $zero +.L7000A740: +/* 00B340 7000A740 8FBF002C */ lw $ra, 0x2c($sp) +/* 00B344 7000A744 8FB00014 */ lw $s0, 0x14($sp) +/* 00B348 7000A748 8FB10018 */ lw $s1, 0x18($sp) +/* 00B34C 7000A74C 8FB2001C */ lw $s2, 0x1c($sp) +/* 00B350 7000A750 8FB30020 */ lw $s3, 0x20($sp) +/* 00B354 7000A754 8FB40024 */ lw $s4, 0x24($sp) +/* 00B358 7000A758 8FB50028 */ lw $s5, 0x28($sp) +/* 00B35C 7000A75C 03E00008 */ jr $ra +/* 00B360 7000A760 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + diff --git a/src/vi.c b/src/vi.c new file mode 100644 index 0000000..f660d1d --- /dev/null +++ b/src/vi.c @@ -0,0 +1,36 @@ +#include "ultra64.h" +#include "gbi.h" + +OSMesg vi_c_debug_MSG[0x8]; +OSMesgQueue vi_c_debug_MQ; + +/* wtf is this, should it be split? is it part of debugmenu.? */ +u32 viDebugNoticeList[] = +{ + 0, 0, 0, + 0, 0, 0 +}; + +//80024518 +u32 viDLEnd[] = { + 0xB8000000,0x00000000, +}; +//Gfx viDLEnd[] = { +// gsSPEndDisplayList() +//}; + + + +void viDebugRemoved(void) { + return; +} + +void viInitDebugNoticeList(void) +{ + debCheckAddDebugNoticeListEntry(&viDebugNoticeList, "vi_c_debug"); + osCreateMesgQueue(&vi_c_debug_MQ, &vi_c_debug_MSG, 8); +} + + + + diff --git a/src/vi.h b/src/vi.h new file mode 100644 index 0000000..f813258 --- /dev/null +++ b/src/vi.h @@ -0,0 +1,13 @@ +#ifndef _VI_H_ +#define _VI_H_ +#include "ultra64.h" + +extern OSMesg vi_c_debug_MSG[0x8]; +extern OSMesgQueue vi_c_debug_MQ; + +extern u32 viDLEnd[]; + +void viDebugRemoved(void); +void viInitDebugNoticeList(void); + +#endif diff --git a/src/video.c b/src/video.c new file mode 100644 index 0000000..69266bc --- /dev/null +++ b/src/video.c @@ -0,0 +1,3172 @@ +//FIXME i still need all sorts of love +#include "ultra64.h" +#include "vi.h" +#include "video.h" +#include "bondgame.h" + +/** + * @file video.c + * This file contains video handling code. + */ + + +//data +u32 D_80023240 = 0; +struct video_settings video1_settings = {0, 320, 240, 60.0f, 1.3333334f, 30.0f, 10000.0f, 320, 240, 320, 240, 0, 0, 1, 0}; +struct video_settings video2_settings = {0, 320, 240, 60.0f, 1.3333334f, 30.0f, 10000.0f, 320, 240, 320, 240, 0, 0, 1, 0}; +s32 D_8002329C = 0; +s32 D_800232A0 = 0; +video_settings * ptr_video_settings1 = &video1_settings; +video_settings * ptr_video_settings2 = &video1_settings; +s32 coloroutputmode = 1; +s32 D_800232B0 = 1; +s32 D_800232B4 = 0; +s32 D_800232B8 = 0; +s32 D_800232BC = 3; +s32 D_800232C0 = 0; +s32 jpg_16bit_grabnum = 1; +s32 jpg_32bit_grabnum = 1; +s32 rgb_16bit_grabnum = 1; +s32 rgb_32bit_grabnum = 1; + +//rodata + + + + + + + +//bss +char dword_CODE_bss_800607E0[0x40]; +Mtx *m; +u16 word_CODE_bss_80060824; +char dword_CODE_bss_80060828[0x50]; +u8 off_CODE_bss_80060878; +u8 off_CODE_bss_80060879; +//struct osViMode viMode; +s32 viMode; +s32 dword_CODE_bss_80060880; +s32 dword_CODE_bss_80060884; +s32 dword_CODE_bss_80060888; +s32 dword_CODE_bss_8006088C; +char dword_CODE_bss_80060890[0x400];//CC[0x3C4]; + //90[0x400]; +/** + * 3C60 70003060 + */ +#ifdef NONMATCHING +void init_video_settings(void) +{ + video1_settings.frameb = cfb_16_a; + D_8002329C = 0; + D_800232A0 = 0; + ptr_video_settings1 = &video1_settings; + ptr_video_settings2 = &video2_settings; + off_CODE_bss_80060878 = 0; + off_CODE_bss_80060879 = 1; + video2_settings.frameb = cfb_16_b; +} +#else +GLOBAL_ASM( +.text +glabel init_video_settings +/* 003C60 70003060 2408002C */ li $t0, 44 +/* 003C64 70003064 300200FF */ andi $v0, $zero, 0xff +/* 003C68 70003068 00480019 */ multu $v0, $t0 +/* 003C6C 7000306C 0002C880 */ sll $t9, $v0, 2 +/* 003C70 70003070 0322C821 */ addu $t9, $t9, $v0 +/* 003C74 70003074 0019C880 */ sll $t9, $t9, 2 +/* 003C78 70003078 0322C823 */ subu $t9, $t9, $v0 +/* 003C7C 7000307C 3C078002 */ lui $a3, %hi(video1_settings) +/* 003C80 70003080 0019C880 */ sll $t9, $t9, 2 +/* 003C84 70003084 24E73244 */ addiu $a3, %lo(video1_settings) # addiu $a3, $a3, 0x3244 +/* 003C88 70003088 3C048006 */ lui $a0, %hi(off_CODE_bss_80060878) +/* 003C8C 7000308C 3C058006 */ lui $a1, %hi(off_CODE_bss_80060879) +/* 003C90 70003090 00007812 */ mflo $t7 +/* 003C94 70003094 3C068002 */ lui $a2, %hi(ptr_video_settings1) +/* 003C98 70003098 3C09803B */ lui $t1, %hi(cfb_16_a) # $t1, 0x803b +/* 003C9C 7000309C 0322C823 */ subu $t9, $t9, $v0 +/* 003CA0 700030A0 25295000 */ addiu $t1, %lo(cfb_16_a) # addiu $t1, $t1, 0x5000 +/* 003CA4 700030A4 24C632A4 */ addiu $a2, %lo(ptr_video_settings1) # addiu $a2, $a2, 0x32a4 +/* 003CA8 700030A8 24A50879 */ addiu $a1, %lo(off_CODE_bss_80060879) # addiu $a1, $a1, 0x879 +/* 003CAC 700030AC 24840878 */ addiu $a0, %lo(off_CODE_bss_80060878) # addiu $a0, $a0, 0x878 +/* 003CB0 700030B0 240E0001 */ li $t6, 1 +/* 003CB4 700030B4 00EFC021 */ addu $t8, $a3, $t7 +/* 003CB8 700030B8 0019CAC0 */ sll $t9, $t9, 0xb +/* 003CBC 700030BC A0800000 */ sb $zero, ($a0) +/* 003CC0 700030C0 A0AE0000 */ sb $t6, ($a1) +/* 003CC4 700030C4 ACD80000 */ sw $t8, ($a2) +/* 003CC8 700030C8 01395821 */ addu $t3, $t1, $t9 +/* 003CCC 700030CC AF0B0028 */ sw $t3, 0x28($t8) +/* 003CD0 700030D0 90A30000 */ lbu $v1, ($a1) +/* 003CD4 700030D4 3C0A8002 */ lui $t2, %hi(ptr_video_settings2) +/* 003CD8 700030D8 254A32A8 */ addiu $t2, %lo(ptr_video_settings2) # addiu $t2, $t2, 0x32a8 +/* 003CDC 700030DC 00680019 */ multu $v1, $t0 +/* 003CE0 700030E0 00037880 */ sll $t7, $v1, 2 +/* 003CE4 700030E4 01E37821 */ addu $t7, $t7, $v1 +/* 003CE8 700030E8 000F7880 */ sll $t7, $t7, 2 +/* 003CEC 700030EC 01E37823 */ subu $t7, $t7, $v1 +/* 003CF0 700030F0 000F7880 */ sll $t7, $t7, 2 +/* 003CF4 700030F4 01E37823 */ subu $t7, $t7, $v1 +/* 003CF8 700030F8 000F7AC0 */ sll $t7, $t7, 0xb +/* 003CFC 700030FC 012FC021 */ addu $t8, $t1, $t7 +/* 003D00 70003100 3C018002 */ lui $at, %hi(D_8002329C) +/* 003D04 70003104 00006812 */ mflo $t5 +/* 003D08 70003108 00ED7021 */ addu $t6, $a3, $t5 +/* 003D0C 7000310C AD4E0000 */ sw $t6, ($t2) +/* 003D10 70003110 ADD80028 */ sw $t8, 0x28($t6) +/* 003D14 70003114 AC20329C */ sw $zero, %lo(D_8002329C)($at) +/* 003D18 70003118 3C018002 */ lui $at, %hi(D_800232A0) +/* 003D1C 7000311C 03E00008 */ jr $ra +/* 003D20 70003120 AC2032A0 */ sw $zero, %lo(D_800232A0)($at) +) +#endif + + + +/** + * 3D24 70003124 initialize both video buffers + */ +#ifdef NONMATCHING +void init_both_video_buffers(void) +{ + s32 i; + + remove_viewport_buffer(); + for (i = 0; i != 0x25800; i += 4) + { + cfb_16_a[i] = 0; + cfb_16_b[i] = 0; + cfb_16_a[i + 1] = 0; + cfb_16_b[i + 1] = 0; + cfb_16_a[i + 2] = 0; + cfb_16_b[i + 2] = 0; + cfb_16_a[i + 3] = 0; + cfb_16_b[i + 3] = 0; + }; +} +#else +GLOBAL_ASM( +.text +glabel init_both_video_buffers +/* 003D24 70003124 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 003D28 70003128 AFBF0014 */ sw $ra, 0x14($sp) +/* 003D2C 7000312C 0FC348E0 */ jal remove_viewport_buffer +/* 003D30 70003130 00000000 */ nop +/* 003D34 70003134 3C070002 */ lui $a3, (0x00025800 >> 16) # lui $a3, 2 +/* 003D38 70003138 3C06803E */ lui $a2, %hi(cfb_16_b) # $a2, 0x803e +/* 003D3C 7000313C 3C05803B */ lui $a1, %hi(cfb_16_a) # $a1, 0x803b +/* 003D40 70003140 24A55000 */ addiu $a1, %lo(cfb_16_a) # addiu $a1, $a1, 0x5000 +/* 003D44 70003144 24C6A800 */ addiu $a2, %lo(cfb_16_b) # addiu $a2, $a2, -0x5800 +/* 003D48 70003148 34E75800 */ ori $a3, (0x00025800 & 0xFFFF) # ori $a3, $a3, 0x5800 +/* 003D4C 7000314C 00002025 */ move $a0, $zero +.L70003150: +/* 003D50 70003150 00A41021 */ addu $v0, $a1, $a0 +/* 003D54 70003154 A0400000 */ sb $zero, ($v0) +/* 003D58 70003158 00C41821 */ addu $v1, $a2, $a0 +/* 003D5C 7000315C A0600000 */ sb $zero, ($v1) +/* 003D60 70003160 A0400001 */ sb $zero, 1($v0) +/* 003D64 70003164 A0600001 */ sb $zero, 1($v1) +/* 003D68 70003168 A0400002 */ sb $zero, 2($v0) +/* 003D6C 7000316C A0600002 */ sb $zero, 2($v1) +/* 003D70 70003170 A0400003 */ sb $zero, 3($v0) +/* 003D74 70003174 24840004 */ addiu $a0, $a0, 4 +/* 003D78 70003178 1487FFF5 */ bne $a0, $a3, .L70003150 +/* 003D7C 7000317C A0600003 */ sb $zero, 3($v1) +/* 003D80 70003180 8FBF0014 */ lw $ra, 0x14($sp) +/* 003D84 70003184 27BD0018 */ addiu $sp, $sp, 0x18 +/* 003D88 70003188 03E00008 */ jr $ra +/* 003D8C 7000318C 00000000 */ nop +) +#endif + +/** + * 3D90 70003190 ???; 2->800232BC + */ +#ifdef NONMATCHING +void video_related_6(s32 arg0) +{ + D_800232BC = (s32) (arg0 + 2); +} +#else +GLOBAL_ASM( +.text +glabel video_related_6 +/* 003D90 70003190 24840002 */ addiu $a0, $a0, 2 +/* 003D94 70003194 3C018002 */ lui $at, %hi(D_800232BC) +/* 003D98 70003198 03E00008 */ jr $ra +/* 003D9C 7000319C AC2432BC */ sw $a0, %lo(D_800232BC)($at) +) +#endif + +/** + * 3DA0 700031A0 + */ +#ifdef NONMATCHING +void *video_related_7(void) +{ + s32 temp_lo; + s32 temp_t6; + + if (D_800232B8 != 0) + { + temp_t6 = D_800232B8 + -1; + D_800232B8 = temp_t6; + if (temp_t6 == 0) + { + D_800232B4 = 0; + } + } + temp_lo = D_800232B0 * D_800232B4; + viMode->OSViCommonRegs.hstart /*unk30*/ = (s32) (((((s32) viMode+0x8 >> 0x10) + temp_lo) << 0x10) | ((viMode+0x8 + temp_lo) & 0xffff)); + viMode->OSViFieldRegs[0].origin /*unk44*/ = (s32) (((((s32) viMode+0xC >> 0x10) + temp_lo) << 0x10) | ((viMode+0xC + temp_lo) & 0xffff)); + osViSetMode(viMode, &viMode); + osViBlack(*(D_800232BC + 3)); + if (D_800232BC != 0) + { + if (D_800232BC < 3) + { + D_800232BC = (s32) (D_800232BC + -1); + } + } + osViSetSpecialFeatures(0x42); + D_800232B0 = (s32) -(s32) D_800232B0; + return &D_800232B0; +} +#else +GLOBAL_ASM( +.text +glabel video_related_7 +/* 003DA0 700031A0 3C038002 */ lui $v1, %hi(D_800232B8) +/* 003DA4 700031A4 246332B8 */ addiu $v1, %lo(D_800232B8) # addiu $v1, $v1, 0x32b8 +/* 003DA8 700031A8 8C620000 */ lw $v0, ($v1) +/* 003DAC 700031AC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 003DB0 700031B0 AFBF0014 */ sw $ra, 0x14($sp) +/* 003DB4 700031B4 10400006 */ beqz $v0, .L700031D0 +/* 003DB8 700031B8 3C188002 */ lui $t8, %hi(D_800232B0) +/* 003DBC 700031BC 244EFFFF */ addiu $t6, $v0, -1 +/* 003DC0 700031C0 15C00003 */ bnez $t6, .L700031D0 +/* 003DC4 700031C4 AC6E0000 */ sw $t6, ($v1) +/* 003DC8 700031C8 3C018002 */ lui $at, %hi(D_800232B4) +/* 003DCC 700031CC AC2032B4 */ sw $zero, %lo(D_800232B4)($at) +.L700031D0: +/* 003DD0 700031D0 3C198002 */ lui $t9, %hi(D_800232B4) +/* 003DD4 700031D4 8F3932B4 */ lw $t9, %lo(D_800232B4)($t9) +/* 003DD8 700031D8 8F1832B0 */ lw $t8, %lo(D_800232B0)($t8) +/* 003DDC 700031DC 3C028006 */ lui $v0, %hi(viMode+0x8) +/* 003DE0 700031E0 8C4D0884 */ lw $t5, %lo(viMode+0x8)($v0) +/* 003DE4 700031E4 03190019 */ multu $t8, $t9 +/* 003DE8 700031E8 3C058006 */ lui $a1, %hi(viMode) +/* 003DEC 700031EC 24A5087C */ addiu $a1, %lo(viMode) # addiu $a1, $a1, 0x87c +/* 003DF0 700031F0 000D4C03 */ sra $t1, $t5, 0x10 +/* 003DF4 700031F4 8CB90000 */ lw $t9, ($a1) +/* 003DF8 700031F8 3C028006 */ lui $v0, %hi(viMode+0xC) +/* 003DFC 700031FC 00001812 */ mflo $v1 +/* 003E00 70003200 01235821 */ addu $t3, $t1, $v1 +/* 003E04 70003204 01A37021 */ addu $t6, $t5, $v1 +/* 003E08 70003208 31CFFFFF */ andi $t7, $t6, 0xffff +/* 003E0C 7000320C 000B6400 */ sll $t4, $t3, 0x10 +/* 003E10 70003210 018FC025 */ or $t8, $t4, $t7 +/* 003E14 70003214 AF380030 */ sw $t8, 0x30($t9) +/* 003E18 70003218 8C4E0888 */ lw $t6, %lo(viMode+0xC)($v0) +/* 003E1C 7000321C 8CB90000 */ lw $t9, ($a1) +/* 003E20 70003220 000E4C03 */ sra $t1, $t6, 0x10 +/* 003E24 70003224 01235821 */ addu $t3, $t1, $v1 +/* 003E28 70003228 01C36021 */ addu $t4, $t6, $v1 +/* 003E2C 7000322C 318FFFFF */ andi $t7, $t4, 0xffff +/* 003E30 70003230 000B6C00 */ sll $t5, $t3, 0x10 +/* 003E34 70003234 01AFC025 */ or $t8, $t5, $t7 +/* 003E38 70003238 AF380044 */ sw $t8, 0x44($t9) +/* 003E3C 7000323C 0C003818 */ jal osViSetMode +/* 003E40 70003240 8CA40000 */ lw $a0, ($a1) +/* 003E44 70003244 3C048002 */ lui $a0, %hi(D_800232BC + 3) +/* 003E48 70003248 0C0038B4 */ jal osViBlack +/* 003E4C 7000324C 908432BF */ lbu $a0, %lo(D_800232BC + 3)($a0) +/* 003E50 70003250 3C038002 */ lui $v1, %hi(D_800232BC) +/* 003E54 70003254 246332BC */ addiu $v1, %lo(D_800232BC) # addiu $v1, $v1, 0x32bc +/* 003E58 70003258 8C620000 */ lw $v0, ($v1) +/* 003E5C 7000325C 10400004 */ beqz $v0, .L70003270 +/* 003E60 70003260 28410003 */ slti $at, $v0, 3 +/* 003E64 70003264 10200002 */ beqz $at, .L70003270 +/* 003E68 70003268 2448FFFF */ addiu $t0, $v0, -1 +/* 003E6C 7000326C AC680000 */ sw $t0, ($v1) +.L70003270: +/* 003E70 70003270 0C003DEC */ jal osViSetSpecialFeatures +/* 003E74 70003274 24040042 */ li $a0, 66 +/* 003E78 70003278 3C028002 */ lui $v0, %hi(D_800232B0) +/* 003E7C 7000327C 244232B0 */ addiu $v0, %lo(D_800232B0) # addiu $v0, $v0, 0x32b0 +/* 003E80 70003280 8C490000 */ lw $t1, ($v0) +/* 003E84 70003284 8FBF0014 */ lw $ra, 0x14($sp) +/* 003E88 70003288 27BD0018 */ addiu $sp, $sp, 0x18 +/* 003E8C 7000328C 00095023 */ negu $t2, $t1 +/* 003E90 70003290 03E00008 */ jr $ra +/* 003E94 70003294 AC4A0000 */ sw $t2, ($v0) +) +#endif + + + +/** + * 3E98 70003298 + */ +#ifdef NONMATCHING +void video_related_8(void) +{ + void *temp_v0; + void *temp_t7; + void *temp_t6; + void *temp_t9; + void *temp_t8; + void *temp_t9_2; + void *temp_t6_2; + void *temp_t7_2; + void *temp_t8_2; + s32 temp_t1; + void *temp_v1; + void *temp_t8_3; + void *temp_t7_3; + void *temp_v1_2; + void *temp_t8_4; + void *temp_t6_3; + void *temp_v1_3; + void *temp_t6_4; + void *temp_t8_5; + void *temp_v1_4; + void *temp_t6_5; + void *temp_t9_3; + s32 temp_v0_2; + s32 temp_a0; + s32 temp_v0_3; + s32 temp_a0_2; + s32 temp_v0_4; + s32 temp_a0_3; + s32 temp_t2; + s32 temp_t9_4; + s32 temp_t7_4; + s32 temp_t8_6; + s8 temp_t6_6; + s8 temp_t7_5; + s32 temp_a1; + void *phi_t7; + void *phi_t6; + void *phi_t9; + void *phi_t8; + void *phi_t9_2; + void *phi_t6_2; + void *phi_t7_2; + void *phi_t8_2; + f32 phi_f0; + void *phi_t8_3; + void *phi_t7_3; + void *phi_t8_4; + void *phi_t6_3; + void *phi_t6_4; + void *phi_t8_5; + void *phi_t6_5; + void *phi_t9_3; + void *phi_v1; + s32 phi_t9_4; + s8 phi_t6_6; + s8 phi_t7_4; + + if (*ptr_video_settings2 != *ptr_video_settings1) + { + if (*ptr_video_settings2 != 0) + { + if (*ptr_video_settings2 != 1) + { + if (*ptr_video_settings2 != 2) + { + + } + else + { + if ((void *)0x80000000->unk300 == 2) + { + viMode = &osViModeTable_osViModeMpalHaf1; + } + else + { + viMode = &osViModeTable_osViModeNtscHaf1; + } + temp_v0 = *&viMode; + viMode+0x4 = (s32) temp_v0->unk1C; + viMode+0x8 = (s32) temp_v0->OSViCommonRegs.hstart/*unk30*/; + viMode+0xC = (s32) temp_v0->OSViFieldRegs[0].origin/*unk44*/; + osViBlack(0); + } + } + else + { + if (coloroutputmode != 0) + { + if (osTvType == 2) + { + phi_t7 = &osViModeTable_osViModeMpalLan1; + phi_t6 = &dword_CODE_bss_80060828; +block_9: + temp_t7 = (phi_t7 + 0xc); + temp_t6 = (phi_t6 + 0xc); + temp_t6->unk-C = (?32) *phi_t7; + temp_t6->unk-8 = (?32) temp_t7->unk-8; + temp_t6->unk-4 = (?32) temp_t7->unk-4; + phi_t7 = temp_t7; + phi_t6 = temp_t6; + if (temp_t7 != (&osViModeTable_osViModeMpalLan1 + 0x48)) + { + goto block_9; + } + *temp_t6 = (?32) *temp_t7; + temp_t6->unk4 = (?32) temp_t7->unk4; + } + else + { + phi_t9 = &osViModeTable_osViModeNtscLan1; + phi_t8 = &dword_CODE_bss_80060828; +block_12: + temp_t9 = (phi_t9 + 0xc); + temp_t8 = (phi_t8 + 0xc); + temp_t8->unk-C = (?32) *phi_t9; + temp_t8->unk-8 = (?32) temp_t9->unk-8; + temp_t8->unk-4 = (?32) temp_t9->unk-4; + phi_t9 = temp_t9; + phi_t8 = temp_t8; + if (temp_t9 != (&osViModeTable_osViModeNtscLan1 + 0x48)) + { + goto block_12; + } + *temp_t8 = (?32) *temp_t9; + temp_t8->unk4 = (?32) temp_t9->unk4; + } + } + else + { + if ((void *)0x80000000->unk300 == 2) + { + phi_t9_2 = &osViModeTable_osViModeMpalLan2; + phi_t6_2 = &dword_CODE_bss_80060828; +block_16: + temp_t9_2 = (phi_t9_2 + 0xc); + temp_t6_2 = (phi_t6_2 + 0xc); + temp_t6_2->unk-C = (?32) *phi_t9_2; + temp_t6_2->unk-8 = (?32) temp_t9_2->unk-8; + temp_t6_2->unk-4 = (?32) temp_t9_2->unk-4; + phi_t9_2 = temp_t9_2; + phi_t6_2 = temp_t6_2; + if (temp_t9_2 != (&osViModeTable_osViModeMpalLan2 + 0x48)) + { + goto block_16; + } + *temp_t6_2 = (?32) *temp_t9_2; + temp_t6_2->unk4 = (?32) temp_t9_2->unk4; + } + else + { + phi_t7_2 = &osViModeTable_osViModeNtscLan2; + phi_t8_2 = &dword_CODE_bss_80060828; +block_19: + temp_t7_2 = (phi_t7_2 + 0xc); + temp_t8_2 = (phi_t8_2 + 0xc); + temp_t8_2->unk-C = (?32) *phi_t7_2; + temp_t8_2->unk-8 = (?32) temp_t7_2->unk-8; + temp_t8_2->unk-4 = (?32) temp_t7_2->unk-4; + phi_t7_2 = temp_t7_2; + phi_t8_2 = temp_t8_2; + if (temp_t7_2 != (&osViModeTable_osViModeNtscLan2 + 0x48)) + { + goto block_19; + } + *temp_t8_2 = (?32) *temp_t7_2; + temp_t8_2->unk4 = (?32) temp_t7_2->unk4; + } + } + viMode = &dword_CODE_bss_80060828; + viMode+0x4 = (s32) dword_CODE_bss_80060828.unk1C; + viMode+0x8 = (s32) dword_CODE_bss_80060828.unk30; + viMode+0xC = (s32) dword_CODE_bss_80060828.unk44; + video_related_6(0); + } + } + else + { + osViSetYScale(0x3f800000); + osViBlack(1); + } + osViSetSpecialFeatures(0x42); + } + phi_f0 = ((f32) ptr_video_settings2->unk6 / (f32) ptr_video_settings2->unk1A); + if (*ptr_video_settings2 == 0) + { + phi_f0 = 1.0f; + } + temp_t1 = (D_800232C0 * 4); + (0x80020000 + temp_t1)->unk30B4 = (f32) ((f32) ptr_video_settings2->unk4 / (f32) ptr_video_settings2->unk18); + (0x80020000 + temp_t1)->unk30BC = (f32) phi_f0; + if (*ptr_video_settings2 == 1) + { + (0x80060000 + temp_t1)->unk-2420 = &dword_CODE_bss_80060828; + if (coloroutputmode != 0) + { + if (osTvType == 2) + { + temp_v1 = ((D_800232C0 * 0x50) + &dword_CODE_bss_8005DB40); + phi_t8_3 = &osViModeTable_osViModeMpalLan1; + phi_t7_3 = temp_v1; +block_33: + temp_t8_3 = (phi_t8_3 + 0xc); + temp_t7_3 = (phi_t7_3 + 0xc); + temp_t7_3->unk-C = (?32) *phi_t8_3; + temp_t7_3->unk-8 = (?32) temp_t8_3->unk-8; + temp_t7_3->unk-4 = (?32) temp_t8_3->unk-4; + phi_t8_3 = temp_t8_3; + phi_t7_3 = temp_t7_3; + if (temp_t8_3 != (&osViModeTable_osViModeMpalLan1 + 0x48)) + { + goto block_33; + } + *temp_t7_3 = (?32) *temp_t8_3; + temp_t7_3->unk4 = (?32) temp_t8_3->unk4; + phi_v1 = temp_v1; + } + else + { + temp_v1_2 = ((D_800232C0 * 0x50) + &dword_CODE_bss_8005DB40); + phi_t8_4 = &osViModeTable_osViModeNtscLan1; + phi_t6_3 = temp_v1_2; +block_36: + temp_t8_4 = (phi_t8_4 + 0xc); + temp_t6_3 = (phi_t6_3 + 0xc); + temp_t6_3->unk-C = (?32) *phi_t8_4; + temp_t6_3->unk-8 = (?32) temp_t8_4->unk-8; + temp_t6_3->unk-4 = (?32) temp_t8_4->unk-4; + phi_t8_4 = temp_t8_4; + phi_t6_3 = temp_t6_3; + if (temp_t8_4 != (&osViModeTable_osViModeNtscLan1 + 0x48)) + { + goto block_36; + } + *temp_t6_3 = (?32) *temp_t8_4; + temp_t6_3->unk4 = (?32) temp_t8_4->unk4; + phi_v1 = temp_v1_2; + } + } + else + { + if (osTvType == 2) + { + temp_v1_3 = ((D_800232C0 * 0x50) + &dword_CODE_bss_8005DB40); + phi_t6_4 = &osViModeTable_osViModeMpalLan2; + phi_t8_5 = temp_v1_3; +block_40: + temp_t6_4 = (phi_t6_4 + 0xc); + temp_t8_5 = (phi_t8_5 + 0xc); + temp_t8_5->unk-C = (?32) *phi_t6_4; + temp_t8_5->unk-8 = (?32) temp_t6_4->unk-8; + temp_t8_5->unk-4 = (?32) temp_t6_4->unk-4; + phi_t6_4 = temp_t6_4; + phi_t8_5 = temp_t8_5; + if (temp_t6_4 != (&osViModeTable_osViModeMpalLan2 + 0x48)) + { + goto block_40; + } + *temp_t8_5 = (?32) *temp_t6_4; + temp_t8_5->unk4 = (?32) temp_t6_4->unk4; + phi_v1 = temp_v1_3; + } + else + { + temp_v1_4 = ((D_800232C0 * 0x50) + &dword_CODE_bss_8005DB40); + phi_t6_5 = &osViModeTable_osViModeNtscLan2; + phi_t9_3 = temp_v1_4; +block_43: + temp_t6_5 = (phi_t6_5 + 0xc); + temp_t9_3 = (phi_t9_3 + 0xc); + temp_t9_3->unk-C = (?32) *phi_t6_5; + temp_t9_3->unk-8 = (?32) temp_t6_5->unk-8; + temp_t9_3->unk-4 = (?32) temp_t6_5->unk-4; + phi_t6_5 = temp_t6_5; + phi_t9_3 = temp_t9_3; + if (temp_t6_5 != (&osViModeTable_osViModeNtscLan2 + 0x48)) + { + goto block_43; + } + *temp_t9_3 = (?32) *temp_t6_5; + temp_t9_3->unk4 = (?32) temp_t6_5->unk4; + phi_v1 = temp_v1_4; + } + } + phi_v1->unk8 = (s32) ptr_video_settings2->unk18; + temp_v0_2 = phi_v1->unk1C; + phi_v1->unk20 = (s32) ((s32) (ptr_video_settings2->unk18 << 0xa) / 0x280); + phi_v1->unk2C = (s32) ((s32) (ptr_video_settings2->unk1A << 0xb) / 0x1e0); + phi_v1->unk40 = (s32) ((s32) (ptr_video_settings2->unk1A << 0xb) / 0x1e0); + phi_v1->unk28 = (s32) (ptr_video_settings2->unk18 * 2); + phi_v1->unk3C = (s32) (ptr_video_settings2->unk18 * 2); + temp_a0 = ((((s32) (((temp_v0_2 >> 0x10) & 0xffff) + D_8002329C) % 0xffff) << 0x10) | ((s32) ((temp_v0_2 & 0xffff) + D_8002329C) % 0xffff)); + phi_v1->unk1C = temp_a0; + viMode+0x4 = temp_a0; + temp_v0_3 = phi_v1->unk30; + temp_a0_2 = ((((s32) (((temp_v0_3 >> 0x10) & 0xffff) + D_800232A0) % 0xffff) << 0x10) | ((s32) ((temp_v0_3 & 0xffff) + D_800232A0) % 0xffff)); + phi_v1->unk30 = temp_a0_2; + viMode+0x8 = temp_a0_2; + temp_v0_4 = phi_v1->unk44; + temp_a0_3 = ((((s32) (((temp_v0_4 >> 0x10) & 0xffff) + D_800232A0) % 0xffff) << 0x10) | ((s32) ((temp_v0_4 & 0xffff) + D_800232A0) % 0xffff)); + phi_v1->unk44 = temp_a0_3; + viMode+0xC = temp_a0_3; + (0x80020000 + temp_t1)->unk30C4 = 1; + } + else + { + (0x80020000 + temp_t1)->unk30C4 = 0; + } + temp_t2 = (D_800232C0 + 1); + temp_t9_4 = (temp_t2 & 1); + phi_t9_4 = temp_t9_4; + if (temp_t2 < 0) + { + phi_t9_4 = temp_t9_4; + if (temp_t9_4 != 0) + { + phi_t9_4 = (temp_t9_4 + -2); + } + } + D_800232C0 = (s32) phi_t9_4; + if (coloroutputmode != 0) + { + fast3d_related_array->unk58 = (void *) ptr_video_settings2->frameb; + } + else + { + fast3d_related_array->unk58 = &cfb_16_a; + } + temp_t7_4 = (off_CODE_bss_80060878 + 1); + temp_t8_6 = (off_CODE_bss_80060879 + 1); + temp_t6_6 = (temp_t7_4 & 1); + phi_t6_6 = temp_t6_6; + if (temp_t7_4 < 0) + { + phi_t6_6 = temp_t6_6; + if (temp_t6_6 != 0) + { + phi_t6_6 = (temp_t6_6 + -2); + } + } + off_CODE_bss_80060878 = (s8) phi_t6_6; + temp_t7_5 = (temp_t8_6 & 1); + phi_t7_4 = temp_t7_5; + if (temp_t8_6 < 0) + { + phi_t7_4 = temp_t7_5; + if (temp_t7_5 != 0) + { + phi_t7_4 = (temp_t7_5 + -2); + } + } + off_CODE_bss_80060879 = (s8) phi_t7_4; + ptr_video_settings1 = (void *) (&video1_settings + (off_CODE_bss_80060878 * 0x2c)); + temp_a1 = (&video1_settings + (off_CODE_bss_80060879 * 0x2c)); + *&ptr_video_settings2 = temp_a1; + bcopy(*&ptr_video_settings2, temp_a1, 0x2c, &video1_settings); + ptr_video_settings2->frameb = (s32) ((off_CODE_bss_80060879 * 0x25800) + &cfb_16_a); +} +#else +GLOBAL_ASM( +.text +glabel video_related_8 +/* 003E98 70003298 3C0D8002 */ lui $t5, %hi(ptr_video_settings2) +/* 003E9C 7000329C 25AD32A8 */ addiu $t5, %lo(ptr_video_settings2) # addiu $t5, $t5, 0x32a8 +/* 003EA0 700032A0 3C0E8002 */ lui $t6, %hi(ptr_video_settings1) +/* 003EA4 700032A4 8DCE32A4 */ lw $t6, %lo(ptr_video_settings1)($t6) +/* 003EA8 700032A8 8DA80000 */ lw $t0, ($t5) +/* 003EAC 700032AC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 003EB0 700032B0 AFBF0014 */ sw $ra, 0x14($sp) +/* 003EB4 700032B4 91CF0000 */ lbu $t7, ($t6) +/* 003EB8 700032B8 91020000 */ lbu $v0, ($t0) +/* 003EBC 700032BC 504F009B */ beql $v0, $t7, .L7000352C +/* 003EC0 700032C0 850F0004 */ lh $t7, 4($t0) +/* 003EC4 700032C4 10400009 */ beqz $v0, .L700032EC +/* 003EC8 700032C8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 003ECC 700032CC 24010001 */ li $at, 1 +/* 003ED0 700032D0 1041000D */ beq $v0, $at, .L70003308 +/* 003ED4 700032D4 3C188002 */ lui $t8, %hi(coloroutputmode) +/* 003ED8 700032D8 24010002 */ li $at, 2 +/* 003EDC 700032DC 10410071 */ beq $v0, $at, .L700034A4 +/* 003EE0 700032E0 3C198000 */ lui $t9, 0x8000 +/* 003EE4 700032E4 10000089 */ b .L7000350C +/* 003EE8 700032E8 00000000 */ nop +.L700032EC: +/* 003EEC 700032EC 44816000 */ mtc1 $at, $f12 +/* 003EF0 700032F0 0C003880 */ jal osViSetYScale +/* 003EF4 700032F4 00000000 */ nop +/* 003EF8 700032F8 0C0038B4 */ jal osViBlack +/* 003EFC 700032FC 24040001 */ li $a0, 1 +/* 003F00 70003300 10000082 */ b .L7000350C +/* 003F04 70003304 00000000 */ nop +.L70003308: +/* 003F08 70003308 8F1832AC */ lw $t8, %lo(coloroutputmode)($t8) +/* 003F0C 7000330C 3C038006 */ lui $v1, %hi(viMode) +/* 003F10 70003310 3C0F8000 */ lui $t7, 0x8000 +/* 003F14 70003314 1300002B */ beqz $t8, .L700033C4 +/* 003F18 70003318 2463087C */ addiu $v1, %lo(viMode) # addiu $v1, $v1, 0x87c +/* 003F1C 7000331C 3C198000 */ lui $t9, %hi(osTvType) +/* 003F20 70003320 8F390300 */ lw $t9, %lo(osTvType)($t9) +/* 003F24 70003324 24010002 */ li $at, 2 +/* 003F28 70003328 3C188006 */ lui $t8, %hi(dword_CODE_bss_80060828) +/* 003F2C 7000332C 17210014 */ bne $t9, $at, .L70003380 +/* 003F30 70003330 27180828 */ addiu $t8, %lo(dword_CODE_bss_80060828) # addiu $t8, $t8, 0x828 +/* 003F34 70003334 3C0F8002 */ lui $t7, %hi(osViModeTable_osViModeMpalLan1) +/* 003F38 70003338 25EF7320 */ addiu $t7, %lo(osViModeTable_osViModeMpalLan1) # addiu $t7, $t7, 0x7320 +/* 003F3C 7000333C 3C0E8006 */ lui $t6, %hi(dword_CODE_bss_80060828) +/* 003F40 70003340 25CE0828 */ addiu $t6, %lo(dword_CODE_bss_80060828) # addiu $t6, $t6, 0x828 +/* 003F44 70003344 25F90048 */ addiu $t9, $t7, 0x48 +.L70003348: +/* 003F48 70003348 8DE10000 */ lw $at, ($t7) +/* 003F4C 7000334C 25EF000C */ addiu $t7, $t7, 0xc +/* 003F50 70003350 25CE000C */ addiu $t6, $t6, 0xc +/* 003F54 70003354 ADC1FFF4 */ sw $at, -0xc($t6) +/* 003F58 70003358 8DE1FFF8 */ lw $at, -8($t7) +/* 003F5C 7000335C ADC1FFF8 */ sw $at, -8($t6) +/* 003F60 70003360 8DE1FFFC */ lw $at, -4($t7) +/* 003F64 70003364 15F9FFF8 */ bne $t7, $t9, .L70003348 +/* 003F68 70003368 ADC1FFFC */ sw $at, -4($t6) +/* 003F6C 7000336C 8DE10000 */ lw $at, ($t7) +/* 003F70 70003370 8DF90004 */ lw $t9, 4($t7) +/* 003F74 70003374 ADC10000 */ sw $at, ($t6) +/* 003F78 70003378 1000003A */ b .L70003464 +/* 003F7C 7000337C ADD90004 */ sw $t9, 4($t6) +.L70003380: +/* 003F80 70003380 3C198002 */ lui $t9, %hi(osViModeTable_osViModeNtscLan1) +/* 003F84 70003384 27396A60 */ addiu $t9, %lo(osViModeTable_osViModeNtscLan1) # addiu $t9, $t9, 0x6a60 +/* 003F88 70003388 272E0048 */ addiu $t6, $t9, 0x48 +.L7000338C: +/* 003F8C 7000338C 8F210000 */ lw $at, ($t9) +/* 003F90 70003390 2739000C */ addiu $t9, $t9, 0xc +/* 003F94 70003394 2718000C */ addiu $t8, $t8, 0xc +/* 003F98 70003398 AF01FFF4 */ sw $at, -0xc($t8) +/* 003F9C 7000339C 8F21FFF8 */ lw $at, -8($t9) +/* 003FA0 700033A0 AF01FFF8 */ sw $at, -8($t8) +/* 003FA4 700033A4 8F21FFFC */ lw $at, -4($t9) +/* 003FA8 700033A8 172EFFF8 */ bne $t9, $t6, .L7000338C +/* 003FAC 700033AC AF01FFFC */ sw $at, -4($t8) +/* 003FB0 700033B0 8F210000 */ lw $at, ($t9) +/* 003FB4 700033B4 8F2E0004 */ lw $t6, 4($t9) +/* 003FB8 700033B8 AF010000 */ sw $at, ($t8) +/* 003FBC 700033BC 10000029 */ b .L70003464 +/* 003FC0 700033C0 AF0E0004 */ sw $t6, 4($t8) +.L700033C4: +/* 003FC4 700033C4 8DEF0300 */ lw $t7, 0x300($t7) +/* 003FC8 700033C8 24010002 */ li $at, 2 +/* 003FCC 700033CC 3C188006 */ lui $t8, %hi(dword_CODE_bss_80060828) +/* 003FD0 700033D0 15E10014 */ bne $t7, $at, .L70003424 +/* 003FD4 700033D4 27180828 */ addiu $t8, %lo(dword_CODE_bss_80060828) # addiu $t8, $t8, 0x828 +/* 003FD8 700033D8 3C198002 */ lui $t9, %hi(osViModeTable_osViModeMpalLan2) +/* 003FDC 700033DC 27397460 */ addiu $t9, %lo(osViModeTable_osViModeMpalLan2) # addiu $t9, $t9, 0x7460 +/* 003FE0 700033E0 3C0E8006 */ lui $t6, %hi(dword_CODE_bss_80060828) +/* 003FE4 700033E4 25CE0828 */ addiu $t6, %lo(dword_CODE_bss_80060828) # addiu $t6, $t6, 0x828 +/* 003FE8 700033E8 272F0048 */ addiu $t7, $t9, 0x48 +.L700033EC: +/* 003FEC 700033EC 8F210000 */ lw $at, ($t9) +/* 003FF0 700033F0 2739000C */ addiu $t9, $t9, 0xc +/* 003FF4 700033F4 25CE000C */ addiu $t6, $t6, 0xc +/* 003FF8 700033F8 ADC1FFF4 */ sw $at, -0xc($t6) +/* 003FFC 700033FC 8F21FFF8 */ lw $at, -8($t9) +/* 004000 70003400 ADC1FFF8 */ sw $at, -8($t6) +/* 004004 70003404 8F21FFFC */ lw $at, -4($t9) +/* 004008 70003408 172FFFF8 */ bne $t9, $t7, .L700033EC +/* 00400C 7000340C ADC1FFFC */ sw $at, -4($t6) +/* 004010 70003410 8F210000 */ lw $at, ($t9) +/* 004014 70003414 8F2F0004 */ lw $t7, 4($t9) +/* 004018 70003418 ADC10000 */ sw $at, ($t6) +/* 00401C 7000341C 10000011 */ b .L70003464 +/* 004020 70003420 ADCF0004 */ sw $t7, 4($t6) +.L70003424: +/* 004024 70003424 3C0F8002 */ lui $t7, %hi(osViModeTable_osViModeNtscLan2) +/* 004028 70003428 25EF6BA0 */ addiu $t7, %lo(osViModeTable_osViModeNtscLan2) # addiu $t7, $t7, 0x6ba0 +/* 00402C 7000342C 25EE0048 */ addiu $t6, $t7, 0x48 +.L70003430: +/* 004030 70003430 8DE10000 */ lw $at, ($t7) +/* 004034 70003434 25EF000C */ addiu $t7, $t7, 0xc +/* 004038 70003438 2718000C */ addiu $t8, $t8, 0xc +/* 00403C 7000343C AF01FFF4 */ sw $at, -0xc($t8) +/* 004040 70003440 8DE1FFF8 */ lw $at, -8($t7) +/* 004044 70003444 AF01FFF8 */ sw $at, -8($t8) +/* 004048 70003448 8DE1FFFC */ lw $at, -4($t7) +/* 00404C 7000344C 15EEFFF8 */ bne $t7, $t6, .L70003430 +/* 004050 70003450 AF01FFFC */ sw $at, -4($t8) +/* 004054 70003454 8DE10000 */ lw $at, ($t7) +/* 004058 70003458 8DEE0004 */ lw $t6, 4($t7) +/* 00405C 7000345C AF010000 */ sw $at, ($t8) +/* 004060 70003460 AF0E0004 */ sw $t6, 4($t8) +.L70003464: +/* 004064 70003464 3C198006 */ lui $t9, %hi(dword_CODE_bss_80060828) +/* 004068 70003468 27390828 */ addiu $t9, %lo(dword_CODE_bss_80060828) # addiu $t9, $t9, 0x828 +/* 00406C 7000346C AC790000 */ sw $t9, ($v1) +/* 004070 70003470 8F2E001C */ lw $t6, 0x1c($t9) +/* 004074 70003474 3C018006 */ lui $at, %hi(viMode+0x4) +/* 004078 70003478 00002025 */ move $a0, $zero +/* 00407C 7000347C AC2E0880 */ sw $t6, %lo(viMode+0x4)($at) +/* 004080 70003480 8F2F0030 */ lw $t7, 0x30($t9) +/* 004084 70003484 3C018006 */ lui $at, %hi(viMode+0x8) +/* 004088 70003488 AC2F0884 */ sw $t7, %lo(viMode+0x8)($at) +/* 00408C 7000348C 8F380044 */ lw $t8, 0x44($t9) +/* 004090 70003490 3C018006 */ lui $at, %hi(viMode+0xC) +/* 004094 70003494 0C000C64 */ jal video_related_6 +/* 004098 70003498 AC380888 */ sw $t8, %lo(viMode+0xC)($at) +/* 00409C 7000349C 1000001B */ b .L7000350C +/* 0040A0 700034A0 00000000 */ nop +.L700034A4: +/* 0040A4 700034A4 8F390300 */ lw $t9, 0x300($t9) +/* 0040A8 700034A8 24010002 */ li $at, 2 +/* 0040AC 700034AC 3C038006 */ lui $v1, %hi(viMode) +/* 0040B0 700034B0 17210007 */ bne $t9, $at, .L700034D0 +/* 0040B4 700034B4 2463087C */ addiu $v1, %lo(viMode) # addiu $v1, $v1, 0x87c +/* 0040B8 700034B8 3C038006 */ lui $v1, %hi(viMode) +/* 0040BC 700034BC 3C0E8002 */ lui $t6, %hi(osViModeTable_osViModeMpalHaf1) +/* 0040C0 700034C0 2463087C */ addiu $v1, %lo(viMode) # addiu $v1, $v1, 0x87c +/* 0040C4 700034C4 25CE75F0 */ addiu $t6, %lo(osViModeTable_osViModeMpalHaf1) # addiu $t6, $t6, 0x75f0 +/* 0040C8 700034C8 10000004 */ b .L700034DC +/* 0040CC 700034CC AC6E0000 */ sw $t6, ($v1) +.L700034D0: +/* 0040D0 700034D0 3C0F8002 */ lui $t7, %hi(osViModeTable_osViModeNtscHaf1) +/* 0040D4 700034D4 25EF6D30 */ addiu $t7, %lo(osViModeTable_osViModeNtscHaf1) # addiu $t7, $t7, 0x6d30 +/* 0040D8 700034D8 AC6F0000 */ sw $t7, ($v1) +.L700034DC: +/* 0040DC 700034DC 8C620000 */ lw $v0, ($v1) +/* 0040E0 700034E0 3C018006 */ lui $at, %hi(viMode+0x4) +/* 0040E4 700034E4 00002025 */ move $a0, $zero +/* 0040E8 700034E8 8C58001C */ lw $t8, 0x1c($v0) +/* 0040EC 700034EC AC380880 */ sw $t8, %lo(viMode+0x4)($at) +/* 0040F0 700034F0 8C590030 */ lw $t9, 0x30($v0) +/* 0040F4 700034F4 3C018006 */ lui $at, %hi(viMode+0x8) +/* 0040F8 700034F8 AC390884 */ sw $t9, %lo(viMode+0x8)($at) +/* 0040FC 700034FC 8C4E0044 */ lw $t6, 0x44($v0) +/* 004100 70003500 3C018006 */ lui $at, %hi(viMode+0xC) +/* 004104 70003504 0C0038B4 */ jal osViBlack +/* 004108 70003508 AC2E0888 */ sw $t6, %lo(viMode+0xC)($at) +.L7000350C: +/* 00410C 7000350C 0C003DEC */ jal osViSetSpecialFeatures +/* 004110 70003510 24040042 */ li $a0, 66 +/* 004114 70003514 3C088002 */ lui $t0, %hi(ptr_video_settings2) +/* 004118 70003518 8D0832A8 */ lw $t0, %lo(ptr_video_settings2)($t0) +/* 00411C 7000351C 3C0D8002 */ lui $t5, %hi(ptr_video_settings2) +/* 004120 70003520 25AD32A8 */ addiu $t5, %lo(ptr_video_settings2) # addiu $t5, $t5, 0x32a8 +/* 004124 70003524 91020000 */ lbu $v0, ($t0) +/* 004128 70003528 850F0004 */ lh $t7, 4($t0) +.L7000352C: +/* 00412C 7000352C 85180018 */ lh $t8, 0x18($t0) +/* 004130 70003530 85190006 */ lh $t9, 6($t0) +/* 004134 70003534 448F2000 */ mtc1 $t7, $f4 +/* 004138 70003538 850E001A */ lh $t6, 0x1a($t0) +/* 00413C 7000353C 44984000 */ mtc1 $t8, $f8 +/* 004140 70003540 468021A0 */ cvt.s.w $f6, $f4 +/* 004144 70003544 44998000 */ mtc1 $t9, $f16 +/* 004148 70003548 448E2000 */ mtc1 $t6, $f4 +/* 00414C 7000354C 3C188006 */ lui $t8, %hi(dword_CODE_bss_80060828) +/* 004150 70003550 3C0A8002 */ lui $t2, %hi(D_800232C0) +/* 004154 70003554 468042A0 */ cvt.s.w $f10, $f8 +/* 004158 70003558 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 00415C 7000355C 27180828 */ addiu $t8, %lo(dword_CODE_bss_80060828) # addiu $t8, $t8, 0x828 +/* 004160 70003560 3C0B8002 */ lui $t3, %hi(coloroutputmode) +/* 004164 70003564 468084A0 */ cvt.s.w $f18, $f16 +/* 004168 70003568 46802220 */ cvt.s.w $f8, $f4 +/* 00416C 7000356C 460A3083 */ div.s $f2, $f6, $f10 +/* 004170 70003570 14400003 */ bnez $v0, .L70003580 +/* 004174 70003574 46089003 */ div.s $f0, $f18, $f8 +/* 004178 70003578 44810000 */ mtc1 $at, $f0 +/* 00417C 7000357C 00000000 */ nop +.L70003580: +/* 004180 70003580 8D4A32C0 */ lw $t2, %lo(D_800232C0)($t2) +/* 004184 70003584 3C018002 */ lui $at, %hi(something_with_osVI_4) +/* 004188 70003588 000A4880 */ sll $t1, $t2, 2 +/* 00418C 7000358C 00290821 */ addu $at, $at, $t1 +/* 004190 70003590 E42230B4 */ swc1 $f2, %lo(something_with_osVI_4)($at) +/* 004194 70003594 3C018002 */ lui $at, %hi(something_with_osVI_C) +/* 004198 70003598 00290821 */ addu $at, $at, $t1 +/* 00419C 7000359C E42030BC */ swc1 $f0, %lo(something_with_osVI_C)($at) +/* 0041A0 700035A0 910F0000 */ lbu $t7, ($t0) +/* 0041A4 700035A4 24010001 */ li $at, 1 +/* 0041A8 700035A8 15E10105 */ bne $t7, $at, .L700039C0 +/* 0041AC 700035AC 00000000 */ nop +/* 0041B0 700035B0 8D6B32AC */ lw $t3, %lo(coloroutputmode)($t3) +/* 0041B4 700035B4 3C018006 */ lui $at, %hi(dword_CODE_bss_8005DB40+0xA0) +/* 0041B8 700035B8 00290821 */ addu $at, $at, $t1 +/* 0041BC 700035BC 11600035 */ beqz $t3, .L70003694 +/* 0041C0 700035C0 AC38DBE0 */ sw $t8, %lo(dword_CODE_bss_8005DB40+0xA0)($at) +/* 0041C4 700035C4 3C198000 */ lui $t9, %hi(osTvType) +/* 0041C8 700035C8 8F390300 */ lw $t9, %lo(osTvType)($t9) +/* 0041CC 700035CC 24010002 */ li $at, 2 +/* 0041D0 700035D0 3C0E8006 */ lui $t6, %hi(dword_CODE_bss_8005DB40) +/* 0041D4 700035D4 17210019 */ bne $t9, $at, .L7000363C +/* 0041D8 700035D8 25CEDB40 */ addiu $t6, %lo(dword_CODE_bss_8005DB40) # addiu $t6, $t6, -0x24c0 +/* 0041DC 700035DC 000A7080 */ sll $t6, $t2, 2 +/* 0041E0 700035E0 01CA7021 */ addu $t6, $t6, $t2 +/* 0041E4 700035E4 3C0F8006 */ lui $t7, %hi(dword_CODE_bss_8005DB40) +/* 0041E8 700035E8 25EFDB40 */ addiu $t7, %lo(dword_CODE_bss_8005DB40) # addiu $t7, $t7, -0x24c0 +/* 0041EC 700035EC 000E7100 */ sll $t6, $t6, 4 +/* 0041F0 700035F0 01CF1821 */ addu $v1, $t6, $t7 +/* 0041F4 700035F4 3C188002 */ lui $t8, %hi(osViModeTable_osViModeMpalLan1) +/* 0041F8 700035F8 27187320 */ addiu $t8, %lo(osViModeTable_osViModeMpalLan1) # addiu $t8, $t8, 0x7320 +/* 0041FC 700035FC 270E0048 */ addiu $t6, $t8, 0x48 +/* 004200 70003600 00607825 */ move $t7, $v1 +.L70003604: +/* 004204 70003604 8F010000 */ lw $at, ($t8) +/* 004208 70003608 2718000C */ addiu $t8, $t8, 0xc +/* 00420C 7000360C 25EF000C */ addiu $t7, $t7, 0xc +/* 004210 70003610 ADE1FFF4 */ sw $at, -0xc($t7) +/* 004214 70003614 8F01FFF8 */ lw $at, -8($t8) +/* 004218 70003618 ADE1FFF8 */ sw $at, -8($t7) +/* 00421C 7000361C 8F01FFFC */ lw $at, -4($t8) +/* 004220 70003620 170EFFF8 */ bne $t8, $t6, .L70003604 +/* 004224 70003624 ADE1FFFC */ sw $at, -4($t7) +/* 004228 70003628 8F010000 */ lw $at, ($t8) +/* 00422C 7000362C ADE10000 */ sw $at, ($t7) +/* 004230 70003630 8F0E0004 */ lw $t6, 4($t8) +/* 004234 70003634 1000004A */ b .L70003760 +/* 004238 70003638 ADEE0004 */ sw $t6, 4($t7) +.L7000363C: +/* 00423C 7000363C 000AC880 */ sll $t9, $t2, 2 +/* 004240 70003640 032AC821 */ addu $t9, $t9, $t2 +/* 004244 70003644 0019C900 */ sll $t9, $t9, 4 +/* 004248 70003648 032E1821 */ addu $v1, $t9, $t6 +/* 00424C 7000364C 3C188002 */ lui $t8, %hi(osViModeTable_osViModeNtscLan1) +/* 004250 70003650 27186A60 */ addiu $t8, %lo(osViModeTable_osViModeNtscLan1) # addiu $t8, $t8, 0x6a60 +/* 004254 70003654 27190048 */ addiu $t9, $t8, 0x48 +/* 004258 70003658 00607025 */ move $t6, $v1 +.L7000365C: +/* 00425C 7000365C 8F010000 */ lw $at, ($t8) +/* 004260 70003660 2718000C */ addiu $t8, $t8, 0xc +/* 004264 70003664 25CE000C */ addiu $t6, $t6, 0xc +/* 004268 70003668 ADC1FFF4 */ sw $at, -0xc($t6) +/* 00426C 7000366C 8F01FFF8 */ lw $at, -8($t8) +/* 004270 70003670 ADC1FFF8 */ sw $at, -8($t6) +/* 004274 70003674 8F01FFFC */ lw $at, -4($t8) +/* 004278 70003678 1719FFF8 */ bne $t8, $t9, .L7000365C +/* 00427C 7000367C ADC1FFFC */ sw $at, -4($t6) +/* 004280 70003680 8F010000 */ lw $at, ($t8) +/* 004284 70003684 ADC10000 */ sw $at, ($t6) +/* 004288 70003688 8F190004 */ lw $t9, 4($t8) +/* 00428C 7000368C 10000034 */ b .L70003760 +/* 004290 70003690 ADD90004 */ sw $t9, 4($t6) +.L70003694: +/* 004294 70003694 3C0F8000 */ lui $t7, %hi(osTvType) +/* 004298 70003698 8DEF0300 */ lw $t7, %lo(osTvType)($t7) +/* 00429C 7000369C 24010002 */ li $at, 2 +/* 0042A0 700036A0 15E10018 */ bne $t7, $at, .L70003704 +/* 0042A4 700036A4 000AC880 */ sll $t9, $t2, 2 +/* 0042A8 700036A8 032AC821 */ addu $t9, $t9, $t2 +/* 0042AC 700036AC 3C188006 */ lui $t8, %hi(dword_CODE_bss_8005DB40) +/* 0042B0 700036B0 2718DB40 */ addiu $t8, %lo(dword_CODE_bss_8005DB40) # addiu $t8, $t8, -0x24c0 +/* 0042B4 700036B4 0019C900 */ sll $t9, $t9, 4 +/* 0042B8 700036B8 03381821 */ addu $v1, $t9, $t8 +/* 0042BC 700036BC 3C0E8002 */ lui $t6, %hi(osViModeTable_osViModeMpalLan2) +/* 0042C0 700036C0 25CE7460 */ addiu $t6, %lo(osViModeTable_osViModeMpalLan2) # addiu $t6, $t6, 0x7460 +/* 0042C4 700036C4 25D90048 */ addiu $t9, $t6, 0x48 +/* 0042C8 700036C8 0060C025 */ move $t8, $v1 +.L700036CC: +/* 0042CC 700036CC 8DC10000 */ lw $at, ($t6) +/* 0042D0 700036D0 25CE000C */ addiu $t6, $t6, 0xc +/* 0042D4 700036D4 2718000C */ addiu $t8, $t8, 0xc +/* 0042D8 700036D8 AF01FFF4 */ sw $at, -0xc($t8) +/* 0042DC 700036DC 8DC1FFF8 */ lw $at, -8($t6) +/* 0042E0 700036E0 AF01FFF8 */ sw $at, -8($t8) +/* 0042E4 700036E4 8DC1FFFC */ lw $at, -4($t6) +/* 0042E8 700036E8 15D9FFF8 */ bne $t6, $t9, .L700036CC +/* 0042EC 700036EC AF01FFFC */ sw $at, -4($t8) +/* 0042F0 700036F0 8DC10000 */ lw $at, ($t6) +/* 0042F4 700036F4 AF010000 */ sw $at, ($t8) +/* 0042F8 700036F8 8DD90004 */ lw $t9, 4($t6) +/* 0042FC 700036FC 10000018 */ b .L70003760 +/* 004300 70003700 AF190004 */ sw $t9, 4($t8) +.L70003704: +/* 004304 70003704 000A7880 */ sll $t7, $t2, 2 +/* 004308 70003708 01EA7821 */ addu $t7, $t7, $t2 +/* 00430C 7000370C 3C198006 */ lui $t9, %hi(dword_CODE_bss_8005DB40) +/* 004310 70003710 2739DB40 */ addiu $t9, %lo(dword_CODE_bss_8005DB40) # addiu $t9, $t9, -0x24c0 +/* 004314 70003714 000F7900 */ sll $t7, $t7, 4 +/* 004318 70003718 01F91821 */ addu $v1, $t7, $t9 +/* 00431C 7000371C 3C0E8002 */ lui $t6, %hi(osViModeTable_osViModeNtscLan2) +/* 004320 70003720 25CE6BA0 */ addiu $t6, %lo(osViModeTable_osViModeNtscLan2) # addiu $t6, $t6, 0x6ba0 +/* 004324 70003724 25CF0048 */ addiu $t7, $t6, 0x48 +/* 004328 70003728 0060C825 */ move $t9, $v1 +.L7000372C: +/* 00432C 7000372C 8DC10000 */ lw $at, ($t6) +/* 004330 70003730 25CE000C */ addiu $t6, $t6, 0xc +/* 004334 70003734 2739000C */ addiu $t9, $t9, 0xc +/* 004338 70003738 AF21FFF4 */ sw $at, -0xc($t9) +/* 00433C 7000373C 8DC1FFF8 */ lw $at, -8($t6) +/* 004340 70003740 AF21FFF8 */ sw $at, -8($t9) +/* 004344 70003744 8DC1FFFC */ lw $at, -4($t6) +/* 004348 70003748 15CFFFF8 */ bne $t6, $t7, .L7000372C +/* 00434C 7000374C AF21FFFC */ sw $at, -4($t9) +/* 004350 70003750 8DC10000 */ lw $at, ($t6) +/* 004354 70003754 AF210000 */ sw $at, ($t9) +/* 004358 70003758 8DCF0004 */ lw $t7, 4($t6) +/* 00435C 7000375C AF2F0004 */ sw $t7, 4($t9) +.L70003760: +/* 004360 70003760 85180018 */ lh $t8, 0x18($t0) +/* 004364 70003764 24010280 */ li $at, 640 +/* 004368 70003768 240C01E0 */ li $t4, 480 +/* 00436C 7000376C AC780008 */ sw $t8, 8($v1) +/* 004370 70003770 850F0018 */ lh $t7, 0x18($t0) +/* 004374 70003774 8C62001C */ lw $v0, 0x1c($v1) +/* 004378 70003778 3C078002 */ lui $a3, %hi(D_8002329C) +/* 00437C 7000377C 000F7280 */ sll $t6, $t7, 0xa +/* 004380 70003780 01C1001A */ div $zero, $t6, $at +/* 004384 70003784 0000C812 */ mflo $t9 +/* 004388 70003788 AC790020 */ sw $t9, 0x20($v1) +/* 00438C 7000378C 8518001A */ lh $t8, 0x1a($t0) +/* 004390 70003790 3406FFFF */ li $a2, 65535 +/* 004394 70003794 3C058002 */ lui $a1, %hi(D_800232A0) +/* 004398 70003798 00187AC0 */ sll $t7, $t8, 0xb +/* 00439C 7000379C 01EC001A */ div $zero, $t7, $t4 +/* 0043A0 700037A0 00007012 */ mflo $t6 +/* 0043A4 700037A4 AC6E002C */ sw $t6, 0x2c($v1) +/* 0043A8 700037A8 8519001A */ lh $t9, 0x1a($t0) +/* 0043AC 700037AC 15800002 */ bnez $t4, .L700037B8 +/* 0043B0 700037B0 00000000 */ nop +/* 0043B4 700037B4 0007000D */ break 7 +.L700037B8: +/* 0043B8 700037B8 2401FFFF */ li $at, -1 +/* 0043BC 700037BC 15810004 */ bne $t4, $at, .L700037D0 +/* 0043C0 700037C0 3C018000 */ lui $at, 0x8000 +/* 0043C4 700037C4 15E10002 */ bne $t7, $at, .L700037D0 +/* 0043C8 700037C8 00000000 */ nop +/* 0043CC 700037CC 0006000D */ break 6 +.L700037D0: +/* 0043D0 700037D0 0019C2C0 */ sll $t8, $t9, 0xb +/* 0043D4 700037D4 030C001A */ div $zero, $t8, $t4 +/* 0043D8 700037D8 00007812 */ mflo $t7 +/* 0043DC 700037DC AC6F0040 */ sw $t7, 0x40($v1) +/* 0043E0 700037E0 850E0018 */ lh $t6, 0x18($t0) +/* 0043E4 700037E4 15800002 */ bnez $t4, .L700037F0 +/* 0043E8 700037E8 00000000 */ nop +/* 0043EC 700037EC 0007000D */ break 7 +.L700037F0: +/* 0043F0 700037F0 2401FFFF */ li $at, -1 +/* 0043F4 700037F4 15810004 */ bne $t4, $at, .L70003808 +/* 0043F8 700037F8 3C018000 */ lui $at, 0x8000 +/* 0043FC 700037FC 17010002 */ bne $t8, $at, .L70003808 +/* 004400 70003800 00000000 */ nop +/* 004404 70003804 0006000D */ break 6 +.L70003808: +/* 004408 70003808 000EC840 */ sll $t9, $t6, 1 +/* 00440C 7000380C AC790028 */ sw $t9, 0x28($v1) +/* 004410 70003810 85180018 */ lh $t8, 0x18($t0) +/* 004414 70003814 00027403 */ sra $t6, $v0, 0x10 +/* 004418 70003818 31D9FFFF */ andi $t9, $t6, 0xffff +/* 00441C 7000381C 00187840 */ sll $t7, $t8, 1 +/* 004420 70003820 AC6F003C */ sw $t7, 0x3c($v1) +/* 004424 70003824 8CE7329C */ lw $a3, %lo(D_8002329C)($a3) +/* 004428 70003828 0327C021 */ addu $t8, $t9, $a3 +/* 00442C 7000382C 0306001A */ div $zero, $t8, $a2 +/* 004430 70003830 14C00002 */ bnez $a2, .L7000383C +/* 004434 70003834 00000000 */ nop +/* 004438 70003838 0007000D */ break 7 +.L7000383C: +/* 00443C 7000383C 2401FFFF */ li $at, -1 +/* 004440 70003840 14C10004 */ bne $a2, $at, .L70003854 +/* 004444 70003844 3C018000 */ lui $at, 0x8000 +/* 004448 70003848 17010002 */ bne $t8, $at, .L70003854 +/* 00444C 7000384C 00000000 */ nop +/* 004450 70003850 0006000D */ break 6 +.L70003854: +/* 004454 70003854 3059FFFF */ andi $t9, $v0, 0xffff +/* 004458 70003858 00007810 */ mfhi $t7 +/* 00445C 7000385C 0327C021 */ addu $t8, $t9, $a3 +/* 004460 70003860 000F7400 */ sll $t6, $t7, 0x10 +/* 004464 70003864 0306001A */ div $zero, $t8, $a2 +/* 004468 70003868 14C00002 */ bnez $a2, .L70003874 +/* 00446C 7000386C 00000000 */ nop +/* 004470 70003870 0007000D */ break 7 +.L70003874: +/* 004474 70003874 2401FFFF */ li $at, -1 +/* 004478 70003878 14C10004 */ bne $a2, $at, .L7000388C +/* 00447C 7000387C 3C018000 */ lui $at, 0x8000 +/* 004480 70003880 17010002 */ bne $t8, $at, .L7000388C +/* 004484 70003884 00000000 */ nop +/* 004488 70003888 0006000D */ break 6 +.L7000388C: +/* 00448C 7000388C 00007810 */ mfhi $t7 +/* 004490 70003890 01CF2025 */ or $a0, $t6, $t7 +/* 004494 70003894 AC64001C */ sw $a0, 0x1c($v1) +/* 004498 70003898 3C018006 */ lui $at, %hi(viMode+0x4) +/* 00449C 7000389C AC240880 */ sw $a0, %lo(viMode+0x4)($at) +/* 0044A0 700038A0 8C620030 */ lw $v0, 0x30($v1) +/* 0044A4 700038A4 8CA532A0 */ lw $a1, %lo(D_800232A0)($a1) +/* 0044A8 700038A8 0002CC03 */ sra $t9, $v0, 0x10 +/* 0044AC 700038AC 3338FFFF */ andi $t8, $t9, 0xffff +/* 0044B0 700038B0 03057021 */ addu $t6, $t8, $a1 +/* 0044B4 700038B4 01C6001A */ div $zero, $t6, $a2 +/* 0044B8 700038B8 14C00002 */ bnez $a2, .L700038C4 +/* 0044BC 700038BC 00000000 */ nop +/* 0044C0 700038C0 0007000D */ break 7 +.L700038C4: +/* 0044C4 700038C4 2401FFFF */ li $at, -1 +/* 0044C8 700038C8 14C10004 */ bne $a2, $at, .L700038DC +/* 0044CC 700038CC 3C018000 */ lui $at, 0x8000 +/* 0044D0 700038D0 15C10002 */ bne $t6, $at, .L700038DC +/* 0044D4 700038D4 00000000 */ nop +/* 0044D8 700038D8 0006000D */ break 6 +.L700038DC: +/* 0044DC 700038DC 3058FFFF */ andi $t8, $v0, 0xffff +/* 0044E0 700038E0 00007810 */ mfhi $t7 +/* 0044E4 700038E4 03057021 */ addu $t6, $t8, $a1 +/* 0044E8 700038E8 000FCC00 */ sll $t9, $t7, 0x10 +/* 0044EC 700038EC 01C6001A */ div $zero, $t6, $a2 +/* 0044F0 700038F0 14C00002 */ bnez $a2, .L700038FC +/* 0044F4 700038F4 00000000 */ nop +/* 0044F8 700038F8 0007000D */ break 7 +.L700038FC: +/* 0044FC 700038FC 2401FFFF */ li $at, -1 +/* 004500 70003900 14C10004 */ bne $a2, $at, .L70003914 +/* 004504 70003904 3C018000 */ lui $at, 0x8000 +/* 004508 70003908 15C10002 */ bne $t6, $at, .L70003914 +/* 00450C 7000390C 00000000 */ nop +/* 004510 70003910 0006000D */ break 6 +.L70003914: +/* 004514 70003914 00007810 */ mfhi $t7 +/* 004518 70003918 032F2025 */ or $a0, $t9, $t7 +/* 00451C 7000391C AC640030 */ sw $a0, 0x30($v1) +/* 004520 70003920 3C018006 */ lui $at, %hi(viMode+0x8) +/* 004524 70003924 AC240884 */ sw $a0, %lo(viMode+0x8)($at) +/* 004528 70003928 8C620044 */ lw $v0, 0x44($v1) +/* 00452C 7000392C 0002C403 */ sra $t8, $v0, 0x10 +/* 004530 70003930 330EFFFF */ andi $t6, $t8, 0xffff +/* 004534 70003934 01C5C821 */ addu $t9, $t6, $a1 +/* 004538 70003938 0326001A */ div $zero, $t9, $a2 +/* 00453C 7000393C 14C00002 */ bnez $a2, .L70003948 +/* 004540 70003940 00000000 */ nop +/* 004544 70003944 0007000D */ break 7 +.L70003948: +/* 004548 70003948 2401FFFF */ li $at, -1 +/* 00454C 7000394C 14C10004 */ bne $a2, $at, .L70003960 +/* 004550 70003950 3C018000 */ lui $at, 0x8000 +/* 004554 70003954 17210002 */ bne $t9, $at, .L70003960 +/* 004558 70003958 00000000 */ nop +/* 00455C 7000395C 0006000D */ break 6 +.L70003960: +/* 004560 70003960 304EFFFF */ andi $t6, $v0, 0xffff +/* 004564 70003964 01C5C821 */ addu $t9, $t6, $a1 +/* 004568 70003968 00007810 */ mfhi $t7 +/* 00456C 7000396C 000FC400 */ sll $t8, $t7, 0x10 +/* 004570 70003970 240E0001 */ li $t6, 1 +/* 004574 70003974 0326001A */ div $zero, $t9, $a2 +/* 004578 70003978 14C00002 */ bnez $a2, .L70003984 +/* 00457C 7000397C 00000000 */ nop +/* 004580 70003980 0007000D */ break 7 +.L70003984: +/* 004584 70003984 2401FFFF */ li $at, -1 +/* 004588 70003988 14C10004 */ bne $a2, $at, .L7000399C +/* 00458C 7000398C 3C018000 */ lui $at, 0x8000 +/* 004590 70003990 17210002 */ bne $t9, $at, .L7000399C +/* 004594 70003994 00000000 */ nop +/* 004598 70003998 0006000D */ break 6 +.L7000399C: +/* 00459C 7000399C 00007810 */ mfhi $t7 +/* 0045A0 700039A0 030F2025 */ or $a0, $t8, $t7 +/* 0045A4 700039A4 AC640044 */ sw $a0, 0x44($v1) +/* 0045A8 700039A8 3C018006 */ lui $at, %hi(viMode+0xC) +/* 0045AC 700039AC AC240888 */ sw $a0, %lo(viMode+0xC)($at) +/* 0045B0 700039B0 3C018002 */ lui $at, %hi(something_with_osVI_14) +/* 0045B4 700039B4 00290821 */ addu $at, $at, $t1 +/* 0045B8 700039B8 10000006 */ b .L700039D4 +/* 0045BC 700039BC AC2E30C4 */ sw $t6, %lo(something_with_osVI_14)($at) +.L700039C0: +/* 0045C0 700039C0 3C018002 */ lui $at, %hi(something_with_osVI_14) +/* 0045C4 700039C4 00290821 */ addu $at, $at, $t1 +/* 0045C8 700039C8 3C0B8002 */ lui $t3, %hi(coloroutputmode) +/* 0045CC 700039CC 8D6B32AC */ lw $t3, %lo(coloroutputmode)($t3) +/* 0045D0 700039D0 AC2030C4 */ sw $zero, %lo(something_with_osVI_14)($at) +.L700039D4: +/* 0045D4 700039D4 254A0001 */ addiu $t2, $t2, 1 +/* 0045D8 700039D8 05410004 */ bgez $t2, .L700039EC +/* 0045DC 700039DC 31590001 */ andi $t9, $t2, 1 +/* 0045E0 700039E0 13200002 */ beqz $t9, .L700039EC +/* 0045E4 700039E4 00000000 */ nop +/* 0045E8 700039E8 2739FFFE */ addiu $t9, $t9, -2 +.L700039EC: +/* 0045EC 700039EC 3C018002 */ lui $at, %hi(D_800232C0) +/* 0045F0 700039F0 11600006 */ beqz $t3, .L70003A0C +/* 0045F4 700039F4 AC3932C0 */ sw $t9, %lo(D_800232C0)($at) +/* 0045F8 700039F8 3C0F8005 */ lui $t7, %hi(fast3d_related_array) +/* 0045FC 700039FC 8DEFEAB0 */ lw $t7, %lo(fast3d_related_array)($t7) +/* 004600 70003A00 8D180028 */ lw $t8, 0x28($t0) +/* 004604 70003A04 10000006 */ b .L70003A20 +/* 004608 70003A08 ADF80058 */ sw $t8, 0x58($t7) +.L70003A0C: +/* 00460C 70003A0C 3C198005 */ lui $t9, %hi(fast3d_related_array) +/* 004610 70003A10 8F39EAB0 */ lw $t9, %lo(fast3d_related_array)($t9) +/* 004614 70003A14 3C0E803B */ lui $t6, %hi(cfb_16_a) # $t6, 0x803b +/* 004618 70003A18 25CE5000 */ addiu $t6, %lo(cfb_16_a) # addiu $t6, $t6, 0x5000 +/* 00461C 70003A1C AF2E0058 */ sw $t6, 0x58($t9) +.L70003A20: +/* 004620 70003A20 3C028006 */ lui $v0, %hi(off_CODE_bss_80060878) +/* 004624 70003A24 24420878 */ addiu $v0, %lo(off_CODE_bss_80060878) # addiu $v0, $v0, 0x878 +/* 004628 70003A28 90580000 */ lbu $t8, ($v0) +/* 00462C 70003A2C 3C038006 */ lui $v1, %hi(off_CODE_bss_80060879) +/* 004630 70003A30 2408002C */ li $t0, 44 +/* 004634 70003A34 270F0001 */ addiu $t7, $t8, 1 +/* 004638 70003A38 24630879 */ addiu $v1, %lo(off_CODE_bss_80060879) # addiu $v1, $v1, 0x879 +/* 00463C 70003A3C 90790000 */ lbu $t9, ($v1) +/* 004640 70003A40 3C078002 */ lui $a3, %hi(video1_settings) +/* 004644 70003A44 24E73244 */ addiu $a3, %lo(video1_settings) # addiu $a3, $a3, 0x3244 +/* 004648 70003A48 27380001 */ addiu $t8, $t9, 1 +/* 00464C 70003A4C 8DA40000 */ lw $a0, ($t5) +/* 004650 70003A50 05E10004 */ bgez $t7, .L70003A64 +/* 004654 70003A54 31EE0001 */ andi $t6, $t7, 1 +/* 004658 70003A58 11C00002 */ beqz $t6, .L70003A64 +/* 00465C 70003A5C 00000000 */ nop +/* 004660 70003A60 25CEFFFE */ addiu $t6, $t6, -2 +.L70003A64: +/* 004664 70003A64 A04E0000 */ sb $t6, ($v0) +/* 004668 70003A68 904E0000 */ lbu $t6, ($v0) +/* 00466C 70003A6C 07010004 */ bgez $t8, .L70003A80 +/* 004670 70003A70 330F0001 */ andi $t7, $t8, 1 +/* 004674 70003A74 11E00002 */ beqz $t7, .L70003A80 +/* 004678 70003A78 00000000 */ nop +/* 00467C 70003A7C 25EFFFFE */ addiu $t7, $t7, -2 +.L70003A80: +/* 004680 70003A80 01C80019 */ multu $t6, $t0 +/* 004684 70003A84 A06F0000 */ sb $t7, ($v1) +/* 004688 70003A88 3C018002 */ lui $at, %hi(ptr_video_settings1) +/* 00468C 70003A8C 2406002C */ li $a2, 44 +/* 004690 70003A90 0000C812 */ mflo $t9 +/* 004694 70003A94 00F9C021 */ addu $t8, $a3, $t9 +/* 004698 70003A98 AC3832A4 */ sw $t8, %lo(ptr_video_settings1)($at) +/* 00469C 70003A9C 906F0000 */ lbu $t7, ($v1) +/* 0046A0 70003AA0 01E80019 */ multu $t7, $t0 +/* 0046A4 70003AA4 00007012 */ mflo $t6 +/* 0046A8 70003AA8 00EE2821 */ addu $a1, $a3, $t6 +/* 0046AC 70003AAC 0C003E5C */ jal bcopy +/* 0046B0 70003AB0 ADA50000 */ sw $a1, ($t5) +/* 0046B4 70003AB4 3C038006 */ lui $v1, %hi(off_CODE_bss_80060879) +/* 0046B8 70003AB8 24630879 */ addiu $v1, %lo(off_CODE_bss_80060879) # addiu $v1, $v1, 0x879 +/* 0046BC 70003ABC 90780000 */ lbu $t8, ($v1) +/* 0046C0 70003AC0 3C0E803B */ lui $t6, %hi(cfb_16_a) # $t6, 0x803b +/* 0046C4 70003AC4 25CE5000 */ addiu $t6, %lo(cfb_16_a) # addiu $t6, $t6, 0x5000 +/* 0046C8 70003AC8 00187880 */ sll $t7, $t8, 2 +/* 0046CC 70003ACC 01F87821 */ addu $t7, $t7, $t8 +/* 0046D0 70003AD0 000F7880 */ sll $t7, $t7, 2 +/* 0046D4 70003AD4 01F87823 */ subu $t7, $t7, $t8 +/* 0046D8 70003AD8 000F7880 */ sll $t7, $t7, 2 +/* 0046DC 70003ADC 01F87823 */ subu $t7, $t7, $t8 +/* 0046E0 70003AE0 3C188002 */ lui $t8, %hi(ptr_video_settings2) +/* 0046E4 70003AE4 8F1832A8 */ lw $t8, %lo(ptr_video_settings2)($t8) +/* 0046E8 70003AE8 000F7AC0 */ sll $t7, $t7, 0xb +/* 0046EC 70003AEC 01EEC821 */ addu $t9, $t7, $t6 +/* 0046F0 70003AF0 AF190028 */ sw $t9, 0x28($t8) +/* 0046F4 70003AF4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0046F8 70003AF8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0046FC 70003AFC 03E00008 */ jr $ra +/* 004700 70003B00 00000000 */ nop +) +#endif + + +/** + * 4704 70003B04 ???; 800232B4=(word)F12, 800232B8=0xA + * accepts: F12= + */ +#ifdef NONMATCHING +void video_related_9(float param_1) +{ + float fVar1; + + fVar1 = 14.00000000; + if (param_1 <= 14.00000000) { + fVar1 = param_1; + } + if (fVar1 < 0.00000000) { + D_800232B4 = 0; + } + else { + D_800232B4 = (int)fVar1; + } + D_800232B8 = 10; +} +#else +GLOBAL_ASM( +.text +glabel video_related_9 +/* 004704 70003B04 3C014160 */ li $at, 0x41600000 # 14.000000 +/* 004708 70003B08 44810000 */ mtc1 $at, $f0 +/* 00470C 70003B0C 00000000 */ nop +/* 004710 70003B10 460C003C */ c.lt.s $f0, $f12 +/* 004714 70003B14 00000000 */ nop +/* 004718 70003B18 45020003 */ bc1fl .L70003B28 +/* 00471C 70003B1C 44800000 */ mtc1 $zero, $f0 +/* 004720 70003B20 46000306 */ mov.s $f12, $f0 +/* 004724 70003B24 44800000 */ mtc1 $zero, $f0 +.L70003B28: +/* 004728 70003B28 00000000 */ nop +/* 00472C 70003B2C 4600603C */ c.lt.s $f12, $f0 +/* 004730 70003B30 00000000 */ nop +/* 004734 70003B34 45020003 */ bc1fl .L70003B44 +/* 004738 70003B38 4600610D */ trunc.w.s $f4, $f12 +/* 00473C 70003B3C 46000306 */ mov.s $f12, $f0 +/* 004740 70003B40 4600610D */ trunc.w.s $f4, $f12 +.L70003B44: +/* 004744 70003B44 3C018002 */ lui $at, %hi(D_800232B4) +/* 004748 70003B48 2418000A */ li $t8, 10 +/* 00474C 70003B4C 440F2000 */ mfc1 $t7, $f4 +/* 004750 70003B50 00000000 */ nop +/* 004754 70003B54 AC2F32B4 */ sw $t7, %lo(D_800232B4)($at) +/* 004758 70003B58 3C018002 */ lui $at, %hi(D_800232B8) +/* 00475C 70003B5C 03E00008 */ jr $ra +/* 004760 70003B60 AC3832B8 */ sw $t8, %lo(D_800232B8)($at) +) +#endif + + + + +/** + * 4764 70003B64 + */ +//Even though this is defined in vi.h, it also must be in this file to be seen?? +extern OSMesgQueue vi_c_debug_MQ; +void receive_vi_c_msgs(int msgcount){ + do { + osRecvMesg(&vi_c_debug_MQ,NULL,1); + msgcount += -1; + } while (0 < msgcount); +} + + +/** + * 47B0 70003BB0 + */ +#ifdef NONMATCHING +void setVideoWidthHeightToMode(s32 videomode) +{ + u16 widths_80028480[] = {320, 320, 640}; + u16 heights_80028488[] = {240, 240, 480}; + + ptr_video_settings2->mode = videomode; + + ptr_video_settings2->somethingW = widths_80028480[videomode]; + ptr_video_settings2->txtClipW = widths_80028480[videomode]; + + ptr_video_settings2->somethingH = heights_80028488[videomode]; + ptr_video_settings2->txtClipH = heights_80028488[videomode]; +} +#else +const u16 widths_80028480[] = {320, 320, 640}; +const u16 heights_80028488[] = {240, 240, 480}; //is this not 16bit and a list of 320x240 and 640x480 - 3 widths, 3 heights +GLOBAL_ASM( +.text +glabel setVideoWidthHeightToMode +/* 0047B0 70003BB0 3C058002 */ lui $a1, %hi(ptr_video_settings2) +/* 0047B4 70003BB4 24A532A8 */ addiu $a1, %lo(ptr_video_settings2) # addiu $a1, $a1, 0x32a8 +/* 0047B8 70003BB8 8CAE0000 */ lw $t6, ($a1) +/* 0047BC 70003BBC 00041840 */ sll $v1, $a0, 1 +/* 0047C0 70003BC0 3C028003 */ lui $v0, %hi(widths_80028480) +/* 0047C4 70003BC4 A1C40000 */ sb $a0, ($t6) +/* 0047C8 70003BC8 00431021 */ addu $v0, $v0, $v1 +/* 0047CC 70003BCC 84428480 */ lh $v0, %lo(widths_80028480)($v0) +/* 0047D0 70003BD0 8CAF0000 */ lw $t7, ($a1) +/* 0047D4 70003BD4 A5E20018 */ sh $v0, 0x18($t7) +/* 0047D8 70003BD8 8CB80000 */ lw $t8, ($a1) +/* 0047DC 70003BDC A7020004 */ sh $v0, 4($t8) +/* 0047E0 70003BE0 3C028003 */ lui $v0, %hi(heights_80028488) +/* 0047E4 70003BE4 00431021 */ addu $v0, $v0, $v1 +/* 0047E8 70003BE8 84428488 */ lh $v0, %lo(heights_80028488)($v0) +/* 0047EC 70003BEC 8CB90000 */ lw $t9, ($a1) +/* 0047F0 70003BF0 A722001A */ sh $v0, 0x1a($t9) +/* 0047F4 70003BF4 8CA80000 */ lw $t0, ($a1) +/* 0047F8 70003BF8 03E00008 */ jr $ra +/* 0047FC 70003BFC A5020006 */ sh $v0, 6($t0) +) +#endif + + + +/** + * 4800 70003C00 sets colour output mode to 16bit [800232AC=1] + */ +void set_coloroutputmode_16bit(void) +{ + coloroutputmode = MODE_16BIT; +} + +/** + * 4810 70003C10 sets colour output mode to 32bit [800232AC=0] + */ +void set_coloroutputmode_32bit(void) +{ + coloroutputmode = MODE_32BIT; +} + +/** + * 481C 70003C1C V0= p->video2's buffer [p@800232A8+28]; fry T6 + */ +u8 * get_video_settings2_frameb(void) +{ + return ptr_video_settings2->frameb; +} + +/** + * 482C 70003C2C V0= p->video1's buffer [p@800232A4+28]; fry T6 + */ +u8 * get_video_settings1_frameb(void) +{ + return ptr_video_settings1->frameb; +} + +/** + * 483C 70003C3C A0->video2's buffer [p@800232A8+28]; fry T6 + */ +void set_video2buf_frameb(u8 *arg0) +{ + ptr_video_settings2->frameb = arg0; +} + +/** + * 484C 70003C4C V0= halfword [80060824] + */ +u16 get_80060824(void) { + return word_CODE_bss_80060824; +} + +/** + * 4858 70003C58 + */ +#ifdef NONMATCHING +void *video_related_F(void *arg0) +{ + void *temp_s0; + void *temp_v0; + void *temp_v0_2; + void *temp_v0_3; + void *temp_v1; + void *phi_s0; + + if (pPlayer != 0) + { + (pPlayer + (off_CODE_bss_80060879 * 0x10))->unk7D0 = (s16) (ptr_video_settings2->unk1C * 2); + (pPlayer + (off_CODE_bss_80060879 * 0x10))->unk7D8 = (s16) ((ptr_video_settings2->unk1C * 2) + (ptr_video_settings2->unk20 * 4)); + (pPlayer + (off_CODE_bss_80060879 * 0x10))->unk7D2 = (s16) (ptr_video_settings2->unk1E * 2); + (pPlayer + (off_CODE_bss_80060879 * 0x10))->unk7DA = (s16) ((ptr_video_settings2->unk1E * 2) + (ptr_video_settings2->unk22 * 4)); + } + arg0->unk0 = 0x3800010; + arg0->unk4 = (s32) ((pPlayer + (off_CODE_bss_80060879 * 0x10)) + 0x800007d0); + temp_s0 = arg0 + 8; + m = sub_GAME_7F0BD6E0(&off_CODE_bss_80060879, &pPlayer); + guPerspectiveF(&dword_CODE_bss_800607E0, &word_CODE_bss_80060824, ptr_video_settings2->far, ptr_video_settings2->scale, (f32) ptr_video_settings2->aspect, (f32) ptr_video_settings2->unk14, 1.0f); + guMtxF2L(&dword_CODE_bss_800607E0, m); + temp_v0 = temp_s0; + temp_v0->unk0 = 0x1030040; + temp_s0 = temp_s0 + 8; + temp_v0->unk4 = (s32) (m + 0x80000000); + temp_v1 = temp_s0; + temp_v1->unk0 = 0xbc00000e; + temp_s0 = temp_s0 + 8; + temp_v1->unk4 = (?32) word_CODE_bss_80060824; + set_BONDdata_field_10D8(m, &m); + set_BONDdata_field_10DC(&dword_CODE_bss_800607E0); + temp_v0_2 = temp_s0; + if (coloroutputmode != 0) + { + temp_v0_3 = temp_s0; + temp_v0_3->unk0 = (s32) (((ptr_video_settings2->unk18 + -1) & 0xfff) | 0xff100000); + temp_v0_3->unk4 = (s32) (ptr_video_settings2->frameb + 0x80000000); + phi_s0 = temp_s0 + 8; + } + else + { + temp_v0_2->unk4 = 0x3b5000; + temp_v0_2->unk0 = (s32) (((ptr_video_settings2->unk18 + -1) & 0xfff) | 0xff180000); + phi_s0 = temp_s0 + 8; + } + return phi_s0; +} +#else +GLOBAL_ASM( +.text +glabel video_related_F +/* 004858 70003C58 3C058008 */ lui $a1, %hi(pPlayer) +/* 00485C 70003C5C 24A5A0B0 */ addiu $a1, %lo(pPlayer) # addiu $a1, $a1, -0x5f50 +/* 004860 70003C60 8CA20000 */ lw $v0, ($a1) +/* 004864 70003C64 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 004868 70003C68 AFB00024 */ sw $s0, 0x24($sp) +/* 00486C 70003C6C 00808025 */ move $s0, $a0 +/* 004870 70003C70 AFBF002C */ sw $ra, 0x2c($sp) +/* 004874 70003C74 1040002A */ beqz $v0, .L70003D20 +/* 004878 70003C78 AFB10028 */ sw $s1, 0x28($sp) +/* 00487C 70003C7C 3C118002 */ lui $s1, %hi(ptr_video_settings2) +/* 004880 70003C80 263132A8 */ addiu $s1, %lo(ptr_video_settings2) # addiu $s1, $s1, 0x32a8 +/* 004884 70003C84 8E2E0000 */ lw $t6, ($s1) +/* 004888 70003C88 3C048006 */ lui $a0, %hi(off_CODE_bss_80060879) +/* 00488C 70003C8C 24840879 */ addiu $a0, %lo(off_CODE_bss_80060879) # addiu $a0, $a0, 0x879 +/* 004890 70003C90 90990000 */ lbu $t9, ($a0) +/* 004894 70003C94 85CF001C */ lh $t7, 0x1c($t6) +/* 004898 70003C98 00194100 */ sll $t0, $t9, 4 +/* 00489C 70003C9C 00484821 */ addu $t1, $v0, $t0 +/* 0048A0 70003CA0 000FC040 */ sll $t8, $t7, 1 +/* 0048A4 70003CA4 A53807D0 */ sh $t8, 0x7d0($t1) +/* 0048A8 70003CA8 8E230000 */ lw $v1, ($s1) +/* 0048AC 70003CAC 90990000 */ lbu $t9, ($a0) +/* 0048B0 70003CB0 8CAF0000 */ lw $t7, ($a1) +/* 0048B4 70003CB4 846A001C */ lh $t2, 0x1c($v1) +/* 0048B8 70003CB8 846C0020 */ lh $t4, 0x20($v1) +/* 0048BC 70003CBC 00194100 */ sll $t0, $t9, 4 +/* 0048C0 70003CC0 000A5840 */ sll $t3, $t2, 1 +/* 0048C4 70003CC4 000C6880 */ sll $t5, $t4, 2 +/* 0048C8 70003CC8 016D7021 */ addu $t6, $t3, $t5 +/* 0048CC 70003CCC 01E8C021 */ addu $t8, $t7, $t0 +/* 0048D0 70003CD0 A70E07D8 */ sh $t6, 0x7d8($t8) +/* 0048D4 70003CD4 8E290000 */ lw $t1, ($s1) +/* 0048D8 70003CD8 908D0000 */ lbu $t5, ($a0) +/* 0048DC 70003CDC 8CAB0000 */ lw $t3, ($a1) +/* 0048E0 70003CE0 852A001E */ lh $t2, 0x1e($t1) +/* 0048E4 70003CE4 000DC900 */ sll $t9, $t5, 4 +/* 0048E8 70003CE8 01797821 */ addu $t7, $t3, $t9 +/* 0048EC 70003CEC 000A6040 */ sll $t4, $t2, 1 +/* 0048F0 70003CF0 A5EC07D2 */ sh $t4, 0x7d2($t7) +/* 0048F4 70003CF4 8E230000 */ lw $v1, ($s1) +/* 0048F8 70003CF8 908B0000 */ lbu $t3, ($a0) +/* 0048FC 70003CFC 8CAD0000 */ lw $t5, ($a1) +/* 004900 70003D00 8468001E */ lh $t0, 0x1e($v1) +/* 004904 70003D04 84780022 */ lh $t8, 0x22($v1) +/* 004908 70003D08 000BC900 */ sll $t9, $t3, 4 +/* 00490C 70003D0C 00087040 */ sll $t6, $t0, 1 +/* 004910 70003D10 00184880 */ sll $t1, $t8, 2 +/* 004914 70003D14 01C95021 */ addu $t2, $t6, $t1 +/* 004918 70003D18 01B96021 */ addu $t4, $t5, $t9 +/* 00491C 70003D1C A58A07DA */ sh $t2, 0x7da($t4) +.L70003D20: +/* 004920 70003D20 3C0F0380 */ lui $t7, (0x03800010 >> 16) # lui $t7, 0x380 +/* 004924 70003D24 3C048006 */ lui $a0, %hi(off_CODE_bss_80060879) +/* 004928 70003D28 35EF0010 */ ori $t7, (0x03800010 & 0xFFFF) # ori $t7, $t7, 0x10 +/* 00492C 70003D2C 02001025 */ move $v0, $s0 +/* 004930 70003D30 24840879 */ addiu $a0, %lo(off_CODE_bss_80060879) # addiu $a0, $a0, 0x879 +/* 004934 70003D34 AC4F0000 */ sw $t7, ($v0) +/* 004938 70003D38 90980000 */ lbu $t8, ($a0) +/* 00493C 70003D3C 8CA80000 */ lw $t0, ($a1) +/* 004940 70003D40 3C018000 */ lui $at, (0x800007D0 >> 16) +/* 004944 70003D44 00187100 */ sll $t6, $t8, 4 +/* 004948 70003D48 342107D0 */ ori $at, (0x800007D0 & 0xFFFF) # ori $at, $at, 0x7d0 +/* 00494C 70003D4C 010E4821 */ addu $t1, $t0, $t6 +/* 004950 70003D50 3C118002 */ lui $s1, %hi(ptr_video_settings2) +/* 004954 70003D54 01215821 */ addu $t3, $t1, $at +/* 004958 70003D58 263132A8 */ addiu $s1, %lo(ptr_video_settings2) # addiu $s1, $s1, 0x32a8 +/* 00495C 70003D5C AC4B0004 */ sw $t3, 4($v0) +/* 004960 70003D60 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 004964 70003D64 26100008 */ addiu $s0, $s0, 8 +/* 004968 70003D68 3C018006 */ lui $at, %hi(m) +/* 00496C 70003D6C AC220820 */ sw $v0, %lo(m)($at) +/* 004970 70003D70 8E230000 */ lw $v1, ($s1) +/* 004974 70003D74 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 004978 70003D78 44814000 */ mtc1 $at, $f8 +/* 00497C 70003D7C C4640010 */ lwc1 $f4, 0x10($v1) +/* 004980 70003D80 8C660008 */ lw $a2, 8($v1) +/* 004984 70003D84 8C67000C */ lw $a3, 0xc($v1) +/* 004988 70003D88 E7A40010 */ swc1 $f4, 0x10($sp) +/* 00498C 70003D8C C4660014 */ lwc1 $f6, 0x14($v1) +/* 004990 70003D90 3C048006 */ lui $a0, %hi(dword_CODE_bss_800607E0) +/* 004994 70003D94 3C058006 */ lui $a1, %hi(word_CODE_bss_80060824) +/* 004998 70003D98 24A50824 */ addiu $a1, %lo(word_CODE_bss_80060824) # addiu $a1, $a1, 0x824 +/* 00499C 70003D9C 248407E0 */ addiu $a0, %lo(dword_CODE_bss_800607E0) # addiu $a0, $a0, 0x7e0 +/* 0049A0 70003DA0 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0049A4 70003DA4 0C003F20 */ jal guPerspectiveF +/* 0049A8 70003DA8 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0049AC 70003DAC 3C048006 */ lui $a0, %hi(dword_CODE_bss_800607E0) +/* 0049B0 70003DB0 3C058006 */ lui $a1, %hi(m) +/* 0049B4 70003DB4 8CA50820 */ lw $a1, %lo(m)($a1) +/* 0049B8 70003DB8 0C003FC4 */ jal guMtxF2L +/* 0049BC 70003DBC 248407E0 */ addiu $a0, %lo(dword_CODE_bss_800607E0) # addiu $a0, $a0, 0x7e0 +/* 0049C0 70003DC0 3C0D0103 */ lui $t5, (0x01030040 >> 16) # lui $t5, 0x103 +/* 0049C4 70003DC4 3C058006 */ lui $a1, %hi(m) +/* 0049C8 70003DC8 35AD0040 */ ori $t5, (0x01030040 & 0xFFFF) # ori $t5, $t5, 0x40 +/* 0049CC 70003DCC 02001025 */ move $v0, $s0 +/* 0049D0 70003DD0 24A50820 */ addiu $a1, %lo(m) # addiu $a1, $a1, 0x820 +/* 0049D4 70003DD4 AC4D0000 */ sw $t5, ($v0) +/* 0049D8 70003DD8 8CB90000 */ lw $t9, ($a1) +/* 0049DC 70003DDC 3C018000 */ lui $at, 0x8000 +/* 0049E0 70003DE0 26100008 */ addiu $s0, $s0, 8 +/* 0049E4 70003DE4 3C0CBC00 */ lui $t4, (0xBC00000E >> 16) # lui $t4, 0xbc00 +/* 0049E8 70003DE8 03215021 */ addu $t2, $t9, $at +/* 0049EC 70003DEC AC4A0004 */ sw $t2, 4($v0) +/* 0049F0 70003DF0 358C000E */ ori $t4, (0xBC00000E & 0xFFFF) # ori $t4, $t4, 0xe +/* 0049F4 70003DF4 02001825 */ move $v1, $s0 +/* 0049F8 70003DF8 AC6C0000 */ sw $t4, ($v1) +/* 0049FC 70003DFC 3C0F8006 */ lui $t7, %hi(word_CODE_bss_80060824) +/* 004A00 70003E00 95EF0824 */ lhu $t7, %lo(word_CODE_bss_80060824)($t7) +/* 004A04 70003E04 26100008 */ addiu $s0, $s0, 8 +/* 004A08 70003E08 AC6F0004 */ sw $t7, 4($v1) +/* 004A0C 70003E0C 0FC1E0D9 */ jal set_BONDdata_field_10D8 +/* 004A10 70003E10 8CA40000 */ lw $a0, ($a1) +/* 004A14 70003E14 3C048006 */ lui $a0, %hi(dword_CODE_bss_800607E0) +/* 004A18 70003E18 0FC1E0F5 */ jal set_BONDdata_field_10DC +/* 004A1C 70003E1C 248407E0 */ addiu $a0, %lo(dword_CODE_bss_800607E0) # addiu $a0, $a0, 0x7e0 +/* 004A20 70003E20 3C188002 */ lui $t8, %hi(coloroutputmode) +/* 004A24 70003E24 8F1832AC */ lw $t8, %lo(coloroutputmode)($t8) +/* 004A28 70003E28 02001025 */ move $v0, $s0 +/* 004A2C 70003E2C 3C01FF18 */ lui $at, 0xff18 +/* 004A30 70003E30 53000011 */ beql $t8, $zero, .L70003E78 +/* 004A34 70003E34 8E2F0000 */ lw $t7, ($s1) +/* 004A38 70003E38 8E280000 */ lw $t0, ($s1) +/* 004A3C 70003E3C 3C01FF10 */ lui $at, 0xff10 +/* 004A40 70003E40 02001025 */ move $v0, $s0 +/* 004A44 70003E44 850E0018 */ lh $t6, 0x18($t0) +/* 004A48 70003E48 26100008 */ addiu $s0, $s0, 8 +/* 004A4C 70003E4C 25C9FFFF */ addiu $t1, $t6, -1 +/* 004A50 70003E50 312B0FFF */ andi $t3, $t1, 0xfff +/* 004A54 70003E54 01616825 */ or $t5, $t3, $at +/* 004A58 70003E58 AC4D0000 */ sw $t5, ($v0) +/* 004A5C 70003E5C 8E390000 */ lw $t9, ($s1) +/* 004A60 70003E60 3C018000 */ lui $at, 0x8000 +/* 004A64 70003E64 8F2A0028 */ lw $t2, 0x28($t9) +/* 004A68 70003E68 01416021 */ addu $t4, $t2, $at +/* 004A6C 70003E6C 1000000B */ b .L70003E9C +/* 004A70 70003E70 AC4C0004 */ sw $t4, 4($v0) +/* 004A74 70003E74 8E2F0000 */ lw $t7, ($s1) +.L70003E78: +/* 004A78 70003E78 3C0B003B */ lui $t3, %hi(0x003B5000) # $t3, 0x3b +/* 004A7C 70003E7C 256B5000 */ addiu $t3, %lo(0x003B5000) # addiu $t3, $t3, 0x5000 +/* 004A80 70003E80 85F80018 */ lh $t8, 0x18($t7) +/* 004A84 70003E84 AC4B0004 */ sw $t3, 4($v0) +/* 004A88 70003E88 26100008 */ addiu $s0, $s0, 8 +/* 004A8C 70003E8C 2708FFFF */ addiu $t0, $t8, -1 +/* 004A90 70003E90 310E0FFF */ andi $t6, $t0, 0xfff +/* 004A94 70003E94 01C14825 */ or $t1, $t6, $at +/* 004A98 70003E98 AC490000 */ sw $t1, ($v0) +.L70003E9C: +/* 004A9C 70003E9C 8FBF002C */ lw $ra, 0x2c($sp) +/* 004AA0 70003EA0 02001025 */ move $v0, $s0 +/* 004AA4 70003EA4 8FB00024 */ lw $s0, 0x24($sp) +/* 004AA8 70003EA8 8FB10028 */ lw $s1, 0x28($sp) +/* 004AAC 70003EAC 03E00008 */ jr $ra +/* 004AB0 70003EB0 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + + +/** + * 4AB4 70003EB4 + */ +#ifdef NONMATCHING +s32 video_related_10(s32 arg0) +{ + s32 phi_a0; + + phi_a0 = arg0; + if (ptr_video_settings2->unk24 != 0) + { + phi_a0 = sub_GAME_7F0D2518(sub_GAME_7F0D2464()); + } + return phi_a0; +} +#else +GLOBAL_ASM( +.text +glabel video_related_10 +/* 004AB4 70003EB4 3C0E8002 */ lui $t6, %hi(ptr_video_settings2) +/* 004AB8 70003EB8 8DCE32A8 */ lw $t6, %lo(ptr_video_settings2)($t6) +/* 004ABC 70003EBC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 004AC0 70003EC0 AFBF0014 */ sw $ra, 0x14($sp) +/* 004AC4 70003EC4 8DCF0024 */ lw $t7, 0x24($t6) +/* 004AC8 70003EC8 51E00007 */ beql $t7, $zero, .L70003EE8 +/* 004ACC 70003ECC 8FBF0014 */ lw $ra, 0x14($sp) +/* 004AD0 70003ED0 0FC34919 */ jal sub_GAME_7F0D2464 +/* 004AD4 70003ED4 00000000 */ nop +/* 004AD8 70003ED8 0FC34946 */ jal sub_GAME_7F0D2518 +/* 004ADC 70003EDC 00402025 */ move $a0, $v0 +/* 004AE0 70003EE0 00402025 */ move $a0, $v0 +/* 004AE4 70003EE4 8FBF0014 */ lw $ra, 0x14($sp) +.L70003EE8: +/* 004AE8 70003EE8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 004AEC 70003EEC 00801025 */ move $v0, $a0 +/* 004AF0 70003EF0 03E00008 */ jr $ra +/* 004AF4 70003EF4 00000000 */ nop +) +#endif + + +/** + * 4AF8 70003EF8 generate a generic fillrect; fries: AT,A1,A2,A3,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 + * V0=new display list address + * accepts: A0=p->display list + */ +#ifdef NONMATCHING +s32 insert_generic_fillrect(void *arg0) //either of type Dynamic Struct or GFX Array, however Im betting Dynamic since Dynamic can contain a GFX plus other settings +{ + void *temp_a1; + void *temp_a3; + + // copied from a demo of what is probably going on here + /* + * pointers to build the display list. + / + dynamicp = &dynamic; //glist[0]); + */ + // so arg0 is probably pointer to dynamic struct containing glist. + // nothing is actually returned per say since its added to glist at a higher level. + + //arg0->unk4 = 0x300000; + //arg0->unk0 = 0xba001402; + gDPSetCycleType(glistp++, G_CYC_1CYCLE); + + //temp_a1 = arg0 + 8; + //temp_a3 = temp_a1 + 8; + //temp_a1->unk0 = (s32) (((((ptr_video_settings2->unk18 + -1) & 0x3ff) << 0xe) | 0xf6000000) | (((ptr_video_settings2->unk1A + -1) & 0x3ff) * 4)); + //temp_a1->unk4 = 0; + gDPFillRectangle(glistp++, 0, 0, SCREEN_WD-1, SCREEN_HT-1); + //temp_a3->unk0 = 0xe7000000; + //temp_a3->unk4 = 0; + gDPPipeSync(glistp++); + //return temp_a3 + 8; +} + +#else +GLOBAL_ASM( +.text +glabel insert_generic_fillrect +/* 004AF8 70003EF8 3C0EBA00 */ lui $t6, (0xBA001402 >> 16) # lui $t6, 0xba00 #gsDPSetCycleType +/* 004AFC 70003EFC 35CE1402 */ ori $t6, (0xBA001402 & 0xFFFF) # ori $t6, $t6, 0x1402 +/* 004B00 70003F00 3C0F0030 */ lui $t7, 0x30 #G_CYC_1CYCLE +/* 004B04 70003F04 AC8F0004 */ sw $t7, 4($a0) +/* 004B08 70003F08 AC8E0000 */ sw $t6, ($a0) +/* 004B0C 70003F0C 3C068002 */ lui $a2, %hi(ptr_video_settings2) +/* 004B10 70003F10 8CC632A8 */ lw $a2, %lo(ptr_video_settings2)($a2) +/* 004B14 70003F14 24850008 */ addiu $a1, $a0, 8 +/* 004B18 70003F18 3C01F600 */ lui $at, 0xf600 +/* 004B1C 70003F1C 84D80018 */ lh $t8, 0x18($a2) +/* 004B20 70003F20 84CB001A */ lh $t3, 0x1a($a2) +/* 004B24 70003F24 24A70008 */ addiu $a3, $a1, 8 +/* 004B28 70003F28 2719FFFF */ addiu $t9, $t8, -1 +/* 004B2C 70003F2C 332803FF */ andi $t0, $t9, 0x3ff +/* 004B30 70003F30 256CFFFF */ addiu $t4, $t3, -1 +/* 004B34 70003F34 318D03FF */ andi $t5, $t4, 0x3ff +/* 004B38 70003F38 00084B80 */ sll $t1, $t0, 0xe +/* 004B3C 70003F3C 01215025 */ or $t2, $t1, $at +/* 004B40 70003F40 000D7080 */ sll $t6, $t5, 2 +/* 004B44 70003F44 014E7825 */ or $t7, $t2, $t6 +/* 004B48 70003F48 ACAF0000 */ sw $t7, ($a1) +/* 004B4C 70003F4C ACA00004 */ sw $zero, 4($a1) +/* 004B50 70003F50 3C18E700 */ lui $t8, 0xe700 +/* 004B54 70003F54 ACF80000 */ sw $t8, ($a3) +/* 004B58 70003F58 ACE00004 */ sw $zero, 4($a3) +/* 004B5C 70003F5C 03E00008 */ jr $ra +/* 004B60 70003F60 24E20008 */ addiu $v0, $a3, 8 +) +#endif + + + + +/** + * 4B64 70003F64 + * accepts: A0=p->display list + */ +#ifdef NONMATCHING +void *setupscreensfornumplayers(void *arg0) +{ + void *sp60; + s16 sp22; + s16 sp20; + void *temp_s0; + void *temp_s0_2; + void *temp_s0_3; + void *temp_s0_4; + void *temp_s0_5; + void *temp_s1; + void *temp_s1_2; + void *temp_v1; + void *phi_s0; + void *phi_s0_2; + void *phi_s0_3; + void *phi_s0_4; + + temp_s0 = arg0 + 8; + //arg0->unk4 = 0x300000; + //arg0->unk0 = 0xba001402; + *temp_s0 = 0xed000000; + sp60 = temp_s0; + temp_s0 = temp_s0 + 8; + temp_v1 = temp_s0; + temp_s0 = temp_s0 + 8; + sp60->unk4 = (s32) (((s32) ((f32) get_video2_settings_txtClipH() * 4.0f) & 0xfff) | (((s32) ((f32) ((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10) * 4.0f) & 0xfff) << 0xc)); + temp_v1->unk4 = 0x10001; + temp_v1->unk0 = 0xf7000000; + phi_s0 = temp_s0; + if (get_video2_settings_uly() > 0) + { + phi_s0 = temp_s0; + if (sub_GAME_7F09B4D8(get_cur_playernum()) == 0) + { + temp_s0 = temp_s0 + 8; + sp58->unk0 = (s32) (((((get_video2_settings_uly() + -1) & 0x3ff) * 4) | 0xf6000000) | (((((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10) + -1) & 0x3ff) << 0xe)); + sp58->unk4 = 0; + temp_s0->unk0 = 0xe7000000; + temp_s0->unk4 = 0; + phi_s0 = temp_s0 + 8; + } + } + if (get_num_players() == 1) + { + sp22 = get_video2_settings_height(); + phi_s0_4 = phi_s0; + if ((((s32) (get_video2_settings_uly() << 0x10) >> 0x10) + sp22) < get_video2_settings_txtClipH()) + { + temp_s0_2 = phi_s0 + 8; + sp50->unk0 = (s32) (((((get_video2_settings_txtClipH() + -1) & 0x3ff) * 4) | 0xf6000000) | (((((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10) + -1) & 0x3ff) << 0xe)); + sp50->unk4 = (s32) (((get_video2_settings_height() + ((s32) (get_video2_settings_uly() << 0x10) >> 0x10)) & 0x3ff) * 4); + temp_s0_2->unk4 = 0; + temp_s0_2->unk0 = 0xe7000000; + phi_s0_4 = temp_s0_2 + 8; + } + } + else + { + phi_s0_4 = phi_s0; + if (sub_GAME_7F09B4D8(get_cur_playernum()) == 0) + { + sp20 = get_video2_settings_height(); + sp22 = get_video2_settings_height(); + phi_s0_2 = phi_s0; + if (((((s32) (get_video2_settings_uly() << 0x10) >> 0x10) + sp22) + sp20) < get_video2_settings_txtClipH()) + { + temp_s0_3 = phi_s0 + 8; + sp48->unk0 = (s32) (((((get_video2_settings_txtClipH() + -1) & 0x3ff) * 4) | 0xf6000000) | (((((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10) + -1) & 0x3ff) << 0xe)); + sp22 = get_video2_settings_height(); + sp48->unk4 = (s32) ((((get_video2_settings_height() + ((s32) (get_video2_settings_uly() << 0x10) >> 0x10)) + sp22) & 0x3ff) * 4); + temp_s0_3->unk0 = 0xe7000000; + temp_s0_3->unk4 = 0; + phi_s0_2 = temp_s0_3 + 8; + } + temp_s1 = phi_s0_2; + temp_s0_4 = phi_s0_2 + 8; + temp_s1->unk4 = 0x1dc; + temp_s1->unk0 = (s32) (((((get_video2_settings_txtClipW() + -1) & 0x3ff) << 0xe) | 0xf6000000) | 0x1e0); + temp_s0_4->unk0 = 0xe7000000; + temp_s0_4->unk4 = 0; + temp_s0_4 = temp_s0_4 + 8; + temp_s1_2 = temp_s0_4; + phi_s0_3 = temp_s0_4; + if (get_num_players() >= 3) + { + temp_s0_4 = temp_s0_4 + 8; + temp_s1_2->unk0 = (s32) ((((get_video2_settings_txtClipH() + -1) & 0x3ff) * 4) | 0xf6280000); + temp_s1_2->unk4 = 0x27c000; + temp_s0_4->unk0 = 0xe7000000; + temp_s0_4->unk4 = 0; + phi_s0_3 = temp_s0_4 + 8; + } + phi_s0_4 = phi_s0_3; + if (get_num_players() == 3) + { + temp_s0_5 = phi_s0_3 + 8; + sp30->unk0 = (s32) (((((get_video2_settings_txtClipH() + -1) & 0x3ff) * 4) | 0xf6000000) | (((((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10) + -1) & 0x3ff) << 0xe)); + sp30->unk4 = 0x2841e4; + temp_s0_5->unk0 = 0xe7000000; + temp_s0_5->unk4 = 0; + phi_s0_4 = temp_s0_5 + 8; + } + } + } + return phi_s0_4; +} +#else +GLOBAL_ASM( +.text +glabel setupscreensfornumplayers +/* 004B64 70003F64 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 004B68 70003F68 AFB00014 */ sw $s0, 0x14($sp) +/* 004B6C 70003F6C AFBF001C */ sw $ra, 0x1c($sp) +/* 004B70 70003F70 AFB10018 */ sw $s1, 0x18($sp) +/* 004B74 70003F74 3C0EBA00 */ lui $t6, (0xBA001402 >> 16) # lui $t6, 0xba00 +/* 004B78 70003F78 35CE1402 */ ori $t6, (0xBA001402 & 0xFFFF) # ori $t6, $t6, 0x1402 +/* 004B7C 70003F7C 24900008 */ addiu $s0, $a0, 8 +/* 004B80 70003F80 3C0F0030 */ lui $t7, 0x30 +/* 004B84 70003F84 AC8F0004 */ sw $t7, 4($a0) +/* 004B88 70003F88 AC8E0000 */ sw $t6, ($a0) +/* 004B8C 70003F8C 02001825 */ move $v1, $s0 +/* 004B90 70003F90 3C18ED00 */ lui $t8, 0xed00 +/* 004B94 70003F94 AC780000 */ sw $t8, ($v1) +/* 004B98 70003F98 AFA30060 */ sw $v1, 0x60($sp) +/* 004B9C 70003F9C 0C001107 */ jal get_video2_settings_txtClipW +/* 004BA0 70003FA0 26100008 */ addiu $s0, $s0, 8 +/* 004BA4 70003FA4 00028C00 */ sll $s1, $v0, 0x10 +/* 004BA8 70003FA8 0011CC03 */ sra $t9, $s1, 0x10 +/* 004BAC 70003FAC 0C00110B */ jal get_video2_settings_txtClipH +/* 004BB0 70003FB0 03208825 */ move $s1, $t9 +/* 004BB4 70003FB4 44822000 */ mtc1 $v0, $f4 +/* 004BB8 70003FB8 44918000 */ mtc1 $s1, $f16 +/* 004BBC 70003FBC 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 004BC0 70003FC0 468021A0 */ cvt.s.w $f6, $f4 +/* 004BC4 70003FC4 44810000 */ mtc1 $at, $f0 +/* 004BC8 70003FC8 8FB80060 */ lw $t8, 0x60($sp) +/* 004BCC 70003FCC 02001825 */ move $v1, $s0 +/* 004BD0 70003FD0 3C080001 */ lui $t0, (0x00010001 >> 16) # lui $t0, 1 +/* 004BD4 70003FD4 468084A0 */ cvt.s.w $f18, $f16 +/* 004BD8 70003FD8 46003202 */ mul.s $f8, $f6, $f0 +/* 004BDC 70003FDC 35080001 */ ori $t0, (0x00010001 & 0xFFFF) # ori $t0, $t0, 1 +/* 004BE0 70003FE0 3C19F700 */ lui $t9, 0xf700 +/* 004BE4 70003FE4 26100008 */ addiu $s0, $s0, 8 +/* 004BE8 70003FE8 46009102 */ mul.s $f4, $f18, $f0 +/* 004BEC 70003FEC 4600428D */ trunc.w.s $f10, $f8 +/* 004BF0 70003FF0 4600218D */ trunc.w.s $f6, $f4 +/* 004BF4 70003FF4 44095000 */ mfc1 $t1, $f10 +/* 004BF8 70003FF8 440C3000 */ mfc1 $t4, $f6 +/* 004BFC 70003FFC 312A0FFF */ andi $t2, $t1, 0xfff +/* 004C00 70004000 318D0FFF */ andi $t5, $t4, 0xfff +/* 004C04 70004004 000D7300 */ sll $t6, $t5, 0xc +/* 004C08 70004008 014E7825 */ or $t7, $t2, $t6 +/* 004C0C 7000400C AF0F0004 */ sw $t7, 4($t8) +/* 004C10 70004010 AC680004 */ sw $t0, 4($v1) +/* 004C14 70004014 0C001149 */ jal get_video2_settings_uly +/* 004C18 70004018 AC790000 */ sw $t9, ($v1) +/* 004C1C 7000401C 1840001F */ blez $v0, .L7000409C +/* 004C20 70004020 00000000 */ nop +/* 004C24 70004024 0FC26C54 */ jal get_cur_playernum +/* 004C28 70004028 00000000 */ nop +/* 004C2C 7000402C 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 004C30 70004030 00402025 */ move $a0, $v0 +/* 004C34 70004034 14400019 */ bnez $v0, .L7000409C +/* 004C38 70004038 00000000 */ nop +/* 004C3C 7000403C AFB00058 */ sw $s0, 0x58($sp) +/* 004C40 70004040 0C001107 */ jal get_video2_settings_txtClipW +/* 004C44 70004044 26100008 */ addiu $s0, $s0, 8 +/* 004C48 70004048 00028C00 */ sll $s1, $v0, 0x10 +/* 004C4C 7000404C 00114C03 */ sra $t1, $s1, 0x10 +/* 004C50 70004050 0C001149 */ jal get_video2_settings_uly +/* 004C54 70004054 01208825 */ move $s1, $t1 +/* 004C58 70004058 244BFFFF */ addiu $t3, $v0, -1 +/* 004C5C 7000405C 8FA40058 */ lw $a0, 0x58($sp) +/* 004C60 70004060 316C03FF */ andi $t4, $t3, 0x3ff +/* 004C64 70004064 262EFFFF */ addiu $t6, $s1, -1 +/* 004C68 70004068 31CF03FF */ andi $t7, $t6, 0x3ff +/* 004C6C 7000406C 000C6880 */ sll $t5, $t4, 2 +/* 004C70 70004070 3C01F600 */ lui $at, 0xf600 +/* 004C74 70004074 01A15025 */ or $t2, $t5, $at +/* 004C78 70004078 000FC380 */ sll $t8, $t7, 0xe +/* 004C7C 7000407C 0158C825 */ or $t9, $t2, $t8 +/* 004C80 70004080 02001825 */ move $v1, $s0 +/* 004C84 70004084 AC990000 */ sw $t9, ($a0) +/* 004C88 70004088 AC800004 */ sw $zero, 4($a0) +/* 004C8C 7000408C 3C08E700 */ lui $t0, 0xe700 +/* 004C90 70004090 AC680000 */ sw $t0, ($v1) +/* 004C94 70004094 AC600004 */ sw $zero, 4($v1) +/* 004C98 70004098 26100008 */ addiu $s0, $s0, 8 +.L7000409C: +/* 004C9C 7000409C 0FC26919 */ jal get_num_players +/* 004CA0 700040A0 00000000 */ nop +/* 004CA4 700040A4 24010001 */ li $at, 1 +/* 004CA8 700040A8 14410030 */ bne $v0, $at, .L7000416C +/* 004CAC 700040AC 00000000 */ nop +/* 004CB0 700040B0 0C00112B */ jal get_video2_settings_height +/* 004CB4 700040B4 00000000 */ nop +/* 004CB8 700040B8 0C001149 */ jal get_video2_settings_uly +/* 004CBC 700040BC A7A20022 */ sh $v0, 0x22($sp) +/* 004CC0 700040C0 00028C00 */ sll $s1, $v0, 0x10 +/* 004CC4 700040C4 00114C03 */ sra $t1, $s1, 0x10 +/* 004CC8 700040C8 0C00110B */ jal get_video2_settings_txtClipH +/* 004CCC 700040CC 01208825 */ move $s1, $t1 +/* 004CD0 700040D0 87AB0022 */ lh $t3, 0x22($sp) +/* 004CD4 700040D4 022B6021 */ addu $t4, $s1, $t3 +/* 004CD8 700040D8 0182082A */ slt $at, $t4, $v0 +/* 004CDC 700040DC 502000A4 */ beql $at, $zero, .L70004370 +/* 004CE0 700040E0 8FBF001C */ lw $ra, 0x1c($sp) +/* 004CE4 700040E4 AFB00050 */ sw $s0, 0x50($sp) +/* 004CE8 700040E8 0C001107 */ jal get_video2_settings_txtClipW +/* 004CEC 700040EC 26100008 */ addiu $s0, $s0, 8 +/* 004CF0 700040F0 00028C00 */ sll $s1, $v0, 0x10 +/* 004CF4 700040F4 00116C03 */ sra $t5, $s1, 0x10 +/* 004CF8 700040F8 0C00110B */ jal get_video2_settings_txtClipH +/* 004CFC 700040FC 01A08825 */ move $s1, $t5 +/* 004D00 70004100 244EFFFF */ addiu $t6, $v0, -1 +/* 004D04 70004104 31CF03FF */ andi $t7, $t6, 0x3ff +/* 004D08 70004108 2639FFFF */ addiu $t9, $s1, -1 +/* 004D0C 7000410C 332803FF */ andi $t0, $t9, 0x3ff +/* 004D10 70004110 000F5080 */ sll $t2, $t7, 2 +/* 004D14 70004114 3C01F600 */ lui $at, 0xf600 +/* 004D18 70004118 8FAC0050 */ lw $t4, 0x50($sp) +/* 004D1C 7000411C 0141C025 */ or $t8, $t2, $at +/* 004D20 70004120 00084B80 */ sll $t1, $t0, 0xe +/* 004D24 70004124 03095825 */ or $t3, $t8, $t1 +/* 004D28 70004128 0C001149 */ jal get_video2_settings_uly +/* 004D2C 7000412C AD8B0000 */ sw $t3, ($t4) +/* 004D30 70004130 00028C00 */ sll $s1, $v0, 0x10 +/* 004D34 70004134 00116C03 */ sra $t5, $s1, 0x10 +/* 004D38 70004138 0C00112B */ jal get_video2_settings_height +/* 004D3C 7000413C 01A08825 */ move $s1, $t5 +/* 004D40 70004140 8FB90050 */ lw $t9, 0x50($sp) +/* 004D44 70004144 00517021 */ addu $t6, $v0, $s1 +/* 004D48 70004148 31CF03FF */ andi $t7, $t6, 0x3ff +/* 004D4C 7000414C 000F5080 */ sll $t2, $t7, 2 +/* 004D50 70004150 02001825 */ move $v1, $s0 +/* 004D54 70004154 3C08E700 */ lui $t0, 0xe700 +/* 004D58 70004158 AF2A0004 */ sw $t2, 4($t9) +/* 004D5C 7000415C AC600004 */ sw $zero, 4($v1) +/* 004D60 70004160 AC680000 */ sw $t0, ($v1) +/* 004D64 70004164 10000081 */ b .L7000436C +/* 004D68 70004168 26100008 */ addiu $s0, $s0, 8 +.L7000416C: +/* 004D6C 7000416C 0FC26C54 */ jal get_cur_playernum +/* 004D70 70004170 00000000 */ nop +/* 004D74 70004174 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 004D78 70004178 00402025 */ move $a0, $v0 +/* 004D7C 7000417C 5440007C */ bnezl $v0, .L70004370 +/* 004D80 70004180 8FBF001C */ lw $ra, 0x1c($sp) +/* 004D84 70004184 0C00112B */ jal get_video2_settings_height +/* 004D88 70004188 00000000 */ nop +/* 004D8C 7000418C 0C00112B */ jal get_video2_settings_height +/* 004D90 70004190 A7A20020 */ sh $v0, 0x20($sp) +/* 004D94 70004194 0C001149 */ jal get_video2_settings_uly +/* 004D98 70004198 A7A20022 */ sh $v0, 0x22($sp) +/* 004D9C 7000419C 00028C00 */ sll $s1, $v0, 0x10 +/* 004DA0 700041A0 0011C403 */ sra $t8, $s1, 0x10 +/* 004DA4 700041A4 0C00110B */ jal get_video2_settings_txtClipH +/* 004DA8 700041A8 03008825 */ move $s1, $t8 +/* 004DAC 700041AC 87A90022 */ lh $t1, 0x22($sp) +/* 004DB0 700041B0 87AC0020 */ lh $t4, 0x20($sp) +/* 004DB4 700041B4 02295821 */ addu $t3, $s1, $t1 +/* 004DB8 700041B8 016C6821 */ addu $t5, $t3, $t4 +/* 004DBC 700041BC 01A2082A */ slt $at, $t5, $v0 +/* 004DC0 700041C0 50200027 */ beql $at, $zero, .L70004260 +/* 004DC4 700041C4 02008825 */ move $s1, $s0 +/* 004DC8 700041C8 AFB00048 */ sw $s0, 0x48($sp) +/* 004DCC 700041CC 0C001107 */ jal get_video2_settings_txtClipW +/* 004DD0 700041D0 26100008 */ addiu $s0, $s0, 8 +/* 004DD4 700041D4 00028C00 */ sll $s1, $v0, 0x10 +/* 004DD8 700041D8 00117403 */ sra $t6, $s1, 0x10 +/* 004DDC 700041DC 0C00110B */ jal get_video2_settings_txtClipH +/* 004DE0 700041E0 01C08825 */ move $s1, $t6 +/* 004DE4 700041E4 244FFFFF */ addiu $t7, $v0, -1 +/* 004DE8 700041E8 31EA03FF */ andi $t2, $t7, 0x3ff +/* 004DEC 700041EC 2638FFFF */ addiu $t8, $s1, -1 +/* 004DF0 700041F0 330903FF */ andi $t1, $t8, 0x3ff +/* 004DF4 700041F4 000AC880 */ sll $t9, $t2, 2 +/* 004DF8 700041F8 3C01F600 */ lui $at, 0xf600 +/* 004DFC 700041FC 8FAD0048 */ lw $t5, 0x48($sp) +/* 004E00 70004200 03214025 */ or $t0, $t9, $at +/* 004E04 70004204 00095B80 */ sll $t3, $t1, 0xe +/* 004E08 70004208 010B6025 */ or $t4, $t0, $t3 +/* 004E0C 7000420C 0C00112B */ jal get_video2_settings_height +/* 004E10 70004210 ADAC0000 */ sw $t4, ($t5) +/* 004E14 70004214 0C001149 */ jal get_video2_settings_uly +/* 004E18 70004218 A7A20022 */ sh $v0, 0x22($sp) +/* 004E1C 7000421C 00028C00 */ sll $s1, $v0, 0x10 +/* 004E20 70004220 00117403 */ sra $t6, $s1, 0x10 +/* 004E24 70004224 0C00112B */ jal get_video2_settings_height +/* 004E28 70004228 01C08825 */ move $s1, $t6 +/* 004E2C 7000422C 87AA0022 */ lh $t2, 0x22($sp) +/* 004E30 70004230 00517821 */ addu $t7, $v0, $s1 +/* 004E34 70004234 8FA80048 */ lw $t0, 0x48($sp) +/* 004E38 70004238 01EAC821 */ addu $t9, $t7, $t2 +/* 004E3C 7000423C 333803FF */ andi $t8, $t9, 0x3ff +/* 004E40 70004240 00184880 */ sll $t1, $t8, 2 +/* 004E44 70004244 02001825 */ move $v1, $s0 +/* 004E48 70004248 AD090004 */ sw $t1, 4($t0) +/* 004E4C 7000424C 3C0BE700 */ lui $t3, 0xe700 +/* 004E50 70004250 AC6B0000 */ sw $t3, ($v1) +/* 004E54 70004254 AC600004 */ sw $zero, 4($v1) +/* 004E58 70004258 26100008 */ addiu $s0, $s0, 8 +/* 004E5C 7000425C 02008825 */ move $s1, $s0 +.L70004260: +/* 004E60 70004260 0C001107 */ jal get_video2_settings_txtClipW +/* 004E64 70004264 26100008 */ addiu $s0, $s0, 8 +/* 004E68 70004268 244CFFFF */ addiu $t4, $v0, -1 +/* 004E6C 7000426C 318D03FF */ andi $t5, $t4, 0x3ff +/* 004E70 70004270 000D7380 */ sll $t6, $t5, 0xe +/* 004E74 70004274 3C01F600 */ lui $at, 0xf600 +/* 004E78 70004278 01C17825 */ or $t7, $t6, $at +/* 004E7C 7000427C 35EA01E0 */ ori $t2, $t7, 0x1e0 +/* 004E80 70004280 241901DC */ li $t9, 476 +/* 004E84 70004284 02001825 */ move $v1, $s0 +/* 004E88 70004288 AE390004 */ sw $t9, 4($s1) +/* 004E8C 7000428C AE2A0000 */ sw $t2, ($s1) +/* 004E90 70004290 3C18E700 */ lui $t8, 0xe700 +/* 004E94 70004294 AC780000 */ sw $t8, ($v1) +/* 004E98 70004298 AC600004 */ sw $zero, 4($v1) +/* 004E9C 7000429C 0FC26919 */ jal get_num_players +/* 004EA0 700042A0 26100008 */ addiu $s0, $s0, 8 +/* 004EA4 700042A4 28410003 */ slti $at, $v0, 3 +/* 004EA8 700042A8 14200011 */ bnez $at, .L700042F0 +/* 004EAC 700042AC 02008825 */ move $s1, $s0 +/* 004EB0 700042B0 0C00110B */ jal get_video2_settings_txtClipH +/* 004EB4 700042B4 26100008 */ addiu $s0, $s0, 8 +/* 004EB8 700042B8 2449FFFF */ addiu $t1, $v0, -1 +/* 004EBC 700042BC 312803FF */ andi $t0, $t1, 0x3ff +/* 004EC0 700042C0 00085880 */ sll $t3, $t0, 2 +/* 004EC4 700042C4 3C01F628 */ lui $at, 0xf628 +/* 004EC8 700042C8 3C0D0027 */ lui $t5, (0x0027C000 >> 16) # lui $t5, 0x27 +/* 004ECC 700042CC 35ADC000 */ ori $t5, (0x0027C000 & 0xFFFF) # ori $t5, $t5, 0xc000 +/* 004ED0 700042D0 01616025 */ or $t4, $t3, $at +/* 004ED4 700042D4 02001825 */ move $v1, $s0 +/* 004ED8 700042D8 AE2C0000 */ sw $t4, ($s1) +/* 004EDC 700042DC AE2D0004 */ sw $t5, 4($s1) +/* 004EE0 700042E0 3C0EE700 */ lui $t6, 0xe700 +/* 004EE4 700042E4 AC6E0000 */ sw $t6, ($v1) +/* 004EE8 700042E8 AC600004 */ sw $zero, 4($v1) +/* 004EEC 700042EC 26100008 */ addiu $s0, $s0, 8 +.L700042F0: +/* 004EF0 700042F0 0FC26919 */ jal get_num_players +/* 004EF4 700042F4 00000000 */ nop +/* 004EF8 700042F8 24010003 */ li $at, 3 +/* 004EFC 700042FC 5441001C */ bnel $v0, $at, .L70004370 +/* 004F00 70004300 8FBF001C */ lw $ra, 0x1c($sp) +/* 004F04 70004304 AFB00030 */ sw $s0, 0x30($sp) +/* 004F08 70004308 0C001107 */ jal get_video2_settings_txtClipW +/* 004F0C 7000430C 26100008 */ addiu $s0, $s0, 8 +/* 004F10 70004310 00028C00 */ sll $s1, $v0, 0x10 +/* 004F14 70004314 00117C03 */ sra $t7, $s1, 0x10 +/* 004F18 70004318 0C00110B */ jal get_video2_settings_txtClipH +/* 004F1C 7000431C 01E08825 */ move $s1, $t7 +/* 004F20 70004320 244AFFFF */ addiu $t2, $v0, -1 +/* 004F24 70004324 8FA40030 */ lw $a0, 0x30($sp) +/* 004F28 70004328 315903FF */ andi $t9, $t2, 0x3ff +/* 004F2C 7000432C 2628FFFF */ addiu $t0, $s1, -1 +/* 004F30 70004330 310B03FF */ andi $t3, $t0, 0x3ff +/* 004F34 70004334 0019C080 */ sll $t8, $t9, 2 +/* 004F38 70004338 3C01F600 */ lui $at, 0xf600 +/* 004F3C 7000433C 03014825 */ or $t1, $t8, $at +/* 004F40 70004340 000B6380 */ sll $t4, $t3, 0xe +/* 004F44 70004344 3C0E0028 */ lui $t6, (0x002841E4 >> 16) # lui $t6, 0x28 +/* 004F48 70004348 35CE41E4 */ ori $t6, (0x002841E4 & 0xFFFF) # ori $t6, $t6, 0x41e4 +/* 004F4C 7000434C 012C6825 */ or $t5, $t1, $t4 +/* 004F50 70004350 02001825 */ move $v1, $s0 +/* 004F54 70004354 AC8D0000 */ sw $t5, ($a0) +/* 004F58 70004358 AC8E0004 */ sw $t6, 4($a0) +/* 004F5C 7000435C 3C0FE700 */ lui $t7, 0xe700 +/* 004F60 70004360 AC6F0000 */ sw $t7, ($v1) +/* 004F64 70004364 AC600004 */ sw $zero, 4($v1) +/* 004F68 70004368 26100008 */ addiu $s0, $s0, 8 +.L7000436C: +/* 004F6C 7000436C 8FBF001C */ lw $ra, 0x1c($sp) +.L70004370: +/* 004F70 70004370 02001025 */ move $v0, $s0 +/* 004F74 70004374 8FB00014 */ lw $s0, 0x14($sp) +/* 004F78 70004378 8FB10018 */ lw $s1, 0x18($sp) +/* 004F7C 7000437C 03E00008 */ jr $ra +/* 004F80 70004380 27BD0068 */ addiu $sp, $sp, 0x68 +) +#endif + +/** + * 4F84 70004384 + * A0->[800232A0] + */ +void set_D_800232A0(s32 arg0) +{ + D_800232A0 = arg0; +} + +/** + * 4F90 70004390 + * V0= [800232A0] + */ +s32 get_D_800232A0(void) +{ + return D_800232A0; +} + +/** + * 4F9C 7000439C + * A0->[8002329C] + */ +void set_D_8002329C(s32 arg0) +{ + D_8002329C = arg0; +} + +/** + * 4FA8 700043A8 + * V0= [8002329C] + */ +s32 get_D_8002329C(void) +{ + return D_8002329C; +} + +/** + * 4FB4 700043B4 + * A0->[p@800232A8+18], SP+0; fry V0,T0,T1 + * A1->[p@800232A8+1A], SP+4 + */ +void set_video2_settings_offset_18_1A(s16 arg0, s16 arg1) +{ + ptr_video_settings2->somethingW = arg0; + ptr_video_settings2->somethingH = arg1; +} + +/** + * 4FD8 700043D8 + * V0= [p@800232A8+18]; fry T6 + */ +s16 get_video2_settings_offset_18(void) +{ + return ptr_video_settings2->somethingW; +} + +/** + * 4FE8 700043E8 + * V0= [p@800232A8+1A]; fry T6 + */ +s16 get_video2_settings_offset_1A(void) +{ + return ptr_video_settings2->somethingH; +} + +/** + * 4FF8 700043F8 + * set video2 text clip width (A0) and height (A1); fries V0,T0,T1 + * A0->[p@800232A8+4], SP+0 + * A1->[p@800232A8+6], SP+4 + */ +void set_video2_text_clip_size(s16 txtClipW, s16 txtClipH) { + ptr_video_settings2->txtClipW = txtClipW; + ptr_video_settings2->txtClipH = txtClipH; +} + +/** + * 501C 7000441C + * V0= video2 text clip width [p@800232A8+4]; fry T6 + */ +s16 get_video2_settings_txtClipW(void) { + return ptr_video_settings2->txtClipW; +} + +/** + * 502C 7000442C + * V0= video2 text clip height [p@800232A8+6]; fry T6 + */ +s16 get_video2_settings_txtClipH(void) { + return ptr_video_settings2->txtClipH; +} + +/** + * 503C 7000443C + * set video2 width (A0) and height (A1) + */ +#ifdef NONMATCHING +void set_video2_width_height(short width,short height) { + ptr_video_settings2->width = width; + ptr_video_settings2->height = height; + set_BONDdata_screensize(ptr_video_settings2->width,ptr_video_settings2->height); + sub_GAME_7F077C5C(); + return; +} +#else +GLOBAL_ASM( +.text +glabel set_video2_width_height +/* 00503C 7000443C 3C038002 */ lui $v1, %hi(ptr_video_settings2) +/* 005040 70004440 246332A8 */ addiu $v1, %lo(ptr_video_settings2) # addiu $v1, $v1, 0x32a8 +/* 005044 70004444 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 005048 70004448 8C680000 */ lw $t0, ($v1) +/* 00504C 7000444C AFBF0014 */ sw $ra, 0x14($sp) +/* 005050 70004450 AFA40018 */ sw $a0, 0x18($sp) +/* 005054 70004454 AFA5001C */ sw $a1, 0x1c($sp) +/* 005058 70004458 A504001C */ sh $a0, 0x1c($t0) +/* 00505C 7000445C 8C690000 */ lw $t1, ($v1) +/* 005060 70004460 A525001E */ sh $a1, 0x1e($t1) +/* 005064 70004464 8C620000 */ lw $v0, ($v1) +/* 005068 70004468 844A001C */ lh $t2, 0x1c($v0) +/* 00506C 7000446C 844B001E */ lh $t3, 0x1e($v0) +/* 005070 70004470 448A2000 */ mtc1 $t2, $f4 +/* 005074 70004474 448B3000 */ mtc1 $t3, $f6 +/* 005078 70004478 46802320 */ cvt.s.w $f12, $f4 +/* 00507C 7000447C 0FC1DEF6 */ jal set_BONDdata_screensize +/* 005080 70004480 468033A0 */ cvt.s.w $f14, $f6 +/* 005084 70004484 0FC1DF17 */ jal sub_GAME_7F077C5C +/* 005088 70004488 00000000 */ nop +/* 00508C 7000448C 8FBF0014 */ lw $ra, 0x14($sp) +/* 005090 70004490 27BD0018 */ addiu $sp, $sp, 0x18 +/* 005094 70004494 03E00008 */ jr $ra +/* 005098 70004498 00000000 */ nop +) +#endif + + + +/** + * 509C 7000449C + * V0= video2 lrx [p@800232A8+1C]; fry T6 + */ +s16 get_video2_settings_width(void) { + return ptr_video_settings2->width; +} + +/** + * 50AC 700044AC + * V0= video2 lry [p@800232A8+1E]; fry T6 + */ +s16 get_video2_settings_height(void) { + return ptr_video_settings2->height; +} + +/** + * 50BC 700044BC + * set video2 ulx (A0) and uly (A1) + */ +#ifdef NONMATCHING +void set_video2_ulx_uly(s16 ulx, s16 uly) +{ + ptr_video_settings2->ulx = ulx; + ptr_video_settings2->ulx = uly; + set_ulx_uly((f32) ptr_video_settings2->ulx, (f32) ptr_video_settings2->uly); +} +#else +GLOBAL_ASM( +.text +glabel set_video2_ulx_uly +/* 0050BC 700044BC 3C038002 */ lui $v1, %hi(ptr_video_settings2) +/* 0050C0 700044C0 246332A8 */ addiu $v1, %lo(ptr_video_settings2) # addiu $v1, $v1, 0x32a8 +/* 0050C4 700044C4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0050C8 700044C8 8C680000 */ lw $t0, ($v1) +/* 0050CC 700044CC AFBF0014 */ sw $ra, 0x14($sp) +/* 0050D0 700044D0 AFA40018 */ sw $a0, 0x18($sp) +/* 0050D4 700044D4 AFA5001C */ sw $a1, 0x1c($sp) +/* 0050D8 700044D8 A5040020 */ sh $a0, 0x20($t0) +/* 0050DC 700044DC 8C690000 */ lw $t1, ($v1) +/* 0050E0 700044E0 A5250022 */ sh $a1, 0x22($t1) +/* 0050E4 700044E4 8C620000 */ lw $v0, ($v1) +/* 0050E8 700044E8 844A0020 */ lh $t2, 0x20($v0) +/* 0050EC 700044EC 844B0022 */ lh $t3, 0x22($v0) +/* 0050F0 700044F0 448A2000 */ mtc1 $t2, $f4 +/* 0050F4 700044F4 448B3000 */ mtc1 $t3, $f6 +/* 0050F8 700044F8 46802320 */ cvt.s.w $f12, $f4 +/* 0050FC 700044FC 0FC1DF05 */ jal set_ulx_uly +/* 005100 70004500 468033A0 */ cvt.s.w $f14, $f6 +/* 005104 70004504 8FBF0014 */ lw $ra, 0x14($sp) +/* 005108 70004508 27BD0018 */ addiu $sp, $sp, 0x18 +/* 00510C 7000450C 03E00008 */ jr $ra +/* 005110 70004510 00000000 */ nop +) +#endif + + + +/** + * 5114 70004514 + * V0= video2 ulx [p@800232A8+20]; fry T6 + */ +s16 get_video2_settings_ulx(void) { + return ptr_video_settings2->ulx; +} + +/** + * 5124 70004524 + * V0= video2 uly [p@800232A8+22]; fry T6 + */ +s16 get_video2_settings_uly(void) { + return ptr_video_settings2->uly; +} + +/** + * 5134 70004534 + * A0->[p@800232A8+24]; fry T6 + */ +void set_video2_settings_offset_24(int param_1) { + ptr_video_settings2->anonymous_12 = param_1; +} + +/** + * 5144 70004544 + */ +#ifdef NONMATCHING +void setvideo_far(f32 arg0) +{ + ptr_video_settings2->far = arg0; + sub_GAME_7F077C30(ptr_video_settings2->aspect, ptr_video_settings2->far, ptr_video_settings2->scale); + sub_GAME_7F077C5C(); +} +#else +GLOBAL_ASM( +.text +glabel setvideo_far +/* 005144 70004544 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 005148 70004548 3C038002 */ lui $v1, %hi(ptr_video_settings2) +/* 00514C 7000454C 246332A8 */ addiu $v1, %lo(ptr_video_settings2) # addiu $v1, $v1, 0x32a8 +/* 005150 70004550 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 005154 70004554 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 005158 70004558 8C6E0000 */ lw $t6, ($v1) +/* 00515C 7000455C AFBF0014 */ sw $ra, 0x14($sp) +/* 005160 70004560 E5C40008 */ swc1 $f4, 8($t6) +/* 005164 70004564 8C620000 */ lw $v0, ($v1) +/* 005168 70004568 C44C0010 */ lwc1 $f12, 0x10($v0) +/* 00516C 7000456C C44E0008 */ lwc1 $f14, 8($v0) +/* 005170 70004570 0FC1DF0C */ jal sub_GAME_7F077C30 +/* 005174 70004574 8C46000C */ lw $a2, 0xc($v0) +/* 005178 70004578 0FC1DF17 */ jal sub_GAME_7F077C5C +/* 00517C 7000457C 00000000 */ nop +/* 005180 70004580 8FBF0014 */ lw $ra, 0x14($sp) +/* 005184 70004584 27BD0018 */ addiu $sp, $sp, 0x18 +/* 005188 70004588 03E00008 */ jr $ra +/* 00518C 7000458C 00000000 */ nop +) +#endif + + +/** + * 5190 70004590 + * F12->video2 page width [p@800232A8+C] and something else... + */ +#ifdef NONMATCHING +void video_related_21(f32 arg0) +{ + ptr_video_settings2->scale = arg0; + sub_GAME_7F077C30(ptr_video_settings2->aspect, ptr_video_settings2->far, ptr_video_settings2->scale); + sub_GAME_7F077C5C(); +} +#else +GLOBAL_ASM( +.text +glabel video_related_21 +/* 005190 70004590 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 005194 70004594 3C038002 */ lui $v1, %hi(ptr_video_settings2) +/* 005198 70004598 246332A8 */ addiu $v1, %lo(ptr_video_settings2) # addiu $v1, $v1, 0x32a8 +/* 00519C 7000459C E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0051A0 700045A0 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 0051A4 700045A4 8C6E0000 */ lw $t6, ($v1) +/* 0051A8 700045A8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0051AC 700045AC E5C4000C */ swc1 $f4, 0xc($t6) +/* 0051B0 700045B0 8C620000 */ lw $v0, ($v1) +/* 0051B4 700045B4 C44C0010 */ lwc1 $f12, 0x10($v0) +/* 0051B8 700045B8 C44E0008 */ lwc1 $f14, 8($v0) +/* 0051BC 700045BC 0FC1DF0C */ jal sub_GAME_7F077C30 +/* 0051C0 700045C0 8C46000C */ lw $a2, 0xc($v0) +/* 0051C4 700045C4 0FC1DF17 */ jal sub_GAME_7F077C5C +/* 0051C8 700045C8 00000000 */ nop +/* 0051CC 700045CC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0051D0 700045D0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0051D4 700045D4 03E00008 */ jr $ra +/* 0051D8 700045D8 00000000 */ nop +) +#endif + +/** + * 51DC 700045DC + * F0= [p@800232A8+8]; fry T6 + */ +f32 video_related_23(void) +{ + return ptr_video_settings2->far; +} + +/** + * 51EC 700045EC + */ +#ifdef NONMATCHING +void video_related_24(f32 arg0, f32 arg1) +{ + ptr_video_settings2->far = arg1; + ptr_video_settings2->scale = (f32) (arg0 / arg1); + sub_GAME_7F077C30(ptr_video_settings2->aspect, ptr_video_settings2->far, ptr_video_settings2->scale); + sub_GAME_7F077C5C(); +} +#else +GLOBAL_ASM( +.text +glabel video_related_24 +/* 0051EC 700045EC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0051F0 700045F0 3C038002 */ lui $v1, %hi(ptr_video_settings2) +/* 0051F4 700045F4 246332A8 */ addiu $v1, %lo(ptr_video_settings2) # addiu $v1, $v1, 0x32a8 +/* 0051F8 700045F8 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 0051FC 700045FC C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 005200 70004600 8C6E0000 */ lw $t6, ($v1) +/* 005204 70004604 AFBF0014 */ sw $ra, 0x14($sp) +/* 005208 70004608 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 00520C 7000460C E5C40008 */ swc1 $f4, 8($t6) +/* 005210 70004610 C7A8001C */ lwc1 $f8, 0x1c($sp) +/* 005214 70004614 C7A60018 */ lwc1 $f6, 0x18($sp) +/* 005218 70004618 8C6F0000 */ lw $t7, ($v1) +/* 00521C 7000461C 46083283 */ div.s $f10, $f6, $f8 +/* 005220 70004620 E5EA000C */ swc1 $f10, 0xc($t7) +/* 005224 70004624 8C620000 */ lw $v0, ($v1) +/* 005228 70004628 C44C0010 */ lwc1 $f12, 0x10($v0) +/* 00522C 7000462C C44E0008 */ lwc1 $f14, 8($v0) +/* 005230 70004630 0FC1DF0C */ jal sub_GAME_7F077C30 +/* 005234 70004634 8C46000C */ lw $a2, 0xc($v0) +/* 005238 70004638 0FC1DF17 */ jal sub_GAME_7F077C5C +/* 00523C 7000463C 00000000 */ nop +/* 005240 70004640 8FBF0014 */ lw $ra, 0x14($sp) +/* 005244 70004644 27BD0018 */ addiu $sp, $sp, 0x18 +/* 005248 70004648 03E00008 */ jr $ra +/* 00524C 7000464C 00000000 */ nop +) +#endif + +/** + * 5250 70004650 + */ +#ifdef NONMATCHING +void set_page_height(f32 arg0, f32 arg1) +{ + ptr_video_settings2->aspect = arg0; + ptr_video_settings2->unk14 = arg1; + sub_GAME_7F077C30(ptr_video_settings2->aspect, ptr_video_settings2->far, ptr_video_settings2->scale); + sub_GAME_7F077C5C(); +} +#else +GLOBAL_ASM( +.text +glabel set_page_height +/* 005250 70004650 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 005254 70004654 3C038002 */ lui $v1, %hi(ptr_video_settings2) +/* 005258 70004658 246332A8 */ addiu $v1, %lo(ptr_video_settings2) # addiu $v1, $v1, 0x32a8 +/* 00525C 7000465C E7AC0018 */ swc1 $f12, 0x18($sp) +/* 005260 70004660 C7A40018 */ lwc1 $f4, 0x18($sp) +/* 005264 70004664 8C6E0000 */ lw $t6, ($v1) +/* 005268 70004668 AFBF0014 */ sw $ra, 0x14($sp) +/* 00526C 7000466C E7AE001C */ swc1 $f14, 0x1c($sp) +/* 005270 70004670 E5C40010 */ swc1 $f4, 0x10($t6) +/* 005274 70004674 8C6F0000 */ lw $t7, ($v1) +/* 005278 70004678 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 00527C 7000467C E5E60014 */ swc1 $f6, 0x14($t7) +/* 005280 70004680 8C620000 */ lw $v0, ($v1) +/* 005284 70004684 C44C0010 */ lwc1 $f12, 0x10($v0) +/* 005288 70004688 C44E0008 */ lwc1 $f14, 8($v0) +/* 00528C 7000468C 0FC1DF0C */ jal sub_GAME_7F077C30 +/* 005290 70004690 8C46000C */ lw $a2, 0xc($v0) +/* 005294 70004694 0FC1DF17 */ jal sub_GAME_7F077C5C +/* 005298 70004698 00000000 */ nop +/* 00529C 7000469C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0052A0 700046A0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0052A4 700046A4 03E00008 */ jr $ra +/* 0052A8 700046A8 00000000 */ nop +) +#endif + +/** + * 52AC 700046AC + * copies [p@800232A8+10-14] to A0; fries V0,T6,T7,F4,F6 + */ +#ifdef NONMATCHING +void *video_related_27(void *arg0) +{ + arg0->unk0 = (f32) ptr_video_settings2->aspect; + arg0->unk4 = (f32) ptr_video_settings2->unk14; + return &ptr_video_settings2; +} +#else +GLOBAL_ASM( +.text +glabel video_related_27 +/* 0052AC 700046AC 3C028002 */ lui $v0, %hi(ptr_video_settings2) +/* 0052B0 700046B0 244232A8 */ addiu $v0, %lo(ptr_video_settings2) # addiu $v0, $v0, 0x32a8 +/* 0052B4 700046B4 8C4E0000 */ lw $t6, ($v0) +/* 0052B8 700046B8 C5C40010 */ lwc1 $f4, 0x10($t6) +/* 0052BC 700046BC E4840000 */ swc1 $f4, ($a0) +/* 0052C0 700046C0 8C4F0000 */ lw $t7, ($v0) +/* 0052C4 700046C4 C5E60014 */ lwc1 $f6, 0x14($t7) +/* 0052C8 700046C8 03E00008 */ jr $ra +/* 0052CC 700046CC E4860004 */ swc1 $f6, 4($a0) +) +#endif + +/** + * 52D0 700046D0 + * setfillcolour(&A0,A1,A2,A3); generates a setfillcolour op + * mode determined by flag at 800232AC: 0=32bit, 1=16bit + * accepts: A0=p->display list target, A1=red, A2=green, A3=blue + * returns: V0=updated display list target (A0 also updated) + * fries: V1,A0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 + */ +#ifdef NONMATCHING +s32 set_setfillcolor(void *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + s32 temp_t5; + + if (coloroutputmode != 0) + { + temp_t5 = ((((arg1 << 8) & 0xf800) | ((arg2 * 8) & 0x7c0)) | ((arg3 >> 2) & 0x3e)) | 1; + arg0->unk0 = 0xf7000000; + arg0->unk4 = (s32) ((temp_t5 << 0x10) | temp_t5); + return arg0 + 8; + } + arg0->unk4 = (s32) ((((arg1 << 0x18) | (arg2 << 0x10)) | (arg3 << 8)) | 0xff); + arg0->unk0 = 0xf7000000; + return arg0 + 8; +} +#else +GLOBAL_ASM( +.text +glabel set_setfillcolor +/* 0052D0 700046D0 3C0E8002 */ lui $t6, %hi(coloroutputmode) +/* 0052D4 700046D4 8DCE32AC */ lw $t6, %lo(coloroutputmode)($t6) +/* 0052D8 700046D8 00801025 */ move $v0, $a0 +/* 0052DC 700046DC 3C18F700 */ lui $t8, 0xf700 +/* 0052E0 700046E0 11C00013 */ beqz $t6, .L70004730 +/* 0052E4 700046E4 00054600 */ sll $t0, $a1, 0x18 +/* 0052E8 700046E8 0005C200 */ sll $t8, $a1, 8 +/* 0052EC 700046EC 000640C0 */ sll $t0, $a2, 3 +/* 0052F0 700046F0 310907C0 */ andi $t1, $t0, 0x7c0 +/* 0052F4 700046F4 3319F800 */ andi $t9, $t8, 0xf800 +/* 0052F8 700046F8 00075883 */ sra $t3, $a3, 2 +/* 0052FC 700046FC 316C003E */ andi $t4, $t3, 0x3e +/* 005300 70004700 03295025 */ or $t2, $t9, $t1 +/* 005304 70004704 014C1825 */ or $v1, $t2, $t4 +/* 005308 70004708 346D0001 */ ori $t5, $v1, 1 +/* 00530C 7000470C 00801025 */ move $v0, $a0 +/* 005310 70004710 3C0FF700 */ lui $t7, 0xf700 +/* 005314 70004714 AC4F0000 */ sw $t7, ($v0) +/* 005318 70004718 000D7400 */ sll $t6, $t5, 0x10 +/* 00531C 7000471C 01CD7825 */ or $t7, $t6, $t5 +/* 005320 70004720 AC4F0004 */ sw $t7, 4($v0) +/* 005324 70004724 24840008 */ addiu $a0, $a0, 8 +/* 005328 70004728 03E00008 */ jr $ra +/* 00532C 7000472C 00801025 */ move $v0, $a0 + +.L70004730: +/* 005330 70004730 0006CC00 */ sll $t9, $a2, 0x10 +/* 005334 70004734 01194825 */ or $t1, $t0, $t9 +/* 005338 70004738 00075A00 */ sll $t3, $a3, 8 +/* 00533C 7000473C 012B5025 */ or $t2, $t1, $t3 +/* 005340 70004740 354C00FF */ ori $t4, $t2, 0xff +/* 005344 70004744 AC4C0004 */ sw $t4, 4($v0) +/* 005348 70004748 24840008 */ addiu $a0, $a0, 8 +/* 00534C 7000474C AC580000 */ sw $t8, ($v0) +/* 005350 70004750 03E00008 */ jr $ra +/* 005354 70004754 00801025 */ move $v0, $a0 +) +#endif + +/** + * 5358 70004758 + * image capture routine, jpeg 16bit colour + */ +#ifdef NONMATCHING +void indy_grab_jpg_16bit(void) +{ + char iFileName[256]; + u32 iFileSize; + + while( 1 ) { + sprintf(&iFileName,"grab.%d.jpeg",jpg_16bit_grabnum); + if (check_file_found_on_indy(&iFileName,&iFileSize) == 0) break; + jpg_16bit_grabnum++; + } + sprintf(&iFileName, "grab.%d.temp.uix", jpg_16bit_grabnum); + indy_send_capture_data(&iFileName, ptr_video_settings2->frameb, (get_video2_settings_txtClipH() * get_video2_settings_txtClipW() * 2)); + sprintf(&iFileName, "uix2pix grab.%d.temp.uix", jpg_16bit_grabnum); + response_from_command_string(&iFileName); + sprintf(&iFileName, "fromalias grab.%d.temp.pix grab.%d.temp.rgb", jpg_16bit_grabnum, jpg_16bit_grabnum); + response_from_command_string(&iFileName); + sprintf(&iFileName, "imgcopy -fjfif grab.%d.temp.rgb grab.%d.jpeg", jpg_16bit_grabnum, jpg_16bit_grabnum); + response_from_command_string(&iFileName); + sprintf(&iFileName, "rm grab.%d.temp.uix grab.%d.temp.pix grab.%d.temp.rgb", jpg_16bit_grabnum, jpg_16bit_grabnum); + response_from_command_string(&iFileName); + sprintf(&iFileName, "imgview grab.%d.jpeg", jpg_16bit_grabnum); + response_from_command_string(&iFileName); +} +#else +const char aGrab_D_jpeg_1[] = "grab.%d.jpeg"; +const char aGrab_D_temp_uix[] = "grab.%d.temp.uix"; +const char aUix2pixGrab_D_temp_uix[] = "uix2pix grab.%d.temp.uix"; +const char aFromaliasGrab_D_temp_pixGrab_D_tem[] = "fromalias grab.%d.temp.pix grab.%d.temp.rgb"; +const char aImgcopyFjfifGrab_D_temp_rgbGrab_D_[] = "imgcopy -fjfif grab.%d.temp.rgb grab.%d.jpeg"; +const char aRmGrab_D_temp_uixGrab_D_temp_pixGr[] = "rm grab.%d.temp.uix grab.%d.temp.pix grab.%d.temp.rgb"; +const char aImgviewGrab_D_jpeg[] = "imgview grab.%d.jpeg"; +GLOBAL_ASM( +.text +glabel indy_grab_jpg_16bit +/* 005358 70004758 27BDFEC8 */ addiu $sp, $sp, -0x138 +/* 00535C 7000475C AFB10024 */ sw $s1, 0x24($sp) +/* 005360 70004760 AFB20028 */ sw $s2, 0x28($sp) +/* 005364 70004764 AFB00020 */ sw $s0, 0x20($sp) +/* 005368 70004768 3C118003 */ lui $s1, %hi(aGrab_D_jpeg_1) +/* 00536C 7000476C AFBF002C */ sw $ra, 0x2c($sp) +/* 005370 70004770 26318490 */ addiu $s1, %lo(aGrab_D_jpeg_1) # addiu $s1, $s1, -0x7b70 +/* 005374 70004774 27B00038 */ addiu $s0, $sp, 0x38 +/* 005378 70004778 27B20034 */ addiu $s2, $sp, 0x34 +.L7000477C: +/* 00537C 7000477C 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) +/* 005380 70004780 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) +/* 005384 70004784 02002025 */ move $a0, $s0 +/* 005388 70004788 0C002B25 */ jal sprintf +/* 00538C 7000478C 02202825 */ move $a1, $s1 +/* 005390 70004790 02002025 */ move $a0, $s0 +/* 005394 70004794 0FC34026 */ jal check_file_found_on_indy +/* 005398 70004798 02402825 */ move $a1, $s2 +/* 00539C 7000479C 10400006 */ beqz $v0, .L700047B8 +/* 0053A0 700047A0 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) +/* 0053A4 700047A4 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) +/* 0053A8 700047A8 3C018002 */ lui $at, %hi(jpg_16bit_grabnum) +/* 0053AC 700047AC 24C60001 */ addiu $a2, $a2, 1 +/* 0053B0 700047B0 1000FFF2 */ b .L7000477C +/* 0053B4 700047B4 AC2632C4 */ sw $a2, %lo(jpg_16bit_grabnum)($at) +.L700047B8: +/* 0053B8 700047B8 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) +/* 0053BC 700047BC 3C058003 */ lui $a1, %hi(aGrab_D_temp_uix) +/* 0053C0 700047C0 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) +/* 0053C4 700047C4 24A584A0 */ addiu $a1, %lo(aGrab_D_temp_uix) # addiu $a1, $a1, -0x7b60 +/* 0053C8 700047C8 0C002B25 */ jal sprintf +/* 0053CC 700047CC 02002025 */ move $a0, $s0 +/* 0053D0 700047D0 0C001107 */ jal get_video2_settings_txtClipW +/* 0053D4 700047D4 00000000 */ nop +/* 0053D8 700047D8 00028C00 */ sll $s1, $v0, 0x10 +/* 0053DC 700047DC 00117403 */ sra $t6, $s1, 0x10 +/* 0053E0 700047E0 0C00110B */ jal get_video2_settings_txtClipH +/* 0053E4 700047E4 01C08825 */ move $s1, $t6 +/* 0053E8 700047E8 00510019 */ multu $v0, $s1 +/* 0053EC 700047EC 3C0F8002 */ lui $t7, %hi(ptr_video_settings2) +/* 0053F0 700047F0 8DEF32A8 */ lw $t7, %lo(ptr_video_settings2)($t7) +/* 0053F4 700047F4 02002025 */ move $a0, $s0 +/* 0053F8 700047F8 8DE50028 */ lw $a1, 0x28($t7) +/* 0053FC 700047FC 00003012 */ mflo $a2 +/* 005400 70004800 0006C040 */ sll $t8, $a2, 1 +/* 005404 70004804 0FC33FF8 */ jal indy_send_capture_data +/* 005408 70004808 03003025 */ move $a2, $t8 +/* 00540C 7000480C 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) +/* 005410 70004810 3C058003 */ lui $a1, %hi(aUix2pixGrab_D_temp_uix) +/* 005414 70004814 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) +/* 005418 70004818 24A584B4 */ addiu $a1, %lo(aUix2pixGrab_D_temp_uix) # addiu $a1, $a1, -0x7b4c +/* 00541C 7000481C 0C002B25 */ jal sprintf +/* 005420 70004820 02002025 */ move $a0, $s0 +/* 005424 70004824 0FC34038 */ jal response_from_command_string +/* 005428 70004828 02002025 */ move $a0, $s0 +/* 00542C 7000482C 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) +/* 005430 70004830 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) +/* 005434 70004834 3C058003 */ lui $a1, %hi(aFromaliasGrab_D_temp_pixGrab_D_tem) +/* 005438 70004838 24A584D0 */ addiu $a1, %lo(aFromaliasGrab_D_temp_pixGrab_D_tem) # addiu $a1, $a1, -0x7b30 +/* 00543C 7000483C 02002025 */ move $a0, $s0 +/* 005440 70004840 0C002B25 */ jal sprintf +/* 005444 70004844 00C03825 */ move $a3, $a2 +/* 005448 70004848 0FC34038 */ jal response_from_command_string +/* 00544C 7000484C 02002025 */ move $a0, $s0 +/* 005450 70004850 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) +/* 005454 70004854 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) +/* 005458 70004858 3C058003 */ lui $a1, %hi(aImgcopyFjfifGrab_D_temp_rgbGrab_D_) +/* 00545C 7000485C 24A584FC */ addiu $a1, %lo(aImgcopyFjfifGrab_D_temp_rgbGrab_D_) # addiu $a1, $a1, -0x7b04 +/* 005460 70004860 02002025 */ move $a0, $s0 +/* 005464 70004864 0C002B25 */ jal sprintf +/* 005468 70004868 00C03825 */ move $a3, $a2 +/* 00546C 7000486C 0FC34038 */ jal response_from_command_string +/* 005470 70004870 02002025 */ move $a0, $s0 +/* 005474 70004874 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) +/* 005478 70004878 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) +/* 00547C 7000487C 3C058003 */ lui $a1, %hi(aRmGrab_D_temp_uixGrab_D_temp_pixGr) +/* 005480 70004880 24A5852C */ addiu $a1, %lo(aRmGrab_D_temp_uixGrab_D_temp_pixGr) # addiu $a1, $a1, -0x7ad4 +/* 005484 70004884 02002025 */ move $a0, $s0 +/* 005488 70004888 00C03825 */ move $a3, $a2 +/* 00548C 7000488C 0C002B25 */ jal sprintf +/* 005490 70004890 AFA60010 */ sw $a2, 0x10($sp) +/* 005494 70004894 0FC34038 */ jal response_from_command_string +/* 005498 70004898 02002025 */ move $a0, $s0 +/* 00549C 7000489C 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) +/* 0054A0 700048A0 3C058003 */ lui $a1, %hi(aImgviewGrab_D_jpeg) +/* 0054A4 700048A4 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) +/* 0054A8 700048A8 24A58564 */ addiu $a1, %lo(aImgviewGrab_D_jpeg) # addiu $a1, $a1, -0x7a9c +/* 0054AC 700048AC 0C002B25 */ jal sprintf +/* 0054B0 700048B0 02002025 */ move $a0, $s0 +/* 0054B4 700048B4 0FC34038 */ jal response_from_command_string +/* 0054B8 700048B8 02002025 */ move $a0, $s0 +/* 0054BC 700048BC 8FBF002C */ lw $ra, 0x2c($sp) +/* 0054C0 700048C0 8FB00020 */ lw $s0, 0x20($sp) +/* 0054C4 700048C4 8FB10024 */ lw $s1, 0x24($sp) +/* 0054C8 700048C8 8FB20028 */ lw $s2, 0x28($sp) +/* 0054CC 700048CC 03E00008 */ jr $ra +/* 0054D0 700048D0 27BD0138 */ addiu $sp, $sp, 0x138 +) +#endif + +/** + * 54D4 700048D4 + * image capture routine, jpeg 32bit colour + */ +#ifdef NONMATCHING +void indy_grab_jpg_32bit(void) +{ + char iFileName [256]; + ? sp34; + +loop_1: + sprintf(&iFileName, "grab.%d.jpeg", jpg_32bit_grabnum); + if (check_file_found_on_indy(&iFileName, &sp34) != 0) + { + jpg_32bit_grabnum = (s32) (jpg_32bit_grabnum + 1); + goto loop_1; + } + sprintf(&iFileName, "grab.%d.temp.Uix", jpg_32bit_grabnum); + indy_send_capture_data(&iFileName, &cfb_16_a, (get_video2_settings_txtClipH() * ((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10)) * 4); + sprintf(&iFileName, "Uix2pix -xs%d grab.%d.temp.Uix", get_video2_settings_txtClipW(), jpg_32bit_grabnum); + response_from_command_string(&iFileName); + sprintf(&iFileName, "fromalias grab.%d.temp.pix grab.%d.temp.rgb", jpg_32bit_grabnum, jpg_32bit_grabnum); + response_from_command_string(&iFileName); + sprintf(&iFileName, "imgcopy -fjfif grab.%d.temp.rgb grab.%d.jpeg", jpg_32bit_grabnum, jpg_32bit_grabnum); + response_from_command_string(&iFileName); + sprintf(&iFileName, "rm grab.%d.temp.Uix grab.%d.temp.pix grab.%d.temp.rgb", jpg_32bit_grabnum, jpg_32bit_grabnum); + response_from_command_string(&iFileName); + sprintf(&iFileName, "imgview grab.%d.jpeg", jpg_32bit_grabnum); + response_from_command_string(&iFileName); +} +#else +const char aGrab_D_jpeg[] = "grab.%d.jpeg"; +const char aGrab_D_temp_uix_0[] = "grab.%d.temp.Uix"; +const char aUix2pixXsDGrab_D_temp_uix[] = "Uix2pix -xs%d grab.%d.temp.Uix"; +const char aFromaliasGrab_D_temp_pixGrab_D_t_0[] = "fromalias grab.%d.temp.pix grab.%d.temp.rgb"; +const char aImgcopyFjfifGrab_D_temp_rgbGrab__0[] = "imgcopy -fjfif grab.%d.temp.rgb grab.%d.jpeg"; +const char aRmGrab_D_temp_uixGrab_D_temp_pix_0[] = "rm grab.%d.temp.Uix grab.%d.temp.pix grab.%d.temp.rgb"; +const char aImgviewGrab_D_jpeg_0[] = "imgview grab.%d.jpeg"; +GLOBAL_ASM( +.text +glabel indy_grab_jpg_32bit +/* 0054D4 700048D4 27BDFEC8 */ addiu $sp, $sp, -0x138 +/* 0054D8 700048D8 AFB10020 */ sw $s1, 0x20($sp) +/* 0054DC 700048DC AFB20024 */ sw $s2, 0x24($sp) +/* 0054E0 700048E0 AFB0001C */ sw $s0, 0x1c($sp) +/* 0054E4 700048E4 3C118003 */ lui $s1, %hi(aGrab_D_jpeg) +/* 0054E8 700048E8 AFBF002C */ sw $ra, 0x2c($sp) +/* 0054EC 700048EC AFB30028 */ sw $s3, 0x28($sp) +/* 0054F0 700048F0 2631857C */ addiu $s1, %lo(aGrab_D_jpeg) # addiu $s1, $s1, -0x7a84 +/* 0054F4 700048F4 27B00038 */ addiu $s0, $sp, 0x38 +/* 0054F8 700048F8 27B20034 */ addiu $s2, $sp, 0x34 +.L700048FC: +/* 0054FC 700048FC 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) +/* 005500 70004900 8E6632C8 */ lw $a2, %lo(jpg_32bit_grabnum)($s3) +/* 005504 70004904 02002025 */ move $a0, $s0 +/* 005508 70004908 0C002B25 */ jal sprintf +/* 00550C 7000490C 02202825 */ move $a1, $s1 +/* 005510 70004910 02002025 */ move $a0, $s0 +/* 005514 70004914 0FC34026 */ jal check_file_found_on_indy +/* 005518 70004918 02402825 */ move $a1, $s2 +/* 00551C 7000491C 10400006 */ beqz $v0, .L70004938 +/* 005520 70004920 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) +/* 005524 70004924 8E7332C8 */ lw $s3, %lo(jpg_32bit_grabnum)($s3) +/* 005528 70004928 3C018002 */ lui $at, %hi(jpg_32bit_grabnum) +/* 00552C 7000492C 26730001 */ addiu $s3, $s3, 1 +/* 005530 70004930 1000FFF2 */ b .L700048FC +/* 005534 70004934 AC3332C8 */ sw $s3, %lo(jpg_32bit_grabnum)($at) +.L70004938: +/* 005538 70004938 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) +/* 00553C 7000493C 3C058003 */ lui $a1, %hi(aGrab_D_temp_uix_0) +/* 005540 70004940 8E6632C8 */ lw $a2, %lo(jpg_32bit_grabnum)($s3) +/* 005544 70004944 24A5858C */ addiu $a1, %lo(aGrab_D_temp_uix_0) # addiu $a1, $a1, -0x7a74 +/* 005548 70004948 0C002B25 */ jal sprintf +/* 00554C 7000494C 02002025 */ move $a0, $s0 +/* 005550 70004950 0C001107 */ jal get_video2_settings_txtClipW +/* 005554 70004954 00000000 */ nop +/* 005558 70004958 00028C00 */ sll $s1, $v0, 0x10 +/* 00555C 7000495C 00117403 */ sra $t6, $s1, 0x10 +/* 005560 70004960 0C00110B */ jal get_video2_settings_txtClipH +/* 005564 70004964 01C08825 */ move $s1, $t6 +/* 005568 70004968 00510019 */ multu $v0, $s1 +/* 00556C 7000496C 3C05803B */ lui $a1, %hi(cfb_16_a) # $a1, 0x803b +/* 005570 70004970 24A55000 */ addiu $a1, %lo(cfb_16_a) # addiu $a1, $a1, 0x5000 +/* 005574 70004974 02002025 */ move $a0, $s0 +/* 005578 70004978 00003012 */ mflo $a2 +/* 00557C 7000497C 00067880 */ sll $t7, $a2, 2 +/* 005580 70004980 0FC33FF8 */ jal indy_send_capture_data +/* 005584 70004984 01E03025 */ move $a2, $t7 +/* 005588 70004988 0C001107 */ jal get_video2_settings_txtClipW +/* 00558C 7000498C 00000000 */ nop +/* 005590 70004990 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) +/* 005594 70004994 3C058003 */ lui $a1, %hi(aUix2pixXsDGrab_D_temp_uix) +/* 005598 70004998 24A585A0 */ addiu $a1, %lo(aUix2pixXsDGrab_D_temp_uix) # addiu $a1, $a1, -0x7a60 +/* 00559C 7000499C 8E6732C8 */ lw $a3, %lo(jpg_32bit_grabnum)($s3) +/* 0055A0 700049A0 02002025 */ move $a0, $s0 +/* 0055A4 700049A4 0C002B25 */ jal sprintf +/* 0055A8 700049A8 00403025 */ move $a2, $v0 +/* 0055AC 700049AC 0FC34038 */ jal response_from_command_string +/* 0055B0 700049B0 02002025 */ move $a0, $s0 +/* 0055B4 700049B4 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) +/* 0055B8 700049B8 8E6732C8 */ lw $a3, %lo(jpg_32bit_grabnum)($s3) +/* 0055BC 700049BC 3C058003 */ lui $a1, %hi(aFromaliasGrab_D_temp_pixGrab_D_t_0) +/* 0055C0 700049C0 24A585C0 */ addiu $a1, %lo(aFromaliasGrab_D_temp_pixGrab_D_t_0) # addiu $a1, $a1, -0x7a40 +/* 0055C4 700049C4 02002025 */ move $a0, $s0 +/* 0055C8 700049C8 0C002B25 */ jal sprintf +/* 0055CC 700049CC 00E03025 */ move $a2, $a3 +/* 0055D0 700049D0 0FC34038 */ jal response_from_command_string +/* 0055D4 700049D4 02002025 */ move $a0, $s0 +/* 0055D8 700049D8 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) +/* 0055DC 700049DC 8E6732C8 */ lw $a3, %lo(jpg_32bit_grabnum)($s3) +/* 0055E0 700049E0 3C058003 */ lui $a1, %hi(aImgcopyFjfifGrab_D_temp_rgbGrab__0) +/* 0055E4 700049E4 24A585EC */ addiu $a1, %lo(aImgcopyFjfifGrab_D_temp_rgbGrab__0) # addiu $a1, $a1, -0x7a14 +/* 0055E8 700049E8 02002025 */ move $a0, $s0 +/* 0055EC 700049EC 0C002B25 */ jal sprintf +/* 0055F0 700049F0 00E03025 */ move $a2, $a3 +/* 0055F4 700049F4 0FC34038 */ jal response_from_command_string +/* 0055F8 700049F8 02002025 */ move $a0, $s0 +/* 0055FC 700049FC 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) +/* 005600 70004A00 8E6732C8 */ lw $a3, %lo(jpg_32bit_grabnum)($s3) +/* 005604 70004A04 3C058003 */ lui $a1, %hi(aRmGrab_D_temp_uixGrab_D_temp_pix_0) +/* 005608 70004A08 24A5861C */ addiu $a1, %lo(aRmGrab_D_temp_uixGrab_D_temp_pix_0) # addiu $a1, $a1, -0x79e4 +/* 00560C 70004A0C 02002025 */ move $a0, $s0 +/* 005610 70004A10 00E03025 */ move $a2, $a3 +/* 005614 70004A14 0C002B25 */ jal sprintf +/* 005618 70004A18 AFA70010 */ sw $a3, 0x10($sp) +/* 00561C 70004A1C 0FC34038 */ jal response_from_command_string +/* 005620 70004A20 02002025 */ move $a0, $s0 +/* 005624 70004A24 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) +/* 005628 70004A28 3C058003 */ lui $a1, %hi(aImgviewGrab_D_jpeg_0) +/* 00562C 70004A2C 8E6632C8 */ lw $a2, %lo(jpg_32bit_grabnum)($s3) +/* 005630 70004A30 24A58654 */ addiu $a1, %lo(aImgviewGrab_D_jpeg_0) # addiu $a1, $a1, -0x79ac +/* 005634 70004A34 0C002B25 */ jal sprintf +/* 005638 70004A38 02002025 */ move $a0, $s0 +/* 00563C 70004A3C 0FC34038 */ jal response_from_command_string +/* 005640 70004A40 02002025 */ move $a0, $s0 +/* 005644 70004A44 8FBF002C */ lw $ra, 0x2c($sp) +/* 005648 70004A48 8FB0001C */ lw $s0, 0x1c($sp) +/* 00564C 70004A4C 8FB10020 */ lw $s1, 0x20($sp) +/* 005650 70004A50 8FB20024 */ lw $s2, 0x24($sp) +/* 005654 70004A54 8FB30028 */ lw $s3, 0x28($sp) +/* 005658 70004A58 03E00008 */ jr $ra +/* 00565C 70004A5C 27BD0138 */ addiu $sp, $sp, 0x138 +) +#endif + +/** + * 5660 70004A60 + * image capture routine, rgb 16bit colour + */ +#ifdef NONMATCHING +void indy_grab_rgb_16bit(void) +{ + ? sp30; + ? sp2C; + +loop_1: + sprintf(&sp30, "grab.%d.rgb", rgb_16bit_grabnum); + if (check_file_found_on_indy(&sp30, &sp2C) != 0) + { + rgb_16bit_grabnum = (s32) (rgb_16bit_grabnum + 1); + goto loop_1; + } + sprintf(&sp30, "grab.%d.temp.uix", rgb_16bit_grabnum); + indy_send_capture_data(&sp30, ptr_video_settings2->frameb, (get_video2_settings_txtClipH() * ((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10)) * 2); + sprintf(&sp30, "uix2pix grab.%d.temp.uix", rgb_16bit_grabnum); + response_from_command_string(&sp30); + sprintf(&sp30, "fromalias grab.%d.temp.pix grab.%d.rgb", rgb_16bit_grabnum, rgb_16bit_grabnum); + response_from_command_string(&sp30); + sprintf(&sp30, "rm grab.%d.temp.uix grab.%d.temp.pix", rgb_16bit_grabnum, rgb_16bit_grabnum); + response_from_command_string(&sp30); + sprintf(&sp30, "imgview grab.%d.rgb", rgb_16bit_grabnum); + response_from_command_string(&sp30); +} +#else +const char aGrab_D_rgb[] = "grab.%d.rgb"; +const char aGrab_D_temp_uix_1[] = "grab.%d.temp.uix"; +const char aUix2pixGrab_D_temp_uix_0[] = "uix2pix grab.%d.temp.uix"; +const char aFromaliasGrab_D_temp_pixGrab_D_rgb[] = "fromalias grab.%d.temp.pix grab.%d.rgb"; +const char aRmGrab_D_temp_uixGrab_D_temp_pix[] = "rm grab.%d.temp.uix grab.%d.temp.pix"; +const char aImgviewGrab_D_rgb[] = "imgview grab.%d.rgb"; +GLOBAL_ASM( +.text +glabel indy_grab_rgb_16bit +/* 005660 70004A60 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 005664 70004A64 AFB1001C */ sw $s1, 0x1c($sp) +/* 005668 70004A68 AFB20020 */ sw $s2, 0x20($sp) +/* 00566C 70004A6C AFB00018 */ sw $s0, 0x18($sp) +/* 005670 70004A70 3C118003 */ lui $s1, %hi(aGrab_D_rgb) +/* 005674 70004A74 AFBF0024 */ sw $ra, 0x24($sp) +/* 005678 70004A78 2631866C */ addiu $s1, %lo(aGrab_D_rgb) # addiu $s1, $s1, -0x7994 +/* 00567C 70004A7C 27B00030 */ addiu $s0, $sp, 0x30 +/* 005680 70004A80 27B2002C */ addiu $s2, $sp, 0x2c +.L70004A84: +/* 005684 70004A84 3C068002 */ lui $a2, %hi(rgb_16bit_grabnum) +/* 005688 70004A88 8CC632CC */ lw $a2, %lo(rgb_16bit_grabnum)($a2) +/* 00568C 70004A8C 02002025 */ move $a0, $s0 +/* 005690 70004A90 0C002B25 */ jal sprintf +/* 005694 70004A94 02202825 */ move $a1, $s1 +/* 005698 70004A98 02002025 */ move $a0, $s0 +/* 00569C 70004A9C 0FC34026 */ jal check_file_found_on_indy +/* 0056A0 70004AA0 02402825 */ move $a1, $s2 +/* 0056A4 70004AA4 10400006 */ beqz $v0, .L70004AC0 +/* 0056A8 70004AA8 3C068002 */ lui $a2, %hi(rgb_16bit_grabnum) +/* 0056AC 70004AAC 8CC632CC */ lw $a2, %lo(rgb_16bit_grabnum)($a2) +/* 0056B0 70004AB0 3C018002 */ lui $at, %hi(rgb_16bit_grabnum) +/* 0056B4 70004AB4 24C60001 */ addiu $a2, $a2, 1 +/* 0056B8 70004AB8 1000FFF2 */ b .L70004A84 +/* 0056BC 70004ABC AC2632CC */ sw $a2, %lo(rgb_16bit_grabnum)($at) +.L70004AC0: +/* 0056C0 70004AC0 3C068002 */ lui $a2, %hi(rgb_16bit_grabnum) +/* 0056C4 70004AC4 3C058003 */ lui $a1, %hi(aGrab_D_temp_uix_1) +/* 0056C8 70004AC8 8CC632CC */ lw $a2, %lo(rgb_16bit_grabnum)($a2) +/* 0056CC 70004ACC 24A58678 */ addiu $a1, %lo(aGrab_D_temp_uix_1) # addiu $a1, $a1, -0x7988 +/* 0056D0 70004AD0 0C002B25 */ jal sprintf +/* 0056D4 70004AD4 02002025 */ move $a0, $s0 +/* 0056D8 70004AD8 0C001107 */ jal get_video2_settings_txtClipW +/* 0056DC 70004ADC 00000000 */ nop +/* 0056E0 70004AE0 00028C00 */ sll $s1, $v0, 0x10 +/* 0056E4 70004AE4 00117403 */ sra $t6, $s1, 0x10 +/* 0056E8 70004AE8 0C00110B */ jal get_video2_settings_txtClipH +/* 0056EC 70004AEC 01C08825 */ move $s1, $t6 +/* 0056F0 70004AF0 00510019 */ multu $v0, $s1 +/* 0056F4 70004AF4 3C0F8002 */ lui $t7, %hi(ptr_video_settings2) +/* 0056F8 70004AF8 8DEF32A8 */ lw $t7, %lo(ptr_video_settings2)($t7) +/* 0056FC 70004AFC 02002025 */ move $a0, $s0 +/* 005700 70004B00 8DE50028 */ lw $a1, 0x28($t7) +/* 005704 70004B04 00003012 */ mflo $a2 +/* 005708 70004B08 0006C040 */ sll $t8, $a2, 1 +/* 00570C 70004B0C 0FC33FF8 */ jal indy_send_capture_data +/* 005710 70004B10 03003025 */ move $a2, $t8 +/* 005714 70004B14 3C068002 */ lui $a2, %hi(rgb_16bit_grabnum) +/* 005718 70004B18 3C058003 */ lui $a1, %hi(aUix2pixGrab_D_temp_uix_0) +/* 00571C 70004B1C 8CC632CC */ lw $a2, %lo(rgb_16bit_grabnum)($a2) +/* 005720 70004B20 24A5868C */ addiu $a1, %lo(aUix2pixGrab_D_temp_uix_0) # addiu $a1, $a1, -0x7974 +/* 005724 70004B24 0C002B25 */ jal sprintf +/* 005728 70004B28 02002025 */ move $a0, $s0 +/* 00572C 70004B2C 0FC34038 */ jal response_from_command_string +/* 005730 70004B30 02002025 */ move $a0, $s0 +/* 005734 70004B34 3C068002 */ lui $a2, %hi(rgb_16bit_grabnum) +/* 005738 70004B38 8CC632CC */ lw $a2, %lo(rgb_16bit_grabnum)($a2) +/* 00573C 70004B3C 3C058003 */ lui $a1, %hi(aFromaliasGrab_D_temp_pixGrab_D_rgb) +/* 005740 70004B40 24A586A8 */ addiu $a1, %lo(aFromaliasGrab_D_temp_pixGrab_D_rgb) # addiu $a1, $a1, -0x7958 +/* 005744 70004B44 02002025 */ move $a0, $s0 +/* 005748 70004B48 0C002B25 */ jal sprintf +/* 00574C 70004B4C 00C03825 */ move $a3, $a2 +/* 005750 70004B50 0FC34038 */ jal response_from_command_string +/* 005754 70004B54 02002025 */ move $a0, $s0 +/* 005758 70004B58 3C068002 */ lui $a2, %hi(rgb_16bit_grabnum) +/* 00575C 70004B5C 8CC632CC */ lw $a2, %lo(rgb_16bit_grabnum)($a2) +/* 005760 70004B60 3C058003 */ lui $a1, %hi(aRmGrab_D_temp_uixGrab_D_temp_pix) +/* 005764 70004B64 24A586D0 */ addiu $a1, %lo(aRmGrab_D_temp_uixGrab_D_temp_pix) # addiu $a1, $a1, -0x7930 +/* 005768 70004B68 02002025 */ move $a0, $s0 +/* 00576C 70004B6C 0C002B25 */ jal sprintf +/* 005770 70004B70 00C03825 */ move $a3, $a2 +/* 005774 70004B74 0FC34038 */ jal response_from_command_string +/* 005778 70004B78 02002025 */ move $a0, $s0 +/* 00577C 70004B7C 3C068002 */ lui $a2, %hi(rgb_16bit_grabnum) +/* 005780 70004B80 3C058003 */ lui $a1, %hi(aImgviewGrab_D_rgb) +/* 005784 70004B84 8CC632CC */ lw $a2, %lo(rgb_16bit_grabnum)($a2) +/* 005788 70004B88 24A586F8 */ addiu $a1, %lo(aImgviewGrab_D_rgb) # addiu $a1, $a1, -0x7908 +/* 00578C 70004B8C 0C002B25 */ jal sprintf +/* 005790 70004B90 02002025 */ move $a0, $s0 +/* 005794 70004B94 0FC34038 */ jal response_from_command_string +/* 005798 70004B98 02002025 */ move $a0, $s0 +/* 00579C 70004B9C 8FBF0024 */ lw $ra, 0x24($sp) +/* 0057A0 70004BA0 8FB00018 */ lw $s0, 0x18($sp) +/* 0057A4 70004BA4 8FB1001C */ lw $s1, 0x1c($sp) +/* 0057A8 70004BA8 8FB20020 */ lw $s2, 0x20($sp) +/* 0057AC 70004BAC 03E00008 */ jr $ra +/* 0057B0 70004BB0 27BD0130 */ addiu $sp, $sp, 0x130 +) +#endif + +/** + * 57B4 70004BB4 + * image capture routine, rgb 32bit colour + */ +#ifdef NONMATCHING +void indy_grab_rgb_32bit(void) +{ + ? sp30; + ? sp2C; + +loop_1: + sprintf(&sp30, "grab.%d.rgb", rgb_32bit_grabnum); + if (check_file_found_on_indy(&sp30, &sp2C) != 0) + { + rgb_32bit_grabnum = (s32) (rgb_32bit_grabnum + 1); + goto loop_1; + } + sprintf(&sp30, "grab.%d.temp.Uix", rgb_32bit_grabnum); + indy_send_capture_data(&sp30, &cfb_16_a, (get_video2_settings_txtClipH() * ((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10)) * 4); + sprintf(&sp30, "Uix2pix -xs%d grab.%d.temp.Uix", get_video2_settings_txtClipW(), rgb_32bit_grabnum); + response_from_command_string(&sp30); + sprintf(&sp30, "fromalias grab.%d.temp.pix grab.%d.rgb", rgb_32bit_grabnum, rgb_32bit_grabnum); + response_from_command_string(&sp30); + sprintf(&sp30, "rm grab.%d.temp.Uix grab.%d.temp.pix", rgb_32bit_grabnum, rgb_32bit_grabnum); + response_from_command_string(&sp30); + sprintf(&sp30, "imgview grab.%d.rgb", rgb_32bit_grabnum); + response_from_command_string(&sp30); +} +#else +const char aGrab_D_rgb_0[] = "grab.%d.rgb"; +const char aGrab_D_temp_uix_2[] = "grab.%d.temp.Uix"; +const char aUix2pixXsDGrab_D_temp_uix_0[] = "Uix2pix -xs%d grab.%d.temp.Uix"; +const char aFromaliasGrab_D_temp_pixGrab_D_r_0[] = "fromalias grab.%d.temp.pix grab.%d.rgb"; +const char aRmGrab_D_temp_uixGrab_D_temp_pix_1[] = "rm grab.%d.temp.Uix grab.%d.temp.pix"; +const char aImgviewGrab_D_rgb_0[] = "imgview grab.%d.rgb"; +GLOBAL_ASM( +.text +glabel indy_grab_rgb_32bit +/* 0057B4 70004BB4 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 0057B8 70004BB8 AFB10018 */ sw $s1, 0x18($sp) +/* 0057BC 70004BBC AFB2001C */ sw $s2, 0x1c($sp) +/* 0057C0 70004BC0 AFB00014 */ sw $s0, 0x14($sp) +/* 0057C4 70004BC4 3C118003 */ lui $s1, %hi(aGrab_D_rgb_0) +/* 0057C8 70004BC8 AFBF0024 */ sw $ra, 0x24($sp) +/* 0057CC 70004BCC AFB30020 */ sw $s3, 0x20($sp) +/* 0057D0 70004BD0 2631870C */ addiu $s1, %lo(aGrab_D_rgb_0) # addiu $s1, $s1, -0x78f4 +/* 0057D4 70004BD4 27B00030 */ addiu $s0, $sp, 0x30 +/* 0057D8 70004BD8 27B2002C */ addiu $s2, $sp, 0x2c +.L70004BDC: +/* 0057DC 70004BDC 3C138002 */ lui $s3, %hi(rgb_32bit_grabnum) +/* 0057E0 70004BE0 8E6632D0 */ lw $a2, %lo(rgb_32bit_grabnum)($s3) +/* 0057E4 70004BE4 02002025 */ move $a0, $s0 +/* 0057E8 70004BE8 0C002B25 */ jal sprintf +/* 0057EC 70004BEC 02202825 */ move $a1, $s1 +/* 0057F0 70004BF0 02002025 */ move $a0, $s0 +/* 0057F4 70004BF4 0FC34026 */ jal check_file_found_on_indy +/* 0057F8 70004BF8 02402825 */ move $a1, $s2 +/* 0057FC 70004BFC 10400006 */ beqz $v0, .L70004C18 +/* 005800 70004C00 3C138002 */ lui $s3, %hi(rgb_32bit_grabnum) +/* 005804 70004C04 8E7332D0 */ lw $s3, %lo(rgb_32bit_grabnum)($s3) +/* 005808 70004C08 3C018002 */ lui $at, %hi(rgb_32bit_grabnum) +/* 00580C 70004C0C 26730001 */ addiu $s3, $s3, 1 +/* 005810 70004C10 1000FFF2 */ b .L70004BDC +/* 005814 70004C14 AC3332D0 */ sw $s3, %lo(rgb_32bit_grabnum)($at) +.L70004C18: +/* 005818 70004C18 3C138002 */ lui $s3, %hi(rgb_32bit_grabnum) +/* 00581C 70004C1C 3C058003 */ lui $a1, %hi(aGrab_D_temp_uix_2) +/* 005820 70004C20 8E6632D0 */ lw $a2, %lo(rgb_32bit_grabnum)($s3) +/* 005824 70004C24 24A58718 */ addiu $a1, %lo(aGrab_D_temp_uix_2) # addiu $a1, $a1, -0x78e8 +/* 005828 70004C28 0C002B25 */ jal sprintf +/* 00582C 70004C2C 02002025 */ move $a0, $s0 +/* 005830 70004C30 0C001107 */ jal get_video2_settings_txtClipW +/* 005834 70004C34 00000000 */ nop +/* 005838 70004C38 00028C00 */ sll $s1, $v0, 0x10 +/* 00583C 70004C3C 00117403 */ sra $t6, $s1, 0x10 +/* 005840 70004C40 0C00110B */ jal get_video2_settings_txtClipH +/* 005844 70004C44 01C08825 */ move $s1, $t6 +/* 005848 70004C48 00510019 */ multu $v0, $s1 +/* 00584C 70004C4C 3C05803B */ lui $a1, %hi(cfb_16_a) # $a1, 0x803b +/* 005850 70004C50 24A55000 */ addiu $a1, %lo(cfb_16_a) # addiu $a1, $a1, 0x5000 +/* 005854 70004C54 02002025 */ move $a0, $s0 +/* 005858 70004C58 00003012 */ mflo $a2 +/* 00585C 70004C5C 00067880 */ sll $t7, $a2, 2 +/* 005860 70004C60 0FC33FF8 */ jal indy_send_capture_data +/* 005864 70004C64 01E03025 */ move $a2, $t7 +/* 005868 70004C68 0C001107 */ jal get_video2_settings_txtClipW +/* 00586C 70004C6C 00000000 */ nop +/* 005870 70004C70 3C138002 */ lui $s3, %hi(rgb_32bit_grabnum) +/* 005874 70004C74 3C058003 */ lui $a1, %hi(aUix2pixXsDGrab_D_temp_uix_0) +/* 005878 70004C78 24A5872C */ addiu $a1, %lo(aUix2pixXsDGrab_D_temp_uix_0) # addiu $a1, $a1, -0x78d4 +/* 00587C 70004C7C 8E6732D0 */ lw $a3, %lo(rgb_32bit_grabnum)($s3) +/* 005880 70004C80 02002025 */ move $a0, $s0 +/* 005884 70004C84 0C002B25 */ jal sprintf +/* 005888 70004C88 00403025 */ move $a2, $v0 +/* 00588C 70004C8C 0FC34038 */ jal response_from_command_string +/* 005890 70004C90 02002025 */ move $a0, $s0 +/* 005894 70004C94 3C138002 */ lui $s3, %hi(rgb_32bit_grabnum) +/* 005898 70004C98 8E6732D0 */ lw $a3, %lo(rgb_32bit_grabnum)($s3) +/* 00589C 70004C9C 3C058003 */ lui $a1, %hi(aFromaliasGrab_D_temp_pixGrab_D_r_0) +/* 0058A0 70004CA0 24A5874C */ addiu $a1, %lo(aFromaliasGrab_D_temp_pixGrab_D_r_0) # addiu $a1, $a1, -0x78b4 +/* 0058A4 70004CA4 02002025 */ move $a0, $s0 +/* 0058A8 70004CA8 0C002B25 */ jal sprintf +/* 0058AC 70004CAC 00E03025 */ move $a2, $a3 +/* 0058B0 70004CB0 0FC34038 */ jal response_from_command_string +/* 0058B4 70004CB4 02002025 */ move $a0, $s0 +/* 0058B8 70004CB8 3C138002 */ lui $s3, %hi(rgb_32bit_grabnum) +/* 0058BC 70004CBC 8E6732D0 */ lw $a3, %lo(rgb_32bit_grabnum)($s3) +/* 0058C0 70004CC0 3C058003 */ lui $a1, %hi(aRmGrab_D_temp_uixGrab_D_temp_pix_1) +/* 0058C4 70004CC4 24A58774 */ addiu $a1, %lo(aRmGrab_D_temp_uixGrab_D_temp_pix_1) # addiu $a1, $a1, -0x788c +/* 0058C8 70004CC8 02002025 */ move $a0, $s0 +/* 0058CC 70004CCC 0C002B25 */ jal sprintf +/* 0058D0 70004CD0 00E03025 */ move $a2, $a3 +/* 0058D4 70004CD4 0FC34038 */ jal response_from_command_string +/* 0058D8 70004CD8 02002025 */ move $a0, $s0 +/* 0058DC 70004CDC 3C138002 */ lui $s3, %hi(rgb_32bit_grabnum) +/* 0058E0 70004CE0 3C058003 */ lui $a1, %hi(aImgviewGrab_D_rgb_0) +/* 0058E4 70004CE4 8E6632D0 */ lw $a2, %lo(rgb_32bit_grabnum)($s3) +/* 0058E8 70004CE8 24A5879C */ addiu $a1, %lo(aImgviewGrab_D_rgb_0) # addiu $a1, $a1, -0x7864 +/* 0058EC 70004CEC 0C002B25 */ jal sprintf +/* 0058F0 70004CF0 02002025 */ move $a0, $s0 +/* 0058F4 70004CF4 0FC34038 */ jal response_from_command_string +/* 0058F8 70004CF8 02002025 */ move $a0, $s0 +/* 0058FC 70004CFC 8FBF0024 */ lw $ra, 0x24($sp) +/* 005900 70004D00 8FB00014 */ lw $s0, 0x14($sp) +/* 005904 70004D04 8FB10018 */ lw $s1, 0x18($sp) +/* 005908 70004D08 8FB2001C */ lw $s2, 0x1c($sp) +/* 00590C 70004D0C 8FB30020 */ lw $s3, 0x20($sp) +/* 005910 70004D10 03E00008 */ jr $ra +/* 005914 70004D14 27BD0130 */ addiu $sp, $sp, 0x130 +) +#endif diff --git a/src/video.h b/src/video.h new file mode 100644 index 0000000..1e65243 --- /dev/null +++ b/src/video.h @@ -0,0 +1,27 @@ +#ifndef _VIDEO_H_ +#define _VIDEO_H_ +#include "ultra64.h" + +typedef struct video_settings video_settings, *Pvideo_settings; + +struct video_settings { + int mode; + short txtClipW; + short txtClipH; + f32 far; + f32 scale; + f32 aspect; + f32 anonymous_6; + short somethingW; + short somethingH; + short width; + short height; + short ulx; + short uly; + int anonymous_12; + u8* frameb; +}; + +#endif + + diff --git a/tools/1172compress.sh b/tools/1172compress.sh new file mode 100644 index 0000000..9d0ba6e --- /dev/null +++ b/tools/1172compress.sh @@ -0,0 +1,7 @@ +#!/bin/bash +if [ ! -f header.tmp ]; then + echo -n -e \\x11\\x72 > header.tmp +fi +cat $1| tools/gzip --no-name --best | tail --bytes=+11 | head --bytes=-8 > $1.tmp +cat header.tmp $1.tmp > $2 +rm $1.tmp diff --git a/tools/RareZip.sh b/tools/RareZip.sh new file mode 100644 index 0000000..9fdf520 --- /dev/null +++ b/tools/RareZip.sh @@ -0,0 +1,37 @@ +#!/bin/bash +if [ $1 == '--decompress' ] +then + # Add the gZip Header to a new file using the name given in command + echo -n -e \\x1F\\x8B\\x08\\x00\\x00\\x00\\x00\\x00\\x02\\x03 > $2 + # Add the contents of the compressed file minus the 1172 to the new file + cat $2Z | tail --bytes=+3 >> $2 + # copy the new file over the old compressed file + cat $2 > $2Z + # decompress the Z file to the filename given in the command + cat $2Z | gzip --decompress > $2 + # remove the compressed Z file + rm $2Z + echo Successfully Decompressed $2 + +elif [ $1 == '-?' ] || [ $1 == '-help' ] +then + echo Compress File and remove extra Data + echo Usage: + echo -e "\t RareZip [--decompress] File" + echo -e "\t Example:" + echo -e "\t\t RareZip Pppk" + echo -e "\t Output:" + echo -e "\t\t PppkZ (compressed)" + echo -e "\t Example:" + echo -e "\t\t RareZip --decompress Pppk" + echo -e "\t Output:" + echo -e "\t\t Pppk (uncompressed)" +else + # Add 1172 header to new Z file + echo -n -e \\x11\\x72 > $1Z + # Compress file given in command and trim then append to 1172 Z file + gzip --no-name -c $1 | tail --bytes=+11 | head --bytes=-8 >> $1Z + # Remove original file, can be recovered using decompress + rm $1 + echo Successfully Compressed $1 +fi diff --git a/tools/SGIImageViewer.exe b/tools/SGIImageViewer.exe new file mode 100644 index 0000000..a4c5490 Binary files /dev/null and b/tools/SGIImageViewer.exe differ diff --git a/tools/SGIImgView.png b/tools/SGIImgView.png new file mode 100644 index 0000000..f5e5967 Binary files /dev/null and b/tools/SGIImgView.png differ diff --git a/tools/armips b/tools/armips new file mode 100644 index 0000000..1a43a03 Binary files /dev/null and b/tools/armips differ diff --git a/tools/asmpreproc/asm-processor.py b/tools/asmpreproc/asm-processor.py new file mode 100644 index 0000000..cbfd6b8 --- /dev/null +++ b/tools/asmpreproc/asm-processor.py @@ -0,0 +1,806 @@ +#!/usr/bin/env python3 +import argparse +import tempfile +import struct +import copy +import sys +import re +import os + +EI_NIDENT = 16 +EI_CLASS = 4 +EI_DATA = 5 +EI_VERSION = 6 +EI_OSABI = 7 +EI_ABIVERSION = 8 +STN_UNDEF = 0 + +SHN_UNDEF = 0 +SHN_ABS = 0xfff1 +SHN_COMMON = 0xfff2 +SHN_XINDEX = 0xffff +SHN_LORESERVE = 0xff00 + +STT_NOTYPE = 0 +STT_OBJECT = 1 +STT_FUNC = 2 +STT_SECTION = 3 +STT_FILE = 4 +STT_COMMON = 5 +STT_TLS = 6 + +STB_LOCAL = 0 +STB_GLOBAL = 1 +STB_WEAK = 2 + +STV_DEFAULT = 0 +STV_INTERNAL = 1 +STV_HIDDEN = 2 +STV_PROTECTED = 3 + +SHT_NULL = 0 +SHT_PROGBITS = 1 +SHT_SYMTAB = 2 +SHT_STRTAB = 3 +SHT_RELA = 4 +SHT_HASH = 5 +SHT_DYNAMIC = 6 +SHT_NOTE = 7 +SHT_NOBITS = 8 +SHT_REL = 9 +SHT_SHLIB = 10 +SHT_DYNSYM = 11 +SHT_INIT_ARRAY = 14 +SHT_FINI_ARRAY = 15 +SHT_PREINIT_ARRAY = 16 +SHT_GROUP = 17 +SHT_SYMTAB_SHNDX = 18 +SHT_MIPS_GPTAB = 0x70000003 +SHT_MIPS_DEBUG = 0x70000005 +SHT_MIPS_REGINFO = 0x70000006 +SHT_MIPS_OPTIONS = 0x7000000d + +SHF_WRITE = 0x1 +SHF_ALLOC = 0x2 +SHF_EXECINSTR = 0x4 +SHF_MERGE = 0x10 +SHF_STRINGS = 0x20 +SHF_INFO_LINK = 0x40 +SHF_LINK_ORDER = 0x80 +SHF_OS_NONCONFORMING = 0x100 +SHF_GROUP = 0x200 +SHF_TLS = 0x400 + +R_MIPS_32 = 2 +R_MIPS_26 = 4 +R_MIPS_HI16 = 5 +R_MIPS_LO16 = 6 + + +class ElfHeader: + """ + typedef struct { + unsigned char e_ident[EI_NIDENT]; + Elf32_Half e_type; + Elf32_Half e_machine; + Elf32_Word e_version; + Elf32_Addr e_entry; + Elf32_Off e_phoff; + Elf32_Off e_shoff; + Elf32_Word e_flags; + Elf32_Half e_ehsize; + Elf32_Half e_phentsize; + Elf32_Half e_phnum; + Elf32_Half e_shentsize; + Elf32_Half e_shnum; + Elf32_Half e_shstrndx; + } Elf32_Ehdr; + """ + + def __init__(self, data): + self.e_ident = data[:EI_NIDENT] + self.e_type, self.e_machine, self.e_version, self.e_entry, self.e_phoff, self.e_shoff, self.e_flags, self.e_ehsize, self.e_phentsize, self.e_phnum, self.e_shentsize, self.e_shnum, self.e_shstrndx = struct.unpack('>HHIIIIIHHHHHH', data[EI_NIDENT:]) + assert self.e_ident[EI_CLASS] == 1 # 32-bit + assert self.e_ident[EI_DATA] == 2 # big-endian + assert self.e_type == 1 # relocatable + assert self.e_machine == 8 # MIPS I Architecture + assert self.e_phoff == 0 # no program header + assert self.e_shoff != 0 # section header + assert self.e_shstrndx != SHN_UNDEF + + def to_bin(self): + return self.e_ident + struct.pack('>HHIIIIIHHHHHH', self.e_type, + self.e_machine, self.e_version, self.e_entry, self.e_phoff, + self.e_shoff, self.e_flags, self.e_ehsize, self.e_phentsize, + self.e_phnum, self.e_shentsize, self.e_shnum, self.e_shstrndx) + + +class Symbol: + """ + typedef struct { + Elf32_Word st_name; + Elf32_Addr st_value; + Elf32_Word st_size; + unsigned char st_info; + unsigned char st_other; + Elf32_Half st_shndx; + } Elf32_Sym; + """ + + def __init__(self, data, strtab): + self.st_name, self.st_value, self.st_size, st_info, self.st_other, self.st_shndx = struct.unpack('>IIIBBH', data) + assert self.st_shndx != SHN_XINDEX, "too many sections (SHN_XINDEX not supported)" + self.bind = st_info >> 4 + self.type = st_info & 15 + self.name = strtab.lookup_str(self.st_name) + self.visibility = self.st_other & 3 + + def to_bin(self): + st_info = (self.bind << 4) | self.type + return struct.pack('>IIIBBH', self.st_name, self.st_value, self.st_size, st_info, self.st_other, self.st_shndx) + + +class Relocation: + def __init__(self, data, sh_type): + self.sh_type = sh_type + if sh_type == SHT_REL: + self.r_offset, self.r_info = struct.unpack('>II', data) + else: + self.r_offset, self.r_info, self.r_addend = struct.unpack('>III', data) + self.sym_index = self.r_info >> 8 + self.rel_type = self.r_info & 0xff + + def to_bin(self): + self.r_info = (self.sym_index << 8) | self.rel_type + if self.sh_type == SHT_REL: + return struct.pack('>II', self.r_offset, self.r_info) + else: + return struct.pack('>III', self.r_offset, self.r_info, self.r_addend) + + +class Section: + """ + typedef struct { + Elf32_Word sh_name; + Elf32_Word sh_type; + Elf32_Word sh_flags; + Elf32_Addr sh_addr; + Elf32_Off sh_offset; + Elf32_Word sh_size; + Elf32_Word sh_link; + Elf32_Word sh_info; + Elf32_Word sh_addralign; + Elf32_Word sh_entsize; + } Elf32_Shdr; + """ + + def __init__(self, header, data, index): + self.sh_name, self.sh_type, self.sh_flags, self.sh_addr, self.sh_offset, self.sh_size, self.sh_link, self.sh_info, self.sh_addralign, self.sh_entsize = struct.unpack('>IIIIIIIIII', header) + assert not self.sh_flags & SHF_LINK_ORDER + if self.sh_entsize != 0: + assert self.sh_size % self.sh_entsize == 0 + if self.sh_type == SHT_NOBITS: + self.data = '' + else: + self.data = data[self.sh_offset:self.sh_offset + self.sh_size] + self.index = index + self.relocated_by = [] + + @staticmethod + def from_parts(sh_name, sh_type, sh_flags, sh_link, sh_info, sh_addralign, sh_entsize, data, index): + header = struct.pack('>IIIIIIIIII', sh_name, sh_type, sh_flags, 0, 0, len(data), sh_link, sh_info, sh_addralign, sh_entsize) + return Section(header, data, index) + + def lookup_str(self, index): + assert self.sh_type == SHT_STRTAB + to = self.data.find(b'\0', index) + assert to != -1 + return self.data[index:to].decode('utf-8') + + def add_str(self, string): + assert self.sh_type == SHT_STRTAB + ret = len(self.data) + self.data += bytes(string, 'utf-8') + b'\0' + return ret + + def is_rel(self): + return self.sh_type == SHT_REL or self.sh_type == SHT_RELA + + def header_to_bin(self): + if self.sh_type != SHT_NOBITS: + self.sh_size = len(self.data) + return struct.pack('>IIIIIIIIII', self.sh_name, self.sh_type, self.sh_flags, self.sh_addr, self.sh_offset, self.sh_size, self.sh_link, self.sh_info, self.sh_addralign, self.sh_entsize) + + def late_init(self, sections): + if self.sh_type == SHT_SYMTAB: + self.init_symbols(sections) + elif self.is_rel(): + self.rel_target = sections[self.sh_info] + self.rel_target.relocated_by.append(self) + self.init_relocs() + + def find_symbol(self, name): + assert self.sh_type == SHT_SYMTAB + for s in self.symbol_entries: + if s.name == name: + return (s.st_shndx, s.st_value) + return None + + def init_symbols(self, sections): + assert self.sh_type == SHT_SYMTAB + assert self.sh_entsize == 16 + self.strtab = sections[self.sh_link] + entries = [] + for i in range(0, self.sh_size, self.sh_entsize): + entries.append(Symbol(self.data[i:i+self.sh_entsize], self.strtab)) + self.symbol_entries = entries + + def init_relocs(self): + assert self.is_rel() + entries = [] + for i in range(0, self.sh_size, self.sh_entsize): + entries.append(Relocation(self.data[i:i+self.sh_entsize], self.sh_type)) + self.relocations = entries + + def local_symbols(self): + assert self.sh_type == SHT_SYMTAB + return self.symbol_entries[:self.sh_info] + + def global_symbols(self): + assert self.sh_type == SHT_SYMTAB + return self.symbol_entries[self.sh_info:] + + +class ElfFile: + def __init__(self, data): + self.data = data + assert data[:4] == b'\x7fELF', "not an ELF file" + + self.elf_header = ElfHeader(data[0:52]) + + offset, size = self.elf_header.e_shoff, self.elf_header.e_shentsize + null_section = Section(data[offset:offset + size], data, 0) + num_sections = self.elf_header.e_shnum or null_section.sh_size + + self.sections = [null_section] + for i in range(1, num_sections): + ind = offset + i * size + self.sections.append(Section(data[ind:ind + size], data, i)) + + symtab = None + for s in self.sections: + if s.sh_type == SHT_SYMTAB: + assert not symtab + symtab = s + assert symtab is not None + self.symtab = symtab + + shstr = self.sections[self.elf_header.e_shstrndx] + for s in self.sections: + s.name = shstr.lookup_str(s.sh_name) + s.late_init(self.sections) + + def find_section(self, name): + for s in self.sections: + if s.name == name: + return s + return None + + def add_section(self, name, sh_type, sh_flags, sh_link, sh_info, sh_addralign, sh_entsize, data): + shstr = self.sections[self.elf_header.e_shstrndx] + sh_name = shstr.add_str(name) + s = Section.from_parts(sh_name=sh_name, sh_type=sh_type, + sh_flags=sh_flags, sh_link=sh_link, sh_info=sh_info, + sh_addralign=sh_addralign, sh_entsize=sh_entsize, data=data, + index=len(self.sections)) + self.sections.append(s) + s.name = name + s.late_init(self.sections) + return s + + def drop_irrelevant_sections(self): + # We can only drop sections at the end, since otherwise section + # references might be wrong. Luckily, these sections typically are. + while self.sections[-1].sh_type in [SHT_MIPS_DEBUG, SHT_MIPS_GPTAB]: + self.sections.pop() + + def write(self, filename): + outfile = open(filename, 'wb') + outidx = 0 + def write_out(data): + nonlocal outidx + outfile.write(data) + outidx += len(data) + def pad_out(align): + if align and outidx % align: + write_out(b'\0' * (align - outidx % align)) + + self.elf_header.e_shnum = len(self.sections) + write_out(self.elf_header.to_bin()) + + for s in self.sections: + if s.sh_type != SHT_NOBITS and s.sh_type != SHT_NULL: + pad_out(s.sh_addralign) + s.sh_offset = outidx + write_out(s.data) + + pad_out(4) + self.elf_header.e_shoff = outidx + for s in self.sections: + write_out(s.header_to_bin()) + + outfile.seek(0) + outfile.write(self.elf_header.to_bin()) + outfile.close() + + +def is_temp_name(name): + return name.startswith('_asmpp_') + +def parse_source(f, print_source, optimized, framepointer): + if optimized: + if framepointer: + min_instr_count = 6 + skip_instr_count = 5 + else: + min_instr_count = 2 + skip_instr_count = 1 + else: + if framepointer: + min_instr_count = 7 + skip_instr_count = 7 + else: + min_instr_count = 4 + skip_instr_count = 4 + MAX_FN_SIZE = 100 + SECTIONS = ['.data', '.text', '.rodata', '.late_rodata', '.bss'] + + in_asm = False + fn_section_sizes = None + fn_ins_inds = None + asm_conts = [] + late_rodata_asm_conts = None + first_fn_name = None + cur_section = None + start_index = None + asm_functions = [] + output_lines = [] + + # A value that hopefully never appears as a 32-bit rodata constant (or we + # miscompile late rodata). Increases by 1 in each step. + cur_late_rodata_hex = 0xE0123456 + + namectr = 0 + def make_name(cat): + nonlocal namectr + namectr += 1 + return '_asmpp_{}{}'.format(cat, namectr) + + for raw_line in f: + raw_line = raw_line.rstrip() + line = raw_line.lstrip() + output_line = '' + + def add_sized(size): + if cur_section in ['.text', '.late_rodata']: + assert size % 4 == 0, "size must be a multiple of 4 on line: " + raw_line + assert size >= 0 + fn_section_sizes[cur_section] += size + if cur_section == '.text': + assert first_fn_name is not None, ".text block without an initial glabel" + fn_ins_inds.append((len(output_lines), size // 4)) + + if in_asm: + if line.startswith(')'): + in_asm = False + late_rodata = [] + late_rodata_fn_output = [] + if fn_section_sizes['.late_rodata'] > 0: + # Generate late rodata by emitting unique float constants. + # This requires 3 instructions for each 4 bytes of rodata. + # Doubles would increase 4 to 8, but unfortunately we know + # too little about alignment to be able to use them. + size = fn_section_sizes['.late_rodata'] // 4 + for i in range(0, size*3, 3): + if (cur_late_rodata_hex & 0xffff) == 0: + # Avoid lui + cur_late_rodata_hex += 1 + dummy_bytes = struct.pack('>I', cur_late_rodata_hex) + cur_late_rodata_hex += 1 + late_rodata.append(dummy_bytes) + fval, = struct.unpack('>f', dummy_bytes) + late_rodata_fn_output.append('*(volatile float*)0 = {}f;'.format(fval)) + late_rodata_fn_output.append('') + late_rodata_fn_output.append('') + temp_fn_name = None + if fn_section_sizes['.text'] > 0 or late_rodata_fn_output: + temp_fn_name = make_name('func') + output_lines[start_index] = 'void {}(void) {{'.format(temp_fn_name) + instr_count = fn_section_sizes['.text'] // 4 + assert instr_count >= min_instr_count, "too short .text block" + available_instr_count = 0 + tot_emitted = 0 + tot_skipped = 0 + fn_emitted = 0 + fn_skipped = 0 + rodata_stack = late_rodata_fn_output[::-1] + for (line, count) in fn_ins_inds: + for _ in range(count): + if (fn_emitted > MAX_FN_SIZE and instr_count - tot_emitted > min_instr_count and + (not rodata_stack or rodata_stack[-1])): + # Don't let functions become too large. When a function reaches 284 + # instructions, and -O2 -framepointer flags are passed, the IRIX + # compiler decides it is a great idea to start optimizing more. + fn_emitted = 0 + fn_skipped = 0 + output_lines[line] += ' }} void {}(void) {{ '.format(make_name('large_func')) + if fn_skipped < skip_instr_count: + fn_skipped += 1 + tot_skipped += 1 + elif rodata_stack: + output_lines[line] += rodata_stack.pop() + else: + available_instr_count += 1 + output_lines[line] += '*(volatile int*)0 = 0;' + tot_emitted += 1 + fn_emitted += 1 + if rodata_stack: + size = len(late_rodata_fn_output) // 3 + available = instr_count - tot_skipped + print("late rodata to text ratio is too high: {} / {} must be <= 1/3" + .format(size, available), file=sys.stderr) + exit(1) + output_line = '}' + rodata_name = None + if fn_section_sizes['.rodata'] > 0: + rodata_name = make_name('rodata') + output_line += ' const char {}[{}] = {{1}};'.format(rodata_name, fn_section_sizes['.rodata']) + data_name = None + if fn_section_sizes['.data'] > 0: + data_name = make_name('data') + output_line += ' char {}[{}] = {{1}};'.format(data_name, fn_section_sizes['.data']) + bss_name = None + if fn_section_sizes['.bss'] > 0: + bss_name = make_name('bss') + output_line += ' char {}[{}];'.format(bss_name, fn_section_sizes['.bss']) + asm_functions.append((first_fn_name, asm_conts, late_rodata, late_rodata_asm_conts, { + '.text': (temp_fn_name, fn_section_sizes['.text']), + '.data': (data_name, fn_section_sizes['.data']), + '.rodata': (rodata_name, fn_section_sizes['.rodata']), + '.bss': (bss_name, fn_section_sizes['.bss']), + })) + else: + line = re.sub(r'/\*.*?\*/', '', line) + line = re.sub(r'#.*', '', line) + line = line.strip() + changed_section = False + if line.startswith('glabel ') and first_fn_name is None and cur_section == '.text': + first_fn_name = line.split()[1] + if not line: + pass # empty line + elif line.startswith('glabel ') or (' ' not in line and line.endswith(':')): + pass # label + elif line.startswith('.section') or line in ['.text', '.data', '.rdata', '.rodata', '.bss', '.late_rodata']: + # section change + cur_section = '.rodata' if line == '.rdata' else line.split(',')[0].split()[-1] + changed_section = True + assert cur_section in SECTIONS, "unrecognized .section directive" + elif line.startswith('.incbin'): + add_sized(int(line.split(',')[-1].strip(), 0)) + elif line.startswith('.word') or line.startswith('.float'): + add_sized(4 * len(line.split(','))) + elif line.startswith('.double'): + add_sized(8 * len(line.split(','))) + elif line.startswith('.space'): + add_sized(int(line.split()[1], 0)) + elif line.startswith('.'): + # .macro, .ascii, .asciiz, .balign, .align, ... + assert False, 'not supported yet: ' + line + else: + # Unfortunately, macros are hard to support for .rodata -- + # we don't know how how space they will expand to before + # running the assembler, but we need that information to + # construct the C code. So if we need that we'll either + # need to run the assembler twice (at least in some rare + # cases), or change how this program is invoked. + # Similarly, we can't currently deal with pseudo-instructions + # that expand to several real instructions. + assert cur_section == '.text', "instruction or macro call in non-.text section? not supported: " + line + add_sized(4) + if cur_section == '.late_rodata': + if not changed_section: + late_rodata_asm_conts.append(line) + else: + asm_conts.append(line) + else: + if line.startswith('GLOBAL_ASM('): + in_asm = True + cur_section = '.text' + asm_conts = [] + late_rodata_asm_conts = [] + start_index = len(output_lines) + first_fn_name = None + fn_section_sizes = { + '.text': 0, + '.data': 0, + '.bss': 0, + '.rodata': 0, + '.late_rodata': 0, + } + fn_ins_inds = [] + else: + output_line = raw_line + + # Print exactly one output line per source line, to make compiler + # errors have correct line numbers. + output_lines.append(output_line) + + if print_source: + for line in output_lines: + print(line) + + return asm_functions + +def fixup_objfile(objfile_name, functions, asm_prelude, assembler): + SECTIONS = ['.data', '.text', '.rodata', '.bss'] + + with open(objfile_name, 'rb') as f: + objfile = ElfFile(f.read()) + + prev_locs = { + '.text': 0, + '.data': 0, + '.rodata': 0, + '.bss': 0, + } + to_copy = { + '.text': [], + '.data': [], + '.rodata': [], + } + asm = [] + late_rodata = [] + late_rodata_asm = [] + late_rodata_source_name = None + + # Generate an assembly file with all the assembly we need to fill in. For + # simplicity we pad with nops/.space so that addresses match exactly, so we + # don't have to fix up relocations/symbol references. + first_fn_names = set() + for (first_fn_name, body, fn_late_rodata, fn_late_rodata_body, data) in functions: + ifdefed = False + for sectype, (temp_name, size) in data.items(): + if temp_name is None: + continue + assert size > 0 + loc = objfile.symtab.find_symbol(temp_name) + if loc is None: + ifdefed = True + break + loc = loc[1] + prev_loc = prev_locs[sectype] + assert loc >= prev_loc + if loc != prev_loc: + asm.append('.section ' + sectype) + if sectype == '.text': + for i in range((loc - prev_loc) // 4): + asm.append('nop') + else: + asm.append('.space {}'.format(loc - prev_loc)) + if sectype != '.bss': + to_copy[sectype].append((loc, size)) + prev_locs[sectype] = loc + size + if not ifdefed: + if first_fn_name: + first_fn_names.add(first_fn_name) + late_rodata.extend(fn_late_rodata) + late_rodata_asm.extend(fn_late_rodata_body) + asm.append('.text') + for line in body: + asm.append(line) + if late_rodata_asm: + late_rodata_source_name = '_asmpp_late_rodata' + asm.append('.rdata') + asm.append('glabel {}'.format(late_rodata_source_name)) + asm.extend(late_rodata_asm) + + o_file = tempfile.NamedTemporaryFile(prefix='asm-processor', suffix='.o', delete=False) + o_name = o_file.name + o_file.close() + s_file = tempfile.NamedTemporaryFile(prefix='asm-processor', suffix='.s', delete=False) + s_name = s_file.name + try: + s_file.write(asm_prelude + b'\n') + for line in asm: + s_file.write(line.encode('utf-8') + b'\n') + s_file.close() + ret = os.system(assembler + " " + s_name + " -o " + o_name) + if ret != 0: + raise Exception("failed to assemble") + with open(o_name, 'rb') as f: + asm_objfile = ElfFile(f.read()) + + # Remove some clutter from objdump output + objfile.drop_irrelevant_sections() + + # Unify reginfo sections + target_reginfo = objfile.find_section('.reginfo') + source_reginfo_data = list(asm_objfile.find_section('.reginfo').data) + data = list(target_reginfo.data) + for i in range(20): + data[i] |= source_reginfo_data[i] + target_reginfo.data = bytes(data) + + # Move over section contents + modified_text_positions = set() + last_rodata_pos = 0 + for sectype in SECTIONS: + if sectype == '.bss': + continue + source = asm_objfile.find_section(sectype) + target = objfile.find_section(sectype) + if source is None or not to_copy[sectype]: + continue + assert target is not None, "must have a section to overwrite: " + sectype + data = list(target.data) + for (pos, count) in to_copy[sectype]: + data[pos:pos + count] = source.data[pos:pos + count] + if sectype == '.text': + assert count % 4 == 0 + assert pos % 4 == 0 + for i in range(count // 4): + modified_text_positions.add(pos + 4 * i) + elif sectype == '.rodata': + last_rodata_pos = pos + count + target.data = bytes(data) + + # Move over late rodata. This is heuristic, sadly, since I can't think + # of another way of doing it. + moved_late_rodata = {} + if late_rodata: + source = asm_objfile.find_section('.rodata') + target = objfile.find_section('.rodata') + source_pos = asm_objfile.symtab.find_symbol(late_rodata_source_name) + assert source_pos is not None and source_pos[0] == source.index + source_pos = source_pos[1] + new_data = list(target.data) + for dummy_bytes in late_rodata: + pos = target.data.index(dummy_bytes, last_rodata_pos) + new_data[pos:pos+4] = source.data[source_pos:source_pos+4] + moved_late_rodata[source_pos] = pos + last_rodata_pos = pos + 4 + source_pos += 4 + target.data = bytes(new_data) + + # Merge strtab data. + strtab_adj = len(objfile.symtab.strtab.data) + objfile.symtab.strtab.data += asm_objfile.symtab.strtab.data + + # Find relocated symbols + relocated_symbols = set() + for sectype in SECTIONS: + for obj in [asm_objfile, objfile]: + sec = obj.find_section(sectype) + if sec is None: + continue + for reltab in sec.relocated_by: + for rel in reltab.relocations: + relocated_symbols.add(obj.symtab.symbol_entries[rel.sym_index]) + + # Move over symbols, deleting the temporary function labels. + # Sometimes this naive procedure results in duplicate symbols, or UNDEF + # symbols that are also defined the same .o file. Hopefully that's fine. + # Skip over local symbols that aren't used relocated against, to avoid + # conflicts. + new_local_syms = [s for s in objfile.symtab.local_symbols() if not is_temp_name(s.name)] + new_global_syms = [s for s in objfile.symtab.global_symbols() if not is_temp_name(s.name)] + for i, s in enumerate(asm_objfile.symtab.symbol_entries): + is_local = (i < asm_objfile.symtab.sh_info) + if is_local and s not in relocated_symbols: + continue + if is_temp_name(s.name): + continue + if s.st_shndx != SHN_UNDEF: + section_name = asm_objfile.sections[s.st_shndx].name + assert section_name in SECTIONS, "Generated assembly .o must only have symbols for .text, .data, .rodata and UNDEF, but found {}".format(section_name) + s.st_shndx = objfile.find_section(section_name).index + # glabel's aren't marked as functions, making objdump output confusing. Fix that. + if s.name in first_fn_names: + s.type = STT_FUNC + if objfile.sections[s.st_shndx].name == '.rodata' and s.st_value in moved_late_rodata: + s.st_value = moved_late_rodata[s.st_value] + s.st_name += strtab_adj + if is_local: + new_local_syms.append(s) + else: + new_global_syms.append(s) + new_syms = new_local_syms + new_global_syms + for i, s in enumerate(new_syms): + s.new_index = i + objfile.symtab.data = b''.join(s.to_bin() for s in new_syms) + objfile.symtab.sh_info = len(new_local_syms) + + # Move over relocations + for sectype in SECTIONS: + source = asm_objfile.find_section(sectype) + target = objfile.find_section(sectype) + + if target is not None: + # fixup relocation symbol indices, since we butchered them above + for reltab in target.relocated_by: + nrels = [] + for rel in reltab.relocations: + if sectype == '.text' and rel.r_offset in modified_text_positions: + # don't include relocations for late_rodata dummy code + continue + # hopefully we don't have relocations for local or + # temporary symbols, so new_index exists + rel.sym_index = objfile.symtab.symbol_entries[rel.sym_index].new_index + nrels.append(rel) + reltab.relocations = nrels + reltab.data = b''.join(rel.to_bin() for rel in nrels) + + if not source: + continue + + target_reltab = objfile.find_section('.rel' + sectype) + target_reltaba = objfile.find_section('.rela' + sectype) + for reltab in source.relocated_by: + for rel in reltab.relocations: + rel.sym_index = asm_objfile.symtab.symbol_entries[rel.sym_index].new_index + if sectype == '.rodata' and rel.r_offset in moved_late_rodata: + rel.r_offset = moved_late_rodata[rel.r_offset] + new_data = b''.join(rel.to_bin() for rel in reltab.relocations) + if reltab.sh_type == SHT_REL: + if not target_reltab: + target_reltab = objfile.add_section('.rel' + sectype, + sh_type=SHT_REL, sh_flags=0, + sh_link=objfile.symtab.index, sh_info=target.index, + sh_addralign=4, sh_entsize=8, data=b'') + target_reltab.data += new_data + else: + if not target_reltaba: + target_reltaba = objfile.add_section('.rela' + sectype, + sh_type=SHT_RELA, sh_flags=0, + sh_link=objfile.symtab.index, sh_info=target.index, + sh_addralign=4, sh_entsize=12, data=b'') + target_reltaba.data += new_data + + objfile.write(objfile_name) + finally: + s_file.close() + os.remove(s_name) + try: + os.remove(o_name) + except: + pass + +def main(): + parser = argparse.ArgumentParser(description="Pre-process .c files and post-process .o files to enable embedding assembly into C.") + parser.add_argument('filename', help="path to .c code") + parser.add_argument('--post-process', dest='objfile', help="path to .o file to post-process") + parser.add_argument('--assembler', dest='assembler', help="assembler command (e.g. \"mips-linux-gnu-as -march=vr4300 -mabi=32\")") + parser.add_argument('--asm-prelude', dest='asm_prelude', help="path to a file containing a prelude to the assembly file (with .set and .macro directives, e.g.)") + parser.add_argument('-framepointer', dest='framepointer', action='store_true') + group = parser.add_mutually_exclusive_group(required=True) + group.add_argument('-O2', dest='optimized', action='store_true') + group.add_argument('-g', dest='optimized', action='store_false') + args = parser.parse_args() + + if args.objfile is None: + with open(args.filename) as f: + parse_source(f, print_source=True, optimized=args.optimized, framepointer=args.framepointer) + else: + assert args.assembler is not None, "must pass assembler command" + with open(args.filename) as f: + functions = parse_source(f, print_source=False, optimized=args.optimized, framepointer=args.framepointer) + if not functions: + return + asm_prelude = b'' + if args.asm_prelude: + with open(args.asm_prelude, 'rb') as f: + asm_prelude = f.read() + fixup_objfile(args.objfile, functions, asm_prelude, args.assembler) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/tools/asmpreproc/compile.sh b/tools/asmpreproc/compile.sh new file mode 100644 index 0000000..7136161 --- /dev/null +++ b/tools/asmpreproc/compile.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -e +INPUT="$1" +OUTPUT="${INPUT%.c}.o" +INCLUDE="-I include -I include/libultra" + +CC="$QEMU_IRIX -silent -L $IRIX_ROOT $IRIX_ROOT/usr/bin/cc" +CFLAGS="-Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm -fullwarn -wlint -woff 819,820,852,821 -signed $INCLUDE -mips2" +AS="mips-linux-gnu-as" +ASFLAGS="-march=vr4300 -mabi=32 $INCLUDE" + +python3 tools/asmpreproc/asm-processor.py -O2 "$INPUT" | $CC -c $CFLAGS tools/asmpreproc/include-stdin.c -o "$OUTPUT" -O2 +python3 tools/asmpreproc/asm-processor.py -O2 "$INPUT" --post-process "$OUTPUT" --assembler "$AS $ASFLAGS" --asm-prelude tools/asmpreproc/prelude.s + +mv $OUTPUT ${OUTPUT/src/build} diff --git a/tools/asmpreproc/include-stdin.c b/tools/asmpreproc/include-stdin.c new file mode 100644 index 0000000..c21aa6f --- /dev/null +++ b/tools/asmpreproc/include-stdin.c @@ -0,0 +1,2 @@ +// (this is used for piping input to the IRIX compiler without needing to make a temporary .c file) +#include "/dev/stdin" diff --git a/tools/asmpreproc/macros.inc b/tools/asmpreproc/macros.inc new file mode 100644 index 0000000..c97fd81 --- /dev/null +++ b/tools/asmpreproc/macros.inc @@ -0,0 +1,7 @@ +# Assembly Macros + +.macro glabel label + .global \label + \label: +.endm + diff --git a/tools/asmpreproc/prelude.s b/tools/asmpreproc/prelude.s new file mode 100644 index 0000000..0c111a2 --- /dev/null +++ b/tools/asmpreproc/prelude.s @@ -0,0 +1,5 @@ +.set noat +.set noreorder +.set gp=64 +.include "macros.inc" + diff --git a/tools/data_compress.sh b/tools/data_compress.sh new file mode 100644 index 0000000..c0096c0 --- /dev/null +++ b/tools/data_compress.sh @@ -0,0 +1,38 @@ +#!/bin/bash +MAPFILE="./build/ge007."$2".map" +#this script is a hacky mess that can most definately be improved +#fixme as I will fail if vaddr of data gets moved!!! +DATASEG_START=$(printf "%d\n" 0x$(grep ${MAPFILE} -e '__csegtempPos =' | cut -d "x" -f3)) +DATASEG_LEN=$(printf "%d\n" 0x$(grep ${MAPFILE} -e 'load address 0x0000000000c00000' | cut -d "x" -f3 | cut -d " " -f1)) + + +echo "patching $1" +echo "extract data segment" +echo "one byte at a time is slow, sorry" +dd skip=${DATASEG_START} count=${DATASEG_LEN} if=$1 of=data_seg bs=1 + +echo "truncate $1 to 0x$(printf "%x\n" ${DATASEG_START})" +cat $1 | head --bytes=${DATASEG_START} > $1.tmp + +echo "compress data segment" +tools/1172compress.sh data_seg data_seg.rz + + +echo "inject data segment" +RZSIZE=$(stat -c%s "data_seg.rz") +echo "size=${RZSIZE}" + +#fixme as I will fail if position of c_data gets moved!!! +CDATA_POS=$(printf "%d\n" 0x$(grep ${MAPFILE} -e 'c_data_array' | cut -d "x" -f 2 | cut -d " " -f 1 )) +#CDATA_MAX_SIZE=$(printf "%d\n" 0x$(grep '${MAPFILE}' -e '.c_data 0x0000000000021990' | cut -d "x" -f 2 )) +#CDATA_POS=137616 +CDATA_MAX_SIZE=72704 + +echo "maxsize=${CDATA_MAX_SIZE}" + +echo "one byte at a time is slow, sorry" +dd if=data_seg.rz of=$1.tmp obs=1 seek=${CDATA_POS} conv=notrunc +#rm data_seg data_seg.rz + +mv $1.tmp $1 + diff --git a/tools/gzip b/tools/gzip new file mode 100644 index 0000000..1c66240 Binary files /dev/null and b/tools/gzip differ diff --git a/tools/irix/qemu-irix b/tools/irix/qemu-irix new file mode 100644 index 0000000..7f8a01d Binary files /dev/null and b/tools/irix/qemu-irix differ diff --git a/tools/irix/root/lib/libmalloc.so b/tools/irix/root/lib/libmalloc.so new file mode 100644 index 0000000..9fbe1b0 Binary files /dev/null and b/tools/irix/root/lib/libmalloc.so differ diff --git a/tools/irix/root/lib/libmalloc_old.so b/tools/irix/root/lib/libmalloc_old.so new file mode 100644 index 0000000..2a14987 Binary files /dev/null and b/tools/irix/root/lib/libmalloc_old.so differ diff --git a/tools/irix/root/lib/rld b/tools/irix/root/lib/rld new file mode 100644 index 0000000..727b426 Binary files /dev/null and b/tools/irix/root/lib/rld differ diff --git a/tools/irix/root/usr/bin/cc b/tools/irix/root/usr/bin/cc new file mode 100644 index 0000000..2936fc3 Binary files /dev/null and b/tools/irix/root/usr/bin/cc differ diff --git a/tools/irix/root/usr/lib/as0 b/tools/irix/root/usr/lib/as0 new file mode 100644 index 0000000..badf8c8 Binary files /dev/null and b/tools/irix/root/usr/lib/as0 differ diff --git a/tools/irix/root/usr/lib/as1 b/tools/irix/root/usr/lib/as1 new file mode 100644 index 0000000..c246db5 Binary files /dev/null and b/tools/irix/root/usr/lib/as1 differ diff --git a/tools/irix/root/usr/lib/cfe b/tools/irix/root/usr/lib/cfe new file mode 100644 index 0000000..305a50b Binary files /dev/null and b/tools/irix/root/usr/lib/cfe differ diff --git a/tools/irix/root/usr/lib/crt1.o b/tools/irix/root/usr/lib/crt1.o new file mode 100644 index 0000000..3052ae2 Binary files /dev/null and b/tools/irix/root/usr/lib/crt1.o differ diff --git a/tools/irix/root/usr/lib/err.english.cc b/tools/irix/root/usr/lib/err.english.cc new file mode 100644 index 0000000..6976e38 --- /dev/null +++ b/tools/irix/root/usr/lib/err.english.cc @@ -0,0 +1,1260 @@ +@ + 358 358 358 + 6464 6482 6553 + 6553 6593 6728 + 6728 6746 6803 + 6803 6808 6808 + 6808 6818 6818 + 6818 6826 6826 + 6826 6847 6847 + 6847 6875 6922 + 6922 6930 6930 + 6930 6939 6939 + 6939 6948 6948 + 6948 6974 7120 + 7120 7149 7204 + 7210 7248 7311 + 7317 7350 7442 + 7450 7497 7627 + 7635 7709 7930 + 7938 7975 8063 + 8071 8113 8253 + 8261 8289 8289 + 8298 8338 8445 + 8460 8502 8635 + 8650 8690 8819 + 8834 8857 8965 + 8965 9008 9113 + 9119 9142 9227 + 9235 9282 9451 + 9451 9462 9462 + 9462 9477 9477 + 9477 9497 9497 + 9497 9545 9545 + 9545 9584 9584 + 9584 9604 9662 + 9662 9682 9720 + 9720 9749 9749 + 9749 9788 9788 + 9788 9802 9802 + 9802 9829 9829 + 9829 9861 9861 + 9861 9904 9904 + 9904 9920 9920 + 9920 9962 9962 + 9962 9988 9988 + 9988 10014 10014 +10014 10035 10035 +10035 10054 10097 +10097 10115 10115 +10115 10147 10147 +10147 10183 10183 +10183 10208 10208 +10208 10236 10236 +10236 10269 10269 +10269 10304 10304 +10304 10328 10328 +10328 10351 10351 +10351 10371 10371 +10371 10402 10402 +10402 10447 10447 +10447 10497 10497 +10497 10533 10533 +10533 10598 10598 +10606 10630 10630 +10640 10671 10671 +10690 10719 10719 +10728 10752 10795 +10795 10837 10837 +10837 10876 10876 +10876 10900 10900 +10900 10948 10948 +10960 11021 11103 +11103 11128 11128 +11128 11153 11153 +11153 11216 11216 +11216 11239 11239 +11239 11303 11303 +11303 11347 11347 +11357 11393 11393 +11393 11432 11432 +11442 11494 11494 +11494 11536 11536 +11536 11595 11595 +11595 11622 11622 +11622 11684 11684 +11684 11726 11726 +11738 11778 11778 +11782 11813 11813 +11813 11850 11850 +11850 11900 12087 +12111 12120 12120 +12120 12129 12129 +12129 12158 12158 +12158 12192 12192 +12192 12237 12237 +12237 12273 12273 +12273 12326 12326 +12330 12366 12366 +12366 12423 12423 +12427 12482 12482 +12486 12560 12560 +12568 12631 12631 +12637 12691 12691 +12691 12743 12743 +12743 12785 12785 +12785 12826 12826 +12826 12865 12865 +12865 12883 12883 +12883 12946 12946 +12956 12995 12995 +13005 13066 13066 +13077 13163 13163 +13163 13211 13211 +13211 13270 13270 +13270 13318 13318 +13318 13350 13350 +13350 13387 13387 +13387 13428 13428 +13428 13464 13533 +13533 13580 13737 +13737 13776 13854 +13854 13913 13913 +13913 13950 13950 +13950 14118 14118 +14118 14150 14150 +14150 14163 14194 +14194 14224 14255 +14255 14275 14319 +14319 14353 14458 +14466 14484 14530 +14534 14567 14567 +14567 14635 14682 +14690 14742 14742 +14742 14789 14789 +14801 14875 14875 +14886 14947 14947 +14947 14992 14992 +14992 15035 15085 +15085 15134 15205 +15214 15267 15448 +15454 15496 16810 +16822 16875 16960 +16972 17053 17179 +17191 17236 17332 +17344 17491 17841 +17853 17939 18304 +18316 18471 18774 +18786 18952 19323 +19335 19364 19496 +19500 19527 19598 +19598 19613 19776 +19797 19808 19837 +19837 19862 19862 +19868 19927 20026 +20034 20075 20179 +20187 20223 20223 +20223 20290 20382 +20392 20441 20589 +20601 20656 20656 +20656 20699 20818 +20826 20860 21038 +21046 21094 21191 +21203 21236 21314 +21326 21395 21457 +21469 21502 21502 +21502 21587 21731 +21756 21789 21864 +21875 21901 21976 +22013 22059 22220 +22257 22397 22561 +22561 22595 22595 +22603 22623 22623 +22631 22667 22828 +22865 22919 22994 +23031 23059 23120 +23132 23201 23201 +23212 23274 23274 +23285 23345 23345 +23356 23393 23393 +23399 23431 23532 +23542 23587 23646 +23656 23697 23745 +23755 23796 23844 +23854 23876 23928 +23942 23971 24153 +24160 24243 24243 +24247 24273 24743 +24755 24784 24984 +24996 25034 25034 +25034 25075 25273 +25281 25332 25410 +25420 25467 25544 +25554 25583 25744 +25754 25783 26061 +26071 26111 26185 +26194 26239 26525 +26535 26568 26914 +26924 26951 26998 +27008 27035 27082 +27093 27120 27167 +27178 27206 27251 +27261 27289 27334 +27345 27391 27931 +27938 27959 28007 +28019 28037 28037 +28043 28069 28069 +28077 28147 28199 +28207 28266 28266 +28274 28306 28306 +28314 28339 28339 +28347 28404 28510 +28518 28567 28682 +28690 28728 28728 +28736 28782 29023 +29033 29085 29234 +29246 29303 29383 +29395 29432 29570 +29592 29631 29644 +29644 29693 29758 +29767 29810 29875 +29875 29911 29976 +29984 30014 30014 +30027 30086 30151 +30157 30223 30293 +30301 30369 30445 +30457 30511 30568 +30580 30630 30743 +30755 30812 30874 +30886 30959 31035 +31043 31076 31175 +31183 31243 31243 +31251 31323 31323 +31331 31433 31433 +31445 31544 31686 +31698 31740 31740 +31740 31783 31783 +31783 31824 31824 +31824 31873 31996 +32008 32056 32164 +32176 32210 32210 +32229 32271 32271 +32279 32323 32569 +32581 32642 32718 +32739 32779 32916 +32926 32953 33047 +33057 33116 33315 +33325 33373 33373 +33373 33407 33469 +33494 33527 33527 +33536 33573 33573 +33584 33650 33697 +33705 33763 33763 +33763 33797 33797 +33797 33829 33906 +33915 33976 33976 +33985 34016 34098 +34098 34133 34198 +34198 34261 34261 +34269 34312 34312 +34324 34363 34438 +34444 34530 34530 +34538 34596 34626 +34636 34675 34754 +34764 34821 34821 +34821 34867 34950 +34959 35016 35135 +35145 35198 35198 +35208 35266 35344 +35355 35382 35537 +35547 35576 35629 +35637 35705 35705 +35713 35764 35764 +35764 35784 35876 +35888 35932 35950 +35950 36013 36138 +36150 36191 36280 +36286 36314 36419 +36431 36516 36516 +36516 36554 36642 +36642 36689 36808 +36818 36881 37105 +37113 37183 37204 +37204 37225 37225 +37225 37255 37348 +37348 37388 37388 +37388 37454 37454 +37454 37518 37518 +37518 37584 37584 +37584 37717 37717 +37717 37752 37752 +37752 37783 37889 +37901 37928 38034 +38046 38115 38115 +38115 38140 38187 +38195 38219 38339 +38351 38422 38422 +38422 38486 38486 +38486 38555 38555 +38555 38619 38619 +38619 38641 38641 +38641 38758 38758 +38758 38929 38929 +38929 38975 39043 +39055 39084 39133 +39133 39175 39265 +39275 39310 39494 +39504 39547 39576 +39587 39614 39668 +39674 39697 39797 +39797 39845 40094 +40094 40158 40264 +40264 40369 40523 +40523 40593 40593 +40593 40629 40876 +40876 40911 40971 +40977 41026 41026 +41038 41077 41077 +41077 41116 41116 +41116 41156 41156 +41156 41195 41195 +41195 41237 41237 +41237 41285 41285 +41285 41304 41304 +41304 41371 41371 +41371 41429 41429 +41429 41491 41491 +41491 41519 41519 +41519 41572 41572 +41572 41642 41642 +41642 41676 41676 +41676 41713 41713 +41713 41751 41751 +41751 41792 41792 +41792 41856 41856 +41856 41881 41881 +41881 41936 41936 +41936 41977 41977 +41977 42018 42018 +42018 42090 42090 +42090 42162 42162 +42162 42205 42205 +42205 42267 42267 +42267 42294 42294 +42294 42309 42309 +42309 42338 42386 +42393 42425 42522 +42530 42577 42577 +42577 42623 42623 +42623 42643 42725 +42725 42748 42748 +42748 42829 42897 +42901 42952 42952 +42952 42978 43025 +43025 43116 43116 +43116 43171 43171 +43171 43204 43376 +43386 43453 43471 +43471 43547 43780 +43798 43921 44116 +44120 44120 44120 +Out of memory: %s +There is no more memory left in the system for compiling this program. +Internal Error Unknown Error Message %s +1) An internal error, while attempting to print an unavailable message +2) The error message file is inaccessible or has other problems +Unknown Signal %s +1) An unknown signal has been caught +2) 2 Nested signals +line +Warning: +Fatal: +Source not available +Too many errors... goodbye. +There is a limit of 30 errors before aborting. +Error: +reserved +reserved +Unknown Control Statement +1) The line begins with a '#' and is not of the form: + # "" +2) Please compile this program with the preprocessor enabled. +Unknown character %s ignored +The character is not part of the source character set. +2.2.1 +Unknown control character \%s ignored +The control character is not part of the source character set. +2.2.1 +Illegal character %s in exponent +1) Digits or sign expected after 'e' or 'E'. +2) Digits are expected after sign in exponent. +3.1.3.1 +Constant is out of range and may be truncated. +The constant is too large to be accurately represented and may be +truncated. The limits are in the system include file limits.h. +2.2.4.2 +Constant is out of range for a 32-bit data type, but accepted as written. +The constant is too large to fit in a 32-bit data type, but will be +accurately represented in a wider data type. The value may be truncated, +depending on its context. The limits are in the system include file +limits.h. +2.2.4.2 +Character constant size out of range +1) No characters in a character constant. +2) More than 4 bytes in a character constant. +3.1.3.4 +Wide character constant size out of range +1) No characters in the multibyte sequence (0 assumed). +2) More than 1 byte in the multi-byte sequence (only the first byte was converted). +3.1.3.4 +Invalid multibyte character +4.10.7.2 +Newline in string or character constant +1) Terminate your string or character constant with closing quotes. +2) Put a backslash before the newline. +3.1.3.4, 3.1.4 +Octal character escape too large: %s > %s +1) Terminate end of octal sequence with a non-octal character. +2) Select a character value within the limits. +Value may be truncated +3.1.3.4, 3.1.4 +Hex character escape too large: %s > %s +1) Terminate end of hex sequence with a non-hex character. +2) Select a character value within the limits. +Value may be truncated +3.1.3.4, 3.1.4 +Unexpected End-of-file +1) Unterminated string or character constant +2) Missing closing comment marker (*/) +3) File system problems +Unrecognized escape sequence in string \%s +Recognized escape sequences are \a, \b, \f, \n, \r, \t, and \v. +Character will be treated as un-escaped. +3.9.2 +Illegal octal digit %s +Octal constants, beginning with 0, must only have digits between 0 and 7, +inclusive. +3.1.3.2 +Unable to open temporary file for compiling %s +1) TMPDIR environment variable is set to a directory that you have no + permissions for. +2) The file system is full. +3) System errors beyond the scope of the compiler. +%s: Hangup +%s: Interrupt +%s: Quit (ASCII FS) +%s: Illegal instruction (not reset when caught) +%s: Trace trap (not reset when caught) +%s: IOT instruction +Also SIGABRT, used by abort, replace SIGIOT in the future +%s: EMT instruction +Also SIGXCPU, Exceeded CPU time limit +%s: Floating point exception +%s: Kill (cannot be caught or ignored) +%s: Bus error +%s: Segmentation violation +%s: Bad argument to system call +%s: Write on a pipe with no one to read it +%s: Alarm clock +%s: Software termination signal from kill +%s: User defined signal 1 +%s: User defined signal 2 +%s: Death of a child +Power-fail restart +%s: Also SIGXFSZ, exceeded file size limit +%s: Window change +%s: Handset, line status change +%s: Sendablestop signalnot from tty +%s: Stop signal from tty +%s: Pollable event occurred +%s: Input/Output possible signal +%s: Urgent condition on IO channel +%s: Window size changes +%s: Virtual time alarm +%s: Profiling alarm +%s: Continue a stopped process +%s: To readers pgrp upon background tty read +%s: Like TTIN for output if (tp->t_local<OSTOP) +%s: Resource lost (eg, record-lock) +'auto' and 'register' are not allowed in an external declaration +3.7(10) +must have function type +3.7.1(30) +Functions cannot return arrays +3.7.1(33), 3.3.2.2 +Declaration list not allowed +3.7.1(5) +Too many input files %s +The command line may contain only one file +cpp internal error: input stack underflow +cpp internal error: if stack underflow +Cannot open the file %s +No new-line character at the end of the file %s +2.1.1.2(30) +Fatal: Exceeded the limit of nesting level for #include file +Fatal: Exceeded the limit of nesting level for #include file. This limit +is 200. +Fail to read the file %s +Cannot write the file %s +%s: %s: An if directive is not terminated properly in the file +%s: %s: nested comment +%s:%s: Illegal macro name %s; macro name shall be an identifier +%s:%s: Illegal preprocessing token sequence +3.8.3(35) +%s:%s: Illegal macro parameter name +%s:%s: Non-unique macro parameter name +3.8.3(18) +%s:%s: Missing ')' in parameter list for #define %s +%s:%s: Missing ')' in macro instantiation +%s:%s: Bad punctuator in the parameter list for #define %s +%s:%s: Macro %s redefined. +%s:%s: # operator should be followed by a macro argument name +%s:%s: Badly formed constant expression%s +3.4(9), 3.8 +%s:%s: Division by zero in #if or #elif +3.8 +unknown command line option %s +extraneous input/output file name %s +%s: %s: Unterminated string or character constant +A preprocessing string or character constant token was not +terminated. Note that preprocessing directives are processed +after the source file has been divided into preprocessing tokens. +2.1.1.2(30) 3.1(18) 3.8 +%s: %s: +%s: %s: +%s: %s: Unterminated comment +%s: %s: Unknown directive type %s +%s: %s: #elif or #else after #else directive +%s: %s: Bad identifier after the %s +%s: %s: #%s accepts only one identifier as parameter +3.8 +%s: %s: Bad identifier after the %s +%s: %s: text following #%s violates the ANSI C standard. +3.8 +%s: %s: Bad character %s occurs after the # directive. +3.8 +%s: %s: the ## operator shall not be the %s token in the replacement list +3.8.3.3 +%s: %s: the defined operator takes identifier as operand only. +3.8.1 +%s: %s: Not in a conditional directive while using %s +%s: %s: Illegal filename specification for #include +%s: %s: Invalid file name %s for #include +%s: %s: Cannot open file %s for #include +%s: %s: Bad argument for #line command +%s: %s: #error %s +%s: %s: Tried to redefine predefined macro %s, attempt ignored +3.8.7(22) +%s: %s: Undefining predefined macro %s +3.8.7(22) +%s: %s: Undefined the ANSI standard library defined macro %s +4.1.2.1(9) +%s: %s: The number of arguments in the macro invocation does not match the definition +%s: %s: Illegal character %s in preprocessor if +%s: %s: Illegal character %s for number in preprocessor if +%s: %s: No string is allowed in preprocessor if +%s: %s: Not supported pragma %s +%s: %s: Not supported #pragma format +%s: %s: ANSI C does not allow #ident; %s +%s: %s: Not supported #ident format +This cpp extension accepts the following format: +#ident "any string" +%s: %s: Not supported #assert/#unassert format +This cpp extension accepts the following format: +#assert identifier +#assert identifier ( pp-tokens ) +#unassert identifier +#unassert identifier ( pp-tokens ) +%s: %s: Bad assertion predicate format +The correct syntax for this cpp extension is: +#assert identifier ( pp-token ) +%s: %s: directive is an upward-compatible ANSI C extension +%s: This option requires an argument +%s: %s: A macro has expanded recursively more than %s times. Further expansion will be disabled! Use command-line option: -Wp,-max_rec_depth=depth to recurse deeper. +A status return from cpp to cfe +Syntax Error +The token read was unexpected. +Syntax Error -- cannot backup +The token read was unexpected. +Yacc stack overflow +The expression is too complicated to parse. +Trailing comma in enumerator list +The use of a trailing comma in an enumerator list is not standard C. There +may be portability problems. +3.5.2.2 +Empty declaration +Empty declarations are invalid in standard C. +3.5 +%s declared, but not referenced. +redeclaration of '%s'; previous declaration at line %s in file '%s' +Identifier redeclared in the same scope/block. +3.1.2.3 +'%s' undefined; reoccurrences will not be reported. +Non-function name referenced in function call. +3.3.2.2(18) +The number of arguments doesn't agree with the number in the declaration. +3.3.2.2(5) +'%s' section name longer than 8 characters. Name truncated. +'%s' is already placed by pragma alloc_text. +Cannot write ucode file while compiling %s +1) The file system is full +2) Permissions problem +Must have corresponding formal argument for '%s' +Parameter found in the declaration part, but not in the argument list. +3.7.1(7) +Non-prototype declaration is an obsolescent feature. +The use of function definitions with separate parameter identifier +and declaration lists (not prototype-format parameter type and +identifier declarators) is an obsolescent feature. +3.9.5 +Incompatible function declarations for %s +For two function types to be compatible, both shall specify compatible +return types. Moreover, the parameter type lists, if both are present, +shall agree in the number of parameters and in use of the ellipsis +terminator; corresponding parameters shall have compatible types. If +one type has a parameter type list and the other type is specified by +a function declarator that is not part of a function definition and +contains an empty identifier list, the parameter list shall not have +an ellipsis terminator and the type of each parameter shall be +compatible with they type that results from application of the default +argument promotions. If one type has a parameter type list and the +other is specified by a function definition that contains a (possibly +empty) identifier list, both shall agree in the number of parameters, +and the type of each prototype parameter shall be compatible with the +type that results from application of the default argument promotions +to the type of the corresponding identifier. (For each parameter +declared with function or array type, its type for these comparisons +is the one that results from conversion to a pointer type. For each +parameter declared with qualified type, its type for these comparisons +is the unqualified version of its declared type.) There you have it! +3.5.4.3(15) +Incompatible function return type for this function. +For two function types to be compatible, both shall specify compatible +return types. +3.5.4.3(15) +The number of parameters for function is different from the previous declaration +The parameter type lists, if both are present, shall agree in the +number of parameters and in use of the ellipsis terminator. +3.5.4.3(15) +Incompatible type for the function parameter +If both parameter type lists are present, corresponding +parameters shall have compatible types. +3.5.4.3(15) +Function %s is redeclared with an incompatible argument type (after default argument promotion), which could lead to undefined run-time behaviour. +The redeclaration could cause arguments at a call site to be passed +inconsistently with what the function implementation expects, and +parameters would therefore be accessed erroneously when executing the +function body. Note that a float argument is promoted to a double +when passed (potentially through fp registers) to an unprototyped +function. +3.5.4.3(15) +prototype and non-prototype declaration found for %s, ellipsis terminator not allowed +If one type has a parameter type list and the other type is specified +by a function declarator that is not part of a function definition and +contains an empty identifier list, the parameter list shall not have +an ellipsis terminator and the type of each parameter shall be +compatible with they type that results from application of the default +argument promotions. +3.5.4.3(15) +prototype and non-prototype declaration found for %s, the type of this parameter is not compatible with the type after applying default argument promotion +If one type has a parameter type list and the other type is specified +by a function declarator that is not part of a function definition and +contains an empty identifier list, the type of each parameter shall be +compatible with the type that results from application of the default +argument promotions. +3.5.4.3(15) +prototype declaration and non-prototype definition found for %s, the type of this parameter is not compatible with the type after applying default argument promotion +If one type has a parameter type list and the other is specified by a +function definition that contains a (possibly empty) identifier list, +both shall agree in the number of parameters, and the type of each +prototype parameter shall be compatible with the type that results +from application of the default argument promotions to the type of the +corresponding identifier. +3.5.4.3(15) +Empty declaration specifiers +Standard C requires at least a storage class specifier, type specifier, +or a type qualifier in declarations. 'extern int' assumed. +3.5 +Can't write to the file %s +1) The output file cannot be opened for writing. +2) Out of file space. +Duplicate '%s' +typedef, extern, static, auto, register, const, volatile may not +appear more than once in the same specifier list or qualifier list. +Duplicate occurrence ignored. +3.5.1(10) , 3.5.3(5) +Null input +There is nothing to compile. +Illegal type combination +3.5.2 +Missing ';' at end of structure / union member declaration +In standard C, each member declaration must be terminated by a ';'. A +terminating ';' is assumed. +3.5.2.1 +Missing member name in structure / union +In standard C, each member declaration have a member name. The missing +member is assumed to not exist. +3.5.2.1 +This variable is initialized twice. +Neither 'const' or 'volatile' have any effect on function results. +Qualifiers only apply to expressions designating an object that +can be altered or examined. +3.5.3(10) +An integer constant expression is required here. +The expression that defines the value of an enumeration constant +shall be an integral constant expression that has a value +representable as an int. +3.5.2.2(28) +(previous declaration of '%s' at line %s in file '%s') +Must be an integer type greater than zero. +The array size must be either a char, signed or unsigned integer or +an enumerated type with a value greater than zero. +3.5.4.2 +Array size cannot be a long long. +Arrays with more than 2^32 elements are not yet supported. +The array size must be either a char, signed or unsigned integer or +an enumerated type with a value greater than zero. +3.5.4.2 +bit-field '%s' width is not an integer constant +The expression that specifies the width of a bit-field shall be an +integral constant expression. +3.5.2.1(15) +bit-field '%s' width is negative +The expression that specifies the width of a bit-field shall be +non-negative. +3.5.2.1(15) +bit-field '%s' type required to be int, unsigned int, or signed int. +A bit-field shall have type int, unsigned int, or signed int. +3.5.2.1(30) +bit-field %s's type not integer. +Non-scalar type or pointer type to a non-object for increment or decrement operator. +The operand of the prefix/postfix increment or decrement operator shall have scalar type; if it is of pointer type, it must point to an object. +3.3.2.4(37), 3.3.3.1(25) +Assign value to a function type. +An assignment operator shall have a modifiable lvalue as its left operand. +3.2.2.1(5) +Assign value to an array. +An assignment operator shall have a modifiable lvalue as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +Change value for variable of incomplete type. +The operand of increment and decrement operator shall be a modifiable +scalar lvalue. An assignment operator shall have a modifiable lvalue +as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +The left-hand side of the '.' operator must be an addressable lvalue, when a bit-field is not contained within a unit of 32 bits alignment. +This is a restriction in our implementation, which can be worked +around by always accessing long long bit-fields indirectly (i.e. +by means of the '->' operator). +This expression is not an lvalue. +3.2.2.1 +Modified an rvalue. +3.2.2.1 +Change value for constant variable. +The operand of increment and decrement operators shall be modifiable +scalar lvalues. An assignment operator shall have a modifiable lvalue +as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +Change value for constant field of a struct or union. +An assignment operator shall have a modifiable lvalue as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +Dereferenced a non-pointer. +The operand of the unary * operator shall have pointer type. +3.3.3.2(39) +The operand of the unary + or - operator shall have arithmetic type. +3.3.3.3(6) +The operand of the unary ~ operator shall have integral type. +3.3.3.3(6) +The operand of the unary ! operator shall have scalar type. +3.3.3.3(6) +Constants must have arithmetic type. +3.1.3 +Bad type name for cast operator +The type name for the cast operator should either be void or a +qualified or unqualified scalar type. +3.3.4(22) +Improper cast of non-scalar type expression. +The operand for the cast operator shall be of scalar type. +3.3.4(23) +Cast a pointer into a non-integral type. +A pointer may be converted to an integral type. +3.3.4(31) +Cast a non-integral type into a pointer. +An integral type may be converted to a pointer. +3.3.4(31) +Duplicate member '%s' +Two members of a struct may not have the same name. +3.1.2.2(7,25) +Invalid constant expression. +Constant expressions shall not contain assignment, increment, decrement, +function-call, or comma operators, except when they are contained within +the operand of the sizeof operator. +3.4(9) +Constant expressions must be derived from a constant value or a constant +variable. +3.4 +Dangerous operand of '&'. +The operand of the unary & operator shall be either a function +designator or an lvalue that designates an object that is not a +bit-field and is not declared with the register storage-class +specifier. This operand is NOT an lvalue, but we let it pass. +Note that a segmentation error with possible core dump will result +when the resulting address does not denote a valid (declared) +storage location. This feature will be discontinued in future +releases of the compiler! +3.3.3.2(36) +Unacceptable operand of '&'. +The operand of the unary & operator shall be either a function +designator or an lvalue that designates an object that is not a +bit-field and is not declared with the register storage-class +specifier. +3.3.3.2(36) +'&' before array or function; ignored +Unacceptable operand of sizeof operator. +The sizeof operator shall not be applied to an expression that has +function type or an incomplete type, to the parenthesized name of such +a type, or to an lvalue that designates a bit-field object. +3.3.3.4 +Unacceptable operand of a multiplicative operator. +Each of the operands of a multiplicative operator shall have arithmetic type. +3.3.5(18) +Unacceptable operand of the remainder operator +Each of the operands of the remainder (%) operator shall have integral type. +3.3.5(18) +Unacceptable operand of '+'. +For the + operator, either both operands shall have arithmetic type, or +one operand shall be a pointer to an object type and the other shall +have integral type. +3.3.6(39) +Unacceptable operand of '-'. +For the subtraction operator, one of the following shall hold: both operands +have arithmetic type; operands are pointers to qualified or unqualified +versions of compatible object types; or the left operand is a pointer +to an object type and the right operand has integral type. +3.3.6(39) +Unacceptable operand of shift operator. +Each of the operands of bitwise shift operators shall have integral type. +3.3.7(9) +Unacceptable operand of relational operator. +For relational operators, one of the following shall hold: both +operands have arithmetic type; both operands are pointers to qualified +or unqualified versions of compatible object types; or both operands +are pointers to qualified or unqualified versions of compatible +incomplete types. +3.3.8(32) +Unacceptable operand of == or != +For the == or != operator, one of the following shall hold: both operands +are pointers to qualified or unqualified versions of compatible types; one +operand is a pointer to an object or incomplete type and the other is a +pointer to a qualified or unqualified version of void; or one operand is +a pointer and the other is a null pointer constant. +3.3.9(21) +Unacceptable operand of &. +Each of the operands shall have integral type. +3.3.10(7) +Unacceptable operand of ^. +Each of the operands shall have integral type. +3.3.11(18) +Unacceptable operand of |. +Each of the operands shall have integral type. +3.3.12(30) +Unacceptable operand of &&. +Each of the operands shall have scalar type. +3.3.13(7) +Unacceptable operand of ||. +Each of the operands shall have scalar type. +3.3.14(20) +Unacceptable operand of conditional operator. +The first operand of conditional operator shall have scalar type. One +of the following shall hold for the second and third operands: +both operands have arithmetic type; both operands have compatible +structure or union types; both operands have void type; both operands +are pointers to qualified or unqualified versions of compatible types; +one operand is a pointer and the other is a null pointer constant; or +one operand is pointer to an object or incomplete type and the other +is a pointer to a qualified or unqualified version of void. +3.3.15 +Duplicate label '%s' +A label name can only occur once in a function. +3.1.2.1(25) +Division by zero. +3.3.5 +Subscripting a non-array. +3.3.2.1 +Subscripting an array of incomplete type which is not an object type. +The element of the array shall have an object type. +3.3.2.1 +Should only subscript an array with an integral expression +3.3.2.1 +Subscripting an unbounded array +3.3.2.1 +Array index out of range +3.3.2.1 +Selector requires struct/union pointer as left hand side +In K&R mode the expression is implicitly converted to the '.' selector +for a struct/union left-hand side. +3.3.2.3 +Selector requires struct/union as left hand side +In K&R mode the expression is implicitly converted to the '->' selector +for a struct/union pointer left-hand side. +3.3.2.3 +member of structure or union required +3.3.2.3 +types have different qualifier specifications +For two qualified types to be compatible, both shall have the +identically qualified version of a compatible type; qualified +and unqualified versions of a type are distinct types. For two +types to be compatible their types must be the same. +3.5.3(26) +Incompatible array type due to different array size +For two array types to be compatible, both shall have compatible element +types; if both size specifiers are present, they shall have the +same value. +3.5.4.2(11) +Incompatible array type due to incompatible element type +For two array types to be compatible, both shall have compatible element +types. +3.5.4.2(11) +Incompatible pointer type assignment +The type pointed to by the left-hand side of simple assignment +statement is incompatible with the type pointed to by the right-hand side. +3.3.16.1, 3.5.4.1(21) +Incompatible base type of pointer type +K&R feature. +Type %s of %s is incompatible with type %s of %s +Incompatible types can be resolved by casting or by other means. +3.3.16.1 +illegal combination of pointer and integer +Assigning an integral expression to a pointer is a bad practice. +Type for %s is incompatible with %s +Incompatible types can be resolved by casting or by other means. +3.1.2.6 +Bad operand type for += or -= +3.3.16.2(26) +A case or default label appears outside a switch statement +A case or default label shall appear only in a switch statement. +3.6.1 +The controlling expression of the if statement is not scalar type +The controlling expression of an if statement shall have scalar type. +3.6.4.1 +The controlling expression of switch statement is not integral type +The controlling expression of an switch statement shall have integral type. +3.6.4.2(20) +The case label is not an integral constant expression +The case label shall be an integral constant expression. +3.6.4.2(22) +Duplicate case label in the same switch statement +No two of the case constant expressions in the same switch statement +shall have the same value after conversion. +3.6.4.2(22) +More than one default label in the same switch statement +There may be at most one default label in a switch statement. +3.6.4.2(23) +The controlling expression of the iteration statement is not scalar +type +The controlling expression of a iteration statement shall have scalar +type. +3.6.5.1 +label '%s' used, but not defined +The identifier in a goto statement shall name a label located +somewhere in the enclosing function. +3.6.6.1 +A continue statement shall appear only in or as a loop body +3.6.6.2 +A break statement shall appear only in or as a switch body or loop body +3.6.6.3 +A return statement with an expression should not appear +in a function '%s', whose return type is void +3.6.6.4(24) +A return statement without an expression appears in a +function '%s', whose return type is not void +If a return statement without an expression is executed, and the value +of the function call is used by the caller, the behavior is undefined. +3.6.6.4(33) +Internal Error: statement stack underflow +Long double not supported; double assumed. +Long float not standard; double assumed. +Only 'register' allowed in parameter declaration +The only storage-class specifier that shall occur in a parameter +declaration is 'register'; illegal storage class ignored. +3.5.4.3(25) +Name(s) without types in a function declaration +An old-style function declaration is not allowed to have names +in the parameter list; useless names ignored +3.5.4.3(26) +Functions cannot return functions +3.7.1(33), 3.3.2.2 +Functions cannot return a non-object type +3.3.2.2 +enum declaration must contain enum literals +Although structs or unions may delay the declaration of their members, +a similar construction with enum does not exist and is not necessary, +as there can be no mutual dependencies between the declaration of an +enumerated type and any other type. +3.5.2.3(27) +Register qualification has no effect for this type of object +Register declarations for array, struct, and function types have +no effect. +3.5.1(16), 3.5.1(19) +Functions cannot be declared 'register' +The declaration of an identifier for a function that has block +scope shall have no explicit storage-class specifier other than +'extern'. +3.5.1(19) +'%s' cannot be initialized +The type of the entity to be initialized shall be an object type +or an array of unknown size. +3.5.7(32) +Cannot initialize 'extern' variable '%s' within a function +If the declaration of an identifier has block scope, and the +identifier has 'extern' or 'static' linkage, the declaration +shall have no initializer for the identifier; initialization +allowed anyway. +3.5.7(35) +initializing an 'extern' is an ANSI C extension +conflicting declarations for '%s' +'static' and 'extern' declarations conflict. Which is meant? +3.1.2.2(15), 3.1.2.2(27) +Too many initial values for '%s' +3.5.7(1) +incompatible types in initialization +3.3.16(35) +redefinition of '%s'; previous definition at line %s in file '%s' +Identifier redeclared in the same scope/block. +3.1.2.3 +bit-fields as members of a union are an ANSI C invention. +storage size for '%s' isn't known +type mismatch in initialization +Missing braces in a union initialization or illegally formed +initialization. +3.5.7(5) +union '%s' only allowed one initializer for the first member +3.5.7(5) +width of '%s' exceeds its type +the specified bitfield width is too large to be contained within a +bitfield type. +structure has no member named '%s' +This is allowed for compatibility with AT&T pcc-based compilers. +Reference of an expression of void type or an incomplete type. +3.2.2.1 +element size of an array shall not be zero +3.2.2.5(25) +invalid combination of type specifiers +Although order is unimportant, not all type specifiers can occur together. +3.5.2 +declaration must at least declare an identifier, tag, or the member of an enumeration +3.5(16) +at most one storage class may be given in the declaration +Duplicate occurrence ignored. +3.5.1(10) +size of function's return type is zero +The return type of a function must be void or an object type other than array. +3.7.1(33) +Expecting an integral return type from the main function +identifier missing from parameter declaration +Prototypes for function definitions require identifiers in parameter +declarations. +3.7.1(4) +only 'register' allowed for storage class for parameters +The declarations in the declaration list shall contain no storage class +other than 'register', and no initializations. +3.7.1(10) +parameters declarations can not have initializations +3.7.1(10) +only one instance of 'void' allowed in the parameter list +'void' must occur by itself (specifying that the function has no parameters). +3.5.4.3(1) +%s must have function type +1) An argument list must be explicitly present in the declarator; it cannot + be inherited from a typedef (3.5.4.3). +2) The declarator is not a function. +3.7.1(30) +Illegal hexadecimal constant +You have no digits after the 0x or 0X. 0x0 assumed. +3.1.3.2 +value overflows its type in this context. Value is set to be '%s'! +3.2.1.4 +value is outside range representable for type '%s' +missing member name +K&R mode permits a missing member name; otherwise, only bitfields can omit +the member name. +3.5.2.1(10) +useless keyword or type name in declaration +Type was ignored. +'%s' declared within and is limited to this function prototype +Possible program error, since parameter type checking will always fail +unless the type declaration is visible to the caller. +3.1.2.1(35) +Extra spaces within operator, %s assumed +In ANSI C, the compound assignment operator cannot have embedded +white space characters. +3.1.5 +missing size for array '%s' +Incomplete types permitted for identifiers with internal or +external linkage, but not automatic linkage. +3.1.2.5(10) +can't jump into (from outside of) the body of a 'try' or into either type of handler +'%s' missing, please #include excpt.h +excpt.h required to declare exception statements, intrinsics or compiler +runtime names. +local function declarations cannot be 'static' +A function declaration can only contain the storage-class 'static' +if it is at file scope. Declaration made 'extern'. +3.5.1(19) +static function '%s' declared and referenced, but not defined. +If an identifier declared with internal linkage is used in an +expression (other than as a part of the operand of a sizeof +operator), there shall be exactly one external definition for +the identifier in the translation unit. +3.7(12) +pragma argument '%s' must be declared prior to being used in a pragma +Pragma name ignored. +Pragma not supported +'%s' not enabled as intrinsic +It may have already appeared in a function pragma, or never occurred in +an intrinsic pragma. +'%s' is already enabled as an intrinsic +weak definition for '%s' is later redefined; pragma weak ignored. +definition of primary name '%s' not found; pragma weak ignored. +definition of secondary name '%s' not found; pragma weak ignored. +primary name '%s' is declared as a common or external, and is not defined +with initial value within this file; pragma weak ignored. +useless '%s' storage class ignored +array of functions not allowed +The element type must be an object type representing a region +of data storage which can represent values. +3.1.2.5(23) +array of voids not allowed +The element type must be an object type representing a region +of data storage which can represent values. +3.1.2.5(23) +argument for pragma pack must be an integer constant; pragma ignored +'%s' has wrong tag type. +Identifier redeclared in the same scope/block. +3.1.2.3 +missing dimension bound +For multidimensional arrays, the constant bounds of the array may be +omitted only for the first member of the sequence. +3.1.2.5(23) +Internal error in parameters to function substr; loc: '%s'; len: '%s'. +Internal error in parameters to function insertstr; indx: '%s'. +Internal error in function get_tag_name; input is a non-tagged type. +Internal error in function gen_type_str -- not a type tree '%s' +Cannot open file '%s' +Prototype should be moved after tag or a typedef declaration. +Please look for comments in the extracted header file. +The extracted header file includes prototypes for static functions, +which should be removed, if you wish to include the header in a source file +other than the originator. +ANSI C requires formal parameter before "..." +This extension is meant to be used for compatibility with varargs.h +3.5.4.3(35) +syntax error: "&..." invalid +extension used to access "..." formal arguments. +function '%s' initialized like a variable +The type of entity to be initialized shall be an object type or an +array of unknown size. +3.5.7(31) +initializer not an array aggregate +The initializer for an object that has aggregate type shall be a +brace-enclosed list of initializers for the members of the aggregate, +written in increasing subscript or member order. +3.5.7(20) +'%s' type is incomplete; cannot initialize +Was the struct ever defined? +3.5.7.(31) +'%s' is not standard ANSI. +This keyword/type is not defined in strict ANSI mode. +3.1.1 +not a legal asm string +The first operand of an asm string should be, after argument substitution, +a legal assembly string. +The -float option will be ignored in ANSI mode. +The -float option is ignored, since otherwise program semantics would +violate the ANSI standard. In particular, fp constants are always +'double' with ANSI-C, while with -float the type of fp constants will +depend on the context and may be 'float'. +ANSI C support unavailable with C compiler bundled with RISC/os +The C compiler bundled with RISC/os does not support ANSI C. ANSI +C support requires a separate license. +Ignored invalid warning number(s) in -woff option, %s%s ! +Warning numbers must be in the range %s to %s. +The set of warning numbers in cfe is disjoint from the set of warning numbers +in accom, since accom warnings cannot be mapped one-to-one to cfe warnings. +'%s' not handled as an intrinsic due to incompatible argument types . +'__unalign' only qualifies pointers +'__unalign' indicates the object pointed at by pointer is unaligned (e.g., +int * __unalign p). This is an extension to ANSI C and like 'volatile' +and 'const' can follow the '*' in pointer declarations, but unlike both +cannot qualify a base type. +index expression is an anachronism +ANSI C++ doesn't support array index expressions in delete. +5.3.4 +member cannot be of function or incomplete type. +3.5.2.1(12) +Illegal lint option, '%s', is ignored. +cannot open header message buffer file +cannot write header message buffer file +cannot read header message buffer file +cannot seek in header message buffer file +struct/union/enum '%s' is used, but not defined +static '%s' unused +nonportable character comparison (chars may be signed or unsigned) +redundant comparison of unsigned with constant expression +redundant statement, control flow cannot reach this statement +'%s' may be used before set +function parameter '%s' is not used in function '%s' +'%s' can be const qualified, since it is not set within its lifetime. +'%s' is not used in function '%s' +'%s' set but unused in function '%s' +control may fall through %s statement +function '%s' has return(e); and return; +function '%s' may return random value to place of invocation %s +label without goto: '%s' +width of %s constant is smaller than size of type (%s) +explicit conversion from '%s' to '%s' %s +implicit conversion from '%s' to '%s' %s +'%s' may be indistinguishable from '%s' due to internal name truncation +Promoted formal parameter and promoted argument have incompatible types +No prototype for the definition of '%s' %s +References to '%s' are substituted by its literal initializer + (as included in %s) +============== +unsupported language linkage +string-literal specifies an unsupported linkage +7.4(1) +No prototype for the call to %s +To achieve better type-checking, there should be a full prototype for +the function being called. +3.5.4.3 +'inline' only applies to function declarations +leave statment can occur only within try body +Microsoft extension +Use of a Microsoft extension detected without usage of the +compiler option -msft. +No parameter mentioned +A file with no declarations or definitions is accepted as an extension to ANSI C +The translation unit must contain at least one external definition. +3.7 +Incompatible signed and unsigned version of a type +Yacc initialization error +Internal error: yacc cannot initialize itself. +The cfe option %s may not be in future releases. We suggest that you not use this option! +Incompatible char and unsigned char versions of a type +Lshift with undefined behaviour. +Lshift with a negative right operand, or a right operand that is greater +than or equal to the width in bits of the promoted left operand, results +in undefined behaviour. +3.3.7(11) +useless type name in declaration, possibly a semicolon is missing. +Type was ignored. +constant initializer expression is invalid (refers to automatic variables). +All the expressions in an initializer for an object that has static storage +duration or in the initializer list for an object that has aggregate or +union type shall be constant expressions. Otherwise, unexpected results +may occur. +3.5.7(32) and 3.4 +invalid explicit or implicit conversion of an address constant to an integral value in a constant initializing expression. +An address constant in a constant initializing expression can neither +initialize a bit-field nor be directly or indirectly converted to an +integral type of size different from an address type. +6.4 diff --git a/tools/irix/root/usr/lib/libc.so.1 b/tools/irix/root/usr/lib/libc.so.1 new file mode 100644 index 0000000..17495ef Binary files /dev/null and b/tools/irix/root/usr/lib/libc.so.1 differ diff --git a/tools/irix/root/usr/lib/libexc.so b/tools/irix/root/usr/lib/libexc.so new file mode 100644 index 0000000..209c536 Binary files /dev/null and b/tools/irix/root/usr/lib/libexc.so differ diff --git a/tools/irix/root/usr/lib/libgen.so b/tools/irix/root/usr/lib/libgen.so new file mode 100644 index 0000000..7b8ec7f Binary files /dev/null and b/tools/irix/root/usr/lib/libgen.so differ diff --git a/tools/irix/root/usr/lib/libm.so b/tools/irix/root/usr/lib/libm.so new file mode 100644 index 0000000..05bf478 Binary files /dev/null and b/tools/irix/root/usr/lib/libm.so differ diff --git a/tools/irix/root/usr/lib/ugen b/tools/irix/root/usr/lib/ugen new file mode 100644 index 0000000..beb81f4 Binary files /dev/null and b/tools/irix/root/usr/lib/ugen differ diff --git a/tools/irix/root/usr/lib/ujoin b/tools/irix/root/usr/lib/ujoin new file mode 100644 index 0000000..23a4cbb Binary files /dev/null and b/tools/irix/root/usr/lib/ujoin differ diff --git a/tools/irix/root/usr/lib/uld b/tools/irix/root/usr/lib/uld new file mode 100644 index 0000000..bd182fd Binary files /dev/null and b/tools/irix/root/usr/lib/uld differ diff --git a/tools/irix/root/usr/lib/umerge b/tools/irix/root/usr/lib/umerge new file mode 100644 index 0000000..e8e09e6 Binary files /dev/null and b/tools/irix/root/usr/lib/umerge differ diff --git a/tools/irix/root/usr/lib/uopt b/tools/irix/root/usr/lib/uopt new file mode 100644 index 0000000..5451428 Binary files /dev/null and b/tools/irix/root/usr/lib/uopt differ diff --git a/tools/irix/root/usr/lib/usplit b/tools/irix/root/usr/lib/usplit new file mode 100644 index 0000000..112abfc Binary files /dev/null and b/tools/irix/root/usr/lib/usplit differ diff --git a/tools/makebg.sh b/tools/makebg.sh new file mode 100644 index 0000000..a5e3284 --- /dev/null +++ b/tools/makebg.sh @@ -0,0 +1,4 @@ +#!/bin/bash +echo $1 +echo $2 +cp -f $1 $2 \ No newline at end of file diff --git a/tools/n64cksum b/tools/n64cksum new file mode 100644 index 0000000..f805527 Binary files /dev/null and b/tools/n64cksum differ diff --git a/tools/rasm2armips.py b/tools/rasm2armips.py new file mode 100644 index 0000000..ae92d58 --- /dev/null +++ b/tools/rasm2armips.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python + +import argparse +import re +import sys + +def read_file(filepath): + with open(filepath) as f: + lines = f.readlines() + split_lines = [re.split(r'[ ,]+', l.strip().replace('$', '')) for l in lines] + return split_lines + +# jumps and branches with named targets +jumps = ['jal', 'j'] +branches = ['beq', 'bgez', 'bgtz', 'blez', 'bltz', 'bne'] +jump_branches = jumps + branches +# jumps and branches with delay slots +has_delay_slot = jump_branches + ['jr'] + +def decode_references(instructions): + refs = [] + for ins in instructions: + if ins[3] in jump_branches: + target = int(ins[-1], 0) + if target not in refs: + refs.append(target) + return refs + +def reassemble(args, instructions, refs): + print('.rsp') + print('\n.create DATA_FILE, 0x%04X' % 0x0000) + print('\n.close // DATA_FILE\n') + print('.create CODE_FILE, 0x%08X\n' % args.base) + delay_slot = False + for ins in instructions: + addr = int(ins[0], 0) + if (addr & 0xFFFF) in refs: + print('%s_%08x:' % (args.name, addr)) + sys.stdout.write(' ' * args.indent) + if delay_slot: + sys.stdout.write(' ') + delay_slot = False + if ins[3] in jumps: + target = int(ins[-1], 0) | (args.base & 0xFFFF0000) + ins[-1] = '%s_%08x' % (args.name, target) + elif ins[3] in branches: + if ins[3][-1] =='z' and ins[5] == 'zero': + del ins[5] # remove 'zero' operand from branch + target = (int(ins[-1], 0) & 0x1FFF) + (args.base & 0xFFFF0000) + ins[-1] = '%s_%08x' % (args.name, target) + elif ins[3] == 'vsar': # fixup last operand of vsar + reg_map = {'ACC_H': 0, 'ACC_M': 1, 'ACC_L': 2} + reg = ins[4].split(r'[')[0] + num = reg_map[ins[-1]] + ins[-1] = '%s[%d]' % (reg, num) + if ins[3] in has_delay_slot: + delay_slot = True + if len(ins) > 4: # with args + print('%-5s %s' % (ins[3], ', '.join(ins[4:]))) + else: + print('%s' % ins[3]) + print('\n.close // CODE_FILE') + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('input_file', help="input assembly file generated from `rasm2 -D -e -a rsp -B -o 0x04001000 -f`") + parser.add_argument('-b', type=int, help="base address of file", dest='base', default=0x04001000) + parser.add_argument('-i', type=int, help="amount of indentation", dest='indent', default=4) + parser.add_argument('-n', help="name to prefex labels with", dest='name', default='f3d') + args = parser.parse_args() + + lines = read_file(args.input_file) + refs = decode_references(lines) + reassemble(args, lines, refs) + +main() diff --git a/undefined_syms.txt b/undefined_syms.txt new file mode 100644 index 0000000..39cbcd9 --- /dev/null +++ b/undefined_syms.txt @@ -0,0 +1,97 @@ +OS_VI_NTSC_LAN1 =2; +OS_VI_PAL_LAN1 = 16; + + +SP_MEM_ADDR_REG = 0xA4040000; +SP_DRAM_ADDR_REG = 0xA4040004; +SP_RD_LEN_REG = 0xA4040008; +SP_WR_LEN_REG = 0xA404000C; +SP_STATUS_REG = 0xA4040010; +SP_PC_REG = 0xA4080000; + +DPC_REG_BASE = 0xA4100000; +DPC_START_REG = 0xA4100000; +DPC_END_REG = 0xA4100004; +DPC_CURRENT_REG = 0xA4100008; +DPC_STATUS_REG = 0xA410000C; +DPC_CLOCK_REG = 0xA4100010; +DPC_BUFBUSY_REG = 0xA4100014; +DPC_PIPEBUSY_REG = 0xA4100018; +DPC_TMEM_REG = 0xA410001C; + +MI_INIT_MODE_REG = 0xA4300000; +MI_MODE_REG = MI_INIT_MODE_REG; +MI_VERSION_REG = 0xA4300004; +MI_INTR_REG = 0xA4300008; +MI_INTR_MASK_REG = 0xA430000C; + +VI_STATUS_REG = 0xA4400000; +VI_CONTROL_REG = 0xA4400000; +VI_ORIGIN_REG = 0xA4400004; +VI_DRAM_ADDR_REG = 0xA4400004; +VI_WIDTH_REG = 0xA4400008; +VI_H_WIDTH_REG = 0xA4400008; +VI_INTR_REG = 0xA440000C; +VI_V_INTER_REG = 0xA440000C; +VI_CURRENT_REG = 0xA4400010; +VI_V_CURRENT_LINE_REG = 0xA4400010; +VI_BURST_REG = 0xA4400014; +VI_TIMING_REG = 0xA4400014; +VI_V_SYNC_REG = 0xA4400018; +VI_H_SYNC_REG = 0xA440001C; +VI_LEAP_REG = 0xA4400020; +VI_H_SYNC_LEAP_REG = 0xA4400020; +VI_H_START_REG = 0xA4400024; +VI_H_VIDEO_REG = 0xA4400024; +VI_V_START_REG = 0xA4400028; +VI_V_VIDEO_REG = 0xA4400028; +VI_V_BURST_REG = 0xA440002C; +VI_X_SCALE_REG = 0xA4400030; +VI_Y_SCALE_REG = 0xA4400034; + +AI_LEN_REG = 0xA4500004; +AI_CONTROL_REG = 0xA4500008; +AI_STATUS_REG = 0xA450000C; +AI_DACRATE_REG = 0xA4500010; +AI_BITRATE_REG = 0xA4500014; + +PI_DRAM_ADDR_REG = 0xA4600000; +PI_CART_ADDR_REG = 0xA4600004; +PI_RD_LEN_REG = 0xA4600008; +PI_WR_LEN_REG = 0xA460000C; +PI_STATUS_REG = 0xA4600010; +PI_BSD_DOM1_LAT_REG = 0xA4600014; +PI_DOMAIN1_REG = 0xA4600014; +PI_BSD_DOM1_PWD_REG = 0xA4600018; +PI_BSD_DOM1_PGS_REG = 0xA460001C; +PI_BSD_DOM1_RLS_REG = 0xA4600020; +PI_BSD_DOM2_LAT_REG = 0xA4600024; +PI_DOMAIN2_REG = 0xA4600024; +PI_BSD_DOM2_PWD_REG = 0xA4600028; +PI_BSD_DOM2_PGS_REG = 0xA460002C; +PI_BSD_DOM2_RLS_REG = 0xA4600030; + +SI_DRAM_ADDR_REG = 0xA4800000; +SI_PIF_ADDR_RD64B_REG = 0xA4800004; +SI_PIF_ADDR_WR64B_REG = 0xA4800010; +SI_STATUS_REG = 0xA4800018; + +ASIC_STATUS = 0xA5000508; +ASIC_BM_STATUS = 0xA5000510; + + + +osTvType = 0x80000300; +osRomBase = 0x80000308; +osResetType = 0x8000030C; +osAppNMIBuffer = 0x8000031c; + + + + + + + + + +